diff --git a/go.mod b/go.mod index 95a12034a6..90e5bce610 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,7 @@ require ( github.com/go-openapi/swag v0.19.13 // indirect github.com/go-sql-driver/mysql v1.5.0 // indirect github.com/gofrs/uuid v3.2.0+incompatible // indirect - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.5.2 github.com/google/go-cmp v0.5.5 github.com/google/uuid v1.1.2 @@ -43,7 +43,7 @@ require ( github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect github.com/jinzhu/gorm v1.9.12 // indirect github.com/jonboulle/clockwork v0.2.2 - github.com/json-iterator/go v1.1.10 + github.com/json-iterator/go v1.1.11 github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/looplab/tarjan v0.0.0-20161115091335-9cc6d6cebfb5 github.com/mattn/go-colorable v0.1.7 @@ -69,7 +69,7 @@ require ( github.com/tilt-dev/go-get v0.0.0-20200911222649-1acd29546527 github.com/tilt-dev/localregistry-go v0.0.0-20200615231835-07e386f4ebd7 github.com/tilt-dev/probe v0.2.0 - github.com/tilt-dev/tilt-apiserver v0.3.3 + github.com/tilt-dev/tilt-apiserver v0.4.0 github.com/tilt-dev/wmclient v0.0.0-20201109174454-1839d0355fbc github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea github.com/whilp/git-urls v0.0.0-20160530060445-31bac0d230fa @@ -77,9 +77,7 @@ require ( go.opencensus.io v0.22.4 go.opentelemetry.io/otel v0.2.0 go.starlark.net v0.0.0-20200615180055-61b64bc45990 - golang.org/x/net v0.0.0-20210119194325-5f4716e94777 // indirect - golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 - golang.org/x/text v0.3.5 // indirect + golang.org/x/sync v0.0.0-20201207232520-09787c993a3a google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a google.golang.org/grpc v1.29.1 gopkg.in/d4l3k/messagediff.v1 v1.2.1 @@ -89,17 +87,17 @@ require ( gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b helm.sh/helm/v3 v3.4.1 - k8s.io/api v0.20.2 - k8s.io/apimachinery v0.20.2 - k8s.io/apiserver v0.20.2 - k8s.io/cli-runtime v0.20.2 - k8s.io/client-go v0.20.2 - k8s.io/code-generator v0.20.2 + k8s.io/api v0.21.1 + k8s.io/apimachinery v0.21.1 + k8s.io/apiserver v0.21.1 + k8s.io/cli-runtime v0.21.1 + k8s.io/client-go v0.21.1 + k8s.io/code-generator v0.21.1 k8s.io/klog/v2 v2.8.0 - k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd - k8s.io/kubectl v0.20.2 - sigs.k8s.io/controller-runtime v0.8.2 - sigs.k8s.io/kustomize/api v0.7.2 + k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 + k8s.io/kubectl v0.21.1 + sigs.k8s.io/controller-runtime v0.9.0 + sigs.k8s.io/kustomize/api v0.8.8 sigs.k8s.io/yaml v1.2.0 vbom.ml/util v0.0.0-20180919145318-efcd4e0f9787 // indirect ) @@ -120,6 +118,7 @@ replace ( // controller-runtime uses a newer gnostic but apiserver + kube-openapi require an older version // due to an incompatible change from yaml.v2 -> yaml.v3 + // see https://github.com/kubernetes-sigs/controller-runtime/issues/1498 github.com/googleapis/gnostic => github.com/googleapis/gnostic v0.4.1 // can remove if/when https://github.com/pkg/browser/pull/30 is merged @@ -128,9 +127,5 @@ replace ( go.opencensus.io => github.com/tilt-dev/opencensus-go v0.22.5-0.20200904175236-275b1754f353 golang.org/x/crypto => golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 - // Workaround for: - // https://github.com/moby/term/issues/15 - golang.org/x/sys => golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 - - k8s.io/apimachinery => github.com/tilt-dev/apimachinery v0.20.2-tilt-20210505 + k8s.io/apimachinery => github.com/tilt-dev/apimachinery v0.21.1-tilt-20210608 ) diff --git a/go.sum b/go.sum index beb065b54a..f1ea056637 100644 --- a/go.sum +++ b/go.sum @@ -33,7 +33,6 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl contrib.go.opencensus.io/exporter/ocagent v0.7.0 h1:BEfdCTXfMV30tLZD8c9n64V/tIZX5+9sXiuFLnrr1k8= contrib.go.opencensus.io/exporter/ocagent v0.7.0/go.mod h1:IshRmMJBhDfFj5Y67nVhMYTTIze91RUeT73ipWKs/GY= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/360EntSecGroup-Skylar/excelize v1.4.1/go.mod h1:vnax29X2usfl7HHkBrX5EvSCJcmH3dT9luvxzu8iGAE= github.com/AkihiroSuda/containerd-fuse-overlayfs v0.10.0/go.mod h1:0mMDvQFeLbbn1Wy8P2j3hwFhqBq+FKn8OZPno8WLmp8= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v19.1.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= @@ -46,13 +45,12 @@ github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSW github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.3/go.mod h1:GsRuLYvwzLjjjRoWEIyMUaYq8GNUx2nRB378IPt/1p0= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= -github.com/Azure/go-autorest/autorest v0.11.1 h1:eVvIXUKiTgv++6YnWb42DUA1YL7qDugnKP0HljexdnQ= -github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= +github.com/Azure/go-autorest/autorest v0.11.12 h1:gI8ytXbxMfI+IVbI9mP2JGCTXIuhHLgRlvQ9X4PsnHE= +github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= github.com/Azure/go-autorest/autorest/adal v0.8.1/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= github.com/Azure/go-autorest/autorest/adal v0.9.5 h1:Y3bBUV4rTuxenJJs41HU3qmqsb+auo+a3Lz+PlJPpL0= github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= @@ -62,7 +60,6 @@ github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSY github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= @@ -74,7 +71,6 @@ github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= @@ -99,11 +95,11 @@ github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEY github.com/Microsoft/hcsshim v0.8.9 h1:VrfodqvztU8YSOvygU+DN1BGaSGxmrNfqOv5oOuX2Bk= github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= github.com/Microsoft/hcsshim/test v0.0.0-20200826032352-301c83a30e7c/go.mod h1:30A5igQ91GEmhYJF8TaRP79pMBOYynRsyOByfVV0dU4= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 h1:lsxEuwrXEAokXB9qhlbKWPpo3KMLZQ5WB5WLQRW1uq0= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= +github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= -github.com/PuerkitoBio/goquery v1.5.0/go.mod h1:qD2PgZ9lccMbQlc7eEOjaeRlFQON7xY8kdmcsrnKqMg= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= @@ -128,10 +124,10 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alessio/shellescape v1.2.2 h1:8LnL+ncxhWT2TR00dfJRT25JWWrhkMZXneHVWnetDZg= github.com/alessio/shellescape v1.2.2/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/andybalholm/cascadia v1.0.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= @@ -156,7 +152,6 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= @@ -262,6 +257,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= +github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/d4l3k/messagediff v1.2.1 h1:ZcAIMYsUg0EAp9X+tt8/enBE/Q8Yd5kzPynLyKptt9U= github.com/d4l3k/messagediff v1.2.1/go.mod h1:Oozbb1TVXFac9FtSIxHBMnBCq2qeH/2KkEQxENCrlLo= @@ -316,13 +313,10 @@ github.com/docker/libnetwork v0.8.0-dev.2.0.20200226230617-d8334ccdb9be/go.mod h github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 h1:UhxFibDNY/bfvqU5CAUmr9zpesgbU6SWc8/B4mflAE4= github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustmop/soup v1.1.2-0.20190516214245-38228baa104e/go.mod h1:CgNC6SGbT+Xb8wGGvzilttZL1mc5sQ/5KkcxsZttMIk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= @@ -378,19 +372,17 @@ github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3I github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTDqfpXvXAN0sXM= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v0.2.1/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v0.3.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc= github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= -github.com/go-logr/zapr v0.2.0 h1:v6Ji8yBW77pva6NkJKQdHLAJKrIJKRHz0RXwPqCHSR4= -github.com/go-logr/zapr v0.2.0/go.mod h1:qhKdvif7YF5GI9NWEpyxTSSBdGmzkNguibrdCNVPunU= +github.com/go-logr/zapr v0.4.0 h1:uc1uML3hRYL9/ZZPdgHS/n8Nzo+eaYL/Efxkkamf7OM= +github.com/go-logr/zapr v0.4.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= @@ -444,6 +436,7 @@ github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= github.com/go-toolsmith/astequal v0.0.0-20180903214952-dcb477bfacd6/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= @@ -481,8 +474,9 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -549,6 +543,7 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-containerregistry v0.0.0-20191010200024-a3d713f9b7f8/go.mod h1:KyKXa9ciM8+lgMXwOVsXi7UxGrsf9mM61Mzs+xKUrKE= @@ -624,20 +619,16 @@ github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyN github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -657,11 +648,10 @@ github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.10 h1:6q5mVkdH/vYmqngx7kZQTjJ5HRsx+ImorDIEQ+beJgc= -github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= +github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= @@ -687,21 +677,25 @@ github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9q github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kisielk/sqlstruct v0.0.0-20150923205031-648daed35d49/go.mod h1:yyMNCyc/Ib3bDTKd379tNMpB/7/H5TjM2Y9QJ5THLbE= github.com/kisom/goutils v1.1.0/go.mod h1:+UBTfd78habUYWFbNWTJNG+jNG/i/lGURakr4A/yNRw= @@ -771,8 +765,9 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-oci8 v0.0.7/go.mod h1:wjDx6Xm9q7dFtHJvIlrI99JytznLw5wQ4R+9mNXJwGI= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.6 h1:V2iyH+aX9C5fsYCpK60U8BYIvmhqxuOL3JZcqc1NB7k= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.7 h1:Ei8KR0497xHyKJPAv59M1dkC+rOZCMBJ+t3fZ+twI54= +github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -807,13 +802,16 @@ github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQ github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/buildkit v0.7.1-0.20200925001807-2b6cccb9b3e9 h1:BeBeWY7c6wqbq6/p+iSEjs+pdS8qlEVjik5IFTMpprg= github.com/moby/buildkit v0.7.1-0.20200925001807-2b6cccb9b3e9/go.mod h1:1Whs/5ueNdTNZDg5rl8TXviT98lBjtQUHyR0JMtvpMU= +github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= +github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/sys/mount v0.1.0 h1:Ytx78EatgFKtrqZ0BvJ0UtJE472ZvawVmil6pIfuCCU= github.com/moby/sys/mount v0.1.0/go.mod h1:FVQFLDRWwyBjDTBNQXDlWnSFREqOo3OKX9aqhmeoo74= github.com/moby/sys/mountinfo v0.1.0/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/sys/mountinfo v0.1.3 h1:KIrhRO14+AkwKvG/g2yIpNMOUVZ02xNhOw8KY1WsLOI= github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= -github.com/moby/term v0.0.0-20200312100748-672ec06f55cd h1:aY7OQNf2XqY/JQ6qREWamhI/81os/agb2BAGpcx5yWI= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= +github.com/moby/term v0.0.0-20201216013528-df9cb8a40635 h1:rzf0wL0CHVc8CEsgyygG0Mn9CNCCPZqOPaz8RiiHYQk= +github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -821,7 +819,7 @@ github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lN github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= @@ -832,6 +830,7 @@ github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8m github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= @@ -845,14 +844,16 @@ github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= -github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ= +github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -861,18 +862,17 @@ github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+ github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= -github.com/onsi/ginkgo v1.14.1 h1:jMU0WaQrP0a/YAEq8eJmJKjBoMs+pClEr1vDMlM/Do4= -github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= +github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.2 h1:aY/nuoWlKJud2J6U0E3NWsjlg+0GtwXxgEqthRdzlcs= -github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak= +github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -905,7 +905,6 @@ github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/paulmach/orb v0.1.3/go.mod h1:VFlX/8C+IQ1p6FTRRKzKoOPJnvEtA5G0Veuqwbu//Vk= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.5.0 h1:5BakdOZdtKJ1FFk6QdL8iSGrMWsXgchNJcrnarjbmJQ= @@ -934,8 +933,9 @@ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDf github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= -github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -949,8 +949,9 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= -github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0 h1:iMAkS2TDoNWnKM+Kopnx/8tnEStIfpYA0ur0xQzzhMQ= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -960,10 +961,10 @@ github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDa github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/qri-io/starlib v0.4.2-0.20200213133954-ff2e8cd5ef8d/go.mod h1:7DPO4domFU579Ga6E61sB9VFNaniPVwJP5C4bBCu3wA= github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= @@ -994,6 +995,7 @@ github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvW github.com/securego/gosec v0.0.0-20191002120514-e680875ea14d/go.mod h1:w5+eXa0mYznDkHaMCXA4XYffjlH+cy1oyKbfzJXa2Do= github.com/securego/gosec v0.0.0-20191008095658-28c1128b7336/go.mod h1:w5+eXa0mYznDkHaMCXA4XYffjlH+cy1oyKbfzJXa2Do= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/serialx/hashring v0.0.0-20190422032157-8b2912629002/go.mod h1:/yeG0My1xr/u+HZrFQ1tOQQQQrOawfyMUH13ai5brBc= github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada/go.mod h1:WWnYX4lzhCH5h/3YBfyVA3VbLYjlMZZAQcW9ojMexNc= @@ -1054,7 +1056,6 @@ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoH github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.3-0.20181224173747-660f15d67dbb/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= @@ -1069,8 +1070,10 @@ github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cb github.com/theupdateframework/notary v0.6.1 h1:7wshjstgS9x9F5LuB1L5mBI2xNMObWqjz+cjWoom6l0= github.com/theupdateframework/notary v0.6.1/go.mod h1:MOfgIfmox8s7/7fduvB2xyPPMJCrjRLRizA8OFwpnKY= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tilt-dev/apimachinery v0.20.2-tilt-20210505 h1:lpX84tReU5wby8A/YGCti0eaIaIRA8DWrscbshVqhkI= -github.com/tilt-dev/apimachinery v0.20.2-tilt-20210505/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +github.com/tilt-dev/apimachinery v0.21.0-tilt-20210608 h1:xeJBQIgTjWF7Hvoizu+bhcD5oGCGLt14ansV+YnqaWA= +github.com/tilt-dev/apimachinery v0.21.0-tilt-20210608/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= +github.com/tilt-dev/apimachinery v0.21.1-tilt-20210608 h1:QFN1NMIeN4Sb9bPwAbnUok6AabLKlmPxRZmb5bmNnpA= +github.com/tilt-dev/apimachinery v0.21.1-tilt-20210608/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= github.com/tilt-dev/browser v0.0.1 h1:e+mFToX6A7pkMlGFrXW5VLvS7qS0HVbcXqmR0uPrWUA= github.com/tilt-dev/browser v0.0.1/go.mod h1:2DaMt8P8xEqDFzxaAbraOig5iUmQdd1wtO1Tb6tODHA= github.com/tilt-dev/dockerignore v0.0.0-20200910202654-0d8c17a73277 h1:+M1rb07n9/WS/UdOFTIy+fXyAhcqZkkLU5UcNcq7zO4= @@ -1089,8 +1092,8 @@ github.com/tilt-dev/opencensus-go v0.22.5-0.20200904175236-275b1754f353 h1:lxM1v github.com/tilt-dev/opencensus-go v0.22.5-0.20200904175236-275b1754f353/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= github.com/tilt-dev/probe v0.2.0 h1:2kLs+xNjv6OYoR7OLCQELV6+/Ce0gqOC856qKfN/TB4= github.com/tilt-dev/probe v0.2.0/go.mod h1:N4FSqESyYQuc9GwIaIoHS5cIUDznIUwDkG6y4kQVXQY= -github.com/tilt-dev/tilt-apiserver v0.3.3 h1:jgd839fz7MmAnW1AYv5GhvT18sCEqZcLz3q6Y73OyIg= -github.com/tilt-dev/tilt-apiserver v0.3.3/go.mod h1:+WZsSYvpAh/xutkB58tdQhjb3WvJLQKqzdIHKTO94/c= +github.com/tilt-dev/tilt-apiserver v0.4.0 h1:TGm2jGszYU2fScye1EdkqgksZkqjSMj3eyQOccJXEuo= +github.com/tilt-dev/tilt-apiserver v0.4.0/go.mod h1:EH/PeumBMuihqZEdPvpxDwGniHQn6b0UOKAbO3Ec/t4= github.com/tilt-dev/wmclient v0.0.0-20201109174454-1839d0355fbc h1:wGkAoZhrvnmq93B4W2v+agiPl7xzqUaxXkxmKrwJ6bc= github.com/tilt-dev/wmclient v0.0.0-20201109174454-1839d0355fbc/go.mod h1:n01fG3LbImzxBP3GGCTHkgXuPeJusWg6xv0QYGm9HtE= github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= @@ -1105,7 +1108,6 @@ github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMW github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= @@ -1140,12 +1142,12 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1 h1:j2hhcujLRHAg872RWAV5yaUrEjHEObwDv3aImCaNLek= github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= +github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI= github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yujunz/go-getter v1.5.1-lite.0.20201201013212-6d9c071adddf/go.mod h1:bL0Pr07HEdsMZ1WBqZIxXj96r5LnFsY4LgPaPEGkw1k= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= @@ -1169,28 +1171,25 @@ go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qL go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.opentelemetry.io/otel v0.2.0 h1:s7SAglwrmzYso5kCAMwtaHgJxsghZpKm1iWEsaRnMtU= go.opentelemetry.io/otel v0.2.0/go.mod h1:DztlYhVA/vOw2JNr1nYhZNHXY40sm34xHavb5BDig3s= -go.starlark.net v0.0.0-20190528202925-30ae18b8564f/go.mod h1:c1/X6cHgvdXj6pUlmWKMkuqRnW4K8x2vwt6JAaaircg= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.starlark.net v0.0.0-20200615180055-61b64bc45990 h1:uDQRBsInkx8dnsM61qp8NPorEWHq2LBvVYiZK9ikCag= go.starlark.net v0.0.0-20200615180055-61b64bc45990/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.8.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.15.0 h1:ZZCA22JRF2gQE5FoNmhmrf7jeJJ2uhqDUNRYKm8dvmM= -go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= +go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20190314133821-5284462c4bec/go.mod h1:atTaCNAy0f16Ah5aV1gMSwgiKVHwu/JncqDpuRr7lS4= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 h1:ULYEB3JvPRE/IfO+9uO7vKV/xzVTO7XPAwm8xbf4w2g= @@ -1227,10 +1226,10 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449 h1:xUIPaMhvROX9dhPvRCenIJtU78+lbEenGbgqB5hfHCQ= +golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1270,9 +1269,11 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210224082022-3d97a244fca7/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 h1:DzZ89McO9/gWPsQXS/FVKAlG02ZjaQ6AlZRBimEYOd0= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/oauth2 v0.0.0-20180724155351-3d292e4d0cdc/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1289,11 +1290,86 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 h1:DvY3Zkh7KabQE/kfzMvYvKirSiguP9Q/veMtkYyf0o8= -golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201106081118-db71ae66460a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210415045647-66c3f260301c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40 h1:JWgyZ1qgdTaF3N3oxC+MdTV7qvEEgHo3otj+HB5CM7Q= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1301,15 +1377,15 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1374,16 +1450,18 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjs golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0 h1:SQvH+DjrwqD1hyyQU+K7JegHz1KEZgEwt17p9d6R2eg= -golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gomodules.xyz/jsonpatch/v2 v2.0.1/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= -gomodules.xyz/jsonpatch/v2 v2.1.0 h1:Phva6wqu+xR//Njw6iorylFFgn/z547tw5Ne3HZPQ+k= -gomodules.xyz/jsonpatch/v2 v2.1.0/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= +gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY= +gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY= gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= @@ -1409,8 +1487,8 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -1523,8 +1601,9 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2 h1:kG1BFyqVHuQoVQiR1bWGnfz/fmHvvuiSPIV7rvl360E= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= +gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= +gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= helm.sh/helm/v3 v3.4.1 h1:NIdlBGKFRTAkhz0ooYKw1VBbmTldxNAZRY1nH6Glk6I= helm.sh/helm/v3 v3.4.1/go.mod h1:MeRlXlmCr5CWYKvqIPgXrSmcIXJpv7qcsKV3uTvcZSM= @@ -1533,64 +1612,56 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3U= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.0.0-20180904230853-4e7be11eab3f/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= -k8s.io/api v0.17.0/go.mod h1:npsyOePkeP0CPwyGfXDHxvypiYMJxBWAMpQxCaJ4ZxI= k8s.io/api v0.17.4/go.mod h1:5qxx6vjmwUVG2nHQTKGlLts8Tbok8PzHl4vHtVFuZCA= -k8s.io/api v0.18.2/go.mod h1:SJCWI7OLzhZSvbY7U8zwNl9UA4o1fizoug34OV/2r78= k8s.io/api v0.18.3/go.mod h1:UOaMwERbqJMfeeeHc8XJKawj4P9TgDRnViIqqBeH2QA= k8s.io/api v0.19.0/go.mod h1:I1K45XlvTrDjmj5LoM5LuP/KYrhWbjUKT/SoPG0qTjw= k8s.io/api v0.19.3/go.mod h1:VF+5FT1B74Pw3KxMdKyinLo+zynBaMBiAfGMuldcNDs= -k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= -k8s.io/api v0.20.2 h1:y/HR22XDZY3pniu9hIFDLpUCPq2w5eQ6aV/VFQ7uJMw= -k8s.io/api v0.20.2/go.mod h1:d7n6Ehyzx+S+cE3VhTGfVNNqtGc/oL9DCdYYahlurV8= -k8s.io/apiextensions-apiserver v0.18.2/go.mod h1:q3faSnRGmYimiocj6cHQ1I3WpLqmDgJFlKL37fC4ZvY= +k8s.io/api v0.21.0/go.mod h1:+YbrhBBGgsxbF6o6Kj4KJPJnBmAKuXDeS3E18bgHNVU= +k8s.io/api v0.21.1 h1:94bbZ5NTjdINJEdzOkpS4vdPhkb1VFpTYC9zh43f75c= +k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s= k8s.io/apiextensions-apiserver v0.19.3/go.mod h1:igVEkrE9TzInc1tYE7qSqxaLg/rEAp6B5+k9Q7+IC8Q= -k8s.io/apiextensions-apiserver v0.20.1 h1:ZrXQeslal+6zKM/HjDXLzThlz/vPSxrfK3OqL8txgVQ= -k8s.io/apiextensions-apiserver v0.20.1/go.mod h1:ntnrZV+6a3dB504qwC5PN/Yg9PBiDNt1EVqbW2kORVk= +k8s.io/apiextensions-apiserver v0.21.1 h1:AA+cnsb6w7SZ1vD32Z+zdgfXdXY8X9uGX5bN6EoPEIo= +k8s.io/apiextensions-apiserver v0.21.1/go.mod h1:KESQFCGjqVcVsZ9g0xX5bacMjyX5emuWcS2arzdEouA= k8s.io/apiserver v0.17.4/go.mod h1:5ZDQ6Xr5MNBxyi3iUZXS84QOhZl+W7Oq2us/29c0j9I= -k8s.io/apiserver v0.18.2/go.mod h1:Xbh066NqrZO8cbsoenCwyDJ1OSi8Ag8I2lezeHxzwzw= k8s.io/apiserver v0.19.3/go.mod h1:bx6dMm+H6ifgKFpCQT/SAhPwhzoeIMlHIaibomUDec0= -k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= -k8s.io/apiserver v0.20.2 h1:lGno2t3gcZnLtzsKH4oG0xA9/4GTiBzMO1DGp+K+Bak= -k8s.io/apiserver v0.20.2/go.mod h1:2nKd93WyMhZx4Hp3RfgH2K5PhwyTrprrkWYnI7id7jA= +k8s.io/apiserver v0.21.1 h1:wTRcid53IhxhbFt4KTrFSw8tAncfr01EP91lzfcygVg= +k8s.io/apiserver v0.21.1/go.mod h1:nLLYZvMWn35glJ4/FZRhzLG/3MPxAaZTgV4FJZdr+tY= k8s.io/cli-runtime v0.19.3/go.mod h1:q+l845i5/uWzcUpCrl+L4f3XLaJi8ZeLVQ/decwty0A= -k8s.io/cli-runtime v0.20.2 h1:W0/FHdbApnl9oB7xdG643c/Zaf7TZT+43I+zKxwqvhU= -k8s.io/cli-runtime v0.20.2/go.mod h1:FjH6uIZZZP3XmwrXWeeYCbgxcrD6YXxoAykBaWH0VdM= +k8s.io/cli-runtime v0.21.0 h1:/V2Kkxtf6x5NI2z+Sd/mIrq4FQyQ8jzZAUD6N5RnN7Y= +k8s.io/cli-runtime v0.21.0/go.mod h1:XoaHP93mGPF37MkLbjGVYqg3S1MnsFdKtiA/RZzzxOo= +k8s.io/cli-runtime v0.21.1 h1:Oj/iZxa7LLXrhzShaLNF4rFJEIEBTDHj0dJw4ra2vX4= +k8s.io/cli-runtime v0.21.1/go.mod h1:TI9Bvl8lQWZB2KqE91QLCp9AZE4l29zNFnj/x4IX4Fw= k8s.io/client-go v0.0.0-20180910083459-2cefa64ff137/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= -k8s.io/client-go v0.17.0/go.mod h1:TYgR6EUHs6k45hb6KWjVD6jFZvJV4gHDikv/It0xz+k= k8s.io/client-go v0.17.4/go.mod h1:ouF6o5pz3is8qU0/qYL2RnoxOPqgfuidYLowytyLJmc= -k8s.io/client-go v0.18.2/go.mod h1:Xcm5wVGXX9HAA2JJ2sSBUn3tCJ+4SVlCbl2MNNv+CIU= k8s.io/client-go v0.18.3/go.mod h1:4a/dpQEvzAhT1BbuWW09qvIaGw6Gbu1gZYiQZIi1DMw= k8s.io/client-go v0.19.0/go.mod h1:H9E/VT95blcFQnlyShFgnFT9ZnJOAceiUHM3MlRC+mU= k8s.io/client-go v0.19.3/go.mod h1:+eEMktZM+MG0KO+PTkci8xnbCZHvj9TqR6Q1XDUIJOM= -k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= -k8s.io/client-go v0.20.2 h1:uuf+iIAbfnCSw8IGAv/Rg0giM+2bOzHLOsbbrwrdhNQ= -k8s.io/client-go v0.20.2/go.mod h1:kH5brqWqp7HDxUFKoEgiI4v8G1xzbe9giaCenUWJzgE= +k8s.io/client-go v0.21.0/go.mod h1:nNBytTF9qPFDEhoqgEPaarobC8QPae13bElIVHzIglA= +k8s.io/client-go v0.21.1 h1:bhblWYLZKUu+pm50plvQF8WpY6TXdRRtcS/K9WauOj4= +k8s.io/client-go v0.21.1/go.mod h1:/kEw4RgW+3xnBGzvp9IWxKSNA+lXn3A7AuH3gdOAzLs= k8s.io/cloud-provider v0.17.4/go.mod h1:XEjKDzfD+b9MTLXQFlDGkk6Ho8SGMpaU8Uugx/KNK9U= k8s.io/code-generator v0.17.2/go.mod h1:DVmfPQgxQENqDIzVR2ddLXMH34qeszkKSdH/N+s+38s= -k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc= k8s.io/code-generator v0.19.3/go.mod h1:moqLn7w0t9cMs4+5CQyxnfA/HV8MF6aAVENF+WZZhgk= -k8s.io/code-generator v0.20.1/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbWHJg= -k8s.io/code-generator v0.20.2 h1:SQaysped4EtUDk3u1zphnUJiOAwFdhHx9xS3WKAE0x8= -k8s.io/code-generator v0.20.2/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbWHJg= +k8s.io/code-generator v0.21.0/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= +k8s.io/code-generator v0.21.1 h1:jvcxHpVu5dm/LMXr3GOj/jroiP8+v2YnJE9i2OVRenk= +k8s.io/code-generator v0.21.1/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= k8s.io/component-base v0.17.4/go.mod h1:5BRqHMbbQPm2kKu35v3G+CpVq4K0RJKC7TRioF0I9lE= -k8s.io/component-base v0.18.2/go.mod h1:kqLlMuhJNHQ9lz8Z7V5bxUUtjFZnrypArGl58gmDfUM= k8s.io/component-base v0.19.3/go.mod h1:WhLWSIefQn8W8jxSLl5WNiR6z8oyMe/8Zywg7alOkRc= -k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= -k8s.io/component-base v0.20.2 h1:LMmu5I0pLtwjpp5009KLuMGFqSc2S2isGw8t1hpYKLE= -k8s.io/component-base v0.20.2/go.mod h1:pzFtCiwe/ASD0iV7ySMu8SYVJjCapNM9bjvk7ptpKh0= -k8s.io/component-helpers v0.20.2/go.mod h1:qeM6iAWGqIr+WE8n2QW2OK9XkpZkPNTxAoEv9jl40/I= +k8s.io/component-base v0.21.0/go.mod h1:qvtjz6X0USWXbgmbfXR+Agik4RZ3jv2Bgr5QnZzdPYw= +k8s.io/component-base v0.21.1 h1:iLpj2btXbR326s/xNQWmPNGu0gaYSjzn7IN/5i28nQw= +k8s.io/component-base v0.21.1/go.mod h1:NgzFZ2qu4m1juby4TnrmpR8adRk6ka62YdH5DkIIyKA= +k8s.io/component-helpers v0.21.0/go.mod h1:tezqefP7lxfvJyR+0a+6QtVrkZ/wIkyMLK4WcQ3Cj8U= +k8s.io/component-helpers v0.21.1/go.mod h1:FtC1flbiQlosHQrLrRUulnKxE4ajgWCGy/67fT2GRlQ= k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= k8s.io/csi-translation-lib v0.17.4/go.mod h1:CsxmjwxEI0tTNMzffIAcgR9lX4wOh6AKHdxQrT7L0oo= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20201113003025-83324d819ded h1:JApXBKYyB7l9xx+DK7/+mFjC7A9Bt5A93FPvFD0HIFE= -k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027 h1:Uusb3oh8XcdzDF/ndlI4ToKTYVlkCSJP39SRY2mfRAw= +k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= @@ -1602,25 +1673,28 @@ k8s.io/klog/v2 v2.8.0 h1:Q3gmuM9hKEjefWFFYF0Mat+YyFJvsUyYuwyNNJ5C9Ts= k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/kube-openapi v0.0.0-20180731170545-e3762e86a74c/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= -k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd h1:sOHNzJIkytDF6qadMNKhhDRpc6ODik8lVC6nOur7B2c= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= +k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 h1:vEx13qjvaZ4yfObSSXW7BrMc/KQBBT/Jyee8XtLf4x0= +k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= k8s.io/kubectl v0.19.3/go.mod h1:t5cscfrAuHUvEGNyNJjPKt+rGlaJzk8jrKYHXxEsANE= -k8s.io/kubectl v0.20.2 h1:mXExF6N4eQUYmlfXJmfWIheCBLF6/n4VnwQKbQki5iE= -k8s.io/kubectl v0.20.2/go.mod h1:/bchZw5fZWaGZxaRxxfDQKej/aDEtj/Tf9YSS4Jl0es= +k8s.io/kubectl v0.21.0 h1:WZXlnG/yjcE4LWO2g6ULjFxtzK6H1TKzsfaBFuVIhNg= +k8s.io/kubectl v0.21.0/go.mod h1:EU37NukZRXn1TpAkMUoy8Z/B2u6wjHDS4aInsDzVvks= +k8s.io/kubectl v0.21.1 h1:ySEusoeSgSDSiSBncDMsNrthSa3OSlXqT4R2rf1VFTw= +k8s.io/kubectl v0.21.1/go.mod h1:PMYR88MqESuysBM/MX+Vu4JbX/50nY4d4kny+SPEI2U= k8s.io/kubernetes v1.11.10/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= k8s.io/legacy-cloud-providers v0.17.4/go.mod h1:FikRNoD64ECjkxO36gkDgJeiQWwyZTuBkhu+yxOc1Js= k8s.io/metrics v0.19.3/go.mod h1:Eap/Lk1FiAIjkaArFuv41v+ph6dbDpVGwAg7jMI+4vg= -k8s.io/metrics v0.20.2/go.mod h1:yTck5nl5wt/lIeLcU6g0b8/AKJf2girwe0PQiaM4Mwk= +k8s.io/metrics v0.21.0/go.mod h1:L3Ji9EGPP1YBbfm9sPfEXSpnj8i24bfQbAFAsW0NueQ= +k8s.io/metrics v0.21.1/go.mod h1:pyDVLsLe++FIGDBFU80NcW4xMFsuiVTWL8Zfi7+PpNo= k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210111153108-fddb29f9d009 h1:0T5IaWHO3sJTEmCP6mUlBvMukxPKUQWqiI/YuiBNMiQ= k8s.io/utils v0.0.0-20210111153108-fddb29f9d009/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210527160623-6fdb442a123b h1:MSqsVQ3pZvPGTqCjptfimO2WjG7A9un2zcpiHkA6M/s= +k8s.io/utils v0.0.0-20210527160623-6fdb442a123b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= @@ -1633,27 +1707,32 @@ mvdan.cc/unparam v0.0.0-20190917161559-b83a221c10a2/go.mod h1:rCqoQrfAmpTX/h2APc rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14 h1:TihvEz9MPj2u0KWds6E2OBUXfwaL4qRJ33c7HGiJpqk= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/controller-runtime v0.6.0/go.mod h1:CpYf5pdNY/B352A1TFLAS2JVSlnGQ5O2cftPHndTroo= -sigs.k8s.io/controller-runtime v0.8.2 h1:SBWmI0b3uzMIUD/BIXWNegrCeZmPJ503pOtwxY0LPHM= -sigs.k8s.io/controller-runtime v0.8.2/go.mod h1:U/l+DUopBc1ecfRZ5aviA9JDmGFQKvLf5YkZNx2e0sU= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 h1:4uqm9Mv+w2MmBYD+F4qf/v6tDFUdPOk29C095RbU5mY= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/controller-runtime v0.9.0 h1:ZIZ/dtpboPSbZYY7uUz2OzrkaBTOThx2yekLtpGB+zY= +sigs.k8s.io/controller-runtime v0.9.0/go.mod h1:TgkfvrhhEw3PlI0BRL/5xM+89y3/yc0ZDfdbTl84si8= sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0= sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/kustomize/api v0.7.2 h1:ItTD/2XaKO8CosOMFZdaGFdUGTCHdQriW7zQ7AR98rs= -sigs.k8s.io/kustomize/api v0.7.2/go.mod h1:50/vLATrjhRmMr3spZsI1GcpoZJ8IARy9QstPbA9lGE= -sigs.k8s.io/kustomize/kyaml v0.10.6 h1:xUJxc/k8JoWqHUahaB8DTqY0KwEPxTbTGStvW8TOcDc= -sigs.k8s.io/kustomize/kyaml v0.10.6/go.mod h1:K9yg1k/HB/6xNOf5VH3LhTo1DK9/5ykSZO5uIv+Y/1k= +sigs.k8s.io/kustomize/api v0.8.5 h1:bfCXGXDAbFbb/Jv5AhMj2BB8a5VAJuuQ5/KU69WtDjQ= +sigs.k8s.io/kustomize/api v0.8.5/go.mod h1:M377apnKT5ZHJS++6H4rQoCHmWtt6qTpp3mbe7p6OLY= +sigs.k8s.io/kustomize/api v0.8.8 h1:G2z6JPSSjtWWgMeWSoHdXqyftJNmMmyxXpwENGoOtGE= +sigs.k8s.io/kustomize/api v0.8.8/go.mod h1:He1zoK0nk43Pc6NlV085xDXDXTNprtcyKZVm3swsdNY= +sigs.k8s.io/kustomize/cmd/config v0.9.7/go.mod h1:MvXCpHs77cfyxRmCNUQjIqCmZyYsbn5PyQpWiq44nW0= +sigs.k8s.io/kustomize/cmd/config v0.9.10/go.mod h1:Mrby0WnRH7hA6OwOYnYpfpiY0WJIMgYrEDfwOeFdMK0= +sigs.k8s.io/kustomize/kustomize/v4 v4.0.5/go.mod h1:C7rYla7sI8EnxHE/xEhRBSHMNfcL91fx0uKmUlUhrBk= +sigs.k8s.io/kustomize/kustomize/v4 v4.1.2/go.mod h1:PxBvo4WGYlCLeRPL+ziT64wBXqbgfcalOS/SXa/tcyo= +sigs.k8s.io/kustomize/kyaml v0.10.15 h1:dSLgG78KyaxN4HylPXdK+7zB3k7sW6q3IcCmcfKA+aI= +sigs.k8s.io/kustomize/kyaml v0.10.15/go.mod h1:mlQFagmkm1P+W4lZJbJ/yaxMd8PqMRSC4cPcfUVt5Hg= +sigs.k8s.io/kustomize/kyaml v0.10.17 h1:4zrV0ym5AYa0e512q7K3Wp1u7mzoWW0xR3UHJcGWGIg= +sigs.k8s.io/kustomize/kyaml v0.10.17/go.mod h1:mlQFagmkm1P+W4lZJbJ/yaxMd8PqMRSC4cPcfUVt5Hg= sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06 h1:zD2IemQ4LmOcAumeiyDWXKUI2SO0NYDe3H6QGvPOVgU= sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06/go.mod h1:/ULNhyfzRopfcjskuui0cTITekDduZ7ycKN3oUT9R18= -sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= -sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2 h1:YHQV7Dajm86OuqnIR6zAelnDWBRjo+YhYV9PmGrh1s8= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.1.0 h1:C4r9BgJ98vrKnnVCjwCSXcWjWe0NKcUQkmzDXZXGwH8= +sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/internal/cli/wire_gen.go b/internal/cli/wire_gen.go index 25515ea4e6..fdae248bbc 100644 --- a/internal/cli/wire_gen.go +++ b/internal/cli/wire_gen.go @@ -206,8 +206,8 @@ func wireCmdUp(ctx context.Context, analytics3 *analytics.TiltAnalytics, cmdTags } headsUpServerController := server.ProvideHeadsUpServerController(configAccess, apiServerName, webListener, apiserverConfig, headsUpServer, assetsServer, webURL) scheme := v1alpha1.NewScheme() - clientBuilder := controllers.NewClientBuilder(deferredClient) - tiltServerControllerManager, err := controllers.NewTiltServerControllerManager(apiserverConfig, scheme, clientBuilder) + uncachedObjects := controllers.ProvideUncachedObjects() + tiltServerControllerManager, err := controllers.NewTiltServerControllerManager(apiserverConfig, scheme, deferredClient, uncachedObjects) if err != nil { return CmdUpDeps{}, err } @@ -400,8 +400,8 @@ func wireCmdCI(ctx context.Context, analytics3 *analytics.TiltAnalytics, subcomm } headsUpServerController := server.ProvideHeadsUpServerController(configAccess, apiServerName, webListener, apiserverConfig, headsUpServer, assetsServer, webURL) scheme := v1alpha1.NewScheme() - clientBuilder := controllers.NewClientBuilder(deferredClient) - tiltServerControllerManager, err := controllers.NewTiltServerControllerManager(apiserverConfig, scheme, clientBuilder) + uncachedObjects := controllers.ProvideUncachedObjects() + tiltServerControllerManager, err := controllers.NewTiltServerControllerManager(apiserverConfig, scheme, deferredClient, uncachedObjects) if err != nil { return CmdCIDeps{}, err } @@ -591,8 +591,8 @@ func wireCmdUpdog(ctx context.Context, analytics3 *analytics.TiltAnalytics, cmdT } headsUpServerController := server.ProvideHeadsUpServerController(configAccess, apiServerName, webListener, apiserverConfig, headsUpServer, assetsServer, webURL) scheme := v1alpha1.NewScheme() - clientBuilder := controllers.NewClientBuilder(deferredClient) - tiltServerControllerManager, err := controllers.NewTiltServerControllerManager(apiserverConfig, scheme, clientBuilder) + uncachedObjects := controllers.ProvideUncachedObjects() + tiltServerControllerManager, err := controllers.NewTiltServerControllerManager(apiserverConfig, scheme, deferredClient, uncachedObjects) if err != nil { return CmdUpdogDeps{}, err } diff --git a/internal/controllers/client_builder.go b/internal/controllers/client_builder.go deleted file mode 100644 index 0a1809c097..0000000000 --- a/internal/controllers/client_builder.go +++ /dev/null @@ -1,34 +0,0 @@ -package controllers - -import ( - "k8s.io/client-go/rest" - "sigs.k8s.io/controller-runtime/pkg/cache" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/cluster" -) - -type ClientBuilder struct { - delegate cluster.ClientBuilder - deferred *DeferredClient -} - -func NewClientBuilder(deferred *DeferredClient) cluster.ClientBuilder { - return ClientBuilder{ - delegate: cluster.NewClientBuilder(), - deferred: deferred, - } -} - -func (b ClientBuilder) WithUncached(objs ...client.Object) cluster.ClientBuilder { - b.delegate = b.delegate.WithUncached(objs...) - return b -} - -func (b ClientBuilder) Build(cache cache.Cache, config *rest.Config, options client.Options) (client.Client, error) { - c, err := b.delegate.Build(cache, config, options) - if err != nil { - return nil, err - } - b.deferred.initialize(c) - return c, nil -} diff --git a/internal/controllers/fake/fake.go b/internal/controllers/fake/fake.go index 81948b284f..5e0331d13e 100644 --- a/internal/controllers/fake/fake.go +++ b/internal/controllers/fake/fake.go @@ -1,15 +1,10 @@ package fake import ( - "k8s.io/client-go/rest" - "github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1" - "sigs.k8s.io/controller-runtime/pkg/cache" - "sigs.k8s.io/controller-runtime/pkg/client" ctrlclient "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/fake" - "sigs.k8s.io/controller-runtime/pkg/cluster" ) func NewTiltClient() ctrlclient.Client { @@ -21,20 +16,3 @@ func NewTiltClient() ctrlclient.Client { Client: c, } } - -func NewClientBuilder(client ctrlclient.Client) *fakeClientBuilder { - return &fakeClientBuilder{client: client} -} - -// A stub builder that returns a pre-populated client. -type fakeClientBuilder struct { - client ctrlclient.Client -} - -func (b *fakeClientBuilder) WithUncached(objs ...client.Object) cluster.ClientBuilder { - return b -} - -func (b *fakeClientBuilder) Build(cache cache.Cache, config *rest.Config, options client.Options) (client.Client, error) { - return b.client, nil -} diff --git a/internal/controllers/manager.go b/internal/controllers/manager.go index f7e97f8a93..c41353a4f8 100644 --- a/internal/controllers/manager.go +++ b/internal/controllers/manager.go @@ -11,17 +11,24 @@ import ( "k8s.io/client-go/rest" ctrl "sigs.k8s.io/controller-runtime" ctrlclient "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/cluster" "github.com/tilt-dev/tilt/internal/hud/server" "github.com/tilt-dev/tilt/internal/store" "github.com/tilt-dev/tilt/pkg/logger" ) +type UncachedObjects []ctrlclient.Object + +func ProvideUncachedObjects() UncachedObjects { + return nil +} + type TiltServerControllerManager struct { - config *rest.Config - scheme *runtime.Scheme - builder cluster.ClientBuilder + config *rest.Config + scheme *runtime.Scheme + deferredClient *DeferredClient + uncachedObjects UncachedObjects + manager ctrl.Manager cancel context.CancelFunc } @@ -30,11 +37,12 @@ var _ store.SetUpper = &TiltServerControllerManager{} var _ store.Subscriber = &TiltServerControllerManager{} var _ store.TearDowner = &TiltServerControllerManager{} -func NewTiltServerControllerManager(config *server.APIServerConfig, scheme *runtime.Scheme, builder cluster.ClientBuilder) (*TiltServerControllerManager, error) { +func NewTiltServerControllerManager(config *server.APIServerConfig, scheme *runtime.Scheme, deferredClient *DeferredClient, uncachedObjects UncachedObjects) (*TiltServerControllerManager, error) { return &TiltServerControllerManager{ - config: config.GenericConfig.LoopbackClientConfig, - scheme: scheme, - builder: builder, + config: config.GenericConfig.LoopbackClientConfig, + scheme: scheme, + deferredClient: deferredClient, + uncachedObjects: uncachedObjects, }, nil } @@ -85,7 +93,7 @@ func (m *TiltServerControllerManager) SetUp(ctx context.Context, st store.RStore LeaderElection: false, LeaderElectionID: "tilt-apiserver-ctrl", - ClientBuilder: m.builder, + ClientDisableCacheFor: m.uncachedObjects, Logger: logr, GracefulShutdownTimeout: &timeout, }) @@ -93,6 +101,9 @@ func (m *TiltServerControllerManager) SetUp(ctx context.Context, st store.RStore return fmt.Errorf("unable to create controller manager: %v", err) } + // provide the deferred client with the real client now that it has been initialized + m.deferredClient.initialize(mgr.GetClient()) + go func() { if err := mgr.Start(ctx); err != nil && !errors.Is(err, context.Canceled) { err = fmt.Errorf("controller manager stopped unexpectedly: %v", err) diff --git a/internal/controllers/wire.go b/internal/controllers/wire.go index db52c3237f..34361920d2 100644 --- a/internal/controllers/wire.go +++ b/internal/controllers/wire.go @@ -42,7 +42,7 @@ var WireSet = wire.NewSet( v1alpha1.NewScheme, NewControllerBuilder, - NewClientBuilder, + ProvideUncachedObjects, ProvideDeferredClient, wire.Bind(new(ctrlclient.Client), new(*DeferredClient)), diff --git a/internal/engine/upper_test.go b/internal/engine/upper_test.go index ef8525d64c..cbba385f46 100644 --- a/internal/engine/upper_test.go +++ b/internal/engine/upper_test.go @@ -3970,7 +3970,6 @@ func newTestFixture(t *testing.T) *testFixture { env := k8s.EnvDockerDesktop plm := runtimelog.NewPodLogManager(cdc) plsc := podlogstream.NewController(ctx, cdc, st, b.kClient) - ccb := controllers.NewClientBuilder(cdc).WithUncached(&v1alpha1.FileWatch{}) fwms := fswatch.NewManifestSubscriber(cdc) pfs := portforward.NewSubscriber(b.kClient, cdc) pfs.DisableForTesting() @@ -4011,7 +4010,11 @@ func newTestFixture(t *testing.T) *testFixture { tp := prompt.NewTerminalPrompt(ta, prompt.TTYOpen, openurl.BrowserOpen, log, "localhost", model.WebURL{}) h := hud.NewFakeHud() - tscm, err := controllers.NewTiltServerControllerManager(serverOptions, v1alpha1.NewScheme(), ccb) + tscm, err := controllers.NewTiltServerControllerManager( + serverOptions, + v1alpha1.NewScheme(), + cdc, + controllers.UncachedObjects{&v1alpha1.FileWatch{}}) require.NoError(t, err, "Failed to create Tilt API server controller manager") wsl := server.NewWebsocketList() diff --git a/internal/k8s/portforward/portforward_test.go b/internal/k8s/portforward/portforward_test.go index 0d079c1360..ca5dade0fa 100644 --- a/internal/k8s/portforward/portforward_test.go +++ b/internal/k8s/portforward/portforward_test.go @@ -49,6 +49,8 @@ type fakeConnection struct { closeChan chan bool } +var _ httpstream.Connection = &fakeConnection{} + func newFakeConnection() httpstream.Connection { return &fakeConnection{ closeChan: make(chan bool), @@ -59,6 +61,9 @@ func (c *fakeConnection) CreateStream(headers http.Header) (httpstream.Stream, e return nil, nil } +func (c *fakeConnection) RemoveStreams(_ ...httpstream.Stream) { +} + func (c *fakeConnection) Close() error { if !c.closed { c.closed = true diff --git a/pkg/openapi/zz_generated.openapi.go b/pkg/openapi/zz_generated.openapi.go index cf4ece3231..60a5d3a34d 100644 --- a/pkg/openapi/zz_generated.openapi.go +++ b/pkg/openapi/zz_generated.openapi.go @@ -109,11 +109,11 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "k8s.io/apimachinery/pkg/apis/meta/v1.APIResource": schema_pkg_apis_meta_v1_APIResource(ref), "k8s.io/apimachinery/pkg/apis/meta/v1.APIResourceList": schema_pkg_apis_meta_v1_APIResourceList(ref), "k8s.io/apimachinery/pkg/apis/meta/v1.APIVersions": schema_pkg_apis_meta_v1_APIVersions(ref), + "k8s.io/apimachinery/pkg/apis/meta/v1.ApplyOptions": schema_pkg_apis_meta_v1_ApplyOptions(ref), "k8s.io/apimachinery/pkg/apis/meta/v1.Condition": schema_pkg_apis_meta_v1_Condition(ref), "k8s.io/apimachinery/pkg/apis/meta/v1.CreateOptions": schema_pkg_apis_meta_v1_CreateOptions(ref), "k8s.io/apimachinery/pkg/apis/meta/v1.DeleteOptions": schema_pkg_apis_meta_v1_DeleteOptions(ref), "k8s.io/apimachinery/pkg/apis/meta/v1.Duration": schema_pkg_apis_meta_v1_Duration(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ExportOptions": schema_pkg_apis_meta_v1_ExportOptions(ref), "k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1": schema_pkg_apis_meta_v1_FieldsV1(ref), "k8s.io/apimachinery/pkg/apis/meta/v1.GetOptions": schema_pkg_apis_meta_v1_GetOptions(ref), "k8s.io/apimachinery/pkg/apis/meta/v1.GroupKind": schema_pkg_apis_meta_v1_GroupKind(ref), @@ -3748,6 +3748,65 @@ func schema_pkg_apis_meta_v1_APIVersions(ref common.ReferenceCallback) common.Op } } +func schema_pkg_apis_meta_v1_ApplyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ApplyOptions may be provided when applying an API object. FieldManager is required for apply requests. ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation that speaks specifically to how the options fields relate to apply.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "dryRun": { + SchemaProps: spec.SchemaProps{ + Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "force": { + SchemaProps: spec.SchemaProps{ + Description: "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people.", + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + "fieldManager": { + SchemaProps: spec.SchemaProps{ + Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"force", "fieldManager"}, + }, + }, + } +} + func schema_pkg_apis_meta_v1_Condition(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -3942,50 +4001,6 @@ func schema_pkg_apis_meta_v1_Duration(ref common.ReferenceCallback) common.OpenA } } -func schema_pkg_apis_meta_v1_ExportOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExportOptions is the query options to the standard REST get call. Deprecated. Planned for removal in 1.18.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "export": { - SchemaProps: spec.SchemaProps{ - Description: "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - Default: false, - Type: []string{"boolean"}, - Format: "", - }, - }, - "exact": { - SchemaProps: spec.SchemaProps{ - Description: "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - Default: false, - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"export", "exact"}, - }, - }, - } -} - func schema_pkg_apis_meta_v1_FieldsV1(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ diff --git a/vendor/github.com/Azure/go-autorest/autorest/authorization.go b/vendor/github.com/Azure/go-autorest/autorest/authorization.go index 15138b642f..1226c41115 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/authorization.go +++ b/vendor/github.com/Azure/go-autorest/autorest/authorization.go @@ -299,18 +299,24 @@ type MultiTenantServicePrincipalTokenAuthorizer interface { // NewMultiTenantServicePrincipalTokenAuthorizer crates a BearerAuthorizer using the given token provider func NewMultiTenantServicePrincipalTokenAuthorizer(tp adal.MultitenantOAuthTokenProvider) MultiTenantServicePrincipalTokenAuthorizer { - return &multiTenantSPTAuthorizer{tp: tp} + return NewMultiTenantBearerAuthorizer(tp) } -type multiTenantSPTAuthorizer struct { +// MultiTenantBearerAuthorizer implements bearer authorization across multiple tenants. +type MultiTenantBearerAuthorizer struct { tp adal.MultitenantOAuthTokenProvider } +// NewMultiTenantBearerAuthorizer creates a MultiTenantBearerAuthorizer using the given token provider. +func NewMultiTenantBearerAuthorizer(tp adal.MultitenantOAuthTokenProvider) *MultiTenantBearerAuthorizer { + return &MultiTenantBearerAuthorizer{tp: tp} +} + // WithAuthorization returns a PrepareDecorator that adds an HTTP Authorization header using the // primary token along with the auxiliary authorization header using the auxiliary tokens. // // By default, the token will be automatically refreshed through the Refresher interface. -func (mt multiTenantSPTAuthorizer) WithAuthorization() PrepareDecorator { +func (mt *MultiTenantBearerAuthorizer) WithAuthorization() PrepareDecorator { return func(p Preparer) Preparer { return PreparerFunc(func(r *http.Request) (*http.Request, error) { r, err := p.Prepare(r) @@ -340,3 +346,8 @@ func (mt multiTenantSPTAuthorizer) WithAuthorization() PrepareDecorator { }) } } + +// TokenProvider returns the underlying MultitenantOAuthTokenProvider for this authorizer. +func (mt *MultiTenantBearerAuthorizer) TokenProvider() adal.MultitenantOAuthTokenProvider { + return mt.tp +} diff --git a/vendor/github.com/Azure/go-autorest/autorest/authorization_sas.go b/vendor/github.com/Azure/go-autorest/autorest/authorization_sas.go index 89a659cb66..66501493bd 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/authorization_sas.go +++ b/vendor/github.com/Azure/go-autorest/autorest/authorization_sas.go @@ -54,13 +54,12 @@ func (sas *SASTokenAuthorizer) WithAuthorization() PrepareDecorator { return r, err } - if r.URL.RawQuery != "" { - r.URL.RawQuery = fmt.Sprintf("%s&%s", r.URL.RawQuery, sas.sasToken) - } else { + if r.URL.RawQuery == "" { r.URL.RawQuery = sas.sasToken + } else if !strings.Contains(r.URL.RawQuery, sas.sasToken) { + r.URL.RawQuery = fmt.Sprintf("%s&%s", r.URL.RawQuery, sas.sasToken) } - r.RequestURI = r.URL.String() return Prepare(r) }) } diff --git a/vendor/github.com/Azure/go-autorest/autorest/authorization_storage.go b/vendor/github.com/Azure/go-autorest/autorest/authorization_storage.go index b844a3df41..2af5030a1c 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/authorization_storage.go +++ b/vendor/github.com/Azure/go-autorest/autorest/authorization_storage.go @@ -152,6 +152,9 @@ func buildCanonicalizedResource(accountName, uri string, keyType SharedKeyType) // the resource's URI should be encoded exactly as it is in the URI. // -- https://msdn.microsoft.com/en-gb/library/azure/dd179428.aspx cr.WriteString(u.EscapedPath()) + } else { + // a slash is required to indicate the root path + cr.WriteString("/") } params, err := url.ParseQuery(u.RawQuery) diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/async.go b/vendor/github.com/Azure/go-autorest/autorest/azure/async.go index 5326f1fd3b..17fb4d8c52 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/async.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/async.go @@ -413,12 +413,12 @@ func (pt *pollingTrackerBase) updateRawBody() error { if err != nil { return autorest.NewErrorWithError(err, "pollingTrackerBase", "updateRawBody", nil, "failed to read response body") } + // put the body back so it's available to other callers + pt.resp.Body = ioutil.NopCloser(bytes.NewReader(b)) // observed in 204 responses over HTTP/2.0; the content length is -1 but body is empty if len(b) == 0 { return nil } - // put the body back so it's available to other callers - pt.resp.Body = ioutil.NopCloser(bytes.NewReader(b)) if err = json.Unmarshal(b, &pt.rawBody); err != nil { return autorest.NewErrorWithError(err, "pollingTrackerBase", "updateRawBody", nil, "failed to unmarshal response body") } @@ -466,7 +466,12 @@ func (pt *pollingTrackerBase) updateErrorFromResponse() { re := respErr{} defer pt.resp.Body.Close() var b []byte - if b, err = ioutil.ReadAll(pt.resp.Body); err != nil || len(b) == 0 { + if b, err = ioutil.ReadAll(pt.resp.Body); err != nil { + goto Default + } + // put the body back so it's available to other callers + pt.resp.Body = ioutil.NopCloser(bytes.NewReader(b)) + if len(b) == 0 { goto Default } if err = json.Unmarshal(b, &re); err != nil { diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/azure.go b/vendor/github.com/Azure/go-autorest/autorest/azure/azure.go index 26be936b7e..a0b969dffa 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/azure.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/azure.go @@ -171,6 +171,11 @@ type Resource struct { ResourceName string } +// String function returns a string in form of azureResourceID +func (r Resource) String() string { + return fmt.Sprintf("/subscriptions/%s/resourceGroups/%s/providers/%s/%s/%s", r.SubscriptionID, r.ResourceGroup, r.Provider, r.ResourceType, r.ResourceName) +} + // ParseResourceID parses a resource ID into a ResourceDetails struct. // See https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-functions-resource#return-value-4. func ParseResourceID(resourceID string) (Resource, error) { diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/environments.go b/vendor/github.com/Azure/go-autorest/autorest/azure/environments.go index faff932759..9bbc0899e4 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/environments.go +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/environments.go @@ -46,6 +46,8 @@ type ResourceIdentifier struct { Batch string `json:"batch"` OperationalInsights string `json:"operationalInsights"` Storage string `json:"storage"` + Synapse string `json:"synapse"` + ServiceBus string `json:"serviceBus"` } // Environment represents a set of endpoints for each of Azure's Clouds. @@ -71,6 +73,8 @@ type Environment struct { ContainerRegistryDNSSuffix string `json:"containerRegistryDNSSuffix"` CosmosDBDNSSuffix string `json:"cosmosDBDNSSuffix"` TokenAudience string `json:"tokenAudience"` + APIManagementHostNameSuffix string `json:"apiManagementHostNameSuffix"` + SynapseEndpointSuffix string `json:"synapseEndpointSuffix"` ResourceIdentifiers ResourceIdentifier `json:"resourceIdentifiers"` } @@ -98,6 +102,8 @@ var ( ContainerRegistryDNSSuffix: "azurecr.io", CosmosDBDNSSuffix: "documents.azure.com", TokenAudience: "https://management.azure.com/", + APIManagementHostNameSuffix: "azure-api.net", + SynapseEndpointSuffix: "dev.azuresynapse.net", ResourceIdentifiers: ResourceIdentifier{ Graph: "https://graph.windows.net/", KeyVault: "https://vault.azure.net", @@ -105,6 +111,8 @@ var ( Batch: "https://batch.core.windows.net/", OperationalInsights: "https://api.loganalytics.io", Storage: "https://storage.azure.com/", + Synapse: "https://dev.azuresynapse.net", + ServiceBus: "https://servicebus.azure.net/", }, } @@ -131,6 +139,8 @@ var ( ContainerRegistryDNSSuffix: "azurecr.us", CosmosDBDNSSuffix: "documents.azure.us", TokenAudience: "https://management.usgovcloudapi.net/", + APIManagementHostNameSuffix: "azure-api.us", + SynapseEndpointSuffix: NotAvailable, ResourceIdentifiers: ResourceIdentifier{ Graph: "https://graph.windows.net/", KeyVault: "https://vault.usgovcloudapi.net", @@ -138,6 +148,8 @@ var ( Batch: "https://batch.core.usgovcloudapi.net/", OperationalInsights: "https://api.loganalytics.us", Storage: "https://storage.azure.com/", + Synapse: NotAvailable, + ServiceBus: "https://servicebus.azure.net/", }, } @@ -164,6 +176,8 @@ var ( ContainerRegistryDNSSuffix: "azurecr.cn", CosmosDBDNSSuffix: "documents.azure.cn", TokenAudience: "https://management.chinacloudapi.cn/", + APIManagementHostNameSuffix: "azure-api.cn", + SynapseEndpointSuffix: "dev.azuresynapse.azure.cn", ResourceIdentifiers: ResourceIdentifier{ Graph: "https://graph.chinacloudapi.cn/", KeyVault: "https://vault.azure.cn", @@ -171,6 +185,8 @@ var ( Batch: "https://batch.chinacloudapi.cn/", OperationalInsights: NotAvailable, Storage: "https://storage.azure.com/", + Synapse: "https://dev.azuresynapse.net", + ServiceBus: "https://servicebus.azure.net/", }, } @@ -197,6 +213,8 @@ var ( ContainerRegistryDNSSuffix: NotAvailable, CosmosDBDNSSuffix: "documents.microsoftazure.de", TokenAudience: "https://management.microsoftazure.de/", + APIManagementHostNameSuffix: NotAvailable, + SynapseEndpointSuffix: NotAvailable, ResourceIdentifiers: ResourceIdentifier{ Graph: "https://graph.cloudapi.de/", KeyVault: "https://vault.microsoftazure.de", @@ -204,6 +222,8 @@ var ( Batch: "https://batch.cloudapi.de/", OperationalInsights: NotAvailable, Storage: "https://storage.azure.com/", + Synapse: NotAvailable, + ServiceBus: "https://servicebus.azure.net/", }, } ) diff --git a/vendor/github.com/Azure/go-autorest/autorest/go.mod b/vendor/github.com/Azure/go-autorest/autorest/go.mod index b66c78da2c..75a534f108 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/go.mod +++ b/vendor/github.com/Azure/go-autorest/autorest/go.mod @@ -4,9 +4,9 @@ go 1.12 require ( github.com/Azure/go-autorest v14.2.0+incompatible - github.com/Azure/go-autorest/autorest/adal v0.9.0 - github.com/Azure/go-autorest/autorest/mocks v0.4.0 + github.com/Azure/go-autorest/autorest/adal v0.9.5 + github.com/Azure/go-autorest/autorest/mocks v0.4.1 github.com/Azure/go-autorest/logger v0.2.0 github.com/Azure/go-autorest/tracing v0.6.0 - golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 + golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0 ) diff --git a/vendor/github.com/Azure/go-autorest/autorest/go.sum b/vendor/github.com/Azure/go-autorest/autorest/go.sum index 96d2ad0fcd..fa27c68d10 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/go.sum +++ b/vendor/github.com/Azure/go-autorest/autorest/go.sum @@ -1,21 +1,21 @@ github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest/adal v0.9.0 h1:SigMbuFNuKgc1xcGhaeapbh+8fgsu+GxgDRFyg7f5lM= -github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= +github.com/Azure/go-autorest/autorest/adal v0.9.5 h1:Y3bBUV4rTuxenJJs41HU3qmqsb+auo+a3Lz+PlJPpL0= +github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.0 h1:z20OWOSG5aCye0HEkDp6TPmP17ZcfeMxPi6HnSALa8c= -github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= +github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/logger v0.2.0 h1:e4RVHVZKC5p6UANLJHkM4OfR1UKZPj8Wt8Pcx+3oqrE= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk= +github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0 h1:hb9wdF1z5waM+dSIICn1l0DkLVDT3hqhhQsDNUmHPRE= +golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/Azure/go-autorest/autorest/preparer.go b/vendor/github.com/Azure/go-autorest/autorest/preparer.go index 6e8ed64eba..98574a4155 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/preparer.go +++ b/vendor/github.com/Azure/go-autorest/autorest/preparer.go @@ -127,10 +127,7 @@ func WithHeader(header string, value string) PrepareDecorator { return PreparerFunc(func(r *http.Request) (*http.Request, error) { r, err := p.Prepare(r) if err == nil { - if r.Header == nil { - r.Header = make(http.Header) - } - r.Header.Set(http.CanonicalHeaderKey(header), value) + setHeader(r, http.CanonicalHeaderKey(header), value) } return r, err }) @@ -230,7 +227,7 @@ func AsPost() PrepareDecorator { return WithMethod("POST") } func AsPut() PrepareDecorator { return WithMethod("PUT") } // WithBaseURL returns a PrepareDecorator that populates the http.Request with a url.URL constructed -// from the supplied baseUrl. +// from the supplied baseUrl. Query parameters will be encoded as required. func WithBaseURL(baseURL string) PrepareDecorator { return func(p Preparer) Preparer { return PreparerFunc(func(r *http.Request) (*http.Request, error) { @@ -241,11 +238,16 @@ func WithBaseURL(baseURL string) PrepareDecorator { return r, err } if u.Scheme == "" { - err = fmt.Errorf("autorest: No scheme detected in URL %s", baseURL) + return r, fmt.Errorf("autorest: No scheme detected in URL %s", baseURL) } - if err == nil { - r.URL = u + if u.RawQuery != "" { + q, err := url.ParseQuery(u.RawQuery) + if err != nil { + return r, err + } + u.RawQuery = q.Encode() } + r.URL = u } return r, err }) @@ -290,10 +292,7 @@ func WithFormData(v url.Values) PrepareDecorator { if err == nil { s := v.Encode() - if r.Header == nil { - r.Header = make(http.Header) - } - r.Header.Set(http.CanonicalHeaderKey(headerContentType), mimeTypeFormPost) + setHeader(r, http.CanonicalHeaderKey(headerContentType), mimeTypeFormPost) r.ContentLength = int64(len(s)) r.Body = ioutil.NopCloser(strings.NewReader(s)) } @@ -329,10 +328,7 @@ func WithMultiPartFormData(formDataParameters map[string]interface{}) PrepareDec if err = writer.Close(); err != nil { return r, err } - if r.Header == nil { - r.Header = make(http.Header) - } - r.Header.Set(http.CanonicalHeaderKey(headerContentType), writer.FormDataContentType()) + setHeader(r, http.CanonicalHeaderKey(headerContentType), writer.FormDataContentType()) r.Body = ioutil.NopCloser(bytes.NewReader(body.Bytes())) r.ContentLength = int64(body.Len()) return r, err @@ -437,6 +433,7 @@ func WithXML(v interface{}) PrepareDecorator { bytesWithHeader := []byte(withHeader) r.ContentLength = int64(len(bytesWithHeader)) + setHeader(r, headerContentLength, fmt.Sprintf("%d", len(bytesWithHeader))) r.Body = ioutil.NopCloser(bytes.NewReader(bytesWithHeader)) } } diff --git a/vendor/github.com/Azure/go-autorest/autorest/sender.go b/vendor/github.com/Azure/go-autorest/autorest/sender.go index 704f3e55e0..78610ef204 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/sender.go +++ b/vendor/github.com/Azure/go-autorest/autorest/sender.go @@ -23,11 +23,29 @@ import ( "net/http" "net/http/cookiejar" "strconv" + "sync" "time" "github.com/Azure/go-autorest/tracing" ) +// there is one sender per TLS renegotiation type, i.e. count of tls.RenegotiationSupport enums +const defaultSendersCount = 3 + +type defaultSender struct { + sender Sender + init *sync.Once +} + +// each type of sender will be created on demand in sender() +var defaultSenders [defaultSendersCount]defaultSender + +func init() { + for i := 0; i < defaultSendersCount; i++ { + defaultSenders[i].init = &sync.Once{} + } +} + // used as a key type in context.WithValue() type ctxSendDecorators struct{} @@ -107,26 +125,31 @@ func SendWithSender(s Sender, r *http.Request, decorators ...SendDecorator) (*ht } func sender(renengotiation tls.RenegotiationSupport) Sender { - // Use behaviour compatible with DefaultTransport, but require TLS minimum version. - defaultTransport := http.DefaultTransport.(*http.Transport) - transport := &http.Transport{ - Proxy: defaultTransport.Proxy, - DialContext: defaultTransport.DialContext, - MaxIdleConns: defaultTransport.MaxIdleConns, - IdleConnTimeout: defaultTransport.IdleConnTimeout, - TLSHandshakeTimeout: defaultTransport.TLSHandshakeTimeout, - ExpectContinueTimeout: defaultTransport.ExpectContinueTimeout, - TLSClientConfig: &tls.Config{ - MinVersion: tls.VersionTLS12, - Renegotiation: renengotiation, - }, - } - var roundTripper http.RoundTripper = transport - if tracing.IsEnabled() { - roundTripper = tracing.NewTransport(transport) - } - j, _ := cookiejar.New(nil) - return &http.Client{Jar: j, Transport: roundTripper} + // note that we can't init defaultSenders in init() since it will + // execute before calling code has had a chance to enable tracing + defaultSenders[renengotiation].init.Do(func() { + // Use behaviour compatible with DefaultTransport, but require TLS minimum version. + defaultTransport := http.DefaultTransport.(*http.Transport) + transport := &http.Transport{ + Proxy: defaultTransport.Proxy, + DialContext: defaultTransport.DialContext, + MaxIdleConns: defaultTransport.MaxIdleConns, + IdleConnTimeout: defaultTransport.IdleConnTimeout, + TLSHandshakeTimeout: defaultTransport.TLSHandshakeTimeout, + ExpectContinueTimeout: defaultTransport.ExpectContinueTimeout, + TLSClientConfig: &tls.Config{ + MinVersion: tls.VersionTLS12, + Renegotiation: renengotiation, + }, + } + var roundTripper http.RoundTripper = transport + if tracing.IsEnabled() { + roundTripper = tracing.NewTransport(transport) + } + j, _ := cookiejar.New(nil) + defaultSenders[renengotiation].sender = &http.Client{Jar: j, Transport: roundTripper} + }) + return defaultSenders[renengotiation].sender } // AfterDelay returns a SendDecorator that delays for the passed time.Duration before diff --git a/vendor/github.com/Azure/go-autorest/autorest/utility.go b/vendor/github.com/Azure/go-autorest/autorest/utility.go index 67baab2cee..416041c3f3 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/utility.go +++ b/vendor/github.com/Azure/go-autorest/autorest/utility.go @@ -237,3 +237,10 @@ func DrainResponseBody(resp *http.Response) error { } return nil } + +func setHeader(r *http.Request, key, value string) { + if r.Header == nil { + r.Header = make(http.Header) + } + r.Header.Set(key, value) +} diff --git a/vendor/github.com/NYTimes/gziphandler/.travis.yml b/vendor/github.com/NYTimes/gziphandler/.travis.yml index d2b67f69c1..94dfae362d 100644 --- a/vendor/github.com/NYTimes/gziphandler/.travis.yml +++ b/vendor/github.com/NYTimes/gziphandler/.travis.yml @@ -1,6 +1,10 @@ language: go - go: - - 1.7 - - 1.8 + - 1.x - tip +env: + - GO111MODULE=on +install: + - go mod download +script: + - go test -race -v diff --git a/vendor/github.com/NYTimes/gziphandler/LICENSE b/vendor/github.com/NYTimes/gziphandler/LICENSE new file mode 100644 index 0000000000..df6192d36f --- /dev/null +++ b/vendor/github.com/NYTimes/gziphandler/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016-2017 The New York Times Company + + 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. diff --git a/vendor/github.com/NYTimes/gziphandler/LICENSE.md b/vendor/github.com/NYTimes/gziphandler/LICENSE.md deleted file mode 100644 index b7e2ecb63f..0000000000 --- a/vendor/github.com/NYTimes/gziphandler/LICENSE.md +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2015 The New York Times Company - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this library 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. diff --git a/vendor/github.com/NYTimes/gziphandler/README.md b/vendor/github.com/NYTimes/gziphandler/README.md index 6d72460707..6259acaca7 100644 --- a/vendor/github.com/NYTimes/gziphandler/README.md +++ b/vendor/github.com/NYTimes/gziphandler/README.md @@ -6,6 +6,10 @@ response body, for clients which support it. Although it's usually simpler to leave that to a reverse proxy (like nginx or Varnish), this package is useful when that's undesirable. +## Install +```bash +go get -u github.com/NYTimes/gziphandler +``` ## Usage @@ -48,5 +52,5 @@ The docs can be found at [godoc.org][docs], as usual. -[docs]: https://godoc.org/github.com/nytimes/gziphandler -[license]: https://github.com/nytimes/gziphandler/blob/master/LICENSE.md +[docs]: https://godoc.org/github.com/NYTimes/gziphandler +[license]: https://github.com/NYTimes/gziphandler/blob/master/LICENSE diff --git a/vendor/github.com/NYTimes/gziphandler/go.mod b/vendor/github.com/NYTimes/gziphandler/go.mod new file mode 100644 index 0000000000..8019012742 --- /dev/null +++ b/vendor/github.com/NYTimes/gziphandler/go.mod @@ -0,0 +1,5 @@ +module github.com/NYTimes/gziphandler + +go 1.11 + +require github.com/stretchr/testify v1.3.0 diff --git a/vendor/github.com/NYTimes/gziphandler/go.sum b/vendor/github.com/NYTimes/gziphandler/go.sum new file mode 100644 index 0000000000..4347755afe --- /dev/null +++ b/vendor/github.com/NYTimes/gziphandler/go.sum @@ -0,0 +1,7 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= diff --git a/vendor/github.com/NYTimes/gziphandler/gzip.go b/vendor/github.com/NYTimes/gziphandler/gzip.go index ea6dba1e79..c112bbdf81 100644 --- a/vendor/github.com/NYTimes/gziphandler/gzip.go +++ b/vendor/github.com/NYTimes/gziphandler/gzip.go @@ -1,10 +1,11 @@ -package gziphandler +package gziphandler // import "github.com/NYTimes/gziphandler" import ( "bufio" "compress/gzip" "fmt" "io" + "mime" "net" "net/http" "strconv" @@ -28,9 +29,11 @@ const ( // The examples seem to indicate that it is. DefaultQValue = 1.0 - // DefaultMinSize defines the minimum size to reach to enable compression. - // It's 512 bytes. - DefaultMinSize = 512 + // DefaultMinSize is the default minimum size until we enable gzip compression. + // 1500 bytes is the MTU size for the internet since that is the largest size allowed at the network layer. + // If you take a file that is 1300 bytes and compress it to 800 bytes, it’s still transmitted in that same 1500 byte packet regardless, so you’ve gained nothing. + // That being the case, you should restrict the gzip compression to files with a size greater than a single packet, 1400 bytes (1.4KB) is a safe value. + DefaultMinSize = 1400 ) // gzipWriterPools stores a sync.Pool for each compression level for reuse of @@ -80,40 +83,71 @@ type GzipResponseWriter struct { minSize int // Specifed the minimum response size to gzip. If the response length is bigger than this value, it is compressed. buf []byte // Holds the first part of the write before reaching the minSize or the end of the write. + ignore bool // If true, then we immediately passthru writes to the underlying ResponseWriter. + + contentTypes []parsedContentType // Only compress if the response is one of these content-types. All are accepted if empty. +} + +type GzipResponseWriterWithCloseNotify struct { + *GzipResponseWriter +} + +func (w GzipResponseWriterWithCloseNotify) CloseNotify() <-chan bool { + return w.ResponseWriter.(http.CloseNotifier).CloseNotify() } // Write appends data to the gzip writer. func (w *GzipResponseWriter) Write(b []byte) (int, error) { - // If content type is not set. - if _, ok := w.Header()[contentType]; !ok { - // It infer it from the uncompressed body. - w.Header().Set(contentType, http.DetectContentType(b)) - } - // GZIP responseWriter is initialized. Use the GZIP responseWriter. if w.gw != nil { - n, err := w.gw.Write(b) - return n, err + return w.gw.Write(b) + } + + // If we have already decided not to use GZIP, immediately passthrough. + if w.ignore { + return w.ResponseWriter.Write(b) } // Save the write into a buffer for later use in GZIP responseWriter (if content is long enough) or at close with regular responseWriter. // On the first write, w.buf changes from nil to a valid slice w.buf = append(w.buf, b...) - // If the global writes are bigger than the minSize, compression is enable. - if len(w.buf) >= w.minSize { - err := w.startGzip() - if err != nil { - return 0, err + var ( + cl, _ = strconv.Atoi(w.Header().Get(contentLength)) + ct = w.Header().Get(contentType) + ce = w.Header().Get(contentEncoding) + ) + // Only continue if they didn't already choose an encoding or a known unhandled content length or type. + if ce == "" && (cl == 0 || cl >= w.minSize) && (ct == "" || handleContentType(w.contentTypes, ct)) { + // If the current buffer is less than minSize and a Content-Length isn't set, then wait until we have more data. + if len(w.buf) < w.minSize && cl == 0 { + return len(b), nil + } + // If the Content-Length is larger than minSize or the current buffer is larger than minSize, then continue. + if cl >= w.minSize || len(w.buf) >= w.minSize { + // If a Content-Type wasn't specified, infer it from the current buffer. + if ct == "" { + ct = http.DetectContentType(w.buf) + w.Header().Set(contentType, ct) + } + // If the Content-Type is acceptable to GZIP, initialize the GZIP writer. + if handleContentType(w.contentTypes, ct) { + if err := w.startGzip(); err != nil { + return 0, err + } + return len(b), nil + } } } - + // If we got here, we should not GZIP this response. + if err := w.startPlain(); err != nil { + return 0, err + } return len(b), nil } -// startGzip initialize any GZIP specific informations. +// startGzip initializes a GZIP writer and writes the buffer. func (w *GzipResponseWriter) startGzip() error { - // Set the GZIP header. w.Header().Set(contentEncoding, "gzip") @@ -125,28 +159,57 @@ func (w *GzipResponseWriter) startGzip() error { // Write the header to gzip response. if w.code != 0 { w.ResponseWriter.WriteHeader(w.code) + // Ensure that no other WriteHeader's happen + w.code = 0 } - // Initialize the GZIP response. - w.init() - - // Flush the buffer into the gzip reponse. - n, err := w.gw.Write(w.buf) + // Initialize and flush the buffer into the gzip response if there are any bytes. + // If there aren't any, we shouldn't initialize it yet because on Close it will + // write the gzip header even if nothing was ever written. + if len(w.buf) > 0 { + // Initialize the GZIP response. + w.init() + n, err := w.gw.Write(w.buf) + + // This should never happen (per io.Writer docs), but if the write didn't + // accept the entire buffer but returned no specific error, we have no clue + // what's going on, so abort just to be safe. + if err == nil && n < len(w.buf) { + err = io.ErrShortWrite + } + return err + } + return nil +} +// startPlain writes to sent bytes and buffer the underlying ResponseWriter without gzip. +func (w *GzipResponseWriter) startPlain() error { + if w.code != 0 { + w.ResponseWriter.WriteHeader(w.code) + // Ensure that no other WriteHeader's happen + w.code = 0 + } + w.ignore = true + // If Write was never called then don't call Write on the underlying ResponseWriter. + if w.buf == nil { + return nil + } + n, err := w.ResponseWriter.Write(w.buf) + w.buf = nil // This should never happen (per io.Writer docs), but if the write didn't // accept the entire buffer but returned no specific error, we have no clue // what's going on, so abort just to be safe. if err == nil && n < len(w.buf) { - return io.ErrShortWrite + err = io.ErrShortWrite } - - w.buf = nil return err } // WriteHeader just saves the response code until close or GZIP effective writes. func (w *GzipResponseWriter) WriteHeader(code int) { - w.code = code + if w.code == 0 { + w.code = code + } } // init graps a new gzip writer from the gzipWriterPool and writes the correct @@ -161,19 +224,18 @@ func (w *GzipResponseWriter) init() { // Close will close the gzip.Writer and will put it back in the gzipWriterPool. func (w *GzipResponseWriter) Close() error { + if w.ignore { + return nil + } + if w.gw == nil { - // Gzip not trigged yet, write out regular response. - if w.code != 0 { - w.ResponseWriter.WriteHeader(w.code) - } - if w.buf != nil { - _, writeErr := w.ResponseWriter.Write(w.buf) - // Returns the error if any at write. - if writeErr != nil { - return fmt.Errorf("gziphandler: write to regular responseWriter at close gets error: %q", writeErr.Error()) - } + // GZIP not triggered yet, write out regular response. + err := w.startPlain() + // Returns the error if any at write. + if err != nil { + err = fmt.Errorf("gziphandler: write to regular responseWriter at close gets error: %q", err.Error()) } - return nil + return err } err := w.gw.Close() @@ -186,6 +248,14 @@ func (w *GzipResponseWriter) Close() error { // http.ResponseWriter if it is an http.Flusher. This makes GzipResponseWriter // an http.Flusher. func (w *GzipResponseWriter) Flush() { + if w.gw == nil && !w.ignore { + // Only flush once startGzip or startPlain has been called. + // + // Flush is thus a no-op until we're certain whether a plain + // or gzipped response will be served. + return + } + if w.gw != nil { w.gw.Flush() } @@ -230,27 +300,44 @@ func NewGzipLevelHandler(level int) (func(http.Handler) http.Handler, error) { // NewGzipLevelAndMinSize behave as NewGzipLevelHandler except it let the caller // specify the minimum size before compression. func NewGzipLevelAndMinSize(level, minSize int) (func(http.Handler) http.Handler, error) { - if level != gzip.DefaultCompression && (level < gzip.BestSpeed || level > gzip.BestCompression) { - return nil, fmt.Errorf("invalid compression level requested: %d", level) + return GzipHandlerWithOpts(CompressionLevel(level), MinSize(minSize)) +} + +func GzipHandlerWithOpts(opts ...option) (func(http.Handler) http.Handler, error) { + c := &config{ + level: gzip.DefaultCompression, + minSize: DefaultMinSize, } - if minSize < 0 { - return nil, fmt.Errorf("minimum size must be more than zero") + + for _, o := range opts { + o(c) + } + + if err := c.validate(); err != nil { + return nil, err } + return func(h http.Handler) http.Handler { - index := poolIndex(level) + index := poolIndex(c.level) return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Add(vary, acceptEncoding) - if acceptsGzip(r) { gw := &GzipResponseWriter{ ResponseWriter: w, index: index, - minSize: minSize, + minSize: c.minSize, + contentTypes: c.contentTypes, } defer gw.Close() - h.ServeHTTP(gw, r) + if _, ok := w.(http.CloseNotifier); ok { + gwcn := GzipResponseWriterWithCloseNotify{gw} + h.ServeHTTP(gwcn, r) + } else { + h.ServeHTTP(gw, r) + } + } else { h.ServeHTTP(w, r) } @@ -258,6 +345,98 @@ func NewGzipLevelAndMinSize(level, minSize int) (func(http.Handler) http.Handler }, nil } +// Parsed representation of one of the inputs to ContentTypes. +// See https://golang.org/pkg/mime/#ParseMediaType +type parsedContentType struct { + mediaType string + params map[string]string +} + +// equals returns whether this content type matches another content type. +func (pct parsedContentType) equals(mediaType string, params map[string]string) bool { + if pct.mediaType != mediaType { + return false + } + // if pct has no params, don't care about other's params + if len(pct.params) == 0 { + return true + } + + // if pct has any params, they must be identical to other's. + if len(pct.params) != len(params) { + return false + } + for k, v := range pct.params { + if w, ok := params[k]; !ok || v != w { + return false + } + } + return true +} + +// Used for functional configuration. +type config struct { + minSize int + level int + contentTypes []parsedContentType +} + +func (c *config) validate() error { + if c.level != gzip.DefaultCompression && (c.level < gzip.BestSpeed || c.level > gzip.BestCompression) { + return fmt.Errorf("invalid compression level requested: %d", c.level) + } + + if c.minSize < 0 { + return fmt.Errorf("minimum size must be more than zero") + } + + return nil +} + +type option func(c *config) + +func MinSize(size int) option { + return func(c *config) { + c.minSize = size + } +} + +func CompressionLevel(level int) option { + return func(c *config) { + c.level = level + } +} + +// ContentTypes specifies a list of content types to compare +// the Content-Type header to before compressing. If none +// match, the response will be returned as-is. +// +// Content types are compared in a case-insensitive, whitespace-ignored +// manner. +// +// A MIME type without any other directive will match a content type +// that has the same MIME type, regardless of that content type's other +// directives. I.e., "text/html" will match both "text/html" and +// "text/html; charset=utf-8". +// +// A MIME type with any other directive will only match a content type +// that has the same MIME type and other directives. I.e., +// "text/html; charset=utf-8" will only match "text/html; charset=utf-8". +// +// By default, responses are gzipped regardless of +// Content-Type. +func ContentTypes(types []string) option { + return func(c *config) { + c.contentTypes = []parsedContentType{} + for _, v := range types { + mediaType, params, err := mime.ParseMediaType(v) + if err == nil { + c.contentTypes = append(c.contentTypes, parsedContentType{mediaType, params}) + } + } + } +} + // GzipHandler wraps an HTTP handler, to transparently gzip the response body if // the client supports it (via the Accept-Encoding header). This will compress at // the default compression level. @@ -273,6 +452,27 @@ func acceptsGzip(r *http.Request) bool { return acceptedEncodings["gzip"] > 0.0 } +// returns true if we've been configured to compress the specific content type. +func handleContentType(contentTypes []parsedContentType, ct string) bool { + // If contentTypes is empty we handle all content types. + if len(contentTypes) == 0 { + return true + } + + mediaType, params, err := mime.ParseMediaType(ct) + if err != nil { + return false + } + + for _, c := range contentTypes { + if c.equals(mediaType, params) { + return true + } + } + + return false +} + // parseEncodings attempts to parse a list of codings, per RFC 2616, as might // appear in an Accept-Encoding header. It returns a map of content-codings to // quality values, and an error containing the errors encountered. It's probably diff --git a/vendor/github.com/docker/spdystream/LICENSE b/vendor/github.com/docker/spdystream/LICENSE deleted file mode 100644 index 9e4bd4dbee..0000000000 --- a/vendor/github.com/docker/spdystream/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2014-2015 Docker, Inc. - - 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. diff --git a/vendor/github.com/docker/spdystream/LICENSE.docs b/vendor/github.com/docker/spdystream/LICENSE.docs deleted file mode 100644 index e26cd4fc8e..0000000000 --- a/vendor/github.com/docker/spdystream/LICENSE.docs +++ /dev/null @@ -1,425 +0,0 @@ -Attribution-ShareAlike 4.0 International - -======================================================================= - -Creative Commons Corporation ("Creative Commons") is not a law firm and -does not provide legal services or legal advice. Distribution of -Creative Commons public licenses does not create a lawyer-client or -other relationship. Creative Commons makes its licenses and related -information available on an "as-is" basis. Creative Commons gives no -warranties regarding its licenses, any material licensed under their -terms and conditions, or any related information. Creative Commons -disclaims all liability for damages resulting from their use to the -fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and -conditions that creators and other rights holders may use to share -original works of authorship and other material subject to copyright -and certain other rights specified in the public license below. The -following considerations are for informational purposes only, are not -exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees - -======================================================================= - -Creative Commons Attribution-ShareAlike 4.0 International Public -License - -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution-ShareAlike 4.0 International Public License ("Public -License"). To the extent this Public License may be interpreted as a -contract, You are granted the Licensed Rights in consideration of Your -acceptance of these terms and conditions, and the Licensor grants You -such rights in consideration of benefits the Licensor receives from -making the Licensed Material available under these terms and -conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - - c. BY-SA Compatible License means a license listed at - creativecommons.org/compatiblelicenses, approved by Creative - Commons as essentially the equivalent of this Public License. - - d. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - - e. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - - f. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - - g. License Elements means the license attributes listed in the name - of a Creative Commons Public License. The License Elements of this - Public License are Attribution and ShareAlike. - - h. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - - i. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - - j. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - - k. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - - l. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - - m. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - - -Section 2 -- Scope. - - a. License grant. - - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - - a. reproduce and Share the Licensed Material, in whole or - in part; and - - b. produce, reproduce, and Share Adapted Material. - - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - - 3. Term. The term of this Public License is specified in Section - 6(a). - - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - - 5. Downstream recipients. - - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - - b. Additional offer from the Licensor -- Adapted Material. - Every recipient of Adapted Material from You - automatically receives an offer from the Licensor to - exercise the Licensed Rights in the Adapted Material - under the conditions of the Adapter's License You apply. - - c. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - - b. Other rights. - - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this - Public License. - - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. - - a. Attribution. - - 1. If You Share the Licensed Material (including in modified - form), You must: - - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of - warranties; - - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - - b. ShareAlike. - - In addition to the conditions in Section 3(a), if You Share - Adapted Material You produce, the following conditions also apply. - - 1. The Adapter's License You apply must be a Creative Commons - license with the same License Elements, this version or - later, or a BY-SA Compatible License. - - 2. You must include the text of, or the URI or hyperlink to, the - Adapter's License You apply. You may satisfy this condition - in any reasonable manner based on the medium, means, and - context in which You Share Adapted Material. - - 3. You may not offer or impose any additional or different terms - or conditions on, or apply any Effective Technological - Measures to, Adapted Material that restrict exercise of the - rights granted under the Adapter's License You apply. - - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material, - - including for purposes of Section 3(b); and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not -replace Your obligations under this Public License where the Licensed -Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. - - -======================================================================= - -Creative Commons is not a party to its public licenses. -Notwithstanding, Creative Commons may elect to apply one of its public -licenses to material it publishes and in those instances will be -considered the "Licensor." Except for the limited purpose of indicating -that material is shared under a Creative Commons public license or as -otherwise permitted by the Creative Commons policies published at -creativecommons.org/policies, Creative Commons does not authorize the -use of the trademark "Creative Commons" or any other trademark or logo -of Creative Commons without its prior written consent including, -without limitation, in connection with any unauthorized modifications -to any of its public licenses or any other arrangements, -understandings, or agreements concerning use of licensed material. For -the avoidance of doubt, this paragraph does not form part of the public -licenses. - -Creative Commons may be contacted at creativecommons.org. diff --git a/vendor/github.com/docker/spdystream/MAINTAINERS b/vendor/github.com/docker/spdystream/MAINTAINERS deleted file mode 100644 index 14e263325c..0000000000 --- a/vendor/github.com/docker/spdystream/MAINTAINERS +++ /dev/null @@ -1,28 +0,0 @@ -# Spdystream maintainers file -# -# This file describes who runs the docker/spdystream project and how. -# This is a living document - if you see something out of date or missing, speak up! -# -# It is structured to be consumable by both humans and programs. -# To extract its contents programmatically, use any TOML-compliant parser. -# -# This file is compiled into the MAINTAINERS file in docker/opensource. -# -[Org] - [Org."Core maintainers"] - people = [ - "dmcgowan", - ] - -[people] - -# A reference list of all people associated with the project. -# All other sections should refer to people by their canonical key -# in the people section. - - # ADD YOURSELF HERE IN ALPHABETICAL ORDER - - [people.dmcgowan] - Name = "Derek McGowan" - Email = "derek@docker.com" - GitHub = "dmcgowan" diff --git a/vendor/github.com/docker/spdystream/README.md b/vendor/github.com/docker/spdystream/README.md deleted file mode 100644 index 11cccd0a09..0000000000 --- a/vendor/github.com/docker/spdystream/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# SpdyStream - -A multiplexed stream library using spdy - -## Usage - -Client example (connecting to mirroring server without auth) - -```go -package main - -import ( - "fmt" - "github.com/docker/spdystream" - "net" - "net/http" -) - -func main() { - conn, err := net.Dial("tcp", "localhost:8080") - if err != nil { - panic(err) - } - spdyConn, err := spdystream.NewConnection(conn, false) - if err != nil { - panic(err) - } - go spdyConn.Serve(spdystream.NoOpStreamHandler) - stream, err := spdyConn.CreateStream(http.Header{}, nil, false) - if err != nil { - panic(err) - } - - stream.Wait() - - fmt.Fprint(stream, "Writing to stream") - - buf := make([]byte, 25) - stream.Read(buf) - fmt.Println(string(buf)) - - stream.Close() -} -``` - -Server example (mirroring server without auth) - -```go -package main - -import ( - "github.com/docker/spdystream" - "net" -) - -func main() { - listener, err := net.Listen("tcp", "localhost:8080") - if err != nil { - panic(err) - } - for { - conn, err := listener.Accept() - if err != nil { - panic(err) - } - spdyConn, err := spdystream.NewConnection(conn, true) - if err != nil { - panic(err) - } - go spdyConn.Serve(spdystream.MirrorStreamHandler) - } -} -``` - -## Copyright and license - -Copyright © 2014-2015 Docker, Inc. All rights reserved, except as follows. Code is released under the Apache 2.0 license. The README.md file, and files in the "docs" folder are licensed under the Creative Commons Attribution 4.0 International License under the terms and conditions set forth in the file "LICENSE.docs". You may obtain a duplicate copy of the same license, titled CC-BY-SA-4.0, at http://creativecommons.org/licenses/by/4.0/. diff --git a/vendor/github.com/docker/spdystream/handlers.go b/vendor/github.com/docker/spdystream/handlers.go deleted file mode 100644 index b59fa5fdcd..0000000000 --- a/vendor/github.com/docker/spdystream/handlers.go +++ /dev/null @@ -1,38 +0,0 @@ -package spdystream - -import ( - "io" - "net/http" -) - -// MirrorStreamHandler mirrors all streams. -func MirrorStreamHandler(stream *Stream) { - replyErr := stream.SendReply(http.Header{}, false) - if replyErr != nil { - return - } - - go func() { - io.Copy(stream, stream) - stream.Close() - }() - go func() { - for { - header, receiveErr := stream.ReceiveHeader() - if receiveErr != nil { - return - } - sendErr := stream.SendHeader(header, false) - if sendErr != nil { - return - } - } - }() -} - -// NoopStreamHandler does nothing when stream connects, most -// likely used with RejectAuthHandler which will not allow any -// streams to make it to the stream handler. -func NoOpStreamHandler(stream *Stream) { - stream.SendReply(http.Header{}, false) -} diff --git a/vendor/github.com/docker/spdystream/priority.go b/vendor/github.com/docker/spdystream/priority.go deleted file mode 100644 index fc8582b5c6..0000000000 --- a/vendor/github.com/docker/spdystream/priority.go +++ /dev/null @@ -1,98 +0,0 @@ -package spdystream - -import ( - "container/heap" - "sync" - - "github.com/docker/spdystream/spdy" -) - -type prioritizedFrame struct { - frame spdy.Frame - priority uint8 - insertId uint64 -} - -type frameQueue []*prioritizedFrame - -func (fq frameQueue) Len() int { - return len(fq) -} - -func (fq frameQueue) Less(i, j int) bool { - if fq[i].priority == fq[j].priority { - return fq[i].insertId < fq[j].insertId - } - return fq[i].priority < fq[j].priority -} - -func (fq frameQueue) Swap(i, j int) { - fq[i], fq[j] = fq[j], fq[i] -} - -func (fq *frameQueue) Push(x interface{}) { - *fq = append(*fq, x.(*prioritizedFrame)) -} - -func (fq *frameQueue) Pop() interface{} { - old := *fq - n := len(old) - *fq = old[0 : n-1] - return old[n-1] -} - -type PriorityFrameQueue struct { - queue *frameQueue - c *sync.Cond - size int - nextInsertId uint64 - drain bool -} - -func NewPriorityFrameQueue(size int) *PriorityFrameQueue { - queue := make(frameQueue, 0, size) - heap.Init(&queue) - - return &PriorityFrameQueue{ - queue: &queue, - size: size, - c: sync.NewCond(&sync.Mutex{}), - } -} - -func (q *PriorityFrameQueue) Push(frame spdy.Frame, priority uint8) { - q.c.L.Lock() - defer q.c.L.Unlock() - for q.queue.Len() >= q.size { - q.c.Wait() - } - pFrame := &prioritizedFrame{ - frame: frame, - priority: priority, - insertId: q.nextInsertId, - } - q.nextInsertId = q.nextInsertId + 1 - heap.Push(q.queue, pFrame) - q.c.Signal() -} - -func (q *PriorityFrameQueue) Pop() spdy.Frame { - q.c.L.Lock() - defer q.c.L.Unlock() - for q.queue.Len() == 0 { - if q.drain { - return nil - } - q.c.Wait() - } - frame := heap.Pop(q.queue).(*prioritizedFrame).frame - q.c.Signal() - return frame -} - -func (q *PriorityFrameQueue) Drain() { - q.c.L.Lock() - defer q.c.L.Unlock() - q.drain = true - q.c.Broadcast() -} diff --git a/vendor/github.com/docker/spdystream/spdy/types.go b/vendor/github.com/docker/spdystream/spdy/types.go deleted file mode 100644 index 7b6ee9c6f2..0000000000 --- a/vendor/github.com/docker/spdystream/spdy/types.go +++ /dev/null @@ -1,275 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package spdy implements the SPDY protocol (currently SPDY/3), described in -// http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3. -package spdy - -import ( - "bytes" - "compress/zlib" - "io" - "net/http" -) - -// Version is the protocol version number that this package implements. -const Version = 3 - -// ControlFrameType stores the type field in a control frame header. -type ControlFrameType uint16 - -const ( - TypeSynStream ControlFrameType = 0x0001 - TypeSynReply = 0x0002 - TypeRstStream = 0x0003 - TypeSettings = 0x0004 - TypePing = 0x0006 - TypeGoAway = 0x0007 - TypeHeaders = 0x0008 - TypeWindowUpdate = 0x0009 -) - -// ControlFlags are the flags that can be set on a control frame. -type ControlFlags uint8 - -const ( - ControlFlagFin ControlFlags = 0x01 - ControlFlagUnidirectional = 0x02 - ControlFlagSettingsClearSettings = 0x01 -) - -// DataFlags are the flags that can be set on a data frame. -type DataFlags uint8 - -const ( - DataFlagFin DataFlags = 0x01 -) - -// MaxDataLength is the maximum number of bytes that can be stored in one frame. -const MaxDataLength = 1<<24 - 1 - -// headerValueSepator separates multiple header values. -const headerValueSeparator = "\x00" - -// Frame is a single SPDY frame in its unpacked in-memory representation. Use -// Framer to read and write it. -type Frame interface { - write(f *Framer) error -} - -// ControlFrameHeader contains all the fields in a control frame header, -// in its unpacked in-memory representation. -type ControlFrameHeader struct { - // Note, high bit is the "Control" bit. - version uint16 // spdy version number - frameType ControlFrameType - Flags ControlFlags - length uint32 // length of data field -} - -type controlFrame interface { - Frame - read(h ControlFrameHeader, f *Framer) error -} - -// StreamId represents a 31-bit value identifying the stream. -type StreamId uint32 - -// SynStreamFrame is the unpacked, in-memory representation of a SYN_STREAM -// frame. -type SynStreamFrame struct { - CFHeader ControlFrameHeader - StreamId StreamId - AssociatedToStreamId StreamId // stream id for a stream which this stream is associated to - Priority uint8 // priority of this frame (3-bit) - Slot uint8 // index in the server's credential vector of the client certificate - Headers http.Header -} - -// SynReplyFrame is the unpacked, in-memory representation of a SYN_REPLY frame. -type SynReplyFrame struct { - CFHeader ControlFrameHeader - StreamId StreamId - Headers http.Header -} - -// RstStreamStatus represents the status that led to a RST_STREAM. -type RstStreamStatus uint32 - -const ( - ProtocolError RstStreamStatus = iota + 1 - InvalidStream - RefusedStream - UnsupportedVersion - Cancel - InternalError - FlowControlError - StreamInUse - StreamAlreadyClosed - InvalidCredentials - FrameTooLarge -) - -// RstStreamFrame is the unpacked, in-memory representation of a RST_STREAM -// frame. -type RstStreamFrame struct { - CFHeader ControlFrameHeader - StreamId StreamId - Status RstStreamStatus -} - -// SettingsFlag represents a flag in a SETTINGS frame. -type SettingsFlag uint8 - -const ( - FlagSettingsPersistValue SettingsFlag = 0x1 - FlagSettingsPersisted = 0x2 -) - -// SettingsFlag represents the id of an id/value pair in a SETTINGS frame. -type SettingsId uint32 - -const ( - SettingsUploadBandwidth SettingsId = iota + 1 - SettingsDownloadBandwidth - SettingsRoundTripTime - SettingsMaxConcurrentStreams - SettingsCurrentCwnd - SettingsDownloadRetransRate - SettingsInitialWindowSize - SettingsClientCretificateVectorSize -) - -// SettingsFlagIdValue is the unpacked, in-memory representation of the -// combined flag/id/value for a setting in a SETTINGS frame. -type SettingsFlagIdValue struct { - Flag SettingsFlag - Id SettingsId - Value uint32 -} - -// SettingsFrame is the unpacked, in-memory representation of a SPDY -// SETTINGS frame. -type SettingsFrame struct { - CFHeader ControlFrameHeader - FlagIdValues []SettingsFlagIdValue -} - -// PingFrame is the unpacked, in-memory representation of a PING frame. -type PingFrame struct { - CFHeader ControlFrameHeader - Id uint32 // unique id for this ping, from server is even, from client is odd. -} - -// GoAwayStatus represents the status in a GoAwayFrame. -type GoAwayStatus uint32 - -const ( - GoAwayOK GoAwayStatus = iota - GoAwayProtocolError - GoAwayInternalError -) - -// GoAwayFrame is the unpacked, in-memory representation of a GOAWAY frame. -type GoAwayFrame struct { - CFHeader ControlFrameHeader - LastGoodStreamId StreamId // last stream id which was accepted by sender - Status GoAwayStatus -} - -// HeadersFrame is the unpacked, in-memory representation of a HEADERS frame. -type HeadersFrame struct { - CFHeader ControlFrameHeader - StreamId StreamId - Headers http.Header -} - -// WindowUpdateFrame is the unpacked, in-memory representation of a -// WINDOW_UPDATE frame. -type WindowUpdateFrame struct { - CFHeader ControlFrameHeader - StreamId StreamId - DeltaWindowSize uint32 // additional number of bytes to existing window size -} - -// TODO: Implement credential frame and related methods. - -// DataFrame is the unpacked, in-memory representation of a DATA frame. -type DataFrame struct { - // Note, high bit is the "Control" bit. Should be 0 for data frames. - StreamId StreamId - Flags DataFlags - Data []byte // payload data of this frame -} - -// A SPDY specific error. -type ErrorCode string - -const ( - UnlowercasedHeaderName ErrorCode = "header was not lowercased" - DuplicateHeaders = "multiple headers with same name" - WrongCompressedPayloadSize = "compressed payload size was incorrect" - UnknownFrameType = "unknown frame type" - InvalidControlFrame = "invalid control frame" - InvalidDataFrame = "invalid data frame" - InvalidHeaderPresent = "frame contained invalid header" - ZeroStreamId = "stream id zero is disallowed" -) - -// Error contains both the type of error and additional values. StreamId is 0 -// if Error is not associated with a stream. -type Error struct { - Err ErrorCode - StreamId StreamId -} - -func (e *Error) Error() string { - return string(e.Err) -} - -var invalidReqHeaders = map[string]bool{ - "Connection": true, - "Host": true, - "Keep-Alive": true, - "Proxy-Connection": true, - "Transfer-Encoding": true, -} - -var invalidRespHeaders = map[string]bool{ - "Connection": true, - "Keep-Alive": true, - "Proxy-Connection": true, - "Transfer-Encoding": true, -} - -// Framer handles serializing/deserializing SPDY frames, including compressing/ -// decompressing payloads. -type Framer struct { - headerCompressionDisabled bool - w io.Writer - headerBuf *bytes.Buffer - headerCompressor *zlib.Writer - r io.Reader - headerReader io.LimitedReader - headerDecompressor io.ReadCloser -} - -// NewFramer allocates a new Framer for a given SPDY connection, represented by -// a io.Writer and io.Reader. Note that Framer will read and write individual fields -// from/to the Reader and Writer, so the caller should pass in an appropriately -// buffered implementation to optimize performance. -func NewFramer(w io.Writer, r io.Reader) (*Framer, error) { - compressBuf := new(bytes.Buffer) - compressor, err := zlib.NewWriterLevelDict(compressBuf, zlib.BestCompression, []byte(headerDictionary)) - if err != nil { - return nil, err - } - framer := &Framer{ - w: w, - headerBuf: compressBuf, - headerCompressor: compressor, - r: r, - } - return framer, nil -} diff --git a/vendor/github.com/docker/spdystream/utils.go b/vendor/github.com/docker/spdystream/utils.go deleted file mode 100644 index 1b2c199a40..0000000000 --- a/vendor/github.com/docker/spdystream/utils.go +++ /dev/null @@ -1,16 +0,0 @@ -package spdystream - -import ( - "log" - "os" -) - -var ( - DEBUG = os.Getenv("DEBUG") -) - -func debugMessage(fmt string, args ...interface{}) { - if DEBUG != "" { - log.Printf(fmt, args...) - } -} diff --git a/vendor/github.com/gogo/protobuf/proto/text_parser.go b/vendor/github.com/gogo/protobuf/proto/text_parser.go index 1ce0be2fa9..f85c0cc81a 100644 --- a/vendor/github.com/gogo/protobuf/proto/text_parser.go +++ b/vendor/github.com/gogo/protobuf/proto/text_parser.go @@ -318,7 +318,7 @@ func unescape(s string) (ch string, tail string, err error) { if i > utf8.MaxRune { return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss) } - return string(i), s, nil + return string(rune(i)), s, nil } return "", "", fmt.Errorf(`unknown escape \%c`, r) } diff --git a/vendor/github.com/gogo/protobuf/types/any.pb.go b/vendor/github.com/gogo/protobuf/types/any.pb.go index 98e269d543..e3d4d9490f 100644 --- a/vendor/github.com/gogo/protobuf/types/any.pb.go +++ b/vendor/github.com/gogo/protobuf/types/any.pb.go @@ -592,10 +592,7 @@ func (m *Any) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthAny - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthAny } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/api.pb.go b/vendor/github.com/gogo/protobuf/types/api.pb.go index 58bf4b53b3..83e8869206 100644 --- a/vendor/github.com/gogo/protobuf/types/api.pb.go +++ b/vendor/github.com/gogo/protobuf/types/api.pb.go @@ -1677,10 +1677,7 @@ func (m *Api) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1920,10 +1917,7 @@ func (m *Method) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -2038,10 +2032,7 @@ func (m *Mixin) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/duration.pb.go b/vendor/github.com/gogo/protobuf/types/duration.pb.go index 3959f06690..4deafcb1ce 100644 --- a/vendor/github.com/gogo/protobuf/types/duration.pb.go +++ b/vendor/github.com/gogo/protobuf/types/duration.pb.go @@ -415,10 +415,7 @@ func (m *Duration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthDuration - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthDuration } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/empty.pb.go b/vendor/github.com/gogo/protobuf/types/empty.pb.go index 17e3aa5583..9e94748b3a 100644 --- a/vendor/github.com/gogo/protobuf/types/empty.pb.go +++ b/vendor/github.com/gogo/protobuf/types/empty.pb.go @@ -360,10 +360,7 @@ func (m *Empty) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEmpty - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEmpty } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/field_mask.pb.go b/vendor/github.com/gogo/protobuf/types/field_mask.pb.go index 7226b57f73..6ae346d925 100644 --- a/vendor/github.com/gogo/protobuf/types/field_mask.pb.go +++ b/vendor/github.com/gogo/protobuf/types/field_mask.pb.go @@ -636,10 +636,7 @@ func (m *FieldMask) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthFieldMask - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthFieldMask } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/source_context.pb.go b/vendor/github.com/gogo/protobuf/types/source_context.pb.go index 61045ce10d..8e6ce71b27 100644 --- a/vendor/github.com/gogo/protobuf/types/source_context.pb.go +++ b/vendor/github.com/gogo/protobuf/types/source_context.pb.go @@ -422,10 +422,7 @@ func (m *SourceContext) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthSourceContext - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthSourceContext } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/struct.pb.go b/vendor/github.com/gogo/protobuf/types/struct.pb.go index cea553eef6..c0457312e6 100644 --- a/vendor/github.com/gogo/protobuf/types/struct.pb.go +++ b/vendor/github.com/gogo/protobuf/types/struct.pb.go @@ -1862,7 +1862,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthStruct } if (iNdEx + skippy) > postIndex { @@ -1879,10 +1879,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthStruct - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthStruct } if (iNdEx + skippy) > l { @@ -2087,10 +2084,7 @@ func (m *Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthStruct - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthStruct } if (iNdEx + skippy) > l { @@ -2175,10 +2169,7 @@ func (m *ListValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthStruct - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthStruct } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/timestamp.pb.go b/vendor/github.com/gogo/protobuf/types/timestamp.pb.go index b818752670..45db7b3bb1 100644 --- a/vendor/github.com/gogo/protobuf/types/timestamp.pb.go +++ b/vendor/github.com/gogo/protobuf/types/timestamp.pb.go @@ -437,10 +437,7 @@ func (m *Timestamp) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTimestamp - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTimestamp } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/type.pb.go b/vendor/github.com/gogo/protobuf/types/type.pb.go index 13b7ec02f7..791427bb22 100644 --- a/vendor/github.com/gogo/protobuf/types/type.pb.go +++ b/vendor/github.com/gogo/protobuf/types/type.pb.go @@ -2483,10 +2483,7 @@ func (m *Type) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthType - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthType } if (iNdEx + skippy) > l { @@ -2795,10 +2792,7 @@ func (m *Field) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthType - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthType } if (iNdEx + skippy) > l { @@ -3004,10 +2998,7 @@ func (m *Enum) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthType - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthType } if (iNdEx + skippy) > l { @@ -3143,10 +3134,7 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthType - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthType } if (iNdEx + skippy) > l { @@ -3265,10 +3253,7 @@ func (m *Option) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthType - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthType } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/wrappers.pb.go b/vendor/github.com/gogo/protobuf/types/wrappers.pb.go index 8f1edb57d3..8d415420a7 100644 --- a/vendor/github.com/gogo/protobuf/types/wrappers.pb.go +++ b/vendor/github.com/gogo/protobuf/types/wrappers.pb.go @@ -2020,10 +2020,7 @@ func (m *DoubleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2085,10 +2082,7 @@ func (m *FloatValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2158,10 +2152,7 @@ func (m *Int64Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2231,10 +2222,7 @@ func (m *UInt64Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2304,10 +2292,7 @@ func (m *Int32Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2377,10 +2362,7 @@ func (m *UInt32Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2451,10 +2433,7 @@ func (m *BoolValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2537,10 +2516,7 @@ func (m *StringValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2625,10 +2601,7 @@ func (m *BytesValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/imdario/mergo/.travis.yml b/vendor/github.com/imdario/mergo/.travis.yml index dad29725f8..d324c43ba4 100644 --- a/vendor/github.com/imdario/mergo/.travis.yml +++ b/vendor/github.com/imdario/mergo/.travis.yml @@ -1,4 +1,7 @@ language: go +arch: + - amd64 + - ppc64le install: - go get -t - go get golang.org/x/tools/cmd/cover diff --git a/vendor/github.com/imdario/mergo/README.md b/vendor/github.com/imdario/mergo/README.md index 075b4d78e4..aa8cbd7ce6 100644 --- a/vendor/github.com/imdario/mergo/README.md +++ b/vendor/github.com/imdario/mergo/README.md @@ -1,14 +1,5 @@ # Mergo -A helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements. - -Mergo merges same-type structs and maps by setting default values in zero-value fields. Mergo won't merge unexported (private) fields. It will do recursively any exported one. It also won't merge structs inside maps (because they are not addressable using Go reflection). - -Also a lovely [comune](http://en.wikipedia.org/wiki/Mergo) (municipality) in the Province of Ancona in the Italian region of Marche. - -## Status - -It is ready for production use. [It is used in several projects by Docker, Google, The Linux Foundation, VMWare, Shopify, etc](https://github.com/imdario/mergo#mergo-in-the-wild). [![GoDoc][3]][4] [![GitHub release][5]][6] @@ -16,7 +7,9 @@ It is ready for production use. [It is used in several projects by Docker, Googl [![Build Status][1]][2] [![Coverage Status][9]][10] [![Sourcegraph][11]][12] -[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fimdario%2Fmergo.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fimdario%2Fmergo?ref=badge_shield) +[![FOSSA Status][13]][14] + +[![GoCenter Kudos][15]][16] [1]: https://travis-ci.org/imdario/mergo.png [2]: https://travis-ci.org/imdario/mergo @@ -30,6 +23,20 @@ It is ready for production use. [It is used in several projects by Docker, Googl [10]: https://coveralls.io/github/imdario/mergo?branch=master [11]: https://sourcegraph.com/github.com/imdario/mergo/-/badge.svg [12]: https://sourcegraph.com/github.com/imdario/mergo?badge +[13]: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fimdario%2Fmergo.svg?type=shield +[14]: https://app.fossa.io/projects/git%2Bgithub.com%2Fimdario%2Fmergo?ref=badge_shield +[15]: https://search.gocenter.io/api/ui/badge/github.com%2Fimdario%2Fmergo +[16]: https://search.gocenter.io/github.com/imdario/mergo + +A helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements. + +Mergo merges same-type structs and maps by setting default values in zero-value fields. Mergo won't merge unexported (private) fields. It will do recursively any exported one. It also won't merge structs inside maps (because they are not addressable using Go reflection). + +Also a lovely [comune](http://en.wikipedia.org/wiki/Mergo) (municipality) in the Province of Ancona in the Italian region of Marche. + +## Status + +It is ready for production use. [It is used in several projects by Docker, Google, The Linux Foundation, VMWare, Shopify, etc](https://github.com/imdario/mergo#mergo-in-the-wild). ### Important note @@ -90,7 +97,7 @@ If Mergo is useful to you, consider buying me a coffee, a beer, or making a mont - [mantasmatelis/whooplist-server](https://github.com/mantasmatelis/whooplist-server) - [jnuthong/item_search](https://github.com/jnuthong/item_search) - [bukalapak/snowboard](https://github.com/bukalapak/snowboard) -- [janoszen/containerssh](https://github.com/janoszen/containerssh) +- [containerssh/containerssh](https://github.com/containerssh/containerssh) ## Install diff --git a/vendor/github.com/imdario/mergo/merge.go b/vendor/github.com/imdario/mergo/merge.go index 11a8c156d8..8c2a8fcd90 100644 --- a/vendor/github.com/imdario/mergo/merge.go +++ b/vendor/github.com/imdario/mergo/merge.go @@ -95,13 +95,18 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co } } } else { - if (isReflectNil(dst) || overwrite) && (!isEmptyValue(src) || overwriteWithEmptySrc) { + if dst.CanSet() && (isReflectNil(dst) || overwrite) && (!isEmptyValue(src) || overwriteWithEmptySrc) { dst.Set(src) } } case reflect.Map: if dst.IsNil() && !src.IsNil() { - dst.Set(reflect.MakeMap(dst.Type())) + if dst.CanSet() { + dst.Set(reflect.MakeMap(dst.Type())) + } else { + dst = src + return + } } if src.Kind() != reflect.Map { @@ -271,11 +276,6 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co } default: mustSet := (isEmptyValue(dst) || overwrite) && (!isEmptyValue(src) || overwriteWithEmptySrc) - v := fmt.Sprintf("%v", src) - if v == "TestIssue106" { - fmt.Println(mustSet) - fmt.Println(dst.CanSet()) - } if mustSet { if dst.CanSet() { dst.Set(src) diff --git a/vendor/github.com/json-iterator/go/go.sum b/vendor/github.com/json-iterator/go/go.sum index d778b5a14d..be00a6df96 100644 --- a/vendor/github.com/json-iterator/go/go.sum +++ b/vendor/github.com/json-iterator/go/go.sum @@ -9,6 +9,7 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLD github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= diff --git a/vendor/github.com/json-iterator/go/iter_float.go b/vendor/github.com/json-iterator/go/iter_float.go index b9754638e8..8a3d8b6fb4 100644 --- a/vendor/github.com/json-iterator/go/iter_float.go +++ b/vendor/github.com/json-iterator/go/iter_float.go @@ -288,6 +288,9 @@ non_decimal_loop: return iter.readFloat64SlowPath() } value = (value << 3) + (value << 1) + uint64(ind) + if value > maxFloat64 { + return iter.readFloat64SlowPath() + } } } return iter.readFloat64SlowPath() diff --git a/vendor/github.com/json-iterator/go/iter_int.go b/vendor/github.com/json-iterator/go/iter_int.go index 2142320355..d786a89fe1 100644 --- a/vendor/github.com/json-iterator/go/iter_int.go +++ b/vendor/github.com/json-iterator/go/iter_int.go @@ -9,6 +9,7 @@ var intDigits []int8 const uint32SafeToMultiply10 = uint32(0xffffffff)/10 - 1 const uint64SafeToMultiple10 = uint64(0xffffffffffffffff)/10 - 1 +const maxFloat64 = 1<<53 - 1 func init() { intDigits = make([]int8, 256) @@ -339,7 +340,7 @@ func (iter *Iterator) readUint64(c byte) (ret uint64) { } func (iter *Iterator) assertInteger() { - if iter.head < len(iter.buf) && iter.buf[iter.head] == '.' { + if iter.head < iter.tail && iter.buf[iter.head] == '.' { iter.ReportError("assertInteger", "can not decode float as int") } } diff --git a/vendor/github.com/json-iterator/go/reflect.go b/vendor/github.com/json-iterator/go/reflect.go index 74974ba74b..39acb320ac 100644 --- a/vendor/github.com/json-iterator/go/reflect.go +++ b/vendor/github.com/json-iterator/go/reflect.go @@ -65,7 +65,7 @@ func (iter *Iterator) ReadVal(obj interface{}) { decoder := iter.cfg.getDecoderFromCache(cacheKey) if decoder == nil { typ := reflect2.TypeOf(obj) - if typ.Kind() != reflect.Ptr { + if typ == nil || typ.Kind() != reflect.Ptr { iter.ReportError("ReadVal", "can only unmarshal into pointer") return } diff --git a/vendor/github.com/json-iterator/go/reflect_json_raw_message.go b/vendor/github.com/json-iterator/go/reflect_json_raw_message.go index f2619936c8..eba434f2f1 100644 --- a/vendor/github.com/json-iterator/go/reflect_json_raw_message.go +++ b/vendor/github.com/json-iterator/go/reflect_json_raw_message.go @@ -33,11 +33,19 @@ type jsonRawMessageCodec struct { } func (codec *jsonRawMessageCodec) Decode(ptr unsafe.Pointer, iter *Iterator) { - *((*json.RawMessage)(ptr)) = json.RawMessage(iter.SkipAndReturnBytes()) + if iter.ReadNil() { + *((*json.RawMessage)(ptr)) = nil + } else { + *((*json.RawMessage)(ptr)) = iter.SkipAndReturnBytes() + } } func (codec *jsonRawMessageCodec) Encode(ptr unsafe.Pointer, stream *Stream) { - stream.WriteRaw(string(*((*json.RawMessage)(ptr)))) + if *((*json.RawMessage)(ptr)) == nil { + stream.WriteNil() + } else { + stream.WriteRaw(string(*((*json.RawMessage)(ptr)))) + } } func (codec *jsonRawMessageCodec) IsEmpty(ptr unsafe.Pointer) bool { @@ -48,11 +56,19 @@ type jsoniterRawMessageCodec struct { } func (codec *jsoniterRawMessageCodec) Decode(ptr unsafe.Pointer, iter *Iterator) { - *((*RawMessage)(ptr)) = RawMessage(iter.SkipAndReturnBytes()) + if iter.ReadNil() { + *((*RawMessage)(ptr)) = nil + } else { + *((*RawMessage)(ptr)) = iter.SkipAndReturnBytes() + } } func (codec *jsoniterRawMessageCodec) Encode(ptr unsafe.Pointer, stream *Stream) { - stream.WriteRaw(string(*((*RawMessage)(ptr)))) + if *((*RawMessage)(ptr)) == nil { + stream.WriteNil() + } else { + stream.WriteRaw(string(*((*RawMessage)(ptr)))) + } } func (codec *jsoniterRawMessageCodec) IsEmpty(ptr unsafe.Pointer) bool { diff --git a/vendor/github.com/json-iterator/go/reflect_struct_decoder.go b/vendor/github.com/json-iterator/go/reflect_struct_decoder.go index d7eb0eb5ca..92ae912dc2 100644 --- a/vendor/github.com/json-iterator/go/reflect_struct_decoder.go +++ b/vendor/github.com/json-iterator/go/reflect_struct_decoder.go @@ -1075,6 +1075,11 @@ type stringModeNumberDecoder struct { } func (decoder *stringModeNumberDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) { + if iter.WhatIsNext() == NilValue { + decoder.elemDecoder.Decode(ptr, iter) + return + } + c := iter.nextToken() if c != '"' { iter.ReportError("stringModeNumberDecoder", `expect ", but found `+string([]byte{c})) diff --git a/vendor/github.com/mattn/go-runewidth/runewidth.go b/vendor/github.com/mattn/go-runewidth/runewidth.go index a72afbc75c..8d64da0778 100644 --- a/vendor/github.com/mattn/go-runewidth/runewidth.go +++ b/vendor/github.com/mattn/go-runewidth/runewidth.go @@ -102,11 +102,9 @@ func NewCondition() *Condition { // See http://www.unicode.org/reports/tr11/ func (c *Condition) RuneWidth(r rune) int { switch { - case r < 0 || r > 0x10FFFF || - inTables(r, nonprint, combining, notassigned): + case r < 0 || r > 0x10FFFF || inTables(r, nonprint, combining, notassigned): return 0 - case (c.EastAsianWidth && IsAmbiguousWidth(r)) || - inTables(r, doublewidth, emoji): + case (c.EastAsianWidth && IsAmbiguousWidth(r)) || inTables(r, doublewidth): return 2 default: return 1 @@ -128,9 +126,12 @@ func (c *Condition) stringWidthZeroJoiner(s string) (width int) { } w := c.RuneWidth(r) if r2 == 0x200D && inTables(r, emoji) && inTables(r1, emoji) { - w = 0 + if width < w { + width = w + } + } else { + width += w } - width += w r1, r2 = r2, r } return width diff --git a/vendor/github.com/docker/spdystream/CONTRIBUTING.md b/vendor/github.com/moby/spdystream/CONTRIBUTING.md similarity index 100% rename from vendor/github.com/docker/spdystream/CONTRIBUTING.md rename to vendor/github.com/moby/spdystream/CONTRIBUTING.md diff --git a/vendor/github.com/moby/spdystream/LICENSE b/vendor/github.com/moby/spdystream/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/vendor/github.com/moby/spdystream/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/vendor/github.com/moby/spdystream/MAINTAINERS b/vendor/github.com/moby/spdystream/MAINTAINERS new file mode 100644 index 0000000000..26e5ec828a --- /dev/null +++ b/vendor/github.com/moby/spdystream/MAINTAINERS @@ -0,0 +1,40 @@ +# Spdystream maintainers file +# +# This file describes who runs the moby/spdystream project and how. +# This is a living document - if you see something out of date or missing, speak up! +# +# It is structured to be consumable by both humans and programs. +# To extract its contents programmatically, use any TOML-compliant parser. +# +# This file is compiled into the MAINTAINERS file in docker/opensource. +# +[Org] + [Org."Core maintainers"] + people = [ + "adisky", + "dims", + "dmcgowan", + ] + +[people] + +# A reference list of all people associated with the project. +# All other sections should refer to people by their canonical key +# in the people section. + + # ADD YOURSELF HERE IN ALPHABETICAL ORDER + + [people.adisky] + Name = "Aditi Sharma" + Email = "adi.sky17@gmail.com" + GitHub = "adisky" + + [people.dims] + Name = "Davanum Srinivas" + Email = "davanum@gmail.com" + GitHub = "dims" + + [people.dmcgowan] + Name = "Derek McGowan" + Email = "derek@mcg.dev" + GitHub = "dmcgowan" diff --git a/vendor/github.com/moby/spdystream/NOTICE b/vendor/github.com/moby/spdystream/NOTICE new file mode 100644 index 0000000000..b9b11c9ab7 --- /dev/null +++ b/vendor/github.com/moby/spdystream/NOTICE @@ -0,0 +1,5 @@ +SpdyStream +Copyright 2014-2021 Docker Inc. + +This product includes software developed at +Docker Inc. (https://www.docker.com/). diff --git a/vendor/github.com/moby/spdystream/README.md b/vendor/github.com/moby/spdystream/README.md new file mode 100644 index 0000000000..b84e983439 --- /dev/null +++ b/vendor/github.com/moby/spdystream/README.md @@ -0,0 +1,77 @@ +# SpdyStream + +A multiplexed stream library using spdy + +## Usage + +Client example (connecting to mirroring server without auth) + +```go +package main + +import ( + "fmt" + "github.com/moby/spdystream" + "net" + "net/http" +) + +func main() { + conn, err := net.Dial("tcp", "localhost:8080") + if err != nil { + panic(err) + } + spdyConn, err := spdystream.NewConnection(conn, false) + if err != nil { + panic(err) + } + go spdyConn.Serve(spdystream.NoOpStreamHandler) + stream, err := spdyConn.CreateStream(http.Header{}, nil, false) + if err != nil { + panic(err) + } + + stream.Wait() + + fmt.Fprint(stream, "Writing to stream") + + buf := make([]byte, 25) + stream.Read(buf) + fmt.Println(string(buf)) + + stream.Close() +} +``` + +Server example (mirroring server without auth) + +```go +package main + +import ( + "github.com/moby/spdystream" + "net" +) + +func main() { + listener, err := net.Listen("tcp", "localhost:8080") + if err != nil { + panic(err) + } + for { + conn, err := listener.Accept() + if err != nil { + panic(err) + } + spdyConn, err := spdystream.NewConnection(conn, true) + if err != nil { + panic(err) + } + go spdyConn.Serve(spdystream.MirrorStreamHandler) + } +} +``` + +## Copyright and license + +Copyright 2013-2021 Docker, inc. Released under the [Apache 2.0 license](LICENSE). diff --git a/vendor/github.com/docker/spdystream/connection.go b/vendor/github.com/moby/spdystream/connection.go similarity index 95% rename from vendor/github.com/docker/spdystream/connection.go rename to vendor/github.com/moby/spdystream/connection.go index 6031a0db1a..d906bb05ce 100644 --- a/vendor/github.com/docker/spdystream/connection.go +++ b/vendor/github.com/moby/spdystream/connection.go @@ -1,3 +1,19 @@ +/* + Copyright 2014-2021 Docker Inc. + + 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. +*/ + package spdystream import ( @@ -9,12 +25,12 @@ import ( "sync" "time" - "github.com/docker/spdystream/spdy" + "github.com/moby/spdystream/spdy" ) var ( ErrInvalidStreamId = errors.New("Invalid stream id") - ErrTimeout = errors.New("Timeout occured") + ErrTimeout = errors.New("Timeout occurred") ErrReset = errors.New("Stream reset") ErrWriteClosedStream = errors.New("Write on closed stream") ) @@ -101,14 +117,14 @@ Loop: // attempts to grab the write lock that Write() already has, causing a // deadlock. // - // See https://github.com/docker/spdystream/issues/49 for more details. + // See https://github.com/moby/spdystream/issues/49 for more details. go func() { - for _ = range resetChan { + for range resetChan { } }() go func() { - for _ = range setTimeoutChan { + for range setTimeoutChan { } }() @@ -127,7 +143,7 @@ Loop: } // Drain resetChan - for _ = range resetChan { + for range resetChan { } } @@ -200,7 +216,7 @@ type Connection struct { shutdownChan chan error hasShutdown bool - // for testing https://github.com/docker/spdystream/pull/56 + // for testing https://github.com/moby/spdystream/pull/56 dataFrameHandler func(*spdy.DataFrame) error } @@ -284,7 +300,7 @@ func (s *Connection) Ping() (time.Duration, error) { } break } - return time.Now().Sub(startTime), nil + return time.Since(startTime), nil } // Serve handles frames sent from the server, including reply frames @@ -325,7 +341,7 @@ Loop: readFrame, err := s.framer.ReadFrame() if err != nil { if err != io.EOF { - fmt.Errorf("frame read error: %s", err) + debugMessage("frame read error: %s", err) } else { debugMessage("(%p) EOF received", s) } @@ -421,7 +437,7 @@ func (s *Connection) frameHandler(frameQueue *PriorityFrameQueue, newHandler Str } if frameErr != nil { - fmt.Errorf("frame handling error: %s", frameErr) + debugMessage("frame handling error: %s", frameErr) } } } @@ -451,6 +467,7 @@ func (s *Connection) addStreamFrame(frame *spdy.SynStreamFrame) { dataChan: make(chan []byte), headerChan: make(chan http.Header), closeChan: make(chan bool), + priority: frame.Priority, } if frame.CFHeader.Flags&spdy.ControlFlagFin != 0x00 { stream.closeRemoteChannels() @@ -473,7 +490,7 @@ func (s *Connection) checkStreamFrame(frame *spdy.SynStreamFrame) bool { go func() { resetErr := s.sendResetFrame(spdy.ProtocolError, frame.StreamId) if resetErr != nil { - fmt.Errorf("reset error: %s", resetErr) + debugMessage("reset error: %s", resetErr) } }() return false @@ -718,7 +735,7 @@ func (s *Connection) shutdown(closeTimeout time.Duration) { select { case err, ok := <-s.shutdownChan: if ok { - fmt.Errorf("Unhandled close error after %s: %s", duration, err) + debugMessage("Unhandled close error after %s: %s", duration, err) } default: } @@ -726,8 +743,6 @@ func (s *Connection) shutdown(closeTimeout time.Duration) { s.shutdownChan <- err } close(s.shutdownChan) - - return } // Closes spdy connection by sending GoAway frame and initiating shutdown @@ -751,12 +766,11 @@ func (s *Connection) Close() error { } err := s.framer.WriteFrame(goAwayFrame) + go s.shutdown(s.closeTimeout) if err != nil { return err } - go s.shutdown(s.closeTimeout) - return nil } diff --git a/vendor/github.com/moby/spdystream/go.mod b/vendor/github.com/moby/spdystream/go.mod new file mode 100644 index 0000000000..d9b9ad59c7 --- /dev/null +++ b/vendor/github.com/moby/spdystream/go.mod @@ -0,0 +1,5 @@ +module github.com/moby/spdystream + +go 1.13 + +require github.com/gorilla/websocket v1.4.2 diff --git a/vendor/github.com/moby/spdystream/go.sum b/vendor/github.com/moby/spdystream/go.sum new file mode 100644 index 0000000000..85efffd996 --- /dev/null +++ b/vendor/github.com/moby/spdystream/go.sum @@ -0,0 +1,2 @@ +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= diff --git a/vendor/github.com/moby/spdystream/handlers.go b/vendor/github.com/moby/spdystream/handlers.go new file mode 100644 index 0000000000..d68f61f812 --- /dev/null +++ b/vendor/github.com/moby/spdystream/handlers.go @@ -0,0 +1,52 @@ +/* + Copyright 2014-2021 Docker Inc. + + 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. +*/ + +package spdystream + +import ( + "io" + "net/http" +) + +// MirrorStreamHandler mirrors all streams. +func MirrorStreamHandler(stream *Stream) { + replyErr := stream.SendReply(http.Header{}, false) + if replyErr != nil { + return + } + + go func() { + io.Copy(stream, stream) + stream.Close() + }() + go func() { + for { + header, receiveErr := stream.ReceiveHeader() + if receiveErr != nil { + return + } + sendErr := stream.SendHeader(header, false) + if sendErr != nil { + return + } + } + }() +} + +// NoopStreamHandler does nothing when stream connects. +func NoOpStreamHandler(stream *Stream) { + stream.SendReply(http.Header{}, false) +} diff --git a/vendor/github.com/moby/spdystream/priority.go b/vendor/github.com/moby/spdystream/priority.go new file mode 100644 index 0000000000..d8eb3516ca --- /dev/null +++ b/vendor/github.com/moby/spdystream/priority.go @@ -0,0 +1,114 @@ +/* + Copyright 2014-2021 Docker Inc. + + 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. +*/ + +package spdystream + +import ( + "container/heap" + "sync" + + "github.com/moby/spdystream/spdy" +) + +type prioritizedFrame struct { + frame spdy.Frame + priority uint8 + insertId uint64 +} + +type frameQueue []*prioritizedFrame + +func (fq frameQueue) Len() int { + return len(fq) +} + +func (fq frameQueue) Less(i, j int) bool { + if fq[i].priority == fq[j].priority { + return fq[i].insertId < fq[j].insertId + } + return fq[i].priority < fq[j].priority +} + +func (fq frameQueue) Swap(i, j int) { + fq[i], fq[j] = fq[j], fq[i] +} + +func (fq *frameQueue) Push(x interface{}) { + *fq = append(*fq, x.(*prioritizedFrame)) +} + +func (fq *frameQueue) Pop() interface{} { + old := *fq + n := len(old) + *fq = old[0 : n-1] + return old[n-1] +} + +type PriorityFrameQueue struct { + queue *frameQueue + c *sync.Cond + size int + nextInsertId uint64 + drain bool +} + +func NewPriorityFrameQueue(size int) *PriorityFrameQueue { + queue := make(frameQueue, 0, size) + heap.Init(&queue) + + return &PriorityFrameQueue{ + queue: &queue, + size: size, + c: sync.NewCond(&sync.Mutex{}), + } +} + +func (q *PriorityFrameQueue) Push(frame spdy.Frame, priority uint8) { + q.c.L.Lock() + defer q.c.L.Unlock() + for q.queue.Len() >= q.size { + q.c.Wait() + } + pFrame := &prioritizedFrame{ + frame: frame, + priority: priority, + insertId: q.nextInsertId, + } + q.nextInsertId = q.nextInsertId + 1 + heap.Push(q.queue, pFrame) + q.c.Signal() +} + +func (q *PriorityFrameQueue) Pop() spdy.Frame { + q.c.L.Lock() + defer q.c.L.Unlock() + for q.queue.Len() == 0 { + if q.drain { + return nil + } + q.c.Wait() + } + frame := heap.Pop(q.queue).(*prioritizedFrame).frame + q.c.Signal() + return frame +} + +func (q *PriorityFrameQueue) Drain() { + q.c.L.Lock() + defer q.c.L.Unlock() + q.drain = true + q.c.Broadcast() +} diff --git a/vendor/github.com/docker/spdystream/spdy/dictionary.go b/vendor/github.com/moby/spdystream/spdy/dictionary.go similarity index 93% rename from vendor/github.com/docker/spdystream/spdy/dictionary.go rename to vendor/github.com/moby/spdystream/spdy/dictionary.go index 5a5ff0e14c..392232f174 100644 --- a/vendor/github.com/docker/spdystream/spdy/dictionary.go +++ b/vendor/github.com/moby/spdystream/spdy/dictionary.go @@ -1,3 +1,19 @@ +/* + Copyright 2014-2021 Docker Inc. + + 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. +*/ + // Copyright 2013 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. diff --git a/vendor/github.com/docker/spdystream/spdy/read.go b/vendor/github.com/moby/spdystream/spdy/read.go similarity index 94% rename from vendor/github.com/docker/spdystream/spdy/read.go rename to vendor/github.com/moby/spdystream/spdy/read.go index 9359a95015..75ea045b8e 100644 --- a/vendor/github.com/docker/spdystream/spdy/read.go +++ b/vendor/github.com/moby/spdystream/spdy/read.go @@ -1,3 +1,19 @@ +/* + Copyright 2014-2021 Docker Inc. + + 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. +*/ + // Copyright 2011 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. diff --git a/vendor/github.com/moby/spdystream/spdy/types.go b/vendor/github.com/moby/spdystream/spdy/types.go new file mode 100644 index 0000000000..a254a43ab9 --- /dev/null +++ b/vendor/github.com/moby/spdystream/spdy/types.go @@ -0,0 +1,291 @@ +/* + Copyright 2014-2021 Docker Inc. + + 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. +*/ + +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package spdy implements the SPDY protocol (currently SPDY/3), described in +// http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3. +package spdy + +import ( + "bytes" + "compress/zlib" + "io" + "net/http" +) + +// Version is the protocol version number that this package implements. +const Version = 3 + +// ControlFrameType stores the type field in a control frame header. +type ControlFrameType uint16 + +const ( + TypeSynStream ControlFrameType = 0x0001 + TypeSynReply ControlFrameType = 0x0002 + TypeRstStream ControlFrameType = 0x0003 + TypeSettings ControlFrameType = 0x0004 + TypePing ControlFrameType = 0x0006 + TypeGoAway ControlFrameType = 0x0007 + TypeHeaders ControlFrameType = 0x0008 + TypeWindowUpdate ControlFrameType = 0x0009 +) + +// ControlFlags are the flags that can be set on a control frame. +type ControlFlags uint8 + +const ( + ControlFlagFin ControlFlags = 0x01 + ControlFlagUnidirectional ControlFlags = 0x02 + ControlFlagSettingsClearSettings ControlFlags = 0x01 +) + +// DataFlags are the flags that can be set on a data frame. +type DataFlags uint8 + +const ( + DataFlagFin DataFlags = 0x01 +) + +// MaxDataLength is the maximum number of bytes that can be stored in one frame. +const MaxDataLength = 1<<24 - 1 + +// headerValueSepator separates multiple header values. +const headerValueSeparator = "\x00" + +// Frame is a single SPDY frame in its unpacked in-memory representation. Use +// Framer to read and write it. +type Frame interface { + write(f *Framer) error +} + +// ControlFrameHeader contains all the fields in a control frame header, +// in its unpacked in-memory representation. +type ControlFrameHeader struct { + // Note, high bit is the "Control" bit. + version uint16 // spdy version number + frameType ControlFrameType + Flags ControlFlags + length uint32 // length of data field +} + +type controlFrame interface { + Frame + read(h ControlFrameHeader, f *Framer) error +} + +// StreamId represents a 31-bit value identifying the stream. +type StreamId uint32 + +// SynStreamFrame is the unpacked, in-memory representation of a SYN_STREAM +// frame. +type SynStreamFrame struct { + CFHeader ControlFrameHeader + StreamId StreamId + AssociatedToStreamId StreamId // stream id for a stream which this stream is associated to + Priority uint8 // priority of this frame (3-bit) + Slot uint8 // index in the server's credential vector of the client certificate + Headers http.Header +} + +// SynReplyFrame is the unpacked, in-memory representation of a SYN_REPLY frame. +type SynReplyFrame struct { + CFHeader ControlFrameHeader + StreamId StreamId + Headers http.Header +} + +// RstStreamStatus represents the status that led to a RST_STREAM. +type RstStreamStatus uint32 + +const ( + ProtocolError RstStreamStatus = iota + 1 + InvalidStream + RefusedStream + UnsupportedVersion + Cancel + InternalError + FlowControlError + StreamInUse + StreamAlreadyClosed + InvalidCredentials + FrameTooLarge +) + +// RstStreamFrame is the unpacked, in-memory representation of a RST_STREAM +// frame. +type RstStreamFrame struct { + CFHeader ControlFrameHeader + StreamId StreamId + Status RstStreamStatus +} + +// SettingsFlag represents a flag in a SETTINGS frame. +type SettingsFlag uint8 + +const ( + FlagSettingsPersistValue SettingsFlag = 0x1 + FlagSettingsPersisted SettingsFlag = 0x2 +) + +// SettingsFlag represents the id of an id/value pair in a SETTINGS frame. +type SettingsId uint32 + +const ( + SettingsUploadBandwidth SettingsId = iota + 1 + SettingsDownloadBandwidth + SettingsRoundTripTime + SettingsMaxConcurrentStreams + SettingsCurrentCwnd + SettingsDownloadRetransRate + SettingsInitialWindowSize + SettingsClientCretificateVectorSize +) + +// SettingsFlagIdValue is the unpacked, in-memory representation of the +// combined flag/id/value for a setting in a SETTINGS frame. +type SettingsFlagIdValue struct { + Flag SettingsFlag + Id SettingsId + Value uint32 +} + +// SettingsFrame is the unpacked, in-memory representation of a SPDY +// SETTINGS frame. +type SettingsFrame struct { + CFHeader ControlFrameHeader + FlagIdValues []SettingsFlagIdValue +} + +// PingFrame is the unpacked, in-memory representation of a PING frame. +type PingFrame struct { + CFHeader ControlFrameHeader + Id uint32 // unique id for this ping, from server is even, from client is odd. +} + +// GoAwayStatus represents the status in a GoAwayFrame. +type GoAwayStatus uint32 + +const ( + GoAwayOK GoAwayStatus = iota + GoAwayProtocolError + GoAwayInternalError +) + +// GoAwayFrame is the unpacked, in-memory representation of a GOAWAY frame. +type GoAwayFrame struct { + CFHeader ControlFrameHeader + LastGoodStreamId StreamId // last stream id which was accepted by sender + Status GoAwayStatus +} + +// HeadersFrame is the unpacked, in-memory representation of a HEADERS frame. +type HeadersFrame struct { + CFHeader ControlFrameHeader + StreamId StreamId + Headers http.Header +} + +// WindowUpdateFrame is the unpacked, in-memory representation of a +// WINDOW_UPDATE frame. +type WindowUpdateFrame struct { + CFHeader ControlFrameHeader + StreamId StreamId + DeltaWindowSize uint32 // additional number of bytes to existing window size +} + +// TODO: Implement credential frame and related methods. + +// DataFrame is the unpacked, in-memory representation of a DATA frame. +type DataFrame struct { + // Note, high bit is the "Control" bit. Should be 0 for data frames. + StreamId StreamId + Flags DataFlags + Data []byte // payload data of this frame +} + +// A SPDY specific error. +type ErrorCode string + +const ( + UnlowercasedHeaderName ErrorCode = "header was not lowercased" + DuplicateHeaders ErrorCode = "multiple headers with same name" + WrongCompressedPayloadSize ErrorCode = "compressed payload size was incorrect" + UnknownFrameType ErrorCode = "unknown frame type" + InvalidControlFrame ErrorCode = "invalid control frame" + InvalidDataFrame ErrorCode = "invalid data frame" + InvalidHeaderPresent ErrorCode = "frame contained invalid header" + ZeroStreamId ErrorCode = "stream id zero is disallowed" +) + +// Error contains both the type of error and additional values. StreamId is 0 +// if Error is not associated with a stream. +type Error struct { + Err ErrorCode + StreamId StreamId +} + +func (e *Error) Error() string { + return string(e.Err) +} + +var invalidReqHeaders = map[string]bool{ + "Connection": true, + "Host": true, + "Keep-Alive": true, + "Proxy-Connection": true, + "Transfer-Encoding": true, +} + +var invalidRespHeaders = map[string]bool{ + "Connection": true, + "Keep-Alive": true, + "Proxy-Connection": true, + "Transfer-Encoding": true, +} + +// Framer handles serializing/deserializing SPDY frames, including compressing/ +// decompressing payloads. +type Framer struct { + headerCompressionDisabled bool + w io.Writer + headerBuf *bytes.Buffer + headerCompressor *zlib.Writer + r io.Reader + headerReader io.LimitedReader + headerDecompressor io.ReadCloser +} + +// NewFramer allocates a new Framer for a given SPDY connection, represented by +// a io.Writer and io.Reader. Note that Framer will read and write individual fields +// from/to the Reader and Writer, so the caller should pass in an appropriately +// buffered implementation to optimize performance. +func NewFramer(w io.Writer, r io.Reader) (*Framer, error) { + compressBuf := new(bytes.Buffer) + compressor, err := zlib.NewWriterLevelDict(compressBuf, zlib.BestCompression, []byte(headerDictionary)) + if err != nil { + return nil, err + } + framer := &Framer{ + w: w, + headerBuf: compressBuf, + headerCompressor: compressor, + r: r, + } + return framer, nil +} diff --git a/vendor/github.com/docker/spdystream/spdy/write.go b/vendor/github.com/moby/spdystream/spdy/write.go similarity index 93% rename from vendor/github.com/docker/spdystream/spdy/write.go rename to vendor/github.com/moby/spdystream/spdy/write.go index b212f66a23..ab6d91f3b8 100644 --- a/vendor/github.com/docker/spdystream/spdy/write.go +++ b/vendor/github.com/moby/spdystream/spdy/write.go @@ -1,3 +1,19 @@ +/* + Copyright 2014-2021 Docker Inc. + + 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. +*/ + // Copyright 2011 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. diff --git a/vendor/github.com/docker/spdystream/stream.go b/vendor/github.com/moby/spdystream/stream.go similarity index 92% rename from vendor/github.com/docker/spdystream/stream.go rename to vendor/github.com/moby/spdystream/stream.go index f9e9ee267f..404e3c02df 100644 --- a/vendor/github.com/docker/spdystream/stream.go +++ b/vendor/github.com/moby/spdystream/stream.go @@ -1,3 +1,19 @@ +/* + Copyright 2014-2021 Docker Inc. + + 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. +*/ + package spdystream import ( @@ -9,7 +25,7 @@ import ( "sync" "time" - "github.com/docker/spdystream/spdy" + "github.com/moby/spdystream/spdy" ) var ( diff --git a/vendor/github.com/moby/spdystream/utils.go b/vendor/github.com/moby/spdystream/utils.go new file mode 100644 index 0000000000..e9f7fffd60 --- /dev/null +++ b/vendor/github.com/moby/spdystream/utils.go @@ -0,0 +1,32 @@ +/* + Copyright 2014-2021 Docker Inc. + + 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. +*/ + +package spdystream + +import ( + "log" + "os" +) + +var ( + DEBUG = os.Getenv("DEBUG") +) + +func debugMessage(fmt string, args ...interface{}) { + if DEBUG != "" { + log.Printf(fmt, args...) + } +} diff --git a/vendor/github.com/moby/term/.gitignore b/vendor/github.com/moby/term/.gitignore index df63b129a7..b0747ff010 100644 --- a/vendor/github.com/moby/term/.gitignore +++ b/vendor/github.com/moby/term/.gitignore @@ -1,24 +1,8 @@ -# Docker project generated files to ignore -# if you want to ignore files created by your editor/tools, -# please consider a global .gitignore https://help.github.com/articles/ignoring-files -*.exe -*.exe~ -*.gz -*.orig -test.main -.*.swp -.DS_Store -# a .bashrc may be added to customize the build environment -.bashrc -.editorconfig -.gopath/ -.go-pkg-cache/ -.idea/ -autogen/ -bundles/ -cmd/dockerd/dockerd -contrib/builder/rpm/*/changelog -vendor/pkg/ -go-test-report.json +# if you want to ignore files created by your editor/tools, consider using a +# global .gitignore or .git/info/exclude see https://help.github.com/articles/ignoring-files +.* +!.github +!.gitignore profile.out -junit-report.xml +# support running go modules in vendor mode for local development +vendor/ diff --git a/vendor/github.com/moby/term/README.md b/vendor/github.com/moby/term/README.md new file mode 100644 index 0000000000..0ce92cc339 --- /dev/null +++ b/vendor/github.com/moby/term/README.md @@ -0,0 +1,36 @@ +# term - utilities for dealing with terminals + +![Test](https://github.com/moby/term/workflows/Test/badge.svg) [![GoDoc](https://godoc.org/github.com/moby/term?status.svg)](https://godoc.org/github.com/moby/term) [![Go Report Card](https://goreportcard.com/badge/github.com/moby/term)](https://goreportcard.com/report/github.com/moby/term) + +term provides structures and helper functions to work with terminal (state, sizes). + +#### Using term + +```go +package main + +import ( + "log" + "os" + + "github.com/moby/term" +) + +func main() { + fd := os.Stdin.Fd() + if term.IsTerminal(fd) { + ws, err := term.GetWinsize(fd) + if err != nil { + log.Fatalf("term.GetWinsize: %s", err) + } + log.Printf("%d:%d\n", ws.Height, ws.Width) + } +} +``` + +## Contributing + +Want to hack on term? [Docker's contributions guidelines](https://github.com/docker/docker/blob/master/CONTRIBUTING.md) apply. + +## Copyright and license +Code and documentation copyright 2015 Docker, inc. Code released under the Apache 2.0 license. Docs released under Creative commons. diff --git a/vendor/github.com/moby/term/ascii.go b/vendor/github.com/moby/term/ascii.go index 7c445686f3..55873c0556 100644 --- a/vendor/github.com/moby/term/ascii.go +++ b/vendor/github.com/moby/term/ascii.go @@ -1,4 +1,4 @@ -package term // import "github.com/moby/term" +package term import ( "fmt" diff --git a/vendor/github.com/moby/term/go.mod b/vendor/github.com/moby/term/go.mod index 9f23ce0d5e..f453204333 100644 --- a/vendor/github.com/moby/term/go.mod +++ b/vendor/github.com/moby/term/go.mod @@ -4,10 +4,9 @@ go 1.13 require ( github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 - github.com/google/go-cmp v0.3.1 + github.com/creack/pty v1.1.11 + github.com/google/go-cmp v0.4.0 github.com/pkg/errors v0.9.1 // indirect - github.com/sirupsen/logrus v1.4.2 - golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 - gotest.tools v2.2.0+incompatible - gotest.tools/v3 v3.0.2 // indirect + golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a + gotest.tools/v3 v3.0.2 ) diff --git a/vendor/github.com/moby/term/go.sum b/vendor/github.com/moby/term/go.sum index 413bf36668..441e06137a 100644 --- a/vendor/github.com/moby/term/go.sum +++ b/vendor/github.com/moby/term/go.sum @@ -1,33 +1,23 @@ github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= +github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= +github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a h1:i47hUS795cOydZI4AwJQCKXOr4BvxzvikwDoDtHhP2Y= +golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gotest.tools/v3 v3.0.2 h1:kG1BFyqVHuQoVQiR1bWGnfz/fmHvvuiSPIV7rvl360E= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= diff --git a/vendor/github.com/moby/term/proxy.go b/vendor/github.com/moby/term/proxy.go index 9573222f9f..c47756b89a 100644 --- a/vendor/github.com/moby/term/proxy.go +++ b/vendor/github.com/moby/term/proxy.go @@ -1,4 +1,4 @@ -package term // import "github.com/moby/term" +package term import ( "io" @@ -19,6 +19,7 @@ type escapeProxy struct { escapeKeys []byte escapeKeyPos int r io.Reader + buf []byte } // NewEscapeProxy returns a new TTY proxy reader which wraps the given reader @@ -31,48 +32,57 @@ func NewEscapeProxy(r io.Reader, escapeKeys []byte) io.Reader { } } -func (r *escapeProxy) Read(buf []byte) (int, error) { - nr, err := r.r.Read(buf) +func (r *escapeProxy) Read(buf []byte) (n int, err error) { + if len(r.escapeKeys) > 0 && r.escapeKeyPos == len(r.escapeKeys) { + return 0, EscapeError{} + } - if len(r.escapeKeys) == 0 { - return nr, err + if len(r.buf) > 0 { + n = copy(buf, r.buf) + r.buf = r.buf[n:] } - preserve := func() { - // this preserves the original key presses in the passed in buffer - nr += r.escapeKeyPos - preserve := make([]byte, 0, r.escapeKeyPos+len(buf)) - preserve = append(preserve, r.escapeKeys[:r.escapeKeyPos]...) - preserve = append(preserve, buf...) - r.escapeKeyPos = 0 - copy(buf[0:nr], preserve) + nr, err := r.r.Read(buf[n:]) + n += nr + if len(r.escapeKeys) == 0 { + return n, err } - if nr != 1 || err != nil { - if r.escapeKeyPos > 0 { - preserve() + for i := 0; i < n; i++ { + if buf[i] == r.escapeKeys[r.escapeKeyPos] { + r.escapeKeyPos++ + + // Check if the full escape sequence is matched. + if r.escapeKeyPos == len(r.escapeKeys) { + n = i + 1 - r.escapeKeyPos + if n < 0 { + n = 0 + } + return n, EscapeError{} + } + continue } - return nr, err - } - if buf[0] != r.escapeKeys[r.escapeKeyPos] { - if r.escapeKeyPos > 0 { - preserve() + // If we need to prepend a partial escape sequence from the previous + // read, make sure the new buffer size doesn't exceed len(buf). + // Otherwise, preserve any extra data in a buffer for the next read. + if i < r.escapeKeyPos { + preserve := make([]byte, 0, r.escapeKeyPos+n) + preserve = append(preserve, r.escapeKeys[:r.escapeKeyPos]...) + preserve = append(preserve, buf[:n]...) + n = copy(buf, preserve) + i += r.escapeKeyPos + r.buf = append(r.buf, preserve[n:]...) } - return nr, nil + r.escapeKeyPos = 0 } - if r.escapeKeyPos == len(r.escapeKeys)-1 { - return 0, EscapeError{} + // If we're in the middle of reading an escape sequence, make sure we don't + // let the caller read it. If later on we find that this is not the escape + // sequence, we'll prepend it back to buf. + n -= r.escapeKeyPos + if n < 0 { + n = 0 } - - // Looks like we've got an escape key, but we need to match again on the next - // read. - // Store the current escape key we found so we can look for the next one on - // the next read. - // Since this is an escape key, make sure we don't let the caller read it - // If later on we find that this is not the escape sequence, we'll add the - // keys back - r.escapeKeyPos++ - return nr - r.escapeKeyPos, nil + return n, err } diff --git a/vendor/github.com/moby/term/tc.go b/vendor/github.com/moby/term/tc.go index 162dfb2b2f..65556027a6 100644 --- a/vendor/github.com/moby/term/tc.go +++ b/vendor/github.com/moby/term/tc.go @@ -1,20 +1,19 @@ // +build !windows -package term // import "github.com/moby/term" +package term import ( - "syscall" - "unsafe" - "golang.org/x/sys/unix" ) -func tcget(fd uintptr, p *Termios) syscall.Errno { - _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, uintptr(getTermios), uintptr(unsafe.Pointer(p))) - return err +func tcget(fd uintptr) (*Termios, error) { + p, err := unix.IoctlGetTermios(int(fd), getTermios) + if err != nil { + return nil, err + } + return p, nil } -func tcset(fd uintptr, p *Termios) syscall.Errno { - _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, setTermios, uintptr(unsafe.Pointer(p))) - return err +func tcset(fd uintptr, p *Termios) error { + return unix.IoctlSetTermios(int(fd), setTermios, p) } diff --git a/vendor/github.com/moby/term/term.go b/vendor/github.com/moby/term/term.go index 6d643516f3..29c6acf1c7 100644 --- a/vendor/github.com/moby/term/term.go +++ b/vendor/github.com/moby/term/term.go @@ -2,7 +2,7 @@ // Package term provides structures and helper functions to work with // terminal (state, sizes). -package term // import "github.com/moby/term" +package term import ( "errors" @@ -50,8 +50,8 @@ func GetFdInfo(in interface{}) (uintptr, bool) { // IsTerminal returns true if the given file descriptor is a terminal. func IsTerminal(fd uintptr) bool { - var termios Termios - return tcget(fd, &termios) == 0 + _, err := tcget(fd) + return err == nil } // RestoreTerminal restores the terminal connected to the given file descriptor @@ -60,20 +60,16 @@ func RestoreTerminal(fd uintptr, state *State) error { if state == nil { return ErrInvalidState } - if err := tcset(fd, &state.termios); err != 0 { - return err - } - return nil + return tcset(fd, &state.termios) } // SaveState saves the state of the terminal connected to the given file descriptor. func SaveState(fd uintptr) (*State, error) { - var oldState State - if err := tcget(fd, &oldState.termios); err != 0 { + termios, err := tcget(fd) + if err != nil { return nil, err } - - return &oldState, nil + return &State{termios: *termios}, nil } // DisableEcho applies the specified state to the terminal connected to the file @@ -82,7 +78,7 @@ func DisableEcho(fd uintptr, state *State) error { newState := state.termios newState.Lflag &^= unix.ECHO - if err := tcset(fd, &newState); err != 0 { + if err := tcset(fd, &newState); err != nil { return err } handleInterrupt(fd, state) diff --git a/vendor/github.com/moby/term/term_windows.go b/vendor/github.com/moby/term/term_windows.go index 1649c23064..ba82960d4a 100644 --- a/vendor/github.com/moby/term/term_windows.go +++ b/vendor/github.com/moby/term/term_windows.go @@ -1,13 +1,12 @@ -package term // import "github.com/moby/term" +package term import ( "io" "os" "os/signal" - "syscall" // used for STD_INPUT_HANDLE, STD_OUTPUT_HANDLE and STD_ERROR_HANDLE - "github.com/Azure/go-ansiterm/winterm" windowsconsole "github.com/moby/term/windows" + "golang.org/x/sys/windows" ) // State holds the console mode for the terminal. @@ -28,37 +27,42 @@ var vtInputSupported bool func StdStreams() (stdIn io.ReadCloser, stdOut, stdErr io.Writer) { // Turn on VT handling on all std handles, if possible. This might // fail, in which case we will fall back to terminal emulation. - var emulateStdin, emulateStdout, emulateStderr bool - fd := os.Stdin.Fd() - if mode, err := winterm.GetConsoleMode(fd); err == nil { + var ( + emulateStdin, emulateStdout, emulateStderr bool + + mode uint32 + ) + + fd := windows.Handle(os.Stdin.Fd()) + if err := windows.GetConsoleMode(fd, &mode); err == nil { // Validate that winterm.ENABLE_VIRTUAL_TERMINAL_INPUT is supported, but do not set it. - if err = winterm.SetConsoleMode(fd, mode|winterm.ENABLE_VIRTUAL_TERMINAL_INPUT); err != nil { + if err = windows.SetConsoleMode(fd, mode|windows.ENABLE_VIRTUAL_TERMINAL_INPUT); err != nil { emulateStdin = true } else { vtInputSupported = true } // Unconditionally set the console mode back even on failure because SetConsoleMode // remembers invalid bits on input handles. - winterm.SetConsoleMode(fd, mode) + _ = windows.SetConsoleMode(fd, mode) } - fd = os.Stdout.Fd() - if mode, err := winterm.GetConsoleMode(fd); err == nil { + fd = windows.Handle(os.Stdout.Fd()) + if err := windows.GetConsoleMode(fd, &mode); err == nil { // Validate winterm.DISABLE_NEWLINE_AUTO_RETURN is supported, but do not set it. - if err = winterm.SetConsoleMode(fd, mode|winterm.ENABLE_VIRTUAL_TERMINAL_PROCESSING|winterm.DISABLE_NEWLINE_AUTO_RETURN); err != nil { + if err = windows.SetConsoleMode(fd, mode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING|windows.DISABLE_NEWLINE_AUTO_RETURN); err != nil { emulateStdout = true } else { - winterm.SetConsoleMode(fd, mode|winterm.ENABLE_VIRTUAL_TERMINAL_PROCESSING) + _ = windows.SetConsoleMode(fd, mode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING) } } - fd = os.Stderr.Fd() - if mode, err := winterm.GetConsoleMode(fd); err == nil { + fd = windows.Handle(os.Stderr.Fd()) + if err := windows.GetConsoleMode(fd, &mode); err == nil { // Validate winterm.DISABLE_NEWLINE_AUTO_RETURN is supported, but do not set it. - if err = winterm.SetConsoleMode(fd, mode|winterm.ENABLE_VIRTUAL_TERMINAL_PROCESSING|winterm.DISABLE_NEWLINE_AUTO_RETURN); err != nil { + if err = windows.SetConsoleMode(fd, mode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING|windows.DISABLE_NEWLINE_AUTO_RETURN); err != nil { emulateStderr = true } else { - winterm.SetConsoleMode(fd, mode|winterm.ENABLE_VIRTUAL_TERMINAL_PROCESSING) + _ = windows.SetConsoleMode(fd, mode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING) } } @@ -67,19 +71,22 @@ func StdStreams() (stdIn io.ReadCloser, stdOut, stdErr io.Writer) { // go-ansiterm hasn't switch to x/sys/windows. // TODO: switch back to x/sys/windows once go-ansiterm has switched if emulateStdin { - stdIn = windowsconsole.NewAnsiReader(syscall.STD_INPUT_HANDLE) + h := uint32(windows.STD_INPUT_HANDLE) + stdIn = windowsconsole.NewAnsiReader(int(h)) } else { stdIn = os.Stdin } if emulateStdout { - stdOut = windowsconsole.NewAnsiWriter(syscall.STD_OUTPUT_HANDLE) + h := uint32(windows.STD_OUTPUT_HANDLE) + stdOut = windowsconsole.NewAnsiWriter(int(h)) } else { stdOut = os.Stdout } if emulateStderr { - stdErr = windowsconsole.NewAnsiWriter(syscall.STD_ERROR_HANDLE) + h := uint32(windows.STD_ERROR_HANDLE) + stdErr = windowsconsole.NewAnsiWriter(int(h)) } else { stdErr = os.Stderr } @@ -94,8 +101,8 @@ func GetFdInfo(in interface{}) (uintptr, bool) { // GetWinsize returns the window size based on the specified file descriptor. func GetWinsize(fd uintptr) (*Winsize, error) { - info, err := winterm.GetConsoleScreenBufferInfo(fd) - if err != nil { + var info windows.ConsoleScreenBufferInfo + if err := windows.GetConsoleScreenBufferInfo(windows.Handle(fd), &info); err != nil { return nil, err } @@ -109,20 +116,23 @@ func GetWinsize(fd uintptr) (*Winsize, error) { // IsTerminal returns true if the given file descriptor is a terminal. func IsTerminal(fd uintptr) bool { - return windowsconsole.IsConsole(fd) + var mode uint32 + err := windows.GetConsoleMode(windows.Handle(fd), &mode) + return err == nil } // RestoreTerminal restores the terminal connected to the given file descriptor // to a previous state. func RestoreTerminal(fd uintptr, state *State) error { - return winterm.SetConsoleMode(fd, state.mode) + return windows.SetConsoleMode(windows.Handle(fd), state.mode) } // SaveState saves the state of the terminal connected to the given file descriptor. func SaveState(fd uintptr) (*State, error) { - mode, e := winterm.GetConsoleMode(fd) - if e != nil { - return nil, e + var mode uint32 + + if err := windows.GetConsoleMode(windows.Handle(fd), &mode); err != nil { + return nil, err } return &State{mode: mode}, nil @@ -132,9 +142,9 @@ func SaveState(fd uintptr) (*State, error) { // -- See https://msdn.microsoft.com/en-us/library/windows/desktop/ms683462(v=vs.85).aspx func DisableEcho(fd uintptr, state *State) error { mode := state.mode - mode &^= winterm.ENABLE_ECHO_INPUT - mode |= winterm.ENABLE_PROCESSED_INPUT | winterm.ENABLE_LINE_INPUT - err := winterm.SetConsoleMode(fd, mode) + mode &^= windows.ENABLE_ECHO_INPUT + mode |= windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT + err := windows.SetConsoleMode(windows.Handle(fd), mode) if err != nil { return err } @@ -169,7 +179,7 @@ func SetRawTerminalOutput(fd uintptr) (*State, error) { // Ignore failures, since winterm.DISABLE_NEWLINE_AUTO_RETURN might not be supported on this // version of Windows. - winterm.SetConsoleMode(fd, state.mode|winterm.DISABLE_NEWLINE_AUTO_RETURN) + _ = windows.SetConsoleMode(windows.Handle(fd), state.mode|windows.DISABLE_NEWLINE_AUTO_RETURN) return state, err } @@ -188,21 +198,21 @@ func MakeRaw(fd uintptr) (*State, error) { // -- https://msdn.microsoft.com/en-us/library/windows/desktop/ms683462(v=vs.85).aspx // Disable these modes - mode &^= winterm.ENABLE_ECHO_INPUT - mode &^= winterm.ENABLE_LINE_INPUT - mode &^= winterm.ENABLE_MOUSE_INPUT - mode &^= winterm.ENABLE_WINDOW_INPUT - mode &^= winterm.ENABLE_PROCESSED_INPUT + mode &^= windows.ENABLE_ECHO_INPUT + mode &^= windows.ENABLE_LINE_INPUT + mode &^= windows.ENABLE_MOUSE_INPUT + mode &^= windows.ENABLE_WINDOW_INPUT + mode &^= windows.ENABLE_PROCESSED_INPUT // Enable these modes - mode |= winterm.ENABLE_EXTENDED_FLAGS - mode |= winterm.ENABLE_INSERT_MODE - mode |= winterm.ENABLE_QUICK_EDIT_MODE + mode |= windows.ENABLE_EXTENDED_FLAGS + mode |= windows.ENABLE_INSERT_MODE + mode |= windows.ENABLE_QUICK_EDIT_MODE if vtInputSupported { - mode |= winterm.ENABLE_VIRTUAL_TERMINAL_INPUT + mode |= windows.ENABLE_VIRTUAL_TERMINAL_INPUT } - err = winterm.SetConsoleMode(fd, mode) + err = windows.SetConsoleMode(windows.Handle(fd), mode) if err != nil { return nil, err } @@ -215,7 +225,7 @@ func restoreAtInterrupt(fd uintptr, state *State) { go func() { _ = <-sigchan - RestoreTerminal(fd, state) + _ = RestoreTerminal(fd, state) os.Exit(0) }() } diff --git a/vendor/github.com/moby/term/termios.go b/vendor/github.com/moby/term/termios.go new file mode 100644 index 0000000000..0f028e2273 --- /dev/null +++ b/vendor/github.com/moby/term/termios.go @@ -0,0 +1,35 @@ +// +build !windows + +package term + +import ( + "golang.org/x/sys/unix" +) + +// Termios is the Unix API for terminal I/O. +type Termios = unix.Termios + +// MakeRaw puts the terminal connected to the given file descriptor into raw +// mode and returns the previous state of the terminal so that it can be +// restored. +func MakeRaw(fd uintptr) (*State, error) { + termios, err := tcget(fd) + if err != nil { + return nil, err + } + + oldState := State{termios: *termios} + + termios.Iflag &^= (unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON) + termios.Oflag &^= unix.OPOST + termios.Lflag &^= (unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN) + termios.Cflag &^= (unix.CSIZE | unix.PARENB) + termios.Cflag |= unix.CS8 + termios.Cc[unix.VMIN] = 1 + termios.Cc[unix.VTIME] = 0 + + if err := tcset(fd, termios); err != nil { + return nil, err + } + return &oldState, nil +} diff --git a/vendor/github.com/moby/term/termios_bsd.go b/vendor/github.com/moby/term/termios_bsd.go index da78510665..922dd4baab 100644 --- a/vendor/github.com/moby/term/termios_bsd.go +++ b/vendor/github.com/moby/term/termios_bsd.go @@ -1,10 +1,8 @@ // +build darwin freebsd openbsd netbsd -package term // import "github.com/moby/term" +package term import ( - "unsafe" - "golang.org/x/sys/unix" ) @@ -12,31 +10,3 @@ const ( getTermios = unix.TIOCGETA setTermios = unix.TIOCSETA ) - -// Termios is the Unix API for terminal I/O. -type Termios unix.Termios - -// MakeRaw put the terminal connected to the given file descriptor into raw -// mode and returns the previous state of the terminal so that it can be -// restored. -func MakeRaw(fd uintptr) (*State, error) { - var oldState State - if _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, getTermios, uintptr(unsafe.Pointer(&oldState.termios))); err != 0 { - return nil, err - } - - newState := oldState.termios - newState.Iflag &^= (unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON) - newState.Oflag &^= unix.OPOST - newState.Lflag &^= (unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN) - newState.Cflag &^= (unix.CSIZE | unix.PARENB) - newState.Cflag |= unix.CS8 - newState.Cc[unix.VMIN] = 1 - newState.Cc[unix.VTIME] = 0 - - if _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, setTermios, uintptr(unsafe.Pointer(&newState))); err != 0 { - return nil, err - } - - return &oldState, nil -} diff --git a/vendor/github.com/moby/term/termios_linux.go b/vendor/github.com/moby/term/termios_linux.go deleted file mode 100644 index be39ff56cc..0000000000 --- a/vendor/github.com/moby/term/termios_linux.go +++ /dev/null @@ -1,39 +0,0 @@ -package term // import "github.com/moby/term" - -import ( - "golang.org/x/sys/unix" -) - -const ( - getTermios = unix.TCGETS - setTermios = unix.TCSETS -) - -// Termios is the Unix API for terminal I/O. -type Termios unix.Termios - -// MakeRaw put the terminal connected to the given file descriptor into raw -// mode and returns the previous state of the terminal so that it can be -// restored. -func MakeRaw(fd uintptr) (*State, error) { - termios, err := unix.IoctlGetTermios(int(fd), getTermios) - if err != nil { - return nil, err - } - - var oldState State - oldState.termios = Termios(*termios) - - termios.Iflag &^= (unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON) - termios.Oflag &^= unix.OPOST - termios.Lflag &^= (unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN) - termios.Cflag &^= (unix.CSIZE | unix.PARENB) - termios.Cflag |= unix.CS8 - termios.Cc[unix.VMIN] = 1 - termios.Cc[unix.VTIME] = 0 - - if err := unix.IoctlSetTermios(int(fd), setTermios, termios); err != nil { - return nil, err - } - return &oldState, nil -} diff --git a/vendor/github.com/moby/term/termios_nonbsd.go b/vendor/github.com/moby/term/termios_nonbsd.go new file mode 100644 index 0000000000..038fd61ba1 --- /dev/null +++ b/vendor/github.com/moby/term/termios_nonbsd.go @@ -0,0 +1,12 @@ +//+build !darwin,!freebsd,!netbsd,!openbsd,!windows + +package term + +import ( + "golang.org/x/sys/unix" +) + +const ( + getTermios = unix.TCGETS + setTermios = unix.TCSETS +) diff --git a/vendor/github.com/moby/term/windows/ansi_reader.go b/vendor/github.com/moby/term/windows/ansi_reader.go index 5114b63ebf..155251521b 100644 --- a/vendor/github.com/moby/term/windows/ansi_reader.go +++ b/vendor/github.com/moby/term/windows/ansi_reader.go @@ -1,6 +1,6 @@ // +build windows -package windowsconsole // import "github.com/moby/term/windows" +package windowsconsole import ( "bytes" @@ -31,7 +31,6 @@ type ansiReader struct { // NewAnsiReader returns an io.ReadCloser that provides VT100 terminal emulation on top of a // Windows console input handle. func NewAnsiReader(nFile int) io.ReadCloser { - initLogger() file, fd := winterm.GetStdFile(nFile) return &ansiReader{ file: file, @@ -59,8 +58,6 @@ func (ar *ansiReader) Read(p []byte) (int, error) { // Previously read bytes exist, read as much as we can and return if len(ar.buffer) > 0 { - logger.Debugf("Reading previously cached bytes") - originalLength := len(ar.buffer) copiedLength := copy(p, ar.buffer) @@ -70,16 +67,14 @@ func (ar *ansiReader) Read(p []byte) (int, error) { ar.buffer = ar.buffer[copiedLength:] } - logger.Debugf("Read from cache p[%d]: % x", copiedLength, p) return copiedLength, nil } // Read and translate key events - events, err := readInputEvents(ar.fd, len(p)) + events, err := readInputEvents(ar, len(p)) if err != nil { return 0, err } else if len(events) == 0 { - logger.Debug("No input events detected") return 0, nil } @@ -87,11 +82,9 @@ func (ar *ansiReader) Read(p []byte) (int, error) { // Save excess bytes and right-size keyBytes if len(keyBytes) > len(p) { - logger.Debugf("Received %d keyBytes, only room for %d bytes", len(keyBytes), len(p)) ar.buffer = keyBytes[len(p):] keyBytes = keyBytes[:len(p)] } else if len(keyBytes) == 0 { - logger.Debug("No key bytes returned from the translator") return 0, nil } @@ -100,13 +93,11 @@ func (ar *ansiReader) Read(p []byte) (int, error) { return 0, errors.New("unexpected copy length encountered") } - logger.Debugf("Read p[%d]: % x", copiedLength, p) - logger.Debugf("Read keyBytes[%d]: % x", copiedLength, keyBytes) return copiedLength, nil } // readInputEvents polls until at least one event is available. -func readInputEvents(fd uintptr, maxBytes int) ([]winterm.INPUT_RECORD, error) { +func readInputEvents(ar *ansiReader, maxBytes int) ([]winterm.INPUT_RECORD, error) { // Determine the maximum number of records to retrieve // -- Cast around the type system to obtain the size of a single INPUT_RECORD. // unsafe.Sizeof requires an expression vs. a type-reference; the casting @@ -118,25 +109,23 @@ func readInputEvents(fd uintptr, maxBytes int) ([]winterm.INPUT_RECORD, error) { } else if countRecords == 0 { countRecords = 1 } - logger.Debugf("[windows] readInputEvents: Reading %v records (buffer size %v, record size %v)", countRecords, maxBytes, recordSize) // Wait for and read input events events := make([]winterm.INPUT_RECORD, countRecords) nEvents := uint32(0) - eventsExist, err := winterm.WaitForSingleObject(fd, winterm.WAIT_INFINITE) + eventsExist, err := winterm.WaitForSingleObject(ar.fd, winterm.WAIT_INFINITE) if err != nil { return nil, err } if eventsExist { - err = winterm.ReadConsoleInput(fd, events, &nEvents) + err = winterm.ReadConsoleInput(ar.fd, events, &nEvents) if err != nil { return nil, err } } // Return a slice restricted to the number of returned records - logger.Debugf("[windows] readInputEvents: Read %v events", nEvents) return events[:nEvents], nil } diff --git a/vendor/github.com/moby/term/windows/ansi_writer.go b/vendor/github.com/moby/term/windows/ansi_writer.go index 51bf9aa48c..ccb5ef0775 100644 --- a/vendor/github.com/moby/term/windows/ansi_writer.go +++ b/vendor/github.com/moby/term/windows/ansi_writer.go @@ -1,6 +1,6 @@ // +build windows -package windowsconsole // import "github.com/moby/term/windows" +package windowsconsole import ( "io" @@ -24,7 +24,6 @@ type ansiWriter struct { // NewAnsiWriter returns an io.Writer that provides VT100 terminal emulation on top of a // Windows console output handle. func NewAnsiWriter(nFile int) io.Writer { - initLogger() file, fd := winterm.GetStdFile(nFile) info, err := winterm.GetConsoleScreenBufferInfo(fd) if err != nil { @@ -32,9 +31,8 @@ func NewAnsiWriter(nFile int) io.Writer { } parser := ansiterm.CreateParser("Ground", winterm.CreateWinEventHandler(fd, file)) - logger.Infof("newAnsiWriter: parser %p", parser) - aw := &ansiWriter{ + return &ansiWriter{ file: file, fd: fd, infoReset: info, @@ -42,10 +40,6 @@ func NewAnsiWriter(nFile int) io.Writer { escapeSequence: []byte(ansiterm.KEY_ESC_CSI), parser: parser, } - - logger.Infof("newAnsiWriter: aw.parser %p", aw.parser) - logger.Infof("newAnsiWriter: %v", aw) - return aw } func (aw *ansiWriter) Fd() uintptr { @@ -58,7 +52,5 @@ func (aw *ansiWriter) Write(p []byte) (total int, err error) { return 0, nil } - logger.Infof("Write: % x", p) - logger.Infof("Write: %s", string(p)) return aw.parser.Parse(p) } diff --git a/vendor/github.com/moby/term/windows/console.go b/vendor/github.com/moby/term/windows/console.go index 54e0fe839f..993694ddcd 100644 --- a/vendor/github.com/moby/term/windows/console.go +++ b/vendor/github.com/moby/term/windows/console.go @@ -1,11 +1,11 @@ // +build windows -package windowsconsole // import "github.com/moby/term/windows" +package windowsconsole import ( "os" - "github.com/Azure/go-ansiterm/winterm" + "golang.org/x/sys/windows" ) // GetHandleInfo returns file descriptor and bool indicating whether the file is a console. @@ -22,14 +22,18 @@ func GetHandleInfo(in interface{}) (uintptr, bool) { if file, ok := in.(*os.File); ok { inFd = file.Fd() - isTerminal = IsConsole(inFd) + isTerminal = isConsole(inFd) } return inFd, isTerminal } // IsConsole returns true if the given file descriptor is a Windows Console. // The code assumes that GetConsoleMode will return an error for file descriptors that are not a console. -func IsConsole(fd uintptr) bool { - _, e := winterm.GetConsoleMode(fd) - return e == nil +// Deprecated: use golang.org/x/sys/windows.GetConsoleMode() or golang.org/x/term.IsTerminal() +var IsConsole = isConsole + +func isConsole(fd uintptr) bool { + var mode uint32 + err := windows.GetConsoleMode(windows.Handle(fd), &mode) + return err == nil } diff --git a/vendor/github.com/moby/term/windows/doc.go b/vendor/github.com/moby/term/windows/doc.go new file mode 100644 index 0000000000..54265fffaf --- /dev/null +++ b/vendor/github.com/moby/term/windows/doc.go @@ -0,0 +1,5 @@ +// These files implement ANSI-aware input and output streams for use by the Docker Windows client. +// When asked for the set of standard streams (e.g., stdin, stdout, stderr), the code will create +// and return pseudo-streams that convert ANSI sequences to / from Windows Console API calls. + +package windowsconsole diff --git a/vendor/github.com/moby/term/windows/windows.go b/vendor/github.com/moby/term/windows/windows.go deleted file mode 100644 index bb03e06018..0000000000 --- a/vendor/github.com/moby/term/windows/windows.go +++ /dev/null @@ -1,34 +0,0 @@ -// +build windows -// These files implement ANSI-aware input and output streams for use by the Docker Windows client. -// When asked for the set of standard streams (e.g., stdin, stdout, stderr), the code will create -// and return pseudo-streams that convert ANSI sequences to / from Windows Console API calls. - -package windowsconsole // import "github.com/moby/term/windows" - -import ( - "io/ioutil" - "os" - "sync" - - ansiterm "github.com/Azure/go-ansiterm" - "github.com/sirupsen/logrus" -) - -var logger *logrus.Logger -var initOnce sync.Once - -func initLogger() { - initOnce.Do(func() { - logFile := ioutil.Discard - - if isDebugEnv := os.Getenv(ansiterm.LogEnv); isDebugEnv == "1" { - logFile, _ = os.Create("ansiReaderWriter.log") - } - - logger = &logrus.Logger{ - Out: logFile, - Formatter: new(logrus.TextFormatter), - Level: logrus.DebugLevel, - } - }) -} diff --git a/vendor/github.com/moby/term/winsize.go b/vendor/github.com/moby/term/winsize.go index 29a0463dc4..1ef98d5996 100644 --- a/vendor/github.com/moby/term/winsize.go +++ b/vendor/github.com/moby/term/winsize.go @@ -1,6 +1,6 @@ // +build !windows -package term // import "github.com/moby/term" +package term import ( "golang.org/x/sys/unix" diff --git a/vendor/github.com/monochromegane/go-gitignore/.travis.yml b/vendor/github.com/monochromegane/go-gitignore/.travis.yml new file mode 100644 index 0000000000..b06a36a466 --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/.travis.yml @@ -0,0 +1,6 @@ +language: go +go: + - 1.14.x + - master +script: + - go test -v ./... diff --git a/vendor/github.com/monochromegane/go-gitignore/LICENSE b/vendor/github.com/monochromegane/go-gitignore/LICENSE new file mode 100644 index 0000000000..91b84e9277 --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) [2015] [go-gitignore] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/monochromegane/go-gitignore/README.md b/vendor/github.com/monochromegane/go-gitignore/README.md new file mode 100644 index 0000000000..51a480747b --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/README.md @@ -0,0 +1,95 @@ +# go-gitignore [![Build Status](https://travis-ci.org/monochromegane/go-gitignore.svg)](https://travis-ci.org/monochromegane/go-gitignore) + +A fast gitignore matching library for Go. + +This library use simple tree index for matching, so keep fast if gitignore file has many pattern. + +## Usage + +```go +gitignore, _ := gitignore.NewGitIgnore("/path/to/gitignore") + +path := "/path/to/file" +isDir := false +gitignore.Match(path, isDir) +``` + +### Specify base directory + +go-gitignore treat `path` as a base directory. +If you want to specify other base (e.g. current directory and Global gitignore), you can like the following. + +```go +gitignore, _ := gitignore.NewGitIgnore("/home/you/.gitignore", ".") +``` + +### From io.Reader + +go-gitignore can initialize from io.Reader. + +```go +gitignore, _ := gitignore.NewGitIgnoreFromReader(base, reader) +``` + +## Simple tree index + +go-gitignore parse gitignore file, and generate a simple tree index for matching like the following. + +``` +. +├── accept +│   ├── absolute +│   │   └── depth +│   │   ├── initial +│   │   └── other +│   └── relative +│   └── depth +│   ├── initial +│   └── other +└── ignore + ├── absolute + │   └── depth + │   ├── initial + │   └── other + └── relative + └── depth + ├── initial + └── other +``` + +## Features + +- Support absolute path (/path/to/ignore) +- Support relative path (path/to/ignore) +- Support accept pattern (!path/to/accept) +- Support directory pattern (path/to/directory/) +- Support glob pattern (path/to/\*.txt) + +*note: glob pattern* + +go-gitignore use [filepath.Match](https://golang.org/pkg/path/filepath/#Match) for matching meta char pattern, so not support recursive pattern (path/`**`/file). + +## Installation + +```sh +$ go get github.com/monochromegane/go-gitignore +``` + +## Contribution + +1. Fork it +2. Create a feature branch +3. Commit your changes +4. Rebase your local changes against the master branch +5. Run test suite with the `go test ./...` command and confirm that it passes +6. Run `gofmt -s` +7. Create new Pull Request + +## License + +[MIT](https://github.com/monochromegane/go-gitignore/blob/master/LICENSE) + +## Author + +[monochromegane](https://github.com/monochromegane) + diff --git a/vendor/github.com/monochromegane/go-gitignore/depth_holder.go b/vendor/github.com/monochromegane/go-gitignore/depth_holder.go new file mode 100644 index 0000000000..9805b325d4 --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/depth_holder.go @@ -0,0 +1,79 @@ +package gitignore + +import "strings" + +const ( + asc = iota + desc +) + +type depthPatternHolder struct { + patterns depthPatterns + order int +} + +func newDepthPatternHolder(order int) depthPatternHolder { + return depthPatternHolder{ + patterns: depthPatterns{m: map[int]initialPatternHolder{}}, + order: order, + } +} + +func (h *depthPatternHolder) add(pattern string) { + count := strings.Count(strings.Trim(pattern, "/"), "/") + h.patterns.set(count+1, pattern) +} + +func (h depthPatternHolder) match(path string, isDir bool) bool { + if h.patterns.size() == 0 { + return false + } + + for depth := 1; ; depth++ { + var part string + var isLast, isDirCurrent bool + if h.order == asc { + part, isLast = cutN(path, depth) + if isLast { + isDirCurrent = isDir + } else { + isDirCurrent = false + } + } else { + part, isLast = cutLastN(path, depth) + isDirCurrent = isDir + } + if patterns, ok := h.patterns.get(depth); ok { + if patterns.match(part, isDirCurrent) { + return true + } + } + if isLast { + break + } + } + return false +} + +type depthPatterns struct { + m map[int]initialPatternHolder +} + +func (p *depthPatterns) set(depth int, pattern string) { + if ps, ok := p.m[depth]; ok { + ps.add(pattern) + } else { + holder := newInitialPatternHolder() + holder.add(pattern) + p.m[depth] = holder + } +} + +func (p depthPatterns) get(depth int) (initialPatternHolder, bool) { + patterns, ok := p.m[depth] + return patterns, ok +} + +func (p depthPatterns) size() int { + return len(p.m) +} diff --git a/vendor/github.com/monochromegane/go-gitignore/full_scan_patterns.go b/vendor/github.com/monochromegane/go-gitignore/full_scan_patterns.go new file mode 100644 index 0000000000..8c04ef3a77 --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/full_scan_patterns.go @@ -0,0 +1,31 @@ +package gitignore + +import "strings" + +// Only benchmark use +type fullScanPatterns struct { + absolute patterns + relative patterns +} + +func newFullScanPatterns() *fullScanPatterns { + return &fullScanPatterns{ + absolute: patterns{}, + relative: patterns{}, + } +} + +func (ps *fullScanPatterns) add(pattern string) { + if strings.HasPrefix(pattern, "/") { + ps.absolute.add(newPattern(pattern)) + } else { + ps.relative.add(newPattern(pattern)) + } +} + +func (ps fullScanPatterns) match(path string, isDir bool) bool { + if ps.absolute.match(path, isDir) { + return true + } + return ps.relative.match(path, isDir) +} diff --git a/vendor/github.com/monochromegane/go-gitignore/gitignore.go b/vendor/github.com/monochromegane/go-gitignore/gitignore.go new file mode 100644 index 0000000000..9c719a6cab --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/gitignore.go @@ -0,0 +1,80 @@ +package gitignore + +import ( + "bufio" + "io" + "os" + "path/filepath" + "strings" +) + +type IgnoreMatcher interface { + Match(path string, isDir bool) bool +} + +type DummyIgnoreMatcher bool + +func (d DummyIgnoreMatcher) Match(path string, isDir bool) bool { + return bool(d) +} + +type gitIgnore struct { + ignorePatterns scanStrategy + acceptPatterns scanStrategy + path string +} + +func NewGitIgnore(gitignore string, base ...string) (IgnoreMatcher, error) { + var path string + if len(base) > 0 { + path = base[0] + } else { + path = filepath.Dir(gitignore) + } + + file, err := os.Open(gitignore) + if err != nil { + return nil, err + } + defer file.Close() + + return NewGitIgnoreFromReader(path, file), nil +} + +func NewGitIgnoreFromReader(path string, r io.Reader) IgnoreMatcher { + g := gitIgnore{ + ignorePatterns: newIndexScanPatterns(), + acceptPatterns: newIndexScanPatterns(), + path: path, + } + scanner := bufio.NewScanner(r) + for scanner.Scan() { + line := strings.Trim(scanner.Text(), " ") + if len(line) == 0 || strings.HasPrefix(line, "#") { + continue + } + if strings.HasPrefix(line, `\#`) { + line = strings.TrimPrefix(line, `\`) + } + + if strings.HasPrefix(line, "!") { + g.acceptPatterns.add(strings.TrimPrefix(line, "!")) + } else { + g.ignorePatterns.add(line) + } + } + return g +} + +func (g gitIgnore) Match(path string, isDir bool) bool { + relativePath, err := filepath.Rel(g.path, path) + if err != nil { + return false + } + relativePath = filepath.ToSlash(relativePath) + + if g.acceptPatterns.match(relativePath, isDir) { + return false + } + return g.ignorePatterns.match(relativePath, isDir) +} diff --git a/vendor/github.com/monochromegane/go-gitignore/index_scan_patterns.go b/vendor/github.com/monochromegane/go-gitignore/index_scan_patterns.go new file mode 100644 index 0000000000..882280e953 --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/index_scan_patterns.go @@ -0,0 +1,35 @@ +package gitignore + +import "strings" + +type indexScanPatterns struct { + absolute depthPatternHolder + relative depthPatternHolder +} + +func newIndexScanPatterns() *indexScanPatterns { + return &indexScanPatterns{ + absolute: newDepthPatternHolder(asc), + relative: newDepthPatternHolder(desc), + } +} + +func (ps *indexScanPatterns) add(pattern string) { + if strings.HasPrefix(pattern, "/") { + ps.absolute.add(pattern) + } else { + ps.relative.add(pattern) + } +} + +func (ps indexScanPatterns) match(path string, isDir bool) bool { + if ps.absolute.match(path, isDir) { + return true + } + return ps.relative.match(path, isDir) +} + +type scanStrategy interface { + add(pattern string) + match(path string, isDir bool) bool +} diff --git a/vendor/github.com/monochromegane/go-gitignore/initial_holder.go b/vendor/github.com/monochromegane/go-gitignore/initial_holder.go new file mode 100644 index 0000000000..86f0bfee2b --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/initial_holder.go @@ -0,0 +1,62 @@ +package gitignore + +import "strings" + +const initials = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ." + +type initialPatternHolder struct { + patterns initialPatterns + otherPatterns *patterns +} + +func newInitialPatternHolder() initialPatternHolder { + return initialPatternHolder{ + patterns: initialPatterns{m: map[byte]*patterns{}}, + otherPatterns: &patterns{}, + } +} + +func (h *initialPatternHolder) add(pattern string) { + trimedPattern := strings.TrimPrefix(pattern, "/") + if strings.IndexAny(trimedPattern[0:1], initials) != -1 { + h.patterns.set(trimedPattern[0], newPatternForEqualizedPath(pattern)) + } else { + h.otherPatterns.add(newPatternForEqualizedPath(pattern)) + } +} + +func (h initialPatternHolder) match(path string, isDir bool) bool { + if h.patterns.size() == 0 && h.otherPatterns.size() == 0 { + return false + } + if patterns, ok := h.patterns.get(path[0]); ok { + if patterns.match(path, isDir) { + return true + } + } + return h.otherPatterns.match(path, isDir) +} + +type initialPatterns struct { + m map[byte]*patterns +} + +func (p *initialPatterns) set(initial byte, pattern pattern) { + if ps, ok := p.m[initial]; ok { + ps.add(pattern) + } else { + patterns := &patterns{} + patterns.add(pattern) + p.m[initial] = patterns + + } +} + +func (p initialPatterns) get(initial byte) (*patterns, bool) { + patterns, ok := p.m[initial] + return patterns, ok +} + +func (p initialPatterns) size() int { + return len(p.m) +} diff --git a/vendor/github.com/monochromegane/go-gitignore/match.go b/vendor/github.com/monochromegane/go-gitignore/match.go new file mode 100644 index 0000000000..4140a9bdc5 --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/match.go @@ -0,0 +1,24 @@ +package gitignore + +import "path/filepath" + +type pathMatcher interface { + match(path string) bool +} + +type simpleMatcher struct { + path string +} + +func (m simpleMatcher) match(path string) bool { + return m.path == path +} + +type filepathMatcher struct { + path string +} + +func (m filepathMatcher) match(path string) bool { + match, _ := filepath.Match(m.path, path) + return match +} diff --git a/vendor/github.com/monochromegane/go-gitignore/pattern.go b/vendor/github.com/monochromegane/go-gitignore/pattern.go new file mode 100644 index 0000000000..93adbf7636 --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/pattern.go @@ -0,0 +1,69 @@ +package gitignore + +import ( + "path/filepath" + "strings" +) + +var Separator = string(filepath.Separator) + +type pattern struct { + hasRootPrefix bool + hasDirSuffix bool + pathDepth int + matcher pathMatcher + onlyEqualizedPath bool +} + +func newPattern(path string) pattern { + hasRootPrefix := path[0] == '/' + hasDirSuffix := path[len(path)-1] == '/' + + var pathDepth int + if !hasRootPrefix { + pathDepth = strings.Count(path, "/") + } + + var matcher pathMatcher + matchingPath := strings.Trim(path, "/") + if hasMeta(path) { + matcher = filepathMatcher{path: matchingPath} + } else { + matcher = simpleMatcher{path: matchingPath} + } + + return pattern{ + hasRootPrefix: hasRootPrefix, + hasDirSuffix: hasDirSuffix, + pathDepth: pathDepth, + matcher: matcher, + } +} + +func newPatternForEqualizedPath(path string) pattern { + pattern := newPattern(path) + pattern.onlyEqualizedPath = true + return pattern +} + +func (p pattern) match(path string, isDir bool) bool { + + if p.hasDirSuffix && !isDir { + return false + } + + var targetPath string + if p.hasRootPrefix || p.onlyEqualizedPath { + // absolute pattern or only equalized path mode + targetPath = path + } else { + // relative pattern + targetPath = p.equalizeDepth(path) + } + return p.matcher.match(targetPath) +} + +func (p pattern) equalizeDepth(path string) string { + equalizedPath, _ := cutLastN(path, p.pathDepth+1) + return equalizedPath +} diff --git a/vendor/github.com/monochromegane/go-gitignore/patterns.go b/vendor/github.com/monochromegane/go-gitignore/patterns.go new file mode 100644 index 0000000000..6770fb4655 --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/patterns.go @@ -0,0 +1,22 @@ +package gitignore + +type patterns struct { + patterns []pattern +} + +func (ps *patterns) add(pattern pattern) { + ps.patterns = append(ps.patterns, pattern) +} + +func (ps *patterns) size() int { + return len(ps.patterns) +} + +func (ps patterns) match(path string, isDir bool) bool { + for _, p := range ps.patterns { + if match := p.match(path, isDir); match { + return true + } + } + return false +} diff --git a/vendor/github.com/monochromegane/go-gitignore/util.go b/vendor/github.com/monochromegane/go-gitignore/util.go new file mode 100644 index 0000000000..b5ab9bbfd2 --- /dev/null +++ b/vendor/github.com/monochromegane/go-gitignore/util.go @@ -0,0 +1,45 @@ +package gitignore + +import ( + "os" + "strings" +) + +func cutN(path string, n int) (string, bool) { + isLast := true + + var i, count int + for i < len(path)-1 { + if os.IsPathSeparator(path[i]) { + count++ + if count >= n { + isLast = false + break + } + } + i++ + } + return path[:i+1], isLast +} + +func cutLastN(path string, n int) (string, bool) { + isLast := true + i := len(path) - 1 + + var count int + for i >= 0 { + if os.IsPathSeparator(path[i]) { + count++ + if count >= n { + isLast = false + break + } + } + i-- + } + return path[i+1:], isLast +} + +func hasMeta(path string) bool { + return strings.IndexAny(path, "*?[") >= 0 +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/build_info.go b/vendor/github.com/prometheus/client_golang/prometheus/build_info.go deleted file mode 100644 index 288f0e8548..0000000000 --- a/vendor/github.com/prometheus/client_golang/prometheus/build_info.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2019 The Prometheus 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. - -// +build go1.12 - -package prometheus - -import "runtime/debug" - -// readBuildInfo is a wrapper around debug.ReadBuildInfo for Go 1.12+. -func readBuildInfo() (path, version, sum string) { - path, version, sum = "unknown", "unknown", "unknown" - if bi, ok := debug.ReadBuildInfo(); ok { - path = bi.Main.Path - version = bi.Main.Version - sum = bi.Main.Sum - } - return -} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/build_info_pre_1.12.go b/vendor/github.com/prometheus/client_golang/prometheus/build_info_pre_1.12.go deleted file mode 100644 index 6609e2877c..0000000000 --- a/vendor/github.com/prometheus/client_golang/prometheus/build_info_pre_1.12.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2019 The Prometheus 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. - -// +build !go1.12 - -package prometheus - -// readBuildInfo is a wrapper around debug.ReadBuildInfo for Go versions before -// 1.12. Remove this whole file once the minimum supported Go version is 1.12. -func readBuildInfo() (path, version, sum string) { - return "unknown", "unknown", "unknown" -} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/counter.go b/vendor/github.com/prometheus/client_golang/prometheus/counter.go index 0e1b48c03f..3f8fd790d6 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/counter.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/counter.go @@ -163,7 +163,7 @@ func (c *counter) updateExemplar(v float64, l Labels) { // (e.g. number of HTTP requests, partitioned by response code and // method). Create instances with NewCounterVec. type CounterVec struct { - *metricVec + *MetricVec } // NewCounterVec creates a new CounterVec based on the provided CounterOpts and @@ -176,11 +176,11 @@ func NewCounterVec(opts CounterOpts, labelNames []string) *CounterVec { opts.ConstLabels, ) return &CounterVec{ - metricVec: newMetricVec(desc, func(lvs ...string) Metric { + MetricVec: NewMetricVec(desc, func(lvs ...string) Metric { if len(lvs) != len(desc.variableLabels) { panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, lvs)) } - result := &counter{desc: desc, labelPairs: makeLabelPairs(desc, lvs), now: time.Now} + result := &counter{desc: desc, labelPairs: MakeLabelPairs(desc, lvs), now: time.Now} result.init(result) // Init self-collection. return result }), @@ -188,7 +188,7 @@ func NewCounterVec(opts CounterOpts, labelNames []string) *CounterVec { } // GetMetricWithLabelValues returns the Counter for the given slice of label -// values (same order as the VariableLabels in Desc). If that combination of +// values (same order as the variable labels in Desc). If that combination of // label values is accessed for the first time, a new Counter is created. // // It is possible to call this method without using the returned Counter to only @@ -202,7 +202,7 @@ func NewCounterVec(opts CounterOpts, labelNames []string) *CounterVec { // Counter with the same label values is created later. // // An error is returned if the number of label values is not the same as the -// number of VariableLabels in Desc (minus any curried labels). +// number of variable labels in Desc (minus any curried labels). // // Note that for more than one label value, this method is prone to mistakes // caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as @@ -211,7 +211,7 @@ func NewCounterVec(opts CounterOpts, labelNames []string) *CounterVec { // with a performance overhead (for creating and processing the Labels map). // See also the GaugeVec example. func (v *CounterVec) GetMetricWithLabelValues(lvs ...string) (Counter, error) { - metric, err := v.metricVec.getMetricWithLabelValues(lvs...) + metric, err := v.MetricVec.GetMetricWithLabelValues(lvs...) if metric != nil { return metric.(Counter), err } @@ -219,19 +219,19 @@ func (v *CounterVec) GetMetricWithLabelValues(lvs ...string) (Counter, error) { } // GetMetricWith returns the Counter for the given Labels map (the label names -// must match those of the VariableLabels in Desc). If that label map is +// must match those of the variable labels in Desc). If that label map is // accessed for the first time, a new Counter is created. Implications of // creating a Counter without using it and keeping the Counter for later use are // the same as for GetMetricWithLabelValues. // // An error is returned if the number and names of the Labels are inconsistent -// with those of the VariableLabels in Desc (minus any curried labels). +// with those of the variable labels in Desc (minus any curried labels). // // This method is used for the same purpose as // GetMetricWithLabelValues(...string). See there for pros and cons of the two // methods. func (v *CounterVec) GetMetricWith(labels Labels) (Counter, error) { - metric, err := v.metricVec.getMetricWith(labels) + metric, err := v.MetricVec.GetMetricWith(labels) if metric != nil { return metric.(Counter), err } @@ -275,7 +275,7 @@ func (v *CounterVec) With(labels Labels) Counter { // registered with a given registry (usually the uncurried version). The Reset // method deletes all metrics, even if called on a curried vector. func (v *CounterVec) CurryWith(labels Labels) (*CounterVec, error) { - vec, err := v.curryWith(labels) + vec, err := v.MetricVec.CurryWith(labels) if vec != nil { return &CounterVec{vec}, err } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/desc.go b/vendor/github.com/prometheus/client_golang/prometheus/desc.go index 2f19f5e1e7..4bb816ab75 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/desc.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/desc.go @@ -20,7 +20,7 @@ import ( "strings" "github.com/cespare/xxhash/v2" - //lint:ignore SA1019 Need to keep deprecated package for compatibility. + //nolint:staticcheck // Ignore SA1019. Need to keep deprecated package for compatibility. "github.com/golang/protobuf/proto" "github.com/prometheus/common/model" @@ -51,7 +51,7 @@ type Desc struct { // constLabelPairs contains precalculated DTO label pairs based on // the constant labels. constLabelPairs []*dto.LabelPair - // VariableLabels contains names of labels for which the metric + // variableLabels contains names of labels for which the metric // maintains variable values. variableLabels []string // id is a hash of the values of the ConstLabels and fqName. This diff --git a/vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go b/vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go index 18a99d5faa..c41ab37f3b 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go @@ -22,43 +22,10 @@ type expvarCollector struct { exports map[string]*Desc } -// NewExpvarCollector returns a newly allocated expvar Collector that still has -// to be registered with a Prometheus registry. +// NewExpvarCollector is the obsolete version of collectors.NewExpvarCollector. +// See there for documentation. // -// An expvar Collector collects metrics from the expvar interface. It provides a -// quick way to expose numeric values that are already exported via expvar as -// Prometheus metrics. Note that the data models of expvar and Prometheus are -// fundamentally different, and that the expvar Collector is inherently slower -// than native Prometheus metrics. Thus, the expvar Collector is probably great -// for experiments and prototying, but you should seriously consider a more -// direct implementation of Prometheus metrics for monitoring production -// systems. -// -// The exports map has the following meaning: -// -// The keys in the map correspond to expvar keys, i.e. for every expvar key you -// want to export as Prometheus metric, you need an entry in the exports -// map. The descriptor mapped to each key describes how to export the expvar -// value. It defines the name and the help string of the Prometheus metric -// proxying the expvar value. The type will always be Untyped. -// -// For descriptors without variable labels, the expvar value must be a number or -// a bool. The number is then directly exported as the Prometheus sample -// value. (For a bool, 'false' translates to 0 and 'true' to 1). Expvar values -// that are not numbers or bools are silently ignored. -// -// If the descriptor has one variable label, the expvar value must be an expvar -// map. The keys in the expvar map become the various values of the one -// Prometheus label. The values in the expvar map must be numbers or bools again -// as above. -// -// For descriptors with more than one variable label, the expvar must be a -// nested expvar map, i.e. where the values of the topmost map are maps again -// etc. until a depth is reached that corresponds to the number of labels. The -// leaves of that structure must be numbers or bools as above to serve as the -// sample values. -// -// Anything that does not fit into the scheme above is silently ignored. +// Deprecated: Use collectors.NewExpvarCollector instead. func NewExpvarCollector(exports map[string]*Desc) Collector { return &expvarCollector{ exports: exports, diff --git a/vendor/github.com/prometheus/client_golang/prometheus/gauge.go b/vendor/github.com/prometheus/client_golang/prometheus/gauge.go index d67573f767..bd0733d6a7 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/gauge.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/gauge.go @@ -132,7 +132,7 @@ func (g *gauge) Write(out *dto.Metric) error { // (e.g. number of operations queued, partitioned by user and operation // type). Create instances with NewGaugeVec. type GaugeVec struct { - *metricVec + *MetricVec } // NewGaugeVec creates a new GaugeVec based on the provided GaugeOpts and @@ -145,11 +145,11 @@ func NewGaugeVec(opts GaugeOpts, labelNames []string) *GaugeVec { opts.ConstLabels, ) return &GaugeVec{ - metricVec: newMetricVec(desc, func(lvs ...string) Metric { + MetricVec: NewMetricVec(desc, func(lvs ...string) Metric { if len(lvs) != len(desc.variableLabels) { panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, lvs)) } - result := &gauge{desc: desc, labelPairs: makeLabelPairs(desc, lvs)} + result := &gauge{desc: desc, labelPairs: MakeLabelPairs(desc, lvs)} result.init(result) // Init self-collection. return result }), @@ -157,7 +157,7 @@ func NewGaugeVec(opts GaugeOpts, labelNames []string) *GaugeVec { } // GetMetricWithLabelValues returns the Gauge for the given slice of label -// values (same order as the VariableLabels in Desc). If that combination of +// values (same order as the variable labels in Desc). If that combination of // label values is accessed for the first time, a new Gauge is created. // // It is possible to call this method without using the returned Gauge to only @@ -172,7 +172,7 @@ func NewGaugeVec(opts GaugeOpts, labelNames []string) *GaugeVec { // example. // // An error is returned if the number of label values is not the same as the -// number of VariableLabels in Desc (minus any curried labels). +// number of variable labels in Desc (minus any curried labels). // // Note that for more than one label value, this method is prone to mistakes // caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as @@ -180,7 +180,7 @@ func NewGaugeVec(opts GaugeOpts, labelNames []string) *GaugeVec { // latter has a much more readable (albeit more verbose) syntax, but it comes // with a performance overhead (for creating and processing the Labels map). func (v *GaugeVec) GetMetricWithLabelValues(lvs ...string) (Gauge, error) { - metric, err := v.metricVec.getMetricWithLabelValues(lvs...) + metric, err := v.MetricVec.GetMetricWithLabelValues(lvs...) if metric != nil { return metric.(Gauge), err } @@ -188,19 +188,19 @@ func (v *GaugeVec) GetMetricWithLabelValues(lvs ...string) (Gauge, error) { } // GetMetricWith returns the Gauge for the given Labels map (the label names -// must match those of the VariableLabels in Desc). If that label map is +// must match those of the variable labels in Desc). If that label map is // accessed for the first time, a new Gauge is created. Implications of // creating a Gauge without using it and keeping the Gauge for later use are // the same as for GetMetricWithLabelValues. // // An error is returned if the number and names of the Labels are inconsistent -// with those of the VariableLabels in Desc (minus any curried labels). +// with those of the variable labels in Desc (minus any curried labels). // // This method is used for the same purpose as // GetMetricWithLabelValues(...string). See there for pros and cons of the two // methods. func (v *GaugeVec) GetMetricWith(labels Labels) (Gauge, error) { - metric, err := v.metricVec.getMetricWith(labels) + metric, err := v.MetricVec.GetMetricWith(labels) if metric != nil { return metric.(Gauge), err } @@ -244,7 +244,7 @@ func (v *GaugeVec) With(labels Labels) Gauge { // registered with a given registry (usually the uncurried version). The Reset // method deletes all metrics, even if called on a curried vector. func (v *GaugeVec) CurryWith(labels Labels) (*GaugeVec, error) { - vec, err := v.curryWith(labels) + vec, err := v.MetricVec.CurryWith(labels) if vec != nil { return &GaugeVec{vec}, err } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go b/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go index ea05cf429f..a96ed1cee8 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go @@ -36,31 +36,10 @@ type goCollector struct { msMaxAge time.Duration // Maximum allowed age of old memstats. } -// NewGoCollector returns a collector that exports metrics about the current Go -// process. This includes memory stats. To collect those, runtime.ReadMemStats -// is called. This requires to “stop the world”, which usually only happens for -// garbage collection (GC). Take the following implications into account when -// deciding whether to use the Go collector: +// NewGoCollector is the obsolete version of collectors.NewGoCollector. +// See there for documentation. // -// 1. The performance impact of stopping the world is the more relevant the more -// frequently metrics are collected. However, with Go1.9 or later the -// stop-the-world time per metrics collection is very short (~25µs) so that the -// performance impact will only matter in rare cases. However, with older Go -// versions, the stop-the-world duration depends on the heap size and can be -// quite significant (~1.7 ms/GiB as per -// https://go-review.googlesource.com/c/go/+/34937). -// -// 2. During an ongoing GC, nothing else can stop the world. Therefore, if the -// metrics collection happens to coincide with GC, it will only complete after -// GC has finished. Usually, GC is fast enough to not cause problems. However, -// with a very large heap, GC might take multiple seconds, which is enough to -// cause scrape timeouts in common setups. To avoid this problem, the Go -// collector will use the memstats from a previous collection if -// runtime.ReadMemStats takes more than 1s. However, if there are no previously -// collected memstats, or their collection is more than 5m ago, the collection -// will block until runtime.ReadMemStats succeeds. (The problem might be solved -// in Go1.13, see https://github.com/golang/go/issues/19812 for the related Go -// issue.) +// Deprecated: Use collectors.NewGoCollector instead. func NewGoCollector() Collector { return &goCollector{ goroutinesDesc: NewDesc( @@ -365,25 +344,17 @@ type memStatsMetrics []struct { valType ValueType } -// NewBuildInfoCollector returns a collector collecting a single metric -// "go_build_info" with the constant value 1 and three labels "path", "version", -// and "checksum". Their label values contain the main module path, version, and -// checksum, respectively. The labels will only have meaningful values if the -// binary is built with Go module support and from source code retrieved from -// the source repository (rather than the local file system). This is usually -// accomplished by building from outside of GOPATH, specifying the full address -// of the main package, e.g. "GO111MODULE=on go run -// github.com/prometheus/client_golang/examples/random". If built without Go -// module support, all label values will be "unknown". If built with Go module -// support but using the source code from the local file system, the "path" will -// be set appropriately, but "checksum" will be empty and "version" will be -// "(devel)". +// NewBuildInfoCollector is the obsolete version of collectors.NewBuildInfoCollector. +// See there for documentation. // -// This collector uses only the build information for the main module. See -// https://github.com/povilasv/prommod for an example of a collector for the -// module dependencies. +// Deprecated: Use collectors.NewBuildInfoCollector instead. func NewBuildInfoCollector() Collector { - path, version, sum := readBuildInfo() + path, version, sum := "unknown", "unknown", "unknown" + if bi, ok := debug.ReadBuildInfo(); ok { + path = bi.Main.Path + version = bi.Main.Version + sum = bi.Main.Sum + } c := &selfCollector{MustNewConstMetric( NewDesc( "go_build_info", diff --git a/vendor/github.com/prometheus/client_golang/prometheus/histogram.go b/vendor/github.com/prometheus/client_golang/prometheus/histogram.go index d4ea301a33..8425640b39 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/histogram.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/histogram.go @@ -22,7 +22,7 @@ import ( "sync/atomic" "time" - //lint:ignore SA1019 Need to keep deprecated package for compatibility. + //nolint:staticcheck // Ignore SA1019. Need to keep deprecated package for compatibility. "github.com/golang/protobuf/proto" dto "github.com/prometheus/client_model/go" @@ -47,7 +47,12 @@ type Histogram interface { Metric Collector - // Observe adds a single observation to the histogram. + // Observe adds a single observation to the histogram. Observations are + // usually positive or zero. Negative observations are accepted but + // prevent current versions of Prometheus from properly detecting + // counter resets in the sum of observations. See + // https://prometheus.io/docs/practices/histograms/#count-and-sum-of-observations + // for details. Observe(float64) } @@ -192,7 +197,7 @@ func newHistogram(desc *Desc, opts HistogramOpts, labelValues ...string) Histogr h := &histogram{ desc: desc, upperBounds: opts.Buckets, - labelPairs: makeLabelPairs(desc, labelValues), + labelPairs: MakeLabelPairs(desc, labelValues), counts: [2]*histogramCounts{{}, {}}, now: time.Now, } @@ -409,7 +414,7 @@ func (h *histogram) updateExemplar(v float64, bucket int, l Labels) { // (e.g. HTTP request latencies, partitioned by status code and method). Create // instances with NewHistogramVec. type HistogramVec struct { - *metricVec + *MetricVec } // NewHistogramVec creates a new HistogramVec based on the provided HistogramOpts and @@ -422,14 +427,14 @@ func NewHistogramVec(opts HistogramOpts, labelNames []string) *HistogramVec { opts.ConstLabels, ) return &HistogramVec{ - metricVec: newMetricVec(desc, func(lvs ...string) Metric { + MetricVec: NewMetricVec(desc, func(lvs ...string) Metric { return newHistogram(desc, opts, lvs...) }), } } // GetMetricWithLabelValues returns the Histogram for the given slice of label -// values (same order as the VariableLabels in Desc). If that combination of +// values (same order as the variable labels in Desc). If that combination of // label values is accessed for the first time, a new Histogram is created. // // It is possible to call this method without using the returned Histogram to only @@ -444,7 +449,7 @@ func NewHistogramVec(opts HistogramOpts, labelNames []string) *HistogramVec { // example. // // An error is returned if the number of label values is not the same as the -// number of VariableLabels in Desc (minus any curried labels). +// number of variable labels in Desc (minus any curried labels). // // Note that for more than one label value, this method is prone to mistakes // caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as @@ -453,7 +458,7 @@ func NewHistogramVec(opts HistogramOpts, labelNames []string) *HistogramVec { // with a performance overhead (for creating and processing the Labels map). // See also the GaugeVec example. func (v *HistogramVec) GetMetricWithLabelValues(lvs ...string) (Observer, error) { - metric, err := v.metricVec.getMetricWithLabelValues(lvs...) + metric, err := v.MetricVec.GetMetricWithLabelValues(lvs...) if metric != nil { return metric.(Observer), err } @@ -461,19 +466,19 @@ func (v *HistogramVec) GetMetricWithLabelValues(lvs ...string) (Observer, error) } // GetMetricWith returns the Histogram for the given Labels map (the label names -// must match those of the VariableLabels in Desc). If that label map is +// must match those of the variable labels in Desc). If that label map is // accessed for the first time, a new Histogram is created. Implications of // creating a Histogram without using it and keeping the Histogram for later use // are the same as for GetMetricWithLabelValues. // // An error is returned if the number and names of the Labels are inconsistent -// with those of the VariableLabels in Desc (minus any curried labels). +// with those of the variable labels in Desc (minus any curried labels). // // This method is used for the same purpose as // GetMetricWithLabelValues(...string). See there for pros and cons of the two // methods. func (v *HistogramVec) GetMetricWith(labels Labels) (Observer, error) { - metric, err := v.metricVec.getMetricWith(labels) + metric, err := v.MetricVec.GetMetricWith(labels) if metric != nil { return metric.(Observer), err } @@ -517,7 +522,7 @@ func (v *HistogramVec) With(labels Labels) Observer { // registered with a given registry (usually the uncurried version). The Reset // method deletes all metrics, even if called on a curried vector. func (v *HistogramVec) CurryWith(labels Labels) (ObserverVec, error) { - vec, err := v.curryWith(labels) + vec, err := v.MetricVec.CurryWith(labels) if vec != nil { return &HistogramVec{vec}, err } @@ -602,7 +607,7 @@ func NewConstHistogram( count: count, sum: sum, buckets: buckets, - labelPairs: makeLabelPairs(desc, labelValues), + labelPairs: MakeLabelPairs(desc, labelValues), }, nil } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/metric.go b/vendor/github.com/prometheus/client_golang/prometheus/metric.go index 35bd8bde34..dc121910a5 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/metric.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/metric.go @@ -17,7 +17,7 @@ import ( "strings" "time" - //lint:ignore SA1019 Need to keep deprecated package for compatibility. + //nolint:staticcheck // Ignore SA1019. Need to keep deprecated package for compatibility. "github.com/golang/protobuf/proto" "github.com/prometheus/common/model" @@ -58,7 +58,7 @@ type Metric interface { } // Opts bundles the options for creating most Metric types. Each metric -// implementation XXX has its own XXXOpts type, but in most cases, it is just be +// implementation XXX has its own XXXOpts type, but in most cases, it is just // an alias of this type (which might change when the requirement arises.) // // It is mandatory to set Name to a non-empty string. All other fields are @@ -89,7 +89,7 @@ type Opts struct { // better covered by target labels set by the scraping Prometheus // server, or by one specific metric (e.g. a build_info or a // machine_role metric). See also - // https://prometheus.io/docs/instrumenting/writing_exporters/#target-labels,-not-static-scraped-labels + // https://prometheus.io/docs/instrumenting/writing_exporters/#target-labels-not-static-scraped-labels ConstLabels Labels } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go index 9b80979421..5bfe0ff5bb 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go @@ -15,7 +15,11 @@ package prometheus import ( "errors" + "fmt" + "io/ioutil" "os" + "strconv" + "strings" ) type processCollector struct { @@ -50,16 +54,10 @@ type ProcessCollectorOpts struct { ReportErrors bool } -// NewProcessCollector returns a collector which exports the current state of -// process metrics including CPU, memory and file descriptor usage as well as -// the process start time. The detailed behavior is defined by the provided -// ProcessCollectorOpts. The zero value of ProcessCollectorOpts creates a -// collector for the current process with an empty namespace string and no error -// reporting. +// NewProcessCollector is the obsolete version of collectors.NewProcessCollector. +// See there for documentation. // -// The collector only works on operating systems with a Linux-style proc -// filesystem and on Microsoft Windows. On other operating systems, it will not -// collect any metrics. +// Deprecated: Use collectors.NewProcessCollector instead. func NewProcessCollector(opts ProcessCollectorOpts) Collector { ns := "" if len(opts.Namespace) > 0 { @@ -149,3 +147,20 @@ func (c *processCollector) reportError(ch chan<- Metric, desc *Desc, err error) } ch <- NewInvalidMetric(desc, err) } + +// NewPidFileFn returns a function that retrieves a pid from the specified file. +// It is meant to be used for the PidFn field in ProcessCollectorOpts. +func NewPidFileFn(pidFilePath string) func() (int, error) { + return func() (int, error) { + content, err := ioutil.ReadFile(pidFilePath) + if err != nil { + return 0, fmt.Errorf("can't read pid file %q: %+v", pidFilePath, err) + } + pid, err := strconv.Atoi(strings.TrimSpace(string(content))) + if err != nil { + return 0, fmt.Errorf("can't parse pid file %q: %+v", pidFilePath, err) + } + + return pid, nil + } +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go index 5070e72e28..e7c0d05464 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go @@ -83,8 +83,7 @@ type readerFromDelegator struct{ *responseWriterDelegator } type pusherDelegator struct{ *responseWriterDelegator } func (d closeNotifierDelegator) CloseNotify() <-chan bool { - //lint:ignore SA1019 http.CloseNotifier is deprecated but we don't want to - //remove support from client_golang yet. + //nolint:staticcheck // Ignore SA1019. http.CloseNotifier is deprecated but we keep it here to not break existing users. return d.ResponseWriter.(http.CloseNotifier).CloseNotify() } func (d flusherDelegator) Flush() { @@ -348,8 +347,7 @@ func newDelegator(w http.ResponseWriter, observeWriteHeaderFunc func(int)) deleg } id := 0 - //lint:ignore SA1019 http.CloseNotifier is deprecated but we don't want to - //remove support from client_golang yet. + //nolint:staticcheck // Ignore SA1019. http.CloseNotifier is deprecated but we keep it here to not break existing users. if _, ok := w.(http.CloseNotifier); ok { id += closeNotifier } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go index 5e1c4546ce..d86d0cf4b0 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go @@ -99,7 +99,7 @@ func HandlerFor(reg prometheus.Gatherer, opts HandlerOpts) http.Handler { inFlightSem = make(chan struct{}, opts.MaxRequestsInFlight) } if opts.Registry != nil { - // Initialize all possibilites that can occur below. + // Initialize all possibilities that can occur below. errCnt.WithLabelValues("gathering") errCnt.WithLabelValues("encoding") if err := opts.Registry.Register(errCnt); err != nil { @@ -303,8 +303,12 @@ type Logger interface { // HandlerOpts specifies options how to serve metrics via an http.Handler. The // zero value of HandlerOpts is a reasonable default. type HandlerOpts struct { - // ErrorLog specifies an optional logger for errors collecting and - // serving metrics. If nil, errors are not logged at all. + // ErrorLog specifies an optional Logger for errors collecting and + // serving metrics. If nil, errors are not logged at all. Note that the + // type of a reported error is often prometheus.MultiError, which + // formats into a multi-line error string. If you want to avoid the + // latter, create a Logger implementation that detects a + // prometheus.MultiError and formats the contained errors into one line. ErrorLog Logger // ErrorHandling defines how errors are handled. Note that errors are // logged regardless of the configured ErrorHandling provided ErrorLog diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go index 9db2438053..ab037db861 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go @@ -43,14 +43,14 @@ func InstrumentHandlerInFlight(g prometheus.Gauge, next http.Handler) http.Handl // InstrumentHandlerDuration is a middleware that wraps the provided // http.Handler to observe the request duration with the provided ObserverVec. -// The ObserverVec must have zero, one, or two non-const non-curried labels. For -// those, the only allowed label names are "code" and "method". The function -// panics otherwise. The Observe method of the Observer in the ObserverVec is -// called with the request duration in seconds. Partitioning happens by HTTP -// status code and/or HTTP method if the respective instance label names are -// present in the ObserverVec. For unpartitioned observations, use an -// ObserverVec with zero labels. Note that partitioning of Histograms is -// expensive and should be used judiciously. +// The ObserverVec must have valid metric and label names and must have zero, +// one, or two non-const non-curried labels. For those, the only allowed label +// names are "code" and "method". The function panics otherwise. The Observe +// method of the Observer in the ObserverVec is called with the request duration +// in seconds. Partitioning happens by HTTP status code and/or HTTP method if +// the respective instance label names are present in the ObserverVec. For +// unpartitioned observations, use an ObserverVec with zero labels. Note that +// partitioning of Histograms is expensive and should be used judiciously. // // If the wrapped Handler does not set a status code, a status code of 200 is assumed. // @@ -79,12 +79,13 @@ func InstrumentHandlerDuration(obs prometheus.ObserverVec, next http.Handler) ht } // InstrumentHandlerCounter is a middleware that wraps the provided http.Handler -// to observe the request result with the provided CounterVec. The CounterVec -// must have zero, one, or two non-const non-curried labels. For those, the only -// allowed label names are "code" and "method". The function panics -// otherwise. Partitioning of the CounterVec happens by HTTP status code and/or -// HTTP method if the respective instance label names are present in the -// CounterVec. For unpartitioned counting, use a CounterVec with zero labels. +// to observe the request result with the provided CounterVec. The CounterVec +// must have valid metric and label names and must have zero, one, or two +// non-const non-curried labels. For those, the only allowed label names are +// "code" and "method". The function panics otherwise. Partitioning of the +// CounterVec happens by HTTP status code and/or HTTP method if the respective +// instance label names are present in the CounterVec. For unpartitioned +// counting, use a CounterVec with zero labels. // // If the wrapped Handler does not set a status code, a status code of 200 is assumed. // @@ -110,14 +111,15 @@ func InstrumentHandlerCounter(counter *prometheus.CounterVec, next http.Handler) // InstrumentHandlerTimeToWriteHeader is a middleware that wraps the provided // http.Handler to observe with the provided ObserverVec the request duration -// until the response headers are written. The ObserverVec must have zero, one, -// or two non-const non-curried labels. For those, the only allowed label names -// are "code" and "method". The function panics otherwise. The Observe method of -// the Observer in the ObserverVec is called with the request duration in -// seconds. Partitioning happens by HTTP status code and/or HTTP method if the -// respective instance label names are present in the ObserverVec. For -// unpartitioned observations, use an ObserverVec with zero labels. Note that -// partitioning of Histograms is expensive and should be used judiciously. +// until the response headers are written. The ObserverVec must have valid +// metric and label names and must have zero, one, or two non-const non-curried +// labels. For those, the only allowed label names are "code" and "method". The +// function panics otherwise. The Observe method of the Observer in the +// ObserverVec is called with the request duration in seconds. Partitioning +// happens by HTTP status code and/or HTTP method if the respective instance +// label names are present in the ObserverVec. For unpartitioned observations, +// use an ObserverVec with zero labels. Note that partitioning of Histograms is +// expensive and should be used judiciously. // // If the wrapped Handler panics before calling WriteHeader, no value is // reported. @@ -139,15 +141,15 @@ func InstrumentHandlerTimeToWriteHeader(obs prometheus.ObserverVec, next http.Ha } // InstrumentHandlerRequestSize is a middleware that wraps the provided -// http.Handler to observe the request size with the provided ObserverVec. The -// ObserverVec must have zero, one, or two non-const non-curried labels. For -// those, the only allowed label names are "code" and "method". The function -// panics otherwise. The Observe method of the Observer in the ObserverVec is -// called with the request size in bytes. Partitioning happens by HTTP status -// code and/or HTTP method if the respective instance label names are present in -// the ObserverVec. For unpartitioned observations, use an ObserverVec with zero -// labels. Note that partitioning of Histograms is expensive and should be used -// judiciously. +// http.Handler to observe the request size with the provided ObserverVec. The +// ObserverVec must have valid metric and label names and must have zero, one, +// or two non-const non-curried labels. For those, the only allowed label names +// are "code" and "method". The function panics otherwise. The Observe method of +// the Observer in the ObserverVec is called with the request size in +// bytes. Partitioning happens by HTTP status code and/or HTTP method if the +// respective instance label names are present in the ObserverVec. For +// unpartitioned observations, use an ObserverVec with zero labels. Note that +// partitioning of Histograms is expensive and should be used judiciously. // // If the wrapped Handler does not set a status code, a status code of 200 is assumed. // @@ -174,15 +176,15 @@ func InstrumentHandlerRequestSize(obs prometheus.ObserverVec, next http.Handler) } // InstrumentHandlerResponseSize is a middleware that wraps the provided -// http.Handler to observe the response size with the provided ObserverVec. The -// ObserverVec must have zero, one, or two non-const non-curried labels. For -// those, the only allowed label names are "code" and "method". The function -// panics otherwise. The Observe method of the Observer in the ObserverVec is -// called with the response size in bytes. Partitioning happens by HTTP status -// code and/or HTTP method if the respective instance label names are present in -// the ObserverVec. For unpartitioned observations, use an ObserverVec with zero -// labels. Note that partitioning of Histograms is expensive and should be used -// judiciously. +// http.Handler to observe the response size with the provided ObserverVec. The +// ObserverVec must have valid metric and label names and must have zero, one, +// or two non-const non-curried labels. For those, the only allowed label names +// are "code" and "method". The function panics otherwise. The Observe method of +// the Observer in the ObserverVec is called with the response size in +// bytes. Partitioning happens by HTTP status code and/or HTTP method if the +// respective instance label names are present in the ObserverVec. For +// unpartitioned observations, use an ObserverVec with zero labels. Note that +// partitioning of Histograms is expensive and should be used judiciously. // // If the wrapped Handler does not set a status code, a status code of 200 is assumed. // @@ -198,6 +200,11 @@ func InstrumentHandlerResponseSize(obs prometheus.ObserverVec, next http.Handler }) } +// checkLabels returns whether the provided Collector has a non-const, +// non-curried label named "code" and/or "method". It panics if the provided +// Collector does not have a Desc or has more than one Desc or its Desc is +// invalid. It also panics if the Collector has any non-const, non-curried +// labels that are not named "code" or "method". func checkLabels(c prometheus.Collector) (code bool, method bool) { // TODO(beorn7): Remove this hacky way to check for instance labels // once Descriptors can have their dimensionality queried. @@ -225,6 +232,10 @@ func checkLabels(c prometheus.Collector) (code bool, method bool) { close(descc) + // Make sure the Collector has a valid Desc by registering it with a + // temporary registry. + prometheus.NewRegistry().MustRegister(c) + // Create a ConstMetric with the Desc. Since we don't know how many // variable labels there are, try for as long as it needs. for err := errors.New("dummy"); err != nil; lvs = append(lvs, magicString) { diff --git a/vendor/github.com/prometheus/client_golang/prometheus/registry.go b/vendor/github.com/prometheus/client_golang/prometheus/registry.go index ba94405af4..383a7f5941 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/registry.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/registry.go @@ -26,7 +26,7 @@ import ( "unicode/utf8" "github.com/cespare/xxhash/v2" - //lint:ignore SA1019 Need to keep deprecated package for compatibility. + //nolint:staticcheck // Ignore SA1019. Need to keep deprecated package for compatibility. "github.com/golang/protobuf/proto" "github.com/prometheus/common/expfmt" @@ -215,6 +215,8 @@ func (err AlreadyRegisteredError) Error() string { // by a Gatherer to report multiple errors during MetricFamily gathering. type MultiError []error +// Error formats the contained errors as a bullet point list, preceded by the +// total number of errors. Note that this results in a multi-line string. func (errs MultiError) Error() string { if len(errs) == 0 { return "" diff --git a/vendor/github.com/prometheus/client_golang/prometheus/summary.go b/vendor/github.com/prometheus/client_golang/prometheus/summary.go index f3c1440d1c..c5fa8ed7c7 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/summary.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/summary.go @@ -23,7 +23,7 @@ import ( "time" "github.com/beorn7/perks/quantile" - //lint:ignore SA1019 Need to keep deprecated package for compatibility. + //nolint:staticcheck // Ignore SA1019. Need to keep deprecated package for compatibility. "github.com/golang/protobuf/proto" dto "github.com/prometheus/client_model/go" @@ -55,7 +55,12 @@ type Summary interface { Metric Collector - // Observe adds a single observation to the summary. + // Observe adds a single observation to the summary. Observations are + // usually positive or zero. Negative observations are accepted but + // prevent current versions of Prometheus from properly detecting + // counter resets in the sum of observations. See + // https://prometheus.io/docs/practices/histograms/#count-and-sum-of-observations + // for details. Observe(float64) } @@ -110,7 +115,7 @@ type SummaryOpts struct { // better covered by target labels set by the scraping Prometheus // server, or by one specific metric (e.g. a build_info or a // machine_role metric). See also - // https://prometheus.io/docs/instrumenting/writing_exporters/#target-labels,-not-static-scraped-labels + // https://prometheus.io/docs/instrumenting/writing_exporters/#target-labels-not-static-scraped-labels ConstLabels Labels // Objectives defines the quantile rank estimates with their respective @@ -121,7 +126,9 @@ type SummaryOpts struct { Objectives map[float64]float64 // MaxAge defines the duration for which an observation stays relevant - // for the summary. Must be positive. The default value is DefMaxAge. + // for the summary. Only applies to pre-calculated quantiles, does not + // apply to _sum and _count. Must be positive. The default value is + // DefMaxAge. MaxAge time.Duration // AgeBuckets is the number of buckets used to exclude observations that @@ -208,7 +215,7 @@ func newSummary(desc *Desc, opts SummaryOpts, labelValues ...string) Summary { // Use the lock-free implementation of a Summary without objectives. s := &noObjectivesSummary{ desc: desc, - labelPairs: makeLabelPairs(desc, labelValues), + labelPairs: MakeLabelPairs(desc, labelValues), counts: [2]*summaryCounts{{}, {}}, } s.init(s) // Init self-collection. @@ -221,7 +228,7 @@ func newSummary(desc *Desc, opts SummaryOpts, labelValues ...string) Summary { objectives: opts.Objectives, sortedObjectives: make([]float64, 0, len(opts.Objectives)), - labelPairs: makeLabelPairs(desc, labelValues), + labelPairs: MakeLabelPairs(desc, labelValues), hotBuf: make([]float64, 0, opts.BufCap), coldBuf: make([]float64, 0, opts.BufCap), @@ -513,7 +520,7 @@ func (s quantSort) Less(i, j int) bool { // (e.g. HTTP request latencies, partitioned by status code and method). Create // instances with NewSummaryVec. type SummaryVec struct { - *metricVec + *MetricVec } // NewSummaryVec creates a new SummaryVec based on the provided SummaryOpts and @@ -535,14 +542,14 @@ func NewSummaryVec(opts SummaryOpts, labelNames []string) *SummaryVec { opts.ConstLabels, ) return &SummaryVec{ - metricVec: newMetricVec(desc, func(lvs ...string) Metric { + MetricVec: NewMetricVec(desc, func(lvs ...string) Metric { return newSummary(desc, opts, lvs...) }), } } // GetMetricWithLabelValues returns the Summary for the given slice of label -// values (same order as the VariableLabels in Desc). If that combination of +// values (same order as the variable labels in Desc). If that combination of // label values is accessed for the first time, a new Summary is created. // // It is possible to call this method without using the returned Summary to only @@ -557,7 +564,7 @@ func NewSummaryVec(opts SummaryOpts, labelNames []string) *SummaryVec { // example. // // An error is returned if the number of label values is not the same as the -// number of VariableLabels in Desc (minus any curried labels). +// number of variable labels in Desc (minus any curried labels). // // Note that for more than one label value, this method is prone to mistakes // caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as @@ -566,7 +573,7 @@ func NewSummaryVec(opts SummaryOpts, labelNames []string) *SummaryVec { // with a performance overhead (for creating and processing the Labels map). // See also the GaugeVec example. func (v *SummaryVec) GetMetricWithLabelValues(lvs ...string) (Observer, error) { - metric, err := v.metricVec.getMetricWithLabelValues(lvs...) + metric, err := v.MetricVec.GetMetricWithLabelValues(lvs...) if metric != nil { return metric.(Observer), err } @@ -574,19 +581,19 @@ func (v *SummaryVec) GetMetricWithLabelValues(lvs ...string) (Observer, error) { } // GetMetricWith returns the Summary for the given Labels map (the label names -// must match those of the VariableLabels in Desc). If that label map is +// must match those of the variable labels in Desc). If that label map is // accessed for the first time, a new Summary is created. Implications of // creating a Summary without using it and keeping the Summary for later use are // the same as for GetMetricWithLabelValues. // // An error is returned if the number and names of the Labels are inconsistent -// with those of the VariableLabels in Desc (minus any curried labels). +// with those of the variable labels in Desc (minus any curried labels). // // This method is used for the same purpose as // GetMetricWithLabelValues(...string). See there for pros and cons of the two // methods. func (v *SummaryVec) GetMetricWith(labels Labels) (Observer, error) { - metric, err := v.metricVec.getMetricWith(labels) + metric, err := v.MetricVec.GetMetricWith(labels) if metric != nil { return metric.(Observer), err } @@ -630,7 +637,7 @@ func (v *SummaryVec) With(labels Labels) Observer { // registered with a given registry (usually the uncurried version). The Reset // method deletes all metrics, even if called on a curried vector. func (v *SummaryVec) CurryWith(labels Labels) (ObserverVec, error) { - vec, err := v.curryWith(labels) + vec, err := v.MetricVec.CurryWith(labels) if vec != nil { return &SummaryVec{vec}, err } @@ -716,7 +723,7 @@ func NewConstSummary( count: count, sum: sum, quantiles: quantiles, - labelPairs: makeLabelPairs(desc, labelValues), + labelPairs: MakeLabelPairs(desc, labelValues), }, nil } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/value.go b/vendor/github.com/prometheus/client_golang/prometheus/value.go index 6206928cc6..c778711b8a 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/value.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/value.go @@ -19,7 +19,7 @@ import ( "time" "unicode/utf8" - //lint:ignore SA1019 Need to keep deprecated package for compatibility. + //nolint:staticcheck // Ignore SA1019. Need to keep deprecated package for compatibility. "github.com/golang/protobuf/proto" "github.com/golang/protobuf/ptypes" @@ -63,7 +63,7 @@ func newValueFunc(desc *Desc, valueType ValueType, function func() float64) *val desc: desc, valType: valueType, function: function, - labelPairs: makeLabelPairs(desc, nil), + labelPairs: MakeLabelPairs(desc, nil), } result.init(result) return result @@ -95,7 +95,7 @@ func NewConstMetric(desc *Desc, valueType ValueType, value float64, labelValues desc: desc, valType: valueType, val: value, - labelPairs: makeLabelPairs(desc, labelValues), + labelPairs: MakeLabelPairs(desc, labelValues), }, nil } @@ -145,7 +145,14 @@ func populateMetric( return nil } -func makeLabelPairs(desc *Desc, labelValues []string) []*dto.LabelPair { +// MakeLabelPairs is a helper function to create protobuf LabelPairs from the +// variable and constant labels in the provided Desc. The values for the +// variable labels are defined by the labelValues slice, which must be in the +// same order as the corresponding variable labels in the Desc. +// +// This function is only needed for custom Metric implementations. See MetricVec +// example. +func MakeLabelPairs(desc *Desc, labelValues []string) []*dto.LabelPair { totalLen := len(desc.variableLabels) + len(desc.constLabelPairs) if totalLen == 0 { // Super fast path. diff --git a/vendor/github.com/prometheus/client_golang/prometheus/vec.go b/vendor/github.com/prometheus/client_golang/prometheus/vec.go index d53848dc48..4ababe6c98 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/vec.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/vec.go @@ -20,12 +20,20 @@ import ( "github.com/prometheus/common/model" ) -// metricVec is a Collector to bundle metrics of the same name that differ in -// their label values. metricVec is not used directly (and therefore -// unexported). It is used as a building block for implementations of vectors of -// a given metric type, like GaugeVec, CounterVec, SummaryVec, and HistogramVec. -// It also handles label currying. -type metricVec struct { +// MetricVec is a Collector to bundle metrics of the same name that differ in +// their label values. MetricVec is not used directly but as a building block +// for implementations of vectors of a given metric type, like GaugeVec, +// CounterVec, SummaryVec, and HistogramVec. It is exported so that it can be +// used for custom Metric implementations. +// +// To create a FooVec for custom Metric Foo, embed a pointer to MetricVec in +// FooVec and initialize it with NewMetricVec. Implement wrappers for +// GetMetricWithLabelValues and GetMetricWith that return (Foo, error) rather +// than (Metric, error). Similarly, create a wrapper for CurryWith that returns +// (*FooVec, error) rather than (*MetricVec, error). It is recommended to also +// add the convenience methods WithLabelValues, With, and MustCurryWith, which +// panic instead of returning errors. See also the MetricVec example. +type MetricVec struct { *metricMap curry []curriedLabelValue @@ -35,9 +43,9 @@ type metricVec struct { hashAddByte func(h uint64, b byte) uint64 } -// newMetricVec returns an initialized metricVec. -func newMetricVec(desc *Desc, newMetric func(lvs ...string) Metric) *metricVec { - return &metricVec{ +// NewMetricVec returns an initialized metricVec. +func NewMetricVec(desc *Desc, newMetric func(lvs ...string) Metric) *MetricVec { + return &MetricVec{ metricMap: &metricMap{ metrics: map[uint64][]metricWithLabelValues{}, desc: desc, @@ -63,7 +71,7 @@ func newMetricVec(desc *Desc, newMetric func(lvs ...string) Metric) *metricVec { // latter has a much more readable (albeit more verbose) syntax, but it comes // with a performance overhead (for creating and processing the Labels map). // See also the CounterVec example. -func (m *metricVec) DeleteLabelValues(lvs ...string) bool { +func (m *MetricVec) DeleteLabelValues(lvs ...string) bool { h, err := m.hashLabelValues(lvs) if err != nil { return false @@ -82,7 +90,7 @@ func (m *metricVec) DeleteLabelValues(lvs ...string) bool { // // This method is used for the same purpose as DeleteLabelValues(...string). See // there for pros and cons of the two methods. -func (m *metricVec) Delete(labels Labels) bool { +func (m *MetricVec) Delete(labels Labels) bool { h, err := m.hashLabels(labels) if err != nil { return false @@ -95,15 +103,32 @@ func (m *metricVec) Delete(labels Labels) bool { // show up in GoDoc. // Describe implements Collector. -func (m *metricVec) Describe(ch chan<- *Desc) { m.metricMap.Describe(ch) } +func (m *MetricVec) Describe(ch chan<- *Desc) { m.metricMap.Describe(ch) } // Collect implements Collector. -func (m *metricVec) Collect(ch chan<- Metric) { m.metricMap.Collect(ch) } +func (m *MetricVec) Collect(ch chan<- Metric) { m.metricMap.Collect(ch) } // Reset deletes all metrics in this vector. -func (m *metricVec) Reset() { m.metricMap.Reset() } - -func (m *metricVec) curryWith(labels Labels) (*metricVec, error) { +func (m *MetricVec) Reset() { m.metricMap.Reset() } + +// CurryWith returns a vector curried with the provided labels, i.e. the +// returned vector has those labels pre-set for all labeled operations performed +// on it. The cardinality of the curried vector is reduced accordingly. The +// order of the remaining labels stays the same (just with the curried labels +// taken out of the sequence – which is relevant for the +// (GetMetric)WithLabelValues methods). It is possible to curry a curried +// vector, but only with labels not yet used for currying before. +// +// The metrics contained in the MetricVec are shared between the curried and +// uncurried vectors. They are just accessed differently. Curried and uncurried +// vectors behave identically in terms of collection. Only one must be +// registered with a given registry (usually the uncurried version). The Reset +// method deletes all metrics, even if called on a curried vector. +// +// Note that CurryWith is usually not called directly but through a wrapper +// around MetricVec, implementing a vector for a specific Metric +// implementation, for example GaugeVec. +func (m *MetricVec) CurryWith(labels Labels) (*MetricVec, error) { var ( newCurry []curriedLabelValue oldCurry = m.curry @@ -128,7 +153,7 @@ func (m *metricVec) curryWith(labels Labels) (*metricVec, error) { return nil, fmt.Errorf("%d unknown label(s) found during currying", l) } - return &metricVec{ + return &MetricVec{ metricMap: m.metricMap, curry: newCurry, hashAdd: m.hashAdd, @@ -136,7 +161,34 @@ func (m *metricVec) curryWith(labels Labels) (*metricVec, error) { }, nil } -func (m *metricVec) getMetricWithLabelValues(lvs ...string) (Metric, error) { +// GetMetricWithLabelValues returns the Metric for the given slice of label +// values (same order as the variable labels in Desc). If that combination of +// label values is accessed for the first time, a new Metric is created (by +// calling the newMetric function provided during construction of the +// MetricVec). +// +// It is possible to call this method without using the returned Metric to only +// create the new Metric but leave it in its initial state. +// +// Keeping the Metric for later use is possible (and should be considered if +// performance is critical), but keep in mind that Reset, DeleteLabelValues and +// Delete can be used to delete the Metric from the MetricVec. In that case, the +// Metric will still exist, but it will not be exported anymore, even if a +// Metric with the same label values is created later. +// +// An error is returned if the number of label values is not the same as the +// number of variable labels in Desc (minus any curried labels). +// +// Note that for more than one label value, this method is prone to mistakes +// caused by an incorrect order of arguments. Consider GetMetricWith(Labels) as +// an alternative to avoid that type of mistake. For higher label numbers, the +// latter has a much more readable (albeit more verbose) syntax, but it comes +// with a performance overhead (for creating and processing the Labels map). +// +// Note that GetMetricWithLabelValues is usually not called directly but through +// a wrapper around MetricVec, implementing a vector for a specific Metric +// implementation, for example GaugeVec. +func (m *MetricVec) GetMetricWithLabelValues(lvs ...string) (Metric, error) { h, err := m.hashLabelValues(lvs) if err != nil { return nil, err @@ -145,7 +197,23 @@ func (m *metricVec) getMetricWithLabelValues(lvs ...string) (Metric, error) { return m.metricMap.getOrCreateMetricWithLabelValues(h, lvs, m.curry), nil } -func (m *metricVec) getMetricWith(labels Labels) (Metric, error) { +// GetMetricWith returns the Metric for the given Labels map (the label names +// must match those of the variable labels in Desc). If that label map is +// accessed for the first time, a new Metric is created. Implications of +// creating a Metric without using it and keeping the Metric for later use +// are the same as for GetMetricWithLabelValues. +// +// An error is returned if the number and names of the Labels are inconsistent +// with those of the variable labels in Desc (minus any curried labels). +// +// This method is used for the same purpose as +// GetMetricWithLabelValues(...string). See there for pros and cons of the two +// methods. +// +// Note that GetMetricWith is usually not called directly but through a wrapper +// around MetricVec, implementing a vector for a specific Metric implementation, +// for example GaugeVec. +func (m *MetricVec) GetMetricWith(labels Labels) (Metric, error) { h, err := m.hashLabels(labels) if err != nil { return nil, err @@ -154,7 +222,7 @@ func (m *metricVec) getMetricWith(labels Labels) (Metric, error) { return m.metricMap.getOrCreateMetricWithLabels(h, labels, m.curry), nil } -func (m *metricVec) hashLabelValues(vals []string) (uint64, error) { +func (m *MetricVec) hashLabelValues(vals []string) (uint64, error) { if err := validateLabelValues(vals, len(m.desc.variableLabels)-len(m.curry)); err != nil { return 0, err } @@ -177,7 +245,7 @@ func (m *metricVec) hashLabelValues(vals []string) (uint64, error) { return h, nil } -func (m *metricVec) hashLabels(labels Labels) (uint64, error) { +func (m *MetricVec) hashLabels(labels Labels) (uint64, error) { if err := validateValuesInLabels(labels, len(m.desc.variableLabels)-len(m.curry)); err != nil { return 0, err } @@ -276,7 +344,9 @@ func (m *metricMap) deleteByHashWithLabelValues( } if len(metrics) > 1 { + old := metrics m.metrics[h] = append(metrics[:i], metrics[i+1:]...) + old[len(old)-1] = metricWithLabelValues{} } else { delete(m.metrics, h) } @@ -302,7 +372,9 @@ func (m *metricMap) deleteByHashWithLabels( } if len(metrics) > 1 { + old := metrics m.metrics[h] = append(metrics[:i], metrics[i+1:]...) + old[len(old)-1] = metricWithLabelValues{} } else { delete(m.metrics, h) } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/wrap.go b/vendor/github.com/prometheus/client_golang/prometheus/wrap.go index 438aa5e924..74ee93280f 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/wrap.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/wrap.go @@ -17,7 +17,7 @@ import ( "fmt" "sort" - //lint:ignore SA1019 Need to keep deprecated package for compatibility. + //nolint:staticcheck // Ignore SA1019. Need to keep deprecated package for compatibility. "github.com/golang/protobuf/proto" dto "github.com/prometheus/client_model/go" @@ -32,7 +32,9 @@ import ( // in a no-op Registerer. // // WrapRegistererWith provides a way to add fixed labels to a subset of -// Collectors. It should not be used to add fixed labels to all metrics exposed. +// Collectors. It should not be used to add fixed labels to all metrics +// exposed. See also +// https://prometheus.io/docs/instrumenting/writing_exporters/#target-labels-not-static-scraped-labels // // Conflicts between Collectors registered through the original Registerer with // Collectors registered through the wrapping Registerer will still be diff --git a/vendor/github.com/prometheus/common/expfmt/decode.go b/vendor/github.com/prometheus/common/expfmt/decode.go index c092723e84..7657f841d6 100644 --- a/vendor/github.com/prometheus/common/expfmt/decode.go +++ b/vendor/github.com/prometheus/common/expfmt/decode.go @@ -164,7 +164,7 @@ func (sd *SampleDecoder) Decode(s *model.Vector) error { } // ExtractSamples builds a slice of samples from the provided metric -// families. If an error occurrs during sample extraction, it continues to +// families. If an error occurs during sample extraction, it continues to // extract from the remaining metric families. The returned error is the last // error that has occurred. func ExtractSamples(o *DecodeOptions, fams ...*dto.MetricFamily) (model.Vector, error) { diff --git a/vendor/github.com/prometheus/common/expfmt/text_parse.go b/vendor/github.com/prometheus/common/expfmt/text_parse.go index 342e5940d0..b6079b31ee 100644 --- a/vendor/github.com/prometheus/common/expfmt/text_parse.go +++ b/vendor/github.com/prometheus/common/expfmt/text_parse.go @@ -299,6 +299,17 @@ func (p *TextParser) startLabelName() stateFn { p.parseError(fmt.Sprintf("expected '=' after label name, found %q", p.currentByte)) return nil } + // Check for duplicate label names. + labels := make(map[string]struct{}) + for _, l := range p.currentMetric.Label { + lName := l.GetName() + if _, exists := labels[lName]; !exists { + labels[lName] = struct{}{} + } else { + p.parseError(fmt.Sprintf("duplicate label names for metric %q", p.currentMF.GetName())) + return nil + } + } return p.startLabelValue } diff --git a/vendor/github.com/prometheus/common/model/fnv.go b/vendor/github.com/prometheus/common/model/fnv.go index 038fc1c900..367afecd30 100644 --- a/vendor/github.com/prometheus/common/model/fnv.go +++ b/vendor/github.com/prometheus/common/model/fnv.go @@ -20,7 +20,7 @@ const ( prime64 = 1099511628211 ) -// hashNew initializies a new fnv64a hash value. +// hashNew initializes a new fnv64a hash value. func hashNew() uint64 { return offset64 } diff --git a/vendor/github.com/prometheus/common/model/labels.go b/vendor/github.com/prometheus/common/model/labels.go index 41051a01a3..ef89563354 100644 --- a/vendor/github.com/prometheus/common/model/labels.go +++ b/vendor/github.com/prometheus/common/model/labels.go @@ -45,6 +45,14 @@ const ( // scrape a target. MetricsPathLabel = "__metrics_path__" + // ScrapeIntervalLabel is the name of the label that holds the scrape interval + // used to scrape a target. + ScrapeIntervalLabel = "__scrape_interval__" + + // ScrapeTimeoutLabel is the name of the label that holds the scrape + // timeout used to scrape a target. + ScrapeTimeoutLabel = "__scrape_timeout__" + // ReservedLabelPrefix is a prefix which is not legal in user-supplied // label names. ReservedLabelPrefix = "__" diff --git a/vendor/github.com/prometheus/common/model/time.go b/vendor/github.com/prometheus/common/model/time.go index 490a0240c1..7f67b16e42 100644 --- a/vendor/github.com/prometheus/common/model/time.go +++ b/vendor/github.com/prometheus/common/model/time.go @@ -14,6 +14,8 @@ package model import ( + "encoding/json" + "errors" "fmt" "math" "regexp" @@ -181,77 +183,118 @@ func (d *Duration) Type() string { return "duration" } -var durationRE = regexp.MustCompile("^([0-9]+)(y|w|d|h|m|s|ms)$") +var durationRE = regexp.MustCompile("^(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?$") // ParseDuration parses a string into a time.Duration, assuming that a year // always has 365d, a week always has 7d, and a day always has 24h. func ParseDuration(durationStr string) (Duration, error) { - // Allow 0 without a unit. - if durationStr == "0" { + switch durationStr { + case "0": + // Allow 0 without a unit. return 0, nil + case "": + return 0, fmt.Errorf("empty duration string") } matches := durationRE.FindStringSubmatch(durationStr) - if len(matches) != 3 { + if matches == nil { return 0, fmt.Errorf("not a valid duration string: %q", durationStr) } - var ( - n, _ = strconv.Atoi(matches[1]) - dur = time.Duration(n) * time.Millisecond - ) - switch unit := matches[2]; unit { - case "y": - dur *= 1000 * 60 * 60 * 24 * 365 - case "w": - dur *= 1000 * 60 * 60 * 24 * 7 - case "d": - dur *= 1000 * 60 * 60 * 24 - case "h": - dur *= 1000 * 60 * 60 - case "m": - dur *= 1000 * 60 - case "s": - dur *= 1000 - case "ms": - // Value already correct - default: - return 0, fmt.Errorf("invalid time unit in duration string: %q", unit) + var dur time.Duration + + // Parse the match at pos `pos` in the regex and use `mult` to turn that + // into ms, then add that value to the total parsed duration. + var overflowErr error + m := func(pos int, mult time.Duration) { + if matches[pos] == "" { + return + } + n, _ := strconv.Atoi(matches[pos]) + + // Check if the provided duration overflows time.Duration (> ~ 290years). + if n > int((1<<63-1)/mult/time.Millisecond) { + overflowErr = errors.New("duration out of range") + } + d := time.Duration(n) * time.Millisecond + dur += d * mult + + if dur < 0 { + overflowErr = errors.New("duration out of range") + } } - return Duration(dur), nil + + m(2, 1000*60*60*24*365) // y + m(4, 1000*60*60*24*7) // w + m(6, 1000*60*60*24) // d + m(8, 1000*60*60) // h + m(10, 1000*60) // m + m(12, 1000) // s + m(14, 1) // ms + + return Duration(dur), overflowErr } func (d Duration) String() string { var ( - ms = int64(time.Duration(d) / time.Millisecond) - unit = "ms" + ms = int64(time.Duration(d) / time.Millisecond) + r = "" ) if ms == 0 { return "0s" } - factors := map[string]int64{ - "y": 1000 * 60 * 60 * 24 * 365, - "w": 1000 * 60 * 60 * 24 * 7, - "d": 1000 * 60 * 60 * 24, - "h": 1000 * 60 * 60, - "m": 1000 * 60, - "s": 1000, - "ms": 1, + + f := func(unit string, mult int64, exact bool) { + if exact && ms%mult != 0 { + return + } + if v := ms / mult; v > 0 { + r += fmt.Sprintf("%d%s", v, unit) + ms -= v * mult + } } - switch int64(0) { - case ms % factors["y"]: - unit = "y" - case ms % factors["w"]: - unit = "w" - case ms % factors["d"]: - unit = "d" - case ms % factors["h"]: - unit = "h" - case ms % factors["m"]: - unit = "m" - case ms % factors["s"]: - unit = "s" + // Only format years and weeks if the remainder is zero, as it is often + // easier to read 90d than 12w6d. + f("y", 1000*60*60*24*365, true) + f("w", 1000*60*60*24*7, true) + + f("d", 1000*60*60*24, false) + f("h", 1000*60*60, false) + f("m", 1000*60, false) + f("s", 1000, false) + f("ms", 1, false) + + return r +} + +// MarshalJSON implements the json.Marshaler interface. +func (d Duration) MarshalJSON() ([]byte, error) { + return json.Marshal(d.String()) +} + +// UnmarshalJSON implements the json.Unmarshaler interface. +func (d *Duration) UnmarshalJSON(bytes []byte) error { + var s string + if err := json.Unmarshal(bytes, &s); err != nil { + return err + } + dur, err := ParseDuration(s) + if err != nil { + return err } - return fmt.Sprintf("%v%v", ms/factors[unit], unit) + *d = dur + return nil +} + +// MarshalText implements the encoding.TextMarshaler interface. +func (d *Duration) MarshalText() ([]byte, error) { + return []byte(d.String()), nil +} + +// UnmarshalText implements the encoding.TextUnmarshaler interface. +func (d *Duration) UnmarshalText(text []byte) error { + var err error + *d, err = ParseDuration(string(text)) + return err } // MarshalYAML implements the yaml.Marshaler interface. diff --git a/vendor/github.com/prometheus/procfs/Makefile.common b/vendor/github.com/prometheus/procfs/Makefile.common index 9320176ca2..3ac29c636c 100644 --- a/vendor/github.com/prometheus/procfs/Makefile.common +++ b/vendor/github.com/prometheus/procfs/Makefile.common @@ -78,7 +78,7 @@ ifneq ($(shell which gotestsum),) endif endif -PROMU_VERSION ?= 0.5.0 +PROMU_VERSION ?= 0.7.0 PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_VERSION)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM).tar.gz GOLANGCI_LINT := @@ -245,10 +245,12 @@ common-docker-publish: $(PUBLISH_DOCKER_ARCHS) $(PUBLISH_DOCKER_ARCHS): common-docker-publish-%: docker push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG)" +DOCKER_MAJOR_VERSION_TAG = $(firstword $(subst ., ,$(shell cat VERSION))) .PHONY: common-docker-tag-latest $(TAG_DOCKER_ARCHS) common-docker-tag-latest: $(TAG_DOCKER_ARCHS) $(TAG_DOCKER_ARCHS): common-docker-tag-latest-%: docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG)" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:latest" + docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG)" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:v$(DOCKER_MAJOR_VERSION_TAG)" .PHONY: common-docker-manifest common-docker-manifest: diff --git a/vendor/github.com/prometheus/procfs/SECURITY.md b/vendor/github.com/prometheus/procfs/SECURITY.md new file mode 100644 index 0000000000..67741f015a --- /dev/null +++ b/vendor/github.com/prometheus/procfs/SECURITY.md @@ -0,0 +1,6 @@ +# Reporting a security issue + +The Prometheus security policy, including how to report vulnerabilities, can be +found here: + +https://prometheus.io/docs/operating/security/ diff --git a/vendor/github.com/prometheus/procfs/arp.go b/vendor/github.com/prometheus/procfs/arp.go index 916c9182a8..4e47e61720 100644 --- a/vendor/github.com/prometheus/procfs/arp.go +++ b/vendor/github.com/prometheus/procfs/arp.go @@ -36,7 +36,7 @@ type ARPEntry struct { func (fs FS) GatherARPEntries() ([]ARPEntry, error) { data, err := ioutil.ReadFile(fs.proc.Path("net/arp")) if err != nil { - return nil, fmt.Errorf("error reading arp %s: %s", fs.proc.Path("net/arp"), err) + return nil, fmt.Errorf("error reading arp %q: %w", fs.proc.Path("net/arp"), err) } return parseARPEntries(data) @@ -59,7 +59,7 @@ func parseARPEntries(data []byte) ([]ARPEntry, error) { } else if width == expectedDataWidth { entry, err := parseARPEntry(columns) if err != nil { - return []ARPEntry{}, fmt.Errorf("failed to parse ARP entry: %s", err) + return []ARPEntry{}, fmt.Errorf("failed to parse ARP entry: %w", err) } entries = append(entries, entry) } else { diff --git a/vendor/github.com/prometheus/procfs/buddyinfo.go b/vendor/github.com/prometheus/procfs/buddyinfo.go index 10bd067a0a..f5b7939b26 100644 --- a/vendor/github.com/prometheus/procfs/buddyinfo.go +++ b/vendor/github.com/prometheus/procfs/buddyinfo.go @@ -74,7 +74,7 @@ func parseBuddyInfo(r io.Reader) ([]BuddyInfo, error) { for i := 0; i < arraySize; i++ { sizes[i], err = strconv.ParseFloat(parts[i+4], 64) if err != nil { - return nil, fmt.Errorf("invalid value in buddyinfo: %s", err) + return nil, fmt.Errorf("invalid value in buddyinfo: %w", err) } } diff --git a/vendor/github.com/prometheus/procfs/cpuinfo.go b/vendor/github.com/prometheus/procfs/cpuinfo.go index b9fb589aa1..5623b24a16 100644 --- a/vendor/github.com/prometheus/procfs/cpuinfo.go +++ b/vendor/github.com/prometheus/procfs/cpuinfo.go @@ -19,6 +19,7 @@ import ( "bufio" "bytes" "errors" + "fmt" "regexp" "strconv" "strings" @@ -77,7 +78,7 @@ func parseCPUInfoX86(info []byte) ([]CPUInfo, error) { // find the first "processor" line firstLine := firstNonEmptyLine(scanner) if !strings.HasPrefix(firstLine, "processor") || !strings.Contains(firstLine, ":") { - return nil, errors.New("invalid cpuinfo file: " + firstLine) + return nil, fmt.Errorf("invalid cpuinfo file: %q", firstLine) } field := strings.SplitN(firstLine, ": ", 2) v, err := strconv.ParseUint(field[1], 0, 32) @@ -192,7 +193,7 @@ func parseCPUInfoARM(info []byte) ([]CPUInfo, error) { firstLine := firstNonEmptyLine(scanner) match, _ := regexp.MatchString("^[Pp]rocessor", firstLine) if !match || !strings.Contains(firstLine, ":") { - return nil, errors.New("invalid cpuinfo file: " + firstLine) + return nil, fmt.Errorf("invalid cpuinfo file: %q", firstLine) } field := strings.SplitN(firstLine, ": ", 2) cpuinfo := []CPUInfo{} @@ -256,7 +257,7 @@ func parseCPUInfoS390X(info []byte) ([]CPUInfo, error) { firstLine := firstNonEmptyLine(scanner) if !strings.HasPrefix(firstLine, "vendor_id") || !strings.Contains(firstLine, ":") { - return nil, errors.New("invalid cpuinfo file: " + firstLine) + return nil, fmt.Errorf("invalid cpuinfo file: %q", firstLine) } field := strings.SplitN(firstLine, ": ", 2) cpuinfo := []CPUInfo{} @@ -281,7 +282,7 @@ func parseCPUInfoS390X(info []byte) ([]CPUInfo, error) { if strings.HasPrefix(line, "processor") { match := cpuinfoS390XProcessorRegexp.FindStringSubmatch(line) if len(match) < 2 { - return nil, errors.New("Invalid line found in cpuinfo: " + line) + return nil, fmt.Errorf("invalid cpuinfo file: %q", firstLine) } cpu := commonCPUInfo v, err := strconv.ParseUint(match[1], 0, 32) @@ -313,6 +314,22 @@ func parseCPUInfoS390X(info []byte) ([]CPUInfo, error) { return nil, err } cpuinfo[i].CPUMHz = v + case "physical id": + cpuinfo[i].PhysicalID = field[1] + case "core id": + cpuinfo[i].CoreID = field[1] + case "cpu cores": + v, err := strconv.ParseUint(field[1], 0, 32) + if err != nil { + return nil, err + } + cpuinfo[i].CPUCores = uint(v) + case "siblings": + v, err := strconv.ParseUint(field[1], 0, 32) + if err != nil { + return nil, err + } + cpuinfo[i].Siblings = uint(v) } } @@ -325,7 +342,7 @@ func parseCPUInfoMips(info []byte) ([]CPUInfo, error) { // find the first "processor" line firstLine := firstNonEmptyLine(scanner) if !strings.HasPrefix(firstLine, "system type") || !strings.Contains(firstLine, ":") { - return nil, errors.New("invalid cpuinfo file: " + firstLine) + return nil, fmt.Errorf("invalid cpuinfo file: %q", firstLine) } field := strings.SplitN(firstLine, ": ", 2) cpuinfo := []CPUInfo{} @@ -367,7 +384,7 @@ func parseCPUInfoPPC(info []byte) ([]CPUInfo, error) { firstLine := firstNonEmptyLine(scanner) if !strings.HasPrefix(firstLine, "processor") || !strings.Contains(firstLine, ":") { - return nil, errors.New("invalid cpuinfo file: " + firstLine) + return nil, fmt.Errorf("invalid cpuinfo file: %q", firstLine) } field := strings.SplitN(firstLine, ": ", 2) v, err := strconv.ParseUint(field[1], 0, 32) @@ -412,7 +429,7 @@ func parseCPUInfoRISCV(info []byte) ([]CPUInfo, error) { firstLine := firstNonEmptyLine(scanner) if !strings.HasPrefix(firstLine, "processor") || !strings.Contains(firstLine, ":") { - return nil, errors.New("invalid cpuinfo file: " + firstLine) + return nil, fmt.Errorf("invalid cpuinfo file: %q", firstLine) } field := strings.SplitN(firstLine, ": ", 2) v, err := strconv.ParseUint(field[1], 0, 32) diff --git a/vendor/github.com/prometheus/procfs/cpuinfo_riscvx.go b/vendor/github.com/prometheus/procfs/cpuinfo_riscvx.go new file mode 100644 index 0000000000..e83c2e207c --- /dev/null +++ b/vendor/github.com/prometheus/procfs/cpuinfo_riscvx.go @@ -0,0 +1,19 @@ +// Copyright 2020 The Prometheus 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. + +// +build linux +// +build riscv riscv64 + +package procfs + +var parseCPUInfo = parseCPUInfoRISCV diff --git a/vendor/github.com/prometheus/procfs/crypto.go b/vendor/github.com/prometheus/procfs/crypto.go index a958933757..5048ad1f21 100644 --- a/vendor/github.com/prometheus/procfs/crypto.go +++ b/vendor/github.com/prometheus/procfs/crypto.go @@ -55,12 +55,12 @@ func (fs FS) Crypto() ([]Crypto, error) { path := fs.proc.Path("crypto") b, err := util.ReadFileNoStat(path) if err != nil { - return nil, fmt.Errorf("error reading crypto %s: %s", path, err) + return nil, fmt.Errorf("error reading crypto %q: %w", path, err) } crypto, err := parseCrypto(bytes.NewReader(b)) if err != nil { - return nil, fmt.Errorf("error parsing crypto %s: %s", path, err) + return nil, fmt.Errorf("error parsing crypto %q: %w", path, err) } return crypto, nil diff --git a/vendor/github.com/prometheus/procfs/fixtures.ttar b/vendor/github.com/prometheus/procfs/fixtures.ttar index 12494d7424..1e76173da0 100644 --- a/vendor/github.com/prometheus/procfs/fixtures.ttar +++ b/vendor/github.com/prometheus/procfs/fixtures.ttar @@ -111,7 +111,7 @@ Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 62898 62898 processes Max open files 2048 4096 files -Max locked memory 65536 65536 bytes +Max locked memory 18446744073708503040 18446744073708503040 bytes Max address space 8589934592 unlimited bytes Max file locks unlimited unlimited locks Max pending signals 62898 62898 signals @@ -1080,7 +1080,6 @@ internal : yes type : skcipher async : yes blocksize : 1 -min keysize : 16 max keysize : 32 ivsize : 16 chunksize : 16 @@ -1839,6 +1838,7 @@ min keysize : 16 max keysize : 32 Mode: 444 +Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Path: fixtures/proc/diskstats Lines: 52 @@ -2129,6 +2129,24 @@ Lines: 6 4 1FB3C 0 1282A8F 0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/proc/net/protocols +Lines: 14 +protocol size sockets memory press maxhdr slab module cl co di ac io in de sh ss gs se re sp bi br ha uh gp em +PACKET 1344 2 -1 NI 0 no kernel n n n n n n n n n n n n n n n n n n n +PINGv6 1112 0 -1 NI 0 yes kernel y y y n n y n n y y y y n y y y y y n +RAWv6 1112 1 -1 NI 0 yes kernel y y y n y y y n y y y y n y y y y n n +UDPLITEv6 1216 0 57 NI 0 yes kernel y y y n y y y n y y y y n n n y y y n +UDPv6 1216 10 57 NI 0 yes kernel y y y n y y y n y y y y n n n y y y n +TCPv6 2144 1937 1225378 no 320 yes kernel y y y y y y y y y y y y y n y y y y y +UNIX 1024 120 -1 NI 0 yes kernel n n n n n n n n n n n n n n n n n n n +UDP-Lite 1024 0 57 NI 0 yes kernel y y y n y y y n y y y y y n n y y y n +PING 904 0 -1 NI 0 yes kernel y y y n n y n n y y y y n y y y y y n +RAW 912 0 -1 NI 0 yes kernel y y y n y y y n y y y y n y y y y n n +UDP 1024 73 57 NI 0 yes kernel y y y n y y y n y y y y y n n y y y n +TCP 1984 93064 1225378 yes 320 yes kernel y y y y y y y y y y y y y n y y y y y +NETLINK 1040 16 -1 NI 0 no kernel n n n n n n n n n n n n n n n n n n n +Mode: 444 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Directory: fixtures/proc/net/rpc Mode: 755 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2186,10 +2204,25 @@ Lines: 1 00015c73 00020e76 F0000769 00000000 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/proc/net/tcp +Lines: 4 + sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode + 0: 0500000A:0016 00000000:0000 0A 00000000:00000001 00:00000000 00000000 0 0 2740 1 ffff88003d3af3c0 100 0 0 10 0 + 1: 00000000:0016 00000000:0000 0A 00000001:00000000 00:00000000 00000000 0 0 2740 1 ffff88003d3af3c0 100 0 0 10 0 + 2: 00000000:0016 00000000:0000 0A 00000001:00000001 00:00000000 00000000 0 0 2740 1 ffff88003d3af3c0 100 0 0 10 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/proc/net/tcp6 +Lines: 3 + sl local_address remote_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops + 1315: 00000000000000000000000000000000:14EB 00000000000000000000000000000000:0000 07 00000000:00000000 00:00000000 00000000 981 0 21040 2 0000000013726323 0 + 6073: 000080FE00000000FFADE15609667CFE:C781 00000000000000000000000000000000:0000 07 00000000:00000000 00:00000000 00000000 1000 0 11337031 2 00000000b9256fdd 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Path: fixtures/proc/net/udp Lines: 4 sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode - 0: 0A000005:0016 00000000:0000 0A 00000000:00000001 00:00000000 00000000 0 0 2740 1 ffff88003d3af3c0 100 0 0 10 0 + 0: 0500000A:0016 00000000:0000 0A 00000000:00000001 00:00000000 00000000 0 0 2740 1 ffff88003d3af3c0 100 0 0 10 0 1: 00000000:0016 00000000:0000 0A 00000001:00000000 00:00000000 00000000 0 0 2740 1 ffff88003d3af3c0 100 0 0 10 0 2: 00000000:0016 00000000:0000 0A 00000001:00000001 00:00000000 00000000 0 0 2740 1 ffff88003d3af3c0 100 0 0 10 0 Mode: 644 @@ -2292,6 +2325,312 @@ Mode: 644 Path: fixtures/proc/self SymlinkTo: 26231 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/proc/slabinfo +Lines: 302 +slabinfo - version: 2.1 +# name : tunables : slabdata +pid_3 375 532 576 28 4 : tunables 0 0 0 : slabdata 19 19 0 +pid_2 3 28 576 28 4 : tunables 0 0 0 : slabdata 1 1 0 +nvidia_p2p_page_cache 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +nvidia_pte_cache 9022 9152 368 22 2 : tunables 0 0 0 : slabdata 416 416 0 +nvidia_stack_cache 321 326 12624 2 8 : tunables 0 0 0 : slabdata 163 163 0 +kvm_async_pf 0 0 472 34 4 : tunables 0 0 0 : slabdata 0 0 0 +kvm_vcpu 0 0 15552 2 8 : tunables 0 0 0 : slabdata 0 0 0 +kvm_mmu_page_header 0 0 504 32 4 : tunables 0 0 0 : slabdata 0 0 0 +pte_list_desc 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +x86_emulator 0 0 3024 10 8 : tunables 0 0 0 : slabdata 0 0 0 +x86_fpu 0 0 4608 7 8 : tunables 0 0 0 : slabdata 0 0 0 +iwl_cmd_pool:0000:04:00.0 0 128 512 32 4 : tunables 0 0 0 : slabdata 4 4 0 +ext4_groupinfo_4k 3719 3740 480 34 4 : tunables 0 0 0 : slabdata 110 110 0 +bio-6 32 75 640 25 4 : tunables 0 0 0 : slabdata 3 3 0 +bio-5 16 48 1344 24 8 : tunables 0 0 0 : slabdata 2 2 0 +bio-4 17 92 1408 23 8 : tunables 0 0 0 : slabdata 4 4 0 +fat_inode_cache 0 0 1056 31 8 : tunables 0 0 0 : slabdata 0 0 0 +fat_cache 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +ovl_aio_req 0 0 512 32 4 : tunables 0 0 0 : slabdata 0 0 0 +ovl_inode 0 0 1000 32 8 : tunables 0 0 0 : slabdata 0 0 0 +squashfs_inode_cache 0 0 1088 30 8 : tunables 0 0 0 : slabdata 0 0 0 +fuse_request 0 0 472 34 4 : tunables 0 0 0 : slabdata 0 0 0 +fuse_inode 0 0 1152 28 8 : tunables 0 0 0 : slabdata 0 0 0 +xfs_dqtrx 0 0 864 37 8 : tunables 0 0 0 : slabdata 0 0 0 +xfs_dquot 0 0 832 39 8 : tunables 0 0 0 : slabdata 0 0 0 +xfs_buf 0 0 768 21 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_bui_item 0 0 544 30 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_bud_item 0 0 512 32 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_cui_item 0 0 768 21 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_cud_item 0 0 512 32 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_rui_item 0 0 1024 32 8 : tunables 0 0 0 : slabdata 0 0 0 +xfs_rud_item 0 0 512 32 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_icr 0 0 520 31 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_ili 0 0 528 31 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_inode 0 0 1344 24 8 : tunables 0 0 0 : slabdata 0 0 0 +xfs_efi_item 0 0 768 21 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_efd_item 0 0 776 21 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_buf_item 0 0 608 26 4 : tunables 0 0 0 : slabdata 0 0 0 +xf_trans 0 0 568 28 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_ifork 0 0 376 21 2 : tunables 0 0 0 : slabdata 0 0 0 +xfs_da_state 0 0 816 20 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_btree_cur 0 0 560 29 4 : tunables 0 0 0 : slabdata 0 0 0 +xfs_bmap_free_item 0 0 400 20 2 : tunables 0 0 0 : slabdata 0 0 0 +xfs_log_ticket 0 0 520 31 4 : tunables 0 0 0 : slabdata 0 0 0 +nfs_direct_cache 0 0 560 29 4 : tunables 0 0 0 : slabdata 0 0 0 +nfs_commit_data 4 28 1152 28 8 : tunables 0 0 0 : slabdata 1 1 0 +nfs_write_data 32 50 1280 25 8 : tunables 0 0 0 : slabdata 2 2 0 +nfs_read_data 0 0 1280 25 8 : tunables 0 0 0 : slabdata 0 0 0 +nfs_inode_cache 0 0 1408 23 8 : tunables 0 0 0 : slabdata 0 0 0 +nfs_page 0 0 512 32 4 : tunables 0 0 0 : slabdata 0 0 0 +rpc_inode_cache 0 0 1024 32 8 : tunables 0 0 0 : slabdata 0 0 0 +rpc_buffers 8 13 2496 13 8 : tunables 0 0 0 : slabdata 1 1 0 +rpc_tasks 8 25 640 25 4 : tunables 0 0 0 : slabdata 1 1 0 +fscache_cookie_jar 1 35 464 35 4 : tunables 0 0 0 : slabdata 1 1 0 +jfs_mp 32 35 464 35 4 : tunables 0 0 0 : slabdata 1 1 0 +jfs_ip 0 0 1592 20 8 : tunables 0 0 0 : slabdata 0 0 0 +reiser_inode_cache 0 0 1096 29 8 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_end_io_wq 0 0 464 35 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_prelim_ref 0 0 424 38 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_delayed_extent_op 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_delayed_data_ref 0 0 448 36 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_delayed_tree_ref 0 0 440 37 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_delayed_ref_head 0 0 480 34 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_inode_defrag 0 0 400 20 2 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_delayed_node 0 0 648 25 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_ordered_extent 0 0 752 21 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_extent_map 0 0 480 34 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_extent_state 0 0 416 39 4 : tunables 0 0 0 : slabdata 0 0 0 +bio-3 35 92 704 23 4 : tunables 0 0 0 : slabdata 4 4 0 +btrfs_extent_buffer 0 0 600 27 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_free_space_bitmap 0 0 12288 2 8 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_free_space 0 0 416 39 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_path 0 0 448 36 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_trans_handle 0 0 440 37 4 : tunables 0 0 0 : slabdata 0 0 0 +btrfs_inode 0 0 1496 21 8 : tunables 0 0 0 : slabdata 0 0 0 +ext4_inode_cache 84136 84755 1400 23 8 : tunables 0 0 0 : slabdata 3685 3685 0 +ext4_free_data 22 80 392 20 2 : tunables 0 0 0 : slabdata 4 4 0 +ext4_allocation_context 0 70 464 35 4 : tunables 0 0 0 : slabdata 2 2 0 +ext4_prealloc_space 24 74 440 37 4 : tunables 0 0 0 : slabdata 2 2 0 +ext4_system_zone 267 273 376 21 2 : tunables 0 0 0 : slabdata 13 13 0 +ext4_io_end_vec 0 88 368 22 2 : tunables 0 0 0 : slabdata 4 4 0 +ext4_io_end 0 80 400 20 2 : tunables 0 0 0 : slabdata 4 4 0 +ext4_bio_post_read_ctx 128 147 384 21 2 : tunables 0 0 0 : slabdata 7 7 0 +ext4_pending_reservation 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +ext4_extent_status 79351 79422 376 21 2 : tunables 0 0 0 : slabdata 3782 3782 0 +jbd2_transaction_s 44 100 640 25 4 : tunables 0 0 0 : slabdata 4 4 0 +jbd2_inode 6785 6840 400 20 2 : tunables 0 0 0 : slabdata 342 342 0 +jbd2_journal_handle 0 80 392 20 2 : tunables 0 0 0 : slabdata 4 4 0 +jbd2_journal_head 824 1944 448 36 4 : tunables 0 0 0 : slabdata 54 54 0 +jbd2_revoke_table_s 4 23 352 23 2 : tunables 0 0 0 : slabdata 1 1 0 +jbd2_revoke_record_s 0 156 416 39 4 : tunables 0 0 0 : slabdata 4 4 0 +ext2_inode_cache 0 0 1144 28 8 : tunables 0 0 0 : slabdata 0 0 0 +mbcache 0 0 392 20 2 : tunables 0 0 0 : slabdata 0 0 0 +dm_thin_new_mapping 0 152 424 38 4 : tunables 0 0 0 : slabdata 4 4 0 +dm_snap_pending_exception 0 0 464 35 4 : tunables 0 0 0 : slabdata 0 0 0 +dm_exception 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +dm_dirty_log_flush_entry 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +dm_bio_prison_cell_v2 0 0 432 37 4 : tunables 0 0 0 : slabdata 0 0 0 +dm_bio_prison_cell 0 148 432 37 4 : tunables 0 0 0 : slabdata 4 4 0 +kcopyd_job 0 8 3648 8 8 : tunables 0 0 0 : slabdata 1 1 0 +io 0 32 512 32 4 : tunables 0 0 0 : slabdata 1 1 0 +dm_uevent 0 0 3224 10 8 : tunables 0 0 0 : slabdata 0 0 0 +dax_cache 1 28 1152 28 8 : tunables 0 0 0 : slabdata 1 1 0 +aic94xx_ascb 0 0 576 28 4 : tunables 0 0 0 : slabdata 0 0 0 +aic94xx_dma_token 0 0 384 21 2 : tunables 0 0 0 : slabdata 0 0 0 +asd_sas_event 0 0 512 32 4 : tunables 0 0 0 : slabdata 0 0 0 +sas_task 0 0 704 23 4 : tunables 0 0 0 : slabdata 0 0 0 +qla2xxx_srbs 0 0 832 39 8 : tunables 0 0 0 : slabdata 0 0 0 +sd_ext_cdb 2 22 368 22 2 : tunables 0 0 0 : slabdata 1 1 0 +scsi_sense_cache 258 288 512 32 4 : tunables 0 0 0 : slabdata 9 9 0 +virtio_scsi_cmd 64 75 640 25 4 : tunables 0 0 0 : slabdata 3 3 0 +L2TP/IPv6 0 0 1536 21 8 : tunables 0 0 0 : slabdata 0 0 0 +L2TP/IP 0 0 1408 23 8 : tunables 0 0 0 : slabdata 0 0 0 +ip6-frags 0 0 520 31 4 : tunables 0 0 0 : slabdata 0 0 0 +fib6_nodes 5 32 512 32 4 : tunables 0 0 0 : slabdata 1 1 0 +ip6_dst_cache 4 25 640 25 4 : tunables 0 0 0 : slabdata 1 1 0 +ip6_mrt_cache 0 0 576 28 4 : tunables 0 0 0 : slabdata 0 0 0 +PINGv6 0 0 1600 20 8 : tunables 0 0 0 : slabdata 0 0 0 +RAWv6 25 40 1600 20 8 : tunables 0 0 0 : slabdata 2 2 0 +UDPLITEv6 0 0 1728 18 8 : tunables 0 0 0 : slabdata 0 0 0 +UDPv6 3 54 1728 18 8 : tunables 0 0 0 : slabdata 3 3 0 +tw_sock_TCPv6 0 0 576 28 4 : tunables 0 0 0 : slabdata 0 0 0 +request_sock_TCPv6 0 0 632 25 4 : tunables 0 0 0 : slabdata 0 0 0 +TCPv6 0 33 2752 11 8 : tunables 0 0 0 : slabdata 3 3 0 +uhci_urb_priv 0 0 392 20 2 : tunables 0 0 0 : slabdata 0 0 0 +sgpool-128 2 14 4544 7 8 : tunables 0 0 0 : slabdata 2 2 0 +sgpool-64 2 13 2496 13 8 : tunables 0 0 0 : slabdata 1 1 0 +sgpool-32 2 44 1472 22 8 : tunables 0 0 0 : slabdata 2 2 0 +sgpool-16 2 68 960 34 8 : tunables 0 0 0 : slabdata 2 2 0 +sgpool-8 2 46 704 23 4 : tunables 0 0 0 : slabdata 2 2 0 +btree_node 0 0 576 28 4 : tunables 0 0 0 : slabdata 0 0 0 +bfq_io_cq 0 0 488 33 4 : tunables 0 0 0 : slabdata 0 0 0 +bfq_queue 0 0 848 38 8 : tunables 0 0 0 : slabdata 0 0 0 +mqueue_inode_cache 1 24 1344 24 8 : tunables 0 0 0 : slabdata 1 1 0 +isofs_inode_cache 0 0 968 33 8 : tunables 0 0 0 : slabdata 0 0 0 +io_kiocb 0 0 640 25 4 : tunables 0 0 0 : slabdata 0 0 0 +kioctx 0 30 1088 30 8 : tunables 0 0 0 : slabdata 1 1 0 +aio_kiocb 0 28 576 28 4 : tunables 0 0 0 : slabdata 1 1 0 +userfaultfd_ctx_cache 0 0 576 28 4 : tunables 0 0 0 : slabdata 0 0 0 +fanotify_path_event 0 0 392 20 2 : tunables 0 0 0 : slabdata 0 0 0 +fanotify_fid_event 0 0 400 20 2 : tunables 0 0 0 : slabdata 0 0 0 +fsnotify_mark 0 0 408 20 2 : tunables 0 0 0 : slabdata 0 0 0 +dnotify_mark 0 0 416 39 4 : tunables 0 0 0 : slabdata 0 0 0 +dnotify_struct 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +dio 0 0 1088 30 8 : tunables 0 0 0 : slabdata 0 0 0 +bio-2 4 25 640 25 4 : tunables 0 0 0 : slabdata 1 1 0 +fasync_cache 0 0 384 21 2 : tunables 0 0 0 : slabdata 0 0 0 +audit_tree_mark 0 0 416 39 4 : tunables 0 0 0 : slabdata 0 0 0 +pid_namespace 30 34 480 34 4 : tunables 0 0 0 : slabdata 1 1 0 +posix_timers_cache 0 27 592 27 4 : tunables 0 0 0 : slabdata 1 1 0 +iommu_devinfo 24 32 512 32 4 : tunables 0 0 0 : slabdata 1 1 0 +iommu_domain 10 10 3264 10 8 : tunables 0 0 0 : slabdata 1 1 0 +iommu_iova 8682 8748 448 36 4 : tunables 0 0 0 : slabdata 243 243 0 +UNIX 529 814 1472 22 8 : tunables 0 0 0 : slabdata 37 37 0 +ip4-frags 0 0 536 30 4 : tunables 0 0 0 : slabdata 0 0 0 +ip_mrt_cache 0 0 576 28 4 : tunables 0 0 0 : slabdata 0 0 0 +UDP-Lite 0 0 1536 21 8 : tunables 0 0 0 : slabdata 0 0 0 +tcp_bind_bucket 7 128 512 32 4 : tunables 0 0 0 : slabdata 4 4 0 +inet_peer_cache 0 0 576 28 4 : tunables 0 0 0 : slabdata 0 0 0 +xfrm_dst_cache 0 0 704 23 4 : tunables 0 0 0 : slabdata 0 0 0 +xfrm_state 0 0 1152 28 8 : tunables 0 0 0 : slabdata 0 0 0 +ip_fib_trie 7 21 384 21 2 : tunables 0 0 0 : slabdata 1 1 0 +ip_fib_alias 9 20 392 20 2 : tunables 0 0 0 : slabdata 1 1 0 +ip_dst_cache 27 84 576 28 4 : tunables 0 0 0 : slabdata 3 3 0 +PING 0 0 1408 23 8 : tunables 0 0 0 : slabdata 0 0 0 +RAW 32 46 1408 23 8 : tunables 0 0 0 : slabdata 2 2 0 +UDP 11 168 1536 21 8 : tunables 0 0 0 : slabdata 8 8 0 +tw_sock_TCP 1 56 576 28 4 : tunables 0 0 0 : slabdata 2 2 0 +request_sock_TCP 0 25 632 25 4 : tunables 0 0 0 : slabdata 1 1 0 +TCP 10 60 2624 12 8 : tunables 0 0 0 : slabdata 5 5 0 +hugetlbfs_inode_cache 2 35 928 35 8 : tunables 0 0 0 : slabdata 1 1 0 +dquot 0 0 640 25 4 : tunables 0 0 0 : slabdata 0 0 0 +bio-1 32 46 704 23 4 : tunables 0 0 0 : slabdata 2 2 0 +eventpoll_pwq 409 600 408 20 2 : tunables 0 0 0 : slabdata 30 30 0 +eventpoll_epi 408 672 576 28 4 : tunables 0 0 0 : slabdata 24 24 0 +inotify_inode_mark 58 195 416 39 4 : tunables 0 0 0 : slabdata 5 5 0 +scsi_data_buffer 0 0 360 22 2 : tunables 0 0 0 : slabdata 0 0 0 +bio_crypt_ctx 128 147 376 21 2 : tunables 0 0 0 : slabdata 7 7 0 +request_queue 29 39 2408 13 8 : tunables 0 0 0 : slabdata 3 3 0 +blkdev_ioc 81 148 440 37 4 : tunables 0 0 0 : slabdata 4 4 0 +bio-0 125 200 640 25 4 : tunables 0 0 0 : slabdata 8 8 0 +biovec-max 166 196 4544 7 8 : tunables 0 0 0 : slabdata 28 28 0 +biovec-128 0 52 2496 13 8 : tunables 0 0 0 : slabdata 4 4 0 +biovec-64 0 88 1472 22 8 : tunables 0 0 0 : slabdata 4 4 0 +biovec-16 0 92 704 23 4 : tunables 0 0 0 : slabdata 4 4 0 +bio_integrity_payload 4 28 576 28 4 : tunables 0 0 0 : slabdata 1 1 0 +khugepaged_mm_slot 59 180 448 36 4 : tunables 0 0 0 : slabdata 5 5 0 +ksm_mm_slot 0 0 384 21 2 : tunables 0 0 0 : slabdata 0 0 0 +ksm_stable_node 0 0 400 20 2 : tunables 0 0 0 : slabdata 0 0 0 +ksm_rmap_item 0 0 400 20 2 : tunables 0 0 0 : slabdata 0 0 0 +user_namespace 2 37 864 37 8 : tunables 0 0 0 : slabdata 1 1 0 +uid_cache 5 28 576 28 4 : tunables 0 0 0 : slabdata 1 1 0 +dmaengine-unmap-256 1 13 2496 13 8 : tunables 0 0 0 : slabdata 1 1 0 +dmaengine-unmap-128 1 22 1472 22 8 : tunables 0 0 0 : slabdata 1 1 0 +dmaengine-unmap-16 1 28 576 28 4 : tunables 0 0 0 : slabdata 1 1 0 +dmaengine-unmap-2 1 36 448 36 4 : tunables 0 0 0 : slabdata 1 1 0 +audit_buffer 0 22 360 22 2 : tunables 0 0 0 : slabdata 1 1 0 +sock_inode_cache 663 1170 1216 26 8 : tunables 0 0 0 : slabdata 45 45 0 +skbuff_ext_cache 0 0 576 28 4 : tunables 0 0 0 : slabdata 0 0 0 +skbuff_fclone_cache 1 72 896 36 8 : tunables 0 0 0 : slabdata 2 2 0 +skbuff_head_cache 3 650 640 25 4 : tunables 0 0 0 : slabdata 26 26 0 +configfs_dir_cache 7 38 424 38 4 : tunables 0 0 0 : slabdata 1 1 0 +file_lock_cache 27 116 552 29 4 : tunables 0 0 0 : slabdata 4 4 0 +file_lock_ctx 106 120 392 20 2 : tunables 0 0 0 : slabdata 6 6 0 +fsnotify_mark_connector 52 66 368 22 2 : tunables 0 0 0 : slabdata 3 3 0 +net_namespace 1 6 5312 6 8 : tunables 0 0 0 : slabdata 1 1 0 +task_delay_info 784 1560 416 39 4 : tunables 0 0 0 : slabdata 40 40 0 +taskstats 45 92 688 23 4 : tunables 0 0 0 : slabdata 4 4 0 +proc_dir_entry 678 682 528 31 4 : tunables 0 0 0 : slabdata 22 22 0 +pde_opener 0 189 376 21 2 : tunables 0 0 0 : slabdata 9 9 0 +proc_inode_cache 7150 8250 992 33 8 : tunables 0 0 0 : slabdata 250 250 0 +seq_file 60 735 456 35 4 : tunables 0 0 0 : slabdata 21 21 0 +sigqueue 0 156 416 39 4 : tunables 0 0 0 : slabdata 4 4 0 +bdev_cache 36 78 1216 26 8 : tunables 0 0 0 : slabdata 3 3 0 +shmem_inode_cache 1599 2208 1016 32 8 : tunables 0 0 0 : slabdata 69 69 0 +kernfs_iattrs_cache 1251 1254 424 38 4 : tunables 0 0 0 : slabdata 33 33 0 +kernfs_node_cache 52898 52920 464 35 4 : tunables 0 0 0 : slabdata 1512 1512 0 +mnt_cache 42 46 704 23 4 : tunables 0 0 0 : slabdata 2 2 0 +filp 4314 6371 704 23 4 : tunables 0 0 0 : slabdata 277 277 0 +inode_cache 28695 29505 920 35 8 : tunables 0 0 0 : slabdata 843 843 0 +dentry 166069 169074 528 31 4 : tunables 0 0 0 : slabdata 5454 5454 0 +names_cache 0 35 4544 7 8 : tunables 0 0 0 : slabdata 5 5 0 +hashtab_node 0 0 360 22 2 : tunables 0 0 0 : slabdata 0 0 0 +ebitmap_node 0 0 400 20 2 : tunables 0 0 0 : slabdata 0 0 0 +avtab_extended_perms 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +avtab_node 0 0 360 22 2 : tunables 0 0 0 : slabdata 0 0 0 +avc_xperms_data 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +avc_xperms_decision_node 0 0 384 21 2 : tunables 0 0 0 : slabdata 0 0 0 +avc_xperms_node 0 0 392 20 2 : tunables 0 0 0 : slabdata 0 0 0 +avc_node 37 40 408 20 2 : tunables 0 0 0 : slabdata 2 2 0 +iint_cache 0 0 448 36 4 : tunables 0 0 0 : slabdata 0 0 0 +lsm_inode_cache 122284 122340 392 20 2 : tunables 0 0 0 : slabdata 6117 6117 0 +lsm_file_cache 4266 4485 352 23 2 : tunables 0 0 0 : slabdata 195 195 0 +key_jar 8 25 640 25 4 : tunables 0 0 0 : slabdata 1 1 0 +buffer_head 255622 257076 440 37 4 : tunables 0 0 0 : slabdata 6948 6948 0 +uts_namespace 0 0 776 21 4 : tunables 0 0 0 : slabdata 0 0 0 +nsproxy 31 40 408 20 2 : tunables 0 0 0 : slabdata 2 2 0 +vm_area_struct 39115 43214 528 31 4 : tunables 0 0 0 : slabdata 1394 1394 0 +mm_struct 96 529 1408 23 8 : tunables 0 0 0 : slabdata 23 23 0 +fs_cache 102 756 448 36 4 : tunables 0 0 0 : slabdata 21 21 0 +files_cache 102 588 1152 28 8 : tunables 0 0 0 : slabdata 21 21 0 +signal_cache 266 672 1536 21 8 : tunables 0 0 0 : slabdata 32 32 0 +sighand_cache 266 507 2496 13 8 : tunables 0 0 0 : slabdata 39 39 0 +task_struct 783 963 10240 3 8 : tunables 0 0 0 : slabdata 321 321 0 +cred_jar 364 952 576 28 4 : tunables 0 0 0 : slabdata 34 34 0 +anon_vma_chain 63907 67821 416 39 4 : tunables 0 0 0 : slabdata 1739 1739 0 +anon_vma 25891 28899 416 39 4 : tunables 0 0 0 : slabdata 741 741 0 +pid 408 992 512 32 4 : tunables 0 0 0 : slabdata 31 31 0 +Acpi-Operand 6682 6740 408 20 2 : tunables 0 0 0 : slabdata 337 337 0 +Acpi-ParseExt 0 39 416 39 4 : tunables 0 0 0 : slabdata 1 1 0 +Acpi-Parse 0 80 392 20 2 : tunables 0 0 0 : slabdata 4 4 0 +Acpi-State 0 78 416 39 4 : tunables 0 0 0 : slabdata 2 2 0 +Acpi-Namespace 3911 3948 384 21 2 : tunables 0 0 0 : slabdata 188 188 0 +trace_event_file 2638 2660 424 38 4 : tunables 0 0 0 : slabdata 70 70 0 +ftrace_event_field 6592 6594 384 21 2 : tunables 0 0 0 : slabdata 314 314 0 +pool_workqueue 41 64 1024 32 8 : tunables 0 0 0 : slabdata 2 2 0 +radix_tree_node 21638 24045 912 35 8 : tunables 0 0 0 : slabdata 687 687 0 +task_group 48 78 1216 26 8 : tunables 0 0 0 : slabdata 3 3 0 +vmap_area 4411 4680 400 20 2 : tunables 0 0 0 : slabdata 234 234 0 +dma-kmalloc-8k 0 0 24576 1 8 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-4k 0 0 12288 2 8 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-2k 0 0 6144 5 8 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-1k 0 0 3072 10 8 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-512 0 0 1536 21 8 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-256 0 0 1024 32 8 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-128 0 0 640 25 4 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-64 0 0 512 32 4 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-32 0 0 416 39 4 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-16 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-8 0 0 344 23 2 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-192 0 0 528 31 4 : tunables 0 0 0 : slabdata 0 0 0 +dma-kmalloc-96 0 0 432 37 4 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-8k 0 0 24576 1 8 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-4k 0 0 12288 2 8 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-2k 0 0 6144 5 8 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-1k 0 0 3072 10 8 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-512 0 0 1536 21 8 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-256 0 0 1024 32 8 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-192 0 0 528 31 4 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-128 31 75 640 25 4 : tunables 0 0 0 : slabdata 3 3 0 +kmalloc-rcl-96 3371 3626 432 37 4 : tunables 0 0 0 : slabdata 98 98 0 +kmalloc-rcl-64 2080 2272 512 32 4 : tunables 0 0 0 : slabdata 71 71 0 +kmalloc-rcl-32 0 0 416 39 4 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-16 0 0 368 22 2 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-rcl-8 0 0 344 23 2 : tunables 0 0 0 : slabdata 0 0 0 +kmalloc-8k 133 140 24576 1 8 : tunables 0 0 0 : slabdata 140 140 0 +kmalloc-4k 403 444 12288 2 8 : tunables 0 0 0 : slabdata 222 222 0 +kmalloc-2k 2391 2585 6144 5 8 : tunables 0 0 0 : slabdata 517 517 0 +kmalloc-1k 2163 2420 3072 10 8 : tunables 0 0 0 : slabdata 242 242 0 +kmalloc-512 2972 3633 1536 21 8 : tunables 0 0 0 : slabdata 173 173 0 +kmalloc-256 1841 1856 1024 32 8 : tunables 0 0 0 : slabdata 58 58 0 +kmalloc-192 2165 2914 528 31 4 : tunables 0 0 0 : slabdata 94 94 0 +kmalloc-128 1137 1175 640 25 4 : tunables 0 0 0 : slabdata 47 47 0 +kmalloc-96 1925 2590 432 37 4 : tunables 0 0 0 : slabdata 70 70 0 +kmalloc-64 9433 10688 512 32 4 : tunables 0 0 0 : slabdata 334 334 0 +kmalloc-32 9098 10062 416 39 4 : tunables 0 0 0 : slabdata 258 258 0 +kmalloc-16 10914 10956 368 22 2 : tunables 0 0 0 : slabdata 498 498 0 +kmalloc-8 7576 7705 344 23 2 : tunables 0 0 0 : slabdata 335 335 0 +kmem_cache_node 904 928 512 32 4 : tunables 0 0 0 : slabdata 29 29 0 +kmem_cache 904 936 832 39 8 : tunables 0 0 0 : slabdata 24 24 0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Path: fixtures/proc/stat Lines: 16 cpu 301854 612 111922 8979004 3552 2 3944 0 0 0 @@ -4639,6 +4978,35 @@ Mode: 644 Directory: fixtures/sys/devices/system Mode: 775 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/sys/devices/system/node +Mode: 775 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/sys/devices/system/node/node1 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/sys/devices/system/node/node1/vmstat +Lines: 6 +nr_free_pages 1 +nr_zone_inactive_anon 2 +nr_zone_active_anon 3 +nr_zone_inactive_file 4 +nr_zone_active_file 5 +nr_zone_unevictable 6 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: fixtures/sys/devices/system/node/node2 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: fixtures/sys/devices/system/node/node2/vmstat +Lines: 6 +nr_free_pages 7 +nr_zone_inactive_anon 8 +nr_zone_active_anon 9 +nr_zone_inactive_file 10 +nr_zone_active_file 11 +nr_zone_unevictable 12 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Directory: fixtures/sys/devices/system/clocksource Mode: 775 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/github.com/prometheus/procfs/fscache.go b/vendor/github.com/prometheus/procfs/fscache.go index 8783cf3cc1..f8070e6e2b 100644 --- a/vendor/github.com/prometheus/procfs/fscache.go +++ b/vendor/github.com/prometheus/procfs/fscache.go @@ -236,7 +236,7 @@ func (fs FS) Fscacheinfo() (Fscacheinfo, error) { m, err := parseFscacheinfo(bytes.NewReader(b)) if err != nil { - return Fscacheinfo{}, fmt.Errorf("failed to parse Fscacheinfo: %v", err) + return Fscacheinfo{}, fmt.Errorf("failed to parse Fscacheinfo: %w", err) } return *m, nil diff --git a/vendor/github.com/prometheus/procfs/go.mod b/vendor/github.com/prometheus/procfs/go.mod index ded48253cd..ba6681f521 100644 --- a/vendor/github.com/prometheus/procfs/go.mod +++ b/vendor/github.com/prometheus/procfs/go.mod @@ -1,9 +1,9 @@ module github.com/prometheus/procfs -go 1.12 +go 1.13 require ( - github.com/google/go-cmp v0.3.1 - golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e - golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e + github.com/google/go-cmp v0.5.4 + golang.org/x/sync v0.0.0-20201207232520-09787c993a3a + golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c ) diff --git a/vendor/github.com/prometheus/procfs/go.sum b/vendor/github.com/prometheus/procfs/go.sum index 54b5f33033..7ceaf56b7d 100644 --- a/vendor/github.com/prometheus/procfs/go.sum +++ b/vendor/github.com/prometheus/procfs/go.sum @@ -1,6 +1,8 @@ -github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e h1:LwyF2AFISC9nVbS6MgzsaQNSUsRXI49GS+YQ5KX/QH0= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/vendor/github.com/prometheus/procfs/internal/fs/fs.go b/vendor/github.com/prometheus/procfs/internal/fs/fs.go index 565e89e42c..0040753b1c 100644 --- a/vendor/github.com/prometheus/procfs/internal/fs/fs.go +++ b/vendor/github.com/prometheus/procfs/internal/fs/fs.go @@ -39,10 +39,10 @@ type FS string func NewFS(mountPoint string) (FS, error) { info, err := os.Stat(mountPoint) if err != nil { - return "", fmt.Errorf("could not read %s: %s", mountPoint, err) + return "", fmt.Errorf("could not read %q: %w", mountPoint, err) } if !info.IsDir() { - return "", fmt.Errorf("mount point %s is not a directory", mountPoint) + return "", fmt.Errorf("mount point %q is not a directory", mountPoint) } return FS(mountPoint), nil diff --git a/vendor/github.com/prometheus/procfs/loadavg.go b/vendor/github.com/prometheus/procfs/loadavg.go index 00bbe14417..0cce190ec2 100644 --- a/vendor/github.com/prometheus/procfs/loadavg.go +++ b/vendor/github.com/prometheus/procfs/loadavg.go @@ -44,14 +44,14 @@ func parseLoad(loadavgBytes []byte) (*LoadAvg, error) { loads := make([]float64, 3) parts := strings.Fields(string(loadavgBytes)) if len(parts) < 3 { - return nil, fmt.Errorf("malformed loadavg line: too few fields in loadavg string: %s", string(loadavgBytes)) + return nil, fmt.Errorf("malformed loadavg line: too few fields in loadavg string: %q", string(loadavgBytes)) } var err error for i, load := range parts[0:3] { loads[i], err = strconv.ParseFloat(load, 64) if err != nil { - return nil, fmt.Errorf("could not parse load '%s': %s", load, err) + return nil, fmt.Errorf("could not parse load %q: %w", load, err) } } return &LoadAvg{ diff --git a/vendor/github.com/prometheus/procfs/mdstat.go b/vendor/github.com/prometheus/procfs/mdstat.go index 98e37aa8ca..4c4493bfa5 100644 --- a/vendor/github.com/prometheus/procfs/mdstat.go +++ b/vendor/github.com/prometheus/procfs/mdstat.go @@ -22,8 +22,9 @@ import ( ) var ( - statusLineRE = regexp.MustCompile(`(\d+) blocks .*\[(\d+)/(\d+)\] \[[U_]+\]`) - recoveryLineRE = regexp.MustCompile(`\((\d+)/\d+\)`) + statusLineRE = regexp.MustCompile(`(\d+) blocks .*\[(\d+)/(\d+)\] \[[U_]+\]`) + recoveryLineRE = regexp.MustCompile(`\((\d+)/\d+\)`) + componentDeviceRE = regexp.MustCompile(`(.*)\[\d+\]`) ) // MDStat holds info parsed from /proc/mdstat. @@ -44,6 +45,8 @@ type MDStat struct { BlocksTotal int64 // Number of blocks on the device that are in sync. BlocksSynced int64 + // Name of md component devices + Devices []string } // MDStat parses an mdstat-file (/proc/mdstat) and returns a slice of @@ -56,7 +59,7 @@ func (fs FS) MDStat() ([]MDStat, error) { } mdstat, err := parseMDStat(data) if err != nil { - return nil, fmt.Errorf("error parsing mdstat %s: %s", fs.proc.Path("mdstat"), err) + return nil, fmt.Errorf("error parsing mdstat %q: %w", fs.proc.Path("mdstat"), err) } return mdstat, nil } @@ -82,10 +85,7 @@ func parseMDStat(mdStatData []byte) ([]MDStat, error) { state := deviceFields[2] // active or inactive if len(lines) <= i+3 { - return nil, fmt.Errorf( - "error parsing %s: too few lines for md device", - mdName, - ) + return nil, fmt.Errorf("error parsing %q: too few lines for md device", mdName) } // Failed disks have the suffix (F) & Spare disks have the suffix (S). @@ -94,7 +94,7 @@ func parseMDStat(mdStatData []byte) ([]MDStat, error) { active, total, size, err := evalStatusLine(lines[i], lines[i+1]) if err != nil { - return nil, fmt.Errorf("error parsing md device lines: %s", err) + return nil, fmt.Errorf("error parsing md device lines: %w", err) } syncLineIdx := i + 2 @@ -126,7 +126,7 @@ func parseMDStat(mdStatData []byte) ([]MDStat, error) { } else { syncedBlocks, err = evalRecoveryLine(lines[syncLineIdx]) if err != nil { - return nil, fmt.Errorf("error parsing sync line in md device %s: %s", mdName, err) + return nil, fmt.Errorf("error parsing sync line in md device %q: %w", mdName, err) } } } @@ -140,6 +140,7 @@ func parseMDStat(mdStatData []byte) ([]MDStat, error) { DisksTotal: total, BlocksTotal: size, BlocksSynced: syncedBlocks, + Devices: evalComponentDevices(deviceFields), }) } @@ -151,7 +152,7 @@ func evalStatusLine(deviceLine, statusLine string) (active, total, size int64, e sizeStr := strings.Fields(statusLine)[0] size, err = strconv.ParseInt(sizeStr, 10, 64) if err != nil { - return 0, 0, 0, fmt.Errorf("unexpected statusLine %s: %s", statusLine, err) + return 0, 0, 0, fmt.Errorf("unexpected statusLine %q: %w", statusLine, err) } if strings.Contains(deviceLine, "raid0") || strings.Contains(deviceLine, "linear") { @@ -171,12 +172,12 @@ func evalStatusLine(deviceLine, statusLine string) (active, total, size int64, e total, err = strconv.ParseInt(matches[2], 10, 64) if err != nil { - return 0, 0, 0, fmt.Errorf("unexpected statusLine %s: %s", statusLine, err) + return 0, 0, 0, fmt.Errorf("unexpected statusLine %q: %w", statusLine, err) } active, err = strconv.ParseInt(matches[3], 10, 64) if err != nil { - return 0, 0, 0, fmt.Errorf("unexpected statusLine %s: %s", statusLine, err) + return 0, 0, 0, fmt.Errorf("unexpected statusLine %q: %w", statusLine, err) } return active, total, size, nil @@ -190,8 +191,23 @@ func evalRecoveryLine(recoveryLine string) (syncedBlocks int64, err error) { syncedBlocks, err = strconv.ParseInt(matches[1], 10, 64) if err != nil { - return 0, fmt.Errorf("%s in recoveryLine: %s", err, recoveryLine) + return 0, fmt.Errorf("error parsing int from recoveryLine %q: %w", recoveryLine, err) } return syncedBlocks, nil } + +func evalComponentDevices(deviceFields []string) []string { + mdComponentDevices := make([]string, 0) + if len(deviceFields) > 3 { + for _, field := range deviceFields[4:] { + match := componentDeviceRE.FindStringSubmatch(field) + if match == nil { + continue + } + mdComponentDevices = append(mdComponentDevices, match[1]) + } + } + + return mdComponentDevices +} diff --git a/vendor/github.com/prometheus/procfs/meminfo.go b/vendor/github.com/prometheus/procfs/meminfo.go index 50dab4bcd5..f65e174e57 100644 --- a/vendor/github.com/prometheus/procfs/meminfo.go +++ b/vendor/github.com/prometheus/procfs/meminfo.go @@ -28,9 +28,9 @@ import ( type Meminfo struct { // Total usable ram (i.e. physical ram minus a few reserved // bits and the kernel binary code) - MemTotal uint64 + MemTotal *uint64 // The sum of LowFree+HighFree - MemFree uint64 + MemFree *uint64 // An estimate of how much memory is available for starting // new applications, without swapping. Calculated from // MemFree, SReclaimable, the size of the file LRU lists, and @@ -39,59 +39,59 @@ type Meminfo struct { // well, and that not all reclaimable slab will be // reclaimable, due to items being in use. The impact of those // factors will vary from system to system. - MemAvailable uint64 + MemAvailable *uint64 // Relatively temporary storage for raw disk blocks shouldn't // get tremendously large (20MB or so) - Buffers uint64 - Cached uint64 + Buffers *uint64 + Cached *uint64 // Memory that once was swapped out, is swapped back in but // still also is in the swapfile (if memory is needed it // doesn't need to be swapped out AGAIN because it is already // in the swapfile. This saves I/O) - SwapCached uint64 + SwapCached *uint64 // Memory that has been used more recently and usually not // reclaimed unless absolutely necessary. - Active uint64 + Active *uint64 // Memory which has been less recently used. It is more // eligible to be reclaimed for other purposes - Inactive uint64 - ActiveAnon uint64 - InactiveAnon uint64 - ActiveFile uint64 - InactiveFile uint64 - Unevictable uint64 - Mlocked uint64 + Inactive *uint64 + ActiveAnon *uint64 + InactiveAnon *uint64 + ActiveFile *uint64 + InactiveFile *uint64 + Unevictable *uint64 + Mlocked *uint64 // total amount of swap space available - SwapTotal uint64 + SwapTotal *uint64 // Memory which has been evicted from RAM, and is temporarily // on the disk - SwapFree uint64 + SwapFree *uint64 // Memory which is waiting to get written back to the disk - Dirty uint64 + Dirty *uint64 // Memory which is actively being written back to the disk - Writeback uint64 + Writeback *uint64 // Non-file backed pages mapped into userspace page tables - AnonPages uint64 + AnonPages *uint64 // files which have been mapped, such as libraries - Mapped uint64 - Shmem uint64 + Mapped *uint64 + Shmem *uint64 // in-kernel data structures cache - Slab uint64 + Slab *uint64 // Part of Slab, that might be reclaimed, such as caches - SReclaimable uint64 + SReclaimable *uint64 // Part of Slab, that cannot be reclaimed on memory pressure - SUnreclaim uint64 - KernelStack uint64 + SUnreclaim *uint64 + KernelStack *uint64 // amount of memory dedicated to the lowest level of page // tables. - PageTables uint64 + PageTables *uint64 // NFS pages sent to the server, but not yet committed to // stable storage - NFSUnstable uint64 + NFSUnstable *uint64 // Memory used for block device "bounce buffers" - Bounce uint64 + Bounce *uint64 // Memory used by FUSE for temporary writeback buffers - WritebackTmp uint64 + WritebackTmp *uint64 // Based on the overcommit ratio ('vm.overcommit_ratio'), // this is the total amount of memory currently available to // be allocated on the system. This limit is only adhered to @@ -105,7 +105,7 @@ type Meminfo struct { // yield a CommitLimit of 7.3G. // For more details, see the memory overcommit documentation // in vm/overcommit-accounting. - CommitLimit uint64 + CommitLimit *uint64 // The amount of memory presently allocated on the system. // The committed memory is a sum of all of the memory which // has been allocated by processes, even if it has not been @@ -119,27 +119,27 @@ type Meminfo struct { // This is useful if one needs to guarantee that processes will // not fail due to lack of memory once that memory has been // successfully allocated. - CommittedAS uint64 + CommittedAS *uint64 // total size of vmalloc memory area - VmallocTotal uint64 + VmallocTotal *uint64 // amount of vmalloc area which is used - VmallocUsed uint64 + VmallocUsed *uint64 // largest contiguous block of vmalloc area which is free - VmallocChunk uint64 - HardwareCorrupted uint64 - AnonHugePages uint64 - ShmemHugePages uint64 - ShmemPmdMapped uint64 - CmaTotal uint64 - CmaFree uint64 - HugePagesTotal uint64 - HugePagesFree uint64 - HugePagesRsvd uint64 - HugePagesSurp uint64 - Hugepagesize uint64 - DirectMap4k uint64 - DirectMap2M uint64 - DirectMap1G uint64 + VmallocChunk *uint64 + HardwareCorrupted *uint64 + AnonHugePages *uint64 + ShmemHugePages *uint64 + ShmemPmdMapped *uint64 + CmaTotal *uint64 + CmaFree *uint64 + HugePagesTotal *uint64 + HugePagesFree *uint64 + HugePagesRsvd *uint64 + HugePagesSurp *uint64 + Hugepagesize *uint64 + DirectMap4k *uint64 + DirectMap2M *uint64 + DirectMap1G *uint64 } // Meminfo returns an information about current kernel/system memory statistics. @@ -152,7 +152,7 @@ func (fs FS) Meminfo() (Meminfo, error) { m, err := parseMemInfo(bytes.NewReader(b)) if err != nil { - return Meminfo{}, fmt.Errorf("failed to parse meminfo: %v", err) + return Meminfo{}, fmt.Errorf("failed to parse meminfo: %w", err) } return *m, nil @@ -175,101 +175,101 @@ func parseMemInfo(r io.Reader) (*Meminfo, error) { switch fields[0] { case "MemTotal:": - m.MemTotal = v + m.MemTotal = &v case "MemFree:": - m.MemFree = v + m.MemFree = &v case "MemAvailable:": - m.MemAvailable = v + m.MemAvailable = &v case "Buffers:": - m.Buffers = v + m.Buffers = &v case "Cached:": - m.Cached = v + m.Cached = &v case "SwapCached:": - m.SwapCached = v + m.SwapCached = &v case "Active:": - m.Active = v + m.Active = &v case "Inactive:": - m.Inactive = v + m.Inactive = &v case "Active(anon):": - m.ActiveAnon = v + m.ActiveAnon = &v case "Inactive(anon):": - m.InactiveAnon = v + m.InactiveAnon = &v case "Active(file):": - m.ActiveFile = v + m.ActiveFile = &v case "Inactive(file):": - m.InactiveFile = v + m.InactiveFile = &v case "Unevictable:": - m.Unevictable = v + m.Unevictable = &v case "Mlocked:": - m.Mlocked = v + m.Mlocked = &v case "SwapTotal:": - m.SwapTotal = v + m.SwapTotal = &v case "SwapFree:": - m.SwapFree = v + m.SwapFree = &v case "Dirty:": - m.Dirty = v + m.Dirty = &v case "Writeback:": - m.Writeback = v + m.Writeback = &v case "AnonPages:": - m.AnonPages = v + m.AnonPages = &v case "Mapped:": - m.Mapped = v + m.Mapped = &v case "Shmem:": - m.Shmem = v + m.Shmem = &v case "Slab:": - m.Slab = v + m.Slab = &v case "SReclaimable:": - m.SReclaimable = v + m.SReclaimable = &v case "SUnreclaim:": - m.SUnreclaim = v + m.SUnreclaim = &v case "KernelStack:": - m.KernelStack = v + m.KernelStack = &v case "PageTables:": - m.PageTables = v + m.PageTables = &v case "NFS_Unstable:": - m.NFSUnstable = v + m.NFSUnstable = &v case "Bounce:": - m.Bounce = v + m.Bounce = &v case "WritebackTmp:": - m.WritebackTmp = v + m.WritebackTmp = &v case "CommitLimit:": - m.CommitLimit = v + m.CommitLimit = &v case "Committed_AS:": - m.CommittedAS = v + m.CommittedAS = &v case "VmallocTotal:": - m.VmallocTotal = v + m.VmallocTotal = &v case "VmallocUsed:": - m.VmallocUsed = v + m.VmallocUsed = &v case "VmallocChunk:": - m.VmallocChunk = v + m.VmallocChunk = &v case "HardwareCorrupted:": - m.HardwareCorrupted = v + m.HardwareCorrupted = &v case "AnonHugePages:": - m.AnonHugePages = v + m.AnonHugePages = &v case "ShmemHugePages:": - m.ShmemHugePages = v + m.ShmemHugePages = &v case "ShmemPmdMapped:": - m.ShmemPmdMapped = v + m.ShmemPmdMapped = &v case "CmaTotal:": - m.CmaTotal = v + m.CmaTotal = &v case "CmaFree:": - m.CmaFree = v + m.CmaFree = &v case "HugePages_Total:": - m.HugePagesTotal = v + m.HugePagesTotal = &v case "HugePages_Free:": - m.HugePagesFree = v + m.HugePagesFree = &v case "HugePages_Rsvd:": - m.HugePagesRsvd = v + m.HugePagesRsvd = &v case "HugePages_Surp:": - m.HugePagesSurp = v + m.HugePagesSurp = &v case "Hugepagesize:": - m.Hugepagesize = v + m.Hugepagesize = &v case "DirectMap4k:": - m.DirectMap4k = v + m.DirectMap4k = &v case "DirectMap2M:": - m.DirectMap2M = v + m.DirectMap2M = &v case "DirectMap1G:": - m.DirectMap1G = v + m.DirectMap1G = &v } } diff --git a/vendor/github.com/prometheus/procfs/mountstats.go b/vendor/github.com/prometheus/procfs/mountstats.go index 861ced9da0..f7a828bb1d 100644 --- a/vendor/github.com/prometheus/procfs/mountstats.go +++ b/vendor/github.com/prometheus/procfs/mountstats.go @@ -338,12 +338,12 @@ func parseMountStatsNFS(s *bufio.Scanner, statVersion string) (*MountStatsNFS, e if len(ss) == 0 { break } - if len(ss) < 2 { - return nil, fmt.Errorf("not enough information for NFS stats: %v", ss) - } switch ss[0] { case fieldOpts: + if len(ss) < 2 { + return nil, fmt.Errorf("not enough information for NFS stats: %v", ss) + } if stats.Opts == nil { stats.Opts = map[string]string{} } @@ -356,6 +356,9 @@ func parseMountStatsNFS(s *bufio.Scanner, statVersion string) (*MountStatsNFS, e } } case fieldAge: + if len(ss) < 2 { + return nil, fmt.Errorf("not enough information for NFS stats: %v", ss) + } // Age integer is in seconds d, err := time.ParseDuration(ss[1] + "s") if err != nil { @@ -364,6 +367,9 @@ func parseMountStatsNFS(s *bufio.Scanner, statVersion string) (*MountStatsNFS, e stats.Age = d case fieldBytes: + if len(ss) < 2 { + return nil, fmt.Errorf("not enough information for NFS stats: %v", ss) + } bstats, err := parseNFSBytesStats(ss[1:]) if err != nil { return nil, err @@ -371,6 +377,9 @@ func parseMountStatsNFS(s *bufio.Scanner, statVersion string) (*MountStatsNFS, e stats.Bytes = *bstats case fieldEvents: + if len(ss) < 2 { + return nil, fmt.Errorf("not enough information for NFS stats: %v", ss) + } estats, err := parseNFSEventsStats(ss[1:]) if err != nil { return nil, err diff --git a/vendor/github.com/prometheus/procfs/net_conntrackstat.go b/vendor/github.com/prometheus/procfs/net_conntrackstat.go index b637be9845..9964a3600b 100644 --- a/vendor/github.com/prometheus/procfs/net_conntrackstat.go +++ b/vendor/github.com/prometheus/procfs/net_conntrackstat.go @@ -55,7 +55,7 @@ func readConntrackStat(path string) ([]ConntrackStatEntry, error) { stat, err := parseConntrackStat(bytes.NewReader(b)) if err != nil { - return nil, fmt.Errorf("failed to read conntrack stats from %q: %v", path, err) + return nil, fmt.Errorf("failed to read conntrack stats from %q: %w", path, err) } return stat, nil @@ -147,7 +147,7 @@ func parseConntrackStatEntry(fields []string) (*ConntrackStatEntry, error) { func parseConntrackStatField(field string) (uint64, error) { val, err := strconv.ParseUint(field, 16, 64) if err != nil { - return 0, fmt.Errorf("couldn't parse \"%s\" field: %s", field, err) + return 0, fmt.Errorf("couldn't parse %q field: %w", field, err) } return val, err } diff --git a/vendor/github.com/prometheus/procfs/net_ip_socket.go b/vendor/github.com/prometheus/procfs/net_ip_socket.go new file mode 100644 index 0000000000..ac01dd8475 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/net_ip_socket.go @@ -0,0 +1,220 @@ +// Copyright 2020 The Prometheus 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. + +package procfs + +import ( + "bufio" + "encoding/hex" + "fmt" + "io" + "net" + "os" + "strconv" + "strings" +) + +const ( + // readLimit is used by io.LimitReader while reading the content of the + // /proc/net/udp{,6} files. The number of lines inside such a file is dynamic + // as each line represents a single used socket. + // In theory, the number of available sockets is 65535 (2^16 - 1) per IP. + // With e.g. 150 Byte per line and the maximum number of 65535, + // the reader needs to handle 150 Byte * 65535 =~ 10 MB for a single IP. + readLimit = 4294967296 // Byte -> 4 GiB +) + +// this contains generic data structures for both udp and tcp sockets +type ( + // NetIPSocket represents the contents of /proc/net/{t,u}dp{,6} file without the header. + NetIPSocket []*netIPSocketLine + + // NetIPSocketSummary provides already computed values like the total queue lengths or + // the total number of used sockets. In contrast to NetIPSocket it does not collect + // the parsed lines into a slice. + NetIPSocketSummary struct { + // TxQueueLength shows the total queue length of all parsed tx_queue lengths. + TxQueueLength uint64 + // RxQueueLength shows the total queue length of all parsed rx_queue lengths. + RxQueueLength uint64 + // UsedSockets shows the total number of parsed lines representing the + // number of used sockets. + UsedSockets uint64 + } + + // netIPSocketLine represents the fields parsed from a single line + // in /proc/net/{t,u}dp{,6}. Fields which are not used by IPSocket are skipped. + // For the proc file format details, see https://linux.die.net/man/5/proc. + netIPSocketLine struct { + Sl uint64 + LocalAddr net.IP + LocalPort uint64 + RemAddr net.IP + RemPort uint64 + St uint64 + TxQueue uint64 + RxQueue uint64 + UID uint64 + } +) + +func newNetIPSocket(file string) (NetIPSocket, error) { + f, err := os.Open(file) + if err != nil { + return nil, err + } + defer f.Close() + + var netIPSocket NetIPSocket + + lr := io.LimitReader(f, readLimit) + s := bufio.NewScanner(lr) + s.Scan() // skip first line with headers + for s.Scan() { + fields := strings.Fields(s.Text()) + line, err := parseNetIPSocketLine(fields) + if err != nil { + return nil, err + } + netIPSocket = append(netIPSocket, line) + } + if err := s.Err(); err != nil { + return nil, err + } + return netIPSocket, nil +} + +// newNetIPSocketSummary creates a new NetIPSocket{,6} from the contents of the given file. +func newNetIPSocketSummary(file string) (*NetIPSocketSummary, error) { + f, err := os.Open(file) + if err != nil { + return nil, err + } + defer f.Close() + + var netIPSocketSummary NetIPSocketSummary + + lr := io.LimitReader(f, readLimit) + s := bufio.NewScanner(lr) + s.Scan() // skip first line with headers + for s.Scan() { + fields := strings.Fields(s.Text()) + line, err := parseNetIPSocketLine(fields) + if err != nil { + return nil, err + } + netIPSocketSummary.TxQueueLength += line.TxQueue + netIPSocketSummary.RxQueueLength += line.RxQueue + netIPSocketSummary.UsedSockets++ + } + if err := s.Err(); err != nil { + return nil, err + } + return &netIPSocketSummary, nil +} + +// the /proc/net/{t,u}dp{,6} files are network byte order for ipv4 and for ipv6 the address is four words consisting of four bytes each. In each of those four words the four bytes are written in reverse order. + +func parseIP(hexIP string) (net.IP, error) { + var byteIP []byte + byteIP, err := hex.DecodeString(hexIP) + if err != nil { + return nil, fmt.Errorf("cannot parse address field in socket line %q", hexIP) + } + switch len(byteIP) { + case 4: + return net.IP{byteIP[3], byteIP[2], byteIP[1], byteIP[0]}, nil + case 16: + i := net.IP{ + byteIP[3], byteIP[2], byteIP[1], byteIP[0], + byteIP[7], byteIP[6], byteIP[5], byteIP[4], + byteIP[11], byteIP[10], byteIP[9], byteIP[8], + byteIP[15], byteIP[14], byteIP[13], byteIP[12], + } + return i, nil + default: + return nil, fmt.Errorf("Unable to parse IP %s", hexIP) + } +} + +// parseNetIPSocketLine parses a single line, represented by a list of fields. +func parseNetIPSocketLine(fields []string) (*netIPSocketLine, error) { + line := &netIPSocketLine{} + if len(fields) < 8 { + return nil, fmt.Errorf( + "cannot parse net socket line as it has less then 8 columns %q", + strings.Join(fields, " "), + ) + } + var err error // parse error + + // sl + s := strings.Split(fields[0], ":") + if len(s) != 2 { + return nil, fmt.Errorf("cannot parse sl field in socket line %q", fields[0]) + } + + if line.Sl, err = strconv.ParseUint(s[0], 0, 64); err != nil { + return nil, fmt.Errorf("cannot parse sl value in socket line: %w", err) + } + // local_address + l := strings.Split(fields[1], ":") + if len(l) != 2 { + return nil, fmt.Errorf("cannot parse local_address field in socket line %q", fields[1]) + } + if line.LocalAddr, err = parseIP(l[0]); err != nil { + return nil, err + } + if line.LocalPort, err = strconv.ParseUint(l[1], 16, 64); err != nil { + return nil, fmt.Errorf("cannot parse local_address port value in socket line: %w", err) + } + + // remote_address + r := strings.Split(fields[2], ":") + if len(r) != 2 { + return nil, fmt.Errorf("cannot parse rem_address field in socket line %q", fields[1]) + } + if line.RemAddr, err = parseIP(r[0]); err != nil { + return nil, err + } + if line.RemPort, err = strconv.ParseUint(r[1], 16, 64); err != nil { + return nil, fmt.Errorf("cannot parse rem_address port value in socket line: %w", err) + } + + // st + if line.St, err = strconv.ParseUint(fields[3], 16, 64); err != nil { + return nil, fmt.Errorf("cannot parse st value in socket line: %w", err) + } + + // tx_queue and rx_queue + q := strings.Split(fields[4], ":") + if len(q) != 2 { + return nil, fmt.Errorf( + "cannot parse tx/rx queues in socket line as it has a missing colon %q", + fields[4], + ) + } + if line.TxQueue, err = strconv.ParseUint(q[0], 16, 64); err != nil { + return nil, fmt.Errorf("cannot parse tx_queue value in socket line: %w", err) + } + if line.RxQueue, err = strconv.ParseUint(q[1], 16, 64); err != nil { + return nil, fmt.Errorf("cannot parse rx_queue value in socket line: %w", err) + } + + // uid + if line.UID, err = strconv.ParseUint(fields[7], 0, 64); err != nil { + return nil, fmt.Errorf("cannot parse uid value in socket line: %w", err) + } + + return line, nil +} diff --git a/vendor/github.com/prometheus/procfs/net_protocols.go b/vendor/github.com/prometheus/procfs/net_protocols.go new file mode 100644 index 0000000000..8c6de3791b --- /dev/null +++ b/vendor/github.com/prometheus/procfs/net_protocols.go @@ -0,0 +1,180 @@ +// Copyright 2020 The Prometheus 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. + +package procfs + +import ( + "bufio" + "bytes" + "fmt" + "strconv" + "strings" + + "github.com/prometheus/procfs/internal/util" +) + +// NetProtocolStats stores the contents from /proc/net/protocols +type NetProtocolStats map[string]NetProtocolStatLine + +// NetProtocolStatLine contains a single line parsed from /proc/net/protocols. We +// only care about the first six columns as the rest are not likely to change +// and only serve to provide a set of capabilities for each protocol. +type NetProtocolStatLine struct { + Name string // 0 The name of the protocol + Size uint64 // 1 The size, in bytes, of a given protocol structure. e.g. sizeof(struct tcp_sock) or sizeof(struct unix_sock) + Sockets int64 // 2 Number of sockets in use by this protocol + Memory int64 // 3 Number of 4KB pages allocated by all sockets of this protocol + Pressure int // 4 This is either yes, no, or NI (not implemented). For the sake of simplicity we treat NI as not experiencing memory pressure. + MaxHeader uint64 // 5 Protocol specific max header size + Slab bool // 6 Indicates whether or not memory is allocated from the SLAB + ModuleName string // 7 The name of the module that implemented this protocol or "kernel" if not from a module + Capabilities NetProtocolCapabilities +} + +// NetProtocolCapabilities contains a list of capabilities for each protocol +type NetProtocolCapabilities struct { + Close bool // 8 + Connect bool // 9 + Disconnect bool // 10 + Accept bool // 11 + IoCtl bool // 12 + Init bool // 13 + Destroy bool // 14 + Shutdown bool // 15 + SetSockOpt bool // 16 + GetSockOpt bool // 17 + SendMsg bool // 18 + RecvMsg bool // 19 + SendPage bool // 20 + Bind bool // 21 + BacklogRcv bool // 22 + Hash bool // 23 + UnHash bool // 24 + GetPort bool // 25 + EnterMemoryPressure bool // 26 +} + +// NetProtocols reads stats from /proc/net/protocols and returns a map of +// PortocolStatLine entries. As of this writing no official Linux Documentation +// exists, however the source is fairly self-explanatory and the format seems +// stable since its introduction in 2.6.12-rc2 +// Linux 2.6.12-rc2 - https://elixir.bootlin.com/linux/v2.6.12-rc2/source/net/core/sock.c#L1452 +// Linux 5.10 - https://elixir.bootlin.com/linux/v5.10.4/source/net/core/sock.c#L3586 +func (fs FS) NetProtocols() (NetProtocolStats, error) { + data, err := util.ReadFileNoStat(fs.proc.Path("net/protocols")) + if err != nil { + return NetProtocolStats{}, err + } + return parseNetProtocols(bufio.NewScanner(bytes.NewReader(data))) +} + +func parseNetProtocols(s *bufio.Scanner) (NetProtocolStats, error) { + nps := NetProtocolStats{} + + // Skip the header line + s.Scan() + + for s.Scan() { + line, err := nps.parseLine(s.Text()) + if err != nil { + return NetProtocolStats{}, err + } + + nps[line.Name] = *line + } + return nps, nil +} + +func (ps NetProtocolStats) parseLine(rawLine string) (*NetProtocolStatLine, error) { + line := &NetProtocolStatLine{Capabilities: NetProtocolCapabilities{}} + var err error + const enabled = "yes" + const disabled = "no" + + fields := strings.Fields(rawLine) + line.Name = fields[0] + line.Size, err = strconv.ParseUint(fields[1], 10, 64) + if err != nil { + return nil, err + } + line.Sockets, err = strconv.ParseInt(fields[2], 10, 64) + if err != nil { + return nil, err + } + line.Memory, err = strconv.ParseInt(fields[3], 10, 64) + if err != nil { + return nil, err + } + if fields[4] == enabled { + line.Pressure = 1 + } else if fields[4] == disabled { + line.Pressure = 0 + } else { + line.Pressure = -1 + } + line.MaxHeader, err = strconv.ParseUint(fields[5], 10, 64) + if err != nil { + return nil, err + } + if fields[6] == enabled { + line.Slab = true + } else if fields[6] == disabled { + line.Slab = false + } else { + return nil, fmt.Errorf("unable to parse capability for protocol: %s", line.Name) + } + line.ModuleName = fields[7] + + err = line.Capabilities.parseCapabilities(fields[8:]) + if err != nil { + return nil, err + } + + return line, nil +} + +func (pc *NetProtocolCapabilities) parseCapabilities(capabilities []string) error { + // The capabilities are all bools so we can loop over to map them + capabilityFields := [...]*bool{ + &pc.Close, + &pc.Connect, + &pc.Disconnect, + &pc.Accept, + &pc.IoCtl, + &pc.Init, + &pc.Destroy, + &pc.Shutdown, + &pc.SetSockOpt, + &pc.GetSockOpt, + &pc.SendMsg, + &pc.RecvMsg, + &pc.SendPage, + &pc.Bind, + &pc.BacklogRcv, + &pc.Hash, + &pc.UnHash, + &pc.GetPort, + &pc.EnterMemoryPressure, + } + + for i := 0; i < len(capabilities); i++ { + if capabilities[i] == "y" { + *capabilityFields[i] = true + } else if capabilities[i] == "n" { + *capabilityFields[i] = false + } else { + return fmt.Errorf("unable to parse capability block for protocol: position %d", i) + } + } + return nil +} diff --git a/vendor/github.com/prometheus/procfs/net_sockstat.go b/vendor/github.com/prometheus/procfs/net_sockstat.go index f91ef55237..e36f4872dd 100644 --- a/vendor/github.com/prometheus/procfs/net_sockstat.go +++ b/vendor/github.com/prometheus/procfs/net_sockstat.go @@ -70,7 +70,7 @@ func readSockstat(name string) (*NetSockstat, error) { stat, err := parseSockstat(bytes.NewReader(b)) if err != nil { - return nil, fmt.Errorf("failed to read sockstats from %q: %v", name, err) + return nil, fmt.Errorf("failed to read sockstats from %q: %w", name, err) } return stat, nil @@ -90,7 +90,7 @@ func parseSockstat(r io.Reader) (*NetSockstat, error) { // The remaining fields are key/value pairs. kvs, err := parseSockstatKVs(fields[1:]) if err != nil { - return nil, fmt.Errorf("error parsing sockstat key/value pairs from %q: %v", s.Text(), err) + return nil, fmt.Errorf("error parsing sockstat key/value pairs from %q: %w", s.Text(), err) } // The first field is the protocol. We must trim its colon suffix. diff --git a/vendor/github.com/prometheus/procfs/net_softnet.go b/vendor/github.com/prometheus/procfs/net_softnet.go index db5debdf4a..46f12c61d3 100644 --- a/vendor/github.com/prometheus/procfs/net_softnet.go +++ b/vendor/github.com/prometheus/procfs/net_softnet.go @@ -51,7 +51,7 @@ func (fs FS) NetSoftnetStat() ([]SoftnetStat, error) { entries, err := parseSoftnet(bytes.NewReader(b)) if err != nil { - return nil, fmt.Errorf("failed to parse /proc/net/softnet_stat: %v", err) + return nil, fmt.Errorf("failed to parse /proc/net/softnet_stat: %w", err) } return entries, nil diff --git a/vendor/github.com/prometheus/procfs/net_tcp.go b/vendor/github.com/prometheus/procfs/net_tcp.go new file mode 100644 index 0000000000..5277629557 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/net_tcp.go @@ -0,0 +1,64 @@ +// Copyright 2020 The Prometheus 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. + +package procfs + +type ( + // NetTCP represents the contents of /proc/net/tcp{,6} file without the header. + NetTCP []*netIPSocketLine + + // NetTCPSummary provides already computed values like the total queue lengths or + // the total number of used sockets. In contrast to NetTCP it does not collect + // the parsed lines into a slice. + NetTCPSummary NetIPSocketSummary +) + +// NetTCP returns the IPv4 kernel/networking statistics for TCP datagrams +// read from /proc/net/tcp. +func (fs FS) NetTCP() (NetTCP, error) { + return newNetTCP(fs.proc.Path("net/tcp")) +} + +// NetTCP6 returns the IPv6 kernel/networking statistics for TCP datagrams +// read from /proc/net/tcp6. +func (fs FS) NetTCP6() (NetTCP, error) { + return newNetTCP(fs.proc.Path("net/tcp6")) +} + +// NetTCPSummary returns already computed statistics like the total queue lengths +// for TCP datagrams read from /proc/net/tcp. +func (fs FS) NetTCPSummary() (*NetTCPSummary, error) { + return newNetTCPSummary(fs.proc.Path("net/tcp")) +} + +// NetTCP6Summary returns already computed statistics like the total queue lengths +// for TCP datagrams read from /proc/net/tcp6. +func (fs FS) NetTCP6Summary() (*NetTCPSummary, error) { + return newNetTCPSummary(fs.proc.Path("net/tcp6")) +} + +// newNetTCP creates a new NetTCP{,6} from the contents of the given file. +func newNetTCP(file string) (NetTCP, error) { + n, err := newNetIPSocket(file) + n1 := NetTCP(n) + return n1, err +} + +func newNetTCPSummary(file string) (*NetTCPSummary, error) { + n, err := newNetIPSocketSummary(file) + if n == nil { + return nil, err + } + n1 := NetTCPSummary(*n) + return &n1, err +} diff --git a/vendor/github.com/prometheus/procfs/net_udp.go b/vendor/github.com/prometheus/procfs/net_udp.go index d017e3f18d..9ac3daf2d4 100644 --- a/vendor/github.com/prometheus/procfs/net_udp.go +++ b/vendor/github.com/prometheus/procfs/net_udp.go @@ -13,58 +13,14 @@ package procfs -import ( - "bufio" - "encoding/hex" - "fmt" - "io" - "net" - "os" - "strconv" - "strings" -) - -const ( - // readLimit is used by io.LimitReader while reading the content of the - // /proc/net/udp{,6} files. The number of lines inside such a file is dynamic - // as each line represents a single used socket. - // In theory, the number of available sockets is 65535 (2^16 - 1) per IP. - // With e.g. 150 Byte per line and the maximum number of 65535, - // the reader needs to handle 150 Byte * 65535 =~ 10 MB for a single IP. - readLimit = 4294967296 // Byte -> 4 GiB -) - type ( // NetUDP represents the contents of /proc/net/udp{,6} file without the header. - NetUDP []*netUDPLine + NetUDP []*netIPSocketLine // NetUDPSummary provides already computed values like the total queue lengths or // the total number of used sockets. In contrast to NetUDP it does not collect // the parsed lines into a slice. - NetUDPSummary struct { - // TxQueueLength shows the total queue length of all parsed tx_queue lengths. - TxQueueLength uint64 - // RxQueueLength shows the total queue length of all parsed rx_queue lengths. - RxQueueLength uint64 - // UsedSockets shows the total number of parsed lines representing the - // number of used sockets. - UsedSockets uint64 - } - - // netUDPLine represents the fields parsed from a single line - // in /proc/net/udp{,6}. Fields which are not used by UDP are skipped. - // For the proc file format details, see https://linux.die.net/man/5/proc. - netUDPLine struct { - Sl uint64 - LocalAddr net.IP - LocalPort uint64 - RemAddr net.IP - RemPort uint64 - St uint64 - TxQueue uint64 - RxQueue uint64 - UID uint64 - } + NetUDPSummary NetIPSocketSummary ) // NetUDP returns the IPv4 kernel/networking statistics for UDP datagrams @@ -93,137 +49,16 @@ func (fs FS) NetUDP6Summary() (*NetUDPSummary, error) { // newNetUDP creates a new NetUDP{,6} from the contents of the given file. func newNetUDP(file string) (NetUDP, error) { - f, err := os.Open(file) - if err != nil { - return nil, err - } - defer f.Close() - - netUDP := NetUDP{} - - lr := io.LimitReader(f, readLimit) - s := bufio.NewScanner(lr) - s.Scan() // skip first line with headers - for s.Scan() { - fields := strings.Fields(s.Text()) - line, err := parseNetUDPLine(fields) - if err != nil { - return nil, err - } - netUDP = append(netUDP, line) - } - if err := s.Err(); err != nil { - return nil, err - } - return netUDP, nil + n, err := newNetIPSocket(file) + n1 := NetUDP(n) + return n1, err } -// newNetUDPSummary creates a new NetUDP{,6} from the contents of the given file. func newNetUDPSummary(file string) (*NetUDPSummary, error) { - f, err := os.Open(file) - if err != nil { - return nil, err - } - defer f.Close() - - netUDPSummary := &NetUDPSummary{} - - lr := io.LimitReader(f, readLimit) - s := bufio.NewScanner(lr) - s.Scan() // skip first line with headers - for s.Scan() { - fields := strings.Fields(s.Text()) - line, err := parseNetUDPLine(fields) - if err != nil { - return nil, err - } - netUDPSummary.TxQueueLength += line.TxQueue - netUDPSummary.RxQueueLength += line.RxQueue - netUDPSummary.UsedSockets++ - } - if err := s.Err(); err != nil { + n, err := newNetIPSocketSummary(file) + if n == nil { return nil, err } - return netUDPSummary, nil -} - -// parseNetUDPLine parses a single line, represented by a list of fields. -func parseNetUDPLine(fields []string) (*netUDPLine, error) { - line := &netUDPLine{} - if len(fields) < 8 { - return nil, fmt.Errorf( - "cannot parse net udp socket line as it has less then 8 columns: %s", - strings.Join(fields, " "), - ) - } - var err error // parse error - - // sl - s := strings.Split(fields[0], ":") - if len(s) != 2 { - return nil, fmt.Errorf( - "cannot parse sl field in udp socket line: %s", fields[0]) - } - - if line.Sl, err = strconv.ParseUint(s[0], 0, 64); err != nil { - return nil, fmt.Errorf("cannot parse sl value in udp socket line: %s", err) - } - // local_address - l := strings.Split(fields[1], ":") - if len(l) != 2 { - return nil, fmt.Errorf( - "cannot parse local_address field in udp socket line: %s", fields[1]) - } - if line.LocalAddr, err = hex.DecodeString(l[0]); err != nil { - return nil, fmt.Errorf( - "cannot parse local_address value in udp socket line: %s", err) - } - if line.LocalPort, err = strconv.ParseUint(l[1], 16, 64); err != nil { - return nil, fmt.Errorf( - "cannot parse local_address port value in udp socket line: %s", err) - } - - // remote_address - r := strings.Split(fields[2], ":") - if len(r) != 2 { - return nil, fmt.Errorf( - "cannot parse rem_address field in udp socket line: %s", fields[1]) - } - if line.RemAddr, err = hex.DecodeString(r[0]); err != nil { - return nil, fmt.Errorf( - "cannot parse rem_address value in udp socket line: %s", err) - } - if line.RemPort, err = strconv.ParseUint(r[1], 16, 64); err != nil { - return nil, fmt.Errorf( - "cannot parse rem_address port value in udp socket line: %s", err) - } - - // st - if line.St, err = strconv.ParseUint(fields[3], 16, 64); err != nil { - return nil, fmt.Errorf( - "cannot parse st value in udp socket line: %s", err) - } - - // tx_queue and rx_queue - q := strings.Split(fields[4], ":") - if len(q) != 2 { - return nil, fmt.Errorf( - "cannot parse tx/rx queues in udp socket line as it has a missing colon: %s", - fields[4], - ) - } - if line.TxQueue, err = strconv.ParseUint(q[0], 16, 64); err != nil { - return nil, fmt.Errorf("cannot parse tx_queue value in udp socket line: %s", err) - } - if line.RxQueue, err = strconv.ParseUint(q[1], 16, 64); err != nil { - return nil, fmt.Errorf("cannot parse rx_queue value in udp socket line: %s", err) - } - - // uid - if line.UID, err = strconv.ParseUint(fields[7], 0, 64); err != nil { - return nil, fmt.Errorf( - "cannot parse uid value in udp socket line: %s", err) - } - - return line, nil + n1 := NetUDPSummary(*n) + return &n1, err } diff --git a/vendor/github.com/prometheus/procfs/net_unix.go b/vendor/github.com/prometheus/procfs/net_unix.go index c55b4b18e4..98aa8e1c31 100644 --- a/vendor/github.com/prometheus/procfs/net_unix.go +++ b/vendor/github.com/prometheus/procfs/net_unix.go @@ -108,14 +108,14 @@ func parseNetUNIX(r io.Reader) (*NetUNIX, error) { line := s.Text() item, err := nu.parseLine(line, hasInode, minFields) if err != nil { - return nil, fmt.Errorf("failed to parse /proc/net/unix data %q: %v", line, err) + return nil, fmt.Errorf("failed to parse /proc/net/unix data %q: %w", line, err) } nu.Rows = append(nu.Rows, item) } if err := s.Err(); err != nil { - return nil, fmt.Errorf("failed to scan /proc/net/unix data: %v", err) + return nil, fmt.Errorf("failed to scan /proc/net/unix data: %w", err) } return &nu, nil @@ -136,29 +136,29 @@ func (u *NetUNIX) parseLine(line string, hasInode bool, min int) (*NetUNIXLine, users, err := u.parseUsers(fields[1]) if err != nil { - return nil, fmt.Errorf("failed to parse ref count(%s): %v", fields[1], err) + return nil, fmt.Errorf("failed to parse ref count %q: %w", fields[1], err) } flags, err := u.parseFlags(fields[3]) if err != nil { - return nil, fmt.Errorf("failed to parse flags(%s): %v", fields[3], err) + return nil, fmt.Errorf("failed to parse flags %q: %w", fields[3], err) } typ, err := u.parseType(fields[4]) if err != nil { - return nil, fmt.Errorf("failed to parse type(%s): %v", fields[4], err) + return nil, fmt.Errorf("failed to parse type %q: %w", fields[4], err) } state, err := u.parseState(fields[5]) if err != nil { - return nil, fmt.Errorf("failed to parse state(%s): %v", fields[5], err) + return nil, fmt.Errorf("failed to parse state %q: %w", fields[5], err) } var inode uint64 if hasInode { inode, err = u.parseInode(fields[6]) if err != nil { - return nil, fmt.Errorf("failed to parse inode(%s): %v", fields[6], err) + return nil, fmt.Errorf("failed to parse inode %q: %w", fields[6], err) } } diff --git a/vendor/github.com/prometheus/procfs/proc.go b/vendor/github.com/prometheus/procfs/proc.go index 9f97b6e523..28f696803f 100644 --- a/vendor/github.com/prometheus/procfs/proc.go +++ b/vendor/github.com/prometheus/procfs/proc.go @@ -105,7 +105,7 @@ func (fs FS) AllProcs() (Procs, error) { names, err := d.Readdirnames(-1) if err != nil { - return Procs{}, fmt.Errorf("could not read %s: %s", d.Name(), err) + return Procs{}, fmt.Errorf("could not read %q: %w", d.Name(), err) } p := Procs{} @@ -206,7 +206,7 @@ func (p Proc) FileDescriptors() ([]uintptr, error) { for i, n := range names { fd, err := strconv.ParseInt(n, 10, 32) if err != nil { - return nil, fmt.Errorf("could not parse fd %s: %s", n, err) + return nil, fmt.Errorf("could not parse fd %q: %w", n, err) } fds[i] = uintptr(fd) } @@ -278,7 +278,7 @@ func (p Proc) fileDescriptors() ([]string, error) { names, err := d.Readdirnames(-1) if err != nil { - return nil, fmt.Errorf("could not read %s: %s", d.Name(), err) + return nil, fmt.Errorf("could not read %q: %w", d.Name(), err) } return names, nil diff --git a/vendor/github.com/prometheus/procfs/proc_cgroup.go b/vendor/github.com/prometheus/procfs/proc_cgroup.go index 4abd46451c..0094a13c05 100644 --- a/vendor/github.com/prometheus/procfs/proc_cgroup.go +++ b/vendor/github.com/prometheus/procfs/proc_cgroup.go @@ -49,7 +49,7 @@ type Cgroup struct { func parseCgroupString(cgroupStr string) (*Cgroup, error) { var err error - fields := strings.Split(cgroupStr, ":") + fields := strings.SplitN(cgroupStr, ":", 3) if len(fields) < 3 { return nil, fmt.Errorf("at least 3 fields required, found %d fields in cgroup string: %s", len(fields), cgroupStr) } diff --git a/vendor/github.com/prometheus/procfs/proc_fdinfo.go b/vendor/github.com/prometheus/procfs/proc_fdinfo.go index a76ca70791..cf63227f06 100644 --- a/vendor/github.com/prometheus/procfs/proc_fdinfo.go +++ b/vendor/github.com/prometheus/procfs/proc_fdinfo.go @@ -16,7 +16,7 @@ package procfs import ( "bufio" "bytes" - "errors" + "fmt" "regexp" "github.com/prometheus/procfs/internal/util" @@ -112,7 +112,7 @@ func parseInotifyInfo(line string) (*InotifyInfo, error) { } return i, nil } - return nil, errors.New("invalid inode entry: " + line) + return nil, fmt.Errorf("invalid inode entry: %q", line) } // ProcFDInfos represents a list of ProcFDInfo structs. diff --git a/vendor/github.com/prometheus/procfs/proc_limits.go b/vendor/github.com/prometheus/procfs/proc_limits.go index 91ee24df8b..dd20f198a3 100644 --- a/vendor/github.com/prometheus/procfs/proc_limits.go +++ b/vendor/github.com/prometheus/procfs/proc_limits.go @@ -26,55 +26,55 @@ import ( // http://man7.org/linux/man-pages/man2/getrlimit.2.html. type ProcLimits struct { // CPU time limit in seconds. - CPUTime int64 + CPUTime uint64 // Maximum size of files that the process may create. - FileSize int64 + FileSize uint64 // Maximum size of the process's data segment (initialized data, // uninitialized data, and heap). - DataSize int64 + DataSize uint64 // Maximum size of the process stack in bytes. - StackSize int64 + StackSize uint64 // Maximum size of a core file. - CoreFileSize int64 + CoreFileSize uint64 // Limit of the process's resident set in pages. - ResidentSet int64 + ResidentSet uint64 // Maximum number of processes that can be created for the real user ID of // the calling process. - Processes int64 + Processes uint64 // Value one greater than the maximum file descriptor number that can be // opened by this process. - OpenFiles int64 + OpenFiles uint64 // Maximum number of bytes of memory that may be locked into RAM. - LockedMemory int64 + LockedMemory uint64 // Maximum size of the process's virtual memory address space in bytes. - AddressSpace int64 + AddressSpace uint64 // Limit on the combined number of flock(2) locks and fcntl(2) leases that // this process may establish. - FileLocks int64 + FileLocks uint64 // Limit of signals that may be queued for the real user ID of the calling // process. - PendingSignals int64 + PendingSignals uint64 // Limit on the number of bytes that can be allocated for POSIX message // queues for the real user ID of the calling process. - MsqqueueSize int64 + MsqqueueSize uint64 // Limit of the nice priority set using setpriority(2) or nice(2). - NicePriority int64 + NicePriority uint64 // Limit of the real-time priority set using sched_setscheduler(2) or // sched_setparam(2). - RealtimePriority int64 + RealtimePriority uint64 // Limit (in microseconds) on the amount of CPU time that a process // scheduled under a real-time scheduling policy may consume without making // a blocking system call. - RealtimeTimeout int64 + RealtimeTimeout uint64 } const ( - limitsFields = 3 + limitsFields = 4 limitsUnlimited = "unlimited" ) var ( - limitsDelimiter = regexp.MustCompile(" +") + limitsMatch = regexp.MustCompile(`(Max \w+\s{0,1}?\w*\s{0,1}\w*)\s{2,}(\w+)\s+(\w+)`) ) // NewLimits returns the current soft limits of the process. @@ -96,46 +96,49 @@ func (p Proc) Limits() (ProcLimits, error) { l = ProcLimits{} s = bufio.NewScanner(f) ) + + s.Scan() // Skip limits header + for s.Scan() { - fields := limitsDelimiter.Split(s.Text(), limitsFields) + //fields := limitsMatch.Split(s.Text(), limitsFields) + fields := limitsMatch.FindStringSubmatch(s.Text()) if len(fields) != limitsFields { - return ProcLimits{}, fmt.Errorf( - "couldn't parse %s line %s", f.Name(), s.Text()) + return ProcLimits{}, fmt.Errorf("couldn't parse %q line %q", f.Name(), s.Text()) } - switch fields[0] { + switch fields[1] { case "Max cpu time": - l.CPUTime, err = parseInt(fields[1]) + l.CPUTime, err = parseUint(fields[2]) case "Max file size": - l.FileSize, err = parseInt(fields[1]) + l.FileSize, err = parseUint(fields[2]) case "Max data size": - l.DataSize, err = parseInt(fields[1]) + l.DataSize, err = parseUint(fields[2]) case "Max stack size": - l.StackSize, err = parseInt(fields[1]) + l.StackSize, err = parseUint(fields[2]) case "Max core file size": - l.CoreFileSize, err = parseInt(fields[1]) + l.CoreFileSize, err = parseUint(fields[2]) case "Max resident set": - l.ResidentSet, err = parseInt(fields[1]) + l.ResidentSet, err = parseUint(fields[2]) case "Max processes": - l.Processes, err = parseInt(fields[1]) + l.Processes, err = parseUint(fields[2]) case "Max open files": - l.OpenFiles, err = parseInt(fields[1]) + l.OpenFiles, err = parseUint(fields[2]) case "Max locked memory": - l.LockedMemory, err = parseInt(fields[1]) + l.LockedMemory, err = parseUint(fields[2]) case "Max address space": - l.AddressSpace, err = parseInt(fields[1]) + l.AddressSpace, err = parseUint(fields[2]) case "Max file locks": - l.FileLocks, err = parseInt(fields[1]) + l.FileLocks, err = parseUint(fields[2]) case "Max pending signals": - l.PendingSignals, err = parseInt(fields[1]) + l.PendingSignals, err = parseUint(fields[2]) case "Max msgqueue size": - l.MsqqueueSize, err = parseInt(fields[1]) + l.MsqqueueSize, err = parseUint(fields[2]) case "Max nice priority": - l.NicePriority, err = parseInt(fields[1]) + l.NicePriority, err = parseUint(fields[2]) case "Max realtime priority": - l.RealtimePriority, err = parseInt(fields[1]) + l.RealtimePriority, err = parseUint(fields[2]) case "Max realtime timeout": - l.RealtimeTimeout, err = parseInt(fields[1]) + l.RealtimeTimeout, err = parseUint(fields[2]) } if err != nil { return ProcLimits{}, err @@ -145,13 +148,13 @@ func (p Proc) Limits() (ProcLimits, error) { return l, s.Err() } -func parseInt(s string) (int64, error) { +func parseUint(s string) (uint64, error) { if s == limitsUnlimited { - return -1, nil + return 18446744073709551615, nil } - i, err := strconv.ParseInt(s, 10, 64) + i, err := strconv.ParseUint(s, 10, 64) if err != nil { - return 0, fmt.Errorf("couldn't parse value %s: %s", s, err) + return 0, fmt.Errorf("couldn't parse value %q: %w", s, err) } return i, nil } diff --git a/vendor/github.com/prometheus/procfs/proc_ns.go b/vendor/github.com/prometheus/procfs/proc_ns.go index c66740ff74..391b4cbd11 100644 --- a/vendor/github.com/prometheus/procfs/proc_ns.go +++ b/vendor/github.com/prometheus/procfs/proc_ns.go @@ -40,7 +40,7 @@ func (p Proc) Namespaces() (Namespaces, error) { names, err := d.Readdirnames(-1) if err != nil { - return nil, fmt.Errorf("failed to read contents of ns dir: %v", err) + return nil, fmt.Errorf("failed to read contents of ns dir: %w", err) } ns := make(Namespaces, len(names)) @@ -52,13 +52,13 @@ func (p Proc) Namespaces() (Namespaces, error) { fields := strings.SplitN(target, ":", 2) if len(fields) != 2 { - return nil, fmt.Errorf("failed to parse namespace type and inode from '%v'", target) + return nil, fmt.Errorf("failed to parse namespace type and inode from %q", target) } typ := fields[0] inode, err := strconv.ParseUint(strings.Trim(fields[1], "[]"), 10, 32) if err != nil { - return nil, fmt.Errorf("failed to parse inode from '%v': %v", fields[1], err) + return nil, fmt.Errorf("failed to parse inode from %q: %w", fields[1], err) } ns[name] = Namespace{typ, uint32(inode)} diff --git a/vendor/github.com/prometheus/procfs/proc_psi.go b/vendor/github.com/prometheus/procfs/proc_psi.go index 0d7bee54ca..dc6c14f0a4 100644 --- a/vendor/github.com/prometheus/procfs/proc_psi.go +++ b/vendor/github.com/prometheus/procfs/proc_psi.go @@ -59,7 +59,7 @@ type PSIStats struct { func (fs FS) PSIStatsForResource(resource string) (PSIStats, error) { data, err := util.ReadFileNoStat(fs.proc.Path(fmt.Sprintf("%s/%s", "pressure", resource))) if err != nil { - return PSIStats{}, fmt.Errorf("psi_stats: unavailable for %s", resource) + return PSIStats{}, fmt.Errorf("psi_stats: unavailable for %q: %w", resource, err) } return parsePSIStats(resource, bytes.NewReader(data)) diff --git a/vendor/github.com/prometheus/procfs/proc_stat.go b/vendor/github.com/prometheus/procfs/proc_stat.go index 4517d2e9dd..67ca0e9fbc 100644 --- a/vendor/github.com/prometheus/procfs/proc_stat.go +++ b/vendor/github.com/prometheus/procfs/proc_stat.go @@ -127,10 +127,7 @@ func (p Proc) Stat() (ProcStat, error) { ) if l < 0 || r < 0 { - return ProcStat{}, fmt.Errorf( - "unexpected format, couldn't extract comm: %s", - data, - ) + return ProcStat{}, fmt.Errorf("unexpected format, couldn't extract comm %q", data) } s.Comm = string(data[l+1 : r]) diff --git a/vendor/github.com/prometheus/procfs/schedstat.go b/vendor/github.com/prometheus/procfs/schedstat.go index a4c4089ac5..28228164ef 100644 --- a/vendor/github.com/prometheus/procfs/schedstat.go +++ b/vendor/github.com/prometheus/procfs/schedstat.go @@ -95,24 +95,27 @@ func (fs FS) Schedstat() (*Schedstat, error) { return stats, nil } -func parseProcSchedstat(contents string) (stats ProcSchedstat, err error) { +func parseProcSchedstat(contents string) (ProcSchedstat, error) { + var ( + stats ProcSchedstat + err error + ) match := procLineRE.FindStringSubmatch(contents) if match != nil { stats.RunningNanoseconds, err = strconv.ParseUint(match[1], 10, 64) if err != nil { - return + return stats, err } stats.WaitingNanoseconds, err = strconv.ParseUint(match[2], 10, 64) if err != nil { - return + return stats, err } stats.RunTimeslices, err = strconv.ParseUint(match[3], 10, 64) - return + return stats, err } - err = errors.New("could not parse schedstat") - return + return stats, errors.New("could not parse schedstat") } diff --git a/vendor/github.com/prometheus/procfs/slab.go b/vendor/github.com/prometheus/procfs/slab.go new file mode 100644 index 0000000000..7896fd7242 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/slab.go @@ -0,0 +1,151 @@ +// Copyright 2020 The Prometheus 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. + +package procfs + +import ( + "bufio" + "bytes" + "fmt" + "regexp" + "strconv" + "strings" + + "github.com/prometheus/procfs/internal/util" +) + +var ( + slabSpace = regexp.MustCompile(`\s+`) + slabVer = regexp.MustCompile(`slabinfo -`) + slabHeader = regexp.MustCompile(`# name`) +) + +// Slab represents a slab pool in the kernel. +type Slab struct { + Name string + ObjActive int64 + ObjNum int64 + ObjSize int64 + ObjPerSlab int64 + PagesPerSlab int64 + // tunables + Limit int64 + Batch int64 + SharedFactor int64 + SlabActive int64 + SlabNum int64 + SharedAvail int64 +} + +// SlabInfo represents info for all slabs. +type SlabInfo struct { + Slabs []*Slab +} + +func shouldParseSlab(line string) bool { + if slabVer.MatchString(line) { + return false + } + if slabHeader.MatchString(line) { + return false + } + return true +} + +// parseV21SlabEntry is used to parse a line from /proc/slabinfo version 2.1. +func parseV21SlabEntry(line string) (*Slab, error) { + // First cleanup whitespace. + l := slabSpace.ReplaceAllString(line, " ") + s := strings.Split(l, " ") + if len(s) != 16 { + return nil, fmt.Errorf("unable to parse: %q", line) + } + var err error + i := &Slab{Name: s[0]} + i.ObjActive, err = strconv.ParseInt(s[1], 10, 64) + if err != nil { + return nil, err + } + i.ObjNum, err = strconv.ParseInt(s[2], 10, 64) + if err != nil { + return nil, err + } + i.ObjSize, err = strconv.ParseInt(s[3], 10, 64) + if err != nil { + return nil, err + } + i.ObjPerSlab, err = strconv.ParseInt(s[4], 10, 64) + if err != nil { + return nil, err + } + i.PagesPerSlab, err = strconv.ParseInt(s[5], 10, 64) + if err != nil { + return nil, err + } + i.Limit, err = strconv.ParseInt(s[8], 10, 64) + if err != nil { + return nil, err + } + i.Batch, err = strconv.ParseInt(s[9], 10, 64) + if err != nil { + return nil, err + } + i.SharedFactor, err = strconv.ParseInt(s[10], 10, 64) + if err != nil { + return nil, err + } + i.SlabActive, err = strconv.ParseInt(s[13], 10, 64) + if err != nil { + return nil, err + } + i.SlabNum, err = strconv.ParseInt(s[14], 10, 64) + if err != nil { + return nil, err + } + i.SharedAvail, err = strconv.ParseInt(s[15], 10, 64) + if err != nil { + return nil, err + } + return i, nil +} + +// parseSlabInfo21 is used to parse a slabinfo 2.1 file. +func parseSlabInfo21(r *bytes.Reader) (SlabInfo, error) { + scanner := bufio.NewScanner(r) + s := SlabInfo{Slabs: []*Slab{}} + for scanner.Scan() { + line := scanner.Text() + if !shouldParseSlab(line) { + continue + } + slab, err := parseV21SlabEntry(line) + if err != nil { + return s, err + } + s.Slabs = append(s.Slabs, slab) + } + return s, nil +} + +// SlabInfo reads data from /proc/slabinfo +func (fs FS) SlabInfo() (SlabInfo, error) { + // TODO: Consider passing options to allow for parsing different + // slabinfo versions. However, slabinfo 2.1 has been stable since + // kernel 2.6.10 and later. + data, err := util.ReadFileNoStat(fs.proc.Path("slabinfo")) + if err != nil { + return SlabInfo{}, err + } + + return parseSlabInfo21(bytes.NewReader(data)) +} diff --git a/vendor/github.com/prometheus/procfs/stat.go b/vendor/github.com/prometheus/procfs/stat.go index b2a6fc994c..6d8727541e 100644 --- a/vendor/github.com/prometheus/procfs/stat.go +++ b/vendor/github.com/prometheus/procfs/stat.go @@ -93,10 +93,10 @@ func parseCPUStat(line string) (CPUStat, int64, error) { &cpuStat.Guest, &cpuStat.GuestNice) if err != nil && err != io.EOF { - return CPUStat{}, -1, fmt.Errorf("couldn't parse %s (cpu): %s", line, err) + return CPUStat{}, -1, fmt.Errorf("couldn't parse %q (cpu): %w", line, err) } if count == 0 { - return CPUStat{}, -1, fmt.Errorf("couldn't parse %s (cpu): 0 elements parsed", line) + return CPUStat{}, -1, fmt.Errorf("couldn't parse %q (cpu): 0 elements parsed", line) } cpuStat.User /= userHZ @@ -116,7 +116,7 @@ func parseCPUStat(line string) (CPUStat, int64, error) { cpuID, err := strconv.ParseInt(cpu[3:], 10, 64) if err != nil { - return CPUStat{}, -1, fmt.Errorf("couldn't parse %s (cpu/cpuid): %s", line, err) + return CPUStat{}, -1, fmt.Errorf("couldn't parse %q (cpu/cpuid): %w", line, err) } return cpuStat, cpuID, nil @@ -136,7 +136,7 @@ func parseSoftIRQStat(line string) (SoftIRQStat, uint64, error) { &softIRQStat.Hrtimer, &softIRQStat.Rcu) if err != nil { - return SoftIRQStat{}, 0, fmt.Errorf("couldn't parse %s (softirq): %s", line, err) + return SoftIRQStat{}, 0, fmt.Errorf("couldn't parse %q (softirq): %w", line, err) } return softIRQStat, total, nil @@ -184,34 +184,34 @@ func (fs FS) Stat() (Stat, error) { switch { case parts[0] == "btime": if stat.BootTime, err = strconv.ParseUint(parts[1], 10, 64); err != nil { - return Stat{}, fmt.Errorf("couldn't parse %s (btime): %s", parts[1], err) + return Stat{}, fmt.Errorf("couldn't parse %q (btime): %w", parts[1], err) } case parts[0] == "intr": if stat.IRQTotal, err = strconv.ParseUint(parts[1], 10, 64); err != nil { - return Stat{}, fmt.Errorf("couldn't parse %s (intr): %s", parts[1], err) + return Stat{}, fmt.Errorf("couldn't parse %q (intr): %w", parts[1], err) } numberedIRQs := parts[2:] stat.IRQ = make([]uint64, len(numberedIRQs)) for i, count := range numberedIRQs { if stat.IRQ[i], err = strconv.ParseUint(count, 10, 64); err != nil { - return Stat{}, fmt.Errorf("couldn't parse %s (intr%d): %s", count, i, err) + return Stat{}, fmt.Errorf("couldn't parse %q (intr%d): %w", count, i, err) } } case parts[0] == "ctxt": if stat.ContextSwitches, err = strconv.ParseUint(parts[1], 10, 64); err != nil { - return Stat{}, fmt.Errorf("couldn't parse %s (ctxt): %s", parts[1], err) + return Stat{}, fmt.Errorf("couldn't parse %q (ctxt): %w", parts[1], err) } case parts[0] == "processes": if stat.ProcessCreated, err = strconv.ParseUint(parts[1], 10, 64); err != nil { - return Stat{}, fmt.Errorf("couldn't parse %s (processes): %s", parts[1], err) + return Stat{}, fmt.Errorf("couldn't parse %q (processes): %w", parts[1], err) } case parts[0] == "procs_running": if stat.ProcessesRunning, err = strconv.ParseUint(parts[1], 10, 64); err != nil { - return Stat{}, fmt.Errorf("couldn't parse %s (procs_running): %s", parts[1], err) + return Stat{}, fmt.Errorf("couldn't parse %q (procs_running): %w", parts[1], err) } case parts[0] == "procs_blocked": if stat.ProcessesBlocked, err = strconv.ParseUint(parts[1], 10, 64); err != nil { - return Stat{}, fmt.Errorf("couldn't parse %s (procs_blocked): %s", parts[1], err) + return Stat{}, fmt.Errorf("couldn't parse %q (procs_blocked): %w", parts[1], err) } case parts[0] == "softirq": softIRQStats, total, err := parseSoftIRQStat(line) @@ -237,7 +237,7 @@ func (fs FS) Stat() (Stat, error) { } if err := scanner.Err(); err != nil { - return Stat{}, fmt.Errorf("couldn't parse %s: %s", fileName, err) + return Stat{}, fmt.Errorf("couldn't parse %q: %w", fileName, err) } return stat, nil diff --git a/vendor/github.com/prometheus/procfs/xfrm.go b/vendor/github.com/prometheus/procfs/xfrm.go index 30aa417d53..eed07c7d77 100644 --- a/vendor/github.com/prometheus/procfs/xfrm.go +++ b/vendor/github.com/prometheus/procfs/xfrm.go @@ -112,8 +112,7 @@ func (fs FS) NewXfrmStat() (XfrmStat, error) { fields := strings.Fields(s.Text()) if len(fields) != 2 { - return XfrmStat{}, fmt.Errorf( - "couldn't parse %s line %s", file.Name(), s.Text()) + return XfrmStat{}, fmt.Errorf("couldn't parse %q line %q", file.Name(), s.Text()) } name := fields[0] diff --git a/vendor/github.com/prometheus/procfs/zoneinfo.go b/vendor/github.com/prometheus/procfs/zoneinfo.go index e941503d5c..0b9bb6796b 100644 --- a/vendor/github.com/prometheus/procfs/zoneinfo.go +++ b/vendor/github.com/prometheus/procfs/zoneinfo.go @@ -74,11 +74,11 @@ var nodeZoneRE = regexp.MustCompile(`(\d+), zone\s+(\w+)`) func (fs FS) Zoneinfo() ([]Zoneinfo, error) { data, err := ioutil.ReadFile(fs.proc.Path("zoneinfo")) if err != nil { - return nil, fmt.Errorf("error reading zoneinfo %s: %s", fs.proc.Path("zoneinfo"), err) + return nil, fmt.Errorf("error reading zoneinfo %q: %w", fs.proc.Path("zoneinfo"), err) } zoneinfo, err := parseZoneinfo(data) if err != nil { - return nil, fmt.Errorf("error parsing zoneinfo %s: %s", fs.proc.Path("zoneinfo"), err) + return nil, fmt.Errorf("error parsing zoneinfo %q: %w", fs.proc.Path("zoneinfo"), err) } return zoneinfo, nil } diff --git a/vendor/github.com/tilt-dev/tilt-apiserver/pkg/server/builder/resource/resourcerest/interface.go b/vendor/github.com/tilt-dev/tilt-apiserver/pkg/server/builder/resource/resourcerest/interface.go index d04523171b..3c5a42da45 100644 --- a/vendor/github.com/tilt-dev/tilt-apiserver/pkg/server/builder/resource/resourcerest/interface.go +++ b/vendor/github.com/tilt-dev/tilt-apiserver/pkg/server/builder/resource/resourcerest/interface.go @@ -41,11 +41,6 @@ type Connecter = rest.Connecter // Go prevents embedded interfaces that implement the same method. type CreaterUpdater = rest.CreaterUpdater -// Exporter is an object that knows how to strip a RESTful resource for export. A store should implement this interface -// if export is generally supported for that type. Errors can still be returned during the actual Export when certain -// instances of the type are not exportable. -type Exporter = rest.Exporter - // Getter if implemented will expose GET endpoints for the resource and publish them in the Kubernetes // discovery service and OpenAPI. // diff --git a/vendor/github.com/xlab/treeprint/LICENSE b/vendor/github.com/xlab/treeprint/LICENSE new file mode 100644 index 0000000000..5ab533ad2f --- /dev/null +++ b/vendor/github.com/xlab/treeprint/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) +Copyright © 2016 Maxim Kupriianov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/xlab/treeprint/README.md b/vendor/github.com/xlab/treeprint/README.md new file mode 100644 index 0000000000..6f1628295c --- /dev/null +++ b/vendor/github.com/xlab/treeprint/README.md @@ -0,0 +1,128 @@ +treeprint [![GoDoc](https://godoc.org/github.com/xlab/treeprint?status.svg)](https://godoc.org/github.com/xlab/treeprint) ![test coverage](https://img.shields.io/badge/coverage-68.6%25-green.svg) +========= + +Package `treeprint` provides a simple ASCII tree composing tool. + +SYSTEME FIGURE + +If you are familiar with the [tree](http://mama.indstate.edu/users/ice/tree/) utility that is a recursive directory listing command that produces a depth indented listing of files, then you have the idea of what it would look like. + +On my system the command yields the following + +``` + $ tree +. +├── LICENSE +├── README.md +├── treeprint.go +└── treeprint_test.go + +0 directories, 4 files +``` + +and I'd like to have the same format for my Go data structures when I print them. + +## Installation + +``` +$ go get github.com/xlab/treeprint +``` + +## Concept of work + +The general idea is that you initialise a new tree with `treeprint.New()` and then add nodes and +branches into it. Use `AddNode()` when you want add a node on the same level as the target or +use `AddBranch()` when you want to go a level deeper. So `tree.AddBranch().AddNode().AddNode()` would +create a new level with two distinct nodes on it. So `tree.AddNode().AddNode()` is a flat thing and +`tree.AddBranch().AddBranch().AddBranch()` is a high thing. Use `String()` or `Bytes()` on a branch +to render a subtree, or use it on the root to print the whole tree. + +The utility will yield Unicode-friendly trees. The output is predictable and there is no platform-dependent exceptions, so if you have issues with displaying the tree in the console, all platform-related transformations can be done after the tree has been rendered: [an example](https://github.com/xlab/treeprint/issues/2#issuecomment-324944141) for Asian locales. + +## Use cases + +When you want to render a complex data structure: + +```go +func main() { + tree := treeprint.New() + + // create a new branch in the root + one := tree.AddBranch("one") + + // add some nodes + one.AddNode("subnode1").AddNode("subnode2") + + // create a new sub-branch + one.AddBranch("two"). + AddNode("subnode1").AddNode("subnode2"). // add some nodes + AddBranch("three"). // add a new sub-branch + AddNode("subnode1").AddNode("subnode2") // add some nodes too + + // add one more node that should surround the inner branch + one.AddNode("subnode3") + + // add a new node to the root + tree.AddNode("outernode") + + fmt.Println(tree.String()) +} +``` + +Will give you: + +``` +. +├── one +│   ├── subnode1 +│   ├── subnode2 +│   ├── two +│   │   ├── subnode1 +│   │   ├── subnode2 +│   │   └── three +│   │   ├── subnode1 +│   │   └── subnode2 +│   └── subnode3 +└── outernode +``` + +Another case, when you have to make a tree where any leaf may have some meta-data (as `tree` is capable of it): + +```go +func main { + tree := treeprint.New() + + tree.AddNode("Dockerfile") + tree.AddNode("Makefile") + tree.AddNode("aws.sh") + tree.AddMetaBranch(" 204", "bin"). + AddNode("dbmaker").AddNode("someserver").AddNode("testtool") + tree.AddMetaBranch(" 374", "deploy"). + AddNode("Makefile").AddNode("bootstrap.sh") + tree.AddMetaNode("122K", "testtool.a") + + fmt.Println(tree.String()) +} +``` + +Output: + +``` +. +├── Dockerfile +├── Makefile +├── aws.sh +├── [ 204] bin +│   ├── dbmaker +│   ├── someserver +│   └── testtool +├── [ 374] deploy +│   ├── Makefile +│   └── bootstrap.sh +└── [122K] testtool.a +``` + +Yay! So it works. + +## License +MIT diff --git a/vendor/github.com/xlab/treeprint/helpers.go b/vendor/github.com/xlab/treeprint/helpers.go new file mode 100644 index 0000000000..a091a5a0f0 --- /dev/null +++ b/vendor/github.com/xlab/treeprint/helpers.go @@ -0,0 +1,47 @@ +package treeprint + +import ( + "reflect" + "strings" +) + +func isEmpty(v *reflect.Value) bool { + switch v.Kind() { + case reflect.Array, reflect.Map, reflect.Slice, reflect.String: + return v.Len() == 0 + case reflect.Bool: + return !v.Bool() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.Interface, reflect.Ptr: + return v.IsNil() + } + return false +} + +func tagSpec(tag string) (name string, omit bool) { + parts := strings.Split(tag, ",") + if len(parts) < 2 { + return tag, false + } + if parts[1] == "omitempty" { + return parts[0], true + } + return parts[0], false +} + +func filterTags(tag reflect.StructTag) string { + tags := strings.Split(string(tag), " ") + filtered := make([]string, 0, len(tags)) + for i := range tags { + if strings.HasPrefix(tags[i], "tree:") { + continue + } + filtered = append(filtered, tags[i]) + } + return strings.Join(filtered, " ") +} diff --git a/vendor/github.com/xlab/treeprint/struct.go b/vendor/github.com/xlab/treeprint/struct.go new file mode 100644 index 0000000000..4d5cc82540 --- /dev/null +++ b/vendor/github.com/xlab/treeprint/struct.go @@ -0,0 +1,322 @@ +package treeprint + +import ( + "fmt" + "reflect" + "strings" +) + +type StructTreeOption int + +const ( + StructNameTree StructTreeOption = iota + StructValueTree + StructTagTree + StructTypeTree + StructTypeSizeTree +) + +func FromStruct(v interface{}, opt ...StructTreeOption) (Tree, error) { + var treeOpt StructTreeOption + if len(opt) > 0 { + treeOpt = opt[0] + } + switch treeOpt { + case StructNameTree: + tree := New() + err := nameTree(tree, v) + return tree, err + case StructValueTree: + tree := New() + err := valueTree(tree, v) + return tree, err + case StructTagTree: + tree := New() + err := tagTree(tree, v) + return tree, err + case StructTypeTree: + tree := New() + err := typeTree(tree, v) + return tree, err + case StructTypeSizeTree: + tree := New() + err := typeSizeTree(tree, v) + return tree, err + default: + err := fmt.Errorf("treeprint: invalid StructTreeOption %v", treeOpt) + return nil, err + } +} + +type FmtFunc func(name string, v interface{}) (string, bool) + +func FromStructWithMeta(v interface{}, fmtFunc FmtFunc) (Tree, error) { + if fmtFunc == nil { + tree := New() + err := nameTree(tree, v) + return tree, err + } + tree := New() + err := metaTree(tree, v, fmtFunc) + return tree, err +} + +func Repr(v interface{}) string { + tree := New() + vType := reflect.TypeOf(v) + vValue := reflect.ValueOf(v) + _, val, isStruct := getValue(vType, &vValue) + if !isStruct { + return fmt.Sprintf("%+v", val.Interface()) + } + err := valueTree(tree, val.Interface()) + if err != nil { + return err.Error() + } + return tree.String() +} + +func nameTree(tree Tree, v interface{}) error { + typ, val, err := checkType(v) + if err != nil { + return err + } + fields := typ.NumField() + for i := 0; i < fields; i++ { + field := typ.Field(i) + fieldValue := val.Field(i) + name, skip, omit := getMeta(field.Name, field.Tag) + if skip || omit && isEmpty(&fieldValue) { + continue + } + typ, val, isStruct := getValue(field.Type, &fieldValue) + if !isStruct { + tree.AddNode(name) + continue + } else if subNum := typ.NumField(); subNum == 0 { + tree.AddNode(name) + continue + } + branch := tree.AddBranch(name) + if err := nameTree(branch, val.Interface()); err != nil { + err := fmt.Errorf("%v on struct branch %s", err, name) + return err + } + } + return nil +} + +func getMeta(fieldName string, tag reflect.StructTag) (name string, skip, omit bool) { + if tagStr := tag.Get("tree"); len(tagStr) > 0 { + name, omit = tagSpec(tagStr) + } + if name == "-" { + return fieldName, true, omit + } + if len(name) == 0 { + name = fieldName + } else if trimmed := strings.TrimSpace(name); len(trimmed) == 0 { + name = fieldName + } + return +} + +func valueTree(tree Tree, v interface{}) error { + typ, val, err := checkType(v) + if err != nil { + return err + } + fields := typ.NumField() + for i := 0; i < fields; i++ { + field := typ.Field(i) + fieldValue := val.Field(i) + name, skip, omit := getMeta(field.Name, field.Tag) + if skip || omit && isEmpty(&fieldValue) { + continue + } + typ, val, isStruct := getValue(field.Type, &fieldValue) + if !isStruct { + tree.AddMetaNode(val.Interface(), name) + continue + } else if subNum := typ.NumField(); subNum == 0 { + tree.AddMetaNode(val.Interface(), name) + continue + } + branch := tree.AddBranch(name) + if err := valueTree(branch, val.Interface()); err != nil { + err := fmt.Errorf("%v on struct branch %s", err, name) + return err + } + } + return nil +} + +func tagTree(tree Tree, v interface{}) error { + typ, val, err := checkType(v) + if err != nil { + return err + } + fields := typ.NumField() + for i := 0; i < fields; i++ { + field := typ.Field(i) + fieldValue := val.Field(i) + name, skip, omit := getMeta(field.Name, field.Tag) + if skip || omit && isEmpty(&fieldValue) { + continue + } + filteredTag := filterTags(field.Tag) + typ, val, isStruct := getValue(field.Type, &fieldValue) + if !isStruct { + tree.AddMetaNode(filteredTag, name) + continue + } else if subNum := typ.NumField(); subNum == 0 { + tree.AddMetaNode(filteredTag, name) + continue + } + branch := tree.AddMetaBranch(filteredTag, name) + if err := tagTree(branch, val.Interface()); err != nil { + err := fmt.Errorf("%v on struct branch %s", err, name) + return err + } + } + return nil +} + +func typeTree(tree Tree, v interface{}) error { + typ, val, err := checkType(v) + if err != nil { + return err + } + fields := typ.NumField() + for i := 0; i < fields; i++ { + field := typ.Field(i) + fieldValue := val.Field(i) + name, skip, omit := getMeta(field.Name, field.Tag) + if skip || omit && isEmpty(&fieldValue) { + continue + } + typ, val, isStruct := getValue(field.Type, &fieldValue) + typename := fmt.Sprintf("%T", val.Interface()) + if !isStruct { + tree.AddMetaNode(typename, name) + continue + } else if subNum := typ.NumField(); subNum == 0 { + tree.AddMetaNode(typename, name) + continue + } + branch := tree.AddMetaBranch(typename, name) + if err := typeTree(branch, val.Interface()); err != nil { + err := fmt.Errorf("%v on struct branch %s", err, name) + return err + } + } + return nil +} + +func typeSizeTree(tree Tree, v interface{}) error { + typ, val, err := checkType(v) + if err != nil { + return err + } + fields := typ.NumField() + for i := 0; i < fields; i++ { + field := typ.Field(i) + fieldValue := val.Field(i) + name, skip, omit := getMeta(field.Name, field.Tag) + if skip || omit && isEmpty(&fieldValue) { + continue + } + typ, val, isStruct := getValue(field.Type, &fieldValue) + typesize := typ.Size() + if !isStruct { + tree.AddMetaNode(typesize, name) + continue + } else if subNum := typ.NumField(); subNum == 0 { + tree.AddMetaNode(typesize, name) + continue + } + branch := tree.AddMetaBranch(typesize, name) + if err := typeSizeTree(branch, val.Interface()); err != nil { + err := fmt.Errorf("%v on struct branch %s", err, name) + return err + } + } + return nil +} + +func metaTree(tree Tree, v interface{}, fmtFunc FmtFunc) error { + typ, val, err := checkType(v) + if err != nil { + return err + } + fields := typ.NumField() + for i := 0; i < fields; i++ { + field := typ.Field(i) + fieldValue := val.Field(i) + name, skip, omit := getMeta(field.Name, field.Tag) + if skip || omit && isEmpty(&fieldValue) { + continue + } + typ, val, isStruct := getValue(field.Type, &fieldValue) + formatted, show := fmtFunc(name, val.Interface()) + if !isStruct { + if show { + tree.AddMetaNode(formatted, name) + continue + } + tree.AddNode(name) + continue + } else if subNum := typ.NumField(); subNum == 0 { + if show { + tree.AddMetaNode(formatted, name) + continue + } + tree.AddNode(name) + continue + } + var branch Tree + if show { + branch = tree.AddMetaBranch(formatted, name) + } else { + branch = tree.AddBranch(name) + } + if err := metaTree(branch, val.Interface(), fmtFunc); err != nil { + err := fmt.Errorf("%v on struct branch %s", err, name) + return err + } + } + return nil +} + +func getValue(typ reflect.Type, val *reflect.Value) (reflect.Type, *reflect.Value, bool) { + switch typ.Kind() { + case reflect.Ptr: + typ = typ.Elem() + if typ.Kind() == reflect.Struct { + elem := val.Elem() + return typ, &elem, true + } + case reflect.Struct: + return typ, val, true + } + return typ, val, false +} + +func checkType(v interface{}) (reflect.Type, *reflect.Value, error) { + typ := reflect.TypeOf(v) + val := reflect.ValueOf(v) + switch typ.Kind() { + case reflect.Ptr: + typ = typ.Elem() + if typ.Kind() != reflect.Struct { + err := fmt.Errorf("treeprint: %T is not a struct we could work with", v) + return nil, nil, err + } + val = val.Elem() + case reflect.Struct: + default: + err := fmt.Errorf("treeprint: %T is not a struct we could work with", v) + return nil, nil, err + } + return typ, &val, nil +} diff --git a/vendor/github.com/xlab/treeprint/treeprint.go b/vendor/github.com/xlab/treeprint/treeprint.go new file mode 100644 index 0000000000..8876f7e566 --- /dev/null +++ b/vendor/github.com/xlab/treeprint/treeprint.go @@ -0,0 +1,215 @@ +// Package treeprint provides a simple ASCII tree composing tool. +package treeprint + +import ( + "bytes" + "fmt" + "io" + "reflect" +) + +type Value interface{} +type MetaValue interface{} + +// Tree represents a tree structure with leaf-nodes and branch-nodes. +type Tree interface { + // AddNode adds a new node to a branch. + AddNode(v Value) Tree + // AddMetaNode adds a new node with meta value provided to a branch. + AddMetaNode(meta MetaValue, v Value) Tree + // AddBranch adds a new branch node (a level deeper). + AddBranch(v Value) Tree + // AddMetaBranch adds a new branch node (a level deeper) with meta value provided. + AddMetaBranch(meta MetaValue, v Value) Tree + // Branch converts a leaf-node to a branch-node, + // applying this on a branch-node does no effect. + Branch() Tree + // FindByMeta finds a node whose meta value matches the provided one by reflect.DeepEqual, + // returns nil if not found. + FindByMeta(meta MetaValue) Tree + // FindByValue finds a node whose value matches the provided one by reflect.DeepEqual, + // returns nil if not found. + FindByValue(value Value) Tree + // returns the last node of a tree + FindLastNode() Tree + // String renders the tree or subtree as a string. + String() string + // Bytes renders the tree or subtree as byteslice. + Bytes() []byte + + SetValue(value Value) + SetMetaValue(meta MetaValue) +} + +type node struct { + Root *node + Meta MetaValue + Value Value + Nodes []*node +} + +func (n *node) FindLastNode() Tree { + ns := n.Nodes + n = ns[len(ns)-1] + return n +} + +func (n *node) AddNode(v Value) Tree { + n.Nodes = append(n.Nodes, &node{ + Root: n, + Value: v, + }) + if n.Root != nil { + return n.Root + } + return n +} + +func (n *node) AddMetaNode(meta MetaValue, v Value) Tree { + n.Nodes = append(n.Nodes, &node{ + Root: n, + Meta: meta, + Value: v, + }) + if n.Root != nil { + return n.Root + } + return n +} + +func (n *node) AddBranch(v Value) Tree { + branch := &node{ + Value: v, + } + n.Nodes = append(n.Nodes, branch) + return branch +} + +func (n *node) AddMetaBranch(meta MetaValue, v Value) Tree { + branch := &node{ + Meta: meta, + Value: v, + } + n.Nodes = append(n.Nodes, branch) + return branch +} + +func (n *node) Branch() Tree { + n.Root = nil + return n +} + +func (n *node) FindByMeta(meta MetaValue) Tree { + for _, node := range n.Nodes { + if reflect.DeepEqual(node.Meta, meta) { + return node + } + if v := node.FindByMeta(meta); v != nil { + return v + } + } + return nil +} + +func (n *node) FindByValue(value Value) Tree { + for _, node := range n.Nodes { + if reflect.DeepEqual(node.Value, value) { + return node + } + if v := node.FindByMeta(value); v != nil { + return v + } + } + return nil +} + +func (n *node) Bytes() []byte { + buf := new(bytes.Buffer) + level := 0 + var levelsEnded []int + if n.Root == nil { + if n.Meta != nil { + buf.WriteString(fmt.Sprintf("[%v] %v", n.Meta, n.Value)) + } else { + buf.WriteString(fmt.Sprintf("%v",n.Value)) + } + buf.WriteByte('\n') + } else { + edge := EdgeTypeMid + if len(n.Nodes) == 0 { + edge = EdgeTypeEnd + levelsEnded = append(levelsEnded, level) + } + printValues(buf, 0, levelsEnded, edge, n.Meta, n.Value) + } + if len(n.Nodes) > 0 { + printNodes(buf, level, levelsEnded, n.Nodes) + } + return buf.Bytes() +} + +func (n *node) String() string { + return string(n.Bytes()) +} + +func (n *node) SetValue(value Value){ + n.Value = value +} + +func (n *node) SetMetaValue(meta MetaValue){ + n.Meta = meta +} + +func printNodes(wr io.Writer, + level int, levelsEnded []int, nodes []*node) { + + for i, node := range nodes { + edge := EdgeTypeMid + if i == len(nodes)-1 { + levelsEnded = append(levelsEnded, level) + edge = EdgeTypeEnd + } + printValues(wr, level, levelsEnded, edge, node.Meta, node.Value) + if len(node.Nodes) > 0 { + printNodes(wr, level+1, levelsEnded, node.Nodes) + } + } +} + +func printValues(wr io.Writer, + level int, levelsEnded []int, edge EdgeType, meta MetaValue, val Value) { + + for i := 0; i < level; i++ { + if isEnded(levelsEnded, i) { + fmt.Fprint(wr, " ") + continue + } + fmt.Fprintf(wr, "%s   ", EdgeTypeLink) + } + if meta != nil { + fmt.Fprintf(wr, "%s [%v] %v\n", edge, meta, val) + return + } + fmt.Fprintf(wr, "%s %v\n", edge, val) +} + +func isEnded(levelsEnded []int, level int) bool { + for _, l := range levelsEnded { + if l == level { + return true + } + } + return false +} + +type EdgeType string + +var ( + EdgeTypeLink EdgeType = "│" + EdgeTypeMid EdgeType = "├──" + EdgeTypeEnd EdgeType = "└──" +) + +func New() Tree { + return &node{Value: "."} +} diff --git a/vendor/go.uber.org/atomic/.codecov.yml b/vendor/go.uber.org/atomic/.codecov.yml index 6d4d1be7b5..571116cc39 100644 --- a/vendor/go.uber.org/atomic/.codecov.yml +++ b/vendor/go.uber.org/atomic/.codecov.yml @@ -13,3 +13,7 @@ coverage: if_not_found: success # if parent is not found report status as success, error, or failure if_ci_failed: error # if ci fails report status as success, error, or failure +# Also update COVER_IGNORE_PKGS in the Makefile. +ignore: + - /internal/gen-atomicint/ + - /internal/gen-valuewrapper/ diff --git a/vendor/go.uber.org/atomic/.travis.yml b/vendor/go.uber.org/atomic/.travis.yml index 4e73268b60..13d0a4f254 100644 --- a/vendor/go.uber.org/atomic/.travis.yml +++ b/vendor/go.uber.org/atomic/.travis.yml @@ -8,8 +8,8 @@ env: matrix: include: - - go: 1.12.x - - go: 1.13.x + - go: oldstable + - go: stable env: LINT=1 cache: diff --git a/vendor/go.uber.org/atomic/CHANGELOG.md b/vendor/go.uber.org/atomic/CHANGELOG.md index aef8b6ebc4..24c0274dc3 100644 --- a/vendor/go.uber.org/atomic/CHANGELOG.md +++ b/vendor/go.uber.org/atomic/CHANGELOG.md @@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.7.0] - 2020-09-14 +### Added +- Support JSON serialization and deserialization of primitive atomic types. +- Support Text marshalling and unmarshalling for string atomics. + +### Changed +- Disallow incorrect comparison of atomic values in a non-atomic way. + +### Removed +- Remove dependency on `golang.org/x/{lint, tools}`. + ## [1.6.0] - 2020-02-24 ### Changed - Drop library dependency on `golang.org/x/{lint, tools}`. @@ -52,6 +63,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Initial release. +[1.7.0]: https://github.com/uber-go/atomic/compare/v1.6.0...v1.7.0 [1.6.0]: https://github.com/uber-go/atomic/compare/v1.5.1...v1.6.0 [1.5.1]: https://github.com/uber-go/atomic/compare/v1.5.0...v1.5.1 [1.5.0]: https://github.com/uber-go/atomic/compare/v1.4.0...v1.5.0 diff --git a/vendor/go.uber.org/atomic/Makefile b/vendor/go.uber.org/atomic/Makefile index 39af0fb63f..1b1376d425 100644 --- a/vendor/go.uber.org/atomic/Makefile +++ b/vendor/go.uber.org/atomic/Makefile @@ -2,8 +2,16 @@ export GOBIN ?= $(shell pwd)/bin GOLINT = $(GOBIN)/golint +GEN_ATOMICINT = $(GOBIN)/gen-atomicint +GEN_ATOMICWRAPPER = $(GOBIN)/gen-atomicwrapper +STATICCHECK = $(GOBIN)/staticcheck -GO_FILES ?= *.go +GO_FILES ?= $(shell find . '(' -path .git -o -path vendor ')' -prune -o -name '*.go' -print) + +# Also update ignore section in .codecov.yml. +COVER_IGNORE_PKGS = \ + go.uber.org/atomic/internal/gen-atomicint \ + go.uber.org/atomic/internal/gen-atomicwrapper .PHONY: build build: @@ -20,16 +28,51 @@ gofmt: @[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" && cat $(FMT_LOG) && false) $(GOLINT): - go install golang.org/x/lint/golint + cd tools && go install golang.org/x/lint/golint + +$(STATICCHECK): + cd tools && go install honnef.co/go/tools/cmd/staticcheck + +$(GEN_ATOMICWRAPPER): $(wildcard ./internal/gen-atomicwrapper/*) + go build -o $@ ./internal/gen-atomicwrapper + +$(GEN_ATOMICINT): $(wildcard ./internal/gen-atomicint/*) + go build -o $@ ./internal/gen-atomicint .PHONY: golint golint: $(GOLINT) $(GOLINT) ./... +.PHONY: staticcheck +staticcheck: $(STATICCHECK) + $(STATICCHECK) ./... + .PHONY: lint -lint: gofmt golint +lint: gofmt golint staticcheck generatenodirty + +# comma separated list of packages to consider for code coverage. +COVER_PKG = $(shell \ + go list -find ./... | \ + grep -v $(foreach pkg,$(COVER_IGNORE_PKGS),-e "^$(pkg)$$") | \ + paste -sd, -) .PHONY: cover cover: - go test -coverprofile=cover.out -coverpkg ./... -v ./... + go test -coverprofile=cover.out -coverpkg $(COVER_PKG) -v ./... go tool cover -html=cover.out -o cover.html + +.PHONY: generate +generate: $(GEN_ATOMICINT) $(GEN_ATOMICWRAPPER) + go generate ./... + +.PHONY: generatenodirty +generatenodirty: + @[ -z "$$(git status --porcelain)" ] || ( \ + echo "Working tree is dirty. Commit your changes first."; \ + exit 1 ) + @make generate + @status=$$(git status --porcelain); \ + [ -z "$$status" ] || ( \ + echo "Working tree is dirty after `make generate`:"; \ + echo "$$status"; \ + echo "Please ensure that the generated code is up-to-date." ) diff --git a/vendor/go.uber.org/atomic/atomic.go b/vendor/go.uber.org/atomic/atomic.go deleted file mode 100644 index ad5fa0980a..0000000000 --- a/vendor/go.uber.org/atomic/atomic.go +++ /dev/null @@ -1,356 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// Package atomic provides simple wrappers around numerics to enforce atomic -// access. -package atomic - -import ( - "math" - "sync/atomic" - "time" -) - -// Int32 is an atomic wrapper around an int32. -type Int32 struct{ v int32 } - -// NewInt32 creates an Int32. -func NewInt32(i int32) *Int32 { - return &Int32{i} -} - -// Load atomically loads the wrapped value. -func (i *Int32) Load() int32 { - return atomic.LoadInt32(&i.v) -} - -// Add atomically adds to the wrapped int32 and returns the new value. -func (i *Int32) Add(n int32) int32 { - return atomic.AddInt32(&i.v, n) -} - -// Sub atomically subtracts from the wrapped int32 and returns the new value. -func (i *Int32) Sub(n int32) int32 { - return atomic.AddInt32(&i.v, -n) -} - -// Inc atomically increments the wrapped int32 and returns the new value. -func (i *Int32) Inc() int32 { - return i.Add(1) -} - -// Dec atomically decrements the wrapped int32 and returns the new value. -func (i *Int32) Dec() int32 { - return i.Sub(1) -} - -// CAS is an atomic compare-and-swap. -func (i *Int32) CAS(old, new int32) bool { - return atomic.CompareAndSwapInt32(&i.v, old, new) -} - -// Store atomically stores the passed value. -func (i *Int32) Store(n int32) { - atomic.StoreInt32(&i.v, n) -} - -// Swap atomically swaps the wrapped int32 and returns the old value. -func (i *Int32) Swap(n int32) int32 { - return atomic.SwapInt32(&i.v, n) -} - -// Int64 is an atomic wrapper around an int64. -type Int64 struct{ v int64 } - -// NewInt64 creates an Int64. -func NewInt64(i int64) *Int64 { - return &Int64{i} -} - -// Load atomically loads the wrapped value. -func (i *Int64) Load() int64 { - return atomic.LoadInt64(&i.v) -} - -// Add atomically adds to the wrapped int64 and returns the new value. -func (i *Int64) Add(n int64) int64 { - return atomic.AddInt64(&i.v, n) -} - -// Sub atomically subtracts from the wrapped int64 and returns the new value. -func (i *Int64) Sub(n int64) int64 { - return atomic.AddInt64(&i.v, -n) -} - -// Inc atomically increments the wrapped int64 and returns the new value. -func (i *Int64) Inc() int64 { - return i.Add(1) -} - -// Dec atomically decrements the wrapped int64 and returns the new value. -func (i *Int64) Dec() int64 { - return i.Sub(1) -} - -// CAS is an atomic compare-and-swap. -func (i *Int64) CAS(old, new int64) bool { - return atomic.CompareAndSwapInt64(&i.v, old, new) -} - -// Store atomically stores the passed value. -func (i *Int64) Store(n int64) { - atomic.StoreInt64(&i.v, n) -} - -// Swap atomically swaps the wrapped int64 and returns the old value. -func (i *Int64) Swap(n int64) int64 { - return atomic.SwapInt64(&i.v, n) -} - -// Uint32 is an atomic wrapper around an uint32. -type Uint32 struct{ v uint32 } - -// NewUint32 creates a Uint32. -func NewUint32(i uint32) *Uint32 { - return &Uint32{i} -} - -// Load atomically loads the wrapped value. -func (i *Uint32) Load() uint32 { - return atomic.LoadUint32(&i.v) -} - -// Add atomically adds to the wrapped uint32 and returns the new value. -func (i *Uint32) Add(n uint32) uint32 { - return atomic.AddUint32(&i.v, n) -} - -// Sub atomically subtracts from the wrapped uint32 and returns the new value. -func (i *Uint32) Sub(n uint32) uint32 { - return atomic.AddUint32(&i.v, ^(n - 1)) -} - -// Inc atomically increments the wrapped uint32 and returns the new value. -func (i *Uint32) Inc() uint32 { - return i.Add(1) -} - -// Dec atomically decrements the wrapped int32 and returns the new value. -func (i *Uint32) Dec() uint32 { - return i.Sub(1) -} - -// CAS is an atomic compare-and-swap. -func (i *Uint32) CAS(old, new uint32) bool { - return atomic.CompareAndSwapUint32(&i.v, old, new) -} - -// Store atomically stores the passed value. -func (i *Uint32) Store(n uint32) { - atomic.StoreUint32(&i.v, n) -} - -// Swap atomically swaps the wrapped uint32 and returns the old value. -func (i *Uint32) Swap(n uint32) uint32 { - return atomic.SwapUint32(&i.v, n) -} - -// Uint64 is an atomic wrapper around a uint64. -type Uint64 struct{ v uint64 } - -// NewUint64 creates a Uint64. -func NewUint64(i uint64) *Uint64 { - return &Uint64{i} -} - -// Load atomically loads the wrapped value. -func (i *Uint64) Load() uint64 { - return atomic.LoadUint64(&i.v) -} - -// Add atomically adds to the wrapped uint64 and returns the new value. -func (i *Uint64) Add(n uint64) uint64 { - return atomic.AddUint64(&i.v, n) -} - -// Sub atomically subtracts from the wrapped uint64 and returns the new value. -func (i *Uint64) Sub(n uint64) uint64 { - return atomic.AddUint64(&i.v, ^(n - 1)) -} - -// Inc atomically increments the wrapped uint64 and returns the new value. -func (i *Uint64) Inc() uint64 { - return i.Add(1) -} - -// Dec atomically decrements the wrapped uint64 and returns the new value. -func (i *Uint64) Dec() uint64 { - return i.Sub(1) -} - -// CAS is an atomic compare-and-swap. -func (i *Uint64) CAS(old, new uint64) bool { - return atomic.CompareAndSwapUint64(&i.v, old, new) -} - -// Store atomically stores the passed value. -func (i *Uint64) Store(n uint64) { - atomic.StoreUint64(&i.v, n) -} - -// Swap atomically swaps the wrapped uint64 and returns the old value. -func (i *Uint64) Swap(n uint64) uint64 { - return atomic.SwapUint64(&i.v, n) -} - -// Bool is an atomic Boolean. -type Bool struct{ v uint32 } - -// NewBool creates a Bool. -func NewBool(initial bool) *Bool { - return &Bool{boolToInt(initial)} -} - -// Load atomically loads the Boolean. -func (b *Bool) Load() bool { - return truthy(atomic.LoadUint32(&b.v)) -} - -// CAS is an atomic compare-and-swap. -func (b *Bool) CAS(old, new bool) bool { - return atomic.CompareAndSwapUint32(&b.v, boolToInt(old), boolToInt(new)) -} - -// Store atomically stores the passed value. -func (b *Bool) Store(new bool) { - atomic.StoreUint32(&b.v, boolToInt(new)) -} - -// Swap sets the given value and returns the previous value. -func (b *Bool) Swap(new bool) bool { - return truthy(atomic.SwapUint32(&b.v, boolToInt(new))) -} - -// Toggle atomically negates the Boolean and returns the previous value. -func (b *Bool) Toggle() bool { - for { - old := b.Load() - if b.CAS(old, !old) { - return old - } - } -} - -func truthy(n uint32) bool { - return n == 1 -} - -func boolToInt(b bool) uint32 { - if b { - return 1 - } - return 0 -} - -// Float64 is an atomic wrapper around float64. -type Float64 struct { - v uint64 -} - -// NewFloat64 creates a Float64. -func NewFloat64(f float64) *Float64 { - return &Float64{math.Float64bits(f)} -} - -// Load atomically loads the wrapped value. -func (f *Float64) Load() float64 { - return math.Float64frombits(atomic.LoadUint64(&f.v)) -} - -// Store atomically stores the passed value. -func (f *Float64) Store(s float64) { - atomic.StoreUint64(&f.v, math.Float64bits(s)) -} - -// Add atomically adds to the wrapped float64 and returns the new value. -func (f *Float64) Add(s float64) float64 { - for { - old := f.Load() - new := old + s - if f.CAS(old, new) { - return new - } - } -} - -// Sub atomically subtracts from the wrapped float64 and returns the new value. -func (f *Float64) Sub(s float64) float64 { - return f.Add(-s) -} - -// CAS is an atomic compare-and-swap. -func (f *Float64) CAS(old, new float64) bool { - return atomic.CompareAndSwapUint64(&f.v, math.Float64bits(old), math.Float64bits(new)) -} - -// Duration is an atomic wrapper around time.Duration -// https://godoc.org/time#Duration -type Duration struct { - v Int64 -} - -// NewDuration creates a Duration. -func NewDuration(d time.Duration) *Duration { - return &Duration{v: *NewInt64(int64(d))} -} - -// Load atomically loads the wrapped value. -func (d *Duration) Load() time.Duration { - return time.Duration(d.v.Load()) -} - -// Store atomically stores the passed value. -func (d *Duration) Store(n time.Duration) { - d.v.Store(int64(n)) -} - -// Add atomically adds to the wrapped time.Duration and returns the new value. -func (d *Duration) Add(n time.Duration) time.Duration { - return time.Duration(d.v.Add(int64(n))) -} - -// Sub atomically subtracts from the wrapped time.Duration and returns the new value. -func (d *Duration) Sub(n time.Duration) time.Duration { - return time.Duration(d.v.Sub(int64(n))) -} - -// Swap atomically swaps the wrapped time.Duration and returns the old value. -func (d *Duration) Swap(n time.Duration) time.Duration { - return time.Duration(d.v.Swap(int64(n))) -} - -// CAS is an atomic compare-and-swap. -func (d *Duration) CAS(old, new time.Duration) bool { - return d.v.CAS(int64(old), int64(new)) -} - -// Value shadows the type of the same name from sync/atomic -// https://godoc.org/sync/atomic#Value -type Value struct{ atomic.Value } diff --git a/vendor/go.uber.org/atomic/bool.go b/vendor/go.uber.org/atomic/bool.go new file mode 100644 index 0000000000..9cf1914b1f --- /dev/null +++ b/vendor/go.uber.org/atomic/bool.go @@ -0,0 +1,81 @@ +// @generated Code generated by gen-atomicwrapper. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" +) + +// Bool is an atomic type-safe wrapper for bool values. +type Bool struct { + _ nocmp // disallow non-atomic comparison + + v Uint32 +} + +var _zeroBool bool + +// NewBool creates a new Bool. +func NewBool(v bool) *Bool { + x := &Bool{} + if v != _zeroBool { + x.Store(v) + } + return x +} + +// Load atomically loads the wrapped bool. +func (x *Bool) Load() bool { + return truthy(x.v.Load()) +} + +// Store atomically stores the passed bool. +func (x *Bool) Store(v bool) { + x.v.Store(boolToInt(v)) +} + +// CAS is an atomic compare-and-swap for bool values. +func (x *Bool) CAS(o, n bool) bool { + return x.v.CAS(boolToInt(o), boolToInt(n)) +} + +// Swap atomically stores the given bool and returns the old +// value. +func (x *Bool) Swap(o bool) bool { + return truthy(x.v.Swap(boolToInt(o))) +} + +// MarshalJSON encodes the wrapped bool into JSON. +func (x *Bool) MarshalJSON() ([]byte, error) { + return json.Marshal(x.Load()) +} + +// UnmarshalJSON decodes a bool from JSON. +func (x *Bool) UnmarshalJSON(b []byte) error { + var v bool + if err := json.Unmarshal(b, &v); err != nil { + return err + } + x.Store(v) + return nil +} diff --git a/vendor/go.uber.org/atomic/bool_ext.go b/vendor/go.uber.org/atomic/bool_ext.go new file mode 100644 index 0000000000..c7bf7a827a --- /dev/null +++ b/vendor/go.uber.org/atomic/bool_ext.go @@ -0,0 +1,53 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "strconv" +) + +//go:generate bin/gen-atomicwrapper -name=Bool -type=bool -wrapped=Uint32 -pack=boolToInt -unpack=truthy -cas -swap -json -file=bool.go + +func truthy(n uint32) bool { + return n == 1 +} + +func boolToInt(b bool) uint32 { + if b { + return 1 + } + return 0 +} + +// Toggle atomically negates the Boolean and returns the previous value. +func (b *Bool) Toggle() bool { + for { + old := b.Load() + if b.CAS(old, !old) { + return old + } + } +} + +// String encodes the wrapped value as a string. +func (b *Bool) String() string { + return strconv.FormatBool(b.Load()) +} diff --git a/vendor/go.uber.org/atomic/doc.go b/vendor/go.uber.org/atomic/doc.go new file mode 100644 index 0000000000..ae7390ee68 --- /dev/null +++ b/vendor/go.uber.org/atomic/doc.go @@ -0,0 +1,23 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// Package atomic provides simple wrappers around numerics to enforce atomic +// access. +package atomic diff --git a/vendor/go.uber.org/atomic/duration.go b/vendor/go.uber.org/atomic/duration.go new file mode 100644 index 0000000000..027cfcb20b --- /dev/null +++ b/vendor/go.uber.org/atomic/duration.go @@ -0,0 +1,82 @@ +// @generated Code generated by gen-atomicwrapper. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "time" +) + +// Duration is an atomic type-safe wrapper for time.Duration values. +type Duration struct { + _ nocmp // disallow non-atomic comparison + + v Int64 +} + +var _zeroDuration time.Duration + +// NewDuration creates a new Duration. +func NewDuration(v time.Duration) *Duration { + x := &Duration{} + if v != _zeroDuration { + x.Store(v) + } + return x +} + +// Load atomically loads the wrapped time.Duration. +func (x *Duration) Load() time.Duration { + return time.Duration(x.v.Load()) +} + +// Store atomically stores the passed time.Duration. +func (x *Duration) Store(v time.Duration) { + x.v.Store(int64(v)) +} + +// CAS is an atomic compare-and-swap for time.Duration values. +func (x *Duration) CAS(o, n time.Duration) bool { + return x.v.CAS(int64(o), int64(n)) +} + +// Swap atomically stores the given time.Duration and returns the old +// value. +func (x *Duration) Swap(o time.Duration) time.Duration { + return time.Duration(x.v.Swap(int64(o))) +} + +// MarshalJSON encodes the wrapped time.Duration into JSON. +func (x *Duration) MarshalJSON() ([]byte, error) { + return json.Marshal(x.Load()) +} + +// UnmarshalJSON decodes a time.Duration from JSON. +func (x *Duration) UnmarshalJSON(b []byte) error { + var v time.Duration + if err := json.Unmarshal(b, &v); err != nil { + return err + } + x.Store(v) + return nil +} diff --git a/vendor/go.uber.org/atomic/duration_ext.go b/vendor/go.uber.org/atomic/duration_ext.go new file mode 100644 index 0000000000..6273b66bd6 --- /dev/null +++ b/vendor/go.uber.org/atomic/duration_ext.go @@ -0,0 +1,40 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import "time" + +//go:generate bin/gen-atomicwrapper -name=Duration -type=time.Duration -wrapped=Int64 -pack=int64 -unpack=time.Duration -cas -swap -json -imports time -file=duration.go + +// Add atomically adds to the wrapped time.Duration and returns the new value. +func (d *Duration) Add(n time.Duration) time.Duration { + return time.Duration(d.v.Add(int64(n))) +} + +// Sub atomically subtracts from the wrapped time.Duration and returns the new value. +func (d *Duration) Sub(n time.Duration) time.Duration { + return time.Duration(d.v.Sub(int64(n))) +} + +// String encodes the wrapped value as a string. +func (d *Duration) String() string { + return d.Load().String() +} diff --git a/vendor/go.uber.org/atomic/error.go b/vendor/go.uber.org/atomic/error.go index 0489d19bad..a6166fbea0 100644 --- a/vendor/go.uber.org/atomic/error.go +++ b/vendor/go.uber.org/atomic/error.go @@ -1,4 +1,6 @@ -// Copyright (c) 2016 Uber Technologies, Inc. +// @generated Code generated by gen-atomicwrapper. + +// Copyright (c) 2020 Uber Technologies, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -20,36 +22,30 @@ package atomic -// Error is an atomic type-safe wrapper around Value for errors -type Error struct{ v Value } - -// errorHolder is non-nil holder for error object. -// atomic.Value panics on saving nil object, so err object needs to be -// wrapped with valid object first. -type errorHolder struct{ err error } +// Error is an atomic type-safe wrapper for error values. +type Error struct { + _ nocmp // disallow non-atomic comparison -// NewError creates new atomic error object -func NewError(err error) *Error { - e := &Error{} - if err != nil { - e.Store(err) - } - return e + v Value } -// Load atomically loads the wrapped error -func (e *Error) Load() error { - v := e.v.Load() - if v == nil { - return nil +var _zeroError error + +// NewError creates a new Error. +func NewError(v error) *Error { + x := &Error{} + if v != _zeroError { + x.Store(v) } + return x +} - eh := v.(errorHolder) - return eh.err +// Load atomically loads the wrapped error. +func (x *Error) Load() error { + return unpackError(x.v.Load()) } -// Store atomically stores error. -// NOTE: a holder object is allocated on each Store call. -func (e *Error) Store(err error) { - e.v.Store(errorHolder{err: err}) +// Store atomically stores the passed error. +func (x *Error) Store(v error) { + x.v.Store(packError(v)) } diff --git a/vendor/go.uber.org/atomic/error_ext.go b/vendor/go.uber.org/atomic/error_ext.go new file mode 100644 index 0000000000..ffe0be21cb --- /dev/null +++ b/vendor/go.uber.org/atomic/error_ext.go @@ -0,0 +1,39 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +// atomic.Value panics on nil inputs, or if the underlying type changes. +// Stabilize by always storing a custom struct that we control. + +//go:generate bin/gen-atomicwrapper -name=Error -type=error -wrapped=Value -pack=packError -unpack=unpackError -file=error.go + +type packedError struct{ Value error } + +func packError(v error) interface{} { + return packedError{v} +} + +func unpackError(v interface{}) error { + if err, ok := v.(packedError); ok { + return err.Value + } + return nil +} diff --git a/vendor/go.uber.org/atomic/float64.go b/vendor/go.uber.org/atomic/float64.go new file mode 100644 index 0000000000..0719060207 --- /dev/null +++ b/vendor/go.uber.org/atomic/float64.go @@ -0,0 +1,76 @@ +// @generated Code generated by gen-atomicwrapper. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "math" +) + +// Float64 is an atomic type-safe wrapper for float64 values. +type Float64 struct { + _ nocmp // disallow non-atomic comparison + + v Uint64 +} + +var _zeroFloat64 float64 + +// NewFloat64 creates a new Float64. +func NewFloat64(v float64) *Float64 { + x := &Float64{} + if v != _zeroFloat64 { + x.Store(v) + } + return x +} + +// Load atomically loads the wrapped float64. +func (x *Float64) Load() float64 { + return math.Float64frombits(x.v.Load()) +} + +// Store atomically stores the passed float64. +func (x *Float64) Store(v float64) { + x.v.Store(math.Float64bits(v)) +} + +// CAS is an atomic compare-and-swap for float64 values. +func (x *Float64) CAS(o, n float64) bool { + return x.v.CAS(math.Float64bits(o), math.Float64bits(n)) +} + +// MarshalJSON encodes the wrapped float64 into JSON. +func (x *Float64) MarshalJSON() ([]byte, error) { + return json.Marshal(x.Load()) +} + +// UnmarshalJSON decodes a float64 from JSON. +func (x *Float64) UnmarshalJSON(b []byte) error { + var v float64 + if err := json.Unmarshal(b, &v); err != nil { + return err + } + x.Store(v) + return nil +} diff --git a/vendor/go.uber.org/atomic/float64_ext.go b/vendor/go.uber.org/atomic/float64_ext.go new file mode 100644 index 0000000000..927b1add74 --- /dev/null +++ b/vendor/go.uber.org/atomic/float64_ext.go @@ -0,0 +1,47 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import "strconv" + +//go:generate bin/gen-atomicwrapper -name=Float64 -type=float64 -wrapped=Uint64 -pack=math.Float64bits -unpack=math.Float64frombits -cas -json -imports math -file=float64.go + +// Add atomically adds to the wrapped float64 and returns the new value. +func (f *Float64) Add(s float64) float64 { + for { + old := f.Load() + new := old + s + if f.CAS(old, new) { + return new + } + } +} + +// Sub atomically subtracts from the wrapped float64 and returns the new value. +func (f *Float64) Sub(s float64) float64 { + return f.Add(-s) +} + +// String encodes the wrapped value as a string. +func (f *Float64) String() string { + // 'g' is the behavior for floats with %v. + return strconv.FormatFloat(f.Load(), 'g', -1, 64) +} diff --git a/vendor/go.uber.org/atomic/gen.go b/vendor/go.uber.org/atomic/gen.go new file mode 100644 index 0000000000..50d6b24858 --- /dev/null +++ b/vendor/go.uber.org/atomic/gen.go @@ -0,0 +1,26 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +//go:generate bin/gen-atomicint -name=Int32 -wrapped=int32 -file=int32.go +//go:generate bin/gen-atomicint -name=Int64 -wrapped=int64 -file=int64.go +//go:generate bin/gen-atomicint -name=Uint32 -wrapped=uint32 -unsigned -file=uint32.go +//go:generate bin/gen-atomicint -name=Uint64 -wrapped=uint64 -unsigned -file=uint64.go diff --git a/vendor/go.uber.org/atomic/go.mod b/vendor/go.uber.org/atomic/go.mod index a935daebb9..daa7599fe1 100644 --- a/vendor/go.uber.org/atomic/go.mod +++ b/vendor/go.uber.org/atomic/go.mod @@ -3,8 +3,6 @@ module go.uber.org/atomic require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/stretchr/testify v1.3.0 - golang.org/x/lint v0.0.0-20190930215403-16217165b5de - golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c // indirect ) go 1.13 diff --git a/vendor/go.uber.org/atomic/go.sum b/vendor/go.uber.org/atomic/go.sum index 51b2b62afb..4f76e62c1f 100644 --- a/vendor/go.uber.org/atomic/go.sum +++ b/vendor/go.uber.org/atomic/go.sum @@ -7,16 +7,3 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd h1:/e+gpKk9r3dJobndpTytxS2gOy6m5uvpg+ISQoEcusQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c h1:IGkKhmfzcztjm6gYkykvu/NiS8kaqbCWAEWWAyf8J5U= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/vendor/go.uber.org/atomic/int32.go b/vendor/go.uber.org/atomic/int32.go new file mode 100644 index 0000000000..18ae56493e --- /dev/null +++ b/vendor/go.uber.org/atomic/int32.go @@ -0,0 +1,102 @@ +// @generated Code generated by gen-atomicint. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "strconv" + "sync/atomic" +) + +// Int32 is an atomic wrapper around int32. +type Int32 struct { + _ nocmp // disallow non-atomic comparison + + v int32 +} + +// NewInt32 creates a new Int32. +func NewInt32(i int32) *Int32 { + return &Int32{v: i} +} + +// Load atomically loads the wrapped value. +func (i *Int32) Load() int32 { + return atomic.LoadInt32(&i.v) +} + +// Add atomically adds to the wrapped int32 and returns the new value. +func (i *Int32) Add(n int32) int32 { + return atomic.AddInt32(&i.v, n) +} + +// Sub atomically subtracts from the wrapped int32 and returns the new value. +func (i *Int32) Sub(n int32) int32 { + return atomic.AddInt32(&i.v, -n) +} + +// Inc atomically increments the wrapped int32 and returns the new value. +func (i *Int32) Inc() int32 { + return i.Add(1) +} + +// Dec atomically decrements the wrapped int32 and returns the new value. +func (i *Int32) Dec() int32 { + return i.Sub(1) +} + +// CAS is an atomic compare-and-swap. +func (i *Int32) CAS(old, new int32) bool { + return atomic.CompareAndSwapInt32(&i.v, old, new) +} + +// Store atomically stores the passed value. +func (i *Int32) Store(n int32) { + atomic.StoreInt32(&i.v, n) +} + +// Swap atomically swaps the wrapped int32 and returns the old value. +func (i *Int32) Swap(n int32) int32 { + return atomic.SwapInt32(&i.v, n) +} + +// MarshalJSON encodes the wrapped int32 into JSON. +func (i *Int32) MarshalJSON() ([]byte, error) { + return json.Marshal(i.Load()) +} + +// UnmarshalJSON decodes JSON into the wrapped int32. +func (i *Int32) UnmarshalJSON(b []byte) error { + var v int32 + if err := json.Unmarshal(b, &v); err != nil { + return err + } + i.Store(v) + return nil +} + +// String encodes the wrapped value as a string. +func (i *Int32) String() string { + v := i.Load() + return strconv.FormatInt(int64(v), 10) +} diff --git a/vendor/go.uber.org/atomic/int64.go b/vendor/go.uber.org/atomic/int64.go new file mode 100644 index 0000000000..2bcbbfaa95 --- /dev/null +++ b/vendor/go.uber.org/atomic/int64.go @@ -0,0 +1,102 @@ +// @generated Code generated by gen-atomicint. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "strconv" + "sync/atomic" +) + +// Int64 is an atomic wrapper around int64. +type Int64 struct { + _ nocmp // disallow non-atomic comparison + + v int64 +} + +// NewInt64 creates a new Int64. +func NewInt64(i int64) *Int64 { + return &Int64{v: i} +} + +// Load atomically loads the wrapped value. +func (i *Int64) Load() int64 { + return atomic.LoadInt64(&i.v) +} + +// Add atomically adds to the wrapped int64 and returns the new value. +func (i *Int64) Add(n int64) int64 { + return atomic.AddInt64(&i.v, n) +} + +// Sub atomically subtracts from the wrapped int64 and returns the new value. +func (i *Int64) Sub(n int64) int64 { + return atomic.AddInt64(&i.v, -n) +} + +// Inc atomically increments the wrapped int64 and returns the new value. +func (i *Int64) Inc() int64 { + return i.Add(1) +} + +// Dec atomically decrements the wrapped int64 and returns the new value. +func (i *Int64) Dec() int64 { + return i.Sub(1) +} + +// CAS is an atomic compare-and-swap. +func (i *Int64) CAS(old, new int64) bool { + return atomic.CompareAndSwapInt64(&i.v, old, new) +} + +// Store atomically stores the passed value. +func (i *Int64) Store(n int64) { + atomic.StoreInt64(&i.v, n) +} + +// Swap atomically swaps the wrapped int64 and returns the old value. +func (i *Int64) Swap(n int64) int64 { + return atomic.SwapInt64(&i.v, n) +} + +// MarshalJSON encodes the wrapped int64 into JSON. +func (i *Int64) MarshalJSON() ([]byte, error) { + return json.Marshal(i.Load()) +} + +// UnmarshalJSON decodes JSON into the wrapped int64. +func (i *Int64) UnmarshalJSON(b []byte) error { + var v int64 + if err := json.Unmarshal(b, &v); err != nil { + return err + } + i.Store(v) + return nil +} + +// String encodes the wrapped value as a string. +func (i *Int64) String() string { + v := i.Load() + return strconv.FormatInt(int64(v), 10) +} diff --git a/vendor/go.uber.org/atomic/nocmp.go b/vendor/go.uber.org/atomic/nocmp.go new file mode 100644 index 0000000000..a8201cb4a1 --- /dev/null +++ b/vendor/go.uber.org/atomic/nocmp.go @@ -0,0 +1,35 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +// nocmp is an uncomparable struct. Embed this inside another struct to make +// it uncomparable. +// +// type Foo struct { +// nocmp +// // ... +// } +// +// This DOES NOT: +// +// - Disallow shallow copies of structs +// - Disallow comparison of pointers to uncomparable structs +type nocmp [0]func() diff --git a/vendor/go.uber.org/atomic/string.go b/vendor/go.uber.org/atomic/string.go index ede8136fac..225b7a2be0 100644 --- a/vendor/go.uber.org/atomic/string.go +++ b/vendor/go.uber.org/atomic/string.go @@ -1,4 +1,6 @@ -// Copyright (c) 2016 Uber Technologies, Inc. +// @generated Code generated by gen-atomicwrapper. + +// Copyright (c) 2020 Uber Technologies, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -20,30 +22,33 @@ package atomic -// String is an atomic type-safe wrapper around Value for strings. -type String struct{ v Value } +// String is an atomic type-safe wrapper for string values. +type String struct { + _ nocmp // disallow non-atomic comparison + + v Value +} + +var _zeroString string -// NewString creates a String. -func NewString(str string) *String { - s := &String{} - if str != "" { - s.Store(str) +// NewString creates a new String. +func NewString(v string) *String { + x := &String{} + if v != _zeroString { + x.Store(v) } - return s + return x } // Load atomically loads the wrapped string. -func (s *String) Load() string { - v := s.v.Load() - if v == nil { - return "" +func (x *String) Load() string { + if v := x.v.Load(); v != nil { + return v.(string) } - return v.(string) + return _zeroString } // Store atomically stores the passed string. -// Note: Converting the string to an interface{} to store in the Value -// requires an allocation. -func (s *String) Store(str string) { - s.v.Store(str) +func (x *String) Store(v string) { + x.v.Store(v) } diff --git a/vendor/go.uber.org/atomic/string_ext.go b/vendor/go.uber.org/atomic/string_ext.go new file mode 100644 index 0000000000..3a9558213d --- /dev/null +++ b/vendor/go.uber.org/atomic/string_ext.go @@ -0,0 +1,43 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +//go:generate bin/gen-atomicwrapper -name=String -type=string -wrapped=Value -file=string.go + +// String returns the wrapped value. +func (s *String) String() string { + return s.Load() +} + +// MarshalText encodes the wrapped string into a textual form. +// +// This makes it encodable as JSON, YAML, XML, and more. +func (s *String) MarshalText() ([]byte, error) { + return []byte(s.Load()), nil +} + +// UnmarshalText decodes text and replaces the wrapped string with it. +// +// This makes it decodable from JSON, YAML, XML, and more. +func (s *String) UnmarshalText(b []byte) error { + s.Store(string(b)) + return nil +} diff --git a/vendor/go.uber.org/atomic/uint32.go b/vendor/go.uber.org/atomic/uint32.go new file mode 100644 index 0000000000..a973aba1a6 --- /dev/null +++ b/vendor/go.uber.org/atomic/uint32.go @@ -0,0 +1,102 @@ +// @generated Code generated by gen-atomicint. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "strconv" + "sync/atomic" +) + +// Uint32 is an atomic wrapper around uint32. +type Uint32 struct { + _ nocmp // disallow non-atomic comparison + + v uint32 +} + +// NewUint32 creates a new Uint32. +func NewUint32(i uint32) *Uint32 { + return &Uint32{v: i} +} + +// Load atomically loads the wrapped value. +func (i *Uint32) Load() uint32 { + return atomic.LoadUint32(&i.v) +} + +// Add atomically adds to the wrapped uint32 and returns the new value. +func (i *Uint32) Add(n uint32) uint32 { + return atomic.AddUint32(&i.v, n) +} + +// Sub atomically subtracts from the wrapped uint32 and returns the new value. +func (i *Uint32) Sub(n uint32) uint32 { + return atomic.AddUint32(&i.v, ^(n - 1)) +} + +// Inc atomically increments the wrapped uint32 and returns the new value. +func (i *Uint32) Inc() uint32 { + return i.Add(1) +} + +// Dec atomically decrements the wrapped uint32 and returns the new value. +func (i *Uint32) Dec() uint32 { + return i.Sub(1) +} + +// CAS is an atomic compare-and-swap. +func (i *Uint32) CAS(old, new uint32) bool { + return atomic.CompareAndSwapUint32(&i.v, old, new) +} + +// Store atomically stores the passed value. +func (i *Uint32) Store(n uint32) { + atomic.StoreUint32(&i.v, n) +} + +// Swap atomically swaps the wrapped uint32 and returns the old value. +func (i *Uint32) Swap(n uint32) uint32 { + return atomic.SwapUint32(&i.v, n) +} + +// MarshalJSON encodes the wrapped uint32 into JSON. +func (i *Uint32) MarshalJSON() ([]byte, error) { + return json.Marshal(i.Load()) +} + +// UnmarshalJSON decodes JSON into the wrapped uint32. +func (i *Uint32) UnmarshalJSON(b []byte) error { + var v uint32 + if err := json.Unmarshal(b, &v); err != nil { + return err + } + i.Store(v) + return nil +} + +// String encodes the wrapped value as a string. +func (i *Uint32) String() string { + v := i.Load() + return strconv.FormatUint(uint64(v), 10) +} diff --git a/vendor/go.uber.org/atomic/uint64.go b/vendor/go.uber.org/atomic/uint64.go new file mode 100644 index 0000000000..3b6c71fd5a --- /dev/null +++ b/vendor/go.uber.org/atomic/uint64.go @@ -0,0 +1,102 @@ +// @generated Code generated by gen-atomicint. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "strconv" + "sync/atomic" +) + +// Uint64 is an atomic wrapper around uint64. +type Uint64 struct { + _ nocmp // disallow non-atomic comparison + + v uint64 +} + +// NewUint64 creates a new Uint64. +func NewUint64(i uint64) *Uint64 { + return &Uint64{v: i} +} + +// Load atomically loads the wrapped value. +func (i *Uint64) Load() uint64 { + return atomic.LoadUint64(&i.v) +} + +// Add atomically adds to the wrapped uint64 and returns the new value. +func (i *Uint64) Add(n uint64) uint64 { + return atomic.AddUint64(&i.v, n) +} + +// Sub atomically subtracts from the wrapped uint64 and returns the new value. +func (i *Uint64) Sub(n uint64) uint64 { + return atomic.AddUint64(&i.v, ^(n - 1)) +} + +// Inc atomically increments the wrapped uint64 and returns the new value. +func (i *Uint64) Inc() uint64 { + return i.Add(1) +} + +// Dec atomically decrements the wrapped uint64 and returns the new value. +func (i *Uint64) Dec() uint64 { + return i.Sub(1) +} + +// CAS is an atomic compare-and-swap. +func (i *Uint64) CAS(old, new uint64) bool { + return atomic.CompareAndSwapUint64(&i.v, old, new) +} + +// Store atomically stores the passed value. +func (i *Uint64) Store(n uint64) { + atomic.StoreUint64(&i.v, n) +} + +// Swap atomically swaps the wrapped uint64 and returns the old value. +func (i *Uint64) Swap(n uint64) uint64 { + return atomic.SwapUint64(&i.v, n) +} + +// MarshalJSON encodes the wrapped uint64 into JSON. +func (i *Uint64) MarshalJSON() ([]byte, error) { + return json.Marshal(i.Load()) +} + +// UnmarshalJSON decodes JSON into the wrapped uint64. +func (i *Uint64) UnmarshalJSON(b []byte) error { + var v uint64 + if err := json.Unmarshal(b, &v); err != nil { + return err + } + i.Store(v) + return nil +} + +// String encodes the wrapped value as a string. +func (i *Uint64) String() string { + v := i.Load() + return strconv.FormatUint(uint64(v), 10) +} diff --git a/vendor/go.uber.org/atomic/value.go b/vendor/go.uber.org/atomic/value.go new file mode 100644 index 0000000000..671f3a3824 --- /dev/null +++ b/vendor/go.uber.org/atomic/value.go @@ -0,0 +1,31 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import "sync/atomic" + +// Value shadows the type of the same name from sync/atomic +// https://godoc.org/sync/atomic#Value +type Value struct { + atomic.Value + + _ nocmp // disallow non-atomic comparison +} diff --git a/vendor/go.uber.org/multierr/.travis.yml b/vendor/go.uber.org/multierr/.travis.yml index 786c917a39..8636ab42ad 100644 --- a/vendor/go.uber.org/multierr/.travis.yml +++ b/vendor/go.uber.org/multierr/.travis.yml @@ -4,17 +4,11 @@ go_import_path: go.uber.org/multierr env: global: - - GO15VENDOREXPERIMENT=1 - GO111MODULE=on go: - - 1.11.x - - 1.12.x - - 1.13.x - -cache: - directories: - - vendor + - oldstable + - stable before_install: - go version diff --git a/vendor/go.uber.org/multierr/CHANGELOG.md b/vendor/go.uber.org/multierr/CHANGELOG.md index 3110c5af0b..6f1db9ef4a 100644 --- a/vendor/go.uber.org/multierr/CHANGELOG.md +++ b/vendor/go.uber.org/multierr/CHANGELOG.md @@ -1,6 +1,12 @@ Releases ======== +v1.6.0 (2020-09-14) +=================== + +- Actually drop library dependency on development-time tooling. + + v1.5.0 (2020-02-24) =================== diff --git a/vendor/go.uber.org/multierr/Makefile b/vendor/go.uber.org/multierr/Makefile index 416018237e..316004400b 100644 --- a/vendor/go.uber.org/multierr/Makefile +++ b/vendor/go.uber.org/multierr/Makefile @@ -21,12 +21,12 @@ gofmt: .PHONY: golint golint: - @go install golang.org/x/lint/golint + @cd tools && go install golang.org/x/lint/golint @$(GOBIN)/golint ./... .PHONY: staticcheck staticcheck: - @go install honnef.co/go/tools/cmd/staticcheck + @cd tools && go install honnef.co/go/tools/cmd/staticcheck @$(GOBIN)/staticcheck ./... .PHONY: lint @@ -38,5 +38,5 @@ cover: go tool cover -html=cover.out -o cover.html update-license: - @go install go.uber.org/tools/update-license + @cd tools && go install go.uber.org/tools/update-license @$(GOBIN)/update-license $(GO_FILES) diff --git a/vendor/go.uber.org/multierr/error.go b/vendor/go.uber.org/multierr/error.go index 04eb9618c1..5c9b67d537 100644 --- a/vendor/go.uber.org/multierr/error.go +++ b/vendor/go.uber.org/multierr/error.go @@ -54,7 +54,7 @@ // // errors := multierr.Errors(err) // if len(errors) > 0 { -// fmt.Println("The following errors occurred:") +// fmt.Println("The following errors occurred:", errors) // } // // Advanced Usage diff --git a/vendor/go.uber.org/multierr/go.mod b/vendor/go.uber.org/multierr/go.mod index 58d5f90bbd..ff8bdf95fc 100644 --- a/vendor/go.uber.org/multierr/go.mod +++ b/vendor/go.uber.org/multierr/go.mod @@ -4,9 +4,5 @@ go 1.12 require ( github.com/stretchr/testify v1.3.0 - go.uber.org/atomic v1.6.0 - go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee - golang.org/x/lint v0.0.0-20190930215403-16217165b5de - golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 // indirect - honnef.co/go/tools v0.0.1-2019.2.3 + go.uber.org/atomic v1.7.0 ) diff --git a/vendor/go.uber.org/multierr/go.sum b/vendor/go.uber.org/multierr/go.sum index 557fbba28f..ecfc286578 100644 --- a/vendor/go.uber.org/multierr/go.sum +++ b/vendor/go.uber.org/multierr/go.sum @@ -1,45 +1,11 @@ -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c h1:IGkKhmfzcztjm6gYkykvu/NiS8kaqbCWAEWWAyf8J5U= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 h1:hKsoRgsbwY1NafxrwTs+k64bikrLBkAgPir1TNCj3Zs= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= diff --git a/vendor/go.uber.org/zap/.travis.yml b/vendor/go.uber.org/zap/.travis.yml deleted file mode 100644 index cfdc69f413..0000000000 --- a/vendor/go.uber.org/zap/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -language: go -sudo: false - -go_import_path: go.uber.org/zap -env: - global: - - TEST_TIMEOUT_SCALE=10 - - GO111MODULE=on - -matrix: - include: - - go: 1.13.x - - go: 1.14.x - env: LINT=1 - -script: - - test -z "$LINT" || make lint - - make test - - make bench - -after_success: - - make cover - - bash <(curl -s https://codecov.io/bash) diff --git a/vendor/go.uber.org/zap/CHANGELOG.md b/vendor/go.uber.org/zap/CHANGELOG.md index aeff90e4ea..3b99bf0ac8 100644 --- a/vendor/go.uber.org/zap/CHANGELOG.md +++ b/vendor/go.uber.org/zap/CHANGELOG.md @@ -1,16 +1,56 @@ # Changelog +## 1.17.0 (25 May 2021) + +Bugfixes: +* [#867][]: Encode `` for nil `error` instead of a panic. +* [#931][], [#936][]: Update minimum version constraints to address + vulnerabilities in dependencies. + +Enhancements: +* [#865][]: Improve alignment of fields of the Logger struct, reducing its + size from 96 to 80 bytes. +* [#881][]: Support `grpclog.LoggerV2` in zapgrpc. +* [#903][]: Support URL-encoded POST requests to the AtomicLevel HTTP handler + with the `application/x-www-form-urlencoded` content type. +* [#912][]: Support multi-field encoding with `zap.Inline`. +* [#913][]: Speed up SugaredLogger for calls with a single string. +* [#928][]: Add support for filtering by field name to `zaptest/observer`. + +Thanks to @ash2k, @FMLS, @jimmystewpot, @Oncilla, @tsoslow, @tylitianrui, @withshubh, and @wziww for their contributions to this release. + +## 1.16.0 (1 Sep 2020) + +Bugfixes: +* [#828][]: Fix missing newline in IncreaseLevel error messages. +* [#835][]: Fix panic in JSON encoder when encoding times or durations + without specifying a time or duration encoder. +* [#843][]: Honor CallerSkip when taking stack traces. +* [#862][]: Fix the default file permissions to use `0666` and rely on the umask instead. +* [#854][]: Encode `` for nil `Stringer` instead of a panic error log. + +Enhancements: +* [#629][]: Added `zapcore.TimeEncoderOfLayout` to easily create time encoders + for custom layouts. +* [#697][]: Added support for a configurable delimiter in the console encoder. +* [#852][]: Optimize console encoder by pooling the underlying JSON encoder. +* [#844][]: Add ability to include the calling function as part of logs. +* [#843][]: Add `StackSkip` for including truncated stacks as a field. +* [#861][]: Add options to customize Fatal behaviour for better testability. + +Thanks to @SteelPhase, @tmshn, @lixingwang, @wyxloading, @moul, @segevfiner, @andy-retailnext and @jcorbin for their contributions to this release. + ## 1.15.0 (23 Apr 2020) Bugfixes: * [#804][]: Fix handling of `Time` values out of `UnixNano` range. -* [#812][]: Fix `IncreaseLevel` being reset after a call to `With`. +* [#812][]: Fix `IncreaseLevel` being reset after a call to `With`. Enhancements: * [#806][]: Add `WithCaller` option to supersede the `AddCaller` option. This allows disabling annotation of log entries with caller information if previously enabled with `AddCaller`. -* [#813][]: Deprecate `NewSampler` constructor in favor of +* [#813][]: Deprecate `NewSampler` constructor in favor of `NewSamplerWithOptions` which supports a `SamplerHook` option. This option adds support for monitoring sampling decisions through a hook. @@ -399,3 +439,22 @@ upgrade to the upcoming stable release. [#812]: https://github.com/uber-go/zap/pull/812 [#806]: https://github.com/uber-go/zap/pull/806 [#813]: https://github.com/uber-go/zap/pull/813 +[#629]: https://github.com/uber-go/zap/pull/629 +[#697]: https://github.com/uber-go/zap/pull/697 +[#828]: https://github.com/uber-go/zap/pull/828 +[#835]: https://github.com/uber-go/zap/pull/835 +[#843]: https://github.com/uber-go/zap/pull/843 +[#844]: https://github.com/uber-go/zap/pull/844 +[#852]: https://github.com/uber-go/zap/pull/852 +[#854]: https://github.com/uber-go/zap/pull/854 +[#861]: https://github.com/uber-go/zap/pull/861 +[#862]: https://github.com/uber-go/zap/pull/862 +[#865]: https://github.com/uber-go/zap/pull/865 +[#867]: https://github.com/uber-go/zap/pull/867 +[#881]: https://github.com/uber-go/zap/pull/881 +[#903]: https://github.com/uber-go/zap/pull/903 +[#912]: https://github.com/uber-go/zap/pull/912 +[#913]: https://github.com/uber-go/zap/pull/913 +[#928]: https://github.com/uber-go/zap/pull/928 +[#931]: https://github.com/uber-go/zap/pull/931 +[#936]: https://github.com/uber-go/zap/pull/936 diff --git a/vendor/go.uber.org/zap/CONTRIBUTING.md b/vendor/go.uber.org/zap/CONTRIBUTING.md index 9454bbaf02..5cd9656871 100644 --- a/vendor/go.uber.org/zap/CONTRIBUTING.md +++ b/vendor/go.uber.org/zap/CONTRIBUTING.md @@ -25,12 +25,6 @@ git remote add upstream https://github.com/uber-go/zap.git git fetch upstream ``` -Install zap's dependencies: - -``` -make dependencies -``` - Make sure that the tests and the linters pass: ``` diff --git a/vendor/go.uber.org/zap/FAQ.md b/vendor/go.uber.org/zap/FAQ.md index 4256d35c76..b183b20bc1 100644 --- a/vendor/go.uber.org/zap/FAQ.md +++ b/vendor/go.uber.org/zap/FAQ.md @@ -27,6 +27,13 @@ abstraction, and it lets us add methods without introducing breaking changes. Your applications should define and depend upon an interface that includes just the methods you use. +### Why are some of my logs missing? + +Logs are dropped intentionally by zap when sampling is enabled. The production +configuration (as returned by `NewProductionConfig()` enables sampling which will +cause repeated logs within a second to be sampled. See more details on why sampling +is enabled in [Why sample application logs](https://github.com/uber-go/zap/blob/master/FAQ.md#why-sample-application-logs). + ### Why sample application logs? Applications often experience runs of errors, either because of a bug or @@ -149,6 +156,8 @@ We're aware of the following extensions, but haven't used them ourselves: | `github.com/tchap/zapext` | Sentry, syslog | | `github.com/fgrosse/zaptest` | Ginkgo | | `github.com/blendle/zapdriver` | Stackdriver | +| `github.com/moul/zapgorm` | Gorm | +| `github.com/moul/zapfilter` | Advanced filtering rules | [go-proverbs]: https://go-proverbs.github.io/ [import-path]: https://golang.org/cmd/go/#hdr-Remote_import_paths diff --git a/vendor/go.uber.org/zap/Makefile b/vendor/go.uber.org/zap/Makefile index dfaf6406e9..9b1bc3b0e1 100644 --- a/vendor/go.uber.org/zap/Makefile +++ b/vendor/go.uber.org/zap/Makefile @@ -7,7 +7,7 @@ BENCH_FLAGS ?= -cpuprofile=cpu.pprof -memprofile=mem.pprof -benchmem # Directories containing independent Go modules. # # We track coverage only for the main module. -MODULE_DIRS = . ./benchmarks +MODULE_DIRS = . ./benchmarks ./zapgrpc/internal/test # Many Go tools take file globs or directories as arguments instead of packages. GO_FILES := $(shell \ @@ -33,12 +33,18 @@ lint: $(GOLINT) $(STATICCHECK) @echo "Checking for license headers..." @./checklicense.sh | tee -a lint.log @[ ! -s lint.log ] + @echo "Checking 'go mod tidy'..." + @make tidy + @if ! git diff --quiet; then \ + echo "'go mod tidy' resulted in changes or working tree is dirty:"; \ + git --no-pager diff; \ + fi $(GOLINT): - go install golang.org/x/lint/golint + cd tools && go install golang.org/x/lint/golint $(STATICCHECK): - go install honnef.co/go/tools/cmd/staticcheck + cd tools && go install honnef.co/go/tools/cmd/staticcheck .PHONY: test test: @@ -61,3 +67,7 @@ bench: updatereadme: rm -f README.md cat .readme.tmpl | go run internal/readme/readme.go > README.md + +.PHONY: tidy +tidy: + @$(foreach dir,$(MODULE_DIRS),(cd $(dir) && go mod tidy) &&) true diff --git a/vendor/go.uber.org/zap/README.md b/vendor/go.uber.org/zap/README.md index bcea28a196..1e64d6cffc 100644 --- a/vendor/go.uber.org/zap/README.md +++ b/vendor/go.uber.org/zap/README.md @@ -123,10 +123,10 @@ Released under the [MIT License](LICENSE.txt). benchmarking against slightly older versions of other packages. Versions are pinned in the [benchmarks/go.mod][] file. [↩](#anchor-versions) -[doc-img]: https://godoc.org/go.uber.org/zap?status.svg -[doc]: https://godoc.org/go.uber.org/zap -[ci-img]: https://travis-ci.com/uber-go/zap.svg?branch=master -[ci]: https://travis-ci.com/uber-go/zap +[doc-img]: https://pkg.go.dev/badge/go.uber.org/zap +[doc]: https://pkg.go.dev/go.uber.org/zap +[ci-img]: https://github.com/uber-go/zap/actions/workflows/go.yml/badge.svg +[ci]: https://github.com/uber-go/zap/actions/workflows/go.yml [cov-img]: https://codecov.io/gh/uber-go/zap/branch/master/graph/badge.svg [cov]: https://codecov.io/gh/uber-go/zap [benchmarking suite]: https://github.com/uber-go/zap/tree/master/benchmarks diff --git a/vendor/go.uber.org/zap/config.go b/vendor/go.uber.org/zap/config.go index 192fd1a947..55637fb0b4 100644 --- a/vendor/go.uber.org/zap/config.go +++ b/vendor/go.uber.org/zap/config.go @@ -101,6 +101,7 @@ func NewProductionEncoderConfig() zapcore.EncoderConfig { LevelKey: "level", NameKey: "logger", CallerKey: "caller", + FunctionKey: zapcore.OmitKey, MessageKey: "msg", StacktraceKey: "stacktrace", LineEnding: zapcore.DefaultLineEnding, @@ -140,6 +141,7 @@ func NewDevelopmentEncoderConfig() zapcore.EncoderConfig { LevelKey: "L", NameKey: "N", CallerKey: "C", + FunctionKey: zapcore.OmitKey, MessageKey: "M", StacktraceKey: "S", LineEnding: zapcore.DefaultLineEnding, diff --git a/vendor/go.uber.org/zap/field.go b/vendor/go.uber.org/zap/field.go index dd558fc231..bbb745db5b 100644 --- a/vendor/go.uber.org/zap/field.go +++ b/vendor/go.uber.org/zap/field.go @@ -364,11 +364,17 @@ func Timep(key string, val *time.Time) Field { // expensive (relatively speaking); this function both makes an allocation and // takes about two microseconds. func Stack(key string) Field { + return StackSkip(key, 1) // skip Stack +} + +// StackSkip constructs a field similarly to Stack, but also skips the given +// number of frames from the top of the stacktrace. +func StackSkip(key string, skip int) Field { // Returning the stacktrace as a string costs an allocation, but saves us // from expanding the zapcore.Field union struct to include a byte slice. Since // taking a stacktrace is already so expensive (~10us), the extra allocation // is okay. - return String(key, takeStacktrace()) + return String(key, takeStacktrace(skip+1)) // skip StackSkip } // Duration constructs a field with the given key and value. The encoder @@ -394,6 +400,16 @@ func Object(key string, val zapcore.ObjectMarshaler) Field { return Field{Key: key, Type: zapcore.ObjectMarshalerType, Interface: val} } +// Inline constructs a Field that is similar to Object, but it +// will add the elements of the provided ObjectMarshaler to the +// current namespace. +func Inline(val zapcore.ObjectMarshaler) Field { + return zapcore.Field{ + Type: zapcore.InlineMarshalerType, + Interface: val, + } +} + // Any takes a key and an arbitrary value and chooses the best way to represent // them as a field, falling back to a reflection-based approach only if // necessary. diff --git a/vendor/go.uber.org/zap/go.mod b/vendor/go.uber.org/zap/go.mod index 118abda151..6578a35454 100644 --- a/vendor/go.uber.org/zap/go.mod +++ b/vendor/go.uber.org/zap/go.mod @@ -4,9 +4,9 @@ go 1.13 require ( github.com/pkg/errors v0.8.1 - github.com/stretchr/testify v1.4.0 - go.uber.org/atomic v1.6.0 - go.uber.org/multierr v1.5.0 - golang.org/x/lint v0.0.0-20190930215403-16217165b5de - honnef.co/go/tools v0.0.1-2019.2.3 + github.com/stretchr/testify v1.7.0 + go.uber.org/atomic v1.7.0 + go.uber.org/multierr v1.6.0 + gopkg.in/yaml.v2 v2.2.8 + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/vendor/go.uber.org/zap/go.sum b/vendor/go.uber.org/zap/go.sum index 99cdb93ea0..911a87ae1c 100644 --- a/vendor/go.uber.org/zap/go.sum +++ b/vendor/go.uber.org/zap/go.sum @@ -1,56 +1,22 @@ -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c h1:IGkKhmfzcztjm6gYkykvu/NiS8kaqbCWAEWWAyf8J5U= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 h1:hKsoRgsbwY1NafxrwTs+k64bikrLBkAgPir1TNCj3Zs= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/vendor/go.uber.org/zap/http_handler.go b/vendor/go.uber.org/zap/http_handler.go index 1b0ecaca9c..1297c33b32 100644 --- a/vendor/go.uber.org/zap/http_handler.go +++ b/vendor/go.uber.org/zap/http_handler.go @@ -23,6 +23,7 @@ package zap import ( "encoding/json" "fmt" + "io" "net/http" "go.uber.org/zap/zapcore" @@ -31,47 +32,63 @@ import ( // ServeHTTP is a simple JSON endpoint that can report on or change the current // logging level. // -// GET requests return a JSON description of the current logging level. PUT -// requests change the logging level and expect a payload like: +// GET +// +// The GET request returns a JSON description of the current logging level like: // {"level":"info"} // -// It's perfectly safe to change the logging level while a program is running. +// PUT +// +// The PUT request changes the logging level. It is perfectly safe to change the +// logging level while a program is running. Two content types are supported: +// +// Content-Type: application/x-www-form-urlencoded +// +// With this content type, the level can be provided through the request body or +// a query parameter. The log level is URL encoded like: +// +// level=debug +// +// The request body takes precedence over the query parameter, if both are +// specified. +// +// This content type is the default for a curl PUT request. Following are two +// example curl requests that both set the logging level to debug. +// +// curl -X PUT localhost:8080/log/level?level=debug +// curl -X PUT localhost:8080/log/level -d level=debug +// +// For any other content type, the payload is expected to be JSON encoded and +// look like: +// +// {"level":"info"} +// +// An example curl request could look like this: +// +// curl -X PUT localhost:8080/log/level -H "Content-Type: application/json" -d '{"level":"debug"}' +// func (lvl AtomicLevel) ServeHTTP(w http.ResponseWriter, r *http.Request) { type errorResponse struct { Error string `json:"error"` } type payload struct { - Level *zapcore.Level `json:"level"` + Level zapcore.Level `json:"level"` } enc := json.NewEncoder(w) switch r.Method { - case http.MethodGet: - current := lvl.Level() - enc.Encode(payload{Level: ¤t}) - + enc.Encode(payload{Level: lvl.Level()}) case http.MethodPut: - var req payload - - if errmess := func() string { - if err := json.NewDecoder(r.Body).Decode(&req); err != nil { - return fmt.Sprintf("Request body must be well-formed JSON: %v", err) - } - if req.Level == nil { - return "Must specify a logging level." - } - return "" - }(); errmess != "" { + requestedLvl, err := decodePutRequest(r.Header.Get("Content-Type"), r) + if err != nil { w.WriteHeader(http.StatusBadRequest) - enc.Encode(errorResponse{Error: errmess}) + enc.Encode(errorResponse{Error: err.Error()}) return } - - lvl.SetLevel(*req.Level) - enc.Encode(req) - + lvl.SetLevel(requestedLvl) + enc.Encode(payload{Level: lvl.Level()}) default: w.WriteHeader(http.StatusMethodNotAllowed) enc.Encode(errorResponse{ @@ -79,3 +96,37 @@ func (lvl AtomicLevel) ServeHTTP(w http.ResponseWriter, r *http.Request) { }) } } + +// Decodes incoming PUT requests and returns the requested logging level. +func decodePutRequest(contentType string, r *http.Request) (zapcore.Level, error) { + if contentType == "application/x-www-form-urlencoded" { + return decodePutURL(r) + } + return decodePutJSON(r.Body) +} + +func decodePutURL(r *http.Request) (zapcore.Level, error) { + lvl := r.FormValue("level") + if lvl == "" { + return 0, fmt.Errorf("must specify logging level") + } + var l zapcore.Level + if err := l.UnmarshalText([]byte(lvl)); err != nil { + return 0, err + } + return l, nil +} + +func decodePutJSON(body io.Reader) (zapcore.Level, error) { + var pld struct { + Level *zapcore.Level `json:"level"` + } + if err := json.NewDecoder(body).Decode(&pld); err != nil { + return 0, fmt.Errorf("malformed request body: %v", err) + } + if pld.Level == nil { + return 0, fmt.Errorf("must specify logging level") + } + return *pld.Level, nil + +} diff --git a/vendor/go.uber.org/zap/logger.go b/vendor/go.uber.org/zap/logger.go index cd6e19551a..553f258e74 100644 --- a/vendor/go.uber.org/zap/logger.go +++ b/vendor/go.uber.org/zap/logger.go @@ -42,11 +42,13 @@ type Logger struct { core zapcore.Core development bool + addCaller bool + onFatal zapcore.CheckWriteAction // default is WriteThenFatal + name string errorOutput zapcore.WriteSyncer - addCaller bool - addStack zapcore.LevelEnabler + addStack zapcore.LevelEnabler callerSkip int } @@ -280,7 +282,13 @@ func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry { case zapcore.PanicLevel: ce = ce.Should(ent, zapcore.WriteThenPanic) case zapcore.FatalLevel: - ce = ce.Should(ent, zapcore.WriteThenFatal) + onFatal := log.onFatal + // Noop is the default value for CheckWriteAction, and it leads to + // continued execution after a Fatal which is unexpected. + if onFatal == zapcore.WriteThenNoop { + onFatal = zapcore.WriteThenFatal + } + ce = ce.Should(ent, onFatal) case zapcore.DPanicLevel: if log.development { ce = ce.Should(ent, zapcore.WriteThenPanic) @@ -297,15 +305,41 @@ func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry { // Thread the error output through to the CheckedEntry. ce.ErrorOutput = log.errorOutput if log.addCaller { - ce.Entry.Caller = zapcore.NewEntryCaller(runtime.Caller(log.callerSkip + callerSkipOffset)) - if !ce.Entry.Caller.Defined { + frame, defined := getCallerFrame(log.callerSkip + callerSkipOffset) + if !defined { fmt.Fprintf(log.errorOutput, "%v Logger.check error: failed to get caller\n", time.Now().UTC()) log.errorOutput.Sync() } + + ce.Entry.Caller = zapcore.EntryCaller{ + Defined: defined, + PC: frame.PC, + File: frame.File, + Line: frame.Line, + Function: frame.Function, + } } if log.addStack.Enabled(ce.Entry.Level) { - ce.Entry.Stack = Stack("").String + ce.Entry.Stack = StackSkip("", log.callerSkip+callerSkipOffset).String } return ce } + +// getCallerFrame gets caller frame. The argument skip is the number of stack +// frames to ascend, with 0 identifying the caller of getCallerFrame. The +// boolean ok is false if it was not possible to recover the information. +// +// Note: This implementation is similar to runtime.Caller, but it returns the whole frame. +func getCallerFrame(skip int) (frame runtime.Frame, ok bool) { + const skipOffset = 2 // skip getCallerFrame and Callers + + pc := make([]uintptr, 1) + numFrames := runtime.Callers(skip+skipOffset, pc) + if numFrames < 1 { + return + } + + frame, _ = runtime.CallersFrames(pc).Next() + return frame, frame.PC != 0 +} diff --git a/vendor/go.uber.org/zap/options.go b/vendor/go.uber.org/zap/options.go index 59f1b54a04..0135c20923 100644 --- a/vendor/go.uber.org/zap/options.go +++ b/vendor/go.uber.org/zap/options.go @@ -86,15 +86,15 @@ func Development() Option { }) } -// AddCaller configures the Logger to annotate each message with the filename -// and line number of zap's caller. See also WithCaller. +// AddCaller configures the Logger to annotate each message with the filename, +// line number, and function name of zap's caller. See also WithCaller. func AddCaller() Option { return WithCaller(true) } -// WithCaller configures the Logger to annotate each message with the filename -// and line number of zap's caller, or not, depending on the value of enabled. -// This is a generalized form of AddCaller. +// WithCaller configures the Logger to annotate each message with the filename, +// line number, and function name of zap's caller, or not, depending on the +// value of enabled. This is a generalized form of AddCaller. func WithCaller(enabled bool) Option { return optionFunc(func(log *Logger) { log.addCaller = enabled @@ -125,9 +125,16 @@ func IncreaseLevel(lvl zapcore.LevelEnabler) Option { return optionFunc(func(log *Logger) { core, err := zapcore.NewIncreaseLevelCore(log.core, lvl) if err != nil { - fmt.Fprintf(log.errorOutput, "failed to IncreaseLevel: %v", err) + fmt.Fprintf(log.errorOutput, "failed to IncreaseLevel: %v\n", err) } else { log.core = core } }) } + +// OnFatal sets the action to take on fatal logs. +func OnFatal(action zapcore.CheckWriteAction) Option { + return optionFunc(func(log *Logger) { + log.onFatal = action + }) +} diff --git a/vendor/go.uber.org/zap/sink.go b/vendor/go.uber.org/zap/sink.go index ff0becfe5d..df46fa87a7 100644 --- a/vendor/go.uber.org/zap/sink.go +++ b/vendor/go.uber.org/zap/sink.go @@ -136,7 +136,7 @@ func newFileSink(u *url.URL) (Sink, error) { case "stderr": return nopCloserSink{os.Stderr}, nil } - return os.OpenFile(u.Path, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644) + return os.OpenFile(u.Path, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0666) } func normalizeScheme(s string) (string, error) { diff --git a/vendor/go.uber.org/zap/stacktrace.go b/vendor/go.uber.org/zap/stacktrace.go index 100fac2168..0cf8c1ddff 100644 --- a/vendor/go.uber.org/zap/stacktrace.go +++ b/vendor/go.uber.org/zap/stacktrace.go @@ -22,28 +22,20 @@ package zap import ( "runtime" - "strings" "sync" "go.uber.org/zap/internal/bufferpool" ) -const _zapPackage = "go.uber.org/zap" - var ( _stacktracePool = sync.Pool{ New: func() interface{} { return newProgramCounters(64) }, } - - // We add "." and "/" suffixes to the package name to ensure we only match - // the exact package and not any package with the same prefix. - _zapStacktracePrefixes = addPrefix(_zapPackage, ".", "/") - _zapStacktraceVendorContains = addPrefix("/vendor/", _zapStacktracePrefixes...) ) -func takeStacktrace() string { +func takeStacktrace(skip int) string { buffer := bufferpool.Get() defer buffer.Free() programCounters := _stacktracePool.Get().(*programCounters) @@ -51,9 +43,9 @@ func takeStacktrace() string { var numFrames int for { - // Skip the call to runtime.Counters and takeStacktrace so that the + // Skip the call to runtime.Callers and takeStacktrace so that the // program counters start at the caller of takeStacktrace. - numFrames = runtime.Callers(2, programCounters.pcs) + numFrames = runtime.Callers(skip+2, programCounters.pcs) if numFrames < len(programCounters.pcs) { break } @@ -63,19 +55,12 @@ func takeStacktrace() string { } i := 0 - skipZapFrames := true // skip all consecutive zap frames at the beginning. frames := runtime.CallersFrames(programCounters.pcs[:numFrames]) // Note: On the last iteration, frames.Next() returns false, with a valid // frame, but we ignore this frame. The last frame is a a runtime frame which // adds noise, since it's only either runtime.main or runtime.goexit. for frame, more := frames.Next(); more; frame, more = frames.Next() { - if skipZapFrames && isZapFrame(frame.Function) { - continue - } else { - skipZapFrames = false - } - if i != 0 { buffer.AppendByte('\n') } @@ -91,24 +76,6 @@ func takeStacktrace() string { return buffer.String() } -func isZapFrame(function string) bool { - for _, prefix := range _zapStacktracePrefixes { - if strings.HasPrefix(function, prefix) { - return true - } - } - - // We can't use a prefix match here since the location of the vendor - // directory affects the prefix. Instead we do a contains match. - for _, contains := range _zapStacktraceVendorContains { - if strings.Contains(function, contains) { - return true - } - } - - return false -} - type programCounters struct { pcs []uintptr } @@ -116,11 +83,3 @@ type programCounters struct { func newProgramCounters(size int) *programCounters { return &programCounters{make([]uintptr, size)} } - -func addPrefix(prefix string, ss ...string) []string { - withPrefix := make([]string, len(ss)) - for i, s := range ss { - withPrefix[i] = prefix + s - } - return withPrefix -} diff --git a/vendor/go.uber.org/zap/sugar.go b/vendor/go.uber.org/zap/sugar.go index 77ca227f47..4084dada79 100644 --- a/vendor/go.uber.org/zap/sugar.go +++ b/vendor/go.uber.org/zap/sugar.go @@ -222,19 +222,30 @@ func (s *SugaredLogger) log(lvl zapcore.Level, template string, fmtArgs []interf return } - // Format with Sprint, Sprintf, or neither. - msg := template - if msg == "" && len(fmtArgs) > 0 { - msg = fmt.Sprint(fmtArgs...) - } else if msg != "" && len(fmtArgs) > 0 { - msg = fmt.Sprintf(template, fmtArgs...) - } - + msg := getMessage(template, fmtArgs) if ce := s.base.Check(lvl, msg); ce != nil { ce.Write(s.sweetenFields(context)...) } } +// getMessage format with Sprint, Sprintf, or neither. +func getMessage(template string, fmtArgs []interface{}) string { + if len(fmtArgs) == 0 { + return template + } + + if template != "" { + return fmt.Sprintf(template, fmtArgs...) + } + + if len(fmtArgs) == 1 { + if str, ok := fmtArgs[0].(string); ok { + return str + } + } + return fmt.Sprint(fmtArgs...) +} + func (s *SugaredLogger) sweetenFields(args []interface{}) []Field { if len(args) == 0 { return nil diff --git a/vendor/go.uber.org/zap/zapcore/console_encoder.go b/vendor/go.uber.org/zap/zapcore/console_encoder.go index b7875966f4..2307af404c 100644 --- a/vendor/go.uber.org/zap/zapcore/console_encoder.go +++ b/vendor/go.uber.org/zap/zapcore/console_encoder.go @@ -56,6 +56,10 @@ type consoleEncoder struct { // encoder configuration, it will omit any element whose key is set to the empty // string. func NewConsoleEncoder(cfg EncoderConfig) Encoder { + if cfg.ConsoleSeparator == "" { + // Use a default delimiter of '\t' for backwards compatibility + cfg.ConsoleSeparator = "\t" + } return consoleEncoder{newJSONEncoder(cfg, true)} } @@ -89,12 +93,17 @@ func (c consoleEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, nameEncoder(ent.LoggerName, arr) } - if ent.Caller.Defined && c.CallerKey != "" && c.EncodeCaller != nil { - c.EncodeCaller(ent.Caller, arr) + if ent.Caller.Defined { + if c.CallerKey != "" && c.EncodeCaller != nil { + c.EncodeCaller(ent.Caller, arr) + } + if c.FunctionKey != "" { + arr.AppendString(ent.Caller.Function) + } } for i := range arr.elems { if i > 0 { - line.AppendByte('\t') + line.AppendString(c.ConsoleSeparator) } fmt.Fprint(line, arr.elems[i]) } @@ -102,7 +111,7 @@ func (c consoleEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, // Add the message itself. if c.MessageKey != "" { - c.addTabIfNecessary(line) + c.addSeparatorIfNecessary(line) line.AppendString(ent.Message) } @@ -126,7 +135,12 @@ func (c consoleEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, func (c consoleEncoder) writeContext(line *buffer.Buffer, extra []Field) { context := c.jsonEncoder.Clone().(*jsonEncoder) - defer context.buf.Free() + defer func() { + // putJSONEncoder assumes the buffer is still used, but we write out the buffer so + // we can free it. + context.buf.Free() + putJSONEncoder(context) + }() addFields(context, extra) context.closeOpenNamespaces() @@ -134,14 +148,14 @@ func (c consoleEncoder) writeContext(line *buffer.Buffer, extra []Field) { return } - c.addTabIfNecessary(line) + c.addSeparatorIfNecessary(line) line.AppendByte('{') line.Write(context.buf.Bytes()) line.AppendByte('}') } -func (c consoleEncoder) addTabIfNecessary(line *buffer.Buffer) { +func (c consoleEncoder) addSeparatorIfNecessary(line *buffer.Buffer) { if line.Len() > 0 { - line.AppendByte('\t') + line.AppendString(c.ConsoleSeparator) } } diff --git a/vendor/go.uber.org/zap/zapcore/encoder.go b/vendor/go.uber.org/zap/zapcore/encoder.go index 6c78f7e49a..6601ca166c 100644 --- a/vendor/go.uber.org/zap/zapcore/encoder.go +++ b/vendor/go.uber.org/zap/zapcore/encoder.go @@ -21,6 +21,7 @@ package zapcore import ( + "encoding/json" "time" "go.uber.org/zap/buffer" @@ -151,6 +152,14 @@ func RFC3339NanoTimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { encodeTimeLayout(t, time.RFC3339Nano, enc) } +// TimeEncoderOfLayout returns TimeEncoder which serializes a time.Time using +// given layout. +func TimeEncoderOfLayout(layout string) TimeEncoder { + return func(t time.Time, enc PrimitiveArrayEncoder) { + encodeTimeLayout(t, layout, enc) + } +} + // UnmarshalText unmarshals text to a TimeEncoder. // "rfc3339nano" and "RFC3339Nano" are unmarshaled to RFC3339NanoTimeEncoder. // "rfc3339" and "RFC3339" are unmarshaled to RFC3339TimeEncoder. @@ -176,6 +185,35 @@ func (e *TimeEncoder) UnmarshalText(text []byte) error { return nil } +// UnmarshalYAML unmarshals YAML to a TimeEncoder. +// If value is an object with a "layout" field, it will be unmarshaled to TimeEncoder with given layout. +// timeEncoder: +// layout: 06/01/02 03:04pm +// If value is string, it uses UnmarshalText. +// timeEncoder: iso8601 +func (e *TimeEncoder) UnmarshalYAML(unmarshal func(interface{}) error) error { + var o struct { + Layout string `json:"layout" yaml:"layout"` + } + if err := unmarshal(&o); err == nil { + *e = TimeEncoderOfLayout(o.Layout) + return nil + } + + var s string + if err := unmarshal(&s); err != nil { + return err + } + return e.UnmarshalText([]byte(s)) +} + +// UnmarshalJSON unmarshals JSON to a TimeEncoder as same way UnmarshalYAML does. +func (e *TimeEncoder) UnmarshalJSON(data []byte) error { + return e.UnmarshalYAML(func(v interface{}) error { + return json.Unmarshal(data, v) + }) +} + // A DurationEncoder serializes a time.Duration to a primitive type. type DurationEncoder func(time.Duration, PrimitiveArrayEncoder) @@ -279,6 +317,7 @@ type EncoderConfig struct { TimeKey string `json:"timeKey" yaml:"timeKey"` NameKey string `json:"nameKey" yaml:"nameKey"` CallerKey string `json:"callerKey" yaml:"callerKey"` + FunctionKey string `json:"functionKey" yaml:"functionKey"` StacktraceKey string `json:"stacktraceKey" yaml:"stacktraceKey"` LineEnding string `json:"lineEnding" yaml:"lineEnding"` // Configure the primitive representations of common complex types. For @@ -291,6 +330,9 @@ type EncoderConfig struct { // Unlike the other primitive type encoders, EncodeName is optional. The // zero value falls back to FullNameEncoder. EncodeName NameEncoder `json:"nameEncoder" yaml:"nameEncoder"` + // Configures the field separator used by the console encoder. Defaults + // to tab. + ConsoleSeparator string `json:"consoleSeparator" yaml:"consoleSeparator"` } // ObjectEncoder is a strongly-typed, encoding-agnostic interface for adding a diff --git a/vendor/go.uber.org/zap/zapcore/entry.go b/vendor/go.uber.org/zap/zapcore/entry.go index 8273abdf07..4aa8b4f90b 100644 --- a/vendor/go.uber.org/zap/zapcore/entry.go +++ b/vendor/go.uber.org/zap/zapcore/entry.go @@ -22,6 +22,7 @@ package zapcore import ( "fmt" + "runtime" "strings" "sync" "time" @@ -70,10 +71,11 @@ func NewEntryCaller(pc uintptr, file string, line int, ok bool) EntryCaller { // EntryCaller represents the caller of a logging function. type EntryCaller struct { - Defined bool - PC uintptr - File string - Line int + Defined bool + PC uintptr + File string + Line int + Function string } // String returns the full path and line number of the caller. @@ -158,6 +160,8 @@ const ( // WriteThenNoop indicates that nothing special needs to be done. It's the // default behavior. WriteThenNoop CheckWriteAction = iota + // WriteThenGoexit runs runtime.Goexit after Write. + WriteThenGoexit // WriteThenPanic causes a panic after Write. WriteThenPanic // WriteThenFatal causes a fatal os.Exit after Write. @@ -230,6 +234,8 @@ func (ce *CheckedEntry) Write(fields ...Field) { panic(msg) case WriteThenFatal: exit.Exit() + case WriteThenGoexit: + runtime.Goexit() } } diff --git a/vendor/go.uber.org/zap/zapcore/error.go b/vendor/go.uber.org/zap/zapcore/error.go index 9ba2272c3f..f2a07d7864 100644 --- a/vendor/go.uber.org/zap/zapcore/error.go +++ b/vendor/go.uber.org/zap/zapcore/error.go @@ -22,6 +22,7 @@ package zapcore import ( "fmt" + "reflect" "sync" ) @@ -42,7 +43,23 @@ import ( // ... // ], // } -func encodeError(key string, err error, enc ObjectEncoder) error { +func encodeError(key string, err error, enc ObjectEncoder) (retErr error) { + // Try to capture panics (from nil references or otherwise) when calling + // the Error() method + defer func() { + if rerr := recover(); rerr != nil { + // If it's a nil pointer, just say "". The likeliest causes are a + // error that fails to guard against nil or a nil pointer for a + // value receiver, and in either case, "" is a nice result. + if v := reflect.ValueOf(err); v.Kind() == reflect.Ptr && v.IsNil() { + enc.AddString(key, "") + return + } + + retErr = fmt.Errorf("PANIC=%v", rerr) + } + }() + basic := err.Error() enc.AddString(key, basic) diff --git a/vendor/go.uber.org/zap/zapcore/field.go b/vendor/go.uber.org/zap/zapcore/field.go index 6e05f831ff..95bdb0a126 100644 --- a/vendor/go.uber.org/zap/zapcore/field.go +++ b/vendor/go.uber.org/zap/zapcore/field.go @@ -92,6 +92,10 @@ const ( ErrorType // SkipType indicates that the field is a no-op. SkipType + + // InlineMarshalerType indicates that the field carries an ObjectMarshaler + // that should be inlined. + InlineMarshalerType ) // A Field is a marshaling operation used to add a key-value pair to a logger's @@ -115,6 +119,8 @@ func (f Field) AddTo(enc ObjectEncoder) { err = enc.AddArray(f.Key, f.Interface.(ArrayMarshaler)) case ObjectMarshalerType: err = enc.AddObject(f.Key, f.Interface.(ObjectMarshaler)) + case InlineMarshalerType: + err = f.Interface.(ObjectMarshaler).MarshalLogObject(enc) case BinaryType: enc.AddBinary(f.Key, f.Interface.([]byte)) case BoolType: @@ -167,7 +173,7 @@ func (f Field) AddTo(enc ObjectEncoder) { case StringerType: err = encodeStringer(f.Key, f.Interface, enc) case ErrorType: - encodeError(f.Key, f.Interface.(error), enc) + err = encodeError(f.Key, f.Interface.(error), enc) case SkipType: break default: @@ -205,13 +211,23 @@ func addFields(enc ObjectEncoder, fields []Field) { } } -func encodeStringer(key string, stringer interface{}, enc ObjectEncoder) (err error) { +func encodeStringer(key string, stringer interface{}, enc ObjectEncoder) (retErr error) { + // Try to capture panics (from nil references or otherwise) when calling + // the String() method, similar to https://golang.org/src/fmt/print.go#L540 defer func() { - if v := recover(); v != nil { - err = fmt.Errorf("PANIC=%v", v) + if err := recover(); err != nil { + // If it's a nil pointer, just say "". The likeliest causes are a + // Stringer that fails to guard against nil or a nil pointer for a + // value receiver, and in either case, "" is a nice result. + if v := reflect.ValueOf(stringer); v.Kind() == reflect.Ptr && v.IsNil() { + enc.AddString(key, "") + return + } + + retErr = fmt.Errorf("PANIC=%v", err) } }() enc.AddString(key, stringer.(fmt.Stringer).String()) - return + return nil } diff --git a/vendor/go.uber.org/zap/zapcore/json_encoder.go b/vendor/go.uber.org/zap/zapcore/json_encoder.go index 7facc1b36b..5cf7d917e9 100644 --- a/vendor/go.uber.org/zap/zapcore/json_encoder.go +++ b/vendor/go.uber.org/zap/zapcore/json_encoder.go @@ -236,7 +236,9 @@ func (enc *jsonEncoder) AppendComplex128(val complex128) { func (enc *jsonEncoder) AppendDuration(val time.Duration) { cur := enc.buf.Len() - enc.EncodeDuration(val, enc) + if e := enc.EncodeDuration; e != nil { + e(val, enc) + } if cur == enc.buf.Len() { // User-supplied EncodeDuration is a no-op. Fall back to nanoseconds to keep // JSON valid. @@ -275,7 +277,9 @@ func (enc *jsonEncoder) AppendTimeLayout(time time.Time, layout string) { func (enc *jsonEncoder) AppendTime(val time.Time) { cur := enc.buf.Len() - enc.EncodeTime(val, enc) + if e := enc.EncodeTime; e != nil { + e(val, enc) + } if cur == enc.buf.Len() { // User-supplied EncodeTime is a no-op. Fall back to nanos since epoch to keep // output JSON valid. @@ -362,14 +366,20 @@ func (enc *jsonEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, final.AppendString(ent.LoggerName) } } - if ent.Caller.Defined && final.CallerKey != "" { - final.addKey(final.CallerKey) - cur := final.buf.Len() - final.EncodeCaller(ent.Caller, final) - if cur == final.buf.Len() { - // User-supplied EncodeCaller was a no-op. Fall back to strings to - // keep output JSON valid. - final.AppendString(ent.Caller.String()) + if ent.Caller.Defined { + if final.CallerKey != "" { + final.addKey(final.CallerKey) + cur := final.buf.Len() + final.EncodeCaller(ent.Caller, final) + if cur == final.buf.Len() { + // User-supplied EncodeCaller was a no-op. Fall back to strings to + // keep output JSON valid. + final.AppendString(ent.Caller.String()) + } + } + if final.FunctionKey != "" { + final.addKey(final.FunctionKey) + final.AppendString(ent.Caller.Function) } } if final.MessageKey != "" { diff --git a/vendor/go.uber.org/zap/zapcore/marshaler.go b/vendor/go.uber.org/zap/zapcore/marshaler.go index 2627a653df..c3c55ba0d9 100644 --- a/vendor/go.uber.org/zap/zapcore/marshaler.go +++ b/vendor/go.uber.org/zap/zapcore/marshaler.go @@ -23,6 +23,10 @@ package zapcore // ObjectMarshaler allows user-defined types to efficiently add themselves to the // logging context, and to selectively omit information which shouldn't be // included in logs (e.g., passwords). +// +// Note: ObjectMarshaler is only used when zap.Object is used or when +// passed directly to zap.Any. It is not used when reflection-based +// encoding is used. type ObjectMarshaler interface { MarshalLogObject(ObjectEncoder) error } @@ -39,6 +43,10 @@ func (f ObjectMarshalerFunc) MarshalLogObject(enc ObjectEncoder) error { // ArrayMarshaler allows user-defined types to efficiently add themselves to the // logging context, and to selectively omit information which shouldn't be // included in logs (e.g., passwords). +// +// Note: ArrayMarshaler is only used when zap.Array is used or when +// passed directly to zap.Any. It is not used when reflection-based +// encoding is used. type ArrayMarshaler interface { MarshalLogArray(ArrayEncoder) error } diff --git a/vendor/go.uber.org/zap/zapcore/write_syncer.go b/vendor/go.uber.org/zap/zapcore/write_syncer.go index 209e25fe22..d4a1af3d07 100644 --- a/vendor/go.uber.org/zap/zapcore/write_syncer.go +++ b/vendor/go.uber.org/zap/zapcore/write_syncer.go @@ -91,8 +91,7 @@ func NewMultiWriteSyncer(ws ...WriteSyncer) WriteSyncer { if len(ws) == 1 { return ws[0] } - // Copy to protect against https://github.com/golang/go/issues/7809 - return multiWriteSyncer(append([]WriteSyncer(nil), ws...)) + return multiWriteSyncer(ws) } // See https://golang.org/src/io/multi.go diff --git a/vendor/golang.org/x/mod/module/module.go b/vendor/golang.org/x/mod/module/module.go index 6cd37280a8..c1c5263c42 100644 --- a/vendor/golang.org/x/mod/module/module.go +++ b/vendor/golang.org/x/mod/module/module.go @@ -97,6 +97,7 @@ package module import ( "fmt" + "path" "sort" "strings" "unicode" @@ -224,13 +225,13 @@ func firstPathOK(r rune) bool { } // pathOK reports whether r can appear in an import path element. -// Paths can be ASCII letters, ASCII digits, and limited ASCII punctuation: + - . _ and ~. +// Paths can be ASCII letters, ASCII digits, and limited ASCII punctuation: - . _ and ~. // This matches what "go get" has historically recognized in import paths. // TODO(rsc): We would like to allow Unicode letters, but that requires additional // care in the safe encoding (see "escaped paths" above). func pathOK(r rune) bool { if r < utf8.RuneSelf { - return r == '+' || r == '-' || r == '.' || r == '_' || r == '~' || + return r == '-' || r == '.' || r == '_' || r == '~' || '0' <= r && r <= '9' || 'A' <= r && r <= 'Z' || 'a' <= r && r <= 'z' @@ -313,11 +314,13 @@ func CheckPath(path string) error { // separated by slashes (U+002F). (It must not begin with nor end in a slash.) // // A valid path element is a non-empty string made up of -// ASCII letters, ASCII digits, and limited ASCII punctuation: + - . _ and ~. +// ASCII letters, ASCII digits, and limited ASCII punctuation: - . _ and ~. // It must not begin or end with a dot (U+002E), nor contain two dots in a row. // // The element prefix up to the first dot must not be a reserved file name -// on Windows, regardless of case (CON, com1, NuL, and so on). +// on Windows, regardless of case (CON, com1, NuL, and so on). The element +// must not have a suffix of a tilde followed by one or more ASCII digits +// (to exclude paths elements that look like Windows short-names). // // CheckImportPath may be less restrictive in the future, but see the // top-level package documentation for additional information about @@ -402,6 +405,29 @@ func checkElem(elem string, fileName bool) error { return fmt.Errorf("%q disallowed as path element component on Windows", short) } } + + if fileName { + // don't check for Windows short-names in file names. They're + // only an issue for import paths. + return nil + } + + // Reject path components that look like Windows short-names. + // Those usually end in a tilde followed by one or more ASCII digits. + if tilde := strings.LastIndexByte(short, '~'); tilde >= 0 && tilde < len(short)-1 { + suffix := short[tilde+1:] + suffixIsDigits := true + for _, r := range suffix { + if r < '0' || r > '9' { + suffixIsDigits = false + break + } + } + if suffixIsDigits { + return fmt.Errorf("trailing tilde and digits in path element") + } + } + return nil } @@ -716,3 +742,49 @@ func unescapeString(escaped string) (string, bool) { } return string(buf), true } + +// MatchPrefixPatterns reports whether any path prefix of target matches one of +// the glob patterns (as defined by path.Match) in the comma-separated globs +// list. This implements the algorithm used when matching a module path to the +// GOPRIVATE environment variable, as described by 'go help module-private'. +// +// It ignores any empty or malformed patterns in the list. +func MatchPrefixPatterns(globs, target string) bool { + for globs != "" { + // Extract next non-empty glob in comma-separated list. + var glob string + if i := strings.Index(globs, ","); i >= 0 { + glob, globs = globs[:i], globs[i+1:] + } else { + glob, globs = globs, "" + } + if glob == "" { + continue + } + + // A glob with N+1 path elements (N slashes) needs to be matched + // against the first N+1 path elements of target, + // which end just before the N+1'th slash. + n := strings.Count(glob, "/") + prefix := target + // Walk target, counting slashes, truncating at the N+1'th slash. + for i := 0; i < len(target); i++ { + if target[i] == '/' { + if n == 0 { + prefix = target[:i] + break + } + n-- + } + } + if n > 0 { + // Not enough prefix elements. + continue + } + matched, _ := path.Match(glob, prefix) + if matched { + return true + } + } + return false +} diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go index d20f52b7de..344bd14334 100644 --- a/vendor/golang.org/x/net/context/go17.go +++ b/vendor/golang.org/x/net/context/go17.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build go1.7 // +build go1.7 package context diff --git a/vendor/golang.org/x/net/context/go19.go b/vendor/golang.org/x/net/context/go19.go index d88bd1db12..64d31ecc3e 100644 --- a/vendor/golang.org/x/net/context/go19.go +++ b/vendor/golang.org/x/net/context/go19.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build go1.9 // +build go1.9 package context diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go index 0f35592df5..5270db5db7 100644 --- a/vendor/golang.org/x/net/context/pre_go17.go +++ b/vendor/golang.org/x/net/context/pre_go17.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !go1.7 // +build !go1.7 package context diff --git a/vendor/golang.org/x/net/context/pre_go19.go b/vendor/golang.org/x/net/context/pre_go19.go index b105f80be4..1f9715341f 100644 --- a/vendor/golang.org/x/net/context/pre_go19.go +++ b/vendor/golang.org/x/net/context/pre_go19.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !go1.9 // +build !go1.9 package context diff --git a/vendor/golang.org/x/net/http/httpguts/httplex.go b/vendor/golang.org/x/net/http/httpguts/httplex.go index e7de24ee64..c79aa73f28 100644 --- a/vendor/golang.org/x/net/http/httpguts/httplex.go +++ b/vendor/golang.org/x/net/http/httpguts/httplex.go @@ -137,11 +137,13 @@ func trimOWS(x string) string { // contains token amongst its comma-separated tokens, ASCII // case-insensitively. func headerValueContainsToken(v string, token string) bool { - v = trimOWS(v) - if comma := strings.IndexByte(v, ','); comma != -1 { - return tokenEqual(trimOWS(v[:comma]), token) || headerValueContainsToken(v[comma+1:], token) + for comma := strings.IndexByte(v, ','); comma != -1; comma = strings.IndexByte(v, ',') { + if tokenEqual(trimOWS(v[:comma]), token) { + return true + } + v = v[comma+1:] } - return tokenEqual(v, token) + return tokenEqual(trimOWS(v), token) } // lowerASCII returns the ASCII lowercase version of b. diff --git a/vendor/golang.org/x/net/http2/Dockerfile b/vendor/golang.org/x/net/http2/Dockerfile index 53fc525797..8512245952 100644 --- a/vendor/golang.org/x/net/http2/Dockerfile +++ b/vendor/golang.org/x/net/http2/Dockerfile @@ -38,7 +38,7 @@ RUN make RUN make install WORKDIR /root -RUN wget http://curl.haxx.se/download/curl-7.45.0.tar.gz +RUN wget https://curl.se/download/curl-7.45.0.tar.gz RUN tar -zxvf curl-7.45.0.tar.gz WORKDIR /root/curl-7.45.0 RUN ./configure --with-ssl --with-nghttp2=/usr/local diff --git a/vendor/golang.org/x/net/http2/go111.go b/vendor/golang.org/x/net/http2/go111.go index 3a131016b2..5bf62b032e 100644 --- a/vendor/golang.org/x/net/http2/go111.go +++ b/vendor/golang.org/x/net/http2/go111.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build go1.11 // +build go1.11 package http2 diff --git a/vendor/golang.org/x/net/http2/not_go111.go b/vendor/golang.org/x/net/http2/not_go111.go index 161bca7ce8..cc0baa8197 100644 --- a/vendor/golang.org/x/net/http2/not_go111.go +++ b/vendor/golang.org/x/net/http2/not_go111.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !go1.11 // +build !go1.11 package http2 diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index 2aa859f76f..e125bbd2a2 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -1293,7 +1293,9 @@ func (sc *serverConn) startGracefulShutdown() { sc.shutdownOnce.Do(func() { sc.sendServeMsg(gracefulShutdownMsg) }) } -// After sending GOAWAY, the connection will close after goAwayTimeout. +// After sending GOAWAY with an error code (non-graceful shutdown), the +// connection will close after goAwayTimeout. +// // If we close the connection immediately after sending GOAWAY, there may // be unsent data in our kernel receive buffer, which will cause the kernel // to send a TCP RST on close() instead of a FIN. This RST will abort the @@ -1629,23 +1631,37 @@ func (sc *serverConn) processSettingInitialWindowSize(val uint32) error { func (sc *serverConn) processData(f *DataFrame) error { sc.serveG.check() - if sc.inGoAway && sc.goAwayCode != ErrCodeNo { + id := f.Header().StreamID + if sc.inGoAway && (sc.goAwayCode != ErrCodeNo || id > sc.maxClientStreamID) { + // Discard all DATA frames if the GOAWAY is due to an + // error, or: + // + // Section 6.8: After sending a GOAWAY frame, the sender + // can discard frames for streams initiated by the + // receiver with identifiers higher than the identified + // last stream. return nil } - data := f.Data() - // "If a DATA frame is received whose stream is not in "open" - // or "half closed (local)" state, the recipient MUST respond - // with a stream error (Section 5.4.2) of type STREAM_CLOSED." - id := f.Header().StreamID + data := f.Data() state, st := sc.state(id) if id == 0 || state == stateIdle { + // Section 6.1: "DATA frames MUST be associated with a + // stream. If a DATA frame is received whose stream + // identifier field is 0x0, the recipient MUST respond + // with a connection error (Section 5.4.1) of type + // PROTOCOL_ERROR." + // // Section 5.1: "Receiving any frame other than HEADERS // or PRIORITY on a stream in this state MUST be // treated as a connection error (Section 5.4.1) of // type PROTOCOL_ERROR." return ConnectionError(ErrCodeProtocol) } + + // "If a DATA frame is received whose stream is not in "open" + // or "half closed (local)" state, the recipient MUST respond + // with a stream error (Section 5.4.2) of type STREAM_CLOSED." if st == nil || state != stateOpen || st.gotTrailerHeader || st.resetQueued { // This includes sending a RST_STREAM if the stream is // in stateHalfClosedLocal (which currently means that diff --git a/vendor/golang.org/x/net/idna/idna10.0.0.go b/vendor/golang.org/x/net/idna/idna10.0.0.go index a98a31f403..7e69ee1b22 100644 --- a/vendor/golang.org/x/net/idna/idna10.0.0.go +++ b/vendor/golang.org/x/net/idna/idna10.0.0.go @@ -4,6 +4,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build go1.10 // +build go1.10 // Package idna implements IDNA2008 using the compatibility processing diff --git a/vendor/golang.org/x/net/idna/idna9.0.0.go b/vendor/golang.org/x/net/idna/idna9.0.0.go index 8842146b5d..7c7456374c 100644 --- a/vendor/golang.org/x/net/idna/idna9.0.0.go +++ b/vendor/golang.org/x/net/idna/idna9.0.0.go @@ -4,6 +4,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !go1.10 // +build !go1.10 // Package idna implements IDNA2008 using the compatibility processing diff --git a/vendor/golang.org/x/net/idna/tables10.0.0.go b/vendor/golang.org/x/net/idna/tables10.0.0.go index 54fddb4b16..d1d62ef459 100644 --- a/vendor/golang.org/x/net/idna/tables10.0.0.go +++ b/vendor/golang.org/x/net/idna/tables10.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.10 && !go1.13 // +build go1.10,!go1.13 package idna diff --git a/vendor/golang.org/x/net/idna/tables11.0.0.go b/vendor/golang.org/x/net/idna/tables11.0.0.go index 8ce0811fdf..167efba712 100644 --- a/vendor/golang.org/x/net/idna/tables11.0.0.go +++ b/vendor/golang.org/x/net/idna/tables11.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.13 && !go1.14 // +build go1.13,!go1.14 package idna diff --git a/vendor/golang.org/x/net/idna/tables12.0.0.go b/vendor/golang.org/x/net/idna/tables12.0.0.go index f39f0cb4cd..ab40f7bcc3 100644 --- a/vendor/golang.org/x/net/idna/tables12.0.0.go +++ b/vendor/golang.org/x/net/idna/tables12.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.14 && !go1.16 // +build go1.14,!go1.16 package idna diff --git a/vendor/golang.org/x/net/idna/tables13.0.0.go b/vendor/golang.org/x/net/idna/tables13.0.0.go index e8c7a36d7a..390c5e56d2 100644 --- a/vendor/golang.org/x/net/idna/tables13.0.0.go +++ b/vendor/golang.org/x/net/idna/tables13.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.16 // +build go1.16 package idna diff --git a/vendor/golang.org/x/net/idna/tables9.0.0.go b/vendor/golang.org/x/net/idna/tables9.0.0.go index 8b65fa1678..4074b5332e 100644 --- a/vendor/golang.org/x/net/idna/tables9.0.0.go +++ b/vendor/golang.org/x/net/idna/tables9.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build !go1.10 // +build !go1.10 package idna diff --git a/vendor/golang.org/x/sync/singleflight/singleflight.go b/vendor/golang.org/x/sync/singleflight/singleflight.go index 97a1aa4bb3..690eb85013 100644 --- a/vendor/golang.org/x/sync/singleflight/singleflight.go +++ b/vendor/golang.org/x/sync/singleflight/singleflight.go @@ -6,7 +6,42 @@ // mechanism. package singleflight // import "golang.org/x/sync/singleflight" -import "sync" +import ( + "bytes" + "errors" + "fmt" + "runtime" + "runtime/debug" + "sync" +) + +// errGoexit indicates the runtime.Goexit was called in +// the user given function. +var errGoexit = errors.New("runtime.Goexit was called") + +// A panicError is an arbitrary value recovered from a panic +// with the stack trace during the execution of given function. +type panicError struct { + value interface{} + stack []byte +} + +// Error implements error interface. +func (p *panicError) Error() string { + return fmt.Sprintf("%v\n\n%s", p.value, p.stack) +} + +func newPanicError(v interface{}) error { + stack := debug.Stack() + + // The first line of the stack trace is of the form "goroutine N [status]:" + // but by the time the panic reaches Do the goroutine may no longer exist + // and its status will have changed. Trim out the misleading line. + if line := bytes.IndexByte(stack[:], '\n'); line >= 0 { + stack = stack[line+1:] + } + return &panicError{value: v, stack: stack} +} // call is an in-flight or completed singleflight.Do call type call struct { @@ -57,6 +92,12 @@ func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, e c.dups++ g.mu.Unlock() c.wg.Wait() + + if e, ok := c.err.(*panicError); ok { + panic(e) + } else if c.err == errGoexit { + runtime.Goexit() + } return c.val, c.err, true } c := new(call) @@ -70,6 +111,8 @@ func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, e // DoChan is like Do but returns a channel that will receive the // results when they are ready. +// +// The returned channel will not be closed. func (g *Group) DoChan(key string, fn func() (interface{}, error)) <-chan Result { ch := make(chan Result, 1) g.mu.Lock() @@ -94,17 +137,66 @@ func (g *Group) DoChan(key string, fn func() (interface{}, error)) <-chan Result // doCall handles the single call for a key. func (g *Group) doCall(c *call, key string, fn func() (interface{}, error)) { - c.val, c.err = fn() - c.wg.Done() - - g.mu.Lock() - if !c.forgotten { - delete(g.m, key) - } - for _, ch := range c.chans { - ch <- Result{c.val, c.err, c.dups > 0} + normalReturn := false + recovered := false + + // use double-defer to distinguish panic from runtime.Goexit, + // more details see https://golang.org/cl/134395 + defer func() { + // the given function invoked runtime.Goexit + if !normalReturn && !recovered { + c.err = errGoexit + } + + c.wg.Done() + g.mu.Lock() + defer g.mu.Unlock() + if !c.forgotten { + delete(g.m, key) + } + + if e, ok := c.err.(*panicError); ok { + // In order to prevent the waiting channels from being blocked forever, + // needs to ensure that this panic cannot be recovered. + if len(c.chans) > 0 { + go panic(e) + select {} // Keep this goroutine around so that it will appear in the crash dump. + } else { + panic(e) + } + } else if c.err == errGoexit { + // Already in the process of goexit, no need to call again + } else { + // Normal return + for _, ch := range c.chans { + ch <- Result{c.val, c.err, c.dups > 0} + } + } + }() + + func() { + defer func() { + if !normalReturn { + // Ideally, we would wait to take a stack trace until we've determined + // whether this is a panic or a runtime.Goexit. + // + // Unfortunately, the only way we can distinguish the two is to see + // whether the recover stopped the goroutine from terminating, and by + // the time we know that, the part of the stack trace relevant to the + // panic has been discarded. + if r := recover(); r != nil { + c.err = newPanicError(r) + } + } + }() + + c.val, c.err = fn() + normalReturn = true + }() + + if !normalReturn { + recovered = true } - g.mu.Unlock() } // Forget tells the singleflight to forget about a key. Future calls diff --git a/vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s b/vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s index 06f84b8555..db9171c2e4 100644 --- a/vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s +++ b/vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +//go:build gc +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go index 5cce25ed9b..abbec2d44b 100644 --- a/vendor/golang.org/x/sys/cpu/cpu.go +++ b/vendor/golang.org/x/sys/cpu/cpu.go @@ -29,26 +29,46 @@ type CacheLinePad struct{ _ [cacheLineSize]byte } // and HasAVX2 are only set if the OS supports XMM and YMM // registers in addition to the CPUID feature bit being set. var X86 struct { - _ CacheLinePad - HasAES bool // AES hardware implementation (AES NI) - HasADX bool // Multi-precision add-carry instruction extensions - HasAVX bool // Advanced vector extension - HasAVX2 bool // Advanced vector extension 2 - HasBMI1 bool // Bit manipulation instruction set 1 - HasBMI2 bool // Bit manipulation instruction set 2 - HasERMS bool // Enhanced REP for MOVSB and STOSB - HasFMA bool // Fused-multiply-add instructions - HasOSXSAVE bool // OS supports XSAVE/XRESTOR for saving/restoring XMM registers. - HasPCLMULQDQ bool // PCLMULQDQ instruction - most often used for AES-GCM - HasPOPCNT bool // Hamming weight instruction POPCNT. - HasRDRAND bool // RDRAND instruction (on-chip random number generator) - HasRDSEED bool // RDSEED instruction (on-chip random number generator) - HasSSE2 bool // Streaming SIMD extension 2 (always available on amd64) - HasSSE3 bool // Streaming SIMD extension 3 - HasSSSE3 bool // Supplemental streaming SIMD extension 3 - HasSSE41 bool // Streaming SIMD extension 4 and 4.1 - HasSSE42 bool // Streaming SIMD extension 4 and 4.2 - _ CacheLinePad + _ CacheLinePad + HasAES bool // AES hardware implementation (AES NI) + HasADX bool // Multi-precision add-carry instruction extensions + HasAVX bool // Advanced vector extension + HasAVX2 bool // Advanced vector extension 2 + HasAVX512 bool // Advanced vector extension 512 + HasAVX512F bool // Advanced vector extension 512 Foundation Instructions + HasAVX512CD bool // Advanced vector extension 512 Conflict Detection Instructions + HasAVX512ER bool // Advanced vector extension 512 Exponential and Reciprocal Instructions + HasAVX512PF bool // Advanced vector extension 512 Prefetch Instructions Instructions + HasAVX512VL bool // Advanced vector extension 512 Vector Length Extensions + HasAVX512BW bool // Advanced vector extension 512 Byte and Word Instructions + HasAVX512DQ bool // Advanced vector extension 512 Doubleword and Quadword Instructions + HasAVX512IFMA bool // Advanced vector extension 512 Integer Fused Multiply Add + HasAVX512VBMI bool // Advanced vector extension 512 Vector Byte Manipulation Instructions + HasAVX5124VNNIW bool // Advanced vector extension 512 Vector Neural Network Instructions Word variable precision + HasAVX5124FMAPS bool // Advanced vector extension 512 Fused Multiply Accumulation Packed Single precision + HasAVX512VPOPCNTDQ bool // Advanced vector extension 512 Double and quad word population count instructions + HasAVX512VPCLMULQDQ bool // Advanced vector extension 512 Vector carry-less multiply operations + HasAVX512VNNI bool // Advanced vector extension 512 Vector Neural Network Instructions + HasAVX512GFNI bool // Advanced vector extension 512 Galois field New Instructions + HasAVX512VAES bool // Advanced vector extension 512 Vector AES instructions + HasAVX512VBMI2 bool // Advanced vector extension 512 Vector Byte Manipulation Instructions 2 + HasAVX512BITALG bool // Advanced vector extension 512 Bit Algorithms + HasAVX512BF16 bool // Advanced vector extension 512 BFloat16 Instructions + HasBMI1 bool // Bit manipulation instruction set 1 + HasBMI2 bool // Bit manipulation instruction set 2 + HasERMS bool // Enhanced REP for MOVSB and STOSB + HasFMA bool // Fused-multiply-add instructions + HasOSXSAVE bool // OS supports XSAVE/XRESTOR for saving/restoring XMM registers. + HasPCLMULQDQ bool // PCLMULQDQ instruction - most often used for AES-GCM + HasPOPCNT bool // Hamming weight instruction POPCNT. + HasRDRAND bool // RDRAND instruction (on-chip random number generator) + HasRDSEED bool // RDSEED instruction (on-chip random number generator) + HasSSE2 bool // Streaming SIMD extension 2 (always available on amd64) + HasSSE3 bool // Streaming SIMD extension 3 + HasSSSE3 bool // Supplemental streaming SIMD extension 3 + HasSSE41 bool // Streaming SIMD extension 4 and 4.1 + HasSSE42 bool // Streaming SIMD extension 4 and 4.2 + _ CacheLinePad } // ARM64 contains the supported CPU features of the @@ -134,14 +154,13 @@ var MIPS64X struct { // For ppc64/ppc64le, it is safe to check only for ISA level starting on ISA v3.00, // since there are no optional categories. There are some exceptions that also // require kernel support to work (DARN, SCV), so there are feature bits for -// those as well. The minimum processor requirement is POWER8 (ISA 2.07). -// The struct is padded to avoid false sharing. +// those as well. The struct is padded to avoid false sharing. var PPC64 struct { _ CacheLinePad HasDARN bool // Hardware random number generator (requires kernel enablement) HasSCV bool // Syscall vectored (requires kernel enablement) IsPOWER8 bool // ISA v2.07 (POWER8) - IsPOWER9 bool // ISA v3.00 (POWER9) + IsPOWER9 bool // ISA v3.00 (POWER9), implies IsPOWER8 _ CacheLinePad } diff --git a/vendor/golang.org/x/sys/cpu/cpu_aix.go b/vendor/golang.org/x/sys/cpu/cpu_aix.go index 464a209cf5..8aaeef545a 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_aix.go +++ b/vendor/golang.org/x/sys/cpu/cpu_aix.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build aix // +build aix package cpu @@ -19,6 +20,7 @@ func archInit() { PPC64.IsPOWER8 = true } if impl&_IMPL_POWER9 != 0 { + PPC64.IsPOWER8 = true PPC64.IsPOWER9 = true } diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_arm64.go index 2d90024387..87dd5e3021 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.go @@ -39,31 +39,34 @@ func initOptions() { func archInit() { switch runtime.GOOS { - case "android", "darwin", "netbsd": - // Android and iOS don't seem to allow reading these registers. - // - // NetBSD: - // ID_AA64ISAR0_EL1 is a privileged register and cannot be read from EL0. - // It can be read via sysctl(3). Example for future implementers: - // https://nxr.netbsd.org/xref/src/usr.sbin/cpuctl/arch/aarch64.c - // - // Fake the minimal features expected by - // TestARM64minimalFeatures. - ARM64.HasASIMD = true - ARM64.HasFP = true - case "linux": + case "freebsd": + readARM64Registers() + case "linux", "netbsd": doinit() default: - readARM64Registers() + // Most platforms don't seem to allow reading these registers. + // + // OpenBSD: + // See https://golang.org/issue/31746 + setMinimalFeatures() } } +// setMinimalFeatures fakes the minimal ARM64 features expected by +// TestARM64minimalFeatures. +func setMinimalFeatures() { + ARM64.HasASIMD = true + ARM64.HasFP = true +} + func readARM64Registers() { Initialized = true - // ID_AA64ISAR0_EL1 - isar0 := getisar0() + parseARM64SystemRegisters(getisar0(), getisar1(), getpfr0()) +} +func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) { + // ID_AA64ISAR0_EL1 switch extractBits(isar0, 4, 7) { case 1: ARM64.HasAES = true @@ -121,8 +124,6 @@ func readARM64Registers() { } // ID_AA64ISAR1_EL1 - isar1 := getisar1() - switch extractBits(isar1, 0, 3) { case 1: ARM64.HasDCPOP = true @@ -144,8 +145,6 @@ func readARM64Registers() { } // ID_AA64PFR0_EL1 - pfr0 := getpfr0() - switch extractBits(pfr0, 16, 19) { case 0: ARM64.HasFP = true diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.s b/vendor/golang.org/x/sys/cpu/cpu_arm64.s index a54436e390..c61f95a05a 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.s +++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.s @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +//go:build gc +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go index 7b88e865a4..ccf542a73d 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +//go:build gc +// +build gc package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go index 568bcd031a..0af2f24841 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go +++ b/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +//go:build gc +// +build gc package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go b/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go index f7cb46971c..3298a87e98 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go +++ b/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go @@ -2,8 +2,9 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build (386 || amd64 || amd64p32) && gc // +build 386 amd64 amd64p32 -// +build !gccgo +// +build gc package cpu @@ -14,3 +15,7 @@ func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) // xgetbv with ecx = 0 is implemented in cpu_x86.s for gc compiler // and in cpu_gccgo.c for gccgo. func xgetbv() (eax, edx uint32) + +// darwinSupportsAVX512 is implemented in cpu_x86.s for gc compiler +// and in cpu_gccgo_x86.go for gccgo. +func darwinSupportsAVX512() bool diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go index 53ca8d65c3..2aff318911 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build gccgo // +build gccgo package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go index aa986f7782..4bfbda6199 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go +++ b/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build gccgo // +build gccgo package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go index ba49b91bd3..863d415ab4 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go +++ b/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build (386 || amd64 || amd64p32) && gccgo // +build 386 amd64 amd64p32 // +build gccgo @@ -24,3 +25,9 @@ func xgetbv() (eax, edx uint32) { gccgoXgetbv(&a, &d) return a, d } + +// gccgo doesn't build on Darwin, per: +// https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/gcc.rb#L76 +func darwinSupportsAVX512() bool { + return false +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux.go b/vendor/golang.org/x/sys/cpu/cpu_linux.go index 6fc874f7fe..159a686f6f 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_linux.go +++ b/vendor/golang.org/x/sys/cpu/cpu_linux.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !386 && !amd64 && !amd64p32 && !arm64 // +build !386,!amd64,!amd64p32,!arm64 package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go index 5a41890053..6000db4cdd 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (mips64 || mips64le) // +build linux // +build mips64 mips64le diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go b/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go index 42b5d33cb6..f4992b1a59 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && !arm && !arm64 && !mips64 && !mips64le && !ppc64 && !ppc64le && !s390x // +build linux,!arm,!arm64,!mips64,!mips64le,!ppc64,!ppc64le,!s390x package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go index 99f8a6399e..021356d6de 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (ppc64 || ppc64le) // +build linux // +build ppc64 ppc64le diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go index b88d6b8f66..1517ac61d3 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go @@ -17,86 +17,7 @@ const ( hwcap_VXE = 8192 ) -// bitIsSet reports whether the bit at index is set. The bit index -// is in big endian order, so bit index 0 is the leftmost bit. -func bitIsSet(bits []uint64, index uint) bool { - return bits[index/64]&((1<<63)>>(index%64)) != 0 -} - -// function is the code for the named cryptographic function. -type function uint8 - -const ( - // KM{,A,C,CTR} function codes - aes128 function = 18 // AES-128 - aes192 function = 19 // AES-192 - aes256 function = 20 // AES-256 - - // K{I,L}MD function codes - sha1 function = 1 // SHA-1 - sha256 function = 2 // SHA-256 - sha512 function = 3 // SHA-512 - sha3_224 function = 32 // SHA3-224 - sha3_256 function = 33 // SHA3-256 - sha3_384 function = 34 // SHA3-384 - sha3_512 function = 35 // SHA3-512 - shake128 function = 36 // SHAKE-128 - shake256 function = 37 // SHAKE-256 - - // KLMD function codes - ghash function = 65 // GHASH -) - -// queryResult contains the result of a Query function -// call. Bits are numbered in big endian order so the -// leftmost bit (the MSB) is at index 0. -type queryResult struct { - bits [2]uint64 -} - -// Has reports whether the given functions are present. -func (q *queryResult) Has(fns ...function) bool { - if len(fns) == 0 { - panic("no function codes provided") - } - for _, f := range fns { - if !bitIsSet(q.bits[:], uint(f)) { - return false - } - } - return true -} - -// facility is a bit index for the named facility. -type facility uint8 - -const ( - // cryptography facilities - msa4 facility = 77 // message-security-assist extension 4 - msa8 facility = 146 // message-security-assist extension 8 -) - -// facilityList contains the result of an STFLE call. -// Bits are numbered in big endian order so the -// leftmost bit (the MSB) is at index 0. -type facilityList struct { - bits [4]uint64 -} - -// Has reports whether the given facilities are present. -func (s *facilityList) Has(fs ...facility) bool { - if len(fs) == 0 { - panic("no facility bits provided") - } - for _, f := range fs { - if !bitIsSet(s.bits[:], uint(f)) { - return false - } - } - return true -} - -func doinit() { +func initS390Xbase() { // test HWCAP bit vector has := func(featureMask uint) bool { return hwCap&featureMask == featureMask @@ -116,44 +37,4 @@ func doinit() { if S390X.HasVX { S390X.HasVXE = has(hwcap_VXE) } - - // We need implementations of stfle, km and so on - // to detect cryptographic features. - if !haveAsmFunctions() { - return - } - - // optional cryptographic functions - if S390X.HasMSA { - aes := []function{aes128, aes192, aes256} - - // cipher message - km, kmc := kmQuery(), kmcQuery() - S390X.HasAES = km.Has(aes...) - S390X.HasAESCBC = kmc.Has(aes...) - if S390X.HasSTFLE { - facilities := stfle() - if facilities.Has(msa4) { - kmctr := kmctrQuery() - S390X.HasAESCTR = kmctr.Has(aes...) - } - if facilities.Has(msa8) { - kma := kmaQuery() - S390X.HasAESGCM = kma.Has(aes...) - } - } - - // compute message digest - kimd := kimdQuery() // intermediate (no padding) - klmd := klmdQuery() // last (padding) - S390X.HasSHA1 = kimd.Has(sha1) && klmd.Has(sha1) - S390X.HasSHA256 = kimd.Has(sha256) && klmd.Has(sha256) - S390X.HasSHA512 = kimd.Has(sha512) && klmd.Has(sha512) - S390X.HasGHASH = kimd.Has(ghash) // KLMD-GHASH does not exist - sha3 := []function{ - sha3_224, sha3_256, sha3_384, sha3_512, - shake128, shake256, - } - S390X.HasSHA3 = kimd.Has(sha3...) && klmd.Has(sha3...) - } } diff --git a/vendor/golang.org/x/sys/cpu/cpu_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_mips64x.go index 57b5b677de..f4063c6642 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_mips64x.go +++ b/vendor/golang.org/x/sys/cpu/cpu_mips64x.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build mips64 || mips64le // +build mips64 mips64le package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_mipsx.go b/vendor/golang.org/x/sys/cpu/cpu_mipsx.go index cfc1946b7b..07c4e36d8f 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_mipsx.go +++ b/vendor/golang.org/x/sys/cpu/cpu_mipsx.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build mips || mipsle // +build mips mipsle package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go new file mode 100644 index 0000000000..ebfb3fc8e7 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go @@ -0,0 +1,173 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cpu + +import ( + "syscall" + "unsafe" +) + +// Minimal copy of functionality from x/sys/unix so the cpu package can call +// sysctl without depending on x/sys/unix. + +const ( + _CTL_QUERY = -2 + + _SYSCTL_VERS_1 = 0x1000000 +) + +var _zero uintptr + +func sysctl(mib []int32, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, errno := syscall.Syscall6( + syscall.SYS___SYSCTL, + uintptr(_p0), + uintptr(len(mib)), + uintptr(unsafe.Pointer(old)), + uintptr(unsafe.Pointer(oldlen)), + uintptr(unsafe.Pointer(new)), + uintptr(newlen)) + if errno != 0 { + return errno + } + return nil +} + +type sysctlNode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + __rsvd uint32 + Un [16]byte + _sysctl_size [8]byte + _sysctl_func [8]byte + _sysctl_parent [8]byte + _sysctl_desc [8]byte +} + +func sysctlNodes(mib []int32) ([]sysctlNode, error) { + var olen uintptr + + // Get a list of all sysctl nodes below the given MIB by performing + // a sysctl for the given MIB with CTL_QUERY appended. + mib = append(mib, _CTL_QUERY) + qnode := sysctlNode{Flags: _SYSCTL_VERS_1} + qp := (*byte)(unsafe.Pointer(&qnode)) + sz := unsafe.Sizeof(qnode) + if err := sysctl(mib, nil, &olen, qp, sz); err != nil { + return nil, err + } + + // Now that we know the size, get the actual nodes. + nodes := make([]sysctlNode, olen/sz) + np := (*byte)(unsafe.Pointer(&nodes[0])) + if err := sysctl(mib, np, &olen, qp, sz); err != nil { + return nil, err + } + + return nodes, nil +} + +func nametomib(name string) ([]int32, error) { + // Split name into components. + var parts []string + last := 0 + for i := 0; i < len(name); i++ { + if name[i] == '.' { + parts = append(parts, name[last:i]) + last = i + 1 + } + } + parts = append(parts, name[last:]) + + mib := []int32{} + // Discover the nodes and construct the MIB OID. + for partno, part := range parts { + nodes, err := sysctlNodes(mib) + if err != nil { + return nil, err + } + for _, node := range nodes { + n := make([]byte, 0) + for i := range node.Name { + if node.Name[i] != 0 { + n = append(n, byte(node.Name[i])) + } + } + if string(n) == part { + mib = append(mib, int32(node.Num)) + break + } + } + if len(mib) != partno+1 { + return nil, err + } + } + + return mib, nil +} + +// aarch64SysctlCPUID is struct aarch64_sysctl_cpu_id from NetBSD's +type aarch64SysctlCPUID struct { + midr uint64 /* Main ID Register */ + revidr uint64 /* Revision ID Register */ + mpidr uint64 /* Multiprocessor Affinity Register */ + aa64dfr0 uint64 /* A64 Debug Feature Register 0 */ + aa64dfr1 uint64 /* A64 Debug Feature Register 1 */ + aa64isar0 uint64 /* A64 Instruction Set Attribute Register 0 */ + aa64isar1 uint64 /* A64 Instruction Set Attribute Register 1 */ + aa64mmfr0 uint64 /* A64 Memory Model Feature Register 0 */ + aa64mmfr1 uint64 /* A64 Memory Model Feature Register 1 */ + aa64mmfr2 uint64 /* A64 Memory Model Feature Register 2 */ + aa64pfr0 uint64 /* A64 Processor Feature Register 0 */ + aa64pfr1 uint64 /* A64 Processor Feature Register 1 */ + aa64zfr0 uint64 /* A64 SVE Feature ID Register 0 */ + mvfr0 uint32 /* Media and VFP Feature Register 0 */ + mvfr1 uint32 /* Media and VFP Feature Register 1 */ + mvfr2 uint32 /* Media and VFP Feature Register 2 */ + pad uint32 + clidr uint64 /* Cache Level ID Register */ + ctr uint64 /* Cache Type Register */ +} + +func sysctlCPUID(name string) (*aarch64SysctlCPUID, error) { + mib, err := nametomib(name) + if err != nil { + return nil, err + } + + out := aarch64SysctlCPUID{} + n := unsafe.Sizeof(out) + _, _, errno := syscall.Syscall6( + syscall.SYS___SYSCTL, + uintptr(unsafe.Pointer(&mib[0])), + uintptr(len(mib)), + uintptr(unsafe.Pointer(&out)), + uintptr(unsafe.Pointer(&n)), + uintptr(0), + uintptr(0)) + if errno != 0 { + return nil, errno + } + return &out, nil +} + +func doinit() { + cpuid, err := sysctlCPUID("machdep.cpu0.cpu_id") + if err != nil { + setMinimalFeatures() + return + } + parseARM64SystemRegisters(cpuid.aa64isar0, cpuid.aa64isar1, cpuid.aa64pfr0) + + Initialized = true +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_arm.go b/vendor/golang.org/x/sys/cpu/cpu_other_arm.go index b412efc1bd..d7b4fb4ccc 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_other_arm.go +++ b/vendor/golang.org/x/sys/cpu/cpu_other_arm.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !linux && arm // +build !linux,arm package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go index 3ffc4afa03..f8c484f589 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !linux,arm64 +//go:build !linux && !netbsd && arm64 +// +build !linux,!netbsd,arm64 package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_other_mips64x.go new file mode 100644 index 0000000000..0dafe9644a --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_other_mips64x.go @@ -0,0 +1,13 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !linux && (mips64 || mips64le) +// +build !linux +// +build mips64 mips64le + +package cpu + +func archInit() { + Initialized = true +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go index d28d675b5f..4e8acd1658 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go +++ b/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build ppc64 || ppc64le // +build ppc64 ppc64le package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go index 8b08de341b..bd6c128af9 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build riscv64 // +build riscv64 package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_s390x.go index 544cd621ce..5881b8833f 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_s390x.go +++ b/vendor/golang.org/x/sys/cpu/cpu_s390x.go @@ -8,10 +8,10 @@ const cacheLineSize = 256 func initOptions() { options = []option{ - {Name: "zarch", Feature: &S390X.HasZARCH}, - {Name: "stfle", Feature: &S390X.HasSTFLE}, - {Name: "ldisp", Feature: &S390X.HasLDISP}, - {Name: "eimm", Feature: &S390X.HasEIMM}, + {Name: "zarch", Feature: &S390X.HasZARCH, Required: true}, + {Name: "stfle", Feature: &S390X.HasSTFLE, Required: true}, + {Name: "ldisp", Feature: &S390X.HasLDISP, Required: true}, + {Name: "eimm", Feature: &S390X.HasEIMM, Required: true}, {Name: "dfp", Feature: &S390X.HasDFP}, {Name: "etf3eh", Feature: &S390X.HasETF3EH}, {Name: "msa", Feature: &S390X.HasMSA}, @@ -28,3 +28,145 @@ func initOptions() { {Name: "vxe", Feature: &S390X.HasVXE}, } } + +// bitIsSet reports whether the bit at index is set. The bit index +// is in big endian order, so bit index 0 is the leftmost bit. +func bitIsSet(bits []uint64, index uint) bool { + return bits[index/64]&((1<<63)>>(index%64)) != 0 +} + +// facility is a bit index for the named facility. +type facility uint8 + +const ( + // mandatory facilities + zarch facility = 1 // z architecture mode is active + stflef facility = 7 // store-facility-list-extended + ldisp facility = 18 // long-displacement + eimm facility = 21 // extended-immediate + + // miscellaneous facilities + dfp facility = 42 // decimal-floating-point + etf3eh facility = 30 // extended-translation 3 enhancement + + // cryptography facilities + msa facility = 17 // message-security-assist + msa3 facility = 76 // message-security-assist extension 3 + msa4 facility = 77 // message-security-assist extension 4 + msa5 facility = 57 // message-security-assist extension 5 + msa8 facility = 146 // message-security-assist extension 8 + msa9 facility = 155 // message-security-assist extension 9 + + // vector facilities + vx facility = 129 // vector facility + vxe facility = 135 // vector-enhancements 1 + vxe2 facility = 148 // vector-enhancements 2 +) + +// facilityList contains the result of an STFLE call. +// Bits are numbered in big endian order so the +// leftmost bit (the MSB) is at index 0. +type facilityList struct { + bits [4]uint64 +} + +// Has reports whether the given facilities are present. +func (s *facilityList) Has(fs ...facility) bool { + if len(fs) == 0 { + panic("no facility bits provided") + } + for _, f := range fs { + if !bitIsSet(s.bits[:], uint(f)) { + return false + } + } + return true +} + +// function is the code for the named cryptographic function. +type function uint8 + +const ( + // KM{,A,C,CTR} function codes + aes128 function = 18 // AES-128 + aes192 function = 19 // AES-192 + aes256 function = 20 // AES-256 + + // K{I,L}MD function codes + sha1 function = 1 // SHA-1 + sha256 function = 2 // SHA-256 + sha512 function = 3 // SHA-512 + sha3_224 function = 32 // SHA3-224 + sha3_256 function = 33 // SHA3-256 + sha3_384 function = 34 // SHA3-384 + sha3_512 function = 35 // SHA3-512 + shake128 function = 36 // SHAKE-128 + shake256 function = 37 // SHAKE-256 + + // KLMD function codes + ghash function = 65 // GHASH +) + +// queryResult contains the result of a Query function +// call. Bits are numbered in big endian order so the +// leftmost bit (the MSB) is at index 0. +type queryResult struct { + bits [2]uint64 +} + +// Has reports whether the given functions are present. +func (q *queryResult) Has(fns ...function) bool { + if len(fns) == 0 { + panic("no function codes provided") + } + for _, f := range fns { + if !bitIsSet(q.bits[:], uint(f)) { + return false + } + } + return true +} + +func doinit() { + initS390Xbase() + + // We need implementations of stfle, km and so on + // to detect cryptographic features. + if !haveAsmFunctions() { + return + } + + // optional cryptographic functions + if S390X.HasMSA { + aes := []function{aes128, aes192, aes256} + + // cipher message + km, kmc := kmQuery(), kmcQuery() + S390X.HasAES = km.Has(aes...) + S390X.HasAESCBC = kmc.Has(aes...) + if S390X.HasSTFLE { + facilities := stfle() + if facilities.Has(msa4) { + kmctr := kmctrQuery() + S390X.HasAESCTR = kmctr.Has(aes...) + } + if facilities.Has(msa8) { + kma := kmaQuery() + S390X.HasAESGCM = kma.Has(aes...) + } + } + + // compute message digest + kimd := kimdQuery() // intermediate (no padding) + klmd := klmdQuery() // last (padding) + S390X.HasSHA1 = kimd.Has(sha1) && klmd.Has(sha1) + S390X.HasSHA256 = kimd.Has(sha256) && klmd.Has(sha256) + S390X.HasSHA512 = kimd.Has(sha512) && klmd.Has(sha512) + S390X.HasGHASH = kimd.Has(ghash) // KLMD-GHASH does not exist + sha3 := []function{ + sha3_224, sha3_256, sha3_384, sha3_512, + shake128, shake256, + } + S390X.HasSHA3 = kimd.Has(sha3...) && klmd.Has(sha3...) + } +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_s390x.s b/vendor/golang.org/x/sys/cpu/cpu_s390x.s index e5037d92e0..96f81e2097 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_s390x.s +++ b/vendor/golang.org/x/sys/cpu/cpu_s390x.s @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +//go:build gc +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/cpu/cpu_wasm.go b/vendor/golang.org/x/sys/cpu/cpu_wasm.go index 5382f2a227..7747d888a6 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_wasm.go +++ b/vendor/golang.org/x/sys/cpu/cpu_wasm.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build wasm // +build wasm package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.go b/vendor/golang.org/x/sys/cpu/cpu_x86.go index 2ad039d40e..54ca4667fb 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_x86.go +++ b/vendor/golang.org/x/sys/cpu/cpu_x86.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build 386 || amd64 || amd64p32 // +build 386 amd64 amd64p32 package cpu @@ -16,6 +17,26 @@ func initOptions() { {Name: "aes", Feature: &X86.HasAES}, {Name: "avx", Feature: &X86.HasAVX}, {Name: "avx2", Feature: &X86.HasAVX2}, + {Name: "avx512", Feature: &X86.HasAVX512}, + {Name: "avx512f", Feature: &X86.HasAVX512F}, + {Name: "avx512cd", Feature: &X86.HasAVX512CD}, + {Name: "avx512er", Feature: &X86.HasAVX512ER}, + {Name: "avx512pf", Feature: &X86.HasAVX512PF}, + {Name: "avx512vl", Feature: &X86.HasAVX512VL}, + {Name: "avx512bw", Feature: &X86.HasAVX512BW}, + {Name: "avx512dq", Feature: &X86.HasAVX512DQ}, + {Name: "avx512ifma", Feature: &X86.HasAVX512IFMA}, + {Name: "avx512vbmi", Feature: &X86.HasAVX512VBMI}, + {Name: "avx512vnniw", Feature: &X86.HasAVX5124VNNIW}, + {Name: "avx5124fmaps", Feature: &X86.HasAVX5124FMAPS}, + {Name: "avx512vpopcntdq", Feature: &X86.HasAVX512VPOPCNTDQ}, + {Name: "avx512vpclmulqdq", Feature: &X86.HasAVX512VPCLMULQDQ}, + {Name: "avx512vnni", Feature: &X86.HasAVX512VNNI}, + {Name: "avx512gfni", Feature: &X86.HasAVX512GFNI}, + {Name: "avx512vaes", Feature: &X86.HasAVX512VAES}, + {Name: "avx512vbmi2", Feature: &X86.HasAVX512VBMI2}, + {Name: "avx512bitalg", Feature: &X86.HasAVX512BITALG}, + {Name: "avx512bf16", Feature: &X86.HasAVX512BF16}, {Name: "bmi1", Feature: &X86.HasBMI1}, {Name: "bmi2", Feature: &X86.HasBMI2}, {Name: "erms", Feature: &X86.HasERMS}, @@ -59,12 +80,21 @@ func archInit() { X86.HasOSXSAVE = isSet(27, ecx1) X86.HasRDRAND = isSet(30, ecx1) - osSupportsAVX := false + var osSupportsAVX, osSupportsAVX512 bool // For XGETBV, OSXSAVE bit is required and sufficient. if X86.HasOSXSAVE { eax, _ := xgetbv() // Check if XMM and YMM registers have OS support. osSupportsAVX = isSet(1, eax) && isSet(2, eax) + + if runtime.GOOS == "darwin" { + // Check darwin commpage for AVX512 support. Necessary because: + // https://github.com/apple/darwin-xnu/blob/0a798f6738bc1db01281fc08ae024145e84df927/osfmk/i386/fpu.c#L175-L201 + osSupportsAVX512 = osSupportsAVX && darwinSupportsAVX512() + } else { + // Check if OPMASK and ZMM registers have OS support. + osSupportsAVX512 = osSupportsAVX && isSet(5, eax) && isSet(6, eax) && isSet(7, eax) + } } X86.HasAVX = isSet(28, ecx1) && osSupportsAVX @@ -73,7 +103,7 @@ func archInit() { return } - _, ebx7, _, _ := cpuid(7, 0) + _, ebx7, ecx7, edx7 := cpuid(7, 0) X86.HasBMI1 = isSet(3, ebx7) X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX X86.HasBMI2 = isSet(8, ebx7) @@ -81,6 +111,30 @@ func archInit() { X86.HasRDSEED = isSet(18, ebx7) X86.HasADX = isSet(19, ebx7) + X86.HasAVX512 = isSet(16, ebx7) && osSupportsAVX512 // Because avx-512 foundation is the core required extension + if X86.HasAVX512 { + X86.HasAVX512F = true + X86.HasAVX512CD = isSet(28, ebx7) + X86.HasAVX512ER = isSet(27, ebx7) + X86.HasAVX512PF = isSet(26, ebx7) + X86.HasAVX512VL = isSet(31, ebx7) + X86.HasAVX512BW = isSet(30, ebx7) + X86.HasAVX512DQ = isSet(17, ebx7) + X86.HasAVX512IFMA = isSet(21, ebx7) + X86.HasAVX512VBMI = isSet(1, ecx7) + X86.HasAVX5124VNNIW = isSet(2, edx7) + X86.HasAVX5124FMAPS = isSet(3, edx7) + X86.HasAVX512VPOPCNTDQ = isSet(14, ecx7) + X86.HasAVX512VPCLMULQDQ = isSet(10, ecx7) + X86.HasAVX512VNNI = isSet(11, ecx7) + X86.HasAVX512GFNI = isSet(8, ecx7) + X86.HasAVX512VAES = isSet(9, ecx7) + X86.HasAVX512VBMI2 = isSet(6, ecx7) + X86.HasAVX512BITALG = isSet(12, ecx7) + + eax71, _, _, _ := cpuid(7, 1) + X86.HasAVX512BF16 = isSet(5, eax71) + } } func isSet(bitpos uint, value uint32) bool { diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.s b/vendor/golang.org/x/sys/cpu/cpu_x86.s index 47f084128c..b748ba52f7 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_x86.s +++ b/vendor/golang.org/x/sys/cpu/cpu_x86.s @@ -2,8 +2,9 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build (386 || amd64 || amd64p32) && gc // +build 386 amd64 amd64p32 -// +build !gccgo +// +build gc #include "textflag.h" @@ -25,3 +26,27 @@ TEXT ·xgetbv(SB),NOSPLIT,$0-8 MOVL AX, eax+0(FP) MOVL DX, edx+4(FP) RET + +// func darwinSupportsAVX512() bool +TEXT ·darwinSupportsAVX512(SB), NOSPLIT, $0-1 + MOVB $0, ret+0(FP) // default to false +#ifdef GOOS_darwin // return if not darwin +#ifdef GOARCH_amd64 // return if not amd64 +// These values from: +// https://github.com/apple/darwin-xnu/blob/xnu-4570.1.46/osfmk/i386/cpu_capabilities.h +#define commpage64_base_address 0x00007fffffe00000 +#define commpage64_cpu_capabilities64 (commpage64_base_address+0x010) +#define commpage64_version (commpage64_base_address+0x01E) +#define hasAVX512F 0x0000004000000000 + MOVQ $commpage64_version, BX + CMPW (BX), $13 // cpu_capabilities64 undefined in versions < 13 + JL no_avx512 + MOVQ $commpage64_cpu_capabilities64, BX + MOVQ $hasAVX512F, CX + TESTQ (BX), CX + JZ no_avx512 + MOVB $1, ret+0(FP) +no_avx512: +#endif +#endif + RET diff --git a/vendor/golang.org/x/sys/cpu/cpu_zos.go b/vendor/golang.org/x/sys/cpu/cpu_zos.go new file mode 100644 index 0000000000..5f54683a22 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_zos.go @@ -0,0 +1,10 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cpu + +func archInit() { + doinit() + Initialized = true +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_zos_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_zos_s390x.go new file mode 100644 index 0000000000..ccb1b708ab --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_zos_s390x.go @@ -0,0 +1,25 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cpu + +func initS390Xbase() { + // get the facilities list + facilities := stfle() + + // mandatory + S390X.HasZARCH = facilities.Has(zarch) + S390X.HasSTFLE = facilities.Has(stflef) + S390X.HasLDISP = facilities.Has(ldisp) + S390X.HasEIMM = facilities.Has(eimm) + + // optional + S390X.HasETF3EH = facilities.Has(etf3eh) + S390X.HasDFP = facilities.Has(dfp) + S390X.HasMSA = facilities.Has(msa) + S390X.HasVX = facilities.Has(vx) + if S390X.HasVX { + S390X.HasVXE = facilities.Has(vxe) + } +} diff --git a/vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.go b/vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.go index 76fbe40b76..a864f24d75 100644 --- a/vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.go +++ b/vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.go @@ -8,8 +8,8 @@ // Morever, this file will be used during the building of // gccgo's libgo and thus must not used a CGo method. -// +build aix -// +build gccgo +//go:build aix && gccgo +// +build aix,gccgo package cpu diff --git a/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go b/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go index 78fe25e86f..904be42ffd 100644 --- a/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go +++ b/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go @@ -6,8 +6,8 @@ // system call on AIX without depending on x/sys/unix. // (See golang.org/issue/32102) -// +build aix,ppc64 -// +build !gccgo +//go:build aix && ppc64 && gc +// +build aix,ppc64,gc package cpu diff --git a/vendor/golang.org/x/sys/execabs/execabs.go b/vendor/golang.org/x/sys/execabs/execabs.go new file mode 100644 index 0000000000..78192498db --- /dev/null +++ b/vendor/golang.org/x/sys/execabs/execabs.go @@ -0,0 +1,102 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package execabs is a drop-in replacement for os/exec +// that requires PATH lookups to find absolute paths. +// That is, execabs.Command("cmd") runs the same PATH lookup +// as exec.Command("cmd"), but if the result is a path +// which is relative, the Run and Start methods will report +// an error instead of running the executable. +// +// See https://blog.golang.org/path-security for more information +// about when it may be necessary or appropriate to use this package. +package execabs + +import ( + "context" + "fmt" + "os/exec" + "path/filepath" + "reflect" + "unsafe" +) + +// ErrNotFound is the error resulting if a path search failed to find an executable file. +// It is an alias for exec.ErrNotFound. +var ErrNotFound = exec.ErrNotFound + +// Cmd represents an external command being prepared or run. +// It is an alias for exec.Cmd. +type Cmd = exec.Cmd + +// Error is returned by LookPath when it fails to classify a file as an executable. +// It is an alias for exec.Error. +type Error = exec.Error + +// An ExitError reports an unsuccessful exit by a command. +// It is an alias for exec.ExitError. +type ExitError = exec.ExitError + +func relError(file, path string) error { + return fmt.Errorf("%s resolves to executable in current directory (.%c%s)", file, filepath.Separator, path) +} + +// LookPath searches for an executable named file in the directories +// named by the PATH environment variable. If file contains a slash, +// it is tried directly and the PATH is not consulted. The result will be +// an absolute path. +// +// LookPath differs from exec.LookPath in its handling of PATH lookups, +// which are used for file names without slashes. If exec.LookPath's +// PATH lookup would have returned an executable from the current directory, +// LookPath instead returns an error. +func LookPath(file string) (string, error) { + path, err := exec.LookPath(file) + if err != nil { + return "", err + } + if filepath.Base(file) == file && !filepath.IsAbs(path) { + return "", relError(file, path) + } + return path, nil +} + +func fixCmd(name string, cmd *exec.Cmd) { + if filepath.Base(name) == name && !filepath.IsAbs(cmd.Path) { + // exec.Command was called with a bare binary name and + // exec.LookPath returned a path which is not absolute. + // Set cmd.lookPathErr and clear cmd.Path so that it + // cannot be run. + lookPathErr := (*error)(unsafe.Pointer(reflect.ValueOf(cmd).Elem().FieldByName("lookPathErr").Addr().Pointer())) + if *lookPathErr == nil { + *lookPathErr = relError(name, cmd.Path) + } + cmd.Path = "" + } +} + +// CommandContext is like Command but includes a context. +// +// The provided context is used to kill the process (by calling os.Process.Kill) +// if the context becomes done before the command completes on its own. +func CommandContext(ctx context.Context, name string, arg ...string) *exec.Cmd { + cmd := exec.CommandContext(ctx, name, arg...) + fixCmd(name, cmd) + return cmd + +} + +// Command returns the Cmd struct to execute the named program with the given arguments. +// See exec.Command for most details. +// +// Command differs from exec.Command in its handling of PATH lookups, +// which are used when the program name contains no slashes. +// If exec.Command would have returned an exec.Cmd configured to run an +// executable from the current directory, Command instead +// returns an exec.Cmd that will return an error from Start or Run. +func Command(name string, arg ...string) *exec.Cmd { + cmd := exec.Command(name, arg...) + fixCmd(name, cmd) + return cmd +} diff --git a/vendor/golang.org/x/sys/plan9/asm.s b/vendor/golang.org/x/sys/plan9/asm.s new file mode 100644 index 0000000000..06449ebfa9 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/asm.s @@ -0,0 +1,8 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "textflag.h" + +TEXT ·use(SB),NOSPLIT,$0 + RET diff --git a/vendor/golang.org/x/sys/plan9/asm_plan9_386.s b/vendor/golang.org/x/sys/plan9/asm_plan9_386.s new file mode 100644 index 0000000000..bc5cab1f34 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/asm_plan9_386.s @@ -0,0 +1,30 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "textflag.h" + +// +// System call support for 386, Plan 9 +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-32 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-44 + JMP syscall·Syscall6(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) + +TEXT ·seek(SB),NOSPLIT,$0-36 + JMP syscall·seek(SB) + +TEXT ·exit(SB),NOSPLIT,$4-4 + JMP syscall·exit(SB) diff --git a/vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s b/vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s new file mode 100644 index 0000000000..d3448e6750 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s @@ -0,0 +1,30 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "textflag.h" + +// +// System call support for amd64, Plan 9 +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-64 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-88 + JMP syscall·Syscall6(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) + +TEXT ·seek(SB),NOSPLIT,$0-56 + JMP syscall·seek(SB) + +TEXT ·exit(SB),NOSPLIT,$8-8 + JMP syscall·exit(SB) diff --git a/vendor/golang.org/x/sys/plan9/asm_plan9_arm.s b/vendor/golang.org/x/sys/plan9/asm_plan9_arm.s new file mode 100644 index 0000000000..afb7c0a9b9 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/asm_plan9_arm.s @@ -0,0 +1,25 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "textflag.h" + +// System call support for plan9 on arm + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-32 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-44 + JMP syscall·Syscall6(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) + +TEXT ·seek(SB),NOSPLIT,$0-36 + JMP syscall·exit(SB) diff --git a/vendor/golang.org/x/sys/plan9/const_plan9.go b/vendor/golang.org/x/sys/plan9/const_plan9.go new file mode 100644 index 0000000000..b4e85a3a9d --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/const_plan9.go @@ -0,0 +1,70 @@ +package plan9 + +// Plan 9 Constants + +// Open modes +const ( + O_RDONLY = 0 + O_WRONLY = 1 + O_RDWR = 2 + O_TRUNC = 16 + O_CLOEXEC = 32 + O_EXCL = 0x1000 +) + +// Rfork flags +const ( + RFNAMEG = 1 << 0 + RFENVG = 1 << 1 + RFFDG = 1 << 2 + RFNOTEG = 1 << 3 + RFPROC = 1 << 4 + RFMEM = 1 << 5 + RFNOWAIT = 1 << 6 + RFCNAMEG = 1 << 10 + RFCENVG = 1 << 11 + RFCFDG = 1 << 12 + RFREND = 1 << 13 + RFNOMNT = 1 << 14 +) + +// Qid.Type bits +const ( + QTDIR = 0x80 + QTAPPEND = 0x40 + QTEXCL = 0x20 + QTMOUNT = 0x10 + QTAUTH = 0x08 + QTTMP = 0x04 + QTFILE = 0x00 +) + +// Dir.Mode bits +const ( + DMDIR = 0x80000000 + DMAPPEND = 0x40000000 + DMEXCL = 0x20000000 + DMMOUNT = 0x10000000 + DMAUTH = 0x08000000 + DMTMP = 0x04000000 + DMREAD = 0x4 + DMWRITE = 0x2 + DMEXEC = 0x1 +) + +const ( + STATMAX = 65535 + ERRMAX = 128 + STATFIXLEN = 49 +) + +// Mount and bind flags +const ( + MREPL = 0x0000 + MBEFORE = 0x0001 + MAFTER = 0x0002 + MORDER = 0x0003 + MCREATE = 0x0004 + MCACHE = 0x0010 + MMASK = 0x0017 +) diff --git a/vendor/golang.org/x/sys/plan9/dir_plan9.go b/vendor/golang.org/x/sys/plan9/dir_plan9.go new file mode 100644 index 0000000000..0955e0c53e --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/dir_plan9.go @@ -0,0 +1,212 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Plan 9 directory marshalling. See intro(5). + +package plan9 + +import "errors" + +var ( + ErrShortStat = errors.New("stat buffer too short") + ErrBadStat = errors.New("malformed stat buffer") + ErrBadName = errors.New("bad character in file name") +) + +// A Qid represents a 9P server's unique identification for a file. +type Qid struct { + Path uint64 // the file server's unique identification for the file + Vers uint32 // version number for given Path + Type uint8 // the type of the file (plan9.QTDIR for example) +} + +// A Dir contains the metadata for a file. +type Dir struct { + // system-modified data + Type uint16 // server type + Dev uint32 // server subtype + + // file data + Qid Qid // unique id from server + Mode uint32 // permissions + Atime uint32 // last read time + Mtime uint32 // last write time + Length int64 // file length + Name string // last element of path + Uid string // owner name + Gid string // group name + Muid string // last modifier name +} + +var nullDir = Dir{ + Type: ^uint16(0), + Dev: ^uint32(0), + Qid: Qid{ + Path: ^uint64(0), + Vers: ^uint32(0), + Type: ^uint8(0), + }, + Mode: ^uint32(0), + Atime: ^uint32(0), + Mtime: ^uint32(0), + Length: ^int64(0), +} + +// Null assigns special "don't touch" values to members of d to +// avoid modifying them during plan9.Wstat. +func (d *Dir) Null() { *d = nullDir } + +// Marshal encodes a 9P stat message corresponding to d into b +// +// If there isn't enough space in b for a stat message, ErrShortStat is returned. +func (d *Dir) Marshal(b []byte) (n int, err error) { + n = STATFIXLEN + len(d.Name) + len(d.Uid) + len(d.Gid) + len(d.Muid) + if n > len(b) { + return n, ErrShortStat + } + + for _, c := range d.Name { + if c == '/' { + return n, ErrBadName + } + } + + b = pbit16(b, uint16(n)-2) + b = pbit16(b, d.Type) + b = pbit32(b, d.Dev) + b = pbit8(b, d.Qid.Type) + b = pbit32(b, d.Qid.Vers) + b = pbit64(b, d.Qid.Path) + b = pbit32(b, d.Mode) + b = pbit32(b, d.Atime) + b = pbit32(b, d.Mtime) + b = pbit64(b, uint64(d.Length)) + b = pstring(b, d.Name) + b = pstring(b, d.Uid) + b = pstring(b, d.Gid) + b = pstring(b, d.Muid) + + return n, nil +} + +// UnmarshalDir decodes a single 9P stat message from b and returns the resulting Dir. +// +// If b is too small to hold a valid stat message, ErrShortStat is returned. +// +// If the stat message itself is invalid, ErrBadStat is returned. +func UnmarshalDir(b []byte) (*Dir, error) { + if len(b) < STATFIXLEN { + return nil, ErrShortStat + } + size, buf := gbit16(b) + if len(b) != int(size)+2 { + return nil, ErrBadStat + } + b = buf + + var d Dir + d.Type, b = gbit16(b) + d.Dev, b = gbit32(b) + d.Qid.Type, b = gbit8(b) + d.Qid.Vers, b = gbit32(b) + d.Qid.Path, b = gbit64(b) + d.Mode, b = gbit32(b) + d.Atime, b = gbit32(b) + d.Mtime, b = gbit32(b) + + n, b := gbit64(b) + d.Length = int64(n) + + var ok bool + if d.Name, b, ok = gstring(b); !ok { + return nil, ErrBadStat + } + if d.Uid, b, ok = gstring(b); !ok { + return nil, ErrBadStat + } + if d.Gid, b, ok = gstring(b); !ok { + return nil, ErrBadStat + } + if d.Muid, b, ok = gstring(b); !ok { + return nil, ErrBadStat + } + + return &d, nil +} + +// pbit8 copies the 8-bit number v to b and returns the remaining slice of b. +func pbit8(b []byte, v uint8) []byte { + b[0] = byte(v) + return b[1:] +} + +// pbit16 copies the 16-bit number v to b in little-endian order and returns the remaining slice of b. +func pbit16(b []byte, v uint16) []byte { + b[0] = byte(v) + b[1] = byte(v >> 8) + return b[2:] +} + +// pbit32 copies the 32-bit number v to b in little-endian order and returns the remaining slice of b. +func pbit32(b []byte, v uint32) []byte { + b[0] = byte(v) + b[1] = byte(v >> 8) + b[2] = byte(v >> 16) + b[3] = byte(v >> 24) + return b[4:] +} + +// pbit64 copies the 64-bit number v to b in little-endian order and returns the remaining slice of b. +func pbit64(b []byte, v uint64) []byte { + b[0] = byte(v) + b[1] = byte(v >> 8) + b[2] = byte(v >> 16) + b[3] = byte(v >> 24) + b[4] = byte(v >> 32) + b[5] = byte(v >> 40) + b[6] = byte(v >> 48) + b[7] = byte(v >> 56) + return b[8:] +} + +// pstring copies the string s to b, prepending it with a 16-bit length in little-endian order, and +// returning the remaining slice of b.. +func pstring(b []byte, s string) []byte { + b = pbit16(b, uint16(len(s))) + n := copy(b, s) + return b[n:] +} + +// gbit8 reads an 8-bit number from b and returns it with the remaining slice of b. +func gbit8(b []byte) (uint8, []byte) { + return uint8(b[0]), b[1:] +} + +// gbit16 reads a 16-bit number in little-endian order from b and returns it with the remaining slice of b. +func gbit16(b []byte) (uint16, []byte) { + return uint16(b[0]) | uint16(b[1])<<8, b[2:] +} + +// gbit32 reads a 32-bit number in little-endian order from b and returns it with the remaining slice of b. +func gbit32(b []byte) (uint32, []byte) { + return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24, b[4:] +} + +// gbit64 reads a 64-bit number in little-endian order from b and returns it with the remaining slice of b. +func gbit64(b []byte) (uint64, []byte) { + lo := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 + hi := uint32(b[4]) | uint32(b[5])<<8 | uint32(b[6])<<16 | uint32(b[7])<<24 + return uint64(lo) | uint64(hi)<<32, b[8:] +} + +// gstring reads a string from b, prefixed with a 16-bit length in little-endian order. +// It returns the string with the remaining slice of b and a boolean. If the length is +// greater than the number of bytes in b, the boolean will be false. +func gstring(b []byte) (string, []byte, bool) { + n, b := gbit16(b) + if int(n) > len(b) { + return "", b, false + } + return string(b[:n]), b[n:], true +} diff --git a/vendor/golang.org/x/sys/plan9/env_plan9.go b/vendor/golang.org/x/sys/plan9/env_plan9.go new file mode 100644 index 0000000000..8f1918004f --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/env_plan9.go @@ -0,0 +1,31 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Plan 9 environment variables. + +package plan9 + +import ( + "syscall" +) + +func Getenv(key string) (value string, found bool) { + return syscall.Getenv(key) +} + +func Setenv(key, value string) error { + return syscall.Setenv(key, value) +} + +func Clearenv() { + syscall.Clearenv() +} + +func Environ() []string { + return syscall.Environ() +} + +func Unsetenv(key string) error { + return syscall.Unsetenv(key) +} diff --git a/vendor/golang.org/x/sys/plan9/errors_plan9.go b/vendor/golang.org/x/sys/plan9/errors_plan9.go new file mode 100644 index 0000000000..65fe74d3ef --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/errors_plan9.go @@ -0,0 +1,50 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package plan9 + +import "syscall" + +// Constants +const ( + // Invented values to support what package os expects. + O_CREAT = 0x02000 + O_APPEND = 0x00400 + O_NOCTTY = 0x00000 + O_NONBLOCK = 0x00000 + O_SYNC = 0x00000 + O_ASYNC = 0x00000 + + S_IFMT = 0x1f000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 +) + +// Errors +var ( + EINVAL = syscall.NewError("bad arg in system call") + ENOTDIR = syscall.NewError("not a directory") + EISDIR = syscall.NewError("file is a directory") + ENOENT = syscall.NewError("file does not exist") + EEXIST = syscall.NewError("file already exists") + EMFILE = syscall.NewError("no free file descriptors") + EIO = syscall.NewError("i/o error") + ENAMETOOLONG = syscall.NewError("file name too long") + EINTR = syscall.NewError("interrupted") + EPERM = syscall.NewError("permission denied") + EBUSY = syscall.NewError("no free devices") + ETIMEDOUT = syscall.NewError("connection timed out") + EPLAN9 = syscall.NewError("not supported by plan 9") + + // The following errors do not correspond to any + // Plan 9 system messages. Invented to support + // what package os and others expect. + EACCES = syscall.NewError("access permission denied") + EAFNOSUPPORT = syscall.NewError("address family not supported by protocol") +) diff --git a/vendor/golang.org/x/sys/plan9/mkall.sh b/vendor/golang.org/x/sys/plan9/mkall.sh new file mode 100644 index 0000000000..1650fbcc74 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/mkall.sh @@ -0,0 +1,150 @@ +#!/usr/bin/env bash +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# The plan9 package provides access to the raw system call +# interface of the underlying operating system. Porting Go to +# a new architecture/operating system combination requires +# some manual effort, though there are tools that automate +# much of the process. The auto-generated files have names +# beginning with z. +# +# This script runs or (given -n) prints suggested commands to generate z files +# for the current system. Running those commands is not automatic. +# This script is documentation more than anything else. +# +# * asm_${GOOS}_${GOARCH}.s +# +# This hand-written assembly file implements system call dispatch. +# There are three entry points: +# +# func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr); +# func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr); +# func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr); +# +# The first and second are the standard ones; they differ only in +# how many arguments can be passed to the kernel. +# The third is for low-level use by the ForkExec wrapper; +# unlike the first two, it does not call into the scheduler to +# let it know that a system call is running. +# +# * syscall_${GOOS}.go +# +# This hand-written Go file implements system calls that need +# special handling and lists "//sys" comments giving prototypes +# for ones that can be auto-generated. Mksyscall reads those +# comments to generate the stubs. +# +# * syscall_${GOOS}_${GOARCH}.go +# +# Same as syscall_${GOOS}.go except that it contains code specific +# to ${GOOS} on one particular architecture. +# +# * types_${GOOS}.c +# +# This hand-written C file includes standard C headers and then +# creates typedef or enum names beginning with a dollar sign +# (use of $ in variable names is a gcc extension). The hardest +# part about preparing this file is figuring out which headers to +# include and which symbols need to be #defined to get the +# actual data structures that pass through to the kernel system calls. +# Some C libraries present alternate versions for binary compatibility +# and translate them on the way in and out of system calls, but +# there is almost always a #define that can get the real ones. +# See types_darwin.c and types_linux.c for examples. +# +# * zerror_${GOOS}_${GOARCH}.go +# +# This machine-generated file defines the system's error numbers, +# error strings, and signal numbers. The generator is "mkerrors.sh". +# Usually no arguments are needed, but mkerrors.sh will pass its +# arguments on to godefs. +# +# * zsyscall_${GOOS}_${GOARCH}.go +# +# Generated by mksyscall.pl; see syscall_${GOOS}.go above. +# +# * zsysnum_${GOOS}_${GOARCH}.go +# +# Generated by mksysnum_${GOOS}. +# +# * ztypes_${GOOS}_${GOARCH}.go +# +# Generated by godefs; see types_${GOOS}.c above. + +GOOSARCH="${GOOS}_${GOARCH}" + +# defaults +mksyscall="go run mksyscall.go" +mkerrors="./mkerrors.sh" +zerrors="zerrors_$GOOSARCH.go" +mksysctl="" +zsysctl="zsysctl_$GOOSARCH.go" +mksysnum= +mktypes= +run="sh" + +case "$1" in +-syscalls) + for i in zsyscall*go + do + sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i + rm _$i + done + exit 0 + ;; +-n) + run="cat" + shift +esac + +case "$#" in +0) + ;; +*) + echo 'usage: mkall.sh [-n]' 1>&2 + exit 2 +esac + +case "$GOOSARCH" in +_* | *_ | _) + echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2 + exit 1 + ;; +plan9_386) + mkerrors= + mksyscall="go run mksyscall.go -l32 -plan9 -tags plan9,386" + mksysnum="./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h" + mktypes="XXX" + ;; +plan9_amd64) + mkerrors= + mksyscall="go run mksyscall.go -l32 -plan9 -tags plan9,amd64" + mksysnum="./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h" + mktypes="XXX" + ;; +plan9_arm) + mkerrors= + mksyscall="go run mksyscall.go -l32 -plan9 -tags plan9,arm" + mksysnum="./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h" + mktypes="XXX" + ;; +*) + echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2 + exit 1 + ;; +esac + +( + if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi + case "$GOOS" in + plan9) + syscall_goos="syscall_$GOOS.go" + if [ -n "$mksyscall" ]; then echo "$mksyscall $syscall_goos |gofmt >zsyscall_$GOOSARCH.go"; fi + ;; + esac + if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi + if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi + if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go |gofmt >ztypes_$GOOSARCH.go"; fi +) | $run diff --git a/vendor/golang.org/x/sys/plan9/mkerrors.sh b/vendor/golang.org/x/sys/plan9/mkerrors.sh new file mode 100644 index 0000000000..85309c4a5b --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/mkerrors.sh @@ -0,0 +1,246 @@ +#!/usr/bin/env bash +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# Generate Go code listing errors and other #defined constant +# values (ENAMETOOLONG etc.), by asking the preprocessor +# about the definitions. + +unset LANG +export LC_ALL=C +export LC_CTYPE=C + +CC=${CC:-gcc} + +uname=$(uname) + +includes=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +' + +ccflags="$@" + +# Write go tool cgo -godefs input. +( + echo package plan9 + echo + echo '/*' + indirect="includes_$(uname)" + echo "${!indirect} $includes" + echo '*/' + echo 'import "C"' + echo + echo 'const (' + + # The gcc command line prints all the #defines + # it encounters while processing the input + echo "${!indirect} $includes" | $CC -x c - -E -dM $ccflags | + awk ' + $1 != "#define" || $2 ~ /\(/ || $3 == "" {next} + + $2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next} # 386 registers + $2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next} + $2 ~ /^(SCM_SRCRT)$/ {next} + $2 ~ /^(MAP_FAILED)$/ {next} + + $2 !~ /^ETH_/ && + $2 !~ /^EPROC_/ && + $2 !~ /^EQUIV_/ && + $2 !~ /^EXPR_/ && + $2 ~ /^E[A-Z0-9_]+$/ || + $2 ~ /^B[0-9_]+$/ || + $2 ~ /^V[A-Z0-9]+$/ || + $2 ~ /^CS[A-Z0-9]/ || + $2 ~ /^I(SIG|CANON|CRNL|EXTEN|MAXBEL|STRIP|UTF8)$/ || + $2 ~ /^IGN/ || + $2 ~ /^IX(ON|ANY|OFF)$/ || + $2 ~ /^IN(LCR|PCK)$/ || + $2 ~ /(^FLU?SH)|(FLU?SH$)/ || + $2 ~ /^C(LOCAL|READ)$/ || + $2 == "BRKINT" || + $2 == "HUPCL" || + $2 == "PENDIN" || + $2 == "TOSTOP" || + $2 ~ /^PAR/ || + $2 ~ /^SIG[^_]/ || + $2 ~ /^O[CNPFP][A-Z]+[^_][A-Z]+$/ || + $2 ~ /^IN_/ || + $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || + $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ || + $2 == "ICMPV6_FILTER" || + $2 == "SOMAXCONN" || + $2 == "NAME_MAX" || + $2 == "IFNAMSIZ" || + $2 ~ /^CTL_(MAXNAME|NET|QUERY)$/ || + $2 ~ /^SYSCTL_VERS/ || + $2 ~ /^(MS|MNT)_/ || + $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || + $2 ~ /^(O|F|FD|NAME|S|PTRACE|PT)_/ || + $2 ~ /^LINUX_REBOOT_CMD_/ || + $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ || + $2 !~ "NLA_TYPE_MASK" && + $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P)_/ || + $2 ~ /^SIOC/ || + $2 ~ /^TIOC/ || + $2 !~ "RTF_BITS" && + $2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ || + $2 ~ /^BIOC/ || + $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ || + $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|NOFILE|STACK)|RLIM_INFINITY/ || + $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || + $2 ~ /^CLONE_[A-Z_]+/ || + $2 !~ /^(BPF_TIMEVAL)$/ && + $2 ~ /^(BPF|DLT)_/ || + $2 !~ "WMESGLEN" && + $2 ~ /^W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", $2, $2)} + $2 ~ /^__WCOREFLAG$/ {next} + $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} + + {next} + ' | sort + + echo ')' +) >_const.go + +# Pull out the error names for later. +errors=$( + echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' | + sort +) + +# Pull out the signal names for later. +signals=$( + echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | + egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT)' | + sort +) + +# Again, writing regexps to a file. +echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print "^\t" $2 "[ \t]*=" }' | + sort >_error.grep +echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | + egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT)' | + sort >_signal.grep + +echo '// mkerrors.sh' "$@" +echo '// Code generated by the command above; DO NOT EDIT.' +echo +go tool cgo -godefs -- "$@" _const.go >_error.out +cat _error.out | grep -vf _error.grep | grep -vf _signal.grep +echo +echo '// Errors' +echo 'const (' +cat _error.out | grep -f _error.grep | sed 's/=\(.*\)/= Errno(\1)/' +echo ')' + +echo +echo '// Signals' +echo 'const (' +cat _error.out | grep -f _signal.grep | sed 's/=\(.*\)/= Signal(\1)/' +echo ')' + +# Run C program to print error and syscall strings. +( + echo -E " +#include +#include +#include +#include +#include +#include + +#define nelem(x) (sizeof(x)/sizeof((x)[0])) + +enum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below + +int errors[] = { +" + for i in $errors + do + echo -E ' '$i, + done + + echo -E " +}; + +int signals[] = { +" + for i in $signals + do + echo -E ' '$i, + done + + # Use -E because on some systems bash builtin interprets \n itself. + echo -E ' +}; + +static int +intcmp(const void *a, const void *b) +{ + return *(int*)a - *(int*)b; +} + +int +main(void) +{ + int i, j, e; + char buf[1024], *p; + + printf("\n\n// Error table\n"); + printf("var errors = [...]string {\n"); + qsort(errors, nelem(errors), sizeof errors[0], intcmp); + for(i=0; i 0 && errors[i-1] == e) + continue; + strcpy(buf, strerror(e)); + // lowercase first letter: Bad -> bad, but STREAM -> STREAM. + if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) + buf[0] += a - A; + printf("\t%d: \"%s\",\n", e, buf); + } + printf("}\n\n"); + + printf("\n\n// Signal table\n"); + printf("var signals = [...]string {\n"); + qsort(signals, nelem(signals), sizeof signals[0], intcmp); + for(i=0; i 0 && signals[i-1] == e) + continue; + strcpy(buf, strsignal(e)); + // lowercase first letter: Bad -> bad, but STREAM -> STREAM. + if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) + buf[0] += a - A; + // cut trailing : number. + p = strrchr(buf, ":"[0]); + if(p) + *p = '\0'; + printf("\t%d: \"%s\",\n", e, buf); + } + printf("}\n\n"); + + return 0; +} + +' +) >_errors.c + +$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out diff --git a/vendor/golang.org/x/sys/plan9/mksysnum_plan9.sh b/vendor/golang.org/x/sys/plan9/mksysnum_plan9.sh new file mode 100644 index 0000000000..3c3ab05810 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/mksysnum_plan9.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +COMMAND="mksysnum_plan9.sh $@" + +cat <= 10 { + buf[i] = byte(val%10 + '0') + i-- + val /= 10 + } + buf[i] = byte(val + '0') + return string(buf[i:]) +} diff --git a/vendor/golang.org/x/sys/plan9/syscall.go b/vendor/golang.org/x/sys/plan9/syscall.go new file mode 100644 index 0000000000..e7363a2f54 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/syscall.go @@ -0,0 +1,116 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build plan9 + +// Package plan9 contains an interface to the low-level operating system +// primitives. OS details vary depending on the underlying system, and +// by default, godoc will display the OS-specific documentation for the current +// system. If you want godoc to display documentation for another +// system, set $GOOS and $GOARCH to the desired system. For example, if +// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS +// to freebsd and $GOARCH to arm. +// +// The primary use of this package is inside other packages that provide a more +// portable interface to the system, such as "os", "time" and "net". Use +// those packages rather than this one if you can. +// +// For details of the functions and data types in this package consult +// the manuals for the appropriate operating system. +// +// These calls return err == nil to indicate success; otherwise +// err represents an operating system error describing the failure and +// holds a value of type syscall.ErrorString. +package plan9 // import "golang.org/x/sys/plan9" + +import ( + "bytes" + "strings" + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" +) + +// ByteSliceFromString returns a NUL-terminated slice of bytes +// containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, EINVAL). +func ByteSliceFromString(s string) ([]byte, error) { + if strings.IndexByte(s, 0) != -1 { + return nil, EINVAL + } + a := make([]byte, len(s)+1) + copy(a, s) + return a, nil +} + +// BytePtrFromString returns a pointer to a NUL-terminated array of +// bytes containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, EINVAL). +func BytePtrFromString(s string) (*byte, error) { + a, err := ByteSliceFromString(s) + if err != nil { + return nil, err + } + return &a[0], nil +} + +// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any +// bytes after the NUL removed. +func ByteSliceToString(s []byte) string { + if i := bytes.IndexByte(s, 0); i != -1 { + s = s[:i] + } + return string(s) +} + +// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. +// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated +// at a zero byte; if the zero byte is not present, the program may crash. +func BytePtrToString(p *byte) string { + if p == nil { + return "" + } + if *p == 0 { + return "" + } + + // Find NUL terminator. + n := 0 + for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { + ptr = unsafe.Pointer(uintptr(ptr) + 1) + } + + var s []byte + h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) + h.Data = unsafe.Pointer(p) + h.Len = n + h.Cap = n + + return string(s) +} + +// Single-word zero for use when we need a valid pointer to 0 bytes. +// See mksyscall.pl. +var _zero uintptr + +func (ts *Timespec) Unix() (sec int64, nsec int64) { + return int64(ts.Sec), int64(ts.Nsec) +} + +func (tv *Timeval) Unix() (sec int64, nsec int64) { + return int64(tv.Sec), int64(tv.Usec) * 1000 +} + +func (ts *Timespec) Nano() int64 { + return int64(ts.Sec)*1e9 + int64(ts.Nsec) +} + +func (tv *Timeval) Nano() int64 { + return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 +} + +// use is a no-op, but the compiler cannot see that it is. +// Calling use(p) ensures that p is kept live until that point. +//go:noescape +func use(p unsafe.Pointer) diff --git a/vendor/golang.org/x/sys/plan9/syscall_plan9.go b/vendor/golang.org/x/sys/plan9/syscall_plan9.go new file mode 100644 index 0000000000..84e1471481 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/syscall_plan9.go @@ -0,0 +1,349 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Plan 9 system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and +// wrap it in our own nicer implementation. + +package plan9 + +import ( + "bytes" + "syscall" + "unsafe" +) + +// A Note is a string describing a process note. +// It implements the os.Signal interface. +type Note string + +func (n Note) Signal() {} + +func (n Note) String() string { + return string(n) +} + +var ( + Stdin = 0 + Stdout = 1 + Stderr = 2 +) + +// For testing: clients can set this flag to force +// creation of IPv6 sockets to return EAFNOSUPPORT. +var SocketDisableIPv6 bool + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.ErrorString) +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.ErrorString) +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) + +func atoi(b []byte) (n uint) { + n = 0 + for i := 0; i < len(b); i++ { + n = n*10 + uint(b[i]-'0') + } + return +} + +func cstring(s []byte) string { + i := bytes.IndexByte(s, 0) + if i == -1 { + i = len(s) + } + return string(s[:i]) +} + +func errstr() string { + var buf [ERRMAX]byte + + RawSyscall(SYS_ERRSTR, uintptr(unsafe.Pointer(&buf[0])), uintptr(len(buf)), 0) + + buf[len(buf)-1] = 0 + return cstring(buf[:]) +} + +// Implemented in assembly to import from runtime. +func exit(code int) + +func Exit(code int) { exit(code) } + +func readnum(path string) (uint, error) { + var b [12]byte + + fd, e := Open(path, O_RDONLY) + if e != nil { + return 0, e + } + defer Close(fd) + + n, e := Pread(fd, b[:], 0) + + if e != nil { + return 0, e + } + + m := 0 + for ; m < n && b[m] == ' '; m++ { + } + + return atoi(b[m : n-1]), nil +} + +func Getpid() (pid int) { + n, _ := readnum("#c/pid") + return int(n) +} + +func Getppid() (ppid int) { + n, _ := readnum("#c/ppid") + return int(n) +} + +func Read(fd int, p []byte) (n int, err error) { + return Pread(fd, p, -1) +} + +func Write(fd int, p []byte) (n int, err error) { + return Pwrite(fd, p, -1) +} + +var ioSync int64 + +//sys fd2path(fd int, buf []byte) (err error) +func Fd2path(fd int) (path string, err error) { + var buf [512]byte + + e := fd2path(fd, buf[:]) + if e != nil { + return "", e + } + return cstring(buf[:]), nil +} + +//sys pipe(p *[2]int32) (err error) +func Pipe(p []int) (err error) { + if len(p) != 2 { + return syscall.ErrorString("bad arg in system call") + } + var pp [2]int32 + err = pipe(&pp) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +// Underlying system call writes to newoffset via pointer. +// Implemented in assembly to avoid allocation. +func seek(placeholder uintptr, fd int, offset int64, whence int) (newoffset int64, err string) + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + newoffset, e := seek(0, fd, offset, whence) + + if newoffset == -1 { + err = syscall.ErrorString(e) + } + return +} + +func Mkdir(path string, mode uint32) (err error) { + fd, err := Create(path, O_RDONLY, DMDIR|mode) + + if fd != -1 { + Close(fd) + } + + return +} + +type Waitmsg struct { + Pid int + Time [3]uint32 + Msg string +} + +func (w Waitmsg) Exited() bool { return true } +func (w Waitmsg) Signaled() bool { return false } + +func (w Waitmsg) ExitStatus() int { + if len(w.Msg) == 0 { + // a normal exit returns no message + return 0 + } + return 1 +} + +//sys await(s []byte) (n int, err error) +func Await(w *Waitmsg) (err error) { + var buf [512]byte + var f [5][]byte + + n, err := await(buf[:]) + + if err != nil || w == nil { + return + } + + nf := 0 + p := 0 + for i := 0; i < n && nf < len(f)-1; i++ { + if buf[i] == ' ' { + f[nf] = buf[p:i] + p = i + 1 + nf++ + } + } + f[nf] = buf[p:] + nf++ + + if nf != len(f) { + return syscall.ErrorString("invalid wait message") + } + w.Pid = int(atoi(f[0])) + w.Time[0] = uint32(atoi(f[1])) + w.Time[1] = uint32(atoi(f[2])) + w.Time[2] = uint32(atoi(f[3])) + w.Msg = cstring(f[4]) + if w.Msg == "''" { + // await() returns '' for no error + w.Msg = "" + } + return +} + +func Unmount(name, old string) (err error) { + fixwd() + oldp, err := BytePtrFromString(old) + if err != nil { + return err + } + oldptr := uintptr(unsafe.Pointer(oldp)) + + var r0 uintptr + var e syscall.ErrorString + + // bind(2) man page: If name is zero, everything bound or mounted upon old is unbound or unmounted. + if name == "" { + r0, _, e = Syscall(SYS_UNMOUNT, _zero, oldptr, 0) + } else { + namep, err := BytePtrFromString(name) + if err != nil { + return err + } + r0, _, e = Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(namep)), oldptr, 0) + } + + if int32(r0) == -1 { + err = e + } + return +} + +func Fchdir(fd int) (err error) { + path, err := Fd2path(fd) + + if err != nil { + return + } + + return Chdir(path) +} + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +func NsecToTimeval(nsec int64) (tv Timeval) { + nsec += 999 // round up to microsecond + tv.Usec = int32(nsec % 1e9 / 1e3) + tv.Sec = int32(nsec / 1e9) + return +} + +func nsec() int64 { + var scratch int64 + + r0, _, _ := Syscall(SYS_NSEC, uintptr(unsafe.Pointer(&scratch)), 0, 0) + // TODO(aram): remove hack after I fix _nsec in the pc64 kernel. + if r0 == 0 { + return scratch + } + return int64(r0) +} + +func Gettimeofday(tv *Timeval) error { + nsec := nsec() + *tv = NsecToTimeval(nsec) + return nil +} + +func Getpagesize() int { return 0x1000 } + +func Getegid() (egid int) { return -1 } +func Geteuid() (euid int) { return -1 } +func Getgid() (gid int) { return -1 } +func Getuid() (uid int) { return -1 } + +func Getgroups() (gids []int, err error) { + return make([]int, 0), nil +} + +//sys open(path string, mode int) (fd int, err error) +func Open(path string, mode int) (fd int, err error) { + fixwd() + return open(path, mode) +} + +//sys create(path string, mode int, perm uint32) (fd int, err error) +func Create(path string, mode int, perm uint32) (fd int, err error) { + fixwd() + return create(path, mode, perm) +} + +//sys remove(path string) (err error) +func Remove(path string) error { + fixwd() + return remove(path) +} + +//sys stat(path string, edir []byte) (n int, err error) +func Stat(path string, edir []byte) (n int, err error) { + fixwd() + return stat(path, edir) +} + +//sys bind(name string, old string, flag int) (err error) +func Bind(name string, old string, flag int) (err error) { + fixwd() + return bind(name, old, flag) +} + +//sys mount(fd int, afd int, old string, flag int, aname string) (err error) +func Mount(fd int, afd int, old string, flag int, aname string) (err error) { + fixwd() + return mount(fd, afd, old, flag, aname) +} + +//sys wstat(path string, edir []byte) (err error) +func Wstat(path string, edir []byte) (err error) { + fixwd() + return wstat(path, edir) +} + +//sys chdir(path string) (err error) +//sys Dup(oldfd int, newfd int) (fd int, err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) +//sys Close(fd int) (err error) +//sys Fstat(fd int, edir []byte) (n int, err error) +//sys Fwstat(fd int, edir []byte) (err error) diff --git a/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go new file mode 100644 index 0000000000..6819bc2094 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go @@ -0,0 +1,284 @@ +// go run mksyscall.go -l32 -plan9 -tags plan9,386 syscall_plan9.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build plan9,386 + +package plan9 + +import "unsafe" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fd2path(fd int, buf []byte) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + r0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func await(s []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(s) > 0 { + _p0 = unsafe.Pointer(&s[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func open(path string, mode int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func create(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func remove(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, edir []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(name string, old string, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(old) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(fd int, afd int, old string, flag int, aname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(old) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(aname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wstat(path string, edir []byte) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int, newfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + r0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, edir []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fwstat(fd int, edir []byte) (err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + if int32(r0) == -1 { + err = e1 + } + return +} diff --git a/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go new file mode 100644 index 0000000000..418abbbfc7 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go @@ -0,0 +1,284 @@ +// go run mksyscall.go -l32 -plan9 -tags plan9,amd64 syscall_plan9.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build plan9,amd64 + +package plan9 + +import "unsafe" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fd2path(fd int, buf []byte) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + r0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func await(s []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(s) > 0 { + _p0 = unsafe.Pointer(&s[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func open(path string, mode int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func create(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func remove(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, edir []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(name string, old string, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(old) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(fd int, afd int, old string, flag int, aname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(old) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(aname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wstat(path string, edir []byte) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int, newfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + r0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, edir []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fwstat(fd int, edir []byte) (err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + if int32(r0) == -1 { + err = e1 + } + return +} diff --git a/vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go new file mode 100644 index 0000000000..3e8a1a58ca --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go @@ -0,0 +1,284 @@ +// go run mksyscall.go -l32 -plan9 -tags plan9,arm syscall_plan9.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build plan9,arm + +package plan9 + +import "unsafe" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fd2path(fd int, buf []byte) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + r0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func await(s []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(s) > 0 { + _p0 = unsafe.Pointer(&s[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func open(path string, mode int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func create(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func remove(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, edir []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(name string, old string, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(old) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(fd int, afd int, old string, flag int, aname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(old) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(aname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wstat(path string, edir []byte) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int, newfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + r0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, edir []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fwstat(fd int, edir []byte) (err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + if int32(r0) == -1 { + err = e1 + } + return +} diff --git a/vendor/golang.org/x/sys/plan9/zsysnum_plan9.go b/vendor/golang.org/x/sys/plan9/zsysnum_plan9.go new file mode 100644 index 0000000000..22e8abd43d --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/zsysnum_plan9.go @@ -0,0 +1,49 @@ +// mksysnum_plan9.sh /opt/plan9/sys/src/libc/9syscall/sys.h +// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT + +package plan9 + +const ( + SYS_SYSR1 = 0 + SYS_BIND = 2 + SYS_CHDIR = 3 + SYS_CLOSE = 4 + SYS_DUP = 5 + SYS_ALARM = 6 + SYS_EXEC = 7 + SYS_EXITS = 8 + SYS_FAUTH = 10 + SYS_SEGBRK = 12 + SYS_OPEN = 14 + SYS_OSEEK = 16 + SYS_SLEEP = 17 + SYS_RFORK = 19 + SYS_PIPE = 21 + SYS_CREATE = 22 + SYS_FD2PATH = 23 + SYS_BRK_ = 24 + SYS_REMOVE = 25 + SYS_NOTIFY = 28 + SYS_NOTED = 29 + SYS_SEGATTACH = 30 + SYS_SEGDETACH = 31 + SYS_SEGFREE = 32 + SYS_SEGFLUSH = 33 + SYS_RENDEZVOUS = 34 + SYS_UNMOUNT = 35 + SYS_SEMACQUIRE = 37 + SYS_SEMRELEASE = 38 + SYS_SEEK = 39 + SYS_FVERSION = 40 + SYS_ERRSTR = 41 + SYS_STAT = 42 + SYS_FSTAT = 43 + SYS_WSTAT = 44 + SYS_FWSTAT = 45 + SYS_MOUNT = 46 + SYS_AWAIT = 47 + SYS_PREAD = 50 + SYS_PWRITE = 51 + SYS_TSEMACQUIRE = 52 + SYS_NSEC = 53 +) diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md index 579d2d7355..474efad0e0 100644 --- a/vendor/golang.org/x/sys/unix/README.md +++ b/vendor/golang.org/x/sys/unix/README.md @@ -76,7 +76,7 @@ arguments can be passed to the kernel. The third is for low-level use by the ForkExec wrapper. Unlike the first two, it does not call into the scheduler to let it know that a system call is running. -When porting Go to an new architecture/OS, this file must be implemented for +When porting Go to a new architecture/OS, this file must be implemented for each GOOS/GOARCH pair. ### mksysnum @@ -107,7 +107,7 @@ prototype can be exported (capitalized) or not. Adding a new syscall often just requires adding a new `//sys` function prototype with the desired arguments and a capitalized name so it is exported. However, if you want the interface to the syscall to be different, often one will make an -unexported `//sys` prototype, an then write a custom wrapper in +unexported `//sys` prototype, and then write a custom wrapper in `syscall_${GOOS}.go`. ### types files @@ -137,7 +137,7 @@ some `#if/#elif` macros in your include statements. This script is used to generate the system's various constants. This doesn't just include the error numbers and error strings, but also the signal numbers -an a wide variety of miscellaneous constants. The constants come from the list +and a wide variety of miscellaneous constants. The constants come from the list of include files in the `includes_${uname}` variable. A regex then picks out the desired `#define` statements, and generates the corresponding Go constants. The error numbers and strings are generated from `#include `, and the diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go index 951fce4d0d..abc89c104a 100644 --- a/vendor/golang.org/x/sys/unix/aliases.go +++ b/vendor/golang.org/x/sys/unix/aliases.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9 +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos // +build go1.9 package unix diff --git a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s index 06f84b8555..db9171c2e4 100644 --- a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s +++ b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +//go:build gc +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_386.s b/vendor/golang.org/x/sys/unix/asm_bsd_386.s new file mode 100644 index 0000000000..e0fcd9b3de --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_bsd_386.s @@ -0,0 +1,29 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (freebsd || netbsd || openbsd) && gc +// +build freebsd netbsd openbsd +// +build gc + +#include "textflag.h" + +// System call support for 386 BSD + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s new file mode 100644 index 0000000000..2b99c349a2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s @@ -0,0 +1,29 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc +// +build darwin dragonfly freebsd netbsd openbsd +// +build gc + +#include "textflag.h" + +// System call support for AMD64 BSD + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_arm.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm.s new file mode 100644 index 0000000000..d702d4adc7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_bsd_arm.s @@ -0,0 +1,29 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (freebsd || netbsd || openbsd) && gc +// +build freebsd netbsd openbsd +// +build gc + +#include "textflag.h" + +// System call support for ARM BSD + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + B syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + B syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s new file mode 100644 index 0000000000..fe36a7391a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s @@ -0,0 +1,29 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (darwin || freebsd || netbsd || openbsd) && gc +// +build darwin freebsd netbsd openbsd +// +build gc + +#include "textflag.h" + +// System call support for ARM64 BSD + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_386.s b/vendor/golang.org/x/sys/unix/asm_darwin_386.s deleted file mode 100644 index 8a7278319e..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_darwin_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for 386, Darwin -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s b/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s deleted file mode 100644 index 6321421f27..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, Darwin -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s deleted file mode 100644 index 333242d506..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_darwin_arm.s +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo -// +build arm,darwin - -#include "textflag.h" - -// -// System call support for ARM, Darwin -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s deleted file mode 100644 index 97e0174371..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo -// +build arm64,darwin - -#include "textflag.h" - -// -// System call support for AMD64, Darwin -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s deleted file mode 100644 index 603dd5728c..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, DragonFly -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_386.s b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s deleted file mode 100644 index c9a0a26015..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_freebsd_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for 386, FreeBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s deleted file mode 100644 index 35172477c8..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, FreeBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s deleted file mode 100644 index 9227c875bf..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for ARM, FreeBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s deleted file mode 100644 index d9318cbf03..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for ARM64, FreeBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s index 448bebbb59..8fd101d071 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_386.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_386.s @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +//go:build gc +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s index c6468a9588..7ed38e43c6 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +//go:build gc +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s index cf0f3575c1..8ef1d51402 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_arm.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_arm.s @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +//go:build gc +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s index afe6fdf6b1..98ae02760d 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s @@ -2,9 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && arm64 && gc // +build linux // +build arm64 -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s index ab9d63831a..21231d2ce1 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s @@ -2,9 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (mips64 || mips64le) && gc // +build linux // +build mips64 mips64le -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s index 99e5399045..6783b26c60 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s @@ -2,9 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (mips || mipsle) && gc // +build linux // +build mips mipsle -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s index 88f7125578..19d4989344 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s @@ -2,9 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (ppc64 || ppc64le) && gc // +build linux // +build ppc64 ppc64le -// +build !gccgo +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s index 3cfefed2ec..e42eb81d58 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s @@ -2,7 +2,9 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build riscv64,!gccgo +//go:build riscv64 && gc +// +build riscv64 +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s index a5a863c6bd..c46aab3395 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s @@ -2,9 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build s390x +//go:build linux && s390x && gc // +build linux -// +build !gccgo +// +build s390x +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_386.s b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s deleted file mode 100644 index 48bdcd7632..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_netbsd_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for 386, NetBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s deleted file mode 100644 index 2ede05c72f..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, NetBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s deleted file mode 100644 index e8928571c4..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for ARM, NetBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s deleted file mode 100644 index 6f98ba5a37..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for ARM64, NetBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_386.s b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s deleted file mode 100644 index 00576f3c83..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for 386, OpenBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s deleted file mode 100644 index 790ef77f86..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, OpenBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s deleted file mode 100644 index 469bfa1003..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for ARM, OpenBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s deleted file mode 100644 index 0cedea3d39..0000000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for arm64, OpenBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s index 567a4763c8..5e7a1169c0 100644 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s +++ b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +//go:build gc +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s index ded8260f3e..f8c5394c1a 100644 --- a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s +++ b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !gccgo +//go:build gc +// +build gc #include "textflag.h" diff --git a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s new file mode 100644 index 0000000000..3b54e18581 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s @@ -0,0 +1,426 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x && gc +// +build zos +// +build s390x +// +build gc + +#include "textflag.h" + +#define PSALAA 1208(R0) +#define GTAB64(x) 80(x) +#define LCA64(x) 88(x) +#define CAA(x) 8(x) +#define EDCHPXV(x) 1016(x) // in the CAA +#define SAVSTACK_ASYNC(x) 336(x) // in the LCA + +// SS_*, where x=SAVSTACK_ASYNC +#define SS_LE(x) 0(x) +#define SS_GO(x) 8(x) +#define SS_ERRNO(x) 16(x) +#define SS_ERRNOJR(x) 20(x) + +#define LE_CALL BYTE $0x0D; BYTE $0x76; // BL R7, R6 + +TEXT ·clearErrno(SB),NOSPLIT,$0-0 + BL addrerrno<>(SB) + MOVD $0, 0(R3) + RET + +// Returns the address of errno in R3. +TEXT addrerrno<>(SB),NOSPLIT|NOFRAME,$0-0 + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get __errno FuncDesc. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + ADD $(0x156*16), R9 + LMG 0(R9), R5, R6 + + // Switch to saved LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Call __errno function. + LE_CALL + NOPH + + // Switch back to Go stack. + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + RET + +TEXT ·syscall_syscall(SB),NOSPLIT,$0-56 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+32(FP) + MOVD R0, r2+40(FP) + MOVD R0, err+48(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+48(FP) +done: + BL runtime·exitsyscall(SB) + RET + +TEXT ·syscall_rawsyscall(SB),NOSPLIT,$0-56 + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+32(FP) + MOVD R0, r2+40(FP) + MOVD R0, err+48(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+48(FP) +done: + RET + +TEXT ·syscall_syscall6(SB),NOSPLIT,$0-80 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+56(FP) + MOVD R0, r2+64(FP) + MOVD R0, err+72(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+72(FP) +done: + BL runtime·exitsyscall(SB) + RET + +TEXT ·syscall_rawsyscall6(SB),NOSPLIT,$0-80 + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+56(FP) + MOVD R0, r2+64(FP) + MOVD R0, err+72(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL ·rrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+72(FP) +done: + RET + +TEXT ·syscall_syscall9(SB),NOSPLIT,$0 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + MOVD a7+56(FP), R12 + MOVD R12, (2176+48)(R4) + MOVD a8+64(FP), R12 + MOVD R12, (2176+56)(R4) + MOVD a9+72(FP), R12 + MOVD R12, (2176+64)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+80(FP) + MOVD R0, r2+88(FP) + MOVD R0, err+96(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+96(FP) +done: + BL runtime·exitsyscall(SB) + RET + +TEXT ·syscall_rawsyscall9(SB),NOSPLIT,$0 + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + MOVD a7+56(FP), R12 + MOVD R12, (2176+48)(R4) + MOVD a8+64(FP), R12 + MOVD R12, (2176+56)(R4) + MOVD a9+72(FP), R12 + MOVD R12, (2176+64)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+80(FP) + MOVD R0, r2+88(FP) + MOVD R0, err+96(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+96(FP) +done: + RET + +// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) +TEXT ·svcCall(SB),NOSPLIT,$0 + BL runtime·save_g(SB) // Save g and stack pointer + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD R15, 0(R9) + + MOVD argv+8(FP), R1 // Move function arguments into registers + MOVD dsa+16(FP), g + MOVD fnptr+0(FP), R15 + + BYTE $0x0D // Branch to function + BYTE $0xEF + + BL runtime·load_g(SB) // Restore g and stack pointer + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R15 + + RET + +// func svcLoad(name *byte) unsafe.Pointer +TEXT ·svcLoad(SB),NOSPLIT,$0 + MOVD R15, R2 // Save go stack pointer + MOVD name+0(FP), R0 // Move SVC args into registers + MOVD $0x80000000, R1 + MOVD $0, R15 + BYTE $0x0A // SVC 08 LOAD + BYTE $0x08 + MOVW R15, R3 // Save return code from SVC + MOVD R2, R15 // Restore go stack pointer + CMP R3, $0 // Check SVC return code + BNE error + + MOVD $-2, R3 // Reset last bit of entry point to zero + AND R0, R3 + MOVD R3, addr+8(FP) // Return entry point returned by SVC + CMP R0, R3 // Check if last bit of entry point was set + BNE done + + MOVD R15, R2 // Save go stack pointer + MOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08) + BYTE $0x0A // SVC 09 DELETE + BYTE $0x09 + MOVD R2, R15 // Restore go stack pointer + +error: + MOVD $0, addr+8(FP) // Return 0 on failure +done: + XOR R0, R0 // Reset r0 to 0 + RET + +// func svcUnload(name *byte, fnptr unsafe.Pointer) int64 +TEXT ·svcUnload(SB),NOSPLIT,$0 + MOVD R15, R2 // Save go stack pointer + MOVD name+0(FP), R0 // Move SVC args into registers + MOVD addr+8(FP), R15 + BYTE $0x0A // SVC 09 + BYTE $0x09 + XOR R0, R0 // Reset r0 to 0 + MOVD R15, R1 // Save SVC return code + MOVD R2, R15 // Restore go stack pointer + MOVD R1, rc+0(FP) // Return SVC return code + RET + +// func gettid() uint64 +TEXT ·gettid(SB), NOSPLIT, $0 + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get CEECAATHDID + MOVD CAA(R8), R9 + MOVD 0x3D0(R9), R9 + MOVD R9, ret+0(FP) + + RET diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go index df52048773..0b7c6adb86 100644 --- a/vendor/golang.org/x/sys/unix/cap_freebsd.go +++ b/vendor/golang.org/x/sys/unix/cap_freebsd.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build freebsd // +build freebsd package unix diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go index 3a6ac648dd..394a3965b6 100644 --- a/vendor/golang.org/x/sys/unix/constants.go +++ b/vendor/golang.org/x/sys/unix/constants.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos package unix diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go index 5e5fb45104..65a998508d 100644 --- a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix -// +build ppc +//go:build aix && ppc +// +build aix,ppc // Functions to access/create device major and minor numbers matching the // encoding used by AIX. diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go index 8b401244c4..8fc08ad0aa 100644 --- a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix -// +build ppc64 +//go:build aix && ppc64 +// +build aix,ppc64 // Functions to access/create device major and minor numbers matching the // encoding used AIX. diff --git a/vendor/golang.org/x/sys/unix/dev_zos.go b/vendor/golang.org/x/sys/unix/dev_zos.go new file mode 100644 index 0000000000..a388e59a0e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_zos.go @@ -0,0 +1,29 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +// Functions to access/create device major and minor numbers matching the +// encoding used by z/OS. +// +// The information below is extracted and adapted from macros. + +package unix + +// Major returns the major component of a z/OS device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 16) & 0x0000FFFF) +} + +// Minor returns the minor component of a z/OS device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0x0000FFFF) +} + +// Mkdev returns a z/OS device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 16) | uint64(minor) +} diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go index 304016b688..e74e5eaa3b 100644 --- a/vendor/golang.org/x/sys/unix/dirent.go +++ b/vendor/golang.org/x/sys/unix/dirent.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package unix diff --git a/vendor/golang.org/x/sys/unix/endian_big.go b/vendor/golang.org/x/sys/unix/endian_big.go index 5e9269063f..a520265576 100644 --- a/vendor/golang.org/x/sys/unix/endian_big.go +++ b/vendor/golang.org/x/sys/unix/endian_big.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // -// +build ppc64 s390x mips mips64 +//go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 +// +build armbe arm64be m68k mips mips64 mips64p32 ppc ppc64 s390 s390x shbe sparc sparc64 package unix diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go index bcdb5d30eb..4362f47e2c 100644 --- a/vendor/golang.org/x/sys/unix/endian_little.go +++ b/vendor/golang.org/x/sys/unix/endian_little.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // -// +build 386 amd64 amd64p32 arm arm64 ppc64le mipsle mips64le riscv64 +//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh +// +build 386 amd64 amd64p32 alpha arm arm64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh package unix diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go index 84178b0a13..29ccc4d133 100644 --- a/vendor/golang.org/x/sys/unix/env_unix.go +++ b/vendor/golang.org/x/sys/unix/env_unix.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos // Unix environment variables. diff --git a/vendor/golang.org/x/sys/unix/epoll_zos.go b/vendor/golang.org/x/sys/unix/epoll_zos.go new file mode 100644 index 0000000000..cedaf7e024 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/epoll_zos.go @@ -0,0 +1,221 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "sync" +) + +// This file simulates epoll on z/OS using poll. + +// Analogous to epoll_event on Linux. +// TODO(neeilan): Pad is because the Linux kernel expects a 96-bit struct. We never pass this to the kernel; remove? +type EpollEvent struct { + Events uint32 + Fd int32 + Pad int32 +} + +const ( + EPOLLERR = 0x8 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDNORM = 0x40 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + // The following constants are part of the epoll API, but represent + // currently unsupported functionality on z/OS. + // EPOLL_CLOEXEC = 0x80000 + // EPOLLET = 0x80000000 + // EPOLLONESHOT = 0x40000000 + // EPOLLRDHUP = 0x2000 // Typically used with edge-triggered notis + // EPOLLEXCLUSIVE = 0x10000000 // Exclusive wake-up mode + // EPOLLWAKEUP = 0x20000000 // Relies on Linux's BLOCK_SUSPEND capability +) + +// TODO(neeilan): We can eliminate these epToPoll / pToEpoll calls by using identical mask values for POLL/EPOLL +// constants where possible The lower 16 bits of epoll events (uint32) can fit any system poll event (int16). + +// epToPollEvt converts epoll event field to poll equivalent. +// In epoll, Events is a 32-bit field, while poll uses 16 bits. +func epToPollEvt(events uint32) int16 { + var ep2p = map[uint32]int16{ + EPOLLIN: POLLIN, + EPOLLOUT: POLLOUT, + EPOLLHUP: POLLHUP, + EPOLLPRI: POLLPRI, + EPOLLERR: POLLERR, + } + + var pollEvts int16 = 0 + for epEvt, pEvt := range ep2p { + if (events & epEvt) != 0 { + pollEvts |= pEvt + } + } + + return pollEvts +} + +// pToEpollEvt converts 16 bit poll event bitfields to 32-bit epoll event fields. +func pToEpollEvt(revents int16) uint32 { + var p2ep = map[int16]uint32{ + POLLIN: EPOLLIN, + POLLOUT: EPOLLOUT, + POLLHUP: EPOLLHUP, + POLLPRI: EPOLLPRI, + POLLERR: EPOLLERR, + } + + var epollEvts uint32 = 0 + for pEvt, epEvt := range p2ep { + if (revents & pEvt) != 0 { + epollEvts |= epEvt + } + } + + return epollEvts +} + +// Per-process epoll implementation. +type epollImpl struct { + mu sync.Mutex + epfd2ep map[int]*eventPoll + nextEpfd int +} + +// eventPoll holds a set of file descriptors being watched by the process. A process can have multiple epoll instances. +// On Linux, this is an in-kernel data structure accessed through a fd. +type eventPoll struct { + mu sync.Mutex + fds map[int]*EpollEvent +} + +// epoll impl for this process. +var impl epollImpl = epollImpl{ + epfd2ep: make(map[int]*eventPoll), + nextEpfd: 0, +} + +func (e *epollImpl) epollcreate(size int) (epfd int, err error) { + e.mu.Lock() + defer e.mu.Unlock() + epfd = e.nextEpfd + e.nextEpfd++ + + e.epfd2ep[epfd] = &eventPoll{ + fds: make(map[int]*EpollEvent), + } + return epfd, nil +} + +func (e *epollImpl) epollcreate1(flag int) (fd int, err error) { + return e.epollcreate(4) +} + +func (e *epollImpl) epollctl(epfd int, op int, fd int, event *EpollEvent) (err error) { + e.mu.Lock() + defer e.mu.Unlock() + + ep, ok := e.epfd2ep[epfd] + if !ok { + + return EBADF + } + + switch op { + case EPOLL_CTL_ADD: + // TODO(neeilan): When we make epfds and fds disjoint, detect epoll + // loops here (instances watching each other) and return ELOOP. + if _, ok := ep.fds[fd]; ok { + return EEXIST + } + ep.fds[fd] = event + case EPOLL_CTL_MOD: + if _, ok := ep.fds[fd]; !ok { + return ENOENT + } + ep.fds[fd] = event + case EPOLL_CTL_DEL: + if _, ok := ep.fds[fd]; !ok { + return ENOENT + } + delete(ep.fds, fd) + + } + return nil +} + +// Must be called while holding ep.mu +func (ep *eventPoll) getFds() []int { + fds := make([]int, len(ep.fds)) + for fd := range ep.fds { + fds = append(fds, fd) + } + return fds +} + +func (e *epollImpl) epollwait(epfd int, events []EpollEvent, msec int) (n int, err error) { + e.mu.Lock() // in [rare] case of concurrent epollcreate + epollwait + ep, ok := e.epfd2ep[epfd] + + if !ok { + e.mu.Unlock() + return 0, EBADF + } + + pollfds := make([]PollFd, 4) + for fd, epollevt := range ep.fds { + pollfds = append(pollfds, PollFd{Fd: int32(fd), Events: epToPollEvt(epollevt.Events)}) + } + e.mu.Unlock() + + n, err = Poll(pollfds, msec) + if err != nil { + return n, err + } + + i := 0 + for _, pFd := range pollfds { + if pFd.Revents != 0 { + events[i] = EpollEvent{Fd: pFd.Fd, Events: pToEpollEvt(pFd.Revents)} + i++ + } + + if i == n { + break + } + } + + return n, nil +} + +func EpollCreate(size int) (fd int, err error) { + return impl.epollcreate(size) +} + +func EpollCreate1(flag int) (fd int, err error) { + return impl.epollcreate1(flag) +} + +func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + return impl.epollctl(epfd, op, fd, event) +} + +// Because EpollWait mutates events, the caller is expected to coordinate +// concurrent access if calling with the same epfd from multiple goroutines. +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + return impl.epollwait(epfd, events, msec) +} diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go index 4dc5348643..e9b991258c 100644 --- a/vendor/golang.org/x/sys/unix/fcntl.go +++ b/vendor/golang.org/x/sys/unix/fcntl.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build dragonfly || freebsd || linux || netbsd || openbsd // +build dragonfly freebsd linux netbsd openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go index 5868a4a47b..a9911c7c1d 100644 --- a/vendor/golang.org/x/sys/unix/fcntl_darwin.go +++ b/vendor/golang.org/x/sys/unix/fcntl_darwin.go @@ -16,3 +16,9 @@ func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk)))) return err } + +// FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command. +func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error { + _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore)))) + return err +} diff --git a/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go index fc0e50e037..29d44808b1 100644 --- a/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +++ b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go @@ -1,9 +1,10 @@ -// +build linux,386 linux,arm linux,mips linux,mipsle - // Copyright 2014 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc) +// +build linux,386 linux,arm linux,mips linux,mipsle linux,ppc + package unix func init() { diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go index b27be0a014..a8068f94f2 100644 --- a/vendor/golang.org/x/sys/unix/fdset.go +++ b/vendor/golang.org/x/sys/unix/fdset.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos package unix diff --git a/vendor/golang.org/x/sys/unix/fstatfs_zos.go b/vendor/golang.org/x/sys/unix/fstatfs_zos.go new file mode 100644 index 0000000000..e377cc9f49 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fstatfs_zos.go @@ -0,0 +1,164 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "unsafe" +) + +// This file simulates fstatfs on z/OS using fstatvfs and w_getmntent. + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + var stat_v Statvfs_t + err = Fstatvfs(fd, &stat_v) + if err == nil { + // populate stat + stat.Type = 0 + stat.Bsize = stat_v.Bsize + stat.Blocks = stat_v.Blocks + stat.Bfree = stat_v.Bfree + stat.Bavail = stat_v.Bavail + stat.Files = stat_v.Files + stat.Ffree = stat_v.Ffree + stat.Fsid = stat_v.Fsid + stat.Namelen = stat_v.Namemax + stat.Frsize = stat_v.Frsize + stat.Flags = stat_v.Flag + for passn := 0; passn < 5; passn++ { + switch passn { + case 0: + err = tryGetmntent64(stat) + break + case 1: + err = tryGetmntent128(stat) + break + case 2: + err = tryGetmntent256(stat) + break + case 3: + err = tryGetmntent512(stat) + break + case 4: + err = tryGetmntent1024(stat) + break + default: + break + } + //proceed to return if: err is nil (found), err is nonnil but not ERANGE (another error occurred) + if err == nil || err != nil && err != ERANGE { + break + } + } + } + return err +} + +func tryGetmntent64(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [64]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent128(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [128]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent256(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [256]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent512(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [512]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent1024(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [1024]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go index cd6f5a6133..0dee23222c 100644 --- a/vendor/golang.org/x/sys/unix/gccgo.go +++ b/vendor/golang.org/x/sys/unix/gccgo.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build gccgo -// +build !aix +//go:build gccgo && !aix +// +build gccgo,!aix package unix @@ -12,10 +12,8 @@ import "syscall" // We can't use the gc-syntax .s files for gccgo. On the plus side // much of the functionality can be written directly in Go. -//extern gccgoRealSyscallNoError func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr) -//extern gccgoRealSyscall func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr) func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c index c44730c5e9..2cb1fefac6 100644 --- a/vendor/golang.org/x/sys/unix/gccgo_c.c +++ b/vendor/golang.org/x/sys/unix/gccgo_c.c @@ -21,6 +21,9 @@ struct ret { uintptr_t err; }; +struct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) + __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscall"); + struct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) { @@ -32,6 +35,9 @@ gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintp return r; } +uintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) + __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscallNoError"); + uintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) { diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go index 251a977a81..e60e49a3d9 100644 --- a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build gccgo && linux && amd64 // +build gccgo,linux,amd64 package unix diff --git a/vendor/golang.org/x/sys/unix/ioctl.go b/vendor/golang.org/x/sys/unix/ioctl.go index 5641678613..6c7ad052e6 100644 --- a/vendor/golang.org/x/sys/unix/ioctl.go +++ b/vendor/golang.org/x/sys/unix/ioctl.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package unix diff --git a/vendor/golang.org/x/sys/unix/ioctl_linux.go b/vendor/golang.org/x/sys/unix/ioctl_linux.go new file mode 100644 index 0000000000..48773f730a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ioctl_linux.go @@ -0,0 +1,196 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +import ( + "runtime" + "unsafe" +) + +// IoctlRetInt performs an ioctl operation specified by req on a device +// associated with opened file descriptor fd, and returns a non-negative +// integer that is returned by the ioctl syscall. +func IoctlRetInt(fd int, req uint) (int, error) { + ret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0) + if err != 0 { + return 0, err + } + return int(ret), nil +} + +func IoctlGetUint32(fd int, req uint) (uint32, error) { + var value uint32 + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return value, err +} + +func IoctlGetRTCTime(fd int) (*RTCTime, error) { + var value RTCTime + err := ioctl(fd, RTC_RD_TIME, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +func IoctlSetRTCTime(fd int, value *RTCTime) error { + err := ioctl(fd, RTC_SET_TIME, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +func IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) { + var value RTCWkAlrm + err := ioctl(fd, RTC_WKALM_RD, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +func IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error { + err := ioctl(fd, RTC_WKALM_SET, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +type ifreqEthtool struct { + name [IFNAMSIZ]byte + data unsafe.Pointer +} + +// IoctlGetEthtoolDrvinfo fetches ethtool driver information for the network +// device specified by ifname. +func IoctlGetEthtoolDrvinfo(fd int, ifname string) (*EthtoolDrvinfo, error) { + // Leave room for terminating NULL byte. + if len(ifname) >= IFNAMSIZ { + return nil, EINVAL + } + + value := EthtoolDrvinfo{ + Cmd: ETHTOOL_GDRVINFO, + } + ifreq := ifreqEthtool{ + data: unsafe.Pointer(&value), + } + copy(ifreq.name[:], ifname) + err := ioctl(fd, SIOCETHTOOL, uintptr(unsafe.Pointer(&ifreq))) + runtime.KeepAlive(ifreq) + return &value, err +} + +// IoctlGetWatchdogInfo fetches information about a watchdog device from the +// Linux watchdog API. For more information, see: +// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. +func IoctlGetWatchdogInfo(fd int) (*WatchdogInfo, error) { + var value WatchdogInfo + err := ioctl(fd, WDIOC_GETSUPPORT, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +// IoctlWatchdogKeepalive issues a keepalive ioctl to a watchdog device. For +// more information, see: +// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. +func IoctlWatchdogKeepalive(fd int) error { + return ioctl(fd, WDIOC_KEEPALIVE, 0) +} + +// IoctlFileCloneRange performs an FICLONERANGE ioctl operation to clone the +// range of data conveyed in value to the file associated with the file +// descriptor destFd. See the ioctl_ficlonerange(2) man page for details. +func IoctlFileCloneRange(destFd int, value *FileCloneRange) error { + err := ioctl(destFd, FICLONERANGE, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +// IoctlFileClone performs an FICLONE ioctl operation to clone the entire file +// associated with the file description srcFd to the file associated with the +// file descriptor destFd. See the ioctl_ficlone(2) man page for details. +func IoctlFileClone(destFd, srcFd int) error { + return ioctl(destFd, FICLONE, uintptr(srcFd)) +} + +type FileDedupeRange struct { + Src_offset uint64 + Src_length uint64 + Reserved1 uint16 + Reserved2 uint32 + Info []FileDedupeRangeInfo +} + +type FileDedupeRangeInfo struct { + Dest_fd int64 + Dest_offset uint64 + Bytes_deduped uint64 + Status int32 + Reserved uint32 +} + +// IoctlFileDedupeRange performs an FIDEDUPERANGE ioctl operation to share the +// range of data conveyed in value from the file associated with the file +// descriptor srcFd to the value.Info destinations. See the +// ioctl_fideduperange(2) man page for details. +func IoctlFileDedupeRange(srcFd int, value *FileDedupeRange) error { + buf := make([]byte, SizeofRawFileDedupeRange+ + len(value.Info)*SizeofRawFileDedupeRangeInfo) + rawrange := (*RawFileDedupeRange)(unsafe.Pointer(&buf[0])) + rawrange.Src_offset = value.Src_offset + rawrange.Src_length = value.Src_length + rawrange.Dest_count = uint16(len(value.Info)) + rawrange.Reserved1 = value.Reserved1 + rawrange.Reserved2 = value.Reserved2 + + for i := range value.Info { + rawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer( + uintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) + + uintptr(i*SizeofRawFileDedupeRangeInfo))) + rawinfo.Dest_fd = value.Info[i].Dest_fd + rawinfo.Dest_offset = value.Info[i].Dest_offset + rawinfo.Bytes_deduped = value.Info[i].Bytes_deduped + rawinfo.Status = value.Info[i].Status + rawinfo.Reserved = value.Info[i].Reserved + } + + err := ioctl(srcFd, FIDEDUPERANGE, uintptr(unsafe.Pointer(&buf[0]))) + + // Output + for i := range value.Info { + rawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer( + uintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) + + uintptr(i*SizeofRawFileDedupeRangeInfo))) + value.Info[i].Dest_fd = rawinfo.Dest_fd + value.Info[i].Dest_offset = rawinfo.Dest_offset + value.Info[i].Bytes_deduped = rawinfo.Bytes_deduped + value.Info[i].Status = rawinfo.Status + value.Info[i].Reserved = rawinfo.Reserved + } + + return err +} + +func IoctlHIDGetDesc(fd int, value *HIDRawReportDescriptor) error { + err := ioctl(fd, HIDIOCGRDESC, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +func IoctlHIDGetRawInfo(fd int) (*HIDRawDevInfo, error) { + var value HIDRawDevInfo + err := ioctl(fd, HIDIOCGRAWINFO, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +func IoctlHIDGetRawName(fd int) (string, error) { + var value [_HIDIOCGRAWNAME_LEN]byte + err := ioctl(fd, _HIDIOCGRAWNAME, uintptr(unsafe.Pointer(&value[0]))) + return ByteSliceToString(value[:]), err +} + +func IoctlHIDGetRawPhys(fd int) (string, error) { + var value [_HIDIOCGRAWPHYS_LEN]byte + err := ioctl(fd, _HIDIOCGRAWPHYS, uintptr(unsafe.Pointer(&value[0]))) + return ByteSliceToString(value[:]), err +} + +func IoctlHIDGetRawUniq(fd int) (string, error) { + var value [_HIDIOCGRAWUNIQ_LEN]byte + err := ioctl(fd, _HIDIOCGRAWUNIQ, uintptr(unsafe.Pointer(&value[0]))) + return ByteSliceToString(value[:]), err +} diff --git a/vendor/golang.org/x/sys/unix/ioctl_zos.go b/vendor/golang.org/x/sys/unix/ioctl_zos.go new file mode 100644 index 0000000000..5384e7d91d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ioctl_zos.go @@ -0,0 +1,74 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "runtime" + "unsafe" +) + +// ioctl itself should not be exposed directly, but additional get/set +// functions for specific types are permissible. + +// IoctlSetInt performs an ioctl operation which sets an integer value +// on fd, using the specified request number. +func IoctlSetInt(fd int, req uint, value int) error { + return ioctl(fd, req, uintptr(value)) +} + +// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. +// +// To change fd's window size, the req argument should be TIOCSWINSZ. +func IoctlSetWinsize(fd int, req uint, value *Winsize) error { + // TODO: if we get the chance, remove the req parameter and + // hardcode TIOCSWINSZ. + err := ioctl(fd, req, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + +// IoctlSetTermios performs an ioctl on fd with a *Termios. +// +// The req value is expected to be TCSETS, TCSETSW, or TCSETSF +func IoctlSetTermios(fd int, req uint, value *Termios) error { + if (req != TCSETS) && (req != TCSETSW) && (req != TCSETSF) { + return ENOSYS + } + err := Tcsetattr(fd, int(req), value) + runtime.KeepAlive(value) + return err +} + +// IoctlGetInt performs an ioctl operation which gets an integer value +// from fd, using the specified request number. +// +// A few ioctl requests use the return value as an output parameter; +// for those, IoctlRetInt should be used instead of this function. +func IoctlGetInt(fd int, req uint) (int, error) { + var value int + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return value, err +} + +func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { + var value Winsize + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return &value, err +} + +// IoctlGetTermios performs an ioctl on fd with a *Termios. +// +// The req value is expected to be TCGETS +func IoctlGetTermios(fd int, req uint) (*Termios, error) { + var value Termios + if req != TCGETS { + return &value, ENOSYS + } + err := Tcgetattr(fd, &value) + return &value, err +} diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index 83f2d42993..396aadf86d 100644 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -70,29 +70,13 @@ aix_ppc64) mksyscall="go run mksyscall_aix_ppc64.go -aix" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; -darwin_386) - mkerrors="$mkerrors -m32" - mksyscall="go run mksyscall.go -l32" - mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - mkasm="go run mkasm_darwin.go" - ;; darwin_amd64) mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - mkasm="go run mkasm_darwin.go" - ;; -darwin_arm) - mkerrors="$mkerrors" - mksyscall="go run mksyscall.go -l32" - mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h" mktypes="GOARCH=$GOARCH go tool cgo -godefs" mkasm="go run mkasm_darwin.go" ;; darwin_arm64) mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h" mktypes="GOARCH=$GOARCH go tool cgo -godefs" mkasm="go run mkasm_darwin.go" ;; @@ -203,7 +187,7 @@ illumos_amd64) mksyscall="go run mksyscall_solaris.go" mkerrors= mksysnum= - mktypes= + mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; *) echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2 @@ -226,8 +210,6 @@ esac # aix/ppc64 script generates files instead of writing to stdin. echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ; elif [ "$GOOS" == "darwin" ]; then - # pre-1.12, direct syscalls - echo "$mksyscall -tags $GOOS,$GOARCH,!go1.12 $syscall_goos syscall_darwin_${GOARCH}.1_11.go $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.1_11.go"; # 1.12 and later, syscalls via libSystem echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; # 1.13 and later, syscalls via libSystem (including syscallPtr) diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index 40534f0312..c4e3e1eeee 100644 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -56,14 +56,19 @@ includes_Darwin=' #define _DARWIN_C_SOURCE #define KERNEL #define _DARWIN_USE_64_BIT_INODE +#define __APPLE_USE_RFC_3542 #include #include +#include +#include #include #include #include #include #include +#include #include +#include #include #include #include @@ -93,6 +98,7 @@ includes_DragonFly=' #include #include #include +#include #include #include #include @@ -110,6 +116,7 @@ includes_FreeBSD=' #include #include #include +#include #include #include #include @@ -193,11 +200,14 @@ struct ltchars { #include #include #include +#include +#include #include #include #include #include #include +#include #include #include #include @@ -206,6 +216,8 @@ struct ltchars { #include #include #include +#include +#include #include #include #include @@ -216,9 +228,11 @@ struct ltchars { #include #include #include +#include #include #include #include +#include #include #include #include @@ -227,6 +241,7 @@ struct ltchars { #include #include #include +#include #include #include #include @@ -243,6 +258,7 @@ struct ltchars { #include #include +#include #include #if defined(__sparc__) @@ -290,6 +306,17 @@ struct ltchars { // Including linux/l2tp.h here causes conflicts between linux/in.h // and netinet/in.h included via net/route.h above. #define IPPROTO_L2TP 115 + +// Copied from linux/hid.h. +// Keep in sync with the size of the referenced fields. +#define _HIDIOCGRAWNAME_LEN 128 // sizeof_field(struct hid_device, name) +#define _HIDIOCGRAWPHYS_LEN 64 // sizeof_field(struct hid_device, phys) +#define _HIDIOCGRAWUNIQ_LEN 64 // sizeof_field(struct hid_device, uniq) + +#define _HIDIOCGRAWNAME HIDIOCGRAWNAME(_HIDIOCGRAWNAME_LEN) +#define _HIDIOCGRAWPHYS HIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN) +#define _HIDIOCGRAWUNIQ HIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN) + ' includes_NetBSD=' @@ -369,6 +396,7 @@ includes_SunOS=' #include #include #include +#include #include #include #include @@ -378,10 +406,11 @@ includes_SunOS=' #include #include #include +#include #include -#include #include #include +#include ' @@ -436,6 +465,8 @@ ccflags="$@" $2 !~ /^EPROC_/ && $2 !~ /^EQUIV_/ && $2 !~ /^EXPR_/ && + $2 !~ /^EVIOC/ && + $2 !~ /^EV_/ && $2 ~ /^E[A-Z0-9_]+$/ || $2 ~ /^B[0-9_]+$/ || $2 ~ /^(OLD|NEW)DEV$/ || @@ -470,10 +501,10 @@ ccflags="$@" $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || $2 ~ /^LO_(KEY|NAME)_SIZE$/ || $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || - $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|MCAST|EVFILT|NOTE|EV|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ || + $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL)_/ || $2 ~ /^TP_STATUS_/ || $2 ~ /^FALLOC_/ || - $2 == "ICMPV6_FILTER" || + $2 ~ /^ICMPV?6?_(FILTER|SEC)/ || $2 == "SOMAXCONN" || $2 == "NAME_MAX" || $2 == "IFNAMSIZ" || @@ -493,6 +524,7 @@ ccflags="$@" $2 !~ "NLA_TYPE_MASK" && $2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ && $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ || + $2 ~ /^FIORDCHK$/ || $2 ~ /^SIOC/ || $2 ~ /^TIOC/ || $2 ~ /^TCGET/ || @@ -513,7 +545,9 @@ ccflags="$@" $2 ~ /^CAP_/ || $2 ~ /^CP_/ || $2 ~ /^CPUSTATES$/ || + $2 ~ /^CTLIOCGINFO$/ || $2 ~ /^ALG_/ || + $2 ~ /^FI(CLONE|DEDUPERANGE)/ || $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ || $2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|[GS]ETFLAGS)/ || $2 ~ /^FS_VERITY_/ || @@ -523,7 +557,7 @@ ccflags="$@" $2 ~ /^RND/ || $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || $2 ~ /^KEYCTL_/ || - $2 ~ /^PERF_EVENT_IOC_/ || + $2 ~ /^PERF_/ || $2 ~ /^SECCOMP_MODE_/ || $2 ~ /^SPLICE_/ || $2 ~ /^SYNC_FILE_RANGE_/ || @@ -542,18 +576,27 @@ ccflags="$@" $2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ || $2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ || $2 ~ /^FSOPT_/ || - $2 ~ /^WDIOC_/ || + $2 ~ /^WDIO[CFS]_/ || $2 ~ /^NFN/ || $2 ~ /^XDP_/ || $2 ~ /^RWF_/ || $2 ~ /^(HDIO|WIN|SMART)_/ || $2 ~ /^CRYPTO_/ || $2 ~ /^TIPC_/ || + $2 !~ "DEVLINK_RELOAD_LIMITS_VALID_MASK" && $2 ~ /^DEVLINK_/ || + $2 ~ /^ETHTOOL_/ || + $2 ~ /^LWTUNNEL_IP/ || $2 !~ "WMESGLEN" && $2 ~ /^W[A-Z0-9]+$/ || $2 ~/^PPPIOC/ || $2 ~ /^FAN_|FANOTIFY_/ || + $2 == "HID_MAX_DESCRIPTOR_SIZE" || + $2 ~ /^_?HIDIOC/ || + $2 ~ /^BUS_(USB|HIL|BLUETOOTH|VIRTUAL)$/ || + $2 ~ /^MTD/ || + $2 ~ /^OTP/ || + $2 ~ /^MEM/ || $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)} $2 ~ /^__WCOREFLAG$/ {next} $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} @@ -591,6 +634,7 @@ echo '#include ' | $CC -x c - -E -dM $ccflags | echo '// mkerrors.sh' "$@" echo '// Code generated by the command above; see README.md. DO NOT EDIT.' echo +echo "//go:build ${GOARCH} && ${GOOS}" echo "// +build ${GOARCH},${GOOS}" echo go tool cgo -godefs -- "$@" _const.go >_error.out diff --git a/vendor/golang.org/x/sys/unix/pagesize_unix.go b/vendor/golang.org/x/sys/unix/pagesize_unix.go index bc2f3629a7..53f1b4c5b8 100644 --- a/vendor/golang.org/x/sys/unix/pagesize_unix.go +++ b/vendor/golang.org/x/sys/unix/pagesize_unix.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris // For Unix, get the pagesize from the runtime. diff --git a/vendor/golang.org/x/sys/unix/ptrace_darwin.go b/vendor/golang.org/x/sys/unix/ptrace_darwin.go new file mode 100644 index 0000000000..463c3eff7f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ptrace_darwin.go @@ -0,0 +1,12 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build darwin && !ios +// +build darwin,!ios + +package unix + +func ptrace(request int, pid int, addr uintptr, data uintptr) error { + return ptrace1(request, pid, addr, data) +} diff --git a/vendor/golang.org/x/sys/unix/ptrace_ios.go b/vendor/golang.org/x/sys/unix/ptrace_ios.go new file mode 100644 index 0000000000..ed0509a011 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ptrace_ios.go @@ -0,0 +1,12 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build ios +// +build ios + +package unix + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + return ENOTSUP +} diff --git a/vendor/golang.org/x/sys/unix/race.go b/vendor/golang.org/x/sys/unix/race.go index 61712b51c9..6f6c5fec5a 100644 --- a/vendor/golang.org/x/sys/unix/race.go +++ b/vendor/golang.org/x/sys/unix/race.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build (darwin && race) || (linux && race) || (freebsd && race) // +build darwin,race linux,race freebsd,race package unix diff --git a/vendor/golang.org/x/sys/unix/race0.go b/vendor/golang.org/x/sys/unix/race0.go index ad026678c7..706e1322ae 100644 --- a/vendor/golang.org/x/sys/unix/race0.go +++ b/vendor/golang.org/x/sys/unix/race0.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly +//go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos +// +build aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly zos package unix diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/vendor/golang.org/x/sys/unix/readdirent_getdents.go index 3a90aa6dfa..4d6257569e 100644 --- a/vendor/golang.org/x/sys/unix/readdirent_getdents.go +++ b/vendor/golang.org/x/sys/unix/readdirent_getdents.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build aix || dragonfly || freebsd || linux || netbsd || openbsd // +build aix dragonfly freebsd linux netbsd openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go index 5fdae40b3a..2a4ba47c45 100644 --- a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go +++ b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build darwin // +build darwin package unix diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go index 003916ed7a..453a942c5d 100644 --- a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go +++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos // Socket control messages diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go index 7d08dae5ba..0840fe4a57 100644 --- a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin freebsd linux netbsd openbsd solaris +//go:build aix || darwin || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin freebsd linux netbsd openbsd solaris zos package unix @@ -20,7 +21,7 @@ func cmsgAlignOf(salen int) int { case "aix": // There is no alignment on AIX. salign = 1 - case "darwin", "illumos", "solaris": + case "darwin", "ios", "illumos", "solaris": // NOTE: It seems like 64-bit Darwin, Illumos and Solaris // kernels still require 32-bit aligned access to network // subsystem. @@ -32,6 +33,14 @@ func cmsgAlignOf(salen int) int { if runtime.GOARCH == "arm" { salign = 8 } + // NetBSD aarch64 requires 128-bit alignment. + if runtime.GOOS == "netbsd" && runtime.GOARCH == "arm64" { + salign = 16 + } + case "zos": + // z/OS socket macros use [32-bit] sizeof(int) alignment, + // not pointer width. + salign = SizeofInt } return (salen + salign - 1) & ^(salign - 1) diff --git a/vendor/golang.org/x/sys/unix/str.go b/vendor/golang.org/x/sys/unix/str.go index 17fb698683..8ba89ed869 100644 --- a/vendor/golang.org/x/sys/unix/str.go +++ b/vendor/golang.org/x/sys/unix/str.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package unix diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go index fd4ee8ebeb..649fa87405 100644 --- a/vendor/golang.org/x/sys/unix/syscall.go +++ b/vendor/golang.org/x/sys/unix/syscall.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos // Package unix contains an interface to the low-level operating system // primitives. OS details vary depending on the underlying system, and @@ -24,7 +25,13 @@ // holds a value of type syscall.Errno. package unix // import "golang.org/x/sys/unix" -import "strings" +import ( + "bytes" + "strings" + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" +) // ByteSliceFromString returns a NUL-terminated slice of bytes // containing the text of s. If s contains a NUL byte at any @@ -49,5 +56,40 @@ func BytePtrFromString(s string) (*byte, error) { return &a[0], nil } +// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any +// bytes after the NUL removed. +func ByteSliceToString(s []byte) string { + if i := bytes.IndexByte(s, 0); i != -1 { + s = s[:i] + } + return string(s) +} + +// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. +// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated +// at a zero byte; if the zero byte is not present, the program may crash. +func BytePtrToString(p *byte) string { + if p == nil { + return "" + } + if *p == 0 { + return "" + } + + // Find NUL terminator. + n := 0 + for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { + ptr = unsafe.Pointer(uintptr(ptr) + 1) + } + + var s []byte + h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) + h.Data = unsafe.Pointer(p) + h.Len = n + h.Cap = n + + return string(s) +} + // Single-word zero for use when we need a valid pointer to 0 bytes. var _zero uintptr diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go index 9ad8a0d4a5..d8efb715ff 100644 --- a/vendor/golang.org/x/sys/unix/syscall_aix.go +++ b/vendor/golang.org/x/sys/unix/syscall_aix.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build aix // +build aix // Aix system calls. @@ -19,6 +20,22 @@ import "unsafe" * Wrapped */ +func Access(path string, mode uint32) (err error) { + return Faccessat(AT_FDCWD, path, mode, 0) +} + +func Chmod(path string, mode uint32) (err error) { + return Fchmodat(AT_FDCWD, path, mode, 0) +} + +func Chown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, 0) +} + +func Creat(path string, mode uint32) (fd int, err error) { + return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) +} + //sys utimes(path string, times *[2]Timeval) (err error) func Utimes(path string, tv []Timeval) error { if len(tv) != 2 { @@ -235,7 +252,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { } } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] sa.Name = string(bytes) return sa, nil @@ -403,8 +420,8 @@ func (w WaitStatus) TrapCause() int { return -1 } //sys Mknod(path string, mode uint32, dev int) (err error) //sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) //sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) = open64 -//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) = open64 +//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) //sys read(fd int, p []byte) (n int, err error) //sys Readlink(path string, buf []byte) (n int, err error) //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) @@ -423,8 +440,8 @@ func (w WaitStatus) TrapCause() int { return -1 } //sysnb Times(tms *Tms) (ticks uintptr, err error) //sysnb Umask(mask int) (oldmask int) //sysnb Uname(buf *Utsname) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) //sys Ustat(dev int, ubuf *Ustat_t) (err error) //sys write(fd int, p []byte) (n int, err error) //sys readlen(fd int, p *byte, np int) (n int, err error) = read @@ -498,7 +515,7 @@ func Munmap(b []byte) (err error) { //sys Munlock(b []byte) (err error) //sys Munlockall() (err error) -//sysnb pipe(p *[2]_C_int) (err error) +//sysnb pipe(p *[2]_C_int) (err error) func Pipe(p []int) (err error) { if len(p) != 2 { diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go index b3c8e3301c..e92a0be163 100644 --- a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix -// +build ppc +//go:build aix && ppc +// +build aix,ppc package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go index 9a6e024179..16eed17098 100644 --- a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix -// +build ppc64 +//go:build aix && ppc64 +// +build aix,ppc64 package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go index 60bbe10adf..95ac3946b5 100644 --- a/vendor/golang.org/x/sys/unix/syscall_bsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build darwin || dragonfly || freebsd || netbsd || openbsd // +build darwin dragonfly freebsd netbsd openbsd // BSD system call wrappers shared by *BSD based systems @@ -18,6 +19,21 @@ import ( "unsafe" ) +const ImplementsGetwd = true + +func Getwd() (string, error) { + var buf [PathMax]byte + _, err := Getcwd(buf[0:]) + if err != nil { + return "", err + } + n := clen(buf[:]) + if n < 1 { + return "", EINVAL + } + return string(buf[:n]), nil +} + /* * Wrapped */ @@ -262,7 +278,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { } return sa, nil } - return nil, EAFNOSUPPORT + return anyToSockaddrGOOS(fd, rsa) } func Accept(fd int) (nfd int, sa Sockaddr, err error) { @@ -272,7 +288,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) { if err != nil { return } - if runtime.GOOS == "darwin" && len == 0 { + if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && len == 0 { // Accepted socket has no address. // This is likely due to a bug in xnu kernels, // where instead of ECONNABORTED error socket @@ -303,7 +319,7 @@ func Getsockname(fd int) (sa Sockaddr, err error) { return anyToSockaddr(fd, &rsa) } -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) // GetsockoptString returns the string value of the socket option opt for the // socket associated with fd at the given socket level. @@ -317,8 +333,8 @@ func GetsockoptString(fd, level, opt int) (string, error) { return string(buf[:vallen-1]), nil } -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) //sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { @@ -611,7 +627,7 @@ func Futimes(fd int, tv []Timeval) error { return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) } -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) func Poll(fds []PollFd, timeout int) (n int, err error) { if len(fds) == 0 { diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go index 6a15cba611..b0098607c7 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build darwin && go1.12 && !go1.13 // +build darwin,go1.12,!go1.13 package unix @@ -10,6 +11,8 @@ import ( "unsafe" ) +const _SYS_GETDIRENTRIES64 = 344 + func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // To implement this using libSystem we'd need syscall_syscallPtr for // fdopendir. However, syscallPtr was only added in Go 1.13, so we fall @@ -20,7 +23,7 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { } else { p = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + r0, _, e1 := Syscall6(_SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) n = int(r0) if e1 != 0 { return n, errnoErr(e1) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go index dc0befee37..1596426b1e 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build darwin && go1.13 // +build darwin,go1.13 package unix @@ -16,7 +17,7 @@ import ( //sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) func fdopendir(fd int) (dir uintptr, err error) { - r0, _, e1 := syscall_syscallPtr(funcPC(libc_fdopendir_trampoline), uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscallPtr(libc_fdopendir_trampoline_addr, uintptr(fd), 0, 0) dir = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -24,9 +25,8 @@ func fdopendir(fd int) (dir uintptr, err error) { return } -func libc_fdopendir_trampoline() +var libc_fdopendir_trampoline_addr uintptr -//go:linkname libc_fdopendir libc_fdopendir //go:cgo_import_dynamic libc_fdopendir fdopendir "/usr/lib/libSystem.B.dylib" func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go index 0cf31acf02..9945e5f965 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -13,29 +13,11 @@ package unix import ( - "errors" + "runtime" "syscall" "unsafe" ) -const ImplementsGetwd = true - -func Getwd() (string, error) { - buf := make([]byte, 2048) - attrs, err := getAttrList(".", attrList{CommonAttr: attrCmnFullpath}, buf, 0) - if err == nil && len(attrs) == 1 && len(attrs[0]) >= 2 { - wd := string(attrs[0]) - // Sanity check that it's an absolute path and ends - // in a null byte, which we then strip. - if wd[0] == '/' && wd[len(wd)-1] == 0 { - return wd[:len(wd)-1], nil - } - } - // If pkg/os/getwd.go gets ENOTSUP, it will fall back to the - // slow algorithm. - return "", ENOTSUP -} - // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. type SockaddrDatalink struct { Len uint8 @@ -49,6 +31,41 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +// SockaddrCtl implements the Sockaddr interface for AF_SYSTEM type sockets. +type SockaddrCtl struct { + ID uint32 + Unit uint32 + raw RawSockaddrCtl +} + +func (sa *SockaddrCtl) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Sc_len = SizeofSockaddrCtl + sa.raw.Sc_family = AF_SYSTEM + sa.raw.Ss_sysaddr = AF_SYS_CONTROL + sa.raw.Sc_id = sa.ID + sa.raw.Sc_unit = sa.Unit + return unsafe.Pointer(&sa.raw), SizeofSockaddrCtl, nil +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_SYSTEM: + pp := (*RawSockaddrCtl)(unsafe.Pointer(rsa)) + if pp.Ss_sysaddr == AF_SYS_CONTROL { + sa := new(SockaddrCtl) + sa.ID = pp.Sc_id + sa.Unit = pp.Sc_unit + return sa, nil + } + } + return nil, EAFNOSUPPORT +} + +// Some external packages rely on SYS___SYSCTL being defined to implement their +// own sysctl wrappers. Provide it here, even though direct syscalls are no +// longer supported on darwin. +const SYS___SYSCTL = SYS_SYSCTL + // Translate "kern.hostname" to []_C_int{0,1,2,3}. func nametomib(name string) (mib []_C_int, err error) { const siz = unsafe.Sizeof(mib[0]) @@ -92,11 +109,6 @@ func direntNamlen(buf []byte) (uint64, bool) { func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } -const ( - attrBitMapCount = 5 - attrCmnFullpath = 0x08000000 -) - type attrList struct { bitmapCount uint16 _ uint16 @@ -107,61 +119,16 @@ type attrList struct { Forkattr uint32 } -func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (attrs [][]byte, err error) { - if len(attrBuf) < 4 { - return nil, errors.New("attrBuf too small") - } - attrList.bitmapCount = attrBitMapCount - - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return nil, err - } - - if err := getattrlist(_p0, unsafe.Pointer(&attrList), unsafe.Pointer(&attrBuf[0]), uintptr(len(attrBuf)), int(options)); err != nil { - return nil, err - } - size := *(*uint32)(unsafe.Pointer(&attrBuf[0])) - - // dat is the section of attrBuf that contains valid data, - // without the 4 byte length header. All attribute offsets - // are relative to dat. - dat := attrBuf - if int(size) < len(attrBuf) { - dat = dat[:size] - } - dat = dat[4:] // remove length prefix - - for i := uint32(0); int(i) < len(dat); { - header := dat[i:] - if len(header) < 8 { - return attrs, errors.New("truncated attribute header") - } - datOff := *(*int32)(unsafe.Pointer(&header[0])) - attrLen := *(*uint32)(unsafe.Pointer(&header[4])) - if datOff < 0 || uint32(datOff)+attrLen > uint32(len(dat)) { - return attrs, errors.New("truncated results; attrBuf too small") - } - end := uint32(datOff) + attrLen - attrs = append(attrs, dat[datOff:end]) - i = end - if r := i % 4; r != 0 { - i += (4 - r) - } - } - return -} - -//sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) - -//sysnb pipe() (r int, w int, err error) +//sysnb pipe(p *[2]int32) (err error) func Pipe(p []int) (err error) { if len(p) != 2 { return EINVAL } - p[0], p[1], err = pipe() + var x [2]int32 + err = pipe(&x) + p[0] = int(x[0]) + p[1] = int(x[1]) return } @@ -305,7 +272,7 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { options) } -//sys setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) +//sys setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error { // Darwin doesn't support SYS_UTIMENSAT @@ -324,7 +291,36 @@ func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(sig //sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL +func IoctlCtlInfo(fd int, ctlInfo *CtlInfo) error { + err := ioctl(fd, CTLIOCGINFO, uintptr(unsafe.Pointer(ctlInfo))) + runtime.KeepAlive(ctlInfo) + return err +} + +// IfreqMTU is struct ifreq used to get or set a network device's MTU. +type IfreqMTU struct { + Name [IFNAMSIZ]byte + MTU int32 +} + +// IoctlGetIfreqMTU performs the SIOCGIFMTU ioctl operation on fd to get the MTU +// of the network device specified by ifname. +func IoctlGetIfreqMTU(fd int, ifname string) (*IfreqMTU, error) { + var ifreq IfreqMTU + copy(ifreq.Name[:], ifname) + err := ioctl(fd, SIOCGIFMTU, uintptr(unsafe.Pointer(&ifreq))) + return &ifreq, err +} + +// IoctlSetIfreqMTU performs the SIOCSIFMTU ioctl operation on fd to set the MTU +// of the network device specified by ifreq.Name. +func IoctlSetIfreqMTU(fd int, ifreq *IfreqMTU) error { + err := ioctl(fd, SIOCSIFMTU, uintptr(unsafe.Pointer(ifreq))) + runtime.KeepAlive(ifreq) + return err +} + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL func Uname(uname *Utsname) error { mib := []_C_int{CTL_KERN, KERN_OSTYPE} @@ -382,6 +378,26 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e return } +func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { + var value IPMreqn + vallen := _Socklen(SizeofIPMreqn) + errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, errno +} + +func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) +} + +// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct. +// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively. +func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { + x := new(Xucred) + vallen := _Socklen(SizeofXucred) + err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen) + return x, err +} + //sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) /* @@ -396,6 +412,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Chroot(path string) (err error) //sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) +//sys Clonefile(src string, dst string, flags int) (err error) +//sys Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) //sys Exchangedata(path1 string, path2 string, options int) (err error) @@ -407,10 +425,12 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) //sys Fchown(fd int, uid int, gid int) (err error) //sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) //sys Flock(fd int, how int) (err error) //sys Fpathconf(fd int, name int) (val int, err error) //sys Fsync(fd int) (err error) //sys Ftruncate(fd int, length int64) (err error) +//sys Getcwd(buf []byte) (n int, err error) //sys Getdtablesize() (size int) //sysnb Getegid() (egid int) //sysnb Geteuid() (uid int) @@ -472,8 +492,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Unlinkat(dirfd int, path string, flags int) (err error) //sys Unmount(path string, flags int) (err error) //sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) //sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ //sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go deleted file mode 100644 index 6b223f91a5..0000000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin,386,!go1.12 - -package unix - -//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64 diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go deleted file mode 100644 index 2724e3a512..0000000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build 386,darwin - -package unix - -import ( - "syscall" -) - -//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of darwin/386 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL - -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 -//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go deleted file mode 100644 index 68ebd6fab2..0000000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin,amd64,!go1.12 - -package unix - -//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64 diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go index ce2e0d2497..b37310ce9b 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go @@ -2,15 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build amd64 && darwin // +build amd64,darwin package unix -import ( - "syscall" -) - -//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) +import "syscall" func setTimespec(sec, nsec int64) Timespec { return Timespec{Sec: sec, Nsec: nsec} @@ -44,14 +41,11 @@ func (cmsg *Cmsghdr) SetLen(length int) { func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of darwin/amd64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL - //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 //sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 //sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go deleted file mode 100644 index 0e3f25aca1..0000000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin,arm,!go1.12 - -package unix - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - return 0, ENOSYS -} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go deleted file mode 100644 index fc17a3f232..0000000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -import ( - "syscall" -) - -func ptrace(request int, pid int, addr uintptr, data uintptr) error { - return ENOTSUP -} - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of darwin/arm the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL - -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go deleted file mode 100644 index 01d450406b..0000000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin,arm64,!go1.12 - -package unix - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - return 0, ENOSYS -} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go index 1e91ddf325..d51ec99630 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go @@ -2,17 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build arm64 && darwin // +build arm64,darwin package unix -import ( - "syscall" -) - -func ptrace(request int, pid int, addr uintptr, data uintptr) error { - return ENOTSUP -} +import "syscall" func setTimespec(sec, nsec int64) Timespec { return Timespec{Sec: sec, Nsec: nsec} @@ -46,14 +41,11 @@ func (cmsg *Cmsghdr) SetLen(length int) { func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of darwin/arm64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL - //sys Fstat(fd int, stat *Stat_t) (err error) //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) //sys Fstatfs(fd int, stat *Statfs_t) (err error) //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT //sys Lstat(path string, stat *Stat_t) (err error) +//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace //sys Stat(path string, stat *Stat_t) (err error) //sys Statfs(path string, stat *Statfs_t) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go index f34c86c899..53c96641f8 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go @@ -2,11 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build darwin && go1.12 // +build darwin,go1.12 package unix -import "unsafe" +import _ "unsafe" // Implemented in the runtime package (runtime/sys_darwin.go) func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) @@ -24,10 +25,3 @@ func syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) //go:linkname syscall_rawSyscall syscall.rawSyscall //go:linkname syscall_rawSyscall6 syscall.rawSyscall6 //go:linkname syscall_syscallPtr syscall.syscallPtr - -// Find the entry point for f. See comments in runtime/proc.go for the -// function of the same name. -//go:nosplit -func funcPC(f func()) uintptr { - return **(**uintptr)(unsafe.Pointer(&f)) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go index 8a195ae586..5af108a503 100644 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go @@ -47,6 +47,10 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + // Translate "kern.hostname" to []_C_int{0,1,2,3}. func nametomib(name string) (mib []_C_int, err error) { const siz = unsafe.Sizeof(mib[0]) @@ -91,7 +95,7 @@ func direntNamlen(buf []byte) (uint64, bool) { return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) } -//sysnb pipe() (r int, w int, err error) +//sysnb pipe() (r int, w int, err error) func Pipe(p []int) (err error) { if len(p) != 2 { @@ -101,6 +105,19 @@ func Pipe(p []int) (err error) { return } +//sysnb pipe2(p *[2]_C_int, flags int) (r int, w int, err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + // pipe2 on dragonfly takes an fds array as an argument, but still + // returns the file descriptors. + p[0], p[1], err = pipe2(&pp, flags) + return err +} + //sys extpread(fd int, p []byte, flags int, offset int64) (n int, err error) func Pread(fd int, p []byte, offset int64) (n int, err error) { return extpread(fd, p, 0, offset) @@ -129,23 +146,8 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { return } -const ImplementsGetwd = true - //sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD -func Getwd() (string, error) { - var buf [PathMax]byte - _, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { var _p0 unsafe.Pointer var bufsize uintptr @@ -168,7 +170,7 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { //sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error { err := sysctl(mib, old, oldlen, nil, 0) @@ -335,8 +337,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Unlinkat(dirfd int, path string, flags int) (err error) //sys Unmount(path string, flags int) (err error) //sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) //sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ //sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE //sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go index a6b4830ac8..4e2d32120a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build amd64 && dragonfly // +build amd64,dragonfly package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go index 6932e7c2c1..18c392cf36 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go @@ -54,6 +54,10 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + // Translate "kern.hostname" to []_C_int{0,1,2,3}. func nametomib(name string) (mib []_C_int, err error) { const siz = unsafe.Sizeof(mib[0]) @@ -122,6 +126,15 @@ func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) } +// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct. +// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively. +func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { + x := new(Xucred) + vallen := _Socklen(SizeofXucred) + err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen) + return x, err +} + func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { var rsa RawSockaddrAny var len _Socklen = SizeofSockaddrAny @@ -140,23 +153,8 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { return } -const ImplementsGetwd = true - //sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD -func Getwd() (string, error) { - var buf [PathMax]byte - _, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { var ( _p0 unsafe.Pointer @@ -199,9 +197,9 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { return ENOSYS } -//sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL func Uname(uname *Utsname) error { mib := []_C_int{CTL_KERN, KERN_OSTYPE} @@ -676,8 +674,8 @@ func PtraceSingleStep(pid int) (err error) { //sys Unlinkat(dirfd int, path string, flags int) (err error) //sys Unmount(path string, flags int) (err error) //sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) //sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ //sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE //sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go index 72a506ddcb..342fc32b16 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build 386 && freebsd // +build 386,freebsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go index d5e376acae..a32d5aa4ae 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build amd64 && freebsd // +build amd64,freebsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go index 4ea45bce52..1e36d39abe 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build arm && freebsd // +build arm,freebsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go index aa5326db19..a09a1537bd 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build arm64 && freebsd // +build arm64,freebsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_illumos.go b/vendor/golang.org/x/sys/unix/syscall_illumos.go index 99e62dcd82..8c53576835 100644 --- a/vendor/golang.org/x/sys/unix/syscall_illumos.go +++ b/vendor/golang.org/x/sys/unix/syscall_illumos.go @@ -1,14 +1,19 @@ -// Copyright 2009 The Go Authors. All rights reserved. +// Copyright 2021 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // illumos system calls not present on Solaris. +//go:build amd64 && illumos // +build amd64,illumos package unix -import "unsafe" +import ( + "fmt" + "runtime" + "unsafe" +) func bytes2iovec(bs [][]byte) []Iovec { iovecs := make([]Iovec, len(bs)) @@ -24,7 +29,7 @@ func bytes2iovec(bs [][]byte) []Iovec { return iovecs } -//sys readv(fd int, iovs []Iovec) (n int, err error) +//sys readv(fd int, iovs []Iovec) (n int, err error) func Readv(fd int, iovs [][]byte) (n int, err error) { iovecs := bytes2iovec(iovs) @@ -32,7 +37,7 @@ func Readv(fd int, iovs [][]byte) (n int, err error) { return n, err } -//sys preadv(fd int, iovs []Iovec, off int64) (n int, err error) +//sys preadv(fd int, iovs []Iovec, off int64) (n int, err error) func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) { iovecs := bytes2iovec(iovs) @@ -40,7 +45,7 @@ func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) { return n, err } -//sys writev(fd int, iovs []Iovec) (n int, err error) +//sys writev(fd int, iovs []Iovec) (n int, err error) func Writev(fd int, iovs [][]byte) (n int, err error) { iovecs := bytes2iovec(iovs) @@ -48,10 +53,126 @@ func Writev(fd int, iovs [][]byte) (n int, err error) { return n, err } -//sys pwritev(fd int, iovs []Iovec, off int64) (n int, err error) +//sys pwritev(fd int, iovs []Iovec, off int64) (n int, err error) func Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) { iovecs := bytes2iovec(iovs) n, err = pwritev(fd, iovecs, off) return n, err } + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = libsocket.accept4 + +func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept4(fd, &rsa, &len, flags) + if err != nil { + return + } + if len > SizeofSockaddrAny { + panic("RawSockaddrAny too small") + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +//sys putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) + +func Putmsg(fd int, cl []byte, data []byte, flags int) (err error) { + var clp, datap *strbuf + if len(cl) > 0 { + clp = &strbuf{ + Len: int32(len(cl)), + Buf: (*int8)(unsafe.Pointer(&cl[0])), + } + } + if len(data) > 0 { + datap = &strbuf{ + Len: int32(len(data)), + Buf: (*int8)(unsafe.Pointer(&data[0])), + } + } + return putmsg(fd, clp, datap, flags) +} + +//sys getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) + +func Getmsg(fd int, cl []byte, data []byte) (retCl []byte, retData []byte, flags int, err error) { + var clp, datap *strbuf + if len(cl) > 0 { + clp = &strbuf{ + Maxlen: int32(len(cl)), + Buf: (*int8)(unsafe.Pointer(&cl[0])), + } + } + if len(data) > 0 { + datap = &strbuf{ + Maxlen: int32(len(data)), + Buf: (*int8)(unsafe.Pointer(&data[0])), + } + } + + if err = getmsg(fd, clp, datap, &flags); err != nil { + return nil, nil, 0, err + } + + if len(cl) > 0 { + retCl = cl[:clp.Len] + } + if len(data) > 0 { + retData = data[:datap.Len] + } + return retCl, retData, flags, nil +} + +func IoctlSetIntRetInt(fd int, req uint, arg int) (int, error) { + return ioctlRet(fd, req, uintptr(arg)) +} + +func IoctlSetString(fd int, req uint, val string) error { + bs := make([]byte, len(val)+1) + copy(bs[:len(bs)-1], val) + err := ioctl(fd, req, uintptr(unsafe.Pointer(&bs[0]))) + runtime.KeepAlive(&bs[0]) + return err +} + +// Lifreq Helpers + +func (l *Lifreq) SetName(name string) error { + if len(name) >= len(l.Name) { + return fmt.Errorf("name cannot be more than %d characters", len(l.Name)-1) + } + for i := range name { + l.Name[i] = int8(name[i]) + } + return nil +} + +func (l *Lifreq) SetLifruInt(d int) { + *(*int)(unsafe.Pointer(&l.Lifru[0])) = d +} + +func (l *Lifreq) GetLifruInt() int { + return *(*int)(unsafe.Pointer(&l.Lifru[0])) +} + +func IoctlLifreq(fd int, req uint, l *Lifreq) error { + return ioctl(fd, req, uintptr(unsafe.Pointer(l))) +} + +// Strioctl Helpers + +func (s *Strioctl) SetInt(i int) { + s.Len = int32(unsafe.Sizeof(i)) + s.Dp = (*int8)(unsafe.Pointer(&i)) +} + +func IoctlSetStrioctlRetInt(fd int, req uint, s *Strioctl) (int, error) { + return ioctlRet(fd, req, uintptr(unsafe.Pointer(s))) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index 5b3af2e6a2..2dd7c8e34a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -70,47 +70,7 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { // ioctl itself should not be exposed directly, but additional get/set // functions for specific types are permissible. - -// IoctlRetInt performs an ioctl operation specified by req on a device -// associated with opened file descriptor fd, and returns a non-negative -// integer that is returned by the ioctl syscall. -func IoctlRetInt(fd int, req uint) (int, error) { - ret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0) - if err != 0 { - return 0, err - } - return int(ret), nil -} - -func IoctlSetRTCTime(fd int, value *RTCTime) error { - err := ioctl(fd, RTC_SET_TIME, uintptr(unsafe.Pointer(value))) - runtime.KeepAlive(value) - return err -} - -func IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error { - err := ioctl(fd, RTC_WKALM_SET, uintptr(unsafe.Pointer(value))) - runtime.KeepAlive(value) - return err -} - -func IoctlGetUint32(fd int, req uint) (uint32, error) { - var value uint32 - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetRTCTime(fd int) (*RTCTime, error) { - var value RTCTime - err := ioctl(fd, RTC_RD_TIME, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) { - var value RTCWkAlrm - err := ioctl(fd, RTC_WKALM_RD, uintptr(unsafe.Pointer(&value))) - return &value, err -} +// These are defined in ioctl.go and ioctl_linux.go. //sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) @@ -136,6 +96,12 @@ func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) return openat(dirfd, path, flags|O_LARGEFILE, mode) } +//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) + +func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) { + return openat2(dirfd, path, how, SizeofOpenHow) +} + //sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { @@ -594,6 +560,36 @@ func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) { return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil } +// SockaddrCANJ1939 implements the Sockaddr interface for AF_CAN using J1939 +// protocol (https://en.wikipedia.org/wiki/SAE_J1939). For more information +// on the purposes of the fields, check the official linux kernel documentation +// available here: https://www.kernel.org/doc/Documentation/networking/j1939.rst +type SockaddrCANJ1939 struct { + Ifindex int + Name uint64 + PGN uint32 + Addr uint8 + raw RawSockaddrCAN +} + +func (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { + return nil, 0, EINVAL + } + sa.raw.Family = AF_CAN + sa.raw.Ifindex = int32(sa.Ifindex) + n := (*[8]byte)(unsafe.Pointer(&sa.Name)) + for i := 0; i < 8; i++ { + sa.raw.Addr[i] = n[i] + } + p := (*[4]byte)(unsafe.Pointer(&sa.PGN)) + for i := 0; i < 4; i++ { + sa.raw.Addr[i+8] = p[i] + } + sa.raw.Addr[12] = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil +} + // SockaddrALG implements the Sockaddr interface for AF_ALG type sockets. // SockaddrALG enables userspace access to the Linux kernel's cryptography // subsystem. The Type and Name fields specify which type of hash or cipher @@ -701,16 +697,19 @@ type SockaddrVM struct { // CID and Port specify a context ID and port address for a VM socket. // Guests have a unique CID, and hosts may have a well-known CID of: // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. + // - VMADDR_CID_LOCAL: refers to local communication (loopback). // - VMADDR_CID_HOST: refers to other processes on the host. - CID uint32 - Port uint32 - raw RawSockaddrVM + CID uint32 + Port uint32 + Flags uint8 + raw RawSockaddrVM } func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { sa.raw.Family = AF_VSOCK sa.raw.Port = sa.Port sa.raw.Cid = sa.CID + sa.raw.Flags = sa.Flags return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil } @@ -905,6 +904,10 @@ func (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) { return unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil } +var socketProtocol = func(fd int) (int, error) { + return GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) +} + func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { switch rsa.Addr.Family { case AF_NETLINK: @@ -955,7 +958,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { return sa, nil case AF_INET: - proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) + proto, err := socketProtocol(fd) if err != nil { return nil, err } @@ -981,7 +984,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { } case AF_INET6: - proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) + proto, err := socketProtocol(fd) if err != nil { return nil, err } @@ -1011,12 +1014,13 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { case AF_VSOCK: pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) sa := &SockaddrVM{ - CID: pp.Cid, - Port: pp.Port, + CID: pp.Cid, + Port: pp.Port, + Flags: pp.Flags, } return sa, nil case AF_BLUETOOTH: - proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) + proto, err := socketProtocol(fd) if err != nil { return nil, err } @@ -1103,20 +1107,43 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { return sa, nil case AF_CAN: - pp := (*RawSockaddrCAN)(unsafe.Pointer(rsa)) - sa := &SockaddrCAN{ - Ifindex: int(pp.Ifindex), - } - rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) - for i := 0; i < 4; i++ { - rx[i] = pp.Addr[i] - } - tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) - for i := 0; i < 4; i++ { - tx[i] = pp.Addr[i+4] + proto, err := socketProtocol(fd) + if err != nil { + return nil, err } - return sa, nil + pp := (*RawSockaddrCAN)(unsafe.Pointer(rsa)) + + switch proto { + case CAN_J1939: + sa := &SockaddrCANJ1939{ + Ifindex: int(pp.Ifindex), + } + name := (*[8]byte)(unsafe.Pointer(&sa.Name)) + for i := 0; i < 8; i++ { + name[i] = pp.Addr[i] + } + pgn := (*[4]byte)(unsafe.Pointer(&sa.PGN)) + for i := 0; i < 4; i++ { + pgn[i] = pp.Addr[i+8] + } + addr := (*[1]byte)(unsafe.Pointer(&sa.Addr)) + addr[0] = pp.Addr[12] + return sa, nil + default: + sa := &SockaddrCAN{ + Ifindex: int(pp.Ifindex), + } + rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) + for i := 0; i < 4; i++ { + rx[i] = pp.Addr[i] + } + tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) + for i := 0; i < 4; i++ { + tx[i] = pp.Addr[i+4] + } + return sa, nil + } } return nil, EAFNOSUPPORT } @@ -1124,7 +1151,11 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { func Accept(fd int) (nfd int, sa Sockaddr, err error) { var rsa RawSockaddrAny var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) + // Try accept4 first for Android, then try accept for kernel older than 2.6.28 + nfd, err = accept4(fd, &rsa, &len, 0) + if err == ENOSYS { + nfd, err = accept(fd, &rsa, &len) + } if err != nil { return } @@ -1378,8 +1409,8 @@ func KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error return keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction) } -//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL -//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL +//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL +//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { var msg Msghdr @@ -1694,6 +1725,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys ClockGettime(clockid int32, time *Timespec) (err error) //sys ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) //sys Close(fd int) (err error) +//sys CloseRange(first uint, last uint, flags uint) (err error) //sys CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) //sys DeleteModule(name string, flags int) (err error) //sys Dup(oldfd int) (fd int, err error) @@ -1756,8 +1788,8 @@ func Getpgrp() (pid int) { //sys Nanosleep(time *Timespec, leftover *Timespec) (err error) //sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) //sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT -//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 -//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) +//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 +//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) //sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6 //sys read(fd int, p []byte) (n int, err error) //sys Removexattr(path string, attr string) (err error) @@ -1830,9 +1862,9 @@ func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { //sys Syncfs(fd int) (err error) //sysnb Sysinfo(info *Sysinfo_t) (err error) //sys Tee(rfd int, wfd int, len int, flags int) (n int64, err error) -//sysnb TimerfdCreate(clockid int, flags int) (fd int, err error) -//sysnb TimerfdGettime(fd int, currValue *ItimerSpec) (err error) -//sysnb TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) +//sysnb TimerfdCreate(clockid int, flags int) (fd int, err error) +//sysnb TimerfdGettime(fd int, currValue *ItimerSpec) (err error) +//sysnb TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) //sysnb Tgkill(tgid int, tid int, sig syscall.Signal) (err error) //sysnb Times(tms *Tms) (ticks uintptr, err error) //sysnb Umask(mask int) (oldmask int) @@ -2092,8 +2124,8 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { return EACCES } -//sys nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT -//sys openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT +//sys nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT +//sys openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT // fileHandle is the argument to nameToHandleAt and openByHandleAt. We // originally tried to generate it via unix/linux/types.go with "type diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go index 048d18e3c8..7b52e5d8a4 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go @@ -2,9 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP) -// so that go vet can check that they are correct. - +//go:build 386 && linux // +build 386,linux package unix @@ -34,7 +32,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { @@ -101,7 +99,7 @@ type rlimit32 struct { Max uint32 } -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT const rlimInf32 = ^uint32(0) const rlimInf64 = ^uint64(0) @@ -132,7 +130,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) { return } -//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT func Setrlimit(resource int, rlim *Rlimit) (err error) { err = prlimit(0, resource, rlim, nil) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go index 72efe86ed4..28b7641152 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build amd64 && linux // +build amd64,linux package unix @@ -138,7 +139,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go index 21a4946ba5..8b0f0f3aa5 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build amd64,linux -// +build !gccgo +//go:build amd64 && linux && gc +// +build amd64,linux,gc package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go index 496837b1e3..68877728ec 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build arm && linux // +build arm,linux package unix @@ -35,7 +36,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { @@ -129,8 +130,8 @@ func Utime(path string, buf *Utimbuf) error { //sys utimes(path string, times *[2]Timeval) (err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 //sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 //sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 @@ -177,7 +178,7 @@ type rlimit32 struct { Max uint32 } -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT const rlimInf32 = ^uint32(0) const rlimInf64 = ^uint64(0) @@ -208,7 +209,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) { return } -//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT func Setrlimit(resource int, rlim *Rlimit) (err error) { err = prlimit(0, resource, rlim, nil) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go index c6de6b9134..7ed7034761 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build arm64 && linux // +build arm64,linux package unix @@ -155,7 +156,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go index c26e6ec231..2b1168d7d1 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build linux,!gccgo +//go:build linux && gc +// +build linux,gc package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go index 070bd38994..9843fb4896 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build linux,!gccgo,386 +//go:build linux && gc && 386 +// +build linux,gc,386 package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go index 8c514c95ed..a6008fccd5 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build arm,!gccgo,linux +//go:build arm && gc && linux +// +build arm,gc,linux package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go index 308eb7aecf..7740af2428 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && gccgo && 386 // +build linux,gccgo,386 package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go index aa7fc9e199..e16a12299a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && gccgo && arm // +build linux,gccgo,arm package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go index f0287476cd..06dec06fa1 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (mips64 || mips64le) // +build linux // +build mips64 mips64le @@ -104,7 +105,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go index c11328111d..8f0d0a5b59 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (mips || mipsle) // +build linux // +build mips mipsle @@ -112,7 +113,7 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: int32(sec), Usec: int32(usec)} } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { @@ -125,7 +126,7 @@ func Pipe2(p []int, flags int) (err error) { return } -//sysnb pipe() (p1 int, p2 int, err error) +//sysnb pipe() (p1 int, p2 int, err error) func Pipe(p []int) (err error) { if len(p) != 2 { @@ -153,7 +154,7 @@ type rlimit32 struct { Max uint32 } -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT func Getrlimit(resource int, rlim *Rlimit) (err error) { err = prlimit(0, resource, nil, rlim) @@ -181,7 +182,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) { return } -//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT func Setrlimit(resource int, rlim *Rlimit) (err error) { err = prlimit(0, resource, rlim, nil) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go new file mode 100644 index 0000000000..7e65e088d2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go @@ -0,0 +1,272 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && ppc +// +build linux +// +build ppc + +package unix + +import ( + "syscall" + "unsafe" +) + +//sys dup2(oldfd int, newfd int) (err error) +//sysnb EpollCreate(size int) (fd int, err error) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getuid() (uid int) +//sysnb InotifyInit() (fd int, err error) +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Pause() (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { + var newoffset int64 + offsetLow := uint32(offset & 0xffffffff) + offsetHigh := uint32((offset >> 32) & 0xffffffff) + _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) + return newoffset, err +} + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + newoffset, errno := seek(fd, offset, whence) + if errno != 0 { + return 0, errno + } + return newoffset, nil +} + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + err = prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + if rlim.Cur == rlimInf64 { + rl.Cur = rlimInf32 + } else if rlim.Cur < uint64(rlimInf32) { + rl.Cur = uint32(rlim.Cur) + } else { + return EINVAL + } + if rlim.Max == rlimInf64 { + rl.Max = rlimInf32 + } else if rlim.Max < uint64(rlimInf32) { + rl.Max = uint32(rlim.Max) + } else { + return EINVAL + } + + return setrlimit(resource, &rl) +} + +func (r *PtraceRegs) PC() uint32 { return r.Nip } + +func (r *PtraceRegs) SetPC(pc uint32) { r.Nip = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe(&pp) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 + +func SyncFileRange(fd int, off int64, n int64, flags int) error { + // The sync_file_range and sync_file_range2 syscalls differ only in the + // order of their arguments. + return syncFileRange2(fd, flags, off, n) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go index 349374409b..0b1f0d6da5 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (ppc64 || ppc64le) // +build linux // +build ppc64 ppc64le @@ -99,7 +100,7 @@ func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint64(length) } -//sysnb pipe(p *[2]_C_int) (err error) +//sysnb pipe(p *[2]_C_int) (err error) func Pipe(p []int) (err error) { if len(p) != 2 { @@ -112,7 +113,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go index b0b1505565..ce9bcd3171 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build riscv64 && linux // +build riscv64,linux package unix @@ -154,7 +155,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go index 2363f74991..a1e45694b4 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build s390x && linux // +build s390x,linux package unix @@ -76,7 +77,7 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: sec, Usec: usec} } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe(p []int) (err error) { if len(p) != 2 { @@ -249,7 +250,7 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen } func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error { - args := [4]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val)} + args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen} _, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0) if err != 0 { return err diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go index d389f1518f..49055a3cf5 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build sparc64 && linux // +build sparc64,linux package unix @@ -115,7 +116,7 @@ func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint64(length) } -//sysnb pipe(p *[2]_C_int) (err error) +//sysnb pipe(p *[2]_C_int) (err error) func Pipe(p []int) (err error) { if len(p) != 2 { @@ -128,7 +129,7 @@ func Pipe(p []int) (err error) { return } -//sysnb pipe2(p *[2]_C_int, flags int) (err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) func Pipe2(p []int, flags int) (err error) { if len(p) != 2 { diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go index 45b50a6105..853d5f0f43 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -31,6 +31,10 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) { @@ -106,7 +110,8 @@ func direntNamlen(buf []byte) (uint64, bool) { return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) } -//sysnb pipe() (fd1 int, fd2 int, err error) +//sysnb pipe() (fd1 int, fd2 int, err error) + func Pipe(p []int) (err error) { if len(p) != 2 { return EINVAL @@ -115,7 +120,21 @@ func Pipe(p []int) (err error) { return } -//sys Getdents(fd int, buf []byte) (n int, err error) +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return err +} + +//sys Getdents(fd int, buf []byte) (n int, err error) + func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { n, err = Getdents(fd, buf) if err != nil || basep == nil { @@ -141,23 +160,8 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { return } -const ImplementsGetwd = true - //sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD -func Getwd() (string, error) { - var buf [PathMax]byte - _, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - // TODO func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { return -1, ENOSYS @@ -170,7 +174,7 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { //sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL func IoctlGetPtmget(fd int, req uint) (*Ptmget, error) { var value Ptmget diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go index 24da8b5245..5199d282fd 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build 386 && netbsd // +build 386,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go index 25a0ac8258..70a9c52e98 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build amd64 && netbsd // +build amd64,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go index 21591ecd4d..3eb5942f93 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build arm && netbsd // +build arm,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go index 8047496350..fc6ccfd810 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build arm64 && netbsd // +build arm64,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go index a266e92a9b..22b5503850 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -31,6 +31,10 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) func nametomib(name string) (mib []_C_int, err error) { @@ -88,7 +92,7 @@ func Pipe2(p []int, flags int) error { return err } -//sys Getdents(fd int, buf []byte) (n int, err error) +//sys Getdents(fd int, buf []byte) (n int, err error) func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { n, err = Getdents(fd, buf) if err != nil || basep == nil { @@ -114,23 +118,8 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { return } -const ImplementsGetwd = true - //sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD -func Getwd() (string, error) { - var buf [PathMax]byte - _, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { if raceenabled { raceReleaseMerge(unsafe.Pointer(&ioSync)) @@ -165,7 +154,7 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { //sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL //sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go index 42b5a0e51e..6baabcdcb0 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build 386 && openbsd // +build 386,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go index 6ea4b48831..bab25360ea 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build amd64 && openbsd // +build amd64,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go index 1c3d26fa2c..8eed3c4d4e 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build arm && openbsd // +build arm,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go index a8c458cb03..483dde99d4 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build arm64 && openbsd // +build arm64,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index 0e2a696ad3..77fcde7c18 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -13,6 +13,7 @@ package unix import ( + "runtime" "syscall" "unsafe" ) @@ -67,6 +68,19 @@ func Pipe(p []int) (err error) { return nil } +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return err +} + func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { if sa.Port < 0 || sa.Port > 0xFFFF { return nil, 0, EINVAL @@ -551,10 +565,17 @@ func Minor(dev uint64) uint32 { * Expose the ioctl function */ -//sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys ioctlRet(fd int, req uint, arg uintptr) (ret int, err error) = libc.ioctl + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, err = ioctlRet(fd, req, arg) + return err +} -func IoctlSetTermio(fd int, req uint, value *Termio) (err error) { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) +func IoctlSetTermio(fd int, req uint, value *Termio) error { + err := ioctl(fd, req, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err } func IoctlGetTermio(fd int, req uint) (*Termio, error) { @@ -563,7 +584,7 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) { return &value, err } -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) func Poll(fds []PollFd, timeout int) (n int, err error) { if len(fds) == 0 { @@ -666,6 +687,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Statvfs(path string, vfsstat *Statvfs_t) (err error) //sys Symlink(path string, link string) (err error) //sys Sync() (err error) +//sys Sysconf(which int) (n int64, err error) //sysnb Times(tms *Tms) (ticks uintptr, err error) //sys Truncate(path string, length int64) (err error) //sys Fsync(fd int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go index b22a34d7ae..0bd25ef81f 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build amd64 && solaris // +build amd64,solaris package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go index 400ba9fbc9..a7618ceb55 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go index 1c70d1b690..5898e9a52b 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go @@ -2,8 +2,11 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build (darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris) && gc && !ppc64le && !ppc64 // +build darwin dragonfly freebsd linux netbsd openbsd solaris -// +build !gccgo,!ppc64le,!ppc64 +// +build gc +// +build !ppc64le +// +build !ppc64 package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go index 86dc765aba..f6f707acf2 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go @@ -2,9 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build linux && (ppc64le || ppc64) && gc // +build linux // +build ppc64le ppc64 -// +build !gccgo +// +build gc package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go new file mode 100644 index 0000000000..1ffd8bfcfb --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go @@ -0,0 +1,1829 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "bytes" + "runtime" + "sort" + "sync" + "syscall" + "unsafe" +) + +const ( + O_CLOEXEC = 0 // Dummy value (not supported). + AF_LOCAL = AF_UNIX // AF_LOCAL is an alias for AF_UNIX +) + +func syscall_syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawsyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawsyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawsyscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) + +func copyStat(stat *Stat_t, statLE *Stat_LE_t) { + stat.Dev = uint64(statLE.Dev) + stat.Ino = uint64(statLE.Ino) + stat.Nlink = uint64(statLE.Nlink) + stat.Mode = uint32(statLE.Mode) + stat.Uid = uint32(statLE.Uid) + stat.Gid = uint32(statLE.Gid) + stat.Rdev = uint64(statLE.Rdev) + stat.Size = statLE.Size + stat.Atim.Sec = int64(statLE.Atim) + stat.Atim.Nsec = 0 //zos doesn't return nanoseconds + stat.Mtim.Sec = int64(statLE.Mtim) + stat.Mtim.Nsec = 0 //zos doesn't return nanoseconds + stat.Ctim.Sec = int64(statLE.Ctim) + stat.Ctim.Nsec = 0 //zos doesn't return nanoseconds + stat.Blksize = int64(statLE.Blksize) + stat.Blocks = statLE.Blocks +} + +func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) +func svcLoad(name *byte) unsafe.Pointer +func svcUnload(name *byte, fnptr unsafe.Pointer) int64 + +func (d *Dirent) NameString() string { + if d == nil { + return "" + } + return string(d.Name[:d.Namlen]) +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Len = SizeofSockaddrInet4 + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Len = SizeofSockaddrInet6 + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n >= len(sa.raw.Path) || n == 0 { + return nil, 0, EINVAL + } + sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) { + // TODO(neeilan): Implement use of first param (fd) + switch rsa.Addr.Family { + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + // For z/OS, only replace NUL with @ when the + // length is not zero. + if pp.Len != 0 && pp.Path[0] == 0 { + // "Abstract" Unix domain socket. + // Rewrite leading NUL as @ for textual display. + // (This is the standard convention.) + // Not friendly to overwrite in place, + // but the callers below don't care. + pp.Path[0] = '@' + } + + // Assume path ends at NUL. + // + // For z/OS, the length of the name is a field + // in the structure. To be on the safe side, we + // will still scan the name for a NUL but only + // to the length provided in the structure. + // + // This is not technically the Linux semantics for + // abstract Unix domain sockets--they are supposed + // to be uninterpreted fixed-size binary blobs--but + // everyone uses this convention. + n := 0 + for n < int(pp.Len) && pp.Path[n] != 0 { + n++ + } + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + sa.Name = string(bytes) + return sa, nil + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + } + return nil, EAFNOSUPPORT +} + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if err != nil { + return + } + // TODO(neeilan): Remove 0 in call + sa, err = anyToSockaddr(0, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = int32(length) +} + +//sys fcntl(fd int, cmd int, arg int) (val int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys write(fd int, p []byte) (n int, err error) + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___BIND_A +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___CONNECT_A +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETPEERNAME_A +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETSOCKNAME_A +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = SYS___RECVFROM_A +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = SYS___SENDTO_A +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___RECVMSG_A +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___SENDMSG_A +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) = SYS_MMAP +//sys munmap(addr uintptr, length uintptr) (err error) = SYS_MUNMAP +//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL + +//sys Access(path string, mode uint32) (err error) = SYS___ACCESS_A +//sys Chdir(path string) (err error) = SYS___CHDIR_A +//sys Chown(path string, uid int, gid int) (err error) = SYS___CHOWN_A +//sys Chmod(path string, mode uint32) (err error) = SYS___CHMOD_A +//sys Creat(path string, mode uint32) (fd int, err error) = SYS___CREAT_A +//sys Dup(oldfd int) (fd int, err error) +//sys Dup2(oldfd int, newfd int) (err error) +//sys Errno2() (er2 int) = SYS___ERRNO2 +//sys Err2ad() (eadd *int) = SYS___ERR2AD +//sys Exit(code int) +//sys Fchdir(fd int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL +//sys fstat(fd int, stat *Stat_LE_t) (err error) + +func Fstat(fd int, stat *Stat_t) (err error) { + var statLE Stat_LE_t + err = fstat(fd, &statLE) + copyStat(stat, &statLE) + return +} + +//sys Fstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys Getpagesize() (pgsize int) = SYS_GETPAGESIZE +//sys Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT +//sys Msync(b []byte, flags int) (err error) = SYS_MSYNC +//sys Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL +//sys Times(tms *Tms) (ticks uintptr, err error) = SYS_TIMES +//sys W_Getmntent(buff *byte, size int) (lastsys int, err error) = SYS_W_GETMNTENT +//sys W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A + +//sys mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A +//sys unmount(filesystem string, mtm int) (err error) = SYS___UMOUNT_A +//sys Chroot(path string) (err error) = SYS___CHROOT_A +//sys Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT +//sysnb Uname(buf *Utsname) (err error) = SYS___UNAME_A + +func Ptsname(fd int) (name string, err error) { + r0, _, e1 := syscall_syscall(SYS___PTSNAME_A, uintptr(fd), 0, 0) + name = u2s(unsafe.Pointer(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func u2s(cstr unsafe.Pointer) string { + str := (*[1024]uint8)(cstr) + i := 0 + for str[i] != 0 { + i++ + } + return string(str[:i]) +} + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) + for i := 0; e1 == EAGAIN && i < 10; i++ { + _, _, _ = syscall_syscall(SYS_USLEEP, uintptr(10), 0, 0) + _, _, e1 = syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) + } + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} + +// Dummy function: there are no semantics for Madvise on z/OS +func Madvise(b []byte, advice int) (err error) { + return +} + +func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + return mapper.Mmap(fd, offset, length, prot, flags) +} + +func Munmap(b []byte) (err error) { + return mapper.Munmap(b) +} + +//sys Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpid() (pid int) +//sysnb Getpgid(pid int) (pgid int, err error) = SYS_GETPGID + +func Getpgrp() (pid int) { + pid, _ = Getpgid(0) + return +} + +//sysnb Getppid() (pid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_GETRLIMIT + +//sysnb getrusage(who int, rusage *rusage_zos) (err error) = SYS_GETRUSAGE + +func Getrusage(who int, rusage *Rusage) (err error) { + var ruz rusage_zos + err = getrusage(who, &ruz) + //Only the first two fields of Rusage are set + rusage.Utime.Sec = ruz.Utime.Sec + rusage.Utime.Usec = int64(ruz.Utime.Usec) + rusage.Stime.Sec = ruz.Stime.Sec + rusage.Stime.Usec = int64(ruz.Stime.Usec) + return +} + +//sysnb Getsid(pid int) (sid int, err error) = SYS_GETSID +//sysnb Getuid() (uid int) +//sysnb Kill(pid int, sig Signal) (err error) +//sys Lchown(path string, uid int, gid int) (err error) = SYS___LCHOWN_A +//sys Link(path string, link string) (err error) = SYS___LINK_A +//sys Listen(s int, n int) (err error) +//sys lstat(path string, stat *Stat_LE_t) (err error) = SYS___LSTAT_A + +func Lstat(path string, stat *Stat_t) (err error) { + var statLE Stat_LE_t + err = lstat(path, &statLE) + copyStat(stat, &statLE) + return +} + +//sys Mkdir(path string, mode uint32) (err error) = SYS___MKDIR_A +//sys Mkfifo(path string, mode uint32) (err error) = SYS___MKFIFO_A +//sys Mknod(path string, mode uint32, dev int) (err error) = SYS___MKNOD_A +//sys Pread(fd int, p []byte, offset int64) (n int, err error) +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) = SYS___READLINK_A +//sys Rename(from string, to string) (err error) = SYS___RENAME_A +//sys Rmdir(path string) (err error) = SYS___RMDIR_A +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) = SYS_SETPGID +//sysnb Setrlimit(resource int, lim *Rlimit) (err error) +//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID +//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID +//sysnb Setsid() (pid int, err error) = SYS_SETSID +//sys Setuid(uid int) (err error) = SYS_SETUID +//sys Setgid(uid int) (err error) = SYS_SETGID +//sys Shutdown(fd int, how int) (err error) +//sys stat(path string, statLE *Stat_LE_t) (err error) = SYS___STAT_A + +func Stat(path string, sta *Stat_t) (err error) { + var statLE Stat_LE_t + err = stat(path, &statLE) + copyStat(sta, &statLE) + return +} + +//sys Symlink(path string, link string) (err error) = SYS___SYMLINK_A +//sys Sync() = SYS_SYNC +//sys Truncate(path string, length int64) (err error) = SYS___TRUNCATE_A +//sys Tcgetattr(fildes int, termptr *Termios) (err error) = SYS_TCGETATTR +//sys Tcsetattr(fildes int, when int, termptr *Termios) (err error) = SYS_TCSETATTR +//sys Umask(mask int) (oldmask int) +//sys Unlink(path string) (err error) = SYS___UNLINK_A +//sys Utime(path string, utim *Utimbuf) (err error) = SYS___UTIME_A + +//sys open(path string, mode int, perm uint32) (fd int, err error) = SYS___OPEN_A + +func Open(path string, mode int, perm uint32) (fd int, err error) { + return open(path, mode, perm) +} + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + wd, err := Getwd() + if err != nil { + return err + } + + if err := Fchdir(dirfd); err != nil { + return err + } + defer Chdir(wd) + + return Mkfifo(path, mode) +} + +//sys remove(path string) (err error) + +func Remove(path string) error { + return remove(path) +} + +const ImplementsGetwd = true + +func Getcwd(buf []byte) (n int, err error) { + var p unsafe.Pointer + if len(buf) > 0 { + p = unsafe.Pointer(&buf[0]) + } else { + p = unsafe.Pointer(&_zero) + } + _, _, e := syscall_syscall(SYS___GETCWD_A, uintptr(p), uintptr(len(buf)), 0) + n = clen(buf) + 1 + if e != 0 { + err = errnoErr(e) + } + return +} + +func Getwd() (wd string, err error) { + var buf [PathMax]byte + n, err := Getcwd(buf[0:]) + if err != nil { + return "", err + } + // Getcwd returns the number of bytes written to buf, including the NUL. + if n < 1 || n > len(buf) || buf[n-1] != 0 { + return "", EINVAL + } + return string(buf[0 : n-1]), nil +} + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + if err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Sanity check group count. Max is 1<<16 on Linux. + if n < 0 || n > 1<<20 { + return nil, EINVAL + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if err != nil { + return nil, err + } + gids = make([]int, n) + for i, v := range a[0:n] { + gids[i] = int(v) + } + return +} + +func Setgroups(gids []int) (err error) { + if len(gids) == 0 { + return setgroups(0, nil) + } + + a := make([]_Gid_t, len(gids)) + for i, v := range gids { + a[i] = _Gid_t(v) + } + return setgroups(len(a), &a[0]) +} + +func gettid() uint64 + +func Gettid() (tid int) { + return int(gettid()) +} + +type WaitStatus uint32 + +// Wait status is 7 bits at bottom, either 0 (exited), +// 0x7F (stopped), or a signal number that caused an exit. +// The 0x80 bit is whether there was a core dump. +// An extra number (exit code, signal causing a stop) +// is in the high bits. At least that's the idea. +// There are various irregularities. For example, the +// "continued" status is 0xFFFF, distinguishing itself +// from stopped via the core dump bit. + +const ( + mask = 0x7F + core = 0x80 + exited = 0x00 + stopped = 0x7F + shift = 8 +) + +func (w WaitStatus) Exited() bool { return w&mask == exited } + +func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited } + +func (w WaitStatus) Stopped() bool { return w&0xFF == stopped } + +func (w WaitStatus) Continued() bool { return w == 0xFFFF } + +func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } + +func (w WaitStatus) ExitStatus() int { + if !w.Exited() { + return -1 + } + return int(w>>shift) & 0xFF +} + +func (w WaitStatus) Signal() Signal { + if !w.Signaled() { + return -1 + } + return Signal(w & mask) +} + +func (w WaitStatus) StopSignal() Signal { + if !w.Stopped() { + return -1 + } + return Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + // TODO(mundaym): z/OS doesn't have wait4. I don't think getrusage does what we want. + // At the moment rusage will not be touched. + var status _C_int + wpid, err = waitpid(pid, &status, options) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +//sysnb gettimeofday(tv *timeval_zos) (err error) + +func Gettimeofday(tv *Timeval) (err error) { + var tvz timeval_zos + err = gettimeofday(&tvz) + tv.Sec = tvz.Sec + tv.Usec = int64(tvz.Usec) + return +} + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + err = Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { //fix + return Timeval{Sec: sec, Usec: usec} +} + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe(&pp) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sys utimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A + +func Utimes(path string, tv []Timeval) (err error) { + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func UtimesNano(path string, ts []Timespec) error { + if len(ts) != 2 { + return EINVAL + } + // Not as efficient as it could be because Timespec and + // Timeval have different types in the different OSes + tv := [2]Timeval{ + NsecToTimeval(TimespecToNsec(ts[0])), + NsecToTimeval(TimespecToNsec(ts[1])), + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + // TODO(neeilan) : Remove this 0 ( added to get sys/unix compiling on z/OS ) + return anyToSockaddr(0, &rsa) +} + +const ( + // identifier constants + nwmHeaderIdentifier = 0xd5e6d4c8 + nwmFilterIdentifier = 0xd5e6d4c6 + nwmTCPConnIdentifier = 0xd5e6d4c3 + nwmRecHeaderIdentifier = 0xd5e6d4d9 + nwmIPStatsIdentifier = 0xd5e6d4c9d7e2e340 + nwmIPGStatsIdentifier = 0xd5e6d4c9d7c7e2e3 + nwmTCPStatsIdentifier = 0xd5e6d4e3c3d7e2e3 + nwmUDPStatsIdentifier = 0xd5e6d4e4c4d7e2e3 + nwmICMPGStatsEntry = 0xd5e6d4c9c3d4d7c7 + nwmICMPTStatsEntry = 0xd5e6d4c9c3d4d7e3 + + // nwmHeader constants + nwmVersion1 = 1 + nwmVersion2 = 2 + nwmCurrentVer = 2 + + nwmTCPConnType = 1 + nwmGlobalStatsType = 14 + + // nwmFilter constants + nwmFilterLclAddrMask = 0x20000000 // Local address + nwmFilterSrcAddrMask = 0x20000000 // Source address + nwmFilterLclPortMask = 0x10000000 // Local port + nwmFilterSrcPortMask = 0x10000000 // Source port + + // nwmConnEntry constants + nwmTCPStateClosed = 1 + nwmTCPStateListen = 2 + nwmTCPStateSynSent = 3 + nwmTCPStateSynRcvd = 4 + nwmTCPStateEstab = 5 + nwmTCPStateFinWait1 = 6 + nwmTCPStateFinWait2 = 7 + nwmTCPStateClosWait = 8 + nwmTCPStateLastAck = 9 + nwmTCPStateClosing = 10 + nwmTCPStateTimeWait = 11 + nwmTCPStateDeletTCB = 12 + + // Existing constants on linux + BPF_TCP_CLOSE = 1 + BPF_TCP_LISTEN = 2 + BPF_TCP_SYN_SENT = 3 + BPF_TCP_SYN_RECV = 4 + BPF_TCP_ESTABLISHED = 5 + BPF_TCP_FIN_WAIT1 = 6 + BPF_TCP_FIN_WAIT2 = 7 + BPF_TCP_CLOSE_WAIT = 8 + BPF_TCP_LAST_ACK = 9 + BPF_TCP_CLOSING = 10 + BPF_TCP_TIME_WAIT = 11 + BPF_TCP_NEW_SYN_RECV = -1 + BPF_TCP_MAX_STATES = -2 +) + +type nwmTriplet struct { + offset uint32 + length uint32 + number uint32 +} + +type nwmQuadruplet struct { + offset uint32 + length uint32 + number uint32 + match uint32 +} + +type nwmHeader struct { + ident uint32 + length uint32 + version uint16 + nwmType uint16 + bytesNeeded uint32 + options uint32 + _ [16]byte + inputDesc nwmTriplet + outputDesc nwmQuadruplet +} + +type nwmFilter struct { + ident uint32 + flags uint32 + resourceName [8]byte + resourceId uint32 + listenerId uint32 + local [28]byte // union of sockaddr4 and sockaddr6 + remote [28]byte // union of sockaddr4 and sockaddr6 + _ uint16 + _ uint16 + asid uint16 + _ [2]byte + tnLuName [8]byte + tnMonGrp uint32 + tnAppl [8]byte + applData [40]byte + nInterface [16]byte + dVipa [16]byte + dVipaPfx uint16 + dVipaPort uint16 + dVipaFamily byte + _ [3]byte + destXCF [16]byte + destXCFPfx uint16 + destXCFFamily byte + _ [1]byte + targIP [16]byte + targIPPfx uint16 + targIPFamily byte + _ [1]byte + _ [20]byte +} + +type nwmRecHeader struct { + ident uint32 + length uint32 + number byte + _ [3]byte +} + +type nwmTCPStatsEntry struct { + ident uint64 + currEstab uint32 + activeOpened uint32 + passiveOpened uint32 + connClosed uint32 + estabResets uint32 + attemptFails uint32 + passiveDrops uint32 + timeWaitReused uint32 + inSegs uint64 + predictAck uint32 + predictData uint32 + inDupAck uint32 + inBadSum uint32 + inBadLen uint32 + inShort uint32 + inDiscOldTime uint32 + inAllBeforeWin uint32 + inSomeBeforeWin uint32 + inAllAfterWin uint32 + inSomeAfterWin uint32 + inOutOfOrder uint32 + inAfterClose uint32 + inWinProbes uint32 + inWinUpdates uint32 + outWinUpdates uint32 + outSegs uint64 + outDelayAcks uint32 + outRsts uint32 + retransSegs uint32 + retransTimeouts uint32 + retransDrops uint32 + pmtuRetrans uint32 + pmtuErrors uint32 + outWinProbes uint32 + probeDrops uint32 + keepAliveProbes uint32 + keepAliveDrops uint32 + finwait2Drops uint32 + acceptCount uint64 + inBulkQSegs uint64 + inDiscards uint64 + connFloods uint32 + connStalls uint32 + cfgEphemDef uint16 + ephemInUse uint16 + ephemHiWater uint16 + flags byte + _ [1]byte + ephemExhaust uint32 + smcRCurrEstabLnks uint32 + smcRLnkActTimeOut uint32 + smcRActLnkOpened uint32 + smcRPasLnkOpened uint32 + smcRLnksClosed uint32 + smcRCurrEstab uint32 + smcRActiveOpened uint32 + smcRPassiveOpened uint32 + smcRConnClosed uint32 + smcRInSegs uint64 + smcROutSegs uint64 + smcRInRsts uint32 + smcROutRsts uint32 + smcDCurrEstabLnks uint32 + smcDActLnkOpened uint32 + smcDPasLnkOpened uint32 + smcDLnksClosed uint32 + smcDCurrEstab uint32 + smcDActiveOpened uint32 + smcDPassiveOpened uint32 + smcDConnClosed uint32 + smcDInSegs uint64 + smcDOutSegs uint64 + smcDInRsts uint32 + smcDOutRsts uint32 +} + +type nwmConnEntry struct { + ident uint32 + local [28]byte // union of sockaddr4 and sockaddr6 + remote [28]byte // union of sockaddr4 and sockaddr6 + startTime [8]byte // uint64, changed to prevent padding from being inserted + lastActivity [8]byte // uint64 + bytesIn [8]byte // uint64 + bytesOut [8]byte // uint64 + inSegs [8]byte // uint64 + outSegs [8]byte // uint64 + state uint16 + activeOpen byte + flag01 byte + outBuffered uint32 + inBuffered uint32 + maxSndWnd uint32 + reXmtCount uint32 + congestionWnd uint32 + ssThresh uint32 + roundTripTime uint32 + roundTripVar uint32 + sendMSS uint32 + sndWnd uint32 + rcvBufSize uint32 + sndBufSize uint32 + outOfOrderCount uint32 + lcl0WindowCount uint32 + rmt0WindowCount uint32 + dupacks uint32 + flag02 byte + sockOpt6Cont byte + asid uint16 + resourceName [8]byte + resourceId uint32 + subtask uint32 + sockOpt byte + sockOpt6 byte + clusterConnFlag byte + proto byte + targetAppl [8]byte + luName [8]byte + clientUserId [8]byte + logMode [8]byte + timeStamp uint32 + timeStampAge uint32 + serverResourceId uint32 + intfName [16]byte + ttlsStatPol byte + ttlsStatConn byte + ttlsSSLProt uint16 + ttlsNegCiph [2]byte + ttlsSecType byte + ttlsFIPS140Mode byte + ttlsUserID [8]byte + applData [40]byte + inOldestTime [8]byte // uint64 + outOldestTime [8]byte // uint64 + tcpTrustedPartner byte + _ [3]byte + bulkDataIntfName [16]byte + ttlsNegCiph4 [4]byte + smcReason uint32 + lclSMCLinkId uint32 + rmtSMCLinkId uint32 + smcStatus byte + smcFlags byte + _ [2]byte + rcvWnd uint32 + lclSMCBufSz uint32 + rmtSMCBufSz uint32 + ttlsSessID [32]byte + ttlsSessIDLen int16 + _ [1]byte + smcDStatus byte + smcDReason uint32 +} + +var svcNameTable [][]byte = [][]byte{ + []byte("\xc5\xe9\xc2\xd5\xd4\xc9\xc6\xf4"), // svc_EZBNMIF4 +} + +const ( + svc_EZBNMIF4 = 0 +) + +func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { + jobname := []byte("\x5c\x40\x40\x40\x40\x40\x40\x40") // "*" + responseBuffer := [4096]byte{0} + var bufferAlet, reasonCode uint32 = 0, 0 + var bufferLen, returnValue, returnCode int32 = 4096, 0, 0 + + dsa := [18]uint64{0} + var argv [7]unsafe.Pointer + argv[0] = unsafe.Pointer(&jobname[0]) + argv[1] = unsafe.Pointer(&responseBuffer[0]) + argv[2] = unsafe.Pointer(&bufferAlet) + argv[3] = unsafe.Pointer(&bufferLen) + argv[4] = unsafe.Pointer(&returnValue) + argv[5] = unsafe.Pointer(&returnCode) + argv[6] = unsafe.Pointer(&reasonCode) + + request := (*struct { + header nwmHeader + filter nwmFilter + })(unsafe.Pointer(&responseBuffer[0])) + + EZBNMIF4 := svcLoad(&svcNameTable[svc_EZBNMIF4][0]) + if EZBNMIF4 == nil { + return nil, errnoErr(EINVAL) + } + + // GetGlobalStats EZBNMIF4 call + request.header.ident = nwmHeaderIdentifier + request.header.length = uint32(unsafe.Sizeof(request.header)) + request.header.version = nwmCurrentVer + request.header.nwmType = nwmGlobalStatsType + request.header.options = 0x80000000 + + svcCall(EZBNMIF4, &argv[0], &dsa[0]) + + // outputDesc field is filled by EZBNMIF4 on success + if returnCode != 0 || request.header.outputDesc.offset == 0 { + return nil, errnoErr(EINVAL) + } + + // Check that EZBNMIF4 returned a nwmRecHeader + recHeader := (*nwmRecHeader)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset])) + if recHeader.ident != nwmRecHeaderIdentifier { + return nil, errnoErr(EINVAL) + } + + // Parse nwmTriplets to get offsets of returned entries + var sections []*uint64 + var sectionDesc *nwmTriplet = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[0])) + for i := uint32(0); i < uint32(recHeader.number); i++ { + offset := request.header.outputDesc.offset + uint32(unsafe.Sizeof(*recHeader)) + i*uint32(unsafe.Sizeof(*sectionDesc)) + sectionDesc = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[offset])) + for j := uint32(0); j < sectionDesc.number; j++ { + offset = request.header.outputDesc.offset + sectionDesc.offset + j*sectionDesc.length + sections = append(sections, (*uint64)(unsafe.Pointer(&responseBuffer[offset]))) + } + } + + // Find nwmTCPStatsEntry in returned entries + var tcpStats *nwmTCPStatsEntry = nil + for _, ptr := range sections { + switch *ptr { + case nwmTCPStatsIdentifier: + if tcpStats != nil { + return nil, errnoErr(EINVAL) + } + tcpStats = (*nwmTCPStatsEntry)(unsafe.Pointer(ptr)) + case nwmIPStatsIdentifier: + case nwmIPGStatsIdentifier: + case nwmUDPStatsIdentifier: + case nwmICMPGStatsEntry: + case nwmICMPTStatsEntry: + default: + return nil, errnoErr(EINVAL) + } + } + if tcpStats == nil { + return nil, errnoErr(EINVAL) + } + + // GetConnectionDetail EZBNMIF4 call + responseBuffer = [4096]byte{0} + dsa = [18]uint64{0} + bufferAlet, reasonCode = 0, 0 + bufferLen, returnValue, returnCode = 4096, 0, 0 + nameptr := (*uint32)(unsafe.Pointer(uintptr(0x21c))) // Get jobname of current process + nameptr = (*uint32)(unsafe.Pointer(uintptr(*nameptr + 12))) + argv[0] = unsafe.Pointer(uintptr(*nameptr)) + + request.header.ident = nwmHeaderIdentifier + request.header.length = uint32(unsafe.Sizeof(request.header)) + request.header.version = nwmCurrentVer + request.header.nwmType = nwmTCPConnType + request.header.options = 0x80000000 + + request.filter.ident = nwmFilterIdentifier + + var localSockaddr RawSockaddrAny + socklen := _Socklen(SizeofSockaddrAny) + err := getsockname(fd, &localSockaddr, &socklen) + if err != nil { + return nil, errnoErr(EINVAL) + } + if localSockaddr.Addr.Family == AF_INET { + localSockaddr := (*RawSockaddrInet4)(unsafe.Pointer(&localSockaddr.Addr)) + localSockFilter := (*RawSockaddrInet4)(unsafe.Pointer(&request.filter.local[0])) + localSockFilter.Family = AF_INET + var i int + for i = 0; i < 4; i++ { + if localSockaddr.Addr[i] != 0 { + break + } + } + if i != 4 { + request.filter.flags |= nwmFilterLclAddrMask + for i = 0; i < 4; i++ { + localSockFilter.Addr[i] = localSockaddr.Addr[i] + } + } + if localSockaddr.Port != 0 { + request.filter.flags |= nwmFilterLclPortMask + localSockFilter.Port = localSockaddr.Port + } + } else if localSockaddr.Addr.Family == AF_INET6 { + localSockaddr := (*RawSockaddrInet6)(unsafe.Pointer(&localSockaddr.Addr)) + localSockFilter := (*RawSockaddrInet6)(unsafe.Pointer(&request.filter.local[0])) + localSockFilter.Family = AF_INET6 + var i int + for i = 0; i < 16; i++ { + if localSockaddr.Addr[i] != 0 { + break + } + } + if i != 16 { + request.filter.flags |= nwmFilterLclAddrMask + for i = 0; i < 16; i++ { + localSockFilter.Addr[i] = localSockaddr.Addr[i] + } + } + if localSockaddr.Port != 0 { + request.filter.flags |= nwmFilterLclPortMask + localSockFilter.Port = localSockaddr.Port + } + } + + svcCall(EZBNMIF4, &argv[0], &dsa[0]) + + // outputDesc field is filled by EZBNMIF4 on success + if returnCode != 0 || request.header.outputDesc.offset == 0 { + return nil, errnoErr(EINVAL) + } + + // Check that EZBNMIF4 returned a nwmConnEntry + conn := (*nwmConnEntry)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset])) + if conn.ident != nwmTCPConnIdentifier { + return nil, errnoErr(EINVAL) + } + + // Copy data from the returned data structures into tcpInfo + // Stats from nwmConnEntry are specific to that connection. + // Stats from nwmTCPStatsEntry are global (to the interface?) + // Fields may not be an exact match. Some fields have no equivalent. + var tcpinfo TCPInfo + tcpinfo.State = uint8(conn.state) + tcpinfo.Ca_state = 0 // dummy + tcpinfo.Retransmits = uint8(tcpStats.retransSegs) + tcpinfo.Probes = uint8(tcpStats.outWinProbes) + tcpinfo.Backoff = 0 // dummy + tcpinfo.Options = 0 // dummy + tcpinfo.Rto = tcpStats.retransTimeouts + tcpinfo.Ato = tcpStats.outDelayAcks + tcpinfo.Snd_mss = conn.sendMSS + tcpinfo.Rcv_mss = conn.sendMSS // dummy + tcpinfo.Unacked = 0 // dummy + tcpinfo.Sacked = 0 // dummy + tcpinfo.Lost = 0 // dummy + tcpinfo.Retrans = conn.reXmtCount + tcpinfo.Fackets = 0 // dummy + tcpinfo.Last_data_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.lastActivity[0]))) + tcpinfo.Last_ack_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.outOldestTime[0]))) + tcpinfo.Last_data_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0]))) + tcpinfo.Last_ack_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0]))) + tcpinfo.Pmtu = conn.sendMSS // dummy, NWMIfRouteMtu is a candidate + tcpinfo.Rcv_ssthresh = conn.ssThresh + tcpinfo.Rtt = conn.roundTripTime + tcpinfo.Rttvar = conn.roundTripVar + tcpinfo.Snd_ssthresh = conn.ssThresh // dummy + tcpinfo.Snd_cwnd = conn.congestionWnd + tcpinfo.Advmss = conn.sendMSS // dummy + tcpinfo.Reordering = 0 // dummy + tcpinfo.Rcv_rtt = conn.roundTripTime // dummy + tcpinfo.Rcv_space = conn.sendMSS // dummy + tcpinfo.Total_retrans = conn.reXmtCount + + svcUnload(&svcNameTable[svc_EZBNMIF4][0], EZBNMIF4) + + return &tcpinfo, nil +} + +// GetsockoptString returns the string value of the socket option opt for the +// socket associated with fd at the given socket level. +func GetsockoptString(fd, level, opt int) (string, error) { + buf := make([]byte, 256) + vallen := _Socklen(len(buf)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + if err != nil { + return "", err + } + + return string(buf[:vallen-1]), nil +} + +func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { + var msg Msghdr + var rsa RawSockaddrAny + msg.Name = (*byte)(unsafe.Pointer(&rsa)) + msg.Namelen = SizeofSockaddrAny + var iov Iovec + if len(p) > 0 { + iov.Base = (*byte)(unsafe.Pointer(&p[0])) + iov.SetLen(len(p)) + } + var dummy byte + if len(oob) > 0 { + // receive at least one normal byte + if len(p) == 0 { + iov.Base = &dummy + iov.SetLen(1) + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = recvmsg(fd, &msg, flags); err != nil { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + // source address is only specified if the socket is unconnected + if rsa.Addr.Family != AF_UNSPEC { + // TODO(neeilan): Remove 0 arg added to get this compiling on z/OS + from, err = anyToSockaddr(0, &rsa) + } + return +} + +func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { + _, err = SendmsgN(fd, p, oob, to, flags) + return +} + +func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + var err error + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } + } + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = int32(salen) + var iov Iovec + if len(p) > 0 { + iov.Base = (*byte)(unsafe.Pointer(&p[0])) + iov.SetLen(len(p)) + } + var dummy byte + if len(oob) > 0 { + // send at least one normal byte + if len(p) == 0 { + iov.Base = &dummy + iov.SetLen(1) + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && len(p) == 0 { + n = 0 + } + return n, nil +} + +func Opendir(name string) (uintptr, error) { + p, err := BytePtrFromString(name) + if err != nil { + return 0, err + } + dir, _, e := syscall_syscall(SYS___OPENDIR_A, uintptr(unsafe.Pointer(p)), 0, 0) + runtime.KeepAlive(unsafe.Pointer(p)) + if e != 0 { + err = errnoErr(e) + } + return dir, err +} + +// clearsyscall.Errno resets the errno value to 0. +func clearErrno() + +func Readdir(dir uintptr) (*Dirent, error) { + var ent Dirent + var res uintptr + // __readdir_r_a returns errno at the end of the directory stream, rather than 0. + // Therefore to avoid false positives we clear errno before calling it. + + // TODO(neeilan): Commented this out to get sys/unix compiling on z/OS. Uncomment and fix. Error: "undefined: clearsyscall" + //clearsyscall.Errno() // TODO(mundaym): check pre-emption rules. + + e, _, _ := syscall_syscall(SYS___READDIR_R_A, dir, uintptr(unsafe.Pointer(&ent)), uintptr(unsafe.Pointer(&res))) + var err error + if e != 0 { + err = errnoErr(Errno(e)) + } + if res == 0 { + return nil, err + } + return &ent, err +} + +func Closedir(dir uintptr) error { + _, _, e := syscall_syscall(SYS_CLOSEDIR, dir, 0, 0) + if e != 0 { + return errnoErr(e) + } + return nil +} + +func Seekdir(dir uintptr, pos int) { + _, _, _ = syscall_syscall(SYS_SEEKDIR, dir, uintptr(pos), 0) +} + +func Telldir(dir uintptr) (int, error) { + p, _, e := syscall_syscall(SYS_TELLDIR, dir, 0, 0) + pos := int(p) + if pos == -1 { + return pos, errnoErr(e) + } + return pos, nil +} + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { + // struct flock is packed on z/OS. We can't emulate that in Go so + // instead we pack it here. + var flock [24]byte + *(*int16)(unsafe.Pointer(&flock[0])) = lk.Type + *(*int16)(unsafe.Pointer(&flock[2])) = lk.Whence + *(*int64)(unsafe.Pointer(&flock[4])) = lk.Start + *(*int64)(unsafe.Pointer(&flock[12])) = lk.Len + *(*int32)(unsafe.Pointer(&flock[20])) = lk.Pid + _, _, errno := syscall_syscall(SYS_FCNTL, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock))) + lk.Type = *(*int16)(unsafe.Pointer(&flock[0])) + lk.Whence = *(*int16)(unsafe.Pointer(&flock[2])) + lk.Start = *(*int64)(unsafe.Pointer(&flock[4])) + lk.Len = *(*int64)(unsafe.Pointer(&flock[12])) + lk.Pid = *(*int32)(unsafe.Pointer(&flock[20])) + if errno == 0 { + return nil + } + return errno +} + +func Flock(fd int, how int) error { + + var flock_type int16 + var fcntl_cmd int + + switch how { + case LOCK_SH | LOCK_NB: + flock_type = F_RDLCK + fcntl_cmd = F_SETLK + case LOCK_EX | LOCK_NB: + flock_type = F_WRLCK + fcntl_cmd = F_SETLK + case LOCK_EX: + flock_type = F_WRLCK + fcntl_cmd = F_SETLKW + case LOCK_UN: + flock_type = F_UNLCK + fcntl_cmd = F_SETLKW + default: + } + + flock := Flock_t{ + Type: int16(flock_type), + Whence: int16(0), + Start: int64(0), + Len: int64(0), + Pid: int32(Getppid()), + } + + err := FcntlFlock(uintptr(fd), fcntl_cmd, &flock) + return err +} + +func Mlock(b []byte) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Mlock2(b []byte, flags int) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Munlock(b []byte) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ClockGettime(clockid int32, ts *Timespec) error { + + var ticks_per_sec uint32 = 100 //TODO(kenan): value is currently hardcoded; need sysconf() call otherwise + var nsec_per_sec int64 = 1000000000 + + if ts == nil { + return EFAULT + } + if clockid == CLOCK_REALTIME || clockid == CLOCK_MONOTONIC { + var nanotime int64 = runtime.Nanotime1() + ts.Sec = nanotime / nsec_per_sec + ts.Nsec = nanotime % nsec_per_sec + } else if clockid == CLOCK_PROCESS_CPUTIME_ID || clockid == CLOCK_THREAD_CPUTIME_ID { + var tm Tms + _, err := Times(&tm) + if err != nil { + return EFAULT + } + ts.Sec = int64(tm.Utime / ticks_per_sec) + ts.Nsec = int64(tm.Utime) * nsec_per_sec / int64(ticks_per_sec) + } else { + return EINVAL + } + return nil +} + +func Statfs(path string, stat *Statfs_t) (err error) { + fd, err := open(path, O_RDONLY, 0) + defer Close(fd) + if err != nil { + return err + } + return Fstatfs(fd, stat) +} + +var ( + Stdin = 0 + Stdout = 1 + Stderr = 2 +) + +// Do the interface allocations only once for common +// Errno values. +var ( + errEAGAIN error = syscall.EAGAIN + errEINVAL error = syscall.EINVAL + errENOENT error = syscall.ENOENT +) + +var ( + signalNameMapOnce sync.Once + signalNameMap map[string]syscall.Signal +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e Errno) error { + switch e { + case 0: + return nil + case EAGAIN: + return errEAGAIN + case EINVAL: + return errEINVAL + case ENOENT: + return errENOENT + } + return e +} + +// ErrnoName returns the error name for error number e. +func ErrnoName(e Errno) string { + i := sort.Search(len(errorList), func(i int) bool { + return errorList[i].num >= e + }) + if i < len(errorList) && errorList[i].num == e { + return errorList[i].name + } + return "" +} + +// SignalName returns the signal name for signal number s. +func SignalName(s syscall.Signal) string { + i := sort.Search(len(signalList), func(i int) bool { + return signalList[i].num >= s + }) + if i < len(signalList) && signalList[i].num == s { + return signalList[i].name + } + return "" +} + +// SignalNum returns the syscall.Signal for signal named s, +// or 0 if a signal with such name is not found. +// The signal name should start with "SIG". +func SignalNum(s string) syscall.Signal { + signalNameMapOnce.Do(func() { + signalNameMap = make(map[string]syscall.Signal, len(signalList)) + for _, signal := range signalList { + signalNameMap[signal.name] = signal.num + } + }) + return signalNameMap[s] +} + +// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte. +func clen(n []byte) int { + i := bytes.IndexByte(n, 0) + if i == -1 { + i = len(n) + } + return i +} + +// Mmap manager, for use by operating system-specific implementations. + +type mmapper struct { + sync.Mutex + active map[*byte][]byte // active mappings; key is last byte in mapping + mmap func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error) + munmap func(addr uintptr, length uintptr) error +} + +func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + if length <= 0 { + return nil, EINVAL + } + + // Map the requested memory. + addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) + if errno != nil { + return nil, errno + } + + // Slice memory layout + var sl = struct { + addr uintptr + len int + cap int + }{addr, length, length} + + // Use unsafe to turn sl into a []byte. + b := *(*[]byte)(unsafe.Pointer(&sl)) + + // Register mapping in m and return it. + p := &b[cap(b)-1] + m.Lock() + defer m.Unlock() + m.active[p] = b + return b, nil +} + +func (m *mmapper) Munmap(data []byte) (err error) { + if len(data) == 0 || len(data) != cap(data) { + return EINVAL + } + + // Find the base of the mapping. + p := &data[cap(data)-1] + m.Lock() + defer m.Unlock() + b := m.active[p] + if b == nil || &b[0] != &data[0] { + return EINVAL + } + + // Unmap the memory and update m. + if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil { + return errno + } + delete(m.active, p) + return nil +} + +func Read(fd int, p []byte) (n int, err error) { + n, err = read(fd, p) + if raceenabled { + if n > 0 { + raceWriteRange(unsafe.Pointer(&p[0]), n) + } + if err == nil { + raceAcquire(unsafe.Pointer(&ioSync)) + } + } + return +} + +func Write(fd int, p []byte) (n int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = write(fd, p) + if raceenabled && n > 0 { + raceReadRange(unsafe.Pointer(&p[0]), n) + } + return +} + +// For testing: clients can set this flag to force +// creation of IPv6 sockets to return EAFNOSUPPORT. +var SocketDisableIPv6 bool + +// Sockaddr represents a socket address. +type Sockaddr interface { + sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs +} + +// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets. +type SockaddrInet4 struct { + Port int + Addr [4]byte + raw RawSockaddrInet4 +} + +// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets. +type SockaddrInet6 struct { + Port int + ZoneId uint32 + Addr [16]byte + raw RawSockaddrInet6 +} + +// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets. +type SockaddrUnix struct { + Name string + raw RawSockaddrUnix +} + +func Bind(fd int, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return bind(fd, ptr, n) +} + +func Connect(fd int, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connect(fd, ptr, n) +} + +func Getpeername(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getpeername(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +func GetsockoptByte(fd, level, opt int) (value byte, err error) { + var n byte + vallen := _Socklen(1) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return n, err +} + +func GetsockoptInt(fd, level, opt int) (value int, err error) { + var n int32 + vallen := _Socklen(4) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return int(n), err +} + +func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { + vallen := _Socklen(4) + err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) + return value, err +} + +func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { + var value IPMreq + vallen := _Socklen(SizeofIPMreq) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { + var value IPv6Mreq + vallen := _Socklen(SizeofIPv6Mreq) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { + var value IPv6MTUInfo + vallen := _Socklen(SizeofIPv6MTUInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { + var value ICMPv6Filter + vallen := _Socklen(SizeofICMPv6Filter) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptLinger(fd, level, opt int) (*Linger, error) { + var linger Linger + vallen := _Socklen(SizeofLinger) + err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen) + return &linger, err +} + +func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { + var tv Timeval + vallen := _Socklen(unsafe.Sizeof(tv)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen) + return &tv, err +} + +func GetsockoptUint64(fd, level, opt int) (value uint64, err error) { + var n uint64 + vallen := _Socklen(8) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return n, err +} + +func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil { + return + } + if rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { + ptr, n, err := to.sockaddr() + if err != nil { + return err + } + return sendto(fd, p, flags, ptr, n) +} + +func SetsockoptByte(fd, level, opt int, value byte) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1) +} + +func SetsockoptInt(fd, level, opt int, value int) (err error) { + var n = int32(value) + return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4) +} + +func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4) +} + +func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq) +} + +func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq) +} + +func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error { + return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter) +} + +func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger) +} + +func SetsockoptString(fd, level, opt int, s string) (err error) { + var p unsafe.Pointer + if len(s) > 0 { + p = unsafe.Pointer(&[]byte(s)[0]) + } + return setsockopt(fd, level, opt, p, uintptr(len(s))) +} + +func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv)) +} + +func SetsockoptUint64(fd, level, opt int, value uint64) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8) +} + +func Socket(domain, typ, proto int) (fd int, err error) { + if domain == AF_INET6 && SocketDisableIPv6 { + return -1, EAFNOSUPPORT + } + fd, err = socket(domain, typ, proto) + return +} + +func Socketpair(domain, typ, proto int) (fd [2]int, err error) { + var fdx [2]int32 + err = socketpair(domain, typ, proto, &fdx) + if err == nil { + fd[0] = int(fdx[0]) + fd[1] = int(fdx[1]) + } + return +} + +var ioSync int64 + +func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } + +func SetNonblock(fd int, nonblocking bool) (err error) { + flag, err := fcntl(fd, F_GETFL, 0) + if err != nil { + return err + } + if nonblocking { + flag |= O_NONBLOCK + } else { + flag &= ^O_NONBLOCK + } + _, err = fcntl(fd, F_SETFL, flag) + return err +} + +// Exec calls execve(2), which replaces the calling executable in the process +// tree. argv0 should be the full path to an executable ("/bin/ls") and the +// executable name should also be the first argument in argv (["ls", "-l"]). +// envv are the environment variables that should be passed to the new +// process (["USER=go", "PWD=/tmp"]). +func Exec(argv0 string, argv []string, envv []string) error { + return syscall.Exec(argv0, argv, envv) +} + +func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { + if needspace := 8 - len(fstype); needspace <= 0 { + fstype = fstype[:8] + } else { + fstype += " "[:needspace] + } + return mount_LE(target, source, fstype, uint32(flags), int32(len(data)), data) +} + +func Unmount(name string, mtm int) (err error) { + // mountpoint is always a full path and starts with a '/' + // check if input string is not a mountpoint but a filesystem name + if name[0] != '/' { + return unmount(name, mtm) + } + // treat name as mountpoint + b2s := func(arr []byte) string { + nulli := bytes.IndexByte(arr, 0) + if nulli == -1 { + return string(arr) + } else { + return string(arr[:nulli]) + } + } + var buffer struct { + header W_Mnth + fsinfo [64]W_Mntent + } + fsCount, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer))) + if err != nil { + return err + } + if fsCount == 0 { + return EINVAL + } + for i := 0; i < fsCount; i++ { + if b2s(buffer.fsinfo[i].Mountpoint[:]) == name { + err = unmount(b2s(buffer.fsinfo[i].Fsname[:]), mtm) + break + } + } + return err +} diff --git a/vendor/golang.org/x/sys/unix/timestruct.go b/vendor/golang.org/x/sys/unix/timestruct.go index 4a672f5694..3d89304055 100644 --- a/vendor/golang.org/x/sys/unix/timestruct.go +++ b/vendor/golang.org/x/sys/unix/timestruct.go @@ -2,18 +2,17 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos package unix import "time" -// TimespecToNsec converts a Timespec value into a number of -// nanoseconds since the Unix epoch. -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } +// TimespecToNSec returns the time stored in ts as nanoseconds. +func TimespecToNsec(ts Timespec) int64 { return ts.Nano() } -// NsecToTimespec takes a number of nanoseconds since the Unix epoch -// and returns the corresponding Timespec value. +// NsecToTimespec converts a number of nanoseconds into a Timespec. func NsecToTimespec(nsec int64) Timespec { sec := nsec / 1e9 nsec = nsec % 1e9 @@ -42,12 +41,10 @@ func TimeToTimespec(t time.Time) (Timespec, error) { return ts, nil } -// TimevalToNsec converts a Timeval value into a number of nanoseconds -// since the Unix epoch. -func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } +// TimevalToNsec returns the time stored in tv as nanoseconds. +func TimevalToNsec(tv Timeval) int64 { return tv.Nano() } -// NsecToTimeval takes a number of nanoseconds since the Unix epoch -// and returns the corresponding Timeval value. +// NsecToTimeval converts a number of nanoseconds into a Timeval. func NsecToTimeval(nsec int64) Timeval { nsec += 999 // round up to microsecond usec := nsec % 1e9 / 1e3 @@ -59,24 +56,22 @@ func NsecToTimeval(nsec int64) Timeval { return setTimeval(sec, usec) } -// Unix returns ts as the number of seconds and nanoseconds elapsed since the -// Unix epoch. +// Unix returns the time stored in ts as seconds plus nanoseconds. func (ts *Timespec) Unix() (sec int64, nsec int64) { return int64(ts.Sec), int64(ts.Nsec) } -// Unix returns tv as the number of seconds and nanoseconds elapsed since the -// Unix epoch. +// Unix returns the time stored in tv as seconds plus nanoseconds. func (tv *Timeval) Unix() (sec int64, nsec int64) { return int64(tv.Sec), int64(tv.Usec) * 1000 } -// Nano returns ts as the number of nanoseconds elapsed since the Unix epoch. +// Nano returns the time stored in ts as nanoseconds. func (ts *Timespec) Nano() int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } -// Nano returns tv as the number of nanoseconds elapsed since the Unix epoch. +// Nano returns the time stored in tv as nanoseconds. func (tv *Timeval) Nano() int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 } diff --git a/vendor/golang.org/x/sys/unix/xattr_bsd.go b/vendor/golang.org/x/sys/unix/xattr_bsd.go index 30c1d71f4e..25df1e3780 100644 --- a/vendor/golang.org/x/sys/unix/xattr_bsd.go +++ b/vendor/golang.org/x/sys/unix/xattr_bsd.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build freebsd || netbsd // +build freebsd netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go index 104994bc6a..ca9799b79e 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go @@ -1,6 +1,7 @@ // mkerrors.sh -maix32 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc && aix // +build ppc,aix // Created by cgo -godefs - DO NOT EDIT diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go index 4fc8d30649..200c8c26fe 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go @@ -1,6 +1,7 @@ // mkerrors.sh -maix64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64 && aix // +build ppc64,aix // Code generated by cmd/cgo -godefs; DO NOT EDIT. diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go deleted file mode 100644 index 6217cdba57..0000000000 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go +++ /dev/null @@ -1,1784 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,darwin - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x28 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_SYSTEM = 0x20 - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_UTUN = 0x26 - ALTWERASE = 0x200 - ATTR_BIT_MAP_COUNT = 0x5 - ATTR_CMN_ACCESSMASK = 0x20000 - ATTR_CMN_ACCTIME = 0x1000 - ATTR_CMN_ADDEDTIME = 0x10000000 - ATTR_CMN_BKUPTIME = 0x2000 - ATTR_CMN_CHGTIME = 0x800 - ATTR_CMN_CRTIME = 0x200 - ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 - ATTR_CMN_DEVID = 0x2 - ATTR_CMN_DOCUMENT_ID = 0x100000 - ATTR_CMN_ERROR = 0x20000000 - ATTR_CMN_EXTENDED_SECURITY = 0x400000 - ATTR_CMN_FILEID = 0x2000000 - ATTR_CMN_FLAGS = 0x40000 - ATTR_CMN_FNDRINFO = 0x4000 - ATTR_CMN_FSID = 0x4 - ATTR_CMN_FULLPATH = 0x8000000 - ATTR_CMN_GEN_COUNT = 0x80000 - ATTR_CMN_GRPID = 0x10000 - ATTR_CMN_GRPUUID = 0x1000000 - ATTR_CMN_MODTIME = 0x400 - ATTR_CMN_NAME = 0x1 - ATTR_CMN_NAMEDATTRCOUNT = 0x80000 - ATTR_CMN_NAMEDATTRLIST = 0x100000 - ATTR_CMN_OBJID = 0x20 - ATTR_CMN_OBJPERMANENTID = 0x40 - ATTR_CMN_OBJTAG = 0x10 - ATTR_CMN_OBJTYPE = 0x8 - ATTR_CMN_OWNERID = 0x8000 - ATTR_CMN_PARENTID = 0x4000000 - ATTR_CMN_PAROBJID = 0x80 - ATTR_CMN_RETURNED_ATTRS = 0x80000000 - ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x41c7ff00 - ATTR_CMN_USERACCESS = 0x200000 - ATTR_CMN_UUID = 0x800000 - ATTR_CMN_VALIDMASK = 0xffffffff - ATTR_CMN_VOLSETMASK = 0x6700 - ATTR_FILE_ALLOCSIZE = 0x4 - ATTR_FILE_CLUMPSIZE = 0x10 - ATTR_FILE_DATAALLOCSIZE = 0x400 - ATTR_FILE_DATAEXTENTS = 0x800 - ATTR_FILE_DATALENGTH = 0x200 - ATTR_FILE_DEVTYPE = 0x20 - ATTR_FILE_FILETYPE = 0x40 - ATTR_FILE_FORKCOUNT = 0x80 - ATTR_FILE_FORKLIST = 0x100 - ATTR_FILE_IOBLOCKSIZE = 0x8 - ATTR_FILE_LINKCOUNT = 0x1 - ATTR_FILE_RSRCALLOCSIZE = 0x2000 - ATTR_FILE_RSRCEXTENTS = 0x4000 - ATTR_FILE_RSRCLENGTH = 0x1000 - ATTR_FILE_SETMASK = 0x20 - ATTR_FILE_TOTALSIZE = 0x2 - ATTR_FILE_VALIDMASK = 0x37ff - ATTR_VOL_ALLOCATIONCLUMP = 0x40 - ATTR_VOL_ATTRIBUTES = 0x40000000 - ATTR_VOL_CAPABILITIES = 0x20000 - ATTR_VOL_DIRCOUNT = 0x400 - ATTR_VOL_ENCODINGSUSED = 0x10000 - ATTR_VOL_FILECOUNT = 0x200 - ATTR_VOL_FSTYPE = 0x1 - ATTR_VOL_INFO = 0x80000000 - ATTR_VOL_IOBLOCKSIZE = 0x80 - ATTR_VOL_MAXOBJCOUNT = 0x800 - ATTR_VOL_MINALLOCATION = 0x20 - ATTR_VOL_MOUNTEDDEVICE = 0x8000 - ATTR_VOL_MOUNTFLAGS = 0x4000 - ATTR_VOL_MOUNTPOINT = 0x1000 - ATTR_VOL_NAME = 0x2000 - ATTR_VOL_OBJCOUNT = 0x100 - ATTR_VOL_QUOTA_SIZE = 0x10000000 - ATTR_VOL_RESERVED_SIZE = 0x20000000 - ATTR_VOL_SETMASK = 0x80002000 - ATTR_VOL_SIGNATURE = 0x2 - ATTR_VOL_SIZE = 0x4 - ATTR_VOL_SPACEAVAIL = 0x10 - ATTR_VOL_SPACEFREE = 0x8 - ATTR_VOL_UUID = 0x40000 - ATTR_VOL_VALIDMASK = 0xf007ffff - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4008426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80084267 - BIOCSETFNR = 0x8008427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8008426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0xf5 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xf - EVFILT_THREADMARKER = 0xf - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FSOPT_ATTR_CMN_EXTENDED = 0x20 - FSOPT_NOFOLLOW = 0x1 - FSOPT_NOINMEMUPDATE = 0x2 - FSOPT_PACK_INVAL_ATTRS = 0x8 - FSOPT_REPORT_FULLSIZE = 0x4 - F_ADDFILESIGS = 0x3d - F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 - F_ADDFILESIGS_RETURN = 0x61 - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - F_GETOWN = 0x5 - F_GETPATH = 0x32 - F_GETPATH_MTMINFO = 0x47 - F_GETPROTECTIONCLASS = 0x3f - F_GETPROTECTIONLEVEL = 0x4d - F_GLOBAL_NOCACHE = 0x37 - F_LOG2PHYS = 0x31 - F_LOG2PHYS_EXT = 0x41 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_PUNCHHOLE = 0x63 - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - F_SETPROTECTIONCLASS = 0x40 - F_SETSIZE = 0x2b - F_SINGLE_WRITER = 0x4c - F_THAW_FS = 0x36 - F_TRANSCODEKEY = 0x4b - F_TRIM_ACTIVE_FILE = 0x64 - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - IPV6_2292PKTINFO = 0x13 - IPV6_2292PKTOPTIONS = 0x19 - IPV6_2292RTHDR = 0x18 - IPV6_BINDV6ONLY = 0x1b - IPV6_BOUND_IF = 0x7d - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOW_ECN_MASK = 0x300 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVTCLASS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x24 - IPV6_UNICAST_HOPS = 0x4 - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTOS = 0x1b - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - MAP_RESILIENT_CODESIGN = 0x2000 - MAP_RESILIENT_MEDIA = 0x4000 - MAP_SHARED = 0x1 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - MNT_DOVOLFS = 0x8000 - MNT_DWAIT = 0x4 - MNT_EXPORTED = 0x100 - MNT_FORCE = 0x80000 - MNT_IGNORE_OWNERSHIP = 0x200000 - MNT_JOURNALED = 0x800000 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNKNOWNPERMISSIONS = 0x200000 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x17f0f5ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_DUMP2 = 0x7 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xa - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NFDBITS = 0x20 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc01c697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc0086924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc0286938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6981 - SIOCRSLVMULTI = 0xc008693b - SIOCSDRVSPEC = 0x801c697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40087458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40087459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x20 - WSTOPPED = 0x8 - WUNTRACED = 0x2 - XATTR_CREATE = 0x2 - XATTR_NODEFAULT = 0x10 - XATTR_NOFOLLOW = 0x1 - XATTR_NOSECURITY = 0x8 - XATTR_REPLACE = 0x4 - XATTR_SHOWCOMPRESSION = 0x20 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "ENOTSUP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EPWROFF", "device power is off"}, - {83, "EDEVERR", "device error"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EBADEXEC", "bad executable (or shared library)"}, - {86, "EBADARCH", "bad CPU type in executable"}, - {87, "ESHLIBVERS", "shared library version mismatch"}, - {88, "EBADMACHO", "malformed Mach-o file"}, - {89, "ECANCELED", "operation canceled"}, - {90, "EIDRM", "identifier removed"}, - {91, "ENOMSG", "no message of desired type"}, - {92, "EILSEQ", "illegal byte sequence"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EBADMSG", "bad message"}, - {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, - {96, "ENODATA", "no message available on STREAM"}, - {97, "ENOLINK", "ENOLINK (Reserved)"}, - {98, "ENOSR", "no STREAM resources"}, - {99, "ENOSTR", "not a STREAM"}, - {100, "EPROTO", "protocol error"}, - {101, "ETIME", "STREAM ioctl timeout"}, - {102, "EOPNOTSUPP", "operation not supported on socket"}, - {103, "ENOPOLICY", "policy not found"}, - {104, "ENOTRECOVERABLE", "state not recoverable"}, - {105, "EOWNERDEAD", "previous owner died"}, - {106, "EQFULL", "interface output queue is full"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go index e3ff2ee3d4..991996b609 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && darwin // +build amd64,darwin // Code generated by cmd/cgo -godefs; DO NOT EDIT. @@ -32,7 +33,7 @@ const ( AF_LAT = 0xe AF_LINK = 0x12 AF_LOCAL = 0x1 - AF_MAX = 0x28 + AF_MAX = 0x29 AF_NATM = 0x1f AF_NDRV = 0x1b AF_NETBIOS = 0x21 @@ -45,9 +46,11 @@ const ( AF_SIP = 0x18 AF_SNA = 0xb AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 AF_UNIX = 0x1 AF_UNSPEC = 0x0 AF_UTUN = 0x26 + AF_VSOCK = 0x28 ALTWERASE = 0x200 ATTR_BIT_MAP_COUNT = 0x5 ATTR_CMN_ACCESSMASK = 0x20000 @@ -82,7 +85,7 @@ const ( ATTR_CMN_PAROBJID = 0x80 ATTR_CMN_RETURNED_ATTRS = 0x80000000 ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x41c7ff00 + ATTR_CMN_SETMASK = 0x51c7ff00 ATTR_CMN_USERACCESS = 0x200000 ATTR_CMN_UUID = 0x800000 ATTR_CMN_VALIDMASK = 0xffffffff @@ -232,6 +235,8 @@ const ( CLOCK_THREAD_CPUTIME_ID = 0x10 CLOCK_UPTIME_RAW = 0x8 CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 CR0 = 0x0 CR1 = 0x1000 CR2 = 0x2000 @@ -249,6 +254,7 @@ const ( CSTOP = 0x13 CSTOPB = 0x400 CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 CTL_HW = 0x6 CTL_KERN = 0x1 CTL_MAXNAME = 0xc @@ -353,7 +359,7 @@ const ( DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0xf5 + DLT_MATCHING_MAX = 0x10a DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 @@ -394,6 +400,7 @@ const ( DLT_SYMANTEC_FIREWALL = 0x63 DLT_TZSP = 0x80 DLT_USB = 0xba + DLT_USB_DARWIN = 0x10a DLT_USB_LINUX = 0xbd DLT_USB_LINUX_MMAPPED = 0xdc DLT_USER0 = 0x93 @@ -438,8 +445,8 @@ const ( EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xf - EVFILT_THREADMARKER = 0xf + EVFILT_SYSCOUNT = 0x11 + EVFILT_THREADMARKER = 0x11 EVFILT_TIMER = -0x7 EVFILT_USER = -0xa EVFILT_VM = -0xc @@ -477,9 +484,12 @@ const ( FSOPT_NOINMEMUPDATE = 0x2 FSOPT_PACK_INVAL_ATTRS = 0x8 FSOPT_REPORT_FULLSIZE = 0x4 + FSOPT_RETURN_REALDEV = 0x200 F_ADDFILESIGS = 0x3d F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 + F_ADDFILESIGS_INFO = 0x67 F_ADDFILESIGS_RETURN = 0x61 + F_ADDFILESUPPL = 0x68 F_ADDSIGS = 0x3b F_ALLOCATEALL = 0x4 F_ALLOCATECONTIG = 0x2 @@ -501,8 +511,10 @@ const ( F_GETOWN = 0x5 F_GETPATH = 0x32 F_GETPATH_MTMINFO = 0x47 + F_GETPATH_NOFIRMLINK = 0x66 F_GETPROTECTIONCLASS = 0x3f F_GETPROTECTIONLEVEL = 0x4d + F_GETSIGSINFO = 0x69 F_GLOBAL_NOCACHE = 0x37 F_LOG2PHYS = 0x31 F_LOG2PHYS_EXT = 0x41 @@ -527,6 +539,7 @@ const ( F_SETPROTECTIONCLASS = 0x40 F_SETSIZE = 0x2b F_SINGLE_WRITER = 0x4c + F_SPECULATIVE_READ = 0x65 F_THAW_FS = 0x36 F_TRANSCODEKEY = 0x4b F_TRIM_ACTIVE_FILE = 0x64 @@ -558,6 +571,7 @@ const ( IFF_UP = 0x1 IFNAMSIZ = 0x10 IFT_1822 = 0x2 + IFT_6LOWPAN = 0x40 IFT_AAL5 = 0x31 IFT_ARCNET = 0x23 IFT_ARCNETPLUS = 0x24 @@ -762,16 +776,28 @@ const ( IPV6_2292PKTINFO = 0x13 IPV6_2292PKTOPTIONS = 0x19 IPV6_2292RTHDR = 0x18 + IPV6_3542DSTOPTS = 0x32 + IPV6_3542HOPLIMIT = 0x2f + IPV6_3542HOPOPTS = 0x31 + IPV6_3542NEXTHOP = 0x30 + IPV6_3542PKTINFO = 0x2e + IPV6_3542RTHDR = 0x33 + IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 + IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 + IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30 + IPV6_AUTOFLOWLABEL = 0x3b IPV6_BINDV6ONLY = 0x1b IPV6_BOUND_IF = 0x7d IPV6_CHECKSUM = 0x1a IPV6_DEFAULT_MULTICAST_HOPS = 0x1 IPV6_DEFAULT_MULTICAST_LOOP = 0x1 IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 IPV6_FAITH = 0x1d IPV6_FLOWINFO_MASK = 0xffffff0f IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOW_ECN_MASK = 0x300 + IPV6_FLOW_ECN_MASK = 0x3000 IPV6_FRAGTTL = 0x3c IPV6_FW_ADD = 0x1e IPV6_FW_DEL = 0x1f @@ -779,6 +805,8 @@ const ( IPV6_FW_GET = 0x22 IPV6_FW_ZERO = 0x21 IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 IPV6_IPSEC_POLICY = 0x1c IPV6_JOIN_GROUP = 0xc IPV6_LEAVE_GROUP = 0xd @@ -790,20 +818,34 @@ const ( IPV6_MAX_SOCK_SRC_FILTER = 0x80 IPV6_MIN_MEMBERSHIPS = 0x1f IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e IPV6_PORTRANGE = 0xe IPV6_PORTRANGE_DEFAULT = 0x0 IPV6_PORTRANGE_HIGH = 0x1 IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x3d + IPV6_RECVRTHDR = 0x26 IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x39 IPV6_RTHDR_LOOSE = 0x0 IPV6_RTHDR_STRICT = 0x1 IPV6_RTHDR_TYPE_0 = 0x0 IPV6_SOCKOPT_RESERVED1 = 0x3 IPV6_TCLASS = 0x24 IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a IPV6_V6ONLY = 0x1b IPV6_VERSION = 0x60 IPV6_VERSION_MASK = 0xf0 @@ -814,6 +856,7 @@ const ( IP_DEFAULT_MULTICAST_LOOP = 0x1 IP_DEFAULT_MULTICAST_TTL = 0x1 IP_DF = 0x4000 + IP_DONTFRAG = 0x1c IP_DROP_MEMBERSHIP = 0xd IP_DROP_SOURCE_MEMBERSHIP = 0x47 IP_DUMMYNET_CONFIGURE = 0x3c @@ -885,6 +928,12 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_PEERCRED = 0x1 + LOCAL_PEEREPID = 0x3 + LOCAL_PEEREUUID = 0x5 + LOCAL_PEERPID = 0x2 + LOCAL_PEERTOKEN = 0x6 + LOCAL_PEERUUID = 0x4 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -900,6 +949,7 @@ const ( MADV_SEQUENTIAL = 0x2 MADV_WILLNEED = 0x3 MADV_ZERO_WIRED_PAGES = 0x6 + MAP_32BIT = 0x8000 MAP_ANON = 0x1000 MAP_ANONYMOUS = 0x1000 MAP_COPY = 0x2 @@ -916,6 +966,17 @@ const ( MAP_RESILIENT_CODESIGN = 0x2000 MAP_RESILIENT_MEDIA = 0x4000 MAP_SHARED = 0x1 + MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000 + MAP_UNIX03 = 0x40000 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ASYNC = 0x40 @@ -927,6 +988,7 @@ const ( MNT_DOVOLFS = 0x8000 MNT_DWAIT = 0x4 MNT_EXPORTED = 0x100 + MNT_EXT_ROOT_DATA_VOL = 0x1 MNT_FORCE = 0x80000 MNT_IGNORE_OWNERSHIP = 0x200000 MNT_JOURNALED = 0x800000 @@ -943,12 +1005,15 @@ const ( MNT_QUOTA = 0x2000 MNT_RDONLY = 0x1 MNT_RELOAD = 0x40000 + MNT_REMOVABLE = 0x200 MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x40000000 + MNT_STRICTATIME = 0x80000000 MNT_SYNCHRONOUS = 0x2 MNT_UNION = 0x20 MNT_UNKNOWNPERMISSIONS = 0x200000 MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x17f0f5ff + MNT_VISFLAGMASK = 0xd7f0f7ff MNT_WAIT = 0x1 MSG_CTRUNC = 0x20 MSG_DONTROUTE = 0x4 @@ -959,6 +1024,7 @@ const ( MSG_HAVEMORE = 0x2000 MSG_HOLD = 0x800 MSG_NEEDSA = 0x10000 + MSG_NOSIGNAL = 0x80000 MSG_OOB = 0x1 MSG_PEEK = 0x2 MSG_RCVMORE = 0x4000 @@ -975,9 +1041,10 @@ const ( NET_RT_DUMP = 0x1 NET_RT_DUMP2 = 0x7 NET_RT_FLAGS = 0x2 + NET_RT_FLAGS_PRIV = 0xa NET_RT_IFLIST = 0x3 NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xa + NET_RT_MAXID = 0xb NET_RT_STAT = 0x4 NET_RT_TRASH = 0x5 NFDBITS = 0x20 @@ -1015,6 +1082,7 @@ const ( NOTE_LEEWAY = 0x10 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_MACHTIME = 0x100 NOTE_MACH_CONTINUOUS_TIME = 0x80 NOTE_NONE = 0x80 NOTE_NSECONDS = 0x4 @@ -1061,6 +1129,7 @@ const ( O_NDELAY = 0x4 O_NOCTTY = 0x20000 O_NOFOLLOW = 0x100 + O_NOFOLLOW_ANY = 0x20000000 O_NONBLOCK = 0x4 O_POPUP = 0x80000000 O_RDONLY = 0x0 @@ -1132,6 +1201,7 @@ const ( RTF_BROADCAST = 0x400000 RTF_CLONING = 0x100 RTF_CONDEMNED = 0x2000000 + RTF_DEAD = 0x20000000 RTF_DELCLONE = 0x80 RTF_DONE = 0x40 RTF_DYNAMIC = 0x10 @@ -1139,6 +1209,7 @@ const ( RTF_HOST = 0x4 RTF_IFREF = 0x4000000 RTF_IFSCOPE = 0x1000000 + RTF_LLDATA = 0x400 RTF_LLINFO = 0x400 RTF_LOCAL = 0x200000 RTF_MODIFIED = 0x20 @@ -1206,6 +1277,7 @@ const ( SIOCGDRVSPEC = 0xc028697b SIOCGETVLAN = 0xc020697f SIOCGHIWAT = 0x40047301 + SIOCGIF6LOWPAN = 0xc02069c5 SIOCGIFADDR = 0xc0206921 SIOCGIFALTMTU = 0xc0206948 SIOCGIFASYNCMAP = 0xc020697c @@ -1216,6 +1288,7 @@ const ( SIOCGIFDEVMTU = 0xc0206944 SIOCGIFDSTADDR = 0xc0206922 SIOCGIFFLAGS = 0xc0206911 + SIOCGIFFUNCTIONALTYPE = 0xc02069ad SIOCGIFGENERIC = 0xc020693a SIOCGIFKPI = 0xc0206987 SIOCGIFMAC = 0xc0206982 @@ -1229,6 +1302,7 @@ const ( SIOCGIFSTATUS = 0xc331693d SIOCGIFVLAN = 0xc020697f SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGIFXMEDIA = 0xc02c6948 SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 SIOCIFCREATE = 0xc0206978 @@ -1239,6 +1313,7 @@ const ( SIOCSDRVSPEC = 0x8028697b SIOCSETVLAN = 0x8020697e SIOCSHIWAT = 0x80047300 + SIOCSIF6LOWPAN = 0x802069c4 SIOCSIFADDR = 0x8020690c SIOCSIFALTMTU = 0x80206945 SIOCSIFASYNCMAP = 0x8020697d @@ -1266,6 +1341,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go deleted file mode 100644 index 3e417571a9..0000000000 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go +++ /dev/null @@ -1,1784 +0,0 @@ -// mkerrors.sh -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm,darwin - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x28 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_SYSTEM = 0x20 - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_UTUN = 0x26 - ALTWERASE = 0x200 - ATTR_BIT_MAP_COUNT = 0x5 - ATTR_CMN_ACCESSMASK = 0x20000 - ATTR_CMN_ACCTIME = 0x1000 - ATTR_CMN_ADDEDTIME = 0x10000000 - ATTR_CMN_BKUPTIME = 0x2000 - ATTR_CMN_CHGTIME = 0x800 - ATTR_CMN_CRTIME = 0x200 - ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 - ATTR_CMN_DEVID = 0x2 - ATTR_CMN_DOCUMENT_ID = 0x100000 - ATTR_CMN_ERROR = 0x20000000 - ATTR_CMN_EXTENDED_SECURITY = 0x400000 - ATTR_CMN_FILEID = 0x2000000 - ATTR_CMN_FLAGS = 0x40000 - ATTR_CMN_FNDRINFO = 0x4000 - ATTR_CMN_FSID = 0x4 - ATTR_CMN_FULLPATH = 0x8000000 - ATTR_CMN_GEN_COUNT = 0x80000 - ATTR_CMN_GRPID = 0x10000 - ATTR_CMN_GRPUUID = 0x1000000 - ATTR_CMN_MODTIME = 0x400 - ATTR_CMN_NAME = 0x1 - ATTR_CMN_NAMEDATTRCOUNT = 0x80000 - ATTR_CMN_NAMEDATTRLIST = 0x100000 - ATTR_CMN_OBJID = 0x20 - ATTR_CMN_OBJPERMANENTID = 0x40 - ATTR_CMN_OBJTAG = 0x10 - ATTR_CMN_OBJTYPE = 0x8 - ATTR_CMN_OWNERID = 0x8000 - ATTR_CMN_PARENTID = 0x4000000 - ATTR_CMN_PAROBJID = 0x80 - ATTR_CMN_RETURNED_ATTRS = 0x80000000 - ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x41c7ff00 - ATTR_CMN_USERACCESS = 0x200000 - ATTR_CMN_UUID = 0x800000 - ATTR_CMN_VALIDMASK = 0xffffffff - ATTR_CMN_VOLSETMASK = 0x6700 - ATTR_FILE_ALLOCSIZE = 0x4 - ATTR_FILE_CLUMPSIZE = 0x10 - ATTR_FILE_DATAALLOCSIZE = 0x400 - ATTR_FILE_DATAEXTENTS = 0x800 - ATTR_FILE_DATALENGTH = 0x200 - ATTR_FILE_DEVTYPE = 0x20 - ATTR_FILE_FILETYPE = 0x40 - ATTR_FILE_FORKCOUNT = 0x80 - ATTR_FILE_FORKLIST = 0x100 - ATTR_FILE_IOBLOCKSIZE = 0x8 - ATTR_FILE_LINKCOUNT = 0x1 - ATTR_FILE_RSRCALLOCSIZE = 0x2000 - ATTR_FILE_RSRCEXTENTS = 0x4000 - ATTR_FILE_RSRCLENGTH = 0x1000 - ATTR_FILE_SETMASK = 0x20 - ATTR_FILE_TOTALSIZE = 0x2 - ATTR_FILE_VALIDMASK = 0x37ff - ATTR_VOL_ALLOCATIONCLUMP = 0x40 - ATTR_VOL_ATTRIBUTES = 0x40000000 - ATTR_VOL_CAPABILITIES = 0x20000 - ATTR_VOL_DIRCOUNT = 0x400 - ATTR_VOL_ENCODINGSUSED = 0x10000 - ATTR_VOL_FILECOUNT = 0x200 - ATTR_VOL_FSTYPE = 0x1 - ATTR_VOL_INFO = 0x80000000 - ATTR_VOL_IOBLOCKSIZE = 0x80 - ATTR_VOL_MAXOBJCOUNT = 0x800 - ATTR_VOL_MINALLOCATION = 0x20 - ATTR_VOL_MOUNTEDDEVICE = 0x8000 - ATTR_VOL_MOUNTFLAGS = 0x4000 - ATTR_VOL_MOUNTPOINT = 0x1000 - ATTR_VOL_NAME = 0x2000 - ATTR_VOL_OBJCOUNT = 0x100 - ATTR_VOL_QUOTA_SIZE = 0x10000000 - ATTR_VOL_RESERVED_SIZE = 0x20000000 - ATTR_VOL_SETMASK = 0x80002000 - ATTR_VOL_SIGNATURE = 0x2 - ATTR_VOL_SIZE = 0x4 - ATTR_VOL_SPACEAVAIL = 0x10 - ATTR_VOL_SPACEFREE = 0x8 - ATTR_VOL_UUID = 0x40000 - ATTR_VOL_VALIDMASK = 0xf007ffff - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x8010427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0xf5 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xf - EVFILT_THREADMARKER = 0xf - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FSOPT_ATTR_CMN_EXTENDED = 0x20 - FSOPT_NOFOLLOW = 0x1 - FSOPT_NOINMEMUPDATE = 0x2 - FSOPT_PACK_INVAL_ATTRS = 0x8 - FSOPT_REPORT_FULLSIZE = 0x4 - F_ADDFILESIGS = 0x3d - F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 - F_ADDFILESIGS_RETURN = 0x61 - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - F_GETOWN = 0x5 - F_GETPATH = 0x32 - F_GETPATH_MTMINFO = 0x47 - F_GETPROTECTIONCLASS = 0x3f - F_GETPROTECTIONLEVEL = 0x4d - F_GLOBAL_NOCACHE = 0x37 - F_LOG2PHYS = 0x31 - F_LOG2PHYS_EXT = 0x41 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_PUNCHHOLE = 0x63 - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - F_SETPROTECTIONCLASS = 0x40 - F_SETSIZE = 0x2b - F_SINGLE_WRITER = 0x4c - F_THAW_FS = 0x36 - F_TRANSCODEKEY = 0x4b - F_TRIM_ACTIVE_FILE = 0x64 - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - IPV6_2292PKTINFO = 0x13 - IPV6_2292PKTOPTIONS = 0x19 - IPV6_2292RTHDR = 0x18 - IPV6_BINDV6ONLY = 0x1b - IPV6_BOUND_IF = 0x7d - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOW_ECN_MASK = 0x300 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVTCLASS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x24 - IPV6_UNICAST_HOPS = 0x4 - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTOS = 0x1b - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - MAP_RESILIENT_CODESIGN = 0x2000 - MAP_RESILIENT_MEDIA = 0x4000 - MAP_SHARED = 0x1 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - MNT_DOVOLFS = 0x8000 - MNT_DWAIT = 0x4 - MNT_EXPORTED = 0x100 - MNT_FORCE = 0x80000 - MNT_IGNORE_OWNERSHIP = 0x200000 - MNT_JOURNALED = 0x800000 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNKNOWNPERMISSIONS = 0x200000 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x17f0f5ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_DUMP2 = 0x7 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xa - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NFDBITS = 0x20 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc028697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc00c6924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc02c6938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106981 - SIOCRSLVMULTI = 0xc010693b - SIOCSDRVSPEC = 0x8028697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x40487413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x80487414 - TIOCSETAF = 0x80487416 - TIOCSETAW = 0x80487415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x40 - WSTOPPED = 0x8 - WUNTRACED = 0x2 - XATTR_CREATE = 0x2 - XATTR_NODEFAULT = 0x10 - XATTR_NOFOLLOW = 0x1 - XATTR_NOSECURITY = 0x8 - XATTR_REPLACE = 0x4 - XATTR_SHOWCOMPRESSION = 0x20 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "operation not permitted"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "input/output error"}, - {6, "ENXIO", "device not configured"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EDEADLK", "resource deadlock avoided"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "operation not supported by device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "too many open files in system"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "inappropriate ioctl for device"}, - {26, "ETXTBSY", "text file busy"}, - {27, "EFBIG", "file too large"}, - {28, "ENOSPC", "no space left on device"}, - {29, "ESPIPE", "illegal seek"}, - {30, "EROFS", "read-only file system"}, - {31, "EMLINK", "too many links"}, - {32, "EPIPE", "broken pipe"}, - {33, "EDOM", "numerical argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "EAGAIN", "resource temporarily unavailable"}, - {36, "EINPROGRESS", "operation now in progress"}, - {37, "EALREADY", "operation already in progress"}, - {38, "ENOTSOCK", "socket operation on non-socket"}, - {39, "EDESTADDRREQ", "destination address required"}, - {40, "EMSGSIZE", "message too long"}, - {41, "EPROTOTYPE", "protocol wrong type for socket"}, - {42, "ENOPROTOOPT", "protocol not available"}, - {43, "EPROTONOSUPPORT", "protocol not supported"}, - {44, "ESOCKTNOSUPPORT", "socket type not supported"}, - {45, "ENOTSUP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "can't assign requested address"}, - {50, "ENETDOWN", "network is down"}, - {51, "ENETUNREACH", "network is unreachable"}, - {52, "ENETRESET", "network dropped connection on reset"}, - {53, "ECONNABORTED", "software caused connection abort"}, - {54, "ECONNRESET", "connection reset by peer"}, - {55, "ENOBUFS", "no buffer space available"}, - {56, "EISCONN", "socket is already connected"}, - {57, "ENOTCONN", "socket is not connected"}, - {58, "ESHUTDOWN", "can't send after socket shutdown"}, - {59, "ETOOMANYREFS", "too many references: can't splice"}, - {60, "ETIMEDOUT", "operation timed out"}, - {61, "ECONNREFUSED", "connection refused"}, - {62, "ELOOP", "too many levels of symbolic links"}, - {63, "ENAMETOOLONG", "file name too long"}, - {64, "EHOSTDOWN", "host is down"}, - {65, "EHOSTUNREACH", "no route to host"}, - {66, "ENOTEMPTY", "directory not empty"}, - {67, "EPROCLIM", "too many processes"}, - {68, "EUSERS", "too many users"}, - {69, "EDQUOT", "disc quota exceeded"}, - {70, "ESTALE", "stale NFS file handle"}, - {71, "EREMOTE", "too many levels of remote in path"}, - {72, "EBADRPC", "RPC struct is bad"}, - {73, "ERPCMISMATCH", "RPC version wrong"}, - {74, "EPROGUNAVAIL", "RPC prog. not avail"}, - {75, "EPROGMISMATCH", "program version wrong"}, - {76, "EPROCUNAVAIL", "bad procedure for program"}, - {77, "ENOLCK", "no locks available"}, - {78, "ENOSYS", "function not implemented"}, - {79, "EFTYPE", "inappropriate file type or format"}, - {80, "EAUTH", "authentication error"}, - {81, "ENEEDAUTH", "need authenticator"}, - {82, "EPWROFF", "device power is off"}, - {83, "EDEVERR", "device error"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EBADEXEC", "bad executable (or shared library)"}, - {86, "EBADARCH", "bad CPU type in executable"}, - {87, "ESHLIBVERS", "shared library version mismatch"}, - {88, "EBADMACHO", "malformed Mach-o file"}, - {89, "ECANCELED", "operation canceled"}, - {90, "EIDRM", "identifier removed"}, - {91, "ENOMSG", "no message of desired type"}, - {92, "EILSEQ", "illegal byte sequence"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EBADMSG", "bad message"}, - {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, - {96, "ENODATA", "no message available on STREAM"}, - {97, "ENOLINK", "ENOLINK (Reserved)"}, - {98, "ENOSR", "no STREAM resources"}, - {99, "ENOSTR", "not a STREAM"}, - {100, "EPROTO", "protocol error"}, - {101, "ETIME", "STREAM ioctl timeout"}, - {102, "EOPNOTSUPP", "operation not supported on socket"}, - {103, "ENOPOLICY", "policy not found"}, - {104, "ENOTRECOVERABLE", "state not recoverable"}, - {105, "EOWNERDEAD", "previous owner died"}, - {106, "EQFULL", "interface output queue is full"}, -} - -// Signal table -var signalList = [...]struct { - num syscall.Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGQUIT", "quit"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, - {7, "SIGEMT", "EMT trap"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad system call"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGURG", "urgent I/O condition"}, - {17, "SIGSTOP", "suspended (signal)"}, - {18, "SIGTSTP", "suspended"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGINFO", "information request"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go index cbd8ed18b9..e644eaf5e7 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && darwin // +build arm64,darwin // Code generated by cmd/cgo -godefs; DO NOT EDIT. @@ -32,7 +33,7 @@ const ( AF_LAT = 0xe AF_LINK = 0x12 AF_LOCAL = 0x1 - AF_MAX = 0x28 + AF_MAX = 0x29 AF_NATM = 0x1f AF_NDRV = 0x1b AF_NETBIOS = 0x21 @@ -45,9 +46,11 @@ const ( AF_SIP = 0x18 AF_SNA = 0xb AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 AF_UNIX = 0x1 AF_UNSPEC = 0x0 AF_UTUN = 0x26 + AF_VSOCK = 0x28 ALTWERASE = 0x200 ATTR_BIT_MAP_COUNT = 0x5 ATTR_CMN_ACCESSMASK = 0x20000 @@ -82,7 +85,7 @@ const ( ATTR_CMN_PAROBJID = 0x80 ATTR_CMN_RETURNED_ATTRS = 0x80000000 ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x41c7ff00 + ATTR_CMN_SETMASK = 0x51c7ff00 ATTR_CMN_USERACCESS = 0x200000 ATTR_CMN_UUID = 0x800000 ATTR_CMN_VALIDMASK = 0xffffffff @@ -232,6 +235,8 @@ const ( CLOCK_THREAD_CPUTIME_ID = 0x10 CLOCK_UPTIME_RAW = 0x8 CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 CR0 = 0x0 CR1 = 0x1000 CR2 = 0x2000 @@ -249,6 +254,7 @@ const ( CSTOP = 0x13 CSTOPB = 0x400 CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 CTL_HW = 0x6 CTL_KERN = 0x1 CTL_MAXNAME = 0xc @@ -353,7 +359,7 @@ const ( DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0xf5 + DLT_MATCHING_MAX = 0x10a DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 @@ -394,6 +400,7 @@ const ( DLT_SYMANTEC_FIREWALL = 0x63 DLT_TZSP = 0x80 DLT_USB = 0xba + DLT_USB_DARWIN = 0x10a DLT_USB_LINUX = 0xbd DLT_USB_LINUX_MMAPPED = 0xdc DLT_USER0 = 0x93 @@ -438,8 +445,8 @@ const ( EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xf - EVFILT_THREADMARKER = 0xf + EVFILT_SYSCOUNT = 0x11 + EVFILT_THREADMARKER = 0x11 EVFILT_TIMER = -0x7 EVFILT_USER = -0xa EVFILT_VM = -0xc @@ -477,9 +484,12 @@ const ( FSOPT_NOINMEMUPDATE = 0x2 FSOPT_PACK_INVAL_ATTRS = 0x8 FSOPT_REPORT_FULLSIZE = 0x4 + FSOPT_RETURN_REALDEV = 0x200 F_ADDFILESIGS = 0x3d F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 + F_ADDFILESIGS_INFO = 0x67 F_ADDFILESIGS_RETURN = 0x61 + F_ADDFILESUPPL = 0x68 F_ADDSIGS = 0x3b F_ALLOCATEALL = 0x4 F_ALLOCATECONTIG = 0x2 @@ -501,8 +511,10 @@ const ( F_GETOWN = 0x5 F_GETPATH = 0x32 F_GETPATH_MTMINFO = 0x47 + F_GETPATH_NOFIRMLINK = 0x66 F_GETPROTECTIONCLASS = 0x3f F_GETPROTECTIONLEVEL = 0x4d + F_GETSIGSINFO = 0x69 F_GLOBAL_NOCACHE = 0x37 F_LOG2PHYS = 0x31 F_LOG2PHYS_EXT = 0x41 @@ -527,6 +539,7 @@ const ( F_SETPROTECTIONCLASS = 0x40 F_SETSIZE = 0x2b F_SINGLE_WRITER = 0x4c + F_SPECULATIVE_READ = 0x65 F_THAW_FS = 0x36 F_TRANSCODEKEY = 0x4b F_TRIM_ACTIVE_FILE = 0x64 @@ -558,6 +571,7 @@ const ( IFF_UP = 0x1 IFNAMSIZ = 0x10 IFT_1822 = 0x2 + IFT_6LOWPAN = 0x40 IFT_AAL5 = 0x31 IFT_ARCNET = 0x23 IFT_ARCNETPLUS = 0x24 @@ -762,16 +776,28 @@ const ( IPV6_2292PKTINFO = 0x13 IPV6_2292PKTOPTIONS = 0x19 IPV6_2292RTHDR = 0x18 + IPV6_3542DSTOPTS = 0x32 + IPV6_3542HOPLIMIT = 0x2f + IPV6_3542HOPOPTS = 0x31 + IPV6_3542NEXTHOP = 0x30 + IPV6_3542PKTINFO = 0x2e + IPV6_3542RTHDR = 0x33 + IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 + IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 + IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30 + IPV6_AUTOFLOWLABEL = 0x3b IPV6_BINDV6ONLY = 0x1b IPV6_BOUND_IF = 0x7d IPV6_CHECKSUM = 0x1a IPV6_DEFAULT_MULTICAST_HOPS = 0x1 IPV6_DEFAULT_MULTICAST_LOOP = 0x1 IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 IPV6_FAITH = 0x1d IPV6_FLOWINFO_MASK = 0xffffff0f IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOW_ECN_MASK = 0x300 + IPV6_FLOW_ECN_MASK = 0x3000 IPV6_FRAGTTL = 0x3c IPV6_FW_ADD = 0x1e IPV6_FW_DEL = 0x1f @@ -779,6 +805,8 @@ const ( IPV6_FW_GET = 0x22 IPV6_FW_ZERO = 0x21 IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 IPV6_IPSEC_POLICY = 0x1c IPV6_JOIN_GROUP = 0xc IPV6_LEAVE_GROUP = 0xd @@ -790,20 +818,34 @@ const ( IPV6_MAX_SOCK_SRC_FILTER = 0x80 IPV6_MIN_MEMBERSHIPS = 0x1f IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e IPV6_PORTRANGE = 0xe IPV6_PORTRANGE_DEFAULT = 0x0 IPV6_PORTRANGE_HIGH = 0x1 IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x3d + IPV6_RECVRTHDR = 0x26 IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x39 IPV6_RTHDR_LOOSE = 0x0 IPV6_RTHDR_STRICT = 0x1 IPV6_RTHDR_TYPE_0 = 0x0 IPV6_SOCKOPT_RESERVED1 = 0x3 IPV6_TCLASS = 0x24 IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a IPV6_V6ONLY = 0x1b IPV6_VERSION = 0x60 IPV6_VERSION_MASK = 0xf0 @@ -814,6 +856,7 @@ const ( IP_DEFAULT_MULTICAST_LOOP = 0x1 IP_DEFAULT_MULTICAST_TTL = 0x1 IP_DF = 0x4000 + IP_DONTFRAG = 0x1c IP_DROP_MEMBERSHIP = 0xd IP_DROP_SOURCE_MEMBERSHIP = 0x47 IP_DUMMYNET_CONFIGURE = 0x3c @@ -885,6 +928,12 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_PEERCRED = 0x1 + LOCAL_PEEREPID = 0x3 + LOCAL_PEEREUUID = 0x5 + LOCAL_PEERPID = 0x2 + LOCAL_PEERTOKEN = 0x6 + LOCAL_PEERUUID = 0x4 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -900,6 +949,7 @@ const ( MADV_SEQUENTIAL = 0x2 MADV_WILLNEED = 0x3 MADV_ZERO_WIRED_PAGES = 0x6 + MAP_32BIT = 0x8000 MAP_ANON = 0x1000 MAP_ANONYMOUS = 0x1000 MAP_COPY = 0x2 @@ -916,6 +966,17 @@ const ( MAP_RESILIENT_CODESIGN = 0x2000 MAP_RESILIENT_MEDIA = 0x4000 MAP_SHARED = 0x1 + MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000 + MAP_UNIX03 = 0x40000 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ASYNC = 0x40 @@ -927,6 +988,7 @@ const ( MNT_DOVOLFS = 0x8000 MNT_DWAIT = 0x4 MNT_EXPORTED = 0x100 + MNT_EXT_ROOT_DATA_VOL = 0x1 MNT_FORCE = 0x80000 MNT_IGNORE_OWNERSHIP = 0x200000 MNT_JOURNALED = 0x800000 @@ -943,12 +1005,15 @@ const ( MNT_QUOTA = 0x2000 MNT_RDONLY = 0x1 MNT_RELOAD = 0x40000 + MNT_REMOVABLE = 0x200 MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x40000000 + MNT_STRICTATIME = 0x80000000 MNT_SYNCHRONOUS = 0x2 MNT_UNION = 0x20 MNT_UNKNOWNPERMISSIONS = 0x200000 MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x17f0f5ff + MNT_VISFLAGMASK = 0xd7f0f7ff MNT_WAIT = 0x1 MSG_CTRUNC = 0x20 MSG_DONTROUTE = 0x4 @@ -959,6 +1024,7 @@ const ( MSG_HAVEMORE = 0x2000 MSG_HOLD = 0x800 MSG_NEEDSA = 0x10000 + MSG_NOSIGNAL = 0x80000 MSG_OOB = 0x1 MSG_PEEK = 0x2 MSG_RCVMORE = 0x4000 @@ -975,9 +1041,10 @@ const ( NET_RT_DUMP = 0x1 NET_RT_DUMP2 = 0x7 NET_RT_FLAGS = 0x2 + NET_RT_FLAGS_PRIV = 0xa NET_RT_IFLIST = 0x3 NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xa + NET_RT_MAXID = 0xb NET_RT_STAT = 0x4 NET_RT_TRASH = 0x5 NFDBITS = 0x20 @@ -1015,6 +1082,7 @@ const ( NOTE_LEEWAY = 0x10 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_MACHTIME = 0x100 NOTE_MACH_CONTINUOUS_TIME = 0x80 NOTE_NONE = 0x80 NOTE_NSECONDS = 0x4 @@ -1061,6 +1129,7 @@ const ( O_NDELAY = 0x4 O_NOCTTY = 0x20000 O_NOFOLLOW = 0x100 + O_NOFOLLOW_ANY = 0x20000000 O_NONBLOCK = 0x4 O_POPUP = 0x80000000 O_RDONLY = 0x0 @@ -1132,6 +1201,7 @@ const ( RTF_BROADCAST = 0x400000 RTF_CLONING = 0x100 RTF_CONDEMNED = 0x2000000 + RTF_DEAD = 0x20000000 RTF_DELCLONE = 0x80 RTF_DONE = 0x40 RTF_DYNAMIC = 0x10 @@ -1139,6 +1209,7 @@ const ( RTF_HOST = 0x4 RTF_IFREF = 0x4000000 RTF_IFSCOPE = 0x1000000 + RTF_LLDATA = 0x400 RTF_LLINFO = 0x400 RTF_LOCAL = 0x200000 RTF_MODIFIED = 0x20 @@ -1206,6 +1277,7 @@ const ( SIOCGDRVSPEC = 0xc028697b SIOCGETVLAN = 0xc020697f SIOCGHIWAT = 0x40047301 + SIOCGIF6LOWPAN = 0xc02069c5 SIOCGIFADDR = 0xc0206921 SIOCGIFALTMTU = 0xc0206948 SIOCGIFASYNCMAP = 0xc020697c @@ -1216,6 +1288,7 @@ const ( SIOCGIFDEVMTU = 0xc0206944 SIOCGIFDSTADDR = 0xc0206922 SIOCGIFFLAGS = 0xc0206911 + SIOCGIFFUNCTIONALTYPE = 0xc02069ad SIOCGIFGENERIC = 0xc020693a SIOCGIFKPI = 0xc0206987 SIOCGIFMAC = 0xc0206982 @@ -1229,6 +1302,7 @@ const ( SIOCGIFSTATUS = 0xc331693d SIOCGIFVLAN = 0xc020697f SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGIFXMEDIA = 0xc02c6948 SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 SIOCIFCREATE = 0xc0206978 @@ -1239,6 +1313,7 @@ const ( SIOCSDRVSPEC = 0x8028697b SIOCSETVLAN = 0x8020697e SIOCSHIWAT = 0x80047300 + SIOCSIF6LOWPAN = 0x802069c4 SIOCSIFADDR = 0x8020690c SIOCSIFALTMTU = 0x80206945 SIOCSIFASYNCMAP = 0x8020697d @@ -1266,6 +1341,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go index 6130471748..17bba0e44f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && dragonfly // +build amd64,dragonfly // Code generated by cmd/cgo -godefs; DO NOT EDIT. @@ -62,6 +63,7 @@ const ( B28800 = 0x7080 B300 = 0x12c B38400 = 0x9600 + B460800 = 0x70800 B4800 = 0x12c0 B50 = 0x32 B57600 = 0xe100 @@ -69,12 +71,15 @@ const ( B7200 = 0x1c20 B75 = 0x4b B76800 = 0x12c00 + B921600 = 0xe1000 B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d BIOCFLUSH = 0x20004268 BIOCGBLEN = 0x40044266 BIOCGDLT = 0x4004426a BIOCGDLTLIST = 0xc0104279 BIOCGETIF = 0x4020426b + BIOCGFEEDBACK = 0x4004427c BIOCGHDRCMPLT = 0x40044274 BIOCGRSIG = 0x40044272 BIOCGRTIMEOUT = 0x4010426e @@ -88,6 +93,7 @@ const ( BIOCSETF = 0x80104267 BIOCSETIF = 0x8020426c BIOCSETWF = 0x8010427b + BIOCSFEEDBACK = 0x8004427d BIOCSHDRCMPLT = 0x80044275 BIOCSRSIG = 0x80044273 BIOCSRTIMEOUT = 0x8010426d @@ -125,6 +131,7 @@ const ( BPF_MINBUFSIZE = 0x20 BPF_MINOR_VERSION = 0x1 BPF_MISC = 0x7 + BPF_MOD = 0x90 BPF_MSH = 0xa0 BPF_MUL = 0x20 BPF_NEG = 0x80 @@ -139,6 +146,7 @@ const ( BPF_TXA = 0x80 BPF_W = 0x0 BPF_X = 0x8 + BPF_XOR = 0xa0 BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 @@ -156,6 +164,12 @@ const ( CLOCK_UPTIME_FAST = 0x8 CLOCK_UPTIME_PRECISE = 0x7 CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x30000 CS5 = 0x0 @@ -175,6 +189,7 @@ const ( DLT_A429 = 0xb8 DLT_A653_ICM = 0xb9 DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde DLT_APPLE_IP_OVER_IEEE1394 = 0x8a DLT_ARCNET = 0x7 DLT_ARCNET_LINUX = 0x81 @@ -184,22 +199,33 @@ const ( DLT_AX25 = 0x3 DLT_AX25_KISS = 0xca DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff DLT_BLUETOOTH_HCI_H4 = 0xbb DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 DLT_CHAOS = 0x5 DLT_CHDLC = 0x68 DLT_CISCO_IOS = 0x76 DLT_C_HDLC = 0x68 DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb DLT_ECONET = 0x73 DLT_EN10MB = 0x1 DLT_EN3MB = 0x2 DLT_ENC = 0x6d + DLT_EPON = 0x103 DLT_ERF = 0xc5 DLT_ERF_ETH = 0xaf DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 DLT_FDDI = 0xa DLT_FLEXRAY = 0xd2 DLT_FRELAY = 0x6b @@ -209,6 +235,8 @@ const ( DLT_GPF_F = 0xab DLT_GPF_T = 0xaa DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 DLT_HHDLC = 0x79 DLT_IBM_SN = 0x92 DLT_IBM_SP = 0x91 @@ -218,18 +246,28 @@ const ( DLT_IEEE802_11_RADIO_AVS = 0xa3 DLT_IEEE802_15_4 = 0xc3 DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 DLT_IEEE802_15_4_NONASK_PHY = 0xd7 DLT_IEEE802_16_MAC_CPS = 0xbc DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 DLT_IPFILTER = 0x74 DLT_IPMB = 0xc7 DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 DLT_JUNIPER_ATM1 = 0x89 DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee DLT_JUNIPER_CHDLC = 0xb5 DLT_JUNIPER_ES = 0x84 DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea DLT_JUNIPER_FRELAY = 0xb4 DLT_JUNIPER_GGSN = 0x85 DLT_JUNIPER_ISM = 0xc2 @@ -242,25 +280,40 @@ const ( DLT_JUNIPER_PPPOE = 0xa7 DLT_JUNIPER_PPPOE_ATM = 0xa8 DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 DLT_JUNIPER_ST = 0xc8 DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 DLT_LAPB_WITH_DIR = 0xcf DLT_LAPD = 0xcb DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 DLT_LINUX_IRDA = 0x90 DLT_LINUX_LAPD = 0xb1 DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x109 + DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb DLT_MTP2 = 0x8c DLT_MTP2_WITH_PHDR = 0x8b DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 DLT_NULL = 0x0 DLT_PCI_EXP = 0x7d DLT_PFLOG = 0x75 DLT_PFSYNC = 0x12 + DLT_PKTAP = 0x102 DLT_PPI = 0xc0 DLT_PPP = 0x9 DLT_PPP_BSDOS = 0x10 @@ -269,22 +322,51 @@ const ( DLT_PPP_SERIAL = 0x32 DLT_PPP_WITH_DIR = 0xcc DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 DLT_PRONET = 0x4 DLT_RAIF1 = 0xc6 DLT_RAW = 0xc + DLT_RDS = 0x109 DLT_REDBACK_SMARTEDGE = 0x20 DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 DLT_SITA = 0xc4 DLT_SLIP = 0x8 DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed DLT_SUNATM = 0x7b DLT_SYMANTEC_FIREWALL = 0x63 DLT_TZSP = 0x80 DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_FREEBSD = 0xba DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc DLT_X2E_SERIAL = 0xd5 DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 DT_BLK = 0x6 DT_CHR = 0x2 DT_DBF = 0xf @@ -323,10 +405,11 @@ const ( EV_EOF = 0x8000 EV_ERROR = 0x4000 EV_FLAG1 = 0x2000 + EV_HUP = 0x800 EV_NODATA = 0x1000 EV_ONESHOT = 0x10 EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTEXIT_LWP = 0x10000 @@ -365,8 +448,9 @@ const ( IFF_ALLMULTI = 0x200 IFF_ALTPHYS = 0x4000 IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x118e72 + IFF_CANTCHANGE = 0x318e72 IFF_DEBUG = 0x4 + IFF_IDIRECT = 0x200000 IFF_LINK0 = 0x1000 IFF_LINK1 = 0x2000 IFF_LINK2 = 0x4000 @@ -441,7 +525,6 @@ const ( IFT_EPLRS = 0x57 IFT_ESCON = 0x49 IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 IFT_FAST = 0x7d IFT_FASTETHER = 0x3e IFT_FASTETHERFX = 0x45 @@ -614,6 +697,7 @@ const ( IN_CLASSD_NET = 0xf0000000 IN_CLASSD_NSHIFT = 0x1c IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe IPPROTO_3PC = 0x22 IPPROTO_ADFS = 0x44 IPPROTO_AH = 0x33 @@ -735,7 +819,6 @@ const ( IPV6_DEFHLIM = 0x40 IPV6_DONTFRAG = 0x3e IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d IPV6_FLOWINFO_MASK = 0xffffff0f IPV6_FLOWLABEL_MASK = 0xffff0f00 IPV6_FRAGTTL = 0x78 @@ -747,7 +830,6 @@ const ( IPV6_HLIMDEC = 0x1 IPV6_HOPLIMIT = 0x2f IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c IPV6_JOIN_GROUP = 0xc IPV6_LEAVE_GROUP = 0xd IPV6_MAXHLIM = 0xff @@ -795,16 +877,22 @@ const ( IP_DUMMYNET_DEL = 0x3d IP_DUMMYNET_FLUSH = 0x3e IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 IP_FW_ADD = 0x32 IP_FW_DEL = 0x33 IP_FW_FLUSH = 0x34 IP_FW_GET = 0x36 IP_FW_RESETLOG = 0x37 + IP_FW_TBL_ADD = 0x2a + IP_FW_TBL_CREATE = 0x28 + IP_FW_TBL_DEL = 0x2b + IP_FW_TBL_DESTROY = 0x29 + IP_FW_TBL_EXPIRE = 0x2f + IP_FW_TBL_FLUSH = 0x2c + IP_FW_TBL_GET = 0x2d + IP_FW_TBL_ZERO = 0x2e IP_FW_X = 0x31 IP_FW_ZERO = 0x35 IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 IP_MAXPACKET = 0xffff IP_MAX_MEMBERSHIPS = 0x14 IP_MF = 0x2000 @@ -1080,12 +1168,10 @@ const ( RTM_MISS = 0x7 RTM_NEWADDR = 0xc RTM_NEWMADDR = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x6 + RTM_VERSION = 0x7 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 RTV_IWCAPSEGS = 0x400 @@ -1106,13 +1192,13 @@ const ( SHUT_RDWR = 0x2 SHUT_WR = 0x1 SIOCADDMULTI = 0x80206931 - SIOCADDRT = 0x8040720a SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 SIOCALIFADDR = 0x8118691b SIOCATMARK = 0x40047307 SIOCDELMULTI = 0x80206932 - SIOCDELRT = 0x8040720b SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 SIOCDIFPHYADDR = 0x80206949 SIOCDLIFADDR = 0x8118691d SIOCGDRVSPEC = 0xc028697b @@ -1120,6 +1206,7 @@ const ( SIOCGETVIFCNT = 0xc028720f SIOCGHIWAT = 0x40047301 SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc0406929 SIOCGIFBRDADDR = 0xc0206923 SIOCGIFCAP = 0xc020691f SIOCGIFCONF = 0xc0106924 @@ -1128,6 +1215,7 @@ const ( SIOCGIFFLAGS = 0xc0206911 SIOCGIFGENERIC = 0xc020693a SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 SIOCGIFINDEX = 0xc0206920 SIOCGIFMEDIA = 0xc0306938 SIOCGIFMETRIC = 0xc0206917 @@ -1194,6 +1282,7 @@ const ( SO_RCVBUF = 0x1002 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x2000 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 SO_SNDBUF = 0x1001 @@ -1233,6 +1322,9 @@ const ( S_IXGRP = 0x8 S_IXOTH = 0x1 S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 TCIFLUSH = 0x1 TCIOFF = 0x3 TCIOFLUSH = 0x3 @@ -1259,6 +1351,8 @@ const ( TCP_NOPUSH = 0x4 TCP_SIGNATURE_ENABLE = 0x10 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 TIOCCONS = 0x80047462 @@ -1272,7 +1366,6 @@ const ( TIOCGETD = 0x4004741a TIOCGPGRP = 0x40047477 TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 TIOCGWINSZ = 0x40087468 TIOCISPTMASTER = 0x20007455 TIOCMBIC = 0x8004746b @@ -1317,7 +1410,6 @@ const ( TIOCSETD = 0x8004741b TIOCSIG = 0x2000745f TIOCSPGRP = 0x80047476 - TIOCSSIZE = 0x80087467 TIOCSTART = 0x2000746e TIOCSTAT = 0x20007465 TIOCSTI = 0x80017472 @@ -1326,6 +1418,8 @@ const ( TIOCTIMESTAMP = 0x40107459 TIOCUCNTL = 0x80047466 TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 VCHECKPT = 0x13 VDISCARD = 0xf VDSUSP = 0xb @@ -1350,9 +1444,12 @@ const ( VWERASE = 0x4 WCONTINUED = 0x4 WCOREFLAG = 0x80 + WEXITED = 0x10 WLINUXCLONE = 0x80000000 WNOHANG = 0x1 - WSTOPPED = 0x7f + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 WUNTRACED = 0x2 ) @@ -1452,11 +1549,6 @@ const ( ETIMEDOUT = syscall.Errno(0x3c) ETOOMANYREFS = syscall.Errno(0x3b) ETXTBSY = syscall.Errno(0x1a) - EUNUSED94 = syscall.Errno(0x5e) - EUNUSED95 = syscall.Errno(0x5f) - EUNUSED96 = syscall.Errno(0x60) - EUNUSED97 = syscall.Errno(0x61) - EUNUSED98 = syscall.Errno(0x62) EUSERS = syscall.Errno(0x44) EWOULDBLOCK = syscall.Errno(0x23) EXDEV = syscall.Errno(0x12) @@ -1600,12 +1692,7 @@ var errorList = [...]struct { {91, "ENOLINK", "link has been severed"}, {92, "EPROTO", "protocol error"}, {93, "ENOMEDIUM", "no medium found"}, - {94, "EUNUSED94", "unknown error: 94"}, - {95, "EUNUSED95", "unknown error: 95"}, - {96, "EUNUSED96", "unknown error: 96"}, - {97, "EUNUSED97", "unknown error: 97"}, - {98, "EUNUSED98", "unknown error: 98"}, - {99, "ELAST", "unknown error: 99"}, + {99, "EASYNC", "unknown error: 99"}, } // Signal table diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go index 3689c80848..9c7c5e1654 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go @@ -1,6 +1,7 @@ // mkerrors.sh -m32 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && freebsd // +build 386,freebsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. @@ -997,6 +998,11 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_CREDS_PERSISTENT = 0x3 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -1375,6 +1381,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go index b8f7c3c930..b265abb25f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && freebsd // +build amd64,freebsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. @@ -997,6 +998,11 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_CREDS_PERSISTENT = 0x3 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -1376,6 +1382,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go index be14bb1a4c..3df99f285f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go @@ -1,6 +1,7 @@ // mkerrors.sh // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && freebsd // +build arm,freebsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. @@ -980,6 +981,11 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_CREDS_PERSISTENT = 0x3 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -1016,6 +1022,15 @@ const ( MAP_RESERVED0100 = 0x100 MAP_SHARED = 0x1 MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ACLS = 0x8000000 @@ -1341,6 +1356,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go index 7ce9c0081a..218d39906d 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && freebsd // +build arm64,freebsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. @@ -997,6 +998,11 @@ const ( KERN_OSRELEASE = 0x2 KERN_OSTYPE = 0x1 KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_CREDS_PERSISTENT = 0x3 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 LOCK_EX = 0x2 LOCK_NB = 0x4 LOCK_SH = 0x1 @@ -1376,6 +1382,7 @@ const ( SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 SOL_SOCKET = 0xffff SOMAXCONN = 0x80 SO_ACCEPTCONN = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go index e80d4e964b..4e4583b615 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -1,5 +1,6 @@ // Code generated by mkmerge.go; DO NOT EDIT. +//go:build linux // +build linux package unix @@ -65,6 +66,7 @@ const ( ALG_OP_ENCRYPT = 0x1 ALG_SET_AEAD_ASSOCLEN = 0x4 ALG_SET_AEAD_AUTHSIZE = 0x5 + ALG_SET_DRBG_ENTROPY = 0x6 ALG_SET_IV = 0x2 ALG_SET_KEY = 0x1 ALG_SET_OP = 0x3 @@ -164,13 +166,16 @@ const ( BPF_ALU64 = 0x7 BPF_AND = 0x50 BPF_ARSH = 0xc0 + BPF_ATOMIC = 0xc0 BPF_B = 0x10 BPF_BUILD_ID_SIZE = 0x14 BPF_CALL = 0x80 + BPF_CMPXCHG = 0xf1 BPF_DIV = 0x30 BPF_DW = 0x18 BPF_END = 0xd0 BPF_EXIT = 0x90 + BPF_FETCH = 0x1 BPF_FROM_BE = 0x8 BPF_FROM_LE = 0x0 BPF_FS_MAGIC = 0xcafe4a11 @@ -179,8 +184,10 @@ const ( BPF_F_ANY_ALIGNMENT = 0x2 BPF_F_QUERY_EFFECTIVE = 0x1 BPF_F_REPLACE = 0x4 + BPF_F_SLEEPABLE = 0x10 BPF_F_STRICT_ALIGNMENT = 0x1 BPF_F_TEST_RND_HI32 = 0x4 + BPF_F_TEST_RUN_ON_CPU = 0x1 BPF_F_TEST_STATE_FREQ = 0x8 BPF_H = 0x8 BPF_IMM = 0x0 @@ -219,6 +226,7 @@ const ( BPF_NET_OFF = -0x100000 BPF_OBJ_NAME_LEN = 0x10 BPF_OR = 0x40 + BPF_PSEUDO_BTF_ID = 0x3 BPF_PSEUDO_CALL = 0x1 BPF_PSEUDO_MAP_FD = 0x1 BPF_PSEUDO_MAP_VALUE = 0x2 @@ -235,22 +243,86 @@ const ( BPF_W = 0x0 BPF_X = 0x8 BPF_XADD = 0xc0 + BPF_XCHG = 0xe1 BPF_XOR = 0xa0 BRKINT = 0x2 BS0 = 0x0 BTRFS_SUPER_MAGIC = 0x9123683e BTRFS_TEST_MAGIC = 0x73727279 + BUS_BLUETOOTH = 0x5 + BUS_HIL = 0x4 + BUS_USB = 0x3 + BUS_VIRTUAL = 0x6 CAN_BCM = 0x2 CAN_EFF_FLAG = 0x80000000 CAN_EFF_ID_BITS = 0x1d CAN_EFF_MASK = 0x1fffffff + CAN_ERR_ACK = 0x20 + CAN_ERR_BUSERROR = 0x80 + CAN_ERR_BUSOFF = 0x40 + CAN_ERR_CRTL = 0x4 + CAN_ERR_CRTL_ACTIVE = 0x40 + CAN_ERR_CRTL_RX_OVERFLOW = 0x1 + CAN_ERR_CRTL_RX_PASSIVE = 0x10 + CAN_ERR_CRTL_RX_WARNING = 0x4 + CAN_ERR_CRTL_TX_OVERFLOW = 0x2 + CAN_ERR_CRTL_TX_PASSIVE = 0x20 + CAN_ERR_CRTL_TX_WARNING = 0x8 + CAN_ERR_CRTL_UNSPEC = 0x0 + CAN_ERR_DLC = 0x8 CAN_ERR_FLAG = 0x20000000 + CAN_ERR_LOSTARB = 0x2 + CAN_ERR_LOSTARB_UNSPEC = 0x0 CAN_ERR_MASK = 0x1fffffff + CAN_ERR_PROT = 0x8 + CAN_ERR_PROT_ACTIVE = 0x40 + CAN_ERR_PROT_BIT = 0x1 + CAN_ERR_PROT_BIT0 = 0x8 + CAN_ERR_PROT_BIT1 = 0x10 + CAN_ERR_PROT_FORM = 0x2 + CAN_ERR_PROT_LOC_ACK = 0x19 + CAN_ERR_PROT_LOC_ACK_DEL = 0x1b + CAN_ERR_PROT_LOC_CRC_DEL = 0x18 + CAN_ERR_PROT_LOC_CRC_SEQ = 0x8 + CAN_ERR_PROT_LOC_DATA = 0xa + CAN_ERR_PROT_LOC_DLC = 0xb + CAN_ERR_PROT_LOC_EOF = 0x1a + CAN_ERR_PROT_LOC_ID04_00 = 0xe + CAN_ERR_PROT_LOC_ID12_05 = 0xf + CAN_ERR_PROT_LOC_ID17_13 = 0x7 + CAN_ERR_PROT_LOC_ID20_18 = 0x6 + CAN_ERR_PROT_LOC_ID28_21 = 0x2 + CAN_ERR_PROT_LOC_IDE = 0x5 + CAN_ERR_PROT_LOC_INTERM = 0x12 + CAN_ERR_PROT_LOC_RES0 = 0x9 + CAN_ERR_PROT_LOC_RES1 = 0xd + CAN_ERR_PROT_LOC_RTR = 0xc + CAN_ERR_PROT_LOC_SOF = 0x3 + CAN_ERR_PROT_LOC_SRTR = 0x4 + CAN_ERR_PROT_LOC_UNSPEC = 0x0 + CAN_ERR_PROT_OVERLOAD = 0x20 + CAN_ERR_PROT_STUFF = 0x4 + CAN_ERR_PROT_TX = 0x80 + CAN_ERR_PROT_UNSPEC = 0x0 + CAN_ERR_RESTARTED = 0x100 + CAN_ERR_TRX = 0x10 + CAN_ERR_TRX_CANH_NO_WIRE = 0x4 + CAN_ERR_TRX_CANH_SHORT_TO_BAT = 0x5 + CAN_ERR_TRX_CANH_SHORT_TO_GND = 0x7 + CAN_ERR_TRX_CANH_SHORT_TO_VCC = 0x6 + CAN_ERR_TRX_CANL_NO_WIRE = 0x40 + CAN_ERR_TRX_CANL_SHORT_TO_BAT = 0x50 + CAN_ERR_TRX_CANL_SHORT_TO_CANH = 0x80 + CAN_ERR_TRX_CANL_SHORT_TO_GND = 0x70 + CAN_ERR_TRX_CANL_SHORT_TO_VCC = 0x60 + CAN_ERR_TRX_UNSPEC = 0x0 + CAN_ERR_TX_TIMEOUT = 0x1 CAN_INV_FILTER = 0x20000000 CAN_ISOTP = 0x6 CAN_J1939 = 0x7 CAN_MAX_DLC = 0x8 CAN_MAX_DLEN = 0x8 + CAN_MAX_RAW_DLC = 0xf CAN_MCNET = 0x5 CAN_MTU = 0x10 CAN_NPROTO = 0x8 @@ -266,6 +338,7 @@ const ( CAP_AUDIT_WRITE = 0x1d CAP_BLOCK_SUSPEND = 0x24 CAP_BPF = 0x27 + CAP_CHECKPOINT_RESTORE = 0x28 CAP_CHOWN = 0x0 CAP_DAC_OVERRIDE = 0x1 CAP_DAC_READ_SEARCH = 0x2 @@ -274,7 +347,7 @@ const ( CAP_IPC_LOCK = 0xe CAP_IPC_OWNER = 0xf CAP_KILL = 0x5 - CAP_LAST_CAP = 0x27 + CAP_LAST_CAP = 0x28 CAP_LEASE = 0x1c CAP_LINUX_IMMUTABLE = 0x9 CAP_MAC_ADMIN = 0x21 @@ -370,10 +443,13 @@ const ( DEBUGFS_MAGIC = 0x64626720 DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e + DEVLINK_FLASH_OVERWRITE_IDENTIFIERS = 0x2 + DEVLINK_FLASH_OVERWRITE_SETTINGS = 0x1 DEVLINK_GENL_MCGRP_CONFIG_NAME = "config" DEVLINK_GENL_NAME = "devlink" DEVLINK_GENL_VERSION = 0x1 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14 + DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS = 0x3 DEVMEM_MAGIC = 0x454d444d DEVPTS_SUPER_MAGIC = 0x1cd1 DMA_BUF_MAGIC = 0x444d4142 @@ -418,9 +494,9 @@ const ( DM_UUID_FLAG = 0x4000 DM_UUID_LEN = 0x81 DM_VERSION = 0xc138fd00 - DM_VERSION_EXTRA = "-ioctl (2020-02-27)" + DM_VERSION_EXTRA = "-ioctl (2021-02-01)" DM_VERSION_MAJOR = 0x4 - DM_VERSION_MINOR = 0x2a + DM_VERSION_MINOR = 0x2c DM_VERSION_PATCHLEVEL = 0x0 DT_BLK = 0x6 DT_CHR = 0x2 @@ -461,6 +537,119 @@ const ( EPOLL_CTL_DEL = 0x2 EPOLL_CTL_MOD = 0x3 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 + ESP_V4_FLOW = 0xa + ESP_V6_FLOW = 0xc + ETHER_FLOW = 0x12 + ETHTOOL_BUSINFO_LEN = 0x20 + ETHTOOL_EROMVERS_LEN = 0x20 + ETHTOOL_FEC_AUTO = 0x2 + ETHTOOL_FEC_BASER = 0x10 + ETHTOOL_FEC_LLRS = 0x20 + ETHTOOL_FEC_NONE = 0x1 + ETHTOOL_FEC_OFF = 0x4 + ETHTOOL_FEC_RS = 0x8 + ETHTOOL_FLAG_ALL = 0x7 + ETHTOOL_FLAG_COMPACT_BITSETS = 0x1 + ETHTOOL_FLAG_OMIT_REPLY = 0x2 + ETHTOOL_FLAG_STATS = 0x4 + ETHTOOL_FLASHDEV = 0x33 + ETHTOOL_FLASH_MAX_FILENAME = 0x80 + ETHTOOL_FWVERS_LEN = 0x20 + ETHTOOL_F_COMPAT = 0x4 + ETHTOOL_F_UNSUPPORTED = 0x1 + ETHTOOL_F_WISH = 0x2 + ETHTOOL_GCHANNELS = 0x3c + ETHTOOL_GCOALESCE = 0xe + ETHTOOL_GDRVINFO = 0x3 + ETHTOOL_GEEE = 0x44 + ETHTOOL_GEEPROM = 0xb + ETHTOOL_GENL_NAME = "ethtool" + ETHTOOL_GENL_VERSION = 0x1 + ETHTOOL_GET_DUMP_DATA = 0x40 + ETHTOOL_GET_DUMP_FLAG = 0x3f + ETHTOOL_GET_TS_INFO = 0x41 + ETHTOOL_GFEATURES = 0x3a + ETHTOOL_GFECPARAM = 0x50 + ETHTOOL_GFLAGS = 0x25 + ETHTOOL_GGRO = 0x2b + ETHTOOL_GGSO = 0x23 + ETHTOOL_GLINK = 0xa + ETHTOOL_GLINKSETTINGS = 0x4c + ETHTOOL_GMODULEEEPROM = 0x43 + ETHTOOL_GMODULEINFO = 0x42 + ETHTOOL_GMSGLVL = 0x7 + ETHTOOL_GPAUSEPARAM = 0x12 + ETHTOOL_GPERMADDR = 0x20 + ETHTOOL_GPFLAGS = 0x27 + ETHTOOL_GPHYSTATS = 0x4a + ETHTOOL_GREGS = 0x4 + ETHTOOL_GRINGPARAM = 0x10 + ETHTOOL_GRSSH = 0x46 + ETHTOOL_GRXCLSRLALL = 0x30 + ETHTOOL_GRXCLSRLCNT = 0x2e + ETHTOOL_GRXCLSRULE = 0x2f + ETHTOOL_GRXCSUM = 0x14 + ETHTOOL_GRXFH = 0x29 + ETHTOOL_GRXFHINDIR = 0x38 + ETHTOOL_GRXNTUPLE = 0x36 + ETHTOOL_GRXRINGS = 0x2d + ETHTOOL_GSET = 0x1 + ETHTOOL_GSG = 0x18 + ETHTOOL_GSSET_INFO = 0x37 + ETHTOOL_GSTATS = 0x1d + ETHTOOL_GSTRINGS = 0x1b + ETHTOOL_GTSO = 0x1e + ETHTOOL_GTUNABLE = 0x48 + ETHTOOL_GTXCSUM = 0x16 + ETHTOOL_GUFO = 0x21 + ETHTOOL_GWOL = 0x5 + ETHTOOL_MCGRP_MONITOR_NAME = "monitor" + ETHTOOL_NWAY_RST = 0x9 + ETHTOOL_PERQUEUE = 0x4b + ETHTOOL_PHYS_ID = 0x1c + ETHTOOL_PHY_EDPD_DFLT_TX_MSECS = 0xffff + ETHTOOL_PHY_EDPD_DISABLE = 0x0 + ETHTOOL_PHY_EDPD_NO_TX = 0xfffe + ETHTOOL_PHY_FAST_LINK_DOWN_OFF = 0xff + ETHTOOL_PHY_FAST_LINK_DOWN_ON = 0x0 + ETHTOOL_PHY_GTUNABLE = 0x4e + ETHTOOL_PHY_STUNABLE = 0x4f + ETHTOOL_RESET = 0x34 + ETHTOOL_RXNTUPLE_ACTION_CLEAR = -0x2 + ETHTOOL_RXNTUPLE_ACTION_DROP = -0x1 + ETHTOOL_RX_FLOW_SPEC_RING = 0xffffffff + ETHTOOL_RX_FLOW_SPEC_RING_VF = 0xff00000000 + ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF = 0x20 + ETHTOOL_SCHANNELS = 0x3d + ETHTOOL_SCOALESCE = 0xf + ETHTOOL_SEEE = 0x45 + ETHTOOL_SEEPROM = 0xc + ETHTOOL_SET_DUMP = 0x3e + ETHTOOL_SFEATURES = 0x3b + ETHTOOL_SFECPARAM = 0x51 + ETHTOOL_SFLAGS = 0x26 + ETHTOOL_SGRO = 0x2c + ETHTOOL_SGSO = 0x24 + ETHTOOL_SLINKSETTINGS = 0x4d + ETHTOOL_SMSGLVL = 0x8 + ETHTOOL_SPAUSEPARAM = 0x13 + ETHTOOL_SPFLAGS = 0x28 + ETHTOOL_SRINGPARAM = 0x11 + ETHTOOL_SRSSH = 0x47 + ETHTOOL_SRXCLSRLDEL = 0x31 + ETHTOOL_SRXCLSRLINS = 0x32 + ETHTOOL_SRXCSUM = 0x15 + ETHTOOL_SRXFH = 0x2a + ETHTOOL_SRXFHINDIR = 0x39 + ETHTOOL_SRXNTUPLE = 0x35 + ETHTOOL_SSET = 0x2 + ETHTOOL_SSG = 0x19 + ETHTOOL_STSO = 0x1f + ETHTOOL_STUNABLE = 0x49 + ETHTOOL_STXCSUM = 0x17 + ETHTOOL_SUFO = 0x22 + ETHTOOL_SWOL = 0x6 + ETHTOOL_TEST = 0x1a ETH_P_1588 = 0x88f7 ETH_P_8021AD = 0x88a8 ETH_P_8021AH = 0x88e7 @@ -485,6 +674,7 @@ const ( ETH_P_CAIF = 0xf7 ETH_P_CAN = 0xc ETH_P_CANFD = 0xd + ETH_P_CFM = 0x8902 ETH_P_CONTROL = 0x16 ETH_P_CUST = 0x6006 ETH_P_DDCMP = 0x6 @@ -592,8 +782,8 @@ const ( FAN_DELETE = 0x200 FAN_DELETE_SELF = 0x400 FAN_DENY = 0x2 - FAN_DIR_MODIFY = 0x80000 FAN_ENABLE_AUDIT = 0x40 + FAN_EVENT_INFO_TYPE_DFID = 0x3 FAN_EVENT_INFO_TYPE_DFID_NAME = 0x2 FAN_EVENT_INFO_TYPE_FID = 0x1 FAN_EVENT_METADATA_LEN = 0x18 @@ -621,13 +811,17 @@ const ( FAN_OPEN_EXEC_PERM = 0x40000 FAN_OPEN_PERM = 0x10000 FAN_Q_OVERFLOW = 0x4000 + FAN_REPORT_DFID_NAME = 0xc00 + FAN_REPORT_DIR_FID = 0x400 FAN_REPORT_FID = 0x200 + FAN_REPORT_NAME = 0x800 FAN_REPORT_TID = 0x100 FAN_UNLIMITED_MARKS = 0x20 FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 FD_SETSIZE = 0x400 FF0 = 0x0 + FIDEDUPERANGE = 0xc0189436 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:" FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8 @@ -651,7 +845,6 @@ const ( FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3 - FSCRYPT_POLICY_FLAGS_VALID = 0x1f FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 = 0x10 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8 @@ -671,6 +864,7 @@ const ( FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616 FS_IOC_MEASURE_VERITY = 0xc0046686 + FS_IOC_READ_VERITY_METADATA = 0xc0286687 FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618 FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619 FS_KEY_DESCRIPTOR_SIZE = 0x8 @@ -682,10 +876,13 @@ const ( FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x1f + FS_POLICY_FLAGS_VALID = 0x7 FS_VERITY_FL = 0x100000 FS_VERITY_HASH_ALG_SHA256 = 0x1 FS_VERITY_HASH_ALG_SHA512 = 0x2 + FS_VERITY_METADATA_TYPE_DESCRIPTOR = 0x2 + FS_VERITY_METADATA_TYPE_MERKLE_TREE = 0x1 + FS_VERITY_METADATA_TYPE_SIGNATURE = 0x3 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 F_DUPFD = 0x0 @@ -779,11 +976,17 @@ const ( HDIO_SET_XFER = 0x306 HDIO_TRISTATE_HWIF = 0x31b HDIO_UNREGISTER_HWIF = 0x32a + HID_MAX_DESCRIPTOR_SIZE = 0x1000 HOSTFS_SUPER_MAGIC = 0xc0ffee HPFS_SUPER_MAGIC = 0xf995e849 HUGETLBFS_MAGIC = 0x958458f6 IBSHIFT = 0x10 ICMPV6_FILTER = 0x1 + ICMPV6_FILTER_BLOCK = 0x1 + ICMPV6_FILTER_BLOCKOTHERS = 0x3 + ICMPV6_FILTER_PASS = 0x2 + ICMPV6_FILTER_PASSONLY = 0x4 + ICMP_FILTER = 0x1 ICRNL = 0x100 IFA_F_DADFAILED = 0x8 IFA_F_DEPRECATED = 0x20 @@ -926,6 +1129,7 @@ const ( IPV6_DONTFRAG = 0x3e IPV6_DROP_MEMBERSHIP = 0x15 IPV6_DSTOPTS = 0x3b + IPV6_FLOW = 0x11 IPV6_FREEBIND = 0x4e IPV6_HDRINCL = 0x24 IPV6_HOPLIMIT = 0x34 @@ -954,6 +1158,7 @@ const ( IPV6_PMTUDISC_WANT = 0x1 IPV6_RECVDSTOPTS = 0x3a IPV6_RECVERR = 0x19 + IPV6_RECVERR_RFC4884 = 0x1f IPV6_RECVFRAGSIZE = 0x4d IPV6_RECVHOPLIMIT = 0x33 IPV6_RECVHOPOPTS = 0x35 @@ -975,6 +1180,7 @@ const ( IPV6_TRANSPARENT = 0x4b IPV6_UNICAST_HOPS = 0x10 IPV6_UNICAST_IF = 0x4c + IPV6_USER_FLOW = 0xe IPV6_V6ONLY = 0x1a IPV6_XFRM_POLICY = 0x23 IP_ADD_MEMBERSHIP = 0x23 @@ -1017,6 +1223,7 @@ const ( IP_PMTUDISC_PROBE = 0x3 IP_PMTUDISC_WANT = 0x1 IP_RECVERR = 0xb + IP_RECVERR_RFC4884 = 0x1a IP_RECVFRAGSIZE = 0x19 IP_RECVOPTS = 0x6 IP_RECVORIGDSTADDR = 0x14 @@ -1031,6 +1238,7 @@ const ( IP_TTL = 0x2 IP_UNBLOCK_SOURCE = 0x25 IP_UNICAST_IF = 0x32 + IP_USER_FLOW = 0xd IP_XFRM_POLICY = 0x11 ISOFS_SUPER_MAGIC = 0x9660 ISTRIP = 0x20 @@ -1154,6 +1362,12 @@ const ( LOOP_SET_STATUS_SETTABLE_FLAGS = 0xc LO_KEY_SIZE = 0x20 LO_NAME_SIZE = 0x40 + LWTUNNEL_IP6_MAX = 0x8 + LWTUNNEL_IP_MAX = 0x8 + LWTUNNEL_IP_OPTS_MAX = 0x3 + LWTUNNEL_IP_OPT_ERSPAN_MAX = 0x4 + LWTUNNEL_IP_OPT_GENEVE_MAX = 0x3 + LWTUNNEL_IP_OPT_VXLAN_MAX = 0x1 MADV_COLD = 0x14 MADV_DODUMP = 0x11 MADV_DOFORK = 0xb @@ -1192,6 +1406,10 @@ const ( MCAST_LEAVE_SOURCE_GROUP = 0x2f MCAST_MSFILTER = 0x30 MCAST_UNBLOCK_SOURCE = 0x2c + MEMGETREGIONINFO = 0xc0104d08 + MEMREADOOB64 = 0xc0184d16 + MEMWRITE = 0xc0304d18 + MEMWRITEOOB64 = 0xc0184d15 MFD_ALLOW_SEALING = 0x2 MFD_CLOEXEC = 0x1 MFD_HUGETLB = 0x4 @@ -1262,6 +1480,7 @@ const ( MS_NOREMOTELOCK = 0x8000000 MS_NOSEC = 0x10000000 MS_NOSUID = 0x2 + MS_NOSYMFOLLOW = 0x100 MS_NOUSER = -0x80000000 MS_POSIXACL = 0x10000 MS_PRIVATE = 0x40000 @@ -1279,7 +1498,35 @@ const ( MS_SYNCHRONOUS = 0x10 MS_UNBINDABLE = 0x20000 MS_VERBOSE = 0x8000 + MTD_ABSENT = 0x0 + MTD_BIT_WRITEABLE = 0x800 + MTD_CAP_NANDFLASH = 0x400 + MTD_CAP_NORFLASH = 0xc00 + MTD_CAP_NVRAM = 0x1c00 + MTD_CAP_RAM = 0x1c00 + MTD_CAP_ROM = 0x0 + MTD_DATAFLASH = 0x6 MTD_INODE_FS_MAGIC = 0x11307854 + MTD_MAX_ECCPOS_ENTRIES = 0x40 + MTD_MAX_OOBFREE_ENTRIES = 0x8 + MTD_MLCNANDFLASH = 0x8 + MTD_NANDECC_AUTOPLACE = 0x2 + MTD_NANDECC_AUTOPL_USR = 0x4 + MTD_NANDECC_OFF = 0x0 + MTD_NANDECC_PLACE = 0x1 + MTD_NANDECC_PLACEONLY = 0x3 + MTD_NANDFLASH = 0x4 + MTD_NORFLASH = 0x3 + MTD_NO_ERASE = 0x1000 + MTD_OTP_FACTORY = 0x1 + MTD_OTP_OFF = 0x0 + MTD_OTP_USER = 0x2 + MTD_POWERUP_LOCK = 0x2000 + MTD_RAM = 0x1 + MTD_ROM = 0x2 + MTD_SLC_ON_MLC_EMULATION = 0x4000 + MTD_UBIVOLUME = 0x7 + MTD_WRITEABLE = 0x400 NAME_MAX = 0xff NCP_SUPER_MAGIC = 0x564c NETLINK_ADD_MEMBERSHIP = 0x1 @@ -1449,6 +1696,98 @@ const ( PARITY_DEFAULT = 0x0 PARITY_NONE = 0x1 PARMRK = 0x8 + PERF_ATTR_SIZE_VER0 = 0x40 + PERF_ATTR_SIZE_VER1 = 0x48 + PERF_ATTR_SIZE_VER2 = 0x50 + PERF_ATTR_SIZE_VER3 = 0x60 + PERF_ATTR_SIZE_VER4 = 0x68 + PERF_ATTR_SIZE_VER5 = 0x70 + PERF_ATTR_SIZE_VER6 = 0x78 + PERF_AUX_FLAG_COLLISION = 0x8 + PERF_AUX_FLAG_OVERWRITE = 0x2 + PERF_AUX_FLAG_PARTIAL = 0x4 + PERF_AUX_FLAG_TRUNCATED = 0x1 + PERF_FLAG_FD_CLOEXEC = 0x8 + PERF_FLAG_FD_NO_GROUP = 0x1 + PERF_FLAG_FD_OUTPUT = 0x2 + PERF_FLAG_PID_CGROUP = 0x4 + PERF_MAX_CONTEXTS_PER_STACK = 0x8 + PERF_MAX_STACK_DEPTH = 0x7f + PERF_MEM_BLK_ADDR = 0x4 + PERF_MEM_BLK_DATA = 0x2 + PERF_MEM_BLK_NA = 0x1 + PERF_MEM_BLK_SHIFT = 0x28 + PERF_MEM_LOCK_LOCKED = 0x2 + PERF_MEM_LOCK_NA = 0x1 + PERF_MEM_LOCK_SHIFT = 0x18 + PERF_MEM_LVLNUM_ANY_CACHE = 0xb + PERF_MEM_LVLNUM_L1 = 0x1 + PERF_MEM_LVLNUM_L2 = 0x2 + PERF_MEM_LVLNUM_L3 = 0x3 + PERF_MEM_LVLNUM_L4 = 0x4 + PERF_MEM_LVLNUM_LFB = 0xc + PERF_MEM_LVLNUM_NA = 0xf + PERF_MEM_LVLNUM_PMEM = 0xe + PERF_MEM_LVLNUM_RAM = 0xd + PERF_MEM_LVLNUM_SHIFT = 0x21 + PERF_MEM_LVL_HIT = 0x2 + PERF_MEM_LVL_IO = 0x1000 + PERF_MEM_LVL_L1 = 0x8 + PERF_MEM_LVL_L2 = 0x20 + PERF_MEM_LVL_L3 = 0x40 + PERF_MEM_LVL_LFB = 0x10 + PERF_MEM_LVL_LOC_RAM = 0x80 + PERF_MEM_LVL_MISS = 0x4 + PERF_MEM_LVL_NA = 0x1 + PERF_MEM_LVL_REM_CCE1 = 0x400 + PERF_MEM_LVL_REM_CCE2 = 0x800 + PERF_MEM_LVL_REM_RAM1 = 0x100 + PERF_MEM_LVL_REM_RAM2 = 0x200 + PERF_MEM_LVL_SHIFT = 0x5 + PERF_MEM_LVL_UNC = 0x2000 + PERF_MEM_OP_EXEC = 0x10 + PERF_MEM_OP_LOAD = 0x2 + PERF_MEM_OP_NA = 0x1 + PERF_MEM_OP_PFETCH = 0x8 + PERF_MEM_OP_SHIFT = 0x0 + PERF_MEM_OP_STORE = 0x4 + PERF_MEM_REMOTE_REMOTE = 0x1 + PERF_MEM_REMOTE_SHIFT = 0x25 + PERF_MEM_SNOOPX_FWD = 0x1 + PERF_MEM_SNOOPX_SHIFT = 0x26 + PERF_MEM_SNOOP_HIT = 0x4 + PERF_MEM_SNOOP_HITM = 0x10 + PERF_MEM_SNOOP_MISS = 0x8 + PERF_MEM_SNOOP_NA = 0x1 + PERF_MEM_SNOOP_NONE = 0x2 + PERF_MEM_SNOOP_SHIFT = 0x13 + PERF_MEM_TLB_HIT = 0x2 + PERF_MEM_TLB_L1 = 0x8 + PERF_MEM_TLB_L2 = 0x10 + PERF_MEM_TLB_MISS = 0x4 + PERF_MEM_TLB_NA = 0x1 + PERF_MEM_TLB_OS = 0x40 + PERF_MEM_TLB_SHIFT = 0x1a + PERF_MEM_TLB_WK = 0x20 + PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER = 0x1 + PERF_RECORD_MISC_COMM_EXEC = 0x2000 + PERF_RECORD_MISC_CPUMODE_MASK = 0x7 + PERF_RECORD_MISC_CPUMODE_UNKNOWN = 0x0 + PERF_RECORD_MISC_EXACT_IP = 0x4000 + PERF_RECORD_MISC_EXT_RESERVED = 0x8000 + PERF_RECORD_MISC_FORK_EXEC = 0x2000 + PERF_RECORD_MISC_GUEST_KERNEL = 0x4 + PERF_RECORD_MISC_GUEST_USER = 0x5 + PERF_RECORD_MISC_HYPERVISOR = 0x3 + PERF_RECORD_MISC_KERNEL = 0x1 + PERF_RECORD_MISC_MMAP_BUILD_ID = 0x4000 + PERF_RECORD_MISC_MMAP_DATA = 0x2000 + PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT = 0x1000 + PERF_RECORD_MISC_SWITCH_OUT = 0x2000 + PERF_RECORD_MISC_SWITCH_OUT_PREEMPT = 0x4000 + PERF_RECORD_MISC_USER = 0x2 + PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 + PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 PIPEFS_MAGIC = 0x50495045 PPC_CMM_MAGIC = 0xc7571590 PPPIOCGNPMODE = 0xc008744c @@ -1517,6 +1856,13 @@ const ( PR_MCE_KILL_SET = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b + PR_MTE_TAG_MASK = 0x7fff8 + PR_MTE_TAG_SHIFT = 0x3 + PR_MTE_TCF_ASYNC = 0x4 + PR_MTE_TCF_MASK = 0x6 + PR_MTE_TCF_NONE = 0x0 + PR_MTE_TCF_SHIFT = 0x1 + PR_MTE_TCF_SYNC = 0x2 PR_PAC_APDAKEY = 0x4 PR_PAC_APDBKEY = 0x8 PR_PAC_APGAKEY = 0x10 @@ -1554,6 +1900,7 @@ const ( PR_SET_SECCOMP = 0x16 PR_SET_SECUREBITS = 0x1c PR_SET_SPECULATION_CTRL = 0x35 + PR_SET_SYSCALL_USER_DISPATCH = 0x3b PR_SET_TAGGED_ADDR_CTRL = 0x37 PR_SET_THP_DISABLE = 0x29 PR_SET_TIMERSLACK = 0x1d @@ -1573,6 +1920,8 @@ const ( PR_SVE_SET_VL_ONEXEC = 0x40000 PR_SVE_VL_INHERIT = 0x20000 PR_SVE_VL_LEN_MASK = 0xffff + PR_SYS_DISPATCH_OFF = 0x0 + PR_SYS_DISPATCH_ON = 0x1 PR_TAGGED_ADDR_ENABLE = 0x1 PR_TASK_PERF_EVENTS_DISABLE = 0x1f PR_TASK_PERF_EVENTS_ENABLE = 0x20 @@ -1692,6 +2041,10 @@ const ( RTCF_NAT = 0x800000 RTCF_VALVE = 0x200000 RTC_AF = 0x20 + RTC_FEATURE_ALARM = 0x0 + RTC_FEATURE_ALARM_RES_MINUTE = 0x1 + RTC_FEATURE_CNT = 0x3 + RTC_FEATURE_NEED_WEEK_DAY = 0x2 RTC_IRQF = 0x80 RTC_MAX_FREQ = 0x2000 RTC_PF = 0x40 @@ -1765,6 +2118,7 @@ const ( RTM_F_LOOKUP_TABLE = 0x1000 RTM_F_NOTIFY = 0x100 RTM_F_OFFLOAD = 0x4000 + RTM_F_OFFLOAD_FAILED = 0x20000000 RTM_F_PREFIX = 0x800 RTM_F_TRAP = 0x8000 RTM_GETACTION = 0x32 @@ -1818,12 +2172,13 @@ const ( RTM_SETLINK = 0x13 RTM_SETNEIGHTBL = 0x43 RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 + RTNH_COMPARE_MASK = 0x59 RTNH_F_DEAD = 0x1 RTNH_F_LINKDOWN = 0x10 RTNH_F_OFFLOAD = 0x8 RTNH_F_ONLINK = 0x4 RTNH_F_PERVASIVE = 0x2 + RTNH_F_TRAP = 0x40 RTNH_F_UNRESOLVED = 0x20 RTN_MAX = 0xb RTPROT_BABEL = 0x2a @@ -1835,6 +2190,7 @@ const ( RTPROT_EIGRP = 0xc0 RTPROT_GATED = 0x8 RTPROT_ISIS = 0xbb + RTPROT_KEEPALIVED = 0x12 RTPROT_KERNEL = 0x2 RTPROT_MROUTED = 0x11 RTPROT_MRT = 0xa @@ -1985,6 +2341,7 @@ const ( SOL_ATM = 0x108 SOL_CAIF = 0x116 SOL_CAN_BASE = 0x64 + SOL_CAN_RAW = 0x65 SOL_DCCP = 0x10d SOL_DECNET = 0x105 SOL_ICMPV6 = 0x3a @@ -2024,6 +2381,7 @@ const ( SO_EE_ORIGIN_TXSTATUS = 0x4 SO_EE_ORIGIN_TXTIME = 0x6 SO_EE_ORIGIN_ZEROCOPY = 0x5 + SO_EE_RFC4884_FLAG_INVALID = 0x1 SO_GET_FILTER = 0x1a SO_NO_CHECK = 0xb SO_PEERNAME = 0x1c @@ -2048,7 +2406,7 @@ const ( STATX_ATTR_APPEND = 0x20 STATX_ATTR_AUTOMOUNT = 0x1000 STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_DAX = 0x2000 + STATX_ATTR_DAX = 0x200000 STATX_ATTR_ENCRYPTED = 0x800 STATX_ATTR_IMMUTABLE = 0x10 STATX_ATTR_MOUNT_ROOT = 0x2000 @@ -2167,6 +2525,8 @@ const ( TCP_TX_DELAY = 0x25 TCP_ULP = 0x1f TCP_USER_TIMEOUT = 0x12 + TCP_V4_FLOW = 0x1 + TCP_V6_FLOW = 0x5 TCP_WINDOW_CLAMP = 0xa TCP_ZEROCOPY_RECEIVE = 0x23 TFD_TIMER_ABSTIME = 0x1 @@ -2232,6 +2592,7 @@ const ( TIPC_NODE_STATE = 0x0 TIPC_OK = 0x0 TIPC_PUBLISHED = 0x1 + TIPC_REKEYING_NOW = 0xffffffff TIPC_RESERVED_TYPES = 0x40 TIPC_RETDATA = 0x2 TIPC_SERVICE_ADDR = 0x2 @@ -2288,15 +2649,34 @@ const ( VMADDR_CID_HOST = 0x2 VMADDR_CID_HYPERVISOR = 0x0 VMADDR_CID_LOCAL = 0x1 + VMADDR_FLAG_TO_HOST = 0x1 VMADDR_PORT_ANY = 0xffffffff VM_SOCKETS_INVALID_VERSION = 0xffffffff VQUIT = 0x1 VT0 = 0x0 + WAKE_MAGIC = 0x20 WALL = 0x40000000 WCLONE = 0x80000000 WCONTINUED = 0x8 WDIOC_SETPRETIMEOUT = 0xc0045708 WDIOC_SETTIMEOUT = 0xc0045706 + WDIOF_ALARMONLY = 0x400 + WDIOF_CARDRESET = 0x20 + WDIOF_EXTERN1 = 0x4 + WDIOF_EXTERN2 = 0x8 + WDIOF_FANFAULT = 0x2 + WDIOF_KEEPALIVEPING = 0x8000 + WDIOF_MAGICCLOSE = 0x100 + WDIOF_OVERHEAT = 0x1 + WDIOF_POWEROVER = 0x40 + WDIOF_POWERUNDER = 0x10 + WDIOF_PRETIMEOUT = 0x200 + WDIOF_SETTIMEOUT = 0x80 + WDIOF_UNKNOWN = -0x1 + WDIOS_DISABLECARD = 0x1 + WDIOS_ENABLECARD = 0x2 + WDIOS_TEMPPANIC = 0x4 + WDIOS_UNKNOWN = -0x1 WEXITED = 0x4 WIN_ACKMEDIACHANGE = 0xdb WIN_CHECKPOWERMODE1 = 0xe5 @@ -2417,6 +2797,9 @@ const ( Z3FOLD_MAGIC = 0x33 ZONEFS_MAGIC = 0x5a4f4653 ZSMALLOC_MAGIC = 0x58295829 + _HIDIOCGRAWNAME_LEN = 0x80 + _HIDIOCGRAWPHYS_LEN = 0x40 + _HIDIOCGRAWUNIQ_LEN = 0x40 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index 11b25f68c2..09fc559ed2 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include -m32 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && linux // +build 386,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 ECHOE = 0x10 ECHOK = 0x20 @@ -71,6 +74,8 @@ const ( EXTPROC = 0x10000 FF1 = 0x8000 FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d FLUSHO = 0x1000 FP_XSTATE_MAGIC2 = 0x46505845 FS_IOC_ENABLE_VERITY = 0x40806685 @@ -91,6 +96,9 @@ const ( F_SETOWN = 0x8 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 HUPCL = 0x400 ICANON = 0x2 IEXTEN = 0x8000 @@ -117,6 +125,19 @@ const ( MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x4d13 NFDBITS = 0x20 NLDLY = 0x100 NOFLSH = 0x80 @@ -126,6 +147,10 @@ const ( NS_GET_USERNS = 0xb701 OLCUC = 0x2 ONLCR = 0x4 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d O_APPEND = 0x400 O_ASYNC = 0x2000 O_CLOEXEC = 0x80000 @@ -163,6 +188,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PPPIOCATTACH = 0x4004743d PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 PPPIOCCONNECT = 0x4004743a PPPIOCDETACH = 0x4004743c PPPIOCDISCONN = 0x7439 @@ -190,6 +216,7 @@ const ( PPPIOCSPASS = 0x40087447 PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 PPPIOCXFERUNIT = 0x744e PR_SET_PTRACER_ANY = 0xffffffff PTRACE_GETFPREGS = 0xe @@ -266,6 +293,7 @@ const ( SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -288,6 +316,7 @@ const ( SO_PEERCRED = 0x11 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x26 SO_RCVBUF = 0x8 SO_RCVBUFFORCE = 0x21 @@ -479,6 +508,9 @@ const ( X86_FXSR_MAGIC = 0x0 XCASE = 0x4 XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index f92cff6ea0..75730cc22b 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && linux // +build amd64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 ECHOE = 0x10 ECHOK = 0x20 @@ -71,6 +74,8 @@ const ( EXTPROC = 0x10000 FF1 = 0x8000 FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d FLUSHO = 0x1000 FP_XSTATE_MAGIC2 = 0x46505845 FS_IOC_ENABLE_VERITY = 0x40806685 @@ -91,6 +96,9 @@ const ( F_SETOWN = 0x8 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 HUPCL = 0x400 ICANON = 0x2 IEXTEN = 0x8000 @@ -117,6 +125,19 @@ const ( MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 NFDBITS = 0x40 NLDLY = 0x100 NOFLSH = 0x80 @@ -126,6 +147,10 @@ const ( NS_GET_USERNS = 0xb701 OLCUC = 0x2 ONLCR = 0x4 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d O_APPEND = 0x400 O_ASYNC = 0x2000 O_CLOEXEC = 0x80000 @@ -163,6 +188,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PPPIOCATTACH = 0x4004743d PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 PPPIOCCONNECT = 0x4004743a PPPIOCDETACH = 0x4004743c PPPIOCDISCONN = 0x7439 @@ -190,6 +216,7 @@ const ( PPPIOCSPASS = 0x40107447 PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 PPPIOCXFERUNIT = 0x744e PR_SET_PTRACER_ANY = 0xffffffffffffffff PTRACE_ARCH_PRCTL = 0x1e @@ -267,6 +294,7 @@ const ( SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -289,6 +317,7 @@ const ( SO_PEERCRED = 0x11 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x26 SO_RCVBUF = 0x8 SO_RCVBUFFORCE = 0x21 @@ -479,6 +508,9 @@ const ( WORDSIZE = 0x40 XCASE = 0x4 XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index 12bcbf88d6..127cf17add 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && linux // +build arm,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 ECHOE = 0x10 ECHOK = 0x20 @@ -71,6 +74,8 @@ const ( EXTPROC = 0x10000 FF1 = 0x8000 FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d FLUSHO = 0x1000 FS_IOC_ENABLE_VERITY = 0x40806685 FS_IOC_GETFLAGS = 0x80046601 @@ -90,6 +95,9 @@ const ( F_SETOWN = 0x8 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 HUPCL = 0x400 ICANON = 0x2 IEXTEN = 0x8000 @@ -115,6 +123,19 @@ const ( MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x4d13 NFDBITS = 0x20 NLDLY = 0x100 NOFLSH = 0x80 @@ -124,6 +145,10 @@ const ( NS_GET_USERNS = 0xb701 OLCUC = 0x2 ONLCR = 0x4 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d O_APPEND = 0x400 O_ASYNC = 0x2000 O_CLOEXEC = 0x80000 @@ -161,6 +186,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PPPIOCATTACH = 0x4004743d PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 PPPIOCCONNECT = 0x4004743a PPPIOCDETACH = 0x4004743c PPPIOCDISCONN = 0x7439 @@ -188,6 +214,7 @@ const ( PPPIOCSPASS = 0x40087447 PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 PPPIOCXFERUNIT = 0x744e PR_SET_PTRACER_ANY = 0xffffffff PTRACE_GETCRUNCHREGS = 0x19 @@ -273,6 +300,7 @@ const ( SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -295,6 +323,7 @@ const ( SO_PEERCRED = 0x11 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x26 SO_RCVBUF = 0x8 SO_RCVBUFFORCE = 0x21 @@ -485,6 +514,9 @@ const ( WORDSIZE = 0x20 XCASE = 0x4 XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index 84f71e99fe..957ca1ff13 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && linux // +build arm64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 ECHOE = 0x10 ECHOK = 0x20 @@ -73,6 +76,8 @@ const ( EXTRA_MAGIC = 0x45585401 FF1 = 0x8000 FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d FLUSHO = 0x1000 FPSIMD_MAGIC = 0x46508001 FS_IOC_ENABLE_VERITY = 0x40806685 @@ -93,6 +98,9 @@ const ( F_SETOWN = 0x8 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 HUPCL = 0x400 ICANON = 0x2 IEXTEN = 0x8000 @@ -118,6 +126,19 @@ const ( MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 NFDBITS = 0x40 NLDLY = 0x100 NOFLSH = 0x80 @@ -127,6 +148,10 @@ const ( NS_GET_USERNS = 0xb701 OLCUC = 0x2 ONLCR = 0x4 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d O_APPEND = 0x400 O_ASYNC = 0x2000 O_CLOEXEC = 0x80000 @@ -164,6 +189,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PPPIOCATTACH = 0x4004743d PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 PPPIOCCONNECT = 0x4004743a PPPIOCDETACH = 0x4004743c PPPIOCDISCONN = 0x7439 @@ -191,9 +217,13 @@ const ( PPPIOCSPASS = 0x40107447 PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 PPPIOCXFERUNIT = 0x744e PROT_BTI = 0x10 + PROT_MTE = 0x20 PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_PEEKMTETAGS = 0x21 + PTRACE_POKEMTETAGS = 0x22 PTRACE_SYSEMU = 0x1f PTRACE_SYSEMU_SINGLESTEP = 0x20 RLIMIT_AS = 0x9 @@ -260,6 +290,7 @@ const ( SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -282,6 +313,7 @@ const ( SO_PEERCRED = 0x11 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x26 SO_RCVBUF = 0x8 SO_RCVBUFFORCE = 0x21 @@ -473,6 +505,9 @@ const ( WORDSIZE = 0x40 XCASE = 0x4 XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go index eeadea943f..314a2054fc 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips && linux // +build mips,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 ECHOCTL = 0x200 ECHOE = 0x10 ECHOK = 0x20 @@ -71,6 +74,8 @@ const ( EXTPROC = 0x10000 FF1 = 0x8000 FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d FLUSHO = 0x2000 FS_IOC_ENABLE_VERITY = 0x80806685 FS_IOC_GETFLAGS = 0x40046601 @@ -90,6 +95,9 @@ const ( F_SETOWN = 0x18 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 HUPCL = 0x400 ICANON = 0x2 IEXTEN = 0x100 @@ -115,6 +123,19 @@ const ( MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x20004d13 NFDBITS = 0x20 NLDLY = 0x100 NOFLSH = 0x80 @@ -124,6 +145,10 @@ const ( NS_GET_USERNS = 0x2000b701 OLCUC = 0x2 ONLCR = 0x4 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d O_APPEND = 0x8 O_ASYNC = 0x1000 O_CLOEXEC = 0x80000 @@ -161,6 +186,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PPPIOCATTACH = 0x8004743d PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 PPPIOCCONNECT = 0x8004743a PPPIOCDETACH = 0x8004743c PPPIOCDISCONN = 0x20007439 @@ -188,6 +214,7 @@ const ( PPPIOCSPASS = 0x80087447 PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 PPPIOCXFERUNIT = 0x2000744e PR_SET_PTRACER_ANY = 0xffffffff PTRACE_GETFPREGS = 0xe @@ -266,6 +293,7 @@ const ( SO_BROADCAST = 0x20 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -288,6 +316,7 @@ const ( SO_PEERCRED = 0x12 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x1028 SO_RCVBUF = 0x1002 SO_RCVBUFFORCE = 0x21 @@ -481,6 +510,9 @@ const ( WORDSIZE = 0x20 XCASE = 0x4 XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go index 0be6c4ccc0..457e8de97d 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64 && linux // +build mips64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 ECHOCTL = 0x200 ECHOE = 0x10 ECHOK = 0x20 @@ -71,6 +74,8 @@ const ( EXTPROC = 0x10000 FF1 = 0x8000 FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d FLUSHO = 0x2000 FS_IOC_ENABLE_VERITY = 0x80806685 FS_IOC_GETFLAGS = 0x40086601 @@ -90,6 +95,9 @@ const ( F_SETOWN = 0x18 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 HUPCL = 0x400 ICANON = 0x2 IEXTEN = 0x100 @@ -115,6 +123,19 @@ const ( MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 NFDBITS = 0x40 NLDLY = 0x100 NOFLSH = 0x80 @@ -124,6 +145,10 @@ const ( NS_GET_USERNS = 0x2000b701 OLCUC = 0x2 ONLCR = 0x4 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d O_APPEND = 0x8 O_ASYNC = 0x1000 O_CLOEXEC = 0x80000 @@ -161,6 +186,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PPPIOCATTACH = 0x8004743d PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 PPPIOCCONNECT = 0x8004743a PPPIOCDETACH = 0x8004743c PPPIOCDISCONN = 0x20007439 @@ -188,6 +214,7 @@ const ( PPPIOCSPASS = 0x80107447 PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 PPPIOCXFERUNIT = 0x2000744e PR_SET_PTRACER_ANY = 0xffffffffffffffff PTRACE_GETFPREGS = 0xe @@ -266,6 +293,7 @@ const ( SO_BROADCAST = 0x20 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -288,6 +316,7 @@ const ( SO_PEERCRED = 0x12 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x1028 SO_RCVBUF = 0x1002 SO_RCVBUFFORCE = 0x21 @@ -481,6 +510,9 @@ const ( WORDSIZE = 0x40 XCASE = 0x4 XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go index 0880b745c1..33cd28f6bd 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64le && linux // +build mips64le,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 ECHOCTL = 0x200 ECHOE = 0x10 ECHOK = 0x20 @@ -71,6 +74,8 @@ const ( EXTPROC = 0x10000 FF1 = 0x8000 FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d FLUSHO = 0x2000 FS_IOC_ENABLE_VERITY = 0x80806685 FS_IOC_GETFLAGS = 0x40086601 @@ -90,6 +95,9 @@ const ( F_SETOWN = 0x18 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 HUPCL = 0x400 ICANON = 0x2 IEXTEN = 0x100 @@ -115,6 +123,19 @@ const ( MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 NFDBITS = 0x40 NLDLY = 0x100 NOFLSH = 0x80 @@ -124,6 +145,10 @@ const ( NS_GET_USERNS = 0x2000b701 OLCUC = 0x2 ONLCR = 0x4 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d O_APPEND = 0x8 O_ASYNC = 0x1000 O_CLOEXEC = 0x80000 @@ -161,6 +186,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PPPIOCATTACH = 0x8004743d PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 PPPIOCCONNECT = 0x8004743a PPPIOCDETACH = 0x8004743c PPPIOCDISCONN = 0x20007439 @@ -188,6 +214,7 @@ const ( PPPIOCSPASS = 0x80107447 PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 PPPIOCXFERUNIT = 0x2000744e PR_SET_PTRACER_ANY = 0xffffffffffffffff PTRACE_GETFPREGS = 0xe @@ -266,6 +293,7 @@ const ( SO_BROADCAST = 0x20 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -288,6 +316,7 @@ const ( SO_PEERCRED = 0x12 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x1028 SO_RCVBUF = 0x1002 SO_RCVBUFFORCE = 0x21 @@ -481,6 +510,9 @@ const ( WORDSIZE = 0x40 XCASE = 0x4 XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go index c8a66627aa..0e085ba147 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mipsle && linux // +build mipsle,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 ECHOCTL = 0x200 ECHOE = 0x10 ECHOK = 0x20 @@ -71,6 +74,8 @@ const ( EXTPROC = 0x10000 FF1 = 0x8000 FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d FLUSHO = 0x2000 FS_IOC_ENABLE_VERITY = 0x80806685 FS_IOC_GETFLAGS = 0x40046601 @@ -90,6 +95,9 @@ const ( F_SETOWN = 0x18 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 HUPCL = 0x400 ICANON = 0x2 IEXTEN = 0x100 @@ -115,6 +123,19 @@ const ( MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x20004d13 NFDBITS = 0x20 NLDLY = 0x100 NOFLSH = 0x80 @@ -124,6 +145,10 @@ const ( NS_GET_USERNS = 0x2000b701 OLCUC = 0x2 ONLCR = 0x4 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d O_APPEND = 0x8 O_ASYNC = 0x1000 O_CLOEXEC = 0x80000 @@ -161,6 +186,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PPPIOCATTACH = 0x8004743d PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 PPPIOCCONNECT = 0x8004743a PPPIOCDETACH = 0x8004743c PPPIOCDISCONN = 0x20007439 @@ -188,6 +214,7 @@ const ( PPPIOCSPASS = 0x80087447 PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 PPPIOCXFERUNIT = 0x2000744e PR_SET_PTRACER_ANY = 0xffffffff PTRACE_GETFPREGS = 0xe @@ -266,6 +293,7 @@ const ( SO_BROADCAST = 0x20 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -288,6 +316,7 @@ const ( SO_PEERCRED = 0x12 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x1028 SO_RCVBUF = 0x1002 SO_RCVBUFFORCE = 0x21 @@ -481,6 +510,9 @@ const ( WORDSIZE = 0x20 XCASE = 0x4 XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go new file mode 100644 index 0000000000..1b5928cffb --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go @@ -0,0 +1,879 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && linux +// +build ppc,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x17 + B115200 = 0x11 + B1152000 = 0x18 + B1500000 = 0x19 + B2000000 = 0x1a + B230400 = 0x12 + B2500000 = 0x1b + B3000000 = 0x1c + B3500000 = 0x1d + B4000000 = 0x1e + B460800 = 0x13 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B921600 = 0x16 + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1f + BS1 = 0x8000 + BSDLY = 0x8000 + CBAUD = 0xff + CBAUDEX = 0x0 + CIBAUD = 0xff0000 + CLOCAL = 0x8000 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTOPB = 0x400 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 + FFDLY = 0x4000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x800000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x20 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x10000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x1000 + PARODD = 0x2000 + PENDIN = 0x20000000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4008743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80087446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x800c744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80087447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETREGS64 = 0x17 + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPR31 = 0x6e + PT_FPSCR = 0x71 + PT_LNK = 0x24 + PT_MQ = 0x27 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_TRAP = 0x28 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4004700d + RTC_EPOCH_SET = 0x8004700e + RTC_IRQP_READ = 0x4004700b + RTC_IRQP_SET = 0x8004700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x401c7011 + RTC_PLL_SET = 0x801c7012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x13 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x2000741f + TCGETA = 0x40147417 + TCGETS = 0x402c7413 + TCSAFLUSH = 0x2 + TCSBRK = 0x2000741d + TCSBRKP = 0x5425 + TCSETA = 0x80147418 + TCSETAF = 0x8014741c + TCSETAW = 0x80147419 + TCSETS = 0x802c7414 + TCSETSF = 0x802c7416 + TCSETSW = 0x802c7415 + TCXONC = 0x2000741e + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VMIN = 0x5 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x20 + XCASE = 0x4000 + XTABS = 0xc00 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {58, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index 97aae63f16..f3a41d6ecb 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64 && linux // +build ppc64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x300 CSIZE = 0x300 CSTOPB = 0x400 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 ECHOCTL = 0x40 ECHOE = 0x2 ECHOK = 0x4 @@ -71,6 +74,8 @@ const ( EXTPROC = 0x10000000 FF1 = 0x4000 FFDLY = 0x4000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d FLUSHO = 0x800000 FS_IOC_ENABLE_VERITY = 0x80806685 FS_IOC_GETFLAGS = 0x40086601 @@ -90,6 +95,9 @@ const ( F_SETOWN = 0x8 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 HUPCL = 0x4000 ICANON = 0x100 IEXTEN = 0x400 @@ -115,6 +123,19 @@ const ( MCL_CURRENT = 0x2000 MCL_FUTURE = 0x4000 MCL_ONFAULT = 0x8000 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 NFDBITS = 0x40 NL2 = 0x200 NL3 = 0x300 @@ -126,6 +147,10 @@ const ( NS_GET_USERNS = 0x2000b701 OLCUC = 0x4 ONLCR = 0x2 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d O_APPEND = 0x400 O_ASYNC = 0x2000 O_CLOEXEC = 0x80000 @@ -163,6 +188,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PPPIOCATTACH = 0x8004743d PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 PPPIOCCONNECT = 0x8004743a PPPIOCDETACH = 0x8004743c PPPIOCDISCONN = 0x20007439 @@ -190,6 +216,7 @@ const ( PPPIOCSPASS = 0x80107447 PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 PPPIOCXFERUNIT = 0x2000744e PROT_SAO = 0x10 PR_SET_PTRACER_ANY = 0xffffffffffffffff @@ -325,6 +352,7 @@ const ( SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -347,6 +375,7 @@ const ( SO_PEERCRED = 0x15 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x26 SO_RCVBUF = 0x8 SO_RCVBUFFORCE = 0x21 @@ -541,6 +570,9 @@ const ( WORDSIZE = 0x40 XCASE = 0x4000 XTABS = 0xc00 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index b0c3b0664f..6a5a555d5e 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64le && linux // +build ppc64le,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x300 CSIZE = 0x300 CSTOPB = 0x400 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 ECHOCTL = 0x40 ECHOE = 0x2 ECHOK = 0x4 @@ -71,6 +74,8 @@ const ( EXTPROC = 0x10000000 FF1 = 0x4000 FFDLY = 0x4000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d FLUSHO = 0x800000 FS_IOC_ENABLE_VERITY = 0x80806685 FS_IOC_GETFLAGS = 0x40086601 @@ -90,6 +95,9 @@ const ( F_SETOWN = 0x8 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 HUPCL = 0x4000 ICANON = 0x100 IEXTEN = 0x400 @@ -115,6 +123,19 @@ const ( MCL_CURRENT = 0x2000 MCL_FUTURE = 0x4000 MCL_ONFAULT = 0x8000 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 NFDBITS = 0x40 NL2 = 0x200 NL3 = 0x300 @@ -126,6 +147,10 @@ const ( NS_GET_USERNS = 0x2000b701 OLCUC = 0x4 ONLCR = 0x2 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d O_APPEND = 0x400 O_ASYNC = 0x2000 O_CLOEXEC = 0x80000 @@ -163,6 +188,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PPPIOCATTACH = 0x8004743d PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 PPPIOCCONNECT = 0x8004743a PPPIOCDETACH = 0x8004743c PPPIOCDISCONN = 0x20007439 @@ -190,6 +216,7 @@ const ( PPPIOCSPASS = 0x80107447 PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 PPPIOCXFERUNIT = 0x2000744e PROT_SAO = 0x10 PR_SET_PTRACER_ANY = 0xffffffffffffffff @@ -325,6 +352,7 @@ const ( SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -347,6 +375,7 @@ const ( SO_PEERCRED = 0x15 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x26 SO_RCVBUF = 0x8 SO_RCVBUFFORCE = 0x21 @@ -541,6 +570,9 @@ const ( WORDSIZE = 0x40 XCASE = 0x4000 XTABS = 0xc00 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index 0c05181935..a4da67edbb 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build riscv64 && linux // +build riscv64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 ECHOE = 0x10 ECHOK = 0x20 @@ -71,6 +74,8 @@ const ( EXTPROC = 0x10000 FF1 = 0x8000 FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d FLUSHO = 0x1000 FS_IOC_ENABLE_VERITY = 0x40806685 FS_IOC_GETFLAGS = 0x80086601 @@ -90,6 +95,9 @@ const ( F_SETOWN = 0x8 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 HUPCL = 0x400 ICANON = 0x2 IEXTEN = 0x8000 @@ -115,6 +123,19 @@ const ( MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 NFDBITS = 0x40 NLDLY = 0x100 NOFLSH = 0x80 @@ -124,6 +145,10 @@ const ( NS_GET_USERNS = 0xb701 OLCUC = 0x2 ONLCR = 0x4 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d O_APPEND = 0x400 O_ASYNC = 0x2000 O_CLOEXEC = 0x80000 @@ -161,6 +186,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PPPIOCATTACH = 0x4004743d PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 PPPIOCCONNECT = 0x4004743a PPPIOCDETACH = 0x4004743c PPPIOCDISCONN = 0x7439 @@ -188,6 +214,7 @@ const ( PPPIOCSPASS = 0x40107447 PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 PPPIOCXFERUNIT = 0x744e PR_SET_PTRACER_ANY = 0xffffffffffffffff RLIMIT_AS = 0x9 @@ -254,6 +281,7 @@ const ( SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -276,6 +304,7 @@ const ( SO_PEERCRED = 0x11 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x26 SO_RCVBUF = 0x8 SO_RCVBUFFORCE = 0x21 @@ -466,6 +495,9 @@ const ( WORDSIZE = 0x40 XCASE = 0x4 XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index 0b96bd462e..a7028e0efb 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build s390x && linux // +build s390x,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/_const.go package unix @@ -59,6 +60,8 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 ECHOE = 0x10 ECHOK = 0x20 @@ -71,6 +74,8 @@ const ( EXTPROC = 0x10000 FF1 = 0x8000 FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d FLUSHO = 0x1000 FS_IOC_ENABLE_VERITY = 0x40806685 FS_IOC_GETFLAGS = 0x80086601 @@ -90,6 +95,9 @@ const ( F_SETOWN = 0x8 F_UNLCK = 0x2 F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 HUPCL = 0x400 ICANON = 0x2 IEXTEN = 0x8000 @@ -115,6 +123,19 @@ const ( MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 NFDBITS = 0x40 NLDLY = 0x100 NOFLSH = 0x80 @@ -124,6 +145,10 @@ const ( NS_GET_USERNS = 0xb701 OLCUC = 0x2 ONLCR = 0x4 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d O_APPEND = 0x400 O_ASYNC = 0x2000 O_CLOEXEC = 0x80000 @@ -161,6 +186,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PPPIOCATTACH = 0x4004743d PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 PPPIOCCONNECT = 0x4004743a PPPIOCDETACH = 0x4004743c PPPIOCDISCONN = 0x7439 @@ -188,6 +214,7 @@ const ( PPPIOCSPASS = 0x40107447 PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 PPPIOCXFERUNIT = 0x744e PR_SET_PTRACER_ANY = 0xffffffffffffffff PTRACE_DISABLE_TE = 0x5010 @@ -204,6 +231,8 @@ const ( PTRACE_POKE_SYSTEM_CALL = 0x5008 PTRACE_PROT = 0x15 PTRACE_SINGLEBLOCK = 0xc + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 PTRACE_TE_ABORT_RAND = 0x5011 PT_ACR0 = 0x90 PT_ACR1 = 0x94 @@ -327,6 +356,7 @@ const ( SO_BROADCAST = 0x6 SO_BSDCOMPAT = 0xe SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 SO_CNX_ADVICE = 0x35 SO_COOKIE = 0x39 SO_DETACH_REUSEPORT_BPF = 0x44 @@ -349,6 +379,7 @@ const ( SO_PEERCRED = 0x11 SO_PEERGROUPS = 0x3b SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 SO_PROTOCOL = 0x26 SO_RCVBUF = 0x8 SO_RCVBUFFORCE = 0x21 @@ -539,6 +570,9 @@ const ( WORDSIZE = 0x40 XCASE = 0x4 XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go index bd5c305779..ed3b3286c1 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -1,10 +1,11 @@ // mkerrors.sh -Wall -Werror -static -I/tmp/include // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build sparc64 && linux // +build sparc64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go package unix @@ -62,6 +63,8 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 ECHOCTL = 0x200 ECHOE = 0x10 ECHOK = 0x20 @@ -75,6 +78,8 @@ const ( EXTPROC = 0x10000 FF1 = 0x8000 FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d FLUSHO = 0x1000 FS_IOC_ENABLE_VERITY = 0x80806685 FS_IOC_GETFLAGS = 0x40086601 @@ -94,6 +99,9 @@ const ( F_SETOWN = 0x6 F_UNLCK = 0x3 F_WRLCK = 0x2 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 HUPCL = 0x400 ICANON = 0x2 IEXTEN = 0x8000 @@ -120,6 +128,19 @@ const ( MCL_CURRENT = 0x2000 MCL_FUTURE = 0x4000 MCL_ONFAULT = 0x8000 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 NFDBITS = 0x40 NLDLY = 0x100 NOFLSH = 0x80 @@ -129,6 +150,10 @@ const ( NS_GET_USERNS = 0x2000b701 OLCUC = 0x2 ONLCR = 0x4 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d O_APPEND = 0x8 O_ASYNC = 0x40 O_CLOEXEC = 0x400000 @@ -166,6 +191,7 @@ const ( PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PPPIOCATTACH = 0x8004743d PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 PPPIOCCONNECT = 0x8004743a PPPIOCDETACH = 0x8004743c PPPIOCDISCONN = 0x20007439 @@ -193,6 +219,7 @@ const ( PPPIOCSPASS = 0x80107447 PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 PPPIOCXFERUNIT = 0x2000744e PR_SET_PTRACER_ANY = 0xffffffffffffffff PTRACE_GETFPAREGS = 0x14 @@ -320,6 +347,7 @@ const ( SO_BROADCAST = 0x20 SO_BSDCOMPAT = 0x400 SO_BUSY_POLL = 0x30 + SO_BUSY_POLL_BUDGET = 0x49 SO_CNX_ADVICE = 0x37 SO_COOKIE = 0x3b SO_DETACH_REUSEPORT_BPF = 0x47 @@ -342,6 +370,7 @@ const ( SO_PEERCRED = 0x40 SO_PEERGROUPS = 0x3d SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x48 SO_PROTOCOL = 0x1028 SO_RCVBUF = 0x1002 SO_RCVBUFFORCE = 0x100b @@ -529,6 +558,9 @@ const ( WORDSIZE = 0x40 XCASE = 0x4 XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 __TIOCFLUSH = 0x80047410 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go index 20f3a5799f..72f7420d20 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go @@ -1,6 +1,7 @@ // mkerrors.sh -m32 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && netbsd // +build 386,netbsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go index 90b8fcd29c..8d4eb0c080 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && netbsd // +build amd64,netbsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go index c5c03993b6..9eef9749f6 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go @@ -1,6 +1,7 @@ // mkerrors.sh -marm // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && netbsd // +build arm,netbsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go index 14dd3c1d1e..3b62ba192c 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && netbsd // +build arm64,netbsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go index c865a10df4..593cc0feff 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go @@ -1,6 +1,7 @@ // mkerrors.sh -m32 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && openbsd // +build 386,openbsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go index 9db6b2fb6e..25cb609481 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && openbsd // +build amd64,openbsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go index 7072526a64..a4e4c22314 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go @@ -1,6 +1,7 @@ // mkerrors.sh // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && openbsd // +build arm,openbsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go index ac5efbe5ac..90de7dfc33 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && openbsd // +build arm64,openbsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go index a74639a46f..f1154ff56f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64 && openbsd // +build mips64,openbsd // Code generated by cmd/cgo -godefs; DO NOT EDIT. diff --git a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go index 46e054ccb0..1afee6a089 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go @@ -1,6 +1,7 @@ // mkerrors.sh -m64 // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && solaris // +build amd64,solaris // Code generated by cmd/cgo -godefs; DO NOT EDIT. @@ -192,6 +193,12 @@ const ( CSTOPB = 0x40 CSUSP = 0x1a CSWTCH = 0x1a + DIOC = 0x6400 + DIOCGETB = 0x6402 + DIOCGETC = 0x6401 + DIOCGETP = 0x6408 + DIOCSETE = 0x6403 + DIOCSETP = 0x6409 DLT_AIRONET_HEADER = 0x78 DLT_APPLE_IP_OVER_IEEE1394 = 0x8a DLT_ARCNET = 0x7 @@ -290,6 +297,7 @@ const ( FF0 = 0x0 FF1 = 0x8000 FFDLY = 0x8000 + FIORDCHK = 0x6603 FLUSHALL = 0x1 FLUSHDATA = 0x0 FLUSHO = 0x2000 @@ -358,6 +366,7 @@ const ( HUPCL = 0x400 IBSHIFT = 0x10 ICANON = 0x2 + ICMP6_FILTER = 0x1 ICRNL = 0x100 IEXTEN = 0x8000 IFF_ADDRCONF = 0x80000 @@ -604,6 +613,7 @@ const ( IP_RECVPKTINFO = 0x1a IP_RECVRETOPTS = 0x6 IP_RECVSLLA = 0xa + IP_RECVTOS = 0xc IP_RECVTTL = 0xb IP_RETOPTS = 0x8 IP_REUSEADDR = 0x104 @@ -645,6 +655,14 @@ const ( MAP_SHARED = 0x1 MAP_TEXT = 0x400 MAP_TYPE = 0xf + MCAST_BLOCK_SOURCE = 0x2b + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x29 + MCAST_JOIN_SOURCE_GROUP = 0x2d + MCAST_LEAVE_GROUP = 0x2a + MCAST_LEAVE_SOURCE_GROUP = 0x2e + MCAST_UNBLOCK_SOURCE = 0x2c MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MSG_CTRUNC = 0x10 @@ -653,6 +671,7 @@ const ( MSG_DUPCTRL = 0x800 MSG_EOR = 0x8 MSG_MAXIOVLEN = 0x10 + MSG_NOSIGNAL = 0x200 MSG_NOTIFICATION = 0x100 MSG_OOB = 0x1 MSG_PEEK = 0x2 @@ -687,6 +706,8 @@ const ( O_APPEND = 0x8 O_CLOEXEC = 0x800000 O_CREAT = 0x100 + O_DIRECT = 0x2000000 + O_DIRECTORY = 0x1000000 O_DSYNC = 0x40 O_EXCL = 0x400 O_EXEC = 0x400000 @@ -725,7 +746,7 @@ const ( RLIMIT_FSIZE = 0x1 RLIMIT_NOFILE = 0x5 RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x3 + RLIM_INFINITY = 0xfffffffffffffffd RTAX_AUTHOR = 0x6 RTAX_BRD = 0x7 RTAX_DST = 0x0 @@ -1047,6 +1068,7 @@ const ( TCOON = 0x1 TCP_ABORT_THRESHOLD = 0x11 TCP_ANONPRIVBIND = 0x20 + TCP_CONGESTION = 0x25 TCP_CONN_ABORT_THRESHOLD = 0x13 TCP_CONN_NOTIFY_THRESHOLD = 0x12 TCP_CORK = 0x18 @@ -1076,6 +1098,8 @@ const ( TCSETSF = 0x5410 TCSETSW = 0x540f TCXONC = 0x5406 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOC = 0x5400 TIOCCBRK = 0x747a TIOCCDTR = 0x7478 diff --git a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go new file mode 100644 index 0000000000..fc7d0506f6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go @@ -0,0 +1,860 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +// Hand edited based on zerrors_linux_s390x.go +// TODO: auto-generate. + +package unix + +const ( + BRKINT = 0x0001 + CLOCK_MONOTONIC = 0x1 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x3 + CS8 = 0x0030 + CSIZE = 0x0030 + ECHO = 0x00000008 + ECHONL = 0x00000001 + FD_CLOEXEC = 0x01 + FD_CLOFORK = 0x02 + FNDELAY = 0x04 + F_CLOSFD = 9 + F_CONTROL_CVT = 13 + F_DUPFD = 0 + F_DUPFD2 = 8 + F_GETFD = 1 + F_GETFL = 259 + F_GETLK = 5 + F_GETOWN = 10 + F_OK = 0x0 + F_RDLCK = 1 + F_SETFD = 2 + F_SETFL = 4 + F_SETLK = 6 + F_SETLKW = 7 + F_SETOWN = 11 + F_SETTAG = 12 + F_UNLCK = 3 + F_WRLCK = 2 + FSTYPE_ZFS = 0xe9 //"Z" + FSTYPE_HFS = 0xc8 //"H" + FSTYPE_NFS = 0xd5 //"N" + FSTYPE_TFS = 0xe3 //"T" + FSTYPE_AUTOMOUNT = 0xc1 //"A" + IP6F_MORE_FRAG = 0x0001 + IP6F_OFF_MASK = 0xfff8 + IP6F_RESERVED_MASK = 0x0006 + IP6OPT_JUMBO = 0xc2 + IP6OPT_JUMBO_LEN = 6 + IP6OPT_MUTABLE = 0x20 + IP6OPT_NSAP_ADDR = 0xc3 + IP6OPT_PAD1 = 0x00 + IP6OPT_PADN = 0x01 + IP6OPT_ROUTER_ALERT = 0x05 + IP6OPT_TUNNEL_LIMIT = 0x04 + IP6OPT_TYPE_DISCARD = 0x40 + IP6OPT_TYPE_FORCEICMP = 0x80 + IP6OPT_TYPE_ICMP = 0xc0 + IP6OPT_TYPE_SKIP = 0x00 + IP6_ALERT_AN = 0x0002 + IP6_ALERT_MLD = 0x0000 + IP6_ALERT_RSVP = 0x0001 + IPPORT_RESERVED = 1024 + IPPORT_USERRESERVED = 5000 + IPPROTO_AH = 51 + SOL_AH = 51 + IPPROTO_DSTOPTS = 60 + SOL_DSTOPTS = 60 + IPPROTO_EGP = 8 + SOL_EGP = 8 + IPPROTO_ESP = 50 + SOL_ESP = 50 + IPPROTO_FRAGMENT = 44 + SOL_FRAGMENT = 44 + IPPROTO_GGP = 2 + SOL_GGP = 2 + IPPROTO_HOPOPTS = 0 + SOL_HOPOPTS = 0 + IPPROTO_ICMP = 1 + SOL_ICMP = 1 + IPPROTO_ICMPV6 = 58 + SOL_ICMPV6 = 58 + IPPROTO_IDP = 22 + SOL_IDP = 22 + IPPROTO_IP = 0 + SOL_IP = 0 + IPPROTO_IPV6 = 41 + SOL_IPV6 = 41 + IPPROTO_MAX = 256 + SOL_MAX = 256 + IPPROTO_NONE = 59 + SOL_NONE = 59 + IPPROTO_PUP = 12 + SOL_PUP = 12 + IPPROTO_RAW = 255 + SOL_RAW = 255 + IPPROTO_ROUTING = 43 + SOL_ROUTING = 43 + IPPROTO_TCP = 6 + SOL_TCP = 6 + IPPROTO_UDP = 17 + SOL_UDP = 17 + IPV6_ADDR_PREFERENCES = 32 + IPV6_CHECKSUM = 19 + IPV6_DONTFRAG = 29 + IPV6_DSTOPTS = 23 + IPV6_HOPLIMIT = 11 + IPV6_HOPOPTS = 22 + IPV6_JOIN_GROUP = 5 + IPV6_LEAVE_GROUP = 6 + IPV6_MULTICAST_HOPS = 9 + IPV6_MULTICAST_IF = 7 + IPV6_MULTICAST_LOOP = 4 + IPV6_NEXTHOP = 20 + IPV6_PATHMTU = 12 + IPV6_PKTINFO = 13 + IPV6_PREFER_SRC_CGA = 0x10 + IPV6_PREFER_SRC_COA = 0x02 + IPV6_PREFER_SRC_HOME = 0x01 + IPV6_PREFER_SRC_NONCGA = 0x20 + IPV6_PREFER_SRC_PUBLIC = 0x08 + IPV6_PREFER_SRC_TMP = 0x04 + IPV6_RECVDSTOPTS = 28 + IPV6_RECVHOPLIMIT = 14 + IPV6_RECVHOPOPTS = 26 + IPV6_RECVPATHMTU = 16 + IPV6_RECVPKTINFO = 15 + IPV6_RECVRTHDR = 25 + IPV6_RECVTCLASS = 31 + IPV6_RTHDR = 21 + IPV6_RTHDRDSTOPTS = 24 + IPV6_RTHDR_TYPE_0 = 0 + IPV6_TCLASS = 30 + IPV6_UNICAST_HOPS = 3 + IPV6_USE_MIN_MTU = 18 + IPV6_V6ONLY = 10 + IP_ADD_MEMBERSHIP = 5 + IP_ADD_SOURCE_MEMBERSHIP = 12 + IP_BLOCK_SOURCE = 10 + IP_DEFAULT_MULTICAST_LOOP = 1 + IP_DEFAULT_MULTICAST_TTL = 1 + IP_DROP_MEMBERSHIP = 6 + IP_DROP_SOURCE_MEMBERSHIP = 13 + IP_MAX_MEMBERSHIPS = 20 + IP_MULTICAST_IF = 7 + IP_MULTICAST_LOOP = 4 + IP_MULTICAST_TTL = 3 + IP_OPTIONS = 1 + IP_PKTINFO = 101 + IP_RECVPKTINFO = 102 + IP_TOS = 2 + IP_TTL = 3 + IP_UNBLOCK_SOURCE = 11 + ICANON = 0x0010 + ICMP6_FILTER = 0x26 + ICRNL = 0x0002 + IEXTEN = 0x0020 + IGNBRK = 0x0004 + IGNCR = 0x0008 + INLCR = 0x0020 + ISIG = 0x0040 + ISTRIP = 0x0080 + IXON = 0x0200 + IXOFF = 0x0100 + LOCK_SH = 0x1 // Not exist on zOS + LOCK_EX = 0x2 // Not exist on zOS + LOCK_NB = 0x4 // Not exist on zOS + LOCK_UN = 0x8 // Not exist on zOS + POLLIN = 0x0003 + POLLOUT = 0x0004 + POLLPRI = 0x0010 + POLLERR = 0x0020 + POLLHUP = 0x0040 + POLLNVAL = 0x0080 + PROT_READ = 0x1 // mmap - page can be read + PROT_WRITE = 0x2 // page can be written + PROT_NONE = 0x4 // can't be accessed + PROT_EXEC = 0x8 // can be executed + MAP_PRIVATE = 0x1 // changes are private + MAP_SHARED = 0x2 // changes are shared + MAP_FIXED = 0x4 // place exactly + MCAST_JOIN_GROUP = 40 + MCAST_LEAVE_GROUP = 41 + MCAST_JOIN_SOURCE_GROUP = 42 + MCAST_LEAVE_SOURCE_GROUP = 43 + MCAST_BLOCK_SOURCE = 44 + MCAST_UNBLOCK_SOURCE = 45 + MS_SYNC = 0x1 // msync - synchronous writes + MS_ASYNC = 0x2 // asynchronous writes + MS_INVALIDATE = 0x4 // invalidate mappings + MTM_RDONLY = 0x80000000 + MTM_RDWR = 0x40000000 + MTM_UMOUNT = 0x10000000 + MTM_IMMED = 0x08000000 + MTM_FORCE = 0x04000000 + MTM_DRAIN = 0x02000000 + MTM_RESET = 0x01000000 + MTM_SAMEMODE = 0x00100000 + MTM_UNQSEFORCE = 0x00040000 + MTM_NOSUID = 0x00000400 + MTM_SYNCHONLY = 0x00000200 + MTM_REMOUNT = 0x00000100 + MTM_NOSECURITY = 0x00000080 + NFDBITS = 0x20 + O_ACCMODE = 0x03 + O_APPEND = 0x08 + O_ASYNCSIG = 0x0200 + O_CREAT = 0x80 + O_EXCL = 0x40 + O_GETFL = 0x0F + O_LARGEFILE = 0x0400 + O_NONBLOCK = 0x04 + O_RDONLY = 0x02 + O_RDWR = 0x03 + O_SYNC = 0x0100 + O_TRUNC = 0x10 + O_WRONLY = 0x01 + O_NOCTTY = 0x20 + OPOST = 0x0001 + ONLCR = 0x0004 + PARENB = 0x0200 + PARMRK = 0x0400 + QUERYCVT = 3 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 // RUSAGE_THREAD unsupported on z/OS + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + SETAUTOCVTALL = 5 + SETAUTOCVTON = 2 + SETCVTALL = 4 + SETCVTOFF = 0 + SETCVTON = 1 + AF_APPLETALK = 16 + AF_CCITT = 10 + AF_CHAOS = 5 + AF_DATAKIT = 9 + AF_DLI = 13 + AF_ECMA = 8 + AF_HYLINK = 15 + AF_IMPLINK = 3 + AF_INET = 2 + AF_INET6 = 19 + AF_INTF = 20 + AF_IUCV = 17 + AF_LAT = 14 + AF_LINK = 18 + AF_MAX = 30 + AF_NBS = 7 + AF_NDD = 23 + AF_NETWARE = 22 + AF_NS = 6 + AF_PUP = 4 + AF_RIF = 21 + AF_ROUTE = 20 + AF_SNA = 11 + AF_UNIX = 1 + AF_UNSPEC = 0 + IBMTCP_IMAGE = 1 + MSG_ACK_EXPECTED = 0x10 + MSG_ACK_GEN = 0x40 + MSG_ACK_TIMEOUT = 0x20 + MSG_CONNTERM = 0x80 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_EOF = 0x8000 + MSG_EOR = 0x8 + MSG_MAXIOVLEN = 16 + MSG_NONBLOCK = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + PRIO_PROCESS = 1 + PRIO_PGRP = 2 + PRIO_USER = 3 + RLIMIT_CPU = 0 + RLIMIT_FSIZE = 1 + RLIMIT_DATA = 2 + RLIMIT_STACK = 3 + RLIMIT_CORE = 4 + RLIMIT_AS = 5 + RLIMIT_NOFILE = 6 + RLIMIT_MEMLIMIT = 7 + RLIM_INFINITY = 2147483647 + SCM_RIGHTS = 0x01 + SF_CLOSE = 0x00000002 + SF_REUSE = 0x00000001 + SHUT_RD = 0 + SHUT_RDWR = 2 + SHUT_WR = 1 + SOCK_CONN_DGRAM = 6 + SOCK_DGRAM = 2 + SOCK_RAW = 3 + SOCK_RDM = 4 + SOCK_SEQPACKET = 5 + SOCK_STREAM = 1 + SOL_SOCKET = 0xffff + SOMAXCONN = 10 + SO_ACCEPTCONN = 0x0002 + SO_ACCEPTECONNABORTED = 0x0006 + SO_ACKNOW = 0x7700 + SO_BROADCAST = 0x0020 + SO_BULKMODE = 0x8000 + SO_CKSUMRECV = 0x0800 + SO_CLOSE = 0x01 + SO_CLUSTERCONNTYPE = 0x00004001 + SO_CLUSTERCONNTYPE_INTERNAL = 8 + SO_CLUSTERCONNTYPE_NOCONN = 0 + SO_CLUSTERCONNTYPE_NONE = 1 + SO_CLUSTERCONNTYPE_SAME_CLUSTER = 2 + SO_CLUSTERCONNTYPE_SAME_IMAGE = 4 + SO_DEBUG = 0x0001 + SO_DONTROUTE = 0x0010 + SO_ERROR = 0x1007 + SO_IGNOREINCOMINGPUSH = 0x1 + SO_IGNORESOURCEVIPA = 0x0002 + SO_KEEPALIVE = 0x0008 + SO_LINGER = 0x0080 + SO_NONBLOCKLOCAL = 0x8001 + SO_NOREUSEADDR = 0x1000 + SO_OOBINLINE = 0x0100 + SO_OPTACK = 0x8004 + SO_OPTMSS = 0x8003 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x0004 + SO_REUSEPORT = 0x0200 + SO_SECINFO = 0x00004002 + SO_SET = 0x0200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TYPE = 0x1008 + SO_UNSET = 0x0400 + SO_USELOOPBACK = 0x0040 + SO_USE_IFBUFS = 0x0400 + S_ISUID = 0x0800 + S_ISGID = 0x0400 + S_ISVTX = 0x0200 + S_IRUSR = 0x0100 + S_IWUSR = 0x0080 + S_IXUSR = 0x0040 + S_IRWXU = 0x01C0 + S_IRGRP = 0x0020 + S_IWGRP = 0x0010 + S_IXGRP = 0x0008 + S_IRWXG = 0x0038 + S_IROTH = 0x0004 + S_IWOTH = 0x0002 + S_IXOTH = 0x0001 + S_IRWXO = 0x0007 + S_IREAD = S_IRUSR + S_IWRITE = S_IWUSR + S_IEXEC = S_IXUSR + S_IFDIR = 0x01000000 + S_IFCHR = 0x02000000 + S_IFREG = 0x03000000 + S_IFFIFO = 0x04000000 + S_IFIFO = 0x04000000 + S_IFLNK = 0x05000000 + S_IFBLK = 0x06000000 + S_IFSOCK = 0x07000000 + S_IFVMEXTL = 0xFE000000 + S_IFVMEXTL_EXEC = 0x00010000 + S_IFVMEXTL_DATA = 0x00020000 + S_IFVMEXTL_MEL = 0x00030000 + S_IFEXTL = 0x00000001 + S_IFPROGCTL = 0x00000002 + S_IFAPFCTL = 0x00000004 + S_IFNOSHARE = 0x00000008 + S_IFSHARELIB = 0x00000010 + S_IFMT = 0xFF000000 + S_IFMST = 0x00FF0000 + TCP_KEEPALIVE = 0x8 + TCP_NODELAY = 0x1 + TCP_INFO = 0xb + TCP_USER_TIMEOUT = 0x1 + TIOCGWINSZ = 0x4008a368 + TIOCSWINSZ = 0x8008a367 + TIOCSBRK = 0x2000a77b + TIOCCBRK = 0x2000a77a + TIOCSTI = 0x8001a772 + TIOCGPGRP = 0x4004a777 // _IOR(167, 119, int) + TCSANOW = 0 + TCSETS = 0 // equivalent to TCSANOW for tcsetattr + TCSADRAIN = 1 + TCSETSW = 1 // equivalent to TCSADRAIN for tcsetattr + TCSAFLUSH = 2 + TCSETSF = 2 // equivalent to TCSAFLUSH for tcsetattr + TCGETS = 3 // not defined in ioctl.h -- zos golang only + TCIFLUSH = 0 + TCOFLUSH = 1 + TCIOFLUSH = 2 + TCOOFF = 0 + TCOON = 1 + TCIOFF = 2 + TCION = 3 + TIOCSPGRP = 0x8004a776 + TIOCNOTTY = 0x2000a771 + TIOCEXCL = 0x2000a70d + TIOCNXCL = 0x2000a70e + TIOCGETD = 0x4004a700 + TIOCSETD = 0x8004a701 + TIOCPKT = 0x8004a770 + TIOCSTOP = 0x2000a76f + TIOCSTART = 0x2000a76e + TIOCUCNTL = 0x8004a766 + TIOCREMOTE = 0x8004a769 + TIOCMGET = 0x4004a76a + TIOCMSET = 0x8004a76d + TIOCMBIC = 0x8004a76b + TIOCMBIS = 0x8004a76c + VINTR = 0 + VQUIT = 1 + VERASE = 2 + VKILL = 3 + VEOF = 4 + VEOL = 5 + VMIN = 6 + VSTART = 7 + VSTOP = 8 + VSUSP = 9 + VTIME = 10 + WCONTINUED = 0x4 + WNOHANG = 0x1 + WUNTRACED = 0x2 + _BPX_SWAP = 1 + _BPX_NONSWAP = 2 + MCL_CURRENT = 1 // for Linux compatibility -- no zos semantics + MCL_FUTURE = 2 // for Linux compatibility -- no zos semantics + MCL_ONFAULT = 3 // for Linux compatibility -- no zos semantics + MADV_NORMAL = 0 // for Linux compatibility -- no zos semantics + MADV_RANDOM = 1 // for Linux compatibility -- no zos semantics + MADV_SEQUENTIAL = 2 // for Linux compatibility -- no zos semantics + MADV_WILLNEED = 3 // for Linux compatibility -- no zos semantics + MADV_REMOVE = 4 // for Linux compatibility -- no zos semantics + MADV_DONTFORK = 5 // for Linux compatibility -- no zos semantics + MADV_DOFORK = 6 // for Linux compatibility -- no zos semantics + MADV_HWPOISON = 7 // for Linux compatibility -- no zos semantics + MADV_MERGEABLE = 8 // for Linux compatibility -- no zos semantics + MADV_UNMERGEABLE = 9 // for Linux compatibility -- no zos semantics + MADV_SOFT_OFFLINE = 10 // for Linux compatibility -- no zos semantics + MADV_HUGEPAGE = 11 // for Linux compatibility -- no zos semantics + MADV_NOHUGEPAGE = 12 // for Linux compatibility -- no zos semantics + MADV_DONTDUMP = 13 // for Linux compatibility -- no zos semantics + MADV_DODUMP = 14 // for Linux compatibility -- no zos semantics + MADV_FREE = 15 // for Linux compatibility -- no zos semantics + MADV_WIPEONFORK = 16 // for Linux compatibility -- no zos semantics + MADV_KEEPONFORK = 17 // for Linux compatibility -- no zos semantics + AT_SYMLINK_NOFOLLOW = 1 // for Unix compatibility -- no zos semantics + AT_FDCWD = 2 // for Unix compatibility -- no zos semantics +) + +const ( + EDOM = Errno(1) + ERANGE = Errno(2) + EACCES = Errno(111) + EAGAIN = Errno(112) + EBADF = Errno(113) + EBUSY = Errno(114) + ECHILD = Errno(115) + EDEADLK = Errno(116) + EEXIST = Errno(117) + EFAULT = Errno(118) + EFBIG = Errno(119) + EINTR = Errno(120) + EINVAL = Errno(121) + EIO = Errno(122) + EISDIR = Errno(123) + EMFILE = Errno(124) + EMLINK = Errno(125) + ENAMETOOLONG = Errno(126) + ENFILE = Errno(127) + ENODEV = Errno(128) + ENOENT = Errno(129) + ENOEXEC = Errno(130) + ENOLCK = Errno(131) + ENOMEM = Errno(132) + ENOSPC = Errno(133) + ENOSYS = Errno(134) + ENOTDIR = Errno(135) + ENOTEMPTY = Errno(136) + ENOTTY = Errno(137) + ENXIO = Errno(138) + EPERM = Errno(139) + EPIPE = Errno(140) + EROFS = Errno(141) + ESPIPE = Errno(142) + ESRCH = Errno(143) + EXDEV = Errno(144) + E2BIG = Errno(145) + ELOOP = Errno(146) + EILSEQ = Errno(147) + ENODATA = Errno(148) + EOVERFLOW = Errno(149) + EMVSNOTUP = Errno(150) + ECMSSTORAGE = Errno(151) + EMVSDYNALC = Errno(151) + EMVSCVAF = Errno(152) + EMVSCATLG = Errno(153) + ECMSINITIAL = Errno(156) + EMVSINITIAL = Errno(156) + ECMSERR = Errno(157) + EMVSERR = Errno(157) + EMVSPARM = Errno(158) + ECMSPFSFILE = Errno(159) + EMVSPFSFILE = Errno(159) + EMVSBADCHAR = Errno(160) + ECMSPFSPERM = Errno(162) + EMVSPFSPERM = Errno(162) + EMVSSAFEXTRERR = Errno(163) + EMVSSAF2ERR = Errno(164) + EMVSTODNOTSET = Errno(165) + EMVSPATHOPTS = Errno(166) + EMVSNORTL = Errno(167) + EMVSEXPIRE = Errno(168) + EMVSPASSWORD = Errno(169) + EMVSWLMERROR = Errno(170) + EMVSCPLERROR = Errno(171) + EMVSARMERROR = Errno(172) + ELENOFORK = Errno(200) + ELEMSGERR = Errno(201) + EFPMASKINV = Errno(202) + EFPMODEINV = Errno(203) + EBUFLEN = Errno(227) + EEXTLINK = Errno(228) + ENODD = Errno(229) + ECMSESMERR = Errno(230) + ECPERR = Errno(231) + ELEMULTITHREAD = Errno(232) + ELEFENCE = Errno(244) + EBADDATA = Errno(245) + EUNKNOWN = Errno(246) + ENOTSUP = Errno(247) + EBADNAME = Errno(248) + ENOTSAFE = Errno(249) + ELEMULTITHREADFORK = Errno(257) + ECUNNOENV = Errno(258) + ECUNNOCONV = Errno(259) + ECUNNOTALIGNED = Errno(260) + ECUNERR = Errno(262) + EIBMBADCALL = Errno(1000) + EIBMBADPARM = Errno(1001) + EIBMSOCKOUTOFRANGE = Errno(1002) + EIBMSOCKINUSE = Errno(1003) + EIBMIUCVERR = Errno(1004) + EOFFLOADboxERROR = Errno(1005) + EOFFLOADboxRESTART = Errno(1006) + EOFFLOADboxDOWN = Errno(1007) + EIBMCONFLICT = Errno(1008) + EIBMCANCELLED = Errno(1009) + EIBMBADTCPNAME = Errno(1011) + ENOTBLK = Errno(1100) + ETXTBSY = Errno(1101) + EWOULDBLOCK = Errno(1102) + EINPROGRESS = Errno(1103) + EALREADY = Errno(1104) + ENOTSOCK = Errno(1105) + EDESTADDRREQ = Errno(1106) + EMSGSIZE = Errno(1107) + EPROTOTYPE = Errno(1108) + ENOPROTOOPT = Errno(1109) + EPROTONOSUPPORT = Errno(1110) + ESOCKTNOSUPPORT = Errno(1111) + EOPNOTSUPP = Errno(1112) + EPFNOSUPPORT = Errno(1113) + EAFNOSUPPORT = Errno(1114) + EADDRINUSE = Errno(1115) + EADDRNOTAVAIL = Errno(1116) + ENETDOWN = Errno(1117) + ENETUNREACH = Errno(1118) + ENETRESET = Errno(1119) + ECONNABORTED = Errno(1120) + ECONNRESET = Errno(1121) + ENOBUFS = Errno(1122) + EISCONN = Errno(1123) + ENOTCONN = Errno(1124) + ESHUTDOWN = Errno(1125) + ETOOMANYREFS = Errno(1126) + ETIMEDOUT = Errno(1127) + ECONNREFUSED = Errno(1128) + EHOSTDOWN = Errno(1129) + EHOSTUNREACH = Errno(1130) + EPROCLIM = Errno(1131) + EUSERS = Errno(1132) + EDQUOT = Errno(1133) + ESTALE = Errno(1134) + EREMOTE = Errno(1135) + ENOSTR = Errno(1136) + ETIME = Errno(1137) + ENOSR = Errno(1138) + ENOMSG = Errno(1139) + EBADMSG = Errno(1140) + EIDRM = Errno(1141) + ENONET = Errno(1142) + ERREMOTE = Errno(1143) + ENOLINK = Errno(1144) + EADV = Errno(1145) + ESRMNT = Errno(1146) + ECOMM = Errno(1147) + EPROTO = Errno(1148) + EMULTIHOP = Errno(1149) + EDOTDOT = Errno(1150) + EREMCHG = Errno(1151) + ECANCELED = Errno(1152) + EINTRNODATA = Errno(1159) + ENOREUSE = Errno(1160) + ENOMOVE = Errno(1161) +) + +// Signals +const ( + SIGHUP = Signal(1) + SIGINT = Signal(2) + SIGABRT = Signal(3) + SIGILL = Signal(4) + SIGPOLL = Signal(5) + SIGURG = Signal(6) + SIGSTOP = Signal(7) + SIGFPE = Signal(8) + SIGKILL = Signal(9) + SIGBUS = Signal(10) + SIGSEGV = Signal(11) + SIGSYS = Signal(12) + SIGPIPE = Signal(13) + SIGALRM = Signal(14) + SIGTERM = Signal(15) + SIGUSR1 = Signal(16) + SIGUSR2 = Signal(17) + SIGABND = Signal(18) + SIGCONT = Signal(19) + SIGCHLD = Signal(20) + SIGTTIN = Signal(21) + SIGTTOU = Signal(22) + SIGIO = Signal(23) + SIGQUIT = Signal(24) + SIGTSTP = Signal(25) + SIGTRAP = Signal(26) + SIGIOERR = Signal(27) + SIGWINCH = Signal(28) + SIGXCPU = Signal(29) + SIGXFSZ = Signal(30) + SIGVTALRM = Signal(31) + SIGPROF = Signal(32) + SIGDANGER = Signal(33) + SIGTHSTOP = Signal(34) + SIGTHCONT = Signal(35) + SIGTRACE = Signal(37) + SIGDCE = Signal(38) + SIGDUMP = Signal(39) +) + +// Error table +var errorList = [...]struct { + num Errno + name string + desc string +}{ + {1, "EDC5001I", "A domain error occurred."}, + {2, "EDC5002I", "A range error occurred."}, + {111, "EDC5111I", "Permission denied."}, + {112, "EDC5112I", "Resource temporarily unavailable."}, + {113, "EDC5113I", "Bad file descriptor."}, + {114, "EDC5114I", "Resource busy."}, + {115, "EDC5115I", "No child processes."}, + {116, "EDC5116I", "Resource deadlock avoided."}, + {117, "EDC5117I", "File exists."}, + {118, "EDC5118I", "Incorrect address."}, + {119, "EDC5119I", "File too large."}, + {120, "EDC5120I", "Interrupted function call."}, + {121, "EDC5121I", "Invalid argument."}, + {122, "EDC5122I", "Input/output error."}, + {123, "EDC5123I", "Is a directory."}, + {124, "EDC5124I", "Too many open files."}, + {125, "EDC5125I", "Too many links."}, + {126, "EDC5126I", "Filename too long."}, + {127, "EDC5127I", "Too many open files in system."}, + {128, "EDC5128I", "No such device."}, + {129, "EDC5129I", "No such file or directory."}, + {130, "EDC5130I", "Exec format error."}, + {131, "EDC5131I", "No locks available."}, + {132, "EDC5132I", "Not enough memory."}, + {133, "EDC5133I", "No space left on device."}, + {134, "EDC5134I", "Function not implemented."}, + {135, "EDC5135I", "Not a directory."}, + {136, "EDC5136I", "Directory not empty."}, + {137, "EDC5137I", "Inappropriate I/O control operation."}, + {138, "EDC5138I", "No such device or address."}, + {139, "EDC5139I", "Operation not permitted."}, + {140, "EDC5140I", "Broken pipe."}, + {141, "EDC5141I", "Read-only file system."}, + {142, "EDC5142I", "Invalid seek."}, + {143, "EDC5143I", "No such process."}, + {144, "EDC5144I", "Improper link."}, + {145, "EDC5145I", "The parameter list is too long, or the message to receive was too large for the buffer."}, + {146, "EDC5146I", "Too many levels of symbolic links."}, + {147, "EDC5147I", "Illegal byte sequence."}, + {148, "", ""}, + {149, "EDC5149I", "Value Overflow Error."}, + {150, "EDC5150I", "UNIX System Services is not active."}, + {151, "EDC5151I", "Dynamic allocation error."}, + {152, "EDC5152I", "Common VTOC access facility (CVAF) error."}, + {153, "EDC5153I", "Catalog obtain error."}, + {156, "EDC5156I", "Process initialization error."}, + {157, "EDC5157I", "An internal error has occurred."}, + {158, "EDC5158I", "Bad parameters were passed to the service."}, + {159, "EDC5159I", "The Physical File System encountered a permanent file error."}, + {160, "EDC5160I", "Bad character in environment variable name."}, + {162, "EDC5162I", "The Physical File System encountered a system error."}, + {163, "EDC5163I", "SAF/RACF extract error."}, + {164, "EDC5164I", "SAF/RACF error."}, + {165, "EDC5165I", "System TOD clock not set."}, + {166, "EDC5166I", "Access mode argument on function call conflicts with PATHOPTS parameter on JCL DD statement."}, + {167, "EDC5167I", "Access to the UNIX System Services version of the C RTL is denied."}, + {168, "EDC5168I", "Password has expired."}, + {169, "EDC5169I", "Password is invalid."}, + {170, "EDC5170I", "An error was encountered with WLM."}, + {171, "EDC5171I", "An error was encountered with CPL."}, + {172, "EDC5172I", "An error was encountered with Application Response Measurement (ARM) component."}, + {200, "EDC5200I", "The application contains a Language Environment member language that cannot tolerate a fork()."}, + {201, "EDC5201I", "The Language Environment message file was not found in the hierarchical file system."}, + {202, "EDC5202E", "DLL facilities are not supported under SPC environment."}, + {203, "EDC5203E", "DLL facilities are not supported under POSIX environment."}, + {227, "EDC5227I", "Buffer is not long enough to contain a path definition"}, + {228, "EDC5228I", "The file referred to is an external link"}, + {229, "EDC5229I", "No path definition for ddname in effect"}, + {230, "EDC5230I", "ESM error."}, + {231, "EDC5231I", "CP or the external security manager had an error"}, + {232, "EDC5232I", "The function failed because it was invoked from a multithread environment."}, + {244, "EDC5244I", "The program, module or DLL is not supported in this environment."}, + {245, "EDC5245I", "Data is not valid."}, + {246, "EDC5246I", "Unknown system state."}, + {247, "EDC5247I", "Operation not supported."}, + {248, "EDC5248I", "The object name specified is not correct."}, + {249, "EDC5249I", "The function is not allowed."}, + {257, "EDC5257I", "Function cannot be called in the child process of a fork() from a multithreaded process until exec() is called."}, + {258, "EDC5258I", "A CUN_RS_NO_UNI_ENV error was issued by Unicode Services."}, + {259, "EDC5259I", "A CUN_RS_NO_CONVERSION error was issued by Unicode Services."}, + {260, "EDC5260I", "A CUN_RS_TABLE_NOT_ALIGNED error was issued by Unicode Services."}, + {262, "EDC5262I", "An iconv() function encountered an unexpected error while using Unicode Services."}, + {1000, "EDC8000I", "A bad socket-call constant was found in the IUCV header."}, + {1001, "EDC8001I", "An error was found in the IUCV header."}, + {1002, "EDC8002I", "A socket descriptor is out of range."}, + {1003, "EDC8003I", "A socket descriptor is in use."}, + {1004, "EDC8004I", "Request failed because of an IUCV error."}, + {1005, "EDC8005I", "Offload box error."}, + {1006, "EDC8006I", "Offload box restarted."}, + {1007, "EDC8007I", "Offload box down."}, + {1008, "EDC8008I", "Already a conflicting call outstanding on socket."}, + {1009, "EDC8009I", "Request cancelled using a SOCKcallCANCEL request."}, + {1011, "EDC8011I", "A name of a PFS was specified that either is not configured or is not a Sockets PFS."}, + {1100, "EDC8100I", "Block device required."}, + {1101, "EDC8101I", "Text file busy."}, + {1102, "EDC8102I", "Operation would block."}, + {1103, "EDC8103I", "Operation now in progress."}, + {1104, "EDC8104I", "Connection already in progress."}, + {1105, "EDC8105I", "Socket operation on non-socket."}, + {1106, "EDC8106I", "Destination address required."}, + {1107, "EDC8107I", "Message too long."}, + {1108, "EDC8108I", "Protocol wrong type for socket."}, + {1109, "EDC8109I", "Protocol not available."}, + {1110, "EDC8110I", "Protocol not supported."}, + {1111, "EDC8111I", "Socket type not supported."}, + {1112, "EDC8112I", "Operation not supported on socket."}, + {1113, "EDC8113I", "Protocol family not supported."}, + {1114, "EDC8114I", "Address family not supported."}, + {1115, "EDC8115I", "Address already in use."}, + {1116, "EDC8116I", "Address not available."}, + {1117, "EDC8117I", "Network is down."}, + {1118, "EDC8118I", "Network is unreachable."}, + {1119, "EDC8119I", "Network dropped connection on reset."}, + {1120, "EDC8120I", "Connection ended abnormally."}, + {1121, "EDC8121I", "Connection reset."}, + {1122, "EDC8122I", "No buffer space available."}, + {1123, "EDC8123I", "Socket already connected."}, + {1124, "EDC8124I", "Socket not connected."}, + {1125, "EDC8125I", "Can't send after socket shutdown."}, + {1126, "EDC8126I", "Too many references; can't splice."}, + {1127, "EDC8127I", "Connection timed out."}, + {1128, "EDC8128I", "Connection refused."}, + {1129, "EDC8129I", "Host is not available."}, + {1130, "EDC8130I", "Host cannot be reached."}, + {1131, "EDC8131I", "Too many processes."}, + {1132, "EDC8132I", "Too many users."}, + {1133, "EDC8133I", "Disk quota exceeded."}, + {1134, "EDC8134I", "Stale file handle."}, + {1135, "", ""}, + {1136, "EDC8136I", "File is not a STREAM."}, + {1137, "EDC8137I", "STREAMS ioctl() timeout."}, + {1138, "EDC8138I", "No STREAMS resources."}, + {1139, "EDC8139I", "The message identified by set_id and msg_id is not in the message catalog."}, + {1140, "EDC8140I", "Bad message."}, + {1141, "EDC8141I", "Identifier removed."}, + {1142, "", ""}, + {1143, "", ""}, + {1144, "EDC8144I", "The link has been severed."}, + {1145, "", ""}, + {1146, "", ""}, + {1147, "", ""}, + {1148, "EDC8148I", "Protocol error."}, + {1149, "EDC8149I", "Multihop not allowed."}, + {1150, "", ""}, + {1151, "", ""}, + {1152, "EDC8152I", "The asynchronous I/O request has been canceled."}, + {1159, "EDC8159I", "Function call was interrupted before any data was received."}, + {1160, "EDC8160I", "Socket reuse is not supported."}, + {1161, "EDC8161I", "The file system cannot currently be moved."}, +} + +// Signal table +var signalList = [...]struct { + num Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGABT", "aborted"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGPOLL", "pollable event"}, + {6, "SIGURG", "urgent I/O condition"}, + {7, "SIGSTOP", "stop process"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad argument to routine"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGABND", "abend"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGQUIT", "quit"}, + {25, "SIGTSTP", "stopped"}, + {26, "SIGTRAP", "trace/breakpoint trap"}, + {27, "SIGIOER", "I/O error"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGXCPU", "CPU time limit exceeded"}, + {30, "SIGXFSZ", "file size limit exceeded"}, + {31, "SIGVTALRM", "virtual timer expired"}, + {32, "SIGPROF", "profiling timer expired"}, + {33, "SIGDANGER", "danger"}, + {34, "SIGTHSTOP", "stop thread"}, + {35, "SIGTHCONT", "continue thread"}, + {37, "SIGTRACE", "trace"}, + {38, "", "DCE"}, + {39, "SIGDUMP", "dump"}, +} diff --git a/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go index 89c5920e0c..bd001a6e1c 100644 --- a/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go @@ -1,5 +1,6 @@ // Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT. +//go:build linux && (arm || arm64) // +build linux // +build arm arm64 diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go index 24b841eec5..c34d0639be 100644 --- a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go @@ -1,5 +1,6 @@ // Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT. +//go:build linux && (mips || mips64) // +build linux // +build mips mips64 diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go index 47b0489565..3ccf0c0c4a 100644 --- a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go @@ -1,5 +1,6 @@ // Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT. +//go:build linux && (mipsle || mips64le) // +build linux // +build mipsle mips64le diff --git a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go index ea5d9cb536..7d65857004 100644 --- a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go @@ -1,5 +1,6 @@ // Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT. +//go:build linux && (386 || amd64) // +build linux // +build 386 amd64 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go index ed657ff1bc..91a23cc728 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go @@ -1,6 +1,7 @@ // go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build aix && ppc // +build aix,ppc package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go index 664b293b43..33c2609b8b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go @@ -1,6 +1,7 @@ // go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build aix && ppc64 // +build aix,ppc64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go index 4b3a8ad7be..8b737fa971 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go @@ -1,8 +1,8 @@ // go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go // Code generated by the command above; see README.md. DO NOT EDIT. -// +build aix,ppc64 -// +build !gccgo +//go:build aix && ppc64 && gc +// +build aix,ppc64,gc package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go index cde4dbc5f5..3c260917ed 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go @@ -1,8 +1,8 @@ // go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go // Code generated by the command above; see README.md. DO NOT EDIT. -// +build aix,ppc64 -// +build gccgo +//go:build aix && ppc64 && gccgo +// +build aix,ppc64,gccgo package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go deleted file mode 100644 index 23e94d3663..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go +++ /dev/null @@ -1,1809 +0,0 @@ -// go run mksyscall.go -l32 -tags darwin,386,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.1_11.go syscall_darwin_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,386,!go1.12 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go deleted file mode 100644 index e263fbdb8b..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go +++ /dev/null @@ -1,41 +0,0 @@ -// go run mksyscall.go -l32 -tags darwin,386,go1.13 syscall_darwin.1_13.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,386,go1.13 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_closedir_trampoline() - -//go:linkname libc_closedir libc_closedir -//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { - r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - res = Errno(r0) - return -} - -func libc_readdir_r_trampoline() - -//go:linkname libc_readdir_r libc_readdir_r -//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s deleted file mode 100644 index 00da1ebfca..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s +++ /dev/null @@ -1,12 +0,0 @@ -// go run mkasm_darwin.go 386 -// Code generated by the command above; DO NOT EDIT. - -// +build go1.13 - -#include "textflag.h" -TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) -TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) -TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go deleted file mode 100644 index e2ffb3bed3..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go +++ /dev/null @@ -1,2497 +0,0 @@ -// go run mksyscall.go -l32 -tags darwin,386,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,386,go1.12 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getgroups_trampoline() - -//go:linkname libc_getgroups libc_getgroups -//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setgroups_trampoline() - -//go:linkname libc_setgroups libc_setgroups -//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_wait4_trampoline() - -//go:linkname libc_wait4 libc_wait4 -//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_accept_trampoline() - -//go:linkname libc_accept libc_accept -//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_bind_trampoline() - -//go:linkname libc_bind libc_bind -//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_connect_trampoline() - -//go:linkname libc_connect libc_connect -//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_socket_trampoline() - -//go:linkname libc_socket libc_socket -//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getsockopt_trampoline() - -//go:linkname libc_getsockopt libc_getsockopt -//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setsockopt_trampoline() - -//go:linkname libc_setsockopt libc_setsockopt -//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getpeername_trampoline() - -//go:linkname libc_getpeername libc_getpeername -//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getsockname_trampoline() - -//go:linkname libc_getsockname libc_getsockname -//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_shutdown_trampoline() - -//go:linkname libc_shutdown libc_shutdown -//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_socketpair_trampoline() - -//go:linkname libc_socketpair libc_socketpair -//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_recvfrom_trampoline() - -//go:linkname libc_recvfrom libc_recvfrom -//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_sendto_trampoline() - -//go:linkname libc_sendto libc_sendto -//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_recvmsg_trampoline() - -//go:linkname libc_recvmsg libc_recvmsg -//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_sendmsg_trampoline() - -//go:linkname libc_sendmsg libc_sendmsg -//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_kevent_trampoline() - -//go:linkname libc_kevent libc_kevent -//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_utimes_trampoline() - -//go:linkname libc_utimes libc_utimes -//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_futimes_trampoline() - -//go:linkname libc_futimes libc_futimes -//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_poll_trampoline() - -//go:linkname libc_poll libc_poll -//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_madvise_trampoline() - -//go:linkname libc_madvise libc_madvise -//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mlock_trampoline() - -//go:linkname libc_mlock libc_mlock -//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mlockall_trampoline() - -//go:linkname libc_mlockall libc_mlockall -//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mprotect_trampoline() - -//go:linkname libc_mprotect libc_mprotect -//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_msync_trampoline() - -//go:linkname libc_msync libc_msync -//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_munlock_trampoline() - -//go:linkname libc_munlock libc_munlock -//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_munlockall_trampoline() - -//go:linkname libc_munlockall libc_munlockall -//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getattrlist_trampoline() - -//go:linkname libc_getattrlist libc_getattrlist -//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_pipe_trampoline() - -//go:linkname libc_pipe libc_pipe -//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getxattr_trampoline() - -//go:linkname libc_getxattr libc_getxattr -//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fgetxattr_trampoline() - -//go:linkname libc_fgetxattr libc_fgetxattr -//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setxattr_trampoline() - -//go:linkname libc_setxattr libc_setxattr -//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fsetxattr_trampoline() - -//go:linkname libc_fsetxattr libc_fsetxattr -//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_removexattr_trampoline() - -//go:linkname libc_removexattr libc_removexattr -//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fremovexattr_trampoline() - -//go:linkname libc_fremovexattr libc_fremovexattr -//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_listxattr_trampoline() - -//go:linkname libc_listxattr libc_listxattr -//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_flistxattr_trampoline() - -//go:linkname libc_flistxattr libc_flistxattr -//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setattrlist_trampoline() - -//go:linkname libc_setattrlist libc_setattrlist -//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fcntl_trampoline() - -//go:linkname libc_fcntl libc_fcntl -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_kill_trampoline() - -//go:linkname libc_kill libc_kill -//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_ioctl_trampoline() - -//go:linkname libc_ioctl libc_ioctl -//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_sysctl_trampoline() - -//go:linkname libc_sysctl libc_sysctl -//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_sendfile_trampoline() - -//go:linkname libc_sendfile libc_sendfile -//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_access_trampoline() - -//go:linkname libc_access libc_access -//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_adjtime_trampoline() - -//go:linkname libc_adjtime libc_adjtime -//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_chdir_trampoline() - -//go:linkname libc_chdir libc_chdir -//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_chflags_trampoline() - -//go:linkname libc_chflags libc_chflags -//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_chmod_trampoline() - -//go:linkname libc_chmod libc_chmod -//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_chown_trampoline() - -//go:linkname libc_chown libc_chown -//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_chroot_trampoline() - -//go:linkname libc_chroot libc_chroot -//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_clock_gettime_trampoline() - -//go:linkname libc_clock_gettime libc_clock_gettime -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_close_trampoline() - -//go:linkname libc_close libc_close -//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_dup_trampoline() - -//go:linkname libc_dup libc_dup -//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_dup2_trampoline() - -//go:linkname libc_dup2 libc_dup2 -//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_exchangedata_trampoline() - -//go:linkname libc_exchangedata libc_exchangedata -//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) - return -} - -func libc_exit_trampoline() - -//go:linkname libc_exit libc_exit -//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_faccessat_trampoline() - -//go:linkname libc_faccessat libc_faccessat -//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchdir_trampoline() - -//go:linkname libc_fchdir libc_fchdir -//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchflags_trampoline() - -//go:linkname libc_fchflags libc_fchflags -//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchmod_trampoline() - -//go:linkname libc_fchmod libc_fchmod -//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchmodat_trampoline() - -//go:linkname libc_fchmodat libc_fchmodat -//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchown_trampoline() - -//go:linkname libc_fchown libc_fchown -//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchownat_trampoline() - -//go:linkname libc_fchownat libc_fchownat -//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_flock_trampoline() - -//go:linkname libc_flock libc_flock -//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fpathconf_trampoline() - -//go:linkname libc_fpathconf libc_fpathconf -//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fsync_trampoline() - -//go:linkname libc_fsync libc_fsync -//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_ftruncate_trampoline() - -//go:linkname libc_ftruncate libc_ftruncate -//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) - size = int(r0) - return -} - -func libc_getdtablesize_trampoline() - -//go:linkname libc_getdtablesize libc_getdtablesize -//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) - egid = int(r0) - return -} - -func libc_getegid_trampoline() - -//go:linkname libc_getegid libc_getegid -//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) - uid = int(r0) - return -} - -func libc_geteuid_trampoline() - -//go:linkname libc_geteuid libc_geteuid -//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) - gid = int(r0) - return -} - -func libc_getgid_trampoline() - -//go:linkname libc_getgid libc_getgid -//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getpgid_trampoline() - -//go:linkname libc_getpgid libc_getpgid -//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) - pgrp = int(r0) - return -} - -func libc_getpgrp_trampoline() - -//go:linkname libc_getpgrp libc_getpgrp -//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) - pid = int(r0) - return -} - -func libc_getpid_trampoline() - -//go:linkname libc_getpid libc_getpid -//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) - ppid = int(r0) - return -} - -func libc_getppid_trampoline() - -//go:linkname libc_getppid libc_getppid -//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getpriority_trampoline() - -//go:linkname libc_getpriority libc_getpriority -//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getrlimit_trampoline() - -//go:linkname libc_getrlimit libc_getrlimit -//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getrusage_trampoline() - -//go:linkname libc_getrusage libc_getrusage -//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getsid_trampoline() - -//go:linkname libc_getsid libc_getsid -//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_gettimeofday_trampoline() - -//go:linkname libc_gettimeofday libc_gettimeofday -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) - uid = int(r0) - return -} - -func libc_getuid_trampoline() - -//go:linkname libc_getuid libc_getuid -//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -func libc_issetugid_trampoline() - -//go:linkname libc_issetugid libc_issetugid -//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_kqueue_trampoline() - -//go:linkname libc_kqueue libc_kqueue -//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_lchown_trampoline() - -//go:linkname libc_lchown libc_lchown -//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_link_trampoline() - -//go:linkname libc_link libc_link -//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_linkat_trampoline() - -//go:linkname libc_linkat libc_linkat -//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_listen_trampoline() - -//go:linkname libc_listen libc_listen -//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mkdir_trampoline() - -//go:linkname libc_mkdir libc_mkdir -//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mkdirat_trampoline() - -//go:linkname libc_mkdirat libc_mkdirat -//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mkfifo_trampoline() - -//go:linkname libc_mkfifo libc_mkfifo -//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mknod_trampoline() - -//go:linkname libc_mknod libc_mknod -//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_open_trampoline() - -//go:linkname libc_open libc_open -//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_openat_trampoline() - -//go:linkname libc_openat libc_openat -//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_pathconf_trampoline() - -//go:linkname libc_pathconf libc_pathconf -//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_pread_trampoline() - -//go:linkname libc_pread libc_pread -//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_pwrite_trampoline() - -//go:linkname libc_pwrite libc_pwrite -//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_read_trampoline() - -//go:linkname libc_read libc_read -//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_readlink_trampoline() - -//go:linkname libc_readlink libc_readlink -//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_readlinkat_trampoline() - -//go:linkname libc_readlinkat libc_readlinkat -//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_rename_trampoline() - -//go:linkname libc_rename libc_rename -//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_renameat_trampoline() - -//go:linkname libc_renameat libc_renameat -//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_revoke_trampoline() - -//go:linkname libc_revoke libc_revoke -//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_rmdir_trampoline() - -//go:linkname libc_rmdir libc_rmdir -//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_lseek_trampoline() - -//go:linkname libc_lseek libc_lseek -//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_select_trampoline() - -//go:linkname libc_select libc_select -//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setegid_trampoline() - -//go:linkname libc_setegid libc_setegid -//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_seteuid_trampoline() - -//go:linkname libc_seteuid libc_seteuid -//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setgid_trampoline() - -//go:linkname libc_setgid libc_setgid -//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setlogin_trampoline() - -//go:linkname libc_setlogin libc_setlogin -//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setpgid_trampoline() - -//go:linkname libc_setpgid libc_setpgid -//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setpriority_trampoline() - -//go:linkname libc_setpriority libc_setpriority -//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setprivexec_trampoline() - -//go:linkname libc_setprivexec libc_setprivexec -//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setregid_trampoline() - -//go:linkname libc_setregid libc_setregid -//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setreuid_trampoline() - -//go:linkname libc_setreuid libc_setreuid -//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setrlimit_trampoline() - -//go:linkname libc_setrlimit libc_setrlimit -//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setsid_trampoline() - -//go:linkname libc_setsid libc_setsid -//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_settimeofday_trampoline() - -//go:linkname libc_settimeofday libc_settimeofday -//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setuid_trampoline() - -//go:linkname libc_setuid libc_setuid -//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_symlink_trampoline() - -//go:linkname libc_symlink libc_symlink -//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_symlinkat_trampoline() - -//go:linkname libc_symlinkat libc_symlinkat -//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_sync_trampoline() - -//go:linkname libc_sync libc_sync -//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_truncate_trampoline() - -//go:linkname libc_truncate libc_truncate -//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -func libc_umask_trampoline() - -//go:linkname libc_umask libc_umask -//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_undelete_trampoline() - -//go:linkname libc_undelete libc_undelete -//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_unlink_trampoline() - -//go:linkname libc_unlink libc_unlink -//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_unlinkat_trampoline() - -//go:linkname libc_unlinkat libc_unlinkat -//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_unmount_trampoline() - -//go:linkname libc_unmount libc_unmount -//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_write_trampoline() - -//go:linkname libc_write libc_write -//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall9(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mmap_trampoline() - -//go:linkname libc_mmap libc_mmap -//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_munmap_trampoline() - -//go:linkname libc_munmap libc_munmap -//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_ptrace_trampoline() - -//go:linkname libc_ptrace libc_ptrace -//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fstat64_trampoline() - -//go:linkname libc_fstat64 libc_fstat64 -//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fstatat64_trampoline() - -//go:linkname libc_fstatat64 libc_fstatat64 -//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fstatfs64_trampoline() - -//go:linkname libc_fstatfs64 libc_fstatfs64 -//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getfsstat64_trampoline() - -//go:linkname libc_getfsstat64 libc_getfsstat64 -//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_lstat64_trampoline() - -//go:linkname libc_lstat64 libc_lstat64 -//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_stat64_trampoline() - -//go:linkname libc_stat64 libc_stat64 -//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_statfs64_trampoline() - -//go:linkname libc_statfs64 libc_statfs64 -//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s deleted file mode 100644 index 6836a41290..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s +++ /dev/null @@ -1,284 +0,0 @@ -// go run mkasm_darwin.go 386 -// Code generated by the command above; DO NOT EDIT. - -// +build go1.12 - -#include "textflag.h" -TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getattrlist(SB) -TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 - JMP libc_pipe(SB) -TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getxattr(SB) -TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fgetxattr(SB) -TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setxattr(SB) -TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fsetxattr(SB) -TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_removexattr(SB) -TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fremovexattr(SB) -TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_listxattr(SB) -TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_flistxattr(SB) -TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setattrlist(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 - JMP libc_sendfile(SB) -TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 - JMP libc_exchangedata(SB) -TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getdtablesize(SB) -TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setprivexec(SB) -TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setrlimit(SB) -TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 - JMP libc_undelete(SB) -TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fstat64(SB) -TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fstatat64(SB) -TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fstatfs64(SB) -TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getfsstat64(SB) -TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 - JMP libc_lstat64(SB) -TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0 - JMP libc_stat64(SB) -TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0 - JMP libc_statfs64(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go deleted file mode 100644 index 102561730a..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go +++ /dev/null @@ -1,1809 +0,0 @@ -// go run mksyscall.go -tags darwin,amd64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.1_11.go syscall_darwin_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,amd64,!go1.12 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go index 314042a9d4..a06eb09324 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags darwin,amd64,go1.13 syscall_darwin.1_13.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build darwin && amd64 && go1.13 // +build darwin,amd64,go1.13 package unix @@ -15,27 +16,25 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) + _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_closedir_trampoline() +var libc_closedir_trampoline_addr uintptr -//go:linkname libc_closedir libc_closedir //go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { - r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) res = Errno(r0) return } -func libc_readdir_r_trampoline() +var libc_readdir_r_trampoline_addr uintptr -//go:linkname libc_readdir_r libc_readdir_r //go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s index d671e8311f..d6c3e25c01 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s @@ -1,12 +1,25 @@ // go run mkasm_darwin.go amd64 // Code generated by the command above; DO NOT EDIT. +//go:build go1.13 // +build go1.13 #include "textflag.h" -TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 + +TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fdopendir(SB) -TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) + +TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_closedir(SB) -TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) + +TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readdir_r(SB) + +GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go index c67e336e2a..d4efe8d457 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags darwin,amd64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build darwin && amd64 && go1.12 // +build darwin,amd64,go1.12 package unix @@ -15,7 +16,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -23,30 +24,28 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } -func libc_getgroups_trampoline() +var libc_getgroups_trampoline_addr uintptr -//go:linkname libc_getgroups libc_getgroups //go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setgroups_trampoline() +var libc_setgroups_trampoline_addr uintptr -//go:linkname libc_setgroups libc_setgroups //go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -54,15 +53,14 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } -func libc_wait4_trampoline() +var libc_wait4_trampoline_addr uintptr -//go:linkname libc_wait4 libc_wait4 //go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -70,45 +68,42 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } -func libc_accept_trampoline() +var libc_accept_trampoline_addr uintptr -//go:linkname libc_accept libc_accept //go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_bind_trampoline() +var libc_bind_trampoline_addr uintptr -//go:linkname libc_bind libc_bind //go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_connect_trampoline() +var libc_connect_trampoline_addr uintptr -//go:linkname libc_connect libc_connect //go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -116,99 +111,92 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } -func libc_socket_trampoline() +var libc_socket_trampoline_addr uintptr -//go:linkname libc_socket libc_socket //go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getsockopt_trampoline() +var libc_getsockopt_trampoline_addr uintptr -//go:linkname libc_getsockopt libc_getsockopt //go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setsockopt_trampoline() +var libc_setsockopt_trampoline_addr uintptr -//go:linkname libc_setsockopt libc_setsockopt //go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getpeername_trampoline() +var libc_getpeername_trampoline_addr uintptr -//go:linkname libc_getpeername libc_getpeername //go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getsockname_trampoline() +var libc_getsockname_trampoline_addr uintptr -//go:linkname libc_getsockname libc_getsockname //go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_shutdown_trampoline() +var libc_shutdown_trampoline_addr uintptr -//go:linkname libc_shutdown libc_shutdown //go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_socketpair_trampoline() +var libc_socketpair_trampoline_addr uintptr -//go:linkname libc_socketpair libc_socketpair //go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -220,7 +208,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -228,9 +216,8 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } -func libc_recvfrom_trampoline() +var libc_recvfrom_trampoline_addr uintptr -//go:linkname libc_recvfrom libc_recvfrom //go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -242,22 +229,21 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_sendto_trampoline() +var libc_sendto_trampoline_addr uintptr -//go:linkname libc_sendto libc_sendto //go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -265,15 +251,14 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } -func libc_recvmsg_trampoline() +var libc_recvmsg_trampoline_addr uintptr -//go:linkname libc_recvmsg libc_recvmsg //go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -281,15 +266,14 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } -func libc_sendmsg_trampoline() +var libc_sendmsg_trampoline_addr uintptr -//go:linkname libc_sendmsg libc_sendmsg //go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -297,9 +281,8 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } -func libc_kevent_trampoline() +var libc_kevent_trampoline_addr uintptr -//go:linkname libc_kevent libc_kevent //go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -310,37 +293,35 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_utimes_trampoline() +var libc_utimes_trampoline_addr uintptr -//go:linkname libc_utimes libc_utimes //go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_futimes_trampoline() +var libc_futimes_trampoline_addr uintptr -//go:linkname libc_futimes libc_futimes //go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -348,9 +329,8 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } -func libc_poll_trampoline() +var libc_poll_trampoline_addr uintptr -//go:linkname libc_poll libc_poll //go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -362,16 +342,15 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_madvise_trampoline() +var libc_madvise_trampoline_addr uintptr -//go:linkname libc_madvise libc_madvise //go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -383,31 +362,29 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mlock_trampoline() +var libc_mlock_trampoline_addr uintptr -//go:linkname libc_mlock libc_mlock //go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mlockall_trampoline() +var libc_mlockall_trampoline_addr uintptr -//go:linkname libc_mlockall libc_mlockall //go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -419,16 +396,15 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mprotect_trampoline() +var libc_mprotect_trampoline_addr uintptr -//go:linkname libc_mprotect libc_mprotect //go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -440,16 +416,15 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_msync_trampoline() +var libc_msync_trampoline_addr uintptr -//go:linkname libc_msync libc_msync //go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -461,63 +436,43 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_munlock_trampoline() +var libc_munlock_trampoline_addr uintptr -//go:linkname libc_munlock libc_munlock //go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_munlockall_trampoline() +var libc_munlockall_trampoline_addr uintptr -//go:linkname libc_munlockall libc_munlockall //go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getattrlist_trampoline() +var libc_pipe_trampoline_addr uintptr -//go:linkname libc_getattrlist libc_getattrlist -//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_pipe_trampoline() - -//go:linkname libc_pipe libc_pipe //go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -533,7 +488,7 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o if err != nil { return } - r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -541,9 +496,8 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o return } -func libc_getxattr_trampoline() +var libc_getxattr_trampoline_addr uintptr -//go:linkname libc_getxattr libc_getxattr //go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -554,7 +508,7 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio if err != nil { return } - r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -562,9 +516,8 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio return } -func libc_fgetxattr_trampoline() +var libc_fgetxattr_trampoline_addr uintptr -//go:linkname libc_fgetxattr libc_fgetxattr //go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -580,16 +533,15 @@ func setxattr(path string, attr string, data *byte, size int, position uint32, o if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setxattr_trampoline() +var libc_setxattr_trampoline_addr uintptr -//go:linkname libc_setxattr libc_setxattr //go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -600,16 +552,15 @@ func fsetxattr(fd int, attr string, data *byte, size int, position uint32, optio if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fsetxattr_trampoline() +var libc_fsetxattr_trampoline_addr uintptr -//go:linkname libc_fsetxattr libc_fsetxattr //go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -625,16 +576,15 @@ func removexattr(path string, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_removexattr_trampoline() +var libc_removexattr_trampoline_addr uintptr -//go:linkname libc_removexattr libc_removexattr //go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -645,16 +595,15 @@ func fremovexattr(fd int, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fremovexattr_trampoline() +var libc_fremovexattr_trampoline_addr uintptr -//go:linkname libc_fremovexattr libc_fremovexattr //go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -665,7 +614,7 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro if err != nil { return } - r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -673,15 +622,14 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro return } -func libc_listxattr_trampoline() +var libc_listxattr_trampoline_addr uintptr -//go:linkname libc_listxattr libc_listxattr //go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -689,30 +637,28 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { return } -func libc_flistxattr_trampoline() +var libc_flistxattr_trampoline_addr uintptr -//go:linkname libc_flistxattr libc_flistxattr //go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + _, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setattrlist_trampoline() +var libc_setattrlist_trampoline_addr uintptr -//go:linkname libc_setattrlist libc_setattrlist //go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -720,39 +666,36 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) { return } -func libc_fcntl_trampoline() +var libc_fcntl_trampoline_addr uintptr -//go:linkname libc_fcntl libc_fcntl //go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_kill_trampoline() +var libc_kill_trampoline_addr uintptr -//go:linkname libc_kill libc_kill //go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_ioctl_trampoline() +var libc_ioctl_trampoline_addr uintptr -//go:linkname libc_ioctl libc_ioctl //go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -764,31 +707,29 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_sysctl_trampoline() +var libc_sysctl_trampoline_addr uintptr -//go:linkname libc_sysctl libc_sysctl //go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_sendfile_trampoline() +var libc_sendfile_trampoline_addr uintptr -//go:linkname libc_sendfile libc_sendfile //go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -799,31 +740,29 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_access_trampoline() +var libc_access_trampoline_addr uintptr -//go:linkname libc_access libc_access //go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_adjtime_trampoline() +var libc_adjtime_trampoline_addr uintptr -//go:linkname libc_adjtime libc_adjtime //go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -834,16 +773,15 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_chdir_trampoline() +var libc_chdir_trampoline_addr uintptr -//go:linkname libc_chdir libc_chdir //go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -854,16 +792,15 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_chflags_trampoline() +var libc_chflags_trampoline_addr uintptr -//go:linkname libc_chflags libc_chflags //go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -874,16 +811,15 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_chmod_trampoline() +var libc_chmod_trampoline_addr uintptr -//go:linkname libc_chmod libc_chmod //go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -894,16 +830,15 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_chown_trampoline() +var libc_chown_trampoline_addr uintptr -//go:linkname libc_chown libc_chown //go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -914,52 +849,97 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_chroot_trampoline() +var libc_chroot_trampoline_addr uintptr -//go:linkname libc_chroot libc_chroot //go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_clock_gettime_trampoline() +var libc_clock_gettime_trampoline_addr uintptr -//go:linkname libc_clock_gettime libc_clock_gettime //go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_close_trampoline() +var libc_close_trampoline_addr uintptr -//go:linkname libc_close libc_close //go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefile_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefileat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -967,24 +947,22 @@ func Dup(fd int) (nfd int, err error) { return } -func libc_dup_trampoline() +var libc_dup_trampoline_addr uintptr -//go:linkname libc_dup libc_dup //go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_dup2_trampoline() +var libc_dup2_trampoline_addr uintptr -//go:linkname libc_dup2 libc_dup2 //go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1000,28 +978,26 @@ func Exchangedata(path1 string, path2 string, options int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_exchangedata_trampoline() +var libc_exchangedata_trampoline_addr uintptr -//go:linkname libc_exchangedata libc_exchangedata //go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) return } -func libc_exit_trampoline() +var libc_exit_trampoline_addr uintptr -//go:linkname libc_exit libc_exit //go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1032,61 +1008,57 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_faccessat_trampoline() +var libc_faccessat_trampoline_addr uintptr -//go:linkname libc_faccessat libc_faccessat //go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchdir_trampoline() +var libc_fchdir_trampoline_addr uintptr -//go:linkname libc_fchdir libc_fchdir //go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchflags_trampoline() +var libc_fchflags_trampoline_addr uintptr -//go:linkname libc_fchflags libc_fchflags //go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchmod_trampoline() +var libc_fchmod_trampoline_addr uintptr -//go:linkname libc_fchmod libc_fchmod //go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1097,31 +1069,29 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchmodat_trampoline() +var libc_fchmodat_trampoline_addr uintptr -//go:linkname libc_fchmodat libc_fchmodat //go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchown_trampoline() +var libc_fchown_trampoline_addr uintptr -//go:linkname libc_fchown libc_fchown //go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1132,37 +1102,54 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchownat_trampoline() +var libc_fchownat_trampoline_addr uintptr -//go:linkname libc_fchownat libc_fchownat //go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fclonefileat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_flock_trampoline() +var libc_flock_trampoline_addr uintptr -//go:linkname libc_flock libc_flock //go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1170,97 +1157,111 @@ func Fpathconf(fd int, name int) (val int, err error) { return } -func libc_fpathconf_trampoline() +var libc_fpathconf_trampoline_addr uintptr -//go:linkname libc_fpathconf libc_fpathconf //go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fsync_trampoline() +var libc_fsync_trampoline_addr uintptr -//go:linkname libc_fsync libc_fsync //go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_ftruncate_trampoline() +var libc_ftruncate_trampoline_addr uintptr -//go:linkname libc_ftruncate libc_ftruncate //go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdtablesize() (size int) { - r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) + r0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0) size = int(r0) return } -func libc_getdtablesize_trampoline() +var libc_getdtablesize_trampoline_addr uintptr -//go:linkname libc_getdtablesize libc_getdtablesize //go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) egid = int(r0) return } -func libc_getegid_trampoline() +var libc_getegid_trampoline_addr uintptr -//go:linkname libc_getegid libc_getegid //go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } -func libc_geteuid_trampoline() +var libc_geteuid_trampoline_addr uintptr -//go:linkname libc_geteuid libc_geteuid //go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) gid = int(r0) return } -func libc_getgid_trampoline() +var libc_getgid_trampoline_addr uintptr -//go:linkname libc_getgid libc_getgid //go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1268,54 +1269,50 @@ func Getpgid(pid int) (pgid int, err error) { return } -func libc_getpgid_trampoline() +var libc_getpgid_trampoline_addr uintptr -//go:linkname libc_getpgid libc_getpgid //go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) pgrp = int(r0) return } -func libc_getpgrp_trampoline() +var libc_getpgrp_trampoline_addr uintptr -//go:linkname libc_getpgrp libc_getpgrp //go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) pid = int(r0) return } -func libc_getpid_trampoline() +var libc_getpid_trampoline_addr uintptr -//go:linkname libc_getpid libc_getpid //go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) ppid = int(r0) return } -func libc_getppid_trampoline() +var libc_getppid_trampoline_addr uintptr -//go:linkname libc_getppid libc_getppid //go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1323,45 +1320,42 @@ func Getpriority(which int, who int) (prio int, err error) { return } -func libc_getpriority_trampoline() +var libc_getpriority_trampoline_addr uintptr -//go:linkname libc_getpriority libc_getpriority //go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getrlimit_trampoline() +var libc_getrlimit_trampoline_addr uintptr -//go:linkname libc_getrlimit libc_getrlimit //go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getrusage_trampoline() +var libc_getrusage_trampoline_addr uintptr -//go:linkname libc_getrusage libc_getrusage //go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1369,56 +1363,52 @@ func Getsid(pid int) (sid int, err error) { return } -func libc_getsid_trampoline() +var libc_getsid_trampoline_addr uintptr -//go:linkname libc_getsid libc_getsid //go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_gettimeofday_trampoline() +var libc_gettimeofday_trampoline_addr uintptr -//go:linkname libc_gettimeofday libc_gettimeofday //go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } -func libc_getuid_trampoline() +var libc_getuid_trampoline_addr uintptr -//go:linkname libc_getuid libc_getuid //go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) tainted = bool(r0 != 0) return } -func libc_issetugid_trampoline() +var libc_issetugid_trampoline_addr uintptr -//go:linkname libc_issetugid libc_issetugid //go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1426,9 +1416,8 @@ func Kqueue() (fd int, err error) { return } -func libc_kqueue_trampoline() +var libc_kqueue_trampoline_addr uintptr -//go:linkname libc_kqueue libc_kqueue //go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1439,16 +1428,15 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_lchown_trampoline() +var libc_lchown_trampoline_addr uintptr -//go:linkname libc_lchown libc_lchown //go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1464,16 +1452,15 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_link_trampoline() +var libc_link_trampoline_addr uintptr -//go:linkname libc_link libc_link //go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1489,31 +1476,29 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_linkat_trampoline() +var libc_linkat_trampoline_addr uintptr -//go:linkname libc_linkat libc_linkat //go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_listen_trampoline() +var libc_listen_trampoline_addr uintptr -//go:linkname libc_listen libc_listen //go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1524,16 +1509,15 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mkdir_trampoline() +var libc_mkdir_trampoline_addr uintptr -//go:linkname libc_mkdir libc_mkdir //go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1544,16 +1528,15 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mkdirat_trampoline() +var libc_mkdirat_trampoline_addr uintptr -//go:linkname libc_mkdirat libc_mkdirat //go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1564,16 +1547,15 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mkfifo_trampoline() +var libc_mkfifo_trampoline_addr uintptr -//go:linkname libc_mkfifo libc_mkfifo //go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1584,16 +1566,15 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mknod_trampoline() +var libc_mknod_trampoline_addr uintptr -//go:linkname libc_mknod libc_mknod //go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1604,7 +1585,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1612,9 +1593,8 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } -func libc_open_trampoline() +var libc_open_trampoline_addr uintptr -//go:linkname libc_open libc_open //go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1625,7 +1605,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1633,9 +1613,8 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } -func libc_openat_trampoline() +var libc_openat_trampoline_addr uintptr -//go:linkname libc_openat libc_openat //go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1646,7 +1625,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1654,9 +1633,8 @@ func Pathconf(path string, name int) (val int, err error) { return } -func libc_pathconf_trampoline() +var libc_pathconf_trampoline_addr uintptr -//go:linkname libc_pathconf libc_pathconf //go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1668,7 +1646,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1676,9 +1654,8 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { return } -func libc_pread_trampoline() +var libc_pread_trampoline_addr uintptr -//go:linkname libc_pread libc_pread //go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1690,7 +1667,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1698,9 +1675,8 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { return } -func libc_pwrite_trampoline() +var libc_pwrite_trampoline_addr uintptr -//go:linkname libc_pwrite libc_pwrite //go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1712,7 +1688,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1720,9 +1696,8 @@ func read(fd int, p []byte) (n int, err error) { return } -func libc_read_trampoline() +var libc_read_trampoline_addr uintptr -//go:linkname libc_read libc_read //go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1739,7 +1714,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1747,9 +1722,8 @@ func Readlink(path string, buf []byte) (n int, err error) { return } -func libc_readlink_trampoline() +var libc_readlink_trampoline_addr uintptr -//go:linkname libc_readlink libc_readlink //go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1766,7 +1740,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1774,9 +1748,8 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } -func libc_readlinkat_trampoline() +var libc_readlinkat_trampoline_addr uintptr -//go:linkname libc_readlinkat libc_readlinkat //go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1792,16 +1765,15 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_rename_trampoline() +var libc_rename_trampoline_addr uintptr -//go:linkname libc_rename libc_rename //go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1817,16 +1789,15 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_renameat_trampoline() +var libc_renameat_trampoline_addr uintptr -//go:linkname libc_renameat libc_renameat //go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1837,16 +1808,15 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_revoke_trampoline() +var libc_revoke_trampoline_addr uintptr -//go:linkname libc_revoke libc_revoke //go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1857,22 +1827,21 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_rmdir_trampoline() +var libc_rmdir_trampoline_addr uintptr -//go:linkname libc_rmdir libc_rmdir //go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence)) + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) newoffset = int64(r0) if e1 != 0 { err = errnoErr(e1) @@ -1880,15 +1849,14 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } -func libc_lseek_trampoline() +var libc_lseek_trampoline_addr uintptr -//go:linkname libc_lseek libc_lseek //go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1896,54 +1864,50 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err return } -func libc_select_trampoline() +var libc_select_trampoline_addr uintptr -//go:linkname libc_select libc_select //go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) + _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setegid_trampoline() +var libc_setegid_trampoline_addr uintptr -//go:linkname libc_setegid libc_setegid //go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_seteuid_trampoline() +var libc_seteuid_trampoline_addr uintptr -//go:linkname libc_seteuid libc_seteuid //go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setgid_trampoline() +var libc_setgid_trampoline_addr uintptr -//go:linkname libc_setgid libc_setgid //go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1954,112 +1918,105 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setlogin_trampoline() +var libc_setlogin_trampoline_addr uintptr -//go:linkname libc_setlogin libc_setlogin //go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setpgid_trampoline() +var libc_setpgid_trampoline_addr uintptr -//go:linkname libc_setpgid libc_setpgid //go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setpriority_trampoline() +var libc_setpriority_trampoline_addr uintptr -//go:linkname libc_setpriority libc_setpriority //go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setprivexec(flag int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) + _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setprivexec_trampoline() +var libc_setprivexec_trampoline_addr uintptr -//go:linkname libc_setprivexec libc_setprivexec //go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setregid_trampoline() +var libc_setregid_trampoline_addr uintptr -//go:linkname libc_setregid libc_setregid //go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setreuid_trampoline() +var libc_setreuid_trampoline_addr uintptr -//go:linkname libc_setreuid libc_setreuid //go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setrlimit_trampoline() +var libc_setrlimit_trampoline_addr uintptr -//go:linkname libc_setrlimit libc_setrlimit //go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -2067,39 +2024,36 @@ func Setsid() (pid int, err error) { return } -func libc_setsid_trampoline() +var libc_setsid_trampoline_addr uintptr -//go:linkname libc_setsid libc_setsid //go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_settimeofday_trampoline() +var libc_settimeofday_trampoline_addr uintptr -//go:linkname libc_settimeofday libc_settimeofday //go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setuid_trampoline() +var libc_setuid_trampoline_addr uintptr -//go:linkname libc_setuid libc_setuid //go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2115,16 +2069,15 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_symlink_trampoline() +var libc_symlink_trampoline_addr uintptr -//go:linkname libc_symlink libc_symlink //go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2140,31 +2093,29 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } -func libc_symlinkat_trampoline() +var libc_symlinkat_trampoline_addr uintptr -//go:linkname libc_symlinkat libc_symlinkat //go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_sync_trampoline() +var libc_sync_trampoline_addr uintptr -//go:linkname libc_sync libc_sync //go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2175,29 +2126,27 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_truncate_trampoline() +var libc_truncate_trampoline_addr uintptr -//go:linkname libc_truncate libc_truncate //go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) oldmask = int(r0) return } -func libc_umask_trampoline() +var libc_umask_trampoline_addr uintptr -//go:linkname libc_umask libc_umask //go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2208,16 +2157,15 @@ func Undelete(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_undelete_trampoline() +var libc_undelete_trampoline_addr uintptr -//go:linkname libc_undelete libc_undelete //go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2228,16 +2176,15 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_unlink_trampoline() +var libc_unlink_trampoline_addr uintptr -//go:linkname libc_unlink libc_unlink //go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2248,16 +2195,15 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_unlinkat_trampoline() +var libc_unlinkat_trampoline_addr uintptr -//go:linkname libc_unlinkat libc_unlinkat //go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2268,16 +2214,15 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_unmount_trampoline() +var libc_unmount_trampoline_addr uintptr -//go:linkname libc_unmount libc_unmount //go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2289,7 +2234,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -2297,15 +2242,14 @@ func write(fd int, p []byte) (n int, err error) { return } -func libc_write_trampoline() +var libc_write_trampoline_addr uintptr -//go:linkname libc_write libc_write //go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -2313,30 +2257,28 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } -func libc_mmap_trampoline() +var libc_mmap_trampoline_addr uintptr -//go:linkname libc_mmap libc_mmap //go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_munmap_trampoline() +var libc_munmap_trampoline_addr uintptr -//go:linkname libc_munmap libc_munmap //go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -2347,7 +2289,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -2357,32 +2299,16 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_ptrace_trampoline() - -//go:linkname libc_ptrace libc_ptrace -//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fstat64_trampoline() +var libc_fstat64_trampoline_addr uintptr -//go:linkname libc_fstat64 libc_fstat64 //go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2393,37 +2319,35 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fstatat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fstatat64_trampoline() +var libc_fstatat64_trampoline_addr uintptr -//go:linkname libc_fstatat64 libc_fstatat64 //go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstatfs64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fstatfs64_trampoline() +var libc_fstatfs64_trampoline_addr uintptr -//go:linkname libc_fstatfs64 libc_fstatfs64 //go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_getfsstat64_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -2431,9 +2355,8 @@ func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { return } -func libc_getfsstat64_trampoline() +var libc_getfsstat64_trampoline_addr uintptr -//go:linkname libc_getfsstat64 libc_getfsstat64 //go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2444,36 +2367,48 @@ func Lstat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_lstat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_lstat64_trampoline() +var libc_lstat64_trampoline_addr uintptr -//go:linkname libc_lstat64 libc_lstat64 //go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ptrace_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Stat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_stat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_stat64_trampoline() +var libc_stat64_trampoline_addr uintptr -//go:linkname libc_stat64 libc_stat64 //go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2484,14 +2419,13 @@ func Statfs(path string, stat *Statfs_t) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_statfs64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_statfs64_trampoline() +var libc_statfs64_trampoline_addr uintptr -//go:linkname libc_statfs64 libc_statfs64 //go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s index a3fdf099d0..bc169c2ab9 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s @@ -1,284 +1,859 @@ // go run mkasm_darwin.go amd64 // Code generated by the command above; DO NOT EDIT. +//go:build go1.12 // +build go1.12 #include "textflag.h" -TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgroups(SB) -TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgroups(SB) -TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_wait4(SB) -TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_accept(SB) -TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_bind(SB) -TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_connect(SB) -TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socket(SB) -TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockopt(SB) -TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsockopt(SB) -TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpeername(SB) -TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockname(SB) -TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_shutdown(SB) -TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socketpair(SB) -TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvfrom(SB) -TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendto(SB) -TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvmsg(SB) -TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendmsg(SB) -TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kevent(SB) -TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) -TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) -TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_poll(SB) -TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_madvise(SB) -TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlock(SB) -TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlockall(SB) -TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mprotect(SB) -TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_msync(SB) -TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlock(SB) -TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlockall(SB) -TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getattrlist(SB) -TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pipe(SB) -TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) + +TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getxattr(SB) -TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) + +TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fgetxattr(SB) -TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) + +TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setxattr(SB) -TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) + +TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fsetxattr(SB) -TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) + +TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_removexattr(SB) -TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) + +TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fremovexattr(SB) -TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) + +TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_listxattr(SB) -TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) + +TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_flistxattr(SB) -TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) + +TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setattrlist(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fcntl(SB) -TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kill(SB) -TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) -TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sysctl(SB) -TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) -TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_access(SB) -TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_adjtime(SB) -TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chdir(SB) -TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chflags(SB) -TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chmod(SB) -TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chown(SB) -TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chroot(SB) -TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_clock_gettime(SB) -TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_close(SB) -TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) + +GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) + +TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) + +GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup(SB) -TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup2(SB) -TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_exchangedata(SB) -TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_exit(SB) -TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_faccessat(SB) -TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchdir(SB) -TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchflags(SB) -TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmod(SB) -TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmodat(SB) -TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchown(SB) -TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchownat(SB) -TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) + +GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_flock(SB) -TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fpathconf(SB) -TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fsync(SB) -TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ftruncate(SB) -TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) + +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getdtablesize(SB) -TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getegid(SB) -TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_geteuid(SB) -TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgid(SB) -TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgid(SB) -TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgrp(SB) -TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpid(SB) -TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getppid(SB) -TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpriority(SB) -TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrlimit(SB) -TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrusage(SB) -TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsid(SB) -TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) + +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getuid(SB) -TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_issetugid(SB) -TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kqueue(SB) -TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lchown(SB) -TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_link(SB) -TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_linkat(SB) -TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_listen(SB) -TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdir(SB) -TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdirat(SB) -TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifo(SB) -TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknod(SB) -TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_open(SB) -TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_openat(SB) -TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pathconf(SB) -TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pread(SB) -TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pwrite(SB) -TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_read(SB) -TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlink(SB) -TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlinkat(SB) -TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rename(SB) -TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_renameat(SB) -TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_revoke(SB) -TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rmdir(SB) -TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lseek(SB) -TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_select(SB) -TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setegid(SB) -TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_seteuid(SB) -TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgid(SB) -TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setlogin(SB) -TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpgid(SB) -TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpriority(SB) -TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setprivexec(SB) -TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setregid(SB) -TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setreuid(SB) -TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrlimit(SB) -TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsid(SB) -TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_settimeofday(SB) -TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setuid(SB) -TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlink(SB) -TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlinkat(SB) -TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sync(SB) -TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_truncate(SB) -TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_umask(SB) -TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_undelete(SB) -TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 +DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlink(SB) -TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlinkat(SB) -TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unmount(SB) -TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_write(SB) -TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) -TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) -TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_fstat64_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstat64(SB) -TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fstat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat64_trampoline_addr(SB)/8, $libc_fstat64_trampoline<>(SB) + +TEXT libc_fstatat64_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatat64(SB) -TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fstatat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat64_trampoline_addr(SB)/8, $libc_fstatat64_trampoline<>(SB) + +TEXT libc_fstatfs64_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatfs64(SB) -TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fstatfs64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs64_trampoline_addr(SB)/8, $libc_fstatfs64_trampoline<>(SB) + +TEXT libc_getfsstat64_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getfsstat64(SB) -TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getfsstat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getfsstat64_trampoline_addr(SB)/8, $libc_getfsstat64_trampoline<>(SB) + +TEXT libc_lstat64_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lstat64(SB) -TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_lstat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat64_trampoline_addr(SB)/8, $libc_lstat64_trampoline<>(SB) + +TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) + +GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) + +TEXT libc_stat64_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_stat64(SB) -TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_stat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat64_trampoline_addr(SB)/8, $libc_stat64_trampoline<>(SB) + +TEXT libc_statfs64_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_statfs64(SB) + +GLOBL ·libc_statfs64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs64_trampoline_addr(SB)/8, $libc_statfs64_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go deleted file mode 100644 index d34e6df2fe..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go +++ /dev/null @@ -1,1782 +0,0 @@ -// go run mksyscall.go -l32 -tags darwin,arm,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.1_11.go syscall_darwin_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,arm,!go1.12 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go deleted file mode 100644 index f519ce9afb..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go +++ /dev/null @@ -1,41 +0,0 @@ -// go run mksyscall.go -l32 -tags darwin,arm,go1.13 syscall_darwin.1_13.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,arm,go1.13 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_closedir_trampoline() - -//go:linkname libc_closedir libc_closedir -//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { - r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - res = Errno(r0) - return -} - -func libc_readdir_r_trampoline() - -//go:linkname libc_readdir_r libc_readdir_r -//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s deleted file mode 100644 index 488e55707a..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s +++ /dev/null @@ -1,12 +0,0 @@ -// go run mkasm_darwin.go arm -// Code generated by the command above; DO NOT EDIT. - -// +build go1.13 - -#include "textflag.h" -TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) -TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) -TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go deleted file mode 100644 index b759757a77..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go +++ /dev/null @@ -1,2482 +0,0 @@ -// go run mksyscall.go -l32 -tags darwin,arm,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,arm,go1.12 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getgroups_trampoline() - -//go:linkname libc_getgroups libc_getgroups -//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setgroups_trampoline() - -//go:linkname libc_setgroups libc_setgroups -//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_wait4_trampoline() - -//go:linkname libc_wait4 libc_wait4 -//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_accept_trampoline() - -//go:linkname libc_accept libc_accept -//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_bind_trampoline() - -//go:linkname libc_bind libc_bind -//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_connect_trampoline() - -//go:linkname libc_connect libc_connect -//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_socket_trampoline() - -//go:linkname libc_socket libc_socket -//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getsockopt_trampoline() - -//go:linkname libc_getsockopt libc_getsockopt -//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setsockopt_trampoline() - -//go:linkname libc_setsockopt libc_setsockopt -//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getpeername_trampoline() - -//go:linkname libc_getpeername libc_getpeername -//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getsockname_trampoline() - -//go:linkname libc_getsockname libc_getsockname -//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_shutdown_trampoline() - -//go:linkname libc_shutdown libc_shutdown -//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_socketpair_trampoline() - -//go:linkname libc_socketpair libc_socketpair -//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_recvfrom_trampoline() - -//go:linkname libc_recvfrom libc_recvfrom -//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_sendto_trampoline() - -//go:linkname libc_sendto libc_sendto -//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_recvmsg_trampoline() - -//go:linkname libc_recvmsg libc_recvmsg -//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_sendmsg_trampoline() - -//go:linkname libc_sendmsg libc_sendmsg -//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_kevent_trampoline() - -//go:linkname libc_kevent libc_kevent -//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_utimes_trampoline() - -//go:linkname libc_utimes libc_utimes -//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_futimes_trampoline() - -//go:linkname libc_futimes libc_futimes -//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_poll_trampoline() - -//go:linkname libc_poll libc_poll -//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_madvise_trampoline() - -//go:linkname libc_madvise libc_madvise -//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mlock_trampoline() - -//go:linkname libc_mlock libc_mlock -//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mlockall_trampoline() - -//go:linkname libc_mlockall libc_mlockall -//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mprotect_trampoline() - -//go:linkname libc_mprotect libc_mprotect -//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_msync_trampoline() - -//go:linkname libc_msync libc_msync -//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_munlock_trampoline() - -//go:linkname libc_munlock libc_munlock -//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_munlockall_trampoline() - -//go:linkname libc_munlockall libc_munlockall -//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getattrlist_trampoline() - -//go:linkname libc_getattrlist libc_getattrlist -//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_pipe_trampoline() - -//go:linkname libc_pipe libc_pipe -//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getxattr_trampoline() - -//go:linkname libc_getxattr libc_getxattr -//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fgetxattr_trampoline() - -//go:linkname libc_fgetxattr libc_fgetxattr -//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setxattr_trampoline() - -//go:linkname libc_setxattr libc_setxattr -//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fsetxattr_trampoline() - -//go:linkname libc_fsetxattr libc_fsetxattr -//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_removexattr_trampoline() - -//go:linkname libc_removexattr libc_removexattr -//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fremovexattr_trampoline() - -//go:linkname libc_fremovexattr libc_fremovexattr -//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_listxattr_trampoline() - -//go:linkname libc_listxattr libc_listxattr -//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_flistxattr_trampoline() - -//go:linkname libc_flistxattr libc_flistxattr -//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setattrlist_trampoline() - -//go:linkname libc_setattrlist libc_setattrlist -//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fcntl_trampoline() - -//go:linkname libc_fcntl libc_fcntl -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_kill_trampoline() - -//go:linkname libc_kill libc_kill -//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_ioctl_trampoline() - -//go:linkname libc_ioctl libc_ioctl -//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_sysctl_trampoline() - -//go:linkname libc_sysctl libc_sysctl -//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_sendfile_trampoline() - -//go:linkname libc_sendfile libc_sendfile -//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_access_trampoline() - -//go:linkname libc_access libc_access -//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_adjtime_trampoline() - -//go:linkname libc_adjtime libc_adjtime -//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_chdir_trampoline() - -//go:linkname libc_chdir libc_chdir -//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_chflags_trampoline() - -//go:linkname libc_chflags libc_chflags -//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_chmod_trampoline() - -//go:linkname libc_chmod libc_chmod -//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_chown_trampoline() - -//go:linkname libc_chown libc_chown -//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_chroot_trampoline() - -//go:linkname libc_chroot libc_chroot -//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_clock_gettime_trampoline() - -//go:linkname libc_clock_gettime libc_clock_gettime -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_close_trampoline() - -//go:linkname libc_close libc_close -//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_dup_trampoline() - -//go:linkname libc_dup libc_dup -//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_dup2_trampoline() - -//go:linkname libc_dup2 libc_dup2 -//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_exchangedata_trampoline() - -//go:linkname libc_exchangedata libc_exchangedata -//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) - return -} - -func libc_exit_trampoline() - -//go:linkname libc_exit libc_exit -//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_faccessat_trampoline() - -//go:linkname libc_faccessat libc_faccessat -//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchdir_trampoline() - -//go:linkname libc_fchdir libc_fchdir -//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchflags_trampoline() - -//go:linkname libc_fchflags libc_fchflags -//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchmod_trampoline() - -//go:linkname libc_fchmod libc_fchmod -//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchmodat_trampoline() - -//go:linkname libc_fchmodat libc_fchmodat -//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchown_trampoline() - -//go:linkname libc_fchown libc_fchown -//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fchownat_trampoline() - -//go:linkname libc_fchownat libc_fchownat -//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_flock_trampoline() - -//go:linkname libc_flock libc_flock -//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fpathconf_trampoline() - -//go:linkname libc_fpathconf libc_fpathconf -//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fsync_trampoline() - -//go:linkname libc_fsync libc_fsync -//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_ftruncate_trampoline() - -//go:linkname libc_ftruncate libc_ftruncate -//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) - size = int(r0) - return -} - -func libc_getdtablesize_trampoline() - -//go:linkname libc_getdtablesize libc_getdtablesize -//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) - egid = int(r0) - return -} - -func libc_getegid_trampoline() - -//go:linkname libc_getegid libc_getegid -//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) - uid = int(r0) - return -} - -func libc_geteuid_trampoline() - -//go:linkname libc_geteuid libc_geteuid -//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) - gid = int(r0) - return -} - -func libc_getgid_trampoline() - -//go:linkname libc_getgid libc_getgid -//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getpgid_trampoline() - -//go:linkname libc_getpgid libc_getpgid -//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) - pgrp = int(r0) - return -} - -func libc_getpgrp_trampoline() - -//go:linkname libc_getpgrp libc_getpgrp -//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) - pid = int(r0) - return -} - -func libc_getpid_trampoline() - -//go:linkname libc_getpid libc_getpid -//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) - ppid = int(r0) - return -} - -func libc_getppid_trampoline() - -//go:linkname libc_getppid libc_getppid -//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getpriority_trampoline() - -//go:linkname libc_getpriority libc_getpriority -//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getrlimit_trampoline() - -//go:linkname libc_getrlimit libc_getrlimit -//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getrusage_trampoline() - -//go:linkname libc_getrusage libc_getrusage -//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getsid_trampoline() - -//go:linkname libc_getsid libc_getsid -//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_gettimeofday_trampoline() - -//go:linkname libc_gettimeofday libc_gettimeofday -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) - uid = int(r0) - return -} - -func libc_getuid_trampoline() - -//go:linkname libc_getuid libc_getuid -//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -func libc_issetugid_trampoline() - -//go:linkname libc_issetugid libc_issetugid -//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_kqueue_trampoline() - -//go:linkname libc_kqueue libc_kqueue -//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_lchown_trampoline() - -//go:linkname libc_lchown libc_lchown -//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_link_trampoline() - -//go:linkname libc_link libc_link -//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_linkat_trampoline() - -//go:linkname libc_linkat libc_linkat -//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_listen_trampoline() - -//go:linkname libc_listen libc_listen -//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mkdir_trampoline() - -//go:linkname libc_mkdir libc_mkdir -//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mkdirat_trampoline() - -//go:linkname libc_mkdirat libc_mkdirat -//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mkfifo_trampoline() - -//go:linkname libc_mkfifo libc_mkfifo -//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mknod_trampoline() - -//go:linkname libc_mknod libc_mknod -//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_open_trampoline() - -//go:linkname libc_open libc_open -//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_openat_trampoline() - -//go:linkname libc_openat libc_openat -//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_pathconf_trampoline() - -//go:linkname libc_pathconf libc_pathconf -//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_pread_trampoline() - -//go:linkname libc_pread libc_pread -//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_pwrite_trampoline() - -//go:linkname libc_pwrite libc_pwrite -//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_read_trampoline() - -//go:linkname libc_read libc_read -//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_readlink_trampoline() - -//go:linkname libc_readlink libc_readlink -//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_readlinkat_trampoline() - -//go:linkname libc_readlinkat libc_readlinkat -//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_rename_trampoline() - -//go:linkname libc_rename libc_rename -//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_renameat_trampoline() - -//go:linkname libc_renameat libc_renameat -//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_revoke_trampoline() - -//go:linkname libc_revoke libc_revoke -//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_rmdir_trampoline() - -//go:linkname libc_rmdir libc_rmdir -//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_lseek_trampoline() - -//go:linkname libc_lseek libc_lseek -//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_select_trampoline() - -//go:linkname libc_select libc_select -//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setegid_trampoline() - -//go:linkname libc_setegid libc_setegid -//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_seteuid_trampoline() - -//go:linkname libc_seteuid libc_seteuid -//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setgid_trampoline() - -//go:linkname libc_setgid libc_setgid -//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setlogin_trampoline() - -//go:linkname libc_setlogin libc_setlogin -//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setpgid_trampoline() - -//go:linkname libc_setpgid libc_setpgid -//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setpriority_trampoline() - -//go:linkname libc_setpriority libc_setpriority -//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setprivexec_trampoline() - -//go:linkname libc_setprivexec libc_setprivexec -//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setregid_trampoline() - -//go:linkname libc_setregid libc_setregid -//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setreuid_trampoline() - -//go:linkname libc_setreuid libc_setreuid -//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setrlimit_trampoline() - -//go:linkname libc_setrlimit libc_setrlimit -//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setsid_trampoline() - -//go:linkname libc_setsid libc_setsid -//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_settimeofday_trampoline() - -//go:linkname libc_settimeofday libc_settimeofday -//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_setuid_trampoline() - -//go:linkname libc_setuid libc_setuid -//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_symlink_trampoline() - -//go:linkname libc_symlink libc_symlink -//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_symlinkat_trampoline() - -//go:linkname libc_symlinkat libc_symlinkat -//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_sync_trampoline() - -//go:linkname libc_sync libc_sync -//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_truncate_trampoline() - -//go:linkname libc_truncate libc_truncate -//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -func libc_umask_trampoline() - -//go:linkname libc_umask libc_umask -//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_undelete_trampoline() - -//go:linkname libc_undelete libc_undelete -//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_unlink_trampoline() - -//go:linkname libc_unlink libc_unlink -//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_unlinkat_trampoline() - -//go:linkname libc_unlinkat libc_unlinkat -//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_unmount_trampoline() - -//go:linkname libc_unmount libc_unmount -//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_write_trampoline() - -//go:linkname libc_write libc_write -//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall9(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_mmap_trampoline() - -//go:linkname libc_mmap libc_mmap -//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_munmap_trampoline() - -//go:linkname libc_munmap libc_munmap -//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fstat_trampoline() - -//go:linkname libc_fstat libc_fstat -//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fstatat_trampoline() - -//go:linkname libc_fstatat libc_fstatat -//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fstatfs_trampoline() - -//go:linkname libc_fstatfs libc_fstatfs -//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_getfsstat_trampoline() - -//go:linkname libc_getfsstat libc_getfsstat -//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_lstat_trampoline() - -//go:linkname libc_lstat libc_lstat -//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_stat_trampoline() - -//go:linkname libc_stat libc_stat -//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_statfs_trampoline() - -//go:linkname libc_statfs libc_statfs -//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s deleted file mode 100644 index b67f518fa3..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s +++ /dev/null @@ -1,282 +0,0 @@ -// go run mkasm_darwin.go arm -// Code generated by the command above; DO NOT EDIT. - -// +build go1.12 - -#include "textflag.h" -TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getattrlist(SB) -TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 - JMP libc_pipe(SB) -TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getxattr(SB) -TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fgetxattr(SB) -TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setxattr(SB) -TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fsetxattr(SB) -TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_removexattr(SB) -TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fremovexattr(SB) -TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_listxattr(SB) -TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 - JMP libc_flistxattr(SB) -TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setattrlist(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 - JMP libc_sendfile(SB) -TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 - JMP libc_exchangedata(SB) -TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getdtablesize(SB) -TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setprivexec(SB) -TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setrlimit(SB) -TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 - JMP libc_undelete(SB) -TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go deleted file mode 100644 index 8d39a09f72..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go +++ /dev/null @@ -1,1782 +0,0 @@ -// go run mksyscall.go -tags darwin,arm64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.1_11.go syscall_darwin_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,arm64,!go1.12 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go index d64e6c806f..cec595d553 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags darwin,arm64,go1.13 syscall_darwin.1_13.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build darwin && arm64 && go1.13 // +build darwin,arm64,go1.13 package unix @@ -15,27 +16,25 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0) + _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_closedir_trampoline() +var libc_closedir_trampoline_addr uintptr -//go:linkname libc_closedir libc_closedir //go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { - r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) res = Errno(r0) return } -func libc_readdir_r_trampoline() +var libc_readdir_r_trampoline_addr uintptr -//go:linkname libc_readdir_r libc_readdir_r //go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s index b29dabb0f0..357989722c 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s @@ -1,12 +1,25 @@ // go run mkasm_darwin.go arm64 // Code generated by the command above; DO NOT EDIT. +//go:build go1.13 // +build go1.13 #include "textflag.h" -TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0 + +TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fdopendir(SB) -TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) + +TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_closedir(SB) -TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) + +TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readdir_r(SB) + +GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go index b288612600..f2ee2bd33b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags darwin,arm64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build darwin && arm64 && go1.12 // +build darwin,arm64,go1.12 package unix @@ -15,7 +16,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -23,30 +24,28 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } -func libc_getgroups_trampoline() +var libc_getgroups_trampoline_addr uintptr -//go:linkname libc_getgroups libc_getgroups //go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setgroups_trampoline() +var libc_setgroups_trampoline_addr uintptr -//go:linkname libc_setgroups libc_setgroups //go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -54,15 +53,14 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } -func libc_wait4_trampoline() +var libc_wait4_trampoline_addr uintptr -//go:linkname libc_wait4 libc_wait4 //go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -70,45 +68,42 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } -func libc_accept_trampoline() +var libc_accept_trampoline_addr uintptr -//go:linkname libc_accept libc_accept //go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_bind_trampoline() +var libc_bind_trampoline_addr uintptr -//go:linkname libc_bind libc_bind //go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_connect_trampoline() +var libc_connect_trampoline_addr uintptr -//go:linkname libc_connect libc_connect //go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -116,99 +111,92 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } -func libc_socket_trampoline() +var libc_socket_trampoline_addr uintptr -//go:linkname libc_socket libc_socket //go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getsockopt_trampoline() +var libc_getsockopt_trampoline_addr uintptr -//go:linkname libc_getsockopt libc_getsockopt //go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setsockopt_trampoline() +var libc_setsockopt_trampoline_addr uintptr -//go:linkname libc_setsockopt libc_setsockopt //go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getpeername_trampoline() +var libc_getpeername_trampoline_addr uintptr -//go:linkname libc_getpeername libc_getpeername //go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getsockname_trampoline() +var libc_getsockname_trampoline_addr uintptr -//go:linkname libc_getsockname libc_getsockname //go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_shutdown_trampoline() +var libc_shutdown_trampoline_addr uintptr -//go:linkname libc_shutdown libc_shutdown //go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_socketpair_trampoline() +var libc_socketpair_trampoline_addr uintptr -//go:linkname libc_socketpair libc_socketpair //go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -220,7 +208,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -228,9 +216,8 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } -func libc_recvfrom_trampoline() +var libc_recvfrom_trampoline_addr uintptr -//go:linkname libc_recvfrom libc_recvfrom //go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -242,22 +229,21 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_sendto_trampoline() +var libc_sendto_trampoline_addr uintptr -//go:linkname libc_sendto libc_sendto //go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -265,15 +251,14 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } -func libc_recvmsg_trampoline() +var libc_recvmsg_trampoline_addr uintptr -//go:linkname libc_recvmsg libc_recvmsg //go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -281,15 +266,14 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } -func libc_sendmsg_trampoline() +var libc_sendmsg_trampoline_addr uintptr -//go:linkname libc_sendmsg libc_sendmsg //go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -297,9 +281,8 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } -func libc_kevent_trampoline() +var libc_kevent_trampoline_addr uintptr -//go:linkname libc_kevent libc_kevent //go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -310,37 +293,35 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_utimes_trampoline() +var libc_utimes_trampoline_addr uintptr -//go:linkname libc_utimes libc_utimes //go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_futimes_trampoline() +var libc_futimes_trampoline_addr uintptr -//go:linkname libc_futimes libc_futimes //go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -348,9 +329,8 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } -func libc_poll_trampoline() +var libc_poll_trampoline_addr uintptr -//go:linkname libc_poll libc_poll //go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -362,16 +342,15 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_madvise_trampoline() +var libc_madvise_trampoline_addr uintptr -//go:linkname libc_madvise libc_madvise //go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -383,31 +362,29 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mlock_trampoline() +var libc_mlock_trampoline_addr uintptr -//go:linkname libc_mlock libc_mlock //go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mlockall_trampoline() +var libc_mlockall_trampoline_addr uintptr -//go:linkname libc_mlockall libc_mlockall //go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -419,16 +396,15 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mprotect_trampoline() +var libc_mprotect_trampoline_addr uintptr -//go:linkname libc_mprotect libc_mprotect //go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -440,16 +416,15 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_msync_trampoline() +var libc_msync_trampoline_addr uintptr -//go:linkname libc_msync libc_msync //go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -461,63 +436,43 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_munlock_trampoline() +var libc_munlock_trampoline_addr uintptr -//go:linkname libc_munlock libc_munlock //go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_munlockall_trampoline() +var libc_munlockall_trampoline_addr uintptr -//go:linkname libc_munlockall libc_munlockall //go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getattrlist_trampoline() +var libc_pipe_trampoline_addr uintptr -//go:linkname libc_getattrlist libc_getattrlist -//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_pipe_trampoline() - -//go:linkname libc_pipe libc_pipe //go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -533,7 +488,7 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o if err != nil { return } - r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -541,9 +496,8 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o return } -func libc_getxattr_trampoline() +var libc_getxattr_trampoline_addr uintptr -//go:linkname libc_getxattr libc_getxattr //go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -554,7 +508,7 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio if err != nil { return } - r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -562,9 +516,8 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio return } -func libc_fgetxattr_trampoline() +var libc_fgetxattr_trampoline_addr uintptr -//go:linkname libc_fgetxattr libc_fgetxattr //go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -580,16 +533,15 @@ func setxattr(path string, attr string, data *byte, size int, position uint32, o if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setxattr_trampoline() +var libc_setxattr_trampoline_addr uintptr -//go:linkname libc_setxattr libc_setxattr //go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -600,16 +552,15 @@ func fsetxattr(fd int, attr string, data *byte, size int, position uint32, optio if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fsetxattr_trampoline() +var libc_fsetxattr_trampoline_addr uintptr -//go:linkname libc_fsetxattr libc_fsetxattr //go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -625,16 +576,15 @@ func removexattr(path string, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_removexattr_trampoline() +var libc_removexattr_trampoline_addr uintptr -//go:linkname libc_removexattr libc_removexattr //go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -645,16 +595,15 @@ func fremovexattr(fd int, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fremovexattr_trampoline() +var libc_fremovexattr_trampoline_addr uintptr -//go:linkname libc_fremovexattr libc_fremovexattr //go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -665,7 +614,7 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro if err != nil { return } - r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -673,15 +622,14 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro return } -func libc_listxattr_trampoline() +var libc_listxattr_trampoline_addr uintptr -//go:linkname libc_listxattr libc_listxattr //go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -689,30 +637,28 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { return } -func libc_flistxattr_trampoline() +var libc_flistxattr_trampoline_addr uintptr -//go:linkname libc_flistxattr libc_flistxattr //go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + _, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setattrlist_trampoline() +var libc_setattrlist_trampoline_addr uintptr -//go:linkname libc_setattrlist libc_setattrlist //go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -720,39 +666,36 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) { return } -func libc_fcntl_trampoline() +var libc_fcntl_trampoline_addr uintptr -//go:linkname libc_fcntl libc_fcntl //go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_kill_trampoline() +var libc_kill_trampoline_addr uintptr -//go:linkname libc_kill libc_kill //go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_ioctl_trampoline() +var libc_ioctl_trampoline_addr uintptr -//go:linkname libc_ioctl libc_ioctl //go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -764,31 +707,29 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_sysctl_trampoline() +var libc_sysctl_trampoline_addr uintptr -//go:linkname libc_sysctl libc_sysctl //go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_sendfile_trampoline() +var libc_sendfile_trampoline_addr uintptr -//go:linkname libc_sendfile libc_sendfile //go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -799,31 +740,29 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_access_trampoline() +var libc_access_trampoline_addr uintptr -//go:linkname libc_access libc_access //go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_adjtime_trampoline() +var libc_adjtime_trampoline_addr uintptr -//go:linkname libc_adjtime libc_adjtime //go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -834,16 +773,15 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_chdir_trampoline() +var libc_chdir_trampoline_addr uintptr -//go:linkname libc_chdir libc_chdir //go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -854,16 +792,15 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_chflags_trampoline() +var libc_chflags_trampoline_addr uintptr -//go:linkname libc_chflags libc_chflags //go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -874,16 +811,15 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_chmod_trampoline() +var libc_chmod_trampoline_addr uintptr -//go:linkname libc_chmod libc_chmod //go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -894,16 +830,15 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_chown_trampoline() +var libc_chown_trampoline_addr uintptr -//go:linkname libc_chown libc_chown //go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -914,52 +849,97 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_chroot_trampoline() +var libc_chroot_trampoline_addr uintptr -//go:linkname libc_chroot libc_chroot //go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_clock_gettime_trampoline() +var libc_clock_gettime_trampoline_addr uintptr -//go:linkname libc_clock_gettime libc_clock_gettime //go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_close_trampoline() +var libc_close_trampoline_addr uintptr -//go:linkname libc_close libc_close //go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefile_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefileat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -967,24 +947,22 @@ func Dup(fd int) (nfd int, err error) { return } -func libc_dup_trampoline() +var libc_dup_trampoline_addr uintptr -//go:linkname libc_dup libc_dup //go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_dup2_trampoline() +var libc_dup2_trampoline_addr uintptr -//go:linkname libc_dup2 libc_dup2 //go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1000,28 +978,26 @@ func Exchangedata(path1 string, path2 string, options int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_exchangedata_trampoline() +var libc_exchangedata_trampoline_addr uintptr -//go:linkname libc_exchangedata libc_exchangedata //go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) return } -func libc_exit_trampoline() +var libc_exit_trampoline_addr uintptr -//go:linkname libc_exit libc_exit //go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1032,61 +1008,57 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_faccessat_trampoline() +var libc_faccessat_trampoline_addr uintptr -//go:linkname libc_faccessat libc_faccessat //go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchdir_trampoline() +var libc_fchdir_trampoline_addr uintptr -//go:linkname libc_fchdir libc_fchdir //go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchflags_trampoline() +var libc_fchflags_trampoline_addr uintptr -//go:linkname libc_fchflags libc_fchflags //go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchmod_trampoline() +var libc_fchmod_trampoline_addr uintptr -//go:linkname libc_fchmod libc_fchmod //go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1097,31 +1069,29 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchmodat_trampoline() +var libc_fchmodat_trampoline_addr uintptr -//go:linkname libc_fchmodat libc_fchmodat //go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchown_trampoline() +var libc_fchown_trampoline_addr uintptr -//go:linkname libc_fchown libc_fchown //go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1132,37 +1102,54 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fchownat_trampoline() +var libc_fchownat_trampoline_addr uintptr -//go:linkname libc_fchownat libc_fchownat //go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fclonefileat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_flock_trampoline() +var libc_flock_trampoline_addr uintptr -//go:linkname libc_flock libc_flock //go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1170,97 +1157,111 @@ func Fpathconf(fd int, name int) (val int, err error) { return } -func libc_fpathconf_trampoline() +var libc_fpathconf_trampoline_addr uintptr -//go:linkname libc_fpathconf libc_fpathconf //go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fsync_trampoline() +var libc_fsync_trampoline_addr uintptr -//go:linkname libc_fsync libc_fsync //go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_ftruncate_trampoline() +var libc_ftruncate_trampoline_addr uintptr -//go:linkname libc_ftruncate libc_ftruncate //go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdtablesize() (size int) { - r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) + r0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0) size = int(r0) return } -func libc_getdtablesize_trampoline() +var libc_getdtablesize_trampoline_addr uintptr -//go:linkname libc_getdtablesize libc_getdtablesize //go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) egid = int(r0) return } -func libc_getegid_trampoline() +var libc_getegid_trampoline_addr uintptr -//go:linkname libc_getegid libc_getegid //go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } -func libc_geteuid_trampoline() +var libc_geteuid_trampoline_addr uintptr -//go:linkname libc_geteuid libc_geteuid //go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) gid = int(r0) return } -func libc_getgid_trampoline() +var libc_getgid_trampoline_addr uintptr -//go:linkname libc_getgid libc_getgid //go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1268,54 +1269,50 @@ func Getpgid(pid int) (pgid int, err error) { return } -func libc_getpgid_trampoline() +var libc_getpgid_trampoline_addr uintptr -//go:linkname libc_getpgid libc_getpgid //go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) pgrp = int(r0) return } -func libc_getpgrp_trampoline() +var libc_getpgrp_trampoline_addr uintptr -//go:linkname libc_getpgrp libc_getpgrp //go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) pid = int(r0) return } -func libc_getpid_trampoline() +var libc_getpid_trampoline_addr uintptr -//go:linkname libc_getpid libc_getpid //go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) ppid = int(r0) return } -func libc_getppid_trampoline() +var libc_getppid_trampoline_addr uintptr -//go:linkname libc_getppid libc_getppid //go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1323,45 +1320,42 @@ func Getpriority(which int, who int) (prio int, err error) { return } -func libc_getpriority_trampoline() +var libc_getpriority_trampoline_addr uintptr -//go:linkname libc_getpriority libc_getpriority //go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getrlimit_trampoline() +var libc_getrlimit_trampoline_addr uintptr -//go:linkname libc_getrlimit libc_getrlimit //go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_getrusage_trampoline() +var libc_getrusage_trampoline_addr uintptr -//go:linkname libc_getrusage libc_getrusage //go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1369,56 +1363,52 @@ func Getsid(pid int) (sid int, err error) { return } -func libc_getsid_trampoline() +var libc_getsid_trampoline_addr uintptr -//go:linkname libc_getsid libc_getsid //go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_gettimeofday_trampoline() +var libc_gettimeofday_trampoline_addr uintptr -//go:linkname libc_gettimeofday libc_gettimeofday //go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } -func libc_getuid_trampoline() +var libc_getuid_trampoline_addr uintptr -//go:linkname libc_getuid libc_getuid //go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) tainted = bool(r0 != 0) return } -func libc_issetugid_trampoline() +var libc_issetugid_trampoline_addr uintptr -//go:linkname libc_issetugid libc_issetugid //go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1426,9 +1416,8 @@ func Kqueue() (fd int, err error) { return } -func libc_kqueue_trampoline() +var libc_kqueue_trampoline_addr uintptr -//go:linkname libc_kqueue libc_kqueue //go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1439,16 +1428,15 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_lchown_trampoline() +var libc_lchown_trampoline_addr uintptr -//go:linkname libc_lchown libc_lchown //go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1464,16 +1452,15 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_link_trampoline() +var libc_link_trampoline_addr uintptr -//go:linkname libc_link libc_link //go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1489,31 +1476,29 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_linkat_trampoline() +var libc_linkat_trampoline_addr uintptr -//go:linkname libc_linkat libc_linkat //go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_listen_trampoline() +var libc_listen_trampoline_addr uintptr -//go:linkname libc_listen libc_listen //go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1524,16 +1509,15 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mkdir_trampoline() +var libc_mkdir_trampoline_addr uintptr -//go:linkname libc_mkdir libc_mkdir //go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1544,16 +1528,15 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mkdirat_trampoline() +var libc_mkdirat_trampoline_addr uintptr -//go:linkname libc_mkdirat libc_mkdirat //go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1564,16 +1547,15 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mkfifo_trampoline() +var libc_mkfifo_trampoline_addr uintptr -//go:linkname libc_mkfifo libc_mkfifo //go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1584,16 +1566,15 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_mknod_trampoline() +var libc_mknod_trampoline_addr uintptr -//go:linkname libc_mknod libc_mknod //go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1604,7 +1585,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1612,9 +1593,8 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } -func libc_open_trampoline() +var libc_open_trampoline_addr uintptr -//go:linkname libc_open libc_open //go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1625,7 +1605,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1633,9 +1613,8 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } -func libc_openat_trampoline() +var libc_openat_trampoline_addr uintptr -//go:linkname libc_openat libc_openat //go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1646,7 +1625,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1654,9 +1633,8 @@ func Pathconf(path string, name int) (val int, err error) { return } -func libc_pathconf_trampoline() +var libc_pathconf_trampoline_addr uintptr -//go:linkname libc_pathconf libc_pathconf //go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1668,7 +1646,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1676,9 +1654,8 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { return } -func libc_pread_trampoline() +var libc_pread_trampoline_addr uintptr -//go:linkname libc_pread libc_pread //go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1690,7 +1667,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1698,9 +1675,8 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { return } -func libc_pwrite_trampoline() +var libc_pwrite_trampoline_addr uintptr -//go:linkname libc_pwrite libc_pwrite //go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1712,7 +1688,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1720,9 +1696,8 @@ func read(fd int, p []byte) (n int, err error) { return } -func libc_read_trampoline() +var libc_read_trampoline_addr uintptr -//go:linkname libc_read libc_read //go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1739,7 +1714,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1747,9 +1722,8 @@ func Readlink(path string, buf []byte) (n int, err error) { return } -func libc_readlink_trampoline() +var libc_readlink_trampoline_addr uintptr -//go:linkname libc_readlink libc_readlink //go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1766,7 +1740,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1774,9 +1748,8 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } -func libc_readlinkat_trampoline() +var libc_readlinkat_trampoline_addr uintptr -//go:linkname libc_readlinkat libc_readlinkat //go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1792,16 +1765,15 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_rename_trampoline() +var libc_rename_trampoline_addr uintptr -//go:linkname libc_rename libc_rename //go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1817,16 +1789,15 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_renameat_trampoline() +var libc_renameat_trampoline_addr uintptr -//go:linkname libc_renameat libc_renameat //go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1837,16 +1808,15 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_revoke_trampoline() +var libc_revoke_trampoline_addr uintptr -//go:linkname libc_revoke libc_revoke //go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1857,22 +1827,21 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_rmdir_trampoline() +var libc_rmdir_trampoline_addr uintptr -//go:linkname libc_rmdir libc_rmdir //go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence)) + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) newoffset = int64(r0) if e1 != 0 { err = errnoErr(e1) @@ -1880,15 +1849,14 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } -func libc_lseek_trampoline() +var libc_lseek_trampoline_addr uintptr -//go:linkname libc_lseek libc_lseek //go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1896,54 +1864,50 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err return } -func libc_select_trampoline() +var libc_select_trampoline_addr uintptr -//go:linkname libc_select libc_select //go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) + _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setegid_trampoline() +var libc_setegid_trampoline_addr uintptr -//go:linkname libc_setegid libc_setegid //go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_seteuid_trampoline() +var libc_seteuid_trampoline_addr uintptr -//go:linkname libc_seteuid libc_seteuid //go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setgid_trampoline() +var libc_setgid_trampoline_addr uintptr -//go:linkname libc_setgid libc_setgid //go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1954,112 +1918,105 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setlogin_trampoline() +var libc_setlogin_trampoline_addr uintptr -//go:linkname libc_setlogin libc_setlogin //go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setpgid_trampoline() +var libc_setpgid_trampoline_addr uintptr -//go:linkname libc_setpgid libc_setpgid //go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setpriority_trampoline() +var libc_setpriority_trampoline_addr uintptr -//go:linkname libc_setpriority libc_setpriority //go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setprivexec(flag int) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) + _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setprivexec_trampoline() +var libc_setprivexec_trampoline_addr uintptr -//go:linkname libc_setprivexec libc_setprivexec //go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setregid_trampoline() +var libc_setregid_trampoline_addr uintptr -//go:linkname libc_setregid libc_setregid //go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setreuid_trampoline() +var libc_setreuid_trampoline_addr uintptr -//go:linkname libc_setreuid libc_setreuid //go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setrlimit_trampoline() +var libc_setrlimit_trampoline_addr uintptr -//go:linkname libc_setrlimit libc_setrlimit //go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -2067,39 +2024,36 @@ func Setsid() (pid int, err error) { return } -func libc_setsid_trampoline() +var libc_setsid_trampoline_addr uintptr -//go:linkname libc_setsid libc_setsid //go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_settimeofday_trampoline() +var libc_settimeofday_trampoline_addr uintptr -//go:linkname libc_settimeofday libc_settimeofday //go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_setuid_trampoline() +var libc_setuid_trampoline_addr uintptr -//go:linkname libc_setuid libc_setuid //go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2115,16 +2069,15 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_symlink_trampoline() +var libc_symlink_trampoline_addr uintptr -//go:linkname libc_symlink libc_symlink //go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2140,31 +2093,29 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } -func libc_symlinkat_trampoline() +var libc_symlinkat_trampoline_addr uintptr -//go:linkname libc_symlinkat libc_symlinkat //go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_sync_trampoline() +var libc_sync_trampoline_addr uintptr -//go:linkname libc_sync libc_sync //go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2175,29 +2126,27 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_truncate_trampoline() +var libc_truncate_trampoline_addr uintptr -//go:linkname libc_truncate libc_truncate //go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) oldmask = int(r0) return } -func libc_umask_trampoline() +var libc_umask_trampoline_addr uintptr -//go:linkname libc_umask libc_umask //go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2208,16 +2157,15 @@ func Undelete(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_undelete_trampoline() +var libc_undelete_trampoline_addr uintptr -//go:linkname libc_undelete libc_undelete //go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2228,16 +2176,15 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_unlink_trampoline() +var libc_unlink_trampoline_addr uintptr -//go:linkname libc_unlink libc_unlink //go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2248,16 +2195,15 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } -func libc_unlinkat_trampoline() +var libc_unlinkat_trampoline_addr uintptr -//go:linkname libc_unlinkat libc_unlinkat //go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2268,16 +2214,15 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_unmount_trampoline() +var libc_unmount_trampoline_addr uintptr -//go:linkname libc_unmount libc_unmount //go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2289,7 +2234,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -2297,15 +2242,14 @@ func write(fd int, p []byte) (n int, err error) { return } -func libc_write_trampoline() +var libc_write_trampoline_addr uintptr -//go:linkname libc_write libc_write //go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -2313,30 +2257,28 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } -func libc_mmap_trampoline() +var libc_mmap_trampoline_addr uintptr -//go:linkname libc_mmap libc_mmap //go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_munmap_trampoline() +var libc_munmap_trampoline_addr uintptr -//go:linkname libc_munmap libc_munmap //go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -2347,7 +2289,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -2358,16 +2300,15 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fstat_trampoline() +var libc_fstat_trampoline_addr uintptr -//go:linkname libc_fstat libc_fstat //go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2378,37 +2319,35 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fstatat_trampoline() +var libc_fstatat_trampoline_addr uintptr -//go:linkname libc_fstatat libc_fstatat //go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_fstatfs_trampoline() +var libc_fstatfs_trampoline_addr uintptr -//go:linkname libc_fstatfs libc_fstatfs //go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -2416,9 +2355,8 @@ func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { return } -func libc_getfsstat_trampoline() +var libc_getfsstat_trampoline_addr uintptr -//go:linkname libc_getfsstat libc_getfsstat //go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2429,36 +2367,48 @@ func Lstat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_lstat_trampoline() +var libc_lstat_trampoline_addr uintptr -//go:linkname libc_lstat libc_lstat //go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ptrace_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Stat(path string, stat *Stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_stat_trampoline() +var libc_stat_trampoline_addr uintptr -//go:linkname libc_stat libc_stat //go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -2469,14 +2419,13 @@ func Statfs(path string, stat *Statfs_t) (err error) { if err != nil { return } - _, _, e1 := syscall_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } -func libc_statfs_trampoline() +var libc_statfs_trampoline_addr uintptr -//go:linkname libc_statfs libc_statfs //go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s index 40cce1bb28..33e19776db 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s @@ -1,282 +1,859 @@ // go run mkasm_darwin.go arm64 // Code generated by the command above; DO NOT EDIT. +//go:build go1.12 // +build go1.12 #include "textflag.h" -TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgroups(SB) -TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgroups(SB) -TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_wait4(SB) -TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_accept(SB) -TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_bind(SB) -TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_connect(SB) -TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socket(SB) -TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockopt(SB) -TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsockopt(SB) -TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpeername(SB) -TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockname(SB) -TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_shutdown(SB) -TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socketpair(SB) -TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvfrom(SB) -TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendto(SB) -TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvmsg(SB) -TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendmsg(SB) -TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kevent(SB) -TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) -TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) -TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_poll(SB) -TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_madvise(SB) -TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlock(SB) -TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlockall(SB) -TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mprotect(SB) -TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_msync(SB) -TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlock(SB) -TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlockall(SB) -TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 - JMP libc_getattrlist(SB) -TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pipe(SB) -TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) + +TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getxattr(SB) -TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) + +TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fgetxattr(SB) -TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) + +TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setxattr(SB) -TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) + +TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fsetxattr(SB) -TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) + +TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_removexattr(SB) -TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) + +TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fremovexattr(SB) -TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) + +TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_listxattr(SB) -TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) + +TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_flistxattr(SB) -TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) + +TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setattrlist(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fcntl(SB) -TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kill(SB) -TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) -TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sysctl(SB) -TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) -TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_access(SB) -TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_adjtime(SB) -TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chdir(SB) -TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chflags(SB) -TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chmod(SB) -TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chown(SB) -TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chroot(SB) -TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_clock_gettime(SB) -TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_close(SB) -TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) + +GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) + +TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) + +GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup(SB) -TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup2(SB) -TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_exchangedata(SB) -TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_exit(SB) -TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_faccessat(SB) -TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchdir(SB) -TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchflags(SB) -TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmod(SB) -TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmodat(SB) -TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchown(SB) -TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchownat(SB) -TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) + +GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_flock(SB) -TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fpathconf(SB) -TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fsync(SB) -TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ftruncate(SB) -TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) + +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getdtablesize(SB) -TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getegid(SB) -TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_geteuid(SB) -TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgid(SB) -TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgid(SB) -TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgrp(SB) -TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpid(SB) -TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getppid(SB) -TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpriority(SB) -TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrlimit(SB) -TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrusage(SB) -TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsid(SB) -TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) + +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getuid(SB) -TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_issetugid(SB) -TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kqueue(SB) -TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lchown(SB) -TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_link(SB) -TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_linkat(SB) -TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_listen(SB) -TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdir(SB) -TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdirat(SB) -TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifo(SB) -TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknod(SB) -TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_open(SB) -TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_openat(SB) -TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pathconf(SB) -TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pread(SB) -TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pwrite(SB) -TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_read(SB) -TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlink(SB) -TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlinkat(SB) -TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rename(SB) -TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_renameat(SB) -TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_revoke(SB) -TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rmdir(SB) -TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lseek(SB) -TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_select(SB) -TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setegid(SB) -TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_seteuid(SB) -TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgid(SB) -TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setlogin(SB) -TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpgid(SB) -TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpriority(SB) -TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setprivexec(SB) -TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setregid(SB) -TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setreuid(SB) -TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrlimit(SB) -TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsid(SB) -TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_settimeofday(SB) -TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setuid(SB) -TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlink(SB) -TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlinkat(SB) -TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sync(SB) -TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_truncate(SB) -TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_umask(SB) -TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_undelete(SB) -TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 +DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlink(SB) -TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlinkat(SB) -TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unmount(SB) -TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_write(SB) -TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) -TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) -TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstat(SB) -TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatat(SB) -TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatfs(SB) -TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getfsstat(SB) -TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lstat(SB) -TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) + +GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_stat(SB) -TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0 + +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_statfs(SB) + +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go index fe1fdd78d7..1b6eedfa61 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build dragonfly && amd64 // +build dragonfly,amd64 package unix @@ -214,22 +215,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -378,6 +363,18 @@ func pipe() (r int, w int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func pipe2(p *[2]_C_int, flags int) (r int, w int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + r = int(r0) + w = int(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func extpread(fd int, p []byte, flags int, offset int64) (n int, err error) { var _p0 unsafe.Pointer if len(p) > 0 { @@ -439,6 +436,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go index 600f1d26d2..3e9bddb7b2 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build freebsd && 386 // +build freebsd,386 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go index 064934b0d1..c72a462b91 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build freebsd && amd64 // +build freebsd,amd64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go index 31d2c46165..530d5df90c 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build freebsd && arm // +build freebsd,arm package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go index 4adaaa5618..71e7df9e85 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build freebsd && arm64 // +build freebsd,arm64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go index 92efa1da3c..af5cb064ec 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build illumos && amd64 // +build illumos,amd64 package unix @@ -13,17 +14,26 @@ import ( //go:cgo_import_dynamic libc_preadv preadv "libc.so" //go:cgo_import_dynamic libc_writev writev "libc.so" //go:cgo_import_dynamic libc_pwritev pwritev "libc.so" +//go:cgo_import_dynamic libc_accept4 accept4 "libsocket.so" +//go:cgo_import_dynamic libc_putmsg putmsg "libc.so" +//go:cgo_import_dynamic libc_getmsg getmsg "libc.so" //go:linkname procreadv libc_readv //go:linkname procpreadv libc_preadv //go:linkname procwritev libc_writev //go:linkname procpwritev libc_pwritev +//go:linkname procaccept4 libc_accept4 +//go:linkname procputmsg libc_putmsg +//go:linkname procgetmsg libc_getmsg var ( procreadv, procpreadv, procwritev, - procpwritev syscallFunc + procpwritev, + procaccept4, + procputmsg, + procgetmsg syscallFunc ) // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -85,3 +95,34 @@ func pwritev(fd int, iovs []Iovec, off int64) (n int, err error) { } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept4)), 4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procputmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(flags), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(unsafe.Pointer(flags)), 0, 0) + if e1 != 0 { + err = e1 + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go index 4eec7a7953..7305cc915b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go @@ -1,5 +1,6 @@ // Code generated by mkmerge.go; DO NOT EDIT. +//go:build linux // +build linux package unix @@ -83,6 +84,22 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) @@ -515,6 +532,16 @@ func Close(fd int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func CloseRange(first uint, last uint, flags uint) (err error) { + _, _, e1 := Syscall(SYS_CLOSE_RANGE, uintptr(first), uintptr(last), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) n = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go index 19ebd3ff75..e37096e4de 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && 386 // +build linux,386 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go index 5c562182a1..9919d8486d 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && amd64 // +build linux,amd64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go index dc69d99c61..076754d48d 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && arm // +build linux,arm package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go index 1b897dee05..e893f987f9 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && arm64 // +build linux,arm64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go index 49186843ae..4703cf3c33 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -1,6 +1,7 @@ // go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && mips // +build linux,mips package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go index 9171d3bd2a..a134f9a4d2 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && mips64 // +build linux,mips64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go index 82286f04f9..b1fff2d946 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && mips64le // +build linux,mips64le package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go index 15920621c4..d13d6da01e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && mipsle // +build linux,mipsle package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go new file mode 100644 index 0000000000..927cf1a00f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go @@ -0,0 +1,762 @@ +// go run mksyscall.go -b32 -tags linux,ppc syscall_linux.go syscall_linux_ppc.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && ppc +// +build linux,ppc + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r0)<<32 | int64(r1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length>>32), uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length>>32), uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go index 73a42e2ccb..da8ec03966 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && ppc64 // +build linux,ppc64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go index 6b85595366..083f493bb6 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && ppc64le // +build linux,ppc64le package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go index b76133447e..63b393b802 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && riscv64 // +build linux,riscv64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go index d7032ab1e4..bb347407d3 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && s390x // +build linux,s390x package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go index bcbbdd906e..8edc517e1e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build linux && sparc64 // +build linux,sparc64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go index 3bbd9e39cd..4726ab30a8 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build netbsd && 386 // +build netbsd,386 package unix @@ -362,6 +363,16 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go index d8cf5012c2..fe71456dbc 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build netbsd && amd64 // +build netbsd,amd64 package unix @@ -362,6 +363,16 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go index 1153fe69b8..0b5b2f0143 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build netbsd && arm // +build netbsd,arm package unix @@ -362,6 +363,16 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go index 24b4ebb41f..bfca28648f 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build netbsd && arm64 // +build netbsd,arm64 package unix @@ -362,6 +363,16 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go index b44b31aeb1..8f80f4ade5 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build openbsd && 386 // +build openbsd,386 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go index 67f93ee76d..3a47aca7bf 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build openbsd && amd64 // +build openbsd,amd64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go index d7c878b1d0..883a9b45e8 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go @@ -1,6 +1,7 @@ // go run mksyscall.go -l32 -openbsd -arm -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build openbsd && arm // +build openbsd,arm package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go index 8facd695d5..aac7fdc95e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -openbsd -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build openbsd && arm64 // +build openbsd,arm64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go index ec6bd5bb73..8776187462 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go @@ -1,6 +1,7 @@ // go run mksyscall.go -openbsd -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build openbsd && mips64 // +build openbsd,mips64 package unix diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go index a96165d4bf..4e18d5c99f 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go @@ -1,6 +1,7 @@ // go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build solaris && amd64 // +build solaris,amd64 package unix @@ -11,6 +12,7 @@ import ( ) //go:cgo_import_dynamic libc_pipe pipe "libc.so" +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" //go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so" //go:cgo_import_dynamic libc_getcwd getcwd "libc.so" //go:cgo_import_dynamic libc_getgroups getgroups "libc.so" @@ -114,6 +116,7 @@ import ( //go:cgo_import_dynamic libc_statvfs statvfs "libc.so" //go:cgo_import_dynamic libc_symlink symlink "libc.so" //go:cgo_import_dynamic libc_sync sync "libc.so" +//go:cgo_import_dynamic libc_sysconf sysconf "libc.so" //go:cgo_import_dynamic libc_times times "libc.so" //go:cgo_import_dynamic libc_truncate truncate "libc.so" //go:cgo_import_dynamic libc_fsync fsync "libc.so" @@ -140,6 +143,7 @@ import ( //go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" //go:linkname procpipe libc_pipe +//go:linkname procpipe2 libc_pipe2 //go:linkname procgetsockname libc_getsockname //go:linkname procGetcwd libc_getcwd //go:linkname procgetgroups libc_getgroups @@ -243,6 +247,7 @@ import ( //go:linkname procStatvfs libc_statvfs //go:linkname procSymlink libc_symlink //go:linkname procSync libc_sync +//go:linkname procSysconf libc_sysconf //go:linkname procTimes libc_times //go:linkname procTruncate libc_truncate //go:linkname procFsync libc_fsync @@ -270,6 +275,7 @@ import ( var ( procpipe, + procpipe2, procgetsockname, procGetcwd, procgetgroups, @@ -373,6 +379,7 @@ var ( procStatvfs, procSymlink, procSync, + procSysconf, procTimes, procTruncate, procFsync, @@ -412,6 +419,16 @@ func pipe(p *[2]_C_int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) if e1 != 0 { @@ -602,8 +619,9 @@ func __minor(version int, dev uint64) (val uint) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) +func ioctlRet(fd int, req uint, arg uintptr) (ret int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) + ret = int(r0) if e1 != 0 { err = e1 } @@ -1674,6 +1692,17 @@ func Sync() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Sysconf(which int) (n int64, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSysconf)), 1, uintptr(which), 0, 0, 0, 0, 0) + n = int64(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Times(tms *Tms) (ticks uintptr, err error) { r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0) ticks = uintptr(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go new file mode 100644 index 0000000000..f2079457c6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go @@ -0,0 +1,1255 @@ +// go run mksyscall.go -tags zos,s390x syscall_zos_s390x.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(SYS___ACCEPT_A, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(SYS___BIND_A, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(SYS___CONNECT_A, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawsyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawsyscall(SYS___GETPEERNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawsyscall(SYS___GETSOCKNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(SYS___RECVFROM_A, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(SYS___SENDTO_A, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(SYS___RECVMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(SYS___SENDMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___ACCESS_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHMOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Creat(path string, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(SYS___CREAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, _, e1 := syscall_syscall(SYS_DUP, uintptr(oldfd), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + _, _, e1 := syscall_syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Errno2() (er2 int) { + uer2, _, _ := syscall_syscall(SYS___ERRNO2, 0, 0, 0) + er2 = int(uer2) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Err2ad() (eadd *int) { + ueadd, _, _ := syscall_syscall(SYS___ERR2AD, 0, 0, 0) + eadd = (*int)(unsafe.Pointer(ueadd)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) { + r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + retval = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *Stat_LE_t) (err error) { + _, _, e1 := syscall_syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs(fd int, stat *Statvfs_t) (err error) { + _, _, e1 := syscall_syscall(SYS_FSTATVFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpagesize() (pgsize int) { + r0, _, _ := syscall_syscall(SYS_GETPAGESIZE, 0, 0, 0) + pgsize = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Poll(fds []PollFd, timeout int) (n int, err error) { + var _p0 unsafe.Pointer + if len(fds) > 0 { + _p0 = unsafe.Pointer(&fds[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS_POLL, uintptr(_p0), uintptr(len(fds)), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := syscall_syscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) + ticks = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func W_Getmntent(buff *byte, size int) (lastsys int, err error) { + r0, _, e1 := syscall_syscall(SYS_W_GETMNTENT, uintptr(unsafe.Pointer(buff)), uintptr(size), 0) + lastsys = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func W_Getmntent_A(buff *byte, size int) (lastsys int, err error) { + r0, _, e1 := syscall_syscall(SYS___W_GETMNTENT_A, uintptr(unsafe.Pointer(buff)), uintptr(size), 0) + lastsys = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(filesystem) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(fstype) + if err != nil { + return + } + var _p3 *byte + _p3, err = BytePtrFromString(parm) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(SYS___MOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func unmount(filesystem string, mtm int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(filesystem) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UMOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mtm), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHROOT_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := syscall_rawsyscall(SYS___UNAME_A, uintptr(unsafe.Pointer(buf)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gethostname(buf []byte) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(SYS___GETHOSTNAME_A, uintptr(_p0), uintptr(len(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (pid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETPPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrusage(who int, rusage *rusage_zos) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig Signal) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___LCHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___LINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := syscall_syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *Stat_LE_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___LSTAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___MKDIR_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___MKFIFO_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___MKNOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS___READLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___RENAME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___RMDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := syscall_syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_syscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(uid int) (err error) { + _, _, e1 := syscall_syscall(SYS_SETGID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, statLE *Stat_LE_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___STAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___SYMLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + syscall_syscall(SYS_SYNC, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___TRUNCATE_A, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tcgetattr(fildes int, termptr *Termios) (err error) { + _, _, e1 := syscall_syscall(SYS_TCGETATTR, uintptr(fildes), uintptr(unsafe.Pointer(termptr)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tcsetattr(fildes int, when int, termptr *Termios) (err error) { + _, _, e1 := syscall_syscall(SYS_TCSETATTR, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _, _ := syscall_syscall(SYS_UMASK, uintptr(mask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UNLINK_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, utim *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UTIME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(SYS___OPEN_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func remove(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) { + r0, _, e1 := syscall_syscall(SYS_WAITPID, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options)) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tv *timeval_zos) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UTIMES_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) { + r0, _, e1 := syscall_syscall6(SYS_SELECT, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go index 102f1ab475..9e9d0b2a9c 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go @@ -1,6 +1,7 @@ // go run mksysctl_openbsd.go // Code generated by the command above; DO NOT EDIT. +//go:build 386 && openbsd // +build 386,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go index 4866fced8a..adecd09667 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go @@ -1,6 +1,7 @@ // go run mksysctl_openbsd.go // Code generated by the command above; DO NOT EDIT. +//go:build amd64 && openbsd // +build amd64,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go index d3801eb24b..8ea52a4a18 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go @@ -1,6 +1,7 @@ // go run mksysctl_openbsd.go // Code generated by the command above; DO NOT EDIT. +//go:build arm && openbsd // +build arm,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go index ba4304fd23..154b57ae3e 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go @@ -1,6 +1,7 @@ // go run mksysctl_openbsd.go // Code generated by the command above; DO NOT EDIT. +//go:build arm64 && openbsd // +build arm64,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go index aca34b3493..d96bb2ba4d 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go @@ -1,6 +1,7 @@ // go run mksysctl_openbsd.go // Code generated by the command above; DO NOT EDIT. +//go:build mips64 && openbsd // +build mips64,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go deleted file mode 100644 index f33614532f..0000000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go +++ /dev/null @@ -1,436 +0,0 @@ -// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syscall.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,darwin - -package unix - -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TYPEFILTER = 177 - SYS_KDEBUG_TRACE_STRING = 178 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_THREAD_SELFCOUNTS = 186 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS_KEVENT_QOS = 374 - SYS_KEVENT_ID = 375 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS_PSELECT = 394 - SYS_PSELECT_NOCANCEL = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_USRCTL = 445 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_CLONEFILEAT = 462 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAMEATX_NP = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_NETAGENT_TRIGGER = 490 - SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 - SYS_MICROSTACKSHOT = 492 - SYS_GRAB_PGO_DATA = 493 - SYS_PERSONA = 494 - SYS_WORK_INTERVAL_CTL = 499 - SYS_GETENTROPY = 500 - SYS_NECP_OPEN = 501 - SYS_NECP_CLIENT_ACTION = 502 - SYS___NEXUS_OPEN = 503 - SYS___NEXUS_REGISTER = 504 - SYS___NEXUS_DEREGISTER = 505 - SYS___NEXUS_CREATE = 506 - SYS___NEXUS_DESTROY = 507 - SYS___NEXUS_GET_OPT = 508 - SYS___NEXUS_SET_OPT = 509 - SYS___CHANNEL_OPEN = 510 - SYS___CHANNEL_GET_INFO = 511 - SYS___CHANNEL_SYNC = 512 - SYS___CHANNEL_GET_OPT = 513 - SYS___CHANNEL_SET_OPT = 514 - SYS_ULOCK_WAIT = 515 - SYS_ULOCK_WAKE = 516 - SYS_FCLONEFILEAT = 517 - SYS_FS_SNAPSHOT = 518 - SYS_TERMINATE_WITH_PAYLOAD = 520 - SYS_ABORT_WITH_PAYLOAD = 521 - SYS_NECP_SESSION_OPEN = 522 - SYS_NECP_SESSION_ACTION = 523 - SYS_SETATTRLISTAT = 524 - SYS_NET_QOS_GUIDELINE = 525 - SYS_FMOUNT = 526 - SYS_NTP_ADJTIME = 527 - SYS_NTP_GETTIME = 528 - SYS_OS_FAULT_WITH_PAYLOAD = 529 - SYS_MAXSYSCALL = 530 - SYS_INVALID = 63 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go index 654dd3da3b..f8298ff9b5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go @@ -1,10 +1,12 @@ // go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && darwin // +build amd64,darwin package unix +// Deprecated: Use libSystem wrappers instead of direct syscalls. const ( SYS_SYSCALL = 0 SYS_EXIT = 1 diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go deleted file mode 100644 index 103a72ed1c..0000000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go +++ /dev/null @@ -1,436 +0,0 @@ -// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm,darwin - -package unix - -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TYPEFILTER = 177 - SYS_KDEBUG_TRACE_STRING = 178 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_THREAD_SELFCOUNTS = 186 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS_KEVENT_QOS = 374 - SYS_KEVENT_ID = 375 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS_PSELECT = 394 - SYS_PSELECT_NOCANCEL = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_USRCTL = 445 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_CLONEFILEAT = 462 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAMEATX_NP = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_NETAGENT_TRIGGER = 490 - SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 - SYS_MICROSTACKSHOT = 492 - SYS_GRAB_PGO_DATA = 493 - SYS_PERSONA = 494 - SYS_WORK_INTERVAL_CTL = 499 - SYS_GETENTROPY = 500 - SYS_NECP_OPEN = 501 - SYS_NECP_CLIENT_ACTION = 502 - SYS___NEXUS_OPEN = 503 - SYS___NEXUS_REGISTER = 504 - SYS___NEXUS_DEREGISTER = 505 - SYS___NEXUS_CREATE = 506 - SYS___NEXUS_DESTROY = 507 - SYS___NEXUS_GET_OPT = 508 - SYS___NEXUS_SET_OPT = 509 - SYS___CHANNEL_OPEN = 510 - SYS___CHANNEL_GET_INFO = 511 - SYS___CHANNEL_SYNC = 512 - SYS___CHANNEL_GET_OPT = 513 - SYS___CHANNEL_SET_OPT = 514 - SYS_ULOCK_WAIT = 515 - SYS_ULOCK_WAKE = 516 - SYS_FCLONEFILEAT = 517 - SYS_FS_SNAPSHOT = 518 - SYS_TERMINATE_WITH_PAYLOAD = 520 - SYS_ABORT_WITH_PAYLOAD = 521 - SYS_NECP_SESSION_OPEN = 522 - SYS_NECP_SESSION_ACTION = 523 - SYS_SETATTRLISTAT = 524 - SYS_NET_QOS_GUIDELINE = 525 - SYS_FMOUNT = 526 - SYS_NTP_ADJTIME = 527 - SYS_NTP_GETTIME = 528 - SYS_OS_FAULT_WITH_PAYLOAD = 529 - SYS_MAXSYSCALL = 530 - SYS_INVALID = 63 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go index 7ab2130b96..5eb433bbf0 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go @@ -1,10 +1,12 @@ // go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && darwin // +build arm64,darwin package unix +// Deprecated: Use libSystem wrappers instead of direct syscalls. const ( SYS_SYSCALL = 0 SYS_EXIT = 1 diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go index 464c9a9832..703675c0c4 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go @@ -1,134 +1,131 @@ // go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && dragonfly // +build amd64,dragonfly package unix const ( - // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void exit(int rval); } - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int - SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { int sendmsg(int s, caddr_t msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); } - SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); } - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); } - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); } - SYS_ACCESS = 33 // { int access(char *path, int flags); } - SYS_CHFLAGS = 34 // { int chflags(char *path, int flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, int flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(int fd); } - SYS_PIPE = 42 // { int pipe(void); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { int readlink(char *path, char *buf, int count); } - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { pid_t vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(int from, int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } - SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } - SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } - SYS_GETDOMAINNAME = 162 // { int getdomainname(char *domainname, int len); } - SYS_SETDOMAINNAME = 163 // { int setdomainname(char *domainname, int len); } - SYS_UNAME = 164 // { int uname(struct utsname *name); } - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } - SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); } - SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int - SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } - // SYS_NOSYS = 198; // { int nosys(void); } __syscall __syscall_args int + SYS_EXIT = 1 // { void exit(int rval); } + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int + // SYS_NOSYS = 8; // { int nosys(void); } __nosys nosys_args int + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int + SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, caddr_t msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); } + SYS_ACCESS = 33 // { int access(char *path, int flags); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(int fd); } + SYS_PIPE = 42 // { int pipe(void); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, size_t namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { int readlink(char *path, char *buf, int count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { pid_t vfork(void); } + SYS_SBRK = 69 // { caddr_t sbrk(size_t incr); } + SYS_SSTK = 70 // { int sstk(size_t incr); } + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(int from, int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); } + SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); } SYS_TRUNCATE = 200 // { int truncate(char *path, int pad, off_t length); } SYS_FTRUNCATE = 201 // { int ftruncate(int fd, int pad, off_t length); } @@ -161,8 +158,8 @@ const ( SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, struct iovec *iovp, u_int iovcnt, int flags, off_t offset); } - SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, struct iovec *iovp,u_int iovcnt, int flags, off_t offset); } + SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } + SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } SYS_FHSTATFS = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } SYS_MODNEXT = 300 // { int modnext(int modid); } @@ -225,7 +222,7 @@ const ( SYS_KQUEUE = 362 // { int kqueue(void); } SYS_KEVENT = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } - SYS_LCHFLAGS = 391 // { int lchflags(char *path, int flags); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_VARSYM_SET = 450 // { int varsym_set(int level, const char *name, const char *data); } @@ -302,7 +299,7 @@ const ( SYS_VMM_GUEST_CTL = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); } SYS_VMM_GUEST_SYNC_ADDR = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); } SYS_PROCCTL = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); } - SYS_CHFLAGSAT = 537 // { int chflagsat(int fd, const char *path, int flags, int atflags);} + SYS_CHFLAGSAT = 537 // { int chflagsat(int fd, const char *path, u_long flags, int atflags);} SYS_PIPE2 = 538 // { int pipe2(int *fildes, int flags); } SYS_UTIMENSAT = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); } SYS_FUTIMENS = 540 // { int futimens(int fd, const struct timespec *ts); } @@ -312,4 +309,9 @@ const ( SYS_LWP_SETAFFINITY = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); } SYS_LWP_GETAFFINITY = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); } SYS_LWP_CREATE2 = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); } + SYS_GETCPUCLOCKID = 547 // { int getcpuclockid(pid_t pid, lwpid_t lwp_id, clockid_t *clock_id); } + SYS_WAIT6 = 548 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_LWP_GETNAME = 549 // { int lwp_getname(lwpid_t tid, char *name, size_t len); } + SYS_GETRANDOM = 550 // { ssize_t getrandom(void *buf, size_t len, unsigned flags); } + SYS___REALPATH = 551 // { ssize_t __realpath(const char *path, char *buf, size_t len); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go index 9474974b65..59d5dfc209 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && freebsd // +build 386,freebsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go index 48a7beae7b..342d471d2e 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && freebsd // +build amd64,freebsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go index 4a6dfd4a74..e2e3d72c5b 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && freebsd // +build arm,freebsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go index 3e51af8edd..61ad5ca3c1 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && freebsd // +build arm64,freebsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go index a597e061ca..fbc59b7fdd 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && linux // +build 386,linux package unix @@ -431,7 +432,11 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 SYS_OPENAT2 = 437 SYS_PIDFD_GETFD = 438 SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go index 8c102e55a1..04d16d771e 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && linux // +build amd64,linux package unix @@ -353,7 +354,11 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 SYS_OPENAT2 = 437 SYS_PIDFD_GETFD = 438 SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go index 98f9b68fb9..3b1c105137 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && linux // +build arm,linux package unix @@ -395,7 +396,11 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 SYS_OPENAT2 = 437 SYS_PIDFD_GETFD = 438 SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go index 4dabc33fbc..3198adcf77 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && linux // +build arm64,linux package unix @@ -298,7 +299,11 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 SYS_OPENAT2 = 437 SYS_PIDFD_GETFD = 438 SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go index d5724e5964..c877ec6e68 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips && linux // +build mips,linux package unix @@ -416,7 +417,11 @@ const ( SYS_FSPICK = 4433 SYS_PIDFD_OPEN = 4434 SYS_CLONE3 = 4435 + SYS_CLOSE_RANGE = 4436 SYS_OPENAT2 = 4437 SYS_PIDFD_GETFD = 4438 SYS_FACCESSAT2 = 4439 + SYS_PROCESS_MADVISE = 4440 + SYS_EPOLL_PWAIT2 = 4441 + SYS_MOUNT_SETATTR = 4442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go index c1d824a4f3..b5f2903729 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64 && linux // +build mips64,linux package unix @@ -346,7 +347,11 @@ const ( SYS_FSPICK = 5433 SYS_PIDFD_OPEN = 5434 SYS_CLONE3 = 5435 + SYS_CLOSE_RANGE = 5436 SYS_OPENAT2 = 5437 SYS_PIDFD_GETFD = 5438 SYS_FACCESSAT2 = 5439 + SYS_PROCESS_MADVISE = 5440 + SYS_EPOLL_PWAIT2 = 5441 + SYS_MOUNT_SETATTR = 5442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go index 598dd5d637..46077689ab 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64le && linux // +build mips64le,linux package unix @@ -346,7 +347,11 @@ const ( SYS_FSPICK = 5433 SYS_PIDFD_OPEN = 5434 SYS_CLONE3 = 5435 + SYS_CLOSE_RANGE = 5436 SYS_OPENAT2 = 5437 SYS_PIDFD_GETFD = 5438 SYS_FACCESSAT2 = 5439 + SYS_PROCESS_MADVISE = 5440 + SYS_EPOLL_PWAIT2 = 5441 + SYS_MOUNT_SETATTR = 5442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go index c36782d08e..80e6696b39 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mipsle && linux // +build mipsle,linux package unix @@ -416,7 +417,11 @@ const ( SYS_FSPICK = 4433 SYS_PIDFD_OPEN = 4434 SYS_CLONE3 = 4435 + SYS_CLOSE_RANGE = 4436 SYS_OPENAT2 = 4437 SYS_PIDFD_GETFD = 4438 SYS_FACCESSAT2 = 4439 + SYS_PROCESS_MADVISE = 4440 + SYS_EPOLL_PWAIT2 = 4441 + SYS_MOUNT_SETATTR = 4442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go new file mode 100644 index 0000000000..b9d697ffb1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go @@ -0,0 +1,434 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && linux +// +build ppc,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAITPID = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_TIME = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BREAK = 17 + SYS_OLDSTAT = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_STIME = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_OLDFSTAT = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_STTY = 31 + SYS_GTTY = 32 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_FTIME = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_PROF = 44 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_LOCK = 53 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_MPX = 56 + SYS_SETPGID = 57 + SYS_ULIMIT = 58 + SYS_OLDOLDUNAME = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SGETMASK = 68 + SYS_SSETMASK = 69 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRLIMIT = 76 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SELECT = 82 + SYS_SYMLINK = 83 + SYS_OLDLSTAT = 84 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_PROFIL = 98 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_IOPERM = 101 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_OLDUNAME = 109 + SYS_IOPL = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_VM86 = 113 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_MODIFY_LDT = 123 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_QUERY_MODULE = 166 + SYS_POLL = 167 + SYS_NFSSERVCTL = 168 + SYS_SETRESGID = 169 + SYS_GETRESGID = 170 + SYS_PRCTL = 171 + SYS_RT_SIGRETURN = 172 + SYS_RT_SIGACTION = 173 + SYS_RT_SIGPROCMASK = 174 + SYS_RT_SIGPENDING = 175 + SYS_RT_SIGTIMEDWAIT = 176 + SYS_RT_SIGQUEUEINFO = 177 + SYS_RT_SIGSUSPEND = 178 + SYS_PREAD64 = 179 + SYS_PWRITE64 = 180 + SYS_CHOWN = 181 + SYS_GETCWD = 182 + SYS_CAPGET = 183 + SYS_CAPSET = 184 + SYS_SIGALTSTACK = 185 + SYS_SENDFILE = 186 + SYS_GETPMSG = 187 + SYS_PUTPMSG = 188 + SYS_VFORK = 189 + SYS_UGETRLIMIT = 190 + SYS_READAHEAD = 191 + SYS_MMAP2 = 192 + SYS_TRUNCATE64 = 193 + SYS_FTRUNCATE64 = 194 + SYS_STAT64 = 195 + SYS_LSTAT64 = 196 + SYS_FSTAT64 = 197 + SYS_PCICONFIG_READ = 198 + SYS_PCICONFIG_WRITE = 199 + SYS_PCICONFIG_IOBASE = 200 + SYS_MULTIPLEXER = 201 + SYS_GETDENTS64 = 202 + SYS_PIVOT_ROOT = 203 + SYS_FCNTL64 = 204 + SYS_MADVISE = 205 + SYS_MINCORE = 206 + SYS_GETTID = 207 + SYS_TKILL = 208 + SYS_SETXATTR = 209 + SYS_LSETXATTR = 210 + SYS_FSETXATTR = 211 + SYS_GETXATTR = 212 + SYS_LGETXATTR = 213 + SYS_FGETXATTR = 214 + SYS_LISTXATTR = 215 + SYS_LLISTXATTR = 216 + SYS_FLISTXATTR = 217 + SYS_REMOVEXATTR = 218 + SYS_LREMOVEXATTR = 219 + SYS_FREMOVEXATTR = 220 + SYS_FUTEX = 221 + SYS_SCHED_SETAFFINITY = 222 + SYS_SCHED_GETAFFINITY = 223 + SYS_TUXCALL = 225 + SYS_SENDFILE64 = 226 + SYS_IO_SETUP = 227 + SYS_IO_DESTROY = 228 + SYS_IO_GETEVENTS = 229 + SYS_IO_SUBMIT = 230 + SYS_IO_CANCEL = 231 + SYS_SET_TID_ADDRESS = 232 + SYS_FADVISE64 = 233 + SYS_EXIT_GROUP = 234 + SYS_LOOKUP_DCOOKIE = 235 + SYS_EPOLL_CREATE = 236 + SYS_EPOLL_CTL = 237 + SYS_EPOLL_WAIT = 238 + SYS_REMAP_FILE_PAGES = 239 + SYS_TIMER_CREATE = 240 + SYS_TIMER_SETTIME = 241 + SYS_TIMER_GETTIME = 242 + SYS_TIMER_GETOVERRUN = 243 + SYS_TIMER_DELETE = 244 + SYS_CLOCK_SETTIME = 245 + SYS_CLOCK_GETTIME = 246 + SYS_CLOCK_GETRES = 247 + SYS_CLOCK_NANOSLEEP = 248 + SYS_SWAPCONTEXT = 249 + SYS_TGKILL = 250 + SYS_UTIMES = 251 + SYS_STATFS64 = 252 + SYS_FSTATFS64 = 253 + SYS_FADVISE64_64 = 254 + SYS_RTAS = 255 + SYS_SYS_DEBUG_SETCONTEXT = 256 + SYS_MIGRATE_PAGES = 258 + SYS_MBIND = 259 + SYS_GET_MEMPOLICY = 260 + SYS_SET_MEMPOLICY = 261 + SYS_MQ_OPEN = 262 + SYS_MQ_UNLINK = 263 + SYS_MQ_TIMEDSEND = 264 + SYS_MQ_TIMEDRECEIVE = 265 + SYS_MQ_NOTIFY = 266 + SYS_MQ_GETSETATTR = 267 + SYS_KEXEC_LOAD = 268 + SYS_ADD_KEY = 269 + SYS_REQUEST_KEY = 270 + SYS_KEYCTL = 271 + SYS_WAITID = 272 + SYS_IOPRIO_SET = 273 + SYS_IOPRIO_GET = 274 + SYS_INOTIFY_INIT = 275 + SYS_INOTIFY_ADD_WATCH = 276 + SYS_INOTIFY_RM_WATCH = 277 + SYS_SPU_RUN = 278 + SYS_SPU_CREATE = 279 + SYS_PSELECT6 = 280 + SYS_PPOLL = 281 + SYS_UNSHARE = 282 + SYS_SPLICE = 283 + SYS_TEE = 284 + SYS_VMSPLICE = 285 + SYS_OPENAT = 286 + SYS_MKDIRAT = 287 + SYS_MKNODAT = 288 + SYS_FCHOWNAT = 289 + SYS_FUTIMESAT = 290 + SYS_FSTATAT64 = 291 + SYS_UNLINKAT = 292 + SYS_RENAMEAT = 293 + SYS_LINKAT = 294 + SYS_SYMLINKAT = 295 + SYS_READLINKAT = 296 + SYS_FCHMODAT = 297 + SYS_FACCESSAT = 298 + SYS_GET_ROBUST_LIST = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_MOVE_PAGES = 301 + SYS_GETCPU = 302 + SYS_EPOLL_PWAIT = 303 + SYS_UTIMENSAT = 304 + SYS_SIGNALFD = 305 + SYS_TIMERFD_CREATE = 306 + SYS_EVENTFD = 307 + SYS_SYNC_FILE_RANGE2 = 308 + SYS_FALLOCATE = 309 + SYS_SUBPAGE_PROT = 310 + SYS_TIMERFD_SETTIME = 311 + SYS_TIMERFD_GETTIME = 312 + SYS_SIGNALFD4 = 313 + SYS_EVENTFD2 = 314 + SYS_EPOLL_CREATE1 = 315 + SYS_DUP3 = 316 + SYS_PIPE2 = 317 + SYS_INOTIFY_INIT1 = 318 + SYS_PERF_EVENT_OPEN = 319 + SYS_PREADV = 320 + SYS_PWRITEV = 321 + SYS_RT_TGSIGQUEUEINFO = 322 + SYS_FANOTIFY_INIT = 323 + SYS_FANOTIFY_MARK = 324 + SYS_PRLIMIT64 = 325 + SYS_SOCKET = 326 + SYS_BIND = 327 + SYS_CONNECT = 328 + SYS_LISTEN = 329 + SYS_ACCEPT = 330 + SYS_GETSOCKNAME = 331 + SYS_GETPEERNAME = 332 + SYS_SOCKETPAIR = 333 + SYS_SEND = 334 + SYS_SENDTO = 335 + SYS_RECV = 336 + SYS_RECVFROM = 337 + SYS_SHUTDOWN = 338 + SYS_SETSOCKOPT = 339 + SYS_GETSOCKOPT = 340 + SYS_SENDMSG = 341 + SYS_RECVMSG = 342 + SYS_RECVMMSG = 343 + SYS_ACCEPT4 = 344 + SYS_NAME_TO_HANDLE_AT = 345 + SYS_OPEN_BY_HANDLE_AT = 346 + SYS_CLOCK_ADJTIME = 347 + SYS_SYNCFS = 348 + SYS_SENDMMSG = 349 + SYS_SETNS = 350 + SYS_PROCESS_VM_READV = 351 + SYS_PROCESS_VM_WRITEV = 352 + SYS_FINIT_MODULE = 353 + SYS_KCMP = 354 + SYS_SCHED_SETATTR = 355 + SYS_SCHED_GETATTR = 356 + SYS_RENAMEAT2 = 357 + SYS_SECCOMP = 358 + SYS_GETRANDOM = 359 + SYS_MEMFD_CREATE = 360 + SYS_BPF = 361 + SYS_EXECVEAT = 362 + SYS_SWITCH_ENDIAN = 363 + SYS_USERFAULTFD = 364 + SYS_MEMBARRIER = 365 + SYS_MLOCK2 = 378 + SYS_COPY_FILE_RANGE = 379 + SYS_PREADV2 = 380 + SYS_PWRITEV2 = 381 + SYS_KEXEC_FILE_LOAD = 382 + SYS_STATX = 383 + SYS_PKEY_ALLOC = 384 + SYS_PKEY_FREE = 385 + SYS_PKEY_MPROTECT = 386 + SYS_RSEQ = 387 + SYS_IO_PGETEVENTS = 388 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_CLOCK_GETTIME64 = 403 + SYS_CLOCK_SETTIME64 = 404 + SYS_CLOCK_ADJTIME64 = 405 + SYS_CLOCK_GETRES_TIME64 = 406 + SYS_CLOCK_NANOSLEEP_TIME64 = 407 + SYS_TIMER_GETTIME64 = 408 + SYS_TIMER_SETTIME64 = 409 + SYS_TIMERFD_GETTIME64 = 410 + SYS_TIMERFD_SETTIME64 = 411 + SYS_UTIMENSAT_TIME64 = 412 + SYS_PSELECT6_TIME64 = 413 + SYS_PPOLL_TIME64 = 414 + SYS_IO_PGETEVENTS_TIME64 = 416 + SYS_RECVMMSG_TIME64 = 417 + SYS_MQ_TIMEDSEND_TIME64 = 418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 419 + SYS_SEMTIMEDOP_TIME64 = 420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 421 + SYS_FUTEX_TIME64 = 422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go index 9287538d36..08edc54d35 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64 && linux // +build ppc64,linux package unix @@ -395,7 +396,11 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 SYS_OPENAT2 = 437 SYS_PIDFD_GETFD = 438 SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go index 4dafad8352..33b33b0834 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64le && linux // +build ppc64le,linux package unix @@ -395,7 +396,11 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 SYS_OPENAT2 = 437 SYS_PIDFD_GETFD = 438 SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go index 6642cfccdf..66c8a8e09e 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build riscv64 && linux // +build riscv64,linux package unix @@ -297,7 +298,11 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 SYS_OPENAT2 = 437 SYS_PIDFD_GETFD = 438 SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go index 23367b9467..aea5760cea 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build s390x && linux // +build s390x,linux package unix @@ -360,7 +361,11 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 SYS_OPENAT2 = 437 SYS_PIDFD_GETFD = 438 SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go index 083aa0204e..488ca848d1 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -1,6 +1,7 @@ // go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build sparc64 && linux // +build sparc64,linux package unix @@ -374,7 +375,11 @@ const ( SYS_FSMOUNT = 432 SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 + SYS_CLOSE_RANGE = 436 SYS_OPENAT2 = 437 SYS_PIDFD_GETFD = 438 SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go index e66a8c9d39..3a6699eba9 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go @@ -1,6 +1,7 @@ // go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && netbsd // +build 386,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go index 42c788f249..5677cd4f15 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go @@ -1,6 +1,7 @@ // go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && netbsd // +build amd64,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go index 0a0757179b..e784cb6db1 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go @@ -1,6 +1,7 @@ // go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && netbsd // +build arm,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go index 0291c0931b..bd4952efa5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go @@ -1,6 +1,7 @@ // go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; DO NOT EDIT. +//go:build arm64 && netbsd // +build arm64,netbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go index b0207d1c9b..817edbf95c 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && openbsd // +build 386,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go index f0dec6f0b4..ea453614e6 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && openbsd // +build amd64,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go index 33d1dc5404..467971eed6 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && openbsd // +build arm,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go index fe2b689b63..32eec5ed56 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && openbsd // +build arm64,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go index 5c08d573b3..a37f773756 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go @@ -1,6 +1,7 @@ // go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64 && openbsd // +build mips64,openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go new file mode 100644 index 0000000000..073daad43b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go @@ -0,0 +1,2670 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +// TODO: auto-generate. + +const ( + SYS_ACOSD128 = 0xB80 + SYS_ACOSD32 = 0xB7E + SYS_ACOSD64 = 0xB7F + SYS_ACOSHD128 = 0xB83 + SYS_ACOSHD32 = 0xB81 + SYS_ACOSHD64 = 0xB82 + SYS_AIO_FSYNC = 0xC69 + SYS_ASCTIME = 0x0AE + SYS_ASCTIME64 = 0xCD7 + SYS_ASCTIME64_R = 0xCD8 + SYS_ASIND128 = 0xB86 + SYS_ASIND32 = 0xB84 + SYS_ASIND64 = 0xB85 + SYS_ASINHD128 = 0xB89 + SYS_ASINHD32 = 0xB87 + SYS_ASINHD64 = 0xB88 + SYS_ATAN2D128 = 0xB8F + SYS_ATAN2D32 = 0xB8D + SYS_ATAN2D64 = 0xB8E + SYS_ATAND128 = 0xB8C + SYS_ATAND32 = 0xB8A + SYS_ATAND64 = 0xB8B + SYS_ATANHD128 = 0xB92 + SYS_ATANHD32 = 0xB90 + SYS_ATANHD64 = 0xB91 + SYS_BIND2ADDRSEL = 0xD59 + SYS_C16RTOMB = 0xD40 + SYS_C32RTOMB = 0xD41 + SYS_CBRTD128 = 0xB95 + SYS_CBRTD32 = 0xB93 + SYS_CBRTD64 = 0xB94 + SYS_CEILD128 = 0xB98 + SYS_CEILD32 = 0xB96 + SYS_CEILD64 = 0xB97 + SYS_CLEARENV = 0x0C9 + SYS_CLEARERR_UNLOCKED = 0xCA1 + SYS_CLOCK = 0x0AA + SYS_CLOGL = 0xA00 + SYS_CLRMEMF = 0x0BD + SYS_CONJ = 0xA03 + SYS_CONJF = 0xA06 + SYS_CONJL = 0xA09 + SYS_COPYSIGND128 = 0xB9E + SYS_COPYSIGND32 = 0xB9C + SYS_COPYSIGND64 = 0xB9D + SYS_COSD128 = 0xBA1 + SYS_COSD32 = 0xB9F + SYS_COSD64 = 0xBA0 + SYS_COSHD128 = 0xBA4 + SYS_COSHD32 = 0xBA2 + SYS_COSHD64 = 0xBA3 + SYS_CPOW = 0xA0C + SYS_CPOWF = 0xA0F + SYS_CPOWL = 0xA12 + SYS_CPROJ = 0xA15 + SYS_CPROJF = 0xA18 + SYS_CPROJL = 0xA1B + SYS_CREAL = 0xA1E + SYS_CREALF = 0xA21 + SYS_CREALL = 0xA24 + SYS_CSIN = 0xA27 + SYS_CSINF = 0xA2A + SYS_CSINH = 0xA30 + SYS_CSINHF = 0xA33 + SYS_CSINHL = 0xA36 + SYS_CSINL = 0xA2D + SYS_CSNAP = 0x0C5 + SYS_CSQRT = 0xA39 + SYS_CSQRTF = 0xA3C + SYS_CSQRTL = 0xA3F + SYS_CTAN = 0xA42 + SYS_CTANF = 0xA45 + SYS_CTANH = 0xA4B + SYS_CTANHF = 0xA4E + SYS_CTANHL = 0xA51 + SYS_CTANL = 0xA48 + SYS_CTIME = 0x0AB + SYS_CTIME64 = 0xCD9 + SYS_CTIME64_R = 0xCDA + SYS_CTRACE = 0x0C6 + SYS_DIFFTIME = 0x0A7 + SYS_DIFFTIME64 = 0xCDB + SYS_DLADDR = 0xC82 + SYS_DYNALLOC = 0x0C3 + SYS_DYNFREE = 0x0C2 + SYS_ERFCD128 = 0xBAA + SYS_ERFCD32 = 0xBA8 + SYS_ERFCD64 = 0xBA9 + SYS_ERFD128 = 0xBA7 + SYS_ERFD32 = 0xBA5 + SYS_ERFD64 = 0xBA6 + SYS_EXP2D128 = 0xBB0 + SYS_EXP2D32 = 0xBAE + SYS_EXP2D64 = 0xBAF + SYS_EXPD128 = 0xBAD + SYS_EXPD32 = 0xBAB + SYS_EXPD64 = 0xBAC + SYS_EXPM1D128 = 0xBB3 + SYS_EXPM1D32 = 0xBB1 + SYS_EXPM1D64 = 0xBB2 + SYS_FABSD128 = 0xBB6 + SYS_FABSD32 = 0xBB4 + SYS_FABSD64 = 0xBB5 + SYS_FDELREC_UNLOCKED = 0xCA2 + SYS_FDIMD128 = 0xBB9 + SYS_FDIMD32 = 0xBB7 + SYS_FDIMD64 = 0xBB8 + SYS_FDOPEN_UNLOCKED = 0xCFC + SYS_FECLEAREXCEPT = 0xAEA + SYS_FEGETENV = 0xAEB + SYS_FEGETEXCEPTFLAG = 0xAEC + SYS_FEGETROUND = 0xAED + SYS_FEHOLDEXCEPT = 0xAEE + SYS_FEOF_UNLOCKED = 0xCA3 + SYS_FERAISEEXCEPT = 0xAEF + SYS_FERROR_UNLOCKED = 0xCA4 + SYS_FESETENV = 0xAF0 + SYS_FESETEXCEPTFLAG = 0xAF1 + SYS_FESETROUND = 0xAF2 + SYS_FETCHEP = 0x0BF + SYS_FETESTEXCEPT = 0xAF3 + SYS_FEUPDATEENV = 0xAF4 + SYS_FE_DEC_GETROUND = 0xBBA + SYS_FE_DEC_SETROUND = 0xBBB + SYS_FFLUSH_UNLOCKED = 0xCA5 + SYS_FGETC_UNLOCKED = 0xC80 + SYS_FGETPOS64 = 0xCEE + SYS_FGETPOS64_UNLOCKED = 0xCF4 + SYS_FGETPOS_UNLOCKED = 0xCA6 + SYS_FGETS_UNLOCKED = 0xC7C + SYS_FGETWC_UNLOCKED = 0xCA7 + SYS_FGETWS_UNLOCKED = 0xCA8 + SYS_FILENO_UNLOCKED = 0xCA9 + SYS_FLDATA = 0x0C1 + SYS_FLDATA_UNLOCKED = 0xCAA + SYS_FLOCATE_UNLOCKED = 0xCAB + SYS_FLOORD128 = 0xBBE + SYS_FLOORD32 = 0xBBC + SYS_FLOORD64 = 0xBBD + SYS_FMA = 0xA63 + SYS_FMAD128 = 0xBC1 + SYS_FMAD32 = 0xBBF + SYS_FMAD64 = 0xBC0 + SYS_FMAF = 0xA66 + SYS_FMAL = 0xA69 + SYS_FMAX = 0xA6C + SYS_FMAXD128 = 0xBC4 + SYS_FMAXD32 = 0xBC2 + SYS_FMAXD64 = 0xBC3 + SYS_FMAXF = 0xA6F + SYS_FMAXL = 0xA72 + SYS_FMIN = 0xA75 + SYS_FMIND128 = 0xBC7 + SYS_FMIND32 = 0xBC5 + SYS_FMIND64 = 0xBC6 + SYS_FMINF = 0xA78 + SYS_FMINL = 0xA7B + SYS_FMODD128 = 0xBCA + SYS_FMODD32 = 0xBC8 + SYS_FMODD64 = 0xBC9 + SYS_FOPEN64 = 0xD49 + SYS_FOPEN64_UNLOCKED = 0xD4A + SYS_FOPEN_UNLOCKED = 0xCFA + SYS_FPRINTF_UNLOCKED = 0xCAC + SYS_FPUTC_UNLOCKED = 0xC81 + SYS_FPUTS_UNLOCKED = 0xC7E + SYS_FPUTWC_UNLOCKED = 0xCAD + SYS_FPUTWS_UNLOCKED = 0xCAE + SYS_FREAD_NOUPDATE = 0xCEC + SYS_FREAD_NOUPDATE_UNLOCKED = 0xCED + SYS_FREAD_UNLOCKED = 0xC7B + SYS_FREEIFADDRS = 0xCE6 + SYS_FREOPEN64 = 0xD4B + SYS_FREOPEN64_UNLOCKED = 0xD4C + SYS_FREOPEN_UNLOCKED = 0xCFB + SYS_FREXPD128 = 0xBCE + SYS_FREXPD32 = 0xBCC + SYS_FREXPD64 = 0xBCD + SYS_FSCANF_UNLOCKED = 0xCAF + SYS_FSEEK64 = 0xCEF + SYS_FSEEK64_UNLOCKED = 0xCF5 + SYS_FSEEKO64 = 0xCF0 + SYS_FSEEKO64_UNLOCKED = 0xCF6 + SYS_FSEEKO_UNLOCKED = 0xCB1 + SYS_FSEEK_UNLOCKED = 0xCB0 + SYS_FSETPOS64 = 0xCF1 + SYS_FSETPOS64_UNLOCKED = 0xCF7 + SYS_FSETPOS_UNLOCKED = 0xCB3 + SYS_FTELL64 = 0xCF2 + SYS_FTELL64_UNLOCKED = 0xCF8 + SYS_FTELLO64 = 0xCF3 + SYS_FTELLO64_UNLOCKED = 0xCF9 + SYS_FTELLO_UNLOCKED = 0xCB5 + SYS_FTELL_UNLOCKED = 0xCB4 + SYS_FUPDATE = 0x0B5 + SYS_FUPDATE_UNLOCKED = 0xCB7 + SYS_FWIDE_UNLOCKED = 0xCB8 + SYS_FWPRINTF_UNLOCKED = 0xCB9 + SYS_FWRITE_UNLOCKED = 0xC7A + SYS_FWSCANF_UNLOCKED = 0xCBA + SYS_GETDATE64 = 0xD4F + SYS_GETIFADDRS = 0xCE7 + SYS_GETIPV4SOURCEFILTER = 0xC77 + SYS_GETSOURCEFILTER = 0xC79 + SYS_GETSYNTX = 0x0FD + SYS_GETS_UNLOCKED = 0xC7D + SYS_GETTIMEOFDAY64 = 0xD50 + SYS_GETWCHAR_UNLOCKED = 0xCBC + SYS_GETWC_UNLOCKED = 0xCBB + SYS_GMTIME = 0x0B0 + SYS_GMTIME64 = 0xCDC + SYS_GMTIME64_R = 0xCDD + SYS_HYPOTD128 = 0xBD1 + SYS_HYPOTD32 = 0xBCF + SYS_HYPOTD64 = 0xBD0 + SYS_ILOGBD128 = 0xBD4 + SYS_ILOGBD32 = 0xBD2 + SYS_ILOGBD64 = 0xBD3 + SYS_ILOGBF = 0xA7E + SYS_ILOGBL = 0xA81 + SYS_INET6_IS_SRCADDR = 0xD5A + SYS_ISBLANK = 0x0FE + SYS_ISWALNUM = 0x0FF + SYS_LDEXPD128 = 0xBD7 + SYS_LDEXPD32 = 0xBD5 + SYS_LDEXPD64 = 0xBD6 + SYS_LGAMMAD128 = 0xBDA + SYS_LGAMMAD32 = 0xBD8 + SYS_LGAMMAD64 = 0xBD9 + SYS_LIO_LISTIO = 0xC6A + SYS_LLRINT = 0xA84 + SYS_LLRINTD128 = 0xBDD + SYS_LLRINTD32 = 0xBDB + SYS_LLRINTD64 = 0xBDC + SYS_LLRINTF = 0xA87 + SYS_LLRINTL = 0xA8A + SYS_LLROUND = 0xA8D + SYS_LLROUNDD128 = 0xBE0 + SYS_LLROUNDD32 = 0xBDE + SYS_LLROUNDD64 = 0xBDF + SYS_LLROUNDF = 0xA90 + SYS_LLROUNDL = 0xA93 + SYS_LOCALTIM = 0x0B1 + SYS_LOCALTIME = 0x0B1 + SYS_LOCALTIME64 = 0xCDE + SYS_LOCALTIME64_R = 0xCDF + SYS_LOG10D128 = 0xBE6 + SYS_LOG10D32 = 0xBE4 + SYS_LOG10D64 = 0xBE5 + SYS_LOG1PD128 = 0xBE9 + SYS_LOG1PD32 = 0xBE7 + SYS_LOG1PD64 = 0xBE8 + SYS_LOG2D128 = 0xBEC + SYS_LOG2D32 = 0xBEA + SYS_LOG2D64 = 0xBEB + SYS_LOGBD128 = 0xBEF + SYS_LOGBD32 = 0xBED + SYS_LOGBD64 = 0xBEE + SYS_LOGBF = 0xA96 + SYS_LOGBL = 0xA99 + SYS_LOGD128 = 0xBE3 + SYS_LOGD32 = 0xBE1 + SYS_LOGD64 = 0xBE2 + SYS_LRINT = 0xA9C + SYS_LRINTD128 = 0xBF2 + SYS_LRINTD32 = 0xBF0 + SYS_LRINTD64 = 0xBF1 + SYS_LRINTF = 0xA9F + SYS_LRINTL = 0xAA2 + SYS_LROUNDD128 = 0xBF5 + SYS_LROUNDD32 = 0xBF3 + SYS_LROUNDD64 = 0xBF4 + SYS_LROUNDL = 0xAA5 + SYS_MBLEN = 0x0AF + SYS_MBRTOC16 = 0xD42 + SYS_MBRTOC32 = 0xD43 + SYS_MEMSET = 0x0A3 + SYS_MKTIME = 0x0AC + SYS_MKTIME64 = 0xCE0 + SYS_MODFD128 = 0xBF8 + SYS_MODFD32 = 0xBF6 + SYS_MODFD64 = 0xBF7 + SYS_NAN = 0xAA8 + SYS_NAND128 = 0xBFB + SYS_NAND32 = 0xBF9 + SYS_NAND64 = 0xBFA + SYS_NANF = 0xAAA + SYS_NANL = 0xAAC + SYS_NEARBYINT = 0xAAE + SYS_NEARBYINTD128 = 0xBFE + SYS_NEARBYINTD32 = 0xBFC + SYS_NEARBYINTD64 = 0xBFD + SYS_NEARBYINTF = 0xAB1 + SYS_NEARBYINTL = 0xAB4 + SYS_NEXTAFTERD128 = 0xC01 + SYS_NEXTAFTERD32 = 0xBFF + SYS_NEXTAFTERD64 = 0xC00 + SYS_NEXTAFTERF = 0xAB7 + SYS_NEXTAFTERL = 0xABA + SYS_NEXTTOWARD = 0xABD + SYS_NEXTTOWARDD128 = 0xC04 + SYS_NEXTTOWARDD32 = 0xC02 + SYS_NEXTTOWARDD64 = 0xC03 + SYS_NEXTTOWARDF = 0xAC0 + SYS_NEXTTOWARDL = 0xAC3 + SYS_NL_LANGINFO = 0x0FC + SYS_PERROR_UNLOCKED = 0xCBD + SYS_POSIX_FALLOCATE = 0xCE8 + SYS_POSIX_MEMALIGN = 0xCE9 + SYS_POSIX_OPENPT = 0xC66 + SYS_POWD128 = 0xC07 + SYS_POWD32 = 0xC05 + SYS_POWD64 = 0xC06 + SYS_PRINTF_UNLOCKED = 0xCBE + SYS_PSELECT = 0xC67 + SYS_PTHREAD_ATTR_GETSTACK = 0xB3E + SYS_PTHREAD_ATTR_SETSTACK = 0xB3F + SYS_PTHREAD_SECURITY_APPLID_NP = 0xCE4 + SYS_PUTS_UNLOCKED = 0xC7F + SYS_PUTWCHAR_UNLOCKED = 0xCC0 + SYS_PUTWC_UNLOCKED = 0xCBF + SYS_QUANTEXPD128 = 0xD46 + SYS_QUANTEXPD32 = 0xD44 + SYS_QUANTEXPD64 = 0xD45 + SYS_QUANTIZED128 = 0xC0A + SYS_QUANTIZED32 = 0xC08 + SYS_QUANTIZED64 = 0xC09 + SYS_REMAINDERD128 = 0xC0D + SYS_REMAINDERD32 = 0xC0B + SYS_REMAINDERD64 = 0xC0C + SYS_RESIZE_ALLOC = 0xCEB + SYS_REWIND_UNLOCKED = 0xCC1 + SYS_RINTD128 = 0xC13 + SYS_RINTD32 = 0xC11 + SYS_RINTD64 = 0xC12 + SYS_RINTF = 0xACB + SYS_RINTL = 0xACD + SYS_ROUND = 0xACF + SYS_ROUNDD128 = 0xC16 + SYS_ROUNDD32 = 0xC14 + SYS_ROUNDD64 = 0xC15 + SYS_ROUNDF = 0xAD2 + SYS_ROUNDL = 0xAD5 + SYS_SAMEQUANTUMD128 = 0xC19 + SYS_SAMEQUANTUMD32 = 0xC17 + SYS_SAMEQUANTUMD64 = 0xC18 + SYS_SCALBLN = 0xAD8 + SYS_SCALBLND128 = 0xC1C + SYS_SCALBLND32 = 0xC1A + SYS_SCALBLND64 = 0xC1B + SYS_SCALBLNF = 0xADB + SYS_SCALBLNL = 0xADE + SYS_SCALBND128 = 0xC1F + SYS_SCALBND32 = 0xC1D + SYS_SCALBND64 = 0xC1E + SYS_SCALBNF = 0xAE3 + SYS_SCALBNL = 0xAE6 + SYS_SCANF_UNLOCKED = 0xCC2 + SYS_SCHED_YIELD = 0xB32 + SYS_SETENV = 0x0C8 + SYS_SETIPV4SOURCEFILTER = 0xC76 + SYS_SETSOURCEFILTER = 0xC78 + SYS_SHM_OPEN = 0xC8C + SYS_SHM_UNLINK = 0xC8D + SYS_SIND128 = 0xC22 + SYS_SIND32 = 0xC20 + SYS_SIND64 = 0xC21 + SYS_SINHD128 = 0xC25 + SYS_SINHD32 = 0xC23 + SYS_SINHD64 = 0xC24 + SYS_SIZEOF_ALLOC = 0xCEA + SYS_SOCKATMARK = 0xC68 + SYS_SQRTD128 = 0xC28 + SYS_SQRTD32 = 0xC26 + SYS_SQRTD64 = 0xC27 + SYS_STRCHR = 0x0A0 + SYS_STRCSPN = 0x0A1 + SYS_STRERROR = 0x0A8 + SYS_STRERROR_R = 0xB33 + SYS_STRFTIME = 0x0B2 + SYS_STRLEN = 0x0A9 + SYS_STRPBRK = 0x0A2 + SYS_STRSPN = 0x0A4 + SYS_STRSTR = 0x0A5 + SYS_STRTOD128 = 0xC2B + SYS_STRTOD32 = 0xC29 + SYS_STRTOD64 = 0xC2A + SYS_STRTOK = 0x0A6 + SYS_TAND128 = 0xC2E + SYS_TAND32 = 0xC2C + SYS_TAND64 = 0xC2D + SYS_TANHD128 = 0xC31 + SYS_TANHD32 = 0xC2F + SYS_TANHD64 = 0xC30 + SYS_TGAMMAD128 = 0xC34 + SYS_TGAMMAD32 = 0xC32 + SYS_TGAMMAD64 = 0xC33 + SYS_TIME = 0x0AD + SYS_TIME64 = 0xCE1 + SYS_TMPFILE64 = 0xD4D + SYS_TMPFILE64_UNLOCKED = 0xD4E + SYS_TMPFILE_UNLOCKED = 0xCFD + SYS_TRUNCD128 = 0xC40 + SYS_TRUNCD32 = 0xC3E + SYS_TRUNCD64 = 0xC3F + SYS_UNGETC_UNLOCKED = 0xCC3 + SYS_UNGETWC_UNLOCKED = 0xCC4 + SYS_UNSETENV = 0xB34 + SYS_VFPRINTF_UNLOCKED = 0xCC5 + SYS_VFSCANF_UNLOCKED = 0xCC7 + SYS_VFWPRINTF_UNLOCKED = 0xCC9 + SYS_VFWSCANF_UNLOCKED = 0xCCB + SYS_VPRINTF_UNLOCKED = 0xCCD + SYS_VSCANF_UNLOCKED = 0xCCF + SYS_VWPRINTF_UNLOCKED = 0xCD1 + SYS_VWSCANF_UNLOCKED = 0xCD3 + SYS_WCSTOD128 = 0xC43 + SYS_WCSTOD32 = 0xC41 + SYS_WCSTOD64 = 0xC42 + SYS_WPRINTF_UNLOCKED = 0xCD5 + SYS_WSCANF_UNLOCKED = 0xCD6 + SYS__FLUSHLBF = 0xD68 + SYS__FLUSHLBF_UNLOCKED = 0xD6F + SYS___ACOSHF_H = 0xA54 + SYS___ACOSHL_H = 0xA55 + SYS___ASINHF_H = 0xA56 + SYS___ASINHL_H = 0xA57 + SYS___ATANPID128 = 0xC6D + SYS___ATANPID32 = 0xC6B + SYS___ATANPID64 = 0xC6C + SYS___CBRTF_H = 0xA58 + SYS___CBRTL_H = 0xA59 + SYS___CDUMP = 0x0C4 + SYS___CLASS = 0xAFA + SYS___CLASS2 = 0xB99 + SYS___CLASS2D128 = 0xC99 + SYS___CLASS2D32 = 0xC97 + SYS___CLASS2D64 = 0xC98 + SYS___CLASS2F = 0xC91 + SYS___CLASS2F_B = 0xC93 + SYS___CLASS2F_H = 0xC94 + SYS___CLASS2L = 0xC92 + SYS___CLASS2L_B = 0xC95 + SYS___CLASS2L_H = 0xC96 + SYS___CLASS2_B = 0xB9A + SYS___CLASS2_H = 0xB9B + SYS___CLASS_B = 0xAFB + SYS___CLASS_H = 0xAFC + SYS___CLOGL_B = 0xA01 + SYS___CLOGL_H = 0xA02 + SYS___CLRENV = 0x0C9 + SYS___CLRMF = 0x0BD + SYS___CODEPAGE_INFO = 0xC64 + SYS___CONJF_B = 0xA07 + SYS___CONJF_H = 0xA08 + SYS___CONJL_B = 0xA0A + SYS___CONJL_H = 0xA0B + SYS___CONJ_B = 0xA04 + SYS___CONJ_H = 0xA05 + SYS___COPYSIGN_B = 0xA5A + SYS___COPYSIGN_H = 0xAF5 + SYS___COSPID128 = 0xC70 + SYS___COSPID32 = 0xC6E + SYS___COSPID64 = 0xC6F + SYS___CPOWF_B = 0xA10 + SYS___CPOWF_H = 0xA11 + SYS___CPOWL_B = 0xA13 + SYS___CPOWL_H = 0xA14 + SYS___CPOW_B = 0xA0D + SYS___CPOW_H = 0xA0E + SYS___CPROJF_B = 0xA19 + SYS___CPROJF_H = 0xA1A + SYS___CPROJL_B = 0xA1C + SYS___CPROJL_H = 0xA1D + SYS___CPROJ_B = 0xA16 + SYS___CPROJ_H = 0xA17 + SYS___CREALF_B = 0xA22 + SYS___CREALF_H = 0xA23 + SYS___CREALL_B = 0xA25 + SYS___CREALL_H = 0xA26 + SYS___CREAL_B = 0xA1F + SYS___CREAL_H = 0xA20 + SYS___CSINF_B = 0xA2B + SYS___CSINF_H = 0xA2C + SYS___CSINHF_B = 0xA34 + SYS___CSINHF_H = 0xA35 + SYS___CSINHL_B = 0xA37 + SYS___CSINHL_H = 0xA38 + SYS___CSINH_B = 0xA31 + SYS___CSINH_H = 0xA32 + SYS___CSINL_B = 0xA2E + SYS___CSINL_H = 0xA2F + SYS___CSIN_B = 0xA28 + SYS___CSIN_H = 0xA29 + SYS___CSNAP = 0x0C5 + SYS___CSQRTF_B = 0xA3D + SYS___CSQRTF_H = 0xA3E + SYS___CSQRTL_B = 0xA40 + SYS___CSQRTL_H = 0xA41 + SYS___CSQRT_B = 0xA3A + SYS___CSQRT_H = 0xA3B + SYS___CTANF_B = 0xA46 + SYS___CTANF_H = 0xA47 + SYS___CTANHF_B = 0xA4F + SYS___CTANHF_H = 0xA50 + SYS___CTANHL_B = 0xA52 + SYS___CTANHL_H = 0xA53 + SYS___CTANH_B = 0xA4C + SYS___CTANH_H = 0xA4D + SYS___CTANL_B = 0xA49 + SYS___CTANL_H = 0xA4A + SYS___CTAN_B = 0xA43 + SYS___CTAN_H = 0xA44 + SYS___CTEST = 0x0C7 + SYS___CTRACE = 0x0C6 + SYS___D1TOP = 0xC9B + SYS___D2TOP = 0xC9C + SYS___D4TOP = 0xC9D + SYS___DYNALL = 0x0C3 + SYS___DYNFRE = 0x0C2 + SYS___EXP2F_H = 0xA5E + SYS___EXP2L_H = 0xA5F + SYS___EXP2_H = 0xA5D + SYS___EXPM1F_H = 0xA5B + SYS___EXPM1L_H = 0xA5C + SYS___FBUFSIZE = 0xD60 + SYS___FLBF = 0xD62 + SYS___FLDATA = 0x0C1 + SYS___FMAF_B = 0xA67 + SYS___FMAF_H = 0xA68 + SYS___FMAL_B = 0xA6A + SYS___FMAL_H = 0xA6B + SYS___FMAXF_B = 0xA70 + SYS___FMAXF_H = 0xA71 + SYS___FMAXL_B = 0xA73 + SYS___FMAXL_H = 0xA74 + SYS___FMAX_B = 0xA6D + SYS___FMAX_H = 0xA6E + SYS___FMA_B = 0xA64 + SYS___FMA_H = 0xA65 + SYS___FMINF_B = 0xA79 + SYS___FMINF_H = 0xA7A + SYS___FMINL_B = 0xA7C + SYS___FMINL_H = 0xA7D + SYS___FMIN_B = 0xA76 + SYS___FMIN_H = 0xA77 + SYS___FPENDING = 0xD61 + SYS___FPENDING_UNLOCKED = 0xD6C + SYS___FPURGE = 0xD69 + SYS___FPURGE_UNLOCKED = 0xD70 + SYS___FP_CAST_D = 0xBCB + SYS___FREADABLE = 0xD63 + SYS___FREADAHEAD = 0xD6A + SYS___FREADAHEAD_UNLOCKED = 0xD71 + SYS___FREADING = 0xD65 + SYS___FREADING_UNLOCKED = 0xD6D + SYS___FSEEK2 = 0xB3C + SYS___FSETERR = 0xD6B + SYS___FSETLOCKING = 0xD67 + SYS___FTCHEP = 0x0BF + SYS___FTELL2 = 0xB3B + SYS___FUPDT = 0x0B5 + SYS___FWRITABLE = 0xD64 + SYS___FWRITING = 0xD66 + SYS___FWRITING_UNLOCKED = 0xD6E + SYS___GETCB = 0x0B4 + SYS___GETGRGID1 = 0xD5B + SYS___GETGRNAM1 = 0xD5C + SYS___GETTHENT = 0xCE5 + SYS___GETTOD = 0xD3E + SYS___HYPOTF_H = 0xAF6 + SYS___HYPOTL_H = 0xAF7 + SYS___ILOGBF_B = 0xA7F + SYS___ILOGBF_H = 0xA80 + SYS___ILOGBL_B = 0xA82 + SYS___ILOGBL_H = 0xA83 + SYS___ISBLANK_A = 0xB2E + SYS___ISBLNK = 0x0FE + SYS___ISWBLANK_A = 0xB2F + SYS___LE_CEEGTJS = 0xD72 + SYS___LE_TRACEBACK = 0xB7A + SYS___LGAMMAL_H = 0xA62 + SYS___LGAMMA_B_C99 = 0xB39 + SYS___LGAMMA_H_C99 = 0xB38 + SYS___LGAMMA_R_C99 = 0xB3A + SYS___LLRINTF_B = 0xA88 + SYS___LLRINTF_H = 0xA89 + SYS___LLRINTL_B = 0xA8B + SYS___LLRINTL_H = 0xA8C + SYS___LLRINT_B = 0xA85 + SYS___LLRINT_H = 0xA86 + SYS___LLROUNDF_B = 0xA91 + SYS___LLROUNDF_H = 0xA92 + SYS___LLROUNDL_B = 0xA94 + SYS___LLROUNDL_H = 0xA95 + SYS___LLROUND_B = 0xA8E + SYS___LLROUND_H = 0xA8F + SYS___LOCALE_CTL = 0xD47 + SYS___LOG1PF_H = 0xA60 + SYS___LOG1PL_H = 0xA61 + SYS___LOGBF_B = 0xA97 + SYS___LOGBF_H = 0xA98 + SYS___LOGBL_B = 0xA9A + SYS___LOGBL_H = 0xA9B + SYS___LOGIN_APPLID = 0xCE2 + SYS___LRINTF_B = 0xAA0 + SYS___LRINTF_H = 0xAA1 + SYS___LRINTL_B = 0xAA3 + SYS___LRINTL_H = 0xAA4 + SYS___LRINT_B = 0xA9D + SYS___LRINT_H = 0xA9E + SYS___LROUNDF_FIXUP = 0xB31 + SYS___LROUNDL_B = 0xAA6 + SYS___LROUNDL_H = 0xAA7 + SYS___LROUND_FIXUP = 0xB30 + SYS___MOSERVICES = 0xD3D + SYS___MUST_STAY_CLEAN = 0xB7C + SYS___NANF_B = 0xAAB + SYS___NANL_B = 0xAAD + SYS___NAN_B = 0xAA9 + SYS___NEARBYINTF_B = 0xAB2 + SYS___NEARBYINTF_H = 0xAB3 + SYS___NEARBYINTL_B = 0xAB5 + SYS___NEARBYINTL_H = 0xAB6 + SYS___NEARBYINT_B = 0xAAF + SYS___NEARBYINT_H = 0xAB0 + SYS___NEXTAFTERF_B = 0xAB8 + SYS___NEXTAFTERF_H = 0xAB9 + SYS___NEXTAFTERL_B = 0xABB + SYS___NEXTAFTERL_H = 0xABC + SYS___NEXTTOWARDF_B = 0xAC1 + SYS___NEXTTOWARDF_H = 0xAC2 + SYS___NEXTTOWARDL_B = 0xAC4 + SYS___NEXTTOWARDL_H = 0xAC5 + SYS___NEXTTOWARD_B = 0xABE + SYS___NEXTTOWARD_H = 0xABF + SYS___O_ENV = 0xB7D + SYS___PASSWD_APPLID = 0xCE3 + SYS___PTOD1 = 0xC9E + SYS___PTOD2 = 0xC9F + SYS___PTOD4 = 0xCA0 + SYS___REGCOMP_STD = 0x0EA + SYS___REMAINDERF_H = 0xAC6 + SYS___REMAINDERL_H = 0xAC7 + SYS___REMQUOD128 = 0xC10 + SYS___REMQUOD32 = 0xC0E + SYS___REMQUOD64 = 0xC0F + SYS___REMQUOF_H = 0xAC9 + SYS___REMQUOL_H = 0xACA + SYS___REMQUO_H = 0xAC8 + SYS___RINTF_B = 0xACC + SYS___RINTL_B = 0xACE + SYS___ROUNDF_B = 0xAD3 + SYS___ROUNDF_H = 0xAD4 + SYS___ROUNDL_B = 0xAD6 + SYS___ROUNDL_H = 0xAD7 + SYS___ROUND_B = 0xAD0 + SYS___ROUND_H = 0xAD1 + SYS___SCALBLNF_B = 0xADC + SYS___SCALBLNF_H = 0xADD + SYS___SCALBLNL_B = 0xADF + SYS___SCALBLNL_H = 0xAE0 + SYS___SCALBLN_B = 0xAD9 + SYS___SCALBLN_H = 0xADA + SYS___SCALBNF_B = 0xAE4 + SYS___SCALBNF_H = 0xAE5 + SYS___SCALBNL_B = 0xAE7 + SYS___SCALBNL_H = 0xAE8 + SYS___SCALBN_B = 0xAE1 + SYS___SCALBN_H = 0xAE2 + SYS___SETENV = 0x0C8 + SYS___SINPID128 = 0xC73 + SYS___SINPID32 = 0xC71 + SYS___SINPID64 = 0xC72 + SYS___SMF_RECORD2 = 0xD48 + SYS___STATIC_REINIT = 0xB3D + SYS___TGAMMAF_H_C99 = 0xB79 + SYS___TGAMMAL_H = 0xAE9 + SYS___TGAMMA_H_C99 = 0xB78 + SYS___TOCSNAME2 = 0xC9A + SYS_CEIL = 0x01F + SYS_CHAUDIT = 0x1E0 + SYS_EXP = 0x01A + SYS_FCHAUDIT = 0x1E1 + SYS_FREXP = 0x01D + SYS_GETGROUPSBYNAME = 0x1E2 + SYS_GETPWUID = 0x1A0 + SYS_GETUID = 0x1A1 + SYS_ISATTY = 0x1A3 + SYS_KILL = 0x1A4 + SYS_LDEXP = 0x01E + SYS_LINK = 0x1A5 + SYS_LOG10 = 0x01C + SYS_LSEEK = 0x1A6 + SYS_LSTAT = 0x1A7 + SYS_MKDIR = 0x1A8 + SYS_MKFIFO = 0x1A9 + SYS_MKNOD = 0x1AA + SYS_MODF = 0x01B + SYS_MOUNT = 0x1AB + SYS_OPEN = 0x1AC + SYS_OPENDIR = 0x1AD + SYS_PATHCONF = 0x1AE + SYS_PAUSE = 0x1AF + SYS_PIPE = 0x1B0 + SYS_PTHREAD_ATTR_DESTROY = 0x1E7 + SYS_PTHREAD_ATTR_GETDETACHSTATE = 0x1EB + SYS_PTHREAD_ATTR_GETSTACKSIZE = 0x1E9 + SYS_PTHREAD_ATTR_GETWEIGHT_NP = 0x1ED + SYS_PTHREAD_ATTR_INIT = 0x1E6 + SYS_PTHREAD_ATTR_SETDETACHSTATE = 0x1EA + SYS_PTHREAD_ATTR_SETSTACKSIZE = 0x1E8 + SYS_PTHREAD_ATTR_SETWEIGHT_NP = 0x1EC + SYS_PTHREAD_CANCEL = 0x1EE + SYS_PTHREAD_CLEANUP_POP = 0x1F0 + SYS_PTHREAD_CLEANUP_PUSH = 0x1EF + SYS_PTHREAD_CONDATTR_DESTROY = 0x1F2 + SYS_PTHREAD_CONDATTR_INIT = 0x1F1 + SYS_PTHREAD_COND_BROADCAST = 0x1F6 + SYS_PTHREAD_COND_DESTROY = 0x1F4 + SYS_PTHREAD_COND_INIT = 0x1F3 + SYS_PTHREAD_COND_SIGNAL = 0x1F5 + SYS_PTHREAD_COND_TIMEDWAIT = 0x1F8 + SYS_PTHREAD_COND_WAIT = 0x1F7 + SYS_PTHREAD_CREATE = 0x1F9 + SYS_PTHREAD_DETACH = 0x1FA + SYS_PTHREAD_EQUAL = 0x1FB + SYS_PTHREAD_EXIT = 0x1E4 + SYS_PTHREAD_GETSPECIFIC = 0x1FC + SYS_PTHREAD_JOIN = 0x1FD + SYS_PTHREAD_KEY_CREATE = 0x1FE + SYS_PTHREAD_KILL = 0x1E5 + SYS_PTHREAD_MUTEXATTR_INIT = 0x1FF + SYS_READ = 0x1B2 + SYS_READDIR = 0x1B3 + SYS_READLINK = 0x1B4 + SYS_REWINDDIR = 0x1B5 + SYS_RMDIR = 0x1B6 + SYS_SETEGID = 0x1B7 + SYS_SETEUID = 0x1B8 + SYS_SETGID = 0x1B9 + SYS_SETPGID = 0x1BA + SYS_SETSID = 0x1BB + SYS_SETUID = 0x1BC + SYS_SIGACTION = 0x1BD + SYS_SIGADDSET = 0x1BE + SYS_SIGDELSET = 0x1BF + SYS_SIGEMPTYSET = 0x1C0 + SYS_SIGFILLSET = 0x1C1 + SYS_SIGISMEMBER = 0x1C2 + SYS_SIGLONGJMP = 0x1C3 + SYS_SIGPENDING = 0x1C4 + SYS_SIGPROCMASK = 0x1C5 + SYS_SIGSETJMP = 0x1C6 + SYS_SIGSUSPEND = 0x1C7 + SYS_SIGWAIT = 0x1E3 + SYS_SLEEP = 0x1C8 + SYS_STAT = 0x1C9 + SYS_SYMLINK = 0x1CB + SYS_SYSCONF = 0x1CC + SYS_TCDRAIN = 0x1CD + SYS_TCFLOW = 0x1CE + SYS_TCFLUSH = 0x1CF + SYS_TCGETATTR = 0x1D0 + SYS_TCGETPGRP = 0x1D1 + SYS_TCSENDBREAK = 0x1D2 + SYS_TCSETATTR = 0x1D3 + SYS_TCSETPGRP = 0x1D4 + SYS_TIMES = 0x1D5 + SYS_TTYNAME = 0x1D6 + SYS_TZSET = 0x1D7 + SYS_UMASK = 0x1D8 + SYS_UMOUNT = 0x1D9 + SYS_UNAME = 0x1DA + SYS_UNLINK = 0x1DB + SYS_UTIME = 0x1DC + SYS_WAIT = 0x1DD + SYS_WAITPID = 0x1DE + SYS_WRITE = 0x1DF + SYS_W_GETPSENT = 0x1B1 + SYS_W_IOCTL = 0x1A2 + SYS_W_STATFS = 0x1CA + SYS_A64L = 0x2EF + SYS_BCMP = 0x2B9 + SYS_BCOPY = 0x2BA + SYS_BZERO = 0x2BB + SYS_CATCLOSE = 0x2B6 + SYS_CATGETS = 0x2B7 + SYS_CATOPEN = 0x2B8 + SYS_CRYPT = 0x2AC + SYS_DBM_CLEARERR = 0x2F7 + SYS_DBM_CLOSE = 0x2F8 + SYS_DBM_DELETE = 0x2F9 + SYS_DBM_ERROR = 0x2FA + SYS_DBM_FETCH = 0x2FB + SYS_DBM_FIRSTKEY = 0x2FC + SYS_DBM_NEXTKEY = 0x2FD + SYS_DBM_OPEN = 0x2FE + SYS_DBM_STORE = 0x2FF + SYS_DRAND48 = 0x2B2 + SYS_ENCRYPT = 0x2AD + SYS_ENDUTXENT = 0x2E1 + SYS_ERAND48 = 0x2B3 + SYS_ERF = 0x02C + SYS_ERFC = 0x02D + SYS_FCHDIR = 0x2D9 + SYS_FFS = 0x2BC + SYS_FMTMSG = 0x2E5 + SYS_FSTATVFS = 0x2B4 + SYS_FTIME = 0x2F5 + SYS_GAMMA = 0x02E + SYS_GETDATE = 0x2A6 + SYS_GETPAGESIZE = 0x2D8 + SYS_GETTIMEOFDAY = 0x2F6 + SYS_GETUTXENT = 0x2E0 + SYS_GETUTXID = 0x2E2 + SYS_GETUTXLINE = 0x2E3 + SYS_HCREATE = 0x2C6 + SYS_HDESTROY = 0x2C7 + SYS_HSEARCH = 0x2C8 + SYS_HYPOT = 0x02B + SYS_INDEX = 0x2BD + SYS_INITSTATE = 0x2C2 + SYS_INSQUE = 0x2CF + SYS_ISASCII = 0x2ED + SYS_JRAND48 = 0x2E6 + SYS_L64A = 0x2F0 + SYS_LCONG48 = 0x2EA + SYS_LFIND = 0x2C9 + SYS_LRAND48 = 0x2E7 + SYS_LSEARCH = 0x2CA + SYS_MEMCCPY = 0x2D4 + SYS_MRAND48 = 0x2E8 + SYS_NRAND48 = 0x2E9 + SYS_PCLOSE = 0x2D2 + SYS_POPEN = 0x2D1 + SYS_PUTUTXLINE = 0x2E4 + SYS_RANDOM = 0x2C4 + SYS_REMQUE = 0x2D0 + SYS_RINDEX = 0x2BE + SYS_SEED48 = 0x2EC + SYS_SETKEY = 0x2AE + SYS_SETSTATE = 0x2C3 + SYS_SETUTXENT = 0x2DF + SYS_SRAND48 = 0x2EB + SYS_SRANDOM = 0x2C5 + SYS_STATVFS = 0x2B5 + SYS_STRCASECMP = 0x2BF + SYS_STRDUP = 0x2C0 + SYS_STRNCASECMP = 0x2C1 + SYS_SWAB = 0x2D3 + SYS_TDELETE = 0x2CB + SYS_TFIND = 0x2CC + SYS_TOASCII = 0x2EE + SYS_TSEARCH = 0x2CD + SYS_TWALK = 0x2CE + SYS_UALARM = 0x2F1 + SYS_USLEEP = 0x2F2 + SYS_WAIT3 = 0x2A7 + SYS_WAITID = 0x2A8 + SYS_Y1 = 0x02A + SYS___ATOE = 0x2DB + SYS___ATOE_L = 0x2DC + SYS___CATTRM = 0x2A9 + SYS___CNVBLK = 0x2AF + SYS___CRYTRM = 0x2B0 + SYS___DLGHT = 0x2A1 + SYS___ECRTRM = 0x2B1 + SYS___ETOA = 0x2DD + SYS___ETOA_L = 0x2DE + SYS___GDTRM = 0x2AA + SYS___OCLCK = 0x2DA + SYS___OPARGF = 0x2A2 + SYS___OPERRF = 0x2A5 + SYS___OPINDF = 0x2A4 + SYS___OPOPTF = 0x2A3 + SYS___RNDTRM = 0x2AB + SYS___SRCTRM = 0x2F4 + SYS___TZONE = 0x2A0 + SYS___UTXTRM = 0x2F3 + SYS_ASIN = 0x03E + SYS_ISXDIGIT = 0x03B + SYS_SETLOCAL = 0x03A + SYS_SETLOCALE = 0x03A + SYS_SIN = 0x03F + SYS_TOLOWER = 0x03C + SYS_TOUPPER = 0x03D + SYS_ACCEPT_AND_RECV = 0x4F7 + SYS_ATOL = 0x04E + SYS_CHECKSCH = 0x4BC + SYS_CHECKSCHENV = 0x4BC + SYS_CLEARERR = 0x04C + SYS_CONNECTS = 0x4B5 + SYS_CONNECTSERVER = 0x4B5 + SYS_CONNECTW = 0x4B4 + SYS_CONNECTWORKMGR = 0x4B4 + SYS_CONTINUE = 0x4B3 + SYS_CONTINUEWORKUNIT = 0x4B3 + SYS_COPYSIGN = 0x4C2 + SYS_CREATEWO = 0x4B2 + SYS_CREATEWORKUNIT = 0x4B2 + SYS_DELETEWO = 0x4B9 + SYS_DELETEWORKUNIT = 0x4B9 + SYS_DISCONNE = 0x4B6 + SYS_DISCONNECTSERVER = 0x4B6 + SYS_FEOF = 0x04D + SYS_FERROR = 0x04A + SYS_FINITE = 0x4C8 + SYS_GAMMA_R = 0x4E2 + SYS_JOINWORK = 0x4B7 + SYS_JOINWORKUNIT = 0x4B7 + SYS_LEAVEWOR = 0x4B8 + SYS_LEAVEWORKUNIT = 0x4B8 + SYS_LGAMMA_R = 0x4EB + SYS_MATHERR = 0x4D0 + SYS_PERROR = 0x04F + SYS_QUERYMET = 0x4BA + SYS_QUERYMETRICS = 0x4BA + SYS_QUERYSCH = 0x4BB + SYS_QUERYSCHENV = 0x4BB + SYS_REWIND = 0x04B + SYS_SCALBN = 0x4D4 + SYS_SIGNIFIC = 0x4D5 + SYS_SIGNIFICAND = 0x4D5 + SYS___ACOSH_B = 0x4DA + SYS___ACOS_B = 0x4D9 + SYS___ASINH_B = 0x4BE + SYS___ASIN_B = 0x4DB + SYS___ATAN2_B = 0x4DC + SYS___ATANH_B = 0x4DD + SYS___ATAN_B = 0x4BF + SYS___CBRT_B = 0x4C0 + SYS___CEIL_B = 0x4C1 + SYS___COSH_B = 0x4DE + SYS___COS_B = 0x4C3 + SYS___DGHT = 0x4A8 + SYS___ENVN = 0x4B0 + SYS___ERFC_B = 0x4C5 + SYS___ERF_B = 0x4C4 + SYS___EXPM1_B = 0x4C6 + SYS___EXP_B = 0x4DF + SYS___FABS_B = 0x4C7 + SYS___FLOOR_B = 0x4C9 + SYS___FMOD_B = 0x4E0 + SYS___FP_SETMODE = 0x4F8 + SYS___FREXP_B = 0x4CA + SYS___GAMMA_B = 0x4E1 + SYS___GDRR = 0x4A1 + SYS___HRRNO = 0x4A2 + SYS___HYPOT_B = 0x4E3 + SYS___ILOGB_B = 0x4CB + SYS___ISNAN_B = 0x4CC + SYS___J0_B = 0x4E4 + SYS___J1_B = 0x4E6 + SYS___JN_B = 0x4E8 + SYS___LDEXP_B = 0x4CD + SYS___LGAMMA_B = 0x4EA + SYS___LOG10_B = 0x4ED + SYS___LOG1P_B = 0x4CE + SYS___LOGB_B = 0x4CF + SYS___LOGIN = 0x4F5 + SYS___LOG_B = 0x4EC + SYS___MLOCKALL = 0x4B1 + SYS___MODF_B = 0x4D1 + SYS___NEXTAFTER_B = 0x4D2 + SYS___OPENDIR2 = 0x4F3 + SYS___OPEN_STAT = 0x4F6 + SYS___OPND = 0x4A5 + SYS___OPPT = 0x4A6 + SYS___OPRG = 0x4A3 + SYS___OPRR = 0x4A4 + SYS___PID_AFFINITY = 0x4BD + SYS___POW_B = 0x4EE + SYS___READDIR2 = 0x4F4 + SYS___REMAINDER_B = 0x4EF + SYS___RINT_B = 0x4D3 + SYS___SCALB_B = 0x4F0 + SYS___SIGACTIONSET = 0x4FB + SYS___SIGGM = 0x4A7 + SYS___SINH_B = 0x4F1 + SYS___SIN_B = 0x4D6 + SYS___SQRT_B = 0x4F2 + SYS___TANH_B = 0x4D8 + SYS___TAN_B = 0x4D7 + SYS___TRRNO = 0x4AF + SYS___TZNE = 0x4A9 + SYS___TZZN = 0x4AA + SYS___UCREATE = 0x4FC + SYS___UFREE = 0x4FE + SYS___UHEAPREPORT = 0x4FF + SYS___UMALLOC = 0x4FD + SYS___Y0_B = 0x4E5 + SYS___Y1_B = 0x4E7 + SYS___YN_B = 0x4E9 + SYS_ABORT = 0x05C + SYS_ASCTIME_R = 0x5E0 + SYS_ATEXIT = 0x05D + SYS_CONNECTE = 0x5AE + SYS_CONNECTEXPORTIMPORT = 0x5AE + SYS_CTIME_R = 0x5E1 + SYS_DN_COMP = 0x5DF + SYS_DN_EXPAND = 0x5DD + SYS_DN_SKIPNAME = 0x5DE + SYS_EXIT = 0x05A + SYS_EXPORTWO = 0x5A1 + SYS_EXPORTWORKUNIT = 0x5A1 + SYS_EXTRACTW = 0x5A5 + SYS_EXTRACTWORKUNIT = 0x5A5 + SYS_FSEEKO = 0x5C9 + SYS_FTELLO = 0x5C8 + SYS_GETGRGID_R = 0x5E7 + SYS_GETGRNAM_R = 0x5E8 + SYS_GETLOGIN_R = 0x5E9 + SYS_GETPWNAM_R = 0x5EA + SYS_GETPWUID_R = 0x5EB + SYS_GMTIME_R = 0x5E2 + SYS_IMPORTWO = 0x5A3 + SYS_IMPORTWORKUNIT = 0x5A3 + SYS_INET_NTOP = 0x5D3 + SYS_INET_PTON = 0x5D4 + SYS_LLABS = 0x5CE + SYS_LLDIV = 0x5CB + SYS_LOCALTIME_R = 0x5E3 + SYS_PTHREAD_ATFORK = 0x5ED + SYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB + SYS_PTHREAD_ATTR_GETGUARDSIZE = 0x5EE + SYS_PTHREAD_ATTR_GETSCHEDPARAM = 0x5F9 + SYS_PTHREAD_ATTR_GETSTACKADDR = 0x5EF + SYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC + SYS_PTHREAD_ATTR_SETGUARDSIZE = 0x5F0 + SYS_PTHREAD_ATTR_SETSCHEDPARAM = 0x5FA + SYS_PTHREAD_ATTR_SETSTACKADDR = 0x5F1 + SYS_PTHREAD_CONDATTR_GETPSHARED = 0x5F2 + SYS_PTHREAD_CONDATTR_SETPSHARED = 0x5F3 + SYS_PTHREAD_DETACH_U98 = 0x5FD + SYS_PTHREAD_GETCONCURRENCY = 0x5F4 + SYS_PTHREAD_GETSPECIFIC_U98 = 0x5FE + SYS_PTHREAD_KEY_DELETE = 0x5F5 + SYS_PTHREAD_SETCANCELSTATE = 0x5FF + SYS_PTHREAD_SETCONCURRENCY = 0x5F6 + SYS_PTHREAD_SIGMASK = 0x5F7 + SYS_QUERYENC = 0x5AD + SYS_QUERYWORKUNITCLASSIFICATION = 0x5AD + SYS_RAISE = 0x05E + SYS_RAND_R = 0x5E4 + SYS_READDIR_R = 0x5E6 + SYS_REALLOC = 0x05B + SYS_RES_INIT = 0x5D8 + SYS_RES_MKQUERY = 0x5D7 + SYS_RES_QUERY = 0x5D9 + SYS_RES_QUERYDOMAIN = 0x5DC + SYS_RES_SEARCH = 0x5DA + SYS_RES_SEND = 0x5DB + SYS_SETJMP = 0x05F + SYS_SIGQUEUE = 0x5A9 + SYS_STRTOK_R = 0x5E5 + SYS_STRTOLL = 0x5B0 + SYS_STRTOULL = 0x5B1 + SYS_TTYNAME_R = 0x5EC + SYS_UNDOEXPO = 0x5A2 + SYS_UNDOEXPORTWORKUNIT = 0x5A2 + SYS_UNDOIMPO = 0x5A4 + SYS_UNDOIMPORTWORKUNIT = 0x5A4 + SYS_WCSTOLL = 0x5CC + SYS_WCSTOULL = 0x5CD + SYS___ABORT = 0x05C + SYS___CONSOLE2 = 0x5D2 + SYS___CPL = 0x5A6 + SYS___DISCARDDATA = 0x5F8 + SYS___DSA_PREV = 0x5B2 + SYS___EP_FIND = 0x5B3 + SYS___FP_SWAPMODE = 0x5AF + SYS___GETUSERID = 0x5AB + SYS___GET_CPUID = 0x5B9 + SYS___GET_SYSTEM_SETTINGS = 0x5BA + SYS___IPDOMAINNAME = 0x5AC + SYS___MAP_INIT = 0x5A7 + SYS___MAP_SERVICE = 0x5A8 + SYS___MOUNT = 0x5AA + SYS___MSGRCV_TIMED = 0x5B7 + SYS___RES = 0x5D6 + SYS___SEMOP_TIMED = 0x5B8 + SYS___SERVER_THREADS_QUERY = 0x5B4 + SYS_FPRINTF = 0x06D + SYS_FSCANF = 0x06A + SYS_PRINTF = 0x06F + SYS_SETBUF = 0x06B + SYS_SETVBUF = 0x06C + SYS_SSCANF = 0x06E + SYS___CATGETS_A = 0x6C0 + SYS___CHAUDIT_A = 0x6F4 + SYS___CHMOD_A = 0x6E8 + SYS___COLLATE_INIT_A = 0x6AC + SYS___CREAT_A = 0x6F6 + SYS___CTYPE_INIT_A = 0x6AF + SYS___DLLLOAD_A = 0x6DF + SYS___DLLQUERYFN_A = 0x6E0 + SYS___DLLQUERYVAR_A = 0x6E1 + SYS___E2A_L = 0x6E3 + SYS___EXECLE_A = 0x6A0 + SYS___EXECLP_A = 0x6A4 + SYS___EXECVE_A = 0x6C1 + SYS___EXECVP_A = 0x6C2 + SYS___EXECV_A = 0x6B1 + SYS___FPRINTF_A = 0x6FA + SYS___GETADDRINFO_A = 0x6BF + SYS___GETNAMEINFO_A = 0x6C4 + SYS___GET_WCTYPE_STD_A = 0x6AE + SYS___ICONV_OPEN_A = 0x6DE + SYS___IF_INDEXTONAME_A = 0x6DC + SYS___IF_NAMETOINDEX_A = 0x6DB + SYS___ISWCTYPE_A = 0x6B0 + SYS___IS_WCTYPE_STD_A = 0x6B2 + SYS___LOCALECONV_A = 0x6B8 + SYS___LOCALECONV_STD_A = 0x6B9 + SYS___LOCALE_INIT_A = 0x6B7 + SYS___LSTAT_A = 0x6EE + SYS___LSTAT_O_A = 0x6EF + SYS___MKDIR_A = 0x6E9 + SYS___MKFIFO_A = 0x6EC + SYS___MKNOD_A = 0x6F0 + SYS___MONETARY_INIT_A = 0x6BC + SYS___MOUNT_A = 0x6F1 + SYS___NL_CSINFO_A = 0x6D6 + SYS___NL_LANGINFO_A = 0x6BA + SYS___NL_LNAGINFO_STD_A = 0x6BB + SYS___NL_MONINFO_A = 0x6D7 + SYS___NL_NUMINFO_A = 0x6D8 + SYS___NL_RESPINFO_A = 0x6D9 + SYS___NL_TIMINFO_A = 0x6DA + SYS___NUMERIC_INIT_A = 0x6C6 + SYS___OPEN_A = 0x6F7 + SYS___PRINTF_A = 0x6DD + SYS___RESP_INIT_A = 0x6C7 + SYS___RPMATCH_A = 0x6C8 + SYS___RPMATCH_C_A = 0x6C9 + SYS___RPMATCH_STD_A = 0x6CA + SYS___SETLOCALE_A = 0x6F9 + SYS___SPAWNP_A = 0x6C5 + SYS___SPAWN_A = 0x6C3 + SYS___SPRINTF_A = 0x6FB + SYS___STAT_A = 0x6EA + SYS___STAT_O_A = 0x6EB + SYS___STRCOLL_STD_A = 0x6A1 + SYS___STRFMON_A = 0x6BD + SYS___STRFMON_STD_A = 0x6BE + SYS___STRFTIME_A = 0x6CC + SYS___STRFTIME_STD_A = 0x6CD + SYS___STRPTIME_A = 0x6CE + SYS___STRPTIME_STD_A = 0x6CF + SYS___STRXFRM_A = 0x6A2 + SYS___STRXFRM_C_A = 0x6A3 + SYS___STRXFRM_STD_A = 0x6A5 + SYS___SYNTAX_INIT_A = 0x6D4 + SYS___TIME_INIT_A = 0x6CB + SYS___TOD_INIT_A = 0x6D5 + SYS___TOWLOWER_A = 0x6B3 + SYS___TOWLOWER_STD_A = 0x6B4 + SYS___TOWUPPER_A = 0x6B5 + SYS___TOWUPPER_STD_A = 0x6B6 + SYS___UMOUNT_A = 0x6F2 + SYS___VFPRINTF_A = 0x6FC + SYS___VPRINTF_A = 0x6FD + SYS___VSPRINTF_A = 0x6FE + SYS___VSWPRINTF_A = 0x6FF + SYS___WCSCOLL_A = 0x6A6 + SYS___WCSCOLL_C_A = 0x6A7 + SYS___WCSCOLL_STD_A = 0x6A8 + SYS___WCSFTIME_A = 0x6D0 + SYS___WCSFTIME_STD_A = 0x6D1 + SYS___WCSXFRM_A = 0x6A9 + SYS___WCSXFRM_C_A = 0x6AA + SYS___WCSXFRM_STD_A = 0x6AB + SYS___WCTYPE_A = 0x6AD + SYS___W_GETMNTENT_A = 0x6F5 + SYS_____CCSIDTYPE_A = 0x6E6 + SYS_____CHATTR_A = 0x6E2 + SYS_____CSNAMETYPE_A = 0x6E7 + SYS_____OPEN_STAT_A = 0x6ED + SYS_____SPAWN2_A = 0x6D2 + SYS_____SPAWNP2_A = 0x6D3 + SYS_____TOCCSID_A = 0x6E4 + SYS_____TOCSNAME_A = 0x6E5 + SYS_ACL_FREE = 0x7FF + SYS_ACL_INIT = 0x7FE + SYS_FWIDE = 0x7DF + SYS_FWPRINTF = 0x7D1 + SYS_FWRITE = 0x07E + SYS_FWSCANF = 0x7D5 + SYS_GETCHAR = 0x07B + SYS_GETS = 0x07C + SYS_M_CREATE_LAYOUT = 0x7C9 + SYS_M_DESTROY_LAYOUT = 0x7CA + SYS_M_GETVALUES_LAYOUT = 0x7CB + SYS_M_SETVALUES_LAYOUT = 0x7CC + SYS_M_TRANSFORM_LAYOUT = 0x7CD + SYS_M_WTRANSFORM_LAYOUT = 0x7CE + SYS_PREAD = 0x7C7 + SYS_PUTC = 0x07D + SYS_PUTCHAR = 0x07A + SYS_PUTS = 0x07F + SYS_PWRITE = 0x7C8 + SYS_TOWCTRAN = 0x7D8 + SYS_TOWCTRANS = 0x7D8 + SYS_UNATEXIT = 0x7B5 + SYS_VFWPRINT = 0x7D3 + SYS_VFWPRINTF = 0x7D3 + SYS_VWPRINTF = 0x7D4 + SYS_WCTRANS = 0x7D7 + SYS_WPRINTF = 0x7D2 + SYS_WSCANF = 0x7D6 + SYS___ASCTIME_R_A = 0x7A1 + SYS___BASENAME_A = 0x7DC + SYS___BTOWC_A = 0x7E4 + SYS___CDUMP_A = 0x7B7 + SYS___CEE3DMP_A = 0x7B6 + SYS___CEILF_H = 0x7F4 + SYS___CEILL_H = 0x7F5 + SYS___CEIL_H = 0x7EA + SYS___CRYPT_A = 0x7BE + SYS___CSNAP_A = 0x7B8 + SYS___CTEST_A = 0x7B9 + SYS___CTIME_R_A = 0x7A2 + SYS___CTRACE_A = 0x7BA + SYS___DBM_OPEN_A = 0x7E6 + SYS___DIRNAME_A = 0x7DD + SYS___FABSF_H = 0x7FA + SYS___FABSL_H = 0x7FB + SYS___FABS_H = 0x7ED + SYS___FGETWC_A = 0x7AA + SYS___FGETWS_A = 0x7AD + SYS___FLOORF_H = 0x7F6 + SYS___FLOORL_H = 0x7F7 + SYS___FLOOR_H = 0x7EB + SYS___FPUTWC_A = 0x7A5 + SYS___FPUTWS_A = 0x7A8 + SYS___GETTIMEOFDAY_A = 0x7AE + SYS___GETWCHAR_A = 0x7AC + SYS___GETWC_A = 0x7AB + SYS___GLOB_A = 0x7DE + SYS___GMTIME_A = 0x7AF + SYS___GMTIME_R_A = 0x7B0 + SYS___INET_PTON_A = 0x7BC + SYS___J0_H = 0x7EE + SYS___J1_H = 0x7EF + SYS___JN_H = 0x7F0 + SYS___LOCALTIME_A = 0x7B1 + SYS___LOCALTIME_R_A = 0x7B2 + SYS___MALLOC24 = 0x7FC + SYS___MALLOC31 = 0x7FD + SYS___MKTIME_A = 0x7B3 + SYS___MODFF_H = 0x7F8 + SYS___MODFL_H = 0x7F9 + SYS___MODF_H = 0x7EC + SYS___OPENDIR_A = 0x7C2 + SYS___OSNAME = 0x7E0 + SYS___PUTWCHAR_A = 0x7A7 + SYS___PUTWC_A = 0x7A6 + SYS___READDIR_A = 0x7C3 + SYS___STRTOLL_A = 0x7A3 + SYS___STRTOULL_A = 0x7A4 + SYS___SYSLOG_A = 0x7BD + SYS___TZZNA = 0x7B4 + SYS___UNGETWC_A = 0x7A9 + SYS___UTIME_A = 0x7A0 + SYS___VFPRINTF2_A = 0x7E7 + SYS___VPRINTF2_A = 0x7E8 + SYS___VSPRINTF2_A = 0x7E9 + SYS___VSWPRNTF2_A = 0x7BB + SYS___WCSTOD_A = 0x7D9 + SYS___WCSTOL_A = 0x7DA + SYS___WCSTOUL_A = 0x7DB + SYS___WCTOB_A = 0x7E5 + SYS___Y0_H = 0x7F1 + SYS___Y1_H = 0x7F2 + SYS___YN_H = 0x7F3 + SYS_____OPENDIR2_A = 0x7BF + SYS_____OSNAME_A = 0x7E1 + SYS_____READDIR2_A = 0x7C0 + SYS_DLCLOSE = 0x8DF + SYS_DLERROR = 0x8E0 + SYS_DLOPEN = 0x8DD + SYS_DLSYM = 0x8DE + SYS_FLOCKFILE = 0x8D3 + SYS_FTRYLOCKFILE = 0x8D4 + SYS_FUNLOCKFILE = 0x8D5 + SYS_GETCHAR_UNLOCKED = 0x8D7 + SYS_GETC_UNLOCKED = 0x8D6 + SYS_PUTCHAR_UNLOCKED = 0x8D9 + SYS_PUTC_UNLOCKED = 0x8D8 + SYS_SNPRINTF = 0x8DA + SYS_VSNPRINTF = 0x8DB + SYS_WCSCSPN = 0x08B + SYS_WCSLEN = 0x08C + SYS_WCSNCAT = 0x08D + SYS_WCSNCMP = 0x08A + SYS_WCSNCPY = 0x08F + SYS_WCSSPN = 0x08E + SYS___ABSF_H = 0x8E7 + SYS___ABSL_H = 0x8E8 + SYS___ABS_H = 0x8E6 + SYS___ACOSF_H = 0x8EA + SYS___ACOSH_H = 0x8EC + SYS___ACOSL_H = 0x8EB + SYS___ACOS_H = 0x8E9 + SYS___ASINF_H = 0x8EE + SYS___ASINH_H = 0x8F0 + SYS___ASINL_H = 0x8EF + SYS___ASIN_H = 0x8ED + SYS___ATAN2F_H = 0x8F8 + SYS___ATAN2L_H = 0x8F9 + SYS___ATAN2_H = 0x8F7 + SYS___ATANF_H = 0x8F2 + SYS___ATANHF_H = 0x8F5 + SYS___ATANHL_H = 0x8F6 + SYS___ATANH_H = 0x8F4 + SYS___ATANL_H = 0x8F3 + SYS___ATAN_H = 0x8F1 + SYS___CBRT_H = 0x8FA + SYS___COPYSIGNF_H = 0x8FB + SYS___COPYSIGNL_H = 0x8FC + SYS___COSF_H = 0x8FE + SYS___COSL_H = 0x8FF + SYS___COS_H = 0x8FD + SYS___DLERROR_A = 0x8D2 + SYS___DLOPEN_A = 0x8D0 + SYS___DLSYM_A = 0x8D1 + SYS___GETUTXENT_A = 0x8C6 + SYS___GETUTXID_A = 0x8C7 + SYS___GETUTXLINE_A = 0x8C8 + SYS___ITOA = 0x8AA + SYS___ITOA_A = 0x8B0 + SYS___LE_CONDITION_TOKEN_BUILD = 0x8A5 + SYS___LE_MSG_ADD_INSERT = 0x8A6 + SYS___LE_MSG_GET = 0x8A7 + SYS___LE_MSG_GET_AND_WRITE = 0x8A8 + SYS___LE_MSG_WRITE = 0x8A9 + SYS___LLTOA = 0x8AE + SYS___LLTOA_A = 0x8B4 + SYS___LTOA = 0x8AC + SYS___LTOA_A = 0x8B2 + SYS___PUTCHAR_UNLOCKED_A = 0x8CC + SYS___PUTC_UNLOCKED_A = 0x8CB + SYS___PUTUTXLINE_A = 0x8C9 + SYS___RESET_EXCEPTION_HANDLER = 0x8E3 + SYS___REXEC_A = 0x8C4 + SYS___REXEC_AF_A = 0x8C5 + SYS___SET_EXCEPTION_HANDLER = 0x8E2 + SYS___SNPRINTF_A = 0x8CD + SYS___SUPERKILL = 0x8A4 + SYS___TCGETATTR_A = 0x8A1 + SYS___TCSETATTR_A = 0x8A2 + SYS___ULLTOA = 0x8AF + SYS___ULLTOA_A = 0x8B5 + SYS___ULTOA = 0x8AD + SYS___ULTOA_A = 0x8B3 + SYS___UTOA = 0x8AB + SYS___UTOA_A = 0x8B1 + SYS___VHM_EVENT = 0x8E4 + SYS___VSNPRINTF_A = 0x8CE + SYS_____GETENV_A = 0x8C3 + SYS_____UTMPXNAME_A = 0x8CA + SYS_CACOSH = 0x9A0 + SYS_CACOSHF = 0x9A3 + SYS_CACOSHL = 0x9A6 + SYS_CARG = 0x9A9 + SYS_CARGF = 0x9AC + SYS_CARGL = 0x9AF + SYS_CASIN = 0x9B2 + SYS_CASINF = 0x9B5 + SYS_CASINH = 0x9BB + SYS_CASINHF = 0x9BE + SYS_CASINHL = 0x9C1 + SYS_CASINL = 0x9B8 + SYS_CATAN = 0x9C4 + SYS_CATANF = 0x9C7 + SYS_CATANH = 0x9CD + SYS_CATANHF = 0x9D0 + SYS_CATANHL = 0x9D3 + SYS_CATANL = 0x9CA + SYS_CCOS = 0x9D6 + SYS_CCOSF = 0x9D9 + SYS_CCOSH = 0x9DF + SYS_CCOSHF = 0x9E2 + SYS_CCOSHL = 0x9E5 + SYS_CCOSL = 0x9DC + SYS_CEXP = 0x9E8 + SYS_CEXPF = 0x9EB + SYS_CEXPL = 0x9EE + SYS_CIMAG = 0x9F1 + SYS_CIMAGF = 0x9F4 + SYS_CIMAGL = 0x9F7 + SYS_CLOGF = 0x9FD + SYS_MEMCHR = 0x09B + SYS_MEMCMP = 0x09A + SYS_STRCOLL = 0x09C + SYS_STRNCMP = 0x09D + SYS_STRRCHR = 0x09F + SYS_STRXFRM = 0x09E + SYS___CACOSHF_B = 0x9A4 + SYS___CACOSHF_H = 0x9A5 + SYS___CACOSHL_B = 0x9A7 + SYS___CACOSHL_H = 0x9A8 + SYS___CACOSH_B = 0x9A1 + SYS___CACOSH_H = 0x9A2 + SYS___CARGF_B = 0x9AD + SYS___CARGF_H = 0x9AE + SYS___CARGL_B = 0x9B0 + SYS___CARGL_H = 0x9B1 + SYS___CARG_B = 0x9AA + SYS___CARG_H = 0x9AB + SYS___CASINF_B = 0x9B6 + SYS___CASINF_H = 0x9B7 + SYS___CASINHF_B = 0x9BF + SYS___CASINHF_H = 0x9C0 + SYS___CASINHL_B = 0x9C2 + SYS___CASINHL_H = 0x9C3 + SYS___CASINH_B = 0x9BC + SYS___CASINH_H = 0x9BD + SYS___CASINL_B = 0x9B9 + SYS___CASINL_H = 0x9BA + SYS___CASIN_B = 0x9B3 + SYS___CASIN_H = 0x9B4 + SYS___CATANF_B = 0x9C8 + SYS___CATANF_H = 0x9C9 + SYS___CATANHF_B = 0x9D1 + SYS___CATANHF_H = 0x9D2 + SYS___CATANHL_B = 0x9D4 + SYS___CATANHL_H = 0x9D5 + SYS___CATANH_B = 0x9CE + SYS___CATANH_H = 0x9CF + SYS___CATANL_B = 0x9CB + SYS___CATANL_H = 0x9CC + SYS___CATAN_B = 0x9C5 + SYS___CATAN_H = 0x9C6 + SYS___CCOSF_B = 0x9DA + SYS___CCOSF_H = 0x9DB + SYS___CCOSHF_B = 0x9E3 + SYS___CCOSHF_H = 0x9E4 + SYS___CCOSHL_B = 0x9E6 + SYS___CCOSHL_H = 0x9E7 + SYS___CCOSH_B = 0x9E0 + SYS___CCOSH_H = 0x9E1 + SYS___CCOSL_B = 0x9DD + SYS___CCOSL_H = 0x9DE + SYS___CCOS_B = 0x9D7 + SYS___CCOS_H = 0x9D8 + SYS___CEXPF_B = 0x9EC + SYS___CEXPF_H = 0x9ED + SYS___CEXPL_B = 0x9EF + SYS___CEXPL_H = 0x9F0 + SYS___CEXP_B = 0x9E9 + SYS___CEXP_H = 0x9EA + SYS___CIMAGF_B = 0x9F5 + SYS___CIMAGF_H = 0x9F6 + SYS___CIMAGL_B = 0x9F8 + SYS___CIMAGL_H = 0x9F9 + SYS___CIMAG_B = 0x9F2 + SYS___CIMAG_H = 0x9F3 + SYS___CLOG = 0x9FA + SYS___CLOGF_B = 0x9FE + SYS___CLOGF_H = 0x9FF + SYS___CLOG_B = 0x9FB + SYS___CLOG_H = 0x9FC + SYS_ISWCTYPE = 0x10C + SYS_ISWXDIGI = 0x10A + SYS_ISWXDIGIT = 0x10A + SYS_MBSINIT = 0x10F + SYS_TOWLOWER = 0x10D + SYS_TOWUPPER = 0x10E + SYS_WCTYPE = 0x10B + SYS_WCSSTR = 0x11B + SYS___RPMTCH = 0x11A + SYS_WCSTOD = 0x12E + SYS_WCSTOK = 0x12C + SYS_WCSTOL = 0x12D + SYS_WCSTOUL = 0x12F + SYS_FGETWC = 0x13C + SYS_FGETWS = 0x13D + SYS_FPUTWC = 0x13E + SYS_FPUTWS = 0x13F + SYS_REGERROR = 0x13B + SYS_REGFREE = 0x13A + SYS_COLLEQUIV = 0x14F + SYS_COLLTOSTR = 0x14E + SYS_ISMCCOLLEL = 0x14C + SYS_STRTOCOLL = 0x14D + SYS_DLLFREE = 0x16F + SYS_DLLQUERYFN = 0x16D + SYS_DLLQUERYVAR = 0x16E + SYS_GETMCCOLL = 0x16A + SYS_GETWMCCOLL = 0x16B + SYS___ERR2AD = 0x16C + SYS_CFSETOSPEED = 0x17A + SYS_CHDIR = 0x17B + SYS_CHMOD = 0x17C + SYS_CHOWN = 0x17D + SYS_CLOSE = 0x17E + SYS_CLOSEDIR = 0x17F + SYS_LOG = 0x017 + SYS_COSH = 0x018 + SYS_FCHMOD = 0x18A + SYS_FCHOWN = 0x18B + SYS_FCNTL = 0x18C + SYS_FILENO = 0x18D + SYS_FORK = 0x18E + SYS_FPATHCONF = 0x18F + SYS_GETLOGIN = 0x19A + SYS_GETPGRP = 0x19C + SYS_GETPID = 0x19D + SYS_GETPPID = 0x19E + SYS_GETPWNAM = 0x19F + SYS_TANH = 0x019 + SYS_W_GETMNTENT = 0x19B + SYS_POW = 0x020 + SYS_PTHREAD_SELF = 0x20A + SYS_PTHREAD_SETINTR = 0x20B + SYS_PTHREAD_SETINTRTYPE = 0x20C + SYS_PTHREAD_SETSPECIFIC = 0x20D + SYS_PTHREAD_TESTINTR = 0x20E + SYS_PTHREAD_YIELD = 0x20F + SYS_SQRT = 0x021 + SYS_FLOOR = 0x022 + SYS_J1 = 0x023 + SYS_WCSPBRK = 0x23F + SYS_BSEARCH = 0x24C + SYS_FABS = 0x024 + SYS_GETENV = 0x24A + SYS_LDIV = 0x24D + SYS_SYSTEM = 0x24B + SYS_FMOD = 0x025 + SYS___RETHROW = 0x25F + SYS___THROW = 0x25E + SYS_J0 = 0x026 + SYS_PUTENV = 0x26A + SYS___GETENV = 0x26F + SYS_SEMCTL = 0x27A + SYS_SEMGET = 0x27B + SYS_SEMOP = 0x27C + SYS_SHMAT = 0x27D + SYS_SHMCTL = 0x27E + SYS_SHMDT = 0x27F + SYS_YN = 0x027 + SYS_JN = 0x028 + SYS_SIGALTSTACK = 0x28A + SYS_SIGHOLD = 0x28B + SYS_SIGIGNORE = 0x28C + SYS_SIGINTERRUPT = 0x28D + SYS_SIGPAUSE = 0x28E + SYS_SIGRELSE = 0x28F + SYS_GETOPT = 0x29A + SYS_GETSUBOPT = 0x29D + SYS_LCHOWN = 0x29B + SYS_SETPGRP = 0x29E + SYS_TRUNCATE = 0x29C + SYS_Y0 = 0x029 + SYS___GDERR = 0x29F + SYS_ISALPHA = 0x030 + SYS_VFORK = 0x30F + SYS__LONGJMP = 0x30D + SYS__SETJMP = 0x30E + SYS_GLOB = 0x31A + SYS_GLOBFREE = 0x31B + SYS_ISALNUM = 0x031 + SYS_PUTW = 0x31C + SYS_SEEKDIR = 0x31D + SYS_TELLDIR = 0x31E + SYS_TEMPNAM = 0x31F + SYS_GETTIMEOFDAY_R = 0x32E + SYS_ISLOWER = 0x032 + SYS_LGAMMA = 0x32C + SYS_REMAINDER = 0x32A + SYS_SCALB = 0x32B + SYS_SYNC = 0x32F + SYS_TTYSLOT = 0x32D + SYS_ENDPROTOENT = 0x33A + SYS_ENDSERVENT = 0x33B + SYS_GETHOSTBYADDR = 0x33D + SYS_GETHOSTBYADDR_R = 0x33C + SYS_GETHOSTBYNAME = 0x33F + SYS_GETHOSTBYNAME_R = 0x33E + SYS_ISCNTRL = 0x033 + SYS_GETSERVBYNAME = 0x34A + SYS_GETSERVBYPORT = 0x34B + SYS_GETSERVENT = 0x34C + SYS_GETSOCKNAME = 0x34D + SYS_GETSOCKOPT = 0x34E + SYS_INET_ADDR = 0x34F + SYS_ISDIGIT = 0x034 + SYS_ISGRAPH = 0x035 + SYS_SELECT = 0x35B + SYS_SELECTEX = 0x35C + SYS_SEND = 0x35D + SYS_SENDTO = 0x35F + SYS_CHROOT = 0x36A + SYS_ISNAN = 0x36D + SYS_ISUPPER = 0x036 + SYS_ULIMIT = 0x36C + SYS_UTIMES = 0x36E + SYS_W_STATVFS = 0x36B + SYS___H_ERRNO = 0x36F + SYS_GRANTPT = 0x37A + SYS_ISPRINT = 0x037 + SYS_TCGETSID = 0x37C + SYS_UNLOCKPT = 0x37B + SYS___TCGETCP = 0x37D + SYS___TCSETCP = 0x37E + SYS___TCSETTABLES = 0x37F + SYS_ISPUNCT = 0x038 + SYS_NLIST = 0x38C + SYS___IPDBCS = 0x38D + SYS___IPDSPX = 0x38E + SYS___IPMSGC = 0x38F + SYS___STHOSTENT = 0x38B + SYS___STSERVENT = 0x38A + SYS_ISSPACE = 0x039 + SYS_COS = 0x040 + SYS_T_ALLOC = 0x40A + SYS_T_BIND = 0x40B + SYS_T_CLOSE = 0x40C + SYS_T_CONNECT = 0x40D + SYS_T_ERROR = 0x40E + SYS_T_FREE = 0x40F + SYS_TAN = 0x041 + SYS_T_RCVREL = 0x41A + SYS_T_RCVUDATA = 0x41B + SYS_T_RCVUDERR = 0x41C + SYS_T_SND = 0x41D + SYS_T_SNDDIS = 0x41E + SYS_T_SNDREL = 0x41F + SYS_GETPMSG = 0x42A + SYS_ISASTREAM = 0x42B + SYS_PUTMSG = 0x42C + SYS_PUTPMSG = 0x42D + SYS_SINH = 0x042 + SYS___ISPOSIXON = 0x42E + SYS___OPENMVSREL = 0x42F + SYS_ACOS = 0x043 + SYS_ATAN = 0x044 + SYS_ATAN2 = 0x045 + SYS_FTELL = 0x046 + SYS_FGETPOS = 0x047 + SYS_SOCK_DEBUG = 0x47A + SYS_SOCK_DO_TESTSTOR = 0x47D + SYS_TAKESOCKET = 0x47E + SYS___SERVER_INIT = 0x47F + SYS_FSEEK = 0x048 + SYS___IPHOST = 0x48B + SYS___IPNODE = 0x48C + SYS___SERVER_CLASSIFY_CREATE = 0x48D + SYS___SERVER_CLASSIFY_DESTROY = 0x48E + SYS___SERVER_CLASSIFY_RESET = 0x48F + SYS___SMF_RECORD = 0x48A + SYS_FSETPOS = 0x049 + SYS___FNWSA = 0x49B + SYS___SPAWN2 = 0x49D + SYS___SPAWNP2 = 0x49E + SYS_ATOF = 0x050 + SYS_PTHREAD_MUTEXATTR_GETPSHARED = 0x50A + SYS_PTHREAD_MUTEXATTR_SETPSHARED = 0x50B + SYS_PTHREAD_RWLOCK_DESTROY = 0x50C + SYS_PTHREAD_RWLOCK_INIT = 0x50D + SYS_PTHREAD_RWLOCK_RDLOCK = 0x50E + SYS_PTHREAD_RWLOCK_TRYRDLOCK = 0x50F + SYS_ATOI = 0x051 + SYS___FP_CLASS = 0x51D + SYS___FP_CLR_FLAG = 0x51A + SYS___FP_FINITE = 0x51E + SYS___FP_ISNAN = 0x51F + SYS___FP_RAISE_XCP = 0x51C + SYS___FP_READ_FLAG = 0x51B + SYS_RAND = 0x052 + SYS_SIGTIMEDWAIT = 0x52D + SYS_SIGWAITINFO = 0x52E + SYS___CHKBFP = 0x52F + SYS___FPC_RS = 0x52C + SYS___FPC_RW = 0x52A + SYS___FPC_SM = 0x52B + SYS_STRTOD = 0x053 + SYS_STRTOL = 0x054 + SYS_STRTOUL = 0x055 + SYS_MALLOC = 0x056 + SYS_SRAND = 0x057 + SYS_CALLOC = 0x058 + SYS_FREE = 0x059 + SYS___OSENV = 0x59F + SYS___W_PIOCTL = 0x59E + SYS_LONGJMP = 0x060 + SYS___FLOORF_B = 0x60A + SYS___FLOORL_B = 0x60B + SYS___FREXPF_B = 0x60C + SYS___FREXPL_B = 0x60D + SYS___LDEXPF_B = 0x60E + SYS___LDEXPL_B = 0x60F + SYS_SIGNAL = 0x061 + SYS___ATAN2F_B = 0x61A + SYS___ATAN2L_B = 0x61B + SYS___COSHF_B = 0x61C + SYS___COSHL_B = 0x61D + SYS___EXPF_B = 0x61E + SYS___EXPL_B = 0x61F + SYS_TMPNAM = 0x062 + SYS___ABSF_B = 0x62A + SYS___ABSL_B = 0x62C + SYS___ABS_B = 0x62B + SYS___FMODF_B = 0x62D + SYS___FMODL_B = 0x62E + SYS___MODFF_B = 0x62F + SYS_ATANL = 0x63A + SYS_CEILF = 0x63B + SYS_CEILL = 0x63C + SYS_COSF = 0x63D + SYS_COSHF = 0x63F + SYS_COSL = 0x63E + SYS_REMOVE = 0x063 + SYS_POWL = 0x64A + SYS_RENAME = 0x064 + SYS_SINF = 0x64B + SYS_SINHF = 0x64F + SYS_SINL = 0x64C + SYS_SQRTF = 0x64D + SYS_SQRTL = 0x64E + SYS_BTOWC = 0x65F + SYS_FREXPL = 0x65A + SYS_LDEXPF = 0x65B + SYS_LDEXPL = 0x65C + SYS_MODFF = 0x65D + SYS_MODFL = 0x65E + SYS_TMPFILE = 0x065 + SYS_FREOPEN = 0x066 + SYS___CHARMAP_INIT_A = 0x66E + SYS___GETHOSTBYADDR_R_A = 0x66C + SYS___GETHOSTBYNAME_A = 0x66A + SYS___GETHOSTBYNAME_R_A = 0x66D + SYS___MBLEN_A = 0x66F + SYS___RES_INIT_A = 0x66B + SYS_FCLOSE = 0x067 + SYS___GETGRGID_R_A = 0x67D + SYS___WCSTOMBS_A = 0x67A + SYS___WCSTOMBS_STD_A = 0x67B + SYS___WCSWIDTH_A = 0x67C + SYS___WCSWIDTH_ASIA = 0x67F + SYS___WCSWIDTH_STD_A = 0x67E + SYS_FFLUSH = 0x068 + SYS___GETLOGIN_R_A = 0x68E + SYS___GETPWNAM_R_A = 0x68C + SYS___GETPWUID_R_A = 0x68D + SYS___TTYNAME_R_A = 0x68F + SYS___WCWIDTH_ASIA = 0x68B + SYS___WCWIDTH_STD_A = 0x68A + SYS_FOPEN = 0x069 + SYS___REGEXEC_A = 0x69A + SYS___REGEXEC_STD_A = 0x69B + SYS___REGFREE_A = 0x69C + SYS___REGFREE_STD_A = 0x69D + SYS___STRCOLL_A = 0x69E + SYS___STRCOLL_C_A = 0x69F + SYS_SCANF = 0x070 + SYS___A64L_A = 0x70C + SYS___ECVT_A = 0x70D + SYS___FCVT_A = 0x70E + SYS___GCVT_A = 0x70F + SYS___STRTOUL_A = 0x70A + SYS_____AE_CORRESTBL_QUERY_A = 0x70B + SYS_SPRINTF = 0x071 + SYS___ACCESS_A = 0x71F + SYS___CATOPEN_A = 0x71E + SYS___GETOPT_A = 0x71D + SYS___REALPATH_A = 0x71A + SYS___SETENV_A = 0x71B + SYS___SYSTEM_A = 0x71C + SYS_FGETC = 0x072 + SYS___GAI_STRERROR_A = 0x72F + SYS___RMDIR_A = 0x72A + SYS___STATVFS_A = 0x72B + SYS___SYMLINK_A = 0x72C + SYS___TRUNCATE_A = 0x72D + SYS___UNLINK_A = 0x72E + SYS_VFPRINTF = 0x073 + SYS___ISSPACE_A = 0x73A + SYS___ISUPPER_A = 0x73B + SYS___ISWALNUM_A = 0x73F + SYS___ISXDIGIT_A = 0x73C + SYS___TOLOWER_A = 0x73D + SYS___TOUPPER_A = 0x73E + SYS_VPRINTF = 0x074 + SYS___CONFSTR_A = 0x74B + SYS___FDOPEN_A = 0x74E + SYS___FLDATA_A = 0x74F + SYS___FTOK_A = 0x74C + SYS___ISWXDIGIT_A = 0x74A + SYS___MKTEMP_A = 0x74D + SYS_VSPRINTF = 0x075 + SYS___GETGRGID_A = 0x75A + SYS___GETGRNAM_A = 0x75B + SYS___GETGROUPSBYNAME_A = 0x75C + SYS___GETHOSTENT_A = 0x75D + SYS___GETHOSTNAME_A = 0x75E + SYS___GETLOGIN_A = 0x75F + SYS_GETC = 0x076 + SYS___CREATEWORKUNIT_A = 0x76A + SYS___CTERMID_A = 0x76B + SYS___FMTMSG_A = 0x76C + SYS___INITGROUPS_A = 0x76D + SYS___MSGRCV_A = 0x76F + SYS_____LOGIN_A = 0x76E + SYS_FGETS = 0x077 + SYS___STRCASECMP_A = 0x77B + SYS___STRNCASECMP_A = 0x77C + SYS___TTYNAME_A = 0x77D + SYS___UNAME_A = 0x77E + SYS___UTIMES_A = 0x77F + SYS_____SERVER_PWU_A = 0x77A + SYS_FPUTC = 0x078 + SYS___CREAT_O_A = 0x78E + SYS___ENVNA = 0x78F + SYS___FREAD_A = 0x78A + SYS___FWRITE_A = 0x78B + SYS___ISASCII = 0x78D + SYS___OPEN_O_A = 0x78C + SYS_FPUTS = 0x079 + SYS___ASCTIME_A = 0x79C + SYS___CTIME_A = 0x79D + SYS___GETDATE_A = 0x79E + SYS___GETSERVBYPORT_A = 0x79A + SYS___GETSERVENT_A = 0x79B + SYS___TZSET_A = 0x79F + SYS_ACL_FROM_TEXT = 0x80C + SYS_ACL_SET_FD = 0x80A + SYS_ACL_SET_FILE = 0x80B + SYS_ACL_SORT = 0x80E + SYS_ACL_TO_TEXT = 0x80D + SYS_UNGETC = 0x080 + SYS___SHUTDOWN_REGISTRATION = 0x80F + SYS_FREAD = 0x081 + SYS_FREEADDRINFO = 0x81A + SYS_GAI_STRERROR = 0x81B + SYS_REXEC_AF = 0x81C + SYS___DYNALLOC_A = 0x81F + SYS___POE = 0x81D + SYS_WCSTOMBS = 0x082 + SYS___INET_ADDR_A = 0x82F + SYS___NLIST_A = 0x82A + SYS_____TCGETCP_A = 0x82B + SYS_____TCSETCP_A = 0x82C + SYS_____W_PIOCTL_A = 0x82E + SYS_MBTOWC = 0x083 + SYS___CABEND = 0x83D + SYS___LE_CIB_GET = 0x83E + SYS___RECVMSG_A = 0x83B + SYS___SENDMSG_A = 0x83A + SYS___SET_LAA_FOR_JIT = 0x83F + SYS_____LCHATTR_A = 0x83C + SYS_WCTOMB = 0x084 + SYS___CBRTL_B = 0x84A + SYS___COPYSIGNF_B = 0x84B + SYS___COPYSIGNL_B = 0x84C + SYS___COTANF_B = 0x84D + SYS___COTANL_B = 0x84F + SYS___COTAN_B = 0x84E + SYS_MBSTOWCS = 0x085 + SYS___LOG1PL_B = 0x85A + SYS___LOG2F_B = 0x85B + SYS___LOG2L_B = 0x85D + SYS___LOG2_B = 0x85C + SYS___REMAINDERF_B = 0x85E + SYS___REMAINDERL_B = 0x85F + SYS_ACOSHF = 0x86E + SYS_ACOSHL = 0x86F + SYS_WCSCPY = 0x086 + SYS___ERFCF_B = 0x86D + SYS___ERFF_B = 0x86C + SYS___LROUNDF_B = 0x86A + SYS___LROUND_B = 0x86B + SYS_COTANL = 0x87A + SYS_EXP2F = 0x87B + SYS_EXP2L = 0x87C + SYS_EXPM1F = 0x87D + SYS_EXPM1L = 0x87E + SYS_FDIMF = 0x87F + SYS_WCSCAT = 0x087 + SYS___COTANL = 0x87A + SYS_REMAINDERF = 0x88A + SYS_REMAINDERL = 0x88B + SYS_REMAINDF = 0x88A + SYS_REMAINDL = 0x88B + SYS_REMQUO = 0x88D + SYS_REMQUOF = 0x88C + SYS_REMQUOL = 0x88E + SYS_TGAMMAF = 0x88F + SYS_WCSCHR = 0x088 + SYS_ERFCF = 0x89B + SYS_ERFCL = 0x89C + SYS_ERFL = 0x89A + SYS_EXP2 = 0x89E + SYS_WCSCMP = 0x089 + SYS___EXP2_B = 0x89D + SYS___FAR_JUMP = 0x89F + SYS_ABS = 0x090 + SYS___ERFCL_H = 0x90A + SYS___EXPF_H = 0x90C + SYS___EXPL_H = 0x90D + SYS___EXPM1_H = 0x90E + SYS___EXP_H = 0x90B + SYS___FDIM_H = 0x90F + SYS_DIV = 0x091 + SYS___LOG2F_H = 0x91F + SYS___LOG2_H = 0x91E + SYS___LOGB_H = 0x91D + SYS___LOGF_H = 0x91B + SYS___LOGL_H = 0x91C + SYS___LOG_H = 0x91A + SYS_LABS = 0x092 + SYS___POWL_H = 0x92A + SYS___REMAINDER_H = 0x92B + SYS___RINT_H = 0x92C + SYS___SCALB_H = 0x92D + SYS___SINF_H = 0x92F + SYS___SIN_H = 0x92E + SYS_STRNCPY = 0x093 + SYS___TANHF_H = 0x93B + SYS___TANHL_H = 0x93C + SYS___TANH_H = 0x93A + SYS___TGAMMAF_H = 0x93E + SYS___TGAMMA_H = 0x93D + SYS___TRUNC_H = 0x93F + SYS_MEMCPY = 0x094 + SYS_VFWSCANF = 0x94A + SYS_VSWSCANF = 0x94E + SYS_VWSCANF = 0x94C + SYS_INET6_RTH_ADD = 0x95D + SYS_INET6_RTH_INIT = 0x95C + SYS_INET6_RTH_REVERSE = 0x95E + SYS_INET6_RTH_SEGMENTS = 0x95F + SYS_INET6_RTH_SPACE = 0x95B + SYS_MEMMOVE = 0x095 + SYS_WCSTOLD = 0x95A + SYS_STRCPY = 0x096 + SYS_STRCMP = 0x097 + SYS_CABS = 0x98E + SYS_STRCAT = 0x098 + SYS___CABS_B = 0x98F + SYS___POW_II = 0x98A + SYS___POW_II_B = 0x98B + SYS___POW_II_H = 0x98C + SYS_CACOSF = 0x99A + SYS_CACOSL = 0x99D + SYS_STRNCAT = 0x099 + SYS___CACOSF_B = 0x99B + SYS___CACOSF_H = 0x99C + SYS___CACOSL_B = 0x99E + SYS___CACOSL_H = 0x99F + SYS_ISWALPHA = 0x100 + SYS_ISWBLANK = 0x101 + SYS___ISWBLK = 0x101 + SYS_ISWCNTRL = 0x102 + SYS_ISWDIGIT = 0x103 + SYS_ISWGRAPH = 0x104 + SYS_ISWLOWER = 0x105 + SYS_ISWPRINT = 0x106 + SYS_ISWPUNCT = 0x107 + SYS_ISWSPACE = 0x108 + SYS_ISWUPPER = 0x109 + SYS_WCTOB = 0x110 + SYS_MBRLEN = 0x111 + SYS_MBRTOWC = 0x112 + SYS_MBSRTOWC = 0x113 + SYS_MBSRTOWCS = 0x113 + SYS_WCRTOMB = 0x114 + SYS_WCSRTOMB = 0x115 + SYS_WCSRTOMBS = 0x115 + SYS___CSID = 0x116 + SYS___WCSID = 0x117 + SYS_STRPTIME = 0x118 + SYS___STRPTM = 0x118 + SYS_STRFMON = 0x119 + SYS_WCSCOLL = 0x130 + SYS_WCSXFRM = 0x131 + SYS_WCSWIDTH = 0x132 + SYS_WCWIDTH = 0x133 + SYS_WCSFTIME = 0x134 + SYS_SWPRINTF = 0x135 + SYS_VSWPRINT = 0x136 + SYS_VSWPRINTF = 0x136 + SYS_SWSCANF = 0x137 + SYS_REGCOMP = 0x138 + SYS_REGEXEC = 0x139 + SYS_GETWC = 0x140 + SYS_GETWCHAR = 0x141 + SYS_PUTWC = 0x142 + SYS_PUTWCHAR = 0x143 + SYS_UNGETWC = 0x144 + SYS_ICONV_OPEN = 0x145 + SYS_ICONV = 0x146 + SYS_ICONV_CLOSE = 0x147 + SYS_COLLRANGE = 0x150 + SYS_CCLASS = 0x151 + SYS_COLLORDER = 0x152 + SYS___DEMANGLE = 0x154 + SYS_FDOPEN = 0x155 + SYS___ERRNO = 0x156 + SYS___ERRNO2 = 0x157 + SYS___TERROR = 0x158 + SYS_MAXCOLL = 0x169 + SYS_DLLLOAD = 0x170 + SYS__EXIT = 0x174 + SYS_ACCESS = 0x175 + SYS_ALARM = 0x176 + SYS_CFGETISPEED = 0x177 + SYS_CFGETOSPEED = 0x178 + SYS_CFSETISPEED = 0x179 + SYS_CREAT = 0x180 + SYS_CTERMID = 0x181 + SYS_DUP = 0x182 + SYS_DUP2 = 0x183 + SYS_EXECL = 0x184 + SYS_EXECLE = 0x185 + SYS_EXECLP = 0x186 + SYS_EXECV = 0x187 + SYS_EXECVE = 0x188 + SYS_EXECVP = 0x189 + SYS_FSTAT = 0x190 + SYS_FSYNC = 0x191 + SYS_FTRUNCATE = 0x192 + SYS_GETCWD = 0x193 + SYS_GETEGID = 0x194 + SYS_GETEUID = 0x195 + SYS_GETGID = 0x196 + SYS_GETGRGID = 0x197 + SYS_GETGRNAM = 0x198 + SYS_GETGROUPS = 0x199 + SYS_PTHREAD_MUTEXATTR_DESTROY = 0x200 + SYS_PTHREAD_MUTEXATTR_SETKIND_NP = 0x201 + SYS_PTHREAD_MUTEXATTR_GETKIND_NP = 0x202 + SYS_PTHREAD_MUTEX_INIT = 0x203 + SYS_PTHREAD_MUTEX_DESTROY = 0x204 + SYS_PTHREAD_MUTEX_LOCK = 0x205 + SYS_PTHREAD_MUTEX_TRYLOCK = 0x206 + SYS_PTHREAD_MUTEX_UNLOCK = 0x207 + SYS_PTHREAD_ONCE = 0x209 + SYS_TW_OPEN = 0x210 + SYS_TW_FCNTL = 0x211 + SYS_PTHREAD_JOIN_D4_NP = 0x212 + SYS_PTHREAD_CONDATTR_SETKIND_NP = 0x213 + SYS_PTHREAD_CONDATTR_GETKIND_NP = 0x214 + SYS_EXTLINK_NP = 0x215 + SYS___PASSWD = 0x216 + SYS_SETGROUPS = 0x217 + SYS_INITGROUPS = 0x218 + SYS_WCSRCHR = 0x240 + SYS_SVC99 = 0x241 + SYS___SVC99 = 0x241 + SYS_WCSWCS = 0x242 + SYS_LOCALECO = 0x243 + SYS_LOCALECONV = 0x243 + SYS___LIBREL = 0x244 + SYS_RELEASE = 0x245 + SYS___RLSE = 0x245 + SYS_FLOCATE = 0x246 + SYS___FLOCT = 0x246 + SYS_FDELREC = 0x247 + SYS___FDLREC = 0x247 + SYS_FETCH = 0x248 + SYS___FETCH = 0x248 + SYS_QSORT = 0x249 + SYS___CLEANUPCATCH = 0x260 + SYS___CATCHMATCH = 0x261 + SYS___CLEAN2UPCATCH = 0x262 + SYS_GETPRIORITY = 0x270 + SYS_NICE = 0x271 + SYS_SETPRIORITY = 0x272 + SYS_GETITIMER = 0x273 + SYS_SETITIMER = 0x274 + SYS_MSGCTL = 0x275 + SYS_MSGGET = 0x276 + SYS_MSGRCV = 0x277 + SYS_MSGSND = 0x278 + SYS_MSGXRCV = 0x279 + SYS___MSGXR = 0x279 + SYS_SHMGET = 0x280 + SYS___GETIPC = 0x281 + SYS_SETGRENT = 0x282 + SYS_GETGRENT = 0x283 + SYS_ENDGRENT = 0x284 + SYS_SETPWENT = 0x285 + SYS_GETPWENT = 0x286 + SYS_ENDPWENT = 0x287 + SYS_BSD_SIGNAL = 0x288 + SYS_KILLPG = 0x289 + SYS_SIGSET = 0x290 + SYS_SIGSTACK = 0x291 + SYS_GETRLIMIT = 0x292 + SYS_SETRLIMIT = 0x293 + SYS_GETRUSAGE = 0x294 + SYS_MMAP = 0x295 + SYS_MPROTECT = 0x296 + SYS_MSYNC = 0x297 + SYS_MUNMAP = 0x298 + SYS_CONFSTR = 0x299 + SYS___NDMTRM = 0x300 + SYS_FTOK = 0x301 + SYS_BASENAME = 0x302 + SYS_DIRNAME = 0x303 + SYS_GETDTABLESIZE = 0x304 + SYS_MKSTEMP = 0x305 + SYS_MKTEMP = 0x306 + SYS_NFTW = 0x307 + SYS_GETWD = 0x308 + SYS_LOCKF = 0x309 + SYS_WORDEXP = 0x310 + SYS_WORDFREE = 0x311 + SYS_GETPGID = 0x312 + SYS_GETSID = 0x313 + SYS___UTMPXNAME = 0x314 + SYS_CUSERID = 0x315 + SYS_GETPASS = 0x316 + SYS_FNMATCH = 0x317 + SYS_FTW = 0x318 + SYS_GETW = 0x319 + SYS_ACOSH = 0x320 + SYS_ASINH = 0x321 + SYS_ATANH = 0x322 + SYS_CBRT = 0x323 + SYS_EXPM1 = 0x324 + SYS_ILOGB = 0x325 + SYS_LOGB = 0x326 + SYS_LOG1P = 0x327 + SYS_NEXTAFTER = 0x328 + SYS_RINT = 0x329 + SYS_SPAWN = 0x330 + SYS_SPAWNP = 0x331 + SYS_GETLOGIN_UU = 0x332 + SYS_ECVT = 0x333 + SYS_FCVT = 0x334 + SYS_GCVT = 0x335 + SYS_ACCEPT = 0x336 + SYS_BIND = 0x337 + SYS_CONNECT = 0x338 + SYS_ENDHOSTENT = 0x339 + SYS_GETHOSTENT = 0x340 + SYS_GETHOSTID = 0x341 + SYS_GETHOSTNAME = 0x342 + SYS_GETNETBYADDR = 0x343 + SYS_GETNETBYNAME = 0x344 + SYS_GETNETENT = 0x345 + SYS_GETPEERNAME = 0x346 + SYS_GETPROTOBYNAME = 0x347 + SYS_GETPROTOBYNUMBER = 0x348 + SYS_GETPROTOENT = 0x349 + SYS_INET_LNAOF = 0x350 + SYS_INET_MAKEADDR = 0x351 + SYS_INET_NETOF = 0x352 + SYS_INET_NETWORK = 0x353 + SYS_INET_NTOA = 0x354 + SYS_IOCTL = 0x355 + SYS_LISTEN = 0x356 + SYS_READV = 0x357 + SYS_RECV = 0x358 + SYS_RECVFROM = 0x359 + SYS_SETHOSTENT = 0x360 + SYS_SETNETENT = 0x361 + SYS_SETPEER = 0x362 + SYS_SETPROTOENT = 0x363 + SYS_SETSERVENT = 0x364 + SYS_SETSOCKOPT = 0x365 + SYS_SHUTDOWN = 0x366 + SYS_SOCKET = 0x367 + SYS_SOCKETPAIR = 0x368 + SYS_WRITEV = 0x369 + SYS_ENDNETENT = 0x370 + SYS_CLOSELOG = 0x371 + SYS_OPENLOG = 0x372 + SYS_SETLOGMASK = 0x373 + SYS_SYSLOG = 0x374 + SYS_PTSNAME = 0x375 + SYS_SETREUID = 0x376 + SYS_SETREGID = 0x377 + SYS_REALPATH = 0x378 + SYS___SIGNGAM = 0x379 + SYS_POLL = 0x380 + SYS_REXEC = 0x381 + SYS___ISASCII2 = 0x382 + SYS___TOASCII2 = 0x383 + SYS_CHPRIORITY = 0x384 + SYS_PTHREAD_ATTR_SETSYNCTYPE_NP = 0x385 + SYS_PTHREAD_ATTR_GETSYNCTYPE_NP = 0x386 + SYS_PTHREAD_SET_LIMIT_NP = 0x387 + SYS___STNETENT = 0x388 + SYS___STPROTOENT = 0x389 + SYS___SELECT1 = 0x390 + SYS_PTHREAD_SECURITY_NP = 0x391 + SYS___CHECK_RESOURCE_AUTH_NP = 0x392 + SYS___CONVERT_ID_NP = 0x393 + SYS___OPENVMREL = 0x394 + SYS_WMEMCHR = 0x395 + SYS_WMEMCMP = 0x396 + SYS_WMEMCPY = 0x397 + SYS_WMEMMOVE = 0x398 + SYS_WMEMSET = 0x399 + SYS___FPUTWC = 0x400 + SYS___PUTWC = 0x401 + SYS___PWCHAR = 0x402 + SYS___WCSFTM = 0x403 + SYS___WCSTOK = 0x404 + SYS___WCWDTH = 0x405 + SYS_T_ACCEPT = 0x409 + SYS_T_GETINFO = 0x410 + SYS_T_GETPROTADDR = 0x411 + SYS_T_GETSTATE = 0x412 + SYS_T_LISTEN = 0x413 + SYS_T_LOOK = 0x414 + SYS_T_OPEN = 0x415 + SYS_T_OPTMGMT = 0x416 + SYS_T_RCV = 0x417 + SYS_T_RCVCONNECT = 0x418 + SYS_T_RCVDIS = 0x419 + SYS_T_SNDUDATA = 0x420 + SYS_T_STRERROR = 0x421 + SYS_T_SYNC = 0x422 + SYS_T_UNBIND = 0x423 + SYS___T_ERRNO = 0x424 + SYS___RECVMSG2 = 0x425 + SYS___SENDMSG2 = 0x426 + SYS_FATTACH = 0x427 + SYS_FDETACH = 0x428 + SYS_GETMSG = 0x429 + SYS_GETCONTEXT = 0x430 + SYS_SETCONTEXT = 0x431 + SYS_MAKECONTEXT = 0x432 + SYS_SWAPCONTEXT = 0x433 + SYS_PTHREAD_GETSPECIFIC_D8_NP = 0x434 + SYS_GETCLIENTID = 0x470 + SYS___GETCLIENTID = 0x471 + SYS_GETSTABLESIZE = 0x472 + SYS_GETIBMOPT = 0x473 + SYS_GETIBMSOCKOPT = 0x474 + SYS_GIVESOCKET = 0x475 + SYS_IBMSFLUSH = 0x476 + SYS_MAXDESC = 0x477 + SYS_SETIBMOPT = 0x478 + SYS_SETIBMSOCKOPT = 0x479 + SYS___SERVER_PWU = 0x480 + SYS_PTHREAD_TAG_NP = 0x481 + SYS___CONSOLE = 0x482 + SYS___WSINIT = 0x483 + SYS___IPTCPN = 0x489 + SYS___SERVER_CLASSIFY = 0x490 + SYS___HEAPRPT = 0x496 + SYS___ISBFP = 0x500 + SYS___FP_CAST = 0x501 + SYS___CERTIFICATE = 0x502 + SYS_SEND_FILE = 0x503 + SYS_AIO_CANCEL = 0x504 + SYS_AIO_ERROR = 0x505 + SYS_AIO_READ = 0x506 + SYS_AIO_RETURN = 0x507 + SYS_AIO_SUSPEND = 0x508 + SYS_AIO_WRITE = 0x509 + SYS_PTHREAD_RWLOCK_TRYWRLOCK = 0x510 + SYS_PTHREAD_RWLOCK_UNLOCK = 0x511 + SYS_PTHREAD_RWLOCK_WRLOCK = 0x512 + SYS_PTHREAD_RWLOCKATTR_GETPSHARED = 0x513 + SYS_PTHREAD_RWLOCKATTR_SETPSHARED = 0x514 + SYS_PTHREAD_RWLOCKATTR_INIT = 0x515 + SYS_PTHREAD_RWLOCKATTR_DESTROY = 0x516 + SYS___CTTBL = 0x517 + SYS_PTHREAD_MUTEXATTR_SETTYPE = 0x518 + SYS_PTHREAD_MUTEXATTR_GETTYPE = 0x519 + SYS___FP_UNORDERED = 0x520 + SYS___FP_READ_RND = 0x521 + SYS___FP_READ_RND_B = 0x522 + SYS___FP_SWAP_RND = 0x523 + SYS___FP_SWAP_RND_B = 0x524 + SYS___FP_LEVEL = 0x525 + SYS___FP_BTOH = 0x526 + SYS___FP_HTOB = 0x527 + SYS___FPC_RD = 0x528 + SYS___FPC_WR = 0x529 + SYS_PTHREAD_SETCANCELTYPE = 0x600 + SYS_PTHREAD_TESTCANCEL = 0x601 + SYS___ATANF_B = 0x602 + SYS___ATANL_B = 0x603 + SYS___CEILF_B = 0x604 + SYS___CEILL_B = 0x605 + SYS___COSF_B = 0x606 + SYS___COSL_B = 0x607 + SYS___FABSF_B = 0x608 + SYS___FABSL_B = 0x609 + SYS___SINF_B = 0x610 + SYS___SINL_B = 0x611 + SYS___TANF_B = 0x612 + SYS___TANL_B = 0x613 + SYS___TANHF_B = 0x614 + SYS___TANHL_B = 0x615 + SYS___ACOSF_B = 0x616 + SYS___ACOSL_B = 0x617 + SYS___ASINF_B = 0x618 + SYS___ASINL_B = 0x619 + SYS___LOGF_B = 0x620 + SYS___LOGL_B = 0x621 + SYS___LOG10F_B = 0x622 + SYS___LOG10L_B = 0x623 + SYS___POWF_B = 0x624 + SYS___POWL_B = 0x625 + SYS___SINHF_B = 0x626 + SYS___SINHL_B = 0x627 + SYS___SQRTF_B = 0x628 + SYS___SQRTL_B = 0x629 + SYS___MODFL_B = 0x630 + SYS_ABSF = 0x631 + SYS_ABSL = 0x632 + SYS_ACOSF = 0x633 + SYS_ACOSL = 0x634 + SYS_ASINF = 0x635 + SYS_ASINL = 0x636 + SYS_ATAN2F = 0x637 + SYS_ATAN2L = 0x638 + SYS_ATANF = 0x639 + SYS_COSHL = 0x640 + SYS_EXPF = 0x641 + SYS_EXPL = 0x642 + SYS_TANHF = 0x643 + SYS_TANHL = 0x644 + SYS_LOG10F = 0x645 + SYS_LOG10L = 0x646 + SYS_LOGF = 0x647 + SYS_LOGL = 0x648 + SYS_POWF = 0x649 + SYS_SINHL = 0x650 + SYS_TANF = 0x651 + SYS_TANL = 0x652 + SYS_FABSF = 0x653 + SYS_FABSL = 0x654 + SYS_FLOORF = 0x655 + SYS_FLOORL = 0x656 + SYS_FMODF = 0x657 + SYS_FMODL = 0x658 + SYS_FREXPF = 0x659 + SYS___CHATTR = 0x660 + SYS___FCHATTR = 0x661 + SYS___TOCCSID = 0x662 + SYS___CSNAMETYPE = 0x663 + SYS___TOCSNAME = 0x664 + SYS___CCSIDTYPE = 0x665 + SYS___AE_CORRESTBL_QUERY = 0x666 + SYS___AE_AUTOCONVERT_STATE = 0x667 + SYS_DN_FIND = 0x668 + SYS___GETHOSTBYADDR_A = 0x669 + SYS___MBLEN_SB_A = 0x670 + SYS___MBLEN_STD_A = 0x671 + SYS___MBLEN_UTF = 0x672 + SYS___MBSTOWCS_A = 0x673 + SYS___MBSTOWCS_STD_A = 0x674 + SYS___MBTOWC_A = 0x675 + SYS___MBTOWC_ISO1 = 0x676 + SYS___MBTOWC_SBCS = 0x677 + SYS___MBTOWC_MBCS = 0x678 + SYS___MBTOWC_UTF = 0x679 + SYS___CSID_A = 0x680 + SYS___CSID_STD_A = 0x681 + SYS___WCSID_A = 0x682 + SYS___WCSID_STD_A = 0x683 + SYS___WCTOMB_A = 0x684 + SYS___WCTOMB_ISO1 = 0x685 + SYS___WCTOMB_STD_A = 0x686 + SYS___WCTOMB_UTF = 0x687 + SYS___WCWIDTH_A = 0x688 + SYS___GETGRNAM_R_A = 0x689 + SYS___READDIR_R_A = 0x690 + SYS___E2A_S = 0x691 + SYS___FNMATCH_A = 0x692 + SYS___FNMATCH_C_A = 0x693 + SYS___EXECL_A = 0x694 + SYS___FNMATCH_STD_A = 0x695 + SYS___REGCOMP_A = 0x696 + SYS___REGCOMP_STD_A = 0x697 + SYS___REGERROR_A = 0x698 + SYS___REGERROR_STD_A = 0x699 + SYS___SWPRINTF_A = 0x700 + SYS___FSCANF_A = 0x701 + SYS___SCANF_A = 0x702 + SYS___SSCANF_A = 0x703 + SYS___SWSCANF_A = 0x704 + SYS___ATOF_A = 0x705 + SYS___ATOI_A = 0x706 + SYS___ATOL_A = 0x707 + SYS___STRTOD_A = 0x708 + SYS___STRTOL_A = 0x709 + SYS___L64A_A = 0x710 + SYS___STRERROR_A = 0x711 + SYS___PERROR_A = 0x712 + SYS___FETCH_A = 0x713 + SYS___GETENV_A = 0x714 + SYS___MKSTEMP_A = 0x717 + SYS___PTSNAME_A = 0x718 + SYS___PUTENV_A = 0x719 + SYS___CHDIR_A = 0x720 + SYS___CHOWN_A = 0x721 + SYS___CHROOT_A = 0x722 + SYS___GETCWD_A = 0x723 + SYS___GETWD_A = 0x724 + SYS___LCHOWN_A = 0x725 + SYS___LINK_A = 0x726 + SYS___PATHCONF_A = 0x727 + SYS___IF_NAMEINDEX_A = 0x728 + SYS___READLINK_A = 0x729 + SYS___EXTLINK_NP_A = 0x730 + SYS___ISALNUM_A = 0x731 + SYS___ISALPHA_A = 0x732 + SYS___A2E_S = 0x733 + SYS___ISCNTRL_A = 0x734 + SYS___ISDIGIT_A = 0x735 + SYS___ISGRAPH_A = 0x736 + SYS___ISLOWER_A = 0x737 + SYS___ISPRINT_A = 0x738 + SYS___ISPUNCT_A = 0x739 + SYS___ISWALPHA_A = 0x740 + SYS___A2E_L = 0x741 + SYS___ISWCNTRL_A = 0x742 + SYS___ISWDIGIT_A = 0x743 + SYS___ISWGRAPH_A = 0x744 + SYS___ISWLOWER_A = 0x745 + SYS___ISWPRINT_A = 0x746 + SYS___ISWPUNCT_A = 0x747 + SYS___ISWSPACE_A = 0x748 + SYS___ISWUPPER_A = 0x749 + SYS___REMOVE_A = 0x750 + SYS___RENAME_A = 0x751 + SYS___TMPNAM_A = 0x752 + SYS___FOPEN_A = 0x753 + SYS___FREOPEN_A = 0x754 + SYS___CUSERID_A = 0x755 + SYS___POPEN_A = 0x756 + SYS___TEMPNAM_A = 0x757 + SYS___FTW_A = 0x758 + SYS___GETGRENT_A = 0x759 + SYS___INET_NTOP_A = 0x760 + SYS___GETPASS_A = 0x761 + SYS___GETPWENT_A = 0x762 + SYS___GETPWNAM_A = 0x763 + SYS___GETPWUID_A = 0x764 + SYS_____CHECK_RESOURCE_AUTH_NP_A = 0x765 + SYS___CHECKSCHENV_A = 0x766 + SYS___CONNECTSERVER_A = 0x767 + SYS___CONNECTWORKMGR_A = 0x768 + SYS_____CONSOLE_A = 0x769 + SYS___MSGSND_A = 0x770 + SYS___MSGXRCV_A = 0x771 + SYS___NFTW_A = 0x772 + SYS_____PASSWD_A = 0x773 + SYS___PTHREAD_SECURITY_NP_A = 0x774 + SYS___QUERYMETRICS_A = 0x775 + SYS___QUERYSCHENV = 0x776 + SYS___READV_A = 0x777 + SYS_____SERVER_CLASSIFY_A = 0x778 + SYS_____SERVER_INIT_A = 0x779 + SYS___W_GETPSENT_A = 0x780 + SYS___WRITEV_A = 0x781 + SYS___W_STATFS_A = 0x782 + SYS___W_STATVFS_A = 0x783 + SYS___FPUTC_A = 0x784 + SYS___PUTCHAR_A = 0x785 + SYS___PUTS_A = 0x786 + SYS___FGETS_A = 0x787 + SYS___GETS_A = 0x788 + SYS___FPUTS_A = 0x789 + SYS___PUTC_A = 0x790 + SYS___AE_THREAD_SETMODE = 0x791 + SYS___AE_THREAD_SWAPMODE = 0x792 + SYS___GETNETBYADDR_A = 0x793 + SYS___GETNETBYNAME_A = 0x794 + SYS___GETNETENT_A = 0x795 + SYS___GETPROTOBYNAME_A = 0x796 + SYS___GETPROTOBYNUMBER_A = 0x797 + SYS___GETPROTOENT_A = 0x798 + SYS___GETSERVBYNAME_A = 0x799 + SYS_ACL_FIRST_ENTRY = 0x800 + SYS_ACL_GET_ENTRY = 0x801 + SYS_ACL_VALID = 0x802 + SYS_ACL_CREATE_ENTRY = 0x803 + SYS_ACL_DELETE_ENTRY = 0x804 + SYS_ACL_UPDATE_ENTRY = 0x805 + SYS_ACL_DELETE_FD = 0x806 + SYS_ACL_DELETE_FILE = 0x807 + SYS_ACL_GET_FD = 0x808 + SYS_ACL_GET_FILE = 0x809 + SYS___ERFL_B = 0x810 + SYS___ERFCL_B = 0x811 + SYS___LGAMMAL_B = 0x812 + SYS___SETHOOKEVENTS = 0x813 + SYS_IF_NAMETOINDEX = 0x814 + SYS_IF_INDEXTONAME = 0x815 + SYS_IF_NAMEINDEX = 0x816 + SYS_IF_FREENAMEINDEX = 0x817 + SYS_GETADDRINFO = 0x818 + SYS_GETNAMEINFO = 0x819 + SYS___DYNFREE_A = 0x820 + SYS___RES_QUERY_A = 0x821 + SYS___RES_SEARCH_A = 0x822 + SYS___RES_QUERYDOMAIN_A = 0x823 + SYS___RES_MKQUERY_A = 0x824 + SYS___RES_SEND_A = 0x825 + SYS___DN_EXPAND_A = 0x826 + SYS___DN_SKIPNAME_A = 0x827 + SYS___DN_COMP_A = 0x828 + SYS___DN_FIND_A = 0x829 + SYS___INET_NTOA_A = 0x830 + SYS___INET_NETWORK_A = 0x831 + SYS___ACCEPT_A = 0x832 + SYS___ACCEPT_AND_RECV_A = 0x833 + SYS___BIND_A = 0x834 + SYS___CONNECT_A = 0x835 + SYS___GETPEERNAME_A = 0x836 + SYS___GETSOCKNAME_A = 0x837 + SYS___RECVFROM_A = 0x838 + SYS___SENDTO_A = 0x839 + SYS___LCHATTR = 0x840 + SYS___WRITEDOWN = 0x841 + SYS_PTHREAD_MUTEX_INIT2 = 0x842 + SYS___ACOSHF_B = 0x843 + SYS___ACOSHL_B = 0x844 + SYS___ASINHF_B = 0x845 + SYS___ASINHL_B = 0x846 + SYS___ATANHF_B = 0x847 + SYS___ATANHL_B = 0x848 + SYS___CBRTF_B = 0x849 + SYS___EXP2F_B = 0x850 + SYS___EXP2L_B = 0x851 + SYS___EXPM1F_B = 0x852 + SYS___EXPM1L_B = 0x853 + SYS___FDIMF_B = 0x854 + SYS___FDIM_B = 0x855 + SYS___FDIML_B = 0x856 + SYS___HYPOTF_B = 0x857 + SYS___HYPOTL_B = 0x858 + SYS___LOG1PF_B = 0x859 + SYS___REMQUOF_B = 0x860 + SYS___REMQUO_B = 0x861 + SYS___REMQUOL_B = 0x862 + SYS___TGAMMAF_B = 0x863 + SYS___TGAMMA_B = 0x864 + SYS___TGAMMAL_B = 0x865 + SYS___TRUNCF_B = 0x866 + SYS___TRUNC_B = 0x867 + SYS___TRUNCL_B = 0x868 + SYS___LGAMMAF_B = 0x869 + SYS_ASINHF = 0x870 + SYS_ASINHL = 0x871 + SYS_ATANHF = 0x872 + SYS_ATANHL = 0x873 + SYS_CBRTF = 0x874 + SYS_CBRTL = 0x875 + SYS_COPYSIGNF = 0x876 + SYS_CPYSIGNF = 0x876 + SYS_COPYSIGNL = 0x877 + SYS_CPYSIGNL = 0x877 + SYS_COTANF = 0x878 + SYS___COTANF = 0x878 + SYS_COTAN = 0x879 + SYS___COTAN = 0x879 + SYS_FDIM = 0x881 + SYS_FDIML = 0x882 + SYS_HYPOTF = 0x883 + SYS_HYPOTL = 0x884 + SYS_LOG1PF = 0x885 + SYS_LOG1PL = 0x886 + SYS_LOG2F = 0x887 + SYS_LOG2 = 0x888 + SYS_LOG2L = 0x889 + SYS_TGAMMA = 0x890 + SYS_TGAMMAL = 0x891 + SYS_TRUNCF = 0x892 + SYS_TRUNC = 0x893 + SYS_TRUNCL = 0x894 + SYS_LGAMMAF = 0x895 + SYS_LGAMMAL = 0x896 + SYS_LROUNDF = 0x897 + SYS_LROUND = 0x898 + SYS_ERFF = 0x899 + SYS___COSHF_H = 0x900 + SYS___COSHL_H = 0x901 + SYS___COTAN_H = 0x902 + SYS___COTANF_H = 0x903 + SYS___COTANL_H = 0x904 + SYS___ERF_H = 0x905 + SYS___ERFF_H = 0x906 + SYS___ERFL_H = 0x907 + SYS___ERFC_H = 0x908 + SYS___ERFCF_H = 0x909 + SYS___FDIMF_H = 0x910 + SYS___FDIML_H = 0x911 + SYS___FMOD_H = 0x912 + SYS___FMODF_H = 0x913 + SYS___FMODL_H = 0x914 + SYS___GAMMA_H = 0x915 + SYS___HYPOT_H = 0x916 + SYS___ILOGB_H = 0x917 + SYS___LGAMMA_H = 0x918 + SYS___LGAMMAF_H = 0x919 + SYS___LOG2L_H = 0x920 + SYS___LOG1P_H = 0x921 + SYS___LOG10_H = 0x922 + SYS___LOG10F_H = 0x923 + SYS___LOG10L_H = 0x924 + SYS___LROUND_H = 0x925 + SYS___LROUNDF_H = 0x926 + SYS___NEXTAFTER_H = 0x927 + SYS___POW_H = 0x928 + SYS___POWF_H = 0x929 + SYS___SINL_H = 0x930 + SYS___SINH_H = 0x931 + SYS___SINHF_H = 0x932 + SYS___SINHL_H = 0x933 + SYS___SQRT_H = 0x934 + SYS___SQRTF_H = 0x935 + SYS___SQRTL_H = 0x936 + SYS___TAN_H = 0x937 + SYS___TANF_H = 0x938 + SYS___TANL_H = 0x939 + SYS___TRUNCF_H = 0x940 + SYS___TRUNCL_H = 0x941 + SYS___COSH_H = 0x942 + SYS___LE_DEBUG_SET_RESUME_MCH = 0x943 + SYS_VFSCANF = 0x944 + SYS_VSCANF = 0x946 + SYS_VSSCANF = 0x948 + SYS_IMAXABS = 0x950 + SYS_IMAXDIV = 0x951 + SYS_STRTOIMAX = 0x952 + SYS_STRTOUMAX = 0x953 + SYS_WCSTOIMAX = 0x954 + SYS_WCSTOUMAX = 0x955 + SYS_ATOLL = 0x956 + SYS_STRTOF = 0x957 + SYS_STRTOLD = 0x958 + SYS_WCSTOF = 0x959 + SYS_INET6_RTH_GETADDR = 0x960 + SYS_INET6_OPT_INIT = 0x961 + SYS_INET6_OPT_APPEND = 0x962 + SYS_INET6_OPT_FINISH = 0x963 + SYS_INET6_OPT_SET_VAL = 0x964 + SYS_INET6_OPT_NEXT = 0x965 + SYS_INET6_OPT_FIND = 0x966 + SYS_INET6_OPT_GET_VAL = 0x967 + SYS___POW_I = 0x987 + SYS___POW_I_B = 0x988 + SYS___POW_I_H = 0x989 + SYS___CABS_H = 0x990 + SYS_CABSF = 0x991 + SYS___CABSF_B = 0x992 + SYS___CABSF_H = 0x993 + SYS_CABSL = 0x994 + SYS___CABSL_B = 0x995 + SYS___CABSL_H = 0x996 + SYS_CACOS = 0x997 + SYS___CACOS_B = 0x998 + SYS___CACOS_H = 0x999 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go index 2c1f815e6f..7a8161c1d1 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go @@ -1,6 +1,7 @@ // cgo -godefs types_aix.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc && aix // +build ppc,aix package unix @@ -219,6 +220,7 @@ const ( SizeofSockaddrUnix = 0x401 SizeofSockaddrDatalink = 0x80 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofIPv6MTUInfo = 0x20 diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go index b4a069ecbd..07ed733c51 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go @@ -1,6 +1,7 @@ // cgo -godefs types_aix.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64 && aix // +build ppc64,aix package unix @@ -223,6 +224,7 @@ const ( SizeofSockaddrUnix = 0x401 SizeofSockaddrDatalink = 0x80 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofIPv6MTUInfo = 0x20 diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go deleted file mode 100644 index 9f47b87c50..0000000000 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go +++ /dev/null @@ -1,499 +0,0 @@ -// cgo -godefs types_darwin.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,darwin - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timeval32 struct{} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 -} - -type Statfs_t struct { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 - Reserved [8]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint32 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - Contigbytes int64 - Devoffset int64 -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - _ [3]byte -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int32 - Udata *byte -} - -type FdSet struct { - Bits [32]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Filler [4]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go index 966798a870..2673e6c590 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_darwin.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && darwin // +build amd64,darwin package unix @@ -70,7 +71,6 @@ type Stat_t struct { Uid uint32 Gid uint32 Rdev int32 - _ [4]byte Atim Timespec Mtim Timespec Ctim Timespec @@ -97,10 +97,11 @@ type Statfs_t struct { Type uint32 Flags uint32 Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 - Reserved [8]uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Flags_ext uint32 + Reserved [7]uint32 } type Flock_t struct { @@ -133,8 +134,7 @@ type Fbootstraptransfer_t struct { type Log2phys_t struct { Flags uint32 - _ [8]byte - _ [8]byte + _ [16]byte } type Fsid struct { @@ -151,6 +151,10 @@ type Dirent struct { _ [3]byte } +const ( + PathMax = 0x400 +) + type RawSockaddrInet4 struct { Len uint8 Family uint8 @@ -196,8 +200,24 @@ type RawSockaddrAny struct { Pad [92]int8 } +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 +} + type Linger struct { Onoff int32 Linger int32 @@ -213,6 +233,12 @@ type IPMreq struct { Interface [4]byte /* in_addr */ } +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + type IPv6Mreq struct { Multiaddr [16]byte /* in6_addr */ Interface uint32 @@ -221,10 +247,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -262,8 +286,12 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofXucred = 0x4c SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 SizeofCmsghdr = 0xc @@ -309,7 +337,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -352,7 +379,6 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Metric int32 } @@ -373,7 +399,6 @@ type IfmaMsghdr2 struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Refcount int32 } @@ -382,7 +407,6 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte Flags int32 Addrs int32 Pid int32 @@ -404,7 +428,8 @@ type RtMetrics struct { Rtt uint32 Rttvar uint32 Pksent uint32 - Filler [4]uint32 + State uint32 + Filler [3]uint32 } const ( @@ -427,7 +452,6 @@ type BpfStat struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } @@ -452,7 +476,6 @@ type Termios struct { Cflag uint64 Lflag uint64 Cc [20]uint8 - _ [4]byte Ispeed uint64 Ospeed uint64 } @@ -507,3 +530,8 @@ type Clockinfo struct { Stathz int32 Profhz int32 } + +type CtlInfo struct { + Id uint32 + Name [96]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go deleted file mode 100644 index 4fe4c9cd73..0000000000 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go +++ /dev/null @@ -1,500 +0,0 @@ -// NOTE: cgo can't generate struct Stat_t and struct Statfs_t yet -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_darwin.go - -// +build arm,darwin - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timeval32 [0]byte - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 -} - -type Statfs_t struct { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 - Reserved [8]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint32 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - Contigbytes int64 - Devoffset int64 -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - _ [3]byte -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int32 - Udata *byte -} - -type FdSet struct { - Bits [32]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Filler [4]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 -) - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go index 21999e4b0a..1465cbcffe 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go @@ -1,6 +1,7 @@ // cgo -godefs types_darwin.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && darwin // +build arm64,darwin package unix @@ -70,7 +71,6 @@ type Stat_t struct { Uid uint32 Gid uint32 Rdev int32 - _ [4]byte Atim Timespec Mtim Timespec Ctim Timespec @@ -97,10 +97,11 @@ type Statfs_t struct { Type uint32 Flags uint32 Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 - Reserved [8]uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Flags_ext uint32 + Reserved [7]uint32 } type Flock_t struct { @@ -133,8 +134,7 @@ type Fbootstraptransfer_t struct { type Log2phys_t struct { Flags uint32 - _ [8]byte - _ [8]byte + _ [16]byte } type Fsid struct { @@ -151,6 +151,10 @@ type Dirent struct { _ [3]byte } +const ( + PathMax = 0x400 +) + type RawSockaddrInet4 struct { Len uint8 Family uint8 @@ -196,8 +200,24 @@ type RawSockaddrAny struct { Pad [92]int8 } +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 +} + type Linger struct { Onoff int32 Linger int32 @@ -213,6 +233,12 @@ type IPMreq struct { Interface [4]byte /* in_addr */ } +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + type IPv6Mreq struct { Multiaddr [16]byte /* in6_addr */ Interface uint32 @@ -221,10 +247,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -262,8 +286,12 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofXucred = 0x4c SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 SizeofCmsghdr = 0xc @@ -309,7 +337,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -352,7 +379,6 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Metric int32 } @@ -373,7 +399,6 @@ type IfmaMsghdr2 struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Refcount int32 } @@ -382,7 +407,6 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte Flags int32 Addrs int32 Pid int32 @@ -404,7 +428,8 @@ type RtMetrics struct { Rtt uint32 Rttvar uint32 Pksent uint32 - Filler [4]uint32 + State uint32 + Filler [3]uint32 } const ( @@ -427,7 +452,6 @@ type BpfStat struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } @@ -452,7 +476,6 @@ type Termios struct { Cflag uint64 Lflag uint64 Cc [20]uint8 - _ [4]byte Ispeed uint64 Ospeed uint64 } @@ -507,3 +530,8 @@ type Clockinfo struct { Stathz int32 Profhz int32 } + +type CtlInfo struct { + Id uint32 + Name [96]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go index 71ea1d6d23..1d049d7a12 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_dragonfly.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && dragonfly // +build amd64,dragonfly package unix @@ -70,11 +71,11 @@ type Stat_t struct { Ctim Timespec Size int64 Blocks int64 - Blksize uint32 + _ uint32 Flags uint32 Gen uint32 Lspare int32 - Qspare1 int64 + Blksize int64 Qspare2 int64 } @@ -91,17 +92,15 @@ type Statfs_t struct { Owner uint32 Type int32 Flags int32 - _ [4]byte Syncwrites int64 Asyncwrites int64 - Fstypename [16]int8 - Mntonname [80]int8 + Fstypename [16]byte + Mntonname [80]byte Syncreads int64 Asyncreads int64 Spares1 int16 - Mntfromname [80]int8 + Mntfromname [80]byte Spares2 int16 - _ [4]byte Spare [2]int64 } @@ -202,10 +201,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -238,6 +235,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x36 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 @@ -269,7 +267,7 @@ type FdSet struct { const ( SizeofIfMsghdr = 0xb0 SizeofIfData = 0xa0 - SizeofIfaMsghdr = 0x14 + SizeofIfaMsghdr = 0x18 SizeofIfmaMsghdr = 0x10 SizeofIfAnnounceMsghdr = 0x18 SizeofRtMsghdr = 0x98 @@ -280,10 +278,9 @@ type IfMsghdr struct { Msglen uint16 Version uint8 Type uint8 - Addrs int32 - Flags int32 Index uint16 - _ [2]byte + Flags int32 + Addrs int32 Data IfData } @@ -294,7 +291,6 @@ type IfData struct { Hdrlen uint8 Recvquota uint8 Xmitquota uint8 - _ [2]byte Mtu uint64 Metric uint64 Link_state uint64 @@ -316,24 +312,23 @@ type IfData struct { } type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte - Metric int32 + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Addrflags int32 + Metric int32 } type IfmaMsghdr struct { Msglen uint16 Version uint8 Type uint8 - Addrs int32 - Flags int32 Index uint16 - _ [2]byte + Flags int32 + Addrs int32 } type IfAnnounceMsghdr struct { @@ -350,7 +345,6 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte Flags int32 Addrs int32 Pid int32 @@ -374,7 +368,6 @@ type RtMetrics struct { Hopcount uint64 Mssopt uint16 Pad uint16 - _ [4]byte Msl uint64 Iwmaxsegs uint64 Iwcapsegs uint64 @@ -400,7 +393,6 @@ type BpfStat struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go index 2a3ec615f7..c51bc88ffd 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go @@ -1,6 +1,7 @@ // cgo -godefs types_freebsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && freebsd // +build 386,freebsd package unix @@ -250,6 +251,14 @@ type RawSockaddrAny struct { type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + type Linger struct { Onoff int32 Linger int32 @@ -312,7 +321,9 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x50 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc SizeofIPv6Mreq = 0x14 diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go index e11e95499e..395b691871 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_freebsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && freebsd // +build amd64,freebsd package unix @@ -246,6 +247,14 @@ type RawSockaddrAny struct { type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + type Linger struct { Onoff int32 Linger int32 @@ -308,7 +317,9 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x58 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc SizeofIPv6Mreq = 0x14 diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go index b91c2ae0f0..d3f9d2541b 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go @@ -1,6 +1,7 @@ // cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && freebsd // +build arm,freebsd package unix @@ -248,6 +249,14 @@ type RawSockaddrAny struct { type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + type Linger struct { Onoff int32 Linger int32 @@ -310,7 +319,9 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x50 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc SizeofIPv6Mreq = 0x14 diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go index c6fe1d097d..434d6e8e83 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go @@ -1,6 +1,7 @@ // cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && freebsd // +build arm64,freebsd package unix @@ -246,6 +247,14 @@ type RawSockaddrAny struct { type _Socklen uint32 +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + type Linger struct { Onoff int32 Linger int32 @@ -308,7 +317,9 @@ const ( SizeofSockaddrAny = 0x6c SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x58 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc SizeofIPv6Mreq = 0x14 diff --git a/vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go new file mode 100644 index 0000000000..236f37ef6f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go @@ -0,0 +1,40 @@ +// cgo -godefs types_illumos.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && illumos +// +build amd64,illumos + +package unix + +const ( + TUNNEWPPA = 0x540001 + TUNSETPPA = 0x540002 + + I_STR = 0x5308 + I_POP = 0x5303 + I_PUSH = 0x5302 + I_PLINK = 0x5316 + I_PUNLINK = 0x5317 + + IF_UNITSEL = -0x7ffb8cca +) + +type strbuf struct { + Maxlen int32 + Len int32 + Buf *int8 +} + +type Strioctl struct { + Cmd int32 + Timout int32 + Len int32 + Dp *int8 +} + +type Lifreq struct { + Name [32]int8 + Lifru1 [4]byte + Type uint32 + Lifru [336]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index 953166c73f..c9b2c9aae0 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -1,5 +1,6 @@ // Code generated by mkmerge.go; DO NOT EDIT. +//go:build linux // +build linux package unix @@ -76,6 +77,36 @@ type Fsid struct { Val [2]int32 } +type FileCloneRange struct { + Src_fd int64 + Src_offset uint64 + Src_length uint64 + Dest_offset uint64 +} + +type RawFileDedupeRange struct { + Src_offset uint64 + Src_length uint64 + Dest_count uint16 + Reserved1 uint16 + Reserved2 uint32 +} + +type RawFileDedupeRangeInfo struct { + Dest_fd int64 + Dest_offset uint64 + Bytes_deduped uint64 + Status int32 + Reserved uint32 +} + +const ( + SizeofRawFileDedupeRange = 0x18 + SizeofRawFileDedupeRangeInfo = 0x20 + FILE_DEDUPE_RANGE_SAME = 0x0 + FILE_DEDUPE_RANGE_DIFFERS = 0x1 +) + type FscryptPolicy struct { Version uint8 Contents_encryption_mode uint8 @@ -273,7 +304,8 @@ type RawSockaddrVM struct { Reserved1 uint16 Port uint32 Cid uint32 - Zero [4]uint8 + Flags uint8 + Zero [3]uint8 } type RawSockaddrXDP struct { @@ -447,166 +479,107 @@ const ( ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x36 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + NDA_UNSPEC = 0x0 + NDA_DST = 0x1 + NDA_LLADDR = 0x2 + NDA_CACHEINFO = 0x3 + NDA_PROBES = 0x4 + NDA_VLAN = 0x5 + NDA_PORT = 0x6 + NDA_VNI = 0x7 + NDA_IFINDEX = 0x8 + NDA_MASTER = 0x9 + NDA_LINK_NETNSID = 0xa + NDA_SRC_VNI = 0xb + NTF_USE = 0x1 + NTF_SELF = 0x2 + NTF_MASTER = 0x4 + NTF_PROXY = 0x8 + NTF_EXT_LEARNED = 0x10 + NTF_OFFLOADED = 0x20 + NTF_ROUTER = 0x80 + NUD_INCOMPLETE = 0x1 + NUD_REACHABLE = 0x2 + NUD_STALE = 0x4 + NUD_DELAY = 0x8 + NUD_PROBE = 0x10 + NUD_FAILED = 0x20 + NUD_NOARP = 0x40 + NUD_PERMANENT = 0x80 + NUD_NONE = 0x0 + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFA_FLAGS = 0x8 + IFA_RT_PRIORITY = 0x9 + IFA_TARGET_NETNSID = 0xa + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofIfaCacheinfo = 0x10 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 + SizeofNdMsg = 0xc ) type NlMsghdr struct { @@ -752,6 +725,22 @@ const ( AT_EACCESS = 0x200 ) +type OpenHow struct { + Flags uint64 + Mode uint64 + Resolve uint64 +} + +const SizeofOpenHow = 0x18 + +const ( + RESOLVE_BENEATH = 0x8 + RESOLVE_IN_ROOT = 0x10 + RESOLVE_NO_MAGICLINKS = 0x2 + RESOLVE_NO_SYMLINKS = 0x4 + RESOLVE_NO_XDEV = 0x1 +) + type PollFd struct { Fd int32 Events int16 @@ -792,8 +781,6 @@ type SignalfdSiginfo struct { _ [28]uint8 } -const PERF_IOC_FLAG_GROUP = 0x1 - type Winsize struct { Row uint16 Col uint16 @@ -917,7 +904,10 @@ type PerfEventMmapPage struct { Time_offset uint64 Time_zero uint64 Size uint32 - _ [948]uint8 + _ uint32 + Time_cycles uint64 + Time_mask uint64 + _ [928]uint8 Data_head uint64 Data_tail uint64 Data_offset uint64 @@ -959,13 +949,13 @@ const ( ) const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - + PERF_TYPE_HARDWARE = 0x0 + PERF_TYPE_SOFTWARE = 0x1 + PERF_TYPE_TRACEPOINT = 0x2 + PERF_TYPE_HW_CACHE = 0x3 + PERF_TYPE_RAW = 0x4 + PERF_TYPE_BREAKPOINT = 0x5 + PERF_TYPE_MAX = 0x6 PERF_COUNT_HW_CPU_CYCLES = 0x0 PERF_COUNT_HW_INSTRUCTIONS = 0x1 PERF_COUNT_HW_CACHE_REFERENCES = 0x2 @@ -976,106 +966,166 @@ const ( PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - PERF_SAMPLE_REGS_USER = 0x1000 - PERF_SAMPLE_STACK_USER = 0x2000 - PERF_SAMPLE_WEIGHT = 0x4000 - PERF_SAMPLE_DATA_SRC = 0x8000 - PERF_SAMPLE_IDENTIFIER = 0x10000 - PERF_SAMPLE_TRANSACTION = 0x20000 - PERF_SAMPLE_REGS_INTR = 0x40000 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + PERF_COUNT_HW_MAX = 0xa + PERF_COUNT_HW_CACHE_L1D = 0x0 + PERF_COUNT_HW_CACHE_L1I = 0x1 + PERF_COUNT_HW_CACHE_LL = 0x2 + PERF_COUNT_HW_CACHE_DTLB = 0x3 + PERF_COUNT_HW_CACHE_ITLB = 0x4 + PERF_COUNT_HW_CACHE_BPU = 0x5 + PERF_COUNT_HW_CACHE_NODE = 0x6 + PERF_COUNT_HW_CACHE_MAX = 0x7 + PERF_COUNT_HW_CACHE_OP_READ = 0x0 + PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 + PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 + PERF_COUNT_HW_CACHE_OP_MAX = 0x3 + PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 + PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 + PERF_COUNT_HW_CACHE_RESULT_MAX = 0x2 + PERF_COUNT_SW_CPU_CLOCK = 0x0 + PERF_COUNT_SW_TASK_CLOCK = 0x1 + PERF_COUNT_SW_PAGE_FAULTS = 0x2 + PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 + PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 + PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 + PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 + PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 + PERF_COUNT_SW_EMULATION_FAULTS = 0x8 + PERF_COUNT_SW_DUMMY = 0x9 + PERF_COUNT_SW_BPF_OUTPUT = 0xa + PERF_COUNT_SW_MAX = 0xb + PERF_SAMPLE_IP = 0x1 + PERF_SAMPLE_TID = 0x2 + PERF_SAMPLE_TIME = 0x4 + PERF_SAMPLE_ADDR = 0x8 + PERF_SAMPLE_READ = 0x10 + PERF_SAMPLE_CALLCHAIN = 0x20 + PERF_SAMPLE_ID = 0x40 + PERF_SAMPLE_CPU = 0x80 + PERF_SAMPLE_PERIOD = 0x100 + PERF_SAMPLE_STREAM_ID = 0x200 + PERF_SAMPLE_RAW = 0x400 + PERF_SAMPLE_BRANCH_STACK = 0x800 + PERF_SAMPLE_REGS_USER = 0x1000 + PERF_SAMPLE_STACK_USER = 0x2000 + PERF_SAMPLE_WEIGHT = 0x4000 + PERF_SAMPLE_DATA_SRC = 0x8000 + PERF_SAMPLE_IDENTIFIER = 0x10000 + PERF_SAMPLE_TRANSACTION = 0x20000 + PERF_SAMPLE_REGS_INTR = 0x40000 + PERF_SAMPLE_PHYS_ADDR = 0x80000 + PERF_SAMPLE_AUX = 0x100000 + PERF_SAMPLE_CGROUP = 0x200000 + PERF_SAMPLE_DATA_PAGE_SIZE = 0x400000 + PERF_SAMPLE_CODE_PAGE_SIZE = 0x800000 + PERF_SAMPLE_WEIGHT_STRUCT = 0x1000000 + PERF_SAMPLE_MAX = 0x2000000 + PERF_SAMPLE_BRANCH_USER_SHIFT = 0x0 + PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 0x1 + PERF_SAMPLE_BRANCH_HV_SHIFT = 0x2 + PERF_SAMPLE_BRANCH_ANY_SHIFT = 0x3 + PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 0x4 + PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 0x5 + PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 0x6 + PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 0x7 + PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 0x8 + PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 0x9 + PERF_SAMPLE_BRANCH_COND_SHIFT = 0xa + PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 0xb + PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 0xc + PERF_SAMPLE_BRANCH_CALL_SHIFT = 0xd + PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 0xe + PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 0xf + PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 0x10 + PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 0x11 + PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x12 + PERF_SAMPLE_BRANCH_USER = 0x1 + PERF_SAMPLE_BRANCH_KERNEL = 0x2 + PERF_SAMPLE_BRANCH_HV = 0x4 + PERF_SAMPLE_BRANCH_ANY = 0x8 + PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 + PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 + PERF_SAMPLE_BRANCH_IND_CALL = 0x40 + PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 + PERF_SAMPLE_BRANCH_IN_TX = 0x100 + PERF_SAMPLE_BRANCH_NO_TX = 0x200 + PERF_SAMPLE_BRANCH_COND = 0x400 + PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 + PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 + PERF_SAMPLE_BRANCH_CALL = 0x2000 + PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 + PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 + PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 + PERF_SAMPLE_BRANCH_HW_INDEX = 0x20000 + PERF_SAMPLE_BRANCH_MAX = 0x40000 + PERF_BR_UNKNOWN = 0x0 + PERF_BR_COND = 0x1 + PERF_BR_UNCOND = 0x2 + PERF_BR_IND = 0x3 + PERF_BR_CALL = 0x4 + PERF_BR_IND_CALL = 0x5 + PERF_BR_RET = 0x6 + PERF_BR_SYSCALL = 0x7 + PERF_BR_SYSRET = 0x8 + PERF_BR_COND_CALL = 0x9 + PERF_BR_COND_RET = 0xa + PERF_BR_MAX = 0xb + PERF_SAMPLE_REGS_ABI_NONE = 0x0 + PERF_SAMPLE_REGS_ABI_32 = 0x1 + PERF_SAMPLE_REGS_ABI_64 = 0x2 + PERF_TXN_ELISION = 0x1 + PERF_TXN_TRANSACTION = 0x2 + PERF_TXN_SYNC = 0x4 + PERF_TXN_ASYNC = 0x8 + PERF_TXN_RETRY = 0x10 + PERF_TXN_CONFLICT = 0x20 + PERF_TXN_CAPACITY_WRITE = 0x40 + PERF_TXN_CAPACITY_READ = 0x80 + PERF_TXN_MAX = 0x100 + PERF_TXN_ABORT_MASK = -0x100000000 + PERF_TXN_ABORT_SHIFT = 0x20 + PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 + PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 + PERF_FORMAT_ID = 0x4 + PERF_FORMAT_GROUP = 0x8 + PERF_FORMAT_MAX = 0x10 + PERF_IOC_FLAG_GROUP = 0x1 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 + PERF_RECORD_MMAP2 = 0xa + PERF_RECORD_AUX = 0xb + PERF_RECORD_ITRACE_START = 0xc + PERF_RECORD_LOST_SAMPLES = 0xd + PERF_RECORD_SWITCH = 0xe + PERF_RECORD_SWITCH_CPU_WIDE = 0xf + PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_KSYMBOL = 0x11 + PERF_RECORD_BPF_EVENT = 0x12 + PERF_RECORD_CGROUP = 0x13 + PERF_RECORD_TEXT_POKE = 0x14 + PERF_RECORD_MAX = 0x15 + PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0x0 + PERF_RECORD_KSYMBOL_TYPE_BPF = 0x1 + PERF_RECORD_KSYMBOL_TYPE_OOL = 0x2 + PERF_RECORD_KSYMBOL_TYPE_MAX = 0x3 + PERF_BPF_EVENT_UNKNOWN = 0x0 + PERF_BPF_EVENT_PROG_LOAD = 0x1 + PERF_BPF_EVENT_PROG_UNLOAD = 0x2 + PERF_BPF_EVENT_MAX = 0x3 + PERF_CONTEXT_HV = -0x20 + PERF_CONTEXT_KERNEL = -0x80 + PERF_CONTEXT_USER = -0x200 + PERF_CONTEXT_GUEST = -0x800 + PERF_CONTEXT_GUEST_KERNEL = -0x880 + PERF_CONTEXT_GUEST_USER = -0xa00 + PERF_CONTEXT_MAX = -0xfff ) type TCPMD5Sig struct { @@ -1294,6 +1344,401 @@ const ( SizeofTpacketStatsV3 = 0xc ) +const ( + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_TARGET_NETNSID = 0x2e + IFLA_CARRIER_UP_COUNT = 0x2f + IFLA_CARRIER_DOWN_COUNT = 0x30 + IFLA_NEW_IFINDEX = 0x31 + IFLA_MIN_MTU = 0x32 + IFLA_MAX_MTU = 0x33 + IFLA_PROP_LIST = 0x34 + IFLA_ALT_IFNAME = 0x35 + IFLA_PERM_ADDRESS = 0x36 + IFLA_PROTO_DOWN_REASON = 0x37 + IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 + IFLA_PROTO_DOWN_REASON_MASK = 0x1 + IFLA_PROTO_DOWN_REASON_VALUE = 0x2 + IFLA_PROTO_DOWN_REASON_MAX = 0x2 + IFLA_INET_UNSPEC = 0x0 + IFLA_INET_CONF = 0x1 + IFLA_INET6_UNSPEC = 0x0 + IFLA_INET6_FLAGS = 0x1 + IFLA_INET6_CONF = 0x2 + IFLA_INET6_STATS = 0x3 + IFLA_INET6_MCAST = 0x4 + IFLA_INET6_CACHEINFO = 0x5 + IFLA_INET6_ICMP6STATS = 0x6 + IFLA_INET6_TOKEN = 0x7 + IFLA_INET6_ADDR_GEN_MODE = 0x8 + IFLA_BR_UNSPEC = 0x0 + IFLA_BR_FORWARD_DELAY = 0x1 + IFLA_BR_HELLO_TIME = 0x2 + IFLA_BR_MAX_AGE = 0x3 + IFLA_BR_AGEING_TIME = 0x4 + IFLA_BR_STP_STATE = 0x5 + IFLA_BR_PRIORITY = 0x6 + IFLA_BR_VLAN_FILTERING = 0x7 + IFLA_BR_VLAN_PROTOCOL = 0x8 + IFLA_BR_GROUP_FWD_MASK = 0x9 + IFLA_BR_ROOT_ID = 0xa + IFLA_BR_BRIDGE_ID = 0xb + IFLA_BR_ROOT_PORT = 0xc + IFLA_BR_ROOT_PATH_COST = 0xd + IFLA_BR_TOPOLOGY_CHANGE = 0xe + IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 0xf + IFLA_BR_HELLO_TIMER = 0x10 + IFLA_BR_TCN_TIMER = 0x11 + IFLA_BR_TOPOLOGY_CHANGE_TIMER = 0x12 + IFLA_BR_GC_TIMER = 0x13 + IFLA_BR_GROUP_ADDR = 0x14 + IFLA_BR_FDB_FLUSH = 0x15 + IFLA_BR_MCAST_ROUTER = 0x16 + IFLA_BR_MCAST_SNOOPING = 0x17 + IFLA_BR_MCAST_QUERY_USE_IFADDR = 0x18 + IFLA_BR_MCAST_QUERIER = 0x19 + IFLA_BR_MCAST_HASH_ELASTICITY = 0x1a + IFLA_BR_MCAST_HASH_MAX = 0x1b + IFLA_BR_MCAST_LAST_MEMBER_CNT = 0x1c + IFLA_BR_MCAST_STARTUP_QUERY_CNT = 0x1d + IFLA_BR_MCAST_LAST_MEMBER_INTVL = 0x1e + IFLA_BR_MCAST_MEMBERSHIP_INTVL = 0x1f + IFLA_BR_MCAST_QUERIER_INTVL = 0x20 + IFLA_BR_MCAST_QUERY_INTVL = 0x21 + IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 0x22 + IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 0x23 + IFLA_BR_NF_CALL_IPTABLES = 0x24 + IFLA_BR_NF_CALL_IP6TABLES = 0x25 + IFLA_BR_NF_CALL_ARPTABLES = 0x26 + IFLA_BR_VLAN_DEFAULT_PVID = 0x27 + IFLA_BR_PAD = 0x28 + IFLA_BR_VLAN_STATS_ENABLED = 0x29 + IFLA_BR_MCAST_STATS_ENABLED = 0x2a + IFLA_BR_MCAST_IGMP_VERSION = 0x2b + IFLA_BR_MCAST_MLD_VERSION = 0x2c + IFLA_BR_VLAN_STATS_PER_PORT = 0x2d + IFLA_BR_MULTI_BOOLOPT = 0x2e + IFLA_BRPORT_UNSPEC = 0x0 + IFLA_BRPORT_STATE = 0x1 + IFLA_BRPORT_PRIORITY = 0x2 + IFLA_BRPORT_COST = 0x3 + IFLA_BRPORT_MODE = 0x4 + IFLA_BRPORT_GUARD = 0x5 + IFLA_BRPORT_PROTECT = 0x6 + IFLA_BRPORT_FAST_LEAVE = 0x7 + IFLA_BRPORT_LEARNING = 0x8 + IFLA_BRPORT_UNICAST_FLOOD = 0x9 + IFLA_BRPORT_PROXYARP = 0xa + IFLA_BRPORT_LEARNING_SYNC = 0xb + IFLA_BRPORT_PROXYARP_WIFI = 0xc + IFLA_BRPORT_ROOT_ID = 0xd + IFLA_BRPORT_BRIDGE_ID = 0xe + IFLA_BRPORT_DESIGNATED_PORT = 0xf + IFLA_BRPORT_DESIGNATED_COST = 0x10 + IFLA_BRPORT_ID = 0x11 + IFLA_BRPORT_NO = 0x12 + IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 0x13 + IFLA_BRPORT_CONFIG_PENDING = 0x14 + IFLA_BRPORT_MESSAGE_AGE_TIMER = 0x15 + IFLA_BRPORT_FORWARD_DELAY_TIMER = 0x16 + IFLA_BRPORT_HOLD_TIMER = 0x17 + IFLA_BRPORT_FLUSH = 0x18 + IFLA_BRPORT_MULTICAST_ROUTER = 0x19 + IFLA_BRPORT_PAD = 0x1a + IFLA_BRPORT_MCAST_FLOOD = 0x1b + IFLA_BRPORT_MCAST_TO_UCAST = 0x1c + IFLA_BRPORT_VLAN_TUNNEL = 0x1d + IFLA_BRPORT_BCAST_FLOOD = 0x1e + IFLA_BRPORT_GROUP_FWD_MASK = 0x1f + IFLA_BRPORT_NEIGH_SUPPRESS = 0x20 + IFLA_BRPORT_ISOLATED = 0x21 + IFLA_BRPORT_BACKUP_PORT = 0x22 + IFLA_BRPORT_MRP_RING_OPEN = 0x23 + IFLA_BRPORT_MRP_IN_OPEN = 0x24 + IFLA_INFO_UNSPEC = 0x0 + IFLA_INFO_KIND = 0x1 + IFLA_INFO_DATA = 0x2 + IFLA_INFO_XSTATS = 0x3 + IFLA_INFO_SLAVE_KIND = 0x4 + IFLA_INFO_SLAVE_DATA = 0x5 + IFLA_VLAN_UNSPEC = 0x0 + IFLA_VLAN_ID = 0x1 + IFLA_VLAN_FLAGS = 0x2 + IFLA_VLAN_EGRESS_QOS = 0x3 + IFLA_VLAN_INGRESS_QOS = 0x4 + IFLA_VLAN_PROTOCOL = 0x5 + IFLA_VLAN_QOS_UNSPEC = 0x0 + IFLA_VLAN_QOS_MAPPING = 0x1 + IFLA_MACVLAN_UNSPEC = 0x0 + IFLA_MACVLAN_MODE = 0x1 + IFLA_MACVLAN_FLAGS = 0x2 + IFLA_MACVLAN_MACADDR_MODE = 0x3 + IFLA_MACVLAN_MACADDR = 0x4 + IFLA_MACVLAN_MACADDR_DATA = 0x5 + IFLA_MACVLAN_MACADDR_COUNT = 0x6 + IFLA_VRF_UNSPEC = 0x0 + IFLA_VRF_TABLE = 0x1 + IFLA_VRF_PORT_UNSPEC = 0x0 + IFLA_VRF_PORT_TABLE = 0x1 + IFLA_MACSEC_UNSPEC = 0x0 + IFLA_MACSEC_SCI = 0x1 + IFLA_MACSEC_PORT = 0x2 + IFLA_MACSEC_ICV_LEN = 0x3 + IFLA_MACSEC_CIPHER_SUITE = 0x4 + IFLA_MACSEC_WINDOW = 0x5 + IFLA_MACSEC_ENCODING_SA = 0x6 + IFLA_MACSEC_ENCRYPT = 0x7 + IFLA_MACSEC_PROTECT = 0x8 + IFLA_MACSEC_INC_SCI = 0x9 + IFLA_MACSEC_ES = 0xa + IFLA_MACSEC_SCB = 0xb + IFLA_MACSEC_REPLAY_PROTECT = 0xc + IFLA_MACSEC_VALIDATION = 0xd + IFLA_MACSEC_PAD = 0xe + IFLA_MACSEC_OFFLOAD = 0xf + IFLA_XFRM_UNSPEC = 0x0 + IFLA_XFRM_LINK = 0x1 + IFLA_XFRM_IF_ID = 0x2 + IFLA_IPVLAN_UNSPEC = 0x0 + IFLA_IPVLAN_MODE = 0x1 + IFLA_IPVLAN_FLAGS = 0x2 + IFLA_VXLAN_UNSPEC = 0x0 + IFLA_VXLAN_ID = 0x1 + IFLA_VXLAN_GROUP = 0x2 + IFLA_VXLAN_LINK = 0x3 + IFLA_VXLAN_LOCAL = 0x4 + IFLA_VXLAN_TTL = 0x5 + IFLA_VXLAN_TOS = 0x6 + IFLA_VXLAN_LEARNING = 0x7 + IFLA_VXLAN_AGEING = 0x8 + IFLA_VXLAN_LIMIT = 0x9 + IFLA_VXLAN_PORT_RANGE = 0xa + IFLA_VXLAN_PROXY = 0xb + IFLA_VXLAN_RSC = 0xc + IFLA_VXLAN_L2MISS = 0xd + IFLA_VXLAN_L3MISS = 0xe + IFLA_VXLAN_PORT = 0xf + IFLA_VXLAN_GROUP6 = 0x10 + IFLA_VXLAN_LOCAL6 = 0x11 + IFLA_VXLAN_UDP_CSUM = 0x12 + IFLA_VXLAN_UDP_ZERO_CSUM6_TX = 0x13 + IFLA_VXLAN_UDP_ZERO_CSUM6_RX = 0x14 + IFLA_VXLAN_REMCSUM_TX = 0x15 + IFLA_VXLAN_REMCSUM_RX = 0x16 + IFLA_VXLAN_GBP = 0x17 + IFLA_VXLAN_REMCSUM_NOPARTIAL = 0x18 + IFLA_VXLAN_COLLECT_METADATA = 0x19 + IFLA_VXLAN_LABEL = 0x1a + IFLA_VXLAN_GPE = 0x1b + IFLA_VXLAN_TTL_INHERIT = 0x1c + IFLA_VXLAN_DF = 0x1d + IFLA_GENEVE_UNSPEC = 0x0 + IFLA_GENEVE_ID = 0x1 + IFLA_GENEVE_REMOTE = 0x2 + IFLA_GENEVE_TTL = 0x3 + IFLA_GENEVE_TOS = 0x4 + IFLA_GENEVE_PORT = 0x5 + IFLA_GENEVE_COLLECT_METADATA = 0x6 + IFLA_GENEVE_REMOTE6 = 0x7 + IFLA_GENEVE_UDP_CSUM = 0x8 + IFLA_GENEVE_UDP_ZERO_CSUM6_TX = 0x9 + IFLA_GENEVE_UDP_ZERO_CSUM6_RX = 0xa + IFLA_GENEVE_LABEL = 0xb + IFLA_GENEVE_TTL_INHERIT = 0xc + IFLA_GENEVE_DF = 0xd + IFLA_BAREUDP_UNSPEC = 0x0 + IFLA_BAREUDP_PORT = 0x1 + IFLA_BAREUDP_ETHERTYPE = 0x2 + IFLA_BAREUDP_SRCPORT_MIN = 0x3 + IFLA_BAREUDP_MULTIPROTO_MODE = 0x4 + IFLA_PPP_UNSPEC = 0x0 + IFLA_PPP_DEV_FD = 0x1 + IFLA_GTP_UNSPEC = 0x0 + IFLA_GTP_FD0 = 0x1 + IFLA_GTP_FD1 = 0x2 + IFLA_GTP_PDP_HASHSIZE = 0x3 + IFLA_GTP_ROLE = 0x4 + IFLA_BOND_UNSPEC = 0x0 + IFLA_BOND_MODE = 0x1 + IFLA_BOND_ACTIVE_SLAVE = 0x2 + IFLA_BOND_MIIMON = 0x3 + IFLA_BOND_UPDELAY = 0x4 + IFLA_BOND_DOWNDELAY = 0x5 + IFLA_BOND_USE_CARRIER = 0x6 + IFLA_BOND_ARP_INTERVAL = 0x7 + IFLA_BOND_ARP_IP_TARGET = 0x8 + IFLA_BOND_ARP_VALIDATE = 0x9 + IFLA_BOND_ARP_ALL_TARGETS = 0xa + IFLA_BOND_PRIMARY = 0xb + IFLA_BOND_PRIMARY_RESELECT = 0xc + IFLA_BOND_FAIL_OVER_MAC = 0xd + IFLA_BOND_XMIT_HASH_POLICY = 0xe + IFLA_BOND_RESEND_IGMP = 0xf + IFLA_BOND_NUM_PEER_NOTIF = 0x10 + IFLA_BOND_ALL_SLAVES_ACTIVE = 0x11 + IFLA_BOND_MIN_LINKS = 0x12 + IFLA_BOND_LP_INTERVAL = 0x13 + IFLA_BOND_PACKETS_PER_SLAVE = 0x14 + IFLA_BOND_AD_LACP_RATE = 0x15 + IFLA_BOND_AD_SELECT = 0x16 + IFLA_BOND_AD_INFO = 0x17 + IFLA_BOND_AD_ACTOR_SYS_PRIO = 0x18 + IFLA_BOND_AD_USER_PORT_KEY = 0x19 + IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a + IFLA_BOND_TLB_DYNAMIC_LB = 0x1b + IFLA_BOND_PEER_NOTIF_DELAY = 0x1c + IFLA_BOND_AD_INFO_UNSPEC = 0x0 + IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 + IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 + IFLA_BOND_AD_INFO_ACTOR_KEY = 0x3 + IFLA_BOND_AD_INFO_PARTNER_KEY = 0x4 + IFLA_BOND_AD_INFO_PARTNER_MAC = 0x5 + IFLA_BOND_SLAVE_UNSPEC = 0x0 + IFLA_BOND_SLAVE_STATE = 0x1 + IFLA_BOND_SLAVE_MII_STATUS = 0x2 + IFLA_BOND_SLAVE_LINK_FAILURE_COUNT = 0x3 + IFLA_BOND_SLAVE_PERM_HWADDR = 0x4 + IFLA_BOND_SLAVE_QUEUE_ID = 0x5 + IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6 + IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7 + IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8 + IFLA_VF_INFO_UNSPEC = 0x0 + IFLA_VF_INFO = 0x1 + IFLA_VF_UNSPEC = 0x0 + IFLA_VF_MAC = 0x1 + IFLA_VF_VLAN = 0x2 + IFLA_VF_TX_RATE = 0x3 + IFLA_VF_SPOOFCHK = 0x4 + IFLA_VF_LINK_STATE = 0x5 + IFLA_VF_RATE = 0x6 + IFLA_VF_RSS_QUERY_EN = 0x7 + IFLA_VF_STATS = 0x8 + IFLA_VF_TRUST = 0x9 + IFLA_VF_IB_NODE_GUID = 0xa + IFLA_VF_IB_PORT_GUID = 0xb + IFLA_VF_VLAN_LIST = 0xc + IFLA_VF_BROADCAST = 0xd + IFLA_VF_VLAN_INFO_UNSPEC = 0x0 + IFLA_VF_VLAN_INFO = 0x1 + IFLA_VF_LINK_STATE_AUTO = 0x0 + IFLA_VF_LINK_STATE_ENABLE = 0x1 + IFLA_VF_LINK_STATE_DISABLE = 0x2 + IFLA_VF_STATS_RX_PACKETS = 0x0 + IFLA_VF_STATS_TX_PACKETS = 0x1 + IFLA_VF_STATS_RX_BYTES = 0x2 + IFLA_VF_STATS_TX_BYTES = 0x3 + IFLA_VF_STATS_BROADCAST = 0x4 + IFLA_VF_STATS_MULTICAST = 0x5 + IFLA_VF_STATS_PAD = 0x6 + IFLA_VF_STATS_RX_DROPPED = 0x7 + IFLA_VF_STATS_TX_DROPPED = 0x8 + IFLA_VF_PORT_UNSPEC = 0x0 + IFLA_VF_PORT = 0x1 + IFLA_PORT_UNSPEC = 0x0 + IFLA_PORT_VF = 0x1 + IFLA_PORT_PROFILE = 0x2 + IFLA_PORT_VSI_TYPE = 0x3 + IFLA_PORT_INSTANCE_UUID = 0x4 + IFLA_PORT_HOST_UUID = 0x5 + IFLA_PORT_REQUEST = 0x6 + IFLA_PORT_RESPONSE = 0x7 + IFLA_IPOIB_UNSPEC = 0x0 + IFLA_IPOIB_PKEY = 0x1 + IFLA_IPOIB_MODE = 0x2 + IFLA_IPOIB_UMCAST = 0x3 + IFLA_HSR_UNSPEC = 0x0 + IFLA_HSR_SLAVE1 = 0x1 + IFLA_HSR_SLAVE2 = 0x2 + IFLA_HSR_MULTICAST_SPEC = 0x3 + IFLA_HSR_SUPERVISION_ADDR = 0x4 + IFLA_HSR_SEQ_NR = 0x5 + IFLA_HSR_VERSION = 0x6 + IFLA_HSR_PROTOCOL = 0x7 + IFLA_STATS_UNSPEC = 0x0 + IFLA_STATS_LINK_64 = 0x1 + IFLA_STATS_LINK_XSTATS = 0x2 + IFLA_STATS_LINK_XSTATS_SLAVE = 0x3 + IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4 + IFLA_STATS_AF_SPEC = 0x5 + IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 + IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 + IFLA_XDP_UNSPEC = 0x0 + IFLA_XDP_FD = 0x1 + IFLA_XDP_ATTACHED = 0x2 + IFLA_XDP_FLAGS = 0x3 + IFLA_XDP_PROG_ID = 0x4 + IFLA_XDP_DRV_PROG_ID = 0x5 + IFLA_XDP_SKB_PROG_ID = 0x6 + IFLA_XDP_HW_PROG_ID = 0x7 + IFLA_XDP_EXPECTED_FD = 0x8 + IFLA_EVENT_NONE = 0x0 + IFLA_EVENT_REBOOT = 0x1 + IFLA_EVENT_FEATURES = 0x2 + IFLA_EVENT_BONDING_FAILOVER = 0x3 + IFLA_EVENT_NOTIFY_PEERS = 0x4 + IFLA_EVENT_IGMP_RESEND = 0x5 + IFLA_EVENT_BONDING_OPTIONS = 0x6 + IFLA_TUN_UNSPEC = 0x0 + IFLA_TUN_OWNER = 0x1 + IFLA_TUN_GROUP = 0x2 + IFLA_TUN_TYPE = 0x3 + IFLA_TUN_PI = 0x4 + IFLA_TUN_VNET_HDR = 0x5 + IFLA_TUN_PERSIST = 0x6 + IFLA_TUN_MULTI_QUEUE = 0x7 + IFLA_TUN_NUM_QUEUES = 0x8 + IFLA_TUN_NUM_DISABLED_QUEUES = 0x9 + IFLA_RMNET_UNSPEC = 0x0 + IFLA_RMNET_MUX_ID = 0x1 + IFLA_RMNET_FLAGS = 0x2 +) + const ( NF_INET_PRE_ROUTING = 0x0 NF_INET_LOCAL_IN = 0x1 @@ -1381,7 +1826,7 @@ const ( NFT_MSG_DELOBJ = 0x14 NFT_MSG_GETOBJ_RESET = 0x15 NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 + NFTA_LIST_UNSPEC = 0x0 NFTA_LIST_ELEM = 0x1 NFTA_HOOK_UNSPEC = 0x0 NFTA_HOOK_HOOKNUM = 0x1 @@ -1799,10 +2244,12 @@ const ( ) const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 + NETNSA_NONE = 0x0 + NETNSA_NSID = 0x1 + NETNSA_PID = 0x2 + NETNSA_FD = 0x3 + NETNSA_TARGET_NSID = 0x4 + NETNSA_CURRENT_NSID = 0x5 ) type XDPRingOffset struct { @@ -1820,9 +2267,12 @@ type XDPMmapOffsets struct { } type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 + Rx_dropped uint64 + Rx_invalid_descs uint64 + Tx_invalid_descs uint64 + Rx_ring_full uint64 + Rx_fill_ring_empty_descs uint64 + Tx_ring_empty_descs uint64 } type XDPDesc struct { @@ -1949,281 +2399,309 @@ const ( ) const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_FREEZE = 0x16 - BPF_BTF_GET_NEXT_ID = 0x17 - BPF_MAP_LOOKUP_BATCH = 0x18 - BPF_MAP_LOOKUP_AND_DELETE_BATCH = 0x19 - BPF_MAP_UPDATE_BATCH = 0x1a - BPF_MAP_DELETE_BATCH = 0x1b - BPF_LINK_CREATE = 0x1c - BPF_LINK_UPDATE = 0x1d - BPF_LINK_GET_FD_BY_ID = 0x1e - BPF_LINK_GET_NEXT_ID = 0x1f - BPF_ENABLE_STATS = 0x20 - BPF_ITER_CREATE = 0x21 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_MAP_TYPE_SK_STORAGE = 0x18 - BPF_MAP_TYPE_DEVMAP_HASH = 0x19 - BPF_MAP_TYPE_STRUCT_OPS = 0x1a - BPF_MAP_TYPE_RINGBUF = 0x1b - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_PROG_TYPE_CGROUP_SYSCTL = 0x17 - BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 0x18 - BPF_PROG_TYPE_CGROUP_SOCKOPT = 0x19 - BPF_PROG_TYPE_TRACING = 0x1a - BPF_PROG_TYPE_STRUCT_OPS = 0x1b - BPF_PROG_TYPE_EXT = 0x1c - BPF_PROG_TYPE_LSM = 0x1d - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_CGROUP_SYSCTL = 0x12 - BPF_CGROUP_UDP4_RECVMSG = 0x13 - BPF_CGROUP_UDP6_RECVMSG = 0x14 - BPF_CGROUP_GETSOCKOPT = 0x15 - BPF_CGROUP_SETSOCKOPT = 0x16 - BPF_TRACE_RAW_TP = 0x17 - BPF_TRACE_FENTRY = 0x18 - BPF_TRACE_FEXIT = 0x19 - BPF_MODIFY_RETURN = 0x1a - BPF_LSM_MAC = 0x1b - BPF_TRACE_ITER = 0x1c - BPF_CGROUP_INET4_GETPEERNAME = 0x1d - BPF_CGROUP_INET6_GETPEERNAME = 0x1e - BPF_CGROUP_INET4_GETSOCKNAME = 0x1f - BPF_CGROUP_INET6_GETSOCKNAME = 0x20 - BPF_XDP_DEVMAP = 0x21 - BPF_LINK_TYPE_UNSPEC = 0x0 - BPF_LINK_TYPE_RAW_TRACEPOINT = 0x1 - BPF_LINK_TYPE_TRACING = 0x2 - BPF_LINK_TYPE_CGROUP = 0x3 - BPF_LINK_TYPE_ITER = 0x4 - BPF_LINK_TYPE_NETNS = 0x5 - BPF_ANY = 0x0 - BPF_NOEXIST = 0x1 - BPF_EXIST = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NUMA_NODE = 0x4 - BPF_F_RDONLY = 0x8 - BPF_F_WRONLY = 0x10 - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_ZERO_SEED = 0x40 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_CLONE = 0x200 - BPF_F_MMAPABLE = 0x400 - BPF_STATS_RUN_TIME = 0x0 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_INGRESS = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_USER_STACK = 0x100 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_NETNS = -0x1 - BPF_CSUM_LEVEL_QUERY = 0x0 - BPF_CSUM_LEVEL_INC = 0x1 - BPF_CSUM_LEVEL_DEC = 0x2 - BPF_CSUM_LEVEL_RESET = 0x3 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_NO_CSUM_RESET = 0x20 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_F_GET_BRANCH_RECORDS_SIZE = 0x1 - BPF_RB_NO_WAKEUP = 0x1 - BPF_RB_FORCE_WAKEUP = 0x2 - BPF_RB_AVAIL_DATA = 0x0 - BPF_RB_RING_SIZE = 0x1 - BPF_RB_CONS_POS = 0x2 - BPF_RB_PROD_POS = 0x3 - BPF_RINGBUF_BUSY_BIT = 0x80000000 - BPF_RINGBUF_DISCARD_BIT = 0x40000000 - BPF_RINGBUF_HDR_SZ = 0x8 - BPF_ADJ_ROOM_NET = 0x0 - BPF_ADJ_ROOM_MAC = 0x1 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_LWT_ENCAP_IP = 0x2 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_LWT_REROUTE = 0x80 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_SOCK_OPS_RTT_CB = 0xc - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_FIB_LOOKUP_DIRECT = 0x1 - BPF_FIB_LOOKUP_OUTPUT = 0x2 - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 - BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1 - BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2 - BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4 + BPF_REG_0 = 0x0 + BPF_REG_1 = 0x1 + BPF_REG_2 = 0x2 + BPF_REG_3 = 0x3 + BPF_REG_4 = 0x4 + BPF_REG_5 = 0x5 + BPF_REG_6 = 0x6 + BPF_REG_7 = 0x7 + BPF_REG_8 = 0x8 + BPF_REG_9 = 0x9 + BPF_REG_10 = 0xa + BPF_MAP_CREATE = 0x0 + BPF_MAP_LOOKUP_ELEM = 0x1 + BPF_MAP_UPDATE_ELEM = 0x2 + BPF_MAP_DELETE_ELEM = 0x3 + BPF_MAP_GET_NEXT_KEY = 0x4 + BPF_PROG_LOAD = 0x5 + BPF_OBJ_PIN = 0x6 + BPF_OBJ_GET = 0x7 + BPF_PROG_ATTACH = 0x8 + BPF_PROG_DETACH = 0x9 + BPF_PROG_TEST_RUN = 0xa + BPF_PROG_GET_NEXT_ID = 0xb + BPF_MAP_GET_NEXT_ID = 0xc + BPF_PROG_GET_FD_BY_ID = 0xd + BPF_MAP_GET_FD_BY_ID = 0xe + BPF_OBJ_GET_INFO_BY_FD = 0xf + BPF_PROG_QUERY = 0x10 + BPF_RAW_TRACEPOINT_OPEN = 0x11 + BPF_BTF_LOAD = 0x12 + BPF_BTF_GET_FD_BY_ID = 0x13 + BPF_TASK_FD_QUERY = 0x14 + BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 + BPF_MAP_FREEZE = 0x16 + BPF_BTF_GET_NEXT_ID = 0x17 + BPF_MAP_LOOKUP_BATCH = 0x18 + BPF_MAP_LOOKUP_AND_DELETE_BATCH = 0x19 + BPF_MAP_UPDATE_BATCH = 0x1a + BPF_MAP_DELETE_BATCH = 0x1b + BPF_LINK_CREATE = 0x1c + BPF_LINK_UPDATE = 0x1d + BPF_LINK_GET_FD_BY_ID = 0x1e + BPF_LINK_GET_NEXT_ID = 0x1f + BPF_ENABLE_STATS = 0x20 + BPF_ITER_CREATE = 0x21 + BPF_LINK_DETACH = 0x22 + BPF_PROG_BIND_MAP = 0x23 + BPF_MAP_TYPE_UNSPEC = 0x0 + BPF_MAP_TYPE_HASH = 0x1 + BPF_MAP_TYPE_ARRAY = 0x2 + BPF_MAP_TYPE_PROG_ARRAY = 0x3 + BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 + BPF_MAP_TYPE_PERCPU_HASH = 0x5 + BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 + BPF_MAP_TYPE_STACK_TRACE = 0x7 + BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 + BPF_MAP_TYPE_LRU_HASH = 0x9 + BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa + BPF_MAP_TYPE_LPM_TRIE = 0xb + BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc + BPF_MAP_TYPE_HASH_OF_MAPS = 0xd + BPF_MAP_TYPE_DEVMAP = 0xe + BPF_MAP_TYPE_SOCKMAP = 0xf + BPF_MAP_TYPE_CPUMAP = 0x10 + BPF_MAP_TYPE_XSKMAP = 0x11 + BPF_MAP_TYPE_SOCKHASH = 0x12 + BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 + BPF_MAP_TYPE_QUEUE = 0x16 + BPF_MAP_TYPE_STACK = 0x17 + BPF_MAP_TYPE_SK_STORAGE = 0x18 + BPF_MAP_TYPE_DEVMAP_HASH = 0x19 + BPF_MAP_TYPE_STRUCT_OPS = 0x1a + BPF_MAP_TYPE_RINGBUF = 0x1b + BPF_MAP_TYPE_INODE_STORAGE = 0x1c + BPF_PROG_TYPE_UNSPEC = 0x0 + BPF_PROG_TYPE_SOCKET_FILTER = 0x1 + BPF_PROG_TYPE_KPROBE = 0x2 + BPF_PROG_TYPE_SCHED_CLS = 0x3 + BPF_PROG_TYPE_SCHED_ACT = 0x4 + BPF_PROG_TYPE_TRACEPOINT = 0x5 + BPF_PROG_TYPE_XDP = 0x6 + BPF_PROG_TYPE_PERF_EVENT = 0x7 + BPF_PROG_TYPE_CGROUP_SKB = 0x8 + BPF_PROG_TYPE_CGROUP_SOCK = 0x9 + BPF_PROG_TYPE_LWT_IN = 0xa + BPF_PROG_TYPE_LWT_OUT = 0xb + BPF_PROG_TYPE_LWT_XMIT = 0xc + BPF_PROG_TYPE_SOCK_OPS = 0xd + BPF_PROG_TYPE_SK_SKB = 0xe + BPF_PROG_TYPE_CGROUP_DEVICE = 0xf + BPF_PROG_TYPE_SK_MSG = 0x10 + BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 + BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 + BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 + BPF_PROG_TYPE_LIRC_MODE2 = 0x14 + BPF_PROG_TYPE_SK_REUSEPORT = 0x15 + BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 + BPF_PROG_TYPE_CGROUP_SYSCTL = 0x17 + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 0x18 + BPF_PROG_TYPE_CGROUP_SOCKOPT = 0x19 + BPF_PROG_TYPE_TRACING = 0x1a + BPF_PROG_TYPE_STRUCT_OPS = 0x1b + BPF_PROG_TYPE_EXT = 0x1c + BPF_PROG_TYPE_LSM = 0x1d + BPF_PROG_TYPE_SK_LOOKUP = 0x1e + BPF_CGROUP_INET_INGRESS = 0x0 + BPF_CGROUP_INET_EGRESS = 0x1 + BPF_CGROUP_INET_SOCK_CREATE = 0x2 + BPF_CGROUP_SOCK_OPS = 0x3 + BPF_SK_SKB_STREAM_PARSER = 0x4 + BPF_SK_SKB_STREAM_VERDICT = 0x5 + BPF_CGROUP_DEVICE = 0x6 + BPF_SK_MSG_VERDICT = 0x7 + BPF_CGROUP_INET4_BIND = 0x8 + BPF_CGROUP_INET6_BIND = 0x9 + BPF_CGROUP_INET4_CONNECT = 0xa + BPF_CGROUP_INET6_CONNECT = 0xb + BPF_CGROUP_INET4_POST_BIND = 0xc + BPF_CGROUP_INET6_POST_BIND = 0xd + BPF_CGROUP_UDP4_SENDMSG = 0xe + BPF_CGROUP_UDP6_SENDMSG = 0xf + BPF_LIRC_MODE2 = 0x10 + BPF_FLOW_DISSECTOR = 0x11 + BPF_CGROUP_SYSCTL = 0x12 + BPF_CGROUP_UDP4_RECVMSG = 0x13 + BPF_CGROUP_UDP6_RECVMSG = 0x14 + BPF_CGROUP_GETSOCKOPT = 0x15 + BPF_CGROUP_SETSOCKOPT = 0x16 + BPF_TRACE_RAW_TP = 0x17 + BPF_TRACE_FENTRY = 0x18 + BPF_TRACE_FEXIT = 0x19 + BPF_MODIFY_RETURN = 0x1a + BPF_LSM_MAC = 0x1b + BPF_TRACE_ITER = 0x1c + BPF_CGROUP_INET4_GETPEERNAME = 0x1d + BPF_CGROUP_INET6_GETPEERNAME = 0x1e + BPF_CGROUP_INET4_GETSOCKNAME = 0x1f + BPF_CGROUP_INET6_GETSOCKNAME = 0x20 + BPF_XDP_DEVMAP = 0x21 + BPF_CGROUP_INET_SOCK_RELEASE = 0x22 + BPF_XDP_CPUMAP = 0x23 + BPF_SK_LOOKUP = 0x24 + BPF_XDP = 0x25 + BPF_LINK_TYPE_UNSPEC = 0x0 + BPF_LINK_TYPE_RAW_TRACEPOINT = 0x1 + BPF_LINK_TYPE_TRACING = 0x2 + BPF_LINK_TYPE_CGROUP = 0x3 + BPF_LINK_TYPE_ITER = 0x4 + BPF_LINK_TYPE_NETNS = 0x5 + BPF_LINK_TYPE_XDP = 0x6 + BPF_ANY = 0x0 + BPF_NOEXIST = 0x1 + BPF_EXIST = 0x2 + BPF_F_LOCK = 0x4 + BPF_F_NO_PREALLOC = 0x1 + BPF_F_NO_COMMON_LRU = 0x2 + BPF_F_NUMA_NODE = 0x4 + BPF_F_RDONLY = 0x8 + BPF_F_WRONLY = 0x10 + BPF_F_STACK_BUILD_ID = 0x20 + BPF_F_ZERO_SEED = 0x40 + BPF_F_RDONLY_PROG = 0x80 + BPF_F_WRONLY_PROG = 0x100 + BPF_F_CLONE = 0x200 + BPF_F_MMAPABLE = 0x400 + BPF_F_PRESERVE_ELEMS = 0x800 + BPF_F_INNER_MAP = 0x1000 + BPF_STATS_RUN_TIME = 0x0 + BPF_STACK_BUILD_ID_EMPTY = 0x0 + BPF_STACK_BUILD_ID_VALID = 0x1 + BPF_STACK_BUILD_ID_IP = 0x2 + BPF_F_RECOMPUTE_CSUM = 0x1 + BPF_F_INVALIDATE_HASH = 0x2 + BPF_F_HDR_FIELD_MASK = 0xf + BPF_F_PSEUDO_HDR = 0x10 + BPF_F_MARK_MANGLED_0 = 0x20 + BPF_F_MARK_ENFORCE = 0x40 + BPF_F_INGRESS = 0x1 + BPF_F_TUNINFO_IPV6 = 0x1 + BPF_F_SKIP_FIELD_MASK = 0xff + BPF_F_USER_STACK = 0x100 + BPF_F_FAST_STACK_CMP = 0x200 + BPF_F_REUSE_STACKID = 0x400 + BPF_F_USER_BUILD_ID = 0x800 + BPF_F_ZERO_CSUM_TX = 0x2 + BPF_F_DONT_FRAGMENT = 0x4 + BPF_F_SEQ_NUMBER = 0x8 + BPF_F_INDEX_MASK = 0xffffffff + BPF_F_CURRENT_CPU = 0xffffffff + BPF_F_CTXLEN_MASK = 0xfffff00000000 + BPF_F_CURRENT_NETNS = -0x1 + BPF_CSUM_LEVEL_QUERY = 0x0 + BPF_CSUM_LEVEL_INC = 0x1 + BPF_CSUM_LEVEL_DEC = 0x2 + BPF_CSUM_LEVEL_RESET = 0x3 + BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 + BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 + BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 + BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 + BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 + BPF_F_ADJ_ROOM_NO_CSUM_RESET = 0x20 + BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 + BPF_F_SYSCTL_BASE_NAME = 0x1 + BPF_LOCAL_STORAGE_GET_F_CREATE = 0x1 + BPF_SK_STORAGE_GET_F_CREATE = 0x1 + BPF_F_GET_BRANCH_RECORDS_SIZE = 0x1 + BPF_RB_NO_WAKEUP = 0x1 + BPF_RB_FORCE_WAKEUP = 0x2 + BPF_RB_AVAIL_DATA = 0x0 + BPF_RB_RING_SIZE = 0x1 + BPF_RB_CONS_POS = 0x2 + BPF_RB_PROD_POS = 0x3 + BPF_RINGBUF_BUSY_BIT = 0x80000000 + BPF_RINGBUF_DISCARD_BIT = 0x40000000 + BPF_RINGBUF_HDR_SZ = 0x8 + BPF_SK_LOOKUP_F_REPLACE = 0x1 + BPF_SK_LOOKUP_F_NO_REUSEPORT = 0x2 + BPF_ADJ_ROOM_NET = 0x0 + BPF_ADJ_ROOM_MAC = 0x1 + BPF_HDR_START_MAC = 0x0 + BPF_HDR_START_NET = 0x1 + BPF_LWT_ENCAP_SEG6 = 0x0 + BPF_LWT_ENCAP_SEG6_INLINE = 0x1 + BPF_LWT_ENCAP_IP = 0x2 + BPF_OK = 0x0 + BPF_DROP = 0x2 + BPF_REDIRECT = 0x7 + BPF_LWT_REROUTE = 0x80 + BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 + BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 + BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 + BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 + BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 0x10 + BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 0x20 + BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 0x40 + BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7f + BPF_SOCK_OPS_VOID = 0x0 + BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 + BPF_SOCK_OPS_RWND_INIT = 0x2 + BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 + BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 + BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 + BPF_SOCK_OPS_NEEDS_ECN = 0x6 + BPF_SOCK_OPS_BASE_RTT = 0x7 + BPF_SOCK_OPS_RTO_CB = 0x8 + BPF_SOCK_OPS_RETRANS_CB = 0x9 + BPF_SOCK_OPS_STATE_CB = 0xa + BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb + BPF_SOCK_OPS_RTT_CB = 0xc + BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 0xd + BPF_SOCK_OPS_HDR_OPT_LEN_CB = 0xe + BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 0xf + BPF_TCP_ESTABLISHED = 0x1 + BPF_TCP_SYN_SENT = 0x2 + BPF_TCP_SYN_RECV = 0x3 + BPF_TCP_FIN_WAIT1 = 0x4 + BPF_TCP_FIN_WAIT2 = 0x5 + BPF_TCP_TIME_WAIT = 0x6 + BPF_TCP_CLOSE = 0x7 + BPF_TCP_CLOSE_WAIT = 0x8 + BPF_TCP_LAST_ACK = 0x9 + BPF_TCP_LISTEN = 0xa + BPF_TCP_CLOSING = 0xb + BPF_TCP_NEW_SYN_RECV = 0xc + BPF_TCP_MAX_STATES = 0xd + TCP_BPF_IW = 0x3e9 + TCP_BPF_SNDCWND_CLAMP = 0x3ea + TCP_BPF_DELACK_MAX = 0x3eb + TCP_BPF_RTO_MIN = 0x3ec + TCP_BPF_SYN = 0x3ed + TCP_BPF_SYN_IP = 0x3ee + TCP_BPF_SYN_MAC = 0x3ef + BPF_LOAD_HDR_OPT_TCP_SYN = 0x1 + BPF_WRITE_HDR_TCP_CURRENT_MSS = 0x1 + BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 0x2 + BPF_DEVCG_ACC_MKNOD = 0x1 + BPF_DEVCG_ACC_READ = 0x2 + BPF_DEVCG_ACC_WRITE = 0x4 + BPF_DEVCG_DEV_BLOCK = 0x1 + BPF_DEVCG_DEV_CHAR = 0x2 + BPF_FIB_LOOKUP_DIRECT = 0x1 + BPF_FIB_LOOKUP_OUTPUT = 0x2 + BPF_FIB_LKUP_RET_SUCCESS = 0x0 + BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 + BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 + BPF_FIB_LKUP_RET_PROHIBIT = 0x3 + BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 + BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 + BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 + BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 + BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 + BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 + BPF_FD_TYPE_TRACEPOINT = 0x1 + BPF_FD_TYPE_KPROBE = 0x2 + BPF_FD_TYPE_KRETPROBE = 0x3 + BPF_FD_TYPE_UPROBE = 0x4 + BPF_FD_TYPE_URETPROBE = 0x5 + BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1 + BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2 + BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4 ) const ( @@ -2260,6 +2738,7 @@ const ( RTNLGRP_IPV4_MROUTE_R = 0x1e RTNLGRP_IPV6_MROUTE_R = 0x1f RTNLGRP_NEXTHOP = 0x20 + RTNLGRP_BRVLAN = 0x21 ) type CapUserHeader struct { @@ -2354,132 +2833,320 @@ const ( ) const ( - DEVLINK_CMD_UNSPEC = 0x0 - DEVLINK_CMD_GET = 0x1 - DEVLINK_CMD_SET = 0x2 - DEVLINK_CMD_NEW = 0x3 - DEVLINK_CMD_DEL = 0x4 - DEVLINK_CMD_PORT_GET = 0x5 - DEVLINK_CMD_PORT_SET = 0x6 - DEVLINK_CMD_PORT_NEW = 0x7 - DEVLINK_CMD_PORT_DEL = 0x8 - DEVLINK_CMD_PORT_SPLIT = 0x9 - DEVLINK_CMD_PORT_UNSPLIT = 0xa - DEVLINK_CMD_SB_GET = 0xb - DEVLINK_CMD_SB_SET = 0xc - DEVLINK_CMD_SB_NEW = 0xd - DEVLINK_CMD_SB_DEL = 0xe - DEVLINK_CMD_SB_POOL_GET = 0xf - DEVLINK_CMD_SB_POOL_SET = 0x10 - DEVLINK_CMD_SB_POOL_NEW = 0x11 - DEVLINK_CMD_SB_POOL_DEL = 0x12 - DEVLINK_CMD_SB_PORT_POOL_GET = 0x13 - DEVLINK_CMD_SB_PORT_POOL_SET = 0x14 - DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15 - DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16 - DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17 - DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18 - DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19 - DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a - DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b - DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c - DEVLINK_CMD_ESWITCH_GET = 0x1d - DEVLINK_CMD_ESWITCH_SET = 0x1e - DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f - DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20 - DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21 - DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22 - DEVLINK_CMD_MAX = 0x48 - DEVLINK_PORT_TYPE_NOTSET = 0x0 - DEVLINK_PORT_TYPE_AUTO = 0x1 - DEVLINK_PORT_TYPE_ETH = 0x2 - DEVLINK_PORT_TYPE_IB = 0x3 - DEVLINK_SB_POOL_TYPE_INGRESS = 0x0 - DEVLINK_SB_POOL_TYPE_EGRESS = 0x1 - DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0 - DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1 - DEVLINK_ESWITCH_MODE_LEGACY = 0x0 - DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1 - DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0 - DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1 - DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2 - DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3 - DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0 - DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1 - DEVLINK_ATTR_UNSPEC = 0x0 - DEVLINK_ATTR_BUS_NAME = 0x1 - DEVLINK_ATTR_DEV_NAME = 0x2 - DEVLINK_ATTR_PORT_INDEX = 0x3 - DEVLINK_ATTR_PORT_TYPE = 0x4 - DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5 - DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6 - DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7 - DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8 - DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9 - DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa - DEVLINK_ATTR_SB_INDEX = 0xb - DEVLINK_ATTR_SB_SIZE = 0xc - DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd - DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe - DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf - DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10 - DEVLINK_ATTR_SB_POOL_INDEX = 0x11 - DEVLINK_ATTR_SB_POOL_TYPE = 0x12 - DEVLINK_ATTR_SB_POOL_SIZE = 0x13 - DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14 - DEVLINK_ATTR_SB_THRESHOLD = 0x15 - DEVLINK_ATTR_SB_TC_INDEX = 0x16 - DEVLINK_ATTR_SB_OCC_CUR = 0x17 - DEVLINK_ATTR_SB_OCC_MAX = 0x18 - DEVLINK_ATTR_ESWITCH_MODE = 0x19 - DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a - DEVLINK_ATTR_DPIPE_TABLES = 0x1b - DEVLINK_ATTR_DPIPE_TABLE = 0x1c - DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d - DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e - DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f - DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20 - DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21 - DEVLINK_ATTR_DPIPE_ENTRIES = 0x22 - DEVLINK_ATTR_DPIPE_ENTRY = 0x23 - DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24 - DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25 - DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26 - DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27 - DEVLINK_ATTR_DPIPE_MATCH = 0x28 - DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29 - DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a - DEVLINK_ATTR_DPIPE_ACTION = 0x2b - DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c - DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d - DEVLINK_ATTR_DPIPE_VALUE = 0x2e - DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f - DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30 - DEVLINK_ATTR_DPIPE_HEADERS = 0x31 - DEVLINK_ATTR_DPIPE_HEADER = 0x32 - DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33 - DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34 - DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35 - DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36 - DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37 - DEVLINK_ATTR_DPIPE_FIELD = 0x38 - DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39 - DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a - DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b - DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c - DEVLINK_ATTR_PAD = 0x3d - DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e - DEVLINK_ATTR_MAX = 0x90 - DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0 - DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1 - DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0 - DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0 - DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0 - DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0 - DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0 - DEVLINK_DPIPE_HEADER_ETHERNET = 0x0 - DEVLINK_DPIPE_HEADER_IPV4 = 0x1 - DEVLINK_DPIPE_HEADER_IPV6 = 0x2 + DEVLINK_CMD_UNSPEC = 0x0 + DEVLINK_CMD_GET = 0x1 + DEVLINK_CMD_SET = 0x2 + DEVLINK_CMD_NEW = 0x3 + DEVLINK_CMD_DEL = 0x4 + DEVLINK_CMD_PORT_GET = 0x5 + DEVLINK_CMD_PORT_SET = 0x6 + DEVLINK_CMD_PORT_NEW = 0x7 + DEVLINK_CMD_PORT_DEL = 0x8 + DEVLINK_CMD_PORT_SPLIT = 0x9 + DEVLINK_CMD_PORT_UNSPLIT = 0xa + DEVLINK_CMD_SB_GET = 0xb + DEVLINK_CMD_SB_SET = 0xc + DEVLINK_CMD_SB_NEW = 0xd + DEVLINK_CMD_SB_DEL = 0xe + DEVLINK_CMD_SB_POOL_GET = 0xf + DEVLINK_CMD_SB_POOL_SET = 0x10 + DEVLINK_CMD_SB_POOL_NEW = 0x11 + DEVLINK_CMD_SB_POOL_DEL = 0x12 + DEVLINK_CMD_SB_PORT_POOL_GET = 0x13 + DEVLINK_CMD_SB_PORT_POOL_SET = 0x14 + DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15 + DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16 + DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17 + DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18 + DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19 + DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a + DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b + DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c + DEVLINK_CMD_ESWITCH_GET = 0x1d + DEVLINK_CMD_ESWITCH_SET = 0x1e + DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f + DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20 + DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21 + DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22 + DEVLINK_CMD_RESOURCE_SET = 0x23 + DEVLINK_CMD_RESOURCE_DUMP = 0x24 + DEVLINK_CMD_RELOAD = 0x25 + DEVLINK_CMD_PARAM_GET = 0x26 + DEVLINK_CMD_PARAM_SET = 0x27 + DEVLINK_CMD_PARAM_NEW = 0x28 + DEVLINK_CMD_PARAM_DEL = 0x29 + DEVLINK_CMD_REGION_GET = 0x2a + DEVLINK_CMD_REGION_SET = 0x2b + DEVLINK_CMD_REGION_NEW = 0x2c + DEVLINK_CMD_REGION_DEL = 0x2d + DEVLINK_CMD_REGION_READ = 0x2e + DEVLINK_CMD_PORT_PARAM_GET = 0x2f + DEVLINK_CMD_PORT_PARAM_SET = 0x30 + DEVLINK_CMD_PORT_PARAM_NEW = 0x31 + DEVLINK_CMD_PORT_PARAM_DEL = 0x32 + DEVLINK_CMD_INFO_GET = 0x33 + DEVLINK_CMD_HEALTH_REPORTER_GET = 0x34 + DEVLINK_CMD_HEALTH_REPORTER_SET = 0x35 + DEVLINK_CMD_HEALTH_REPORTER_RECOVER = 0x36 + DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE = 0x37 + DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET = 0x38 + DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR = 0x39 + DEVLINK_CMD_FLASH_UPDATE = 0x3a + DEVLINK_CMD_FLASH_UPDATE_END = 0x3b + DEVLINK_CMD_FLASH_UPDATE_STATUS = 0x3c + DEVLINK_CMD_TRAP_GET = 0x3d + DEVLINK_CMD_TRAP_SET = 0x3e + DEVLINK_CMD_TRAP_NEW = 0x3f + DEVLINK_CMD_TRAP_DEL = 0x40 + DEVLINK_CMD_TRAP_GROUP_GET = 0x41 + DEVLINK_CMD_TRAP_GROUP_SET = 0x42 + DEVLINK_CMD_TRAP_GROUP_NEW = 0x43 + DEVLINK_CMD_TRAP_GROUP_DEL = 0x44 + DEVLINK_CMD_TRAP_POLICER_GET = 0x45 + DEVLINK_CMD_TRAP_POLICER_SET = 0x46 + DEVLINK_CMD_TRAP_POLICER_NEW = 0x47 + DEVLINK_CMD_TRAP_POLICER_DEL = 0x48 + DEVLINK_CMD_HEALTH_REPORTER_TEST = 0x49 + DEVLINK_CMD_MAX = 0x49 + DEVLINK_PORT_TYPE_NOTSET = 0x0 + DEVLINK_PORT_TYPE_AUTO = 0x1 + DEVLINK_PORT_TYPE_ETH = 0x2 + DEVLINK_PORT_TYPE_IB = 0x3 + DEVLINK_SB_POOL_TYPE_INGRESS = 0x0 + DEVLINK_SB_POOL_TYPE_EGRESS = 0x1 + DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0 + DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1 + DEVLINK_ESWITCH_MODE_LEGACY = 0x0 + DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1 + DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0 + DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1 + DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2 + DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3 + DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0 + DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1 + DEVLINK_PORT_FLAVOUR_PHYSICAL = 0x0 + DEVLINK_PORT_FLAVOUR_CPU = 0x1 + DEVLINK_PORT_FLAVOUR_DSA = 0x2 + DEVLINK_PORT_FLAVOUR_PCI_PF = 0x3 + DEVLINK_PORT_FLAVOUR_PCI_VF = 0x4 + DEVLINK_PORT_FLAVOUR_VIRTUAL = 0x5 + DEVLINK_PORT_FLAVOUR_UNUSED = 0x6 + DEVLINK_PARAM_CMODE_RUNTIME = 0x0 + DEVLINK_PARAM_CMODE_DRIVERINIT = 0x1 + DEVLINK_PARAM_CMODE_PERMANENT = 0x2 + DEVLINK_PARAM_CMODE_MAX = 0x2 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DRIVER = 0x0 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH = 0x1 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DISK = 0x2 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_UNKNOWN = 0x3 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_UNKNOWN = 0x0 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_ALWAYS = 0x1 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_NEVER = 0x2 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_DISK = 0x3 + DEVLINK_ATTR_STATS_RX_PACKETS = 0x0 + DEVLINK_ATTR_STATS_RX_BYTES = 0x1 + DEVLINK_ATTR_STATS_RX_DROPPED = 0x2 + DEVLINK_ATTR_STATS_MAX = 0x2 + DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT = 0x0 + DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT = 0x1 + DEVLINK_FLASH_OVERWRITE_MAX_BIT = 0x1 + DEVLINK_TRAP_ACTION_DROP = 0x0 + DEVLINK_TRAP_ACTION_TRAP = 0x1 + DEVLINK_TRAP_ACTION_MIRROR = 0x2 + DEVLINK_TRAP_TYPE_DROP = 0x0 + DEVLINK_TRAP_TYPE_EXCEPTION = 0x1 + DEVLINK_TRAP_TYPE_CONTROL = 0x2 + DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0x0 + DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 0x1 + DEVLINK_RELOAD_ACTION_UNSPEC = 0x0 + DEVLINK_RELOAD_ACTION_DRIVER_REINIT = 0x1 + DEVLINK_RELOAD_ACTION_FW_ACTIVATE = 0x2 + DEVLINK_RELOAD_ACTION_MAX = 0x2 + DEVLINK_RELOAD_LIMIT_UNSPEC = 0x0 + DEVLINK_RELOAD_LIMIT_NO_RESET = 0x1 + DEVLINK_RELOAD_LIMIT_MAX = 0x1 + DEVLINK_ATTR_UNSPEC = 0x0 + DEVLINK_ATTR_BUS_NAME = 0x1 + DEVLINK_ATTR_DEV_NAME = 0x2 + DEVLINK_ATTR_PORT_INDEX = 0x3 + DEVLINK_ATTR_PORT_TYPE = 0x4 + DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5 + DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6 + DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7 + DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8 + DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9 + DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa + DEVLINK_ATTR_SB_INDEX = 0xb + DEVLINK_ATTR_SB_SIZE = 0xc + DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd + DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe + DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf + DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10 + DEVLINK_ATTR_SB_POOL_INDEX = 0x11 + DEVLINK_ATTR_SB_POOL_TYPE = 0x12 + DEVLINK_ATTR_SB_POOL_SIZE = 0x13 + DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14 + DEVLINK_ATTR_SB_THRESHOLD = 0x15 + DEVLINK_ATTR_SB_TC_INDEX = 0x16 + DEVLINK_ATTR_SB_OCC_CUR = 0x17 + DEVLINK_ATTR_SB_OCC_MAX = 0x18 + DEVLINK_ATTR_ESWITCH_MODE = 0x19 + DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a + DEVLINK_ATTR_DPIPE_TABLES = 0x1b + DEVLINK_ATTR_DPIPE_TABLE = 0x1c + DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d + DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e + DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f + DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20 + DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21 + DEVLINK_ATTR_DPIPE_ENTRIES = 0x22 + DEVLINK_ATTR_DPIPE_ENTRY = 0x23 + DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24 + DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25 + DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26 + DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27 + DEVLINK_ATTR_DPIPE_MATCH = 0x28 + DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29 + DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a + DEVLINK_ATTR_DPIPE_ACTION = 0x2b + DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c + DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d + DEVLINK_ATTR_DPIPE_VALUE = 0x2e + DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f + DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30 + DEVLINK_ATTR_DPIPE_HEADERS = 0x31 + DEVLINK_ATTR_DPIPE_HEADER = 0x32 + DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33 + DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34 + DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35 + DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36 + DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37 + DEVLINK_ATTR_DPIPE_FIELD = 0x38 + DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39 + DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a + DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b + DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c + DEVLINK_ATTR_PAD = 0x3d + DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e + DEVLINK_ATTR_RESOURCE_LIST = 0x3f + DEVLINK_ATTR_RESOURCE = 0x40 + DEVLINK_ATTR_RESOURCE_NAME = 0x41 + DEVLINK_ATTR_RESOURCE_ID = 0x42 + DEVLINK_ATTR_RESOURCE_SIZE = 0x43 + DEVLINK_ATTR_RESOURCE_SIZE_NEW = 0x44 + DEVLINK_ATTR_RESOURCE_SIZE_VALID = 0x45 + DEVLINK_ATTR_RESOURCE_SIZE_MIN = 0x46 + DEVLINK_ATTR_RESOURCE_SIZE_MAX = 0x47 + DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 0x48 + DEVLINK_ATTR_RESOURCE_UNIT = 0x49 + DEVLINK_ATTR_RESOURCE_OCC = 0x4a + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 0x4b + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 0x4c + DEVLINK_ATTR_PORT_FLAVOUR = 0x4d + DEVLINK_ATTR_PORT_NUMBER = 0x4e + DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 0x4f + DEVLINK_ATTR_PARAM = 0x50 + DEVLINK_ATTR_PARAM_NAME = 0x51 + DEVLINK_ATTR_PARAM_GENERIC = 0x52 + DEVLINK_ATTR_PARAM_TYPE = 0x53 + DEVLINK_ATTR_PARAM_VALUES_LIST = 0x54 + DEVLINK_ATTR_PARAM_VALUE = 0x55 + DEVLINK_ATTR_PARAM_VALUE_DATA = 0x56 + DEVLINK_ATTR_PARAM_VALUE_CMODE = 0x57 + DEVLINK_ATTR_REGION_NAME = 0x58 + DEVLINK_ATTR_REGION_SIZE = 0x59 + DEVLINK_ATTR_REGION_SNAPSHOTS = 0x5a + DEVLINK_ATTR_REGION_SNAPSHOT = 0x5b + DEVLINK_ATTR_REGION_SNAPSHOT_ID = 0x5c + DEVLINK_ATTR_REGION_CHUNKS = 0x5d + DEVLINK_ATTR_REGION_CHUNK = 0x5e + DEVLINK_ATTR_REGION_CHUNK_DATA = 0x5f + DEVLINK_ATTR_REGION_CHUNK_ADDR = 0x60 + DEVLINK_ATTR_REGION_CHUNK_LEN = 0x61 + DEVLINK_ATTR_INFO_DRIVER_NAME = 0x62 + DEVLINK_ATTR_INFO_SERIAL_NUMBER = 0x63 + DEVLINK_ATTR_INFO_VERSION_FIXED = 0x64 + DEVLINK_ATTR_INFO_VERSION_RUNNING = 0x65 + DEVLINK_ATTR_INFO_VERSION_STORED = 0x66 + DEVLINK_ATTR_INFO_VERSION_NAME = 0x67 + DEVLINK_ATTR_INFO_VERSION_VALUE = 0x68 + DEVLINK_ATTR_SB_POOL_CELL_SIZE = 0x69 + DEVLINK_ATTR_FMSG = 0x6a + DEVLINK_ATTR_FMSG_OBJ_NEST_START = 0x6b + DEVLINK_ATTR_FMSG_PAIR_NEST_START = 0x6c + DEVLINK_ATTR_FMSG_ARR_NEST_START = 0x6d + DEVLINK_ATTR_FMSG_NEST_END = 0x6e + DEVLINK_ATTR_FMSG_OBJ_NAME = 0x6f + DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 0x70 + DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 0x71 + DEVLINK_ATTR_HEALTH_REPORTER = 0x72 + DEVLINK_ATTR_HEALTH_REPORTER_NAME = 0x73 + DEVLINK_ATTR_HEALTH_REPORTER_STATE = 0x74 + DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 0x75 + DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 0x76 + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 0x77 + DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 0x78 + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 0x79 + DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 0x7a + DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 0x7b + DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 0x7c + DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 0x7d + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 0x7e + DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 0x7f + DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 0x80 + DEVLINK_ATTR_STATS = 0x81 + DEVLINK_ATTR_TRAP_NAME = 0x82 + DEVLINK_ATTR_TRAP_ACTION = 0x83 + DEVLINK_ATTR_TRAP_TYPE = 0x84 + DEVLINK_ATTR_TRAP_GENERIC = 0x85 + DEVLINK_ATTR_TRAP_METADATA = 0x86 + DEVLINK_ATTR_TRAP_GROUP_NAME = 0x87 + DEVLINK_ATTR_RELOAD_FAILED = 0x88 + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 0x89 + DEVLINK_ATTR_NETNS_FD = 0x8a + DEVLINK_ATTR_NETNS_PID = 0x8b + DEVLINK_ATTR_NETNS_ID = 0x8c + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 0x8d + DEVLINK_ATTR_TRAP_POLICER_ID = 0x8e + DEVLINK_ATTR_TRAP_POLICER_RATE = 0x8f + DEVLINK_ATTR_TRAP_POLICER_BURST = 0x90 + DEVLINK_ATTR_PORT_FUNCTION = 0x91 + DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 0x92 + DEVLINK_ATTR_PORT_LANES = 0x93 + DEVLINK_ATTR_PORT_SPLITTABLE = 0x94 + DEVLINK_ATTR_PORT_EXTERNAL = 0x95 + DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 0x96 + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 0x97 + DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 0x98 + DEVLINK_ATTR_RELOAD_ACTION = 0x99 + DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 0x9a + DEVLINK_ATTR_RELOAD_LIMITS = 0x9b + DEVLINK_ATTR_DEV_STATS = 0x9c + DEVLINK_ATTR_RELOAD_STATS = 0x9d + DEVLINK_ATTR_RELOAD_STATS_ENTRY = 0x9e + DEVLINK_ATTR_RELOAD_STATS_LIMIT = 0x9f + DEVLINK_ATTR_RELOAD_STATS_VALUE = 0xa0 + DEVLINK_ATTR_REMOTE_RELOAD_STATS = 0xa1 + DEVLINK_ATTR_RELOAD_ACTION_INFO = 0xa2 + DEVLINK_ATTR_RELOAD_ACTION_STATS = 0xa3 + DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 0xa4 + DEVLINK_ATTR_MAX = 0xa4 + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0 + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1 + DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0 + DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0 + DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0 + DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0 + DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0 + DEVLINK_DPIPE_HEADER_ETHERNET = 0x0 + DEVLINK_DPIPE_HEADER_IPV4 = 0x1 + DEVLINK_DPIPE_HEADER_IPV6 = 0x2 + DEVLINK_RESOURCE_UNIT_ENTRY = 0x0 + DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0x0 + DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 0x1 + DEVLINK_PORT_FN_ATTR_STATE = 0x2 + DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 + DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x3 ) type FsverityDigest struct { @@ -2527,3 +3194,637 @@ const ( NHA_GROUPS = 0x9 NHA_MASTER = 0xa ) + +const ( + CAN_RAW_FILTER = 0x1 + CAN_RAW_ERR_FILTER = 0x2 + CAN_RAW_LOOPBACK = 0x3 + CAN_RAW_RECV_OWN_MSGS = 0x4 + CAN_RAW_FD_FRAMES = 0x5 + CAN_RAW_JOIN_FILTERS = 0x6 +) + +type WatchdogInfo struct { + Options uint32 + Version uint32 + Identity [32]uint8 +} + +type PPSFData struct { + Info PPSKInfo + Timeout PPSKTime +} + +type PPSKParams struct { + Api_version int32 + Mode int32 + Assert_off_tu PPSKTime + Clear_off_tu PPSKTime +} + +type PPSKTime struct { + Sec int64 + Nsec int32 + Flags uint32 +} + +const ( + LWTUNNEL_ENCAP_NONE = 0x0 + LWTUNNEL_ENCAP_MPLS = 0x1 + LWTUNNEL_ENCAP_IP = 0x2 + LWTUNNEL_ENCAP_ILA = 0x3 + LWTUNNEL_ENCAP_IP6 = 0x4 + LWTUNNEL_ENCAP_SEG6 = 0x5 + LWTUNNEL_ENCAP_BPF = 0x6 + LWTUNNEL_ENCAP_SEG6_LOCAL = 0x7 + LWTUNNEL_ENCAP_RPL = 0x8 + LWTUNNEL_ENCAP_MAX = 0x8 + + MPLS_IPTUNNEL_UNSPEC = 0x0 + MPLS_IPTUNNEL_DST = 0x1 + MPLS_IPTUNNEL_TTL = 0x2 + MPLS_IPTUNNEL_MAX = 0x2 +) + +const ( + ETHTOOL_ID_UNSPEC = 0x0 + ETHTOOL_RX_COPYBREAK = 0x1 + ETHTOOL_TX_COPYBREAK = 0x2 + ETHTOOL_PFC_PREVENTION_TOUT = 0x3 + ETHTOOL_TUNABLE_UNSPEC = 0x0 + ETHTOOL_TUNABLE_U8 = 0x1 + ETHTOOL_TUNABLE_U16 = 0x2 + ETHTOOL_TUNABLE_U32 = 0x3 + ETHTOOL_TUNABLE_U64 = 0x4 + ETHTOOL_TUNABLE_STRING = 0x5 + ETHTOOL_TUNABLE_S8 = 0x6 + ETHTOOL_TUNABLE_S16 = 0x7 + ETHTOOL_TUNABLE_S32 = 0x8 + ETHTOOL_TUNABLE_S64 = 0x9 + ETHTOOL_PHY_ID_UNSPEC = 0x0 + ETHTOOL_PHY_DOWNSHIFT = 0x1 + ETHTOOL_PHY_FAST_LINK_DOWN = 0x2 + ETHTOOL_PHY_EDPD = 0x3 + ETHTOOL_LINK_EXT_STATE_AUTONEG = 0x0 + ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 0x1 + ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 0x2 + ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 0x3 + ETHTOOL_LINK_EXT_STATE_NO_CABLE = 0x4 + ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 0x5 + ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 0x6 + ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 0x7 + ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 0x8 + ETHTOOL_LINK_EXT_STATE_OVERHEAT = 0x9 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 0x5 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 0x6 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 0x5 + ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 0x2 + ETHTOOL_FLASH_ALL_REGIONS = 0x0 + ETHTOOL_F_UNSUPPORTED__BIT = 0x0 + ETHTOOL_F_WISH__BIT = 0x1 + ETHTOOL_F_COMPAT__BIT = 0x2 + ETHTOOL_FEC_NONE_BIT = 0x0 + ETHTOOL_FEC_AUTO_BIT = 0x1 + ETHTOOL_FEC_OFF_BIT = 0x2 + ETHTOOL_FEC_RS_BIT = 0x3 + ETHTOOL_FEC_BASER_BIT = 0x4 + ETHTOOL_FEC_LLRS_BIT = 0x5 + ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0x0 + ETHTOOL_LINK_MODE_10baseT_Full_BIT = 0x1 + ETHTOOL_LINK_MODE_100baseT_Half_BIT = 0x2 + ETHTOOL_LINK_MODE_100baseT_Full_BIT = 0x3 + ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 0x4 + ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 0x5 + ETHTOOL_LINK_MODE_Autoneg_BIT = 0x6 + ETHTOOL_LINK_MODE_TP_BIT = 0x7 + ETHTOOL_LINK_MODE_AUI_BIT = 0x8 + ETHTOOL_LINK_MODE_MII_BIT = 0x9 + ETHTOOL_LINK_MODE_FIBRE_BIT = 0xa + ETHTOOL_LINK_MODE_BNC_BIT = 0xb + ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 0xc + ETHTOOL_LINK_MODE_Pause_BIT = 0xd + ETHTOOL_LINK_MODE_Asym_Pause_BIT = 0xe + ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 0xf + ETHTOOL_LINK_MODE_Backplane_BIT = 0x10 + ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 0x11 + ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 0x12 + ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 0x13 + ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 0x14 + ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 0x15 + ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 0x16 + ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 0x17 + ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 0x18 + ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 0x19 + ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 0x1a + ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 0x1b + ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 0x1c + ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 0x1d + ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 0x1e + ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 0x1f + ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 0x20 + ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 0x21 + ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 0x22 + ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 0x23 + ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 0x24 + ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 0x25 + ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 0x26 + ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 0x27 + ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 0x28 + ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 0x29 + ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 0x2a + ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 0x2b + ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 0x2c + ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 0x2d + ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 0x2e + ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 0x2f + ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 0x30 + ETHTOOL_LINK_MODE_FEC_NONE_BIT = 0x31 + ETHTOOL_LINK_MODE_FEC_RS_BIT = 0x32 + ETHTOOL_LINK_MODE_FEC_BASER_BIT = 0x33 + ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 0x34 + ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 0x35 + ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 0x36 + ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 0x37 + ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 0x38 + ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 0x39 + ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 0x3a + ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 0x3b + ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 0x3c + ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 0x3d + ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 0x3e + ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 0x3f + ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 0x40 + ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 0x41 + ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 0x42 + ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 0x43 + ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 0x44 + ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 0x45 + ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 0x46 + ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 0x47 + ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 0x48 + ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 0x49 + ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 0x4a + ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 0x4b + ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 0x4c + ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 0x4d + ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 0x4e + ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 0x4f + ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 0x50 + ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 0x51 + ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 0x52 + ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 0x53 + ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 0x54 + ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 0x55 + ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 0x56 + ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 0x57 + ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 0x58 + ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 0x59 + ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 0x5a + ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 0x5b + + ETHTOOL_MSG_USER_NONE = 0x0 + ETHTOOL_MSG_STRSET_GET = 0x1 + ETHTOOL_MSG_LINKINFO_GET = 0x2 + ETHTOOL_MSG_LINKINFO_SET = 0x3 + ETHTOOL_MSG_LINKMODES_GET = 0x4 + ETHTOOL_MSG_LINKMODES_SET = 0x5 + ETHTOOL_MSG_LINKSTATE_GET = 0x6 + ETHTOOL_MSG_DEBUG_GET = 0x7 + ETHTOOL_MSG_DEBUG_SET = 0x8 + ETHTOOL_MSG_WOL_GET = 0x9 + ETHTOOL_MSG_WOL_SET = 0xa + ETHTOOL_MSG_FEATURES_GET = 0xb + ETHTOOL_MSG_FEATURES_SET = 0xc + ETHTOOL_MSG_PRIVFLAGS_GET = 0xd + ETHTOOL_MSG_PRIVFLAGS_SET = 0xe + ETHTOOL_MSG_RINGS_GET = 0xf + ETHTOOL_MSG_RINGS_SET = 0x10 + ETHTOOL_MSG_CHANNELS_GET = 0x11 + ETHTOOL_MSG_CHANNELS_SET = 0x12 + ETHTOOL_MSG_COALESCE_GET = 0x13 + ETHTOOL_MSG_COALESCE_SET = 0x14 + ETHTOOL_MSG_PAUSE_GET = 0x15 + ETHTOOL_MSG_PAUSE_SET = 0x16 + ETHTOOL_MSG_EEE_GET = 0x17 + ETHTOOL_MSG_EEE_SET = 0x18 + ETHTOOL_MSG_TSINFO_GET = 0x19 + ETHTOOL_MSG_CABLE_TEST_ACT = 0x1a + ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 0x1b + ETHTOOL_MSG_TUNNEL_INFO_GET = 0x1c + ETHTOOL_MSG_USER_MAX = 0x1c + ETHTOOL_MSG_KERNEL_NONE = 0x0 + ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 + ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 + ETHTOOL_MSG_LINKINFO_NTF = 0x3 + ETHTOOL_MSG_LINKMODES_GET_REPLY = 0x4 + ETHTOOL_MSG_LINKMODES_NTF = 0x5 + ETHTOOL_MSG_LINKSTATE_GET_REPLY = 0x6 + ETHTOOL_MSG_DEBUG_GET_REPLY = 0x7 + ETHTOOL_MSG_DEBUG_NTF = 0x8 + ETHTOOL_MSG_WOL_GET_REPLY = 0x9 + ETHTOOL_MSG_WOL_NTF = 0xa + ETHTOOL_MSG_FEATURES_GET_REPLY = 0xb + ETHTOOL_MSG_FEATURES_SET_REPLY = 0xc + ETHTOOL_MSG_FEATURES_NTF = 0xd + ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 0xe + ETHTOOL_MSG_PRIVFLAGS_NTF = 0xf + ETHTOOL_MSG_RINGS_GET_REPLY = 0x10 + ETHTOOL_MSG_RINGS_NTF = 0x11 + ETHTOOL_MSG_CHANNELS_GET_REPLY = 0x12 + ETHTOOL_MSG_CHANNELS_NTF = 0x13 + ETHTOOL_MSG_COALESCE_GET_REPLY = 0x14 + ETHTOOL_MSG_COALESCE_NTF = 0x15 + ETHTOOL_MSG_PAUSE_GET_REPLY = 0x16 + ETHTOOL_MSG_PAUSE_NTF = 0x17 + ETHTOOL_MSG_EEE_GET_REPLY = 0x18 + ETHTOOL_MSG_EEE_NTF = 0x19 + ETHTOOL_MSG_TSINFO_GET_REPLY = 0x1a + ETHTOOL_MSG_CABLE_TEST_NTF = 0x1b + ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 0x1c + ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 0x1d + ETHTOOL_MSG_KERNEL_MAX = 0x1d + ETHTOOL_A_HEADER_UNSPEC = 0x0 + ETHTOOL_A_HEADER_DEV_INDEX = 0x1 + ETHTOOL_A_HEADER_DEV_NAME = 0x2 + ETHTOOL_A_HEADER_FLAGS = 0x3 + ETHTOOL_A_HEADER_MAX = 0x3 + ETHTOOL_A_BITSET_BIT_UNSPEC = 0x0 + ETHTOOL_A_BITSET_BIT_INDEX = 0x1 + ETHTOOL_A_BITSET_BIT_NAME = 0x2 + ETHTOOL_A_BITSET_BIT_VALUE = 0x3 + ETHTOOL_A_BITSET_BIT_MAX = 0x3 + ETHTOOL_A_BITSET_BITS_UNSPEC = 0x0 + ETHTOOL_A_BITSET_BITS_BIT = 0x1 + ETHTOOL_A_BITSET_BITS_MAX = 0x1 + ETHTOOL_A_BITSET_UNSPEC = 0x0 + ETHTOOL_A_BITSET_NOMASK = 0x1 + ETHTOOL_A_BITSET_SIZE = 0x2 + ETHTOOL_A_BITSET_BITS = 0x3 + ETHTOOL_A_BITSET_VALUE = 0x4 + ETHTOOL_A_BITSET_MASK = 0x5 + ETHTOOL_A_BITSET_MAX = 0x5 + ETHTOOL_A_STRING_UNSPEC = 0x0 + ETHTOOL_A_STRING_INDEX = 0x1 + ETHTOOL_A_STRING_VALUE = 0x2 + ETHTOOL_A_STRING_MAX = 0x2 + ETHTOOL_A_STRINGS_UNSPEC = 0x0 + ETHTOOL_A_STRINGS_STRING = 0x1 + ETHTOOL_A_STRINGS_MAX = 0x1 + ETHTOOL_A_STRINGSET_UNSPEC = 0x0 + ETHTOOL_A_STRINGSET_ID = 0x1 + ETHTOOL_A_STRINGSET_COUNT = 0x2 + ETHTOOL_A_STRINGSET_STRINGS = 0x3 + ETHTOOL_A_STRINGSET_MAX = 0x3 + ETHTOOL_A_STRINGSETS_UNSPEC = 0x0 + ETHTOOL_A_STRINGSETS_STRINGSET = 0x1 + ETHTOOL_A_STRINGSETS_MAX = 0x1 + ETHTOOL_A_STRSET_UNSPEC = 0x0 + ETHTOOL_A_STRSET_HEADER = 0x1 + ETHTOOL_A_STRSET_STRINGSETS = 0x2 + ETHTOOL_A_STRSET_COUNTS_ONLY = 0x3 + ETHTOOL_A_STRSET_MAX = 0x3 + ETHTOOL_A_LINKINFO_UNSPEC = 0x0 + ETHTOOL_A_LINKINFO_HEADER = 0x1 + ETHTOOL_A_LINKINFO_PORT = 0x2 + ETHTOOL_A_LINKINFO_PHYADDR = 0x3 + ETHTOOL_A_LINKINFO_TP_MDIX = 0x4 + ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 0x5 + ETHTOOL_A_LINKINFO_TRANSCEIVER = 0x6 + ETHTOOL_A_LINKINFO_MAX = 0x6 + ETHTOOL_A_LINKMODES_UNSPEC = 0x0 + ETHTOOL_A_LINKMODES_HEADER = 0x1 + ETHTOOL_A_LINKMODES_AUTONEG = 0x2 + ETHTOOL_A_LINKMODES_OURS = 0x3 + ETHTOOL_A_LINKMODES_PEER = 0x4 + ETHTOOL_A_LINKMODES_SPEED = 0x5 + ETHTOOL_A_LINKMODES_DUPLEX = 0x6 + ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 0x7 + ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 0x8 + ETHTOOL_A_LINKMODES_LANES = 0x9 + ETHTOOL_A_LINKMODES_MAX = 0x9 + ETHTOOL_A_LINKSTATE_UNSPEC = 0x0 + ETHTOOL_A_LINKSTATE_HEADER = 0x1 + ETHTOOL_A_LINKSTATE_LINK = 0x2 + ETHTOOL_A_LINKSTATE_SQI = 0x3 + ETHTOOL_A_LINKSTATE_SQI_MAX = 0x4 + ETHTOOL_A_LINKSTATE_EXT_STATE = 0x5 + ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 0x6 + ETHTOOL_A_LINKSTATE_MAX = 0x6 + ETHTOOL_A_DEBUG_UNSPEC = 0x0 + ETHTOOL_A_DEBUG_HEADER = 0x1 + ETHTOOL_A_DEBUG_MSGMASK = 0x2 + ETHTOOL_A_DEBUG_MAX = 0x2 + ETHTOOL_A_WOL_UNSPEC = 0x0 + ETHTOOL_A_WOL_HEADER = 0x1 + ETHTOOL_A_WOL_MODES = 0x2 + ETHTOOL_A_WOL_SOPASS = 0x3 + ETHTOOL_A_WOL_MAX = 0x3 + ETHTOOL_A_FEATURES_UNSPEC = 0x0 + ETHTOOL_A_FEATURES_HEADER = 0x1 + ETHTOOL_A_FEATURES_HW = 0x2 + ETHTOOL_A_FEATURES_WANTED = 0x3 + ETHTOOL_A_FEATURES_ACTIVE = 0x4 + ETHTOOL_A_FEATURES_NOCHANGE = 0x5 + ETHTOOL_A_FEATURES_MAX = 0x5 + ETHTOOL_A_PRIVFLAGS_UNSPEC = 0x0 + ETHTOOL_A_PRIVFLAGS_HEADER = 0x1 + ETHTOOL_A_PRIVFLAGS_FLAGS = 0x2 + ETHTOOL_A_PRIVFLAGS_MAX = 0x2 + ETHTOOL_A_RINGS_UNSPEC = 0x0 + ETHTOOL_A_RINGS_HEADER = 0x1 + ETHTOOL_A_RINGS_RX_MAX = 0x2 + ETHTOOL_A_RINGS_RX_MINI_MAX = 0x3 + ETHTOOL_A_RINGS_RX_JUMBO_MAX = 0x4 + ETHTOOL_A_RINGS_TX_MAX = 0x5 + ETHTOOL_A_RINGS_RX = 0x6 + ETHTOOL_A_RINGS_RX_MINI = 0x7 + ETHTOOL_A_RINGS_RX_JUMBO = 0x8 + ETHTOOL_A_RINGS_TX = 0x9 + ETHTOOL_A_RINGS_MAX = 0x9 + ETHTOOL_A_CHANNELS_UNSPEC = 0x0 + ETHTOOL_A_CHANNELS_HEADER = 0x1 + ETHTOOL_A_CHANNELS_RX_MAX = 0x2 + ETHTOOL_A_CHANNELS_TX_MAX = 0x3 + ETHTOOL_A_CHANNELS_OTHER_MAX = 0x4 + ETHTOOL_A_CHANNELS_COMBINED_MAX = 0x5 + ETHTOOL_A_CHANNELS_RX_COUNT = 0x6 + ETHTOOL_A_CHANNELS_TX_COUNT = 0x7 + ETHTOOL_A_CHANNELS_OTHER_COUNT = 0x8 + ETHTOOL_A_CHANNELS_COMBINED_COUNT = 0x9 + ETHTOOL_A_CHANNELS_MAX = 0x9 + ETHTOOL_A_COALESCE_UNSPEC = 0x0 + ETHTOOL_A_COALESCE_HEADER = 0x1 + ETHTOOL_A_COALESCE_RX_USECS = 0x2 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 0x3 + ETHTOOL_A_COALESCE_RX_USECS_IRQ = 0x4 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 0x5 + ETHTOOL_A_COALESCE_TX_USECS = 0x6 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 0x7 + ETHTOOL_A_COALESCE_TX_USECS_IRQ = 0x8 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 0x9 + ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 0xa + ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 0xb + ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 0xc + ETHTOOL_A_COALESCE_PKT_RATE_LOW = 0xd + ETHTOOL_A_COALESCE_RX_USECS_LOW = 0xe + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 0xf + ETHTOOL_A_COALESCE_TX_USECS_LOW = 0x10 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 0x11 + ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 0x12 + ETHTOOL_A_COALESCE_RX_USECS_HIGH = 0x13 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 0x14 + ETHTOOL_A_COALESCE_TX_USECS_HIGH = 0x15 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 0x16 + ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 0x17 + ETHTOOL_A_COALESCE_MAX = 0x17 + ETHTOOL_A_PAUSE_UNSPEC = 0x0 + ETHTOOL_A_PAUSE_HEADER = 0x1 + ETHTOOL_A_PAUSE_AUTONEG = 0x2 + ETHTOOL_A_PAUSE_RX = 0x3 + ETHTOOL_A_PAUSE_TX = 0x4 + ETHTOOL_A_PAUSE_STATS = 0x5 + ETHTOOL_A_PAUSE_MAX = 0x5 + ETHTOOL_A_PAUSE_STAT_UNSPEC = 0x0 + ETHTOOL_A_PAUSE_STAT_PAD = 0x1 + ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 0x2 + ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 0x3 + ETHTOOL_A_PAUSE_STAT_MAX = 0x3 + ETHTOOL_A_EEE_UNSPEC = 0x0 + ETHTOOL_A_EEE_HEADER = 0x1 + ETHTOOL_A_EEE_MODES_OURS = 0x2 + ETHTOOL_A_EEE_MODES_PEER = 0x3 + ETHTOOL_A_EEE_ACTIVE = 0x4 + ETHTOOL_A_EEE_ENABLED = 0x5 + ETHTOOL_A_EEE_TX_LPI_ENABLED = 0x6 + ETHTOOL_A_EEE_TX_LPI_TIMER = 0x7 + ETHTOOL_A_EEE_MAX = 0x7 + ETHTOOL_A_TSINFO_UNSPEC = 0x0 + ETHTOOL_A_TSINFO_HEADER = 0x1 + ETHTOOL_A_TSINFO_TIMESTAMPING = 0x2 + ETHTOOL_A_TSINFO_TX_TYPES = 0x3 + ETHTOOL_A_TSINFO_RX_FILTERS = 0x4 + ETHTOOL_A_TSINFO_PHC_INDEX = 0x5 + ETHTOOL_A_TSINFO_MAX = 0x5 + ETHTOOL_A_CABLE_TEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_MAX = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_RESULT_CODE_OK = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 0x2 + ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 0x3 + ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 0x4 + ETHTOOL_A_CABLE_PAIR_A = 0x0 + ETHTOOL_A_CABLE_PAIR_B = 0x1 + ETHTOOL_A_CABLE_PAIR_C = 0x2 + ETHTOOL_A_CABLE_PAIR_D = 0x3 + ETHTOOL_A_CABLE_RESULT_UNSPEC = 0x0 + ETHTOOL_A_CABLE_RESULT_PAIR = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE = 0x2 + ETHTOOL_A_CABLE_RESULT_MAX = 0x2 + ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0x0 + ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 0x1 + ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 0x2 + ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 0x2 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 0x1 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 0x2 + ETHTOOL_A_CABLE_NEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_NEST_RESULT = 0x1 + ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 0x2 + ETHTOOL_A_CABLE_NEST_MAX = 0x2 + ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_NTF_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_NTF_STATUS = 0x2 + ETHTOOL_A_CABLE_TEST_NTF_NEST = 0x3 + ETHTOOL_A_CABLE_TEST_NTF_MAX = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 0x4 + ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 0x4 + ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_CFG = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_MAX = 0x2 + ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 0x1 + ETHTOOL_A_CABLE_AMPLITUDE_mV = 0x2 + ETHTOOL_A_CABLE_AMPLITUDE_MAX = 0x2 + ETHTOOL_A_CABLE_PULSE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_PULSE_mV = 0x1 + ETHTOOL_A_CABLE_PULSE_MAX = 0x1 + ETHTOOL_A_CABLE_STEP_UNSPEC = 0x0 + ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 0x1 + ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 0x2 + ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 0x3 + ETHTOOL_A_CABLE_STEP_MAX = 0x3 + ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TDR_NEST_STEP = 0x1 + ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 0x2 + ETHTOOL_A_CABLE_TDR_NEST_PULSE = 0x3 + ETHTOOL_A_CABLE_TDR_NEST_MAX = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = 0x3 + ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0x0 + ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 0x1 + ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 0x2 + ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 0x1 + ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 0x2 + ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 0x2 + ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 0x1 + ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 0x2 + ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 0x3 + ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 0x3 + ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_TABLE = 0x1 + ETHTOOL_A_TUNNEL_UDP_MAX = 0x1 + ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_INFO_HEADER = 0x1 + ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 0x2 + ETHTOOL_A_TUNNEL_INFO_MAX = 0x2 +) + +type EthtoolDrvinfo struct { + Cmd uint32 + Driver [32]byte + Version [32]byte + Fw_version [32]byte + Bus_info [32]byte + Erom_version [32]byte + Reserved2 [12]byte + N_priv_flags uint32 + N_stats uint32 + Testinfo_len uint32 + Eedump_len uint32 + Regdump_len uint32 +} + +type ( + HIDRawReportDescriptor struct { + Size uint32 + Value [4096]uint8 + } + HIDRawDevInfo struct { + Bustype uint32 + Vendor int16 + Product int16 + } +) + +const ( + CLOSE_RANGE_UNSHARE = 0x2 + CLOSE_RANGE_CLOEXEC = 0x4 +) + +const ( + NLMSGERR_ATTR_MSG = 0x1 + NLMSGERR_ATTR_OFFS = 0x2 + NLMSGERR_ATTR_COOKIE = 0x3 +) + +type ( + EraseInfo struct { + Start uint32 + Length uint32 + } + EraseInfo64 struct { + Start uint64 + Length uint64 + } + MtdOobBuf struct { + Start uint32 + Length uint32 + Ptr *uint8 + } + MtdOobBuf64 struct { + Start uint64 + Pad uint32 + Length uint32 + Ptr uint64 + } + MtdWriteReq struct { + Start uint64 + Len uint64 + Ooblen uint64 + Data uint64 + Oob uint64 + Mode uint8 + _ [7]uint8 + } + MtdInfo struct { + Type uint8 + Flags uint32 + Size uint32 + Erasesize uint32 + Writesize uint32 + Oobsize uint32 + _ uint64 + } + RegionInfo struct { + Offset uint32 + Erasesize uint32 + Numblocks uint32 + Regionindex uint32 + } + OtpInfo struct { + Start uint32 + Length uint32 + Locked uint32 + } + NandOobinfo struct { + Useecc uint32 + Eccbytes uint32 + Oobfree [8][2]uint32 + Eccpos [32]uint32 + } + NandOobfree struct { + Offset uint32 + Length uint32 + } + NandEcclayout struct { + Eccbytes uint32 + Eccpos [64]uint32 + Oobavail uint32 + Oobfree [8]NandOobfree + } + MtdEccStats struct { + Corrected uint32 + Failed uint32 + Badblocks uint32 + Bbtblocks uint32 + } +) + +const ( + MTD_OPS_PLACE_OOB = 0x0 + MTD_OPS_AUTO_OOB = 0x1 + MTD_OPS_RAW = 0x2 +) + +const ( + MTD_FILE_MODE_NORMAL = 0x0 + MTD_FILE_MODE_OTP_FACTORY = 0x1 + MTD_FILE_MODE_OTP_USER = 0x2 + MTD_FILE_MODE_RAW = 0x3 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go index 73509d896a..4d4d283de5 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && linux // +build 386,linux package unix @@ -602,3 +603,18 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 +} + +const ( + PPS_GETPARAMS = 0x800470a1 + PPS_SETPARAMS = 0x400470a2 + PPS_GETCAP = 0x800470a3 + PPS_FETCH = 0xc00470a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go index 45eb8738b0..8a2eed5ec4 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && linux // +build amd64,linux package unix @@ -619,3 +620,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go index 8f6b453aba..94b34add64 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && linux // +build arm,linux package unix @@ -596,3 +597,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]uint8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800470a1 + PPS_SETPARAMS = 0x400470a2 + PPS_GETCAP = 0x800470a3 + PPS_FETCH = 0xc00470a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go index b1e0c24f19..2143de4d59 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && linux // +build arm64,linux package unix @@ -598,3 +599,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go index fb802c3ec9..a40216eee6 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips && linux // +build mips,linux package unix @@ -602,3 +603,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400470a1 + PPS_SETPARAMS = 0x800470a2 + PPS_GETCAP = 0x400470a3 + PPS_FETCH = 0xc00470a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go index 30abcf3bb8..e834b069fd 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64 && linux // +build mips64,linux package unix @@ -601,3 +602,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go index 99761aa9a7..e31083b048 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64le && linux // +build mips64le,linux package unix @@ -601,3 +602,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go index 293690348f..42811f7fb5 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mipsle && linux // +build mipsle,linux package unix @@ -602,3 +603,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400470a1 + PPS_SETPARAMS = 0x800470a2 + PPS_GETCAP = 0x400470a3 + PPS_FETCH = 0xc00470a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go new file mode 100644 index 0000000000..af7a72017e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go @@ -0,0 +1,627 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && linux +// +build ppc,linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + _ [4]byte + Size int64 + Blksize int32 + _ [4]byte + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint32 + _ uint32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +const ( + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Gpr [32]uint32 + Nip uint32 + Msr uint32 + Orig_gpr3 uint32 + Ctr uint32 + Link uint32 + Xer uint32 + Ccr uint32 + Mq uint32 + Trap uint32 + Dar uint32 + Dsisr uint32 + Result uint32 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]uint8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]uint8 + Fpack [6]uint8 +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x41 + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + Line uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + _ [122]uint8 + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int32 + Frsize int32 + Flags int32 + Spare [4]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint32 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]uint8 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400470a1 + PPS_SETPARAMS = 0x800470a2 + PPS_GETCAP = 0x400470a3 + PPS_FETCH = 0xc00470a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go index 0ca856e559..2a3afbaef9 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64 && linux // +build ppc64,linux package unix @@ -608,3 +609,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]uint8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go index f50f6482ee..c0de30a658 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build ppc64le && linux // +build ppc64le,linux package unix @@ -608,3 +609,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]uint8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index 4d3ac8d7b4..74faf2e91f 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build riscv64 && linux // +build riscv64,linux package unix @@ -626,3 +627,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]uint8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go index 349f483a80..9a8f0c2c6a 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build s390x && linux // +build s390x,linux package unix @@ -622,3 +623,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go index 80c73beaa1..72cdda75bd 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -1,6 +1,7 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build sparc64 && linux // +build sparc64,linux package unix @@ -603,3 +604,19 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go index a89100c08a..b10e73abf9 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go @@ -1,6 +1,7 @@ // cgo -godefs types_netbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && netbsd // +build 386,netbsd package unix @@ -248,6 +249,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x1c diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go index 289184e0b3..28ed6d55ae 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_netbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && netbsd // +build amd64,netbsd package unix @@ -255,6 +256,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go index 428c450e4c..4ba196ebe5 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go @@ -1,6 +1,7 @@ // cgo -godefs types_netbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && netbsd // +build arm,netbsd package unix @@ -253,6 +254,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x1c diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go index 6f1f2842cc..dd642bd9c8 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go @@ -1,6 +1,7 @@ // cgo -godefs types_netbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && netbsd // +build arm64,netbsd package unix @@ -255,6 +256,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x14 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go index 61ea0019a2..1fdb0e5fa5 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go @@ -1,6 +1,7 @@ // cgo -godefs types_openbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build 386 && openbsd // +build 386,openbsd package unix @@ -231,6 +232,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x20 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x1c diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go index 87a493f68f..e2fc93c7c0 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_openbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && openbsd // +build amd64,openbsd package unix @@ -235,6 +236,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x20 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go index d80836efab..8d34b5a2fc 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go @@ -1,6 +1,7 @@ // cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm && openbsd // +build arm,openbsd package unix @@ -235,6 +236,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x20 SizeofLinger = 0x8 + SizeofIovec = 0x8 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x1c diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go index 4e158746f1..ea8f1a0d9b 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go @@ -1,6 +1,7 @@ // cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build arm64 && openbsd // +build arm64,openbsd package unix @@ -231,6 +232,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x20 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go index 992a1f8c01..ec6e8bc3f1 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go @@ -1,6 +1,7 @@ // cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build mips64 && openbsd // +build mips64,openbsd package unix @@ -231,6 +232,7 @@ const ( SizeofSockaddrUnix = 0x6a SizeofSockaddrDatalink = 0x20 SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 diff --git a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go index 23ed9fe51d..85effef9c1 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go @@ -1,6 +1,7 @@ // cgo -godefs types_solaris.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. +//go:build amd64 && solaris // +build amd64,solaris package unix @@ -88,7 +89,6 @@ type Stat_t struct { Mtim Timespec Ctim Timespec Blksize int32 - _ [4]byte Blocks int64 Fstype [16]int8 } @@ -96,7 +96,6 @@ type Stat_t struct { type Flock_t struct { Type int16 Whence int16 - _ [4]byte Start int64 Len int64 Sysid int32 @@ -138,12 +137,12 @@ type RawSockaddrInet4 struct { } type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 - X__sin6_src_id uint32 + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 + _ uint32 } type RawSockaddrUnix struct { @@ -196,10 +195,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Accrights *int8 Accrightslen int32 _ [4]byte @@ -228,7 +225,7 @@ type IPv6MTUInfo struct { } type ICMPv6Filter struct { - X__icmp6_filt [8]uint32 + Filt [8]uint32 } const ( @@ -238,6 +235,7 @@ const ( SizeofSockaddrUnix = 0x6e SizeofSockaddrDatalink = 0xfc SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 @@ -291,7 +289,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -299,7 +296,6 @@ type IfData struct { Type uint8 Addrlen uint8 Hdrlen uint8 - _ [1]byte Mtu uint32 Metric uint32 Baudrate uint32 @@ -324,7 +320,6 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Metric int32 } @@ -333,7 +328,6 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte Flags int32 Addrs int32 Pid int32 @@ -371,15 +365,14 @@ type BpfVersion struct { } type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 + Recv uint64 + Drop uint64 + Capt uint64 + _ [13]uint64 } type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } diff --git a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go new file mode 100644 index 0000000000..4ab638cb94 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go @@ -0,0 +1,406 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +// Hand edited based on ztypes_linux_s390x.go +// TODO: auto-generate. + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 + PathMax = 0x1000 +) + +const ( + SizeofSockaddrAny = 128 + SizeofCmsghdr = 12 + SizeofIPMreq = 8 + SizeofIPv6Mreq = 20 + SizeofICMPv6Filter = 32 + SizeofIPv6MTUInfo = 32 + SizeofLinger = 8 + SizeofSockaddrInet4 = 16 + SizeofSockaddrInet6 = 28 + SizeofTCPInfo = 0x68 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type timeval_zos struct { //correct (with padding and all) + Sec int64 + _ [4]byte // pad + Usec int32 +} + +type Tms struct { //clock_t is 4-byte unsigned int in zos + Utime uint32 + Stime uint32 + Cutime uint32 + Cstime uint32 +} + +type Time_t int64 + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Utsname struct { + Sysname [65]byte + Nodename [65]byte + Release [65]byte + Version [65]byte + Machine [65]byte + Domainname [65]byte +} + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [108]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + _ [112]uint8 // pad +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Iov *Iovec + Control *byte + Flags int32 + Namelen int32 + Iovlen int32 + Controllen int32 +} + +type Cmsghdr struct { + Len int32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Addr [4]byte /* in_addr */ + Ifindex uint32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +type _Gid_t uint32 + +type rusage_zos struct { + Utime timeval_zos + Stime timeval_zos +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +// { int, short, short } in poll.h +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Stat_t struct { //Linux Definition + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int64 + Blocks int64 + _ [3]int64 +} + +type Stat_LE_t struct { + _ [4]byte // eye catcher + Length uint16 + Version uint16 + Mode int32 + Ino uint32 + Dev uint32 + Nlink int32 + Uid int32 + Gid int32 + Size int64 + Atim31 [4]byte + Mtim31 [4]byte + Ctim31 [4]byte + Rdev uint32 + Auditoraudit uint32 + Useraudit uint32 + Blksize int32 + Creatim31 [4]byte + AuditID [16]byte + _ [4]byte // rsrvd1 + File_tag struct { + Ccsid uint16 + Txtflag uint16 // aggregating Txflag:1 deferred:1 rsvflags:14 + } + CharsetID [8]byte + Blocks int64 + Genvalue uint32 + Reftim31 [4]byte + Fid [8]byte + Filefmt byte + Fspflag2 byte + _ [2]byte // rsrvd2 + Ctimemsec int32 + Seclabel [8]byte + _ [4]byte // rsrvd3 + _ [4]byte // rsrvd4 + Atim Time_t + Mtim Time_t + Ctim Time_t + Creatim Time_t + Reftim Time_t + _ [24]byte // rsrvd5 +} + +type Statvfs_t struct { + ID [4]byte + Len int32 + Bsize uint64 + Blocks uint64 + Usedspace uint64 + Bavail uint64 + Flag uint64 + Maxfilesize int64 + _ [16]byte + Frsize uint64 + Bfree uint64 + Files uint32 + Ffree uint32 + Favail uint32 + Namemax31 uint32 + Invarsec uint32 + _ [4]byte + Fsid uint64 + Namemax uint64 +} + +type Statfs_t struct { + Type uint32 + Bsize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint32 + Ffree uint32 + Fsid uint64 + Namelen uint64 + Frsize uint64 + Flags uint64 +} + +type Dirent struct { + Reclen uint16 + Namlen uint16 + Ino uint32 + Extra uintptr + Name [256]byte +} + +type FdSet struct { + Bits [64]int32 +} + +// This struct is packed on z/OS so it can't be used directly. +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 +} + +type Termios struct { + Cflag uint32 + Iflag uint32 + Lflag uint32 + Oflag uint32 + Cc [11]uint8 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type W_Mnth struct { + Hid [4]byte + Size int32 + Cur1 int32 //32bit pointer + Cur2 int32 //^ + Devno uint32 + _ [4]byte +} + +type W_Mntent struct { + Fstype uint32 + Mode uint32 + Dev uint32 + Parentdev uint32 + Rootino uint32 + Status byte + Ddname [9]byte + Fstname [9]byte + Fsname [45]byte + Pathlen uint32 + Mountpoint [1024]byte + Jobname [8]byte + PID int32 + Parmoffset int32 + Parmlen int16 + Owner [8]byte + Quiesceowner [8]byte + _ [38]byte +} diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go index 82076fb74f..115341fba6 100644 --- a/vendor/golang.org/x/sys/windows/dll_windows.go +++ b/vendor/golang.org/x/sys/windows/dll_windows.go @@ -32,6 +32,8 @@ type DLLError struct { func (e *DLLError) Error() string { return e.Msg } +func (e *DLLError) Unwrap() error { return e.Err } + // A DLL implements access to a single DLL. type DLL struct { Name string @@ -389,7 +391,6 @@ func loadLibraryEx(name string, system bool) (*DLL, error) { var flags uintptr if system { if canDoSearchSystem32() { - const LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x00000800 flags = LOAD_LIBRARY_SEARCH_SYSTEM32 } else if isBaseName(name) { // WindowsXP or unpatched Windows machine diff --git a/vendor/golang.org/x/sys/windows/empty.s b/vendor/golang.org/x/sys/windows/empty.s index 69309e4da5..fdbbbcd317 100644 --- a/vendor/golang.org/x/sys/windows/empty.s +++ b/vendor/golang.org/x/sys/windows/empty.s @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !go1.12 // +build !go1.12 // This file is here to allow bodyless functions with go:linkname for Go 1.11 diff --git a/vendor/golang.org/x/sys/windows/exec_windows.go b/vendor/golang.org/x/sys/windows/exec_windows.go index 3606c3a8b3..7a11e83b7e 100644 --- a/vendor/golang.org/x/sys/windows/exec_windows.go +++ b/vendor/golang.org/x/sys/windows/exec_windows.go @@ -6,6 +6,13 @@ package windows +import ( + errorspkg "errors" + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" +) + // EscapeArg rewrites command line argument s as prescribed // in http://msdn.microsoft.com/en-us/library/ms880421. // This function returns "" (2 double quotes) if s is empty. @@ -73,6 +80,40 @@ func EscapeArg(s string) string { return string(qs[:j]) } +// ComposeCommandLine escapes and joins the given arguments suitable for use as a Windows command line, +// in CreateProcess's CommandLine argument, CreateService/ChangeServiceConfig's BinaryPathName argument, +// or any program that uses CommandLineToArgv. +func ComposeCommandLine(args []string) string { + var commandLine string + for i := range args { + if i > 0 { + commandLine += " " + } + commandLine += EscapeArg(args[i]) + } + return commandLine +} + +// DecomposeCommandLine breaks apart its argument command line into unescaped parts using CommandLineToArgv, +// as gathered from GetCommandLine, QUERY_SERVICE_CONFIG's BinaryPathName argument, or elsewhere that +// command lines are passed around. +func DecomposeCommandLine(commandLine string) ([]string, error) { + if len(commandLine) == 0 { + return []string{}, nil + } + var argc int32 + argv, err := CommandLineToArgv(StringToUTF16Ptr(commandLine), &argc) + if err != nil { + return nil, err + } + defer LocalFree(Handle(unsafe.Pointer(argv))) + var args []string + for _, v := range (*argv)[:argc] { + args = append(args, UTF16ToString((*v)[:])) + } + return args, nil +} + func CloseOnExec(fd Handle) { SetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0) } @@ -95,3 +136,60 @@ func FullPath(name string) (path string, err error) { } } } + +// NewProcThreadAttributeList allocates a new ProcThreadAttributeListContainer, with the requested maximum number of attributes. +func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeListContainer, error) { + var size uintptr + err := initializeProcThreadAttributeList(nil, maxAttrCount, 0, &size) + if err != ERROR_INSUFFICIENT_BUFFER { + if err == nil { + return nil, errorspkg.New("unable to query buffer size from InitializeProcThreadAttributeList") + } + return nil, err + } + // size is guaranteed to be ≥1 by InitializeProcThreadAttributeList. + al := &ProcThreadAttributeListContainer{data: (*ProcThreadAttributeList)(unsafe.Pointer(&make([]byte, size)[0]))} + err = initializeProcThreadAttributeList(al.data, maxAttrCount, 0, &size) + if err != nil { + return nil, err + } + return al, err +} + +// Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute. +// Note that the value passed to this function will be copied into memory +// allocated by LocalAlloc, the contents of which should not contain any +// Go-managed pointers, even if the passed value itself is a Go-managed +// pointer. +func (al *ProcThreadAttributeListContainer) Update(attribute uintptr, value unsafe.Pointer, size uintptr) error { + alloc, err := LocalAlloc(LMEM_FIXED, uint32(size)) + if err != nil { + return err + } + var src, dst []byte + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&src)) + hdr.Data = value + hdr.Cap = int(size) + hdr.Len = int(size) + hdr = (*unsafeheader.Slice)(unsafe.Pointer(&dst)) + hdr.Data = unsafe.Pointer(alloc) + hdr.Cap = int(size) + hdr.Len = int(size) + copy(dst, src) + al.heapAllocations = append(al.heapAllocations, alloc) + return updateProcThreadAttribute(al.data, 0, attribute, unsafe.Pointer(alloc), size, nil, nil) +} + +// Delete frees ProcThreadAttributeList's resources. +func (al *ProcThreadAttributeListContainer) Delete() { + deleteProcThreadAttributeList(al.data) + for i := range al.heapAllocations { + LocalFree(Handle(al.heapAllocations[i])) + } + al.heapAllocations = nil +} + +// List returns the actual ProcThreadAttributeList to be passed to StartupInfoEx. +func (al *ProcThreadAttributeListContainer) List() *ProcThreadAttributeList { + return al.data +} diff --git a/vendor/golang.org/x/sys/windows/memory_windows.go b/vendor/golang.org/x/sys/windows/memory_windows.go index e409d76f0f..1adb60739a 100644 --- a/vendor/golang.org/x/sys/windows/memory_windows.go +++ b/vendor/golang.org/x/sys/windows/memory_windows.go @@ -16,13 +16,19 @@ const ( MEM_RESET_UNDO = 0x01000000 MEM_LARGE_PAGES = 0x20000000 - PAGE_NOACCESS = 0x01 - PAGE_READONLY = 0x02 - PAGE_READWRITE = 0x04 - PAGE_WRITECOPY = 0x08 - PAGE_EXECUTE_READ = 0x20 - PAGE_EXECUTE_READWRITE = 0x40 - PAGE_EXECUTE_WRITECOPY = 0x80 + PAGE_NOACCESS = 0x00000001 + PAGE_READONLY = 0x00000002 + PAGE_READWRITE = 0x00000004 + PAGE_WRITECOPY = 0x00000008 + PAGE_EXECUTE = 0x00000010 + PAGE_EXECUTE_READ = 0x00000020 + PAGE_EXECUTE_READWRITE = 0x00000040 + PAGE_EXECUTE_WRITECOPY = 0x00000080 + PAGE_GUARD = 0x00000100 + PAGE_NOCACHE = 0x00000200 + PAGE_WRITECOMBINE = 0x00000400 + PAGE_TARGETS_INVALID = 0x40000000 + PAGE_TARGETS_NO_UPDATE = 0x40000000 QUOTA_LIMITS_HARDWS_MIN_DISABLE = 0x00000002 QUOTA_LIMITS_HARDWS_MIN_ENABLE = 0x00000001 diff --git a/vendor/golang.org/x/sys/windows/mkerrors.bash b/vendor/golang.org/x/sys/windows/mkerrors.bash index 2163843a11..58e0188fb7 100644 --- a/vendor/golang.org/x/sys/windows/mkerrors.bash +++ b/vendor/golang.org/x/sys/windows/mkerrors.bash @@ -9,6 +9,8 @@ shopt -s nullglob winerror="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/winerror.h | sort -Vr | head -n 1)" [[ -n $winerror ]] || { echo "Unable to find winerror.h" >&2; exit 1; } +ntstatus="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/ntstatus.h | sort -Vr | head -n 1)" +[[ -n $ntstatus ]] || { echo "Unable to find ntstatus.h" >&2; exit 1; } declare -A errors @@ -59,5 +61,10 @@ declare -A errors echo "$key $vtype = $value" done < "$winerror" + while read -r line; do + [[ $line =~ ^#define\ (STATUS_[^\s]+)\ +\(\(NTSTATUS\)((0x)?[0-9a-fA-F]+)L?\) ]] || continue + echo "${BASH_REMATCH[1]} NTStatus = ${BASH_REMATCH[2]}" + done < "$ntstatus" + echo ")" } | gofmt > "zerrors_windows.go" diff --git a/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go index 3778075da0..fc1835d8a2 100644 --- a/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go @@ -19,6 +19,7 @@ const ( var ( errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) + errERROR_EINVAL error = syscall.EINVAL ) // errnoErr returns common boxed Errno values, to prevent @@ -26,7 +27,7 @@ var ( func errnoErr(e syscall.Errno) error { switch e { case 0: - return nil + return errERROR_EINVAL case errnoERROR_IO_PENDING: return errERROR_IO_PENDING } @@ -40,50 +41,50 @@ var ( modadvapi32 = windows.NewLazySystemDLL("advapi32.dll") modkernel32 = windows.NewLazySystemDLL("kernel32.dll") + procRegConnectRegistryW = modadvapi32.NewProc("RegConnectRegistryW") procRegCreateKeyExW = modadvapi32.NewProc("RegCreateKeyExW") procRegDeleteKeyW = modadvapi32.NewProc("RegDeleteKeyW") - procRegSetValueExW = modadvapi32.NewProc("RegSetValueExW") - procRegEnumValueW = modadvapi32.NewProc("RegEnumValueW") procRegDeleteValueW = modadvapi32.NewProc("RegDeleteValueW") + procRegEnumValueW = modadvapi32.NewProc("RegEnumValueW") procRegLoadMUIStringW = modadvapi32.NewProc("RegLoadMUIStringW") - procRegConnectRegistryW = modadvapi32.NewProc("RegConnectRegistryW") + procRegSetValueExW = modadvapi32.NewProc("RegSetValueExW") procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") ) -func regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegCreateKeyExW.Addr(), 9, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(reserved), uintptr(unsafe.Pointer(class)), uintptr(options), uintptr(desired), uintptr(unsafe.Pointer(sa)), uintptr(unsafe.Pointer(result)), uintptr(unsafe.Pointer(disposition))) +func regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) { + r0, _, _ := syscall.Syscall(procRegConnectRegistryW.Addr(), 3, uintptr(unsafe.Pointer(machinename)), uintptr(key), uintptr(unsafe.Pointer(result))) if r0 != 0 { regerrno = syscall.Errno(r0) } return } -func regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegDeleteKeyW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(subkey)), 0) +func regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) { + r0, _, _ := syscall.Syscall9(procRegCreateKeyExW.Addr(), 9, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(reserved), uintptr(unsafe.Pointer(class)), uintptr(options), uintptr(desired), uintptr(unsafe.Pointer(sa)), uintptr(unsafe.Pointer(result)), uintptr(unsafe.Pointer(disposition))) if r0 != 0 { regerrno = syscall.Errno(r0) } return } -func regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegSetValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(valueName)), uintptr(reserved), uintptr(vtype), uintptr(unsafe.Pointer(buf)), uintptr(bufsize)) +func regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) { + r0, _, _ := syscall.Syscall(procRegDeleteKeyW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(subkey)), 0) if r0 != 0 { regerrno = syscall.Errno(r0) } return } -func regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegEnumValueW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)), 0) +func regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) { + r0, _, _ := syscall.Syscall(procRegDeleteValueW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(name)), 0) if r0 != 0 { regerrno = syscall.Errno(r0) } return } -func regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegDeleteValueW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(name)), 0) +func regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { + r0, _, _ := syscall.Syscall9(procRegEnumValueW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)), 0) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -98,8 +99,8 @@ func regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint return } -func regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegConnectRegistryW.Addr(), 3, uintptr(unsafe.Pointer(machinename)), uintptr(key), uintptr(unsafe.Pointer(result))) +func regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) { + r0, _, _ := syscall.Syscall6(procRegSetValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(valueName)), uintptr(reserved), uintptr(vtype), uintptr(unsafe.Pointer(buf)), uintptr(bufsize)) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -110,11 +111,7 @@ func expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) n = uint32(r0) if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go index 9e3c44a855..111c10d3a7 100644 --- a/vendor/golang.org/x/sys/windows/security_windows.go +++ b/vendor/golang.org/x/sys/windows/security_windows.go @@ -624,6 +624,7 @@ func (tml *Tokenmandatorylabel) Size() uint32 { // Authorization Functions //sys checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership +//sys isTokenRestricted(tokenHandle Token) (ret bool, err error) [!failretval] = advapi32.IsTokenRestricted //sys OpenProcessToken(process Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken //sys OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) = advapi32.OpenThreadToken //sys ImpersonateSelf(impersonationlevel uint32) (err error) = advapi32.ImpersonateSelf @@ -837,6 +838,16 @@ func (t Token) IsMember(sid *SID) (bool, error) { return b != 0, nil } +// IsRestricted reports whether the access token t is a restricted token. +func (t Token) IsRestricted() (isRestricted bool, err error) { + isRestricted, err = isTokenRestricted(t) + if !isRestricted && err == syscall.EINVAL { + // If err is EINVAL, this returned ERROR_SUCCESS indicating a non-restricted token. + err = nil + } + return +} + const ( WTS_CONSOLE_CONNECT = 0x1 WTS_CONSOLE_DISCONNECT = 0x2 @@ -897,6 +908,19 @@ type SECURITY_DESCRIPTOR struct { dacl *ACL } +type SECURITY_QUALITY_OF_SERVICE struct { + Length uint32 + ImpersonationLevel uint32 + ContextTrackingMode byte + EffectiveOnly byte +} + +// Constants for the ContextTrackingMode field of SECURITY_QUALITY_OF_SERVICE. +const ( + SECURITY_STATIC_TRACKING = 0 + SECURITY_DYNAMIC_TRACKING = 1 +) + type SecurityAttributes struct { Length uint32 SecurityDescriptor *SECURITY_DESCRIPTOR @@ -1103,9 +1127,10 @@ type OBJECTS_AND_NAME struct { } //sys getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetSecurityInfo -//sys SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) = advapi32.SetSecurityInfo +//sys SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetSecurityInfo //sys getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetNamedSecurityInfoW //sys SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetNamedSecurityInfoW +//sys SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) = advapi32.SetKernelObjectSecurity //sys buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) = advapi32.BuildSecurityDescriptorW //sys initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) = advapi32.InitializeSecurityDescriptor @@ -1309,7 +1334,11 @@ func (absoluteSD *SECURITY_DESCRIPTOR) ToSelfRelative() (selfRelativeSD *SECURIT } func (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() *SECURITY_DESCRIPTOR { - sdLen := (int)(selfRelativeSD.Length()) + sdLen := int(selfRelativeSD.Length()) + const min = int(unsafe.Sizeof(SECURITY_DESCRIPTOR{})) + if sdLen < min { + sdLen = min + } var src []byte h := (*unsafeheader.Slice)(unsafe.Pointer(&src)) @@ -1317,7 +1346,15 @@ func (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() h.Len = sdLen h.Cap = sdLen - dst := make([]byte, sdLen) + const psize = int(unsafe.Sizeof(uintptr(0))) + + var dst []byte + h = (*unsafeheader.Slice)(unsafe.Pointer(&dst)) + alloc := make([]uintptr, (sdLen+psize-1)/psize) + h.Data = (*unsafeheader.Slice)(unsafe.Pointer(&alloc)).Data + h.Len = sdLen + h.Cap = sdLen + copy(dst, src) return (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&dst[0])) } diff --git a/vendor/golang.org/x/sys/windows/service.go b/vendor/golang.org/x/sys/windows/service.go index 847e00bc99..b269850d06 100644 --- a/vendor/golang.org/x/sys/windows/service.go +++ b/vendor/golang.org/x/sys/windows/service.go @@ -65,6 +65,7 @@ const ( SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32 SERVICE_ACCEPT_POWEREVENT = 64 SERVICE_ACCEPT_SESSIONCHANGE = 128 + SERVICE_ACCEPT_PRESHUTDOWN = 256 SERVICE_CONTROL_STOP = 1 SERVICE_CONTROL_PAUSE = 2 @@ -80,6 +81,7 @@ const ( SERVICE_CONTROL_HARDWAREPROFILECHANGE = 12 SERVICE_CONTROL_POWEREVENT = 13 SERVICE_CONTROL_SESSIONCHANGE = 14 + SERVICE_CONTROL_PRESHUTDOWN = 15 SERVICE_ACTIVE = 1 SERVICE_INACTIVE = 2 @@ -126,6 +128,10 @@ const ( SERVICE_NOTIFY_CREATED = 0x00000080 SERVICE_NOTIFY_DELETED = 0x00000100 SERVICE_NOTIFY_DELETE_PENDING = 0x00000200 + + SC_EVENT_DATABASE_CHANGE = 0 + SC_EVENT_PROPERTY_CHANGE = 1 + SC_EVENT_STATUS_CHANGE = 2 ) type SERVICE_STATUS struct { @@ -227,3 +233,5 @@ type QUERY_SERVICE_LOCK_STATUS struct { //sys EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) = advapi32.EnumServicesStatusExW //sys QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceStatusEx //sys NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) = advapi32.NotifyServiceStatusChangeW +//sys SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) = sechost.SubscribeServiceChangeNotifications? +//sys UnsubscribeServiceChangeNotifications(subscription uintptr) = sechost.UnsubscribeServiceChangeNotifications? diff --git a/vendor/golang.org/x/sys/windows/setupapierrors_windows.go b/vendor/golang.org/x/sys/windows/setupapierrors_windows.go new file mode 100644 index 0000000000..1681810e04 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/setupapierrors_windows.go @@ -0,0 +1,100 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import "syscall" + +const ( + ERROR_EXPECTED_SECTION_NAME syscall.Errno = 0x20000000 | 0xC0000000 | 0 + ERROR_BAD_SECTION_NAME_LINE syscall.Errno = 0x20000000 | 0xC0000000 | 1 + ERROR_SECTION_NAME_TOO_LONG syscall.Errno = 0x20000000 | 0xC0000000 | 2 + ERROR_GENERAL_SYNTAX syscall.Errno = 0x20000000 | 0xC0000000 | 3 + ERROR_WRONG_INF_STYLE syscall.Errno = 0x20000000 | 0xC0000000 | 0x100 + ERROR_SECTION_NOT_FOUND syscall.Errno = 0x20000000 | 0xC0000000 | 0x101 + ERROR_LINE_NOT_FOUND syscall.Errno = 0x20000000 | 0xC0000000 | 0x102 + ERROR_NO_BACKUP syscall.Errno = 0x20000000 | 0xC0000000 | 0x103 + ERROR_NO_ASSOCIATED_CLASS syscall.Errno = 0x20000000 | 0xC0000000 | 0x200 + ERROR_CLASS_MISMATCH syscall.Errno = 0x20000000 | 0xC0000000 | 0x201 + ERROR_DUPLICATE_FOUND syscall.Errno = 0x20000000 | 0xC0000000 | 0x202 + ERROR_NO_DRIVER_SELECTED syscall.Errno = 0x20000000 | 0xC0000000 | 0x203 + ERROR_KEY_DOES_NOT_EXIST syscall.Errno = 0x20000000 | 0xC0000000 | 0x204 + ERROR_INVALID_DEVINST_NAME syscall.Errno = 0x20000000 | 0xC0000000 | 0x205 + ERROR_INVALID_CLASS syscall.Errno = 0x20000000 | 0xC0000000 | 0x206 + ERROR_DEVINST_ALREADY_EXISTS syscall.Errno = 0x20000000 | 0xC0000000 | 0x207 + ERROR_DEVINFO_NOT_REGISTERED syscall.Errno = 0x20000000 | 0xC0000000 | 0x208 + ERROR_INVALID_REG_PROPERTY syscall.Errno = 0x20000000 | 0xC0000000 | 0x209 + ERROR_NO_INF syscall.Errno = 0x20000000 | 0xC0000000 | 0x20A + ERROR_NO_SUCH_DEVINST syscall.Errno = 0x20000000 | 0xC0000000 | 0x20B + ERROR_CANT_LOAD_CLASS_ICON syscall.Errno = 0x20000000 | 0xC0000000 | 0x20C + ERROR_INVALID_CLASS_INSTALLER syscall.Errno = 0x20000000 | 0xC0000000 | 0x20D + ERROR_DI_DO_DEFAULT syscall.Errno = 0x20000000 | 0xC0000000 | 0x20E + ERROR_DI_NOFILECOPY syscall.Errno = 0x20000000 | 0xC0000000 | 0x20F + ERROR_INVALID_HWPROFILE syscall.Errno = 0x20000000 | 0xC0000000 | 0x210 + ERROR_NO_DEVICE_SELECTED syscall.Errno = 0x20000000 | 0xC0000000 | 0x211 + ERROR_DEVINFO_LIST_LOCKED syscall.Errno = 0x20000000 | 0xC0000000 | 0x212 + ERROR_DEVINFO_DATA_LOCKED syscall.Errno = 0x20000000 | 0xC0000000 | 0x213 + ERROR_DI_BAD_PATH syscall.Errno = 0x20000000 | 0xC0000000 | 0x214 + ERROR_NO_CLASSINSTALL_PARAMS syscall.Errno = 0x20000000 | 0xC0000000 | 0x215 + ERROR_FILEQUEUE_LOCKED syscall.Errno = 0x20000000 | 0xC0000000 | 0x216 + ERROR_BAD_SERVICE_INSTALLSECT syscall.Errno = 0x20000000 | 0xC0000000 | 0x217 + ERROR_NO_CLASS_DRIVER_LIST syscall.Errno = 0x20000000 | 0xC0000000 | 0x218 + ERROR_NO_ASSOCIATED_SERVICE syscall.Errno = 0x20000000 | 0xC0000000 | 0x219 + ERROR_NO_DEFAULT_DEVICE_INTERFACE syscall.Errno = 0x20000000 | 0xC0000000 | 0x21A + ERROR_DEVICE_INTERFACE_ACTIVE syscall.Errno = 0x20000000 | 0xC0000000 | 0x21B + ERROR_DEVICE_INTERFACE_REMOVED syscall.Errno = 0x20000000 | 0xC0000000 | 0x21C + ERROR_BAD_INTERFACE_INSTALLSECT syscall.Errno = 0x20000000 | 0xC0000000 | 0x21D + ERROR_NO_SUCH_INTERFACE_CLASS syscall.Errno = 0x20000000 | 0xC0000000 | 0x21E + ERROR_INVALID_REFERENCE_STRING syscall.Errno = 0x20000000 | 0xC0000000 | 0x21F + ERROR_INVALID_MACHINENAME syscall.Errno = 0x20000000 | 0xC0000000 | 0x220 + ERROR_REMOTE_COMM_FAILURE syscall.Errno = 0x20000000 | 0xC0000000 | 0x221 + ERROR_MACHINE_UNAVAILABLE syscall.Errno = 0x20000000 | 0xC0000000 | 0x222 + ERROR_NO_CONFIGMGR_SERVICES syscall.Errno = 0x20000000 | 0xC0000000 | 0x223 + ERROR_INVALID_PROPPAGE_PROVIDER syscall.Errno = 0x20000000 | 0xC0000000 | 0x224 + ERROR_NO_SUCH_DEVICE_INTERFACE syscall.Errno = 0x20000000 | 0xC0000000 | 0x225 + ERROR_DI_POSTPROCESSING_REQUIRED syscall.Errno = 0x20000000 | 0xC0000000 | 0x226 + ERROR_INVALID_COINSTALLER syscall.Errno = 0x20000000 | 0xC0000000 | 0x227 + ERROR_NO_COMPAT_DRIVERS syscall.Errno = 0x20000000 | 0xC0000000 | 0x228 + ERROR_NO_DEVICE_ICON syscall.Errno = 0x20000000 | 0xC0000000 | 0x229 + ERROR_INVALID_INF_LOGCONFIG syscall.Errno = 0x20000000 | 0xC0000000 | 0x22A + ERROR_DI_DONT_INSTALL syscall.Errno = 0x20000000 | 0xC0000000 | 0x22B + ERROR_INVALID_FILTER_DRIVER syscall.Errno = 0x20000000 | 0xC0000000 | 0x22C + ERROR_NON_WINDOWS_NT_DRIVER syscall.Errno = 0x20000000 | 0xC0000000 | 0x22D + ERROR_NON_WINDOWS_DRIVER syscall.Errno = 0x20000000 | 0xC0000000 | 0x22E + ERROR_NO_CATALOG_FOR_OEM_INF syscall.Errno = 0x20000000 | 0xC0000000 | 0x22F + ERROR_DEVINSTALL_QUEUE_NONNATIVE syscall.Errno = 0x20000000 | 0xC0000000 | 0x230 + ERROR_NOT_DISABLEABLE syscall.Errno = 0x20000000 | 0xC0000000 | 0x231 + ERROR_CANT_REMOVE_DEVINST syscall.Errno = 0x20000000 | 0xC0000000 | 0x232 + ERROR_INVALID_TARGET syscall.Errno = 0x20000000 | 0xC0000000 | 0x233 + ERROR_DRIVER_NONNATIVE syscall.Errno = 0x20000000 | 0xC0000000 | 0x234 + ERROR_IN_WOW64 syscall.Errno = 0x20000000 | 0xC0000000 | 0x235 + ERROR_SET_SYSTEM_RESTORE_POINT syscall.Errno = 0x20000000 | 0xC0000000 | 0x236 + ERROR_SCE_DISABLED syscall.Errno = 0x20000000 | 0xC0000000 | 0x238 + ERROR_UNKNOWN_EXCEPTION syscall.Errno = 0x20000000 | 0xC0000000 | 0x239 + ERROR_PNP_REGISTRY_ERROR syscall.Errno = 0x20000000 | 0xC0000000 | 0x23A + ERROR_REMOTE_REQUEST_UNSUPPORTED syscall.Errno = 0x20000000 | 0xC0000000 | 0x23B + ERROR_NOT_AN_INSTALLED_OEM_INF syscall.Errno = 0x20000000 | 0xC0000000 | 0x23C + ERROR_INF_IN_USE_BY_DEVICES syscall.Errno = 0x20000000 | 0xC0000000 | 0x23D + ERROR_DI_FUNCTION_OBSOLETE syscall.Errno = 0x20000000 | 0xC0000000 | 0x23E + ERROR_NO_AUTHENTICODE_CATALOG syscall.Errno = 0x20000000 | 0xC0000000 | 0x23F + ERROR_AUTHENTICODE_DISALLOWED syscall.Errno = 0x20000000 | 0xC0000000 | 0x240 + ERROR_AUTHENTICODE_TRUSTED_PUBLISHER syscall.Errno = 0x20000000 | 0xC0000000 | 0x241 + ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED syscall.Errno = 0x20000000 | 0xC0000000 | 0x242 + ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED syscall.Errno = 0x20000000 | 0xC0000000 | 0x243 + ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH syscall.Errno = 0x20000000 | 0xC0000000 | 0x244 + ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE syscall.Errno = 0x20000000 | 0xC0000000 | 0x245 + ERROR_DEVICE_INSTALLER_NOT_READY syscall.Errno = 0x20000000 | 0xC0000000 | 0x246 + ERROR_DRIVER_STORE_ADD_FAILED syscall.Errno = 0x20000000 | 0xC0000000 | 0x247 + ERROR_DEVICE_INSTALL_BLOCKED syscall.Errno = 0x20000000 | 0xC0000000 | 0x248 + ERROR_DRIVER_INSTALL_BLOCKED syscall.Errno = 0x20000000 | 0xC0000000 | 0x249 + ERROR_WRONG_INF_TYPE syscall.Errno = 0x20000000 | 0xC0000000 | 0x24A + ERROR_FILE_HASH_NOT_IN_CATALOG syscall.Errno = 0x20000000 | 0xC0000000 | 0x24B + ERROR_DRIVER_STORE_DELETE_FAILED syscall.Errno = 0x20000000 | 0xC0000000 | 0x24C + ERROR_UNRECOVERABLE_STACK_OVERFLOW syscall.Errno = 0x20000000 | 0xC0000000 | 0x300 + EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW syscall.Errno = ERROR_UNRECOVERABLE_STACK_OVERFLOW + ERROR_NO_DEFAULT_INTERFACE_DEVICE syscall.Errno = ERROR_NO_DEFAULT_DEVICE_INTERFACE + ERROR_INTERFACE_DEVICE_ACTIVE syscall.Errno = ERROR_DEVICE_INTERFACE_ACTIVE + ERROR_INTERFACE_DEVICE_REMOVED syscall.Errno = ERROR_DEVICE_INTERFACE_REMOVED + ERROR_NO_SUCH_INTERFACE_DEVICE syscall.Errno = ERROR_NO_SUCH_DEVICE_INTERFACE +) diff --git a/vendor/golang.org/x/sys/windows/syscall.go b/vendor/golang.org/x/sys/windows/syscall.go index af828a91bc..6122f557a0 100644 --- a/vendor/golang.org/x/sys/windows/syscall.go +++ b/vendor/golang.org/x/sys/windows/syscall.go @@ -25,17 +25,20 @@ package windows // import "golang.org/x/sys/windows" import ( + "bytes" + "strings" "syscall" + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" ) // ByteSliceFromString returns a NUL-terminated slice of bytes // containing the text of s. If s contains a NUL byte at any // location, it returns (nil, syscall.EINVAL). func ByteSliceFromString(s string) ([]byte, error) { - for i := 0; i < len(s); i++ { - if s[i] == 0 { - return nil, syscall.EINVAL - } + if strings.IndexByte(s, 0) != -1 { + return nil, syscall.EINVAL } a := make([]byte, len(s)+1) copy(a, s) @@ -53,6 +56,41 @@ func BytePtrFromString(s string) (*byte, error) { return &a[0], nil } +// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any +// bytes after the NUL removed. +func ByteSliceToString(s []byte) string { + if i := bytes.IndexByte(s, 0); i != -1 { + s = s[:i] + } + return string(s) +} + +// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. +// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated +// at a zero byte; if the zero byte is not present, the program may crash. +func BytePtrToString(p *byte) string { + if p == nil { + return "" + } + if *p == 0 { + return "" + } + + // Find NUL terminator. + n := 0 + for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { + ptr = unsafe.Pointer(uintptr(ptr) + 1) + } + + var s []byte + h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) + h.Data = unsafe.Pointer(p) + h.Len = n + h.Cap = n + + return string(s) +} + // Single-word zero for use when we need a valid pointer to 0 bytes. // See mksyscall.pl. var _zero uintptr diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index 62cf70e9f6..1215b2ae20 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -8,6 +8,8 @@ package windows import ( errorspkg "errors" + "fmt" + "runtime" "sync" "syscall" "time" @@ -18,9 +20,11 @@ import ( ) type Handle uintptr +type HWND uintptr const ( InvalidHandle = ^Handle(0) + InvalidHWND = ^HWND(0) // Flags for DefineDosDevice. DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 @@ -63,9 +67,8 @@ const ( LOCKFILE_FAIL_IMMEDIATELY = 0x00000001 LOCKFILE_EXCLUSIVE_LOCK = 0x00000002 - // Return values of SleepEx and other APC functions - STATUS_USER_APC = 0x000000C0 - WAIT_IO_COMPLETION = STATUS_USER_APC + // Return value of SleepEx and other APC functions + WAIT_IO_COMPLETION = 0x000000C0 ) // StringToUTF16 is deprecated. Use UTF16FromString instead. @@ -92,11 +95,11 @@ func UTF16FromString(s string) ([]uint16, error) { } // UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, -// with a terminating NUL removed. +// with a terminating NUL and any bytes after the NUL removed. func UTF16ToString(s []uint16) string { for i, v := range s { if v == 0 { - s = s[0:i] + s = s[:i] break } } @@ -120,7 +123,7 @@ func UTF16PtrFromString(s string) (*uint16, error) { } // UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string. -// If the pointer is nil, this returns the empty string. This assumes that the UTF-16 sequence is terminated +// If the pointer is nil, it returns the empty string. It assumes that the UTF-16 sequence is terminated // at a zero word; if the zero word is not present, the program may crash. func UTF16PtrToString(p *uint16) string { if p == nil { @@ -170,11 +173,19 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys GetProcAddress(module Handle, procname string) (proc uintptr, err error) //sys GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW //sys GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW +//sys SetDefaultDllDirectories(directoryFlags uint32) (err error) +//sys SetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW //sys GetVersion() (ver uint32, err error) //sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW //sys ExitProcess(exitcode uint32) //sys IsWow64Process(handle Handle, isWow64 *bool) (err error) = IsWow64Process +//sys IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) = IsWow64Process2? //sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW +//sys CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) [failretval==InvalidHandle] = CreateNamedPipeW +//sys ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) +//sys GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) +//sys GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW +//sys SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState //sys ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) //sys WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) //sys GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) @@ -187,6 +198,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys FindClose(handle Handle) (err error) //sys GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) //sys GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) +//sys SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) //sys GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW //sys SetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW //sys CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW @@ -202,14 +214,22 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys GetSystemTimeAsFileTime(time *Filetime) //sys GetSystemTimePreciseAsFileTime(time *Filetime) //sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] -//sys CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, threadcnt uint32) (handle Handle, err error) -//sys GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, overlapped **Overlapped, timeout uint32) (err error) -//sys PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, overlapped *Overlapped) (err error) +//sys CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) +//sys GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) +//sys PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) //sys CancelIo(s Handle) (err error) //sys CancelIoEx(s Handle, o *Overlapped) (err error) //sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW +//sys CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = advapi32.CreateProcessAsUserW +//sys initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) = InitializeProcThreadAttributeList +//sys deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) = DeleteProcThreadAttributeList +//sys updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) = UpdateProcThreadAttribute //sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) //sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW +//sys GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) = user32.GetWindowThreadProcessId +//sys GetShellWindow() (shellWindow HWND) = user32.GetShellWindow +//sys MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW +//sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx //sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath //sys TerminateProcess(handle Handle, exitcode uint32) (err error) //sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) @@ -238,12 +258,14 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW //sys CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW //sys LocalFree(hmem Handle) (handle Handle, err error) [failretval!=0] +//sys LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) //sys SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) //sys FlushFileBuffers(handle Handle) (err error) //sys GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW //sys GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW //sys GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW -//sys CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) = kernel32.CreateFileMappingW +//sys GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) = kernel32.GetFinalPathNameByHandleW +//sys CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateFileMappingW //sys MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) //sys UnmapViewOfFile(addr uintptr) (err error) //sys FlushViewOfFile(addr uintptr, length uintptr) (err error) @@ -254,25 +276,44 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect //sys TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile //sys ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW +//sys FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.FindFirstChangeNotificationW +//sys FindNextChangeNotification(handle Handle) (err error) +//sys FindCloseChangeNotification(handle Handle) (err error) //sys CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW -//sys CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) [failretval==InvalidHandle] = crypt32.CertOpenStore +//sys CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) = crypt32.CertOpenStore //sys CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore -//sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore +//sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore //sys CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore -//sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain -//sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain -//sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext -//sys CertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext -//sys CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy +//sys CertDeleteCertificateFromStore(certContext *CertContext) (err error) = crypt32.CertDeleteCertificateFromStore +//sys CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) = crypt32.CertDuplicateCertificateContext +//sys PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) = crypt32.PFXImportCertStore +//sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain +//sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain +//sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext +//sys CertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext +//sys CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy +//sys CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) = crypt32.CertGetNameStringW +//sys CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) = crypt32.CertFindExtension +//sys CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) [failretval==nil] = crypt32.CertFindCertificateInStore +//sys CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) [failretval==nil] = crypt32.CertFindChainInStore +//sys CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) = crypt32.CryptAcquireCertificatePrivateKey +//sys CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) = crypt32.CryptQueryObject +//sys CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) = crypt32.CryptDecodeObject +//sys CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptProtectData +//sys CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptUnprotectData +//sys WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) = wintrust.WinVerifyTrustEx //sys RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW //sys RegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey //sys RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW //sys RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW //sys RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW +//sys RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) = advapi32.RegNotifyChangeKeyValue //sys GetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId +//sys ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) = kernel32.ProcessIdToSessionId //sys GetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode //sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode //sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo +//sys setConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition //sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW //sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW //sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot @@ -285,14 +326,14 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW //sys CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW //sys GetCurrentThreadId() (id uint32) -//sys CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) = kernel32.CreateEventW -//sys CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) = kernel32.CreateEventExW +//sys CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventW +//sys CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventExW //sys OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenEventW //sys SetEvent(event Handle) (err error) = kernel32.SetEvent //sys ResetEvent(event Handle) (err error) = kernel32.ResetEvent //sys PulseEvent(event Handle) (err error) = kernel32.PulseEvent -//sys CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) = kernel32.CreateMutexW -//sys CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) = kernel32.CreateMutexExW +//sys CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexW +//sys CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexExW //sys OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenMutexW //sys ReleaseMutex(mutex Handle) (err error) = kernel32.ReleaseMutex //sys SleepEx(milliseconds uint32, alertable bool) (ret uint32) = kernel32.SleepEx @@ -303,13 +344,17 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys ResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread //sys SetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass //sys GetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass +//sys QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) = kernel32.QueryInformationJobObject //sys SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) //sys GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) //sys GetProcessId(process Handle) (id uint32, err error) +//sys QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) = kernel32.QueryFullProcessImageNameW //sys OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) //sys SetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost //sys GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) //sys SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) +//sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) +//sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) // Volume Management Functions //sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW @@ -332,8 +377,6 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW //sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW //sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW -//sys MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW -//sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx //sys InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW //sys SetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters //sys GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters @@ -341,16 +384,36 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2 //sys coCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid //sys CoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree -//sys rtlGetVersion(info *OsVersionInfoEx) (ret error) = ntdll.RtlGetVersion -//sys rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers +//sys CoInitializeEx(reserved uintptr, coInit uint32) (ret error) = ole32.CoInitializeEx +//sys CoUninitialize() = ole32.CoUninitialize +//sys CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) = ole32.CoGetObject //sys getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetProcessPreferredUILanguages //sys getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetThreadPreferredUILanguages //sys getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetUserPreferredUILanguages //sys getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetSystemPreferredUILanguages +//sys findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) = kernel32.FindResourceW +//sys SizeofResource(module Handle, resInfo Handle) (size uint32, err error) = kernel32.SizeofResource +//sys LoadResource(module Handle, resInfo Handle) (resData Handle, err error) = kernel32.LoadResource +//sys LockResource(resData Handle) (addr uintptr, err error) = kernel32.LockResource // Process Status API (PSAPI) //sys EnumProcesses(processIds []uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses +// NT Native APIs +//sys rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb +//sys rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) = ntdll.RtlGetVersion +//sys rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers +//sys RtlGetCurrentPeb() (peb *PEB) = ntdll.RtlGetCurrentPeb +//sys RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) = ntdll.RtlInitUnicodeString +//sys RtlInitString(destinationString *NTString, sourceString *byte) = ntdll.RtlInitString +//sys NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) = ntdll.NtCreateFile +//sys NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) = ntdll.NtCreateNamedPipeFile +//sys RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToNtPathName_U_WithStatus +//sys RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus +//sys RtlDefaultNpAcl(acl **ACL) (ntstatus error) = ntdll.RtlDefaultNpAcl +//sys NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQueryInformationProcess +//sys NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) = ntdll.NtSetInformationProcess + // syscall interface implementation for other packages // GetCurrentProcess returns the handle for the current process. @@ -387,11 +450,7 @@ func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0) proc = uintptr(r0) if proc == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } @@ -748,6 +807,7 @@ const socket_error = uintptr(^uint32(0)) //sys WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend //sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom //sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo +//sys WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW //sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname //sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname //sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs @@ -761,6 +821,7 @@ const socket_error = uintptr(^uint32(0)) //sys GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo //sys SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes //sys WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW +//sys WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult //sys GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses //sys GetACP() (acp uint32) = kernel32.GetACP //sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar @@ -1088,11 +1149,7 @@ func WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlap } r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return err } @@ -1104,11 +1161,7 @@ func WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overl } r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0) if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return err } @@ -1487,3 +1540,133 @@ func getUILanguages(flags uint32, f func(flags uint32, numLanguages *uint32, buf return languages, nil } } + +func SetConsoleCursorPosition(console Handle, position Coord) error { + return setConsoleCursorPosition(console, *((*uint32)(unsafe.Pointer(&position)))) +} + +func (s NTStatus) Errno() syscall.Errno { + return rtlNtStatusToDosErrorNoTeb(s) +} + +func langID(pri, sub uint16) uint32 { return uint32(sub)<<10 | uint32(pri) } + +func (s NTStatus) Error() string { + b := make([]uint16, 300) + n, err := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY, modntdll.Handle(), uint32(s), langID(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil) + if err != nil { + return fmt.Sprintf("NTSTATUS 0x%08x", uint32(s)) + } + // trim terminating \r and \n + for ; n > 0 && (b[n-1] == '\n' || b[n-1] == '\r'); n-- { + } + return string(utf16.Decode(b[:n])) +} + +// NewNTUnicodeString returns a new NTUnicodeString structure for use with native +// NT APIs that work over the NTUnicodeString type. Note that most Windows APIs +// do not use NTUnicodeString, and instead UTF16PtrFromString should be used for +// the more common *uint16 string type. +func NewNTUnicodeString(s string) (*NTUnicodeString, error) { + var u NTUnicodeString + s16, err := UTF16PtrFromString(s) + if err != nil { + return nil, err + } + RtlInitUnicodeString(&u, s16) + return &u, nil +} + +// Slice returns a uint16 slice that aliases the data in the NTUnicodeString. +func (s *NTUnicodeString) Slice() []uint16 { + var slice []uint16 + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&slice)) + hdr.Data = unsafe.Pointer(s.Buffer) + hdr.Len = int(s.Length) + hdr.Cap = int(s.MaximumLength) + return slice +} + +func (s *NTUnicodeString) String() string { + return UTF16ToString(s.Slice()) +} + +// NewNTString returns a new NTString structure for use with native +// NT APIs that work over the NTString type. Note that most Windows APIs +// do not use NTString, and instead UTF16PtrFromString should be used for +// the more common *uint16 string type. +func NewNTString(s string) (*NTString, error) { + var nts NTString + s8, err := BytePtrFromString(s) + if err != nil { + return nil, err + } + RtlInitString(&nts, s8) + return &nts, nil +} + +// Slice returns a byte slice that aliases the data in the NTString. +func (s *NTString) Slice() []byte { + var slice []byte + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&slice)) + hdr.Data = unsafe.Pointer(s.Buffer) + hdr.Len = int(s.Length) + hdr.Cap = int(s.MaximumLength) + return slice +} + +func (s *NTString) String() string { + return ByteSliceToString(s.Slice()) +} + +// FindResource resolves a resource of the given name and resource type. +func FindResource(module Handle, name, resType ResourceIDOrString) (Handle, error) { + var namePtr, resTypePtr uintptr + var name16, resType16 *uint16 + var err error + resolvePtr := func(i interface{}, keep **uint16) (uintptr, error) { + switch v := i.(type) { + case string: + *keep, err = UTF16PtrFromString(v) + if err != nil { + return 0, err + } + return uintptr(unsafe.Pointer(*keep)), nil + case ResourceID: + return uintptr(v), nil + } + return 0, errorspkg.New("parameter must be a ResourceID or a string") + } + namePtr, err = resolvePtr(name, &name16) + if err != nil { + return 0, err + } + resTypePtr, err = resolvePtr(resType, &resType16) + if err != nil { + return 0, err + } + resInfo, err := findResource(module, namePtr, resTypePtr) + runtime.KeepAlive(name16) + runtime.KeepAlive(resType16) + return resInfo, err +} + +func LoadResourceData(module, resInfo Handle) (data []byte, err error) { + size, err := SizeofResource(module, resInfo) + if err != nil { + return + } + resData, err := LoadResource(module, resInfo) + if err != nil { + return + } + ptr, err := LockResource(resData) + if err != nil { + return + } + h := (*unsafeheader.Slice)(unsafe.Pointer(&data)) + h.Data = unsafe.Pointer(ptr) + h.Len = int(size) + h.Cap = int(size) + return +} diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index 809fff0b49..1f733398ee 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -10,6 +10,10 @@ import ( "unsafe" ) +// NTStatus corresponds with NTSTATUS, error values returned by ntdll.dll and +// other native functions. +type NTStatus uint32 + const ( // Invented values to support what package os expects. O_RDONLY = 0x00000 @@ -215,6 +219,18 @@ const ( INHERIT_PARENT_AFFINITY = 0x00010000 ) +const ( + // attributes for ProcThreadAttributeList + PROC_THREAD_ATTRIBUTE_PARENT_PROCESS = 0x00020000 + PROC_THREAD_ATTRIBUTE_HANDLE_LIST = 0x00020002 + PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY = 0x00030003 + PROC_THREAD_ATTRIBUTE_PREFERRED_NODE = 0x00020004 + PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR = 0x00030005 + PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 0x00020007 + PROC_THREAD_ATTRIBUTE_UMS_THREAD = 0x00030006 + PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL = 0x0002000b +) + const ( // flags for CreateToolhelp32Snapshot TH32CS_SNAPHEAPLIST = 0x01 @@ -227,7 +243,7 @@ const ( ) const ( - // filters for ReadDirectoryChangesW + // filters for ReadDirectoryChangesW and FindFirstChangeNotificationW FILE_NOTIFY_CHANGE_FILE_NAME = 0x001 FILE_NOTIFY_CHANGE_DIR_NAME = 0x002 FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004 @@ -249,24 +265,27 @@ const ( const ( // wincrypt.h - PROV_RSA_FULL = 1 - PROV_RSA_SIG = 2 - PROV_DSS = 3 - PROV_FORTEZZA = 4 - PROV_MS_EXCHANGE = 5 - PROV_SSL = 6 - PROV_RSA_SCHANNEL = 12 - PROV_DSS_DH = 13 - PROV_EC_ECDSA_SIG = 14 - PROV_EC_ECNRA_SIG = 15 - PROV_EC_ECDSA_FULL = 16 - PROV_EC_ECNRA_FULL = 17 - PROV_DH_SCHANNEL = 18 - PROV_SPYRUS_LYNKS = 20 - PROV_RNG = 21 - PROV_INTEL_SEC = 22 - PROV_REPLACE_OWF = 23 - PROV_RSA_AES = 24 + /* certenrolld_begin -- PROV_RSA_*/ + PROV_RSA_FULL = 1 + PROV_RSA_SIG = 2 + PROV_DSS = 3 + PROV_FORTEZZA = 4 + PROV_MS_EXCHANGE = 5 + PROV_SSL = 6 + PROV_RSA_SCHANNEL = 12 + PROV_DSS_DH = 13 + PROV_EC_ECDSA_SIG = 14 + PROV_EC_ECNRA_SIG = 15 + PROV_EC_ECDSA_FULL = 16 + PROV_EC_ECNRA_FULL = 17 + PROV_DH_SCHANNEL = 18 + PROV_SPYRUS_LYNKS = 20 + PROV_RNG = 21 + PROV_INTEL_SEC = 22 + PROV_REPLACE_OWF = 23 + PROV_RSA_AES = 24 + + /* dwFlags definitions for CryptAcquireContext */ CRYPT_VERIFYCONTEXT = 0xF0000000 CRYPT_NEWKEYSET = 0x00000008 CRYPT_DELETEKEYSET = 0x00000010 @@ -274,6 +293,34 @@ const ( CRYPT_SILENT = 0x00000040 CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080 + /* Flags for PFXImportCertStore */ + CRYPT_EXPORTABLE = 0x00000001 + CRYPT_USER_PROTECTED = 0x00000002 + CRYPT_USER_KEYSET = 0x00001000 + PKCS12_PREFER_CNG_KSP = 0x00000100 + PKCS12_ALWAYS_CNG_KSP = 0x00000200 + PKCS12_ALLOW_OVERWRITE_KEY = 0x00004000 + PKCS12_NO_PERSIST_KEY = 0x00008000 + PKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010 + + /* Flags for CryptAcquireCertificatePrivateKey */ + CRYPT_ACQUIRE_CACHE_FLAG = 0x00000001 + CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = 0x00000002 + CRYPT_ACQUIRE_COMPARE_KEY_FLAG = 0x00000004 + CRYPT_ACQUIRE_NO_HEALING = 0x00000008 + CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040 + CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG = 0x00000080 + CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK = 0x00070000 + CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG = 0x00010000 + CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = 0x00020000 + CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG = 0x00040000 + + /* pdwKeySpec for CryptAcquireCertificatePrivateKey */ + AT_KEYEXCHANGE = 1 + AT_SIGNATURE = 2 + CERT_NCRYPT_KEY_SPEC = 0xFFFFFFFF + + /* Default usage match type is AND with value zero */ USAGE_MATCH_TYPE_AND = 0 USAGE_MATCH_TYPE_OR = 1 @@ -398,6 +445,89 @@ const ( CERT_TRUST_IS_CA_TRUSTED = 0x00004000 CERT_TRUST_IS_COMPLEX_CHAIN = 0x00010000 + /* Certificate Information Flags */ + CERT_INFO_VERSION_FLAG = 1 + CERT_INFO_SERIAL_NUMBER_FLAG = 2 + CERT_INFO_SIGNATURE_ALGORITHM_FLAG = 3 + CERT_INFO_ISSUER_FLAG = 4 + CERT_INFO_NOT_BEFORE_FLAG = 5 + CERT_INFO_NOT_AFTER_FLAG = 6 + CERT_INFO_SUBJECT_FLAG = 7 + CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8 + CERT_INFO_ISSUER_UNIQUE_ID_FLAG = 9 + CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = 10 + CERT_INFO_EXTENSION_FLAG = 11 + + /* dwFindType for CertFindCertificateInStore */ + CERT_COMPARE_MASK = 0xFFFF + CERT_COMPARE_SHIFT = 16 + CERT_COMPARE_ANY = 0 + CERT_COMPARE_SHA1_HASH = 1 + CERT_COMPARE_NAME = 2 + CERT_COMPARE_ATTR = 3 + CERT_COMPARE_MD5_HASH = 4 + CERT_COMPARE_PROPERTY = 5 + CERT_COMPARE_PUBLIC_KEY = 6 + CERT_COMPARE_HASH = CERT_COMPARE_SHA1_HASH + CERT_COMPARE_NAME_STR_A = 7 + CERT_COMPARE_NAME_STR_W = 8 + CERT_COMPARE_KEY_SPEC = 9 + CERT_COMPARE_ENHKEY_USAGE = 10 + CERT_COMPARE_CTL_USAGE = CERT_COMPARE_ENHKEY_USAGE + CERT_COMPARE_SUBJECT_CERT = 11 + CERT_COMPARE_ISSUER_OF = 12 + CERT_COMPARE_EXISTING = 13 + CERT_COMPARE_SIGNATURE_HASH = 14 + CERT_COMPARE_KEY_IDENTIFIER = 15 + CERT_COMPARE_CERT_ID = 16 + CERT_COMPARE_CROSS_CERT_DIST_POINTS = 17 + CERT_COMPARE_PUBKEY_MD5_HASH = 18 + CERT_COMPARE_SUBJECT_INFO_ACCESS = 19 + CERT_COMPARE_HASH_STR = 20 + CERT_COMPARE_HAS_PRIVATE_KEY = 21 + CERT_FIND_ANY = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT) + CERT_FIND_SHA1_HASH = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_MD5_HASH = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_SIGNATURE_HASH = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_KEY_IDENTIFIER = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT) + CERT_FIND_HASH = CERT_FIND_SHA1_HASH + CERT_FIND_PROPERTY = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT) + CERT_FIND_PUBLIC_KEY = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT) + CERT_FIND_SUBJECT_NAME = (CERT_COMPARE_NAME< 0 { - _p0 = &buf[0] - } - r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { + r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func ExitProcess(exitcode uint32) { - syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) - return -} - -func IsWow64Process(handle Handle, isWow64 *bool) (err error) { - var _p0 uint32 - if *isWow64 { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0) - *isWow64 = _p0 != 0 - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) { + r0, _, _ := syscall.Syscall6(procCertGetNameStringW.Addr(), 6, uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) + chars = uint32(r0) return } -func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) +func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + if handle == 0 { + err = errnoErr(e1) } return } -func ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { + r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) + store = Handle(r0) + if store == 0 { + err = errnoErr(e1) } return } -func WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) +func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { + r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) { +func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) { var _p0 uint32 - if wait { + if *callerFreeProvOrNCryptKey { _p0 = 1 - } else { - _p0 = 0 } - r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0) + r1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) + *callerFreeProvOrNCryptKey = _p0 != 0 if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { - r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) - newlowoffset = uint32(r0) - if newlowoffset == 0xffffffff { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptDecodeObject.Addr(), 7, uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func CloseHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) +func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptProtectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetStdHandle(stdhandle uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) { + r1, _, e1 := syscall.Syscall12(procCryptQueryObject.Addr(), 11, uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func SetStdHandle(stdhandle uint32, handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) +func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptUnprotectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) { + r0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) + store = Handle(r0) + if store == 0 { + err = errnoErr(e1) } return } -func findNextFile1(handle Handle, data *win32finddata1) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { + r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) + same = r0 != 0 return } -func FindClose(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { + var _p0 *uint16 + _p0, status = syscall.UTF16PtrFromString(name) + if status != nil { + return } - return + return _DnsQuery(_p0, qtype, options, extra, qrs, pr) } -func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { + r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) + if r0 != 0 { + status = syscall.Errno(r0) } return } -func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func DnsRecordListFree(rl *DNSRecord, freetype uint32) { + syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) return } -func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { + r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) } return } -func SetCurrentDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { + r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) } return } -func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { - r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetIfEntry(pIfRow *MibIfRow) (errcode error) { + r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) + if r0 != 0 { + errcode = syscall.Errno(r0) } return } -func RemoveDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) +func AssignProcessToJobObject(job Handle, process Handle) (err error) { + r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func DeleteFile(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) +func CancelIo(s Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func MoveFile(from *uint16, to *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) +func CancelIoEx(s Handle, o *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) +func CloseHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) +func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0) +func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { + r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetComputerName(buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) } return } -func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) } return } -func SetEndOfFile(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) } return } -func GetSystemTimeAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) +func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } return } -func GetSystemTimePreciseAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) +func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) + if r1&0xff == 0 { + err = errnoErr(e1) + } return } -func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) - rc = uint32(r0) - if rc == 0xffffffff { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) } return } -func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, threadcnt uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) +func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0) handle = Handle(r0) if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, overlapped **Overlapped, timeout uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) } return } -func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if initialOwner { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) } return } -func CancelIo(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func CancelIoEx(s Handle, o *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) +func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } @@ -1182,103 +1594,64 @@ func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityA var _p0 uint32 if inheritHandles { _p0 = 1 - } else { - _p0 = 0 } r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } else { - _p0 = 0 - } - r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) + if r1&0xff == 0 { + err = errnoErr(e1) } return } -func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { - r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) - if r1 <= 32 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { - r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) +func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) + if r1 == 0 { + err = errnoErr(e1) } return } -func TerminateProcess(handle Handle, exitcode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) +func DeleteFile(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) { + syscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0) return } -func GetStartupInfo(startupInfo *StartupInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) +func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) +func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } @@ -1287,301 +1660,137 @@ func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetP var _p0 uint32 if bInheritHandle { _p0 = 1 - } else { - _p0 = 0 } r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { - r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) - event = uint32(r0) - if event == 0xffffffff { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { - var _p0 uint32 - if waitAll { - _p0 = 1 - } else { - _p0 = 0 - } - r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0) - event = uint32(r0) - if event == 0xffffffff { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetFileType(filehandle Handle) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func ExitProcess(exitcode uint32) { + syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) return } -func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) +func FindClose(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { - r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) +func FindCloseChangeNotification(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetEnvironmentStrings() (envs *uint16, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) - envs = (*uint16)(unsafe.Pointer(r0)) - if envs == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(path) + if err != nil { + return } - return + return _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter) } -func FreeEnvironmentStrings(envs *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { + var _p1 uint32 + if watchSubtree { + _p1 = 1 } - return -} - -func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + r0, _, e1 := syscall.Syscall(procFindFirstChangeNotificationW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) { - var _p0 uint32 - if inheritExisting { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func DestroyEnvironmentBlock(block *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func getTickCount64() (ms uint64) { - r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0) - ms = uint64(r0) - return -} - -func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) +func FindNextChangeNotification(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetFileAttributes(name *uint16) (attrs uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - attrs = uint32(r0) - if attrs == INVALID_FILE_ATTRIBUTES { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetFileAttributes(name *uint16, attrs uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) +func findNextFile1(handle Handle, data *win32finddata1) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) +func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetCommandLine() (cmd *uint16) { - r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) - cmd = (*uint16)(unsafe.Pointer(r0)) +func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) + if r1 == 0 { + err = errnoErr(e1) + } return } -func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { - r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) - argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0)) - if argv == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindResourceW.Addr(), 3, uintptr(module), uintptr(name), uintptr(resType)) + resInfo = Handle(r0) + if resInfo == 0 { + err = errnoErr(e1) } return } -func LocalFree(hmem Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) - handle = Handle(r0) - if handle != 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FindVolumeClose(findVolume Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) +func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } @@ -1589,1048 +1798,777 @@ func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) func FlushFileBuffers(handle Handle) (err error) { r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FlushViewOfFile(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) +func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) { + var _p0 *uint16 + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) n = uint32(r0) if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FreeEnvironmentStrings(envs *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FreeLibrary(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) - addr = uintptr(r0) - if addr == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func UnmapViewOfFile(addr uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) +func GetACP() (acp uint32) { + r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) + acp = uint32(r0) + return +} + +func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { + r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func FlushViewOfFile(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) +func GetCommandLine() (cmd *uint16) { + r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) + cmd = (*uint16)(unsafe.Pointer(r0)) + return +} + +func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func VirtualLock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) +func GetComputerName(buf *uint16, n *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func VirtualUnlock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) +func GetConsoleMode(console Handle, mode *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0) - value = uintptr(r0) - if value == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype)) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0) +func GetCurrentProcessId() (pid uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) + pid = uint32(r0) + return +} + +func GetCurrentThreadId() (id uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) + id = uint32(r0) + return +} + +func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { + r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetDriveType(rootPathName *uint16) (driveType uint32) { + r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) + driveType = uint32(r0) + return +} + +func GetEnvironmentStrings() (envs *uint16, err error) { + r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) + envs = (*uint16)(unsafe.Pointer(r0)) + if envs == nil { + err = errnoErr(e1) } return } -func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - var _p0 uint32 - if watchSubTree { - _p0 = 1 - } else { - _p0 = 0 +func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } - r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) + return +} + +func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { - r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) - store = Handle(r0) - if store == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { + r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) + if r1 == 0 { + err = errnoErr(e1) } return } -func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetFileAttributes(name *uint16) (attrs uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + attrs = uint32(r0) + if attrs == INVALID_FILE_ATTRIBUTES { + err = errnoErr(e1) } return } -func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) - context = (*CertContext)(unsafe.Pointer(r0)) - if context == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { + r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { - r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) +func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CertCloseStore(store Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetFileType(filehandle Handle) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { - r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func CertFreeCertificateChain(ctx *CertChainContext) { - syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) +func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } return } -func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) - context = (*CertContext)(unsafe.Pointer(r0)) - if context == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetLastError() (lasterr error) { + r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) + if r0 != 0 { + lasterr = syscall.Errno(r0) } return } -func CertFreeCertificateContext(ctx *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { - r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetLogicalDrives() (drivesBitMask uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) + drivesBitMask = uint32(r0) + if drivesBitMask == 0 { + err = errnoErr(e1) } return } -func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) +func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func RegCloseKey(key Handle) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) +func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) - if r0 != 0 { - regerrno = syscall.Errno(r0) +func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) { + r1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) + if r1 == 0 { + err = errnoErr(e1) } return } -func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) +func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) - if r0 != 0 { - regerrno = syscall.Errno(r0) +func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func GetCurrentProcessId() (pid uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) - pid = uint32(r0) +func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) { + var _p0 uint32 + if wait { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } return } -func GetConsoleMode(console Handle, mode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetPriorityClass(process Handle) (ret uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0) + ret = uint32(r0) + if ret == 0 { + err = errnoErr(e1) } return } -func SetConsoleMode(console Handle, mode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(procname) + if err != nil { + return } - return + return _GetProcAddress(module, _p0) } -func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { + r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) + proc = uintptr(r0) + if proc == 0 { + err = errnoErr(e1) } return } -func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetProcessId(process Handle) (id uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0) + id = uint32(r0) + if id == 0 { + err = errnoErr(e1) } return } -func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) +func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) +func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) { + syscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0) return } -func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) +func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) +func GetStartupInfo(startupInfo *StartupInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) - if r1&0xff == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetStdHandle(stdhandle uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) - if r1&0xff == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + len = uint32(r0) + if len == 0 { + err = errnoErr(e1) } return } -func GetCurrentThreadId() (id uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) - id = uint32(r0) +func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } return } -func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func GetSystemTimeAsFileTime(time *Filetime) { + syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) return } -func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func GetSystemTimePreciseAsFileTime(time *Filetime) { + syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) return } -func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } else { - _p0 = 0 - } - r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + len = uint32(r0) + if len == 0 { + err = errnoErr(e1) } return } -func SetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) } return } -func ResetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) +func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func PulseEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func getTickCount64() (ms uint64) { + r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0) + ms = uint64(r0) return } -func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) { - var _p0 uint32 - if initialOwner { - _p0 = 1 - } else { - _p0 = 0 - } - r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) + rc = uint32(r0) + if rc == 0xffffffff { + err = errnoErr(e1) } return } -func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } else { - _p0 = 0 - } - r0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetVersion() (ver uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) + ver = uint32(r0) + if ver == 0 { + err = errnoErr(e1) } return } -func ReleaseMutex(mutex Handle) (err error) { - r1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0) +func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SleepEx(milliseconds uint32, alertable bool) (ret uint32) { - var _p0 uint32 - if alertable { - _p0 = 1 - } else { - _p0 = 0 +func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + if r1 == 0 { + err = errnoErr(e1) } - r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0) - ret = uint32(r0) return } -func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) + if r1 == 0 { + err = errnoErr(e1) } return } -func AssignProcessToJobObject(job Handle, process Handle) (err error) { - r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) +func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func TerminateJobObject(job Handle, exitCode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0) +func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetErrorMode(mode uint32) (ret uint32) { - r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0) - ret = uint32(r0) - return -} - -func ResumeThread(thread Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0) - ret = uint32(r0) - if ret == 0xffffffff { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + len = uint32(r0) + if len == 0 { + err = errnoErr(e1) } return } -func SetPriorityClass(process Handle, priorityClass uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0) +func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procInitializeProcThreadAttributeList.Addr(), 4, uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetPriorityClass(process Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0) - ret = uint32(r0) - if ret == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func IsWow64Process(handle Handle, isWow64 *bool) (err error) { + var _p0 uint32 + if *isWow64 { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0) + *isWow64 = _p0 != 0 + if r1 == 0 { + err = errnoErr(e1) } return } -func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) { - r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0) - ret = int(r0) - if ret == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) { + err = procIsWow64Process2.Find() + if err != nil { + return + } + r1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) + if r1 == 0 { + err = errnoErr(e1) } return } -func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(libname) + if err != nil { + return } - return + return _LoadLibraryEx(_p0, zero, flags) } -func GetProcessId(process Handle) (id uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0) - id = uint32(r0) - if id == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) } return } -func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } else { - _p0 = 0 +func LoadLibrary(libname string) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(libname) + if err != nil { + return } - r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) + return _LoadLibrary(_p0) +} + +func _LoadLibrary(libname *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) handle = Handle(r0) if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetProcessPriorityBoost(process Handle, disable bool) (err error) { - var _p0 uint32 - if disable { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + resData = Handle(r0) + if resData == 0 { + err = errnoErr(e1) } return } -func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) { - syscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0) - return -} - -func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { + r0, _, e1 := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(length), 0) + ptr = uintptr(r0) + if ptr == 0 { + err = errnoErr(e1) } return } -func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func LocalFree(hmem Handle) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) + handle = Handle(r0) + if handle != 0 { + err = errnoErr(e1) } return } -func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) +func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func LockResource(resData Handle) (addr uintptr, err error) { + r0, _, e1 := syscall.Syscall(procLockResource.Addr(), 1, uintptr(resData), 0, 0) + addr = uintptr(r0) + if addr == 0 { + err = errnoErr(e1) } return } -func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { + r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) + addr = uintptr(r0) + if addr == 0 { + err = errnoErr(e1) } return } -func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) +func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) +func MoveFile(from *uint16, to *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func FindVolumeClose(findVolume Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { + r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) + nwrite = int32(r0) + if nwrite == 0 { + err = errnoErr(e1) } return } -func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 } - return -} - -func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { - r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) } return } -func GetDriveType(rootPathName *uint16) (driveType uint32) { - r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) - driveType = uint32(r0) +func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } return } -func GetLogicalDrives() (drivesBitMask uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) - drivesBitMask = uint32(r0) - if drivesBitMask == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) } return } -func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) } return } -func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) +func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) +func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) +func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) +func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) +func PulseEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } @@ -2639,997 +2577,769 @@ func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint3 r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) n = uint32(r0) if n == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0) +func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryFullProcessImageNameW.Addr(), 4, uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0) +func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { - r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) - ret = int32(r0) - if ret == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func ExitWindowsEx(flags uint32, reason uint32) (err error) { - r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0) +func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { + r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) { +func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { var _p0 uint32 - if forceAppsClosed { + if watchSubTree { _p0 = 1 - } else { - _p0 = 0 - } - var _p1 uint32 - if rebootAfterShutdown { - _p1 = 1 - } else { - _p1 = 0 } - r1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) + r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0) +func ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0) +func ReleaseMutex(mutex Handle) (err error) { + r1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) - if r0 != 0 { - ret = syscall.Errno(r0) +func RemoveDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { - r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) - chars = int32(r0) +func ResetEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } return } -func coCreateGuid(pguid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) +func ResumeThread(thread Handle) (ret uint32, err error) { + r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0) + ret = uint32(r0) + if ret == 0xffffffff { + err = errnoErr(e1) } return } -func CoTaskMemFree(address unsafe.Pointer) { - syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0) +func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + if r1 == 0 { + err = errnoErr(e1) + } return } -func rtlGetVersion(info *OsVersionInfoEx) (ret error) { - r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) +func setConsoleCursorPosition(console Handle, position uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) { - syscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) +func SetConsoleMode(console Handle, mode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) + if r1 == 0 { + err = errnoErr(e1) + } return } -func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) +func SetCurrentDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) +func SetDefaultDllDirectories(directoryFlags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) +func SetDllDirectory(path string) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(path) + if err != nil { + return + } + return _SetDllDirectory(_p0) +} + +func _SetDllDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) +func SetEndOfFile(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func EnumProcesses(processIds []uint32, bytesReturned *uint32) (err error) { - var _p0 *uint32 - if len(processIds) > 0 { - _p0 = &processIds[0] - } - r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(processIds)), uintptr(unsafe.Pointer(bytesReturned))) +func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { - r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) - if r0 != 0 { - sockerr = syscall.Errno(r0) - } +func SetErrorMode(mode uint32) (ret uint32) { + r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0) + ret = uint32(r0) return } -func WSACleanup() (err error) { - r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetFileAttributes(name *uint16, attrs uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { + r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) + newlowoffset = uint32(r0) + if newlowoffset == 0xffffffff { + err = errnoErr(e1) } return } -func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int32(r0) - if n == -1 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { - r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) + if r1 == 0 { + err = errnoErr(e1) } return } -func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { - r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) { + r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0) + ret = int(r0) + if ret == 0 { + err = errnoErr(e1) } return } -func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetNamedPipeHandleState.Addr(), 4, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetPriorityClass(process Handle, priorityClass uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetProcessPriorityBoost(process Handle, disable bool) (err error) { + var _p0 uint32 + if disable { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func listen(s Handle, backlog int32) (err error) { - r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func shutdown(s Handle, how int32) (err error) { - r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetStdHandle(stdhandle uint32, handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func Closesocket(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) +func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { - syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) +func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) { + r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + size = uint32(r0) + if size == 0 { + err = errnoErr(e1) + } return } -func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SleepEx(milliseconds uint32, alertable bool) (ret uint32) { + var _p0 uint32 + if alertable { + _p0 = 1 } + r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0) + ret = uint32(r0) return } -func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func TerminateJobObject(job Handle, exitCode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func TerminateProcess(handle Handle, exitcode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func GetHostByName(name string) (h *Hostent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return +func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) } - return _GetHostByName(_p0) + return } -func _GetHostByName(name *byte) (h *Hostent, err error) { - r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - h = (*Hostent)(unsafe.Pointer(r0)) - if h == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func GetServByName(name string, proto string) (s *Servent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return - } - var _p1 *byte - _p1, err = syscall.BytePtrFromString(proto) - if err != nil { - return +func UnmapViewOfFile(addr uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } - return _GetServByName(_p0, _p1) + return } -func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { - r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) - s = (*Servent)(unsafe.Pointer(r0)) - if s == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) { + r1, _, e1 := syscall.Syscall9(procUpdateProcThreadAttribute.Addr(), 7, uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func Ntohs(netshort uint16) (u uint16) { - r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) - u = uint16(r0) +func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { + r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0) + value = uintptr(r0) + if value == 0 { + err = errnoErr(e1) + } return } -func GetProtoByName(name string) (p *Protoent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return +func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype)) + if r1 == 0 { + err = errnoErr(e1) } - return _GetProtoByName(_p0) + return } -func _GetProtoByName(name *byte) (p *Protoent, err error) { - r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - p = (*Protoent)(unsafe.Pointer(r0)) - if p == nil { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func VirtualLock(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - var _p0 *uint16 - _p0, status = syscall.UTF16PtrFromString(name) - if status != nil { - return +func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) } - return _DnsQuery(_p0, qtype, options, extra, qrs, pr) + return } -func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) - if r0 != 0 { - status = syscall.Errno(r0) +func VirtualUnlock(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func DnsRecordListFree(rl *DNSRecord, freetype uint32) { - syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) +func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { + var _p0 uint32 + if waitAll { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0) + event = uint32(r0) + if event == 0xffffffff { + err = errnoErr(e1) + } return } -func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { - r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) - same = r0 != 0 +func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { + r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) + event = uint32(r0) + if event == 0xffffffff { + err = errnoErr(e1) + } return } -func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { - r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) - if r0 != 0 { - sockerr = syscall.Errno(r0) +func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { + r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func FreeAddrInfoW(addrinfo *AddrinfoW) { - syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) +func WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } return } -func GetIfEntry(pIfRow *MibIfRow) (errcode error) { - r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) - if r0 != 0 { - errcode = syscall.Errno(r0) +func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } -func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } +func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { + syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) return } -func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) +func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { - r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) - n = int32(r0) - if n == -1 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func NetApiBufferFree(buf *byte) (neterr error) { + r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) + if r0 != 0 { + neterr = syscall.Errno(r0) } return } -func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { - r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) +func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { + r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) if r0 != 0 { - errcode = syscall.Errno(r0) + neterr = syscall.Errno(r0) } return } -func GetACP() (acp uint32) { - r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) - acp = uint32(r0) +func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { + r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) + if r0 != 0 { + neterr = syscall.Errno(r0) + } return } -func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { - r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) - nwrite = int32(r0) - if nwrite == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) } return } -func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) - if r1&0xff == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) { + r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) } return } -func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) - if r1&0xff == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) } return } -func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { - r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) +func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtSetInformationProcess.Addr(), 4, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), 0, 0) if r0 != 0 { - neterr = syscall.Errno(r0) + ntstatus = NTStatus(r0) } return } -func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { - r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) +func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { + r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(acl)), 0, 0) if r0 != 0 { - neterr = syscall.Errno(r0) + ntstatus = NTStatus(r0) } return } -func NetApiBufferFree(buf *byte) (neterr error) { - r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) +func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) if r0 != 0 { - neterr = syscall.Errno(r0) + ntstatus = NTStatus(r0) } return } -func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) } return } -func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func RtlGetCurrentPeb() (peb *PEB) { + r0, _, _ := syscall.Syscall(procRtlGetCurrentPeb.Addr(), 0, 0, 0, 0) + peb = (*PEB)(unsafe.Pointer(r0)) return } -func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) { + syscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) return } -func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { + r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) } return } -func GetLengthSid(sid *SID) (len uint32) { - r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - len = uint32(r0) +func RtlInitString(destinationString *NTString, sourceString *byte) { + syscall.Syscall(procRtlInitString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) return } -func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) { + syscall.Syscall(procRtlInitUnicodeString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) return } -func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) { + r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(ntstatus), 0, 0) + ret = syscall.Errno(r0) return } -func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { + r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { - r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0) - isWellKnown = r0 != 0 +func coCreateGuid(pguid *GUID) (ret error) { + r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } return } -func FreeSid(sid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - if r1 != 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) { + r0, _, _ := syscall.Syscall6(procCoGetObject.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { - r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0) - isEqual = r0 != 0 +func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { + r0, _, _ := syscall.Syscall(procCoInitializeEx.Addr(), 2, uintptr(reserved), uintptr(coInit), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } return } -func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { - r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) +func CoTaskMemFree(address unsafe.Pointer) { + syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0) return } -func getSidSubAuthorityCount(sid *SID) (count *uint8) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - count = (*uint8)(unsafe.Pointer(r0)) +func CoUninitialize() { + syscall.Syscall(procCoUninitialize.Addr(), 0, 0, 0, 0) return } -func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0) - subAuthority = (*uint32)(unsafe.Pointer(r0)) +func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { + r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) + chars = int32(r0) return } -func isValidSid(sid *SID) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - isValid = r0 != 0 +func EnumProcesses(processIds []uint32, bytesReturned *uint32) (err error) { + var _p0 *uint32 + if len(processIds) > 0 { + _p0 = &processIds[0] + } + r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(processIds)), uintptr(unsafe.Pointer(bytesReturned))) + if r1 == 0 { + err = errnoErr(e1) + } return } -func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { - r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) { + ret = procSubscribeServiceChangeNotifications.Find() + if ret != nil { + return + } + r0, _, _ := syscall.Syscall6(procSubscribeServiceChangeNotifications.Addr(), 5, uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) { + err = procUnsubscribeServiceChangeNotifications.Find() + if err != nil { + return } + syscall.Syscall(procUnsubscribeServiceChangeNotifications.Addr(), 1, uintptr(subscription), 0, 0) return } -func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) { - var _p0 uint32 - if openAsSelf { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) + if r1&0xff == 0 { + err = errnoErr(e1) } return } -func ImpersonateSelf(impersonationlevel uint32) (err error) { - r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) + if r1&0xff == 0 { + err = errnoErr(e1) } return } -func RevertToSelf() (err error) { - r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { + r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) + argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0)) + if argv == nil { + err = errnoErr(e1) } return } -func SetThreadToken(thread *Handle, token Token) (err error) { - r1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { + r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) { - r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { + r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) + if r1 <= 32 { + err = errnoErr(e1) } return } -func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) { - var _p0 uint32 - if disableAllPrivileges { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) +func ExitWindowsEx(flags uint32, reason uint32) (err error) { + r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) { - var _p0 uint32 - if resetToDefault { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetShellWindow() (shellWindow HWND) { + r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0) + shellWindow = HWND(r0) + return +} + +func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0) + tid = uint32(r0) + if tid == 0 { + err = errnoErr(e1) } return } -func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { + r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) + ret = int32(r0) + if ret == 0 { + err = errnoErr(e1) } return } -func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0) +func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) { + var _p0 uint32 + if inheritExisting { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) { - r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) +func DestroyEnvironmentBlock(block *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } @@ -3637,434 +3347,306 @@ func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) - len = uint32(r0) - if len == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) { + r0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) - len = uint32(r0) - if len == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func FreeAddrInfoW(addrinfo *AddrinfoW) { + syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) + return +} + +func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { + r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) + if r0 != 0 { + sockerr = syscall.Errno(r0) } return } -func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) - len = uint32(r0) - if len == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func WSACleanup() (err error) { + r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) + if r1 == socket_error { + err = errnoErr(e1) } return } -func WTSQueryUserToken(session uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { + r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) + n = int32(r0) + if n == -1 { + err = errnoErr(e1) } return } -func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0) +func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) { + var _p0 uint32 + if wait { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func WTSFreeMemory(ptr uintptr) { - syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0) +func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { + r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) + if r1 == socket_error { + err = errnoErr(e1) + } return } -func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) - if r0 != 0 { - ret = syscall.Errno(r0) +func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) } return } -func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) { - syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) +func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + err = errnoErr(e1) + } return } -func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - var _p0 *uint16 - _p0, ret = syscall.UTF16PtrFromString(objectName) - if ret != nil { - return +func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) } - return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd) + return } -func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) - if r0 != 0 { - ret = syscall.Errno(r0) +func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + err = errnoErr(e1) } return } -func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - var _p0 *uint16 - _p0, ret = syscall.UTF16PtrFromString(objectName) - if ret != nil { - return +func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } - return _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl) + return } -func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - r0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) +func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { + r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) if r0 != 0 { - ret = syscall.Errno(r0) + sockerr = syscall.Errno(r0) } return } -func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) - if r0 != 0 { - ret = syscall.Errno(r0) +func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { + r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + if r1 == socket_error { + err = errnoErr(e1) } return } -func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) { - r1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func Closesocket(s Handle) (err error) { + r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) } return } -func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { + r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + if r1 == socket_error { + err = errnoErr(e1) } return } -func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) { - var _p0 uint32 - if *daclPresent { - _p0 = 1 - } else { - _p0 = 0 - } - var _p1 uint32 - if *daclDefaulted { - _p1 = 1 - } else { - _p1 = 0 - } - r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) - *daclPresent = _p0 != 0 - *daclDefaulted = _p1 != 0 - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetHostByName(name string) (h *Hostent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return } - return + return _GetHostByName(_p0) } -func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) { - var _p0 uint32 - if *saclPresent { - _p0 = 1 - } else { - _p0 = 0 - } - var _p1 uint32 - if *saclDefaulted { - _p1 = 1 - } else { - _p1 = 0 - } - r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) - *saclPresent = _p0 != 0 - *saclDefaulted = _p1 != 0 - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func _GetHostByName(name *byte) (h *Hostent, err error) { + r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + h = (*Hostent)(unsafe.Pointer(r0)) + if h == nil { + err = errnoErr(e1) } return } -func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) { - var _p0 uint32 - if *ownerDefaulted { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) - *ownerDefaulted = _p0 != 0 - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if r1 == socket_error { + err = errnoErr(e1) } return } -func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) { - var _p0 uint32 - if *groupDefaulted { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) - *groupDefaulted = _p0 != 0 - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func GetProtoByName(name string) (p *Protoent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return } - return + return _GetProtoByName(_p0) } -func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) { - r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) - len = uint32(r0) +func _GetProtoByName(name *byte) (p *Protoent, err error) { + r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + p = (*Protoent)(unsafe.Pointer(r0)) + if p == nil { + err = errnoErr(e1) + } return } -func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) { - r0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) - if r0 != 0 { - ret = syscall.Errno(r0) +func GetServByName(name string, proto string) (s *Servent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return } - return + var _p1 *byte + _p1, err = syscall.BytePtrFromString(proto) + if err != nil { + return + } + return _GetServByName(_p0, _p1) } -func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) - isValid = r0 != 0 +func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { + r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) + s = (*Servent)(unsafe.Pointer(r0)) + if s == nil { + err = errnoErr(e1) + } return } -func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) { - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if r1 == socket_error { + err = errnoErr(e1) } return } -func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) { - var _p0 uint32 - if daclPresent { - _p0 = 1 - } else { - _p0 = 0 - } - var _p1 uint32 - if daclDefaulted { - _p1 = 1 - } else { - _p1 = 0 - } - r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { + r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) + if r1 == socket_error { + err = errnoErr(e1) } return } -func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) { - var _p0 uint32 - if saclPresent { - _p0 = 1 - } else { - _p0 = 0 - } - var _p1 uint32 - if saclDefaulted { - _p1 = 1 - } else { - _p1 = 0 - } - r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func listen(s Handle, backlog int32) (err error) { + r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) + if r1 == socket_error { + err = errnoErr(e1) } return } -func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) { - var _p0 uint32 - if ownerDefaulted { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func Ntohs(netshort uint16) (u uint16) { + r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) + u = uint16(r0) return } -func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) { - var _p0 uint32 - if groupDefaulted { - _p0 = 1 - } else { - _p0 = 0 +func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] } - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + r0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int32(r0) + if n == -1 { + err = errnoErr(e1) } return } -func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) { - syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) +func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) + if r1 == socket_error { + err = errnoErr(e1) + } return } -func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(str) - if err != nil { - return +func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { + r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) + if r1 == socket_error { + err = errnoErr(e1) } - return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size) + return } -func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func shutdown(s Handle, how int32) (err error) { + r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) + if r1 == socket_error { + err = errnoErr(e1) } return } -func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) } return } -func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)), 0) +func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0) if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } + err = errnoErr(e1) } return } -func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } +func WTSFreeMemory(ptr uintptr) { + syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0) return } -func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) { - r0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) +func WTSQueryUserToken(session uint32, token *Token) (err error) { + r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0) + if r1 == 0 { + err = errnoErr(e1) } return } diff --git a/vendor/golang.org/x/term/AUTHORS b/vendor/golang.org/x/term/AUTHORS new file mode 100644 index 0000000000..15167cd746 --- /dev/null +++ b/vendor/golang.org/x/term/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/term/CONTRIBUTING.md b/vendor/golang.org/x/term/CONTRIBUTING.md new file mode 100644 index 0000000000..d0485e887a --- /dev/null +++ b/vendor/golang.org/x/term/CONTRIBUTING.md @@ -0,0 +1,26 @@ +# Contributing to Go + +Go is an open source project. + +It is the work of hundreds of contributors. We appreciate your help! + +## Filing issues + +When [filing an issue](https://golang.org/issue/new), make sure to answer these five questions: + +1. What version of Go are you using (`go version`)? +2. What operating system and processor architecture are you using? +3. What did you do? +4. What did you expect to see? +5. What did you see instead? + +General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. +The gophers there will answer or ask you to file an issue if you've tripped over a bug. + +## Contributing code + +Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) +before sending patches. + +Unless otherwise noted, the Go source files are distributed under +the BSD-style license found in the LICENSE file. diff --git a/vendor/golang.org/x/term/CONTRIBUTORS b/vendor/golang.org/x/term/CONTRIBUTORS new file mode 100644 index 0000000000..1c4577e968 --- /dev/null +++ b/vendor/golang.org/x/term/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/term/LICENSE b/vendor/golang.org/x/term/LICENSE new file mode 100644 index 0000000000..6a66aea5ea --- /dev/null +++ b/vendor/golang.org/x/term/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/term/PATENTS b/vendor/golang.org/x/term/PATENTS new file mode 100644 index 0000000000..733099041f --- /dev/null +++ b/vendor/golang.org/x/term/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/term/README.md b/vendor/golang.org/x/term/README.md new file mode 100644 index 0000000000..d03d0aefef --- /dev/null +++ b/vendor/golang.org/x/term/README.md @@ -0,0 +1,19 @@ +# Go terminal/console support + +[![Go Reference](https://pkg.go.dev/badge/golang.org/x/term.svg)](https://pkg.go.dev/golang.org/x/term) + +This repository provides Go terminal and console support packages. + +## Download/Install + +The easiest way to install is to run `go get -u golang.org/x/term`. You can +also manually git clone the repository to `$GOPATH/src/golang.org/x/term`. + +## Report Issues / Send Patches + +This repository uses Gerrit for code changes. To learn how to submit changes to +this repository, see https://golang.org/doc/contribute.html. + +The main issue tracker for the term repository is located at +https://github.com/golang/go/issues. Prefix your issue with "x/term:" in the +subject line, so it is easy to find. diff --git a/vendor/golang.org/x/term/go.mod b/vendor/golang.org/x/term/go.mod new file mode 100644 index 0000000000..d45f52851e --- /dev/null +++ b/vendor/golang.org/x/term/go.mod @@ -0,0 +1,5 @@ +module golang.org/x/term + +go 1.11 + +require golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 diff --git a/vendor/golang.org/x/term/go.sum b/vendor/golang.org/x/term/go.sum new file mode 100644 index 0000000000..de9e09c654 --- /dev/null +++ b/vendor/golang.org/x/term/go.sum @@ -0,0 +1,2 @@ +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/vendor/golang.org/x/term/term.go b/vendor/golang.org/x/term/term.go new file mode 100644 index 0000000000..2a4ccf8012 --- /dev/null +++ b/vendor/golang.org/x/term/term.go @@ -0,0 +1,58 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package term provides support functions for dealing with terminals, as +// commonly found on UNIX systems. +// +// Putting a terminal into raw mode is the most common requirement: +// +// oldState, err := term.MakeRaw(0) +// if err != nil { +// panic(err) +// } +// defer term.Restore(0, oldState) +package term + +// State contains the state of a terminal. +type State struct { + state +} + +// IsTerminal returns whether the given file descriptor is a terminal. +func IsTerminal(fd int) bool { + return isTerminal(fd) +} + +// MakeRaw puts the terminal connected to the given file descriptor into raw +// mode and returns the previous state of the terminal so that it can be +// restored. +func MakeRaw(fd int) (*State, error) { + return makeRaw(fd) +} + +// GetState returns the current state of a terminal which may be useful to +// restore the terminal after a signal. +func GetState(fd int) (*State, error) { + return getState(fd) +} + +// Restore restores the terminal connected to the given file descriptor to a +// previous state. +func Restore(fd int, oldState *State) error { + return restore(fd, oldState) +} + +// GetSize returns the visible dimensions of the given terminal. +// +// These dimensions don't include any scrollback buffer height. +func GetSize(fd int) (width, height int, err error) { + return getSize(fd) +} + +// ReadPassword reads a line of input from a terminal without local echo. This +// is commonly used for inputting passwords and other sensitive data. The slice +// returned does not include the \n. +func ReadPassword(fd int) ([]byte, error) { + return readPassword(fd) +} diff --git a/vendor/golang.org/x/term/term_plan9.go b/vendor/golang.org/x/term/term_plan9.go new file mode 100644 index 0000000000..21afa55cdb --- /dev/null +++ b/vendor/golang.org/x/term/term_plan9.go @@ -0,0 +1,42 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package term + +import ( + "fmt" + "runtime" + + "golang.org/x/sys/plan9" +) + +type state struct{} + +func isTerminal(fd int) bool { + path, err := plan9.Fd2path(fd) + if err != nil { + return false + } + return path == "/dev/cons" || path == "/mnt/term/dev/cons" +} + +func makeRaw(fd int) (*State, error) { + return nil, fmt.Errorf("terminal: MakeRaw not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func getState(fd int) (*State, error) { + return nil, fmt.Errorf("terminal: GetState not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func restore(fd int, state *State) error { + return fmt.Errorf("terminal: Restore not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func getSize(fd int) (width, height int, err error) { + return 0, 0, fmt.Errorf("terminal: GetSize not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func readPassword(fd int) ([]byte, error) { + return nil, fmt.Errorf("terminal: ReadPassword not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} diff --git a/vendor/golang.org/x/term/term_solaris.go b/vendor/golang.org/x/term/term_solaris.go new file mode 100644 index 0000000000..b9da29744b --- /dev/null +++ b/vendor/golang.org/x/term/term_solaris.go @@ -0,0 +1,111 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package term + +import ( + "io" + "syscall" + + "golang.org/x/sys/unix" +) + +// State contains the state of a terminal. +type state struct { + termios unix.Termios +} + +func isTerminal(fd int) bool { + _, err := unix.IoctlGetTermio(fd, unix.TCGETA) + return err == nil +} + +func readPassword(fd int) ([]byte, error) { + // see also: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libast/common/uwin/getpass.c + val, err := unix.IoctlGetTermios(fd, unix.TCGETS) + if err != nil { + return nil, err + } + oldState := *val + + newState := oldState + newState.Lflag &^= syscall.ECHO + newState.Lflag |= syscall.ICANON | syscall.ISIG + newState.Iflag |= syscall.ICRNL + err = unix.IoctlSetTermios(fd, unix.TCSETS, &newState) + if err != nil { + return nil, err + } + + defer unix.IoctlSetTermios(fd, unix.TCSETS, &oldState) + + var buf [16]byte + var ret []byte + for { + n, err := syscall.Read(fd, buf[:]) + if err != nil { + return nil, err + } + if n == 0 { + if len(ret) == 0 { + return nil, io.EOF + } + break + } + if buf[n-1] == '\n' { + n-- + } + ret = append(ret, buf[:n]...) + if n < len(buf) { + break + } + } + + return ret, nil +} + +func makeRaw(fd int) (*State, error) { + // see http://cr.illumos.org/~webrev/andy_js/1060/ + termios, err := unix.IoctlGetTermios(fd, unix.TCGETS) + if err != nil { + return nil, err + } + + oldState := State{state{termios: *termios}} + + termios.Iflag &^= unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON + termios.Oflag &^= unix.OPOST + termios.Lflag &^= unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN + termios.Cflag &^= unix.CSIZE | unix.PARENB + termios.Cflag |= unix.CS8 + termios.Cc[unix.VMIN] = 1 + termios.Cc[unix.VTIME] = 0 + + if err := unix.IoctlSetTermios(fd, unix.TCSETS, termios); err != nil { + return nil, err + } + + return &oldState, nil +} + +func restore(fd int, oldState *State) error { + return unix.IoctlSetTermios(fd, unix.TCSETS, &oldState.termios) +} + +func getState(fd int) (*State, error) { + termios, err := unix.IoctlGetTermios(fd, unix.TCGETS) + if err != nil { + return nil, err + } + + return &State{state{termios: *termios}}, nil +} + +func getSize(fd int) (width, height int, err error) { + ws, err := unix.IoctlGetWinsize(fd, unix.TIOCGWINSZ) + if err != nil { + return 0, 0, err + } + return int(ws.Col), int(ws.Row), nil +} diff --git a/vendor/golang.org/x/term/term_unix.go b/vendor/golang.org/x/term/term_unix.go new file mode 100644 index 0000000000..6849b6ee5b --- /dev/null +++ b/vendor/golang.org/x/term/term_unix.go @@ -0,0 +1,92 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd zos + +package term + +import ( + "golang.org/x/sys/unix" +) + +type state struct { + termios unix.Termios +} + +func isTerminal(fd int) bool { + _, err := unix.IoctlGetTermios(fd, ioctlReadTermios) + return err == nil +} + +func makeRaw(fd int) (*State, error) { + termios, err := unix.IoctlGetTermios(fd, ioctlReadTermios) + if err != nil { + return nil, err + } + + oldState := State{state{termios: *termios}} + + // This attempts to replicate the behaviour documented for cfmakeraw in + // the termios(3) manpage. + termios.Iflag &^= unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON + termios.Oflag &^= unix.OPOST + termios.Lflag &^= unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN + termios.Cflag &^= unix.CSIZE | unix.PARENB + termios.Cflag |= unix.CS8 + termios.Cc[unix.VMIN] = 1 + termios.Cc[unix.VTIME] = 0 + if err := unix.IoctlSetTermios(fd, ioctlWriteTermios, termios); err != nil { + return nil, err + } + + return &oldState, nil +} + +func getState(fd int) (*State, error) { + termios, err := unix.IoctlGetTermios(fd, ioctlReadTermios) + if err != nil { + return nil, err + } + + return &State{state{termios: *termios}}, nil +} + +func restore(fd int, state *State) error { + return unix.IoctlSetTermios(fd, ioctlWriteTermios, &state.termios) +} + +func getSize(fd int) (width, height int, err error) { + ws, err := unix.IoctlGetWinsize(fd, unix.TIOCGWINSZ) + if err != nil { + return -1, -1, err + } + return int(ws.Col), int(ws.Row), nil +} + +// passwordReader is an io.Reader that reads from a specific file descriptor. +type passwordReader int + +func (r passwordReader) Read(buf []byte) (int, error) { + return unix.Read(int(r), buf) +} + +func readPassword(fd int) ([]byte, error) { + termios, err := unix.IoctlGetTermios(fd, ioctlReadTermios) + if err != nil { + return nil, err + } + + newState := *termios + newState.Lflag &^= unix.ECHO + newState.Lflag |= unix.ICANON | unix.ISIG + newState.Iflag |= unix.ICRNL + if err := unix.IoctlSetTermios(fd, ioctlWriteTermios, &newState); err != nil { + return nil, err + } + + defer unix.IoctlSetTermios(fd, ioctlWriteTermios, termios) + + return readPasswordLine(passwordReader(fd)) +} diff --git a/vendor/golang.org/x/term/term_unix_aix.go b/vendor/golang.org/x/term/term_unix_aix.go new file mode 100644 index 0000000000..2d5efd26ad --- /dev/null +++ b/vendor/golang.org/x/term/term_unix_aix.go @@ -0,0 +1,10 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package term + +import "golang.org/x/sys/unix" + +const ioctlReadTermios = unix.TCGETS +const ioctlWriteTermios = unix.TCSETS diff --git a/vendor/golang.org/x/term/term_unix_bsd.go b/vendor/golang.org/x/term/term_unix_bsd.go new file mode 100644 index 0000000000..853b3d6986 --- /dev/null +++ b/vendor/golang.org/x/term/term_unix_bsd.go @@ -0,0 +1,13 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build darwin || dragonfly || freebsd || netbsd || openbsd +// +build darwin dragonfly freebsd netbsd openbsd + +package term + +import "golang.org/x/sys/unix" + +const ioctlReadTermios = unix.TIOCGETA +const ioctlWriteTermios = unix.TIOCSETA diff --git a/vendor/golang.org/x/term/term_unix_linux.go b/vendor/golang.org/x/term/term_unix_linux.go new file mode 100644 index 0000000000..2d5efd26ad --- /dev/null +++ b/vendor/golang.org/x/term/term_unix_linux.go @@ -0,0 +1,10 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package term + +import "golang.org/x/sys/unix" + +const ioctlReadTermios = unix.TCGETS +const ioctlWriteTermios = unix.TCSETS diff --git a/vendor/golang.org/x/term/term_unix_zos.go b/vendor/golang.org/x/term/term_unix_zos.go new file mode 100644 index 0000000000..b85ab89989 --- /dev/null +++ b/vendor/golang.org/x/term/term_unix_zos.go @@ -0,0 +1,10 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package term + +import "golang.org/x/sys/unix" + +const ioctlReadTermios = unix.TCGETS +const ioctlWriteTermios = unix.TCSETS diff --git a/vendor/golang.org/x/term/term_unsupported.go b/vendor/golang.org/x/term/term_unsupported.go new file mode 100644 index 0000000000..f1df850651 --- /dev/null +++ b/vendor/golang.org/x/term/term_unsupported.go @@ -0,0 +1,39 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !zos && !windows && !solaris && !plan9 +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!zos,!windows,!solaris,!plan9 + +package term + +import ( + "fmt" + "runtime" +) + +type state struct{} + +func isTerminal(fd int) bool { + return false +} + +func makeRaw(fd int) (*State, error) { + return nil, fmt.Errorf("terminal: MakeRaw not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func getState(fd int) (*State, error) { + return nil, fmt.Errorf("terminal: GetState not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func restore(fd int, state *State) error { + return fmt.Errorf("terminal: Restore not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func getSize(fd int) (width, height int, err error) { + return 0, 0, fmt.Errorf("terminal: GetSize not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func readPassword(fd int) ([]byte, error) { + return nil, fmt.Errorf("terminal: ReadPassword not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} diff --git a/vendor/golang.org/x/term/term_windows.go b/vendor/golang.org/x/term/term_windows.go new file mode 100644 index 0000000000..465f560604 --- /dev/null +++ b/vendor/golang.org/x/term/term_windows.go @@ -0,0 +1,79 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package term + +import ( + "os" + + "golang.org/x/sys/windows" +) + +type state struct { + mode uint32 +} + +func isTerminal(fd int) bool { + var st uint32 + err := windows.GetConsoleMode(windows.Handle(fd), &st) + return err == nil +} + +func makeRaw(fd int) (*State, error) { + var st uint32 + if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil { + return nil, err + } + raw := st &^ (windows.ENABLE_ECHO_INPUT | windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT) + if err := windows.SetConsoleMode(windows.Handle(fd), raw); err != nil { + return nil, err + } + return &State{state{st}}, nil +} + +func getState(fd int) (*State, error) { + var st uint32 + if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil { + return nil, err + } + return &State{state{st}}, nil +} + +func restore(fd int, state *State) error { + return windows.SetConsoleMode(windows.Handle(fd), state.mode) +} + +func getSize(fd int) (width, height int, err error) { + var info windows.ConsoleScreenBufferInfo + if err := windows.GetConsoleScreenBufferInfo(windows.Handle(fd), &info); err != nil { + return 0, 0, err + } + return int(info.Window.Right - info.Window.Left + 1), int(info.Window.Bottom - info.Window.Top + 1), nil +} + +func readPassword(fd int) ([]byte, error) { + var st uint32 + if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil { + return nil, err + } + old := st + + st &^= (windows.ENABLE_ECHO_INPUT | windows.ENABLE_LINE_INPUT) + st |= (windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_PROCESSED_INPUT) + if err := windows.SetConsoleMode(windows.Handle(fd), st); err != nil { + return nil, err + } + + defer windows.SetConsoleMode(windows.Handle(fd), old) + + var h windows.Handle + p, _ := windows.GetCurrentProcess() + if err := windows.DuplicateHandle(p, windows.Handle(fd), p, &h, 0, false, windows.DUPLICATE_SAME_ACCESS); err != nil { + return nil, err + } + + f := os.NewFile(uintptr(h), "stdin") + defer f.Close() + return readPasswordLine(f) +} diff --git a/vendor/golang.org/x/term/terminal.go b/vendor/golang.org/x/term/terminal.go new file mode 100644 index 0000000000..535ab8257c --- /dev/null +++ b/vendor/golang.org/x/term/terminal.go @@ -0,0 +1,987 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package term + +import ( + "bytes" + "io" + "runtime" + "strconv" + "sync" + "unicode/utf8" +) + +// EscapeCodes contains escape sequences that can be written to the terminal in +// order to achieve different styles of text. +type EscapeCodes struct { + // Foreground colors + Black, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte + + // Reset all attributes + Reset []byte +} + +var vt100EscapeCodes = EscapeCodes{ + Black: []byte{keyEscape, '[', '3', '0', 'm'}, + Red: []byte{keyEscape, '[', '3', '1', 'm'}, + Green: []byte{keyEscape, '[', '3', '2', 'm'}, + Yellow: []byte{keyEscape, '[', '3', '3', 'm'}, + Blue: []byte{keyEscape, '[', '3', '4', 'm'}, + Magenta: []byte{keyEscape, '[', '3', '5', 'm'}, + Cyan: []byte{keyEscape, '[', '3', '6', 'm'}, + White: []byte{keyEscape, '[', '3', '7', 'm'}, + + Reset: []byte{keyEscape, '[', '0', 'm'}, +} + +// Terminal contains the state for running a VT100 terminal that is capable of +// reading lines of input. +type Terminal struct { + // AutoCompleteCallback, if non-null, is called for each keypress with + // the full input line and the current position of the cursor (in + // bytes, as an index into |line|). If it returns ok=false, the key + // press is processed normally. Otherwise it returns a replacement line + // and the new cursor position. + AutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool) + + // Escape contains a pointer to the escape codes for this terminal. + // It's always a valid pointer, although the escape codes themselves + // may be empty if the terminal doesn't support them. + Escape *EscapeCodes + + // lock protects the terminal and the state in this object from + // concurrent processing of a key press and a Write() call. + lock sync.Mutex + + c io.ReadWriter + prompt []rune + + // line is the current line being entered. + line []rune + // pos is the logical position of the cursor in line + pos int + // echo is true if local echo is enabled + echo bool + // pasteActive is true iff there is a bracketed paste operation in + // progress. + pasteActive bool + + // cursorX contains the current X value of the cursor where the left + // edge is 0. cursorY contains the row number where the first row of + // the current line is 0. + cursorX, cursorY int + // maxLine is the greatest value of cursorY so far. + maxLine int + + termWidth, termHeight int + + // outBuf contains the terminal data to be sent. + outBuf []byte + // remainder contains the remainder of any partial key sequences after + // a read. It aliases into inBuf. + remainder []byte + inBuf [256]byte + + // history contains previously entered commands so that they can be + // accessed with the up and down keys. + history stRingBuffer + // historyIndex stores the currently accessed history entry, where zero + // means the immediately previous entry. + historyIndex int + // When navigating up and down the history it's possible to return to + // the incomplete, initial line. That value is stored in + // historyPending. + historyPending string +} + +// NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is +// a local terminal, that terminal must first have been put into raw mode. +// prompt is a string that is written at the start of each input line (i.e. +// "> "). +func NewTerminal(c io.ReadWriter, prompt string) *Terminal { + return &Terminal{ + Escape: &vt100EscapeCodes, + c: c, + prompt: []rune(prompt), + termWidth: 80, + termHeight: 24, + echo: true, + historyIndex: -1, + } +} + +const ( + keyCtrlC = 3 + keyCtrlD = 4 + keyCtrlU = 21 + keyEnter = '\r' + keyEscape = 27 + keyBackspace = 127 + keyUnknown = 0xd800 /* UTF-16 surrogate area */ + iota + keyUp + keyDown + keyLeft + keyRight + keyAltLeft + keyAltRight + keyHome + keyEnd + keyDeleteWord + keyDeleteLine + keyClearScreen + keyPasteStart + keyPasteEnd +) + +var ( + crlf = []byte{'\r', '\n'} + pasteStart = []byte{keyEscape, '[', '2', '0', '0', '~'} + pasteEnd = []byte{keyEscape, '[', '2', '0', '1', '~'} +) + +// bytesToKey tries to parse a key sequence from b. If successful, it returns +// the key and the remainder of the input. Otherwise it returns utf8.RuneError. +func bytesToKey(b []byte, pasteActive bool) (rune, []byte) { + if len(b) == 0 { + return utf8.RuneError, nil + } + + if !pasteActive { + switch b[0] { + case 1: // ^A + return keyHome, b[1:] + case 2: // ^B + return keyLeft, b[1:] + case 5: // ^E + return keyEnd, b[1:] + case 6: // ^F + return keyRight, b[1:] + case 8: // ^H + return keyBackspace, b[1:] + case 11: // ^K + return keyDeleteLine, b[1:] + case 12: // ^L + return keyClearScreen, b[1:] + case 23: // ^W + return keyDeleteWord, b[1:] + case 14: // ^N + return keyDown, b[1:] + case 16: // ^P + return keyUp, b[1:] + } + } + + if b[0] != keyEscape { + if !utf8.FullRune(b) { + return utf8.RuneError, b + } + r, l := utf8.DecodeRune(b) + return r, b[l:] + } + + if !pasteActive && len(b) >= 3 && b[0] == keyEscape && b[1] == '[' { + switch b[2] { + case 'A': + return keyUp, b[3:] + case 'B': + return keyDown, b[3:] + case 'C': + return keyRight, b[3:] + case 'D': + return keyLeft, b[3:] + case 'H': + return keyHome, b[3:] + case 'F': + return keyEnd, b[3:] + } + } + + if !pasteActive && len(b) >= 6 && b[0] == keyEscape && b[1] == '[' && b[2] == '1' && b[3] == ';' && b[4] == '3' { + switch b[5] { + case 'C': + return keyAltRight, b[6:] + case 'D': + return keyAltLeft, b[6:] + } + } + + if !pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteStart) { + return keyPasteStart, b[6:] + } + + if pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteEnd) { + return keyPasteEnd, b[6:] + } + + // If we get here then we have a key that we don't recognise, or a + // partial sequence. It's not clear how one should find the end of a + // sequence without knowing them all, but it seems that [a-zA-Z~] only + // appears at the end of a sequence. + for i, c := range b[0:] { + if c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '~' { + return keyUnknown, b[i+1:] + } + } + + return utf8.RuneError, b +} + +// queue appends data to the end of t.outBuf +func (t *Terminal) queue(data []rune) { + t.outBuf = append(t.outBuf, []byte(string(data))...) +} + +var eraseUnderCursor = []rune{' ', keyEscape, '[', 'D'} +var space = []rune{' '} + +func isPrintable(key rune) bool { + isInSurrogateArea := key >= 0xd800 && key <= 0xdbff + return key >= 32 && !isInSurrogateArea +} + +// moveCursorToPos appends data to t.outBuf which will move the cursor to the +// given, logical position in the text. +func (t *Terminal) moveCursorToPos(pos int) { + if !t.echo { + return + } + + x := visualLength(t.prompt) + pos + y := x / t.termWidth + x = x % t.termWidth + + up := 0 + if y < t.cursorY { + up = t.cursorY - y + } + + down := 0 + if y > t.cursorY { + down = y - t.cursorY + } + + left := 0 + if x < t.cursorX { + left = t.cursorX - x + } + + right := 0 + if x > t.cursorX { + right = x - t.cursorX + } + + t.cursorX = x + t.cursorY = y + t.move(up, down, left, right) +} + +func (t *Terminal) move(up, down, left, right int) { + m := []rune{} + + // 1 unit up can be expressed as ^[[A or ^[A + // 5 units up can be expressed as ^[[5A + + if up == 1 { + m = append(m, keyEscape, '[', 'A') + } else if up > 1 { + m = append(m, keyEscape, '[') + m = append(m, []rune(strconv.Itoa(up))...) + m = append(m, 'A') + } + + if down == 1 { + m = append(m, keyEscape, '[', 'B') + } else if down > 1 { + m = append(m, keyEscape, '[') + m = append(m, []rune(strconv.Itoa(down))...) + m = append(m, 'B') + } + + if right == 1 { + m = append(m, keyEscape, '[', 'C') + } else if right > 1 { + m = append(m, keyEscape, '[') + m = append(m, []rune(strconv.Itoa(right))...) + m = append(m, 'C') + } + + if left == 1 { + m = append(m, keyEscape, '[', 'D') + } else if left > 1 { + m = append(m, keyEscape, '[') + m = append(m, []rune(strconv.Itoa(left))...) + m = append(m, 'D') + } + + t.queue(m) +} + +func (t *Terminal) clearLineToRight() { + op := []rune{keyEscape, '[', 'K'} + t.queue(op) +} + +const maxLineLength = 4096 + +func (t *Terminal) setLine(newLine []rune, newPos int) { + if t.echo { + t.moveCursorToPos(0) + t.writeLine(newLine) + for i := len(newLine); i < len(t.line); i++ { + t.writeLine(space) + } + t.moveCursorToPos(newPos) + } + t.line = newLine + t.pos = newPos +} + +func (t *Terminal) advanceCursor(places int) { + t.cursorX += places + t.cursorY += t.cursorX / t.termWidth + if t.cursorY > t.maxLine { + t.maxLine = t.cursorY + } + t.cursorX = t.cursorX % t.termWidth + + if places > 0 && t.cursorX == 0 { + // Normally terminals will advance the current position + // when writing a character. But that doesn't happen + // for the last character in a line. However, when + // writing a character (except a new line) that causes + // a line wrap, the position will be advanced two + // places. + // + // So, if we are stopping at the end of a line, we + // need to write a newline so that our cursor can be + // advanced to the next line. + t.outBuf = append(t.outBuf, '\r', '\n') + } +} + +func (t *Terminal) eraseNPreviousChars(n int) { + if n == 0 { + return + } + + if t.pos < n { + n = t.pos + } + t.pos -= n + t.moveCursorToPos(t.pos) + + copy(t.line[t.pos:], t.line[n+t.pos:]) + t.line = t.line[:len(t.line)-n] + if t.echo { + t.writeLine(t.line[t.pos:]) + for i := 0; i < n; i++ { + t.queue(space) + } + t.advanceCursor(n) + t.moveCursorToPos(t.pos) + } +} + +// countToLeftWord returns then number of characters from the cursor to the +// start of the previous word. +func (t *Terminal) countToLeftWord() int { + if t.pos == 0 { + return 0 + } + + pos := t.pos - 1 + for pos > 0 { + if t.line[pos] != ' ' { + break + } + pos-- + } + for pos > 0 { + if t.line[pos] == ' ' { + pos++ + break + } + pos-- + } + + return t.pos - pos +} + +// countToRightWord returns then number of characters from the cursor to the +// start of the next word. +func (t *Terminal) countToRightWord() int { + pos := t.pos + for pos < len(t.line) { + if t.line[pos] == ' ' { + break + } + pos++ + } + for pos < len(t.line) { + if t.line[pos] != ' ' { + break + } + pos++ + } + return pos - t.pos +} + +// visualLength returns the number of visible glyphs in s. +func visualLength(runes []rune) int { + inEscapeSeq := false + length := 0 + + for _, r := range runes { + switch { + case inEscapeSeq: + if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') { + inEscapeSeq = false + } + case r == '\x1b': + inEscapeSeq = true + default: + length++ + } + } + + return length +} + +// handleKey processes the given key and, optionally, returns a line of text +// that the user has entered. +func (t *Terminal) handleKey(key rune) (line string, ok bool) { + if t.pasteActive && key != keyEnter { + t.addKeyToLine(key) + return + } + + switch key { + case keyBackspace: + if t.pos == 0 { + return + } + t.eraseNPreviousChars(1) + case keyAltLeft: + // move left by a word. + t.pos -= t.countToLeftWord() + t.moveCursorToPos(t.pos) + case keyAltRight: + // move right by a word. + t.pos += t.countToRightWord() + t.moveCursorToPos(t.pos) + case keyLeft: + if t.pos == 0 { + return + } + t.pos-- + t.moveCursorToPos(t.pos) + case keyRight: + if t.pos == len(t.line) { + return + } + t.pos++ + t.moveCursorToPos(t.pos) + case keyHome: + if t.pos == 0 { + return + } + t.pos = 0 + t.moveCursorToPos(t.pos) + case keyEnd: + if t.pos == len(t.line) { + return + } + t.pos = len(t.line) + t.moveCursorToPos(t.pos) + case keyUp: + entry, ok := t.history.NthPreviousEntry(t.historyIndex + 1) + if !ok { + return "", false + } + if t.historyIndex == -1 { + t.historyPending = string(t.line) + } + t.historyIndex++ + runes := []rune(entry) + t.setLine(runes, len(runes)) + case keyDown: + switch t.historyIndex { + case -1: + return + case 0: + runes := []rune(t.historyPending) + t.setLine(runes, len(runes)) + t.historyIndex-- + default: + entry, ok := t.history.NthPreviousEntry(t.historyIndex - 1) + if ok { + t.historyIndex-- + runes := []rune(entry) + t.setLine(runes, len(runes)) + } + } + case keyEnter: + t.moveCursorToPos(len(t.line)) + t.queue([]rune("\r\n")) + line = string(t.line) + ok = true + t.line = t.line[:0] + t.pos = 0 + t.cursorX = 0 + t.cursorY = 0 + t.maxLine = 0 + case keyDeleteWord: + // Delete zero or more spaces and then one or more characters. + t.eraseNPreviousChars(t.countToLeftWord()) + case keyDeleteLine: + // Delete everything from the current cursor position to the + // end of line. + for i := t.pos; i < len(t.line); i++ { + t.queue(space) + t.advanceCursor(1) + } + t.line = t.line[:t.pos] + t.moveCursorToPos(t.pos) + case keyCtrlD: + // Erase the character under the current position. + // The EOF case when the line is empty is handled in + // readLine(). + if t.pos < len(t.line) { + t.pos++ + t.eraseNPreviousChars(1) + } + case keyCtrlU: + t.eraseNPreviousChars(t.pos) + case keyClearScreen: + // Erases the screen and moves the cursor to the home position. + t.queue([]rune("\x1b[2J\x1b[H")) + t.queue(t.prompt) + t.cursorX, t.cursorY = 0, 0 + t.advanceCursor(visualLength(t.prompt)) + t.setLine(t.line, t.pos) + default: + if t.AutoCompleteCallback != nil { + prefix := string(t.line[:t.pos]) + suffix := string(t.line[t.pos:]) + + t.lock.Unlock() + newLine, newPos, completeOk := t.AutoCompleteCallback(prefix+suffix, len(prefix), key) + t.lock.Lock() + + if completeOk { + t.setLine([]rune(newLine), utf8.RuneCount([]byte(newLine)[:newPos])) + return + } + } + if !isPrintable(key) { + return + } + if len(t.line) == maxLineLength { + return + } + t.addKeyToLine(key) + } + return +} + +// addKeyToLine inserts the given key at the current position in the current +// line. +func (t *Terminal) addKeyToLine(key rune) { + if len(t.line) == cap(t.line) { + newLine := make([]rune, len(t.line), 2*(1+len(t.line))) + copy(newLine, t.line) + t.line = newLine + } + t.line = t.line[:len(t.line)+1] + copy(t.line[t.pos+1:], t.line[t.pos:]) + t.line[t.pos] = key + if t.echo { + t.writeLine(t.line[t.pos:]) + } + t.pos++ + t.moveCursorToPos(t.pos) +} + +func (t *Terminal) writeLine(line []rune) { + for len(line) != 0 { + remainingOnLine := t.termWidth - t.cursorX + todo := len(line) + if todo > remainingOnLine { + todo = remainingOnLine + } + t.queue(line[:todo]) + t.advanceCursor(visualLength(line[:todo])) + line = line[todo:] + } +} + +// writeWithCRLF writes buf to w but replaces all occurrences of \n with \r\n. +func writeWithCRLF(w io.Writer, buf []byte) (n int, err error) { + for len(buf) > 0 { + i := bytes.IndexByte(buf, '\n') + todo := len(buf) + if i >= 0 { + todo = i + } + + var nn int + nn, err = w.Write(buf[:todo]) + n += nn + if err != nil { + return n, err + } + buf = buf[todo:] + + if i >= 0 { + if _, err = w.Write(crlf); err != nil { + return n, err + } + n++ + buf = buf[1:] + } + } + + return n, nil +} + +func (t *Terminal) Write(buf []byte) (n int, err error) { + t.lock.Lock() + defer t.lock.Unlock() + + if t.cursorX == 0 && t.cursorY == 0 { + // This is the easy case: there's nothing on the screen that we + // have to move out of the way. + return writeWithCRLF(t.c, buf) + } + + // We have a prompt and possibly user input on the screen. We + // have to clear it first. + t.move(0 /* up */, 0 /* down */, t.cursorX /* left */, 0 /* right */) + t.cursorX = 0 + t.clearLineToRight() + + for t.cursorY > 0 { + t.move(1 /* up */, 0, 0, 0) + t.cursorY-- + t.clearLineToRight() + } + + if _, err = t.c.Write(t.outBuf); err != nil { + return + } + t.outBuf = t.outBuf[:0] + + if n, err = writeWithCRLF(t.c, buf); err != nil { + return + } + + t.writeLine(t.prompt) + if t.echo { + t.writeLine(t.line) + } + + t.moveCursorToPos(t.pos) + + if _, err = t.c.Write(t.outBuf); err != nil { + return + } + t.outBuf = t.outBuf[:0] + return +} + +// ReadPassword temporarily changes the prompt and reads a password, without +// echo, from the terminal. +func (t *Terminal) ReadPassword(prompt string) (line string, err error) { + t.lock.Lock() + defer t.lock.Unlock() + + oldPrompt := t.prompt + t.prompt = []rune(prompt) + t.echo = false + + line, err = t.readLine() + + t.prompt = oldPrompt + t.echo = true + + return +} + +// ReadLine returns a line of input from the terminal. +func (t *Terminal) ReadLine() (line string, err error) { + t.lock.Lock() + defer t.lock.Unlock() + + return t.readLine() +} + +func (t *Terminal) readLine() (line string, err error) { + // t.lock must be held at this point + + if t.cursorX == 0 && t.cursorY == 0 { + t.writeLine(t.prompt) + t.c.Write(t.outBuf) + t.outBuf = t.outBuf[:0] + } + + lineIsPasted := t.pasteActive + + for { + rest := t.remainder + lineOk := false + for !lineOk { + var key rune + key, rest = bytesToKey(rest, t.pasteActive) + if key == utf8.RuneError { + break + } + if !t.pasteActive { + if key == keyCtrlD { + if len(t.line) == 0 { + return "", io.EOF + } + } + if key == keyCtrlC { + return "", io.EOF + } + if key == keyPasteStart { + t.pasteActive = true + if len(t.line) == 0 { + lineIsPasted = true + } + continue + } + } else if key == keyPasteEnd { + t.pasteActive = false + continue + } + if !t.pasteActive { + lineIsPasted = false + } + line, lineOk = t.handleKey(key) + } + if len(rest) > 0 { + n := copy(t.inBuf[:], rest) + t.remainder = t.inBuf[:n] + } else { + t.remainder = nil + } + t.c.Write(t.outBuf) + t.outBuf = t.outBuf[:0] + if lineOk { + if t.echo { + t.historyIndex = -1 + t.history.Add(line) + } + if lineIsPasted { + err = ErrPasteIndicator + } + return + } + + // t.remainder is a slice at the beginning of t.inBuf + // containing a partial key sequence + readBuf := t.inBuf[len(t.remainder):] + var n int + + t.lock.Unlock() + n, err = t.c.Read(readBuf) + t.lock.Lock() + + if err != nil { + return + } + + t.remainder = t.inBuf[:n+len(t.remainder)] + } +} + +// SetPrompt sets the prompt to be used when reading subsequent lines. +func (t *Terminal) SetPrompt(prompt string) { + t.lock.Lock() + defer t.lock.Unlock() + + t.prompt = []rune(prompt) +} + +func (t *Terminal) clearAndRepaintLinePlusNPrevious(numPrevLines int) { + // Move cursor to column zero at the start of the line. + t.move(t.cursorY, 0, t.cursorX, 0) + t.cursorX, t.cursorY = 0, 0 + t.clearLineToRight() + for t.cursorY < numPrevLines { + // Move down a line + t.move(0, 1, 0, 0) + t.cursorY++ + t.clearLineToRight() + } + // Move back to beginning. + t.move(t.cursorY, 0, 0, 0) + t.cursorX, t.cursorY = 0, 0 + + t.queue(t.prompt) + t.advanceCursor(visualLength(t.prompt)) + t.writeLine(t.line) + t.moveCursorToPos(t.pos) +} + +func (t *Terminal) SetSize(width, height int) error { + t.lock.Lock() + defer t.lock.Unlock() + + if width == 0 { + width = 1 + } + + oldWidth := t.termWidth + t.termWidth, t.termHeight = width, height + + switch { + case width == oldWidth: + // If the width didn't change then nothing else needs to be + // done. + return nil + case len(t.line) == 0 && t.cursorX == 0 && t.cursorY == 0: + // If there is nothing on current line and no prompt printed, + // just do nothing + return nil + case width < oldWidth: + // Some terminals (e.g. xterm) will truncate lines that were + // too long when shinking. Others, (e.g. gnome-terminal) will + // attempt to wrap them. For the former, repainting t.maxLine + // works great, but that behaviour goes badly wrong in the case + // of the latter because they have doubled every full line. + + // We assume that we are working on a terminal that wraps lines + // and adjust the cursor position based on every previous line + // wrapping and turning into two. This causes the prompt on + // xterms to move upwards, which isn't great, but it avoids a + // huge mess with gnome-terminal. + if t.cursorX >= t.termWidth { + t.cursorX = t.termWidth - 1 + } + t.cursorY *= 2 + t.clearAndRepaintLinePlusNPrevious(t.maxLine * 2) + case width > oldWidth: + // If the terminal expands then our position calculations will + // be wrong in the future because we think the cursor is + // |t.pos| chars into the string, but there will be a gap at + // the end of any wrapped line. + // + // But the position will actually be correct until we move, so + // we can move back to the beginning and repaint everything. + t.clearAndRepaintLinePlusNPrevious(t.maxLine) + } + + _, err := t.c.Write(t.outBuf) + t.outBuf = t.outBuf[:0] + return err +} + +type pasteIndicatorError struct{} + +func (pasteIndicatorError) Error() string { + return "terminal: ErrPasteIndicator not correctly handled" +} + +// ErrPasteIndicator may be returned from ReadLine as the error, in addition +// to valid line data. It indicates that bracketed paste mode is enabled and +// that the returned line consists only of pasted data. Programs may wish to +// interpret pasted data more literally than typed data. +var ErrPasteIndicator = pasteIndicatorError{} + +// SetBracketedPasteMode requests that the terminal bracket paste operations +// with markers. Not all terminals support this but, if it is supported, then +// enabling this mode will stop any autocomplete callback from running due to +// pastes. Additionally, any lines that are completely pasted will be returned +// from ReadLine with the error set to ErrPasteIndicator. +func (t *Terminal) SetBracketedPasteMode(on bool) { + if on { + io.WriteString(t.c, "\x1b[?2004h") + } else { + io.WriteString(t.c, "\x1b[?2004l") + } +} + +// stRingBuffer is a ring buffer of strings. +type stRingBuffer struct { + // entries contains max elements. + entries []string + max int + // head contains the index of the element most recently added to the ring. + head int + // size contains the number of elements in the ring. + size int +} + +func (s *stRingBuffer) Add(a string) { + if s.entries == nil { + const defaultNumEntries = 100 + s.entries = make([]string, defaultNumEntries) + s.max = defaultNumEntries + } + + s.head = (s.head + 1) % s.max + s.entries[s.head] = a + if s.size < s.max { + s.size++ + } +} + +// NthPreviousEntry returns the value passed to the nth previous call to Add. +// If n is zero then the immediately prior value is returned, if one, then the +// next most recent, and so on. If such an element doesn't exist then ok is +// false. +func (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) { + if n >= s.size { + return "", false + } + index := s.head - n + if index < 0 { + index += s.max + } + return s.entries[index], true +} + +// readPasswordLine reads from reader until it finds \n or io.EOF. +// The slice returned does not include the \n. +// readPasswordLine also ignores any \r it finds. +// Windows uses \r as end of line. So, on Windows, readPasswordLine +// reads until it finds \r and ignores any \n it finds during processing. +func readPasswordLine(reader io.Reader) ([]byte, error) { + var buf [1]byte + var ret []byte + + for { + n, err := reader.Read(buf[:]) + if n > 0 { + switch buf[0] { + case '\b': + if len(ret) > 0 { + ret = ret[:len(ret)-1] + } + case '\n': + if runtime.GOOS != "windows" { + return ret, nil + } + // otherwise ignore \n + case '\r': + if runtime.GOOS == "windows" { + return ret, nil + } + // otherwise ignore \r + default: + ret = append(ret, buf[0]) + } + continue + } + if err != nil { + if err == io.EOF && len(ret) > 0 { + return ret, nil + } + return ret, err + } + } +} diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go b/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go index e4c62289f9..8a7392c4a1 100644 --- a/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go +++ b/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build go1.10 // +build go1.10 package bidirule diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go b/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go index 02b9e1e9d4..bb0a920018 100644 --- a/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go +++ b/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !go1.10 // +build !go1.10 package bidirule diff --git a/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go index d8c94e1bd1..42fa8d72ce 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.10 && !go1.13 // +build go1.10,!go1.13 package bidi diff --git a/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go index 16b11db538..56a0e1ea21 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.13 && !go1.14 // +build go1.13,!go1.14 package bidi diff --git a/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go index 647f2d4279..baacf32b43 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.14 && !go1.16 // +build go1.14,!go1.16 package bidi diff --git a/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go index c937d0976f..f248effae1 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.16 // +build go1.16 package bidi diff --git a/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go index 0ca0193ebe..f517fdb202 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build !go1.10 // +build !go1.10 package bidi diff --git a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go index 26fbd55a12..f5a0788277 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.10 && !go1.13 // +build go1.10,!go1.13 package norm diff --git a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go index 2c58f09baa..cb7239c437 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.13 && !go1.14 // +build go1.13,!go1.14 package norm diff --git a/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go index 7e1ae096e5..11b2733001 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.14 && !go1.16 // +build go1.14,!go1.16 package norm diff --git a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go index 9ea1b42140..96a130d30e 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.16 // +build go1.16 package norm diff --git a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go index 9429069291..0175eae50a 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build !go1.10 // +build !go1.10 package norm diff --git a/vendor/golang.org/x/text/width/tables10.0.0.go b/vendor/golang.org/x/text/width/tables10.0.0.go index decb8e4809..186b1d4efa 100644 --- a/vendor/golang.org/x/text/width/tables10.0.0.go +++ b/vendor/golang.org/x/text/width/tables10.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.10 && !go1.13 // +build go1.10,!go1.13 package width diff --git a/vendor/golang.org/x/text/width/tables11.0.0.go b/vendor/golang.org/x/text/width/tables11.0.0.go index 3c75e428fd..990f7622f1 100644 --- a/vendor/golang.org/x/text/width/tables11.0.0.go +++ b/vendor/golang.org/x/text/width/tables11.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.13 && !go1.14 // +build go1.13,!go1.14 package width diff --git a/vendor/golang.org/x/text/width/tables12.0.0.go b/vendor/golang.org/x/text/width/tables12.0.0.go index 543942b9e7..85296297e3 100644 --- a/vendor/golang.org/x/text/width/tables12.0.0.go +++ b/vendor/golang.org/x/text/width/tables12.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.14 && !go1.16 // +build go1.14,!go1.16 package width diff --git a/vendor/golang.org/x/text/width/tables13.0.0.go b/vendor/golang.org/x/text/width/tables13.0.0.go index 804264ca67..bac3f1aee3 100644 --- a/vendor/golang.org/x/text/width/tables13.0.0.go +++ b/vendor/golang.org/x/text/width/tables13.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build go1.16 // +build go1.16 package width diff --git a/vendor/golang.org/x/text/width/tables9.0.0.go b/vendor/golang.org/x/text/width/tables9.0.0.go index 7069e26345..b3db84f6f9 100644 --- a/vendor/golang.org/x/text/width/tables9.0.0.go +++ b/vendor/golang.org/x/text/width/tables9.0.0.go @@ -1,5 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build !go1.10 // +build !go1.10 package width diff --git a/vendor/golang.org/x/tools/go/ast/astutil/util.go b/vendor/golang.org/x/tools/go/ast/astutil/util.go index 7630629824..919d5305ab 100644 --- a/vendor/golang.org/x/tools/go/ast/astutil/util.go +++ b/vendor/golang.org/x/tools/go/ast/astutil/util.go @@ -1,3 +1,7 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + package astutil import "go/ast" diff --git a/vendor/golang.org/x/tools/imports/forward.go b/vendor/golang.org/x/tools/imports/forward.go index a4e40adba0..8be18a66b3 100644 --- a/vendor/golang.org/x/tools/imports/forward.go +++ b/vendor/golang.org/x/tools/imports/forward.go @@ -1,3 +1,7 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + // Package imports implements a Go pretty-printer (like package "go/format") // that also adds or removes import statements as necessary. package imports // import "golang.org/x/tools/imports" diff --git a/vendor/golang.org/x/tools/internal/event/core/event.go b/vendor/golang.org/x/tools/internal/event/core/event.go index e37b494915..a6cf0e64a4 100644 --- a/vendor/golang.org/x/tools/internal/event/core/event.go +++ b/vendor/golang.org/x/tools/internal/event/core/event.go @@ -12,7 +12,7 @@ import ( "golang.org/x/tools/internal/event/label" ) -// Event holds the information about an event of note that ocurred. +// Event holds the information about an event of note that occurred. type Event struct { at time.Time diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go index f516e17623..8659a0c5da 100644 --- a/vendor/golang.org/x/tools/internal/gocommand/invoke.go +++ b/vendor/golang.org/x/tools/internal/gocommand/invoke.go @@ -9,10 +9,11 @@ import ( "bytes" "context" "fmt" + exec "golang.org/x/sys/execabs" "io" "os" - "os/exec" "regexp" + "strconv" "strings" "sync" "time" @@ -130,6 +131,12 @@ type Invocation struct { Verb string Args []string BuildFlags []string + ModFlag string + ModFile string + Overlay string + // If CleanEnv is set, the invocation will run only with the environment + // in Env, not starting with os.Environ. + CleanEnv bool Env []string WorkingDir string Logf func(format string, args ...interface{}) @@ -158,17 +165,41 @@ func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error { } goArgs := []string{i.Verb} + + appendModFile := func() { + if i.ModFile != "" { + goArgs = append(goArgs, "-modfile="+i.ModFile) + } + } + appendModFlag := func() { + if i.ModFlag != "" { + goArgs = append(goArgs, "-mod="+i.ModFlag) + } + } + appendOverlayFlag := func() { + if i.Overlay != "" { + goArgs = append(goArgs, "-overlay="+i.Overlay) + } + } + switch i.Verb { + case "env", "version": + goArgs = append(goArgs, i.Args...) case "mod": - // mod needs the sub-verb before build flags. + // mod needs the sub-verb before flags. goArgs = append(goArgs, i.Args[0]) - goArgs = append(goArgs, i.BuildFlags...) + appendModFile() goArgs = append(goArgs, i.Args[1:]...) - case "env": - // env doesn't take build flags. + case "get": + goArgs = append(goArgs, i.BuildFlags...) + appendModFile() goArgs = append(goArgs, i.Args...) - default: + + default: // notably list and build. goArgs = append(goArgs, i.BuildFlags...) + appendModFile() + appendModFlag() + appendOverlayFlag() goArgs = append(goArgs, i.Args...) } cmd := exec.Command("go", goArgs...) @@ -180,7 +211,10 @@ func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error { // The Go stdlib has a special feature where if the cwd and the PWD are the // same node then it trusts the PWD, so by setting it in the env for the child // process we fix up all the paths returned by the go command. - cmd.Env = append(os.Environ(), i.Env...) + if !i.CleanEnv { + cmd.Env = os.Environ() + } + cmd.Env = append(cmd.Env, i.Env...) if i.WorkingDir != "" { cmd.Env = append(cmd.Env, "PWD="+i.WorkingDir) cmd.Dir = i.WorkingDir @@ -221,10 +255,19 @@ func runCmdContext(ctx context.Context, cmd *exec.Cmd) error { func cmdDebugStr(cmd *exec.Cmd) string { env := make(map[string]string) for _, kv := range cmd.Env { - split := strings.Split(kv, "=") + split := strings.SplitN(kv, "=", 2) k, v := split[0], split[1] env[k] = v } - return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v go %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], cmd.Args) + var args []string + for _, arg := range cmd.Args { + quoted := strconv.Quote(arg) + if quoted[1:len(quoted)-1] != arg || strings.Contains(arg, " ") { + args = append(args, quoted) + } else { + args = append(args, arg) + } + } + return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], strings.Join(args, " ")) } diff --git a/vendor/golang.org/x/tools/internal/gocommand/version.go b/vendor/golang.org/x/tools/internal/gocommand/version.go new file mode 100644 index 0000000000..0cebac6e66 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gocommand/version.go @@ -0,0 +1,51 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package gocommand + +import ( + "context" + "fmt" + "strings" +) + +// GoVersion checks the go version by running "go list" with modules off. +// It returns the X in Go 1.X. +func GoVersion(ctx context.Context, inv Invocation, r *Runner) (int, error) { + inv.Verb = "list" + inv.Args = []string{"-e", "-f", `{{context.ReleaseTags}}`} + inv.Env = append(append([]string{}, inv.Env...), "GO111MODULE=off") + // Unset any unneeded flags, and remove them from BuildFlags, if they're + // present. + inv.ModFile = "" + inv.ModFlag = "" + var buildFlags []string + for _, flag := range inv.BuildFlags { + // Flags can be prefixed by one or two dashes. + f := strings.TrimPrefix(strings.TrimPrefix(flag, "-"), "-") + if strings.HasPrefix(f, "mod=") || strings.HasPrefix(f, "modfile=") { + continue + } + buildFlags = append(buildFlags, flag) + } + inv.BuildFlags = buildFlags + stdoutBytes, err := r.Run(ctx, inv) + if err != nil { + return 0, err + } + stdout := stdoutBytes.String() + if len(stdout) < 3 { + return 0, fmt.Errorf("bad ReleaseTags output: %q", stdout) + } + // Split up "[go1.1 go1.15]" + tags := strings.Fields(stdout[1 : len(stdout)-2]) + for i := len(tags) - 1; i >= 0; i-- { + var version int + if _, err := fmt.Sscanf(tags[i], "go1.%d", &version); err != nil { + continue + } + return version, nil + } + return 0, fmt.Errorf("no parseable ReleaseTags in %v", tags) +} diff --git a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go index 390cb9db79..925ff53560 100644 --- a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go +++ b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go @@ -10,7 +10,6 @@ import ( "bufio" "bytes" "fmt" - "go/build" "io/ioutil" "log" "os" @@ -47,16 +46,6 @@ type Root struct { Type RootType } -// SrcDirsRoots returns the roots from build.Default.SrcDirs(). Not modules-compatible. -func SrcDirsRoots(ctx *build.Context) []Root { - var roots []Root - roots = append(roots, Root{filepath.Join(ctx.GOROOT, "src"), RootGOROOT}) - for _, p := range filepath.SplitList(ctx.GOPATH) { - roots = append(roots, Root{filepath.Join(p, "src"), RootGOPATH}) - } - return roots -} - // Walk walks Go source directories ($GOROOT, $GOPATH, etc) to find packages. // For each package found, add will be called (concurrently) with the absolute // paths of the containing source directory and the package directory. diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go index ecd13e87ad..d859617b77 100644 --- a/vendor/golang.org/x/tools/internal/imports/fix.go +++ b/vendor/golang.org/x/tools/internal/imports/fix.go @@ -83,7 +83,7 @@ type ImportFix struct { IdentName string // FixType is the type of fix this is (AddImport, DeleteImport, SetImportName). FixType ImportFixType - Relevance int // see pkg + Relevance float64 // see pkg } // An ImportInfo represents a single import statement. @@ -573,7 +573,9 @@ func getFixes(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv return fixes, nil } - addStdlibCandidates(p, p.missingRefs) + if err := addStdlibCandidates(p, p.missingRefs); err != nil { + return nil, err + } p.assumeSiblingImportsValid() if fixes, done := p.fix(); done { return fixes, nil @@ -590,9 +592,9 @@ func getFixes(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv return fixes, nil } -// Highest relevance, used for the standard library. Chosen arbitrarily to -// match pre-existing gopls code. -const MaxRelevance = 7 +// MaxRelevance is the highest relevance, used for the standard library. +// Chosen arbitrarily to match pre-existing gopls code. +const MaxRelevance = 7.0 // getCandidatePkgs works with the passed callback to find all acceptable packages. // It deduplicates by import path, and uses a cached stdlib rather than reading @@ -601,22 +603,28 @@ func getCandidatePkgs(ctx context.Context, wrappedCallback *scanCallback, filena notSelf := func(p *pkg) bool { return p.packageName != filePkg || p.dir != filepath.Dir(filename) } + goenv, err := env.goEnv() + if err != nil { + return err + } + + var mu sync.Mutex // to guard asynchronous access to dupCheck + dupCheck := map[string]struct{}{} + // Start off with the standard library. for importPath, exports := range stdlib { p := &pkg{ - dir: filepath.Join(env.goroot(), "src", importPath), + dir: filepath.Join(goenv["GOROOT"], "src", importPath), importPathShort: importPath, packageName: path.Base(importPath), relevance: MaxRelevance, } - if notSelf(p) && wrappedCallback.packageNameLoaded(p) { + dupCheck[importPath] = struct{}{} + if notSelf(p) && wrappedCallback.dirFound(p) && wrappedCallback.packageNameLoaded(p) { wrappedCallback.exportsLoaded(p, exports) } } - var mu sync.Mutex - dupCheck := map[string]struct{}{} - scanFilter := &scanCallback{ rootFound: func(root gopathwalk.Root) bool { // Exclude goroot results -- getting them is relatively expensive, not cached, @@ -652,8 +660,8 @@ func getCandidatePkgs(ctx context.Context, wrappedCallback *scanCallback, filena return resolver.scan(ctx, scanFilter) } -func ScoreImportPaths(ctx context.Context, env *ProcessEnv, paths []string) (map[string]int, error) { - result := make(map[string]int) +func ScoreImportPaths(ctx context.Context, env *ProcessEnv, paths []string) (map[string]float64, error) { + result := make(map[string]float64) resolver, err := env.GetResolver() if err != nil { return nil, err @@ -687,8 +695,8 @@ func candidateImportName(pkg *pkg) string { return "" } -// GetAllCandidates gets all of the packages starting with prefix that can be -// imported by filename, sorted by import path. +// GetAllCandidates calls wrapped for each package whose name starts with +// searchPrefix, and can be imported from filename with the package name filePkg. func GetAllCandidates(ctx context.Context, wrapped func(ImportFix), searchPrefix, filename, filePkg string, env *ProcessEnv) error { callback := &scanCallback{ rootFound: func(gopathwalk.Root) bool { @@ -722,6 +730,35 @@ func GetAllCandidates(ctx context.Context, wrapped func(ImportFix), searchPrefix return getCandidatePkgs(ctx, callback, filename, filePkg, env) } +// GetImportPaths calls wrapped for each package whose import path starts with +// searchPrefix, and can be imported from filename with the package name filePkg. +func GetImportPaths(ctx context.Context, wrapped func(ImportFix), searchPrefix, filename, filePkg string, env *ProcessEnv) error { + callback := &scanCallback{ + rootFound: func(gopathwalk.Root) bool { + return true + }, + dirFound: func(pkg *pkg) bool { + if !canUse(filename, pkg.dir) { + return false + } + return strings.HasPrefix(pkg.importPathShort, searchPrefix) + }, + packageNameLoaded: func(pkg *pkg) bool { + wrapped(ImportFix{ + StmtInfo: ImportInfo{ + ImportPath: pkg.importPathShort, + Name: candidateImportName(pkg), + }, + IdentName: pkg.packageName, + FixType: AddImport, + Relevance: pkg.relevance, + }) + return false + }, + } + return getCandidatePkgs(ctx, callback, filename, filePkg, env) +} + // A PackageExport is a package and its exports. type PackageExport struct { Fix *ImportFix @@ -767,6 +804,8 @@ type ProcessEnv struct { GocmdRunner *gocommand.Runner BuildFlags []string + ModFlag string + ModFile string // Env overrides the OS environment, and can be used to specify // GOPROXY, GO111MODULE, etc. PATH cannot be set here, because @@ -779,33 +818,48 @@ type ProcessEnv struct { // If Logf is non-nil, debug logging is enabled through this function. Logf func(format string, args ...interface{}) - resolver Resolver -} + initialized bool -func (e *ProcessEnv) goroot() string { - return e.mustGetEnv("GOROOT") + resolver Resolver } -func (e *ProcessEnv) gopath() string { - return e.mustGetEnv("GOPATH") +func (e *ProcessEnv) goEnv() (map[string]string, error) { + if err := e.init(); err != nil { + return nil, err + } + return e.Env, nil } -func (e *ProcessEnv) mustGetEnv(k string) string { - v, ok := e.Env[k] - if !ok { - panic(fmt.Sprintf("%v not set in evaluated environment", k)) +func (e *ProcessEnv) matchFile(dir, name string) (bool, error) { + bctx, err := e.buildContext() + if err != nil { + return false, err } - return v + return bctx.MatchFile(dir, name) } // CopyConfig copies the env's configuration into a new env. func (e *ProcessEnv) CopyConfig() *ProcessEnv { - copy := *e - copy.resolver = nil - return © + copy := &ProcessEnv{ + GocmdRunner: e.GocmdRunner, + initialized: e.initialized, + BuildFlags: e.BuildFlags, + Logf: e.Logf, + WorkingDir: e.WorkingDir, + resolver: nil, + Env: map[string]string{}, + } + for k, v := range e.Env { + copy.Env[k] = v + } + return copy } func (e *ProcessEnv) init() error { + if e.initialized { + return nil + } + foundAllRequired := true for _, k := range RequiredGoEnvVars { if _, ok := e.Env[k]; !ok { @@ -814,6 +868,7 @@ func (e *ProcessEnv) init() error { } } if foundAllRequired { + e.initialized = true return nil } @@ -832,6 +887,7 @@ func (e *ProcessEnv) init() error { for k, v := range goEnv { e.Env[k] = v } + e.initialized = true return nil } @@ -858,26 +914,36 @@ func (e *ProcessEnv) GetResolver() (Resolver, error) { return e.resolver, nil } -func (e *ProcessEnv) buildContext() *build.Context { +func (e *ProcessEnv) buildContext() (*build.Context, error) { ctx := build.Default - ctx.GOROOT = e.goroot() - ctx.GOPATH = e.gopath() + goenv, err := e.goEnv() + if err != nil { + return nil, err + } + ctx.GOROOT = goenv["GOROOT"] + ctx.GOPATH = goenv["GOPATH"] // As of Go 1.14, build.Context has a Dir field // (see golang.org/issue/34860). // Populate it only if present. rc := reflect.ValueOf(&ctx).Elem() dir := rc.FieldByName("Dir") - if !dir.IsValid() { - // Working drafts of Go 1.14 named the field "WorkingDir" instead. - // TODO(bcmills): Remove this case after the Go 1.14 beta has been released. - dir = rc.FieldByName("WorkingDir") - } if dir.IsValid() && dir.Kind() == reflect.String { dir.SetString(e.WorkingDir) } - return &ctx + // Since Go 1.11, go/build.Context.Import may invoke 'go list' depending on + // the value in GO111MODULE in the process's environment. We always want to + // run in GOPATH mode when calling Import, so we need to prevent this from + // happening. In Go 1.16, GO111MODULE defaults to "on", so this problem comes + // up more frequently. + // + // HACK: setting any of the Context I/O hooks prevents Import from invoking + // 'go list', regardless of GO111MODULE. This is undocumented, but it's + // unlikely to change before GOPATH support is removed. + ctx.ReadDir = ioutil.ReadDir + + return &ctx, nil } func (e *ProcessEnv) invokeGo(ctx context.Context, verb string, args ...string) (*bytes.Buffer, error) { @@ -892,10 +958,14 @@ func (e *ProcessEnv) invokeGo(ctx context.Context, verb string, args ...string) return e.GocmdRunner.Run(ctx, inv) } -func addStdlibCandidates(pass *pass, refs references) { +func addStdlibCandidates(pass *pass, refs references) error { + goenv, err := pass.env.goEnv() + if err != nil { + return err + } add := func(pkg string) { // Prevent self-imports. - if path.Base(pkg) == pass.f.Name.Name && filepath.Join(pass.env.goroot(), "src", pkg) == pass.srcDir { + if path.Base(pkg) == pass.f.Name.Name && filepath.Join(goenv["GOROOT"], "src", pkg) == pass.srcDir { return } exports := copyExports(stdlib[pkg]) @@ -916,6 +986,7 @@ func addStdlibCandidates(pass *pass, refs references) { } } } + return nil } // A Resolver does the build-system-specific parts of goimports. @@ -928,7 +999,7 @@ type Resolver interface { // loadExports may be called concurrently. loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []string, error) // scoreImportPath returns the relevance for an import path. - scoreImportPath(ctx context.Context, path string) int + scoreImportPath(ctx context.Context, path string) float64 ClearForNewScan() } @@ -1112,21 +1183,24 @@ func (r *gopathResolver) ClearForNewScan() { func (r *gopathResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) { names := map[string]string{} + bctx, err := r.env.buildContext() + if err != nil { + return nil, err + } for _, path := range importPaths { - names[path] = importPathToName(r.env, path, srcDir) + names[path] = importPathToName(bctx, path, srcDir) } return names, nil } // importPathToName finds out the actual package name, as declared in its .go files. -// If there's a problem, it returns "". -func importPathToName(env *ProcessEnv, importPath, srcDir string) (packageName string) { +func importPathToName(bctx *build.Context, importPath, srcDir string) string { // Fast path for standard library without going to disk. if _, ok := stdlib[importPath]; ok { return path.Base(importPath) // stdlib packages always match their paths. } - buildPkg, err := env.buildContext().Import(importPath, srcDir, build.FindOnly) + buildPkg, err := bctx.Import(importPath, srcDir, build.FindOnly) if err != nil { return "" } @@ -1190,10 +1264,10 @@ func packageDirToName(dir string) (packageName string, err error) { } type pkg struct { - dir string // absolute file path to pkg directory ("/usr/lib/go/src/net/http") - importPathShort string // vendorless import path ("net/http", "a/b") - packageName string // package name loaded from source if requested - relevance int // a weakly-defined score of how relevant a package is. 0 is most relevant. + dir string // absolute file path to pkg directory ("/usr/lib/go/src/net/http") + importPathShort string // vendorless import path ("net/http", "a/b") + packageName string // package name loaded from source if requested + relevance float64 // a weakly-defined score of how relevant a package is. 0 is most relevant. } type pkgDistance struct { @@ -1287,8 +1361,18 @@ func (r *gopathResolver) scan(ctx context.Context, callback *scanCallback) error } stop := r.cache.ScanAndListen(ctx, processDir) defer stop() + + goenv, err := r.env.goEnv() + if err != nil { + return err + } + var roots []gopathwalk.Root + roots = append(roots, gopathwalk.Root{filepath.Join(goenv["GOROOT"], "src"), gopathwalk.RootGOROOT}) + for _, p := range filepath.SplitList(goenv["GOPATH"]) { + roots = append(roots, gopathwalk.Root{filepath.Join(p, "src"), gopathwalk.RootGOPATH}) + } // The callback is not necessarily safe to use in the goroutine below. Process roots eagerly. - roots := filterRoots(gopathwalk.SrcDirsRoots(r.env.buildContext()), callback.rootFound) + roots = filterRoots(roots, callback.rootFound) // We can't cancel walks, because we need them to finish to have a usable // cache. Instead, run them in a separate goroutine and detach. scanDone := make(chan struct{}) @@ -1309,7 +1393,7 @@ func (r *gopathResolver) scan(ctx context.Context, callback *scanCallback) error return nil } -func (r *gopathResolver) scoreImportPath(ctx context.Context, path string) int { +func (r *gopathResolver) scoreImportPath(ctx context.Context, path string) float64 { if _, ok := stdlib[path]; ok { return MaxRelevance } @@ -1348,8 +1432,6 @@ func VendorlessPath(ipath string) string { } func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, includeTest bool) (string, []string, error) { - var exports []string - // Look for non-test, buildable .go files which could provide exports. all, err := ioutil.ReadDir(dir) if err != nil { @@ -1361,7 +1443,7 @@ func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, incl if !strings.HasSuffix(name, ".go") || (!includeTest && strings.HasSuffix(name, "_test.go")) { continue } - match, err := env.buildContext().MatchFile(dir, fi.Name()) + match, err := env.matchFile(dir, fi.Name()) if err != nil || !match { continue } @@ -1373,6 +1455,7 @@ func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, incl } var pkgName string + var exports []string fset := token.NewFileSet() for _, fi := range files { select { diff --git a/vendor/golang.org/x/tools/internal/imports/mod.go b/vendor/golang.org/x/tools/internal/imports/mod.go index 664fbbf5ba..65e0b94b17 100644 --- a/vendor/golang.org/x/tools/internal/imports/mod.go +++ b/vendor/golang.org/x/tools/internal/imports/mod.go @@ -1,3 +1,7 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + package imports import ( @@ -53,8 +57,14 @@ func (r *ModuleResolver) init() error { return nil } + goenv, err := r.env.goEnv() + if err != nil { + return err + } inv := gocommand.Invocation{ BuildFlags: r.env.BuildFlags, + ModFlag: r.env.ModFlag, + ModFile: r.env.ModFile, Env: r.env.env(), Logf: r.env.Logf, WorkingDir: r.env.WorkingDir, @@ -76,13 +86,22 @@ func (r *ModuleResolver) init() error { r.modsByDir = []*gocommand.ModuleJSON{mainMod, r.dummyVendorMod} } else { // Vendor mode is off, so run go list -m ... to find everything. - r.initAllMods() + err := r.initAllMods() + // We expect an error when running outside of a module with + // GO111MODULE=on. Other errors are fatal. + if err != nil && !strings.Contains(err.Error(), "working directory is not part of a module") { + return err + } } if gmc := r.env.Env["GOMODCACHE"]; gmc != "" { r.moduleCacheDir = gmc } else { - r.moduleCacheDir = filepath.Join(filepath.SplitList(r.env.gopath())[0], "/pkg/mod") + gopaths := filepath.SplitList(goenv["GOPATH"]) + if len(gopaths) == 0 { + return fmt.Errorf("empty GOPATH") + } + r.moduleCacheDir = filepath.Join(gopaths[0], "/pkg/mod") } sort.Slice(r.modsByModPath, func(i, j int) bool { @@ -99,7 +118,7 @@ func (r *ModuleResolver) init() error { }) r.roots = []gopathwalk.Root{ - {filepath.Join(r.env.goroot(), "/src"), gopathwalk.RootGOROOT}, + {filepath.Join(goenv["GOROOT"], "/src"), gopathwalk.RootGOROOT}, } if r.main != nil { r.roots = append(r.roots, gopathwalk.Root{r.main.Dir, gopathwalk.RootCurrentModule}) @@ -147,7 +166,7 @@ func (r *ModuleResolver) init() error { } func (r *ModuleResolver) initAllMods() error { - stdout, err := r.env.invokeGo(context.TODO(), "list", "-m", "-json", "...") + stdout, err := r.env.invokeGo(context.TODO(), "list", "-m", "-e", "-json", "...") if err != nil { return err } @@ -240,7 +259,7 @@ func (r *ModuleResolver) findPackage(importPath string) (*gocommand.ModuleJSON, // files in that directory. If not, it could be provided by an // outer module. See #29736. for _, fi := range pkgFiles { - if ok, _ := r.env.buildContext().MatchFile(pkgDir, fi.Name()); ok { + if ok, _ := r.env.matchFile(pkgDir, fi.Name()); ok { return m, pkgDir } } @@ -341,10 +360,11 @@ func (r *ModuleResolver) modInfo(dir string) (modDir string, modName string) { } if r.dirInModuleCache(dir) { - matches := modCacheRegexp.FindStringSubmatch(dir) - index := strings.Index(dir, matches[1]+"@"+matches[2]) - modDir := filepath.Join(dir[:index], matches[1]+"@"+matches[2]) - return modDir, readModName(filepath.Join(modDir, "go.mod")) + if matches := modCacheRegexp.FindStringSubmatch(dir); len(matches) == 3 { + index := strings.Index(dir, matches[1]+"@"+matches[2]) + modDir := filepath.Join(dir[:index], matches[1]+"@"+matches[2]) + return modDir, readModName(filepath.Join(modDir, "go.mod")) + } } for { if info, ok := r.cacheLoad(dir); ok { @@ -483,7 +503,7 @@ func (r *ModuleResolver) scan(ctx context.Context, callback *scanCallback) error return nil } -func (r *ModuleResolver) scoreImportPath(ctx context.Context, path string) int { +func (r *ModuleResolver) scoreImportPath(ctx context.Context, path string) float64 { if _, ok := stdlib[path]; ok { return MaxRelevance } @@ -491,17 +511,31 @@ func (r *ModuleResolver) scoreImportPath(ctx context.Context, path string) int { return modRelevance(mod) } -func modRelevance(mod *gocommand.ModuleJSON) int { +func modRelevance(mod *gocommand.ModuleJSON) float64 { + var relevance float64 switch { case mod == nil: // out of scope return MaxRelevance - 4 case mod.Indirect: - return MaxRelevance - 3 + relevance = MaxRelevance - 3 case !mod.Main: - return MaxRelevance - 2 + relevance = MaxRelevance - 2 default: - return MaxRelevance - 1 // main module ties with stdlib + relevance = MaxRelevance - 1 // main module ties with stdlib + } + + _, versionString, ok := module.SplitPathVersion(mod.Path) + if ok { + index := strings.Index(versionString, "v") + if index == -1 { + return relevance + } + if versionNumber, err := strconv.ParseFloat(versionString[index+1:], 64); err == nil { + relevance += versionNumber / 1000 + } } + + return relevance } // canonicalize gets the result of canonicalizing the packages using the results diff --git a/vendor/golang.org/x/tools/internal/imports/mod_cache.go b/vendor/golang.org/x/tools/internal/imports/mod_cache.go index 5b4f03accd..18dada495c 100644 --- a/vendor/golang.org/x/tools/internal/imports/mod_cache.go +++ b/vendor/golang.org/x/tools/internal/imports/mod_cache.go @@ -1,3 +1,7 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + package imports import ( diff --git a/vendor/gomodules.xyz/jsonpatch/v2/go.mod b/vendor/gomodules.xyz/jsonpatch/v2/go.mod index b5eaf830eb..0395a5805e 100644 --- a/vendor/gomodules.xyz/jsonpatch/v2/go.mod +++ b/vendor/gomodules.xyz/jsonpatch/v2/go.mod @@ -3,7 +3,6 @@ module gomodules.xyz/jsonpatch/v2 go 1.12 require ( - github.com/evanphx/json-patch v4.5.0+incompatible - github.com/pkg/errors v0.8.1 // indirect + github.com/evanphx/json-patch v0.5.2 github.com/stretchr/testify v1.3.0 ) diff --git a/vendor/gomodules.xyz/jsonpatch/v2/go.sum b/vendor/gomodules.xyz/jsonpatch/v2/go.sum index d8f9ffe1c9..d931385bc1 100644 --- a/vendor/gomodules.xyz/jsonpatch/v2/go.sum +++ b/vendor/gomodules.xyz/jsonpatch/v2/go.sum @@ -1,9 +1,10 @@ github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M= -github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/evanphx/json-patch v0.5.2 h1:xVCHIVMUu1wtM/VkR9jVZ45N3FhZfYMMYGorLCR8P3k= +github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= diff --git a/vendor/gomodules.xyz/jsonpatch/v2/jsonpatch.go b/vendor/gomodules.xyz/jsonpatch/v2/jsonpatch.go index b8ae4456d2..0ffb315604 100644 --- a/vendor/gomodules.xyz/jsonpatch/v2/jsonpatch.go +++ b/vendor/gomodules.xyz/jsonpatch/v2/jsonpatch.go @@ -191,8 +191,6 @@ func handleValues(av, bv interface{}, p string, patch []Operation) ([]Operation, if at == nil && bt == nil { // do nothing return patch, nil - } else if at == nil && bt != nil { - return append(patch, NewOperation("add", p, bv)), nil } else if at != bt { // If types have changed, replace completely (preserves null in destination) return append(patch, NewOperation("replace", p, bv)), nil diff --git a/vendor/k8s.io/api/admission/v1/generated.pb.go b/vendor/k8s.io/api/admission/v1/generated.pb.go index 04eb206750..f2db634b86 100644 --- a/vendor/k8s.io/api/admission/v1/generated.pb.go +++ b/vendor/k8s.io/api/admission/v1/generated.pb.go @@ -1196,10 +1196,7 @@ func (m *AdmissionRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1514,7 +1511,7 @@ func (m *AdmissionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1563,10 +1560,7 @@ func (m *AdmissionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1688,10 +1682,7 @@ func (m *AdmissionReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/admission/v1/register.go b/vendor/k8s.io/api/admission/v1/register.go index b548509ab3..79000535c7 100644 --- a/vendor/k8s.io/api/admission/v1/register.go +++ b/vendor/k8s.io/api/admission/v1/register.go @@ -33,12 +33,14 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } +// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. +// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. var ( - // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. - // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. + // SchemeBuilder points to a list of functions added to Scheme. SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) localSchemeBuilder = &SchemeBuilder - AddToScheme = localSchemeBuilder.AddToScheme + // AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme. + AddToScheme = localSchemeBuilder.AddToScheme ) // Adds the list of known types to the given scheme. diff --git a/vendor/k8s.io/api/admission/v1beta1/generated.pb.go b/vendor/k8s.io/api/admission/v1beta1/generated.pb.go index ae82ff5996..c0de5a93b9 100644 --- a/vendor/k8s.io/api/admission/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/admission/v1beta1/generated.pb.go @@ -1196,10 +1196,7 @@ func (m *AdmissionRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1514,7 +1511,7 @@ func (m *AdmissionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1563,10 +1560,7 @@ func (m *AdmissionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1688,10 +1682,7 @@ func (m *AdmissionReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/admission/v1beta1/register.go b/vendor/k8s.io/api/admission/v1beta1/register.go index 78d21a0c8a..1c53e755dd 100644 --- a/vendor/k8s.io/api/admission/v1beta1/register.go +++ b/vendor/k8s.io/api/admission/v1beta1/register.go @@ -33,12 +33,14 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } +// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. +// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. var ( - // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. - // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. + // SchemeBuilder points to a list of functions added to Scheme. SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) localSchemeBuilder = &SchemeBuilder - AddToScheme = localSchemeBuilder.AddToScheme + // AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme. + AddToScheme = localSchemeBuilder.AddToScheme ) // Adds the list of known types to the given scheme. diff --git a/vendor/k8s.io/api/admissionregistration/v1/generated.pb.go b/vendor/k8s.io/api/admissionregistration/v1/generated.pb.go index adc47be7fa..0f8019c543 100644 --- a/vendor/k8s.io/api/admissionregistration/v1/generated.pb.go +++ b/vendor/k8s.io/api/admissionregistration/v1/generated.pb.go @@ -342,13 +342,13 @@ func init() { } var fileDescriptor_aaac5994f79683e8 = []byte{ - // 1104 bytes of a gzipped FileDescriptorProto + // 1102 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x55, 0x4f, 0x6f, 0x1b, 0x45, 0x14, 0xcf, 0xc6, 0x76, 0x63, 0x8f, 0xf3, 0xa7, 0x19, 0xa0, 0x35, 0xa1, 0xf2, 0x5a, 0x46, 0x42, 0x46, 0xc0, 0x6e, 0x13, 0x4a, 0xa9, 0xb8, 0xa0, 0x6c, 0xf8, 0xa3, 0x88, 0xa4, 0x8d, 0x26, 0x6d, - 0x8a, 0x50, 0x0e, 0x1d, 0xaf, 0xc7, 0xf6, 0x10, 0x7b, 0x67, 0x35, 0x33, 0xeb, 0x92, 0x1b, 0x1f, - 0x81, 0xaf, 0x00, 0x9f, 0x82, 0x1b, 0xe2, 0x96, 0x63, 0x8f, 0x39, 0xa0, 0x85, 0x2c, 0x17, 0x0e, - 0x7c, 0x82, 0x9c, 0xd0, 0xcc, 0xae, 0x77, 0xfd, 0x27, 0x09, 0x56, 0x0e, 0x3d, 0xe5, 0xb6, 0xf3, + 0x8a, 0x50, 0x0e, 0x1d, 0xaf, 0xc7, 0xf6, 0x10, 0x7b, 0x67, 0x35, 0x33, 0x6b, 0xc8, 0x8d, 0x8f, + 0xc0, 0x57, 0x80, 0x4f, 0xc1, 0x0d, 0x71, 0xcb, 0xb1, 0xc7, 0x1c, 0xd0, 0x42, 0x96, 0x0b, 0x07, + 0x3e, 0x41, 0x4e, 0x68, 0x66, 0xd7, 0xbb, 0xfe, 0x93, 0xa4, 0x56, 0x0e, 0x3d, 0xe5, 0xb6, 0xf3, 0x7b, 0xf3, 0x7e, 0x6f, 0xde, 0xdb, 0xf7, 0xde, 0x0f, 0xec, 0x1c, 0x3d, 0x12, 0x16, 0x65, 0xf6, 0x51, 0xd0, 0x24, 0xdc, 0x23, 0x92, 0x08, 0x7b, 0x40, 0xbc, 0x16, 0xe3, 0x76, 0x62, 0xc0, 0x3e, 0xb5, 0x71, 0xab, 0x4f, 0x85, 0xa0, 0xcc, 0xe3, 0xa4, 0x43, 0x85, 0xe4, 0x58, 0x52, 0xe6, 0xd9, @@ -357,61 +357,61 @@ var fileDescriptor_aaac5994f79683e8 = []byte{ 0xe5, 0xb2, 0xbe, 0xdd, 0x61, 0x1d, 0x66, 0x6b, 0xdf, 0x66, 0xd0, 0xd6, 0x27, 0x7d, 0xd0, 0x5f, 0x31, 0xe7, 0xda, 0x83, 0xec, 0x21, 0x7d, 0xec, 0x76, 0xa9, 0x47, 0xf8, 0xb1, 0xed, 0x1f, 0x75, 0x14, 0x20, 0xec, 0x3e, 0x91, 0xf8, 0x82, 0x97, 0xac, 0xd9, 0x97, 0x79, 0xf1, 0xc0, 0x93, 0xb4, - 0x4f, 0xa6, 0x1c, 0x1e, 0xfe, 0x9f, 0x83, 0x70, 0xbb, 0xa4, 0x8f, 0x27, 0xfd, 0xea, 0xbf, 0x2d, - 0x80, 0x95, 0xdd, 0x40, 0x62, 0x49, 0xbd, 0xce, 0x73, 0xd2, 0xec, 0x32, 0x76, 0x04, 0x6b, 0x20, - 0xef, 0xe1, 0x3e, 0xa9, 0x18, 0x35, 0xa3, 0x51, 0x72, 0x16, 0x4f, 0x42, 0x73, 0x2e, 0x0a, 0xcd, - 0xfc, 0x63, 0xdc, 0x27, 0x48, 0x5b, 0x20, 0x07, 0x8b, 0x6e, 0x8f, 0x12, 0x4f, 0x6e, 0x31, 0xaf, - 0x4d, 0x3b, 0x95, 0xf9, 0x9a, 0xd1, 0x28, 0x6f, 0x3c, 0xb2, 0x66, 0xa8, 0x9f, 0x95, 0x44, 0xd9, - 0x1a, 0xf1, 0x77, 0xde, 0x4c, 0x62, 0x2c, 0x8e, 0xa2, 0x68, 0x2c, 0x06, 0x3c, 0x04, 0x05, 0x1e, - 0xf4, 0x88, 0xa8, 0xe4, 0x6a, 0xb9, 0x46, 0x79, 0xe3, 0xd3, 0x99, 0x82, 0xa1, 0xa0, 0x47, 0x9e, - 0x53, 0xd9, 0x7d, 0xe2, 0x93, 0x18, 0x14, 0xce, 0x52, 0x12, 0xab, 0xa0, 0x6c, 0x02, 0xc5, 0xa4, - 0x70, 0x07, 0x2c, 0xb5, 0x31, 0xed, 0x05, 0x9c, 0xec, 0xb1, 0x1e, 0x75, 0x8f, 0x2b, 0x79, 0x9d, - 0xfc, 0x7b, 0x51, 0x68, 0x2e, 0x7d, 0x35, 0x6a, 0x38, 0x0f, 0xcd, 0xd5, 0x31, 0xe0, 0xe9, 0xb1, - 0x4f, 0xd0, 0xb8, 0x33, 0xfc, 0x02, 0x94, 0xfb, 0x58, 0xba, 0xdd, 0x84, 0xab, 0xa4, 0xb9, 0xea, - 0x51, 0x68, 0x96, 0x77, 0x33, 0xf8, 0x3c, 0x34, 0x57, 0x46, 0x8e, 0x9a, 0x67, 0xd4, 0x0d, 0xfe, - 0x00, 0x56, 0x55, 0xb5, 0x85, 0x8f, 0x5d, 0xb2, 0x4f, 0x7a, 0xc4, 0x95, 0x8c, 0x57, 0x0a, 0xba, - 0xd4, 0x1f, 0x8f, 0x64, 0x9f, 0xfe, 0x6f, 0xcb, 0x3f, 0xea, 0x28, 0x40, 0x58, 0xaa, 0xad, 0x54, - 0xfa, 0x3b, 0xb8, 0x49, 0x7a, 0x43, 0x57, 0xe7, 0xad, 0x28, 0x34, 0x57, 0x1f, 0x4f, 0x32, 0xa2, - 0xe9, 0x20, 0x90, 0x81, 0x65, 0xd6, 0xfc, 0x9e, 0xb8, 0x32, 0x0d, 0x5b, 0xbe, 0x7e, 0x58, 0x18, - 0x85, 0xe6, 0xf2, 0x93, 0x31, 0x3a, 0x34, 0x41, 0xaf, 0x0a, 0x26, 0x68, 0x8b, 0x7c, 0xd9, 0x6e, - 0x13, 0x57, 0x8a, 0xca, 0xad, 0xac, 0x60, 0xfb, 0x19, 0xac, 0x0a, 0x96, 0x1d, 0xb7, 0x7a, 0x58, - 0x08, 0x34, 0xea, 0x06, 0x3f, 0x03, 0xcb, 0xaa, 0xd7, 0x59, 0x20, 0xf7, 0x89, 0xcb, 0xbc, 0x96, - 0xa8, 0x2c, 0xd4, 0x8c, 0x46, 0x21, 0x7e, 0xc1, 0xd3, 0x31, 0x0b, 0x9a, 0xb8, 0x09, 0x9f, 0x81, - 0xbb, 0x69, 0x17, 0x21, 0x32, 0xa0, 0xe4, 0xe5, 0x01, 0xe1, 0xea, 0x20, 0x2a, 0xc5, 0x5a, 0xae, + 0x4f, 0xa6, 0x1c, 0x1e, 0xbe, 0xca, 0x41, 0xb8, 0x5d, 0xd2, 0xc7, 0x93, 0x7e, 0xf5, 0xdf, 0x17, + 0xc0, 0xca, 0x6e, 0x20, 0xb1, 0xa4, 0x5e, 0xe7, 0x39, 0x69, 0x76, 0x19, 0x3b, 0x82, 0x35, 0x90, + 0xf7, 0x70, 0x9f, 0x54, 0x8c, 0x9a, 0xd1, 0x28, 0x39, 0x8b, 0x27, 0xa1, 0x39, 0x17, 0x85, 0x66, + 0xfe, 0x31, 0xee, 0x13, 0xa4, 0x2d, 0x90, 0x83, 0x45, 0xb7, 0x47, 0x89, 0x27, 0xb7, 0x98, 0xd7, + 0xa6, 0x9d, 0xca, 0x7c, 0xcd, 0x68, 0x94, 0x37, 0x1e, 0x59, 0x33, 0xd4, 0xcf, 0x4a, 0xa2, 0x6c, + 0x8d, 0xf8, 0x3b, 0x6f, 0x26, 0x31, 0x16, 0x47, 0x51, 0x34, 0x16, 0x03, 0x1e, 0x82, 0x02, 0x0f, + 0x7a, 0x44, 0x54, 0x72, 0xb5, 0x5c, 0xa3, 0xbc, 0xf1, 0xe9, 0x4c, 0xc1, 0x50, 0xd0, 0x23, 0xcf, + 0xa9, 0xec, 0x3e, 0xf1, 0x49, 0x0c, 0x0a, 0x67, 0x29, 0x89, 0x55, 0x50, 0x36, 0x81, 0x62, 0x52, + 0xb8, 0x03, 0x96, 0xda, 0x98, 0xf6, 0x02, 0x4e, 0xf6, 0x58, 0x8f, 0xba, 0xc7, 0x95, 0xbc, 0x4e, + 0xfe, 0xbd, 0x28, 0x34, 0x97, 0xbe, 0x1a, 0x35, 0x9c, 0x87, 0xe6, 0xea, 0x18, 0xf0, 0xf4, 0xd8, + 0x27, 0x68, 0xdc, 0x19, 0x7e, 0x01, 0xca, 0x7d, 0x2c, 0xdd, 0x6e, 0xc2, 0x55, 0xd2, 0x5c, 0xf5, + 0x28, 0x34, 0xcb, 0xbb, 0x19, 0x7c, 0x1e, 0x9a, 0x2b, 0x23, 0x47, 0xcd, 0x33, 0xea, 0x06, 0x7f, + 0x04, 0xab, 0xaa, 0xda, 0xc2, 0xc7, 0x2e, 0xd9, 0x27, 0x3d, 0xe2, 0x4a, 0xc6, 0x2b, 0x05, 0x5d, + 0xea, 0x8f, 0x47, 0xb2, 0x4f, 0xff, 0xb7, 0xe5, 0x1f, 0x75, 0x14, 0x20, 0x2c, 0xd5, 0x56, 0x2a, + 0xfd, 0x1d, 0xdc, 0x24, 0xbd, 0xa1, 0xab, 0xf3, 0x56, 0x14, 0x9a, 0xab, 0x8f, 0x27, 0x19, 0xd1, + 0x74, 0x10, 0xc8, 0xc0, 0x32, 0x6b, 0x7e, 0x4f, 0x5c, 0x99, 0x86, 0x2d, 0x5f, 0x3f, 0x2c, 0x8c, + 0x42, 0x73, 0xf9, 0xc9, 0x18, 0x1d, 0x9a, 0xa0, 0x57, 0x05, 0x13, 0xb4, 0x45, 0xbe, 0x6c, 0xb7, + 0x89, 0x2b, 0x45, 0xe5, 0x56, 0x56, 0xb0, 0xfd, 0x0c, 0x56, 0x05, 0xcb, 0x8e, 0x5b, 0x3d, 0x2c, + 0x04, 0x1a, 0x75, 0x83, 0x9f, 0x81, 0x65, 0xd5, 0xeb, 0x2c, 0x90, 0xfb, 0xc4, 0x65, 0x5e, 0x4b, + 0x54, 0x16, 0x6a, 0x46, 0xa3, 0x10, 0xbf, 0xe0, 0xe9, 0x98, 0x05, 0x4d, 0xdc, 0x84, 0xcf, 0xc0, + 0xdd, 0xb4, 0x8b, 0x10, 0x19, 0x50, 0xf2, 0xc3, 0x01, 0xe1, 0xea, 0x20, 0x2a, 0xc5, 0x5a, 0xae, 0x51, 0x72, 0xde, 0x89, 0x42, 0xf3, 0xee, 0xe6, 0xc5, 0x57, 0xd0, 0x65, 0xbe, 0xf0, 0x05, 0x80, 0x9c, 0x50, 0x6f, 0xc0, 0x5c, 0xdd, 0x7e, 0x49, 0x43, 0x00, 0x9d, 0xdf, 0xfd, 0x28, 0x34, 0x21, 0x9a, 0xb2, 0x9e, 0x87, 0xe6, 0x9d, 0x69, 0x54, 0xb7, 0xc7, 0x05, 0x5c, 0xf5, 0x53, 0x03, 0xdc, 0x9b, 0x98, 0xe0, 0x78, 0x62, 0x82, 0xb8, 0xe3, 0xe1, 0x0b, 0x50, 0x54, 0x3f, 0xa6, 0x85, 0x25, 0xd6, 0x23, 0x5d, 0xde, 0xb8, 0x3f, 0xdb, 0x6f, 0x8c, 0xff, 0xd9, 0x2e, 0x91, 0xd8, 0x81, 0xc9, 0xd0, 0x80, 0x0c, 0x43, 0x29, 0x2b, 0x3c, 0x00, 0xc5, 0x24, 0xb2, 0xa8, 0xcc, 0xeb, 0xe9, 0x7c, - 0x30, 0xd3, 0x74, 0x4e, 0x3c, 0xdb, 0xc9, 0xab, 0x28, 0xa8, 0xf8, 0x32, 0xe1, 0xaa, 0xff, 0x63, - 0x80, 0xda, 0x55, 0xa9, 0xed, 0x50, 0x21, 0xe1, 0xe1, 0x54, 0x7a, 0xd6, 0x8c, 0x5d, 0x4a, 0x45, - 0x9c, 0xdc, 0xed, 0x24, 0xb9, 0xe2, 0x10, 0x19, 0x49, 0xad, 0x0d, 0x0a, 0x54, 0x92, 0xfe, 0x30, - 0xaf, 0xcd, 0xeb, 0xe4, 0x35, 0xf6, 0xe6, 0x6c, 0xff, 0x6c, 0x2b, 0x5e, 0x14, 0xd3, 0xd7, 0x7f, - 0x37, 0x40, 0x5e, 0x2d, 0x24, 0xf8, 0x01, 0x28, 0x61, 0x9f, 0x7e, 0xcd, 0x59, 0xe0, 0x8b, 0x8a, - 0xa1, 0x3b, 0x6f, 0x29, 0x0a, 0xcd, 0xd2, 0xe6, 0xde, 0x76, 0x0c, 0xa2, 0xcc, 0x0e, 0xd7, 0x41, - 0x19, 0xfb, 0x34, 0x6d, 0xd4, 0x79, 0x7d, 0x7d, 0x45, 0x8d, 0xcd, 0xe6, 0xde, 0x76, 0xda, 0x9c, - 0xa3, 0x77, 0x14, 0x3f, 0x27, 0x82, 0x05, 0xdc, 0x4d, 0x56, 0x69, 0xc2, 0x8f, 0x86, 0x20, 0xca, - 0xec, 0xf0, 0x43, 0x50, 0x10, 0x2e, 0xf3, 0x49, 0xb2, 0x0d, 0xef, 0xa8, 0x67, 0xef, 0x2b, 0xe0, - 0x3c, 0x34, 0x4b, 0xfa, 0x43, 0xb7, 0x65, 0x7c, 0xa9, 0xfe, 0x8b, 0x01, 0xe0, 0xf4, 0xc2, 0x85, - 0x9f, 0x03, 0xc0, 0xd2, 0x53, 0x92, 0x92, 0xa9, 0x7b, 0x29, 0x45, 0xcf, 0x43, 0x73, 0x29, 0x3d, - 0x69, 0xca, 0x11, 0x17, 0xf8, 0x0d, 0xc8, 0xab, 0x25, 0x9d, 0xa8, 0xcc, 0xfb, 0x33, 0x2f, 0xfe, - 0x4c, 0xba, 0xd4, 0x09, 0x69, 0x92, 0xfa, 0xcf, 0x06, 0xb8, 0xbd, 0x4f, 0xf8, 0x80, 0xba, 0x04, - 0x91, 0x36, 0xe1, 0xc4, 0x73, 0x09, 0xb4, 0x41, 0x29, 0x5d, 0x82, 0x89, 0xec, 0xad, 0x26, 0xbe, - 0xa5, 0x74, 0x61, 0xa2, 0xec, 0x4e, 0x2a, 0x91, 0xf3, 0x97, 0x4a, 0xe4, 0x3d, 0x90, 0xf7, 0xb1, - 0xec, 0x56, 0x72, 0xfa, 0x46, 0x51, 0x59, 0xf7, 0xb0, 0xec, 0x22, 0x8d, 0x6a, 0x2b, 0xe3, 0x52, - 0xd7, 0xb5, 0x90, 0x58, 0x19, 0x97, 0x48, 0xa3, 0xf5, 0x3f, 0x6f, 0x81, 0xd5, 0x03, 0xdc, 0xa3, - 0xad, 0x1b, 0x59, 0xbe, 0x91, 0xe5, 0x2b, 0x65, 0x19, 0xdc, 0xc8, 0xf2, 0x75, 0x64, 0xb9, 0xfe, - 0x87, 0x01, 0xaa, 0x53, 0x13, 0xf6, 0xba, 0x65, 0xf3, 0xdb, 0x29, 0xd9, 0x7c, 0x38, 0xd3, 0xf4, - 0x4c, 0x3d, 0x7c, 0x4a, 0x38, 0xff, 0x35, 0x40, 0xfd, 0xea, 0xf4, 0x5e, 0x83, 0x74, 0x76, 0xc7, - 0xa5, 0x73, 0xeb, 0x7a, 0xb9, 0xcd, 0x22, 0x9e, 0xbf, 0x1a, 0xe0, 0x8d, 0x0b, 0xf6, 0x17, 0x7c, - 0x1b, 0xe4, 0x02, 0xde, 0x4b, 0x56, 0xf0, 0x42, 0x14, 0x9a, 0xb9, 0x67, 0x68, 0x07, 0x29, 0x0c, - 0x1e, 0x82, 0x05, 0x11, 0xab, 0x40, 0x92, 0xf9, 0x27, 0x33, 0x3d, 0x6f, 0x52, 0x39, 0x9c, 0x72, - 0x14, 0x9a, 0x0b, 0x43, 0x74, 0x48, 0x09, 0x1b, 0xa0, 0xe8, 0x62, 0x27, 0xf0, 0x5a, 0x89, 0x6a, - 0x2d, 0x3a, 0x8b, 0xaa, 0x48, 0x5b, 0x9b, 0x31, 0x86, 0x52, 0xab, 0xd3, 0x38, 0x39, 0xab, 0xce, - 0xbd, 0x3a, 0xab, 0xce, 0x9d, 0x9e, 0x55, 0xe7, 0x7e, 0x8c, 0xaa, 0xc6, 0x49, 0x54, 0x35, 0x5e, - 0x45, 0x55, 0xe3, 0x34, 0xaa, 0x1a, 0x7f, 0x45, 0x55, 0xe3, 0xa7, 0xbf, 0xab, 0x73, 0xdf, 0xcd, - 0x0f, 0xd6, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x57, 0x91, 0x2c, 0x7b, 0xeb, 0x0e, 0x00, 0x00, + 0x30, 0xd3, 0x74, 0x4e, 0x3c, 0xdb, 0xc9, 0xab, 0x28, 0x28, 0xe5, 0xaa, 0xff, 0x6b, 0x80, 0xda, + 0x55, 0xa9, 0xed, 0x50, 0x21, 0xe1, 0xe1, 0x54, 0x7a, 0xd6, 0x8c, 0x5d, 0x4a, 0x45, 0x9c, 0xdc, + 0xed, 0x24, 0xb9, 0xe2, 0x10, 0x19, 0x49, 0xad, 0x0d, 0x0a, 0x54, 0x92, 0xfe, 0x30, 0xaf, 0xcd, + 0xeb, 0xe4, 0x35, 0xf6, 0xe6, 0x6c, 0xff, 0x6c, 0x2b, 0x5e, 0x14, 0xd3, 0xd7, 0xff, 0x30, 0x40, + 0x5e, 0x2d, 0x24, 0xf8, 0x01, 0x28, 0x61, 0x9f, 0x7e, 0xcd, 0x59, 0xe0, 0x8b, 0x8a, 0xa1, 0x3b, + 0x6f, 0x29, 0x0a, 0xcd, 0xd2, 0xe6, 0xde, 0x76, 0x0c, 0xa2, 0xcc, 0x0e, 0xd7, 0x41, 0x19, 0xfb, + 0x34, 0x6d, 0xd4, 0x79, 0x7d, 0x7d, 0x45, 0x8d, 0xcd, 0xe6, 0xde, 0x76, 0xda, 0x9c, 0xa3, 0x77, + 0x14, 0x3f, 0x27, 0x82, 0x05, 0xdc, 0x4d, 0x56, 0x69, 0xc2, 0x8f, 0x86, 0x20, 0xca, 0xec, 0xf0, + 0x43, 0x50, 0x10, 0x2e, 0xf3, 0x49, 0xb2, 0x0d, 0xef, 0xa8, 0x67, 0xef, 0x2b, 0xe0, 0x3c, 0x34, + 0x4b, 0xfa, 0x43, 0xb7, 0x65, 0x7c, 0xa9, 0xfe, 0xab, 0x01, 0xe0, 0xf4, 0xc2, 0x85, 0x9f, 0x03, + 0xc0, 0xd2, 0x53, 0x92, 0x92, 0xa9, 0x7b, 0x29, 0x45, 0xcf, 0x43, 0x73, 0x29, 0x3d, 0x69, 0xca, + 0x11, 0x17, 0xf8, 0x0d, 0xc8, 0xab, 0x25, 0x9d, 0xa8, 0xcc, 0xfb, 0x33, 0x2f, 0xfe, 0x4c, 0xba, + 0xd4, 0x09, 0x69, 0x92, 0xfa, 0x2f, 0x06, 0xb8, 0xbd, 0x4f, 0xf8, 0x80, 0xba, 0x04, 0x91, 0x36, + 0xe1, 0xc4, 0x73, 0x09, 0xb4, 0x41, 0x29, 0x5d, 0x82, 0x89, 0xec, 0xad, 0x26, 0xbe, 0xa5, 0x74, + 0x61, 0xa2, 0xec, 0x4e, 0x2a, 0x91, 0xf3, 0x97, 0x4a, 0xe4, 0x3d, 0x90, 0xf7, 0xb1, 0xec, 0x56, + 0x72, 0xfa, 0x46, 0x51, 0x59, 0xf7, 0xb0, 0xec, 0x22, 0x8d, 0x6a, 0x2b, 0xe3, 0x52, 0xd7, 0xb5, + 0x90, 0x58, 0x19, 0x97, 0x48, 0xa3, 0xf5, 0xbf, 0x6e, 0x81, 0xd5, 0x03, 0xdc, 0xa3, 0xad, 0x1b, + 0x59, 0xbe, 0x91, 0xe5, 0x2b, 0x65, 0x19, 0xdc, 0xc8, 0xf2, 0x75, 0x64, 0xb9, 0xfe, 0xa7, 0x01, + 0xaa, 0x53, 0x13, 0xf6, 0xba, 0x65, 0xf3, 0xdb, 0x29, 0xd9, 0x7c, 0x38, 0xd3, 0xf4, 0x4c, 0x3d, + 0x7c, 0x4a, 0x38, 0xff, 0x33, 0x40, 0xfd, 0xea, 0xf4, 0x5e, 0x83, 0x74, 0x76, 0xc7, 0xa5, 0x73, + 0xeb, 0x7a, 0xb9, 0xcd, 0x22, 0x9e, 0xbf, 0x19, 0xe0, 0x8d, 0x0b, 0xf6, 0x17, 0x7c, 0x1b, 0xe4, + 0x02, 0xde, 0x4b, 0x56, 0xf0, 0x42, 0x14, 0x9a, 0xb9, 0x67, 0x68, 0x07, 0x29, 0x0c, 0x1e, 0x82, + 0x05, 0x11, 0xab, 0x40, 0x92, 0xf9, 0x27, 0x33, 0x3d, 0x6f, 0x52, 0x39, 0x9c, 0x72, 0x14, 0x9a, + 0x0b, 0x43, 0x74, 0x48, 0x09, 0x1b, 0xa0, 0xe8, 0x62, 0x27, 0xf0, 0x5a, 0x89, 0x6a, 0x2d, 0x3a, + 0x8b, 0xaa, 0x48, 0x5b, 0x9b, 0x31, 0x86, 0x52, 0xab, 0xd3, 0x38, 0x39, 0xab, 0xce, 0xbd, 0x3c, + 0xab, 0xce, 0x9d, 0x9e, 0x55, 0xe7, 0x7e, 0x8a, 0xaa, 0xc6, 0x49, 0x54, 0x35, 0x5e, 0x46, 0x55, + 0xe3, 0x34, 0xaa, 0x1a, 0x7f, 0x47, 0x55, 0xe3, 0xe7, 0x7f, 0xaa, 0x73, 0xdf, 0xcd, 0x0f, 0xd6, + 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x84, 0xf2, 0xb0, 0x00, 0xeb, 0x0e, 0x00, 0x00, } func (m *MutatingWebhook) Marshal() (dAtA []byte, err error) { @@ -1858,10 +1858,7 @@ func (m *MutatingWebhook) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1978,10 +1975,7 @@ func (m *MutatingWebhookConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2098,10 +2092,7 @@ func (m *MutatingWebhookConfigurationList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2280,10 +2271,7 @@ func (m *Rule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2398,10 +2386,7 @@ func (m *RuleWithOperations) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2568,10 +2553,7 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2943,10 +2925,7 @@ func (m *ValidatingWebhook) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3063,10 +3042,7 @@ func (m *ValidatingWebhookConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3183,10 +3159,7 @@ func (m *ValidatingWebhookConfigurationList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3339,10 +3312,7 @@ func (m *WebhookClientConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/admissionregistration/v1/generated.proto b/vendor/k8s.io/api/admissionregistration/v1/generated.proto index 16ab9d5d67..c23bb4beee 100644 --- a/vendor/k8s.io/api/admissionregistration/v1/generated.proto +++ b/vendor/k8s.io/api/admissionregistration/v1/generated.proto @@ -134,7 +134,7 @@ message MutatingWebhook { // SideEffects states whether this webhook has side effects. // Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). // Webhooks with side effects MUST implement a reconciliation system, since a request may be - // rejected by a future step in the admission change and the side effects therefore need to be undone. + // rejected by a future step in the admission chain and the side effects therefore need to be undone. // Requests with the dryRun attribute will be auto-rejected if they match a webhook with // sideEffects == Unknown or Some. optional string sideEffects = 6; @@ -384,7 +384,7 @@ message ValidatingWebhook { // SideEffects states whether this webhook has side effects. // Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). // Webhooks with side effects MUST implement a reconciliation system, since a request may be - // rejected by a future step in the admission change and the side effects therefore need to be undone. + // rejected by a future step in the admission chain and the side effects therefore need to be undone. // Requests with the dryRun attribute will be auto-rejected if they match a webhook with // sideEffects == Unknown or Some. optional string sideEffects = 6; diff --git a/vendor/k8s.io/api/admissionregistration/v1/register.go b/vendor/k8s.io/api/admissionregistration/v1/register.go index 716ce7fc5d..e42a8bce3b 100644 --- a/vendor/k8s.io/api/admissionregistration/v1/register.go +++ b/vendor/k8s.io/api/admissionregistration/v1/register.go @@ -22,6 +22,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" ) +// GroupName is the group name for this API. const GroupName = "admissionregistration.k8s.io" // SchemeGroupVersion is group version used to register these objects @@ -32,12 +33,14 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } +// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. +// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. var ( - // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. - // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. + // SchemeBuilder points to a list of functions added to Scheme. SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) localSchemeBuilder = &SchemeBuilder - AddToScheme = localSchemeBuilder.AddToScheme + // AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme. + AddToScheme = localSchemeBuilder.AddToScheme ) // Adds the list of known types to scheme. diff --git a/vendor/k8s.io/api/admissionregistration/v1/types.go b/vendor/k8s.io/api/admissionregistration/v1/types.go index 74b8782874..ff544c3a3c 100644 --- a/vendor/k8s.io/api/admissionregistration/v1/types.go +++ b/vendor/k8s.io/api/admissionregistration/v1/types.go @@ -63,6 +63,7 @@ type Rule struct { Scope *ScopeType `json:"scope,omitempty" protobuf:"bytes,4,rep,name=scope"` } +// ScopeType specifies a scope for a Rule. type ScopeType string const ( @@ -75,6 +76,7 @@ const ( AllScopes ScopeType = "*" ) +// FailurePolicyType specifies a failure policy that defines how unrecognized errors from the admission endpoint are handled. type FailurePolicyType string const ( @@ -84,16 +86,17 @@ const ( Fail FailurePolicyType = "Fail" ) -// MatchPolicyType specifies the type of match policy +// MatchPolicyType specifies the type of match policy. type MatchPolicyType string const ( - // Exact means requests should only be sent to the webhook if they exactly match a given rule + // Exact means requests should only be sent to the webhook if they exactly match a given rule. Exact MatchPolicyType = "Exact" // Equivalent means requests should be sent to the webhook if they modify a resource listed in rules via another API group or version. Equivalent MatchPolicyType = "Equivalent" ) +// SideEffectClass specifies the types of side effects a webhook may have. type SideEffectClass string const ( @@ -276,7 +279,7 @@ type ValidatingWebhook struct { // SideEffects states whether this webhook has side effects. // Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). // Webhooks with side effects MUST implement a reconciliation system, since a request may be - // rejected by a future step in the admission change and the side effects therefore need to be undone. + // rejected by a future step in the admission chain and the side effects therefore need to be undone. // Requests with the dryRun attribute will be auto-rejected if they match a webhook with // sideEffects == Unknown or Some. SideEffects *SideEffectClass `json:"sideEffects" protobuf:"bytes,6,opt,name=sideEffects,casttype=SideEffectClass"` @@ -405,7 +408,7 @@ type MutatingWebhook struct { // SideEffects states whether this webhook has side effects. // Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). // Webhooks with side effects MUST implement a reconciliation system, since a request may be - // rejected by a future step in the admission change and the side effects therefore need to be undone. + // rejected by a future step in the admission chain and the side effects therefore need to be undone. // Requests with the dryRun attribute will be auto-rejected if they match a webhook with // sideEffects == Unknown or Some. SideEffects *SideEffectClass `json:"sideEffects" protobuf:"bytes,6,opt,name=sideEffects,casttype=SideEffectClass"` @@ -472,6 +475,7 @@ type RuleWithOperations struct { Rule `json:",inline" protobuf:"bytes,2,opt,name=rule"` } +// OperationType specifies an operation for a request. type OperationType string // The constants should be kept in sync with those defined in k8s.io/kubernetes/pkg/admission/interface.go. diff --git a/vendor/k8s.io/api/admissionregistration/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/admissionregistration/v1/types_swagger_doc_generated.go index 5ec59304c5..ba92729c3c 100644 --- a/vendor/k8s.io/api/admissionregistration/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/admissionregistration/v1/types_swagger_doc_generated.go @@ -36,7 +36,7 @@ var map_MutatingWebhook = map[string]string{ "matchPolicy": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", "namespaceSelector": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", "objectSelector": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.", - "sideEffects": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", + "sideEffects": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", "timeoutSeconds": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", "admissionReviewVersions": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", "reinvocationPolicy": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", @@ -108,7 +108,7 @@ var map_ValidatingWebhook = map[string]string{ "matchPolicy": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", "namespaceSelector": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", "objectSelector": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.", - "sideEffects": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", + "sideEffects": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", "timeoutSeconds": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", "admissionReviewVersions": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", } diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go b/vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go index c98aa7477b..9f0988ca70 100644 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go @@ -342,77 +342,77 @@ func init() { } var fileDescriptor_abeea74cbc46f55a = []byte{ - // 1114 bytes of a gzipped FileDescriptorProto + // 1112 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x55, 0x4d, 0x6f, 0x23, 0x45, - 0x13, 0xce, 0xc4, 0xf6, 0xda, 0x6e, 0x27, 0xbb, 0x9b, 0x7e, 0x5f, 0x76, 0x4d, 0x58, 0x79, 0x2c, - 0x1f, 0x90, 0x25, 0xd8, 0x99, 0x4d, 0x40, 0x08, 0x16, 0x10, 0x8a, 0x03, 0x0b, 0x91, 0x92, 0xdd, - 0xd0, 0xd9, 0x0f, 0x89, 0x0f, 0x69, 0xdb, 0xe3, 0xb2, 0xdd, 0xd8, 0x9e, 0x1e, 0x4d, 0xf7, 0x38, + 0x13, 0xce, 0xc4, 0xf6, 0xda, 0x6e, 0x27, 0x9b, 0x4d, 0xbf, 0x2f, 0xbb, 0x26, 0xac, 0x3c, 0x96, + 0x0f, 0xc8, 0x12, 0xec, 0xcc, 0x26, 0x20, 0x04, 0x0b, 0x08, 0xc5, 0x81, 0x85, 0x48, 0xc9, 0x6e, + 0xe8, 0xec, 0x87, 0xc4, 0x87, 0xb4, 0xed, 0x71, 0xd9, 0x6e, 0x6c, 0x4f, 0x8f, 0xa6, 0x7b, 0xbc, 0xe4, 0xc6, 0x4f, 0xe0, 0x2f, 0x70, 0xe2, 0x57, 0x70, 0xe0, 0x16, 0x6e, 0x7b, 0xdc, 0x0b, 0x23, 0x32, 0x9c, 0x38, 0x70, 0xe0, 0x9a, 0x13, 0x9a, 0x9e, 0xf6, 0xf8, 0x2b, 0x59, 0x4c, 0x90, 0xf6, 0x94, 0xdb, 0xf4, 0x53, 0x5d, 0x4f, 0x75, 0xd5, 0x54, 0xd5, 0x83, 0x3e, 0xef, 0xbd, 0x2b, 0x2c, 0xc6, 0xed, 0x5e, 0xd0, 0x04, 0xdf, 0x05, 0x09, 0xc2, 0x1e, 0x82, 0xdb, 0xe2, 0xbe, 0xad, 0x0d, 0xd4, 0x63, 0x36, 0x6d, 0x0d, 0x98, 0x10, 0x8c, 0xbb, 0x3e, 0x74, 0x98, 0x90, 0x3e, 0x95, 0x8c, - 0xbb, 0xf6, 0x70, 0xa3, 0x09, 0x92, 0x6e, 0xd8, 0x1d, 0x70, 0xc1, 0xa7, 0x12, 0x5a, 0x96, 0xe7, - 0x73, 0xc9, 0x71, 0x3d, 0xf1, 0xb4, 0xa8, 0xc7, 0xac, 0x33, 0x3d, 0x2d, 0xed, 0xb9, 0x7e, 0xbb, + 0xbb, 0xf6, 0x70, 0xb3, 0x09, 0x92, 0x6e, 0xda, 0x1d, 0x70, 0xc1, 0xa7, 0x12, 0x5a, 0x96, 0xe7, + 0x73, 0xc9, 0x71, 0x3d, 0xf1, 0xb4, 0xa8, 0xc7, 0xac, 0x33, 0x3d, 0x2d, 0xed, 0xb9, 0x71, 0xab, 0xc3, 0x64, 0x37, 0x68, 0x5a, 0x0e, 0x1f, 0xd8, 0x1d, 0xde, 0xe1, 0xb6, 0x22, 0x68, 0x06, 0x6d, - 0x75, 0x52, 0x07, 0xf5, 0x95, 0x10, 0xaf, 0xbf, 0x3d, 0x7e, 0xd2, 0x80, 0x3a, 0x5d, 0xe6, 0x82, - 0x7f, 0x64, 0x7b, 0xbd, 0x4e, 0x0c, 0x08, 0x7b, 0x00, 0x92, 0xda, 0xc3, 0xb9, 0xe7, 0xac, 0xdb, + 0x75, 0x52, 0x07, 0xf5, 0x95, 0x10, 0x6f, 0xbc, 0x3d, 0x7e, 0xd2, 0x80, 0x3a, 0x5d, 0xe6, 0x82, + 0x7f, 0x64, 0x7b, 0xbd, 0x4e, 0x0c, 0x08, 0x7b, 0x00, 0x92, 0xda, 0xc3, 0xb9, 0xe7, 0x6c, 0xd8, 0xe7, 0x79, 0xf9, 0x81, 0x2b, 0xd9, 0x00, 0xe6, 0x1c, 0xde, 0xf9, 0x27, 0x07, 0xe1, 0x74, 0x61, - 0x40, 0x67, 0xfd, 0x6a, 0xbf, 0xe4, 0xd1, 0xb5, 0xbd, 0x40, 0x52, 0xc9, 0xdc, 0xce, 0x13, 0x68, - 0x76, 0x39, 0xef, 0xe1, 0x2a, 0xca, 0xba, 0x74, 0x00, 0x65, 0xa3, 0x6a, 0xd4, 0x8b, 0x8d, 0x95, - 0xe3, 0xd0, 0x5c, 0x8a, 0x42, 0x33, 0x7b, 0x9f, 0x0e, 0x80, 0x28, 0x0b, 0x3e, 0x44, 0x2b, 0x4e, - 0x9f, 0x81, 0x2b, 0xb7, 0xb9, 0xdb, 0x66, 0x9d, 0xf2, 0x72, 0xd5, 0xa8, 0x97, 0x36, 0x3f, 0xb4, - 0x16, 0x2d, 0xa2, 0xa5, 0x43, 0x6d, 0x4f, 0x90, 0x34, 0xfe, 0xaf, 0x03, 0xad, 0x4c, 0xa2, 0x64, - 0x2a, 0x10, 0xa6, 0x28, 0xe7, 0x07, 0x7d, 0x10, 0xe5, 0x4c, 0x35, 0x53, 0x2f, 0x6d, 0x7e, 0xb0, - 0x78, 0x44, 0x12, 0xf4, 0xe1, 0x09, 0x93, 0xdd, 0x07, 0x1e, 0x24, 0x16, 0xd1, 0x58, 0xd5, 0x01, - 0x73, 0xb1, 0x4d, 0x90, 0x84, 0x19, 0xef, 0xa2, 0xd5, 0x36, 0x65, 0xfd, 0xc0, 0x87, 0x7d, 0xde, - 0x67, 0xce, 0x51, 0x39, 0xab, 0xca, 0xf0, 0x7a, 0x14, 0x9a, 0xab, 0xf7, 0x26, 0x0d, 0xa7, 0xa1, - 0xb9, 0x36, 0x05, 0x3c, 0x3c, 0xf2, 0x80, 0x4c, 0x3b, 0xe3, 0x8f, 0x51, 0x69, 0x40, 0xa5, 0xd3, - 0xd5, 0x5c, 0x45, 0xc5, 0x55, 0x8b, 0x42, 0xb3, 0xb4, 0x37, 0x86, 0x4f, 0x43, 0xf3, 0xda, 0xc4, - 0x51, 0xf1, 0x4c, 0xba, 0xe1, 0x6f, 0xd1, 0x5a, 0x5c, 0x77, 0xe1, 0x51, 0x07, 0x0e, 0xa0, 0x0f, - 0x8e, 0xe4, 0x7e, 0x39, 0xa7, 0x8a, 0xfe, 0xd6, 0x44, 0x09, 0xd2, 0x3f, 0x6f, 0x79, 0xbd, 0x4e, - 0x0c, 0x08, 0x2b, 0x6e, 0x30, 0x6b, 0xb8, 0x61, 0xed, 0xd2, 0x26, 0xf4, 0x47, 0xae, 0x8d, 0x57, - 0xa2, 0xd0, 0x5c, 0xbb, 0x3f, 0xcb, 0x48, 0xe6, 0x83, 0x60, 0x8e, 0xae, 0xf2, 0xe6, 0x37, 0xe0, - 0xc8, 0x34, 0x6c, 0xe9, 0xe2, 0x61, 0x71, 0x14, 0x9a, 0x57, 0x1f, 0x4c, 0xd1, 0x91, 0x19, 0xfa, - 0xb8, 0x60, 0x82, 0xb5, 0xe0, 0x93, 0x76, 0x1b, 0x1c, 0x29, 0xca, 0x57, 0xc6, 0x05, 0x3b, 0x18, - 0xc3, 0x71, 0xc1, 0xc6, 0xc7, 0xed, 0x3e, 0x15, 0x82, 0x4c, 0xba, 0xe1, 0xbb, 0xe8, 0x6a, 0xdc, - 0xf5, 0x3c, 0x90, 0x07, 0xe0, 0x70, 0xb7, 0x25, 0xca, 0xf9, 0xaa, 0x51, 0xcf, 0x25, 0x2f, 0x78, - 0x38, 0x65, 0x21, 0x33, 0x37, 0xf1, 0x23, 0x74, 0x33, 0x6d, 0x25, 0x02, 0x43, 0x06, 0x87, 0x8f, - 0xc1, 0x8f, 0x0f, 0xa2, 0x5c, 0xa8, 0x66, 0xea, 0xc5, 0xc6, 0x6b, 0x51, 0x68, 0xde, 0xdc, 0x3a, - 0xfb, 0x0a, 0x39, 0xcf, 0x17, 0x3f, 0x45, 0xd8, 0x07, 0xe6, 0x0e, 0xb9, 0xa3, 0xda, 0x4f, 0x37, - 0x04, 0x52, 0xf9, 0xdd, 0x89, 0x42, 0x13, 0x93, 0x39, 0xeb, 0x69, 0x68, 0xde, 0x98, 0x47, 0x55, - 0x7b, 0x9c, 0xc1, 0x55, 0xfb, 0xd5, 0x40, 0xb7, 0x66, 0x66, 0x39, 0x19, 0x9b, 0x20, 0xe9, 0x78, - 0xfc, 0x14, 0x15, 0xe2, 0x1f, 0xd3, 0xa2, 0x92, 0xaa, 0xe1, 0x2e, 0x6d, 0xde, 0x59, 0xec, 0x37, - 0x26, 0xff, 0x6c, 0x0f, 0x24, 0x6d, 0x60, 0x3d, 0x34, 0x68, 0x8c, 0x91, 0x94, 0x15, 0x7f, 0x89, + 0x40, 0x67, 0xfd, 0x6a, 0xbf, 0xe4, 0xd1, 0xda, 0x7e, 0x20, 0xa9, 0x64, 0x6e, 0xe7, 0x31, 0x34, + 0xbb, 0x9c, 0xf7, 0x70, 0x15, 0x65, 0x5d, 0x3a, 0x80, 0xb2, 0x51, 0x35, 0xea, 0xc5, 0xc6, 0xca, + 0x71, 0x68, 0x2e, 0x45, 0xa1, 0x99, 0xbd, 0x47, 0x07, 0x40, 0x94, 0x05, 0x3f, 0x45, 0x2b, 0x4e, + 0x9f, 0x81, 0x2b, 0x77, 0xb8, 0xdb, 0x66, 0x9d, 0xf2, 0x72, 0xd5, 0xa8, 0x97, 0xb6, 0x3e, 0xb4, + 0x16, 0x2d, 0xa2, 0xa5, 0x43, 0xed, 0x4c, 0x90, 0x34, 0xfe, 0xaf, 0x03, 0xad, 0x4c, 0xa2, 0x64, + 0x2a, 0x10, 0xa6, 0x28, 0xe7, 0x07, 0x7d, 0x10, 0xe5, 0x4c, 0x35, 0x53, 0x2f, 0x6d, 0x7d, 0xb0, + 0x78, 0x44, 0x12, 0xf4, 0xe1, 0x31, 0x93, 0xdd, 0xfb, 0x1e, 0x24, 0x16, 0xd1, 0x58, 0xd5, 0x01, + 0x73, 0xb1, 0x4d, 0x90, 0x84, 0x19, 0xef, 0xa1, 0xd5, 0x36, 0x65, 0xfd, 0xc0, 0x87, 0x03, 0xde, + 0x67, 0xce, 0x51, 0x39, 0xab, 0xca, 0xf0, 0x7a, 0x14, 0x9a, 0xab, 0x77, 0x27, 0x0d, 0xa7, 0xa1, + 0xb9, 0x3e, 0x05, 0x3c, 0x38, 0xf2, 0x80, 0x4c, 0x3b, 0xe3, 0x8f, 0x51, 0x69, 0x40, 0xa5, 0xd3, + 0xd5, 0x5c, 0x45, 0xc5, 0x55, 0x8b, 0x42, 0xb3, 0xb4, 0x3f, 0x86, 0x4f, 0x43, 0x73, 0x6d, 0xe2, + 0xa8, 0x78, 0x26, 0xdd, 0xf0, 0xb7, 0x68, 0x3d, 0xae, 0xbb, 0xf0, 0xa8, 0x03, 0x87, 0xd0, 0x07, + 0x47, 0x72, 0xbf, 0x9c, 0x53, 0x45, 0x7f, 0x6b, 0xa2, 0x04, 0xe9, 0x9f, 0xb7, 0xbc, 0x5e, 0x27, + 0x06, 0x84, 0x15, 0x37, 0x98, 0x35, 0xdc, 0xb4, 0xf6, 0x68, 0x13, 0xfa, 0x23, 0xd7, 0xc6, 0x2b, + 0x51, 0x68, 0xae, 0xdf, 0x9b, 0x65, 0x24, 0xf3, 0x41, 0x30, 0x47, 0x57, 0x79, 0xf3, 0x1b, 0x70, + 0x64, 0x1a, 0xb6, 0x74, 0xf1, 0xb0, 0x38, 0x0a, 0xcd, 0xab, 0xf7, 0xa7, 0xe8, 0xc8, 0x0c, 0x7d, + 0x5c, 0x30, 0xc1, 0x5a, 0xf0, 0x49, 0xbb, 0x0d, 0x8e, 0x14, 0xe5, 0x2b, 0xe3, 0x82, 0x1d, 0x8e, + 0xe1, 0xb8, 0x60, 0xe3, 0xe3, 0x4e, 0x9f, 0x0a, 0x41, 0x26, 0xdd, 0xf0, 0x1d, 0x74, 0x35, 0xee, + 0x7a, 0x1e, 0xc8, 0x43, 0x70, 0xb8, 0xdb, 0x12, 0xe5, 0x7c, 0xd5, 0xa8, 0xe7, 0x92, 0x17, 0x3c, + 0x98, 0xb2, 0x90, 0x99, 0x9b, 0xf8, 0x21, 0xba, 0x91, 0xb6, 0x12, 0x81, 0x21, 0x83, 0xa7, 0x8f, + 0xc0, 0x8f, 0x0f, 0xa2, 0x5c, 0xa8, 0x66, 0xea, 0xc5, 0xc6, 0x6b, 0x51, 0x68, 0xde, 0xd8, 0x3e, + 0xfb, 0x0a, 0x39, 0xcf, 0x17, 0x3f, 0x41, 0xd8, 0x07, 0xe6, 0x0e, 0xb9, 0xa3, 0xda, 0x4f, 0x37, + 0x04, 0x52, 0xf9, 0xdd, 0x8e, 0x42, 0x13, 0x93, 0x39, 0xeb, 0x69, 0x68, 0x5e, 0x9f, 0x47, 0x55, + 0x7b, 0x9c, 0xc1, 0x55, 0xfb, 0xd5, 0x40, 0x37, 0x67, 0x66, 0x39, 0x19, 0x9b, 0x20, 0xe9, 0x78, + 0xfc, 0x04, 0x15, 0xe2, 0x1f, 0xd3, 0xa2, 0x92, 0xaa, 0xe1, 0x2e, 0x6d, 0xdd, 0x5e, 0xec, 0x37, + 0x26, 0xff, 0x6c, 0x1f, 0x24, 0x6d, 0x60, 0x3d, 0x34, 0x68, 0x8c, 0x91, 0x94, 0x15, 0x7f, 0x89, 0x0a, 0x3a, 0xb2, 0x28, 0x2f, 0xab, 0x11, 0x7d, 0x6f, 0xf1, 0x11, 0x9d, 0x79, 0x7b, 0x23, 0x1b, - 0x87, 0x22, 0x85, 0x43, 0x4d, 0x58, 0xfb, 0xd3, 0x40, 0xd5, 0x17, 0xe5, 0xb7, 0xcb, 0x84, 0xc4, - 0x5f, 0xcd, 0xe5, 0x68, 0x2d, 0xd8, 0xaa, 0x4c, 0x24, 0x19, 0x5e, 0xd7, 0x19, 0x16, 0x46, 0xc8, - 0x44, 0x7e, 0x3d, 0x94, 0x63, 0x12, 0x06, 0xa3, 0xe4, 0xee, 0x5d, 0x38, 0xb9, 0xa9, 0x87, 0x8f, - 0x37, 0xd1, 0x4e, 0x4c, 0x4e, 0x92, 0x18, 0xb5, 0x9f, 0x0d, 0x94, 0x8d, 0x57, 0x13, 0x7e, 0x03, - 0x15, 0xa9, 0xc7, 0x3e, 0xf5, 0x79, 0xe0, 0x89, 0xb2, 0xa1, 0x7a, 0x70, 0x35, 0x0a, 0xcd, 0xe2, - 0xd6, 0xfe, 0x4e, 0x02, 0x92, 0xb1, 0x1d, 0x6f, 0xa0, 0x12, 0xf5, 0x58, 0xda, 0xb2, 0xcb, 0xea, - 0xfa, 0xb5, 0x78, 0x80, 0xb6, 0xf6, 0x77, 0xd2, 0x36, 0x9d, 0xbc, 0x13, 0xf3, 0xfb, 0x20, 0x78, - 0xe0, 0x3b, 0x7a, 0xb3, 0x6a, 0x7e, 0x32, 0x02, 0xc9, 0xd8, 0x8e, 0xdf, 0x44, 0x39, 0xe1, 0x70, - 0x0f, 0xf4, 0x5e, 0xbc, 0x11, 0x3f, 0xfb, 0x20, 0x06, 0x4e, 0x43, 0xb3, 0xa8, 0x3e, 0x54, 0x83, - 0x26, 0x97, 0x6a, 0x3f, 0x1a, 0x08, 0xcf, 0xaf, 0x5e, 0xfc, 0x11, 0x42, 0x3c, 0x3d, 0xe9, 0x94, - 0x4c, 0xd5, 0x55, 0x29, 0x7a, 0x1a, 0x9a, 0xab, 0xe9, 0x49, 0x51, 0x4e, 0xb8, 0xe0, 0x7d, 0x94, - 0x8d, 0xd7, 0xb5, 0x56, 0x1e, 0xeb, 0xdf, 0xe9, 0xc0, 0x58, 0xd3, 0xe2, 0x13, 0x51, 0x4c, 0xb5, - 0x1f, 0x0c, 0x74, 0xfd, 0x00, 0xfc, 0x21, 0x73, 0x80, 0x40, 0x1b, 0x7c, 0x70, 0x1d, 0xc0, 0x36, - 0x2a, 0xa6, 0x3b, 0x51, 0xeb, 0xe1, 0x9a, 0xf6, 0x2d, 0xa6, 0xfb, 0x93, 0x8c, 0xef, 0xa4, 0xda, - 0xb9, 0x7c, 0xae, 0x76, 0xde, 0x42, 0x59, 0x8f, 0xca, 0x6e, 0x39, 0xa3, 0x6e, 0x14, 0x62, 0xeb, - 0x3e, 0x95, 0x5d, 0xa2, 0x50, 0x65, 0xe5, 0xbe, 0x54, 0xc5, 0xcd, 0x69, 0x2b, 0xf7, 0x25, 0x51, - 0x68, 0xed, 0x8f, 0x2b, 0x68, 0xed, 0x31, 0xed, 0xb3, 0xd6, 0xa5, 0x5e, 0x5f, 0xea, 0xf5, 0x82, - 0x7a, 0x8d, 0x2e, 0xf5, 0xfa, 0x22, 0x7a, 0x5d, 0x3b, 0x31, 0x50, 0x65, 0x6e, 0xd6, 0x5e, 0xb6, - 0x9e, 0x7e, 0x3d, 0xa7, 0xa7, 0xef, 0x2f, 0x3e, 0x42, 0x73, 0xaf, 0x9f, 0x53, 0xd4, 0xbf, 0x0c, - 0x54, 0x7b, 0x71, 0x8e, 0x2f, 0x41, 0x53, 0x07, 0xd3, 0x9a, 0xfa, 0xd9, 0x7f, 0x48, 0x70, 0x11, - 0x55, 0xfd, 0xc9, 0x40, 0xff, 0x3b, 0x63, 0x9d, 0xe1, 0x57, 0x51, 0x26, 0xf0, 0xfb, 0x7a, 0x2d, - 0xe7, 0xa3, 0xd0, 0xcc, 0x3c, 0x22, 0xbb, 0x24, 0xc6, 0x30, 0x45, 0x79, 0x91, 0x28, 0x83, 0x4e, - 0xff, 0xee, 0xe2, 0x6f, 0x9c, 0x95, 0x94, 0x46, 0x29, 0x0a, 0xcd, 0xfc, 0x08, 0x1d, 0xf1, 0xe2, - 0x3a, 0x2a, 0x38, 0xb4, 0x11, 0xb8, 0x2d, 0xad, 0x69, 0x2b, 0x8d, 0x95, 0xb8, 0x5c, 0xdb, 0x5b, - 0x09, 0x46, 0x52, 0x6b, 0xe3, 0xf6, 0xf1, 0x49, 0x65, 0xe9, 0xd9, 0x49, 0x65, 0xe9, 0xf9, 0x49, - 0x65, 0xe9, 0xbb, 0xa8, 0x62, 0x1c, 0x47, 0x15, 0xe3, 0x59, 0x54, 0x31, 0x9e, 0x47, 0x15, 0xe3, - 0xb7, 0xa8, 0x62, 0x7c, 0xff, 0x7b, 0x65, 0xe9, 0x8b, 0xbc, 0x8e, 0xff, 0x77, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xae, 0x27, 0x2b, 0xcb, 0x2c, 0x0f, 0x00, 0x00, + 0x87, 0x22, 0x29, 0x61, 0xed, 0x4f, 0x03, 0x55, 0x5f, 0x94, 0xdf, 0x1e, 0x13, 0x12, 0x7f, 0x35, + 0x97, 0xa3, 0xb5, 0x60, 0xab, 0x32, 0x91, 0x64, 0x78, 0x4d, 0x67, 0x58, 0x18, 0x21, 0x13, 0xf9, + 0xf5, 0x50, 0x8e, 0x49, 0x18, 0x8c, 0x92, 0xbb, 0x7b, 0xe1, 0xe4, 0xa6, 0x1e, 0x3e, 0xde, 0x44, + 0xbb, 0x31, 0x39, 0x49, 0x62, 0xd4, 0x7e, 0x36, 0x50, 0x36, 0x5e, 0x4d, 0xf8, 0x0d, 0x54, 0xa4, + 0x1e, 0xfb, 0xd4, 0xe7, 0x81, 0x27, 0xca, 0x86, 0xea, 0xc1, 0xd5, 0x28, 0x34, 0x8b, 0xdb, 0x07, + 0xbb, 0x09, 0x48, 0xc6, 0x76, 0xbc, 0x89, 0x4a, 0xd4, 0x63, 0x69, 0xcb, 0x2e, 0xab, 0xeb, 0x6b, + 0xf1, 0x00, 0x6d, 0x1f, 0xec, 0xa6, 0x6d, 0x3a, 0x79, 0x27, 0xe6, 0xf7, 0x41, 0xf0, 0xc0, 0x77, + 0xf4, 0x66, 0xd5, 0xfc, 0x64, 0x04, 0x92, 0xb1, 0x1d, 0xbf, 0x89, 0x72, 0xc2, 0xe1, 0x1e, 0xe8, + 0xbd, 0x78, 0x3d, 0x7e, 0xf6, 0x61, 0x0c, 0x9c, 0x86, 0x66, 0x51, 0x7d, 0xa8, 0x06, 0x4d, 0x2e, + 0xd5, 0x7e, 0x34, 0x10, 0x9e, 0x5f, 0xbd, 0xf8, 0x23, 0x84, 0x78, 0x7a, 0xd2, 0x29, 0x99, 0xaa, + 0xab, 0x52, 0xf4, 0x34, 0x34, 0x57, 0xd3, 0x93, 0xa2, 0x9c, 0x70, 0xc1, 0x07, 0x28, 0x1b, 0xaf, + 0x6b, 0xad, 0x3c, 0xd6, 0xbf, 0xd3, 0x81, 0xb1, 0xa6, 0xc5, 0x27, 0xa2, 0x98, 0x6a, 0x3f, 0x18, + 0xe8, 0xda, 0x21, 0xf8, 0x43, 0xe6, 0x00, 0x81, 0x36, 0xf8, 0xe0, 0x3a, 0x80, 0x6d, 0x54, 0x4c, + 0x77, 0xa2, 0xd6, 0xc3, 0x75, 0xed, 0x5b, 0x4c, 0xf7, 0x27, 0x19, 0xdf, 0x49, 0xb5, 0x73, 0xf9, + 0x5c, 0xed, 0xbc, 0x89, 0xb2, 0x1e, 0x95, 0xdd, 0x72, 0x46, 0xdd, 0x28, 0xc4, 0xd6, 0x03, 0x2a, + 0xbb, 0x44, 0xa1, 0xca, 0xca, 0x7d, 0xa9, 0x8a, 0x9b, 0xd3, 0x56, 0xee, 0x4b, 0xa2, 0xd0, 0xda, + 0x1f, 0x57, 0xd0, 0xfa, 0x23, 0xda, 0x67, 0xad, 0x4b, 0xbd, 0xbe, 0xd4, 0xeb, 0x05, 0xf5, 0x1a, + 0x5d, 0xea, 0xf5, 0x45, 0xf4, 0xba, 0x76, 0x62, 0xa0, 0xca, 0xdc, 0xac, 0xbd, 0x6c, 0x3d, 0xfd, + 0x7a, 0x4e, 0x4f, 0xdf, 0x5f, 0x7c, 0x84, 0xe6, 0x5e, 0x3f, 0xa7, 0xa8, 0x7f, 0x19, 0xa8, 0xf6, + 0xe2, 0x1c, 0x5f, 0x82, 0xa6, 0x0e, 0xa6, 0x35, 0xf5, 0xb3, 0xff, 0x90, 0xe0, 0x22, 0xaa, 0xfa, + 0x93, 0x81, 0xfe, 0x77, 0xc6, 0x3a, 0xc3, 0xaf, 0xa2, 0x4c, 0xe0, 0xf7, 0xf5, 0x5a, 0xce, 0x47, + 0xa1, 0x99, 0x79, 0x48, 0xf6, 0x48, 0x8c, 0x61, 0x8a, 0xf2, 0x22, 0x51, 0x06, 0x9d, 0xfe, 0x9d, + 0xc5, 0xdf, 0x38, 0x2b, 0x29, 0x8d, 0x52, 0x14, 0x9a, 0xf9, 0x11, 0x3a, 0xe2, 0xc5, 0x75, 0x54, + 0x70, 0x68, 0x23, 0x70, 0x5b, 0x5a, 0xd3, 0x56, 0x1a, 0x2b, 0x71, 0xb9, 0x76, 0xb6, 0x13, 0x8c, + 0xa4, 0xd6, 0xc6, 0xad, 0xe3, 0x93, 0xca, 0xd2, 0xb3, 0x93, 0xca, 0xd2, 0xf3, 0x93, 0xca, 0xd2, + 0x77, 0x51, 0xc5, 0x38, 0x8e, 0x2a, 0xc6, 0xb3, 0xa8, 0x62, 0x3c, 0x8f, 0x2a, 0xc6, 0x6f, 0x51, + 0xc5, 0xf8, 0xfe, 0xf7, 0xca, 0xd2, 0x17, 0x79, 0x1d, 0xff, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xcc, 0x27, 0xa9, 0x41, 0x2c, 0x0f, 0x00, 0x00, } func (m *MutatingWebhook) Marshal() (dAtA []byte, err error) { @@ -1859,10 +1859,7 @@ func (m *MutatingWebhook) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1979,10 +1976,7 @@ func (m *MutatingWebhookConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2099,10 +2093,7 @@ func (m *MutatingWebhookConfigurationList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2281,10 +2272,7 @@ func (m *Rule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2399,10 +2387,7 @@ func (m *RuleWithOperations) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2569,10 +2554,7 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2944,10 +2926,7 @@ func (m *ValidatingWebhook) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3064,10 +3043,7 @@ func (m *ValidatingWebhookConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3184,10 +3160,7 @@ func (m *ValidatingWebhookConfigurationList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3340,10 +3313,7 @@ func (m *WebhookClientConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto b/vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto index bdae740376..2752f4faee 100644 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto +++ b/vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto @@ -134,7 +134,7 @@ message MutatingWebhook { // SideEffects states whether this webhook has side effects. // Acceptable values are: Unknown, None, Some, NoneOnDryRun // Webhooks with side effects MUST implement a reconciliation system, since a request may be - // rejected by a future step in the admission change and the side effects therefore need to be undone. + // rejected by a future step in the admission chain and the side effects therefore need to be undone. // Requests with the dryRun attribute will be auto-rejected if they match a webhook with // sideEffects == Unknown or Some. Defaults to Unknown. // +optional @@ -388,7 +388,7 @@ message ValidatingWebhook { // SideEffects states whether this webhook has side effects. // Acceptable values are: Unknown, None, Some, NoneOnDryRun // Webhooks with side effects MUST implement a reconciliation system, since a request may be - // rejected by a future step in the admission change and the side effects therefore need to be undone. + // rejected by a future step in the admission chain and the side effects therefore need to be undone. // Requests with the dryRun attribute will be auto-rejected if they match a webhook with // sideEffects == Unknown or Some. Defaults to Unknown. // +optional diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/register.go b/vendor/k8s.io/api/admissionregistration/v1beta1/register.go index d126da9fb7..098744cf63 100644 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/register.go +++ b/vendor/k8s.io/api/admissionregistration/v1beta1/register.go @@ -22,6 +22,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" ) +// GroupName is the group name for this API. const GroupName = "admissionregistration.k8s.io" // SchemeGroupVersion is group version used to register these objects @@ -32,12 +33,14 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } +// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. +// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. var ( - // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. - // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. + // SchemeBuilder points to a list of functions added to Scheme. SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) localSchemeBuilder = &SchemeBuilder - AddToScheme = localSchemeBuilder.AddToScheme + // AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme. + AddToScheme = localSchemeBuilder.AddToScheme ) // Adds the list of known types to scheme. diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/types.go b/vendor/k8s.io/api/admissionregistration/v1beta1/types.go index 2297b7e130..630ea1f57b 100644 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/types.go +++ b/vendor/k8s.io/api/admissionregistration/v1beta1/types.go @@ -63,6 +63,7 @@ type Rule struct { Scope *ScopeType `json:"scope,omitempty" protobuf:"bytes,4,rep,name=scope"` } +// ScopeType specifies a scope for a Rule. type ScopeType string const ( @@ -75,6 +76,7 @@ const ( AllScopes ScopeType = "*" ) +// FailurePolicyType specifies a failure policy that defines how unrecognized errors from the admission endpoint are handled. type FailurePolicyType string const ( @@ -94,6 +96,7 @@ const ( Equivalent MatchPolicyType = "Equivalent" ) +// SideEffectClass specifies the types of side effects a webhook may have. type SideEffectClass string const ( @@ -294,7 +297,7 @@ type ValidatingWebhook struct { // SideEffects states whether this webhook has side effects. // Acceptable values are: Unknown, None, Some, NoneOnDryRun // Webhooks with side effects MUST implement a reconciliation system, since a request may be - // rejected by a future step in the admission change and the side effects therefore need to be undone. + // rejected by a future step in the admission chain and the side effects therefore need to be undone. // Requests with the dryRun attribute will be auto-rejected if they match a webhook with // sideEffects == Unknown or Some. Defaults to Unknown. // +optional @@ -426,7 +429,7 @@ type MutatingWebhook struct { // SideEffects states whether this webhook has side effects. // Acceptable values are: Unknown, None, Some, NoneOnDryRun // Webhooks with side effects MUST implement a reconciliation system, since a request may be - // rejected by a future step in the admission change and the side effects therefore need to be undone. + // rejected by a future step in the admission chain and the side effects therefore need to be undone. // Requests with the dryRun attribute will be auto-rejected if they match a webhook with // sideEffects == Unknown or Some. Defaults to Unknown. // +optional @@ -496,6 +499,7 @@ type RuleWithOperations struct { Rule `json:",inline" protobuf:"bytes,2,opt,name=rule"` } +// OperationType specifies an operation for a request. type OperationType string // The constants should be kept in sync with those defined in k8s.io/kubernetes/pkg/admission/interface.go. diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go index f682172bba..314c3afae0 100644 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go @@ -36,7 +36,7 @@ var map_MutatingWebhook = map[string]string{ "matchPolicy": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", "namespaceSelector": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", "objectSelector": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.", - "sideEffects": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", + "sideEffects": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", "timeoutSeconds": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", "admissionReviewVersions": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", "reinvocationPolicy": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", @@ -108,7 +108,7 @@ var map_ValidatingWebhook = map[string]string{ "matchPolicy": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", "namespaceSelector": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", "objectSelector": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.", - "sideEffects": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", + "sideEffects": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", "timeoutSeconds": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", "admissionReviewVersions": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", } diff --git a/vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.pb.go b/vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.pb.go index 0af1c09d1c..ee12c7d0dc 100644 --- a/vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.pb.go @@ -902,10 +902,7 @@ func (m *ServerStorageVersion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1054,10 +1051,7 @@ func (m *StorageVersion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1287,10 +1281,7 @@ func (m *StorageVersionCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1407,10 +1398,7 @@ func (m *StorageVersionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1460,10 +1448,7 @@ func (m *StorageVersionSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1614,10 +1599,7 @@ func (m *StorageVersionStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/apps/v1/generated.pb.go b/vendor/k8s.io/api/apps/v1/generated.pb.go index 6ef25f50f9..19fe456388 100644 --- a/vendor/k8s.io/api/apps/v1/generated.pb.go +++ b/vendor/k8s.io/api/apps/v1/generated.pb.go @@ -870,132 +870,132 @@ func init() { var fileDescriptor_e1014cab6f31e43b = []byte{ // 2031 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x24, 0x47, - 0x1d, 0x75, 0xcf, 0x87, 0x3d, 0x2e, 0xaf, 0xed, 0xdd, 0xb2, 0xb1, 0x27, 0xbb, 0x64, 0x66, 0x19, + 0x15, 0x77, 0xcf, 0x87, 0x3d, 0x2e, 0xaf, 0xed, 0xdd, 0xb2, 0xb1, 0x27, 0xbb, 0x64, 0x66, 0x19, 0x60, 0xe3, 0x64, 0xb3, 0x3d, 0xec, 0x66, 0x13, 0xa1, 0x2c, 0x02, 0x79, 0xc6, 0x21, 0x84, 0x78, 0x6c, 0x53, 0x5e, 0xef, 0x61, 0x09, 0x12, 0xe5, 0xe9, 0xda, 0x71, 0xc7, 0xfd, 0xa5, 0xee, 0xea, - 0x61, 0x47, 0x5c, 0x10, 0x12, 0x9c, 0x38, 0xf0, 0x9f, 0x20, 0x84, 0xe0, 0x86, 0x22, 0xc4, 0x65, - 0x2f, 0x48, 0x11, 0x17, 0x72, 0xb2, 0xd8, 0xc9, 0x09, 0xa1, 0x1c, 0xb9, 0xe4, 0x02, 0xaa, 0xea, - 0xea, 0xef, 0x6a, 0xcf, 0xd8, 0x9b, 0x38, 0x24, 0xca, 0xcd, 0x53, 0xf5, 0x7e, 0xaf, 0x7f, 0x55, - 0xf5, 0xab, 0x7a, 0xaf, 0xab, 0x0d, 0xee, 0x1d, 0x7f, 0xdb, 0x53, 0x75, 0xbb, 0x7d, 0xec, 0x1f, - 0x12, 0xd7, 0x22, 0x94, 0x78, 0xed, 0x21, 0xb1, 0x34, 0xdb, 0x6d, 0x8b, 0x0e, 0xec, 0xe8, 0x6d, - 0xec, 0x38, 0x5e, 0x7b, 0x78, 0xbb, 0x3d, 0x20, 0x16, 0x71, 0x31, 0x25, 0x9a, 0xea, 0xb8, 0x36, - 0xb5, 0x21, 0x0c, 0x30, 0x2a, 0x76, 0x74, 0x95, 0x61, 0xd4, 0xe1, 0xed, 0xab, 0xb7, 0x06, 0x3a, - 0x3d, 0xf2, 0x0f, 0xd5, 0xbe, 0x6d, 0xb6, 0x07, 0xf6, 0xc0, 0x6e, 0x73, 0xe8, 0xa1, 0xff, 0x88, - 0xff, 0xe2, 0x3f, 0xf8, 0x5f, 0x01, 0xc5, 0xd5, 0x56, 0xe2, 0x31, 0x7d, 0xdb, 0x25, 0x92, 0xc7, - 0x5c, 0xbd, 0x1b, 0x63, 0x4c, 0xdc, 0x3f, 0xd2, 0x2d, 0xe2, 0x8e, 0xda, 0xce, 0xf1, 0x80, 0x35, - 0x78, 0x6d, 0x93, 0x50, 0x2c, 0x8b, 0x6a, 0x17, 0x45, 0xb9, 0xbe, 0x45, 0x75, 0x93, 0xe4, 0x02, - 0x5e, 0x9b, 0x14, 0xe0, 0xf5, 0x8f, 0x88, 0x89, 0x73, 0x71, 0xaf, 0x14, 0xc5, 0xf9, 0x54, 0x37, - 0xda, 0xba, 0x45, 0x3d, 0xea, 0x66, 0x83, 0x5a, 0xff, 0x51, 0x00, 0xec, 0xda, 0x16, 0x75, 0x6d, - 0xc3, 0x20, 0x2e, 0x22, 0x43, 0xdd, 0xd3, 0x6d, 0x0b, 0xfe, 0x14, 0xd4, 0xd8, 0x78, 0x34, 0x4c, - 0x71, 0x5d, 0xb9, 0xae, 0x6c, 0x2c, 0xdc, 0xf9, 0x96, 0x1a, 0x4f, 0x72, 0x44, 0xaf, 0x3a, 0xc7, - 0x03, 0xd6, 0xe0, 0xa9, 0x0c, 0xad, 0x0e, 0x6f, 0xab, 0xbb, 0x87, 0xef, 0x92, 0x3e, 0xed, 0x11, - 0x8a, 0x3b, 0xf0, 0xc9, 0x49, 0x73, 0x66, 0x7c, 0xd2, 0x04, 0x71, 0x1b, 0x8a, 0x58, 0xe1, 0x2e, - 0xa8, 0x70, 0xf6, 0x12, 0x67, 0xbf, 0x55, 0xc8, 0x2e, 0x06, 0xad, 0x22, 0xfc, 0xb3, 0x37, 0x1e, - 0x53, 0x62, 0xb1, 0xf4, 0x3a, 0x97, 0x04, 0x75, 0x65, 0x0b, 0x53, 0x8c, 0x38, 0x11, 0x7c, 0x19, - 0xd4, 0x5c, 0x91, 0x7e, 0xbd, 0x7c, 0x5d, 0xd9, 0x28, 0x77, 0x2e, 0x0b, 0x54, 0x2d, 0x1c, 0x16, - 0x8a, 0x10, 0xad, 0xbf, 0x2a, 0x60, 0x2d, 0x3f, 0xee, 0x6d, 0xdd, 0xa3, 0xf0, 0x9d, 0xdc, 0xd8, - 0xd5, 0xe9, 0xc6, 0xce, 0xa2, 0xf9, 0xc8, 0xa3, 0x07, 0x87, 0x2d, 0x89, 0x71, 0xbf, 0x0d, 0xaa, - 0x3a, 0x25, 0xa6, 0x57, 0x2f, 0x5d, 0x2f, 0x6f, 0x2c, 0xdc, 0xb9, 0xa1, 0xe6, 0x6b, 0x57, 0xcd, - 0x27, 0xd6, 0x59, 0x14, 0x94, 0xd5, 0xb7, 0x58, 0x30, 0x0a, 0x38, 0x5a, 0xff, 0x55, 0xc0, 0xfc, - 0x16, 0x26, 0xa6, 0x6d, 0xed, 0x13, 0x7a, 0x01, 0x8b, 0xd6, 0x05, 0x15, 0xcf, 0x21, 0x7d, 0xb1, - 0x68, 0x5f, 0x93, 0xe5, 0x1e, 0xa5, 0xb3, 0xef, 0x90, 0x7e, 0xbc, 0x50, 0xec, 0x17, 0xe2, 0xc1, - 0xf0, 0x6d, 0x30, 0xeb, 0x51, 0x4c, 0x7d, 0x8f, 0x2f, 0xd3, 0xc2, 0x9d, 0xaf, 0x9f, 0x4e, 0xc3, - 0xa1, 0x9d, 0x25, 0x41, 0x34, 0x1b, 0xfc, 0x46, 0x82, 0xa2, 0xf5, 0xaf, 0x12, 0x80, 0x11, 0xb6, - 0x6b, 0x5b, 0x9a, 0x4e, 0x59, 0xfd, 0xbe, 0x0e, 0x2a, 0x74, 0xe4, 0x10, 0x3e, 0x0d, 0xf3, 0x9d, - 0x1b, 0x61, 0x16, 0xf7, 0x47, 0x0e, 0xf9, 0xf8, 0xa4, 0xb9, 0x96, 0x8f, 0x60, 0x3d, 0x88, 0xc7, - 0xc0, 0xed, 0x28, 0xbf, 0x12, 0x8f, 0xbe, 0x9b, 0x7e, 0xf4, 0xc7, 0x27, 0x4d, 0xc9, 0x61, 0xa1, - 0x46, 0x4c, 0xe9, 0x04, 0xe1, 0x10, 0x40, 0x03, 0x7b, 0xf4, 0xbe, 0x8b, 0x2d, 0x2f, 0x78, 0x92, - 0x6e, 0x12, 0x31, 0xf2, 0x97, 0xa6, 0x5b, 0x1e, 0x16, 0xd1, 0xb9, 0x2a, 0xb2, 0x80, 0xdb, 0x39, - 0x36, 0x24, 0x79, 0x02, 0xbc, 0x01, 0x66, 0x5d, 0x82, 0x3d, 0xdb, 0xaa, 0x57, 0xf8, 0x28, 0xa2, - 0x09, 0x44, 0xbc, 0x15, 0x89, 0x5e, 0xf8, 0x22, 0x98, 0x33, 0x89, 0xe7, 0xe1, 0x01, 0xa9, 0x57, - 0x39, 0x70, 0x59, 0x00, 0xe7, 0x7a, 0x41, 0x33, 0x0a, 0xfb, 0x5b, 0xbf, 0x57, 0xc0, 0x62, 0x34, - 0x73, 0x17, 0xb0, 0x55, 0x3a, 0xe9, 0xad, 0xf2, 0xfc, 0xa9, 0x75, 0x52, 0xb0, 0x43, 0xde, 0x2b, - 0x27, 0x72, 0x66, 0x45, 0x08, 0x7f, 0x02, 0x6a, 0x1e, 0x31, 0x48, 0x9f, 0xda, 0xae, 0xc8, 0xf9, - 0x95, 0x29, 0x73, 0xc6, 0x87, 0xc4, 0xd8, 0x17, 0xa1, 0x9d, 0x4b, 0x2c, 0xe9, 0xf0, 0x17, 0x8a, - 0x28, 0xe1, 0x8f, 0x40, 0x8d, 0x12, 0xd3, 0x31, 0x30, 0x25, 0x62, 0x9b, 0xa4, 0xea, 0x9b, 0x95, - 0x0b, 0x23, 0xdb, 0xb3, 0xb5, 0xfb, 0x02, 0xc6, 0x37, 0x4a, 0x34, 0x0f, 0x61, 0x2b, 0x8a, 0x68, - 0xe0, 0x31, 0x58, 0xf2, 0x1d, 0x8d, 0x21, 0x29, 0x3b, 0xba, 0x07, 0x23, 0x51, 0x3e, 0x37, 0x4f, - 0x9d, 0x90, 0x83, 0x54, 0x48, 0x67, 0x4d, 0x3c, 0x60, 0x29, 0xdd, 0x8e, 0x32, 0xd4, 0x70, 0x13, - 0x2c, 0x9b, 0xba, 0x85, 0x08, 0xd6, 0x46, 0xfb, 0xa4, 0x6f, 0x5b, 0x9a, 0xc7, 0x0b, 0xa8, 0xda, - 0x59, 0x17, 0x04, 0xcb, 0xbd, 0x74, 0x37, 0xca, 0xe2, 0xe1, 0x36, 0x58, 0x0d, 0xcf, 0xd9, 0x1f, - 0xe8, 0x1e, 0xb5, 0xdd, 0xd1, 0xb6, 0x6e, 0xea, 0xb4, 0x3e, 0xcb, 0x79, 0xea, 0xe3, 0x93, 0xe6, - 0x2a, 0x92, 0xf4, 0x23, 0x69, 0x54, 0xeb, 0x37, 0xb3, 0x60, 0x39, 0x73, 0x1a, 0xc0, 0x07, 0x60, - 0xad, 0xef, 0xbb, 0x2e, 0xb1, 0xe8, 0x8e, 0x6f, 0x1e, 0x12, 0x77, 0xbf, 0x7f, 0x44, 0x34, 0xdf, - 0x20, 0x1a, 0x5f, 0xd1, 0x6a, 0xa7, 0x21, 0x72, 0x5d, 0xeb, 0x4a, 0x51, 0xa8, 0x20, 0x1a, 0xfe, - 0x10, 0x40, 0x8b, 0x37, 0xf5, 0x74, 0xcf, 0x8b, 0x38, 0x4b, 0x9c, 0x33, 0xda, 0x80, 0x3b, 0x39, - 0x04, 0x92, 0x44, 0xb1, 0x1c, 0x35, 0xe2, 0xe9, 0x2e, 0xd1, 0xb2, 0x39, 0x96, 0xd3, 0x39, 0x6e, - 0x49, 0x51, 0xa8, 0x20, 0x1a, 0xbe, 0x0a, 0x16, 0x82, 0xa7, 0xf1, 0x39, 0x17, 0x8b, 0xb3, 0x22, - 0xc8, 0x16, 0x76, 0xe2, 0x2e, 0x94, 0xc4, 0xb1, 0xa1, 0xd9, 0x87, 0x1e, 0x71, 0x87, 0x44, 0x7b, - 0x33, 0xf0, 0x00, 0x4c, 0x28, 0xab, 0x5c, 0x28, 0xa3, 0xa1, 0xed, 0xe6, 0x10, 0x48, 0x12, 0xc5, - 0x86, 0x16, 0x54, 0x4d, 0x6e, 0x68, 0xb3, 0xe9, 0xa1, 0x1d, 0x48, 0x51, 0xa8, 0x20, 0x9a, 0xd5, - 0x5e, 0x90, 0xf2, 0xe6, 0x10, 0xeb, 0x06, 0x3e, 0x34, 0x48, 0x7d, 0x2e, 0x5d, 0x7b, 0x3b, 0xe9, - 0x6e, 0x94, 0xc5, 0xc3, 0x37, 0xc1, 0x95, 0xa0, 0xe9, 0xc0, 0xc2, 0x11, 0x49, 0x8d, 0x93, 0x3c, - 0x27, 0x48, 0xae, 0xec, 0x64, 0x01, 0x28, 0x1f, 0x03, 0x5f, 0x07, 0x4b, 0x7d, 0xdb, 0x30, 0x78, - 0x3d, 0x76, 0x6d, 0xdf, 0xa2, 0xf5, 0x79, 0xce, 0x02, 0xd9, 0x1e, 0xea, 0xa6, 0x7a, 0x50, 0x06, - 0x09, 0x1f, 0x02, 0xd0, 0x0f, 0xe5, 0xc0, 0xab, 0x83, 0x62, 0xa1, 0xcf, 0xeb, 0x50, 0x2c, 0xc0, - 0x51, 0x93, 0x87, 0x12, 0x6c, 0xad, 0xf7, 0x14, 0xb0, 0x5e, 0xb0, 0xc7, 0xe1, 0xf7, 0x52, 0xaa, - 0x77, 0x33, 0xa3, 0x7a, 0xd7, 0x0a, 0xc2, 0x12, 0xd2, 0xd7, 0x07, 0x8b, 0xcc, 0x77, 0xe8, 0xd6, - 0x20, 0x80, 0x88, 0x13, 0xec, 0x25, 0x59, 0xee, 0x28, 0x09, 0x8c, 0x8f, 0xe1, 0x2b, 0xe3, 0x93, - 0xe6, 0x62, 0xaa, 0x0f, 0xa5, 0x39, 0x5b, 0xbf, 0x2c, 0x01, 0xb0, 0x45, 0x1c, 0xc3, 0x1e, 0x99, - 0xc4, 0xba, 0x08, 0xd7, 0xb2, 0x95, 0x72, 0x2d, 0x2d, 0xe9, 0x42, 0x44, 0xf9, 0x14, 0xda, 0x96, - 0xed, 0x8c, 0x6d, 0xf9, 0xc6, 0x04, 0x9e, 0xd3, 0x7d, 0xcb, 0x3f, 0xca, 0x60, 0x25, 0x06, 0xc7, - 0xc6, 0xe5, 0x5e, 0x6a, 0x09, 0x5f, 0xc8, 0x2c, 0xe1, 0xba, 0x24, 0xe4, 0x53, 0x73, 0x2e, 0xef, - 0x82, 0x25, 0xe6, 0x2b, 0x82, 0x55, 0xe3, 0xae, 0x65, 0xf6, 0xcc, 0xae, 0x25, 0x52, 0x9d, 0xed, - 0x14, 0x13, 0xca, 0x30, 0x17, 0xb8, 0xa4, 0xb9, 0xcf, 0xa3, 0x4b, 0xfa, 0x83, 0x02, 0x96, 0xe2, - 0x65, 0xba, 0x00, 0x9b, 0xd4, 0x4d, 0xdb, 0xa4, 0xc6, 0xe9, 0x75, 0x59, 0xe0, 0x93, 0xfe, 0x5e, - 0x49, 0x66, 0xcd, 0x8d, 0xd2, 0x06, 0x7b, 0xa1, 0x72, 0x0c, 0xbd, 0x8f, 0x3d, 0x21, 0xab, 0x97, - 0x82, 0x97, 0xa9, 0xa0, 0x0d, 0x45, 0xbd, 0x29, 0x4b, 0x55, 0xfa, 0x74, 0x2d, 0x55, 0xf9, 0x93, - 0xb1, 0x54, 0xf7, 0x41, 0xcd, 0x0b, 0xcd, 0x54, 0x85, 0x53, 0xde, 0x98, 0xb4, 0x9d, 0x85, 0x8f, - 0x8a, 0x58, 0x23, 0x07, 0x15, 0x31, 0xc9, 0xbc, 0x53, 0xf5, 0xb3, 0xf4, 0x4e, 0xac, 0xbc, 0x1d, - 0xec, 0x7b, 0x44, 0xe3, 0x5b, 0xa9, 0x16, 0x97, 0xf7, 0x1e, 0x6f, 0x45, 0xa2, 0x17, 0x1e, 0x80, - 0x75, 0xc7, 0xb5, 0x07, 0x2e, 0xf1, 0xbc, 0x2d, 0x82, 0x35, 0x43, 0xb7, 0x48, 0x38, 0x80, 0x40, - 0xf5, 0xae, 0x8d, 0x4f, 0x9a, 0xeb, 0x7b, 0x72, 0x08, 0x2a, 0x8a, 0x6d, 0xfd, 0xb9, 0x02, 0x2e, - 0x67, 0x4f, 0xc4, 0x02, 0x23, 0xa2, 0x9c, 0xcb, 0x88, 0xbc, 0x9c, 0x28, 0xd1, 0xc0, 0xa5, 0x25, - 0xde, 0xf9, 0x73, 0x65, 0xba, 0x09, 0x96, 0x85, 0xf1, 0x08, 0x3b, 0x85, 0x15, 0x8b, 0x96, 0xe7, - 0x20, 0xdd, 0x8d, 0xb2, 0x78, 0x78, 0x0f, 0x2c, 0xba, 0xdc, 0x5b, 0x85, 0x04, 0x81, 0x3f, 0xf9, - 0x8a, 0x20, 0x58, 0x44, 0xc9, 0x4e, 0x94, 0xc6, 0x32, 0x6f, 0x12, 0x5b, 0x8e, 0x90, 0xa0, 0x92, - 0xf6, 0x26, 0x9b, 0x59, 0x00, 0xca, 0xc7, 0xc0, 0x1e, 0x58, 0xf1, 0xad, 0x3c, 0x55, 0x50, 0x6b, - 0xd7, 0x04, 0xd5, 0xca, 0x41, 0x1e, 0x82, 0x64, 0x71, 0xf0, 0xc7, 0x29, 0xbb, 0x32, 0xcb, 0x4f, - 0x91, 0x17, 0x4e, 0xdf, 0x0e, 0x53, 0xfb, 0x15, 0x89, 0x8f, 0xaa, 0x4d, 0xeb, 0xa3, 0x5a, 0x7f, - 0x52, 0x00, 0xcc, 0x6f, 0xc1, 0x89, 0x2f, 0xf7, 0xb9, 0x88, 0x84, 0x44, 0x6a, 0x72, 0x87, 0x73, - 0x73, 0xb2, 0xc3, 0x89, 0x4f, 0xd0, 0xe9, 0x2c, 0x8e, 0x98, 0xde, 0x8b, 0xb9, 0x98, 0x99, 0xc2, - 0xe2, 0xc4, 0xf9, 0x3c, 0x9b, 0xc5, 0x49, 0xf0, 0x9c, 0x6e, 0x71, 0xfe, 0x5d, 0x02, 0x2b, 0x31, - 0x78, 0x6a, 0x8b, 0x23, 0x09, 0xf9, 0xf2, 0x72, 0x66, 0x3a, 0xdb, 0x11, 0x4f, 0xdd, 0xff, 0x89, - 0xed, 0x88, 0x13, 0x2a, 0xb0, 0x1d, 0xbf, 0x2b, 0x25, 0xb3, 0x3e, 0xa3, 0xed, 0xf8, 0x04, 0xae, - 0x2a, 0x3e, 0x77, 0xce, 0xa5, 0xf5, 0x97, 0x32, 0xb8, 0x9c, 0xdd, 0x82, 0x29, 0x1d, 0x54, 0x26, - 0xea, 0xe0, 0x1e, 0x58, 0x7d, 0xe4, 0x1b, 0xc6, 0x88, 0x8f, 0x21, 0x21, 0x86, 0x81, 0x82, 0x7e, - 0x55, 0x44, 0xae, 0x7e, 0x5f, 0x82, 0x41, 0xd2, 0xc8, 0xbc, 0x2c, 0x56, 0x9e, 0x55, 0x16, 0xab, - 0xe7, 0x90, 0x45, 0xb9, 0xb3, 0x28, 0x9f, 0xcb, 0x59, 0x4c, 0xad, 0x89, 0x92, 0xe3, 0x6a, 0xe2, - 0x3b, 0xfc, 0xaf, 0x15, 0xb0, 0x26, 0x7f, 0x7d, 0x86, 0x06, 0x58, 0x32, 0xf1, 0xe3, 0xe4, 0xe5, - 0xc5, 0x24, 0xc1, 0xf0, 0xa9, 0x6e, 0xa8, 0xc1, 0xd7, 0x1d, 0xf5, 0x2d, 0x8b, 0xee, 0xba, 0xfb, - 0xd4, 0xd5, 0xad, 0x41, 0x20, 0xb0, 0xbd, 0x14, 0x17, 0xca, 0x70, 0xb7, 0x3e, 0x54, 0xc0, 0x7a, - 0x81, 0xca, 0x5d, 0x6c, 0x26, 0xf0, 0x21, 0xa8, 0x99, 0xf8, 0xf1, 0xbe, 0xef, 0x0e, 0x42, 0x49, - 0x3e, 0xfb, 0x73, 0xf8, 0x2e, 0xec, 0x09, 0x16, 0x14, 0xf1, 0xb5, 0x76, 0xc1, 0xf5, 0xd4, 0x20, - 0xd9, 0xa6, 0x21, 0x8f, 0x7c, 0x83, 0xef, 0x1f, 0xe1, 0x29, 0x6e, 0x82, 0x79, 0x07, 0xbb, 0x54, - 0x8f, 0xcc, 0x68, 0xb5, 0xb3, 0x38, 0x3e, 0x69, 0xce, 0xef, 0x85, 0x8d, 0x28, 0xee, 0x6f, 0xfd, - 0xaa, 0x04, 0x16, 0x12, 0x24, 0x17, 0xa0, 0xef, 0x6f, 0xa4, 0xf4, 0x5d, 0xfa, 0xc5, 0x24, 0x39, - 0xaa, 0x22, 0x81, 0xef, 0x65, 0x04, 0xfe, 0x9b, 0x93, 0x88, 0x4e, 0x57, 0xf8, 0x8f, 0x4a, 0x60, - 0x35, 0x81, 0x8e, 0x25, 0xfe, 0x3b, 0x29, 0x89, 0xdf, 0xc8, 0x48, 0x7c, 0x5d, 0x16, 0xf3, 0xa5, - 0xc6, 0x4f, 0xd6, 0xf8, 0x3f, 0x2a, 0x60, 0x39, 0x31, 0x77, 0x17, 0x20, 0xf2, 0x5b, 0x69, 0x91, - 0x6f, 0x4e, 0xa8, 0x97, 0x02, 0x95, 0x7f, 0x52, 0x4d, 0xe5, 0xfd, 0x85, 0xbf, 0x5d, 0xf8, 0x39, - 0x58, 0x1d, 0xda, 0x86, 0x6f, 0x92, 0xae, 0x81, 0x75, 0x33, 0x04, 0x30, 0x55, 0x64, 0x93, 0xf8, - 0xa2, 0x94, 0x9e, 0xb8, 0x9e, 0xee, 0x51, 0x62, 0xd1, 0x07, 0x71, 0x64, 0xac, 0xc5, 0x0f, 0x24, - 0x74, 0x48, 0xfa, 0x10, 0xf8, 0x2a, 0x58, 0x60, 0x6a, 0xa6, 0xf7, 0xc9, 0x0e, 0x36, 0xc3, 0x9a, - 0x8a, 0xbe, 0x0f, 0xec, 0xc7, 0x5d, 0x28, 0x89, 0x83, 0x47, 0x60, 0xc5, 0xb1, 0xb5, 0x1e, 0xb6, - 0xf0, 0x80, 0xb0, 0xf3, 0x7f, 0xcf, 0x36, 0xf4, 0xfe, 0x88, 0xdf, 0x3b, 0xcc, 0x77, 0x5e, 0x0b, - 0xdf, 0x29, 0xf7, 0xf2, 0x10, 0xe6, 0xd9, 0x25, 0xcd, 0x7c, 0x3f, 0xcb, 0x28, 0xa1, 0x99, 0xfb, - 0x9c, 0x35, 0x97, 0xfb, 0x1f, 0x00, 0x59, 0x71, 0x9d, 0xf3, 0x83, 0x56, 0xd1, 0x8d, 0x4a, 0xed, - 0x5c, 0x5f, 0xa3, 0x3e, 0xaa, 0x80, 0x2b, 0xb9, 0x03, 0xf2, 0x33, 0xbc, 0xd3, 0xc8, 0x39, 0xaf, - 0xf2, 0x19, 0x9c, 0xd7, 0x26, 0x58, 0x16, 0x1f, 0xc2, 0x32, 0xc6, 0x2d, 0x32, 0xd0, 0xdd, 0x74, - 0x37, 0xca, 0xe2, 0x65, 0x77, 0x2a, 0xd5, 0x33, 0xde, 0xa9, 0x24, 0xb3, 0x10, 0xff, 0xbf, 0x11, - 0x54, 0x5d, 0x3e, 0x0b, 0xf1, 0x6f, 0x1c, 0x59, 0x3c, 0xfc, 0x6e, 0x58, 0x52, 0x11, 0xc3, 0x1c, - 0x67, 0xc8, 0xd4, 0x48, 0x44, 0x90, 0x41, 0x3f, 0xd3, 0xc7, 0x9e, 0x77, 0x24, 0x1f, 0x7b, 0x36, - 0x26, 0x94, 0xf2, 0xf4, 0x56, 0xf1, 0x6f, 0x0a, 0x78, 0xae, 0x70, 0x0f, 0xc0, 0xcd, 0x94, 0xce, - 0xde, 0xca, 0xe8, 0xec, 0xf3, 0x85, 0x81, 0x09, 0xb1, 0x35, 0xe5, 0x17, 0x22, 0x77, 0x27, 0x5e, - 0x88, 0x48, 0x5c, 0xd4, 0xe4, 0x9b, 0x91, 0xce, 0xc6, 0x93, 0xa7, 0x8d, 0x99, 0xf7, 0x9f, 0x36, - 0x66, 0x3e, 0x78, 0xda, 0x98, 0xf9, 0xc5, 0xb8, 0xa1, 0x3c, 0x19, 0x37, 0x94, 0xf7, 0xc7, 0x0d, - 0xe5, 0x83, 0x71, 0x43, 0xf9, 0xe7, 0xb8, 0xa1, 0xfc, 0xf6, 0xc3, 0xc6, 0xcc, 0xc3, 0xd2, 0xf0, - 0xf6, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x59, 0xb3, 0x11, 0xc0, 0x12, 0x26, 0x00, 0x00, + 0x61, 0x47, 0x5c, 0x10, 0x12, 0x37, 0x0e, 0xfc, 0x27, 0x08, 0x21, 0xb8, 0xa1, 0x08, 0x71, 0xd9, + 0x0b, 0x52, 0xc4, 0x85, 0x9c, 0x2c, 0x76, 0x72, 0x42, 0x28, 0x47, 0x2e, 0xb9, 0x80, 0xaa, 0xba, + 0xfa, 0xbb, 0xda, 0x33, 0xf6, 0x26, 0xce, 0x87, 0x72, 0xf3, 0x54, 0xfd, 0xde, 0xaf, 0xde, 0xab, + 0x7a, 0x55, 0xef, 0xd7, 0x55, 0x06, 0xf7, 0x8e, 0xbf, 0xeb, 0xa9, 0xba, 0xdd, 0x3e, 0xf6, 0x0f, + 0x89, 0x6b, 0x11, 0x4a, 0xbc, 0xf6, 0x90, 0x58, 0x9a, 0xed, 0xb6, 0x45, 0x07, 0x76, 0xf4, 0x36, + 0x76, 0x1c, 0xaf, 0x3d, 0xbc, 0xdd, 0x1e, 0x10, 0x8b, 0xb8, 0x98, 0x12, 0x4d, 0x75, 0x5c, 0x9b, + 0xda, 0x10, 0x06, 0x18, 0x15, 0x3b, 0xba, 0xca, 0x30, 0xea, 0xf0, 0xf6, 0xd5, 0x5b, 0x03, 0x9d, + 0x1e, 0xf9, 0x87, 0x6a, 0xdf, 0x36, 0xdb, 0x03, 0x7b, 0x60, 0xb7, 0x39, 0xf4, 0xd0, 0x7f, 0xc4, + 0x7f, 0xf1, 0x1f, 0xfc, 0xaf, 0x80, 0xe2, 0x6a, 0x2b, 0x31, 0x4c, 0xdf, 0x76, 0x89, 0x64, 0x98, + 0xab, 0x77, 0x63, 0x8c, 0x89, 0xfb, 0x47, 0xba, 0x45, 0xdc, 0x51, 0xdb, 0x39, 0x1e, 0xb0, 0x06, + 0xaf, 0x6d, 0x12, 0x8a, 0x65, 0x56, 0xed, 0x22, 0x2b, 0xd7, 0xb7, 0xa8, 0x6e, 0x92, 0x9c, 0xc1, + 0x6b, 0x93, 0x0c, 0xbc, 0xfe, 0x11, 0x31, 0x71, 0xce, 0xee, 0x95, 0x22, 0x3b, 0x9f, 0xea, 0x46, + 0x5b, 0xb7, 0xa8, 0x47, 0xdd, 0xac, 0x51, 0xeb, 0xbf, 0x0a, 0x80, 0x5d, 0xdb, 0xa2, 0xae, 0x6d, + 0x18, 0xc4, 0x45, 0x64, 0xa8, 0x7b, 0xba, 0x6d, 0xc1, 0x9f, 0x83, 0x1a, 0x8b, 0x47, 0xc3, 0x14, + 0xd7, 0x95, 0xeb, 0xca, 0xc6, 0xc2, 0x9d, 0xef, 0xa8, 0xf1, 0x24, 0x47, 0xf4, 0xaa, 0x73, 0x3c, + 0x60, 0x0d, 0x9e, 0xca, 0xd0, 0xea, 0xf0, 0xb6, 0xba, 0x7b, 0xf8, 0x2e, 0xe9, 0xd3, 0x1e, 0xa1, + 0xb8, 0x03, 0x9f, 0x9c, 0x34, 0x67, 0xc6, 0x27, 0x4d, 0x10, 0xb7, 0xa1, 0x88, 0x15, 0xee, 0x82, + 0x0a, 0x67, 0x2f, 0x71, 0xf6, 0x5b, 0x85, 0xec, 0x22, 0x68, 0x15, 0xe1, 0x5f, 0xbc, 0xf1, 0x98, + 0x12, 0x8b, 0xb9, 0xd7, 0xb9, 0x24, 0xa8, 0x2b, 0x5b, 0x98, 0x62, 0xc4, 0x89, 0xe0, 0xcb, 0xa0, + 0xe6, 0x0a, 0xf7, 0xeb, 0xe5, 0xeb, 0xca, 0x46, 0xb9, 0x73, 0x59, 0xa0, 0x6a, 0x61, 0x58, 0x28, + 0x42, 0xb4, 0xfe, 0xa6, 0x80, 0xb5, 0x7c, 0xdc, 0xdb, 0xba, 0x47, 0xe1, 0x3b, 0xb9, 0xd8, 0xd5, + 0xe9, 0x62, 0x67, 0xd6, 0x3c, 0xf2, 0x68, 0xe0, 0xb0, 0x25, 0x11, 0xf7, 0xdb, 0xa0, 0xaa, 0x53, + 0x62, 0x7a, 0xf5, 0xd2, 0xf5, 0xf2, 0xc6, 0xc2, 0x9d, 0x1b, 0x6a, 0x3e, 0x77, 0xd5, 0xbc, 0x63, + 0x9d, 0x45, 0x41, 0x59, 0x7d, 0x8b, 0x19, 0xa3, 0x80, 0xa3, 0xf5, 0x3f, 0x05, 0xcc, 0x6f, 0x61, + 0x62, 0xda, 0xd6, 0x3e, 0xa1, 0x17, 0xb0, 0x68, 0x5d, 0x50, 0xf1, 0x1c, 0xd2, 0x17, 0x8b, 0xf6, + 0x0d, 0x99, 0xef, 0x91, 0x3b, 0xfb, 0x0e, 0xe9, 0xc7, 0x0b, 0xc5, 0x7e, 0x21, 0x6e, 0x0c, 0xdf, + 0x06, 0xb3, 0x1e, 0xc5, 0xd4, 0xf7, 0xf8, 0x32, 0x2d, 0xdc, 0xf9, 0xe6, 0xe9, 0x34, 0x1c, 0xda, + 0x59, 0x12, 0x44, 0xb3, 0xc1, 0x6f, 0x24, 0x28, 0x5a, 0xff, 0x2e, 0x01, 0x18, 0x61, 0xbb, 0xb6, + 0xa5, 0xe9, 0x94, 0xe5, 0xef, 0xeb, 0xa0, 0x42, 0x47, 0x0e, 0xe1, 0xd3, 0x30, 0xdf, 0xb9, 0x11, + 0x7a, 0x71, 0x7f, 0xe4, 0x90, 0x8f, 0x4f, 0x9a, 0x6b, 0x79, 0x0b, 0xd6, 0x83, 0xb8, 0x0d, 0xdc, + 0x8e, 0xfc, 0x2b, 0x71, 0xeb, 0xbb, 0xe9, 0xa1, 0x3f, 0x3e, 0x69, 0x4a, 0x0e, 0x0b, 0x35, 0x62, + 0x4a, 0x3b, 0x08, 0x87, 0x00, 0x1a, 0xd8, 0xa3, 0xf7, 0x5d, 0x6c, 0x79, 0xc1, 0x48, 0xba, 0x49, + 0x44, 0xe4, 0x2f, 0x4d, 0xb7, 0x3c, 0xcc, 0xa2, 0x73, 0x55, 0x78, 0x01, 0xb7, 0x73, 0x6c, 0x48, + 0x32, 0x02, 0xbc, 0x01, 0x66, 0x5d, 0x82, 0x3d, 0xdb, 0xaa, 0x57, 0x78, 0x14, 0xd1, 0x04, 0x22, + 0xde, 0x8a, 0x44, 0x2f, 0x7c, 0x11, 0xcc, 0x99, 0xc4, 0xf3, 0xf0, 0x80, 0xd4, 0xab, 0x1c, 0xb8, + 0x2c, 0x80, 0x73, 0xbd, 0xa0, 0x19, 0x85, 0xfd, 0xad, 0x3f, 0x28, 0x60, 0x31, 0x9a, 0xb9, 0x0b, + 0xd8, 0x2a, 0x9d, 0xf4, 0x56, 0x79, 0xfe, 0xd4, 0x3c, 0x29, 0xd8, 0x21, 0xef, 0x95, 0x13, 0x3e, + 0xb3, 0x24, 0x84, 0x3f, 0x03, 0x35, 0x8f, 0x18, 0xa4, 0x4f, 0x6d, 0x57, 0xf8, 0xfc, 0xca, 0x94, + 0x3e, 0xe3, 0x43, 0x62, 0xec, 0x0b, 0xd3, 0xce, 0x25, 0xe6, 0x74, 0xf8, 0x0b, 0x45, 0x94, 0xf0, + 0x27, 0xa0, 0x46, 0x89, 0xe9, 0x18, 0x98, 0x12, 0xb1, 0x4d, 0x52, 0xf9, 0xcd, 0xd2, 0x85, 0x91, + 0xed, 0xd9, 0xda, 0x7d, 0x01, 0xe3, 0x1b, 0x25, 0x9a, 0x87, 0xb0, 0x15, 0x45, 0x34, 0xf0, 0x18, + 0x2c, 0xf9, 0x8e, 0xc6, 0x90, 0x94, 0x1d, 0xdd, 0x83, 0x91, 0x48, 0x9f, 0x9b, 0xa7, 0x4e, 0xc8, + 0x41, 0xca, 0xa4, 0xb3, 0x26, 0x06, 0x58, 0x4a, 0xb7, 0xa3, 0x0c, 0x35, 0xdc, 0x04, 0xcb, 0xa6, + 0x6e, 0x21, 0x82, 0xb5, 0xd1, 0x3e, 0xe9, 0xdb, 0x96, 0xe6, 0xf1, 0x04, 0xaa, 0x76, 0xd6, 0x05, + 0xc1, 0x72, 0x2f, 0xdd, 0x8d, 0xb2, 0x78, 0xb8, 0x0d, 0x56, 0xc3, 0x73, 0xf6, 0x47, 0xba, 0x47, + 0x6d, 0x77, 0xb4, 0xad, 0x9b, 0x3a, 0xad, 0xcf, 0x72, 0x9e, 0xfa, 0xf8, 0xa4, 0xb9, 0x8a, 0x24, + 0xfd, 0x48, 0x6a, 0xd5, 0xfa, 0xed, 0x2c, 0x58, 0xce, 0x9c, 0x06, 0xf0, 0x01, 0x58, 0xeb, 0xfb, + 0xae, 0x4b, 0x2c, 0xba, 0xe3, 0x9b, 0x87, 0xc4, 0xdd, 0xef, 0x1f, 0x11, 0xcd, 0x37, 0x88, 0xc6, + 0x57, 0xb4, 0xda, 0x69, 0x08, 0x5f, 0xd7, 0xba, 0x52, 0x14, 0x2a, 0xb0, 0x86, 0x3f, 0x06, 0xd0, + 0xe2, 0x4d, 0x3d, 0xdd, 0xf3, 0x22, 0xce, 0x12, 0xe7, 0x8c, 0x36, 0xe0, 0x4e, 0x0e, 0x81, 0x24, + 0x56, 0xcc, 0x47, 0x8d, 0x78, 0xba, 0x4b, 0xb4, 0xac, 0x8f, 0xe5, 0xb4, 0x8f, 0x5b, 0x52, 0x14, + 0x2a, 0xb0, 0x86, 0xaf, 0x82, 0x85, 0x60, 0x34, 0x3e, 0xe7, 0x62, 0x71, 0x56, 0x04, 0xd9, 0xc2, + 0x4e, 0xdc, 0x85, 0x92, 0x38, 0x16, 0x9a, 0x7d, 0xe8, 0x11, 0x77, 0x48, 0xb4, 0x37, 0x03, 0x0d, + 0xc0, 0x0a, 0x65, 0x95, 0x17, 0xca, 0x28, 0xb4, 0xdd, 0x1c, 0x02, 0x49, 0xac, 0x58, 0x68, 0x41, + 0xd6, 0xe4, 0x42, 0x9b, 0x4d, 0x87, 0x76, 0x20, 0x45, 0xa1, 0x02, 0x6b, 0x96, 0x7b, 0x81, 0xcb, + 0x9b, 0x43, 0xac, 0x1b, 0xf8, 0xd0, 0x20, 0xf5, 0xb9, 0x74, 0xee, 0xed, 0xa4, 0xbb, 0x51, 0x16, + 0x0f, 0xdf, 0x04, 0x57, 0x82, 0xa6, 0x03, 0x0b, 0x47, 0x24, 0x35, 0x4e, 0xf2, 0x9c, 0x20, 0xb9, + 0xb2, 0x93, 0x05, 0xa0, 0xbc, 0x0d, 0x7c, 0x1d, 0x2c, 0xf5, 0x6d, 0xc3, 0xe0, 0xf9, 0xd8, 0xb5, + 0x7d, 0x8b, 0xd6, 0xe7, 0x39, 0x0b, 0x64, 0x7b, 0xa8, 0x9b, 0xea, 0x41, 0x19, 0x24, 0x7c, 0x08, + 0x40, 0x3f, 0x2c, 0x07, 0x5e, 0x1d, 0x14, 0x17, 0xfa, 0x7c, 0x1d, 0x8a, 0x0b, 0x70, 0xd4, 0xe4, + 0xa1, 0x04, 0x5b, 0xeb, 0x3d, 0x05, 0xac, 0x17, 0xec, 0x71, 0xf8, 0x83, 0x54, 0xd5, 0xbb, 0x99, + 0xa9, 0x7a, 0xd7, 0x0a, 0xcc, 0x12, 0xa5, 0xaf, 0x0f, 0x16, 0x99, 0xee, 0xd0, 0xad, 0x41, 0x00, + 0x11, 0x27, 0xd8, 0x4b, 0x32, 0xdf, 0x51, 0x12, 0x18, 0x1f, 0xc3, 0x57, 0xc6, 0x27, 0xcd, 0xc5, + 0x54, 0x1f, 0x4a, 0x73, 0xb6, 0x7e, 0x5d, 0x02, 0x60, 0x8b, 0x38, 0x86, 0x3d, 0x32, 0x89, 0x75, + 0x11, 0xaa, 0x65, 0x2b, 0xa5, 0x5a, 0x5a, 0xd2, 0x85, 0x88, 0xfc, 0x29, 0x94, 0x2d, 0xdb, 0x19, + 0xd9, 0xf2, 0xad, 0x09, 0x3c, 0xa7, 0xeb, 0x96, 0x7f, 0x96, 0xc1, 0x4a, 0x0c, 0x8e, 0x85, 0xcb, + 0xbd, 0xd4, 0x12, 0xbe, 0x90, 0x59, 0xc2, 0x75, 0x89, 0xc9, 0xa7, 0xa6, 0x5c, 0xde, 0x05, 0x4b, + 0x4c, 0x57, 0x04, 0xab, 0xc6, 0x55, 0xcb, 0xec, 0x99, 0x55, 0x4b, 0x54, 0x75, 0xb6, 0x53, 0x4c, + 0x28, 0xc3, 0x5c, 0xa0, 0x92, 0xe6, 0xbe, 0x88, 0x2a, 0xe9, 0x8f, 0x0a, 0x58, 0x8a, 0x97, 0xe9, + 0x02, 0x64, 0x52, 0x37, 0x2d, 0x93, 0x1a, 0xa7, 0xe7, 0x65, 0x81, 0x4e, 0xfa, 0x47, 0x25, 0xe9, + 0x35, 0x17, 0x4a, 0x1b, 0xec, 0x83, 0xca, 0x31, 0xf4, 0x3e, 0xf6, 0x44, 0x59, 0xbd, 0x14, 0x7c, + 0x4c, 0x05, 0x6d, 0x28, 0xea, 0x4d, 0x49, 0xaa, 0xd2, 0xa7, 0x2b, 0xa9, 0xca, 0x9f, 0x8c, 0xa4, + 0xba, 0x0f, 0x6a, 0x5e, 0x28, 0xa6, 0x2a, 0x9c, 0xf2, 0xc6, 0xa4, 0xed, 0x2c, 0x74, 0x54, 0xc4, + 0x1a, 0x29, 0xa8, 0x88, 0x49, 0xa6, 0x9d, 0xaa, 0x9f, 0xa5, 0x76, 0x62, 0xe9, 0xed, 0x60, 0xdf, + 0x23, 0x1a, 0xdf, 0x4a, 0xb5, 0x38, 0xbd, 0xf7, 0x78, 0x2b, 0x12, 0xbd, 0xf0, 0x00, 0xac, 0x3b, + 0xae, 0x3d, 0x70, 0x89, 0xe7, 0x6d, 0x11, 0xac, 0x19, 0xba, 0x45, 0xc2, 0x00, 0x82, 0xaa, 0x77, + 0x6d, 0x7c, 0xd2, 0x5c, 0xdf, 0x93, 0x43, 0x50, 0x91, 0x6d, 0xeb, 0x2f, 0x15, 0x70, 0x39, 0x7b, + 0x22, 0x16, 0x08, 0x11, 0xe5, 0x5c, 0x42, 0xe4, 0xe5, 0x44, 0x8a, 0x06, 0x2a, 0x2d, 0xf1, 0xcd, + 0x9f, 0x4b, 0xd3, 0x4d, 0xb0, 0x2c, 0x84, 0x47, 0xd8, 0x29, 0xa4, 0x58, 0xb4, 0x3c, 0x07, 0xe9, + 0x6e, 0x94, 0xc5, 0xc3, 0x7b, 0x60, 0xd1, 0xe5, 0xda, 0x2a, 0x24, 0x08, 0xf4, 0xc9, 0xd7, 0x04, + 0xc1, 0x22, 0x4a, 0x76, 0xa2, 0x34, 0x96, 0x69, 0x93, 0x58, 0x72, 0x84, 0x04, 0x95, 0xb4, 0x36, + 0xd9, 0xcc, 0x02, 0x50, 0xde, 0x06, 0xf6, 0xc0, 0x8a, 0x6f, 0xe5, 0xa9, 0x82, 0x5c, 0xbb, 0x26, + 0xa8, 0x56, 0x0e, 0xf2, 0x10, 0x24, 0xb3, 0x83, 0x3f, 0x4d, 0xc9, 0x95, 0x59, 0x7e, 0x8a, 0xbc, + 0x70, 0xfa, 0x76, 0x98, 0x5a, 0xaf, 0x48, 0x74, 0x54, 0x6d, 0x5a, 0x1d, 0xd5, 0xfa, 0xb3, 0x02, + 0x60, 0x7e, 0x0b, 0x4e, 0xfc, 0xb8, 0xcf, 0x59, 0x24, 0x4a, 0xa4, 0x26, 0x57, 0x38, 0x37, 0x27, + 0x2b, 0x9c, 0xf8, 0x04, 0x9d, 0x4e, 0xe2, 0x88, 0xe9, 0xbd, 0x98, 0x8b, 0x99, 0x29, 0x24, 0x4e, + 0xec, 0xcf, 0xb3, 0x49, 0x9c, 0x04, 0xcf, 0xe9, 0x12, 0xe7, 0x3f, 0x25, 0xb0, 0x12, 0x83, 0xa7, + 0x96, 0x38, 0x12, 0x93, 0xaf, 0x2e, 0x67, 0xa6, 0x93, 0x1d, 0xf1, 0xd4, 0x7d, 0x4e, 0x64, 0x47, + 0xec, 0x50, 0x81, 0xec, 0xf8, 0x7d, 0x29, 0xe9, 0xf5, 0x19, 0x65, 0xc7, 0x27, 0x70, 0x55, 0xf1, + 0x85, 0x53, 0x2e, 0xad, 0xbf, 0x96, 0xc1, 0xe5, 0xec, 0x16, 0x4c, 0xd5, 0x41, 0x65, 0x62, 0x1d, + 0xdc, 0x03, 0xab, 0x8f, 0x7c, 0xc3, 0x18, 0xf1, 0x18, 0x12, 0xc5, 0x30, 0xa8, 0xa0, 0x5f, 0x17, + 0x96, 0xab, 0x3f, 0x94, 0x60, 0x90, 0xd4, 0x32, 0x5f, 0x16, 0x2b, 0xcf, 0x5a, 0x16, 0xab, 0xe7, + 0x28, 0x8b, 0x72, 0x65, 0x51, 0x3e, 0x97, 0xb2, 0x98, 0xba, 0x26, 0x4a, 0x8e, 0xab, 0x89, 0xdf, + 0xf0, 0x63, 0x05, 0xac, 0xc9, 0x3f, 0x9f, 0xa1, 0x01, 0x96, 0x4c, 0xfc, 0x38, 0x79, 0x79, 0x31, + 0xa9, 0x60, 0xf8, 0x54, 0x37, 0xd4, 0xe0, 0x75, 0x47, 0x7d, 0xcb, 0xa2, 0xbb, 0xee, 0x3e, 0x75, + 0x75, 0x6b, 0x10, 0x14, 0xd8, 0x5e, 0x8a, 0x0b, 0x65, 0xb8, 0xe1, 0x43, 0x50, 0x33, 0xf1, 0xe3, + 0x7d, 0xdf, 0x1d, 0x84, 0x85, 0xf0, 0xec, 0xe3, 0xf0, 0xdc, 0xef, 0x09, 0x16, 0x14, 0xf1, 0xb5, + 0x3e, 0x54, 0xc0, 0x7a, 0x41, 0x05, 0xfd, 0x12, 0x45, 0xb9, 0x0b, 0xae, 0xa7, 0x82, 0x64, 0x1b, + 0x92, 0x3c, 0xf2, 0x0d, 0xbe, 0x37, 0x85, 0x5e, 0xb9, 0x09, 0xe6, 0x1d, 0xec, 0x52, 0x3d, 0x12, + 0xba, 0xd5, 0xce, 0xe2, 0xf8, 0xa4, 0x39, 0xbf, 0x17, 0x36, 0xa2, 0xb8, 0xbf, 0xf5, 0x9b, 0x12, + 0x58, 0x48, 0x90, 0x5c, 0x80, 0x76, 0x78, 0x23, 0xa5, 0x1d, 0xa4, 0xaf, 0x31, 0xc9, 0xa8, 0x8a, + 0xc4, 0x43, 0x2f, 0x23, 0x1e, 0xbe, 0x3d, 0x89, 0xe8, 0x74, 0xf5, 0xf0, 0x51, 0x09, 0xac, 0x26, + 0xd0, 0xb1, 0x7c, 0xf8, 0x5e, 0x4a, 0x3e, 0x6c, 0x64, 0xe4, 0x43, 0x5d, 0x66, 0xf3, 0x95, 0x7e, + 0x98, 0xac, 0x1f, 0xfe, 0xa4, 0x80, 0xe5, 0xc4, 0xdc, 0x5d, 0x80, 0x80, 0xd8, 0x4a, 0x0b, 0x88, + 0xe6, 0x84, 0x7c, 0x29, 0x50, 0x10, 0x4f, 0xaa, 0x29, 0xbf, 0xbf, 0xf4, 0x37, 0x17, 0xbf, 0x04, + 0xab, 0x43, 0xdb, 0xf0, 0x4d, 0xd2, 0x35, 0xb0, 0x6e, 0x86, 0x00, 0x56, 0x71, 0xd9, 0x24, 0xbe, + 0x28, 0xa5, 0x27, 0xae, 0xa7, 0x7b, 0x94, 0x58, 0xf4, 0x41, 0x6c, 0x19, 0xd7, 0xf9, 0x07, 0x12, + 0x3a, 0x24, 0x1d, 0x04, 0xbe, 0x0a, 0x16, 0x58, 0xa5, 0xd4, 0xfb, 0x64, 0x07, 0x9b, 0x61, 0x4e, + 0x45, 0x6f, 0x0f, 0xfb, 0x71, 0x17, 0x4a, 0xe2, 0xe0, 0x11, 0x58, 0x71, 0x6c, 0xad, 0x87, 0x2d, + 0x3c, 0x20, 0xec, 0xfc, 0xdf, 0xb3, 0x0d, 0xbd, 0x3f, 0xe2, 0x77, 0x1a, 0xf3, 0x9d, 0xd7, 0xc2, + 0xef, 0xd5, 0xbd, 0x3c, 0x84, 0x7d, 0x0f, 0x48, 0x9a, 0xf9, 0x7e, 0x96, 0x51, 0x42, 0x33, 0xf7, + 0x54, 0x36, 0x97, 0xfb, 0xff, 0x02, 0x59, 0x72, 0x9d, 0xf3, 0xb1, 0xac, 0xe8, 0xb6, 0xa6, 0x76, + 0xae, 0x97, 0xae, 0x8f, 0x2a, 0xe0, 0x4a, 0xee, 0x80, 0xfc, 0x0c, 0xef, 0x4b, 0x72, 0xaa, 0xae, + 0x7c, 0x06, 0x55, 0xb7, 0x09, 0x96, 0xc5, 0x23, 0x5b, 0x46, 0x14, 0x46, 0xe2, 0xbc, 0x9b, 0xee, + 0x46, 0x59, 0xbc, 0xec, 0xbe, 0xa6, 0x7a, 0xc6, 0xfb, 0x9a, 0xa4, 0x17, 0xe2, 0x7f, 0x43, 0x82, + 0xac, 0xcb, 0x7b, 0x21, 0xfe, 0x45, 0x24, 0x8b, 0x87, 0xdf, 0x0f, 0x53, 0x2a, 0x62, 0x98, 0xe3, + 0x0c, 0x99, 0x1c, 0x89, 0x08, 0x32, 0xe8, 0x67, 0x7a, 0x48, 0x7a, 0x47, 0xf2, 0x90, 0xb4, 0x31, + 0x21, 0x95, 0xa7, 0x97, 0xa1, 0x7f, 0x57, 0xc0, 0x73, 0x85, 0x7b, 0x00, 0x6e, 0xa6, 0xea, 0xec, + 0xad, 0x4c, 0x9d, 0x7d, 0xbe, 0xd0, 0x30, 0x51, 0x6c, 0x4d, 0xf9, 0x65, 0xcb, 0xdd, 0x89, 0x97, + 0x2d, 0x12, 0x15, 0x35, 0xf9, 0xd6, 0xa5, 0xb3, 0xf1, 0xe4, 0x69, 0x63, 0xe6, 0xfd, 0xa7, 0x8d, + 0x99, 0x0f, 0x9e, 0x36, 0x66, 0x7e, 0x35, 0x6e, 0x28, 0x4f, 0xc6, 0x0d, 0xe5, 0xfd, 0x71, 0x43, + 0xf9, 0x60, 0xdc, 0x50, 0xfe, 0x35, 0x6e, 0x28, 0xbf, 0xfb, 0xb0, 0x31, 0xf3, 0xb0, 0x34, 0xbc, + 0xfd, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe6, 0xc9, 0x16, 0xd9, 0x6e, 0x26, 0x00, 0x00, } func (m *ControllerRevision) Marshal() (dAtA []byte, err error) { @@ -2035,6 +2035,18 @@ func (m *RollingUpdateDaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if m.MaxSurge != nil { + { + size, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } if m.MaxUnavailable != nil { { size, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i]) @@ -2849,6 +2861,10 @@ func (m *RollingUpdateDaemonSet) Size() (n int) { l = m.MaxUnavailable.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.MaxSurge != nil { + l = m.MaxSurge.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -3306,6 +3322,7 @@ func (this *RollingUpdateDaemonSet) String() string { } s := strings.Join([]string{`&RollingUpdateDaemonSet{`, `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "intstr.IntOrString", 1) + `,`, + `MaxSurge:` + strings.Replace(fmt.Sprintf("%v", this.MaxSurge), "IntOrString", "intstr.IntOrString", 1) + `,`, `}`, }, "") return s @@ -3557,10 +3574,7 @@ func (m *ControllerRevision) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3677,10 +3691,7 @@ func (m *ControllerRevisionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3829,10 +3840,7 @@ func (m *DaemonSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4043,10 +4051,7 @@ func (m *DaemonSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4163,10 +4168,7 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4357,10 +4359,7 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4616,10 +4615,7 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4737,10 +4733,7 @@ func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4889,10 +4882,7 @@ func (m *Deployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5136,10 +5126,7 @@ func (m *DeploymentCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5256,10 +5243,7 @@ func (m *DeploymentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5510,10 +5494,7 @@ func (m *DeploymentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5731,10 +5712,7 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5852,10 +5830,7 @@ func (m *DeploymentStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6004,10 +5979,7 @@ func (m *ReplicaSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6218,10 +6190,7 @@ func (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6338,10 +6307,7 @@ func (m *ReplicaSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6499,10 +6465,7 @@ func (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6681,10 +6644,7 @@ func (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6764,16 +6724,49 @@ func (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxSurge == nil { + m.MaxSurge = &intstr.IntOrString{} + } + if err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6895,10 +6888,7 @@ func (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6968,10 +6958,7 @@ func (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7120,10 +7107,7 @@ func (m *StatefulSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7334,10 +7318,7 @@ func (m *StatefulSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7454,10 +7435,7 @@ func (m *StatefulSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7747,10 +7725,7 @@ func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8013,10 +7988,7 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8134,10 +8106,7 @@ func (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/apps/v1/generated.proto b/vendor/k8s.io/api/apps/v1/generated.proto index 3ee640462d..d4689d88b5 100644 --- a/vendor/k8s.io/api/apps/v1/generated.proto +++ b/vendor/k8s.io/api/apps/v1/generated.proto @@ -479,19 +479,41 @@ message RollingUpdateDaemonSet { // The maximum number of DaemonSet pods that can be unavailable during the // update. Value can be an absolute number (ex: 5) or a percentage of total // number of DaemonSet pods at the start of the update (ex: 10%). Absolute - // number is calculated from percentage by rounding up. - // This cannot be 0. + // number is calculated from percentage by rounding down to a minimum of one. + // This cannot be 0 if MaxSurge is 0 // Default value is 1. // Example: when this is set to 30%, at most 30% of the total number of nodes // that should be running the daemon pod (i.e. status.desiredNumberScheduled) - // can have their pods stopped for an update at any given - // time. The update starts by stopping at most 30% of those DaemonSet pods - // and then brings up new DaemonSet pods in their place. Once the new pods - // are available, it then proceeds onto other DaemonSet pods, thus ensuring - // that at least 70% of original number of DaemonSet pods are available at - // all times during the update. + // can have their pods stopped for an update at any given time. The update + // starts by stopping at most 30% of those DaemonSet pods and then brings + // up new DaemonSet pods in their place. Once the new pods are available, + // it then proceeds onto other DaemonSet pods, thus ensuring that at least + // 70% of original number of DaemonSet pods are available at all times during + // the update. // +optional optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1; + + // The maximum number of nodes with an existing available DaemonSet pod that + // can have an updated DaemonSet pod during during an update. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // This can not be 0 if MaxUnavailable is 0. + // Absolute number is calculated from percentage by rounding up to a minimum of 1. + // Default value is 0. + // Example: when this is set to 30%, at most 30% of the total number of nodes + // that should be running the daemon pod (i.e. status.desiredNumberScheduled) + // can have their a new pod created before the old pod is marked as deleted. + // The update starts by launching new pods on 30% of nodes. Once an updated + // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod + // on that node is marked deleted. If the old pod becomes unavailable for any + // reason (Ready transitions to false, is evicted, or is drained) an updated + // pod is immediatedly created on that node without considering surge limits. + // Allowing surge implies the possibility that the resources consumed by the + // daemonset on any given node can double if the readiness check fails, and + // so resource intensive daemonsets should take into account that they may + // cause evictions during disruption. + // This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2; } // Spec to control the desired behavior of rolling update. diff --git a/vendor/k8s.io/api/apps/v1/types.go b/vendor/k8s.io/api/apps/v1/types.go index e003a0c4f7..48299f18ec 100644 --- a/vendor/k8s.io/api/apps/v1/types.go +++ b/vendor/k8s.io/api/apps/v1/types.go @@ -488,19 +488,41 @@ type RollingUpdateDaemonSet struct { // The maximum number of DaemonSet pods that can be unavailable during the // update. Value can be an absolute number (ex: 5) or a percentage of total // number of DaemonSet pods at the start of the update (ex: 10%). Absolute - // number is calculated from percentage by rounding up. - // This cannot be 0. + // number is calculated from percentage by rounding down to a minimum of one. + // This cannot be 0 if MaxSurge is 0 // Default value is 1. // Example: when this is set to 30%, at most 30% of the total number of nodes // that should be running the daemon pod (i.e. status.desiredNumberScheduled) - // can have their pods stopped for an update at any given - // time. The update starts by stopping at most 30% of those DaemonSet pods - // and then brings up new DaemonSet pods in their place. Once the new pods - // are available, it then proceeds onto other DaemonSet pods, thus ensuring - // that at least 70% of original number of DaemonSet pods are available at - // all times during the update. + // can have their pods stopped for an update at any given time. The update + // starts by stopping at most 30% of those DaemonSet pods and then brings + // up new DaemonSet pods in their place. Once the new pods are available, + // it then proceeds onto other DaemonSet pods, thus ensuring that at least + // 70% of original number of DaemonSet pods are available at all times during + // the update. // +optional MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,1,opt,name=maxUnavailable"` + + // The maximum number of nodes with an existing available DaemonSet pod that + // can have an updated DaemonSet pod during during an update. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // This can not be 0 if MaxUnavailable is 0. + // Absolute number is calculated from percentage by rounding up to a minimum of 1. + // Default value is 0. + // Example: when this is set to 30%, at most 30% of the total number of nodes + // that should be running the daemon pod (i.e. status.desiredNumberScheduled) + // can have their a new pod created before the old pod is marked as deleted. + // The update starts by launching new pods on 30% of nodes. Once an updated + // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod + // on that node is marked deleted. If the old pod becomes unavailable for any + // reason (Ready transitions to false, is evicted, or is drained) an updated + // pod is immediatedly created on that node without considering surge limits. + // Allowing surge implies the possibility that the resources consumed by the + // daemonset on any given node can double if the readiness check fails, and + // so resource intensive daemonsets should take into account that they may + // cause evictions during disruption. + // This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate. + // +optional + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,2,opt,name=maxSurge"` } // DaemonSetSpec is the specification of a daemon set. diff --git a/vendor/k8s.io/api/apps/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/apps/v1/types_swagger_doc_generated.go index 3f0299d033..b9783ad20e 100644 --- a/vendor/k8s.io/api/apps/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/apps/v1/types_swagger_doc_generated.go @@ -262,7 +262,8 @@ func (ReplicaSetStatus) SwaggerDoc() map[string]string { var map_RollingUpdateDaemonSet = map[string]string{ "": "Spec to control the desired behavior of daemon set rolling update.", - "maxUnavailable": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", + "maxUnavailable": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding down to a minimum of one. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", + "maxSurge": "The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate.", } func (RollingUpdateDaemonSet) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/apps/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/apps/v1/zz_generated.deepcopy.go index 7b7ff385c6..0c80548521 100644 --- a/vendor/k8s.io/api/apps/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/apps/v1/zz_generated.deepcopy.go @@ -544,6 +544,11 @@ func (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) { *out = new(intstr.IntOrString) **out = **in } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + *out = new(intstr.IntOrString) + **out = **in + } return } diff --git a/vendor/k8s.io/api/apps/v1beta1/generated.pb.go b/vendor/k8s.io/api/apps/v1beta1/generated.pb.go index f81b559013..6bc56e382a 100644 --- a/vendor/k8s.io/api/apps/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/apps/v1beta1/generated.pb.go @@ -2734,10 +2734,7 @@ func (m *ControllerRevision) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2854,10 +2851,7 @@ func (m *ControllerRevisionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3006,10 +3000,7 @@ func (m *Deployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3253,10 +3244,7 @@ func (m *DeploymentCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3373,10 +3361,7 @@ func (m *DeploymentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3568,7 +3553,7 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3618,10 +3603,7 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3908,10 +3890,7 @@ func (m *DeploymentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4129,10 +4108,7 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4250,10 +4226,7 @@ func (m *DeploymentStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4322,10 +4295,7 @@ func (m *RollbackConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4447,10 +4417,7 @@ func (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4520,10 +4487,7 @@ func (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4672,10 +4636,7 @@ func (m *Scale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4744,10 +4705,7 @@ func (m *ScaleSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4926,7 +4884,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -4975,10 +4933,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5127,10 +5082,7 @@ func (m *StatefulSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5341,10 +5293,7 @@ func (m *StatefulSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5461,10 +5410,7 @@ func (m *StatefulSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5754,10 +5700,7 @@ func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6021,10 +5964,7 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6142,10 +6082,7 @@ func (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/apps/v1beta2/generated.pb.go b/vendor/k8s.io/api/apps/v1beta2/generated.pb.go index 8a9f20052b..b2e5c2e972 100644 --- a/vendor/k8s.io/api/apps/v1beta2/generated.pb.go +++ b/vendor/k8s.io/api/apps/v1beta2/generated.pb.go @@ -957,143 +957,143 @@ func init() { } var fileDescriptor_42fe616264472f7e = []byte{ - // 2171 bytes of a gzipped FileDescriptorProto + // 2169 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x1c, 0xb7, 0xf9, 0xd6, 0xec, 0x87, 0xb4, 0xa2, 0x2c, 0xc9, 0xa6, 0xf4, 0x93, 0x36, 0xf2, 0xaf, 0x2b, 0x63, 0x13, 0x38, 0x4a, 0x6c, 0xcd, 0xda, 0xca, 0x07, 0x12, 0xbb, 0x68, 0xab, 0x95, 0x52, 0xdb, 0x81, 0xbe, 0x42, 0x59, 0x06, 0x1a, 0xb4, 0xa8, 0xa9, 0x5d, 0x7a, 0x35, 0xd1, 0x7c, 0x61, 0x86, 0xb3, - 0xf5, 0xa2, 0x97, 0x9e, 0x0a, 0x14, 0x28, 0xd0, 0xf6, 0xda, 0x7f, 0xa2, 0xb7, 0xa2, 0x68, 0x6f, - 0x45, 0x50, 0xf8, 0x52, 0x20, 0xe8, 0x25, 0x39, 0x09, 0xf5, 0xe6, 0x54, 0x14, 0xbd, 0x14, 0xe8, - 0x25, 0x40, 0x81, 0x82, 0x1c, 0xce, 0x07, 0xe7, 0xc3, 0x3b, 0x52, 0x1c, 0xa5, 0x29, 0x72, 0xd3, - 0x92, 0xcf, 0xfb, 0xf0, 0x7d, 0xc9, 0x97, 0x7c, 0x1f, 0x72, 0x04, 0xbe, 0x73, 0xfc, 0x96, 0xab, - 0x6a, 0x56, 0xeb, 0xd8, 0x3b, 0x24, 0x8e, 0x49, 0x28, 0x71, 0x5b, 0x7d, 0x62, 0x76, 0x2d, 0xa7, - 0x25, 0x3a, 0xb0, 0xad, 0xb5, 0xb0, 0x6d, 0xbb, 0xad, 0xfe, 0xcd, 0x43, 0x42, 0xf1, 0x5a, 0xab, - 0x47, 0x4c, 0xe2, 0x60, 0x4a, 0xba, 0xaa, 0xed, 0x58, 0xd4, 0x82, 0x8b, 0x3e, 0x50, 0xc5, 0xb6, - 0xa6, 0x32, 0xa0, 0x2a, 0x80, 0x4b, 0xab, 0x3d, 0x8d, 0x1e, 0x79, 0x87, 0x6a, 0xc7, 0x32, 0x5a, - 0x3d, 0xab, 0x67, 0xb5, 0x38, 0xfe, 0xd0, 0x7b, 0xc4, 0x7f, 0xf1, 0x1f, 0xfc, 0x2f, 0x9f, 0x67, - 0xa9, 0x19, 0x1b, 0xb0, 0x63, 0x39, 0xa4, 0xd5, 0xbf, 0x99, 0x1c, 0x6b, 0xe9, 0xf5, 0x08, 0x63, - 0xe0, 0xce, 0x91, 0x66, 0x12, 0x67, 0xd0, 0xb2, 0x8f, 0x7b, 0xac, 0xc1, 0x6d, 0x19, 0x84, 0xe2, - 0x2c, 0xab, 0x56, 0x9e, 0x95, 0xe3, 0x99, 0x54, 0x33, 0x48, 0xca, 0xe0, 0xcd, 0x51, 0x06, 0x6e, - 0xe7, 0x88, 0x18, 0x38, 0x65, 0xf7, 0x5a, 0x9e, 0x9d, 0x47, 0x35, 0xbd, 0xa5, 0x99, 0xd4, 0xa5, - 0x4e, 0xd2, 0xa8, 0xf9, 0x2f, 0x05, 0xc0, 0x0d, 0xcb, 0xa4, 0x8e, 0xa5, 0xeb, 0xc4, 0x41, 0xa4, - 0xaf, 0xb9, 0x9a, 0x65, 0xc2, 0x87, 0xa0, 0xc6, 0xe2, 0xe9, 0x62, 0x8a, 0xeb, 0xca, 0x15, 0x65, - 0x65, 0x6a, 0xed, 0x86, 0x1a, 0xcd, 0x74, 0x48, 0xaf, 0xda, 0xc7, 0x3d, 0xd6, 0xe0, 0xaa, 0x0c, - 0xad, 0xf6, 0x6f, 0xaa, 0xbb, 0x87, 0x1f, 0x90, 0x0e, 0xdd, 0x26, 0x14, 0xb7, 0xe1, 0x93, 0x93, - 0xe5, 0xb1, 0xe1, 0xc9, 0x32, 0x88, 0xda, 0x50, 0xc8, 0x0a, 0x77, 0x41, 0x85, 0xb3, 0x97, 0x38, - 0xfb, 0x6a, 0x2e, 0xbb, 0x08, 0x5a, 0x45, 0xf8, 0x47, 0xef, 0x3c, 0xa6, 0xc4, 0x64, 0xee, 0xb5, - 0x2f, 0x08, 0xea, 0xca, 0x26, 0xa6, 0x18, 0x71, 0x22, 0x78, 0x1d, 0xd4, 0x1c, 0xe1, 0x7e, 0xbd, - 0x7c, 0x45, 0x59, 0x29, 0xb7, 0x2f, 0x0a, 0x54, 0x2d, 0x08, 0x0b, 0x85, 0x88, 0xe6, 0x13, 0x05, - 0x2c, 0xa4, 0xe3, 0xde, 0xd2, 0x5c, 0x0a, 0xbf, 0x9f, 0x8a, 0x5d, 0x2d, 0x16, 0x3b, 0xb3, 0xe6, - 0x91, 0x87, 0x03, 0x07, 0x2d, 0xb1, 0xb8, 0xf7, 0x40, 0x55, 0xa3, 0xc4, 0x70, 0xeb, 0xa5, 0x2b, - 0xe5, 0x95, 0xa9, 0xb5, 0x6b, 0x6a, 0x4e, 0x02, 0xab, 0x69, 0xef, 0xda, 0xd3, 0x82, 0xb7, 0x7a, - 0x8f, 0x31, 0x20, 0x9f, 0xa8, 0xf9, 0xb3, 0x12, 0x98, 0xdc, 0xc4, 0xc4, 0xb0, 0xcc, 0x7d, 0x42, - 0xcf, 0x61, 0xe5, 0xee, 0x82, 0x8a, 0x6b, 0x93, 0x8e, 0x58, 0xb9, 0xab, 0xb9, 0x01, 0x84, 0x3e, - 0xed, 0xdb, 0xa4, 0x13, 0x2d, 0x19, 0xfb, 0x85, 0x38, 0x03, 0xdc, 0x03, 0xe3, 0x2e, 0xc5, 0xd4, - 0x73, 0xf9, 0x82, 0x4d, 0xad, 0xad, 0x14, 0xe0, 0xe2, 0xf8, 0xf6, 0x8c, 0x60, 0x1b, 0xf7, 0x7f, - 0x23, 0xc1, 0xd3, 0xfc, 0x5b, 0x09, 0xc0, 0x10, 0xbb, 0x61, 0x99, 0x5d, 0x8d, 0xb2, 0x74, 0xbe, - 0x05, 0x2a, 0x74, 0x60, 0x13, 0x3e, 0x21, 0x93, 0xed, 0xab, 0x81, 0x2b, 0xf7, 0x07, 0x36, 0xf9, - 0xec, 0x64, 0x79, 0x21, 0x6d, 0xc1, 0x7a, 0x10, 0xb7, 0x81, 0x5b, 0xa1, 0x93, 0x25, 0x6e, 0xfd, - 0xba, 0x3c, 0xf4, 0x67, 0x27, 0xcb, 0x19, 0x67, 0x87, 0x1a, 0x32, 0xc9, 0x0e, 0xc2, 0x3e, 0x80, - 0x3a, 0x76, 0xe9, 0x7d, 0x07, 0x9b, 0xae, 0x3f, 0x92, 0x66, 0x10, 0x11, 0xfe, 0xab, 0xc5, 0x16, - 0x8a, 0x59, 0xb4, 0x97, 0x84, 0x17, 0x70, 0x2b, 0xc5, 0x86, 0x32, 0x46, 0x80, 0x57, 0xc1, 0xb8, - 0x43, 0xb0, 0x6b, 0x99, 0xf5, 0x0a, 0x8f, 0x22, 0x9c, 0x40, 0xc4, 0x5b, 0x91, 0xe8, 0x85, 0xaf, - 0x80, 0x09, 0x83, 0xb8, 0x2e, 0xee, 0x91, 0x7a, 0x95, 0x03, 0x67, 0x05, 0x70, 0x62, 0xdb, 0x6f, - 0x46, 0x41, 0x7f, 0xf3, 0xb7, 0x0a, 0x98, 0x0e, 0x67, 0xee, 0x1c, 0x76, 0xce, 0x1d, 0x79, 0xe7, - 0x34, 0x47, 0x27, 0x4b, 0xce, 0x86, 0xf9, 0xb0, 0x1c, 0x73, 0x9c, 0xa5, 0x23, 0xfc, 0x01, 0xa8, - 0xb9, 0x44, 0x27, 0x1d, 0x6a, 0x39, 0xc2, 0xf1, 0xd7, 0x0a, 0x3a, 0x8e, 0x0f, 0x89, 0xbe, 0x2f, - 0x4c, 0xdb, 0x17, 0x98, 0xe7, 0xc1, 0x2f, 0x14, 0x52, 0xc2, 0xf7, 0x40, 0x8d, 0x12, 0xc3, 0xd6, - 0x31, 0x25, 0x62, 0xd7, 0xbc, 0x18, 0x77, 0x9e, 0xe5, 0x0c, 0x23, 0xdb, 0xb3, 0xba, 0xf7, 0x05, - 0x8c, 0x6f, 0x99, 0x70, 0x32, 0x82, 0x56, 0x14, 0xd2, 0x40, 0x1b, 0xcc, 0x78, 0x76, 0x97, 0x21, - 0x29, 0x3b, 0xce, 0x7b, 0x03, 0x91, 0x43, 0x37, 0x46, 0xcf, 0xca, 0x81, 0x64, 0xd7, 0x5e, 0x10, - 0xa3, 0xcc, 0xc8, 0xed, 0x28, 0xc1, 0x0f, 0xd7, 0xc1, 0xac, 0xa1, 0x99, 0x88, 0xe0, 0xee, 0x60, - 0x9f, 0x74, 0x2c, 0xb3, 0xeb, 0xf2, 0x54, 0xaa, 0xb6, 0x17, 0x05, 0xc1, 0xec, 0xb6, 0xdc, 0x8d, - 0x92, 0x78, 0xb8, 0x05, 0xe6, 0x83, 0x03, 0xf8, 0xae, 0xe6, 0x52, 0xcb, 0x19, 0x6c, 0x69, 0x86, - 0x46, 0xeb, 0xe3, 0x9c, 0xa7, 0x3e, 0x3c, 0x59, 0x9e, 0x47, 0x19, 0xfd, 0x28, 0xd3, 0xaa, 0xf9, - 0xab, 0x71, 0x30, 0x9b, 0x38, 0x17, 0xe0, 0x03, 0xb0, 0xd0, 0xf1, 0x1c, 0x87, 0x98, 0x74, 0xc7, - 0x33, 0x0e, 0x89, 0xb3, 0xdf, 0x39, 0x22, 0x5d, 0x4f, 0x27, 0x5d, 0xbe, 0xac, 0xd5, 0x76, 0x43, - 0xf8, 0xba, 0xb0, 0x91, 0x89, 0x42, 0x39, 0xd6, 0xf0, 0x5d, 0x00, 0x4d, 0xde, 0xb4, 0xad, 0xb9, - 0x6e, 0xc8, 0x59, 0xe2, 0x9c, 0xe1, 0x56, 0xdc, 0x49, 0x21, 0x50, 0x86, 0x15, 0xf3, 0xb1, 0x4b, - 0x5c, 0xcd, 0x21, 0xdd, 0xa4, 0x8f, 0x65, 0xd9, 0xc7, 0xcd, 0x4c, 0x14, 0xca, 0xb1, 0x86, 0x6f, - 0x80, 0x29, 0x7f, 0x34, 0x3e, 0xe7, 0x62, 0x71, 0xe6, 0x04, 0xd9, 0xd4, 0x4e, 0xd4, 0x85, 0xe2, - 0x38, 0x16, 0x9a, 0x75, 0xe8, 0x12, 0xa7, 0x4f, 0xba, 0x77, 0x7c, 0x71, 0xc0, 0x2a, 0x68, 0x95, - 0x57, 0xd0, 0x30, 0xb4, 0xdd, 0x14, 0x02, 0x65, 0x58, 0xb1, 0xd0, 0xfc, 0xac, 0x49, 0x85, 0x36, - 0x2e, 0x87, 0x76, 0x90, 0x89, 0x42, 0x39, 0xd6, 0x2c, 0xf7, 0x7c, 0x97, 0xd7, 0xfb, 0x58, 0xd3, - 0xf1, 0xa1, 0x4e, 0xea, 0x13, 0x72, 0xee, 0xed, 0xc8, 0xdd, 0x28, 0x89, 0x87, 0x77, 0xc0, 0x25, - 0xbf, 0xe9, 0xc0, 0xc4, 0x21, 0x49, 0x8d, 0x93, 0xbc, 0x20, 0x48, 0x2e, 0xed, 0x24, 0x01, 0x28, - 0x6d, 0x03, 0x6f, 0x81, 0x99, 0x8e, 0xa5, 0xeb, 0x3c, 0x1f, 0x37, 0x2c, 0xcf, 0xa4, 0xf5, 0x49, - 0xce, 0x02, 0xd9, 0x1e, 0xda, 0x90, 0x7a, 0x50, 0x02, 0x09, 0x7f, 0x08, 0x40, 0x27, 0x28, 0x0c, - 0x6e, 0x1d, 0x8c, 0x50, 0x00, 0xe9, 0xb2, 0x14, 0x55, 0xe6, 0xb0, 0xc9, 0x45, 0x31, 0xca, 0xe6, - 0x87, 0x0a, 0x58, 0xcc, 0xd9, 0xe8, 0xf0, 0xdb, 0x52, 0x11, 0xbc, 0x96, 0x28, 0x82, 0x97, 0x73, - 0xcc, 0x62, 0x95, 0xf0, 0x08, 0x4c, 0x33, 0x41, 0xa2, 0x99, 0x3d, 0x1f, 0x22, 0xce, 0xb2, 0x56, - 0x6e, 0x00, 0x28, 0x8e, 0x8e, 0x4e, 0xe5, 0x4b, 0xc3, 0x93, 0xe5, 0x69, 0xa9, 0x0f, 0xc9, 0xc4, - 0xcd, 0x9f, 0x97, 0x00, 0xd8, 0x24, 0xb6, 0x6e, 0x0d, 0x0c, 0x62, 0x9e, 0x87, 0xa6, 0xb9, 0x27, - 0x69, 0x9a, 0x97, 0xf3, 0x97, 0x24, 0x74, 0x2a, 0x57, 0xd4, 0xbc, 0x97, 0x10, 0x35, 0xaf, 0x14, - 0x21, 0x7b, 0xb6, 0xaa, 0xf9, 0xb8, 0x0c, 0xe6, 0x22, 0x70, 0x24, 0x6b, 0x6e, 0x4b, 0x2b, 0xfa, - 0x72, 0x62, 0x45, 0x17, 0x33, 0x4c, 0xbe, 0x30, 0x5d, 0xf3, 0x01, 0x98, 0x61, 0xaa, 0xc3, 0x5f, - 0x3f, 0xae, 0x69, 0xc6, 0x4f, 0xad, 0x69, 0xc2, 0x4a, 0xb4, 0x25, 0x31, 0xa1, 0x04, 0x73, 0x8e, - 0x86, 0x9a, 0xf8, 0x2a, 0x6a, 0xa8, 0xdf, 0x29, 0x60, 0x26, 0x5a, 0xa6, 0x73, 0x10, 0x51, 0x77, - 0x65, 0x11, 0xf5, 0x62, 0x81, 0xe4, 0xcc, 0x51, 0x51, 0x1f, 0x57, 0xe2, 0xae, 0x73, 0x19, 0xb5, - 0xc2, 0xae, 0x60, 0xb6, 0xae, 0x75, 0xb0, 0x2b, 0xea, 0xed, 0x05, 0xff, 0xfa, 0xe5, 0xb7, 0xa1, - 0xb0, 0x57, 0x12, 0x5c, 0xa5, 0x2f, 0x56, 0x70, 0x95, 0x9f, 0x8f, 0xe0, 0xfa, 0x1e, 0xa8, 0xb9, - 0x81, 0xd4, 0xaa, 0x70, 0xca, 0x6b, 0x85, 0x36, 0xb6, 0x50, 0x59, 0x21, 0x75, 0xa8, 0xaf, 0x42, - 0xba, 0x2c, 0x65, 0x55, 0xfd, 0x32, 0x95, 0x15, 0x4b, 0x74, 0x1b, 0x7b, 0x2e, 0xe9, 0xf2, 0x4d, - 0x55, 0x8b, 0x12, 0x7d, 0x8f, 0xb7, 0x22, 0xd1, 0x0b, 0x0f, 0xc0, 0xa2, 0xed, 0x58, 0x3d, 0x87, - 0xb8, 0xee, 0x26, 0xc1, 0x5d, 0x5d, 0x33, 0x49, 0x10, 0x80, 0x5f, 0x13, 0x2f, 0x0f, 0x4f, 0x96, - 0x17, 0xf7, 0xb2, 0x21, 0x28, 0xcf, 0xb6, 0xf9, 0xc7, 0x0a, 0xb8, 0x98, 0x3c, 0x1b, 0x73, 0x64, - 0x8a, 0x72, 0x26, 0x99, 0x72, 0x3d, 0x96, 0xa7, 0xbe, 0x86, 0x8b, 0x3d, 0x15, 0xa4, 0x72, 0x75, - 0x1d, 0xcc, 0x0a, 0x59, 0x12, 0x74, 0x0a, 0xa1, 0x16, 0x2e, 0xcf, 0x81, 0xdc, 0x8d, 0x92, 0x78, - 0x78, 0x1b, 0x4c, 0x3b, 0x5c, 0x79, 0x05, 0x04, 0xbe, 0x7a, 0xf9, 0x3f, 0x41, 0x30, 0x8d, 0xe2, - 0x9d, 0x48, 0xc6, 0x32, 0xe5, 0x12, 0x09, 0x92, 0x80, 0xa0, 0x22, 0x2b, 0x97, 0xf5, 0x24, 0x00, - 0xa5, 0x6d, 0xe0, 0x36, 0x98, 0xf3, 0xcc, 0x34, 0x95, 0x9f, 0x6b, 0x97, 0x05, 0xd5, 0xdc, 0x41, - 0x1a, 0x82, 0xb2, 0xec, 0xe0, 0x43, 0x49, 0xcc, 0x8c, 0xf3, 0xf3, 0xe4, 0x7a, 0x81, 0x3d, 0x51, - 0x58, 0xcd, 0x64, 0x48, 0xad, 0x5a, 0x51, 0xa9, 0xd5, 0xfc, 0x83, 0x02, 0x60, 0x7a, 0x1f, 0x8e, - 0x7c, 0x09, 0x48, 0x59, 0xc4, 0x2a, 0xa6, 0x96, 0xad, 0x7f, 0x6e, 0x14, 0xd4, 0x3f, 0xd1, 0x81, - 0x5a, 0x4c, 0x00, 0x89, 0x89, 0x3e, 0x9f, 0x47, 0x9d, 0xa2, 0x02, 0x28, 0x72, 0xea, 0x39, 0x08, - 0xa0, 0x18, 0xd9, 0xb3, 0x05, 0xd0, 0xdf, 0x4b, 0x60, 0x2e, 0x02, 0x17, 0x16, 0x40, 0x19, 0x26, - 0x5f, 0x3f, 0xec, 0x14, 0x13, 0x25, 0xd1, 0xd4, 0xfd, 0x37, 0x89, 0x92, 0xc8, 0xab, 0x1c, 0x51, - 0xf2, 0x9b, 0x52, 0xdc, 0xf5, 0x53, 0x8a, 0x92, 0xe7, 0xf0, 0xc2, 0xf1, 0x95, 0xd3, 0x35, 0xcd, - 0x3f, 0x95, 0xc1, 0xc5, 0xe4, 0x3e, 0x94, 0x0a, 0xa4, 0x32, 0xb2, 0x40, 0xee, 0x81, 0xf9, 0x47, - 0x9e, 0xae, 0x0f, 0x78, 0x0c, 0xb1, 0x2a, 0xe9, 0x97, 0xd6, 0xff, 0x17, 0x96, 0xf3, 0xdf, 0xcd, - 0xc0, 0xa0, 0x4c, 0xcb, 0x74, 0xbd, 0xac, 0x7c, 0xde, 0x7a, 0x59, 0x3d, 0x43, 0xbd, 0xcc, 0x96, - 0x1c, 0xe5, 0x33, 0x49, 0x8e, 0xd3, 0x15, 0xcb, 0x8c, 0x83, 0x6b, 0xe4, 0xd5, 0xff, 0xa7, 0x0a, - 0x58, 0xc8, 0xbe, 0x70, 0x43, 0x1d, 0xcc, 0x18, 0xf8, 0x71, 0xfc, 0xe1, 0x63, 0x54, 0x11, 0xf1, - 0xa8, 0xa6, 0xab, 0xfe, 0x27, 0x23, 0xf5, 0x9e, 0x49, 0x77, 0x9d, 0x7d, 0xea, 0x68, 0x66, 0xcf, - 0xaf, 0xbc, 0xdb, 0x12, 0x17, 0x4a, 0x70, 0x37, 0x3f, 0x55, 0xc0, 0x62, 0x4e, 0xe5, 0x3b, 0x5f, - 0x4f, 0xe0, 0xfb, 0xa0, 0x66, 0xe0, 0xc7, 0xfb, 0x9e, 0xd3, 0xcb, 0xaa, 0xd5, 0xc5, 0xc6, 0xe1, - 0x5b, 0x71, 0x5b, 0xb0, 0xa0, 0x90, 0xaf, 0xb9, 0x0b, 0xae, 0x48, 0x41, 0xb2, 0x9d, 0x43, 0x1e, - 0x79, 0x3a, 0xdf, 0x44, 0x42, 0x6c, 0x5c, 0x03, 0x93, 0x36, 0x76, 0xa8, 0x16, 0x4a, 0xd5, 0x6a, - 0x7b, 0x7a, 0x78, 0xb2, 0x3c, 0xb9, 0x17, 0x34, 0xa2, 0xa8, 0xbf, 0xf9, 0x6f, 0x05, 0x54, 0xf7, - 0x3b, 0x58, 0x27, 0xe7, 0x50, 0xed, 0x37, 0xa5, 0x6a, 0x9f, 0xff, 0x92, 0xce, 0xfd, 0xc9, 0x2d, - 0xf4, 0x5b, 0x89, 0x42, 0xff, 0xd2, 0x08, 0x9e, 0x67, 0xd7, 0xf8, 0xb7, 0xc1, 0x64, 0x38, 0xdc, - 0xe9, 0x0e, 0xa0, 0xe6, 0xaf, 0x4b, 0x60, 0x2a, 0x36, 0xc4, 0x29, 0x8f, 0xaf, 0x87, 0xd2, 0x99, - 0xcd, 0x36, 0xe6, 0x5a, 0x91, 0x40, 0xd4, 0xe0, 0x7c, 0x7e, 0xc7, 0xa4, 0x4e, 0xfc, 0x82, 0x97, - 0x3e, 0xb6, 0xbf, 0x05, 0x66, 0x28, 0x76, 0x7a, 0x84, 0x06, 0x7d, 0x7c, 0xc2, 0x26, 0xa3, 0x07, - 0x8f, 0xfb, 0x52, 0x2f, 0x4a, 0xa0, 0x97, 0x6e, 0x83, 0x69, 0x69, 0x30, 0x78, 0x11, 0x94, 0x8f, - 0xc9, 0xc0, 0x97, 0x3d, 0x88, 0xfd, 0x09, 0xe7, 0x41, 0xb5, 0x8f, 0x75, 0xcf, 0xcf, 0xf3, 0x49, - 0xe4, 0xff, 0xb8, 0x55, 0x7a, 0x4b, 0x69, 0xfe, 0x82, 0x4d, 0x4e, 0x94, 0x9c, 0xe7, 0x90, 0x5d, - 0xef, 0x4a, 0xd9, 0x95, 0xff, 0x51, 0x2f, 0xbe, 0x65, 0xf2, 0x72, 0x0c, 0x25, 0x72, 0xec, 0xd5, - 0x42, 0x6c, 0xcf, 0xce, 0xb4, 0x7f, 0x94, 0xc0, 0x7c, 0x0c, 0x1d, 0xc9, 0xc9, 0x6f, 0x4a, 0x72, - 0x72, 0x25, 0x21, 0x27, 0xeb, 0x59, 0x36, 0x5f, 0xeb, 0xc9, 0xd1, 0x7a, 0xf2, 0xf7, 0x0a, 0x98, - 0x8d, 0xcd, 0xdd, 0x39, 0x08, 0xca, 0x7b, 0xb2, 0xa0, 0x7c, 0xa9, 0x48, 0xd2, 0xe4, 0x28, 0xca, - 0x3f, 0x57, 0x25, 0xe7, 0xff, 0xe7, 0xdf, 0xb9, 0x7e, 0x0c, 0xe6, 0xfb, 0x96, 0xee, 0x19, 0x64, - 0x43, 0xc7, 0x9a, 0x11, 0x00, 0x98, 0x02, 0x2b, 0x27, 0xef, 0x72, 0x21, 0x3d, 0x71, 0x5c, 0xcd, - 0xa5, 0xc4, 0xa4, 0x0f, 0x22, 0xcb, 0x48, 0xf7, 0x3d, 0xc8, 0xa0, 0x43, 0x99, 0x83, 0xc0, 0x37, - 0xc0, 0x14, 0x53, 0x4e, 0x5a, 0x87, 0xec, 0x60, 0x23, 0x48, 0xac, 0xf0, 0x13, 0xd6, 0x7e, 0xd4, - 0x85, 0xe2, 0x38, 0x78, 0x04, 0xe6, 0x6c, 0xab, 0xbb, 0x8d, 0x4d, 0xdc, 0x23, 0x4c, 0x66, 0xec, - 0x59, 0xba, 0xd6, 0x19, 0xf0, 0xc7, 0xaf, 0xc9, 0xf6, 0x9b, 0xc1, 0xc3, 0xc6, 0x5e, 0x1a, 0xc2, - 0x2e, 0x89, 0x19, 0xcd, 0x7c, 0x53, 0x67, 0x51, 0x42, 0x27, 0xf5, 0xd9, 0xd5, 0x7f, 0x76, 0x5e, - 0x2b, 0x92, 0x61, 0x67, 0xfc, 0xf0, 0x9a, 0xf7, 0xb6, 0x57, 0x3b, 0xd3, 0x57, 0xd3, 0x7f, 0x56, - 0xc0, 0xa5, 0xd4, 0x51, 0xf9, 0x25, 0xbe, 0xae, 0xa5, 0xa4, 0x7e, 0xf9, 0x14, 0x52, 0x7f, 0x1d, - 0xcc, 0x8a, 0x0f, 0xb6, 0x89, 0x9b, 0x42, 0x78, 0x63, 0xdb, 0x90, 0xbb, 0x51, 0x12, 0x9f, 0xf5, - 0xba, 0x57, 0x3d, 0xe5, 0xeb, 0x5e, 0xdc, 0x0b, 0xf1, 0x0f, 0x48, 0x7e, 0xea, 0xa5, 0xbd, 0x10, - 0xff, 0x87, 0x94, 0xc4, 0x33, 0x85, 0xe0, 0xb3, 0x86, 0x0c, 0x13, 0xb2, 0x42, 0x38, 0x90, 0x7a, - 0x51, 0x02, 0xfd, 0xb9, 0x3e, 0x4a, 0xe2, 0x8c, 0x8f, 0x92, 0xab, 0x45, 0xf2, 0xb9, 0xf8, 0xdd, - 0xe4, 0x2f, 0x0a, 0x78, 0x21, 0x77, 0x23, 0xc0, 0x75, 0xa9, 0xec, 0xae, 0x26, 0xca, 0xee, 0x37, - 0x72, 0x0d, 0x63, 0xb5, 0xd7, 0xc9, 0x7e, 0x9a, 0x7b, 0xbb, 0xd8, 0xd3, 0x5c, 0x86, 0x76, 0x1f, - 0xfd, 0x46, 0xd7, 0x5e, 0x7d, 0xf2, 0xb4, 0x31, 0xf6, 0xd1, 0xd3, 0xc6, 0xd8, 0x27, 0x4f, 0x1b, - 0x63, 0x3f, 0x19, 0x36, 0x94, 0x27, 0xc3, 0x86, 0xf2, 0xd1, 0xb0, 0xa1, 0x7c, 0x32, 0x6c, 0x28, - 0x7f, 0x1d, 0x36, 0x94, 0x5f, 0x7e, 0xda, 0x18, 0x7b, 0x7f, 0x42, 0x8c, 0xf8, 0x9f, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x70, 0x2d, 0x26, 0x9d, 0xec, 0x28, 0x00, 0x00, + 0xf5, 0xa2, 0x97, 0x5e, 0x0b, 0x14, 0x68, 0x7b, 0xed, 0x3f, 0xd1, 0x5b, 0x51, 0xb4, 0xb7, 0x22, + 0x28, 0x7c, 0x29, 0x10, 0xf4, 0x92, 0x9c, 0x84, 0x7a, 0x73, 0x2a, 0x8a, 0x5e, 0x0a, 0xf4, 0x12, + 0xa0, 0x40, 0x41, 0x0e, 0xe7, 0x83, 0xf3, 0xe1, 0x1d, 0x29, 0x8e, 0xd2, 0x04, 0xb9, 0x69, 0xc9, + 0xe7, 0x7d, 0xf8, 0xbe, 0xe4, 0x4b, 0xbe, 0x0f, 0x39, 0x02, 0xdf, 0x3b, 0x7e, 0xcb, 0x55, 0x35, + 0xab, 0x75, 0xec, 0x1d, 0x12, 0xc7, 0x24, 0x94, 0xb8, 0xad, 0x3e, 0x31, 0xbb, 0x96, 0xd3, 0x12, + 0x1d, 0xd8, 0xd6, 0x5a, 0xd8, 0xb6, 0xdd, 0x56, 0xff, 0xe6, 0x21, 0xa1, 0x78, 0xad, 0xd5, 0x23, + 0x26, 0x71, 0x30, 0x25, 0x5d, 0xd5, 0x76, 0x2c, 0x6a, 0xc1, 0x45, 0x1f, 0xa8, 0x62, 0x5b, 0x53, + 0x19, 0x50, 0x15, 0xc0, 0xa5, 0xd5, 0x9e, 0x46, 0x8f, 0xbc, 0x43, 0xb5, 0x63, 0x19, 0xad, 0x9e, + 0xd5, 0xb3, 0x5a, 0x1c, 0x7f, 0xe8, 0x3d, 0xe2, 0xbf, 0xf8, 0x0f, 0xfe, 0x97, 0xcf, 0xb3, 0xd4, + 0x8c, 0x0d, 0xd8, 0xb1, 0x1c, 0xd2, 0xea, 0xdf, 0x4c, 0x8e, 0xb5, 0xf4, 0x7a, 0x84, 0x31, 0x70, + 0xe7, 0x48, 0x33, 0x89, 0x33, 0x68, 0xd9, 0xc7, 0x3d, 0xd6, 0xe0, 0xb6, 0x0c, 0x42, 0x71, 0x96, + 0x55, 0x2b, 0xcf, 0xca, 0xf1, 0x4c, 0xaa, 0x19, 0x24, 0x65, 0xf0, 0xe6, 0x28, 0x03, 0xb7, 0x73, + 0x44, 0x0c, 0x9c, 0xb2, 0x7b, 0x2d, 0xcf, 0xce, 0xa3, 0x9a, 0xde, 0xd2, 0x4c, 0xea, 0x52, 0x27, + 0x69, 0xd4, 0xfc, 0xb7, 0x02, 0xe0, 0x86, 0x65, 0x52, 0xc7, 0xd2, 0x75, 0xe2, 0x20, 0xd2, 0xd7, + 0x5c, 0xcd, 0x32, 0xe1, 0x43, 0x50, 0x63, 0xf1, 0x74, 0x31, 0xc5, 0x75, 0xe5, 0x8a, 0xb2, 0x32, + 0xb5, 0x76, 0x43, 0x8d, 0x66, 0x3a, 0xa4, 0x57, 0xed, 0xe3, 0x1e, 0x6b, 0x70, 0x55, 0x86, 0x56, + 0xfb, 0x37, 0xd5, 0xdd, 0xc3, 0x0f, 0x48, 0x87, 0x6e, 0x13, 0x8a, 0xdb, 0xf0, 0xc9, 0xc9, 0xf2, + 0xd8, 0xf0, 0x64, 0x19, 0x44, 0x6d, 0x28, 0x64, 0x85, 0xbb, 0xa0, 0xc2, 0xd9, 0x4b, 0x9c, 0x7d, + 0x35, 0x97, 0x5d, 0x04, 0xad, 0x22, 0xfc, 0x93, 0x77, 0x1e, 0x53, 0x62, 0x32, 0xf7, 0xda, 0x17, + 0x04, 0x75, 0x65, 0x13, 0x53, 0x8c, 0x38, 0x11, 0xbc, 0x0e, 0x6a, 0x8e, 0x70, 0xbf, 0x5e, 0xbe, + 0xa2, 0xac, 0x94, 0xdb, 0x17, 0x05, 0xaa, 0x16, 0x84, 0x85, 0x42, 0x44, 0xf3, 0x89, 0x02, 0x16, + 0xd2, 0x71, 0x6f, 0x69, 0x2e, 0x85, 0x3f, 0x4c, 0xc5, 0xae, 0x16, 0x8b, 0x9d, 0x59, 0xf3, 0xc8, + 0xc3, 0x81, 0x83, 0x96, 0x58, 0xdc, 0x7b, 0xa0, 0xaa, 0x51, 0x62, 0xb8, 0xf5, 0xd2, 0x95, 0xf2, + 0xca, 0xd4, 0xda, 0x35, 0x35, 0x27, 0x81, 0xd5, 0xb4, 0x77, 0xed, 0x69, 0xc1, 0x5b, 0xbd, 0xc7, + 0x18, 0x90, 0x4f, 0xd4, 0xfc, 0x79, 0x09, 0x4c, 0x6e, 0x62, 0x62, 0x58, 0xe6, 0x3e, 0xa1, 0xe7, + 0xb0, 0x72, 0x77, 0x41, 0xc5, 0xb5, 0x49, 0x47, 0xac, 0xdc, 0xd5, 0xdc, 0x00, 0x42, 0x9f, 0xf6, + 0x6d, 0xd2, 0x89, 0x96, 0x8c, 0xfd, 0x42, 0x9c, 0x01, 0xee, 0x81, 0x71, 0x97, 0x62, 0xea, 0xb9, + 0x7c, 0xc1, 0xa6, 0xd6, 0x56, 0x0a, 0x70, 0x71, 0x7c, 0x7b, 0x46, 0xb0, 0x8d, 0xfb, 0xbf, 0x91, + 0xe0, 0x69, 0xfe, 0xbd, 0x04, 0x60, 0x88, 0xdd, 0xb0, 0xcc, 0xae, 0x46, 0x59, 0x3a, 0xdf, 0x02, + 0x15, 0x3a, 0xb0, 0x09, 0x9f, 0x90, 0xc9, 0xf6, 0xd5, 0xc0, 0x95, 0xfb, 0x03, 0x9b, 0x7c, 0x76, + 0xb2, 0xbc, 0x90, 0xb6, 0x60, 0x3d, 0x88, 0xdb, 0xc0, 0xad, 0xd0, 0xc9, 0x12, 0xb7, 0x7e, 0x5d, + 0x1e, 0xfa, 0xb3, 0x93, 0xe5, 0x8c, 0xb3, 0x43, 0x0d, 0x99, 0x64, 0x07, 0x61, 0x1f, 0x40, 0x1d, + 0xbb, 0xf4, 0xbe, 0x83, 0x4d, 0xd7, 0x1f, 0x49, 0x33, 0x88, 0x08, 0xff, 0xd5, 0x62, 0x0b, 0xc5, + 0x2c, 0xda, 0x4b, 0xc2, 0x0b, 0xb8, 0x95, 0x62, 0x43, 0x19, 0x23, 0xc0, 0xab, 0x60, 0xdc, 0x21, + 0xd8, 0xb5, 0xcc, 0x7a, 0x85, 0x47, 0x11, 0x4e, 0x20, 0xe2, 0xad, 0x48, 0xf4, 0xc2, 0x57, 0xc0, + 0x84, 0x41, 0x5c, 0x17, 0xf7, 0x48, 0xbd, 0xca, 0x81, 0xb3, 0x02, 0x38, 0xb1, 0xed, 0x37, 0xa3, + 0xa0, 0xbf, 0xf9, 0x3b, 0x05, 0x4c, 0x87, 0x33, 0x77, 0x0e, 0x3b, 0xe7, 0x8e, 0xbc, 0x73, 0x9a, + 0xa3, 0x93, 0x25, 0x67, 0xc3, 0x7c, 0x58, 0x8e, 0x39, 0xce, 0xd2, 0x11, 0xfe, 0x08, 0xd4, 0x5c, + 0xa2, 0x93, 0x0e, 0xb5, 0x1c, 0xe1, 0xf8, 0x6b, 0x05, 0x1d, 0xc7, 0x87, 0x44, 0xdf, 0x17, 0xa6, + 0xed, 0x0b, 0xcc, 0xf3, 0xe0, 0x17, 0x0a, 0x29, 0xe1, 0x7b, 0xa0, 0x46, 0x89, 0x61, 0xeb, 0x98, + 0x12, 0xb1, 0x6b, 0x5e, 0x8c, 0x3b, 0xcf, 0x72, 0x86, 0x91, 0xed, 0x59, 0xdd, 0xfb, 0x02, 0xc6, + 0xb7, 0x4c, 0x38, 0x19, 0x41, 0x2b, 0x0a, 0x69, 0xa0, 0x0d, 0x66, 0x3c, 0xbb, 0xcb, 0x90, 0x94, + 0x1d, 0xe7, 0xbd, 0x81, 0xc8, 0xa1, 0x1b, 0xa3, 0x67, 0xe5, 0x40, 0xb2, 0x6b, 0x2f, 0x88, 0x51, + 0x66, 0xe4, 0x76, 0x94, 0xe0, 0x87, 0xeb, 0x60, 0xd6, 0xd0, 0x4c, 0x44, 0x70, 0x77, 0xb0, 0x4f, + 0x3a, 0x96, 0xd9, 0x75, 0x79, 0x2a, 0x55, 0xdb, 0x8b, 0x82, 0x60, 0x76, 0x5b, 0xee, 0x46, 0x49, + 0x3c, 0xdc, 0x02, 0xf3, 0xc1, 0x01, 0x7c, 0x57, 0x73, 0xa9, 0xe5, 0x0c, 0xb6, 0x34, 0x43, 0xa3, + 0xf5, 0x71, 0xce, 0x53, 0x1f, 0x9e, 0x2c, 0xcf, 0xa3, 0x8c, 0x7e, 0x94, 0x69, 0xd5, 0xfc, 0xf5, + 0x38, 0x98, 0x4d, 0x9c, 0x0b, 0xf0, 0x01, 0x58, 0xe8, 0x78, 0x8e, 0x43, 0x4c, 0xba, 0xe3, 0x19, + 0x87, 0xc4, 0xd9, 0xef, 0x1c, 0x91, 0xae, 0xa7, 0x93, 0x2e, 0x5f, 0xd6, 0x6a, 0xbb, 0x21, 0x7c, + 0x5d, 0xd8, 0xc8, 0x44, 0xa1, 0x1c, 0x6b, 0xf8, 0x2e, 0x80, 0x26, 0x6f, 0xda, 0xd6, 0x5c, 0x37, + 0xe4, 0x2c, 0x71, 0xce, 0x70, 0x2b, 0xee, 0xa4, 0x10, 0x28, 0xc3, 0x8a, 0xf9, 0xd8, 0x25, 0xae, + 0xe6, 0x90, 0x6e, 0xd2, 0xc7, 0xb2, 0xec, 0xe3, 0x66, 0x26, 0x0a, 0xe5, 0x58, 0xc3, 0x37, 0xc0, + 0x94, 0x3f, 0x1a, 0x9f, 0x73, 0xb1, 0x38, 0x73, 0x82, 0x6c, 0x6a, 0x27, 0xea, 0x42, 0x71, 0x1c, + 0x0b, 0xcd, 0x3a, 0x74, 0x89, 0xd3, 0x27, 0xdd, 0x3b, 0xbe, 0x38, 0x60, 0x15, 0xb4, 0xca, 0x2b, + 0x68, 0x18, 0xda, 0x6e, 0x0a, 0x81, 0x32, 0xac, 0x58, 0x68, 0x7e, 0xd6, 0xa4, 0x42, 0x1b, 0x97, + 0x43, 0x3b, 0xc8, 0x44, 0xa1, 0x1c, 0x6b, 0x96, 0x7b, 0xbe, 0xcb, 0xeb, 0x7d, 0xac, 0xe9, 0xf8, + 0x50, 0x27, 0xf5, 0x09, 0x39, 0xf7, 0x76, 0xe4, 0x6e, 0x94, 0xc4, 0xc3, 0x3b, 0xe0, 0x92, 0xdf, + 0x74, 0x60, 0xe2, 0x90, 0xa4, 0xc6, 0x49, 0x5e, 0x10, 0x24, 0x97, 0x76, 0x92, 0x00, 0x94, 0xb6, + 0x81, 0xb7, 0xc0, 0x4c, 0xc7, 0xd2, 0x75, 0x9e, 0x8f, 0x1b, 0x96, 0x67, 0xd2, 0xfa, 0x24, 0x67, + 0x81, 0x6c, 0x0f, 0x6d, 0x48, 0x3d, 0x28, 0x81, 0x84, 0x3f, 0x06, 0xa0, 0x13, 0x14, 0x06, 0xb7, + 0x0e, 0x46, 0x28, 0x80, 0x74, 0x59, 0x8a, 0x2a, 0x73, 0xd8, 0xe4, 0xa2, 0x18, 0x65, 0xf3, 0x43, + 0x05, 0x2c, 0xe6, 0x6c, 0x74, 0xf8, 0x5d, 0xa9, 0x08, 0x5e, 0x4b, 0x14, 0xc1, 0xcb, 0x39, 0x66, + 0xb1, 0x4a, 0x78, 0x04, 0xa6, 0x99, 0x20, 0xd1, 0xcc, 0x9e, 0x0f, 0x11, 0x67, 0x59, 0x2b, 0x37, + 0x00, 0x14, 0x47, 0x47, 0xa7, 0xf2, 0xa5, 0xe1, 0xc9, 0xf2, 0xb4, 0xd4, 0x87, 0x64, 0xe2, 0xe6, + 0x2f, 0x4a, 0x00, 0x6c, 0x12, 0x5b, 0xb7, 0x06, 0x06, 0x31, 0xcf, 0x43, 0xd3, 0xdc, 0x93, 0x34, + 0xcd, 0xcb, 0xf9, 0x4b, 0x12, 0x3a, 0x95, 0x2b, 0x6a, 0xde, 0x4b, 0x88, 0x9a, 0x57, 0x8a, 0x90, + 0x3d, 0x5b, 0xd5, 0x7c, 0x5c, 0x06, 0x73, 0x11, 0x38, 0x92, 0x35, 0xb7, 0xa5, 0x15, 0x7d, 0x39, + 0xb1, 0xa2, 0x8b, 0x19, 0x26, 0x5f, 0x98, 0xae, 0xf9, 0x00, 0xcc, 0x30, 0xd5, 0xe1, 0xaf, 0x1f, + 0xd7, 0x34, 0xe3, 0xa7, 0xd6, 0x34, 0x61, 0x25, 0xda, 0x92, 0x98, 0x50, 0x82, 0x39, 0x47, 0x43, + 0x4d, 0x7c, 0x15, 0x35, 0xd4, 0xef, 0x15, 0x30, 0x13, 0x2d, 0xd3, 0x39, 0x88, 0xa8, 0xbb, 0xb2, + 0x88, 0x7a, 0xb1, 0x40, 0x72, 0xe6, 0xa8, 0xa8, 0x8f, 0x2b, 0x71, 0xd7, 0xb9, 0x8c, 0x5a, 0x61, + 0x57, 0x30, 0x5b, 0xd7, 0x3a, 0xd8, 0x15, 0xf5, 0xf6, 0x82, 0x7f, 0xfd, 0xf2, 0xdb, 0x50, 0xd8, + 0x2b, 0x09, 0xae, 0xd2, 0x17, 0x2b, 0xb8, 0xca, 0xcf, 0x47, 0x70, 0xfd, 0x00, 0xd4, 0xdc, 0x40, + 0x6a, 0x55, 0x38, 0xe5, 0xb5, 0x42, 0x1b, 0x5b, 0xa8, 0xac, 0x90, 0x3a, 0xd4, 0x57, 0x21, 0x5d, + 0x96, 0xb2, 0xaa, 0x7e, 0x99, 0xca, 0x8a, 0x25, 0xba, 0x8d, 0x3d, 0x97, 0x74, 0xf9, 0xa6, 0xaa, + 0x45, 0x89, 0xbe, 0xc7, 0x5b, 0x91, 0xe8, 0x85, 0x07, 0x60, 0xd1, 0x76, 0xac, 0x9e, 0x43, 0x5c, + 0x77, 0x93, 0xe0, 0xae, 0xae, 0x99, 0x24, 0x08, 0xc0, 0xaf, 0x89, 0x97, 0x87, 0x27, 0xcb, 0x8b, + 0x7b, 0xd9, 0x10, 0x94, 0x67, 0xdb, 0xfc, 0x53, 0x05, 0x5c, 0x4c, 0x9e, 0x8d, 0x39, 0x32, 0x45, + 0x39, 0x93, 0x4c, 0xb9, 0x1e, 0xcb, 0x53, 0x5f, 0xc3, 0xc5, 0x9e, 0x0a, 0x52, 0xb9, 0xba, 0x0e, + 0x66, 0x85, 0x2c, 0x09, 0x3a, 0x85, 0x50, 0x0b, 0x97, 0xe7, 0x40, 0xee, 0x46, 0x49, 0x3c, 0xbc, + 0x0d, 0xa6, 0x1d, 0xae, 0xbc, 0x02, 0x02, 0x5f, 0xbd, 0xfc, 0x9f, 0x20, 0x98, 0x46, 0xf1, 0x4e, + 0x24, 0x63, 0x99, 0x72, 0x89, 0x04, 0x49, 0x40, 0x50, 0x91, 0x95, 0xcb, 0x7a, 0x12, 0x80, 0xd2, + 0x36, 0x70, 0x1b, 0xcc, 0x79, 0x66, 0x9a, 0xca, 0xcf, 0xb5, 0xcb, 0x82, 0x6a, 0xee, 0x20, 0x0d, + 0x41, 0x59, 0x76, 0xf0, 0xa1, 0x24, 0x66, 0xc6, 0xf9, 0x79, 0x72, 0xbd, 0xc0, 0x9e, 0x28, 0xac, + 0x66, 0x32, 0xa4, 0x56, 0xad, 0xa8, 0xd4, 0x6a, 0xfe, 0x51, 0x01, 0x30, 0xbd, 0x0f, 0x47, 0xbe, + 0x04, 0xa4, 0x2c, 0x62, 0x15, 0x53, 0xcb, 0xd6, 0x3f, 0x37, 0x0a, 0xea, 0x9f, 0xe8, 0x40, 0x2d, + 0x26, 0x80, 0xc4, 0x44, 0x9f, 0xcf, 0xa3, 0x4e, 0x51, 0x01, 0x14, 0x39, 0xf5, 0x1c, 0x04, 0x50, + 0x8c, 0xec, 0xd9, 0x02, 0xe8, 0x1f, 0x25, 0x30, 0x17, 0x81, 0x0b, 0x0b, 0xa0, 0x0c, 0x93, 0x6f, + 0x1e, 0x76, 0x8a, 0x89, 0x92, 0x68, 0xea, 0xfe, 0x97, 0x44, 0x49, 0xe4, 0x55, 0x8e, 0x28, 0xf9, + 0x6d, 0x29, 0xee, 0xfa, 0x29, 0x45, 0xc9, 0x73, 0x78, 0xe1, 0xf8, 0xca, 0xe9, 0x9a, 0xe6, 0x9f, + 0xcb, 0xe0, 0x62, 0x72, 0x1f, 0x4a, 0x05, 0x52, 0x19, 0x59, 0x20, 0xf7, 0xc0, 0xfc, 0x23, 0x4f, + 0xd7, 0x07, 0x3c, 0x86, 0x58, 0x95, 0xf4, 0x4b, 0xeb, 0xff, 0x0b, 0xcb, 0xf9, 0xef, 0x67, 0x60, + 0x50, 0xa6, 0x65, 0xba, 0x5e, 0x56, 0x3e, 0x6f, 0xbd, 0xac, 0x9e, 0xa1, 0x5e, 0x66, 0x4b, 0x8e, + 0xf2, 0x99, 0x24, 0xc7, 0xe9, 0x8a, 0x65, 0xc6, 0xc1, 0x35, 0xf2, 0xea, 0x3f, 0x54, 0xc0, 0x42, + 0xf6, 0x85, 0x1b, 0xea, 0x60, 0xc6, 0xc0, 0x8f, 0xe3, 0x0f, 0x1f, 0xa3, 0x8a, 0x88, 0x47, 0x35, + 0x5d, 0xf5, 0x3f, 0x19, 0xa9, 0xf7, 0x4c, 0xba, 0xeb, 0xec, 0x53, 0x47, 0x33, 0x7b, 0x7e, 0xe5, + 0xdd, 0x96, 0xb8, 0x50, 0x82, 0x1b, 0xbe, 0x0f, 0x6a, 0x06, 0x7e, 0xbc, 0xef, 0x39, 0xbd, 0xac, + 0x0a, 0x59, 0x6c, 0x1c, 0xbe, 0x01, 0xb6, 0x05, 0x0b, 0x0a, 0xf9, 0x9a, 0x9f, 0x2a, 0x60, 0x31, + 0xa7, 0xaa, 0x7e, 0x8d, 0xa2, 0xdc, 0x05, 0x57, 0xa4, 0x20, 0xd9, 0xae, 0x24, 0x8f, 0x3c, 0x9d, + 0x6f, 0x50, 0x21, 0x64, 0xae, 0x81, 0x49, 0x1b, 0x3b, 0x54, 0x0b, 0x65, 0x70, 0xb5, 0x3d, 0x3d, + 0x3c, 0x59, 0x9e, 0xdc, 0x0b, 0x1a, 0x51, 0xd4, 0xdf, 0xfc, 0x8f, 0x02, 0xaa, 0xfb, 0x1d, 0xac, + 0x93, 0x73, 0x50, 0x12, 0x9b, 0x92, 0x92, 0xc8, 0x7f, 0xa5, 0xe7, 0xfe, 0xe4, 0x8a, 0x88, 0xad, + 0x84, 0x88, 0x78, 0x69, 0x04, 0xcf, 0xb3, 0xf5, 0xc3, 0xdb, 0x60, 0x32, 0x1c, 0xee, 0x74, 0x87, + 0x5b, 0xf3, 0x37, 0x25, 0x30, 0x15, 0x1b, 0xe2, 0x94, 0x47, 0xe3, 0x43, 0xa9, 0x1e, 0xb0, 0x4d, + 0xbf, 0x56, 0x24, 0x10, 0x35, 0x38, 0xfb, 0xdf, 0x31, 0xa9, 0x13, 0xbf, 0x3c, 0xa6, 0x4b, 0xc2, + 0x77, 0xc0, 0x0c, 0xc5, 0x4e, 0x8f, 0xd0, 0xa0, 0x8f, 0x4f, 0xd8, 0x64, 0xf4, 0x98, 0x72, 0x5f, + 0xea, 0x45, 0x09, 0xf4, 0xd2, 0x6d, 0x30, 0x2d, 0x0d, 0x06, 0x2f, 0x82, 0xf2, 0x31, 0x19, 0xf8, + 0x92, 0x0a, 0xb1, 0x3f, 0xe1, 0x3c, 0xa8, 0xf6, 0xb1, 0xee, 0xf9, 0x79, 0x3e, 0x89, 0xfc, 0x1f, + 0xb7, 0x4a, 0x6f, 0x29, 0xcd, 0x5f, 0xb2, 0xc9, 0x89, 0x92, 0xf3, 0x1c, 0xb2, 0xeb, 0x5d, 0x29, + 0xbb, 0xf2, 0x3f, 0x18, 0xc6, 0xb7, 0x4c, 0x5e, 0x8e, 0xa1, 0x44, 0x8e, 0xbd, 0x5a, 0x88, 0xed, + 0xd9, 0x99, 0xf6, 0xcf, 0x12, 0x98, 0x8f, 0xa1, 0x23, 0xa9, 0xfa, 0x6d, 0x49, 0xaa, 0xae, 0x24, + 0xa4, 0x6a, 0x3d, 0xcb, 0xe6, 0x1b, 0xad, 0x3a, 0x5a, 0xab, 0xfe, 0x41, 0x01, 0xb3, 0xb1, 0xb9, + 0x3b, 0x07, 0xb1, 0x7a, 0x4f, 0x16, 0xab, 0x2f, 0x15, 0x49, 0x9a, 0x1c, 0xb5, 0xfa, 0x97, 0xaa, + 0xe4, 0xfc, 0xd7, 0xfe, 0x0d, 0xed, 0xa7, 0x60, 0xbe, 0x6f, 0xe9, 0x9e, 0x41, 0x36, 0x74, 0xac, + 0x19, 0x01, 0x80, 0xa9, 0xbb, 0x72, 0xf2, 0x9e, 0x18, 0xd2, 0x13, 0xc7, 0xd5, 0x5c, 0x4a, 0x4c, + 0xfa, 0x20, 0xb2, 0x8c, 0x34, 0xe5, 0x83, 0x0c, 0x3a, 0x94, 0x39, 0x08, 0x7c, 0x03, 0x4c, 0x31, + 0x55, 0xa6, 0x75, 0xc8, 0x0e, 0x36, 0x82, 0xc4, 0x0a, 0x3f, 0x8f, 0xed, 0x47, 0x5d, 0x28, 0x8e, + 0x83, 0x47, 0x60, 0xce, 0xb6, 0xba, 0xdb, 0xd8, 0xc4, 0x3d, 0xc2, 0x64, 0xc6, 0x9e, 0xa5, 0x6b, + 0x9d, 0x01, 0x7f, 0x58, 0x9b, 0x6c, 0xbf, 0x19, 0x3c, 0x9a, 0xec, 0xa5, 0x21, 0xec, 0x02, 0x9a, + 0xd1, 0xcc, 0x37, 0x75, 0x16, 0x25, 0x74, 0x52, 0x9f, 0x74, 0xfd, 0x27, 0xed, 0xb5, 0x22, 0x19, + 0x76, 0xc6, 0x8f, 0xba, 0x79, 0xef, 0x86, 0xb5, 0x33, 0x7d, 0x91, 0xfd, 0x57, 0x05, 0x5c, 0x4a, + 0x1d, 0x95, 0x5f, 0xe2, 0xcb, 0x5d, 0xea, 0x1a, 0x51, 0x3e, 0xc5, 0x35, 0x62, 0x1d, 0xcc, 0x8a, + 0x8f, 0xc1, 0x89, 0x5b, 0x48, 0x78, 0x1b, 0xdc, 0x90, 0xbb, 0x51, 0x12, 0x9f, 0xf5, 0x72, 0x58, + 0x3d, 0xe5, 0xcb, 0x61, 0xdc, 0x0b, 0xf1, 0xcf, 0x4d, 0x7e, 0xea, 0xa5, 0xbd, 0x10, 0xff, 0xe3, + 0x94, 0xc4, 0x33, 0x85, 0xe0, 0xb3, 0x86, 0x0c, 0x13, 0xb2, 0x42, 0x38, 0x90, 0x7a, 0x51, 0x02, + 0xfd, 0xb9, 0x3e, 0x78, 0xe2, 0x8c, 0x0f, 0x9e, 0xab, 0x45, 0xf2, 0xb9, 0xf8, 0xbd, 0xe7, 0xaf, + 0x0a, 0x78, 0x21, 0x77, 0x23, 0xc0, 0x75, 0xa9, 0xec, 0xae, 0x26, 0xca, 0xee, 0xb7, 0x72, 0x0d, + 0x63, 0xb5, 0xd7, 0xc9, 0x7e, 0xf6, 0x7b, 0xbb, 0xd8, 0xb3, 0x5f, 0x86, 0x76, 0x1f, 0xfd, 0xfe, + 0xd7, 0x5e, 0x7d, 0xf2, 0xb4, 0x31, 0xf6, 0xd1, 0xd3, 0xc6, 0xd8, 0x27, 0x4f, 0x1b, 0x63, 0x3f, + 0x1b, 0x36, 0x94, 0x27, 0xc3, 0x86, 0xf2, 0xd1, 0xb0, 0xa1, 0x7c, 0x32, 0x6c, 0x28, 0x7f, 0x1b, + 0x36, 0x94, 0x5f, 0x7d, 0xda, 0x18, 0x7b, 0x7f, 0x42, 0x8c, 0xf8, 0xdf, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xd0, 0xf7, 0x24, 0x13, 0x48, 0x29, 0x00, 0x00, } func (m *ControllerRevision) Marshal() (dAtA []byte, err error) { @@ -2133,6 +2133,18 @@ func (m *RollingUpdateDaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if m.MaxSurge != nil { + { + size, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } if m.MaxUnavailable != nil { { size, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i]) @@ -3081,6 +3093,10 @@ func (m *RollingUpdateDaemonSet) Size() (n int) { l = m.MaxUnavailable.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.MaxSurge != nil { + l = m.MaxSurge.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -3583,6 +3599,7 @@ func (this *RollingUpdateDaemonSet) String() string { } s := strings.Join([]string{`&RollingUpdateDaemonSet{`, `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "intstr.IntOrString", 1) + `,`, + `MaxSurge:` + strings.Replace(fmt.Sprintf("%v", this.MaxSurge), "IntOrString", "intstr.IntOrString", 1) + `,`, `}`, }, "") return s @@ -3878,10 +3895,7 @@ func (m *ControllerRevision) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3998,10 +4012,7 @@ func (m *ControllerRevisionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4150,10 +4161,7 @@ func (m *DaemonSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4364,10 +4372,7 @@ func (m *DaemonSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4484,10 +4489,7 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4678,10 +4680,7 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4937,10 +4936,7 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5058,10 +5054,7 @@ func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5210,10 +5203,7 @@ func (m *Deployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5457,10 +5447,7 @@ func (m *DeploymentCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5577,10 +5564,7 @@ func (m *DeploymentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5831,10 +5815,7 @@ func (m *DeploymentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6052,10 +6033,7 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6173,10 +6151,7 @@ func (m *DeploymentStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6325,10 +6300,7 @@ func (m *ReplicaSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6539,10 +6511,7 @@ func (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6659,10 +6628,7 @@ func (m *ReplicaSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6820,10 +6786,7 @@ func (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7002,10 +6965,7 @@ func (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7085,16 +7045,49 @@ func (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxSurge == nil { + m.MaxSurge = &intstr.IntOrString{} + } + if err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7216,10 +7209,7 @@ func (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7289,10 +7279,7 @@ func (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7441,10 +7428,7 @@ func (m *Scale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7513,10 +7497,7 @@ func (m *ScaleSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7695,7 +7676,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7744,10 +7725,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7896,10 +7874,7 @@ func (m *StatefulSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8110,10 +8085,7 @@ func (m *StatefulSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8230,10 +8202,7 @@ func (m *StatefulSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8523,10 +8492,7 @@ func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8789,10 +8755,7 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8910,10 +8873,7 @@ func (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/apps/v1beta2/generated.proto b/vendor/k8s.io/api/apps/v1beta2/generated.proto index 1ea7e23a81..ff306ba6a9 100644 --- a/vendor/k8s.io/api/apps/v1beta2/generated.proto +++ b/vendor/k8s.io/api/apps/v1beta2/generated.proto @@ -487,19 +487,41 @@ message RollingUpdateDaemonSet { // The maximum number of DaemonSet pods that can be unavailable during the // update. Value can be an absolute number (ex: 5) or a percentage of total // number of DaemonSet pods at the start of the update (ex: 10%). Absolute - // number is calculated from percentage by rounding up. - // This cannot be 0. + // number is calculated from percentage by rounding down to a minimum of one. + // This cannot be 0 if MaxSurge is 0 // Default value is 1. // Example: when this is set to 30%, at most 30% of the total number of nodes // that should be running the daemon pod (i.e. status.desiredNumberScheduled) - // can have their pods stopped for an update at any given - // time. The update starts by stopping at most 30% of those DaemonSet pods - // and then brings up new DaemonSet pods in their place. Once the new pods - // are available, it then proceeds onto other DaemonSet pods, thus ensuring - // that at least 70% of original number of DaemonSet pods are available at - // all times during the update. + // can have their pods stopped for an update at any given time. The update + // starts by stopping at most 30% of those DaemonSet pods and then brings + // up new DaemonSet pods in their place. Once the new pods are available, + // it then proceeds onto other DaemonSet pods, thus ensuring that at least + // 70% of original number of DaemonSet pods are available at all times during + // the update. // +optional optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1; + + // The maximum number of nodes with an existing available DaemonSet pod that + // can have an updated DaemonSet pod during during an update. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // This can not be 0 if MaxUnavailable is 0. + // Absolute number is calculated from percentage by rounding up to a minimum of 1. + // Default value is 0. + // Example: when this is set to 30%, at most 30% of the total number of nodes + // that should be running the daemon pod (i.e. status.desiredNumberScheduled) + // can have their a new pod created before the old pod is marked as deleted. + // The update starts by launching new pods on 30% of nodes. Once an updated + // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod + // on that node is marked deleted. If the old pod becomes unavailable for any + // reason (Ready transitions to false, is evicted, or is drained) an updated + // pod is immediatedly created on that node without considering surge limits. + // Allowing surge implies the possibility that the resources consumed by the + // daemonset on any given node can double if the readiness check fails, and + // so resource intensive daemonsets should take into account that they may + // cause evictions during disruption. + // This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2; } // Spec to control the desired behavior of rolling update. diff --git a/vendor/k8s.io/api/apps/v1beta2/types.go b/vendor/k8s.io/api/apps/v1beta2/types.go index fc542ac1c8..316a0ad24d 100644 --- a/vendor/k8s.io/api/apps/v1beta2/types.go +++ b/vendor/k8s.io/api/apps/v1beta2/types.go @@ -554,19 +554,41 @@ type RollingUpdateDaemonSet struct { // The maximum number of DaemonSet pods that can be unavailable during the // update. Value can be an absolute number (ex: 5) or a percentage of total // number of DaemonSet pods at the start of the update (ex: 10%). Absolute - // number is calculated from percentage by rounding up. - // This cannot be 0. + // number is calculated from percentage by rounding down to a minimum of one. + // This cannot be 0 if MaxSurge is 0 // Default value is 1. // Example: when this is set to 30%, at most 30% of the total number of nodes // that should be running the daemon pod (i.e. status.desiredNumberScheduled) - // can have their pods stopped for an update at any given - // time. The update starts by stopping at most 30% of those DaemonSet pods - // and then brings up new DaemonSet pods in their place. Once the new pods - // are available, it then proceeds onto other DaemonSet pods, thus ensuring - // that at least 70% of original number of DaemonSet pods are available at - // all times during the update. + // can have their pods stopped for an update at any given time. The update + // starts by stopping at most 30% of those DaemonSet pods and then brings + // up new DaemonSet pods in their place. Once the new pods are available, + // it then proceeds onto other DaemonSet pods, thus ensuring that at least + // 70% of original number of DaemonSet pods are available at all times during + // the update. // +optional MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,1,opt,name=maxUnavailable"` + + // The maximum number of nodes with an existing available DaemonSet pod that + // can have an updated DaemonSet pod during during an update. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // This can not be 0 if MaxUnavailable is 0. + // Absolute number is calculated from percentage by rounding up to a minimum of 1. + // Default value is 0. + // Example: when this is set to 30%, at most 30% of the total number of nodes + // that should be running the daemon pod (i.e. status.desiredNumberScheduled) + // can have their a new pod created before the old pod is marked as deleted. + // The update starts by launching new pods on 30% of nodes. Once an updated + // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod + // on that node is marked deleted. If the old pod becomes unavailable for any + // reason (Ready transitions to false, is evicted, or is drained) an updated + // pod is immediatedly created on that node without considering surge limits. + // Allowing surge implies the possibility that the resources consumed by the + // daemonset on any given node can double if the readiness check fails, and + // so resource intensive daemonsets should take into account that they may + // cause evictions during disruption. + // This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate. + // +optional + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,2,opt,name=maxSurge"` } // DaemonSetSpec is the specification of a daemon set. diff --git a/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go b/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go index 822158a186..51d5522348 100644 --- a/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go @@ -262,7 +262,8 @@ func (ReplicaSetStatus) SwaggerDoc() map[string]string { var map_RollingUpdateDaemonSet = map[string]string{ "": "Spec to control the desired behavior of daemon set rolling update.", - "maxUnavailable": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", + "maxUnavailable": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding down to a minimum of one. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", + "maxSurge": "The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate.", } func (RollingUpdateDaemonSet) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go b/vendor/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go index 127bf095f4..0a84d1b08a 100644 --- a/vendor/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go @@ -544,6 +544,11 @@ func (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) { *out = new(intstr.IntOrString) **out = **in } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + *out = new(intstr.IntOrString) + **out = **in + } return } diff --git a/vendor/k8s.io/api/authentication/v1/generated.pb.go b/vendor/k8s.io/api/authentication/v1/generated.pb.go index 6524f8ca96..89e7e92046 100644 --- a/vendor/k8s.io/api/authentication/v1/generated.pb.go +++ b/vendor/k8s.io/api/authentication/v1/generated.pb.go @@ -316,64 +316,64 @@ func init() { } var fileDescriptor_2953ea822e7ffe1e = []byte{ - // 903 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcf, 0x6f, 0xe3, 0x44, - 0x14, 0x8e, 0xf3, 0xa3, 0x4a, 0x26, 0xdb, 0xd2, 0xce, 0xb2, 0x52, 0x54, 0x20, 0x2e, 0x5e, 0x09, - 0x55, 0xc0, 0xda, 0x9b, 0x08, 0xc1, 0x6a, 0x91, 0x90, 0x6a, 0x1a, 0x41, 0x84, 0x60, 0x57, 0xb3, - 0xdb, 0x82, 0x38, 0x31, 0xb1, 0x5f, 0x53, 0x13, 0x3c, 0x36, 0xf6, 0x38, 0x6c, 0x6e, 0xfb, 0x27, - 0x70, 0x04, 0x89, 0x03, 0x7f, 0x04, 0x12, 0xff, 0x42, 0x8f, 0x2b, 0x4e, 0x3d, 0xa0, 0x88, 0x9a, - 0x2b, 0x47, 0x4e, 0x9c, 0xd0, 0x8c, 0xa7, 0x71, 0x9c, 0xb4, 0x69, 0x4e, 0x7b, 0x8b, 0xdf, 0xfb, - 0xde, 0xf7, 0xde, 0xfb, 0xe6, 0xcb, 0x0c, 0xea, 0x8d, 0x1e, 0xc4, 0xa6, 0x17, 0x58, 0xa3, 0x64, - 0x00, 0x11, 0x03, 0x0e, 0xb1, 0x35, 0x06, 0xe6, 0x06, 0x91, 0xa5, 0x12, 0x34, 0xf4, 0x2c, 0x9a, - 0xf0, 0x53, 0x60, 0xdc, 0x73, 0x28, 0xf7, 0x02, 0x66, 0x8d, 0x3b, 0xd6, 0x10, 0x18, 0x44, 0x94, - 0x83, 0x6b, 0x86, 0x51, 0xc0, 0x03, 0xfc, 0x7a, 0x86, 0x36, 0x69, 0xe8, 0x99, 0x45, 0xb4, 0x39, - 0xee, 0xec, 0xde, 0x1b, 0x7a, 0xfc, 0x34, 0x19, 0x98, 0x4e, 0xe0, 0x5b, 0xc3, 0x60, 0x18, 0x58, - 0xb2, 0x68, 0x90, 0x9c, 0xc8, 0x2f, 0xf9, 0x21, 0x7f, 0x65, 0x64, 0xbb, 0xef, 0xe5, 0xad, 0x7d, - 0xea, 0x9c, 0x7a, 0x0c, 0xa2, 0x89, 0x15, 0x8e, 0x86, 0x22, 0x10, 0x5b, 0x3e, 0x70, 0x7a, 0xc5, - 0x08, 0xbb, 0xd6, 0x75, 0x55, 0x51, 0xc2, 0xb8, 0xe7, 0xc3, 0x52, 0xc1, 0xfb, 0x37, 0x15, 0xc4, - 0xce, 0x29, 0xf8, 0x74, 0xb1, 0xce, 0xf8, 0x43, 0x43, 0xaf, 0xda, 0x41, 0xc2, 0xdc, 0x47, 0x83, - 0x6f, 0xc1, 0xe1, 0x04, 0x4e, 0x20, 0x02, 0xe6, 0x00, 0xde, 0x43, 0xd5, 0x91, 0xc7, 0xdc, 0x96, - 0xb6, 0xa7, 0xed, 0x37, 0xec, 0x5b, 0x67, 0x53, 0xbd, 0x94, 0x4e, 0xf5, 0xea, 0x67, 0x1e, 0x73, - 0x89, 0xcc, 0xe0, 0x2e, 0x42, 0xf4, 0x71, 0xff, 0x18, 0xa2, 0xd8, 0x0b, 0x58, 0xab, 0x2c, 0x71, - 0x58, 0xe1, 0xd0, 0xc1, 0x2c, 0x43, 0xe6, 0x50, 0x82, 0x95, 0x51, 0x1f, 0x5a, 0x95, 0x22, 0xeb, - 0x17, 0xd4, 0x07, 0x22, 0x33, 0xd8, 0x46, 0x95, 0xa4, 0x7f, 0xd8, 0xaa, 0x4a, 0xc0, 0x7d, 0x05, - 0xa8, 0x1c, 0xf5, 0x0f, 0xff, 0x9b, 0xea, 0x6f, 0x5e, 0xb7, 0x24, 0x9f, 0x84, 0x10, 0x9b, 0x47, - 0xfd, 0x43, 0x22, 0x8a, 0x8d, 0x0f, 0x10, 0xea, 0x3d, 0xe3, 0x11, 0x3d, 0xa6, 0xdf, 0x25, 0x80, - 0x75, 0x54, 0xf3, 0x38, 0xf8, 0x71, 0x4b, 0xdb, 0xab, 0xec, 0x37, 0xec, 0x46, 0x3a, 0xd5, 0x6b, - 0x7d, 0x11, 0x20, 0x59, 0xfc, 0x61, 0xfd, 0xa7, 0x5f, 0xf5, 0xd2, 0xf3, 0x3f, 0xf7, 0x4a, 0xc6, - 0x2f, 0x65, 0x74, 0xeb, 0x69, 0x30, 0x02, 0x46, 0xe0, 0xfb, 0x04, 0x62, 0x8e, 0xbf, 0x41, 0x75, - 0x71, 0x44, 0x2e, 0xe5, 0x54, 0x2a, 0xd1, 0xec, 0xde, 0x37, 0x73, 0x77, 0xcc, 0x86, 0x30, 0xc3, - 0xd1, 0x50, 0x04, 0x62, 0x53, 0xa0, 0xcd, 0x71, 0xc7, 0xcc, 0xe4, 0xfc, 0x1c, 0x38, 0xcd, 0x35, - 0xc9, 0x63, 0x64, 0xc6, 0x8a, 0x1f, 0xa3, 0x6a, 0x1c, 0x82, 0x23, 0xf5, 0x6b, 0x76, 0x4d, 0x73, - 0x95, 0xf7, 0xcc, 0xf9, 0xd9, 0x9e, 0x84, 0xe0, 0xe4, 0x0a, 0x8a, 0x2f, 0x22, 0x99, 0xf0, 0x57, - 0x68, 0x23, 0xe6, 0x94, 0x27, 0xb1, 0x54, 0xb9, 0x38, 0xf1, 0x4d, 0x9c, 0xb2, 0xce, 0xde, 0x52, - 0xac, 0x1b, 0xd9, 0x37, 0x51, 0x7c, 0xc6, 0xbf, 0x1a, 0xda, 0x5e, 0x1c, 0x01, 0xbf, 0x83, 0x1a, - 0x34, 0x71, 0x3d, 0x61, 0x9a, 0x4b, 0x89, 0x37, 0xd3, 0xa9, 0xde, 0x38, 0xb8, 0x0c, 0x92, 0x3c, - 0x8f, 0x3f, 0x46, 0x3b, 0xf0, 0x2c, 0xf4, 0x22, 0xd9, 0xfd, 0x09, 0x38, 0x01, 0x73, 0x63, 0x79, - 0xd6, 0x15, 0xfb, 0x4e, 0x3a, 0xd5, 0x77, 0x7a, 0x8b, 0x49, 0xb2, 0x8c, 0xc7, 0x0c, 0x6d, 0x0d, - 0x0a, 0x96, 0x55, 0x8b, 0x76, 0x57, 0x2f, 0x7a, 0x95, 0xcd, 0x6d, 0x9c, 0x4e, 0xf5, 0xad, 0x62, - 0x86, 0x2c, 0xb0, 0x1b, 0xbf, 0x69, 0x08, 0x2f, 0xab, 0x84, 0xef, 0xa2, 0x1a, 0x17, 0x51, 0xf5, - 0x17, 0xd9, 0x54, 0xa2, 0xd5, 0x32, 0x68, 0x96, 0xc3, 0x13, 0x74, 0x3b, 0x5f, 0xe0, 0xa9, 0xe7, - 0x43, 0xcc, 0xa9, 0x1f, 0xaa, 0xd3, 0x7e, 0x7b, 0x3d, 0x2f, 0x89, 0x32, 0xfb, 0x35, 0x45, 0x7f, - 0xbb, 0xb7, 0x4c, 0x47, 0xae, 0xea, 0x61, 0xfc, 0x5c, 0x46, 0x4d, 0x35, 0xf6, 0xd8, 0x83, 0x1f, - 0x5e, 0x82, 0x97, 0x1f, 0x15, 0xbc, 0x7c, 0x6f, 0x2d, 0xdf, 0x89, 0xd1, 0xae, 0xb5, 0xf2, 0x97, - 0x0b, 0x56, 0xb6, 0xd6, 0xa7, 0x5c, 0xed, 0x64, 0x07, 0xbd, 0xb2, 0xd0, 0x7f, 0xbd, 0xe3, 0x2c, - 0x98, 0xbd, 0xbc, 0xda, 0xec, 0xc6, 0x3f, 0x1a, 0xda, 0x59, 0x1a, 0x09, 0x7f, 0x88, 0x36, 0xe7, - 0x26, 0x87, 0xec, 0x86, 0xad, 0xdb, 0x77, 0x54, 0xbf, 0xcd, 0x83, 0xf9, 0x24, 0x29, 0x62, 0xf1, - 0xa7, 0xa8, 0x9a, 0xc4, 0x10, 0x29, 0x85, 0xdf, 0x5a, 0x2d, 0xc7, 0x51, 0x0c, 0x51, 0x9f, 0x9d, - 0x04, 0xb9, 0xb4, 0x22, 0x42, 0x24, 0x43, 0x71, 0x93, 0xea, 0x0d, 0x7f, 0xdb, 0xbb, 0xa8, 0x06, - 0x51, 0x14, 0x44, 0xea, 0xde, 0x9e, 0x69, 0xd3, 0x13, 0x41, 0x92, 0xe5, 0x8c, 0xdf, 0xcb, 0xa8, - 0x7e, 0xd9, 0x12, 0xbf, 0x8b, 0xea, 0xa2, 0x8d, 0xbc, 0xec, 0x33, 0x41, 0xb7, 0x55, 0x91, 0xc4, - 0x88, 0x38, 0x99, 0x21, 0xf0, 0x1b, 0xa8, 0x92, 0x78, 0xae, 0x7a, 0x43, 0x9a, 0x73, 0x97, 0x3e, - 0x11, 0x71, 0x6c, 0xa0, 0x8d, 0x61, 0x14, 0x24, 0xa1, 0xb0, 0x81, 0x18, 0x14, 0x89, 0x13, 0xfd, - 0x44, 0x46, 0x88, 0xca, 0xe0, 0x63, 0x54, 0x03, 0x71, 0xe7, 0xcb, 0x5d, 0x9a, 0xdd, 0xce, 0x7a, - 0xd2, 0x98, 0xf2, 0x9d, 0xe8, 0x31, 0x1e, 0x4d, 0xe6, 0xb6, 0x12, 0x31, 0x92, 0xd1, 0xed, 0x0e, - 0xd4, 0x5b, 0x22, 0x31, 0x78, 0x1b, 0x55, 0x46, 0x30, 0xc9, 0x36, 0x22, 0xe2, 0x27, 0xfe, 0x08, - 0xd5, 0xc6, 0xe2, 0x99, 0x51, 0x47, 0xb2, 0xbf, 0xba, 0x6f, 0xfe, 0x2c, 0x91, 0xac, 0xec, 0x61, - 0xf9, 0x81, 0x66, 0xef, 0x9f, 0x5d, 0xb4, 0x4b, 0x2f, 0x2e, 0xda, 0xa5, 0xf3, 0x8b, 0x76, 0xe9, - 0x79, 0xda, 0xd6, 0xce, 0xd2, 0xb6, 0xf6, 0x22, 0x6d, 0x6b, 0xe7, 0x69, 0x5b, 0xfb, 0x2b, 0x6d, - 0x6b, 0x3f, 0xfe, 0xdd, 0x2e, 0x7d, 0x5d, 0x1e, 0x77, 0xfe, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x8c, - 0x44, 0x87, 0xd0, 0xe2, 0x08, 0x00, 0x00, + // 906 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcf, 0x6f, 0xe3, 0xc4, + 0x17, 0x8f, 0xf3, 0xa3, 0x4a, 0x26, 0xdb, 0x7e, 0xdb, 0xd9, 0xef, 0x4a, 0x51, 0x81, 0xa4, 0x78, + 0x25, 0x54, 0x01, 0x6b, 0x6f, 0x22, 0x04, 0xab, 0x45, 0x42, 0xaa, 0x69, 0x04, 0x11, 0x82, 0x5d, + 0xcd, 0x6e, 0x0b, 0xe2, 0xc4, 0xc4, 0x7e, 0x4d, 0x87, 0xe0, 0xb1, 0xb1, 0xc7, 0x61, 0x73, 0xdb, + 0x3f, 0x81, 0x23, 0x48, 0x1c, 0xf8, 0x23, 0x90, 0xf8, 0x17, 0x7a, 0x5c, 0x71, 0xda, 0x03, 0x8a, + 0xa8, 0xb9, 0x72, 0xe4, 0xc4, 0x09, 0xcd, 0x78, 0x5a, 0xc7, 0x49, 0x9b, 0xe6, 0xc4, 0x2d, 0x7e, + 0xef, 0xf3, 0x3e, 0xef, 0xbd, 0xcf, 0x7c, 0x32, 0x83, 0xfa, 0xe3, 0x07, 0xb1, 0xc5, 0x02, 0x7b, + 0x9c, 0x0c, 0x21, 0xe2, 0x20, 0x20, 0xb6, 0x27, 0xc0, 0xbd, 0x20, 0xb2, 0x75, 0x82, 0x86, 0xcc, + 0xa6, 0x89, 0x38, 0x05, 0x2e, 0x98, 0x4b, 0x05, 0x0b, 0xb8, 0x3d, 0xe9, 0xda, 0x23, 0xe0, 0x10, + 0x51, 0x01, 0x9e, 0x15, 0x46, 0x81, 0x08, 0xf0, 0xab, 0x19, 0xda, 0xa2, 0x21, 0xb3, 0x8a, 0x68, + 0x6b, 0xd2, 0xdd, 0xbd, 0x37, 0x62, 0xe2, 0x34, 0x19, 0x5a, 0x6e, 0xe0, 0xdb, 0xa3, 0x60, 0x14, + 0xd8, 0xaa, 0x68, 0x98, 0x9c, 0xa8, 0x2f, 0xf5, 0xa1, 0x7e, 0x65, 0x64, 0xbb, 0xef, 0xe4, 0xad, + 0x7d, 0xea, 0x9e, 0x32, 0x0e, 0xd1, 0xd4, 0x0e, 0xc7, 0x23, 0x19, 0x88, 0x6d, 0x1f, 0x04, 0xbd, + 0x62, 0x84, 0x5d, 0xfb, 0xba, 0xaa, 0x28, 0xe1, 0x82, 0xf9, 0xb0, 0x54, 0xf0, 0xee, 0x4d, 0x05, + 0xb1, 0x7b, 0x0a, 0x3e, 0x5d, 0xac, 0x33, 0x7f, 0x33, 0xd0, 0xff, 0x9d, 0x20, 0xe1, 0xde, 0xa3, + 0xe1, 0xd7, 0xe0, 0x0a, 0x02, 0x27, 0x10, 0x01, 0x77, 0x01, 0xef, 0xa1, 0xea, 0x98, 0x71, 0xaf, + 0x65, 0xec, 0x19, 0xfb, 0x0d, 0xe7, 0xd6, 0xd9, 0xac, 0x53, 0x4a, 0x67, 0x9d, 0xea, 0x27, 0x8c, + 0x7b, 0x44, 0x65, 0x70, 0x0f, 0x21, 0x1a, 0xb2, 0x63, 0x88, 0x62, 0x16, 0xf0, 0x56, 0x59, 0xe1, + 0xb0, 0xc6, 0xa1, 0x83, 0xc7, 0x03, 0x9d, 0x21, 0x73, 0x28, 0xc9, 0xca, 0xa9, 0x0f, 0xad, 0x4a, + 0x91, 0xf5, 0x33, 0xea, 0x03, 0x51, 0x19, 0xec, 0xa0, 0x4a, 0x32, 0x38, 0x6c, 0x55, 0x15, 0xe0, + 0xbe, 0x06, 0x54, 0x8e, 0x06, 0x87, 0xff, 0xcc, 0x3a, 0xaf, 0x5f, 0xb7, 0xa4, 0x98, 0x86, 0x10, + 0x5b, 0x47, 0x83, 0x43, 0x22, 0x8b, 0xcd, 0xf7, 0x10, 0xea, 0x3f, 0x13, 0x11, 0x3d, 0xa6, 0xdf, + 0x24, 0x80, 0x3b, 0xa8, 0xc6, 0x04, 0xf8, 0x71, 0xcb, 0xd8, 0xab, 0xec, 0x37, 0x9c, 0x46, 0x3a, + 0xeb, 0xd4, 0x06, 0x32, 0x40, 0xb2, 0xf8, 0xc3, 0xfa, 0x0f, 0x3f, 0x77, 0x4a, 0xcf, 0x7f, 0xdf, + 0x2b, 0x99, 0x3f, 0x95, 0xd1, 0xad, 0xa7, 0xc1, 0x18, 0x38, 0x81, 0x6f, 0x13, 0x88, 0x05, 0xfe, + 0x0a, 0xd5, 0xe5, 0x11, 0x79, 0x54, 0x50, 0xa5, 0x44, 0xb3, 0x77, 0xdf, 0xca, 0xdd, 0x71, 0x39, + 0x84, 0x15, 0x8e, 0x47, 0x32, 0x10, 0x5b, 0x12, 0x6d, 0x4d, 0xba, 0x56, 0x26, 0xe7, 0xa7, 0x20, + 0x68, 0xae, 0x49, 0x1e, 0x23, 0x97, 0xac, 0xf8, 0x31, 0xaa, 0xc6, 0x21, 0xb8, 0x4a, 0xbf, 0x66, + 0xcf, 0xb2, 0x56, 0x79, 0xcf, 0x9a, 0x9f, 0xed, 0x49, 0x08, 0x6e, 0xae, 0xa0, 0xfc, 0x22, 0x8a, + 0x09, 0x7f, 0x81, 0x36, 0x62, 0x41, 0x45, 0x12, 0x2b, 0x95, 0x8b, 0x13, 0xdf, 0xc4, 0xa9, 0xea, + 0x9c, 0x2d, 0xcd, 0xba, 0x91, 0x7d, 0x13, 0xcd, 0x67, 0xfe, 0x6d, 0xa0, 0xed, 0xc5, 0x11, 0xf0, + 0x5b, 0xa8, 0x41, 0x13, 0x8f, 0x49, 0xd3, 0x5c, 0x48, 0xbc, 0x99, 0xce, 0x3a, 0x8d, 0x83, 0x8b, + 0x20, 0xc9, 0xf3, 0xf8, 0x43, 0xb4, 0x03, 0xcf, 0x42, 0x16, 0xa9, 0xee, 0x4f, 0xc0, 0x0d, 0xb8, + 0x17, 0xab, 0xb3, 0xae, 0x38, 0x77, 0xd2, 0x59, 0x67, 0xa7, 0xbf, 0x98, 0x24, 0xcb, 0x78, 0xcc, + 0xd1, 0xd6, 0xb0, 0x60, 0x59, 0xbd, 0x68, 0x6f, 0xf5, 0xa2, 0x57, 0xd9, 0xdc, 0xc1, 0xe9, 0xac, + 0xb3, 0x55, 0xcc, 0x90, 0x05, 0x76, 0xf3, 0x17, 0x03, 0xe1, 0x65, 0x95, 0xf0, 0x5d, 0x54, 0x13, + 0x32, 0xaa, 0xff, 0x22, 0x9b, 0x5a, 0xb4, 0x5a, 0x06, 0xcd, 0x72, 0x78, 0x8a, 0x6e, 0xe7, 0x0b, + 0x3c, 0x65, 0x3e, 0xc4, 0x82, 0xfa, 0xa1, 0x3e, 0xed, 0x37, 0xd7, 0xf3, 0x92, 0x2c, 0x73, 0x5e, + 0xd1, 0xf4, 0xb7, 0xfb, 0xcb, 0x74, 0xe4, 0xaa, 0x1e, 0xe6, 0x8f, 0x65, 0xd4, 0xd4, 0x63, 0x4f, + 0x18, 0x7c, 0xf7, 0x1f, 0x78, 0xf9, 0x51, 0xc1, 0xcb, 0xf7, 0xd6, 0xf2, 0x9d, 0x1c, 0xed, 0x5a, + 0x2b, 0x7f, 0xbe, 0x60, 0x65, 0x7b, 0x7d, 0xca, 0xd5, 0x4e, 0x76, 0xd1, 0xff, 0x16, 0xfa, 0xaf, + 0x77, 0x9c, 0x05, 0xb3, 0x97, 0x57, 0x9b, 0xdd, 0xfc, 0xcb, 0x40, 0x3b, 0x4b, 0x23, 0xe1, 0xf7, + 0xd1, 0xe6, 0xdc, 0xe4, 0x90, 0xdd, 0xb0, 0x75, 0xe7, 0x8e, 0xee, 0xb7, 0x79, 0x30, 0x9f, 0x24, + 0x45, 0x2c, 0xfe, 0x18, 0x55, 0x93, 0x18, 0x22, 0xad, 0xf0, 0x1b, 0xab, 0xe5, 0x38, 0x8a, 0x21, + 0x1a, 0xf0, 0x93, 0x20, 0x97, 0x56, 0x46, 0x88, 0x62, 0x28, 0x6e, 0x52, 0xbd, 0xe1, 0x6f, 0x7b, + 0x17, 0xd5, 0x20, 0x8a, 0x82, 0x48, 0xdf, 0xdb, 0x97, 0xda, 0xf4, 0x65, 0x90, 0x64, 0x39, 0xf3, + 0xd7, 0x32, 0xaa, 0x5f, 0xb4, 0xc4, 0x6f, 0xa3, 0xba, 0x6c, 0xa3, 0x2e, 0xfb, 0x4c, 0xd0, 0x6d, + 0x5d, 0xa4, 0x30, 0x32, 0x4e, 0x2e, 0x11, 0xf8, 0x35, 0x54, 0x49, 0x98, 0xa7, 0xdf, 0x90, 0xe6, + 0xdc, 0xa5, 0x4f, 0x64, 0x1c, 0x9b, 0x68, 0x63, 0x14, 0x05, 0x49, 0x28, 0x6d, 0x20, 0x07, 0x45, + 0xf2, 0x44, 0x3f, 0x52, 0x11, 0xa2, 0x33, 0xf8, 0x18, 0xd5, 0x40, 0xde, 0xf9, 0x6a, 0x97, 0x66, + 0xaf, 0xbb, 0x9e, 0x34, 0x96, 0x7a, 0x27, 0xfa, 0x5c, 0x44, 0xd3, 0xb9, 0xad, 0x64, 0x8c, 0x64, + 0x74, 0xbb, 0x43, 0xfd, 0x96, 0x28, 0x0c, 0xde, 0x46, 0x95, 0x31, 0x4c, 0xb3, 0x8d, 0x88, 0xfc, + 0x89, 0x3f, 0x40, 0xb5, 0x89, 0x7c, 0x66, 0xf4, 0x91, 0xec, 0xaf, 0xee, 0x9b, 0x3f, 0x4b, 0x24, + 0x2b, 0x7b, 0x58, 0x7e, 0x60, 0x38, 0xfb, 0x67, 0xe7, 0xed, 0xd2, 0x8b, 0xf3, 0x76, 0xe9, 0xe5, + 0x79, 0xbb, 0xf4, 0x3c, 0x6d, 0x1b, 0x67, 0x69, 0xdb, 0x78, 0x91, 0xb6, 0x8d, 0x97, 0x69, 0xdb, + 0xf8, 0x23, 0x6d, 0x1b, 0xdf, 0xff, 0xd9, 0x2e, 0x7d, 0x59, 0x9e, 0x74, 0xff, 0x0d, 0x00, 0x00, + 0xff, 0xff, 0x51, 0xcc, 0x53, 0x28, 0xe2, 0x08, 0x00, 0x00, } func (m *BoundObjectReference) Marshal() (dAtA []byte, err error) { @@ -1264,10 +1264,7 @@ func (m *BoundObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1349,10 +1346,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1501,10 +1495,7 @@ func (m *TokenRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1642,10 +1633,7 @@ func (m *TokenRequestSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1760,10 +1748,7 @@ func (m *TokenRequestStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1912,10 +1897,7 @@ func (m *TokenReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2029,10 +2011,7 @@ func (m *TokenReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2199,10 +2178,7 @@ func (m *TokenReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2460,7 +2436,7 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -2477,10 +2453,7 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/authentication/v1/generated.proto b/vendor/k8s.io/api/authentication/v1/generated.proto index 2fb1243644..c91fd92a57 100644 --- a/vendor/k8s.io/api/authentication/v1/generated.proto +++ b/vendor/k8s.io/api/authentication/v1/generated.proto @@ -36,7 +36,7 @@ message BoundObjectReference { // API version of the referent. // +optional - optional string aPIVersion = 2; + optional string apiVersion = 2; // Name of the referent. // +optional diff --git a/vendor/k8s.io/api/authentication/v1/types.go b/vendor/k8s.io/api/authentication/v1/types.go index 668b720380..6f5f0ad1a3 100644 --- a/vendor/k8s.io/api/authentication/v1/types.go +++ b/vendor/k8s.io/api/authentication/v1/types.go @@ -178,7 +178,7 @@ type BoundObjectReference struct { Kind string `json:"kind,omitempty" protobuf:"bytes,1,opt,name=kind"` // API version of the referent. // +optional - APIVersion string `json:"apiVersion,omitempty" protobuf:"bytes,2,opt,name=aPIVersion"` + APIVersion string `json:"apiVersion,omitempty" protobuf:"bytes,2,opt,name=apiVersion"` // Name of the referent. // +optional diff --git a/vendor/k8s.io/api/authentication/v1beta1/generated.pb.go b/vendor/k8s.io/api/authentication/v1beta1/generated.pb.go index 6c391dbfa3..3d8f765150 100644 --- a/vendor/k8s.io/api/authentication/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/authentication/v1beta1/generated.pb.go @@ -737,10 +737,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -889,10 +886,7 @@ func (m *TokenReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1006,10 +1000,7 @@ func (m *TokenReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1176,10 +1167,7 @@ func (m *TokenReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1437,7 +1425,7 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1454,10 +1442,7 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/authorization/v1/generated.pb.go b/vendor/k8s.io/api/authorization/v1/generated.pb.go index dbc0bdc71d..66c7c06ae7 100644 --- a/vendor/k8s.io/api/authorization/v1/generated.pb.go +++ b/vendor/k8s.io/api/authorization/v1/generated.pb.go @@ -1793,10 +1793,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1945,10 +1942,7 @@ func (m *LocalSubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2062,10 +2056,7 @@ func (m *NonResourceAttributes) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2179,10 +2170,7 @@ func (m *NonResourceRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2456,10 +2444,7 @@ func (m *ResourceAttributes) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2637,10 +2622,7 @@ func (m *ResourceRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2789,10 +2771,7 @@ func (m *SelfSubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2914,10 +2893,7 @@ func (m *SelfSubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3066,10 +3042,7 @@ func (m *SelfSubjectRulesReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3151,10 +3124,7 @@ func (m *SelfSubjectRulesReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3303,10 +3273,7 @@ func (m *SubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3604,7 +3571,7 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3653,10 +3620,7 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3810,10 +3774,7 @@ func (m *SubjectAccessReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3983,10 +3944,7 @@ func (m *SubjectRulesReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/authorization/v1beta1/generated.pb.go b/vendor/k8s.io/api/authorization/v1beta1/generated.pb.go index 647c0c582b..4331d3e5b0 100644 --- a/vendor/k8s.io/api/authorization/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/authorization/v1beta1/generated.pb.go @@ -1793,10 +1793,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1945,10 +1942,7 @@ func (m *LocalSubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2062,10 +2056,7 @@ func (m *NonResourceAttributes) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2179,10 +2170,7 @@ func (m *NonResourceRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2456,10 +2444,7 @@ func (m *ResourceAttributes) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2637,10 +2622,7 @@ func (m *ResourceRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2789,10 +2771,7 @@ func (m *SelfSubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2914,10 +2893,7 @@ func (m *SelfSubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3066,10 +3042,7 @@ func (m *SelfSubjectRulesReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3151,10 +3124,7 @@ func (m *SelfSubjectRulesReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3303,10 +3273,7 @@ func (m *SubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3604,7 +3571,7 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3653,10 +3620,7 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3810,10 +3774,7 @@ func (m *SubjectAccessReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3983,10 +3944,7 @@ func (m *SubjectRulesReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/autoscaling/v1/generated.pb.go b/vendor/k8s.io/api/autoscaling/v1/generated.pb.go index 1de893f7ee..a6ff299d73 100644 --- a/vendor/k8s.io/api/autoscaling/v1/generated.pb.go +++ b/vendor/k8s.io/api/autoscaling/v1/generated.pb.go @@ -2750,10 +2750,7 @@ func (m *ContainerResourceMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2920,10 +2917,7 @@ func (m *ContainerResourceMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3069,10 +3063,7 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3262,10 +3253,7 @@ func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3452,10 +3440,7 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3604,10 +3589,7 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3818,10 +3800,7 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3938,10 +3917,7 @@ func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4083,10 +4059,7 @@ func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4250,10 +4223,7 @@ func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4515,10 +4485,7 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4780,10 +4747,7 @@ func (m *MetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5003,10 +4967,7 @@ func (m *ObjectMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5226,10 +5187,7 @@ func (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5380,10 +5338,7 @@ func (m *PodsMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5534,10 +5489,7 @@ func (m *PodsMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5675,10 +5627,7 @@ func (m *ResourceMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5813,10 +5762,7 @@ func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5965,10 +5911,7 @@ func (m *Scale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6037,10 +5980,7 @@ func (m *ScaleSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6141,10 +6081,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go b/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go index 750808f8d2..28832c152d 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go +++ b/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go @@ -2540,10 +2540,7 @@ func (m *ContainerResourceMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2710,10 +2707,7 @@ func (m *ContainerResourceMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2859,10 +2853,7 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3052,10 +3043,7 @@ func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3242,10 +3230,7 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3394,10 +3379,7 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3608,10 +3590,7 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3728,10 +3707,7 @@ func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3887,10 +3863,7 @@ func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4102,10 +4075,7 @@ func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4367,10 +4337,7 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4632,10 +4599,7 @@ func (m *MetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4855,10 +4819,7 @@ func (m *ObjectMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5078,10 +5039,7 @@ func (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5232,10 +5190,7 @@ func (m *PodsMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5386,10 +5341,7 @@ func (m *PodsMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5527,10 +5479,7 @@ func (m *ResourceMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5665,10 +5614,7 @@ func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go b/vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go index 43e06f9eb1..cece3c877a 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go +++ b/vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go @@ -2995,10 +2995,7 @@ func (m *ContainerResourceMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3145,10 +3142,7 @@ func (m *ContainerResourceMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3294,10 +3288,7 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3413,10 +3404,7 @@ func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3532,10 +3520,7 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3655,10 +3640,7 @@ func (m *HPAScalingPolicy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3795,10 +3777,7 @@ func (m *HPAScalingRules) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3947,10 +3926,7 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4072,10 +4048,7 @@ func (m *HorizontalPodAutoscalerBehavior) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4286,10 +4259,7 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4406,10 +4376,7 @@ func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4601,10 +4568,7 @@ func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4816,10 +4780,7 @@ func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4937,10 +4898,7 @@ func (m *MetricIdentifier) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5202,10 +5160,7 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5467,10 +5422,7 @@ func (m *MetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5644,10 +5596,7 @@ func (m *MetricTarget) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5789,10 +5738,7 @@ func (m *MetricValueStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5941,10 +5887,7 @@ func (m *ObjectMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6093,10 +6036,7 @@ func (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6212,10 +6152,7 @@ func (m *PodsMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6331,10 +6268,7 @@ func (m *PodsMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6449,10 +6383,7 @@ func (m *ResourceMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6567,10 +6498,7 @@ func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/batch/v1/generated.pb.go b/vendor/k8s.io/api/batch/v1/generated.pb.go index 35944e7267..1407caebc6 100644 --- a/vendor/k8s.io/api/batch/v1/generated.pb.go +++ b/vendor/k8s.io/api/batch/v1/generated.pb.go @@ -26,6 +26,7 @@ import ( proto "github.com/gogo/protobuf/proto" k8s_io_api_core_v1 "k8s.io/api/core/v1" + v11 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" math "math" @@ -45,10 +46,122 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +func (m *CronJob) Reset() { *m = CronJob{} } +func (*CronJob) ProtoMessage() {} +func (*CronJob) Descriptor() ([]byte, []int) { + return fileDescriptor_3b52da57c93de713, []int{0} +} +func (m *CronJob) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CronJob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CronJob) XXX_Merge(src proto.Message) { + xxx_messageInfo_CronJob.Merge(m, src) +} +func (m *CronJob) XXX_Size() int { + return m.Size() +} +func (m *CronJob) XXX_DiscardUnknown() { + xxx_messageInfo_CronJob.DiscardUnknown(m) +} + +var xxx_messageInfo_CronJob proto.InternalMessageInfo + +func (m *CronJobList) Reset() { *m = CronJobList{} } +func (*CronJobList) ProtoMessage() {} +func (*CronJobList) Descriptor() ([]byte, []int) { + return fileDescriptor_3b52da57c93de713, []int{1} +} +func (m *CronJobList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CronJobList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CronJobList) XXX_Merge(src proto.Message) { + xxx_messageInfo_CronJobList.Merge(m, src) +} +func (m *CronJobList) XXX_Size() int { + return m.Size() +} +func (m *CronJobList) XXX_DiscardUnknown() { + xxx_messageInfo_CronJobList.DiscardUnknown(m) +} + +var xxx_messageInfo_CronJobList proto.InternalMessageInfo + +func (m *CronJobSpec) Reset() { *m = CronJobSpec{} } +func (*CronJobSpec) ProtoMessage() {} +func (*CronJobSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_3b52da57c93de713, []int{2} +} +func (m *CronJobSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CronJobSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CronJobSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_CronJobSpec.Merge(m, src) +} +func (m *CronJobSpec) XXX_Size() int { + return m.Size() +} +func (m *CronJobSpec) XXX_DiscardUnknown() { + xxx_messageInfo_CronJobSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_CronJobSpec proto.InternalMessageInfo + +func (m *CronJobStatus) Reset() { *m = CronJobStatus{} } +func (*CronJobStatus) ProtoMessage() {} +func (*CronJobStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_3b52da57c93de713, []int{3} +} +func (m *CronJobStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CronJobStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CronJobStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_CronJobStatus.Merge(m, src) +} +func (m *CronJobStatus) XXX_Size() int { + return m.Size() +} +func (m *CronJobStatus) XXX_DiscardUnknown() { + xxx_messageInfo_CronJobStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_CronJobStatus proto.InternalMessageInfo + func (m *Job) Reset() { *m = Job{} } func (*Job) ProtoMessage() {} func (*Job) Descriptor() ([]byte, []int) { - return fileDescriptor_3b52da57c93de713, []int{0} + return fileDescriptor_3b52da57c93de713, []int{4} } func (m *Job) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -76,7 +189,7 @@ var xxx_messageInfo_Job proto.InternalMessageInfo func (m *JobCondition) Reset() { *m = JobCondition{} } func (*JobCondition) ProtoMessage() {} func (*JobCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_3b52da57c93de713, []int{1} + return fileDescriptor_3b52da57c93de713, []int{5} } func (m *JobCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -104,7 +217,7 @@ var xxx_messageInfo_JobCondition proto.InternalMessageInfo func (m *JobList) Reset() { *m = JobList{} } func (*JobList) ProtoMessage() {} func (*JobList) Descriptor() ([]byte, []int) { - return fileDescriptor_3b52da57c93de713, []int{2} + return fileDescriptor_3b52da57c93de713, []int{6} } func (m *JobList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -132,7 +245,7 @@ var xxx_messageInfo_JobList proto.InternalMessageInfo func (m *JobSpec) Reset() { *m = JobSpec{} } func (*JobSpec) ProtoMessage() {} func (*JobSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_3b52da57c93de713, []int{3} + return fileDescriptor_3b52da57c93de713, []int{7} } func (m *JobSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -160,7 +273,7 @@ var xxx_messageInfo_JobSpec proto.InternalMessageInfo func (m *JobStatus) Reset() { *m = JobStatus{} } func (*JobStatus) ProtoMessage() {} func (*JobStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_3b52da57c93de713, []int{4} + return fileDescriptor_3b52da57c93de713, []int{8} } func (m *JobStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -185,12 +298,45 @@ func (m *JobStatus) XXX_DiscardUnknown() { var xxx_messageInfo_JobStatus proto.InternalMessageInfo +func (m *JobTemplateSpec) Reset() { *m = JobTemplateSpec{} } +func (*JobTemplateSpec) ProtoMessage() {} +func (*JobTemplateSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_3b52da57c93de713, []int{9} +} +func (m *JobTemplateSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *JobTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *JobTemplateSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_JobTemplateSpec.Merge(m, src) +} +func (m *JobTemplateSpec) XXX_Size() int { + return m.Size() +} +func (m *JobTemplateSpec) XXX_DiscardUnknown() { + xxx_messageInfo_JobTemplateSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_JobTemplateSpec proto.InternalMessageInfo + func init() { + proto.RegisterType((*CronJob)(nil), "k8s.io.api.batch.v1.CronJob") + proto.RegisterType((*CronJobList)(nil), "k8s.io.api.batch.v1.CronJobList") + proto.RegisterType((*CronJobSpec)(nil), "k8s.io.api.batch.v1.CronJobSpec") + proto.RegisterType((*CronJobStatus)(nil), "k8s.io.api.batch.v1.CronJobStatus") proto.RegisterType((*Job)(nil), "k8s.io.api.batch.v1.Job") proto.RegisterType((*JobCondition)(nil), "k8s.io.api.batch.v1.JobCondition") proto.RegisterType((*JobList)(nil), "k8s.io.api.batch.v1.JobList") proto.RegisterType((*JobSpec)(nil), "k8s.io.api.batch.v1.JobSpec") proto.RegisterType((*JobStatus)(nil), "k8s.io.api.batch.v1.JobStatus") + proto.RegisterType((*JobTemplateSpec)(nil), "k8s.io.api.batch.v1.JobTemplateSpec") } func init() { @@ -198,69 +344,92 @@ func init() { } var fileDescriptor_3b52da57c93de713 = []byte{ - // 929 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x5d, 0x6f, 0xe3, 0x44, - 0x14, 0xad, 0x9b, 0xa6, 0x4d, 0xa6, 0x1f, 0x5b, 0x06, 0x55, 0x1b, 0x0a, 0xb2, 0x97, 0x20, 0xa1, - 0x82, 0x84, 0x4d, 0x4b, 0x85, 0x10, 0x02, 0xa4, 0x75, 0x51, 0x25, 0xaa, 0x54, 0x5b, 0x26, 0x59, - 0x21, 0x21, 0x90, 0x18, 0xdb, 0x37, 0x89, 0x89, 0xed, 0xb1, 0x3c, 0x93, 0x48, 0x7d, 0xe3, 0x27, - 0xf0, 0x23, 0x10, 0x7f, 0x82, 0x77, 0xd4, 0xc7, 0x7d, 0xdc, 0x27, 0x8b, 0x9a, 0x1f, 0xc0, 0xfb, - 0x3e, 0xa1, 0x19, 0x3b, 0xb6, 0xd3, 0x26, 0xa2, 0xcb, 0x5b, 0xe6, 0xcc, 0x39, 0xe7, 0x5e, 0xcf, - 0x3d, 0xb9, 0xe8, 0x8b, 0xc9, 0x67, 0xdc, 0xf4, 0x99, 0x35, 0x99, 0x3a, 0x90, 0x44, 0x20, 0x80, - 0x5b, 0x33, 0x88, 0x3c, 0x96, 0x58, 0xc5, 0x05, 0x8d, 0x7d, 0xcb, 0xa1, 0xc2, 0x1d, 0x5b, 0xb3, - 0x63, 0x6b, 0x04, 0x11, 0x24, 0x54, 0x80, 0x67, 0xc6, 0x09, 0x13, 0x0c, 0xbf, 0x99, 0x93, 0x4c, - 0x1a, 0xfb, 0xa6, 0x22, 0x99, 0xb3, 0xe3, 0xc3, 0x8f, 0x46, 0xbe, 0x18, 0x4f, 0x1d, 0xd3, 0x65, - 0xa1, 0x35, 0x62, 0x23, 0x66, 0x29, 0xae, 0x33, 0x1d, 0xaa, 0x93, 0x3a, 0xa8, 0x5f, 0xb9, 0xc7, - 0x61, 0xb7, 0x56, 0xc8, 0x65, 0x09, 0x2c, 0xa9, 0x73, 0x78, 0x5a, 0x71, 0x42, 0xea, 0x8e, 0xfd, - 0x08, 0x92, 0x6b, 0x2b, 0x9e, 0x8c, 0x24, 0xc0, 0xad, 0x10, 0x04, 0x5d, 0xa6, 0xb2, 0x56, 0xa9, - 0x92, 0x69, 0x24, 0xfc, 0x10, 0xee, 0x09, 0x3e, 0xfd, 0x2f, 0x01, 0x77, 0xc7, 0x10, 0xd2, 0xbb, - 0xba, 0xee, 0x3f, 0x1a, 0x6a, 0x5c, 0x30, 0x07, 0xff, 0x84, 0x5a, 0xb2, 0x17, 0x8f, 0x0a, 0xda, - 0xd1, 0x9e, 0x68, 0x47, 0xdb, 0x27, 0x1f, 0x9b, 0xd5, 0x0b, 0x95, 0x96, 0x66, 0x3c, 0x19, 0x49, - 0x80, 0x9b, 0x92, 0x6d, 0xce, 0x8e, 0xcd, 0x67, 0xce, 0xcf, 0xe0, 0x8a, 0x4b, 0x10, 0xd4, 0xc6, - 0x37, 0xa9, 0xb1, 0x96, 0xa5, 0x06, 0xaa, 0x30, 0x52, 0xba, 0xe2, 0xaf, 0xd0, 0x06, 0x8f, 0xc1, - 0xed, 0xac, 0x2b, 0xf7, 0x77, 0xcc, 0x25, 0xef, 0x6f, 0x5e, 0x30, 0xa7, 0x1f, 0x83, 0x6b, 0xef, - 0x14, 0x4e, 0x1b, 0xf2, 0x44, 0x94, 0x0e, 0x9f, 0xa3, 0x4d, 0x2e, 0xa8, 0x98, 0xf2, 0x4e, 0x43, - 0x39, 0xe8, 0x2b, 0x1d, 0x14, 0xcb, 0xde, 0x2b, 0x3c, 0x36, 0xf3, 0x33, 0x29, 0xd4, 0xdd, 0x3f, - 0x1b, 0x68, 0xe7, 0x82, 0x39, 0x67, 0x2c, 0xf2, 0x7c, 0xe1, 0xb3, 0x08, 0x9f, 0xa2, 0x0d, 0x71, - 0x1d, 0x83, 0xfa, 0xec, 0xb6, 0xfd, 0x64, 0x5e, 0x7a, 0x70, 0x1d, 0xc3, 0xab, 0xd4, 0xd8, 0xaf, - 0x73, 0x25, 0x46, 0x14, 0x1b, 0xf7, 0xca, 0x76, 0xd6, 0x95, 0xee, 0x74, 0xb1, 0xdc, 0xab, 0xd4, - 0x58, 0x92, 0x0e, 0xb3, 0x74, 0x5a, 0x6c, 0x0a, 0x8f, 0xd0, 0x6e, 0x40, 0xb9, 0xb8, 0x4a, 0x98, - 0x03, 0x03, 0x3f, 0x84, 0xe2, 0x1b, 0x3f, 0x7c, 0xd8, 0x0c, 0xa4, 0xc2, 0x3e, 0x28, 0x1a, 0xd8, - 0xed, 0xd5, 0x8d, 0xc8, 0xa2, 0x2f, 0x9e, 0x21, 0x2c, 0x81, 0x41, 0x42, 0x23, 0x9e, 0x7f, 0x92, - 0xac, 0xb6, 0xf1, 0xda, 0xd5, 0x0e, 0x8b, 0x6a, 0xb8, 0x77, 0xcf, 0x8d, 0x2c, 0xa9, 0x80, 0xdf, - 0x47, 0x9b, 0x09, 0x50, 0xce, 0xa2, 0x4e, 0x53, 0x3d, 0x57, 0x39, 0x1d, 0xa2, 0x50, 0x52, 0xdc, - 0xe2, 0x0f, 0xd0, 0x56, 0x08, 0x9c, 0xd3, 0x11, 0x74, 0x36, 0x15, 0xf1, 0x51, 0x41, 0xdc, 0xba, - 0xcc, 0x61, 0x32, 0xbf, 0xef, 0xfe, 0xae, 0xa1, 0xad, 0x0b, 0xe6, 0xf4, 0x7c, 0x2e, 0xf0, 0x0f, - 0xf7, 0xe2, 0x6b, 0x3e, 0xec, 0x63, 0xa4, 0x5a, 0x85, 0x77, 0xbf, 0xa8, 0xd3, 0x9a, 0x23, 0xb5, - 0xe8, 0x7e, 0x89, 0x9a, 0xbe, 0x80, 0x50, 0x8e, 0xba, 0x71, 0xb4, 0x7d, 0xd2, 0x59, 0x95, 0x3c, - 0x7b, 0xb7, 0x30, 0x69, 0x7e, 0x23, 0xe9, 0x24, 0x57, 0x75, 0xff, 0xd8, 0x50, 0x8d, 0xca, 0x2c, - 0xe3, 0x63, 0xb4, 0x1d, 0xd3, 0x84, 0x06, 0x01, 0x04, 0x3e, 0x0f, 0x55, 0xaf, 0x4d, 0xfb, 0x51, - 0x96, 0x1a, 0xdb, 0x57, 0x15, 0x4c, 0xea, 0x1c, 0x29, 0x71, 0x59, 0x18, 0x07, 0x20, 0x1f, 0x33, - 0x8f, 0x5b, 0x21, 0x39, 0xab, 0x60, 0x52, 0xe7, 0xe0, 0x67, 0xe8, 0x80, 0xba, 0xc2, 0x9f, 0xc1, - 0xd7, 0x40, 0xbd, 0xc0, 0x8f, 0xa0, 0x0f, 0x2e, 0x8b, 0xbc, 0xfc, 0xaf, 0xd3, 0xb0, 0xdf, 0xca, - 0x52, 0xe3, 0xe0, 0xe9, 0x32, 0x02, 0x59, 0xae, 0xc3, 0xa7, 0x68, 0xc7, 0xa1, 0xee, 0x84, 0x0d, - 0x87, 0x3d, 0x3f, 0xf4, 0x45, 0x67, 0x4b, 0x35, 0xb1, 0x9f, 0xa5, 0xc6, 0x8e, 0x5d, 0xc3, 0xc9, - 0x02, 0x0b, 0xff, 0x88, 0x5a, 0x1c, 0x02, 0x70, 0x05, 0x4b, 0x8a, 0x88, 0x7d, 0xf2, 0xc0, 0xa9, - 0x50, 0x07, 0x82, 0x7e, 0x21, 0xb5, 0x77, 0xe4, 0x58, 0xe6, 0x27, 0x52, 0x5a, 0xe2, 0xcf, 0xd1, - 0x5e, 0x48, 0xa3, 0x29, 0x2d, 0x99, 0x2a, 0x5b, 0x2d, 0x1b, 0x67, 0xa9, 0xb1, 0x77, 0xb9, 0x70, - 0x43, 0xee, 0x30, 0xf1, 0xb7, 0xa8, 0x25, 0x20, 0x8c, 0x03, 0x2a, 0xf2, 0xa0, 0x6d, 0x9f, 0xbc, - 0x57, 0x9f, 0xaa, 0xfc, 0xbf, 0xca, 0x46, 0xae, 0x98, 0x37, 0x28, 0x68, 0x6a, 0x31, 0x95, 0x29, - 0x99, 0xa3, 0xa4, 0xb4, 0xc1, 0xcf, 0xd1, 0x63, 0x21, 0x82, 0xe2, 0xc5, 0x9e, 0x0e, 0x05, 0x24, - 0xe7, 0x7e, 0xe4, 0xf3, 0x31, 0x78, 0x9d, 0x96, 0x7a, 0xae, 0xb7, 0xb3, 0xd4, 0x78, 0x3c, 0x18, - 0xf4, 0x96, 0x51, 0xc8, 0x2a, 0x6d, 0xf7, 0xb7, 0x06, 0x6a, 0x97, 0x5b, 0x0d, 0x3f, 0x47, 0xc8, - 0x9d, 0xef, 0x10, 0xde, 0xd1, 0x54, 0x1e, 0xdf, 0x5d, 0x95, 0xc7, 0x72, 0xdb, 0x54, 0xab, 0xb9, - 0x84, 0x38, 0xa9, 0x19, 0xe1, 0xef, 0x50, 0x9b, 0x0b, 0x9a, 0x08, 0xb5, 0x0d, 0xd6, 0x5f, 0x7b, - 0x1b, 0xec, 0x66, 0xa9, 0xd1, 0xee, 0xcf, 0x0d, 0x48, 0xe5, 0x85, 0x87, 0x68, 0xaf, 0x0a, 0xe6, - 0xff, 0xdc, 0x6c, 0x6a, 0x9e, 0x67, 0x0b, 0x2e, 0xe4, 0x8e, 0xab, 0xdc, 0x2f, 0x79, 0x72, 0x55, - 0xd0, 0x9a, 0xd5, 0x7e, 0xc9, 0x63, 0x4e, 0x8a, 0x5b, 0x6c, 0xa1, 0x36, 0x9f, 0xba, 0x2e, 0x80, - 0x07, 0x9e, 0x8a, 0x4b, 0xd3, 0x7e, 0xa3, 0xa0, 0xb6, 0xfb, 0xf3, 0x0b, 0x52, 0x71, 0xa4, 0xf1, - 0x90, 0xfa, 0x01, 0x78, 0x2a, 0x26, 0x35, 0xe3, 0x73, 0x85, 0x92, 0xe2, 0xd6, 0x3e, 0xba, 0xb9, - 0xd5, 0xd7, 0x5e, 0xdc, 0xea, 0x6b, 0x2f, 0x6f, 0xf5, 0xb5, 0x5f, 0x32, 0x5d, 0xbb, 0xc9, 0x74, - 0xed, 0x45, 0xa6, 0x6b, 0x2f, 0x33, 0x5d, 0xfb, 0x2b, 0xd3, 0xb5, 0x5f, 0xff, 0xd6, 0xd7, 0xbe, - 0x5f, 0x9f, 0x1d, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xc8, 0x73, 0xe7, 0x7a, 0xb8, 0x08, 0x00, - 0x00, + // 1304 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0x41, 0x6f, 0x1b, 0x45, + 0x14, 0xce, 0xc6, 0x71, 0x6c, 0x8f, 0x93, 0xd4, 0x9d, 0xd2, 0xd6, 0x98, 0xca, 0x1b, 0x4c, 0x41, + 0x01, 0xc1, 0x9a, 0x94, 0x08, 0x21, 0x04, 0x48, 0xd9, 0x54, 0x15, 0x0d, 0x8e, 0x1a, 0xc6, 0xa9, + 0x90, 0xa0, 0x20, 0xc6, 0xbb, 0x63, 0x67, 0x9b, 0xdd, 0x9d, 0xd5, 0xce, 0xd8, 0x22, 0x37, 0x7e, + 0x02, 0xbf, 0x02, 0x71, 0x42, 0x48, 0xdc, 0x39, 0xa2, 0x1e, 0x7b, 0xec, 0x69, 0x45, 0x97, 0x1b, + 0x17, 0xee, 0xe1, 0x82, 0x76, 0x76, 0xbc, 0xbb, 0xb6, 0x77, 0x43, 0xd3, 0x43, 0xc5, 0xcd, 0xfb, + 0xe6, 0xfb, 0xbe, 0x79, 0x7e, 0xef, 0xcd, 0x7b, 0x0f, 0x7c, 0x74, 0xf2, 0x01, 0xd3, 0x2c, 0xda, + 0x3d, 0x19, 0x0f, 0x88, 0xef, 0x12, 0x4e, 0x58, 0x77, 0x42, 0x5c, 0x93, 0xfa, 0x5d, 0x79, 0x80, + 0x3d, 0xab, 0x3b, 0xc0, 0xdc, 0x38, 0xee, 0x4e, 0xb6, 0xbb, 0x23, 0xe2, 0x12, 0x1f, 0x73, 0x62, + 0x6a, 0x9e, 0x4f, 0x39, 0x85, 0x57, 0x62, 0x90, 0x86, 0x3d, 0x4b, 0x13, 0x20, 0x6d, 0xb2, 0xdd, + 0x7a, 0x67, 0x64, 0xf1, 0xe3, 0xf1, 0x40, 0x33, 0xa8, 0xd3, 0x1d, 0xd1, 0x11, 0xed, 0x0a, 0xec, + 0x60, 0x3c, 0x14, 0x5f, 0xe2, 0x43, 0xfc, 0x8a, 0x35, 0x5a, 0x9d, 0xcc, 0x45, 0x06, 0xf5, 0x49, + 0xce, 0x3d, 0xad, 0x9d, 0x14, 0xe3, 0x60, 0xe3, 0xd8, 0x72, 0x89, 0x7f, 0xda, 0xf5, 0x4e, 0x46, + 0x91, 0x81, 0x75, 0x1d, 0xc2, 0x71, 0x1e, 0xab, 0x5b, 0xc4, 0xf2, 0xc7, 0x2e, 0xb7, 0x1c, 0xb2, + 0x40, 0x78, 0xff, 0xbf, 0x08, 0xcc, 0x38, 0x26, 0x0e, 0x9e, 0xe7, 0x75, 0xfe, 0x51, 0x40, 0x65, + 0xcf, 0xa7, 0xee, 0x3e, 0x1d, 0xc0, 0x6f, 0x41, 0x35, 0xf2, 0xc7, 0xc4, 0x1c, 0x37, 0x95, 0x4d, + 0x65, 0xab, 0x7e, 0xeb, 0x5d, 0x2d, 0x8d, 0x52, 0x22, 0xab, 0x79, 0x27, 0xa3, 0xc8, 0xc0, 0xb4, + 0x08, 0xad, 0x4d, 0xb6, 0xb5, 0x7b, 0x83, 0x87, 0xc4, 0xe0, 0x07, 0x84, 0x63, 0x1d, 0x3e, 0x0a, + 0xd4, 0xa5, 0x30, 0x50, 0x41, 0x6a, 0x43, 0x89, 0x2a, 0xd4, 0xc1, 0x0a, 0xf3, 0x88, 0xd1, 0x5c, + 0x16, 0xea, 0x9b, 0x5a, 0x4e, 0x0e, 0x34, 0xe9, 0x4d, 0xdf, 0x23, 0x86, 0xbe, 0x26, 0xd5, 0x56, + 0xa2, 0x2f, 0x24, 0xb8, 0x70, 0x1f, 0xac, 0x32, 0x8e, 0xf9, 0x98, 0x35, 0x4b, 0x42, 0xa5, 0x73, + 0xae, 0x8a, 0x40, 0xea, 0x1b, 0x52, 0x67, 0x35, 0xfe, 0x46, 0x52, 0xa1, 0xf3, 0xb3, 0x02, 0xea, + 0x12, 0xd9, 0xb3, 0x18, 0x87, 0x0f, 0x16, 0x22, 0xa0, 0x3d, 0x5b, 0x04, 0x22, 0xb6, 0xf8, 0xff, + 0x0d, 0x79, 0x53, 0x75, 0x6a, 0xc9, 0xfc, 0xfb, 0x5d, 0x50, 0xb6, 0x38, 0x71, 0x58, 0x73, 0x79, + 0xb3, 0xb4, 0x55, 0xbf, 0x75, 0xe3, 0x3c, 0xc7, 0xf5, 0x75, 0x29, 0x54, 0xbe, 0x1b, 0x51, 0x50, + 0xcc, 0xec, 0xfc, 0xb4, 0x92, 0x38, 0x1c, 0x85, 0x04, 0xbe, 0x0d, 0xaa, 0x51, 0x62, 0xcd, 0xb1, + 0x4d, 0x84, 0xc3, 0xb5, 0xd4, 0x81, 0xbe, 0xb4, 0xa3, 0x04, 0x01, 0xef, 0x83, 0xeb, 0x8c, 0x63, + 0x9f, 0x5b, 0xee, 0xe8, 0x36, 0xc1, 0xa6, 0x6d, 0xb9, 0xa4, 0x4f, 0x0c, 0xea, 0x9a, 0x4c, 0x64, + 0xa4, 0xa4, 0xbf, 0x12, 0x06, 0xea, 0xf5, 0x7e, 0x3e, 0x04, 0x15, 0x71, 0xe1, 0x03, 0x70, 0xd9, + 0xa0, 0xae, 0x31, 0xf6, 0x7d, 0xe2, 0x1a, 0xa7, 0x87, 0xd4, 0xb6, 0x8c, 0x53, 0x91, 0x9c, 0x9a, + 0xae, 0x49, 0x6f, 0x2e, 0xef, 0xcd, 0x03, 0xce, 0xf2, 0x8c, 0x68, 0x51, 0x08, 0xbe, 0x0e, 0x2a, + 0x6c, 0xcc, 0x3c, 0xe2, 0x9a, 0xcd, 0x95, 0x4d, 0x65, 0xab, 0xaa, 0xd7, 0xc3, 0x40, 0xad, 0xf4, + 0x63, 0x13, 0x9a, 0x9e, 0xc1, 0xaf, 0x40, 0xfd, 0x21, 0x1d, 0x1c, 0x11, 0xc7, 0xb3, 0x31, 0x27, + 0xcd, 0xb2, 0xc8, 0xde, 0xcd, 0xdc, 0x10, 0xef, 0xa7, 0x38, 0x51, 0x65, 0x57, 0xa4, 0x93, 0xf5, + 0xcc, 0x01, 0xca, 0xaa, 0xc1, 0x6f, 0x40, 0x8b, 0x8d, 0x0d, 0x83, 0x30, 0x36, 0x1c, 0xdb, 0xfb, + 0x74, 0xc0, 0x3e, 0xb5, 0x18, 0xa7, 0xfe, 0x69, 0xcf, 0x72, 0x2c, 0xde, 0x5c, 0xdd, 0x54, 0xb6, + 0xca, 0x7a, 0x3b, 0x0c, 0xd4, 0x56, 0xbf, 0x10, 0x85, 0xce, 0x51, 0x80, 0x08, 0x5c, 0x1b, 0x62, + 0xcb, 0x26, 0xe6, 0x82, 0x76, 0x45, 0x68, 0xb7, 0xc2, 0x40, 0xbd, 0x76, 0x27, 0x17, 0x81, 0x0a, + 0x98, 0x9d, 0xdf, 0x96, 0xc1, 0xfa, 0xcc, 0x2b, 0x80, 0x9f, 0x81, 0x55, 0x6c, 0x70, 0x6b, 0x12, + 0x95, 0x4a, 0x54, 0x80, 0xaf, 0x65, 0xa3, 0x13, 0xf5, 0xaf, 0xf4, 0x2d, 0x23, 0x32, 0x24, 0x51, + 0x12, 0x48, 0xfa, 0x74, 0x76, 0x05, 0x15, 0x49, 0x09, 0x68, 0x83, 0x86, 0x8d, 0x19, 0x9f, 0x56, + 0xd9, 0x91, 0xe5, 0x10, 0x91, 0x9f, 0xfa, 0xad, 0xb7, 0x9e, 0xed, 0xc9, 0x44, 0x0c, 0xfd, 0xa5, + 0x30, 0x50, 0x1b, 0xbd, 0x39, 0x1d, 0xb4, 0xa0, 0x0c, 0x7d, 0x00, 0x85, 0x2d, 0x09, 0xa1, 0xb8, + 0xaf, 0x7c, 0xe1, 0xfb, 0xae, 0x85, 0x81, 0x0a, 0x7b, 0x0b, 0x4a, 0x28, 0x47, 0xbd, 0xf3, 0xb7, + 0x02, 0x4a, 0x2f, 0xa6, 0x2d, 0x7e, 0x32, 0xd3, 0x16, 0x6f, 0x14, 0x15, 0x6d, 0x61, 0x4b, 0xbc, + 0x33, 0xd7, 0x12, 0xdb, 0x85, 0x0a, 0xe7, 0xb7, 0xc3, 0xdf, 0x4b, 0x60, 0x6d, 0x9f, 0x0e, 0xf6, + 0xa8, 0x6b, 0x5a, 0xdc, 0xa2, 0x2e, 0xdc, 0x01, 0x2b, 0xfc, 0xd4, 0x9b, 0xb6, 0x96, 0xcd, 0xe9, + 0xd5, 0x47, 0xa7, 0x1e, 0x39, 0x0b, 0xd4, 0x46, 0x16, 0x1b, 0xd9, 0x90, 0x40, 0xc3, 0x5e, 0xe2, + 0xce, 0xb2, 0xe0, 0xed, 0xcc, 0x5e, 0x77, 0x16, 0xa8, 0x39, 0x83, 0x53, 0x4b, 0x94, 0x66, 0x9d, + 0x82, 0x23, 0xb0, 0x1e, 0x25, 0xe7, 0xd0, 0xa7, 0x83, 0xb8, 0xca, 0x4a, 0x17, 0xce, 0xfa, 0x55, + 0xe9, 0xc0, 0x7a, 0x2f, 0x2b, 0x84, 0x66, 0x75, 0xe1, 0x24, 0xae, 0xb1, 0x23, 0x1f, 0xbb, 0x2c, + 0xfe, 0x4b, 0xcf, 0x57, 0xd3, 0x2d, 0x79, 0x9b, 0xa8, 0xb3, 0x59, 0x35, 0x94, 0x73, 0x03, 0x7c, + 0x03, 0xac, 0xfa, 0x04, 0x33, 0xea, 0x8a, 0x7a, 0xae, 0xa5, 0xd9, 0x41, 0xc2, 0x8a, 0xe4, 0x29, + 0x7c, 0x13, 0x54, 0x1c, 0xc2, 0x18, 0x1e, 0x11, 0xd1, 0x71, 0x6a, 0xfa, 0x25, 0x09, 0xac, 0x1c, + 0xc4, 0x66, 0x34, 0x3d, 0xef, 0xfc, 0xa8, 0x80, 0xca, 0x8b, 0x99, 0x69, 0x1f, 0xcf, 0xce, 0xb4, + 0x66, 0x51, 0xe5, 0x15, 0xcc, 0xb3, 0x5f, 0xca, 0xc2, 0x51, 0x31, 0xcb, 0xb6, 0x41, 0xdd, 0xc3, + 0x3e, 0xb6, 0x6d, 0x62, 0x5b, 0xcc, 0x11, 0xbe, 0x96, 0xf5, 0x4b, 0x51, 0x5f, 0x3e, 0x4c, 0xcd, + 0x28, 0x8b, 0x89, 0x28, 0x06, 0x75, 0x3c, 0x9b, 0x44, 0xc1, 0x8c, 0xcb, 0x4d, 0x52, 0xf6, 0x52, + 0x33, 0xca, 0x62, 0xe0, 0x3d, 0x70, 0x35, 0xee, 0x60, 0xf3, 0x13, 0xb0, 0x24, 0x26, 0xe0, 0xcb, + 0x61, 0xa0, 0x5e, 0xdd, 0xcd, 0x03, 0xa0, 0x7c, 0x1e, 0xdc, 0x01, 0x6b, 0x03, 0x6c, 0x9c, 0xd0, + 0xe1, 0x30, 0xdb, 0xb1, 0x1b, 0x61, 0xa0, 0xae, 0xe9, 0x19, 0x3b, 0x9a, 0x41, 0xc1, 0xaf, 0x41, + 0x95, 0x11, 0x9b, 0x18, 0x9c, 0xfa, 0xb2, 0xc4, 0xde, 0x7b, 0xc6, 0xac, 0xe0, 0x01, 0xb1, 0xfb, + 0x92, 0xaa, 0xaf, 0x89, 0x49, 0x2f, 0xbf, 0x50, 0x22, 0x09, 0x3f, 0x04, 0x1b, 0x0e, 0x76, 0xc7, + 0x38, 0x41, 0x8a, 0xda, 0xaa, 0xea, 0x30, 0x0c, 0xd4, 0x8d, 0x83, 0x99, 0x13, 0x34, 0x87, 0x84, + 0x9f, 0x83, 0x2a, 0x9f, 0x8e, 0xd1, 0x55, 0xe1, 0x5a, 0xee, 0xa0, 0x38, 0xa4, 0xe6, 0xcc, 0x14, + 0x4d, 0xaa, 0x24, 0x19, 0xa1, 0x89, 0x4c, 0xb4, 0x78, 0x70, 0x6e, 0xcb, 0x88, 0xed, 0x0e, 0x39, + 0xf1, 0xef, 0x58, 0xae, 0xc5, 0x8e, 0x89, 0xd9, 0xac, 0x8a, 0x70, 0x89, 0xc5, 0xe3, 0xe8, 0xa8, + 0x97, 0x07, 0x41, 0x45, 0x5c, 0xd8, 0x03, 0x1b, 0x69, 0x6a, 0x0f, 0xa8, 0x49, 0x9a, 0x35, 0xf1, + 0x30, 0x6e, 0x46, 0xff, 0x72, 0x6f, 0xe6, 0xe4, 0x6c, 0xc1, 0x82, 0xe6, 0xb8, 0xd9, 0x45, 0x03, + 0x14, 0x2f, 0x1a, 0x9d, 0xbf, 0x4a, 0xa0, 0x96, 0xce, 0xd4, 0xfb, 0x00, 0x18, 0xd3, 0xc6, 0xc5, + 0xe4, 0x5c, 0x7d, 0xb5, 0xe8, 0x11, 0x24, 0x2d, 0x2e, 0x9d, 0x07, 0x89, 0x89, 0xa1, 0x8c, 0x10, + 0xfc, 0x02, 0xd4, 0xc4, 0xb6, 0x25, 0x5a, 0xd0, 0xf2, 0x85, 0x5b, 0xd0, 0x7a, 0x18, 0xa8, 0xb5, + 0xfe, 0x54, 0x00, 0xa5, 0x5a, 0x70, 0x98, 0x0d, 0xd9, 0x73, 0xb6, 0x53, 0x38, 0x1b, 0x5e, 0x71, + 0xc5, 0x9c, 0x6a, 0xd4, 0xd4, 0xe4, 0xae, 0xb1, 0x22, 0x12, 0x5c, 0xb4, 0x46, 0x74, 0x41, 0x4d, + 0xec, 0x45, 0xc4, 0x24, 0xa6, 0xa8, 0xd1, 0xb2, 0x7e, 0x59, 0x42, 0x6b, 0xfd, 0xe9, 0x01, 0x4a, + 0x31, 0x91, 0x70, 0xbc, 0xf0, 0xc8, 0xb5, 0x2b, 0x11, 0x8e, 0xd7, 0x23, 0x24, 0x4f, 0xe1, 0x6d, + 0xd0, 0x90, 0x2e, 0x11, 0xf3, 0xae, 0x6b, 0x92, 0xef, 0x08, 0x13, 0x4f, 0xb3, 0xa6, 0x37, 0x25, + 0xa3, 0xb1, 0x37, 0x77, 0x8e, 0x16, 0x18, 0x9d, 0x5f, 0x15, 0x70, 0x69, 0x6e, 0x5d, 0xfc, 0xff, + 0xef, 0x03, 0xfa, 0xd6, 0xa3, 0xa7, 0xed, 0xa5, 0xc7, 0x4f, 0xdb, 0x4b, 0x4f, 0x9e, 0xb6, 0x97, + 0xbe, 0x0f, 0xdb, 0xca, 0xa3, 0xb0, 0xad, 0x3c, 0x0e, 0xdb, 0xca, 0x93, 0xb0, 0xad, 0xfc, 0x11, + 0xb6, 0x95, 0x1f, 0xfe, 0x6c, 0x2f, 0x7d, 0xb9, 0x3c, 0xd9, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, + 0x5a, 0x54, 0xec, 0x5f, 0x44, 0x0f, 0x00, 0x00, } -func (m *Job) Marshal() (dAtA []byte, err error) { +func (m *CronJob) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -270,12 +439,12 @@ func (m *Job) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Job) MarshalTo(dAtA []byte) (int, error) { +func (m *CronJob) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Job) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *CronJob) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -313,70 +482,7 @@ func (m *Job) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *JobCondition) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *JobCondition) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *JobCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x32 - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x2a - { - size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - { - size, err := m.LastProbeTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.Status) - copy(dAtA[i:], m.Status) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i-- - dAtA[i] = 0x12 - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *JobList) Marshal() (dAtA []byte, err error) { +func (m *CronJobList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -386,12 +492,12 @@ func (m *JobList) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *JobList) MarshalTo(dAtA []byte) (int, error) { +func (m *CronJobList) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *JobList) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *CronJobList) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -423,7 +529,7 @@ func (m *JobList) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *JobSpec) Marshal() (dAtA []byte, err error) { +func (m *CronJobSpec) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -433,28 +539,28 @@ func (m *JobSpec) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *JobSpec) MarshalTo(dAtA []byte) (int, error) { +func (m *CronJobSpec) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *JobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *CronJobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.TTLSecondsAfterFinished != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.TTLSecondsAfterFinished)) + if m.FailedJobsHistoryLimit != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.FailedJobsHistoryLimit)) i-- - dAtA[i] = 0x40 + dAtA[i] = 0x38 } - if m.BackoffLimit != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.BackoffLimit)) + if m.SuccessfulJobsHistoryLimit != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.SuccessfulJobsHistoryLimit)) i-- - dAtA[i] = 0x38 + dAtA[i] = 0x30 } { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.JobTemplate.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -462,48 +568,36 @@ func (m *JobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x32 - if m.ManualSelector != nil { + dAtA[i] = 0x2a + if m.Suspend != nil { i-- - if *m.ManualSelector { + if *m.Suspend { dAtA[i] = 1 } else { dAtA[i] = 0 } i-- - dAtA[i] = 0x28 - } - if m.Selector != nil { - { - size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.ActiveDeadlineSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.ActiveDeadlineSeconds)) - i-- - dAtA[i] = 0x18 + dAtA[i] = 0x20 } - if m.Completions != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.Completions)) + i -= len(m.ConcurrencyPolicy) + copy(dAtA[i:], m.ConcurrencyPolicy) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ConcurrencyPolicy))) + i-- + dAtA[i] = 0x1a + if m.StartingDeadlineSeconds != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.StartingDeadlineSeconds)) i-- dAtA[i] = 0x10 } - if m.Parallelism != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.Parallelism)) - i-- - dAtA[i] = 0x8 - } + i -= len(m.Schedule) + copy(dAtA[i:], m.Schedule) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Schedule))) + i-- + dAtA[i] = 0xa return len(dAtA) - i, nil } -func (m *JobStatus) Marshal() (dAtA []byte, err error) { +func (m *CronJobStatus) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -513,28 +607,19 @@ func (m *JobStatus) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *JobStatus) MarshalTo(dAtA []byte) (int, error) { +func (m *CronJobStatus) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *JobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *CronJobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - i = encodeVarintGenerated(dAtA, i, uint64(m.Failed)) - i-- - dAtA[i] = 0x30 - i = encodeVarintGenerated(dAtA, i, uint64(m.Succeeded)) - i-- - dAtA[i] = 0x28 - i = encodeVarintGenerated(dAtA, i, uint64(m.Active)) - i-- - dAtA[i] = 0x20 - if m.CompletionTime != nil { + if m.LastSuccessfulTime != nil { { - size, err := m.CompletionTime.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.LastSuccessfulTime.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -542,11 +627,11 @@ func (m *JobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x1a + dAtA[i] = 0x2a } - if m.StartTime != nil { + if m.LastScheduleTime != nil { { - size, err := m.StartTime.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.LastScheduleTime.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -554,12 +639,12 @@ func (m *JobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x22 } - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + if len(m.Active) > 0 { + for iNdEx := len(m.Active) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Active[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -573,222 +658,1429 @@ func (m *JobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *Job) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return base + return dAtA[:n], nil } -func (m *Job) Size() (n int) { - if m == nil { - return 0 - } + +func (m *Job) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Job) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil } -func (m *JobCondition) Size() (n int) { - if m == nil { - return 0 +func (m *JobCondition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *JobCondition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *JobCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastProbeTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - return n + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x32 + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0x2a + { + size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size, err := m.LastProbeTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x12 + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil } -func (m *JobList) Size() (n int) { - if m == nil { - return 0 +func (m *JobList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *JobList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *JobList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 } } - return n + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil } -func (m *JobSpec) Size() (n int) { - if m == nil { - return 0 +func (m *JobSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *JobSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *JobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.Parallelism != nil { - n += 1 + sovGenerated(uint64(*m.Parallelism)) + if m.Suspend != nil { + i-- + if *m.Suspend { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x50 } - if m.Completions != nil { - n += 1 + sovGenerated(uint64(*m.Completions)) + if m.CompletionMode != nil { + i -= len(*m.CompletionMode) + copy(dAtA[i:], *m.CompletionMode) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.CompletionMode))) + i-- + dAtA[i] = 0x4a } - if m.ActiveDeadlineSeconds != nil { - n += 1 + sovGenerated(uint64(*m.ActiveDeadlineSeconds)) + if m.TTLSecondsAfterFinished != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.TTLSecondsAfterFinished)) + i-- + dAtA[i] = 0x40 } - if m.Selector != nil { - l = m.Selector.Size() - n += 1 + l + sovGenerated(uint64(l)) + if m.BackoffLimit != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.BackoffLimit)) + i-- + dAtA[i] = 0x38 + } + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x32 if m.ManualSelector != nil { - n += 2 + i-- + if *m.ManualSelector { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.BackoffLimit != nil { - n += 1 + sovGenerated(uint64(*m.BackoffLimit)) + if m.Selector != nil { + { + size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 } - if m.TTLSecondsAfterFinished != nil { - n += 1 + sovGenerated(uint64(*m.TTLSecondsAfterFinished)) + if m.ActiveDeadlineSeconds != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.ActiveDeadlineSeconds)) + i-- + dAtA[i] = 0x18 } - return n + if m.Completions != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.Completions)) + i-- + dAtA[i] = 0x10 + } + if m.Parallelism != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.Parallelism)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil } -func (m *JobStatus) Size() (n int) { - if m == nil { - return 0 +func (m *JobStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *JobStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *JobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) + i -= len(m.CompletedIndexes) + copy(dAtA[i:], m.CompletedIndexes) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CompletedIndexes))) + i-- + dAtA[i] = 0x3a + i = encodeVarintGenerated(dAtA, i, uint64(m.Failed)) + i-- + dAtA[i] = 0x30 + i = encodeVarintGenerated(dAtA, i, uint64(m.Succeeded)) + i-- + dAtA[i] = 0x28 + i = encodeVarintGenerated(dAtA, i, uint64(m.Active)) + i-- + dAtA[i] = 0x20 + if m.CompletionTime != nil { + { + size, err := m.CompletionTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x1a } if m.StartTime != nil { - l = m.StartTime.Size() - n += 1 + l + sovGenerated(uint64(l)) + { + size, err := m.StartTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 } - if m.CompletionTime != nil { - l = m.CompletionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } } - n += 1 + sovGenerated(uint64(m.Active)) - n += 1 + sovGenerated(uint64(m.Succeeded)) - n += 1 + sovGenerated(uint64(m.Failed)) - return n + return len(dAtA) - i, nil } -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 +func (m *JobTemplateSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil } -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + +func (m *JobTemplateSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) } -func (this *Job) String() string { - if this == nil { - return "nil" + +func (m *JobTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } - s := strings.Join([]string{`&Job{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "JobSpec", "JobSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "JobStatus", "JobStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil } -func (this *JobCondition) String() string { - if this == nil { - return "nil" + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + offset -= sovGenerated(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ } - s := strings.Join([]string{`&JobCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `LastProbeTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastProbeTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `}`, - }, "") - return s + dAtA[offset] = uint8(v) + return base } -func (this *JobList) String() string { - if this == nil { - return "nil" +func (m *CronJob) Size() (n int) { + if m == nil { + return 0 } - repeatedStringForItems := "[]Job{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Job", "Job", 1), `&`, ``, 1) + "," + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *CronJobList) Size() (n int) { + if m == nil { + return 0 } - repeatedStringForItems += "}" - s := strings.Join([]string{`&JobList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n } -func (this *JobSpec) String() string { - if this == nil { - return "nil" + +func (m *CronJobSpec) Size() (n int) { + if m == nil { + return 0 } - s := strings.Join([]string{`&JobSpec{`, - `Parallelism:` + valueToStringGenerated(this.Parallelism) + `,`, - `Completions:` + valueToStringGenerated(this.Completions) + `,`, - `ActiveDeadlineSeconds:` + valueToStringGenerated(this.ActiveDeadlineSeconds) + `,`, - `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, - `ManualSelector:` + valueToStringGenerated(this.ManualSelector) + `,`, - `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v11.PodTemplateSpec", 1), `&`, ``, 1) + `,`, - `BackoffLimit:` + valueToStringGenerated(this.BackoffLimit) + `,`, - `TTLSecondsAfterFinished:` + valueToStringGenerated(this.TTLSecondsAfterFinished) + `,`, - `}`, - }, "") - return s + var l int + _ = l + l = len(m.Schedule) + n += 1 + l + sovGenerated(uint64(l)) + if m.StartingDeadlineSeconds != nil { + n += 1 + sovGenerated(uint64(*m.StartingDeadlineSeconds)) + } + l = len(m.ConcurrencyPolicy) + n += 1 + l + sovGenerated(uint64(l)) + if m.Suspend != nil { + n += 2 + } + l = m.JobTemplate.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.SuccessfulJobsHistoryLimit != nil { + n += 1 + sovGenerated(uint64(*m.SuccessfulJobsHistoryLimit)) + } + if m.FailedJobsHistoryLimit != nil { + n += 1 + sovGenerated(uint64(*m.FailedJobsHistoryLimit)) + } + return n } -func (this *JobStatus) String() string { - if this == nil { - return "nil" + +func (m *CronJobStatus) Size() (n int) { + if m == nil { + return 0 } - repeatedStringForConditions := "[]JobCondition{" - for _, f := range this.Conditions { - repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "JobCondition", "JobCondition", 1), `&`, ``, 1) + "," + var l int + _ = l + if len(m.Active) > 0 { + for _, e := range m.Active { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.LastScheduleTime != nil { + l = m.LastScheduleTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastSuccessfulTime != nil { + l = m.LastSuccessfulTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Job) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *JobCondition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastProbeTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *JobList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *JobSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Parallelism != nil { + n += 1 + sovGenerated(uint64(*m.Parallelism)) + } + if m.Completions != nil { + n += 1 + sovGenerated(uint64(*m.Completions)) + } + if m.ActiveDeadlineSeconds != nil { + n += 1 + sovGenerated(uint64(*m.ActiveDeadlineSeconds)) + } + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ManualSelector != nil { + n += 2 + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.BackoffLimit != nil { + n += 1 + sovGenerated(uint64(*m.BackoffLimit)) + } + if m.TTLSecondsAfterFinished != nil { + n += 1 + sovGenerated(uint64(*m.TTLSecondsAfterFinished)) + } + if m.CompletionMode != nil { + l = len(*m.CompletionMode) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Suspend != nil { + n += 2 + } + return n +} + +func (m *JobStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.StartTime != nil { + l = m.StartTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.CompletionTime != nil { + l = m.CompletionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + n += 1 + sovGenerated(uint64(m.Active)) + n += 1 + sovGenerated(uint64(m.Succeeded)) + n += 1 + sovGenerated(uint64(m.Failed)) + l = len(m.CompletedIndexes) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *JobTemplateSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func sovGenerated(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *CronJob) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CronJob{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "CronJobSpec", "CronJobSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "CronJobStatus", "CronJobStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *CronJobList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]CronJob{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "CronJob", "CronJob", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&CronJobList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *CronJobSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CronJobSpec{`, + `Schedule:` + fmt.Sprintf("%v", this.Schedule) + `,`, + `StartingDeadlineSeconds:` + valueToStringGenerated(this.StartingDeadlineSeconds) + `,`, + `ConcurrencyPolicy:` + fmt.Sprintf("%v", this.ConcurrencyPolicy) + `,`, + `Suspend:` + valueToStringGenerated(this.Suspend) + `,`, + `JobTemplate:` + strings.Replace(strings.Replace(this.JobTemplate.String(), "JobTemplateSpec", "JobTemplateSpec", 1), `&`, ``, 1) + `,`, + `SuccessfulJobsHistoryLimit:` + valueToStringGenerated(this.SuccessfulJobsHistoryLimit) + `,`, + `FailedJobsHistoryLimit:` + valueToStringGenerated(this.FailedJobsHistoryLimit) + `,`, + `}`, + }, "") + return s +} +func (this *CronJobStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForActive := "[]ObjectReference{" + for _, f := range this.Active { + repeatedStringForActive += fmt.Sprintf("%v", f) + "," + } + repeatedStringForActive += "}" + s := strings.Join([]string{`&CronJobStatus{`, + `Active:` + repeatedStringForActive + `,`, + `LastScheduleTime:` + strings.Replace(fmt.Sprintf("%v", this.LastScheduleTime), "Time", "v1.Time", 1) + `,`, + `LastSuccessfulTime:` + strings.Replace(fmt.Sprintf("%v", this.LastSuccessfulTime), "Time", "v1.Time", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Job) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Job{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "JobSpec", "JobSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "JobStatus", "JobStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *JobCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&JobCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastProbeTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastProbeTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *JobList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Job{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Job", "Job", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&JobList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *JobSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&JobSpec{`, + `Parallelism:` + valueToStringGenerated(this.Parallelism) + `,`, + `Completions:` + valueToStringGenerated(this.Completions) + `,`, + `ActiveDeadlineSeconds:` + valueToStringGenerated(this.ActiveDeadlineSeconds) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, + `ManualSelector:` + valueToStringGenerated(this.ManualSelector) + `,`, + `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v11.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `BackoffLimit:` + valueToStringGenerated(this.BackoffLimit) + `,`, + `TTLSecondsAfterFinished:` + valueToStringGenerated(this.TTLSecondsAfterFinished) + `,`, + `CompletionMode:` + valueToStringGenerated(this.CompletionMode) + `,`, + `Suspend:` + valueToStringGenerated(this.Suspend) + `,`, + `}`, + }, "") + return s +} +func (this *JobStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForConditions := "[]JobCondition{" + for _, f := range this.Conditions { + repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "JobCondition", "JobCondition", 1), `&`, ``, 1) + "," + } + repeatedStringForConditions += "}" + s := strings.Join([]string{`&JobStatus{`, + `Conditions:` + repeatedStringForConditions + `,`, + `StartTime:` + strings.Replace(fmt.Sprintf("%v", this.StartTime), "Time", "v1.Time", 1) + `,`, + `CompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.CompletionTime), "Time", "v1.Time", 1) + `,`, + `Active:` + fmt.Sprintf("%v", this.Active) + `,`, + `Succeeded:` + fmt.Sprintf("%v", this.Succeeded) + `,`, + `Failed:` + fmt.Sprintf("%v", this.Failed) + `,`, + `CompletedIndexes:` + fmt.Sprintf("%v", this.CompletedIndexes) + `,`, + `}`, + }, "") + return s +} +func (this *JobTemplateSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&JobTemplateSpec{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "JobSpec", "JobSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *CronJob) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CronJob: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CronJob: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CronJobList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CronJobList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CronJobList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, CronJob{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CronJobSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CronJobSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CronJobSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Schedule", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Schedule = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartingDeadlineSeconds", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.StartingDeadlineSeconds = &v + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConcurrencyPolicy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ConcurrencyPolicy = ConcurrencyPolicy(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Suspend", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Suspend = &b + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobTemplate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.JobTemplate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SuccessfulJobsHistoryLimit", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.SuccessfulJobsHistoryLimit = &v + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FailedJobsHistoryLimit", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.FailedJobsHistoryLimit = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CronJobStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CronJobStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CronJobStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Active = append(m.Active, v11.ObjectReference{}) + if err := m.Active[len(m.Active)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastScheduleTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastScheduleTime == nil { + m.LastScheduleTime = &v1.Time{} + } + if err := m.LastScheduleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastSuccessfulTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastSuccessfulTime == nil { + m.LastSuccessfulTime = &v1.Time{} + } + if err := m.LastSuccessfulTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } - repeatedStringForConditions += "}" - s := strings.Join([]string{`&JobStatus{`, - `Conditions:` + repeatedStringForConditions + `,`, - `StartTime:` + strings.Replace(fmt.Sprintf("%v", this.StartTime), "Time", "v1.Time", 1) + `,`, - `CompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.CompletionTime), "Time", "v1.Time", 1) + `,`, - `Active:` + fmt.Sprintf("%v", this.Active) + `,`, - `Succeeded:` + fmt.Sprintf("%v", this.Succeeded) + `,`, - `Failed:` + fmt.Sprintf("%v", this.Failed) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" + + if iNdEx > l { + return io.ErrUnexpectedEOF } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) + return nil } func (m *Job) Unmarshal(dAtA []byte) error { l := len(dAtA) @@ -924,10 +2216,7 @@ func (m *Job) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1171,10 +2460,7 @@ func (m *JobCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1291,10 +2577,7 @@ func (m *JobList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1528,16 +2811,67 @@ func (m *JobSpec) Unmarshal(dAtA []byte) error { } } m.TTLSecondsAfterFinished = &v + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CompletionMode", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := CompletionMode(dAtA[iNdEx:postIndex]) + m.CompletionMode = &s + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Suspend", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Suspend = &b default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1744,16 +3078,161 @@ func (m *JobStatus) Unmarshal(dAtA []byte) error { break } } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CompletedIndexes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CompletedIndexes = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *JobTemplateSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: JobTemplateSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: JobTemplateSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) < 0 { + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/batch/v1/generated.proto b/vendor/k8s.io/api/batch/v1/generated.proto index 7548c04dc1..04f0e7ea7e 100644 --- a/vendor/k8s.io/api/batch/v1/generated.proto +++ b/vendor/k8s.io/api/batch/v1/generated.proto @@ -29,6 +29,88 @@ import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1"; +// CronJob represents the configuration of a single cron job. +message CronJob { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the desired behavior of a cron job, including the schedule. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + // +optional + optional CronJobSpec spec = 2; + + // Current status of a cron job. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + // +optional + optional CronJobStatus status = 3; +} + +// CronJobList is a collection of cron jobs. +message CronJobList { + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // items is the list of CronJobs. + repeated CronJob items = 2; +} + +// CronJobSpec describes how the job execution will look like and when it will actually run. +message CronJobSpec { + // The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. + optional string schedule = 1; + + // Optional deadline in seconds for starting the job if it misses scheduled + // time for any reason. Missed jobs executions will be counted as failed ones. + // +optional + optional int64 startingDeadlineSeconds = 2; + + // Specifies how to treat concurrent executions of a Job. + // Valid values are: + // - "Allow" (default): allows CronJobs to run concurrently; + // - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; + // - "Replace": cancels currently running job and replaces it with a new one + // +optional + optional string concurrencyPolicy = 3; + + // This flag tells the controller to suspend subsequent executions, it does + // not apply to already started executions. Defaults to false. + // +optional + optional bool suspend = 4; + + // Specifies the job that will be created when executing a CronJob. + optional JobTemplateSpec jobTemplate = 5; + + // The number of successful finished jobs to retain. Value must be non-negative integer. + // Defaults to 3. + // +optional + optional int32 successfulJobsHistoryLimit = 6; + + // The number of failed finished jobs to retain. Value must be non-negative integer. + // Defaults to 1. + // +optional + optional int32 failedJobsHistoryLimit = 7; +} + +// CronJobStatus represents the current state of a cron job. +message CronJobStatus { + // A list of pointers to currently running jobs. + // +optional + // +listType=atomic + repeated k8s.io.api.core.v1.ObjectReference active = 1; + + // Information when was the last time the job was successfully scheduled. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScheduleTime = 4; + + // Information when was the last time the job successfully completed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastSuccessfulTime = 5; +} + // Job represents the configuration of a single job. message Job { // Standard object's metadata. @@ -102,8 +184,11 @@ message JobSpec { // +optional optional int32 completions = 2; - // Specifies the duration in seconds relative to the startTime that the job may be active - // before the system tries to terminate it; value must be positive integer + // Specifies the duration in seconds relative to the startTime that the job + // may be continuously active before the system tries to terminate it; value + // must be positive integer. If a Job is suspended (at creation or through an + // update), this timer will effectively be stopped and reset when the Job is + // resumed again. // +optional optional int64 activeDeadlineSeconds = 3; @@ -146,21 +231,61 @@ message JobSpec { // TTLAfterFinished feature. // +optional optional int32 ttlSecondsAfterFinished = 8; + + // CompletionMode specifies how Pod completions are tracked. It can be + // `NonIndexed` (default) or `Indexed`. + // + // `NonIndexed` means that the Job is considered complete when there have + // been .spec.completions successfully completed Pods. Each Pod completion is + // homologous to each other. + // + // `Indexed` means that the Pods of a + // Job get an associated completion index from 0 to (.spec.completions - 1), + // available in the annotation batch.kubernetes.io/job-completion-index. + // The Job is considered complete when there is one successfully completed Pod + // for each index. + // When value is `Indexed`, .spec.completions must be specified and + // `.spec.parallelism` must be less than or equal to 10^5. + // + // This field is alpha-level and is only honored by servers that enable the + // IndexedJob feature gate. More completion modes can be added in the future. + // If the Job controller observes a mode that it doesn't recognize, the + // controller skips updates for the Job. + // +optional + optional string completionMode = 9; + + // Suspend specifies whether the Job controller should create Pods or not. If + // a Job is created with suspend set to true, no Pods are created by the Job + // controller. If a Job is suspended after creation (i.e. the flag goes from + // false to true), the Job controller will delete all active Pods associated + // with this Job. Users must design their workload to gracefully handle this. + // Suspending a Job will reset the StartTime field of the Job, effectively + // resetting the ActiveDeadlineSeconds timer too. This is an alpha field and + // requires the SuspendJob feature gate to be enabled; otherwise this field + // may not be set to true. Defaults to false. + // +optional + optional bool suspend = 10; } // JobStatus represents the current state of a Job. message JobStatus { - // The latest available observations of an object's current state. - // When a job fails, one of the conditions will have type == "Failed". + // The latest available observations of an object's current state. When a Job + // fails, one of the conditions will have type "Failed" and status true. When + // a Job is suspended, one of the conditions will have type "Suspended" and + // status true; when the Job is resumed, the status of this condition will + // become false. When a Job is completed, one of the conditions will have + // type "Complete" and status true. // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ // +optional // +patchMergeKey=type // +patchStrategy=merge + // +listType=atomic repeated JobCondition conditions = 1; - // Represents time when the job was acknowledged by the job controller. - // It is not guaranteed to be set in happens-before order across separate operations. - // It is represented in RFC3339 form and is in UTC. + // Represents time when the job controller started processing a job. When a + // Job is created in the suspended state, this field is not set until the + // first time it is resumed. This field is reset every time a Job is resumed + // from suspension. It is represented in RFC3339 form and is in UTC. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 2; @@ -182,5 +307,28 @@ message JobStatus { // The number of pods which reached phase Failed. // +optional optional int32 failed = 6; + + // CompletedIndexes holds the completed indexes when .spec.completionMode = + // "Indexed" in a text format. The indexes are represented as decimal integers + // separated by commas. The numbers are listed in increasing order. Three or + // more consecutive numbers are compressed and represented by the first and + // last element of the series, separated by a hyphen. + // For example, if the completed indexes are 1, 3, 4, 5 and 7, they are + // represented as "1,3-5,7". + // +optional + optional string completedIndexes = 7; +} + +// JobTemplateSpec describes the data a Job should have when created from a template +message JobTemplateSpec { + // Standard object's metadata of the jobs created from this template. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the desired behavior of the job. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + // +optional + optional JobSpec spec = 2; } diff --git a/vendor/k8s.io/api/batch/v1/register.go b/vendor/k8s.io/api/batch/v1/register.go index 32fa51f0e4..17029cdf29 100644 --- a/vendor/k8s.io/api/batch/v1/register.go +++ b/vendor/k8s.io/api/batch/v1/register.go @@ -46,6 +46,8 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Job{}, &JobList{}, + &CronJob{}, + &CronJobList{}, ) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil diff --git a/vendor/k8s.io/api/batch/v1/types.go b/vendor/k8s.io/api/batch/v1/types.go index fd478874a1..12f4b04cbd 100644 --- a/vendor/k8s.io/api/batch/v1/types.go +++ b/vendor/k8s.io/api/batch/v1/types.go @@ -21,6 +21,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) +const JobCompletionIndexAnnotationAlpha = "batch.kubernetes.io/job-completion-index" + // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -57,6 +59,22 @@ type JobList struct { Items []Job `json:"items" protobuf:"bytes,2,rep,name=items"` } +// CompletionMode specifies how Pod completions of a Job are tracked. +type CompletionMode string + +const ( + // NonIndexedCompletion is a Job completion mode. In this mode, the Job is + // considered complete when there have been .spec.completions + // successfully completed Pods. Pod completions are homologous to each other. + NonIndexedCompletion CompletionMode = "NonIndexed" + + // IndexedCompletion is a Job completion mode. In this mode, the Pods of a + // Job get an associated completion index from 0 to (.spec.completions - 1). + // The Job is considered complete when a Pod completes for each completion + // index. + IndexedCompletion CompletionMode = "Indexed" +) + // JobSpec describes how the job execution will look like. type JobSpec struct { @@ -77,8 +95,11 @@ type JobSpec struct { // +optional Completions *int32 `json:"completions,omitempty" protobuf:"varint,2,opt,name=completions"` - // Specifies the duration in seconds relative to the startTime that the job may be active - // before the system tries to terminate it; value must be positive integer + // Specifies the duration in seconds relative to the startTime that the job + // may be continuously active before the system tries to terminate it; value + // must be positive integer. If a Job is suspended (at creation or through an + // update), this timer will effectively be stopped and reset when the Job is + // resumed again. // +optional ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty" protobuf:"varint,3,opt,name=activeDeadlineSeconds"` @@ -126,21 +147,61 @@ type JobSpec struct { // TTLAfterFinished feature. // +optional TTLSecondsAfterFinished *int32 `json:"ttlSecondsAfterFinished,omitempty" protobuf:"varint,8,opt,name=ttlSecondsAfterFinished"` + + // CompletionMode specifies how Pod completions are tracked. It can be + // `NonIndexed` (default) or `Indexed`. + // + // `NonIndexed` means that the Job is considered complete when there have + // been .spec.completions successfully completed Pods. Each Pod completion is + // homologous to each other. + // + // `Indexed` means that the Pods of a + // Job get an associated completion index from 0 to (.spec.completions - 1), + // available in the annotation batch.kubernetes.io/job-completion-index. + // The Job is considered complete when there is one successfully completed Pod + // for each index. + // When value is `Indexed`, .spec.completions must be specified and + // `.spec.parallelism` must be less than or equal to 10^5. + // + // This field is alpha-level and is only honored by servers that enable the + // IndexedJob feature gate. More completion modes can be added in the future. + // If the Job controller observes a mode that it doesn't recognize, the + // controller skips updates for the Job. + // +optional + CompletionMode *CompletionMode `json:"completionMode,omitempty" protobuf:"bytes,9,opt,name=completionMode,casttype=CompletionMode"` + + // Suspend specifies whether the Job controller should create Pods or not. If + // a Job is created with suspend set to true, no Pods are created by the Job + // controller. If a Job is suspended after creation (i.e. the flag goes from + // false to true), the Job controller will delete all active Pods associated + // with this Job. Users must design their workload to gracefully handle this. + // Suspending a Job will reset the StartTime field of the Job, effectively + // resetting the ActiveDeadlineSeconds timer too. This is an alpha field and + // requires the SuspendJob feature gate to be enabled; otherwise this field + // may not be set to true. Defaults to false. + // +optional + Suspend *bool `json:"suspend,omitempty" protobuf:"varint,10,opt,name=suspend"` } // JobStatus represents the current state of a Job. type JobStatus struct { - // The latest available observations of an object's current state. - // When a job fails, one of the conditions will have type == "Failed". + // The latest available observations of an object's current state. When a Job + // fails, one of the conditions will have type "Failed" and status true. When + // a Job is suspended, one of the conditions will have type "Suspended" and + // status true; when the Job is resumed, the status of this condition will + // become false. When a Job is completed, one of the conditions will have + // type "Complete" and status true. // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ // +optional // +patchMergeKey=type // +patchStrategy=merge + // +listType=atomic Conditions []JobCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - // Represents time when the job was acknowledged by the job controller. - // It is not guaranteed to be set in happens-before order across separate operations. - // It is represented in RFC3339 form and is in UTC. + // Represents time when the job controller started processing a job. When a + // Job is created in the suspended state, this field is not set until the + // first time it is resumed. This field is reset every time a Job is resumed + // from suspension. It is represented in RFC3339 form and is in UTC. // +optional StartTime *metav1.Time `json:"startTime,omitempty" protobuf:"bytes,2,opt,name=startTime"` @@ -162,12 +223,24 @@ type JobStatus struct { // The number of pods which reached phase Failed. // +optional Failed int32 `json:"failed,omitempty" protobuf:"varint,6,opt,name=failed"` + + // CompletedIndexes holds the completed indexes when .spec.completionMode = + // "Indexed" in a text format. The indexes are represented as decimal integers + // separated by commas. The numbers are listed in increasing order. Three or + // more consecutive numbers are compressed and represented by the first and + // last element of the series, separated by a hyphen. + // For example, if the completed indexes are 1, 3, 4, 5 and 7, they are + // represented as "1,3-5,7". + // +optional + CompletedIndexes string `json:"completedIndexes,omitempty" protobuf:"bytes,7,opt,name=completedIndexes"` } type JobConditionType string // These are valid conditions of a job. const ( + // JobSuspended means the job has been suspended. + JobSuspended JobConditionType = "Suspended" // JobComplete means the job has completed its execution. JobComplete JobConditionType = "Complete" // JobFailed means the job has failed its execution. @@ -193,3 +266,125 @@ type JobCondition struct { // +optional Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"` } + +// JobTemplateSpec describes the data a Job should have when created from a template +type JobTemplateSpec struct { + // Standard object's metadata of the jobs created from this template. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Specification of the desired behavior of the job. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + // +optional + Spec JobSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CronJob represents the configuration of a single cron job. +type CronJob struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Specification of the desired behavior of a cron job, including the schedule. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + // +optional + Spec CronJobSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` + + // Current status of a cron job. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + // +optional + Status CronJobStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// CronJobList is a collection of cron jobs. +type CronJobList struct { + metav1.TypeMeta `json:",inline"` + + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // items is the list of CronJobs. + Items []CronJob `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// CronJobSpec describes how the job execution will look like and when it will actually run. +type CronJobSpec struct { + + // The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. + Schedule string `json:"schedule" protobuf:"bytes,1,opt,name=schedule"` + + // Optional deadline in seconds for starting the job if it misses scheduled + // time for any reason. Missed jobs executions will be counted as failed ones. + // +optional + StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds,omitempty" protobuf:"varint,2,opt,name=startingDeadlineSeconds"` + + // Specifies how to treat concurrent executions of a Job. + // Valid values are: + // - "Allow" (default): allows CronJobs to run concurrently; + // - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; + // - "Replace": cancels currently running job and replaces it with a new one + // +optional + ConcurrencyPolicy ConcurrencyPolicy `json:"concurrencyPolicy,omitempty" protobuf:"bytes,3,opt,name=concurrencyPolicy,casttype=ConcurrencyPolicy"` + + // This flag tells the controller to suspend subsequent executions, it does + // not apply to already started executions. Defaults to false. + // +optional + Suspend *bool `json:"suspend,omitempty" protobuf:"varint,4,opt,name=suspend"` + + // Specifies the job that will be created when executing a CronJob. + JobTemplate JobTemplateSpec `json:"jobTemplate" protobuf:"bytes,5,opt,name=jobTemplate"` + + // The number of successful finished jobs to retain. Value must be non-negative integer. + // Defaults to 3. + // +optional + SuccessfulJobsHistoryLimit *int32 `json:"successfulJobsHistoryLimit,omitempty" protobuf:"varint,6,opt,name=successfulJobsHistoryLimit"` + + // The number of failed finished jobs to retain. Value must be non-negative integer. + // Defaults to 1. + // +optional + FailedJobsHistoryLimit *int32 `json:"failedJobsHistoryLimit,omitempty" protobuf:"varint,7,opt,name=failedJobsHistoryLimit"` +} + +// ConcurrencyPolicy describes how the job will be handled. +// Only one of the following concurrent policies may be specified. +// If none of the following policies is specified, the default one +// is AllowConcurrent. +type ConcurrencyPolicy string + +const ( + // AllowConcurrent allows CronJobs to run concurrently. + AllowConcurrent ConcurrencyPolicy = "Allow" + + // ForbidConcurrent forbids concurrent runs, skipping next run if previous + // hasn't finished yet. + ForbidConcurrent ConcurrencyPolicy = "Forbid" + + // ReplaceConcurrent cancels currently running job and replaces it with a new one. + ReplaceConcurrent ConcurrencyPolicy = "Replace" +) + +// CronJobStatus represents the current state of a cron job. +type CronJobStatus struct { + // A list of pointers to currently running jobs. + // +optional + // +listType=atomic + Active []v1.ObjectReference `json:"active,omitempty" protobuf:"bytes,1,rep,name=active"` + + // Information when was the last time the job was successfully scheduled. + // +optional + LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty" protobuf:"bytes,4,opt,name=lastScheduleTime"` + + // Information when was the last time the job successfully completed. + // +optional + LastSuccessfulTime *metav1.Time `json:"lastSuccessfulTime,omitempty" protobuf:"bytes,5,opt,name=lastSuccessfulTime"` +} diff --git a/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go index 0d8003a727..d98c5edeb1 100644 --- a/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go @@ -27,6 +27,53 @@ package v1 // Those methods can be generated by using hack/update-generated-swagger-docs.sh // AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. +var map_CronJob = map[string]string{ + "": "CronJob represents the configuration of a single cron job.", + "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "spec": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", + "status": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", +} + +func (CronJob) SwaggerDoc() map[string]string { + return map_CronJob +} + +var map_CronJobList = map[string]string{ + "": "CronJobList is a collection of cron jobs.", + "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "items": "items is the list of CronJobs.", +} + +func (CronJobList) SwaggerDoc() map[string]string { + return map_CronJobList +} + +var map_CronJobSpec = map[string]string{ + "": "CronJobSpec describes how the job execution will look like and when it will actually run.", + "schedule": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", + "startingDeadlineSeconds": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", + "concurrencyPolicy": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", + "suspend": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", + "jobTemplate": "Specifies the job that will be created when executing a CronJob.", + "successfulJobsHistoryLimit": "The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.", + "failedJobsHistoryLimit": "The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.", +} + +func (CronJobSpec) SwaggerDoc() map[string]string { + return map_CronJobSpec +} + +var map_CronJobStatus = map[string]string{ + "": "CronJobStatus represents the current state of a cron job.", + "active": "A list of pointers to currently running jobs.", + "lastScheduleTime": "Information when was the last time the job was successfully scheduled.", + "lastSuccessfulTime": "Information when was the last time the job successfully completed.", +} + +func (CronJobStatus) SwaggerDoc() map[string]string { + return map_CronJobStatus +} + var map_Job = map[string]string{ "": "Job represents the configuration of a single job.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", @@ -66,12 +113,14 @@ var map_JobSpec = map[string]string{ "": "JobSpec describes how the job execution will look like.", "parallelism": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", "completions": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "activeDeadlineSeconds": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", + "activeDeadlineSeconds": "Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again.", "backoffLimit": "Specifies the number of retries before marking this job failed. Defaults to 6", "selector": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", "manualSelector": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", "template": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", "ttlSecondsAfterFinished": "ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.", + "completionMode": "CompletionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`.\n\n`NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other.\n\n`Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. The Job is considered complete when there is one successfully completed Pod for each index. When value is `Indexed`, .spec.completions must be specified and `.spec.parallelism` must be less than or equal to 10^5.\n\nThis field is alpha-level and is only honored by servers that enable the IndexedJob feature gate. More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, the controller skips updates for the Job.", + "suspend": "Suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. This is an alpha field and requires the SuspendJob feature gate to be enabled; otherwise this field may not be set to true. Defaults to false.", } func (JobSpec) SwaggerDoc() map[string]string { @@ -79,17 +128,28 @@ func (JobSpec) SwaggerDoc() map[string]string { } var map_JobStatus = map[string]string{ - "": "JobStatus represents the current state of a Job.", - "conditions": "The latest available observations of an object's current state. When a job fails, one of the conditions will have type == \"Failed\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "startTime": "Represents time when the job was acknowledged by the job controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", - "completionTime": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is only set when the job finishes successfully.", - "active": "The number of actively running pods.", - "succeeded": "The number of pods which reached phase Succeeded.", - "failed": "The number of pods which reached phase Failed.", + "": "JobStatus represents the current state of a Job.", + "conditions": "The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \"Failed\" and status true. When a Job is suspended, one of the conditions will have type \"Suspended\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \"Complete\" and status true. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "startTime": "Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC.", + "completionTime": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is only set when the job finishes successfully.", + "active": "The number of actively running pods.", + "succeeded": "The number of pods which reached phase Succeeded.", + "failed": "The number of pods which reached phase Failed.", + "completedIndexes": "CompletedIndexes holds the completed indexes when .spec.completionMode = \"Indexed\" in a text format. The indexes are represented as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\".", } func (JobStatus) SwaggerDoc() map[string]string { return map_JobStatus } +var map_JobTemplateSpec = map[string]string{ + "": "JobTemplateSpec describes the data a Job should have when created from a template", + "metadata": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "spec": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", +} + +func (JobTemplateSpec) SwaggerDoc() map[string]string { + return map_JobTemplateSpec +} + // AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/batch/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/batch/v1/zz_generated.deepcopy.go index beba55acec..6018ad1d3c 100644 --- a/vendor/k8s.io/api/batch/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/batch/v1/zz_generated.deepcopy.go @@ -21,10 +21,138 @@ limitations under the License. package v1 import ( + corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CronJob) DeepCopyInto(out *CronJob) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJob. +func (in *CronJob) DeepCopy() *CronJob { + if in == nil { + return nil + } + out := new(CronJob) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CronJob) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CronJobList) DeepCopyInto(out *CronJobList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]CronJob, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobList. +func (in *CronJobList) DeepCopy() *CronJobList { + if in == nil { + return nil + } + out := new(CronJobList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CronJobList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CronJobSpec) DeepCopyInto(out *CronJobSpec) { + *out = *in + if in.StartingDeadlineSeconds != nil { + in, out := &in.StartingDeadlineSeconds, &out.StartingDeadlineSeconds + *out = new(int64) + **out = **in + } + if in.Suspend != nil { + in, out := &in.Suspend, &out.Suspend + *out = new(bool) + **out = **in + } + in.JobTemplate.DeepCopyInto(&out.JobTemplate) + if in.SuccessfulJobsHistoryLimit != nil { + in, out := &in.SuccessfulJobsHistoryLimit, &out.SuccessfulJobsHistoryLimit + *out = new(int32) + **out = **in + } + if in.FailedJobsHistoryLimit != nil { + in, out := &in.FailedJobsHistoryLimit, &out.FailedJobsHistoryLimit + *out = new(int32) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobSpec. +func (in *CronJobSpec) DeepCopy() *CronJobSpec { + if in == nil { + return nil + } + out := new(CronJobSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CronJobStatus) DeepCopyInto(out *CronJobStatus) { + *out = *in + if in.Active != nil { + in, out := &in.Active, &out.Active + *out = make([]corev1.ObjectReference, len(*in)) + copy(*out, *in) + } + if in.LastScheduleTime != nil { + in, out := &in.LastScheduleTime, &out.LastScheduleTime + *out = (*in).DeepCopy() + } + if in.LastSuccessfulTime != nil { + in, out := &in.LastSuccessfulTime, &out.LastSuccessfulTime + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobStatus. +func (in *CronJobStatus) DeepCopy() *CronJobStatus { + if in == nil { + return nil + } + out := new(CronJobStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Job) DeepCopyInto(out *Job) { *out = *in @@ -143,6 +271,16 @@ func (in *JobSpec) DeepCopyInto(out *JobSpec) { *out = new(int32) **out = **in } + if in.CompletionMode != nil { + in, out := &in.CompletionMode, &out.CompletionMode + *out = new(CompletionMode) + **out = **in + } + if in.Suspend != nil { + in, out := &in.Suspend, &out.Suspend + *out = new(bool) + **out = **in + } return } @@ -186,3 +324,21 @@ func (in *JobStatus) DeepCopy() *JobStatus { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *JobTemplateSpec) DeepCopyInto(out *JobTemplateSpec) { + *out = *in + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobTemplateSpec. +func (in *JobTemplateSpec) DeepCopy() *JobTemplateSpec { + if in == nil { + return nil + } + out := new(JobTemplateSpec) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/api/batch/v1beta1/generated.pb.go b/vendor/k8s.io/api/batch/v1beta1/generated.pb.go index 69c4054bfe..93794f0578 100644 --- a/vendor/k8s.io/api/batch/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/batch/v1beta1/generated.pb.go @@ -227,56 +227,57 @@ func init() { } var fileDescriptor_e57b277b05179ae7 = []byte{ - // 771 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x94, 0xcf, 0x6f, 0xe3, 0x44, - 0x14, 0xc7, 0xe3, 0x34, 0xbf, 0x76, 0xc2, 0x42, 0xd7, 0xa0, 0x5d, 0x2b, 0x20, 0x27, 0x64, 0xb5, - 0x22, 0x20, 0x76, 0x4c, 0x2b, 0x84, 0x38, 0x21, 0xad, 0x17, 0x2d, 0x50, 0x8a, 0x16, 0x39, 0x45, - 0x48, 0xa8, 0x42, 0x1d, 0x8f, 0x5f, 0x92, 0x69, 0x6c, 0x8f, 0xe5, 0x19, 0x47, 0xca, 0x8d, 0x0b, - 0x77, 0xfe, 0x11, 0x4e, 0xfc, 0x13, 0x11, 0xa7, 0x1e, 0x7b, 0x8a, 0xa8, 0xf9, 0x2f, 0x38, 0x21, - 0x4f, 0x9c, 0x1f, 0xcd, 0x8f, 0xb6, 0x7b, 0xe9, 0xcd, 0xf3, 0xe6, 0xfb, 0xfd, 0xcc, 0xf3, 0x7b, - 0x6f, 0x06, 0xbd, 0x18, 0x7e, 0x29, 0x30, 0xe3, 0xd6, 0x30, 0x71, 0x21, 0x0e, 0x41, 0x82, 0xb0, - 0x46, 0x10, 0x7a, 0x3c, 0xb6, 0xf2, 0x0d, 0x12, 0x31, 0xcb, 0x25, 0x92, 0x0e, 0xac, 0xd1, 0x81, - 0x0b, 0x92, 0x1c, 0x58, 0x7d, 0x08, 0x21, 0x26, 0x12, 0x3c, 0x1c, 0xc5, 0x5c, 0x72, 0xdd, 0x98, - 0x29, 0x31, 0x89, 0x18, 0x56, 0x4a, 0x9c, 0x2b, 0x1b, 0xcf, 0xfb, 0x4c, 0x0e, 0x12, 0x17, 0x53, - 0x1e, 0x58, 0x7d, 0xde, 0xe7, 0x96, 0x32, 0xb8, 0x49, 0x4f, 0xad, 0xd4, 0x42, 0x7d, 0xcd, 0x40, - 0x8d, 0xa7, 0x5b, 0x8e, 0x5c, 0x3f, 0xad, 0xd1, 0x5e, 0x11, 0x51, 0x1e, 0xc3, 0x36, 0xcd, 0xe7, - 0x4b, 0x4d, 0x40, 0xe8, 0x80, 0x85, 0x10, 0x8f, 0xad, 0x68, 0xd8, 0xcf, 0x02, 0xc2, 0x0a, 0x40, - 0x92, 0x6d, 0x2e, 0x6b, 0x97, 0x2b, 0x4e, 0x42, 0xc9, 0x02, 0xd8, 0x30, 0x7c, 0x71, 0x9b, 0x41, - 0xd0, 0x01, 0x04, 0x64, 0xdd, 0xd7, 0xfe, 0xbd, 0x88, 0xaa, 0x2f, 0x63, 0x1e, 0x1e, 0x71, 0x57, - 0x3f, 0x43, 0xb5, 0x2c, 0x1f, 0x8f, 0x48, 0x62, 0x68, 0x2d, 0xad, 0x53, 0x3f, 0xfc, 0x0c, 0x2f, - 0xeb, 0xb9, 0xc0, 0xe2, 0x68, 0xd8, 0xcf, 0x02, 0x02, 0x67, 0x6a, 0x3c, 0x3a, 0xc0, 0xaf, 0xdd, - 0x73, 0xa0, 0xf2, 0x07, 0x90, 0xc4, 0xd6, 0x27, 0xd3, 0x66, 0x21, 0x9d, 0x36, 0xd1, 0x32, 0xe6, - 0x2c, 0xa8, 0xfa, 0x37, 0xa8, 0x24, 0x22, 0xa0, 0x46, 0x51, 0xd1, 0x9f, 0xe1, 0x5d, 0xdd, 0xc2, - 0x79, 0x4a, 0xdd, 0x08, 0xa8, 0xfd, 0x56, 0x8e, 0x2c, 0x65, 0x2b, 0x47, 0x01, 0xf4, 0xd7, 0xa8, - 0x22, 0x24, 0x91, 0x89, 0x30, 0xf6, 0x14, 0xea, 0xa3, 0xdb, 0x51, 0x4a, 0x6e, 0xbf, 0x9d, 0xc3, - 0x2a, 0xb3, 0xb5, 0x93, 0x63, 0xda, 0x7f, 0x69, 0xa8, 0x9e, 0x2b, 0x8f, 0x99, 0x90, 0xfa, 0xe9, - 0x46, 0x2d, 0xf0, 0xdd, 0x6a, 0x91, 0xb9, 0x55, 0x25, 0xf6, 0xf3, 0x93, 0x6a, 0xf3, 0xc8, 0x4a, - 0x1d, 0x5e, 0xa1, 0x32, 0x93, 0x10, 0x08, 0xa3, 0xd8, 0xda, 0xeb, 0xd4, 0x0f, 0x3f, 0xbc, 0x35, - 0x7b, 0xfb, 0x61, 0x4e, 0x2b, 0x7f, 0x97, 0xf9, 0x9c, 0x99, 0xbd, 0xfd, 0x67, 0x69, 0x91, 0x75, - 0x56, 0x1c, 0xfd, 0x53, 0x54, 0xcb, 0xfa, 0xec, 0x25, 0x3e, 0xa8, 0xac, 0x1f, 0x2c, 0xb3, 0xe8, - 0xe6, 0x71, 0x67, 0xa1, 0xd0, 0x7f, 0x42, 0x4f, 0x84, 0x24, 0xb1, 0x64, 0x61, 0xff, 0x6b, 0x20, - 0x9e, 0xcf, 0x42, 0xe8, 0x02, 0xe5, 0xa1, 0x27, 0x54, 0x83, 0xf6, 0xec, 0xf7, 0xd3, 0x69, 0xf3, - 0x49, 0x77, 0xbb, 0xc4, 0xd9, 0xe5, 0xd5, 0x4f, 0xd1, 0x23, 0xca, 0x43, 0x9a, 0xc4, 0x31, 0x84, - 0x74, 0xfc, 0x23, 0xf7, 0x19, 0x1d, 0xab, 0x36, 0x3d, 0xb0, 0x71, 0x9e, 0xcd, 0xa3, 0x97, 0xeb, - 0x82, 0xff, 0xb6, 0x05, 0x9d, 0x4d, 0x90, 0xfe, 0x0c, 0x55, 0x45, 0x22, 0x22, 0x08, 0x3d, 0xa3, - 0xd4, 0xd2, 0x3a, 0x35, 0xbb, 0x9e, 0x4e, 0x9b, 0xd5, 0xee, 0x2c, 0xe4, 0xcc, 0xf7, 0xf4, 0x33, - 0x54, 0x3f, 0xe7, 0xee, 0x09, 0x04, 0x91, 0x4f, 0x24, 0x18, 0x65, 0xd5, 0xc2, 0x8f, 0x77, 0xd7, - 0xf9, 0x68, 0x29, 0x56, 0x43, 0xf7, 0x6e, 0x9e, 0x69, 0x7d, 0x65, 0xc3, 0x59, 0x45, 0xea, 0xbf, - 0xa2, 0x86, 0x48, 0x28, 0x05, 0x21, 0x7a, 0x89, 0x7f, 0xc4, 0x5d, 0xf1, 0x2d, 0x13, 0x92, 0xc7, - 0xe3, 0x63, 0x16, 0x30, 0x69, 0x54, 0x5a, 0x5a, 0xa7, 0x6c, 0x9b, 0xe9, 0xb4, 0xd9, 0xe8, 0xee, - 0x54, 0x39, 0x37, 0x10, 0x74, 0x07, 0x3d, 0xee, 0x11, 0xe6, 0x83, 0xb7, 0xc1, 0xae, 0x2a, 0x76, - 0x23, 0x9d, 0x36, 0x1f, 0xbf, 0xda, 0xaa, 0x70, 0x76, 0x38, 0xdb, 0x7f, 0x6b, 0xe8, 0xe1, 0xb5, - 0xfb, 0xa0, 0x7f, 0x8f, 0x2a, 0x84, 0x4a, 0x36, 0xca, 0xe6, 0x25, 0x1b, 0xc5, 0xa7, 0xab, 0x25, - 0xca, 0xde, 0xb4, 0xe5, 0xfd, 0x76, 0xa0, 0x07, 0x59, 0x27, 0x60, 0x79, 0x89, 0x5e, 0x28, 0xab, - 0x93, 0x23, 0x74, 0x1f, 0xed, 0xfb, 0x44, 0xc8, 0xf9, 0xa8, 0x9d, 0xb0, 0x00, 0x54, 0x93, 0xea, - 0x87, 0x9f, 0xdc, 0xed, 0xf2, 0x64, 0x0e, 0xfb, 0xbd, 0x74, 0xda, 0xdc, 0x3f, 0x5e, 0xe3, 0x38, - 0x1b, 0xe4, 0xf6, 0x44, 0x43, 0xab, 0xdd, 0xb9, 0x87, 0xe7, 0xeb, 0x67, 0x54, 0x93, 0xf3, 0x89, - 0x2a, 0xbe, 0xe9, 0x44, 0x2d, 0x6e, 0xe2, 0x62, 0x9c, 0x16, 0xb0, 0xec, 0xf5, 0x79, 0x67, 0x4d, - 0x7f, 0x0f, 0xbf, 0xf3, 0xd5, 0xb5, 0xd7, 0xf8, 0x83, 0x6d, 0xbf, 0x82, 0x6f, 0x78, 0x84, 0xed, - 0xe7, 0x93, 0x2b, 0xb3, 0x70, 0x71, 0x65, 0x16, 0x2e, 0xaf, 0xcc, 0xc2, 0x6f, 0xa9, 0xa9, 0x4d, - 0x52, 0x53, 0xbb, 0x48, 0x4d, 0xed, 0x32, 0x35, 0xb5, 0x7f, 0x52, 0x53, 0xfb, 0xe3, 0x5f, 0xb3, - 0xf0, 0x4b, 0x35, 0x2f, 0xc8, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x9f, 0xb3, 0xdd, 0xdf, - 0x07, 0x00, 0x00, + // 794 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x95, 0x41, 0x6f, 0x1b, 0x45, + 0x14, 0xc7, 0xbd, 0x4e, 0x1c, 0xbb, 0x63, 0x0a, 0xe9, 0x80, 0x52, 0xcb, 0xa0, 0xdd, 0xe0, 0xaa, + 0x22, 0x20, 0x3a, 0x4b, 0x22, 0x84, 0x38, 0x21, 0x75, 0x8b, 0x0a, 0x84, 0xa0, 0xa2, 0x71, 0x11, + 0x12, 0xaa, 0x50, 0x67, 0x67, 0x5f, 0x9c, 0x69, 0x76, 0x77, 0x56, 0x3b, 0xb3, 0x91, 0x72, 0xe3, + 0xc2, 0x9d, 0x2f, 0xc2, 0x89, 0x3b, 0xe7, 0x1c, 0x7b, 0xec, 0x69, 0x45, 0x96, 0x6f, 0xc1, 0x09, + 0xed, 0x78, 0xbd, 0x76, 0xed, 0x75, 0xd3, 0x5e, 0x72, 0xf3, 0xbc, 0xf9, 0xff, 0x7f, 0xf3, 0xf6, + 0xbd, 0x37, 0x63, 0x74, 0xff, 0xf4, 0x4b, 0x45, 0x84, 0x74, 0x4f, 0x33, 0x1f, 0xd2, 0x18, 0x34, + 0x28, 0xf7, 0x0c, 0xe2, 0x40, 0xa6, 0x6e, 0xb5, 0xc1, 0x12, 0xe1, 0xfa, 0x4c, 0xf3, 0x13, 0xf7, + 0x6c, 0xdf, 0x07, 0xcd, 0xf6, 0xdd, 0x09, 0xc4, 0x90, 0x32, 0x0d, 0x01, 0x49, 0x52, 0xa9, 0x25, + 0x1e, 0x4c, 0x95, 0x84, 0x25, 0x82, 0x18, 0x25, 0xa9, 0x94, 0xc3, 0x7b, 0x13, 0xa1, 0x4f, 0x32, + 0x9f, 0x70, 0x19, 0xb9, 0x13, 0x39, 0x91, 0xae, 0x31, 0xf8, 0xd9, 0xb1, 0x59, 0x99, 0x85, 0xf9, + 0x35, 0x05, 0x0d, 0xef, 0x34, 0x1c, 0xb9, 0x7c, 0xda, 0x70, 0xb4, 0x20, 0xe2, 0x32, 0x85, 0x26, + 0xcd, 0xe7, 0x73, 0x4d, 0xc4, 0xf8, 0x89, 0x88, 0x21, 0x3d, 0x77, 0x93, 0xd3, 0x49, 0x19, 0x50, + 0x6e, 0x04, 0x9a, 0x35, 0xb9, 0xdc, 0x75, 0xae, 0x34, 0x8b, 0xb5, 0x88, 0x60, 0xc5, 0xf0, 0xc5, + 0x55, 0x06, 0xc5, 0x4f, 0x20, 0x62, 0xcb, 0xbe, 0xd1, 0xef, 0x6d, 0xd4, 0x7d, 0x90, 0xca, 0xf8, + 0x50, 0xfa, 0xf8, 0x29, 0xea, 0x95, 0xf9, 0x04, 0x4c, 0xb3, 0x81, 0xb5, 0x6b, 0xed, 0xf5, 0x0f, + 0x3e, 0x23, 0xf3, 0x7a, 0xd6, 0x58, 0x92, 0x9c, 0x4e, 0xca, 0x80, 0x22, 0xa5, 0x9a, 0x9c, 0xed, + 0x93, 0x47, 0xfe, 0x33, 0xe0, 0xfa, 0x07, 0xd0, 0xcc, 0xc3, 0x17, 0xb9, 0xd3, 0x2a, 0x72, 0x07, + 0xcd, 0x63, 0xb4, 0xa6, 0xe2, 0x6f, 0xd0, 0xa6, 0x4a, 0x80, 0x0f, 0xda, 0x86, 0x7e, 0x97, 0xac, + 0xeb, 0x16, 0xa9, 0x52, 0x1a, 0x27, 0xc0, 0xbd, 0xb7, 0x2a, 0xe4, 0x66, 0xb9, 0xa2, 0x06, 0x80, + 0x1f, 0xa1, 0x2d, 0xa5, 0x99, 0xce, 0xd4, 0x60, 0xc3, 0xa0, 0x3e, 0xba, 0x1a, 0x65, 0xe4, 0xde, + 0xdb, 0x15, 0x6c, 0x6b, 0xba, 0xa6, 0x15, 0x66, 0xf4, 0x97, 0x85, 0xfa, 0x95, 0xf2, 0x48, 0x28, + 0x8d, 0x9f, 0xac, 0xd4, 0x82, 0xbc, 0x5e, 0x2d, 0x4a, 0xb7, 0xa9, 0xc4, 0x76, 0x75, 0x52, 0x6f, + 0x16, 0x59, 0xa8, 0xc3, 0x43, 0xd4, 0x11, 0x1a, 0x22, 0x35, 0x68, 0xef, 0x6e, 0xec, 0xf5, 0x0f, + 0x3e, 0xbc, 0x32, 0x7b, 0xef, 0x66, 0x45, 0xeb, 0x7c, 0x57, 0xfa, 0xe8, 0xd4, 0x3e, 0xfa, 0x73, + 0xb3, 0xce, 0xba, 0x2c, 0x0e, 0xfe, 0x14, 0xf5, 0xca, 0x3e, 0x07, 0x59, 0x08, 0x26, 0xeb, 0x1b, + 0xf3, 0x2c, 0xc6, 0x55, 0x9c, 0xd6, 0x0a, 0xfc, 0x13, 0xba, 0xad, 0x34, 0x4b, 0xb5, 0x88, 0x27, + 0x5f, 0x03, 0x0b, 0x42, 0x11, 0xc3, 0x18, 0xb8, 0x8c, 0x03, 0x65, 0x1a, 0xb4, 0xe1, 0xbd, 0x5f, + 0xe4, 0xce, 0xed, 0x71, 0xb3, 0x84, 0xae, 0xf3, 0xe2, 0x27, 0xe8, 0x16, 0x97, 0x31, 0xcf, 0xd2, + 0x14, 0x62, 0x7e, 0xfe, 0xa3, 0x0c, 0x05, 0x3f, 0x37, 0x6d, 0xba, 0xe1, 0x91, 0x2a, 0x9b, 0x5b, + 0x0f, 0x96, 0x05, 0xff, 0x35, 0x05, 0xe9, 0x2a, 0x08, 0xdf, 0x45, 0x5d, 0x95, 0xa9, 0x04, 0xe2, + 0x60, 0xb0, 0xb9, 0x6b, 0xed, 0xf5, 0xbc, 0x7e, 0x91, 0x3b, 0xdd, 0xf1, 0x34, 0x44, 0x67, 0x7b, + 0xf8, 0x29, 0xea, 0x3f, 0x93, 0xfe, 0x63, 0x88, 0x92, 0x90, 0x69, 0x18, 0x74, 0x4c, 0x0b, 0x3f, + 0x5e, 0x5f, 0xe7, 0xc3, 0xb9, 0xd8, 0x0c, 0xdd, 0xbb, 0x55, 0xa6, 0xfd, 0x85, 0x0d, 0xba, 0x88, + 0xc4, 0xbf, 0xa2, 0xa1, 0xca, 0x38, 0x07, 0xa5, 0x8e, 0xb3, 0xf0, 0x50, 0xfa, 0xea, 0x5b, 0xa1, + 0xb4, 0x4c, 0xcf, 0x8f, 0x44, 0x24, 0xf4, 0x60, 0x6b, 0xd7, 0xda, 0xeb, 0x78, 0x76, 0x91, 0x3b, + 0xc3, 0xf1, 0x5a, 0x15, 0x7d, 0x05, 0x01, 0x53, 0xb4, 0x73, 0xcc, 0x44, 0x08, 0xc1, 0x0a, 0xbb, + 0x6b, 0xd8, 0xc3, 0x22, 0x77, 0x76, 0x1e, 0x36, 0x2a, 0xe8, 0x1a, 0xe7, 0xe8, 0xef, 0x36, 0xba, + 0xf9, 0xd2, 0x7d, 0xc0, 0xdf, 0xa3, 0x2d, 0xc6, 0xb5, 0x38, 0x2b, 0xe7, 0xa5, 0x1c, 0xc5, 0x3b, + 0x8b, 0x25, 0x2a, 0xdf, 0xb4, 0xf9, 0xfd, 0xa6, 0x70, 0x0c, 0x65, 0x27, 0x60, 0x7e, 0x89, 0xee, + 0x1b, 0x2b, 0xad, 0x10, 0x38, 0x44, 0xdb, 0x21, 0x53, 0x7a, 0x36, 0x6a, 0x8f, 0x45, 0x04, 0xa6, + 0x49, 0xfd, 0x83, 0x4f, 0x5e, 0xef, 0xf2, 0x94, 0x0e, 0xef, 0xbd, 0x22, 0x77, 0xb6, 0x8f, 0x96, + 0x38, 0x74, 0x85, 0x8c, 0x53, 0x84, 0x4d, 0xac, 0x2e, 0xa1, 0x39, 0xaf, 0xf3, 0xc6, 0xe7, 0xed, + 0x14, 0xb9, 0x83, 0x8f, 0x56, 0x48, 0xb4, 0x81, 0x3e, 0xba, 0xb0, 0xd0, 0xe2, 0x44, 0x5c, 0xc3, + 0x93, 0xf9, 0x33, 0xea, 0xe9, 0xd9, 0x14, 0xb7, 0xdf, 0x74, 0x8a, 0xeb, 0xdb, 0x5f, 0x8f, 0x70, + 0x0d, 0x2b, 0x5f, 0xbc, 0x77, 0x96, 0xf4, 0xd7, 0xf0, 0x39, 0x5f, 0xbd, 0xf4, 0x0f, 0xf0, 0x41, + 0xd3, 0xa7, 0x90, 0x57, 0x3c, 0xfc, 0xde, 0xbd, 0x8b, 0x4b, 0xbb, 0xf5, 0xfc, 0xd2, 0x6e, 0xbd, + 0xb8, 0xb4, 0x5b, 0xbf, 0x15, 0xb6, 0x75, 0x51, 0xd8, 0xd6, 0xf3, 0xc2, 0xb6, 0x5e, 0x14, 0xb6, + 0xf5, 0x4f, 0x61, 0x5b, 0x7f, 0xfc, 0x6b, 0xb7, 0x7e, 0xe9, 0x56, 0x05, 0xf9, 0x3f, 0x00, 0x00, + 0xff, 0xff, 0xe9, 0xe0, 0x40, 0x92, 0x53, 0x08, 0x00, 0x00, } func (m *CronJob) Marshal() (dAtA []byte, err error) { @@ -467,6 +468,18 @@ func (m *CronJobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.LastSuccessfulTime != nil { + { + size, err := m.LastSuccessfulTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } if m.LastScheduleTime != nil { { size, err := m.LastScheduleTime.MarshalToSizedBuffer(dAtA[:i]) @@ -668,6 +681,10 @@ func (m *CronJobStatus) Size() (n int) { l = m.LastScheduleTime.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.LastSuccessfulTime != nil { + l = m.LastSuccessfulTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -759,6 +776,7 @@ func (this *CronJobStatus) String() string { s := strings.Join([]string{`&CronJobStatus{`, `Active:` + repeatedStringForActive + `,`, `LastScheduleTime:` + strings.Replace(fmt.Sprintf("%v", this.LastScheduleTime), "Time", "v1.Time", 1) + `,`, + `LastSuccessfulTime:` + strings.Replace(fmt.Sprintf("%v", this.LastSuccessfulTime), "Time", "v1.Time", 1) + `,`, `}`, }, "") return s @@ -927,10 +945,7 @@ func (m *CronJob) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1047,10 +1062,7 @@ func (m *CronJobList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1278,10 +1290,7 @@ func (m *CronJobSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1395,16 +1404,49 @@ func (m *CronJobStatus) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastSuccessfulTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastSuccessfulTime == nil { + m.LastSuccessfulTime = &v1.Time{} + } + if err := m.LastSuccessfulTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1520,10 +1562,7 @@ func (m *JobTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1639,10 +1678,7 @@ func (m *JobTemplateSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/batch/v1beta1/generated.proto b/vendor/k8s.io/api/batch/v1beta1/generated.proto index 4dab09a52c..b4f998c1a4 100644 --- a/vendor/k8s.io/api/batch/v1beta1/generated.proto +++ b/vendor/k8s.io/api/batch/v1beta1/generated.proto @@ -102,11 +102,16 @@ message CronJobSpec { message CronJobStatus { // A list of pointers to currently running jobs. // +optional + // +listType=atomic repeated k8s.io.api.core.v1.ObjectReference active = 1; // Information when was the last time the job was successfully scheduled. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScheduleTime = 4; + + // Information when was the last time the job successfully completed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastSuccessfulTime = 5; } // JobTemplate describes a template for creating copies of a predefined pod. diff --git a/vendor/k8s.io/api/batch/v1beta1/types.go b/vendor/k8s.io/api/batch/v1beta1/types.go index 6f49cc2a3f..cd9af7a9e7 100644 --- a/vendor/k8s.io/api/batch/v1beta1/types.go +++ b/vendor/k8s.io/api/batch/v1beta1/types.go @@ -56,7 +56,9 @@ type JobTemplateSpec struct { // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:prerelease-lifecycle-gen:introduced=1.8 -// +k8s:prerelease-lifecycle-gen:deprecated=1.22 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:removed=1.25 +// +k8s:prerelease-lifecycle-gen:replacement=batch,v1,CronJob // CronJob represents the configuration of a single cron job. type CronJob struct { @@ -79,7 +81,9 @@ type CronJob struct { // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:prerelease-lifecycle-gen:introduced=1.8 -// +k8s:prerelease-lifecycle-gen:deprecated=1.22 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:removed=1.25 +// +k8s:prerelease-lifecycle-gen:replacement=batch,v1,CronJobList // CronJobList is a collection of cron jobs. type CronJobList struct { @@ -156,9 +160,14 @@ const ( type CronJobStatus struct { // A list of pointers to currently running jobs. // +optional + // +listType=atomic Active []v1.ObjectReference `json:"active,omitempty" protobuf:"bytes,1,rep,name=active"` // Information when was the last time the job was successfully scheduled. // +optional LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty" protobuf:"bytes,4,opt,name=lastScheduleTime"` + + // Information when was the last time the job successfully completed. + // +optional + LastSuccessfulTime *metav1.Time `json:"lastSuccessfulTime,omitempty" protobuf:"bytes,5,opt,name=lastSuccessfulTime"` } diff --git a/vendor/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go index ecc9144460..9973898122 100644 --- a/vendor/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go @@ -64,9 +64,10 @@ func (CronJobSpec) SwaggerDoc() map[string]string { } var map_CronJobStatus = map[string]string{ - "": "CronJobStatus represents the current state of a cron job.", - "active": "A list of pointers to currently running jobs.", - "lastScheduleTime": "Information when was the last time the job was successfully scheduled.", + "": "CronJobStatus represents the current state of a cron job.", + "active": "A list of pointers to currently running jobs.", + "lastScheduleTime": "Information when was the last time the job was successfully scheduled.", + "lastSuccessfulTime": "Information when was the last time the job successfully completed.", } func (CronJobStatus) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go index 7c9dcb7427..77244485ba 100644 --- a/vendor/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go @@ -135,6 +135,10 @@ func (in *CronJobStatus) DeepCopyInto(out *CronJobStatus) { in, out := &in.LastScheduleTime, &out.LastScheduleTime *out = (*in).DeepCopy() } + if in.LastSuccessfulTime != nil { + in, out := &in.LastSuccessfulTime, &out.LastSuccessfulTime + *out = (*in).DeepCopy() + } return } diff --git a/vendor/k8s.io/api/batch/v1beta1/zz_generated.prerelease-lifecycle.go b/vendor/k8s.io/api/batch/v1beta1/zz_generated.prerelease-lifecycle.go index 63bae5f1ea..5379f896c1 100644 --- a/vendor/k8s.io/api/batch/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/vendor/k8s.io/api/batch/v1beta1/zz_generated.prerelease-lifecycle.go @@ -20,6 +20,10 @@ limitations under the License. package v1beta1 +import ( + schema "k8s.io/apimachinery/pkg/runtime/schema" +) + // APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. func (in *CronJob) APILifecycleIntroduced() (major, minor int) { @@ -29,7 +33,13 @@ func (in *CronJob) APILifecycleIntroduced() (major, minor int) { // APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. func (in *CronJob) APILifecycleDeprecated() (major, minor int) { - return 1, 22 + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *CronJob) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "batch", Version: "v1", Kind: "CronJob"} } // APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. @@ -47,7 +57,13 @@ func (in *CronJobList) APILifecycleIntroduced() (major, minor int) { // APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. func (in *CronJobList) APILifecycleDeprecated() (major, minor int) { - return 1, 22 + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *CronJobList) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "batch", Version: "v1", Kind: "CronJobList"} } // APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. diff --git a/vendor/k8s.io/api/batch/v2alpha1/doc.go b/vendor/k8s.io/api/batch/v2alpha1/doc.go deleted file mode 100644 index 3044b0c629..0000000000 --- a/vendor/k8s.io/api/batch/v2alpha1/doc.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2016 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. -*/ - -// +k8s:deepcopy-gen=package -// +k8s:protobuf-gen=package -// +k8s:openapi-gen=true - -package v2alpha1 // import "k8s.io/api/batch/v2alpha1" diff --git a/vendor/k8s.io/api/batch/v2alpha1/generated.pb.go b/vendor/k8s.io/api/batch/v2alpha1/generated.pb.go deleted file mode 100644 index 3e58dbb92a..0000000000 --- a/vendor/k8s.io/api/batch/v2alpha1/generated.pb.go +++ /dev/null @@ -1,1743 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: k8s.io/kubernetes/vendor/k8s.io/api/batch/v2alpha1/generated.proto - -package v2alpha1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - v11 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *CronJob) Reset() { *m = CronJob{} } -func (*CronJob) ProtoMessage() {} -func (*CronJob) Descriptor() ([]byte, []int) { - return fileDescriptor_5495a0550fe29c46, []int{0} -} -func (m *CronJob) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CronJob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *CronJob) XXX_Merge(src proto.Message) { - xxx_messageInfo_CronJob.Merge(m, src) -} -func (m *CronJob) XXX_Size() int { - return m.Size() -} -func (m *CronJob) XXX_DiscardUnknown() { - xxx_messageInfo_CronJob.DiscardUnknown(m) -} - -var xxx_messageInfo_CronJob proto.InternalMessageInfo - -func (m *CronJobList) Reset() { *m = CronJobList{} } -func (*CronJobList) ProtoMessage() {} -func (*CronJobList) Descriptor() ([]byte, []int) { - return fileDescriptor_5495a0550fe29c46, []int{1} -} -func (m *CronJobList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CronJobList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *CronJobList) XXX_Merge(src proto.Message) { - xxx_messageInfo_CronJobList.Merge(m, src) -} -func (m *CronJobList) XXX_Size() int { - return m.Size() -} -func (m *CronJobList) XXX_DiscardUnknown() { - xxx_messageInfo_CronJobList.DiscardUnknown(m) -} - -var xxx_messageInfo_CronJobList proto.InternalMessageInfo - -func (m *CronJobSpec) Reset() { *m = CronJobSpec{} } -func (*CronJobSpec) ProtoMessage() {} -func (*CronJobSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_5495a0550fe29c46, []int{2} -} -func (m *CronJobSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CronJobSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *CronJobSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_CronJobSpec.Merge(m, src) -} -func (m *CronJobSpec) XXX_Size() int { - return m.Size() -} -func (m *CronJobSpec) XXX_DiscardUnknown() { - xxx_messageInfo_CronJobSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_CronJobSpec proto.InternalMessageInfo - -func (m *CronJobStatus) Reset() { *m = CronJobStatus{} } -func (*CronJobStatus) ProtoMessage() {} -func (*CronJobStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_5495a0550fe29c46, []int{3} -} -func (m *CronJobStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CronJobStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *CronJobStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_CronJobStatus.Merge(m, src) -} -func (m *CronJobStatus) XXX_Size() int { - return m.Size() -} -func (m *CronJobStatus) XXX_DiscardUnknown() { - xxx_messageInfo_CronJobStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_CronJobStatus proto.InternalMessageInfo - -func (m *JobTemplate) Reset() { *m = JobTemplate{} } -func (*JobTemplate) ProtoMessage() {} -func (*JobTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_5495a0550fe29c46, []int{4} -} -func (m *JobTemplate) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *JobTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *JobTemplate) XXX_Merge(src proto.Message) { - xxx_messageInfo_JobTemplate.Merge(m, src) -} -func (m *JobTemplate) XXX_Size() int { - return m.Size() -} -func (m *JobTemplate) XXX_DiscardUnknown() { - xxx_messageInfo_JobTemplate.DiscardUnknown(m) -} - -var xxx_messageInfo_JobTemplate proto.InternalMessageInfo - -func (m *JobTemplateSpec) Reset() { *m = JobTemplateSpec{} } -func (*JobTemplateSpec) ProtoMessage() {} -func (*JobTemplateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_5495a0550fe29c46, []int{5} -} -func (m *JobTemplateSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *JobTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *JobTemplateSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_JobTemplateSpec.Merge(m, src) -} -func (m *JobTemplateSpec) XXX_Size() int { - return m.Size() -} -func (m *JobTemplateSpec) XXX_DiscardUnknown() { - xxx_messageInfo_JobTemplateSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_JobTemplateSpec proto.InternalMessageInfo - -func init() { - proto.RegisterType((*CronJob)(nil), "k8s.io.api.batch.v2alpha1.CronJob") - proto.RegisterType((*CronJobList)(nil), "k8s.io.api.batch.v2alpha1.CronJobList") - proto.RegisterType((*CronJobSpec)(nil), "k8s.io.api.batch.v2alpha1.CronJobSpec") - proto.RegisterType((*CronJobStatus)(nil), "k8s.io.api.batch.v2alpha1.CronJobStatus") - proto.RegisterType((*JobTemplate)(nil), "k8s.io.api.batch.v2alpha1.JobTemplate") - proto.RegisterType((*JobTemplateSpec)(nil), "k8s.io.api.batch.v2alpha1.JobTemplateSpec") -} - -func init() { - proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/batch/v2alpha1/generated.proto", fileDescriptor_5495a0550fe29c46) -} - -var fileDescriptor_5495a0550fe29c46 = []byte{ - // 774 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x94, 0x4d, 0x6f, 0xdb, 0x36, - 0x18, 0xc7, 0x2d, 0xc7, 0x6f, 0xa1, 0x97, 0x2d, 0xd1, 0x86, 0xc4, 0xf3, 0x06, 0xd9, 0x50, 0xb0, - 0xc1, 0x18, 0x36, 0x6a, 0x09, 0x86, 0x61, 0xa7, 0x01, 0x53, 0x86, 0x36, 0x4d, 0x53, 0x34, 0x90, - 0x53, 0xa0, 0x28, 0x82, 0xa2, 0x14, 0x45, 0xdb, 0x8c, 0x25, 0x51, 0x10, 0x29, 0x03, 0xbe, 0xf5, - 0xd6, 0x6b, 0x3f, 0x49, 0x2f, 0xed, 0x87, 0x48, 0x7b, 0xca, 0x31, 0x27, 0xa3, 0x51, 0xbf, 0x45, - 0x4f, 0x85, 0x68, 0xf9, 0x25, 0x7e, 0x49, 0xd2, 0x4b, 0x6e, 0xe2, 0xa3, 0xff, 0xff, 0xc7, 0x87, - 0xcf, 0xf3, 0x90, 0xc0, 0xec, 0xfe, 0xc3, 0x21, 0x65, 0x46, 0x37, 0xb2, 0x49, 0xe8, 0x13, 0x41, - 0xb8, 0xd1, 0x23, 0xbe, 0xc3, 0x42, 0x23, 0xfd, 0x81, 0x02, 0x6a, 0xd8, 0x48, 0xe0, 0x8e, 0xd1, - 0xdb, 0x45, 0x6e, 0xd0, 0x41, 0x3b, 0x46, 0x9b, 0xf8, 0x24, 0x44, 0x82, 0x38, 0x30, 0x08, 0x99, - 0x60, 0xea, 0x8f, 0x43, 0x29, 0x44, 0x01, 0x85, 0x52, 0x0a, 0x47, 0xd2, 0xea, 0x1f, 0x6d, 0x2a, - 0x3a, 0x91, 0x0d, 0x31, 0xf3, 0x8c, 0x36, 0x6b, 0x33, 0x43, 0x3a, 0xec, 0xa8, 0x25, 0x57, 0x72, - 0x21, 0xbf, 0x86, 0xa4, 0xea, 0xf6, 0xfc, 0xa6, 0x73, 0xdb, 0x55, 0xf5, 0x29, 0x11, 0x66, 0x21, - 0x59, 0xa4, 0xf9, 0x6b, 0xa2, 0xf1, 0x10, 0xee, 0x50, 0x9f, 0x84, 0x7d, 0x23, 0xe8, 0xb6, 0x93, - 0x00, 0x37, 0x3c, 0x22, 0xd0, 0x22, 0x97, 0xb1, 0xcc, 0x15, 0x46, 0xbe, 0xa0, 0x1e, 0x99, 0x33, - 0xfc, 0x7d, 0x93, 0x81, 0xe3, 0x0e, 0xf1, 0xd0, 0xac, 0x4f, 0x7f, 0x95, 0x05, 0xc5, 0xbd, 0x90, - 0xf9, 0x07, 0xcc, 0x56, 0x5f, 0x80, 0x52, 0x92, 0x8f, 0x83, 0x04, 0xaa, 0x28, 0x75, 0xa5, 0x51, - 0xde, 0xfd, 0x13, 0x4e, 0x0a, 0x3a, 0xc6, 0xc2, 0xa0, 0xdb, 0x4e, 0x02, 0x1c, 0x26, 0x6a, 0xd8, - 0xdb, 0x81, 0x8f, 0xed, 0x53, 0x82, 0xc5, 0x23, 0x22, 0x90, 0xa9, 0x9e, 0x0d, 0x6a, 0x99, 0x78, - 0x50, 0x03, 0x93, 0x98, 0x35, 0xa6, 0xaa, 0xfb, 0x20, 0xc7, 0x03, 0x82, 0x2b, 0x59, 0x49, 0xff, - 0x15, 0x2e, 0x6d, 0x17, 0x4c, 0x73, 0x6a, 0x06, 0x04, 0x9b, 0xdf, 0xa4, 0xcc, 0x5c, 0xb2, 0xb2, - 0x24, 0x41, 0x3d, 0x02, 0x05, 0x2e, 0x90, 0x88, 0x78, 0x65, 0x45, 0xb2, 0x1a, 0xb7, 0x60, 0x49, - 0xbd, 0xf9, 0x6d, 0x4a, 0x2b, 0x0c, 0xd7, 0x56, 0xca, 0xd1, 0xdf, 0x29, 0xa0, 0x9c, 0x2a, 0x0f, - 0x29, 0x17, 0xea, 0xc9, 0x5c, 0x35, 0xe0, 0xed, 0xaa, 0x91, 0xb8, 0x65, 0x2d, 0xd6, 0xd3, 0x9d, - 0x4a, 0xa3, 0xc8, 0x54, 0x25, 0xee, 0x83, 0x3c, 0x15, 0xc4, 0xe3, 0x95, 0x6c, 0x7d, 0xa5, 0x51, - 0xde, 0xd5, 0x6f, 0x4e, 0xdf, 0x5c, 0x4b, 0x71, 0xf9, 0x07, 0x89, 0xd1, 0x1a, 0xfa, 0xf5, 0x37, - 0xb9, 0x71, 0xda, 0x49, 0x79, 0xd4, 0xdf, 0x41, 0x29, 0x69, 0xb5, 0x13, 0xb9, 0x44, 0xa6, 0xbd, - 0x3a, 0x49, 0xa3, 0x99, 0xc6, 0xad, 0xb1, 0x42, 0x7d, 0x02, 0xb6, 0xb8, 0x40, 0xa1, 0xa0, 0x7e, - 0xfb, 0x7f, 0x82, 0x1c, 0x97, 0xfa, 0xa4, 0x49, 0x30, 0xf3, 0x1d, 0x2e, 0x7b, 0xb4, 0x62, 0xfe, - 0x14, 0x0f, 0x6a, 0x5b, 0xcd, 0xc5, 0x12, 0x6b, 0x99, 0x57, 0x3d, 0x01, 0x1b, 0x98, 0xf9, 0x38, - 0x0a, 0x43, 0xe2, 0xe3, 0xfe, 0x11, 0x73, 0x29, 0xee, 0xcb, 0x46, 0xad, 0x9a, 0x30, 0xcd, 0x66, - 0x63, 0x6f, 0x56, 0xf0, 0x79, 0x51, 0xd0, 0x9a, 0x07, 0xa9, 0xbf, 0x80, 0x22, 0x8f, 0x78, 0x40, - 0x7c, 0xa7, 0x92, 0xab, 0x2b, 0x8d, 0x92, 0x59, 0x8e, 0x07, 0xb5, 0x62, 0x73, 0x18, 0xb2, 0x46, - 0xff, 0x54, 0x04, 0xca, 0xa7, 0xcc, 0x3e, 0x26, 0x5e, 0xe0, 0x22, 0x41, 0x2a, 0x79, 0xd9, 0xc3, - 0xdf, 0xae, 0x29, 0xf4, 0xc1, 0x44, 0x2d, 0xe7, 0xee, 0xfb, 0x34, 0xd5, 0xf2, 0xd4, 0x0f, 0x6b, - 0x9a, 0xa9, 0x3e, 0x07, 0x55, 0x1e, 0x61, 0x4c, 0x38, 0x6f, 0x45, 0xee, 0x01, 0xb3, 0xf9, 0x3e, - 0xe5, 0x82, 0x85, 0xfd, 0x43, 0xea, 0x51, 0x51, 0x29, 0xd4, 0x95, 0x46, 0xde, 0xd4, 0xe2, 0x41, - 0xad, 0xda, 0x5c, 0xaa, 0xb2, 0xae, 0x21, 0xa8, 0x16, 0xd8, 0x6c, 0x21, 0xea, 0x12, 0x67, 0x8e, - 0x5d, 0x94, 0xec, 0x6a, 0x3c, 0xa8, 0x6d, 0xde, 0x5b, 0xa8, 0xb0, 0x96, 0x38, 0xf5, 0x0f, 0x0a, - 0x58, 0xbb, 0x72, 0x23, 0xd4, 0x87, 0xa0, 0x80, 0xb0, 0xa0, 0xbd, 0x64, 0x60, 0x92, 0x61, 0xdc, - 0x9e, 0xae, 0x51, 0xf2, 0xae, 0x4d, 0xee, 0xb8, 0x45, 0x5a, 0x24, 0x69, 0x05, 0x99, 0x5c, 0xa3, - 0xff, 0xa4, 0xd5, 0x4a, 0x11, 0xaa, 0x0b, 0xd6, 0x5d, 0xc4, 0xc5, 0x68, 0xd6, 0x8e, 0xa9, 0x47, - 0x64, 0x97, 0xae, 0x96, 0xfe, 0x9a, 0xeb, 0x93, 0x38, 0xcc, 0x1f, 0xe2, 0x41, 0x6d, 0xfd, 0x70, - 0x86, 0x63, 0xcd, 0x91, 0xf5, 0xf7, 0x0a, 0x98, 0xee, 0xce, 0x1d, 0x3c, 0x61, 0x4f, 0x41, 0x49, - 0x8c, 0x46, 0x2a, 0xfb, 0xd5, 0x23, 0x35, 0xbe, 0x8b, 0xe3, 0x79, 0x1a, 0xd3, 0xf4, 0xb7, 0x0a, - 0xf8, 0x6e, 0x46, 0x7f, 0x07, 0xe7, 0xf9, 0xf7, 0xca, 0x93, 0xfc, 0xf3, 0x82, 0xb3, 0xc8, 0x53, - 0x2c, 0x7b, 0x88, 0x4d, 0x78, 0x76, 0xa9, 0x65, 0xce, 0x2f, 0xb5, 0xcc, 0xc5, 0xa5, 0x96, 0x79, - 0x19, 0x6b, 0xca, 0x59, 0xac, 0x29, 0xe7, 0xb1, 0xa6, 0x5c, 0xc4, 0x9a, 0xf2, 0x31, 0xd6, 0x94, - 0xd7, 0x9f, 0xb4, 0xcc, 0xb3, 0xd2, 0xa8, 0x22, 0x5f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x20, 0x1c, - 0xcf, 0x94, 0xe7, 0x07, 0x00, 0x00, -} - -func (m *CronJob) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CronJob) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CronJob) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *CronJobList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CronJobList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CronJobList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *CronJobSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CronJobSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CronJobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.FailedJobsHistoryLimit != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.FailedJobsHistoryLimit)) - i-- - dAtA[i] = 0x38 - } - if m.SuccessfulJobsHistoryLimit != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.SuccessfulJobsHistoryLimit)) - i-- - dAtA[i] = 0x30 - } - { - size, err := m.JobTemplate.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - if m.Suspend != nil { - i-- - if *m.Suspend { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x20 - } - i -= len(m.ConcurrencyPolicy) - copy(dAtA[i:], m.ConcurrencyPolicy) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ConcurrencyPolicy))) - i-- - dAtA[i] = 0x1a - if m.StartingDeadlineSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.StartingDeadlineSeconds)) - i-- - dAtA[i] = 0x10 - } - i -= len(m.Schedule) - copy(dAtA[i:], m.Schedule) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Schedule))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *CronJobStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CronJobStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CronJobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.LastScheduleTime != nil { - { - size, err := m.LastScheduleTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if len(m.Active) > 0 { - for iNdEx := len(m.Active) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Active[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *JobTemplate) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *JobTemplate) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *JobTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *JobTemplateSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *JobTemplateSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *JobTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *CronJob) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *CronJobList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *CronJobSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Schedule) - n += 1 + l + sovGenerated(uint64(l)) - if m.StartingDeadlineSeconds != nil { - n += 1 + sovGenerated(uint64(*m.StartingDeadlineSeconds)) - } - l = len(m.ConcurrencyPolicy) - n += 1 + l + sovGenerated(uint64(l)) - if m.Suspend != nil { - n += 2 - } - l = m.JobTemplate.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.SuccessfulJobsHistoryLimit != nil { - n += 1 + sovGenerated(uint64(*m.SuccessfulJobsHistoryLimit)) - } - if m.FailedJobsHistoryLimit != nil { - n += 1 + sovGenerated(uint64(*m.FailedJobsHistoryLimit)) - } - return n -} - -func (m *CronJobStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Active) > 0 { - for _, e := range m.Active { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.LastScheduleTime != nil { - l = m.LastScheduleTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *JobTemplate) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *JobTemplateSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *CronJob) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CronJob{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "CronJobSpec", "CronJobSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "CronJobStatus", "CronJobStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *CronJobList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]CronJob{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "CronJob", "CronJob", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&CronJobList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *CronJobSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CronJobSpec{`, - `Schedule:` + fmt.Sprintf("%v", this.Schedule) + `,`, - `StartingDeadlineSeconds:` + valueToStringGenerated(this.StartingDeadlineSeconds) + `,`, - `ConcurrencyPolicy:` + fmt.Sprintf("%v", this.ConcurrencyPolicy) + `,`, - `Suspend:` + valueToStringGenerated(this.Suspend) + `,`, - `JobTemplate:` + strings.Replace(strings.Replace(this.JobTemplate.String(), "JobTemplateSpec", "JobTemplateSpec", 1), `&`, ``, 1) + `,`, - `SuccessfulJobsHistoryLimit:` + valueToStringGenerated(this.SuccessfulJobsHistoryLimit) + `,`, - `FailedJobsHistoryLimit:` + valueToStringGenerated(this.FailedJobsHistoryLimit) + `,`, - `}`, - }, "") - return s -} -func (this *CronJobStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForActive := "[]ObjectReference{" - for _, f := range this.Active { - repeatedStringForActive += fmt.Sprintf("%v", f) + "," - } - repeatedStringForActive += "}" - s := strings.Join([]string{`&CronJobStatus{`, - `Active:` + repeatedStringForActive + `,`, - `LastScheduleTime:` + strings.Replace(fmt.Sprintf("%v", this.LastScheduleTime), "Time", "v1.Time", 1) + `,`, - `}`, - }, "") - return s -} -func (this *JobTemplate) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&JobTemplate{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "JobTemplateSpec", "JobTemplateSpec", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *JobTemplateSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&JobTemplateSpec{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Spec), "JobSpec", "v12.JobSpec", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *CronJob) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CronJob: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CronJob: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CronJobList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CronJobList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CronJobList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, CronJob{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CronJobSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CronJobSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CronJobSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Schedule", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Schedule = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field StartingDeadlineSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.StartingDeadlineSeconds = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConcurrencyPolicy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ConcurrencyPolicy = ConcurrencyPolicy(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Suspend", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Suspend = &b - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobTemplate", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.JobTemplate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SuccessfulJobsHistoryLimit", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.SuccessfulJobsHistoryLimit = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FailedJobsHistoryLimit", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.FailedJobsHistoryLimit = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CronJobStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CronJobStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CronJobStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Active = append(m.Active, v11.ObjectReference{}) - if err := m.Active[len(m.Active)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastScheduleTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.LastScheduleTime == nil { - m.LastScheduleTime = &v1.Time{} - } - if err := m.LastScheduleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *JobTemplate) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: JobTemplate: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: JobTemplate: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *JobTemplateSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: JobTemplateSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: JobTemplateSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/k8s.io/api/batch/v2alpha1/generated.proto b/vendor/k8s.io/api/batch/v2alpha1/generated.proto deleted file mode 100644 index f538d50cd9..0000000000 --- a/vendor/k8s.io/api/batch/v2alpha1/generated.proto +++ /dev/null @@ -1,135 +0,0 @@ -/* -Copyright 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. -*/ - - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = "proto2"; - -package k8s.io.api.batch.v2alpha1; - -import "k8s.io/api/batch/v1/generated.proto"; -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v2alpha1"; - -// CronJob represents the configuration of a single cron job. -message CronJob { - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Specification of the desired behavior of a cron job, including the schedule. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - optional CronJobSpec spec = 2; - - // Current status of a cron job. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - optional CronJobStatus status = 3; -} - -// CronJobList is a collection of cron jobs. -message CronJobList { - // Standard list metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // items is the list of CronJobs. - repeated CronJob items = 2; -} - -// CronJobSpec describes how the job execution will look like and when it will actually run. -message CronJobSpec { - // The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. - optional string schedule = 1; - - // Optional deadline in seconds for starting the job if it misses scheduled - // time for any reason. Missed jobs executions will be counted as failed ones. - // +optional - optional int64 startingDeadlineSeconds = 2; - - // Specifies how to treat concurrent executions of a Job. - // Valid values are: - // - "Allow" (default): allows CronJobs to run concurrently; - // - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - // - "Replace": cancels currently running job and replaces it with a new one - // +optional - optional string concurrencyPolicy = 3; - - // This flag tells the controller to suspend subsequent executions, it does - // not apply to already started executions. Defaults to false. - // +optional - optional bool suspend = 4; - - // Specifies the job that will be created when executing a CronJob. - optional JobTemplateSpec jobTemplate = 5; - - // The number of successful finished jobs to retain. - // This is a pointer to distinguish between explicit zero and not specified. - // +optional - optional int32 successfulJobsHistoryLimit = 6; - - // The number of failed finished jobs to retain. - // This is a pointer to distinguish between explicit zero and not specified. - // +optional - optional int32 failedJobsHistoryLimit = 7; -} - -// CronJobStatus represents the current state of a cron job. -message CronJobStatus { - // A list of pointers to currently running jobs. - // +optional - repeated k8s.io.api.core.v1.ObjectReference active = 1; - - // Information when was the last time the job was successfully scheduled. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScheduleTime = 4; -} - -// JobTemplate describes a template for creating copies of a predefined pod. -message JobTemplate { - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Defines jobs that will be created from this template. - // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - optional JobTemplateSpec template = 2; -} - -// JobTemplateSpec describes the data a Job should have when created from a template -message JobTemplateSpec { - // Standard object's metadata of the jobs created from this template. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Specification of the desired behavior of the job. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - optional k8s.io.api.batch.v1.JobSpec spec = 2; -} - diff --git a/vendor/k8s.io/api/batch/v2alpha1/register.go b/vendor/k8s.io/api/batch/v2alpha1/register.go deleted file mode 100644 index ac7fa5087a..0000000000 --- a/vendor/k8s.io/api/batch/v2alpha1/register.go +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright 2016 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. -*/ - -package v2alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// GroupName is the group name use in this package -const GroupName = "batch" - -// SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v2alpha1"} - -// Resource takes an unqualified resource and returns a Group qualified GroupResource -func Resource(resource string) schema.GroupResource { - return SchemeGroupVersion.WithResource(resource).GroupResource() -} - -var ( - // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. - // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - localSchemeBuilder = &SchemeBuilder - AddToScheme = localSchemeBuilder.AddToScheme -) - -// Adds the list of known types to the given scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(SchemeGroupVersion, - &JobTemplate{}, - &CronJob{}, - &CronJobList{}, - ) - metav1.AddToGroupVersion(scheme, SchemeGroupVersion) - return nil -} diff --git a/vendor/k8s.io/api/batch/v2alpha1/types.go b/vendor/k8s.io/api/batch/v2alpha1/types.go deleted file mode 100644 index 465e614aec..0000000000 --- a/vendor/k8s.io/api/batch/v2alpha1/types.go +++ /dev/null @@ -1,156 +0,0 @@ -/* -Copyright 2016 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. -*/ - -package v2alpha1 - -import ( - batchv1 "k8s.io/api/batch/v1" - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// JobTemplate describes a template for creating copies of a predefined pod. -type JobTemplate struct { - metav1.TypeMeta `json:",inline"` - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Defines jobs that will be created from this template. - // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - Template JobTemplateSpec `json:"template,omitempty" protobuf:"bytes,2,opt,name=template"` -} - -// JobTemplateSpec describes the data a Job should have when created from a template -type JobTemplateSpec struct { - // Standard object's metadata of the jobs created from this template. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Specification of the desired behavior of the job. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - Spec batchv1.JobSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` -} - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// CronJob represents the configuration of a single cron job. -type CronJob struct { - metav1.TypeMeta `json:",inline"` - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Specification of the desired behavior of a cron job, including the schedule. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - Spec CronJobSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` - - // Current status of a cron job. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - Status CronJobStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// CronJobList is a collection of cron jobs. -type CronJobList struct { - metav1.TypeMeta `json:",inline"` - - // Standard list metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // items is the list of CronJobs. - Items []CronJob `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// CronJobSpec describes how the job execution will look like and when it will actually run. -type CronJobSpec struct { - - // The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. - Schedule string `json:"schedule" protobuf:"bytes,1,opt,name=schedule"` - - // Optional deadline in seconds for starting the job if it misses scheduled - // time for any reason. Missed jobs executions will be counted as failed ones. - // +optional - StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds,omitempty" protobuf:"varint,2,opt,name=startingDeadlineSeconds"` - - // Specifies how to treat concurrent executions of a Job. - // Valid values are: - // - "Allow" (default): allows CronJobs to run concurrently; - // - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - // - "Replace": cancels currently running job and replaces it with a new one - // +optional - ConcurrencyPolicy ConcurrencyPolicy `json:"concurrencyPolicy,omitempty" protobuf:"bytes,3,opt,name=concurrencyPolicy,casttype=ConcurrencyPolicy"` - - // This flag tells the controller to suspend subsequent executions, it does - // not apply to already started executions. Defaults to false. - // +optional - Suspend *bool `json:"suspend,omitempty" protobuf:"varint,4,opt,name=suspend"` - - // Specifies the job that will be created when executing a CronJob. - JobTemplate JobTemplateSpec `json:"jobTemplate" protobuf:"bytes,5,opt,name=jobTemplate"` - - // The number of successful finished jobs to retain. - // This is a pointer to distinguish between explicit zero and not specified. - // +optional - SuccessfulJobsHistoryLimit *int32 `json:"successfulJobsHistoryLimit,omitempty" protobuf:"varint,6,opt,name=successfulJobsHistoryLimit"` - - // The number of failed finished jobs to retain. - // This is a pointer to distinguish between explicit zero and not specified. - // +optional - FailedJobsHistoryLimit *int32 `json:"failedJobsHistoryLimit,omitempty" protobuf:"varint,7,opt,name=failedJobsHistoryLimit"` -} - -// ConcurrencyPolicy describes how the job will be handled. -// Only one of the following concurrent policies may be specified. -// If none of the following policies is specified, the default one -// is AllowConcurrent. -type ConcurrencyPolicy string - -const ( - // AllowConcurrent allows CronJobs to run concurrently. - AllowConcurrent ConcurrencyPolicy = "Allow" - - // ForbidConcurrent forbids concurrent runs, skipping next run if previous - // hasn't finished yet. - ForbidConcurrent ConcurrencyPolicy = "Forbid" - - // ReplaceConcurrent cancels currently running job and replaces it with a new one. - ReplaceConcurrent ConcurrencyPolicy = "Replace" -) - -// CronJobStatus represents the current state of a cron job. -type CronJobStatus struct { - // A list of pointers to currently running jobs. - // +optional - Active []v1.ObjectReference `json:"active,omitempty" protobuf:"bytes,1,rep,name=active"` - - // Information when was the last time the job was successfully scheduled. - // +optional - LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty" protobuf:"bytes,4,opt,name=lastScheduleTime"` -} diff --git a/vendor/k8s.io/api/batch/v2alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/batch/v2alpha1/types_swagger_doc_generated.go deleted file mode 100644 index bc80eca48f..0000000000 --- a/vendor/k8s.io/api/batch/v2alpha1/types_swagger_doc_generated.go +++ /dev/null @@ -1,96 +0,0 @@ -/* -Copyright 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. -*/ - -package v2alpha1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-generated-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. -var map_CronJob = map[string]string{ - "": "CronJob represents the configuration of a single cron job.", - "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - "spec": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - "status": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", -} - -func (CronJob) SwaggerDoc() map[string]string { - return map_CronJob -} - -var map_CronJobList = map[string]string{ - "": "CronJobList is a collection of cron jobs.", - "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - "items": "items is the list of CronJobs.", -} - -func (CronJobList) SwaggerDoc() map[string]string { - return map_CronJobList -} - -var map_CronJobSpec = map[string]string{ - "": "CronJobSpec describes how the job execution will look like and when it will actually run.", - "schedule": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", - "startingDeadlineSeconds": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - "concurrencyPolicy": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", - "suspend": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", - "jobTemplate": "Specifies the job that will be created when executing a CronJob.", - "successfulJobsHistoryLimit": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.", - "failedJobsHistoryLimit": "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.", -} - -func (CronJobSpec) SwaggerDoc() map[string]string { - return map_CronJobSpec -} - -var map_CronJobStatus = map[string]string{ - "": "CronJobStatus represents the current state of a cron job.", - "active": "A list of pointers to currently running jobs.", - "lastScheduleTime": "Information when was the last time the job was successfully scheduled.", -} - -func (CronJobStatus) SwaggerDoc() map[string]string { - return map_CronJobStatus -} - -var map_JobTemplate = map[string]string{ - "": "JobTemplate describes a template for creating copies of a predefined pod.", - "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - "template": "Defines jobs that will be created from this template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", -} - -func (JobTemplate) SwaggerDoc() map[string]string { - return map_JobTemplate -} - -var map_JobTemplateSpec = map[string]string{ - "": "JobTemplateSpec describes the data a Job should have when created from a template", - "metadata": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - "spec": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", -} - -func (JobTemplateSpec) SwaggerDoc() map[string]string { - return map_JobTemplateSpec -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/batch/v2alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/api/batch/v2alpha1/zz_generated.deepcopy.go deleted file mode 100644 index 1b03f6745c..0000000000 --- a/vendor/k8s.io/api/batch/v2alpha1/zz_generated.deepcopy.go +++ /dev/null @@ -1,194 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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. -*/ - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v2alpha1 - -import ( - v1 "k8s.io/api/core/v1" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CronJob) DeepCopyInto(out *CronJob) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJob. -func (in *CronJob) DeepCopy() *CronJob { - if in == nil { - return nil - } - out := new(CronJob) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *CronJob) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CronJobList) DeepCopyInto(out *CronJobList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]CronJob, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobList. -func (in *CronJobList) DeepCopy() *CronJobList { - if in == nil { - return nil - } - out := new(CronJobList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *CronJobList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CronJobSpec) DeepCopyInto(out *CronJobSpec) { - *out = *in - if in.StartingDeadlineSeconds != nil { - in, out := &in.StartingDeadlineSeconds, &out.StartingDeadlineSeconds - *out = new(int64) - **out = **in - } - if in.Suspend != nil { - in, out := &in.Suspend, &out.Suspend - *out = new(bool) - **out = **in - } - in.JobTemplate.DeepCopyInto(&out.JobTemplate) - if in.SuccessfulJobsHistoryLimit != nil { - in, out := &in.SuccessfulJobsHistoryLimit, &out.SuccessfulJobsHistoryLimit - *out = new(int32) - **out = **in - } - if in.FailedJobsHistoryLimit != nil { - in, out := &in.FailedJobsHistoryLimit, &out.FailedJobsHistoryLimit - *out = new(int32) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobSpec. -func (in *CronJobSpec) DeepCopy() *CronJobSpec { - if in == nil { - return nil - } - out := new(CronJobSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CronJobStatus) DeepCopyInto(out *CronJobStatus) { - *out = *in - if in.Active != nil { - in, out := &in.Active, &out.Active - *out = make([]v1.ObjectReference, len(*in)) - copy(*out, *in) - } - if in.LastScheduleTime != nil { - in, out := &in.LastScheduleTime, &out.LastScheduleTime - *out = (*in).DeepCopy() - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobStatus. -func (in *CronJobStatus) DeepCopy() *CronJobStatus { - if in == nil { - return nil - } - out := new(CronJobStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *JobTemplate) DeepCopyInto(out *JobTemplate) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Template.DeepCopyInto(&out.Template) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobTemplate. -func (in *JobTemplate) DeepCopy() *JobTemplate { - if in == nil { - return nil - } - out := new(JobTemplate) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *JobTemplate) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *JobTemplateSpec) DeepCopyInto(out *JobTemplateSpec) { - *out = *in - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobTemplateSpec. -func (in *JobTemplateSpec) DeepCopy() *JobTemplateSpec { - if in == nil { - return nil - } - out := new(JobTemplateSpec) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/k8s.io/api/certificates/v1/generated.pb.go b/vendor/k8s.io/api/certificates/v1/generated.pb.go index d2cf41a25a..fca7d21154 100644 --- a/vendor/k8s.io/api/certificates/v1/generated.pb.go +++ b/vendor/k8s.io/api/certificates/v1/generated.pb.go @@ -989,10 +989,7 @@ func (m *CertificateSigningRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1236,10 +1233,7 @@ func (m *CertificateSigningRequestCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1356,10 +1350,7 @@ func (m *CertificateSigningRequestList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1683,7 +1674,7 @@ func (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1732,10 +1723,7 @@ func (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1853,10 +1841,7 @@ func (m *CertificateSigningRequestStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1938,10 +1923,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/certificates/v1beta1/generated.pb.go b/vendor/k8s.io/api/certificates/v1beta1/generated.pb.go index 1729931b82..f21256f484 100644 --- a/vendor/k8s.io/api/certificates/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/certificates/v1beta1/generated.pb.go @@ -993,10 +993,7 @@ func (m *CertificateSigningRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1240,10 +1237,7 @@ func (m *CertificateSigningRequestCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1360,10 +1354,7 @@ func (m *CertificateSigningRequestList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1687,7 +1678,7 @@ func (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1737,10 +1728,7 @@ func (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1858,10 +1846,7 @@ func (m *CertificateSigningRequestStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1943,10 +1928,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/coordination/v1/generated.pb.go b/vendor/k8s.io/api/coordination/v1/generated.pb.go index 22c3d624e2..d5ed0f27c5 100644 --- a/vendor/k8s.io/api/coordination/v1/generated.pb.go +++ b/vendor/k8s.io/api/coordination/v1/generated.pb.go @@ -554,10 +554,7 @@ func (m *Lease) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -674,10 +671,7 @@ func (m *LeaseList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -872,10 +866,7 @@ func (m *LeaseSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/coordination/v1beta1/generated.pb.go b/vendor/k8s.io/api/coordination/v1beta1/generated.pb.go index 57a314cfd7..bcd00d4454 100644 --- a/vendor/k8s.io/api/coordination/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/coordination/v1beta1/generated.pb.go @@ -554,10 +554,7 @@ func (m *Lease) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -674,10 +671,7 @@ func (m *LeaseList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -872,10 +866,7 @@ func (m *LeaseSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/core/v1/annotation_key_constants.go b/vendor/k8s.io/api/core/v1/annotation_key_constants.go index d3ebf86283..22476b2bd9 100644 --- a/vendor/k8s.io/api/core/v1/annotation_key_constants.go +++ b/vendor/k8s.io/api/core/v1/annotation_key_constants.go @@ -123,9 +123,32 @@ const ( // https://github.com/kubernetes/community/blob/master/sig-scalability/slos/network_programming_latency.md EndpointsLastChangeTriggerTime = "endpoints.kubernetes.io/last-change-trigger-time" + // EndpointsOverCapacity will be set on an Endpoints resource when it + // exceeds the maximum capacity of 1000 addresses. Inititially the Endpoints + // controller will set this annotation with a value of "warning". In a + // future release, the controller may set this annotation with a value of + // "truncated" to indicate that any addresses exceeding the limit of 1000 + // have been truncated from the Endpoints resource. + EndpointsOverCapacity = "endpoints.kubernetes.io/over-capacity" + // MigratedPluginsAnnotationKey is the annotation key, set for CSINode objects, that is a comma-separated // list of in-tree plugins that will be serviced by the CSI backend on the Node represented by CSINode. // This annotation is used by the Attach Detach Controller to determine whether to use the in-tree or // CSI Backend for a volume plugin on a specific node. MigratedPluginsAnnotationKey = "storage.alpha.kubernetes.io/migrated-plugins" + + // PodDeletionCost can be used to set to an int32 that represent the cost of deleting + // a pod compared to other pods belonging to the same ReplicaSet. Pods with lower + // deletion cost are preferred to be deleted before pods with higher deletion cost. + // Note that this is honored on a best-effort basis, and so it does not offer guarantees on + // pod deletion order. + // The implicit deletion cost for pods that don't set the annotation is 0, negative values are permitted. + // + // This annotation is alpha-level and is only honored when PodDeletionCost feature is enabled. + PodDeletionCost = "controller.kubernetes.io/pod-deletion-cost" + + // AnnotationTopologyAwareHints can be used to enable or disable Topology + // Aware Hints for a Service. This may be set to "Auto" or "Disabled". Any + // other value is treated as "Disabled". + AnnotationTopologyAwareHints = "service.kubernetes.io/topology-aware-hints" ) diff --git a/vendor/k8s.io/api/core/v1/generated.pb.go b/vendor/k8s.io/api/core/v1/generated.pb.go index 5dcc5eb77a..286a82ecd6 100644 --- a/vendor/k8s.io/api/core/v1/generated.pb.go +++ b/vendor/k8s.io/api/core/v1/generated.pb.go @@ -6116,882 +6116,887 @@ func init() { } var fileDescriptor_83c10c24ec417dc9 = []byte{ - // 13999 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6b, 0x70, 0x5c, 0xd7, - 0x79, 0x98, 0xef, 0x2e, 0x5e, 0xfb, 0xe1, 0x7d, 0x40, 0x52, 0x20, 0x24, 0x12, 0xd4, 0x95, 0x4d, - 0x51, 0x96, 0x04, 0x9a, 0x7a, 0xd8, 0x8a, 0x64, 0x2b, 0x06, 0xb0, 0x00, 0xb9, 0x22, 0x01, 0xae, - 0xce, 0x82, 0xa4, 0xed, 0xc8, 0x1e, 0x5f, 0xec, 0x1e, 0x00, 0x57, 0xd8, 0xbd, 0x77, 0x75, 0xef, - 0x5d, 0x90, 0x50, 0x9d, 0x69, 0xea, 0x3c, 0x9d, 0x47, 0xc7, 0xd3, 0xc9, 0xf4, 0x91, 0x64, 0x32, - 0x9d, 0x34, 0x9d, 0xc4, 0x75, 0xdb, 0x69, 0x9a, 0x34, 0x49, 0xe3, 0xb4, 0x49, 0x9b, 0x3e, 0xd2, - 0xfe, 0x48, 0xd3, 0x4c, 0x1b, 0x67, 0x26, 0x53, 0x34, 0x61, 0x3a, 0xcd, 0xf8, 0x47, 0x93, 0xb4, - 0x49, 0x7f, 0x14, 0xcd, 0x34, 0x9d, 0xf3, 0xbc, 0xe7, 0xdc, 0xc7, 0xee, 0x82, 0x02, 0x61, 0xd9, - 0xa3, 0x7f, 0xbb, 0xe7, 0xfb, 0xce, 0x77, 0xce, 0x3d, 0xcf, 0xef, 0x7c, 0x4f, 0x78, 0x65, 0xf7, - 0xa5, 0x70, 0xc1, 0xf5, 0x2f, 0xef, 0x76, 0x36, 0x49, 0xe0, 0x91, 0x88, 0x84, 0x97, 0xf7, 0x88, - 0xd7, 0xf0, 0x83, 0xcb, 0x02, 0xe0, 0xb4, 0xdd, 0xcb, 0x75, 0x3f, 0x20, 0x97, 0xf7, 0xae, 0x5c, - 0xde, 0x26, 0x1e, 0x09, 0x9c, 0x88, 0x34, 0x16, 0xda, 0x81, 0x1f, 0xf9, 0x08, 0x71, 0x9c, 0x05, - 0xa7, 0xed, 0x2e, 0x50, 0x9c, 0x85, 0xbd, 0x2b, 0x73, 0xcf, 0x6e, 0xbb, 0xd1, 0x4e, 0x67, 0x73, - 0xa1, 0xee, 0xb7, 0x2e, 0x6f, 0xfb, 0xdb, 0xfe, 0x65, 0x86, 0xba, 0xd9, 0xd9, 0x62, 0xff, 0xd8, - 0x1f, 0xf6, 0x8b, 0x93, 0x98, 0x7b, 0x21, 0x6e, 0xa6, 0xe5, 0xd4, 0x77, 0x5c, 0x8f, 0x04, 0xfb, - 0x97, 0xdb, 0xbb, 0xdb, 0xac, 0xdd, 0x80, 0x84, 0x7e, 0x27, 0xa8, 0x93, 0x64, 0xc3, 0x5d, 0x6b, - 0x85, 0x97, 0x5b, 0x24, 0x72, 0x32, 0xba, 0x3b, 0x77, 0x39, 0xaf, 0x56, 0xd0, 0xf1, 0x22, 0xb7, - 0x95, 0x6e, 0xe6, 0xc3, 0xbd, 0x2a, 0x84, 0xf5, 0x1d, 0xd2, 0x72, 0x52, 0xf5, 0x9e, 0xcf, 0xab, - 0xd7, 0x89, 0xdc, 0xe6, 0x65, 0xd7, 0x8b, 0xc2, 0x28, 0x48, 0x56, 0xb2, 0xbf, 0x6a, 0xc1, 0x85, - 0xc5, 0x3b, 0xb5, 0x95, 0xa6, 0x13, 0x46, 0x6e, 0x7d, 0xa9, 0xe9, 0xd7, 0x77, 0x6b, 0x91, 0x1f, - 0x90, 0xdb, 0x7e, 0xb3, 0xd3, 0x22, 0x35, 0x36, 0x10, 0xe8, 0x19, 0x18, 0xd9, 0x63, 0xff, 0x2b, - 0xe5, 0x59, 0xeb, 0x82, 0x75, 0xa9, 0xb4, 0x34, 0xf5, 0xeb, 0x07, 0xf3, 0xef, 0xbb, 0x7f, 0x30, - 0x3f, 0x72, 0x5b, 0x94, 0x63, 0x85, 0x81, 0x2e, 0xc2, 0xd0, 0x56, 0xb8, 0xb1, 0xdf, 0x26, 0xb3, - 0x05, 0x86, 0x3b, 0x21, 0x70, 0x87, 0x56, 0x6b, 0xb4, 0x14, 0x0b, 0x28, 0xba, 0x0c, 0xa5, 0xb6, - 0x13, 0x44, 0x6e, 0xe4, 0xfa, 0xde, 0x6c, 0xf1, 0x82, 0x75, 0x69, 0x70, 0x69, 0x5a, 0xa0, 0x96, - 0xaa, 0x12, 0x80, 0x63, 0x1c, 0xda, 0x8d, 0x80, 0x38, 0x8d, 0x9b, 0x5e, 0x73, 0x7f, 0x76, 0xe0, - 0x82, 0x75, 0x69, 0x24, 0xee, 0x06, 0x16, 0xe5, 0x58, 0x61, 0xd8, 0x3f, 0x52, 0x80, 0x91, 0xc5, - 0xad, 0x2d, 0xd7, 0x73, 0xa3, 0x7d, 0x74, 0x1b, 0xc6, 0x3c, 0xbf, 0x41, 0xe4, 0x7f, 0xf6, 0x15, - 0xa3, 0xcf, 0x5d, 0x58, 0x48, 0x2f, 0xa5, 0x85, 0x75, 0x0d, 0x6f, 0x69, 0xea, 0xfe, 0xc1, 0xfc, - 0x98, 0x5e, 0x82, 0x0d, 0x3a, 0x08, 0xc3, 0x68, 0xdb, 0x6f, 0x28, 0xb2, 0x05, 0x46, 0x76, 0x3e, - 0x8b, 0x6c, 0x35, 0x46, 0x5b, 0x9a, 0xbc, 0x7f, 0x30, 0x3f, 0xaa, 0x15, 0x60, 0x9d, 0x08, 0xda, - 0x84, 0x49, 0xfa, 0xd7, 0x8b, 0x5c, 0x45, 0xb7, 0xc8, 0xe8, 0x3e, 0x91, 0x47, 0x57, 0x43, 0x5d, - 0x9a, 0xb9, 0x7f, 0x30, 0x3f, 0x99, 0x28, 0xc4, 0x49, 0x82, 0xf6, 0xdb, 0x30, 0xb1, 0x18, 0x45, - 0x4e, 0x7d, 0x87, 0x34, 0xf8, 0x0c, 0xa2, 0x17, 0x60, 0xc0, 0x73, 0x5a, 0x44, 0xcc, 0xef, 0x05, - 0x31, 0xb0, 0x03, 0xeb, 0x4e, 0x8b, 0x1c, 0x1e, 0xcc, 0x4f, 0xdd, 0xf2, 0xdc, 0xb7, 0x3a, 0x62, - 0x55, 0xd0, 0x32, 0xcc, 0xb0, 0xd1, 0x73, 0x00, 0x0d, 0xb2, 0xe7, 0xd6, 0x49, 0xd5, 0x89, 0x76, - 0xc4, 0x7c, 0x23, 0x51, 0x17, 0xca, 0x0a, 0x82, 0x35, 0x2c, 0xfb, 0x1e, 0x94, 0x16, 0xf7, 0x7c, - 0xb7, 0x51, 0xf5, 0x1b, 0x21, 0xda, 0x85, 0xc9, 0x76, 0x40, 0xb6, 0x48, 0xa0, 0x8a, 0x66, 0xad, - 0x0b, 0xc5, 0x4b, 0xa3, 0xcf, 0x5d, 0xca, 0xfc, 0x58, 0x13, 0x75, 0xc5, 0x8b, 0x82, 0xfd, 0xa5, - 0x47, 0x44, 0x7b, 0x93, 0x09, 0x28, 0x4e, 0x52, 0xb6, 0xff, 0x55, 0x01, 0x4e, 0x2f, 0xbe, 0xdd, - 0x09, 0x48, 0xd9, 0x0d, 0x77, 0x93, 0x2b, 0xbc, 0xe1, 0x86, 0xbb, 0xeb, 0xf1, 0x08, 0xa8, 0xa5, - 0x55, 0x16, 0xe5, 0x58, 0x61, 0xa0, 0x67, 0x61, 0x98, 0xfe, 0xbe, 0x85, 0x2b, 0xe2, 0x93, 0x67, - 0x04, 0xf2, 0x68, 0xd9, 0x89, 0x9c, 0x32, 0x07, 0x61, 0x89, 0x83, 0xd6, 0x60, 0xb4, 0xce, 0x36, - 0xe4, 0xf6, 0x9a, 0xdf, 0x20, 0x6c, 0x32, 0x4b, 0x4b, 0x4f, 0x53, 0xf4, 0xe5, 0xb8, 0xf8, 0xf0, - 0x60, 0x7e, 0x96, 0xf7, 0x4d, 0x90, 0xd0, 0x60, 0x58, 0xaf, 0x8f, 0x6c, 0xb5, 0xbf, 0x06, 0x18, - 0x25, 0xc8, 0xd8, 0x5b, 0x97, 0xb4, 0xad, 0x32, 0xc8, 0xb6, 0xca, 0x58, 0xf6, 0x36, 0x41, 0x57, - 0x60, 0x60, 0xd7, 0xf5, 0x1a, 0xb3, 0x43, 0x8c, 0xd6, 0x39, 0x3a, 0xe7, 0xd7, 0x5d, 0xaf, 0x71, - 0x78, 0x30, 0x3f, 0x6d, 0x74, 0x87, 0x16, 0x62, 0x86, 0x6a, 0xff, 0xa9, 0x05, 0xf3, 0x0c, 0xb6, - 0xea, 0x36, 0x49, 0x95, 0x04, 0xa1, 0x1b, 0x46, 0xc4, 0x8b, 0x8c, 0x01, 0x7d, 0x0e, 0x20, 0x24, - 0xf5, 0x80, 0x44, 0xda, 0x90, 0xaa, 0x85, 0x51, 0x53, 0x10, 0xac, 0x61, 0xd1, 0x03, 0x21, 0xdc, - 0x71, 0x02, 0xb6, 0xbe, 0xc4, 0xc0, 0xaa, 0x03, 0xa1, 0x26, 0x01, 0x38, 0xc6, 0x31, 0x0e, 0x84, - 0x62, 0xaf, 0x03, 0x01, 0x7d, 0x0c, 0x26, 0xe3, 0xc6, 0xc2, 0xb6, 0x53, 0x97, 0x03, 0xc8, 0xb6, - 0x4c, 0xcd, 0x04, 0xe1, 0x24, 0xae, 0xfd, 0xf7, 0x2c, 0xb1, 0x78, 0xe8, 0x57, 0xbf, 0xcb, 0xbf, - 0xd5, 0xfe, 0x45, 0x0b, 0x86, 0x97, 0x5c, 0xaf, 0xe1, 0x7a, 0xdb, 0xe8, 0xb3, 0x30, 0x42, 0xef, - 0xa6, 0x86, 0x13, 0x39, 0xe2, 0xdc, 0xfb, 0x90, 0xb6, 0xb7, 0xd4, 0x55, 0xb1, 0xd0, 0xde, 0xdd, - 0xa6, 0x05, 0xe1, 0x02, 0xc5, 0xa6, 0xbb, 0xed, 0xe6, 0xe6, 0x9b, 0xa4, 0x1e, 0xad, 0x91, 0xc8, - 0x89, 0x3f, 0x27, 0x2e, 0xc3, 0x8a, 0x2a, 0xba, 0x0e, 0x43, 0x91, 0x13, 0x6c, 0x93, 0x48, 0x1c, - 0x80, 0x99, 0x07, 0x15, 0xaf, 0x89, 0xe9, 0x8e, 0x24, 0x5e, 0x9d, 0xc4, 0xd7, 0xc2, 0x06, 0xab, - 0x8a, 0x05, 0x09, 0xfb, 0x87, 0x86, 0xe1, 0xec, 0x72, 0xad, 0x92, 0xb3, 0xae, 0x2e, 0xc2, 0x50, - 0x23, 0x70, 0xf7, 0x48, 0x20, 0xc6, 0x59, 0x51, 0x29, 0xb3, 0x52, 0x2c, 0xa0, 0xe8, 0x25, 0x18, - 0xe3, 0x17, 0xd2, 0x35, 0xc7, 0x6b, 0x34, 0xe5, 0x10, 0x9f, 0x12, 0xd8, 0x63, 0xb7, 0x35, 0x18, - 0x36, 0x30, 0x8f, 0xb8, 0xa8, 0x2e, 0x26, 0x36, 0x63, 0xde, 0x65, 0xf7, 0x05, 0x0b, 0xa6, 0x78, - 0x33, 0x8b, 0x51, 0x14, 0xb8, 0x9b, 0x9d, 0x88, 0x84, 0xb3, 0x83, 0xec, 0xa4, 0x5b, 0xce, 0x1a, - 0xad, 0xdc, 0x11, 0x58, 0xb8, 0x9d, 0xa0, 0xc2, 0x0f, 0xc1, 0x59, 0xd1, 0xee, 0x54, 0x12, 0x8c, - 0x53, 0xcd, 0xa2, 0xef, 0xb4, 0x60, 0xae, 0xee, 0x7b, 0x51, 0xe0, 0x37, 0x9b, 0x24, 0xa8, 0x76, - 0x36, 0x9b, 0x6e, 0xb8, 0xc3, 0xd7, 0x29, 0x26, 0x5b, 0xec, 0x24, 0xc8, 0x99, 0x43, 0x85, 0x24, - 0xe6, 0xf0, 0xfc, 0xfd, 0x83, 0xf9, 0xb9, 0xe5, 0x5c, 0x52, 0xb8, 0x4b, 0x33, 0x68, 0x17, 0x10, - 0xbd, 0x4a, 0x6b, 0x91, 0xb3, 0x4d, 0xe2, 0xc6, 0x87, 0xfb, 0x6f, 0xfc, 0xcc, 0xfd, 0x83, 0x79, - 0xb4, 0x9e, 0x22, 0x81, 0x33, 0xc8, 0xa2, 0xb7, 0xe0, 0x14, 0x2d, 0x4d, 0x7d, 0xeb, 0x48, 0xff, - 0xcd, 0xcd, 0xde, 0x3f, 0x98, 0x3f, 0xb5, 0x9e, 0x41, 0x04, 0x67, 0x92, 0x46, 0xdf, 0x61, 0xc1, - 0xd9, 0xf8, 0xf3, 0x57, 0xee, 0xb5, 0x1d, 0xaf, 0x11, 0x37, 0x5c, 0xea, 0xbf, 0x61, 0x7a, 0x26, - 0x9f, 0x5d, 0xce, 0xa3, 0x84, 0xf3, 0x1b, 0x99, 0x5b, 0x86, 0xd3, 0x99, 0xab, 0x05, 0x4d, 0x41, - 0x71, 0x97, 0x70, 0x2e, 0xa8, 0x84, 0xe9, 0x4f, 0x74, 0x0a, 0x06, 0xf7, 0x9c, 0x66, 0x47, 0x6c, - 0x14, 0xcc, 0xff, 0xbc, 0x5c, 0x78, 0xc9, 0xb2, 0xff, 0x75, 0x11, 0x26, 0x97, 0x6b, 0x95, 0x07, - 0xda, 0x85, 0xfa, 0x35, 0x54, 0xe8, 0x7a, 0x0d, 0xc5, 0x97, 0x5a, 0x31, 0xf7, 0x52, 0xfb, 0xcb, - 0x19, 0x5b, 0x68, 0x80, 0x6d, 0xa1, 0x6f, 0xc9, 0xd9, 0x42, 0xc7, 0xbc, 0x71, 0xf6, 0x72, 0x56, - 0xd1, 0x20, 0x9b, 0xcc, 0x4c, 0x8e, 0xe5, 0x86, 0x5f, 0x77, 0x9a, 0xc9, 0xa3, 0xef, 0x88, 0x4b, - 0xe9, 0x78, 0xe6, 0xb1, 0x0e, 0x63, 0xcb, 0x4e, 0xdb, 0xd9, 0x74, 0x9b, 0x6e, 0xe4, 0x92, 0x10, - 0x3d, 0x09, 0x45, 0xa7, 0xd1, 0x60, 0xdc, 0x56, 0x69, 0xe9, 0xf4, 0xfd, 0x83, 0xf9, 0xe2, 0x62, - 0x83, 0x5e, 0xfb, 0xa0, 0xb0, 0xf6, 0x31, 0xc5, 0x40, 0x1f, 0x84, 0x81, 0x46, 0xe0, 0xb7, 0x67, - 0x0b, 0x0c, 0x93, 0xee, 0xba, 0x81, 0x72, 0xe0, 0xb7, 0x13, 0xa8, 0x0c, 0xc7, 0xfe, 0xd5, 0x02, - 0x3c, 0xb6, 0x4c, 0xda, 0x3b, 0xab, 0xb5, 0x9c, 0xf3, 0xfb, 0x12, 0x8c, 0xb4, 0x7c, 0xcf, 0x8d, - 0xfc, 0x20, 0x14, 0x4d, 0xb3, 0x15, 0xb1, 0x26, 0xca, 0xb0, 0x82, 0xa2, 0x0b, 0x30, 0xd0, 0x8e, - 0x99, 0xca, 0x31, 0xc9, 0x90, 0x32, 0x76, 0x92, 0x41, 0x28, 0x46, 0x27, 0x24, 0x81, 0x58, 0x31, - 0x0a, 0xe3, 0x56, 0x48, 0x02, 0xcc, 0x20, 0xf1, 0xcd, 0x4c, 0xef, 0x6c, 0x71, 0x42, 0x27, 0x6e, - 0x66, 0x0a, 0xc1, 0x1a, 0x16, 0xaa, 0x42, 0x29, 0x4c, 0xcc, 0x6c, 0x5f, 0xdb, 0x74, 0x9c, 0x5d, - 0xdd, 0x6a, 0x26, 0x63, 0x22, 0xc6, 0x8d, 0x32, 0xd4, 0xf3, 0xea, 0xfe, 0x4a, 0x01, 0x10, 0x1f, - 0xc2, 0x6f, 0xb0, 0x81, 0xbb, 0x95, 0x1e, 0xb8, 0xfe, 0xb7, 0xc4, 0x71, 0x8d, 0xde, 0x9f, 0x59, - 0xf0, 0xd8, 0xb2, 0xeb, 0x35, 0x48, 0x90, 0xb3, 0x00, 0x1f, 0xce, 0x5b, 0xf6, 0x68, 0x4c, 0x83, - 0xb1, 0xc4, 0x06, 0x8e, 0x61, 0x89, 0xd9, 0x7f, 0x6c, 0x01, 0xe2, 0x9f, 0xfd, 0xae, 0xfb, 0xd8, - 0x5b, 0xe9, 0x8f, 0x3d, 0x86, 0x65, 0x61, 0xdf, 0x80, 0x89, 0xe5, 0xa6, 0x4b, 0xbc, 0xa8, 0x52, - 0x5d, 0xf6, 0xbd, 0x2d, 0x77, 0x1b, 0xbd, 0x0c, 0x13, 0x91, 0xdb, 0x22, 0x7e, 0x27, 0xaa, 0x91, - 0xba, 0xef, 0xb1, 0x97, 0xa4, 0x75, 0x69, 0x70, 0x09, 0xdd, 0x3f, 0x98, 0x9f, 0xd8, 0x30, 0x20, - 0x38, 0x81, 0x69, 0xff, 0x2e, 0x1d, 0x3f, 0xbf, 0xd5, 0xf6, 0x3d, 0xe2, 0x45, 0xcb, 0xbe, 0xd7, - 0xe0, 0x12, 0x87, 0x97, 0x61, 0x20, 0xa2, 0xe3, 0xc1, 0xc7, 0xee, 0xa2, 0xdc, 0x28, 0x74, 0x14, - 0x0e, 0x0f, 0xe6, 0xcf, 0xa4, 0x6b, 0xb0, 0x71, 0x62, 0x75, 0xd0, 0xb7, 0xc0, 0x50, 0x18, 0x39, - 0x51, 0x27, 0x14, 0xa3, 0xf9, 0xb8, 0x1c, 0xcd, 0x1a, 0x2b, 0x3d, 0x3c, 0x98, 0x9f, 0x54, 0xd5, - 0x78, 0x11, 0x16, 0x15, 0xd0, 0x53, 0x30, 0xdc, 0x22, 0x61, 0xe8, 0x6c, 0xcb, 0xdb, 0x70, 0x52, - 0xd4, 0x1d, 0x5e, 0xe3, 0xc5, 0x58, 0xc2, 0xd1, 0x13, 0x30, 0x48, 0x82, 0xc0, 0x0f, 0xc4, 0x1e, - 0x1d, 0x17, 0x88, 0x83, 0x2b, 0xb4, 0x10, 0x73, 0x98, 0xfd, 0x1f, 0x2c, 0x98, 0x54, 0x7d, 0xe5, - 0x6d, 0x9d, 0xc0, 0xab, 0xe0, 0x53, 0x00, 0x75, 0xf9, 0x81, 0x21, 0xbb, 0x3d, 0x46, 0x9f, 0xbb, - 0x98, 0x79, 0x51, 0xa7, 0x86, 0x31, 0xa6, 0xac, 0x8a, 0x42, 0xac, 0x51, 0xb3, 0xff, 0x99, 0x05, - 0x33, 0x89, 0x2f, 0xba, 0xe1, 0x86, 0x11, 0x7a, 0x23, 0xf5, 0x55, 0x0b, 0xfd, 0x7d, 0x15, 0xad, - 0xcd, 0xbe, 0x49, 0x2d, 0x65, 0x59, 0xa2, 0x7d, 0xd1, 0x35, 0x18, 0x74, 0x23, 0xd2, 0x92, 0x1f, - 0xf3, 0x44, 0xd7, 0x8f, 0xe1, 0xbd, 0x8a, 0x67, 0xa4, 0x42, 0x6b, 0x62, 0x4e, 0xc0, 0xfe, 0xd5, - 0x22, 0x94, 0xf8, 0xb2, 0x5d, 0x73, 0xda, 0x27, 0x30, 0x17, 0x4f, 0x43, 0xc9, 0x6d, 0xb5, 0x3a, - 0x91, 0xb3, 0x29, 0x8e, 0xf3, 0x11, 0xbe, 0xb5, 0x2a, 0xb2, 0x10, 0xc7, 0x70, 0x54, 0x81, 0x01, - 0xd6, 0x15, 0xfe, 0x95, 0x4f, 0x66, 0x7f, 0xa5, 0xe8, 0xfb, 0x42, 0xd9, 0x89, 0x1c, 0xce, 0x49, - 0xa9, 0x7b, 0x84, 0x16, 0x61, 0x46, 0x02, 0x39, 0x00, 0x9b, 0xae, 0xe7, 0x04, 0xfb, 0xb4, 0x6c, - 0xb6, 0xc8, 0x08, 0x3e, 0xdb, 0x9d, 0xe0, 0x92, 0xc2, 0xe7, 0x64, 0xd5, 0x87, 0xc5, 0x00, 0xac, - 0x11, 0x9d, 0xfb, 0x08, 0x94, 0x14, 0xf2, 0x51, 0x18, 0xa2, 0xb9, 0x8f, 0xc1, 0x64, 0xa2, 0xad, - 0x5e, 0xd5, 0xc7, 0x74, 0x7e, 0xea, 0x97, 0xd8, 0x91, 0x21, 0x7a, 0xbd, 0xe2, 0xed, 0x89, 0x23, - 0xf7, 0x6d, 0x38, 0xd5, 0xcc, 0x38, 0xc9, 0xc4, 0xbc, 0xf6, 0x7f, 0xf2, 0x3d, 0x26, 0x3e, 0xfb, - 0x54, 0x16, 0x14, 0x67, 0xb6, 0x41, 0x79, 0x04, 0xbf, 0x4d, 0x37, 0x88, 0xd3, 0xd4, 0xd9, 0xed, - 0x9b, 0xa2, 0x0c, 0x2b, 0x28, 0x3d, 0xef, 0x4e, 0xa9, 0xce, 0x5f, 0x27, 0xfb, 0x35, 0xd2, 0x24, - 0xf5, 0xc8, 0x0f, 0xbe, 0xae, 0xdd, 0x3f, 0xc7, 0x47, 0x9f, 0x1f, 0x97, 0xa3, 0x82, 0x40, 0xf1, - 0x3a, 0xd9, 0xe7, 0x53, 0xa1, 0x7f, 0x5d, 0xb1, 0xeb, 0xd7, 0xfd, 0x8c, 0x05, 0xe3, 0xea, 0xeb, - 0x4e, 0xe0, 0x5c, 0x58, 0x32, 0xcf, 0x85, 0x73, 0x5d, 0x17, 0x78, 0xce, 0x89, 0xf0, 0x95, 0x02, - 0x9c, 0x55, 0x38, 0xf4, 0x6d, 0xc0, 0xff, 0x88, 0x55, 0x75, 0x19, 0x4a, 0x9e, 0x92, 0x5a, 0x59, - 0xa6, 0xb8, 0x28, 0x96, 0x59, 0xc5, 0x38, 0x94, 0xc5, 0xf3, 0x62, 0xd1, 0xd2, 0x98, 0x2e, 0xce, - 0x15, 0xa2, 0xdb, 0x25, 0x28, 0x76, 0xdc, 0x86, 0xb8, 0x60, 0x3e, 0x24, 0x47, 0xfb, 0x56, 0xa5, - 0x7c, 0x78, 0x30, 0xff, 0x78, 0x9e, 0x2a, 0x81, 0xde, 0x6c, 0xe1, 0xc2, 0xad, 0x4a, 0x19, 0xd3, - 0xca, 0x68, 0x11, 0x26, 0xa5, 0xb6, 0xe4, 0x36, 0x65, 0xb7, 0x7c, 0x4f, 0xdc, 0x43, 0x4a, 0x26, - 0x8b, 0x4d, 0x30, 0x4e, 0xe2, 0xa3, 0x32, 0x4c, 0xed, 0x76, 0x36, 0x49, 0x93, 0x44, 0xfc, 0x83, - 0xaf, 0x13, 0x2e, 0xb1, 0x2c, 0xc5, 0x2f, 0xb3, 0xeb, 0x09, 0x38, 0x4e, 0xd5, 0xb0, 0xff, 0x82, - 0xdd, 0x07, 0x62, 0xf4, 0xaa, 0x81, 0x4f, 0x17, 0x16, 0xa5, 0xfe, 0xf5, 0x5c, 0xce, 0xfd, 0xac, - 0x8a, 0xeb, 0x64, 0x7f, 0xc3, 0xa7, 0x9c, 0x79, 0xf6, 0xaa, 0x30, 0xd6, 0xfc, 0x40, 0xd7, 0x35, - 0xff, 0x73, 0x05, 0x38, 0xad, 0x46, 0xc0, 0x60, 0x02, 0xbf, 0xd1, 0xc7, 0xe0, 0x0a, 0x8c, 0x36, - 0xc8, 0x96, 0xd3, 0x69, 0x46, 0x4a, 0x7c, 0x3e, 0xc8, 0x55, 0x28, 0xe5, 0xb8, 0x18, 0xeb, 0x38, - 0x47, 0x18, 0xb6, 0xff, 0x3d, 0xca, 0x2e, 0xe2, 0xc8, 0xa1, 0x6b, 0x5c, 0xed, 0x1a, 0x2b, 0x77, - 0xd7, 0x3c, 0x01, 0x83, 0x6e, 0x8b, 0x32, 0x66, 0x05, 0x93, 0xdf, 0xaa, 0xd0, 0x42, 0xcc, 0x61, - 0xe8, 0x03, 0x30, 0x5c, 0xf7, 0x5b, 0x2d, 0xc7, 0x6b, 0xb0, 0x2b, 0xaf, 0xb4, 0x34, 0x4a, 0x79, - 0xb7, 0x65, 0x5e, 0x84, 0x25, 0x0c, 0x3d, 0x06, 0x03, 0x4e, 0xb0, 0xcd, 0x65, 0x18, 0xa5, 0xa5, - 0x11, 0xda, 0xd2, 0x62, 0xb0, 0x1d, 0x62, 0x56, 0x4a, 0x9f, 0x60, 0x77, 0xfd, 0x60, 0xd7, 0xf5, - 0xb6, 0xcb, 0x6e, 0x20, 0xb6, 0x84, 0xba, 0x0b, 0xef, 0x28, 0x08, 0xd6, 0xb0, 0xd0, 0x2a, 0x0c, - 0xb6, 0xfd, 0x20, 0x0a, 0x67, 0x87, 0xd8, 0x70, 0x3f, 0x9e, 0x73, 0x10, 0xf1, 0xaf, 0xad, 0xfa, - 0x41, 0x14, 0x7f, 0x00, 0xfd, 0x17, 0x62, 0x5e, 0x1d, 0xdd, 0x80, 0x61, 0xe2, 0xed, 0xad, 0x06, - 0x7e, 0x6b, 0x76, 0x26, 0x9f, 0xd2, 0x0a, 0x47, 0xe1, 0xcb, 0x2c, 0xe6, 0x51, 0x45, 0x31, 0x96, - 0x24, 0xd0, 0xb7, 0x40, 0x91, 0x78, 0x7b, 0xb3, 0xc3, 0x8c, 0xd2, 0x5c, 0x0e, 0xa5, 0xdb, 0x4e, - 0x10, 0x9f, 0xf9, 0x2b, 0xde, 0x1e, 0xa6, 0x75, 0xd0, 0x27, 0xa1, 0x24, 0x0f, 0x8c, 0x50, 0x08, - 0xeb, 0x32, 0x17, 0xac, 0x3c, 0x66, 0x30, 0x79, 0xab, 0xe3, 0x06, 0xa4, 0x45, 0xbc, 0x28, 0x8c, - 0x4f, 0x48, 0x09, 0x0d, 0x71, 0x4c, 0x0d, 0x7d, 0x52, 0x4a, 0x88, 0xd7, 0xfc, 0x8e, 0x17, 0x85, - 0xb3, 0x25, 0xd6, 0xbd, 0x4c, 0xdd, 0xdd, 0xed, 0x18, 0x2f, 0x29, 0x42, 0xe6, 0x95, 0xb1, 0x41, - 0x0a, 0x7d, 0x1a, 0xc6, 0xf9, 0x7f, 0xae, 0x01, 0x0b, 0x67, 0x4f, 0x33, 0xda, 0x17, 0xf2, 0x69, - 0x73, 0xc4, 0xa5, 0xd3, 0x82, 0xf8, 0xb8, 0x5e, 0x1a, 0x62, 0x93, 0x1a, 0xc2, 0x30, 0xde, 0x74, - 0xf7, 0x88, 0x47, 0xc2, 0xb0, 0x1a, 0xf8, 0x9b, 0x64, 0x16, 0xd8, 0xc0, 0x9c, 0xcd, 0xd6, 0x98, - 0xf9, 0x9b, 0x64, 0x69, 0x9a, 0xd2, 0xbc, 0xa1, 0xd7, 0xc1, 0x26, 0x09, 0x74, 0x0b, 0x26, 0xe8, - 0x8b, 0xcd, 0x8d, 0x89, 0x8e, 0xf6, 0x22, 0xca, 0xde, 0x55, 0xd8, 0xa8, 0x84, 0x13, 0x44, 0xd0, - 0x4d, 0x18, 0x0b, 0x23, 0x27, 0x88, 0x3a, 0x6d, 0x4e, 0xf4, 0x4c, 0x2f, 0xa2, 0x4c, 0xe1, 0x5a, - 0xd3, 0xaa, 0x60, 0x83, 0x00, 0x7a, 0x0d, 0x4a, 0x4d, 0x77, 0x8b, 0xd4, 0xf7, 0xeb, 0x4d, 0x32, - 0x3b, 0xc6, 0xa8, 0x65, 0x1e, 0x2a, 0x37, 0x24, 0x12, 0xe7, 0x73, 0xd5, 0x5f, 0x1c, 0x57, 0x47, - 0xb7, 0xe1, 0x4c, 0x44, 0x82, 0x96, 0xeb, 0x39, 0xf4, 0x30, 0x10, 0x4f, 0x2b, 0xa6, 0xc8, 0x1c, - 0x67, 0xbb, 0xed, 0xbc, 0x98, 0x8d, 0x33, 0x1b, 0x99, 0x58, 0x38, 0xa7, 0x36, 0xba, 0x07, 0xb3, - 0x19, 0x10, 0xbf, 0xe9, 0xd6, 0xf7, 0x67, 0x4f, 0x31, 0xca, 0x1f, 0x15, 0x94, 0x67, 0x37, 0x72, - 0xf0, 0x0e, 0xbb, 0xc0, 0x70, 0x2e, 0x75, 0x74, 0x13, 0x26, 0xd9, 0x09, 0x54, 0xed, 0x34, 0x9b, - 0xa2, 0xc1, 0x09, 0xd6, 0xe0, 0x07, 0xe4, 0x7d, 0x5c, 0x31, 0xc1, 0x87, 0x07, 0xf3, 0x10, 0xff, - 0xc3, 0xc9, 0xda, 0x68, 0x93, 0xe9, 0xcc, 0x3a, 0x81, 0x1b, 0xed, 0xd3, 0x73, 0x83, 0xdc, 0x8b, - 0x66, 0x27, 0xbb, 0xca, 0x2b, 0x74, 0x54, 0xa5, 0x58, 0xd3, 0x0b, 0x71, 0x92, 0x20, 0x3d, 0x52, - 0xc3, 0xa8, 0xe1, 0x7a, 0xb3, 0x53, 0xfc, 0x5d, 0x22, 0x4f, 0xa4, 0x1a, 0x2d, 0xc4, 0x1c, 0xc6, - 0xf4, 0x65, 0xf4, 0xc7, 0x4d, 0x7a, 0x73, 0x4d, 0x33, 0xc4, 0x58, 0x5f, 0x26, 0x01, 0x38, 0xc6, - 0xa1, 0xcc, 0x64, 0x14, 0xed, 0xcf, 0x22, 0x86, 0xaa, 0x0e, 0x96, 0x8d, 0x8d, 0x4f, 0x62, 0x5a, - 0x6e, 0x6f, 0xc2, 0x84, 0x3a, 0x08, 0xd9, 0x98, 0xa0, 0x79, 0x18, 0x64, 0xec, 0x93, 0x90, 0xae, - 0x95, 0x68, 0x17, 0x18, 0x6b, 0x85, 0x79, 0x39, 0xeb, 0x82, 0xfb, 0x36, 0x59, 0xda, 0x8f, 0x08, - 0x7f, 0xd3, 0x17, 0xb5, 0x2e, 0x48, 0x00, 0x8e, 0x71, 0xec, 0xff, 0xc7, 0xd9, 0xd0, 0xf8, 0xb4, - 0xed, 0xe3, 0x7e, 0x79, 0x06, 0x46, 0x76, 0xfc, 0x30, 0xa2, 0xd8, 0xac, 0x8d, 0xc1, 0x98, 0xf1, - 0xbc, 0x26, 0xca, 0xb1, 0xc2, 0x40, 0xaf, 0xc0, 0x78, 0x5d, 0x6f, 0x40, 0x5c, 0x8e, 0xea, 0x18, - 0x31, 0x5a, 0xc7, 0x26, 0x2e, 0x7a, 0x09, 0x46, 0x98, 0x0d, 0x48, 0xdd, 0x6f, 0x0a, 0xae, 0x4d, - 0xde, 0xf0, 0x23, 0x55, 0x51, 0x7e, 0xa8, 0xfd, 0xc6, 0x0a, 0x1b, 0x5d, 0x84, 0x21, 0xda, 0x85, - 0x4a, 0x55, 0x5c, 0x4b, 0x4a, 0x50, 0x74, 0x8d, 0x95, 0x62, 0x01, 0xb5, 0xff, 0x5a, 0x41, 0x1b, - 0x65, 0xfa, 0x1e, 0x26, 0xa8, 0x0a, 0xc3, 0x77, 0x1d, 0x37, 0x72, 0xbd, 0x6d, 0xc1, 0x7f, 0x3c, - 0xd5, 0xf5, 0x8e, 0x62, 0x95, 0xee, 0xf0, 0x0a, 0xfc, 0x16, 0x15, 0x7f, 0xb0, 0x24, 0x43, 0x29, - 0x06, 0x1d, 0xcf, 0xa3, 0x14, 0x0b, 0xfd, 0x52, 0xc4, 0xbc, 0x02, 0xa7, 0x28, 0xfe, 0x60, 0x49, - 0x06, 0xbd, 0x01, 0x20, 0x77, 0x18, 0x69, 0x08, 0xdb, 0x8b, 0x67, 0x7a, 0x13, 0xdd, 0x50, 0x75, - 0x96, 0x26, 0xe8, 0x1d, 0x1d, 0xff, 0xc7, 0x1a, 0x3d, 0x3b, 0x62, 0x7c, 0x5a, 0xba, 0x33, 0xe8, - 0xdb, 0xe8, 0x12, 0x77, 0x82, 0x88, 0x34, 0x16, 0x23, 0x31, 0x38, 0x1f, 0xec, 0xef, 0x91, 0xb2, - 0xe1, 0xb6, 0x88, 0xbe, 0x1d, 0x04, 0x11, 0x1c, 0xd3, 0xb3, 0x7f, 0xa1, 0x08, 0xb3, 0x79, 0xdd, - 0xa5, 0x8b, 0x8e, 0xdc, 0x73, 0xa3, 0x65, 0xca, 0x5e, 0x59, 0xe6, 0xa2, 0x5b, 0x11, 0xe5, 0x58, - 0x61, 0xd0, 0xd9, 0x0f, 0xdd, 0x6d, 0xf9, 0xc6, 0x1c, 0x8c, 0x67, 0xbf, 0xc6, 0x4a, 0xb1, 0x80, - 0x52, 0xbc, 0x80, 0x38, 0xa1, 0x30, 0xee, 0xd1, 0x56, 0x09, 0x66, 0xa5, 0x58, 0x40, 0x75, 0x69, - 0xd7, 0x40, 0x0f, 0x69, 0x97, 0x31, 0x44, 0x83, 0xc7, 0x3b, 0x44, 0xe8, 0x33, 0x00, 0x5b, 0xae, - 0xe7, 0x86, 0x3b, 0x8c, 0xfa, 0xd0, 0x91, 0xa9, 0x2b, 0xe6, 0x6c, 0x55, 0x51, 0xc1, 0x1a, 0x45, - 0xf4, 0x22, 0x8c, 0xaa, 0x0d, 0x58, 0x29, 0x33, 0x4d, 0xa7, 0x66, 0x39, 0x12, 0x9f, 0x46, 0x65, - 0xac, 0xe3, 0xd9, 0x6f, 0x26, 0xd7, 0x8b, 0xd8, 0x01, 0xda, 0xf8, 0x5a, 0xfd, 0x8e, 0x6f, 0xa1, - 0xfb, 0xf8, 0xda, 0x5f, 0x2b, 0xc2, 0xa4, 0xd1, 0x58, 0x27, 0xec, 0xe3, 0xcc, 0xba, 0x4a, 0x0f, - 0x70, 0x27, 0x22, 0x62, 0xff, 0xd9, 0xbd, 0xb7, 0x8a, 0x7e, 0xc8, 0xd3, 0x1d, 0xc0, 0xeb, 0xa3, - 0xcf, 0x40, 0xa9, 0xe9, 0x84, 0x4c, 0x72, 0x46, 0xc4, 0xbe, 0xeb, 0x87, 0x58, 0xfc, 0x30, 0x71, - 0xc2, 0x48, 0xbb, 0x35, 0x39, 0xed, 0x98, 0x24, 0xbd, 0x69, 0x28, 0x7f, 0x22, 0xad, 0xc7, 0x54, - 0x27, 0x28, 0x13, 0xb3, 0x8f, 0x39, 0x0c, 0xbd, 0x04, 0x63, 0x01, 0x61, 0xab, 0x62, 0x99, 0x72, - 0x73, 0x6c, 0x99, 0x0d, 0xc6, 0x6c, 0x1f, 0xd6, 0x60, 0xd8, 0xc0, 0x8c, 0xdf, 0x06, 0x43, 0x5d, - 0xde, 0x06, 0x4f, 0xc1, 0x30, 0xfb, 0xa1, 0x56, 0x80, 0x9a, 0x8d, 0x0a, 0x2f, 0xc6, 0x12, 0x9e, - 0x5c, 0x30, 0x23, 0xfd, 0x2d, 0x18, 0xfa, 0xfa, 0x10, 0x8b, 0x9a, 0x69, 0x99, 0x47, 0xf8, 0x29, - 0x27, 0x96, 0x3c, 0x96, 0x30, 0xfb, 0x83, 0x30, 0x51, 0x76, 0x48, 0xcb, 0xf7, 0x56, 0xbc, 0x46, - 0xdb, 0x77, 0xbd, 0x08, 0xcd, 0xc2, 0x00, 0xbb, 0x44, 0xf8, 0x11, 0x30, 0x40, 0x1b, 0xc2, 0x03, - 0xf4, 0x41, 0x60, 0x6f, 0xc3, 0xe9, 0xb2, 0x7f, 0xd7, 0xbb, 0xeb, 0x04, 0x8d, 0xc5, 0x6a, 0x45, - 0x7b, 0x5f, 0xaf, 0xcb, 0xf7, 0x1d, 0x37, 0xda, 0xca, 0x3c, 0x7a, 0xb5, 0x9a, 0x9c, 0xad, 0x5d, - 0x75, 0x9b, 0x24, 0x47, 0x0a, 0xf2, 0x37, 0x0a, 0x46, 0x4b, 0x31, 0xbe, 0xd2, 0x6a, 0x59, 0xb9, - 0x5a, 0xad, 0xd7, 0x61, 0x64, 0xcb, 0x25, 0xcd, 0x06, 0x26, 0x5b, 0x62, 0x25, 0x3e, 0x99, 0x6f, - 0x87, 0xb2, 0x4a, 0x31, 0xa5, 0xd4, 0x8b, 0xbf, 0x0e, 0x57, 0x45, 0x65, 0xac, 0xc8, 0xa0, 0x5d, - 0x98, 0x92, 0x0f, 0x06, 0x09, 0x15, 0xeb, 0xf2, 0xa9, 0x6e, 0xaf, 0x10, 0x93, 0xf8, 0xa9, 0xfb, - 0x07, 0xf3, 0x53, 0x38, 0x41, 0x06, 0xa7, 0x08, 0xd3, 0xe7, 0x60, 0x8b, 0x9e, 0xc0, 0x03, 0x6c, - 0xf8, 0xd9, 0x73, 0x90, 0xbd, 0x6c, 0x59, 0xa9, 0xfd, 0x63, 0x16, 0x3c, 0x92, 0x1a, 0x19, 0xf1, - 0xc2, 0x3f, 0xe6, 0x59, 0x48, 0xbe, 0xb8, 0x0b, 0xbd, 0x5f, 0xdc, 0xf6, 0xdf, 0xb7, 0xe0, 0xd4, - 0x4a, 0xab, 0x1d, 0xed, 0x97, 0x5d, 0x53, 0x05, 0xf5, 0x11, 0x18, 0x6a, 0x91, 0x86, 0xdb, 0x69, - 0x89, 0x99, 0x9b, 0x97, 0xa7, 0xd4, 0x1a, 0x2b, 0x3d, 0x3c, 0x98, 0x1f, 0xaf, 0x45, 0x7e, 0xe0, - 0x6c, 0x13, 0x5e, 0x80, 0x05, 0x3a, 0x3b, 0xeb, 0xdd, 0xb7, 0xc9, 0x0d, 0xb7, 0xe5, 0x4a, 0xbb, - 0xa2, 0xae, 0x32, 0xbb, 0x05, 0x39, 0xa0, 0x0b, 0xaf, 0x77, 0x1c, 0x2f, 0x72, 0xa3, 0x7d, 0xa1, - 0x3d, 0x92, 0x44, 0x70, 0x4c, 0xcf, 0xfe, 0xaa, 0x05, 0x93, 0x72, 0xdd, 0x2f, 0x36, 0x1a, 0x01, - 0x09, 0x43, 0x34, 0x07, 0x05, 0xb7, 0x2d, 0x7a, 0x09, 0xa2, 0x97, 0x85, 0x4a, 0x15, 0x17, 0xdc, - 0xb6, 0x64, 0xcb, 0xd8, 0x41, 0x58, 0x34, 0x15, 0x69, 0xd7, 0x44, 0x39, 0x56, 0x18, 0xe8, 0x12, - 0x8c, 0x78, 0x7e, 0x83, 0xdb, 0x76, 0xf1, 0x2b, 0x8d, 0x2d, 0xb0, 0x75, 0x51, 0x86, 0x15, 0x14, - 0x55, 0xa1, 0xc4, 0xcd, 0x9e, 0xe2, 0x45, 0xdb, 0x97, 0xf1, 0x14, 0xfb, 0xb2, 0x0d, 0x59, 0x13, - 0xc7, 0x44, 0xec, 0x5f, 0xb1, 0x60, 0x4c, 0x7e, 0x59, 0x9f, 0x3c, 0x27, 0xdd, 0x5a, 0x31, 0xbf, - 0x19, 0x6f, 0x2d, 0xca, 0x33, 0x32, 0x88, 0xc1, 0x2a, 0x16, 0x8f, 0xc4, 0x2a, 0x5e, 0x81, 0x51, - 0xa7, 0xdd, 0xae, 0x9a, 0x7c, 0x26, 0x5b, 0x4a, 0x8b, 0x71, 0x31, 0xd6, 0x71, 0xec, 0x1f, 0x2d, - 0xc0, 0x84, 0xfc, 0x82, 0x5a, 0x67, 0x33, 0x24, 0x11, 0xda, 0x80, 0x92, 0xc3, 0x67, 0x89, 0xc8, - 0x45, 0xfe, 0x44, 0xb6, 0x1c, 0xc1, 0x98, 0xd2, 0xf8, 0xc2, 0x5f, 0x94, 0xb5, 0x71, 0x4c, 0x08, - 0x35, 0x61, 0xda, 0xf3, 0x23, 0x76, 0xf8, 0x2b, 0x78, 0x37, 0xd5, 0x4e, 0x92, 0xfa, 0x59, 0x41, - 0x7d, 0x7a, 0x3d, 0x49, 0x05, 0xa7, 0x09, 0xa3, 0x15, 0x29, 0x9b, 0x29, 0xe6, 0x0b, 0x03, 0xf4, - 0x89, 0xcb, 0x16, 0xcd, 0xd8, 0xbf, 0x6c, 0x41, 0x49, 0xa2, 0x9d, 0x84, 0x16, 0x6f, 0x0d, 0x86, - 0x43, 0x36, 0x09, 0x72, 0x68, 0xec, 0x6e, 0x1d, 0xe7, 0xf3, 0x15, 0xdf, 0x69, 0xfc, 0x7f, 0x88, - 0x25, 0x0d, 0x26, 0x9a, 0x57, 0xdd, 0x7f, 0x97, 0x88, 0xe6, 0x55, 0x7f, 0x72, 0x2e, 0xa5, 0x3f, - 0x64, 0x7d, 0xd6, 0x64, 0x5d, 0x94, 0xf5, 0x6a, 0x07, 0x64, 0xcb, 0xbd, 0x97, 0x64, 0xbd, 0xaa, - 0xac, 0x14, 0x0b, 0x28, 0x7a, 0x03, 0xc6, 0xea, 0x52, 0x26, 0x1b, 0xef, 0xf0, 0x8b, 0x5d, 0xf5, - 0x03, 0x4a, 0x95, 0xc4, 0x65, 0x21, 0xcb, 0x5a, 0x7d, 0x6c, 0x50, 0x33, 0xcd, 0x08, 0x8a, 0xbd, - 0xcc, 0x08, 0x62, 0xba, 0xf9, 0x4a, 0xf5, 0x1f, 0xb7, 0x60, 0x88, 0xcb, 0xe2, 0xfa, 0x13, 0x85, - 0x6a, 0x9a, 0xb5, 0x78, 0xec, 0x6e, 0xd3, 0x42, 0xa1, 0x29, 0x43, 0x6b, 0x50, 0x62, 0x3f, 0x98, - 0x2c, 0xb1, 0x98, 0x6f, 0x75, 0xcf, 0x5b, 0xd5, 0x3b, 0x78, 0x5b, 0x56, 0xc3, 0x31, 0x05, 0xfb, - 0x87, 0x8b, 0xf4, 0x74, 0x8b, 0x51, 0x8d, 0x4b, 0xdf, 0x7a, 0x78, 0x97, 0x7e, 0xe1, 0x61, 0x5d, - 0xfa, 0xdb, 0x30, 0x59, 0xd7, 0xf4, 0x70, 0xf1, 0x4c, 0x5e, 0xea, 0xba, 0x48, 0x34, 0x95, 0x1d, - 0x97, 0xb2, 0x2c, 0x9b, 0x44, 0x70, 0x92, 0x2a, 0xfa, 0x36, 0x18, 0xe3, 0xf3, 0x2c, 0x5a, 0xe1, - 0x96, 0x18, 0x1f, 0xc8, 0x5f, 0x2f, 0x7a, 0x13, 0x5c, 0x2a, 0xa7, 0x55, 0xc7, 0x06, 0x31, 0xfb, - 0x4f, 0x2c, 0x40, 0x2b, 0xed, 0x1d, 0xd2, 0x22, 0x81, 0xd3, 0x8c, 0xc5, 0xe9, 0xdf, 0x6f, 0xc1, - 0x2c, 0x49, 0x15, 0x2f, 0xfb, 0xad, 0x96, 0x78, 0xb4, 0xe4, 0xbc, 0xab, 0x57, 0x72, 0xea, 0x28, - 0xb7, 0x84, 0xd9, 0x3c, 0x0c, 0x9c, 0xdb, 0x1e, 0x5a, 0x83, 0x19, 0x7e, 0x4b, 0x2a, 0x80, 0x66, - 0x7b, 0xfd, 0xa8, 0x20, 0x3c, 0xb3, 0x91, 0x46, 0xc1, 0x59, 0xf5, 0xec, 0xef, 0x1a, 0x83, 0xdc, - 0x5e, 0xbc, 0xa7, 0x47, 0x78, 0x4f, 0x8f, 0xf0, 0x9e, 0x1e, 0xe1, 0x3d, 0x3d, 0xc2, 0x7b, 0x7a, - 0x84, 0x6f, 0x7a, 0x3d, 0xc2, 0x1f, 0x59, 0x30, 0x93, 0xbe, 0x06, 0x4e, 0x82, 0x31, 0xef, 0xc0, - 0x4c, 0xfa, 0xae, 0xeb, 0x6a, 0x67, 0x97, 0xee, 0x67, 0x7c, 0xef, 0x65, 0x7c, 0x03, 0xce, 0xa2, - 0x6f, 0xff, 0x9a, 0x05, 0xa7, 0x15, 0xb2, 0xf1, 0xd2, 0xff, 0x1c, 0xcc, 0xf0, 0xf3, 0x65, 0xb9, - 0xe9, 0xb8, 0xad, 0x0d, 0xd2, 0x6a, 0x37, 0x9d, 0x48, 0x9a, 0x19, 0x5c, 0xc9, 0xdc, 0xaa, 0x09, - 0x13, 0x5d, 0xa3, 0xe2, 0xd2, 0x23, 0xb4, 0x5f, 0x19, 0x00, 0x9c, 0xd5, 0x8c, 0x61, 0x94, 0x5a, - 0xe8, 0x69, 0x26, 0xfc, 0x0b, 0x23, 0x30, 0xb8, 0xb2, 0x47, 0xbc, 0xe8, 0x04, 0x26, 0xaa, 0x0e, - 0x13, 0xae, 0xb7, 0xe7, 0x37, 0xf7, 0x48, 0x83, 0xc3, 0x8f, 0xf2, 0xd0, 0x3f, 0x23, 0x48, 0x4f, - 0x54, 0x0c, 0x12, 0x38, 0x41, 0xf2, 0x61, 0x08, 0xdb, 0xaf, 0xc2, 0x10, 0xbf, 0xe3, 0x84, 0xa4, - 0x3d, 0xf3, 0x4a, 0x63, 0x83, 0x28, 0x6e, 0xee, 0x58, 0x11, 0xc0, 0xef, 0x50, 0x51, 0x1d, 0xbd, - 0x09, 0x13, 0x5b, 0x6e, 0x10, 0x46, 0x1b, 0x6e, 0x8b, 0x84, 0x91, 0xd3, 0x6a, 0x3f, 0x80, 0x70, - 0x5d, 0x8d, 0xc3, 0xaa, 0x41, 0x09, 0x27, 0x28, 0xa3, 0x6d, 0x18, 0x6f, 0x3a, 0x7a, 0x53, 0xc3, - 0x47, 0x6e, 0x4a, 0x5d, 0x9e, 0x37, 0x74, 0x42, 0xd8, 0xa4, 0x4b, 0x4f, 0x9b, 0x3a, 0x93, 0x0f, - 0x8f, 0x30, 0xa9, 0x89, 0x3a, 0x6d, 0xb8, 0x60, 0x98, 0xc3, 0x28, 0x1f, 0xc8, 0xec, 0x87, 0x4b, - 0x26, 0x1f, 0xa8, 0x59, 0x09, 0x7f, 0x16, 0x4a, 0x84, 0x0e, 0x21, 0x25, 0x2c, 0xee, 0xdf, 0xcb, - 0xfd, 0xf5, 0x75, 0xcd, 0xad, 0x07, 0xbe, 0xa9, 0xd6, 0x58, 0x91, 0x94, 0x70, 0x4c, 0x14, 0x2d, - 0xc3, 0x50, 0x48, 0x02, 0x97, 0x84, 0xe2, 0x26, 0xee, 0x32, 0x8d, 0x0c, 0x8d, 0xbb, 0xde, 0xf0, - 0xdf, 0x58, 0x54, 0xa5, 0xcb, 0xcb, 0x61, 0x12, 0x5f, 0x76, 0x57, 0x6a, 0xcb, 0x6b, 0x91, 0x95, - 0x62, 0x01, 0x45, 0xaf, 0xc1, 0x70, 0x40, 0x9a, 0x4c, 0x6f, 0x36, 0xde, 0xff, 0x22, 0xe7, 0x6a, - 0x38, 0x5e, 0x0f, 0x4b, 0x02, 0xe8, 0x3a, 0xa0, 0x80, 0x50, 0x3e, 0xd2, 0xf5, 0xb6, 0x95, 0x55, - 0xad, 0xb8, 0x87, 0xd4, 0xb9, 0x85, 0x63, 0x0c, 0xe9, 0x05, 0x85, 0x33, 0xaa, 0xa1, 0xab, 0x30, - 0xad, 0x4a, 0x2b, 0x5e, 0x18, 0x39, 0xf4, 0xfc, 0x9f, 0x64, 0xb4, 0x94, 0x18, 0x07, 0x27, 0x11, - 0x70, 0xba, 0x8e, 0xfd, 0x25, 0x0b, 0xf8, 0x38, 0x9f, 0x80, 0xf0, 0xe2, 0x55, 0x53, 0x78, 0x71, - 0x36, 0x77, 0xe6, 0x72, 0x04, 0x17, 0x5f, 0xb2, 0x60, 0x54, 0x9b, 0xd9, 0x78, 0xcd, 0x5a, 0x5d, - 0xd6, 0x6c, 0x07, 0xa6, 0xe8, 0x4a, 0xbf, 0xb9, 0x19, 0x92, 0x60, 0x8f, 0x34, 0xd8, 0xc2, 0x2c, - 0x3c, 0xd8, 0xc2, 0x54, 0x16, 0x7c, 0x37, 0x12, 0x04, 0x71, 0xaa, 0x09, 0xfb, 0xb3, 0xb2, 0xab, - 0xca, 0xe0, 0xb1, 0xae, 0xe6, 0x3c, 0x61, 0xf0, 0xa8, 0x66, 0x15, 0xc7, 0x38, 0x74, 0xab, 0xed, - 0xf8, 0x61, 0x94, 0x34, 0x78, 0xbc, 0xe6, 0x87, 0x11, 0x66, 0x10, 0xfb, 0x79, 0x80, 0x95, 0x7b, - 0xa4, 0xce, 0x57, 0xac, 0xfe, 0xb6, 0xb2, 0xf2, 0xdf, 0x56, 0xf6, 0x6f, 0x59, 0x30, 0xb1, 0xba, - 0x6c, 0xdc, 0x73, 0x0b, 0x00, 0xfc, 0x41, 0x78, 0xe7, 0xce, 0xba, 0xb4, 0x16, 0xe0, 0x0a, 0x5f, - 0x55, 0x8a, 0x35, 0x0c, 0x74, 0x16, 0x8a, 0xcd, 0x8e, 0x27, 0xa4, 0xab, 0xc3, 0x94, 0x7b, 0xb8, - 0xd1, 0xf1, 0x30, 0x2d, 0xd3, 0x3c, 0x2e, 0x8a, 0x7d, 0x7b, 0x5c, 0xf4, 0x8c, 0x7c, 0x80, 0xe6, - 0x61, 0xf0, 0xee, 0x5d, 0xb7, 0xc1, 0xfd, 0x4b, 0x85, 0x25, 0xc3, 0x9d, 0x3b, 0x95, 0x72, 0x88, - 0x79, 0xb9, 0xfd, 0xc5, 0x22, 0xcc, 0xad, 0x36, 0xc9, 0xbd, 0x77, 0xe8, 0x63, 0xdb, 0xaf, 0xbf, - 0xc8, 0xd1, 0xe4, 0x54, 0x47, 0xf5, 0x09, 0xea, 0x3d, 0x1e, 0x5b, 0x30, 0xcc, 0xed, 0xfd, 0xa4, - 0xc7, 0xed, 0x2b, 0x59, 0xad, 0xe7, 0x0f, 0xc8, 0x02, 0xb7, 0x1b, 0x14, 0x0e, 0x83, 0xea, 0xc2, - 0x14, 0xa5, 0x58, 0x12, 0x9f, 0x7b, 0x19, 0xc6, 0x74, 0xcc, 0x23, 0x79, 0xe7, 0xfd, 0x95, 0x22, - 0x4c, 0xd1, 0x1e, 0x3c, 0xd4, 0x89, 0xb8, 0x95, 0x9e, 0x88, 0xe3, 0xf6, 0xd0, 0xea, 0x3d, 0x1b, - 0x6f, 0x24, 0x67, 0xe3, 0x4a, 0xde, 0x6c, 0x9c, 0xf4, 0x1c, 0x7c, 0xa7, 0x05, 0x33, 0xab, 0x4d, - 0xbf, 0xbe, 0x9b, 0xf0, 0xa2, 0x7a, 0x11, 0x46, 0xe9, 0x71, 0x1c, 0x1a, 0x0e, 0xfe, 0x46, 0xc8, - 0x07, 0x01, 0xc2, 0x3a, 0x9e, 0x56, 0xed, 0xd6, 0xad, 0x4a, 0x39, 0x2b, 0x52, 0x84, 0x00, 0x61, - 0x1d, 0xcf, 0xfe, 0x0d, 0x0b, 0xce, 0x5d, 0x5d, 0x5e, 0x89, 0x97, 0x62, 0x2a, 0x58, 0xc5, 0x45, - 0x18, 0x6a, 0x37, 0xb4, 0xae, 0xc4, 0xd2, 0xe7, 0x32, 0xeb, 0x85, 0x80, 0xbe, 0x5b, 0x02, 0xb1, - 0xfc, 0xb4, 0x05, 0x33, 0x57, 0xdd, 0x88, 0xde, 0xae, 0xc9, 0xb0, 0x09, 0xf4, 0x7a, 0x0d, 0xdd, - 0xc8, 0x0f, 0xf6, 0x93, 0x61, 0x13, 0xb0, 0x82, 0x60, 0x0d, 0x8b, 0xb7, 0xbc, 0xe7, 0x32, 0x4b, - 0xf3, 0x82, 0xa9, 0x87, 0xc3, 0xa2, 0x1c, 0x2b, 0x0c, 0xfa, 0x61, 0x0d, 0x37, 0x60, 0x22, 0xcc, - 0x7d, 0x71, 0xc2, 0xaa, 0x0f, 0x2b, 0x4b, 0x00, 0x8e, 0x71, 0xe8, 0x6b, 0x6e, 0xfe, 0x6a, 0xb3, - 0x13, 0x46, 0x24, 0xd8, 0x0a, 0x73, 0x4e, 0xc7, 0xe7, 0xa1, 0x44, 0xa4, 0xc2, 0x40, 0xf4, 0x5a, - 0x71, 0x8c, 0x4a, 0x93, 0xc0, 0xa3, 0x37, 0x28, 0xbc, 0x3e, 0x7c, 0x32, 0x8f, 0xe6, 0x54, 0xb7, - 0x0a, 0x88, 0xe8, 0x6d, 0xe9, 0xe1, 0x2c, 0x98, 0x5f, 0xfc, 0x4a, 0x0a, 0x8a, 0x33, 0x6a, 0xd8, - 0x3f, 0x66, 0xc1, 0x69, 0xf5, 0xc1, 0xef, 0xba, 0xcf, 0xb4, 0x7f, 0xb6, 0x00, 0xe3, 0xd7, 0x36, - 0x36, 0xaa, 0x57, 0x49, 0x24, 0xae, 0xed, 0xde, 0x66, 0x00, 0x58, 0xd3, 0x66, 0x76, 0x7b, 0xcc, - 0x75, 0x22, 0xb7, 0xb9, 0xc0, 0xa3, 0x22, 0x2d, 0x54, 0xbc, 0xe8, 0x66, 0x50, 0x8b, 0x02, 0xd7, - 0xdb, 0xce, 0xd4, 0x7f, 0x4a, 0xe6, 0xa2, 0x98, 0xc7, 0x5c, 0xa0, 0xe7, 0x61, 0x88, 0x85, 0x65, - 0x92, 0x93, 0xf0, 0xa8, 0x7a, 0x0b, 0xb1, 0xd2, 0xc3, 0x83, 0xf9, 0xd2, 0x2d, 0x5c, 0xe1, 0x7f, - 0xb0, 0x40, 0x45, 0xb7, 0x60, 0x74, 0x27, 0x8a, 0xda, 0xd7, 0x88, 0xd3, 0xa0, 0x4f, 0x77, 0x7e, - 0x1c, 0x9e, 0xcf, 0x3a, 0x0e, 0xe9, 0x20, 0x70, 0xb4, 0xf8, 0x04, 0x89, 0xcb, 0x42, 0xac, 0xd3, - 0xb1, 0x6b, 0x00, 0x31, 0xec, 0x98, 0x14, 0x39, 0xf6, 0x1f, 0x58, 0x30, 0xcc, 0x23, 0x64, 0x04, - 0xe8, 0xa3, 0x30, 0x40, 0xee, 0x91, 0xba, 0xe0, 0x78, 0x33, 0x3b, 0x1c, 0x73, 0x5a, 0x5c, 0x20, - 0x4d, 0xff, 0x63, 0x56, 0x0b, 0x5d, 0x83, 0x61, 0xda, 0xdb, 0xab, 0x2a, 0x5c, 0xc8, 0xe3, 0x79, - 0x5f, 0xac, 0xa6, 0x9d, 0x33, 0x67, 0xa2, 0x08, 0xcb, 0xea, 0x4c, 0x7b, 0x5e, 0x6f, 0xd7, 0xe8, - 0x89, 0x1d, 0x75, 0x63, 0x2c, 0x36, 0x96, 0xab, 0x1c, 0x49, 0x50, 0xe3, 0xda, 0x73, 0x59, 0x88, - 0x63, 0x22, 0xf6, 0x06, 0x94, 0xe8, 0xa4, 0x2e, 0x36, 0x5d, 0xa7, 0xbb, 0x41, 0xc0, 0xd3, 0x50, - 0x92, 0xea, 0xfe, 0x50, 0x78, 0xc6, 0x33, 0xaa, 0xd2, 0x1a, 0x20, 0xc4, 0x31, 0xdc, 0xde, 0x82, - 0x53, 0xcc, 0x78, 0xd3, 0x89, 0x76, 0x8c, 0x3d, 0xd6, 0x7b, 0x31, 0x3f, 0x23, 0x1e, 0x90, 0x7c, - 0x66, 0x66, 0x35, 0xe7, 0xd3, 0x31, 0x49, 0x31, 0x7e, 0x4c, 0xda, 0x5f, 0x1b, 0x80, 0x47, 0x2b, - 0xb5, 0xfc, 0xe0, 0x29, 0x2f, 0xc1, 0x18, 0xe7, 0x4b, 0xe9, 0xd2, 0x76, 0x9a, 0xa2, 0x5d, 0x25, - 0x89, 0xde, 0xd0, 0x60, 0xd8, 0xc0, 0x44, 0xe7, 0xa0, 0xe8, 0xbe, 0xe5, 0x25, 0x5d, 0xb3, 0x2a, - 0xaf, 0xaf, 0x63, 0x5a, 0x4e, 0xc1, 0x94, 0xc5, 0xe5, 0x77, 0x87, 0x02, 0x2b, 0x36, 0xf7, 0x55, - 0x98, 0x70, 0xc3, 0x7a, 0xe8, 0x56, 0x3c, 0x7a, 0xce, 0x68, 0x27, 0x95, 0x12, 0x6e, 0xd0, 0x4e, - 0x2b, 0x28, 0x4e, 0x60, 0x6b, 0x17, 0xd9, 0x60, 0xdf, 0x6c, 0x72, 0x4f, 0x57, 0x71, 0xfa, 0x02, - 0x68, 0xb3, 0xaf, 0x0b, 0x99, 0x4a, 0x41, 0xbc, 0x00, 0xf8, 0x07, 0x87, 0x58, 0xc2, 0xe8, 0xcb, - 0xb1, 0xbe, 0xe3, 0xb4, 0x17, 0x3b, 0xd1, 0x4e, 0xd9, 0x0d, 0xeb, 0xfe, 0x1e, 0x09, 0xf6, 0xd9, - 0xa3, 0x7f, 0x24, 0x7e, 0x39, 0x2a, 0xc0, 0xf2, 0xb5, 0xc5, 0x2a, 0xc5, 0xc4, 0xe9, 0x3a, 0x68, - 0x11, 0x26, 0x65, 0x61, 0x8d, 0x84, 0xec, 0x0a, 0x1b, 0x65, 0x64, 0x94, 0xb3, 0x94, 0x28, 0x56, - 0x44, 0x92, 0xf8, 0x26, 0x27, 0x0d, 0xc7, 0xc1, 0x49, 0x7f, 0x04, 0xc6, 0x5d, 0xcf, 0x8d, 0x5c, - 0x27, 0xf2, 0xb9, 0x3e, 0x8c, 0xbf, 0xef, 0x99, 0xa0, 0xbf, 0xa2, 0x03, 0xb0, 0x89, 0x67, 0xff, - 0xb7, 0x01, 0x98, 0x66, 0xd3, 0xf6, 0xde, 0x0a, 0xfb, 0x66, 0x5a, 0x61, 0xb7, 0xd2, 0x2b, 0xec, - 0x38, 0x9e, 0x08, 0x0f, 0xbc, 0xcc, 0xde, 0x84, 0x92, 0xf2, 0x0f, 0x93, 0x0e, 0xa2, 0x56, 0x8e, - 0x83, 0x68, 0x6f, 0xee, 0x43, 0x9a, 0xd8, 0x15, 0x33, 0x4d, 0xec, 0xfe, 0x96, 0x05, 0xb1, 0x82, - 0x07, 0x5d, 0x83, 0x52, 0xdb, 0x67, 0x96, 0xa3, 0x81, 0x34, 0xc7, 0x7e, 0x34, 0xf3, 0xa2, 0xe2, - 0x97, 0x22, 0xff, 0xf8, 0xaa, 0xac, 0x81, 0xe3, 0xca, 0x68, 0x09, 0x86, 0xdb, 0x01, 0xa9, 0x45, - 0x2c, 0x86, 0x4a, 0x4f, 0x3a, 0x7c, 0x8d, 0x70, 0x7c, 0x2c, 0x2b, 0xda, 0x3f, 0x67, 0x01, 0x70, - 0x2b, 0x36, 0xc7, 0xdb, 0x26, 0x27, 0x20, 0xb5, 0x2e, 0xc3, 0x40, 0xd8, 0x26, 0xf5, 0x6e, 0x36, - 0xbd, 0x71, 0x7f, 0x6a, 0x6d, 0x52, 0x8f, 0x07, 0x9c, 0xfe, 0xc3, 0xac, 0xb6, 0xfd, 0xdd, 0x00, - 0x13, 0x31, 0x5a, 0x25, 0x22, 0x2d, 0xf4, 0xac, 0x11, 0x53, 0xe1, 0x6c, 0x22, 0xa6, 0x42, 0x89, - 0x61, 0x6b, 0x02, 0xd2, 0x37, 0xa1, 0xd8, 0x72, 0xee, 0x09, 0x09, 0xd8, 0xd3, 0xdd, 0xbb, 0x41, - 0xe9, 0x2f, 0xac, 0x39, 0xf7, 0xf8, 0x23, 0xf1, 0x69, 0xb9, 0x40, 0xd6, 0x9c, 0x7b, 0x87, 0xdc, - 0x72, 0x97, 0x1d, 0x52, 0x37, 0xdc, 0x30, 0xfa, 0xfc, 0x7f, 0x8d, 0xff, 0xb3, 0x65, 0x47, 0x1b, - 0x61, 0x6d, 0xb9, 0x9e, 0x30, 0xd0, 0xea, 0xab, 0x2d, 0xd7, 0x4b, 0xb6, 0xe5, 0x7a, 0x7d, 0xb4, - 0xe5, 0x7a, 0xe8, 0x6d, 0x18, 0x16, 0xf6, 0x93, 0x22, 0x86, 0xd1, 0xe5, 0x3e, 0xda, 0x13, 0xe6, - 0x97, 0xbc, 0xcd, 0xcb, 0xf2, 0x11, 0x2c, 0x4a, 0x7b, 0xb6, 0x2b, 0x1b, 0x44, 0x7f, 0xdd, 0x82, - 0x09, 0xf1, 0x1b, 0x93, 0xb7, 0x3a, 0x24, 0x8c, 0x04, 0xef, 0xf9, 0xe1, 0xfe, 0xfb, 0x20, 0x2a, - 0xf2, 0xae, 0x7c, 0x58, 0x1e, 0xb3, 0x26, 0xb0, 0x67, 0x8f, 0x12, 0xbd, 0x40, 0xff, 0xd0, 0x82, - 0x53, 0x2d, 0xe7, 0x1e, 0x6f, 0x91, 0x97, 0x61, 0x27, 0x72, 0x7d, 0x61, 0x87, 0xf0, 0xd1, 0xfe, - 0xa6, 0x3f, 0x55, 0x9d, 0x77, 0x52, 0x2a, 0x4b, 0x4f, 0x65, 0xa1, 0xf4, 0xec, 0x6a, 0x66, 0xbf, - 0xe6, 0xb6, 0x60, 0x44, 0xae, 0xb7, 0x0c, 0x51, 0x43, 0x59, 0x67, 0xac, 0x8f, 0x6c, 0xbe, 0xaa, - 0xc7, 0x2a, 0xa0, 0xed, 0x88, 0xb5, 0xf6, 0x50, 0xdb, 0x79, 0x13, 0xc6, 0xf4, 0x35, 0xf6, 0x50, - 0xdb, 0x7a, 0x0b, 0x66, 0x32, 0xd6, 0xd2, 0x43, 0x6d, 0xf2, 0x2e, 0x9c, 0xcd, 0x5d, 0x1f, 0x0f, - 0xb3, 0x61, 0xfb, 0x67, 0x2d, 0xfd, 0x1c, 0x3c, 0x01, 0xd5, 0xc1, 0xb2, 0xa9, 0x3a, 0x38, 0xdf, - 0x7d, 0xe7, 0xe4, 0xe8, 0x0f, 0xde, 0xd0, 0x3b, 0x4d, 0x4f, 0x75, 0xf4, 0x1a, 0x0c, 0x35, 0x69, - 0x89, 0xb4, 0xc2, 0xb5, 0x7b, 0xef, 0xc8, 0x98, 0x97, 0x62, 0xe5, 0x21, 0x16, 0x14, 0xec, 0x5f, - 0xb4, 0x60, 0xe0, 0x04, 0x46, 0x02, 0x9b, 0x23, 0xf1, 0x6c, 0x2e, 0x69, 0x11, 0x5e, 0x79, 0x01, - 0x3b, 0x77, 0x57, 0xee, 0x45, 0xc4, 0x0b, 0xd9, 0x53, 0x31, 0x73, 0x60, 0x7e, 0xd2, 0x82, 0x99, - 0x1b, 0xbe, 0xd3, 0x58, 0x72, 0x9a, 0x8e, 0x57, 0x27, 0x41, 0xc5, 0xdb, 0x3e, 0x92, 0x09, 0x79, - 0xa1, 0xa7, 0x09, 0xf9, 0xb2, 0xb4, 0xc0, 0x1a, 0xc8, 0x9f, 0x3f, 0xca, 0x48, 0x26, 0xa3, 0xcc, - 0x18, 0xb6, 0xc2, 0x3b, 0x80, 0xf4, 0x5e, 0x0a, 0x87, 0x1e, 0x0c, 0xc3, 0x2e, 0xef, 0xaf, 0x98, - 0xc4, 0x27, 0xb3, 0x19, 0xbc, 0xd4, 0xe7, 0x69, 0xae, 0x2a, 0xbc, 0x00, 0x4b, 0x42, 0xf6, 0x4b, - 0x90, 0x19, 0x15, 0xa0, 0xb7, 0xf0, 0xc1, 0xfe, 0x24, 0x4c, 0xb3, 0x9a, 0x47, 0x7c, 0x18, 0xdb, - 0x09, 0xd9, 0x66, 0x46, 0xbc, 0x40, 0xfb, 0x0b, 0x16, 0x4c, 0xae, 0x27, 0xc2, 0xa8, 0x5d, 0x64, - 0xda, 0xd0, 0x0c, 0x91, 0x7a, 0x8d, 0x95, 0x62, 0x01, 0x3d, 0x76, 0x49, 0xd6, 0x5f, 0x58, 0x10, - 0x07, 0xea, 0x38, 0x01, 0xf6, 0x6d, 0xd9, 0x60, 0xdf, 0x32, 0x25, 0x2c, 0xaa, 0x3b, 0x79, 0xdc, - 0x1b, 0xba, 0xae, 0x42, 0x58, 0x75, 0x11, 0xae, 0xc4, 0x64, 0xf8, 0x52, 0x9c, 0x30, 0xe3, 0x5c, - 0xc9, 0xa0, 0x56, 0xf6, 0x6f, 0x17, 0x00, 0x29, 0xdc, 0xbe, 0x43, 0x6c, 0xa5, 0x6b, 0x1c, 0x4f, - 0x88, 0xad, 0x3d, 0x40, 0x4c, 0x9f, 0x1f, 0x38, 0x5e, 0xc8, 0xc9, 0xba, 0x42, 0x76, 0x77, 0x34, - 0x63, 0x81, 0x39, 0xd1, 0x24, 0xba, 0x91, 0xa2, 0x86, 0x33, 0x5a, 0xd0, 0xec, 0x34, 0x06, 0xfb, - 0xb5, 0xd3, 0x18, 0xea, 0xe1, 0xb4, 0xf7, 0x33, 0x16, 0x8c, 0xab, 0x61, 0x7a, 0x97, 0x98, 0xd4, - 0xab, 0xfe, 0xe4, 0x1c, 0xa0, 0x55, 0xad, 0xcb, 0xec, 0x62, 0xf9, 0x56, 0xe6, 0x7c, 0xe9, 0x34, - 0xdd, 0xb7, 0x89, 0x0a, 0x70, 0x38, 0x2f, 0x9c, 0x29, 0x45, 0xe9, 0xe1, 0xc1, 0xfc, 0xb8, 0xfa, - 0xc7, 0x03, 0x2a, 0xc7, 0x55, 0xe8, 0x91, 0x3c, 0x99, 0x58, 0x8a, 0xe8, 0x45, 0x18, 0x6c, 0xef, - 0x38, 0x21, 0x49, 0xb8, 0x1e, 0x0d, 0x56, 0x69, 0xe1, 0xe1, 0xc1, 0xfc, 0x84, 0xaa, 0xc0, 0x4a, - 0x30, 0xc7, 0xee, 0x3f, 0x70, 0x59, 0x7a, 0x71, 0xf6, 0x0c, 0x5c, 0xf6, 0x27, 0x16, 0x0c, 0xac, - 0xfb, 0x8d, 0x93, 0x38, 0x02, 0x5e, 0x35, 0x8e, 0x80, 0xc7, 0xf2, 0x62, 0xdd, 0xe7, 0xee, 0xfe, - 0xd5, 0xc4, 0xee, 0x3f, 0x9f, 0x4b, 0xa1, 0xfb, 0xc6, 0x6f, 0xc1, 0x28, 0x8b, 0xa0, 0x2f, 0xdc, - 0xac, 0x9e, 0x37, 0x36, 0xfc, 0x7c, 0x62, 0xc3, 0x4f, 0x6a, 0xa8, 0xda, 0x4e, 0x7f, 0x0a, 0x86, - 0x85, 0xdf, 0x4e, 0xd2, 0x87, 0x55, 0xe0, 0x62, 0x09, 0xb7, 0x7f, 0xbc, 0x08, 0x46, 0xc4, 0x7e, - 0xf4, 0xcb, 0x16, 0x2c, 0x04, 0xdc, 0x9e, 0xb7, 0x51, 0xee, 0x04, 0xae, 0xb7, 0x5d, 0xab, 0xef, - 0x90, 0x46, 0xa7, 0xe9, 0x7a, 0xdb, 0x95, 0x6d, 0xcf, 0x57, 0xc5, 0x2b, 0xf7, 0x48, 0xbd, 0xc3, - 0x94, 0x60, 0x3d, 0xd2, 0x03, 0x28, 0xbb, 0xf8, 0xe7, 0xee, 0x1f, 0xcc, 0x2f, 0xe0, 0x23, 0xd1, - 0xc6, 0x47, 0xec, 0x0b, 0xfa, 0x0d, 0x0b, 0x2e, 0xf3, 0x40, 0xf6, 0xfd, 0xf7, 0xbf, 0xcb, 0x6b, - 0xb9, 0x2a, 0x49, 0xc5, 0x44, 0x36, 0x48, 0xd0, 0x5a, 0xfa, 0x88, 0x18, 0xd0, 0xcb, 0xd5, 0xa3, - 0xb5, 0x85, 0x8f, 0xda, 0x39, 0xfb, 0x5f, 0x14, 0x61, 0x5c, 0x04, 0xb8, 0x12, 0x77, 0xc0, 0x8b, - 0xc6, 0x92, 0x78, 0x3c, 0xb1, 0x24, 0xa6, 0x0d, 0xe4, 0xe3, 0x39, 0xfe, 0x43, 0x98, 0xa6, 0x87, - 0xf3, 0x35, 0xe2, 0x04, 0xd1, 0x26, 0x71, 0xb8, 0xf9, 0x55, 0xf1, 0xc8, 0xa7, 0xbf, 0x12, 0xcf, - 0xdd, 0x48, 0x12, 0xc3, 0x69, 0xfa, 0xdf, 0x4c, 0x77, 0x8e, 0x07, 0x53, 0xa9, 0x18, 0x65, 0x9f, - 0x82, 0x92, 0x72, 0x3a, 0x11, 0x87, 0x4e, 0xf7, 0x50, 0x7f, 0x49, 0x0a, 0x5c, 0x84, 0x16, 0x3b, - 0x3c, 0xc5, 0xe4, 0xec, 0x7f, 0x54, 0x30, 0x1a, 0xe4, 0x93, 0xb8, 0x0e, 0x23, 0x4e, 0x18, 0xba, - 0xdb, 0x1e, 0x69, 0x88, 0x1d, 0xfb, 0xfe, 0xbc, 0x1d, 0x6b, 0x34, 0xc3, 0x1c, 0x7f, 0x16, 0x45, - 0x4d, 0xac, 0x68, 0xa0, 0x6b, 0xdc, 0xc8, 0x6d, 0x4f, 0xbe, 0xf7, 0xfa, 0xa3, 0x06, 0xd2, 0x0c, - 0x6e, 0x8f, 0x60, 0x51, 0x1f, 0x7d, 0x9a, 0x5b, 0x21, 0x5e, 0xf7, 0xfc, 0xbb, 0xde, 0x55, 0xdf, - 0x97, 0x41, 0x24, 0xfa, 0x23, 0x38, 0x2d, 0x6d, 0x0f, 0x55, 0x75, 0x6c, 0x52, 0xeb, 0x2f, 0xe8, - 0xe7, 0xe7, 0x60, 0x86, 0x92, 0x36, 0x7d, 0xbc, 0x43, 0x44, 0x60, 0x52, 0x44, 0x4f, 0x93, 0x65, - 0x62, 0xec, 0x32, 0x9f, 0x72, 0x66, 0xed, 0x58, 0x8e, 0x7c, 0xdd, 0x24, 0x81, 0x93, 0x34, 0xed, - 0x9f, 0xb2, 0x80, 0xf9, 0xbb, 0x9e, 0x00, 0x3f, 0xf2, 0x31, 0x93, 0x1f, 0x99, 0xcd, 0x1b, 0xe4, - 0x1c, 0x56, 0xe4, 0x05, 0xbe, 0xb2, 0xaa, 0x81, 0x7f, 0x6f, 0x5f, 0x98, 0x8e, 0xf4, 0x7e, 0x7f, - 0xd8, 0xff, 0xd7, 0xe2, 0x87, 0x98, 0x72, 0x09, 0x41, 0xdf, 0x0e, 0x23, 0x75, 0xa7, 0xed, 0xd4, - 0x79, 0x7a, 0x99, 0x5c, 0x89, 0x9e, 0x51, 0x69, 0x61, 0x59, 0xd4, 0xe0, 0x12, 0x2a, 0x19, 0x85, - 0x6f, 0x44, 0x16, 0xf7, 0x94, 0x4a, 0xa9, 0x26, 0xe7, 0x76, 0x61, 0xdc, 0x20, 0xf6, 0x50, 0xc5, - 0x19, 0xdf, 0xce, 0xaf, 0x58, 0x15, 0x35, 0xb2, 0x05, 0xd3, 0x9e, 0xf6, 0x9f, 0x5e, 0x28, 0xf2, - 0x71, 0xf9, 0xfe, 0x5e, 0x97, 0x28, 0xbb, 0x7d, 0x34, 0x57, 0xda, 0x04, 0x19, 0x9c, 0xa6, 0x6c, - 0xff, 0x84, 0x05, 0x8f, 0xe8, 0x88, 0x9a, 0xb7, 0x4e, 0x2f, 0x1d, 0x41, 0x19, 0x46, 0xfc, 0x36, - 0x09, 0x9c, 0xc8, 0x0f, 0xc4, 0xad, 0x71, 0x49, 0x0e, 0xfa, 0x4d, 0x51, 0x7e, 0x28, 0x82, 0xb3, - 0x4b, 0xea, 0xb2, 0x1c, 0xab, 0x9a, 0xf4, 0xf5, 0xc9, 0x06, 0x23, 0x14, 0x7e, 0x59, 0xec, 0x0c, - 0x60, 0xea, 0xf2, 0x10, 0x0b, 0x88, 0xfd, 0x35, 0x8b, 0x2f, 0x2c, 0xbd, 0xeb, 0xe8, 0x2d, 0x98, - 0x6a, 0x39, 0x51, 0x7d, 0x67, 0xe5, 0x5e, 0x3b, 0xe0, 0x1a, 0x17, 0x39, 0x4e, 0x4f, 0xf7, 0x1a, - 0x27, 0xed, 0x23, 0x63, 0xc3, 0xca, 0xb5, 0x04, 0x31, 0x9c, 0x22, 0x8f, 0x36, 0x61, 0x94, 0x95, - 0x31, 0x97, 0xc3, 0xb0, 0x1b, 0x6b, 0x90, 0xd7, 0x9a, 0xb2, 0x38, 0x58, 0x8b, 0xe9, 0x60, 0x9d, - 0xa8, 0xfd, 0xe5, 0x22, 0xdf, 0xed, 0x8c, 0x95, 0x7f, 0x0a, 0x86, 0xdb, 0x7e, 0x63, 0xb9, 0x52, - 0xc6, 0x62, 0x16, 0xd4, 0x35, 0x52, 0xe5, 0xc5, 0x58, 0xc2, 0xd1, 0x25, 0x18, 0x11, 0x3f, 0xa5, - 0x86, 0x8c, 0x9d, 0xcd, 0x02, 0x2f, 0xc4, 0x0a, 0x8a, 0x9e, 0x03, 0x68, 0x07, 0xfe, 0x9e, 0xdb, - 0x60, 0xa1, 0x30, 0x8a, 0xa6, 0xb1, 0x50, 0x55, 0x41, 0xb0, 0x86, 0x85, 0x5e, 0x81, 0xf1, 0x8e, - 0x17, 0x72, 0x76, 0x44, 0x0b, 0x7c, 0xab, 0xcc, 0x58, 0x6e, 0xe9, 0x40, 0x6c, 0xe2, 0xa2, 0x45, - 0x18, 0x8a, 0x1c, 0x66, 0xfc, 0x32, 0x98, 0x6f, 0x7c, 0xbb, 0x41, 0x31, 0xf4, 0x4c, 0x26, 0xb4, - 0x02, 0x16, 0x15, 0xd1, 0xa7, 0xa4, 0xf7, 0x2f, 0x3f, 0xd8, 0x85, 0xd5, 0x7b, 0x7f, 0x97, 0x80, - 0xe6, 0xfb, 0x2b, 0xac, 0xe9, 0x0d, 0x5a, 0xe8, 0x65, 0x00, 0x72, 0x2f, 0x22, 0x81, 0xe7, 0x34, - 0x95, 0x6d, 0x99, 0xe2, 0x0b, 0xca, 0xfe, 0xba, 0x1f, 0xdd, 0x0a, 0xc9, 0x8a, 0xc2, 0xc0, 0x1a, - 0xb6, 0xfd, 0x1b, 0x25, 0x80, 0x98, 0x6f, 0x47, 0x6f, 0xa7, 0x0e, 0xae, 0x67, 0xba, 0x73, 0xfa, - 0xc7, 0x77, 0x6a, 0xa1, 0xef, 0xb1, 0x60, 0xd4, 0x69, 0x36, 0xfd, 0xba, 0xc3, 0x43, 0x13, 0x17, - 0xba, 0x1f, 0x9c, 0xa2, 0xfd, 0xc5, 0xb8, 0x06, 0xef, 0xc2, 0xf3, 0x72, 0x85, 0x6a, 0x90, 0x9e, - 0xbd, 0xd0, 0x1b, 0x46, 0x1f, 0x92, 0x4f, 0xc5, 0xa2, 0x31, 0x94, 0xea, 0xa9, 0x58, 0x62, 0x77, - 0x84, 0xfe, 0x4a, 0xbc, 0x65, 0xbc, 0x12, 0x07, 0xf2, 0xdd, 0x1b, 0x0d, 0xf6, 0xb5, 0xd7, 0x03, - 0x11, 0x55, 0xf5, 0x50, 0x07, 0x83, 0xf9, 0xbe, 0x84, 0xda, 0x3b, 0xa9, 0x47, 0x98, 0x83, 0x37, - 0x61, 0xb2, 0x61, 0x32, 0x01, 0x62, 0x25, 0x3e, 0x99, 0x47, 0x37, 0xc1, 0x33, 0xc4, 0xd7, 0x7e, - 0x02, 0x80, 0x93, 0x84, 0x51, 0x95, 0x47, 0xbe, 0xa8, 0x78, 0x5b, 0xbe, 0xf0, 0xbc, 0xb0, 0x73, - 0xe7, 0x72, 0x3f, 0x8c, 0x48, 0x8b, 0x62, 0xc6, 0xb7, 0xfb, 0xba, 0xa8, 0x8b, 0x15, 0x15, 0xf4, - 0x1a, 0x0c, 0x31, 0x67, 0xb2, 0x70, 0x76, 0x24, 0x5f, 0xe2, 0x6c, 0x86, 0x72, 0x8b, 0x37, 0x24, - 0xfb, 0x1b, 0x62, 0x41, 0x01, 0x5d, 0x93, 0xae, 0x9a, 0x61, 0xc5, 0xbb, 0x15, 0x12, 0xe6, 0xaa, - 0x59, 0x5a, 0x7a, 0x7f, 0xec, 0x85, 0xc9, 0xcb, 0x33, 0xf3, 0x9d, 0x19, 0x35, 0x29, 0x17, 0x25, - 0xfe, 0xcb, 0x34, 0x6a, 0xb3, 0x90, 0xdf, 0x3d, 0x33, 0xd5, 0x5a, 0x3c, 0x9c, 0xb7, 0x4d, 0x12, - 0x38, 0x49, 0x93, 0x72, 0xa4, 0x7c, 0xd7, 0x0b, 0xdf, 0x8d, 0x5e, 0x67, 0x07, 0x7f, 0x88, 0xb3, - 0xdb, 0x88, 0x97, 0x60, 0x51, 0xff, 0x44, 0xd9, 0x83, 0x39, 0x0f, 0xa6, 0x92, 0x5b, 0xf4, 0xa1, - 0xb2, 0x23, 0x7f, 0x30, 0x00, 0x13, 0xe6, 0x92, 0x42, 0x97, 0xa1, 0x24, 0x88, 0xa8, 0xd4, 0x07, - 0x6a, 0x97, 0xac, 0x49, 0x00, 0x8e, 0x71, 0x58, 0xc6, 0x0b, 0x56, 0x5d, 0x33, 0xd6, 0x8d, 0x33, - 0x5e, 0x28, 0x08, 0xd6, 0xb0, 0xe8, 0xc3, 0x6a, 0xd3, 0xf7, 0x23, 0x75, 0x21, 0xa9, 0x75, 0xb7, - 0xc4, 0x4a, 0xb1, 0x80, 0xd2, 0x8b, 0x68, 0x97, 0x04, 0x1e, 0x69, 0x9a, 0x41, 0x92, 0xd5, 0x45, - 0x74, 0x5d, 0x07, 0x62, 0x13, 0x97, 0x5e, 0xa7, 0x7e, 0xc8, 0x16, 0xb2, 0x78, 0xbe, 0xc5, 0xc6, - 0xcf, 0x35, 0xee, 0x2d, 0x2e, 0xe1, 0xe8, 0x93, 0xf0, 0x88, 0x0a, 0x04, 0x85, 0xb9, 0x36, 0x43, - 0xb6, 0x38, 0x64, 0x48, 0x5b, 0x1e, 0x59, 0xce, 0x46, 0xc3, 0x79, 0xf5, 0xd1, 0xab, 0x30, 0x21, - 0x58, 0x7c, 0x49, 0x71, 0xd8, 0x34, 0xb0, 0xb9, 0x6e, 0x40, 0x71, 0x02, 0x5b, 0x86, 0x79, 0x66, - 0x5c, 0xb6, 0xa4, 0x30, 0x92, 0x0e, 0xf3, 0xac, 0xc3, 0x71, 0xaa, 0x06, 0x5a, 0x84, 0x49, 0xce, - 0x83, 0xb9, 0xde, 0x36, 0x9f, 0x13, 0xe1, 0x5a, 0xa5, 0xb6, 0xd4, 0x4d, 0x13, 0x8c, 0x93, 0xf8, - 0xe8, 0x25, 0x18, 0x73, 0x82, 0xfa, 0x8e, 0x1b, 0x91, 0x7a, 0xd4, 0x09, 0xb8, 0xcf, 0x95, 0x66, - 0xa1, 0xb4, 0xa8, 0xc1, 0xb0, 0x81, 0x69, 0xbf, 0x0d, 0x33, 0x19, 0x61, 0x24, 0xe8, 0xc2, 0x71, - 0xda, 0xae, 0xfc, 0xa6, 0x84, 0x19, 0xf3, 0x62, 0xb5, 0x22, 0xbf, 0x46, 0xc3, 0xa2, 0xab, 0x93, - 0x85, 0x9b, 0xd0, 0xb2, 0x26, 0xaa, 0xd5, 0xb9, 0x2a, 0x01, 0x38, 0xc6, 0xb1, 0xff, 0x57, 0x01, - 0x26, 0x33, 0x74, 0x2b, 0x2c, 0x73, 0x5f, 0xe2, 0x91, 0x12, 0x27, 0xea, 0x33, 0xa3, 0x86, 0x17, - 0x8e, 0x10, 0x35, 0xbc, 0xd8, 0x2b, 0x6a, 0xf8, 0xc0, 0x3b, 0x89, 0x1a, 0x6e, 0x8e, 0xd8, 0x60, - 0x5f, 0x23, 0x96, 0x11, 0x69, 0x7c, 0xe8, 0x88, 0x91, 0xc6, 0x8d, 0x41, 0x1f, 0xee, 0x63, 0xd0, - 0x7f, 0xb8, 0x00, 0x53, 0x49, 0x4b, 0xca, 0x13, 0x90, 0xdb, 0xbe, 0x66, 0xc8, 0x6d, 0x2f, 0xf5, - 0xe3, 0x38, 0x9b, 0x2b, 0xc3, 0xc5, 0x09, 0x19, 0xee, 0x07, 0xfb, 0xa2, 0xd6, 0x5d, 0x9e, 0xfb, - 0x77, 0x0a, 0x70, 0x3a, 0xd3, 0x73, 0xf7, 0x04, 0xc6, 0xe6, 0xa6, 0x31, 0x36, 0xcf, 0xf6, 0xed, - 0x54, 0x9c, 0x3b, 0x40, 0x77, 0x12, 0x03, 0x74, 0xb9, 0x7f, 0x92, 0xdd, 0x47, 0xe9, 0xab, 0x45, - 0x38, 0x9f, 0x59, 0x2f, 0x16, 0x7b, 0xae, 0x1a, 0x62, 0xcf, 0xe7, 0x12, 0x62, 0x4f, 0xbb, 0x7b, - 0xed, 0xe3, 0x91, 0x83, 0x0a, 0x77, 0x59, 0x16, 0x13, 0xe1, 0x01, 0x65, 0xa0, 0x86, 0xbb, 0xac, - 0x22, 0x84, 0x4d, 0xba, 0xdf, 0x4c, 0xb2, 0xcf, 0x7f, 0x67, 0xc1, 0xd9, 0xcc, 0xb9, 0x39, 0x01, - 0x59, 0xd7, 0xba, 0x29, 0xeb, 0x7a, 0xaa, 0xef, 0xd5, 0x9a, 0x23, 0xfc, 0xfa, 0xb5, 0x81, 0x9c, - 0x6f, 0x61, 0x2f, 0xf9, 0x9b, 0x30, 0xea, 0xd4, 0xeb, 0x24, 0x0c, 0xd7, 0xfc, 0x86, 0x0a, 0x8c, - 0xfc, 0x2c, 0x7b, 0x67, 0xc5, 0xc5, 0x87, 0x07, 0xf3, 0x73, 0x49, 0x12, 0x31, 0x18, 0xeb, 0x14, - 0xd0, 0xa7, 0x61, 0x24, 0x14, 0xf7, 0xa6, 0x98, 0xfb, 0xe7, 0xfb, 0x1c, 0x1c, 0x67, 0x93, 0x34, - 0xcd, 0xc8, 0x4d, 0x4a, 0x52, 0xa1, 0x48, 0x9a, 0x51, 0x5e, 0x0a, 0xc7, 0x1a, 0xe5, 0xe5, 0x39, - 0x80, 0x3d, 0xf5, 0x18, 0x48, 0xca, 0x1f, 0xb4, 0x67, 0x82, 0x86, 0x85, 0x3e, 0x0e, 0x53, 0x21, - 0x0f, 0x6d, 0xb8, 0xdc, 0x74, 0x42, 0xe6, 0x2c, 0x23, 0x56, 0x21, 0x8b, 0x0e, 0x55, 0x4b, 0xc0, - 0x70, 0x0a, 0x1b, 0xad, 0xca, 0x56, 0x59, 0x1c, 0x46, 0xbe, 0x30, 0x2f, 0xc6, 0x2d, 0x8a, 0xbc, - 0xc1, 0xa7, 0x92, 0xc3, 0xcf, 0x06, 0x5e, 0xab, 0x89, 0x3e, 0x0d, 0x40, 0x97, 0x8f, 0x90, 0x43, - 0x0c, 0xe7, 0x1f, 0x9e, 0xf4, 0x54, 0x69, 0x64, 0xda, 0xf6, 0x32, 0x0f, 0xd7, 0xb2, 0x22, 0x82, - 0x35, 0x82, 0xf6, 0x0f, 0x0f, 0xc0, 0xa3, 0x5d, 0xce, 0x48, 0xb4, 0x68, 0xea, 0x61, 0x9f, 0x4e, - 0x3e, 0xae, 0xe7, 0x32, 0x2b, 0x1b, 0xaf, 0xed, 0xc4, 0x52, 0x2c, 0xbc, 0xe3, 0xa5, 0xf8, 0x03, - 0x96, 0x26, 0xf6, 0xe0, 0x16, 0x9f, 0x1f, 0x3b, 0xe2, 0xd9, 0x7f, 0x8c, 0x72, 0x90, 0xad, 0x0c, - 0x61, 0xc2, 0x73, 0x7d, 0x77, 0xa7, 0x6f, 0xe9, 0xc2, 0xc9, 0x4a, 0x89, 0x7f, 0xcb, 0x82, 0x73, - 0x5d, 0x43, 0x7c, 0x7c, 0x03, 0x32, 0x0c, 0xf6, 0xe7, 0x2d, 0x78, 0x3c, 0xb3, 0x86, 0x61, 0x66, - 0x74, 0x19, 0x4a, 0x75, 0x5a, 0xa8, 0x79, 0x69, 0xc6, 0xee, 0xeb, 0x12, 0x80, 0x63, 0x9c, 0x23, - 0x86, 0x2f, 0xf9, 0x15, 0x0b, 0x52, 0x9b, 0xfe, 0x04, 0x6e, 0x9f, 0x8a, 0x79, 0xfb, 0xbc, 0xbf, - 0x9f, 0xd1, 0xcc, 0xb9, 0x78, 0xfe, 0x78, 0x12, 0xce, 0xe4, 0x78, 0x29, 0xed, 0xc1, 0xf4, 0x76, - 0x9d, 0x98, 0xfe, 0xaf, 0xdd, 0xa2, 0xc8, 0x74, 0x75, 0x96, 0x65, 0x99, 0x4d, 0xa7, 0x53, 0x28, - 0x38, 0xdd, 0x04, 0xfa, 0xbc, 0x05, 0xa7, 0x9c, 0xbb, 0xe1, 0x0a, 0xe5, 0x22, 0xdc, 0xfa, 0x52, - 0xd3, 0xaf, 0xef, 0xd2, 0x23, 0x5a, 0x6e, 0x84, 0x17, 0x32, 0x25, 0x3b, 0x77, 0x6a, 0x29, 0x7c, - 0xa3, 0x79, 0x96, 0xea, 0x35, 0x0b, 0x0b, 0x67, 0xb6, 0x85, 0xb0, 0x88, 0xff, 0x4f, 0xdf, 0x28, - 0x5d, 0x3c, 0xb4, 0xb3, 0xdc, 0xc9, 0xf8, 0xb5, 0x28, 0x21, 0x58, 0xd1, 0x41, 0x9f, 0x85, 0xd2, - 0xb6, 0xf4, 0xf1, 0xcc, 0xb8, 0x76, 0xe3, 0x81, 0xec, 0xee, 0xf9, 0xca, 0xd5, 0xb3, 0x0a, 0x09, - 0xc7, 0x44, 0xd1, 0xab, 0x50, 0xf4, 0xb6, 0xc2, 0x6e, 0xd9, 0x52, 0x13, 0x76, 0x78, 0x3c, 0x0e, - 0xc2, 0xfa, 0x6a, 0x0d, 0xd3, 0x8a, 0xe8, 0x1a, 0x14, 0x83, 0xcd, 0x86, 0x10, 0x4b, 0x66, 0x6e, - 0x52, 0xbc, 0x54, 0xce, 0xe9, 0x15, 0xa3, 0x84, 0x97, 0xca, 0x98, 0x92, 0x40, 0x55, 0x18, 0x64, - 0xae, 0x3d, 0xe2, 0x92, 0xcb, 0x64, 0xe7, 0xbb, 0xb8, 0xc8, 0xf1, 0x60, 0x09, 0x0c, 0x01, 0x73, - 0x42, 0x68, 0x03, 0x86, 0xea, 0x2c, 0xb3, 0xa6, 0x88, 0x1b, 0xf7, 0xa1, 0x4c, 0x01, 0x64, 0x97, - 0x94, 0xa3, 0x42, 0x1e, 0xc7, 0x30, 0xb0, 0xa0, 0xc5, 0xa8, 0x92, 0xf6, 0xce, 0x56, 0x28, 0x32, - 0x41, 0x67, 0x53, 0xed, 0x92, 0x49, 0x57, 0x50, 0x65, 0x18, 0x58, 0xd0, 0x42, 0x2f, 0x43, 0x61, - 0xab, 0x2e, 0xdc, 0x76, 0x32, 0x25, 0x91, 0x66, 0x28, 0x8b, 0xa5, 0xa1, 0xfb, 0x07, 0xf3, 0x85, - 0xd5, 0x65, 0x5c, 0xd8, 0xaa, 0xa3, 0x75, 0x18, 0xde, 0xe2, 0xce, 0xef, 0x42, 0xd8, 0xf8, 0x64, - 0xb6, 0x5f, 0x7e, 0xca, 0x3f, 0x9e, 0x7b, 0xac, 0x08, 0x00, 0x96, 0x44, 0x58, 0x38, 0x7d, 0xe5, - 0xc4, 0x2f, 0x42, 0xac, 0x2d, 0x1c, 0x2d, 0xf0, 0x02, 0x67, 0x3a, 0xe2, 0x50, 0x00, 0x58, 0xa3, - 0x48, 0x57, 0xb5, 0x23, 0xd3, 0xf1, 0x8b, 0x60, 0x33, 0x99, 0xab, 0x5a, 0xe5, 0xec, 0xef, 0xb6, - 0xaa, 0x15, 0x12, 0x8e, 0x89, 0xa2, 0x5d, 0x18, 0xdf, 0x0b, 0xdb, 0x3b, 0x44, 0x6e, 0x69, 0x16, - 0x7b, 0x26, 0xe7, 0x5e, 0xbe, 0x2d, 0x10, 0xdd, 0x20, 0xea, 0x38, 0xcd, 0xd4, 0x29, 0xc4, 0x74, - 0xfa, 0xb7, 0x75, 0x62, 0xd8, 0xa4, 0x4d, 0x87, 0xff, 0xad, 0x8e, 0xbf, 0xb9, 0x1f, 0x11, 0x11, - 0x19, 0x2d, 0x73, 0xf8, 0x5f, 0xe7, 0x28, 0xe9, 0xe1, 0x17, 0x00, 0x2c, 0x89, 0xa0, 0xdb, 0x62, - 0x78, 0xd8, 0xe9, 0x39, 0x95, 0x1f, 0xbe, 0x74, 0x51, 0x22, 0xe5, 0x0c, 0x0a, 0x3b, 0x2d, 0x63, - 0x52, 0xec, 0x94, 0x6c, 0xef, 0xf8, 0x91, 0xef, 0x25, 0x4e, 0xe8, 0xe9, 0xfc, 0x53, 0xb2, 0x9a, - 0x81, 0x9f, 0x3e, 0x25, 0xb3, 0xb0, 0x70, 0x66, 0x5b, 0xa8, 0x01, 0x13, 0x6d, 0x3f, 0x88, 0xee, - 0xfa, 0x81, 0x5c, 0x5f, 0xa8, 0x8b, 0xb0, 0xc4, 0xc0, 0x14, 0x2d, 0xb2, 0xa0, 0x83, 0x26, 0x04, - 0x27, 0x68, 0xa2, 0x4f, 0xc0, 0x70, 0x58, 0x77, 0x9a, 0xa4, 0x72, 0x73, 0x76, 0x26, 0xff, 0xfa, - 0xa9, 0x71, 0x94, 0x9c, 0xd5, 0xc5, 0x63, 0xef, 0x73, 0x14, 0x2c, 0xc9, 0xa1, 0x55, 0x18, 0x64, - 0xe9, 0xd2, 0x58, 0x18, 0xbf, 0x9c, 0x28, 0xac, 0x29, 0xab, 0x68, 0x7e, 0x36, 0xb1, 0x62, 0xcc, - 0xab, 0xd3, 0x3d, 0x20, 0xde, 0x0c, 0x7e, 0x38, 0x7b, 0x3a, 0x7f, 0x0f, 0x88, 0xa7, 0xc6, 0xcd, - 0x5a, 0xb7, 0x3d, 0xa0, 0x90, 0x70, 0x4c, 0x94, 0x9e, 0xcc, 0xf4, 0x34, 0x3d, 0xd3, 0xc5, 0x9c, - 0x27, 0xf7, 0x2c, 0x65, 0x27, 0x33, 0x3d, 0x49, 0x29, 0x09, 0xfb, 0xf7, 0x86, 0xd3, 0x3c, 0x0b, - 0x7b, 0x65, 0x7e, 0x97, 0x95, 0x52, 0x40, 0x7e, 0xb8, 0x5f, 0xa1, 0xd7, 0x31, 0xb2, 0xe0, 0x9f, - 0xb7, 0xe0, 0x4c, 0x3b, 0xf3, 0x43, 0x04, 0x03, 0xd0, 0x9f, 0xec, 0x8c, 0x7f, 0xba, 0x0a, 0xf9, - 0x98, 0x0d, 0xc7, 0x39, 0x2d, 0x25, 0x9f, 0x39, 0xc5, 0x77, 0xfc, 0xcc, 0x59, 0x83, 0x11, 0xc6, - 0x64, 0xf6, 0xc8, 0x34, 0x9d, 0x7c, 0xed, 0x31, 0x56, 0x62, 0x59, 0x54, 0xc4, 0x8a, 0x04, 0xfa, - 0x41, 0x0b, 0xce, 0x25, 0xbb, 0x8e, 0x09, 0x03, 0x8b, 0x38, 0x91, 0xfc, 0x81, 0xbb, 0x2a, 0xbe, - 0x3f, 0xc5, 0xff, 0x1b, 0xc8, 0x87, 0xbd, 0x10, 0x70, 0xf7, 0xc6, 0x50, 0x39, 0xe3, 0x85, 0x3d, - 0x64, 0x6a, 0x15, 0xfa, 0x78, 0x65, 0xbf, 0x00, 0x63, 0x2d, 0xbf, 0xe3, 0x45, 0xc2, 0xfa, 0x47, - 0x58, 0x22, 0x30, 0x0d, 0xfc, 0x9a, 0x56, 0x8e, 0x0d, 0xac, 0xc4, 0xdb, 0x7c, 0xe4, 0x81, 0xdf, - 0xe6, 0x6f, 0xc0, 0x98, 0xa7, 0x99, 0xab, 0x0a, 0x7e, 0xe0, 0x62, 0x7e, 0x8c, 0x57, 0xdd, 0xb8, - 0x95, 0xf7, 0x52, 0x2f, 0xc1, 0x06, 0xb5, 0x93, 0x7d, 0xf0, 0x7d, 0xc9, 0xca, 0x60, 0xea, 0xb9, - 0x08, 0xe0, 0xa3, 0xa6, 0x08, 0xe0, 0x62, 0x52, 0x04, 0x90, 0x92, 0x28, 0x1b, 0xaf, 0xff, 0xfe, - 0x53, 0xd8, 0xf4, 0x1b, 0x08, 0xd1, 0x6e, 0xc2, 0x85, 0x5e, 0xd7, 0x12, 0x33, 0x03, 0x6b, 0x28, - 0xfd, 0x61, 0x6c, 0x06, 0xd6, 0xa8, 0x94, 0x31, 0x83, 0xf4, 0x1b, 0x62, 0xc7, 0xfe, 0x1f, 0x16, - 0x14, 0xab, 0x7e, 0xe3, 0x04, 0x1e, 0xbc, 0x1f, 0x33, 0x1e, 0xbc, 0x8f, 0x66, 0x5f, 0x88, 0x8d, - 0x5c, 0x79, 0xf8, 0x4a, 0x42, 0x1e, 0x7e, 0x2e, 0x8f, 0x40, 0x77, 0xe9, 0xf7, 0x4f, 0x16, 0x61, - 0xb4, 0xea, 0x37, 0x94, 0x0d, 0xf6, 0xaf, 0x3d, 0x88, 0x0d, 0x76, 0x6e, 0x22, 0x06, 0x8d, 0x32, - 0xb3, 0x1e, 0x93, 0xee, 0xa7, 0xdf, 0x60, 0xa6, 0xd8, 0x77, 0x88, 0xbb, 0xbd, 0x13, 0x91, 0x46, - 0xf2, 0x73, 0x4e, 0xce, 0x14, 0xfb, 0xbf, 0x5b, 0x30, 0x99, 0x68, 0x1d, 0x35, 0x61, 0xbc, 0xa9, - 0x4b, 0x5b, 0xc5, 0x3a, 0x7d, 0x20, 0x41, 0xad, 0x30, 0x65, 0xd5, 0x8a, 0xb0, 0x49, 0x1c, 0x2d, - 0x00, 0x28, 0xf5, 0xa3, 0x14, 0xeb, 0x31, 0xae, 0x5f, 0xe9, 0x27, 0x43, 0xac, 0x61, 0xa0, 0x17, - 0x61, 0x34, 0xf2, 0xdb, 0x7e, 0xd3, 0xdf, 0xde, 0xbf, 0x4e, 0x64, 0x50, 0x27, 0x65, 0xa0, 0xb6, - 0x11, 0x83, 0xb0, 0x8e, 0x67, 0xff, 0x74, 0x91, 0x7f, 0xa8, 0x17, 0xb9, 0xef, 0xad, 0xc9, 0x77, - 0xf7, 0x9a, 0xfc, 0xaa, 0x05, 0x53, 0xb4, 0x75, 0x66, 0x03, 0x23, 0x2f, 0x5b, 0x15, 0xdb, 0xd9, - 0xea, 0x12, 0xdb, 0xf9, 0x22, 0x3d, 0xbb, 0x1a, 0x7e, 0x27, 0x12, 0x12, 0x34, 0xed, 0x70, 0xa2, - 0xa5, 0x58, 0x40, 0x05, 0x1e, 0x09, 0x02, 0xe1, 0xb7, 0xa7, 0xe3, 0x91, 0x20, 0xc0, 0x02, 0x2a, - 0x43, 0x3f, 0x0f, 0x64, 0x87, 0x7e, 0xe6, 0x21, 0x2a, 0x85, 0xb5, 0x84, 0x60, 0x7b, 0xb4, 0x10, - 0x95, 0xd2, 0x8c, 0x22, 0xc6, 0xb1, 0x7f, 0xb6, 0x08, 0x63, 0x55, 0xbf, 0x11, 0x2b, 0x00, 0x5f, - 0x30, 0x14, 0x80, 0x17, 0x12, 0x0a, 0xc0, 0x29, 0x1d, 0xf7, 0x3d, 0x75, 0xdf, 0xd7, 0x4b, 0xdd, - 0xf7, 0xcf, 0x2d, 0x36, 0x6b, 0xe5, 0xf5, 0x1a, 0x37, 0xa9, 0x42, 0x57, 0x60, 0x94, 0x1d, 0x48, - 0xcc, 0x51, 0x54, 0x6a, 0xc5, 0x58, 0x4a, 0xa3, 0xf5, 0xb8, 0x18, 0xeb, 0x38, 0xe8, 0x12, 0x8c, - 0x84, 0xc4, 0x09, 0xea, 0x3b, 0xea, 0x8c, 0x13, 0x2a, 0x2c, 0x5e, 0x86, 0x15, 0x14, 0xbd, 0x1e, - 0x47, 0x47, 0x2c, 0xe6, 0x3b, 0x9e, 0xe9, 0xfd, 0xe1, 0x5b, 0x24, 0x3f, 0x24, 0xa2, 0x7d, 0x07, - 0x50, 0x1a, 0xbf, 0x8f, 0xb0, 0x60, 0xf3, 0x66, 0x58, 0xb0, 0x52, 0x2a, 0x24, 0xd8, 0x9f, 0x5b, - 0x30, 0x51, 0xf5, 0x1b, 0x74, 0xeb, 0x7e, 0x33, 0xed, 0x53, 0x3d, 0x34, 0xec, 0x50, 0x97, 0xd0, - 0xb0, 0x4f, 0xc0, 0x60, 0xd5, 0x6f, 0x54, 0xaa, 0xdd, 0xbc, 0xbe, 0xed, 0xbf, 0x6b, 0xc1, 0x70, - 0xd5, 0x6f, 0x9c, 0x80, 0x70, 0xfe, 0xa3, 0xa6, 0x70, 0xfe, 0x91, 0x9c, 0x75, 0x93, 0x23, 0x8f, - 0xff, 0xdb, 0x03, 0x30, 0x4e, 0xfb, 0xe9, 0x6f, 0xcb, 0xa9, 0x34, 0x86, 0xcd, 0xea, 0x63, 0xd8, - 0x28, 0x2f, 0xec, 0x37, 0x9b, 0xfe, 0xdd, 0xe4, 0xb4, 0xae, 0xb2, 0x52, 0x2c, 0xa0, 0xe8, 0x19, - 0x18, 0x69, 0x07, 0x64, 0xcf, 0xf5, 0x05, 0x93, 0xa9, 0xa9, 0x3a, 0xaa, 0xa2, 0x1c, 0x2b, 0x0c, - 0xfa, 0x38, 0x0b, 0x5d, 0xaf, 0x4e, 0x6a, 0xa4, 0xee, 0x7b, 0x0d, 0x2e, 0xbf, 0x2e, 0x8a, 0xf4, - 0x0e, 0x5a, 0x39, 0x36, 0xb0, 0xd0, 0x1d, 0x28, 0xb1, 0xff, 0xec, 0xd8, 0x39, 0x7a, 0xa2, 0x50, - 0x91, 0x38, 0x4e, 0x10, 0xc0, 0x31, 0x2d, 0xf4, 0x1c, 0x40, 0x24, 0x63, 0x80, 0x87, 0x22, 0x04, - 0x94, 0x62, 0xc8, 0x55, 0x74, 0xf0, 0x10, 0x6b, 0x58, 0xe8, 0x69, 0x28, 0x45, 0x8e, 0xdb, 0xbc, - 0xe1, 0x7a, 0x24, 0x64, 0x72, 0xe9, 0xa2, 0xcc, 0xdf, 0x26, 0x0a, 0x71, 0x0c, 0xa7, 0x0c, 0x11, - 0x8b, 0x8f, 0xc0, 0xd3, 0x0c, 0x8f, 0x30, 0x6c, 0xc6, 0x10, 0xdd, 0x50, 0xa5, 0x58, 0xc3, 0x40, - 0x3b, 0xf0, 0x98, 0xeb, 0xb1, 0x54, 0x08, 0xa4, 0xb6, 0xeb, 0xb6, 0x37, 0x6e, 0xd4, 0x6e, 0x93, - 0xc0, 0xdd, 0xda, 0x5f, 0x72, 0xea, 0xbb, 0xc4, 0x93, 0x29, 0x20, 0xdf, 0x2f, 0xba, 0xf8, 0x58, - 0xa5, 0x0b, 0x2e, 0xee, 0x4a, 0xc9, 0x7e, 0x09, 0x4e, 0x57, 0xfd, 0x46, 0xd5, 0x0f, 0xa2, 0x55, - 0x3f, 0xb8, 0xeb, 0x04, 0x0d, 0xb9, 0x52, 0xe6, 0x65, 0xac, 0x02, 0x7a, 0x14, 0x0e, 0xf2, 0x83, - 0xc2, 0x88, 0x43, 0xf0, 0x3c, 0x63, 0xbe, 0x8e, 0xe8, 0x61, 0x53, 0x67, 0x6c, 0x80, 0xca, 0x0b, - 0x72, 0xd5, 0x89, 0x08, 0xba, 0xc9, 0xf2, 0x1d, 0xc7, 0x37, 0xa2, 0xa8, 0xfe, 0x94, 0x96, 0xef, - 0x38, 0x06, 0x66, 0x5e, 0xa1, 0x66, 0x7d, 0xfb, 0x7f, 0x0e, 0xb2, 0xc3, 0x31, 0x91, 0x5b, 0x02, - 0x7d, 0x06, 0x26, 0x42, 0x72, 0xc3, 0xf5, 0x3a, 0xf7, 0xa4, 0x4c, 0xa0, 0x8b, 0x8f, 0x54, 0x6d, - 0x45, 0xc7, 0xe4, 0x92, 0x45, 0xb3, 0x0c, 0x27, 0xa8, 0xa1, 0x16, 0x4c, 0xdc, 0x75, 0xbd, 0x86, - 0x7f, 0x37, 0x94, 0xf4, 0x47, 0xf2, 0x05, 0x8c, 0x77, 0x38, 0x66, 0xa2, 0x8f, 0x46, 0x73, 0x77, - 0x0c, 0x62, 0x38, 0x41, 0x9c, 0x2e, 0xc0, 0xa0, 0xe3, 0x2d, 0x86, 0xb7, 0x42, 0x12, 0x88, 0xcc, - 0xd5, 0x6c, 0x01, 0x62, 0x59, 0x88, 0x63, 0x38, 0x5d, 0x80, 0xec, 0xcf, 0xd5, 0xc0, 0xef, 0xf0, - 0x48, 0xfd, 0x62, 0x01, 0x62, 0x55, 0x8a, 0x35, 0x0c, 0xba, 0x41, 0xd9, 0xbf, 0x75, 0xdf, 0xc3, - 0xbe, 0x1f, 0xc9, 0x2d, 0xcd, 0x72, 0xa5, 0x6a, 0xe5, 0xd8, 0xc0, 0x42, 0xab, 0x80, 0xc2, 0x4e, - 0xbb, 0xdd, 0x64, 0xc6, 0x17, 0x4e, 0x93, 0x91, 0xe2, 0x8a, 0xef, 0x22, 0x0f, 0x60, 0x5a, 0x4b, - 0x41, 0x71, 0x46, 0x0d, 0x7a, 0x56, 0x6f, 0x89, 0xae, 0x0e, 0xb2, 0xae, 0x72, 0x65, 0x44, 0x8d, - 0xf7, 0x53, 0xc2, 0xd0, 0x0a, 0x0c, 0x87, 0xfb, 0x61, 0x3d, 0x12, 0x91, 0xd8, 0x72, 0xd2, 0x07, - 0xd5, 0x18, 0x8a, 0x96, 0xbd, 0x8e, 0x57, 0xc1, 0xb2, 0x2e, 0xaa, 0xc3, 0x8c, 0xa0, 0xb8, 0xbc, - 0xe3, 0x78, 0x2a, 0x19, 0x0b, 0xb7, 0x41, 0xbd, 0x72, 0xff, 0x60, 0x7e, 0x46, 0xb4, 0xac, 0x83, - 0x0f, 0x0f, 0xe6, 0xcf, 0x54, 0xfd, 0x46, 0x06, 0x04, 0x67, 0x51, 0xe3, 0x8b, 0xaf, 0x5e, 0xf7, - 0x5b, 0xed, 0x6a, 0xe0, 0x6f, 0xb9, 0x4d, 0xd2, 0x4d, 0xa1, 0x53, 0x33, 0x30, 0xc5, 0xe2, 0x33, - 0xca, 0x70, 0x82, 0x9a, 0xfd, 0xed, 0x8c, 0x9f, 0x61, 0xc9, 0x9a, 0xa3, 0x4e, 0x40, 0x50, 0x0b, - 0xc6, 0xdb, 0x6c, 0x9b, 0x88, 0xf8, 0xf9, 0x62, 0xad, 0xbf, 0xd0, 0xa7, 0x60, 0xe2, 0x2e, 0xbd, - 0x06, 0x94, 0xe0, 0x90, 0xbd, 0xf8, 0xaa, 0x3a, 0x39, 0x6c, 0x52, 0xb7, 0x7f, 0xec, 0x11, 0x76, - 0x23, 0xd6, 0xb8, 0xb4, 0x61, 0x58, 0x98, 0xbc, 0x8b, 0xa7, 0xd5, 0x5c, 0xbe, 0xd8, 0x2b, 0x9e, - 0x16, 0x61, 0x36, 0x8f, 0x65, 0x5d, 0xf4, 0x69, 0x98, 0xa0, 0x2f, 0x15, 0x2d, 0x0b, 0xca, 0xa9, - 0xfc, 0xd0, 0x04, 0x71, 0xf2, 0x13, 0x2d, 0xb7, 0x86, 0x5e, 0x19, 0x27, 0x88, 0xa1, 0xd7, 0x99, - 0x71, 0x86, 0x99, 0x60, 0xa5, 0x07, 0x69, 0xdd, 0x0e, 0x43, 0x92, 0xd5, 0x88, 0xe4, 0x25, 0x6f, - 0xb1, 0x1f, 0x6e, 0xf2, 0x16, 0x74, 0x03, 0xc6, 0x45, 0xc6, 0x62, 0xb1, 0x72, 0x8b, 0x86, 0x34, - 0x6e, 0x1c, 0xeb, 0xc0, 0xc3, 0x64, 0x01, 0x36, 0x2b, 0xa3, 0x6d, 0x38, 0xa7, 0x65, 0x10, 0xba, - 0x1a, 0x38, 0x4c, 0xa5, 0xee, 0xb2, 0xe3, 0x54, 0xbb, 0xab, 0x1f, 0xbf, 0x7f, 0x30, 0x7f, 0x6e, - 0xa3, 0x1b, 0x22, 0xee, 0x4e, 0x07, 0xdd, 0x84, 0xd3, 0xdc, 0xb1, 0xb6, 0x4c, 0x9c, 0x46, 0xd3, - 0xf5, 0x14, 0x33, 0xc0, 0xb7, 0xfc, 0xd9, 0xfb, 0x07, 0xf3, 0xa7, 0x17, 0xb3, 0x10, 0x70, 0x76, - 0x3d, 0xf4, 0x51, 0x28, 0x35, 0xbc, 0x50, 0x8c, 0xc1, 0x90, 0x91, 0xa4, 0xa9, 0x54, 0x5e, 0xaf, - 0xa9, 0xef, 0x8f, 0xff, 0xe0, 0xb8, 0x02, 0xda, 0xe6, 0x12, 0x5b, 0x25, 0x20, 0x19, 0x4e, 0x05, - 0x16, 0x4a, 0x8a, 0xda, 0x0c, 0xd7, 0x3a, 0xae, 0xaa, 0x50, 0x16, 0xe7, 0x86, 0xd7, 0x9d, 0x41, - 0x18, 0xbd, 0x06, 0x88, 0xbe, 0x20, 0xdc, 0x3a, 0x59, 0xac, 0xb3, 0xe4, 0x0c, 0x4c, 0xc0, 0x3d, - 0x62, 0x3a, 0x7b, 0xd5, 0x52, 0x18, 0x38, 0xa3, 0x16, 0xba, 0x46, 0x4f, 0x15, 0xbd, 0x54, 0x9c, - 0x5a, 0x2a, 0xa5, 0x5e, 0x99, 0xb4, 0x03, 0x52, 0x77, 0x22, 0xd2, 0x30, 0x29, 0xe2, 0x44, 0x3d, - 0xd4, 0x80, 0xc7, 0x9c, 0x4e, 0xe4, 0x33, 0x61, 0xb8, 0x89, 0xba, 0xe1, 0xef, 0x12, 0x8f, 0xe9, - 0xa1, 0x46, 0x96, 0x2e, 0x50, 0x6e, 0x63, 0xb1, 0x0b, 0x1e, 0xee, 0x4a, 0x85, 0x72, 0x89, 0x2a, - 0x87, 0x2e, 0x98, 0xe1, 0x92, 0x32, 0xf2, 0xe8, 0xbe, 0x08, 0xa3, 0x3b, 0x7e, 0x18, 0xad, 0x93, - 0xe8, 0xae, 0x1f, 0xec, 0x8a, 0xa8, 0x97, 0x71, 0xa4, 0xe4, 0x18, 0x84, 0x75, 0x3c, 0xfa, 0x0c, - 0x64, 0x56, 0x12, 0x95, 0x32, 0x53, 0x50, 0x8f, 0xc4, 0x67, 0xcc, 0x35, 0x5e, 0x8c, 0x25, 0x5c, - 0xa2, 0x56, 0xaa, 0xcb, 0x4c, 0xd9, 0x9c, 0x40, 0xad, 0x54, 0x97, 0xb1, 0x84, 0xd3, 0xe5, 0x1a, - 0xee, 0x38, 0x01, 0xa9, 0x06, 0x7e, 0x9d, 0x84, 0x5a, 0x7c, 0xee, 0x47, 0x79, 0x4c, 0x4f, 0xba, - 0x5c, 0x6b, 0x59, 0x08, 0x38, 0xbb, 0x1e, 0x22, 0xe9, 0xec, 0x59, 0x13, 0xf9, 0x5a, 0x82, 0x34, - 0x3f, 0xd3, 0x67, 0x02, 0x2d, 0x0f, 0xa6, 0x54, 0xde, 0x2e, 0x1e, 0xc5, 0x33, 0x9c, 0x9d, 0x64, - 0x6b, 0xbb, 0xff, 0x10, 0xa0, 0x4a, 0xef, 0x52, 0x49, 0x50, 0xc2, 0x29, 0xda, 0x46, 0x44, 0xac, - 0xa9, 0x9e, 0x11, 0xb1, 0x2e, 0x43, 0x29, 0xec, 0x6c, 0x36, 0xfc, 0x96, 0xe3, 0x7a, 0x4c, 0xd9, - 0xac, 0xbd, 0x47, 0x6a, 0x12, 0x80, 0x63, 0x1c, 0xb4, 0x0a, 0x23, 0x8e, 0x54, 0xaa, 0xa0, 0xfc, - 0x18, 0x28, 0x4a, 0x95, 0xc2, 0xc3, 0x02, 0x48, 0x35, 0x8a, 0xaa, 0x8b, 0x5e, 0x81, 0x71, 0xe1, - 0x18, 0x2a, 0x52, 0x46, 0xce, 0x98, 0xde, 0x3b, 0x35, 0x1d, 0x88, 0x4d, 0x5c, 0x74, 0x0b, 0x46, - 0x23, 0xbf, 0xc9, 0x5c, 0x50, 0x28, 0x9b, 0x77, 0x26, 0x3f, 0x9a, 0xd7, 0x86, 0x42, 0xd3, 0xe5, - 0x99, 0xaa, 0x2a, 0xd6, 0xe9, 0xa0, 0x0d, 0xbe, 0xde, 0x59, 0x9c, 0x6a, 0x12, 0xce, 0x3e, 0x92, - 0x7f, 0x27, 0xa9, 0x70, 0xd6, 0xe6, 0x76, 0x10, 0x35, 0xb1, 0x4e, 0x06, 0x5d, 0x85, 0xe9, 0x76, - 0xe0, 0xfa, 0x6c, 0x4d, 0x28, 0x7d, 0xda, 0xac, 0x99, 0x24, 0xa7, 0x9a, 0x44, 0xc0, 0xe9, 0x3a, - 0xcc, 0xaf, 0x57, 0x14, 0xce, 0x9e, 0xe5, 0x59, 0xa5, 0xf9, 0xf3, 0x8e, 0x97, 0x61, 0x05, 0x45, - 0x6b, 0xec, 0x24, 0xe6, 0x92, 0x89, 0xd9, 0xb9, 0xfc, 0xb0, 0x2b, 0xba, 0x04, 0x83, 0x33, 0xaf, - 0xea, 0x2f, 0x8e, 0x29, 0xa0, 0x86, 0x96, 0x7e, 0x90, 0xbe, 0x18, 0xc2, 0xd9, 0xc7, 0xba, 0x98, - 0xaa, 0x25, 0x9e, 0x17, 0x31, 0x43, 0x60, 0x14, 0x87, 0x38, 0x41, 0x13, 0x7d, 0x1c, 0xa6, 0x44, - 0xb0, 0xb8, 0x78, 0x98, 0xce, 0xc5, 0x86, 0xbd, 0x38, 0x01, 0xc3, 0x29, 0x6c, 0x1e, 0xbf, 0xdf, - 0xd9, 0x6c, 0x12, 0x71, 0xf4, 0xdd, 0x70, 0xbd, 0xdd, 0x70, 0xf6, 0x3c, 0x3b, 0x1f, 0x44, 0xfc, - 0xfe, 0x24, 0x14, 0x67, 0xd4, 0x40, 0x1b, 0x30, 0xd5, 0x0e, 0x08, 0x69, 0x31, 0x46, 0x5f, 0xdc, - 0x67, 0xf3, 0xdc, 0xad, 0x9d, 0xf6, 0xa4, 0x9a, 0x80, 0x1d, 0x66, 0x94, 0xe1, 0x14, 0x05, 0x74, - 0x17, 0x46, 0xfc, 0x3d, 0x12, 0xec, 0x10, 0xa7, 0x31, 0x7b, 0xa1, 0x8b, 0xa1, 0xb9, 0xb8, 0xdc, - 0x6e, 0x0a, 0xdc, 0x84, 0x0e, 0x5e, 0x16, 0xf7, 0xd6, 0xc1, 0xcb, 0xc6, 0xd0, 0x0f, 0x59, 0x70, - 0x56, 0x8a, 0xed, 0x6b, 0x6d, 0x3a, 0xea, 0xcb, 0xbe, 0x17, 0x46, 0x01, 0x77, 0xc4, 0x7e, 0x3c, - 0xdf, 0x39, 0x79, 0x23, 0xa7, 0x92, 0x12, 0x8e, 0x9e, 0xcd, 0xc3, 0x08, 0x71, 0x7e, 0x8b, 0x68, - 0x19, 0xa6, 0x43, 0x12, 0xc9, 0xc3, 0x68, 0x31, 0x5c, 0x7d, 0xbd, 0xbc, 0x3e, 0xfb, 0x04, 0xf7, - 0x22, 0xa7, 0x9b, 0xa1, 0x96, 0x04, 0xe2, 0x34, 0xfe, 0xdc, 0xb7, 0xc2, 0x74, 0xea, 0xfa, 0x3f, - 0x4a, 0x5e, 0x92, 0xb9, 0x5d, 0x18, 0x37, 0x86, 0xf8, 0xa1, 0xea, 0x70, 0xff, 0xcd, 0x30, 0x94, - 0x94, 0x7e, 0x0f, 0x5d, 0x36, 0xd5, 0xb6, 0x67, 0x93, 0x6a, 0xdb, 0x11, 0xfa, 0xae, 0xd7, 0x35, - 0xb5, 0x1b, 0x19, 0xb1, 0xb3, 0xf2, 0x36, 0x74, 0xff, 0x4e, 0xd1, 0x9a, 0xb8, 0xb6, 0xd8, 0xb7, - 0xfe, 0x77, 0xa0, 0xab, 0x04, 0xf8, 0x2a, 0x4c, 0x7b, 0x3e, 0xe3, 0x39, 0x49, 0x43, 0x32, 0x14, - 0x8c, 0x6f, 0x28, 0xe9, 0xc1, 0x28, 0x12, 0x08, 0x38, 0x5d, 0x87, 0x36, 0xc8, 0x2f, 0xfe, 0xa4, - 0xc8, 0x99, 0xf3, 0x05, 0x58, 0x40, 0xd1, 0x13, 0x30, 0xd8, 0xf6, 0x1b, 0x95, 0xaa, 0xe0, 0x37, - 0xb5, 0x88, 0x8d, 0x8d, 0x4a, 0x15, 0x73, 0x18, 0x5a, 0x84, 0x21, 0xf6, 0x23, 0x9c, 0x1d, 0xcb, - 0x8f, 0x3a, 0xc0, 0x6a, 0x68, 0x59, 0x5f, 0x58, 0x05, 0x2c, 0x2a, 0x32, 0xd1, 0x17, 0x65, 0xd2, - 0x99, 0xe8, 0x6b, 0xf8, 0x01, 0x45, 0x5f, 0x92, 0x00, 0x8e, 0x69, 0xa1, 0x7b, 0x70, 0xda, 0x78, - 0x18, 0xf1, 0x25, 0x42, 0x42, 0xe1, 0xf9, 0xfc, 0x44, 0xd7, 0x17, 0x91, 0xd0, 0x17, 0x9f, 0x13, - 0x9d, 0x3e, 0x5d, 0xc9, 0xa2, 0x84, 0xb3, 0x1b, 0x40, 0x4d, 0x98, 0xae, 0xa7, 0x5a, 0x1d, 0xe9, - 0xbf, 0x55, 0x35, 0xa1, 0xe9, 0x16, 0xd3, 0x84, 0xd1, 0x2b, 0x30, 0xf2, 0x96, 0x1f, 0xb2, 0xb3, - 0x5a, 0xf0, 0xc8, 0xd2, 0x6d, 0x76, 0xe4, 0xf5, 0x9b, 0x35, 0x56, 0x7e, 0x78, 0x30, 0x3f, 0x5a, - 0xf5, 0x1b, 0xf2, 0x2f, 0x56, 0x15, 0xd0, 0xf7, 0x5a, 0x30, 0x97, 0x7e, 0x79, 0xa9, 0x4e, 0x8f, - 0xf7, 0xdf, 0x69, 0x5b, 0x34, 0x3a, 0xb7, 0x92, 0x4b, 0x0e, 0x77, 0x69, 0xca, 0xfe, 0x25, 0xae, - 0xdb, 0x15, 0x1a, 0x20, 0x12, 0x76, 0x9a, 0x27, 0x91, 0xec, 0x72, 0xc5, 0x50, 0x4e, 0x3d, 0xb0, - 0xfd, 0xc0, 0xbf, 0xb4, 0x98, 0xfd, 0xc0, 0x09, 0x3a, 0x0a, 0xbc, 0x0e, 0x23, 0x91, 0x4c, 0x59, - 0xda, 0x25, 0x3f, 0xa7, 0xd6, 0x29, 0x66, 0x43, 0xa1, 0x38, 0x56, 0x95, 0x9d, 0x54, 0x91, 0xb1, - 0xff, 0x09, 0x9f, 0x01, 0x09, 0x39, 0x01, 0x1d, 0x40, 0xd9, 0xd4, 0x01, 0xcc, 0xf7, 0xf8, 0x82, - 0x1c, 0x5d, 0xc0, 0x3f, 0x36, 0xfb, 0xcd, 0x24, 0x35, 0xef, 0x76, 0xc3, 0x15, 0xfb, 0x0b, 0x16, - 0x40, 0x1c, 0x10, 0x97, 0xc9, 0x97, 0xfd, 0x40, 0x66, 0x3a, 0xcc, 0xca, 0xe9, 0xf3, 0x12, 0xe5, - 0x51, 0xfd, 0xc8, 0xaf, 0xfb, 0x4d, 0xa1, 0xe1, 0x7a, 0x2c, 0x56, 0x43, 0xf0, 0xf2, 0x43, 0xed, - 0x37, 0x56, 0xd8, 0x68, 0x5e, 0x86, 0xdf, 0x2a, 0xc6, 0x8a, 0x31, 0x23, 0xf4, 0xd6, 0x8f, 0x58, - 0x70, 0x2a, 0xcb, 0xea, 0x94, 0xbe, 0x78, 0xb8, 0xcc, 0x4a, 0x19, 0x15, 0xa9, 0xd9, 0xbc, 0x2d, - 0xca, 0xb1, 0xc2, 0xe8, 0x3b, 0x7f, 0xd7, 0xd1, 0x22, 0xd1, 0xde, 0x84, 0xf1, 0x6a, 0x40, 0xb4, - 0xcb, 0xf5, 0x55, 0xee, 0xd2, 0xcd, 0xfb, 0xf3, 0xcc, 0x91, 0xdd, 0xb9, 0xed, 0x2f, 0x17, 0xe0, - 0x14, 0xb7, 0x0a, 0x58, 0xdc, 0xf3, 0xdd, 0x46, 0xd5, 0x6f, 0x88, 0xdc, 0x6b, 0x9f, 0x82, 0xb1, - 0xb6, 0x26, 0x68, 0xec, 0x16, 0x55, 0x51, 0x17, 0x48, 0xc6, 0xa2, 0x11, 0xbd, 0x14, 0x1b, 0xb4, - 0x50, 0x03, 0xc6, 0xc8, 0x9e, 0x5b, 0x57, 0xaa, 0xe5, 0xc2, 0x91, 0x2f, 0x3a, 0xd5, 0xca, 0x8a, - 0x46, 0x07, 0x1b, 0x54, 0x1f, 0x42, 0x56, 0x5d, 0xfb, 0x47, 0x2d, 0x78, 0x24, 0x27, 0x06, 0x23, - 0x6d, 0xee, 0x2e, 0xb3, 0xbf, 0x10, 0xcb, 0x56, 0x35, 0xc7, 0xad, 0x32, 0xb0, 0x80, 0xa2, 0x4f, - 0x00, 0x70, 0xab, 0x0a, 0xfa, 0xe4, 0xee, 0x15, 0xac, 0xce, 0x88, 0xb3, 0xa5, 0x85, 0x4c, 0x92, - 0xf5, 0xb1, 0x46, 0xcb, 0xfe, 0xa9, 0x22, 0x0c, 0xf2, 0x04, 0xe9, 0xab, 0x30, 0xbc, 0xc3, 0x33, - 0x52, 0xf4, 0x93, 0xfc, 0x22, 0x16, 0x86, 0xf0, 0x02, 0x2c, 0x2b, 0xa3, 0x35, 0x98, 0xe1, 0x19, - 0x3d, 0x9a, 0x65, 0xd2, 0x74, 0xf6, 0xa5, 0xe4, 0x8e, 0x67, 0xc3, 0x54, 0x12, 0xcc, 0x4a, 0x1a, - 0x05, 0x67, 0xd5, 0x43, 0xaf, 0xc2, 0x04, 0x7d, 0x49, 0xf9, 0x9d, 0x48, 0x52, 0xe2, 0xb9, 0x3c, - 0xd4, 0xd3, 0x6d, 0xc3, 0x80, 0xe2, 0x04, 0x36, 0x7d, 0xcc, 0xb7, 0x53, 0x32, 0xca, 0xc1, 0xf8, - 0x31, 0x6f, 0xca, 0x25, 0x4d, 0x5c, 0x66, 0x6e, 0xda, 0x61, 0xc6, 0xb5, 0x1b, 0x3b, 0x01, 0x09, - 0x77, 0xfc, 0x66, 0x83, 0x31, 0x7d, 0x83, 0x9a, 0xb9, 0x69, 0x02, 0x8e, 0x53, 0x35, 0x28, 0x95, - 0x2d, 0xc7, 0x6d, 0x76, 0x02, 0x12, 0x53, 0x19, 0x32, 0xa9, 0xac, 0x26, 0xe0, 0x38, 0x55, 0x83, - 0xae, 0xa3, 0xd3, 0xd5, 0xc0, 0xa7, 0x07, 0xa9, 0x0c, 0x2c, 0xa3, 0x6c, 0x88, 0x87, 0xa5, 0x0f, - 0x6c, 0x97, 0x10, 0x6c, 0xc2, 0xca, 0x92, 0x53, 0x30, 0x0c, 0x08, 0x6a, 0xc2, 0xfb, 0x55, 0x52, - 0x41, 0x57, 0x60, 0x54, 0xe4, 0x69, 0x60, 0xa6, 0xae, 0x7c, 0xea, 0x98, 0xc1, 0x43, 0x39, 0x2e, - 0xc6, 0x3a, 0x8e, 0xfd, 0x7d, 0x05, 0x98, 0xc9, 0xf0, 0x55, 0xe0, 0x47, 0xd5, 0xb6, 0x1b, 0x46, - 0x2a, 0xe3, 0x9f, 0x76, 0x54, 0xf1, 0x72, 0xac, 0x30, 0xe8, 0x7e, 0xe0, 0x87, 0x61, 0xf2, 0x00, - 0x14, 0xb6, 0xc0, 0x02, 0x7a, 0xc4, 0xdc, 0x79, 0x17, 0x60, 0xa0, 0x13, 0x12, 0x19, 0x3c, 0x51, - 0x5d, 0x0d, 0x4c, 0x0f, 0xc6, 0x20, 0x94, 0x55, 0xdf, 0x56, 0x2a, 0x25, 0x8d, 0x55, 0xe7, 0x4a, - 0x25, 0x0e, 0xa3, 0x9d, 0x8b, 0x88, 0xe7, 0x78, 0x91, 0x60, 0xe8, 0xe3, 0x28, 0x60, 0xac, 0x14, - 0x0b, 0xa8, 0xfd, 0xc5, 0x22, 0x9c, 0xcd, 0xf5, 0x5e, 0xa2, 0x5d, 0x6f, 0xf9, 0x9e, 0x1b, 0xf9, - 0xca, 0x92, 0x84, 0x47, 0xfe, 0x22, 0xed, 0x9d, 0x35, 0x51, 0x8e, 0x15, 0x06, 0xba, 0x08, 0x83, - 0x4c, 0x8a, 0x96, 0xca, 0x7d, 0xb8, 0x54, 0xe6, 0xa1, 0x60, 0x38, 0xb8, 0xef, 0xbc, 0xb2, 0x4f, - 0xd0, 0x5b, 0xd2, 0x6f, 0x26, 0x0f, 0x2d, 0xda, 0x5d, 0xdf, 0x6f, 0x62, 0x06, 0x44, 0x1f, 0x10, - 0xe3, 0x95, 0x30, 0x9d, 0xc0, 0x4e, 0xc3, 0x0f, 0xb5, 0x41, 0x7b, 0x0a, 0x86, 0x77, 0xc9, 0x7e, - 0xe0, 0x7a, 0xdb, 0x49, 0x93, 0x9a, 0xeb, 0xbc, 0x18, 0x4b, 0xb8, 0x99, 0xc6, 0x6a, 0xf8, 0xb8, - 0x13, 0xc2, 0x8e, 0xf4, 0xbc, 0x02, 0x7f, 0xa0, 0x08, 0x93, 0x78, 0xa9, 0xfc, 0xde, 0x44, 0xdc, - 0x4a, 0x4f, 0xc4, 0x71, 0x27, 0x84, 0xed, 0x3d, 0x1b, 0x3f, 0x6f, 0xc1, 0x24, 0xcb, 0x16, 0x21, - 0x62, 0x46, 0xb9, 0xbe, 0x77, 0x02, 0xec, 0xe6, 0x13, 0x30, 0x18, 0xd0, 0x46, 0x93, 0x49, 0x0f, - 0x59, 0x4f, 0x30, 0x87, 0xa1, 0xc7, 0x60, 0x80, 0x75, 0x81, 0x4e, 0xde, 0x18, 0xcf, 0x17, 0x55, - 0x76, 0x22, 0x07, 0xb3, 0x52, 0x16, 0x08, 0x05, 0x93, 0x76, 0xd3, 0xe5, 0x9d, 0x8e, 0x75, 0x9c, - 0xef, 0x0e, 0xbf, 0xe6, 0xcc, 0xae, 0xbd, 0xb3, 0x40, 0x28, 0xd9, 0x24, 0xbb, 0x3f, 0xe5, 0xfe, - 0xa8, 0x00, 0xe7, 0x33, 0xeb, 0xf5, 0x1d, 0x08, 0xa5, 0x7b, 0xed, 0x87, 0x99, 0x0f, 0xa0, 0x78, - 0x82, 0x06, 0x8b, 0x03, 0xfd, 0x72, 0x98, 0x83, 0x7d, 0xc4, 0x27, 0xc9, 0x1c, 0xb2, 0x77, 0x49, - 0x7c, 0x92, 0xcc, 0xbe, 0xe5, 0x3c, 0x45, 0xff, 0xa2, 0x90, 0xf3, 0x2d, 0xec, 0x51, 0x7a, 0x89, - 0x9e, 0x33, 0x0c, 0x18, 0xca, 0x87, 0x1e, 0x3f, 0x63, 0x78, 0x19, 0x56, 0x50, 0xb4, 0x08, 0x93, - 0x2d, 0xd7, 0xa3, 0x87, 0xcf, 0xbe, 0xc9, 0xf8, 0xa9, 0xf0, 0x51, 0x6b, 0x26, 0x18, 0x27, 0xf1, - 0x91, 0xab, 0xc5, 0x2e, 0x29, 0xe4, 0xa7, 0x11, 0xcf, 0xed, 0xed, 0x82, 0xa9, 0xff, 0x55, 0xa3, - 0x98, 0x11, 0xc7, 0x64, 0x4d, 0x93, 0x45, 0x14, 0xfb, 0x97, 0x45, 0x8c, 0x65, 0xcb, 0x21, 0xe6, - 0x5e, 0x81, 0xf1, 0x07, 0x16, 0x3e, 0xdb, 0x5f, 0x2d, 0xc2, 0xa3, 0x5d, 0xb6, 0x3d, 0x3f, 0xeb, - 0x8d, 0x39, 0xd0, 0xce, 0xfa, 0xd4, 0x3c, 0x54, 0xe1, 0xd4, 0x56, 0xa7, 0xd9, 0xdc, 0x67, 0x3e, - 0x01, 0xa4, 0x21, 0x31, 0x04, 0x4f, 0x29, 0x1f, 0xe0, 0xa7, 0x56, 0x33, 0x70, 0x70, 0x66, 0x4d, - 0xca, 0xd0, 0xd3, 0x9b, 0x64, 0x5f, 0x91, 0x4a, 0x30, 0xf4, 0x58, 0x07, 0x62, 0x13, 0x17, 0x5d, - 0x85, 0x69, 0x67, 0xcf, 0x71, 0x79, 0x00, 0x58, 0x49, 0x80, 0x73, 0xf4, 0x4a, 0x66, 0xb8, 0x98, - 0x44, 0xc0, 0xe9, 0x3a, 0xe8, 0x35, 0x40, 0xfe, 0x26, 0xb3, 0xf6, 0x6d, 0x5c, 0x25, 0x9e, 0x50, - 0xd3, 0xb1, 0xb9, 0x2b, 0xc6, 0x47, 0xc2, 0xcd, 0x14, 0x06, 0xce, 0xa8, 0x95, 0x88, 0x05, 0x32, - 0x94, 0x1f, 0x0b, 0xa4, 0xfb, 0xb9, 0xd8, 0x33, 0x15, 0xc5, 0x7f, 0xb1, 0xe8, 0xf5, 0xc5, 0x99, - 0x7c, 0x33, 0xa4, 0xdd, 0x2b, 0xcc, 0xcc, 0x8e, 0xcb, 0x13, 0xb5, 0x08, 0x16, 0xa7, 0x35, 0x33, - 0xbb, 0x18, 0x88, 0x4d, 0x5c, 0xbe, 0x20, 0xc2, 0xd8, 0x71, 0xd2, 0x60, 0xf1, 0x45, 0xdc, 0x1d, - 0x85, 0x81, 0x3e, 0x09, 0xc3, 0x0d, 0x77, 0xcf, 0x0d, 0x85, 0x34, 0xe5, 0xc8, 0xaa, 0x8b, 0xf8, - 0x1c, 0x2c, 0x73, 0x32, 0x58, 0xd2, 0xb3, 0x7f, 0xa0, 0x00, 0xe3, 0xb2, 0xc5, 0xd7, 0x3b, 0x7e, - 0xe4, 0x9c, 0xc0, 0xb5, 0x7c, 0xd5, 0xb8, 0x96, 0x3f, 0xd0, 0x2d, 0xf8, 0x10, 0xeb, 0x52, 0xee, - 0x75, 0x7c, 0x33, 0x71, 0x1d, 0x3f, 0xd9, 0x9b, 0x54, 0xf7, 0x6b, 0xf8, 0x9f, 0x5a, 0x30, 0x6d, - 0xe0, 0x9f, 0xc0, 0x6d, 0xb0, 0x6a, 0xde, 0x06, 0x8f, 0xf7, 0xfc, 0x86, 0x9c, 0x5b, 0xe0, 0xbb, - 0x8b, 0x89, 0xbe, 0xb3, 0xd3, 0xff, 0x2d, 0x18, 0xd8, 0x71, 0x82, 0x46, 0xb7, 0x60, 0xeb, 0xa9, - 0x4a, 0x0b, 0xd7, 0x9c, 0x40, 0xe8, 0x29, 0x9f, 0x51, 0x59, 0xbc, 0x9d, 0xa0, 0xb7, 0x8e, 0x92, - 0x35, 0x85, 0x5e, 0x82, 0xa1, 0xb0, 0xee, 0xb7, 0x95, 0x15, 0xff, 0x05, 0x9e, 0xe1, 0x9b, 0x96, - 0x1c, 0x1e, 0xcc, 0x23, 0xb3, 0x39, 0x5a, 0x8c, 0x05, 0x3e, 0xfa, 0x14, 0x8c, 0xb3, 0x5f, 0xca, - 0x68, 0xa8, 0x98, 0x9f, 0x98, 0xa9, 0xa6, 0x23, 0x72, 0x8b, 0x3a, 0xa3, 0x08, 0x9b, 0xa4, 0xe6, - 0xb6, 0xa1, 0xa4, 0x3e, 0xeb, 0xa1, 0xea, 0x06, 0xff, 0x63, 0x11, 0x66, 0x32, 0xd6, 0x1c, 0x0a, - 0x8d, 0x99, 0xb8, 0xd2, 0xe7, 0x52, 0x7d, 0x87, 0x73, 0x11, 0xb2, 0xd7, 0x50, 0x43, 0xac, 0xad, - 0xbe, 0x1b, 0xbd, 0x15, 0x92, 0x64, 0xa3, 0xb4, 0xa8, 0x77, 0xa3, 0xb4, 0xb1, 0x13, 0x1b, 0x6a, - 0xda, 0x90, 0xea, 0xe9, 0x43, 0x9d, 0xd3, 0x3f, 0x2d, 0xc2, 0xa9, 0xac, 0x78, 0x68, 0xe8, 0x73, - 0x89, 0x54, 0x7f, 0x2f, 0xf4, 0x1b, 0x49, 0x8d, 0xe7, 0xff, 0xe3, 0x32, 0xe0, 0xa5, 0x05, 0x33, - 0xf9, 0x5f, 0xcf, 0x61, 0x16, 0x6d, 0xb2, 0xa0, 0x00, 0x01, 0x4f, 0xd1, 0x28, 0x8f, 0x8f, 0x0f, - 0xf7, 0xdd, 0x01, 0x91, 0xdb, 0x31, 0x4c, 0x18, 0x24, 0xc8, 0xe2, 0xde, 0x06, 0x09, 0xb2, 0xe5, - 0x39, 0x17, 0x46, 0xb5, 0xaf, 0x79, 0xa8, 0x33, 0xbe, 0x4b, 0x6f, 0x2b, 0xad, 0xdf, 0x0f, 0x75, - 0xd6, 0x7f, 0xd4, 0x82, 0x84, 0x8d, 0xba, 0x12, 0x8b, 0x59, 0xb9, 0x62, 0xb1, 0x0b, 0x30, 0x10, - 0xf8, 0x4d, 0x92, 0xcc, 0x89, 0x87, 0xfd, 0x26, 0xc1, 0x0c, 0x42, 0x31, 0xa2, 0x58, 0xd8, 0x31, - 0xa6, 0x3f, 0xe4, 0xc4, 0x13, 0xed, 0x09, 0x18, 0x6c, 0x92, 0x3d, 0xd2, 0x4c, 0xa6, 0x2e, 0xb9, - 0x41, 0x0b, 0x31, 0x87, 0xd9, 0x3f, 0x3f, 0x00, 0xe7, 0xba, 0x86, 0xd5, 0xa0, 0xcf, 0xa1, 0x6d, - 0x27, 0x22, 0x77, 0x9d, 0xfd, 0x64, 0x8e, 0x81, 0xab, 0xbc, 0x18, 0x4b, 0x38, 0xf3, 0x22, 0xe2, - 0xa1, 0x82, 0x13, 0x42, 0x44, 0x11, 0x21, 0x58, 0x40, 0x4d, 0xa1, 0x54, 0xf1, 0x38, 0x84, 0x52, - 0xcf, 0x01, 0x84, 0x61, 0x93, 0x5b, 0xf2, 0x34, 0x84, 0x7b, 0x52, 0x1c, 0x52, 0xba, 0x76, 0x43, - 0x40, 0xb0, 0x86, 0x85, 0xca, 0x30, 0xd5, 0x0e, 0xfc, 0x88, 0xcb, 0x64, 0xcb, 0xdc, 0xd8, 0x6d, - 0xd0, 0x8c, 0x68, 0x50, 0x4d, 0xc0, 0x71, 0xaa, 0x06, 0x7a, 0x11, 0x46, 0x45, 0x94, 0x83, 0xaa, - 0xef, 0x37, 0x85, 0x18, 0x48, 0xd9, 0x7f, 0xd5, 0x62, 0x10, 0xd6, 0xf1, 0xb4, 0x6a, 0x4c, 0xd0, - 0x3b, 0x9c, 0x59, 0x8d, 0x0b, 0x7b, 0x35, 0xbc, 0x44, 0x6c, 0xc4, 0x91, 0xbe, 0x62, 0x23, 0xc6, - 0x82, 0xb1, 0x52, 0xdf, 0xba, 0x2d, 0xe8, 0x29, 0x4a, 0xfa, 0x99, 0x01, 0x98, 0x11, 0x0b, 0xe7, - 0x61, 0x2f, 0x97, 0x5b, 0xe9, 0xe5, 0x72, 0x1c, 0xa2, 0xb3, 0xf7, 0xd6, 0xcc, 0x49, 0xaf, 0x99, - 0x1f, 0xb4, 0xc0, 0x64, 0xaf, 0xd0, 0x5f, 0xca, 0x4d, 0xd2, 0xf2, 0x62, 0x2e, 0xbb, 0xd6, 0x90, - 0x17, 0xc8, 0x3b, 0x4c, 0xd7, 0x62, 0xff, 0x67, 0x0b, 0x1e, 0xef, 0x49, 0x11, 0xad, 0x40, 0x89, - 0xf1, 0x80, 0xda, 0xeb, 0xec, 0x49, 0x65, 0x0c, 0x2b, 0x01, 0x39, 0x2c, 0x69, 0x5c, 0x13, 0xad, - 0xa4, 0xb2, 0xe1, 0x3c, 0x95, 0x91, 0x0d, 0xe7, 0xb4, 0x31, 0x3c, 0x0f, 0x98, 0x0e, 0xe7, 0xfb, - 0xe9, 0x8d, 0x63, 0x38, 0xa2, 0xa0, 0x0f, 0x1b, 0x62, 0x3f, 0x3b, 0x21, 0xf6, 0x43, 0x26, 0xb6, - 0x76, 0x87, 0x7c, 0x1c, 0xa6, 0x58, 0xf8, 0x23, 0x66, 0x9a, 0x2d, 0x5c, 0x64, 0x0a, 0xb1, 0xf9, - 0xe5, 0x8d, 0x04, 0x0c, 0xa7, 0xb0, 0xed, 0x3f, 0x2c, 0xc2, 0x10, 0xdf, 0x7e, 0x27, 0xf0, 0x26, - 0x7c, 0x1a, 0x4a, 0x6e, 0xab, 0xd5, 0xe1, 0x09, 0x4e, 0x06, 0xb9, 0x5f, 0x2c, 0x9d, 0xa7, 0x8a, - 0x2c, 0xc4, 0x31, 0x1c, 0xad, 0x0a, 0x89, 0x73, 0x97, 0x08, 0x8b, 0xbc, 0xe3, 0x0b, 0x65, 0x27, - 0x72, 0x38, 0x83, 0xa3, 0xee, 0xd9, 0x58, 0x36, 0x8d, 0x3e, 0x03, 0x10, 0x46, 0x81, 0xeb, 0x6d, - 0xd3, 0x32, 0x11, 0x50, 0xf4, 0x83, 0x5d, 0xa8, 0xd5, 0x14, 0x32, 0xa7, 0x19, 0x9f, 0x39, 0x0a, - 0x80, 0x35, 0x8a, 0x68, 0xc1, 0xb8, 0xe9, 0xe7, 0x12, 0x73, 0x07, 0x9c, 0x6a, 0x3c, 0x67, 0x73, - 0x1f, 0x81, 0x92, 0x22, 0xde, 0x4b, 0xfe, 0x34, 0xa6, 0xb3, 0x45, 0x1f, 0x83, 0xc9, 0x44, 0xdf, - 0x8e, 0x24, 0xbe, 0xfa, 0x05, 0x0b, 0x26, 0x79, 0x67, 0x56, 0xbc, 0x3d, 0x71, 0x1b, 0xbc, 0x0d, - 0xa7, 0x9a, 0x19, 0xa7, 0xb2, 0x98, 0xfe, 0xfe, 0x4f, 0x71, 0x25, 0xae, 0xca, 0x82, 0xe2, 0xcc, - 0x36, 0xd0, 0x25, 0xba, 0xe3, 0xe8, 0xa9, 0xeb, 0x34, 0x85, 0x9b, 0xec, 0x18, 0xdf, 0x6d, 0xbc, - 0x0c, 0x2b, 0xa8, 0xfd, 0x3b, 0x16, 0x4c, 0xf3, 0x9e, 0x5f, 0x27, 0xfb, 0xea, 0x6c, 0xfa, 0x7a, - 0xf6, 0x5d, 0xa4, 0xd6, 0x2a, 0xe4, 0xa4, 0xd6, 0xd2, 0x3f, 0xad, 0xd8, 0xf5, 0xd3, 0xbe, 0x6c, - 0x81, 0x58, 0x21, 0x27, 0x20, 0x84, 0xf8, 0x56, 0x53, 0x08, 0x31, 0x97, 0xbf, 0x09, 0x72, 0xa4, - 0x0f, 0x7f, 0x6e, 0xc1, 0x14, 0x47, 0x88, 0xb5, 0xe5, 0x5f, 0xd7, 0x79, 0xe8, 0x27, 0x01, 0xef, - 0x75, 0xb2, 0xbf, 0xe1, 0x57, 0x9d, 0x68, 0x27, 0xfb, 0xa3, 0x8c, 0xc9, 0x1a, 0xe8, 0x3a, 0x59, - 0x0d, 0xb9, 0x81, 0x8e, 0x90, 0xd5, 0xfb, 0xc8, 0x99, 0x27, 0xec, 0xaf, 0x59, 0x80, 0x78, 0x33, - 0x06, 0xe3, 0x46, 0xd9, 0x21, 0x56, 0xaa, 0x5d, 0x74, 0xf1, 0xd1, 0xa4, 0x20, 0x58, 0xc3, 0x3a, - 0x96, 0xe1, 0x49, 0x98, 0x3c, 0x14, 0x7b, 0x9b, 0x3c, 0x1c, 0x61, 0x44, 0xff, 0xed, 0x10, 0x24, - 0x9d, 0x71, 0xd0, 0x6d, 0x18, 0xab, 0x3b, 0x6d, 0x67, 0xd3, 0x6d, 0xba, 0x91, 0x4b, 0xc2, 0x6e, - 0xb6, 0x52, 0xcb, 0x1a, 0x9e, 0x50, 0x52, 0x6b, 0x25, 0xd8, 0xa0, 0x83, 0x16, 0x00, 0xda, 0x81, - 0xbb, 0xe7, 0x36, 0xc9, 0x36, 0x93, 0x95, 0x30, 0xc7, 0x7c, 0x6e, 0x00, 0x24, 0x4b, 0xb1, 0x86, - 0x91, 0xe1, 0xf9, 0x5c, 0x7c, 0xc8, 0x9e, 0xcf, 0x70, 0x62, 0x9e, 0xcf, 0x03, 0x47, 0xf2, 0x7c, - 0x1e, 0x39, 0xb2, 0xe7, 0xf3, 0x60, 0x5f, 0x9e, 0xcf, 0x18, 0xce, 0x48, 0xde, 0x93, 0xfe, 0x5f, - 0x75, 0x9b, 0x44, 0x3c, 0x38, 0x78, 0x34, 0x81, 0xb9, 0xfb, 0x07, 0xf3, 0x67, 0x70, 0x26, 0x06, - 0xce, 0xa9, 0x89, 0x3e, 0x01, 0xb3, 0x4e, 0xb3, 0xe9, 0xdf, 0x55, 0x93, 0xba, 0x12, 0xd6, 0x9d, - 0x26, 0x57, 0x42, 0x0c, 0x33, 0xaa, 0x8f, 0xdd, 0x3f, 0x98, 0x9f, 0x5d, 0xcc, 0xc1, 0xc1, 0xb9, - 0xb5, 0xd1, 0x47, 0xa1, 0xd4, 0x0e, 0xfc, 0xfa, 0x9a, 0xe6, 0x31, 0x78, 0x9e, 0x0e, 0x60, 0x55, - 0x16, 0x1e, 0x1e, 0xcc, 0x8f, 0xab, 0x3f, 0xec, 0xc2, 0x8f, 0x2b, 0x64, 0xb8, 0x32, 0x8f, 0x1e, - 0xab, 0x2b, 0xf3, 0x2e, 0xcc, 0xd4, 0x48, 0xe0, 0xb2, 0x1c, 0xe0, 0x8d, 0xf8, 0x7c, 0xda, 0x80, - 0x52, 0x90, 0x38, 0x91, 0xfb, 0x8a, 0x7a, 0xa8, 0xa5, 0x00, 0x90, 0x27, 0x70, 0x4c, 0xc8, 0xfe, - 0x3f, 0x16, 0x0c, 0x0b, 0xe7, 0x9b, 0x13, 0xe0, 0x1a, 0x17, 0x0d, 0x4d, 0xc2, 0x7c, 0xf6, 0x80, - 0xb1, 0xce, 0xe4, 0xea, 0x10, 0x2a, 0x09, 0x1d, 0xc2, 0xe3, 0xdd, 0x88, 0x74, 0xd7, 0x1e, 0xfc, - 0xcd, 0x22, 0xe5, 0xde, 0x0d, 0x37, 0xd0, 0x87, 0x3f, 0x04, 0xeb, 0x30, 0x1c, 0x0a, 0x37, 0xc4, - 0x42, 0xbe, 0xdd, 0x7c, 0x72, 0x12, 0x63, 0x3b, 0x36, 0xe1, 0x78, 0x28, 0x89, 0x64, 0xfa, 0x37, - 0x16, 0x1f, 0xa2, 0x7f, 0x63, 0x2f, 0x47, 0xd9, 0x81, 0xe3, 0x70, 0x94, 0xb5, 0xbf, 0xc2, 0x6e, - 0x4e, 0xbd, 0xfc, 0x04, 0x98, 0xaa, 0xab, 0xe6, 0x1d, 0x6b, 0x77, 0x59, 0x59, 0xa2, 0x53, 0x39, - 0xcc, 0xd5, 0xcf, 0x59, 0x70, 0x2e, 0xe3, 0xab, 0x34, 0x4e, 0xeb, 0x19, 0x18, 0x71, 0x3a, 0x0d, - 0x57, 0xed, 0x65, 0x4d, 0x9f, 0xb8, 0x28, 0xca, 0xb1, 0xc2, 0x40, 0xcb, 0x30, 0x4d, 0xee, 0xb5, - 0x5d, 0xae, 0x4a, 0xd5, 0x8d, 0x4d, 0x8b, 0xdc, 0x63, 0x6b, 0x25, 0x09, 0xc4, 0x69, 0x7c, 0x15, - 0x9c, 0xa4, 0x98, 0x1b, 0x9c, 0xe4, 0x1f, 0x58, 0x30, 0xaa, 0x1c, 0xf1, 0x1e, 0xfa, 0x68, 0x7f, - 0xdc, 0x1c, 0xed, 0x47, 0xbb, 0x8c, 0x76, 0xce, 0x30, 0xff, 0x56, 0x41, 0xf5, 0xb7, 0xea, 0x07, - 0x51, 0x1f, 0x1c, 0xdc, 0x83, 0x9b, 0xc7, 0x5f, 0x81, 0x51, 0xa7, 0xdd, 0x96, 0x00, 0x69, 0x83, - 0xc6, 0x62, 0xd8, 0xc6, 0xc5, 0x58, 0xc7, 0x51, 0xd6, 0xfa, 0xc5, 0x5c, 0x6b, 0xfd, 0x06, 0x40, - 0xe4, 0x04, 0xdb, 0x24, 0xa2, 0x65, 0x22, 0x90, 0x58, 0xfe, 0x79, 0xd3, 0x89, 0xdc, 0xe6, 0x82, - 0xeb, 0x45, 0x61, 0x14, 0x2c, 0x54, 0xbc, 0xe8, 0x66, 0xc0, 0x9f, 0x90, 0x5a, 0xa4, 0x1e, 0x45, - 0x0b, 0x6b, 0x74, 0xa5, 0xd3, 0x39, 0x6b, 0x63, 0xd0, 0x34, 0x66, 0x58, 0x17, 0xe5, 0x58, 0x61, - 0xd8, 0x1f, 0x61, 0xb7, 0x0f, 0x1b, 0xd3, 0xa3, 0x85, 0xb6, 0xf9, 0xf2, 0xa8, 0x9a, 0x0d, 0xa6, - 0xc9, 0x2c, 0xeb, 0x01, 0x74, 0xba, 0x1f, 0xf6, 0xb4, 0x61, 0xdd, 0x77, 0x2c, 0x8e, 0xb2, 0x83, - 0xbe, 0x2d, 0x65, 0xa0, 0xf2, 0x6c, 0x8f, 0x5b, 0xe3, 0x08, 0x26, 0x29, 0x2c, 0xa1, 0x05, 0x0b, - 0xf7, 0x5f, 0xa9, 0x8a, 0x7d, 0xa1, 0x25, 0xb4, 0x10, 0x00, 0x1c, 0xe3, 0x50, 0x66, 0x4a, 0xfd, - 0x09, 0x67, 0x51, 0x1c, 0xd8, 0x51, 0x61, 0x87, 0x58, 0xc3, 0x40, 0x97, 0x85, 0x40, 0x81, 0xeb, - 0x05, 0x1e, 0x4d, 0x08, 0x14, 0xe4, 0x70, 0x69, 0x52, 0xa0, 0x2b, 0x30, 0xaa, 0x72, 0xda, 0x56, - 0x79, 0xaa, 0x54, 0xb1, 0xcc, 0x56, 0xe2, 0x62, 0xac, 0xe3, 0xa0, 0x0d, 0x98, 0x0c, 0xb9, 0x9c, - 0x4d, 0x45, 0xdb, 0xe5, 0xf2, 0xca, 0x0f, 0x4a, 0x2b, 0xa0, 0x9a, 0x09, 0x3e, 0x64, 0x45, 0xfc, - 0x74, 0x92, 0x8e, 0xe1, 0x49, 0x12, 0xe8, 0x55, 0x98, 0x68, 0xfa, 0x4e, 0x63, 0xc9, 0x69, 0x3a, - 0x5e, 0x9d, 0x8d, 0xcf, 0x88, 0x99, 0x1a, 0xf1, 0x86, 0x01, 0xc5, 0x09, 0x6c, 0xca, 0xbc, 0xe9, - 0x25, 0x22, 0x42, 0xb4, 0xe3, 0x6d, 0x93, 0x50, 0x64, 0x28, 0x65, 0xcc, 0xdb, 0x8d, 0x1c, 0x1c, - 0x9c, 0x5b, 0x1b, 0xbd, 0x04, 0x63, 0xf2, 0xf3, 0xb5, 0x38, 0x0a, 0xb1, 0xe3, 0x83, 0x06, 0xc3, - 0x06, 0x26, 0xba, 0x0b, 0xa7, 0xe5, 0xff, 0x8d, 0xc0, 0xd9, 0xda, 0x72, 0xeb, 0xc2, 0xb9, 0x98, - 0x7b, 0x48, 0x2e, 0x4a, 0x37, 0xbe, 0x95, 0x2c, 0xa4, 0xc3, 0x83, 0xf9, 0x0b, 0x62, 0xd4, 0x32, - 0xe1, 0x6c, 0x12, 0xb3, 0xe9, 0xa3, 0x35, 0x98, 0xd9, 0x21, 0x4e, 0x33, 0xda, 0x59, 0xde, 0x21, - 0xf5, 0x5d, 0xb9, 0xe9, 0x58, 0x74, 0x06, 0xcd, 0x5d, 0xe0, 0x5a, 0x1a, 0x05, 0x67, 0xd5, 0x43, - 0x6f, 0xc0, 0x6c, 0xbb, 0xb3, 0xd9, 0x74, 0xc3, 0x9d, 0x75, 0x3f, 0x62, 0xa6, 0x40, 0x2a, 0x45, - 0xae, 0x08, 0xe3, 0xa0, 0xe2, 0x5f, 0x54, 0x73, 0xf0, 0x70, 0x2e, 0x05, 0xf4, 0x36, 0x9c, 0x4e, - 0x2c, 0x06, 0xe1, 0xc8, 0x3e, 0x91, 0x1f, 0x6f, 0xbf, 0x96, 0x55, 0x41, 0xc4, 0x84, 0xc8, 0x02, - 0xe1, 0xec, 0x26, 0xe8, 0xe3, 0x43, 0x0b, 0x70, 0x1a, 0xce, 0x4e, 0xc5, 0x36, 0xcb, 0x5a, 0x14, - 0xd4, 0x10, 0x1b, 0x58, 0xe8, 0x65, 0x00, 0xb7, 0xbd, 0xea, 0xb4, 0xdc, 0x26, 0x7d, 0x64, 0xce, - 0xb0, 0x3a, 0xf4, 0xc1, 0x01, 0x95, 0xaa, 0x2c, 0xa5, 0xa7, 0xba, 0xf8, 0xb7, 0x8f, 0x35, 0x6c, - 0x54, 0x85, 0x09, 0xf1, 0x6f, 0x5f, 0x2c, 0x86, 0x69, 0xe5, 0x69, 0x3e, 0x21, 0x6b, 0xa8, 0x15, - 0x80, 0xcc, 0x12, 0x36, 0xe7, 0x89, 0xfa, 0x68, 0x1b, 0xce, 0x89, 0x1c, 0xcc, 0x44, 0x5f, 0xdd, - 0x72, 0xf6, 0x42, 0x16, 0x1e, 0x7f, 0x84, 0x07, 0x90, 0x59, 0xec, 0x86, 0x88, 0xbb, 0xd3, 0x79, - 0x67, 0x16, 0x70, 0xbf, 0x6d, 0xd1, 0xda, 0x1a, 0x97, 0x8c, 0x3e, 0x0b, 0x63, 0xfa, 0x9e, 0x13, - 0x37, 0xfe, 0xc5, 0x6c, 0x26, 0x52, 0xdb, 0x9b, 0x9c, 0xc7, 0x56, 0xfb, 0x4f, 0x87, 0x61, 0x83, - 0x22, 0xaa, 0x67, 0xb8, 0x51, 0x5f, 0xee, 0x8f, 0xa3, 0xe8, 0xdf, 0x00, 0x8c, 0x40, 0xf6, 0x92, - 0x43, 0x37, 0x60, 0xa4, 0xde, 0x74, 0x89, 0x17, 0x55, 0xaa, 0xdd, 0x02, 0x9f, 0x2d, 0x0b, 0x1c, - 0xb1, 0x86, 0x45, 0xcc, 0x78, 0x5e, 0x86, 0x15, 0x05, 0xfb, 0x57, 0x0b, 0x30, 0xdf, 0x23, 0x01, - 0x41, 0x42, 0x1d, 0x64, 0xf5, 0xa5, 0x0e, 0x5a, 0x94, 0x39, 0x98, 0xd7, 0x13, 0x92, 0xa6, 0x44, - 0x7e, 0xe5, 0x58, 0xde, 0x94, 0xc4, 0xef, 0xdb, 0x3c, 0x5f, 0xd7, 0x28, 0x0d, 0xf4, 0x74, 0x30, - 0x31, 0x34, 0xc9, 0x83, 0xfd, 0x3f, 0x3f, 0x73, 0xb5, 0x82, 0xf6, 0x57, 0x0a, 0x70, 0x5a, 0x0d, - 0xe1, 0x37, 0xef, 0xc0, 0xdd, 0x4a, 0x0f, 0xdc, 0x31, 0xe8, 0x54, 0xed, 0x9b, 0x30, 0xc4, 0x23, - 0xb9, 0xf5, 0xc1, 0xf6, 0x3e, 0x61, 0x06, 0x3d, 0x55, 0x9c, 0x96, 0x11, 0xf8, 0xf4, 0x7b, 0x2d, - 0x98, 0xdc, 0x58, 0xae, 0xd6, 0xfc, 0xfa, 0x2e, 0x89, 0x16, 0xf9, 0x33, 0x05, 0x6b, 0x0e, 0xa7, - 0x0f, 0xc2, 0x9a, 0x66, 0x31, 0xbd, 0x17, 0x60, 0x60, 0xc7, 0x0f, 0xa3, 0xa4, 0xc1, 0xc5, 0x35, - 0x3f, 0x8c, 0x30, 0x83, 0xd8, 0xbf, 0x6b, 0xc1, 0xe0, 0x86, 0xe3, 0x7a, 0x91, 0x14, 0xce, 0x5b, - 0x39, 0xc2, 0xf9, 0x7e, 0xbe, 0x0b, 0xbd, 0x08, 0x43, 0x64, 0x6b, 0x8b, 0xd4, 0x23, 0x31, 0xab, - 0xd2, 0x5b, 0x7f, 0x68, 0x85, 0x95, 0x52, 0x3e, 0x8c, 0x35, 0xc6, 0xff, 0x62, 0x81, 0x8c, 0xee, - 0x40, 0x29, 0x72, 0x5b, 0x64, 0xb1, 0xd1, 0x10, 0x2a, 0xeb, 0x07, 0x88, 0x38, 0xb0, 0x21, 0x09, - 0xe0, 0x98, 0x96, 0xfd, 0xc5, 0x02, 0x40, 0x1c, 0x02, 0xa7, 0xd7, 0x27, 0x2e, 0xa5, 0x94, 0x99, - 0x17, 0x33, 0x94, 0x99, 0x28, 0x26, 0x98, 0xa1, 0xc9, 0x54, 0xc3, 0x54, 0xec, 0x6b, 0x98, 0x06, - 0x8e, 0x32, 0x4c, 0xcb, 0x30, 0x1d, 0x87, 0xf0, 0x31, 0x23, 0x98, 0xb1, 0xa7, 0xe9, 0x46, 0x12, - 0x88, 0xd3, 0xf8, 0x36, 0x81, 0x0b, 0x2a, 0x92, 0x89, 0xb8, 0xd1, 0x98, 0x45, 0xb4, 0xae, 0x1c, - 0xee, 0x31, 0x4e, 0xb1, 0xb6, 0xb6, 0x90, 0xab, 0xad, 0xfd, 0x09, 0x0b, 0x4e, 0x25, 0xdb, 0x61, - 0x2e, 0xaa, 0x5f, 0xb0, 0xe0, 0x34, 0xd3, 0x59, 0xb3, 0x56, 0xd3, 0x1a, 0xf2, 0x17, 0xba, 0x46, - 0x67, 0xc9, 0xe9, 0x71, 0x1c, 0x16, 0x62, 0x2d, 0x8b, 0x34, 0xce, 0x6e, 0xd1, 0xfe, 0x4f, 0x05, - 0x98, 0xcd, 0x0b, 0xeb, 0xc2, 0x1c, 0x26, 0x9c, 0x7b, 0xb5, 0x5d, 0x72, 0x57, 0x98, 0xa5, 0xc7, - 0x0e, 0x13, 0xbc, 0x18, 0x4b, 0x78, 0x32, 0xa6, 0x7c, 0xa1, 0xbf, 0x98, 0xf2, 0x68, 0x07, 0xa6, - 0xef, 0xee, 0x10, 0xef, 0x96, 0x17, 0x3a, 0x91, 0x1b, 0x6e, 0xb9, 0x4c, 0xbf, 0xcb, 0xd7, 0xcd, - 0xcb, 0xd2, 0x78, 0xfc, 0x4e, 0x12, 0xe1, 0xf0, 0x60, 0xfe, 0x9c, 0x51, 0x10, 0x77, 0x99, 0x1f, - 0x24, 0x38, 0x4d, 0x34, 0x1d, 0x92, 0x7f, 0xe0, 0x21, 0x86, 0xe4, 0xb7, 0xbf, 0x60, 0xc1, 0xd9, - 0xdc, 0x3c, 0xa0, 0xe8, 0x12, 0x8c, 0x38, 0x6d, 0x97, 0x8b, 0xc8, 0xc5, 0x31, 0xca, 0x44, 0x31, - 0xd5, 0x0a, 0x17, 0x90, 0x2b, 0xa8, 0xca, 0x4f, 0x5e, 0xc8, 0xcd, 0x4f, 0xde, 0x33, 0xdd, 0xb8, - 0xfd, 0x3d, 0x16, 0x08, 0x67, 0xcf, 0x3e, 0xce, 0xee, 0x4f, 0xc1, 0xd8, 0x5e, 0x3a, 0x6d, 0xcf, - 0x85, 0x7c, 0xef, 0x57, 0x91, 0xac, 0x47, 0x31, 0x64, 0x46, 0x8a, 0x1e, 0x83, 0x96, 0xdd, 0x00, - 0x01, 0x2d, 0x13, 0x26, 0x00, 0xee, 0xdd, 0x9b, 0xe7, 0x00, 0x1a, 0x0c, 0x57, 0x4b, 0xf2, 0xae, - 0x6e, 0xe6, 0xb2, 0x82, 0x60, 0x0d, 0xcb, 0xfe, 0xf7, 0x05, 0x18, 0x95, 0x69, 0x62, 0x3a, 0x5e, - 0x3f, 0x62, 0x9a, 0x23, 0xe5, 0x8d, 0xa4, 0xaf, 0x78, 0x26, 0x47, 0xac, 0xc6, 0xd2, 0x2d, 0xf5, - 0x8a, 0x5f, 0x93, 0x00, 0x1c, 0xe3, 0xd0, 0x5d, 0x14, 0x76, 0x36, 0x19, 0x7a, 0xc2, 0x35, 0xb1, - 0xc6, 0x8b, 0xb1, 0x84, 0xa3, 0x4f, 0xc0, 0x14, 0xaf, 0x17, 0xf8, 0x6d, 0x67, 0x9b, 0xeb, 0x1e, - 0x06, 0x55, 0x4c, 0x81, 0xa9, 0xb5, 0x04, 0xec, 0xf0, 0x60, 0xfe, 0x54, 0xb2, 0x8c, 0x29, 0xd5, - 0x52, 0x54, 0x98, 0x89, 0x11, 0x6f, 0x84, 0xee, 0xfe, 0x94, 0x65, 0x52, 0x0c, 0xc2, 0x3a, 0x9e, - 0xfd, 0x59, 0x40, 0xe9, 0x84, 0x39, 0xe8, 0x35, 0x6e, 0x57, 0xea, 0x06, 0xa4, 0xd1, 0x4d, 0xc9, - 0xa6, 0x7b, 0xce, 0x4b, 0xaf, 0x22, 0x5e, 0x0b, 0xab, 0xfa, 0xf6, 0x5f, 0x2d, 0xc2, 0x54, 0xd2, - 0x8f, 0x1a, 0x5d, 0x83, 0x21, 0xce, 0x7a, 0x08, 0xf2, 0x5d, 0x6c, 0x38, 0x34, 0xef, 0x6b, 0x76, - 0x08, 0x0b, 0xee, 0x45, 0xd4, 0x47, 0x6f, 0xc0, 0x68, 0xc3, 0xbf, 0xeb, 0xdd, 0x75, 0x82, 0xc6, - 0x62, 0xb5, 0x22, 0x96, 0x73, 0xe6, 0xa3, 0xb2, 0x1c, 0xa3, 0xe9, 0x1e, 0xdd, 0x4c, 0x5f, 0x19, - 0x83, 0xb0, 0x4e, 0x0e, 0x6d, 0xb0, 0xf8, 0xde, 0x5b, 0xee, 0xf6, 0x9a, 0xd3, 0xee, 0xe6, 0x64, - 0xb0, 0x2c, 0x91, 0x34, 0xca, 0xe3, 0x22, 0x08, 0x38, 0x07, 0xe0, 0x98, 0x10, 0xfa, 0x1c, 0xcc, - 0x84, 0x39, 0xa2, 0xee, 0xbc, 0xfc, 0x69, 0xdd, 0xa4, 0xbf, 0x4b, 0x8f, 0xd0, 0xe7, 0x7e, 0x96, - 0x50, 0x3c, 0xab, 0x19, 0xfb, 0x47, 0x4e, 0x81, 0xb1, 0x89, 0x8d, 0x74, 0x9a, 0xd6, 0x31, 0xa5, - 0xd3, 0xc4, 0x30, 0x42, 0x5a, 0xed, 0x68, 0xbf, 0xec, 0x06, 0xdd, 0x92, 0x4c, 0xaf, 0x08, 0x9c, - 0x34, 0x4d, 0x09, 0xc1, 0x8a, 0x4e, 0x76, 0xce, 0xd3, 0xe2, 0xd7, 0x31, 0xe7, 0xe9, 0xc0, 0x09, - 0xe6, 0x3c, 0x5d, 0x87, 0xe1, 0x6d, 0x37, 0xc2, 0xa4, 0xed, 0x0b, 0xa6, 0x3f, 0x73, 0x1d, 0x5e, - 0xe5, 0x28, 0xe9, 0xec, 0x7a, 0x02, 0x80, 0x25, 0x11, 0xf4, 0x9a, 0xda, 0x81, 0x43, 0xf9, 0x0f, - 0xf3, 0xb4, 0xb1, 0x41, 0xe6, 0x1e, 0x14, 0x99, 0x4d, 0x87, 0x1f, 0x34, 0xb3, 0xe9, 0xaa, 0xcc, - 0x47, 0x3a, 0x92, 0xef, 0x11, 0xc4, 0xd2, 0x8d, 0xf6, 0xc8, 0x42, 0x7a, 0x5b, 0xcf, 0xe1, 0x5a, - 0xca, 0x3f, 0x09, 0x54, 0x7a, 0xd6, 0x3e, 0x33, 0xb7, 0x7e, 0x8f, 0x05, 0xa7, 0xdb, 0x59, 0xe9, - 0x8c, 0x85, 0x5e, 0xfe, 0xc5, 0xbe, 0x33, 0x26, 0x1b, 0x0d, 0x32, 0x79, 0x56, 0x26, 0x1a, 0xce, - 0x6e, 0x8e, 0x0e, 0x74, 0xb0, 0xd9, 0x10, 0xfa, 0xe1, 0x27, 0x72, 0x52, 0xc0, 0x76, 0x49, 0xfc, - 0xba, 0x91, 0x91, 0x6e, 0xf4, 0xfd, 0x79, 0xe9, 0x46, 0xfb, 0x4e, 0x32, 0xfa, 0x9a, 0x4a, 0xfe, - 0x3a, 0x9e, 0xbf, 0x94, 0x78, 0x6a, 0xd7, 0x9e, 0x29, 0x5f, 0x5f, 0x53, 0x29, 0x5f, 0xbb, 0x04, - 0x6f, 0xe5, 0x09, 0x5d, 0x7b, 0x26, 0x7a, 0xd5, 0x92, 0xb5, 0x4e, 0x1e, 0x4f, 0xb2, 0x56, 0xe3, - 0xaa, 0xe1, 0xf9, 0x42, 0x9f, 0xee, 0x71, 0xd5, 0x18, 0x74, 0xbb, 0x5f, 0x36, 0x3c, 0x31, 0xed, - 0xf4, 0x03, 0x25, 0xa6, 0xbd, 0xad, 0x27, 0x7a, 0x45, 0x3d, 0x32, 0x99, 0x52, 0xa4, 0x3e, 0xd3, - 0xbb, 0xde, 0xd6, 0x2f, 0xc0, 0x99, 0x7c, 0xba, 0xea, 0x9e, 0x4b, 0xd3, 0xcd, 0xbc, 0x02, 0x53, - 0x69, 0x63, 0x4f, 0x9d, 0x4c, 0xda, 0xd8, 0xd3, 0xc7, 0x9e, 0x36, 0xf6, 0xcc, 0x09, 0xa4, 0x8d, - 0x7d, 0xe4, 0x04, 0xd3, 0xc6, 0xde, 0x66, 0xc6, 0x2c, 0x3c, 0x64, 0x8e, 0x08, 0x36, 0x9b, 0x1d, - 0xd8, 0x34, 0x2b, 0xae, 0x0e, 0xff, 0x38, 0x05, 0xc2, 0x31, 0xa9, 0x8c, 0x74, 0xb4, 0xb3, 0x0f, - 0x21, 0x1d, 0xed, 0x7a, 0x9c, 0x8e, 0xf6, 0x6c, 0xfe, 0x54, 0x67, 0xb8, 0x3f, 0xe4, 0x24, 0xa1, - 0xbd, 0xad, 0x27, 0x8f, 0x7d, 0xb4, 0x8b, 0xc6, 0x22, 0x4b, 0xf0, 0xd8, 0x25, 0x65, 0xec, 0xab, - 0x3c, 0x65, 0xec, 0x63, 0xf9, 0x27, 0x79, 0xf2, 0xba, 0x33, 0x12, 0xc5, 0xd2, 0x7e, 0xa9, 0xb0, - 0x86, 0x2c, 0xac, 0x6e, 0x4e, 0xbf, 0x54, 0x5c, 0xc4, 0x74, 0xbf, 0x14, 0x08, 0xc7, 0xa4, 0xec, - 0xef, 0x2b, 0xc0, 0xf9, 0xee, 0xfb, 0x2d, 0x96, 0xa6, 0x56, 0x63, 0x05, 0x6e, 0x42, 0x9a, 0xca, - 0xdf, 0x6c, 0x31, 0x56, 0xdf, 0x51, 0xda, 0xae, 0xc2, 0xb4, 0xf2, 0x9b, 0x68, 0xba, 0xf5, 0xfd, - 0xf5, 0xf8, 0xe5, 0xab, 0x7c, 0xcd, 0x6b, 0x49, 0x04, 0x9c, 0xae, 0x83, 0x16, 0x61, 0xd2, 0x28, - 0xac, 0x94, 0xc5, 0xdb, 0x4c, 0x89, 0x6f, 0x6b, 0x26, 0x18, 0x27, 0xf1, 0xed, 0x2f, 0x59, 0xf0, - 0x48, 0x4e, 0xa6, 0xb7, 0xbe, 0x83, 0x90, 0x6d, 0xc1, 0x64, 0xdb, 0xac, 0xda, 0x23, 0x6e, 0xa2, - 0x91, 0x4f, 0x4e, 0xf5, 0x35, 0x01, 0xc0, 0x49, 0xa2, 0xf6, 0x9f, 0x59, 0x70, 0xae, 0xab, 0x21, - 0x20, 0xc2, 0x70, 0x66, 0xbb, 0x15, 0x3a, 0xcb, 0x01, 0x69, 0x10, 0x2f, 0x72, 0x9d, 0x66, 0xad, - 0x4d, 0xea, 0x9a, 0x3c, 0x9c, 0x59, 0xd4, 0x5d, 0x5d, 0xab, 0x2d, 0xa6, 0x31, 0x70, 0x4e, 0x4d, - 0xb4, 0x0a, 0x28, 0x0d, 0x11, 0x33, 0xcc, 0x02, 0x34, 0xa7, 0xe9, 0xe1, 0x8c, 0x1a, 0xe8, 0x23, - 0x30, 0xae, 0x0c, 0x0c, 0xb5, 0x19, 0x67, 0x07, 0x3b, 0xd6, 0x01, 0xd8, 0xc4, 0x5b, 0xba, 0xf4, - 0xeb, 0xbf, 0x7f, 0xfe, 0x7d, 0xbf, 0xf9, 0xfb, 0xe7, 0xdf, 0xf7, 0x3b, 0xbf, 0x7f, 0xfe, 0x7d, - 0xdf, 0x71, 0xff, 0xbc, 0xf5, 0xeb, 0xf7, 0xcf, 0x5b, 0xbf, 0x79, 0xff, 0xbc, 0xf5, 0x3b, 0xf7, - 0xcf, 0x5b, 0xbf, 0x77, 0xff, 0xbc, 0xf5, 0xc5, 0x3f, 0x38, 0xff, 0xbe, 0x4f, 0x15, 0xf6, 0xae, - 0xfc, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xad, 0xf2, 0xaa, 0x3b, 0x4d, 0x03, 0x01, 0x00, + // 14066 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x70, 0x1c, 0xd9, + 0x75, 0x18, 0xac, 0x9e, 0xc1, 0x6b, 0x0e, 0xde, 0x17, 0x24, 0x17, 0xc4, 0x2e, 0x09, 0x6e, 0x53, + 0xe2, 0x72, 0xb5, 0xbb, 0xa0, 0xb8, 0x0f, 0x69, 0xbd, 0x2b, 0xad, 0x05, 0x60, 0x00, 0x72, 0x96, + 0x04, 0x38, 0x7b, 0x07, 0x24, 0x25, 0x79, 0xa5, 0x52, 0x63, 0xe6, 0x02, 0x68, 0x61, 0xa6, 0x7b, + 0xb6, 0xbb, 0x07, 0x24, 0xf6, 0x93, 0xeb, 0xf3, 0x27, 0x3f, 0xe5, 0xc7, 0x57, 0xaa, 0x94, 0xf3, + 0xb2, 0x5d, 0xae, 0x94, 0xe3, 0x54, 0xac, 0x38, 0x49, 0xc5, 0xb1, 0x63, 0x3b, 0x96, 0x13, 0x3b, + 0x71, 0x1e, 0x4e, 0x7e, 0x38, 0x8e, 0x2b, 0xb1, 0x5c, 0xe5, 0x0a, 0x62, 0xd3, 0x49, 0xb9, 0xf4, + 0x23, 0xb6, 0x13, 0x3b, 0x3f, 0x82, 0xb8, 0xe2, 0xd4, 0x7d, 0xf6, 0xbd, 0xfd, 0x98, 0x19, 0x70, + 0x41, 0x68, 0xa5, 0xda, 0x7f, 0x33, 0xf7, 0x9c, 0x7b, 0xee, 0xed, 0xfb, 0x3c, 0xf7, 0x3c, 0xe1, + 0xd5, 0xdd, 0x97, 0xc3, 0x05, 0xd7, 0xbf, 0xb2, 0xdb, 0xd9, 0x24, 0x81, 0x47, 0x22, 0x12, 0x5e, + 0xd9, 0x23, 0x5e, 0xc3, 0x0f, 0xae, 0x08, 0x80, 0xd3, 0x76, 0xaf, 0xd4, 0xfd, 0x80, 0x5c, 0xd9, + 0xbb, 0x7a, 0x65, 0x9b, 0x78, 0x24, 0x70, 0x22, 0xd2, 0x58, 0x68, 0x07, 0x7e, 0xe4, 0x23, 0xc4, + 0x71, 0x16, 0x9c, 0xb6, 0xbb, 0x40, 0x71, 0x16, 0xf6, 0xae, 0xce, 0x3d, 0xb7, 0xed, 0x46, 0x3b, + 0x9d, 0xcd, 0x85, 0xba, 0xdf, 0xba, 0xb2, 0xed, 0x6f, 0xfb, 0x57, 0x18, 0xea, 0x66, 0x67, 0x8b, + 0xfd, 0x63, 0x7f, 0xd8, 0x2f, 0x4e, 0x62, 0xee, 0xc5, 0xb8, 0x99, 0x96, 0x53, 0xdf, 0x71, 0x3d, + 0x12, 0xec, 0x5f, 0x69, 0xef, 0x6e, 0xb3, 0x76, 0x03, 0x12, 0xfa, 0x9d, 0xa0, 0x4e, 0x92, 0x0d, + 0x77, 0xad, 0x15, 0x5e, 0x69, 0x91, 0xc8, 0xc9, 0xe8, 0xee, 0xdc, 0x95, 0xbc, 0x5a, 0x41, 0xc7, + 0x8b, 0xdc, 0x56, 0xba, 0x99, 0x0f, 0xf7, 0xaa, 0x10, 0xd6, 0x77, 0x48, 0xcb, 0x49, 0xd5, 0x7b, + 0x21, 0xaf, 0x5e, 0x27, 0x72, 0x9b, 0x57, 0x5c, 0x2f, 0x0a, 0xa3, 0x20, 0x59, 0xc9, 0xfe, 0xaa, + 0x05, 0x17, 0x16, 0xef, 0xd6, 0x56, 0x9a, 0x4e, 0x18, 0xb9, 0xf5, 0xa5, 0xa6, 0x5f, 0xdf, 0xad, + 0x45, 0x7e, 0x40, 0xee, 0xf8, 0xcd, 0x4e, 0x8b, 0xd4, 0xd8, 0x40, 0xa0, 0x67, 0x61, 0x64, 0x8f, + 0xfd, 0xaf, 0x94, 0x67, 0xad, 0x0b, 0xd6, 0xe5, 0xd2, 0xd2, 0xd4, 0xaf, 0x1f, 0xcc, 0xbf, 0xef, + 0xc1, 0xc1, 0xfc, 0xc8, 0x1d, 0x51, 0x8e, 0x15, 0x06, 0xba, 0x04, 0x43, 0x5b, 0xe1, 0xc6, 0x7e, + 0x9b, 0xcc, 0x16, 0x18, 0xee, 0x84, 0xc0, 0x1d, 0x5a, 0xad, 0xd1, 0x52, 0x2c, 0xa0, 0xe8, 0x0a, + 0x94, 0xda, 0x4e, 0x10, 0xb9, 0x91, 0xeb, 0x7b, 0xb3, 0xc5, 0x0b, 0xd6, 0xe5, 0xc1, 0xa5, 0x69, + 0x81, 0x5a, 0xaa, 0x4a, 0x00, 0x8e, 0x71, 0x68, 0x37, 0x02, 0xe2, 0x34, 0x6e, 0x79, 0xcd, 0xfd, + 0xd9, 0x81, 0x0b, 0xd6, 0xe5, 0x91, 0xb8, 0x1b, 0x58, 0x94, 0x63, 0x85, 0x61, 0xff, 0x48, 0x01, + 0x46, 0x16, 0xb7, 0xb6, 0x5c, 0xcf, 0x8d, 0xf6, 0xd1, 0x1d, 0x18, 0xf3, 0xfc, 0x06, 0x91, 0xff, + 0xd9, 0x57, 0x8c, 0x3e, 0x7f, 0x61, 0x21, 0xbd, 0x94, 0x16, 0xd6, 0x35, 0xbc, 0xa5, 0xa9, 0x07, + 0x07, 0xf3, 0x63, 0x7a, 0x09, 0x36, 0xe8, 0x20, 0x0c, 0xa3, 0x6d, 0xbf, 0xa1, 0xc8, 0x16, 0x18, + 0xd9, 0xf9, 0x2c, 0xb2, 0xd5, 0x18, 0x6d, 0x69, 0xf2, 0xc1, 0xc1, 0xfc, 0xa8, 0x56, 0x80, 0x75, + 0x22, 0x68, 0x13, 0x26, 0xe9, 0x5f, 0x2f, 0x72, 0x15, 0xdd, 0x22, 0xa3, 0x7b, 0x31, 0x8f, 0xae, + 0x86, 0xba, 0x34, 0xf3, 0xe0, 0x60, 0x7e, 0x32, 0x51, 0x88, 0x93, 0x04, 0xed, 0xb7, 0x61, 0x62, + 0x31, 0x8a, 0x9c, 0xfa, 0x0e, 0x69, 0xf0, 0x19, 0x44, 0x2f, 0xc2, 0x80, 0xe7, 0xb4, 0x88, 0x98, + 0xdf, 0x0b, 0x62, 0x60, 0x07, 0xd6, 0x9d, 0x16, 0x39, 0x3c, 0x98, 0x9f, 0xba, 0xed, 0xb9, 0x6f, + 0x75, 0xc4, 0xaa, 0xa0, 0x65, 0x98, 0x61, 0xa3, 0xe7, 0x01, 0x1a, 0x64, 0xcf, 0xad, 0x93, 0xaa, + 0x13, 0xed, 0x88, 0xf9, 0x46, 0xa2, 0x2e, 0x94, 0x15, 0x04, 0x6b, 0x58, 0xf6, 0x7d, 0x28, 0x2d, + 0xee, 0xf9, 0x6e, 0xa3, 0xea, 0x37, 0x42, 0xb4, 0x0b, 0x93, 0xed, 0x80, 0x6c, 0x91, 0x40, 0x15, + 0xcd, 0x5a, 0x17, 0x8a, 0x97, 0x47, 0x9f, 0xbf, 0x9c, 0xf9, 0xb1, 0x26, 0xea, 0x8a, 0x17, 0x05, + 0xfb, 0x4b, 0x8f, 0x89, 0xf6, 0x26, 0x13, 0x50, 0x9c, 0xa4, 0x6c, 0xff, 0x8b, 0x02, 0x9c, 0x5e, + 0x7c, 0xbb, 0x13, 0x90, 0xb2, 0x1b, 0xee, 0x26, 0x57, 0x78, 0xc3, 0x0d, 0x77, 0xd7, 0xe3, 0x11, + 0x50, 0x4b, 0xab, 0x2c, 0xca, 0xb1, 0xc2, 0x40, 0xcf, 0xc1, 0x30, 0xfd, 0x7d, 0x1b, 0x57, 0xc4, + 0x27, 0xcf, 0x08, 0xe4, 0xd1, 0xb2, 0x13, 0x39, 0x65, 0x0e, 0xc2, 0x12, 0x07, 0xad, 0xc1, 0x68, + 0x9d, 0x6d, 0xc8, 0xed, 0x35, 0xbf, 0x41, 0xd8, 0x64, 0x96, 0x96, 0x9e, 0xa1, 0xe8, 0xcb, 0x71, + 0xf1, 0xe1, 0xc1, 0xfc, 0x2c, 0xef, 0x9b, 0x20, 0xa1, 0xc1, 0xb0, 0x5e, 0x1f, 0xd9, 0x6a, 0x7f, + 0x0d, 0x30, 0x4a, 0x90, 0xb1, 0xb7, 0x2e, 0x6b, 0x5b, 0x65, 0x90, 0x6d, 0x95, 0xb1, 0xec, 0x6d, + 0x82, 0xae, 0xc2, 0xc0, 0xae, 0xeb, 0x35, 0x66, 0x87, 0x18, 0xad, 0x73, 0x74, 0xce, 0x6f, 0xb8, + 0x5e, 0xe3, 0xf0, 0x60, 0x7e, 0xda, 0xe8, 0x0e, 0x2d, 0xc4, 0x0c, 0xd5, 0xfe, 0x53, 0x0b, 0xe6, + 0x19, 0x6c, 0xd5, 0x6d, 0x92, 0x2a, 0x09, 0x42, 0x37, 0x8c, 0x88, 0x17, 0x19, 0x03, 0xfa, 0x3c, + 0x40, 0x48, 0xea, 0x01, 0x89, 0xb4, 0x21, 0x55, 0x0b, 0xa3, 0xa6, 0x20, 0x58, 0xc3, 0xa2, 0x07, + 0x42, 0xb8, 0xe3, 0x04, 0x6c, 0x7d, 0x89, 0x81, 0x55, 0x07, 0x42, 0x4d, 0x02, 0x70, 0x8c, 0x63, + 0x1c, 0x08, 0xc5, 0x5e, 0x07, 0x02, 0xfa, 0x18, 0x4c, 0xc6, 0x8d, 0x85, 0x6d, 0xa7, 0x2e, 0x07, + 0x90, 0x6d, 0x99, 0x9a, 0x09, 0xc2, 0x49, 0x5c, 0xfb, 0xef, 0x58, 0x62, 0xf1, 0xd0, 0xaf, 0x7e, + 0x97, 0x7f, 0xab, 0xfd, 0x8b, 0x16, 0x0c, 0x2f, 0xb9, 0x5e, 0xc3, 0xf5, 0xb6, 0xd1, 0x67, 0x61, + 0x84, 0xde, 0x4d, 0x0d, 0x27, 0x72, 0xc4, 0xb9, 0xf7, 0x21, 0x6d, 0x6f, 0xa9, 0xab, 0x62, 0xa1, + 0xbd, 0xbb, 0x4d, 0x0b, 0xc2, 0x05, 0x8a, 0x4d, 0x77, 0xdb, 0xad, 0xcd, 0xcf, 0x91, 0x7a, 0xb4, + 0x46, 0x22, 0x27, 0xfe, 0x9c, 0xb8, 0x0c, 0x2b, 0xaa, 0xe8, 0x06, 0x0c, 0x45, 0x4e, 0xb0, 0x4d, + 0x22, 0x71, 0x00, 0x66, 0x1e, 0x54, 0xbc, 0x26, 0xa6, 0x3b, 0x92, 0x78, 0x75, 0x12, 0x5f, 0x0b, + 0x1b, 0xac, 0x2a, 0x16, 0x24, 0xec, 0x1f, 0x1a, 0x86, 0xb3, 0xcb, 0xb5, 0x4a, 0xce, 0xba, 0xba, + 0x04, 0x43, 0x8d, 0xc0, 0xdd, 0x23, 0x81, 0x18, 0x67, 0x45, 0xa5, 0xcc, 0x4a, 0xb1, 0x80, 0xa2, + 0x97, 0x61, 0x8c, 0x5f, 0x48, 0xd7, 0x1d, 0xaf, 0xd1, 0x94, 0x43, 0x7c, 0x4a, 0x60, 0x8f, 0xdd, + 0xd1, 0x60, 0xd8, 0xc0, 0x3c, 0xe2, 0xa2, 0xba, 0x94, 0xd8, 0x8c, 0x79, 0x97, 0xdd, 0x17, 0x2d, + 0x98, 0xe2, 0xcd, 0x2c, 0x46, 0x51, 0xe0, 0x6e, 0x76, 0x22, 0x12, 0xce, 0x0e, 0xb2, 0x93, 0x6e, + 0x39, 0x6b, 0xb4, 0x72, 0x47, 0x60, 0xe1, 0x4e, 0x82, 0x0a, 0x3f, 0x04, 0x67, 0x45, 0xbb, 0x53, + 0x49, 0x30, 0x4e, 0x35, 0x8b, 0xbe, 0xd3, 0x82, 0xb9, 0xba, 0xef, 0x45, 0x81, 0xdf, 0x6c, 0x92, + 0xa0, 0xda, 0xd9, 0x6c, 0xba, 0xe1, 0x0e, 0x5f, 0xa7, 0x98, 0x6c, 0xb1, 0x93, 0x20, 0x67, 0x0e, + 0x15, 0x92, 0x98, 0xc3, 0xf3, 0x0f, 0x0e, 0xe6, 0xe7, 0x96, 0x73, 0x49, 0xe1, 0x2e, 0xcd, 0xa0, + 0x5d, 0x40, 0xf4, 0x2a, 0xad, 0x45, 0xce, 0x36, 0x89, 0x1b, 0x1f, 0xee, 0xbf, 0xf1, 0x33, 0x0f, + 0x0e, 0xe6, 0xd1, 0x7a, 0x8a, 0x04, 0xce, 0x20, 0x8b, 0xde, 0x82, 0x53, 0xb4, 0x34, 0xf5, 0xad, + 0x23, 0xfd, 0x37, 0x37, 0xfb, 0xe0, 0x60, 0xfe, 0xd4, 0x7a, 0x06, 0x11, 0x9c, 0x49, 0x1a, 0x7d, + 0x87, 0x05, 0x67, 0xe3, 0xcf, 0x5f, 0xb9, 0xdf, 0x76, 0xbc, 0x46, 0xdc, 0x70, 0xa9, 0xff, 0x86, + 0xe9, 0x99, 0x7c, 0x76, 0x39, 0x8f, 0x12, 0xce, 0x6f, 0x64, 0x6e, 0x19, 0x4e, 0x67, 0xae, 0x16, + 0x34, 0x05, 0xc5, 0x5d, 0xc2, 0xb9, 0xa0, 0x12, 0xa6, 0x3f, 0xd1, 0x29, 0x18, 0xdc, 0x73, 0x9a, + 0x1d, 0xb1, 0x51, 0x30, 0xff, 0xf3, 0x4a, 0xe1, 0x65, 0xcb, 0xfe, 0x97, 0x45, 0x98, 0x5c, 0xae, + 0x55, 0x1e, 0x6a, 0x17, 0xea, 0xd7, 0x50, 0xa1, 0xeb, 0x35, 0x14, 0x5f, 0x6a, 0xc5, 0xdc, 0x4b, + 0xed, 0xff, 0xcd, 0xd8, 0x42, 0x03, 0x6c, 0x0b, 0x7d, 0x4b, 0xce, 0x16, 0x3a, 0xe6, 0x8d, 0xb3, + 0x97, 0xb3, 0x8a, 0x06, 0xd9, 0x64, 0x66, 0x72, 0x2c, 0x37, 0xfd, 0xba, 0xd3, 0x4c, 0x1e, 0x7d, + 0x47, 0x5c, 0x4a, 0xc7, 0x33, 0x8f, 0x75, 0x18, 0x5b, 0x76, 0xda, 0xce, 0xa6, 0xdb, 0x74, 0x23, + 0x97, 0x84, 0xe8, 0x29, 0x28, 0x3a, 0x8d, 0x06, 0xe3, 0xb6, 0x4a, 0x4b, 0xa7, 0x1f, 0x1c, 0xcc, + 0x17, 0x17, 0x1b, 0xf4, 0xda, 0x07, 0x85, 0xb5, 0x8f, 0x29, 0x06, 0xfa, 0x20, 0x0c, 0x34, 0x02, + 0xbf, 0x3d, 0x5b, 0x60, 0x98, 0x74, 0xd7, 0x0d, 0x94, 0x03, 0xbf, 0x9d, 0x40, 0x65, 0x38, 0xf6, + 0xaf, 0x16, 0xe0, 0x89, 0x65, 0xd2, 0xde, 0x59, 0xad, 0xe5, 0x9c, 0xdf, 0x97, 0x61, 0xa4, 0xe5, + 0x7b, 0x6e, 0xe4, 0x07, 0xa1, 0x68, 0x9a, 0xad, 0x88, 0x35, 0x51, 0x86, 0x15, 0x14, 0x5d, 0x80, + 0x81, 0x76, 0xcc, 0x54, 0x8e, 0x49, 0x86, 0x94, 0xb1, 0x93, 0x0c, 0x42, 0x31, 0x3a, 0x21, 0x09, + 0xc4, 0x8a, 0x51, 0x18, 0xb7, 0x43, 0x12, 0x60, 0x06, 0x89, 0x6f, 0x66, 0x7a, 0x67, 0x8b, 0x13, + 0x3a, 0x71, 0x33, 0x53, 0x08, 0xd6, 0xb0, 0x50, 0x15, 0x4a, 0x61, 0x62, 0x66, 0xfb, 0xda, 0xa6, + 0xe3, 0xec, 0xea, 0x56, 0x33, 0x19, 0x13, 0x31, 0x6e, 0x94, 0xa1, 0x9e, 0x57, 0xf7, 0x57, 0x0a, + 0x80, 0xf8, 0x10, 0x7e, 0x83, 0x0d, 0xdc, 0xed, 0xf4, 0xc0, 0xf5, 0xbf, 0x25, 0x8e, 0x6b, 0xf4, + 0xfe, 0xcc, 0x82, 0x27, 0x96, 0x5d, 0xaf, 0x41, 0x82, 0x9c, 0x05, 0xf8, 0x68, 0xde, 0xb2, 0x47, + 0x63, 0x1a, 0x8c, 0x25, 0x36, 0x70, 0x0c, 0x4b, 0xcc, 0xfe, 0x63, 0x0b, 0x10, 0xff, 0xec, 0x77, + 0xdd, 0xc7, 0xde, 0x4e, 0x7f, 0xec, 0x31, 0x2c, 0x0b, 0xfb, 0x26, 0x4c, 0x2c, 0x37, 0x5d, 0xe2, + 0x45, 0x95, 0xea, 0xb2, 0xef, 0x6d, 0xb9, 0xdb, 0xe8, 0x15, 0x98, 0x88, 0xdc, 0x16, 0xf1, 0x3b, + 0x51, 0x8d, 0xd4, 0x7d, 0x8f, 0xbd, 0x24, 0xad, 0xcb, 0x83, 0x4b, 0xe8, 0xc1, 0xc1, 0xfc, 0xc4, + 0x86, 0x01, 0xc1, 0x09, 0x4c, 0xfb, 0x77, 0xe9, 0xf8, 0xf9, 0xad, 0xb6, 0xef, 0x11, 0x2f, 0x5a, + 0xf6, 0xbd, 0x06, 0x97, 0x38, 0xbc, 0x02, 0x03, 0x11, 0x1d, 0x0f, 0x3e, 0x76, 0x97, 0xe4, 0x46, + 0xa1, 0xa3, 0x70, 0x78, 0x30, 0x7f, 0x26, 0x5d, 0x83, 0x8d, 0x13, 0xab, 0x83, 0xbe, 0x05, 0x86, + 0xc2, 0xc8, 0x89, 0x3a, 0xa1, 0x18, 0xcd, 0x27, 0xe5, 0x68, 0xd6, 0x58, 0xe9, 0xe1, 0xc1, 0xfc, + 0xa4, 0xaa, 0xc6, 0x8b, 0xb0, 0xa8, 0x80, 0x9e, 0x86, 0xe1, 0x16, 0x09, 0x43, 0x67, 0x5b, 0xde, + 0x86, 0x93, 0xa2, 0xee, 0xf0, 0x1a, 0x2f, 0xc6, 0x12, 0x8e, 0x2e, 0xc2, 0x20, 0x09, 0x02, 0x3f, + 0x10, 0x7b, 0x74, 0x5c, 0x20, 0x0e, 0xae, 0xd0, 0x42, 0xcc, 0x61, 0xf6, 0xbf, 0xb3, 0x60, 0x52, + 0xf5, 0x95, 0xb7, 0x75, 0x02, 0xaf, 0x82, 0x4f, 0x01, 0xd4, 0xe5, 0x07, 0x86, 0xec, 0xf6, 0x18, + 0x7d, 0xfe, 0x52, 0xe6, 0x45, 0x9d, 0x1a, 0xc6, 0x98, 0xb2, 0x2a, 0x0a, 0xb1, 0x46, 0xcd, 0xfe, + 0x27, 0x16, 0xcc, 0x24, 0xbe, 0xe8, 0xa6, 0x1b, 0x46, 0xe8, 0xcd, 0xd4, 0x57, 0x2d, 0xf4, 0xf7, + 0x55, 0xb4, 0x36, 0xfb, 0x26, 0xb5, 0x94, 0x65, 0x89, 0xf6, 0x45, 0xd7, 0x61, 0xd0, 0x8d, 0x48, + 0x4b, 0x7e, 0xcc, 0xc5, 0xae, 0x1f, 0xc3, 0x7b, 0x15, 0xcf, 0x48, 0x85, 0xd6, 0xc4, 0x9c, 0x80, + 0xfd, 0xab, 0x45, 0x28, 0xf1, 0x65, 0xbb, 0xe6, 0xb4, 0x4f, 0x60, 0x2e, 0x9e, 0x81, 0x92, 0xdb, + 0x6a, 0x75, 0x22, 0x67, 0x53, 0x1c, 0xe7, 0x23, 0x7c, 0x6b, 0x55, 0x64, 0x21, 0x8e, 0xe1, 0xa8, + 0x02, 0x03, 0xac, 0x2b, 0xfc, 0x2b, 0x9f, 0xca, 0xfe, 0x4a, 0xd1, 0xf7, 0x85, 0xb2, 0x13, 0x39, + 0x9c, 0x93, 0x52, 0xf7, 0x08, 0x2d, 0xc2, 0x8c, 0x04, 0x72, 0x00, 0x36, 0x5d, 0xcf, 0x09, 0xf6, + 0x69, 0xd9, 0x6c, 0x91, 0x11, 0x7c, 0xae, 0x3b, 0xc1, 0x25, 0x85, 0xcf, 0xc9, 0xaa, 0x0f, 0x8b, + 0x01, 0x58, 0x23, 0x3a, 0xf7, 0x11, 0x28, 0x29, 0xe4, 0xa3, 0x30, 0x44, 0x73, 0x1f, 0x83, 0xc9, + 0x44, 0x5b, 0xbd, 0xaa, 0x8f, 0xe9, 0xfc, 0xd4, 0x2f, 0xb1, 0x23, 0x43, 0xf4, 0x7a, 0xc5, 0xdb, + 0x13, 0x47, 0xee, 0xdb, 0x70, 0xaa, 0x99, 0x71, 0x92, 0x89, 0x79, 0xed, 0xff, 0xe4, 0x7b, 0x42, + 0x7c, 0xf6, 0xa9, 0x2c, 0x28, 0xce, 0x6c, 0x83, 0xf2, 0x08, 0x7e, 0x9b, 0x6e, 0x10, 0xa7, 0xa9, + 0xb3, 0xdb, 0xb7, 0x44, 0x19, 0x56, 0x50, 0x7a, 0xde, 0x9d, 0x52, 0x9d, 0xbf, 0x41, 0xf6, 0x6b, + 0xa4, 0x49, 0xea, 0x91, 0x1f, 0x7c, 0x5d, 0xbb, 0x7f, 0x8e, 0x8f, 0x3e, 0x3f, 0x2e, 0x47, 0x05, + 0x81, 0xe2, 0x0d, 0xb2, 0xcf, 0xa7, 0x42, 0xff, 0xba, 0x62, 0xd7, 0xaf, 0xfb, 0x19, 0x0b, 0xc6, + 0xd5, 0xd7, 0x9d, 0xc0, 0xb9, 0xb0, 0x64, 0x9e, 0x0b, 0xe7, 0xba, 0x2e, 0xf0, 0x9c, 0x13, 0xe1, + 0x2b, 0x05, 0x38, 0xab, 0x70, 0xe8, 0xdb, 0x80, 0xff, 0x11, 0xab, 0xea, 0x0a, 0x94, 0x3c, 0x25, + 0xb5, 0xb2, 0x4c, 0x71, 0x51, 0x2c, 0xb3, 0x8a, 0x71, 0x28, 0x8b, 0xe7, 0xc5, 0xa2, 0xa5, 0x31, + 0x5d, 0x9c, 0x2b, 0x44, 0xb7, 0x4b, 0x50, 0xec, 0xb8, 0x0d, 0x71, 0xc1, 0x7c, 0x48, 0x8e, 0xf6, + 0xed, 0x4a, 0xf9, 0xf0, 0x60, 0xfe, 0xc9, 0x3c, 0x55, 0x02, 0xbd, 0xd9, 0xc2, 0x85, 0xdb, 0x95, + 0x32, 0xa6, 0x95, 0xd1, 0x22, 0x4c, 0x4a, 0x6d, 0xc9, 0x1d, 0xca, 0x6e, 0xf9, 0x9e, 0xb8, 0x87, + 0x94, 0x4c, 0x16, 0x9b, 0x60, 0x9c, 0xc4, 0x47, 0x65, 0x98, 0xda, 0xed, 0x6c, 0x92, 0x26, 0x89, + 0xf8, 0x07, 0xdf, 0x20, 0x5c, 0x62, 0x59, 0x8a, 0x5f, 0x66, 0x37, 0x12, 0x70, 0x9c, 0xaa, 0x61, + 0xff, 0x05, 0xbb, 0x0f, 0xc4, 0xe8, 0x55, 0x03, 0x9f, 0x2e, 0x2c, 0x4a, 0xfd, 0xeb, 0xb9, 0x9c, + 0xfb, 0x59, 0x15, 0x37, 0xc8, 0xfe, 0x86, 0x4f, 0x39, 0xf3, 0xec, 0x55, 0x61, 0xac, 0xf9, 0x81, + 0xae, 0x6b, 0xfe, 0xe7, 0x0a, 0x70, 0x5a, 0x8d, 0x80, 0xc1, 0x04, 0x7e, 0xa3, 0x8f, 0xc1, 0x55, + 0x18, 0x6d, 0x90, 0x2d, 0xa7, 0xd3, 0x8c, 0x94, 0xf8, 0x7c, 0x90, 0xab, 0x50, 0xca, 0x71, 0x31, + 0xd6, 0x71, 0x8e, 0x30, 0x6c, 0xff, 0x73, 0x94, 0x5d, 0xc4, 0x91, 0x43, 0xd7, 0xb8, 0xda, 0x35, + 0x56, 0xee, 0xae, 0xb9, 0x08, 0x83, 0x6e, 0x8b, 0x32, 0x66, 0x05, 0x93, 0xdf, 0xaa, 0xd0, 0x42, + 0xcc, 0x61, 0xe8, 0x03, 0x30, 0x5c, 0xf7, 0x5b, 0x2d, 0xc7, 0x6b, 0xb0, 0x2b, 0xaf, 0xb4, 0x34, + 0x4a, 0x79, 0xb7, 0x65, 0x5e, 0x84, 0x25, 0x0c, 0x3d, 0x01, 0x03, 0x4e, 0xb0, 0xcd, 0x65, 0x18, + 0xa5, 0xa5, 0x11, 0xda, 0xd2, 0x62, 0xb0, 0x1d, 0x62, 0x56, 0x4a, 0x9f, 0x60, 0xf7, 0xfc, 0x60, + 0xd7, 0xf5, 0xb6, 0xcb, 0x6e, 0x20, 0xb6, 0x84, 0xba, 0x0b, 0xef, 0x2a, 0x08, 0xd6, 0xb0, 0xd0, + 0x2a, 0x0c, 0xb6, 0xfd, 0x20, 0x0a, 0x67, 0x87, 0xd8, 0x70, 0x3f, 0x99, 0x73, 0x10, 0xf1, 0xaf, + 0xad, 0xfa, 0x41, 0x14, 0x7f, 0x00, 0xfd, 0x17, 0x62, 0x5e, 0x1d, 0xdd, 0x84, 0x61, 0xe2, 0xed, + 0xad, 0x06, 0x7e, 0x6b, 0x76, 0x26, 0x9f, 0xd2, 0x0a, 0x47, 0xe1, 0xcb, 0x2c, 0xe6, 0x51, 0x45, + 0x31, 0x96, 0x24, 0xd0, 0xb7, 0x40, 0x91, 0x78, 0x7b, 0xb3, 0xc3, 0x8c, 0xd2, 0x5c, 0x0e, 0xa5, + 0x3b, 0x4e, 0x10, 0x9f, 0xf9, 0x2b, 0xde, 0x1e, 0xa6, 0x75, 0xd0, 0x27, 0xa1, 0x24, 0x0f, 0x8c, + 0x50, 0x08, 0xeb, 0x32, 0x17, 0xac, 0x3c, 0x66, 0x30, 0x79, 0xab, 0xe3, 0x06, 0xa4, 0x45, 0xbc, + 0x28, 0x8c, 0x4f, 0x48, 0x09, 0x0d, 0x71, 0x4c, 0x0d, 0x7d, 0x52, 0x4a, 0x88, 0xd7, 0xfc, 0x8e, + 0x17, 0x85, 0xb3, 0x25, 0xd6, 0xbd, 0x4c, 0xdd, 0xdd, 0x9d, 0x18, 0x2f, 0x29, 0x42, 0xe6, 0x95, + 0xb1, 0x41, 0x0a, 0x7d, 0x1a, 0xc6, 0xf9, 0x7f, 0xae, 0x01, 0x0b, 0x67, 0x4f, 0x33, 0xda, 0x17, + 0xf2, 0x69, 0x73, 0xc4, 0xa5, 0xd3, 0x82, 0xf8, 0xb8, 0x5e, 0x1a, 0x62, 0x93, 0x1a, 0xc2, 0x30, + 0xde, 0x74, 0xf7, 0x88, 0x47, 0xc2, 0xb0, 0x1a, 0xf8, 0x9b, 0x64, 0x16, 0xd8, 0xc0, 0x9c, 0xcd, + 0xd6, 0x98, 0xf9, 0x9b, 0x64, 0x69, 0x9a, 0xd2, 0xbc, 0xa9, 0xd7, 0xc1, 0x26, 0x09, 0x74, 0x1b, + 0x26, 0xe8, 0x8b, 0xcd, 0x8d, 0x89, 0x8e, 0xf6, 0x22, 0xca, 0xde, 0x55, 0xd8, 0xa8, 0x84, 0x13, + 0x44, 0xd0, 0x2d, 0x18, 0x0b, 0x23, 0x27, 0x88, 0x3a, 0x6d, 0x4e, 0xf4, 0x4c, 0x2f, 0xa2, 0x4c, + 0xe1, 0x5a, 0xd3, 0xaa, 0x60, 0x83, 0x00, 0x7a, 0x1d, 0x4a, 0x4d, 0x77, 0x8b, 0xd4, 0xf7, 0xeb, + 0x4d, 0x32, 0x3b, 0xc6, 0xa8, 0x65, 0x1e, 0x2a, 0x37, 0x25, 0x12, 0xe7, 0x73, 0xd5, 0x5f, 0x1c, + 0x57, 0x47, 0x77, 0xe0, 0x4c, 0x44, 0x82, 0x96, 0xeb, 0x39, 0xf4, 0x30, 0x10, 0x4f, 0x2b, 0xa6, + 0xc8, 0x1c, 0x67, 0xbb, 0xed, 0xbc, 0x98, 0x8d, 0x33, 0x1b, 0x99, 0x58, 0x38, 0xa7, 0x36, 0xba, + 0x0f, 0xb3, 0x19, 0x10, 0xbf, 0xe9, 0xd6, 0xf7, 0x67, 0x4f, 0x31, 0xca, 0x1f, 0x15, 0x94, 0x67, + 0x37, 0x72, 0xf0, 0x0e, 0xbb, 0xc0, 0x70, 0x2e, 0x75, 0x74, 0x0b, 0x26, 0xd9, 0x09, 0x54, 0xed, + 0x34, 0x9b, 0xa2, 0xc1, 0x09, 0xd6, 0xe0, 0x07, 0xe4, 0x7d, 0x5c, 0x31, 0xc1, 0x87, 0x07, 0xf3, + 0x10, 0xff, 0xc3, 0xc9, 0xda, 0x68, 0x93, 0xe9, 0xcc, 0x3a, 0x81, 0x1b, 0xed, 0xd3, 0x73, 0x83, + 0xdc, 0x8f, 0x66, 0x27, 0xbb, 0xca, 0x2b, 0x74, 0x54, 0xa5, 0x58, 0xd3, 0x0b, 0x71, 0x92, 0x20, + 0x3d, 0x52, 0xc3, 0xa8, 0xe1, 0x7a, 0xb3, 0x53, 0xfc, 0x5d, 0x22, 0x4f, 0xa4, 0x1a, 0x2d, 0xc4, + 0x1c, 0xc6, 0xf4, 0x65, 0xf4, 0xc7, 0x2d, 0x7a, 0x73, 0x4d, 0x33, 0xc4, 0x58, 0x5f, 0x26, 0x01, + 0x38, 0xc6, 0xa1, 0xcc, 0x64, 0x14, 0xed, 0xcf, 0x22, 0x86, 0xaa, 0x0e, 0x96, 0x8d, 0x8d, 0x4f, + 0x62, 0x5a, 0x6e, 0x6f, 0xc2, 0x84, 0x3a, 0x08, 0xd9, 0x98, 0xa0, 0x79, 0x18, 0x64, 0xec, 0x93, + 0x90, 0xae, 0x95, 0x68, 0x17, 0x18, 0x6b, 0x85, 0x79, 0x39, 0xeb, 0x82, 0xfb, 0x36, 0x59, 0xda, + 0x8f, 0x08, 0x7f, 0xd3, 0x17, 0xb5, 0x2e, 0x48, 0x00, 0x8e, 0x71, 0xec, 0xff, 0xc3, 0xd9, 0xd0, + 0xf8, 0xb4, 0xed, 0xe3, 0x7e, 0x79, 0x16, 0x46, 0x76, 0xfc, 0x30, 0xa2, 0xd8, 0xac, 0x8d, 0xc1, + 0x98, 0xf1, 0xbc, 0x2e, 0xca, 0xb1, 0xc2, 0x40, 0xaf, 0xc2, 0x78, 0x5d, 0x6f, 0x40, 0x5c, 0x8e, + 0xea, 0x18, 0x31, 0x5a, 0xc7, 0x26, 0x2e, 0x7a, 0x19, 0x46, 0x98, 0x0d, 0x48, 0xdd, 0x6f, 0x0a, + 0xae, 0x4d, 0xde, 0xf0, 0x23, 0x55, 0x51, 0x7e, 0xa8, 0xfd, 0xc6, 0x0a, 0x1b, 0x5d, 0x82, 0x21, + 0xda, 0x85, 0x4a, 0x55, 0x5c, 0x4b, 0x4a, 0x50, 0x74, 0x9d, 0x95, 0x62, 0x01, 0xb5, 0xff, 0x52, + 0x41, 0x1b, 0x65, 0xfa, 0x1e, 0x26, 0xa8, 0x0a, 0xc3, 0xf7, 0x1c, 0x37, 0x72, 0xbd, 0x6d, 0xc1, + 0x7f, 0x3c, 0xdd, 0xf5, 0x8e, 0x62, 0x95, 0xee, 0xf2, 0x0a, 0xfc, 0x16, 0x15, 0x7f, 0xb0, 0x24, + 0x43, 0x29, 0x06, 0x1d, 0xcf, 0xa3, 0x14, 0x0b, 0xfd, 0x52, 0xc4, 0xbc, 0x02, 0xa7, 0x28, 0xfe, + 0x60, 0x49, 0x06, 0xbd, 0x09, 0x20, 0x77, 0x18, 0x69, 0x08, 0xdb, 0x8b, 0x67, 0x7b, 0x13, 0xdd, + 0x50, 0x75, 0x96, 0x26, 0xe8, 0x1d, 0x1d, 0xff, 0xc7, 0x1a, 0x3d, 0x3b, 0x62, 0x7c, 0x5a, 0xba, + 0x33, 0xe8, 0xdb, 0xe8, 0x12, 0x77, 0x82, 0x88, 0x34, 0x16, 0x23, 0x31, 0x38, 0x1f, 0xec, 0xef, + 0x91, 0xb2, 0xe1, 0xb6, 0x88, 0xbe, 0x1d, 0x04, 0x11, 0x1c, 0xd3, 0xb3, 0x7f, 0xa1, 0x08, 0xb3, + 0x79, 0xdd, 0xa5, 0x8b, 0x8e, 0xdc, 0x77, 0xa3, 0x65, 0xca, 0x5e, 0x59, 0xe6, 0xa2, 0x5b, 0x11, + 0xe5, 0x58, 0x61, 0xd0, 0xd9, 0x0f, 0xdd, 0x6d, 0xf9, 0xc6, 0x1c, 0x8c, 0x67, 0xbf, 0xc6, 0x4a, + 0xb1, 0x80, 0x52, 0xbc, 0x80, 0x38, 0xa1, 0x30, 0xee, 0xd1, 0x56, 0x09, 0x66, 0xa5, 0x58, 0x40, + 0x75, 0x69, 0xd7, 0x40, 0x0f, 0x69, 0x97, 0x31, 0x44, 0x83, 0xc7, 0x3b, 0x44, 0xe8, 0x33, 0x00, + 0x5b, 0xae, 0xe7, 0x86, 0x3b, 0x8c, 0xfa, 0xd0, 0x91, 0xa9, 0x2b, 0xe6, 0x6c, 0x55, 0x51, 0xc1, + 0x1a, 0x45, 0xf4, 0x12, 0x8c, 0xaa, 0x0d, 0x58, 0x29, 0x33, 0x4d, 0xa7, 0x66, 0x39, 0x12, 0x9f, + 0x46, 0x65, 0xac, 0xe3, 0xd9, 0x9f, 0x4b, 0xae, 0x17, 0xb1, 0x03, 0xb4, 0xf1, 0xb5, 0xfa, 0x1d, + 0xdf, 0x42, 0xf7, 0xf1, 0xb5, 0xbf, 0x56, 0x84, 0x49, 0xa3, 0xb1, 0x4e, 0xd8, 0xc7, 0x99, 0x75, + 0x8d, 0x1e, 0xe0, 0x4e, 0x44, 0xc4, 0xfe, 0xb3, 0x7b, 0x6f, 0x15, 0xfd, 0x90, 0xa7, 0x3b, 0x80, + 0xd7, 0x47, 0x9f, 0x81, 0x52, 0xd3, 0x09, 0x99, 0xe4, 0x8c, 0x88, 0x7d, 0xd7, 0x0f, 0xb1, 0xf8, + 0x61, 0xe2, 0x84, 0x91, 0x76, 0x6b, 0x72, 0xda, 0x31, 0x49, 0x7a, 0xd3, 0x50, 0xfe, 0x44, 0x5a, + 0x8f, 0xa9, 0x4e, 0x50, 0x26, 0x66, 0x1f, 0x73, 0x18, 0x7a, 0x19, 0xc6, 0x02, 0xc2, 0x56, 0xc5, + 0x32, 0xe5, 0xe6, 0xd8, 0x32, 0x1b, 0x8c, 0xd9, 0x3e, 0xac, 0xc1, 0xb0, 0x81, 0x19, 0xbf, 0x0d, + 0x86, 0xba, 0xbc, 0x0d, 0x9e, 0x86, 0x61, 0xf6, 0x43, 0xad, 0x00, 0x35, 0x1b, 0x15, 0x5e, 0x8c, + 0x25, 0x3c, 0xb9, 0x60, 0x46, 0xfa, 0x5b, 0x30, 0xf4, 0xf5, 0x21, 0x16, 0x35, 0xd3, 0x32, 0x8f, + 0xf0, 0x53, 0x4e, 0x2c, 0x79, 0x2c, 0x61, 0xf6, 0x07, 0x61, 0xa2, 0xec, 0x90, 0x96, 0xef, 0xad, + 0x78, 0x8d, 0xb6, 0xef, 0x7a, 0x11, 0x9a, 0x85, 0x01, 0x76, 0x89, 0xf0, 0x23, 0x60, 0x80, 0x36, + 0x84, 0x59, 0x89, 0xbd, 0x0d, 0xa7, 0xcb, 0xfe, 0x3d, 0xef, 0x9e, 0x13, 0x34, 0x16, 0xab, 0x15, + 0xed, 0x7d, 0xbd, 0x2e, 0xdf, 0x77, 0xdc, 0x68, 0x2b, 0xf3, 0xe8, 0xd5, 0x6a, 0x72, 0xb6, 0x76, + 0xd5, 0x6d, 0x92, 0x1c, 0x29, 0xc8, 0x5f, 0x2d, 0x18, 0x2d, 0xc5, 0xf8, 0x4a, 0xab, 0x65, 0xe5, + 0x6a, 0xb5, 0xde, 0x80, 0x91, 0x2d, 0x97, 0x34, 0x1b, 0x98, 0x6c, 0x89, 0x95, 0xf8, 0x54, 0xbe, + 0x1d, 0xca, 0x2a, 0xc5, 0x94, 0x52, 0x2f, 0xfe, 0x3a, 0x5c, 0x15, 0x95, 0xb1, 0x22, 0x83, 0x76, + 0x61, 0x4a, 0x3e, 0x18, 0x24, 0x54, 0xac, 0xcb, 0xa7, 0xbb, 0xbd, 0x42, 0x4c, 0xe2, 0xa7, 0x1e, + 0x1c, 0xcc, 0x4f, 0xe1, 0x04, 0x19, 0x9c, 0x22, 0x4c, 0x9f, 0x83, 0x2d, 0x7a, 0x02, 0x0f, 0xb0, + 0xe1, 0x67, 0xcf, 0x41, 0xf6, 0xb2, 0x65, 0xa5, 0xf6, 0x8f, 0x59, 0xf0, 0x58, 0x6a, 0x64, 0xc4, + 0x0b, 0xff, 0x98, 0x67, 0x21, 0xf9, 0xe2, 0x2e, 0xf4, 0x7e, 0x71, 0xdb, 0x7f, 0xd7, 0x82, 0x53, + 0x2b, 0xad, 0x76, 0xb4, 0x5f, 0x76, 0x4d, 0x15, 0xd4, 0x47, 0x60, 0xa8, 0x45, 0x1a, 0x6e, 0xa7, + 0x25, 0x66, 0x6e, 0x5e, 0x9e, 0x52, 0x6b, 0xac, 0xf4, 0xf0, 0x60, 0x7e, 0xbc, 0x16, 0xf9, 0x81, + 0xb3, 0x4d, 0x78, 0x01, 0x16, 0xe8, 0xec, 0xac, 0x77, 0xdf, 0x26, 0x37, 0xdd, 0x96, 0x2b, 0xed, + 0x8a, 0xba, 0xca, 0xec, 0x16, 0xe4, 0x80, 0x2e, 0xbc, 0xd1, 0x71, 0xbc, 0xc8, 0x8d, 0xf6, 0x85, + 0xf6, 0x48, 0x12, 0xc1, 0x31, 0x3d, 0xfb, 0xab, 0x16, 0x4c, 0xca, 0x75, 0xbf, 0xd8, 0x68, 0x04, + 0x24, 0x0c, 0xd1, 0x1c, 0x14, 0xdc, 0xb6, 0xe8, 0x25, 0x88, 0x5e, 0x16, 0x2a, 0x55, 0x5c, 0x70, + 0xdb, 0x92, 0x2d, 0x63, 0x07, 0x61, 0xd1, 0x54, 0xa4, 0x5d, 0x17, 0xe5, 0x58, 0x61, 0xa0, 0xcb, + 0x30, 0xe2, 0xf9, 0x0d, 0x6e, 0xdb, 0xc5, 0xaf, 0x34, 0xb6, 0xc0, 0xd6, 0x45, 0x19, 0x56, 0x50, + 0x54, 0x85, 0x12, 0x37, 0x7b, 0x8a, 0x17, 0x6d, 0x5f, 0xc6, 0x53, 0xec, 0xcb, 0x36, 0x64, 0x4d, + 0x1c, 0x13, 0xb1, 0x7f, 0xc5, 0x82, 0x31, 0xf9, 0x65, 0x7d, 0xf2, 0x9c, 0x74, 0x6b, 0xc5, 0xfc, + 0x66, 0xbc, 0xb5, 0x28, 0xcf, 0xc8, 0x20, 0x06, 0xab, 0x58, 0x3c, 0x12, 0xab, 0x78, 0x15, 0x46, + 0x9d, 0x76, 0xbb, 0x6a, 0xf2, 0x99, 0x6c, 0x29, 0x2d, 0xc6, 0xc5, 0x58, 0xc7, 0xb1, 0x7f, 0xb4, + 0x00, 0x13, 0xf2, 0x0b, 0x6a, 0x9d, 0xcd, 0x90, 0x44, 0x68, 0x03, 0x4a, 0x0e, 0x9f, 0x25, 0x22, + 0x17, 0xf9, 0xc5, 0x6c, 0x39, 0x82, 0x31, 0xa5, 0xf1, 0x85, 0xbf, 0x28, 0x6b, 0xe3, 0x98, 0x10, + 0x6a, 0xc2, 0xb4, 0xe7, 0x47, 0xec, 0xf0, 0x57, 0xf0, 0x6e, 0xaa, 0x9d, 0x24, 0xf5, 0xb3, 0x82, + 0xfa, 0xf4, 0x7a, 0x92, 0x0a, 0x4e, 0x13, 0x46, 0x2b, 0x52, 0x36, 0x53, 0xcc, 0x17, 0x06, 0xe8, + 0x13, 0x97, 0x2d, 0x9a, 0xb1, 0x7f, 0xd9, 0x82, 0x92, 0x44, 0x3b, 0x09, 0x2d, 0xde, 0x1a, 0x0c, + 0x87, 0x6c, 0x12, 0xe4, 0xd0, 0xd8, 0xdd, 0x3a, 0xce, 0xe7, 0x2b, 0xbe, 0xd3, 0xf8, 0xff, 0x10, + 0x4b, 0x1a, 0x4c, 0x34, 0xaf, 0xba, 0xff, 0x2e, 0x11, 0xcd, 0xab, 0xfe, 0xe4, 0x5c, 0x4a, 0x7f, + 0xc8, 0xfa, 0xac, 0xc9, 0xba, 0x28, 0xeb, 0xd5, 0x0e, 0xc8, 0x96, 0x7b, 0x3f, 0xc9, 0x7a, 0x55, + 0x59, 0x29, 0x16, 0x50, 0xf4, 0x26, 0x8c, 0xd5, 0xa5, 0x4c, 0x36, 0xde, 0xe1, 0x97, 0xba, 0xea, + 0x07, 0x94, 0x2a, 0x89, 0xcb, 0x42, 0x96, 0xb5, 0xfa, 0xd8, 0xa0, 0x66, 0x9a, 0x11, 0x14, 0x7b, + 0x99, 0x11, 0xc4, 0x74, 0xf3, 0x95, 0xea, 0x3f, 0x6e, 0xc1, 0x10, 0x97, 0xc5, 0xf5, 0x27, 0x0a, + 0xd5, 0x34, 0x6b, 0xf1, 0xd8, 0xdd, 0xa1, 0x85, 0x42, 0x53, 0x86, 0xd6, 0xa0, 0xc4, 0x7e, 0x30, + 0x59, 0x62, 0x31, 0xdf, 0xea, 0x9e, 0xb7, 0xaa, 0x77, 0xf0, 0x8e, 0xac, 0x86, 0x63, 0x0a, 0xf6, + 0x0f, 0x17, 0xe9, 0xe9, 0x16, 0xa3, 0x1a, 0x97, 0xbe, 0xf5, 0xe8, 0x2e, 0xfd, 0xc2, 0xa3, 0xba, + 0xf4, 0xb7, 0x61, 0xb2, 0xae, 0xe9, 0xe1, 0xe2, 0x99, 0xbc, 0xdc, 0x75, 0x91, 0x68, 0x2a, 0x3b, + 0x2e, 0x65, 0x59, 0x36, 0x89, 0xe0, 0x24, 0x55, 0xf4, 0x6d, 0x30, 0xc6, 0xe7, 0x59, 0xb4, 0xc2, + 0x2d, 0x31, 0x3e, 0x90, 0xbf, 0x5e, 0xf4, 0x26, 0xb8, 0x54, 0x4e, 0xab, 0x8e, 0x0d, 0x62, 0xf6, + 0x9f, 0x58, 0x80, 0x56, 0xda, 0x3b, 0xa4, 0x45, 0x02, 0xa7, 0x19, 0x8b, 0xd3, 0xbf, 0xdf, 0x82, + 0x59, 0x92, 0x2a, 0x5e, 0xf6, 0x5b, 0x2d, 0xf1, 0x68, 0xc9, 0x79, 0x57, 0xaf, 0xe4, 0xd4, 0x51, + 0x6e, 0x09, 0xb3, 0x79, 0x18, 0x38, 0xb7, 0x3d, 0xb4, 0x06, 0x33, 0xfc, 0x96, 0x54, 0x00, 0xcd, + 0xf6, 0xfa, 0x71, 0x41, 0x78, 0x66, 0x23, 0x8d, 0x82, 0xb3, 0xea, 0xd9, 0xdf, 0x35, 0x06, 0xb9, + 0xbd, 0x78, 0x4f, 0x8f, 0xf0, 0x9e, 0x1e, 0xe1, 0x3d, 0x3d, 0xc2, 0x7b, 0x7a, 0x84, 0xf7, 0xf4, + 0x08, 0xdf, 0xf4, 0x7a, 0x84, 0x3f, 0xb2, 0x60, 0x26, 0x7d, 0x0d, 0x9c, 0x04, 0x63, 0xde, 0x81, + 0x99, 0xf4, 0x5d, 0xd7, 0xd5, 0xce, 0x2e, 0xdd, 0xcf, 0xf8, 0xde, 0xcb, 0xf8, 0x06, 0x9c, 0x45, + 0xdf, 0xfe, 0xcb, 0x16, 0x9c, 0x56, 0xc8, 0xc6, 0x4b, 0xff, 0xf3, 0x30, 0xc3, 0xcf, 0x97, 0xe5, + 0xa6, 0xe3, 0xb6, 0x36, 0x48, 0xab, 0xdd, 0x74, 0x22, 0x69, 0x66, 0x70, 0x35, 0x73, 0xab, 0x26, + 0x4c, 0x74, 0x8d, 0x8a, 0x4b, 0x8f, 0xd1, 0x7e, 0x65, 0x00, 0x70, 0x56, 0x33, 0xf6, 0x2f, 0x8c, + 0xc0, 0xe0, 0xca, 0x1e, 0xf1, 0xa2, 0x13, 0x18, 0xfa, 0x3a, 0x4c, 0xb8, 0xde, 0x9e, 0xdf, 0xdc, + 0x23, 0x0d, 0x0e, 0x3f, 0xca, 0xd3, 0xfd, 0x8c, 0x20, 0x3d, 0x51, 0x31, 0x48, 0xe0, 0x04, 0xc9, + 0x47, 0x21, 0x3e, 0xbf, 0x06, 0x43, 0xfc, 0xd6, 0x12, 0xb2, 0xf3, 0xcc, 0x4b, 0x8a, 0x0d, 0xa2, + 0xb8, 0x8b, 0x63, 0xd1, 0x3e, 0xbf, 0x15, 0x45, 0x75, 0xf4, 0x39, 0x98, 0xd8, 0x72, 0x83, 0x30, + 0xda, 0x70, 0x5b, 0x24, 0x8c, 0x9c, 0x56, 0xfb, 0x21, 0xc4, 0xe5, 0x6a, 0x1c, 0x56, 0x0d, 0x4a, + 0x38, 0x41, 0x19, 0x6d, 0xc3, 0x78, 0xd3, 0xd1, 0x9b, 0x1a, 0x3e, 0x72, 0x53, 0xea, 0x3a, 0xbc, + 0xa9, 0x13, 0xc2, 0x26, 0x5d, 0x7a, 0x7e, 0xd4, 0x99, 0xc4, 0x77, 0x84, 0xc9, 0x41, 0xd4, 0xf9, + 0xc1, 0x45, 0xbd, 0x1c, 0x46, 0x39, 0x3b, 0x66, 0x11, 0x5c, 0x32, 0x39, 0x3b, 0xcd, 0xee, 0xf7, + 0xb3, 0x50, 0x22, 0x74, 0x08, 0x29, 0x61, 0x71, 0xa3, 0x5e, 0xe9, 0xaf, 0xaf, 0x6b, 0x6e, 0x3d, + 0xf0, 0x4d, 0x45, 0xc5, 0x8a, 0xa4, 0x84, 0x63, 0xa2, 0x68, 0x19, 0x86, 0x42, 0x12, 0xb8, 0x24, + 0x14, 0x77, 0x6b, 0x97, 0x69, 0x64, 0x68, 0xdc, 0x99, 0x86, 0xff, 0xc6, 0xa2, 0x2a, 0x5d, 0x5e, + 0x0e, 0x93, 0xe1, 0xb2, 0xdb, 0x4f, 0x5b, 0x5e, 0x8b, 0xac, 0x14, 0x0b, 0x28, 0x7a, 0x1d, 0x86, + 0x03, 0xd2, 0x64, 0x9a, 0xb0, 0xf1, 0xfe, 0x17, 0x39, 0x57, 0xac, 0xf1, 0x7a, 0x58, 0x12, 0x40, + 0x37, 0x00, 0x05, 0x84, 0x72, 0x86, 0xae, 0xb7, 0xad, 0xec, 0x64, 0xc5, 0xcd, 0xa2, 0x4e, 0x22, + 0x1c, 0x63, 0x48, 0xbf, 0x26, 0x9c, 0x51, 0x0d, 0x5d, 0x83, 0x69, 0x55, 0x5a, 0xf1, 0xc2, 0xc8, + 0xa1, 0x27, 0xfa, 0x24, 0xa3, 0xa5, 0x04, 0x33, 0x38, 0x89, 0x80, 0xd3, 0x75, 0xec, 0x2f, 0x5b, + 0xc0, 0xc7, 0xf9, 0x04, 0xc4, 0x11, 0xaf, 0x99, 0xe2, 0x88, 0xb3, 0xb9, 0x33, 0x97, 0x23, 0x8a, + 0xf8, 0xb2, 0x05, 0xa3, 0xda, 0xcc, 0xc6, 0x6b, 0xd6, 0xea, 0xb2, 0x66, 0x3b, 0x30, 0x45, 0x57, + 0xfa, 0xad, 0xcd, 0x90, 0x04, 0x7b, 0xa4, 0xc1, 0x16, 0x66, 0xe1, 0xe1, 0x16, 0xa6, 0xb2, 0xc9, + 0xbb, 0x99, 0x20, 0x88, 0x53, 0x4d, 0xd8, 0x9f, 0x95, 0x5d, 0x55, 0x26, 0x8c, 0x75, 0x35, 0xe7, + 0x09, 0x13, 0x46, 0x35, 0xab, 0x38, 0xc6, 0xa1, 0x5b, 0x6d, 0xc7, 0x0f, 0xa3, 0xa4, 0x09, 0xe3, + 0x75, 0x3f, 0x8c, 0x30, 0x83, 0xd8, 0x2f, 0x00, 0xac, 0xdc, 0x27, 0x75, 0xbe, 0x62, 0xf5, 0xd7, + 0x92, 0x95, 0xff, 0x5a, 0xb2, 0x7f, 0xcb, 0x82, 0x89, 0xd5, 0x65, 0xe3, 0xe6, 0x5a, 0x00, 0xe0, + 0x4f, 0xbc, 0xbb, 0x77, 0xd7, 0xa5, 0xfe, 0x9f, 0xab, 0x70, 0x55, 0x29, 0xd6, 0x30, 0xd0, 0x59, + 0x28, 0x36, 0x3b, 0x9e, 0x90, 0x97, 0x0e, 0x53, 0x7e, 0xe0, 0x66, 0xc7, 0xc3, 0xb4, 0x4c, 0xf3, + 0xa1, 0x28, 0xf6, 0xed, 0x43, 0xd1, 0x33, 0x96, 0x01, 0x9a, 0x87, 0xc1, 0x7b, 0xf7, 0xdc, 0x06, + 0xf7, 0x18, 0x15, 0xb6, 0x09, 0x77, 0xef, 0x56, 0xca, 0x21, 0xe6, 0xe5, 0xf6, 0x97, 0x8a, 0x30, + 0xb7, 0xda, 0x24, 0xf7, 0xdf, 0xa1, 0xd7, 0x6c, 0xbf, 0x1e, 0x20, 0x47, 0x93, 0x3c, 0x1d, 0xd5, + 0xcb, 0xa7, 0xf7, 0x78, 0x6c, 0xc1, 0x30, 0xb7, 0xe0, 0x93, 0x3e, 0xb4, 0xaf, 0x66, 0xb5, 0x9e, + 0x3f, 0x20, 0x0b, 0xdc, 0x12, 0x50, 0xb8, 0x00, 0xaa, 0x0b, 0x53, 0x94, 0x62, 0x49, 0x7c, 0xee, + 0x15, 0x18, 0xd3, 0x31, 0x8f, 0xe4, 0x6f, 0xf7, 0xff, 0x15, 0x61, 0x8a, 0xf6, 0xe0, 0x91, 0x4e, + 0xc4, 0xed, 0xf4, 0x44, 0x1c, 0xb7, 0xcf, 0x55, 0xef, 0xd9, 0x78, 0x33, 0x39, 0x1b, 0x57, 0xf3, + 0x66, 0xe3, 0xa4, 0xe7, 0xe0, 0x3b, 0x2d, 0x98, 0x59, 0x6d, 0xfa, 0xf5, 0xdd, 0x84, 0x5f, 0xd4, + 0x4b, 0x30, 0x4a, 0x8f, 0xe3, 0xd0, 0x70, 0xd9, 0x37, 0x82, 0x38, 0x08, 0x10, 0xd6, 0xf1, 0xb4, + 0x6a, 0xb7, 0x6f, 0x57, 0xca, 0x59, 0xb1, 0x1f, 0x04, 0x08, 0xeb, 0x78, 0xf6, 0x6f, 0x58, 0x70, + 0xee, 0xda, 0xf2, 0x4a, 0xbc, 0x14, 0x53, 0xe1, 0x27, 0x2e, 0xc1, 0x50, 0xbb, 0xa1, 0x75, 0x25, + 0x96, 0x27, 0x97, 0x59, 0x2f, 0x04, 0xf4, 0xdd, 0x12, 0x5a, 0xe5, 0xa7, 0x2c, 0x98, 0xb9, 0xe6, + 0x46, 0xf4, 0x76, 0x4d, 0x06, 0x42, 0xa0, 0xd7, 0x6b, 0xe8, 0x46, 0x7e, 0xb0, 0x9f, 0x0c, 0x84, + 0x80, 0x15, 0x04, 0x6b, 0x58, 0xbc, 0xe5, 0x3d, 0x97, 0xd9, 0x8e, 0x17, 0x4c, 0xcd, 0x1a, 0x16, + 0xe5, 0x58, 0x61, 0xd0, 0x0f, 0x6b, 0xb8, 0x01, 0x13, 0x4a, 0xee, 0x8b, 0x13, 0x56, 0x7d, 0x58, + 0x59, 0x02, 0x70, 0x8c, 0x43, 0xdf, 0x67, 0xf3, 0xd7, 0x9a, 0x9d, 0x30, 0x22, 0xc1, 0x56, 0x98, + 0x73, 0x3a, 0xbe, 0x00, 0x25, 0x22, 0x55, 0x00, 0xa2, 0xd7, 0x8a, 0x63, 0x54, 0xba, 0x01, 0x1e, + 0x8f, 0x41, 0xe1, 0xf5, 0xe1, 0x65, 0x79, 0x34, 0x37, 0xb9, 0x55, 0x40, 0x44, 0x6f, 0x4b, 0x0f, + 0x50, 0xc1, 0x3c, 0xdd, 0x57, 0x52, 0x50, 0x9c, 0x51, 0xc3, 0xfe, 0x31, 0x0b, 0x4e, 0xab, 0x0f, + 0x7e, 0xd7, 0x7d, 0xa6, 0xfd, 0xb3, 0x05, 0x18, 0xbf, 0xbe, 0xb1, 0x51, 0xbd, 0x46, 0x22, 0x71, + 0x6d, 0xf7, 0x56, 0xec, 0x63, 0x4d, 0x3f, 0xd9, 0xed, 0x31, 0xd7, 0x89, 0xdc, 0xe6, 0x02, 0x8f, + 0x73, 0xb4, 0x50, 0xf1, 0xa2, 0x5b, 0x41, 0x2d, 0x0a, 0x5c, 0x6f, 0x3b, 0x53, 0xa3, 0x29, 0x99, + 0x8b, 0x62, 0x1e, 0x73, 0x81, 0x5e, 0x80, 0x21, 0x16, 0x68, 0x49, 0x4e, 0xc2, 0xe3, 0xea, 0x2d, + 0xc4, 0x4a, 0x0f, 0x0f, 0xe6, 0x4b, 0xb7, 0x71, 0x85, 0xff, 0xc1, 0x02, 0x15, 0xdd, 0x86, 0xd1, + 0x9d, 0x28, 0x6a, 0x5f, 0x27, 0x4e, 0x83, 0x3e, 0xc6, 0xf9, 0x71, 0x78, 0x3e, 0xeb, 0x38, 0xa4, + 0x83, 0xc0, 0xd1, 0xe2, 0x13, 0x24, 0x2e, 0x0b, 0xb1, 0x4e, 0xc7, 0xae, 0x01, 0xc4, 0xb0, 0x63, + 0x52, 0xcd, 0xd8, 0x7f, 0x60, 0xc1, 0x30, 0x8f, 0x79, 0x11, 0xa0, 0x8f, 0xc2, 0x00, 0xb9, 0x4f, + 0xea, 0x82, 0xe3, 0xcd, 0xec, 0x70, 0xcc, 0x69, 0x71, 0x11, 0x33, 0xfd, 0x8f, 0x59, 0x2d, 0x74, + 0x1d, 0x86, 0x69, 0x6f, 0xaf, 0xa9, 0x00, 0x20, 0x4f, 0xe6, 0x7d, 0xb1, 0x9a, 0x76, 0xce, 0x9c, + 0x89, 0x22, 0x2c, 0xab, 0x33, 0x7d, 0x78, 0xbd, 0x5d, 0xa3, 0x27, 0x76, 0xd4, 0x8d, 0xb1, 0xd8, + 0x58, 0xae, 0x72, 0x24, 0x41, 0x8d, 0xeb, 0xc3, 0x65, 0x21, 0x8e, 0x89, 0xd8, 0x1b, 0x50, 0xa2, + 0x93, 0xba, 0xd8, 0x74, 0x9d, 0xee, 0x2a, 0xfe, 0x67, 0xa0, 0x24, 0x15, 0xf8, 0xa1, 0xf0, 0x75, + 0x67, 0x54, 0xa5, 0x7e, 0x3f, 0xc4, 0x31, 0xdc, 0xde, 0x82, 0x53, 0xcc, 0x1c, 0xd3, 0x89, 0x76, + 0x8c, 0x3d, 0xd6, 0x7b, 0x31, 0x3f, 0x2b, 0x1e, 0x90, 0x7c, 0x66, 0x66, 0x35, 0x77, 0xd2, 0x31, + 0x49, 0x31, 0x7e, 0x4c, 0xda, 0x5f, 0x1b, 0x80, 0xc7, 0x2b, 0xb5, 0xfc, 0x70, 0x28, 0x2f, 0xc3, + 0x18, 0xe7, 0x4b, 0xe9, 0xd2, 0x76, 0x9a, 0xa2, 0x5d, 0x25, 0x5b, 0xde, 0xd0, 0x60, 0xd8, 0xc0, + 0x44, 0xe7, 0xa0, 0xe8, 0xbe, 0xe5, 0x25, 0x9d, 0xad, 0x2a, 0x6f, 0xac, 0x63, 0x5a, 0x4e, 0xc1, + 0x94, 0xc5, 0xe5, 0x77, 0x87, 0x02, 0x2b, 0x36, 0xf7, 0x35, 0x98, 0x70, 0xc3, 0x7a, 0xe8, 0x56, + 0x3c, 0x7a, 0xce, 0x68, 0x27, 0x95, 0x12, 0x6e, 0xd0, 0x4e, 0x2b, 0x28, 0x4e, 0x60, 0x6b, 0x17, + 0xd9, 0x60, 0xdf, 0x6c, 0x72, 0x4f, 0xe7, 0x6f, 0xfa, 0x02, 0x68, 0xb3, 0xaf, 0x0b, 0x99, 0x92, + 0x40, 0xbc, 0x00, 0xf8, 0x07, 0x87, 0x58, 0xc2, 0xe8, 0xcb, 0xb1, 0xbe, 0xe3, 0xb4, 0x17, 0x3b, + 0xd1, 0x4e, 0xd9, 0x0d, 0xeb, 0xfe, 0x1e, 0x09, 0xf6, 0xd9, 0xa3, 0x7f, 0x24, 0x7e, 0x39, 0x2a, + 0xc0, 0xf2, 0xf5, 0xc5, 0x2a, 0xc5, 0xc4, 0xe9, 0x3a, 0x68, 0x11, 0x26, 0x65, 0x61, 0x8d, 0x84, + 0xec, 0x0a, 0x1b, 0x65, 0x64, 0x94, 0xfb, 0x93, 0x28, 0x56, 0x44, 0x92, 0xf8, 0x26, 0x27, 0x0d, + 0xc7, 0xc1, 0x49, 0x7f, 0x04, 0xc6, 0x5d, 0xcf, 0x8d, 0x5c, 0x27, 0xf2, 0xb9, 0x86, 0x8b, 0xbf, + 0xef, 0x99, 0xe8, 0xbe, 0xa2, 0x03, 0xb0, 0x89, 0x67, 0xff, 0x97, 0x01, 0x98, 0x66, 0xd3, 0xf6, + 0xde, 0x0a, 0xfb, 0x66, 0x5a, 0x61, 0xb7, 0xd3, 0x2b, 0xec, 0x38, 0x9e, 0x08, 0x0f, 0xbd, 0xcc, + 0x3e, 0x07, 0x25, 0xe5, 0xf1, 0x25, 0x5d, 0x3e, 0xad, 0x1c, 0x97, 0xcf, 0xde, 0xdc, 0x87, 0x34, + 0x9a, 0x2b, 0x66, 0x1a, 0xcd, 0xfd, 0x75, 0x0b, 0x62, 0x95, 0x0d, 0xba, 0x0e, 0xa5, 0xb6, 0xcf, + 0x6c, 0x41, 0x03, 0x69, 0x60, 0xfd, 0x78, 0xe6, 0x45, 0xc5, 0x2f, 0x45, 0xfe, 0xf1, 0x55, 0x59, + 0x03, 0xc7, 0x95, 0xd1, 0x12, 0x0c, 0xb7, 0x03, 0x52, 0x8b, 0x58, 0x54, 0x94, 0x9e, 0x74, 0xf8, + 0x1a, 0xe1, 0xf8, 0x58, 0x56, 0xb4, 0x7f, 0xce, 0x02, 0xe0, 0x76, 0x69, 0x8e, 0xb7, 0x4d, 0x4e, + 0x40, 0x6a, 0x5d, 0x86, 0x81, 0xb0, 0x4d, 0xea, 0xdd, 0xac, 0x74, 0xe3, 0xfe, 0xd4, 0xda, 0xa4, + 0x1e, 0x0f, 0x38, 0xfd, 0x87, 0x59, 0x6d, 0xfb, 0xbb, 0x01, 0x26, 0x62, 0xb4, 0x4a, 0x44, 0x5a, + 0xe8, 0x39, 0x23, 0x4a, 0xc2, 0xd9, 0x44, 0x94, 0x84, 0x12, 0xc3, 0xd6, 0x04, 0xa4, 0x9f, 0x83, + 0x62, 0xcb, 0xb9, 0x2f, 0x24, 0x60, 0xcf, 0x74, 0xef, 0x06, 0xa5, 0xbf, 0xb0, 0xe6, 0xdc, 0xe7, + 0x8f, 0xc4, 0x67, 0xe4, 0x02, 0x59, 0x73, 0xee, 0x1f, 0x72, 0x5b, 0x5c, 0x76, 0x48, 0xdd, 0x74, + 0xc3, 0xe8, 0x0b, 0xff, 0x39, 0xfe, 0xcf, 0x96, 0x1d, 0x6d, 0x84, 0xb5, 0xe5, 0x7a, 0xc2, 0xe4, + 0xaa, 0xaf, 0xb6, 0x5c, 0x2f, 0xd9, 0x96, 0xeb, 0xf5, 0xd1, 0x96, 0xeb, 0xa1, 0xb7, 0x61, 0x58, + 0x58, 0x44, 0x8a, 0xa8, 0x44, 0x57, 0xfa, 0x68, 0x4f, 0x18, 0x54, 0xf2, 0x36, 0xaf, 0xc8, 0x47, + 0xb0, 0x28, 0xed, 0xd9, 0xae, 0x6c, 0x10, 0xfd, 0x15, 0x0b, 0x26, 0xc4, 0x6f, 0x4c, 0xde, 0xea, + 0x90, 0x30, 0x12, 0xbc, 0xe7, 0x87, 0xfb, 0xef, 0x83, 0xa8, 0xc8, 0xbb, 0xf2, 0x61, 0x79, 0xcc, + 0x9a, 0xc0, 0x9e, 0x3d, 0x4a, 0xf4, 0x02, 0xfd, 0x7d, 0x0b, 0x4e, 0xb5, 0x9c, 0xfb, 0xbc, 0x45, + 0x5e, 0x86, 0x9d, 0xc8, 0xf5, 0x85, 0x65, 0xc1, 0x47, 0xfb, 0x9b, 0xfe, 0x54, 0x75, 0xde, 0x49, + 0xa9, 0xfe, 0x3c, 0x95, 0x85, 0xd2, 0xb3, 0xab, 0x99, 0xfd, 0x9a, 0xdb, 0x82, 0x11, 0xb9, 0xde, + 0x32, 0x44, 0x0d, 0x65, 0x9d, 0xb1, 0x3e, 0xb2, 0x41, 0xaa, 0x1e, 0x7d, 0x80, 0xb6, 0x23, 0xd6, + 0xda, 0x23, 0x6d, 0xe7, 0x73, 0x30, 0xa6, 0xaf, 0xb1, 0x47, 0xda, 0xd6, 0x5b, 0x30, 0x93, 0xb1, + 0x96, 0x1e, 0x69, 0x93, 0xf7, 0xe0, 0x6c, 0xee, 0xfa, 0x78, 0x94, 0x0d, 0xdb, 0x3f, 0x6b, 0xe9, + 0xe7, 0xe0, 0x09, 0xa8, 0x0e, 0x96, 0x4d, 0xd5, 0xc1, 0xf9, 0xee, 0x3b, 0x27, 0x47, 0x7f, 0xf0, + 0xa6, 0xde, 0x69, 0x7a, 0xaa, 0xa3, 0xd7, 0x61, 0xa8, 0x49, 0x4b, 0xa4, 0x5d, 0xad, 0xdd, 0x7b, + 0x47, 0xc6, 0xbc, 0x14, 0x2b, 0x0f, 0xb1, 0xa0, 0x60, 0xff, 0xa2, 0x05, 0x03, 0x27, 0x30, 0x12, + 0xd8, 0x1c, 0x89, 0xe7, 0x72, 0x49, 0x8b, 0x80, 0xc9, 0x0b, 0xd8, 0xb9, 0xb7, 0x72, 0x3f, 0x22, + 0x5e, 0xc8, 0x9e, 0x8a, 0x99, 0x03, 0xf3, 0x93, 0x16, 0xcc, 0xdc, 0xf4, 0x9d, 0xc6, 0x92, 0xd3, + 0x74, 0xbc, 0x3a, 0x09, 0x2a, 0xde, 0xf6, 0x91, 0x8c, 0xc2, 0x0b, 0x3d, 0x8d, 0xc2, 0x97, 0xa5, + 0x4d, 0xd5, 0x40, 0xfe, 0xfc, 0x51, 0x46, 0x32, 0x19, 0x37, 0xc6, 0xb0, 0xfe, 0xdd, 0x01, 0xa4, + 0xf7, 0x52, 0xb8, 0xe8, 0x60, 0x18, 0x76, 0x79, 0x7f, 0xc5, 0x24, 0x3e, 0x95, 0xcd, 0xe0, 0xa5, + 0x3e, 0x4f, 0x73, 0x3e, 0xe1, 0x05, 0x58, 0x12, 0xb2, 0x5f, 0x86, 0x4c, 0x3f, 0xff, 0xde, 0xc2, + 0x07, 0xfb, 0x93, 0x30, 0xcd, 0x6a, 0x1e, 0xf1, 0x61, 0x6c, 0x27, 0x64, 0x9b, 0x19, 0x11, 0x00, + 0xed, 0x2f, 0x5a, 0x30, 0xb9, 0x9e, 0x08, 0x8c, 0x76, 0x89, 0x69, 0x43, 0x33, 0x44, 0xea, 0x35, + 0x56, 0x8a, 0x05, 0xf4, 0xd8, 0x25, 0x59, 0x7f, 0x61, 0x41, 0x1c, 0x7a, 0xe3, 0x04, 0xd8, 0xb7, + 0x65, 0x83, 0x7d, 0xcb, 0x94, 0xb0, 0xa8, 0xee, 0xe4, 0x71, 0x6f, 0xe8, 0x86, 0x0a, 0x4a, 0xd5, + 0x45, 0xb8, 0x12, 0x93, 0xe1, 0x4b, 0x71, 0xc2, 0x8c, 0x5c, 0x25, 0xc3, 0x54, 0xd9, 0xbf, 0x5d, + 0x00, 0xa4, 0x70, 0xfb, 0x0e, 0x9a, 0x95, 0xae, 0x71, 0x3c, 0x41, 0xb3, 0xf6, 0x00, 0x31, 0x7d, + 0x7e, 0xe0, 0x78, 0x21, 0x27, 0xeb, 0x0a, 0xd9, 0xdd, 0xd1, 0x8c, 0x05, 0xe6, 0x44, 0x93, 0xe8, + 0x66, 0x8a, 0x1a, 0xce, 0x68, 0x41, 0xb3, 0xd3, 0x18, 0xec, 0xd7, 0x4e, 0x63, 0xa8, 0x87, 0x1b, + 0xde, 0xcf, 0x58, 0x30, 0xae, 0x86, 0xe9, 0x5d, 0x62, 0x24, 0xaf, 0xfa, 0x93, 0x73, 0x80, 0x56, + 0xb5, 0x2e, 0xb3, 0x8b, 0xe5, 0x5b, 0x99, 0x3b, 0xa5, 0xd3, 0x74, 0xdf, 0x26, 0x2a, 0x64, 0xe1, + 0xbc, 0x70, 0x8f, 0x14, 0xa5, 0x87, 0x07, 0xf3, 0xe3, 0xea, 0x1f, 0x0f, 0x91, 0x1c, 0x57, 0xa1, + 0x47, 0xf2, 0x64, 0x62, 0x29, 0xa2, 0x97, 0x60, 0xb0, 0xbd, 0xe3, 0x84, 0x24, 0xe1, 0x4c, 0x34, + 0x58, 0xa5, 0x85, 0x87, 0x07, 0xf3, 0x13, 0xaa, 0x02, 0x2b, 0xc1, 0x1c, 0xbb, 0xff, 0x50, 0x64, + 0xe9, 0xc5, 0xd9, 0x33, 0x14, 0xd9, 0x9f, 0x58, 0x30, 0xb0, 0xee, 0x37, 0x4e, 0xe2, 0x08, 0x78, + 0xcd, 0x38, 0x02, 0x9e, 0xc8, 0x8b, 0x5e, 0x9f, 0xbb, 0xfb, 0x57, 0x13, 0xbb, 0xff, 0x7c, 0x2e, + 0x85, 0xee, 0x1b, 0xbf, 0x05, 0xa3, 0x2c, 0x26, 0xbe, 0x70, 0x9c, 0x7a, 0xc1, 0xd8, 0xf0, 0xf3, + 0x89, 0x0d, 0x3f, 0xa9, 0xa1, 0x6a, 0x3b, 0xfd, 0x69, 0x18, 0x16, 0x9e, 0x38, 0x49, 0xaf, 0x54, + 0x81, 0x8b, 0x25, 0xdc, 0xfe, 0xf1, 0x22, 0x18, 0x31, 0xf8, 0xd1, 0x2f, 0x5b, 0xb0, 0x10, 0x70, + 0x0b, 0xdd, 0x46, 0xb9, 0x13, 0xb8, 0xde, 0x76, 0xad, 0xbe, 0x43, 0x1a, 0x9d, 0xa6, 0xeb, 0x6d, + 0x57, 0xb6, 0x3d, 0x5f, 0x15, 0xaf, 0xdc, 0x27, 0xf5, 0x0e, 0x53, 0x82, 0xf5, 0x08, 0xf8, 0xaf, + 0x2c, 0xdd, 0x9f, 0x7f, 0x70, 0x30, 0xbf, 0x80, 0x8f, 0x44, 0x1b, 0x1f, 0xb1, 0x2f, 0xe8, 0x37, + 0x2c, 0xb8, 0xc2, 0x43, 0xd3, 0xf7, 0xdf, 0xff, 0x2e, 0xaf, 0xe5, 0xaa, 0x24, 0x15, 0x13, 0xd9, + 0x20, 0x41, 0x6b, 0xe9, 0x23, 0x62, 0x40, 0xaf, 0x54, 0x8f, 0xd6, 0x16, 0x3e, 0x6a, 0xe7, 0xec, + 0x7f, 0x56, 0x84, 0x71, 0x11, 0xb2, 0x4a, 0xdc, 0x01, 0x2f, 0x19, 0x4b, 0xe2, 0xc9, 0xc4, 0x92, + 0x98, 0x36, 0x90, 0x8f, 0xe7, 0xf8, 0x0f, 0x61, 0x9a, 0x1e, 0xce, 0xd7, 0x89, 0x13, 0x44, 0x9b, + 0xc4, 0xe1, 0xe6, 0x57, 0xc5, 0x23, 0x9f, 0xfe, 0x4a, 0x3c, 0x77, 0x33, 0x49, 0x0c, 0xa7, 0xe9, + 0x7f, 0x33, 0xdd, 0x39, 0x1e, 0x4c, 0xa5, 0xa2, 0x8e, 0x7d, 0x0a, 0x4a, 0xca, 0x8d, 0x44, 0x1c, + 0x3a, 0xdd, 0x83, 0xf7, 0x25, 0x29, 0x70, 0x11, 0x5a, 0xec, 0xc2, 0x14, 0x93, 0xb3, 0xff, 0x41, + 0xc1, 0x68, 0x90, 0x4f, 0xe2, 0x3a, 0x8c, 0x38, 0x61, 0xe8, 0x6e, 0x7b, 0xa4, 0x21, 0x76, 0xec, + 0xfb, 0xf3, 0x76, 0xac, 0xd1, 0x0c, 0x73, 0xe5, 0x59, 0x14, 0x35, 0xb1, 0xa2, 0x81, 0xae, 0x73, + 0x23, 0xb7, 0x3d, 0xf9, 0xde, 0xeb, 0x8f, 0x1a, 0x48, 0x33, 0xb8, 0x3d, 0x82, 0x45, 0x7d, 0xf4, + 0x69, 0x6e, 0x85, 0x78, 0xc3, 0xf3, 0xef, 0x79, 0xd7, 0x7c, 0x5f, 0x86, 0x85, 0xe8, 0x8f, 0xe0, + 0xb4, 0xb4, 0x3d, 0x54, 0xd5, 0xb1, 0x49, 0xad, 0xbf, 0x30, 0x9e, 0x9f, 0x87, 0x19, 0x4a, 0xda, + 0xf4, 0xda, 0x0e, 0x11, 0x81, 0x49, 0x11, 0x0f, 0x4d, 0x96, 0x89, 0xb1, 0xcb, 0x7c, 0xca, 0x99, + 0xb5, 0x63, 0x39, 0xf2, 0x0d, 0x93, 0x04, 0x4e, 0xd2, 0xb4, 0xff, 0xb6, 0x05, 0xcc, 0x83, 0xf5, + 0x04, 0xf8, 0x91, 0x8f, 0x99, 0xfc, 0xc8, 0x6c, 0xde, 0x20, 0xe7, 0xb0, 0x22, 0x2f, 0xf2, 0x95, + 0x55, 0x0d, 0xfc, 0xfb, 0xfb, 0xc2, 0x74, 0xa4, 0xf7, 0xfb, 0xc3, 0xfe, 0xdf, 0x16, 0x3f, 0xc4, + 0x94, 0x93, 0x07, 0xfa, 0x76, 0x18, 0xa9, 0x3b, 0x6d, 0xa7, 0xce, 0x13, 0xc6, 0xe4, 0x4a, 0xf4, + 0x8c, 0x4a, 0x0b, 0xcb, 0xa2, 0x06, 0x97, 0x50, 0xc9, 0xb8, 0x7a, 0x23, 0xb2, 0xb8, 0xa7, 0x54, + 0x4a, 0x35, 0x39, 0xb7, 0x0b, 0xe3, 0x06, 0xb1, 0x47, 0x2a, 0xce, 0xf8, 0x76, 0x7e, 0xc5, 0xaa, + 0x38, 0x90, 0x2d, 0x98, 0xf6, 0xb4, 0xff, 0xf4, 0x42, 0x91, 0x8f, 0xcb, 0xf7, 0xf7, 0xba, 0x44, + 0xd9, 0xed, 0xa3, 0x39, 0xc7, 0x26, 0xc8, 0xe0, 0x34, 0x65, 0xfb, 0x27, 0x2c, 0x78, 0x4c, 0x47, + 0xd4, 0xfc, 0x6f, 0x7a, 0xe9, 0x08, 0xca, 0x30, 0xe2, 0xb7, 0x49, 0xe0, 0x44, 0x7e, 0x20, 0x6e, + 0x8d, 0xcb, 0x72, 0xd0, 0x6f, 0x89, 0xf2, 0x43, 0x11, 0x6e, 0x5d, 0x52, 0x97, 0xe5, 0x58, 0xd5, + 0xa4, 0xaf, 0x4f, 0x36, 0x18, 0xa1, 0xf0, 0xb4, 0x62, 0x67, 0x00, 0x53, 0x97, 0x87, 0x58, 0x40, + 0xec, 0xaf, 0x59, 0x7c, 0x61, 0xe9, 0x5d, 0x47, 0x6f, 0xc1, 0x54, 0xcb, 0x89, 0xea, 0x3b, 0x2b, + 0xf7, 0xdb, 0x01, 0xd7, 0xb8, 0xc8, 0x71, 0x7a, 0xa6, 0xd7, 0x38, 0x69, 0x1f, 0x19, 0x1b, 0x56, + 0xae, 0x25, 0x88, 0xe1, 0x14, 0x79, 0xb4, 0x09, 0xa3, 0xac, 0x8c, 0x39, 0x11, 0x86, 0xdd, 0x58, + 0x83, 0xbc, 0xd6, 0x94, 0xc5, 0xc1, 0x5a, 0x4c, 0x07, 0xeb, 0x44, 0xed, 0x9f, 0x2e, 0xf2, 0xdd, + 0xce, 0x58, 0xf9, 0xa7, 0x61, 0xb8, 0xed, 0x37, 0x96, 0x2b, 0x65, 0x2c, 0x66, 0x41, 0x5d, 0x23, + 0x55, 0x5e, 0x8c, 0x25, 0x1c, 0x5d, 0x86, 0x11, 0xf1, 0x53, 0x6a, 0xc8, 0xd8, 0xd9, 0x2c, 0xf0, + 0x42, 0xac, 0xa0, 0xe8, 0x79, 0x80, 0x76, 0xe0, 0xef, 0xb9, 0x0d, 0x16, 0xdc, 0xa2, 0x68, 0x1a, + 0x0b, 0x55, 0x15, 0x04, 0x6b, 0x58, 0xe8, 0x55, 0x18, 0xef, 0x78, 0x21, 0x67, 0x47, 0xb4, 0x50, + 0xb6, 0xca, 0x8c, 0xe5, 0xb6, 0x0e, 0xc4, 0x26, 0x2e, 0x5a, 0x84, 0xa1, 0xc8, 0x61, 0xc6, 0x2f, + 0x83, 0xf9, 0xc6, 0xb7, 0x1b, 0x14, 0x43, 0xcf, 0x4d, 0x42, 0x2b, 0x60, 0x51, 0x11, 0x7d, 0x4a, + 0xfa, 0xf3, 0xf2, 0x83, 0x5d, 0x58, 0xbd, 0xf7, 0x77, 0x09, 0x68, 0xde, 0xbc, 0xc2, 0x9a, 0xde, + 0xa0, 0x85, 0x5e, 0x01, 0x20, 0xf7, 0x23, 0x12, 0x78, 0x4e, 0x53, 0xd9, 0x96, 0x29, 0xbe, 0xa0, + 0xec, 0xaf, 0xfb, 0xd1, 0xed, 0x90, 0xac, 0x28, 0x0c, 0xac, 0x61, 0xdb, 0xbf, 0x51, 0x02, 0x88, + 0xf9, 0x76, 0xf4, 0x76, 0xea, 0xe0, 0x7a, 0xb6, 0x3b, 0xa7, 0x7f, 0x7c, 0xa7, 0x16, 0xfa, 0x1e, + 0x0b, 0x46, 0x9d, 0x66, 0xd3, 0xaf, 0x3b, 0x3c, 0xd8, 0x70, 0xa1, 0xfb, 0xc1, 0x29, 0xda, 0x5f, + 0x8c, 0x6b, 0xf0, 0x2e, 0xbc, 0x20, 0x57, 0xa8, 0x06, 0xe9, 0xd9, 0x0b, 0xbd, 0x61, 0xf4, 0x21, + 0xf9, 0x54, 0x2c, 0x1a, 0x43, 0xa9, 0x9e, 0x8a, 0x25, 0x76, 0x47, 0xe8, 0xaf, 0xc4, 0xdb, 0xc6, + 0x2b, 0x71, 0x20, 0xdf, 0x61, 0xd1, 0x60, 0x5f, 0x7b, 0x3d, 0x10, 0x51, 0x55, 0x0f, 0x5e, 0x30, + 0x98, 0xef, 0x1d, 0xa8, 0xbd, 0x93, 0x7a, 0x04, 0x2e, 0xf8, 0x1c, 0x4c, 0x36, 0x4c, 0x26, 0x40, + 0xac, 0xc4, 0xa7, 0xf2, 0xe8, 0x26, 0x78, 0x86, 0xf8, 0xda, 0x4f, 0x00, 0x70, 0x92, 0x30, 0xaa, + 0xf2, 0x58, 0x16, 0x15, 0x6f, 0xcb, 0x17, 0x9e, 0x17, 0x76, 0xee, 0x5c, 0xee, 0x87, 0x11, 0x69, + 0x51, 0xcc, 0xf8, 0x76, 0x5f, 0x17, 0x75, 0xb1, 0xa2, 0x82, 0x5e, 0x87, 0x21, 0xe6, 0x1e, 0x16, + 0xce, 0x8e, 0xe4, 0x4b, 0x9c, 0xcd, 0xe0, 0x6c, 0xf1, 0x86, 0x64, 0x7f, 0x43, 0x2c, 0x28, 0xa0, + 0xeb, 0xd2, 0xf9, 0x32, 0xac, 0x78, 0xb7, 0x43, 0xc2, 0x9c, 0x2f, 0x4b, 0x4b, 0xef, 0x8f, 0xfd, + 0x2a, 0x79, 0x79, 0x66, 0x06, 0x33, 0xa3, 0x26, 0xe5, 0xa2, 0xc4, 0x7f, 0x99, 0x18, 0x6d, 0x16, + 0xf2, 0xbb, 0x67, 0x26, 0x4f, 0x8b, 0x87, 0xf3, 0x8e, 0x49, 0x02, 0x27, 0x69, 0x52, 0x8e, 0x94, + 0xef, 0x7a, 0xe1, 0xbb, 0xd1, 0xeb, 0xec, 0xe0, 0x0f, 0x71, 0x76, 0x1b, 0xf1, 0x12, 0x2c, 0xea, + 0x9f, 0x28, 0x7b, 0x30, 0xe7, 0xc1, 0x54, 0x72, 0x8b, 0x3e, 0x52, 0x76, 0xe4, 0x0f, 0x06, 0x60, + 0xc2, 0x5c, 0x52, 0xe8, 0x0a, 0x94, 0x04, 0x11, 0x95, 0xcc, 0x40, 0xed, 0x92, 0x35, 0x09, 0xc0, + 0x31, 0x0e, 0xcb, 0x61, 0xc1, 0xaa, 0x6b, 0xc6, 0xba, 0x71, 0x0e, 0x0b, 0x05, 0xc1, 0x1a, 0x16, + 0x7d, 0x58, 0x6d, 0xfa, 0x7e, 0xa4, 0x2e, 0x24, 0xb5, 0xee, 0x96, 0x58, 0x29, 0x16, 0x50, 0x7a, + 0x11, 0xed, 0x92, 0xc0, 0x23, 0x4d, 0x33, 0xec, 0xb1, 0xba, 0x88, 0x6e, 0xe8, 0x40, 0x6c, 0xe2, + 0xd2, 0xeb, 0xd4, 0x0f, 0xd9, 0x42, 0x16, 0xcf, 0xb7, 0xd8, 0xf8, 0xb9, 0xc6, 0xfd, 0xbf, 0x25, + 0x1c, 0x7d, 0x12, 0x1e, 0x53, 0xa1, 0x9d, 0x30, 0xd7, 0x66, 0xc8, 0x16, 0x87, 0x0c, 0x69, 0xcb, + 0x63, 0xcb, 0xd9, 0x68, 0x38, 0xaf, 0x3e, 0x7a, 0x0d, 0x26, 0x04, 0x8b, 0x2f, 0x29, 0x0e, 0x9b, + 0x06, 0x36, 0x37, 0x0c, 0x28, 0x4e, 0x60, 0xcb, 0xc0, 0xcd, 0x8c, 0xcb, 0x96, 0x14, 0x46, 0xd2, + 0x81, 0x9b, 0x75, 0x38, 0x4e, 0xd5, 0x40, 0x8b, 0x30, 0xc9, 0x79, 0x30, 0xd7, 0xdb, 0xe6, 0x73, + 0x22, 0x5c, 0xab, 0xd4, 0x96, 0xba, 0x65, 0x82, 0x71, 0x12, 0x1f, 0xbd, 0x0c, 0x63, 0x4e, 0x50, + 0xdf, 0x71, 0x23, 0x52, 0x8f, 0x3a, 0x01, 0xf7, 0xb9, 0xd2, 0x2c, 0x94, 0x16, 0x35, 0x18, 0x36, + 0x30, 0xed, 0xb7, 0x61, 0x26, 0x23, 0x30, 0x04, 0x5d, 0x38, 0x4e, 0xdb, 0x95, 0xdf, 0x94, 0x30, + 0x63, 0x5e, 0xac, 0x56, 0xe4, 0xd7, 0x68, 0x58, 0x74, 0x75, 0xb2, 0x00, 0x12, 0x5a, 0x1e, 0x44, + 0xb5, 0x3a, 0x57, 0x25, 0x00, 0xc7, 0x38, 0xf6, 0xff, 0x28, 0xc0, 0x64, 0x86, 0x6e, 0x85, 0xe5, + 0xe2, 0x4b, 0x3c, 0x52, 0xe2, 0xd4, 0x7b, 0x66, 0x1c, 0xf0, 0xc2, 0x11, 0xe2, 0x80, 0x17, 0x7b, + 0xc5, 0x01, 0x1f, 0x78, 0x27, 0x71, 0xc0, 0xcd, 0x11, 0x1b, 0xec, 0x6b, 0xc4, 0x32, 0x62, 0x87, + 0x0f, 0x1d, 0x31, 0x76, 0xb8, 0x31, 0xe8, 0xc3, 0x7d, 0x0c, 0xfa, 0x0f, 0x17, 0x60, 0x2a, 0x69, + 0x49, 0x79, 0x02, 0x72, 0xdb, 0xd7, 0x0d, 0xb9, 0xed, 0xe5, 0x7e, 0x5c, 0x61, 0x73, 0x65, 0xb8, + 0x38, 0x21, 0xc3, 0xfd, 0x60, 0x5f, 0xd4, 0xba, 0xcb, 0x73, 0xff, 0x66, 0x01, 0x4e, 0x67, 0xfa, + 0xe2, 0x9e, 0xc0, 0xd8, 0xdc, 0x32, 0xc6, 0xe6, 0xb9, 0xbe, 0xdd, 0x84, 0x73, 0x07, 0xe8, 0x6e, + 0x62, 0x80, 0xae, 0xf4, 0x4f, 0xb2, 0xfb, 0x28, 0x7d, 0xb5, 0x08, 0xe7, 0x33, 0xeb, 0xc5, 0x62, + 0xcf, 0x55, 0x43, 0xec, 0xf9, 0x7c, 0x42, 0xec, 0x69, 0x77, 0xaf, 0x7d, 0x3c, 0x72, 0x50, 0xe1, + 0x2e, 0xcb, 0xa2, 0x1c, 0x3c, 0xa4, 0x0c, 0xd4, 0x70, 0x97, 0x55, 0x84, 0xb0, 0x49, 0xf7, 0x9b, + 0x49, 0xf6, 0xf9, 0x6f, 0x2c, 0x38, 0x9b, 0x39, 0x37, 0x27, 0x20, 0xeb, 0x5a, 0x37, 0x65, 0x5d, + 0x4f, 0xf7, 0xbd, 0x5a, 0x73, 0x84, 0x5f, 0xbf, 0x36, 0x90, 0xf3, 0x2d, 0xec, 0x25, 0x7f, 0x0b, + 0x46, 0x9d, 0x7a, 0x9d, 0x84, 0xe1, 0x9a, 0xdf, 0x50, 0xa1, 0x8e, 0x9f, 0x63, 0xef, 0xac, 0xb8, + 0xf8, 0xf0, 0x60, 0x7e, 0x2e, 0x49, 0x22, 0x06, 0x63, 0x9d, 0x02, 0xfa, 0x34, 0x8c, 0x84, 0xe2, + 0xde, 0x14, 0x73, 0xff, 0x42, 0x9f, 0x83, 0xe3, 0x6c, 0x92, 0xa6, 0x19, 0x8b, 0x49, 0x49, 0x2a, + 0x14, 0x49, 0x33, 0x6e, 0x4b, 0xe1, 0x58, 0xe3, 0xb6, 0x3c, 0x0f, 0xb0, 0xa7, 0x1e, 0x03, 0x49, + 0xf9, 0x83, 0xf6, 0x4c, 0xd0, 0xb0, 0xd0, 0xc7, 0x61, 0x2a, 0xe4, 0xc1, 0x0a, 0x97, 0x9b, 0x4e, + 0xc8, 0x9c, 0x65, 0xc4, 0x2a, 0x64, 0xf1, 0x9e, 0x6a, 0x09, 0x18, 0x4e, 0x61, 0xa3, 0x55, 0xd9, + 0x2a, 0x8b, 0xac, 0xc8, 0x17, 0xe6, 0xa5, 0xb8, 0x45, 0x91, 0x09, 0xf8, 0x54, 0x72, 0xf8, 0xd9, + 0xc0, 0x6b, 0x35, 0xd1, 0xa7, 0x01, 0xe8, 0xf2, 0x11, 0x72, 0x88, 0xe1, 0xfc, 0xc3, 0x93, 0x9e, + 0x2a, 0x8d, 0x4c, 0xdb, 0x5e, 0xe6, 0xe1, 0x5a, 0x56, 0x44, 0xb0, 0x46, 0xd0, 0xfe, 0xe1, 0x01, + 0x78, 0xbc, 0xcb, 0x19, 0x89, 0x16, 0x4d, 0x3d, 0xec, 0x33, 0xc9, 0xc7, 0xf5, 0x5c, 0x66, 0x65, + 0xe3, 0xb5, 0x9d, 0x58, 0x8a, 0x85, 0x77, 0xbc, 0x14, 0x7f, 0xc0, 0xd2, 0xc4, 0x1e, 0xdc, 0xe2, + 0xf3, 0x63, 0x47, 0x3c, 0xfb, 0x8f, 0x51, 0x0e, 0xb2, 0x95, 0x21, 0x4c, 0x78, 0xbe, 0xef, 0xee, + 0xf4, 0x2d, 0x5d, 0x38, 0x59, 0x29, 0xf1, 0x6f, 0x59, 0x70, 0xae, 0x6b, 0xd0, 0x8e, 0x6f, 0x40, + 0x86, 0xc1, 0xfe, 0x82, 0x05, 0x4f, 0x66, 0xd6, 0x30, 0xcc, 0x8c, 0xae, 0x40, 0xa9, 0x4e, 0x0b, + 0x35, 0x2f, 0xcd, 0xd8, 0x7d, 0x5d, 0x02, 0x70, 0x8c, 0x63, 0x58, 0x13, 0x15, 0x7a, 0x5a, 0x13, + 0xfd, 0x8a, 0x05, 0xa9, 0x4d, 0x7f, 0x02, 0xb7, 0x4f, 0xc5, 0xbc, 0x7d, 0xde, 0xdf, 0xcf, 0x68, + 0xe6, 0x5c, 0x3c, 0x7f, 0x3c, 0x09, 0x67, 0x72, 0xbc, 0x94, 0xf6, 0x60, 0x7a, 0xbb, 0x4e, 0x4c, + 0xff, 0xd7, 0x6e, 0x71, 0x61, 0xba, 0x3a, 0xcb, 0xb2, 0x5c, 0xa5, 0xd3, 0x29, 0x14, 0x9c, 0x6e, + 0x02, 0x7d, 0xc1, 0x82, 0x53, 0xce, 0xbd, 0x70, 0x85, 0x72, 0x11, 0x6e, 0x7d, 0xa9, 0xe9, 0xd7, + 0x77, 0xe9, 0x11, 0x2d, 0x37, 0xc2, 0x8b, 0x99, 0x92, 0x9d, 0xbb, 0xb5, 0x14, 0xbe, 0xd1, 0x3c, + 0x4b, 0xde, 0x9a, 0x85, 0x85, 0x33, 0xdb, 0x42, 0x58, 0x44, 0xf4, 0xa7, 0x6f, 0x94, 0x2e, 0x1e, + 0xda, 0x59, 0xee, 0x64, 0xfc, 0x5a, 0x94, 0x10, 0xac, 0xe8, 0xa0, 0xcf, 0x42, 0x69, 0x5b, 0xfa, + 0x78, 0x66, 0x5c, 0xbb, 0xf1, 0x40, 0x76, 0xf7, 0x7c, 0xe5, 0xea, 0x59, 0x85, 0x84, 0x63, 0xa2, + 0xe8, 0x35, 0x28, 0x7a, 0x5b, 0x61, 0xb7, 0xfc, 0xa7, 0x09, 0x3b, 0x3c, 0x1e, 0x07, 0x61, 0x7d, + 0xb5, 0x86, 0x69, 0x45, 0x74, 0x1d, 0x8a, 0xc1, 0x66, 0x43, 0x88, 0x25, 0x33, 0x37, 0x29, 0x5e, + 0x2a, 0xe7, 0xf4, 0x8a, 0x51, 0xc2, 0x4b, 0x65, 0x4c, 0x49, 0xa0, 0x2a, 0x0c, 0x32, 0xd7, 0x1e, + 0x71, 0xc9, 0x65, 0xb2, 0xf3, 0x5d, 0x5c, 0xe4, 0x78, 0xb0, 0x04, 0x86, 0x80, 0x39, 0x21, 0xb4, + 0x01, 0x43, 0x75, 0x96, 0x2b, 0x53, 0x44, 0x82, 0xfb, 0x50, 0xa6, 0x00, 0xb2, 0x4b, 0x12, 0x51, + 0x21, 0x8f, 0x63, 0x18, 0x58, 0xd0, 0x62, 0x54, 0x49, 0x7b, 0x67, 0x2b, 0x14, 0xb9, 0x9d, 0xb3, + 0xa9, 0x76, 0xc9, 0x8d, 0x2b, 0xa8, 0x32, 0x0c, 0x2c, 0x68, 0xa1, 0x57, 0xa0, 0xb0, 0x55, 0x17, + 0x6e, 0x3b, 0x99, 0x92, 0x48, 0x33, 0x94, 0xc5, 0xd2, 0xd0, 0x83, 0x83, 0xf9, 0xc2, 0xea, 0x32, + 0x2e, 0x6c, 0xd5, 0xd1, 0x3a, 0x0c, 0x6f, 0x71, 0xe7, 0x77, 0x21, 0x6c, 0x7c, 0x2a, 0xdb, 0x2f, + 0x3f, 0xe5, 0x1f, 0xcf, 0x3d, 0x56, 0x04, 0x00, 0x4b, 0x22, 0x2c, 0x40, 0xbe, 0x72, 0xe2, 0x17, + 0x41, 0xd3, 0x16, 0x8e, 0x16, 0x78, 0x81, 0x33, 0x1d, 0x71, 0x28, 0x00, 0xac, 0x51, 0xa4, 0xab, + 0xda, 0x91, 0x09, 0xf6, 0x45, 0xb0, 0x99, 0xcc, 0x55, 0xad, 0xb2, 0xf0, 0x77, 0x5b, 0xd5, 0x0a, + 0x09, 0xc7, 0x44, 0xd1, 0x2e, 0x8c, 0xef, 0x85, 0xed, 0x1d, 0x22, 0xb7, 0x34, 0x8b, 0x3d, 0x93, + 0x73, 0x2f, 0xdf, 0x11, 0x88, 0x6e, 0x10, 0x75, 0x9c, 0x66, 0xea, 0x14, 0x62, 0x3a, 0xfd, 0x3b, + 0x3a, 0x31, 0x6c, 0xd2, 0xa6, 0xc3, 0xff, 0x56, 0xc7, 0xdf, 0xdc, 0x8f, 0x88, 0x88, 0x75, 0x96, + 0x39, 0xfc, 0x6f, 0x70, 0x94, 0xf4, 0xf0, 0x0b, 0x00, 0x96, 0x44, 0xd0, 0x1d, 0x31, 0x3c, 0xec, + 0xf4, 0x9c, 0xca, 0x0f, 0x48, 0xba, 0x28, 0x91, 0x72, 0x06, 0x85, 0x9d, 0x96, 0x31, 0x29, 0x76, + 0x4a, 0xb6, 0x77, 0xfc, 0xc8, 0xf7, 0x12, 0x27, 0xf4, 0x74, 0xfe, 0x29, 0x59, 0xcd, 0xc0, 0x4f, + 0x9f, 0x92, 0x59, 0x58, 0x38, 0xb3, 0x2d, 0xd4, 0x80, 0x89, 0xb6, 0x1f, 0x44, 0xf7, 0xfc, 0x40, + 0xae, 0x2f, 0xd4, 0x45, 0x58, 0x62, 0x60, 0x8a, 0x16, 0x59, 0x18, 0x41, 0x13, 0x82, 0x13, 0x34, + 0xd1, 0x27, 0x60, 0x38, 0xac, 0x3b, 0x4d, 0x52, 0xb9, 0x35, 0x3b, 0x93, 0x7f, 0xfd, 0xd4, 0x38, + 0x4a, 0xce, 0xea, 0xe2, 0xd1, 0xf4, 0x39, 0x0a, 0x96, 0xe4, 0xd0, 0x2a, 0x0c, 0xb2, 0x04, 0x68, + 0x2c, 0x30, 0x5f, 0x4e, 0x5c, 0xd5, 0x94, 0x55, 0x34, 0x3f, 0x9b, 0x58, 0x31, 0xe6, 0xd5, 0xe9, + 0x1e, 0x10, 0x6f, 0x06, 0x3f, 0x9c, 0x3d, 0x9d, 0xbf, 0x07, 0xc4, 0x53, 0xe3, 0x56, 0xad, 0xdb, + 0x1e, 0x50, 0x48, 0x38, 0x26, 0x4a, 0x4f, 0x66, 0x7a, 0x9a, 0x9e, 0xe9, 0x62, 0xce, 0x93, 0x7b, + 0x96, 0xb2, 0x93, 0x99, 0x9e, 0xa4, 0x94, 0x84, 0xfd, 0x7b, 0xc3, 0x69, 0x9e, 0x85, 0xbd, 0x32, + 0xbf, 0xcb, 0x4a, 0x29, 0x20, 0x3f, 0xdc, 0xaf, 0xd0, 0xeb, 0x18, 0x59, 0xf0, 0x2f, 0x58, 0x70, + 0xa6, 0x9d, 0xf9, 0x21, 0x82, 0x01, 0xe8, 0x4f, 0x76, 0xc6, 0x3f, 0x5d, 0x05, 0x71, 0xcc, 0x86, + 0xe3, 0x9c, 0x96, 0x92, 0xcf, 0x9c, 0xe2, 0x3b, 0x7e, 0xe6, 0xac, 0xc1, 0x08, 0x63, 0x32, 0x7b, + 0xe4, 0x8e, 0x4e, 0xbe, 0xf6, 0x18, 0x2b, 0xb1, 0x2c, 0x2a, 0x62, 0x45, 0x02, 0xfd, 0xa0, 0x05, + 0xe7, 0x92, 0x5d, 0xc7, 0x84, 0x81, 0x45, 0xe4, 0x47, 0xfe, 0xc0, 0x5d, 0x15, 0xdf, 0x9f, 0xe2, + 0xff, 0x0d, 0xe4, 0xc3, 0x5e, 0x08, 0xb8, 0x7b, 0x63, 0xa8, 0x9c, 0xf1, 0xc2, 0x1e, 0x32, 0xb5, + 0x0a, 0x7d, 0xbc, 0xb2, 0x5f, 0x84, 0xb1, 0x96, 0xdf, 0xf1, 0x22, 0x61, 0xfd, 0x23, 0x2c, 0x11, + 0x98, 0x06, 0x7e, 0x4d, 0x2b, 0xc7, 0x06, 0x56, 0xe2, 0x6d, 0x3e, 0xf2, 0xd0, 0x6f, 0xf3, 0x37, + 0x61, 0xcc, 0xd3, 0xcc, 0x55, 0x05, 0x3f, 0x70, 0x29, 0x3f, 0x6a, 0xab, 0x6e, 0xdc, 0xca, 0x7b, + 0xa9, 0x97, 0x60, 0x83, 0xda, 0xc9, 0x3e, 0xf8, 0xbe, 0x6c, 0x65, 0x30, 0xf5, 0x5c, 0x04, 0xf0, + 0x51, 0x53, 0x04, 0x70, 0x29, 0x29, 0x02, 0x48, 0x49, 0x94, 0x8d, 0xd7, 0x7f, 0xff, 0x49, 0x69, + 0xfa, 0x0d, 0x84, 0x68, 0x37, 0xe1, 0x42, 0xaf, 0x6b, 0x89, 0x99, 0x81, 0x35, 0x94, 0xfe, 0x30, + 0x36, 0x03, 0x6b, 0x54, 0xca, 0x98, 0x41, 0xfa, 0x0d, 0xb1, 0x63, 0xff, 0x37, 0x0b, 0x8a, 0x55, + 0xbf, 0x71, 0x02, 0x0f, 0xde, 0x8f, 0x19, 0x0f, 0xde, 0xc7, 0xb3, 0x2f, 0xc4, 0x46, 0xae, 0x3c, + 0x7c, 0x25, 0x21, 0x0f, 0x3f, 0x97, 0x47, 0xa0, 0xbb, 0xf4, 0xfb, 0x27, 0x8b, 0x30, 0x5a, 0xf5, + 0x1b, 0xca, 0x06, 0xfb, 0xd7, 0x1e, 0xc6, 0x06, 0x3b, 0x37, 0xb5, 0x82, 0x46, 0x99, 0x59, 0x8f, + 0x49, 0xf7, 0xd3, 0x6f, 0x30, 0x53, 0xec, 0xbb, 0xc4, 0xdd, 0xde, 0x89, 0x48, 0x23, 0xf9, 0x39, + 0x27, 0x67, 0x8a, 0xfd, 0x7b, 0x05, 0x98, 0x4c, 0xb4, 0x8e, 0x9a, 0x30, 0xde, 0xd4, 0xa5, 0xad, + 0x62, 0x9d, 0x3e, 0x94, 0xa0, 0x56, 0x98, 0xb2, 0x6a, 0x45, 0xd8, 0x24, 0x8e, 0x16, 0x00, 0x94, + 0xfa, 0x51, 0x8a, 0xf5, 0x18, 0xd7, 0xaf, 0xf4, 0x93, 0x21, 0xd6, 0x30, 0xd0, 0x4b, 0x30, 0x1a, + 0xf9, 0x6d, 0xbf, 0xe9, 0x6f, 0xef, 0xdf, 0x20, 0x32, 0xa8, 0x93, 0x32, 0x50, 0xdb, 0x88, 0x41, + 0x58, 0xc7, 0x43, 0xf7, 0x61, 0x5a, 0x11, 0xa9, 0x1d, 0x83, 0x04, 0x9a, 0x49, 0x15, 0xd6, 0x93, + 0x14, 0x71, 0xba, 0x11, 0xfb, 0xa7, 0x8a, 0x7c, 0x88, 0xbd, 0xc8, 0x7d, 0x6f, 0x37, 0xbc, 0xbb, + 0x77, 0xc3, 0x57, 0x2d, 0x98, 0xa2, 0xad, 0x33, 0xeb, 0x1b, 0x79, 0xcd, 0xab, 0x38, 0xd1, 0x56, + 0x97, 0x38, 0xd1, 0x97, 0xe8, 0xa9, 0xd9, 0xf0, 0x3b, 0x91, 0x90, 0xdd, 0x69, 0xc7, 0x22, 0x2d, + 0xc5, 0x02, 0x2a, 0xf0, 0x48, 0x10, 0x08, 0x8f, 0x41, 0x1d, 0x8f, 0x04, 0x01, 0x16, 0x50, 0x19, + 0x46, 0x7a, 0x20, 0x3b, 0x8c, 0x34, 0x0f, 0x8e, 0x29, 0xec, 0x34, 0x04, 0xc3, 0xa5, 0x05, 0xc7, + 0x94, 0x06, 0x1c, 0x31, 0x8e, 0xfd, 0xb3, 0x45, 0x18, 0xab, 0xfa, 0x8d, 0x58, 0xf5, 0xf8, 0xa2, + 0xa1, 0x7a, 0xbc, 0x90, 0x50, 0x3d, 0x4e, 0xe9, 0xb8, 0xef, 0x29, 0x1a, 0xbf, 0x5e, 0x8a, 0xc6, + 0x7f, 0x6a, 0xb1, 0x59, 0x2b, 0xaf, 0xd7, 0xb8, 0x31, 0x17, 0xba, 0x0a, 0xa3, 0xec, 0x80, 0x61, + 0x2e, 0xaa, 0x52, 0x1f, 0xc7, 0xd2, 0x23, 0xad, 0xc7, 0xc5, 0x58, 0xc7, 0x41, 0x97, 0x61, 0x24, + 0x24, 0x4e, 0x50, 0xdf, 0x51, 0xa7, 0xab, 0x50, 0x9e, 0xf1, 0x32, 0xac, 0xa0, 0xe8, 0x8d, 0x38, + 0x2e, 0x63, 0x31, 0xdf, 0xe5, 0x4d, 0xef, 0x0f, 0xdf, 0x22, 0xf9, 0xc1, 0x18, 0xed, 0xbb, 0x80, + 0xd2, 0xf8, 0x7d, 0x04, 0x24, 0x9b, 0x37, 0x03, 0x92, 0x95, 0x52, 0xc1, 0xc8, 0xfe, 0xdc, 0x82, + 0x89, 0xaa, 0xdf, 0xa0, 0x5b, 0xf7, 0x9b, 0x69, 0x9f, 0xea, 0x41, 0x69, 0x87, 0xba, 0x04, 0xa5, + 0xbd, 0x08, 0x83, 0x55, 0xbf, 0x51, 0xa9, 0x76, 0xf3, 0x37, 0xb7, 0xff, 0x96, 0x05, 0xc3, 0x55, + 0xbf, 0x71, 0x02, 0x6a, 0x81, 0x8f, 0x9a, 0x6a, 0x81, 0xc7, 0x72, 0xd6, 0x4d, 0x8e, 0x26, 0xe0, + 0x6f, 0x0c, 0xc0, 0x38, 0xed, 0xa7, 0xbf, 0x2d, 0xa7, 0xd2, 0x18, 0x36, 0xab, 0x8f, 0x61, 0xa3, + 0x5c, 0xb8, 0xdf, 0x6c, 0xfa, 0xf7, 0x92, 0xd3, 0xba, 0xca, 0x4a, 0xb1, 0x80, 0xa2, 0x67, 0x61, + 0xa4, 0x1d, 0x90, 0x3d, 0xd7, 0x17, 0xec, 0xad, 0xa6, 0x64, 0xa9, 0x8a, 0x72, 0xac, 0x30, 0xe8, + 0xb3, 0x30, 0x74, 0x3d, 0x7a, 0x95, 0xd7, 0x7d, 0xaf, 0xc1, 0x25, 0xe7, 0x45, 0x91, 0x2a, 0x42, + 0x2b, 0xc7, 0x06, 0x16, 0xba, 0x0b, 0x25, 0xf6, 0x9f, 0x1d, 0x3b, 0x47, 0x4f, 0x3a, 0x2a, 0x92, + 0xd0, 0x09, 0x02, 0x38, 0xa6, 0x85, 0x9e, 0x07, 0x88, 0x64, 0xf4, 0xf1, 0x50, 0x04, 0x9f, 0x52, + 0x4f, 0x01, 0x15, 0x97, 0x3c, 0xc4, 0x1a, 0x16, 0x7a, 0x06, 0x4a, 0x91, 0xe3, 0x36, 0x6f, 0xba, + 0x1e, 0x09, 0x99, 0x44, 0xbc, 0x28, 0x73, 0xc1, 0x89, 0x42, 0x1c, 0xc3, 0x29, 0x2b, 0xc6, 0x22, + 0x33, 0xf0, 0x94, 0xc5, 0x23, 0x0c, 0x9b, 0xb1, 0x62, 0x37, 0x55, 0x29, 0xd6, 0x30, 0xd0, 0x0e, + 0x3c, 0xe1, 0x7a, 0x2c, 0xad, 0x02, 0xa9, 0xed, 0xba, 0xed, 0x8d, 0x9b, 0xb5, 0x3b, 0x24, 0x70, + 0xb7, 0xf6, 0x97, 0x9c, 0xfa, 0x2e, 0xf1, 0x64, 0x3a, 0xc9, 0xf7, 0x8b, 0x2e, 0x3e, 0x51, 0xe9, + 0x82, 0x8b, 0xbb, 0x52, 0xb2, 0x5f, 0x86, 0xd3, 0x55, 0xbf, 0x51, 0xf5, 0x83, 0x68, 0xd5, 0x0f, + 0xee, 0x39, 0x41, 0x43, 0xae, 0x94, 0x79, 0x19, 0x25, 0x81, 0x1e, 0x85, 0x83, 0xfc, 0xa0, 0x30, + 0x22, 0x20, 0xbc, 0xc0, 0x98, 0xaf, 0x23, 0xfa, 0xf6, 0xd4, 0x19, 0x1b, 0xa0, 0x72, 0x8c, 0x5c, + 0x73, 0x22, 0x82, 0x6e, 0xb1, 0xdc, 0xc9, 0xf1, 0x8d, 0x28, 0xaa, 0x3f, 0xad, 0xe5, 0x4e, 0x8e, + 0x81, 0x99, 0x57, 0xa8, 0x59, 0xdf, 0xfe, 0xef, 0x83, 0xec, 0x70, 0x4c, 0xe4, 0xa9, 0x40, 0x9f, + 0x81, 0x89, 0x90, 0xdc, 0x74, 0xbd, 0xce, 0x7d, 0x29, 0x8d, 0xe8, 0xe2, 0x9d, 0x55, 0x5b, 0xd1, + 0x31, 0xb9, 0x4c, 0xd3, 0x2c, 0xc3, 0x09, 0x6a, 0xa8, 0x05, 0x13, 0xf7, 0x5c, 0xaf, 0xe1, 0xdf, + 0x0b, 0x25, 0xfd, 0x91, 0x7c, 0xd1, 0xe6, 0x5d, 0x8e, 0x99, 0xe8, 0xa3, 0xd1, 0xdc, 0x5d, 0x83, + 0x18, 0x4e, 0x10, 0xa7, 0x0b, 0x30, 0xe8, 0x78, 0x8b, 0xe1, 0xed, 0x90, 0x04, 0x22, 0x0b, 0x36, + 0x5b, 0x80, 0x58, 0x16, 0xe2, 0x18, 0x4e, 0x17, 0x20, 0xfb, 0x73, 0x2d, 0xf0, 0x3b, 0x3c, 0x47, + 0x80, 0x58, 0x80, 0x58, 0x95, 0x62, 0x0d, 0x83, 0x6e, 0x50, 0xf6, 0x6f, 0xdd, 0xf7, 0xb0, 0xef, + 0x47, 0x72, 0x4b, 0xb3, 0xbc, 0xab, 0x5a, 0x39, 0x36, 0xb0, 0xd0, 0x2a, 0xa0, 0xb0, 0xd3, 0x6e, + 0x37, 0x99, 0xd9, 0x87, 0xd3, 0x64, 0xa4, 0xb8, 0xca, 0xbd, 0xc8, 0x43, 0xa7, 0xd6, 0x52, 0x50, + 0x9c, 0x51, 0x83, 0x9e, 0xd5, 0x5b, 0xa2, 0xab, 0x83, 0xac, 0xab, 0x5c, 0x0d, 0x52, 0xe3, 0xfd, + 0x94, 0x30, 0xb4, 0x02, 0xc3, 0xe1, 0x7e, 0x58, 0x8f, 0x44, 0x0c, 0xb8, 0x9c, 0x54, 0x44, 0x35, + 0x86, 0xa2, 0x65, 0xc2, 0xe3, 0x55, 0xb0, 0xac, 0x8b, 0xea, 0x30, 0x23, 0x28, 0x2e, 0xef, 0x38, + 0x9e, 0x4a, 0xec, 0xc2, 0xad, 0x5f, 0xaf, 0x3e, 0x38, 0x98, 0x9f, 0x11, 0x2d, 0xeb, 0xe0, 0xc3, + 0x83, 0xf9, 0x33, 0x55, 0xbf, 0x91, 0x01, 0xc1, 0x59, 0xd4, 0xf8, 0xe2, 0xab, 0xd7, 0xfd, 0x56, + 0xbb, 0x1a, 0xf8, 0x5b, 0x6e, 0x93, 0x74, 0x53, 0x25, 0xd5, 0x0c, 0x4c, 0xb1, 0xf8, 0x8c, 0x32, + 0x9c, 0xa0, 0x66, 0x7f, 0x3b, 0xe3, 0x67, 0x58, 0xe2, 0xe7, 0xa8, 0x13, 0x10, 0xd4, 0x82, 0xf1, + 0x36, 0xdb, 0x26, 0x22, 0x72, 0xbf, 0x58, 0xeb, 0x2f, 0xf6, 0x29, 0x12, 0xb9, 0x47, 0xaf, 0x01, + 0x25, 0xb2, 0x64, 0x6f, 0xcd, 0xaa, 0x4e, 0x0e, 0x9b, 0xd4, 0xed, 0x1f, 0x7b, 0x8c, 0xdd, 0x88, + 0x35, 0x2e, 0xe7, 0x18, 0x16, 0xc6, 0xf6, 0xe2, 0x69, 0x35, 0x97, 0x2f, 0x70, 0x8b, 0xa7, 0x45, + 0x18, 0xec, 0x63, 0x59, 0x17, 0x7d, 0x1a, 0x26, 0xe8, 0x4b, 0x45, 0xcb, 0xa8, 0x72, 0x2a, 0x3f, + 0x28, 0x42, 0x9c, 0x48, 0x45, 0xcb, 0xea, 0xa1, 0x57, 0xc6, 0x09, 0x62, 0xe8, 0x0d, 0x66, 0x16, + 0x62, 0x26, 0x6b, 0xe9, 0x41, 0x5a, 0xb7, 0x00, 0x91, 0x64, 0x35, 0x22, 0x79, 0x89, 0x60, 0xec, + 0x47, 0x9b, 0x08, 0x06, 0xdd, 0x84, 0x71, 0x91, 0xfd, 0x58, 0xac, 0xdc, 0xa2, 0x21, 0x07, 0x1c, + 0xc7, 0x3a, 0xf0, 0x30, 0x59, 0x80, 0xcd, 0xca, 0x68, 0x1b, 0xce, 0x69, 0xd9, 0x88, 0xae, 0x05, + 0x0e, 0x53, 0xe6, 0xbb, 0xec, 0x38, 0xd5, 0xee, 0xea, 0x27, 0x1f, 0x1c, 0xcc, 0x9f, 0xdb, 0xe8, + 0x86, 0x88, 0xbb, 0xd3, 0x41, 0xb7, 0xe0, 0x34, 0x77, 0xe9, 0x2d, 0x13, 0xa7, 0xd1, 0x74, 0x3d, + 0xc5, 0x0c, 0xf0, 0x2d, 0x7f, 0xf6, 0xc1, 0xc1, 0xfc, 0xe9, 0xc5, 0x2c, 0x04, 0x9c, 0x5d, 0x0f, + 0x7d, 0x14, 0x4a, 0x0d, 0x2f, 0x14, 0x63, 0x30, 0x64, 0x24, 0x7c, 0x2a, 0x95, 0xd7, 0x6b, 0xea, + 0xfb, 0xe3, 0x3f, 0x38, 0xae, 0x80, 0xb6, 0xb9, 0xac, 0x58, 0x49, 0x30, 0x86, 0x53, 0x21, 0x8d, + 0x92, 0x42, 0x3e, 0xc3, 0xa9, 0x8f, 0x2b, 0x49, 0x94, 0xad, 0xbb, 0xe1, 0xef, 0x67, 0x10, 0x46, + 0xaf, 0x03, 0xa2, 0x2f, 0x08, 0xb7, 0x4e, 0x16, 0xeb, 0x2c, 0x2d, 0x04, 0x13, 0xad, 0x8f, 0x98, + 0x6e, 0x66, 0xb5, 0x14, 0x06, 0xce, 0xa8, 0x85, 0xae, 0xd3, 0x53, 0x45, 0x2f, 0x15, 0xa7, 0x96, + 0x4a, 0xcf, 0x57, 0x26, 0xed, 0x80, 0xd4, 0x9d, 0x88, 0x34, 0x4c, 0x8a, 0x38, 0x51, 0x0f, 0x35, + 0xe0, 0x09, 0xa7, 0x13, 0xf9, 0x4c, 0x0c, 0x6f, 0xa2, 0x6e, 0xf8, 0xbb, 0xc4, 0x63, 0x1a, 0xb0, + 0x91, 0xa5, 0x0b, 0x94, 0xdb, 0x58, 0xec, 0x82, 0x87, 0xbb, 0x52, 0xa1, 0x5c, 0xa2, 0xca, 0xc7, + 0x0b, 0x66, 0xa0, 0xa6, 0x8c, 0x9c, 0xbc, 0x2f, 0xc1, 0xe8, 0x8e, 0x1f, 0x46, 0xeb, 0x24, 0xba, + 0xe7, 0x07, 0xbb, 0x22, 0xde, 0x66, 0x1c, 0xa3, 0x39, 0x06, 0x61, 0x1d, 0x8f, 0x3e, 0x03, 0x99, + 0x7d, 0x46, 0xa5, 0xcc, 0x54, 0xe3, 0x23, 0xf1, 0x19, 0x73, 0x9d, 0x17, 0x63, 0x09, 0x97, 0xa8, + 0x95, 0xea, 0x32, 0x53, 0x73, 0x27, 0x50, 0x2b, 0xd5, 0x65, 0x2c, 0xe1, 0x74, 0xb9, 0x86, 0x3b, + 0x4e, 0x40, 0xaa, 0x81, 0x5f, 0x27, 0xa1, 0x16, 0x19, 0xfc, 0x71, 0x1e, 0x4d, 0x94, 0x2e, 0xd7, + 0x5a, 0x16, 0x02, 0xce, 0xae, 0x87, 0x48, 0x3a, 0x13, 0xd7, 0x44, 0xbe, 0x7e, 0x22, 0xcd, 0xcf, + 0xf4, 0x99, 0x8c, 0xcb, 0x83, 0x29, 0x95, 0x03, 0x8c, 0xc7, 0x0f, 0x0d, 0x67, 0x27, 0xd9, 0xda, + 0xee, 0x3f, 0xf8, 0xa8, 0xd2, 0xf8, 0x54, 0x12, 0x94, 0x70, 0x8a, 0xb6, 0x11, 0x8b, 0x6b, 0xaa, + 0x67, 0x2c, 0xae, 0x2b, 0x50, 0x0a, 0x3b, 0x9b, 0x0d, 0xbf, 0xe5, 0xb8, 0x1e, 0x53, 0x73, 0x6b, + 0xef, 0x91, 0x9a, 0x04, 0xe0, 0x18, 0x07, 0xad, 0xc2, 0x88, 0x23, 0xd5, 0x39, 0x28, 0x3f, 0xfa, + 0x8a, 0x52, 0xe2, 0xf0, 0x80, 0x04, 0x52, 0x81, 0xa3, 0xea, 0xa2, 0x57, 0x61, 0x5c, 0xb8, 0xa4, + 0x8a, 0xf4, 0x93, 0x33, 0xa6, 0xdf, 0x50, 0x4d, 0x07, 0x62, 0x13, 0x17, 0xdd, 0x86, 0xd1, 0xc8, + 0x6f, 0x32, 0xe7, 0x17, 0xca, 0xe6, 0x9d, 0xc9, 0x8f, 0x23, 0xb6, 0xa1, 0xd0, 0x74, 0x49, 0xaa, + 0xaa, 0x8a, 0x75, 0x3a, 0x68, 0x83, 0xaf, 0x77, 0x16, 0x21, 0x9b, 0x84, 0xb3, 0x8f, 0xe5, 0xdf, + 0x49, 0x2a, 0x90, 0xb6, 0xb9, 0x1d, 0x44, 0x4d, 0xac, 0x93, 0x41, 0xd7, 0x60, 0xba, 0x1d, 0xb8, + 0x3e, 0x5b, 0x13, 0x4a, 0x93, 0x37, 0x6b, 0xa6, 0xe7, 0xa9, 0x26, 0x11, 0x70, 0xba, 0x0e, 0xf3, + 0x28, 0x16, 0x85, 0xb3, 0x67, 0x79, 0x86, 0x6a, 0xfe, 0xbc, 0xe3, 0x65, 0x58, 0x41, 0xd1, 0x1a, + 0x3b, 0x89, 0xb9, 0x64, 0x62, 0x76, 0x2e, 0x3f, 0xe0, 0x8b, 0x2e, 0xc1, 0xe0, 0xcc, 0xab, 0xfa, + 0x8b, 0x63, 0x0a, 0xa8, 0xa1, 0xa5, 0x32, 0xa4, 0x2f, 0x86, 0x70, 0xf6, 0x89, 0x2e, 0x46, 0x72, + 0x89, 0xe7, 0x45, 0xcc, 0x10, 0x18, 0xc5, 0x21, 0x4e, 0xd0, 0x44, 0x1f, 0x87, 0x29, 0x11, 0xa6, + 0x2e, 0x1e, 0xa6, 0x73, 0xb1, 0x49, 0x31, 0x4e, 0xc0, 0x70, 0x0a, 0x9b, 0x67, 0x0e, 0x70, 0x36, + 0x9b, 0x44, 0x1c, 0x7d, 0x37, 0x5d, 0x6f, 0x37, 0x9c, 0x3d, 0xcf, 0xce, 0x07, 0x91, 0x39, 0x20, + 0x09, 0xc5, 0x19, 0x35, 0xd0, 0x06, 0x4c, 0xb5, 0x03, 0x42, 0x5a, 0x8c, 0xd1, 0x17, 0xf7, 0xd9, + 0x3c, 0x77, 0xa8, 0xa7, 0x3d, 0xa9, 0x26, 0x60, 0x87, 0x19, 0x65, 0x38, 0x45, 0x01, 0xdd, 0x83, + 0x11, 0x7f, 0x8f, 0x04, 0x3b, 0xc4, 0x69, 0xcc, 0x5e, 0xe8, 0x62, 0xe2, 0x2e, 0x2e, 0xb7, 0x5b, + 0x02, 0x37, 0xa1, 0xfd, 0x97, 0xc5, 0xbd, 0xb5, 0xff, 0xb2, 0x31, 0xf4, 0x43, 0x16, 0x9c, 0x95, + 0x0a, 0x83, 0x5a, 0x9b, 0x8e, 0xfa, 0xb2, 0xef, 0x85, 0x51, 0xc0, 0x5d, 0xc0, 0x9f, 0xcc, 0x77, + 0x8b, 0xde, 0xc8, 0xa9, 0xa4, 0x84, 0xa3, 0x67, 0xf3, 0x30, 0x42, 0x9c, 0xdf, 0x22, 0x5a, 0x86, + 0xe9, 0x90, 0x44, 0xf2, 0x30, 0x5a, 0x0c, 0x57, 0xdf, 0x28, 0xaf, 0xcf, 0x5e, 0xe4, 0xfe, 0xeb, + 0x74, 0x33, 0xd4, 0x92, 0x40, 0x9c, 0xc6, 0x9f, 0xfb, 0x56, 0x98, 0x4e, 0x5d, 0xff, 0x47, 0xc9, + 0x88, 0x32, 0xb7, 0x0b, 0xe3, 0xc6, 0x10, 0x3f, 0x52, 0xed, 0xf1, 0xbf, 0x1a, 0x86, 0x92, 0xd2, + 0x2c, 0xa2, 0x2b, 0xa6, 0xc2, 0xf8, 0x6c, 0x52, 0x61, 0x3c, 0x42, 0xdf, 0xf5, 0xba, 0x8e, 0x78, + 0x23, 0x23, 0x6a, 0x57, 0xde, 0x86, 0xee, 0xdf, 0x1d, 0x5b, 0x13, 0xd7, 0x16, 0xfb, 0xd6, 0x3c, + 0x0f, 0x74, 0x95, 0x00, 0x5f, 0x83, 0x69, 0xcf, 0x67, 0x3c, 0x27, 0x69, 0x48, 0x86, 0x82, 0xf1, + 0x0d, 0x25, 0x3d, 0x0c, 0x46, 0x02, 0x01, 0xa7, 0xeb, 0xd0, 0x06, 0xf9, 0xc5, 0x9f, 0x14, 0x39, + 0x73, 0xbe, 0x00, 0x0b, 0x28, 0xba, 0x08, 0x83, 0x6d, 0xbf, 0x51, 0xa9, 0x0a, 0x7e, 0x53, 0x8b, + 0x15, 0xd9, 0xa8, 0x54, 0x31, 0x87, 0xa1, 0x45, 0x18, 0x62, 0x3f, 0xc2, 0xd9, 0xb1, 0xfc, 0x78, + 0x07, 0xac, 0x86, 0x96, 0x6f, 0x86, 0x55, 0xc0, 0xa2, 0x22, 0x13, 0x7d, 0x51, 0x26, 0x9d, 0x89, + 0xbe, 0x86, 0x1f, 0x52, 0xf4, 0x25, 0x09, 0xe0, 0x98, 0x16, 0xba, 0x0f, 0xa7, 0x8d, 0x87, 0x11, + 0x5f, 0x22, 0x24, 0x14, 0x3e, 0xd7, 0x17, 0xbb, 0xbe, 0x88, 0x84, 0xa6, 0xfa, 0x9c, 0xe8, 0xf4, + 0xe9, 0x4a, 0x16, 0x25, 0x9c, 0xdd, 0x00, 0x6a, 0xc2, 0x74, 0x3d, 0xd5, 0xea, 0x48, 0xff, 0xad, + 0xaa, 0x09, 0x4d, 0xb7, 0x98, 0x26, 0x8c, 0x5e, 0x85, 0x91, 0xb7, 0xfc, 0x90, 0x9d, 0xd5, 0x82, + 0x47, 0x96, 0x0e, 0xbb, 0x23, 0x6f, 0xdc, 0xaa, 0xb1, 0xf2, 0xc3, 0x83, 0xf9, 0xd1, 0xaa, 0xdf, + 0x90, 0x7f, 0xb1, 0xaa, 0x80, 0xbe, 0xd7, 0x82, 0xb9, 0xf4, 0xcb, 0x4b, 0x75, 0x7a, 0xbc, 0xff, + 0x4e, 0xdb, 0xa2, 0xd1, 0xb9, 0x95, 0x5c, 0x72, 0xb8, 0x4b, 0x53, 0xf6, 0x2f, 0x59, 0x4c, 0xea, + 0x26, 0x34, 0x40, 0x24, 0xec, 0x34, 0x4f, 0x22, 0xcd, 0xe6, 0x8a, 0xa1, 0x9c, 0x7a, 0x68, 0xcb, + 0x85, 0x7f, 0x6e, 0x31, 0xcb, 0x85, 0x13, 0x74, 0x51, 0x78, 0x03, 0x46, 0x22, 0x99, 0xfe, 0xb4, + 0x4b, 0x66, 0x50, 0xad, 0x53, 0xcc, 0x7a, 0x43, 0x71, 0xac, 0x2a, 0xd3, 0xa9, 0x22, 0x63, 0xff, + 0x23, 0x3e, 0x03, 0x12, 0x72, 0x02, 0x3a, 0x80, 0xb2, 0xa9, 0x03, 0x98, 0xef, 0xf1, 0x05, 0x39, + 0xba, 0x80, 0x7f, 0x68, 0xf6, 0x9b, 0x49, 0x6a, 0xde, 0xed, 0x26, 0x33, 0xf6, 0x17, 0x2d, 0x80, + 0x38, 0x14, 0x2f, 0x93, 0x2f, 0xfb, 0x81, 0xcc, 0xb1, 0x98, 0x95, 0x4d, 0xe8, 0x65, 0xca, 0xa3, + 0xfa, 0x91, 0x5f, 0xf7, 0x9b, 0x42, 0xc3, 0xf5, 0x44, 0xac, 0x86, 0xe0, 0xe5, 0x87, 0xda, 0x6f, + 0xac, 0xb0, 0xd1, 0xbc, 0x0c, 0xfc, 0x55, 0x8c, 0x15, 0x63, 0x46, 0xd0, 0xaf, 0x1f, 0xb1, 0xe0, + 0x54, 0x96, 0xbd, 0x2b, 0x7d, 0xf1, 0x70, 0x99, 0x95, 0x32, 0x67, 0x52, 0xb3, 0x79, 0x47, 0x94, + 0x63, 0x85, 0xd1, 0x77, 0xe6, 0xb0, 0xa3, 0xc5, 0xc0, 0xbd, 0x05, 0xe3, 0xd5, 0x80, 0x68, 0x97, + 0xeb, 0x6b, 0xdc, 0x99, 0x9c, 0xf7, 0xe7, 0xd9, 0x23, 0x3b, 0x92, 0xdb, 0x3f, 0x5d, 0x80, 0x53, + 0xdc, 0x2a, 0x60, 0x71, 0xcf, 0x77, 0x1b, 0x55, 0xbf, 0x21, 0xb2, 0xbe, 0x7d, 0x0a, 0xc6, 0xda, + 0x9a, 0xa0, 0xb1, 0x5b, 0x3c, 0x47, 0x5d, 0x20, 0x19, 0x8b, 0x46, 0xf4, 0x52, 0x6c, 0xd0, 0x42, + 0x0d, 0x18, 0x23, 0x7b, 0x6e, 0x5d, 0xa9, 0x96, 0x0b, 0x47, 0xbe, 0xe8, 0x54, 0x2b, 0x2b, 0x1a, + 0x1d, 0x6c, 0x50, 0x7d, 0x04, 0xf9, 0x7c, 0xed, 0x1f, 0xb5, 0xe0, 0xb1, 0x9c, 0xe8, 0x8f, 0xb4, + 0xb9, 0x7b, 0xcc, 0xfe, 0x42, 0x2c, 0x5b, 0xd5, 0x1c, 0xb7, 0xca, 0xc0, 0x02, 0x8a, 0x3e, 0x01, + 0xc0, 0xad, 0x2a, 0xe8, 0x93, 0xbb, 0x57, 0x98, 0x3c, 0x23, 0xc2, 0x97, 0x16, 0xac, 0x49, 0xd6, + 0xc7, 0x1a, 0x2d, 0xfb, 0x4b, 0x03, 0x30, 0xc8, 0x93, 0xad, 0xaf, 0xc2, 0xf0, 0x0e, 0xcf, 0x85, + 0xd1, 0x4f, 0xda, 0x8d, 0x58, 0x18, 0xc2, 0x0b, 0xb0, 0xac, 0x8c, 0xd6, 0x60, 0x86, 0xe7, 0x12, + 0x69, 0x96, 0x49, 0xd3, 0xd9, 0x97, 0x92, 0x3b, 0x9e, 0x87, 0x53, 0x49, 0x30, 0x2b, 0x69, 0x14, + 0x9c, 0x55, 0x0f, 0xbd, 0x06, 0x13, 0xf4, 0x25, 0xe5, 0x77, 0x22, 0x49, 0x89, 0x67, 0x11, 0x51, + 0x4f, 0xb7, 0x0d, 0x03, 0x8a, 0x13, 0xd8, 0xf4, 0x31, 0xdf, 0x4e, 0xc9, 0x28, 0x07, 0xe3, 0xc7, + 0xbc, 0x29, 0x97, 0x34, 0x71, 0x99, 0xa1, 0x6b, 0x87, 0x99, 0xf5, 0x6e, 0xec, 0x04, 0x24, 0xdc, + 0xf1, 0x9b, 0x0d, 0xc6, 0xf4, 0x0d, 0x6a, 0x86, 0xae, 0x09, 0x38, 0x4e, 0xd5, 0xa0, 0x54, 0xb6, + 0x1c, 0xb7, 0xd9, 0x09, 0x48, 0x4c, 0x65, 0xc8, 0xa4, 0xb2, 0x9a, 0x80, 0xe3, 0x54, 0x8d, 0xde, + 0xc2, 0xd7, 0xe1, 0xe3, 0x11, 0xbe, 0xd2, 0x05, 0x7b, 0xba, 0x1a, 0xf8, 0xf4, 0xc4, 0x96, 0xb1, + 0x73, 0x94, 0x99, 0xf4, 0xb0, 0x74, 0xf3, 0xed, 0x12, 0x65, 0x4e, 0x18, 0x92, 0x72, 0x0a, 0x86, + 0xa5, 0x42, 0x4d, 0x38, 0xf8, 0x4a, 0x2a, 0xe8, 0x2a, 0x8c, 0x8a, 0x54, 0x14, 0xcc, 0x9a, 0x97, + 0xaf, 0x11, 0x66, 0x59, 0x51, 0x8e, 0x8b, 0xb1, 0x8e, 0x63, 0x7f, 0x5f, 0x01, 0x66, 0x32, 0xdc, + 0x31, 0xf8, 0x99, 0xb8, 0xed, 0x86, 0x91, 0x4a, 0x6a, 0xa8, 0x9d, 0x89, 0xbc, 0x1c, 0x2b, 0x0c, + 0xba, 0xf1, 0xf8, 0xa9, 0x9b, 0x3c, 0x69, 0x85, 0xb9, 0xb3, 0x80, 0x1e, 0x31, 0x3d, 0xe0, 0x05, + 0x18, 0xe8, 0x84, 0x44, 0xc6, 0x87, 0x54, 0x77, 0x10, 0x53, 0xb8, 0x31, 0x08, 0x7d, 0x13, 0x6c, + 0x2b, 0xdd, 0x95, 0xf6, 0x26, 0xe0, 0xda, 0x2b, 0x0e, 0xa3, 0x9d, 0x8b, 0x88, 0xe7, 0x78, 0x91, + 0x78, 0x39, 0xc4, 0x81, 0xce, 0x58, 0x29, 0x16, 0x50, 0xfb, 0x4b, 0x45, 0x38, 0x9b, 0xeb, 0xa0, + 0x45, 0xbb, 0xde, 0xf2, 0x3d, 0x37, 0xf2, 0x95, 0xc9, 0x0a, 0x0f, 0x6e, 0x46, 0xda, 0x3b, 0x6b, + 0xa2, 0x1c, 0x2b, 0x0c, 0x74, 0x09, 0x06, 0x99, 0xb8, 0x2e, 0x95, 0xde, 0x71, 0xa9, 0xcc, 0xa3, + 0xdd, 0x70, 0x70, 0xdf, 0xa9, 0x73, 0x2f, 0xd2, 0xeb, 0xd8, 0x6f, 0x26, 0x4f, 0x47, 0xda, 0x5d, + 0xdf, 0x6f, 0x62, 0x06, 0x44, 0x1f, 0x10, 0xe3, 0x95, 0xb0, 0xd1, 0xc0, 0x4e, 0xc3, 0x0f, 0xb5, + 0x41, 0x7b, 0x1a, 0x86, 0x77, 0xc9, 0x7e, 0xe0, 0x7a, 0xdb, 0x49, 0xdb, 0x9d, 0x1b, 0xbc, 0x18, + 0x4b, 0xb8, 0x99, 0xa9, 0x6b, 0xf8, 0xb8, 0x73, 0xde, 0x8e, 0xf4, 0xbc, 0x6b, 0x7f, 0xa0, 0x08, + 0x93, 0x78, 0xa9, 0xfc, 0xde, 0x44, 0xdc, 0x4e, 0x4f, 0xc4, 0x71, 0xe7, 0xbc, 0xed, 0x3d, 0x1b, + 0x3f, 0x6f, 0xc1, 0x24, 0x4b, 0x88, 0x21, 0xc2, 0x62, 0xb9, 0xbe, 0x77, 0x02, 0x7c, 0xed, 0x45, + 0x18, 0x0c, 0x68, 0xa3, 0xc9, 0xbc, 0x8e, 0xac, 0x27, 0x98, 0xc3, 0xd0, 0x13, 0x30, 0xc0, 0xba, + 0x40, 0x27, 0x6f, 0x8c, 0xa7, 0xc4, 0x2a, 0x3b, 0x91, 0x83, 0x59, 0x29, 0x8b, 0xf5, 0x82, 0x49, + 0xbb, 0xe9, 0xf2, 0x4e, 0xc7, 0xca, 0xd4, 0x77, 0x87, 0xeb, 0x76, 0x66, 0xd7, 0xde, 0x59, 0xac, + 0x97, 0x6c, 0x92, 0xdd, 0xdf, 0x8c, 0x7f, 0x54, 0x80, 0xf3, 0x99, 0xf5, 0xfa, 0x8e, 0xf5, 0xd2, + 0xbd, 0xf6, 0xa3, 0x4c, 0x79, 0x50, 0x3c, 0x41, 0xcb, 0xc8, 0x81, 0x7e, 0x59, 0xd9, 0xc1, 0x3e, + 0x42, 0xb0, 0x64, 0x0e, 0xd9, 0xbb, 0x24, 0x04, 0x4b, 0x66, 0xdf, 0x72, 0xde, 0xbc, 0x7f, 0x51, + 0xc8, 0xf9, 0x16, 0xf6, 0xfa, 0xbd, 0x4c, 0xcf, 0x19, 0x06, 0x0c, 0xe5, 0x8b, 0x92, 0x9f, 0x31, + 0xbc, 0x0c, 0x2b, 0x28, 0x5a, 0x84, 0xc9, 0x96, 0xeb, 0xd1, 0xc3, 0x67, 0xdf, 0xe4, 0x30, 0x55, + 0x84, 0xac, 0x35, 0x13, 0x8c, 0x93, 0xf8, 0xc8, 0xd5, 0xc2, 0xb3, 0x14, 0xf2, 0x33, 0xa5, 0xe7, + 0xf6, 0x76, 0xc1, 0x54, 0x34, 0xab, 0x51, 0xcc, 0x08, 0xd5, 0xb2, 0xa6, 0x09, 0x3d, 0x8a, 0xfd, + 0x0b, 0x3d, 0xc6, 0xb2, 0x05, 0x1e, 0x73, 0xaf, 0xc2, 0xf8, 0x43, 0x4b, 0xb9, 0xed, 0xaf, 0x16, + 0xe1, 0xf1, 0x2e, 0xdb, 0x9e, 0x9f, 0xf5, 0xc6, 0x1c, 0x68, 0x67, 0x7d, 0x6a, 0x1e, 0xaa, 0x70, + 0x6a, 0xab, 0xd3, 0x6c, 0xee, 0x33, 0x87, 0x01, 0xd2, 0x90, 0x18, 0x82, 0xa7, 0x94, 0x2f, 0xfd, + 0x53, 0xab, 0x19, 0x38, 0x38, 0xb3, 0x26, 0x7d, 0x39, 0xd0, 0x9b, 0x64, 0x5f, 0x91, 0x4a, 0xbc, + 0x1c, 0xb0, 0x0e, 0xc4, 0x26, 0x2e, 0xba, 0x06, 0xd3, 0xce, 0x9e, 0xe3, 0xf2, 0x18, 0xb7, 0x92, + 0x00, 0x7f, 0x3a, 0x28, 0xe1, 0xe4, 0x62, 0x12, 0x01, 0xa7, 0xeb, 0xa0, 0xd7, 0x01, 0xf9, 0x9b, + 0xcc, 0xac, 0xb8, 0x71, 0x8d, 0x78, 0x42, 0x1f, 0xc8, 0xe6, 0xae, 0x18, 0x1f, 0x09, 0xb7, 0x52, + 0x18, 0x38, 0xa3, 0x56, 0x22, 0xdc, 0xc9, 0x50, 0x7e, 0xb8, 0x93, 0xee, 0xe7, 0x62, 0xcf, 0x6c, + 0x1b, 0xff, 0xc9, 0xa2, 0xd7, 0x17, 0x67, 0xf2, 0xcd, 0xa8, 0x7d, 0xaf, 0x32, 0x7b, 0x3e, 0x2e, + 0xb8, 0xd4, 0x82, 0x74, 0x9c, 0xd6, 0xec, 0xf9, 0x62, 0x20, 0x36, 0x71, 0xf9, 0x82, 0x08, 0x63, + 0xdf, 0x50, 0x83, 0xc5, 0x17, 0xa1, 0x85, 0x14, 0x06, 0xfa, 0x24, 0x0c, 0x37, 0xdc, 0x3d, 0x37, + 0x14, 0x62, 0x9b, 0x23, 0xeb, 0x48, 0xe2, 0x73, 0xb0, 0xcc, 0xc9, 0x60, 0x49, 0xcf, 0xfe, 0x81, + 0x02, 0x8c, 0xcb, 0x16, 0xdf, 0xe8, 0xf8, 0x91, 0x73, 0x02, 0xd7, 0xf2, 0x35, 0xe3, 0x5a, 0xfe, + 0x40, 0xb7, 0xf8, 0x4a, 0xac, 0x4b, 0xb9, 0xd7, 0xf1, 0xad, 0xc4, 0x75, 0xfc, 0x54, 0x6f, 0x52, + 0xdd, 0xaf, 0xe1, 0x7f, 0x6c, 0xc1, 0xb4, 0x81, 0x7f, 0x02, 0xb7, 0xc1, 0xaa, 0x79, 0x1b, 0x3c, + 0xd9, 0xf3, 0x1b, 0x72, 0x6e, 0x81, 0xef, 0x2e, 0x26, 0xfa, 0xce, 0x4e, 0xff, 0xb7, 0x60, 0x60, + 0xc7, 0x09, 0x1a, 0xdd, 0xe2, 0xc9, 0xa7, 0x2a, 0x2d, 0x5c, 0x77, 0x02, 0xa1, 0x10, 0x7d, 0x56, + 0x25, 0x2a, 0x77, 0x82, 0xde, 0xca, 0x50, 0xd6, 0x14, 0x7a, 0x19, 0x86, 0xc2, 0xba, 0xdf, 0x56, + 0xee, 0x02, 0x17, 0x78, 0x12, 0x73, 0x5a, 0x72, 0x78, 0x30, 0x8f, 0xcc, 0xe6, 0x68, 0x31, 0x16, + 0xf8, 0xe8, 0x53, 0x30, 0xce, 0x7e, 0x29, 0xeb, 0xa4, 0x62, 0x7e, 0xee, 0xa9, 0x9a, 0x8e, 0xc8, + 0x4d, 0xf7, 0x8c, 0x22, 0x6c, 0x92, 0x9a, 0xdb, 0x86, 0x92, 0xfa, 0xac, 0x47, 0xaa, 0x84, 0xfc, + 0xf7, 0x45, 0x98, 0xc9, 0x58, 0x73, 0x28, 0x34, 0x66, 0xe2, 0x6a, 0x9f, 0x4b, 0xf5, 0x1d, 0xce, + 0x45, 0xc8, 0x5e, 0x43, 0x0d, 0xb1, 0xb6, 0xfa, 0x6e, 0xf4, 0x76, 0x48, 0x92, 0x8d, 0xd2, 0xa2, + 0xde, 0x8d, 0xd2, 0xc6, 0x4e, 0x6c, 0xa8, 0x69, 0x43, 0xaa, 0xa7, 0x8f, 0x74, 0x4e, 0xff, 0xb4, + 0x08, 0xa7, 0xb2, 0x42, 0xbe, 0xa1, 0xcf, 0x27, 0xb2, 0x19, 0xbe, 0xd8, 0x6f, 0xb0, 0x38, 0x9e, + 0xe2, 0x90, 0x0b, 0x9b, 0x97, 0x16, 0xcc, 0xfc, 0x86, 0x3d, 0x87, 0x59, 0xb4, 0xc9, 0xe2, 0x1e, + 0x04, 0x3c, 0x0b, 0xa5, 0x3c, 0x3e, 0x3e, 0xdc, 0x77, 0x07, 0x44, 0xfa, 0xca, 0x30, 0x61, 0xf9, + 0x20, 0x8b, 0x7b, 0x5b, 0x3e, 0xc8, 0x96, 0xe7, 0x5c, 0x18, 0xd5, 0xbe, 0xe6, 0x91, 0xce, 0xf8, + 0x2e, 0xbd, 0xad, 0xb4, 0x7e, 0x3f, 0xd2, 0x59, 0xff, 0x51, 0x0b, 0x12, 0xc6, 0xf0, 0x4a, 0x2c, + 0x66, 0xe5, 0x8a, 0xc5, 0x2e, 0xc0, 0x40, 0xe0, 0x37, 0x49, 0x32, 0xed, 0x1f, 0xf6, 0x9b, 0x04, + 0x33, 0x08, 0xc5, 0x88, 0x62, 0x61, 0xc7, 0x98, 0xfe, 0x90, 0x13, 0x4f, 0xb4, 0x8b, 0x30, 0xd8, + 0x24, 0x7b, 0xa4, 0x99, 0xcc, 0xce, 0x72, 0x93, 0x16, 0x62, 0x0e, 0xb3, 0x7f, 0x7e, 0x00, 0xce, + 0x75, 0x8d, 0x1c, 0x42, 0x9f, 0x43, 0xdb, 0x4e, 0x44, 0xee, 0x39, 0xfb, 0xc9, 0x34, 0x0a, 0xd7, + 0x78, 0x31, 0x96, 0x70, 0xe6, 0xae, 0xc4, 0xa3, 0x21, 0x27, 0x84, 0x88, 0x22, 0x08, 0xb2, 0x80, + 0x9a, 0x42, 0xa9, 0xe2, 0x71, 0x08, 0xa5, 0x9e, 0x07, 0x08, 0xc3, 0x26, 0x37, 0x19, 0x6a, 0x08, + 0x3f, 0xa8, 0x38, 0x6a, 0x76, 0xed, 0xa6, 0x80, 0x60, 0x0d, 0x0b, 0x95, 0x61, 0xaa, 0x1d, 0xf8, + 0x11, 0x97, 0xc9, 0x96, 0xb9, 0x55, 0xdd, 0xa0, 0x19, 0xb4, 0xa1, 0x9a, 0x80, 0xe3, 0x54, 0x0d, + 0xf4, 0x12, 0x8c, 0x8a, 0x40, 0x0e, 0x55, 0xdf, 0x6f, 0x0a, 0x31, 0x90, 0x32, 0x34, 0xab, 0xc5, + 0x20, 0xac, 0xe3, 0x69, 0xd5, 0x98, 0xa0, 0x77, 0x38, 0xb3, 0x1a, 0x17, 0xf6, 0x6a, 0x78, 0x89, + 0xf0, 0x8f, 0x23, 0x7d, 0x85, 0x7f, 0x8c, 0x05, 0x63, 0xa5, 0xbe, 0x95, 0x68, 0xd0, 0x53, 0x94, + 0xf4, 0x33, 0x03, 0x30, 0x23, 0x16, 0xce, 0xa3, 0x5e, 0x2e, 0xb7, 0xd3, 0xcb, 0xe5, 0x38, 0x44, + 0x67, 0xef, 0xad, 0x99, 0x93, 0x5e, 0x33, 0x3f, 0x68, 0x81, 0xc9, 0x5e, 0xa1, 0xff, 0x27, 0x37, + 0x0f, 0xcd, 0x4b, 0xb9, 0xec, 0x5a, 0x43, 0x5e, 0x20, 0xef, 0x30, 0x23, 0x8d, 0xfd, 0x1f, 0x2d, + 0x78, 0xb2, 0x27, 0x45, 0xb4, 0x02, 0x25, 0xc6, 0x03, 0x6a, 0xaf, 0xb3, 0xa7, 0x94, 0xd5, 0xad, + 0x04, 0xe4, 0xb0, 0xa4, 0x71, 0x4d, 0xb4, 0x92, 0x4a, 0xf8, 0xf3, 0x74, 0x46, 0xc2, 0x9f, 0xd3, + 0xc6, 0xf0, 0x3c, 0x64, 0xc6, 0x9f, 0xef, 0xa7, 0x37, 0x8e, 0xe1, 0xf1, 0x82, 0x3e, 0x6c, 0x88, + 0xfd, 0xec, 0x84, 0xd8, 0x0f, 0x99, 0xd8, 0xda, 0x1d, 0xf2, 0x71, 0x98, 0x62, 0x11, 0x9e, 0x98, + 0x0d, 0xb8, 0xf0, 0xc5, 0x29, 0xc4, 0x76, 0x9e, 0x37, 0x13, 0x30, 0x9c, 0xc2, 0xb6, 0xff, 0xb0, + 0x08, 0x43, 0x7c, 0xfb, 0x9d, 0xc0, 0x9b, 0xf0, 0x19, 0x28, 0xb9, 0xad, 0x56, 0x87, 0xe7, 0x70, + 0x19, 0xe4, 0x0e, 0xb8, 0x74, 0x9e, 0x2a, 0xb2, 0x10, 0xc7, 0x70, 0xb4, 0x2a, 0x24, 0xce, 0x5d, + 0x82, 0x48, 0xf2, 0x8e, 0x2f, 0x94, 0x9d, 0xc8, 0xe1, 0x0c, 0x8e, 0xba, 0x67, 0x63, 0xd9, 0x34, + 0xfa, 0x0c, 0x40, 0x18, 0x05, 0xae, 0xb7, 0x4d, 0xcb, 0x44, 0xcc, 0xd4, 0x0f, 0x76, 0xa1, 0x56, + 0x53, 0xc8, 0x9c, 0x66, 0x7c, 0xe6, 0x28, 0x00, 0xd6, 0x28, 0xa2, 0x05, 0xe3, 0xa6, 0x9f, 0x4b, + 0xcc, 0x1d, 0x70, 0xaa, 0xf1, 0x9c, 0xcd, 0x7d, 0x04, 0x4a, 0x8a, 0x78, 0x2f, 0xf9, 0xd3, 0x98, + 0xce, 0x16, 0x7d, 0x0c, 0x26, 0x13, 0x7d, 0x3b, 0x92, 0xf8, 0xea, 0x17, 0x2c, 0x98, 0xe4, 0x9d, + 0x59, 0xf1, 0xf6, 0xc4, 0x6d, 0xf0, 0x36, 0x9c, 0x6a, 0x66, 0x9c, 0xca, 0x62, 0xfa, 0xfb, 0x3f, + 0xc5, 0x95, 0xb8, 0x2a, 0x0b, 0x8a, 0x33, 0xdb, 0x40, 0x97, 0xe9, 0x8e, 0xa3, 0xa7, 0xae, 0xd3, + 0x14, 0xfe, 0xb8, 0x63, 0x7c, 0xb7, 0xf1, 0x32, 0xac, 0xa0, 0xf6, 0xef, 0x58, 0x30, 0xcd, 0x7b, + 0x7e, 0x83, 0xec, 0xab, 0xb3, 0xe9, 0xeb, 0xd9, 0x77, 0x91, 0x3d, 0xac, 0x90, 0x93, 0x3d, 0x4c, + 0xff, 0xb4, 0x62, 0xd7, 0x4f, 0xfb, 0x69, 0x0b, 0xc4, 0x0a, 0x39, 0x01, 0x21, 0xc4, 0xb7, 0x9a, + 0x42, 0x88, 0xb9, 0xfc, 0x4d, 0x90, 0x23, 0x7d, 0xf8, 0x73, 0x0b, 0xa6, 0x38, 0x42, 0xac, 0x2d, + 0xff, 0xba, 0xce, 0x43, 0x3f, 0x39, 0x86, 0x6f, 0x90, 0xfd, 0x0d, 0xbf, 0xea, 0x44, 0x3b, 0xd9, + 0x1f, 0x65, 0x4c, 0xd6, 0x40, 0xd7, 0xc9, 0x6a, 0xc8, 0x0d, 0x74, 0x84, 0xc4, 0xe5, 0x47, 0x4e, + 0xae, 0x61, 0x7f, 0xcd, 0x02, 0xc4, 0x9b, 0x31, 0x18, 0x37, 0xca, 0x0e, 0xb1, 0x52, 0xed, 0xa2, + 0x8b, 0x8f, 0x26, 0x05, 0xc1, 0x1a, 0xd6, 0xb1, 0x0c, 0x4f, 0xc2, 0xe4, 0xa1, 0xd8, 0xdb, 0xe4, + 0xe1, 0x08, 0x23, 0xfa, 0xaf, 0x87, 0x20, 0xe9, 0xf5, 0x83, 0xee, 0xc0, 0x58, 0xdd, 0x69, 0x3b, + 0x9b, 0x6e, 0xd3, 0x8d, 0x5c, 0x12, 0x76, 0x33, 0xca, 0x5a, 0xd6, 0xf0, 0x84, 0x92, 0x5a, 0x2b, + 0xc1, 0x06, 0x1d, 0xb4, 0x00, 0xd0, 0x0e, 0xdc, 0x3d, 0xb7, 0x49, 0xb6, 0x99, 0xac, 0x84, 0x45, + 0x00, 0xe0, 0x96, 0x46, 0xb2, 0x14, 0x6b, 0x18, 0x19, 0x2e, 0xd6, 0xc5, 0x47, 0xec, 0x62, 0x0d, + 0x27, 0xe6, 0x62, 0x3d, 0x70, 0x24, 0x17, 0xeb, 0x91, 0x23, 0xbb, 0x58, 0x0f, 0xf6, 0xe5, 0x62, + 0x8d, 0xe1, 0x8c, 0xe4, 0x3d, 0xe9, 0xff, 0x55, 0xb7, 0x49, 0xc4, 0x83, 0x83, 0x87, 0x2d, 0x98, + 0x7b, 0x70, 0x30, 0x7f, 0x06, 0x67, 0x62, 0xe0, 0x9c, 0x9a, 0xe8, 0x13, 0x30, 0xeb, 0x34, 0x9b, + 0xfe, 0x3d, 0x35, 0xa9, 0x2b, 0x61, 0xdd, 0x69, 0x72, 0x25, 0xc4, 0x30, 0xa3, 0xfa, 0xc4, 0x83, + 0x83, 0xf9, 0xd9, 0xc5, 0x1c, 0x1c, 0x9c, 0x5b, 0x1b, 0x7d, 0x14, 0x4a, 0xed, 0xc0, 0xaf, 0xaf, + 0x69, 0xae, 0x89, 0xe7, 0xe9, 0x00, 0x56, 0x65, 0xe1, 0xe1, 0xc1, 0xfc, 0xb8, 0xfa, 0xc3, 0x2e, + 0xfc, 0xb8, 0x42, 0x86, 0xcf, 0xf4, 0xe8, 0xb1, 0xfa, 0x4c, 0xef, 0xc2, 0x4c, 0x8d, 0x04, 0x2e, + 0x4b, 0x73, 0xde, 0x88, 0xcf, 0xa7, 0x0d, 0x28, 0x05, 0x89, 0x13, 0xb9, 0xaf, 0xc0, 0x8e, 0x5a, + 0x96, 0x03, 0x79, 0x02, 0xc7, 0x84, 0xec, 0xff, 0x65, 0xc1, 0xb0, 0xf0, 0xf2, 0x39, 0x01, 0xae, + 0x71, 0xd1, 0xd0, 0x24, 0xcc, 0x67, 0x0f, 0x18, 0xeb, 0x4c, 0xae, 0x0e, 0xa1, 0x92, 0xd0, 0x21, + 0x3c, 0xd9, 0x8d, 0x48, 0x77, 0xed, 0xc1, 0x5f, 0x2b, 0x52, 0xee, 0xdd, 0xf0, 0x37, 0x7d, 0xf4, + 0x43, 0xb0, 0x0e, 0xc3, 0xa1, 0xf0, 0x77, 0x2c, 0xe4, 0x1b, 0xe8, 0x27, 0x27, 0x31, 0xb6, 0x63, + 0x13, 0x1e, 0x8e, 0x92, 0x48, 0xa6, 0x23, 0x65, 0xf1, 0x11, 0x3a, 0x52, 0xf6, 0xf2, 0xc8, 0x1d, + 0x38, 0x0e, 0x8f, 0x5c, 0xfb, 0x2b, 0xec, 0xe6, 0xd4, 0xcb, 0x4f, 0x80, 0xa9, 0xba, 0x66, 0xde, + 0xb1, 0x76, 0x97, 0x95, 0x25, 0x3a, 0x95, 0xc3, 0x5c, 0xfd, 0x9c, 0x05, 0xe7, 0x32, 0xbe, 0x4a, + 0xe3, 0xb4, 0x9e, 0x85, 0x11, 0xa7, 0xd3, 0x70, 0xd5, 0x5e, 0xd6, 0xf4, 0x89, 0x8b, 0xa2, 0x1c, + 0x2b, 0x0c, 0xb4, 0x0c, 0xd3, 0xe4, 0x7e, 0xdb, 0xe5, 0xaa, 0x54, 0xdd, 0xaa, 0xb5, 0xc8, 0x5d, + 0xc3, 0x56, 0x92, 0x40, 0x9c, 0xc6, 0x57, 0x51, 0x50, 0x8a, 0xb9, 0x51, 0x50, 0xfe, 0x9e, 0x05, + 0xa3, 0xca, 0xe3, 0xef, 0x91, 0x8f, 0xf6, 0xc7, 0xcd, 0xd1, 0x7e, 0xbc, 0xcb, 0x68, 0xe7, 0x0c, + 0xf3, 0x6f, 0x15, 0x54, 0x7f, 0xab, 0x7e, 0x10, 0xf5, 0xc1, 0xc1, 0x3d, 0xbc, 0x1d, 0xfe, 0x55, + 0x18, 0x75, 0xda, 0x6d, 0x09, 0x90, 0x36, 0x68, 0x2c, 0x4c, 0x6f, 0x5c, 0x8c, 0x75, 0x1c, 0xe5, + 0x16, 0x50, 0xcc, 0x75, 0x0b, 0x68, 0x00, 0x44, 0x4e, 0xb0, 0x4d, 0x22, 0x5a, 0x26, 0x22, 0x96, + 0xe5, 0x9f, 0x37, 0x9d, 0xc8, 0x6d, 0x2e, 0xb8, 0x5e, 0x14, 0x46, 0xc1, 0x42, 0xc5, 0x8b, 0x6e, + 0x05, 0xfc, 0x09, 0xa9, 0x85, 0x04, 0x52, 0xb4, 0xb0, 0x46, 0x57, 0x7a, 0xb7, 0xb3, 0x36, 0x06, + 0x4d, 0x63, 0x86, 0x75, 0x51, 0x8e, 0x15, 0x86, 0xfd, 0x11, 0x76, 0xfb, 0xb0, 0x31, 0x3d, 0x5a, + 0x0c, 0x9d, 0xff, 0x3a, 0xa6, 0x66, 0x83, 0x69, 0x32, 0xcb, 0x7a, 0xa4, 0x9e, 0xee, 0x87, 0x3d, + 0x6d, 0x58, 0x77, 0x52, 0x8b, 0xc3, 0xf9, 0xa0, 0x6f, 0x4b, 0x19, 0xa8, 0x3c, 0xd7, 0xe3, 0xd6, + 0x38, 0x82, 0x49, 0x0a, 0xcb, 0xd9, 0xc1, 0x32, 0x1a, 0x54, 0xaa, 0x62, 0x5f, 0x68, 0x39, 0x3b, + 0x04, 0x00, 0xc7, 0x38, 0x94, 0x99, 0x52, 0x7f, 0xc2, 0x59, 0x14, 0xc7, 0xae, 0x54, 0xd8, 0x21, + 0xd6, 0x30, 0xd0, 0x15, 0x21, 0x50, 0xe0, 0x7a, 0x81, 0xc7, 0x13, 0x02, 0x05, 0x39, 0x5c, 0x9a, + 0x14, 0xe8, 0x2a, 0x8c, 0xaa, 0xb4, 0xbd, 0x55, 0x9e, 0x0d, 0x56, 0x2c, 0xb3, 0x95, 0xb8, 0x18, + 0xeb, 0x38, 0x68, 0x03, 0x26, 0x43, 0x2e, 0x67, 0x53, 0x01, 0x85, 0xb9, 0xbc, 0xf2, 0x83, 0xd2, + 0x0a, 0xa8, 0x66, 0x82, 0x0f, 0x59, 0x11, 0x3f, 0x9d, 0xa4, 0x07, 0x7a, 0x92, 0x04, 0x7a, 0x0d, + 0x26, 0x9a, 0xbe, 0xd3, 0x58, 0x72, 0x9a, 0x8e, 0x57, 0x67, 0xe3, 0x33, 0x62, 0x66, 0x7f, 0xbc, + 0x69, 0x40, 0x71, 0x02, 0x9b, 0x32, 0x6f, 0x7a, 0x89, 0x08, 0x82, 0xed, 0x78, 0xdb, 0x24, 0x14, + 0x49, 0x58, 0x19, 0xf3, 0x76, 0x33, 0x07, 0x07, 0xe7, 0xd6, 0x46, 0x2f, 0xc3, 0x98, 0xfc, 0x7c, + 0x2d, 0x60, 0x43, 0xec, 0x61, 0xa1, 0xc1, 0xb0, 0x81, 0x89, 0xee, 0xc1, 0x69, 0xf9, 0x7f, 0x23, + 0x70, 0xb6, 0xb6, 0xdc, 0xba, 0xf0, 0x62, 0xe6, 0xae, 0x98, 0x8b, 0xd2, 0x5f, 0x70, 0x25, 0x0b, + 0xe9, 0xf0, 0x60, 0xfe, 0x82, 0x18, 0xb5, 0x4c, 0x38, 0x9b, 0xc4, 0x6c, 0xfa, 0x68, 0x0d, 0x66, + 0x76, 0x88, 0xd3, 0x8c, 0x76, 0x96, 0x77, 0x48, 0x7d, 0x57, 0x6e, 0x3a, 0x16, 0x06, 0x42, 0xf3, + 0x4b, 0xb8, 0x9e, 0x46, 0xc1, 0x59, 0xf5, 0xd0, 0x9b, 0x30, 0xdb, 0xee, 0x6c, 0x36, 0xdd, 0x70, + 0x67, 0xdd, 0x8f, 0x98, 0x29, 0x90, 0xca, 0x02, 0x2c, 0xe2, 0x45, 0xa8, 0x40, 0x1b, 0xd5, 0x1c, + 0x3c, 0x9c, 0x4b, 0x01, 0xbd, 0x0d, 0xa7, 0x13, 0x8b, 0x41, 0x78, 0xcc, 0x4f, 0xe4, 0xa7, 0x14, + 0xa8, 0x65, 0x55, 0x10, 0xc1, 0x27, 0xb2, 0x40, 0x38, 0xbb, 0x09, 0xfa, 0xf8, 0xd0, 0x62, 0xb8, + 0x86, 0xb3, 0x53, 0xb1, 0xcd, 0xb2, 0x16, 0xe8, 0x35, 0xc4, 0x06, 0x16, 0x7a, 0x05, 0xc0, 0x6d, + 0xaf, 0x3a, 0x2d, 0xb7, 0x49, 0x1f, 0x99, 0x33, 0xac, 0x0e, 0x7d, 0x70, 0x40, 0xa5, 0x2a, 0x4b, + 0xe9, 0xa9, 0x2e, 0xfe, 0xed, 0x63, 0x0d, 0x1b, 0x55, 0x61, 0x42, 0xfc, 0xdb, 0x17, 0x8b, 0x61, + 0x5a, 0xb9, 0xb4, 0x4f, 0xc8, 0x1a, 0x6a, 0x05, 0x20, 0xb3, 0x84, 0xcd, 0x79, 0xa2, 0x3e, 0xda, + 0x86, 0x73, 0x22, 0xcd, 0x34, 0xd1, 0x57, 0xb7, 0x9c, 0xbd, 0x90, 0x65, 0x00, 0x18, 0xe1, 0xce, + 0x12, 0x8b, 0xdd, 0x10, 0x71, 0x77, 0x3a, 0x94, 0x2b, 0xd0, 0x37, 0x09, 0x77, 0x22, 0x3d, 0xcd, + 0x8d, 0x9a, 0x28, 0x57, 0x70, 0x33, 0x09, 0xc4, 0x69, 0x7c, 0x14, 0xc2, 0x69, 0xd7, 0xcb, 0xda, + 0x13, 0x67, 0x18, 0xa1, 0x8f, 0x71, 0xff, 0xd9, 0xee, 0xfb, 0x21, 0x13, 0xce, 0xf7, 0x43, 0x26, + 0xed, 0x77, 0x66, 0xbb, 0xf7, 0xdb, 0x16, 0xad, 0xad, 0xf1, 0xf7, 0xe8, 0xb3, 0x30, 0xa6, 0x7f, + 0x98, 0xe0, 0x55, 0x2e, 0x65, 0xb3, 0xbf, 0xda, 0xa9, 0xc2, 0x5f, 0x07, 0xea, 0xe4, 0xd0, 0x61, + 0xd8, 0xa0, 0x88, 0xea, 0x19, 0x9e, 0xe6, 0x57, 0xfa, 0xe3, 0x85, 0xfa, 0x37, 0x5d, 0x23, 0x90, + 0xbd, 0x59, 0xd0, 0x4d, 0x18, 0xa9, 0x37, 0x5d, 0xe2, 0x45, 0x95, 0x6a, 0xb7, 0xd8, 0x70, 0xcb, + 0x02, 0x47, 0xec, 0x3e, 0x11, 0xd0, 0x9f, 0x97, 0x61, 0x45, 0xc1, 0xfe, 0xd5, 0x02, 0xcc, 0xf7, + 0xc8, 0x0e, 0x91, 0x50, 0x64, 0x59, 0x7d, 0x29, 0xb2, 0x16, 0x65, 0x82, 0xec, 0xf5, 0x84, 0x8c, + 0x2c, 0x91, 0xfc, 0x3a, 0x96, 0x94, 0x25, 0xf1, 0xfb, 0x76, 0x2c, 0xd0, 0x75, 0x61, 0x03, 0x3d, + 0x5d, 0x63, 0x0c, 0x1d, 0xf8, 0x60, 0xff, 0x0f, 0xe7, 0x5c, 0x7d, 0xa6, 0xfd, 0x95, 0x02, 0x9c, + 0x56, 0x43, 0xf8, 0xcd, 0x3b, 0x70, 0xb7, 0xd3, 0x03, 0x77, 0x0c, 0xda, 0x60, 0xfb, 0x16, 0x0c, + 0xf1, 0x60, 0x77, 0x7d, 0x30, 0xec, 0x17, 0xcd, 0xb8, 0xb0, 0x8a, 0x47, 0x34, 0x62, 0xc3, 0x7e, + 0xaf, 0x05, 0x93, 0x1b, 0xcb, 0xd5, 0x9a, 0x5f, 0xdf, 0x25, 0xd1, 0x22, 0x7f, 0x60, 0x61, 0xcd, + 0x27, 0xf7, 0x61, 0x98, 0xea, 0x2c, 0x76, 0xfd, 0x02, 0x0c, 0xec, 0xf8, 0x61, 0x94, 0x34, 0x15, + 0xb9, 0xee, 0x87, 0x11, 0x66, 0x10, 0xfb, 0x77, 0x2d, 0x18, 0xdc, 0x70, 0x5c, 0x2f, 0x92, 0x6a, + 0x05, 0x2b, 0x47, 0xad, 0xd0, 0xcf, 0x77, 0xa1, 0x97, 0x60, 0x88, 0x6c, 0x6d, 0x91, 0x7a, 0x24, + 0x66, 0x55, 0x06, 0x34, 0x18, 0x5a, 0x61, 0xa5, 0x94, 0x83, 0x64, 0x8d, 0xf1, 0xbf, 0x58, 0x20, + 0xa3, 0xbb, 0x50, 0x8a, 0xdc, 0x16, 0x59, 0x6c, 0x34, 0x84, 0xb2, 0xfd, 0x21, 0x82, 0x32, 0x6c, + 0x48, 0x02, 0x38, 0xa6, 0x65, 0x7f, 0xa9, 0x00, 0x10, 0x47, 0x09, 0xea, 0xf5, 0x89, 0x4b, 0x29, + 0x35, 0xec, 0xa5, 0x0c, 0x35, 0x2c, 0x8a, 0x09, 0x66, 0xe8, 0x60, 0xd5, 0x30, 0x15, 0xfb, 0x1a, + 0xa6, 0x81, 0xa3, 0x0c, 0xd3, 0x32, 0x4c, 0xc7, 0x51, 0x8e, 0xcc, 0x20, 0x6f, 0xec, 0xfa, 0xdc, + 0x48, 0x02, 0x71, 0x1a, 0xdf, 0x26, 0x70, 0x41, 0x05, 0x7b, 0x11, 0x37, 0x1a, 0xb3, 0xe5, 0xd6, + 0xd5, 0xda, 0x3d, 0xc6, 0x29, 0xd6, 0x33, 0x17, 0x72, 0xf5, 0xcc, 0x3f, 0x61, 0xc1, 0xa9, 0x64, + 0x3b, 0xcc, 0x8b, 0xf7, 0x8b, 0x16, 0x9c, 0x66, 0xda, 0x76, 0xd6, 0x6a, 0x5a, 0xb7, 0xff, 0x62, + 0xd7, 0x00, 0x36, 0x39, 0x3d, 0x8e, 0x23, 0x67, 0xac, 0x65, 0x91, 0xc6, 0xd9, 0x2d, 0xda, 0xff, + 0xa1, 0x00, 0xb3, 0x79, 0x91, 0x6f, 0x98, 0xab, 0x87, 0x73, 0xbf, 0xb6, 0x4b, 0xee, 0x09, 0x83, + 0xfa, 0xd8, 0xd5, 0x83, 0x17, 0x63, 0x09, 0x4f, 0x06, 0xfc, 0x2f, 0xf4, 0x19, 0xf0, 0x7f, 0x07, + 0xa6, 0xef, 0xed, 0x10, 0xef, 0xb6, 0x17, 0x3a, 0x91, 0x1b, 0x6e, 0xb9, 0x4c, 0x33, 0xcd, 0xd7, + 0xcd, 0x2b, 0xd2, 0xec, 0xfd, 0x6e, 0x12, 0xe1, 0xf0, 0x60, 0xfe, 0x9c, 0x51, 0x10, 0x77, 0x99, + 0x1f, 0x24, 0x38, 0x4d, 0x34, 0x9d, 0x2f, 0x61, 0xe0, 0x11, 0xe6, 0x4b, 0xb0, 0xbf, 0x68, 0xc1, + 0xd9, 0xdc, 0x24, 0xad, 0xe8, 0x32, 0x8c, 0x38, 0x6d, 0x97, 0x0b, 0xf7, 0xc5, 0x31, 0xca, 0x84, + 0x48, 0xd5, 0x0a, 0x17, 0xed, 0x2b, 0xa8, 0x4a, 0x1e, 0x5f, 0xc8, 0x4d, 0x1e, 0xdf, 0x33, 0x17, + 0xbc, 0xfd, 0x3d, 0x16, 0x08, 0x37, 0xd5, 0x3e, 0xce, 0xee, 0x4f, 0xc1, 0xd8, 0x5e, 0x3a, 0xa7, + 0xd2, 0x85, 0x7c, 0xbf, 0x5d, 0x91, 0x49, 0x49, 0x31, 0x64, 0x46, 0xfe, 0x24, 0x83, 0x96, 0xdd, + 0x00, 0x01, 0x2d, 0x13, 0x26, 0xba, 0xee, 0xdd, 0x9b, 0xe7, 0x01, 0x1a, 0x0c, 0x57, 0xcb, 0xc0, + 0xaf, 0x6e, 0xe6, 0xb2, 0x82, 0x60, 0x0d, 0xcb, 0xfe, 0xb7, 0x05, 0x18, 0x95, 0x39, 0x7c, 0x3a, + 0x5e, 0x3f, 0x02, 0xa6, 0x23, 0x25, 0xf5, 0x44, 0x57, 0xa0, 0xc4, 0x24, 0xa0, 0xd5, 0x58, 0x2e, + 0xa7, 0xe4, 0x0f, 0x6b, 0x12, 0x80, 0x63, 0x1c, 0xba, 0x8b, 0xc2, 0xce, 0x26, 0x43, 0x4f, 0x38, + 0x55, 0xd6, 0x78, 0x31, 0x96, 0x70, 0xf4, 0x09, 0x98, 0xe2, 0xf5, 0x02, 0xbf, 0xed, 0x6c, 0x73, + 0xad, 0xc9, 0xa0, 0x0a, 0xbb, 0x30, 0xb5, 0x96, 0x80, 0x1d, 0x1e, 0xcc, 0x9f, 0x4a, 0x96, 0x31, + 0x75, 0x60, 0x8a, 0x0a, 0x33, 0x8e, 0xe2, 0x8d, 0xd0, 0xdd, 0x9f, 0xb2, 0xa9, 0x8a, 0x41, 0x58, + 0xc7, 0xb3, 0x3f, 0x0b, 0x28, 0x9d, 0xcd, 0x08, 0xbd, 0xce, 0x2d, 0x62, 0xdd, 0x80, 0x34, 0xba, + 0xa9, 0x07, 0xf5, 0xe0, 0x02, 0xd2, 0x1f, 0x8a, 0xd7, 0xc2, 0xaa, 0xbe, 0xfd, 0xff, 0x17, 0x61, + 0x2a, 0xe9, 0x01, 0x8e, 0xae, 0xc3, 0x10, 0x67, 0x3d, 0x04, 0xf9, 0x2e, 0xd6, 0x27, 0x9a, 0xdf, + 0x38, 0x3b, 0x84, 0x05, 0xf7, 0x22, 0xea, 0xa3, 0x37, 0x61, 0xb4, 0xe1, 0xdf, 0xf3, 0xee, 0x39, + 0x41, 0x63, 0xb1, 0x5a, 0x11, 0xcb, 0x39, 0xf3, 0x39, 0x5c, 0x8e, 0xd1, 0x74, 0x5f, 0x74, 0xa6, + 0x69, 0x8d, 0x41, 0x58, 0x27, 0x87, 0x36, 0x58, 0x08, 0xf4, 0x2d, 0x77, 0x7b, 0xcd, 0x69, 0x77, + 0x73, 0x8f, 0x58, 0x96, 0x48, 0x1a, 0xe5, 0x71, 0x11, 0x27, 0x9d, 0x03, 0x70, 0x4c, 0x08, 0x7d, + 0x1e, 0x66, 0xc2, 0x1c, 0x21, 0x7d, 0x5e, 0x72, 0xbb, 0x6e, 0x72, 0xeb, 0xa5, 0xc7, 0x1e, 0x1c, + 0xcc, 0xcf, 0x64, 0x89, 0xf3, 0xb3, 0x9a, 0xb1, 0x7f, 0xe4, 0x14, 0x18, 0x9b, 0xd8, 0xc8, 0x75, + 0x6a, 0x1d, 0x53, 0xae, 0x53, 0x0c, 0x23, 0xa4, 0xd5, 0x8e, 0xf6, 0xcb, 0x6e, 0xd0, 0x2d, 0x03, + 0xf8, 0x8a, 0xc0, 0x49, 0xd3, 0x94, 0x10, 0xac, 0xe8, 0x64, 0x27, 0xa4, 0x2d, 0x7e, 0x1d, 0x13, + 0xd2, 0x0e, 0x9c, 0x60, 0x42, 0xda, 0x75, 0x18, 0xde, 0x76, 0x23, 0x4c, 0xda, 0xbe, 0x60, 0xfa, + 0x33, 0xd7, 0xe1, 0x35, 0x8e, 0x92, 0x4e, 0x7d, 0x28, 0x00, 0x58, 0x12, 0x41, 0xaf, 0xab, 0x1d, + 0x38, 0x94, 0xff, 0x30, 0x4f, 0x9b, 0x49, 0x64, 0xee, 0x41, 0x91, 0x76, 0x76, 0xf8, 0x61, 0xd3, + 0xce, 0xae, 0xca, 0x64, 0xb1, 0x23, 0xf9, 0xbe, 0x4c, 0x2c, 0x17, 0x6c, 0x8f, 0x14, 0xb1, 0x77, + 0xf4, 0x04, 0xbb, 0xa5, 0xfc, 0x93, 0x40, 0xe5, 0xce, 0xed, 0x33, 0xad, 0xee, 0xf7, 0x58, 0x70, + 0xba, 0x9d, 0x95, 0x6b, 0x5a, 0x58, 0x14, 0xbc, 0xd4, 0x77, 0x3a, 0x6b, 0xa3, 0x41, 0x26, 0x89, + 0xcb, 0x44, 0xc3, 0xd9, 0xcd, 0xd1, 0x81, 0x0e, 0x36, 0x1b, 0x42, 0xb3, 0x7d, 0x31, 0x27, 0x3f, + 0x6f, 0x97, 0xac, 0xbc, 0x1b, 0x19, 0xb9, 0x60, 0xdf, 0x9f, 0x97, 0x0b, 0xb6, 0xef, 0x0c, 0xb0, + 0xaf, 0xab, 0xcc, 0xbc, 0xe3, 0xf9, 0x4b, 0x89, 0xe7, 0xdd, 0xed, 0x99, 0x8f, 0xf7, 0x75, 0x95, + 0x8f, 0xb7, 0x4b, 0x7c, 0x5b, 0x9e, 0x6d, 0xb7, 0x67, 0x16, 0x5e, 0x2d, 0x93, 0xee, 0xe4, 0xf1, + 0x64, 0xd2, 0x35, 0xae, 0x1a, 0x9e, 0xcc, 0xf5, 0x99, 0x1e, 0x57, 0x8d, 0x41, 0xb7, 0xfb, 0x65, + 0xc3, 0xb3, 0x06, 0x4f, 0x3f, 0x54, 0xd6, 0xe0, 0x3b, 0x7a, 0x16, 0x5e, 0xd4, 0x23, 0xcd, 0x2c, + 0x45, 0xea, 0x33, 0xf7, 0xee, 0x1d, 0xfd, 0x02, 0x9c, 0xc9, 0xa7, 0xab, 0xee, 0xb9, 0x34, 0xdd, + 0xcc, 0x2b, 0x30, 0x95, 0xd3, 0xf7, 0xd4, 0xc9, 0xe4, 0xf4, 0x3d, 0x7d, 0xec, 0x39, 0x7d, 0xcf, + 0x9c, 0x40, 0x4e, 0xdf, 0xc7, 0x4e, 0x30, 0xa7, 0xef, 0x1d, 0x66, 0x86, 0xc3, 0x83, 0xfd, 0x88, + 0x78, 0xbc, 0xd9, 0xb1, 0x5f, 0xb3, 0x22, 0x02, 0xf1, 0x8f, 0x53, 0x20, 0x1c, 0x93, 0xca, 0xc8, + 0x15, 0x3c, 0xfb, 0x08, 0x72, 0x05, 0xaf, 0xc7, 0xb9, 0x82, 0xcf, 0xe6, 0x4f, 0x75, 0x86, 0xe3, + 0x46, 0x4e, 0x86, 0xe0, 0x3b, 0x7a, 0x66, 0xdf, 0xc7, 0xbb, 0xe8, 0x5a, 0xb2, 0x04, 0x8f, 0x5d, + 0xf2, 0xf9, 0xbe, 0xc6, 0xf3, 0xf9, 0x3e, 0x91, 0x7f, 0x92, 0x27, 0xaf, 0x3b, 0x23, 0x8b, 0x2f, + 0xed, 0x97, 0x8a, 0xfc, 0xc8, 0x22, 0x0f, 0xe7, 0xf4, 0x4b, 0x85, 0x8e, 0x4c, 0xf7, 0x4b, 0x81, + 0x70, 0x4c, 0xca, 0xfe, 0xbe, 0x02, 0x9c, 0xef, 0xbe, 0xdf, 0x62, 0x69, 0x6a, 0x35, 0x56, 0x3d, + 0x27, 0xa4, 0xa9, 0xfc, 0xcd, 0x16, 0x63, 0xf5, 0x1d, 0xc8, 0xee, 0x1a, 0x4c, 0x2b, 0x8f, 0x8f, + 0xa6, 0x5b, 0xdf, 0x5f, 0x8f, 0x5f, 0xbe, 0xca, 0x4b, 0xbe, 0x96, 0x44, 0xc0, 0xe9, 0x3a, 0x68, + 0x11, 0x26, 0x8d, 0xc2, 0x4a, 0x59, 0xbc, 0xcd, 0x94, 0xf8, 0xb6, 0x66, 0x82, 0x71, 0x12, 0xdf, + 0xfe, 0xb2, 0x05, 0x8f, 0xe5, 0x24, 0xc3, 0xeb, 0x3b, 0x4e, 0xdb, 0x16, 0x4c, 0xb6, 0xcd, 0xaa, + 0x3d, 0x42, 0x4b, 0x1a, 0x29, 0xf7, 0x54, 0x5f, 0x13, 0x00, 0x9c, 0x24, 0x6a, 0xff, 0x99, 0x05, + 0xe7, 0xba, 0x9a, 0x30, 0x22, 0x0c, 0x67, 0xb6, 0x5b, 0xa1, 0xb3, 0x1c, 0x90, 0x06, 0xf1, 0x22, + 0xd7, 0x69, 0xd6, 0xda, 0xa4, 0xae, 0xc9, 0xc3, 0x99, 0x2d, 0xe0, 0xb5, 0xb5, 0xda, 0x62, 0x1a, + 0x03, 0xe7, 0xd4, 0x44, 0xab, 0x80, 0xd2, 0x10, 0x31, 0xc3, 0x2c, 0x86, 0x75, 0x9a, 0x1e, 0xce, + 0xa8, 0x81, 0x3e, 0x02, 0xe3, 0xca, 0x34, 0x52, 0x9b, 0x71, 0x76, 0xb0, 0x63, 0x1d, 0x80, 0x4d, + 0xbc, 0xa5, 0xcb, 0xbf, 0xfe, 0xfb, 0xe7, 0xdf, 0xf7, 0x9b, 0xbf, 0x7f, 0xfe, 0x7d, 0xbf, 0xf3, + 0xfb, 0xe7, 0xdf, 0xf7, 0x1d, 0x0f, 0xce, 0x5b, 0xbf, 0xfe, 0xe0, 0xbc, 0xf5, 0x9b, 0x0f, 0xce, + 0x5b, 0xbf, 0xf3, 0xe0, 0xbc, 0xf5, 0x7b, 0x0f, 0xce, 0x5b, 0x5f, 0xfa, 0x83, 0xf3, 0xef, 0xfb, + 0x54, 0x61, 0xef, 0xea, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xd2, 0x6a, 0x19, 0xeb, 0xbc, 0x04, + 0x01, 0x00, } func (m *AWSElasticBlockStoreVolumeSource) Marshal() (dAtA []byte, err error) { @@ -9985,14 +9990,6 @@ func (m *EphemeralVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - i-- - if m.ReadOnly { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 if m.VolumeClaimTemplate != nil { { size, err := m.VolumeClaimTemplate.MarshalToSizedBuffer(dAtA[:i]) @@ -14121,6 +14118,18 @@ func (m *PodAffinityTerm) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.NamespaceSelector != nil { + { + size, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } i -= len(m.TopologyKey) copy(dAtA[i:], m.TopologyKey) i = encodeVarintGenerated(dAtA, i, uint64(len(m.TopologyKey))) @@ -15828,6 +15837,11 @@ func (m *Probe) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.TerminationGracePeriodSeconds != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.TerminationGracePeriodSeconds)) + i-- + dAtA[i] = 0x38 + } i = encodeVarintGenerated(dAtA, i, uint64(m.FailureThreshold)) i-- dAtA[i] = 0x30 @@ -18036,6 +18050,24 @@ func (m *ServiceSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.InternalTrafficPolicy != nil { + i -= len(*m.InternalTrafficPolicy) + copy(dAtA[i:], *m.InternalTrafficPolicy) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.InternalTrafficPolicy))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } + if m.LoadBalancerClass != nil { + i -= len(*m.LoadBalancerClass) + copy(dAtA[i:], *m.LoadBalancerClass) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.LoadBalancerClass))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + } if m.AllocateLoadBalancerNodePorts != nil { i-- if *m.AllocateLoadBalancerNodePorts { @@ -20603,7 +20635,6 @@ func (m *EphemeralVolumeSource) Size() (n int) { l = m.VolumeClaimTemplate.Size() n += 1 + l + sovGenerated(uint64(l)) } - n += 2 return n } @@ -22111,6 +22142,10 @@ func (m *PodAffinityTerm) Size() (n int) { } l = len(m.TopologyKey) n += 1 + l + sovGenerated(uint64(l)) + if m.NamespaceSelector != nil { + l = m.NamespaceSelector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -22727,6 +22762,9 @@ func (m *Probe) Size() (n int) { n += 1 + sovGenerated(uint64(m.PeriodSeconds)) n += 1 + sovGenerated(uint64(m.SuccessThreshold)) n += 1 + sovGenerated(uint64(m.FailureThreshold)) + if m.TerminationGracePeriodSeconds != nil { + n += 1 + sovGenerated(uint64(*m.TerminationGracePeriodSeconds)) + } return n } @@ -23589,6 +23627,14 @@ func (m *ServiceSpec) Size() (n int) { if m.AllocateLoadBalancerNodePorts != nil { n += 3 } + if m.LoadBalancerClass != nil { + l = len(*m.LoadBalancerClass) + n += 2 + l + sovGenerated(uint64(l)) + } + if m.InternalTrafficPolicy != nil { + l = len(*m.InternalTrafficPolicy) + n += 2 + l + sovGenerated(uint64(l)) + } return n } @@ -24882,7 +24928,6 @@ func (this *EphemeralVolumeSource) String() string { } s := strings.Join([]string{`&EphemeralVolumeSource{`, `VolumeClaimTemplate:` + strings.Replace(this.VolumeClaimTemplate.String(), "PersistentVolumeClaimTemplate", "PersistentVolumeClaimTemplate", 1) + `,`, - `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, `}`, }, "") return s @@ -26033,6 +26078,7 @@ func (this *PodAffinityTerm) String() string { `LabelSelector:` + strings.Replace(fmt.Sprintf("%v", this.LabelSelector), "LabelSelector", "v1.LabelSelector", 1) + `,`, `Namespaces:` + fmt.Sprintf("%v", this.Namespaces) + `,`, `TopologyKey:` + fmt.Sprintf("%v", this.TopologyKey) + `,`, + `NamespaceSelector:` + strings.Replace(fmt.Sprintf("%v", this.NamespaceSelector), "LabelSelector", "v1.LabelSelector", 1) + `,`, `}`, }, "") return s @@ -26512,6 +26558,7 @@ func (this *Probe) String() string { `PeriodSeconds:` + fmt.Sprintf("%v", this.PeriodSeconds) + `,`, `SuccessThreshold:` + fmt.Sprintf("%v", this.SuccessThreshold) + `,`, `FailureThreshold:` + fmt.Sprintf("%v", this.FailureThreshold) + `,`, + `TerminationGracePeriodSeconds:` + valueToStringGenerated(this.TerminationGracePeriodSeconds) + `,`, `}`, }, "") return s @@ -27182,6 +27229,8 @@ func (this *ServiceSpec) String() string { `ClusterIPs:` + fmt.Sprintf("%v", this.ClusterIPs) + `,`, `IPFamilies:` + fmt.Sprintf("%v", this.IPFamilies) + `,`, `AllocateLoadBalancerNodePorts:` + valueToStringGenerated(this.AllocateLoadBalancerNodePorts) + `,`, + `LoadBalancerClass:` + valueToStringGenerated(this.LoadBalancerClass) + `,`, + `InternalTrafficPolicy:` + valueToStringGenerated(this.InternalTrafficPolicy) + `,`, `}`, }, "") return s @@ -27620,10 +27669,7 @@ func (m *AWSElasticBlockStoreVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -27781,10 +27827,7 @@ func (m *Affinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -27898,10 +27941,7 @@ func (m *AttachedVolume) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -27985,10 +28025,7 @@ func (m *AvoidPods) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28222,10 +28259,7 @@ func (m *AzureDiskVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28392,10 +28426,7 @@ func (m *AzureFilePersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28529,10 +28560,7 @@ func (m *AzureFileVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28648,10 +28676,7 @@ func (m *Binding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28927,7 +28952,7 @@ func (m *CSIPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -29088,10 +29113,7 @@ func (m *CSIPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -29337,7 +29359,7 @@ func (m *CSIVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -29390,10 +29412,7 @@ func (m *CSIVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -29507,10 +29526,7 @@ func (m *Capabilities) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -29744,10 +29760,7 @@ func (m *CephFSPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -29981,10 +29994,7 @@ func (m *CephFSVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30154,10 +30164,7 @@ func (m *CinderPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30327,10 +30334,7 @@ func (m *CinderVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30400,10 +30404,7 @@ func (m *ClientIPConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30581,10 +30582,7 @@ func (m *ComponentCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30701,10 +30699,7 @@ func (m *ComponentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30821,10 +30816,7 @@ func (m *ComponentStatusList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31017,7 +31009,7 @@ func (m *ConfigMap) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -31145,7 +31137,7 @@ func (m *ConfigMap) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -31183,10 +31175,7 @@ func (m *ConfigMap) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31290,10 +31279,7 @@ func (m *ConfigMapEnvSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31429,10 +31415,7 @@ func (m *ConfigMapKeySelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31549,10 +31532,7 @@ func (m *ConfigMapList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31762,10 +31742,7 @@ func (m *ConfigMapNodeConfigSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31903,10 +31880,7 @@ func (m *ConfigMapProjection) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -32064,10 +32038,7 @@ func (m *ConfigMapVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -32816,10 +32787,7 @@ func (m *Container) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -32920,10 +32888,7 @@ func (m *ContainerImage) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33107,10 +33072,7 @@ func (m *ContainerPort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33268,10 +33230,7 @@ func (m *ContainerState) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33354,10 +33313,7 @@ func (m *ContainerStateRunning) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33607,10 +33563,7 @@ func (m *ContainerStateTerminated) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33724,10 +33677,7 @@ func (m *ContainerStateWaiting) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34031,10 +33981,7 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34103,10 +34050,7 @@ func (m *DaemonEndpoint) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34190,10 +34134,7 @@ func (m *DownwardAPIProjection) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34367,10 +34308,7 @@ func (m *DownwardAPIVolumeFile) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34474,10 +34412,7 @@ func (m *DownwardAPIVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34595,10 +34530,7 @@ func (m *EmptyDirVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34781,10 +34713,7 @@ func (m *EndpointAddress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34950,10 +34879,7 @@ func (m *EndpointPort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35105,10 +35031,7 @@ func (m *EndpointSubset) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35225,10 +35148,7 @@ func (m *Endpoints) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35345,10 +35265,7 @@ func (m *EndpointsList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35502,10 +35419,7 @@ func (m *EnvFromSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35655,10 +35569,7 @@ func (m *EnvVar) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35852,10 +35763,7 @@ func (m *EnvVarSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35970,10 +35878,7 @@ func (m *EphemeralContainer) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -36722,10 +36627,7 @@ func (m *EphemeralContainerCommon) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -36842,10 +36744,7 @@ func (m *EphemeralContainers) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -36925,36 +36824,13 @@ func (m *EphemeralVolumeSource) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ReadOnly", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ReadOnly = bool(v != 0) default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -37485,10 +37361,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -37605,10 +37478,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -37710,10 +37580,7 @@ func (m *EventSeries) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -37827,10 +37694,7 @@ func (m *EventSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -37912,10 +37776,7 @@ func (m *ExecAction) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -38101,10 +37962,7 @@ func (m *FCVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -38384,7 +38242,7 @@ func (m *FlexPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -38401,10 +38259,7 @@ func (m *FlexPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -38684,7 +38539,7 @@ func (m *FlexVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -38701,10 +38556,7 @@ func (m *FlexVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -38818,10 +38670,7 @@ func (m *FlockerVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -38974,10 +38823,7 @@ func (m *GCEPersistentDiskVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39123,10 +38969,7 @@ func (m *GitRepoVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39293,10 +39136,7 @@ func (m *GlusterfsPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39430,10 +39270,7 @@ func (m *GlusterfsVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39646,10 +39483,7 @@ func (m *HTTPGetAction) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39763,10 +39597,7 @@ func (m *HTTPHeader) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39924,10 +39755,7 @@ func (m *Handler) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -40041,10 +39869,7 @@ func (m *HostAlias) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -40159,10 +39984,7 @@ func (m *HostPathVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -40520,10 +40342,7 @@ func (m *ISCSIPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -40881,10 +40700,7 @@ func (m *ISCSIVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -41018,10 +40834,7 @@ func (m *KeyToPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -41143,10 +40956,7 @@ func (m *Lifecycle) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -41262,10 +41072,7 @@ func (m *LimitRange) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -41459,7 +41266,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -41588,7 +41395,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -41717,7 +41524,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -41846,7 +41653,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -41975,7 +41782,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -41992,10 +41799,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42112,10 +41916,7 @@ func (m *LimitRangeList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42199,10 +42000,7 @@ func (m *LimitRangeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42319,10 +42117,7 @@ func (m *List) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42470,10 +42265,7 @@ func (m *LoadBalancerIngress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42557,10 +42349,7 @@ func (m *LoadBalancerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42642,10 +42431,7 @@ func (m *LocalObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42760,10 +42546,7 @@ func (m *LocalVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42897,10 +42680,7 @@ func (m *NFSVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43049,10 +42829,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43263,10 +43040,7 @@ func (m *NamespaceCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43383,10 +43157,7 @@ func (m *NamespaceList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43468,10 +43239,7 @@ func (m *NamespaceSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43587,10 +43355,7 @@ func (m *NamespaceStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43739,10 +43504,7 @@ func (m *Node) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43856,10 +43618,7 @@ func (m *NodeAddress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43979,10 +43738,7 @@ func (m *NodeAffinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44226,10 +43982,7 @@ func (m *NodeCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44315,10 +44068,7 @@ func (m *NodeConfigSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44508,10 +44258,7 @@ func (m *NodeConfigStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44594,10 +44341,7 @@ func (m *NodeDaemonEndpoints) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44714,10 +44458,7 @@ func (m *NodeList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44799,10 +44540,7 @@ func (m *NodeProxyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44964,7 +44702,7 @@ func (m *NodeResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -44981,10 +44719,7 @@ func (m *NodeResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -45068,10 +44803,7 @@ func (m *NodeSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -45217,10 +44949,7 @@ func (m *NodeSelectorRequirement) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -45338,10 +45067,7 @@ func (m *NodeSelectorTerm) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -45609,10 +45335,7 @@ func (m *NodeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -45774,7 +45497,7 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -45903,7 +45626,7 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -46222,10 +45945,7 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -46595,10 +46315,7 @@ func (m *NodeSystemInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -46712,10 +46429,7 @@ func (m *ObjectFieldSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -46989,10 +46703,7 @@ func (m *ObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -47141,10 +46852,7 @@ func (m *PersistentVolume) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -47293,10 +47001,7 @@ func (m *PersistentVolumeClaim) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -47540,10 +47245,7 @@ func (m *PersistentVolumeClaimCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -47660,10 +47362,7 @@ func (m *PersistentVolumeClaimList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -47948,10 +47647,7 @@ func (m *PersistentVolumeClaimSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -48177,7 +47873,7 @@ func (m *PersistentVolumeClaimStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -48228,10 +47924,7 @@ func (m *PersistentVolumeClaimStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -48347,10 +48040,7 @@ func (m *PersistentVolumeClaimTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -48452,10 +48142,7 @@ func (m *PersistentVolumeClaimVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -48572,10 +48259,7 @@ func (m *PersistentVolumeList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -49417,10 +49101,7 @@ func (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -49582,7 +49263,7 @@ func (m *PersistentVolumeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -49865,10 +49546,7 @@ func (m *PersistentVolumeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50014,10 +49692,7 @@ func (m *PersistentVolumeStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50131,10 +49806,7 @@ func (m *PhotonPersistentDiskVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50283,10 +49955,7 @@ func (m *Pod) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50404,10 +50073,7 @@ func (m *PodAffinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50551,16 +50217,49 @@ func (m *PodAffinityTerm) Unmarshal(dAtA []byte) error { } m.TopologyKey = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NamespaceSelector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NamespaceSelector == nil { + m.NamespaceSelector = &v1.LabelSelector{} + } + if err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50678,10 +50377,7 @@ func (m *PodAntiAffinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50843,10 +50539,7 @@ func (m *PodAttachOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51090,10 +50783,7 @@ func (m *PodCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51241,10 +50931,7 @@ func (m *PodDNSConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51359,10 +51046,7 @@ func (m *PodDNSConfigOption) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51556,10 +51240,7 @@ func (m *PodExecOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51641,10 +51322,7 @@ func (m *PodIP) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51761,10 +51439,7 @@ func (m *PodList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -52022,10 +51697,7 @@ func (m *PodLogOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -52151,10 +51823,7 @@ func (m *PodPortForwardOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -52236,10 +51905,7 @@ func (m *PodProxyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -52321,10 +51987,7 @@ func (m *PodReadinessGate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -52706,10 +52369,7 @@ func (m *PodSecurityContext) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -52795,10 +52455,7 @@ func (m *PodSignature) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -53130,7 +52787,7 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -53970,7 +53627,7 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -54076,10 +53733,7 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -54559,10 +54213,7 @@ func (m *PodStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -54678,10 +54329,7 @@ func (m *PodStatusResult) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -54797,10 +54445,7 @@ func (m *PodTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -54917,10 +54562,7 @@ func (m *PodTemplateList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55036,10 +54678,7 @@ func (m *PodTemplateSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55173,10 +54812,7 @@ func (m *PortStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55310,10 +54946,7 @@ func (m *PortworxVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55396,10 +55029,7 @@ func (m *Preconditions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55579,10 +55209,7 @@ func (m *PreferAvoidPodsEntry) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55684,10 +55311,7 @@ func (m *PreferredSchedulingTerm) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55859,16 +55483,33 @@ func (m *Probe) Unmarshal(dAtA []byte) error { break } } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TerminationGracePeriodSeconds", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.TerminationGracePeriodSeconds = &v default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55972,10 +55613,7 @@ func (m *ProjectedVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -56205,10 +55843,7 @@ func (m *QuobyteVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -56506,10 +56141,7 @@ func (m *RBDPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -56807,10 +56439,7 @@ func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -56959,10 +56588,7 @@ func (m *RangeAllocation) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -57111,10 +56737,7 @@ func (m *ReplicationController) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -57325,10 +56948,7 @@ func (m *ReplicationControllerCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -57445,10 +57065,7 @@ func (m *ReplicationControllerList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -57628,7 +57245,7 @@ func (m *ReplicationControllerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -57700,10 +57317,7 @@ func (m *ReplicationControllerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -57882,10 +57496,7 @@ func (m *ReplicationControllerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -58032,10 +57643,7 @@ func (m *ResourceFieldSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -58184,10 +57792,7 @@ func (m *ResourceQuota) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -58304,10 +57909,7 @@ func (m *ResourceQuotaList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -58469,7 +58071,7 @@ func (m *ResourceQuotaSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -58554,10 +58156,7 @@ func (m *ResourceQuotaSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -58719,7 +58318,7 @@ func (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -58848,7 +58447,7 @@ func (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -58865,10 +58464,7 @@ func (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -59030,7 +58626,7 @@ func (m *ResourceRequirements) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -59159,7 +58755,7 @@ func (m *ResourceRequirements) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -59176,10 +58772,7 @@ func (m *ResourceRequirements) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -59357,10 +58950,7 @@ func (m *SELinuxOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -59710,10 +59300,7 @@ func (m *ScaleIOPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60063,10 +59650,7 @@ func (m *ScaleIOVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60150,10 +59734,7 @@ func (m *ScopeSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60299,10 +59880,7 @@ func (m *ScopedResourceSelectorRequirement) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60417,10 +59995,7 @@ func (m *SeccompProfile) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60614,7 +60189,7 @@ func (m *Secret) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -60773,7 +60348,7 @@ func (m *Secret) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -60811,10 +60386,7 @@ func (m *Secret) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60918,10 +60490,7 @@ func (m *SecretEnvSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61057,10 +60626,7 @@ func (m *SecretKeySelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61177,10 +60743,7 @@ func (m *SecretList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61318,10 +60881,7 @@ func (m *SecretProjection) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61435,10 +60995,7 @@ func (m *SecretReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61595,10 +61152,7 @@ func (m *SecretVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61949,10 +61503,7 @@ func (m *SecurityContext) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62035,10 +61586,7 @@ func (m *SerializedReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62187,10 +61735,7 @@ func (m *Service) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62362,10 +61907,7 @@ func (m *ServiceAccount) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62482,10 +62024,7 @@ func (m *ServiceAccountList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62619,10 +62158,7 @@ func (m *ServiceAccountTokenProjection) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62739,10 +62275,7 @@ func (m *ServiceList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62960,10 +62493,7 @@ func (m *ServicePort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -63045,10 +62575,7 @@ func (m *ServiceProxyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -63242,7 +62769,7 @@ func (m *ServiceSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -63734,16 +63261,79 @@ func (m *ServiceSpec) Unmarshal(dAtA []byte) error { } b := bool(v != 0) m.AllocateLoadBalancerNodePorts = &b + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LoadBalancerClass", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.LoadBalancerClass = &s + iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InternalTrafficPolicy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := ServiceInternalTrafficPolicyType(dAtA[iNdEx:postIndex]) + m.InternalTrafficPolicy = &s + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -63860,10 +63450,7 @@ func (m *ServiceStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -63949,10 +63536,7 @@ func (m *SessionAffinityConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64154,10 +63738,7 @@ func (m *StorageOSPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64359,10 +63940,7 @@ func (m *StorageOSVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64476,10 +64054,7 @@ func (m *Sysctl) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64594,10 +64169,7 @@ func (m *TCPSocketAction) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64779,10 +64351,7 @@ func (m *Taint) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64980,10 +64549,7 @@ func (m *Toleration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65097,10 +64663,7 @@ func (m *TopologySelectorLabelRequirement) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65184,10 +64747,7 @@ func (m *TopologySelectorTerm) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65356,10 +64916,7 @@ func (m *TopologySpreadConstraint) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65506,10 +65063,7 @@ func (m *TypedLocalObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65624,10 +65178,7 @@ func (m *Volume) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65741,10 +65292,7 @@ func (m *VolumeDevice) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65975,10 +65523,7 @@ func (m *VolumeMount) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -66064,10 +65609,7 @@ func (m *VolumeNodeAffinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -66261,10 +65803,7 @@ func (m *VolumeProjection) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -67358,10 +66897,7 @@ func (m *VolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -67539,10 +67075,7 @@ func (m *VsphereVirtualDiskVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -67644,10 +67177,7 @@ func (m *WeightedPodAffinityTerm) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -67796,10 +67326,7 @@ func (m *WindowsSecurityContextOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/core/v1/generated.proto b/vendor/k8s.io/api/core/v1/generated.proto index 3a13c53fa3..152ea29fd0 100644 --- a/vendor/k8s.io/api/core/v1/generated.proto +++ b/vendor/k8s.io/api/core/v1/generated.proto @@ -461,7 +461,6 @@ message ConfigMap { // be updated (only object metadata can be modified). // If not set to true, the field can be modified at any time. // Defaulted to nil. - // This is a beta field enabled by ImmutableEphemeralVolumes feature gate. // +optional optional bool immutable = 4; @@ -681,7 +680,7 @@ message Container { // Compute Resources required by this container. // Cannot be updated. - // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +optional optional ResourceRequirements resources = 8; @@ -1397,11 +1396,6 @@ message EphemeralVolumeSource { // // Required, must not be nil. optional PersistentVolumeClaimTemplate volumeClaimTemplate = 1; - - // Specifies a read-only configuration for the volume. - // Defaults to false (read/write). - // +optional - optional bool readOnly = 2; } // Event is a report of an event somewhere in the cluster. Events @@ -2004,7 +1998,7 @@ message LimitRangeList { optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; // Items is a list of LimitRange objects. - // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ repeated LimitRange items = 2; } @@ -3011,8 +3005,10 @@ message PodAffinityTerm { // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1; - // namespaces specifies which namespaces the labelSelector applies to (matches against); - // null or empty list means "this pod's namespace" + // namespaces specifies a static list of namespace names that the term applies to. + // The term is applied to the union of the namespaces listed in this field + // and the ones selected by namespaceSelector. + // null or empty namespaces list and null namespaceSelector means "this pod's namespace" // +optional repeated string namespaces = 2; @@ -3022,6 +3018,15 @@ message PodAffinityTerm { // selected pods is running. // Empty topologyKey is not allowed. optional string topologyKey = 3; + + // A label query over the set of namespaces that the term applies to. + // The term is applied to the union of the namespaces selected by this field + // and the ones listed in the namespaces field. + // null selector and null or empty namespaces list means "this pod's namespace". + // An empty selector ({}) matches all namespaces. + // This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 4; } // Pod anti affinity is a group of inter pod anti affinity scheduling rules. @@ -3416,7 +3421,8 @@ message PodSpec { optional string restartPolicy = 3; // Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. - // Value must be non-negative integer. The value zero indicates delete immediately. + // Value must be non-negative integer. The value zero indicates stop immediately via + // the kill signal (no opportunity to shut down). // If this value is nil, the default grace period will be used instead. // 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. @@ -3878,6 +3884,18 @@ message Probe { // Defaults to 3. Minimum value is 1. // +optional optional int32 failureThreshold = 6; + + // 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 an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. + // +optional + optional int64 terminationGracePeriodSeconds = 7; } // Represents a projected volume source @@ -4237,14 +4255,14 @@ message ResourceQuotaStatus { // ResourceRequirements describes the compute resource requirements. message ResourceRequirements { // Limits describes the maximum amount of compute resources allowed. - // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +optional map limits = 1; // 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. - // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +optional map requests = 2; } @@ -4419,7 +4437,6 @@ message Secret { // be updated (only object metadata can be modified). // If not set to true, the field can be modified at any time. // Defaulted to nil. - // This is a beta field enabled by ImmutableEphemeralVolumes feature gate. // +optional optional bool immutable = 5; @@ -4431,9 +4448,9 @@ message Secret { map data = 2; // stringData allows specifying non-binary secret data in string form. - // It is provided as a write-only convenience method. + // It is provided as a write-only input field for convenience. // All keys and values are merged into the data field on write, overwriting any existing values. - // It is never output when reading from the API. + // The stringData field is never output when reading from the API. // +k8s:conversion-gen=false // +optional map stringData = 4; @@ -4753,6 +4770,7 @@ message ServicePort { // The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". // Default is TCP. + // +default="TCP" // +optional optional string protocol = 2; @@ -4926,7 +4944,7 @@ message ServiceSpec { // externalName is the external reference that discovery mechanisms will // return as an alias for this service (e.g. a DNS CNAME record). No // proxying will be involved. Must be a lowercase RFC-1123 hostname - // (https://tools.ietf.org/html/rfc1123) and requires Type to be + // (https://tools.ietf.org/html/rfc1123) and requires `type` to be "ExternalName". // +optional optional string externalName = 10; @@ -4979,6 +4997,7 @@ message ServiceSpec { // value, if used, only makes sense as the last value in the list. // If this is not specified or empty, no topology constraints will be applied. // This field is alpha-level and is only honored by servers that enable the ServiceTopology feature. + // This field is deprecated and will be removed in a future version. // +optional repeated string topologyKeys = 16; @@ -5023,6 +5042,30 @@ message ServiceSpec { // This field is alpha-level and is only honored by servers that enable the ServiceLBNodePortControl feature. // +optional optional bool allocateLoadBalancerNodePorts = 20; + + // loadBalancerClass is the class of the load balancer implementation this Service belongs to. + // If specified, the value of this field must be a label-style identifier, with an optional prefix, + // e.g. "internal-vip" or "example.com/internal-vip". Unprefixed names are reserved for end-users. + // This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load + // balancer implementation is used, today this is typically done through the cloud provider integration, + // but should apply for any default implementation. If set, it is assumed that a load balancer + // implementation is watching for Services with a matching class. Any default load balancer + // implementation (e.g. cloud providers) should ignore Services that set this field. + // This field can only be set when creating or updating a Service to type 'LoadBalancer'. + // Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type. + // +featureGate=LoadBalancerClass + // +optional + optional string loadBalancerClass = 21; + + // InternalTrafficPolicy specifies if the cluster internal traffic + // should be routed to all endpoints or node-local endpoints only. + // "Cluster" routes internal traffic to a Service to all endpoints. + // "Local" routes traffic to node-local endpoints only, traffic is + // dropped if no node-local endpoints are ready. + // The default value is "Cluster". + // +featureGate=ServiceInternalTrafficPolicy + // +optional + optional string internalTrafficPolicy = 22; } // ServiceStatus represents the current status of a service. @@ -5502,7 +5545,7 @@ message VolumeSource { // +optional optional CSIVolumeSource csi = 28; - // Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature). + // 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. // @@ -5527,6 +5570,9 @@ message VolumeSource { // A pod can use both types of ephemeral volumes and // persistent volumes at the same time. // + // This is a beta feature and only available when the GenericEphemeralVolume + // feature gate is enabled. + // // +optional optional EphemeralVolumeSource ephemeral = 29; } diff --git a/vendor/k8s.io/api/core/v1/types.go b/vendor/k8s.io/api/core/v1/types.go index 2bba972519..3eadb45674 100644 --- a/vendor/k8s.io/api/core/v1/types.go +++ b/vendor/k8s.io/api/core/v1/types.go @@ -156,7 +156,7 @@ type VolumeSource struct { // CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). // +optional CSI *CSIVolumeSource `json:"csi,omitempty" protobuf:"bytes,28,opt,name=csi"` - // Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature). + // 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. // @@ -181,6 +181,9 @@ type VolumeSource struct { // A pod can use both types of ephemeral volumes and // persistent volumes at the same time. // + // This is a beta feature and only available when the GenericEphemeralVolume + // feature gate is enabled. + // // +optional Ephemeral *EphemeralVolumeSource `json:"ephemeral,omitempty" protobuf:"bytes,29,opt,name=ephemeral"` } @@ -1795,10 +1798,8 @@ type EphemeralVolumeSource struct { // Required, must not be nil. VolumeClaimTemplate *PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty" protobuf:"bytes,1,opt,name=volumeClaimTemplate"` - // Specifies a read-only configuration for the volume. - // Defaults to false (read/write). - // +optional - ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,2,opt,name=readOnly"` + // ReadOnly is tombstoned to show why 2 is a reserved protobuf tag. + // ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,2,opt,name=readOnly"` } // PersistentVolumeClaimTemplate is used to produce @@ -2116,6 +2117,17 @@ type Probe struct { // Defaults to 3. Minimum value is 1. // +optional FailureThreshold int32 `json:"failureThreshold,omitempty" protobuf:"varint,6,opt,name=failureThreshold"` + // 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 an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. + // +optional + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty" protobuf:"varint,7,opt,name=terminationGracePeriodSeconds"` } // PullPolicy describes a policy for if/when to pull a container image @@ -2169,13 +2181,13 @@ type Capabilities struct { // ResourceRequirements describes the compute resource requirements. type ResourceRequirements struct { // Limits describes the maximum amount of compute resources allowed. - // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +optional Limits ResourceList `json:"limits,omitempty" protobuf:"bytes,1,rep,name=limits,casttype=ResourceList,castkey=ResourceName"` // 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. - // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +optional Requests ResourceList `json:"requests,omitempty" protobuf:"bytes,2,rep,name=requests,casttype=ResourceList,castkey=ResourceName"` } @@ -2253,7 +2265,7 @@ type Container struct { Env []EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,7,rep,name=env"` // Compute Resources required by this container. // Cannot be updated. - // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +optional Resources ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,8,opt,name=resources"` // Pod volumes to mount into the container's filesystem. @@ -2774,8 +2786,10 @@ type PodAffinityTerm struct { // A label query over a set of resources, in this case pods. // +optional LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty" protobuf:"bytes,1,opt,name=labelSelector"` - // namespaces specifies which namespaces the labelSelector applies to (matches against); - // null or empty list means "this pod's namespace" + // namespaces specifies a static list of namespace names that the term applies to. + // The term is applied to the union of the namespaces listed in this field + // and the ones selected by namespaceSelector. + // null or empty namespaces list and null namespaceSelector means "this pod's namespace" // +optional Namespaces []string `json:"namespaces,omitempty" protobuf:"bytes,2,rep,name=namespaces"` // This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching @@ -2784,6 +2798,14 @@ type PodAffinityTerm struct { // selected pods is running. // Empty topologyKey is not allowed. TopologyKey string `json:"topologyKey" protobuf:"bytes,3,opt,name=topologyKey"` + // A label query over the set of namespaces that the term applies to. + // The term is applied to the union of the namespaces selected by this field + // and the ones listed in the namespaces field. + // null selector and null or empty namespaces list means "this pod's namespace". + // An empty selector ({}) matches all namespaces. + // This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled. + // +optional + NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty" protobuf:"bytes,4,opt,name=namespaceSelector"` } // Node affinity is a group of node affinity scheduling rules. @@ -2957,7 +2979,8 @@ type PodSpec struct { // +optional RestartPolicy RestartPolicy `json:"restartPolicy,omitempty" protobuf:"bytes,3,opt,name=restartPolicy,casttype=RestartPolicy"` // Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. - // Value must be non-negative integer. The value zero indicates delete immediately. + // Value must be non-negative integer. The value zero indicates stop immediately via + // the kill signal (no opportunity to shut down). // If this value is nil, the default grace period will be used instead. // 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. @@ -3930,6 +3953,19 @@ const ( ServiceTypeExternalName ServiceType = "ExternalName" ) +// ServiceInternalTrafficPolicyType describes the type of traffic routing for +// internal traffic +type ServiceInternalTrafficPolicyType string + +const ( + // ServiceInternalTrafficPolicyCluster routes traffic to all endpoints + ServiceInternalTrafficPolicyCluster ServiceInternalTrafficPolicyType = "Cluster" + + // ServiceInternalTrafficPolicyLocal only routes to node-local + // endpoints, otherwise drops the traffic + ServiceInternalTrafficPolicyLocal ServiceInternalTrafficPolicyType = "Local" +) + // Service External Traffic Policy Type string type ServiceExternalTrafficPolicyType string @@ -4150,7 +4186,7 @@ type ServiceSpec struct { // externalName is the external reference that discovery mechanisms will // return as an alias for this service (e.g. a DNS CNAME record). No // proxying will be involved. Must be a lowercase RFC-1123 hostname - // (https://tools.ietf.org/html/rfc1123) and requires Type to be + // (https://tools.ietf.org/html/rfc1123) and requires `type` to be "ExternalName". // +optional ExternalName string `json:"externalName,omitempty" protobuf:"bytes,10,opt,name=externalName"` @@ -4203,6 +4239,7 @@ type ServiceSpec struct { // value, if used, only makes sense as the last value in the list. // If this is not specified or empty, no topology constraints will be applied. // This field is alpha-level and is only honored by servers that enable the ServiceTopology feature. + // This field is deprecated and will be removed in a future version. // +optional TopologyKeys []string `json:"topologyKeys,omitempty" protobuf:"bytes,16,opt,name=topologyKeys"` @@ -4250,6 +4287,30 @@ type ServiceSpec struct { // This field is alpha-level and is only honored by servers that enable the ServiceLBNodePortControl feature. // +optional AllocateLoadBalancerNodePorts *bool `json:"allocateLoadBalancerNodePorts,omitempty" protobuf:"bytes,20,opt,name=allocateLoadBalancerNodePorts"` + + // loadBalancerClass is the class of the load balancer implementation this Service belongs to. + // If specified, the value of this field must be a label-style identifier, with an optional prefix, + // e.g. "internal-vip" or "example.com/internal-vip". Unprefixed names are reserved for end-users. + // This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load + // balancer implementation is used, today this is typically done through the cloud provider integration, + // but should apply for any default implementation. If set, it is assumed that a load balancer + // implementation is watching for Services with a matching class. Any default load balancer + // implementation (e.g. cloud providers) should ignore Services that set this field. + // This field can only be set when creating or updating a Service to type 'LoadBalancer'. + // Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type. + // +featureGate=LoadBalancerClass + // +optional + LoadBalancerClass *string `json:"loadBalancerClass,omitempty" protobuf:"bytes,21,opt,name=loadBalancerClass"` + + // InternalTrafficPolicy specifies if the cluster internal traffic + // should be routed to all endpoints or node-local endpoints only. + // "Cluster" routes internal traffic to a Service to all endpoints. + // "Local" routes traffic to node-local endpoints only, traffic is + // dropped if no node-local endpoints are ready. + // The default value is "Cluster". + // +featureGate=ServiceInternalTrafficPolicy + // +optional + InternalTrafficPolicy *ServiceInternalTrafficPolicyType `json:"internalTrafficPolicy,omitempty" protobuf:"bytes,22,opt,name=internalTrafficPolicy"` } // ServicePort contains information on service's port. @@ -4264,6 +4325,7 @@ type ServicePort struct { // The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". // Default is TCP. + // +default="TCP" // +optional Protocol Protocol `json:"protocol,omitempty" protobuf:"bytes,2,opt,name=protocol,casttype=Protocol"` @@ -5560,7 +5622,7 @@ type LimitRangeList struct { metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of LimitRange objects. - // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ Items []LimitRange `json:"items" protobuf:"bytes,2,rep,name=items"` } @@ -5613,9 +5675,9 @@ const ( type ResourceQuotaScope string const ( - // Match all pod objects where spec.activeDeadlineSeconds + // Match all pod objects where spec.activeDeadlineSeconds >=0 ResourceQuotaScopeTerminating ResourceQuotaScope = "Terminating" - // Match all pod objects where !spec.activeDeadlineSeconds + // Match all pod objects where spec.activeDeadlineSeconds is nil ResourceQuotaScopeNotTerminating ResourceQuotaScope = "NotTerminating" // Match all pod objects that have best effort quality of service ResourceQuotaScopeBestEffort ResourceQuotaScope = "BestEffort" @@ -5623,6 +5685,9 @@ const ( ResourceQuotaScopeNotBestEffort ResourceQuotaScope = "NotBestEffort" // Match all pod objects that have priority class mentioned ResourceQuotaScopePriorityClass ResourceQuotaScope = "PriorityClass" + // Match all pod objects that have cross-namespace pod (anti)affinity mentioned. + // This is an alpha feature enabled by the PodAffinityNamespaceSelector feature flag. + ResourceQuotaScopeCrossNamespacePodAffinity ResourceQuotaScope = "CrossNamespacePodAffinity" ) // ResourceQuotaSpec defines the desired hard limits to enforce for Quota. @@ -5741,7 +5806,6 @@ type Secret struct { // be updated (only object metadata can be modified). // If not set to true, the field can be modified at any time. // Defaulted to nil. - // This is a beta field enabled by ImmutableEphemeralVolumes feature gate. // +optional Immutable *bool `json:"immutable,omitempty" protobuf:"varint,5,opt,name=immutable"` @@ -5753,9 +5817,9 @@ type Secret struct { Data map[string][]byte `json:"data,omitempty" protobuf:"bytes,2,rep,name=data"` // stringData allows specifying non-binary secret data in string form. - // It is provided as a write-only convenience method. + // It is provided as a write-only input field for convenience. // All keys and values are merged into the data field on write, overwriting any existing values. - // It is never output when reading from the API. + // The stringData field is never output when reading from the API. // +k8s:conversion-gen=false // +optional StringData map[string]string `json:"stringData,omitempty" protobuf:"bytes,4,rep,name=stringData"` @@ -5882,7 +5946,6 @@ type ConfigMap struct { // be updated (only object metadata can be modified). // If not set to true, the field can be modified at any time. // Defaulted to nil. - // This is a beta field enabled by ImmutableEphemeralVolumes feature gate. // +optional Immutable *bool `json:"immutable,omitempty" protobuf:"varint,4,opt,name=immutable"` @@ -6168,7 +6231,7 @@ type RangeAllocation struct { } const ( - // "default-scheduler" is the name of default scheduler. + // DefaultSchedulerName defines the name of default scheduler. DefaultSchedulerName = "default-scheduler" // RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule diff --git a/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go index c58d8ac566..0892b9b5ec 100644 --- a/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -252,7 +252,7 @@ func (ComponentStatusList) SwaggerDoc() map[string]string { var map_ConfigMap = map[string]string{ "": "ConfigMap holds configuration data for pods to consume.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - "immutable": "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is a beta field enabled by ImmutableEphemeralVolumes feature gate.", + "immutable": "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.", "data": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.", "binaryData": "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.", } @@ -334,7 +334,7 @@ var map_Container = map[string]string{ "ports": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", "envFrom": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", "env": "List of environment variables to set in the container. Cannot be updated.", - "resources": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + "resources": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", "volumeMounts": "Pod volumes to mount into the container's filesystem. Cannot be updated.", "volumeDevices": "volumeDevices is the list of block devices to be used by the container.", "livenessProbe": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", @@ -629,7 +629,6 @@ func (EphemeralContainers) SwaggerDoc() map[string]string { var map_EphemeralVolumeSource = map[string]string{ "": "Represents an ephemeral volume that is handled by a normal storage driver.", "volumeClaimTemplate": "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 `-` where `` 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.", - "readOnly": "Specifies a read-only configuration for the volume. Defaults to false (read/write).", } func (EphemeralVolumeSource) SwaggerDoc() map[string]string { @@ -933,7 +932,7 @@ func (LimitRangeItem) SwaggerDoc() map[string]string { var map_LimitRangeList = map[string]string{ "": "LimitRangeList is a list of LimitRange items.", "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - "items": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + "items": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", } func (LimitRangeList) SwaggerDoc() map[string]string { @@ -1449,10 +1448,11 @@ func (PodAffinity) SwaggerDoc() map[string]string { } var map_PodAffinityTerm = map[string]string{ - "": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running", - "labelSelector": "A label query over a set of resources, in this case pods.", - "namespaces": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", - "topologyKey": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", + "": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running", + "labelSelector": "A label query over a set of resources, in this case pods.", + "namespaces": "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\"", + "topologyKey": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", + "namespaceSelector": "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces. This field is alpha-level and is only honored when PodAffinityNamespaceSelector feature is enabled.", } func (PodAffinityTerm) SwaggerDoc() map[string]string { @@ -1627,7 +1627,7 @@ var map_PodSpec = map[string]string{ "containers": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", "ephemeralContainers": "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.", "restartPolicy": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", - "terminationGracePeriodSeconds": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. 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. Defaults to 30 seconds.", + "terminationGracePeriodSeconds": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. 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. Defaults to 30 seconds.", "activeDeadlineSeconds": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", "dnsPolicy": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", "nodeSelector": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", @@ -1777,12 +1777,13 @@ func (PreferredSchedulingTerm) SwaggerDoc() map[string]string { } var map_Probe = map[string]string{ - "": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "initialDelaySeconds": "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", - "timeoutSeconds": "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", - "periodSeconds": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - "successThreshold": "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.", - "failureThreshold": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", + "initialDelaySeconds": "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", + "timeoutSeconds": "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", + "periodSeconds": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", + "successThreshold": "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.", + "failureThreshold": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "terminationGracePeriodSeconds": "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 an alpha field and requires enabling ProbeTerminationGracePeriod feature gate.", } func (Probe) SwaggerDoc() map[string]string { @@ -1971,8 +1972,8 @@ func (ResourceQuotaStatus) SwaggerDoc() map[string]string { var map_ResourceRequirements = map[string]string{ "": "ResourceRequirements describes the compute resource requirements.", - "limits": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "requests": "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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + "limits": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + "requests": "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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", } func (ResourceRequirements) SwaggerDoc() map[string]string { @@ -2060,9 +2061,9 @@ func (SeccompProfile) SwaggerDoc() map[string]string { var map_Secret = map[string]string{ "": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - "immutable": "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is a beta field enabled by ImmutableEphemeralVolumes feature gate.", + "immutable": "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.", "data": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", - "stringData": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.", + "stringData": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API.", "type": "Used to facilitate programmatic handling of secret data.", } @@ -2247,15 +2248,17 @@ var map_ServiceSpec = map[string]string{ "sessionAffinity": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", "loadBalancerIP": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.", "loadBalancerSourceRanges": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/", - "externalName": "externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be", + "externalName": "externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".", "externalTrafficPolicy": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", "healthCheckNodePort": "healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type).", "publishNotReadyAddresses": "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.", "sessionAffinityConfig": "sessionAffinityConfig contains the configurations of session affinity.", - "topologyKeys": "topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value \"*\" may be used to mean \"any topology\". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied. This field is alpha-level and is only honored by servers that enable the ServiceTopology feature.", + "topologyKeys": "topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value \"*\" may be used to mean \"any topology\". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied. This field is alpha-level and is only honored by servers that enable the ServiceTopology feature. This field is deprecated and will be removed in a future version.", "ipFamilies": "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service, and is gated by the \"IPv6DualStack\" feature gate. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.", "ipFamilyPolicy": "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service, and is gated by the \"IPv6DualStack\" feature gate. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.", "allocateLoadBalancerNodePorts": "allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. allocateLoadBalancerNodePorts may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type. This field is alpha-level and is only honored by servers that enable the ServiceLBNodePortControl feature.", + "loadBalancerClass": "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.", + "internalTrafficPolicy": "InternalTrafficPolicy specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only. \"Cluster\" routes internal traffic to a Service to all endpoints. \"Local\" routes traffic to node-local endpoints only, traffic is dropped if no node-local endpoints are ready. The default value is \"Cluster\".", } func (ServiceSpec) SwaggerDoc() map[string]string { @@ -2478,7 +2481,7 @@ var map_VolumeSource = map[string]string{ "scaleIO": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", "storageos": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", "csi": "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - "ephemeral": "Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature). 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.", + "ephemeral": "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.\n\nThis is a beta feature and only available when the GenericEphemeralVolume feature gate is enabled.", } func (VolumeSource) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/core/v1/well_known_labels.go b/vendor/k8s.io/api/core/v1/well_known_labels.go index a506f17f65..5cf82a9817 100644 --- a/vendor/k8s.io/api/core/v1/well_known_labels.go +++ b/vendor/k8s.io/api/core/v1/well_known_labels.go @@ -19,16 +19,21 @@ package v1 const ( LabelHostname = "kubernetes.io/hostname" - LabelFailureDomainBetaZone = "failure-domain.beta.kubernetes.io/zone" - LabelFailureDomainBetaRegion = "failure-domain.beta.kubernetes.io/region" - LabelTopologyZone = "topology.kubernetes.io/zone" - LabelTopologyRegion = "topology.kubernetes.io/region" + LabelTopologyZone = "topology.kubernetes.io/zone" + LabelTopologyRegion = "topology.kubernetes.io/region" - // Legacy names for compat. - LabelZoneFailureDomain = LabelFailureDomainBetaZone // deprecated, remove after 1.20 - LabelZoneRegion = LabelFailureDomainBetaRegion // deprecated, remove after 1.20 - LabelZoneFailureDomainStable = LabelTopologyZone - LabelZoneRegionStable = LabelTopologyRegion + // These label have been deprecated since 1.17, but will be supported for + // the foreseeable future, to accommodate things like long-lived PVs that + // use them. New users should prefer the "topology.kubernetes.io/*" + // equivalents. + LabelFailureDomainBetaZone = "failure-domain.beta.kubernetes.io/zone" // deprecated + LabelFailureDomainBetaRegion = "failure-domain.beta.kubernetes.io/region" // deprecated + + // Retained for compat when vendored. Do not use these consts in new code. + LabelZoneFailureDomain = LabelFailureDomainBetaZone // deprecated + LabelZoneRegion = LabelFailureDomainBetaRegion // deprecated + LabelZoneFailureDomainStable = LabelTopologyZone // deprecated + LabelZoneRegionStable = LabelTopologyRegion // deprecated LabelInstanceType = "beta.kubernetes.io/instance-type" LabelInstanceTypeStable = "node.kubernetes.io/instance-type" @@ -53,4 +58,13 @@ const ( // controllers and kube-proxy to check if the Endpoint objects should be replicated when // using Headless Services IsHeadlessService = "service.kubernetes.io/headless" + + // LabelNodeExcludeBalancers specifies that the node should not be considered as a target + // for external load-balancers which use nodes as a second hop (e.g. many cloud LBs which only + // understand nodes). For services that use externalTrafficPolicy=Local, this may mean that + // any backends on excluded nodes are not reachable by those external load-balancers. + // Implementations of this exclusion may vary based on provider. + LabelNodeExcludeBalancers = "node.kubernetes.io/exclude-from-external-load-balancers" + // LabelMetadataName is the label name which, in-tree, is used to automatically label namespaces, so they can be selected easily by tools which require definitive labels + LabelMetadataName = "kubernetes.io/metadata.name" ) diff --git a/vendor/k8s.io/api/core/v1/well_known_taints.go b/vendor/k8s.io/api/core/v1/well_known_taints.go index e1a8f6291b..84d268197c 100644 --- a/vendor/k8s.io/api/core/v1/well_known_taints.go +++ b/vendor/k8s.io/api/core/v1/well_known_taints.go @@ -27,7 +27,7 @@ const ( TaintNodeUnreachable = "node.kubernetes.io/unreachable" // TaintNodeUnschedulable will be added when node becomes unschedulable - // and removed when node becomes scheduable. + // and removed when node becomes schedulable. TaintNodeUnschedulable = "node.kubernetes.io/unschedulable" // TaintNodeMemoryPressure will be added when node has memory pressure @@ -43,6 +43,6 @@ const ( TaintNodeNetworkUnavailable = "node.kubernetes.io/network-unavailable" // TaintNodePIDPressure will be added when node has pid pressure - // and removed when node has enough disk. + // and removed when node has enough pid. TaintNodePIDPressure = "node.kubernetes.io/pid-pressure" ) diff --git a/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go index b868f9ba5b..b60baa6656 100644 --- a/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -3360,6 +3360,11 @@ func (in *PodAffinityTerm) DeepCopyInto(out *PodAffinityTerm) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.NamespaceSelector != nil { + in, out := &in.NamespaceSelector, &out.NamespaceSelector + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) + } return } @@ -4185,6 +4190,11 @@ func (in *PreferredSchedulingTerm) DeepCopy() *PreferredSchedulingTerm { func (in *Probe) DeepCopyInto(out *Probe) { *out = *in in.Handler.DeepCopyInto(&out.Handler) + if in.TerminationGracePeriodSeconds != nil { + in, out := &in.TerminationGracePeriodSeconds, &out.TerminationGracePeriodSeconds + *out = new(int64) + **out = **in + } return } @@ -5340,6 +5350,16 @@ func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) { *out = new(bool) **out = **in } + if in.LoadBalancerClass != nil { + in, out := &in.LoadBalancerClass, &out.LoadBalancerClass + *out = new(string) + **out = **in + } + if in.InternalTrafficPolicy != nil { + in, out := &in.InternalTrafficPolicy, &out.InternalTrafficPolicy + *out = new(ServiceInternalTrafficPolicyType) + **out = **in + } return } diff --git a/vendor/k8s.io/api/discovery/v1/doc.go b/vendor/k8s.io/api/discovery/v1/doc.go new file mode 100644 index 0000000000..96ae531ce7 --- /dev/null +++ b/vendor/k8s.io/api/discovery/v1/doc.go @@ -0,0 +1,22 @@ +/* +Copyright 2019 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. +*/ + +// +k8s:deepcopy-gen=package +// +k8s:protobuf-gen=package +// +k8s:openapi-gen=true +// +groupName=discovery.k8s.io + +package v1 // import "k8s.io/api/discovery/v1" diff --git a/vendor/k8s.io/api/discovery/v1/generated.pb.go b/vendor/k8s.io/api/discovery/v1/generated.pb.go new file mode 100644 index 0000000000..38bdb02a52 --- /dev/null +++ b/vendor/k8s.io/api/discovery/v1/generated.pb.go @@ -0,0 +1,2251 @@ +/* +Copyright 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. +*/ + +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: k8s.io/kubernetes/vendor/k8s.io/api/discovery/v1/generated.proto + +package v1 + +import ( + fmt "fmt" + + io "io" + + proto "github.com/gogo/protobuf/proto" + github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + k8s_io_api_core_v1 "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" + + math "math" + math_bits "math/bits" + reflect "reflect" + strings "strings" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +func (m *Endpoint) Reset() { *m = Endpoint{} } +func (*Endpoint) ProtoMessage() {} +func (*Endpoint) Descriptor() ([]byte, []int) { + return fileDescriptor_3a5d310fb1396ddf, []int{0} +} +func (m *Endpoint) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Endpoint) XXX_Merge(src proto.Message) { + xxx_messageInfo_Endpoint.Merge(m, src) +} +func (m *Endpoint) XXX_Size() int { + return m.Size() +} +func (m *Endpoint) XXX_DiscardUnknown() { + xxx_messageInfo_Endpoint.DiscardUnknown(m) +} + +var xxx_messageInfo_Endpoint proto.InternalMessageInfo + +func (m *EndpointConditions) Reset() { *m = EndpointConditions{} } +func (*EndpointConditions) ProtoMessage() {} +func (*EndpointConditions) Descriptor() ([]byte, []int) { + return fileDescriptor_3a5d310fb1396ddf, []int{1} +} +func (m *EndpointConditions) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EndpointConditions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *EndpointConditions) XXX_Merge(src proto.Message) { + xxx_messageInfo_EndpointConditions.Merge(m, src) +} +func (m *EndpointConditions) XXX_Size() int { + return m.Size() +} +func (m *EndpointConditions) XXX_DiscardUnknown() { + xxx_messageInfo_EndpointConditions.DiscardUnknown(m) +} + +var xxx_messageInfo_EndpointConditions proto.InternalMessageInfo + +func (m *EndpointHints) Reset() { *m = EndpointHints{} } +func (*EndpointHints) ProtoMessage() {} +func (*EndpointHints) Descriptor() ([]byte, []int) { + return fileDescriptor_3a5d310fb1396ddf, []int{2} +} +func (m *EndpointHints) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EndpointHints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *EndpointHints) XXX_Merge(src proto.Message) { + xxx_messageInfo_EndpointHints.Merge(m, src) +} +func (m *EndpointHints) XXX_Size() int { + return m.Size() +} +func (m *EndpointHints) XXX_DiscardUnknown() { + xxx_messageInfo_EndpointHints.DiscardUnknown(m) +} + +var xxx_messageInfo_EndpointHints proto.InternalMessageInfo + +func (m *EndpointPort) Reset() { *m = EndpointPort{} } +func (*EndpointPort) ProtoMessage() {} +func (*EndpointPort) Descriptor() ([]byte, []int) { + return fileDescriptor_3a5d310fb1396ddf, []int{3} +} +func (m *EndpointPort) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EndpointPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *EndpointPort) XXX_Merge(src proto.Message) { + xxx_messageInfo_EndpointPort.Merge(m, src) +} +func (m *EndpointPort) XXX_Size() int { + return m.Size() +} +func (m *EndpointPort) XXX_DiscardUnknown() { + xxx_messageInfo_EndpointPort.DiscardUnknown(m) +} + +var xxx_messageInfo_EndpointPort proto.InternalMessageInfo + +func (m *EndpointSlice) Reset() { *m = EndpointSlice{} } +func (*EndpointSlice) ProtoMessage() {} +func (*EndpointSlice) Descriptor() ([]byte, []int) { + return fileDescriptor_3a5d310fb1396ddf, []int{4} +} +func (m *EndpointSlice) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EndpointSlice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *EndpointSlice) XXX_Merge(src proto.Message) { + xxx_messageInfo_EndpointSlice.Merge(m, src) +} +func (m *EndpointSlice) XXX_Size() int { + return m.Size() +} +func (m *EndpointSlice) XXX_DiscardUnknown() { + xxx_messageInfo_EndpointSlice.DiscardUnknown(m) +} + +var xxx_messageInfo_EndpointSlice proto.InternalMessageInfo + +func (m *EndpointSliceList) Reset() { *m = EndpointSliceList{} } +func (*EndpointSliceList) ProtoMessage() {} +func (*EndpointSliceList) Descriptor() ([]byte, []int) { + return fileDescriptor_3a5d310fb1396ddf, []int{5} +} +func (m *EndpointSliceList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EndpointSliceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *EndpointSliceList) XXX_Merge(src proto.Message) { + xxx_messageInfo_EndpointSliceList.Merge(m, src) +} +func (m *EndpointSliceList) XXX_Size() int { + return m.Size() +} +func (m *EndpointSliceList) XXX_DiscardUnknown() { + xxx_messageInfo_EndpointSliceList.DiscardUnknown(m) +} + +var xxx_messageInfo_EndpointSliceList proto.InternalMessageInfo + +func (m *ForZone) Reset() { *m = ForZone{} } +func (*ForZone) ProtoMessage() {} +func (*ForZone) Descriptor() ([]byte, []int) { + return fileDescriptor_3a5d310fb1396ddf, []int{6} +} +func (m *ForZone) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ForZone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ForZone) XXX_Merge(src proto.Message) { + xxx_messageInfo_ForZone.Merge(m, src) +} +func (m *ForZone) XXX_Size() int { + return m.Size() +} +func (m *ForZone) XXX_DiscardUnknown() { + xxx_messageInfo_ForZone.DiscardUnknown(m) +} + +var xxx_messageInfo_ForZone proto.InternalMessageInfo + +func init() { + proto.RegisterType((*Endpoint)(nil), "k8s.io.api.discovery.v1.Endpoint") + proto.RegisterMapType((map[string]string)(nil), "k8s.io.api.discovery.v1.Endpoint.DeprecatedTopologyEntry") + proto.RegisterType((*EndpointConditions)(nil), "k8s.io.api.discovery.v1.EndpointConditions") + proto.RegisterType((*EndpointHints)(nil), "k8s.io.api.discovery.v1.EndpointHints") + proto.RegisterType((*EndpointPort)(nil), "k8s.io.api.discovery.v1.EndpointPort") + proto.RegisterType((*EndpointSlice)(nil), "k8s.io.api.discovery.v1.EndpointSlice") + proto.RegisterType((*EndpointSliceList)(nil), "k8s.io.api.discovery.v1.EndpointSliceList") + proto.RegisterType((*ForZone)(nil), "k8s.io.api.discovery.v1.ForZone") +} + +func init() { + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/discovery/v1/generated.proto", fileDescriptor_3a5d310fb1396ddf) +} + +var fileDescriptor_3a5d310fb1396ddf = []byte{ + // 889 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0x4d, 0x6f, 0xe3, 0x44, + 0x18, 0x8e, 0x9b, 0x86, 0xda, 0x93, 0x56, 0xec, 0x8e, 0x90, 0x36, 0x0a, 0x28, 0x0e, 0x46, 0x8b, + 0x22, 0x55, 0xd8, 0xb4, 0x42, 0x68, 0xe1, 0x44, 0xcd, 0x96, 0x5d, 0xbe, 0x4a, 0x35, 0xdb, 0xd3, + 0x0a, 0x69, 0x71, 0xed, 0xb7, 0x8e, 0x49, 0x33, 0x63, 0xcd, 0x4c, 0x22, 0x85, 0x13, 0x17, 0xce, + 0xf0, 0x8b, 0x38, 0xa2, 0x1e, 0xf7, 0xc6, 0x9e, 0x2c, 0x6a, 0xfe, 0x02, 0xa7, 0x3d, 0xa1, 0x19, + 0x7f, 0x96, 0xb4, 0x0a, 0xb7, 0x99, 0x67, 0x9e, 0xe7, 0xfd, 0x78, 0x66, 0xe6, 0x45, 0x9f, 0xcd, + 0x1e, 0x09, 0x37, 0x61, 0xde, 0x6c, 0x71, 0x0e, 0x9c, 0x82, 0x04, 0xe1, 0x2d, 0x81, 0x46, 0x8c, + 0x7b, 0xe5, 0x41, 0x90, 0x26, 0x5e, 0x94, 0x88, 0x90, 0x2d, 0x81, 0xaf, 0xbc, 0xe5, 0x81, 0x17, + 0x03, 0x05, 0x1e, 0x48, 0x88, 0xdc, 0x94, 0x33, 0xc9, 0xf0, 0x83, 0x82, 0xe8, 0x06, 0x69, 0xe2, + 0xd6, 0x44, 0x77, 0x79, 0x30, 0xfc, 0x20, 0x4e, 0xe4, 0x74, 0x71, 0xee, 0x86, 0x6c, 0xee, 0xc5, + 0x2c, 0x66, 0x9e, 0xe6, 0x9f, 0x2f, 0x2e, 0xf4, 0x4e, 0x6f, 0xf4, 0xaa, 0x88, 0x33, 0x74, 0x5a, + 0x09, 0x43, 0xc6, 0xe1, 0x96, 0x5c, 0xc3, 0x8f, 0x1a, 0xce, 0x3c, 0x08, 0xa7, 0x09, 0x55, 0x35, + 0xa5, 0xb3, 0x58, 0x01, 0xc2, 0x9b, 0x83, 0x0c, 0x6e, 0x53, 0x79, 0x77, 0xa9, 0xf8, 0x82, 0xca, + 0x64, 0x0e, 0x6b, 0x82, 0x8f, 0x37, 0x09, 0x44, 0x38, 0x85, 0x79, 0xf0, 0x5f, 0x9d, 0xf3, 0xcf, + 0x36, 0x32, 0x8f, 0x69, 0x94, 0xb2, 0x84, 0x4a, 0xbc, 0x8f, 0xac, 0x20, 0x8a, 0x38, 0x08, 0x01, + 0x62, 0x60, 0x8c, 0xbb, 0x13, 0xcb, 0xdf, 0xcb, 0x33, 0xdb, 0x3a, 0xaa, 0x40, 0xd2, 0x9c, 0xe3, + 0x17, 0x08, 0x85, 0x8c, 0x46, 0x89, 0x4c, 0x18, 0x15, 0x83, 0xad, 0xb1, 0x31, 0xe9, 0x1f, 0xee, + 0xbb, 0x77, 0x38, 0xeb, 0x56, 0x39, 0x3e, 0xaf, 0x25, 0x3e, 0xbe, 0xca, 0xec, 0x4e, 0x9e, 0xd9, + 0xa8, 0xc1, 0x48, 0x2b, 0x24, 0x9e, 0x20, 0x73, 0xca, 0x84, 0xa4, 0xc1, 0x1c, 0x06, 0xdd, 0xb1, + 0x31, 0xb1, 0xfc, 0xdd, 0x3c, 0xb3, 0xcd, 0xa7, 0x25, 0x46, 0xea, 0x53, 0x7c, 0x8a, 0x2c, 0x19, + 0xf0, 0x18, 0x24, 0x81, 0x8b, 0xc1, 0xb6, 0xae, 0xe4, 0xbd, 0x76, 0x25, 0xea, 0x6e, 0x54, 0x11, + 0xdf, 0x9d, 0xff, 0x08, 0xa1, 0x22, 0x01, 0x07, 0x1a, 0x42, 0xd1, 0xdc, 0x59, 0xa5, 0x24, 0x4d, + 0x10, 0xfc, 0x8b, 0x81, 0x70, 0x04, 0x29, 0x87, 0x50, 0x79, 0x75, 0xc6, 0x52, 0x76, 0xc9, 0xe2, + 0xd5, 0xa0, 0x37, 0xee, 0x4e, 0xfa, 0x87, 0x9f, 0x6c, 0xec, 0xd2, 0x7d, 0xbc, 0xa6, 0x3d, 0xa6, + 0x92, 0xaf, 0xfc, 0x61, 0xd9, 0x33, 0x5e, 0x27, 0x90, 0x5b, 0x12, 0x2a, 0x0f, 0x28, 0x8b, 0xe0, + 0x44, 0x79, 0xf0, 0x46, 0xe3, 0xc1, 0x49, 0x89, 0x91, 0xfa, 0x14, 0xbf, 0x83, 0xb6, 0x7f, 0x62, + 0x14, 0x06, 0x3b, 0x9a, 0x65, 0xe6, 0x99, 0xbd, 0xfd, 0x9c, 0x51, 0x20, 0x1a, 0xc5, 0x4f, 0x50, + 0x6f, 0x9a, 0x50, 0x29, 0x06, 0xa6, 0x76, 0xe7, 0xfd, 0x8d, 0x1d, 0x3c, 0x55, 0x6c, 0xdf, 0xca, + 0x33, 0xbb, 0xa7, 0x97, 0xa4, 0xd0, 0x0f, 0x8f, 0xd1, 0x83, 0x3b, 0x7a, 0xc3, 0xf7, 0x50, 0x77, + 0x06, 0xab, 0x81, 0xa1, 0x0a, 0x20, 0x6a, 0x89, 0xdf, 0x42, 0xbd, 0x65, 0x70, 0xb9, 0x00, 0xfd, + 0x3a, 0x2c, 0x52, 0x6c, 0x3e, 0xdd, 0x7a, 0x64, 0x38, 0xbf, 0x1a, 0x08, 0xaf, 0x3f, 0x09, 0x6c, + 0xa3, 0x1e, 0x87, 0x20, 0x2a, 0x82, 0x98, 0x45, 0x7a, 0xa2, 0x00, 0x52, 0xe0, 0xf8, 0x21, 0xda, + 0x11, 0xc0, 0x97, 0x09, 0x8d, 0x75, 0x4c, 0xd3, 0xef, 0xe7, 0x99, 0xbd, 0xf3, 0xac, 0x80, 0x48, + 0x75, 0x86, 0x0f, 0x50, 0x5f, 0x02, 0x9f, 0x27, 0x34, 0x90, 0x8a, 0xda, 0xd5, 0xd4, 0x37, 0xf3, + 0xcc, 0xee, 0x9f, 0x35, 0x30, 0x69, 0x73, 0x9c, 0x17, 0x68, 0xef, 0x46, 0xef, 0xf8, 0x04, 0x99, + 0x17, 0x8c, 0x2b, 0x0f, 0x8b, 0xbf, 0xd0, 0x3f, 0x1c, 0xdf, 0xe9, 0xda, 0x17, 0x05, 0xd1, 0xbf, + 0x57, 0x5e, 0xaf, 0x59, 0x02, 0x82, 0xd4, 0x31, 0x9c, 0x3f, 0x0c, 0xb4, 0x5b, 0x65, 0x38, 0x65, + 0x5c, 0xaa, 0x1b, 0xd3, 0x6f, 0xdb, 0x68, 0x6e, 0x4c, 0xdf, 0xa9, 0x46, 0xf1, 0x13, 0x64, 0xea, + 0x1f, 0x1a, 0xb2, 0xcb, 0xc2, 0x3e, 0x7f, 0x5f, 0x05, 0x3e, 0x2d, 0xb1, 0xd7, 0x99, 0xfd, 0xf6, + 0xfa, 0xf4, 0x71, 0xab, 0x63, 0x52, 0x8b, 0x55, 0x9a, 0x94, 0x71, 0xa9, 0x4d, 0xe8, 0x15, 0x69, + 0x54, 0x7a, 0xa2, 0x51, 0xe5, 0x54, 0x90, 0xa6, 0x95, 0x4c, 0x7f, 0x1e, 0xab, 0x70, 0xea, 0xa8, + 0x81, 0x49, 0x9b, 0xe3, 0xfc, 0xb9, 0xd5, 0x58, 0xf5, 0xec, 0x32, 0x09, 0x01, 0xff, 0x80, 0x4c, + 0x35, 0xc8, 0xa2, 0x40, 0x06, 0xba, 0x9b, 0xfe, 0xe1, 0x87, 0x2d, 0xab, 0xea, 0x79, 0xe4, 0xa6, + 0xb3, 0x58, 0x01, 0xc2, 0x55, 0xec, 0xe6, 0x43, 0x7e, 0x0b, 0x32, 0x68, 0xa6, 0x41, 0x83, 0x91, + 0x3a, 0x2a, 0x7e, 0x8c, 0xfa, 0xe5, 0xe4, 0x39, 0x5b, 0xa5, 0x50, 0x96, 0xe9, 0x94, 0x92, 0xfe, + 0x51, 0x73, 0xf4, 0xfa, 0xe6, 0x96, 0xb4, 0x65, 0x98, 0x20, 0x0b, 0xca, 0xc2, 0xd5, 0xc4, 0x52, + 0x77, 0xfa, 0xee, 0xc6, 0x9f, 0xe0, 0xdf, 0x2f, 0xd3, 0x58, 0x15, 0x22, 0x48, 0x13, 0x06, 0x7f, + 0x85, 0x7a, 0xca, 0x48, 0x31, 0xe8, 0xea, 0x78, 0x0f, 0x37, 0xc6, 0x53, 0xe6, 0xfb, 0x7b, 0x65, + 0xcc, 0x9e, 0xda, 0x09, 0x52, 0x84, 0x70, 0x7e, 0x37, 0xd0, 0xfd, 0x1b, 0xce, 0x7e, 0x93, 0x08, + 0x89, 0xbf, 0x5f, 0x73, 0xd7, 0xfd, 0x7f, 0xee, 0x2a, 0xb5, 0xf6, 0xb6, 0x7e, 0x96, 0x15, 0xd2, + 0x72, 0xf6, 0x6b, 0xd4, 0x4b, 0x24, 0xcc, 0x2b, 0x3f, 0x36, 0x4f, 0x06, 0x5d, 0x58, 0xd3, 0xc0, + 0x97, 0x4a, 0x4c, 0x8a, 0x18, 0xce, 0x3e, 0xda, 0x29, 0x5f, 0x3e, 0x1e, 0xdf, 0x78, 0xdd, 0xbb, + 0x25, 0xbd, 0xf5, 0xc2, 0xfd, 0xc9, 0xd5, 0xf5, 0xa8, 0xf3, 0xf2, 0x7a, 0xd4, 0x79, 0x75, 0x3d, + 0xea, 0xfc, 0x9c, 0x8f, 0x8c, 0xab, 0x7c, 0x64, 0xbc, 0xcc, 0x47, 0xc6, 0xab, 0x7c, 0x64, 0xfc, + 0x95, 0x8f, 0x8c, 0xdf, 0xfe, 0x1e, 0x75, 0x9e, 0x6f, 0x2d, 0x0f, 0xfe, 0x0d, 0x00, 0x00, 0xff, + 0xff, 0x66, 0x0f, 0x26, 0x7b, 0xf2, 0x07, 0x00, 0x00, +} + +func (m *Endpoint) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Endpoint) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Endpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Hints != nil { + { + size, err := m.Hints.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.Zone != nil { + i -= len(*m.Zone) + copy(dAtA[i:], *m.Zone) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Zone))) + i-- + dAtA[i] = 0x3a + } + if m.NodeName != nil { + i -= len(*m.NodeName) + copy(dAtA[i:], *m.NodeName) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeName))) + i-- + dAtA[i] = 0x32 + } + if len(m.DeprecatedTopology) > 0 { + keysForDeprecatedTopology := make([]string, 0, len(m.DeprecatedTopology)) + for k := range m.DeprecatedTopology { + keysForDeprecatedTopology = append(keysForDeprecatedTopology, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForDeprecatedTopology) + for iNdEx := len(keysForDeprecatedTopology) - 1; iNdEx >= 0; iNdEx-- { + v := m.DeprecatedTopology[string(keysForDeprecatedTopology[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForDeprecatedTopology[iNdEx]) + copy(dAtA[i:], keysForDeprecatedTopology[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForDeprecatedTopology[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x2a + } + } + if m.TargetRef != nil { + { + size, err := m.TargetRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.Hostname != nil { + i -= len(*m.Hostname) + copy(dAtA[i:], *m.Hostname) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Hostname))) + i-- + dAtA[i] = 0x1a + } + { + size, err := m.Conditions.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Addresses) > 0 { + for iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Addresses[iNdEx]) + copy(dAtA[i:], m.Addresses[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Addresses[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EndpointConditions) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EndpointConditions) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EndpointConditions) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Terminating != nil { + i-- + if *m.Terminating { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.Serving != nil { + i-- + if *m.Serving { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if m.Ready != nil { + i-- + if *m.Ready { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *EndpointHints) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EndpointHints) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EndpointHints) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ForZones) > 0 { + for iNdEx := len(m.ForZones) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ForZones[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EndpointPort) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EndpointPort) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EndpointPort) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AppProtocol != nil { + i -= len(*m.AppProtocol) + copy(dAtA[i:], *m.AppProtocol) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.AppProtocol))) + i-- + dAtA[i] = 0x22 + } + if m.Port != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.Port)) + i-- + dAtA[i] = 0x18 + } + if m.Protocol != nil { + i -= len(*m.Protocol) + copy(dAtA[i:], *m.Protocol) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Protocol))) + i-- + dAtA[i] = 0x12 + } + if m.Name != nil { + i -= len(*m.Name) + copy(dAtA[i:], *m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EndpointSlice) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EndpointSlice) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EndpointSlice) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.AddressType) + copy(dAtA[i:], m.AddressType) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.AddressType))) + i-- + dAtA[i] = 0x22 + if len(m.Ports) > 0 { + for iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.Endpoints) > 0 { + for iNdEx := len(m.Endpoints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Endpoints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *EndpointSliceList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EndpointSliceList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EndpointSliceList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ForZone) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ForZone) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ForZone) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + offset -= sovGenerated(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Endpoint) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Addresses) > 0 { + for _, s := range m.Addresses { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = m.Conditions.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Hostname != nil { + l = len(*m.Hostname) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.TargetRef != nil { + l = m.TargetRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.DeprecatedTopology) > 0 { + for k, v := range m.DeprecatedTopology { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if m.NodeName != nil { + l = len(*m.NodeName) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Zone != nil { + l = len(*m.Zone) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Hints != nil { + l = m.Hints.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *EndpointConditions) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Ready != nil { + n += 2 + } + if m.Serving != nil { + n += 2 + } + if m.Terminating != nil { + n += 2 + } + return n +} + +func (m *EndpointHints) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ForZones) > 0 { + for _, e := range m.ForZones { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *EndpointPort) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Name != nil { + l = len(*m.Name) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Protocol != nil { + l = len(*m.Protocol) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Port != nil { + n += 1 + sovGenerated(uint64(*m.Port)) + } + if m.AppProtocol != nil { + l = len(*m.AppProtocol) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *EndpointSlice) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Endpoints) > 0 { + for _, e := range m.Endpoints { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Ports) > 0 { + for _, e := range m.Ports { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = len(m.AddressType) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *EndpointSliceList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ForZone) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func sovGenerated(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *Endpoint) String() string { + if this == nil { + return "nil" + } + keysForDeprecatedTopology := make([]string, 0, len(this.DeprecatedTopology)) + for k := range this.DeprecatedTopology { + keysForDeprecatedTopology = append(keysForDeprecatedTopology, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForDeprecatedTopology) + mapStringForDeprecatedTopology := "map[string]string{" + for _, k := range keysForDeprecatedTopology { + mapStringForDeprecatedTopology += fmt.Sprintf("%v: %v,", k, this.DeprecatedTopology[k]) + } + mapStringForDeprecatedTopology += "}" + s := strings.Join([]string{`&Endpoint{`, + `Addresses:` + fmt.Sprintf("%v", this.Addresses) + `,`, + `Conditions:` + strings.Replace(strings.Replace(this.Conditions.String(), "EndpointConditions", "EndpointConditions", 1), `&`, ``, 1) + `,`, + `Hostname:` + valueToStringGenerated(this.Hostname) + `,`, + `TargetRef:` + strings.Replace(fmt.Sprintf("%v", this.TargetRef), "ObjectReference", "v1.ObjectReference", 1) + `,`, + `DeprecatedTopology:` + mapStringForDeprecatedTopology + `,`, + `NodeName:` + valueToStringGenerated(this.NodeName) + `,`, + `Zone:` + valueToStringGenerated(this.Zone) + `,`, + `Hints:` + strings.Replace(this.Hints.String(), "EndpointHints", "EndpointHints", 1) + `,`, + `}`, + }, "") + return s +} +func (this *EndpointConditions) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&EndpointConditions{`, + `Ready:` + valueToStringGenerated(this.Ready) + `,`, + `Serving:` + valueToStringGenerated(this.Serving) + `,`, + `Terminating:` + valueToStringGenerated(this.Terminating) + `,`, + `}`, + }, "") + return s +} +func (this *EndpointHints) String() string { + if this == nil { + return "nil" + } + repeatedStringForForZones := "[]ForZone{" + for _, f := range this.ForZones { + repeatedStringForForZones += strings.Replace(strings.Replace(f.String(), "ForZone", "ForZone", 1), `&`, ``, 1) + "," + } + repeatedStringForForZones += "}" + s := strings.Join([]string{`&EndpointHints{`, + `ForZones:` + repeatedStringForForZones + `,`, + `}`, + }, "") + return s +} +func (this *EndpointPort) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&EndpointPort{`, + `Name:` + valueToStringGenerated(this.Name) + `,`, + `Protocol:` + valueToStringGenerated(this.Protocol) + `,`, + `Port:` + valueToStringGenerated(this.Port) + `,`, + `AppProtocol:` + valueToStringGenerated(this.AppProtocol) + `,`, + `}`, + }, "") + return s +} +func (this *EndpointSlice) String() string { + if this == nil { + return "nil" + } + repeatedStringForEndpoints := "[]Endpoint{" + for _, f := range this.Endpoints { + repeatedStringForEndpoints += strings.Replace(strings.Replace(f.String(), "Endpoint", "Endpoint", 1), `&`, ``, 1) + "," + } + repeatedStringForEndpoints += "}" + repeatedStringForPorts := "[]EndpointPort{" + for _, f := range this.Ports { + repeatedStringForPorts += strings.Replace(strings.Replace(f.String(), "EndpointPort", "EndpointPort", 1), `&`, ``, 1) + "," + } + repeatedStringForPorts += "}" + s := strings.Join([]string{`&EndpointSlice{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Endpoints:` + repeatedStringForEndpoints + `,`, + `Ports:` + repeatedStringForPorts + `,`, + `AddressType:` + fmt.Sprintf("%v", this.AddressType) + `,`, + `}`, + }, "") + return s +} +func (this *EndpointSliceList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]EndpointSlice{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "EndpointSlice", "EndpointSlice", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&EndpointSliceList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *ForZone) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ForZone{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *Endpoint) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Endpoint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Endpoint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addresses", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Addresses = append(m.Addresses, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Conditions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hostname", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Hostname = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TargetRef == nil { + m.TargetRef = &v1.ObjectReference{} + } + if err := m.TargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeprecatedTopology", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DeprecatedTopology == nil { + m.DeprecatedTopology = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.DeprecatedTopology[mapkey] = mapvalue + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.NodeName = &s + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Zone", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Zone = &s + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Hints == nil { + m.Hints = &EndpointHints{} + } + if err := m.Hints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EndpointConditions) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EndpointConditions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EndpointConditions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ready", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Ready = &b + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Serving", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Serving = &b + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Terminating", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Terminating = &b + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EndpointHints) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EndpointHints: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EndpointHints: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ForZones", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ForZones = append(m.ForZones, ForZone{}) + if err := m.ForZones[len(m.ForZones)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EndpointPort) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EndpointPort: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EndpointPort: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Name = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Protocol", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex]) + m.Protocol = &s + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Port = &v + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppProtocol", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.AppProtocol = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EndpointSlice) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EndpointSlice: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EndpointSlice: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Endpoints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Endpoints = append(m.Endpoints, Endpoint{}) + if err := m.Endpoints[len(m.Endpoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ports", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ports = append(m.Ports, EndpointPort{}) + if err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressType", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AddressType = AddressType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EndpointSliceList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EndpointSliceList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EndpointSliceList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, EndpointSlice{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ForZone) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ForZone: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ForZone: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGenerated + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGenerated + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") +) diff --git a/vendor/k8s.io/api/discovery/v1/generated.proto b/vendor/k8s.io/api/discovery/v1/generated.proto new file mode 100644 index 0000000000..5844965d09 --- /dev/null +++ b/vendor/k8s.io/api/discovery/v1/generated.proto @@ -0,0 +1,196 @@ +/* +Copyright 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. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = "proto2"; + +package k8s.io.api.discovery.v1; + +import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1"; + +// Endpoint represents a single logical "backend" implementing a service. +message Endpoint { + // addresses of this endpoint. The contents of this field are interpreted + // according to the corresponding EndpointSlice addressType field. Consumers + // must handle different types of addresses in the context of their own + // capabilities. This must contain at least one address but no more than + // 100. + // +listType=set + repeated string addresses = 1; + + // conditions contains information about the current status of the endpoint. + optional EndpointConditions conditions = 2; + + // hostname of this endpoint. This field may be used by consumers of + // endpoints to distinguish endpoints from each other (e.g. in DNS names). + // Multiple endpoints which use the same hostname should be considered + // fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS + // Label (RFC 1123) validation. + // +optional + optional string hostname = 3; + + // targetRef is a reference to a Kubernetes object that represents this + // endpoint. + // +optional + optional k8s.io.api.core.v1.ObjectReference targetRef = 4; + + // deprecatedTopology contains topology information part of the v1beta1 + // API. This field is deprecated, and will be removed when the v1beta1 + // API is removed (no sooner than kubernetes v1.24). While this field can + // hold values, it is not writable through the v1 API, and any attempts to + // write to it will be silently ignored. Topology information can be found + // in the zone and nodeName fields instead. + // +optional + map deprecatedTopology = 5; + + // nodeName represents the name of the Node hosting this endpoint. This can + // be used to determine endpoints local to a Node. This field can be enabled + // with the EndpointSliceNodeName feature gate. + // +optional + optional string nodeName = 6; + + // zone is the name of the Zone this endpoint exists in. + // +optional + optional string zone = 7; + + // hints contains information associated with how an endpoint should be + // consumed. + // +optional + optional EndpointHints hints = 8; +} + +// EndpointConditions represents the current condition of an endpoint. +message EndpointConditions { + // ready indicates that this endpoint is prepared to receive traffic, + // according to whatever system is managing the endpoint. A nil value + // indicates an unknown state. In most cases consumers should interpret this + // unknown state as ready. For compatibility reasons, ready should never be + // "true" for terminating endpoints. + // +optional + optional bool ready = 1; + + // serving is identical to ready except that it is set regardless of the + // terminating state of endpoints. This condition should be set to true for + // a ready endpoint that is terminating. If nil, consumers should defer to + // the ready condition. This field can be enabled with the + // EndpointSliceTerminatingCondition feature gate. + // +optional + optional bool serving = 2; + + // terminating indicates that this endpoint is terminating. A nil value + // indicates an unknown state. Consumers should interpret this unknown state + // to mean that the endpoint is not terminating. This field can be enabled + // with the EndpointSliceTerminatingCondition feature gate. + // +optional + optional bool terminating = 3; +} + +// EndpointHints provides hints describing how an endpoint should be consumed. +message EndpointHints { + // forZones indicates the zone(s) this endpoint should be consumed by to + // enable topology aware routing. + // +listType=atomic + repeated ForZone forZones = 1; +} + +// EndpointPort represents a Port used by an EndpointSlice +message EndpointPort { + // The name of this port. All ports in an EndpointSlice must have a unique + // name. If the EndpointSlice is dervied from a Kubernetes service, this + // corresponds to the Service.ports[].name. + // Name must either be an empty string or pass DNS_LABEL validation: + // * must be no more than 63 characters long. + // * must consist of lower case alphanumeric characters or '-'. + // * must start and end with an alphanumeric character. + // Default is empty string. + optional string name = 1; + + // The IP protocol for this port. + // Must be UDP, TCP, or SCTP. + // Default is TCP. + optional string protocol = 2; + + // The port number of the endpoint. + // If this is not specified, ports are not restricted and must be + // interpreted in the context of the specific consumer. + optional int32 port = 3; + + // The application protocol for this port. + // This field follows standard Kubernetes label syntax. + // Un-prefixed names are reserved for IANA standard service names (as per + // RFC-6335 and http://www.iana.org/assignments/service-names). + // Non-standard protocols should use prefixed names such as + // mycompany.com/my-custom-protocol. + // +optional + optional string appProtocol = 4; +} + +// EndpointSlice represents a subset of the endpoints that implement a service. +// For a given service there may be multiple EndpointSlice objects, selected by +// labels, which must be joined to produce the full set of endpoints. +message EndpointSlice { + // Standard object's metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // addressType specifies the type of address carried by this EndpointSlice. + // All addresses in this slice must be the same type. This field is + // immutable after creation. The following address types are currently + // supported: + // * IPv4: Represents an IPv4 Address. + // * IPv6: Represents an IPv6 Address. + // * FQDN: Represents a Fully Qualified Domain Name. + optional string addressType = 4; + + // endpoints is a list of unique endpoints in this slice. Each slice may + // include a maximum of 1000 endpoints. + // +listType=atomic + repeated Endpoint endpoints = 2; + + // ports specifies the list of network ports exposed by each endpoint in + // this slice. Each port must have a unique name. When ports is empty, it + // indicates that there are no defined ports. When a port is defined with a + // nil port value, it indicates "all ports". Each slice may include a + // maximum of 100 ports. + // +optional + // +listType=atomic + repeated EndpointPort ports = 3; +} + +// EndpointSliceList represents a list of endpoint slices +message EndpointSliceList { + // Standard list metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // List of endpoint slices + repeated EndpointSlice items = 2; +} + +// ForZone provides information about which zones should consume this endpoint. +message ForZone { + // name represents the name of the zone. + optional string name = 1; +} + diff --git a/vendor/k8s.io/api/discovery/v1/register.go b/vendor/k8s.io/api/discovery/v1/register.go new file mode 100644 index 0000000000..3eb8f38a37 --- /dev/null +++ b/vendor/k8s.io/api/discovery/v1/register.go @@ -0,0 +1,56 @@ +/* +Copyright 2019 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. +*/ + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name used in this package +const GroupName = "discovery.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + +// Kind takes an unqualified kind and returns a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + // SchemeBuilder is the scheme builder with scheme init functions to run for this API package + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + // AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme + AddToScheme = SchemeBuilder.AddToScheme +) + +// Adds the list of known types to the given scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &EndpointSlice{}, + &EndpointSliceList{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/api/discovery/v1/types.go b/vendor/k8s.io/api/discovery/v1/types.go new file mode 100644 index 0000000000..fa990efdb7 --- /dev/null +++ b/vendor/k8s.io/api/discovery/v1/types.go @@ -0,0 +1,194 @@ +/* +Copyright 2019 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. +*/ + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// EndpointSlice represents a subset of the endpoints that implement a service. +// For a given service there may be multiple EndpointSlice objects, selected by +// labels, which must be joined to produce the full set of endpoints. +type EndpointSlice struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + // addressType specifies the type of address carried by this EndpointSlice. + // All addresses in this slice must be the same type. This field is + // immutable after creation. The following address types are currently + // supported: + // * IPv4: Represents an IPv4 Address. + // * IPv6: Represents an IPv6 Address. + // * FQDN: Represents a Fully Qualified Domain Name. + AddressType AddressType `json:"addressType" protobuf:"bytes,4,rep,name=addressType"` + // endpoints is a list of unique endpoints in this slice. Each slice may + // include a maximum of 1000 endpoints. + // +listType=atomic + Endpoints []Endpoint `json:"endpoints" protobuf:"bytes,2,rep,name=endpoints"` + // ports specifies the list of network ports exposed by each endpoint in + // this slice. Each port must have a unique name. When ports is empty, it + // indicates that there are no defined ports. When a port is defined with a + // nil port value, it indicates "all ports". Each slice may include a + // maximum of 100 ports. + // +optional + // +listType=atomic + Ports []EndpointPort `json:"ports" protobuf:"bytes,3,rep,name=ports"` +} + +// AddressType represents the type of address referred to by an endpoint. +type AddressType string + +const ( + // AddressTypeIPv4 represents an IPv4 Address. + AddressTypeIPv4 = AddressType(v1.IPv4Protocol) + // AddressTypeIPv6 represents an IPv6 Address. + AddressTypeIPv6 = AddressType(v1.IPv6Protocol) + // AddressTypeFQDN represents a FQDN. + AddressTypeFQDN = AddressType("FQDN") +) + +// Endpoint represents a single logical "backend" implementing a service. +type Endpoint struct { + // addresses of this endpoint. The contents of this field are interpreted + // according to the corresponding EndpointSlice addressType field. Consumers + // must handle different types of addresses in the context of their own + // capabilities. This must contain at least one address but no more than + // 100. + // +listType=set + Addresses []string `json:"addresses" protobuf:"bytes,1,rep,name=addresses"` + // conditions contains information about the current status of the endpoint. + Conditions EndpointConditions `json:"conditions,omitempty" protobuf:"bytes,2,opt,name=conditions"` + // hostname of this endpoint. This field may be used by consumers of + // endpoints to distinguish endpoints from each other (e.g. in DNS names). + // Multiple endpoints which use the same hostname should be considered + // fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS + // Label (RFC 1123) validation. + // +optional + Hostname *string `json:"hostname,omitempty" protobuf:"bytes,3,opt,name=hostname"` + // targetRef is a reference to a Kubernetes object that represents this + // endpoint. + // +optional + TargetRef *v1.ObjectReference `json:"targetRef,omitempty" protobuf:"bytes,4,opt,name=targetRef"` + + // deprecatedTopology contains topology information part of the v1beta1 + // API. This field is deprecated, and will be removed when the v1beta1 + // API is removed (no sooner than kubernetes v1.24). While this field can + // hold values, it is not writable through the v1 API, and any attempts to + // write to it will be silently ignored. Topology information can be found + // in the zone and nodeName fields instead. + // +optional + DeprecatedTopology map[string]string `json:"deprecatedTopology,omitempty" protobuf:"bytes,5,opt,name=deprecatedTopology"` + + // nodeName represents the name of the Node hosting this endpoint. This can + // be used to determine endpoints local to a Node. This field can be enabled + // with the EndpointSliceNodeName feature gate. + // +optional + NodeName *string `json:"nodeName,omitempty" protobuf:"bytes,6,opt,name=nodeName"` + // zone is the name of the Zone this endpoint exists in. + // +optional + Zone *string `json:"zone,omitempty" protobuf:"bytes,7,opt,name=zone"` + // hints contains information associated with how an endpoint should be + // consumed. + // +optional + Hints *EndpointHints `json:"hints,omitempty" protobuf:"bytes,8,opt,name=hints"` +} + +// EndpointConditions represents the current condition of an endpoint. +type EndpointConditions struct { + // ready indicates that this endpoint is prepared to receive traffic, + // according to whatever system is managing the endpoint. A nil value + // indicates an unknown state. In most cases consumers should interpret this + // unknown state as ready. For compatibility reasons, ready should never be + // "true" for terminating endpoints. + // +optional + Ready *bool `json:"ready,omitempty" protobuf:"bytes,1,name=ready"` + + // serving is identical to ready except that it is set regardless of the + // terminating state of endpoints. This condition should be set to true for + // a ready endpoint that is terminating. If nil, consumers should defer to + // the ready condition. This field can be enabled with the + // EndpointSliceTerminatingCondition feature gate. + // +optional + Serving *bool `json:"serving,omitempty" protobuf:"bytes,2,name=serving"` + + // terminating indicates that this endpoint is terminating. A nil value + // indicates an unknown state. Consumers should interpret this unknown state + // to mean that the endpoint is not terminating. This field can be enabled + // with the EndpointSliceTerminatingCondition feature gate. + // +optional + Terminating *bool `json:"terminating,omitempty" protobuf:"bytes,3,name=terminating"` +} + +// EndpointHints provides hints describing how an endpoint should be consumed. +type EndpointHints struct { + // forZones indicates the zone(s) this endpoint should be consumed by to + // enable topology aware routing. + // +listType=atomic + ForZones []ForZone `json:"forZones,omitempty" protobuf:"bytes,1,name=forZones"` +} + +// ForZone provides information about which zones should consume this endpoint. +type ForZone struct { + // name represents the name of the zone. + Name string `json:"name" protobuf:"bytes,1,name=name"` +} + +// EndpointPort represents a Port used by an EndpointSlice +type EndpointPort struct { + // The name of this port. All ports in an EndpointSlice must have a unique + // name. If the EndpointSlice is dervied from a Kubernetes service, this + // corresponds to the Service.ports[].name. + // Name must either be an empty string or pass DNS_LABEL validation: + // * must be no more than 63 characters long. + // * must consist of lower case alphanumeric characters or '-'. + // * must start and end with an alphanumeric character. + // Default is empty string. + Name *string `json:"name,omitempty" protobuf:"bytes,1,name=name"` + // The IP protocol for this port. + // Must be UDP, TCP, or SCTP. + // Default is TCP. + Protocol *v1.Protocol `json:"protocol,omitempty" protobuf:"bytes,2,name=protocol"` + // The port number of the endpoint. + // If this is not specified, ports are not restricted and must be + // interpreted in the context of the specific consumer. + Port *int32 `json:"port,omitempty" protobuf:"bytes,3,opt,name=port"` + // The application protocol for this port. + // This field follows standard Kubernetes label syntax. + // Un-prefixed names are reserved for IANA standard service names (as per + // RFC-6335 and http://www.iana.org/assignments/service-names). + // Non-standard protocols should use prefixed names such as + // mycompany.com/my-custom-protocol. + // +optional + AppProtocol *string `json:"appProtocol,omitempty" protobuf:"bytes,4,name=appProtocol"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// EndpointSliceList represents a list of endpoint slices +type EndpointSliceList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata. + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + // List of endpoint slices + Items []EndpointSlice `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/vendor/k8s.io/api/discovery/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/discovery/v1/types_swagger_doc_generated.go new file mode 100644 index 0000000000..b424a1cf04 --- /dev/null +++ b/vendor/k8s.io/api/discovery/v1/types_swagger_doc_generated.go @@ -0,0 +1,109 @@ +/* +Copyright 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. +*/ + +package v1 + +// This file contains a collection of methods that can be used from go-restful to +// generate Swagger API documentation for its models. Please read this PR for more +// information on the implementation: https://github.com/emicklei/go-restful/pull/215 +// +// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if +// they are on one line! For multiple line or blocks that you want to ignore use ---. +// Any context after a --- is ignored. +// +// Those methods can be generated by using hack/update-generated-swagger-docs.sh + +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. +var map_Endpoint = map[string]string{ + "": "Endpoint represents a single logical \"backend\" implementing a service.", + "addresses": "addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.", + "conditions": "conditions contains information about the current status of the endpoint.", + "hostname": "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation.", + "targetRef": "targetRef is a reference to a Kubernetes object that represents this endpoint.", + "deprecatedTopology": "deprecatedTopology contains topology information part of the v1beta1 API. This field is deprecated, and will be removed when the v1beta1 API is removed (no sooner than kubernetes v1.24). While this field can hold values, it is not writable through the v1 API, and any attempts to write to it will be silently ignored. Topology information can be found in the zone and nodeName fields instead.", + "nodeName": "nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node. This field can be enabled with the EndpointSliceNodeName feature gate.", + "zone": "zone is the name of the Zone this endpoint exists in.", + "hints": "hints contains information associated with how an endpoint should be consumed.", +} + +func (Endpoint) SwaggerDoc() map[string]string { + return map_Endpoint +} + +var map_EndpointConditions = map[string]string{ + "": "EndpointConditions represents the current condition of an endpoint.", + "ready": "ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready. For compatibility reasons, ready should never be \"true\" for terminating endpoints.", + "serving": "serving is identical to ready except that it is set regardless of the terminating state of endpoints. This condition should be set to true for a ready endpoint that is terminating. If nil, consumers should defer to the ready condition. This field can be enabled with the EndpointSliceTerminatingCondition feature gate.", + "terminating": "terminating indicates that this endpoint is terminating. A nil value indicates an unknown state. Consumers should interpret this unknown state to mean that the endpoint is not terminating. This field can be enabled with the EndpointSliceTerminatingCondition feature gate.", +} + +func (EndpointConditions) SwaggerDoc() map[string]string { + return map_EndpointConditions +} + +var map_EndpointHints = map[string]string{ + "": "EndpointHints provides hints describing how an endpoint should be consumed.", + "forZones": "forZones indicates the zone(s) this endpoint should be consumed by to enable topology aware routing.", +} + +func (EndpointHints) SwaggerDoc() map[string]string { + return map_EndpointHints +} + +var map_EndpointPort = map[string]string{ + "": "EndpointPort represents a Port used by an EndpointSlice", + "name": "The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", + "protocol": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", + "port": "The port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.", + "appProtocol": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.", +} + +func (EndpointPort) SwaggerDoc() map[string]string { + return map_EndpointPort +} + +var map_EndpointSlice = map[string]string{ + "": "EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.", + "metadata": "Standard object's metadata.", + "addressType": "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.", + "endpoints": "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", + "ports": "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \"all ports\". Each slice may include a maximum of 100 ports.", +} + +func (EndpointSlice) SwaggerDoc() map[string]string { + return map_EndpointSlice +} + +var map_EndpointSliceList = map[string]string{ + "": "EndpointSliceList represents a list of endpoint slices", + "metadata": "Standard list metadata.", + "items": "List of endpoint slices", +} + +func (EndpointSliceList) SwaggerDoc() map[string]string { + return map_EndpointSliceList +} + +var map_ForZone = map[string]string{ + "": "ForZone provides information about which zones should consume this endpoint.", + "name": "name represents the name of the zone.", +} + +func (ForZone) SwaggerDoc() map[string]string { + return map_ForZone +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/discovery/v1alpha1/well_known_labels.go b/vendor/k8s.io/api/discovery/v1/well_known_labels.go similarity index 81% rename from vendor/k8s.io/api/discovery/v1alpha1/well_known_labels.go rename to vendor/k8s.io/api/discovery/v1/well_known_labels.go index 8f9c72f088..d949b5f1a7 100644 --- a/vendor/k8s.io/api/discovery/v1alpha1/well_known_labels.go +++ b/vendor/k8s.io/api/discovery/v1/well_known_labels.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1alpha1 +package v1 const ( // LabelServiceName is used to indicate the name of a Kubernetes service. @@ -25,4 +25,8 @@ const ( // same cluster. It is highly recommended to configure this label for all // EndpointSlices. LabelManagedBy = "endpointslice.kubernetes.io/managed-by" + // LabelSkipMirror can be set to true on an Endpoints resource to indicate + // that the EndpointSliceMirroring controller should not mirror this + // resource with EndpointSlices. + LabelSkipMirror = "endpointslice.kubernetes.io/skip-mirror" ) diff --git a/vendor/k8s.io/api/discovery/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/discovery/v1/zz_generated.deepcopy.go new file mode 100644 index 0000000000..31a912386f --- /dev/null +++ b/vendor/k8s.io/api/discovery/v1/zz_generated.deepcopy.go @@ -0,0 +1,257 @@ +// +build !ignore_autogenerated + +/* +Copyright 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. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Endpoint) DeepCopyInto(out *Endpoint) { + *out = *in + if in.Addresses != nil { + in, out := &in.Addresses, &out.Addresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + in.Conditions.DeepCopyInto(&out.Conditions) + if in.Hostname != nil { + in, out := &in.Hostname, &out.Hostname + *out = new(string) + **out = **in + } + if in.TargetRef != nil { + in, out := &in.TargetRef, &out.TargetRef + *out = new(corev1.ObjectReference) + **out = **in + } + if in.DeprecatedTopology != nil { + in, out := &in.DeprecatedTopology, &out.DeprecatedTopology + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodeName != nil { + in, out := &in.NodeName, &out.NodeName + *out = new(string) + **out = **in + } + if in.Zone != nil { + in, out := &in.Zone, &out.Zone + *out = new(string) + **out = **in + } + if in.Hints != nil { + in, out := &in.Hints, &out.Hints + *out = new(EndpointHints) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint. +func (in *Endpoint) DeepCopy() *Endpoint { + if in == nil { + return nil + } + out := new(Endpoint) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointConditions) DeepCopyInto(out *EndpointConditions) { + *out = *in + if in.Ready != nil { + in, out := &in.Ready, &out.Ready + *out = new(bool) + **out = **in + } + if in.Serving != nil { + in, out := &in.Serving, &out.Serving + *out = new(bool) + **out = **in + } + if in.Terminating != nil { + in, out := &in.Terminating, &out.Terminating + *out = new(bool) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConditions. +func (in *EndpointConditions) DeepCopy() *EndpointConditions { + if in == nil { + return nil + } + out := new(EndpointConditions) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointHints) DeepCopyInto(out *EndpointHints) { + *out = *in + if in.ForZones != nil { + in, out := &in.ForZones, &out.ForZones + *out = make([]ForZone, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointHints. +func (in *EndpointHints) DeepCopy() *EndpointHints { + if in == nil { + return nil + } + out := new(EndpointHints) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointPort) DeepCopyInto(out *EndpointPort) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(corev1.Protocol) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(int32) + **out = **in + } + if in.AppProtocol != nil { + in, out := &in.AppProtocol, &out.AppProtocol + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPort. +func (in *EndpointPort) DeepCopy() *EndpointPort { + if in == nil { + return nil + } + out := new(EndpointPort) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointSlice) DeepCopyInto(out *EndpointSlice) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + if in.Endpoints != nil { + in, out := &in.Endpoints, &out.Endpoints + *out = make([]Endpoint, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Ports != nil { + in, out := &in.Ports, &out.Ports + *out = make([]EndpointPort, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSlice. +func (in *EndpointSlice) DeepCopy() *EndpointSlice { + if in == nil { + return nil + } + out := new(EndpointSlice) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EndpointSlice) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointSliceList) DeepCopyInto(out *EndpointSliceList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]EndpointSlice, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSliceList. +func (in *EndpointSliceList) DeepCopy() *EndpointSliceList { + if in == nil { + return nil + } + out := new(EndpointSliceList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EndpointSliceList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ForZone) DeepCopyInto(out *ForZone) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForZone. +func (in *ForZone) DeepCopy() *ForZone { + if in == nil { + return nil + } + out := new(ForZone) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/api/discovery/v1alpha1/doc.go b/vendor/k8s.io/api/discovery/v1alpha1/doc.go deleted file mode 100644 index ffd6b0b54d..0000000000 --- a/vendor/k8s.io/api/discovery/v1alpha1/doc.go +++ /dev/null @@ -1,22 +0,0 @@ -/* -Copyright 2019 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. -*/ - -// +k8s:deepcopy-gen=package -// +k8s:protobuf-gen=package -// +k8s:openapi-gen=true -// +groupName=discovery.k8s.io - -package v1alpha1 // import "k8s.io/api/discovery/v1alpha1" diff --git a/vendor/k8s.io/api/discovery/v1alpha1/generated.pb.go b/vendor/k8s.io/api/discovery/v1alpha1/generated.pb.go deleted file mode 100644 index 5cbee6168c..0000000000 --- a/vendor/k8s.io/api/discovery/v1alpha1/generated.pb.go +++ /dev/null @@ -1,1823 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: k8s.io/kubernetes/vendor/k8s.io/api/discovery/v1alpha1/generated.proto - -package v1alpha1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - k8s_io_api_core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/api/core/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *Endpoint) Reset() { *m = Endpoint{} } -func (*Endpoint) ProtoMessage() {} -func (*Endpoint) Descriptor() ([]byte, []int) { - return fileDescriptor_772f83c5b34e07a5, []int{0} -} -func (m *Endpoint) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *Endpoint) XXX_Merge(src proto.Message) { - xxx_messageInfo_Endpoint.Merge(m, src) -} -func (m *Endpoint) XXX_Size() int { - return m.Size() -} -func (m *Endpoint) XXX_DiscardUnknown() { - xxx_messageInfo_Endpoint.DiscardUnknown(m) -} - -var xxx_messageInfo_Endpoint proto.InternalMessageInfo - -func (m *EndpointConditions) Reset() { *m = EndpointConditions{} } -func (*EndpointConditions) ProtoMessage() {} -func (*EndpointConditions) Descriptor() ([]byte, []int) { - return fileDescriptor_772f83c5b34e07a5, []int{1} -} -func (m *EndpointConditions) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EndpointConditions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *EndpointConditions) XXX_Merge(src proto.Message) { - xxx_messageInfo_EndpointConditions.Merge(m, src) -} -func (m *EndpointConditions) XXX_Size() int { - return m.Size() -} -func (m *EndpointConditions) XXX_DiscardUnknown() { - xxx_messageInfo_EndpointConditions.DiscardUnknown(m) -} - -var xxx_messageInfo_EndpointConditions proto.InternalMessageInfo - -func (m *EndpointPort) Reset() { *m = EndpointPort{} } -func (*EndpointPort) ProtoMessage() {} -func (*EndpointPort) Descriptor() ([]byte, []int) { - return fileDescriptor_772f83c5b34e07a5, []int{2} -} -func (m *EndpointPort) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EndpointPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *EndpointPort) XXX_Merge(src proto.Message) { - xxx_messageInfo_EndpointPort.Merge(m, src) -} -func (m *EndpointPort) XXX_Size() int { - return m.Size() -} -func (m *EndpointPort) XXX_DiscardUnknown() { - xxx_messageInfo_EndpointPort.DiscardUnknown(m) -} - -var xxx_messageInfo_EndpointPort proto.InternalMessageInfo - -func (m *EndpointSlice) Reset() { *m = EndpointSlice{} } -func (*EndpointSlice) ProtoMessage() {} -func (*EndpointSlice) Descriptor() ([]byte, []int) { - return fileDescriptor_772f83c5b34e07a5, []int{3} -} -func (m *EndpointSlice) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EndpointSlice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *EndpointSlice) XXX_Merge(src proto.Message) { - xxx_messageInfo_EndpointSlice.Merge(m, src) -} -func (m *EndpointSlice) XXX_Size() int { - return m.Size() -} -func (m *EndpointSlice) XXX_DiscardUnknown() { - xxx_messageInfo_EndpointSlice.DiscardUnknown(m) -} - -var xxx_messageInfo_EndpointSlice proto.InternalMessageInfo - -func (m *EndpointSliceList) Reset() { *m = EndpointSliceList{} } -func (*EndpointSliceList) ProtoMessage() {} -func (*EndpointSliceList) Descriptor() ([]byte, []int) { - return fileDescriptor_772f83c5b34e07a5, []int{4} -} -func (m *EndpointSliceList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EndpointSliceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *EndpointSliceList) XXX_Merge(src proto.Message) { - xxx_messageInfo_EndpointSliceList.Merge(m, src) -} -func (m *EndpointSliceList) XXX_Size() int { - return m.Size() -} -func (m *EndpointSliceList) XXX_DiscardUnknown() { - xxx_messageInfo_EndpointSliceList.DiscardUnknown(m) -} - -var xxx_messageInfo_EndpointSliceList proto.InternalMessageInfo - -func init() { - proto.RegisterType((*Endpoint)(nil), "k8s.io.api.discovery.v1alpha1.Endpoint") - proto.RegisterMapType((map[string]string)(nil), "k8s.io.api.discovery.v1alpha1.Endpoint.TopologyEntry") - proto.RegisterType((*EndpointConditions)(nil), "k8s.io.api.discovery.v1alpha1.EndpointConditions") - proto.RegisterType((*EndpointPort)(nil), "k8s.io.api.discovery.v1alpha1.EndpointPort") - proto.RegisterType((*EndpointSlice)(nil), "k8s.io.api.discovery.v1alpha1.EndpointSlice") - proto.RegisterType((*EndpointSliceList)(nil), "k8s.io.api.discovery.v1alpha1.EndpointSliceList") -} - -func init() { - proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/discovery/v1alpha1/generated.proto", fileDescriptor_772f83c5b34e07a5) -} - -var fileDescriptor_772f83c5b34e07a5 = []byte{ - // 801 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x4d, 0x8f, 0xe3, 0x44, - 0x10, 0x8d, 0x27, 0x13, 0xd6, 0xee, 0xec, 0x88, 0xdd, 0x16, 0x87, 0x68, 0x00, 0x7b, 0x14, 0x84, - 0x88, 0x34, 0xd0, 0x26, 0x23, 0x40, 0x2b, 0x38, 0x8d, 0x61, 0xf9, 0x90, 0x60, 0x19, 0x7a, 0xe7, - 0x80, 0x10, 0x07, 0x7a, 0xec, 0x5a, 0xc7, 0x24, 0x76, 0x5b, 0xdd, 0x9d, 0x48, 0xb9, 0xf1, 0x0f, - 0xe0, 0x47, 0x21, 0x34, 0xc7, 0x3d, 0xee, 0xc9, 0x62, 0xbc, 0x12, 0x3f, 0x62, 0x4f, 0xa8, 0xdb, - 0x9f, 0x43, 0x80, 0xcd, 0xcd, 0xfd, 0xaa, 0xde, 0xab, 0x7a, 0xe5, 0x2a, 0xf4, 0xf9, 0xf2, 0x81, - 0x24, 0x09, 0xf7, 0x97, 0xeb, 0x2b, 0x10, 0x19, 0x28, 0x90, 0xfe, 0x06, 0xb2, 0x88, 0x0b, 0xbf, - 0x0e, 0xb0, 0x3c, 0xf1, 0xa3, 0x44, 0x86, 0x7c, 0x03, 0x62, 0xeb, 0x6f, 0xe6, 0x6c, 0x95, 0x2f, - 0xd8, 0xdc, 0x8f, 0x21, 0x03, 0xc1, 0x14, 0x44, 0x24, 0x17, 0x5c, 0x71, 0xfc, 0x66, 0x95, 0x4e, - 0x58, 0x9e, 0x90, 0x36, 0x9d, 0x34, 0xe9, 0xc7, 0xef, 0xc5, 0x89, 0x5a, 0xac, 0xaf, 0x48, 0xc8, - 0x53, 0x3f, 0xe6, 0x31, 0xf7, 0x0d, 0xeb, 0x6a, 0xfd, 0xc4, 0xbc, 0xcc, 0xc3, 0x7c, 0x55, 0x6a, - 0xc7, 0xd3, 0x5e, 0xf1, 0x90, 0x0b, 0xf0, 0x37, 0x3b, 0x15, 0x8f, 0x3f, 0xe8, 0x72, 0x52, 0x16, - 0x2e, 0x92, 0x4c, 0xf7, 0x97, 0x2f, 0x63, 0x0d, 0x48, 0x3f, 0x05, 0xc5, 0xfe, 0x8d, 0xe5, 0xff, - 0x17, 0x4b, 0xac, 0x33, 0x95, 0xa4, 0xb0, 0x43, 0xf8, 0xe8, 0x65, 0x04, 0x19, 0x2e, 0x20, 0x65, - 0xff, 0xe4, 0x4d, 0xff, 0x1a, 0x22, 0xfb, 0x61, 0x16, 0xe5, 0x3c, 0xc9, 0x14, 0x3e, 0x45, 0x0e, - 0x8b, 0x22, 0x01, 0x52, 0x82, 0x9c, 0x58, 0x27, 0xc3, 0x99, 0x13, 0x1c, 0x95, 0x85, 0xe7, 0x9c, - 0x37, 0x20, 0xed, 0xe2, 0x18, 0x10, 0x0a, 0x79, 0x16, 0x25, 0x2a, 0xe1, 0x99, 0x9c, 0x1c, 0x9c, - 0x58, 0xb3, 0xf1, 0xd9, 0x9c, 0xfc, 0xef, 0x7c, 0x49, 0x53, 0xe9, 0xd3, 0x96, 0x18, 0xe0, 0xeb, - 0xc2, 0x1b, 0x94, 0x85, 0x87, 0x3a, 0x8c, 0xf6, 0x84, 0xf1, 0x0c, 0xd9, 0x0b, 0x2e, 0x55, 0xc6, - 0x52, 0x98, 0x0c, 0x4f, 0xac, 0x99, 0x13, 0xdc, 0x2d, 0x0b, 0xcf, 0xfe, 0xb2, 0xc6, 0x68, 0x1b, - 0xc5, 0x17, 0xc8, 0x51, 0x4c, 0xc4, 0xa0, 0x28, 0x3c, 0x99, 0x1c, 0x9a, 0x7e, 0xde, 0xea, 0xf7, - 0xa3, 0xff, 0x10, 0xd9, 0xcc, 0xc9, 0xb7, 0x57, 0x3f, 0x43, 0xa8, 0x93, 0x40, 0x40, 0x16, 0x42, - 0x65, 0xf1, 0xb2, 0x61, 0xd2, 0x4e, 0x04, 0x87, 0xc8, 0x56, 0x3c, 0xe7, 0x2b, 0x1e, 0x6f, 0x27, - 0xa3, 0x93, 0xe1, 0x6c, 0x7c, 0xf6, 0xe1, 0x9e, 0x06, 0xc9, 0x65, 0xcd, 0x7b, 0x98, 0x29, 0xb1, - 0x0d, 0xee, 0xd5, 0x26, 0xed, 0x06, 0xa6, 0xad, 0xb0, 0x36, 0x98, 0xf1, 0x08, 0x1e, 0x69, 0x83, - 0xaf, 0x74, 0x06, 0x1f, 0xd5, 0x18, 0x6d, 0xa3, 0xc7, 0x9f, 0xa0, 0xa3, 0x5b, 0xb2, 0xf8, 0x1e, - 0x1a, 0x2e, 0x61, 0x3b, 0xb1, 0x34, 0x8b, 0xea, 0x4f, 0xfc, 0x1a, 0x1a, 0x6d, 0xd8, 0x6a, 0x0d, - 0xe6, 0x7f, 0x38, 0xb4, 0x7a, 0x7c, 0x7c, 0xf0, 0xc0, 0x9a, 0xfe, 0x6a, 0x21, 0xbc, 0x3b, 0x7e, - 0xec, 0xa1, 0x91, 0x00, 0x16, 0x55, 0x22, 0x76, 0xe0, 0x94, 0x85, 0x37, 0xa2, 0x1a, 0xa0, 0x15, - 0x8e, 0xdf, 0x46, 0x77, 0x24, 0x88, 0x4d, 0x92, 0xc5, 0x46, 0xd3, 0x0e, 0xc6, 0x65, 0xe1, 0xdd, - 0x79, 0x5c, 0x41, 0xb4, 0x89, 0xe1, 0x39, 0x1a, 0x2b, 0x10, 0x69, 0x92, 0x31, 0xa5, 0x53, 0x87, - 0x26, 0xf5, 0xd5, 0xb2, 0xf0, 0xc6, 0x97, 0x1d, 0x4c, 0xfb, 0x39, 0xd3, 0x3f, 0x2c, 0x74, 0xb7, - 0xe9, 0xe8, 0x82, 0x0b, 0x85, 0xdf, 0x40, 0x87, 0xe6, 0x37, 0x1b, 0x3f, 0x81, 0x5d, 0x16, 0xde, - 0xa1, 0x99, 0x80, 0x41, 0xf1, 0x17, 0xc8, 0x36, 0x2b, 0x1b, 0xf2, 0x55, 0xe5, 0x2e, 0x38, 0xd5, - 0x73, 0xba, 0xa8, 0xb1, 0x17, 0x85, 0xf7, 0xfa, 0xee, 0x39, 0x92, 0x26, 0x4c, 0x5b, 0xb2, 0x2e, - 0x93, 0x73, 0xa1, 0x4c, 0x8f, 0xa3, 0xaa, 0x8c, 0x2e, 0x4f, 0x0d, 0xaa, 0x8d, 0xb0, 0x3c, 0x6f, - 0x68, 0x66, 0x8f, 0x9c, 0xca, 0xc8, 0x79, 0x07, 0xd3, 0x7e, 0xce, 0xf4, 0xf9, 0x01, 0x3a, 0x6a, - 0x8c, 0x3c, 0x5e, 0x25, 0x21, 0xe0, 0x9f, 0x90, 0xad, 0x2f, 0x3b, 0x62, 0x8a, 0x19, 0x37, 0xe3, - 0xb3, 0xf7, 0x7b, 0x8b, 0xd3, 0x1e, 0x28, 0xc9, 0x97, 0xb1, 0x06, 0x24, 0xd1, 0xd9, 0xdd, 0x6e, - 0x7e, 0x03, 0x8a, 0x75, 0x87, 0xd1, 0x61, 0xb4, 0x55, 0xc5, 0x9f, 0xa1, 0x71, 0x7d, 0x8a, 0x97, - 0xdb, 0x1c, 0xea, 0x36, 0xa7, 0x35, 0x65, 0x7c, 0xde, 0x85, 0x5e, 0xdc, 0x7e, 0xd2, 0x3e, 0x0d, - 0x7f, 0x8f, 0x1c, 0xa8, 0x1b, 0xd7, 0x27, 0xac, 0x37, 0xfc, 0x9d, 0x3d, 0x37, 0x3c, 0xb8, 0x5f, - 0x17, 0x73, 0x1a, 0x44, 0xd2, 0x4e, 0x0c, 0x5f, 0xa0, 0x91, 0x1e, 0xa7, 0x9c, 0x0c, 0x8d, 0xea, - 0xe9, 0x9e, 0xaa, 0xfa, 0x47, 0x04, 0x47, 0xb5, 0xf2, 0x48, 0xbf, 0x24, 0xad, 0x84, 0xa6, 0xbf, - 0x5b, 0xe8, 0xfe, 0xad, 0x29, 0x7f, 0x9d, 0x48, 0x85, 0x7f, 0xdc, 0x99, 0x34, 0xd9, 0x6f, 0xd2, - 0x9a, 0x6d, 0xe6, 0xdc, 0xde, 0x66, 0x83, 0xf4, 0xa6, 0xfc, 0x1d, 0x1a, 0x25, 0x0a, 0xd2, 0x66, - 0x36, 0xef, 0xee, 0xe9, 0xc2, 0xb4, 0xd7, 0xd9, 0xf8, 0x4a, 0x4b, 0xd0, 0x4a, 0x29, 0x20, 0xd7, - 0x37, 0xee, 0xe0, 0xe9, 0x8d, 0x3b, 0x78, 0x76, 0xe3, 0x0e, 0x7e, 0x29, 0x5d, 0xeb, 0xba, 0x74, - 0xad, 0xa7, 0xa5, 0x6b, 0x3d, 0x2b, 0x5d, 0xeb, 0xcf, 0xd2, 0xb5, 0x7e, 0x7b, 0xee, 0x0e, 0x7e, - 0xb0, 0x1b, 0xcd, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x03, 0x95, 0x92, 0xa5, 0xfa, 0x06, 0x00, - 0x00, -} - -func (m *Endpoint) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Endpoint) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Endpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.NodeName != nil { - i -= len(*m.NodeName) - copy(dAtA[i:], *m.NodeName) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeName))) - i-- - dAtA[i] = 0x32 - } - if len(m.Topology) > 0 { - keysForTopology := make([]string, 0, len(m.Topology)) - for k := range m.Topology { - keysForTopology = append(keysForTopology, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForTopology) - for iNdEx := len(keysForTopology) - 1; iNdEx >= 0; iNdEx-- { - v := m.Topology[string(keysForTopology[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForTopology[iNdEx]) - copy(dAtA[i:], keysForTopology[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForTopology[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x2a - } - } - if m.TargetRef != nil { - { - size, err := m.TargetRef.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.Hostname != nil { - i -= len(*m.Hostname) - copy(dAtA[i:], *m.Hostname) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Hostname))) - i-- - dAtA[i] = 0x1a - } - { - size, err := m.Conditions.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - if len(m.Addresses) > 0 { - for iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Addresses[iNdEx]) - copy(dAtA[i:], m.Addresses[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Addresses[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *EndpointConditions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *EndpointConditions) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EndpointConditions) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Terminating != nil { - i-- - if *m.Terminating { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - } - if m.Serving != nil { - i-- - if *m.Serving { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - } - if m.Ready != nil { - i-- - if *m.Ready { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *EndpointPort) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *EndpointPort) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EndpointPort) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.AppProtocol != nil { - i -= len(*m.AppProtocol) - copy(dAtA[i:], *m.AppProtocol) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.AppProtocol))) - i-- - dAtA[i] = 0x22 - } - if m.Port != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.Port)) - i-- - dAtA[i] = 0x18 - } - if m.Protocol != nil { - i -= len(*m.Protocol) - copy(dAtA[i:], *m.Protocol) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Protocol))) - i-- - dAtA[i] = 0x12 - } - if m.Name != nil { - i -= len(*m.Name) - copy(dAtA[i:], *m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Name))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *EndpointSlice) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *EndpointSlice) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EndpointSlice) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.AddressType) - copy(dAtA[i:], m.AddressType) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.AddressType))) - i-- - dAtA[i] = 0x22 - if len(m.Ports) > 0 { - for iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if len(m.Endpoints) > 0 { - for iNdEx := len(m.Endpoints) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Endpoints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *EndpointSliceList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *EndpointSliceList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EndpointSliceList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *Endpoint) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Addresses) > 0 { - for _, s := range m.Addresses { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = m.Conditions.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.Hostname != nil { - l = len(*m.Hostname) - n += 1 + l + sovGenerated(uint64(l)) - } - if m.TargetRef != nil { - l = m.TargetRef.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Topology) > 0 { - for k, v := range m.Topology { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if m.NodeName != nil { - l = len(*m.NodeName) - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *EndpointConditions) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Ready != nil { - n += 2 - } - if m.Serving != nil { - n += 2 - } - if m.Terminating != nil { - n += 2 - } - return n -} - -func (m *EndpointPort) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Name != nil { - l = len(*m.Name) - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Protocol != nil { - l = len(*m.Protocol) - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Port != nil { - n += 1 + sovGenerated(uint64(*m.Port)) - } - if m.AppProtocol != nil { - l = len(*m.AppProtocol) - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *EndpointSlice) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Endpoints) > 0 { - for _, e := range m.Endpoints { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Ports) > 0 { - for _, e := range m.Ports { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.AddressType) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *EndpointSliceList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Endpoint) String() string { - if this == nil { - return "nil" - } - keysForTopology := make([]string, 0, len(this.Topology)) - for k := range this.Topology { - keysForTopology = append(keysForTopology, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForTopology) - mapStringForTopology := "map[string]string{" - for _, k := range keysForTopology { - mapStringForTopology += fmt.Sprintf("%v: %v,", k, this.Topology[k]) - } - mapStringForTopology += "}" - s := strings.Join([]string{`&Endpoint{`, - `Addresses:` + fmt.Sprintf("%v", this.Addresses) + `,`, - `Conditions:` + strings.Replace(strings.Replace(this.Conditions.String(), "EndpointConditions", "EndpointConditions", 1), `&`, ``, 1) + `,`, - `Hostname:` + valueToStringGenerated(this.Hostname) + `,`, - `TargetRef:` + strings.Replace(fmt.Sprintf("%v", this.TargetRef), "ObjectReference", "v1.ObjectReference", 1) + `,`, - `Topology:` + mapStringForTopology + `,`, - `NodeName:` + valueToStringGenerated(this.NodeName) + `,`, - `}`, - }, "") - return s -} -func (this *EndpointConditions) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&EndpointConditions{`, - `Ready:` + valueToStringGenerated(this.Ready) + `,`, - `Serving:` + valueToStringGenerated(this.Serving) + `,`, - `Terminating:` + valueToStringGenerated(this.Terminating) + `,`, - `}`, - }, "") - return s -} -func (this *EndpointPort) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&EndpointPort{`, - `Name:` + valueToStringGenerated(this.Name) + `,`, - `Protocol:` + valueToStringGenerated(this.Protocol) + `,`, - `Port:` + valueToStringGenerated(this.Port) + `,`, - `AppProtocol:` + valueToStringGenerated(this.AppProtocol) + `,`, - `}`, - }, "") - return s -} -func (this *EndpointSlice) String() string { - if this == nil { - return "nil" - } - repeatedStringForEndpoints := "[]Endpoint{" - for _, f := range this.Endpoints { - repeatedStringForEndpoints += strings.Replace(strings.Replace(f.String(), "Endpoint", "Endpoint", 1), `&`, ``, 1) + "," - } - repeatedStringForEndpoints += "}" - repeatedStringForPorts := "[]EndpointPort{" - for _, f := range this.Ports { - repeatedStringForPorts += strings.Replace(strings.Replace(f.String(), "EndpointPort", "EndpointPort", 1), `&`, ``, 1) + "," - } - repeatedStringForPorts += "}" - s := strings.Join([]string{`&EndpointSlice{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Endpoints:` + repeatedStringForEndpoints + `,`, - `Ports:` + repeatedStringForPorts + `,`, - `AddressType:` + fmt.Sprintf("%v", this.AddressType) + `,`, - `}`, - }, "") - return s -} -func (this *EndpointSliceList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]EndpointSlice{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "EndpointSlice", "EndpointSlice", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&EndpointSliceList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Endpoint) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Endpoint: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Endpoint: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Addresses", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Addresses = append(m.Addresses, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Conditions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Hostname", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Hostname = &s - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetRef", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.TargetRef == nil { - m.TargetRef = &v1.ObjectReference{} - } - if err := m.TargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Topology", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Topology == nil { - m.Topology = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Topology[mapkey] = mapvalue - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NodeName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.NodeName = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EndpointConditions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EndpointConditions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EndpointConditions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Ready", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Ready = &b - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Serving", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Serving = &b - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Terminating", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Terminating = &b - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EndpointPort) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EndpointPort: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EndpointPort: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Name = &s - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Protocol", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex]) - m.Protocol = &s - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Port = &v - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AppProtocol", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.AppProtocol = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EndpointSlice) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EndpointSlice: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EndpointSlice: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Endpoints", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Endpoints = append(m.Endpoints, Endpoint{}) - if err := m.Endpoints[len(m.Endpoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ports", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Ports = append(m.Ports, EndpointPort{}) - if err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AddressType", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AddressType = AddressType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EndpointSliceList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EndpointSliceList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EndpointSliceList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, EndpointSlice{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/k8s.io/api/discovery/v1alpha1/generated.proto b/vendor/k8s.io/api/discovery/v1alpha1/generated.proto deleted file mode 100644 index 4b66a6c57b..0000000000 --- a/vendor/k8s.io/api/discovery/v1alpha1/generated.proto +++ /dev/null @@ -1,179 +0,0 @@ -/* -Copyright 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. -*/ - - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = "proto2"; - -package k8s.io.api.discovery.v1alpha1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1alpha1"; - -// Endpoint represents a single logical "backend" implementing a service. -message Endpoint { - // addresses of this endpoint. The contents of this field are interpreted - // according to the corresponding EndpointSlice addressType field. Consumers - // must handle different types of addresses in the context of their own - // capabilities. This must contain at least one address but no more than - // 100. - // +listType=set - repeated string addresses = 1; - - // conditions contains information about the current status of the endpoint. - optional EndpointConditions conditions = 2; - - // hostname of this endpoint. This field may be used by consumers of - // endpoints to distinguish endpoints from each other (e.g. in DNS names). - // Multiple endpoints which use the same hostname should be considered - // fungible (e.g. multiple A values in DNS). Must be lowercase and pass - // DNS label (RFC 1123) validation. - // +optional - optional string hostname = 3; - - // targetRef is a reference to a Kubernetes object that represents this - // endpoint. - // +optional - optional k8s.io.api.core.v1.ObjectReference targetRef = 4; - - // topology contains arbitrary topology information associated with the - // endpoint. These key/value pairs must conform with the label format. - // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels - // Topology may include a maximum of 16 key/value pairs. This includes, but - // is not limited to the following well known keys: - // * kubernetes.io/hostname: the value indicates the hostname of the node - // where the endpoint is located. This should match the corresponding - // node label. - // * topology.kubernetes.io/zone: the value indicates the zone where the - // endpoint is located. This should match the corresponding node label. - // * topology.kubernetes.io/region: the value indicates the region where the - // endpoint is located. This should match the corresponding node label. - // This field is deprecated and will be removed in future api versions. - // +optional - map topology = 5; - - // nodeName represents the name of the Node hosting this endpoint. This can - // be used to determine endpoints local to a Node. This field can be enabled - // with the EndpointSliceNodeName feature gate. - // +optional - optional string nodeName = 6; -} - -// EndpointConditions represents the current condition of an endpoint. -message EndpointConditions { - // ready indicates that this endpoint is prepared to receive traffic, - // according to whatever system is managing the endpoint. A nil value - // indicates an unknown state. In most cases consumers should interpret this - // unknown state as ready. For compatibility reasons, ready should never be - // "true" for terminating endpoints. - // +optional - optional bool ready = 1; - - // serving is identical to ready except that it is set regardless of the - // terminating state of endpoints. This condition should be set to true for - // a ready endpoint that is terminating. If nil, consumers should defer to - // the ready condition. This field can be enabled with the - // EndpointSliceTerminatingCondition feature gate. - // +optional - optional bool serving = 2; - - // terminating indicates that this endpoint is terminating. A nil value - // indicates an unknown state. Consumers should interpret this unknown state - // to mean that the endpoint is not terminating. This field can be enabled - // with the EndpointSliceTerminatingCondition feature gate. - // +optional - optional bool terminating = 3; -} - -// EndpointPort represents a Port used by an EndpointSlice -message EndpointPort { - // The name of this port. All ports in an EndpointSlice must have a unique - // name. If the EndpointSlice is dervied from a Kubernetes service, this - // corresponds to the Service.ports[].name. - // Name must either be an empty string or pass DNS_LABEL validation: - // * must be no more than 63 characters long. - // * must consist of lower case alphanumeric characters or '-'. - // * must start and end with an alphanumeric character. - // Default is empty string. - optional string name = 1; - - // The IP protocol for this port. - // Must be UDP, TCP, or SCTP. - // Default is TCP. - optional string protocol = 2; - - // The port number of the endpoint. - // If this is not specified, ports are not restricted and must be - // interpreted in the context of the specific consumer. - optional int32 port = 3; - - // The application protocol for this port. - // This field follows standard Kubernetes label syntax. - // Un-prefixed names are reserved for IANA standard service names (as per - // RFC-6335 and http://www.iana.org/assignments/service-names). - // Non-standard protocols should use prefixed names. - // Default is empty string. - optional string appProtocol = 4; -} - -// EndpointSlice represents a subset of the endpoints that implement a service. -// For a given service there may be multiple EndpointSlice objects, selected by -// labels, which must be joined to produce the full set of endpoints. -message EndpointSlice { - // Standard object's metadata. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // addressType specifies the type of address carried by this EndpointSlice. - // All addresses in this slice must be the same type. This field is - // immutable after creation. The following address types are currently - // supported: - // * IPv4: Represents an IPv4 Address. - // * IPv6: Represents an IPv6 Address. - // * FQDN: Represents a Fully Qualified Domain Name. - optional string addressType = 4; - - // endpoints is a list of unique endpoints in this slice. Each slice may - // include a maximum of 1000 endpoints. - // +listType=atomic - repeated Endpoint endpoints = 2; - - // ports specifies the list of network ports exposed by each endpoint in - // this slice. Each port must have a unique name. When ports is empty, it - // indicates that there are no defined ports. When a port is defined with a - // nil port value, it indicates "all ports". Each slice may include a - // maximum of 100 ports. - // +optional - // +listType=atomic - repeated EndpointPort ports = 3; -} - -// EndpointSliceList represents a list of endpoint slices -message EndpointSliceList { - // Standard list metadata. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // List of endpoint slices - repeated EndpointSlice items = 2; -} - diff --git a/vendor/k8s.io/api/discovery/v1alpha1/register.go b/vendor/k8s.io/api/discovery/v1alpha1/register.go deleted file mode 100644 index 55b73f992f..0000000000 --- a/vendor/k8s.io/api/discovery/v1alpha1/register.go +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright 2019 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. -*/ - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// GroupName is the group name used in this package -const GroupName = "discovery.k8s.io" - -// SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} - -// Kind takes an unqualified kind and returns a Group qualified GroupKind -func Kind(kind string) schema.GroupKind { - return SchemeGroupVersion.WithKind(kind).GroupKind() -} - -// Resource takes an unqualified resource and returns a Group qualified GroupResource -func Resource(resource string) schema.GroupResource { - return SchemeGroupVersion.WithResource(resource).GroupResource() -} - -var ( - // SchemeBuilder is the scheme builder with scheme init functions to run for this API package - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - // AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme - AddToScheme = SchemeBuilder.AddToScheme -) - -// Adds the list of known types to the given scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(SchemeGroupVersion, - &EndpointSlice{}, - &EndpointSliceList{}, - ) - metav1.AddToGroupVersion(scheme, SchemeGroupVersion) - return nil -} diff --git a/vendor/k8s.io/api/discovery/v1alpha1/types.go b/vendor/k8s.io/api/discovery/v1alpha1/types.go deleted file mode 100644 index 34b706ea89..0000000000 --- a/vendor/k8s.io/api/discovery/v1alpha1/types.go +++ /dev/null @@ -1,183 +0,0 @@ -/* -Copyright 2019 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. -*/ - -package v1alpha1 - -import ( - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// EndpointSlice represents a subset of the endpoints that implement a service. -// For a given service there may be multiple EndpointSlice objects, selected by -// labels, which must be joined to produce the full set of endpoints. -type EndpointSlice struct { - metav1.TypeMeta `json:",inline"` - // Standard object's metadata. - // +optional - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - // addressType specifies the type of address carried by this EndpointSlice. - // All addresses in this slice must be the same type. This field is - // immutable after creation. The following address types are currently - // supported: - // * IPv4: Represents an IPv4 Address. - // * IPv6: Represents an IPv6 Address. - // * FQDN: Represents a Fully Qualified Domain Name. - AddressType AddressType `json:"addressType" protobuf:"bytes,4,rep,name=addressType"` - // endpoints is a list of unique endpoints in this slice. Each slice may - // include a maximum of 1000 endpoints. - // +listType=atomic - Endpoints []Endpoint `json:"endpoints" protobuf:"bytes,2,rep,name=endpoints"` - // ports specifies the list of network ports exposed by each endpoint in - // this slice. Each port must have a unique name. When ports is empty, it - // indicates that there are no defined ports. When a port is defined with a - // nil port value, it indicates "all ports". Each slice may include a - // maximum of 100 ports. - // +optional - // +listType=atomic - Ports []EndpointPort `json:"ports" protobuf:"bytes,3,rep,name=ports"` -} - -// AddressType represents the type of address referred to by an endpoint. -type AddressType string - -const ( - // AddressTypeIP represents an IP Address. - // This address type has been deprecated and has been replaced by the IPv4 - // and IPv6 adddress types. New resources with this address type will be - // considered invalid. This will be fully removed in 1.18. - // +deprecated - AddressTypeIP = AddressType("IP") - // AddressTypeIPv4 represents an IPv4 Address. - AddressTypeIPv4 = AddressType(v1.IPv4Protocol) - // AddressTypeIPv6 represents an IPv6 Address. - AddressTypeIPv6 = AddressType(v1.IPv6Protocol) - // AddressTypeFQDN represents a FQDN. - AddressTypeFQDN = AddressType("FQDN") -) - -// Endpoint represents a single logical "backend" implementing a service. -type Endpoint struct { - // addresses of this endpoint. The contents of this field are interpreted - // according to the corresponding EndpointSlice addressType field. Consumers - // must handle different types of addresses in the context of their own - // capabilities. This must contain at least one address but no more than - // 100. - // +listType=set - Addresses []string `json:"addresses" protobuf:"bytes,1,rep,name=addresses"` - // conditions contains information about the current status of the endpoint. - Conditions EndpointConditions `json:"conditions,omitempty" protobuf:"bytes,2,opt,name=conditions"` - // hostname of this endpoint. This field may be used by consumers of - // endpoints to distinguish endpoints from each other (e.g. in DNS names). - // Multiple endpoints which use the same hostname should be considered - // fungible (e.g. multiple A values in DNS). Must be lowercase and pass - // DNS label (RFC 1123) validation. - // +optional - Hostname *string `json:"hostname,omitempty" protobuf:"bytes,3,opt,name=hostname"` - // targetRef is a reference to a Kubernetes object that represents this - // endpoint. - // +optional - TargetRef *v1.ObjectReference `json:"targetRef,omitempty" protobuf:"bytes,4,opt,name=targetRef"` - // topology contains arbitrary topology information associated with the - // endpoint. These key/value pairs must conform with the label format. - // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels - // Topology may include a maximum of 16 key/value pairs. This includes, but - // is not limited to the following well known keys: - // * kubernetes.io/hostname: the value indicates the hostname of the node - // where the endpoint is located. This should match the corresponding - // node label. - // * topology.kubernetes.io/zone: the value indicates the zone where the - // endpoint is located. This should match the corresponding node label. - // * topology.kubernetes.io/region: the value indicates the region where the - // endpoint is located. This should match the corresponding node label. - // This field is deprecated and will be removed in future api versions. - // +optional - Topology map[string]string `json:"topology,omitempty" protobuf:"bytes,5,opt,name=topology"` - // nodeName represents the name of the Node hosting this endpoint. This can - // be used to determine endpoints local to a Node. This field can be enabled - // with the EndpointSliceNodeName feature gate. - // +optional - NodeName *string `json:"nodeName,omitempty" protobuf:"bytes,6,opt,name=nodeName"` -} - -// EndpointConditions represents the current condition of an endpoint. -type EndpointConditions struct { - // ready indicates that this endpoint is prepared to receive traffic, - // according to whatever system is managing the endpoint. A nil value - // indicates an unknown state. In most cases consumers should interpret this - // unknown state as ready. For compatibility reasons, ready should never be - // "true" for terminating endpoints. - // +optional - Ready *bool `json:"ready,omitempty" protobuf:"bytes,1,name=ready"` - - // serving is identical to ready except that it is set regardless of the - // terminating state of endpoints. This condition should be set to true for - // a ready endpoint that is terminating. If nil, consumers should defer to - // the ready condition. This field can be enabled with the - // EndpointSliceTerminatingCondition feature gate. - // +optional - Serving *bool `json:"serving,omitempty" protobuf:"bytes,2,name=serving"` - - // terminating indicates that this endpoint is terminating. A nil value - // indicates an unknown state. Consumers should interpret this unknown state - // to mean that the endpoint is not terminating. This field can be enabled - // with the EndpointSliceTerminatingCondition feature gate. - // +optional - Terminating *bool `json:"terminating,omitempty" protobuf:"bytes,3,name=terminating"` -} - -// EndpointPort represents a Port used by an EndpointSlice -type EndpointPort struct { - // The name of this port. All ports in an EndpointSlice must have a unique - // name. If the EndpointSlice is dervied from a Kubernetes service, this - // corresponds to the Service.ports[].name. - // Name must either be an empty string or pass DNS_LABEL validation: - // * must be no more than 63 characters long. - // * must consist of lower case alphanumeric characters or '-'. - // * must start and end with an alphanumeric character. - // Default is empty string. - Name *string `json:"name,omitempty" protobuf:"bytes,1,name=name"` - // The IP protocol for this port. - // Must be UDP, TCP, or SCTP. - // Default is TCP. - Protocol *v1.Protocol `json:"protocol,omitempty" protobuf:"bytes,2,name=protocol"` - // The port number of the endpoint. - // If this is not specified, ports are not restricted and must be - // interpreted in the context of the specific consumer. - Port *int32 `json:"port,omitempty" protobuf:"bytes,3,opt,name=port"` - // The application protocol for this port. - // This field follows standard Kubernetes label syntax. - // Un-prefixed names are reserved for IANA standard service names (as per - // RFC-6335 and http://www.iana.org/assignments/service-names). - // Non-standard protocols should use prefixed names. - // Default is empty string. - AppProtocol *string `json:"appProtocol,omitempty" protobuf:"bytes,4,name=appProtocol"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// EndpointSliceList represents a list of endpoint slices -type EndpointSliceList struct { - metav1.TypeMeta `json:",inline"` - // Standard list metadata. - // +optional - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - // List of endpoint slices - Items []EndpointSlice `json:"items" protobuf:"bytes,2,rep,name=items"` -} diff --git a/vendor/k8s.io/api/discovery/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/discovery/v1alpha1/types_swagger_doc_generated.go deleted file mode 100644 index f6c983689a..0000000000 --- a/vendor/k8s.io/api/discovery/v1alpha1/types_swagger_doc_generated.go +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright 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. -*/ - -package v1alpha1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-generated-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. -var map_Endpoint = map[string]string{ - "": "Endpoint represents a single logical \"backend\" implementing a service.", - "addresses": "addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.", - "conditions": "conditions contains information about the current status of the endpoint.", - "hostname": "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS label (RFC 1123) validation.", - "targetRef": "targetRef is a reference to a Kubernetes object that represents this endpoint.", - "topology": "topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\n where the endpoint is located. This should match the corresponding\n node label.\n* topology.kubernetes.io/zone: the value indicates the zone where the\n endpoint is located. This should match the corresponding node label.\n* topology.kubernetes.io/region: the value indicates the region where the\n endpoint is located. This should match the corresponding node label.\nThis field is deprecated and will be removed in future api versions.", - "nodeName": "nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node. This field can be enabled with the EndpointSliceNodeName feature gate.", -} - -func (Endpoint) SwaggerDoc() map[string]string { - return map_Endpoint -} - -var map_EndpointConditions = map[string]string{ - "": "EndpointConditions represents the current condition of an endpoint.", - "ready": "ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready. For compatibility reasons, ready should never be \"true\" for terminating endpoints.", - "serving": "serving is identical to ready except that it is set regardless of the terminating state of endpoints. This condition should be set to true for a ready endpoint that is terminating. If nil, consumers should defer to the ready condition. This field can be enabled with the EndpointSliceTerminatingCondition feature gate.", - "terminating": "terminating indicates that this endpoint is terminating. A nil value indicates an unknown state. Consumers should interpret this unknown state to mean that the endpoint is not terminating. This field can be enabled with the EndpointSliceTerminatingCondition feature gate.", -} - -func (EndpointConditions) SwaggerDoc() map[string]string { - return map_EndpointConditions -} - -var map_EndpointPort = map[string]string{ - "": "EndpointPort represents a Port used by an EndpointSlice", - "name": "The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", - "protocol": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - "port": "The port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.", - "appProtocol": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names. Default is empty string.", -} - -func (EndpointPort) SwaggerDoc() map[string]string { - return map_EndpointPort -} - -var map_EndpointSlice = map[string]string{ - "": "EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.", - "metadata": "Standard object's metadata.", - "addressType": "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.", - "endpoints": "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", - "ports": "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \"all ports\". Each slice may include a maximum of 100 ports.", -} - -func (EndpointSlice) SwaggerDoc() map[string]string { - return map_EndpointSlice -} - -var map_EndpointSliceList = map[string]string{ - "": "EndpointSliceList represents a list of endpoint slices", - "metadata": "Standard list metadata.", - "items": "List of endpoint slices", -} - -func (EndpointSliceList) SwaggerDoc() map[string]string { - return map_EndpointSliceList -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/discovery/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/api/discovery/v1alpha1/zz_generated.deepcopy.go deleted file mode 100644 index 13e54d5007..0000000000 --- a/vendor/k8s.io/api/discovery/v1alpha1/zz_generated.deepcopy.go +++ /dev/null @@ -1,210 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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. -*/ - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1 "k8s.io/api/core/v1" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Endpoint) DeepCopyInto(out *Endpoint) { - *out = *in - if in.Addresses != nil { - in, out := &in.Addresses, &out.Addresses - *out = make([]string, len(*in)) - copy(*out, *in) - } - in.Conditions.DeepCopyInto(&out.Conditions) - if in.Hostname != nil { - in, out := &in.Hostname, &out.Hostname - *out = new(string) - **out = **in - } - if in.TargetRef != nil { - in, out := &in.TargetRef, &out.TargetRef - *out = new(v1.ObjectReference) - **out = **in - } - if in.Topology != nil { - in, out := &in.Topology, &out.Topology - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.NodeName != nil { - in, out := &in.NodeName, &out.NodeName - *out = new(string) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint. -func (in *Endpoint) DeepCopy() *Endpoint { - if in == nil { - return nil - } - out := new(Endpoint) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EndpointConditions) DeepCopyInto(out *EndpointConditions) { - *out = *in - if in.Ready != nil { - in, out := &in.Ready, &out.Ready - *out = new(bool) - **out = **in - } - if in.Serving != nil { - in, out := &in.Serving, &out.Serving - *out = new(bool) - **out = **in - } - if in.Terminating != nil { - in, out := &in.Terminating, &out.Terminating - *out = new(bool) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConditions. -func (in *EndpointConditions) DeepCopy() *EndpointConditions { - if in == nil { - return nil - } - out := new(EndpointConditions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EndpointPort) DeepCopyInto(out *EndpointPort) { - *out = *in - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol - *out = new(v1.Protocol) - **out = **in - } - if in.Port != nil { - in, out := &in.Port, &out.Port - *out = new(int32) - **out = **in - } - if in.AppProtocol != nil { - in, out := &in.AppProtocol, &out.AppProtocol - *out = new(string) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPort. -func (in *EndpointPort) DeepCopy() *EndpointPort { - if in == nil { - return nil - } - out := new(EndpointPort) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EndpointSlice) DeepCopyInto(out *EndpointSlice) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Endpoints != nil { - in, out := &in.Endpoints, &out.Endpoints - *out = make([]Endpoint, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Ports != nil { - in, out := &in.Ports, &out.Ports - *out = make([]EndpointPort, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSlice. -func (in *EndpointSlice) DeepCopy() *EndpointSlice { - if in == nil { - return nil - } - out := new(EndpointSlice) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *EndpointSlice) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EndpointSliceList) DeepCopyInto(out *EndpointSliceList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]EndpointSlice, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSliceList. -func (in *EndpointSliceList) DeepCopy() *EndpointSliceList { - if in == nil { - return nil - } - out := new(EndpointSliceList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *EndpointSliceList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/vendor/k8s.io/api/discovery/v1beta1/generated.pb.go b/vendor/k8s.io/api/discovery/v1beta1/generated.pb.go index 6caab402ca..e024cc0a16 100644 --- a/vendor/k8s.io/api/discovery/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/discovery/v1beta1/generated.pb.go @@ -102,10 +102,38 @@ func (m *EndpointConditions) XXX_DiscardUnknown() { var xxx_messageInfo_EndpointConditions proto.InternalMessageInfo +func (m *EndpointHints) Reset() { *m = EndpointHints{} } +func (*EndpointHints) ProtoMessage() {} +func (*EndpointHints) Descriptor() ([]byte, []int) { + return fileDescriptor_ece80bbc872d519b, []int{2} +} +func (m *EndpointHints) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EndpointHints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *EndpointHints) XXX_Merge(src proto.Message) { + xxx_messageInfo_EndpointHints.Merge(m, src) +} +func (m *EndpointHints) XXX_Size() int { + return m.Size() +} +func (m *EndpointHints) XXX_DiscardUnknown() { + xxx_messageInfo_EndpointHints.DiscardUnknown(m) +} + +var xxx_messageInfo_EndpointHints proto.InternalMessageInfo + func (m *EndpointPort) Reset() { *m = EndpointPort{} } func (*EndpointPort) ProtoMessage() {} func (*EndpointPort) Descriptor() ([]byte, []int) { - return fileDescriptor_ece80bbc872d519b, []int{2} + return fileDescriptor_ece80bbc872d519b, []int{3} } func (m *EndpointPort) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -133,7 +161,7 @@ var xxx_messageInfo_EndpointPort proto.InternalMessageInfo func (m *EndpointSlice) Reset() { *m = EndpointSlice{} } func (*EndpointSlice) ProtoMessage() {} func (*EndpointSlice) Descriptor() ([]byte, []int) { - return fileDescriptor_ece80bbc872d519b, []int{3} + return fileDescriptor_ece80bbc872d519b, []int{4} } func (m *EndpointSlice) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -161,7 +189,7 @@ var xxx_messageInfo_EndpointSlice proto.InternalMessageInfo func (m *EndpointSliceList) Reset() { *m = EndpointSliceList{} } func (*EndpointSliceList) ProtoMessage() {} func (*EndpointSliceList) Descriptor() ([]byte, []int) { - return fileDescriptor_ece80bbc872d519b, []int{4} + return fileDescriptor_ece80bbc872d519b, []int{5} } func (m *EndpointSliceList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -186,13 +214,43 @@ func (m *EndpointSliceList) XXX_DiscardUnknown() { var xxx_messageInfo_EndpointSliceList proto.InternalMessageInfo +func (m *ForZone) Reset() { *m = ForZone{} } +func (*ForZone) ProtoMessage() {} +func (*ForZone) Descriptor() ([]byte, []int) { + return fileDescriptor_ece80bbc872d519b, []int{6} +} +func (m *ForZone) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ForZone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ForZone) XXX_Merge(src proto.Message) { + xxx_messageInfo_ForZone.Merge(m, src) +} +func (m *ForZone) XXX_Size() int { + return m.Size() +} +func (m *ForZone) XXX_DiscardUnknown() { + xxx_messageInfo_ForZone.DiscardUnknown(m) +} + +var xxx_messageInfo_ForZone proto.InternalMessageInfo + func init() { proto.RegisterType((*Endpoint)(nil), "k8s.io.api.discovery.v1beta1.Endpoint") proto.RegisterMapType((map[string]string)(nil), "k8s.io.api.discovery.v1beta1.Endpoint.TopologyEntry") proto.RegisterType((*EndpointConditions)(nil), "k8s.io.api.discovery.v1beta1.EndpointConditions") + proto.RegisterType((*EndpointHints)(nil), "k8s.io.api.discovery.v1beta1.EndpointHints") proto.RegisterType((*EndpointPort)(nil), "k8s.io.api.discovery.v1beta1.EndpointPort") proto.RegisterType((*EndpointSlice)(nil), "k8s.io.api.discovery.v1beta1.EndpointSlice") proto.RegisterType((*EndpointSliceList)(nil), "k8s.io.api.discovery.v1beta1.EndpointSliceList") + proto.RegisterType((*ForZone)(nil), "k8s.io.api.discovery.v1beta1.ForZone") } func init() { @@ -200,57 +258,62 @@ func init() { } var fileDescriptor_ece80bbc872d519b = []byte{ - // 798 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x4d, 0x8f, 0xe3, 0x44, - 0x10, 0x8d, 0x27, 0x63, 0xc6, 0xee, 0xec, 0x88, 0xdd, 0x16, 0x87, 0x68, 0x58, 0xd9, 0xa3, 0x20, - 0x50, 0xc4, 0x68, 0x6d, 0x66, 0xb5, 0x42, 0x2b, 0x38, 0x8d, 0x61, 0x04, 0x48, 0xb0, 0x1b, 0xf5, - 0x46, 0x42, 0x42, 0x1c, 0xe8, 0xd8, 0xb5, 0x8e, 0x49, 0xec, 0xb6, 0xba, 0x3b, 0x91, 0x72, 0xe3, - 0x1f, 0xc0, 0x7f, 0x42, 0x42, 0x73, 0xdc, 0xe3, 0x9e, 0x2c, 0x62, 0xf8, 0x15, 0x7b, 0x42, 0xdd, - 0xfe, 0x4a, 0x08, 0x1f, 0xb9, 0x75, 0xbf, 0xaa, 0xf7, 0xaa, 0x5e, 0x75, 0x17, 0xba, 0x5d, 0x3c, - 0x15, 0x5e, 0xc2, 0xfc, 0xc5, 0x6a, 0x06, 0x3c, 0x03, 0x09, 0xc2, 0x5f, 0x43, 0x16, 0x31, 0xee, - 0xd7, 0x01, 0x9a, 0x27, 0x7e, 0x94, 0x88, 0x90, 0xad, 0x81, 0x6f, 0xfc, 0xf5, 0xf5, 0x0c, 0x24, - 0xbd, 0xf6, 0x63, 0xc8, 0x80, 0x53, 0x09, 0x91, 0x97, 0x73, 0x26, 0x19, 0x7e, 0x58, 0x65, 0x7b, - 0x34, 0x4f, 0xbc, 0x36, 0xdb, 0xab, 0xb3, 0x2f, 0x1e, 0xc5, 0x89, 0x9c, 0xaf, 0x66, 0x5e, 0xc8, - 0x52, 0x3f, 0x66, 0x31, 0xf3, 0x35, 0x69, 0xb6, 0x7a, 0xa9, 0x6f, 0xfa, 0xa2, 0x4f, 0x95, 0xd8, - 0xc5, 0x68, 0xa7, 0x74, 0xc8, 0x38, 0xf8, 0xeb, 0x83, 0x82, 0x17, 0x4f, 0xba, 0x9c, 0x94, 0x86, - 0xf3, 0x24, 0x53, 0xdd, 0xe5, 0x8b, 0x58, 0x01, 0xc2, 0x4f, 0x41, 0xd2, 0x7f, 0x62, 0xf9, 0xff, - 0xc6, 0xe2, 0xab, 0x4c, 0x26, 0x29, 0x1c, 0x10, 0x3e, 0xfe, 0x3f, 0x82, 0x08, 0xe7, 0x90, 0xd2, - 0xbf, 0xf3, 0x46, 0x7f, 0xf6, 0x91, 0x75, 0x9b, 0x45, 0x39, 0x4b, 0x32, 0x89, 0xaf, 0x90, 0x4d, - 0xa3, 0x88, 0x83, 0x10, 0x20, 0x86, 0xc6, 0x65, 0x7f, 0x6c, 0x07, 0xe7, 0x65, 0xe1, 0xda, 0x37, - 0x0d, 0x48, 0xba, 0x38, 0x8e, 0x10, 0x0a, 0x59, 0x16, 0x25, 0x32, 0x61, 0x99, 0x18, 0x9e, 0x5c, - 0x1a, 0xe3, 0xc1, 0xe3, 0x8f, 0xbc, 0xff, 0x1a, 0xaf, 0xd7, 0x14, 0xfa, 0xac, 0xe5, 0x05, 0xf8, - 0xae, 0x70, 0x7b, 0x65, 0xe1, 0xa2, 0x0e, 0x23, 0x3b, 0xba, 0x78, 0x8c, 0xac, 0x39, 0x13, 0x32, - 0xa3, 0x29, 0x0c, 0xfb, 0x97, 0xc6, 0xd8, 0x0e, 0xee, 0x95, 0x85, 0x6b, 0x7d, 0x59, 0x63, 0xa4, - 0x8d, 0xe2, 0x09, 0xb2, 0x25, 0xe5, 0x31, 0x48, 0x02, 0x2f, 0x87, 0xa7, 0xba, 0x9d, 0xf7, 0x76, - 0xdb, 0x51, 0x0f, 0xe4, 0xad, 0xaf, 0xbd, 0xe7, 0xb3, 0x1f, 0x21, 0x54, 0x49, 0xc0, 0x21, 0x0b, - 0xa1, 0x72, 0x38, 0x6d, 0x98, 0xa4, 0x13, 0xc1, 0x33, 0x64, 0x49, 0x96, 0xb3, 0x25, 0x8b, 0x37, - 0x43, 0xf3, 0xb2, 0x3f, 0x1e, 0x3c, 0x7e, 0x72, 0x9c, 0x3f, 0x6f, 0x5a, 0xd3, 0x6e, 0x33, 0xc9, - 0x37, 0xc1, 0xfd, 0xda, 0xa3, 0xd5, 0xc0, 0xa4, 0xd5, 0x55, 0xfe, 0x32, 0x16, 0xc1, 0x33, 0xe5, - 0xef, 0xad, 0xce, 0xdf, 0xb3, 0x1a, 0x23, 0x6d, 0xf4, 0xe2, 0x53, 0x74, 0xbe, 0x27, 0x8b, 0xef, - 0xa3, 0xfe, 0x02, 0x36, 0x43, 0x43, 0xb1, 0x88, 0x3a, 0xe2, 0x77, 0x90, 0xb9, 0xa6, 0xcb, 0x15, - 0xe8, 0xd7, 0xb0, 0x49, 0x75, 0xf9, 0xe4, 0xe4, 0xa9, 0x31, 0xfa, 0xd9, 0x40, 0xf8, 0x70, 0xfa, - 0xd8, 0x45, 0x26, 0x07, 0x1a, 0x55, 0x22, 0x56, 0x60, 0x97, 0x85, 0x6b, 0x12, 0x05, 0x90, 0x0a, - 0xc7, 0xef, 0xa3, 0x33, 0x01, 0x7c, 0x9d, 0x64, 0xb1, 0xd6, 0xb4, 0x82, 0x41, 0x59, 0xb8, 0x67, - 0x2f, 0x2a, 0x88, 0x34, 0x31, 0x7c, 0x8d, 0x06, 0x12, 0x78, 0x9a, 0x64, 0x54, 0xaa, 0xd4, 0xbe, - 0x4e, 0x7d, 0xbb, 0x2c, 0xdc, 0xc1, 0xb4, 0x83, 0xc9, 0x6e, 0xce, 0xe8, 0x37, 0x03, 0xdd, 0x6b, - 0x3a, 0x9a, 0x30, 0x2e, 0xf1, 0x43, 0x74, 0xaa, 0x5f, 0x59, 0xfb, 0x09, 0xac, 0xb2, 0x70, 0x4f, - 0xf5, 0x04, 0x34, 0x8a, 0xbf, 0x40, 0x96, 0xfe, 0xb0, 0x21, 0x5b, 0x56, 0xee, 0x82, 0x2b, 0x35, - 0xa7, 0x49, 0x8d, 0xbd, 0x29, 0xdc, 0x77, 0x0f, 0x97, 0xd1, 0x6b, 0xc2, 0xa4, 0x25, 0xab, 0x32, - 0x39, 0xe3, 0x52, 0xf7, 0x68, 0x56, 0x65, 0x54, 0x79, 0xa2, 0x51, 0x65, 0x84, 0xe6, 0x79, 0x43, - 0xd3, 0xdf, 0xc8, 0xae, 0x8c, 0xdc, 0x74, 0x30, 0xd9, 0xcd, 0x19, 0x6d, 0x4f, 0xd0, 0x79, 0x63, - 0xe4, 0xc5, 0x32, 0x09, 0x01, 0xff, 0x80, 0x2c, 0xb5, 0xd7, 0x11, 0x95, 0x54, 0xbb, 0xd9, 0xdf, - 0x8b, 0x76, 0x3d, 0xbd, 0x7c, 0x11, 0x2b, 0x40, 0x78, 0x2a, 0xbb, 0xfb, 0x9a, 0xdf, 0x80, 0xa4, - 0xdd, 0x5e, 0x74, 0x18, 0x69, 0x55, 0xf1, 0xe7, 0x68, 0x50, 0x2f, 0xe2, 0x74, 0x93, 0x43, 0xdd, - 0xe6, 0xa8, 0xa6, 0x0c, 0x6e, 0xba, 0xd0, 0x9b, 0xfd, 0x2b, 0xd9, 0xa5, 0xe1, 0x6f, 0x91, 0x0d, - 0x75, 0xe3, 0x6a, 0x81, 0xd5, 0x07, 0xff, 0xe0, 0xb8, 0x0f, 0x1e, 0x3c, 0xa8, 0x6b, 0xd9, 0x0d, - 0x22, 0x48, 0xa7, 0x85, 0x9f, 0x23, 0x53, 0x4d, 0x53, 0x0c, 0xfb, 0x5a, 0xf4, 0xc3, 0xe3, 0x44, - 0xd5, 0x33, 0x04, 0xe7, 0xb5, 0xb0, 0xa9, 0x6e, 0x82, 0x54, 0x3a, 0xa3, 0x5f, 0x0d, 0xf4, 0x60, - 0x6f, 0xc6, 0x5f, 0x27, 0x42, 0xe2, 0xef, 0x0f, 0xe6, 0xec, 0x1d, 0x37, 0x67, 0xc5, 0xd6, 0x53, - 0x6e, 0x37, 0xb3, 0x41, 0x76, 0x66, 0x3c, 0x41, 0x66, 0x22, 0x21, 0x6d, 0x26, 0x73, 0x75, 0x9c, - 0x09, 0xdd, 0x5d, 0xe7, 0xe2, 0x2b, 0xa5, 0x40, 0x2a, 0xa1, 0xe0, 0xd1, 0xdd, 0xd6, 0xe9, 0xbd, - 0xda, 0x3a, 0xbd, 0xd7, 0x5b, 0xa7, 0xf7, 0x53, 0xe9, 0x18, 0x77, 0xa5, 0x63, 0xbc, 0x2a, 0x1d, - 0xe3, 0x75, 0xe9, 0x18, 0xbf, 0x97, 0x8e, 0xf1, 0xcb, 0x1f, 0x4e, 0xef, 0xbb, 0xb3, 0x5a, 0xf2, - 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa6, 0x35, 0xe6, 0xf5, 0xf2, 0x06, 0x00, 0x00, + // 870 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0x41, 0x8f, 0xe3, 0x34, + 0x14, 0x6e, 0xa6, 0x53, 0x9a, 0xb8, 0x33, 0x62, 0xd7, 0xe2, 0x50, 0x0d, 0xab, 0xa4, 0x0a, 0x5a, + 0x54, 0x31, 0xda, 0x84, 0x19, 0xad, 0xd0, 0x0a, 0x4e, 0x13, 0x18, 0x58, 0xa4, 0x65, 0x77, 0xe4, + 0x19, 0x09, 0x69, 0xc5, 0x01, 0x37, 0xf1, 0xa4, 0xa1, 0x53, 0x3b, 0xb2, 0xdd, 0x4a, 0xbd, 0xf1, + 0x0f, 0xe0, 0xb7, 0xf0, 0x17, 0x90, 0xd0, 0x1c, 0xf7, 0xb8, 0xa7, 0x88, 0x09, 0xff, 0x62, 0x4f, + 0xc8, 0x8e, 0x93, 0xb4, 0x14, 0x86, 0xde, 0xec, 0xcf, 0xef, 0xfb, 0xde, 0x7b, 0xdf, 0xb3, 0x0d, + 0xce, 0x67, 0xcf, 0x44, 0x90, 0xb1, 0x70, 0xb6, 0x98, 0x10, 0x4e, 0x89, 0x24, 0x22, 0x5c, 0x12, + 0x9a, 0x30, 0x1e, 0x9a, 0x03, 0x9c, 0x67, 0x61, 0x92, 0x89, 0x98, 0x2d, 0x09, 0x5f, 0x85, 0xcb, + 0x93, 0x09, 0x91, 0xf8, 0x24, 0x4c, 0x09, 0x25, 0x1c, 0x4b, 0x92, 0x04, 0x39, 0x67, 0x92, 0xc1, + 0x47, 0x55, 0x74, 0x80, 0xf3, 0x2c, 0x68, 0xa2, 0x03, 0x13, 0x7d, 0xf4, 0x24, 0xcd, 0xe4, 0x74, + 0x31, 0x09, 0x62, 0x36, 0x0f, 0x53, 0x96, 0xb2, 0x50, 0x93, 0x26, 0x8b, 0x6b, 0xbd, 0xd3, 0x1b, + 0xbd, 0xaa, 0xc4, 0x8e, 0xfc, 0xb5, 0xd4, 0x31, 0xe3, 0x24, 0x5c, 0x6e, 0x25, 0x3c, 0x7a, 0xda, + 0xc6, 0xcc, 0x71, 0x3c, 0xcd, 0xa8, 0xaa, 0x2e, 0x9f, 0xa5, 0x0a, 0x10, 0xe1, 0x9c, 0x48, 0xfc, + 0x6f, 0xac, 0xf0, 0xbf, 0x58, 0x7c, 0x41, 0x65, 0x36, 0x27, 0x5b, 0x84, 0xcf, 0xfe, 0x8f, 0x20, + 0xe2, 0x29, 0x99, 0xe3, 0x7f, 0xf2, 0xfc, 0xdf, 0xf6, 0x81, 0x7d, 0x4e, 0x93, 0x9c, 0x65, 0x54, + 0xc2, 0x63, 0xe0, 0xe0, 0x24, 0xe1, 0x44, 0x08, 0x22, 0x86, 0xd6, 0xa8, 0x3b, 0x76, 0xa2, 0xc3, + 0xb2, 0xf0, 0x9c, 0xb3, 0x1a, 0x44, 0xed, 0x39, 0x4c, 0x00, 0x88, 0x19, 0x4d, 0x32, 0x99, 0x31, + 0x2a, 0x86, 0x7b, 0x23, 0x6b, 0x3c, 0x38, 0xfd, 0x34, 0xb8, 0xcf, 0xde, 0xa0, 0x4e, 0xf4, 0x65, + 0xc3, 0x8b, 0xe0, 0x6d, 0xe1, 0x75, 0xca, 0xc2, 0x03, 0x2d, 0x86, 0xd6, 0x74, 0xe1, 0x18, 0xd8, + 0x53, 0x26, 0x24, 0xc5, 0x73, 0x32, 0xec, 0x8e, 0xac, 0xb1, 0x13, 0x1d, 0x94, 0x85, 0x67, 0x3f, + 0x37, 0x18, 0x6a, 0x4e, 0xe1, 0x05, 0x70, 0x24, 0xe6, 0x29, 0x91, 0x88, 0x5c, 0x0f, 0xf7, 0x75, + 0x39, 0x1f, 0xad, 0x97, 0xa3, 0x06, 0x14, 0x2c, 0x4f, 0x82, 0x57, 0x93, 0x9f, 0x48, 0xac, 0x82, + 0x08, 0x27, 0x34, 0x26, 0x55, 0x87, 0x57, 0x35, 0x13, 0xb5, 0x22, 0x70, 0x02, 0x6c, 0xc9, 0x72, + 0x76, 0xc3, 0xd2, 0xd5, 0xb0, 0x37, 0xea, 0x8e, 0x07, 0xa7, 0x4f, 0x77, 0xeb, 0x2f, 0xb8, 0x32, + 0xb4, 0x73, 0x2a, 0xf9, 0x2a, 0x7a, 0x60, 0x7a, 0xb4, 0x6b, 0x18, 0x35, 0xba, 0xaa, 0x3f, 0xca, + 0x12, 0xf2, 0x52, 0xf5, 0xf7, 0x5e, 0xdb, 0xdf, 0x4b, 0x83, 0xa1, 0xe6, 0x14, 0xbe, 0x00, 0xbd, + 0x69, 0x46, 0xa5, 0x18, 0xf6, 0x75, 0x6f, 0xc7, 0xbb, 0x95, 0xf2, 0x5c, 0x51, 0x22, 0xa7, 0x2c, + 0xbc, 0x9e, 0x5e, 0xa2, 0x4a, 0xe4, 0xe8, 0x0b, 0x70, 0xb8, 0x51, 0x24, 0x7c, 0x00, 0xba, 0x33, + 0xb2, 0x1a, 0x5a, 0xaa, 0x06, 0xa4, 0x96, 0xf0, 0x03, 0xd0, 0x5b, 0xe2, 0x9b, 0x05, 0xd1, 0xb3, + 0x75, 0x50, 0xb5, 0xf9, 0x7c, 0xef, 0x99, 0xe5, 0xff, 0x62, 0x01, 0xb8, 0x3d, 0x4b, 0xe8, 0x81, + 0x1e, 0x27, 0x38, 0xa9, 0x44, 0xec, 0x2a, 0x29, 0x52, 0x00, 0xaa, 0x70, 0xf8, 0x18, 0xf4, 0x05, + 0xe1, 0xcb, 0x8c, 0xa6, 0x5a, 0xd3, 0x8e, 0x06, 0x65, 0xe1, 0xf5, 0x2f, 0x2b, 0x08, 0xd5, 0x67, + 0xf0, 0x04, 0x0c, 0x24, 0xe1, 0xf3, 0x8c, 0x62, 0xa9, 0x42, 0xbb, 0x3a, 0xf4, 0xfd, 0xb2, 0xf0, + 0x06, 0x57, 0x2d, 0x8c, 0xd6, 0x63, 0xfc, 0x04, 0x1c, 0x6e, 0x74, 0x0c, 0x2f, 0x81, 0x7d, 0xcd, + 0xf8, 0x6b, 0x46, 0xcd, 0x4d, 0x1e, 0x9c, 0x3e, 0xbe, 0xdf, 0xb0, 0xaf, 0xab, 0xe8, 0x76, 0x58, + 0x06, 0x10, 0xa8, 0x11, 0xf2, 0xff, 0xb0, 0xc0, 0x41, 0x9d, 0xe6, 0x82, 0x71, 0x09, 0x1f, 0x81, + 0x7d, 0x7d, 0x33, 0xb5, 0x6b, 0x91, 0x5d, 0x16, 0xde, 0xbe, 0x9e, 0x9a, 0x46, 0xe1, 0x37, 0xc0, + 0xd6, 0x8f, 0x2c, 0x66, 0x37, 0x95, 0x87, 0xd1, 0xb1, 0x12, 0xbe, 0x30, 0xd8, 0xbb, 0xc2, 0xfb, + 0x70, 0xfb, 0x03, 0x09, 0xea, 0x63, 0xd4, 0x90, 0x55, 0x9a, 0x9c, 0x71, 0xa9, 0x9d, 0xe8, 0x55, + 0x69, 0x54, 0x7a, 0xa4, 0x51, 0x65, 0x17, 0xce, 0xf3, 0x9a, 0xa6, 0xaf, 0xbe, 0x53, 0xd9, 0x75, + 0xd6, 0xc2, 0x68, 0x3d, 0xc6, 0xbf, 0xdb, 0x6b, 0xfd, 0xba, 0xbc, 0xc9, 0x62, 0x02, 0x7f, 0x04, + 0xb6, 0xfa, 0x8b, 0x12, 0x2c, 0xb1, 0xee, 0x66, 0xf3, 0x2d, 0x37, 0x5f, 0x4a, 0x90, 0xcf, 0x52, + 0x05, 0x88, 0x40, 0x45, 0xb7, 0xcf, 0xe9, 0x3b, 0x22, 0x71, 0xfb, 0x96, 0x5b, 0x0c, 0x35, 0xaa, + 0xf0, 0x2b, 0x30, 0x30, 0x9f, 0xc7, 0xd5, 0x2a, 0x27, 0xa6, 0x4c, 0xdf, 0x50, 0x06, 0x67, 0xed, + 0xd1, 0xbb, 0xcd, 0x2d, 0x5a, 0xa7, 0xc1, 0xef, 0x81, 0x43, 0x4c, 0xe1, 0xea, 0xd3, 0x51, 0x83, + 0xfd, 0x78, 0xb7, 0x97, 0x10, 0x3d, 0x34, 0xb9, 0x9c, 0x1a, 0x11, 0xa8, 0xd5, 0x82, 0xaf, 0x40, + 0x4f, 0xb9, 0x29, 0x86, 0x5d, 0x2d, 0xfa, 0xc9, 0x6e, 0xa2, 0x6a, 0x0c, 0xd1, 0xa1, 0x11, 0xee, + 0xa9, 0x9d, 0x40, 0x95, 0x8e, 0xff, 0xbb, 0x05, 0x1e, 0x6e, 0x78, 0xfc, 0x22, 0x13, 0x12, 0xfe, + 0xb0, 0xe5, 0x73, 0xb0, 0x9b, 0xcf, 0x8a, 0xad, 0x5d, 0x6e, 0x2e, 0x68, 0x8d, 0xac, 0x79, 0x7c, + 0x01, 0x7a, 0x99, 0x24, 0xf3, 0xda, 0x99, 0x1d, 0xff, 0x08, 0x5d, 0x5d, 0xdb, 0xc5, 0xb7, 0x4a, + 0x01, 0x55, 0x42, 0xfe, 0x31, 0xe8, 0x9b, 0x87, 0x00, 0x47, 0x1b, 0x97, 0xfd, 0xc0, 0x84, 0xaf, + 0x5d, 0xf8, 0xe8, 0xc9, 0xed, 0x9d, 0xdb, 0x79, 0x73, 0xe7, 0x76, 0xde, 0xde, 0xb9, 0x9d, 0x9f, + 0x4b, 0xd7, 0xba, 0x2d, 0x5d, 0xeb, 0x4d, 0xe9, 0x5a, 0x6f, 0x4b, 0xd7, 0xfa, 0xb3, 0x74, 0xad, + 0x5f, 0xff, 0x72, 0x3b, 0xaf, 0xfb, 0x26, 0xff, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x0d, + 0x6f, 0x98, 0xd3, 0x07, 0x00, 0x00, } func (m *Endpoint) Marshal() (dAtA []byte, err error) { @@ -273,6 +336,18 @@ func (m *Endpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Hints != nil { + { + size, err := m.Hints.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } if m.NodeName != nil { i -= len(*m.NodeName) copy(dAtA[i:], *m.NodeName) @@ -398,6 +473,43 @@ func (m *EndpointConditions) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *EndpointHints) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EndpointHints) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EndpointHints) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ForZones) > 0 { + for iNdEx := len(m.ForZones) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ForZones[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func (m *EndpointPort) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -560,6 +672,34 @@ func (m *EndpointSliceList) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ForZone) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ForZone) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ForZone) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { offset -= sovGenerated(v) base := offset @@ -605,6 +745,10 @@ func (m *Endpoint) Size() (n int) { l = len(*m.NodeName) n += 1 + l + sovGenerated(uint64(l)) } + if m.Hints != nil { + l = m.Hints.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -626,6 +770,21 @@ func (m *EndpointConditions) Size() (n int) { return n } +func (m *EndpointHints) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ForZones) > 0 { + for _, e := range m.ForZones { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + func (m *EndpointPort) Size() (n int) { if m == nil { return 0 @@ -692,6 +851,17 @@ func (m *EndpointSliceList) Size() (n int) { return n } +func (m *ForZone) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func sovGenerated(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -719,6 +889,7 @@ func (this *Endpoint) String() string { `TargetRef:` + strings.Replace(fmt.Sprintf("%v", this.TargetRef), "ObjectReference", "v1.ObjectReference", 1) + `,`, `Topology:` + mapStringForTopology + `,`, `NodeName:` + valueToStringGenerated(this.NodeName) + `,`, + `Hints:` + strings.Replace(this.Hints.String(), "EndpointHints", "EndpointHints", 1) + `,`, `}`, }, "") return s @@ -735,6 +906,21 @@ func (this *EndpointConditions) String() string { }, "") return s } +func (this *EndpointHints) String() string { + if this == nil { + return "nil" + } + repeatedStringForForZones := "[]ForZone{" + for _, f := range this.ForZones { + repeatedStringForForZones += strings.Replace(strings.Replace(f.String(), "ForZone", "ForZone", 1), `&`, ``, 1) + "," + } + repeatedStringForForZones += "}" + s := strings.Join([]string{`&EndpointHints{`, + `ForZones:` + repeatedStringForForZones + `,`, + `}`, + }, "") + return s +} func (this *EndpointPort) String() string { if this == nil { return "nil" @@ -787,6 +973,16 @@ func (this *EndpointSliceList) String() string { }, "") return s } +func (this *ForZone) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ForZone{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `}`, + }, "") + return s +} func valueToStringGenerated(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -1074,7 +1270,7 @@ func (m *Endpoint) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1118,16 +1314,49 @@ func (m *Endpoint) Unmarshal(dAtA []byte) error { s := string(dAtA[iNdEx:postIndex]) m.NodeName = &s iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Hints == nil { + m.Hints = &EndpointHints{} + } + if err := m.Hints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1240,10 +1469,91 @@ func (m *EndpointConditions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) < 0 { + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EndpointHints) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EndpointHints: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EndpointHints: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ForZones", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ForZones = append(m.ForZones, ForZone{}) + if err := m.ForZones[len(m.ForZones)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1412,10 +1722,7 @@ func (m *EndpointPort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1598,10 +1905,7 @@ func (m *EndpointSlice) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1718,10 +2022,89 @@ func (m *EndpointSliceList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) < 0 { + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ForZone) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ForZone: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ForZone: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/discovery/v1beta1/generated.proto b/vendor/k8s.io/api/discovery/v1beta1/generated.proto index e5d21caadf..6925f7ce3b 100644 --- a/vendor/k8s.io/api/discovery/v1beta1/generated.proto +++ b/vendor/k8s.io/api/discovery/v1beta1/generated.proto @@ -76,6 +76,12 @@ message Endpoint { // with the EndpointSliceNodeName feature gate. // +optional optional string nodeName = 6; + + // hints contains information associated with how an endpoint should be + // consumed. + // +featureGate=TopologyAwareHints + // +optional + optional EndpointHints hints = 7; } // EndpointConditions represents the current condition of an endpoint. @@ -104,6 +110,14 @@ message EndpointConditions { optional bool terminating = 3; } +// EndpointHints provides hints describing how an endpoint should be consumed. +message EndpointHints { + // forZones indicates the zone(s) this endpoint should be consumed by to + // enable topology aware routing. May contain a maximum of 8 entries. + // +listType=atomic + repeated ForZone forZones = 1; +} + // EndpointPort represents a Port used by an EndpointSlice message EndpointPort { // The name of this port. All ports in an EndpointSlice must have a unique @@ -178,3 +192,9 @@ message EndpointSliceList { repeated EndpointSlice items = 2; } +// ForZone provides information about which zones should consume this endpoint. +message ForZone { + // name represents the name of the zone. + optional string name = 1; +} + diff --git a/vendor/k8s.io/api/discovery/v1beta1/types.go b/vendor/k8s.io/api/discovery/v1beta1/types.go index e14088e8b2..eeb46e175a 100644 --- a/vendor/k8s.io/api/discovery/v1beta1/types.go +++ b/vendor/k8s.io/api/discovery/v1beta1/types.go @@ -24,7 +24,9 @@ import ( // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:prerelease-lifecycle-gen:introduced=1.16 -// +k8s:prerelease-lifecycle-gen:deprecated=1.22 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:removed=1.25 +// +k8s:prerelease-lifecycle-gen:replacement=discovery.k8s.io,v1,EndpointSlice // EndpointSlice represents a subset of the endpoints that implement a service. // For a given service there may be multiple EndpointSlice objects, selected by @@ -110,6 +112,11 @@ type Endpoint struct { // with the EndpointSliceNodeName feature gate. // +optional NodeName *string `json:"nodeName,omitempty" protobuf:"bytes,6,opt,name=nodeName"` + // hints contains information associated with how an endpoint should be + // consumed. + // +featureGate=TopologyAwareHints + // +optional + Hints *EndpointHints `json:"hints,omitempty" protobuf:"bytes,7,opt,name=hints"` } // EndpointConditions represents the current condition of an endpoint. @@ -138,6 +145,20 @@ type EndpointConditions struct { Terminating *bool `json:"terminating,omitempty" protobuf:"bytes,3,name=terminating"` } +// EndpointHints provides hints describing how an endpoint should be consumed. +type EndpointHints struct { + // forZones indicates the zone(s) this endpoint should be consumed by to + // enable topology aware routing. May contain a maximum of 8 entries. + // +listType=atomic + ForZones []ForZone `json:"forZones,omitempty" protobuf:"bytes,1,name=forZones"` +} + +// ForZone provides information about which zones should consume this endpoint. +type ForZone struct { + // name represents the name of the zone. + Name string `json:"name" protobuf:"bytes,1,name=name"` +} + // EndpointPort represents a Port used by an EndpointSlice type EndpointPort struct { // The name of this port. All ports in an EndpointSlice must have a unique @@ -169,7 +190,9 @@ type EndpointPort struct { // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:prerelease-lifecycle-gen:introduced=1.16 -// +k8s:prerelease-lifecycle-gen:deprecated=1.22 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:removed=1.25 +// +k8s:prerelease-lifecycle-gen:replacement=discovery.k8s.io,v1,EndpointSlice // EndpointSliceList represents a list of endpoint slices type EndpointSliceList struct { diff --git a/vendor/k8s.io/api/discovery/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/discovery/v1beta1/types_swagger_doc_generated.go index d48b93d8b5..b4c221999a 100644 --- a/vendor/k8s.io/api/discovery/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/discovery/v1beta1/types_swagger_doc_generated.go @@ -35,6 +35,7 @@ var map_Endpoint = map[string]string{ "targetRef": "targetRef is a reference to a Kubernetes object that represents this endpoint.", "topology": "topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\n where the endpoint is located. This should match the corresponding\n node label.\n* topology.kubernetes.io/zone: the value indicates the zone where the\n endpoint is located. This should match the corresponding node label.\n* topology.kubernetes.io/region: the value indicates the region where the\n endpoint is located. This should match the corresponding node label.\nThis field is deprecated and will be removed in future api versions.", "nodeName": "nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node. This field can be enabled with the EndpointSliceNodeName feature gate.", + "hints": "hints contains information associated with how an endpoint should be consumed.", } func (Endpoint) SwaggerDoc() map[string]string { @@ -52,6 +53,15 @@ func (EndpointConditions) SwaggerDoc() map[string]string { return map_EndpointConditions } +var map_EndpointHints = map[string]string{ + "": "EndpointHints provides hints describing how an endpoint should be consumed.", + "forZones": "forZones indicates the zone(s) this endpoint should be consumed by to enable topology aware routing. May contain a maximum of 8 entries.", +} + +func (EndpointHints) SwaggerDoc() map[string]string { + return map_EndpointHints +} + var map_EndpointPort = map[string]string{ "": "EndpointPort represents a Port used by an EndpointSlice", "name": "The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", @@ -86,4 +96,13 @@ func (EndpointSliceList) SwaggerDoc() map[string]string { return map_EndpointSliceList } +var map_ForZone = map[string]string{ + "": "ForZone provides information about which zones should consume this endpoint.", + "name": "name represents the name of the zone.", +} + +func (ForZone) SwaggerDoc() map[string]string { + return map_ForZone +} + // AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/discovery/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/discovery/v1beta1/zz_generated.deepcopy.go index 7076553d29..f13536b4bc 100644 --- a/vendor/k8s.io/api/discovery/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/discovery/v1beta1/zz_generated.deepcopy.go @@ -56,6 +56,11 @@ func (in *Endpoint) DeepCopyInto(out *Endpoint) { *out = new(string) **out = **in } + if in.Hints != nil { + in, out := &in.Hints, &out.Hints + *out = new(EndpointHints) + (*in).DeepCopyInto(*out) + } return } @@ -100,6 +105,27 @@ func (in *EndpointConditions) DeepCopy() *EndpointConditions { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointHints) DeepCopyInto(out *EndpointHints) { + *out = *in + if in.ForZones != nil { + in, out := &in.ForZones, &out.ForZones + *out = make([]ForZone, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointHints. +func (in *EndpointHints) DeepCopy() *EndpointHints { + if in == nil { + return nil + } + out := new(EndpointHints) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EndpointPort) DeepCopyInto(out *EndpointPort) { *out = *in @@ -208,3 +234,19 @@ func (in *EndpointSliceList) DeepCopyObject() runtime.Object { } return nil } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ForZone) DeepCopyInto(out *ForZone) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForZone. +func (in *ForZone) DeepCopy() *ForZone { + if in == nil { + return nil + } + out := new(ForZone) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/api/discovery/v1beta1/zz_generated.prerelease-lifecycle.go b/vendor/k8s.io/api/discovery/v1beta1/zz_generated.prerelease-lifecycle.go index 09e94d0e8b..c0f2c63f09 100644 --- a/vendor/k8s.io/api/discovery/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/vendor/k8s.io/api/discovery/v1beta1/zz_generated.prerelease-lifecycle.go @@ -20,6 +20,10 @@ limitations under the License. package v1beta1 +import ( + schema "k8s.io/apimachinery/pkg/runtime/schema" +) + // APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. func (in *EndpointSlice) APILifecycleIntroduced() (major, minor int) { @@ -29,7 +33,13 @@ func (in *EndpointSlice) APILifecycleIntroduced() (major, minor int) { // APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. func (in *EndpointSlice) APILifecycleDeprecated() (major, minor int) { - return 1, 22 + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *EndpointSlice) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "discovery.k8s.io", Version: "v1", Kind: "EndpointSlice"} } // APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. @@ -47,7 +57,13 @@ func (in *EndpointSliceList) APILifecycleIntroduced() (major, minor int) { // APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. func (in *EndpointSliceList) APILifecycleDeprecated() (major, minor int) { - return 1, 22 + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *EndpointSliceList) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "discovery.k8s.io", Version: "v1", Kind: "EndpointSlice"} } // APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. diff --git a/vendor/k8s.io/api/events/v1/generated.pb.go b/vendor/k8s.io/api/events/v1/generated.pb.go index 717137cffe..70ad588a62 100644 --- a/vendor/k8s.io/api/events/v1/generated.pb.go +++ b/vendor/k8s.io/api/events/v1/generated.pb.go @@ -1077,10 +1077,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1197,10 +1194,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1302,10 +1296,7 @@ func (m *EventSeries) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/events/v1/generated.proto b/vendor/k8s.io/api/events/v1/generated.proto index 690c99e4c5..04df31b0c1 100644 --- a/vendor/k8s.io/api/events/v1/generated.proto +++ b/vendor/k8s.io/api/events/v1/generated.proto @@ -36,6 +36,9 @@ option go_package = "v1"; // continued existence of events with that Reason. Events should be // treated as informative, best-effort, supplemental data. message Event { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; // eventTime is the time when this Event was first observed. It is required. diff --git a/vendor/k8s.io/api/events/v1/types.go b/vendor/k8s.io/api/events/v1/types.go index 4bf715872a..e01a2b21e7 100644 --- a/vendor/k8s.io/api/events/v1/types.go +++ b/vendor/k8s.io/api/events/v1/types.go @@ -33,6 +33,9 @@ import ( type Event struct { metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` // eventTime is the time when this Event was first observed. It is required. diff --git a/vendor/k8s.io/api/events/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/events/v1/types_swagger_doc_generated.go index 7255727bb4..797da63bb7 100644 --- a/vendor/k8s.io/api/events/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/events/v1/types_swagger_doc_generated.go @@ -29,6 +29,7 @@ package v1 // AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_Event = map[string]string{ "": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.", + "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", "eventTime": "eventTime is the time when this Event was first observed. It is required.", "series": "series is data about the Event series this event represents or nil if it's a singleton Event.", "reportingController": "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", diff --git a/vendor/k8s.io/api/events/v1beta1/generated.pb.go b/vendor/k8s.io/api/events/v1beta1/generated.pb.go index 3709ef633a..d92411bc8a 100644 --- a/vendor/k8s.io/api/events/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/events/v1beta1/generated.pb.go @@ -1077,10 +1077,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1197,10 +1194,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1302,10 +1296,7 @@ func (m *EventSeries) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/events/v1beta1/generated.proto b/vendor/k8s.io/api/events/v1beta1/generated.proto index 90b57d8d08..57e95b9648 100644 --- a/vendor/k8s.io/api/events/v1beta1/generated.proto +++ b/vendor/k8s.io/api/events/v1beta1/generated.proto @@ -36,6 +36,9 @@ option go_package = "v1beta1"; // continued existence of events with that Reason. Events should be // treated as informative, best-effort, supplemental data. message Event { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; // eventTime is the time when this Event was first observed. It is required. diff --git a/vendor/k8s.io/api/events/v1beta1/types.go b/vendor/k8s.io/api/events/v1beta1/types.go index 796e56ea7d..5bb6f92b22 100644 --- a/vendor/k8s.io/api/events/v1beta1/types.go +++ b/vendor/k8s.io/api/events/v1beta1/types.go @@ -35,6 +35,9 @@ import ( type Event struct { metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` // eventTime is the time when this Event was first observed. It is required. diff --git a/vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go index 7f8e162cdd..0e6bd5a83c 100644 --- a/vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go @@ -29,6 +29,7 @@ package v1beta1 // AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_Event = map[string]string{ "": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.", + "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", "eventTime": "eventTime is the time when this Event was first observed. It is required.", "series": "series is data about the Event series this event represents or nil if it's a singleton Event.", "reportingController": "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", diff --git a/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go b/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go index bd37f432c4..20b3b2a006 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go @@ -1683,241 +1683,243 @@ func init() { } var fileDescriptor_cdc93917efc28165 = []byte{ - // 3743 bytes of a gzipped FileDescriptorProto + // 3761 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x4d, 0x6c, 0x1c, 0xc7, 0x72, 0xd6, 0xec, 0x2e, 0xb9, 0xcb, 0xe2, 0x7f, 0x93, 0x22, 0xf7, 0x49, 0x4f, 0x5c, 0xbd, 0x31, - 0xa0, 0xc8, 0x8e, 0xb4, 0x6b, 0xc9, 0x92, 0x9e, 0x22, 0x21, 0xef, 0x99, 0x4b, 0x8a, 0x12, 0x5f, + 0xa2, 0xc8, 0x8e, 0xb4, 0x6b, 0xc9, 0x92, 0x9e, 0x22, 0x21, 0xef, 0x99, 0x4b, 0x8a, 0x12, 0x5f, 0xf8, 0xb3, 0xee, 0x25, 0x65, 0xc3, 0x88, 0x1d, 0x0f, 0x77, 0x9b, 0xcb, 0x11, 0x67, 0x67, 0xc6, - 0xd3, 0xb3, 0x34, 0x17, 0xc8, 0x21, 0x87, 0x20, 0x80, 0x81, 0x00, 0xc9, 0xc5, 0x49, 0x8e, 0x31, - 0x02, 0xe4, 0x94, 0x20, 0xc7, 0xe4, 0x60, 0x18, 0x09, 0xe2, 0x00, 0x42, 0xe0, 0x04, 0xbe, 0xc5, - 0x27, 0x22, 0xa6, 0x4f, 0x41, 0x4e, 0xb9, 0x05, 0x3a, 0x05, 0xdd, 0xd3, 0xf3, 0x3f, 0xc3, 0x1d, - 0xd2, 0x12, 0x11, 0x03, 0xef, 0x24, 0x6e, 0x57, 0xd5, 0x57, 0xd5, 0xdd, 0xd5, 0x55, 0xd5, 0x3d, - 0x25, 0x58, 0xd9, 0xbf, 0x4f, 0xab, 0xaa, 0x51, 0xdb, 0xef, 0xed, 0x10, 0x4b, 0x27, 0x36, 0xa1, - 0xb5, 0x03, 0xa2, 0xb7, 0x0d, 0xab, 0x26, 0x08, 0x8a, 0xa9, 0xd6, 0xc8, 0xa1, 0x4d, 0x74, 0xaa, - 0x1a, 0x3a, 0xad, 0x1d, 0xdc, 0xda, 0x21, 0xb6, 0x72, 0xab, 0xd6, 0x21, 0x3a, 0xb1, 0x14, 0x9b, - 0xb4, 0xab, 0xa6, 0x65, 0xd8, 0x06, 0xba, 0xe2, 0xb0, 0x57, 0x15, 0x53, 0xad, 0xfa, 0xec, 0x55, - 0xc1, 0x7e, 0xe9, 0x66, 0x47, 0xb5, 0xf7, 0x7a, 0x3b, 0xd5, 0x96, 0xd1, 0xad, 0x75, 0x8c, 0x8e, - 0x51, 0xe3, 0x52, 0x3b, 0xbd, 0x5d, 0xfe, 0x8b, 0xff, 0xe0, 0x7f, 0x39, 0x68, 0x97, 0xe4, 0x80, - 0xf2, 0x96, 0x61, 0x91, 0xda, 0x41, 0x4c, 0xe3, 0xa5, 0x3b, 0x3e, 0x4f, 0x57, 0x69, 0xed, 0xa9, - 0x3a, 0xb1, 0xfa, 0x35, 0x73, 0xbf, 0xc3, 0x06, 0x68, 0xad, 0x4b, 0x6c, 0x25, 0x49, 0xaa, 0x96, - 0x26, 0x65, 0xf5, 0x74, 0x5b, 0xed, 0x92, 0x98, 0xc0, 0xbd, 0x41, 0x02, 0xb4, 0xb5, 0x47, 0xba, - 0x4a, 0x4c, 0xee, 0xad, 0x34, 0xb9, 0x9e, 0xad, 0x6a, 0x35, 0x55, 0xb7, 0xa9, 0x6d, 0x45, 0x85, - 0xe4, 0x3b, 0x30, 0xb5, 0xa8, 0x69, 0xc6, 0x27, 0xa4, 0xbd, 0xd4, 0x5c, 0x5d, 0xb6, 0xd4, 0x03, - 0x62, 0xa1, 0xab, 0x50, 0xd0, 0x95, 0x2e, 0x29, 0x4b, 0x57, 0xa5, 0xeb, 0x23, 0xf5, 0xb1, 0xe7, - 0x47, 0x95, 0x0b, 0xc7, 0x47, 0x95, 0xc2, 0x86, 0xd2, 0x25, 0x98, 0x53, 0xe4, 0x87, 0x30, 0x2d, - 0xa4, 0x56, 0x34, 0x72, 0xf8, 0xd4, 0xd0, 0x7a, 0x5d, 0x82, 0xae, 0xc1, 0x70, 0x9b, 0x03, 0x08, - 0xc1, 0x09, 0x21, 0x38, 0xec, 0xc0, 0x62, 0x41, 0x95, 0x29, 0x4c, 0x0a, 0xe1, 0x27, 0x06, 0xb5, - 0x1b, 0x8a, 0xbd, 0x87, 0x6e, 0x03, 0x98, 0x8a, 0xbd, 0xd7, 0xb0, 0xc8, 0xae, 0x7a, 0x28, 0xc4, - 0x91, 0x10, 0x87, 0x86, 0x47, 0xc1, 0x01, 0x2e, 0x74, 0x03, 0x4a, 0x16, 0x51, 0xda, 0x9b, 0xba, - 0xd6, 0x2f, 0xe7, 0xae, 0x4a, 0xd7, 0x4b, 0xf5, 0x29, 0x21, 0x51, 0xc2, 0x62, 0x1c, 0x7b, 0x1c, - 0xf2, 0x67, 0x39, 0x18, 0x59, 0x56, 0x48, 0xd7, 0xd0, 0x9b, 0xc4, 0x46, 0x1f, 0x41, 0x89, 0x6d, - 0x57, 0x5b, 0xb1, 0x15, 0xae, 0x6d, 0xf4, 0xf6, 0x9b, 0x55, 0xdf, 0x9d, 0xbc, 0xd5, 0xab, 0x9a, - 0xfb, 0x1d, 0x36, 0x40, 0xab, 0x8c, 0xbb, 0x7a, 0x70, 0xab, 0xba, 0xb9, 0xf3, 0x8c, 0xb4, 0xec, - 0x75, 0x62, 0x2b, 0xbe, 0x7d, 0xfe, 0x18, 0xf6, 0x50, 0xd1, 0x06, 0x14, 0xa8, 0x49, 0x5a, 0xdc, - 0xb2, 0xd1, 0xdb, 0x37, 0xaa, 0x27, 0x3a, 0x6b, 0xd5, 0xb3, 0xac, 0x69, 0x92, 0x96, 0xbf, 0xe2, - 0xec, 0x17, 0xe6, 0x38, 0xe8, 0x29, 0x0c, 0x53, 0x5b, 0xb1, 0x7b, 0xb4, 0x9c, 0xe7, 0x88, 0xd5, - 0xcc, 0x88, 0x5c, 0xca, 0xdf, 0x0c, 0xe7, 0x37, 0x16, 0x68, 0xf2, 0x7f, 0xe5, 0x00, 0x79, 0xbc, - 0x4b, 0x86, 0xde, 0x56, 0x6d, 0xd5, 0xd0, 0xd1, 0x03, 0x28, 0xd8, 0x7d, 0xd3, 0x75, 0x81, 0x6b, - 0xae, 0x41, 0x5b, 0x7d, 0x93, 0xbc, 0x38, 0xaa, 0xcc, 0xc5, 0x25, 0x18, 0x05, 0x73, 0x19, 0xb4, - 0xe6, 0x99, 0x9a, 0xe3, 0xd2, 0x77, 0xc2, 0xaa, 0x5f, 0x1c, 0x55, 0x12, 0x0e, 0x5b, 0xd5, 0x43, - 0x0a, 0x1b, 0x88, 0x0e, 0x00, 0x69, 0x0a, 0xb5, 0xb7, 0x2c, 0x45, 0xa7, 0x8e, 0x26, 0xb5, 0x4b, - 0xc4, 0x22, 0xbc, 0x91, 0x6d, 0xd3, 0x98, 0x44, 0xfd, 0x92, 0xb0, 0x02, 0xad, 0xc5, 0xd0, 0x70, - 0x82, 0x06, 0xe6, 0xcd, 0x16, 0x51, 0xa8, 0xa1, 0x97, 0x0b, 0x61, 0x6f, 0xc6, 0x7c, 0x14, 0x0b, - 0x2a, 0x7a, 0x1d, 0x8a, 0x5d, 0x42, 0xa9, 0xd2, 0x21, 0xe5, 0x21, 0xce, 0x38, 0x29, 0x18, 0x8b, - 0xeb, 0xce, 0x30, 0x76, 0xe9, 0xf2, 0x17, 0x12, 0x8c, 0x7b, 0x2b, 0xb7, 0xa6, 0x52, 0x1b, 0xfd, - 0x6e, 0xcc, 0x0f, 0xab, 0xd9, 0xa6, 0xc4, 0xa4, 0xb9, 0x17, 0x7a, 0x3e, 0xef, 0x8e, 0x04, 0x7c, - 0x70, 0x1d, 0x86, 0x54, 0x9b, 0x74, 0xd9, 0x3e, 0xe4, 0xaf, 0x8f, 0xde, 0xbe, 0x9e, 0xd5, 0x65, - 0xea, 0xe3, 0x02, 0x74, 0x68, 0x95, 0x89, 0x63, 0x07, 0x45, 0xfe, 0xb3, 0x42, 0xc0, 0x7c, 0xe6, - 0x9a, 0xe8, 0x03, 0x28, 0x51, 0xa2, 0x91, 0x96, 0x6d, 0x58, 0xc2, 0xfc, 0xb7, 0x32, 0x9a, 0xaf, - 0xec, 0x10, 0xad, 0x29, 0x44, 0xeb, 0x63, 0xcc, 0x7e, 0xf7, 0x17, 0xf6, 0x20, 0xd1, 0x3b, 0x50, - 0xb2, 0x49, 0xd7, 0xd4, 0x14, 0x9b, 0x88, 0x73, 0xf4, 0x5a, 0x70, 0x0a, 0xcc, 0x73, 0x18, 0x58, - 0xc3, 0x68, 0x6f, 0x09, 0x36, 0x7e, 0x7c, 0xbc, 0x25, 0x71, 0x47, 0xb1, 0x07, 0x83, 0x0e, 0x60, - 0xa2, 0x67, 0xb6, 0x19, 0xa7, 0xcd, 0xa2, 0x60, 0xa7, 0x2f, 0x3c, 0xe9, 0x5e, 0xd6, 0xb5, 0xd9, - 0x0e, 0x49, 0xd7, 0xe7, 0x84, 0xae, 0x89, 0xf0, 0x38, 0x8e, 0x68, 0x41, 0x8b, 0x30, 0xd9, 0x55, - 0x75, 0x16, 0x97, 0xfa, 0x4d, 0xd2, 0x32, 0xf4, 0x36, 0xe5, 0x6e, 0x35, 0x54, 0x9f, 0x17, 0x00, - 0x93, 0xeb, 0x61, 0x32, 0x8e, 0xf2, 0xa3, 0x5f, 0x01, 0x72, 0xa7, 0xf1, 0xd8, 0x09, 0xe2, 0xaa, - 0xa1, 0x73, 0x9f, 0xcb, 0xfb, 0xce, 0xbd, 0x15, 0xe3, 0xc0, 0x09, 0x52, 0x68, 0x0d, 0x66, 0x2d, - 0x72, 0xa0, 0xb2, 0x39, 0x3e, 0x51, 0xa9, 0x6d, 0x58, 0xfd, 0x35, 0xb5, 0xab, 0xda, 0xe5, 0x61, - 0x6e, 0x53, 0xf9, 0xf8, 0xa8, 0x32, 0x8b, 0x13, 0xe8, 0x38, 0x51, 0x4a, 0xfe, 0xf3, 0x61, 0x98, - 0x8c, 0xc4, 0x1b, 0xf4, 0x14, 0xe6, 0x5a, 0x3d, 0xcb, 0x22, 0xba, 0xbd, 0xd1, 0xeb, 0xee, 0x10, - 0xab, 0xd9, 0xda, 0x23, 0xed, 0x9e, 0x46, 0xda, 0xdc, 0x51, 0x86, 0xea, 0x0b, 0xc2, 0xe2, 0xb9, - 0xa5, 0x44, 0x2e, 0x9c, 0x22, 0xcd, 0x56, 0x41, 0xe7, 0x43, 0xeb, 0x2a, 0xa5, 0x1e, 0x66, 0x8e, - 0x63, 0x7a, 0xab, 0xb0, 0x11, 0xe3, 0xc0, 0x09, 0x52, 0xcc, 0xc6, 0x36, 0xa1, 0xaa, 0x45, 0xda, - 0x51, 0x1b, 0xf3, 0x61, 0x1b, 0x97, 0x13, 0xb9, 0x70, 0x8a, 0x34, 0xba, 0x0b, 0xa3, 0x8e, 0x36, - 0xbe, 0x7f, 0x62, 0xa3, 0x67, 0x04, 0xd8, 0xe8, 0x86, 0x4f, 0xc2, 0x41, 0x3e, 0x36, 0x35, 0x63, - 0x87, 0x12, 0xeb, 0x80, 0xb4, 0xd3, 0x37, 0x78, 0x33, 0xc6, 0x81, 0x13, 0xa4, 0xd8, 0xd4, 0x1c, - 0x0f, 0x8c, 0x4d, 0x6d, 0x38, 0x3c, 0xb5, 0xed, 0x44, 0x2e, 0x9c, 0x22, 0xcd, 0xfc, 0xd8, 0x31, - 0x79, 0xf1, 0x40, 0x51, 0x35, 0x65, 0x47, 0x23, 0xe5, 0x62, 0xd8, 0x8f, 0x37, 0xc2, 0x64, 0x1c, - 0xe5, 0x47, 0x8f, 0x61, 0xda, 0x19, 0xda, 0xd6, 0x15, 0x0f, 0xa4, 0xc4, 0x41, 0x7e, 0x22, 0x40, - 0xa6, 0x37, 0xa2, 0x0c, 0x38, 0x2e, 0x83, 0x1e, 0xc0, 0x44, 0xcb, 0xd0, 0x34, 0xee, 0x8f, 0x4b, - 0x46, 0x4f, 0xb7, 0xcb, 0x23, 0x1c, 0x05, 0xb1, 0xf3, 0xb8, 0x14, 0xa2, 0xe0, 0x08, 0x27, 0x22, - 0x00, 0x2d, 0x37, 0xe1, 0xd0, 0x32, 0xf0, 0xf8, 0x78, 0x2b, 0x6b, 0x0c, 0xf0, 0x52, 0x95, 0x5f, - 0x03, 0x78, 0x43, 0x14, 0x07, 0x80, 0xe5, 0x7f, 0x95, 0x60, 0x3e, 0x25, 0x74, 0xa0, 0x5f, 0x86, - 0x52, 0xec, 0x6f, 0x46, 0x52, 0xec, 0xe5, 0x14, 0xb1, 0x40, 0x9e, 0xd5, 0x61, 0xdc, 0x62, 0xb3, - 0xd2, 0x3b, 0x0e, 0x8b, 0x88, 0x91, 0x77, 0x07, 0x4c, 0x03, 0x07, 0x65, 0xfc, 0x98, 0x3f, 0x7d, - 0x7c, 0x54, 0x19, 0x0f, 0xd1, 0x70, 0x18, 0x5e, 0xfe, 0x8b, 0x1c, 0xc0, 0x32, 0x31, 0x35, 0xa3, - 0xdf, 0x25, 0xfa, 0x79, 0xd4, 0x50, 0x9b, 0xa1, 0x1a, 0xea, 0xe6, 0xa0, 0xed, 0xf1, 0x4c, 0x4b, - 0x2d, 0xa2, 0xde, 0x8d, 0x14, 0x51, 0xb5, 0xec, 0x90, 0x27, 0x57, 0x51, 0xff, 0x91, 0x87, 0x19, - 0x9f, 0xd9, 0x2f, 0xa3, 0x1e, 0x86, 0xf6, 0xf8, 0x37, 0x22, 0x7b, 0x3c, 0x9f, 0x20, 0xf2, 0xca, - 0xea, 0xa8, 0x67, 0x30, 0xc1, 0xaa, 0x1c, 0x67, 0x2f, 0x79, 0x0d, 0x35, 0x7c, 0xea, 0x1a, 0xca, - 0xcb, 0x76, 0x6b, 0x21, 0x24, 0x1c, 0x41, 0x4e, 0xa9, 0xd9, 0x8a, 0x3f, 0xc6, 0x9a, 0xed, 0x4b, - 0x09, 0x26, 0xfc, 0x6d, 0x3a, 0x87, 0xa2, 0x6d, 0x23, 0x5c, 0xb4, 0xbd, 0x9e, 0xd9, 0x45, 0x53, - 0xaa, 0xb6, 0xff, 0x65, 0x05, 0xbe, 0xc7, 0xc4, 0x0e, 0xf8, 0x8e, 0xd2, 0xda, 0x1f, 0x7c, 0xc7, - 0x43, 0x9f, 0x49, 0x80, 0x44, 0x16, 0x58, 0xd4, 0x75, 0xc3, 0x56, 0x9c, 0x58, 0xe9, 0x98, 0xb5, - 0x9a, 0xd9, 0x2c, 0x57, 0x63, 0x75, 0x3b, 0x86, 0xf5, 0x48, 0xb7, 0xad, 0xbe, 0xbf, 0xc9, 0x71, - 0x06, 0x9c, 0x60, 0x00, 0x52, 0x00, 0x2c, 0x81, 0xb9, 0x65, 0x88, 0x83, 0x7c, 0x33, 0x43, 0xcc, - 0x63, 0x02, 0x4b, 0x86, 0xbe, 0xab, 0x76, 0xfc, 0xb0, 0x83, 0x3d, 0x20, 0x1c, 0x00, 0xbd, 0xf4, - 0x08, 0xe6, 0x53, 0xac, 0x45, 0x53, 0x90, 0xdf, 0x27, 0x7d, 0x67, 0xd9, 0x30, 0xfb, 0x13, 0xcd, - 0xc2, 0xd0, 0x81, 0xa2, 0xf5, 0x9c, 0xf0, 0x3b, 0x82, 0x9d, 0x1f, 0x0f, 0x72, 0xf7, 0x25, 0xf9, - 0x8b, 0xa1, 0xa0, 0xef, 0xf0, 0x8a, 0xf9, 0x3a, 0xbb, 0xb4, 0x9a, 0x9a, 0xda, 0x52, 0xa8, 0x28, - 0x84, 0xc6, 0x9c, 0x0b, 0xab, 0x33, 0x86, 0x3d, 0x6a, 0xa8, 0xb6, 0xce, 0xbd, 0xda, 0xda, 0x3a, - 0xff, 0x72, 0x6a, 0xeb, 0xdf, 0x83, 0x12, 0x75, 0xab, 0xea, 0x02, 0x87, 0xbc, 0x75, 0x8a, 0xf8, - 0x2a, 0x0a, 0x6a, 0x4f, 0x81, 0x57, 0x4a, 0x7b, 0xa0, 0x49, 0x45, 0xf4, 0xd0, 0x29, 0x8b, 0xe8, - 0x97, 0x5a, 0xf8, 0xb2, 0x78, 0x63, 0x2a, 0x3d, 0x4a, 0xda, 0x3c, 0xb6, 0x95, 0xfc, 0x78, 0xd3, - 0xe0, 0xa3, 0x58, 0x50, 0xd1, 0x07, 0x21, 0x97, 0x2d, 0x9d, 0xc5, 0x65, 0x27, 0xd2, 0xdd, 0x15, - 0x6d, 0xc3, 0xbc, 0x69, 0x19, 0x1d, 0x8b, 0x50, 0xba, 0x4c, 0x94, 0xb6, 0xa6, 0xea, 0xc4, 0x5d, - 0x1f, 0xa7, 0x22, 0xba, 0x7c, 0x7c, 0x54, 0x99, 0x6f, 0x24, 0xb3, 0xe0, 0x34, 0x59, 0xf9, 0x79, - 0x01, 0xa6, 0xa2, 0x19, 0x30, 0xa5, 0x48, 0x95, 0xce, 0x54, 0xa4, 0xde, 0x08, 0x1c, 0x06, 0xa7, - 0x82, 0x0f, 0xbc, 0xe0, 0xc4, 0x0e, 0xc4, 0x22, 0x4c, 0x8a, 0x68, 0xe0, 0x12, 0x45, 0x99, 0xee, - 0xed, 0xfe, 0x76, 0x98, 0x8c, 0xa3, 0xfc, 0xe8, 0x21, 0x8c, 0x5b, 0xbc, 0xee, 0x76, 0x01, 0x9c, - 0xda, 0xf5, 0xa2, 0x00, 0x18, 0xc7, 0x41, 0x22, 0x0e, 0xf3, 0xb2, 0xba, 0xd5, 0x2f, 0x47, 0x5d, - 0x80, 0x42, 0xb8, 0x6e, 0x5d, 0x8c, 0x32, 0xe0, 0xb8, 0x0c, 0x5a, 0x87, 0x99, 0x9e, 0x1e, 0x87, - 0x72, 0x5c, 0xf9, 0xb2, 0x80, 0x9a, 0xd9, 0x8e, 0xb3, 0xe0, 0x24, 0x39, 0xb4, 0x1b, 0x2a, 0x65, - 0x87, 0x79, 0x78, 0xbe, 0x9d, 0xf9, 0xe0, 0x65, 0xae, 0x65, 0x13, 0xca, 0xed, 0x52, 0xd6, 0x72, - 0x5b, 0xfe, 0x27, 0x29, 0x98, 0x84, 0xbc, 0x12, 0x78, 0xd0, 0x2b, 0x53, 0x4c, 0x22, 0x50, 0x1d, - 0x19, 0xc9, 0xd5, 0xef, 0xbd, 0x53, 0x55, 0xbf, 0x7e, 0xf2, 0x1c, 0x5c, 0xfe, 0x7e, 0x2e, 0xc1, - 0xdc, 0x4a, 0xf3, 0xb1, 0x65, 0xf4, 0x4c, 0xd7, 0x9c, 0x4d, 0xd3, 0x59, 0x9a, 0x9f, 0x43, 0xc1, - 0xea, 0x69, 0xee, 0x3c, 0x5e, 0x73, 0xe7, 0x81, 0x7b, 0x1a, 0x9b, 0xc7, 0x4c, 0x44, 0xca, 0x99, - 0x04, 0x13, 0x40, 0x1b, 0x30, 0x6c, 0x29, 0x7a, 0x87, 0xb8, 0x69, 0xf5, 0xda, 0x00, 0xeb, 0x57, - 0x97, 0x31, 0x63, 0x0f, 0x14, 0x36, 0x5c, 0x1a, 0x0b, 0x14, 0xf9, 0x9f, 0x25, 0x98, 0x7c, 0xb2, - 0xb5, 0xd5, 0x58, 0xd5, 0xf9, 0x89, 0xe6, 0x6f, 0xab, 0x57, 0xa1, 0x60, 0x2a, 0xf6, 0x5e, 0x34, - 0xd3, 0x33, 0x1a, 0xe6, 0x14, 0x74, 0x07, 0x4a, 0xec, 0x5f, 0x66, 0x17, 0x3f, 0x52, 0x23, 0x3c, - 0x10, 0x96, 0x1a, 0x62, 0xec, 0x45, 0xe0, 0x6f, 0xec, 0x71, 0xa2, 0xf7, 0xa0, 0xc8, 0xe2, 0x0f, - 0xd1, 0xdb, 0x19, 0x0b, 0x74, 0x61, 0x54, 0xdd, 0x11, 0xf2, 0x6b, 0x2e, 0x31, 0x80, 0x5d, 0x38, - 0x79, 0x1f, 0x66, 0x03, 0x93, 0x60, 0xab, 0xf8, 0x94, 0xe5, 0x54, 0xd4, 0x84, 0x21, 0xa6, 0x9d, - 0x65, 0xce, 0x7c, 0x86, 0x27, 0xd0, 0xc8, 0x42, 0xf8, 0xf5, 0x11, 0xfb, 0x45, 0xb1, 0x83, 0x25, - 0xaf, 0xc3, 0x38, 0x7f, 0x86, 0x36, 0x2c, 0x9b, 0x2f, 0x26, 0xba, 0x02, 0xf9, 0xae, 0xaa, 0x8b, - 0xec, 0x3c, 0x2a, 0x64, 0xf2, 0x2c, 0xb3, 0xb0, 0x71, 0x4e, 0x56, 0x0e, 0x45, 0xbc, 0xf2, 0xc9, - 0xca, 0x21, 0x66, 0xe3, 0xf2, 0x63, 0x28, 0x8a, 0x4d, 0x0a, 0x02, 0xe5, 0x4f, 0x06, 0xca, 0x27, - 0x00, 0x6d, 0x42, 0x71, 0xb5, 0x51, 0xd7, 0x0c, 0xa7, 0x56, 0x6b, 0xa9, 0x6d, 0x2b, 0xba, 0x83, - 0x4b, 0xab, 0xcb, 0x18, 0x73, 0x0a, 0x92, 0x61, 0x98, 0x1c, 0xb6, 0x88, 0x69, 0x73, 0x3f, 0x1a, - 0xa9, 0x03, 0xf3, 0x8d, 0x47, 0x7c, 0x04, 0x0b, 0x8a, 0xfc, 0x27, 0x39, 0x28, 0x8a, 0xe5, 0x38, - 0x87, 0xbb, 0xdb, 0x5a, 0xe8, 0xee, 0xf6, 0x46, 0x36, 0xd7, 0x48, 0xbd, 0xb8, 0x6d, 0x45, 0x2e, - 0x6e, 0x37, 0x32, 0xe2, 0x9d, 0x7c, 0x6b, 0xfb, 0x34, 0x07, 0x13, 0x61, 0xa7, 0x44, 0x77, 0x61, - 0x94, 0xa5, 0x29, 0xb5, 0x45, 0x36, 0xfc, 0xea, 0xd8, 0x7b, 0xba, 0x69, 0xfa, 0x24, 0x1c, 0xe4, - 0x43, 0x1d, 0x4f, 0x8c, 0xf9, 0x91, 0x98, 0x74, 0xfa, 0x92, 0xf6, 0x6c, 0x55, 0xab, 0x3a, 0x1f, - 0x64, 0xaa, 0xab, 0xba, 0xbd, 0x69, 0x35, 0x6d, 0x4b, 0xd5, 0x3b, 0x31, 0x45, 0xdc, 0x29, 0x83, - 0xc8, 0xe8, 0x5d, 0x96, 0x32, 0xa9, 0xd1, 0xb3, 0x5a, 0x24, 0xa9, 0xf4, 0x75, 0xcb, 0x36, 0x76, - 0x40, 0xdb, 0x6b, 0x46, 0x4b, 0xd1, 0x9c, 0xcd, 0xc1, 0x64, 0x97, 0x58, 0x44, 0x6f, 0x11, 0xb7, - 0xdc, 0x74, 0x20, 0xb0, 0x07, 0x26, 0xff, 0x83, 0x04, 0xa3, 0x62, 0x2d, 0xce, 0xe1, 0x92, 0xf3, - 0x3b, 0xe1, 0x4b, 0xce, 0xb5, 0x8c, 0x91, 0x23, 0xf9, 0x86, 0xf3, 0xd7, 0xbe, 0xe9, 0x2c, 0x56, - 0xb0, 0xe3, 0xb2, 0x67, 0x50, 0x3b, 0x7a, 0x5c, 0xd8, 0x29, 0xc7, 0x9c, 0x82, 0x7a, 0x30, 0xa5, - 0x46, 0x82, 0x8b, 0xd8, 0xb3, 0x5a, 0x36, 0x4b, 0x3c, 0xb1, 0x7a, 0x59, 0xc0, 0x4f, 0x45, 0x29, - 0x38, 0xa6, 0x42, 0x26, 0x10, 0xe3, 0x42, 0xef, 0x40, 0x61, 0xcf, 0xb6, 0xcd, 0x84, 0xe7, 0xf3, - 0x01, 0x21, 0xcd, 0x37, 0xa1, 0xc4, 0x67, 0xb7, 0xb5, 0xd5, 0xc0, 0x1c, 0x4a, 0xfe, 0xc7, 0x9c, - 0xb7, 0x1e, 0xfc, 0xce, 0xf1, 0xb6, 0x37, 0xdb, 0x25, 0x4d, 0xa1, 0x94, 0x3b, 0xb6, 0x73, 0x3f, - 0x9e, 0x0d, 0x18, 0xee, 0xd1, 0x70, 0x8c, 0x1b, 0x6d, 0xf9, 0xa1, 0x5e, 0x3a, 0x4b, 0xa8, 0x1f, - 0x4d, 0x0a, 0xf3, 0xe8, 0x09, 0xe4, 0x6d, 0x2d, 0xeb, 0x3d, 0x57, 0x20, 0x6e, 0xad, 0x35, 0xfd, - 0x58, 0xb9, 0xb5, 0xd6, 0xc4, 0x0c, 0x02, 0x6d, 0xc2, 0x10, 0x4b, 0xa7, 0x2c, 0x3a, 0xe4, 0xb3, - 0x47, 0x1b, 0xb6, 0x82, 0xbe, 0x4b, 0xb1, 0x5f, 0x14, 0x3b, 0x38, 0xf2, 0xc7, 0x30, 0x1e, 0x0a, - 0x21, 0xe8, 0x23, 0x18, 0xd3, 0x0c, 0xa5, 0x5d, 0x57, 0x34, 0x45, 0x6f, 0x11, 0xf7, 0x6b, 0xc7, - 0xb5, 0xa4, 0xb3, 0xb7, 0x16, 0xe0, 0x13, 0x01, 0x68, 0x56, 0x28, 0x19, 0x0b, 0xd2, 0x70, 0x08, - 0x51, 0x56, 0x00, 0xfc, 0x39, 0xa2, 0x0a, 0x0c, 0x31, 0x4f, 0x75, 0x52, 0xdd, 0x48, 0x7d, 0x84, - 0x59, 0xc8, 0x1c, 0x98, 0x62, 0x67, 0x1c, 0xdd, 0x06, 0xa0, 0xa4, 0x65, 0x11, 0x9b, 0x6f, 0x67, - 0x2e, 0xfc, 0xc5, 0xb4, 0xe9, 0x51, 0x70, 0x80, 0x4b, 0xfe, 0x17, 0x09, 0xc6, 0x37, 0x88, 0xfd, - 0x89, 0x61, 0xed, 0x37, 0x0c, 0x4d, 0x6d, 0xf5, 0xcf, 0x21, 0x0f, 0xe0, 0x50, 0x1e, 0x78, 0x73, - 0xc0, 0xce, 0x84, 0xac, 0x4b, 0xcb, 0x06, 0xf2, 0x97, 0x12, 0xcc, 0x87, 0x38, 0x1f, 0xf9, 0x87, - 0x7f, 0x1b, 0x86, 0x4c, 0xc3, 0xb2, 0xdd, 0x1a, 0xe1, 0x54, 0x0a, 0x59, 0x84, 0x0d, 0x54, 0x09, - 0x0c, 0x06, 0x3b, 0x68, 0x68, 0x0d, 0x72, 0xb6, 0x21, 0x5c, 0xf5, 0x74, 0x98, 0x84, 0x58, 0x75, - 0x10, 0x98, 0xb9, 0x2d, 0x03, 0xe7, 0x6c, 0x83, 0x6d, 0x44, 0x39, 0xc4, 0x15, 0x0c, 0x5f, 0xaf, - 0x68, 0x06, 0x18, 0x0a, 0xbb, 0x96, 0xd1, 0x3d, 0xf3, 0x1c, 0xbc, 0x8d, 0x58, 0xb1, 0x8c, 0x2e, - 0xe6, 0x58, 0xf2, 0x57, 0x12, 0x4c, 0x87, 0x38, 0xcf, 0x21, 0x75, 0xbc, 0x13, 0x4e, 0x1d, 0x37, - 0x4e, 0x33, 0x91, 0x94, 0x04, 0xf2, 0x55, 0x2e, 0x32, 0x0d, 0x36, 0x61, 0xb4, 0x0b, 0xa3, 0xa6, - 0xd1, 0x6e, 0xbe, 0x84, 0xef, 0x9b, 0x93, 0x2c, 0xa5, 0x37, 0x7c, 0x2c, 0x1c, 0x04, 0x46, 0x87, - 0x30, 0xad, 0x2b, 0x5d, 0x42, 0x4d, 0xa5, 0x45, 0x9a, 0x2f, 0xe1, 0xc5, 0xe7, 0x22, 0xff, 0x80, - 0x12, 0x45, 0xc4, 0x71, 0x25, 0x68, 0x1d, 0x8a, 0xaa, 0xc9, 0x4b, 0x4c, 0x51, 0x4b, 0x0c, 0xcc, - 0xc3, 0x4e, 0x41, 0xea, 0xc4, 0x73, 0xf1, 0x03, 0xbb, 0x18, 0xf2, 0xdf, 0x44, 0xbd, 0x81, 0x57, - 0x2c, 0x8f, 0xa1, 0xc4, 0x3b, 0x4d, 0x5a, 0x86, 0xe6, 0x7e, 0xea, 0xe0, 0x97, 0x0b, 0x31, 0xf6, - 0xe2, 0xa8, 0x72, 0x39, 0xe1, 0x15, 0xdb, 0x25, 0x63, 0x4f, 0x18, 0x6d, 0x40, 0xc1, 0xfc, 0x21, - 0xc5, 0x15, 0x4f, 0x93, 0xbc, 0xa2, 0xe2, 0x38, 0xf2, 0x1f, 0xe6, 0x23, 0xe6, 0xf2, 0x64, 0xf9, - 0xec, 0xa5, 0xed, 0xba, 0x57, 0xcc, 0xa5, 0xee, 0xfc, 0x0e, 0x14, 0x45, 0xaa, 0x15, 0xce, 0xfc, - 0xf3, 0xd3, 0x38, 0x73, 0x30, 0x8b, 0x79, 0x77, 0x29, 0x77, 0xd0, 0x05, 0x46, 0x1f, 0xc2, 0x30, - 0x71, 0x54, 0x38, 0xb9, 0xf1, 0xde, 0x69, 0x54, 0xf8, 0x71, 0xd5, 0xaf, 0xa1, 0xc5, 0x98, 0x40, - 0x45, 0xbf, 0x64, 0xeb, 0xc5, 0x78, 0x59, 0xc9, 0x49, 0xcb, 0x05, 0x9e, 0xae, 0xae, 0x38, 0xd3, - 0xf6, 0x86, 0x5f, 0x1c, 0x55, 0xc0, 0xff, 0x89, 0x83, 0x12, 0xf2, 0xbf, 0x49, 0x30, 0xcd, 0x57, - 0xa8, 0xd5, 0xb3, 0x54, 0xbb, 0x7f, 0x6e, 0x89, 0xe9, 0x69, 0x28, 0x31, 0xdd, 0x19, 0xb0, 0x2c, - 0x31, 0x0b, 0x53, 0x93, 0xd3, 0xd7, 0x12, 0x5c, 0x8c, 0x71, 0x9f, 0x43, 0x5c, 0xdc, 0x0e, 0xc7, - 0xc5, 0x37, 0x4f, 0x3b, 0xa1, 0x94, 0xd8, 0xf8, 0x3f, 0xd3, 0x09, 0xd3, 0xe1, 0x27, 0xe5, 0x36, - 0x80, 0x69, 0xa9, 0x07, 0xaa, 0x46, 0x3a, 0xe2, 0xab, 0x7e, 0x29, 0xd0, 0xb3, 0xe5, 0x51, 0x70, - 0x80, 0x0b, 0x51, 0x98, 0x6b, 0x93, 0x5d, 0xa5, 0xa7, 0xd9, 0x8b, 0xed, 0xf6, 0x92, 0x62, 0x2a, - 0x3b, 0xaa, 0xa6, 0xda, 0xaa, 0x78, 0xff, 0x18, 0xa9, 0x3f, 0x74, 0xbe, 0xb6, 0x27, 0x71, 0xbc, - 0x38, 0xaa, 0x5c, 0x49, 0xfa, 0xdc, 0xe5, 0xb2, 0xf4, 0x71, 0x0a, 0x34, 0xea, 0x43, 0xd9, 0x22, - 0x1f, 0xf7, 0x54, 0x8b, 0xb4, 0x97, 0x2d, 0xc3, 0x0c, 0xa9, 0xcd, 0x73, 0xb5, 0xbf, 0x7d, 0x7c, - 0x54, 0x29, 0xe3, 0x14, 0x9e, 0xc1, 0x8a, 0x53, 0xe1, 0xd1, 0x33, 0x98, 0x51, 0x44, 0x77, 0x5d, - 0x50, 0xab, 0x73, 0x4a, 0xee, 0x1f, 0x1f, 0x55, 0x66, 0x16, 0xe3, 0xe4, 0xc1, 0x0a, 0x93, 0x40, - 0x51, 0x0d, 0x8a, 0x07, 0xbc, 0x11, 0x8f, 0x96, 0x87, 0x38, 0x3e, 0x4b, 0x04, 0x45, 0xa7, 0x37, - 0x8f, 0x61, 0x0e, 0xaf, 0x34, 0xf9, 0xe9, 0x73, 0xb9, 0xd8, 0x5d, 0x97, 0xd5, 0x92, 0xe2, 0xc4, - 0xf3, 0x27, 0xf0, 0x92, 0x1f, 0xb5, 0x9e, 0xf8, 0x24, 0x1c, 0xe4, 0x43, 0x1f, 0xc0, 0xc8, 0x9e, - 0x78, 0x30, 0xa1, 0xe5, 0x62, 0xa6, 0x24, 0x1c, 0x7a, 0x60, 0xa9, 0x4f, 0x0b, 0x15, 0x23, 0xee, - 0x30, 0xc5, 0x3e, 0x22, 0x7a, 0x1d, 0x8a, 0xfc, 0xc7, 0xea, 0x32, 0x7f, 0x5f, 0x2c, 0xf9, 0xb1, - 0xed, 0x89, 0x33, 0x8c, 0x5d, 0xba, 0xcb, 0xba, 0xda, 0x58, 0xe2, 0xef, 0xdc, 0x11, 0xd6, 0xd5, - 0xc6, 0x12, 0x76, 0xe9, 0xe8, 0x23, 0x28, 0x52, 0xb2, 0xa6, 0xea, 0xbd, 0xc3, 0x32, 0x64, 0xfa, - 0x4a, 0xde, 0x7c, 0xc4, 0xb9, 0x23, 0x2f, 0x7d, 0xbe, 0x06, 0x41, 0xc7, 0x2e, 0x2c, 0xda, 0x83, - 0x11, 0xab, 0xa7, 0x2f, 0xd2, 0x6d, 0x4a, 0xac, 0xf2, 0x28, 0xd7, 0x31, 0x28, 0x9c, 0x63, 0x97, - 0x3f, 0xaa, 0xc5, 0x5b, 0x21, 0x8f, 0x03, 0xfb, 0xe0, 0x68, 0x0f, 0x80, 0xff, 0xe0, 0x8f, 0x8a, - 0xe5, 0x39, 0xae, 0xea, 0x7e, 0x16, 0x55, 0x49, 0x6f, 0x97, 0xe2, 0xc3, 0x82, 0x47, 0xc6, 0x01, - 0x6c, 0xf4, 0xc7, 0x12, 0x20, 0xda, 0x33, 0x4d, 0x8d, 0x74, 0x89, 0x6e, 0x2b, 0x1a, 0x1f, 0xa5, - 0xe5, 0x31, 0xae, 0xf2, 0xed, 0x41, 0x2b, 0x18, 0x13, 0x8c, 0xaa, 0xf6, 0xbe, 0x17, 0xc4, 0x59, - 0x71, 0x82, 0x5e, 0xb6, 0x89, 0xbb, 0x62, 0xd6, 0xe3, 0x99, 0x36, 0x31, 0xf9, 0xb9, 0xd6, 0xdf, - 0x44, 0x41, 0xc7, 0x2e, 0x2c, 0x7a, 0x0a, 0x73, 0x6e, 0xc7, 0x28, 0x36, 0x0c, 0x7b, 0x45, 0xd5, - 0x08, 0xed, 0x53, 0x9b, 0x74, 0xcb, 0x13, 0xdc, 0xc1, 0xbc, 0xb6, 0x19, 0x9c, 0xc8, 0x85, 0x53, - 0xa4, 0x51, 0x17, 0x2a, 0x6e, 0x70, 0x62, 0x27, 0xd7, 0x8b, 0x8e, 0x8f, 0x68, 0x4b, 0xd1, 0x9c, - 0x4f, 0x28, 0x93, 0x5c, 0xc1, 0x6b, 0xc7, 0x47, 0x95, 0xca, 0xf2, 0xc9, 0xac, 0x78, 0x10, 0x16, - 0x7a, 0x0f, 0xca, 0x4a, 0x9a, 0x9e, 0x29, 0xae, 0xe7, 0xa7, 0x2c, 0xe2, 0xa5, 0x2a, 0x48, 0x95, - 0x46, 0x36, 0x4c, 0x29, 0xe1, 0xde, 0x5d, 0x5a, 0x9e, 0xce, 0xf4, 0x1a, 0x1b, 0x69, 0xf9, 0xf5, - 0x1f, 0x4e, 0x22, 0x04, 0x8a, 0x63, 0x1a, 0xd0, 0xef, 0x03, 0x52, 0xa2, 0xed, 0xc6, 0xb4, 0x8c, - 0x32, 0x25, 0xba, 0x58, 0x9f, 0xb2, 0xef, 0x76, 0x31, 0x12, 0xc5, 0x09, 0x7a, 0x58, 0x81, 0xae, - 0x44, 0x5a, 0xa4, 0x69, 0x79, 0x9e, 0x2b, 0xaf, 0x65, 0x53, 0xee, 0xc9, 0x05, 0xbe, 0x14, 0x45, - 0x11, 0x71, 0x5c, 0x09, 0x5a, 0x83, 0x59, 0x31, 0xb8, 0xad, 0x53, 0x65, 0x97, 0x34, 0xfb, 0xb4, - 0x65, 0x6b, 0xb4, 0x3c, 0xc3, 0xe3, 0x3b, 0xff, 0x5a, 0xb9, 0x98, 0x40, 0xc7, 0x89, 0x52, 0xe8, - 0x6d, 0x98, 0xda, 0x35, 0xac, 0x1d, 0xb5, 0xdd, 0x26, 0xba, 0x8b, 0x34, 0xcb, 0x91, 0xf8, 0x3b, - 0xd0, 0x4a, 0x84, 0x86, 0x63, 0xdc, 0x88, 0xc2, 0x45, 0x81, 0xdc, 0xb0, 0x8c, 0xd6, 0xba, 0xd1, - 0xd3, 0x6d, 0xa7, 0xec, 0xbb, 0xe8, 0xa5, 0xd1, 0x8b, 0x8b, 0x49, 0x0c, 0x2f, 0x8e, 0x2a, 0x57, - 0x93, 0xab, 0x7c, 0x9f, 0x09, 0x27, 0x63, 0x23, 0x13, 0xc6, 0x44, 0xe3, 0x3b, 0x7f, 0x90, 0x2a, - 0x97, 0xf9, 0xd1, 0x7f, 0x30, 0x38, 0xe0, 0x79, 0x22, 0xd1, 0xf3, 0x3f, 0x75, 0x7c, 0x54, 0x19, - 0x0b, 0x32, 0xe0, 0x90, 0x06, 0xde, 0xe8, 0x24, 0x3e, 0xaf, 0x9d, 0x4f, 0xb3, 0xf8, 0xe9, 0x1a, - 0x9d, 0x7c, 0xd3, 0x5e, 0x5a, 0xa3, 0x53, 0x00, 0xf2, 0xe4, 0x27, 0xf3, 0xff, 0xce, 0xc1, 0x8c, - 0xcf, 0x9c, 0xb9, 0xd1, 0x29, 0x41, 0xe4, 0xd7, 0x0d, 0xe3, 0xd9, 0x9a, 0x8f, 0xfc, 0xa5, 0xfb, - 0xff, 0xd7, 0x7c, 0xe4, 0xdb, 0x96, 0x72, 0x7b, 0xf8, 0xbb, 0x5c, 0x70, 0x02, 0xa7, 0xec, 0x80, - 0x79, 0x09, 0x3d, 0xd3, 0x3f, 0xba, 0x26, 0x1a, 0xf9, 0xeb, 0x3c, 0x4c, 0x45, 0x4f, 0x63, 0xa8, - 0x51, 0x42, 0x1a, 0xd8, 0x28, 0xd1, 0x80, 0xd9, 0xdd, 0x9e, 0xa6, 0xf5, 0xf9, 0x1c, 0x02, 0xdd, - 0x12, 0xce, 0x27, 0xcb, 0x9f, 0x0a, 0xc9, 0xd9, 0x95, 0x04, 0x1e, 0x9c, 0x28, 0x19, 0xef, 0x9b, - 0x28, 0xfc, 0xd0, 0xbe, 0x89, 0xa1, 0x33, 0xf4, 0x4d, 0x24, 0xb7, 0x9e, 0xe4, 0xcf, 0xd4, 0x7a, - 0x72, 0x96, 0xa6, 0x89, 0x84, 0x20, 0x36, 0xb0, 0x01, 0xf8, 0x17, 0x30, 0x11, 0x6e, 0xe4, 0x71, - 0xf6, 0xd2, 0xe9, 0x25, 0x12, 0x9f, 0x86, 0x03, 0x7b, 0xe9, 0x8c, 0x63, 0x8f, 0x43, 0xfe, 0x23, - 0x09, 0xe6, 0x92, 0x1b, 0x76, 0x91, 0x06, 0x13, 0x5d, 0xe5, 0x30, 0xd8, 0x44, 0x2d, 0x9d, 0xf1, - 0x65, 0x8c, 0x77, 0x70, 0xac, 0x87, 0xb0, 0x70, 0x04, 0x5b, 0xfe, 0x5e, 0x82, 0xf9, 0x94, 0xde, - 0x89, 0xf3, 0xb5, 0x04, 0xbd, 0x0f, 0xa5, 0xae, 0x72, 0xd8, 0xec, 0x59, 0x1d, 0x72, 0xe6, 0xb7, - 0x40, 0x7e, 0xa0, 0xd7, 0x05, 0x0a, 0xf6, 0xf0, 0xe4, 0xbf, 0x92, 0xe0, 0x27, 0xa9, 0x57, 0x25, - 0x74, 0x2f, 0xd4, 0xe6, 0x21, 0x47, 0xda, 0x3c, 0x50, 0x5c, 0xf0, 0x15, 0x75, 0x79, 0x7c, 0x2e, - 0x41, 0x39, 0xed, 0xee, 0x88, 0xee, 0x86, 0x8c, 0xfc, 0x59, 0xc4, 0xc8, 0xe9, 0x98, 0xdc, 0x2b, - 0xb2, 0xf1, 0xdf, 0x25, 0xb8, 0x7c, 0x42, 0x0d, 0xe6, 0x5d, 0x51, 0x48, 0x3b, 0xc8, 0xc5, 0x9f, - 0xad, 0xc5, 0x37, 0x2f, 0xff, 0x8a, 0x92, 0xc0, 0x83, 0x53, 0xa5, 0xd1, 0x36, 0xcc, 0x8b, 0xfb, - 0x51, 0x94, 0x26, 0xca, 0x0b, 0xde, 0x0d, 0xb7, 0x9c, 0xcc, 0x82, 0xd3, 0x64, 0xe5, 0xbf, 0x95, - 0x60, 0x2e, 0xf9, 0x51, 0x00, 0xbd, 0x15, 0x5a, 0xf2, 0x4a, 0x64, 0xc9, 0x27, 0x23, 0x52, 0x62, - 0xc1, 0x3f, 0x84, 0x09, 0xf1, 0x74, 0x20, 0x60, 0x84, 0x33, 0xcb, 0x49, 0x19, 0x44, 0x40, 0xb8, - 0x05, 0x2c, 0x3f, 0x26, 0xe1, 0x31, 0x1c, 0x41, 0x93, 0x3f, 0xcd, 0xc1, 0x50, 0xb3, 0xa5, 0x68, - 0xe4, 0x1c, 0xea, 0xd7, 0x5f, 0x85, 0xea, 0xd7, 0x41, 0xff, 0xcf, 0x8c, 0x5b, 0x95, 0x5a, 0xba, - 0xe2, 0x48, 0xe9, 0xfa, 0x46, 0x26, 0xb4, 0x93, 0xab, 0xd6, 0xdf, 0x82, 0x11, 0x4f, 0xe9, 0xe9, - 0x92, 0xa9, 0xfc, 0x97, 0x39, 0x18, 0x0d, 0xa8, 0x38, 0x65, 0x2a, 0xde, 0x0d, 0xd5, 0x1f, 0xf9, - 0x0c, 0x0f, 0x35, 0x01, 0x5d, 0x55, 0xb7, 0xe2, 0x70, 0xfa, 0xa4, 0xfd, 0xce, 0xd8, 0x78, 0x21, - 0xf2, 0x0b, 0x98, 0xb0, 0x15, 0xab, 0x43, 0x6c, 0xef, 0xc3, 0x85, 0xd3, 0xc7, 0xe5, 0x35, 0xec, - 0x6f, 0x85, 0xa8, 0x38, 0xc2, 0x7d, 0xe9, 0x21, 0x8c, 0x87, 0x94, 0x9d, 0xaa, 0xcd, 0xf9, 0xef, - 0x25, 0xf8, 0xd9, 0xc0, 0xc7, 0x1e, 0x54, 0x0f, 0x1d, 0x92, 0x6a, 0xe4, 0x90, 0x2c, 0xa4, 0x03, - 0xbc, 0xba, 0x76, 0xb9, 0xfa, 0xcd, 0xe7, 0xdf, 0x2d, 0x5c, 0xf8, 0xe6, 0xbb, 0x85, 0x0b, 0xdf, - 0x7e, 0xb7, 0x70, 0xe1, 0x0f, 0x8e, 0x17, 0xa4, 0xe7, 0xc7, 0x0b, 0xd2, 0x37, 0xc7, 0x0b, 0xd2, - 0xb7, 0xc7, 0x0b, 0xd2, 0x7f, 0x1e, 0x2f, 0x48, 0x7f, 0xfa, 0xfd, 0xc2, 0x85, 0xf7, 0x8b, 0x02, - 0xee, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x98, 0xf4, 0xad, 0x8a, 0xba, 0x3e, 0x00, 0x00, + 0xd3, 0xb3, 0x34, 0x17, 0xc8, 0x21, 0x87, 0x5c, 0x0c, 0x04, 0x48, 0x2e, 0x4e, 0x72, 0x8c, 0x11, + 0x20, 0xb7, 0x20, 0xc7, 0xe4, 0x60, 0x18, 0x09, 0xe2, 0x00, 0x42, 0xe0, 0x04, 0x06, 0x72, 0x88, + 0x4f, 0x44, 0x4c, 0x9f, 0x82, 0x9c, 0x72, 0x0b, 0x74, 0x0a, 0xba, 0xa7, 0xe7, 0x7f, 0x86, 0x3b, + 0xa4, 0x25, 0x22, 0x0e, 0x72, 0x12, 0xb7, 0xab, 0xea, 0xab, 0xea, 0xee, 0xea, 0xaa, 0xea, 0x9e, + 0x12, 0xac, 0xec, 0xdf, 0xa7, 0x55, 0xd5, 0xa8, 0xed, 0xf7, 0x76, 0x88, 0xa5, 0x13, 0x9b, 0xd0, + 0xda, 0x01, 0xd1, 0xdb, 0x86, 0x55, 0x13, 0x04, 0xc5, 0x54, 0x6b, 0xe4, 0xd0, 0x26, 0x3a, 0x55, + 0x0d, 0x9d, 0xd6, 0x0e, 0x6e, 0xed, 0x10, 0x5b, 0xb9, 0x55, 0xeb, 0x10, 0x9d, 0x58, 0x8a, 0x4d, + 0xda, 0x55, 0xd3, 0x32, 0x6c, 0x03, 0x5d, 0x71, 0xd8, 0xab, 0x8a, 0xa9, 0x56, 0x7d, 0xf6, 0xaa, + 0x60, 0xbf, 0x74, 0xb3, 0xa3, 0xda, 0x7b, 0xbd, 0x9d, 0x6a, 0xcb, 0xe8, 0xd6, 0x3a, 0x46, 0xc7, + 0xa8, 0x71, 0xa9, 0x9d, 0xde, 0x2e, 0xff, 0xc5, 0x7f, 0xf0, 0xbf, 0x1c, 0xb4, 0x4b, 0x72, 0x40, + 0x79, 0xcb, 0xb0, 0x48, 0xed, 0x20, 0xa6, 0xf1, 0xd2, 0x1d, 0x9f, 0xa7, 0xab, 0xb4, 0xf6, 0x54, + 0x9d, 0x58, 0xfd, 0x9a, 0xb9, 0xdf, 0x61, 0x03, 0xb4, 0xd6, 0x25, 0xb6, 0x92, 0x24, 0x55, 0x4b, + 0x93, 0xb2, 0x7a, 0xba, 0xad, 0x76, 0x49, 0x4c, 0xe0, 0xde, 0x20, 0x01, 0xda, 0xda, 0x23, 0x5d, + 0x25, 0x26, 0xf7, 0x56, 0x9a, 0x5c, 0xcf, 0x56, 0xb5, 0x9a, 0xaa, 0xdb, 0xd4, 0xb6, 0xa2, 0x42, + 0xf2, 0x1d, 0x98, 0x5a, 0xd4, 0x34, 0xe3, 0x13, 0xd2, 0x5e, 0x6a, 0xae, 0x2e, 0x5b, 0xea, 0x01, + 0xb1, 0xd0, 0x55, 0x28, 0xe8, 0x4a, 0x97, 0x94, 0xa5, 0xab, 0xd2, 0xf5, 0x91, 0xfa, 0xd8, 0xf3, + 0xa3, 0xca, 0x85, 0xe3, 0xa3, 0x4a, 0x61, 0x43, 0xe9, 0x12, 0xcc, 0x29, 0xf2, 0x43, 0x98, 0x16, + 0x52, 0x2b, 0x1a, 0x39, 0x7c, 0x6a, 0x68, 0xbd, 0x2e, 0x41, 0xd7, 0x60, 0xb8, 0xcd, 0x01, 0x84, + 0xe0, 0x84, 0x10, 0x1c, 0x76, 0x60, 0xb1, 0xa0, 0xca, 0x14, 0x26, 0x85, 0xf0, 0x13, 0x83, 0xda, + 0x0d, 0xc5, 0xde, 0x43, 0xb7, 0x01, 0x4c, 0xc5, 0xde, 0x6b, 0x58, 0x64, 0x57, 0x3d, 0x14, 0xe2, + 0x48, 0x88, 0x43, 0xc3, 0xa3, 0xe0, 0x00, 0x17, 0xba, 0x01, 0x25, 0x8b, 0x28, 0xed, 0x4d, 0x5d, + 0xeb, 0x97, 0x73, 0x57, 0xa5, 0xeb, 0xa5, 0xfa, 0x94, 0x90, 0x28, 0x61, 0x31, 0x8e, 0x3d, 0x0e, + 0xf9, 0xb3, 0x1c, 0x8c, 0x2c, 0x2b, 0xa4, 0x6b, 0xe8, 0x4d, 0x62, 0xa3, 0x8f, 0xa0, 0xc4, 0xb6, + 0xab, 0xad, 0xd8, 0x0a, 0xd7, 0x36, 0x7a, 0xfb, 0xcd, 0xaa, 0xef, 0x4e, 0xde, 0xea, 0x55, 0xcd, + 0xfd, 0x0e, 0x1b, 0xa0, 0x55, 0xc6, 0x5d, 0x3d, 0xb8, 0x55, 0xdd, 0xdc, 0x79, 0x46, 0x5a, 0xf6, + 0x3a, 0xb1, 0x15, 0xdf, 0x3e, 0x7f, 0x0c, 0x7b, 0xa8, 0x68, 0x03, 0x0a, 0xd4, 0x24, 0x2d, 0x6e, + 0xd9, 0xe8, 0xed, 0x1b, 0xd5, 0x13, 0x9d, 0xb5, 0xea, 0x59, 0xd6, 0x34, 0x49, 0xcb, 0x5f, 0x71, + 0xf6, 0x0b, 0x73, 0x1c, 0xf4, 0x14, 0x86, 0xa9, 0xad, 0xd8, 0x3d, 0x5a, 0xce, 0x73, 0xc4, 0x6a, + 0x66, 0x44, 0x2e, 0xe5, 0x6f, 0x86, 0xf3, 0x1b, 0x0b, 0x34, 0xf9, 0x3f, 0x72, 0x80, 0x3c, 0xde, + 0x25, 0x43, 0x6f, 0xab, 0xb6, 0x6a, 0xe8, 0xe8, 0x01, 0x14, 0xec, 0xbe, 0xe9, 0xba, 0xc0, 0x35, + 0xd7, 0xa0, 0xad, 0xbe, 0x49, 0x5e, 0x1c, 0x55, 0xe6, 0xe2, 0x12, 0x8c, 0x82, 0xb9, 0x0c, 0x5a, + 0xf3, 0x4c, 0xcd, 0x71, 0xe9, 0x3b, 0x61, 0xd5, 0x2f, 0x8e, 0x2a, 0x09, 0x87, 0xad, 0xea, 0x21, + 0x85, 0x0d, 0x44, 0x07, 0x80, 0x34, 0x85, 0xda, 0x5b, 0x96, 0xa2, 0x53, 0x47, 0x93, 0xda, 0x25, + 0x62, 0x11, 0xde, 0xc8, 0xb6, 0x69, 0x4c, 0xa2, 0x7e, 0x49, 0x58, 0x81, 0xd6, 0x62, 0x68, 0x38, + 0x41, 0x03, 0xf3, 0x66, 0x8b, 0x28, 0xd4, 0xd0, 0xcb, 0x85, 0xb0, 0x37, 0x63, 0x3e, 0x8a, 0x05, + 0x15, 0xbd, 0x0e, 0xc5, 0x2e, 0xa1, 0x54, 0xe9, 0x90, 0xf2, 0x10, 0x67, 0x9c, 0x14, 0x8c, 0xc5, + 0x75, 0x67, 0x18, 0xbb, 0x74, 0xf9, 0x0b, 0x09, 0xc6, 0xbd, 0x95, 0x5b, 0x53, 0xa9, 0x8d, 0x7e, + 0x27, 0xe6, 0x87, 0xd5, 0x6c, 0x53, 0x62, 0xd2, 0xdc, 0x0b, 0x3d, 0x9f, 0x77, 0x47, 0x02, 0x3e, + 0xb8, 0x0e, 0x43, 0xaa, 0x4d, 0xba, 0x6c, 0x1f, 0xf2, 0xd7, 0x47, 0x6f, 0x5f, 0xcf, 0xea, 0x32, + 0xf5, 0x71, 0x01, 0x3a, 0xb4, 0xca, 0xc4, 0xb1, 0x83, 0x22, 0xff, 0x49, 0x21, 0x60, 0x3e, 0x73, + 0x4d, 0xf4, 0x01, 0x94, 0x28, 0xd1, 0x48, 0xcb, 0x36, 0x2c, 0x61, 0xfe, 0x5b, 0x19, 0xcd, 0x57, + 0x76, 0x88, 0xd6, 0x14, 0xa2, 0xf5, 0x31, 0x66, 0xbf, 0xfb, 0x0b, 0x7b, 0x90, 0xe8, 0x1d, 0x28, + 0xd9, 0xa4, 0x6b, 0x6a, 0x8a, 0x4d, 0xc4, 0x39, 0x7a, 0x2d, 0x38, 0x05, 0xe6, 0x39, 0x0c, 0xac, + 0x61, 0xb4, 0xb7, 0x04, 0x1b, 0x3f, 0x3e, 0xde, 0x92, 0xb8, 0xa3, 0xd8, 0x83, 0x41, 0x07, 0x30, + 0xd1, 0x33, 0xdb, 0x8c, 0xd3, 0x66, 0x51, 0xb0, 0xd3, 0x17, 0x9e, 0x74, 0x2f, 0xeb, 0xda, 0x6c, + 0x87, 0xa4, 0xeb, 0x73, 0x42, 0xd7, 0x44, 0x78, 0x1c, 0x47, 0xb4, 0xa0, 0x45, 0x98, 0xec, 0xaa, + 0x3a, 0x8b, 0x4b, 0xfd, 0x26, 0x69, 0x19, 0x7a, 0x9b, 0x72, 0xb7, 0x1a, 0xaa, 0xcf, 0x0b, 0x80, + 0xc9, 0xf5, 0x30, 0x19, 0x47, 0xf9, 0xd1, 0xaf, 0x00, 0xb9, 0xd3, 0x78, 0xec, 0x04, 0x71, 0xd5, + 0xd0, 0xb9, 0xcf, 0xe5, 0x7d, 0xe7, 0xde, 0x8a, 0x71, 0xe0, 0x04, 0x29, 0xb4, 0x06, 0xb3, 0x16, + 0x39, 0x50, 0xd9, 0x1c, 0x9f, 0xa8, 0xd4, 0x36, 0xac, 0xfe, 0x9a, 0xda, 0x55, 0xed, 0xf2, 0x30, + 0xb7, 0xa9, 0x7c, 0x7c, 0x54, 0x99, 0xc5, 0x09, 0x74, 0x9c, 0x28, 0x25, 0xff, 0xe9, 0x30, 0x4c, + 0x46, 0xe2, 0x0d, 0x7a, 0x0a, 0x73, 0xad, 0x9e, 0x65, 0x11, 0xdd, 0xde, 0xe8, 0x75, 0x77, 0x88, + 0xd5, 0x6c, 0xed, 0x91, 0x76, 0x4f, 0x23, 0x6d, 0xee, 0x28, 0x43, 0xf5, 0x05, 0x61, 0xf1, 0xdc, + 0x52, 0x22, 0x17, 0x4e, 0x91, 0x66, 0xab, 0xa0, 0xf3, 0xa1, 0x75, 0x95, 0x52, 0x0f, 0x33, 0xc7, + 0x31, 0xbd, 0x55, 0xd8, 0x88, 0x71, 0xe0, 0x04, 0x29, 0x66, 0x63, 0x9b, 0x50, 0xd5, 0x22, 0xed, + 0xa8, 0x8d, 0xf9, 0xb0, 0x8d, 0xcb, 0x89, 0x5c, 0x38, 0x45, 0x1a, 0xdd, 0x85, 0x51, 0x47, 0x1b, + 0xdf, 0x3f, 0xb1, 0xd1, 0x33, 0x02, 0x6c, 0x74, 0xc3, 0x27, 0xe1, 0x20, 0x1f, 0x9b, 0x9a, 0xb1, + 0x43, 0x89, 0x75, 0x40, 0xda, 0xe9, 0x1b, 0xbc, 0x19, 0xe3, 0xc0, 0x09, 0x52, 0x6c, 0x6a, 0x8e, + 0x07, 0xc6, 0xa6, 0x36, 0x1c, 0x9e, 0xda, 0x76, 0x22, 0x17, 0x4e, 0x91, 0x66, 0x7e, 0xec, 0x98, + 0xbc, 0x78, 0xa0, 0xa8, 0x9a, 0xb2, 0xa3, 0x91, 0x72, 0x31, 0xec, 0xc7, 0x1b, 0x61, 0x32, 0x8e, + 0xf2, 0xa3, 0xc7, 0x30, 0xed, 0x0c, 0x6d, 0xeb, 0x8a, 0x07, 0x52, 0xe2, 0x20, 0x3f, 0x11, 0x20, + 0xd3, 0x1b, 0x51, 0x06, 0x1c, 0x97, 0x41, 0x0f, 0x60, 0xa2, 0x65, 0x68, 0x1a, 0xf7, 0xc7, 0x25, + 0xa3, 0xa7, 0xdb, 0xe5, 0x11, 0x8e, 0x82, 0xd8, 0x79, 0x5c, 0x0a, 0x51, 0x70, 0x84, 0x13, 0x11, + 0x80, 0x96, 0x9b, 0x70, 0x68, 0x19, 0x78, 0x7c, 0xbc, 0x95, 0x35, 0x06, 0x78, 0xa9, 0xca, 0xaf, + 0x01, 0xbc, 0x21, 0x8a, 0x03, 0xc0, 0xf2, 0x3f, 0x49, 0x30, 0x9f, 0x12, 0x3a, 0xd0, 0x2f, 0x43, + 0x29, 0xf6, 0x37, 0x22, 0x29, 0xf6, 0x72, 0x8a, 0x58, 0x20, 0xcf, 0xea, 0x30, 0x6e, 0xb1, 0x59, + 0xe9, 0x1d, 0x87, 0x45, 0xc4, 0xc8, 0xbb, 0x03, 0xa6, 0x81, 0x83, 0x32, 0x7e, 0xcc, 0x9f, 0x3e, + 0x3e, 0xaa, 0x8c, 0x87, 0x68, 0x38, 0x0c, 0x2f, 0xff, 0x59, 0x0e, 0x60, 0x99, 0x98, 0x9a, 0xd1, + 0xef, 0x12, 0xfd, 0x3c, 0x6a, 0xa8, 0xcd, 0x50, 0x0d, 0x75, 0x73, 0xd0, 0xf6, 0x78, 0xa6, 0xa5, + 0x16, 0x51, 0xef, 0x46, 0x8a, 0xa8, 0x5a, 0x76, 0xc8, 0x93, 0xab, 0xa8, 0x7f, 0xcb, 0xc3, 0x8c, + 0xcf, 0xec, 0x97, 0x51, 0x0f, 0x43, 0x7b, 0xfc, 0xeb, 0x91, 0x3d, 0x9e, 0x4f, 0x10, 0x79, 0x65, + 0x75, 0xd4, 0x33, 0x98, 0x60, 0x55, 0x8e, 0xb3, 0x97, 0xbc, 0x86, 0x1a, 0x3e, 0x75, 0x0d, 0xe5, + 0x65, 0xbb, 0xb5, 0x10, 0x12, 0x8e, 0x20, 0xa7, 0xd4, 0x6c, 0xc5, 0x1f, 0x63, 0xcd, 0xf6, 0xa5, + 0x04, 0x13, 0xfe, 0x36, 0x9d, 0x43, 0xd1, 0xb6, 0x11, 0x2e, 0xda, 0x5e, 0xcf, 0xec, 0xa2, 0x29, + 0x55, 0xdb, 0x7f, 0xb3, 0x02, 0xdf, 0x63, 0x62, 0x07, 0x7c, 0x47, 0x69, 0xed, 0x0f, 0xbe, 0xe3, + 0xa1, 0xcf, 0x24, 0x40, 0x22, 0x0b, 0x2c, 0xea, 0xba, 0x61, 0x2b, 0x4e, 0xac, 0x74, 0xcc, 0x5a, + 0xcd, 0x6c, 0x96, 0xab, 0xb1, 0xba, 0x1d, 0xc3, 0x7a, 0xa4, 0xdb, 0x56, 0xdf, 0xdf, 0xe4, 0x38, + 0x03, 0x4e, 0x30, 0x00, 0x29, 0x00, 0x96, 0xc0, 0xdc, 0x32, 0xc4, 0x41, 0xbe, 0x99, 0x21, 0xe6, + 0x31, 0x81, 0x25, 0x43, 0xdf, 0x55, 0x3b, 0x7e, 0xd8, 0xc1, 0x1e, 0x10, 0x0e, 0x80, 0x5e, 0x7a, + 0x04, 0xf3, 0x29, 0xd6, 0xa2, 0x29, 0xc8, 0xef, 0x93, 0xbe, 0xb3, 0x6c, 0x98, 0xfd, 0x89, 0x66, + 0x61, 0xe8, 0x40, 0xd1, 0x7a, 0x4e, 0xf8, 0x1d, 0xc1, 0xce, 0x8f, 0x07, 0xb9, 0xfb, 0x92, 0xfc, + 0xc5, 0x50, 0xd0, 0x77, 0x78, 0xc5, 0x7c, 0x9d, 0x5d, 0x5a, 0x4d, 0x4d, 0x6d, 0x29, 0x54, 0x14, + 0x42, 0x63, 0xce, 0x85, 0xd5, 0x19, 0xc3, 0x1e, 0x35, 0x54, 0x5b, 0xe7, 0x5e, 0x6d, 0x6d, 0x9d, + 0x7f, 0x39, 0xb5, 0xf5, 0xef, 0x42, 0x89, 0xba, 0x55, 0x75, 0x81, 0x43, 0xde, 0x3a, 0x45, 0x7c, + 0x15, 0x05, 0xb5, 0xa7, 0xc0, 0x2b, 0xa5, 0x3d, 0xd0, 0xa4, 0x22, 0x7a, 0xe8, 0x94, 0x45, 0xf4, + 0x4b, 0x2d, 0x7c, 0x59, 0xbc, 0x31, 0x95, 0x1e, 0x25, 0x6d, 0x1e, 0xdb, 0x4a, 0x7e, 0xbc, 0x69, + 0xf0, 0x51, 0x2c, 0xa8, 0xe8, 0x83, 0x90, 0xcb, 0x96, 0xce, 0xe2, 0xb2, 0x13, 0xe9, 0xee, 0x8a, + 0xb6, 0x61, 0xde, 0xb4, 0x8c, 0x8e, 0x45, 0x28, 0x5d, 0x26, 0x4a, 0x5b, 0x53, 0x75, 0xe2, 0xae, + 0x8f, 0x53, 0x11, 0x5d, 0x3e, 0x3e, 0xaa, 0xcc, 0x37, 0x92, 0x59, 0x70, 0x9a, 0xac, 0xfc, 0xbc, + 0x00, 0x53, 0xd1, 0x0c, 0x98, 0x52, 0xa4, 0x4a, 0x67, 0x2a, 0x52, 0x6f, 0x04, 0x0e, 0x83, 0x53, + 0xc1, 0x07, 0x5e, 0x70, 0x62, 0x07, 0x62, 0x11, 0x26, 0x45, 0x34, 0x70, 0x89, 0xa2, 0x4c, 0xf7, + 0x76, 0x7f, 0x3b, 0x4c, 0xc6, 0x51, 0x7e, 0xf4, 0x10, 0xc6, 0x2d, 0x5e, 0x77, 0xbb, 0x00, 0x4e, + 0xed, 0x7a, 0x51, 0x00, 0x8c, 0xe3, 0x20, 0x11, 0x87, 0x79, 0x59, 0xdd, 0xea, 0x97, 0xa3, 0x2e, + 0x40, 0x21, 0x5c, 0xb7, 0x2e, 0x46, 0x19, 0x70, 0x5c, 0x06, 0xad, 0xc3, 0x4c, 0x4f, 0x8f, 0x43, + 0x39, 0xae, 0x7c, 0x59, 0x40, 0xcd, 0x6c, 0xc7, 0x59, 0x70, 0x92, 0x1c, 0xda, 0x0d, 0x95, 0xb2, + 0xc3, 0x3c, 0x3c, 0xdf, 0xce, 0x7c, 0xf0, 0x32, 0xd7, 0xb2, 0x09, 0xe5, 0x76, 0x29, 0x6b, 0xb9, + 0x2d, 0xff, 0xbd, 0x14, 0x4c, 0x42, 0x5e, 0x09, 0x3c, 0xe8, 0x95, 0x29, 0x26, 0x11, 0xa8, 0x8e, + 0x8c, 0xe4, 0xea, 0xf7, 0xde, 0xa9, 0xaa, 0x5f, 0x3f, 0x79, 0x0e, 0x2e, 0x7f, 0x3f, 0x97, 0x60, + 0x6e, 0xa5, 0xf9, 0xd8, 0x32, 0x7a, 0xa6, 0x6b, 0xce, 0xa6, 0xe9, 0x2c, 0xcd, 0xcf, 0xa1, 0x60, + 0xf5, 0x34, 0x77, 0x1e, 0xaf, 0xb9, 0xf3, 0xc0, 0x3d, 0x8d, 0xcd, 0x63, 0x26, 0x22, 0xe5, 0x4c, + 0x82, 0x09, 0xa0, 0x0d, 0x18, 0xb6, 0x14, 0xbd, 0x43, 0xdc, 0xb4, 0x7a, 0x6d, 0x80, 0xf5, 0xab, + 0xcb, 0x98, 0xb1, 0x07, 0x0a, 0x1b, 0x2e, 0x8d, 0x05, 0x8a, 0xfc, 0x0f, 0x12, 0x4c, 0x3e, 0xd9, + 0xda, 0x6a, 0xac, 0xea, 0xfc, 0x44, 0xf3, 0xb7, 0xd5, 0xab, 0x50, 0x30, 0x15, 0x7b, 0x2f, 0x9a, + 0xe9, 0x19, 0x0d, 0x73, 0x0a, 0xba, 0x03, 0x25, 0xf6, 0x2f, 0xb3, 0x8b, 0x1f, 0xa9, 0x11, 0x1e, + 0x08, 0x4b, 0x0d, 0x31, 0xf6, 0x22, 0xf0, 0x37, 0xf6, 0x38, 0xd1, 0x7b, 0x50, 0x64, 0xf1, 0x87, + 0xe8, 0xed, 0x8c, 0x05, 0xba, 0x30, 0xaa, 0xee, 0x08, 0xf9, 0x35, 0x97, 0x18, 0xc0, 0x2e, 0x9c, + 0xbc, 0x0f, 0xb3, 0x81, 0x49, 0xb0, 0x55, 0x7c, 0xca, 0x72, 0x2a, 0x6a, 0xc2, 0x10, 0xd3, 0xce, + 0x32, 0x67, 0x3e, 0xc3, 0x13, 0x68, 0x64, 0x21, 0xfc, 0xfa, 0x88, 0xfd, 0xa2, 0xd8, 0xc1, 0x92, + 0xd7, 0x61, 0x9c, 0x3f, 0x43, 0x1b, 0x96, 0xcd, 0x17, 0x13, 0x5d, 0x81, 0x7c, 0x57, 0xd5, 0x45, + 0x76, 0x1e, 0x15, 0x32, 0x79, 0x96, 0x59, 0xd8, 0x38, 0x27, 0x2b, 0x87, 0x22, 0x5e, 0xf9, 0x64, + 0xe5, 0x10, 0xb3, 0x71, 0xf9, 0x31, 0x14, 0xc5, 0x26, 0x05, 0x81, 0xf2, 0x27, 0x03, 0xe5, 0x13, + 0x80, 0x36, 0xa1, 0xb8, 0xda, 0xa8, 0x6b, 0x86, 0x53, 0xab, 0xb5, 0xd4, 0xb6, 0x15, 0xdd, 0xc1, + 0xa5, 0xd5, 0x65, 0x8c, 0x39, 0x05, 0xc9, 0x30, 0x4c, 0x0e, 0x5b, 0xc4, 0xb4, 0xb9, 0x1f, 0x8d, + 0xd4, 0x81, 0xf9, 0xc6, 0x23, 0x3e, 0x82, 0x05, 0x45, 0xfe, 0xa3, 0x1c, 0x14, 0xc5, 0x72, 0x9c, + 0xc3, 0xdd, 0x6d, 0x2d, 0x74, 0x77, 0x7b, 0x23, 0x9b, 0x6b, 0xa4, 0x5e, 0xdc, 0xb6, 0x22, 0x17, + 0xb7, 0x1b, 0x19, 0xf1, 0x4e, 0xbe, 0xb5, 0x7d, 0x9a, 0x83, 0x89, 0xb0, 0x53, 0xa2, 0xbb, 0x30, + 0xca, 0xd2, 0x94, 0xda, 0x22, 0x1b, 0x7e, 0x75, 0xec, 0x3d, 0xdd, 0x34, 0x7d, 0x12, 0x0e, 0xf2, + 0xa1, 0x8e, 0x27, 0xc6, 0xfc, 0x48, 0x4c, 0x3a, 0x7d, 0x49, 0x7b, 0xb6, 0xaa, 0x55, 0x9d, 0x0f, + 0x32, 0xd5, 0x55, 0xdd, 0xde, 0xb4, 0x9a, 0xb6, 0xa5, 0xea, 0x9d, 0x98, 0x22, 0xee, 0x94, 0x41, + 0x64, 0xf4, 0x2e, 0x4b, 0x99, 0xd4, 0xe8, 0x59, 0x2d, 0x92, 0x54, 0xfa, 0xba, 0x65, 0x1b, 0x3b, + 0xa0, 0xed, 0x35, 0xa3, 0xa5, 0x68, 0xce, 0xe6, 0x60, 0xb2, 0x4b, 0x2c, 0xa2, 0xb7, 0x88, 0x5b, + 0x6e, 0x3a, 0x10, 0xd8, 0x03, 0x93, 0xff, 0x56, 0x82, 0x51, 0xb1, 0x16, 0xe7, 0x70, 0xc9, 0xf9, + 0xed, 0xf0, 0x25, 0xe7, 0x5a, 0xc6, 0xc8, 0x91, 0x7c, 0xc3, 0xf9, 0x4b, 0xdf, 0x74, 0x16, 0x2b, + 0xd8, 0x71, 0xd9, 0x33, 0xa8, 0x1d, 0x3d, 0x2e, 0xec, 0x94, 0x63, 0x4e, 0x41, 0x3d, 0x98, 0x52, + 0x23, 0xc1, 0x45, 0xec, 0x59, 0x2d, 0x9b, 0x25, 0x9e, 0x58, 0xbd, 0x2c, 0xe0, 0xa7, 0xa2, 0x14, + 0x1c, 0x53, 0x21, 0x13, 0x88, 0x71, 0xa1, 0x77, 0xa0, 0xb0, 0x67, 0xdb, 0x66, 0xc2, 0xf3, 0xf9, + 0x80, 0x90, 0xe6, 0x9b, 0x50, 0xe2, 0xb3, 0xdb, 0xda, 0x6a, 0x60, 0x0e, 0x25, 0xff, 0x5d, 0xce, + 0x5b, 0x0f, 0x7e, 0xe7, 0x78, 0xdb, 0x9b, 0xed, 0x92, 0xa6, 0x50, 0xca, 0x1d, 0xdb, 0xb9, 0x1f, + 0xcf, 0x06, 0x0c, 0xf7, 0x68, 0x38, 0xc6, 0x8d, 0xb6, 0xfc, 0x50, 0x2f, 0x9d, 0x25, 0xd4, 0x8f, + 0x26, 0x85, 0x79, 0xf4, 0x04, 0xf2, 0xb6, 0x96, 0xf5, 0x9e, 0x2b, 0x10, 0xb7, 0xd6, 0x9a, 0x7e, + 0xac, 0xdc, 0x5a, 0x6b, 0x62, 0x06, 0x81, 0x36, 0x61, 0x88, 0xa5, 0x53, 0x16, 0x1d, 0xf2, 0xd9, + 0xa3, 0x0d, 0x5b, 0x41, 0xdf, 0xa5, 0xd8, 0x2f, 0x8a, 0x1d, 0x1c, 0xf9, 0x63, 0x18, 0x0f, 0x85, + 0x10, 0xf4, 0x11, 0x8c, 0x69, 0x86, 0xd2, 0xae, 0x2b, 0x9a, 0xa2, 0xb7, 0x88, 0xfb, 0xb5, 0xe3, + 0x5a, 0xd2, 0xd9, 0x5b, 0x0b, 0xf0, 0x89, 0x00, 0x34, 0x2b, 0x94, 0x8c, 0x05, 0x69, 0x38, 0x84, + 0x28, 0x2b, 0x00, 0xfe, 0x1c, 0x51, 0x05, 0x86, 0x98, 0xa7, 0x3a, 0xa9, 0x6e, 0xa4, 0x3e, 0xc2, + 0x2c, 0x64, 0x0e, 0x4c, 0xb1, 0x33, 0x8e, 0x6e, 0x03, 0x50, 0xd2, 0xb2, 0x88, 0xcd, 0xb7, 0x33, + 0x17, 0xfe, 0x62, 0xda, 0xf4, 0x28, 0x38, 0xc0, 0x25, 0xff, 0xa3, 0x04, 0xe3, 0x1b, 0xc4, 0xfe, + 0xc4, 0xb0, 0xf6, 0x1b, 0x86, 0xa6, 0xb6, 0xfa, 0xe7, 0x90, 0x07, 0x70, 0x28, 0x0f, 0xbc, 0x39, + 0x60, 0x67, 0x42, 0xd6, 0xa5, 0x65, 0x03, 0xf9, 0x4b, 0x09, 0xe6, 0x43, 0x9c, 0x8f, 0xfc, 0xc3, + 0xbf, 0x0d, 0x43, 0xa6, 0x61, 0xd9, 0x6e, 0x8d, 0x70, 0x2a, 0x85, 0x2c, 0xc2, 0x06, 0xaa, 0x04, + 0x06, 0x83, 0x1d, 0x34, 0xb4, 0x06, 0x39, 0xdb, 0x10, 0xae, 0x7a, 0x3a, 0x4c, 0x42, 0xac, 0x3a, + 0x08, 0xcc, 0xdc, 0x96, 0x81, 0x73, 0xb6, 0xc1, 0x36, 0xa2, 0x1c, 0xe2, 0x0a, 0x86, 0xaf, 0x57, + 0x34, 0x03, 0x0c, 0x85, 0x5d, 0xcb, 0xe8, 0x9e, 0x79, 0x0e, 0xde, 0x46, 0xac, 0x58, 0x46, 0x17, + 0x73, 0x2c, 0xf9, 0x2b, 0x09, 0xa6, 0x43, 0x9c, 0xe7, 0x90, 0x3a, 0xde, 0x09, 0xa7, 0x8e, 0x1b, + 0xa7, 0x99, 0x48, 0x4a, 0x02, 0xf9, 0x2a, 0x17, 0x99, 0x06, 0x9b, 0x30, 0xda, 0x85, 0x51, 0xd3, + 0x68, 0x37, 0x5f, 0xc2, 0xf7, 0xcd, 0x49, 0x96, 0xd2, 0x1b, 0x3e, 0x16, 0x0e, 0x02, 0xa3, 0x43, + 0x98, 0xd6, 0x95, 0x2e, 0xa1, 0xa6, 0xd2, 0x22, 0xcd, 0x97, 0xf0, 0xe2, 0x73, 0x91, 0x7f, 0x40, + 0x89, 0x22, 0xe2, 0xb8, 0x12, 0xb4, 0x0e, 0x45, 0xd5, 0xe4, 0x25, 0xa6, 0xa8, 0x25, 0x06, 0xe6, + 0x61, 0xa7, 0x20, 0x75, 0xe2, 0xb9, 0xf8, 0x81, 0x5d, 0x0c, 0xf9, 0x5f, 0xa3, 0xde, 0xc0, 0x2b, + 0x96, 0xc7, 0x50, 0xe2, 0x9d, 0x26, 0x2d, 0x43, 0x73, 0x3f, 0x75, 0xf0, 0xcb, 0x85, 0x18, 0x7b, + 0x71, 0x54, 0xb9, 0x9c, 0xf0, 0x8a, 0xed, 0x92, 0xb1, 0x27, 0x8c, 0x36, 0xa0, 0x60, 0xfe, 0x90, + 0xe2, 0x8a, 0xa7, 0x49, 0x5e, 0x51, 0x71, 0x1c, 0xf4, 0x6b, 0x50, 0x24, 0x7a, 0x9b, 0xd7, 0x6b, + 0xce, 0x3b, 0x02, 0x9f, 0xd5, 0x23, 0x67, 0x08, 0xbb, 0x34, 0xf9, 0x0f, 0xf2, 0x91, 0x59, 0xf1, + 0x9c, 0xfa, 0xec, 0xa5, 0x39, 0x87, 0x57, 0xf3, 0xa5, 0x3a, 0xc8, 0x0e, 0x14, 0x45, 0x46, 0x16, + 0x3e, 0xff, 0xf3, 0xd3, 0xf8, 0x7c, 0x30, 0xd9, 0x79, 0x57, 0x2e, 0x77, 0xd0, 0x05, 0x46, 0x1f, + 0xc2, 0x30, 0x71, 0x54, 0x38, 0x29, 0xf4, 0xde, 0x69, 0x54, 0xf8, 0xe1, 0xd7, 0x2f, 0xb5, 0xc5, + 0x98, 0x40, 0x45, 0xbf, 0x64, 0xeb, 0xc5, 0x78, 0x59, 0x65, 0x4a, 0xcb, 0x05, 0x9e, 0xd5, 0xae, + 0x38, 0xd3, 0xf6, 0x86, 0x5f, 0x1c, 0x55, 0xc0, 0xff, 0x89, 0x83, 0x12, 0xf2, 0x3f, 0x4b, 0x30, + 0xcd, 0x57, 0xa8, 0xd5, 0xb3, 0x54, 0xbb, 0x7f, 0x6e, 0xf9, 0xeb, 0x69, 0x28, 0x7f, 0xdd, 0x19, + 0xb0, 0x2c, 0x31, 0x0b, 0x53, 0x73, 0xd8, 0xd7, 0x12, 0x5c, 0x8c, 0x71, 0x9f, 0x43, 0xf8, 0xdc, + 0x0e, 0x87, 0xcf, 0x37, 0x4f, 0x3b, 0xa1, 0x94, 0x10, 0xfa, 0x5f, 0xd3, 0x09, 0xd3, 0xe1, 0x27, + 0xe5, 0x36, 0x80, 0x69, 0xa9, 0x07, 0xaa, 0x46, 0x3a, 0xe2, 0xe3, 0x7f, 0x29, 0xd0, 0xda, 0xe5, + 0x51, 0x70, 0x80, 0x0b, 0x51, 0x98, 0x6b, 0x93, 0x5d, 0xa5, 0xa7, 0xd9, 0x8b, 0xed, 0xf6, 0x92, + 0x62, 0x2a, 0x3b, 0xaa, 0xa6, 0xda, 0xaa, 0x78, 0x26, 0x19, 0xa9, 0x3f, 0x74, 0x3e, 0xca, 0x27, + 0x71, 0xbc, 0x38, 0xaa, 0x5c, 0x49, 0xfa, 0x2a, 0xe6, 0xb2, 0xf4, 0x71, 0x0a, 0x34, 0xea, 0x43, + 0xd9, 0x22, 0x1f, 0xf7, 0x54, 0x8b, 0xb4, 0x97, 0x2d, 0xc3, 0x0c, 0xa9, 0xcd, 0x73, 0xb5, 0xbf, + 0x75, 0x7c, 0x54, 0x29, 0xe3, 0x14, 0x9e, 0xc1, 0x8a, 0x53, 0xe1, 0xd1, 0x33, 0x98, 0x51, 0x44, + 0x13, 0x5e, 0x50, 0xab, 0x73, 0x4a, 0xee, 0x1f, 0x1f, 0x55, 0x66, 0x16, 0xe3, 0xe4, 0xc1, 0x0a, + 0x93, 0x40, 0x51, 0x0d, 0x8a, 0x07, 0xbc, 0x5f, 0x8f, 0x96, 0x87, 0x38, 0x3e, 0xcb, 0x17, 0x45, + 0xa7, 0x85, 0x8f, 0x61, 0x0e, 0xaf, 0x34, 0xf9, 0xe9, 0x73, 0xb9, 0xd8, 0x95, 0x98, 0x95, 0x9c, + 0xe2, 0xc4, 0xf3, 0x97, 0xf2, 0x92, 0x1f, 0xb5, 0x9e, 0xf8, 0x24, 0x1c, 0xe4, 0x43, 0x1f, 0xc0, + 0xc8, 0x9e, 0x78, 0x57, 0xa1, 0xe5, 0x62, 0xa6, 0x5c, 0x1d, 0x7a, 0x87, 0xa9, 0x4f, 0x0b, 0x15, + 0x23, 0xee, 0x30, 0xc5, 0x3e, 0x22, 0x7a, 0x1d, 0x8a, 0xfc, 0xc7, 0xea, 0x32, 0x7f, 0x86, 0x2c, + 0xf9, 0xb1, 0xed, 0x89, 0x33, 0x8c, 0x5d, 0xba, 0xcb, 0xba, 0xda, 0x58, 0xe2, 0xcf, 0xe1, 0x11, + 0xd6, 0xd5, 0xc6, 0x12, 0x76, 0xe9, 0xe8, 0x23, 0x28, 0x52, 0xb2, 0xa6, 0xea, 0xbd, 0xc3, 0x32, + 0x64, 0xfa, 0x98, 0xde, 0x7c, 0xc4, 0xb9, 0x23, 0x0f, 0x82, 0xbe, 0x06, 0x41, 0xc7, 0x2e, 0x2c, + 0xda, 0x83, 0x11, 0xab, 0xa7, 0x2f, 0xd2, 0x6d, 0x4a, 0xac, 0xf2, 0x28, 0xd7, 0x31, 0x28, 0x9c, + 0x63, 0x97, 0x3f, 0xaa, 0xc5, 0x5b, 0x21, 0x8f, 0x03, 0xfb, 0xe0, 0x68, 0x0f, 0x80, 0xff, 0xe0, + 0x6f, 0x8f, 0xe5, 0x39, 0xae, 0xea, 0x7e, 0x16, 0x55, 0x49, 0x4f, 0x9c, 0xe2, 0xfb, 0x83, 0x47, + 0xc6, 0x01, 0x6c, 0xf4, 0x87, 0x12, 0x20, 0xda, 0x33, 0x4d, 0x8d, 0x74, 0x89, 0x6e, 0x2b, 0x1a, + 0x1f, 0xa5, 0xe5, 0x31, 0xae, 0xf2, 0xed, 0x41, 0x2b, 0x18, 0x13, 0x8c, 0xaa, 0xf6, 0x3e, 0x2b, + 0xc4, 0x59, 0x71, 0x82, 0x5e, 0xb6, 0x89, 0xbb, 0x62, 0xd6, 0xe3, 0x99, 0x36, 0x31, 0xf9, 0x55, + 0xd7, 0xdf, 0x44, 0x41, 0xc7, 0x2e, 0x2c, 0x7a, 0x0a, 0x73, 0x6e, 0x63, 0x29, 0x36, 0x0c, 0x7b, + 0x45, 0xd5, 0x08, 0xed, 0x53, 0x9b, 0x74, 0xcb, 0x13, 0xdc, 0xc1, 0xbc, 0xee, 0x1a, 0x9c, 0xc8, + 0x85, 0x53, 0xa4, 0x51, 0x17, 0x2a, 0x6e, 0x70, 0x62, 0x27, 0xd7, 0x8b, 0x8e, 0x8f, 0x68, 0x4b, + 0xd1, 0x9c, 0x2f, 0x2d, 0x93, 0x5c, 0xc1, 0x6b, 0xc7, 0x47, 0x95, 0xca, 0xf2, 0xc9, 0xac, 0x78, + 0x10, 0x16, 0x7a, 0x0f, 0xca, 0x4a, 0x9a, 0x9e, 0x29, 0xae, 0xe7, 0xa7, 0x2c, 0xe2, 0xa5, 0x2a, + 0x48, 0x95, 0x46, 0x36, 0x4c, 0x29, 0xe1, 0x16, 0x5f, 0x5a, 0x9e, 0xce, 0xf4, 0x68, 0x1b, 0xe9, + 0x0c, 0xf6, 0xdf, 0x57, 0x22, 0x04, 0x8a, 0x63, 0x1a, 0xd0, 0xef, 0x01, 0x52, 0xa2, 0x5d, 0xc9, + 0xb4, 0x8c, 0x32, 0x25, 0xba, 0x58, 0x3b, 0xb3, 0xef, 0x76, 0x31, 0x12, 0xc5, 0x09, 0x7a, 0x58, + 0x1d, 0xaf, 0x44, 0x3a, 0xa9, 0x69, 0x79, 0x9e, 0x2b, 0xaf, 0x65, 0x53, 0xee, 0xc9, 0x05, 0x3e, + 0x28, 0x45, 0x11, 0x71, 0x5c, 0x09, 0x5a, 0x83, 0x59, 0x31, 0xb8, 0xad, 0x53, 0x65, 0x97, 0x34, + 0xfb, 0xb4, 0x65, 0x6b, 0xb4, 0x3c, 0xc3, 0xe3, 0x3b, 0xff, 0xa8, 0xb9, 0x98, 0x40, 0xc7, 0x89, + 0x52, 0xe8, 0x6d, 0x98, 0xda, 0x35, 0xac, 0x1d, 0xb5, 0xdd, 0x26, 0xba, 0x8b, 0x34, 0xcb, 0x91, + 0xf8, 0x73, 0xd1, 0x4a, 0x84, 0x86, 0x63, 0xdc, 0x88, 0xc2, 0x45, 0x81, 0xdc, 0xb0, 0x8c, 0xd6, + 0xba, 0xd1, 0xd3, 0x6d, 0xa7, 0xec, 0xbb, 0xe8, 0xa5, 0xd1, 0x8b, 0x8b, 0x49, 0x0c, 0x2f, 0x8e, + 0x2a, 0x57, 0x93, 0x2f, 0x03, 0x3e, 0x13, 0x4e, 0xc6, 0x46, 0x26, 0x8c, 0x89, 0xfe, 0x78, 0xfe, + 0x6e, 0x55, 0x2e, 0xf3, 0xa3, 0xff, 0x60, 0x70, 0xc0, 0xf3, 0x44, 0xa2, 0xe7, 0x7f, 0xea, 0xf8, + 0xa8, 0x32, 0x16, 0x64, 0xc0, 0x21, 0x0d, 0xbc, 0x1f, 0x4a, 0x7c, 0x85, 0x3b, 0x9f, 0x9e, 0xf2, + 0xd3, 0xf5, 0x43, 0xf9, 0xa6, 0xbd, 0xb4, 0x7e, 0xa8, 0x00, 0xe4, 0xc9, 0x2f, 0xeb, 0xff, 0x99, + 0x83, 0x19, 0x9f, 0x39, 0x73, 0x3f, 0x54, 0x82, 0xc8, 0xff, 0xf7, 0x95, 0x67, 0xeb, 0x51, 0xf2, + 0x97, 0xee, 0x7f, 0x5f, 0x8f, 0x92, 0x6f, 0x5b, 0xca, 0xed, 0xe1, 0xaf, 0x73, 0xc1, 0x09, 0x9c, + 0xb2, 0x51, 0xe6, 0x25, 0xb4, 0x56, 0xff, 0xe8, 0x7a, 0x6d, 0xe4, 0xaf, 0xf3, 0x30, 0x15, 0x3d, + 0x8d, 0xa1, 0x7e, 0x0a, 0x69, 0x60, 0x3f, 0x45, 0x03, 0x66, 0x77, 0x7b, 0x9a, 0xd6, 0xe7, 0x73, + 0x08, 0x34, 0x55, 0x38, 0x5f, 0x36, 0x7f, 0x2a, 0x24, 0x67, 0x57, 0x12, 0x78, 0x70, 0xa2, 0x64, + 0xbc, 0xbd, 0xa2, 0xf0, 0x43, 0xdb, 0x2b, 0x86, 0xce, 0xd0, 0x5e, 0x91, 0xdc, 0xa1, 0x92, 0x3f, + 0x53, 0x87, 0xca, 0x59, 0x7a, 0x2b, 0x12, 0x82, 0xd8, 0xc0, 0x3e, 0xe1, 0x5f, 0xc0, 0x44, 0xb8, + 0xdf, 0xc7, 0xd9, 0x4b, 0xa7, 0xe5, 0x48, 0x7c, 0x41, 0x0e, 0xec, 0xa5, 0x33, 0x8e, 0x3d, 0x0e, + 0xf9, 0x58, 0x82, 0xb9, 0xe4, 0xbe, 0x5e, 0xa4, 0xc1, 0x44, 0x57, 0x39, 0x0c, 0xf6, 0x5a, 0x4b, + 0x67, 0x7c, 0x40, 0xe3, 0x8d, 0x1e, 0xeb, 0x21, 0x2c, 0x1c, 0xc1, 0x46, 0xef, 0x43, 0xa9, 0xab, + 0x1c, 0x36, 0x7b, 0x56, 0x87, 0x9c, 0xf9, 0xa1, 0x8e, 0x1f, 0xa3, 0x75, 0x81, 0x82, 0x3d, 0x3c, + 0xf9, 0x7b, 0x09, 0xe6, 0x53, 0xda, 0x37, 0xfe, 0x0f, 0xcd, 0xf2, 0x2f, 0x24, 0xf8, 0x49, 0xea, + 0x35, 0x0c, 0xdd, 0x0b, 0x75, 0x9a, 0xc8, 0x91, 0x4e, 0x13, 0x14, 0x17, 0x7c, 0x45, 0x8d, 0x26, + 0x9f, 0x4b, 0x50, 0x4e, 0xbb, 0x97, 0xa2, 0xbb, 0x21, 0x23, 0x7f, 0x16, 0x31, 0x72, 0x3a, 0x26, + 0xf7, 0x8a, 0x6c, 0xfc, 0x17, 0x09, 0x2e, 0x9f, 0x50, 0xdf, 0x79, 0xd7, 0x1f, 0xd2, 0x0e, 0x72, + 0xf1, 0x97, 0x73, 0xf1, 0xd9, 0xcd, 0xbf, 0xfe, 0x24, 0xf0, 0xe0, 0x54, 0x69, 0xb4, 0x0d, 0xf3, + 0xe2, 0xee, 0x15, 0xa5, 0x89, 0xd2, 0x85, 0x37, 0xe4, 0x2d, 0x27, 0xb3, 0xe0, 0x34, 0x59, 0xf9, + 0xaf, 0x24, 0x98, 0x4b, 0x7e, 0x70, 0x40, 0x6f, 0x85, 0x96, 0xbc, 0x12, 0x59, 0xf2, 0xc9, 0x88, + 0x94, 0x58, 0xf0, 0x0f, 0x61, 0x42, 0x3c, 0x4b, 0x08, 0x18, 0xe1, 0xcc, 0x72, 0x52, 0x76, 0x12, + 0x10, 0x6e, 0x71, 0xcc, 0x8f, 0x49, 0x78, 0x0c, 0x47, 0xd0, 0xe4, 0x4f, 0x73, 0x30, 0xd4, 0x6c, + 0x29, 0x1a, 0x39, 0x87, 0xda, 0xf8, 0x57, 0xa1, 0xda, 0x78, 0xd0, 0x7f, 0x75, 0xe3, 0x56, 0xa5, + 0x96, 0xc5, 0x38, 0x52, 0x16, 0xbf, 0x91, 0x09, 0xed, 0xe4, 0x8a, 0xf8, 0x37, 0x61, 0xc4, 0x53, + 0x7a, 0xba, 0x44, 0x2d, 0xff, 0x79, 0x0e, 0x46, 0x03, 0x2a, 0x4e, 0x99, 0xe6, 0x77, 0x43, 0xb5, + 0x4d, 0x3e, 0xc3, 0x23, 0x50, 0x40, 0x57, 0xd5, 0xad, 0x66, 0x9c, 0x56, 0x6d, 0xbf, 0x39, 0x37, + 0x5e, 0xe4, 0xfc, 0x02, 0x26, 0x6c, 0xc5, 0xea, 0x10, 0xdb, 0xfb, 0x28, 0xe2, 0xb4, 0x92, 0x79, + 0xff, 0x67, 0x60, 0x2b, 0x44, 0xc5, 0x11, 0xee, 0x4b, 0x0f, 0x61, 0x3c, 0xa4, 0xec, 0x54, 0x9d, + 0xd6, 0x7f, 0x23, 0xc1, 0xcf, 0x06, 0x3e, 0x24, 0xa1, 0x7a, 0xe8, 0x90, 0x54, 0x23, 0x87, 0x64, + 0x21, 0x1d, 0xe0, 0xd5, 0x75, 0xec, 0xd5, 0x6f, 0x3e, 0xff, 0x6e, 0xe1, 0xc2, 0x37, 0xdf, 0x2d, + 0x5c, 0xf8, 0xf6, 0xbb, 0x85, 0x0b, 0xbf, 0x7f, 0xbc, 0x20, 0x3d, 0x3f, 0x5e, 0x90, 0xbe, 0x39, + 0x5e, 0x90, 0xbe, 0x3d, 0x5e, 0x90, 0xfe, 0xfd, 0x78, 0x41, 0xfa, 0xe3, 0xef, 0x17, 0x2e, 0xbc, + 0x5f, 0x14, 0x70, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x2f, 0x9d, 0xa0, 0x1e, 0x3d, 0x3f, 0x00, + 0x00, } func (m *AllowedCSIDriver) Marshal() (dAtA []byte, err error) { @@ -3608,6 +3610,11 @@ func (m *NetworkPolicyPort) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.EndPort != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.EndPort)) + i-- + dAtA[i] = 0x18 + } if m.Port != nil { { size, err := m.Port.MarshalToSizedBuffer(dAtA[:i]) @@ -4378,6 +4385,18 @@ func (m *RollingUpdateDaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if m.MaxSurge != nil { + { + size, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } if m.MaxUnavailable != nil { { size, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i]) @@ -5410,6 +5429,9 @@ func (m *NetworkPolicyPort) Size() (n int) { l = m.Port.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.EndPort != nil { + n += 1 + sovGenerated(uint64(*m.EndPort)) + } return n } @@ -5684,6 +5706,10 @@ func (m *RollingUpdateDaemonSet) Size() (n int) { l = m.MaxUnavailable.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.MaxSurge != nil { + l = m.MaxSurge.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -6348,6 +6374,7 @@ func (this *NetworkPolicyPort) String() string { s := strings.Join([]string{`&NetworkPolicyPort{`, `Protocol:` + valueToStringGenerated(this.Protocol) + `,`, `Port:` + strings.Replace(fmt.Sprintf("%v", this.Port), "IntOrString", "intstr.IntOrString", 1) + `,`, + `EndPort:` + valueToStringGenerated(this.EndPort) + `,`, `}`, }, "") return s @@ -6546,6 +6573,7 @@ func (this *RollingUpdateDaemonSet) String() string { } s := strings.Join([]string{`&RollingUpdateDaemonSet{`, `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "intstr.IntOrString", 1) + `,`, + `MaxSurge:` + strings.Replace(fmt.Sprintf("%v", this.MaxSurge), "IntOrString", "intstr.IntOrString", 1) + `,`, `}`, }, "") return s @@ -6750,10 +6778,7 @@ func (m *AllowedCSIDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6835,10 +6860,7 @@ func (m *AllowedFlexVolume) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6940,10 +6962,7 @@ func (m *AllowedHostPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7092,10 +7111,7 @@ func (m *DaemonSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7306,10 +7322,7 @@ func (m *DaemonSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7426,10 +7439,7 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7639,10 +7649,7 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7898,10 +7905,7 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8019,10 +8023,7 @@ func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8171,10 +8172,7 @@ func (m *Deployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8418,10 +8416,7 @@ func (m *DeploymentCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8538,10 +8533,7 @@ func (m *DeploymentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8733,7 +8725,7 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -8783,10 +8775,7 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9073,10 +9062,7 @@ func (m *DeploymentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9294,10 +9280,7 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9415,10 +9398,7 @@ func (m *DeploymentStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9534,10 +9514,7 @@ func (m *FSGroupStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9685,10 +9662,7 @@ func (m *HTTPIngressPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9772,10 +9746,7 @@ func (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9863,10 +9834,7 @@ func (m *HostPortRange) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9954,10 +9922,7 @@ func (m *IDRange) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10071,10 +10036,7 @@ func (m *IPBlock) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10223,10 +10185,7 @@ func (m *Ingress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10377,10 +10336,7 @@ func (m *IngressBackend) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10497,10 +10453,7 @@ func (m *IngressList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10615,10 +10568,7 @@ func (m *IngressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10704,10 +10654,7 @@ func (m *IngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10894,10 +10841,7 @@ func (m *IngressSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10980,10 +10924,7 @@ func (m *IngressStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11097,10 +11038,7 @@ func (m *IngressTLS) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11216,10 +11154,7 @@ func (m *NetworkPolicy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11337,10 +11272,7 @@ func (m *NetworkPolicyEgressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11458,10 +11390,7 @@ func (m *NetworkPolicyIngressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11578,10 +11507,7 @@ func (m *NetworkPolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11739,10 +11665,7 @@ func (m *NetworkPolicyPeer) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11855,16 +11778,33 @@ func (m *NetworkPolicyPort) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EndPort", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.EndPort = &v default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12047,10 +11987,7 @@ func (m *NetworkPolicySpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12166,10 +12103,7 @@ func (m *PodSecurityPolicy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12286,10 +12220,7 @@ func (m *PodSecurityPolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13045,10 +12976,7 @@ func (m *PodSecurityPolicySpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13197,10 +13125,7 @@ func (m *ReplicaSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13411,10 +13336,7 @@ func (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13531,10 +13453,7 @@ func (m *ReplicaSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13692,10 +13611,7 @@ func (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13874,10 +13790,7 @@ func (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13946,10 +13859,7 @@ func (m *RollbackConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14029,16 +13939,49 @@ func (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxSurge == nil { + m.MaxSurge = &intstr.IntOrString{} + } + if err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14160,10 +14103,7 @@ func (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14279,10 +14219,7 @@ func (m *RunAsGroupStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14398,10 +14335,7 @@ func (m *RunAsUserStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14516,10 +14450,7 @@ func (m *RuntimeClassStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14637,10 +14568,7 @@ func (m *SELinuxStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14789,10 +14717,7 @@ func (m *Scale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14861,10 +14786,7 @@ func (m *ScaleSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15043,7 +14965,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -15092,10 +15014,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15211,10 +15130,7 @@ func (m *SupplementalGroupsStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/extensions/v1beta1/generated.proto b/vendor/k8s.io/api/extensions/v1beta1/generated.proto index a4ca5b563a..5e3d165ebe 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/generated.proto +++ b/vendor/k8s.io/api/extensions/v1beta1/generated.proto @@ -745,13 +745,21 @@ message NetworkPolicyPort { // +optional optional string protocol = 1; - // If specified, 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. + // 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. // +optional optional k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2; + + // If set, indicates that the range of ports from port to endPort, 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. + // This feature is in Alpha state and should be enabled using the Feature Gate + // "NetworkPolicyEndPort". + // +optional + optional int32 endPort = 3; } // DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec. @@ -784,7 +792,7 @@ message NetworkPolicySpec { repeated NetworkPolicyEgressRule egress = 3; // List of rule types that the NetworkPolicy relates to. - // Valid options are "Ingress", "Egress", or "Ingress,Egress". + // Valid options are ["Ingress"], ["Egress"], or ["Ingress", "Egress"]. // If this field is not specified, it will default based on the existence of Ingress or Egress rules; // policies that contain an Egress section are assumed to affect Egress, and all policies // (whether or not they contain an Ingress section) are assumed to affect Ingress. @@ -1082,19 +1090,41 @@ message RollingUpdateDaemonSet { // The maximum number of DaemonSet pods that can be unavailable during the // update. Value can be an absolute number (ex: 5) or a percentage of total // number of DaemonSet pods at the start of the update (ex: 10%). Absolute - // number is calculated from percentage by rounding up. - // This cannot be 0. + // number is calculated from percentage by rounding down to a minimum of one. + // This cannot be 0 if MaxSurge is 0 // Default value is 1. // Example: when this is set to 30%, at most 30% of the total number of nodes // that should be running the daemon pod (i.e. status.desiredNumberScheduled) - // can have their pods stopped for an update at any given - // time. The update starts by stopping at most 30% of those DaemonSet pods - // and then brings up new DaemonSet pods in their place. Once the new pods - // are available, it then proceeds onto other DaemonSet pods, thus ensuring - // that at least 70% of original number of DaemonSet pods are available at - // all times during the update. + // can have their pods stopped for an update at any given time. The update + // starts by stopping at most 30% of those DaemonSet pods and then brings + // up new DaemonSet pods in their place. Once the new pods are available, + // it then proceeds onto other DaemonSet pods, thus ensuring that at least + // 70% of original number of DaemonSet pods are available at all times during + // the update. // +optional optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1; + + // The maximum number of nodes with an existing available DaemonSet pod that + // can have an updated DaemonSet pod during during an update. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // This can not be 0 if MaxUnavailable is 0. + // Absolute number is calculated from percentage by rounding up to a minimum of 1. + // Default value is 0. + // Example: when this is set to 30%, at most 30% of the total number of nodes + // that should be running the daemon pod (i.e. status.desiredNumberScheduled) + // can have their a new pod created before the old pod is marked as deleted. + // The update starts by launching new pods on 30% of nodes. Once an updated + // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod + // on that node is marked deleted. If the old pod becomes unavailable for any + // reason (Ready transitions to false, is evicted, or is drained) an updated + // pod is immediatedly created on that node without considering surge limits. + // Allowing surge implies the possibility that the resources consumed by the + // daemonset on any given node can double if the readiness check fails, and + // so resource intensive daemonsets should take into account that they may + // cause evictions during disruption. + // This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2; } // Spec to control the desired behavior of rolling update. diff --git a/vendor/k8s.io/api/extensions/v1beta1/types.go b/vendor/k8s.io/api/extensions/v1beta1/types.go index bd75c51bcc..f3479713c5 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/types.go +++ b/vendor/k8s.io/api/extensions/v1beta1/types.go @@ -357,19 +357,41 @@ type RollingUpdateDaemonSet struct { // The maximum number of DaemonSet pods that can be unavailable during the // update. Value can be an absolute number (ex: 5) or a percentage of total // number of DaemonSet pods at the start of the update (ex: 10%). Absolute - // number is calculated from percentage by rounding up. - // This cannot be 0. + // number is calculated from percentage by rounding down to a minimum of one. + // This cannot be 0 if MaxSurge is 0 // Default value is 1. // Example: when this is set to 30%, at most 30% of the total number of nodes // that should be running the daemon pod (i.e. status.desiredNumberScheduled) - // can have their pods stopped for an update at any given - // time. The update starts by stopping at most 30% of those DaemonSet pods - // and then brings up new DaemonSet pods in their place. Once the new pods - // are available, it then proceeds onto other DaemonSet pods, thus ensuring - // that at least 70% of original number of DaemonSet pods are available at - // all times during the update. + // can have their pods stopped for an update at any given time. The update + // starts by stopping at most 30% of those DaemonSet pods and then brings + // up new DaemonSet pods in their place. Once the new pods are available, + // it then proceeds onto other DaemonSet pods, thus ensuring that at least + // 70% of original number of DaemonSet pods are available at all times during + // the update. // +optional MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,1,opt,name=maxUnavailable"` + + // The maximum number of nodes with an existing available DaemonSet pod that + // can have an updated DaemonSet pod during during an update. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // This can not be 0 if MaxUnavailable is 0. + // Absolute number is calculated from percentage by rounding up to a minimum of 1. + // Default value is 0. + // Example: when this is set to 30%, at most 30% of the total number of nodes + // that should be running the daemon pod (i.e. status.desiredNumberScheduled) + // can have their a new pod created before the old pod is marked as deleted. + // The update starts by launching new pods on 30% of nodes. Once an updated + // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod + // on that node is marked deleted. If the old pod becomes unavailable for any + // reason (Ready transitions to false, is evicted, or is drained) an updated + // pod is immediatedly created on that node without considering surge limits. + // Allowing surge implies the possibility that the resources consumed by the + // daemonset on any given node can double if the readiness check fails, and + // so resource intensive daemonsets should take into account that they may + // cause evictions during disruption. + // This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate. + // +optional + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,2,opt,name=maxSurge"` } // DaemonSetSpec is the specification of a daemon set. @@ -1387,7 +1409,7 @@ type NetworkPolicySpec struct { Egress []NetworkPolicyEgressRule `json:"egress,omitempty" protobuf:"bytes,3,rep,name=egress"` // List of rule types that the NetworkPolicy relates to. - // Valid options are "Ingress", "Egress", or "Ingress,Egress". + // Valid options are ["Ingress"], ["Egress"], or ["Ingress", "Egress"]. // If this field is not specified, it will default based on the existence of Ingress or Egress rules; // policies that contain an Egress section are assumed to affect Egress, and all policies // (whether or not they contain an Ingress section) are assumed to affect Ingress. @@ -1449,13 +1471,21 @@ type NetworkPolicyPort struct { // +optional Protocol *v1.Protocol `json:"protocol,omitempty" protobuf:"bytes,1,opt,name=protocol,casttype=k8s.io/api/core/v1.Protocol"` - // If specified, 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. + // 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. // +optional Port *intstr.IntOrString `json:"port,omitempty" protobuf:"bytes,2,opt,name=port"` + + // If set, indicates that the range of ports from port to endPort, 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. + // This feature is in Alpha state and should be enabled using the Feature Gate + // "NetworkPolicyEndPort". + // +optional + EndPort *int32 `json:"endPort,omitempty" protobuf:"bytes,3,opt,name=endPort"` } // DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock. diff --git a/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go index 0ef3c00593..870b607a72 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go @@ -413,7 +413,8 @@ func (NetworkPolicyPeer) SwaggerDoc() map[string]string { var map_NetworkPolicyPort = map[string]string{ "": "DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.", "protocol": "Optional. The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", - "port": "If specified, 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": "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.", + "endPort": "If set, indicates that the range of ports from port to endPort, 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. This feature is in Alpha state and should be enabled using the Feature Gate \"NetworkPolicyEndPort\".", } func (NetworkPolicyPort) SwaggerDoc() map[string]string { @@ -425,7 +426,7 @@ var map_NetworkPolicySpec = map[string]string{ "podSelector": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.", "ingress": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default).", "egress": "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", - "policyTypes": "List of rule types that the NetworkPolicy relates to. Valid options are \"Ingress\", \"Egress\", or \"Ingress,Egress\". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", + "policyTypes": "List of rule types that the NetworkPolicy relates to. Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"]. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", } func (NetworkPolicySpec) SwaggerDoc() map[string]string { @@ -555,7 +556,8 @@ func (RollbackConfig) SwaggerDoc() map[string]string { var map_RollingUpdateDaemonSet = map[string]string{ "": "Spec to control the desired behavior of daemon set rolling update.", - "maxUnavailable": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", + "maxUnavailable": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding down to a minimum of one. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", + "maxSurge": "The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate.", } func (RollingUpdateDaemonSet) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go index 913f485145..8383156109 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go @@ -916,6 +916,11 @@ func (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) { *out = new(intstr.IntOrString) **out = **in } + if in.EndPort != nil { + in, out := &in.EndPort, &out.EndPort + *out = new(int32) + **out = **in + } return } @@ -1272,6 +1277,11 @@ func (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) { *out = new(intstr.IntOrString) **out = **in } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + *out = new(intstr.IntOrString) + **out = **in + } return } diff --git a/vendor/k8s.io/api/flowcontrol/v1alpha1/generated.pb.go b/vendor/k8s.io/api/flowcontrol/v1alpha1/generated.pb.go index 86c8612049..7f0687ac04 100644 --- a/vendor/k8s.io/api/flowcontrol/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/flowcontrol/v1alpha1/generated.pb.go @@ -2513,10 +2513,7 @@ func (m *FlowDistinguisherMethod) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2665,10 +2662,7 @@ func (m *FlowSchema) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2879,10 +2873,7 @@ func (m *FlowSchemaCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2999,10 +2990,7 @@ func (m *FlowSchemaList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3174,10 +3162,7 @@ func (m *FlowSchemaSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3261,10 +3246,7 @@ func (m *FlowSchemaStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3346,10 +3328,7 @@ func (m *GroupSubject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3467,10 +3446,7 @@ func (m *LimitResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3572,10 +3548,7 @@ func (m *LimitedPriorityLevelConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3689,10 +3662,7 @@ func (m *NonResourcePolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3844,10 +3814,7 @@ func (m *PolicyRulesWithSubjects) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3996,10 +3963,7 @@ func (m *PriorityLevelConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4210,10 +4174,7 @@ func (m *PriorityLevelConfigurationCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4330,10 +4291,7 @@ func (m *PriorityLevelConfigurationList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4415,10 +4373,7 @@ func (m *PriorityLevelConfigurationReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4536,10 +4491,7 @@ func (m *PriorityLevelConfigurationSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4623,10 +4575,7 @@ func (m *PriorityLevelConfigurationStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4733,10 +4682,7 @@ func (m *QueuingConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4934,10 +4880,7 @@ func (m *ResourcePolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5051,10 +4994,7 @@ func (m *ServiceAccountSubject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5244,10 +5184,7 @@ func (m *Subject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5329,10 +5266,7 @@ func (m *UserSubject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/flowcontrol/v1beta1/generated.pb.go b/vendor/k8s.io/api/flowcontrol/v1beta1/generated.pb.go index 5a0c755606..cb06fe5e77 100644 --- a/vendor/k8s.io/api/flowcontrol/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/flowcontrol/v1beta1/generated.pb.go @@ -2513,10 +2513,7 @@ func (m *FlowDistinguisherMethod) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2665,10 +2662,7 @@ func (m *FlowSchema) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2879,10 +2873,7 @@ func (m *FlowSchemaCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2999,10 +2990,7 @@ func (m *FlowSchemaList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3174,10 +3162,7 @@ func (m *FlowSchemaSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3261,10 +3246,7 @@ func (m *FlowSchemaStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3346,10 +3328,7 @@ func (m *GroupSubject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3467,10 +3446,7 @@ func (m *LimitResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3572,10 +3548,7 @@ func (m *LimitedPriorityLevelConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3689,10 +3662,7 @@ func (m *NonResourcePolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3844,10 +3814,7 @@ func (m *PolicyRulesWithSubjects) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3996,10 +3963,7 @@ func (m *PriorityLevelConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4210,10 +4174,7 @@ func (m *PriorityLevelConfigurationCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4330,10 +4291,7 @@ func (m *PriorityLevelConfigurationList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4415,10 +4373,7 @@ func (m *PriorityLevelConfigurationReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4536,10 +4491,7 @@ func (m *PriorityLevelConfigurationSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4623,10 +4575,7 @@ func (m *PriorityLevelConfigurationStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4733,10 +4682,7 @@ func (m *QueuingConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4934,10 +4880,7 @@ func (m *ResourcePolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5051,10 +4994,7 @@ func (m *ServiceAccountSubject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5244,10 +5184,7 @@ func (m *Subject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5329,10 +5266,7 @@ func (m *UserSubject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go b/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go index e5688513e2..1d7bb79904 100644 --- a/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go @@ -719,10 +719,7 @@ func (m *ImageReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -804,10 +801,7 @@ func (m *ImageReviewContainerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1001,7 +995,7 @@ func (m *ImageReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1050,10 +1044,7 @@ func (m *ImageReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1265,7 +1256,7 @@ func (m *ImageReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1282,10 +1273,7 @@ func (m *ImageReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/networking/v1/generated.pb.go b/vendor/k8s.io/api/networking/v1/generated.pb.go index 4e03b54381..719861b96c 100644 --- a/vendor/k8s.io/api/networking/v1/generated.pb.go +++ b/vendor/k8s.io/api/networking/v1/generated.pb.go @@ -244,10 +244,38 @@ func (m *IngressClassList) XXX_DiscardUnknown() { var xxx_messageInfo_IngressClassList proto.InternalMessageInfo +func (m *IngressClassParametersReference) Reset() { *m = IngressClassParametersReference{} } +func (*IngressClassParametersReference) ProtoMessage() {} +func (*IngressClassParametersReference) Descriptor() ([]byte, []int) { + return fileDescriptor_1c72867a70a7cc90, []int{7} +} +func (m *IngressClassParametersReference) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IngressClassParametersReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *IngressClassParametersReference) XXX_Merge(src proto.Message) { + xxx_messageInfo_IngressClassParametersReference.Merge(m, src) +} +func (m *IngressClassParametersReference) XXX_Size() int { + return m.Size() +} +func (m *IngressClassParametersReference) XXX_DiscardUnknown() { + xxx_messageInfo_IngressClassParametersReference.DiscardUnknown(m) +} + +var xxx_messageInfo_IngressClassParametersReference proto.InternalMessageInfo + func (m *IngressClassSpec) Reset() { *m = IngressClassSpec{} } func (*IngressClassSpec) ProtoMessage() {} func (*IngressClassSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{7} + return fileDescriptor_1c72867a70a7cc90, []int{8} } func (m *IngressClassSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -275,7 +303,7 @@ var xxx_messageInfo_IngressClassSpec proto.InternalMessageInfo func (m *IngressList) Reset() { *m = IngressList{} } func (*IngressList) ProtoMessage() {} func (*IngressList) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{8} + return fileDescriptor_1c72867a70a7cc90, []int{9} } func (m *IngressList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -303,7 +331,7 @@ var xxx_messageInfo_IngressList proto.InternalMessageInfo func (m *IngressRule) Reset() { *m = IngressRule{} } func (*IngressRule) ProtoMessage() {} func (*IngressRule) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{9} + return fileDescriptor_1c72867a70a7cc90, []int{10} } func (m *IngressRule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -331,7 +359,7 @@ var xxx_messageInfo_IngressRule proto.InternalMessageInfo func (m *IngressRuleValue) Reset() { *m = IngressRuleValue{} } func (*IngressRuleValue) ProtoMessage() {} func (*IngressRuleValue) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{10} + return fileDescriptor_1c72867a70a7cc90, []int{11} } func (m *IngressRuleValue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -359,7 +387,7 @@ var xxx_messageInfo_IngressRuleValue proto.InternalMessageInfo func (m *IngressServiceBackend) Reset() { *m = IngressServiceBackend{} } func (*IngressServiceBackend) ProtoMessage() {} func (*IngressServiceBackend) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{11} + return fileDescriptor_1c72867a70a7cc90, []int{12} } func (m *IngressServiceBackend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -387,7 +415,7 @@ var xxx_messageInfo_IngressServiceBackend proto.InternalMessageInfo func (m *IngressSpec) Reset() { *m = IngressSpec{} } func (*IngressSpec) ProtoMessage() {} func (*IngressSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{12} + return fileDescriptor_1c72867a70a7cc90, []int{13} } func (m *IngressSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -415,7 +443,7 @@ var xxx_messageInfo_IngressSpec proto.InternalMessageInfo func (m *IngressStatus) Reset() { *m = IngressStatus{} } func (*IngressStatus) ProtoMessage() {} func (*IngressStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{13} + return fileDescriptor_1c72867a70a7cc90, []int{14} } func (m *IngressStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -443,7 +471,7 @@ var xxx_messageInfo_IngressStatus proto.InternalMessageInfo func (m *IngressTLS) Reset() { *m = IngressTLS{} } func (*IngressTLS) ProtoMessage() {} func (*IngressTLS) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{14} + return fileDescriptor_1c72867a70a7cc90, []int{15} } func (m *IngressTLS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -471,7 +499,7 @@ var xxx_messageInfo_IngressTLS proto.InternalMessageInfo func (m *NetworkPolicy) Reset() { *m = NetworkPolicy{} } func (*NetworkPolicy) ProtoMessage() {} func (*NetworkPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{15} + return fileDescriptor_1c72867a70a7cc90, []int{16} } func (m *NetworkPolicy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -499,7 +527,7 @@ var xxx_messageInfo_NetworkPolicy proto.InternalMessageInfo func (m *NetworkPolicyEgressRule) Reset() { *m = NetworkPolicyEgressRule{} } func (*NetworkPolicyEgressRule) ProtoMessage() {} func (*NetworkPolicyEgressRule) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{16} + return fileDescriptor_1c72867a70a7cc90, []int{17} } func (m *NetworkPolicyEgressRule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -527,7 +555,7 @@ var xxx_messageInfo_NetworkPolicyEgressRule proto.InternalMessageInfo func (m *NetworkPolicyIngressRule) Reset() { *m = NetworkPolicyIngressRule{} } func (*NetworkPolicyIngressRule) ProtoMessage() {} func (*NetworkPolicyIngressRule) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{17} + return fileDescriptor_1c72867a70a7cc90, []int{18} } func (m *NetworkPolicyIngressRule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -555,7 +583,7 @@ var xxx_messageInfo_NetworkPolicyIngressRule proto.InternalMessageInfo func (m *NetworkPolicyList) Reset() { *m = NetworkPolicyList{} } func (*NetworkPolicyList) ProtoMessage() {} func (*NetworkPolicyList) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{18} + return fileDescriptor_1c72867a70a7cc90, []int{19} } func (m *NetworkPolicyList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -583,7 +611,7 @@ var xxx_messageInfo_NetworkPolicyList proto.InternalMessageInfo func (m *NetworkPolicyPeer) Reset() { *m = NetworkPolicyPeer{} } func (*NetworkPolicyPeer) ProtoMessage() {} func (*NetworkPolicyPeer) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{19} + return fileDescriptor_1c72867a70a7cc90, []int{20} } func (m *NetworkPolicyPeer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -611,7 +639,7 @@ var xxx_messageInfo_NetworkPolicyPeer proto.InternalMessageInfo func (m *NetworkPolicyPort) Reset() { *m = NetworkPolicyPort{} } func (*NetworkPolicyPort) ProtoMessage() {} func (*NetworkPolicyPort) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{20} + return fileDescriptor_1c72867a70a7cc90, []int{21} } func (m *NetworkPolicyPort) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -639,7 +667,7 @@ var xxx_messageInfo_NetworkPolicyPort proto.InternalMessageInfo func (m *NetworkPolicySpec) Reset() { *m = NetworkPolicySpec{} } func (*NetworkPolicySpec) ProtoMessage() {} func (*NetworkPolicySpec) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{21} + return fileDescriptor_1c72867a70a7cc90, []int{22} } func (m *NetworkPolicySpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -667,7 +695,7 @@ var xxx_messageInfo_NetworkPolicySpec proto.InternalMessageInfo func (m *ServiceBackendPort) Reset() { *m = ServiceBackendPort{} } func (*ServiceBackendPort) ProtoMessage() {} func (*ServiceBackendPort) Descriptor() ([]byte, []int) { - return fileDescriptor_1c72867a70a7cc90, []int{22} + return fileDescriptor_1c72867a70a7cc90, []int{23} } func (m *ServiceBackendPort) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -700,6 +728,7 @@ func init() { proto.RegisterType((*IngressBackend)(nil), "k8s.io.api.networking.v1.IngressBackend") proto.RegisterType((*IngressClass)(nil), "k8s.io.api.networking.v1.IngressClass") proto.RegisterType((*IngressClassList)(nil), "k8s.io.api.networking.v1.IngressClassList") + proto.RegisterType((*IngressClassParametersReference)(nil), "k8s.io.api.networking.v1.IngressClassParametersReference") proto.RegisterType((*IngressClassSpec)(nil), "k8s.io.api.networking.v1.IngressClassSpec") proto.RegisterType((*IngressList)(nil), "k8s.io.api.networking.v1.IngressList") proto.RegisterType((*IngressRule)(nil), "k8s.io.api.networking.v1.IngressRule") @@ -723,98 +752,104 @@ func init() { } var fileDescriptor_1c72867a70a7cc90 = []byte{ - // 1441 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xcd, 0x6f, 0x1b, 0x45, - 0x1b, 0xcf, 0x3a, 0x71, 0xec, 0x8c, 0xd3, 0x34, 0x9d, 0xb7, 0xd5, 0x6b, 0xf5, 0xd5, 0x6b, 0xe7, - 0x5d, 0xbd, 0xb4, 0x81, 0xd2, 0x35, 0x71, 0x2b, 0xc4, 0x0d, 0xd8, 0xf4, 0x2b, 0xe0, 0x26, 0xd6, - 0xd8, 0x2a, 0x02, 0x51, 0xd4, 0xf1, 0x7a, 0x62, 0x6f, 0xbd, 0xde, 0x59, 0x66, 0xc7, 0xa1, 0xbd, - 0x71, 0xe1, 0xc0, 0x8d, 0x7f, 0x81, 0x03, 0x37, 0x6e, 0x70, 0x43, 0x50, 0xb8, 0xa0, 0x1e, 0x7b, - 0xec, 0xc9, 0xa2, 0xe6, 0xbf, 0xc8, 0x09, 0xcd, 0xec, 0xec, 0xa7, 0x63, 0x6c, 0xaa, 0x2a, 0x27, - 0x7b, 0x9f, 0x8f, 0xdf, 0xf3, 0x39, 0xcf, 0x33, 0x03, 0xde, 0x1f, 0xbc, 0xe3, 0x1b, 0x36, 0xad, - 0x0d, 0x46, 0x1d, 0xc2, 0x5c, 0xc2, 0x89, 0x5f, 0x3b, 0x22, 0x6e, 0x97, 0xb2, 0x9a, 0x62, 0x60, - 0xcf, 0xae, 0xb9, 0x84, 0x7f, 0x41, 0xd9, 0xc0, 0x76, 0x7b, 0xb5, 0xa3, 0x9d, 0x5a, 0x8f, 0xb8, - 0x84, 0x61, 0x4e, 0xba, 0x86, 0xc7, 0x28, 0xa7, 0xb0, 0x1c, 0x48, 0x1a, 0xd8, 0xb3, 0x8d, 0x58, - 0xd2, 0x38, 0xda, 0xb9, 0x78, 0xb5, 0x67, 0xf3, 0xfe, 0xa8, 0x63, 0x58, 0x74, 0x58, 0xeb, 0xd1, - 0x1e, 0xad, 0x49, 0x85, 0xce, 0xe8, 0x50, 0x7e, 0xc9, 0x0f, 0xf9, 0x2f, 0x00, 0xba, 0xa8, 0x27, - 0x4c, 0x5a, 0x94, 0x91, 0x13, 0x8c, 0x5d, 0xbc, 0x1e, 0xcb, 0x0c, 0xb1, 0xd5, 0xb7, 0x5d, 0xc2, - 0x1e, 0xd7, 0xbc, 0x41, 0x4f, 0x10, 0xfc, 0xda, 0x90, 0x70, 0x7c, 0x92, 0x56, 0x6d, 0x96, 0x16, - 0x1b, 0xb9, 0xdc, 0x1e, 0x92, 0x29, 0x85, 0xb7, 0xe7, 0x29, 0xf8, 0x56, 0x9f, 0x0c, 0xf1, 0x94, - 0xde, 0xb5, 0x59, 0x7a, 0x23, 0x6e, 0x3b, 0x35, 0xdb, 0xe5, 0x3e, 0x67, 0x59, 0x25, 0xfd, 0x17, - 0x0d, 0x9c, 0xbd, 0xd3, 0x6e, 0x37, 0xf7, 0xdc, 0x1e, 0x23, 0xbe, 0xdf, 0xc4, 0xbc, 0x0f, 0xb7, - 0xc0, 0x8a, 0x87, 0x79, 0xbf, 0xac, 0x6d, 0x69, 0xdb, 0x6b, 0xe6, 0xfa, 0xd3, 0x71, 0x75, 0x69, - 0x32, 0xae, 0xae, 0x08, 0x1e, 0x92, 0x1c, 0x78, 0x1d, 0x14, 0xc5, 0x6f, 0xfb, 0xb1, 0x47, 0xca, - 0xcb, 0x52, 0xaa, 0x3c, 0x19, 0x57, 0x8b, 0x4d, 0x45, 0x3b, 0x4e, 0xfc, 0x47, 0x91, 0x24, 0x6c, - 0x81, 0x42, 0x07, 0x5b, 0x03, 0xe2, 0x76, 0xcb, 0xb9, 0x2d, 0x6d, 0xbb, 0x54, 0xdf, 0x36, 0x66, - 0x95, 0xcf, 0x50, 0xfe, 0x98, 0x81, 0xbc, 0x79, 0x56, 0x39, 0x51, 0x50, 0x04, 0x14, 0x22, 0xe9, - 0x87, 0xe0, 0x7c, 0xc2, 0x7f, 0x34, 0x72, 0xc8, 0x3d, 0xec, 0x8c, 0x08, 0xdc, 0x07, 0x79, 0x61, - 0xd8, 0x2f, 0x6b, 0x5b, 0xcb, 0xdb, 0xa5, 0xfa, 0xeb, 0xb3, 0x4d, 0x65, 0xc2, 0x37, 0xcf, 0x28, - 0x5b, 0x79, 0xf1, 0xe5, 0xa3, 0x00, 0x46, 0x3f, 0x00, 0x85, 0xbd, 0xa6, 0xe9, 0x50, 0x6b, 0x20, - 0xf2, 0x63, 0xd9, 0x5d, 0x96, 0xcd, 0xcf, 0xee, 0xde, 0x0d, 0x84, 0x24, 0x07, 0xea, 0x60, 0x95, - 0x3c, 0xb2, 0x88, 0xc7, 0xcb, 0xb9, 0xad, 0xe5, 0xed, 0x35, 0x13, 0x4c, 0xc6, 0xd5, 0xd5, 0x9b, - 0x92, 0x82, 0x14, 0x47, 0xff, 0x2a, 0x07, 0x0a, 0xca, 0x2c, 0x7c, 0x00, 0x8a, 0xa2, 0x7d, 0xba, - 0x98, 0x63, 0x89, 0x5a, 0xaa, 0xbf, 0x95, 0xf0, 0x37, 0xaa, 0xa6, 0xe1, 0x0d, 0x7a, 0x82, 0xe0, - 0x1b, 0x42, 0x5a, 0xf8, 0x7e, 0xd0, 0x79, 0x48, 0x2c, 0x7e, 0x97, 0x70, 0x6c, 0x42, 0xe5, 0x07, - 0x88, 0x69, 0x28, 0x42, 0x85, 0xb7, 0xc1, 0x8a, 0xef, 0x11, 0x4b, 0x25, 0xfe, 0xb5, 0xb9, 0x89, - 0x6f, 0x79, 0xc4, 0x8a, 0x43, 0x13, 0x5f, 0x48, 0x02, 0xc0, 0x03, 0xb0, 0xea, 0x73, 0xcc, 0x47, - 0xbe, 0x2c, 0x7c, 0xa9, 0x7e, 0x79, 0x3e, 0x94, 0x14, 0x37, 0x37, 0x14, 0xd8, 0x6a, 0xf0, 0x8d, - 0x14, 0x8c, 0xfe, 0x9b, 0x06, 0x36, 0xd2, 0xd5, 0x86, 0xf7, 0x40, 0xc1, 0x27, 0xec, 0xc8, 0xb6, - 0x48, 0x79, 0x45, 0x1a, 0xa9, 0xcd, 0x37, 0x12, 0xc8, 0x87, 0xfd, 0x52, 0x12, 0xbd, 0xa2, 0x68, - 0x28, 0x04, 0x83, 0x1f, 0x81, 0x22, 0x23, 0x3e, 0x1d, 0x31, 0x8b, 0x28, 0xef, 0xaf, 0x26, 0x81, - 0xc5, 0xb9, 0x17, 0x90, 0xa2, 0x59, 0xbb, 0x0d, 0x6a, 0x61, 0x27, 0x48, 0x25, 0x22, 0x87, 0x84, - 0x11, 0xd7, 0x22, 0xe6, 0xba, 0xe8, 0x72, 0xa4, 0x20, 0x50, 0x04, 0x26, 0x4e, 0xd1, 0xba, 0x72, - 0x64, 0xd7, 0xc1, 0xa7, 0x52, 0xd0, 0x46, 0xaa, 0xa0, 0x6f, 0xcc, 0x4d, 0x90, 0xf4, 0x6b, 0x56, - 0x55, 0xf5, 0x9f, 0x35, 0xb0, 0x99, 0x14, 0x6c, 0xd8, 0x3e, 0x87, 0x9f, 0x4e, 0x05, 0x61, 0x2c, - 0x16, 0x84, 0xd0, 0x96, 0x21, 0x6c, 0x2a, 0x53, 0xc5, 0x90, 0x92, 0x08, 0xe0, 0x43, 0x90, 0xb7, - 0x39, 0x19, 0xfa, 0xf2, 0x88, 0x94, 0xea, 0x97, 0x16, 0x8b, 0x20, 0x3e, 0x9d, 0x7b, 0x42, 0x19, - 0x05, 0x18, 0xfa, 0x77, 0x19, 0xff, 0x45, 0x68, 0xb0, 0x0e, 0x80, 0x45, 0x5d, 0xce, 0xa8, 0xe3, - 0x90, 0xf0, 0xb4, 0x46, 0x49, 0xdd, 0x8d, 0x38, 0x28, 0x21, 0x05, 0xef, 0x03, 0xe0, 0x61, 0x86, - 0x87, 0x84, 0x13, 0xe6, 0xab, 0xe4, 0xfe, 0xc3, 0x26, 0xd9, 0x10, 0xf0, 0xcd, 0x08, 0x04, 0x25, - 0x00, 0xf5, 0x1f, 0x34, 0x50, 0x52, 0x7e, 0x9e, 0x42, 0x8a, 0x6f, 0xa5, 0x53, 0xfc, 0xbf, 0xf9, - 0xe3, 0xf6, 0xe4, 0xec, 0x7e, 0x1b, 0x7b, 0x2d, 0x06, 0xac, 0x18, 0x80, 0x7d, 0xea, 0xf3, 0xec, - 0x00, 0xbc, 0x43, 0x7d, 0x8e, 0x24, 0x07, 0x7a, 0x60, 0xd3, 0xce, 0x4c, 0xe4, 0x85, 0x3b, 0x35, - 0xd2, 0x30, 0xcb, 0x0a, 0x79, 0x33, 0xcb, 0x41, 0x53, 0xe8, 0xfa, 0x03, 0x30, 0x25, 0x25, 0xce, - 0x48, 0x9f, 0x73, 0xef, 0x84, 0xcc, 0xce, 0x5e, 0x01, 0xb1, 0xf5, 0xa2, 0x8c, 0xa9, 0xdd, 0x6e, - 0x22, 0x89, 0xa2, 0x7f, 0xad, 0x81, 0x0b, 0x27, 0x4e, 0x1b, 0x91, 0x0f, 0x17, 0x0f, 0x49, 0x36, - 0x1f, 0xfb, 0x78, 0x48, 0x90, 0xe4, 0xc0, 0x7d, 0xb0, 0xe2, 0x51, 0xc6, 0x55, 0x0e, 0xde, 0x9c, - 0xed, 0x49, 0x1a, 0xb9, 0x49, 0x19, 0x4f, 0x2c, 0x60, 0xca, 0x38, 0x92, 0x38, 0xfa, 0xef, 0xb9, - 0xa8, 0x22, 0xb2, 0xd5, 0xdf, 0x8b, 0xf2, 0x2d, 0xdb, 0x5f, 0x58, 0x96, 0xa3, 0x73, 0xcd, 0x3c, - 0x9f, 0xc8, 0x5f, 0xc4, 0x43, 0x53, 0xd2, 0xb0, 0x0b, 0x36, 0xba, 0xe4, 0x10, 0x8f, 0x1c, 0xae, - 0x6c, 0xab, 0xac, 0x2d, 0xbe, 0xa3, 0xe1, 0x64, 0x5c, 0xdd, 0xb8, 0x91, 0xc2, 0x40, 0x19, 0x4c, - 0xb8, 0x0b, 0x96, 0xb9, 0x13, 0xf6, 0xe3, 0xff, 0xe7, 0x42, 0xb7, 0x1b, 0x2d, 0xb3, 0xa4, 0xc2, - 0x5f, 0x6e, 0x37, 0x5a, 0x48, 0x68, 0xc3, 0x0f, 0x40, 0x9e, 0x8d, 0x1c, 0x22, 0x36, 0xd0, 0xf2, - 0x42, 0xcb, 0x4c, 0xd4, 0x34, 0x6e, 0x6d, 0xf1, 0xe5, 0xa3, 0x00, 0x42, 0xff, 0x1c, 0x9c, 0x49, - 0xad, 0x29, 0xf8, 0x00, 0xac, 0x3b, 0x14, 0x77, 0x4d, 0xec, 0x60, 0xd7, 0x52, 0x63, 0x23, 0x33, - 0x9d, 0xc2, 0x11, 0xd0, 0x48, 0xc8, 0xa9, 0x25, 0x77, 0x5e, 0x19, 0x59, 0x4f, 0xf2, 0x50, 0x0a, - 0x51, 0xc7, 0x00, 0xc4, 0xe1, 0xc1, 0x2a, 0xc8, 0x8b, 0x13, 0x13, 0xdc, 0x53, 0xd6, 0xcc, 0x35, - 0xe1, 0xa1, 0x38, 0x48, 0x3e, 0x0a, 0xe8, 0x62, 0x8a, 0xf9, 0xc4, 0x62, 0x84, 0xcb, 0xa2, 0xe6, - 0xd2, 0x53, 0xac, 0x15, 0x71, 0x50, 0x42, 0x4a, 0xff, 0x55, 0x03, 0x67, 0xf6, 0x83, 0x4c, 0x34, - 0xa9, 0x63, 0x5b, 0x8f, 0x4f, 0x61, 0x21, 0xdd, 0x4d, 0x2d, 0xa4, 0x2b, 0xb3, 0x8b, 0x92, 0x72, - 0x6c, 0xe6, 0x46, 0xfa, 0x51, 0x03, 0xff, 0x4e, 0x49, 0xde, 0x8c, 0xe7, 0x4f, 0x13, 0xe4, 0xc5, - 0x29, 0x08, 0xef, 0x76, 0x8b, 0xda, 0x92, 0xa7, 0x29, 0xbe, 0xdd, 0x09, 0x04, 0x14, 0x00, 0xc1, - 0xdb, 0x20, 0xc7, 0xa9, 0x6a, 0xcb, 0x85, 0xe1, 0x08, 0x61, 0x26, 0x50, 0x70, 0xb9, 0x36, 0x45, - 0x39, 0x4e, 0xf5, 0x9f, 0x34, 0x50, 0x4e, 0x49, 0x25, 0xe7, 0xe6, 0xab, 0xf7, 0xfb, 0x2e, 0x58, - 0x39, 0x64, 0x74, 0xf8, 0x32, 0x9e, 0x47, 0x49, 0xbf, 0xc5, 0xe8, 0x10, 0x49, 0x18, 0xfd, 0x89, - 0x06, 0xce, 0xa5, 0x24, 0x4f, 0x61, 0x49, 0x35, 0xd2, 0x4b, 0xea, 0xf2, 0x82, 0x31, 0xcc, 0x58, - 0x55, 0x4f, 0x72, 0x99, 0x08, 0x44, 0xac, 0xf0, 0x10, 0x94, 0x3c, 0xda, 0x6d, 0x11, 0x87, 0x58, - 0x9c, 0x86, 0x67, 0xfa, 0xda, 0x82, 0x41, 0xe0, 0x0e, 0x71, 0x42, 0x55, 0xf3, 0xec, 0x64, 0x5c, - 0x2d, 0x35, 0x63, 0x2c, 0x94, 0x04, 0x86, 0x8f, 0xc0, 0x39, 0x31, 0xee, 0x7d, 0x0f, 0x5b, 0x24, - 0xb2, 0x96, 0x7b, 0x79, 0x6b, 0x17, 0x26, 0xe3, 0xea, 0xb9, 0xfd, 0x2c, 0x22, 0x9a, 0x36, 0x02, - 0xef, 0x80, 0x82, 0xed, 0xc9, 0xe7, 0x89, 0xba, 0xd9, 0xfe, 0xdd, 0xb2, 0x0f, 0xde, 0x31, 0xc1, - 0x25, 0x59, 0x7d, 0xa0, 0x50, 0x5d, 0xff, 0x3e, 0xdb, 0x03, 0xa2, 0xe1, 0xe0, 0x6d, 0x50, 0x94, - 0x0f, 0x46, 0x8b, 0x3a, 0x6a, 0xcd, 0x5d, 0x91, 0x2f, 0x3e, 0x45, 0x3b, 0x1e, 0x57, 0xff, 0x33, - 0xfd, 0x82, 0x36, 0x42, 0x36, 0x8a, 0x94, 0x33, 0x9b, 0x70, 0xf6, 0x10, 0x12, 0x8f, 0x56, 0x23, - 0x78, 0xb4, 0x1a, 0x7b, 0x2e, 0x3f, 0x60, 0x2d, 0xce, 0x6c, 0xb7, 0x17, 0x6c, 0xe5, 0xc4, 0x26, - 0x3c, 0xce, 0x16, 0x5c, 0xee, 0xc3, 0x87, 0xaf, 0xac, 0xe0, 0xff, 0x52, 0x6d, 0x36, 0xbb, 0xe8, - 0xf7, 0x41, 0x41, 0x6d, 0x53, 0xd5, 0xc2, 0xf5, 0x05, 0x5b, 0x38, 0xb9, 0x9d, 0xa2, 0x07, 0x6e, - 0x48, 0x0c, 0x31, 0xe1, 0xc7, 0x60, 0x95, 0x04, 0xe8, 0xc1, 0xba, 0xdb, 0x59, 0x10, 0x3d, 0x9e, - 0x97, 0xf1, 0xd3, 0x4b, 0xd1, 0x14, 0x20, 0x7c, 0x57, 0x64, 0x49, 0xc8, 0x8a, 0xcb, 0xac, 0x5f, - 0x5e, 0x91, 0x1b, 0xe8, 0xbf, 0x41, 0xb0, 0x11, 0xf9, 0x58, 0xdc, 0x66, 0xa3, 0x4f, 0x94, 0xd4, - 0xd0, 0x3f, 0x03, 0x70, 0xfa, 0xc2, 0xb2, 0xc0, 0x75, 0xe8, 0x12, 0x58, 0x75, 0x47, 0xc3, 0x0e, - 0x09, 0x0e, 0x47, 0x3e, 0x76, 0x70, 0x5f, 0x52, 0x91, 0xe2, 0x9a, 0xdb, 0x4f, 0x5f, 0x54, 0x96, - 0x9e, 0xbd, 0xa8, 0x2c, 0x3d, 0x7f, 0x51, 0x59, 0xfa, 0x72, 0x52, 0xd1, 0x9e, 0x4e, 0x2a, 0xda, - 0xb3, 0x49, 0x45, 0x7b, 0x3e, 0xa9, 0x68, 0x7f, 0x4c, 0x2a, 0xda, 0x37, 0x7f, 0x56, 0x96, 0x3e, - 0xc9, 0x1d, 0xed, 0xfc, 0x15, 0x00, 0x00, 0xff, 0xff, 0xc5, 0x87, 0xf6, 0x28, 0x4c, 0x12, 0x00, - 0x00, + // 1545 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x6f, 0x1b, 0x45, + 0x1b, 0xcf, 0x3a, 0x71, 0xec, 0x3c, 0x4e, 0xd2, 0x74, 0xde, 0x56, 0xaf, 0xd5, 0x57, 0xaf, 0x1d, + 0x56, 0xb4, 0x0d, 0x94, 0xda, 0x24, 0xad, 0x10, 0x9c, 0xa0, 0x9b, 0xb6, 0x69, 0x68, 0x9a, 0x58, + 0x63, 0xab, 0x08, 0x04, 0xa8, 0x93, 0xf5, 0xc4, 0xd9, 0x7a, 0xbd, 0xb3, 0xcc, 0x8e, 0x43, 0x7b, + 0xe3, 0xc2, 0x81, 0x1b, 0xff, 0x02, 0x7f, 0x02, 0x82, 0x1b, 0x82, 0xc2, 0x05, 0xf5, 0x58, 0x89, + 0x4b, 0x2f, 0x58, 0xd4, 0xfc, 0x17, 0x39, 0xa1, 0x99, 0x9d, 0xfd, 0xb0, 0x1d, 0x63, 0xab, 0xaa, + 0x72, 0x8a, 0xf7, 0xf9, 0xf8, 0x3d, 0x1f, 0xf3, 0x7c, 0xcc, 0x04, 0x6e, 0xb4, 0xdf, 0x0d, 0x2a, + 0x0e, 0xab, 0xb6, 0xbb, 0xfb, 0x94, 0x7b, 0x54, 0xd0, 0xa0, 0x7a, 0x44, 0xbd, 0x26, 0xe3, 0x55, + 0xcd, 0x20, 0xbe, 0x53, 0xf5, 0xa8, 0xf8, 0x92, 0xf1, 0xb6, 0xe3, 0xb5, 0xaa, 0x47, 0xeb, 0xd5, + 0x16, 0xf5, 0x28, 0x27, 0x82, 0x36, 0x2b, 0x3e, 0x67, 0x82, 0xa1, 0x62, 0x28, 0x59, 0x21, 0xbe, + 0x53, 0x49, 0x24, 0x2b, 0x47, 0xeb, 0x17, 0xae, 0xb6, 0x1c, 0x71, 0xd8, 0xdd, 0xaf, 0xd8, 0xac, + 0x53, 0x6d, 0xb1, 0x16, 0xab, 0x2a, 0x85, 0xfd, 0xee, 0x81, 0xfa, 0x52, 0x1f, 0xea, 0x57, 0x08, + 0x74, 0xc1, 0x4c, 0x99, 0xb4, 0x19, 0xa7, 0x27, 0x18, 0xbb, 0x70, 0x3d, 0x91, 0xe9, 0x10, 0xfb, + 0xd0, 0xf1, 0x28, 0x7f, 0x5c, 0xf5, 0xdb, 0x2d, 0x49, 0x08, 0xaa, 0x1d, 0x2a, 0xc8, 0x49, 0x5a, + 0xd5, 0x71, 0x5a, 0xbc, 0xeb, 0x09, 0xa7, 0x43, 0x47, 0x14, 0xde, 0x99, 0xa4, 0x10, 0xd8, 0x87, + 0xb4, 0x43, 0x46, 0xf4, 0xae, 0x8d, 0xd3, 0xeb, 0x0a, 0xc7, 0xad, 0x3a, 0x9e, 0x08, 0x04, 0x1f, + 0x56, 0x32, 0x7f, 0x31, 0xe0, 0xcc, 0x9d, 0x46, 0xa3, 0xb6, 0xed, 0xb5, 0x38, 0x0d, 0x82, 0x1a, + 0x11, 0x87, 0x68, 0x15, 0xe6, 0x7c, 0x22, 0x0e, 0x8b, 0xc6, 0xaa, 0xb1, 0xb6, 0x60, 0x2d, 0x3e, + 0xed, 0x95, 0x67, 0xfa, 0xbd, 0xf2, 0x9c, 0xe4, 0x61, 0xc5, 0x41, 0xd7, 0x21, 0x2f, 0xff, 0x36, + 0x1e, 0xfb, 0xb4, 0x38, 0xab, 0xa4, 0x8a, 0xfd, 0x5e, 0x39, 0x5f, 0xd3, 0xb4, 0xe3, 0xd4, 0x6f, + 0x1c, 0x4b, 0xa2, 0x3a, 0xe4, 0xf6, 0x89, 0xdd, 0xa6, 0x5e, 0xb3, 0x98, 0x59, 0x35, 0xd6, 0x0a, + 0x1b, 0x6b, 0x95, 0x71, 0xc7, 0x57, 0xd1, 0xfe, 0x58, 0xa1, 0xbc, 0x75, 0x46, 0x3b, 0x91, 0xd3, + 0x04, 0x1c, 0x21, 0x99, 0x07, 0x70, 0x2e, 0xe5, 0x3f, 0xee, 0xba, 0xf4, 0x3e, 0x71, 0xbb, 0x14, + 0xed, 0x42, 0x56, 0x1a, 0x0e, 0x8a, 0xc6, 0xea, 0xec, 0x5a, 0x61, 0xe3, 0x8d, 0xf1, 0xa6, 0x86, + 0xc2, 0xb7, 0x96, 0xb4, 0xad, 0xac, 0xfc, 0x0a, 0x70, 0x08, 0x63, 0xee, 0x41, 0x6e, 0xbb, 0x66, + 0xb9, 0xcc, 0x6e, 0xcb, 0xfc, 0xd8, 0x4e, 0x93, 0x0f, 0xe7, 0x67, 0x73, 0xfb, 0x26, 0xc6, 0x8a, + 0x83, 0x4c, 0x98, 0xa7, 0x8f, 0x6c, 0xea, 0x8b, 0x62, 0x66, 0x75, 0x76, 0x6d, 0xc1, 0x82, 0x7e, + 0xaf, 0x3c, 0x7f, 0x4b, 0x51, 0xb0, 0xe6, 0x98, 0x5f, 0x67, 0x20, 0xa7, 0xcd, 0xa2, 0x07, 0x90, + 0x97, 0xe5, 0xd3, 0x24, 0x82, 0x28, 0xd4, 0xc2, 0xc6, 0xdb, 0x29, 0x7f, 0xe3, 0xd3, 0xac, 0xf8, + 0xed, 0x96, 0x24, 0x04, 0x15, 0x29, 0x2d, 0x7d, 0xdf, 0xdb, 0x7f, 0x48, 0x6d, 0x71, 0x8f, 0x0a, + 0x62, 0x21, 0xed, 0x07, 0x24, 0x34, 0x1c, 0xa3, 0xa2, 0x2d, 0x98, 0x0b, 0x7c, 0x6a, 0xeb, 0xc4, + 0x5f, 0x9c, 0x98, 0xf8, 0xba, 0x4f, 0xed, 0x24, 0x34, 0xf9, 0x85, 0x15, 0x00, 0xda, 0x83, 0xf9, + 0x40, 0x10, 0xd1, 0x0d, 0xd4, 0xc1, 0x17, 0x36, 0x2e, 0x4f, 0x86, 0x52, 0xe2, 0xd6, 0xb2, 0x06, + 0x9b, 0x0f, 0xbf, 0xb1, 0x86, 0x31, 0x7f, 0x33, 0x60, 0x79, 0xf0, 0xb4, 0xd1, 0x7d, 0xc8, 0x05, + 0x94, 0x1f, 0x39, 0x36, 0x2d, 0xce, 0x29, 0x23, 0xd5, 0xc9, 0x46, 0x42, 0xf9, 0xa8, 0x5e, 0x0a, + 0xb2, 0x56, 0x34, 0x0d, 0x47, 0x60, 0xe8, 0x23, 0xc8, 0x73, 0x1a, 0xb0, 0x2e, 0xb7, 0xa9, 0xf6, + 0xfe, 0x6a, 0x1a, 0x58, 0xf6, 0xbd, 0x84, 0x94, 0xc5, 0xda, 0xdc, 0x61, 0x36, 0x71, 0xc3, 0x54, + 0x62, 0x7a, 0x40, 0x39, 0xf5, 0x6c, 0x6a, 0x2d, 0xca, 0x2a, 0xc7, 0x1a, 0x02, 0xc7, 0x60, 0xb2, + 0x8b, 0x16, 0xb5, 0x23, 0x9b, 0x2e, 0x39, 0x95, 0x03, 0xdd, 0x19, 0x38, 0xd0, 0x37, 0x27, 0x26, + 0x48, 0xf9, 0x35, 0xee, 0x54, 0xcd, 0x9f, 0x0d, 0x58, 0x49, 0x0b, 0xee, 0x38, 0x81, 0x40, 0x9f, + 0x8e, 0x04, 0x51, 0x99, 0x2e, 0x08, 0xa9, 0xad, 0x42, 0x58, 0xd1, 0xa6, 0xf2, 0x11, 0x25, 0x15, + 0xc0, 0x5d, 0xc8, 0x3a, 0x82, 0x76, 0x02, 0xd5, 0x22, 0x85, 0x8d, 0x4b, 0xd3, 0x45, 0x90, 0x74, + 0xe7, 0xb6, 0x54, 0xc6, 0x21, 0x86, 0xf9, 0xa7, 0x01, 0xe5, 0xb4, 0x58, 0x8d, 0x70, 0xd2, 0xa1, + 0x82, 0xf2, 0x20, 0x3e, 0x3c, 0xb4, 0x06, 0x79, 0x52, 0xdb, 0xde, 0xe2, 0xac, 0xeb, 0x47, 0xad, + 0x2b, 0x5d, 0xbb, 0xa1, 0x69, 0x38, 0xe6, 0xca, 0x06, 0x6f, 0x3b, 0x7a, 0x4a, 0xa5, 0x1a, 0xfc, + 0xae, 0xe3, 0x35, 0xb1, 0xe2, 0x48, 0x09, 0x8f, 0x74, 0xa2, 0xe1, 0x17, 0x4b, 0xec, 0x92, 0x0e, + 0xc5, 0x8a, 0x83, 0xca, 0x90, 0x0d, 0x6c, 0xe6, 0x87, 0x15, 0xbc, 0x60, 0x2d, 0x48, 0x97, 0xeb, + 0x92, 0x80, 0x43, 0x3a, 0xba, 0x02, 0x0b, 0x52, 0x30, 0xf0, 0x89, 0x4d, 0x8b, 0x59, 0x25, 0xb4, + 0xd4, 0xef, 0x95, 0x17, 0x76, 0x23, 0x22, 0x4e, 0xf8, 0xe6, 0xf7, 0x43, 0xe7, 0x23, 0x8f, 0x0e, + 0x6d, 0x00, 0xd8, 0xcc, 0x13, 0x9c, 0xb9, 0x2e, 0x8d, 0xa6, 0x51, 0x5c, 0x34, 0x9b, 0x31, 0x07, + 0xa7, 0xa4, 0x90, 0x03, 0xe0, 0xc7, 0xb9, 0xd1, 0xc5, 0xf3, 0xde, 0x74, 0xa9, 0x3f, 0x21, 0xa7, + 0xd6, 0xb2, 0x34, 0x95, 0x62, 0xa4, 0xc0, 0xcd, 0x1f, 0x0c, 0x28, 0x68, 0xfd, 0x53, 0x28, 0xa7, + 0xdb, 0x83, 0xe5, 0xf4, 0xda, 0xe4, 0xd5, 0x72, 0x72, 0x25, 0x7d, 0x97, 0x78, 0x2d, 0x97, 0x89, + 0x3c, 0xe9, 0x43, 0x16, 0x88, 0xe1, 0x61, 0x7f, 0x87, 0x05, 0x02, 0x2b, 0x0e, 0xf2, 0x61, 0xc5, + 0x19, 0xda, 0x3e, 0x53, 0x77, 0x65, 0xac, 0x61, 0x15, 0x35, 0xf2, 0xca, 0x30, 0x07, 0x8f, 0xa0, + 0x9b, 0x0f, 0x60, 0x44, 0x4a, 0xce, 0x83, 0x43, 0x21, 0xfc, 0x13, 0x32, 0x3b, 0x7e, 0xdd, 0x25, + 0xd6, 0xf3, 0x2a, 0xa6, 0x46, 0xa3, 0x86, 0x15, 0x8a, 0xf9, 0x8d, 0x01, 0xe7, 0x4f, 0x9c, 0xac, + 0x71, 0xe5, 0x1b, 0x63, 0x2b, 0x7f, 0x17, 0xe6, 0x7c, 0xc6, 0x85, 0xce, 0xc1, 0x5b, 0xe3, 0x3d, + 0x19, 0x44, 0xae, 0x31, 0x2e, 0x52, 0x97, 0x0d, 0xc6, 0x05, 0x56, 0x38, 0xe6, 0xef, 0x99, 0xf8, + 0x44, 0x54, 0xd9, 0x7f, 0x10, 0xe7, 0x5b, 0x95, 0xa5, 0xb4, 0xac, 0x9b, 0xec, 0x5c, 0x2a, 0x7f, + 0x31, 0x0f, 0x8f, 0x48, 0xa3, 0x26, 0x2c, 0x37, 0xe9, 0x01, 0xe9, 0xba, 0x42, 0xdb, 0xd6, 0x59, + 0x9b, 0xfe, 0x3e, 0x82, 0xfa, 0xbd, 0xf2, 0xf2, 0xcd, 0x01, 0x0c, 0x3c, 0x84, 0x89, 0x36, 0x61, + 0x56, 0xb8, 0x51, 0x3d, 0xbe, 0x3e, 0x11, 0xba, 0xb1, 0x53, 0xb7, 0x0a, 0x3a, 0xfc, 0xd9, 0xc6, + 0x4e, 0x1d, 0x4b, 0x6d, 0xf4, 0x21, 0x64, 0x79, 0xd7, 0xa5, 0x72, 0xdb, 0xce, 0x4e, 0xb5, 0xb8, + 0xe5, 0x99, 0x26, 0xa5, 0x2d, 0xbf, 0x02, 0x1c, 0x42, 0x98, 0x5f, 0xc0, 0xd2, 0xc0, 0x4a, 0x46, + 0x0f, 0x60, 0xd1, 0x65, 0xa4, 0x69, 0x11, 0x97, 0x78, 0xb6, 0x1e, 0x21, 0x43, 0x93, 0x38, 0xda, + 0x89, 0x3b, 0x29, 0x39, 0xbd, 0xd0, 0xcf, 0x69, 0x23, 0x8b, 0x69, 0x1e, 0x1e, 0x40, 0x34, 0x09, + 0x40, 0x12, 0x9e, 0x9c, 0x89, 0xb2, 0x63, 0xc2, 0x3b, 0x99, 0x9e, 0x89, 0xb2, 0x91, 0x02, 0x1c, + 0xd2, 0xe5, 0x44, 0x0b, 0xa8, 0xcd, 0xa9, 0x50, 0x87, 0x9a, 0x19, 0x9c, 0x68, 0xf5, 0x98, 0x83, + 0x53, 0x52, 0xe6, 0xaf, 0x06, 0x2c, 0xed, 0x86, 0x99, 0xa8, 0x31, 0xd7, 0xb1, 0x1f, 0x9f, 0xc2, + 0xf2, 0xbd, 0x37, 0xb0, 0x7c, 0xaf, 0x8c, 0x3f, 0x94, 0x01, 0xc7, 0xc6, 0x6e, 0xdf, 0x1f, 0x0d, + 0xf8, 0xef, 0x80, 0xe4, 0xad, 0x64, 0xfe, 0xd4, 0x20, 0x2b, 0xbb, 0x20, 0xba, 0xc7, 0x4e, 0x6b, + 0x4b, 0x75, 0x53, 0x72, 0x93, 0x95, 0x08, 0x38, 0x04, 0x42, 0x5b, 0x90, 0x11, 0x4c, 0x97, 0xe5, + 0xd4, 0x70, 0x94, 0x72, 0x0b, 0x34, 0x5c, 0xa6, 0xc1, 0x70, 0x46, 0x30, 0xf3, 0x27, 0x03, 0x8a, + 0x03, 0x52, 0xe9, 0xb9, 0xf9, 0xea, 0xfd, 0xbe, 0x07, 0x73, 0x07, 0x9c, 0x75, 0x5e, 0xc6, 0xf3, + 0x38, 0xe9, 0xb7, 0x39, 0xeb, 0x60, 0x05, 0x63, 0x3e, 0x31, 0xe0, 0xec, 0x80, 0xe4, 0x29, 0x2c, + 0xa9, 0x9d, 0xc1, 0x25, 0x75, 0x79, 0xca, 0x18, 0xc6, 0xac, 0xaa, 0x27, 0x99, 0xa1, 0x08, 0x64, + 0xac, 0xe8, 0x00, 0x0a, 0x3e, 0x6b, 0xd6, 0xa9, 0x4b, 0x6d, 0xc1, 0xa2, 0x9e, 0xbe, 0x36, 0x65, + 0x10, 0x64, 0x9f, 0xba, 0x91, 0xaa, 0x75, 0xa6, 0xdf, 0x2b, 0x17, 0x6a, 0x09, 0x16, 0x4e, 0x03, + 0xa3, 0x47, 0x70, 0x36, 0xbe, 0x9f, 0xc4, 0xd6, 0x32, 0x2f, 0x6f, 0xed, 0x7c, 0xbf, 0x57, 0x3e, + 0xbb, 0x3b, 0x8c, 0x88, 0x47, 0x8d, 0xa0, 0x3b, 0x90, 0x73, 0x7c, 0xf5, 0x14, 0xd3, 0xb7, 0xf8, + 0x7f, 0x5b, 0xf6, 0xe1, 0x9b, 0x2d, 0x7c, 0x10, 0xe8, 0x0f, 0x1c, 0xa9, 0x9b, 0x7f, 0x0c, 0xd7, + 0x80, 0x2c, 0x38, 0xb4, 0x05, 0x79, 0xf5, 0x38, 0xb6, 0x99, 0xab, 0xd7, 0xdc, 0x15, 0xf5, 0xba, + 0xd5, 0xb4, 0xe3, 0x5e, 0xf9, 0x7f, 0xa3, 0xff, 0x2d, 0xa8, 0x44, 0x6c, 0x1c, 0x2b, 0x0f, 0x6d, + 0xc2, 0xf1, 0x43, 0x48, 0x3e, 0xd0, 0x2b, 0xe1, 0x03, 0xbd, 0xb2, 0xed, 0x89, 0x3d, 0x5e, 0x17, + 0xdc, 0xf1, 0x5a, 0xe1, 0x56, 0x4e, 0x36, 0x21, 0xba, 0x08, 0x39, 0xbd, 0x28, 0x55, 0xe0, 0xd9, + 0x30, 0xaa, 0x5b, 0x21, 0x09, 0x47, 0x3c, 0xf3, 0x78, 0xb8, 0x2e, 0xd4, 0xda, 0x7c, 0xf8, 0xca, + 0xea, 0xe2, 0x3f, 0xba, 0x1a, 0xc7, 0xd7, 0xc6, 0x67, 0x90, 0xd3, 0x4b, 0x57, 0x57, 0xfa, 0xc6, + 0x94, 0x95, 0x9e, 0x5e, 0x62, 0xf1, 0x9b, 0x3f, 0x22, 0x46, 0x98, 0xe8, 0x63, 0x98, 0xa7, 0x21, + 0x7a, 0xb8, 0x15, 0xd7, 0xa7, 0x44, 0x4f, 0xc6, 0x6a, 0xf2, 0x1a, 0xd5, 0x34, 0x0d, 0x88, 0xde, + 0x97, 0x59, 0x92, 0xb2, 0xf2, 0x11, 0x18, 0x14, 0xe7, 0xd4, 0xa2, 0xfa, 0x7f, 0x18, 0x6c, 0x4c, + 0x3e, 0x96, 0x97, 0xde, 0xf8, 0x13, 0xa7, 0x35, 0xcc, 0xcf, 0x01, 0x8d, 0xde, 0x6b, 0xa6, 0xb8, + 0x35, 0x5d, 0x82, 0x79, 0xaf, 0xdb, 0xd9, 0xa7, 0x61, 0x0f, 0x65, 0x13, 0x07, 0x77, 0x15, 0x15, + 0x6b, 0xae, 0xb5, 0xf6, 0xf4, 0x45, 0x69, 0xe6, 0xd9, 0x8b, 0xd2, 0xcc, 0xf3, 0x17, 0xa5, 0x99, + 0xaf, 0xfa, 0x25, 0xe3, 0x69, 0xbf, 0x64, 0x3c, 0xeb, 0x97, 0x8c, 0xe7, 0xfd, 0x92, 0xf1, 0x57, + 0xbf, 0x64, 0x7c, 0xfb, 0x77, 0x69, 0xe6, 0x93, 0xcc, 0xd1, 0xfa, 0x3f, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xe9, 0x15, 0xcc, 0xab, 0x5f, 0x13, 0x00, 0x00, } func (m *HTTPIngressPath) Marshal() (dAtA []byte, err error) { @@ -1126,6 +1161,60 @@ func (m *IngressClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *IngressClassParametersReference) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IngressClassParametersReference) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IngressClassParametersReference) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Namespace != nil { + i -= len(*m.Namespace) + copy(dAtA[i:], *m.Namespace) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Namespace))) + i-- + dAtA[i] = 0x2a + } + if m.Scope != nil { + i -= len(*m.Scope) + copy(dAtA[i:], *m.Scope) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Scope))) + i-- + dAtA[i] = 0x22 + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x1a + i -= len(m.Kind) + copy(dAtA[i:], m.Kind) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) + i-- + dAtA[i] = 0x12 + if m.APIGroup != nil { + i -= len(*m.APIGroup) + copy(dAtA[i:], *m.APIGroup) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.APIGroup))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *IngressClassSpec) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1735,6 +1824,11 @@ func (m *NetworkPolicyPort) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.EndPort != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.EndPort)) + i-- + dAtA[i] = 0x18 + } if m.Port != nil { { size, err := m.Port.MarshalToSizedBuffer(dAtA[:i]) @@ -1980,6 +2074,31 @@ func (m *IngressClassList) Size() (n int) { return n } +func (m *IngressClassParametersReference) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.APIGroup != nil { + l = len(*m.APIGroup) + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Kind) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Scope != nil { + l = len(*m.Scope) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Namespace != nil { + l = len(*m.Namespace) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *IngressClassSpec) Size() (n int) { if m == nil { return 0 @@ -2215,6 +2334,9 @@ func (m *NetworkPolicyPort) Size() (n int) { l = m.Port.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.EndPort != nil { + n += 1 + sovGenerated(uint64(*m.EndPort)) + } return n } @@ -2353,13 +2475,27 @@ func (this *IngressClassList) String() string { }, "") return s } +func (this *IngressClassParametersReference) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&IngressClassParametersReference{`, + `APIGroup:` + valueToStringGenerated(this.APIGroup) + `,`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Scope:` + valueToStringGenerated(this.Scope) + `,`, + `Namespace:` + valueToStringGenerated(this.Namespace) + `,`, + `}`, + }, "") + return s +} func (this *IngressClassSpec) String() string { if this == nil { return "nil" } s := strings.Join([]string{`&IngressClassSpec{`, `Controller:` + fmt.Sprintf("%v", this.Controller) + `,`, - `Parameters:` + strings.Replace(fmt.Sprintf("%v", this.Parameters), "TypedLocalObjectReference", "v11.TypedLocalObjectReference", 1) + `,`, + `Parameters:` + strings.Replace(this.Parameters.String(), "IngressClassParametersReference", "IngressClassParametersReference", 1) + `,`, `}`, }, "") return s @@ -2544,6 +2680,7 @@ func (this *NetworkPolicyPort) String() string { s := strings.Join([]string{`&NetworkPolicyPort{`, `Protocol:` + valueToStringGenerated(this.Protocol) + `,`, `Port:` + strings.Replace(fmt.Sprintf("%v", this.Port), "IntOrString", "intstr.IntOrString", 1) + `,`, + `EndPort:` + valueToStringGenerated(this.EndPort) + `,`, `}`, }, "") return s @@ -2723,10 +2860,7 @@ func (m *HTTPIngressPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2810,10 +2944,7 @@ func (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2927,10 +3058,7 @@ func (m *IPBlock) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3079,10 +3207,7 @@ func (m *Ingress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3204,10 +3329,7 @@ func (m *IngressBackend) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3323,10 +3445,7 @@ func (m *IngressClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3443,10 +3562,220 @@ func (m *IngressClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IngressClassParametersReference) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IngressClassParametersReference: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IngressClassParametersReference: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIGroup", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) < 0 { + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.APIGroup = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Scope", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Scope = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Namespace = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3552,7 +3881,7 @@ func (m *IngressClassSpec) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Parameters == nil { - m.Parameters = &v11.TypedLocalObjectReference{} + m.Parameters = &IngressClassParametersReference{} } if err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -3564,10 +3893,7 @@ func (m *IngressClassSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3684,10 +4010,7 @@ func (m *IngressList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3802,10 +4125,7 @@ func (m *IngressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3891,10 +4211,7 @@ func (m *IngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4009,10 +4326,7 @@ func (m *IngressServiceBackend) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4199,10 +4513,7 @@ func (m *IngressSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4285,10 +4596,7 @@ func (m *IngressStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4402,10 +4710,7 @@ func (m *IngressTLS) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4521,10 +4826,7 @@ func (m *NetworkPolicy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4642,10 +4944,7 @@ func (m *NetworkPolicyEgressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4763,10 +5062,7 @@ func (m *NetworkPolicyIngressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4883,10 +5179,7 @@ func (m *NetworkPolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5044,10 +5337,7 @@ func (m *NetworkPolicyPeer) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5160,16 +5450,33 @@ func (m *NetworkPolicyPort) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EndPort", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.EndPort = &v default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5352,10 +5659,7 @@ func (m *NetworkPolicySpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5456,10 +5760,7 @@ func (m *ServiceBackendPort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/networking/v1/generated.proto b/vendor/k8s.io/api/networking/v1/generated.proto index 74737098b9..8f23477d8f 100644 --- a/vendor/k8s.io/api/networking/v1/generated.proto +++ b/vendor/k8s.io/api/networking/v1/generated.proto @@ -150,6 +150,36 @@ message IngressClassList { repeated IngressClass items = 2; } +// IngressClassParametersReference identifies an API object. This can be used +// to specify a cluster or namespace-scoped resource. +message IngressClassParametersReference { + // 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. + // +optional + optional string aPIGroup = 1; + + // Kind is the type of resource being referenced. + optional string kind = 2; + + // Name is the name of resource being referenced. + optional string name = 3; + + // Scope represents if this refers to a cluster or namespace scoped resource. + // This may be set to "Cluster" (default) or "Namespace". + // Field can be enabled with IngressClassNamespacedParams feature gate. + // +optional + // +featureGate=IngressClassNamespacedParams + optional string scope = 4; + + // Namespace is the namespace of the resource being referenced. This field is + // required when scope is set to "Namespace" and must be unset when scope is set to + // "Cluster". + // +optional + // +featureGate=IngressClassNamespacedParams + optional string namespace = 5; +} + // IngressClassSpec provides information about the class of an Ingress. message IngressClassSpec { // Controller refers to the name of the controller that should handle this @@ -164,7 +194,7 @@ message IngressClassSpec { // configuration for the controller. This is optional if the controller does // not require extra parameters. // +optional - optional k8s.io.api.core.v1.TypedLocalObjectReference parameters = 2; + optional IngressClassParametersReference parameters = 2; } // IngressList is a collection of Ingress. @@ -398,10 +428,21 @@ message NetworkPolicyPort { // +optional optional string protocol = 1; - // 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. + // 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. // +optional optional k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2; + + // If set, indicates that the range of ports from port to endPort, 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. + // This feature is in Alpha state and should be enabled using the Feature Gate + // "NetworkPolicyEndPort". + // +optional + optional int32 endPort = 3; } // NetworkPolicySpec provides the specification of a NetworkPolicy @@ -435,7 +476,7 @@ message NetworkPolicySpec { repeated NetworkPolicyEgressRule egress = 3; // List of rule types that the NetworkPolicy relates to. - // Valid options are "Ingress", "Egress", or "Ingress,Egress". + // Valid options are ["Ingress"], ["Egress"], or ["Ingress", "Egress"]. // If this field is not specified, it will default based on the existence of Ingress or Egress rules; // policies that contain an Egress section are assumed to affect Egress, and all policies // (whether or not they contain an Ingress section) are assumed to affect Ingress. diff --git a/vendor/k8s.io/api/networking/v1/types.go b/vendor/k8s.io/api/networking/v1/types.go index df2569089c..6cc210b894 100644 --- a/vendor/k8s.io/api/networking/v1/types.go +++ b/vendor/k8s.io/api/networking/v1/types.go @@ -17,7 +17,7 @@ limitations under the License. package v1 import ( - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" ) @@ -38,7 +38,7 @@ type NetworkPolicy struct { Spec NetworkPolicySpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` } -// Policy Type string describes the NetworkPolicy type +// PolicyType string describes the NetworkPolicy type // This type is beta-level in 1.8 type PolicyType string @@ -80,7 +80,7 @@ type NetworkPolicySpec struct { Egress []NetworkPolicyEgressRule `json:"egress,omitempty" protobuf:"bytes,3,rep,name=egress"` // List of rule types that the NetworkPolicy relates to. - // Valid options are "Ingress", "Egress", or "Ingress,Egress". + // Valid options are ["Ingress"], ["Egress"], or ["Ingress", "Egress"]. // If this field is not specified, it will default based on the existence of Ingress or Egress rules; // policies that contain an Egress section are assumed to affect Egress, and all policies // (whether or not they contain an Ingress section) are assumed to affect Ingress. @@ -141,10 +141,21 @@ type NetworkPolicyPort struct { // +optional Protocol *v1.Protocol `json:"protocol,omitempty" protobuf:"bytes,1,opt,name=protocol,casttype=k8s.io/api/core/v1.Protocol"` - // 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. + // 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. // +optional Port *intstr.IntOrString `json:"port,omitempty" protobuf:"bytes,2,opt,name=port"` + + // If set, indicates that the range of ports from port to endPort, 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. + // This feature is in Alpha state and should be enabled using the Feature Gate + // "NetworkPolicyEndPort". + // +optional + EndPort *int32 `json:"endPort,omitempty" protobuf:"bytes,3,opt,name=endPort"` } // IPBlock describes a particular CIDR (Ex. "192.168.1.1/24","2001:db9::/64") that is allowed @@ -497,7 +508,42 @@ type IngressClassSpec struct { // configuration for the controller. This is optional if the controller does // not require extra parameters. // +optional - Parameters *v1.TypedLocalObjectReference `json:"parameters,omitempty" protobuf:"bytes,2,opt,name=parameters"` + Parameters *IngressClassParametersReference `json:"parameters,omitempty" protobuf:"bytes,2,opt,name=parameters"` +} + +const ( + // IngressClassParametersReferenceScopeNamespace indicates that the + // referenced Parameters resource is namespace-scoped. + IngressClassParametersReferenceScopeNamespace = "Namespace" + // IngressClassParametersReferenceScopeNamespace indicates that the + // referenced Parameters resource is cluster-scoped. + IngressClassParametersReferenceScopeCluster = "Cluster" +) + +// IngressClassParametersReference identifies an API object. This can be used +// to specify a cluster or namespace-scoped resource. +type IngressClassParametersReference struct { + // 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. + // +optional + APIGroup *string `json:"apiGroup,omitempty" protobuf:"bytes,1,opt,name=aPIGroup"` + // Kind is the type of resource being referenced. + Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"` + // Name is the name of resource being referenced. + Name string `json:"name" protobuf:"bytes,3,opt,name=name"` + // Scope represents if this refers to a cluster or namespace scoped resource. + // This may be set to "Cluster" (default) or "Namespace". + // Field can be enabled with IngressClassNamespacedParams feature gate. + // +optional + // +featureGate=IngressClassNamespacedParams + Scope *string `json:"scope" protobuf:"bytes,4,opt,name=scope"` + // Namespace is the namespace of the resource being referenced. This field is + // required when scope is set to "Namespace" and must be unset when scope is set to + // "Cluster". + // +optional + // +featureGate=IngressClassNamespacedParams + Namespace *string `json:"namespace,omitempty" protobuf:"bytes,5,opt,name=namespace"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/vendor/k8s.io/api/networking/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/networking/v1/types_swagger_doc_generated.go index 41b9b3fb6b..88f9a8f130 100644 --- a/vendor/k8s.io/api/networking/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/networking/v1/types_swagger_doc_generated.go @@ -98,6 +98,19 @@ func (IngressClassList) SwaggerDoc() map[string]string { return map_IngressClassList } +var map_IngressClassParametersReference = map[string]string{ + "": "IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.", + "apiGroup": "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.", + "kind": "Kind is the type of resource being referenced.", + "name": "Name is the name of resource being referenced.", + "scope": "Scope represents if this refers to a cluster or namespace scoped resource. This may be set to \"Cluster\" (default) or \"Namespace\". Field can be enabled with IngressClassNamespacedParams feature gate.", + "namespace": "Namespace is the namespace of the resource being referenced. This field is required when scope is set to \"Namespace\" and must be unset when scope is set to \"Cluster\".", +} + +func (IngressClassParametersReference) SwaggerDoc() map[string]string { + return map_IngressClassParametersReference +} + var map_IngressClassSpec = map[string]string{ "": "IngressClassSpec provides information about the class of an Ingress.", "controller": "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", @@ -230,7 +243,8 @@ func (NetworkPolicyPeer) SwaggerDoc() map[string]string { var map_NetworkPolicyPort = map[string]string{ "": "NetworkPolicyPort describes a port to allow traffic on", "protocol": "The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", - "port": "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.", + "port": "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.", + "endPort": "If set, indicates that the range of ports from port to endPort, 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. This feature is in Alpha state and should be enabled using the Feature Gate \"NetworkPolicyEndPort\".", } func (NetworkPolicyPort) SwaggerDoc() map[string]string { @@ -242,7 +256,7 @@ var map_NetworkPolicySpec = map[string]string{ "podSelector": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.", "ingress": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", "egress": "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", - "policyTypes": "List of rule types that the NetworkPolicy relates to. Valid options are \"Ingress\", \"Egress\", or \"Ingress,Egress\". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", + "policyTypes": "List of rule types that the NetworkPolicy relates to. Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"]. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", } func (NetworkPolicySpec) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/networking/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/networking/v1/zz_generated.deepcopy.go index b17e789277..76e339aed9 100644 --- a/vendor/k8s.io/api/networking/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/networking/v1/zz_generated.deepcopy.go @@ -207,12 +207,43 @@ func (in *IngressClassList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IngressClassParametersReference) DeepCopyInto(out *IngressClassParametersReference) { + *out = *in + if in.APIGroup != nil { + in, out := &in.APIGroup, &out.APIGroup + *out = new(string) + **out = **in + } + if in.Scope != nil { + in, out := &in.Scope, &out.Scope + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassParametersReference. +func (in *IngressClassParametersReference) DeepCopy() *IngressClassParametersReference { + if in == nil { + return nil + } + out := new(IngressClassParametersReference) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *IngressClassSpec) DeepCopyInto(out *IngressClassSpec) { *out = *in if in.Parameters != nil { in, out := &in.Parameters, &out.Parameters - *out = new(corev1.TypedLocalObjectReference) + *out = new(IngressClassParametersReference) (*in).DeepCopyInto(*out) } return @@ -558,6 +589,11 @@ func (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) { *out = new(intstr.IntOrString) **out = **in } + if in.EndPort != nil { + in, out := &in.EndPort, &out.EndPort + *out = new(int32) + **out = **in + } return } diff --git a/vendor/k8s.io/api/networking/v1beta1/generated.pb.go b/vendor/k8s.io/api/networking/v1beta1/generated.pb.go index 6f51df864b..cda1151472 100644 --- a/vendor/k8s.io/api/networking/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/networking/v1beta1/generated.pb.go @@ -212,10 +212,38 @@ func (m *IngressClassList) XXX_DiscardUnknown() { var xxx_messageInfo_IngressClassList proto.InternalMessageInfo +func (m *IngressClassParametersReference) Reset() { *m = IngressClassParametersReference{} } +func (*IngressClassParametersReference) ProtoMessage() {} +func (*IngressClassParametersReference) Descriptor() ([]byte, []int) { + return fileDescriptor_5bea11de0ceb8f53, []int{6} +} +func (m *IngressClassParametersReference) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IngressClassParametersReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *IngressClassParametersReference) XXX_Merge(src proto.Message) { + xxx_messageInfo_IngressClassParametersReference.Merge(m, src) +} +func (m *IngressClassParametersReference) XXX_Size() int { + return m.Size() +} +func (m *IngressClassParametersReference) XXX_DiscardUnknown() { + xxx_messageInfo_IngressClassParametersReference.DiscardUnknown(m) +} + +var xxx_messageInfo_IngressClassParametersReference proto.InternalMessageInfo + func (m *IngressClassSpec) Reset() { *m = IngressClassSpec{} } func (*IngressClassSpec) ProtoMessage() {} func (*IngressClassSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_5bea11de0ceb8f53, []int{6} + return fileDescriptor_5bea11de0ceb8f53, []int{7} } func (m *IngressClassSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -243,7 +271,7 @@ var xxx_messageInfo_IngressClassSpec proto.InternalMessageInfo func (m *IngressList) Reset() { *m = IngressList{} } func (*IngressList) ProtoMessage() {} func (*IngressList) Descriptor() ([]byte, []int) { - return fileDescriptor_5bea11de0ceb8f53, []int{7} + return fileDescriptor_5bea11de0ceb8f53, []int{8} } func (m *IngressList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -271,7 +299,7 @@ var xxx_messageInfo_IngressList proto.InternalMessageInfo func (m *IngressRule) Reset() { *m = IngressRule{} } func (*IngressRule) ProtoMessage() {} func (*IngressRule) Descriptor() ([]byte, []int) { - return fileDescriptor_5bea11de0ceb8f53, []int{8} + return fileDescriptor_5bea11de0ceb8f53, []int{9} } func (m *IngressRule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -299,7 +327,7 @@ var xxx_messageInfo_IngressRule proto.InternalMessageInfo func (m *IngressRuleValue) Reset() { *m = IngressRuleValue{} } func (*IngressRuleValue) ProtoMessage() {} func (*IngressRuleValue) Descriptor() ([]byte, []int) { - return fileDescriptor_5bea11de0ceb8f53, []int{9} + return fileDescriptor_5bea11de0ceb8f53, []int{10} } func (m *IngressRuleValue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -327,7 +355,7 @@ var xxx_messageInfo_IngressRuleValue proto.InternalMessageInfo func (m *IngressSpec) Reset() { *m = IngressSpec{} } func (*IngressSpec) ProtoMessage() {} func (*IngressSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_5bea11de0ceb8f53, []int{10} + return fileDescriptor_5bea11de0ceb8f53, []int{11} } func (m *IngressSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -355,7 +383,7 @@ var xxx_messageInfo_IngressSpec proto.InternalMessageInfo func (m *IngressStatus) Reset() { *m = IngressStatus{} } func (*IngressStatus) ProtoMessage() {} func (*IngressStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_5bea11de0ceb8f53, []int{11} + return fileDescriptor_5bea11de0ceb8f53, []int{12} } func (m *IngressStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -383,7 +411,7 @@ var xxx_messageInfo_IngressStatus proto.InternalMessageInfo func (m *IngressTLS) Reset() { *m = IngressTLS{} } func (*IngressTLS) ProtoMessage() {} func (*IngressTLS) Descriptor() ([]byte, []int) { - return fileDescriptor_5bea11de0ceb8f53, []int{12} + return fileDescriptor_5bea11de0ceb8f53, []int{13} } func (m *IngressTLS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -415,6 +443,7 @@ func init() { proto.RegisterType((*IngressBackend)(nil), "k8s.io.api.networking.v1beta1.IngressBackend") proto.RegisterType((*IngressClass)(nil), "k8s.io.api.networking.v1beta1.IngressClass") proto.RegisterType((*IngressClassList)(nil), "k8s.io.api.networking.v1beta1.IngressClassList") + proto.RegisterType((*IngressClassParametersReference)(nil), "k8s.io.api.networking.v1beta1.IngressClassParametersReference") proto.RegisterType((*IngressClassSpec)(nil), "k8s.io.api.networking.v1beta1.IngressClassSpec") proto.RegisterType((*IngressList)(nil), "k8s.io.api.networking.v1beta1.IngressList") proto.RegisterType((*IngressRule)(nil), "k8s.io.api.networking.v1beta1.IngressRule") @@ -429,69 +458,75 @@ func init() { } var fileDescriptor_5bea11de0ceb8f53 = []byte{ - // 990 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4f, 0x6f, 0xe3, 0x44, - 0x14, 0xaf, 0x93, 0x66, 0x9b, 0x4e, 0xb2, 0xdd, 0x6a, 0xe8, 0x21, 0xaa, 0x84, 0x5b, 0xf9, 0x80, - 0xca, 0x9f, 0xda, 0x34, 0xbb, 0x20, 0x8e, 0xc8, 0x2b, 0xa1, 0x56, 0x04, 0x1a, 0x26, 0x16, 0x20, - 0x04, 0xd2, 0x4e, 0x9c, 0xb7, 0x8e, 0x89, 0x63, 0x9b, 0x99, 0x71, 0xd0, 0xde, 0xb8, 0x72, 0x82, - 0x2f, 0x01, 0x9f, 0x81, 0x23, 0x82, 0x4b, 0x8f, 0x7b, 0xdc, 0x53, 0x45, 0xc3, 0xb7, 0xe0, 0x84, - 0x66, 0x3c, 0xb5, 0x9d, 0xa4, 0xa5, 0x59, 0x0e, 0x7b, 0x8a, 0x67, 0xde, 0x7b, 0xbf, 0x37, 0xef, - 0xf7, 0x7e, 0x33, 0x2f, 0xe8, 0xa3, 0xc9, 0x07, 0xdc, 0x0e, 0x13, 0x67, 0x92, 0x0d, 0x81, 0xc5, - 0x20, 0x80, 0x3b, 0x33, 0x88, 0x47, 0x09, 0x73, 0xb4, 0x81, 0xa6, 0xa1, 0x13, 0x83, 0xf8, 0x3e, - 0x61, 0x93, 0x30, 0x0e, 0x9c, 0xd9, 0xc9, 0x10, 0x04, 0x3d, 0x71, 0x02, 0x88, 0x81, 0x51, 0x01, - 0x23, 0x3b, 0x65, 0x89, 0x48, 0xf0, 0xeb, 0xb9, 0xbb, 0x4d, 0xd3, 0xd0, 0x2e, 0xdd, 0x6d, 0xed, - 0xbe, 0x7f, 0x1c, 0x84, 0x62, 0x9c, 0x0d, 0x6d, 0x3f, 0x99, 0x3a, 0x41, 0x12, 0x24, 0x8e, 0x8a, - 0x1a, 0x66, 0x4f, 0xd5, 0x4a, 0x2d, 0xd4, 0x57, 0x8e, 0xb6, 0x6f, 0x55, 0x92, 0xfb, 0x09, 0x03, - 0x67, 0xb6, 0x92, 0x71, 0xff, 0x51, 0xe9, 0x33, 0xa5, 0xfe, 0x38, 0x8c, 0x81, 0x3d, 0x73, 0xd2, - 0x49, 0x20, 0x37, 0xb8, 0x33, 0x05, 0x41, 0x6f, 0x8a, 0x72, 0x6e, 0x8b, 0x62, 0x59, 0x2c, 0xc2, - 0x29, 0xac, 0x04, 0xbc, 0x7f, 0x57, 0x00, 0xf7, 0xc7, 0x30, 0xa5, 0x2b, 0x71, 0x0f, 0x6f, 0x8b, - 0xcb, 0x44, 0x18, 0x39, 0x61, 0x2c, 0xb8, 0x60, 0xcb, 0x41, 0xd6, 0x9f, 0x06, 0x7a, 0x70, 0xea, - 0x79, 0xfd, 0xb3, 0x38, 0x60, 0xc0, 0x79, 0x9f, 0x8a, 0x31, 0x3e, 0x44, 0x9b, 0x29, 0x15, 0xe3, - 0x8e, 0x71, 0x68, 0x1c, 0x6d, 0xbb, 0xed, 0x8b, 0xcb, 0x83, 0x8d, 0xf9, 0xe5, 0xc1, 0xa6, 0xb4, - 0x11, 0x65, 0xc1, 0x8f, 0x50, 0x53, 0xfe, 0x7a, 0xcf, 0x52, 0xe8, 0xd4, 0x95, 0x57, 0x67, 0x7e, - 0x79, 0xd0, 0xec, 0xeb, 0xbd, 0x7f, 0x2a, 0xdf, 0xa4, 0xf0, 0xc4, 0x5f, 0xa2, 0xad, 0x21, 0xf5, - 0x27, 0x10, 0x8f, 0x3a, 0xb5, 0x43, 0xe3, 0xa8, 0xd5, 0x3d, 0xb6, 0xff, 0xb3, 0x87, 0xb6, 0x3e, - 0x94, 0x9b, 0x07, 0xb9, 0x0f, 0xf4, 0x49, 0xb6, 0xf4, 0x06, 0xb9, 0x86, 0xb3, 0x26, 0x68, 0xaf, - 0x52, 0x04, 0xc9, 0x22, 0xf8, 0x9c, 0x46, 0x19, 0xe0, 0x01, 0x6a, 0xc8, 0xec, 0xbc, 0x63, 0x1c, - 0xd6, 0x8f, 0x5a, 0x5d, 0xfb, 0x8e, 0x7c, 0x4b, 0x44, 0xb8, 0xf7, 0x75, 0xc2, 0x86, 0x5c, 0x71, - 0x92, 0x63, 0x59, 0x3f, 0xd5, 0xd0, 0x96, 0xf6, 0xc2, 0x4f, 0x50, 0x53, 0xf6, 0x7d, 0x44, 0x05, - 0x55, 0x74, 0xb5, 0xba, 0xef, 0x56, 0x72, 0x14, 0x6d, 0xb0, 0xd3, 0x49, 0x20, 0x37, 0xb8, 0x2d, - 0xbd, 0xed, 0xd9, 0x89, 0x7d, 0x3e, 0xfc, 0x16, 0x7c, 0xf1, 0x09, 0x08, 0xea, 0x62, 0x9d, 0x05, - 0x95, 0x7b, 0xa4, 0x40, 0xc5, 0x3d, 0xb4, 0xc9, 0x53, 0xf0, 0x35, 0x63, 0x6f, 0xad, 0xc7, 0xd8, - 0x20, 0x05, 0xbf, 0x6c, 0x9c, 0x5c, 0x11, 0x85, 0x82, 0x3d, 0x74, 0x8f, 0x0b, 0x2a, 0x32, 0xae, - 0xda, 0xd6, 0xea, 0xbe, 0xb3, 0x26, 0x9e, 0x8a, 0x71, 0x77, 0x34, 0xe2, 0xbd, 0x7c, 0x4d, 0x34, - 0x96, 0xf5, 0x63, 0x0d, 0xed, 0x2c, 0xf6, 0x0a, 0xbf, 0x87, 0x5a, 0x1c, 0xd8, 0x2c, 0xf4, 0xe1, - 0x53, 0x3a, 0x05, 0x2d, 0xa5, 0xd7, 0x74, 0x7c, 0x6b, 0x50, 0x9a, 0x48, 0xd5, 0x0f, 0x07, 0x45, - 0x58, 0x3f, 0x61, 0x42, 0x17, 0x7d, 0x3b, 0xa5, 0x52, 0xd9, 0x76, 0xae, 0x6c, 0xfb, 0x2c, 0x16, - 0xe7, 0x6c, 0x20, 0x58, 0x18, 0x07, 0x2b, 0x89, 0x24, 0x18, 0xa9, 0x22, 0xe3, 0x2f, 0x50, 0x93, - 0x01, 0x4f, 0x32, 0xe6, 0x83, 0xa6, 0x62, 0x41, 0x8c, 0xf2, 0x09, 0x90, 0x6d, 0x92, 0xba, 0x1d, - 0xf5, 0x12, 0x9f, 0x46, 0x79, 0x73, 0x08, 0x3c, 0x05, 0x06, 0xb1, 0x0f, 0x6e, 0x5b, 0x0a, 0x9e, - 0x68, 0x08, 0x52, 0x80, 0xc9, 0x0b, 0xd5, 0xd6, 0x5c, 0x3c, 0x8e, 0xe8, 0x2b, 0x91, 0xc8, 0x67, - 0x0b, 0x12, 0x71, 0xd6, 0x6b, 0xa9, 0x3a, 0xdc, 0x6d, 0x3a, 0xb1, 0xfe, 0x30, 0xd0, 0x6e, 0xd5, - 0xb1, 0x17, 0x72, 0x81, 0xbf, 0x5e, 0xa9, 0xc4, 0x5e, 0xaf, 0x12, 0x19, 0xad, 0xea, 0xd8, 0xd5, - 0xa9, 0x9a, 0xd7, 0x3b, 0x95, 0x2a, 0xfa, 0xa8, 0x11, 0x0a, 0x98, 0xf2, 0x4e, 0x4d, 0xdd, 0xd5, - 0xb7, 0x5f, 0xa2, 0x8c, 0xf2, 0xa2, 0x9e, 0x49, 0x04, 0x92, 0x03, 0x59, 0xbf, 0x2c, 0x15, 0x21, - 0xeb, 0xc3, 0x5d, 0x84, 0xfc, 0x24, 0x16, 0x2c, 0x89, 0x22, 0x60, 0x5a, 0x97, 0x05, 0xbd, 0x8f, - 0x0b, 0x0b, 0xa9, 0x78, 0xe1, 0x6f, 0x10, 0x4a, 0x29, 0xa3, 0x53, 0x10, 0xc0, 0xf8, 0x4d, 0x6f, - 0xd7, 0xdd, 0x72, 0xd9, 0x91, 0xf0, 0xfd, 0x02, 0x84, 0x54, 0x00, 0xad, 0xdf, 0x0c, 0xd4, 0xd2, - 0xe7, 0x7c, 0x05, 0x3c, 0x7f, 0xbc, 0xc8, 0xf3, 0x1b, 0x6b, 0xbe, 0xc1, 0x37, 0x53, 0xfc, 0x6b, - 0x79, 0x74, 0xf9, 0xea, 0xca, 0xd1, 0x31, 0x4e, 0xb8, 0x58, 0x1e, 0x1d, 0xa7, 0x09, 0x17, 0x44, - 0x59, 0x70, 0x86, 0x76, 0xc3, 0xa5, 0x67, 0xfa, 0xe5, 0x84, 0x5b, 0x84, 0xb9, 0x1d, 0x0d, 0xbf, - 0xbb, 0x6c, 0x21, 0x2b, 0x29, 0x2c, 0x40, 0x2b, 0x5e, 0xf2, 0xde, 0x8c, 0x85, 0x48, 0x35, 0xc7, - 0x0f, 0xd7, 0x1f, 0x0e, 0xe5, 0x11, 0x9a, 0xaa, 0x3a, 0xcf, 0xeb, 0x13, 0x05, 0x65, 0xfd, 0x5e, - 0x2b, 0xf8, 0x50, 0x6a, 0xfb, 0xb0, 0xa8, 0x56, 0x29, 0x50, 0xbd, 0x85, 0x9b, 0x8a, 0x9b, 0xbd, - 0xca, 0xc1, 0x0b, 0x1b, 0x59, 0xf1, 0xc6, 0x5e, 0x39, 0x34, 0x8d, 0xff, 0x33, 0x34, 0x5b, 0x37, - 0x0d, 0x4c, 0x7c, 0x8a, 0xea, 0x22, 0xba, 0x96, 0xc0, 0x9b, 0xeb, 0x21, 0x7a, 0xbd, 0x81, 0xdb, - 0xd2, 0x94, 0xd7, 0xbd, 0xde, 0x80, 0x48, 0x08, 0x7c, 0x8e, 0x1a, 0x2c, 0x8b, 0x40, 0x0e, 0x94, - 0xfa, 0xfa, 0x03, 0x4a, 0x32, 0x58, 0x4a, 0x4a, 0xae, 0x38, 0xc9, 0x71, 0xac, 0xef, 0xd0, 0xfd, - 0x85, 0xa9, 0x83, 0x9f, 0xa0, 0x76, 0x94, 0xd0, 0x91, 0x4b, 0x23, 0x1a, 0xfb, 0xfa, 0xce, 0x2e, - 0xe9, 0xf6, 0xfa, 0xfe, 0xf5, 0x2a, 0x7e, 0x7a, 0x66, 0xed, 0xe9, 0x24, 0xed, 0xaa, 0x8d, 0x2c, - 0x20, 0x5a, 0x14, 0xa1, 0xb2, 0x46, 0x7c, 0x80, 0x1a, 0x52, 0xa9, 0xf9, 0x9f, 0x86, 0x6d, 0x77, - 0x5b, 0x9e, 0x50, 0x0a, 0x98, 0x93, 0x7c, 0x5f, 0x3e, 0x21, 0x1c, 0x7c, 0x06, 0x42, 0xb5, 0xb3, - 0xb6, 0xf8, 0x84, 0x0c, 0x0a, 0x0b, 0xa9, 0x78, 0xb9, 0xc7, 0x17, 0x57, 0xe6, 0xc6, 0xf3, 0x2b, - 0x73, 0xe3, 0xc5, 0x95, 0xb9, 0xf1, 0xc3, 0xdc, 0x34, 0x2e, 0xe6, 0xa6, 0xf1, 0x7c, 0x6e, 0x1a, - 0x2f, 0xe6, 0xa6, 0xf1, 0xd7, 0xdc, 0x34, 0x7e, 0xfe, 0xdb, 0xdc, 0xf8, 0x6a, 0x4b, 0xd3, 0xf4, - 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6e, 0x54, 0x4d, 0x9d, 0x25, 0x0b, 0x00, 0x00, + // 1085 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x41, 0x6f, 0xe3, 0x44, + 0x14, 0xae, 0x93, 0x66, 0x9b, 0x4e, 0xd2, 0x6e, 0x35, 0xf4, 0x10, 0x55, 0x22, 0xa9, 0x7c, 0x40, + 0x85, 0xa5, 0x36, 0xcd, 0x2e, 0x88, 0x13, 0x02, 0xaf, 0x04, 0xad, 0x36, 0x6c, 0xc3, 0x24, 0x02, + 0x84, 0x38, 0xec, 0xc4, 0x79, 0xeb, 0x98, 0x38, 0xb6, 0x99, 0x19, 0x07, 0xed, 0x8d, 0x2b, 0x27, + 0xf8, 0x15, 0xfc, 0x04, 0xc4, 0x11, 0xc1, 0xa5, 0xc7, 0x3d, 0xee, 0x85, 0x8a, 0x86, 0x7f, 0xc1, + 0x09, 0xcd, 0x78, 0x62, 0x3b, 0x49, 0xcb, 0xa6, 0x1c, 0xf6, 0x94, 0xcc, 0x7b, 0xdf, 0x7b, 0x6f, + 0xde, 0x7b, 0xdf, 0xbc, 0x67, 0xf4, 0xf1, 0xf8, 0x7d, 0x6e, 0xf9, 0x91, 0x3d, 0x4e, 0x06, 0xc0, + 0x42, 0x10, 0xc0, 0xed, 0x29, 0x84, 0xc3, 0x88, 0xd9, 0x5a, 0x41, 0x63, 0xdf, 0x0e, 0x41, 0x7c, + 0x17, 0xb1, 0xb1, 0x1f, 0x7a, 0xf6, 0xf4, 0x64, 0x00, 0x82, 0x9e, 0xd8, 0x1e, 0x84, 0xc0, 0xa8, + 0x80, 0xa1, 0x15, 0xb3, 0x48, 0x44, 0xf8, 0xf5, 0x14, 0x6e, 0xd1, 0xd8, 0xb7, 0x72, 0xb8, 0xa5, + 0xe1, 0x07, 0xc7, 0x9e, 0x2f, 0x46, 0xc9, 0xc0, 0x72, 0xa3, 0x89, 0xed, 0x45, 0x5e, 0x64, 0x2b, + 0xab, 0x41, 0xf2, 0x54, 0x9d, 0xd4, 0x41, 0xfd, 0x4b, 0xbd, 0x1d, 0x98, 0x85, 0xe0, 0x6e, 0xc4, + 0xc0, 0x9e, 0xae, 0x44, 0x3c, 0x78, 0x90, 0x63, 0x26, 0xd4, 0x1d, 0xf9, 0x21, 0xb0, 0x67, 0x76, + 0x3c, 0xf6, 0xa4, 0x80, 0xdb, 0x13, 0x10, 0xf4, 0x3a, 0x2b, 0xfb, 0x26, 0x2b, 0x96, 0x84, 0xc2, + 0x9f, 0xc0, 0x8a, 0xc1, 0x7b, 0x2f, 0x33, 0xe0, 0xee, 0x08, 0x26, 0x74, 0xc5, 0xee, 0xfe, 0x4d, + 0x76, 0x89, 0xf0, 0x03, 0xdb, 0x0f, 0x05, 0x17, 0x6c, 0xd9, 0xc8, 0xfc, 0xc3, 0x40, 0x77, 0x4f, + 0xfb, 0xfd, 0xee, 0x59, 0xe8, 0x31, 0xe0, 0xbc, 0x4b, 0xc5, 0x08, 0x1f, 0xa2, 0xcd, 0x98, 0x8a, + 0x51, 0xc3, 0x38, 0x34, 0x8e, 0xb6, 0x9d, 0xfa, 0xc5, 0x65, 0x6b, 0x63, 0x76, 0xd9, 0xda, 0x94, + 0x3a, 0xa2, 0x34, 0xf8, 0x01, 0xaa, 0xca, 0xdf, 0xfe, 0xb3, 0x18, 0x1a, 0x65, 0x85, 0x6a, 0xcc, + 0x2e, 0x5b, 0xd5, 0xae, 0x96, 0xfd, 0x53, 0xf8, 0x4f, 0x32, 0x24, 0xfe, 0x12, 0x6d, 0x0d, 0xa8, + 0x3b, 0x86, 0x70, 0xd8, 0x28, 0x1d, 0x1a, 0x47, 0xb5, 0xf6, 0xb1, 0xf5, 0x9f, 0x3d, 0xb4, 0xf4, + 0xa5, 0x9c, 0xd4, 0xc8, 0xb9, 0xab, 0x6f, 0xb2, 0xa5, 0x05, 0x64, 0xee, 0xce, 0x1c, 0xa3, 0xfd, + 0x42, 0x12, 0x24, 0x09, 0xe0, 0x73, 0x1a, 0x24, 0x80, 0x7b, 0xa8, 0x22, 0xa3, 0xf3, 0x86, 0x71, + 0x58, 0x3e, 0xaa, 0xb5, 0xad, 0x97, 0xc4, 0x5b, 0x2a, 0x84, 0xb3, 0xa3, 0x03, 0x56, 0xe4, 0x89, + 0x93, 0xd4, 0x97, 0xf9, 0x63, 0x09, 0x6d, 0x69, 0x14, 0x7e, 0x82, 0xaa, 0xb2, 0xef, 0x43, 0x2a, + 0xa8, 0x2a, 0x57, 0xad, 0xfd, 0x4e, 0x21, 0x46, 0xd6, 0x06, 0x2b, 0x1e, 0x7b, 0x52, 0xc0, 0x2d, + 0x89, 0xb6, 0xa6, 0x27, 0xd6, 0xf9, 0xe0, 0x1b, 0x70, 0xc5, 0xa7, 0x20, 0xa8, 0x83, 0x75, 0x14, + 0x94, 0xcb, 0x48, 0xe6, 0x15, 0x77, 0xd0, 0x26, 0x8f, 0xc1, 0xd5, 0x15, 0x7b, 0x6b, 0xbd, 0x8a, + 0xf5, 0x62, 0x70, 0xf3, 0xc6, 0xc9, 0x13, 0x51, 0x5e, 0x70, 0x1f, 0xdd, 0xe1, 0x82, 0x8a, 0x84, + 0xab, 0xb6, 0xd5, 0xda, 0x6f, 0xaf, 0xe9, 0x4f, 0xd9, 0x38, 0xbb, 0xda, 0xe3, 0x9d, 0xf4, 0x4c, + 0xb4, 0x2f, 0xf3, 0x87, 0x12, 0xda, 0x5d, 0xec, 0x15, 0x7e, 0x17, 0xd5, 0x38, 0xb0, 0xa9, 0xef, + 0xc2, 0x63, 0x3a, 0x01, 0x4d, 0xa5, 0xd7, 0xb4, 0x7d, 0xad, 0x97, 0xab, 0x48, 0x11, 0x87, 0xbd, + 0xcc, 0xac, 0x1b, 0x31, 0xa1, 0x93, 0xbe, 0xb9, 0xa4, 0x92, 0xd9, 0x56, 0xca, 0x6c, 0xeb, 0x2c, + 0x14, 0xe7, 0xac, 0x27, 0x98, 0x1f, 0x7a, 0x2b, 0x81, 0xa4, 0x33, 0x52, 0xf4, 0x8c, 0xbf, 0x40, + 0x55, 0x06, 0x3c, 0x4a, 0x98, 0x0b, 0xba, 0x14, 0x0b, 0x64, 0x94, 0x23, 0x40, 0xb6, 0x49, 0xf2, + 0x76, 0xd8, 0x89, 0x5c, 0x1a, 0xa4, 0xcd, 0x21, 0xf0, 0x14, 0x18, 0x84, 0x2e, 0x38, 0x75, 0x49, + 0x78, 0xa2, 0x5d, 0x90, 0xcc, 0x99, 0x7c, 0x50, 0x75, 0x5d, 0x8b, 0x87, 0x01, 0x7d, 0x25, 0x14, + 0xf9, 0x6c, 0x81, 0x22, 0xf6, 0x7a, 0x2d, 0x55, 0x97, 0xbb, 0x89, 0x27, 0xe6, 0xef, 0x06, 0xda, + 0x2b, 0x02, 0x3b, 0x3e, 0x17, 0xf8, 0xeb, 0x95, 0x4c, 0xac, 0xf5, 0x32, 0x91, 0xd6, 0x2a, 0x8f, + 0x3d, 0x1d, 0xaa, 0x3a, 0x97, 0x14, 0xb2, 0xe8, 0xa2, 0x8a, 0x2f, 0x60, 0xc2, 0x1b, 0x25, 0xf5, + 0x56, 0xef, 0xdd, 0x22, 0x8d, 0xfc, 0xa1, 0x9e, 0x49, 0x0f, 0x24, 0x75, 0x64, 0xfe, 0x69, 0xa0, + 0x56, 0x11, 0xd6, 0xa5, 0x8c, 0x4e, 0x40, 0x00, 0xe3, 0x59, 0x1b, 0xf1, 0x11, 0xaa, 0xd2, 0xee, + 0xd9, 0x27, 0x2c, 0x4a, 0xe2, 0xf9, 0xbc, 0x93, 0xf7, 0xfb, 0x48, 0xcb, 0x48, 0xa6, 0x95, 0x53, + 0x71, 0xec, 0xeb, 0xd1, 0x55, 0x98, 0x8a, 0x8f, 0xfc, 0x70, 0x48, 0x94, 0x46, 0x22, 0x42, 0x49, + 0xf6, 0xf2, 0x22, 0x42, 0xb1, 0x5c, 0x69, 0x70, 0x0b, 0x55, 0xb8, 0x1b, 0xc5, 0xd0, 0xd8, 0x54, + 0x90, 0x6d, 0x79, 0xe5, 0x9e, 0x14, 0x90, 0x54, 0x8e, 0xef, 0xa1, 0x6d, 0x09, 0xe4, 0x31, 0x75, + 0xa1, 0x51, 0x51, 0xa0, 0x9d, 0xd9, 0x65, 0x6b, 0xfb, 0xf1, 0x5c, 0x48, 0x72, 0xbd, 0xf9, 0xcb, + 0x52, 0x93, 0x64, 0xff, 0x70, 0x1b, 0x21, 0x37, 0x0a, 0x05, 0x8b, 0x82, 0x00, 0x98, 0x4e, 0x29, + 0xa3, 0xcf, 0xc3, 0x4c, 0x43, 0x0a, 0x28, 0x1c, 0x22, 0x14, 0x67, 0xb5, 0xd1, 0x34, 0xfa, 0xe0, + 0x16, 0xf5, 0xbf, 0xa6, 0xb0, 0xce, 0xae, 0x8c, 0x57, 0x50, 0x14, 0x22, 0x98, 0xbf, 0x1a, 0xa8, + 0xa6, 0xed, 0x5f, 0x01, 0xb1, 0x1e, 0x2d, 0x12, 0xeb, 0x8d, 0x35, 0x97, 0xce, 0xf5, 0x9c, 0xfa, + 0x39, 0xbf, 0xba, 0x5c, 0x33, 0xb2, 0xe7, 0xa3, 0x88, 0x8b, 0xe5, 0x5d, 0x79, 0x1a, 0x71, 0x41, + 0x94, 0x06, 0x27, 0x68, 0xcf, 0x5f, 0xda, 0x4b, 0xb7, 0x7b, 0xa9, 0x99, 0x99, 0xd3, 0xd0, 0xee, + 0xf7, 0x96, 0x35, 0x64, 0x25, 0x84, 0x09, 0x68, 0x05, 0x25, 0x07, 0xc5, 0x48, 0x88, 0x58, 0xd7, + 0xf8, 0xfe, 0xfa, 0xdb, 0x30, 0xbf, 0x42, 0x55, 0x65, 0xd7, 0xef, 0x77, 0x89, 0x72, 0x65, 0xfe, + 0x56, 0xca, 0xea, 0xa1, 0xe8, 0xf7, 0x61, 0x96, 0xad, 0x62, 0x86, 0x1a, 0xfe, 0x29, 0xd9, 0xf7, + 0x0b, 0x17, 0xcf, 0x74, 0x64, 0x05, 0x8d, 0xfb, 0xf9, 0x57, 0x82, 0xf1, 0x7f, 0xbe, 0x12, 0x6a, + 0xd7, 0x7d, 0x21, 0xe0, 0x53, 0x54, 0x16, 0xc1, 0x9c, 0x02, 0x6f, 0xae, 0xe7, 0xb1, 0xdf, 0xe9, + 0x39, 0x35, 0x5d, 0xf2, 0x72, 0xbf, 0xd3, 0x23, 0xd2, 0x05, 0x3e, 0x47, 0x15, 0x96, 0x04, 0x20, + 0x37, 0x68, 0x79, 0xfd, 0x8d, 0x2c, 0x2b, 0x98, 0x53, 0x4a, 0x9e, 0x38, 0x49, 0xfd, 0x98, 0xdf, + 0xa2, 0x9d, 0x85, 0x35, 0x8b, 0x9f, 0xa0, 0x7a, 0x10, 0xd1, 0xa1, 0x43, 0x03, 0x1a, 0xba, 0xfa, + 0x11, 0x2f, 0xf1, 0x76, 0xbe, 0x9f, 0x3a, 0x05, 0x9c, 0x5e, 0xd2, 0xfb, 0x3a, 0x48, 0xbd, 0xa8, + 0x23, 0x0b, 0x1e, 0x4d, 0x8a, 0x50, 0x9e, 0xa3, 0x9c, 0x4a, 0x92, 0xa9, 0xe9, 0x57, 0x92, 0x9e, + 0x4a, 0x92, 0xc0, 0x9c, 0xa4, 0x72, 0x39, 0x53, 0x38, 0xb8, 0x0c, 0x84, 0x6a, 0x67, 0x69, 0x71, + 0xa6, 0xf4, 0x32, 0x0d, 0x29, 0xa0, 0x9c, 0xe3, 0x8b, 0xab, 0xe6, 0xc6, 0xf3, 0xab, 0xe6, 0xc6, + 0x8b, 0xab, 0xe6, 0xc6, 0xf7, 0xb3, 0xa6, 0x71, 0x31, 0x6b, 0x1a, 0xcf, 0x67, 0x4d, 0xe3, 0xc5, + 0xac, 0x69, 0xfc, 0x35, 0x6b, 0x1a, 0x3f, 0xfd, 0xdd, 0xdc, 0xf8, 0x6a, 0x4b, 0x97, 0xe9, 0xdf, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x8b, 0x3b, 0x2e, 0x16, 0x0c, 0x00, 0x00, } func (m *HTTPIngressPath) Marshal() (dAtA []byte, err error) { @@ -769,6 +804,60 @@ func (m *IngressClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *IngressClassParametersReference) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IngressClassParametersReference) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IngressClassParametersReference) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Namespace != nil { + i -= len(*m.Namespace) + copy(dAtA[i:], *m.Namespace) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Namespace))) + i-- + dAtA[i] = 0x2a + } + if m.Scope != nil { + i -= len(*m.Scope) + copy(dAtA[i:], *m.Scope) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Scope))) + i-- + dAtA[i] = 0x22 + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x1a + i -= len(m.Kind) + copy(dAtA[i:], m.Kind) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) + i-- + dAtA[i] = 0x12 + if m.APIGroup != nil { + i -= len(*m.APIGroup) + copy(dAtA[i:], *m.APIGroup) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.APIGroup))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *IngressClassSpec) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1174,6 +1263,31 @@ func (m *IngressClassList) Size() (n int) { return n } +func (m *IngressClassParametersReference) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.APIGroup != nil { + l = len(*m.APIGroup) + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Kind) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Scope != nil { + l = len(*m.Scope) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Namespace != nil { + l = len(*m.Namespace) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *IngressClassSpec) Size() (n int) { if m == nil { return 0 @@ -1373,13 +1487,27 @@ func (this *IngressClassList) String() string { }, "") return s } +func (this *IngressClassParametersReference) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&IngressClassParametersReference{`, + `APIGroup:` + valueToStringGenerated(this.APIGroup) + `,`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Scope:` + valueToStringGenerated(this.Scope) + `,`, + `Namespace:` + valueToStringGenerated(this.Namespace) + `,`, + `}`, + }, "") + return s +} func (this *IngressClassSpec) String() string { if this == nil { return "nil" } s := strings.Join([]string{`&IngressClassSpec{`, `Controller:` + fmt.Sprintf("%v", this.Controller) + `,`, - `Parameters:` + strings.Replace(fmt.Sprintf("%v", this.Parameters), "TypedLocalObjectReference", "v11.TypedLocalObjectReference", 1) + `,`, + `Parameters:` + strings.Replace(this.Parameters.String(), "IngressClassParametersReference", "IngressClassParametersReference", 1) + `,`, `}`, }, "") return s @@ -1606,10 +1734,7 @@ func (m *HTTPIngressPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1693,10 +1818,7 @@ func (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1845,10 +1967,7 @@ func (m *Ingress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1999,10 +2118,7 @@ func (m *IngressBackend) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2118,10 +2234,7 @@ func (m *IngressClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2238,10 +2351,220 @@ func (m *IngressClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IngressClassParametersReference) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IngressClassParametersReference: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IngressClassParametersReference: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIGroup", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) < 0 { + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.APIGroup = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Scope", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Scope = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Namespace = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2347,7 +2670,7 @@ func (m *IngressClassSpec) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Parameters == nil { - m.Parameters = &v11.TypedLocalObjectReference{} + m.Parameters = &IngressClassParametersReference{} } if err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -2359,10 +2682,7 @@ func (m *IngressClassSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2479,10 +2799,7 @@ func (m *IngressList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2597,10 +2914,7 @@ func (m *IngressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2686,10 +3000,7 @@ func (m *IngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2876,10 +3187,7 @@ func (m *IngressSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2962,10 +3270,7 @@ func (m *IngressStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3079,10 +3384,7 @@ func (m *IngressTLS) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/networking/v1beta1/generated.proto b/vendor/k8s.io/api/networking/v1beta1/generated.proto index 251bbafecf..acb6e859cf 100644 --- a/vendor/k8s.io/api/networking/v1beta1/generated.proto +++ b/vendor/k8s.io/api/networking/v1beta1/generated.proto @@ -137,6 +137,36 @@ message IngressClassList { repeated IngressClass items = 2; } +// IngressClassParametersReference identifies an API object. This can be used +// to specify a cluster or namespace-scoped resource. +message IngressClassParametersReference { + // 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. + // +optional + optional string aPIGroup = 1; + + // Kind is the type of resource being referenced. + optional string kind = 2; + + // Name is the name of resource being referenced. + optional string name = 3; + + // Scope represents if this refers to a cluster or namespace scoped resource. + // This may be set to "Cluster" (default) or "Namespace". + // Field can be enabled with IngressClassNamespacedParams feature gate. + // +optional + // +featureGate=IngressClassNamespacedParams + optional string scope = 4; + + // Namespace is the namespace of the resource being referenced. This field is + // required when scope is set to "Namespace" and must be unset when scope is set to + // "Cluster". + // +optional + // +featureGate=IngressClassNamespacedParams + optional string namespace = 5; +} + // IngressClassSpec provides information about the class of an Ingress. message IngressClassSpec { // Controller refers to the name of the controller that should handle this @@ -151,7 +181,7 @@ message IngressClassSpec { // configuration for the controller. This is optional if the controller does // not require extra parameters. // +optional - optional k8s.io.api.core.v1.TypedLocalObjectReference parameters = 2; + optional IngressClassParametersReference parameters = 2; } // IngressList is a collection of Ingress. diff --git a/vendor/k8s.io/api/networking/v1beta1/types.go b/vendor/k8s.io/api/networking/v1beta1/types.go index ef9bd4d67d..09279d6938 100644 --- a/vendor/k8s.io/api/networking/v1beta1/types.go +++ b/vendor/k8s.io/api/networking/v1beta1/types.go @@ -311,7 +311,42 @@ type IngressClassSpec struct { // configuration for the controller. This is optional if the controller does // not require extra parameters. // +optional - Parameters *v1.TypedLocalObjectReference `json:"parameters,omitempty" protobuf:"bytes,2,opt,name=parameters"` + Parameters *IngressClassParametersReference `json:"parameters,omitempty" protobuf:"bytes,2,opt,name=parameters"` +} + +const ( + // IngressClassParametersReferenceScopeNamespace indicates that the + // referenced Parameters resource is namespace-scoped. + IngressClassParametersReferenceScopeNamespace = "Namespace" + // IngressClassParametersReferenceScopeNamespace indicates that the + // referenced Parameters resource is cluster-scoped. + IngressClassParametersReferenceScopeCluster = "Cluster" +) + +// IngressClassParametersReference identifies an API object. This can be used +// to specify a cluster or namespace-scoped resource. +type IngressClassParametersReference struct { + // 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. + // +optional + APIGroup *string `json:"apiGroup,omitempty" protobuf:"bytes,1,opt,name=aPIGroup"` + // Kind is the type of resource being referenced. + Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"` + // Name is the name of resource being referenced. + Name string `json:"name" protobuf:"bytes,3,opt,name=name"` + // Scope represents if this refers to a cluster or namespace scoped resource. + // This may be set to "Cluster" (default) or "Namespace". + // Field can be enabled with IngressClassNamespacedParams feature gate. + // +optional + // +featureGate=IngressClassNamespacedParams + Scope *string `json:"scope" protobuf:"bytes,4,opt,name=scope"` + // Namespace is the namespace of the resource being referenced. This field is + // required when scope is set to "Namespace" and must be unset when scope is set to + // "Cluster". + // +optional + // +featureGate=IngressClassNamespacedParams + Namespace *string `json:"namespace,omitempty" protobuf:"bytes,5,opt,name=namespace"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/vendor/k8s.io/api/networking/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/networking/v1beta1/types_swagger_doc_generated.go index c774249d8e..84337ad3ea 100644 --- a/vendor/k8s.io/api/networking/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/networking/v1beta1/types_swagger_doc_generated.go @@ -89,6 +89,19 @@ func (IngressClassList) SwaggerDoc() map[string]string { return map_IngressClassList } +var map_IngressClassParametersReference = map[string]string{ + "": "IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.", + "apiGroup": "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.", + "kind": "Kind is the type of resource being referenced.", + "name": "Name is the name of resource being referenced.", + "scope": "Scope represents if this refers to a cluster or namespace scoped resource. This may be set to \"Cluster\" (default) or \"Namespace\". Field can be enabled with IngressClassNamespacedParams feature gate.", + "namespace": "Namespace is the namespace of the resource being referenced. This field is required when scope is set to \"Namespace\" and must be unset when scope is set to \"Cluster\".", +} + +func (IngressClassParametersReference) SwaggerDoc() map[string]string { + return map_IngressClassParametersReference +} + var map_IngressClassSpec = map[string]string{ "": "IngressClassSpec provides information about the class of an Ingress.", "controller": "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", diff --git a/vendor/k8s.io/api/networking/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/networking/v1beta1/zz_generated.deepcopy.go index d55ccde683..e1b4543d30 100644 --- a/vendor/k8s.io/api/networking/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/networking/v1beta1/zz_generated.deepcopy.go @@ -180,12 +180,43 @@ func (in *IngressClassList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IngressClassParametersReference) DeepCopyInto(out *IngressClassParametersReference) { + *out = *in + if in.APIGroup != nil { + in, out := &in.APIGroup, &out.APIGroup + *out = new(string) + **out = **in + } + if in.Scope != nil { + in, out := &in.Scope, &out.Scope + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassParametersReference. +func (in *IngressClassParametersReference) DeepCopy() *IngressClassParametersReference { + if in == nil { + return nil + } + out := new(IngressClassParametersReference) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *IngressClassSpec) DeepCopyInto(out *IngressClassSpec) { *out = *in if in.Parameters != nil { in, out := &in.Parameters, &out.Parameters - *out = new(v1.TypedLocalObjectReference) + *out = new(IngressClassParametersReference) (*in).DeepCopyInto(*out) } return diff --git a/vendor/k8s.io/api/node/v1/generated.pb.go b/vendor/k8s.io/api/node/v1/generated.pb.go index 775ade3816..d930f63b24 100644 --- a/vendor/k8s.io/api/node/v1/generated.pb.go +++ b/vendor/k8s.io/api/node/v1/generated.pb.go @@ -766,7 +766,7 @@ func (m *Overhead) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -783,10 +783,7 @@ func (m *Overhead) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -973,10 +970,7 @@ func (m *RuntimeClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1093,10 +1087,7 @@ func (m *RuntimeClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1256,7 +1247,7 @@ func (m *Scheduling) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1307,10 +1298,7 @@ func (m *Scheduling) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/node/v1alpha1/generated.pb.go b/vendor/k8s.io/api/node/v1alpha1/generated.pb.go index e6658a96fb..abd2c09b6b 100644 --- a/vendor/k8s.io/api/node/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/node/v1alpha1/generated.pb.go @@ -852,7 +852,7 @@ func (m *Overhead) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -869,10 +869,7 @@ func (m *Overhead) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -988,10 +985,7 @@ func (m *RuntimeClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1108,10 +1102,7 @@ func (m *RuntimeClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1265,10 +1256,7 @@ func (m *RuntimeClassSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1428,7 +1416,7 @@ func (m *Scheduling) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1479,10 +1467,7 @@ func (m *Scheduling) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/node/v1beta1/generated.pb.go b/vendor/k8s.io/api/node/v1beta1/generated.pb.go index b85cbd295e..4bfdd5df30 100644 --- a/vendor/k8s.io/api/node/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/node/v1beta1/generated.pb.go @@ -767,7 +767,7 @@ func (m *Overhead) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -784,10 +784,7 @@ func (m *Overhead) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -974,10 +971,7 @@ func (m *RuntimeClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1094,10 +1088,7 @@ func (m *RuntimeClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1257,7 +1248,7 @@ func (m *Scheduling) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1308,10 +1299,7 @@ func (m *Scheduling) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/policy/v1/doc.go b/vendor/k8s.io/api/policy/v1/doc.go new file mode 100644 index 0000000000..b46af58e43 --- /dev/null +++ b/vendor/k8s.io/api/policy/v1/doc.go @@ -0,0 +1,24 @@ +/* +Copyright 2021 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. +*/ + +// +k8s:deepcopy-gen=package +// +k8s:protobuf-gen=package +// +k8s:openapi-gen=true + +// Package policy is for any kind of policy object. Suitable examples, even if +// they aren't all here, are PodDisruptionBudget, PodSecurityPolicy, +// NetworkPolicy, etc. +package v1 // import "k8s.io/api/policy/v1" diff --git a/vendor/k8s.io/api/policy/v1/generated.pb.go b/vendor/k8s.io/api/policy/v1/generated.pb.go new file mode 100644 index 0000000000..9a9f73c124 --- /dev/null +++ b/vendor/k8s.io/api/policy/v1/generated.pb.go @@ -0,0 +1,1459 @@ +/* +Copyright 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. +*/ + +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: k8s.io/kubernetes/vendor/k8s.io/api/policy/v1/generated.proto + +package v1 + +import ( + fmt "fmt" + + io "io" + + proto "github.com/gogo/protobuf/proto" + github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + math "math" + math_bits "math/bits" + reflect "reflect" + strings "strings" + + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +func (m *PodDisruptionBudget) Reset() { *m = PodDisruptionBudget{} } +func (*PodDisruptionBudget) ProtoMessage() {} +func (*PodDisruptionBudget) Descriptor() ([]byte, []int) { + return fileDescriptor_2d50488813b2d18e, []int{0} +} +func (m *PodDisruptionBudget) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PodDisruptionBudget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PodDisruptionBudget) XXX_Merge(src proto.Message) { + xxx_messageInfo_PodDisruptionBudget.Merge(m, src) +} +func (m *PodDisruptionBudget) XXX_Size() int { + return m.Size() +} +func (m *PodDisruptionBudget) XXX_DiscardUnknown() { + xxx_messageInfo_PodDisruptionBudget.DiscardUnknown(m) +} + +var xxx_messageInfo_PodDisruptionBudget proto.InternalMessageInfo + +func (m *PodDisruptionBudgetList) Reset() { *m = PodDisruptionBudgetList{} } +func (*PodDisruptionBudgetList) ProtoMessage() {} +func (*PodDisruptionBudgetList) Descriptor() ([]byte, []int) { + return fileDescriptor_2d50488813b2d18e, []int{1} +} +func (m *PodDisruptionBudgetList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PodDisruptionBudgetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PodDisruptionBudgetList) XXX_Merge(src proto.Message) { + xxx_messageInfo_PodDisruptionBudgetList.Merge(m, src) +} +func (m *PodDisruptionBudgetList) XXX_Size() int { + return m.Size() +} +func (m *PodDisruptionBudgetList) XXX_DiscardUnknown() { + xxx_messageInfo_PodDisruptionBudgetList.DiscardUnknown(m) +} + +var xxx_messageInfo_PodDisruptionBudgetList proto.InternalMessageInfo + +func (m *PodDisruptionBudgetSpec) Reset() { *m = PodDisruptionBudgetSpec{} } +func (*PodDisruptionBudgetSpec) ProtoMessage() {} +func (*PodDisruptionBudgetSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_2d50488813b2d18e, []int{2} +} +func (m *PodDisruptionBudgetSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PodDisruptionBudgetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PodDisruptionBudgetSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_PodDisruptionBudgetSpec.Merge(m, src) +} +func (m *PodDisruptionBudgetSpec) XXX_Size() int { + return m.Size() +} +func (m *PodDisruptionBudgetSpec) XXX_DiscardUnknown() { + xxx_messageInfo_PodDisruptionBudgetSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_PodDisruptionBudgetSpec proto.InternalMessageInfo + +func (m *PodDisruptionBudgetStatus) Reset() { *m = PodDisruptionBudgetStatus{} } +func (*PodDisruptionBudgetStatus) ProtoMessage() {} +func (*PodDisruptionBudgetStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_2d50488813b2d18e, []int{3} +} +func (m *PodDisruptionBudgetStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PodDisruptionBudgetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PodDisruptionBudgetStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_PodDisruptionBudgetStatus.Merge(m, src) +} +func (m *PodDisruptionBudgetStatus) XXX_Size() int { + return m.Size() +} +func (m *PodDisruptionBudgetStatus) XXX_DiscardUnknown() { + xxx_messageInfo_PodDisruptionBudgetStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_PodDisruptionBudgetStatus proto.InternalMessageInfo + +func init() { + proto.RegisterType((*PodDisruptionBudget)(nil), "k8s.io.api.policy.v1.PodDisruptionBudget") + proto.RegisterType((*PodDisruptionBudgetList)(nil), "k8s.io.api.policy.v1.PodDisruptionBudgetList") + proto.RegisterType((*PodDisruptionBudgetSpec)(nil), "k8s.io.api.policy.v1.PodDisruptionBudgetSpec") + proto.RegisterType((*PodDisruptionBudgetStatus)(nil), "k8s.io.api.policy.v1.PodDisruptionBudgetStatus") + proto.RegisterMapType((map[string]v1.Time)(nil), "k8s.io.api.policy.v1.PodDisruptionBudgetStatus.DisruptedPodsEntry") +} + +func init() { + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/policy/v1/generated.proto", fileDescriptor_2d50488813b2d18e) +} + +var fileDescriptor_2d50488813b2d18e = []byte{ + // 766 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xdf, 0x6e, 0xe3, 0x44, + 0x14, 0xc6, 0xe3, 0xa4, 0x29, 0x65, 0x36, 0x8d, 0xaa, 0x61, 0x81, 0x90, 0x0b, 0x77, 0xd5, 0xab, + 0x82, 0xb4, 0x63, 0xba, 0x8b, 0x50, 0x85, 0x04, 0x62, 0xbd, 0x59, 0xc1, 0x22, 0x4a, 0x56, 0x53, + 0x10, 0x12, 0x02, 0x89, 0x89, 0x7d, 0xd6, 0x19, 0x62, 0x7b, 0xac, 0x99, 0xb1, 0xd9, 0x5c, 0xc1, + 0x23, 0xf0, 0x0a, 0x3c, 0x0a, 0x57, 0xf4, 0x0a, 0xed, 0xe5, 0x5e, 0x45, 0xd4, 0xbc, 0x08, 0xf2, + 0xd8, 0xf9, 0xe3, 0x24, 0x55, 0x03, 0x77, 0x99, 0x39, 0xe7, 0xfb, 0x9d, 0x39, 0xdf, 0x39, 0x0e, + 0xfa, 0x78, 0x72, 0xae, 0x08, 0x17, 0xce, 0x24, 0x1d, 0x81, 0x8c, 0x41, 0x83, 0x72, 0x32, 0x88, + 0x7d, 0x21, 0x9d, 0x2a, 0xc0, 0x12, 0xee, 0x24, 0x22, 0xe4, 0xde, 0xd4, 0xc9, 0xce, 0x9c, 0x00, + 0x62, 0x90, 0x4c, 0x83, 0x4f, 0x12, 0x29, 0xb4, 0xc0, 0x77, 0xcb, 0x2c, 0xc2, 0x12, 0x4e, 0xca, + 0x2c, 0x92, 0x9d, 0xf5, 0xef, 0x07, 0x5c, 0x8f, 0xd3, 0x11, 0xf1, 0x44, 0xe4, 0x04, 0x22, 0x10, + 0x8e, 0x49, 0x1e, 0xa5, 0xcf, 0xcd, 0xc9, 0x1c, 0xcc, 0xaf, 0x12, 0xd2, 0xff, 0x60, 0x59, 0x2a, + 0x62, 0xde, 0x98, 0xc7, 0x20, 0xa7, 0x4e, 0x32, 0x09, 0x8a, 0x0b, 0xe5, 0x44, 0xa0, 0xd9, 0x96, + 0xd2, 0x7d, 0xe7, 0x26, 0x95, 0x4c, 0x63, 0xcd, 0x23, 0xd8, 0x10, 0x7c, 0x78, 0x9b, 0x40, 0x79, + 0x63, 0x88, 0xd8, 0x86, 0xee, 0xe1, 0x4d, 0xba, 0x54, 0xf3, 0xd0, 0xe1, 0xb1, 0x56, 0x5a, 0xae, + 0x8b, 0x4e, 0x7e, 0x6f, 0xa2, 0x37, 0x9e, 0x09, 0x7f, 0xc0, 0x95, 0x4c, 0x13, 0xcd, 0x45, 0xec, + 0xa6, 0x7e, 0x00, 0x1a, 0xff, 0x88, 0x0e, 0x8a, 0x86, 0x7c, 0xa6, 0x59, 0xcf, 0xba, 0x67, 0x9d, + 0xde, 0x79, 0xf0, 0x3e, 0x59, 0x7a, 0xb8, 0xe0, 0x93, 0x64, 0x12, 0x14, 0x17, 0x8a, 0x14, 0xd9, + 0x24, 0x3b, 0x23, 0xc3, 0xd1, 0x4f, 0xe0, 0xe9, 0x0b, 0xd0, 0xcc, 0xc5, 0x57, 0xb3, 0xe3, 0x46, + 0x3e, 0x3b, 0x46, 0xcb, 0x3b, 0xba, 0xa0, 0xe2, 0x21, 0xda, 0x53, 0x09, 0x78, 0xbd, 0xa6, 0xa1, + 0xdf, 0x27, 0xdb, 0x26, 0x44, 0xb6, 0x3c, 0xed, 0x32, 0x01, 0xcf, 0xed, 0x54, 0xe8, 0xbd, 0xe2, + 0x44, 0x0d, 0x08, 0x7f, 0x8b, 0xf6, 0x95, 0x66, 0x3a, 0x55, 0xbd, 0x96, 0x41, 0x3a, 0xbb, 0x23, + 0x8d, 0xcc, 0xed, 0x56, 0xd0, 0xfd, 0xf2, 0x4c, 0x2b, 0xdc, 0xc9, 0x9f, 0x16, 0x7a, 0x7b, 0x8b, + 0xea, 0x4b, 0xae, 0x34, 0xfe, 0x7e, 0xc3, 0x27, 0xb2, 0x9b, 0x4f, 0x85, 0xda, 0xb8, 0x74, 0x54, + 0x55, 0x3d, 0x98, 0xdf, 0xac, 0x78, 0xf4, 0x15, 0x6a, 0x73, 0x0d, 0x91, 0xea, 0x35, 0xef, 0xb5, + 0x4e, 0xef, 0x3c, 0x78, 0x77, 0xe7, 0x8e, 0xdc, 0xc3, 0x8a, 0xda, 0x7e, 0x5a, 0xe8, 0x69, 0x89, + 0x39, 0xf9, 0xab, 0xb9, 0xb5, 0x93, 0xc2, 0x44, 0xfc, 0x1c, 0x75, 0x22, 0x1e, 0x3f, 0xca, 0x18, + 0x0f, 0xd9, 0x28, 0x84, 0x5b, 0xa7, 0x5e, 0x6c, 0x15, 0x29, 0xb7, 0x8a, 0x3c, 0x8d, 0xf5, 0x50, + 0x5e, 0x6a, 0xc9, 0xe3, 0xc0, 0x3d, 0xca, 0x67, 0xc7, 0x9d, 0x8b, 0x15, 0x12, 0xad, 0x71, 0xf1, + 0x0f, 0xe8, 0x40, 0x41, 0x08, 0x9e, 0x16, 0xb2, 0x9a, 0xfd, 0xc3, 0x1d, 0x1d, 0x63, 0x23, 0x08, + 0x2f, 0x2b, 0xa9, 0xdb, 0x29, 0x2c, 0x9b, 0x9f, 0xe8, 0x02, 0x89, 0x43, 0xd4, 0x8d, 0xd8, 0x8b, + 0x6f, 0x62, 0xb6, 0x68, 0xa4, 0xf5, 0x3f, 0x1b, 0xc1, 0xf9, 0xec, 0xb8, 0x7b, 0x51, 0x63, 0xd1, + 0x35, 0xf6, 0xc9, 0x1f, 0x6d, 0xf4, 0xce, 0x8d, 0x0b, 0x85, 0xbf, 0x40, 0x58, 0x8c, 0x14, 0xc8, + 0x0c, 0xfc, 0xcf, 0xca, 0xef, 0x8e, 0x8b, 0xd8, 0x18, 0xdb, 0x72, 0xfb, 0xd5, 0x80, 0xf0, 0x70, + 0x23, 0x83, 0x6e, 0x51, 0xe1, 0x5f, 0xd0, 0xa1, 0x5f, 0x56, 0x01, 0xff, 0x99, 0xf0, 0xe7, 0x2b, + 0xe1, 0xfe, 0xc7, 0x25, 0x27, 0x83, 0x55, 0xc8, 0x93, 0x58, 0xcb, 0xa9, 0xfb, 0x66, 0xf5, 0x94, + 0xc3, 0x5a, 0x8c, 0xd6, 0xeb, 0x15, 0xcd, 0xf8, 0x0b, 0xa4, 0x7a, 0x14, 0x86, 0xe2, 0x67, 0xf0, + 0x8d, 0xb9, 0xed, 0x65, 0x33, 0x83, 0x8d, 0x0c, 0xba, 0x45, 0x85, 0x3f, 0x41, 0x5d, 0x2f, 0x95, + 0x12, 0x62, 0xfd, 0x39, 0xb0, 0x50, 0x8f, 0xa7, 0xbd, 0x3d, 0xc3, 0x79, 0xab, 0xe2, 0x74, 0x1f, + 0xd7, 0xa2, 0x74, 0x2d, 0xbb, 0xd0, 0xfb, 0xa0, 0xb8, 0x04, 0x7f, 0xae, 0x6f, 0xd7, 0xf5, 0x83, + 0x5a, 0x94, 0xae, 0x65, 0xe3, 0x73, 0xd4, 0x81, 0x17, 0x09, 0x78, 0x73, 0x2f, 0xf7, 0x8d, 0xfa, + 0x6e, 0xa5, 0xee, 0x3c, 0x59, 0x89, 0xd1, 0x5a, 0x26, 0xf6, 0x10, 0xf2, 0x44, 0xec, 0x73, 0xd3, + 0x4e, 0xef, 0x35, 0x33, 0x03, 0x67, 0xb7, 0xfd, 0x7d, 0x3c, 0xd7, 0x2d, 0xff, 0x18, 0x17, 0x57, + 0x8a, 0xae, 0x60, 0xfb, 0x21, 0xc2, 0x9b, 0x63, 0xc2, 0x47, 0xa8, 0x35, 0x81, 0xa9, 0x59, 0x9f, + 0xd7, 0x69, 0xf1, 0x13, 0x7f, 0x8a, 0xda, 0x19, 0x0b, 0x53, 0xa8, 0xbe, 0xa3, 0xf7, 0x76, 0x7b, + 0xc7, 0xd7, 0x3c, 0x02, 0x5a, 0x0a, 0x3f, 0x6a, 0x9e, 0x5b, 0xee, 0xe9, 0xd5, 0xb5, 0xdd, 0x78, + 0x79, 0x6d, 0x37, 0x5e, 0x5d, 0xdb, 0x8d, 0x5f, 0x73, 0xdb, 0xba, 0xca, 0x6d, 0xeb, 0x65, 0x6e, + 0x5b, 0xaf, 0x72, 0xdb, 0xfa, 0x3b, 0xb7, 0xad, 0xdf, 0xfe, 0xb1, 0x1b, 0xdf, 0x35, 0xb3, 0xb3, + 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xca, 0x04, 0x93, 0xc0, 0x85, 0x07, 0x00, 0x00, +} + +func (m *PodDisruptionBudget) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodDisruptionBudget) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PodDisruptionBudget) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PodDisruptionBudgetList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodDisruptionBudgetList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PodDisruptionBudgetList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PodDisruptionBudgetSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodDisruptionBudgetSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PodDisruptionBudgetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.MaxUnavailable != nil { + { + size, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Selector != nil { + { + size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.MinAvailable != nil { + { + size, err := m.MinAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PodDisruptionBudgetStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodDisruptionBudgetStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PodDisruptionBudgetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } + i = encodeVarintGenerated(dAtA, i, uint64(m.ExpectedPods)) + i-- + dAtA[i] = 0x30 + i = encodeVarintGenerated(dAtA, i, uint64(m.DesiredHealthy)) + i-- + dAtA[i] = 0x28 + i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentHealthy)) + i-- + dAtA[i] = 0x20 + i = encodeVarintGenerated(dAtA, i, uint64(m.DisruptionsAllowed)) + i-- + dAtA[i] = 0x18 + if len(m.DisruptedPods) > 0 { + keysForDisruptedPods := make([]string, 0, len(m.DisruptedPods)) + for k := range m.DisruptedPods { + keysForDisruptedPods = append(keysForDisruptedPods, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForDisruptedPods) + for iNdEx := len(keysForDisruptedPods) - 1; iNdEx >= 0; iNdEx-- { + v := m.DisruptedPods[string(keysForDisruptedPods[iNdEx])] + baseI := i + { + size, err := (&v).MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(keysForDisruptedPods[iNdEx]) + copy(dAtA[i:], keysForDisruptedPods[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForDisruptedPods[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x12 + } + } + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + offset -= sovGenerated(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *PodDisruptionBudget) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *PodDisruptionBudgetList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PodDisruptionBudgetSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MinAvailable != nil { + l = m.MinAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.MaxUnavailable != nil { + l = m.MaxUnavailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *PodDisruptionBudgetStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + if len(m.DisruptedPods) > 0 { + for k, v := range m.DisruptedPods { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + n += 1 + sovGenerated(uint64(m.DisruptionsAllowed)) + n += 1 + sovGenerated(uint64(m.CurrentHealthy)) + n += 1 + sovGenerated(uint64(m.DesiredHealthy)) + n += 1 + sovGenerated(uint64(m.ExpectedPods)) + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func sovGenerated(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *PodDisruptionBudget) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PodDisruptionBudget{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "PodDisruptionBudgetSpec", "PodDisruptionBudgetSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "PodDisruptionBudgetStatus", "PodDisruptionBudgetStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *PodDisruptionBudgetList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]PodDisruptionBudget{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "PodDisruptionBudget", "PodDisruptionBudget", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&PodDisruptionBudgetList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *PodDisruptionBudgetSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PodDisruptionBudgetSpec{`, + `MinAvailable:` + strings.Replace(fmt.Sprintf("%v", this.MinAvailable), "IntOrString", "intstr.IntOrString", 1) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, + `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "intstr.IntOrString", 1) + `,`, + `}`, + }, "") + return s +} +func (this *PodDisruptionBudgetStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForConditions := "[]Condition{" + for _, f := range this.Conditions { + repeatedStringForConditions += fmt.Sprintf("%v", f) + "," + } + repeatedStringForConditions += "}" + keysForDisruptedPods := make([]string, 0, len(this.DisruptedPods)) + for k := range this.DisruptedPods { + keysForDisruptedPods = append(keysForDisruptedPods, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForDisruptedPods) + mapStringForDisruptedPods := "map[string]v1.Time{" + for _, k := range keysForDisruptedPods { + mapStringForDisruptedPods += fmt.Sprintf("%v: %v,", k, this.DisruptedPods[k]) + } + mapStringForDisruptedPods += "}" + s := strings.Join([]string{`&PodDisruptionBudgetStatus{`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `DisruptedPods:` + mapStringForDisruptedPods + `,`, + `DisruptionsAllowed:` + fmt.Sprintf("%v", this.DisruptionsAllowed) + `,`, + `CurrentHealthy:` + fmt.Sprintf("%v", this.CurrentHealthy) + `,`, + `DesiredHealthy:` + fmt.Sprintf("%v", this.DesiredHealthy) + `,`, + `ExpectedPods:` + fmt.Sprintf("%v", this.ExpectedPods) + `,`, + `Conditions:` + repeatedStringForConditions + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *PodDisruptionBudget) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodDisruptionBudget: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodDisruptionBudget: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodDisruptionBudgetList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodDisruptionBudgetList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodDisruptionBudgetList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, PodDisruptionBudget{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodDisruptionBudgetSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodDisruptionBudgetSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodDisruptionBudgetSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MinAvailable == nil { + m.MinAvailable = &intstr.IntOrString{} + } + if err := m.MinAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxUnavailable == nil { + m.MaxUnavailable = &intstr.IntOrString{} + } + if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodDisruptionBudgetStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodDisruptionBudgetStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DisruptedPods", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DisruptedPods == nil { + m.DisruptedPods = make(map[string]v1.Time) + } + var mapkey string + mapvalue := &v1.Time{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if postmsgIndex < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &v1.Time{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.DisruptedPods[mapkey] = *mapvalue + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DisruptionsAllowed", wireType) + } + m.DisruptionsAllowed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DisruptionsAllowed |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentHealthy", wireType) + } + m.CurrentHealthy = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CurrentHealthy |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DesiredHealthy", wireType) + } + m.DesiredHealthy = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DesiredHealthy |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpectedPods", wireType) + } + m.ExpectedPods = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpectedPods |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, v1.Condition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGenerated + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGenerated + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") +) diff --git a/vendor/k8s.io/api/policy/v1/generated.proto b/vendor/k8s.io/api/policy/v1/generated.proto new file mode 100644 index 0000000000..f57514112a --- /dev/null +++ b/vendor/k8s.io/api/policy/v1/generated.proto @@ -0,0 +1,138 @@ +/* +Copyright 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. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = "proto2"; + +package k8s.io.api.policy.v1; + +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; +import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1"; + +// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods +message PodDisruptionBudget { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the desired behavior of the PodDisruptionBudget. + // +optional + optional PodDisruptionBudgetSpec spec = 2; + + // Most recently observed status of the PodDisruptionBudget. + // +optional + optional PodDisruptionBudgetStatus status = 3; +} + +// PodDisruptionBudgetList is a collection of PodDisruptionBudgets. +message PodDisruptionBudgetList { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is a list of PodDisruptionBudgets + repeated PodDisruptionBudget items = 2; +} + +// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget. +message PodDisruptionBudgetSpec { + // An eviction is allowed if at least "minAvailable" pods selected by + // "selector" will still be available after the eviction, i.e. even in the + // absence of the evicted pod. So for example you can prevent all voluntary + // evictions by specifying "100%". + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString minAvailable = 1; + + // Label query over pods whose evictions are managed by the disruption + // budget. + // A null selector will match no pods, while an empty ({}) selector will select + // all pods within the namespace. + // +patchStrategy=replace + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; + + // An eviction is allowed if at most "maxUnavailable" pods selected by + // "selector" are unavailable after the eviction, i.e. even in absence of + // the evicted pod. For example, one can prevent all voluntary evictions + // by specifying 0. This is a mutually exclusive setting with "minAvailable". + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 3; +} + +// PodDisruptionBudgetStatus represents information about the status of a +// PodDisruptionBudget. Status may trail the actual state of a system. +message PodDisruptionBudgetStatus { + // Most recent generation observed when updating this PDB status. DisruptionsAllowed and other + // status information is valid only if observedGeneration equals to PDB's object generation. + // +optional + optional int64 observedGeneration = 1; + + // DisruptedPods contains information about pods whose eviction was + // processed by the API server eviction subresource handler but has not + // yet been observed by the PodDisruptionBudget controller. + // A pod will be in this map from the time when the API server processed the + // eviction request to the time when the pod is seen by PDB controller + // as having been marked for deletion (or after a timeout). The key in the map is the name of the pod + // and the value is the time when the API server processed the eviction request. If + // the deletion didn't occur and a pod is still there it will be removed from + // the list automatically by PodDisruptionBudget controller after some time. + // If everything goes smooth this map should be empty for the most of the time. + // Large number of entries in the map may indicate problems with pod deletions. + // +optional + map disruptedPods = 2; + + // Number of pod disruptions that are currently allowed. + optional int32 disruptionsAllowed = 3; + + // current number of healthy pods + optional int32 currentHealthy = 4; + + // minimum desired number of healthy pods + optional int32 desiredHealthy = 5; + + // total number of pods counted by this disruption budget + optional int32 expectedPods = 6; + + // Conditions contain conditions for PDB. The disruption controller sets the + // DisruptionAllowed condition. The following are known values for the reason field + // (additional reasons could be added in the future): + // - SyncFailed: The controller encountered an error and wasn't able to compute + // the number of allowed disruptions. Therefore no disruptions are + // allowed and the status of the condition will be False. + // - InsufficientPods: The number of pods are either at or below the number + // required by the PodDisruptionBudget. No disruptions are + // allowed and the status of the condition will be False. + // - SufficientPods: There are more pods than required by the PodDisruptionBudget. + // The condition will be True, and the number of allowed + // disruptions are provided by the disruptionsAllowed property. + // + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + // +listType=map + // +listMapKey=type + repeated k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 7; +} + diff --git a/vendor/k8s.io/api/policy/v1/register.go b/vendor/k8s.io/api/policy/v1/register.go new file mode 100644 index 0000000000..603c49b9ce --- /dev/null +++ b/vendor/k8s.io/api/policy/v1/register.go @@ -0,0 +1,51 @@ +/* +Copyright 2021 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. +*/ + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "policy" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +// Adds the list of known types to the given scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &PodDisruptionBudget{}, + &PodDisruptionBudgetList{}, + ) + // Add the watch version that applies + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/api/policy/v1/types.go b/vendor/k8s.io/api/policy/v1/types.go new file mode 100644 index 0000000000..65bf768d86 --- /dev/null +++ b/vendor/k8s.io/api/policy/v1/types.go @@ -0,0 +1,150 @@ +/* +Copyright 2021 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. +*/ + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" +) + +// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget. +type PodDisruptionBudgetSpec struct { + // An eviction is allowed if at least "minAvailable" pods selected by + // "selector" will still be available after the eviction, i.e. even in the + // absence of the evicted pod. So for example you can prevent all voluntary + // evictions by specifying "100%". + // +optional + MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty" protobuf:"bytes,1,opt,name=minAvailable"` + + // Label query over pods whose evictions are managed by the disruption + // budget. + // A null selector will match no pods, while an empty ({}) selector will select + // all pods within the namespace. + // +patchStrategy=replace + // +optional + Selector *metav1.LabelSelector `json:"selector,omitempty" patchStrategy:"replace" protobuf:"bytes,2,opt,name=selector"` + + // An eviction is allowed if at most "maxUnavailable" pods selected by + // "selector" are unavailable after the eviction, i.e. even in absence of + // the evicted pod. For example, one can prevent all voluntary evictions + // by specifying 0. This is a mutually exclusive setting with "minAvailable". + // +optional + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,3,opt,name=maxUnavailable"` +} + +// PodDisruptionBudgetStatus represents information about the status of a +// PodDisruptionBudget. Status may trail the actual state of a system. +type PodDisruptionBudgetStatus struct { + // Most recent generation observed when updating this PDB status. DisruptionsAllowed and other + // status information is valid only if observedGeneration equals to PDB's object generation. + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"` + + // DisruptedPods contains information about pods whose eviction was + // processed by the API server eviction subresource handler but has not + // yet been observed by the PodDisruptionBudget controller. + // A pod will be in this map from the time when the API server processed the + // eviction request to the time when the pod is seen by PDB controller + // as having been marked for deletion (or after a timeout). The key in the map is the name of the pod + // and the value is the time when the API server processed the eviction request. If + // the deletion didn't occur and a pod is still there it will be removed from + // the list automatically by PodDisruptionBudget controller after some time. + // If everything goes smooth this map should be empty for the most of the time. + // Large number of entries in the map may indicate problems with pod deletions. + // +optional + DisruptedPods map[string]metav1.Time `json:"disruptedPods,omitempty" protobuf:"bytes,2,rep,name=disruptedPods"` + + // Number of pod disruptions that are currently allowed. + DisruptionsAllowed int32 `json:"disruptionsAllowed" protobuf:"varint,3,opt,name=disruptionsAllowed"` + + // current number of healthy pods + CurrentHealthy int32 `json:"currentHealthy" protobuf:"varint,4,opt,name=currentHealthy"` + + // minimum desired number of healthy pods + DesiredHealthy int32 `json:"desiredHealthy" protobuf:"varint,5,opt,name=desiredHealthy"` + + // total number of pods counted by this disruption budget + ExpectedPods int32 `json:"expectedPods" protobuf:"varint,6,opt,name=expectedPods"` + + // Conditions contain conditions for PDB. The disruption controller sets the + // DisruptionAllowed condition. The following are known values for the reason field + // (additional reasons could be added in the future): + // - SyncFailed: The controller encountered an error and wasn't able to compute + // the number of allowed disruptions. Therefore no disruptions are + // allowed and the status of the condition will be False. + // - InsufficientPods: The number of pods are either at or below the number + // required by the PodDisruptionBudget. No disruptions are + // allowed and the status of the condition will be False. + // - SufficientPods: There are more pods than required by the PodDisruptionBudget. + // The condition will be True, and the number of allowed + // disruptions are provided by the disruptionsAllowed property. + // + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + // +listType=map + // +listMapKey=type + Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,7,rep,name=conditions"` +} + +const ( + // DisruptionAllowedCondition is a condition set by the disruption controller + // that signal whether any of the pods covered by the PDB can be disrupted. + DisruptionAllowedCondition = "DisruptionAllowed" + + // SyncFailedReason is set on the DisruptionAllowed condition if reconcile + // of the PDB failed and therefore disruption of pods are not allowed. + SyncFailedReason = "SyncFailed" + // SufficientPodsReason is set on the DisruptionAllowed condition if there are + // more pods covered by the PDB than required and at least one can be disrupted. + SufficientPodsReason = "SufficientPods" + // InsufficientPodsReason is set on the DisruptionAllowed condition if the number + // of pods are equal to or fewer than required by the PDB. + InsufficientPodsReason = "InsufficientPods" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods +type PodDisruptionBudget struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Specification of the desired behavior of the PodDisruptionBudget. + // +optional + Spec PodDisruptionBudgetSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` + // Most recently observed status of the PodDisruptionBudget. + // +optional + Status PodDisruptionBudgetStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// PodDisruptionBudgetList is a collection of PodDisruptionBudgets. +type PodDisruptionBudgetList struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + // Items is a list of PodDisruptionBudgets + Items []PodDisruptionBudget `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/vendor/k8s.io/api/policy/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/policy/v1/types_swagger_doc_generated.go new file mode 100644 index 0000000000..0b80a1dccf --- /dev/null +++ b/vendor/k8s.io/api/policy/v1/types_swagger_doc_generated.go @@ -0,0 +1,77 @@ +/* +Copyright 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. +*/ + +package v1 + +// This file contains a collection of methods that can be used from go-restful to +// generate Swagger API documentation for its models. Please read this PR for more +// information on the implementation: https://github.com/emicklei/go-restful/pull/215 +// +// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if +// they are on one line! For multiple line or blocks that you want to ignore use ---. +// Any context after a --- is ignored. +// +// Those methods can be generated by using hack/update-generated-swagger-docs.sh + +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. +var map_PodDisruptionBudget = map[string]string{ + "": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", + "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "spec": "Specification of the desired behavior of the PodDisruptionBudget.", + "status": "Most recently observed status of the PodDisruptionBudget.", +} + +func (PodDisruptionBudget) SwaggerDoc() map[string]string { + return map_PodDisruptionBudget +} + +var map_PodDisruptionBudgetList = map[string]string{ + "": "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.", + "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "items": "Items is a list of PodDisruptionBudgets", +} + +func (PodDisruptionBudgetList) SwaggerDoc() map[string]string { + return map_PodDisruptionBudgetList +} + +var map_PodDisruptionBudgetSpec = map[string]string{ + "": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", + "minAvailable": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\".", + "selector": "Label query over pods whose evictions are managed by the disruption budget. A null selector will match no pods, while an empty ({}) selector will select all pods within the namespace.", + "maxUnavailable": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\".", +} + +func (PodDisruptionBudgetSpec) SwaggerDoc() map[string]string { + return map_PodDisruptionBudgetSpec +} + +var map_PodDisruptionBudgetStatus = map[string]string{ + "": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.", + "observedGeneration": "Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.", + "disruptedPods": "DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.", + "disruptionsAllowed": "Number of pod disruptions that are currently allowed.", + "currentHealthy": "current number of healthy pods", + "desiredHealthy": "minimum desired number of healthy pods", + "expectedPods": "total number of pods counted by this disruption budget", + "conditions": "Conditions contain conditions for PDB. The disruption controller sets the DisruptionAllowed condition. The following are known values for the reason field (additional reasons could be added in the future): - SyncFailed: The controller encountered an error and wasn't able to compute\n the number of allowed disruptions. Therefore no disruptions are\n allowed and the status of the condition will be False.\n- InsufficientPods: The number of pods are either at or below the number\n required by the PodDisruptionBudget. No disruptions are\n allowed and the status of the condition will be False.\n- SufficientPods: There are more pods than required by the PodDisruptionBudget.\n The condition will be True, and the number of allowed\n disruptions are provided by the disruptionsAllowed property.", +} + +func (PodDisruptionBudgetStatus) SwaggerDoc() map[string]string { + return map_PodDisruptionBudgetStatus +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/policy/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/policy/v1/zz_generated.deepcopy.go new file mode 100644 index 0000000000..78c0adbd70 --- /dev/null +++ b/vendor/k8s.io/api/policy/v1/zz_generated.deepcopy.go @@ -0,0 +1,149 @@ +// +build !ignore_autogenerated + +/* +Copyright 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. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodDisruptionBudget) DeepCopyInto(out *PodDisruptionBudget) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudget. +func (in *PodDisruptionBudget) DeepCopy() *PodDisruptionBudget { + if in == nil { + return nil + } + out := new(PodDisruptionBudget) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PodDisruptionBudget) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodDisruptionBudgetList) DeepCopyInto(out *PodDisruptionBudgetList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PodDisruptionBudget, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetList. +func (in *PodDisruptionBudgetList) DeepCopy() *PodDisruptionBudgetList { + if in == nil { + return nil + } + out := new(PodDisruptionBudgetList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PodDisruptionBudgetList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodDisruptionBudgetSpec) DeepCopyInto(out *PodDisruptionBudgetSpec) { + *out = *in + if in.MinAvailable != nil { + in, out := &in.MinAvailable, &out.MinAvailable + *out = new(intstr.IntOrString) + **out = **in + } + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.MaxUnavailable != nil { + in, out := &in.MaxUnavailable, &out.MaxUnavailable + *out = new(intstr.IntOrString) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetSpec. +func (in *PodDisruptionBudgetSpec) DeepCopy() *PodDisruptionBudgetSpec { + if in == nil { + return nil + } + out := new(PodDisruptionBudgetSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodDisruptionBudgetStatus) DeepCopyInto(out *PodDisruptionBudgetStatus) { + *out = *in + if in.DisruptedPods != nil { + in, out := &in.DisruptedPods, &out.DisruptedPods + *out = make(map[string]metav1.Time, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]metav1.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetStatus. +func (in *PodDisruptionBudgetStatus) DeepCopy() *PodDisruptionBudgetStatus { + if in == nil { + return nil + } + out := new(PodDisruptionBudgetStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/api/policy/v1beta1/generated.pb.go b/vendor/k8s.io/api/policy/v1beta1/generated.pb.go index 40ec7ef7fb..9cce671dff 100644 --- a/vendor/k8s.io/api/policy/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/policy/v1beta1/generated.pb.go @@ -609,125 +609,126 @@ func init() { } var fileDescriptor_014060e454a820dc = []byte{ - // 1878 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xdd, 0x6e, 0x1b, 0xc7, - 0x15, 0xd6, 0x9a, 0xfa, 0xa1, 0x46, 0x3f, 0x16, 0x47, 0x3f, 0x5e, 0x2b, 0x0d, 0xd7, 0xd9, 0x00, - 0x85, 0x9b, 0x26, 0xcb, 0x58, 0x76, 0x5c, 0xa3, 0x69, 0x8b, 0x68, 0x45, 0xc9, 0x56, 0x60, 0x59, - 0xec, 0xd0, 0x0e, 0xda, 0xc2, 0x2d, 0x3a, 0xe4, 0x8e, 0xa8, 0x8d, 0x96, 0xbb, 0xdb, 0x99, 0x59, - 0x46, 0xbc, 0xeb, 0x45, 0x2f, 0x7a, 0xd9, 0x17, 0x08, 0xfa, 0x00, 0x45, 0xaf, 0xfa, 0x12, 0x0e, - 0x50, 0x04, 0xb9, 0x0c, 0x7a, 0x41, 0xd4, 0xec, 0x5b, 0xf8, 0xaa, 0xd8, 0xe1, 0xec, 0x92, 0xfb, - 0x47, 0x5a, 0x01, 0xec, 0x3b, 0xee, 0x9c, 0xef, 0xfb, 0xce, 0xcc, 0x99, 0x33, 0x67, 0x0e, 0x07, - 0x98, 0x17, 0x0f, 0x98, 0x61, 0x7b, 0xb5, 0x8b, 0xa0, 0x45, 0xa8, 0x4b, 0x38, 0x61, 0xb5, 0x1e, - 0x71, 0x2d, 0x8f, 0xd6, 0xa4, 0x01, 0xfb, 0x76, 0xcd, 0xf7, 0x1c, 0xbb, 0xdd, 0xaf, 0xf5, 0xee, - 0xb4, 0x08, 0xc7, 0x77, 0x6a, 0x1d, 0xe2, 0x12, 0x8a, 0x39, 0xb1, 0x0c, 0x9f, 0x7a, 0xdc, 0x83, - 0x37, 0x47, 0x50, 0x03, 0xfb, 0xb6, 0x31, 0x82, 0x1a, 0x12, 0xba, 0xfb, 0x51, 0xc7, 0xe6, 0xe7, - 0x41, 0xcb, 0x68, 0x7b, 0xdd, 0x5a, 0xc7, 0xeb, 0x78, 0x35, 0xc1, 0x68, 0x05, 0x67, 0xe2, 0x4b, - 0x7c, 0x88, 0x5f, 0x23, 0xa5, 0x5d, 0x7d, 0xc2, 0x69, 0xdb, 0xa3, 0xa4, 0xd6, 0xcb, 0x78, 0xdb, - 0xbd, 0x37, 0xc6, 0x74, 0x71, 0xfb, 0xdc, 0x76, 0x09, 0xed, 0xd7, 0xfc, 0x8b, 0x4e, 0x38, 0xc0, - 0x6a, 0x5d, 0xc2, 0x71, 0x1e, 0xab, 0x56, 0xc4, 0xa2, 0x81, 0xcb, 0xed, 0x2e, 0xc9, 0x10, 0xee, - 0xcf, 0x22, 0xb0, 0xf6, 0x39, 0xe9, 0xe2, 0x0c, 0xef, 0x6e, 0x11, 0x2f, 0xe0, 0xb6, 0x53, 0xb3, - 0x5d, 0xce, 0x38, 0x4d, 0x93, 0xf4, 0x7b, 0x60, 0x63, 0xdf, 0x71, 0xbc, 0xaf, 0x88, 0x75, 0xd0, - 0x3c, 0xae, 0x53, 0xbb, 0x47, 0x28, 0xbc, 0x05, 0xe6, 0x5d, 0xdc, 0x25, 0xaa, 0x72, 0x4b, 0xb9, - 0xbd, 0x6c, 0xae, 0xbe, 0x18, 0x68, 0x73, 0xc3, 0x81, 0x36, 0xff, 0x04, 0x77, 0x09, 0x12, 0x16, - 0xfd, 0x53, 0x50, 0x91, 0xac, 0x23, 0x87, 0x5c, 0x7e, 0xe1, 0x39, 0x41, 0x97, 0xc0, 0x1f, 0x83, - 0x45, 0x4b, 0x08, 0x48, 0xe2, 0xba, 0x24, 0x2e, 0x8e, 0x64, 0x91, 0xb4, 0xea, 0x0c, 0x5c, 0x97, - 0xe4, 0x47, 0x1e, 0xe3, 0x0d, 0xcc, 0xcf, 0xe1, 0x1e, 0x00, 0x3e, 0xe6, 0xe7, 0x0d, 0x4a, 0xce, - 0xec, 0x4b, 0x49, 0x87, 0x92, 0x0e, 0x1a, 0xb1, 0x05, 0x4d, 0xa0, 0xe0, 0x87, 0xa0, 0x4c, 0x09, - 0xb6, 0x4e, 0x5d, 0xa7, 0xaf, 0x5e, 0xbb, 0xa5, 0xdc, 0x2e, 0x9b, 0x1b, 0x92, 0x51, 0x46, 0x72, - 0x1c, 0xc5, 0x08, 0xfd, 0x3f, 0x0a, 0x28, 0x1f, 0xf6, 0xec, 0x36, 0xb7, 0x3d, 0x17, 0xfe, 0x11, - 0x94, 0xc3, 0xdd, 0xb2, 0x30, 0xc7, 0xc2, 0xd9, 0xca, 0xde, 0xc7, 0xc6, 0x38, 0x93, 0xe2, 0xe0, - 0x19, 0xfe, 0x45, 0x27, 0x1c, 0x60, 0x46, 0x88, 0x36, 0x7a, 0x77, 0x8c, 0xd3, 0xd6, 0x97, 0xa4, - 0xcd, 0x4f, 0x08, 0xc7, 0xe3, 0xe9, 0x8d, 0xc7, 0x50, 0xac, 0x0a, 0x1d, 0xb0, 0x66, 0x11, 0x87, - 0x70, 0x72, 0xea, 0x87, 0x1e, 0x99, 0x98, 0xe1, 0xca, 0xde, 0xdd, 0xd7, 0x73, 0x53, 0x9f, 0xa4, - 0x9a, 0x95, 0xe1, 0x40, 0x5b, 0x4b, 0x0c, 0xa1, 0xa4, 0xb8, 0xfe, 0xb5, 0x02, 0x76, 0x8e, 0x9a, - 0x0f, 0xa9, 0x17, 0xf8, 0x4d, 0x1e, 0xee, 0x6e, 0xa7, 0x2f, 0x4d, 0xf0, 0x67, 0x60, 0x9e, 0x06, - 0x4e, 0xb4, 0x97, 0xef, 0x47, 0x7b, 0x89, 0x02, 0x87, 0xbc, 0x1a, 0x68, 0x9b, 0x29, 0xd6, 0xd3, - 0xbe, 0x4f, 0x90, 0x20, 0xc0, 0xcf, 0xc1, 0x22, 0xc5, 0x6e, 0x87, 0x84, 0x53, 0x2f, 0xdd, 0x5e, - 0xd9, 0xd3, 0x8d, 0xc2, 0xb3, 0x66, 0x1c, 0xd7, 0x51, 0x08, 0x1d, 0xef, 0xb8, 0xf8, 0x64, 0x48, - 0x2a, 0xe8, 0x27, 0x60, 0x4d, 0x6c, 0xb5, 0x47, 0xb9, 0xb0, 0xc0, 0x77, 0x41, 0xa9, 0x6b, 0xbb, - 0x62, 0x52, 0x0b, 0xe6, 0x8a, 0x64, 0x95, 0x4e, 0x6c, 0x17, 0x85, 0xe3, 0xc2, 0x8c, 0x2f, 0x45, - 0xcc, 0x26, 0xcd, 0xf8, 0x12, 0x85, 0xe3, 0xfa, 0x43, 0xb0, 0x24, 0x3d, 0x4e, 0x0a, 0x95, 0xa6, - 0x0b, 0x95, 0x72, 0x84, 0xfe, 0x71, 0x0d, 0x6c, 0x36, 0x3c, 0xab, 0x6e, 0x33, 0x1a, 0x88, 0x78, - 0x99, 0x81, 0xd5, 0x21, 0xfc, 0x2d, 0xe4, 0xc7, 0x53, 0x30, 0xcf, 0x7c, 0xd2, 0x96, 0x69, 0xb1, - 0x37, 0x25, 0xb6, 0x39, 0xf3, 0x6b, 0xfa, 0xa4, 0x3d, 0x3e, 0x96, 0xe1, 0x17, 0x12, 0x6a, 0xf0, - 0x39, 0x58, 0x64, 0x1c, 0xf3, 0x80, 0xa9, 0x25, 0xa1, 0x7b, 0xef, 0x8a, 0xba, 0x82, 0x3b, 0xde, - 0xc5, 0xd1, 0x37, 0x92, 0x9a, 0xfa, 0xbf, 0x15, 0x70, 0x23, 0x87, 0xf5, 0xd8, 0x66, 0x1c, 0x3e, - 0xcf, 0x44, 0xcc, 0x78, 0xbd, 0x88, 0x85, 0x6c, 0x11, 0xaf, 0xf8, 0xf0, 0x46, 0x23, 0x13, 0xd1, - 0x6a, 0x82, 0x05, 0x9b, 0x93, 0x6e, 0x94, 0x8a, 0xc6, 0xd5, 0x96, 0x65, 0xae, 0x49, 0xe9, 0x85, - 0xe3, 0x50, 0x04, 0x8d, 0xb4, 0xf4, 0x6f, 0xaf, 0xe5, 0x2e, 0x27, 0x0c, 0x27, 0x3c, 0x03, 0xab, - 0x5d, 0xdb, 0xdd, 0xef, 0x61, 0xdb, 0xc1, 0x2d, 0x79, 0x7a, 0xa6, 0x25, 0x41, 0x58, 0x61, 0x8d, - 0x51, 0x85, 0x35, 0x8e, 0x5d, 0x7e, 0x4a, 0x9b, 0x9c, 0xda, 0x6e, 0xc7, 0xdc, 0x18, 0x0e, 0xb4, - 0xd5, 0x93, 0x09, 0x25, 0x94, 0xd0, 0x85, 0xbf, 0x07, 0x65, 0x46, 0x1c, 0xd2, 0xe6, 0x1e, 0xbd, - 0x5a, 0x85, 0x78, 0x8c, 0x5b, 0xc4, 0x69, 0x4a, 0xaa, 0xb9, 0x1a, 0xc6, 0x2d, 0xfa, 0x42, 0xb1, - 0x24, 0x74, 0xc0, 0x7a, 0x17, 0x5f, 0x3e, 0x73, 0x71, 0xbc, 0x90, 0xd2, 0x0f, 0x5c, 0x08, 0x1c, - 0x0e, 0xb4, 0xf5, 0x93, 0x84, 0x16, 0x4a, 0x69, 0xeb, 0xc3, 0x79, 0x70, 0xb3, 0x30, 0xab, 0xe0, - 0xe7, 0x00, 0x7a, 0x2d, 0x46, 0x68, 0x8f, 0x58, 0x0f, 0x47, 0x77, 0x90, 0xed, 0x45, 0x07, 0x77, - 0x57, 0x6e, 0x10, 0x3c, 0xcd, 0x20, 0x50, 0x0e, 0x0b, 0xfe, 0x45, 0x01, 0x6b, 0xd6, 0xc8, 0x0d, - 0xb1, 0x1a, 0x9e, 0x15, 0x25, 0xc6, 0xc3, 0x1f, 0x92, 0xef, 0x46, 0x7d, 0x52, 0xe9, 0xd0, 0xe5, - 0xb4, 0x6f, 0x6e, 0xcb, 0x09, 0xad, 0x25, 0x6c, 0x28, 0xe9, 0x34, 0x5c, 0x92, 0x15, 0x4b, 0x32, - 0x79, 0xa7, 0x89, 0x10, 0x2f, 0x8c, 0x97, 0x54, 0xcf, 0x20, 0x50, 0x0e, 0x0b, 0xfe, 0x0a, 0xac, - 0xb7, 0x03, 0x4a, 0x89, 0xcb, 0x1f, 0x11, 0xec, 0xf0, 0xf3, 0xbe, 0x3a, 0x2f, 0x74, 0x76, 0xa4, - 0xce, 0xfa, 0x41, 0xc2, 0x8a, 0x52, 0xe8, 0x90, 0x6f, 0x11, 0x66, 0x53, 0x62, 0x45, 0xfc, 0x85, - 0x24, 0xbf, 0x9e, 0xb0, 0xa2, 0x14, 0x1a, 0x3e, 0x00, 0xab, 0xe4, 0xd2, 0x27, 0xed, 0x28, 0xa0, - 0x8b, 0x82, 0xbd, 0x25, 0xd9, 0xab, 0x87, 0x13, 0x36, 0x94, 0x40, 0xee, 0x3a, 0x00, 0x66, 0x23, - 0x08, 0x37, 0x40, 0xe9, 0x82, 0xf4, 0x47, 0xd7, 0x0e, 0x0a, 0x7f, 0xc2, 0xcf, 0xc0, 0x42, 0x0f, - 0x3b, 0x01, 0x91, 0x89, 0xfe, 0xc1, 0xeb, 0x25, 0xfa, 0x53, 0xbb, 0x4b, 0xd0, 0x88, 0xf8, 0xf3, - 0x6b, 0x0f, 0x14, 0xfd, 0x1b, 0x05, 0x54, 0x1a, 0x9e, 0xd5, 0x24, 0xed, 0x80, 0xda, 0xbc, 0xdf, - 0x10, 0x9b, 0xfc, 0x16, 0x0a, 0x36, 0x4a, 0x14, 0xec, 0x8f, 0xa7, 0x27, 0x5a, 0x72, 0x76, 0x45, - 0xe5, 0x5a, 0x7f, 0xa1, 0x80, 0xed, 0x0c, 0xfa, 0x2d, 0x94, 0xd3, 0x5f, 0x27, 0xcb, 0xe9, 0x87, - 0x57, 0x59, 0x4c, 0x41, 0x31, 0xfd, 0xa6, 0x92, 0xb3, 0x14, 0x51, 0x4a, 0xc3, 0xd6, 0x8e, 0xda, - 0x3d, 0xdb, 0x21, 0x1d, 0x62, 0x89, 0xc5, 0x94, 0x27, 0x5a, 0xbb, 0xd8, 0x82, 0x26, 0x50, 0x90, - 0x81, 0x1d, 0x8b, 0x9c, 0xe1, 0xc0, 0xe1, 0xfb, 0x96, 0x75, 0x80, 0x7d, 0xdc, 0xb2, 0x1d, 0x9b, - 0xdb, 0xb2, 0x17, 0x59, 0x36, 0x3f, 0x1d, 0x0e, 0xb4, 0x9d, 0x7a, 0x2e, 0xe2, 0xd5, 0x40, 0x7b, - 0x37, 0xdb, 0xca, 0x1b, 0x31, 0xa4, 0x8f, 0x0a, 0xa4, 0x61, 0x1f, 0xa8, 0x94, 0xfc, 0x29, 0x08, - 0x0f, 0x45, 0x9d, 0x7a, 0x7e, 0xc2, 0x6d, 0x49, 0xb8, 0xfd, 0xe5, 0x70, 0xa0, 0xa9, 0xa8, 0x00, - 0x33, 0xdb, 0x71, 0xa1, 0x3c, 0xfc, 0x12, 0x6c, 0x62, 0xd9, 0x84, 0x4f, 0x7a, 0x9d, 0x17, 0x5e, - 0x1f, 0x0c, 0x07, 0xda, 0xe6, 0x7e, 0xd6, 0x3c, 0xdb, 0x61, 0x9e, 0x28, 0xac, 0x81, 0xa5, 0x9e, - 0xe8, 0xd7, 0x99, 0xba, 0x20, 0xf4, 0xb7, 0x87, 0x03, 0x6d, 0x69, 0xd4, 0xc2, 0x87, 0x9a, 0x8b, - 0x47, 0x4d, 0xd1, 0x05, 0x46, 0x28, 0xf8, 0x09, 0x58, 0x39, 0xf7, 0x18, 0x7f, 0x42, 0xf8, 0x57, - 0x1e, 0xbd, 0x10, 0x85, 0xa1, 0x6c, 0x6e, 0xca, 0x1d, 0x5c, 0x79, 0x34, 0x36, 0xa1, 0x49, 0x1c, - 0xfc, 0x2d, 0x58, 0x3e, 0x97, 0x3d, 0x1f, 0x53, 0x97, 0x44, 0xa2, 0xdd, 0x9e, 0x92, 0x68, 0x89, - 0xfe, 0xd0, 0xac, 0x48, 0xf9, 0xe5, 0x68, 0x98, 0xa1, 0xb1, 0x1a, 0xfc, 0x09, 0x58, 0x12, 0x1f, - 0xc7, 0x75, 0xb5, 0x2c, 0x66, 0x73, 0x5d, 0xc2, 0x97, 0x1e, 0x8d, 0x86, 0x51, 0x64, 0x8f, 0xa0, - 0xc7, 0x8d, 0x03, 0x75, 0x39, 0x0b, 0x3d, 0x6e, 0x1c, 0xa0, 0xc8, 0x0e, 0x9f, 0x83, 0x25, 0x46, - 0x1e, 0xdb, 0x6e, 0x70, 0xa9, 0x02, 0x71, 0xe4, 0xee, 0x4c, 0x99, 0x6e, 0xf3, 0x50, 0x20, 0x53, - 0xdd, 0xf6, 0x58, 0x5d, 0xda, 0x51, 0x24, 0x09, 0x2d, 0xb0, 0x4c, 0x03, 0x77, 0x9f, 0x3d, 0x63, - 0x84, 0xaa, 0x2b, 0x99, 0xab, 0x3e, 0xad, 0x8f, 0x22, 0x6c, 0xda, 0x43, 0x1c, 0x99, 0x18, 0x81, - 0xc6, 0xc2, 0xd0, 0x02, 0x40, 0x7c, 0x88, 0xa6, 0x5e, 0xdd, 0x99, 0xd9, 0x04, 0xa2, 0x18, 0x9c, - 0xf6, 0xb3, 0x1e, 0x1e, 0xcf, 0xb1, 0x19, 0x4d, 0xe8, 0xc2, 0xbf, 0x2a, 0x00, 0xb2, 0xc0, 0xf7, - 0x1d, 0xd2, 0x25, 0x2e, 0xc7, 0x8e, 0x18, 0x65, 0xea, 0xaa, 0x70, 0xf7, 0x8b, 0x69, 0x51, 0xcb, - 0x90, 0xd2, 0x6e, 0xe3, 0x6b, 0x33, 0x0b, 0x45, 0x39, 0x3e, 0xc3, 0x4d, 0x3b, 0x93, 0xab, 0x5d, - 0x9b, 0xb9, 0x69, 0xf9, 0x7f, 0x91, 0xc6, 0x9b, 0x26, 0xed, 0x28, 0x92, 0x84, 0x5f, 0x80, 0x9d, - 0xe8, 0x0f, 0x24, 0xf2, 0x3c, 0x7e, 0x64, 0x3b, 0x84, 0xf5, 0x19, 0x27, 0x5d, 0x75, 0x5d, 0x24, - 0x53, 0x55, 0x32, 0x77, 0x50, 0x2e, 0x0a, 0x15, 0xb0, 0x61, 0x17, 0x68, 0x51, 0x11, 0x0a, 0x4f, - 0x68, 0x5c, 0x05, 0x0f, 0x59, 0x1b, 0x3b, 0xa3, 0xc6, 0xe8, 0xba, 0x70, 0xf0, 0xfe, 0x70, 0xa0, - 0x69, 0xf5, 0xe9, 0x50, 0x34, 0x4b, 0x0b, 0xfe, 0x06, 0xa8, 0xb8, 0xc8, 0xcf, 0x86, 0xf0, 0xf3, - 0xa3, 0xb0, 0xb2, 0x15, 0x3a, 0x28, 0x64, 0x43, 0x1f, 0x6c, 0xe0, 0xe4, 0x5f, 0x79, 0xa6, 0x56, - 0xc4, 0x59, 0xff, 0x60, 0xca, 0x3e, 0xa4, 0xfe, 0xfd, 0x9b, 0xaa, 0x0c, 0xe3, 0x46, 0xca, 0xc0, - 0x50, 0x46, 0x1d, 0x5e, 0x02, 0x88, 0xd3, 0x2f, 0x0f, 0x4c, 0x85, 0x33, 0x2f, 0xb2, 0xcc, 0x73, - 0xc5, 0x38, 0xd5, 0x32, 0x26, 0x86, 0x72, 0x7c, 0x40, 0x0e, 0x2a, 0x38, 0xf5, 0x52, 0xc2, 0xd4, - 0x1b, 0xc2, 0xf1, 0x4f, 0x67, 0x3b, 0x8e, 0x39, 0xe6, 0x4d, 0xe9, 0xb7, 0x92, 0xb6, 0x30, 0x94, - 0x75, 0x00, 0x1f, 0x83, 0x2d, 0x39, 0xf8, 0xcc, 0x65, 0xf8, 0x8c, 0x34, 0xfb, 0xac, 0xcd, 0x1d, - 0xa6, 0x6e, 0x8a, 0xda, 0xad, 0x0e, 0x07, 0xda, 0xd6, 0x7e, 0x8e, 0x1d, 0xe5, 0xb2, 0xe0, 0x67, - 0x60, 0xe3, 0xcc, 0xa3, 0x2d, 0xdb, 0xb2, 0x88, 0x1b, 0x29, 0x6d, 0x09, 0xa5, 0xad, 0x30, 0xfe, - 0x47, 0x29, 0x1b, 0xca, 0xa0, 0x21, 0x03, 0xdb, 0x52, 0xb9, 0x41, 0xbd, 0xf6, 0x89, 0x17, 0xb8, - 0x3c, 0xbc, 0x2e, 0x98, 0xba, 0x1d, 0x5f, 0x91, 0xdb, 0xfb, 0x79, 0x80, 0x57, 0x03, 0xed, 0x56, - 0xce, 0x75, 0x95, 0x00, 0xa1, 0x7c, 0x6d, 0xe8, 0x80, 0x55, 0xf9, 0xf6, 0x75, 0xe0, 0x60, 0xc6, - 0x54, 0x55, 0x1c, 0xf5, 0xfb, 0xd3, 0x0b, 0x5b, 0x0c, 0x4f, 0x9f, 0x77, 0xf1, 0xa7, 0x6c, 0x12, - 0x80, 0x12, 0xea, 0xfa, 0xdf, 0x15, 0x70, 0xb3, 0xb0, 0x30, 0xc2, 0xfb, 0x89, 0x07, 0x15, 0x3d, - 0xf5, 0xa0, 0x02, 0xb3, 0xc4, 0x37, 0xf0, 0x9e, 0xf2, 0xb5, 0x02, 0xd4, 0xa2, 0x1b, 0x02, 0x7e, - 0x92, 0x98, 0xe0, 0x7b, 0xa9, 0x09, 0x56, 0x32, 0xbc, 0x37, 0x30, 0xbf, 0x6f, 0x15, 0xf0, 0xce, - 0x94, 0x1d, 0x88, 0x0b, 0x12, 0xb1, 0x26, 0x51, 0x4f, 0x70, 0x78, 0x94, 0x15, 0x91, 0x47, 0xe3, - 0x82, 0x94, 0x83, 0x41, 0x85, 0x6c, 0xf8, 0x0c, 0xdc, 0x90, 0xd5, 0x30, 0x6d, 0x13, 0x9d, 0xfb, - 0xb2, 0xf9, 0xce, 0x70, 0xa0, 0xdd, 0xa8, 0xe7, 0x43, 0x50, 0x11, 0x57, 0xff, 0xa7, 0x02, 0x76, - 0xf2, 0xaf, 0x7c, 0x78, 0x37, 0x11, 0x6e, 0x2d, 0x15, 0xee, 0xeb, 0x29, 0x96, 0x0c, 0xf6, 0x1f, - 0xc0, 0xba, 0x6c, 0x0c, 0x92, 0xef, 0x83, 0x89, 0xa0, 0x87, 0x47, 0x24, 0xec, 0xe9, 0xa5, 0x44, - 0x94, 0xbe, 0xe2, 0xaf, 0x78, 0x72, 0x0c, 0xa5, 0xd4, 0xf4, 0x7f, 0x29, 0xe0, 0xbd, 0x99, 0x97, - 0x2d, 0x34, 0x13, 0x53, 0x37, 0x52, 0x53, 0xaf, 0x16, 0x0b, 0xbc, 0x99, 0x67, 0x42, 0xf3, 0xa3, - 0x17, 0x2f, 0xab, 0x73, 0xdf, 0xbd, 0xac, 0xce, 0x7d, 0xff, 0xb2, 0x3a, 0xf7, 0xe7, 0x61, 0x55, - 0x79, 0x31, 0xac, 0x2a, 0xdf, 0x0d, 0xab, 0xca, 0xf7, 0xc3, 0xaa, 0xf2, 0xdf, 0x61, 0x55, 0xf9, - 0xdb, 0xff, 0xaa, 0x73, 0xbf, 0x5b, 0x92, 0x72, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x5d, 0xe0, - 0x55, 0x1c, 0x41, 0x18, 0x00, 0x00, + // 1904 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x5b, 0x6f, 0xdc, 0xc6, + 0x15, 0x16, 0xbd, 0xba, 0xac, 0x46, 0x17, 0x6b, 0x47, 0x17, 0xd3, 0x4a, 0xb3, 0x74, 0x18, 0xa0, + 0x70, 0xd3, 0x84, 0x1b, 0xcb, 0x8e, 0x6b, 0x34, 0x6d, 0x11, 0x51, 0x2b, 0xd9, 0x0a, 0x2c, 0x6b, + 0x3b, 0x6b, 0x07, 0x6d, 0xe1, 0x16, 0x9d, 0x25, 0x47, 0x2b, 0x46, 0x5c, 0x92, 0xe5, 0x0c, 0x37, + 0xda, 0xb7, 0x3e, 0xf4, 0xa1, 0x8f, 0xfd, 0x03, 0x41, 0x7f, 0x40, 0xd1, 0xa7, 0xfe, 0x88, 0x3a, + 0x40, 0x11, 0xe4, 0x31, 0xe8, 0xc3, 0xa2, 0xde, 0xfe, 0x0b, 0x3f, 0x05, 0x9c, 0x1d, 0x72, 0x79, + 0xdd, 0xb5, 0x0d, 0xd8, 0x6f, 0xe4, 0x9c, 0xef, 0xfb, 0xce, 0xcc, 0x99, 0x33, 0x67, 0x2e, 0x40, + 0xbf, 0xb8, 0x47, 0x35, 0xcb, 0x6d, 0x5c, 0x04, 0x1d, 0xe2, 0x3b, 0x84, 0x11, 0xda, 0xe8, 0x13, + 0xc7, 0x74, 0xfd, 0x86, 0x30, 0x60, 0xcf, 0x6a, 0x78, 0xae, 0x6d, 0x19, 0x83, 0x46, 0xff, 0x56, + 0x87, 0x30, 0x7c, 0xab, 0xd1, 0x25, 0x0e, 0xf1, 0x31, 0x23, 0xa6, 0xe6, 0xf9, 0x2e, 0x73, 0xe1, + 0xf5, 0x31, 0x54, 0xc3, 0x9e, 0xa5, 0x8d, 0xa1, 0x9a, 0x80, 0xee, 0x7e, 0xd4, 0xb5, 0xd8, 0x79, + 0xd0, 0xd1, 0x0c, 0xb7, 0xd7, 0xe8, 0xba, 0x5d, 0xb7, 0xc1, 0x19, 0x9d, 0xe0, 0x8c, 0xff, 0xf1, + 0x1f, 0xfe, 0x35, 0x56, 0xda, 0x55, 0x13, 0x4e, 0x0d, 0xd7, 0x27, 0x8d, 0x7e, 0xce, 0xdb, 0xee, + 0x9d, 0x09, 0xa6, 0x87, 0x8d, 0x73, 0xcb, 0x21, 0xfe, 0xa0, 0xe1, 0x5d, 0x74, 0xc3, 0x06, 0xda, + 0xe8, 0x11, 0x86, 0x8b, 0x58, 0x8d, 0x32, 0x96, 0x1f, 0x38, 0xcc, 0xea, 0x91, 0x1c, 0xe1, 0xee, + 0x2c, 0x02, 0x35, 0xce, 0x49, 0x0f, 0xe7, 0x78, 0xb7, 0xcb, 0x78, 0x01, 0xb3, 0xec, 0x86, 0xe5, + 0x30, 0xca, 0xfc, 0x2c, 0x49, 0xbd, 0x03, 0x36, 0xf6, 0x6d, 0xdb, 0xfd, 0x8a, 0x98, 0x07, 0xed, + 0xe3, 0xa6, 0x6f, 0xf5, 0x89, 0x0f, 0x6f, 0x80, 0x79, 0x07, 0xf7, 0x88, 0x2c, 0xdd, 0x90, 0x6e, + 0x2e, 0xeb, 0xab, 0xcf, 0x86, 0xca, 0xdc, 0x68, 0xa8, 0xcc, 0x3f, 0xc2, 0x3d, 0x82, 0xb8, 0x45, + 0xfd, 0x14, 0xd4, 0x04, 0xeb, 0xc8, 0x26, 0x97, 0x5f, 0xb8, 0x76, 0xd0, 0x23, 0xf0, 0xc7, 0x60, + 0xd1, 0xe4, 0x02, 0x82, 0xb8, 0x2e, 0x88, 0x8b, 0x63, 0x59, 0x24, 0xac, 0x2a, 0x05, 0x57, 0x05, + 0xf9, 0x81, 0x4b, 0x59, 0x0b, 0xb3, 0x73, 0xb8, 0x07, 0x80, 0x87, 0xd9, 0x79, 0xcb, 0x27, 0x67, + 0xd6, 0xa5, 0xa0, 0x43, 0x41, 0x07, 0xad, 0xd8, 0x82, 0x12, 0x28, 0xf8, 0x21, 0xa8, 0xfa, 0x04, + 0x9b, 0xa7, 0x8e, 0x3d, 0x90, 0xaf, 0xdc, 0x90, 0x6e, 0x56, 0xf5, 0x0d, 0xc1, 0xa8, 0x22, 0xd1, + 0x8e, 0x62, 0x84, 0xfa, 0x5f, 0x09, 0x54, 0x0f, 0xfb, 0x96, 0xc1, 0x2c, 0xd7, 0x81, 0x7f, 0x04, + 0xd5, 0x70, 0xb6, 0x4c, 0xcc, 0x30, 0x77, 0xb6, 0xb2, 0xf7, 0xb1, 0x36, 0xc9, 0xa4, 0x38, 0x78, + 0x9a, 0x77, 0xd1, 0x0d, 0x1b, 0xa8, 0x16, 0xa2, 0xb5, 0xfe, 0x2d, 0xed, 0xb4, 0xf3, 0x25, 0x31, + 0xd8, 0x09, 0x61, 0x78, 0xd2, 0xbd, 0x49, 0x1b, 0x8a, 0x55, 0xa1, 0x0d, 0xd6, 0x4c, 0x62, 0x13, + 0x46, 0x4e, 0xbd, 0xd0, 0x23, 0xe5, 0x3d, 0x5c, 0xd9, 0xbb, 0xfd, 0x72, 0x6e, 0x9a, 0x49, 0xaa, + 0x5e, 0x1b, 0x0d, 0x95, 0xb5, 0x54, 0x13, 0x4a, 0x8b, 0xab, 0x5f, 0x4b, 0x60, 0xe7, 0xa8, 0x7d, + 0xdf, 0x77, 0x03, 0xaf, 0xcd, 0xc2, 0xd9, 0xed, 0x0e, 0x84, 0x09, 0xfe, 0x0c, 0xcc, 0xfb, 0x81, + 0x1d, 0xcd, 0xe5, 0xfb, 0xd1, 0x5c, 0xa2, 0xc0, 0x26, 0x2f, 0x86, 0xca, 0x66, 0x86, 0xf5, 0x78, + 0xe0, 0x11, 0xc4, 0x09, 0xf0, 0x73, 0xb0, 0xe8, 0x63, 0xa7, 0x4b, 0xc2, 0xae, 0x57, 0x6e, 0xae, + 0xec, 0xa9, 0x5a, 0xe9, 0x5a, 0xd3, 0x8e, 0x9b, 0x28, 0x84, 0x4e, 0x66, 0x9c, 0xff, 0x52, 0x24, + 0x14, 0xd4, 0x13, 0xb0, 0xc6, 0xa7, 0xda, 0xf5, 0x19, 0xb7, 0xc0, 0x77, 0x41, 0xa5, 0x67, 0x39, + 0xbc, 0x53, 0x0b, 0xfa, 0x8a, 0x60, 0x55, 0x4e, 0x2c, 0x07, 0x85, 0xed, 0xdc, 0x8c, 0x2f, 0x79, + 0xcc, 0x92, 0x66, 0x7c, 0x89, 0xc2, 0x76, 0xf5, 0x3e, 0x58, 0x12, 0x1e, 0x93, 0x42, 0x95, 0xe9, + 0x42, 0x95, 0x02, 0xa1, 0x7f, 0x5c, 0x01, 0x9b, 0x2d, 0xd7, 0x6c, 0x5a, 0xd4, 0x0f, 0x78, 0xbc, + 0xf4, 0xc0, 0xec, 0x12, 0xf6, 0x16, 0xf2, 0xe3, 0x31, 0x98, 0xa7, 0x1e, 0x31, 0x44, 0x5a, 0xec, + 0x4d, 0x89, 0x6d, 0x41, 0xff, 0xda, 0x1e, 0x31, 0x26, 0xcb, 0x32, 0xfc, 0x43, 0x5c, 0x0d, 0x3e, + 0x05, 0x8b, 0x94, 0x61, 0x16, 0x50, 0xb9, 0xc2, 0x75, 0xef, 0xbc, 0xa2, 0x2e, 0xe7, 0x4e, 0x66, + 0x71, 0xfc, 0x8f, 0x84, 0xa6, 0xfa, 0x1f, 0x09, 0x5c, 0x2b, 0x60, 0x3d, 0xb4, 0x28, 0x83, 0x4f, + 0x73, 0x11, 0xd3, 0x5e, 0x2e, 0x62, 0x21, 0x9b, 0xc7, 0x2b, 0x5e, 0xbc, 0x51, 0x4b, 0x22, 0x5a, + 0x6d, 0xb0, 0x60, 0x31, 0xd2, 0x8b, 0x52, 0x51, 0x7b, 0xb5, 0x61, 0xe9, 0x6b, 0x42, 0x7a, 0xe1, + 0x38, 0x14, 0x41, 0x63, 0x2d, 0xf5, 0xdb, 0x2b, 0x85, 0xc3, 0x09, 0xc3, 0x09, 0xcf, 0xc0, 0x6a, + 0xcf, 0x72, 0xf6, 0xfb, 0xd8, 0xb2, 0x71, 0x47, 0xac, 0x9e, 0x69, 0x49, 0x10, 0x56, 0x58, 0x6d, + 0x5c, 0x61, 0xb5, 0x63, 0x87, 0x9d, 0xfa, 0x6d, 0xe6, 0x5b, 0x4e, 0x57, 0xdf, 0x18, 0x0d, 0x95, + 0xd5, 0x93, 0x84, 0x12, 0x4a, 0xe9, 0xc2, 0xdf, 0x83, 0x2a, 0x25, 0x36, 0x31, 0x98, 0xeb, 0xbf, + 0x5a, 0x85, 0x78, 0x88, 0x3b, 0xc4, 0x6e, 0x0b, 0xaa, 0xbe, 0x1a, 0xc6, 0x2d, 0xfa, 0x43, 0xb1, + 0x24, 0xb4, 0xc1, 0x7a, 0x0f, 0x5f, 0x3e, 0x71, 0x70, 0x3c, 0x90, 0xca, 0x6b, 0x0e, 0x04, 0x8e, + 0x86, 0xca, 0xfa, 0x49, 0x4a, 0x0b, 0x65, 0xb4, 0xd5, 0x7f, 0x2f, 0x80, 0xeb, 0xa5, 0x59, 0x05, + 0x3f, 0x07, 0xd0, 0xed, 0x50, 0xe2, 0xf7, 0x89, 0x79, 0x7f, 0xbc, 0x07, 0x59, 0x6e, 0xb4, 0x70, + 0x77, 0xc5, 0x04, 0xc1, 0xd3, 0x1c, 0x02, 0x15, 0xb0, 0xe0, 0x5f, 0x24, 0xb0, 0x66, 0x8e, 0xdd, + 0x10, 0xb3, 0xe5, 0x9a, 0x51, 0x62, 0xdc, 0x7f, 0x9d, 0x7c, 0xd7, 0x9a, 0x49, 0xa5, 0x43, 0x87, + 0xf9, 0x03, 0x7d, 0x5b, 0x74, 0x68, 0x2d, 0x65, 0x43, 0x69, 0xa7, 0xe1, 0x90, 0xcc, 0x58, 0x92, + 0x8a, 0x3d, 0x8d, 0x87, 0x78, 0x61, 0x32, 0xa4, 0x66, 0x0e, 0x81, 0x0a, 0x58, 0xf0, 0x57, 0x60, + 0xdd, 0x08, 0x7c, 0x9f, 0x38, 0xec, 0x01, 0xc1, 0x36, 0x3b, 0x1f, 0xc8, 0xf3, 0x5c, 0x67, 0x47, + 0xe8, 0xac, 0x1f, 0xa4, 0xac, 0x28, 0x83, 0x0e, 0xf9, 0x26, 0xa1, 0x96, 0x4f, 0xcc, 0x88, 0xbf, + 0x90, 0xe6, 0x37, 0x53, 0x56, 0x94, 0x41, 0xc3, 0x7b, 0x60, 0x95, 0x5c, 0x7a, 0xc4, 0x88, 0x02, + 0xba, 0xc8, 0xd9, 0x5b, 0x82, 0xbd, 0x7a, 0x98, 0xb0, 0xa1, 0x14, 0x12, 0x1a, 0x00, 0x18, 0xae, + 0x63, 0x5a, 0xe3, 0x7d, 0x6e, 0x89, 0x4f, 0x44, 0xe3, 0xe5, 0xb2, 0xf8, 0x20, 0xe2, 0x4d, 0xaa, + 0x65, 0xdc, 0x44, 0x51, 0x42, 0x76, 0xd7, 0x06, 0x30, 0x3f, 0x4d, 0x70, 0x03, 0x54, 0x2e, 0xc8, + 0x60, 0xbc, 0xb7, 0xa1, 0xf0, 0x13, 0x7e, 0x06, 0x16, 0xfa, 0xd8, 0x0e, 0x88, 0x58, 0x4d, 0x1f, + 0xbc, 0x5c, 0x3f, 0x1e, 0x5b, 0x3d, 0x82, 0xc6, 0xc4, 0x9f, 0x5f, 0xb9, 0x27, 0xa9, 0xdf, 0x48, + 0xa0, 0xd6, 0x72, 0xcd, 0x36, 0x31, 0x02, 0xdf, 0x62, 0x83, 0x16, 0xcf, 0xa4, 0xb7, 0xb0, 0x2b, + 0xa0, 0xd4, 0xae, 0xf0, 0xf1, 0xf4, 0x6c, 0x4e, 0xf7, 0xae, 0x6c, 0x4f, 0x50, 0x9f, 0x49, 0x60, + 0x3b, 0x87, 0x7e, 0x0b, 0x35, 0xfb, 0xd7, 0xe9, 0x9a, 0xfd, 0xe1, 0xab, 0x0c, 0xa6, 0xa4, 0x62, + 0x7f, 0x53, 0x2b, 0x18, 0x0a, 0xaf, 0xd7, 0xe1, 0xf9, 0xd1, 0xb7, 0xfa, 0x96, 0x4d, 0xba, 0xc4, + 0xe4, 0x83, 0xa9, 0x26, 0xce, 0x8f, 0xb1, 0x05, 0x25, 0x50, 0x90, 0x82, 0x1d, 0x93, 0x9c, 0xe1, + 0xc0, 0x66, 0xfb, 0xa6, 0x79, 0x80, 0x3d, 0xdc, 0xb1, 0x6c, 0x8b, 0x59, 0xe2, 0xc0, 0xb3, 0xac, + 0x7f, 0x3a, 0x1a, 0x2a, 0x3b, 0xcd, 0x42, 0xc4, 0x8b, 0xa1, 0xf2, 0x6e, 0xfe, 0xbe, 0xa0, 0xc5, + 0x90, 0x01, 0x2a, 0x91, 0x86, 0x03, 0x20, 0xfb, 0xe4, 0x4f, 0x41, 0xb8, 0xf2, 0x9a, 0xbe, 0xeb, + 0xa5, 0xdc, 0x56, 0xb8, 0xdb, 0x5f, 0x8e, 0x86, 0x8a, 0x8c, 0x4a, 0x30, 0xb3, 0x1d, 0x97, 0xca, + 0xc3, 0x2f, 0xc1, 0x26, 0x16, 0x27, 0xfd, 0xa4, 0xd7, 0x79, 0xee, 0xf5, 0xde, 0x68, 0xa8, 0x6c, + 0xee, 0xe7, 0xcd, 0xb3, 0x1d, 0x16, 0x89, 0xc2, 0x06, 0x58, 0xea, 0xf3, 0x4b, 0x01, 0x95, 0x17, + 0xb8, 0xfe, 0xf6, 0x68, 0xa8, 0x2c, 0x8d, 0xef, 0x09, 0xa1, 0xe6, 0xe2, 0x51, 0x9b, 0x1f, 0x35, + 0x23, 0x14, 0xfc, 0x04, 0xac, 0x9c, 0xbb, 0x94, 0x3d, 0x22, 0xec, 0x2b, 0xd7, 0xbf, 0xe0, 0xd5, + 0xa7, 0xaa, 0x6f, 0x8a, 0x19, 0x5c, 0x79, 0x30, 0x31, 0xa1, 0x24, 0x0e, 0xfe, 0x16, 0x2c, 0x9f, + 0x8b, 0x83, 0x65, 0x54, 0x7a, 0x6e, 0x4e, 0x49, 0xb4, 0xd4, 0x21, 0x54, 0xaf, 0x09, 0xf9, 0xe5, + 0xa8, 0x99, 0xa2, 0x89, 0x1a, 0xfc, 0x09, 0x58, 0xe2, 0x3f, 0xc7, 0x4d, 0xb9, 0xca, 0x7b, 0x73, + 0x55, 0xc0, 0x97, 0x1e, 0x8c, 0x9b, 0x51, 0x64, 0x8f, 0xa0, 0xc7, 0xad, 0x03, 0x79, 0x39, 0x0f, + 0x3d, 0x6e, 0x1d, 0xa0, 0xc8, 0x0e, 0x9f, 0x82, 0x25, 0x4a, 0x1e, 0x5a, 0x4e, 0x70, 0x29, 0x03, + 0xbe, 0xe4, 0x6e, 0x4d, 0xe9, 0x6e, 0xfb, 0x90, 0x23, 0x33, 0x47, 0xfa, 0x89, 0xba, 0xb0, 0xa3, + 0x48, 0x12, 0x9a, 0x60, 0xd9, 0x0f, 0x9c, 0x7d, 0xfa, 0x84, 0x12, 0x5f, 0x5e, 0xc9, 0x9d, 0x27, + 0xb2, 0xfa, 0x28, 0xc2, 0x66, 0x3d, 0xc4, 0x91, 0x89, 0x11, 0x68, 0x22, 0x0c, 0x4d, 0x00, 0xf8, + 0x0f, 0xbf, 0x39, 0xc8, 0x3b, 0x33, 0x4f, 0x9a, 0x28, 0x06, 0x67, 0xfd, 0xac, 0x87, 0xcb, 0x73, + 0x62, 0x46, 0x09, 0x5d, 0xf8, 0x57, 0x09, 0x40, 0x1a, 0x78, 0x9e, 0x4d, 0x7a, 0xc4, 0x61, 0xd8, + 0xe6, 0xad, 0x54, 0x5e, 0xe5, 0xee, 0x7e, 0x31, 0x2d, 0x6a, 0x39, 0x52, 0xd6, 0x6d, 0xbc, 0x37, + 0xe7, 0xa1, 0xa8, 0xc0, 0x67, 0x38, 0x69, 0x67, 0x62, 0xb4, 0x6b, 0x33, 0x27, 0xad, 0xf8, 0x1e, + 0x36, 0x99, 0x34, 0x61, 0x47, 0x91, 0x24, 0xfc, 0x02, 0xec, 0x44, 0xb7, 0x54, 0xe4, 0xba, 0xec, + 0xc8, 0xb2, 0x09, 0x1d, 0x50, 0x46, 0x7a, 0xf2, 0x3a, 0x4f, 0xa6, 0xba, 0x60, 0xee, 0xa0, 0x42, + 0x14, 0x2a, 0x61, 0xc3, 0x1e, 0x50, 0xa2, 0x22, 0x14, 0xae, 0xd0, 0xb8, 0x0a, 0x1e, 0x52, 0x03, + 0xdb, 0xe3, 0xd3, 0xd7, 0x55, 0xee, 0xe0, 0xfd, 0xd1, 0x50, 0x51, 0x9a, 0xd3, 0xa1, 0x68, 0x96, + 0x16, 0xfc, 0x0d, 0x90, 0x71, 0x99, 0x9f, 0x0d, 0xee, 0xe7, 0x47, 0x61, 0x65, 0x2b, 0x75, 0x50, + 0xca, 0x86, 0x1e, 0xd8, 0xc0, 0xe9, 0xf7, 0x02, 0x2a, 0xd7, 0xf8, 0x5a, 0xff, 0x60, 0xca, 0x3c, + 0x64, 0x9e, 0x18, 0x74, 0x59, 0x84, 0x71, 0x23, 0x63, 0xa0, 0x28, 0xa7, 0x0e, 0x2f, 0x01, 0xc4, + 0xd9, 0xe7, 0x0d, 0x2a, 0xc3, 0x99, 0x1b, 0x59, 0xee, 0x4d, 0x64, 0x92, 0x6a, 0x39, 0x13, 0x45, + 0x05, 0x3e, 0x20, 0x03, 0x35, 0x9c, 0x79, 0x8e, 0xa1, 0xf2, 0x35, 0xee, 0xf8, 0xa7, 0xb3, 0x1d, + 0xc7, 0x1c, 0xfd, 0xba, 0xf0, 0x5b, 0xcb, 0x5a, 0x28, 0xca, 0x3b, 0x80, 0x0f, 0xc1, 0x96, 0x68, + 0x7c, 0xe2, 0x50, 0x7c, 0x46, 0xda, 0x03, 0x6a, 0x30, 0x9b, 0xca, 0x9b, 0xbc, 0x76, 0xcb, 0xa3, + 0xa1, 0xb2, 0xb5, 0x5f, 0x60, 0x47, 0x85, 0x2c, 0xf8, 0x19, 0xd8, 0x38, 0x73, 0xfd, 0x8e, 0x65, + 0x9a, 0xc4, 0x89, 0x94, 0xb6, 0xb8, 0xd2, 0x56, 0x18, 0xff, 0xa3, 0x8c, 0x0d, 0xe5, 0xd0, 0x90, + 0x82, 0x6d, 0xa1, 0xdc, 0xf2, 0x5d, 0xe3, 0xc4, 0x0d, 0x1c, 0x16, 0x6e, 0x17, 0x54, 0xde, 0x8e, + 0xb7, 0xc8, 0xed, 0xfd, 0x22, 0xc0, 0x8b, 0xa1, 0x72, 0xa3, 0x60, 0xbb, 0x4a, 0x81, 0x50, 0xb1, + 0x36, 0xb4, 0xc1, 0xaa, 0x78, 0x60, 0x3b, 0xb0, 0x31, 0xa5, 0xb2, 0xcc, 0x97, 0xfa, 0xdd, 0xe9, + 0x85, 0x2d, 0x86, 0x67, 0xd7, 0x3b, 0xbf, 0xf9, 0x25, 0x01, 0x28, 0xa5, 0xae, 0xfe, 0x5d, 0x02, + 0xd7, 0x4b, 0x0b, 0x23, 0xbc, 0x9b, 0x7a, 0xb5, 0x51, 0x33, 0xaf, 0x36, 0x30, 0x4f, 0x7c, 0x03, + 0x8f, 0x36, 0x5f, 0x4b, 0x40, 0x2e, 0xdb, 0x21, 0xe0, 0x27, 0xa9, 0x0e, 0xbe, 0x97, 0xe9, 0x60, + 0x2d, 0xc7, 0x7b, 0x03, 0xfd, 0xfb, 0x56, 0x02, 0xef, 0x4c, 0x99, 0x81, 0xb8, 0x20, 0x11, 0x33, + 0x89, 0x7a, 0x84, 0xc3, 0xa5, 0x2c, 0xf1, 0x3c, 0x9a, 0x14, 0xa4, 0x02, 0x0c, 0x2a, 0x65, 0xc3, + 0x27, 0xe0, 0x9a, 0xa8, 0x86, 0x59, 0x1b, 0x3f, 0xb9, 0x2f, 0xeb, 0xef, 0x8c, 0x86, 0xca, 0xb5, + 0x66, 0x31, 0x04, 0x95, 0x71, 0xd5, 0x7f, 0x4a, 0x60, 0xa7, 0x78, 0xcb, 0x87, 0xb7, 0x53, 0xe1, + 0x56, 0x32, 0xe1, 0xbe, 0x9a, 0x61, 0x89, 0x60, 0xff, 0x01, 0xac, 0x8b, 0x83, 0x41, 0xfa, 0x11, + 0x32, 0x15, 0xf4, 0x70, 0x89, 0x84, 0x67, 0x7a, 0x21, 0x11, 0xa5, 0x2f, 0xbf, 0xef, 0xa7, 0xdb, + 0x50, 0x46, 0x4d, 0xfd, 0x97, 0x04, 0xde, 0x9b, 0xb9, 0xd9, 0x42, 0x3d, 0xd5, 0x75, 0x2d, 0xd3, + 0xf5, 0x7a, 0xb9, 0xc0, 0x9b, 0x79, 0x8b, 0xd4, 0x3f, 0x7a, 0xf6, 0xbc, 0x3e, 0xf7, 0xdd, 0xf3, + 0xfa, 0xdc, 0xf7, 0xcf, 0xeb, 0x73, 0x7f, 0x1e, 0xd5, 0xa5, 0x67, 0xa3, 0xba, 0xf4, 0xdd, 0xa8, + 0x2e, 0x7d, 0x3f, 0xaa, 0x4b, 0xff, 0x1b, 0xd5, 0xa5, 0xbf, 0xfd, 0xbf, 0x3e, 0xf7, 0xbb, 0x25, + 0x21, 0xf7, 0x43, 0x00, 0x00, 0x00, 0xff, 0xff, 0xde, 0x4e, 0x7c, 0x8c, 0xa6, 0x18, 0x00, 0x00, } func (m *AllowedCSIDriver) Marshal() (dAtA []byte, err error) { @@ -1146,6 +1147,20 @@ func (m *PodDisruptionBudgetStatus) MarshalToSizedBuffer(dAtA []byte) (int, erro _ = i var l int _ = l + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } i = encodeVarintGenerated(dAtA, i, uint64(m.ExpectedPods)) i-- dAtA[i] = 0x30 @@ -1944,6 +1959,12 @@ func (m *PodDisruptionBudgetStatus) Size() (n int) { n += 1 + sovGenerated(uint64(m.CurrentHealthy)) n += 1 + sovGenerated(uint64(m.DesiredHealthy)) n += 1 + sovGenerated(uint64(m.ExpectedPods)) + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -2294,6 +2315,11 @@ func (this *PodDisruptionBudgetStatus) String() string { if this == nil { return "nil" } + repeatedStringForConditions := "[]Condition{" + for _, f := range this.Conditions { + repeatedStringForConditions += fmt.Sprintf("%v", f) + "," + } + repeatedStringForConditions += "}" keysForDisruptedPods := make([]string, 0, len(this.DisruptedPods)) for k := range this.DisruptedPods { keysForDisruptedPods = append(keysForDisruptedPods, k) @@ -2311,6 +2337,7 @@ func (this *PodDisruptionBudgetStatus) String() string { `CurrentHealthy:` + fmt.Sprintf("%v", this.CurrentHealthy) + `,`, `DesiredHealthy:` + fmt.Sprintf("%v", this.DesiredHealthy) + `,`, `ExpectedPods:` + fmt.Sprintf("%v", this.ExpectedPods) + `,`, + `Conditions:` + repeatedStringForConditions + `,`, `}`, }, "") return s @@ -2540,10 +2567,7 @@ func (m *AllowedCSIDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2625,10 +2649,7 @@ func (m *AllowedFlexVolume) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2730,10 +2751,7 @@ func (m *AllowedHostPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2852,10 +2870,7 @@ func (m *Eviction) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2971,10 +2986,7 @@ func (m *FSGroupStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3062,10 +3074,7 @@ func (m *HostPortRange) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3153,10 +3162,7 @@ func (m *IDRange) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3305,10 +3311,7 @@ func (m *PodDisruptionBudget) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3425,10 +3428,7 @@ func (m *PodDisruptionBudgetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3586,10 +3586,7 @@ func (m *PodDisruptionBudgetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3770,7 +3767,7 @@ func (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3857,16 +3854,47 @@ func (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error { break } } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, v1.Condition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3982,10 +4010,7 @@ func (m *PodSecurityPolicy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4102,10 +4127,7 @@ func (m *PodSecurityPolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4861,10 +4883,7 @@ func (m *PodSecurityPolicySpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4980,10 +4999,7 @@ func (m *RunAsGroupStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5099,10 +5115,7 @@ func (m *RunAsUserStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5217,10 +5230,7 @@ func (m *RuntimeClassStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5338,10 +5348,7 @@ func (m *SELinuxStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5457,10 +5464,7 @@ func (m *SupplementalGroupsStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/policy/v1beta1/generated.proto b/vendor/k8s.io/api/policy/v1beta1/generated.proto index 18a1c65786..a47212142d 100644 --- a/vendor/k8s.io/api/policy/v1beta1/generated.proto +++ b/vendor/k8s.io/api/policy/v1beta1/generated.proto @@ -136,6 +136,10 @@ message PodDisruptionBudgetSpec { // Label query over pods whose evictions are managed by the disruption // budget. + // A null selector selects no pods. + // An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods. + // In policy/v1, an empty selector will select all pods in the namespace. + // +patchStrategy=replace // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; @@ -180,10 +184,31 @@ message PodDisruptionBudgetStatus { // total number of pods counted by this disruption budget optional int32 expectedPods = 6; + + // Conditions contain conditions for PDB. The disruption controller sets the + // DisruptionAllowed condition. The following are known values for the reason field + // (additional reasons could be added in the future): + // - SyncFailed: The controller encountered an error and wasn't able to compute + // the number of allowed disruptions. Therefore no disruptions are + // allowed and the status of the condition will be False. + // - InsufficientPods: The number of pods are either at or below the number + // required by the PodDisruptionBudget. No disruptions are + // allowed and the status of the condition will be False. + // - SufficientPods: There are more pods than required by the PodDisruptionBudget. + // The condition will be True, and the number of allowed + // disruptions are provided by the disruptionsAllowed property. + // + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + // +listType=map + // +listMapKey=type + repeated k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 7; } // PodSecurityPolicy governs the ability to make requests that affect the Security Context // that will be applied to a pod and container. +// Deprecated in 1.21. message PodSecurityPolicy { // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata diff --git a/vendor/k8s.io/api/policy/v1beta1/types.go b/vendor/k8s.io/api/policy/v1beta1/types.go index 711afc80c7..2811044518 100644 --- a/vendor/k8s.io/api/policy/v1beta1/types.go +++ b/vendor/k8s.io/api/policy/v1beta1/types.go @@ -33,8 +33,12 @@ type PodDisruptionBudgetSpec struct { // Label query over pods whose evictions are managed by the disruption // budget. + // A null selector selects no pods. + // An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods. + // In policy/v1, an empty selector will select all pods in the namespace. + // +patchStrategy=replace // +optional - Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,2,opt,name=selector"` + Selector *metav1.LabelSelector `json:"selector,omitempty" patchStrategy:"replace" protobuf:"bytes,2,opt,name=selector"` // An eviction is allowed if at most "maxUnavailable" pods selected by // "selector" are unavailable after the eviction, i.e. even in absence of @@ -77,12 +81,50 @@ type PodDisruptionBudgetStatus struct { // total number of pods counted by this disruption budget ExpectedPods int32 `json:"expectedPods" protobuf:"varint,6,opt,name=expectedPods"` + + // Conditions contain conditions for PDB. The disruption controller sets the + // DisruptionAllowed condition. The following are known values for the reason field + // (additional reasons could be added in the future): + // - SyncFailed: The controller encountered an error and wasn't able to compute + // the number of allowed disruptions. Therefore no disruptions are + // allowed and the status of the condition will be False. + // - InsufficientPods: The number of pods are either at or below the number + // required by the PodDisruptionBudget. No disruptions are + // allowed and the status of the condition will be False. + // - SufficientPods: There are more pods than required by the PodDisruptionBudget. + // The condition will be True, and the number of allowed + // disruptions are provided by the disruptionsAllowed property. + // + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + // +listType=map + // +listMapKey=type + Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,7,rep,name=conditions"` } +const ( + // DisruptionAllowedCondition is a condition set by the disruption controller + // that signal whether any of the pods covered by the PDB can be disrupted. + DisruptionAllowedCondition = "DisruptionAllowed" + + // SyncFailedReason is set on the DisruptionAllowed condition if reconcile + // of the PDB failed and therefore disruption of pods are not allowed. + SyncFailedReason = "SyncFailed" + // SufficientPodsReason is set on the DisruptionAllowed condition if there are + // more pods covered by the PDB than required and at least one can be disrupted. + SufficientPodsReason = "SufficientPods" + // InsufficientPodsReason is set on the DisruptionAllowed condition if the number + // of pods are equal to or fewer than required by the PDB. + InsufficientPodsReason = "InsufficientPods" +) + // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:prerelease-lifecycle-gen:introduced=1.5 -// +k8s:prerelease-lifecycle-gen:deprecated=1.22 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:removed=1.25 +// +k8s:prerelease-lifecycle-gen:replacement=policy,v1,PodDisruptionBudget // PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods type PodDisruptionBudget struct { @@ -100,7 +142,9 @@ type PodDisruptionBudget struct { // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:prerelease-lifecycle-gen:introduced=1.5 -// +k8s:prerelease-lifecycle-gen:deprecated=1.22 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:removed=1.25 +// +k8s:prerelease-lifecycle-gen:replacement=policy,v1,PodDisruptionBudgetList // PodDisruptionBudgetList is a collection of PodDisruptionBudgets. type PodDisruptionBudgetList struct { @@ -135,10 +179,12 @@ type Eviction struct { // +genclient:nonNamespaced // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:prerelease-lifecycle-gen:introduced=1.10 -// +k8s:prerelease-lifecycle-gen:deprecated=1.22 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:removed=1.25 // PodSecurityPolicy governs the ability to make requests that affect the Security Context // that will be applied to a pod and container. +// Deprecated in 1.21. type PodSecurityPolicy struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. @@ -485,7 +531,8 @@ const AllowAllRuntimeClassNames = "*" // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:prerelease-lifecycle-gen:introduced=1.10 -// +k8s:prerelease-lifecycle-gen:deprecated=1.22 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:removed=1.25 // PodSecurityPolicyList is a list of PodSecurityPolicy objects. type PodSecurityPolicyList struct { diff --git a/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go index 05a503667f..0853a5e996 100644 --- a/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go @@ -116,7 +116,7 @@ func (PodDisruptionBudgetList) SwaggerDoc() map[string]string { var map_PodDisruptionBudgetSpec = map[string]string{ "": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", "minAvailable": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\".", - "selector": "Label query over pods whose evictions are managed by the disruption budget.", + "selector": "Label query over pods whose evictions are managed by the disruption budget. A null selector selects no pods. An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods. In policy/v1, an empty selector will select all pods in the namespace.", "maxUnavailable": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\".", } @@ -132,6 +132,7 @@ var map_PodDisruptionBudgetStatus = map[string]string{ "currentHealthy": "current number of healthy pods", "desiredHealthy": "minimum desired number of healthy pods", "expectedPods": "total number of pods counted by this disruption budget", + "conditions": "Conditions contain conditions for PDB. The disruption controller sets the DisruptionAllowed condition. The following are known values for the reason field (additional reasons could be added in the future): - SyncFailed: The controller encountered an error and wasn't able to compute\n the number of allowed disruptions. Therefore no disruptions are\n allowed and the status of the condition will be False.\n- InsufficientPods: The number of pods are either at or below the number\n required by the PodDisruptionBudget. No disruptions are\n allowed and the status of the condition will be False.\n- SufficientPods: There are more pods than required by the PodDisruptionBudget.\n The condition will be True, and the number of allowed\n disruptions are provided by the disruptionsAllowed property.", } func (PodDisruptionBudgetStatus) SwaggerDoc() map[string]string { @@ -139,7 +140,7 @@ func (PodDisruptionBudgetStatus) SwaggerDoc() map[string]string { } var map_PodSecurityPolicy = map[string]string{ - "": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", + "": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated in 1.21.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", "spec": "spec defines the policy enforced.", } diff --git a/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go index 75851e124a..02d8a85cf7 100644 --- a/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go @@ -261,6 +261,13 @@ func (in *PodDisruptionBudgetStatus) DeepCopyInto(out *PodDisruptionBudgetStatus (*out)[key] = *val.DeepCopy() } } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]v1.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } diff --git a/vendor/k8s.io/api/policy/v1beta1/zz_generated.prerelease-lifecycle.go b/vendor/k8s.io/api/policy/v1beta1/zz_generated.prerelease-lifecycle.go index fca0a2a2ff..8bda4b00f2 100644 --- a/vendor/k8s.io/api/policy/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/vendor/k8s.io/api/policy/v1beta1/zz_generated.prerelease-lifecycle.go @@ -20,6 +20,10 @@ limitations under the License. package v1beta1 +import ( + schema "k8s.io/apimachinery/pkg/runtime/schema" +) + // APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. func (in *Eviction) APILifecycleIntroduced() (major, minor int) { @@ -47,7 +51,13 @@ func (in *PodDisruptionBudget) APILifecycleIntroduced() (major, minor int) { // APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. func (in *PodDisruptionBudget) APILifecycleDeprecated() (major, minor int) { - return 1, 22 + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *PodDisruptionBudget) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "policy", Version: "v1", Kind: "PodDisruptionBudget"} } // APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. @@ -65,7 +75,13 @@ func (in *PodDisruptionBudgetList) APILifecycleIntroduced() (major, minor int) { // APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. func (in *PodDisruptionBudgetList) APILifecycleDeprecated() (major, minor int) { - return 1, 22 + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *PodDisruptionBudgetList) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "policy", Version: "v1", Kind: "PodDisruptionBudgetList"} } // APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. @@ -83,7 +99,7 @@ func (in *PodSecurityPolicy) APILifecycleIntroduced() (major, minor int) { // APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. func (in *PodSecurityPolicy) APILifecycleDeprecated() (major, minor int) { - return 1, 22 + return 1, 21 } // APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. @@ -101,7 +117,7 @@ func (in *PodSecurityPolicyList) APILifecycleIntroduced() (major, minor int) { // APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. func (in *PodSecurityPolicyList) APILifecycleDeprecated() (major, minor int) { - return 1, 22 + return 1, 21 } // APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. diff --git a/vendor/k8s.io/api/rbac/v1/generated.pb.go b/vendor/k8s.io/api/rbac/v1/generated.pb.go index ba6872d624..678c00512e 100644 --- a/vendor/k8s.io/api/rbac/v1/generated.pb.go +++ b/vendor/k8s.io/api/rbac/v1/generated.pb.go @@ -1557,10 +1557,7 @@ func (m *AggregationRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1713,10 +1710,7 @@ func (m *ClusterRole) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1866,10 +1860,7 @@ func (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1986,10 +1977,7 @@ func (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2106,10 +2094,7 @@ func (m *ClusterRoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2319,10 +2304,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2439,10 +2421,7 @@ func (m *Role) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2592,10 +2571,7 @@ func (m *RoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2712,10 +2688,7 @@ func (m *RoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2832,10 +2805,7 @@ func (m *RoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2981,10 +2951,7 @@ func (m *RoleRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3162,10 +3129,7 @@ func (m *Subject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go b/vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go index 3b12526da9..94c1bef8bb 100644 --- a/vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go @@ -1558,10 +1558,7 @@ func (m *AggregationRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1714,10 +1711,7 @@ func (m *ClusterRole) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1867,10 +1861,7 @@ func (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1987,10 +1978,7 @@ func (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2107,10 +2095,7 @@ func (m *ClusterRoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2320,10 +2305,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2440,10 +2422,7 @@ func (m *Role) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2593,10 +2572,7 @@ func (m *RoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2713,10 +2689,7 @@ func (m *RoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2833,10 +2806,7 @@ func (m *RoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2982,10 +2952,7 @@ func (m *RoleRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3163,10 +3130,7 @@ func (m *Subject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/rbac/v1beta1/generated.pb.go b/vendor/k8s.io/api/rbac/v1beta1/generated.pb.go index 53d36320e4..ad5d7cb05f 100644 --- a/vendor/k8s.io/api/rbac/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/rbac/v1beta1/generated.pb.go @@ -1557,10 +1557,7 @@ func (m *AggregationRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1713,10 +1710,7 @@ func (m *ClusterRole) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1866,10 +1860,7 @@ func (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1986,10 +1977,7 @@ func (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2106,10 +2094,7 @@ func (m *ClusterRoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2319,10 +2304,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2439,10 +2421,7 @@ func (m *Role) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2592,10 +2571,7 @@ func (m *RoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2712,10 +2688,7 @@ func (m *RoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2832,10 +2805,7 @@ func (m *RoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2981,10 +2951,7 @@ func (m *RoleRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3162,10 +3129,7 @@ func (m *Subject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/scheduling/v1/generated.pb.go b/vendor/k8s.io/api/scheduling/v1/generated.pb.go index efc3102efe..c5ef2f50ec 100644 --- a/vendor/k8s.io/api/scheduling/v1/generated.pb.go +++ b/vendor/k8s.io/api/scheduling/v1/generated.pb.go @@ -511,10 +511,7 @@ func (m *PriorityClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -631,10 +628,7 @@ func (m *PriorityClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go b/vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go index 8a62104dbe..16f3c7cb4c 100644 --- a/vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go @@ -511,10 +511,7 @@ func (m *PriorityClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -631,10 +628,7 @@ func (m *PriorityClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/scheduling/v1beta1/generated.pb.go b/vendor/k8s.io/api/scheduling/v1beta1/generated.pb.go index b89af56b3b..64b1c15057 100644 --- a/vendor/k8s.io/api/scheduling/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/scheduling/v1beta1/generated.pb.go @@ -511,10 +511,7 @@ func (m *PriorityClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -631,10 +628,7 @@ func (m *PriorityClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/storage/v1/generated.pb.go b/vendor/k8s.io/api/storage/v1/generated.pb.go index f6b97e013c..34a3c34dc2 100644 --- a/vendor/k8s.io/api/storage/v1/generated.pb.go +++ b/vendor/k8s.io/api/storage/v1/generated.pb.go @@ -2237,10 +2237,7 @@ func (m *CSIDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2357,10 +2354,7 @@ func (m *CSIDriverList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2593,10 +2587,7 @@ func (m *CSIDriverSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2712,10 +2703,7 @@ func (m *CSINode) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2897,10 +2885,7 @@ func (m *CSINodeDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3017,10 +3002,7 @@ func (m *CSINodeList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3104,10 +3086,7 @@ func (m *CSINodeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3332,7 +3311,7 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3502,10 +3481,7 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3622,10 +3598,7 @@ func (m *StorageClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3727,10 +3700,7 @@ func (m *TokenRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3879,10 +3849,7 @@ func (m *VolumeAttachment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3999,10 +3966,7 @@ func (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4121,10 +4085,7 @@ func (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4271,10 +4232,7 @@ func (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4454,7 +4412,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -4543,10 +4501,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4661,10 +4616,7 @@ func (m *VolumeError) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4734,10 +4686,7 @@ func (m *VolumeNodeResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/storage/v1/generated.proto b/vendor/k8s.io/api/storage/v1/generated.proto index d6b4d9cbd0..0e9a2e1da3 100644 --- a/vendor/k8s.io/api/storage/v1/generated.proto +++ b/vendor/k8s.io/api/storage/v1/generated.proto @@ -72,6 +72,9 @@ message CSIDriverSpec { // If the CSIDriverRegistry feature gate is enabled and the value is // specified to false, the attach operation will be skipped. // Otherwise the attach operation will be called. + // + // This field is immutable. + // // +optional optional bool attachRequired = 1; @@ -90,7 +93,7 @@ message CSIDriverSpec { // "csi.storage.k8s.io/pod.name": pod.Name // "csi.storage.k8s.io/pod.namespace": pod.Namespace // "csi.storage.k8s.io/pod.uid": string(pod.UID) - // "csi.storage.k8s.io/ephemeral": "true" iff the volume is an ephemeral inline volume + // "csi.storage.k8s.io/ephemeral": "true" if the volume is an ephemeral inline volume // defined by a CSIVolumeSource, otherwise "false" // // "csi.storage.k8s.io/ephemeral" is a new feature in Kubernetes 1.16. It is only @@ -99,6 +102,9 @@ message CSIDriverSpec { // As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when // deployed on such a cluster and the deployment determines which mode that is, for example // via a command line parameter of the driver. + // + // This field is immutable. + // // +optional optional bool podInfoOnMount = 2; @@ -115,6 +121,9 @@ message CSIDriverSpec { // A driver can support one or more of these modes and // more modes may be added in the future. // This field is beta. + // + // This field is immutable. + // // +optional // +listType=set repeated string volumeLifecycleModes = 3; @@ -133,10 +142,13 @@ message CSIDriverSpec { // unset or false and it can be flipped later when storage // capacity information has been published. // - // This is an alpha field and only available when the CSIStorageCapacity + // This field is immutable. + // + // This is a beta field and only available when the CSIStorageCapacity // feature is enabled. The default is false. // // +optional + // +featureGate=CSIStorageCapacity optional bool storageCapacity = 4; // Defines if the underlying volume supports changing ownership and @@ -144,6 +156,9 @@ message CSIDriverSpec { // Refer to the specific FSGroupPolicy values for additional details. // This field is alpha-level, and is only honored by servers // that enable the CSIVolumeFSGroupPolicy feature gate. + // + // This field is immutable. + // // +optional optional string fsGroupPolicy = 5; @@ -163,7 +178,7 @@ message CSIDriverSpec { // most one token is empty string. To receive a new token after expiry, // RequiresRepublish can be used to trigger NodePublishVolume periodically. // - // This is an alpha feature and only available when the + // This is a beta feature and only available when the // CSIServiceAccountToken feature is enabled. // // +optional @@ -178,7 +193,7 @@ message CSIDriverSpec { // to NodePublishVolume should only update the contents of the volume. New // mount points will not be seen by a running container. // - // This is an alpha feature and only available when the + // This is a beta feature and only available when the // CSIServiceAccountToken feature is enabled. // // +optional @@ -376,7 +391,7 @@ message VolumeAttachmentSource { // a persistent volume defined by a pod's inline VolumeSource. This field // is populated only for the CSIMigration feature. It contains // translated fields from a pod's inline VolumeSource to a - // PersistentVolumeSpec. This field is alpha-level and is only + // PersistentVolumeSpec. This field is beta-level and is only // honored by servers that enabled the CSIMigration feature. // +optional optional k8s.io.api.core.v1.PersistentVolumeSpec inlineVolumeSpec = 2; diff --git a/vendor/k8s.io/api/storage/v1/types.go b/vendor/k8s.io/api/storage/v1/types.go index 18d0fb8772..6a7bf49292 100644 --- a/vendor/k8s.io/api/storage/v1/types.go +++ b/vendor/k8s.io/api/storage/v1/types.go @@ -170,7 +170,7 @@ type VolumeAttachmentSource struct { // a persistent volume defined by a pod's inline VolumeSource. This field // is populated only for the CSIMigration feature. It contains // translated fields from a pod's inline VolumeSource to a - // PersistentVolumeSpec. This field is alpha-level and is only + // PersistentVolumeSpec. This field is beta-level and is only // honored by servers that enabled the CSIMigration feature. // +optional InlineVolumeSpec *v1.PersistentVolumeSpec `json:"inlineVolumeSpec,omitempty" protobuf:"bytes,2,opt,name=inlineVolumeSpec"` @@ -270,6 +270,9 @@ type CSIDriverSpec struct { // If the CSIDriverRegistry feature gate is enabled and the value is // specified to false, the attach operation will be skipped. // Otherwise the attach operation will be called. + // + // This field is immutable. + // // +optional AttachRequired *bool `json:"attachRequired,omitempty" protobuf:"varint,1,opt,name=attachRequired"` @@ -288,7 +291,7 @@ type CSIDriverSpec struct { // "csi.storage.k8s.io/pod.name": pod.Name // "csi.storage.k8s.io/pod.namespace": pod.Namespace // "csi.storage.k8s.io/pod.uid": string(pod.UID) - // "csi.storage.k8s.io/ephemeral": "true" iff the volume is an ephemeral inline volume + // "csi.storage.k8s.io/ephemeral": "true" if the volume is an ephemeral inline volume // defined by a CSIVolumeSource, otherwise "false" // // "csi.storage.k8s.io/ephemeral" is a new feature in Kubernetes 1.16. It is only @@ -297,6 +300,9 @@ type CSIDriverSpec struct { // As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when // deployed on such a cluster and the deployment determines which mode that is, for example // via a command line parameter of the driver. + // + // This field is immutable. + // // +optional PodInfoOnMount *bool `json:"podInfoOnMount,omitempty" protobuf:"bytes,2,opt,name=podInfoOnMount"` @@ -313,6 +319,9 @@ type CSIDriverSpec struct { // A driver can support one or more of these modes and // more modes may be added in the future. // This field is beta. + // + // This field is immutable. + // // +optional // +listType=set VolumeLifecycleModes []VolumeLifecycleMode `json:"volumeLifecycleModes,omitempty" protobuf:"bytes,3,opt,name=volumeLifecycleModes"` @@ -331,10 +340,13 @@ type CSIDriverSpec struct { // unset or false and it can be flipped later when storage // capacity information has been published. // - // This is an alpha field and only available when the CSIStorageCapacity + // This field is immutable. + // + // This is a beta field and only available when the CSIStorageCapacity // feature is enabled. The default is false. // // +optional + // +featureGate=CSIStorageCapacity StorageCapacity *bool `json:"storageCapacity,omitempty" protobuf:"bytes,4,opt,name=storageCapacity"` // Defines if the underlying volume supports changing ownership and @@ -342,6 +354,9 @@ type CSIDriverSpec struct { // Refer to the specific FSGroupPolicy values for additional details. // This field is alpha-level, and is only honored by servers // that enable the CSIVolumeFSGroupPolicy feature gate. + // + // This field is immutable. + // // +optional FSGroupPolicy *FSGroupPolicy `json:"fsGroupPolicy,omitempty" protobuf:"bytes,5,opt,name=fsGroupPolicy"` @@ -361,7 +376,7 @@ type CSIDriverSpec struct { // most one token is empty string. To receive a new token after expiry, // RequiresRepublish can be used to trigger NodePublishVolume periodically. // - // This is an alpha feature and only available when the + // This is a beta feature and only available when the // CSIServiceAccountToken feature is enabled. // // +optional @@ -376,7 +391,7 @@ type CSIDriverSpec struct { // to NodePublishVolume should only update the contents of the volume. New // mount points will not be seen by a running container. // - // This is an alpha feature and only available when the + // This is a beta feature and only available when the // CSIServiceAccountToken feature is enabled. // // +optional diff --git a/vendor/k8s.io/api/storage/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/storage/v1/types_swagger_doc_generated.go index 0e28b1d2f1..a9c7cc9afd 100644 --- a/vendor/k8s.io/api/storage/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/storage/v1/types_swagger_doc_generated.go @@ -49,13 +49,13 @@ func (CSIDriverList) SwaggerDoc() map[string]string { var map_CSIDriverSpec = map[string]string{ "": "CSIDriverSpec is the specification of a CSIDriver.", - "attachRequired": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "podInfoOnMount": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "volumeLifecycleModes": "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta.", - "storageCapacity": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.", - "fsGroupPolicy": "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.", - "tokenRequests": "TokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \"csi.storage.k8s.io/serviceAccount.tokens\": {\n \"\": {\n \"token\": ,\n \"expirationTimestamp\": ,\n },\n ...\n}\n\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.\n\nThis is an alpha feature and only available when the CSIServiceAccountToken feature is enabled.", - "requiresRepublish": "RequiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\n\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.\n\nThis is an alpha feature and only available when the CSIServiceAccountToken feature is enabled.", + "attachRequired": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.\n\nThis field is immutable.", + "podInfoOnMount": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.\n\nThis field is immutable.", + "volumeLifecycleModes": "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta.\n\nThis field is immutable.", + "storageCapacity": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis field is immutable.\n\nThis is a beta field and only available when the CSIStorageCapacity feature is enabled. The default is false.", + "fsGroupPolicy": "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.\n\nThis field is immutable.", + "tokenRequests": "TokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \"csi.storage.k8s.io/serviceAccount.tokens\": {\n \"\": {\n \"token\": ,\n \"expirationTimestamp\": ,\n },\n ...\n}\n\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.\n\nThis is a beta feature and only available when the CSIServiceAccountToken feature is enabled.", + "requiresRepublish": "RequiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\n\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.\n\nThis is a beta feature and only available when the CSIServiceAccountToken feature is enabled.", } func (CSIDriverSpec) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/storage/v1alpha1/doc.go b/vendor/k8s.io/api/storage/v1alpha1/doc.go index 6f7ad7e732..87440b47ae 100644 --- a/vendor/k8s.io/api/storage/v1alpha1/doc.go +++ b/vendor/k8s.io/api/storage/v1alpha1/doc.go @@ -18,5 +18,6 @@ limitations under the License. // +k8s:protobuf-gen=package // +groupName=storage.k8s.io // +k8s:openapi-gen=true +// +k8s:prerelease-lifecycle-gen=true package v1alpha1 // import "k8s.io/api/storage/v1alpha1" diff --git a/vendor/k8s.io/api/storage/v1alpha1/generated.pb.go b/vendor/k8s.io/api/storage/v1alpha1/generated.pb.go index 1b7767fdcc..0c82ddad32 100644 --- a/vendor/k8s.io/api/storage/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/storage/v1alpha1/generated.pb.go @@ -288,63 +288,65 @@ func init() { } var fileDescriptor_10f856db1e670dc4 = []byte{ - // 895 bytes of a gzipped FileDescriptorProto + // 923 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4f, 0x6f, 0xe3, 0x44, - 0x14, 0x8f, 0x9b, 0x74, 0x37, 0x3b, 0x29, 0x10, 0x8d, 0xa2, 0x25, 0x0a, 0x92, 0x53, 0xe5, 0x14, - 0x10, 0x3b, 0xa6, 0x0b, 0x42, 0x2b, 0x6e, 0x75, 0xdb, 0x43, 0x45, 0x5b, 0x60, 0x52, 0x21, 0x04, - 0x1c, 0x98, 0x38, 0x0f, 0xc7, 0x4d, 0xfc, 0x47, 0x33, 0xe3, 0x4a, 0xb9, 0xc1, 0x85, 0x33, 0x37, - 0xbe, 0x01, 0x9f, 0xa5, 0x07, 0x24, 0x56, 0x9c, 0xf6, 0x14, 0x51, 0xf3, 0x2d, 0xb8, 0x80, 0x3c, - 0x9e, 0x38, 0x6e, 0x9c, 0x74, 0xb3, 0x7b, 0xd8, 0x9b, 0xe7, 0xcd, 0x7b, 0xbf, 0xdf, 0xfb, 0xf3, - 0x9b, 0x27, 0xa3, 0xe3, 0xc9, 0x33, 0x41, 0xbc, 0xd0, 0x9a, 0xc4, 0x43, 0xe0, 0x01, 0x48, 0x10, - 0xd6, 0x35, 0x04, 0xa3, 0x90, 0x5b, 0xfa, 0x82, 0x45, 0x9e, 0x25, 0x64, 0xc8, 0x99, 0x0b, 0xd6, - 0xf5, 0x01, 0x9b, 0x46, 0x63, 0x76, 0x60, 0xb9, 0x10, 0x00, 0x67, 0x12, 0x46, 0x24, 0xe2, 0xa1, - 0x0c, 0xf1, 0x7b, 0x99, 0x33, 0x61, 0x91, 0x47, 0xb4, 0x33, 0x59, 0x38, 0x77, 0x9e, 0xb8, 0x9e, - 0x1c, 0xc7, 0x43, 0xe2, 0x84, 0xbe, 0xe5, 0x86, 0x6e, 0x68, 0xa9, 0x98, 0x61, 0xfc, 0xa3, 0x3a, - 0xa9, 0x83, 0xfa, 0xca, 0xb0, 0x3a, 0xbd, 0x02, 0xb1, 0x13, 0xf2, 0x94, 0x75, 0x95, 0xaf, 0xf3, - 0xc9, 0xd2, 0xc7, 0x67, 0xce, 0xd8, 0x0b, 0x80, 0xcf, 0xac, 0x68, 0xe2, 0xaa, 0x20, 0x0e, 0x22, - 0x8c, 0xb9, 0x03, 0xaf, 0x14, 0x25, 0x2c, 0x1f, 0x24, 0x5b, 0xc7, 0x65, 0x6d, 0x8a, 0xe2, 0x71, - 0x20, 0x3d, 0xbf, 0x4c, 0xf3, 0xe9, 0xcb, 0x02, 0x84, 0x33, 0x06, 0x9f, 0xad, 0xc6, 0xf5, 0x7e, - 0xae, 0x22, 0x7c, 0x34, 0x38, 0x1d, 0x64, 0xfd, 0x3b, 0x62, 0x11, 0x73, 0x3c, 0x39, 0xc3, 0x3f, - 0xa0, 0x7a, 0x9a, 0xda, 0x88, 0x49, 0xd6, 0x36, 0xf6, 0x8d, 0x7e, 0xe3, 0xe9, 0x47, 0x64, 0xd9, - 0xee, 0x9c, 0x81, 0x44, 0x13, 0x37, 0x35, 0x08, 0x92, 0x7a, 0x93, 0xeb, 0x03, 0xf2, 0xc5, 0xf0, - 0x0a, 0x1c, 0x79, 0x0e, 0x92, 0xd9, 0xf8, 0x66, 0xde, 0xad, 0x24, 0xf3, 0x2e, 0x5a, 0xda, 0x68, - 0x8e, 0x8a, 0x3d, 0xb4, 0x17, 0x84, 0x23, 0xb8, 0x0c, 0xa3, 0x70, 0x1a, 0xba, 0xb3, 0xf6, 0x8e, - 0x62, 0xf9, 0x78, 0x3b, 0x96, 0x33, 0x36, 0x84, 0xe9, 0x00, 0xa6, 0xe0, 0xc8, 0x90, 0xdb, 0xcd, - 0x64, 0xde, 0xdd, 0xbb, 0x28, 0x80, 0xd1, 0x3b, 0xd0, 0xf8, 0x18, 0x35, 0xb5, 0x3e, 0x8e, 0xa6, - 0x4c, 0x88, 0x0b, 0xe6, 0x43, 0xbb, 0xba, 0x6f, 0xf4, 0x1f, 0xd9, 0x6d, 0x9d, 0x62, 0x73, 0xb0, - 0x72, 0x4f, 0x4b, 0x11, 0xf8, 0x1b, 0x54, 0x77, 0x74, 0x7b, 0xda, 0x35, 0x95, 0x2c, 0xb9, 0x2f, - 0x59, 0xb2, 0x50, 0x04, 0xf9, 0x2a, 0x66, 0x81, 0xf4, 0xe4, 0xcc, 0xde, 0x4b, 0xe6, 0xdd, 0xfa, - 0xa2, 0xc5, 0x34, 0x47, 0xeb, 0xfd, 0x61, 0xa0, 0xc7, 0xe5, 0x19, 0x9c, 0x79, 0x42, 0xe2, 0xef, - 0x4b, 0x73, 0x20, 0x5b, 0x76, 0xc8, 0x13, 0xd9, 0x14, 0x9a, 0xba, 0xc4, 0xfa, 0xc2, 0x52, 0x98, - 0xc1, 0x25, 0xda, 0xf5, 0x24, 0xf8, 0xa2, 0xbd, 0xb3, 0x5f, 0xed, 0x37, 0x9e, 0x5a, 0xe4, 0x9e, - 0x17, 0x45, 0xca, 0x19, 0xda, 0x6f, 0x69, 0xec, 0xdd, 0xd3, 0x14, 0x85, 0x66, 0x60, 0xbd, 0xdf, - 0x77, 0x50, 0xf3, 0xeb, 0x70, 0x1a, 0xfb, 0x70, 0x28, 0x25, 0x73, 0xc6, 0x3e, 0x04, 0xf2, 0x0d, - 0x08, 0x6a, 0x80, 0x6a, 0x22, 0x02, 0x47, 0x0b, 0xe9, 0xe0, 0xde, 0x5a, 0x56, 0xd3, 0x1b, 0x44, - 0xe0, 0xd8, 0x7b, 0x1a, 0xbe, 0x96, 0x9e, 0xa8, 0x02, 0xc3, 0xdf, 0xa1, 0x07, 0x42, 0x32, 0x19, - 0x0b, 0x25, 0x98, 0xbb, 0xfa, 0xdc, 0x02, 0x56, 0x85, 0xda, 0x6f, 0x6b, 0xe0, 0x07, 0xd9, 0x99, - 0x6a, 0xc8, 0xde, 0x8d, 0x81, 0x5a, 0xab, 0x21, 0x6f, 0x60, 0xea, 0xf4, 0xee, 0xd4, 0x9f, 0xbc, - 0x52, 0x49, 0x1b, 0x66, 0xfe, 0x97, 0x81, 0x1e, 0x97, 0xaa, 0x57, 0xf2, 0xc7, 0x67, 0xa8, 0x15, - 0x01, 0x17, 0x9e, 0x90, 0x10, 0xc8, 0xcc, 0x47, 0xbd, 0x40, 0x23, 0x7b, 0x81, 0xc9, 0xbc, 0xdb, - 0xfa, 0x72, 0xcd, 0x3d, 0x5d, 0x1b, 0x85, 0xaf, 0x50, 0xd3, 0x0b, 0xa6, 0x5e, 0x00, 0x99, 0x6d, - 0xb0, 0x9c, 0x78, 0xbf, 0x58, 0x47, 0xba, 0xc3, 0xd3, 0x86, 0xac, 0x22, 0xab, 0x41, 0xb7, 0xd2, - 0x17, 0x7f, 0xba, 0x82, 0x42, 0x4b, 0xb8, 0xbd, 0x3f, 0xd7, 0xcc, 0x27, 0xbd, 0xc0, 0x1f, 0xa2, - 0x3a, 0x53, 0x16, 0xe0, 0xba, 0x8c, 0xbc, 0xdf, 0x87, 0xda, 0x4e, 0x73, 0x0f, 0xa5, 0x21, 0xd5, - 0x8a, 0x35, 0x3b, 0x6e, 0x0b, 0x0d, 0xa9, 0xd0, 0x82, 0x86, 0xd4, 0x99, 0x6a, 0xc8, 0x34, 0x95, - 0x74, 0xd7, 0x15, 0x76, 0x5a, 0x9e, 0xca, 0x85, 0xb6, 0xd3, 0xdc, 0xa3, 0xf7, 0x5f, 0x75, 0xcd, - 0x98, 0x94, 0x18, 0x0b, 0x35, 0x8d, 0x54, 0x4d, 0xf5, 0x52, 0x4d, 0xa3, 0xbc, 0xa6, 0x11, 0xfe, - 0xcd, 0x40, 0x98, 0xe5, 0x10, 0xe7, 0x0b, 0xb1, 0x66, 0x8a, 0xfa, 0xfc, 0x35, 0x1e, 0x09, 0x39, - 0x2c, 0xa1, 0x9d, 0x04, 0x92, 0xcf, 0xec, 0x8e, 0xce, 0x02, 0x97, 0x1d, 0xe8, 0x9a, 0x14, 0xf0, - 0x15, 0x6a, 0x64, 0xd6, 0x13, 0xce, 0x43, 0xae, 0x9f, 0x6d, 0x7f, 0x8b, 0x8c, 0x94, 0xbf, 0x6d, - 0x26, 0xf3, 0x6e, 0xe3, 0x70, 0x09, 0xf0, 0xef, 0xbc, 0xdb, 0x28, 0xdc, 0xd3, 0x22, 0x78, 0xca, - 0x35, 0x82, 0x25, 0x57, 0xed, 0x75, 0xb8, 0x8e, 0x61, 0x33, 0x57, 0x01, 0xbc, 0x73, 0x82, 0xde, - 0xdd, 0xd0, 0x22, 0xdc, 0x44, 0xd5, 0x09, 0xcc, 0x32, 0x25, 0xd2, 0xf4, 0x13, 0xb7, 0xd0, 0xee, - 0x35, 0x9b, 0xc6, 0x99, 0xe2, 0x1e, 0xd1, 0xec, 0xf0, 0xd9, 0xce, 0x33, 0xa3, 0xf7, 0x8b, 0x81, - 0x8a, 0x1c, 0xf8, 0x0c, 0xd5, 0xd2, 0xdf, 0x03, 0xbd, 0x66, 0x3e, 0xd8, 0x6e, 0xcd, 0x5c, 0x7a, - 0x3e, 0x2c, 0xd7, 0x65, 0x7a, 0xa2, 0x0a, 0x05, 0xbf, 0x8f, 0x1e, 0xfa, 0x20, 0x04, 0x73, 0x35, - 0xb3, 0xfd, 0x8e, 0x76, 0x7a, 0x78, 0x9e, 0x99, 0xe9, 0xe2, 0xde, 0x26, 0x37, 0xb7, 0x66, 0xe5, - 0xf9, 0xad, 0x59, 0x79, 0x71, 0x6b, 0x56, 0x7e, 0x4a, 0x4c, 0xe3, 0x26, 0x31, 0x8d, 0xe7, 0x89, - 0x69, 0xbc, 0x48, 0x4c, 0xe3, 0xef, 0xc4, 0x34, 0x7e, 0xfd, 0xc7, 0xac, 0x7c, 0x5b, 0x5f, 0x34, - 0xee, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6e, 0xb9, 0x9d, 0xb3, 0x34, 0x0a, 0x00, 0x00, + 0x14, 0x8f, 0x9b, 0x74, 0x37, 0x3b, 0x29, 0x90, 0x1d, 0x85, 0x25, 0x0a, 0x92, 0xb3, 0xca, 0x29, + 0x20, 0x76, 0x4c, 0x17, 0x84, 0x56, 0xdc, 0xea, 0xb6, 0x87, 0x8a, 0xb6, 0xc0, 0xa4, 0x42, 0x08, + 0x38, 0x30, 0x71, 0x1e, 0xce, 0x34, 0xf1, 0x1f, 0x79, 0xc6, 0x15, 0xe1, 0xc4, 0x89, 0x33, 0x37, + 0xbe, 0x01, 0x9f, 0xa5, 0x07, 0x24, 0x56, 0x9c, 0xf6, 0x14, 0x51, 0xf3, 0x1d, 0x38, 0x70, 0x01, + 0x79, 0x3c, 0x71, 0xdc, 0x38, 0x2d, 0xd9, 0x1e, 0xf6, 0xe6, 0xf7, 0xe6, 0xbd, 0xdf, 0xef, 0xfd, + 0x4f, 0xd0, 0xc1, 0xe4, 0x99, 0x20, 0x3c, 0xb0, 0x26, 0xf1, 0x10, 0x22, 0x1f, 0x24, 0x08, 0xeb, + 0x02, 0xfc, 0x51, 0x10, 0x59, 0xfa, 0x81, 0x85, 0xdc, 0x12, 0x32, 0x88, 0x98, 0x0b, 0xd6, 0xc5, + 0x2e, 0x9b, 0x86, 0x63, 0xb6, 0x6b, 0xb9, 0xe0, 0x43, 0xc4, 0x24, 0x8c, 0x48, 0x18, 0x05, 0x32, + 0xc0, 0x6f, 0x67, 0xc6, 0x84, 0x85, 0x9c, 0x68, 0x63, 0xb2, 0x30, 0xee, 0x3c, 0x71, 0xb9, 0x1c, + 0xc7, 0x43, 0xe2, 0x04, 0x9e, 0xe5, 0x06, 0x6e, 0x60, 0x29, 0x9f, 0x61, 0xfc, 0x9d, 0x92, 0x94, + 0xa0, 0xbe, 0x32, 0xac, 0x4e, 0xaf, 0x40, 0xec, 0x04, 0x51, 0xca, 0xba, 0xca, 0xd7, 0xf9, 0x70, + 0x69, 0xe3, 0x31, 0x67, 0xcc, 0x7d, 0x88, 0x66, 0x56, 0x38, 0x71, 0x95, 0x53, 0x04, 0x22, 0x88, + 0x23, 0x07, 0x5e, 0xca, 0x4b, 0x58, 0x1e, 0x48, 0xb6, 0x8e, 0xcb, 0xba, 0xc9, 0x2b, 0x8a, 0x7d, + 0xc9, 0xbd, 0x32, 0xcd, 0x47, 0xff, 0xe7, 0x20, 0x9c, 0x31, 0x78, 0x6c, 0xd5, 0xaf, 0xf7, 0x77, + 0x15, 0xe1, 0xfd, 0xc1, 0xd1, 0x20, 0xab, 0xdf, 0x3e, 0x0b, 0x99, 0xc3, 0xe5, 0x0c, 0x7f, 0x8b, + 0xea, 0x69, 0x68, 0x23, 0x26, 0x59, 0xdb, 0x78, 0x6c, 0xf4, 0x1b, 0x4f, 0xdf, 0x27, 0xcb, 0x72, + 0xe7, 0x0c, 0x24, 0x9c, 0xb8, 0xa9, 0x42, 0x90, 0xd4, 0x9a, 0x5c, 0xec, 0x92, 0x4f, 0x87, 0xe7, + 0xe0, 0xc8, 0x13, 0x90, 0xcc, 0xc6, 0x97, 0xf3, 0x6e, 0x25, 0x99, 0x77, 0xd1, 0x52, 0x47, 0x73, + 0x54, 0xcc, 0xd1, 0x8e, 0x1f, 0x8c, 0xe0, 0x2c, 0x08, 0x83, 0x69, 0xe0, 0xce, 0xda, 0x5b, 0x8a, + 0xe5, 0x83, 0xcd, 0x58, 0x8e, 0xd9, 0x10, 0xa6, 0x03, 0x98, 0x82, 0x23, 0x83, 0xc8, 0x6e, 0x26, + 0xf3, 0xee, 0xce, 0x69, 0x01, 0x8c, 0x5e, 0x83, 0xc6, 0x07, 0xa8, 0xa9, 0xe7, 0x63, 0x7f, 0xca, + 0x84, 0x38, 0x65, 0x1e, 0xb4, 0xab, 0x8f, 0x8d, 0xfe, 0x03, 0xbb, 0xad, 0x43, 0x6c, 0x0e, 0x56, + 0xde, 0x69, 0xc9, 0x03, 0x7f, 0x89, 0xea, 0x8e, 0x2e, 0x4f, 0xbb, 0xa6, 0x82, 0x25, 0xb7, 0x05, + 0x4b, 0x16, 0x13, 0x41, 0x3e, 0x8f, 0x99, 0x2f, 0xb9, 0x9c, 0xd9, 0x3b, 0xc9, 0xbc, 0x5b, 0x5f, + 0x94, 0x98, 0xe6, 0x68, 0x58, 0xa0, 0x87, 0x1e, 0xfb, 0x9e, 0x7b, 0xb1, 0xf7, 0x45, 0x30, 0x8d, + 0x3d, 0x18, 0xf0, 0x1f, 0xa0, 0xbd, 0x7d, 0x27, 0x8a, 0x37, 0x93, 0x79, 0xf7, 0xe1, 0xc9, 0x2a, + 0x18, 0x2d, 0xe3, 0xf7, 0x7e, 0x33, 0xd0, 0xa3, 0x72, 0xe3, 0x8f, 0xb9, 0x90, 0xf8, 0x9b, 0x52, + 0xf3, 0xc9, 0x86, 0x6d, 0xe1, 0x22, 0x6b, 0x7d, 0x53, 0xd7, 0xb5, 0xbe, 0xd0, 0x14, 0x1a, 0x7f, + 0x86, 0xb6, 0xb9, 0x04, 0x4f, 0xb4, 0xb7, 0x1e, 0x57, 0xfb, 0x8d, 0xa7, 0x16, 0xb9, 0x65, 0x8d, + 0x49, 0x39, 0x42, 0xfb, 0x35, 0x8d, 0xbd, 0x7d, 0x94, 0xa2, 0xd0, 0x0c, 0xac, 0xf7, 0xeb, 0x16, + 0x6a, 0x66, 0xd9, 0xed, 0x49, 0xc9, 0x9c, 0xb1, 0x07, 0xbe, 0x7c, 0x05, 0x53, 0x3c, 0x40, 0x35, + 0x11, 0x82, 0xa3, 0xa7, 0x77, 0xf7, 0xd6, 0x5c, 0x56, 0xc3, 0x1b, 0x84, 0xe0, 0xd8, 0x3b, 0x1a, + 0xbe, 0x96, 0x4a, 0x54, 0x81, 0xe1, 0xaf, 0xd1, 0x3d, 0x21, 0x99, 0x8c, 0x85, 0x9a, 0xd2, 0xeb, + 0x4b, 0xb1, 0x01, 0xac, 0x72, 0xb5, 0x5f, 0xd7, 0xc0, 0xf7, 0x32, 0x99, 0x6a, 0xc8, 0xde, 0xa5, + 0x81, 0x5a, 0xab, 0x2e, 0xaf, 0xa0, 0xeb, 0xf4, 0x7a, 0xd7, 0x9f, 0xbc, 0x54, 0x4a, 0x37, 0xf4, + 0xfc, 0x0f, 0x03, 0x3d, 0x2a, 0x65, 0xaf, 0x16, 0x02, 0x1f, 0xa3, 0x56, 0x08, 0x91, 0xe0, 0x42, + 0x82, 0x2f, 0x33, 0x1b, 0xb5, 0xf6, 0x46, 0xb6, 0xf6, 0xc9, 0xbc, 0xdb, 0xfa, 0x6c, 0xcd, 0x3b, + 0x5d, 0xeb, 0x85, 0xcf, 0x51, 0x93, 0xfb, 0x53, 0xee, 0x83, 0xde, 0x9f, 0x65, 0xc7, 0xfb, 0xc5, + 0x3c, 0xd2, 0x1f, 0x8e, 0xb4, 0x20, 0xab, 0xc8, 0xaa, 0xd1, 0xad, 0xf4, 0xcc, 0x1c, 0xad, 0xa0, + 0xd0, 0x12, 0x6e, 0xef, 0xf7, 0x35, 0xfd, 0x49, 0x1f, 0xf0, 0x7b, 0xa8, 0xce, 0x94, 0x06, 0x22, + 0x9d, 0x46, 0x5e, 0xef, 0x3d, 0xad, 0xa7, 0xb9, 0x85, 0x9a, 0x21, 0x55, 0x8a, 0x35, 0x87, 0x75, + 0x83, 0x19, 0x52, 0xae, 0x85, 0x19, 0x52, 0x32, 0xd5, 0x90, 0x69, 0x28, 0xe9, 0x81, 0x2d, 0x1c, + 0xd2, 0x3c, 0x94, 0x53, 0xad, 0xa7, 0xb9, 0x45, 0xef, 0xdf, 0xea, 0x9a, 0x36, 0xa9, 0x61, 0x2c, + 0xe4, 0x34, 0x52, 0x39, 0xd5, 0x4b, 0x39, 0x8d, 0xf2, 0x9c, 0x46, 0xf8, 0x17, 0x03, 0x61, 0x96, + 0x43, 0x9c, 0x2c, 0x86, 0x35, 0x9b, 0xa8, 0x4f, 0xee, 0xb0, 0x24, 0x64, 0xaf, 0x84, 0x76, 0xe8, + 0xcb, 0x68, 0x66, 0x77, 0x74, 0x14, 0xb8, 0x6c, 0x40, 0xd7, 0x84, 0x80, 0xcf, 0x51, 0x23, 0xd3, + 0x1e, 0x46, 0x51, 0x10, 0xe9, 0xb5, 0xed, 0x6f, 0x10, 0x91, 0xb2, 0xb7, 0xcd, 0x64, 0xde, 0x6d, + 0xec, 0x2d, 0x01, 0xfe, 0x99, 0x77, 0x1b, 0x85, 0x77, 0x5a, 0x04, 0x4f, 0xb9, 0x46, 0xb0, 0xe4, + 0xaa, 0xdd, 0x85, 0xeb, 0x00, 0x6e, 0xe6, 0x2a, 0x80, 0x77, 0x0e, 0xd1, 0x5b, 0x37, 0x94, 0x08, + 0x37, 0x51, 0x75, 0x02, 0xb3, 0x6c, 0x12, 0x69, 0xfa, 0x89, 0x5b, 0x68, 0xfb, 0x82, 0x4d, 0xe3, + 0x6c, 0xe2, 0x1e, 0xd0, 0x4c, 0xf8, 0x78, 0xeb, 0x99, 0xd1, 0xfb, 0xc9, 0x40, 0x45, 0x0e, 0x7c, + 0x8c, 0x6a, 0xe9, 0x7f, 0x12, 0x7d, 0x66, 0xde, 0xdd, 0xec, 0xcc, 0x9c, 0x71, 0x0f, 0x96, 0xe7, + 0x32, 0x95, 0xa8, 0x42, 0xc1, 0xef, 0xa0, 0xfb, 0x1e, 0x08, 0xc1, 0x5c, 0xcd, 0x6c, 0xbf, 0xa1, + 0x8d, 0xee, 0x9f, 0x64, 0x6a, 0xba, 0x78, 0xb7, 0xc9, 0xe5, 0x95, 0x59, 0x79, 0x7e, 0x65, 0x56, + 0x5e, 0x5c, 0x99, 0x95, 0x1f, 0x13, 0xd3, 0xb8, 0x4c, 0x4c, 0xe3, 0x79, 0x62, 0x1a, 0x2f, 0x12, + 0xd3, 0xf8, 0x33, 0x31, 0x8d, 0x9f, 0xff, 0x32, 0x2b, 0x5f, 0xd5, 0x17, 0x85, 0xfb, 0x2f, 0x00, + 0x00, 0xff, 0xff, 0x95, 0x04, 0x69, 0x56, 0xa9, 0x0a, 0x00, 0x00, } func (m *CSIStorageCapacity) Marshal() (dAtA []byte, err error) { @@ -367,6 +369,18 @@ func (m *CSIStorageCapacity) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.MaximumVolumeSize != nil { + { + size, err := m.MaximumVolumeSize.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } if m.Capacity != nil { { size, err := m.Capacity.MarshalToSizedBuffer(dAtA[:i]) @@ -787,6 +801,10 @@ func (m *CSIStorageCapacity) Size() (n int) { l = m.Capacity.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.MaximumVolumeSize != nil { + l = m.MaximumVolumeSize.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -925,6 +943,7 @@ func (this *CSIStorageCapacity) String() string { `NodeTopology:` + strings.Replace(fmt.Sprintf("%v", this.NodeTopology), "LabelSelector", "v1.LabelSelector", 1) + `,`, `StorageClassName:` + fmt.Sprintf("%v", this.StorageClassName) + `,`, `Capacity:` + strings.Replace(fmt.Sprintf("%v", this.Capacity), "Quantity", "resource.Quantity", 1) + `,`, + `MaximumVolumeSize:` + strings.Replace(fmt.Sprintf("%v", this.MaximumVolumeSize), "Quantity", "resource.Quantity", 1) + `,`, `}`, }, "") return s @@ -1204,16 +1223,49 @@ func (m *CSIStorageCapacity) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaximumVolumeSize", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaximumVolumeSize == nil { + m.MaximumVolumeSize = &resource.Quantity{} + } + if err := m.MaximumVolumeSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1330,10 +1382,7 @@ func (m *CSIStorageCapacityList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1482,10 +1531,7 @@ func (m *VolumeAttachment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1602,10 +1648,7 @@ func (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1724,10 +1767,7 @@ func (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1874,10 +1914,7 @@ func (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2057,7 +2094,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -2146,10 +2183,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2264,10 +2298,7 @@ func (m *VolumeError) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/storage/v1alpha1/generated.proto b/vendor/k8s.io/api/storage/v1alpha1/generated.proto index d64345333d..78cd16df23 100644 --- a/vendor/k8s.io/api/storage/v1alpha1/generated.proto +++ b/vendor/k8s.io/api/storage/v1alpha1/generated.proto @@ -47,7 +47,9 @@ option go_package = "v1alpha1"; // // The producer of these objects can decide which approach is more suitable. // -// This is an alpha feature and only available when the CSIStorageCapacity feature is enabled. +// They are consumed by the kube-scheduler if the CSIStorageCapacity beta feature gate +// is enabled there and a CSI driver opts into capacity-aware scheduling with +// CSIDriver.StorageCapacity. message CSIStorageCapacity { // Standard object's metadata. The name has no particular meaning. It must be // be a DNS subdomain (dots allowed, 253 characters). To ensure that @@ -89,6 +91,20 @@ message CSIStorageCapacity { // // +optional optional k8s.io.apimachinery.pkg.api.resource.Quantity capacity = 4; + + // MaximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse + // for a GetCapacityRequest with topology and parameters that match the + // previous fields. + // + // This is defined since CSI spec 1.4.0 as the largest size + // that may be used in a + // CreateVolumeRequest.capacity_range.required_bytes field to + // create a volume with the same parameters as those in + // GetCapacityRequest. The corresponding value in the Kubernetes + // API is ResourceRequirements.Requests in a volume claim. + // + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity maximumVolumeSize = 5; } // CSIStorageCapacityList is a collection of CSIStorageCapacity objects. diff --git a/vendor/k8s.io/api/storage/v1alpha1/types.go b/vendor/k8s.io/api/storage/v1alpha1/types.go index 5e65bcebcf..afb0495db5 100644 --- a/vendor/k8s.io/api/storage/v1alpha1/types.go +++ b/vendor/k8s.io/api/storage/v1alpha1/types.go @@ -25,6 +25,9 @@ import ( // +genclient // +genclient:nonNamespaced // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.9 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,VolumeAttachment // VolumeAttachment captures the intent to attach or detach the specified volume // to/from the specified node. @@ -50,6 +53,9 @@ type VolumeAttachment struct { } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.9 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,VolumeAttachmentList // VolumeAttachmentList is a collection of VolumeAttachment objects. type VolumeAttachmentList struct { @@ -138,6 +144,9 @@ type VolumeError struct { // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.19 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1beta1,CSIStorageCapacity // CSIStorageCapacity stores the result of one CSI GetCapacity call. // For a given StorageClass, this describes the available capacity in a @@ -156,7 +165,9 @@ type VolumeError struct { // // The producer of these objects can decide which approach is more suitable. // -// This is an alpha feature and only available when the CSIStorageCapacity feature is enabled. +// They are consumed by the kube-scheduler if the CSIStorageCapacity beta feature gate +// is enabled there and a CSI driver opts into capacity-aware scheduling with +// CSIDriver.StorageCapacity. type CSIStorageCapacity struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. The name has no particular meaning. It must be @@ -199,9 +210,26 @@ type CSIStorageCapacity struct { // // +optional Capacity *resource.Quantity `json:"capacity,omitempty" protobuf:"bytes,4,opt,name=capacity"` + + // MaximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse + // for a GetCapacityRequest with topology and parameters that match the + // previous fields. + // + // This is defined since CSI spec 1.4.0 as the largest size + // that may be used in a + // CreateVolumeRequest.capacity_range.required_bytes field to + // create a volume with the same parameters as those in + // GetCapacityRequest. The corresponding value in the Kubernetes + // API is ResourceRequirements.Requests in a volume claim. + // + // +optional + MaximumVolumeSize *resource.Quantity `json:"maximumVolumeSize,omitempty" protobuf:"bytes,5,opt,name=maximumVolumeSize"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.19 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1beta1,CSIStorageCapacityList // CSIStorageCapacityList is a collection of CSIStorageCapacity objects. type CSIStorageCapacityList struct { diff --git a/vendor/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go index 51778d183d..fa50e02896 100644 --- a/vendor/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go @@ -28,11 +28,12 @@ package v1alpha1 // AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_CSIStorageCapacity = map[string]string{ - "": "CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment. This can be used when considering where to instantiate new PersistentVolumes.\n\nFor example this can express things like: - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\" - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\n\nThe producer of these objects can decide which approach is more suitable.\n\nThis is an alpha feature and only available when the CSIStorageCapacity feature is enabled.", - "metadata": "Standard object's metadata. The name has no particular meaning. It must be be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\n\nObjects are namespaced.\n\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - "nodeTopology": "NodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable.", - "storageClassName": "The name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.", - "capacity": "Capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\n\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable and treated like zero capacity.", + "": "CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment. This can be used when considering where to instantiate new PersistentVolumes.\n\nFor example this can express things like: - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\" - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\n\nThe producer of these objects can decide which approach is more suitable.\n\nThey are consumed by the kube-scheduler if the CSIStorageCapacity beta feature gate is enabled there and a CSI driver opts into capacity-aware scheduling with CSIDriver.StorageCapacity.", + "metadata": "Standard object's metadata. The name has no particular meaning. It must be be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\n\nObjects are namespaced.\n\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "nodeTopology": "NodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable.", + "storageClassName": "The name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.", + "capacity": "Capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\n\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable and treated like zero capacity.", + "maximumVolumeSize": "MaximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\n\nThis is defined since CSI spec 1.4.0 as the largest size that may be used in a CreateVolumeRequest.capacity_range.required_bytes field to create a volume with the same parameters as those in GetCapacityRequest. The corresponding value in the Kubernetes API is ResourceRequirements.Requests in a volume claim.", } func (CSIStorageCapacity) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go index 7f3b357ba8..64a34670b3 100644 --- a/vendor/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go @@ -41,6 +41,11 @@ func (in *CSIStorageCapacity) DeepCopyInto(out *CSIStorageCapacity) { x := (*in).DeepCopy() *out = &x } + if in.MaximumVolumeSize != nil { + in, out := &in.MaximumVolumeSize, &out.MaximumVolumeSize + x := (*in).DeepCopy() + *out = &x + } return } diff --git a/vendor/k8s.io/api/storage/v1alpha1/zz_generated.prerelease-lifecycle.go b/vendor/k8s.io/api/storage/v1alpha1/zz_generated.prerelease-lifecycle.go new file mode 100644 index 0000000000..44311b4bbf --- /dev/null +++ b/vendor/k8s.io/api/storage/v1alpha1/zz_generated.prerelease-lifecycle.go @@ -0,0 +1,121 @@ +// +build !ignore_autogenerated + +/* +Copyright 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. +*/ + +// Code generated by prerelease-lifecycle-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + schema "k8s.io/apimachinery/pkg/runtime/schema" +) + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *CSIStorageCapacity) APILifecycleIntroduced() (major, minor int) { + return 1, 19 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *CSIStorageCapacity) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *CSIStorageCapacity) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "storage.k8s.io", Version: "v1beta1", Kind: "CSIStorageCapacity"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *CSIStorageCapacity) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *CSIStorageCapacityList) APILifecycleIntroduced() (major, minor int) { + return 1, 19 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *CSIStorageCapacityList) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *CSIStorageCapacityList) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "storage.k8s.io", Version: "v1beta1", Kind: "CSIStorageCapacityList"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *CSIStorageCapacityList) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *VolumeAttachment) APILifecycleIntroduced() (major, minor int) { + return 1, 9 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *VolumeAttachment) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *VolumeAttachment) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "storage.k8s.io", Version: "v1", Kind: "VolumeAttachment"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *VolumeAttachment) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *VolumeAttachmentList) APILifecycleIntroduced() (major, minor int) { + return 1, 9 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *VolumeAttachmentList) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *VolumeAttachmentList) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "storage.k8s.io", Version: "v1", Kind: "VolumeAttachmentList"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *VolumeAttachmentList) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} diff --git a/vendor/k8s.io/api/storage/v1beta1/generated.pb.go b/vendor/k8s.io/api/storage/v1beta1/generated.pb.go index 21f664094e..72b04d2733 100644 --- a/vendor/k8s.io/api/storage/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/storage/v1beta1/generated.pb.go @@ -28,6 +28,8 @@ import ( github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" k8s_io_api_core_v1 "k8s.io/api/core/v1" v11 "k8s.io/api/core/v1" + resource "k8s.io/apimachinery/pkg/api/resource" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" math "math" math_bits "math/bits" @@ -242,10 +244,66 @@ func (m *CSINodeSpec) XXX_DiscardUnknown() { var xxx_messageInfo_CSINodeSpec proto.InternalMessageInfo +func (m *CSIStorageCapacity) Reset() { *m = CSIStorageCapacity{} } +func (*CSIStorageCapacity) ProtoMessage() {} +func (*CSIStorageCapacity) Descriptor() ([]byte, []int) { + return fileDescriptor_7d2980599fd0de80, []int{7} +} +func (m *CSIStorageCapacity) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CSIStorageCapacity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CSIStorageCapacity) XXX_Merge(src proto.Message) { + xxx_messageInfo_CSIStorageCapacity.Merge(m, src) +} +func (m *CSIStorageCapacity) XXX_Size() int { + return m.Size() +} +func (m *CSIStorageCapacity) XXX_DiscardUnknown() { + xxx_messageInfo_CSIStorageCapacity.DiscardUnknown(m) +} + +var xxx_messageInfo_CSIStorageCapacity proto.InternalMessageInfo + +func (m *CSIStorageCapacityList) Reset() { *m = CSIStorageCapacityList{} } +func (*CSIStorageCapacityList) ProtoMessage() {} +func (*CSIStorageCapacityList) Descriptor() ([]byte, []int) { + return fileDescriptor_7d2980599fd0de80, []int{8} +} +func (m *CSIStorageCapacityList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CSIStorageCapacityList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CSIStorageCapacityList) XXX_Merge(src proto.Message) { + xxx_messageInfo_CSIStorageCapacityList.Merge(m, src) +} +func (m *CSIStorageCapacityList) XXX_Size() int { + return m.Size() +} +func (m *CSIStorageCapacityList) XXX_DiscardUnknown() { + xxx_messageInfo_CSIStorageCapacityList.DiscardUnknown(m) +} + +var xxx_messageInfo_CSIStorageCapacityList proto.InternalMessageInfo + func (m *StorageClass) Reset() { *m = StorageClass{} } func (*StorageClass) ProtoMessage() {} func (*StorageClass) Descriptor() ([]byte, []int) { - return fileDescriptor_7d2980599fd0de80, []int{7} + return fileDescriptor_7d2980599fd0de80, []int{9} } func (m *StorageClass) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -273,7 +331,7 @@ var xxx_messageInfo_StorageClass proto.InternalMessageInfo func (m *StorageClassList) Reset() { *m = StorageClassList{} } func (*StorageClassList) ProtoMessage() {} func (*StorageClassList) Descriptor() ([]byte, []int) { - return fileDescriptor_7d2980599fd0de80, []int{8} + return fileDescriptor_7d2980599fd0de80, []int{10} } func (m *StorageClassList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -301,7 +359,7 @@ var xxx_messageInfo_StorageClassList proto.InternalMessageInfo func (m *TokenRequest) Reset() { *m = TokenRequest{} } func (*TokenRequest) ProtoMessage() {} func (*TokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_7d2980599fd0de80, []int{9} + return fileDescriptor_7d2980599fd0de80, []int{11} } func (m *TokenRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -329,7 +387,7 @@ var xxx_messageInfo_TokenRequest proto.InternalMessageInfo func (m *VolumeAttachment) Reset() { *m = VolumeAttachment{} } func (*VolumeAttachment) ProtoMessage() {} func (*VolumeAttachment) Descriptor() ([]byte, []int) { - return fileDescriptor_7d2980599fd0de80, []int{10} + return fileDescriptor_7d2980599fd0de80, []int{12} } func (m *VolumeAttachment) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -357,7 +415,7 @@ var xxx_messageInfo_VolumeAttachment proto.InternalMessageInfo func (m *VolumeAttachmentList) Reset() { *m = VolumeAttachmentList{} } func (*VolumeAttachmentList) ProtoMessage() {} func (*VolumeAttachmentList) Descriptor() ([]byte, []int) { - return fileDescriptor_7d2980599fd0de80, []int{11} + return fileDescriptor_7d2980599fd0de80, []int{13} } func (m *VolumeAttachmentList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -385,7 +443,7 @@ var xxx_messageInfo_VolumeAttachmentList proto.InternalMessageInfo func (m *VolumeAttachmentSource) Reset() { *m = VolumeAttachmentSource{} } func (*VolumeAttachmentSource) ProtoMessage() {} func (*VolumeAttachmentSource) Descriptor() ([]byte, []int) { - return fileDescriptor_7d2980599fd0de80, []int{12} + return fileDescriptor_7d2980599fd0de80, []int{14} } func (m *VolumeAttachmentSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -413,7 +471,7 @@ var xxx_messageInfo_VolumeAttachmentSource proto.InternalMessageInfo func (m *VolumeAttachmentSpec) Reset() { *m = VolumeAttachmentSpec{} } func (*VolumeAttachmentSpec) ProtoMessage() {} func (*VolumeAttachmentSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_7d2980599fd0de80, []int{13} + return fileDescriptor_7d2980599fd0de80, []int{15} } func (m *VolumeAttachmentSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -441,7 +499,7 @@ var xxx_messageInfo_VolumeAttachmentSpec proto.InternalMessageInfo func (m *VolumeAttachmentStatus) Reset() { *m = VolumeAttachmentStatus{} } func (*VolumeAttachmentStatus) ProtoMessage() {} func (*VolumeAttachmentStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_7d2980599fd0de80, []int{14} + return fileDescriptor_7d2980599fd0de80, []int{16} } func (m *VolumeAttachmentStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -469,7 +527,7 @@ var xxx_messageInfo_VolumeAttachmentStatus proto.InternalMessageInfo func (m *VolumeError) Reset() { *m = VolumeError{} } func (*VolumeError) ProtoMessage() {} func (*VolumeError) Descriptor() ([]byte, []int) { - return fileDescriptor_7d2980599fd0de80, []int{15} + return fileDescriptor_7d2980599fd0de80, []int{17} } func (m *VolumeError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -497,7 +555,7 @@ var xxx_messageInfo_VolumeError proto.InternalMessageInfo func (m *VolumeNodeResources) Reset() { *m = VolumeNodeResources{} } func (*VolumeNodeResources) ProtoMessage() {} func (*VolumeNodeResources) Descriptor() ([]byte, []int) { - return fileDescriptor_7d2980599fd0de80, []int{16} + return fileDescriptor_7d2980599fd0de80, []int{18} } func (m *VolumeNodeResources) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -530,6 +588,8 @@ func init() { proto.RegisterType((*CSINodeDriver)(nil), "k8s.io.api.storage.v1beta1.CSINodeDriver") proto.RegisterType((*CSINodeList)(nil), "k8s.io.api.storage.v1beta1.CSINodeList") proto.RegisterType((*CSINodeSpec)(nil), "k8s.io.api.storage.v1beta1.CSINodeSpec") + proto.RegisterType((*CSIStorageCapacity)(nil), "k8s.io.api.storage.v1beta1.CSIStorageCapacity") + proto.RegisterType((*CSIStorageCapacityList)(nil), "k8s.io.api.storage.v1beta1.CSIStorageCapacityList") proto.RegisterType((*StorageClass)(nil), "k8s.io.api.storage.v1beta1.StorageClass") proto.RegisterMapType((map[string]string)(nil), "k8s.io.api.storage.v1beta1.StorageClass.ParametersEntry") proto.RegisterType((*StorageClassList)(nil), "k8s.io.api.storage.v1beta1.StorageClassList") @@ -549,102 +609,111 @@ func init() { } var fileDescriptor_7d2980599fd0de80 = []byte{ - // 1508 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xbd, 0x6f, 0x1b, 0x47, - 0x16, 0xd7, 0x8a, 0xd4, 0xd7, 0x50, 0xb2, 0xa4, 0x91, 0x7c, 0xc7, 0x53, 0x41, 0x0a, 0x3c, 0xdc, - 0x59, 0x36, 0xec, 0xa5, 0x2d, 0xf8, 0x0c, 0xc3, 0x80, 0x0b, 0xad, 0xac, 0x3b, 0xcb, 0x96, 0x64, - 0xdd, 0x50, 0x30, 0x0e, 0xc6, 0x15, 0x19, 0xee, 0x3e, 0x51, 0x6b, 0x71, 0x77, 0xd6, 0x3b, 0x43, - 0xc5, 0xec, 0x92, 0x26, 0x75, 0x90, 0x22, 0x7d, 0x80, 0xfc, 0x0b, 0x09, 0x90, 0x34, 0x29, 0xe3, - 0x2a, 0x30, 0x52, 0xb9, 0x22, 0x62, 0xe6, 0x4f, 0x48, 0x27, 0xa4, 0x08, 0x66, 0x76, 0xc8, 0xfd, - 0x20, 0x69, 0x49, 0x29, 0xd4, 0x71, 0xde, 0xc7, 0xef, 0xbd, 0x79, 0xef, 0xcd, 0xef, 0x2d, 0xd1, - 0xe6, 0xf1, 0x7d, 0x6e, 0xba, 0xac, 0x7a, 0xdc, 0xaa, 0x43, 0xe8, 0x83, 0x00, 0x5e, 0x3d, 0x01, - 0xdf, 0x61, 0x61, 0x55, 0x2b, 0x68, 0xe0, 0x56, 0xb9, 0x60, 0x21, 0x6d, 0x40, 0xf5, 0xe4, 0x4e, - 0x1d, 0x04, 0xbd, 0x53, 0x6d, 0x80, 0x0f, 0x21, 0x15, 0xe0, 0x98, 0x41, 0xc8, 0x04, 0xc3, 0x2b, - 0x91, 0xad, 0x49, 0x03, 0xd7, 0xd4, 0xb6, 0xa6, 0xb6, 0x5d, 0xb9, 0xd5, 0x70, 0xc5, 0x51, 0xab, - 0x6e, 0xda, 0xcc, 0xab, 0x36, 0x58, 0x83, 0x55, 0x95, 0x4b, 0xbd, 0x75, 0xa8, 0x4e, 0xea, 0xa0, - 0x7e, 0x45, 0x50, 0x2b, 0x95, 0x44, 0x58, 0x9b, 0x85, 0x32, 0x66, 0x36, 0xdc, 0xca, 0xdd, 0xd8, - 0xc6, 0xa3, 0xf6, 0x91, 0xeb, 0x43, 0xd8, 0xae, 0x06, 0xc7, 0x0d, 0x29, 0xe0, 0x55, 0x0f, 0x04, - 0x1d, 0xe6, 0x55, 0x1d, 0xe5, 0x15, 0xb6, 0x7c, 0xe1, 0x7a, 0x30, 0xe0, 0x70, 0xef, 0x2c, 0x07, - 0x6e, 0x1f, 0x81, 0x47, 0xb3, 0x7e, 0x95, 0xef, 0x0d, 0x34, 0xb3, 0x59, 0xdb, 0x7e, 0x14, 0xba, - 0x27, 0x10, 0xe2, 0x8f, 0xd0, 0xb4, 0xcc, 0xc8, 0xa1, 0x82, 0x16, 0x8d, 0x55, 0x63, 0xad, 0xb0, - 0x7e, 0xdb, 0x8c, 0xcb, 0xd5, 0x07, 0x36, 0x83, 0xe3, 0x86, 0x14, 0x70, 0x53, 0x5a, 0x9b, 0x27, - 0x77, 0xcc, 0x67, 0xf5, 0x97, 0x60, 0x8b, 0x5d, 0x10, 0xd4, 0xc2, 0x6f, 0x3a, 0xe5, 0xb1, 0x6e, - 0xa7, 0x8c, 0x62, 0x19, 0xe9, 0xa3, 0xe2, 0xa7, 0x28, 0xcf, 0x03, 0xb0, 0x8b, 0xe3, 0x0a, 0xfd, - 0xba, 0x39, 0xba, 0x19, 0x66, 0x3f, 0xad, 0x5a, 0x00, 0xb6, 0x35, 0xab, 0x61, 0xf3, 0xf2, 0x44, - 0x14, 0x48, 0xe5, 0x3b, 0x03, 0xcd, 0xf5, 0xad, 0x76, 0x5c, 0x2e, 0xf0, 0xff, 0x07, 0x2e, 0x60, - 0x9e, 0xef, 0x02, 0xd2, 0x5b, 0xa5, 0xbf, 0xa0, 0xe3, 0x4c, 0xf7, 0x24, 0x89, 0xe4, 0x9f, 0xa0, - 0x09, 0x57, 0x80, 0xc7, 0x8b, 0xe3, 0xab, 0xb9, 0xb5, 0xc2, 0xfa, 0x3f, 0xce, 0x95, 0xbd, 0x35, - 0xa7, 0x11, 0x27, 0xb6, 0xa5, 0x2f, 0x89, 0x20, 0x2a, 0x5f, 0xe5, 0x13, 0xb9, 0xcb, 0x3b, 0xe1, - 0x07, 0xe8, 0x0a, 0x15, 0x82, 0xda, 0x47, 0x04, 0x5e, 0xb5, 0xdc, 0x10, 0x1c, 0x75, 0x83, 0x69, - 0x0b, 0x77, 0x3b, 0xe5, 0x2b, 0x1b, 0x29, 0x0d, 0xc9, 0x58, 0x4a, 0xdf, 0x80, 0x39, 0xdb, 0xfe, - 0x21, 0x7b, 0xe6, 0xef, 0xb2, 0x96, 0x2f, 0x54, 0x81, 0xb5, 0xef, 0x7e, 0x4a, 0x43, 0x32, 0x96, - 0xd8, 0x46, 0xcb, 0x27, 0xac, 0xd9, 0xf2, 0x60, 0xc7, 0x3d, 0x04, 0xbb, 0x6d, 0x37, 0x61, 0x97, - 0x39, 0xc0, 0x8b, 0xb9, 0xd5, 0xdc, 0xda, 0x8c, 0x55, 0xed, 0x76, 0xca, 0xcb, 0xcf, 0x87, 0xe8, - 0x4f, 0x3b, 0xe5, 0xa5, 0x21, 0x72, 0x32, 0x14, 0x0c, 0x3f, 0x44, 0xf3, 0xba, 0x42, 0x9b, 0x34, - 0xa0, 0xb6, 0x2b, 0xda, 0xc5, 0xbc, 0xca, 0x70, 0xa9, 0xdb, 0x29, 0xcf, 0xd7, 0xd2, 0x2a, 0x92, - 0xb5, 0xc5, 0x8f, 0xd1, 0xdc, 0x21, 0xff, 0x4f, 0xc8, 0x5a, 0xc1, 0x3e, 0x6b, 0xba, 0x76, 0xbb, - 0x38, 0xb1, 0x6a, 0xac, 0xcd, 0x58, 0x95, 0x6e, 0xa7, 0x3c, 0xf7, 0xef, 0x5a, 0x42, 0x71, 0x9a, - 0x15, 0x90, 0xb4, 0x23, 0x06, 0x34, 0x27, 0xd8, 0x31, 0xf8, 0xb2, 0x74, 0xc0, 0x05, 0x2f, 0x4e, - 0xaa, 0x5e, 0xae, 0x7d, 0xa8, 0x97, 0x07, 0x09, 0x07, 0xeb, 0xaa, 0x6e, 0xe7, 0x5c, 0x52, 0xca, - 0x49, 0x1a, 0x15, 0x6f, 0xa2, 0xc5, 0x30, 0x6a, 0x0e, 0x27, 0x10, 0xb4, 0xea, 0x4d, 0x97, 0x1f, - 0x15, 0xa7, 0xd4, 0x8d, 0xaf, 0x76, 0x3b, 0xe5, 0x45, 0x92, 0x55, 0x92, 0x41, 0xfb, 0xca, 0xb7, - 0x06, 0x9a, 0xda, 0xac, 0x6d, 0xef, 0x31, 0x07, 0x2e, 0xe1, 0x69, 0x6e, 0xa7, 0x9e, 0xe6, 0xb5, - 0x33, 0x86, 0x5b, 0x26, 0x35, 0xf2, 0x61, 0xfe, 0x16, 0x3d, 0x4c, 0x69, 0xa3, 0x99, 0x65, 0x15, - 0xe5, 0x7d, 0xea, 0x81, 0x4a, 0x7d, 0x26, 0xf6, 0xd9, 0xa3, 0x1e, 0x10, 0xa5, 0xc1, 0xff, 0x44, - 0x93, 0x3e, 0x73, 0x60, 0xfb, 0x91, 0x4a, 0x60, 0xc6, 0xba, 0xa2, 0x6d, 0x26, 0xf7, 0x94, 0x94, - 0x68, 0x2d, 0xbe, 0x8b, 0x66, 0x05, 0x0b, 0x58, 0x93, 0x35, 0xda, 0x4f, 0xa1, 0xdd, 0x1b, 0xd3, - 0x85, 0x6e, 0xa7, 0x3c, 0x7b, 0x90, 0x90, 0x93, 0x94, 0x15, 0xae, 0xa3, 0x02, 0x6d, 0x36, 0x99, - 0x4d, 0x05, 0xad, 0x37, 0x41, 0xcd, 0x5e, 0x61, 0xbd, 0xfa, 0xa1, 0x3b, 0x46, 0xb3, 0x2d, 0x83, - 0x13, 0xe0, 0xac, 0x15, 0xda, 0xc0, 0xad, 0xf9, 0x6e, 0xa7, 0x5c, 0xd8, 0x88, 0x71, 0x48, 0x12, - 0xb4, 0xf2, 0x8d, 0x81, 0x0a, 0xfa, 0xd6, 0x97, 0x40, 0x46, 0x8f, 0xd3, 0x64, 0xf4, 0xf7, 0x73, - 0xf4, 0x6b, 0x04, 0x15, 0xd9, 0xfd, 0xb4, 0x15, 0x0f, 0x1d, 0xa0, 0x29, 0x47, 0x35, 0x8d, 0x17, - 0x0d, 0x05, 0x7d, 0xfd, 0x1c, 0xd0, 0x9a, 0xeb, 0xe6, 0x75, 0x80, 0xa9, 0xe8, 0xcc, 0x49, 0x0f, - 0xaa, 0xf2, 0xc5, 0x24, 0x9a, 0xed, 0x3d, 0xf3, 0x26, 0xe5, 0xfc, 0x12, 0x06, 0xfa, 0x5f, 0xa8, - 0x10, 0x84, 0xec, 0xc4, 0xe5, 0x2e, 0xf3, 0x21, 0xd4, 0x63, 0xb5, 0xa4, 0x5d, 0x0a, 0xfb, 0xb1, - 0x8a, 0x24, 0xed, 0x70, 0x13, 0xa1, 0x80, 0x86, 0xd4, 0x03, 0x21, 0x4b, 0x90, 0x53, 0x25, 0xb8, - 0xff, 0xa1, 0x12, 0x24, 0xaf, 0x65, 0xee, 0xf7, 0x5d, 0xb7, 0x7c, 0x11, 0xb6, 0xe3, 0x14, 0x63, - 0x05, 0x49, 0xe0, 0xe3, 0x63, 0x34, 0x17, 0x82, 0xdd, 0xa4, 0xae, 0xa7, 0x99, 0x2d, 0xaf, 0xd2, - 0xdc, 0x92, 0x0c, 0x43, 0x92, 0x8a, 0xd3, 0x4e, 0xf9, 0xf6, 0xe0, 0xf7, 0x86, 0xb9, 0x0f, 0x21, - 0x77, 0xb9, 0x00, 0x5f, 0x44, 0x03, 0x9b, 0xf2, 0x21, 0x69, 0x6c, 0xf9, 0x76, 0x3c, 0xc9, 0xf9, - 0xcf, 0x02, 0xe1, 0x32, 0x9f, 0x17, 0x27, 0xe2, 0xb7, 0xb3, 0x9b, 0x90, 0x93, 0x94, 0x15, 0xde, - 0x41, 0xcb, 0x72, 0xcc, 0x3f, 0x8e, 0x02, 0x6c, 0xbd, 0x0e, 0xa8, 0x2f, 0x4b, 0x55, 0x9c, 0x54, - 0x74, 0x56, 0x94, 0x0b, 0x62, 0x63, 0x88, 0x9e, 0x0c, 0xf5, 0xc2, 0xff, 0x43, 0x8b, 0xd1, 0x86, - 0xb0, 0x5c, 0xdf, 0x71, 0xfd, 0x86, 0xdc, 0x0f, 0x8a, 0x19, 0x67, 0xac, 0x1b, 0x92, 0x19, 0x9f, - 0x67, 0x95, 0xa7, 0xc3, 0x84, 0x64, 0x10, 0x04, 0xbf, 0x42, 0x8b, 0x2a, 0x22, 0x38, 0x9a, 0x08, - 0x5c, 0xe0, 0xc5, 0xe9, 0x41, 0x7a, 0x97, 0xa5, 0x93, 0x83, 0xd4, 0xa3, 0x8b, 0x1a, 0x34, 0xc1, - 0x16, 0x2c, 0x3c, 0x80, 0xd0, 0xb3, 0xfe, 0xa6, 0xfb, 0xb5, 0xb8, 0x91, 0x85, 0x22, 0x83, 0xe8, - 0x2b, 0x0f, 0xd1, 0x7c, 0xa6, 0xe1, 0x78, 0x01, 0xe5, 0x8e, 0xa1, 0x1d, 0x11, 0x1d, 0x91, 0x3f, - 0xf1, 0x32, 0x9a, 0x38, 0xa1, 0xcd, 0x16, 0x44, 0x13, 0x48, 0xa2, 0xc3, 0x83, 0xf1, 0xfb, 0x46, - 0xe5, 0x07, 0x03, 0x2d, 0x24, 0xa7, 0xe7, 0x12, 0x68, 0x63, 0x37, 0x4d, 0x1b, 0x6b, 0xe7, 0x1d, - 0xec, 0x11, 0xdc, 0xf1, 0xa9, 0x81, 0x66, 0x93, 0x8b, 0x10, 0xdf, 0x44, 0xd3, 0xb4, 0xe5, 0xb8, - 0xe0, 0xdb, 0x3d, 0xb2, 0xef, 0x67, 0xb3, 0xa1, 0xe5, 0xa4, 0x6f, 0x21, 0xd7, 0x24, 0xbc, 0x0e, - 0xdc, 0x90, 0xca, 0x49, 0xab, 0x81, 0xcd, 0x7c, 0x87, 0xab, 0x32, 0xe5, 0xa2, 0x35, 0xb9, 0x95, - 0x55, 0x92, 0x41, 0xfb, 0xca, 0xd7, 0xe3, 0x68, 0x21, 0x1a, 0x90, 0xe8, 0x2b, 0xc9, 0x03, 0x5f, - 0x5c, 0x02, 0xbd, 0x90, 0xd4, 0xbe, 0xbc, 0x7d, 0xf6, 0x2e, 0x89, 0xb3, 0x1b, 0xb5, 0x38, 0xf1, - 0x0b, 0x34, 0xc9, 0x05, 0x15, 0x2d, 0xc9, 0x3b, 0x12, 0x75, 0xfd, 0x42, 0xa8, 0xca, 0x33, 0x5e, - 0x9c, 0xd1, 0x99, 0x68, 0xc4, 0xca, 0x8f, 0x06, 0x5a, 0xce, 0xba, 0x5c, 0xc2, 0xc0, 0xfd, 0x37, - 0x3d, 0x70, 0x37, 0x2f, 0x72, 0xa3, 0x11, 0x43, 0xf7, 0xb3, 0x81, 0xfe, 0x32, 0x70, 0x79, 0xb5, - 0xa2, 0x25, 0x57, 0x05, 0x19, 0x46, 0xdc, 0x8b, 0xbf, 0x3b, 0x14, 0x57, 0xed, 0x0f, 0xd1, 0x93, - 0xa1, 0x5e, 0xf8, 0x25, 0x5a, 0x70, 0xfd, 0xa6, 0xeb, 0x43, 0x24, 0xab, 0xc5, 0xed, 0x1e, 0x4a, - 0x28, 0x59, 0x64, 0xd5, 0xe6, 0xe5, 0x6e, 0xa7, 0xbc, 0xb0, 0x9d, 0x41, 0x21, 0x03, 0xb8, 0x95, - 0x9f, 0x86, 0xb4, 0x47, 0xed, 0x63, 0xf9, 0xa2, 0x94, 0x04, 0xc2, 0x81, 0x17, 0xa5, 0xe5, 0xa4, - 0x6f, 0xa1, 0x26, 0x48, 0x95, 0x42, 0x27, 0x7a, 0xb1, 0x09, 0x52, 0x9e, 0x89, 0x09, 0x52, 0x67, - 0xa2, 0x11, 0x65, 0x26, 0xf2, 0x23, 0x4c, 0x15, 0x34, 0x97, 0xce, 0x64, 0x4f, 0xcb, 0x49, 0xdf, - 0xa2, 0xf2, 0x7b, 0x6e, 0x48, 0x97, 0xd4, 0x28, 0x26, 0xae, 0xd4, 0xfb, 0x93, 0x93, 0xbd, 0x92, - 0xd3, 0xbf, 0x92, 0x83, 0xbf, 0x34, 0x10, 0xa6, 0x7d, 0x88, 0xdd, 0xde, 0xa8, 0x46, 0xf3, 0xf4, - 0xe4, 0xe2, 0x2f, 0xc4, 0xdc, 0x18, 0x00, 0x8b, 0x76, 0xf5, 0x8a, 0x4e, 0x02, 0x0f, 0x1a, 0x90, - 0x21, 0x19, 0x60, 0x17, 0x15, 0x22, 0xe9, 0x56, 0x18, 0xb2, 0x50, 0x3f, 0xd9, 0x6b, 0x67, 0x27, - 0xa4, 0xcc, 0xad, 0x92, 0xfa, 0x98, 0x8c, 0xfd, 0x4f, 0x3b, 0xe5, 0x42, 0x42, 0x4f, 0x92, 0xd8, - 0x32, 0x94, 0x03, 0x71, 0xa8, 0xfc, 0x9f, 0x08, 0xf5, 0x08, 0x46, 0x87, 0x4a, 0x60, 0xaf, 0x6c, - 0xa1, 0xbf, 0x8e, 0x28, 0xd0, 0x85, 0x76, 0xdb, 0x67, 0x06, 0x4a, 0xc6, 0xc0, 0x3b, 0x28, 0x2f, - 0x5c, 0xfd, 0x12, 0x0b, 0xeb, 0x37, 0xce, 0xc7, 0x30, 0x07, 0xae, 0x07, 0x31, 0x51, 0xca, 0x13, - 0x51, 0x28, 0xf8, 0x3a, 0x9a, 0xf2, 0x80, 0x73, 0xda, 0xd0, 0x91, 0xe3, 0x2f, 0xcf, 0xdd, 0x48, - 0x4c, 0x7a, 0xfa, 0xca, 0x3d, 0xb4, 0x34, 0xe4, 0x5b, 0x1e, 0x97, 0xd1, 0x84, 0xad, 0xfe, 0x29, - 0xcb, 0x84, 0x26, 0xac, 0x19, 0xc9, 0x32, 0x9b, 0xea, 0x0f, 0x72, 0x24, 0xb7, 0x6e, 0xbd, 0x79, - 0x5f, 0x1a, 0x7b, 0xfb, 0xbe, 0x34, 0xf6, 0xee, 0x7d, 0x69, 0xec, 0x93, 0x6e, 0xc9, 0x78, 0xd3, - 0x2d, 0x19, 0x6f, 0xbb, 0x25, 0xe3, 0x5d, 0xb7, 0x64, 0xfc, 0xd2, 0x2d, 0x19, 0x9f, 0xff, 0x5a, - 0x1a, 0x7b, 0x31, 0xa5, 0xeb, 0xfd, 0x47, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6a, 0xb1, 0x9d, 0x65, - 0x9d, 0x12, 0x00, 0x00, + // 1651 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x3b, 0x6f, 0x1b, 0xc7, + 0x16, 0xd6, 0x8a, 0xd4, 0x6b, 0x28, 0x59, 0xd2, 0x48, 0xf6, 0xe5, 0x55, 0x41, 0x0a, 0xbc, 0xb8, + 0xd7, 0xb2, 0x61, 0x2f, 0x6d, 0x5d, 0xc7, 0x30, 0x0c, 0xb8, 0xd0, 0x4a, 0x4a, 0x4c, 0x5b, 0x94, + 0xe5, 0xa1, 0x60, 0x18, 0x46, 0x8a, 0x0c, 0x77, 0x47, 0xd4, 0x58, 0xdc, 0x87, 0x77, 0x86, 0x8a, + 0x99, 0x2a, 0x69, 0x52, 0x07, 0x29, 0xd2, 0x07, 0xc8, 0x5f, 0x48, 0x80, 0xa4, 0x49, 0x19, 0x03, + 0x01, 0x02, 0x23, 0x95, 0x2b, 0x22, 0x66, 0x7e, 0x42, 0x80, 0x14, 0x42, 0x8a, 0x60, 0x66, 0x87, + 0xdc, 0x17, 0x69, 0x49, 0x29, 0xd8, 0x69, 0xcf, 0xe3, 0x3b, 0x67, 0xe6, 0x7c, 0xe7, 0xcc, 0xa1, + 0xc0, 0xe6, 0xd1, 0x1d, 0xa6, 0x53, 0xb7, 0x7c, 0xd4, 0xaa, 0x13, 0xdf, 0x21, 0x9c, 0xb0, 0xf2, + 0x31, 0x71, 0x2c, 0xd7, 0x2f, 0x2b, 0x05, 0xf6, 0x68, 0x99, 0x71, 0xd7, 0xc7, 0x0d, 0x52, 0x3e, + 0xbe, 0x59, 0x27, 0x1c, 0xdf, 0x2c, 0x37, 0x88, 0x43, 0x7c, 0xcc, 0x89, 0xa5, 0x7b, 0xbe, 0xcb, + 0x5d, 0xb8, 0x12, 0xd8, 0xea, 0xd8, 0xa3, 0xba, 0xb2, 0xd5, 0x95, 0xed, 0xca, 0xf5, 0x06, 0xe5, + 0x87, 0xad, 0xba, 0x6e, 0xba, 0x76, 0xb9, 0xe1, 0x36, 0xdc, 0xb2, 0x74, 0xa9, 0xb7, 0x0e, 0xe4, + 0x97, 0xfc, 0x90, 0x7f, 0x05, 0x50, 0x2b, 0xa5, 0x48, 0x58, 0xd3, 0xf5, 0x45, 0xcc, 0x64, 0xb8, + 0x95, 0x5b, 0xa1, 0x8d, 0x8d, 0xcd, 0x43, 0xea, 0x10, 0xbf, 0x5d, 0xf6, 0x8e, 0x1a, 0xd2, 0xc9, + 0x27, 0xcc, 0x6d, 0xf9, 0x26, 0x39, 0x97, 0x17, 0x2b, 0xdb, 0x84, 0xe3, 0x41, 0xb1, 0xca, 0xc3, + 0xbc, 0xfc, 0x96, 0xc3, 0xa9, 0x9d, 0x0e, 0x73, 0xfb, 0x34, 0x07, 0x66, 0x1e, 0x12, 0x1b, 0x27, + 0xfd, 0x4a, 0x3f, 0x68, 0x60, 0x66, 0xb3, 0x56, 0xd9, 0xf2, 0xe9, 0x31, 0xf1, 0xe1, 0x47, 0x60, + 0x5a, 0x64, 0x64, 0x61, 0x8e, 0xf3, 0xda, 0xaa, 0xb6, 0x96, 0x5b, 0xbf, 0xa1, 0x87, 0x97, 0xdc, + 0x07, 0xd6, 0xbd, 0xa3, 0x86, 0x10, 0x30, 0x5d, 0x58, 0xeb, 0xc7, 0x37, 0xf5, 0x47, 0xf5, 0xe7, + 0xc4, 0xe4, 0x55, 0xc2, 0xb1, 0x01, 0x5f, 0x75, 0x8a, 0x63, 0xdd, 0x4e, 0x11, 0x84, 0x32, 0xd4, + 0x47, 0x85, 0x0f, 0x41, 0x96, 0x79, 0xc4, 0xcc, 0x8f, 0x4b, 0xf4, 0x2b, 0xfa, 0xf0, 0x12, 0xea, + 0xfd, 0xb4, 0x6a, 0x1e, 0x31, 0x8d, 0x59, 0x05, 0x9b, 0x15, 0x5f, 0x48, 0x82, 0x94, 0xbe, 0xd7, + 0xc0, 0x5c, 0xdf, 0x6a, 0x87, 0x32, 0x0e, 0x3f, 0x4c, 0x1d, 0x40, 0x3f, 0xdb, 0x01, 0x84, 0xb7, + 0x4c, 0x7f, 0x41, 0xc5, 0x99, 0xee, 0x49, 0x22, 0xc9, 0x3f, 0x00, 0x13, 0x94, 0x13, 0x9b, 0xe5, + 0xc7, 0x57, 0x33, 0x6b, 0xb9, 0xf5, 0xff, 0x9e, 0x29, 0x7b, 0x63, 0x4e, 0x21, 0x4e, 0x54, 0x84, + 0x2f, 0x0a, 0x20, 0x4a, 0x5f, 0x67, 0x23, 0xb9, 0x8b, 0x33, 0xc1, 0xbb, 0xe0, 0x02, 0xe6, 0x1c, + 0x9b, 0x87, 0x88, 0xbc, 0x68, 0x51, 0x9f, 0x58, 0xf2, 0x04, 0xd3, 0x06, 0xec, 0x76, 0x8a, 0x17, + 0x36, 0x62, 0x1a, 0x94, 0xb0, 0x14, 0xbe, 0x9e, 0x6b, 0x55, 0x9c, 0x03, 0xf7, 0x91, 0x53, 0x75, + 0x5b, 0x0e, 0x97, 0x17, 0xac, 0x7c, 0xf7, 0x62, 0x1a, 0x94, 0xb0, 0x84, 0x26, 0x58, 0x3e, 0x76, + 0x9b, 0x2d, 0x9b, 0xec, 0xd0, 0x03, 0x62, 0xb6, 0xcd, 0x26, 0xa9, 0xba, 0x16, 0x61, 0xf9, 0xcc, + 0x6a, 0x66, 0x6d, 0xc6, 0x28, 0x77, 0x3b, 0xc5, 0xe5, 0x27, 0x03, 0xf4, 0x27, 0x9d, 0xe2, 0xd2, + 0x00, 0x39, 0x1a, 0x08, 0x06, 0xef, 0x81, 0x79, 0x75, 0x43, 0x9b, 0xd8, 0xc3, 0x26, 0xe5, 0xed, + 0x7c, 0x56, 0x66, 0xb8, 0xd4, 0xed, 0x14, 0xe7, 0x6b, 0x71, 0x15, 0x4a, 0xda, 0xc2, 0xfb, 0x60, + 0xee, 0x80, 0x7d, 0xe0, 0xbb, 0x2d, 0x6f, 0xcf, 0x6d, 0x52, 0xb3, 0x9d, 0x9f, 0x58, 0xd5, 0xd6, + 0x66, 0x8c, 0x52, 0xb7, 0x53, 0x9c, 0x7b, 0xbf, 0x16, 0x51, 0x9c, 0x24, 0x05, 0x28, 0xee, 0x08, + 0x09, 0x98, 0xe3, 0xee, 0x11, 0x71, 0xc4, 0xd5, 0x11, 0xc6, 0x59, 0x7e, 0x52, 0xd6, 0x72, 0xed, + 0x5d, 0xb5, 0xdc, 0x8f, 0x38, 0x18, 0x17, 0x55, 0x39, 0xe7, 0xa2, 0x52, 0x86, 0xe2, 0xa8, 0x70, + 0x13, 0x2c, 0xfa, 0x41, 0x71, 0x18, 0x22, 0x5e, 0xab, 0xde, 0xa4, 0xec, 0x30, 0x3f, 0x25, 0x4f, + 0x7c, 0xb1, 0xdb, 0x29, 0x2e, 0xa2, 0xa4, 0x12, 0xa5, 0xed, 0x4b, 0xdf, 0x69, 0x60, 0x6a, 0xb3, + 0x56, 0xd9, 0x75, 0x2d, 0x32, 0x82, 0xd6, 0xac, 0xc4, 0x5a, 0xf3, 0xf2, 0x29, 0xe4, 0x16, 0x49, + 0x0d, 0x6d, 0xcc, 0x3f, 0x82, 0xc6, 0x14, 0x36, 0x6a, 0xb2, 0xac, 0x82, 0xac, 0x83, 0x6d, 0x22, + 0x53, 0x9f, 0x09, 0x7d, 0x76, 0xb1, 0x4d, 0x90, 0xd4, 0xc0, 0xff, 0x81, 0x49, 0xc7, 0xb5, 0x48, + 0x65, 0x4b, 0x26, 0x30, 0x63, 0x5c, 0x50, 0x36, 0x93, 0xbb, 0x52, 0x8a, 0x94, 0x16, 0xde, 0x02, + 0xb3, 0xdc, 0xf5, 0xdc, 0xa6, 0xdb, 0x68, 0x3f, 0x24, 0xed, 0x1e, 0x4d, 0x17, 0xba, 0x9d, 0xe2, + 0xec, 0x7e, 0x44, 0x8e, 0x62, 0x56, 0xb0, 0x0e, 0x72, 0xb8, 0xd9, 0x74, 0x4d, 0xcc, 0x71, 0xbd, + 0x49, 0x24, 0xf7, 0x72, 0xeb, 0xe5, 0x77, 0x9d, 0x31, 0xe0, 0xb6, 0x08, 0x8e, 0xd4, 0x6c, 0x67, + 0xc6, 0x7c, 0xb7, 0x53, 0xcc, 0x6d, 0x84, 0x38, 0x28, 0x0a, 0x5a, 0xfa, 0x56, 0x03, 0x39, 0x75, + 0xea, 0x11, 0x0c, 0xa3, 0xfb, 0xf1, 0x61, 0xf4, 0x9f, 0x33, 0xd4, 0x6b, 0xc8, 0x28, 0x32, 0xfb, + 0x69, 0xcb, 0x39, 0xb4, 0x0f, 0xa6, 0x2c, 0x59, 0x34, 0x96, 0xd7, 0x24, 0xf4, 0x95, 0x33, 0x40, + 0xab, 0x59, 0x37, 0xaf, 0x02, 0x4c, 0x05, 0xdf, 0x0c, 0xf5, 0xa0, 0x4a, 0x7f, 0x66, 0x00, 0xdc, + 0xac, 0x55, 0x12, 0x9d, 0x3e, 0x02, 0x5a, 0x53, 0x30, 0x2b, 0x98, 0xd3, 0xe3, 0x86, 0xa2, 0xf7, + 0xff, 0xcf, 0x58, 0x09, 0x5c, 0x27, 0xcd, 0x1a, 0x69, 0x12, 0x93, 0xbb, 0x7e, 0x40, 0xb2, 0xdd, + 0x08, 0x18, 0x8a, 0x41, 0xc3, 0x2d, 0xb0, 0xd0, 0x1b, 0x5c, 0x4d, 0xcc, 0x98, 0x20, 0x77, 0x3e, + 0x23, 0xc9, 0x9c, 0x57, 0x29, 0x2e, 0xd4, 0x12, 0x7a, 0x94, 0xf2, 0x80, 0x4f, 0xc1, 0xb4, 0x19, + 0x9d, 0x91, 0xa7, 0xd0, 0x46, 0xef, 0xad, 0x1e, 0xfa, 0xe3, 0x16, 0x76, 0x38, 0xe5, 0x6d, 0x63, + 0x56, 0x50, 0xa6, 0x3f, 0x4c, 0xfb, 0x68, 0x90, 0x81, 0x45, 0x1b, 0xbf, 0xa4, 0x76, 0xcb, 0x0e, + 0xc8, 0x5d, 0xa3, 0x9f, 0x10, 0x39, 0x49, 0xcf, 0x1f, 0x42, 0x0e, 0xb1, 0x6a, 0x12, 0x0c, 0xa5, + 0xf1, 0x4b, 0x3f, 0x6b, 0xe0, 0x52, 0xba, 0xf0, 0x23, 0x68, 0x90, 0x5a, 0xbc, 0x41, 0xf4, 0x53, + 0x58, 0x9c, 0x48, 0x70, 0x48, 0xaf, 0x7c, 0x39, 0x09, 0x66, 0xa3, 0x35, 0x1c, 0x01, 0x81, 0xdf, + 0x03, 0x39, 0xcf, 0x77, 0x8f, 0x29, 0xa3, 0xae, 0x43, 0x7c, 0x35, 0x1d, 0x97, 0x94, 0x4b, 0x6e, + 0x2f, 0x54, 0xa1, 0xa8, 0x1d, 0x6c, 0x02, 0xe0, 0x61, 0x1f, 0xdb, 0x84, 0x8b, 0x4e, 0xce, 0xc8, + 0x3b, 0xb8, 0xf3, 0xae, 0x3b, 0x88, 0x1e, 0x4b, 0xdf, 0xeb, 0xbb, 0x6e, 0x3b, 0xdc, 0x6f, 0x87, + 0x29, 0x86, 0x0a, 0x14, 0xc1, 0x87, 0x47, 0x60, 0xce, 0x27, 0x66, 0x13, 0x53, 0x5b, 0x3d, 0xd0, + 0x59, 0x99, 0xe6, 0xb6, 0x78, 0x28, 0x51, 0x54, 0x71, 0xd2, 0x29, 0xde, 0x48, 0x2f, 0xdb, 0xfa, + 0x1e, 0xf1, 0x19, 0x65, 0x9c, 0x38, 0x3c, 0xa0, 0x4e, 0xcc, 0x07, 0xc5, 0xb1, 0xc5, 0x13, 0x60, + 0x8b, 0xd5, 0xe5, 0x91, 0xc7, 0xa9, 0xeb, 0xb0, 0xfc, 0x44, 0xf8, 0x04, 0x54, 0x23, 0x72, 0x14, + 0xb3, 0x82, 0x3b, 0x60, 0x59, 0x4c, 0xeb, 0x8f, 0x83, 0x00, 0xdb, 0x2f, 0x3d, 0xec, 0x88, 0xab, + 0xca, 0x4f, 0xca, 0x57, 0x39, 0x2f, 0xf6, 0x9c, 0x8d, 0x01, 0x7a, 0x34, 0xd0, 0x0b, 0x3e, 0x05, + 0x8b, 0xc1, 0xa2, 0x63, 0x50, 0xc7, 0xa2, 0x4e, 0x43, 0xac, 0x39, 0xf2, 0x81, 0x9f, 0x31, 0xae, + 0x8a, 0xde, 0x78, 0x92, 0x54, 0x9e, 0x0c, 0x12, 0xa2, 0x34, 0x08, 0x7c, 0x01, 0x16, 0x65, 0x44, + 0x62, 0xa9, 0xc1, 0x42, 0x09, 0xcb, 0x4f, 0xa7, 0xb7, 0x14, 0x71, 0x75, 0x82, 0x48, 0xbd, 0xf1, + 0xd3, 0x1b, 0x53, 0xfb, 0xc4, 0xb7, 0x8d, 0x7f, 0xab, 0x7a, 0x2d, 0x6e, 0x24, 0xa1, 0x50, 0x1a, + 0x7d, 0xe5, 0x1e, 0x98, 0x4f, 0x14, 0x1c, 0x2e, 0x80, 0xcc, 0x11, 0x69, 0x07, 0xef, 0x35, 0x12, + 0x7f, 0xc2, 0x65, 0x30, 0x71, 0x8c, 0x9b, 0x2d, 0x12, 0x30, 0x10, 0x05, 0x1f, 0x77, 0xc7, 0xef, + 0x68, 0xa5, 0x1f, 0x35, 0x10, 0x1b, 0x6c, 0x23, 0x68, 0xee, 0x6a, 0xbc, 0xb9, 0xd7, 0xce, 0x4a, + 0xec, 0x21, 0x6d, 0xfd, 0x99, 0x06, 0x66, 0xa3, 0xfb, 0x1c, 0xbc, 0x06, 0xa6, 0x71, 0xcb, 0xa2, + 0xc4, 0x31, 0x7b, 0x3b, 0x4b, 0x3f, 0x9b, 0x0d, 0x25, 0x47, 0x7d, 0x0b, 0xb1, 0xed, 0x91, 0x97, + 0x1e, 0xf5, 0xb1, 0x60, 0x5a, 0x8d, 0x98, 0xae, 0x63, 0x31, 0x79, 0x4d, 0x99, 0x60, 0x50, 0x6e, + 0x27, 0x95, 0x28, 0x6d, 0x5f, 0xfa, 0x66, 0x1c, 0x2c, 0x04, 0x04, 0x09, 0x96, 0x7d, 0x9b, 0x38, + 0x7c, 0x04, 0xe3, 0x05, 0xc5, 0xd6, 0xbe, 0x1b, 0xa7, 0xaf, 0x44, 0x61, 0x76, 0xc3, 0xf6, 0x3f, + 0xf8, 0x0c, 0x4c, 0x32, 0x8e, 0x79, 0x8b, 0xc9, 0xe7, 0x2f, 0xb7, 0xbe, 0x7e, 0x2e, 0x54, 0xe9, + 0x19, 0xee, 0x7f, 0xc1, 0x37, 0x52, 0x88, 0xa5, 0x9f, 0x34, 0xb0, 0x9c, 0x74, 0x19, 0x01, 0xe1, + 0x1e, 0xc7, 0x09, 0x77, 0xed, 0x3c, 0x27, 0x1a, 0x42, 0xba, 0x5f, 0x35, 0x70, 0x29, 0x75, 0x78, + 0xf9, 0xce, 0x8a, 0x59, 0xe5, 0x25, 0x26, 0xe2, 0x6e, 0xb8, 0x3e, 0xcb, 0x59, 0xb5, 0x37, 0x40, + 0x8f, 0x06, 0x7a, 0xc1, 0xe7, 0x60, 0x81, 0x3a, 0x4d, 0xea, 0x10, 0xf5, 0x2c, 0x87, 0xe5, 0x1e, + 0x38, 0x50, 0x92, 0xc8, 0xb2, 0xcc, 0xcb, 0x62, 0x7b, 0xa9, 0x24, 0x50, 0x50, 0x0a, 0xb7, 0xf4, + 0xcb, 0x80, 0xf2, 0xc8, 0xb5, 0x52, 0x74, 0x94, 0x94, 0x10, 0x3f, 0xd5, 0x51, 0x4a, 0x8e, 0xfa, + 0x16, 0x92, 0x41, 0xf2, 0x2a, 0x54, 0xa2, 0xe7, 0x63, 0x90, 0xf4, 0x8c, 0x30, 0x48, 0x7e, 0x23, + 0x85, 0x28, 0x32, 0x11, 0x6b, 0x5b, 0x64, 0x3d, 0xeb, 0x67, 0xb2, 0xab, 0xe4, 0xa8, 0x6f, 0x51, + 0xfa, 0x2b, 0x33, 0xa0, 0x4a, 0x92, 0x8a, 0x91, 0x23, 0xf5, 0x7e, 0xab, 0x27, 0x8f, 0x64, 0xf5, + 0x8f, 0x64, 0xc1, 0xaf, 0x34, 0x00, 0x71, 0x1f, 0xa2, 0xda, 0xa3, 0x6a, 0xc0, 0xa7, 0x07, 0xe7, + 0xef, 0x10, 0x7d, 0x23, 0x05, 0x16, 0xbc, 0xd5, 0x2b, 0x2a, 0x09, 0x98, 0x36, 0x40, 0x03, 0x32, + 0x80, 0x14, 0xe4, 0x02, 0xe9, 0xb6, 0xef, 0xbb, 0xbe, 0x6a, 0xd9, 0xcb, 0xa7, 0x27, 0x24, 0xcd, + 0x8d, 0x82, 0xfc, 0x4d, 0x14, 0xfa, 0x9f, 0x74, 0x8a, 0xb9, 0x88, 0x1e, 0x45, 0xb1, 0x45, 0x28, + 0x8b, 0x84, 0xa1, 0xb2, 0xff, 0x20, 0xd4, 0x16, 0x19, 0x1e, 0x2a, 0x82, 0xbd, 0xb2, 0x0d, 0xfe, + 0x35, 0xe4, 0x82, 0xce, 0xf5, 0xb6, 0x7d, 0xae, 0x81, 0x68, 0x0c, 0xb8, 0x03, 0xb2, 0x9c, 0xaa, + 0x4e, 0xcc, 0xad, 0x5f, 0x3d, 0xdb, 0x84, 0xd9, 0xa7, 0x36, 0x09, 0x07, 0xa5, 0xf8, 0x42, 0x12, + 0x05, 0x5e, 0x01, 0x53, 0x36, 0x61, 0x0c, 0x37, 0x54, 0xe4, 0xf0, 0x07, 0x54, 0x35, 0x10, 0xa3, + 0x9e, 0xbe, 0x74, 0x1b, 0x2c, 0x0d, 0xf8, 0x49, 0x0a, 0x8b, 0x60, 0xc2, 0x94, 0xff, 0xf0, 0x11, + 0x09, 0x4d, 0x18, 0x33, 0x62, 0xca, 0x6c, 0xca, 0xff, 0xf3, 0x04, 0x72, 0xe3, 0xfa, 0xab, 0xb7, + 0x85, 0xb1, 0xd7, 0x6f, 0x0b, 0x63, 0x6f, 0xde, 0x16, 0xc6, 0x3e, 0xed, 0x16, 0xb4, 0x57, 0xdd, + 0x82, 0xf6, 0xba, 0x5b, 0xd0, 0xde, 0x74, 0x0b, 0xda, 0x6f, 0xdd, 0x82, 0xf6, 0xc5, 0xef, 0x85, + 0xb1, 0x67, 0x53, 0xea, 0xbe, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xce, 0xa8, 0xf1, 0x40, 0x9a, + 0x15, 0x00, 0x00, } func (m *CSIDriver) Marshal() (dAtA []byte, err error) { @@ -1011,6 +1080,127 @@ func (m *CSINodeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *CSIStorageCapacity) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CSIStorageCapacity) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CSIStorageCapacity) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.MaximumVolumeSize != nil { + { + size, err := m.MaximumVolumeSize.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Capacity != nil { + { + size, err := m.Capacity.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + i -= len(m.StorageClassName) + copy(dAtA[i:], m.StorageClassName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageClassName))) + i-- + dAtA[i] = 0x1a + if m.NodeTopology != nil { + { + size, err := m.NodeTopology.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CSIStorageCapacityList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CSIStorageCapacityList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CSIStorageCapacityList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *StorageClass) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1676,6 +1866,48 @@ func (m *CSINodeSpec) Size() (n int) { return n } +func (m *CSIStorageCapacity) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.NodeTopology != nil { + l = m.NodeTopology.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.StorageClassName) + n += 1 + l + sovGenerated(uint64(l)) + if m.Capacity != nil { + l = m.Capacity.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.MaximumVolumeSize != nil { + l = m.MaximumVolumeSize.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *CSIStorageCapacityList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + func (m *StorageClass) Size() (n int) { if m == nil { return 0 @@ -1975,6 +2207,36 @@ func (this *CSINodeSpec) String() string { }, "") return s } +func (this *CSIStorageCapacity) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CSIStorageCapacity{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `NodeTopology:` + strings.Replace(fmt.Sprintf("%v", this.NodeTopology), "LabelSelector", "v1.LabelSelector", 1) + `,`, + `StorageClassName:` + fmt.Sprintf("%v", this.StorageClassName) + `,`, + `Capacity:` + strings.Replace(fmt.Sprintf("%v", this.Capacity), "Quantity", "resource.Quantity", 1) + `,`, + `MaximumVolumeSize:` + strings.Replace(fmt.Sprintf("%v", this.MaximumVolumeSize), "Quantity", "resource.Quantity", 1) + `,`, + `}`, + }, "") + return s +} +func (this *CSIStorageCapacityList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]CSIStorageCapacity{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "CSIStorageCapacity", "CSIStorageCapacity", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&CSIStorageCapacityList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} func (this *StorageClass) String() string { if this == nil { return "nil" @@ -2238,10 +2500,7 @@ func (m *CSIDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2358,10 +2617,7 @@ func (m *CSIDriverList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2594,10 +2850,7 @@ func (m *CSIDriverSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2713,10 +2966,7 @@ func (m *CSINode) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2898,10 +3148,7 @@ func (m *CSINodeDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3018,10 +3265,7 @@ func (m *CSINodeList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3105,10 +3349,7 @@ func (m *CSINodeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3123,7 +3364,7 @@ func (m *CSINodeSpec) Unmarshal(dAtA []byte) error { } return nil } -func (m *StorageClass) Unmarshal(dAtA []byte) error { +func (m *CSIStorageCapacity) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3146,10 +3387,10 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: StorageClass: wiretype end group for non-group") + return fmt.Errorf("proto: CSIStorageCapacity: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: StorageClass: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CSIStorageCapacity: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -3187,9 +3428,9 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Provisioner", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NodeTopology", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -3199,29 +3440,33 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Provisioner = string(dAtA[iNdEx:postIndex]) + if m.NodeTopology == nil { + m.NodeTopology = &v1.LabelSelector{} + } + if err := m.NodeTopology.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StorageClassName", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -3231,25 +3476,361 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Parameters == nil { - m.Parameters = make(map[string]string) - } - var mapkey string + m.StorageClassName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Capacity", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Capacity == nil { + m.Capacity = &resource.Quantity{} + } + if err := m.Capacity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaximumVolumeSize", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaximumVolumeSize == nil { + m.MaximumVolumeSize = &resource.Quantity{} + } + if err := m.MaximumVolumeSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CSIStorageCapacityList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CSIStorageCapacityList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CSIStorageCapacityList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, CSIStorageCapacity{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StorageClass) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StorageClass: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StorageClass: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provisioner", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Provisioner = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Parameters == nil { + m.Parameters = make(map[string]string) + } + var mapkey string var mapvalue string for iNdEx < postIndex { entryPreIndex := iNdEx @@ -3333,7 +3914,7 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3503,10 +4084,7 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3623,10 +4201,7 @@ func (m *StorageClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3728,10 +4303,7 @@ func (m *TokenRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3880,10 +4452,7 @@ func (m *VolumeAttachment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4000,10 +4569,7 @@ func (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4122,10 +4688,7 @@ func (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4272,10 +4835,7 @@ func (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4455,7 +5015,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -4544,10 +5104,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4662,10 +5219,7 @@ func (m *VolumeError) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4735,10 +5289,7 @@ func (m *VolumeNodeResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/api/storage/v1beta1/generated.proto b/vendor/k8s.io/api/storage/v1beta1/generated.proto index 1eb4e1f88c..5ed6413ec0 100644 --- a/vendor/k8s.io/api/storage/v1beta1/generated.proto +++ b/vendor/k8s.io/api/storage/v1beta1/generated.proto @@ -22,6 +22,7 @@ syntax = "proto2"; package k8s.io.api.storage.v1beta1; import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/api/resource/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; @@ -75,6 +76,9 @@ message CSIDriverSpec { // If the CSIDriverRegistry feature gate is enabled and the value is // specified to false, the attach operation will be skipped. // Otherwise the attach operation will be called. + // + // This field is immutable. + // // +optional optional bool attachRequired = 1; @@ -93,7 +97,7 @@ message CSIDriverSpec { // "csi.storage.k8s.io/pod.name": pod.Name // "csi.storage.k8s.io/pod.namespace": pod.Namespace // "csi.storage.k8s.io/pod.uid": string(pod.UID) - // "csi.storage.k8s.io/ephemeral": "true" iff the volume is an ephemeral inline volume + // "csi.storage.k8s.io/ephemeral": "true" if the volume is an ephemeral inline volume // defined by a CSIVolumeSource, otherwise "false" // // "csi.storage.k8s.io/ephemeral" is a new feature in Kubernetes 1.16. It is only @@ -102,6 +106,9 @@ message CSIDriverSpec { // As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when // deployed on such a cluster and the deployment determines which mode that is, for example // via a command line parameter of the driver. + // + // This field is immutable. + // // +optional optional bool podInfoOnMount = 2; @@ -117,6 +124,9 @@ message CSIDriverSpec { // https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html // A driver can support one or more of these modes and // more modes may be added in the future. + // + // This field is immutable. + // // +optional repeated string volumeLifecycleModes = 3; @@ -134,10 +144,13 @@ message CSIDriverSpec { // unset or false and it can be flipped later when storage // capacity information has been published. // - // This is an alpha field and only available when the CSIStorageCapacity + // This field is immutable. + // + // This is a beta field and only available when the CSIStorageCapacity // feature is enabled. The default is false. // // +optional + // +featureGate=CSIStorageCapacity optional bool storageCapacity = 4; // Defines if the underlying volume supports changing ownership and @@ -145,6 +158,9 @@ message CSIDriverSpec { // Refer to the specific FSGroupPolicy values for additional details. // This field is alpha-level, and is only honored by servers // that enable the CSIVolumeFSGroupPolicy feature gate. + // + // This field is immutable. + // // +optional optional string fsGroupPolicy = 5; @@ -164,7 +180,7 @@ message CSIDriverSpec { // most one token is empty string. To receive a new token after expiry, // RequiresRepublish can be used to trigger NodePublishVolume periodically. // - // This is an alpha feature and only available when the + // This is a beta feature and only available when the // CSIServiceAccountToken feature is enabled. // // +optional @@ -179,7 +195,7 @@ message CSIDriverSpec { // to NodePublishVolume should only update the contents of the volume. New // mount points will not be seen by a running container. // - // This is an alpha feature and only available when the + // This is a beta feature and only available when the // CSIServiceAccountToken feature is enabled. // // +optional @@ -261,6 +277,96 @@ message CSINodeSpec { repeated CSINodeDriver drivers = 1; } +// CSIStorageCapacity stores the result of one CSI GetCapacity call. +// For a given StorageClass, this describes the available capacity in a +// particular topology segment. This can be used when considering where to +// instantiate new PersistentVolumes. +// +// For example this can express things like: +// - StorageClass "standard" has "1234 GiB" available in "topology.kubernetes.io/zone=us-east1" +// - StorageClass "localssd" has "10 GiB" available in "kubernetes.io/hostname=knode-abc123" +// +// The following three cases all imply that no capacity is available for +// a certain combination: +// - no object exists with suitable topology and storage class name +// - such an object exists, but the capacity is unset +// - such an object exists, but the capacity is zero +// +// The producer of these objects can decide which approach is more suitable. +// +// They are consumed by the kube-scheduler if the CSIStorageCapacity beta feature gate +// is enabled there and a CSI driver opts into capacity-aware scheduling with +// CSIDriver.StorageCapacity. +message CSIStorageCapacity { + // Standard object's metadata. The name has no particular meaning. It must be + // be a DNS subdomain (dots allowed, 253 characters). To ensure that + // there are no conflicts with other CSI drivers on the cluster, the recommendation + // is to use csisc-, a generated name, or a reverse-domain name which ends + // with the unique CSI driver name. + // + // Objects are namespaced. + // + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // NodeTopology defines which nodes have access to the storage + // for which capacity was reported. If not set, the storage is + // not accessible from any node in the cluster. If empty, the + // storage is accessible from all nodes. This field is + // immutable. + // + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector nodeTopology = 2; + + // The name of the StorageClass that the reported capacity applies to. + // It must meet the same requirements as the name of a StorageClass + // object (non-empty, DNS subdomain). If that object no longer exists, + // the CSIStorageCapacity object is obsolete and should be removed by its + // creator. + // This field is immutable. + optional string storageClassName = 3; + + // Capacity is the value reported by the CSI driver in its GetCapacityResponse + // for a GetCapacityRequest with topology and parameters that match the + // previous fields. + // + // The semantic is currently (CSI spec 1.2) defined as: + // The available capacity, in bytes, of the storage that can be used + // to provision volumes. If not set, that information is currently + // unavailable and treated like zero capacity. + // + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity capacity = 4; + + // MaximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse + // for a GetCapacityRequest with topology and parameters that match the + // previous fields. + // + // This is defined since CSI spec 1.4.0 as the largest size + // that may be used in a + // CreateVolumeRequest.capacity_range.required_bytes field to + // create a volume with the same parameters as those in + // GetCapacityRequest. The corresponding value in the Kubernetes + // API is ResourceRequirements.Requests in a volume claim. + // + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity maximumVolumeSize = 5; +} + +// CSIStorageCapacityList is a collection of CSIStorageCapacity objects. +message CSIStorageCapacityList { + // Standard list metadata + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of CSIStorageCapacity objects. + // +listType=map + // +listMapKey=name + repeated CSIStorageCapacity items = 2; +} + // StorageClass describes the parameters for a class of storage for // which PersistentVolumes can be dynamically provisioned. // @@ -378,7 +484,7 @@ message VolumeAttachmentSource { // a persistent volume defined by a pod's inline VolumeSource. This field // is populated only for the CSIMigration feature. It contains // translated fields from a pod's inline VolumeSource to a - // PersistentVolumeSpec. This field is alpha-level and is only + // PersistentVolumeSpec. This field is beta-level and is only // honored by servers that enabled the CSIMigration feature. // +optional optional k8s.io.api.core.v1.PersistentVolumeSpec inlineVolumeSpec = 2; diff --git a/vendor/k8s.io/api/storage/v1beta1/register.go b/vendor/k8s.io/api/storage/v1beta1/register.go index c270ace57d..a281d0f26e 100644 --- a/vendor/k8s.io/api/storage/v1beta1/register.go +++ b/vendor/k8s.io/api/storage/v1beta1/register.go @@ -55,6 +55,9 @@ func addKnownTypes(scheme *runtime.Scheme) error { &CSINode{}, &CSINodeList{}, + + &CSIStorageCapacity{}, + &CSIStorageCapacityList{}, ) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/vendor/k8s.io/api/storage/v1beta1/types.go b/vendor/k8s.io/api/storage/v1beta1/types.go index 10df2baa7a..d1ffe7a0ec 100644 --- a/vendor/k8s.io/api/storage/v1beta1/types.go +++ b/vendor/k8s.io/api/storage/v1beta1/types.go @@ -18,6 +18,7 @@ package v1beta1 import ( v1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -182,7 +183,7 @@ type VolumeAttachmentSource struct { // a persistent volume defined by a pod's inline VolumeSource. This field // is populated only for the CSIMigration feature. It contains // translated fields from a pod's inline VolumeSource to a - // PersistentVolumeSpec. This field is alpha-level and is only + // PersistentVolumeSpec. This field is beta-level and is only // honored by servers that enabled the CSIMigration feature. // +optional InlineVolumeSpec *v1.PersistentVolumeSpec `json:"inlineVolumeSpec,omitempty" protobuf:"bytes,2,opt,name=inlineVolumeSpec"` @@ -291,6 +292,9 @@ type CSIDriverSpec struct { // If the CSIDriverRegistry feature gate is enabled and the value is // specified to false, the attach operation will be skipped. // Otherwise the attach operation will be called. + // + // This field is immutable. + // // +optional AttachRequired *bool `json:"attachRequired,omitempty" protobuf:"varint,1,opt,name=attachRequired"` @@ -309,7 +313,7 @@ type CSIDriverSpec struct { // "csi.storage.k8s.io/pod.name": pod.Name // "csi.storage.k8s.io/pod.namespace": pod.Namespace // "csi.storage.k8s.io/pod.uid": string(pod.UID) - // "csi.storage.k8s.io/ephemeral": "true" iff the volume is an ephemeral inline volume + // "csi.storage.k8s.io/ephemeral": "true" if the volume is an ephemeral inline volume // defined by a CSIVolumeSource, otherwise "false" // // "csi.storage.k8s.io/ephemeral" is a new feature in Kubernetes 1.16. It is only @@ -318,6 +322,9 @@ type CSIDriverSpec struct { // As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when // deployed on such a cluster and the deployment determines which mode that is, for example // via a command line parameter of the driver. + // + // This field is immutable. + // // +optional PodInfoOnMount *bool `json:"podInfoOnMount,omitempty" protobuf:"bytes,2,opt,name=podInfoOnMount"` @@ -333,6 +340,9 @@ type CSIDriverSpec struct { // https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html // A driver can support one or more of these modes and // more modes may be added in the future. + // + // This field is immutable. + // // +optional VolumeLifecycleModes []VolumeLifecycleMode `json:"volumeLifecycleModes,omitempty" protobuf:"bytes,3,opt,name=volumeLifecycleModes"` @@ -351,10 +361,13 @@ type CSIDriverSpec struct { // unset or false and it can be flipped later when storage // capacity information has been published. // - // This is an alpha field and only available when the CSIStorageCapacity + // This field is immutable. + // + // This is a beta field and only available when the CSIStorageCapacity // feature is enabled. The default is false. // // +optional + // +featureGate=CSIStorageCapacity StorageCapacity *bool `json:"storageCapacity,omitempty" protobuf:"bytes,4,opt,name=storageCapacity"` // Defines if the underlying volume supports changing ownership and @@ -362,6 +375,9 @@ type CSIDriverSpec struct { // Refer to the specific FSGroupPolicy values for additional details. // This field is alpha-level, and is only honored by servers // that enable the CSIVolumeFSGroupPolicy feature gate. + // + // This field is immutable. + // // +optional FSGroupPolicy *FSGroupPolicy `json:"fsGroupPolicy,omitempty" protobuf:"bytes,5,opt,name=fsGroupPolicy"` @@ -381,7 +397,7 @@ type CSIDriverSpec struct { // most one token is empty string. To receive a new token after expiry, // RequiresRepublish can be used to trigger NodePublishVolume periodically. // - // This is an alpha feature and only available when the + // This is a beta feature and only available when the // CSIServiceAccountToken feature is enabled. // // +optional @@ -396,7 +412,7 @@ type CSIDriverSpec struct { // to NodePublishVolume should only update the contents of the volume. New // mount points will not be seen by a running container. // - // This is an alpha feature and only available when the + // This is a beta feature and only available when the // CSIServiceAccountToken feature is enabled. // // +optional @@ -569,3 +585,102 @@ type CSINodeList struct { // items is the list of CSINode Items []CSINode `json:"items" protobuf:"bytes,2,rep,name=items"` } + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.21 + +// CSIStorageCapacity stores the result of one CSI GetCapacity call. +// For a given StorageClass, this describes the available capacity in a +// particular topology segment. This can be used when considering where to +// instantiate new PersistentVolumes. +// +// For example this can express things like: +// - StorageClass "standard" has "1234 GiB" available in "topology.kubernetes.io/zone=us-east1" +// - StorageClass "localssd" has "10 GiB" available in "kubernetes.io/hostname=knode-abc123" +// +// The following three cases all imply that no capacity is available for +// a certain combination: +// - no object exists with suitable topology and storage class name +// - such an object exists, but the capacity is unset +// - such an object exists, but the capacity is zero +// +// The producer of these objects can decide which approach is more suitable. +// +// They are consumed by the kube-scheduler if the CSIStorageCapacity beta feature gate +// is enabled there and a CSI driver opts into capacity-aware scheduling with +// CSIDriver.StorageCapacity. +type CSIStorageCapacity struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. The name has no particular meaning. It must be + // be a DNS subdomain (dots allowed, 253 characters). To ensure that + // there are no conflicts with other CSI drivers on the cluster, the recommendation + // is to use csisc-, a generated name, or a reverse-domain name which ends + // with the unique CSI driver name. + // + // Objects are namespaced. + // + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // NodeTopology defines which nodes have access to the storage + // for which capacity was reported. If not set, the storage is + // not accessible from any node in the cluster. If empty, the + // storage is accessible from all nodes. This field is + // immutable. + // + // +optional + NodeTopology *metav1.LabelSelector `json:"nodeTopology,omitempty" protobuf:"bytes,2,opt,name=nodeTopology"` + + // The name of the StorageClass that the reported capacity applies to. + // It must meet the same requirements as the name of a StorageClass + // object (non-empty, DNS subdomain). If that object no longer exists, + // the CSIStorageCapacity object is obsolete and should be removed by its + // creator. + // This field is immutable. + StorageClassName string `json:"storageClassName" protobuf:"bytes,3,name=storageClassName"` + + // Capacity is the value reported by the CSI driver in its GetCapacityResponse + // for a GetCapacityRequest with topology and parameters that match the + // previous fields. + // + // The semantic is currently (CSI spec 1.2) defined as: + // The available capacity, in bytes, of the storage that can be used + // to provision volumes. If not set, that information is currently + // unavailable and treated like zero capacity. + // + // +optional + Capacity *resource.Quantity `json:"capacity,omitempty" protobuf:"bytes,4,opt,name=capacity"` + + // MaximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse + // for a GetCapacityRequest with topology and parameters that match the + // previous fields. + // + // This is defined since CSI spec 1.4.0 as the largest size + // that may be used in a + // CreateVolumeRequest.capacity_range.required_bytes field to + // create a volume with the same parameters as those in + // GetCapacityRequest. The corresponding value in the Kubernetes + // API is ResourceRequirements.Requests in a volume claim. + // + // +optional + MaximumVolumeSize *resource.Quantity `json:"maximumVolumeSize,omitempty" protobuf:"bytes,5,opt,name=maximumVolumeSize"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.21 + +// CSIStorageCapacityList is a collection of CSIStorageCapacity objects. +type CSIStorageCapacityList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Items is the list of CSIStorageCapacity objects. + // +listType=map + // +listMapKey=name + Items []CSIStorageCapacity `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/vendor/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go index c51950d7c8..0d03a30b4f 100644 --- a/vendor/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go @@ -49,13 +49,13 @@ func (CSIDriverList) SwaggerDoc() map[string]string { var map_CSIDriverSpec = map[string]string{ "": "CSIDriverSpec is the specification of a CSIDriver.", - "attachRequired": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "podInfoOnMount": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "volumeLifecycleModes": "VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.", - "storageCapacity": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.", - "fsGroupPolicy": "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.", - "tokenRequests": "TokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \"csi.storage.k8s.io/serviceAccount.tokens\": {\n \"\": {\n \"token\": ,\n \"expirationTimestamp\": ,\n },\n ...\n}\n\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.\n\nThis is an alpha feature and only available when the CSIServiceAccountToken feature is enabled.", - "requiresRepublish": "RequiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\n\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.\n\nThis is an alpha feature and only available when the CSIServiceAccountToken feature is enabled.", + "attachRequired": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.\n\nThis field is immutable.", + "podInfoOnMount": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.\n\nThis field is immutable.", + "volumeLifecycleModes": "VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.\n\nThis field is immutable.", + "storageCapacity": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis field is immutable.\n\nThis is a beta field and only available when the CSIStorageCapacity feature is enabled. The default is false.", + "fsGroupPolicy": "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.\n\nThis field is immutable.", + "tokenRequests": "TokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \"csi.storage.k8s.io/serviceAccount.tokens\": {\n \"\": {\n \"token\": ,\n \"expirationTimestamp\": ,\n },\n ...\n}\n\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.\n\nThis is a beta feature and only available when the CSIServiceAccountToken feature is enabled.", + "requiresRepublish": "RequiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\n\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.\n\nThis is a beta feature and only available when the CSIServiceAccountToken feature is enabled.", } func (CSIDriverSpec) SwaggerDoc() map[string]string { @@ -103,6 +103,29 @@ func (CSINodeSpec) SwaggerDoc() map[string]string { return map_CSINodeSpec } +var map_CSIStorageCapacity = map[string]string{ + "": "CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment. This can be used when considering where to instantiate new PersistentVolumes.\n\nFor example this can express things like: - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\" - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\n\nThe producer of these objects can decide which approach is more suitable.\n\nThey are consumed by the kube-scheduler if the CSIStorageCapacity beta feature gate is enabled there and a CSI driver opts into capacity-aware scheduling with CSIDriver.StorageCapacity.", + "metadata": "Standard object's metadata. The name has no particular meaning. It must be be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\n\nObjects are namespaced.\n\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "nodeTopology": "NodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable.", + "storageClassName": "The name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.", + "capacity": "Capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\n\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable and treated like zero capacity.", + "maximumVolumeSize": "MaximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\n\nThis is defined since CSI spec 1.4.0 as the largest size that may be used in a CreateVolumeRequest.capacity_range.required_bytes field to create a volume with the same parameters as those in GetCapacityRequest. The corresponding value in the Kubernetes API is ResourceRequirements.Requests in a volume claim.", +} + +func (CSIStorageCapacity) SwaggerDoc() map[string]string { + return map_CSIStorageCapacity +} + +var map_CSIStorageCapacityList = map[string]string{ + "": "CSIStorageCapacityList is a collection of CSIStorageCapacity objects.", + "metadata": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "items": "Items is the list of CSIStorageCapacity objects.", +} + +func (CSIStorageCapacityList) SwaggerDoc() map[string]string { + return map_CSIStorageCapacityList +} + var map_StorageClass = map[string]string{ "": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", diff --git a/vendor/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go index 89a102901c..9b7e675ee6 100644 --- a/vendor/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go @@ -21,7 +21,8 @@ limitations under the License. package v1beta1 import ( - v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) @@ -247,6 +248,80 @@ func (in *CSINodeSpec) DeepCopy() *CSINodeSpec { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CSIStorageCapacity) DeepCopyInto(out *CSIStorageCapacity) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + if in.NodeTopology != nil { + in, out := &in.NodeTopology, &out.NodeTopology + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + x := (*in).DeepCopy() + *out = &x + } + if in.MaximumVolumeSize != nil { + in, out := &in.MaximumVolumeSize, &out.MaximumVolumeSize + x := (*in).DeepCopy() + *out = &x + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacity. +func (in *CSIStorageCapacity) DeepCopy() *CSIStorageCapacity { + if in == nil { + return nil + } + out := new(CSIStorageCapacity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CSIStorageCapacity) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CSIStorageCapacityList) DeepCopyInto(out *CSIStorageCapacityList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]CSIStorageCapacity, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacityList. +func (in *CSIStorageCapacityList) DeepCopy() *CSIStorageCapacityList { + if in == nil { + return nil + } + out := new(CSIStorageCapacityList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CSIStorageCapacityList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *StorageClass) DeepCopyInto(out *StorageClass) { *out = *in @@ -261,7 +336,7 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) { } if in.ReclaimPolicy != nil { in, out := &in.ReclaimPolicy, &out.ReclaimPolicy - *out = new(v1.PersistentVolumeReclaimPolicy) + *out = new(corev1.PersistentVolumeReclaimPolicy) **out = **in } if in.MountOptions != nil { @@ -281,7 +356,7 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) { } if in.AllowedTopologies != nil { in, out := &in.AllowedTopologies, &out.AllowedTopologies - *out = make([]v1.TopologySelectorTerm, len(*in)) + *out = make([]corev1.TopologySelectorTerm, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -432,7 +507,7 @@ func (in *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) { } if in.InlineVolumeSpec != nil { in, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec - *out = new(v1.PersistentVolumeSpec) + *out = new(corev1.PersistentVolumeSpec) (*in).DeepCopyInto(*out) } return diff --git a/vendor/k8s.io/api/storage/v1beta1/zz_generated.prerelease-lifecycle.go b/vendor/k8s.io/api/storage/v1beta1/zz_generated.prerelease-lifecycle.go index 8bb3de2075..275b5d5dbe 100644 --- a/vendor/k8s.io/api/storage/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/vendor/k8s.io/api/storage/v1beta1/zz_generated.prerelease-lifecycle.go @@ -120,6 +120,42 @@ func (in *CSINodeList) APILifecycleRemoved() (major, minor int) { return 1, 22 } +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *CSIStorageCapacity) APILifecycleIntroduced() (major, minor int) { + return 1, 21 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *CSIStorageCapacity) APILifecycleDeprecated() (major, minor int) { + return 1, 24 +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *CSIStorageCapacity) APILifecycleRemoved() (major, minor int) { + return 1, 27 +} + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *CSIStorageCapacityList) APILifecycleIntroduced() (major, minor int) { + return 1, 21 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *CSIStorageCapacityList) APILifecycleDeprecated() (major, minor int) { + return 1, 24 +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *CSIStorageCapacityList) APILifecycleRemoved() (major, minor int) { + return 1, 27 +} + // APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. // It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. func (in *StorageClass) APILifecycleIntroduced() (major, minor int) { diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/types.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/types.go index ee77a4229d..b1c5f6f4c0 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/types.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/types.go @@ -326,6 +326,8 @@ type CustomResourceDefinitionCondition struct { // CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition type CustomResourceDefinitionStatus struct { // Conditions indicate state for particular aspects of a CustomResourceDefinition + // +listType=map + // +listMapKey=type Conditions []CustomResourceDefinitionCondition // AcceptedNames are the names that are actually being used to serve discovery diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.pb.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.pb.go index d6f0c35fe2..f3388ffe85 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.pb.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.pb.go @@ -3863,10 +3863,7 @@ func (m *ConversionRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4015,10 +4012,7 @@ func (m *ConversionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4140,10 +4134,7 @@ func (m *ConversionReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4372,10 +4363,7 @@ func (m *CustomResourceColumnDefinition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4493,10 +4481,7 @@ func (m *CustomResourceConversion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4645,10 +4630,7 @@ func (m *CustomResourceDefinition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4859,10 +4841,7 @@ func (m *CustomResourceDefinitionCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4979,10 +4958,7 @@ func (m *CustomResourceDefinitionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5224,10 +5200,7 @@ func (m *CustomResourceDefinitionNames) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5464,10 +5437,7 @@ func (m *CustomResourceDefinitionSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5616,10 +5586,7 @@ func (m *CustomResourceDefinitionStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5900,10 +5867,7 @@ func (m *CustomResourceDefinitionVersion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6050,10 +6014,7 @@ func (m *CustomResourceSubresourceScale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6103,10 +6064,7 @@ func (m *CustomResourceSubresourceStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6228,10 +6186,7 @@ func (m *CustomResourceSubresources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6317,10 +6272,7 @@ func (m *CustomResourceValidation) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6434,10 +6386,7 @@ func (m *ExternalDocumentation) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6521,10 +6470,7 @@ func (m *JSON) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7435,7 +7381,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7600,7 +7546,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7729,7 +7675,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7894,7 +7840,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -8162,10 +8108,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8285,10 +8228,7 @@ func (m *JSONSchemaPropsOrArray) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8394,10 +8334,7 @@ func (m *JSONSchemaPropsOrBool) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8515,10 +8452,7 @@ func (m *JSONSchemaPropsOrStringArray) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8685,10 +8619,7 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8841,10 +8772,7 @@ func (m *WebhookClientConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8962,10 +8890,7 @@ func (m *WebhookConversion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto index 3494a31ba0..a82824ae71 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.proto @@ -234,6 +234,8 @@ message CustomResourceDefinitionSpec { message CustomResourceDefinitionStatus { // conditions indicate state for particular aspects of a CustomResourceDefinition // +optional + // +listType=map + // +listMapKey=type repeated CustomResourceDefinitionCondition conditions = 1; // acceptedNames are the names that are actually being used to serve discovery. diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/types.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/types.go index 02922c593e..a55dd5b1b7 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/types.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/types.go @@ -329,6 +329,8 @@ type CustomResourceDefinitionCondition struct { type CustomResourceDefinitionStatus struct { // conditions indicate state for particular aspects of a CustomResourceDefinition // +optional + // +listType=map + // +listMapKey=type Conditions []CustomResourceDefinitionCondition `json:"conditions" protobuf:"bytes,1,opt,name=conditions"` // acceptedNames are the names that are actually being used to serve discovery. diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.pb.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.pb.go index 0382b04458..7537be1866 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.pb.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.pb.go @@ -756,196 +756,196 @@ func init() { } var fileDescriptor_98a4cc6918394e53 = []byte{ - // 3024 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcd, 0x73, 0x23, 0x47, - 0xd9, 0xdf, 0x91, 0x2c, 0x5b, 0x6e, 0xdb, 0x6b, 0xbb, 0x77, 0xed, 0xcc, 0x3a, 0x1b, 0xcb, 0xab, - 0xbc, 0xd9, 0xd7, 0x49, 0x76, 0xe5, 0xc4, 0x24, 0x24, 0xa4, 0xa0, 0x28, 0xcb, 0xf6, 0x06, 0x27, - 0xeb, 0x0f, 0x5a, 0xbb, 0x89, 0x21, 0x9f, 0x6d, 0x4d, 0x4b, 0x9e, 0xf5, 0x7c, 0xed, 0xf4, 0x8c, - 0x6c, 0x57, 0x80, 0xe2, 0xa3, 0x52, 0x50, 0x14, 0x10, 0x8a, 0xe4, 0x42, 0x15, 0x1c, 0x02, 0xc5, - 0x85, 0x03, 0x1c, 0xa0, 0xb8, 0xc0, 0x1f, 0x90, 0x63, 0x8a, 0x53, 0x0e, 0x94, 0x60, 0xc5, 0x95, - 0x23, 0x55, 0x54, 0xf9, 0x44, 0xf5, 0xc7, 0xf4, 0x8c, 0x46, 0xd2, 0xae, 0x2b, 0x2b, 0x65, 0xb9, - 0x59, 0xcf, 0xd7, 0xef, 0xe9, 0xa7, 0x9f, 0x7e, 0xfa, 0xe9, 0x67, 0x0c, 0x6a, 0x07, 0xcf, 0xd3, - 0x92, 0xe9, 0x2e, 0x1d, 0x84, 0x7b, 0xc4, 0x77, 0x48, 0x40, 0xe8, 0x52, 0x83, 0x38, 0x86, 0xeb, - 0x2f, 0x49, 0x06, 0xf6, 0x4c, 0x72, 0x14, 0x10, 0x87, 0x9a, 0xae, 0x43, 0xaf, 0x62, 0xcf, 0xa4, - 0xc4, 0x6f, 0x10, 0x7f, 0xc9, 0x3b, 0xa8, 0x33, 0x1e, 0x6d, 0x17, 0x58, 0x6a, 0x3c, 0xbd, 0x47, - 0x02, 0xfc, 0xf4, 0x52, 0x9d, 0x38, 0xc4, 0xc7, 0x01, 0x31, 0x4a, 0x9e, 0xef, 0x06, 0x2e, 0xfc, - 0x92, 0x30, 0x57, 0x6a, 0x93, 0x7e, 0x4b, 0x99, 0x2b, 0x79, 0x07, 0x75, 0xc6, 0xa3, 0xed, 0x02, - 0x25, 0x69, 0x6e, 0xee, 0x6a, 0xdd, 0x0c, 0xf6, 0xc3, 0xbd, 0x52, 0xd5, 0xb5, 0x97, 0xea, 0x6e, - 0xdd, 0x5d, 0xe2, 0x56, 0xf7, 0xc2, 0x1a, 0xff, 0xc5, 0x7f, 0xf0, 0xbf, 0x04, 0xda, 0xdc, 0x33, - 0xb1, 0xf3, 0x36, 0xae, 0xee, 0x9b, 0x0e, 0xf1, 0x8f, 0x63, 0x8f, 0x6d, 0x12, 0xe0, 0xa5, 0x46, - 0x87, 0x8f, 0x73, 0x4b, 0xbd, 0xb4, 0xfc, 0xd0, 0x09, 0x4c, 0x9b, 0x74, 0x28, 0x7c, 0xfe, 0x5e, - 0x0a, 0xb4, 0xba, 0x4f, 0x6c, 0x9c, 0xd6, 0x2b, 0x9e, 0x68, 0x60, 0x7a, 0xd5, 0x75, 0x1a, 0xc4, - 0x67, 0xab, 0x44, 0xe4, 0x76, 0x48, 0x68, 0x00, 0xcb, 0x20, 0x1b, 0x9a, 0x86, 0xae, 0x2d, 0x68, - 0x8b, 0xa3, 0xe5, 0xa7, 0x3e, 0x6a, 0x16, 0xce, 0xb4, 0x9a, 0x85, 0xec, 0xcd, 0x8d, 0xb5, 0x93, - 0x66, 0xe1, 0x52, 0x2f, 0xa4, 0xe0, 0xd8, 0x23, 0xb4, 0x74, 0x73, 0x63, 0x0d, 0x31, 0x65, 0xf8, - 0x22, 0x98, 0x36, 0x08, 0x35, 0x7d, 0x62, 0xac, 0xec, 0x6c, 0xbc, 0x22, 0xec, 0xeb, 0x19, 0x6e, - 0xf1, 0x82, 0xb4, 0x38, 0xbd, 0x96, 0x16, 0x40, 0x9d, 0x3a, 0x70, 0x17, 0x8c, 0xb8, 0x7b, 0xb7, - 0x48, 0x35, 0xa0, 0x7a, 0x76, 0x21, 0xbb, 0x38, 0xb6, 0x7c, 0xb5, 0x14, 0xef, 0xa0, 0x72, 0x81, - 0x6f, 0x9b, 0x5c, 0x6c, 0x09, 0xe1, 0xc3, 0xf5, 0x68, 0xe7, 0xca, 0x93, 0x12, 0x6d, 0x64, 0x5b, - 0x58, 0x41, 0x91, 0xb9, 0xe2, 0xaf, 0x33, 0x00, 0x26, 0x17, 0x4f, 0x3d, 0xd7, 0xa1, 0xa4, 0x2f, - 0xab, 0xa7, 0x60, 0xaa, 0xca, 0x2d, 0x07, 0xc4, 0x90, 0xb8, 0x7a, 0xe6, 0xd3, 0x78, 0xaf, 0x4b, - 0xfc, 0xa9, 0xd5, 0x94, 0x39, 0xd4, 0x01, 0x00, 0x6f, 0x80, 0x61, 0x9f, 0xd0, 0xd0, 0x0a, 0xf4, - 0xec, 0x82, 0xb6, 0x38, 0xb6, 0x7c, 0xa5, 0x27, 0x14, 0xcf, 0x6f, 0x96, 0x7c, 0xa5, 0xc6, 0xd3, - 0xa5, 0x4a, 0x80, 0x83, 0x90, 0x96, 0xcf, 0x4a, 0xa4, 0x61, 0xc4, 0x6d, 0x20, 0x69, 0xab, 0xf8, - 0x83, 0x0c, 0x98, 0x4a, 0x46, 0xa9, 0x61, 0x92, 0x43, 0x78, 0x08, 0x46, 0x7c, 0x91, 0x2c, 0x3c, - 0x4e, 0x63, 0xcb, 0x3b, 0xa5, 0xfb, 0x3a, 0x56, 0xa5, 0x8e, 0x24, 0x2c, 0x8f, 0xb1, 0x3d, 0x93, - 0x3f, 0x50, 0x84, 0x06, 0xdf, 0x01, 0x79, 0x5f, 0x6e, 0x14, 0xcf, 0xa6, 0xb1, 0xe5, 0xaf, 0xf6, - 0x11, 0x59, 0x18, 0x2e, 0x8f, 0xb7, 0x9a, 0x85, 0x7c, 0xf4, 0x0b, 0x29, 0xc0, 0xe2, 0xfb, 0x19, - 0x30, 0xbf, 0x1a, 0xd2, 0xc0, 0xb5, 0x11, 0xa1, 0x6e, 0xe8, 0x57, 0xc9, 0xaa, 0x6b, 0x85, 0xb6, - 0xb3, 0x46, 0x6a, 0xa6, 0x63, 0x06, 0x2c, 0x5b, 0x17, 0xc0, 0x90, 0x83, 0x6d, 0x22, 0xb3, 0x67, - 0x5c, 0xc6, 0x74, 0x68, 0x0b, 0xdb, 0x04, 0x71, 0x0e, 0x93, 0x60, 0xc9, 0x22, 0xcf, 0x82, 0x92, - 0xb8, 0x71, 0xec, 0x11, 0xc4, 0x39, 0xf0, 0x32, 0x18, 0xae, 0xb9, 0xbe, 0x8d, 0xc5, 0x3e, 0x8e, - 0xc6, 0x3b, 0x73, 0x8d, 0x53, 0x91, 0xe4, 0xc2, 0x67, 0xc1, 0x98, 0x41, 0x68, 0xd5, 0x37, 0x3d, - 0x06, 0xad, 0x0f, 0x71, 0xe1, 0x73, 0x52, 0x78, 0x6c, 0x2d, 0x66, 0xa1, 0xa4, 0x1c, 0xbc, 0x02, - 0xf2, 0x9e, 0x6f, 0xba, 0xbe, 0x19, 0x1c, 0xeb, 0xb9, 0x05, 0x6d, 0x31, 0x57, 0x9e, 0x92, 0x3a, - 0xf9, 0x1d, 0x49, 0x47, 0x4a, 0x02, 0x2e, 0x80, 0xfc, 0x4b, 0x95, 0xed, 0xad, 0x1d, 0x1c, 0xec, - 0xeb, 0xc3, 0x1c, 0x61, 0x88, 0x49, 0xa3, 0xfc, 0x2d, 0x49, 0x2d, 0xfe, 0x2d, 0x03, 0xf4, 0x74, - 0x54, 0xa2, 0x90, 0xc2, 0x6b, 0x20, 0x4f, 0x03, 0x56, 0x71, 0xea, 0xc7, 0x32, 0x26, 0x4f, 0x44, - 0x60, 0x15, 0x49, 0x3f, 0x69, 0x16, 0x66, 0x63, 0x8d, 0x88, 0xca, 0xe3, 0xa1, 0x74, 0xe1, 0x2f, - 0x35, 0x70, 0xee, 0x90, 0xec, 0xed, 0xbb, 0xee, 0xc1, 0xaa, 0x65, 0x12, 0x27, 0x58, 0x75, 0x9d, - 0x9a, 0x59, 0x97, 0x39, 0x80, 0xee, 0x33, 0x07, 0x5e, 0xed, 0xb4, 0x5c, 0x7e, 0xa8, 0xd5, 0x2c, - 0x9c, 0xeb, 0xc2, 0x40, 0xdd, 0xfc, 0x80, 0xbb, 0x40, 0xaf, 0xa6, 0x0e, 0x89, 0x2c, 0x60, 0xa2, - 0x6c, 0x8d, 0x96, 0x2f, 0xb6, 0x9a, 0x05, 0x7d, 0xb5, 0x87, 0x0c, 0xea, 0xa9, 0x5d, 0xfc, 0x5e, - 0x36, 0x1d, 0xde, 0x44, 0xba, 0xbd, 0x0d, 0xf2, 0xec, 0x18, 0x1b, 0x38, 0xc0, 0xf2, 0x20, 0x3e, - 0x75, 0xba, 0x43, 0x2f, 0x6a, 0xc6, 0x26, 0x09, 0x70, 0x19, 0xca, 0x0d, 0x01, 0x31, 0x0d, 0x29, - 0xab, 0xf0, 0x9b, 0x60, 0x88, 0x7a, 0xa4, 0x2a, 0x03, 0xfd, 0xda, 0xfd, 0x1e, 0xb6, 0x1e, 0x0b, - 0xa9, 0x78, 0xa4, 0x1a, 0x9f, 0x05, 0xf6, 0x0b, 0x71, 0x58, 0xf8, 0xae, 0x06, 0x86, 0x29, 0x2f, - 0x50, 0xb2, 0xa8, 0xbd, 0x31, 0x28, 0x0f, 0x52, 0x55, 0x50, 0xfc, 0x46, 0x12, 0xbc, 0xf8, 0xef, - 0x0c, 0xb8, 0xd4, 0x4b, 0x75, 0xd5, 0x75, 0x0c, 0xb1, 0x1d, 0x1b, 0xf2, 0x6c, 0x8b, 0x4c, 0x7f, - 0x36, 0x79, 0xb6, 0x4f, 0x9a, 0x85, 0xc7, 0xee, 0x69, 0x20, 0x51, 0x04, 0xbe, 0xa0, 0xd6, 0x2d, - 0x0a, 0xc5, 0xa5, 0x76, 0xc7, 0x4e, 0x9a, 0x85, 0x49, 0xa5, 0xd6, 0xee, 0x2b, 0x6c, 0x00, 0x68, - 0x61, 0x1a, 0xdc, 0xf0, 0xb1, 0x43, 0x85, 0x59, 0xd3, 0x26, 0x32, 0x7c, 0x4f, 0x9c, 0x2e, 0x3d, - 0x98, 0x46, 0x79, 0x4e, 0x42, 0xc2, 0xeb, 0x1d, 0xd6, 0x50, 0x17, 0x04, 0x56, 0xb7, 0x7c, 0x82, - 0xa9, 0x2a, 0x45, 0x89, 0x1b, 0x85, 0x51, 0x91, 0xe4, 0xc2, 0xc7, 0xc1, 0x88, 0x4d, 0x28, 0xc5, - 0x75, 0xc2, 0xeb, 0xcf, 0x68, 0x7c, 0x45, 0x6f, 0x0a, 0x32, 0x8a, 0xf8, 0xac, 0x3f, 0xb9, 0xd8, - 0x2b, 0x6a, 0xd7, 0x4d, 0x1a, 0xc0, 0xd7, 0x3b, 0x0e, 0x40, 0xe9, 0x74, 0x2b, 0x64, 0xda, 0x3c, - 0xfd, 0x55, 0xf1, 0x8b, 0x28, 0x89, 0xe4, 0xff, 0x06, 0xc8, 0x99, 0x01, 0xb1, 0xa3, 0xbb, 0xfb, - 0xd5, 0x01, 0xe5, 0x5e, 0x79, 0x42, 0xfa, 0x90, 0xdb, 0x60, 0x68, 0x48, 0x80, 0x16, 0x7f, 0x93, - 0x01, 0x8f, 0xf4, 0x52, 0x61, 0x17, 0x0a, 0x65, 0x11, 0xf7, 0xac, 0xd0, 0xc7, 0x96, 0xcc, 0x38, - 0x15, 0xf1, 0x1d, 0x4e, 0x45, 0x92, 0xcb, 0x4a, 0x3e, 0x35, 0x9d, 0x7a, 0x68, 0x61, 0x5f, 0xa6, - 0x93, 0x5a, 0x75, 0x45, 0xd2, 0x91, 0x92, 0x80, 0x25, 0x00, 0xe8, 0xbe, 0xeb, 0x07, 0x1c, 0x43, - 0x56, 0xaf, 0xb3, 0xac, 0x40, 0x54, 0x14, 0x15, 0x25, 0x24, 0xd8, 0x8d, 0x76, 0x60, 0x3a, 0x86, - 0xdc, 0x75, 0x75, 0x8a, 0x5f, 0x36, 0x1d, 0x03, 0x71, 0x0e, 0xc3, 0xb7, 0x4c, 0x1a, 0x30, 0x8a, - 0xdc, 0xf2, 0xb6, 0xa8, 0x73, 0x49, 0x25, 0xc1, 0xf0, 0xab, 0xac, 0xea, 0xbb, 0xbe, 0x49, 0xa8, - 0x3e, 0x1c, 0xe3, 0xaf, 0x2a, 0x2a, 0x4a, 0x48, 0x14, 0xff, 0x95, 0xef, 0x9d, 0x24, 0xac, 0x94, - 0xc0, 0x47, 0x41, 0xae, 0xee, 0xbb, 0xa1, 0x27, 0xa3, 0xa4, 0xa2, 0xfd, 0x22, 0x23, 0x22, 0xc1, - 0x63, 0x59, 0xd9, 0x68, 0x6b, 0x53, 0x55, 0x56, 0x46, 0xcd, 0x69, 0xc4, 0x87, 0xdf, 0xd1, 0x40, - 0xce, 0x91, 0xc1, 0x61, 0x29, 0xf7, 0xfa, 0x80, 0xf2, 0x82, 0x87, 0x37, 0x76, 0x57, 0x44, 0x5e, - 0x20, 0xc3, 0x67, 0x40, 0x8e, 0x56, 0x5d, 0x8f, 0xc8, 0xa8, 0xcf, 0x47, 0x42, 0x15, 0x46, 0x3c, - 0x69, 0x16, 0x26, 0x22, 0x73, 0x9c, 0x80, 0x84, 0x30, 0xfc, 0xbe, 0x06, 0x40, 0x03, 0x5b, 0xa6, - 0x81, 0x79, 0xcb, 0x90, 0xe3, 0xee, 0xf7, 0x37, 0xad, 0x5f, 0x51, 0xe6, 0xc5, 0xa6, 0xc5, 0xbf, - 0x51, 0x02, 0x1a, 0xbe, 0xa7, 0x81, 0x71, 0x1a, 0xee, 0xf9, 0x52, 0x8b, 0xf2, 0xe6, 0x62, 0x6c, - 0xf9, 0x6b, 0x7d, 0xf5, 0xa5, 0x92, 0x00, 0x28, 0x4f, 0xb5, 0x9a, 0x85, 0xf1, 0x24, 0x05, 0xb5, - 0x39, 0x00, 0x7f, 0xa4, 0x81, 0x7c, 0x23, 0xba, 0xb3, 0x47, 0xf8, 0x81, 0x7f, 0x73, 0x40, 0x1b, - 0x2b, 0x33, 0x2a, 0x3e, 0x05, 0xaa, 0x0f, 0x50, 0x1e, 0xc0, 0x3f, 0x6b, 0x40, 0xc7, 0x86, 0x28, - 0xf0, 0xd8, 0xda, 0xf1, 0x4d, 0x27, 0x20, 0xbe, 0xe8, 0x37, 0xa9, 0x9e, 0xe7, 0xee, 0xf5, 0xf7, - 0x2e, 0x4c, 0xf7, 0xb2, 0xe5, 0x05, 0xe9, 0x9d, 0xbe, 0xd2, 0xc3, 0x0d, 0xd4, 0xd3, 0x41, 0x9e, - 0x68, 0x71, 0x4b, 0xa3, 0x8f, 0x0e, 0x20, 0xd1, 0xe2, 0x5e, 0x4a, 0x56, 0x87, 0xb8, 0x83, 0x4a, - 0x40, 0xc3, 0x6d, 0x30, 0xe3, 0xf9, 0x84, 0x03, 0xdc, 0x74, 0x0e, 0x1c, 0xf7, 0xd0, 0xb9, 0x66, - 0x12, 0xcb, 0xa0, 0x3a, 0x58, 0xd0, 0x16, 0xf3, 0xe5, 0x0b, 0xad, 0x66, 0x61, 0x66, 0xa7, 0x9b, - 0x00, 0xea, 0xae, 0x57, 0x7c, 0x2f, 0x9b, 0x7e, 0x05, 0xa4, 0xbb, 0x08, 0xf8, 0x81, 0x58, 0xbd, - 0x88, 0x0d, 0xd5, 0x35, 0xbe, 0x5b, 0x6f, 0x0f, 0x28, 0x99, 0x54, 0x1b, 0x10, 0x77, 0x72, 0x8a, - 0x44, 0x51, 0xc2, 0x0f, 0xf8, 0x73, 0x0d, 0x4c, 0xe0, 0x6a, 0x95, 0x78, 0x01, 0x31, 0x44, 0x71, - 0xcf, 0x7c, 0x06, 0xf5, 0x6b, 0x46, 0x7a, 0x35, 0xb1, 0x92, 0x84, 0x46, 0xed, 0x9e, 0xc0, 0x17, - 0xc0, 0x59, 0x1a, 0xb8, 0x3e, 0x31, 0x52, 0x6d, 0x33, 0x6c, 0x35, 0x0b, 0x67, 0x2b, 0x6d, 0x1c, - 0x94, 0x92, 0x2c, 0xfe, 0x3d, 0x07, 0x0a, 0xf7, 0x38, 0x6a, 0xa7, 0x78, 0x98, 0x5d, 0x06, 0xc3, - 0x7c, 0xb9, 0x06, 0x8f, 0x4a, 0x3e, 0xd1, 0x0a, 0x72, 0x2a, 0x92, 0x5c, 0x76, 0x51, 0x30, 0x7c, - 0xd6, 0xbe, 0x64, 0xb9, 0xa0, 0xba, 0x28, 0x2a, 0x82, 0x8c, 0x22, 0x3e, 0x5c, 0x06, 0xc0, 0x20, - 0x9e, 0x4f, 0xd8, 0x65, 0x65, 0xe8, 0x23, 0x5c, 0x5a, 0x6d, 0xd2, 0x9a, 0xe2, 0xa0, 0x84, 0x14, - 0xbc, 0x06, 0x60, 0xf4, 0xcb, 0x74, 0x9d, 0x57, 0xb1, 0xef, 0x98, 0x4e, 0x5d, 0xcf, 0x73, 0xb7, - 0x67, 0x59, 0x37, 0xb6, 0xd6, 0xc1, 0x45, 0x5d, 0x34, 0xe0, 0x3b, 0x60, 0x58, 0x0c, 0x7d, 0xf8, - 0x0d, 0x31, 0xc0, 0x2a, 0x0f, 0x78, 0x8c, 0x38, 0x14, 0x92, 0x90, 0x9d, 0xd5, 0x3d, 0xf7, 0xa0, - 0xab, 0xfb, 0x5d, 0xcb, 0xe9, 0xf0, 0xff, 0x78, 0x39, 0x2d, 0xfe, 0x47, 0x4b, 0xd7, 0x9c, 0xc4, - 0x52, 0x2b, 0x55, 0x6c, 0x11, 0xb8, 0x06, 0xa6, 0xd8, 0x8b, 0x09, 0x11, 0xcf, 0x32, 0xab, 0x98, - 0xf2, 0x07, 0xbb, 0x48, 0x76, 0x35, 0x43, 0xaa, 0xa4, 0xf8, 0xa8, 0x43, 0x03, 0xbe, 0x04, 0xa0, - 0x78, 0x45, 0xb4, 0xd9, 0x11, 0x0d, 0x91, 0x7a, 0x0f, 0x54, 0x3a, 0x24, 0x50, 0x17, 0x2d, 0xb8, - 0x0a, 0xa6, 0x2d, 0xbc, 0x47, 0xac, 0x0a, 0xb1, 0x48, 0x35, 0x70, 0x7d, 0x6e, 0x4a, 0x8c, 0x34, - 0x66, 0x5a, 0xcd, 0xc2, 0xf4, 0xf5, 0x34, 0x13, 0x75, 0xca, 0x17, 0x2f, 0xa5, 0x8f, 0x76, 0x72, - 0xe1, 0xe2, 0x6d, 0xf6, 0x61, 0x06, 0xcc, 0xf5, 0xce, 0x0c, 0xf8, 0xdd, 0xf8, 0x09, 0x29, 0x5e, - 0x08, 0x6f, 0x0e, 0x2a, 0x0b, 0xe5, 0x1b, 0x12, 0x74, 0xbe, 0x1f, 0xe1, 0xb7, 0x58, 0xbb, 0x86, - 0xad, 0x68, 0x68, 0xf5, 0xc6, 0xc0, 0x5c, 0x60, 0x20, 0xe5, 0x51, 0xd1, 0x09, 0x62, 0x8b, 0x37, - 0x7e, 0xd8, 0x22, 0xc5, 0xdf, 0x6a, 0xe9, 0x29, 0x42, 0x7c, 0x82, 0xe1, 0x8f, 0x35, 0x30, 0xe9, - 0x7a, 0xc4, 0x59, 0xd9, 0xd9, 0x78, 0xe5, 0x73, 0xe2, 0x24, 0xcb, 0x50, 0x6d, 0xdd, 0xa7, 0x9f, - 0x2f, 0x55, 0xb6, 0xb7, 0x84, 0xc1, 0x1d, 0xdf, 0xf5, 0x68, 0xf9, 0x5c, 0xab, 0x59, 0x98, 0xdc, - 0x6e, 0x87, 0x42, 0x69, 0xec, 0xa2, 0x0d, 0x66, 0xd6, 0x8f, 0x02, 0xe2, 0x3b, 0xd8, 0x5a, 0x73, - 0xab, 0xa1, 0x4d, 0x9c, 0x40, 0x38, 0x9a, 0x9a, 0x78, 0x69, 0xa7, 0x9c, 0x78, 0x3d, 0x02, 0xb2, - 0xa1, 0x6f, 0xc9, 0x2c, 0x1e, 0x53, 0x13, 0x5d, 0x74, 0x1d, 0x31, 0x7a, 0xf1, 0x12, 0x18, 0x62, - 0x7e, 0xc2, 0x0b, 0x20, 0xeb, 0xe3, 0x43, 0x6e, 0x75, 0xbc, 0x3c, 0xc2, 0x44, 0x10, 0x3e, 0x44, - 0x8c, 0x56, 0xfc, 0xd3, 0x02, 0x98, 0x4c, 0xad, 0x05, 0xce, 0x81, 0x8c, 0x1a, 0x13, 0x03, 0x69, - 0x34, 0xb3, 0xb1, 0x86, 0x32, 0xa6, 0x01, 0x9f, 0x53, 0xc5, 0x57, 0x80, 0x16, 0xd4, 0x5d, 0xc2, - 0xa9, 0xac, 0x3f, 0x8f, 0xcd, 0x31, 0x47, 0xa2, 0xc2, 0xc9, 0x7c, 0x20, 0x35, 0x79, 0x4a, 0x84, - 0x0f, 0xa4, 0x86, 0x18, 0xed, 0xd3, 0x8e, 0xfb, 0xa2, 0x79, 0x63, 0xee, 0x14, 0xf3, 0xc6, 0xe1, - 0xbb, 0xce, 0x1b, 0x1f, 0x05, 0xb9, 0xc0, 0x0c, 0x2c, 0xc2, 0x2f, 0xb2, 0xc4, 0x33, 0xea, 0x06, - 0x23, 0x22, 0xc1, 0x83, 0xb7, 0xc0, 0x88, 0x41, 0x6a, 0x38, 0xb4, 0x02, 0x7e, 0x67, 0x8d, 0x2d, - 0xaf, 0xf6, 0x21, 0x85, 0xc4, 0x30, 0x78, 0x4d, 0xd8, 0x45, 0x11, 0x00, 0x7c, 0x0c, 0x8c, 0xd8, - 0xf8, 0xc8, 0xb4, 0x43, 0x9b, 0x37, 0x98, 0x9a, 0x10, 0xdb, 0x14, 0x24, 0x14, 0xf1, 0x58, 0x65, - 0x24, 0x47, 0x55, 0x2b, 0xa4, 0x66, 0x83, 0x48, 0xa6, 0x6c, 0xfe, 0x54, 0x65, 0x5c, 0x4f, 0xf1, - 0x51, 0x87, 0x06, 0x07, 0x33, 0x1d, 0xae, 0x3c, 0x96, 0x00, 0x13, 0x24, 0x14, 0xf1, 0xda, 0xc1, - 0xa4, 0xfc, 0x78, 0x2f, 0x30, 0xa9, 0xdc, 0xa1, 0x01, 0x9f, 0x04, 0xa3, 0x36, 0x3e, 0xba, 0x4e, - 0x9c, 0x7a, 0xb0, 0xaf, 0x4f, 0x2c, 0x68, 0x8b, 0xd9, 0xf2, 0x44, 0xab, 0x59, 0x18, 0xdd, 0x8c, - 0x88, 0x28, 0xe6, 0x73, 0x61, 0xd3, 0x91, 0xc2, 0x67, 0x13, 0xc2, 0x11, 0x11, 0xc5, 0x7c, 0xd6, - 0xbd, 0x78, 0x38, 0x60, 0x87, 0x4b, 0x9f, 0x6c, 0x7f, 0xe6, 0xee, 0x08, 0x32, 0x8a, 0xf8, 0x70, - 0x11, 0xe4, 0x6d, 0x7c, 0xc4, 0x47, 0x12, 0xfa, 0x14, 0x37, 0xcb, 0x07, 0xe3, 0x9b, 0x92, 0x86, - 0x14, 0x97, 0x4b, 0x9a, 0x8e, 0x90, 0x9c, 0x4e, 0x48, 0x4a, 0x1a, 0x52, 0x5c, 0x96, 0xc4, 0xa1, - 0x63, 0xde, 0x0e, 0x89, 0x10, 0x86, 0x3c, 0x32, 0x2a, 0x89, 0x6f, 0xc6, 0x2c, 0x94, 0x94, 0x83, - 0x25, 0x00, 0xec, 0xd0, 0x0a, 0x4c, 0xcf, 0x22, 0xdb, 0x35, 0xfd, 0x1c, 0x8f, 0x3f, 0x6f, 0xfa, - 0x37, 0x15, 0x15, 0x25, 0x24, 0x20, 0x01, 0x43, 0xc4, 0x09, 0x6d, 0xfd, 0x3c, 0xbf, 0xd8, 0xfb, - 0x92, 0x82, 0xea, 0xe4, 0xac, 0x3b, 0xa1, 0x8d, 0xb8, 0x79, 0xf8, 0x1c, 0x98, 0xb0, 0xf1, 0x11, - 0x2b, 0x07, 0xc4, 0x0f, 0x4c, 0x42, 0xf5, 0x19, 0xbe, 0xf8, 0x69, 0xd6, 0xed, 0x6e, 0x26, 0x19, - 0xa8, 0x5d, 0x8e, 0x2b, 0x9a, 0x4e, 0x42, 0x71, 0x36, 0xa1, 0x98, 0x64, 0xa0, 0x76, 0x39, 0x16, - 0x69, 0x9f, 0xdc, 0x0e, 0x4d, 0x9f, 0x18, 0xfa, 0x43, 0xbc, 0x41, 0x96, 0x1f, 0x2b, 0x04, 0x0d, - 0x29, 0x2e, 0x6c, 0x44, 0xb3, 0x2b, 0x9d, 0x1f, 0xc3, 0x9b, 0xfd, 0xad, 0xe4, 0xdb, 0xfe, 0x8a, - 0xef, 0xe3, 0x63, 0x71, 0xd3, 0x24, 0xa7, 0x56, 0x90, 0x82, 0x1c, 0xb6, 0xac, 0xed, 0x9a, 0x7e, - 0x81, 0xc7, 0xbe, 0xdf, 0x37, 0x88, 0xaa, 0x3a, 0x2b, 0x0c, 0x04, 0x09, 0x2c, 0x06, 0xea, 0x3a, - 0x2c, 0x35, 0xe6, 0x06, 0x0b, 0xba, 0xcd, 0x40, 0x90, 0xc0, 0xe2, 0x2b, 0x75, 0x8e, 0xb7, 0x6b, - 0xfa, 0xc3, 0x03, 0x5e, 0x29, 0x03, 0x41, 0x02, 0x0b, 0x9a, 0x20, 0xeb, 0xb8, 0x81, 0x7e, 0x71, - 0x20, 0xd7, 0x33, 0xbf, 0x70, 0xb6, 0xdc, 0x00, 0x31, 0x0c, 0xf8, 0x33, 0x0d, 0x00, 0x2f, 0x4e, - 0xd1, 0x47, 0xfa, 0x32, 0x12, 0x49, 0x41, 0x96, 0xe2, 0xdc, 0x5e, 0x77, 0x02, 0xff, 0x38, 0x7e, - 0x1e, 0x25, 0xce, 0x40, 0xc2, 0x0b, 0xf8, 0x2b, 0x0d, 0x9c, 0x4f, 0xb6, 0xc9, 0xca, 0xbd, 0x79, - 0x1e, 0x91, 0x1b, 0xfd, 0x4e, 0xf3, 0xb2, 0xeb, 0x5a, 0x65, 0xbd, 0xd5, 0x2c, 0x9c, 0x5f, 0xe9, - 0x82, 0x8a, 0xba, 0xfa, 0x02, 0x7f, 0xa7, 0x81, 0x69, 0x59, 0x45, 0x13, 0x1e, 0x16, 0x78, 0x00, - 0x49, 0xbf, 0x03, 0x98, 0xc6, 0x11, 0x71, 0x54, 0x1f, 0xd9, 0x3b, 0xf8, 0xa8, 0xd3, 0x35, 0xf8, - 0x47, 0x0d, 0x8c, 0x1b, 0xc4, 0x23, 0x8e, 0x41, 0x9c, 0x2a, 0xf3, 0x75, 0xa1, 0x2f, 0x23, 0x8b, - 0xb4, 0xaf, 0x6b, 0x09, 0x08, 0xe1, 0x66, 0x49, 0xba, 0x39, 0x9e, 0x64, 0x9d, 0x34, 0x0b, 0xb3, - 0xb1, 0x6a, 0x92, 0x83, 0xda, 0xbc, 0x84, 0xef, 0x6b, 0x60, 0x32, 0xde, 0x00, 0x71, 0xa5, 0x5c, - 0x1a, 0x60, 0x1e, 0xf0, 0xf6, 0x75, 0xa5, 0x1d, 0x10, 0xa5, 0x3d, 0x80, 0xbf, 0xd7, 0x58, 0xa7, - 0x16, 0xbd, 0xfb, 0xa8, 0x5e, 0xe4, 0xb1, 0x7c, 0xab, 0xef, 0xb1, 0x54, 0x08, 0x22, 0x94, 0x57, - 0xe2, 0x56, 0x50, 0x71, 0x4e, 0x9a, 0x85, 0x99, 0x64, 0x24, 0x15, 0x03, 0x25, 0x3d, 0x84, 0x3f, - 0xd4, 0xc0, 0x38, 0x89, 0x3b, 0x6e, 0xaa, 0x3f, 0xda, 0x97, 0x20, 0x76, 0x6d, 0xe2, 0xc5, 0x4b, - 0x3d, 0xc1, 0xa2, 0xa8, 0x0d, 0x9b, 0x75, 0x90, 0xe4, 0x08, 0xdb, 0x9e, 0x45, 0xf4, 0xff, 0xeb, - 0x73, 0x07, 0xb9, 0x2e, 0xec, 0xa2, 0x08, 0x00, 0x5e, 0x01, 0x79, 0x27, 0xb4, 0x2c, 0xbc, 0x67, - 0x11, 0xfd, 0x31, 0xde, 0x8b, 0xa8, 0x91, 0xec, 0x96, 0xa4, 0x23, 0x25, 0x01, 0x6b, 0x60, 0xe1, - 0xe8, 0x65, 0xf5, 0xef, 0x49, 0x5d, 0x87, 0x86, 0xfa, 0x65, 0x6e, 0x65, 0xae, 0xd5, 0x2c, 0xcc, - 0xee, 0x76, 0x1f, 0x2b, 0xde, 0xd3, 0x06, 0x7c, 0x0d, 0x3c, 0x9c, 0x90, 0x59, 0xb7, 0xf7, 0x88, - 0x61, 0x10, 0x23, 0x7a, 0xb8, 0xe9, 0xff, 0x2f, 0x06, 0x97, 0xd1, 0x01, 0xdf, 0x4d, 0x0b, 0xa0, - 0xbb, 0x69, 0xc3, 0xeb, 0x60, 0x36, 0xc1, 0xde, 0x70, 0x82, 0x6d, 0xbf, 0x12, 0xf8, 0xa6, 0x53, - 0xd7, 0x17, 0xb9, 0xdd, 0xf3, 0xd1, 0x89, 0xdc, 0x4d, 0xf0, 0x50, 0x0f, 0x1d, 0xf8, 0x95, 0x36, - 0x6b, 0xfc, 0x13, 0x1a, 0xf6, 0x5e, 0x26, 0xc7, 0x54, 0x7f, 0x9c, 0x77, 0x27, 0x7c, 0xb3, 0x77, - 0x13, 0x74, 0xd4, 0x43, 0x1e, 0x7e, 0x19, 0x9c, 0x4b, 0x71, 0xd8, 0x13, 0x45, 0x7f, 0x42, 0xbc, - 0x35, 0x58, 0x3f, 0xbb, 0x1b, 0x11, 0x51, 0x37, 0x49, 0xf8, 0x45, 0x00, 0x13, 0xe4, 0x4d, 0xec, - 0x71, 0xfd, 0x27, 0xc5, 0xb3, 0x87, 0xed, 0xe8, 0xae, 0xa4, 0xa1, 0x2e, 0x72, 0x73, 0xec, 0x0d, - 0x9c, 0xaa, 0xa1, 0x70, 0x0a, 0x64, 0x0f, 0x88, 0xfc, 0xbf, 0x05, 0xc4, 0xfe, 0x84, 0x06, 0xc8, - 0x35, 0xb0, 0x15, 0x46, 0xcf, 0xf8, 0x3e, 0xdf, 0xbf, 0x48, 0x18, 0x7f, 0x21, 0xf3, 0xbc, 0x36, - 0xf7, 0x81, 0x06, 0x66, 0xbb, 0x97, 0xf6, 0x07, 0xea, 0xd6, 0x2f, 0x34, 0x30, 0xdd, 0x51, 0xc5, - 0xbb, 0x78, 0x74, 0xbb, 0xdd, 0xa3, 0xd7, 0xfa, 0x5d, 0x8e, 0x45, 0xfa, 0xf1, 0x1e, 0x34, 0xe9, - 0xde, 0x4f, 0x34, 0x30, 0x95, 0x2e, 0x8c, 0x0f, 0x32, 0x5e, 0xc5, 0x0f, 0x32, 0x60, 0xb6, 0x7b, - 0xeb, 0x0c, 0x7d, 0x35, 0x23, 0x18, 0xcc, 0xac, 0xa5, 0xdb, 0x5c, 0xf6, 0x5d, 0x0d, 0x8c, 0xdd, - 0x52, 0x72, 0xd1, 0x77, 0xed, 0xbe, 0x4f, 0x79, 0xa2, 0x9b, 0x28, 0x66, 0x50, 0x94, 0xc4, 0x2d, - 0xfe, 0x41, 0x03, 0x33, 0x5d, 0xaf, 0x58, 0x78, 0x19, 0x0c, 0x63, 0xcb, 0x72, 0x0f, 0xc5, 0xb0, - 0x2e, 0x31, 0x85, 0x5f, 0xe1, 0x54, 0x24, 0xb9, 0x89, 0xe8, 0x65, 0x3e, 0xab, 0xe8, 0x15, 0xff, - 0xa2, 0x81, 0x8b, 0x77, 0xcb, 0xc4, 0x07, 0xb2, 0xa5, 0x8b, 0x20, 0x2f, 0xdb, 0xe3, 0x63, 0xbe, - 0x9d, 0xb2, 0xd8, 0xc9, 0xa2, 0xc1, 0xff, 0x95, 0x4b, 0xfc, 0x55, 0xfc, 0x50, 0x03, 0x53, 0x15, - 0xe2, 0x37, 0xcc, 0x2a, 0x41, 0xa4, 0x46, 0x7c, 0xe2, 0x54, 0x09, 0x5c, 0x02, 0xa3, 0xfc, 0x83, - 0xb2, 0x87, 0xab, 0xd1, 0xc7, 0x91, 0x69, 0x19, 0xf2, 0xd1, 0xad, 0x88, 0x81, 0x62, 0x19, 0xf5, - 0x21, 0x25, 0xd3, 0xf3, 0x43, 0xca, 0x45, 0x30, 0xe4, 0xc5, 0xa3, 0xde, 0x3c, 0xe3, 0xf2, 0xe9, - 0x2e, 0xa7, 0x72, 0xae, 0xeb, 0x07, 0x7c, 0x7e, 0x95, 0x93, 0x5c, 0xd7, 0x0f, 0x10, 0xa7, 0x16, - 0xff, 0xaa, 0x81, 0x6e, 0xff, 0x74, 0x05, 0x2f, 0x88, 0x11, 0x5e, 0x62, 0x2e, 0x16, 0x8d, 0xef, - 0x60, 0x03, 0x8c, 0x50, 0xb1, 0x2a, 0x19, 0xf5, 0xed, 0xfb, 0x8c, 0x7a, 0x3a, 0x46, 0xa2, 0x77, - 0x88, 0xa8, 0x11, 0x18, 0x0b, 0x7c, 0x15, 0x97, 0x43, 0xc7, 0x90, 0x53, 0xdd, 0x71, 0x11, 0xf8, - 0xd5, 0x15, 0x41, 0x43, 0x8a, 0x5b, 0xbe, 0xfa, 0xd1, 0x9d, 0xf9, 0x33, 0x1f, 0xdf, 0x99, 0x3f, - 0xf3, 0xc9, 0x9d, 0xf9, 0x33, 0xdf, 0x6e, 0xcd, 0x6b, 0x1f, 0xb5, 0xe6, 0xb5, 0x8f, 0x5b, 0xf3, - 0xda, 0x27, 0xad, 0x79, 0xed, 0x1f, 0xad, 0x79, 0xed, 0xa7, 0xff, 0x9c, 0x3f, 0xf3, 0xf5, 0x11, - 0x89, 0xff, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc6, 0xe5, 0x77, 0xcb, 0x0a, 0x2d, 0x00, 0x00, + // 3022 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcb, 0x73, 0x23, 0x57, + 0xd5, 0x9f, 0x96, 0x2d, 0x5b, 0x3e, 0xb6, 0xc7, 0xf6, 0x9d, 0xb1, 0xd3, 0xe3, 0x4c, 0x2c, 0x8f, + 0xf2, 0x65, 0x3e, 0x27, 0x99, 0x91, 0x13, 0x93, 0x90, 0x90, 0x82, 0xa2, 0x2c, 0xdb, 0x13, 0x9c, + 0x8c, 0x1f, 0x5c, 0xcd, 0x24, 0x86, 0x3c, 0xdb, 0xea, 0x2b, 0xb9, 0xe3, 0x56, 0x77, 0x4f, 0xdf, + 0x6e, 0xd9, 0xae, 0x00, 0xc5, 0xa3, 0x52, 0x50, 0x14, 0x10, 0x8a, 0x64, 0x43, 0x15, 0x2c, 0x02, + 0xc5, 0x86, 0x05, 0x2c, 0xa0, 0xd8, 0xc0, 0x1f, 0x90, 0x65, 0x8a, 0x55, 0x16, 0x94, 0x20, 0x62, + 0xcb, 0x92, 0x2a, 0xaa, 0xbc, 0xa2, 0xee, 0xa3, 0x6f, 0xb7, 0x5a, 0xd2, 0xcc, 0x54, 0x46, 0xca, + 0xb0, 0xb3, 0xce, 0xeb, 0x77, 0xee, 0xb9, 0xe7, 0x9e, 0x7b, 0xee, 0x69, 0x43, 0xf5, 0xf0, 0x59, + 0x5a, 0xb4, 0xdc, 0xe5, 0xc3, 0x70, 0x9f, 0xf8, 0x0e, 0x09, 0x08, 0x5d, 0x6e, 0x10, 0xc7, 0x74, + 0xfd, 0x65, 0xc9, 0x30, 0x3c, 0x8b, 0x1c, 0x07, 0xc4, 0xa1, 0x96, 0xeb, 0xd0, 0xab, 0x86, 0x67, + 0x51, 0xe2, 0x37, 0x88, 0xbf, 0xec, 0x1d, 0xd6, 0x18, 0x8f, 0xb6, 0x0b, 0x2c, 0x37, 0x9e, 0xdc, + 0x27, 0x81, 0xf1, 0xe4, 0x72, 0x8d, 0x38, 0xc4, 0x37, 0x02, 0x62, 0x16, 0x3d, 0xdf, 0x0d, 0x5c, + 0xf4, 0x25, 0x61, 0xae, 0xd8, 0x26, 0xfd, 0x86, 0x32, 0x57, 0xf4, 0x0e, 0x6b, 0x8c, 0x47, 0xdb, + 0x05, 0x8a, 0xd2, 0xdc, 0xfc, 0xd5, 0x9a, 0x15, 0x1c, 0x84, 0xfb, 0xc5, 0x8a, 0x5b, 0x5f, 0xae, + 0xb9, 0x35, 0x77, 0x99, 0x5b, 0xdd, 0x0f, 0xab, 0xfc, 0x17, 0xff, 0xc1, 0xff, 0x12, 0x68, 0xf3, + 0x4f, 0xc5, 0xce, 0xd7, 0x8d, 0xca, 0x81, 0xe5, 0x10, 0xff, 0x24, 0xf6, 0xb8, 0x4e, 0x02, 0x63, + 0xb9, 0xd1, 0xe1, 0xe3, 0xfc, 0x72, 0x2f, 0x2d, 0x3f, 0x74, 0x02, 0xab, 0x4e, 0x3a, 0x14, 0x3e, + 0x7f, 0x27, 0x05, 0x5a, 0x39, 0x20, 0x75, 0x23, 0xad, 0x57, 0x38, 0xd5, 0x60, 0x66, 0xcd, 0x75, + 0x1a, 0xc4, 0x67, 0xab, 0xc4, 0xe4, 0x56, 0x48, 0x68, 0x80, 0x4a, 0x30, 0x14, 0x5a, 0xa6, 0xae, + 0x2d, 0x6a, 0x4b, 0x63, 0xa5, 0x27, 0x3e, 0x6c, 0xe6, 0xcf, 0xb4, 0x9a, 0xf9, 0xa1, 0x9b, 0x9b, + 0xeb, 0xa7, 0xcd, 0xfc, 0xa5, 0x5e, 0x48, 0xc1, 0x89, 0x47, 0x68, 0xf1, 0xe6, 0xe6, 0x3a, 0x66, + 0xca, 0xe8, 0x79, 0x98, 0x31, 0x09, 0xb5, 0x7c, 0x62, 0xae, 0xee, 0x6e, 0xbe, 0x24, 0xec, 0xeb, + 0x19, 0x6e, 0xf1, 0x82, 0xb4, 0x38, 0xb3, 0x9e, 0x16, 0xc0, 0x9d, 0x3a, 0x68, 0x0f, 0x46, 0xdd, + 0xfd, 0xb7, 0x48, 0x25, 0xa0, 0xfa, 0xd0, 0xe2, 0xd0, 0xd2, 0xf8, 0xca, 0xd5, 0x62, 0xbc, 0x83, + 0xca, 0x05, 0xbe, 0x6d, 0x72, 0xb1, 0x45, 0x6c, 0x1c, 0x6d, 0x44, 0x3b, 0x57, 0x9a, 0x92, 0x68, + 0xa3, 0x3b, 0xc2, 0x0a, 0x8e, 0xcc, 0x15, 0x7e, 0x9d, 0x01, 0x94, 0x5c, 0x3c, 0xf5, 0x5c, 0x87, + 0x92, 0xbe, 0xac, 0x9e, 0xc2, 0x74, 0x85, 0x5b, 0x0e, 0x88, 0x29, 0x71, 0xf5, 0xcc, 0xa7, 0xf1, + 0x5e, 0x97, 0xf8, 0xd3, 0x6b, 0x29, 0x73, 0xb8, 0x03, 0x00, 0xdd, 0x80, 0x11, 0x9f, 0xd0, 0xd0, + 0x0e, 0xf4, 0xa1, 0x45, 0x6d, 0x69, 0x7c, 0xe5, 0x4a, 0x4f, 0x28, 0x9e, 0xdf, 0x2c, 0xf9, 0x8a, + 0x8d, 0x27, 0x8b, 0xe5, 0xc0, 0x08, 0x42, 0x5a, 0x3a, 0x2b, 0x91, 0x46, 0x30, 0xb7, 0x81, 0xa5, + 0xad, 0xc2, 0x0f, 0x32, 0x30, 0x9d, 0x8c, 0x52, 0xc3, 0x22, 0x47, 0xe8, 0x08, 0x46, 0x7d, 0x91, + 0x2c, 0x3c, 0x4e, 0xe3, 0x2b, 0xbb, 0xc5, 0x7b, 0x3a, 0x56, 0xc5, 0x8e, 0x24, 0x2c, 0x8d, 0xb3, + 0x3d, 0x93, 0x3f, 0x70, 0x84, 0x86, 0xde, 0x86, 0x9c, 0x2f, 0x37, 0x8a, 0x67, 0xd3, 0xf8, 0xca, + 0x57, 0xfb, 0x88, 0x2c, 0x0c, 0x97, 0x26, 0x5a, 0xcd, 0x7c, 0x2e, 0xfa, 0x85, 0x15, 0x60, 0xe1, + 0xbd, 0x0c, 0x2c, 0xac, 0x85, 0x34, 0x70, 0xeb, 0x98, 0x50, 0x37, 0xf4, 0x2b, 0x64, 0xcd, 0xb5, + 0xc3, 0xba, 0xb3, 0x4e, 0xaa, 0x96, 0x63, 0x05, 0x2c, 0x5b, 0x17, 0x61, 0xd8, 0x31, 0xea, 0x44, + 0x66, 0xcf, 0x84, 0x8c, 0xe9, 0xf0, 0xb6, 0x51, 0x27, 0x98, 0x73, 0x98, 0x04, 0x4b, 0x16, 0x79, + 0x16, 0x94, 0xc4, 0x8d, 0x13, 0x8f, 0x60, 0xce, 0x41, 0x97, 0x61, 0xa4, 0xea, 0xfa, 0x75, 0x43, + 0xec, 0xe3, 0x58, 0xbc, 0x33, 0xd7, 0x38, 0x15, 0x4b, 0x2e, 0x7a, 0x1a, 0xc6, 0x4d, 0x42, 0x2b, + 0xbe, 0xe5, 0x31, 0x68, 0x7d, 0x98, 0x0b, 0x9f, 0x93, 0xc2, 0xe3, 0xeb, 0x31, 0x0b, 0x27, 0xe5, + 0xd0, 0x15, 0xc8, 0x79, 0xbe, 0xe5, 0xfa, 0x56, 0x70, 0xa2, 0x67, 0x17, 0xb5, 0xa5, 0x6c, 0x69, + 0x5a, 0xea, 0xe4, 0x76, 0x25, 0x1d, 0x2b, 0x09, 0xb4, 0x08, 0xb9, 0x17, 0xca, 0x3b, 0xdb, 0xbb, + 0x46, 0x70, 0xa0, 0x8f, 0x70, 0x84, 0x61, 0x26, 0x8d, 0x15, 0xb5, 0xf0, 0xb7, 0x0c, 0xe8, 0xe9, + 0xa8, 0x44, 0x21, 0x45, 0xd7, 0x20, 0x47, 0x03, 0x56, 0x71, 0x6a, 0x27, 0x32, 0x26, 0x8f, 0x45, + 0x60, 0x65, 0x49, 0x3f, 0x6d, 0xe6, 0xe7, 0x62, 0x8d, 0x88, 0xca, 0xe3, 0xa1, 0x74, 0xd1, 0x2f, + 0x35, 0x38, 0x77, 0x44, 0xf6, 0x0f, 0x5c, 0xf7, 0x70, 0xcd, 0xb6, 0x88, 0x13, 0xac, 0xb9, 0x4e, + 0xd5, 0xaa, 0xc9, 0x1c, 0xc0, 0xf7, 0x98, 0x03, 0x2f, 0x77, 0x5a, 0x2e, 0x3d, 0xd0, 0x6a, 0xe6, + 0xcf, 0x75, 0x61, 0xe0, 0x6e, 0x7e, 0xa0, 0x3d, 0xd0, 0x2b, 0xa9, 0x43, 0x22, 0x0b, 0x98, 0x28, + 0x5b, 0x63, 0xa5, 0x8b, 0xad, 0x66, 0x5e, 0x5f, 0xeb, 0x21, 0x83, 0x7b, 0x6a, 0x17, 0xbe, 0x37, + 0x94, 0x0e, 0x6f, 0x22, 0xdd, 0xde, 0x84, 0x1c, 0x3b, 0xc6, 0xa6, 0x11, 0x18, 0xf2, 0x20, 0x3e, + 0x71, 0x77, 0x87, 0x5e, 0xd4, 0x8c, 0x2d, 0x12, 0x18, 0x25, 0x24, 0x37, 0x04, 0x62, 0x1a, 0x56, + 0x56, 0xd1, 0x37, 0x61, 0x98, 0x7a, 0xa4, 0x22, 0x03, 0xfd, 0xca, 0xbd, 0x1e, 0xb6, 0x1e, 0x0b, + 0x29, 0x7b, 0xa4, 0x12, 0x9f, 0x05, 0xf6, 0x0b, 0x73, 0x58, 0xf4, 0x8e, 0x06, 0x23, 0x94, 0x17, + 0x28, 0x59, 0xd4, 0x5e, 0x1b, 0x94, 0x07, 0xa9, 0x2a, 0x28, 0x7e, 0x63, 0x09, 0x5e, 0xf8, 0x77, + 0x06, 0x2e, 0xf5, 0x52, 0x5d, 0x73, 0x1d, 0x53, 0x6c, 0xc7, 0xa6, 0x3c, 0xdb, 0x22, 0xd3, 0x9f, + 0x4e, 0x9e, 0xed, 0xd3, 0x66, 0xfe, 0x91, 0x3b, 0x1a, 0x48, 0x14, 0x81, 0x2f, 0xa8, 0x75, 0x8b, + 0x42, 0x71, 0xa9, 0xdd, 0xb1, 0xd3, 0x66, 0x7e, 0x4a, 0xa9, 0xb5, 0xfb, 0x8a, 0x1a, 0x80, 0x6c, + 0x83, 0x06, 0x37, 0x7c, 0xc3, 0xa1, 0xc2, 0xac, 0x55, 0x27, 0x32, 0x7c, 0x8f, 0xdd, 0x5d, 0x7a, + 0x30, 0x8d, 0xd2, 0xbc, 0x84, 0x44, 0xd7, 0x3b, 0xac, 0xe1, 0x2e, 0x08, 0xac, 0x6e, 0xf9, 0xc4, + 0xa0, 0xaa, 0x14, 0x25, 0x6e, 0x14, 0x46, 0xc5, 0x92, 0x8b, 0x1e, 0x85, 0xd1, 0x3a, 0xa1, 0xd4, + 0xa8, 0x11, 0x5e, 0x7f, 0xc6, 0xe2, 0x2b, 0x7a, 0x4b, 0x90, 0x71, 0xc4, 0x67, 0xfd, 0xc9, 0xc5, + 0x5e, 0x51, 0xbb, 0x6e, 0xd1, 0x00, 0xbd, 0xda, 0x71, 0x00, 0x8a, 0x77, 0xb7, 0x42, 0xa6, 0xcd, + 0xd3, 0x5f, 0x15, 0xbf, 0x88, 0x92, 0x48, 0xfe, 0x6f, 0x40, 0xd6, 0x0a, 0x48, 0x3d, 0xba, 0xbb, + 0x5f, 0x1e, 0x50, 0xee, 0x95, 0x26, 0xa5, 0x0f, 0xd9, 0x4d, 0x86, 0x86, 0x05, 0x68, 0xe1, 0x37, + 0x19, 0x78, 0xa8, 0x97, 0x0a, 0xbb, 0x50, 0x28, 0x8b, 0xb8, 0x67, 0x87, 0xbe, 0x61, 0xcb, 0x8c, + 0x53, 0x11, 0xdf, 0xe5, 0x54, 0x2c, 0xb9, 0xac, 0xe4, 0x53, 0xcb, 0xa9, 0x85, 0xb6, 0xe1, 0xcb, + 0x74, 0x52, 0xab, 0x2e, 0x4b, 0x3a, 0x56, 0x12, 0xa8, 0x08, 0x40, 0x0f, 0x5c, 0x3f, 0xe0, 0x18, + 0xb2, 0x7a, 0x9d, 0x65, 0x05, 0xa2, 0xac, 0xa8, 0x38, 0x21, 0xc1, 0x6e, 0xb4, 0x43, 0xcb, 0x31, + 0xe5, 0xae, 0xab, 0x53, 0xfc, 0xa2, 0xe5, 0x98, 0x98, 0x73, 0x18, 0xbe, 0x6d, 0xd1, 0x80, 0x51, + 0xe4, 0x96, 0xb7, 0x45, 0x9d, 0x4b, 0x2a, 0x09, 0x86, 0x5f, 0x61, 0x55, 0xdf, 0xf5, 0x2d, 0x42, + 0xf5, 0x91, 0x18, 0x7f, 0x4d, 0x51, 0x71, 0x42, 0xa2, 0xf0, 0xaf, 0x5c, 0xef, 0x24, 0x61, 0xa5, + 0x04, 0x3d, 0x0c, 0xd9, 0x9a, 0xef, 0x86, 0x9e, 0x8c, 0x92, 0x8a, 0xf6, 0xf3, 0x8c, 0x88, 0x05, + 0x8f, 0x65, 0x65, 0xa3, 0xad, 0x4d, 0x55, 0x59, 0x19, 0x35, 0xa7, 0x11, 0x1f, 0x7d, 0x47, 0x83, + 0xac, 0x23, 0x83, 0xc3, 0x52, 0xee, 0xd5, 0x01, 0xe5, 0x05, 0x0f, 0x6f, 0xec, 0xae, 0x88, 0xbc, + 0x40, 0x46, 0x4f, 0x41, 0x96, 0x56, 0x5c, 0x8f, 0xc8, 0xa8, 0x2f, 0x44, 0x42, 0x65, 0x46, 0x3c, + 0x6d, 0xe6, 0x27, 0x23, 0x73, 0x9c, 0x80, 0x85, 0x30, 0xfa, 0xbe, 0x06, 0xd0, 0x30, 0x6c, 0xcb, + 0x34, 0x78, 0xcb, 0x90, 0xe5, 0xee, 0xf7, 0x37, 0xad, 0x5f, 0x52, 0xe6, 0xc5, 0xa6, 0xc5, 0xbf, + 0x71, 0x02, 0x1a, 0xbd, 0xab, 0xc1, 0x04, 0x0d, 0xf7, 0x7d, 0xa9, 0x45, 0x79, 0x73, 0x31, 0xbe, + 0xf2, 0xb5, 0xbe, 0xfa, 0x52, 0x4e, 0x00, 0x94, 0xa6, 0x5b, 0xcd, 0xfc, 0x44, 0x92, 0x82, 0xdb, + 0x1c, 0x40, 0x3f, 0xd2, 0x20, 0xd7, 0x88, 0xee, 0xec, 0x51, 0x7e, 0xe0, 0x5f, 0x1f, 0xd0, 0xc6, + 0xca, 0x8c, 0x8a, 0x4f, 0x81, 0xea, 0x03, 0x94, 0x07, 0xe8, 0xcf, 0x1a, 0xe8, 0x86, 0x29, 0x0a, + 0xbc, 0x61, 0xef, 0xfa, 0x96, 0x13, 0x10, 0x5f, 0xf4, 0x9b, 0x54, 0xcf, 0x71, 0xf7, 0xfa, 0x7b, + 0x17, 0xa6, 0x7b, 0xd9, 0xd2, 0xa2, 0xf4, 0x4e, 0x5f, 0xed, 0xe1, 0x06, 0xee, 0xe9, 0x20, 0x4f, + 0xb4, 0xb8, 0xa5, 0xd1, 0xc7, 0x06, 0x90, 0x68, 0x71, 0x2f, 0x25, 0xab, 0x43, 0xdc, 0x41, 0x25, + 0xa0, 0xd1, 0x0e, 0xcc, 0x7a, 0x3e, 0xe1, 0x00, 0x37, 0x9d, 0x43, 0xc7, 0x3d, 0x72, 0xae, 0x59, + 0xc4, 0x36, 0xa9, 0x0e, 0x8b, 0xda, 0x52, 0xae, 0x74, 0xa1, 0xd5, 0xcc, 0xcf, 0xee, 0x76, 0x13, + 0xc0, 0xdd, 0xf5, 0x0a, 0xef, 0x0e, 0xa5, 0x5f, 0x01, 0xe9, 0x2e, 0x02, 0xbd, 0x2f, 0x56, 0x2f, + 0x62, 0x43, 0x75, 0x8d, 0xef, 0xd6, 0x9b, 0x03, 0x4a, 0x26, 0xd5, 0x06, 0xc4, 0x9d, 0x9c, 0x22, + 0x51, 0x9c, 0xf0, 0x03, 0xfd, 0x5c, 0x83, 0x49, 0xa3, 0x52, 0x21, 0x5e, 0x40, 0x4c, 0x51, 0xdc, + 0x33, 0x9f, 0x41, 0xfd, 0x9a, 0x95, 0x5e, 0x4d, 0xae, 0x26, 0xa1, 0x71, 0xbb, 0x27, 0xe8, 0x39, + 0x38, 0x4b, 0x03, 0xd7, 0x27, 0x66, 0xaa, 0x6d, 0x46, 0xad, 0x66, 0xfe, 0x6c, 0xb9, 0x8d, 0x83, + 0x53, 0x92, 0x85, 0xbf, 0x67, 0x21, 0x7f, 0x87, 0xa3, 0x76, 0x17, 0x0f, 0xb3, 0xcb, 0x30, 0xc2, + 0x97, 0x6b, 0xf2, 0xa8, 0xe4, 0x12, 0xad, 0x20, 0xa7, 0x62, 0xc9, 0x65, 0x17, 0x05, 0xc3, 0x67, + 0xed, 0xcb, 0x10, 0x17, 0x54, 0x17, 0x45, 0x59, 0x90, 0x71, 0xc4, 0x47, 0x2b, 0x00, 0x26, 0xf1, + 0x7c, 0xc2, 0x2e, 0x2b, 0x53, 0x1f, 0xe5, 0xd2, 0x6a, 0x93, 0xd6, 0x15, 0x07, 0x27, 0xa4, 0xd0, + 0x35, 0x40, 0xd1, 0x2f, 0xcb, 0x75, 0x5e, 0x36, 0x7c, 0xc7, 0x72, 0x6a, 0x7a, 0x8e, 0xbb, 0x3d, + 0xc7, 0xba, 0xb1, 0xf5, 0x0e, 0x2e, 0xee, 0xa2, 0x81, 0xde, 0x86, 0x11, 0x31, 0xf4, 0xe1, 0x37, + 0xc4, 0x00, 0xab, 0x3c, 0xf0, 0x18, 0x71, 0x28, 0x2c, 0x21, 0x3b, 0xab, 0x7b, 0xf6, 0x7e, 0x57, + 0xf7, 0xdb, 0x96, 0xd3, 0x91, 0xff, 0xf1, 0x72, 0x5a, 0xf8, 0x8f, 0x96, 0xae, 0x39, 0x89, 0xa5, + 0x96, 0x2b, 0x86, 0x4d, 0xd0, 0x3a, 0x4c, 0xb3, 0x17, 0x13, 0x26, 0x9e, 0x6d, 0x55, 0x0c, 0xca, + 0x1f, 0xec, 0x22, 0xd9, 0xd5, 0x0c, 0xa9, 0x9c, 0xe2, 0xe3, 0x0e, 0x0d, 0xf4, 0x02, 0x20, 0xf1, + 0x8a, 0x68, 0xb3, 0x23, 0x1a, 0x22, 0xf5, 0x1e, 0x28, 0x77, 0x48, 0xe0, 0x2e, 0x5a, 0x68, 0x0d, + 0x66, 0x6c, 0x63, 0x9f, 0xd8, 0x65, 0x62, 0x93, 0x4a, 0xe0, 0xfa, 0xdc, 0x94, 0x18, 0x69, 0xcc, + 0xb6, 0x9a, 0xf9, 0x99, 0xeb, 0x69, 0x26, 0xee, 0x94, 0x2f, 0x5c, 0x4a, 0x1f, 0xed, 0xe4, 0xc2, + 0xc5, 0xdb, 0xec, 0x83, 0x0c, 0xcc, 0xf7, 0xce, 0x0c, 0xf4, 0xdd, 0xf8, 0x09, 0x29, 0x5e, 0x08, + 0xaf, 0x0f, 0x2a, 0x0b, 0xe5, 0x1b, 0x12, 0x3a, 0xdf, 0x8f, 0xe8, 0x5b, 0xac, 0x5d, 0x33, 0xec, + 0x68, 0x68, 0xf5, 0xda, 0xc0, 0x5c, 0x60, 0x20, 0xa5, 0x31, 0xd1, 0x09, 0x1a, 0x36, 0x6f, 0xfc, + 0x0c, 0x9b, 0x14, 0x7e, 0xab, 0xa5, 0xa7, 0x08, 0xf1, 0x09, 0x46, 0x3f, 0xd6, 0x60, 0xca, 0xf5, + 0x88, 0xb3, 0xba, 0xbb, 0xf9, 0xd2, 0xe7, 0xc4, 0x49, 0x96, 0xa1, 0xda, 0xbe, 0x47, 0x3f, 0x5f, + 0x28, 0xef, 0x6c, 0x0b, 0x83, 0xbb, 0xbe, 0xeb, 0xd1, 0xd2, 0xb9, 0x56, 0x33, 0x3f, 0xb5, 0xd3, + 0x0e, 0x85, 0xd3, 0xd8, 0x85, 0x3a, 0xcc, 0x6e, 0x1c, 0x07, 0xc4, 0x77, 0x0c, 0x7b, 0xdd, 0xad, + 0x84, 0x75, 0xe2, 0x04, 0xc2, 0xd1, 0xd4, 0xc4, 0x4b, 0xbb, 0xcb, 0x89, 0xd7, 0x43, 0x30, 0x14, + 0xfa, 0xb6, 0xcc, 0xe2, 0x71, 0x35, 0xd1, 0xc5, 0xd7, 0x31, 0xa3, 0x17, 0x2e, 0xc1, 0x30, 0xf3, + 0x13, 0x5d, 0x80, 0x21, 0xdf, 0x38, 0xe2, 0x56, 0x27, 0x4a, 0xa3, 0x4c, 0x04, 0x1b, 0x47, 0x98, + 0xd1, 0x0a, 0x7f, 0x5a, 0x84, 0xa9, 0xd4, 0x5a, 0xd0, 0x3c, 0x64, 0xd4, 0x98, 0x18, 0xa4, 0xd1, + 0xcc, 0xe6, 0x3a, 0xce, 0x58, 0x26, 0x7a, 0x46, 0x15, 0x5f, 0x01, 0x9a, 0x57, 0x77, 0x09, 0xa7, + 0xb2, 0xfe, 0x3c, 0x36, 0xc7, 0x1c, 0x89, 0x0a, 0x27, 0xf3, 0x81, 0x54, 0xe5, 0x29, 0x11, 0x3e, + 0x90, 0x2a, 0x66, 0xb4, 0x4f, 0x3b, 0xee, 0x8b, 0xe6, 0x8d, 0xd9, 0xbb, 0x98, 0x37, 0x8e, 0xdc, + 0x76, 0xde, 0xf8, 0x30, 0x64, 0x03, 0x2b, 0xb0, 0x09, 0xbf, 0xc8, 0x12, 0xcf, 0xa8, 0x1b, 0x8c, + 0x88, 0x05, 0x0f, 0xbd, 0x05, 0xa3, 0x26, 0xa9, 0x1a, 0xa1, 0x1d, 0xf0, 0x3b, 0x6b, 0x7c, 0x65, + 0xad, 0x0f, 0x29, 0x24, 0x86, 0xc1, 0xeb, 0xc2, 0x2e, 0x8e, 0x00, 0xd0, 0x23, 0x30, 0x5a, 0x37, + 0x8e, 0xad, 0x7a, 0x58, 0xe7, 0x0d, 0xa6, 0x26, 0xc4, 0xb6, 0x04, 0x09, 0x47, 0x3c, 0x56, 0x19, + 0xc9, 0x71, 0xc5, 0x0e, 0xa9, 0xd5, 0x20, 0x92, 0x29, 0x9b, 0x3f, 0x55, 0x19, 0x37, 0x52, 0x7c, + 0xdc, 0xa1, 0xc1, 0xc1, 0x2c, 0x87, 0x2b, 0x8f, 0x27, 0xc0, 0x04, 0x09, 0x47, 0xbc, 0x76, 0x30, + 0x29, 0x3f, 0xd1, 0x0b, 0x4c, 0x2a, 0x77, 0x68, 0xa0, 0xc7, 0x61, 0xac, 0x6e, 0x1c, 0x5f, 0x27, + 0x4e, 0x2d, 0x38, 0xd0, 0x27, 0x17, 0xb5, 0xa5, 0xa1, 0xd2, 0x64, 0xab, 0x99, 0x1f, 0xdb, 0x8a, + 0x88, 0x38, 0xe6, 0x73, 0x61, 0xcb, 0x91, 0xc2, 0x67, 0x13, 0xc2, 0x11, 0x11, 0xc7, 0x7c, 0xd6, + 0xbd, 0x78, 0x46, 0xc0, 0x0e, 0x97, 0x3e, 0xd5, 0xfe, 0xcc, 0xdd, 0x15, 0x64, 0x1c, 0xf1, 0xd1, + 0x12, 0xe4, 0xea, 0xc6, 0x31, 0x1f, 0x49, 0xe8, 0xd3, 0xdc, 0x2c, 0x1f, 0x8c, 0x6f, 0x49, 0x1a, + 0x56, 0x5c, 0x2e, 0x69, 0x39, 0x42, 0x72, 0x26, 0x21, 0x29, 0x69, 0x58, 0x71, 0x59, 0x12, 0x87, + 0x8e, 0x75, 0x2b, 0x24, 0x42, 0x18, 0xf1, 0xc8, 0xa8, 0x24, 0xbe, 0x19, 0xb3, 0x70, 0x52, 0x0e, + 0x15, 0x01, 0xea, 0xa1, 0x1d, 0x58, 0x9e, 0x4d, 0x76, 0xaa, 0xfa, 0x39, 0x1e, 0x7f, 0xde, 0xf4, + 0x6f, 0x29, 0x2a, 0x4e, 0x48, 0x20, 0x02, 0xc3, 0xc4, 0x09, 0xeb, 0xfa, 0x79, 0x7e, 0xb1, 0xf7, + 0x25, 0x05, 0xd5, 0xc9, 0xd9, 0x70, 0xc2, 0x3a, 0xe6, 0xe6, 0xd1, 0x33, 0x30, 0x59, 0x37, 0x8e, + 0x59, 0x39, 0x20, 0x7e, 0x60, 0x11, 0xaa, 0xcf, 0xf2, 0xc5, 0xcf, 0xb0, 0x6e, 0x77, 0x2b, 0xc9, + 0xc0, 0xed, 0x72, 0x5c, 0xd1, 0x72, 0x12, 0x8a, 0x73, 0x09, 0xc5, 0x24, 0x03, 0xb7, 0xcb, 0xb1, + 0x48, 0xfb, 0xe4, 0x56, 0x68, 0xf9, 0xc4, 0xd4, 0x1f, 0xe0, 0x0d, 0xb2, 0xfc, 0x58, 0x21, 0x68, + 0x58, 0x71, 0x51, 0x23, 0x9a, 0x5d, 0xe9, 0xfc, 0x18, 0xde, 0xec, 0x6f, 0x25, 0xdf, 0xf1, 0x57, + 0x7d, 0xdf, 0x38, 0x11, 0x37, 0x4d, 0x72, 0x6a, 0x85, 0x28, 0x64, 0x0d, 0xdb, 0xde, 0xa9, 0xea, + 0x17, 0x78, 0xec, 0xfb, 0x7d, 0x83, 0xa8, 0xaa, 0xb3, 0xca, 0x40, 0xb0, 0xc0, 0x62, 0xa0, 0xae, + 0xc3, 0x52, 0x63, 0x7e, 0xb0, 0xa0, 0x3b, 0x0c, 0x04, 0x0b, 0x2c, 0xbe, 0x52, 0xe7, 0x64, 0xa7, + 0xaa, 0x3f, 0x38, 0xe0, 0x95, 0x32, 0x10, 0x2c, 0xb0, 0x90, 0x05, 0x43, 0x8e, 0x1b, 0xe8, 0x17, + 0x07, 0x72, 0x3d, 0xf3, 0x0b, 0x67, 0xdb, 0x0d, 0x30, 0xc3, 0x40, 0x3f, 0xd3, 0x00, 0xbc, 0x38, + 0x45, 0x1f, 0xea, 0xcb, 0x48, 0x24, 0x05, 0x59, 0x8c, 0x73, 0x7b, 0xc3, 0x09, 0xfc, 0x93, 0xf8, + 0x79, 0x94, 0x38, 0x03, 0x09, 0x2f, 0xd0, 0xaf, 0x34, 0x38, 0x9f, 0x6c, 0x93, 0x95, 0x7b, 0x0b, + 0x3c, 0x22, 0x37, 0xfa, 0x9d, 0xe6, 0x25, 0xd7, 0xb5, 0x4b, 0x7a, 0xab, 0x99, 0x3f, 0xbf, 0xda, + 0x05, 0x15, 0x77, 0xf5, 0x05, 0xfd, 0x4e, 0x83, 0x19, 0x59, 0x45, 0x13, 0x1e, 0xe6, 0x79, 0x00, + 0x49, 0xbf, 0x03, 0x98, 0xc6, 0x11, 0x71, 0x54, 0x1f, 0xd9, 0x3b, 0xf8, 0xb8, 0xd3, 0x35, 0xf4, + 0x47, 0x0d, 0x26, 0x4c, 0xe2, 0x11, 0xc7, 0x24, 0x4e, 0x85, 0xf9, 0xba, 0xd8, 0x97, 0x91, 0x45, + 0xda, 0xd7, 0xf5, 0x04, 0x84, 0x70, 0xb3, 0x28, 0xdd, 0x9c, 0x48, 0xb2, 0x4e, 0x9b, 0xf9, 0xb9, + 0x58, 0x35, 0xc9, 0xc1, 0x6d, 0x5e, 0xa2, 0xf7, 0x34, 0x98, 0x8a, 0x37, 0x40, 0x5c, 0x29, 0x97, + 0x06, 0x98, 0x07, 0xbc, 0x7d, 0x5d, 0x6d, 0x07, 0xc4, 0x69, 0x0f, 0xd0, 0xef, 0x35, 0xd6, 0xa9, + 0x45, 0xef, 0x3e, 0xaa, 0x17, 0x78, 0x2c, 0xdf, 0xe8, 0x7b, 0x2c, 0x15, 0x82, 0x08, 0xe5, 0x95, + 0xb8, 0x15, 0x54, 0x9c, 0xd3, 0x66, 0x7e, 0x36, 0x19, 0x49, 0xc5, 0xc0, 0x49, 0x0f, 0xd1, 0x0f, + 0x35, 0x98, 0x20, 0x71, 0xc7, 0x4d, 0xf5, 0x87, 0xfb, 0x12, 0xc4, 0xae, 0x4d, 0xbc, 0x78, 0xa9, + 0x27, 0x58, 0x14, 0xb7, 0x61, 0xb3, 0x0e, 0x92, 0x1c, 0x1b, 0x75, 0xcf, 0x26, 0xfa, 0xff, 0xf5, + 0xb9, 0x83, 0xdc, 0x10, 0x76, 0x71, 0x04, 0x80, 0xae, 0x40, 0xce, 0x09, 0x6d, 0xdb, 0xd8, 0xb7, + 0x89, 0xfe, 0x08, 0xef, 0x45, 0xd4, 0x48, 0x76, 0x5b, 0xd2, 0xb1, 0x92, 0x40, 0x55, 0x58, 0x3c, + 0x7e, 0x51, 0xfd, 0x7b, 0x52, 0xd7, 0xa1, 0xa1, 0x7e, 0x99, 0x5b, 0x99, 0x6f, 0x35, 0xf3, 0x73, + 0x7b, 0xdd, 0xc7, 0x8a, 0x77, 0xb4, 0x81, 0x5e, 0x81, 0x07, 0x13, 0x32, 0x1b, 0xf5, 0x7d, 0x62, + 0x9a, 0xc4, 0x8c, 0x1e, 0x6e, 0xfa, 0xff, 0x8b, 0xc1, 0x65, 0x74, 0xc0, 0xf7, 0xd2, 0x02, 0xf8, + 0x76, 0xda, 0xe8, 0x3a, 0xcc, 0x25, 0xd8, 0x9b, 0x4e, 0xb0, 0xe3, 0x97, 0x03, 0xdf, 0x72, 0x6a, + 0xfa, 0x12, 0xb7, 0x7b, 0x3e, 0x3a, 0x91, 0x7b, 0x09, 0x1e, 0xee, 0xa1, 0x83, 0xbe, 0xd2, 0x66, + 0x8d, 0x7f, 0x42, 0x33, 0xbc, 0x17, 0xc9, 0x09, 0xd5, 0x1f, 0xe5, 0xdd, 0x09, 0xdf, 0xec, 0xbd, + 0x04, 0x1d, 0xf7, 0x90, 0x47, 0x5f, 0x86, 0x73, 0x29, 0x0e, 0x7b, 0xa2, 0xe8, 0x8f, 0x89, 0xb7, + 0x06, 0xeb, 0x67, 0xf7, 0x22, 0x22, 0xee, 0x26, 0x89, 0xbe, 0x08, 0x28, 0x41, 0xde, 0x32, 0x3c, + 0xae, 0xff, 0xb8, 0x78, 0xf6, 0xb0, 0x1d, 0xdd, 0x93, 0x34, 0xdc, 0x45, 0x6e, 0x9e, 0xbd, 0x81, + 0x53, 0x35, 0x14, 0x4d, 0xc3, 0xd0, 0x21, 0x91, 0xff, 0xb7, 0x80, 0xd9, 0x9f, 0xc8, 0x84, 0x6c, + 0xc3, 0xb0, 0xc3, 0xe8, 0x19, 0xdf, 0xe7, 0xfb, 0x17, 0x0b, 0xe3, 0xcf, 0x65, 0x9e, 0xd5, 0xe6, + 0xdf, 0xd7, 0x60, 0xae, 0x7b, 0x69, 0xbf, 0xaf, 0x6e, 0xfd, 0x42, 0x83, 0x99, 0x8e, 0x2a, 0xde, + 0xc5, 0xa3, 0x5b, 0xed, 0x1e, 0xbd, 0xd2, 0xef, 0x72, 0x2c, 0xd2, 0x8f, 0xf7, 0xa0, 0x49, 0xf7, + 0x7e, 0xa2, 0xc1, 0x74, 0xba, 0x30, 0xde, 0xcf, 0x78, 0x15, 0xde, 0xcf, 0xc0, 0x5c, 0xf7, 0xd6, + 0x19, 0xf9, 0x6a, 0x46, 0x30, 0x98, 0x59, 0x4b, 0xb7, 0xb9, 0xec, 0x3b, 0x1a, 0x8c, 0xbf, 0xa5, + 0xe4, 0xa2, 0xef, 0xda, 0x7d, 0x9f, 0xf2, 0x44, 0x37, 0x51, 0xcc, 0xa0, 0x38, 0x89, 0x5b, 0xf8, + 0x83, 0x06, 0xb3, 0x5d, 0xaf, 0x58, 0x74, 0x19, 0x46, 0x0c, 0xdb, 0x76, 0x8f, 0xc4, 0xb0, 0x2e, + 0x31, 0x85, 0x5f, 0xe5, 0x54, 0x2c, 0xb9, 0x89, 0xe8, 0x65, 0x3e, 0xab, 0xe8, 0x15, 0xfe, 0xa2, + 0xc1, 0xc5, 0xdb, 0x65, 0xe2, 0x7d, 0xd9, 0xd2, 0x25, 0xc8, 0xc9, 0xf6, 0xf8, 0x84, 0x6f, 0xa7, + 0x2c, 0x76, 0xb2, 0x68, 0xf0, 0x7f, 0xe5, 0x12, 0x7f, 0x15, 0x3e, 0xd0, 0x60, 0xba, 0x4c, 0xfc, + 0x86, 0x55, 0x21, 0x98, 0x54, 0x89, 0x4f, 0x9c, 0x0a, 0x41, 0xcb, 0x30, 0xc6, 0x3f, 0x28, 0x7b, + 0x46, 0x25, 0xfa, 0x38, 0x32, 0x23, 0x43, 0x3e, 0xb6, 0x1d, 0x31, 0x70, 0x2c, 0xa3, 0x3e, 0xa4, + 0x64, 0x7a, 0x7e, 0x48, 0xb9, 0x08, 0xc3, 0x5e, 0x3c, 0xea, 0xcd, 0x31, 0x2e, 0x9f, 0xee, 0x72, + 0x2a, 0xe7, 0xba, 0x7e, 0xc0, 0xe7, 0x57, 0x59, 0xc9, 0x75, 0xfd, 0x00, 0x73, 0x6a, 0xe1, 0xaf, + 0x1a, 0x74, 0xfb, 0xa7, 0x2b, 0x74, 0x41, 0x8c, 0xf0, 0x12, 0x73, 0xb1, 0x68, 0x7c, 0x87, 0x1a, + 0x30, 0x4a, 0xc5, 0xaa, 0x64, 0xd4, 0x77, 0xee, 0x31, 0xea, 0xe9, 0x18, 0x89, 0xde, 0x21, 0xa2, + 0x46, 0x60, 0x2c, 0xf0, 0x15, 0xa3, 0x14, 0x3a, 0xa6, 0x9c, 0xea, 0x4e, 0x88, 0xc0, 0xaf, 0xad, + 0x0a, 0x1a, 0x56, 0xdc, 0xd2, 0xd5, 0x0f, 0x3f, 0x59, 0x38, 0xf3, 0xd1, 0x27, 0x0b, 0x67, 0x3e, + 0xfe, 0x64, 0xe1, 0xcc, 0xb7, 0x5b, 0x0b, 0xda, 0x87, 0xad, 0x05, 0xed, 0xa3, 0xd6, 0x82, 0xf6, + 0x71, 0x6b, 0x41, 0xfb, 0x47, 0x6b, 0x41, 0xfb, 0xe9, 0x3f, 0x17, 0xce, 0x7c, 0x7d, 0x54, 0xe2, + 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0x26, 0x4f, 0x67, 0x24, 0x0a, 0x2d, 0x00, 0x00, } func (m *ConversionRequest) Marshal() (dAtA []byte, err error) { @@ -3850,10 +3850,7 @@ func (m *ConversionRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4002,10 +3999,7 @@ func (m *ConversionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4127,10 +4121,7 @@ func (m *ConversionReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4359,10 +4350,7 @@ func (m *CustomResourceColumnDefinition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4512,10 +4500,7 @@ func (m *CustomResourceConversion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4664,10 +4649,7 @@ func (m *CustomResourceDefinition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4878,10 +4860,7 @@ func (m *CustomResourceDefinitionCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4998,10 +4977,7 @@ func (m *CustomResourceDefinitionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5243,10 +5219,7 @@ func (m *CustomResourceDefinitionNames) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5622,10 +5595,7 @@ func (m *CustomResourceDefinitionSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5774,10 +5744,7 @@ func (m *CustomResourceDefinitionStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6058,10 +6025,7 @@ func (m *CustomResourceDefinitionVersion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6208,10 +6172,7 @@ func (m *CustomResourceSubresourceScale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6261,10 +6222,7 @@ func (m *CustomResourceSubresourceStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6386,10 +6344,7 @@ func (m *CustomResourceSubresources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6475,10 +6430,7 @@ func (m *CustomResourceValidation) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6592,10 +6544,7 @@ func (m *ExternalDocumentation) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6679,10 +6628,7 @@ func (m *JSON) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7593,7 +7539,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7758,7 +7704,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7887,7 +7833,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -8052,7 +7998,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -8320,10 +8266,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8443,10 +8386,7 @@ func (m *JSONSchemaPropsOrArray) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8552,10 +8492,7 @@ func (m *JSONSchemaPropsOrBool) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8673,10 +8610,7 @@ func (m *JSONSchemaPropsOrStringArray) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8843,10 +8777,7 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8999,10 +8930,7 @@ func (m *WebhookClientConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto index 40635aff37..e738f423c8 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto @@ -280,6 +280,8 @@ message CustomResourceDefinitionSpec { message CustomResourceDefinitionStatus { // conditions indicate state for particular aspects of a CustomResourceDefinition // +optional + // +listType=map + // +listMapKey=type repeated CustomResourceDefinitionCondition conditions = 1; // acceptedNames are the names that are actually being used to serve discovery. diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go index 806c68aa6c..671869b9f7 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go @@ -361,6 +361,8 @@ type CustomResourceDefinitionCondition struct { type CustomResourceDefinitionStatus struct { // conditions indicate state for particular aspects of a CustomResourceDefinition // +optional + // +listType=map + // +listMapKey=type Conditions []CustomResourceDefinitionCondition `json:"conditions" protobuf:"bytes,1,opt,name=conditions"` // acceptedNames are the names that are actually being used to serve discovery. diff --git a/vendor/k8s.io/apimachinery/pkg/api/errors/OWNERS b/vendor/k8s.io/apimachinery/pkg/api/errors/OWNERS index d18a17885b..4ba4022b6e 100644 --- a/vendor/k8s.io/apimachinery/pkg/api/errors/OWNERS +++ b/vendor/k8s.io/apimachinery/pkg/api/errors/OWNERS @@ -11,8 +11,6 @@ reviewers: - caesarxuchao - mikedanese - liggitt -- nikhiljindal -- gmarek - erictune - saad-ali - janetkuo diff --git a/vendor/k8s.io/apimachinery/pkg/api/meta/OWNERS b/vendor/k8s.io/apimachinery/pkg/api/meta/OWNERS index 68b8d353ca..f929e061d2 100644 --- a/vendor/k8s.io/apimachinery/pkg/api/meta/OWNERS +++ b/vendor/k8s.io/apimachinery/pkg/api/meta/OWNERS @@ -10,12 +10,9 @@ reviewers: - caesarxuchao - mikedanese - liggitt -- nikhiljindal -- gmarek - janetkuo - ncdc - dims - krousey - resouer - mfojtik -- jianhuiz diff --git a/vendor/k8s.io/apimachinery/pkg/api/meta/conditions.go b/vendor/k8s.io/apimachinery/pkg/api/meta/conditions.go index 343a6f550e..00874f89cc 100644 --- a/vendor/k8s.io/apimachinery/pkg/api/meta/conditions.go +++ b/vendor/k8s.io/apimachinery/pkg/api/meta/conditions.go @@ -57,7 +57,7 @@ func SetStatusCondition(conditions *[]metav1.Condition, newCondition metav1.Cond // RemoveStatusCondition removes the corresponding conditionType from conditions. // conditions must be non-nil. func RemoveStatusCondition(conditions *[]metav1.Condition, conditionType string) { - if conditions == nil { + if conditions == nil || len(*conditions) == 0 { return } newConditions := make([]metav1.Condition, 0, len(*conditions)-1) diff --git a/vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS b/vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS index 7ac0fe11a1..15bded17af 100644 --- a/vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS +++ b/vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS @@ -10,4 +10,3 @@ reviewers: - saad-ali - janetkuo - xiang90 -- mbohlool diff --git a/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go b/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go index f89ca163cd..3e0cdb10d4 100644 --- a/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go +++ b/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go @@ -166,7 +166,7 @@ func (m *Quantity) Unmarshal(data []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/apimachinery/pkg/api/validation/objectmeta.go b/vendor/k8s.io/apimachinery/pkg/api/validation/objectmeta.go index 889ec69aab..3e234eb11d 100644 --- a/vendor/k8s.io/apimachinery/pkg/api/validation/objectmeta.go +++ b/vendor/k8s.io/apimachinery/pkg/api/validation/objectmeta.go @@ -180,9 +180,7 @@ func ValidateObjectMetaAccessor(meta metav1.Object, requiresNamespace bool, name allErrs = append(allErrs, field.Invalid(fldPath.Child("clusterName"), meta.GetClusterName(), msg)) } } - for _, entry := range meta.GetManagedFields() { - allErrs = append(allErrs, v1validation.ValidateFieldManager(entry.Manager, fldPath.Child("fieldManager"))...) - } + allErrs = append(allErrs, ValidateNonnegativeField(meta.GetGeneration(), fldPath.Child("generation"))...) allErrs = append(allErrs, v1validation.ValidateLabels(meta.GetLabels(), fldPath.Child("labels"))...) allErrs = append(allErrs, ValidateAnnotations(meta.GetAnnotations(), fldPath.Child("annotations"))...) @@ -248,9 +246,6 @@ func ValidateObjectMetaAccessorUpdate(newMeta, oldMeta metav1.Object, fldPath *f allErrs = append(allErrs, field.Invalid(fldPath.Child("generation"), newMeta.GetGeneration(), "must not be decremented")) } - for _, entry := range newMeta.GetManagedFields() { - allErrs = append(allErrs, v1validation.ValidateFieldManager(entry.Manager, fldPath.Child("fieldManager"))...) - } allErrs = append(allErrs, ValidateImmutableField(newMeta.GetName(), oldMeta.GetName(), fldPath.Child("name"))...) allErrs = append(allErrs, ValidateImmutableField(newMeta.GetNamespace(), oldMeta.GetNamespace(), fldPath.Child("namespace"))...) allErrs = append(allErrs, ValidateImmutableField(newMeta.GetUID(), oldMeta.GetUID(), fldPath.Child("uid"))...) diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion/register.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion/register.go index ae39b74eb2..a59ac71268 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion/register.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion/register.go @@ -52,7 +52,6 @@ func addToGroupVersion(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &ListOptions{}, &metav1.GetOptions{}, - &metav1.ExportOptions{}, &metav1.DeleteOptions{}, &metav1.CreateOptions{}, &metav1.UpdateOptions{}, diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/OWNERS b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/OWNERS index 40018601c0..579af62ba7 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/OWNERS +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/OWNERS @@ -8,8 +8,6 @@ reviewers: - brendandburns - caesarxuchao - liggitt -- nikhiljindal -- gmarek - erictune - davidopp - sttts @@ -20,11 +18,8 @@ reviewers: - ncdc - soltysh - dims -- madhusudancs - hongchaodeng - krousey - mml -- mbohlool - therc - kevin-wangzefeng -- jianhuiz diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go index e74a51099d..55945badab 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go @@ -189,10 +189,38 @@ func (m *APIVersions) XXX_DiscardUnknown() { var xxx_messageInfo_APIVersions proto.InternalMessageInfo +func (m *ApplyOptions) Reset() { *m = ApplyOptions{} } +func (*ApplyOptions) ProtoMessage() {} +func (*ApplyOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_cf52fa777ced5367, []int{5} +} +func (m *ApplyOptions) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ApplyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ApplyOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyOptions.Merge(m, src) +} +func (m *ApplyOptions) XXX_Size() int { + return m.Size() +} +func (m *ApplyOptions) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyOptions proto.InternalMessageInfo + func (m *Condition) Reset() { *m = Condition{} } func (*Condition) ProtoMessage() {} func (*Condition) Descriptor() ([]byte, []int) { - return fileDescriptor_cf52fa777ced5367, []int{5} + return fileDescriptor_cf52fa777ced5367, []int{6} } func (m *Condition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -220,7 +248,7 @@ var xxx_messageInfo_Condition proto.InternalMessageInfo func (m *CreateOptions) Reset() { *m = CreateOptions{} } func (*CreateOptions) ProtoMessage() {} func (*CreateOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_cf52fa777ced5367, []int{6} + return fileDescriptor_cf52fa777ced5367, []int{7} } func (m *CreateOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -248,7 +276,7 @@ var xxx_messageInfo_CreateOptions proto.InternalMessageInfo func (m *DeleteOptions) Reset() { *m = DeleteOptions{} } func (*DeleteOptions) ProtoMessage() {} func (*DeleteOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_cf52fa777ced5367, []int{7} + return fileDescriptor_cf52fa777ced5367, []int{8} } func (m *DeleteOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -276,7 +304,7 @@ var xxx_messageInfo_DeleteOptions proto.InternalMessageInfo func (m *Duration) Reset() { *m = Duration{} } func (*Duration) ProtoMessage() {} func (*Duration) Descriptor() ([]byte, []int) { - return fileDescriptor_cf52fa777ced5367, []int{8} + return fileDescriptor_cf52fa777ced5367, []int{9} } func (m *Duration) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -301,34 +329,6 @@ func (m *Duration) XXX_DiscardUnknown() { var xxx_messageInfo_Duration proto.InternalMessageInfo -func (m *ExportOptions) Reset() { *m = ExportOptions{} } -func (*ExportOptions) ProtoMessage() {} -func (*ExportOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_cf52fa777ced5367, []int{9} -} -func (m *ExportOptions) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ExportOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ExportOptions) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExportOptions.Merge(m, src) -} -func (m *ExportOptions) XXX_Size() int { - return m.Size() -} -func (m *ExportOptions) XXX_DiscardUnknown() { - xxx_messageInfo_ExportOptions.DiscardUnknown(m) -} - -var xxx_messageInfo_ExportOptions proto.InternalMessageInfo - func (m *FieldsV1) Reset() { *m = FieldsV1{} } func (*FieldsV1) ProtoMessage() {} func (*FieldsV1) Descriptor() ([]byte, []int) { @@ -1277,11 +1277,11 @@ func init() { proto.RegisterType((*APIResource)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.APIResource") proto.RegisterType((*APIResourceList)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList") proto.RegisterType((*APIVersions)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions") + proto.RegisterType((*ApplyOptions)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.ApplyOptions") proto.RegisterType((*Condition)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.Condition") proto.RegisterType((*CreateOptions)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.CreateOptions") proto.RegisterType((*DeleteOptions)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions") proto.RegisterType((*Duration)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.Duration") - proto.RegisterType((*ExportOptions)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions") proto.RegisterType((*FieldsV1)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1") proto.RegisterType((*GetOptions)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions") proto.RegisterType((*GroupKind)(nil), "k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind") @@ -1326,184 +1326,183 @@ func init() { } var fileDescriptor_cf52fa777ced5367 = []byte{ - // 2832 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x1a, 0xcd, 0x6f, 0x23, 0x57, - 0x3d, 0x63, 0xc7, 0x89, 0xfd, 0x73, 0x9c, 0x8f, 0xb7, 0x59, 0xf0, 0x06, 0x11, 0xa7, 0x53, 0xb4, - 0xda, 0x42, 0xeb, 0x34, 0x4b, 0xa9, 0xb6, 0x5b, 0x5a, 0x88, 0xe3, 0x64, 0x1b, 0x9a, 0x34, 0xd1, - 0xcb, 0xee, 0x02, 0xa5, 0x42, 0x9d, 0x78, 0x5e, 0x9c, 0x21, 0xe3, 0x19, 0xf7, 0xbd, 0x71, 0xb2, - 0x86, 0x03, 0x3d, 0x80, 0x00, 0x09, 0xaa, 0x1e, 0x11, 0x07, 0xd4, 0x0a, 0xfe, 0x02, 0x2e, 0xf0, - 0x07, 0x20, 0xd1, 0x63, 0x25, 0x2e, 0x95, 0x40, 0x56, 0x37, 0x1c, 0x38, 0x22, 0xae, 0xb9, 0x80, - 0xde, 0xc7, 0xcc, 0xbc, 0xf1, 0xc7, 0x66, 0xdc, 0x2d, 0x15, 0x37, 0xcf, 0xef, 0xfb, 0xbd, 0xf7, - 0x7b, 0xbf, 0xaf, 0x67, 0xd8, 0x3d, 0xb9, 0xc5, 0xaa, 0x8e, 0xbf, 0x7a, 0xd2, 0x39, 0x24, 0xd4, - 0x23, 0x01, 0x61, 0xab, 0xa7, 0xc4, 0xb3, 0x7d, 0xba, 0xaa, 0x10, 0x56, 0xdb, 0x69, 0x59, 0x8d, - 0x63, 0xc7, 0x23, 0xb4, 0xbb, 0xda, 0x3e, 0x69, 0x72, 0x00, 0x5b, 0x6d, 0x91, 0xc0, 0x5a, 0x3d, - 0x5d, 0x5b, 0x6d, 0x12, 0x8f, 0x50, 0x2b, 0x20, 0x76, 0xb5, 0x4d, 0xfd, 0xc0, 0x47, 0x5f, 0x92, - 0x5c, 0x55, 0x9d, 0xab, 0xda, 0x3e, 0x69, 0x72, 0x00, 0xab, 0x72, 0xae, 0xea, 0xe9, 0xda, 0xd2, - 0x33, 0x4d, 0x27, 0x38, 0xee, 0x1c, 0x56, 0x1b, 0x7e, 0x6b, 0xb5, 0xe9, 0x37, 0xfd, 0x55, 0xc1, - 0x7c, 0xd8, 0x39, 0x12, 0x5f, 0xe2, 0x43, 0xfc, 0x92, 0x42, 0x97, 0x46, 0x9a, 0x42, 0x3b, 0x5e, - 0xe0, 0xb4, 0x48, 0xbf, 0x15, 0x4b, 0xcf, 0x5f, 0xc6, 0xc0, 0x1a, 0xc7, 0xa4, 0x65, 0xf5, 0xf3, - 0x99, 0x7f, 0xc9, 0x42, 0x7e, 0x7d, 0x7f, 0xfb, 0x0e, 0xf5, 0x3b, 0x6d, 0xb4, 0x02, 0x93, 0x9e, - 0xd5, 0x22, 0x65, 0x63, 0xc5, 0xb8, 0x51, 0xa8, 0xcd, 0x7c, 0xd0, 0xab, 0x4c, 0x9c, 0xf7, 0x2a, - 0x93, 0xaf, 0x59, 0x2d, 0x82, 0x05, 0x06, 0xb9, 0x90, 0x3f, 0x25, 0x94, 0x39, 0xbe, 0xc7, 0xca, - 0x99, 0x95, 0xec, 0x8d, 0xe2, 0xcd, 0x97, 0xab, 0x69, 0xd6, 0x5f, 0x15, 0x0a, 0xee, 0x4b, 0xd6, - 0x2d, 0x9f, 0xd6, 0x1d, 0xd6, 0xf0, 0x4f, 0x09, 0xed, 0xd6, 0xe6, 0x95, 0x96, 0xbc, 0x42, 0x32, - 0x1c, 0x69, 0x40, 0x3f, 0x31, 0x60, 0xbe, 0x4d, 0xc9, 0x11, 0xa1, 0x94, 0xd8, 0x0a, 0x5f, 0xce, - 0xae, 0x18, 0x9f, 0x82, 0xda, 0xb2, 0x52, 0x3b, 0xbf, 0xdf, 0x27, 0x1f, 0x0f, 0x68, 0x44, 0xbf, - 0x33, 0x60, 0x89, 0x11, 0x7a, 0x4a, 0xe8, 0xba, 0x6d, 0x53, 0xc2, 0x58, 0xad, 0xbb, 0xe1, 0x3a, - 0xc4, 0x0b, 0x36, 0xb6, 0xeb, 0x98, 0x95, 0x27, 0xc5, 0x3e, 0x7c, 0x23, 0x9d, 0x41, 0x07, 0xa3, - 0xe4, 0xd4, 0x4c, 0x65, 0xd1, 0xd2, 0x48, 0x12, 0x86, 0x1f, 0x61, 0x86, 0x79, 0x04, 0x33, 0xe1, - 0x41, 0xee, 0x38, 0x2c, 0x40, 0xf7, 0x61, 0xaa, 0xc9, 0x3f, 0x58, 0xd9, 0x10, 0x06, 0x56, 0xd3, - 0x19, 0x18, 0xca, 0xa8, 0xcd, 0x2a, 0x7b, 0xa6, 0xc4, 0x27, 0xc3, 0x4a, 0x9a, 0xf9, 0x8b, 0x49, - 0x28, 0xae, 0xef, 0x6f, 0x63, 0xc2, 0xfc, 0x0e, 0x6d, 0x90, 0x14, 0x4e, 0x73, 0x0b, 0x66, 0x98, - 0xe3, 0x35, 0x3b, 0xae, 0x45, 0x39, 0xb4, 0x3c, 0x25, 0x28, 0x17, 0x15, 0xe5, 0xcc, 0x81, 0x86, - 0xc3, 0x09, 0x4a, 0x74, 0x13, 0x80, 0x4b, 0x60, 0x6d, 0xab, 0x41, 0xec, 0x72, 0x66, 0xc5, 0xb8, - 0x91, 0xaf, 0x21, 0xc5, 0x07, 0xaf, 0x45, 0x18, 0xac, 0x51, 0xa1, 0x27, 0x21, 0x27, 0x2c, 0x2d, - 0xe7, 0x85, 0x9a, 0x92, 0x22, 0xcf, 0x89, 0x65, 0x60, 0x89, 0x43, 0x4f, 0xc1, 0xb4, 0xf2, 0xb2, - 0x72, 0x41, 0x90, 0xcd, 0x29, 0xb2, 0xe9, 0xd0, 0x0d, 0x42, 0x3c, 0x5f, 0xdf, 0x89, 0xe3, 0xd9, - 0xc2, 0xef, 0xb4, 0xf5, 0xbd, 0xea, 0x78, 0x36, 0x16, 0x18, 0xb4, 0x03, 0xb9, 0x53, 0x42, 0x0f, - 0xb9, 0x27, 0x70, 0xd7, 0xfc, 0x4a, 0xba, 0x8d, 0xbe, 0xcf, 0x59, 0x6a, 0x05, 0x6e, 0x9a, 0xf8, - 0x89, 0xa5, 0x10, 0x54, 0x05, 0x60, 0xc7, 0x3e, 0x0d, 0xc4, 0xf2, 0xca, 0xb9, 0x95, 0xec, 0x8d, - 0x42, 0x6d, 0x96, 0xaf, 0xf7, 0x20, 0x82, 0x62, 0x8d, 0x82, 0xd3, 0x37, 0xac, 0x80, 0x34, 0x7d, - 0xea, 0x10, 0x56, 0x9e, 0x8e, 0xe9, 0x37, 0x22, 0x28, 0xd6, 0x28, 0xd0, 0xb7, 0x00, 0xb1, 0xc0, - 0xa7, 0x56, 0x93, 0xa8, 0xa5, 0xbe, 0x62, 0xb1, 0xe3, 0x32, 0x88, 0xd5, 0x2d, 0xa9, 0xd5, 0xa1, - 0x83, 0x01, 0x0a, 0x3c, 0x84, 0xcb, 0xfc, 0x83, 0x01, 0x73, 0x9a, 0x2f, 0x08, 0xbf, 0xbb, 0x05, - 0x33, 0x4d, 0xed, 0xd6, 0x29, 0xbf, 0x88, 0x4e, 0x5b, 0xbf, 0x91, 0x38, 0x41, 0x89, 0x08, 0x14, - 0xa8, 0x92, 0x14, 0x46, 0x97, 0xb5, 0xd4, 0x4e, 0x1b, 0xda, 0x10, 0x6b, 0xd2, 0x80, 0x0c, 0xc7, - 0x92, 0xcd, 0x7f, 0x1a, 0xc2, 0x81, 0xc3, 0x78, 0x83, 0x6e, 0x68, 0x31, 0xcd, 0x10, 0xdb, 0x37, - 0x33, 0x22, 0x1e, 0x5d, 0x12, 0x08, 0x32, 0xff, 0x17, 0x81, 0xe0, 0x76, 0xfe, 0xd7, 0xef, 0x55, - 0x26, 0xde, 0xfe, 0xfb, 0xca, 0x84, 0xf9, 0x9f, 0x0c, 0x14, 0x36, 0x7c, 0xcf, 0x76, 0x02, 0xe5, - 0xc8, 0x41, 0xb7, 0x3d, 0x70, 0x51, 0xef, 0x76, 0xdb, 0x04, 0x0b, 0x0c, 0x7a, 0x01, 0xa6, 0x58, - 0x60, 0x05, 0x1d, 0x26, 0xae, 0x5a, 0xa1, 0xf6, 0x44, 0x18, 0x02, 0x0e, 0x04, 0xf4, 0xa2, 0x57, - 0x99, 0x8b, 0xc4, 0x49, 0x10, 0x56, 0x0c, 0xdc, 0xab, 0xfc, 0x43, 0x61, 0x94, 0x7d, 0x47, 0xa6, - 0x98, 0x30, 0x56, 0x67, 0x63, 0xaf, 0xda, 0x1b, 0xa0, 0xc0, 0x43, 0xb8, 0xd0, 0x29, 0x20, 0xd7, - 0x62, 0xc1, 0x5d, 0x6a, 0x79, 0x4c, 0xe8, 0xba, 0xeb, 0xb4, 0x88, 0xba, 0x5c, 0x5f, 0x4e, 0xb7, - 0xbb, 0x9c, 0x23, 0xd6, 0xbb, 0x33, 0x20, 0x0d, 0x0f, 0xd1, 0x80, 0xae, 0xc3, 0x14, 0x25, 0x16, - 0xf3, 0xbd, 0x72, 0x4e, 0x2c, 0x3f, 0x8a, 0x80, 0x58, 0x40, 0xb1, 0xc2, 0xf2, 0xe0, 0xd1, 0x22, - 0x8c, 0x59, 0xcd, 0x30, 0x94, 0x45, 0xc1, 0x63, 0x57, 0x82, 0x71, 0x88, 0x37, 0x5b, 0x50, 0xda, - 0xa0, 0xc4, 0x0a, 0xc8, 0x5e, 0x3b, 0x10, 0x2e, 0x64, 0xc2, 0x94, 0x4d, 0xbb, 0xb8, 0xe3, 0x29, - 0x57, 0x03, 0x2e, 0xbf, 0x2e, 0x20, 0x58, 0x61, 0xf8, 0x0d, 0x3a, 0x72, 0x88, 0x6b, 0xef, 0x5a, - 0x9e, 0xd5, 0x24, 0x54, 0x45, 0x9e, 0xc8, 0xaf, 0xb7, 0x34, 0x1c, 0x4e, 0x50, 0x9a, 0x3f, 0xcb, - 0x42, 0xa9, 0x4e, 0x5c, 0x12, 0xeb, 0xdb, 0x02, 0xd4, 0xa4, 0x56, 0x83, 0xec, 0x13, 0xea, 0xf8, - 0xf6, 0x01, 0x69, 0xf8, 0x9e, 0xcd, 0x84, 0x0b, 0x64, 0x6b, 0x9f, 0xe3, 0x7b, 0x73, 0x67, 0x00, - 0x8b, 0x87, 0x70, 0x20, 0x17, 0x4a, 0x6d, 0x2a, 0x7e, 0x8b, 0xfd, 0x92, 0x1e, 0x52, 0xbc, 0xf9, - 0xd5, 0x74, 0xc7, 0xb1, 0xaf, 0xb3, 0xd6, 0x16, 0xce, 0x7b, 0x95, 0x52, 0x02, 0x84, 0x93, 0xc2, - 0xd1, 0x37, 0x61, 0xde, 0xa7, 0xed, 0x63, 0xcb, 0xab, 0x93, 0x36, 0xf1, 0x6c, 0xe2, 0x05, 0x4c, - 0xec, 0x42, 0xbe, 0xb6, 0xc8, 0x73, 0xf6, 0x5e, 0x1f, 0x0e, 0x0f, 0x50, 0xa3, 0xd7, 0x61, 0xa1, - 0x4d, 0xfd, 0xb6, 0xd5, 0x14, 0x2e, 0xb5, 0xef, 0xbb, 0x4e, 0xa3, 0x2b, 0x5c, 0xa8, 0x50, 0x7b, - 0xfa, 0xbc, 0x57, 0x59, 0xd8, 0xef, 0x47, 0x5e, 0xf4, 0x2a, 0x57, 0xc4, 0xd6, 0x71, 0x48, 0x8c, - 0xc4, 0x83, 0x62, 0xb4, 0x33, 0xcc, 0x8d, 0x3a, 0x43, 0x73, 0x1b, 0xf2, 0xf5, 0x8e, 0xf2, 0xe7, - 0x97, 0x20, 0x6f, 0xab, 0xdf, 0x6a, 0xe7, 0xc3, 0x8b, 0x15, 0xd1, 0x5c, 0xf4, 0x2a, 0x25, 0x5e, - 0xa6, 0x55, 0x43, 0x00, 0x8e, 0x58, 0xcc, 0x37, 0xa0, 0xb4, 0xf9, 0xa0, 0xed, 0xd3, 0x20, 0x3c, - 0xd3, 0xeb, 0x30, 0x45, 0x04, 0x40, 0x48, 0xcb, 0xc7, 0x7e, 0x2a, 0xc9, 0xb0, 0xc2, 0xf2, 0x4c, - 0x48, 0x1e, 0x58, 0x8d, 0x40, 0x25, 0xce, 0x28, 0x13, 0x6e, 0x72, 0x20, 0x96, 0x38, 0xf3, 0x3a, - 0xe4, 0x85, 0x43, 0xb1, 0xfb, 0x6b, 0x68, 0x1e, 0xb2, 0xd8, 0x3a, 0x13, 0x52, 0x67, 0x70, 0x96, - 0x5a, 0x67, 0x5a, 0x2c, 0xd9, 0x03, 0xb8, 0x43, 0x22, 0x13, 0xd6, 0x61, 0x2e, 0x0c, 0xa8, 0xc9, - 0x38, 0xff, 0x79, 0xa5, 0x64, 0x0e, 0x27, 0xd1, 0xb8, 0x9f, 0xde, 0x7c, 0x03, 0x0a, 0x22, 0x17, - 0xf0, 0x44, 0x1a, 0x27, 0x6d, 0xe3, 0x11, 0x49, 0x3b, 0xcc, 0xc4, 0x99, 0x51, 0x99, 0x58, 0x33, - 0xd7, 0x85, 0x92, 0xe4, 0x0d, 0xcb, 0x94, 0x54, 0x1a, 0x9e, 0x86, 0x7c, 0x68, 0xa6, 0xd2, 0x12, - 0x95, 0xa7, 0xa1, 0x20, 0x1c, 0x51, 0x68, 0xda, 0x8e, 0x21, 0x91, 0xd7, 0xd2, 0x29, 0xd3, 0x6a, - 0x90, 0xcc, 0xa3, 0x6b, 0x10, 0x4d, 0xd3, 0x8f, 0xa1, 0x3c, 0xaa, 0xa6, 0x7d, 0x8c, 0xcc, 0x9b, - 0xde, 0x14, 0xf3, 0x1d, 0x03, 0xe6, 0x75, 0x49, 0xe9, 0x8f, 0x2f, 0xbd, 0x92, 0xcb, 0x6b, 0x2e, - 0x6d, 0x47, 0x7e, 0x6b, 0xc0, 0x62, 0x62, 0x69, 0x63, 0x9d, 0xf8, 0x18, 0x46, 0xe9, 0xce, 0x91, - 0x1d, 0xc3, 0x39, 0xfe, 0x9a, 0x81, 0xd2, 0x8e, 0x75, 0x48, 0xdc, 0x03, 0xe2, 0x92, 0x46, 0xe0, - 0x53, 0xf4, 0x23, 0x28, 0xb6, 0xac, 0xa0, 0x71, 0x2c, 0xa0, 0x61, 0x7d, 0x5e, 0x4f, 0x17, 0x4a, - 0x13, 0x92, 0xaa, 0xbb, 0xb1, 0x98, 0x4d, 0x2f, 0xa0, 0xdd, 0xda, 0x15, 0x65, 0x52, 0x51, 0xc3, - 0x60, 0x5d, 0x9b, 0x68, 0xaa, 0xc4, 0xf7, 0xe6, 0x83, 0x36, 0x2f, 0x1e, 0xc6, 0xef, 0xe5, 0x12, - 0x26, 0x60, 0xf2, 0x56, 0xc7, 0xa1, 0xa4, 0x45, 0xbc, 0x20, 0x6e, 0xaa, 0x76, 0xfb, 0xe4, 0xe3, - 0x01, 0x8d, 0x4b, 0x2f, 0xc3, 0x7c, 0xbf, 0xf1, 0x3c, 0xfe, 0x9c, 0x90, 0xae, 0x3c, 0x2f, 0xcc, - 0x7f, 0xa2, 0x45, 0xc8, 0x9d, 0x5a, 0x6e, 0x47, 0xdd, 0x46, 0x2c, 0x3f, 0x6e, 0x67, 0x6e, 0x19, - 0xe6, 0xef, 0x0d, 0x28, 0x8f, 0x32, 0x04, 0x7d, 0x51, 0x13, 0x54, 0x2b, 0x2a, 0xab, 0xb2, 0xaf, - 0x92, 0xae, 0x94, 0xba, 0x09, 0x79, 0xbf, 0xcd, 0xab, 0x0d, 0x9f, 0xaa, 0x53, 0x7f, 0x2a, 0x3c, - 0xc9, 0x3d, 0x05, 0xbf, 0xe8, 0x55, 0xae, 0x26, 0xc4, 0x87, 0x08, 0x1c, 0xb1, 0xf2, 0x3c, 0x20, - 0xec, 0xe1, 0xb9, 0x29, 0xca, 0x03, 0xf7, 0x05, 0x04, 0x2b, 0x8c, 0xf9, 0x27, 0x03, 0x26, 0x45, - 0x59, 0xfc, 0x06, 0xe4, 0xf9, 0xfe, 0xd9, 0x56, 0x60, 0x09, 0xbb, 0x52, 0x37, 0x64, 0x9c, 0x7b, - 0x97, 0x04, 0x56, 0xec, 0x6d, 0x21, 0x04, 0x47, 0x12, 0x11, 0x86, 0x9c, 0x13, 0x90, 0x56, 0x78, - 0x90, 0xcf, 0x8c, 0x14, 0xad, 0xc6, 0x01, 0x55, 0x6c, 0x9d, 0x6d, 0x3e, 0x08, 0x88, 0xc7, 0x0f, - 0x23, 0xbe, 0x1a, 0xdb, 0x5c, 0x06, 0x96, 0xa2, 0xcc, 0x7f, 0x1b, 0x10, 0xa9, 0xe2, 0xce, 0xcf, - 0x88, 0x7b, 0xb4, 0xe3, 0x78, 0x27, 0x6a, 0x5b, 0x23, 0x73, 0x0e, 0x14, 0x1c, 0x47, 0x14, 0xc3, - 0xd2, 0x43, 0x66, 0xbc, 0xf4, 0xc0, 0x15, 0x36, 0x7c, 0x2f, 0x70, 0xbc, 0xce, 0xc0, 0x6d, 0xdb, - 0x50, 0x70, 0x1c, 0x51, 0xf0, 0x32, 0x87, 0x92, 0x96, 0xe5, 0x78, 0x8e, 0xd7, 0xe4, 0x8b, 0xd8, - 0xf0, 0x3b, 0x5e, 0x20, 0xf2, 0xbd, 0x2a, 0x73, 0xf0, 0x00, 0x16, 0x0f, 0xe1, 0x30, 0xff, 0x38, - 0x09, 0x45, 0xbe, 0xe6, 0x30, 0xcf, 0xbd, 0x08, 0x25, 0x57, 0xf7, 0x02, 0xb5, 0xf6, 0xab, 0xca, - 0x94, 0xe4, 0xbd, 0xc6, 0x49, 0x5a, 0xce, 0x2c, 0xaa, 0xb3, 0x88, 0x39, 0x93, 0x64, 0xde, 0xd2, - 0x91, 0x38, 0x49, 0xcb, 0xa3, 0xd7, 0x19, 0xbf, 0x1f, 0xaa, 0xee, 0x89, 0x8e, 0xe8, 0xdb, 0x1c, - 0x88, 0x25, 0x0e, 0xed, 0xc2, 0x15, 0xcb, 0x75, 0xfd, 0x33, 0x01, 0xac, 0xf9, 0xfe, 0x49, 0xcb, - 0xa2, 0x27, 0x4c, 0xb4, 0xb4, 0xf9, 0xda, 0x17, 0x14, 0xcb, 0x95, 0xf5, 0x41, 0x12, 0x3c, 0x8c, - 0x6f, 0xd8, 0xb1, 0x4d, 0x8e, 0x79, 0x6c, 0xc7, 0xb0, 0xd8, 0x07, 0x12, 0xb7, 0x5c, 0xf5, 0x97, - 0xcf, 0x29, 0x39, 0x8b, 0x78, 0x08, 0xcd, 0xc5, 0x08, 0x38, 0x1e, 0x2a, 0x11, 0xdd, 0x86, 0x59, - 0xee, 0xc9, 0x7e, 0x27, 0x08, 0xab, 0xda, 0x9c, 0x38, 0x6e, 0x74, 0xde, 0xab, 0xcc, 0xde, 0x4d, - 0x60, 0x70, 0x1f, 0x25, 0xdf, 0x5c, 0xd7, 0x69, 0x39, 0x41, 0x79, 0x5a, 0xb0, 0x44, 0x9b, 0xbb, - 0xc3, 0x81, 0x58, 0xe2, 0x12, 0x1e, 0x98, 0xbf, 0xcc, 0x03, 0xcd, 0xdf, 0x64, 0x01, 0xc9, 0x32, - 0xdc, 0x96, 0xf5, 0x94, 0x0c, 0x69, 0xbc, 0x57, 0x50, 0x65, 0xbc, 0xd1, 0xd7, 0x2b, 0xa8, 0x0a, - 0x3e, 0xc4, 0xa3, 0x5d, 0x28, 0xc8, 0xd0, 0x12, 0x5f, 0x97, 0x55, 0x45, 0x5c, 0xd8, 0x0b, 0x11, - 0x17, 0xbd, 0xca, 0x52, 0x42, 0x4d, 0x84, 0x11, 0x7d, 0x5c, 0x2c, 0x01, 0xdd, 0x04, 0xb0, 0xda, - 0x8e, 0x3e, 0x35, 0x2b, 0xc4, 0xb3, 0x93, 0xb8, 0xff, 0xc5, 0x1a, 0x15, 0x7a, 0x05, 0x26, 0x83, - 0x4f, 0xd6, 0x6b, 0xe5, 0x45, 0x2b, 0xc9, 0x3b, 0x2b, 0x21, 0x81, 0x6b, 0x17, 0xfe, 0xcc, 0xb8, - 0x59, 0xaa, 0x4d, 0x8a, 0xb4, 0x6f, 0x45, 0x18, 0xac, 0x51, 0xa1, 0xef, 0x40, 0xfe, 0x48, 0x95, - 0xa2, 0xe2, 0x60, 0x52, 0x87, 0xc8, 0xb0, 0x80, 0x95, 0x8d, 0x7b, 0xf8, 0x85, 0x23, 0x69, 0xe6, - 0x5b, 0x50, 0xd8, 0x75, 0x1a, 0xd4, 0x17, 0x6d, 0xde, 0x53, 0x30, 0xcd, 0x12, 0x7d, 0x50, 0x74, - 0x24, 0xa1, 0xbb, 0x84, 0x78, 0xee, 0x27, 0x9e, 0xe5, 0xf9, 0xb2, 0xdb, 0xc9, 0xc5, 0x7e, 0xf2, - 0x1a, 0x07, 0x62, 0x89, 0xbb, 0xbd, 0xc8, 0x33, 0xfd, 0xcf, 0xdf, 0xaf, 0x4c, 0xbc, 0xfb, 0x7e, - 0x65, 0xe2, 0xbd, 0xf7, 0x55, 0xd6, 0xbf, 0x00, 0x80, 0xbd, 0xc3, 0x1f, 0x90, 0x86, 0x8c, 0x9f, - 0xa9, 0xa6, 0x64, 0xe1, 0x70, 0x56, 0x4c, 0xc9, 0x32, 0x7d, 0xd5, 0x9b, 0x86, 0xc3, 0x09, 0x4a, - 0xb4, 0x0a, 0x85, 0x68, 0xfe, 0xa5, 0x0e, 0x7a, 0x21, 0x74, 0x9c, 0x68, 0x48, 0x86, 0x63, 0x9a, - 0x44, 0x30, 0x9f, 0xbc, 0x34, 0x98, 0xd7, 0x20, 0xdb, 0x71, 0x6c, 0xd5, 0x13, 0x3f, 0x1b, 0x26, - 0xd3, 0x7b, 0xdb, 0xf5, 0x8b, 0x5e, 0xe5, 0x89, 0x51, 0x63, 0xe7, 0xa0, 0xdb, 0x26, 0xac, 0x7a, - 0x6f, 0xbb, 0x8e, 0x39, 0xf3, 0xb0, 0xc8, 0x32, 0x35, 0x66, 0x64, 0xb9, 0x09, 0xd0, 0x8c, 0x27, - 0x0b, 0xf2, 0xe2, 0x46, 0x1e, 0xa5, 0x4d, 0x14, 0x34, 0x2a, 0xc4, 0x60, 0xa1, 0xc1, 0xdb, 0x6f, - 0xd5, 0xe1, 0xb3, 0xc0, 0x6a, 0xc9, 0xb9, 0xe0, 0x78, 0xce, 0x7d, 0x4d, 0xa9, 0x59, 0xd8, 0xe8, - 0x17, 0x86, 0x07, 0xe5, 0x23, 0x1f, 0x16, 0x6c, 0xd5, 0x48, 0xc6, 0x4a, 0x0b, 0x63, 0x2b, 0xbd, - 0xca, 0x15, 0xd6, 0xfb, 0x05, 0xe1, 0x41, 0xd9, 0xe8, 0xfb, 0xb0, 0x14, 0x02, 0x07, 0xbb, 0x79, - 0x11, 0x79, 0xb3, 0xb5, 0xe5, 0xf3, 0x5e, 0x65, 0xa9, 0x3e, 0x92, 0x0a, 0x3f, 0x42, 0x02, 0xb2, - 0x61, 0xca, 0x95, 0x95, 0x6a, 0x51, 0x54, 0x17, 0x5f, 0x4f, 0xb7, 0x8a, 0xd8, 0xfb, 0xab, 0x7a, - 0x85, 0x1a, 0x75, 0xab, 0xaa, 0x38, 0x55, 0xb2, 0xd1, 0x03, 0x28, 0x5a, 0x9e, 0xe7, 0x07, 0x96, - 0x9c, 0x2f, 0xcc, 0x08, 0x55, 0xeb, 0x63, 0xab, 0x5a, 0x8f, 0x65, 0xf4, 0x55, 0xc4, 0x1a, 0x06, - 0xeb, 0xaa, 0xd0, 0x19, 0xcc, 0xf9, 0x67, 0x1e, 0xa1, 0x98, 0x1c, 0x11, 0x4a, 0xbc, 0x06, 0x61, - 0xe5, 0x92, 0xd0, 0xfe, 0x5c, 0x4a, 0xed, 0x09, 0xe6, 0xd8, 0xa5, 0x93, 0x70, 0x86, 0xfb, 0xb5, - 0xa0, 0x2a, 0x0f, 0x92, 0x9e, 0xe5, 0x3a, 0x3f, 0x24, 0x94, 0x95, 0x67, 0xe3, 0xd1, 0xed, 0x56, - 0x04, 0xc5, 0x1a, 0x05, 0xfa, 0x1a, 0x14, 0x1b, 0x6e, 0x87, 0x05, 0x44, 0xce, 0xd1, 0xe7, 0xc4, - 0x0d, 0x8a, 0xd6, 0xb7, 0x11, 0xa3, 0xb0, 0x4e, 0x87, 0x3a, 0x50, 0x6a, 0xe9, 0x29, 0xa3, 0xbc, - 0x20, 0x56, 0x77, 0x2b, 0xdd, 0xea, 0x06, 0x93, 0x5a, 0x5c, 0xc1, 0x24, 0x70, 0x38, 0xa9, 0x65, - 0xe9, 0x05, 0x28, 0x7e, 0xc2, 0xe2, 0x9e, 0x37, 0x07, 0xfd, 0xe7, 0x38, 0x56, 0x73, 0xf0, 0xe7, - 0x0c, 0xcc, 0x26, 0x77, 0xbf, 0x2f, 0x1d, 0xe6, 0x52, 0xa5, 0xc3, 0xb0, 0x0d, 0x35, 0x46, 0x8e, - 0xfe, 0xc3, 0xb0, 0x9e, 0x1d, 0x19, 0xd6, 0x55, 0xf4, 0x9c, 0x7c, 0x9c, 0xe8, 0x59, 0x05, 0xe0, - 0x75, 0x06, 0xf5, 0x5d, 0x97, 0x50, 0x11, 0x38, 0xf3, 0x6a, 0xc4, 0x1f, 0x41, 0xb1, 0x46, 0xc1, - 0xab, 0xe1, 0x43, 0xd7, 0x6f, 0x9c, 0x88, 0x2d, 0x08, 0x2f, 0xbd, 0x08, 0x99, 0x79, 0x59, 0x0d, - 0xd7, 0x06, 0xb0, 0x78, 0x08, 0x87, 0xd9, 0x85, 0xab, 0xfb, 0x16, 0x0d, 0x1c, 0xcb, 0x8d, 0x2f, - 0x98, 0x68, 0x37, 0xde, 0x1c, 0x68, 0x66, 0x9e, 0x1d, 0xf7, 0xa2, 0xc6, 0x9b, 0x1f, 0xc3, 0xe2, - 0x86, 0xc6, 0xfc, 0x9b, 0x01, 0xd7, 0x86, 0xea, 0xfe, 0x0c, 0x9a, 0xa9, 0x37, 0x93, 0xcd, 0xd4, - 0x8b, 0x29, 0x67, 0x9c, 0xc3, 0xac, 0x1d, 0xd1, 0x5a, 0x4d, 0x43, 0x6e, 0x9f, 0x17, 0xb1, 0xe6, - 0xaf, 0x0c, 0x98, 0x11, 0xbf, 0xc6, 0x99, 0x0f, 0x57, 0x20, 0x77, 0xe4, 0x87, 0x23, 0xaa, 0xbc, - 0x7c, 0x42, 0xda, 0xe2, 0x00, 0x2c, 0xe1, 0x8f, 0x31, 0x40, 0x7e, 0xc7, 0x80, 0xe4, 0x64, 0x16, - 0xbd, 0x2c, 0xfd, 0xd7, 0x88, 0x46, 0xa7, 0x63, 0xfa, 0xee, 0x4b, 0xa3, 0x5a, 0xc1, 0x2b, 0xa9, - 0xa6, 0x84, 0x4f, 0x43, 0x01, 0xfb, 0x7e, 0xb0, 0x6f, 0x05, 0xc7, 0x8c, 0x2f, 0xbc, 0xcd, 0x7f, - 0xa8, 0xbd, 0x11, 0x0b, 0x17, 0x18, 0x2c, 0xe1, 0xe6, 0x2f, 0x0d, 0xb8, 0x36, 0xf2, 0xd5, 0x84, - 0x87, 0x80, 0x46, 0xf4, 0xa5, 0x56, 0x14, 0x79, 0x61, 0x4c, 0x87, 0x35, 0x2a, 0xde, 0xc3, 0x25, - 0x9e, 0x5a, 0xfa, 0x7b, 0xb8, 0x84, 0x36, 0x9c, 0xa4, 0x35, 0xff, 0x95, 0x01, 0xf5, 0x74, 0xf2, - 0x3f, 0xf6, 0xd8, 0xeb, 0x7d, 0x0f, 0x37, 0xb3, 0xc9, 0x87, 0x9b, 0xe8, 0x95, 0x46, 0x7b, 0xb9, - 0xc8, 0x3e, 0xfa, 0xe5, 0x02, 0x3d, 0x1f, 0x3d, 0x86, 0xc8, 0xd0, 0xb5, 0x9c, 0x7c, 0x0c, 0xb9, - 0xe8, 0x55, 0x66, 0x94, 0xf0, 0xe4, 0xe3, 0xc8, 0xeb, 0x30, 0x6d, 0x93, 0xc0, 0x72, 0x5c, 0xd9, - 0x8f, 0xa5, 0x7e, 0x22, 0x90, 0xc2, 0xea, 0x92, 0xb5, 0x56, 0xe4, 0x36, 0xa9, 0x0f, 0x1c, 0x0a, - 0xe4, 0xd1, 0xb6, 0xe1, 0xdb, 0xb2, 0x9d, 0xc8, 0xc5, 0xd1, 0x76, 0xc3, 0xb7, 0x09, 0x16, 0x18, - 0xf3, 0x5d, 0x03, 0x8a, 0x52, 0xd2, 0x86, 0xd5, 0x61, 0x04, 0xad, 0x45, 0xab, 0x90, 0xc7, 0x7d, - 0x4d, 0x7f, 0xf5, 0xba, 0xe8, 0x55, 0x0a, 0x82, 0x4c, 0x74, 0x22, 0x43, 0x5e, 0x77, 0x32, 0x97, - 0xec, 0xd1, 0x93, 0x90, 0x13, 0xb7, 0x47, 0x6d, 0x66, 0x74, 0xd7, 0xc5, 0x05, 0xc3, 0x12, 0x67, - 0x7e, 0x9c, 0x81, 0x52, 0x62, 0x71, 0x29, 0x7a, 0x81, 0x68, 0x74, 0x99, 0x49, 0x31, 0x0e, 0x1f, - 0xfd, 0x30, 0xad, 0x72, 0xcf, 0xd4, 0xe3, 0xe4, 0x9e, 0xef, 0xc2, 0x54, 0x83, 0xef, 0x51, 0xf8, - 0x3f, 0x87, 0xb5, 0x71, 0x8e, 0x53, 0xec, 0x6e, 0xec, 0x8d, 0xe2, 0x93, 0x61, 0x25, 0x10, 0xdd, - 0x81, 0x05, 0x4a, 0x02, 0xda, 0x5d, 0x3f, 0x0a, 0x08, 0xd5, 0x9b, 0xf8, 0x5c, 0x5c, 0x71, 0xe3, - 0x7e, 0x02, 0x3c, 0xc8, 0x63, 0x1e, 0xc2, 0xcc, 0x5d, 0xeb, 0xd0, 0x8d, 0x1e, 0xbd, 0x30, 0x94, - 0x1c, 0xaf, 0xe1, 0x76, 0x6c, 0x22, 0xa3, 0x71, 0x18, 0xbd, 0xc2, 0x4b, 0xbb, 0xad, 0x23, 0x2f, - 0x7a, 0x95, 0x2b, 0x09, 0x80, 0x7c, 0xe5, 0xc1, 0x49, 0x11, 0xa6, 0x0b, 0x93, 0x9f, 0x61, 0xf7, - 0xf8, 0x3d, 0x28, 0xc4, 0xf5, 0xfd, 0xa7, 0xac, 0xd2, 0x7c, 0x13, 0xf2, 0xdc, 0xe3, 0xc3, 0xbe, - 0xf4, 0x92, 0x12, 0x27, 0x59, 0x38, 0x65, 0xd2, 0x14, 0x4e, 0x66, 0x0b, 0x4a, 0xf7, 0xda, 0xf6, - 0x63, 0x3e, 0x7b, 0x66, 0x52, 0x67, 0xad, 0x9b, 0x20, 0xff, 0x42, 0xc1, 0x13, 0x84, 0xcc, 0xdc, - 0x5a, 0x82, 0xd0, 0x13, 0xaf, 0x36, 0x95, 0xff, 0xa9, 0x01, 0x20, 0xc6, 0x5f, 0x9b, 0xa7, 0xc4, - 0x0b, 0x52, 0x3c, 0x8e, 0xdf, 0x83, 0x29, 0x5f, 0x7a, 0x93, 0x7c, 0xfa, 0x1c, 0x73, 0xc6, 0x1a, - 0x5d, 0x02, 0xe9, 0x4f, 0x58, 0x09, 0xab, 0xdd, 0xf8, 0xe0, 0xe1, 0xf2, 0xc4, 0x87, 0x0f, 0x97, - 0x27, 0x3e, 0x7a, 0xb8, 0x3c, 0xf1, 0xf6, 0xf9, 0xb2, 0xf1, 0xc1, 0xf9, 0xb2, 0xf1, 0xe1, 0xf9, - 0xb2, 0xf1, 0xd1, 0xf9, 0xb2, 0xf1, 0xf1, 0xf9, 0xb2, 0xf1, 0xee, 0x3f, 0x96, 0x27, 0x5e, 0xcf, - 0x9c, 0xae, 0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0x82, 0x62, 0x88, 0xff, 0xb8, 0x26, 0x00, 0x00, + // 2813 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3a, 0xcb, 0x6f, 0x24, 0x47, + 0xf9, 0xee, 0x19, 0x8f, 0x3d, 0xf3, 0x8d, 0xc7, 0x8f, 0x5a, 0xef, 0xef, 0x37, 0x6b, 0x84, 0xc7, + 0xe9, 0xa0, 0x68, 0x03, 0xc9, 0x38, 0x5e, 0x42, 0xb4, 0xd9, 0x90, 0x80, 0xc7, 0xb3, 0xde, 0x98, + 0xac, 0x63, 0xab, 0xbc, 0xbb, 0x40, 0x88, 0x50, 0xda, 0xdd, 0xe5, 0x71, 0xe3, 0x9e, 0xee, 0x49, + 0x55, 0x8f, 0x37, 0x03, 0x07, 0x72, 0x00, 0x01, 0x12, 0x44, 0xe1, 0x86, 0x38, 0xa0, 0x44, 0xf0, + 0x17, 0x70, 0x81, 0x3f, 0x00, 0x89, 0x1c, 0x23, 0x71, 0x89, 0x04, 0x1a, 0x25, 0xe6, 0xc0, 0x11, + 0x71, 0xf5, 0x05, 0x54, 0x8f, 0xee, 0xae, 0x9e, 0xc7, 0xba, 0x27, 0xbb, 0x44, 0xdc, 0xa6, 0xbf, + 0x77, 0x55, 0x7d, 0xf5, 0xbd, 0x6a, 0x60, 0xf7, 0xe4, 0x3a, 0xab, 0xbb, 0xc1, 0xfa, 0x49, 0xf7, + 0x90, 0x50, 0x9f, 0x84, 0x84, 0xad, 0x9f, 0x12, 0xdf, 0x09, 0xe8, 0xba, 0x42, 0x58, 0x1d, 0xb7, + 0x6d, 0xd9, 0xc7, 0xae, 0x4f, 0x68, 0x6f, 0xbd, 0x73, 0xd2, 0xe2, 0x00, 0xb6, 0xde, 0x26, 0xa1, + 0xb5, 0x7e, 0xba, 0xb1, 0xde, 0x22, 0x3e, 0xa1, 0x56, 0x48, 0x9c, 0x7a, 0x87, 0x06, 0x61, 0x80, + 0xbe, 0x20, 0xb9, 0xea, 0x3a, 0x57, 0xbd, 0x73, 0xd2, 0xe2, 0x00, 0x56, 0xe7, 0x5c, 0xf5, 0xd3, + 0x8d, 0x95, 0xa7, 0x5b, 0x6e, 0x78, 0xdc, 0x3d, 0xac, 0xdb, 0x41, 0x7b, 0xbd, 0x15, 0xb4, 0x82, + 0x75, 0xc1, 0x7c, 0xd8, 0x3d, 0x12, 0x5f, 0xe2, 0x43, 0xfc, 0x92, 0x42, 0x57, 0xc6, 0x9a, 0x42, + 0xbb, 0x7e, 0xe8, 0xb6, 0xc9, 0xa0, 0x15, 0x2b, 0xcf, 0x5d, 0xc4, 0xc0, 0xec, 0x63, 0xd2, 0xb6, + 0x06, 0xf9, 0xcc, 0x3f, 0xe7, 0xa1, 0xb8, 0xb9, 0xbf, 0x73, 0x8b, 0x06, 0xdd, 0x0e, 0x5a, 0x83, + 0x69, 0xdf, 0x6a, 0x93, 0xaa, 0xb1, 0x66, 0x5c, 0x2d, 0x35, 0xe6, 0x3e, 0xe8, 0xd7, 0xa6, 0xce, + 0xfa, 0xb5, 0xe9, 0x57, 0xad, 0x36, 0xc1, 0x02, 0x83, 0x3c, 0x28, 0x9e, 0x12, 0xca, 0xdc, 0xc0, + 0x67, 0xd5, 0xdc, 0x5a, 0xfe, 0x6a, 0xf9, 0xda, 0x4b, 0xf5, 0x2c, 0xeb, 0xaf, 0x0b, 0x05, 0xf7, + 0x24, 0xeb, 0x76, 0x40, 0x9b, 0x2e, 0xb3, 0x83, 0x53, 0x42, 0x7b, 0x8d, 0x45, 0xa5, 0xa5, 0xa8, + 0x90, 0x0c, 0xc7, 0x1a, 0xd0, 0x8f, 0x0c, 0x58, 0xec, 0x50, 0x72, 0x44, 0x28, 0x25, 0x8e, 0xc2, + 0x57, 0xf3, 0x6b, 0xc6, 0x23, 0x50, 0x5b, 0x55, 0x6a, 0x17, 0xf7, 0x07, 0xe4, 0xe3, 0x21, 0x8d, + 0xe8, 0xb7, 0x06, 0xac, 0x30, 0x42, 0x4f, 0x09, 0xdd, 0x74, 0x1c, 0x4a, 0x18, 0x6b, 0xf4, 0xb6, + 0x3c, 0x97, 0xf8, 0xe1, 0xd6, 0x4e, 0x13, 0xb3, 0xea, 0xb4, 0xd8, 0x87, 0xaf, 0x65, 0x33, 0xe8, + 0x60, 0x9c, 0x9c, 0x86, 0xa9, 0x2c, 0x5a, 0x19, 0x4b, 0xc2, 0xf0, 0x03, 0xcc, 0x30, 0x8f, 0x60, + 0x2e, 0x3a, 0xc8, 0xdb, 0x2e, 0x0b, 0xd1, 0x3d, 0x98, 0x69, 0xf1, 0x0f, 0x56, 0x35, 0x84, 0x81, + 0xf5, 0x6c, 0x06, 0x46, 0x32, 0x1a, 0xf3, 0xca, 0x9e, 0x19, 0xf1, 0xc9, 0xb0, 0x92, 0x66, 0xfe, + 0x6c, 0x1a, 0xca, 0x9b, 0xfb, 0x3b, 0x98, 0xb0, 0xa0, 0x4b, 0x6d, 0x92, 0xc1, 0x69, 0xae, 0xc3, + 0x1c, 0x73, 0xfd, 0x56, 0xd7, 0xb3, 0x28, 0x87, 0x56, 0x67, 0x04, 0xe5, 0xb2, 0xa2, 0x9c, 0x3b, + 0xd0, 0x70, 0x38, 0x45, 0x89, 0xae, 0x01, 0x70, 0x09, 0xac, 0x63, 0xd9, 0xc4, 0xa9, 0xe6, 0xd6, + 0x8c, 0xab, 0xc5, 0x06, 0x52, 0x7c, 0xf0, 0x6a, 0x8c, 0xc1, 0x1a, 0x15, 0x7a, 0x1c, 0x0a, 0xc2, + 0xd2, 0x6a, 0x51, 0xa8, 0xa9, 0x28, 0xf2, 0x82, 0x58, 0x06, 0x96, 0x38, 0xf4, 0x24, 0xcc, 0x2a, + 0x2f, 0xab, 0x96, 0x04, 0xd9, 0x82, 0x22, 0x9b, 0x8d, 0xdc, 0x20, 0xc2, 0xf3, 0xf5, 0x9d, 0xb8, + 0xbe, 0x23, 0xfc, 0x4e, 0x5b, 0xdf, 0x2b, 0xae, 0xef, 0x60, 0x81, 0x41, 0xb7, 0xa1, 0x70, 0x4a, + 0xe8, 0x21, 0xf7, 0x04, 0xee, 0x9a, 0x5f, 0xca, 0xb6, 0xd1, 0xf7, 0x38, 0x4b, 0xa3, 0xc4, 0x4d, + 0x13, 0x3f, 0xb1, 0x14, 0x82, 0xea, 0x00, 0xec, 0x38, 0xa0, 0xa1, 0x58, 0x5e, 0xb5, 0xb0, 0x96, + 0xbf, 0x5a, 0x6a, 0xcc, 0xf3, 0xf5, 0x1e, 0xc4, 0x50, 0xac, 0x51, 0x70, 0x7a, 0xdb, 0x0a, 0x49, + 0x2b, 0xa0, 0x2e, 0x61, 0xd5, 0xd9, 0x84, 0x7e, 0x2b, 0x86, 0x62, 0x8d, 0x02, 0x7d, 0x03, 0x10, + 0x0b, 0x03, 0x6a, 0xb5, 0x88, 0x5a, 0xea, 0xcb, 0x16, 0x3b, 0xae, 0x82, 0x58, 0xdd, 0x8a, 0x5a, + 0x1d, 0x3a, 0x18, 0xa2, 0xc0, 0x23, 0xb8, 0xcc, 0xdf, 0x1b, 0xb0, 0xa0, 0xf9, 0x82, 0xf0, 0xbb, + 0xeb, 0x30, 0xd7, 0xd2, 0x6e, 0x9d, 0xf2, 0x8b, 0xf8, 0xb4, 0xf5, 0x1b, 0x89, 0x53, 0x94, 0x88, + 0x40, 0x89, 0x2a, 0x49, 0x51, 0x74, 0xd9, 0xc8, 0xec, 0xb4, 0x91, 0x0d, 0x89, 0x26, 0x0d, 0xc8, + 0x70, 0x22, 0xd9, 0xfc, 0x87, 0x21, 0x1c, 0x38, 0x8a, 0x37, 0xe8, 0xaa, 0x16, 0xd3, 0x0c, 0xb1, + 0x7d, 0x73, 0x63, 0xe2, 0xd1, 0x05, 0x81, 0x20, 0xf7, 0x3f, 0x11, 0x08, 0x6e, 0x14, 0x7f, 0xf5, + 0x5e, 0x6d, 0xea, 0xed, 0xbf, 0xad, 0x4d, 0x99, 0xbf, 0x34, 0x60, 0x6e, 0xb3, 0xd3, 0xf1, 0x7a, + 0x7b, 0x9d, 0x50, 0x2c, 0xc0, 0x84, 0x19, 0x87, 0xf6, 0x70, 0xd7, 0x57, 0x0b, 0x05, 0x7e, 0xbf, + 0x9b, 0x02, 0x82, 0x15, 0x86, 0xdf, 0x9f, 0xa3, 0x80, 0xda, 0x44, 0x5d, 0xb7, 0xf8, 0xfe, 0x6c, + 0x73, 0x20, 0x96, 0x38, 0x7e, 0xc8, 0x47, 0x2e, 0xf1, 0x9c, 0x5d, 0xcb, 0xb7, 0x5a, 0x84, 0xaa, + 0xcb, 0x11, 0x6f, 0xfd, 0xb6, 0x86, 0xc3, 0x29, 0x4a, 0xf3, 0xdf, 0x39, 0x28, 0x6d, 0x05, 0xbe, + 0xe3, 0x86, 0xea, 0x72, 0x85, 0xbd, 0xce, 0x50, 0xf0, 0xb8, 0xd3, 0xeb, 0x10, 0x2c, 0x30, 0xe8, + 0x79, 0x98, 0x61, 0xa1, 0x15, 0x76, 0x99, 0xb0, 0xa7, 0xd4, 0x78, 0x2c, 0x0a, 0x4b, 0x07, 0x02, + 0x7a, 0xde, 0xaf, 0x2d, 0xc4, 0xe2, 0x24, 0x08, 0x2b, 0x06, 0xee, 0xe9, 0xc1, 0xa1, 0xd8, 0x28, + 0xe7, 0x96, 0x4c, 0x7b, 0x51, 0xfe, 0xc8, 0x27, 0x9e, 0xbe, 0x37, 0x44, 0x81, 0x47, 0x70, 0xa1, + 0x53, 0x40, 0x9e, 0xc5, 0xc2, 0x3b, 0xd4, 0xf2, 0x99, 0xd0, 0x75, 0xc7, 0x6d, 0x13, 0x75, 0xe1, + 0xbf, 0x98, 0xed, 0xc4, 0x39, 0x47, 0xa2, 0xf7, 0xf6, 0x90, 0x34, 0x3c, 0x42, 0x03, 0x7a, 0x02, + 0x66, 0x28, 0xb1, 0x58, 0xe0, 0x57, 0x0b, 0x62, 0xf9, 0x71, 0x54, 0xc6, 0x02, 0x8a, 0x15, 0x96, + 0x07, 0xb4, 0x36, 0x61, 0xcc, 0x6a, 0x45, 0xe1, 0x35, 0x0e, 0x68, 0xbb, 0x12, 0x8c, 0x23, 0xbc, + 0xd9, 0x86, 0xca, 0x16, 0x25, 0x56, 0x48, 0x26, 0xf1, 0x8a, 0x4f, 0x7f, 0xe0, 0x3f, 0xc9, 0x43, + 0xa5, 0x49, 0x3c, 0x92, 0xe8, 0xdb, 0x06, 0xd4, 0xa2, 0x96, 0x4d, 0xf6, 0x09, 0x75, 0x03, 0xe7, + 0x80, 0xd8, 0x81, 0xef, 0x30, 0xe1, 0x02, 0xf9, 0xc6, 0xff, 0xf1, 0xbd, 0xb9, 0x35, 0x84, 0xc5, + 0x23, 0x38, 0x90, 0x07, 0x95, 0x0e, 0x15, 0xbf, 0xc5, 0x7e, 0x49, 0x0f, 0x29, 0x5f, 0xfb, 0x72, + 0xb6, 0xe3, 0xd8, 0xd7, 0x59, 0x1b, 0x4b, 0x67, 0xfd, 0x5a, 0x25, 0x05, 0xc2, 0x69, 0xe1, 0xe8, + 0xeb, 0xb0, 0x18, 0xd0, 0xce, 0xb1, 0xe5, 0x37, 0x49, 0x87, 0xf8, 0x0e, 0xf1, 0x43, 0x26, 0x76, + 0xa1, 0xd8, 0x58, 0xe6, 0x75, 0xc4, 0xde, 0x00, 0x0e, 0x0f, 0x51, 0xa3, 0xd7, 0x60, 0xa9, 0x43, + 0x83, 0x8e, 0xd5, 0x12, 0x2e, 0xb5, 0x1f, 0x78, 0xae, 0xdd, 0x13, 0x2e, 0x54, 0x6a, 0x3c, 0x75, + 0xd6, 0xaf, 0x2d, 0xed, 0x0f, 0x22, 0xcf, 0xfb, 0xb5, 0x4b, 0x62, 0xeb, 0x38, 0x24, 0x41, 0xe2, + 0x61, 0x31, 0xda, 0x19, 0x16, 0xc6, 0x9d, 0xa1, 0xb9, 0x03, 0xc5, 0x66, 0x57, 0xf9, 0xf3, 0x8b, + 0x50, 0x74, 0xd4, 0x6f, 0xb5, 0xf3, 0xd1, 0xc5, 0x8a, 0x69, 0xce, 0xfb, 0xb5, 0x0a, 0x2f, 0x1d, + 0xeb, 0x11, 0x00, 0xc7, 0x2c, 0xe6, 0x13, 0x50, 0x14, 0x47, 0xce, 0xee, 0x6d, 0xa0, 0x45, 0xc8, + 0x63, 0xeb, 0xbe, 0x90, 0x32, 0x87, 0xf9, 0x4f, 0x2d, 0x02, 0xed, 0x01, 0xdc, 0x22, 0x61, 0x74, + 0xf0, 0x9b, 0xb0, 0x10, 0x85, 0xe1, 0x74, 0x76, 0xf8, 0x7f, 0xa5, 0x7b, 0x01, 0xa7, 0xd1, 0x78, + 0x90, 0xde, 0x7c, 0x1d, 0x4a, 0x22, 0x83, 0xf0, 0xf4, 0x9b, 0xa4, 0x7a, 0xe3, 0x01, 0xa9, 0x3e, + 0xca, 0xdf, 0xb9, 0x71, 0xf9, 0x5b, 0x33, 0xd7, 0x83, 0x8a, 0xe4, 0x8d, 0x8a, 0x9b, 0x4c, 0x1a, + 0x9e, 0x82, 0x62, 0x64, 0xa6, 0xd2, 0x12, 0x17, 0xb5, 0x91, 0x20, 0x1c, 0x53, 0x68, 0xda, 0x8e, + 0x21, 0x95, 0x0d, 0xb3, 0x29, 0xd3, 0x2a, 0x97, 0xdc, 0x83, 0x2b, 0x17, 0x4d, 0xd3, 0x0f, 0xa1, + 0x3a, 0xae, 0x12, 0x7e, 0x88, 0x7c, 0x9d, 0xdd, 0x14, 0xf3, 0x1d, 0x03, 0x16, 0x75, 0x49, 0xd9, + 0x8f, 0x2f, 0xbb, 0x92, 0x8b, 0x2b, 0x35, 0x6d, 0x47, 0x7e, 0x63, 0xc0, 0x72, 0x6a, 0x69, 0x13, + 0x9d, 0xf8, 0x04, 0x46, 0xe9, 0xce, 0x91, 0x9f, 0xc0, 0x39, 0xfe, 0x92, 0x83, 0xca, 0x6d, 0xeb, + 0x90, 0x78, 0x07, 0xc4, 0x23, 0x76, 0x18, 0x50, 0xf4, 0x03, 0x28, 0xb7, 0xad, 0xd0, 0x3e, 0x16, + 0xd0, 0xa8, 0xaa, 0x6f, 0x66, 0x0b, 0x76, 0x29, 0x49, 0xf5, 0xdd, 0x44, 0xcc, 0x4d, 0x3f, 0xa4, + 0xbd, 0xc6, 0x25, 0x65, 0x52, 0x59, 0xc3, 0x60, 0x5d, 0x9b, 0x68, 0xc5, 0xc4, 0xf7, 0xcd, 0xb7, + 0x3a, 0xbc, 0xe4, 0x98, 0xbc, 0x03, 0x4c, 0x99, 0x80, 0xc9, 0x9b, 0x5d, 0x97, 0x92, 0x36, 0xf1, + 0xc3, 0xa4, 0x15, 0xdb, 0x1d, 0x90, 0x8f, 0x87, 0x34, 0xae, 0xbc, 0x04, 0x8b, 0x83, 0xc6, 0xf3, + 0xf8, 0x73, 0x42, 0x7a, 0xf2, 0xbc, 0x30, 0xff, 0x89, 0x96, 0xa1, 0x70, 0x6a, 0x79, 0x5d, 0x75, + 0x1b, 0xb1, 0xfc, 0xb8, 0x91, 0xbb, 0x6e, 0x98, 0xbf, 0x33, 0xa0, 0x3a, 0xce, 0x10, 0xf4, 0x79, + 0x4d, 0x50, 0xa3, 0xac, 0xac, 0xca, 0xbf, 0x42, 0x7a, 0x52, 0xea, 0x4d, 0x28, 0x06, 0x1d, 0x5e, + 0x0f, 0x04, 0x54, 0x9d, 0xfa, 0x93, 0xd1, 0x49, 0xee, 0x29, 0xf8, 0x79, 0xbf, 0x76, 0x39, 0x25, + 0x3e, 0x42, 0xe0, 0x98, 0x95, 0x47, 0x6a, 0x61, 0x0f, 0xcf, 0x1e, 0x71, 0xa4, 0xbe, 0x27, 0x20, + 0x58, 0x61, 0xcc, 0x3f, 0x1a, 0x30, 0x2d, 0x8a, 0xe9, 0xd7, 0xa1, 0xc8, 0xf7, 0xcf, 0xb1, 0x42, + 0x4b, 0xd8, 0x95, 0xb9, 0x8d, 0xe3, 0xdc, 0xbb, 0x24, 0xb4, 0x12, 0x6f, 0x8b, 0x20, 0x38, 0x96, + 0x88, 0x30, 0x14, 0xdc, 0x90, 0xb4, 0xa3, 0x83, 0x7c, 0x7a, 0xac, 0x68, 0x35, 0x44, 0xa8, 0x63, + 0xeb, 0xfe, 0xcd, 0xb7, 0x42, 0xe2, 0xf3, 0xc3, 0x48, 0xae, 0xc6, 0x0e, 0x97, 0x81, 0xa5, 0x28, + 0xf3, 0x5f, 0x06, 0xc4, 0xaa, 0xb8, 0xf3, 0x33, 0xe2, 0x1d, 0xdd, 0x76, 0xfd, 0x13, 0xb5, 0xad, + 0xb1, 0x39, 0x07, 0x0a, 0x8e, 0x63, 0x8a, 0x51, 0xe9, 0x21, 0x37, 0x59, 0x7a, 0xe0, 0x0a, 0xed, + 0xc0, 0x0f, 0x5d, 0xbf, 0x3b, 0x74, 0xdb, 0xb6, 0x14, 0x1c, 0xc7, 0x14, 0xbc, 0x10, 0xa1, 0xa4, + 0x6d, 0xb9, 0xbe, 0xeb, 0xb7, 0xf8, 0x22, 0xb6, 0x82, 0xae, 0x1f, 0x8a, 0x8c, 0xac, 0x0a, 0x11, + 0x3c, 0x84, 0xc5, 0x23, 0x38, 0xcc, 0x3f, 0x4c, 0x43, 0x99, 0xaf, 0x39, 0xca, 0x73, 0x2f, 0x40, + 0xc5, 0xd3, 0xbd, 0x40, 0xad, 0xfd, 0xb2, 0x32, 0x25, 0x7d, 0xaf, 0x71, 0x9a, 0x96, 0x33, 0x8b, + 0xfa, 0x29, 0x66, 0xce, 0xa5, 0x99, 0xb7, 0x75, 0x24, 0x4e, 0xd3, 0xf2, 0xe8, 0x75, 0x9f, 0xdf, + 0x0f, 0x55, 0x99, 0xc4, 0x47, 0xf4, 0x4d, 0x0e, 0xc4, 0x12, 0x87, 0x76, 0xe1, 0x92, 0xe5, 0x79, + 0xc1, 0x7d, 0x01, 0x6c, 0x04, 0xc1, 0x49, 0xdb, 0xa2, 0x27, 0x4c, 0x34, 0xc2, 0xc5, 0xc6, 0xe7, + 0x14, 0xcb, 0xa5, 0xcd, 0x61, 0x12, 0x3c, 0x8a, 0x6f, 0xd4, 0xb1, 0x4d, 0x4f, 0x78, 0x6c, 0xc7, + 0xb0, 0x3c, 0x00, 0x12, 0xb7, 0x5c, 0x75, 0xa5, 0xcf, 0x2a, 0x39, 0xcb, 0x78, 0x04, 0xcd, 0xf9, + 0x18, 0x38, 0x1e, 0x29, 0x11, 0xdd, 0x80, 0x79, 0xee, 0xc9, 0x41, 0x37, 0x8c, 0xea, 0xce, 0x82, + 0x38, 0x6e, 0x74, 0xd6, 0xaf, 0xcd, 0xdf, 0x49, 0x61, 0xf0, 0x00, 0x25, 0xdf, 0x5c, 0xcf, 0x6d, + 0xbb, 0x61, 0x75, 0x56, 0xb0, 0xc4, 0x9b, 0x7b, 0x9b, 0x03, 0xb1, 0xc4, 0xa5, 0x3c, 0xb0, 0x78, + 0x91, 0x07, 0x9a, 0xbf, 0xce, 0x03, 0x92, 0x85, 0xb2, 0x23, 0xeb, 0x29, 0x19, 0xd2, 0x78, 0x35, + 0xaf, 0x0a, 0x6d, 0x63, 0xa0, 0x9a, 0x57, 0x35, 0x76, 0x84, 0x47, 0xbb, 0x50, 0x92, 0xa1, 0x25, + 0xb9, 0x2e, 0xeb, 0x8a, 0xb8, 0xb4, 0x17, 0x21, 0xce, 0xfb, 0xb5, 0x95, 0x94, 0x9a, 0x18, 0x23, + 0x3a, 0xad, 0x44, 0x02, 0xba, 0x06, 0x60, 0x75, 0x5c, 0x7d, 0xd6, 0x56, 0x4a, 0x26, 0x2e, 0x49, + 0xd7, 0x8c, 0x35, 0x2a, 0xf4, 0x32, 0x4c, 0x87, 0x9f, 0xae, 0x1b, 0x2a, 0x8a, 0x66, 0x8f, 0xf7, + 0x3e, 0x42, 0x02, 0xd7, 0x2e, 0xfc, 0x99, 0x71, 0xb3, 0x54, 0x23, 0x13, 0x6b, 0xdf, 0x8e, 0x31, + 0x58, 0xa3, 0x42, 0xdf, 0x82, 0xe2, 0x91, 0x2a, 0x45, 0xc5, 0xc1, 0x64, 0x0e, 0x91, 0x51, 0x01, + 0x2b, 0xdb, 0xfd, 0xe8, 0x0b, 0xc7, 0xd2, 0xcc, 0x37, 0xa1, 0xb4, 0xeb, 0xda, 0x34, 0x10, 0x8d, + 0xd8, 0x93, 0x30, 0xcb, 0x52, 0x9d, 0x4a, 0x7c, 0x24, 0x91, 0xbb, 0x44, 0x78, 0xee, 0x27, 0xbe, + 0xe5, 0x07, 0xb2, 0x1f, 0x29, 0x24, 0x7e, 0xf2, 0x2a, 0x07, 0x62, 0x89, 0xbb, 0xb1, 0xcc, 0x33, + 0xfd, 0x4f, 0xdf, 0xaf, 0x4d, 0xbd, 0xfb, 0x7e, 0x6d, 0xea, 0xbd, 0xf7, 0x55, 0xd6, 0x3f, 0x07, + 0x80, 0xbd, 0xc3, 0xef, 0x11, 0x5b, 0xc6, 0xcf, 0x4c, 0xb3, 0xb5, 0x68, 0xa4, 0x2b, 0x66, 0x6b, + 0xb9, 0x81, 0xea, 0x4d, 0xc3, 0xe1, 0x14, 0x25, 0x5a, 0x87, 0x52, 0x3c, 0x35, 0x53, 0x07, 0xbd, + 0x14, 0x39, 0x4e, 0x3c, 0x5a, 0xc3, 0x09, 0x4d, 0x2a, 0x98, 0x4f, 0x5f, 0x18, 0xcc, 0x1b, 0x90, + 0xef, 0xba, 0x8e, 0xea, 0x5a, 0x9f, 0x89, 0x92, 0xe9, 0xdd, 0x9d, 0xe6, 0x79, 0xbf, 0xf6, 0xd8, + 0xb8, 0x61, 0x35, 0xef, 0xf8, 0x59, 0xfd, 0xee, 0x4e, 0x13, 0x73, 0xe6, 0x51, 0x91, 0x65, 0x66, + 0xc2, 0xc8, 0x72, 0x0d, 0xa0, 0x95, 0xf4, 0xfe, 0xf2, 0xe2, 0xc6, 0x1e, 0xa5, 0xf5, 0xfc, 0x1a, + 0x15, 0x62, 0xb0, 0x64, 0xf3, 0x06, 0x59, 0xf5, 0xe0, 0x2c, 0xb4, 0xda, 0x72, 0x9a, 0x38, 0x99, + 0x73, 0x5f, 0x51, 0x6a, 0x96, 0xb6, 0x06, 0x85, 0xe1, 0x61, 0xf9, 0x28, 0x80, 0x25, 0x47, 0xb5, + 0x7a, 0x89, 0xd2, 0xd2, 0xc4, 0x4a, 0x2f, 0x73, 0x85, 0xcd, 0x41, 0x41, 0x78, 0x58, 0x36, 0xfa, + 0x2e, 0xac, 0x44, 0xc0, 0xe1, 0x7e, 0x5b, 0x44, 0xde, 0x7c, 0x63, 0xf5, 0xac, 0x5f, 0x5b, 0x69, + 0x8e, 0xa5, 0xc2, 0x0f, 0x90, 0x80, 0x1c, 0x98, 0xf1, 0x64, 0xa5, 0x5a, 0x16, 0xd5, 0xc5, 0x57, + 0xb3, 0xad, 0x22, 0xf1, 0xfe, 0xba, 0x5e, 0xa1, 0xc6, 0x73, 0x0f, 0x55, 0x9c, 0x2a, 0xd9, 0xe8, + 0x2d, 0x28, 0x5b, 0xbe, 0x1f, 0x84, 0x96, 0x9c, 0x00, 0xcc, 0x09, 0x55, 0x9b, 0x13, 0xab, 0xda, + 0x4c, 0x64, 0x0c, 0x54, 0xc4, 0x1a, 0x06, 0xeb, 0xaa, 0xd0, 0x7d, 0x58, 0x08, 0xee, 0xfb, 0x84, + 0x62, 0x72, 0x44, 0x28, 0xf1, 0x6d, 0xc2, 0xaa, 0x15, 0xa1, 0xfd, 0xd9, 0x8c, 0xda, 0x53, 0xcc, + 0x89, 0x4b, 0xa7, 0xe1, 0x0c, 0x0f, 0x6a, 0x41, 0x75, 0x1e, 0x24, 0x7d, 0xcb, 0x73, 0xbf, 0x4f, + 0x28, 0xab, 0xce, 0x27, 0x03, 0xdf, 0xed, 0x18, 0x8a, 0x35, 0x0a, 0xf4, 0x15, 0x28, 0xdb, 0x5e, + 0x97, 0x85, 0x44, 0x4e, 0xdf, 0x17, 0xc4, 0x0d, 0x8a, 0xd7, 0xb7, 0x95, 0xa0, 0xb0, 0x4e, 0x87, + 0xba, 0x50, 0x69, 0xeb, 0x29, 0xa3, 0xba, 0x24, 0x56, 0x77, 0x3d, 0xdb, 0xea, 0x86, 0x93, 0x5a, + 0x52, 0xc1, 0xa4, 0x70, 0x38, 0xad, 0x65, 0xe5, 0x79, 0x28, 0x7f, 0xca, 0xe2, 0x9e, 0x37, 0x07, + 0x83, 0xe7, 0x38, 0x51, 0x73, 0xf0, 0xa7, 0x1c, 0xcc, 0xa7, 0x77, 0x7f, 0x20, 0x1d, 0x16, 0x32, + 0xa5, 0xc3, 0xa8, 0x0d, 0x35, 0xc6, 0x3e, 0x18, 0x44, 0x61, 0x3d, 0x3f, 0x36, 0xac, 0xab, 0xe8, + 0x39, 0xfd, 0x30, 0xd1, 0xb3, 0x0e, 0xc0, 0xeb, 0x0c, 0x1a, 0x78, 0x1e, 0xa1, 0x22, 0x70, 0x16, + 0xd5, 0xc3, 0x40, 0x0c, 0xc5, 0x1a, 0x05, 0xaf, 0x86, 0x0f, 0xbd, 0xc0, 0x3e, 0x11, 0x5b, 0x10, + 0x5d, 0x7a, 0x11, 0x32, 0x8b, 0xb2, 0x1a, 0x6e, 0x0c, 0x61, 0xf1, 0x08, 0x0e, 0xb3, 0x07, 0x97, + 0xf7, 0x2d, 0x1a, 0xba, 0x96, 0x97, 0x5c, 0x30, 0xd1, 0x6e, 0xbc, 0x31, 0xd4, 0xcc, 0x3c, 0x33, + 0xe9, 0x45, 0x4d, 0x36, 0x3f, 0x81, 0x25, 0x0d, 0x8d, 0xf9, 0x57, 0x03, 0xae, 0x8c, 0xd4, 0xfd, + 0x19, 0x34, 0x53, 0x6f, 0xa4, 0x9b, 0xa9, 0x17, 0x32, 0x4e, 0x21, 0x47, 0x59, 0x3b, 0xa6, 0xb5, + 0x9a, 0x85, 0xc2, 0x3e, 0x2f, 0x62, 0xcd, 0x5f, 0x18, 0x30, 0x27, 0x7e, 0x4d, 0x32, 0xc1, 0xad, + 0xa5, 0xe7, 0xfa, 0xa5, 0x47, 0x38, 0xd3, 0x7f, 0xc7, 0x80, 0xf4, 0xec, 0x14, 0xbd, 0x24, 0xfd, + 0xd7, 0x88, 0x87, 0x9b, 0x13, 0xfa, 0xee, 0x8b, 0xe3, 0x5a, 0xc1, 0x4b, 0x99, 0xa6, 0x84, 0x4f, + 0x41, 0x09, 0x07, 0x41, 0xb8, 0x6f, 0x85, 0xc7, 0x8c, 0x2f, 0xbc, 0xc3, 0x7f, 0xa8, 0xbd, 0x11, + 0x0b, 0x17, 0x18, 0x2c, 0xe1, 0xe6, 0xcf, 0x0d, 0xb8, 0x32, 0xf6, 0xad, 0x85, 0x87, 0x00, 0x3b, + 0xfe, 0x52, 0x2b, 0x8a, 0xbd, 0x30, 0xa1, 0xc3, 0x1a, 0x15, 0xef, 0xe1, 0x52, 0x0f, 0x34, 0x83, + 0x3d, 0x5c, 0x4a, 0x1b, 0x4e, 0xd3, 0x9a, 0xff, 0xcc, 0x81, 0x7a, 0xdc, 0xf8, 0x2f, 0x7b, 0xec, + 0x13, 0x03, 0x4f, 0x2b, 0xf3, 0xe9, 0xa7, 0x95, 0xf8, 0x1d, 0x45, 0x7b, 0x5b, 0xc8, 0x3f, 0xf8, + 0x6d, 0x01, 0x3d, 0x17, 0x3f, 0x57, 0xc8, 0xd0, 0xb5, 0x9a, 0x7e, 0xae, 0x38, 0xef, 0xd7, 0xe6, + 0x94, 0xf0, 0xf4, 0xf3, 0xc5, 0x6b, 0x30, 0xeb, 0x90, 0xd0, 0x72, 0x3d, 0xd9, 0x8f, 0x65, 0x1e, + 0xe2, 0x4b, 0x61, 0x4d, 0xc9, 0xda, 0x28, 0x73, 0x9b, 0xd4, 0x07, 0x8e, 0x04, 0xf2, 0x68, 0x6b, + 0x07, 0x8e, 0x6c, 0x27, 0x0a, 0x49, 0xb4, 0xdd, 0x0a, 0x1c, 0x82, 0x05, 0xc6, 0x7c, 0xd7, 0x80, + 0xb2, 0x94, 0xb4, 0x65, 0x75, 0x19, 0x41, 0x1b, 0xf1, 0x2a, 0xe4, 0x71, 0x5f, 0xd1, 0xdf, 0xa5, + 0xce, 0xfb, 0xb5, 0x92, 0x20, 0x13, 0x9d, 0xc8, 0x88, 0xf7, 0x97, 0xdc, 0x05, 0x7b, 0xf4, 0x38, + 0x14, 0xc4, 0xed, 0x51, 0x9b, 0x99, 0x3c, 0xb0, 0x71, 0x20, 0x96, 0x38, 0xf3, 0xe3, 0x1c, 0x54, + 0x52, 0x8b, 0xcb, 0xd0, 0x0b, 0xc4, 0xa3, 0xcb, 0x5c, 0x86, 0x71, 0xf8, 0xf8, 0xe7, 0x6c, 0x95, + 0x7b, 0x66, 0x1e, 0x26, 0xf7, 0x7c, 0x1b, 0x66, 0x6c, 0xbe, 0x47, 0xd1, 0xbf, 0x23, 0x36, 0x26, + 0x39, 0x4e, 0xb1, 0xbb, 0x89, 0x37, 0x8a, 0x4f, 0x86, 0x95, 0x40, 0x74, 0x0b, 0x96, 0x28, 0x09, + 0x69, 0x6f, 0xf3, 0x28, 0x24, 0x54, 0x6f, 0xe2, 0x0b, 0x49, 0xc5, 0x8d, 0x07, 0x09, 0xf0, 0x30, + 0x8f, 0x79, 0x08, 0x73, 0x77, 0xac, 0x43, 0x2f, 0x7e, 0x96, 0xc2, 0x50, 0x71, 0x7d, 0xdb, 0xeb, + 0x3a, 0x44, 0x46, 0xe3, 0x28, 0x7a, 0x45, 0x97, 0x76, 0x47, 0x47, 0x9e, 0xf7, 0x6b, 0x97, 0x52, + 0x00, 0xf9, 0x0e, 0x83, 0xd3, 0x22, 0x4c, 0x0f, 0xa6, 0x3f, 0xc3, 0xee, 0xf1, 0x3b, 0x50, 0x4a, + 0xea, 0xfb, 0x47, 0xac, 0xd2, 0x7c, 0x03, 0x8a, 0xdc, 0xe3, 0xa3, 0xbe, 0xf4, 0x82, 0x12, 0x27, + 0x5d, 0x38, 0xe5, 0xb2, 0x14, 0x4e, 0x66, 0x1b, 0x2a, 0x77, 0x3b, 0xce, 0x43, 0x3e, 0x4c, 0xe6, + 0x32, 0x67, 0xad, 0x6b, 0x20, 0xff, 0x78, 0xc1, 0x13, 0x84, 0xcc, 0xdc, 0x5a, 0x82, 0xd0, 0x13, + 0xaf, 0x36, 0x95, 0xff, 0xb1, 0x01, 0x20, 0xc6, 0x5f, 0x37, 0x4f, 0x89, 0x1f, 0x66, 0x78, 0xbe, + 0xbe, 0x0b, 0x33, 0x81, 0xf4, 0x26, 0xf9, 0x38, 0x39, 0xe1, 0x8c, 0x35, 0xbe, 0x04, 0xd2, 0x9f, + 0xb0, 0x12, 0xd6, 0xb8, 0xfa, 0xc1, 0x27, 0xab, 0x53, 0x1f, 0x7e, 0xb2, 0x3a, 0xf5, 0xd1, 0x27, + 0xab, 0x53, 0x6f, 0x9f, 0xad, 0x1a, 0x1f, 0x9c, 0xad, 0x1a, 0x1f, 0x9e, 0xad, 0x1a, 0x1f, 0x9d, + 0xad, 0x1a, 0x1f, 0x9f, 0xad, 0x1a, 0xef, 0xfe, 0x7d, 0x75, 0xea, 0xb5, 0xdc, 0xe9, 0xc6, 0x7f, + 0x02, 0x00, 0x00, 0xff, 0xff, 0xf8, 0xee, 0x35, 0x7b, 0xee, 0x26, 0x00, 0x00, } func (m *APIGroup) Marshal() (dAtA []byte, err error) { @@ -1788,6 +1787,51 @@ func (m *APIVersions) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ApplyOptions) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ApplyOptions) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ApplyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.FieldManager) + copy(dAtA[i:], m.FieldManager) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldManager))) + i-- + dAtA[i] = 0x1a + i-- + if m.Force { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + if len(m.DryRun) > 0 { + for iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.DryRun[iNdEx]) + copy(dAtA[i:], m.DryRun[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func (m *Condition) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1973,45 +2017,6 @@ func (m *Duration) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *ExportOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ExportOptions) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ExportOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i-- - if m.Exact { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - i-- - if m.Export { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - return len(dAtA) - i, nil -} - func (m *FieldsV1) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3585,6 +3590,24 @@ func (m *APIVersions) Size() (n int) { return n } +func (m *ApplyOptions) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.DryRun) > 0 { + for _, s := range m.DryRun { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 2 + l = len(m.FieldManager) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *Condition) Size() (n int) { if m == nil { return 0 @@ -3661,17 +3684,6 @@ func (m *Duration) Size() (n int) { return n } -func (m *ExportOptions) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += 2 - n += 2 - return n -} - func (m *FieldsV1) Size() (n int) { if m == nil { return 0 @@ -4317,6 +4329,18 @@ func (this *APIResourceList) String() string { }, "") return s } +func (this *ApplyOptions) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ApplyOptions{`, + `DryRun:` + fmt.Sprintf("%v", this.DryRun) + `,`, + `Force:` + fmt.Sprintf("%v", this.Force) + `,`, + `FieldManager:` + fmt.Sprintf("%v", this.FieldManager) + `,`, + `}`, + }, "") + return s +} func (this *Condition) String() string { if this == nil { return "nil" @@ -4367,17 +4391,6 @@ func (this *Duration) String() string { }, "") return s } -func (this *ExportOptions) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ExportOptions{`, - `Export:` + fmt.Sprintf("%v", this.Export) + `,`, - `Exact:` + fmt.Sprintf("%v", this.Exact) + `,`, - `}`, - }, "") - return s -} func (this *GetOptions) String() string { if this == nil { return "nil" @@ -4925,10 +4938,7 @@ func (m *APIGroup) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5012,10 +5022,7 @@ func (m *APIGroupList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5377,10 +5384,7 @@ func (m *APIResource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5496,10 +5500,7 @@ func (m *APIResourceList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5615,10 +5616,141 @@ func (m *APIVersions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) < 0 { + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ApplyOptions) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ApplyOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ApplyOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DryRun", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Force", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Force = bool(v != 0) + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldManager", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FieldManager = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5848,10 +5980,7 @@ func (m *Condition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5965,10 +6094,7 @@ func (m *CreateOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6160,10 +6286,7 @@ func (m *DeleteOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6232,103 +6355,7 @@ func (m *Duration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ExportOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ExportOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ExportOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Export", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Export = bool(v != 0) - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Exact", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Exact = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6412,10 +6439,7 @@ func (m *FieldsV1) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6497,10 +6521,7 @@ func (m *GetOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6614,10 +6635,7 @@ func (m *GroupKind) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6731,10 +6749,7 @@ func (m *GroupResource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6848,10 +6863,7 @@ func (m *GroupVersion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6965,10 +6977,7 @@ func (m *GroupVersionForDiscovery) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7114,10 +7123,7 @@ func (m *GroupVersionKind) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7263,10 +7269,7 @@ func (m *GroupVersionResource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7426,7 +7429,7 @@ func (m *LabelSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7477,10 +7480,7 @@ func (m *LabelSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7626,10 +7626,7 @@ func (m *LabelSelectorRequirement) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7746,10 +7743,7 @@ func (m *List) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7915,10 +7909,7 @@ func (m *ListMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8207,10 +8198,7 @@ func (m *ListOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8460,10 +8448,7 @@ func (m *ManagedFieldsEntry) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8923,7 +8908,7 @@ func (m *ObjectMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -9050,7 +9035,7 @@ func (m *ObjectMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -9199,10 +9184,7 @@ func (m *ObjectMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9422,10 +9404,7 @@ func (m *OwnerReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9508,10 +9487,7 @@ func (m *PartialObjectMetadata) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9628,10 +9604,7 @@ func (m *PartialObjectMetadataList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9681,10 +9654,7 @@ func (m *Patch) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9819,10 +9789,7 @@ func (m *PatchOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9938,10 +9905,7 @@ func (m *Preconditions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10023,10 +9987,7 @@ func (m *RootPaths) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10140,10 +10101,7 @@ func (m *ServerAddressByClientCIDR) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10377,10 +10335,7 @@ func (m *Status) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10526,10 +10481,7 @@ func (m *StatusCause) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10760,10 +10712,7 @@ func (m *StatusDetails) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10845,10 +10794,7 @@ func (m *TableOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10936,10 +10882,7 @@ func (m *Timestamp) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11053,10 +10996,7 @@ func (m *TypeMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11170,10 +11110,7 @@ func (m *UpdateOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11255,10 +11192,7 @@ func (m *Verbs) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11373,10 +11307,7 @@ func (m *WatchEvent) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto index fd24483c0e..4f41504f3f 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto @@ -134,6 +134,31 @@ message APIVersions { repeated ServerAddressByClientCIDR serverAddressByClientCIDRs = 2; } +// ApplyOptions may be provided when applying an API object. +// FieldManager is required for apply requests. +// ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation +// that speaks specifically to how the options fields relate to apply. +message ApplyOptions { + // When present, indicates that modifications should not be + // persisted. An invalid or unrecognized dryRun directive will + // result in an error response and no further processing of the + // request. Valid values are: + // - All: all dry run stages will be processed + // +optional + repeated string dryRun = 1; + + // Force is going to "force" Apply requests. It means user will + // re-acquire conflicting fields owned by other people. + optional bool force = 2; + + // fieldManager is a name associated with the actor or entity + // that is making these changes. The value must be less than or + // 128 characters long, and only contain printable characters, + // as defined by https://golang.org/pkg/unicode/#IsPrint. This + // field is required. + optional string fieldManager = 3; +} + // Condition contains details for one aspect of the current state of this API Resource. // --- // This struct is intended for direct use as an array at the field path .status.conditions. For example, @@ -268,18 +293,6 @@ message Duration { optional int64 duration = 1; } -// ExportOptions is the query options to the standard REST get call. -// Deprecated. Planned for removal in 1.18. -message ExportOptions { - // Should this value be exported. Export strips fields that a user can not specify. - // Deprecated. Planned for removal in 1.18. - optional bool export = 1; - - // Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. - // Deprecated. Planned for removal in 1.18. - optional bool exact = 2; -} - // FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format. // // Each key is either a '.' representing the field itself, and will always map to an empty set, diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/register.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/register.go index c1a077178b..1abdd626de 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/register.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/register.go @@ -55,7 +55,6 @@ var ParameterCodec = runtime.NewParameterCodec(scheme) var optionsTypes = []runtime.Object{ &ListOptions{}, - &ExportOptions{}, &GetOptions{}, &DeleteOptions{}, &CreateOptions{}, diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go index d84878d7c2..79e2ad48a0 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go @@ -99,10 +99,16 @@ type ListMeta struct { RemainingItemCount *int64 `json:"remainingItemCount,omitempty" protobuf:"bytes,4,opt,name=remainingItemCount"` } +// Field path constants that are specific to the internal API +// representation. +const ( + ObjectNameField = "metadata.name" +) + // These are internal finalizer values for Kubernetes-like APIs, must be qualified name unless defined here const ( - FinalizerOrphanDependents string = "orphan" - FinalizerDeleteDependents string = "foregroundDeletion" + FinalizerOrphanDependents = "orphan" + FinalizerDeleteDependents = "foregroundDeletion" ) // ObjectMeta is metadata that all persisted resources must have, which includes all objects @@ -283,15 +289,15 @@ type ObjectMeta struct { const ( // NamespaceDefault means the object is in the default namespace which is applied when not specified by clients - NamespaceDefault string = "default" + NamespaceDefault = "default" // NamespaceAll is the default argument to specify on a context when you want to list or filter resources across all namespaces - NamespaceAll string = "" + NamespaceAll = "" // NamespaceNone is the argument for a context when there is no namespace. - NamespaceNone string = "" + NamespaceNone = "" // NamespaceSystem is the system namespace where we place system components. - NamespaceSystem string = "kube-system" + NamespaceSystem = "kube-system" // NamespacePublic is the namespace where we place public info (ConfigMaps) - NamespacePublic string = "kube-public" + NamespacePublic = "kube-public" ) // OwnerReference contains enough information to let you identify an owning @@ -433,21 +439,6 @@ const ( // +k8s:conversion-gen:explicit-from=net/url.Values // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// ExportOptions is the query options to the standard REST get call. -// Deprecated. Planned for removal in 1.18. -type ExportOptions struct { - TypeMeta `json:",inline"` - // Should this value be exported. Export strips fields that a user can not specify. - // Deprecated. Planned for removal in 1.18. - Export bool `json:"export" protobuf:"varint,1,opt,name=export"` - // Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. - // Deprecated. Planned for removal in 1.18. - Exact bool `json:"exact" protobuf:"varint,2,opt,name=exact"` -} - -// +k8s:conversion-gen:explicit-from=net/url.Values -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - // GetOptions is the standard query options to the standard REST get call. type GetOptions struct { TypeMeta `json:",inline"` @@ -589,6 +580,37 @@ type PatchOptions struct { FieldManager string `json:"fieldManager,omitempty" protobuf:"bytes,3,name=fieldManager"` } +// ApplyOptions may be provided when applying an API object. +// FieldManager is required for apply requests. +// ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation +// that speaks specifically to how the options fields relate to apply. +type ApplyOptions struct { + TypeMeta `json:",inline"` + + // When present, indicates that modifications should not be + // persisted. An invalid or unrecognized dryRun directive will + // result in an error response and no further processing of the + // request. Valid values are: + // - All: all dry run stages will be processed + // +optional + DryRun []string `json:"dryRun,omitempty" protobuf:"bytes,1,rep,name=dryRun"` + + // Force is going to "force" Apply requests. It means user will + // re-acquire conflicting fields owned by other people. + Force bool `json:"force" protobuf:"varint,2,opt,name=force"` + + // fieldManager is a name associated with the actor or entity + // that is making these changes. The value must be less than or + // 128 characters long, and only contain printable characters, + // as defined by https://golang.org/pkg/unicode/#IsPrint. This + // field is required. + FieldManager string `json:"fieldManager" protobuf:"bytes,3,name=fieldManager"` +} + +func (o ApplyOptions) ToPatchOptions() PatchOptions { + return PatchOptions{DryRun: o.DryRun, Force: &o.Force, FieldManager: o.FieldManager} +} + // +k8s:conversion-gen:explicit-from=net/url.Values // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go index ace0abfb98..c33d8ffa73 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go @@ -86,6 +86,17 @@ func (APIVersions) SwaggerDoc() map[string]string { return map_APIVersions } +var map_ApplyOptions = map[string]string{ + "": "ApplyOptions may be provided when applying an API object. FieldManager is required for apply requests. ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation that speaks specifically to how the options fields relate to apply.", + "dryRun": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "force": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people.", + "fieldManager": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required.", +} + +func (ApplyOptions) SwaggerDoc() map[string]string { + return map_ApplyOptions +} + var map_Condition = map[string]string{ "": "Condition contains details for one aspect of the current state of this API Resource.", "type": "type of condition in CamelCase or in foo.example.com/CamelCase.", @@ -123,16 +134,6 @@ func (DeleteOptions) SwaggerDoc() map[string]string { return map_DeleteOptions } -var map_ExportOptions = map[string]string{ - "": "ExportOptions is the query options to the standard REST get call. Deprecated. Planned for removal in 1.18.", - "export": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "exact": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", -} - -func (ExportOptions) SwaggerDoc() map[string]string { - return map_ExportOptions -} - var map_FieldsV1 = map[string]string{ "": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff", } diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation/validation.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation/validation.go index 715adf2f97..a5a7f144ad 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation/validation.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation/validation.go @@ -173,7 +173,8 @@ func ValidateTableOptions(opts *metav1.TableOptions) field.ErrorList { func ValidateManagedFields(fieldsList []metav1.ManagedFieldsEntry, fldPath *field.Path) field.ErrorList { var allErrs field.ErrorList - for _, fields := range fieldsList { + for i, fields := range fieldsList { + fldPath := fldPath.Index(i) switch fields.Operation { case metav1.ManagedFieldsOperationApply, metav1.ManagedFieldsOperationUpdate: default: @@ -182,6 +183,7 @@ func ValidateManagedFields(fieldsList []metav1.ManagedFieldsEntry, fldPath *fiel if len(fields.FieldsType) > 0 && fields.FieldsType != "FieldsV1" { allErrs = append(allErrs, field.Invalid(fldPath.Child("fieldsType"), fields.FieldsType, "must be `FieldsV1`")) } + allErrs = append(allErrs, ValidateFieldManager(fields.Manager, fldPath.Child("manager"))...) } return allErrs } diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go index 06afd9b5be..3ecb67c827 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go @@ -50,11 +50,6 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*ExportOptions)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_url_Values_To_v1_ExportOptions(a.(*url.Values), b.(*ExportOptions), scope) - }); err != nil { - return err - } if err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*GetOptions)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_url_Values_To_v1_GetOptions(a.(*url.Values), b.(*GetOptions), scope) }); err != nil { @@ -339,31 +334,6 @@ func autoConvert_url_Values_To_v1_DeleteOptions(in *url.Values, out *DeleteOptio return nil } -func autoConvert_url_Values_To_v1_ExportOptions(in *url.Values, out *ExportOptions, s conversion.Scope) error { - // WARNING: Field TypeMeta does not have json tag, skipping. - - if values, ok := map[string][]string(*in)["export"]; ok && len(values) > 0 { - if err := runtime.Convert_Slice_string_To_bool(&values, &out.Export, s); err != nil { - return err - } - } else { - out.Export = false - } - if values, ok := map[string][]string(*in)["exact"]; ok && len(values) > 0 { - if err := runtime.Convert_Slice_string_To_bool(&values, &out.Exact, s); err != nil { - return err - } - } else { - out.Exact = false - } - return nil -} - -// Convert_url_Values_To_v1_ExportOptions is an autogenerated conversion function. -func Convert_url_Values_To_v1_ExportOptions(in *url.Values, out *ExportOptions, s conversion.Scope) error { - return autoConvert_url_Values_To_v1_ExportOptions(in, out, s) -} - func autoConvert_url_Values_To_v1_GetOptions(in *url.Values, out *GetOptions, s conversion.Scope) error { // WARNING: Field TypeMeta does not have json tag, skipping. diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go index 1aa73bd24f..d43020da57 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go @@ -191,6 +191,28 @@ func (in *APIVersions) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplyOptions) DeepCopyInto(out *ApplyOptions) { + *out = *in + out.TypeMeta = in.TypeMeta + if in.DryRun != nil { + in, out := &in.DryRun, &out.DryRun + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplyOptions. +func (in *ApplyOptions) DeepCopy() *ApplyOptions { + if in == nil { + return nil + } + out := new(ApplyOptions) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Condition) DeepCopyInto(out *Condition) { *out = *in @@ -304,31 +326,6 @@ func (in *Duration) DeepCopy() *Duration { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExportOptions) DeepCopyInto(out *ExportOptions) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExportOptions. -func (in *ExportOptions) DeepCopy() *ExportOptions { - if in == nil { - return nil - } - out := new(ExportOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ExportOptions) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *FieldsV1) DeepCopyInto(out *FieldsV1) { *out = *in diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.pb.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.pb.go index cd5fc9026c..a5a9496796 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.pb.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.pb.go @@ -311,10 +311,7 @@ func (m *PartialObjectMetadataList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/apimachinery/pkg/labels/labels.go b/vendor/k8s.io/apimachinery/pkg/labels/labels.go index d6bbeeaca7..8360d842b6 100644 --- a/vendor/k8s.io/apimachinery/pkg/labels/labels.go +++ b/vendor/k8s.io/apimachinery/pkg/labels/labels.go @@ -20,6 +20,8 @@ import ( "fmt" "sort" "strings" + + "k8s.io/apimachinery/pkg/util/validation/field" ) // Labels allows you to present labels independently from their storage. @@ -79,7 +81,7 @@ func (ls Set) AsSelectorPreValidated() Selector { return SelectorFromValidatedSet(ls) } -// FormatLabels convert label map into plain string +// FormatLabels converts label map into plain string func FormatLabels(labelMap map[string]string) string { l := Set(labelMap).String() if l == "" { @@ -143,7 +145,7 @@ func Equals(labels1, labels2 Set) bool { // ConvertSelectorToLabelsMap converts selector string to labels map // and validates keys and values -func ConvertSelectorToLabelsMap(selector string) (Set, error) { +func ConvertSelectorToLabelsMap(selector string, opts ...field.PathOption) (Set, error) { labelsMap := Set{} if len(selector) == 0 { @@ -157,11 +159,11 @@ func ConvertSelectorToLabelsMap(selector string) (Set, error) { return labelsMap, fmt.Errorf("invalid selector: %s", l) } key := strings.TrimSpace(l[0]) - if err := validateLabelKey(key); err != nil { + if err := validateLabelKey(key, field.ToPath(opts...)); err != nil { return labelsMap, err } value := strings.TrimSpace(l[1]) - if err := validateLabelValue(key, value); err != nil { + if err := validateLabelValue(key, value, field.ToPath(opts...)); err != nil { return labelsMap, err } labelsMap[key] = value diff --git a/vendor/k8s.io/apimachinery/pkg/labels/selector.go b/vendor/k8s.io/apimachinery/pkg/labels/selector.go index 50ae4f7cef..b0865777a2 100644 --- a/vendor/k8s.io/apimachinery/pkg/labels/selector.go +++ b/vendor/k8s.io/apimachinery/pkg/labels/selector.go @@ -17,18 +17,28 @@ limitations under the License. package labels import ( - "bytes" "fmt" "sort" "strconv" "strings" + "github.com/google/go-cmp/cmp" "k8s.io/apimachinery/pkg/selection" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/klog/v2" ) +var ( + validRequirementOperators = []string{ + string(selection.In), string(selection.NotIn), + string(selection.Equals), string(selection.DoubleEquals), string(selection.NotEquals), + string(selection.Exists), string(selection.DoesNotExist), + string(selection.GreaterThan), string(selection.LessThan), + } +) + // Requirements is AND of all requirements. type Requirements []Requirement @@ -139,42 +149,47 @@ type Requirement struct { // of characters. See validateLabelKey for more details. // // The empty string is a valid value in the input values set. -func NewRequirement(key string, op selection.Operator, vals []string) (*Requirement, error) { - if err := validateLabelKey(key); err != nil { - return nil, err +// Returned error, if not nil, is guaranteed to be an aggregated field.ErrorList +func NewRequirement(key string, op selection.Operator, vals []string, opts ...field.PathOption) (*Requirement, error) { + var allErrs field.ErrorList + path := field.ToPath(opts...) + if err := validateLabelKey(key, path.Child("key")); err != nil { + allErrs = append(allErrs, err) } + + valuePath := path.Child("values") switch op { case selection.In, selection.NotIn: if len(vals) == 0 { - return nil, fmt.Errorf("for 'in', 'notin' operators, values set can't be empty") + allErrs = append(allErrs, field.Invalid(valuePath, vals, "for 'in', 'notin' operators, values set can't be empty")) } case selection.Equals, selection.DoubleEquals, selection.NotEquals: if len(vals) != 1 { - return nil, fmt.Errorf("exact-match compatibility requires one single value") + allErrs = append(allErrs, field.Invalid(valuePath, vals, "exact-match compatibility requires one single value")) } case selection.Exists, selection.DoesNotExist: if len(vals) != 0 { - return nil, fmt.Errorf("values set must be empty for exists and does not exist") + allErrs = append(allErrs, field.Invalid(valuePath, vals, "values set must be empty for exists and does not exist")) } case selection.GreaterThan, selection.LessThan: if len(vals) != 1 { - return nil, fmt.Errorf("for 'Gt', 'Lt' operators, exactly one value is required") + allErrs = append(allErrs, field.Invalid(valuePath, vals, "for 'Gt', 'Lt' operators, exactly one value is required")) } for i := range vals { if _, err := strconv.ParseInt(vals[i], 10, 64); err != nil { - return nil, fmt.Errorf("for 'Gt', 'Lt' operators, the value must be an integer") + allErrs = append(allErrs, field.Invalid(valuePath.Index(i), vals[i], "for 'Gt', 'Lt' operators, the value must be an integer")) } } default: - return nil, fmt.Errorf("operator '%v' is not recognized", op) + allErrs = append(allErrs, field.NotSupported(path.Child("operator"), op, validRequirementOperators)) } for i := range vals { - if err := validateLabelValue(key, vals[i]); err != nil { - return nil, err + if err := validateLabelValue(key, vals[i], valuePath.Index(i)); err != nil { + allErrs = append(allErrs, err) } } - return &Requirement{key: key, operator: op, strValues: vals}, nil + return &Requirement{key: key, operator: op, strValues: vals}, allErrs.ToAggregate() } func (r *Requirement) hasValue(value string) bool { @@ -262,6 +277,17 @@ func (r *Requirement) Values() sets.String { return ret } +// Equal checks the equality of requirement. +func (r Requirement) Equal(x Requirement) bool { + if r.key != x.key { + return false + } + if r.operator != x.operator { + return false + } + return cmp.Equal(r.strValues, x.strValues) +} + // Empty returns true if the internalSelector doesn't restrict selection space func (s internalSelector) Empty() bool { if s == nil { @@ -274,51 +300,58 @@ func (s internalSelector) Empty() bool { // Requirement. If called on an invalid Requirement, an error is // returned. See NewRequirement for creating a valid Requirement. func (r *Requirement) String() string { - var buffer bytes.Buffer + var sb strings.Builder + sb.Grow( + // length of r.key + len(r.key) + + // length of 'r.operator' + 2 spaces for the worst case ('in' and 'notin') + len(r.operator) + 2 + + // length of 'r.strValues' slice times. Heuristically 5 chars per word + +5*len(r.strValues)) if r.operator == selection.DoesNotExist { - buffer.WriteString("!") + sb.WriteString("!") } - buffer.WriteString(r.key) + sb.WriteString(r.key) switch r.operator { case selection.Equals: - buffer.WriteString("=") + sb.WriteString("=") case selection.DoubleEquals: - buffer.WriteString("==") + sb.WriteString("==") case selection.NotEquals: - buffer.WriteString("!=") + sb.WriteString("!=") case selection.In: - buffer.WriteString(" in ") + sb.WriteString(" in ") case selection.NotIn: - buffer.WriteString(" notin ") + sb.WriteString(" notin ") case selection.GreaterThan: - buffer.WriteString(">") + sb.WriteString(">") case selection.LessThan: - buffer.WriteString("<") + sb.WriteString("<") case selection.Exists, selection.DoesNotExist: - return buffer.String() + return sb.String() } switch r.operator { case selection.In, selection.NotIn: - buffer.WriteString("(") + sb.WriteString("(") } if len(r.strValues) == 1 { - buffer.WriteString(r.strValues[0]) + sb.WriteString(r.strValues[0]) } else { // only > 1 since == 0 prohibited by NewRequirement // normalizes value order on output, without mutating the in-memory selector representation // also avoids normalization when it is not required, and ensures we do not mutate shared data - buffer.WriteString(strings.Join(safeSort(r.strValues), ",")) + sb.WriteString(strings.Join(safeSort(r.strValues), ",")) } switch r.operator { case selection.In, selection.NotIn: - buffer.WriteString(")") + sb.WriteString(")") } - return buffer.String() + return sb.String() } -// safeSort sort input strings without modification +// safeSort sorts input strings without modification func safeSort(in []string) []string { if sort.StringsAreSorted(in) { return in @@ -366,7 +399,7 @@ func (s internalSelector) String() string { return strings.Join(reqs, ",") } -// RequiresExactMatch introspect whether a given selector requires a single specific field +// RequiresExactMatch introspects whether a given selector requires a single specific field // to be set, and if so returns the value it requires. func (s internalSelector) RequiresExactMatch(label string) (value string, found bool) { for ix := range s { @@ -444,7 +477,7 @@ func isWhitespace(ch byte) bool { return ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n' } -// isSpecialSymbol detect if the character ch can be an operator +// isSpecialSymbol detects if the character ch can be an operator func isSpecialSymbol(ch byte) bool { switch ch { case '=', '!', '(', ')', ',', '>', '<': @@ -462,7 +495,7 @@ type Lexer struct { pos int } -// read return the character currently lexed +// read returns the character currently lexed // increment the position and check the buffer overflow func (l *Lexer) read() (b byte) { b = 0 @@ -560,6 +593,7 @@ type Parser struct { l *Lexer scannedItems []ScannedItem position int + path *field.Path } // ParserContext represents context during parsing: @@ -653,7 +687,7 @@ func (p *Parser) parseRequirement() (*Requirement, error) { return nil, err } if operator == selection.Exists || operator == selection.DoesNotExist { // operator found lookahead set checked - return NewRequirement(key, operator, []string{}) + return NewRequirement(key, operator, []string{}, field.WithPath(p.path)) } operator, err = p.parseOperator() if err != nil { @@ -669,11 +703,11 @@ func (p *Parser) parseRequirement() (*Requirement, error) { if err != nil { return nil, err } - return NewRequirement(key, operator, values.List()) + return NewRequirement(key, operator, values.List(), field.WithPath(p.path)) } -// parseKeyAndInferOperator parse literals. +// parseKeyAndInferOperator parses literals. // in case of no operator '!, in, notin, ==, =, !=' are found // the 'exists' operator is inferred func (p *Parser) parseKeyAndInferOperator() (string, selection.Operator, error) { @@ -687,7 +721,7 @@ func (p *Parser) parseKeyAndInferOperator() (string, selection.Operator, error) err := fmt.Errorf("found '%s', expected: identifier", literal) return "", "", err } - if err := validateLabelKey(literal); err != nil { + if err := validateLabelKey(literal, p.path); err != nil { return "", "", err } if t, _ := p.lookahead(Values); t == EndOfStringToken || t == CommaToken { @@ -698,7 +732,7 @@ func (p *Parser) parseKeyAndInferOperator() (string, selection.Operator, error) return literal, operator, nil } -// parseOperator return operator and eventually matchType +// parseOperator returns operator and eventually matchType // matchType can be exact func (p *Parser) parseOperator() (op selection.Operator, err error) { tok, lit := p.consume(KeyAndOperator) @@ -833,8 +867,8 @@ func (p *Parser) parseExactValue() (sets.String, error) { // the KEY exists and can be any VALUE. // (5) A requirement with just !KEY requires that the KEY not exist. // -func Parse(selector string) (Selector, error) { - parsedSelector, err := parse(selector) +func Parse(selector string, opts ...field.PathOption) (Selector, error) { + parsedSelector, err := parse(selector, field.ToPath(opts...)) if err == nil { return parsedSelector, nil } @@ -845,8 +879,8 @@ func Parse(selector string) (Selector, error) { // The callers of this method can then decide how to return the internalSelector struct to their // callers. This function has two callers now, one returns a Selector interface and the other // returns a list of requirements. -func parse(selector string) (internalSelector, error) { - p := &Parser{l: &Lexer{s: selector, pos: 0}} +func parse(selector string, path *field.Path) (internalSelector, error) { + p := &Parser{l: &Lexer{s: selector, pos: 0}, path: path} items, err := p.parse() if err != nil { return nil, err @@ -855,16 +889,16 @@ func parse(selector string) (internalSelector, error) { return internalSelector(items), err } -func validateLabelKey(k string) error { +func validateLabelKey(k string, path *field.Path) *field.Error { if errs := validation.IsQualifiedName(k); len(errs) != 0 { - return fmt.Errorf("invalid label key %q: %s", k, strings.Join(errs, "; ")) + return field.Invalid(path, k, strings.Join(errs, "; ")) } return nil } -func validateLabelValue(k, v string) error { +func validateLabelValue(k, v string, path *field.Path) *field.Error { if errs := validation.IsValidLabelValue(v); len(errs) != 0 { - return fmt.Errorf("invalid label value: %q: at key: %q: %s", v, k, strings.Join(errs, "; ")) + return field.Invalid(path.Key(k), v, strings.Join(errs, "; ")) } return nil } @@ -918,6 +952,6 @@ func SelectorFromValidatedSet(ls Set) Selector { // processing on selector requirements. // See the documentation for Parse() function for more details. // TODO: Consider exporting the internalSelector type instead. -func ParseToRequirements(selector string) ([]Requirement, error) { - return parse(selector) +func ParseToRequirements(selector string, opts ...field.PathOption) ([]Requirement, error) { + return parse(selector, field.ToPath(opts...)) } diff --git a/vendor/k8s.io/apimachinery/pkg/runtime/generated.pb.go b/vendor/k8s.io/apimachinery/pkg/runtime/generated.pb.go index 0719718173..ac428d6103 100644 --- a/vendor/k8s.io/apimachinery/pkg/runtime/generated.pb.go +++ b/vendor/k8s.io/apimachinery/pkg/runtime/generated.pb.go @@ -450,10 +450,7 @@ func (m *RawExtension) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -567,10 +564,7 @@ func (m *TypeMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -751,10 +745,7 @@ func (m *Unknown) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/apimachinery/pkg/runtime/scheme.go b/vendor/k8s.io/apimachinery/pkg/runtime/scheme.go index 697dd4ed77..ae47ab3aba 100644 --- a/vendor/k8s.io/apimachinery/pkg/runtime/scheme.go +++ b/vendor/k8s.io/apimachinery/pkg/runtime/scheme.go @@ -129,12 +129,6 @@ func (s *Scheme) nameFunc(t reflect.Type) string { return gvks[0].Kind } -// fromScope gets the input version, desired output version, and desired Scheme -// from a conversion.Scope. -func (s *Scheme) fromScope(scope conversion.Scope) *Scheme { - return s -} - // Converter allows access to the converter for the scheme func (s *Scheme) Converter() *conversion.Converter { return s.converter @@ -235,6 +229,32 @@ func (s *Scheme) KnownTypes(gv schema.GroupVersion) map[string]reflect.Type { return types } +// VersionsForGroupKind returns the versions that a particular GroupKind can be converted to within the given group. +// A GroupKind might be converted to a different group. That information is available in EquivalentResourceMapper. +func (s *Scheme) VersionsForGroupKind(gk schema.GroupKind) []schema.GroupVersion { + availableVersions := []schema.GroupVersion{} + for gvk := range s.gvkToType { + if gk != gvk.GroupKind() { + continue + } + + availableVersions = append(availableVersions, gvk.GroupVersion()) + } + + // order the return for stability + ret := []schema.GroupVersion{} + for _, version := range s.PrioritizedVersionsForGroup(gk.Group) { + for _, availableVersion := range availableVersions { + if version != availableVersion { + continue + } + ret = append(ret, availableVersion) + } + } + + return ret +} + // AllKnownTypes returns the all known types. func (s *Scheme) AllKnownTypes() map[schema.GroupVersionKind]reflect.Type { return s.gvkToType diff --git a/vendor/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go b/vendor/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go index 83b2e13931..48f0777b24 100644 --- a/vendor/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go +++ b/vendor/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go @@ -333,13 +333,12 @@ func (s *Serializer) Identifier() runtime.Identifier { } // RecognizesData implements the RecognizingDecoder interface. -func (s *Serializer) RecognizesData(peek io.Reader) (ok, unknown bool, err error) { +func (s *Serializer) RecognizesData(data []byte) (ok, unknown bool, err error) { if s.options.Yaml { // we could potentially look for '---' return false, true, nil } - _, _, ok = utilyaml.GuessJSONStream(peek, 2048) - return ok, false, nil + return utilyaml.IsJSONBuffer(data), false, nil } // Framer is the default JSON framing behavior, with newlines delimiting individual objects. diff --git a/vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/protobuf.go b/vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/protobuf.go index 404fb1b7e5..8358d77c39 100644 --- a/vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/protobuf.go +++ b/vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/protobuf.go @@ -120,7 +120,7 @@ func (s *Serializer) Decode(originalData []byte, gvk *schema.GroupVersionKind, i if intoUnknown, ok := into.(*runtime.Unknown); ok && intoUnknown != nil { *intoUnknown = unk - if ok, _, _ := s.RecognizesData(bytes.NewBuffer(unk.Raw)); ok { + if ok, _, _ := s.RecognizesData(unk.Raw); ok { intoUnknown.ContentType = runtime.ContentTypeProtobuf } return intoUnknown, &actual, nil @@ -245,19 +245,8 @@ func (s *Serializer) Identifier() runtime.Identifier { } // RecognizesData implements the RecognizingDecoder interface. -func (s *Serializer) RecognizesData(peek io.Reader) (bool, bool, error) { - prefix := make([]byte, 4) - n, err := peek.Read(prefix) - if err != nil { - if err == io.EOF { - return false, false, nil - } - return false, false, err - } - if n != 4 { - return false, false, nil - } - return bytes.Equal(s.prefix, prefix), false, nil +func (s *Serializer) RecognizesData(data []byte) (bool, bool, error) { + return bytes.HasPrefix(data, s.prefix), false, nil } // copyKindDefaults defaults dst to the value in src if dst does not have a value set. diff --git a/vendor/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/recognizer.go b/vendor/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/recognizer.go index 38497ab533..709f852911 100644 --- a/vendor/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/recognizer.go +++ b/vendor/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/recognizer.go @@ -17,10 +17,7 @@ limitations under the License. package recognizer import ( - "bufio" - "bytes" "fmt" - "io" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -35,7 +32,7 @@ type RecognizingDecoder interface { // provides) and may return unknown if the data provided is not sufficient to make a // a determination. When peek returns EOF that may mean the end of the input or the // end of buffered input - recognizers should return the best guess at that time. - RecognizesData(peek io.Reader) (ok, unknown bool, err error) + RecognizesData(peek []byte) (ok, unknown bool, err error) } // NewDecoder creates a decoder that will attempt multiple decoders in an order defined @@ -57,16 +54,15 @@ type decoder struct { var _ RecognizingDecoder = &decoder{} -func (d *decoder) RecognizesData(peek io.Reader) (bool, bool, error) { +func (d *decoder) RecognizesData(data []byte) (bool, bool, error) { var ( lastErr error anyUnknown bool ) - data, _ := bufio.NewReaderSize(peek, 1024).Peek(1024) for _, r := range d.decoders { switch t := r.(type) { case RecognizingDecoder: - ok, unknown, err := t.RecognizesData(bytes.NewBuffer(data)) + ok, unknown, err := t.RecognizesData(data) if err != nil { lastErr = err continue @@ -91,8 +87,7 @@ func (d *decoder) Decode(data []byte, gvk *schema.GroupVersionKind, into runtime for _, r := range d.decoders { switch t := r.(type) { case RecognizingDecoder: - buf := bytes.NewBuffer(data) - ok, unknown, err := t.RecognizesData(buf) + ok, unknown, err := t.RecognizesData(data) if err != nil { lastErr = err continue diff --git a/vendor/k8s.io/apimachinery/pkg/util/clock/clock.go b/vendor/k8s.io/apimachinery/pkg/util/clock/clock.go index 3e1e2517b4..1a544d3b2e 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/clock/clock.go +++ b/vendor/k8s.io/apimachinery/pkg/util/clock/clock.go @@ -34,6 +34,7 @@ type PassiveClock interface { type Clock interface { PassiveClock After(time.Duration) <-chan time.Time + AfterFunc(time.Duration, func()) Timer NewTimer(time.Duration) Timer Sleep(time.Duration) NewTicker(time.Duration) Ticker @@ -57,6 +58,13 @@ func (RealClock) After(d time.Duration) <-chan time.Time { return time.After(d) } +// AfterFunc is the same as time.AfterFunc(d, f). +func (RealClock) AfterFunc(d time.Duration, f func()) Timer { + return &realTimer{ + timer: time.AfterFunc(d, f), + } +} + // NewTimer returns a new Timer. func (RealClock) NewTimer(d time.Duration) Timer { return &realTimer{ @@ -95,6 +103,7 @@ type fakeClockWaiter struct { stepInterval time.Duration skipIfBlocked bool destChan chan time.Time + afterFunc func() } // NewFakePassiveClock returns a new FakePassiveClock. @@ -145,6 +154,25 @@ func (f *FakeClock) After(d time.Duration) <-chan time.Time { return ch } +// AfterFunc is the Fake version of time.AfterFunc(d, callback). +func (f *FakeClock) AfterFunc(d time.Duration, cb func()) Timer { + f.lock.Lock() + defer f.lock.Unlock() + stopTime := f.time.Add(d) + ch := make(chan time.Time, 1) // Don't block! + + timer := &fakeTimer{ + fakeClock: f, + waiter: fakeClockWaiter{ + targetTime: stopTime, + destChan: ch, + afterFunc: cb, + }, + } + f.waiters = append(f.waiters, timer.waiter) + return timer +} + // NewTimer is the Fake version of time.NewTimer(d). func (f *FakeClock) NewTimer(d time.Duration) Timer { f.lock.Lock() @@ -211,6 +239,10 @@ func (f *FakeClock) setTimeLocked(t time.Time) { w.destChan <- t } + if w.afterFunc != nil { + w.afterFunc() + } + if w.stepInterval > 0 { for !w.targetTime.After(t) { w.targetTime = w.targetTime.Add(w.stepInterval) @@ -225,8 +257,8 @@ func (f *FakeClock) setTimeLocked(t time.Time) { f.waiters = newWaiters } -// HasWaiters returns true if After has been called on f but not yet satisfied (so you can -// write race-free tests). +// HasWaiters returns true if After or AfterFunc has been called on f but not yet satisfied +// (so you can write race-free tests). func (f *FakeClock) HasWaiters() bool { f.lock.RLock() defer f.lock.RUnlock() @@ -261,6 +293,12 @@ func (*IntervalClock) After(d time.Duration) <-chan time.Time { panic("IntervalClock doesn't implement After") } +// AfterFunc is currently unimplemented, will panic. +// TODO: make interval clock use FakeClock so this can be implemented. +func (*IntervalClock) AfterFunc(d time.Duration, cb func()) Timer { + panic("IntervalClock doesn't implement AfterFunc") +} + // NewTimer is currently unimplemented, will panic. // TODO: make interval clock use FakeClock so this can be implemented. func (*IntervalClock) NewTimer(d time.Duration) Timer { diff --git a/vendor/k8s.io/apimachinery/pkg/util/httpstream/httpstream.go b/vendor/k8s.io/apimachinery/pkg/util/httpstream/httpstream.go index 00ce5f785c..32f075782a 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/httpstream/httpstream.go +++ b/vendor/k8s.io/apimachinery/pkg/util/httpstream/httpstream.go @@ -78,6 +78,8 @@ type Connection interface { // SetIdleTimeout sets the amount of time the connection may remain idle before // it is automatically closed. SetIdleTimeout(timeout time.Duration) + // RemoveStreams can be used to remove a set of streams from the Connection. + RemoveStreams(streams ...Stream) } // Stream represents a bidirectional communications channel that is part of an diff --git a/vendor/k8s.io/apimachinery/pkg/util/httpstream/spdy/connection.go b/vendor/k8s.io/apimachinery/pkg/util/httpstream/spdy/connection.go index 336b4908b4..3da7457f48 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/httpstream/spdy/connection.go +++ b/vendor/k8s.io/apimachinery/pkg/util/httpstream/spdy/connection.go @@ -22,7 +22,7 @@ import ( "sync" "time" - "github.com/docker/spdystream" + "github.com/moby/spdystream" "k8s.io/apimachinery/pkg/util/httpstream" "k8s.io/klog/v2" ) @@ -31,7 +31,7 @@ import ( // streams. type connection struct { conn *spdystream.Connection - streams []httpstream.Stream + streams map[uint32]httpstream.Stream streamLock sync.Mutex newStreamHandler httpstream.NewStreamHandler ping func() (time.Duration, error) @@ -85,7 +85,12 @@ func NewServerConnectionWithPings(conn net.Conn, newStreamHandler httpstream.New // will be invoked when the server receives a newly created stream from the // client. func newConnection(conn *spdystream.Connection, newStreamHandler httpstream.NewStreamHandler, pingPeriod time.Duration, pingFn func() (time.Duration, error)) httpstream.Connection { - c := &connection{conn: conn, newStreamHandler: newStreamHandler, ping: pingFn} + c := &connection{ + conn: conn, + newStreamHandler: newStreamHandler, + ping: pingFn, + streams: make(map[uint32]httpstream.Stream), + } go conn.Serve(c.newSpdyStream) if pingPeriod > 0 && pingFn != nil { go c.sendPings(pingPeriod) @@ -105,7 +110,7 @@ func (c *connection) Close() error { // calling Reset instead of Close ensures that all streams are fully torn down s.Reset() } - c.streams = make([]httpstream.Stream, 0) + c.streams = make(map[uint32]httpstream.Stream, 0) c.streamLock.Unlock() // now that all streams are fully torn down, it's safe to call close on the underlying connection, @@ -114,6 +119,15 @@ func (c *connection) Close() error { return c.conn.Close() } +// RemoveStreams can be used to removes a set of streams from the Connection. +func (c *connection) RemoveStreams(streams ...httpstream.Stream) { + c.streamLock.Lock() + for _, stream := range streams { + delete(c.streams, stream.Identifier()) + } + c.streamLock.Unlock() +} + // CreateStream creates a new stream with the specified headers and registers // it with the connection. func (c *connection) CreateStream(headers http.Header) (httpstream.Stream, error) { @@ -133,7 +147,7 @@ func (c *connection) CreateStream(headers http.Header) (httpstream.Stream, error // it owns. func (c *connection) registerStream(s httpstream.Stream) { c.streamLock.Lock() - c.streams = append(c.streams, s) + c.streams[s.Identifier()] = s c.streamLock.Unlock() } diff --git a/vendor/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go b/vendor/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go index ec1cb70f29..a4792034ab 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go +++ b/vendor/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go @@ -268,10 +268,7 @@ func (m *IntOrString) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/apimachinery/pkg/util/managedfields/extract.go b/vendor/k8s.io/apimachinery/pkg/util/managedfields/extract.go new file mode 100644 index 0000000000..b7c9532257 --- /dev/null +++ b/vendor/k8s.io/apimachinery/pkg/util/managedfields/extract.go @@ -0,0 +1,86 @@ +/* +Copyright 2021 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. +*/ + +package managedfields + +import ( + "bytes" + "fmt" + + "sigs.k8s.io/structured-merge-diff/v4/fieldpath" + "sigs.k8s.io/structured-merge-diff/v4/typed" + + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" +) + +// ExtractInto extracts the applied configuration state from object for fieldManager +// into applyConfiguration. If no managed fields are found for the given fieldManager, +// no error is returned, but applyConfiguration is left unpopulated. It is possible +// that no managed fields were found for the fieldManager because other field managers +// have taken ownership of all the fields previously owned by the fieldManager. It is +// also possible the fieldManager never owned fields. +func ExtractInto(object runtime.Object, objectType typed.ParseableType, fieldManager string, applyConfiguration interface{}) error { + typedObj, err := toTyped(object, objectType) + if err != nil { + return fmt.Errorf("error converting obj to typed: %w", err) + } + + accessor, err := meta.Accessor(object) + if err != nil { + return fmt.Errorf("error accessing metadata: %w", err) + } + fieldsEntry, ok := findManagedFields(accessor, fieldManager) + if !ok { + return nil + } + fieldset := &fieldpath.Set{} + err = fieldset.FromJSON(bytes.NewReader(fieldsEntry.FieldsV1.Raw)) + if err != nil { + return fmt.Errorf("error marshalling FieldsV1 to JSON: %w", err) + } + + u := typedObj.ExtractItems(fieldset.Leaves()).AsValue().Unstructured() + m, ok := u.(map[string]interface{}) + if !ok { + return fmt.Errorf("unable to convert managed fields for %s to unstructured, expected map, got %T", fieldManager, u) + } + if err := runtime.DefaultUnstructuredConverter.FromUnstructured(m, applyConfiguration); err != nil { + return fmt.Errorf("error extracting into obj from unstructured: %w", err) + } + return nil +} + +func findManagedFields(accessor metav1.Object, fieldManager string) (metav1.ManagedFieldsEntry, bool) { + objManagedFields := accessor.GetManagedFields() + for _, mf := range objManagedFields { + if mf.Manager == fieldManager && mf.Operation == metav1.ManagedFieldsOperationApply { + return mf, true + } + } + return metav1.ManagedFieldsEntry{}, false +} + +func toTyped(obj runtime.Object, objectType typed.ParseableType) (*typed.TypedValue, error) { + switch o := obj.(type) { + case *unstructured.Unstructured: + return objectType.FromUnstructured(o.Object) + default: + return objectType.FromStructured(o) + } +} diff --git a/vendor/k8s.io/apimachinery/pkg/util/net/http.go b/vendor/k8s.io/apimachinery/pkg/util/net/http.go index ba63d02df6..ce69b8054b 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/net/http.go +++ b/vendor/k8s.io/apimachinery/pkg/util/net/http.go @@ -131,7 +131,7 @@ func SetTransportDefaults(t *http.Transport) *http.Transport { t = SetOldTransportDefaults(t) // Allow clients to disable http2 if needed. if s := os.Getenv("DISABLE_HTTP2"); len(s) > 0 { - klog.Infof("HTTP2 has been explicitly disabled") + klog.Info("HTTP2 has been explicitly disabled") } else if allowsHTTP2(t) { if err := configureHTTP2Transport(t); err != nil { klog.Warningf("Transport failed http2 configuration: %v", err) @@ -693,7 +693,7 @@ func parseQuotedString(quotedString string) (string, string, error) { var remainder string escaping := false closedQuote := false - result := &bytes.Buffer{} + result := &strings.Builder{} loop: for i := 0; i < len(quotedString); i++ { b := quotedString[i] diff --git a/vendor/k8s.io/apimachinery/pkg/util/net/interface.go b/vendor/k8s.io/apimachinery/pkg/util/net/interface.go index 204e223caf..9adf4cfe47 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/net/interface.go +++ b/vendor/k8s.io/apimachinery/pkg/util/net/interface.go @@ -266,6 +266,36 @@ func getIPFromInterface(intfName string, forFamily AddressFamily, nw networkInte return nil, nil } +// getIPFromLoopbackInterface gets the IPs on a loopback interface and returns a global unicast address, if any. +// The loopback interface must be up, the IP must in the family requested, and the IP must be a global unicast address. +func getIPFromLoopbackInterface(forFamily AddressFamily, nw networkInterfacer) (net.IP, error) { + intfs, err := nw.Interfaces() + if err != nil { + return nil, err + } + for _, intf := range intfs { + if !isInterfaceUp(&intf) { + continue + } + if intf.Flags&(net.FlagLoopback) != 0 { + addrs, err := nw.Addrs(&intf) + if err != nil { + return nil, err + } + klog.V(4).Infof("Interface %q has %d addresses :%v.", intf.Name, len(addrs), addrs) + matchingIP, err := getMatchingGlobalIP(addrs, forFamily) + if err != nil { + return nil, err + } + if matchingIP != nil { + klog.V(4).Infof("Found valid IPv%d address %v for interface %q.", int(forFamily), matchingIP, intf.Name) + return matchingIP, nil + } + } + } + return nil, nil +} + // memberOf tells if the IP is of the desired family. Used for checking interface addresses. func memberOf(ip net.IP, family AddressFamily) bool { if ip.To4() != nil { @@ -393,8 +423,9 @@ func getAllDefaultRoutes() ([]Route, error) { } // chooseHostInterfaceFromRoute cycles through each default route provided, looking for a -// global IP address from the interface for the route. addressFamilies determines whether it -// prefers IPv4 or IPv6 +// global IP address from the interface for the route. If there are routes but no global +// address is obtained from the interfaces, it checks if the loopback interface has a global address. +// addressFamilies determines whether it prefers IPv4 or IPv6 func chooseHostInterfaceFromRoute(routes []Route, nw networkInterfacer, addressFamilies AddressFamilyPreference) (net.IP, error) { for _, family := range addressFamilies { klog.V(4).Infof("Looking for default routes with IPv%d addresses", uint(family)) @@ -411,6 +442,17 @@ func chooseHostInterfaceFromRoute(routes []Route, nw networkInterfacer, addressF klog.V(4).Infof("Found active IP %v ", finalIP) return finalIP, nil } + // In case of network setups where default routes are present, but network + // interfaces use only link-local addresses (e.g. as described in RFC5549). + // the global IP is assigned to the loopback interface, and we should use it + loopbackIP, err := getIPFromLoopbackInterface(family, nw) + if err != nil { + return nil, err + } + if loopbackIP != nil { + klog.V(4).Infof("Found active IP %v on Loopback interface", loopbackIP) + return loopbackIP, nil + } } } klog.V(4).Infof("No active IP found by looking at default routes") diff --git a/vendor/k8s.io/apimachinery/pkg/util/validation/field/path.go b/vendor/k8s.io/apimachinery/pkg/util/validation/field/path.go index f9be7ac339..daccb05890 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/validation/field/path.go +++ b/vendor/k8s.io/apimachinery/pkg/util/validation/field/path.go @@ -22,6 +22,29 @@ import ( "strconv" ) +type pathOptions struct { + path *Path +} + +// PathOption modifies a pathOptions +type PathOption func(o *pathOptions) + +// WithPath generates a PathOption +func WithPath(p *Path) PathOption { + return func(o *pathOptions) { + o.path = p + } +} + +// ToPath produces *Path from a set of PathOption +func ToPath(opts ...PathOption) *Path { + c := &pathOptions{} + for _, opt := range opts { + opt(c) + } + return c.path +} + // Path represents the path from some root to a particular field. type Path struct { name string // the name of this field or "" if this is an index diff --git a/vendor/k8s.io/apimachinery/pkg/util/yaml/decoder.go b/vendor/k8s.io/apimachinery/pkg/util/yaml/decoder.go index 7fe7064677..612d63a694 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/yaml/decoder.go +++ b/vendor/k8s.io/apimachinery/pkg/util/yaml/decoder.go @@ -22,13 +22,11 @@ import ( "encoding/json" "fmt" "io" - "io/ioutil" "strings" "unicode" jsonutil "k8s.io/apimachinery/pkg/util/json" - "k8s.io/klog/v2" "sigs.k8s.io/yaml" ) @@ -215,16 +213,15 @@ type YAMLOrJSONDecoder struct { bufferSize int decoder decoder - rawData []byte } type JSONSyntaxError struct { - Line int - Err error + Offset int64 + Err error } func (e JSONSyntaxError) Error() string { - return fmt.Sprintf("json: line %d: %s", e.Line, e.Err.Error()) + return fmt.Sprintf("json: offset %d: %s", e.Offset, e.Err.Error()) } type YAMLSyntaxError struct { @@ -250,35 +247,18 @@ func NewYAMLOrJSONDecoder(r io.Reader, bufferSize int) *YAMLOrJSONDecoder { // provide object, or returns an error. func (d *YAMLOrJSONDecoder) Decode(into interface{}) error { if d.decoder == nil { - buffer, origData, isJSON := GuessJSONStream(d.r, d.bufferSize) + buffer, _, isJSON := GuessJSONStream(d.r, d.bufferSize) if isJSON { d.decoder = json.NewDecoder(buffer) - d.rawData = origData } else { d.decoder = NewYAMLToJSONDecoder(buffer) } } err := d.decoder.Decode(into) - if jsonDecoder, ok := d.decoder.(*json.Decoder); ok { - if syntax, ok := err.(*json.SyntaxError); ok { - data, readErr := ioutil.ReadAll(jsonDecoder.Buffered()) - if readErr != nil { - klog.V(4).Infof("reading stream failed: %v", readErr) - } - js := string(data) - - // if contents from io.Reader are not complete, - // use the original raw data to prevent panic - if int64(len(js)) <= syntax.Offset { - js = string(d.rawData) - } - - start := strings.LastIndex(js[:syntax.Offset], "\n") + 1 - line := strings.Count(js[:start], "\n") - return JSONSyntaxError{ - Line: line, - Err: fmt.Errorf(syntax.Error()), - } + if syntax, ok := err.(*json.SyntaxError); ok { + return JSONSyntaxError{ + Offset: syntax.Offset, + Err: syntax, } } return err @@ -363,6 +343,12 @@ func GuessJSONStream(r io.Reader, size int) (io.Reader, []byte, bool) { return buffer, b, hasJSONPrefix(b) } +// IsJSONBuffer scans the provided buffer, looking +// for an open brace indicating this is JSON. +func IsJSONBuffer(buf []byte) bool { + return hasJSONPrefix(buf) +} + var jsonPrefix = []byte("{") // hasJSONPrefix returns true if the provided buffer appears to start with diff --git a/vendor/k8s.io/apimachinery/pkg/watch/mux.go b/vendor/k8s.io/apimachinery/pkg/watch/mux.go index 0aaf01adce..e01d519060 100644 --- a/vendor/k8s.io/apimachinery/pkg/watch/mux.go +++ b/vendor/k8s.io/apimachinery/pkg/watch/mux.go @@ -74,6 +74,22 @@ func NewBroadcaster(queueLength int, fullChannelBehavior FullChannelBehavior) *B return m } +// NewLongQueueBroadcaster functions nearly identically to NewBroadcaster, +// except that the incoming queue is the same size as the outgoing queues +// (specified by queueLength). +func NewLongQueueBroadcaster(queueLength int, fullChannelBehavior FullChannelBehavior) *Broadcaster { + m := &Broadcaster{ + watchers: map[int64]*broadcasterWatcher{}, + incoming: make(chan Event, queueLength), + stopped: make(chan struct{}), + watchQueueLength: queueLength, + fullChannelBehavior: fullChannelBehavior, + } + m.distributing.Add(1) + go m.loop() + return m +} + const internalRunFunctionMarker = "internal-do-function" // a function type we can shoehorn into the queue. @@ -198,6 +214,18 @@ func (m *Broadcaster) Action(action EventType, obj runtime.Object) { m.incoming <- Event{action, obj} } +// Action distributes the given event among all watchers, or drops it on the floor +// if too many incoming actions are queued up. Returns true if the action was sent, +// false if dropped. +func (m *Broadcaster) ActionOrDrop(action EventType, obj runtime.Object) bool { + select { + case m.incoming <- Event{action, obj}: + return true + default: + return false + } +} + // Shutdown disconnects all watchers (but any queued events will still be distributed). // You must not call Action or Watch* after calling Shutdown. This call blocks // until all events have been distributed through the outbound channels. Note diff --git a/vendor/k8s.io/apimachinery/pkg/watch/streamwatcher.go b/vendor/k8s.io/apimachinery/pkg/watch/streamwatcher.go index 99f6770b91..42dcac2b9e 100644 --- a/vendor/k8s.io/apimachinery/pkg/watch/streamwatcher.go +++ b/vendor/k8s.io/apimachinery/pkg/watch/streamwatcher.go @@ -55,7 +55,7 @@ type StreamWatcher struct { source Decoder reporter Reporter result chan Event - stopped bool + done chan struct{} } // NewStreamWatcher creates a StreamWatcher from the given decoder. @@ -67,6 +67,11 @@ func NewStreamWatcher(d Decoder, r Reporter) *StreamWatcher { // goroutine/channel, but impossible for them to remove it, // so nonbuffered is better. result: make(chan Event), + // If the watcher is externally stopped there is no receiver anymore + // and the send operations on the result channel, especially the + // error reporting might block forever. + // Therefore a dedicated stop channel is used to resolve this blocking. + done: make(chan struct{}), } go sw.receive() return sw @@ -82,19 +87,15 @@ func (sw *StreamWatcher) Stop() { // Call Close() exactly once by locking and setting a flag. sw.Lock() defer sw.Unlock() - if !sw.stopped { - sw.stopped = true + // closing a closed channel always panics, therefore check before closing + select { + case <-sw.done: + default: + close(sw.done) sw.source.Close() } } -// stopping returns true if Stop() was called previously. -func (sw *StreamWatcher) stopping() bool { - sw.Lock() - defer sw.Unlock() - return sw.stopped -} - // receive reads result from the decoder in a loop and sends down the result channel. func (sw *StreamWatcher) receive() { defer utilruntime.HandleCrash() @@ -103,10 +104,6 @@ func (sw *StreamWatcher) receive() { for { action, obj, err := sw.source.Decode() if err != nil { - // Ignore expected error. - if sw.stopping() { - return - } switch err { case io.EOF: // watch closed normally @@ -116,17 +113,24 @@ func (sw *StreamWatcher) receive() { if net.IsProbableEOF(err) || net.IsTimeout(err) { klog.V(5).Infof("Unable to decode an event from the watch stream: %v", err) } else { - sw.result <- Event{ + select { + case <-sw.done: + case sw.result <- Event{ Type: Error, Object: sw.reporter.AsObject(fmt.Errorf("unable to decode an event from the watch stream: %v", err)), + }: } } } return } - sw.result <- Event{ + select { + case <-sw.done: + return + case sw.result <- Event{ Type: action, Object: obj, + }: } } } diff --git a/vendor/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go b/vendor/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go index d9b28ad785..ae57e6739a 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go +++ b/vendor/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go @@ -36,6 +36,11 @@ type mutatingWebhookConfigurationManager struct { configuration *atomic.Value lister admissionregistrationlisters.MutatingWebhookConfigurationLister hasSynced func() bool + // initialConfigurationSynced stores a boolean value, which tracks if + // the existing webhook configs have been synced (honored) by the + // manager at startup-- the informer has synced and either has no items + // or has finished executing updateConfiguration() once. + initialConfigurationSynced *atomic.Value } var _ generic.Source = &mutatingWebhookConfigurationManager{} @@ -43,13 +48,15 @@ var _ generic.Source = &mutatingWebhookConfigurationManager{} func NewMutatingWebhookConfigurationManager(f informers.SharedInformerFactory) generic.Source { informer := f.Admissionregistration().V1().MutatingWebhookConfigurations() manager := &mutatingWebhookConfigurationManager{ - configuration: &atomic.Value{}, - lister: informer.Lister(), - hasSynced: informer.Informer().HasSynced, + configuration: &atomic.Value{}, + lister: informer.Lister(), + hasSynced: informer.Informer().HasSynced, + initialConfigurationSynced: &atomic.Value{}, } // Start with an empty list manager.configuration.Store([]webhook.WebhookAccessor{}) + manager.initialConfigurationSynced.Store(false) // On any change, rebuild the config informer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -66,8 +73,27 @@ func (m *mutatingWebhookConfigurationManager) Webhooks() []webhook.WebhookAccess return m.configuration.Load().([]webhook.WebhookAccessor) } +// HasSynced returns true when the manager is synced with existing webhookconfig +// objects at startup-- which means the informer is synced and either has no items +// or updateConfiguration() has completed. func (m *mutatingWebhookConfigurationManager) HasSynced() bool { - return m.hasSynced() + if !m.hasSynced() { + return false + } + if m.initialConfigurationSynced.Load().(bool) { + // the informer has synced and configuration has been updated + return true + } + if configurations, err := m.lister.List(labels.Everything()); err == nil && len(configurations) == 0 { + // the empty list we initially stored is valid to use. + // Setting initialConfigurationSynced to true, so subsequent checks + // would be able to take the fast path on the atomic boolean in a + // cluster without any admission webhooks configured. + m.initialConfigurationSynced.Store(true) + // the informer has synced and we don't have any items + return true + } + return false } func (m *mutatingWebhookConfigurationManager) updateConfiguration() { @@ -77,6 +103,7 @@ func (m *mutatingWebhookConfigurationManager) updateConfiguration() { return } m.configuration.Store(mergeMutatingWebhookConfigurations(configurations)) + m.initialConfigurationSynced.Store(true) } func mergeMutatingWebhookConfigurations(configurations []*v1.MutatingWebhookConfiguration) []webhook.WebhookAccessor { diff --git a/vendor/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go b/vendor/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go index 37062b082e..b8c1904ea8 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go +++ b/vendor/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go @@ -36,6 +36,11 @@ type validatingWebhookConfigurationManager struct { configuration *atomic.Value lister admissionregistrationlisters.ValidatingWebhookConfigurationLister hasSynced func() bool + // initialConfigurationSynced stores a boolean value, which tracks if + // the existing webhook configs have been synced (honored) by the + // manager at startup-- the informer has synced and either has no items + // or has finished executing updateConfiguration() once. + initialConfigurationSynced *atomic.Value } var _ generic.Source = &validatingWebhookConfigurationManager{} @@ -43,13 +48,15 @@ var _ generic.Source = &validatingWebhookConfigurationManager{} func NewValidatingWebhookConfigurationManager(f informers.SharedInformerFactory) generic.Source { informer := f.Admissionregistration().V1().ValidatingWebhookConfigurations() manager := &validatingWebhookConfigurationManager{ - configuration: &atomic.Value{}, - lister: informer.Lister(), - hasSynced: informer.Informer().HasSynced, + configuration: &atomic.Value{}, + lister: informer.Lister(), + hasSynced: informer.Informer().HasSynced, + initialConfigurationSynced: &atomic.Value{}, } // Start with an empty list manager.configuration.Store([]webhook.WebhookAccessor{}) + manager.initialConfigurationSynced.Store(false) // On any change, rebuild the config informer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -66,9 +73,28 @@ func (v *validatingWebhookConfigurationManager) Webhooks() []webhook.WebhookAcce return v.configuration.Load().([]webhook.WebhookAccessor) } -// HasSynced returns true if the shared informers have synced. +// HasSynced returns true when the manager is synced with existing webhookconfig +// objects at startup-- which means the informer is synced and either has no items +// or updateConfiguration() has completed. func (v *validatingWebhookConfigurationManager) HasSynced() bool { - return v.hasSynced() + if !v.hasSynced() { + return false + } + if v.initialConfigurationSynced.Load().(bool) { + // the informer has synced and configuration has been updated + return true + } + if configurations, err := v.lister.List(labels.Everything()); err == nil && len(configurations) == 0 { + // the empty list we initially stored is valid to use. + // Setting initialConfigurationSynced to true, so subsequent checks + // would be able to take the fast path on the atomic boolean in a + // cluster without any admission webhooks configured. + v.initialConfigurationSynced.Store(true) + // the informer has synced and we don't have any items + return true + } + return false + } func (v *validatingWebhookConfigurationManager) updateConfiguration() { @@ -78,6 +104,7 @@ func (v *validatingWebhookConfigurationManager) updateConfiguration() { return } v.configuration.Store(mergeValidatingWebhookConfigurations(configurations)) + v.initialConfigurationSynced.Store(true) } func mergeValidatingWebhookConfigurations(configurations []*v1.ValidatingWebhookConfiguration) []webhook.WebhookAccessor { diff --git a/vendor/k8s.io/apiserver/pkg/admission/metrics/metrics.go b/vendor/k8s.io/apiserver/pkg/admission/metrics/metrics.go index c9edb48b41..82752fe08c 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/metrics/metrics.go +++ b/vendor/k8s.io/apiserver/pkg/admission/metrics/metrics.go @@ -54,7 +54,7 @@ var ( ) // ObserverFunc is a func that emits metrics. -type ObserverFunc func(elapsed time.Duration, rejected bool, attr admission.Attributes, stepType string, extraLabels ...string) +type ObserverFunc func(ctx context.Context, elapsed time.Duration, rejected bool, attr admission.Attributes, stepType string, extraLabels ...string) const ( stepValidate = "validate" @@ -96,7 +96,7 @@ func (p pluginHandlerWithMetrics) Admit(ctx context.Context, a admission.Attribu start := time.Now() err := mutatingHandler.Admit(ctx, a, o) - p.observer(time.Since(start), err != nil, a, stepAdmit, p.extraLabels...) + p.observer(ctx, time.Since(start), err != nil, a, stepAdmit, p.extraLabels...) return err } @@ -109,7 +109,7 @@ func (p pluginHandlerWithMetrics) Validate(ctx context.Context, a admission.Attr start := time.Now() err := validatingHandler.Validate(ctx, a, o) - p.observer(time.Since(start), err != nil, a, stepValidate, p.extraLabels...) + p.observer(ctx, time.Since(start), err != nil, a, stepValidate, p.extraLabels...) return err } @@ -163,28 +163,28 @@ func (m *AdmissionMetrics) reset() { } // ObserveAdmissionStep records admission related metrics for a admission step, identified by step type. -func (m *AdmissionMetrics) ObserveAdmissionStep(elapsed time.Duration, rejected bool, attr admission.Attributes, stepType string, extraLabels ...string) { - m.step.observe(elapsed, append(extraLabels, stepType, string(attr.GetOperation()), strconv.FormatBool(rejected))...) +func (m *AdmissionMetrics) ObserveAdmissionStep(ctx context.Context, elapsed time.Duration, rejected bool, attr admission.Attributes, stepType string, extraLabels ...string) { + m.step.observe(ctx, elapsed, append(extraLabels, stepType, string(attr.GetOperation()), strconv.FormatBool(rejected))...) } // ObserveAdmissionController records admission related metrics for a built-in admission controller, identified by it's plugin handler name. -func (m *AdmissionMetrics) ObserveAdmissionController(elapsed time.Duration, rejected bool, attr admission.Attributes, stepType string, extraLabels ...string) { - m.controller.observe(elapsed, append(extraLabels, stepType, string(attr.GetOperation()), strconv.FormatBool(rejected))...) +func (m *AdmissionMetrics) ObserveAdmissionController(ctx context.Context, elapsed time.Duration, rejected bool, attr admission.Attributes, stepType string, extraLabels ...string) { + m.controller.observe(ctx, elapsed, append(extraLabels, stepType, string(attr.GetOperation()), strconv.FormatBool(rejected))...) } // ObserveWebhook records admission related metrics for a admission webhook. -func (m *AdmissionMetrics) ObserveWebhook(elapsed time.Duration, rejected bool, attr admission.Attributes, stepType string, extraLabels ...string) { - m.webhook.observe(elapsed, append(extraLabels, stepType, string(attr.GetOperation()), strconv.FormatBool(rejected))...) +func (m *AdmissionMetrics) ObserveWebhook(ctx context.Context, elapsed time.Duration, rejected bool, attr admission.Attributes, stepType string, extraLabels ...string) { + m.webhook.observe(ctx, elapsed, append(extraLabels, stepType, string(attr.GetOperation()), strconv.FormatBool(rejected))...) } // ObserveWebhookRejection records admission related metrics for an admission webhook rejection. -func (m *AdmissionMetrics) ObserveWebhookRejection(name, stepType, operation string, errorType WebhookRejectionErrorType, rejectionCode int) { +func (m *AdmissionMetrics) ObserveWebhookRejection(ctx context.Context, name, stepType, operation string, errorType WebhookRejectionErrorType, rejectionCode int) { // We truncate codes greater than 600 to keep the cardinality bounded. // This should be rarely done by a malfunctioning webhook server. if rejectionCode > 600 { rejectionCode = 600 } - m.webhookRejection.WithLabelValues(name, stepType, operation, string(errorType), strconv.Itoa(rejectionCode)).Inc() + m.webhookRejection.WithContext(ctx).WithLabelValues(name, stepType, operation, string(errorType), strconv.Itoa(rejectionCode)).Inc() } type metricSet struct { @@ -242,10 +242,10 @@ func (m *metricSet) reset() { } // Observe records an observed admission event to all metrics in the metricSet. -func (m *metricSet) observe(elapsed time.Duration, labels ...string) { +func (m *metricSet) observe(ctx context.Context, elapsed time.Duration, labels ...string) { elapsedSeconds := elapsed.Seconds() - m.latencies.WithLabelValues(labels...).Observe(elapsedSeconds) + m.latencies.WithContext(ctx).WithLabelValues(labels...).Observe(elapsedSeconds) if m.latenciesSummary != nil { - m.latenciesSummary.WithLabelValues(labels...).Observe(elapsedSeconds) + m.latenciesSummary.WithContext(ctx).WithLabelValues(labels...).Observe(elapsedSeconds) } } diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go index 0fac569c4f..c417e3f98a 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go @@ -140,7 +140,7 @@ func (l *Lifecycle) Admit(ctx context.Context, a admission.Attributes, o admissi exists = true } if exists { - klog.V(4).Infof("found %s in cache after waiting", a.GetNamespace()) + klog.V(4).InfoS("Namespace existed in cache after waiting", "namespace", klog.KRef("", a.GetNamespace())) } } @@ -161,7 +161,8 @@ func (l *Lifecycle) Admit(ctx context.Context, a admission.Attributes, o admissi case err != nil: return errors.NewInternalError(err) } - klog.V(4).Infof("found %s via storage lookup", a.GetNamespace()) + + klog.V(4).InfoS("Found namespace via storage lookup", "namespace", klog.KRef("", a.GetNamespace())) } // ensure that we're not trying to create objects in terminating namespaces diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go index 4cf9f37117..0410d03785 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go @@ -142,17 +142,17 @@ func (a *mutatingDispatcher) Dispatch(ctx context.Context, attr admission.Attrib case *webhookutil.ErrCallingWebhook: if !ignoreClientCallFailures { rejected = true - admissionmetrics.Metrics.ObserveWebhookRejection(hook.Name, "admit", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionCallingWebhookError, 0) + admissionmetrics.Metrics.ObserveWebhookRejection(ctx, hook.Name, "admit", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionCallingWebhookError, 0) } case *webhookutil.ErrWebhookRejection: rejected = true - admissionmetrics.Metrics.ObserveWebhookRejection(hook.Name, "admit", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionNoError, int(err.Status.ErrStatus.Code)) + admissionmetrics.Metrics.ObserveWebhookRejection(ctx, hook.Name, "admit", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionNoError, int(err.Status.ErrStatus.Code)) default: rejected = true - admissionmetrics.Metrics.ObserveWebhookRejection(hook.Name, "admit", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionAPIServerInternalError, 0) + admissionmetrics.Metrics.ObserveWebhookRejection(ctx, hook.Name, "admit", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionAPIServerInternalError, 0) } } - admissionmetrics.Metrics.ObserveWebhook(time.Since(t), rejected, versionedAttr.Attributes, "admit", hook.Name) + admissionmetrics.Metrics.ObserveWebhook(ctx, time.Since(t), rejected, versionedAttr.Attributes, "admit", hook.Name) if changed { // Patch had changed the object. Prepare to reinvoke all previous webhooks that are eligible for re-invocation. webhookReinvokeCtx.RequireReinvokingPreviouslyInvokedPlugins() diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/object/matcher.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/object/matcher.go index 773e3e6ee6..0dccb5bb3a 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/object/matcher.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/object/matcher.go @@ -36,7 +36,7 @@ func matchObject(obj runtime.Object, selector labels.Selector) bool { } accessor, err := meta.Accessor(obj) if err != nil { - klog.V(5).Infof("cannot access metadata of %v: %v", obj, err) + klog.V(5).InfoS("Accessing metadata failed", "object", obj, "err", err) return false } return selector.Matches(labels.Set(accessor.GetLabels())) diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/dispatcher.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/dispatcher.go index f065cdf501..7a24d52ce5 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/dispatcher.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/dispatcher.go @@ -109,17 +109,17 @@ func (d *validatingDispatcher) Dispatch(ctx context.Context, attr admission.Attr case *webhookutil.ErrCallingWebhook: if !ignoreClientCallFailures { rejected = true - admissionmetrics.Metrics.ObserveWebhookRejection(hook.Name, "validating", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionCallingWebhookError, 0) + admissionmetrics.Metrics.ObserveWebhookRejection(ctx, hook.Name, "validating", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionCallingWebhookError, 0) } case *webhookutil.ErrWebhookRejection: rejected = true - admissionmetrics.Metrics.ObserveWebhookRejection(hook.Name, "validating", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionNoError, int(err.Status.ErrStatus.Code)) + admissionmetrics.Metrics.ObserveWebhookRejection(ctx, hook.Name, "validating", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionNoError, int(err.Status.ErrStatus.Code)) default: rejected = true - admissionmetrics.Metrics.ObserveWebhookRejection(hook.Name, "validating", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionAPIServerInternalError, 0) + admissionmetrics.Metrics.ObserveWebhookRejection(ctx, hook.Name, "validating", string(versionedAttr.Attributes.GetOperation()), admissionmetrics.WebhookRejectionAPIServerInternalError, 0) } } - admissionmetrics.Metrics.ObserveWebhook(time.Since(t), rejected, versionedAttr.Attributes, "validating", hook.Name) + admissionmetrics.Metrics.ObserveWebhook(ctx, time.Since(t), rejected, versionedAttr.Attributes, "validating", hook.Name) if err == nil { return } diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugins.go b/vendor/k8s.io/apiserver/pkg/admission/plugins.go index e6da6f4a7f..d720d9964e 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/plugins.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugins.go @@ -81,7 +81,7 @@ func (ps *Plugins) Register(name string, plugin Factory) { ps.registry = map[string]Factory{} } - klog.V(1).Infof("Registered admission plugin %q", name) + klog.V(1).InfoS("Registered admission plugin", "plugin", name) ps.registry[name] = plugin } diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.pb.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.pb.go index 3d2f444194..c569f50681 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.pb.go +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1/generated.pb.go @@ -1870,7 +1870,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1919,10 +1919,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2039,10 +2036,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2188,10 +2182,7 @@ func (m *GroupResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2497,10 +2488,7 @@ func (m *ObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2649,10 +2637,7 @@ func (m *Policy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2769,10 +2754,7 @@ func (m *PolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3080,10 +3062,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/doc.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/doc.go index 54a8440eb7..ea9194afe8 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/doc.go +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/doc.go @@ -18,6 +18,7 @@ limitations under the License. // +k8s:protobuf-gen=package // +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/audit // +k8s:openapi-gen=true +// +k8s:prerelease-lifecycle-gen=true // +k8s:defaulter-gen=TypeMeta // +groupName=audit.k8s.io diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.pb.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.pb.go index 0b381d4242..4af2810f08 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.pb.go @@ -1959,7 +1959,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -2008,10 +2008,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2128,10 +2125,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2277,10 +2271,7 @@ func (m *GroupResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2554,10 +2545,7 @@ func (m *ObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2706,10 +2694,7 @@ func (m *Policy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2826,10 +2811,7 @@ func (m *PolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3137,10 +3119,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.proto b/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.proto index 4d490ff96e..9b5138ea54 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.proto +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.proto @@ -29,6 +29,8 @@ import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1alpha1"; +// DEPRECATED - This group version of Event is deprecated by audit.k8s.io/v1/Event. See the release notes for +// more information. // Event captures all the information that can be included in an API audit log. message Event { // ObjectMeta is included for interoperability with API infrastructure. @@ -174,6 +176,8 @@ message ObjectReference { optional string subresource = 7; } +// DEPRECATED - This group version of Policy is deprecated by audit.k8s.io/v1/Policy. See the release notes for +// more information. // Policy defines the configuration of audit logging, and the rules for how different request // categories are logged. message Policy { diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/types.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/types.go index 4b4b7f25c6..3e4eca4821 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/types.go +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/types.go @@ -74,7 +74,12 @@ const ( ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.7 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=audit.k8s.io,v1,Event +// DEPRECATED - This group version of Event is deprecated by audit.k8s.io/v1/Event. See the release notes for +// more information. // Event captures all the information that can be included in an API audit log. type Event struct { metav1.TypeMeta `json:",inline"` @@ -148,6 +153,9 @@ type Event struct { } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.7 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=audit.k8s.io,v1,EventList // EventList is a list of audit Events. type EventList struct { @@ -159,7 +167,12 @@ type EventList struct { } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.7 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=audit.k8s.io,v1,Policy +// DEPRECATED - This group version of Policy is deprecated by audit.k8s.io/v1/Policy. See the release notes for +// more information. // Policy defines the configuration of audit logging, and the rules for how different request // categories are logged. type Policy struct { @@ -181,6 +194,9 @@ type Policy struct { } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.7 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=audit.k8s.io,v1,PolicyList // PolicyList is a list of audit Policies. type PolicyList struct { diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.prerelease-lifecycle.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.prerelease-lifecycle.go new file mode 100644 index 0000000000..1fb3352112 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.prerelease-lifecycle.go @@ -0,0 +1,121 @@ +// +build !ignore_autogenerated + +/* +Copyright 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. +*/ + +// Code generated by prerelease-lifecycle-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + schema "k8s.io/apimachinery/pkg/runtime/schema" +) + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *Event) APILifecycleIntroduced() (major, minor int) { + return 1, 7 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *Event) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *Event) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "audit.k8s.io", Version: "v1", Kind: "Event"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *Event) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *EventList) APILifecycleIntroduced() (major, minor int) { + return 1, 7 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *EventList) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *EventList) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "audit.k8s.io", Version: "v1", Kind: "EventList"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *EventList) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *Policy) APILifecycleIntroduced() (major, minor int) { + return 1, 7 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *Policy) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *Policy) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "audit.k8s.io", Version: "v1", Kind: "Policy"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *Policy) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *PolicyList) APILifecycleIntroduced() (major, minor int) { + return 1, 7 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *PolicyList) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *PolicyList) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "audit.k8s.io", Version: "v1", Kind: "PolicyList"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *PolicyList) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/doc.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/doc.go index f3fe61683d..5ad5f251aa 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/doc.go +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/doc.go @@ -18,6 +18,7 @@ limitations under the License. // +k8s:protobuf-gen=package // +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/audit // +k8s:openapi-gen=true +// +k8s:prerelease-lifecycle-gen=true // +k8s:defaulter-gen=TypeMeta // +groupName=audit.k8s.io diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.pb.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.pb.go index 14870e4294..0437d71cf5 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.pb.go +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.pb.go @@ -1968,7 +1968,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -2017,10 +2017,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2137,10 +2134,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2286,10 +2280,7 @@ func (m *GroupResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2595,10 +2586,7 @@ func (m *ObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2747,10 +2735,7 @@ func (m *Policy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2867,10 +2852,7 @@ func (m *PolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3178,10 +3160,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.proto b/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.proto index 95bfb8cec5..0a200b5383 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.proto +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.proto @@ -29,6 +29,8 @@ import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; +// DEPRECATED - This group version of Event is deprecated by audit.k8s.io/v1/Event. See the release notes for +// more information. // Event captures all the information that can be included in an API audit log. message Event { // ObjectMeta is included for interoperability with API infrastructure. @@ -183,6 +185,8 @@ message ObjectReference { optional string subresource = 8; } +// DEPRECATED - This group version of Policy is deprecated by audit.k8s.io/v1/Policy. See the release notes for +// more information. // Policy defines the configuration of audit logging, and the rules for how different request // categories are logged. message Policy { diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/types.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/types.go index 0317cf6ec5..0bf6bfcb98 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/types.go +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/types.go @@ -67,7 +67,12 @@ const ( ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.8 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=audit.k8s.io,v1,Event +// DEPRECATED - This group version of Event is deprecated by audit.k8s.io/v1/Event. See the release notes for +// more information. // Event captures all the information that can be included in an API audit log. type Event struct { metav1.TypeMeta `json:",inline"` @@ -144,6 +149,9 @@ type Event struct { } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.8 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=audit.k8s.io,v1,EventList // EventList is a list of audit Events. type EventList struct { @@ -155,7 +163,12 @@ type EventList struct { } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.8 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=audit.k8s.io,v1,Policy +// DEPRECATED - This group version of Policy is deprecated by audit.k8s.io/v1/Policy. See the release notes for +// more information. // Policy defines the configuration of audit logging, and the rules for how different request // categories are logged. type Policy struct { @@ -177,6 +190,9 @@ type Policy struct { } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:prerelease-lifecycle-gen:introduced=1.8 +// +k8s:prerelease-lifecycle-gen:deprecated=1.21 +// +k8s:prerelease-lifecycle-gen:replacement=audit.k8s.io,v1,PolicyList // PolicyList is a list of audit Policies. type PolicyList struct { diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.prerelease-lifecycle.go b/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.prerelease-lifecycle.go new file mode 100644 index 0000000000..e475d4c2e6 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.prerelease-lifecycle.go @@ -0,0 +1,121 @@ +// +build !ignore_autogenerated + +/* +Copyright 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. +*/ + +// Code generated by prerelease-lifecycle-gen. DO NOT EDIT. + +package v1beta1 + +import ( + schema "k8s.io/apimachinery/pkg/runtime/schema" +) + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *Event) APILifecycleIntroduced() (major, minor int) { + return 1, 8 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *Event) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *Event) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "audit.k8s.io", Version: "v1", Kind: "Event"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *Event) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *EventList) APILifecycleIntroduced() (major, minor int) { + return 1, 8 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *EventList) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *EventList) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "audit.k8s.io", Version: "v1", Kind: "EventList"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *EventList) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *Policy) APILifecycleIntroduced() (major, minor int) { + return 1, 8 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *Policy) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *Policy) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "audit.k8s.io", Version: "v1", Kind: "Policy"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *Policy) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} + +// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. +func (in *PolicyList) APILifecycleIntroduced() (major, minor int) { + return 1, 8 +} + +// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. +func (in *PolicyList) APILifecycleDeprecated() (major, minor int) { + return 1, 21 +} + +// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type. +// It is controlled by "k8s:prerelease-lifecycle-gen:replacement=,," tags in types.go. +func (in *PolicyList) APILifecycleReplacement() schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "audit.k8s.io", Version: "v1", Kind: "PolicyList"} +} + +// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. +// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. +func (in *PolicyList) APILifecycleRemoved() (major, minor int) { + return 1, 24 +} diff --git a/vendor/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap/default.go b/vendor/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap/default.go index f3e9a1a7bd..a3a1dddc6f 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap/default.go +++ b/vendor/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap/default.go @@ -64,6 +64,7 @@ var ( } SuggestedFlowSchemas = []*flowcontrol.FlowSchema{ SuggestedFlowSchemaSystemNodes, // references "system" priority-level + SuggestedFlowSchemaProbes, // references "exempt" priority-level SuggestedFlowSchemaSystemLeaderElection, // references "leader-election" priority-level SuggestedFlowSchemaWorkloadLeaderElection, // references "leader-election" priority-level SuggestedFlowSchemaKubeControllerManager, // references "workload-high" priority-level @@ -83,7 +84,7 @@ var ( }, ) MandatoryPriorityLevelConfigurationCatchAll = newPriorityLevelConfiguration( - "catch-all", + flowcontrol.PriorityLevelConfigurationNameCatchAll, flowcontrol.PriorityLevelConfigurationSpec{ Type: flowcontrol.PriorityLevelEnablementLimited, Limited: &flowcontrol.LimitedPriorityLevelConfiguration{ @@ -126,8 +127,8 @@ var ( // "catch-all" priority-level only gets a minimal positive share of concurrency and won't be reaching // ideally unless you intentionally deleted the suggested "global-default". MandatoryFlowSchemaCatchAll = newFlowSchema( - "catch-all", - "catch-all", + flowcontrol.FlowSchemaNameCatchAll, + flowcontrol.PriorityLevelConfigurationNameCatchAll, 10000, // matchingPrecedence flowcontrol.FlowDistinguisherMethodByUserType, // distinguisherMethodType flowcontrol.PolicyRulesWithSubjects{ @@ -394,6 +395,19 @@ var ( }, }, ) + // the following flow schema exempts probes + SuggestedFlowSchemaProbes = newFlowSchema( + "probes", "exempt", 2, + "", // distinguisherMethodType + flowcontrol.PolicyRulesWithSubjects{ + Subjects: groups(user.AllUnauthenticated, user.AllAuthenticated), + NonResourceRules: []flowcontrol.NonResourcePolicyRule{ + nonResourceRule( + []string{"get"}, + []string{"/healthz", "/readyz", "/livez"}), + }, + }, + ) ) func newPriorityLevelConfiguration(name string, spec flowcontrol.PriorityLevelConfigurationSpec) *flowcontrol.PriorityLevelConfiguration { diff --git a/vendor/k8s.io/apiserver/pkg/audit/metrics.go b/vendor/k8s.io/apiserver/pkg/audit/metrics.go index 96166e6545..3cf6d8f2a1 100644 --- a/vendor/k8s.io/apiserver/pkg/audit/metrics.go +++ b/vendor/k8s.io/apiserver/pkg/audit/metrics.go @@ -17,6 +17,7 @@ limitations under the License. package audit import ( + "context" "fmt" auditinternal "k8s.io/apiserver/pkg/apis/audit" @@ -31,7 +32,7 @@ const ( /* * By default, all the following metrics are defined as falling under - * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) + * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/1209-metrics-stability/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) * * Promoting the stability level of the metric is a responsibility of the component owner, since it * involves explicitly acknowledging support for the metric across multiple releases, in accordance with @@ -84,13 +85,13 @@ func init() { } // ObserveEvent updates the relevant prometheus metrics for the generated audit event. -func ObserveEvent() { - eventCounter.Inc() +func ObserveEvent(ctx context.Context) { + eventCounter.WithContext(ctx).Inc() } // ObservePolicyLevel updates the relevant prometheus metrics with the audit level for a request. -func ObservePolicyLevel(level auditinternal.Level) { - levelCounter.WithLabelValues(string(level)).Inc() +func ObservePolicyLevel(ctx context.Context, level auditinternal.Level) { + levelCounter.WithContext(ctx).WithLabelValues(string(level)).Inc() } // HandlePluginError handles an error that occurred in an audit plugin. This method should only be diff --git a/vendor/k8s.io/apiserver/pkg/audit/policy/reader.go b/vendor/k8s.io/apiserver/pkg/audit/policy/reader.go index 81b800fd69..257375a76d 100644 --- a/vendor/k8s.io/apiserver/pkg/audit/policy/reader.go +++ b/vendor/k8s.io/apiserver/pkg/audit/policy/reader.go @@ -73,10 +73,15 @@ func LoadPolicyFromBytes(policyDef []byte) (*auditinternal.Policy, error) { } // Ensure the policy file contained an apiVersion and kind. - if !apiGroupVersionSet[schema.GroupVersion{Group: gvk.Group, Version: gvk.Version}] { + gv := schema.GroupVersion{Group: gvk.Group, Version: gvk.Version} + if !apiGroupVersionSet[gv] { return nil, fmt.Errorf("unknown group version field %v in policy", gvk) } + if gv != auditv1.SchemeGroupVersion { + klog.Warningf("%q is deprecated and will be removed in a future release, use %q instead", gv, auditv1.SchemeGroupVersion) + } + if err := validation.ValidatePolicy(policy); err != nil { return nil, err.ToAggregate() } @@ -85,6 +90,7 @@ func LoadPolicyFromBytes(policyDef []byte) (*auditinternal.Policy, error) { if policyCnt == 0 { return nil, fmt.Errorf("loaded illegal policy with 0 rules") } - klog.V(4).Infof("Loaded %d audit policy rules", policyCnt) + + klog.V(4).InfoS("Load audit policy rules success", "policyCnt", policyCnt) return policy, nil } diff --git a/vendor/k8s.io/apiserver/pkg/authentication/authenticatorfactory/delegating.go b/vendor/k8s.io/apiserver/pkg/authentication/authenticatorfactory/delegating.go index 83697bb547..4b7105697d 100644 --- a/vendor/k8s.io/apiserver/pkg/authentication/authenticatorfactory/delegating.go +++ b/vendor/k8s.io/apiserver/pkg/authentication/authenticatorfactory/delegating.go @@ -44,6 +44,9 @@ type DelegatingAuthenticatorConfig struct { // TokenAccessReviewClient is a client to do token review. It can be nil. Then every token is ignored. TokenAccessReviewClient authenticationclient.TokenReviewInterface + // TokenAccessReviewTimeout specifies a time limit for requests made by the authorization webhook client. + TokenAccessReviewTimeout time.Duration + // WebhookRetryBackoff specifies the backoff parameters for the authentication webhook retry logic. // This allows us to configure the sleep time at each iteration and the maximum number of retries allowed // before we fail the webhook call in order to limit the fan out that ensues when the system is degraded. @@ -88,7 +91,7 @@ func (c DelegatingAuthenticatorConfig) New() (authenticator.Request, *spec.Secur if c.WebhookRetryBackoff == nil { return nil, nil, errors.New("retry backoff parameters for delegating authentication webhook has not been specified") } - tokenAuth, err := webhooktoken.NewFromInterface(c.TokenAccessReviewClient, c.APIAudiences, *c.WebhookRetryBackoff) + tokenAuth, err := webhooktoken.NewFromInterface(c.TokenAccessReviewClient, c.APIAudiences, *c.WebhookRetryBackoff, c.TokenAccessReviewTimeout) if err != nil { return nil, nil, err } diff --git a/vendor/k8s.io/apiserver/pkg/authentication/request/x509/x509.go b/vendor/k8s.io/apiserver/pkg/authentication/request/x509/x509.go index 0116391409..09177f719b 100644 --- a/vendor/k8s.io/apiserver/pkg/authentication/request/x509/x509.go +++ b/vendor/k8s.io/apiserver/pkg/authentication/request/x509/x509.go @@ -35,7 +35,7 @@ import ( /* * By default, the following metric is defined as falling under - * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) + * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/1209-metrics-stability/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) * * Promoting the stability level of the metric is a responsibility of the component owner, since it * involves explicitly acknowledging support for the metric across multiple releases, in accordance with @@ -149,7 +149,7 @@ func (a *Authenticator) AuthenticateRequest(req *http.Request) (*authenticator.R } remaining := req.TLS.PeerCertificates[0].NotAfter.Sub(time.Now()) - clientCertificateExpirationHistogram.Observe(remaining.Seconds()) + clientCertificateExpirationHistogram.WithContext(req.Context()).Observe(remaining.Seconds()) chains, err := req.TLS.PeerCertificates[0].Verify(optsCopy) if err != nil { return nil, false, fmt.Errorf( diff --git a/vendor/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator.go b/vendor/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator.go index a10564f04d..b0d06a2318 100644 --- a/vendor/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator.go +++ b/vendor/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator.go @@ -133,7 +133,7 @@ func (a *cachedTokenAuthenticator) AuthenticateToken(ctx context.Context, token } func (a *cachedTokenAuthenticator) doAuthenticateToken(ctx context.Context, token string) *cacheRecord { - doneAuthenticating := stats.authenticating() + doneAuthenticating := stats.authenticating(ctx) auds, audsOk := authenticator.AudiencesFrom(ctx) @@ -145,7 +145,7 @@ func (a *cachedTokenAuthenticator) doAuthenticateToken(ctx context.Context, toke } // Record cache miss - doneBlocking := stats.blocking() + doneBlocking := stats.blocking(ctx) defer doneBlocking() defer doneAuthenticating(false) @@ -153,7 +153,7 @@ func (a *cachedTokenAuthenticator) doAuthenticateToken(ctx context.Context, toke // always use one place to read and write the output of AuthenticateToken record := &cacheRecord{} - doneFetching := stats.fetching() + doneFetching := stats.fetching(ctx) // We're leaving the request handling stack so we need to handle crashes // ourselves. Log a stack trace and return a 500 if something panics. defer func() { diff --git a/vendor/k8s.io/apiserver/pkg/authentication/token/cache/stats.go b/vendor/k8s.io/apiserver/pkg/authentication/token/cache/stats.go index dbe745718e..d1b959aa5e 100644 --- a/vendor/k8s.io/apiserver/pkg/authentication/token/cache/stats.go +++ b/vendor/k8s.io/apiserver/pkg/authentication/token/cache/stats.go @@ -17,6 +17,7 @@ limitations under the License. package cache import ( + "context" "time" "k8s.io/component-base/metrics" @@ -86,7 +87,7 @@ type statsCollector struct{} var stats = statsCollector{} -func (statsCollector) authenticating() func(hit bool) { +func (statsCollector) authenticating(ctx context.Context) func(hit bool) { start := time.Now() return func(hit bool) { var tag string @@ -98,18 +99,18 @@ func (statsCollector) authenticating() func(hit bool) { latency := time.Since(start) - requestCount.WithLabelValues(tag).Inc() - requestLatency.WithLabelValues(tag).Observe(float64(latency.Milliseconds()) / 1000) + requestCount.WithContext(ctx).WithLabelValues(tag).Inc() + requestLatency.WithContext(ctx).WithLabelValues(tag).Observe(float64(latency.Milliseconds()) / 1000) } } -func (statsCollector) blocking() func() { - activeFetchCount.WithLabelValues(fetchBlockedTag).Inc() - return activeFetchCount.WithLabelValues(fetchBlockedTag).Dec +func (statsCollector) blocking(ctx context.Context) func() { + activeFetchCount.WithContext(ctx).WithLabelValues(fetchBlockedTag).Inc() + return activeFetchCount.WithContext(ctx).WithLabelValues(fetchBlockedTag).Dec } -func (statsCollector) fetching() func(ok bool) { - activeFetchCount.WithLabelValues(fetchInFlightTag).Inc() +func (statsCollector) fetching(ctx context.Context) func(ok bool) { + activeFetchCount.WithContext(ctx).WithLabelValues(fetchInFlightTag).Inc() return func(ok bool) { var tag string if ok { @@ -118,8 +119,8 @@ func (statsCollector) fetching() func(ok bool) { tag = fetchFailedTag } - fetchCount.WithLabelValues(tag).Inc() + fetchCount.WithContext(ctx).WithLabelValues(tag).Inc() - activeFetchCount.WithLabelValues(fetchInFlightTag).Dec() + activeFetchCount.WithContext(ctx).WithLabelValues(fetchInFlightTag).Dec() } } diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/filterlatency/filterlatency.go b/vendor/k8s.io/apiserver/pkg/endpoints/filterlatency/filterlatency.go index 04264230d8..d42e18233f 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/filterlatency/filterlatency.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/filterlatency/filterlatency.go @@ -56,8 +56,8 @@ func TrackStarted(handler http.Handler, name string) http.Handler { // TrackCompleted measures the timestamp the given handler has completed execution and then // it updates the corresponding metric with the filter latency duration. func TrackCompleted(handler http.Handler) http.Handler { - return trackCompleted(handler, utilclock.RealClock{}, func(fr *requestFilterRecord, completedAt time.Time) { - metrics.RecordFilterLatency(fr.name, completedAt.Sub(fr.startedTimestamp)) + return trackCompleted(handler, utilclock.RealClock{}, func(ctx context.Context, fr *requestFilterRecord, completedAt time.Time) { + metrics.RecordFilterLatency(ctx, fr.name, completedAt.Sub(fr.startedTimestamp)) }) } @@ -81,7 +81,7 @@ func trackStarted(handler http.Handler, name string, clock utilclock.PassiveCloc }) } -func trackCompleted(handler http.Handler, clock utilclock.PassiveClock, action func(*requestFilterRecord, time.Time)) http.Handler { +func trackCompleted(handler http.Handler, clock utilclock.PassiveClock, action func(context.Context, *requestFilterRecord, time.Time)) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // The previous filter has just completed. completedAt := clock.Now() @@ -90,7 +90,7 @@ func trackCompleted(handler http.Handler, clock utilclock.PassiveClock, action f ctx := r.Context() if fr := requestFilterRecordFrom(ctx); fr != nil { - action(fr, completedAt) + action(ctx, fr, completedAt) } }) } diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/filters/audit.go b/vendor/k8s.io/apiserver/pkg/endpoints/filters/audit.go index 891d609354..2f78ff1de6 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/filters/audit.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/filters/audit.go @@ -18,6 +18,7 @@ package filters import ( "bufio" + "context" "errors" "fmt" "net" @@ -56,8 +57,8 @@ func WithAudit(handler http.Handler, sink audit.Sink, policy policy.Checker, lon } ev.Stage = auditinternal.StageRequestReceived - if processed := processAuditEvent(sink, ev, omitStages); !processed { - audit.ApiserverAuditDroppedCounter.Inc() + if processed := processAuditEvent(ctx, sink, ev, omitStages); !processed { + audit.ApiserverAuditDroppedCounter.WithContext(ctx).Inc() responsewriters.InternalError(w, req, errors.New("failed to store audit event")) return } @@ -70,7 +71,7 @@ func WithAudit(handler http.Handler, sink audit.Sink, policy policy.Checker, lon longRunningSink = sink } } - respWriter := decorateResponseWriter(w, ev, longRunningSink, omitStages) + respWriter := decorateResponseWriter(ctx, w, ev, longRunningSink, omitStages) // send audit event when we leave this func, either via a panic or cleanly. In the case of long // running requests, this will be the second audit event. @@ -84,7 +85,7 @@ func WithAudit(handler http.Handler, sink audit.Sink, policy policy.Checker, lon Reason: metav1.StatusReasonInternalError, Message: fmt.Sprintf("APIServer panic'd: %v", r), } - processAuditEvent(sink, ev, omitStages) + processAuditEvent(ctx, sink, ev, omitStages) return } @@ -98,14 +99,14 @@ func WithAudit(handler http.Handler, sink audit.Sink, policy policy.Checker, lon if ev.ResponseStatus == nil && longRunningSink != nil { ev.ResponseStatus = fakedSuccessStatus ev.Stage = auditinternal.StageResponseStarted - processAuditEvent(longRunningSink, ev, omitStages) + processAuditEvent(ctx, longRunningSink, ev, omitStages) } ev.Stage = auditinternal.StageResponseComplete if ev.ResponseStatus == nil { ev.ResponseStatus = fakedSuccessStatus } - processAuditEvent(sink, ev, omitStages) + processAuditEvent(ctx, sink, ev, omitStages) }() handler.ServeHTTP(respWriter, req) }) @@ -125,7 +126,7 @@ func createAuditEventAndAttachToContext(req *http.Request, policy policy.Checker } level, omitStages := policy.LevelAndStages(attribs) - audit.ObservePolicyLevel(level) + audit.ObservePolicyLevel(ctx, level) if level == auditinternal.LevelNone { // Don't audit. return req, nil, nil, nil @@ -145,7 +146,7 @@ func createAuditEventAndAttachToContext(req *http.Request, policy policy.Checker return req, ev, omitStages, nil } -func processAuditEvent(sink audit.Sink, ev *auditinternal.Event, omitStages []auditinternal.Stage) bool { +func processAuditEvent(ctx context.Context, sink audit.Sink, ev *auditinternal.Event, omitStages []auditinternal.Stage) bool { for _, stage := range omitStages { if ev.Stage == stage { return true @@ -157,12 +158,13 @@ func processAuditEvent(sink audit.Sink, ev *auditinternal.Event, omitStages []au } else { ev.StageTimestamp = metav1.NewMicroTime(time.Now()) } - audit.ObserveEvent() + audit.ObserveEvent(ctx) return sink.ProcessEvents(ev) } -func decorateResponseWriter(responseWriter http.ResponseWriter, ev *auditinternal.Event, sink audit.Sink, omitStages []auditinternal.Stage) http.ResponseWriter { +func decorateResponseWriter(ctx context.Context, responseWriter http.ResponseWriter, ev *auditinternal.Event, sink audit.Sink, omitStages []auditinternal.Stage) http.ResponseWriter { delegate := &auditResponseWriter{ + ctx: ctx, ResponseWriter: responseWriter, event: ev, sink: sink, @@ -186,6 +188,7 @@ var _ http.ResponseWriter = &auditResponseWriter{} // create immediately an event (for long running requests). type auditResponseWriter struct { http.ResponseWriter + ctx context.Context event *auditinternal.Event once sync.Once sink audit.Sink @@ -205,7 +208,7 @@ func (a *auditResponseWriter) processCode(code int) { a.event.Stage = auditinternal.StageResponseStarted if a.sink != nil { - processAuditEvent(a.sink, a.event, a.omitStages) + processAuditEvent(a.ctx, a.sink, a.event, a.omitStages) } }) } diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/filters/authentication.go b/vendor/k8s.io/apiserver/pkg/endpoints/filters/authentication.go index e88e7ad28d..d69cfef32d 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/filters/authentication.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/filters/authentication.go @@ -17,6 +17,7 @@ limitations under the License. package filters import ( + "context" "errors" "fmt" "net/http" @@ -31,13 +32,19 @@ import ( "k8s.io/klog/v2" ) +type recordMetrics func(context.Context, *authenticator.Response, bool, error, authenticator.Audiences, time.Time, time.Time) + // WithAuthentication creates an http handler that tries to authenticate the given request as a user, and then // stores any such user found onto the provided context for the request. If authentication fails or returns an error // the failed handler is used. On success, "Authorization" header is removed from the request and handler // is invoked to serve the request. func WithAuthentication(handler http.Handler, auth authenticator.Request, failed http.Handler, apiAuds authenticator.Audiences) http.Handler { + return withAuthentication(handler, auth, failed, apiAuds, recordAuthMetrics) +} + +func withAuthentication(handler http.Handler, auth authenticator.Request, failed http.Handler, apiAuds authenticator.Audiences, metrics recordMetrics) http.Handler { if auth == nil { - klog.Warningf("Authentication is disabled") + klog.Warning("Authentication is disabled") return handler } return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { @@ -47,10 +54,13 @@ func WithAuthentication(handler http.Handler, auth authenticator.Request, failed req = req.WithContext(authenticator.WithAudiences(req.Context(), apiAuds)) } resp, ok, err := auth.AuthenticateRequest(req) - defer recordAuthMetrics(resp, ok, err, apiAuds, authenticationStart) + authenticationFinish := time.Now() + defer func() { + metrics(req.Context(), resp, ok, err, apiAuds, authenticationStart, authenticationFinish) + }() if err != nil || !ok { if err != nil { - klog.Errorf("Unable to authenticate the request due to an error: %v", err) + klog.ErrorS(err, "Unable to authenticate the request") } failed.ServeHTTP(w, req) return diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/filters/authn_audit.go b/vendor/k8s.io/apiserver/pkg/endpoints/filters/authn_audit.go index 09d7db8cc9..2de13f7470 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/filters/authn_audit.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/filters/authn_audit.go @@ -52,7 +52,7 @@ func WithFailedAuthenticationAudit(failedHandler http.Handler, sink audit.Sink, ev.ResponseStatus.Message = getAuthMethods(req) ev.Stage = auditinternal.StageResponseStarted - rw := decorateResponseWriter(w, ev, sink, omitStages) + rw := decorateResponseWriter(req.Context(), w, ev, sink, omitStages) failedHandler.ServeHTTP(rw, req) }) } diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/filters/authorization.go b/vendor/k8s.io/apiserver/pkg/endpoints/filters/authorization.go index 8d115ff091..9683493812 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/filters/authorization.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/filters/authorization.go @@ -44,7 +44,7 @@ const ( // WithAuthorizationCheck passes all authorized requests on to handler, and returns a forbidden error otherwise. func WithAuthorization(handler http.Handler, a authorizer.Authorizer, s runtime.NegotiatedSerializer) http.Handler { if a == nil { - klog.Warningf("Authorization is disabled") + klog.Warning("Authorization is disabled") return handler } return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { @@ -70,7 +70,7 @@ func WithAuthorization(handler http.Handler, a authorizer.Authorizer, s runtime. return } - klog.V(4).Infof("Forbidden: %#v, Reason: %q", req.RequestURI, reason) + klog.V(4).InfoS("Forbidden", "URI", req.RequestURI, "Reason", reason) audit.LogAnnotation(ae, decisionAnnotationKey, decisionForbid) audit.LogAnnotation(ae, reasonAnnotationKey, reason) responsewriters.Forbidden(ctx, attributes, w, req, reason, s) diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/filters/impersonation.go b/vendor/k8s.io/apiserver/pkg/endpoints/filters/impersonation.go index 1246ae863a..16dd180dbc 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/filters/impersonation.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/filters/impersonation.go @@ -104,14 +104,14 @@ func WithImpersonation(handler http.Handler, a authorizer.Authorizer, s runtime. userExtra[extraKey] = append(userExtra[extraKey], extraValue) default: - klog.V(4).Infof("unknown impersonation request type: %v", impersonationRequest) + klog.V(4).InfoS("unknown impersonation request type", "Request", impersonationRequest) responsewriters.Forbidden(ctx, actingAsAttributes, w, req, fmt.Sprintf("unknown impersonation request type: %v", impersonationRequest), s) return } decision, reason, err := a.Authorize(ctx, actingAsAttributes) if err != nil || decision != authorizer.DecisionAllow { - klog.V(4).Infof("Forbidden: %#v, Reason: %s, Error: %v", req.RequestURI, reason, err) + klog.V(4).InfoS("Forbidden", "URI", req.RequestURI, "Reason", reason, "Error", err) responsewriters.Forbidden(ctx, actingAsAttributes, w, req, reason, s) return } diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/filters/metrics.go b/vendor/k8s.io/apiserver/pkg/endpoints/filters/metrics.go index 421c0e0a2b..31ead93d51 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/filters/metrics.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/filters/metrics.go @@ -17,6 +17,7 @@ limitations under the License. package filters import ( + "context" "strings" "time" @@ -27,7 +28,7 @@ import ( /* * By default, all the following metrics are defined as falling under - * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) + * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/1209-metrics-stability/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) * * Promoting the stability level of the metric is a responsibility of the component owner, since it * involves explicitly acknowledging support for the metric across multiple releases, in accordance with @@ -75,7 +76,7 @@ func init() { legacyregistry.MustRegister(authenticationLatency) } -func recordAuthMetrics(resp *authenticator.Response, ok bool, err error, apiAudiences authenticator.Audiences, authStart time.Time) { +func recordAuthMetrics(ctx context.Context, resp *authenticator.Response, ok bool, err error, apiAudiences authenticator.Audiences, authStart time.Time, authFinish time.Time) { var resultLabel string switch { @@ -85,11 +86,11 @@ func recordAuthMetrics(resp *authenticator.Response, ok bool, err error, apiAudi resultLabel = failureLabel default: resultLabel = successLabel - authenticatedUserCounter.WithLabelValues(compressUsername(resp.User.GetName())).Inc() + authenticatedUserCounter.WithContext(ctx).WithLabelValues(compressUsername(resp.User.GetName())).Inc() } - authenticatedAttemptsCounter.WithLabelValues(resultLabel).Inc() - authenticationLatency.WithLabelValues(resultLabel).Observe(time.Since(authStart).Seconds()) + authenticatedAttemptsCounter.WithContext(ctx).WithLabelValues(resultLabel).Inc() + authenticationLatency.WithContext(ctx).WithLabelValues(resultLabel).Observe(authFinish.Sub(authStart).Seconds()) } // compressUsername maps all possible usernames onto a small set of categories diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/filters/request_deadline.go b/vendor/k8s.io/apiserver/pkg/endpoints/filters/request_deadline.go new file mode 100644 index 0000000000..cc4997968a --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/filters/request_deadline.go @@ -0,0 +1,172 @@ +/* +Copyright 2020 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. +*/ + +package filters + +import ( + "context" + "errors" + "fmt" + "net/http" + "time" + + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + utilclock "k8s.io/apimachinery/pkg/util/clock" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + auditinternal "k8s.io/apiserver/pkg/apis/audit" + "k8s.io/apiserver/pkg/audit" + "k8s.io/apiserver/pkg/audit/policy" + "k8s.io/apiserver/pkg/endpoints/handlers/responsewriters" + "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/klog/v2" +) + +const ( + // The 'timeout' query parameter in the request URL has an invalid duration specifier + invalidTimeoutInURL = "invalid timeout specified in the request URL" +) + +// WithRequestDeadline determines the timeout duration applicable to the given request and sets a new context +// with the appropriate deadline. +// auditWrapper provides an http.Handler that audits a failed request. +// longRunning returns true if he given request is a long running request. +// requestTimeoutMaximum specifies the default request timeout value. +func WithRequestDeadline(handler http.Handler, sink audit.Sink, policy policy.Checker, longRunning request.LongRunningRequestCheck, + negotiatedSerializer runtime.NegotiatedSerializer, requestTimeoutMaximum time.Duration) http.Handler { + return withRequestDeadline(handler, sink, policy, longRunning, negotiatedSerializer, requestTimeoutMaximum, utilclock.RealClock{}) +} + +func withRequestDeadline(handler http.Handler, sink audit.Sink, policy policy.Checker, longRunning request.LongRunningRequestCheck, + negotiatedSerializer runtime.NegotiatedSerializer, requestTimeoutMaximum time.Duration, clock utilclock.PassiveClock) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + ctx := req.Context() + + requestInfo, ok := request.RequestInfoFrom(ctx) + if !ok { + handleError(w, req, http.StatusInternalServerError, fmt.Errorf("no RequestInfo found in context, handler chain must be wrong")) + return + } + if longRunning(req, requestInfo) { + handler.ServeHTTP(w, req) + return + } + + userSpecifiedTimeout, ok, err := parseTimeout(req) + if err != nil { + statusErr := apierrors.NewBadRequest(err.Error()) + + klog.Errorf("Error - %s: %#v", err.Error(), req.RequestURI) + + failed := failedErrorHandler(negotiatedSerializer, statusErr) + failWithAudit := withFailedRequestAudit(failed, statusErr, sink, policy) + failWithAudit.ServeHTTP(w, req) + return + } + + timeout := requestTimeoutMaximum + if ok { + // we use the default timeout enforced by the apiserver: + // - if the user has specified a timeout of 0s, this implies no timeout on the user's part. + // - if the user has specified a timeout that exceeds the maximum deadline allowed by the apiserver. + if userSpecifiedTimeout > 0 && userSpecifiedTimeout < requestTimeoutMaximum { + timeout = userSpecifiedTimeout + } + } + + started := clock.Now() + if requestStartedTimestamp, ok := request.ReceivedTimestampFrom(ctx); ok { + started = requestStartedTimestamp + } + + ctx, cancel := context.WithDeadline(ctx, started.Add(timeout)) + defer cancel() + + req = req.WithContext(ctx) + handler.ServeHTTP(w, req) + }) +} + +// withFailedRequestAudit decorates a failed http.Handler and is used to audit a failed request. +// statusErr is used to populate the Message property of ResponseStatus. +func withFailedRequestAudit(failedHandler http.Handler, statusErr *apierrors.StatusError, sink audit.Sink, policy policy.Checker) http.Handler { + if sink == nil || policy == nil { + return failedHandler + } + return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + req, ev, omitStages, err := createAuditEventAndAttachToContext(req, policy) + if err != nil { + utilruntime.HandleError(fmt.Errorf("failed to create audit event: %v", err)) + responsewriters.InternalError(w, req, errors.New("failed to create audit event")) + return + } + if ev == nil { + failedHandler.ServeHTTP(w, req) + return + } + + ev.ResponseStatus = &metav1.Status{} + ev.Stage = auditinternal.StageResponseStarted + if statusErr != nil { + ev.ResponseStatus.Message = statusErr.Error() + } + + rw := decorateResponseWriter(req.Context(), w, ev, sink, omitStages) + failedHandler.ServeHTTP(rw, req) + }) +} + +// failedErrorHandler returns an http.Handler that uses the specified StatusError object +// to render an error response to the request. +func failedErrorHandler(s runtime.NegotiatedSerializer, statusError *apierrors.StatusError) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + ctx := req.Context() + requestInfo, found := request.RequestInfoFrom(ctx) + if !found { + responsewriters.InternalError(w, req, errors.New("no RequestInfo found in the context")) + return + } + + gv := schema.GroupVersion{Group: requestInfo.APIGroup, Version: requestInfo.APIVersion} + responsewriters.ErrorNegotiated(statusError, s, gv, w, req) + }) +} + +// parseTimeout parses the given HTTP request URL and extracts the timeout query parameter +// value if specified by the user. +// If a timeout is not specified the function returns false and err is set to nil +// If the value specified is malformed then the function returns false and err is set +func parseTimeout(req *http.Request) (time.Duration, bool, error) { + value := req.URL.Query().Get("timeout") + if value == "" { + return 0, false, nil + } + + timeout, err := time.ParseDuration(value) + if err != nil { + return 0, false, fmt.Errorf("%s - %s", invalidTimeoutInURL, err.Error()) + } + + return timeout, true, nil +} + +func handleError(w http.ResponseWriter, r *http.Request, code int, err error) { + errorMsg := fmt.Sprintf("Error - %s: %#v", err.Error(), r.RequestURI) + http.Error(w, errorMsg, code) + klog.Errorf(errorMsg) +} diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/groupversion.go b/vendor/k8s.io/apiserver/pkg/endpoints/groupversion.go index 22b9736614..a6f17e84ac 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/groupversion.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/groupversion.go @@ -36,6 +36,13 @@ import ( openapiproto "k8s.io/kube-openapi/pkg/util/proto" ) +// ConvertabilityChecker indicates what versions a GroupKind is available in. +type ConvertabilityChecker interface { + // VersionsForGroupKind indicates what versions are available to convert a group kind. This determines + // what our decoding abilities are. + VersionsForGroupKind(gk schema.GroupKind) []schema.GroupVersion +} + // APIGroupVersion is a helper for exposing rest.Storage objects as http.Handlers via go-restful // It handles URLs of the form: // /${storage_key}[/${object_name}] @@ -67,13 +74,14 @@ type APIGroupVersion struct { Serializer runtime.NegotiatedSerializer ParameterCodec runtime.ParameterCodec - Typer runtime.ObjectTyper - Creater runtime.ObjectCreater - Convertor runtime.ObjectConvertor - Defaulter runtime.ObjectDefaulter - Linker runtime.SelfLinker - UnsafeConvertor runtime.ObjectConvertor - TypeConverter fieldmanager.TypeConverter + Typer runtime.ObjectTyper + Creater runtime.ObjectCreater + Convertor runtime.ObjectConvertor + ConvertabilityChecker ConvertabilityChecker + Defaulter runtime.ObjectDefaulter + Linker runtime.SelfLinker + UnsafeConvertor runtime.ObjectConvertor + TypeConverter fieldmanager.TypeConverter EquivalentResourceRegistry runtime.EquivalentResourceRegistry diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go index 631914f36a..b2e167f26f 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go @@ -35,6 +35,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/audit" + "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager" "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/features" @@ -49,7 +50,7 @@ var namespaceGVK = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Name func createHandler(r rest.NamedCreater, scope *RequestScope, admit admission.Interface, includeName bool) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { // For performance tracking purposes. - trace := utiltrace.New("Create", utiltrace.Field{Key: "url", Value: req.URL.Path}, utiltrace.Field{Key: "user-agent", Value: &lazyTruncatedUserAgent{req}}, utiltrace.Field{Key: "client", Value: &lazyClientIP{req}}) + trace := utiltrace.New("Create", traceFields(req)...) defer trace.LogIfLong(500 * time.Millisecond) if isDryRun(req.URL) && !utilfeature.DefaultFeatureGate.Enabled(features.DryRun) { @@ -57,9 +58,6 @@ func createHandler(r rest.NamedCreater, scope *RequestScope, admit admission.Int return } - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - namespace, name, err := scope.Namer.Name(req) if err != nil { if includeName { @@ -76,7 +74,9 @@ func createHandler(r rest.NamedCreater, scope *RequestScope, admit admission.Int } } - ctx, cancel := context.WithTimeout(req.Context(), timeout) + // enforce a timeout of at most requestTimeoutUpperBound (34s) or less if the user-provided + // timeout inside the parent context is lower than requestTimeoutUpperBound. + ctx, cancel := context.WithTimeout(req.Context(), requestTimeoutUpperBound) defer cancel() outputMediaType, _, err := negotiation.NegotiateOutputMediaType(req, scope.Serializer, scope) if err != nil { @@ -157,13 +157,14 @@ func createHandler(r rest.NamedCreater, scope *RequestScope, admit admission.Int } // Dedup owner references before updating managed fields dedupOwnerReferencesAndAddWarning(obj, req.Context(), false) - result, err := finishRequest(timeout, func() (runtime.Object, error) { + result, err := finishRequest(ctx, func() (runtime.Object, error) { if scope.FieldManager != nil { liveObj, err := scope.Creater.New(scope.Kind) if err != nil { return nil, fmt.Errorf("failed to create new object (Create for %v): %v", scope.Kind, err) } obj = scope.FieldManager.UpdateNoErrors(liveObj, obj, managerOrUserAgent(options.FieldManager, req.UserAgent())) + admit = fieldmanager.NewManagedFieldsValidatingAdmissionController(admit) } if mutatingAdmission, ok := admit.(admission.MutationInterface); ok && mutatingAdmission.Handles(admission.Create) { if err := mutatingAdmission.Admit(ctx, admissionAttributes, scope); err != nil { diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go index 892aaf4a0d..545ed897c2 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go @@ -46,7 +46,7 @@ import ( func DeleteResource(r rest.GracefulDeleter, allowsOptions bool, scope *RequestScope, admit admission.Interface) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { // For performance tracking purposes. - trace := utiltrace.New("Delete", utiltrace.Field{Key: "url", Value: req.URL.Path}, utiltrace.Field{Key: "user-agent", Value: &lazyTruncatedUserAgent{req}}, utiltrace.Field{Key: "client", Value: &lazyClientIP{req}}) + trace := utiltrace.New("Delete", traceFields(req)...) defer trace.LogIfLong(500 * time.Millisecond) if isDryRun(req.URL) && !utilfeature.DefaultFeatureGate.Enabled(features.DryRun) { @@ -54,16 +54,17 @@ func DeleteResource(r rest.GracefulDeleter, allowsOptions bool, scope *RequestSc return } - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - namespace, name, err := scope.Namer.Name(req) if err != nil { scope.err(err, w, req) return } - ctx, cancel := context.WithTimeout(req.Context(), timeout) + + // enforce a timeout of at most requestTimeoutUpperBound (34s) or less if the user-provided + // timeout inside the parent context is lower than requestTimeoutUpperBound. + ctx, cancel := context.WithTimeout(req.Context(), requestTimeoutUpperBound) defer cancel() + ctx = request.WithNamespace(ctx, namespace) ae := request.AuditEventFrom(ctx) admit = admission.WithAudit(admit, ae) @@ -123,7 +124,7 @@ func DeleteResource(r rest.GracefulDeleter, allowsOptions bool, scope *RequestSc wasDeleted := true userInfo, _ := request.UserFrom(ctx) staticAdmissionAttrs := admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Delete, options, dryrun.IsDryRun(options.DryRun), userInfo) - result, err := finishRequest(timeout, func() (runtime.Object, error) { + result, err := finishRequest(ctx, func() (runtime.Object, error) { obj, deleted, err := r.Delete(ctx, name, rest.AdmissionToValidateObjectDeleteFunc(admit, staticAdmissionAttrs, scope), options) wasDeleted = deleted return obj, err @@ -141,6 +142,7 @@ func DeleteResource(r rest.GracefulDeleter, allowsOptions bool, scope *RequestSc // that will break existing clients. // Other cases where resource is not instantly deleted are: namespace deletion // and pod graceful deletion. + //lint:ignore SA1019 backwards compatibility if !wasDeleted && options.OrphanDependents != nil && !*options.OrphanDependents { status = http.StatusAccepted } @@ -164,7 +166,7 @@ func DeleteResource(r rest.GracefulDeleter, allowsOptions bool, scope *RequestSc // DeleteCollection returns a function that will handle a collection deletion func DeleteCollection(r rest.CollectionDeleter, checkBody bool, scope *RequestScope, admit admission.Interface) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { - trace := utiltrace.New("Delete", utiltrace.Field{"url", req.URL.Path}) + trace := utiltrace.New("Delete", traceFields(req)...) defer trace.LogIfLong(500 * time.Millisecond) if isDryRun(req.URL) && !utilfeature.DefaultFeatureGate.Enabled(features.DryRun) { @@ -172,17 +174,17 @@ func DeleteCollection(r rest.CollectionDeleter, checkBody bool, scope *RequestSc return } - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - namespace, err := scope.Namer.Namespace(req) if err != nil { scope.err(err, w, req) return } - ctx, cancel := context.WithTimeout(req.Context(), timeout) + // enforce a timeout of at most requestTimeoutUpperBound (34s) or less if the user-provided + // timeout inside the parent context is lower than requestTimeoutUpperBound. + ctx, cancel := context.WithTimeout(req.Context(), requestTimeoutUpperBound) defer cancel() + ctx = request.WithNamespace(ctx, namespace) ae := request.AuditEventFrom(ctx) @@ -265,7 +267,7 @@ func DeleteCollection(r rest.CollectionDeleter, checkBody bool, scope *RequestSc admit = admission.WithAudit(admit, ae) userInfo, _ := request.UserFrom(ctx) staticAdmissionAttrs := admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, "", scope.Resource, scope.Subresource, admission.Delete, options, dryrun.IsDryRun(options.DryRun), userInfo) - result, err := finishRequest(timeout, func() (runtime.Object, error) { + result, err := finishRequest(ctx, func() (runtime.Object, error) { return r.DeleteCollection(ctx, rest.AdmissionToValidateObjectDeleteFunc(admit, staticAdmissionAttrs, scope), options, &listOptions) }) if err != nil { diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/admission.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/admission.go new file mode 100644 index 0000000000..20bbab0650 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/admission.go @@ -0,0 +1,86 @@ +/* +Copyright 2021 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. +*/ + +package fieldmanager + +import ( + "context" + "fmt" + + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/warning" +) + +// InvalidManagedFieldsAfterMutatingAdmissionWarningFormat is the warning that a client receives +// when a create/update/patch request results in invalid managedFields after going through the admission chain. +const InvalidManagedFieldsAfterMutatingAdmissionWarningFormat = ".metadata.managedFields was in an invalid state after admission; this could be caused by an outdated mutating admission controller; please fix your requests: %v" + +// NewManagedFieldsValidatingAdmissionController validates the managedFields after calling +// the provided admission and resets them to their original state if they got changed to an invalid value +func NewManagedFieldsValidatingAdmissionController(wrap admission.Interface) admission.Interface { + if wrap == nil { + return nil + } + return &managedFieldsValidatingAdmissionController{wrap: wrap} +} + +type managedFieldsValidatingAdmissionController struct { + wrap admission.Interface +} + +var _ admission.Interface = &managedFieldsValidatingAdmissionController{} +var _ admission.MutationInterface = &managedFieldsValidatingAdmissionController{} +var _ admission.ValidationInterface = &managedFieldsValidatingAdmissionController{} + +// Handles calls the wrapped admission.Interface if applicable +func (admit *managedFieldsValidatingAdmissionController) Handles(operation admission.Operation) bool { + return admit.wrap.Handles(operation) +} + +// Admit calls the wrapped admission.Interface if applicable and resets the managedFields to their state before admission if they +// got modified in an invalid way +func (admit *managedFieldsValidatingAdmissionController) Admit(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) (err error) { + mutationInterface, isMutationInterface := admit.wrap.(admission.MutationInterface) + if !isMutationInterface { + return nil + } + objectMeta, err := meta.Accessor(a.GetObject()) + if err != nil { + return err + } + managedFieldsBeforeAdmission := objectMeta.GetManagedFields() + if err := mutationInterface.Admit(ctx, a, o); err != nil { + return err + } + managedFieldsAfterAdmission := objectMeta.GetManagedFields() + if _, err := DecodeManagedFields(managedFieldsAfterAdmission); err != nil { + objectMeta.SetManagedFields(managedFieldsBeforeAdmission) + warning.AddWarning(ctx, "", + fmt.Sprintf(InvalidManagedFieldsAfterMutatingAdmissionWarningFormat, + err.Error()), + ) + } + return nil +} + +// Validate calls the wrapped admission.Interface if aplicable +func (admit *managedFieldsValidatingAdmissionController) Validate(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) (err error) { + if validationInterface, isValidationInterface := admit.wrap.(admission.ValidationInterface); isValidationInterface { + return validationInterface.Validate(ctx, a, o) + } + return nil +} diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/fieldmanager.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/fieldmanager.go index 7e81fcc892..5ef25dc81c 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/fieldmanager.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/fieldmanager.go @@ -78,8 +78,8 @@ func NewFieldManager(f Manager, ignoreManagedFieldsFromRequestObject bool) *Fiel // NewDefaultFieldManager creates a new FieldManager that merges apply requests // and update managed fields for other types of requests. -func NewDefaultFieldManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, hub schema.GroupVersion, ignoreManagedFieldsFromRequestObject bool) (*FieldManager, error) { - f, err := NewStructuredMergeManager(typeConverter, objectConverter, objectDefaulter, kind.GroupVersion(), hub) +func NewDefaultFieldManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, hub schema.GroupVersion, ignoreManagedFieldsFromRequestObject bool, resetFields map[fieldpath.APIVersion]*fieldpath.Set) (*FieldManager, error) { + f, err := NewStructuredMergeManager(typeConverter, objectConverter, objectDefaulter, kind.GroupVersion(), hub, resetFields) if err != nil { return nil, fmt.Errorf("failed to create field manager: %v", err) } @@ -89,8 +89,8 @@ func NewDefaultFieldManager(typeConverter TypeConverter, objectConverter runtime // NewDefaultCRDFieldManager creates a new FieldManager specifically for // CRDs. This allows for the possibility of fields which are not defined // in models, as well as having no models defined at all. -func NewDefaultCRDFieldManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, hub schema.GroupVersion, ignoreManagedFieldsFromRequestObject bool) (_ *FieldManager, err error) { - f, err := NewCRDStructuredMergeManager(typeConverter, objectConverter, objectDefaulter, kind.GroupVersion(), hub) +func NewDefaultCRDFieldManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, hub schema.GroupVersion, ignoreManagedFieldsFromRequestObject bool, resetFields map[fieldpath.APIVersion]*fieldpath.Set) (_ *FieldManager, err error) { + f, err := NewCRDStructuredMergeManager(typeConverter, objectConverter, objectDefaulter, kind.GroupVersion(), hub, resetFields) if err != nil { return nil, fmt.Errorf("failed to create field manager: %v", err) } @@ -110,23 +110,22 @@ func newDefaultFieldManager(f Manager, typeConverter TypeConverter, objectConver return NewFieldManager(f, ignoreManagedFieldsFromRequestObject) } -func decodeLiveManagedFields(liveObj runtime.Object) (Managed, error) { +// DecodeManagedFields converts ManagedFields from the wire format (api format) +// to the format used by sigs.k8s.io/structured-merge-diff +func DecodeManagedFields(encodedManagedFields []metav1.ManagedFieldsEntry) (Managed, error) { + return internal.DecodeManagedFields(encodedManagedFields) +} + +func decodeLiveOrNew(liveObj, newObj runtime.Object, ignoreManagedFieldsFromRequestObject bool) (Managed, error) { liveAccessor, err := meta.Accessor(liveObj) if err != nil { return nil, err } - managed, err := internal.DecodeObjectManagedFields(liveAccessor.GetManagedFields()) - if err != nil { - return internal.NewEmptyManaged(), nil - } - return managed, nil -} -func decodeManagedFields(liveObj, newObj runtime.Object, ignoreManagedFieldsFromRequestObject bool) (Managed, error) { // We take the managedFields of the live object in case the request tries to // manually set managedFields via a subresource. if ignoreManagedFieldsFromRequestObject { - return decodeLiveManagedFields(liveObj) + return emptyManagedFieldsOnErr(DecodeManagedFields(liveAccessor.GetManagedFields())) } // If the object doesn't have metadata, we should just return without trying to @@ -140,14 +139,20 @@ func decodeManagedFields(liveObj, newObj runtime.Object, ignoreManagedFieldsFrom return internal.NewEmptyManaged(), nil } - managed, err := internal.DecodeObjectManagedFields(newAccessor.GetManagedFields()) // If the managed field is empty or we failed to decode it, // let's try the live object. This is to prevent clients who // don't understand managedFields from deleting it accidentally. + managed, err := DecodeManagedFields(newAccessor.GetManagedFields()) if err != nil || len(managed.Fields()) == 0 { - return decodeLiveManagedFields(liveObj) + return emptyManagedFieldsOnErr(DecodeManagedFields(liveAccessor.GetManagedFields())) } + return managed, nil +} +func emptyManagedFieldsOnErr(managed Managed, err error) (Managed, error) { + if err != nil { + return internal.NewEmptyManaged(), nil + } return managed, nil } @@ -157,7 +162,7 @@ func decodeManagedFields(liveObj, newObj runtime.Object, ignoreManagedFieldsFrom func (f *FieldManager) Update(liveObj, newObj runtime.Object, manager string) (object runtime.Object, err error) { // First try to decode the managed fields provided in the update, // This is necessary to allow directly updating managed fields. - managed, err := decodeManagedFields(liveObj, newObj, f.ignoreManagedFieldsFromRequestObject) + managed, err := decodeLiveOrNew(liveObj, newObj, f.ignoreManagedFieldsFromRequestObject) if err != nil { return newObj, nil } @@ -183,9 +188,8 @@ func (f *FieldManager) UpdateNoErrors(liveObj, newObj runtime.Object, manager st obj, err := f.Update(liveObj, newObj, manager) if err != nil { atMostEverySecond.Do(func() { - klog.Errorf("[SHOULD NOT HAPPEN] failed to update managedFields for %v: %v", - newObj.GetObjectKind().GroupVersionKind(), - err) + klog.ErrorS(err, "[SHOULD NOT HAPPEN] failed to update managedFields", "VersionKind", + newObj.GetObjectKind().GroupVersionKind()) }) // Explicitly remove managedFields on failure, so that // we can't have garbage in it. @@ -220,7 +224,7 @@ func (f *FieldManager) Apply(liveObj, appliedObj runtime.Object, manager string, } // Decode the managed fields in the live object, since it isn't allowed in the patch. - managed, err := internal.DecodeObjectManagedFields(accessor.GetManagedFields()) + managed, err := DecodeManagedFields(accessor.GetManagedFields()) if err != nil { return nil, fmt.Errorf("failed to decode managed fields: %v", err) } diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal/managedfields.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal/managedfields.go index 9a625e2acf..40237cdc66 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal/managedfields.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal/managedfields.go @@ -77,15 +77,6 @@ func RemoveObjectManagedFields(obj runtime.Object) { accessor.SetManagedFields(nil) } -// DecodeObjectManagedFields extracts and converts the objects ManagedFields into a fieldpath.ManagedFields. -func DecodeObjectManagedFields(from []metav1.ManagedFieldsEntry) (ManagedInterface, error) { - managed, err := decodeManagedFields(from) - if err != nil { - return nil, fmt.Errorf("failed to convert managed fields from API: %v", err) - } - return &managed, nil -} - // EncodeObjectManagedFields converts and stores the fieldpathManagedFields into the objects ManagedFields func EncodeObjectManagedFields(obj runtime.Object, managed ManagedInterface) error { accessor, err := meta.Accessor(obj) @@ -102,32 +93,41 @@ func EncodeObjectManagedFields(obj runtime.Object, managed ManagedInterface) err return nil } -// decodeManagedFields converts ManagedFields from the wire format (api format) +// DecodeManagedFields converts ManagedFields from the wire format (api format) // to the format used by sigs.k8s.io/structured-merge-diff -func decodeManagedFields(encodedManagedFields []metav1.ManagedFieldsEntry) (managed managedStruct, err error) { +func DecodeManagedFields(encodedManagedFields []metav1.ManagedFieldsEntry) (ManagedInterface, error) { + managed := managedStruct{} managed.fields = make(fieldpath.ManagedFields, len(encodedManagedFields)) managed.times = make(map[string]*metav1.Time, len(encodedManagedFields)) for i, encodedVersionedSet := range encodedManagedFields { + switch encodedVersionedSet.Operation { + case metav1.ManagedFieldsOperationApply, metav1.ManagedFieldsOperationUpdate: + default: + return nil, fmt.Errorf("operation must be `Apply` or `Update`") + } + if len(encodedVersionedSet.APIVersion) < 1 { + return nil, fmt.Errorf("apiVersion must not be empty") + } switch encodedVersionedSet.FieldsType { case "FieldsV1": // Valid case. case "": - return managedStruct{}, fmt.Errorf("missing fieldsType in managed fields entry %d", i) + return nil, fmt.Errorf("missing fieldsType in managed fields entry %d", i) default: - return managedStruct{}, fmt.Errorf("invalid fieldsType %q in managed fields entry %d", encodedVersionedSet.FieldsType, i) + return nil, fmt.Errorf("invalid fieldsType %q in managed fields entry %d", encodedVersionedSet.FieldsType, i) } manager, err := BuildManagerIdentifier(&encodedVersionedSet) if err != nil { - return managedStruct{}, fmt.Errorf("error decoding manager from %v: %v", encodedVersionedSet, err) + return nil, fmt.Errorf("error decoding manager from %v: %v", encodedVersionedSet, err) } managed.fields[manager], err = decodeVersionedSet(&encodedVersionedSet) if err != nil { - return managedStruct{}, fmt.Errorf("error decoding versioned set from %v: %v", encodedVersionedSet, err) + return nil, fmt.Errorf("error decoding versioned set from %v: %v", encodedVersionedSet, err) } managed.times[manager] = encodedVersionedSet.Time } - return managed, nil + return &managed, nil } // BuildManagerIdentifier creates a manager identifier string from a ManagedFieldsEntry diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/node.yaml b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/node.yaml index 13a14cf449..de69de83e6 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/node.yaml +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/node.yaml @@ -15,6 +15,8 @@ metadata: cloud.google.com/gke-os-distribution: cos failure-domain.beta.kubernetes.io/region: us-central1 failure-domain.beta.kubernetes.io/zone: us-central1-b + topology.kubernetes.io/region: us-central1 + topology.kubernetes.io/zone: us-central1-b kubernetes.io/hostname: node-default-pool-something name: node-default-pool-something resourceVersion: "211582541" diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/structuredmerge.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/structuredmerge.go index 216a39cf7a..bfa3a3f715 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/structuredmerge.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/structuredmerge.go @@ -41,7 +41,7 @@ var _ Manager = &structuredMergeManager{} // NewStructuredMergeManager creates a new Manager that merges apply requests // and update managed fields for other types of requests. -func NewStructuredMergeManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, gv schema.GroupVersion, hub schema.GroupVersion) (Manager, error) { +func NewStructuredMergeManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, gv schema.GroupVersion, hub schema.GroupVersion, resetFields map[fieldpath.APIVersion]*fieldpath.Set) (Manager, error) { return &structuredMergeManager{ typeConverter: typeConverter, objectConverter: objectConverter, @@ -49,7 +49,8 @@ func NewStructuredMergeManager(typeConverter TypeConverter, objectConverter runt groupVersion: gv, hubVersion: hub, updater: merge.Updater{ - Converter: newVersionConverter(typeConverter, objectConverter, hub), // This is the converter provided to SMD from k8s + Converter: newVersionConverter(typeConverter, objectConverter, hub), // This is the converter provided to SMD from k8s + IgnoredFields: resetFields, }, }, nil } @@ -57,7 +58,7 @@ func NewStructuredMergeManager(typeConverter TypeConverter, objectConverter runt // NewCRDStructuredMergeManager creates a new Manager specifically for // CRDs. This allows for the possibility of fields which are not defined // in models, as well as having no models defined at all. -func NewCRDStructuredMergeManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, gv schema.GroupVersion, hub schema.GroupVersion) (_ Manager, err error) { +func NewCRDStructuredMergeManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, gv schema.GroupVersion, hub schema.GroupVersion, resetFields map[fieldpath.APIVersion]*fieldpath.Set) (_ Manager, err error) { return &structuredMergeManager{ typeConverter: typeConverter, objectConverter: objectConverter, @@ -65,7 +66,8 @@ func NewCRDStructuredMergeManager(typeConverter TypeConverter, objectConverter r groupVersion: gv, hubVersion: hub, updater: merge.Updater{ - Converter: newCRDVersionConverter(typeConverter, objectConverter, hub), + Converter: newCRDVersionConverter(typeConverter, objectConverter, hub), + IgnoredFields: resetFields, }, }, nil } @@ -116,7 +118,7 @@ func (f *structuredMergeManager) Apply(liveObj, patchObj runtime.Object, managed return nil, nil, fmt.Errorf("couldn't get accessor: %v", err) } if patchObjMeta.GetManagedFields() != nil { - return nil, nil, errors.NewBadRequest(fmt.Sprintf("metadata.managedFields must be nil")) + return nil, nil, errors.NewBadRequest("metadata.managedFields must be nil") } liveObjVersioned, err := f.toVersioned(liveObj) diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/get.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/get.go index c3f6e4cbe1..6c09b49653 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/get.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/get.go @@ -19,14 +19,15 @@ package handlers import ( "context" "fmt" - metainternalversionvalidation "k8s.io/apimachinery/pkg/apis/meta/internalversion/validation" - "k8s.io/apimachinery/pkg/runtime/schema" "math/rand" "net/http" "net/url" "strings" "time" + metainternalversionvalidation "k8s.io/apimachinery/pkg/apis/meta/internalversion/validation" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/klog/v2" "k8s.io/apimachinery/pkg/api/errors" @@ -51,7 +52,7 @@ type getterFunc func(ctx context.Context, name string, req *http.Request, trace // passed-in getterFunc to perform the actual get. func getResourceHandler(scope *RequestScope, getter getterFunc) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { - trace := utiltrace.New("Get", utiltrace.Field{Key: "url", Value: req.URL.Path}, utiltrace.Field{Key: "user-agent", Value: &lazyTruncatedUserAgent{req}}, utiltrace.Field{Key: "client", Value: &lazyClientIP{req}}) + trace := utiltrace.New("Get", traceFields(req)...) defer trace.LogIfLong(500 * time.Millisecond) namespace, name, err := scope.Namer.Name(req) @@ -81,22 +82,22 @@ func getResourceHandler(scope *RequestScope, getter getterFunc) http.HandlerFunc } // GetResource returns a function that handles retrieving a single resource from a rest.Storage object. -func GetResource(r rest.Getter, e rest.Exporter, scope *RequestScope) http.HandlerFunc { +func GetResource(r rest.Getter, scope *RequestScope) http.HandlerFunc { return getResourceHandler(scope, func(ctx context.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) { // check for export options := metav1.GetOptions{} if values := req.URL.Query(); len(values) > 0 { - exports := metav1.ExportOptions{} - if err := metainternalversionscheme.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, &exports); err != nil { - err = errors.NewBadRequest(err.Error()) - return nil, err - } - if exports.Export { - if e == nil { - return nil, errors.NewBadRequest(fmt.Sprintf("export of %q is not supported", scope.Resource.Resource)) + if len(values["export"]) > 0 { + exportBool := true + exportStrings := values["export"] + err := runtime.Convert_Slice_string_To_bool(&exportStrings, &exportBool, nil) + if err != nil { + return nil, errors.NewBadRequest(fmt.Sprintf("the export parameter cannot be parsed: %v", err)) + } + if exportBool { + return nil, errors.NewBadRequest("the export parameter, deprecated since v1.14, is no longer supported") } - return e.Export(ctx, name, exports) } if err := metainternalversionscheme.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, &options); err != nil { err = errors.NewBadRequest(err.Error()) @@ -168,7 +169,7 @@ func getRequestOptions(req *http.Request, scope *RequestScope, into runtime.Obje func ListResource(r rest.Lister, rw rest.Watcher, scope *RequestScope, forceWatch bool, minRequestTimeout time.Duration) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { // For performance tracking purposes. - trace := utiltrace.New("List", utiltrace.Field{Key: "url", Value: req.URL.Path}, utiltrace.Field{Key: "user-agent", Value: &lazyTruncatedUserAgent{req}}, utiltrace.Field{Key: "client", Value: &lazyClientIP{req}}) + trace := utiltrace.New("List", traceFields(req)...) namespace, err := scope.Namer.Namespace(req) if err != nil { diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/helpers.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/helpers.go index 82170e050e..244a3fd0a5 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/helpers.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/helpers.go @@ -58,3 +58,18 @@ func (lazy *lazyClientIP) String() string { } return "unknown" } + +// lazyAccept implements String() string and it will +// calls http.Request Header.Get() lazily only when required. +type lazyAccept struct { + req *http.Request +} + +func (lazy *lazyAccept) String() string { + if lazy.req != nil { + accept := lazy.req.Header.Get("Accept") + return accept + } + + return "unknown" +} diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go index 096330a4ae..903307fc28 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go @@ -61,7 +61,7 @@ const ( func PatchResource(r rest.Patcher, scope *RequestScope, admit admission.Interface, patchTypes []string) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { // For performance tracking purposes. - trace := utiltrace.New("Patch", utiltrace.Field{Key: "url", Value: req.URL.Path}, utiltrace.Field{Key: "user-agent", Value: &lazyTruncatedUserAgent{req}}, utiltrace.Field{Key: "client", Value: &lazyClientIP{req}}) + trace := utiltrace.New("Patch", traceFields(req)...) defer trace.LogIfLong(500 * time.Millisecond) if isDryRun(req.URL) && !utilfeature.DefaultFeatureGate.Enabled(features.DryRun) { @@ -84,19 +84,17 @@ func PatchResource(r rest.Patcher, scope *RequestScope, admit admission.Interfac return } - // TODO: we either want to remove timeout or document it (if we - // document, move timeout out of this function and declare it in - // api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - namespace, name, err := scope.Namer.Name(req) if err != nil { scope.err(err, w, req) return } - ctx, cancel := context.WithTimeout(req.Context(), timeout) + // enforce a timeout of at most requestTimeoutUpperBound (34s) or less if the user-provided + // timeout inside the parent context is lower than requestTimeoutUpperBound. + ctx, cancel := context.WithTimeout(req.Context(), requestTimeoutUpperBound) defer cancel() + ctx = request.WithNamespace(ctx, namespace) outputMediaType, _, err := negotiation.NegotiateOutputMediaType(req, scope.Serializer, scope) @@ -173,6 +171,9 @@ func PatchResource(r rest.Patcher, scope *RequestScope, admit admission.Interfac userInfo, ) + if scope.FieldManager != nil { + admit = fieldmanager.NewManagedFieldsValidatingAdmissionController(admit) + } mutatingAdmission, _ := admit.(admission.MutationInterface) createAuthorizerAttributes := authorizer.AttributesRecord{ User: userInfo, @@ -208,7 +209,6 @@ func PatchResource(r rest.Patcher, scope *RequestScope, admit admission.Interfac codec: codec, - timeout: timeout, options: options, restPatcher: r, @@ -271,7 +271,6 @@ type patcher struct { codec runtime.Codec - timeout time.Duration options *metav1.PatchOptions // Operation information @@ -591,7 +590,7 @@ func (p *patcher) patchResource(ctx context.Context, scope *RequestScope) (runti wasCreated = created return updateObject, updateErr } - result, err := finishRequest(p.timeout, func() (runtime.Object, error) { + result, err := finishRequest(ctx, func() (runtime.Object, error) { result, err := requestFunc() // If the object wasn't committed to storage because it's serialized size was too large, // it is safe to remove managedFields (which can be large) and try again. diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/status.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/status.go index 5a84543503..bb14a15be8 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/status.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/status.go @@ -68,7 +68,7 @@ func ErrorToAPIStatus(err error) *metav1.Status { // by REST storage - these typically indicate programmer // error by not using pkg/api/errors, or unexpected failure // cases. - runtime.HandleError(fmt.Errorf("apiserver received an error that is not an metav1.Status: %#+v", err)) + runtime.HandleError(fmt.Errorf("apiserver received an error that is not an metav1.Status: %#+v: %v", err, err)) return &metav1.Status{ TypeMeta: metav1.TypeMeta{ Kind: "Status", diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/writers.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/writers.go index 65cb389e51..16e16c3537 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/writers.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/writers.go @@ -21,11 +21,11 @@ import ( "encoding/json" "fmt" "io" - "io/ioutil" "net/http" "strconv" "strings" "sync" + "time" "k8s.io/apiserver/pkg/features" @@ -40,6 +40,7 @@ import ( utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/apiserver/pkg/util/flushwriter" "k8s.io/apiserver/pkg/util/wsstream" + utiltrace "k8s.io/utils/trace" ) // StreamObject performs input stream negotiation from a ResourceStreamer and writes that to the response. @@ -86,11 +87,20 @@ func StreamObject(statusCode int, gv schema.GroupVersion, s runtime.NegotiatedSe // The context is optional and can be nil. This method will perform optional content compression if requested by // a client and the feature gate for APIResponseCompression is enabled. func SerializeObject(mediaType string, encoder runtime.Encoder, hw http.ResponseWriter, req *http.Request, statusCode int, object runtime.Object) { + trace := utiltrace.New("SerializeObject", + utiltrace.Field{"method", req.Method}, + utiltrace.Field{"url", req.URL.Path}, + utiltrace.Field{"protocol", req.Proto}, + utiltrace.Field{"mediaType", mediaType}, + utiltrace.Field{"encoder", encoder.Identifier()}) + defer trace.LogIfLong(5 * time.Second) + w := &deferredResponseWriter{ mediaType: mediaType, statusCode: statusCode, contentEncoding: negotiateContentEncoding(req), hw: hw, + trace: trace, } err := encoder.Encode(object, w) @@ -177,9 +187,23 @@ type deferredResponseWriter struct { hasWritten bool hw http.ResponseWriter w io.Writer + + trace *utiltrace.Trace } func (w *deferredResponseWriter) Write(p []byte) (n int, err error) { + if w.trace != nil { + // This Step usually wraps in-memory object serialization. + w.trace.Step("About to start writing response", utiltrace.Field{"size", len(p)}) + + firstWrite := !w.hasWritten + defer func() { + w.trace.Step("Write call finished", + utiltrace.Field{"writer", fmt.Sprintf("%T", w.w)}, + utiltrace.Field{"size", len(p)}, + utiltrace.Field{"firstWrite", firstWrite}) + }() + } if w.hasWritten { return w.w.Write(p) } @@ -219,8 +243,6 @@ func (w *deferredResponseWriter) Close() error { return err } -var nopCloser = ioutil.NopCloser(nil) - // WriteObjectNegotiated renders an object in the content type negotiated by the client. func WriteObjectNegotiated(s runtime.NegotiatedSerializer, restrictions negotiation.EndpointRestrictions, gv schema.GroupVersion, w http.ResponseWriter, req *http.Request, statusCode int, object runtime.Object) { stream, ok := object.(rest.ResourceStreamer) diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go index 01396f2716..783ab96b9b 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go @@ -53,6 +53,9 @@ import ( ) const ( + // 34 chose as a number close to 30 that is likely to be unique enough to jump out at me the next time I see a timeout. + // Everyone chooses 30. + requestTimeoutUpperBound = 34 * time.Second // DuplicateOwnerReferencesWarningFormat is the warning that a client receives when a create/update request contains // duplicate owner reference entries. DuplicateOwnerReferencesWarningFormat = ".metadata.ownerReferences contains duplicate entries; API server dedups owner references in 1.20+, and may reject such requests as early as 1.24; please fix your requests; duplicate UID(s) observed: %v" @@ -227,7 +230,7 @@ type resultFunc func() (runtime.Object, error) // finishRequest makes a given resultFunc asynchronous and handles errors returned by the response. // An api.Status object with status != success is considered an "error", which interrupts the normal response flow. -func finishRequest(timeout time.Duration, fn resultFunc) (result runtime.Object, err error) { +func finishRequest(ctx context.Context, fn resultFunc) (result runtime.Object, err error) { // these channels need to be buffered to prevent the goroutine below from hanging indefinitely // when the select statement reads something other than the one the goroutine sends on. ch := make(chan runtime.Object, 1) @@ -271,8 +274,8 @@ func finishRequest(timeout time.Duration, fn resultFunc) (result runtime.Object, return nil, err case p := <-panicCh: panic(p) - case <-time.After(timeout): - return nil, errors.NewTimeoutError(fmt.Sprintf("request did not complete within requested timeout %s", timeout), 0) + case <-ctx.Done(): + return nil, errors.NewTimeoutError(fmt.Sprintf("request did not complete within requested timeout %s", ctx.Err()), 0) } } @@ -429,7 +432,7 @@ func setObjectSelfLink(ctx context.Context, obj runtime.Object, req *http.Reques return err } if err := namer.SetSelfLink(obj, uri); err != nil { - klog.V(4).Infof("Unable to set self link on object: %v", err) + klog.V(4).InfoS("Unable to set self link on object", "error", err) } requestInfo, ok := request.RequestInfoFrom(ctx) if !ok { @@ -487,18 +490,6 @@ func limitedReadBody(req *http.Request, limit int64) ([]byte, error) { return data, nil } -func parseTimeout(str string) time.Duration { - if str != "" { - timeout, err := time.ParseDuration(str) - if err == nil { - return timeout - } - klog.Errorf("Failed to parse %q: %v", str, err) - } - // 34 chose as a number close to 30 that is likely to be unique enough to jump out at me the next time I see a timeout. Everyone chooses 30. - return 34 * time.Second -} - func isDryRun(url *url.URL) bool { return len(url.Query()["dryRun"]) != 0 } diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/trace_util.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/trace_util.go new file mode 100644 index 0000000000..69b41fac4e --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/trace_util.go @@ -0,0 +1,32 @@ +/* +Copyright 2020 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. +*/ + +package handlers + +import ( + "net/http" + + utiltrace "k8s.io/utils/trace" +) + +func traceFields(req *http.Request) []utiltrace.Field { + return []utiltrace.Field{ + {Key: "url", Value: req.URL.Path}, + {Key: "user-agent", Value: &lazyTruncatedUserAgent{req: req}}, + {Key: "client", Value: &lazyClientIP{req: req}}, + {Key: "accept", Value: &lazyAccept{req: req}}, + {Key: "protocol", Value: req.Proto}} +} diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go index f0473323f9..57daefd9cf 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go @@ -33,6 +33,7 @@ import ( "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/audit" "k8s.io/apiserver/pkg/authorization/authorizer" + "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager" "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/features" @@ -46,7 +47,7 @@ import ( func UpdateResource(r rest.Updater, scope *RequestScope, admit admission.Interface) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { // For performance tracking purposes. - trace := utiltrace.New("Update", utiltrace.Field{Key: "url", Value: req.URL.Path}, utiltrace.Field{Key: "user-agent", Value: &lazyTruncatedUserAgent{req}}, utiltrace.Field{Key: "client", Value: &lazyClientIP{req}}) + trace := utiltrace.New("Update", traceFields(req)...) defer trace.LogIfLong(500 * time.Millisecond) if isDryRun(req.URL) && !utilfeature.DefaultFeatureGate.Enabled(features.DryRun) { @@ -54,16 +55,17 @@ func UpdateResource(r rest.Updater, scope *RequestScope, admit admission.Interfa return } - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - namespace, name, err := scope.Namer.Name(req) if err != nil { scope.err(err, w, req) return } - ctx, cancel := context.WithTimeout(req.Context(), timeout) + + // enforce a timeout of at most requestTimeoutUpperBound (34s) or less if the user-provided + // timeout inside the parent context is lower than requestTimeoutUpperBound. + ctx, cancel := context.WithTimeout(req.Context(), requestTimeoutUpperBound) defer cancel() + ctx = request.WithNamespace(ctx, namespace) outputMediaType, _, err := negotiation.NegotiateOutputMediaType(req, scope.Serializer, scope) @@ -129,6 +131,7 @@ func UpdateResource(r rest.Updater, scope *RequestScope, admit admission.Interfa // allows skipping managedFields update if the resulting object is too big shouldUpdateManagedFields := true if scope.FieldManager != nil { + admit = fieldmanager.NewManagedFieldsValidatingAdmissionController(admit) transformers = append(transformers, func(_ context.Context, newObj, liveObj runtime.Object) (runtime.Object, error) { if shouldUpdateManagedFields { return scope.FieldManager.UpdateNoErrors(liveObj, newObj, managerOrUserAgent(options.FieldManager, req.UserAgent())), nil @@ -195,7 +198,7 @@ func UpdateResource(r rest.Updater, scope *RequestScope, admit admission.Interfa } // Dedup owner references before updating managed fields dedupOwnerReferencesAndAddWarning(obj, req.Context(), false) - result, err := finishRequest(timeout, func() (runtime.Object, error) { + result, err := finishRequest(ctx, func() (runtime.Object, error) { result, err := requestFunc() // If the object wasn't committed to storage because it's serialized size was too large, // it is safe to remove managedFields (which can be large) and try again. diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/watch.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/watch.go index 22945ccf6b..47fe44b78d 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/watch.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/watch.go @@ -163,8 +163,8 @@ type WatchServer struct { // or over a websocket connection. func (s *WatchServer) ServeHTTP(w http.ResponseWriter, req *http.Request) { kind := s.Scope.Kind - metrics.RegisteredWatchers.WithLabelValues(kind.Group, kind.Version, kind.Kind).Inc() - defer metrics.RegisteredWatchers.WithLabelValues(kind.Group, kind.Version, kind.Kind).Dec() + metrics.RegisteredWatchers.WithContext(req.Context()).WithLabelValues(kind.Group, kind.Version, kind.Kind).Inc() + defer metrics.RegisteredWatchers.WithContext(req.Context()).WithLabelValues(kind.Group, kind.Version, kind.Kind).Dec() w = httplog.Unlogged(req, w) @@ -220,7 +220,7 @@ func (s *WatchServer) ServeHTTP(w http.ResponseWriter, req *http.Request) { // End of results. return } - metrics.WatchEvents.WithLabelValues(kind.Group, kind.Version, kind.Kind).Inc() + metrics.WatchEvents.WithContext(req.Context()).WithLabelValues(kind.Group, kind.Version, kind.Kind).Inc() obj := s.Fixup(event.Object) if err := s.EmbeddedEncoder.Encode(obj, buf); err != nil { @@ -233,7 +233,7 @@ func (s *WatchServer) ServeHTTP(w http.ResponseWriter, req *http.Request) { // type unknown.Raw = buf.Bytes() event.Object = &unknown - metrics.WatchEventsSizes.WithLabelValues(kind.Group, kind.Version, kind.Kind).Observe(float64(len(unknown.Raw))) + metrics.WatchEventsSizes.WithContext(req.Context()).WithLabelValues(kind.Group, kind.Version, kind.Kind).Observe(float64(len(unknown.Raw))) *outEvent = metav1.WatchEvent{} diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/installer.go b/vendor/k8s.io/apiserver/pkg/endpoints/installer.go index 6549771ced..23fca82598 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/installer.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/installer.go @@ -46,6 +46,7 @@ import ( "k8s.io/apiserver/pkg/storageversion" utilfeature "k8s.io/apiserver/pkg/util/feature" versioninfo "k8s.io/component-base/version" + "sigs.k8s.io/structured-merge-diff/v4/fieldpath" ) const ( @@ -253,20 +254,18 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag if !isMetadata { storageMeta = defaultStorageMetadata{} } - exporter, isExporter := storage.(rest.Exporter) - if !isExporter { - exporter = nil - } - - versionedExportOptions, err := a.group.Creater.New(optionsExternalVersion.WithKind("ExportOptions")) - if err != nil { - return nil, nil, err - } if isNamedCreater { isCreater = true } + var resetFields map[fieldpath.APIVersion]*fieldpath.Set + if a.group.OpenAPIModels != nil && utilfeature.DefaultFeatureGate.Enabled(features.ServerSideApply) { + if resetFieldsStrategy, isResetFieldsStrategy := storage.(rest.ResetFieldsStrategy); isResetFieldsStrategy { + resetFields = resetFieldsStrategy.GetResetFields() + } + } + var versionedList interface{} if isLister { list := lister.NewList() @@ -522,6 +521,10 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag if err != nil { return nil, nil, err } + decodableVersions := []schema.GroupVersion{} + if a.group.ConvertabilityChecker != nil { + decodableVersions = a.group.ConvertabilityChecker.VersionsForGroupKind(fqKindToRegister.GroupKind()) + } resourceInfo = &storageversion.ResourceInfo{ GroupResource: schema.GroupResource{ Group: a.group.GroupVersion.Group, @@ -532,6 +535,8 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag // DecodableVersions immediately because API installation must // be completed first for us to know equivalent APIs EquivalentResourceMapper: a.group.EquivalentResourceRegistry, + + DirectlyDecodableVersions: decodableVersions, } } @@ -600,6 +605,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag fqKindToRegister, reqScope.HubGroupVersion, isSubresource, + resetFields, ) if err != nil { return nil, nil, fmt.Errorf("failed to create field manager: %v", err) @@ -684,7 +690,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag if isGetterWithOptions { handler = restfulGetResourceWithOptions(getterWithOptions, reqScope, isSubresource) } else { - handler = restfulGetResource(getter, exporter, reqScope) + handler = restfulGetResource(getter, reqScope) } if needOverride { @@ -713,11 +719,6 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag return nil, nil, err } } - if isExporter { - if err := AddObjectParams(ws, route, versionedExportOptions); err != nil { - return nil, nil, err - } - } addParams(route, action.Params) routes = append(routes, route) case "LIST": // List all resources of a kind. @@ -1227,9 +1228,9 @@ func restfulPatchResource(r rest.Patcher, scope handlers.RequestScope, admit adm } } -func restfulGetResource(r rest.Getter, e rest.Exporter, scope handlers.RequestScope) restful.RouteFunction { +func restfulGetResource(r rest.Getter, scope handlers.RequestScope) restful.RouteFunction { return func(req *restful.Request, res *restful.Response) { - handlers.GetResource(r, e, &scope)(res.ResponseWriter, req.Request) + handlers.GetResource(r, &scope)(res.ResponseWriter, req.Request) } } diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/metrics/OWNERS b/vendor/k8s.io/apiserver/pkg/endpoints/metrics/OWNERS index 33c780d7a6..9454593c88 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/metrics/OWNERS +++ b/vendor/k8s.io/apiserver/pkg/endpoints/metrics/OWNERS @@ -3,3 +3,6 @@ reviewers: - wojtek-t - jimmidyson + +approvers: +- logicalhan diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go b/vendor/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go index d4f6068b40..a278566438 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go @@ -18,10 +18,10 @@ package metrics import ( "bufio" + "context" "net" "net/http" "net/url" - "regexp" "strconv" "strings" "sync" @@ -49,13 +49,12 @@ type resettableCollector interface { const ( APIServerComponent string = "apiserver" - OtherContentType string = "other" OtherRequestMethod string = "other" ) /* * By default, all the following metrics are defined as falling under - * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) + * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/1209-metrics-stability/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) * * Promoting the stability level of the metric is a responsibility of the component owner, since it * involves explicitly acknowledging support for the metric across multiple releases, in accordance with @@ -76,14 +75,10 @@ var ( requestCounter = compbasemetrics.NewCounterVec( &compbasemetrics.CounterOpts{ Name: "apiserver_request_total", - Help: "Counter of apiserver requests broken out for each verb, dry run value, group, version, resource, scope, component, and HTTP response contentType and code.", - StabilityLevel: compbasemetrics.ALPHA, + Help: "Counter of apiserver requests broken out for each verb, dry run value, group, version, resource, scope, component, and HTTP response code.", + StabilityLevel: compbasemetrics.STABLE, }, - // The label_name contentType doesn't follow the label_name convention defined here: - // https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/instrumentation.md - // But changing it would break backwards compatibility. Future label_names - // should be all lowercase and separated by underscores. - []string{"verb", "dry_run", "group", "version", "resource", "subresource", "scope", "component", "contentType", "code"}, + []string{"verb", "dry_run", "group", "version", "resource", "subresource", "scope", "component", "code"}, ) longRunningRequestGauge = compbasemetrics.NewGaugeVec( &compbasemetrics.GaugeOpts{ @@ -102,7 +97,7 @@ var ( // Thus we customize buckets significantly, to empower both usecases. Buckets: []float64{0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60}, - StabilityLevel: compbasemetrics.ALPHA, + StabilityLevel: compbasemetrics.STABLE, }, []string{"verb", "dry_run", "group", "version", "resource", "subresource", "scope", "component"}, ) @@ -216,8 +211,6 @@ var ( []string{"verb", "group", "version", "resource", "subresource", "scope"}, ) - kubectlExeRegexp = regexp.MustCompile(`^.*((?i:kubectl\.exe))`) - metrics = []resettableCollector{ deprecatedRequestGauge, requestCounter, @@ -237,19 +230,6 @@ var ( requestAbortsTotal, } - // these are the known (e.g. whitelisted/known) content types which we will report for - // request metrics. Any other RFC compliant content types will be aggregated under 'unknown' - knownMetricContentTypes = utilsets.NewString( - "application/apply-patch+yaml", - "application/json", - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/vnd.kubernetes.protobuf", - "application/vnd.kubernetes.protobuf;stream=watch", - "application/yaml", - "text/plain", - "text/plain;charset=utf-8") // these are the valid request methods which we report in our metrics. Any other request methods // will be aggregated under 'unknown' validRequestMethods = utilsets.NewString( @@ -324,8 +304,8 @@ func UpdateInflightRequestMetrics(phase string, nonmutating, mutating int) { } } -func RecordFilterLatency(name string, elapsed time.Duration) { - requestFilterDuration.WithLabelValues(name).Observe(elapsed.Seconds()) +func RecordFilterLatency(ctx context.Context, name string, elapsed time.Duration) { + requestFilterDuration.WithContext(ctx).WithLabelValues(name).Observe(elapsed.Seconds()) } // RecordRequestAbort records that the request was aborted possibly due to a timeout. @@ -341,7 +321,7 @@ func RecordRequestAbort(req *http.Request, requestInfo *request.RequestInfo) { group := requestInfo.APIGroup version := requestInfo.APIVersion - requestAbortsTotal.WithLabelValues(reportedVerb, group, version, resource, subresource, scope).Inc() + requestAbortsTotal.WithContext(req.Context()).WithLabelValues(reportedVerb, group, version, resource, subresource, scope).Inc() } // RecordRequestTermination records that the request was terminated early as part of a resource @@ -361,9 +341,9 @@ func RecordRequestTermination(req *http.Request, requestInfo *request.RequestInf reportedVerb := cleanVerb(canonicalVerb(strings.ToUpper(req.Method), scope), req) if requestInfo.IsResourceRequest { - requestTerminationsTotal.WithLabelValues(reportedVerb, requestInfo.APIGroup, requestInfo.APIVersion, requestInfo.Resource, requestInfo.Subresource, scope, component, codeToString(code)).Inc() + requestTerminationsTotal.WithContext(req.Context()).WithLabelValues(reportedVerb, requestInfo.APIGroup, requestInfo.APIVersion, requestInfo.Resource, requestInfo.Subresource, scope, component, codeToString(code)).Inc() } else { - requestTerminationsTotal.WithLabelValues(reportedVerb, "", "", "", requestInfo.Path, scope, component, codeToString(code)).Inc() + requestTerminationsTotal.WithContext(req.Context()).WithLabelValues(reportedVerb, "", "", "", requestInfo.Path, scope, component, codeToString(code)).Inc() } } @@ -383,9 +363,9 @@ func RecordLongRunning(req *http.Request, requestInfo *request.RequestInfo, comp reportedVerb := cleanVerb(canonicalVerb(strings.ToUpper(req.Method), scope), req) if requestInfo.IsResourceRequest { - g = longRunningRequestGauge.WithLabelValues(reportedVerb, requestInfo.APIGroup, requestInfo.APIVersion, requestInfo.Resource, requestInfo.Subresource, scope, component) + g = longRunningRequestGauge.WithContext(req.Context()).WithLabelValues(reportedVerb, requestInfo.APIGroup, requestInfo.APIVersion, requestInfo.Resource, requestInfo.Subresource, scope, component) } else { - g = longRunningRequestGauge.WithLabelValues(reportedVerb, "", "", "", requestInfo.Path, scope, component) + g = longRunningRequestGauge.WithContext(req.Context()).WithLabelValues(reportedVerb, "", "", "", requestInfo.Path, scope, component) } g.Inc() defer g.Dec() @@ -394,7 +374,7 @@ func RecordLongRunning(req *http.Request, requestInfo *request.RequestInfo, comp // MonitorRequest handles standard transformations for client and the reported verb and then invokes Monitor to record // a request. verb must be uppercase to be backwards compatible with existing monitoring tooling. -func MonitorRequest(req *http.Request, verb, group, version, resource, subresource, scope, component string, deprecated bool, removedRelease string, contentType string, httpCode, respSize int, elapsed time.Duration) { +func MonitorRequest(req *http.Request, verb, group, version, resource, subresource, scope, component string, deprecated bool, removedRelease string, httpCode, respSize int, elapsed time.Duration) { // We don't use verb from , as this may be propagated from // InstrumentRouteFunc which is registered in installer.go with predefined // list of verbs (different than those translated to RequestInfo). @@ -403,24 +383,23 @@ func MonitorRequest(req *http.Request, verb, group, version, resource, subresour dryRun := cleanDryRun(req.URL) elapsedSeconds := elapsed.Seconds() - cleanContentType := cleanContentType(contentType) - requestCounter.WithLabelValues(reportedVerb, dryRun, group, version, resource, subresource, scope, component, cleanContentType, codeToString(httpCode)).Inc() + requestCounter.WithContext(req.Context()).WithLabelValues(reportedVerb, dryRun, group, version, resource, subresource, scope, component, codeToString(httpCode)).Inc() // MonitorRequest happens after authentication, so we can trust the username given by the request info, ok := request.UserFrom(req.Context()) if ok && info.GetName() == user.APIServerUser { - apiSelfRequestCounter.WithLabelValues(reportedVerb, resource, subresource).Inc() + apiSelfRequestCounter.WithContext(req.Context()).WithLabelValues(reportedVerb, resource, subresource).Inc() } if deprecated { - deprecatedRequestGauge.WithLabelValues(group, version, resource, subresource, removedRelease).Set(1) + deprecatedRequestGauge.WithContext(req.Context()).WithLabelValues(group, version, resource, subresource, removedRelease).Set(1) audit.AddAuditAnnotation(req.Context(), deprecatedAnnotationKey, "true") if len(removedRelease) > 0 { audit.AddAuditAnnotation(req.Context(), removedReleaseAnnotationKey, removedRelease) } } - requestLatencies.WithLabelValues(reportedVerb, dryRun, group, version, resource, subresource, scope, component).Observe(elapsedSeconds) + requestLatencies.WithContext(req.Context()).WithLabelValues(reportedVerb, dryRun, group, version, resource, subresource, scope, component).Observe(elapsedSeconds) // We are only interested in response sizes of read requests. if verb == "GET" || verb == "LIST" { - responseSizes.WithLabelValues(reportedVerb, group, version, resource, subresource, scope, component).Observe(float64(respSize)) + responseSizes.WithContext(req.Context()).WithLabelValues(reportedVerb, group, version, resource, subresource, scope, component).Observe(float64(respSize)) } } @@ -448,7 +427,7 @@ func InstrumentRouteFunc(verb, group, version, resource, subresource, scope, com routeFunc(req, response) - MonitorRequest(req.Request, verb, group, version, resource, subresource, scope, component, deprecated, removedRelease, delegate.Header().Get("Content-Type"), delegate.Status(), delegate.ContentLength(), time.Since(requestReceivedTimestamp)) + MonitorRequest(req.Request, verb, group, version, resource, subresource, scope, component, deprecated, removedRelease, delegate.Status(), delegate.ContentLength(), time.Since(requestReceivedTimestamp)) }) } @@ -473,21 +452,8 @@ func InstrumentHandlerFunc(verb, group, version, resource, subresource, scope, c handler(w, req) - MonitorRequest(req, verb, group, version, resource, subresource, scope, component, deprecated, removedRelease, delegate.Header().Get("Content-Type"), delegate.Status(), delegate.ContentLength(), time.Since(requestReceivedTimestamp)) - } -} - -// cleanContentType binds the contentType (for metrics related purposes) to a -// bounded set of known/expected content-types. -func cleanContentType(contentType string) string { - normalizedContentType := strings.ToLower(contentType) - if strings.HasSuffix(contentType, " stream=watch") || strings.HasSuffix(contentType, " charset=utf-8") { - normalizedContentType = strings.ReplaceAll(contentType, " ", "") - } - if knownMetricContentTypes.Has(normalizedContentType) { - return normalizedContentType + MonitorRequest(req, verb, group, version, resource, subresource, scope, component, deprecated, removedRelease, delegate.Status(), delegate.ContentLength(), time.Since(requestReceivedTimestamp)) } - return OtherContentType } // CleanScope returns the scope of the request. diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/openapi/OWNERS b/vendor/k8s.io/apiserver/pkg/endpoints/openapi/OWNERS deleted file mode 100644 index 006f0125e1..0000000000 --- a/vendor/k8s.io/apiserver/pkg/endpoints/openapi/OWNERS +++ /dev/null @@ -1,4 +0,0 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -reviewers: -- mbohlool diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/request/context.go b/vendor/k8s.io/apiserver/pkg/endpoints/request/context.go index fe3ae38edc..95166f5c47 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/request/context.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/request/context.go @@ -36,9 +36,6 @@ const ( // auditKey is the context key for the audit event. auditKey - - // audiencesKey is the context key for request audiences. - audiencesKey ) // NewContext instantiates a base context object for request flows. diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/request/requestinfo.go b/vendor/k8s.io/apiserver/pkg/endpoints/request/requestinfo.go index 1f5dc28a9e..2bc00a66e7 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/request/requestinfo.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/request/requestinfo.go @@ -211,7 +211,7 @@ func (r *RequestInfoFactory) NewRequestInfo(req *http.Request) (*RequestInfo, er opts := metainternalversion.ListOptions{} if err := metainternalversionscheme.ParameterCodec.DecodeParameters(req.URL.Query(), metav1.SchemeGroupVersion, &opts); err != nil { // An error in parsing request will result in default to "list" and not setting "name" field. - klog.Errorf("Couldn't parse request %#v: %v", req.URL.Query(), err) + klog.ErrorS(err, "Couldn't parse request", "Request", req.URL.Query()) // Reset opts to not rely on partial results from parsing. // However, if watch is set, let's report it. opts = metainternalversion.ListOptions{} diff --git a/vendor/k8s.io/apiserver/pkg/features/kube_features.go b/vendor/k8s.io/apiserver/pkg/features/kube_features.go index 612be9845a..f7706c2481 100644 --- a/vendor/k8s.io/apiserver/pkg/features/kube_features.go +++ b/vendor/k8s.io/apiserver/pkg/features/kube_features.go @@ -151,6 +151,7 @@ const ( // owner: @wojtek-t // alpha: v1.20 + // beta: v1.21 // // Allows for updating watchcache resource version with progress notify events. EfficientWatchResumption featuregate.Feature = "EfficientWatchResumption" @@ -185,6 +186,6 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS RemoveSelfLink: {Default: true, PreRelease: featuregate.Beta}, SelectorIndex: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, WarningHeaders: {Default: true, PreRelease: featuregate.Beta}, - EfficientWatchResumption: {Default: false, PreRelease: featuregate.Alpha}, + EfficientWatchResumption: {Default: true, PreRelease: featuregate.Beta}, APIServerIdentity: {Default: false, PreRelease: featuregate.Alpha}, } diff --git a/vendor/k8s.io/apiserver/pkg/registry/generic/OWNERS b/vendor/k8s.io/apiserver/pkg/registry/generic/OWNERS index 3ac0d161dc..bf987ec895 100644 --- a/vendor/k8s.io/apiserver/pkg/registry/generic/OWNERS +++ b/vendor/k8s.io/apiserver/pkg/registry/generic/OWNERS @@ -11,8 +11,6 @@ reviewers: - caesarxuchao - mikedanese - liggitt -- nikhiljindal -- gmarek - davidopp - saad-ali - janetkuo diff --git a/vendor/k8s.io/apiserver/pkg/registry/generic/registry/decorated_watcher.go b/vendor/k8s.io/apiserver/pkg/registry/generic/registry/decorated_watcher.go index 005a376d40..e341b371df 100644 --- a/vendor/k8s.io/apiserver/pkg/registry/generic/registry/decorated_watcher.go +++ b/vendor/k8s.io/apiserver/pkg/registry/generic/registry/decorated_watcher.go @@ -18,20 +18,18 @@ package registry import ( "context" - "net/http" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" ) type decoratedWatcher struct { w watch.Interface - decorator ObjectFunc + decorator func(runtime.Object) cancel context.CancelFunc resultCh chan watch.Event } -func newDecoratedWatcher(w watch.Interface, decorator ObjectFunc) *decoratedWatcher { +func newDecoratedWatcher(w watch.Interface, decorator func(runtime.Object)) *decoratedWatcher { ctx, cancel := context.WithCancel(context.Background()) d := &decoratedWatcher{ w: w, @@ -56,11 +54,7 @@ func (d *decoratedWatcher) run(ctx context.Context) { } switch recv.Type { case watch.Added, watch.Modified, watch.Deleted, watch.Bookmark: - err := d.decorator(recv.Object) - if err != nil { - send = makeStatusErrorEvent(err) - break - } + d.decorator(recv.Object) send = recv case watch.Error: send = recv @@ -87,16 +81,3 @@ func (d *decoratedWatcher) Stop() { func (d *decoratedWatcher) ResultChan() <-chan watch.Event { return d.resultCh } - -func makeStatusErrorEvent(err error) watch.Event { - status := &metav1.Status{ - Status: metav1.StatusFailure, - Message: err.Error(), - Code: http.StatusInternalServerError, - Reason: metav1.StatusReasonInternalError, - } - return watch.Event{ - Type: watch.Error, - Object: status, - } -} diff --git a/vendor/k8s.io/apiserver/pkg/registry/generic/registry/dryrun.go b/vendor/k8s.io/apiserver/pkg/registry/generic/registry/dryrun.go index 2f184c50e0..e25684a8a5 100644 --- a/vendor/k8s.io/apiserver/pkg/registry/generic/registry/dryrun.go +++ b/vendor/k8s.io/apiserver/pkg/registry/generic/registry/dryrun.go @@ -43,7 +43,7 @@ func (s *DryRunnableStorage) Create(ctx context.Context, key string, obj, out ru return s.Storage.Create(ctx, key, obj, out, ttl) } -func (s *DryRunnableStorage) Delete(ctx context.Context, key string, out runtime.Object, preconditions *storage.Preconditions, deleteValidation storage.ValidateObjectFunc, dryRun bool) error { +func (s *DryRunnableStorage) Delete(ctx context.Context, key string, out runtime.Object, preconditions *storage.Preconditions, deleteValidation storage.ValidateObjectFunc, dryRun bool, cachedExistingObject runtime.Object) error { if dryRun { if err := s.Storage.Get(ctx, key, storage.GetOptions{}, out); err != nil { return err @@ -53,7 +53,7 @@ func (s *DryRunnableStorage) Delete(ctx context.Context, key string, out runtime } return deleteValidation(ctx, out) } - return s.Storage.Delete(ctx, key, out, preconditions, deleteValidation) + return s.Storage.Delete(ctx, key, out, preconditions, deleteValidation, cachedExistingObject) } func (s *DryRunnableStorage) Watch(ctx context.Context, key string, opts storage.ListOptions) (watch.Interface, error) { @@ -78,7 +78,7 @@ func (s *DryRunnableStorage) List(ctx context.Context, key string, opts storage. func (s *DryRunnableStorage) GuaranteedUpdate( ctx context.Context, key string, ptrToType runtime.Object, ignoreNotFound bool, - preconditions *storage.Preconditions, tryUpdate storage.UpdateFunc, dryRun bool, suggestion runtime.Object) error { + preconditions *storage.Preconditions, tryUpdate storage.UpdateFunc, dryRun bool, cachedExistingObject runtime.Object) error { if dryRun { err := s.Storage.Get(ctx, key, storage.GetOptions{IgnoreNotFound: ignoreNotFound}, ptrToType) if err != nil { @@ -98,7 +98,7 @@ func (s *DryRunnableStorage) GuaranteedUpdate( } return s.copyInto(out, ptrToType) } - return s.Storage.GuaranteedUpdate(ctx, key, ptrToType, ignoreNotFound, preconditions, tryUpdate, suggestion) + return s.Storage.GuaranteedUpdate(ctx, key, ptrToType, ignoreNotFound, preconditions, tryUpdate, cachedExistingObject) } func (s *DryRunnableStorage) Count(key string) (int64, error) { diff --git a/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go b/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go index 7c2f4c390e..d40214f9db 100644 --- a/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go +++ b/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go @@ -19,7 +19,6 @@ package registry import ( "context" "fmt" - "reflect" "strings" "sync" "time" @@ -46,27 +45,41 @@ import ( "k8s.io/apiserver/pkg/storage/etcd3/metrics" "k8s.io/apiserver/pkg/util/dryrun" "k8s.io/client-go/tools/cache" + "sigs.k8s.io/structured-merge-diff/v4/fieldpath" "k8s.io/klog/v2" ) -// ObjectFunc is a function to act on a given object. An error may be returned -// if the hook cannot be completed. An ObjectFunc may transform the provided -// object. -type ObjectFunc func(obj runtime.Object) error +// FinishFunc is a function returned by Begin hooks to complete an operation. +type FinishFunc func(ctx context.Context, success bool) + +// AfterDeleteFunc is the type used for the Store.AfterDelete hook. +type AfterDeleteFunc func(obj runtime.Object, options *metav1.DeleteOptions) + +// BeginCreateFunc is the type used for the Store.BeginCreate hook. +type BeginCreateFunc func(ctx context.Context, obj runtime.Object, options *metav1.CreateOptions) (FinishFunc, error) + +// AfterCreateFunc is the type used for the Store.AfterCreate hook. +type AfterCreateFunc func(obj runtime.Object, options *metav1.CreateOptions) + +// BeginUpdateFunc is the type used for the Store.BeginUpdate hook. +type BeginUpdateFunc func(ctx context.Context, obj, old runtime.Object, options *metav1.UpdateOptions) (FinishFunc, error) + +// AfterUpdateFunc is the type used for the Store.AfterUpdate hook. +type AfterUpdateFunc func(obj runtime.Object, options *metav1.UpdateOptions) // GenericStore interface can be used for type assertions when we need to access the underlying strategies. type GenericStore interface { GetCreateStrategy() rest.RESTCreateStrategy GetUpdateStrategy() rest.RESTUpdateStrategy GetDeleteStrategy() rest.RESTDeleteStrategy - GetExportStrategy() rest.RESTExportStrategy } -// Store implements pkg/api/rest.StandardStorage. It's intended to be -// embeddable and allows the consumer to implement any non-generic functions -// that are required. This object is intended to be copyable so that it can be -// used in different ways but share the same underlying behavior. +// Store implements k8s.io/apiserver/pkg/registry/rest.StandardStorage. It's +// intended to be embeddable and allows the consumer to implement any +// non-generic functions that are required. This object is intended to be +// copyable so that it can be used in different ways but share the same +// underlying behavior. // // All fields are required unless specified. // @@ -145,24 +158,37 @@ type Store struct { // integrations that are above storage and should only be used for // specific cases where storage of the value is not appropriate, since // they cannot be watched. - Decorator ObjectFunc + Decorator func(runtime.Object) + // CreateStrategy implements resource-specific behavior during creation. CreateStrategy rest.RESTCreateStrategy + // BeginCreate is an optional hook that returns a "transaction-like" + // commit/revert function which will be called at the end of the operation, + // but before AfterCreate and Decorator, indicating via the argument + // whether the operation succeeded. If this returns an error, the function + // is not called. Almost nobody should use this hook. + BeginCreate BeginCreateFunc // AfterCreate implements a further operation to run after a resource is // created and before it is decorated, optional. - AfterCreate ObjectFunc + AfterCreate AfterCreateFunc // UpdateStrategy implements resource-specific behavior during updates. UpdateStrategy rest.RESTUpdateStrategy + // BeginUpdate is an optional hook that returns a "transaction-like" + // commit/revert function which will be called at the end of the operation, + // but before AfterUpdate and Decorator, indicating via the argument + // whether the operation succeeded. If this returns an error, the function + // is not called. Almost nobody should use this hook. + BeginUpdate BeginUpdateFunc // AfterUpdate implements a further operation to run after a resource is // updated and before it is decorated, optional. - AfterUpdate ObjectFunc + AfterUpdate AfterUpdateFunc // DeleteStrategy implements resource-specific behavior during deletion. DeleteStrategy rest.RESTDeleteStrategy // AfterDelete implements a further operation to run after a resource is // deleted and before it is decorated, optional. - AfterDelete ObjectFunc + AfterDelete AfterDeleteFunc // ReturnDeletedObject determines whether the Store returns the object // that was deleted. Otherwise, return a generic success status response. ReturnDeletedObject bool @@ -171,13 +197,15 @@ type Store struct { // If specified, this is checked in addition to standard finalizer, // deletionTimestamp, and deletionGracePeriodSeconds checks. ShouldDeleteDuringUpdate func(ctx context.Context, key string, obj, existing runtime.Object) bool - // ExportStrategy implements resource-specific behavior during export, - // optional. Exported objects are not decorated. - ExportStrategy rest.RESTExportStrategy + // TableConvertor is an optional interface for transforming items or lists // of items into tabular output. If unset, the default will be used. TableConvertor rest.TableConvertor + // ResetFieldsStrategy provides the fields reset by the strategy that + // should not be modified by the user. + ResetFieldsStrategy rest.ResetFieldsStrategy + // Storage is the interface for the underlying storage for the // resource. It is wrapped into a "DryRunnableStorage" that will // either pass-through or simply dry-run. @@ -194,7 +222,6 @@ type Store struct { // Note: the rest.StandardStorage interface aggregates the common REST verbs var _ rest.StandardStorage = &Store{} -var _ rest.Exporter = &Store{} var _ rest.TableConvertor = &Store{} var _ GenericStore = &Store{} @@ -283,11 +310,6 @@ func (e *Store) GetDeleteStrategy() rest.RESTDeleteStrategy { return e.DeleteStrategy } -// GetExportStrategy implements GenericStore. -func (e *Store) GetExportStrategy() rest.RESTExportStrategy { - return e.ExportStrategy -} - // List returns a list of items matching labels and field according to the // store's PredicateFunc. func (e *Store) List(ctx context.Context, options *metainternalversion.ListOptions) (runtime.Object, error) { @@ -304,9 +326,7 @@ func (e *Store) List(ctx context.Context, options *metainternalversion.ListOptio return nil, err } if e.Decorator != nil { - if err := e.Decorator(out); err != nil { - return nil, err - } + e.Decorator(out) } return out, nil } @@ -335,8 +355,24 @@ func (e *Store) ListPredicate(ctx context.Context, p storage.SelectionPredicate, return list, storeerr.InterpretListError(err, qualifiedResource) } +// finishNothing is a do-nothing FinishFunc. +func finishNothing(context.Context, bool) {} + // Create inserts a new item according to the unique key from the object. func (e *Store) Create(ctx context.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, options *metav1.CreateOptions) (runtime.Object, error) { + var finishCreate FinishFunc = finishNothing + + if e.BeginCreate != nil { + fn, err := e.BeginCreate(ctx, obj, options) + if err != nil { + return nil, err + } + finishCreate = fn + defer func() { + finishCreate(ctx, false) + }() + } + if err := rest.BeforeCreate(e.CreateStrategy, ctx, obj); err != nil { return nil, err } @@ -381,15 +417,17 @@ func (e *Store) Create(ctx context.Context, obj runtime.Object, createValidation } return nil, err } + // The operation has succeeded. Call the finish function if there is one, + // and then make sure the defer doesn't call it again. + fn := finishCreate + finishCreate = finishNothing + fn(ctx, true) + if e.AfterCreate != nil { - if err := e.AfterCreate(out); err != nil { - return nil, err - } + e.AfterCreate(out, options) } if e.Decorator != nil { - if err := e.Decorator(out); err != nil { - return nil, err - } + e.Decorator(out) } return out, nil } @@ -424,16 +462,16 @@ func ShouldDeleteDuringUpdate(ctx context.Context, key string, obj, existing run // deleteWithoutFinalizers handles deleting an object ignoring its finalizer list. // Used for objects that are either been finalized or have never initialized. -func (e *Store) deleteWithoutFinalizers(ctx context.Context, name, key string, obj runtime.Object, preconditions *storage.Preconditions, dryRun bool) (runtime.Object, bool, error) { +func (e *Store) deleteWithoutFinalizers(ctx context.Context, name, key string, obj runtime.Object, preconditions *storage.Preconditions, options *metav1.DeleteOptions) (runtime.Object, bool, error) { out := e.NewFunc() klog.V(6).Infof("going to delete %s from registry, triggered by update", name) // Using the rest.ValidateAllObjectFunc because the request is an UPDATE request and has already passed the admission for the UPDATE verb. - if err := e.Storage.Delete(ctx, key, out, preconditions, rest.ValidateAllObjectFunc, dryRun); err != nil { + if err := e.Storage.Delete(ctx, key, out, preconditions, rest.ValidateAllObjectFunc, dryrun.IsDryRun(options.DryRun), nil); err != nil { // Deletion is racy, i.e., there could be multiple update // requests to remove all finalizers from the object, so we // ignore the NotFound error. if storage.IsNotFound(err) { - _, err := e.finalizeDelete(ctx, obj, true) + _, err := e.finalizeDelete(ctx, obj, true, options) // clients are expecting an updated object if a PUT succeeded, // but finalizeDelete returns a metav1.Status, so return // the object in the request instead. @@ -441,7 +479,7 @@ func (e *Store) deleteWithoutFinalizers(ctx context.Context, name, key string, o } return nil, false, storeerr.InterpretDeleteError(err, e.qualifiedResourceFromContext(ctx), name) } - _, err := e.finalizeDelete(ctx, out, true) + _, err := e.finalizeDelete(ctx, out, true, options) // clients are expecting an updated object if a PUT succeeded, but // finalizeDelete returns a metav1.Status, so return the object in // the request instead. @@ -500,6 +538,19 @@ func (e *Store) Update(ctx context.Context, name string, objInfo rest.UpdatedObj doUnconditionalUpdate := newResourceVersion == 0 && e.UpdateStrategy.AllowUnconditionalUpdate() if existingResourceVersion == 0 { + var finishCreate FinishFunc = finishNothing + + if e.BeginCreate != nil { + fn, err := e.BeginCreate(ctx, obj, newCreateOptionsFromUpdateOptions(options)) + if err != nil { + return nil, nil, err + } + finishCreate = fn + defer func() { + finishCreate(ctx, false) + }() + } + creating = true creatingObj = obj if err := rest.BeforeCreate(e.CreateStrategy, ctx, obj); err != nil { @@ -517,6 +568,12 @@ func (e *Store) Update(ctx context.Context, name string, objInfo rest.UpdatedObj return nil, nil, err } + // The operation has succeeded. Call the finish function if there is one, + // and then make sure the defer doesn't call it again. + fn := finishCreate + finishCreate = finishNothing + fn(ctx, true) + return obj, &ttl, nil } @@ -544,6 +601,20 @@ func (e *Store) Update(ctx context.Context, name string, objInfo rest.UpdatedObj return nil, nil, apierrors.NewConflict(qualifiedResource, name, fmt.Errorf(OptimisticLockErrorMsg)) } } + + var finishUpdate FinishFunc = finishNothing + + if e.BeginUpdate != nil { + fn, err := e.BeginUpdate(ctx, obj, existing, options) + if err != nil { + return nil, nil, err + } + finishUpdate = fn + defer func() { + finishUpdate(ctx, false) + }() + } + if err := rest.BeforeUpdate(e.UpdateStrategy, ctx, obj, existing); err != nil { return nil, nil, err } @@ -564,6 +635,13 @@ func (e *Store) Update(ctx context.Context, name string, objInfo rest.UpdatedObj if err != nil { return nil, nil, err } + + // The operation has succeeded. Call the finish function if there is one, + // and then make sure the defer doesn't call it again. + fn := finishUpdate + finishUpdate = finishNothing + fn(ctx, true) + if int64(ttl) != res.TTL { return obj, &ttl, nil } @@ -573,7 +651,7 @@ func (e *Store) Update(ctx context.Context, name string, objInfo rest.UpdatedObj if err != nil { // delete the object if err == errEmptiedFinalizers { - return e.deleteWithoutFinalizers(ctx, name, key, deleteObj, storagePreconditions, dryrun.IsDryRun(options.DryRun)) + return e.deleteWithoutFinalizers(ctx, name, key, deleteObj, storagePreconditions, newDeleteOptionsFromUpdateOptions(options)) } if creating { err = storeerr.InterpretCreateError(err, qualifiedResource, name) @@ -586,25 +664,40 @@ func (e *Store) Update(ctx context.Context, name string, objInfo rest.UpdatedObj if creating { if e.AfterCreate != nil { - if err := e.AfterCreate(out); err != nil { - return nil, false, err - } + e.AfterCreate(out, newCreateOptionsFromUpdateOptions(options)) } } else { if e.AfterUpdate != nil { - if err := e.AfterUpdate(out); err != nil { - return nil, false, err - } + e.AfterUpdate(out, options) } } if e.Decorator != nil { - if err := e.Decorator(out); err != nil { - return nil, false, err - } + e.Decorator(out) } return out, creating, nil } +// This is a helper to convert UpdateOptions to CreateOptions for the +// create-on-update path. +func newCreateOptionsFromUpdateOptions(in *metav1.UpdateOptions) *metav1.CreateOptions { + co := &metav1.CreateOptions{ + DryRun: in.DryRun, + FieldManager: in.FieldManager, + } + co.TypeMeta.SetGroupVersionKind(metav1.SchemeGroupVersion.WithKind("CreateOptions")) + return co +} + +// This is a helper to convert UpdateOptions to DeleteOptions for the +// delete-on-update path. +func newDeleteOptionsFromUpdateOptions(in *metav1.UpdateOptions) *metav1.DeleteOptions { + do := &metav1.DeleteOptions{ + DryRun: in.DryRun, + } + do.TypeMeta.SetGroupVersionKind(metav1.SchemeGroupVersion.WithKind("DeleteOptions")) + return do +} + // Get retrieves the item from storage. func (e *Store) Get(ctx context.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { obj := e.NewFunc() @@ -616,9 +709,7 @@ func (e *Store) Get(ctx context.Context, name string, options *metav1.GetOptions return nil, storeerr.InterpretGetError(err, e.qualifiedResourceFromContext(ctx), name) } if e.Decorator != nil { - if err := e.Decorator(obj); err != nil { - return nil, err - } + e.Decorator(obj) } return obj, nil } @@ -658,7 +749,9 @@ func shouldOrphanDependents(ctx context.Context, e *Store, accessor metav1.Objec } // An explicit policy was set at deletion time, that overrides everything + //lint:ignore SA1019 backwards compatibility if options != nil && options.OrphanDependents != nil { + //lint:ignore SA1019 backwards compatibility return *options.OrphanDependents } if options != nil && options.PropagationPolicy != nil { @@ -699,6 +792,7 @@ func shouldDeleteDependents(ctx context.Context, e *Store, accessor metav1.Objec } // If an explicit policy was set at deletion time, that overrides both + //lint:ignore SA1019 backwards compatibility if options != nil && options.OrphanDependents != nil { return false } @@ -879,7 +973,7 @@ func (e *Store) updateForGracefulDeletionAndFinalizers(ctx context.Context, name // we should fall through and truly delete the object. return nil, false, true, out, lastExisting case errAlreadyDeleting: - out, err = e.finalizeDelete(ctx, in, true) + out, err = e.finalizeDelete(ctx, in, true, options) return err, false, false, out, lastExisting default: return storeerr.InterpretUpdateError(err, e.qualifiedResourceFromContext(ctx), name), false, false, out, lastExisting @@ -913,7 +1007,7 @@ func (e *Store) Delete(ctx context.Context, name string, deleteValidation rest.V } // this means finalizers cannot be updated via DeleteOptions if a deletion is already pending if pendingGraceful { - out, err := e.finalizeDelete(ctx, obj, false) + out, err := e.finalizeDelete(ctx, obj, false, options) return out, false, err } // check if obj has pending finalizers @@ -963,18 +1057,18 @@ func (e *Store) Delete(ctx context.Context, name string, deleteValidation rest.V // delete immediately, or no graceful deletion supported klog.V(6).Infof("going to delete %s from registry: ", name) out = e.NewFunc() - if err := e.Storage.Delete(ctx, key, out, &preconditions, storage.ValidateObjectFunc(deleteValidation), dryrun.IsDryRun(options.DryRun)); err != nil { + if err := e.Storage.Delete(ctx, key, out, &preconditions, storage.ValidateObjectFunc(deleteValidation), dryrun.IsDryRun(options.DryRun), nil); err != nil { // Please refer to the place where we set ignoreNotFound for the reason // why we ignore the NotFound error . if storage.IsNotFound(err) && ignoreNotFound && lastExisting != nil { // The lastExisting object may not be the last state of the object // before its deletion, but it's the best approximation. - out, err := e.finalizeDelete(ctx, lastExisting, true) + out, err := e.finalizeDelete(ctx, lastExisting, true, options) return out, true, err } return nil, false, storeerr.InterpretDeleteError(err, qualifiedResource, name) } - out, err = e.finalizeDelete(ctx, out, true) + out, err = e.finalizeDelete(ctx, out, true, options) return out, true, err } @@ -1072,17 +1166,13 @@ func (e *Store) DeleteCollection(ctx context.Context, deleteValidation rest.Vali // finalizeDelete runs the Store's AfterDelete hook if runHooks is set and // returns the decorated deleted object if appropriate. -func (e *Store) finalizeDelete(ctx context.Context, obj runtime.Object, runHooks bool) (runtime.Object, error) { +func (e *Store) finalizeDelete(ctx context.Context, obj runtime.Object, runHooks bool, options *metav1.DeleteOptions) (runtime.Object, error) { if runHooks && e.AfterDelete != nil { - if err := e.AfterDelete(obj); err != nil { - return nil, err - } + e.AfterDelete(obj, options) } if e.ReturnDeletedObject { if e.Decorator != nil { - if err := e.Decorator(obj); err != nil { - return nil, err - } + e.Decorator(obj) } return obj, nil } @@ -1173,44 +1263,6 @@ func (e *Store) calculateTTL(obj runtime.Object, defaultTTL int64, update bool) return ttl, err } -// exportObjectMeta unsets the fields on the given object that should not be -// present when the object is exported. -func exportObjectMeta(accessor metav1.Object, exact bool) { - accessor.SetUID("") - if !exact { - accessor.SetNamespace("") - } - accessor.SetCreationTimestamp(metav1.Time{}) - accessor.SetDeletionTimestamp(nil) - accessor.SetResourceVersion("") - accessor.SetSelfLink("") - if len(accessor.GetGenerateName()) > 0 && !exact { - accessor.SetName("") - } -} - -// Export implements the rest.Exporter interface -func (e *Store) Export(ctx context.Context, name string, opts metav1.ExportOptions) (runtime.Object, error) { - obj, err := e.Get(ctx, name, &metav1.GetOptions{}) - if err != nil { - return nil, err - } - if accessor, err := meta.Accessor(obj); err == nil { - exportObjectMeta(accessor, opts.Exact) - } else { - klog.V(4).Infof("Object of type %v does not have ObjectMeta: %v", reflect.TypeOf(obj), err) - } - - if e.ExportStrategy != nil { - if err = e.ExportStrategy.Export(ctx, obj, opts.Exact); err != nil { - return nil, err - } - } else { - e.CreateStrategy.PrepareForCreate(ctx, obj) - } - return obj, nil -} - // CompleteWithOptions updates the store with the provided options and // defaults common fields. func (e *Store) CompleteWithOptions(options *generic.StoreOptions) error { @@ -1398,6 +1450,14 @@ func (e *Store) StorageVersion() runtime.GroupVersioner { return e.StorageVersioner } +// GetResetFields implements rest.ResetFieldsStrategy +func (e *Store) GetResetFields() map[fieldpath.APIVersion]*fieldpath.Set { + if e.ResetFieldsStrategy == nil { + return nil + } + return e.ResetFieldsStrategy.GetResetFields() +} + // validateIndexers will check the prefix of indexers. func validateIndexers(indexers *cache.Indexers) error { if indexers == nil { diff --git a/vendor/k8s.io/apiserver/pkg/registry/rest/OWNERS b/vendor/k8s.io/apiserver/pkg/registry/rest/OWNERS index 55e6178184..f1366aa976 100644 --- a/vendor/k8s.io/apiserver/pkg/registry/rest/OWNERS +++ b/vendor/k8s.io/apiserver/pkg/registry/rest/OWNERS @@ -10,14 +10,11 @@ reviewers: - caesarxuchao - mikedanese - liggitt -- nikhiljindal -- gmarek - justinsb - ncdc - dims - hongchaodeng - krousey - ingvagabund -- jianhuiz - sdminonne - enj diff --git a/vendor/k8s.io/apiserver/pkg/registry/rest/export.go b/vendor/k8s.io/apiserver/pkg/registry/rest/export.go deleted file mode 100644 index b3fd8af300..0000000000 --- a/vendor/k8s.io/apiserver/pkg/registry/rest/export.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2015 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. -*/ - -package rest - -import ( - "context" - - "k8s.io/apimachinery/pkg/runtime" -) - -// RESTExportStrategy is the interface that defines how to export a Kubernetes -// object. An exported object is stripped of non-user-settable fields and -// optionally, the identifying information related to the object's identity in -// the cluster so that it can be loaded into a different namespace or entirely -// different cluster without conflict. -type RESTExportStrategy interface { - // Export strips fields that can not be set by the user. If 'exact' is false - // fields specific to the cluster are also stripped - Export(ctx context.Context, obj runtime.Object, exact bool) error -} diff --git a/vendor/k8s.io/apiserver/pkg/registry/rest/rest.go b/vendor/k8s.io/apiserver/pkg/registry/rest/rest.go index 8f9c981dd8..8dba9b84bf 100644 --- a/vendor/k8s.io/apiserver/pkg/registry/rest/rest.go +++ b/vendor/k8s.io/apiserver/pkg/registry/rest/rest.go @@ -27,6 +27,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/watch" + "sigs.k8s.io/structured-merge-diff/v4/fieldpath" ) //TODO: @@ -102,16 +103,6 @@ type Lister interface { TableConvertor } -// Exporter is an object that knows how to strip a RESTful resource for export. A store should implement this interface -// if export is generally supported for that type. Errors can still be returned during the actual Export when certain -// instances of the type are not exportable. -type Exporter interface { - // Export an object. Fields that are not user specified (e.g. Status, ObjectMeta.ResourceVersion) are stripped out - // Returns the stripped object. If 'exact' is true, fields that are specific to the cluster (e.g. namespace) are - // retained, otherwise they are stripped also. - Export(ctx context.Context, name string, opts metav1.ExportOptions) (runtime.Object, error) -} - // Getter is an object that can retrieve a named RESTful resource. type Getter interface { // Get finds a resource in the storage by name and returns it. @@ -214,7 +205,7 @@ type UpdatedObjectInfo interface { } // ValidateObjectFunc is a function to act on a given object. An error may be returned -// if the hook cannot be completed. An ObjectFunc may NOT transform the provided +// if the hook cannot be completed. A ValidateObjectFunc may NOT transform the provided // object. type ValidateObjectFunc func(ctx context.Context, obj runtime.Object) error @@ -349,3 +340,23 @@ type StorageVersionProvider interface { // list of kinds the object might belong to. StorageVersion() runtime.GroupVersioner } + +// ResetFieldsStrategy is an optional interface that a storage object can +// implement if it wishes to provide the fields reset by its strategies. +type ResetFieldsStrategy interface { + GetResetFields() map[fieldpath.APIVersion]*fieldpath.Set +} + +// CreateUpdateResetFieldsStrategy is a union of RESTCreateUpdateStrategy +// and ResetFieldsStrategy. +type CreateUpdateResetFieldsStrategy interface { + RESTCreateUpdateStrategy + ResetFieldsStrategy +} + +// UpdateResetFieldsStrategy is a union of RESTUpdateStrategy +// and ResetFieldsStrategy. +type UpdateResetFieldsStrategy interface { + RESTUpdateStrategy + ResetFieldsStrategy +} diff --git a/vendor/k8s.io/apiserver/pkg/server/config.go b/vendor/k8s.io/apiserver/pkg/server/config.go index 9ac8579240..9e5c93630f 100644 --- a/vendor/k8s.io/apiserver/pkg/server/config.go +++ b/vendor/k8s.io/apiserver/pkg/server/config.go @@ -112,7 +112,7 @@ type Config struct { // to set values and determine whether its allowed AdmissionControl admission.Interface CorsAllowedOriginList []string - + HSTSDirectives []string // FlowControl, if not nil, gives priority and fairness to request handling FlowControl utilflowcontrol.Interface @@ -165,6 +165,8 @@ type Config struct { Serializer runtime.NegotiatedSerializer // OpenAPIConfig will be used in generating OpenAPI spec. This is nil by default. Use DefaultOpenAPIConfig for "working" defaults. OpenAPIConfig *openapicommon.Config + // SkipOpenAPIInstallation avoids installing the OpenAPI handler if set to true. + SkipOpenAPIInstallation bool // RESTOptionsGetter is used to construct RESTStorage types via the generic registry. RESTOptionsGetter genericregistry.RESTOptionsGetter @@ -531,7 +533,7 @@ func (c *RecommendedConfig) Complete() CompletedConfig { } // New creates a new server which logically combines the handling chain with the passed server. -// name is used to differentiate for logging. The handler chain in particular can be difficult as it starts delgating. +// name is used to differentiate for logging. The handler chain in particular can be difficult as it starts delegating. // delegationTarget may not be nil. func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*GenericAPIServer, error) { if c.Serializer == nil { @@ -571,7 +573,8 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G listedPathProvider: apiServerHandler, - openAPIConfig: c.OpenAPIConfig, + openAPIConfig: c.OpenAPIConfig, + skipOpenAPIInstallation: c.SkipOpenAPIInstallation, postStartHooks: map[string]postStartHookEntry{}, preShutdownHooks: map[string]preShutdownHookEntry{}, @@ -633,7 +636,7 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G } } // TODO: Once we get rid of /healthz consider changing this to post-start-hook. - err := s.addReadyzChecks(healthz.NewInformerSyncHealthz(c.SharedInformerFactory)) + err := s.AddReadyzChecks(healthz.NewInformerSyncHealthz(c.SharedInformerFactory)) if err != nil { return nil, err } @@ -746,7 +749,13 @@ func DefaultBuildHandlerChain(apiHandler http.Handler, c *Config) http.Handler { handler = filterlatency.TrackStarted(handler, "authentication") handler = genericfilters.WithCORS(handler, c.CorsAllowedOriginList, nil, nil, nil, "true") - handler = genericfilters.WithTimeoutForNonLongRunningRequests(handler, c.LongRunningFunc, c.RequestTimeout) + + // WithTimeoutForNonLongRunningRequests will call the rest of the request handling in a go-routine with the + // context with deadline. The go-routine can keep running, while the timeout logic will return a timeout to the client. + handler = genericfilters.WithTimeoutForNonLongRunningRequests(handler, c.LongRunningFunc) + + handler = genericapifilters.WithRequestDeadline(handler, c.AuditBackend, c.AuditPolicyChecker, + c.LongRunningFunc, c.Serializer, c.RequestTimeout) handler = genericfilters.WithWaitGroup(handler, c.LongRunningFunc, c.HandlerChainWaitGroup) handler = genericapifilters.WithRequestInfo(handler, c.RequestInfoResolver) if c.SecureServing != nil && !c.SecureServing.DisableHTTP2 && c.GoawayChance > 0 { @@ -755,6 +764,7 @@ func DefaultBuildHandlerChain(apiHandler http.Handler, c *Config) http.Handler { handler = genericapifilters.WithAuditAnnotations(handler, c.AuditBackend, c.AuditPolicyChecker) handler = genericapifilters.WithWarningRecorder(handler) handler = genericapifilters.WithCacheControl(handler) + handler = genericfilters.WithHSTS(handler, c.HSTSDirectives) handler = genericapifilters.WithRequestReceivedTimestamp(handler) handler = genericfilters.WithPanicRecovery(handler, c.RequestInfoResolver) return handler diff --git a/vendor/k8s.io/apiserver/pkg/server/deleted_kinds.go b/vendor/k8s.io/apiserver/pkg/server/deleted_kinds.go new file mode 100644 index 0000000000..e9aed99ed6 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/server/deleted_kinds.go @@ -0,0 +1,198 @@ +/* +Copyright 2020 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. +*/ + +package server + +import ( + "os" + "strconv" + "strings" + + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + apimachineryversion "k8s.io/apimachinery/pkg/version" + "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/klog/v2" +) + +// resourceExpirationEvaluator holds info for deciding if a particular rest.Storage needs to excluded from the API +type resourceExpirationEvaluator struct { + currentMajor int + currentMinor int + isAlpha bool + // This is usually set for testing for which tests need to be removed. This prevent insta-failing CI. + // Set KUBE_APISERVER_STRICT_REMOVED_API_HANDLING_IN_ALPHA to see what will be removed when we tag beta + strictRemovedHandlingInAlpha bool + // This is usually set by a cluster-admin looking for a short-term escape hatch after something bad happened. + // This should be made a flag before merge + // Set KUBE_APISERVER_SERVE_REMOVED_APIS_FOR_ONE_RELEASE to prevent removing APIs for one more release. + serveRemovedAPIsOneMoreRelease bool +} + +// ResourceExpirationEvaluator indicates whether or not a resource should be served. +type ResourceExpirationEvaluator interface { + // RemoveDeletedKinds inspects the storage map and modifies it in place by removing storage for kinds that have been deleted. + // versionedResourcesStorageMap mirrors the field on APIGroupInfo, it's a map from version to resource to the storage. + RemoveDeletedKinds(groupName string, versioner runtime.ObjectVersioner, versionedResourcesStorageMap map[string]map[string]rest.Storage) + // ShouldServeForVersion returns true if a particular version cut off is after the current version + ShouldServeForVersion(majorRemoved, minorRemoved int) bool +} + +func NewResourceExpirationEvaluator(currentVersion apimachineryversion.Info) (ResourceExpirationEvaluator, error) { + ret := &resourceExpirationEvaluator{} + if len(currentVersion.Major) > 0 { + currentMajor64, err := strconv.ParseInt(currentVersion.Major, 10, 32) + if err != nil { + return nil, err + } + ret.currentMajor = int(currentMajor64) + } + if len(currentVersion.Minor) > 0 { + // split the "normal" + and - for semver stuff + minorString := strings.Split(currentVersion.Minor, "+")[0] + minorString = strings.Split(minorString, "-")[0] + minorString = strings.Split(minorString, ".")[0] + currentMinor64, err := strconv.ParseInt(minorString, 10, 32) + if err != nil { + return nil, err + } + ret.currentMinor = int(currentMinor64) + } + + ret.isAlpha = strings.Contains(currentVersion.GitVersion, "alpha") + + if envString, ok := os.LookupEnv("KUBE_APISERVER_STRICT_REMOVED_API_HANDLING_IN_ALPHA"); !ok { + // do nothing + } else if envBool, err := strconv.ParseBool(envString); err != nil { + return nil, err + } else { + ret.strictRemovedHandlingInAlpha = envBool + } + if envString, ok := os.LookupEnv("KUBE_APISERVER_SERVE_REMOVED_APIS_FOR_ONE_RELEASE"); !ok { + // do nothing + } else if envBool, err := strconv.ParseBool(envString); err != nil { + return nil, err + } else { + ret.serveRemovedAPIsOneMoreRelease = envBool + } + + return ret, nil +} + +func (e *resourceExpirationEvaluator) shouldServe(gv schema.GroupVersion, versioner runtime.ObjectVersioner, resourceServingInfo rest.Storage) bool { + internalPtr := resourceServingInfo.New() + + target := gv + // honor storage that overrides group version (used for things like scale subresources) + if versionProvider, ok := resourceServingInfo.(rest.GroupVersionKindProvider); ok { + target = versionProvider.GroupVersionKind(target).GroupVersion() + } + + versionedPtr, err := versioner.ConvertToVersion(internalPtr, target) + if err != nil { + utilruntime.HandleError(err) + return false + } + + removed, ok := versionedPtr.(removedInterface) + if !ok { + return true + } + majorRemoved, minorRemoved := removed.APILifecycleRemoved() + return e.ShouldServeForVersion(majorRemoved, minorRemoved) +} + +func (e *resourceExpirationEvaluator) ShouldServeForVersion(majorRemoved, minorRemoved int) bool { + if e.currentMajor < majorRemoved { + return true + } + if e.currentMajor > majorRemoved { + return false + } + if e.currentMinor < minorRemoved { + return true + } + if e.currentMinor > minorRemoved { + return false + } + // at this point major and minor are equal, so this API should be removed when the current release GAs. + // If this is an alpha tag, don't remove by default, but allow the option. + // If the cluster-admin has requested serving one more release, allow it. + if e.isAlpha && e.strictRemovedHandlingInAlpha { // don't serve in alpha if we want strict handling + return false + } + if e.isAlpha { // alphas are allowed to continue serving expired betas while we clean up the test + return true + } + if e.serveRemovedAPIsOneMoreRelease { // cluster-admins are allowed to kick the can one release down the road + return true + } + return false +} + +type removedInterface interface { + APILifecycleRemoved() (major, minor int) +} + +// removeDeletedKinds inspects the storage map and modifies it in place by removing storage for kinds that have been deleted. +// versionedResourcesStorageMap mirrors the field on APIGroupInfo, it's a map from version to resource to the storage. +func (e *resourceExpirationEvaluator) RemoveDeletedKinds(groupName string, versioner runtime.ObjectVersioner, versionedResourcesStorageMap map[string]map[string]rest.Storage) { + versionsToRemove := sets.NewString() + for apiVersion := range sets.StringKeySet(versionedResourcesStorageMap) { + versionToResource := versionedResourcesStorageMap[apiVersion] + resourcesToRemove := sets.NewString() + for resourceName, resourceServingInfo := range versionToResource { + if !e.shouldServe(schema.GroupVersion{Group: groupName, Version: apiVersion}, versioner, resourceServingInfo) { + resourcesToRemove.Insert(resourceName) + } + } + + for resourceName := range versionedResourcesStorageMap[apiVersion] { + if !shouldRemoveResourceAndSubresources(resourcesToRemove, resourceName) { + continue + } + + klog.V(1).Infof("Removing resource %v.%v.%v because it is time to stop serving it per APILifecycle.", resourceName, apiVersion, groupName) + delete(versionToResource, resourceName) + } + versionedResourcesStorageMap[apiVersion] = versionToResource + + if len(versionedResourcesStorageMap[apiVersion]) == 0 { + versionsToRemove.Insert(apiVersion) + } + } + + for _, apiVersion := range versionsToRemove.List() { + klog.V(1).Infof("Removing version %v.%v because it is time to stop serving it because it has no resources per APILifecycle.", apiVersion, groupName) + delete(versionedResourcesStorageMap, apiVersion) + } +} + +func shouldRemoveResourceAndSubresources(resourcesToRemove sets.String, resourceName string) bool { + for _, resourceToRemove := range resourcesToRemove.List() { + if resourceName == resourceToRemove { + return true + } + // our API works on nesting, so you can have deployments, deployments/status, and deployments/scale. Not all subresources + // serve the parent type, but if the parent type (deployments in this case), has been removed, it's subresources should be removed too. + if strings.HasPrefix(resourceName, resourceToRemove+"/") { + return true + } + } + return false +} diff --git a/vendor/k8s.io/apiserver/pkg/server/egressselector/egress_selector.go b/vendor/k8s.io/apiserver/pkg/server/egressselector/egress_selector.go index a849575b8e..701540d64a 100644 --- a/vendor/k8s.io/apiserver/pkg/server/egressselector/egress_selector.go +++ b/vendor/k8s.io/apiserver/pkg/server/egressselector/egress_selector.go @@ -47,7 +47,7 @@ type EgressSelector struct { } // EgressType is an indicator of which egress selection should be used for sending traffic. -// See https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190226-network-proxy.md#network-context +// See https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/1281-network-proxy/README.md#network-context type EgressType int const ( @@ -226,7 +226,7 @@ func (d *dialerCreator) createDialer() utilnet.DialFunc { return directDialer } return func(ctx context.Context, network, addr string) (net.Conn, error) { - trace := utiltrace.New(fmt.Sprintf("Proxy via HTTP Connect over %s", d.options.transport), utiltrace.Field{Key: "address", Value: addr}) + trace := utiltrace.New(fmt.Sprintf("Proxy via %s protocol over %s", d.options.protocol, d.options.transport), utiltrace.Field{Key: "address", Value: addr}) defer trace.LogIfLong(500 * time.Millisecond) start := egressmetrics.Metrics.Clock().Now() proxier, err := d.connector.connect() diff --git a/vendor/k8s.io/apiserver/pkg/server/filters/cors.go b/vendor/k8s.io/apiserver/pkg/server/filters/cors.go index 67df760988..29c46e4c79 100644 --- a/vendor/k8s.io/apiserver/pkg/server/filters/cors.go +++ b/vendor/k8s.io/apiserver/pkg/server/filters/cors.go @@ -25,8 +25,8 @@ import ( ) // TODO: use restful.CrossOriginResourceSharing -// See github.com/emicklei/go-restful/blob/master/examples/restful-CORS-filter.go, and -// github.com/emicklei/go-restful/blob/master/examples/restful-basic-authentication.go +// See github.com/emicklei/go-restful/blob/master/examples/cors/restful-CORS-filter.go, and +// github.com/emicklei/go-restful/blob/master/examples/basicauth/restful-basic-authentication.go // Or, for a more detailed implementation use https://github.com/martini-contrib/cors // or implement CORS at your proxy layer. diff --git a/vendor/k8s.io/apiserver/pkg/server/filters/hsts.go b/vendor/k8s.io/apiserver/pkg/server/filters/hsts.go new file mode 100644 index 0000000000..46625381fa --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/server/filters/hsts.go @@ -0,0 +1,40 @@ +/* +Copyright 2020 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. +*/ + +package filters + +import ( + "net/http" + "strings" +) + +// WithHSTS is a simple HSTS implementation that wraps an http Handler. +// If hstsDirectives is empty or nil, no HSTS support is installed. +func WithHSTS(handler http.Handler, hstsDirectives []string) http.Handler { + if len(hstsDirectives) == 0 { + return handler + } + allDirectives := strings.Join(hstsDirectives, "; ") + return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + // Chrome and Mozilla Firefox maintain an HSTS preload list + // issue : golang.org/issue/26162 + // Set the Strict-Transport-Security header if it is not already set + if _, ok := w.Header()["Strict-Transport-Security"]; !ok { + w.Header().Set("Strict-Transport-Security", allDirectives) + } + handler.ServeHTTP(w, req) + }) +} diff --git a/vendor/k8s.io/apiserver/pkg/server/filters/maxinflight.go b/vendor/k8s.io/apiserver/pkg/server/filters/maxinflight.go index e873351c70..2484bfc76c 100644 --- a/vendor/k8s.io/apiserver/pkg/server/filters/maxinflight.go +++ b/vendor/k8s.io/apiserver/pkg/server/filters/maxinflight.go @@ -196,9 +196,9 @@ func WithMaxInFlightLimit( } // We need to split this data between buckets used for throttling. if isMutatingRequest { - metrics.DroppedRequests.WithLabelValues(metrics.MutatingKind).Inc() + metrics.DroppedRequests.WithContext(ctx).WithLabelValues(metrics.MutatingKind).Inc() } else { - metrics.DroppedRequests.WithLabelValues(metrics.ReadOnlyKind).Inc() + metrics.DroppedRequests.WithContext(ctx).WithLabelValues(metrics.ReadOnlyKind).Inc() } metrics.RecordRequestTermination(r, requestInfo, metrics.APIServerComponent, http.StatusTooManyRequests) tooManyRequests(r, w) diff --git a/vendor/k8s.io/apiserver/pkg/server/filters/priority-and-fairness.go b/vendor/k8s.io/apiserver/pkg/server/filters/priority-and-fairness.go index e1d7b7793a..186824e2f2 100644 --- a/vendor/k8s.io/apiserver/pkg/server/filters/priority-and-fairness.go +++ b/vendor/k8s.io/apiserver/pkg/server/filters/priority-and-fairness.go @@ -122,8 +122,8 @@ func WithPriorityAndFairness( served = true innerCtx := context.WithValue(ctx, priorityAndFairnessKey, classification) innerReq := r.Clone(innerCtx) - w.Header().Set(flowcontrol.ResponseHeaderMatchedPriorityLevelConfigurationUID, string(classification.PriorityLevelUID)) - w.Header().Set(flowcontrol.ResponseHeaderMatchedFlowSchemaUID, string(classification.FlowSchemaUID)) + setResponseHeaders(classification, w) + handler.ServeHTTP(w, innerReq) } digest := utilflowcontrol.RequestDigest{RequestInfo: requestInfo, User: user} @@ -135,10 +135,12 @@ func WithPriorityAndFairness( } }, execute) if !served { + setResponseHeaders(classification, w) + if isMutatingRequest { - epmetrics.DroppedRequests.WithLabelValues(epmetrics.MutatingKind).Inc() + epmetrics.DroppedRequests.WithContext(ctx).WithLabelValues(epmetrics.MutatingKind).Inc() } else { - epmetrics.DroppedRequests.WithLabelValues(epmetrics.ReadOnlyKind).Inc() + epmetrics.DroppedRequests.WithContext(ctx).WithLabelValues(epmetrics.ReadOnlyKind).Inc() } epmetrics.RecordRequestTermination(r, requestInfo, epmetrics.APIServerComponent, http.StatusTooManyRequests) tooManyRequests(r, w) @@ -153,3 +155,15 @@ func StartPriorityAndFairnessWatermarkMaintenance(stopCh <-chan struct{}) { startWatermarkMaintenance(watermark, stopCh) startWatermarkMaintenance(waitingMark, stopCh) } + +func setResponseHeaders(classification *PriorityAndFairnessClassification, w http.ResponseWriter) { + if classification == nil { + return + } + + // We intentionally set the UID of the flow-schema and priority-level instead of name. This is so that + // the names that cluster-admins choose for categorization and priority levels are not exposed, also + // the names might make it obvious to the users that they are rejected due to classification with low priority. + w.Header().Set(flowcontrol.ResponseHeaderMatchedPriorityLevelConfigurationUID, string(classification.PriorityLevelUID)) + w.Header().Set(flowcontrol.ResponseHeaderMatchedFlowSchemaUID, string(classification.FlowSchemaUID)) +} diff --git a/vendor/k8s.io/apiserver/pkg/server/filters/timeout.go b/vendor/k8s.io/apiserver/pkg/server/filters/timeout.go index 2405bfd1ff..ccbed60dba 100644 --- a/vendor/k8s.io/apiserver/pkg/server/filters/timeout.go +++ b/vendor/k8s.io/apiserver/pkg/server/filters/timeout.go @@ -18,14 +18,12 @@ package filters import ( "bufio" - "context" "encoding/json" "fmt" "net" "net/http" "runtime" "sync" - "time" apierrors "k8s.io/apimachinery/pkg/api/errors" utilruntime "k8s.io/apimachinery/pkg/util/runtime" @@ -34,37 +32,33 @@ import ( ) // WithTimeoutForNonLongRunningRequests times out non-long-running requests after the time given by timeout. -func WithTimeoutForNonLongRunningRequests(handler http.Handler, longRunning apirequest.LongRunningRequestCheck, timeout time.Duration) http.Handler { +func WithTimeoutForNonLongRunningRequests(handler http.Handler, longRunning apirequest.LongRunningRequestCheck) http.Handler { if longRunning == nil { return handler } - timeoutFunc := func(req *http.Request) (*http.Request, <-chan time.Time, func(), *apierrors.StatusError) { + timeoutFunc := func(req *http.Request) (*http.Request, bool, func(), *apierrors.StatusError) { // TODO unify this with apiserver.MaxInFlightLimit ctx := req.Context() requestInfo, ok := apirequest.RequestInfoFrom(ctx) if !ok { // if this happens, the handler chain isn't setup correctly because there is no request info - return req, time.After(timeout), func() {}, apierrors.NewInternalError(fmt.Errorf("no request info found for request during timeout")) + return req, false, func() {}, apierrors.NewInternalError(fmt.Errorf("no request info found for request during timeout")) } if longRunning(req, requestInfo) { - return req, nil, nil, nil + return req, true, nil, nil } - ctx, cancel := context.WithCancel(ctx) - req = req.WithContext(ctx) - postTimeoutFn := func() { - cancel() metrics.RecordRequestTermination(req, requestInfo, metrics.APIServerComponent, http.StatusGatewayTimeout) } - return req, time.After(timeout), postTimeoutFn, apierrors.NewTimeoutError(fmt.Sprintf("request did not complete within %s", timeout), 0) + return req, false, postTimeoutFn, apierrors.NewTimeoutError("request did not complete within the allotted timeout", 0) } return WithTimeout(handler, timeoutFunc) } -type timeoutFunc = func(*http.Request) (req *http.Request, timeout <-chan time.Time, postTimeoutFunc func(), err *apierrors.StatusError) +type timeoutFunc = func(*http.Request) (req *http.Request, longRunning bool, postTimeoutFunc func(), err *apierrors.StatusError) // WithTimeout returns an http.Handler that runs h with a timeout // determined by timeoutFunc. The new http.Handler calls h.ServeHTTP to handle @@ -85,12 +79,14 @@ type timeoutHandler struct { } func (t *timeoutHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - r, after, postTimeoutFn, err := t.timeout(r) - if after == nil { + r, longRunning, postTimeoutFn, err := t.timeout(r) + if longRunning { t.handler.ServeHTTP(w, r) return } + timeoutCh := r.Context().Done() + // resultCh is used as both errCh and stopCh resultCh := make(chan interface{}) tw := newTimeoutWriter(w) @@ -117,7 +113,7 @@ func (t *timeoutHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { panic(err) } return - case <-after: + case <-timeoutCh: defer func() { // resultCh needs to have a reader, since the function doing // the work needs to send to it. This is defer'd to ensure it runs diff --git a/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go b/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go index d7d60b213d..905a7c1182 100644 --- a/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go +++ b/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go @@ -133,8 +133,14 @@ type GenericAPIServer struct { // Enable swagger and/or OpenAPI if these configs are non-nil. openAPIConfig *openapicommon.Config + // SkipOpenAPIInstallation indicates not to install the OpenAPI handler + // during PrepareRun. + // Set this to true when the specific API Server has its own OpenAPI handler + // (e.g. kube-aggregator) + skipOpenAPIInstallation bool + // OpenAPIVersionedService controls the /openapi/v2 endpoint, and can be used to update the served spec. - // It is set during PrepareRun. + // It is set during PrepareRun if `openAPIConfig` is non-nil unless `skipOpenAPIInstallation` is true. OpenAPIVersionedService *handler.OpenAPIService // StaticOpenAPISpec is the spec derived from the restful container endpoints. @@ -289,7 +295,7 @@ type preparedGenericAPIServer struct { func (s *GenericAPIServer) PrepareRun() preparedGenericAPIServer { s.delegationTarget.PrepareRun() - if s.openAPIConfig != nil { + if s.openAPIConfig != nil && !s.skipOpenAPIInstallation { s.OpenAPIVersionedService, s.StaticOpenAPISpec = routes.OpenAPI{ Config: s.openAPIConfig, }.Install(s.Handler.GoRestfulContainer, s.Handler.NonGoRestfulMux) @@ -549,14 +555,15 @@ func (s *GenericAPIServer) newAPIGroupVersion(apiGroupInfo *APIGroupInfo, groupV GroupVersion: groupVersion, MetaGroupVersion: apiGroupInfo.MetaGroupVersion, - ParameterCodec: apiGroupInfo.ParameterCodec, - Serializer: apiGroupInfo.NegotiatedSerializer, - Creater: apiGroupInfo.Scheme, - Convertor: apiGroupInfo.Scheme, - UnsafeConvertor: runtime.UnsafeObjectConvertor(apiGroupInfo.Scheme), - Defaulter: apiGroupInfo.Scheme, - Typer: apiGroupInfo.Scheme, - Linker: runtime.SelfLinker(meta.NewAccessor()), + ParameterCodec: apiGroupInfo.ParameterCodec, + Serializer: apiGroupInfo.NegotiatedSerializer, + Creater: apiGroupInfo.Scheme, + Convertor: apiGroupInfo.Scheme, + ConvertabilityChecker: apiGroupInfo.Scheme, + UnsafeConvertor: runtime.UnsafeObjectConvertor(apiGroupInfo.Scheme), + Defaulter: apiGroupInfo.Scheme, + Typer: apiGroupInfo.Scheme, + Linker: runtime.SelfLinker(meta.NewAccessor()), EquivalentResourceRegistry: s.EquivalentResourceRegistry, diff --git a/vendor/k8s.io/apiserver/pkg/server/healthz.go b/vendor/k8s.io/apiserver/pkg/server/healthz.go index 645886949b..27032b1402 100644 --- a/vendor/k8s.io/apiserver/pkg/server/healthz.go +++ b/vendor/k8s.io/apiserver/pkg/server/healthz.go @@ -53,11 +53,14 @@ func (s *GenericAPIServer) addHealthChecks(livezGracePeriod time.Duration, check return fmt.Errorf("unable to add because the healthz endpoint has already been created") } s.healthzChecks = append(s.healthzChecks, checks...) - return s.addLivezChecks(livezGracePeriod, checks...) + if err := s.AddLivezChecks(livezGracePeriod, checks...); err != nil { + return err + } + return s.AddReadyzChecks(checks...) } -// addReadyzChecks allows you to add a HealthCheck to readyz. -func (s *GenericAPIServer) addReadyzChecks(checks ...healthz.HealthChecker) error { +// AddReadyzChecks allows you to add a HealthCheck to readyz. +func (s *GenericAPIServer) AddReadyzChecks(checks ...healthz.HealthChecker) error { s.readyzLock.Lock() defer s.readyzLock.Unlock() if s.readyzChecksInstalled { @@ -67,9 +70,8 @@ func (s *GenericAPIServer) addReadyzChecks(checks ...healthz.HealthChecker) erro return nil } -// addLivezChecks allows you to add a HealthCheck to livez. It will also automatically add a check to readyz, -// since we want to avoid being ready when we are not live. -func (s *GenericAPIServer) addLivezChecks(delay time.Duration, checks ...healthz.HealthChecker) error { +// AddLivezChecks allows you to add a HealthCheck to livez. +func (s *GenericAPIServer) AddLivezChecks(delay time.Duration, checks ...healthz.HealthChecker) error { s.livezLock.Lock() defer s.livezLock.Unlock() if s.livezChecksInstalled { @@ -78,14 +80,14 @@ func (s *GenericAPIServer) addLivezChecks(delay time.Duration, checks ...healthz for _, check := range checks { s.livezChecks = append(s.livezChecks, delayedHealthCheck(check, s.livezClock, delay)) } - return s.addReadyzChecks(checks...) + return nil } // addReadyzShutdownCheck is a convenience function for adding a readyz shutdown check, so // that we can register that the api-server is no longer ready while we attempt to gracefully // shutdown. func (s *GenericAPIServer) addReadyzShutdownCheck(stopCh <-chan struct{}) error { - return s.addReadyzChecks(shutdownCheck{stopCh}) + return s.AddReadyzChecks(shutdownCheck{stopCh}) } // installHealthz creates the healthz endpoint for this server diff --git a/vendor/k8s.io/apiserver/pkg/storage/OWNERS b/vendor/k8s.io/apiserver/pkg/storage/OWNERS index 167792c327..68f98b61a2 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/OWNERS +++ b/vendor/k8s.io/apiserver/pkg/storage/OWNERS @@ -22,5 +22,4 @@ reviewers: - mml - ingvagabund - resouer -- mbohlool - enj diff --git a/vendor/k8s.io/apiserver/pkg/storage/cacher/cacher.go b/vendor/k8s.io/apiserver/pkg/storage/cacher/cacher.go index 4595177675..23ffc3ae31 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/cacher/cacher.go +++ b/vendor/k8s.io/apiserver/pkg/storage/cacher/cacher.go @@ -431,8 +431,21 @@ func (c *Cacher) Create(ctx context.Context, key string, obj, out runtime.Object } // Delete implements storage.Interface. -func (c *Cacher) Delete(ctx context.Context, key string, out runtime.Object, preconditions *storage.Preconditions, validateDeletion storage.ValidateObjectFunc) error { - return c.storage.Delete(ctx, key, out, preconditions, validateDeletion) +func (c *Cacher) Delete( + ctx context.Context, key string, out runtime.Object, preconditions *storage.Preconditions, + validateDeletion storage.ValidateObjectFunc, _ runtime.Object) error { + // Ignore the suggestion and try to pass down the current version of the object + // read from cache. + if elem, exists, err := c.watchCache.GetByKey(key); err != nil { + klog.Errorf("GetByKey returned error: %v", err) + } else if exists { + // DeepCopy the object since we modify resource version when serializing the + // current object. + currObj := elem.(*storeElement).Object.DeepCopyObject() + return c.storage.Delete(ctx, key, out, preconditions, validateDeletion, currObj) + } + // If we couldn't get the object, fallback to no-suggestion. + return c.storage.Delete(ctx, key, out, preconditions, validateDeletion, nil) } // Watch implements storage.Interface. @@ -474,11 +487,14 @@ func (c *Cacher) Watch(ctx context.Context, key string, opts storage.ListOptions // Determine watch timeout('0' means deadline is not set, ignore checking) deadline, _ := ctx.Deadline() + + identifier := fmt.Sprintf("key: %q, labels: %q, fields: %q", key, pred.Label, pred.Field) + // Create a watcher here to reduce memory allocations under lock, // given that memory allocation may trigger GC and block the thread. // Also note that emptyFunc is a placeholder, until we will be able // to compute watcher.forget function (which has to happen under lock). - watcher := newCacheWatcher(chanSize, filterWithAttrsFunction(key, pred), emptyFunc, c.versioner, deadline, pred.AllowWatchBookmarks, c.objectType) + watcher := newCacheWatcher(chanSize, filterWithAttrsFunction(key, pred), emptyFunc, c.versioner, deadline, pred.AllowWatchBookmarks, c.objectType, identifier) // We explicitly use thread unsafe version and do locking ourself to ensure that // no new events will be processed in the meantime. The watchCache will be unlocked @@ -739,6 +755,8 @@ func (c *Cacher) GuaranteedUpdate( if elem, exists, err := c.watchCache.GetByKey(key); err != nil { klog.Errorf("GetByKey returned error: %v", err) } else if exists { + // DeepCopy the object since we modify resource version when serializing the + // current object. currObj := elem.(*storeElement).Object.DeepCopyObject() return c.storage.GuaranteedUpdate(ctx, key, ptrToType, ignoreNotFound, preconditions, tryUpdate, currObj) } @@ -1179,9 +1197,13 @@ type cacheWatcher struct { allowWatchBookmarks bool // Object type of the cache watcher interests objectType reflect.Type + + // human readable identifier that helps assigning cacheWatcher + // instance with request + identifier string } -func newCacheWatcher(chanSize int, filter filterWithAttrsFunc, forget func(), versioner storage.Versioner, deadline time.Time, allowWatchBookmarks bool, objectType reflect.Type) *cacheWatcher { +func newCacheWatcher(chanSize int, filter filterWithAttrsFunc, forget func(), versioner storage.Versioner, deadline time.Time, allowWatchBookmarks bool, objectType reflect.Type, identifier string) *cacheWatcher { return &cacheWatcher{ input: make(chan *watchCacheEvent, chanSize), result: make(chan watch.Event, chanSize), @@ -1193,6 +1215,7 @@ func newCacheWatcher(chanSize int, filter filterWithAttrsFunc, forget func(), ve deadline: deadline, allowWatchBookmarks: allowWatchBookmarks, objectType: objectType, + identifier: identifier, } } @@ -1235,7 +1258,8 @@ func (c *cacheWatcher) add(event *watchCacheEvent, timer *time.Timer) bool { // This means that we couldn't send event to that watcher. // Since we don't want to block on it infinitely, // we simply terminate it. - klog.V(1).Infof("Forcing watcher close due to unresponsiveness: %v", c.objectType.String()) + klog.V(1).Infof("Forcing %v watcher close due to unresponsiveness: %v. len(c.input) = %v, len(c.result) = %v", c.objectType.String(), c.identifier, len(c.input), len(c.result)) + terminatedWatchersCounter.WithLabelValues(c.objectType.String()).Inc() c.forget() } @@ -1386,7 +1410,7 @@ func (c *cacheWatcher) process(ctx context.Context, initEvents []*watchCacheEven } processingTime := time.Since(startTime) if processingTime > initProcessThreshold { - klog.V(2).Infof("processing %d initEvents of %s took %v", len(initEvents), objType, processingTime) + klog.V(2).Infof("processing %d initEvents of %s (%s) took %v", len(initEvents), objType, c.identifier, processingTime) } defer close(c.result) diff --git a/vendor/k8s.io/apiserver/pkg/storage/cacher/metrics.go b/vendor/k8s.io/apiserver/pkg/storage/cacher/metrics.go index 19cd5da6af..cf7bad510a 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/cacher/metrics.go +++ b/vendor/k8s.io/apiserver/pkg/storage/cacher/metrics.go @@ -23,7 +23,7 @@ import ( /* * By default, all the following metrics are defined as falling under - * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) + * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/1209-metrics-stability/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) * * Promoting the stability level of the metric is a responsibility of the component owner, since it * involves explicitly acknowledging support for the metric across multiple releases, in accordance with @@ -39,6 +39,15 @@ var ( []string{"resource"}, ) + terminatedWatchersCounter = metrics.NewCounterVec( + &metrics.CounterOpts{ + Name: "apiserver_terminated_watchers_total", + Help: "Counter of watchers closed due to unresponsiveness broken by resource type.", + StabilityLevel: metrics.ALPHA, + }, + []string{"resource"}, + ) + watchCacheCapacityIncreaseTotal = metrics.NewCounterVec( &metrics.CounterOpts{ Name: "watch_cache_capacity_increase_total", @@ -56,12 +65,23 @@ var ( }, []string{"resource"}, ) + + watchCacheCapacity = metrics.NewGaugeVec( + &metrics.GaugeOpts{ + Name: "watch_cache_capacity", + Help: "Total capacity of watch cache broken by resource type.", + StabilityLevel: metrics.ALPHA, + }, + []string{"resource"}, + ) ) func init() { legacyregistry.MustRegister(initCounter) + legacyregistry.MustRegister(terminatedWatchersCounter) legacyregistry.MustRegister(watchCacheCapacityIncreaseTotal) legacyregistry.MustRegister(watchCacheCapacityDecreaseTotal) + legacyregistry.MustRegister(watchCacheCapacity) } // recordsWatchCacheCapacityChange record watchCache capacity resize(increase or decrease) operations. @@ -71,4 +91,5 @@ func recordsWatchCacheCapacityChange(objType string, old, new int) { return } watchCacheCapacityDecreaseTotal.WithLabelValues(objType).Inc() + watchCacheCapacity.WithLabelValues(objType).Set(float64(new)) } diff --git a/vendor/k8s.io/apiserver/pkg/storage/cacher/watch_cache.go b/vendor/k8s.io/apiserver/pkg/storage/cacher/watch_cache.go index dafcb39963..b3c925e180 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/cacher/watch_cache.go +++ b/vendor/k8s.io/apiserver/pkg/storage/cacher/watch_cache.go @@ -216,6 +216,8 @@ func newWatchCache( versioner: versioner, objectType: objectType, } + objType := objectType.String() + watchCacheCapacity.WithLabelValues(objType).Set(float64(wc.capacity)) wc.cond = sync.NewCond(wc.RLocker()) return wc } diff --git a/vendor/k8s.io/apiserver/pkg/storage/etcd3/OWNERS b/vendor/k8s.io/apiserver/pkg/storage/etcd3/OWNERS index 84666835da..bdb4d402aa 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/etcd3/OWNERS +++ b/vendor/k8s.io/apiserver/pkg/storage/etcd3/OWNERS @@ -3,5 +3,4 @@ reviewers: - wojtek-t - timothysc -- madhusudancs - hongchaodeng diff --git a/vendor/k8s.io/apiserver/pkg/storage/etcd3/lease_manager.go b/vendor/k8s.io/apiserver/pkg/storage/etcd3/lease_manager.go index 6b5a5700a9..7c8b4a1d86 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/etcd3/lease_manager.go +++ b/vendor/k8s.io/apiserver/pkg/storage/etcd3/lease_manager.go @@ -22,8 +22,30 @@ import ( "time" "go.etcd.io/etcd/clientv3" + "k8s.io/apiserver/pkg/storage/etcd3/metrics" ) +const ( + defaultLeaseReuseDurationSeconds = 60 + defaultLeaseMaxObjectCount = 1000 +) + +// LeaseManagerConfig is configuration for creating a lease manager. +type LeaseManagerConfig struct { + // ReuseDurationSeconds specifies time in seconds that each lease is reused + ReuseDurationSeconds int64 + // MaxObjectCount specifies how many objects that a lease can attach + MaxObjectCount int64 +} + +// NewDefaultLeaseManagerConfig creates a LeaseManagerConfig with default values +func NewDefaultLeaseManagerConfig() LeaseManagerConfig { + return LeaseManagerConfig{ + ReuseDurationSeconds: defaultLeaseReuseDurationSeconds, + MaxObjectCount: defaultLeaseMaxObjectCount, + } +} + // leaseManager is used to manage leases requested from etcd. If a new write // needs a lease that has similar expiration time to the previous one, the old // lease will be reused to reduce the overhead of etcd, since lease operations @@ -36,35 +58,33 @@ type leaseManager struct { prevLeaseExpirationTime time.Time // The period of time in seconds and percent of TTL that each lease is // reused. The minimum of them is used to avoid unreasonably large - // numbers. We use var instead of const for testing purposes. - leaseReuseDurationSeconds int64 - leaseReuseDurationPercent float64 + // numbers. + leaseReuseDurationSeconds int64 + leaseReuseDurationPercent float64 + leaseMaxAttachedObjectCount int64 + leaseAttachedObjectCount int64 } // newDefaultLeaseManager creates a new lease manager using default setting. -func newDefaultLeaseManager(client *clientv3.Client) *leaseManager { - return newLeaseManager(client, 60, 0.05) +func newDefaultLeaseManager(client *clientv3.Client, config LeaseManagerConfig) *leaseManager { + if config.MaxObjectCount <= 0 { + config.MaxObjectCount = defaultLeaseMaxObjectCount + } + return newLeaseManager(client, config.ReuseDurationSeconds, 0.05, config.MaxObjectCount) } // newLeaseManager creates a new lease manager with the number of buffered // leases, lease reuse duration in seconds and percentage. The percentage // value x means x*100%. -func newLeaseManager(client *clientv3.Client, leaseReuseDurationSeconds int64, leaseReuseDurationPercent float64) *leaseManager { +func newLeaseManager(client *clientv3.Client, leaseReuseDurationSeconds int64, leaseReuseDurationPercent float64, maxObjectCount int64) *leaseManager { return &leaseManager{ - client: client, - leaseReuseDurationSeconds: leaseReuseDurationSeconds, - leaseReuseDurationPercent: leaseReuseDurationPercent, + client: client, + leaseReuseDurationSeconds: leaseReuseDurationSeconds, + leaseReuseDurationPercent: leaseReuseDurationPercent, + leaseMaxAttachedObjectCount: maxObjectCount, } } -// setLeaseReuseDurationSeconds is used for testing purpose. It is used to -// reduce the extra lease duration to avoid unnecessary timeout in testing. -func (l *leaseManager) setLeaseReuseDurationSeconds(duration int64) { - l.leaseMu.Lock() - defer l.leaseMu.Unlock() - l.leaseReuseDurationSeconds = duration -} - // GetLease returns a lease based on requested ttl: if the cached previous // lease can be reused, reuse it; otherwise request a new one from etcd. func (l *leaseManager) GetLease(ctx context.Context, ttl int64) (clientv3.LeaseID, error) { @@ -75,9 +95,15 @@ func (l *leaseManager) GetLease(ctx context.Context, ttl int64) (clientv3.LeaseI reuseDurationSeconds := l.getReuseDurationSecondsLocked(ttl) valid := now.Add(time.Duration(ttl) * time.Second).Before(l.prevLeaseExpirationTime) sufficient := now.Add(time.Duration(ttl+reuseDurationSeconds) * time.Second).After(l.prevLeaseExpirationTime) - if valid && sufficient { + + // We count all operations that happened in the same lease, regardless of success or failure. + // Currently each GetLease call only attach 1 object + l.leaseAttachedObjectCount++ + + if valid && sufficient && l.leaseAttachedObjectCount <= l.leaseMaxAttachedObjectCount { return l.prevLeaseID, nil } + // request a lease with a little extra ttl from etcd ttl += reuseDurationSeconds lcr, err := l.client.Lease.Grant(ctx, ttl) @@ -87,6 +113,9 @@ func (l *leaseManager) GetLease(ctx context.Context, ttl int64) (clientv3.LeaseI // cache the new lease id l.prevLeaseID = lcr.ID l.prevLeaseExpirationTime = now.Add(time.Duration(ttl) * time.Second) + // refresh count + metrics.UpdateLeaseObjectCount(l.leaseAttachedObjectCount) + l.leaseAttachedObjectCount = 1 return lcr.ID, nil } diff --git a/vendor/k8s.io/apiserver/pkg/storage/etcd3/metrics/OWNERS b/vendor/k8s.io/apiserver/pkg/storage/etcd3/metrics/OWNERS new file mode 100644 index 0000000000..433e84aa3e --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/storage/etcd3/metrics/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - logicalhan diff --git a/vendor/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go b/vendor/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go index 1f001406a7..c97a4afc82 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go +++ b/vendor/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go @@ -26,7 +26,7 @@ import ( /* * By default, all the following metrics are defined as falling under - * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) + * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/1209-metrics-stability/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) * * Promoting the stability level of the metric is a responsibility of the component owner, since it * involves explicitly acknowledging support for the metric across multiple releases, in accordance with @@ -37,19 +37,26 @@ var ( &compbasemetrics.HistogramOpts{ Name: "etcd_request_duration_seconds", Help: "Etcd request latency in seconds for each operation and object type.", - // Keeping it similar to the buckets used by the apiserver_request_duration_seconds metric so that - // api latency and etcd latency can be more comparable side by side. - Buckets: []float64{.005, .01, .025, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, - 0.8, 0.9, 1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60}, + // Etcd request latency in seconds for each operation and object type. + Buckets: []float64{0.005, 0.025, 0.1, 0.25, 0.5, 1.0, 2.0, 4.0, 15.0, 30.0, 60.0}, StabilityLevel: compbasemetrics.ALPHA, }, []string{"operation", "type"}, ) + etcdObjectCounts = compbasemetrics.NewGaugeVec( + &compbasemetrics.GaugeOpts{ + Name: "etcd_object_counts", + DeprecatedVersion: "1.22.0", + Help: "Number of stored objects at the time of last check split by kind. This metric is replaced by apiserver_storage_object_counts.", + StabilityLevel: compbasemetrics.ALPHA, + }, + []string{"resource"}, + ) objectCounts = compbasemetrics.NewGaugeVec( &compbasemetrics.GaugeOpts{ - Name: "etcd_object_counts", + Name: "apiserver_storage_objects", Help: "Number of stored objects at the time of last check split by kind.", - StabilityLevel: compbasemetrics.ALPHA, + StabilityLevel: compbasemetrics.STABLE, }, []string{"resource"}, ) @@ -69,6 +76,15 @@ var ( }, []string{"resource"}, ) + etcdLeaseObjectCounts = compbasemetrics.NewHistogramVec( + &compbasemetrics.HistogramOpts{ + Name: "etcd_lease_object_counts", + Help: "Number of objects attached to a single etcd lease.", + Buckets: []float64{10, 50, 100, 500, 1000, 2500, 5000}, + StabilityLevel: compbasemetrics.ALPHA, + }, + []string{}, + ) ) var registerMetrics sync.Once @@ -79,14 +95,17 @@ func Register() { registerMetrics.Do(func() { legacyregistry.MustRegister(etcdRequestLatency) legacyregistry.MustRegister(objectCounts) + legacyregistry.MustRegister(etcdObjectCounts) legacyregistry.MustRegister(dbTotalSize) legacyregistry.MustRegister(etcdBookmarkCounts) + legacyregistry.MustRegister(etcdLeaseObjectCounts) }) } -// UpdateObjectCount sets the etcd_object_counts metric. +// UpdateObjectCount sets the apiserver_storage_object_counts and etcd_object_counts (deprecated) metric. func UpdateObjectCount(resourcePrefix string, count int64) { objectCounts.WithLabelValues(resourcePrefix).Set(float64(count)) + etcdObjectCounts.WithLabelValues(resourcePrefix).Set(float64(count)) } // RecordEtcdRequestLatency sets the etcd_request_duration_seconds metrics. @@ -113,3 +132,10 @@ func sinceInSeconds(start time.Time) float64 { func UpdateEtcdDbSize(ep string, size int64) { dbTotalSize.WithLabelValues(ep).Set(float64(size)) } + +// UpdateLeaseObjectCount sets the etcd_lease_object_counts metric. +func UpdateLeaseObjectCount(count int64) { + // Currently we only store one previous lease, since all the events have the same ttl. + // See pkg/storage/etcd3/lease_manager.go + etcdLeaseObjectCounts.WithLabelValues().Observe(float64(count)) +} diff --git a/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go b/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go index 0cff6b3fc9..01008b7d03 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go +++ b/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go @@ -83,11 +83,11 @@ type objState struct { } // New returns an etcd3 implementation of storage.Interface. -func New(c *clientv3.Client, codec runtime.Codec, newFunc func() runtime.Object, prefix string, transformer value.Transformer, pagingEnabled bool) storage.Interface { - return newStore(c, newFunc, pagingEnabled, codec, prefix, transformer) +func New(c *clientv3.Client, codec runtime.Codec, newFunc func() runtime.Object, prefix string, transformer value.Transformer, pagingEnabled bool, leaseManagerConfig LeaseManagerConfig) storage.Interface { + return newStore(c, codec, newFunc, prefix, transformer, pagingEnabled, leaseManagerConfig) } -func newStore(c *clientv3.Client, newFunc func() runtime.Object, pagingEnabled bool, codec runtime.Codec, prefix string, transformer value.Transformer) *store { +func newStore(c *clientv3.Client, codec runtime.Codec, newFunc func() runtime.Object, prefix string, transformer value.Transformer, pagingEnabled bool, leaseManagerConfig LeaseManagerConfig) *store { versioner := APIObjectVersioner{} result := &store{ client: c, @@ -100,7 +100,7 @@ func newStore(c *clientv3.Client, newFunc func() runtime.Object, pagingEnabled b // keeps compatibility with etcd2 impl for custom prefixes that don't start with '/' pathPrefix: path.Join("/", prefix), watcher: newWatcher(c, codec, newFunc, versioner, transformer), - leaseManager: newDefaultLeaseManager(c), + leaseManager: newDefaultLeaseManager(c, leaseManagerConfig), } return result } @@ -185,35 +185,77 @@ func (s *store) Create(ctx context.Context, key string, obj, out runtime.Object, } // Delete implements storage.Interface.Delete. -func (s *store) Delete(ctx context.Context, key string, out runtime.Object, preconditions *storage.Preconditions, validateDeletion storage.ValidateObjectFunc) error { +func (s *store) Delete( + ctx context.Context, key string, out runtime.Object, preconditions *storage.Preconditions, + validateDeletion storage.ValidateObjectFunc, cachedExistingObject runtime.Object) error { v, err := conversion.EnforcePtr(out) if err != nil { return fmt.Errorf("unable to convert output object to pointer: %v", err) } key = path.Join(s.pathPrefix, key) - return s.conditionalDelete(ctx, key, out, v, preconditions, validateDeletion) + return s.conditionalDelete(ctx, key, out, v, preconditions, validateDeletion, cachedExistingObject) } -func (s *store) conditionalDelete(ctx context.Context, key string, out runtime.Object, v reflect.Value, preconditions *storage.Preconditions, validateDeletion storage.ValidateObjectFunc) error { - startTime := time.Now() - getResp, err := s.client.KV.Get(ctx, key) - metrics.RecordEtcdRequestLatency("get", getTypeName(out), startTime) +func (s *store) conditionalDelete( + ctx context.Context, key string, out runtime.Object, v reflect.Value, preconditions *storage.Preconditions, + validateDeletion storage.ValidateObjectFunc, cachedExistingObject runtime.Object) error { + getCurrentState := func() (*objState, error) { + startTime := time.Now() + getResp, err := s.client.KV.Get(ctx, key) + metrics.RecordEtcdRequestLatency("get", getTypeName(out), startTime) + if err != nil { + return nil, err + } + return s.getState(getResp, key, v, false) + } + + var origState *objState + var err error + var origStateIsCurrent bool + if cachedExistingObject != nil { + origState, err = s.getStateFromObject(cachedExistingObject) + } else { + origState, err = getCurrentState() + origStateIsCurrent = true + } if err != nil { return err } + for { - origState, err := s.getState(getResp, key, v, false) - if err != nil { - return err - } if preconditions != nil { if err := preconditions.Check(key, origState.obj); err != nil { - return err + if origStateIsCurrent { + return err + } + + // It's possible we're working with stale data. + // Actually fetch + origState, err = getCurrentState() + if err != nil { + return err + } + origStateIsCurrent = true + // Retry + continue } } if err := validateDeletion(ctx, origState.obj); err != nil { - return err + if origStateIsCurrent { + return err + } + + // It's possible we're working with stale data. + // Actually fetch + origState, err = getCurrentState() + if err != nil { + return err + } + origStateIsCurrent = true + // Retry + continue } + startTime := time.Now() txnResp, err := s.client.KV.Txn(ctx).If( clientv3.Compare(clientv3.ModRevision(key), "=", origState.rev), @@ -227,8 +269,13 @@ func (s *store) conditionalDelete(ctx context.Context, key string, out runtime.O return err } if !txnResp.Succeeded { - getResp = (*clientv3.GetResponse)(txnResp.Responses[0].GetResponseRange()) + getResp := (*clientv3.GetResponse)(txnResp.Responses[0].GetResponseRange()) klog.V(4).Infof("deletion of %s failed because of a conflict, going to retry", key) + origState, err = s.getState(getResp, key, v, false) + if err != nil { + return err + } + origStateIsCurrent = true continue } return decode(s.codec, s.versioner, origState.data, out, origState.rev) @@ -238,7 +285,7 @@ func (s *store) conditionalDelete(ctx context.Context, key string, out runtime.O // GuaranteedUpdate implements storage.Interface.GuaranteedUpdate. func (s *store) GuaranteedUpdate( ctx context.Context, key string, out runtime.Object, ignoreNotFound bool, - preconditions *storage.Preconditions, tryUpdate storage.UpdateFunc, suggestion runtime.Object) error { + preconditions *storage.Preconditions, tryUpdate storage.UpdateFunc, cachedExistingObject runtime.Object) error { trace := utiltrace.New("GuaranteedUpdate etcd3", utiltrace.Field{"type", getTypeName(out)}) defer trace.LogIfLong(500 * time.Millisecond) @@ -259,18 +306,15 @@ func (s *store) GuaranteedUpdate( } var origState *objState - var mustCheckData bool - if suggestion != nil { - origState, err = s.getStateFromObject(suggestion) - if err != nil { - return err - } - mustCheckData = true + var origStateIsCurrent bool + if cachedExistingObject != nil { + origState, err = s.getStateFromObject(cachedExistingObject) } else { origState, err = getCurrentState() - if err != nil { - return err - } + origStateIsCurrent = true + } + if err != nil { + return err } trace.Step("initial value restored") @@ -278,7 +322,7 @@ func (s *store) GuaranteedUpdate( for { if err := preconditions.Check(key, origState.obj); err != nil { // If our data is already up to date, return the error - if !mustCheckData { + if origStateIsCurrent { return err } @@ -288,7 +332,7 @@ func (s *store) GuaranteedUpdate( if err != nil { return err } - mustCheckData = false + origStateIsCurrent = true // Retry continue } @@ -296,7 +340,7 @@ func (s *store) GuaranteedUpdate( ret, ttl, err := s.updateState(origState, tryUpdate) if err != nil { // If our data is already up to date, return the error - if !mustCheckData { + if origStateIsCurrent { return err } @@ -306,7 +350,7 @@ func (s *store) GuaranteedUpdate( if err != nil { return err } - mustCheckData = false + origStateIsCurrent = true // Retry continue } @@ -319,12 +363,12 @@ func (s *store) GuaranteedUpdate( // if we skipped the original Get in this loop, we must refresh from // etcd in order to be sure the data in the store is equivalent to // our desired serialization - if mustCheckData { + if !origStateIsCurrent { origState, err = getCurrentState() if err != nil { return err } - mustCheckData = false + origStateIsCurrent = true if !bytes.Equal(data, origState.data) { // original data changed, restart loop continue @@ -368,7 +412,7 @@ func (s *store) GuaranteedUpdate( return err } trace.Step("Retry value restored") - mustCheckData = false + origStateIsCurrent = true continue } putResp := txnResp.Responses[0].GetResponsePut() diff --git a/vendor/k8s.io/apiserver/pkg/storage/interfaces.go b/vendor/k8s.io/apiserver/pkg/storage/interfaces.go index 01f9132f55..ccfe98467e 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/interfaces.go +++ b/vendor/k8s.io/apiserver/pkg/storage/interfaces.go @@ -167,7 +167,12 @@ type Interface interface { // Delete removes the specified key and returns the value that existed at that spot. // If key didn't exist, it will return NotFound storage error. - Delete(ctx context.Context, key string, out runtime.Object, preconditions *Preconditions, validateDeletion ValidateObjectFunc) error + // If 'cachedExistingObject' is non-nil, it can be used as a suggestion about the + // current version of the object to avoid read operation from storage to get it. + // However, the implementations have to retry in case suggestion is stale. + Delete( + ctx context.Context, key string, out runtime.Object, preconditions *Preconditions, + validateDeletion ValidateObjectFunc, cachedExistingObject runtime.Object) error // Watch begins watching the specified key. Events are decoded into API objects, // and any items selected by 'p' are sent down to returned watch.Interface. @@ -215,9 +220,9 @@ type Interface interface { // or zero value in 'ptrToType' parameter otherwise. // If the object to update has the same value as previous, it won't do any update // but will return the object in 'ptrToType' parameter. - // If 'suggestion' is non-nil, it can be used as a suggestion about the current version - // of the object to avoid read operation from storage to get it. However, the - // implementations have to retry in case suggestion is stale. + // If 'cachedExistingObject' is non-nil, it can be used as a suggestion about the + // current version of the object to avoid read operation from storage to get it. + // However, the implementations have to retry in case suggestion is stale. // // Example: // @@ -239,7 +244,7 @@ type Interface interface { // ) GuaranteedUpdate( ctx context.Context, key string, ptrToType runtime.Object, ignoreNotFound bool, - precondtions *Preconditions, tryUpdate UpdateFunc, suggestion runtime.Object) error + precondtions *Preconditions, tryUpdate UpdateFunc, cachedExistingObject runtime.Object) error // Count returns number of different entries under the key (generally being path prefix). Count(key string) (int64, error) diff --git a/vendor/k8s.io/apiserver/pkg/storage/storagebackend/config.go b/vendor/k8s.io/apiserver/pkg/storage/storagebackend/config.go index af94efcea8..500e55c020 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/storagebackend/config.go +++ b/vendor/k8s.io/apiserver/pkg/storage/storagebackend/config.go @@ -21,6 +21,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/server/egressselector" + "k8s.io/apiserver/pkg/storage/etcd3" "k8s.io/apiserver/pkg/storage/value" ) @@ -77,6 +78,8 @@ type Config struct { DBMetricPollInterval time.Duration // HealthcheckTimeout specifies the timeout used when checking health HealthcheckTimeout time.Duration + + LeaseManagerConfig etcd3.LeaseManagerConfig } func NewDefaultConfig(prefix string, codec runtime.Codec) *Config { @@ -87,5 +90,6 @@ func NewDefaultConfig(prefix string, codec runtime.Codec) *Config { CompactionInterval: DefaultCompactInterval, DBMetricPollInterval: DefaultDBMetricPollInterval, HealthcheckTimeout: DefaultHealthcheckTimeout, + LeaseManagerConfig: etcd3.NewDefaultLeaseManagerConfig(), } } diff --git a/vendor/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go b/vendor/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go index 9a1618df8d..c0fd8045f3 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go +++ b/vendor/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go @@ -254,7 +254,7 @@ func newETCD3Storage(c storagebackend.Config, newFunc func() runtime.Object) (st if transformer == nil { transformer = value.IdentityTransformer } - return etcd3.New(client, c.Codec, newFunc, c.Prefix, transformer, c.Paging), destroyFunc, nil + return etcd3.New(client, c.Codec, newFunc, c.Prefix, transformer, c.Paging, c.LeaseManagerConfig), destroyFunc, nil } // startDBSizeMonitorPerEndpoint starts a loop to monitor etcd database size and update the diff --git a/vendor/k8s.io/apiserver/pkg/storage/value/metrics.go b/vendor/k8s.io/apiserver/pkg/storage/value/metrics.go index 292cfcd90d..e52d9b01a4 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/value/metrics.go +++ b/vendor/k8s.io/apiserver/pkg/storage/value/metrics.go @@ -33,7 +33,7 @@ const ( /* * By default, all the following metrics are defined as falling under - * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) + * ALPHA stability level https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/1209-metrics-stability/20190404-kubernetes-control-plane-metrics-stability.md#stability-classes) * * Promoting the stability level of the metric is a responsibility of the component owner, since it * involves explicitly acknowledging support for the metric across multiple releases, in accordance with diff --git a/vendor/k8s.io/apiserver/pkg/storageversion/manager.go b/vendor/k8s.io/apiserver/pkg/storageversion/manager.go index 03e21a4d6d..c5ec9da1dd 100644 --- a/vendor/k8s.io/apiserver/pkg/storageversion/manager.go +++ b/vendor/k8s.io/apiserver/pkg/storageversion/manager.go @@ -40,6 +40,10 @@ type ResourceInfo struct { // Used to calculate decodable versions. Can only be used after all // equivalent versions are registered by InstallREST. EquivalentResourceMapper runtime.EquivalentResourceRegistry + + // DirectlyDecodableVersions is a list of versions that the converter for REST storage knows how to convert. This + // contains items like apiextensions.k8s.io/v1beta1 even if we don't serve that version. + DirectlyDecodableVersions []schema.GroupVersion } // Manager records the resources whose StorageVersions need updates, and provides a method to update those StorageVersions. @@ -133,13 +137,13 @@ func (s *defaultManager) UpdateStorageVersions(kubeAPIServerClientConfig *rest.C // StorageVersion objects have CommonEncodingVersion (each with one server registered). sortResourceInfosByGroupResource(resources) for _, r := range dedupResourceInfos(resources) { - dv := decodableVersions(r.EquivalentResourceMapper, r.GroupResource) + decodableVersions := decodableVersions(r.DirectlyDecodableVersions, r.EquivalentResourceMapper, r.GroupResource) gr := r.GroupResource // Group must be a valid subdomain in DNS (RFC 1123) if len(gr.Group) == 0 { gr.Group = "core" } - if err := updateStorageVersionFor(sc, serverID, gr, r.EncodingVersion, dv); err != nil { + if err := updateStorageVersionFor(sc, serverID, gr, r.EncodingVersion, decodableVersions); err != nil { utilruntime.HandleError(fmt.Errorf("failed to update storage version for %v: %v", r.GroupResource, err)) s.recordStatusFailure(&r, err) hasFailure = true @@ -267,10 +271,23 @@ func (s *defaultManager) Completed() bool { return s.completed.Load().(bool) } -func decodableVersions(e runtime.EquivalentResourceRegistry, gr schema.GroupResource) []string { +func decodableVersions(directlyDecodableVersions []schema.GroupVersion, e runtime.EquivalentResourceRegistry, gr schema.GroupResource) []string { var versions []string + for _, decodableVersions := range directlyDecodableVersions { + versions = append(versions, decodableVersions.String()) + } + decodingGVRs := e.EquivalentResourcesFor(gr.WithVersion(""), "") for _, v := range decodingGVRs { + found := false + for _, existingVersion := range versions { + if existingVersion == v.GroupVersion().String() { + found = true + } + } + if found { + continue + } versions = append(versions, v.GroupVersion().String()) } return versions diff --git a/vendor/k8s.io/apiserver/pkg/storageversion/updater.go b/vendor/k8s.io/apiserver/pkg/storageversion/updater.go index 10927fb0f0..ddd8dfbe63 100644 --- a/vendor/k8s.io/apiserver/pkg/storageversion/updater.go +++ b/vendor/k8s.io/apiserver/pkg/storageversion/updater.go @@ -35,23 +35,90 @@ type Client interface { Get(context.Context, string, metav1.GetOptions) (*v1alpha1.StorageVersion, error) } -func setCommonEncodingVersion(sv *v1alpha1.StorageVersion) { - if len(sv.Status.StorageVersions) == 0 { - return +// SetCommonEncodingVersion updates the CommonEncodingVersion and the AllEncodingVersionsEqual +// condition based on the StorageVersions. +func SetCommonEncodingVersion(sv *v1alpha1.StorageVersion) { + var oldCommonEncodingVersion *string + if sv.Status.CommonEncodingVersion != nil { + version := *sv.Status.CommonEncodingVersion + oldCommonEncodingVersion = &version } - firstVersion := sv.Status.StorageVersions[0].EncodingVersion - agreed := true - for _, ssv := range sv.Status.StorageVersions { - if ssv.EncodingVersion != firstVersion { - agreed = false - break + sv.Status.CommonEncodingVersion = nil + if len(sv.Status.StorageVersions) != 0 { + firstVersion := sv.Status.StorageVersions[0].EncodingVersion + agreed := true + for _, ssv := range sv.Status.StorageVersions { + if ssv.EncodingVersion != firstVersion { + agreed = false + break + } + } + if agreed { + sv.Status.CommonEncodingVersion = &firstVersion + } + } + + condition := v1alpha1.StorageVersionCondition{ + Type: v1alpha1.AllEncodingVersionsEqual, + Status: v1alpha1.ConditionFalse, + ObservedGeneration: sv.Generation, + LastTransitionTime: metav1.NewTime(time.Now()), + Reason: "CommonEncodingVersionUnset", + Message: "Common encoding version unset", + } + if sv.Status.CommonEncodingVersion != nil { + condition.Status = v1alpha1.ConditionTrue + condition.Reason = "CommonEncodingVersionSet" + condition.Message = "Common encoding version set" + } + forceTransition := false + if oldCommonEncodingVersion != nil && sv.Status.CommonEncodingVersion != nil && + *oldCommonEncodingVersion != *sv.Status.CommonEncodingVersion { + forceTransition = true + } + setStatusCondition(&sv.Status.Conditions, condition, forceTransition) +} + +func findStatusCondition(conditions []v1alpha1.StorageVersionCondition, + conditionType v1alpha1.StorageVersionConditionType) *v1alpha1.StorageVersionCondition { + for i := range conditions { + if conditions[i].Type == conditionType { + return &conditions[i] } } - if agreed { - sv.Status.CommonEncodingVersion = &firstVersion - } else { - sv.Status.CommonEncodingVersion = nil + return nil +} + +// setStatusCondition sets the corresponding condition in conditions to newCondition. +// conditions must be non-nil. +// 1. if the condition of the specified type already exists: all fields of the existing condition are updated to +// newCondition, LastTransitionTime is set to now if the new status differs from the old status +// 2. if a condition of the specified type does not exist: LastTransitionTime is set to now() if unset, +// and newCondition is appended +// NOTE: forceTransition allows overwriting LastTransitionTime even when the status doesn't change. +func setStatusCondition(conditions *[]v1alpha1.StorageVersionCondition, newCondition v1alpha1.StorageVersionCondition, + forceTransition bool) { + if conditions == nil { + return + } + + if newCondition.LastTransitionTime.IsZero() { + newCondition.LastTransitionTime = metav1.NewTime(time.Now()) + } + existingCondition := findStatusCondition(*conditions, newCondition.Type) + if existingCondition == nil { + *conditions = append(*conditions, newCondition) + return + } + + statusChanged := existingCondition.Status != newCondition.Status + if statusChanged || forceTransition { + existingCondition.LastTransitionTime = newCondition.LastTransitionTime } + existingCondition.Status = newCondition.Status + existingCondition.Reason = newCondition.Reason + existingCondition.Message = newCondition.Message + existingCondition.ObservedGeneration = newCondition.ObservedGeneration } // updateStorageVersionFor updates the storage version object for the resource. @@ -123,6 +190,6 @@ func localUpdateStorageVersion(sv *v1alpha1.StorageVersion, apiserverID, encodin if !foundSSV { sv.Status.StorageVersions = append(sv.Status.StorageVersions, newSSV) } - setCommonEncodingVersion(sv) + SetCommonEncodingVersion(sv) return sv } diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go index ef55aa2f07..3ee3867456 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go @@ -23,6 +23,7 @@ import ( "encoding/json" "fmt" "math" + "math/rand" "sort" "sync" "time" @@ -30,11 +31,14 @@ import ( "github.com/pkg/errors" apiequality "k8s.io/apimachinery/pkg/api/equality" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" apitypes "k8s.io/apimachinery/pkg/types" - apierrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/clock" + utilerrors "k8s.io/apimachinery/pkg/util/errors" utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" fcboot "k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap" "k8s.io/apiserver/pkg/authentication/user" @@ -43,7 +47,6 @@ import ( fq "k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing" fcfmt "k8s.io/apiserver/pkg/util/flowcontrol/format" "k8s.io/apiserver/pkg/util/flowcontrol/metrics" - kubeinformers "k8s.io/client-go/informers" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" "k8s.io/klog/v2" @@ -53,6 +56,8 @@ import ( flowcontrollister "k8s.io/client-go/listers/flowcontrol/v1beta1" ) +const timeFmt = "2006-01-02T15:04:05.999" + // This file contains a simple local (to the apiserver) controller // that digests API Priority and Fairness config objects (FlowSchema // and PriorityLevelConfiguration) into the data structure that the @@ -62,7 +67,7 @@ import ( // undesired becomes completely unused, all the config objects are // read and processed as a whole. -// StartFunction begins the process of handlig a request. If the +// StartFunction begins the process of handling a request. If the // request gets queued then this function uses the given hashValue as // the source of entropy as it shuffle-shards the request into a // queue. The descr1 and descr2 values play no role in the logic but @@ -85,9 +90,19 @@ type RequestDigest struct { // this type and cfgMeal follow the convention that the suffix // "Locked" means that the caller must hold the configController lock. type configController struct { + name string // varies in tests of fighting controllers + clock clock.PassiveClock queueSetFactory fq.QueueSetFactory obsPairGenerator metrics.TimedObserverPairGenerator + // How this controller appears in an ObjectMeta ManagedFieldsEntry.Manager + asFieldManager string + + // Given a boolean indicating whether a FlowSchema's referenced + // PriorityLevelConfig exists, return a boolean indicating whether + // the reference is dangling + foundToDangling func(bool) bool + // configQueue holds `(interface{})(0)` when the configuration // objects need to be reprocessed. configQueue workqueue.RateLimitingInterface @@ -122,6 +137,18 @@ type configController struct { // name to the state for that level. Every name referenced from a // member of `flowSchemas` has an entry here. priorityLevelStates map[string]*priorityLevelState + + // the most recent update attempts, ordered by increasing age. + // Consumer trims to keep only the last minute's worth of entries. + // The controller uses this to limit itself to at most six updates + // to a given FlowSchema in any minute. + // This may only be accessed from the one and only worker goroutine. + mostRecentUpdates []updateAttempt +} + +type updateAttempt struct { + timeUpdated time.Time + updatedItems sets.String // FlowSchema names } // priorityLevelState holds the state specific to a priority level. @@ -152,34 +179,26 @@ type priorityLevelState struct { } // NewTestableController is extra flexible to facilitate testing -func newTestableController( - informerFactory kubeinformers.SharedInformerFactory, - flowcontrolClient flowcontrolclient.FlowcontrolV1beta1Interface, - serverConcurrencyLimit int, - requestWaitLimit time.Duration, - obsPairGenerator metrics.TimedObserverPairGenerator, - queueSetFactory fq.QueueSetFactory, -) *configController { +func newTestableController(config TestableConfig) *configController { cfgCtlr := &configController{ - queueSetFactory: queueSetFactory, - obsPairGenerator: obsPairGenerator, - serverConcurrencyLimit: serverConcurrencyLimit, - requestWaitLimit: requestWaitLimit, - flowcontrolClient: flowcontrolClient, + name: config.Name, + clock: config.Clock, + queueSetFactory: config.QueueSetFactory, + obsPairGenerator: config.ObsPairGenerator, + asFieldManager: config.AsFieldManager, + foundToDangling: config.FoundToDangling, + serverConcurrencyLimit: config.ServerConcurrencyLimit, + requestWaitLimit: config.RequestWaitLimit, + flowcontrolClient: config.FlowcontrolClient, priorityLevelStates: make(map[string]*priorityLevelState), } - klog.V(2).Infof("NewTestableController with serverConcurrencyLimit=%d, requestWaitLimit=%s", serverConcurrencyLimit, requestWaitLimit) - cfgCtlr.initializeConfigController(informerFactory) + klog.V(2).Infof("NewTestableController %q with serverConcurrencyLimit=%d, requestWaitLimit=%s, name=%s, asFieldManager=%q", cfgCtlr.name, cfgCtlr.serverConcurrencyLimit, cfgCtlr.requestWaitLimit, cfgCtlr.name, cfgCtlr.asFieldManager) + // Start with longish delay because conflicts will be between + // different processes, so take some time to go away. + cfgCtlr.configQueue = workqueue.NewNamedRateLimitingQueue(workqueue.NewItemExponentialFailureRateLimiter(200*time.Millisecond, 8*time.Hour), "priority_and_fairness_config_queue") // ensure the data structure reflects the mandatory config cfgCtlr.lockAndDigestConfigObjects(nil, nil) - return cfgCtlr -} - -// initializeConfigController sets up the controller that processes -// config API objects. -func (cfgCtlr *configController) initializeConfigController(informerFactory kubeinformers.SharedInformerFactory) { - cfgCtlr.configQueue = workqueue.NewNamedRateLimitingQueue(workqueue.NewItemExponentialFailureRateLimiter(200*time.Millisecond, 8*time.Hour), "priority_and_fairness_config_queue") - fci := informerFactory.Flowcontrol().V1beta1() + fci := config.InformerFactory.Flowcontrol().V1beta1() pli := fci.PriorityLevelConfigurations() fsi := fci.FlowSchemas() cfgCtlr.plLister = pli.Lister() @@ -189,43 +208,64 @@ func (cfgCtlr *configController) initializeConfigController(informerFactory kube pli.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ AddFunc: func(obj interface{}) { pl := obj.(*flowcontrol.PriorityLevelConfiguration) - klog.V(7).Infof("Triggered API priority and fairness config reloading due to creation of PLC %s", pl.Name) + klog.V(7).Infof("Triggered API priority and fairness config reloading in %s due to creation of PLC %s", cfgCtlr.name, pl.Name) cfgCtlr.configQueue.Add(0) }, UpdateFunc: func(oldObj, newObj interface{}) { newPL := newObj.(*flowcontrol.PriorityLevelConfiguration) oldPL := oldObj.(*flowcontrol.PriorityLevelConfiguration) if !apiequality.Semantic.DeepEqual(oldPL.Spec, newPL.Spec) { - klog.V(7).Infof("Triggered API priority and fairness config reloading due to spec update of PLC %s", newPL.Name) + klog.V(7).Infof("Triggered API priority and fairness config reloading in %s due to spec update of PLC %s", cfgCtlr.name, newPL.Name) cfgCtlr.configQueue.Add(0) + } else { + klog.V(7).Infof("No trigger API priority and fairness config reloading in %s due to spec non-change of PLC %s", cfgCtlr.name, newPL.Name) } }, DeleteFunc: func(obj interface{}) { name, _ := cache.DeletionHandlingMetaNamespaceKeyFunc(obj) - klog.V(7).Infof("Triggered API priority and fairness config reloading due to deletion of PLC %s", name) + klog.V(7).Infof("Triggered API priority and fairness config reloading in %s due to deletion of PLC %s", cfgCtlr.name, name) cfgCtlr.configQueue.Add(0) }}) fsi.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ AddFunc: func(obj interface{}) { fs := obj.(*flowcontrol.FlowSchema) - klog.V(7).Infof("Triggered API priority and fairness config reloading due to creation of FS %s", fs.Name) + klog.V(7).Infof("Triggered API priority and fairness config reloading in %s due to creation of FS %s", cfgCtlr.name, fs.Name) cfgCtlr.configQueue.Add(0) }, UpdateFunc: func(oldObj, newObj interface{}) { newFS := newObj.(*flowcontrol.FlowSchema) oldFS := oldObj.(*flowcontrol.FlowSchema) - if !apiequality.Semantic.DeepEqual(oldFS.Spec, newFS.Spec) { - klog.V(7).Infof("Triggered API priority and fairness config reloading due to spec update of FS %s", newFS.Name) + // Changes to either Spec or Status are relevant. The + // concern is that we might, in some future release, want + // different behavior than is implemented now. One of the + // hardest questions is how does an operator roll out the + // new release in a cluster with multiple kube-apiservers + // --- in a way that works no matter what servers crash + // and restart when. If this handler reacts only to + // changes in Spec then we have a scenario in which the + // rollout leaves the old Status in place. The scenario + // ends with this subsequence: deploy the last new server + // before deleting the last old server, and in between + // those two operations the last old server crashes and + // recovers. The chosen solution is making this controller + // insist on maintaining the particular state that it + // establishes. + if !(apiequality.Semantic.DeepEqual(oldFS.Spec, newFS.Spec) && + apiequality.Semantic.DeepEqual(oldFS.Status, newFS.Status)) { + klog.V(7).Infof("Triggered API priority and fairness config reloading in %s due to spec and/or status update of FS %s", cfgCtlr.name, newFS.Name) cfgCtlr.configQueue.Add(0) + } else { + klog.V(7).Infof("No trigger of API priority and fairness config reloading in %s due to spec and status non-change of FS %s", cfgCtlr.name, newFS.Name) } }, DeleteFunc: func(obj interface{}) { name, _ := cache.DeletionHandlingMetaNamespaceKeyFunc(obj) - klog.V(7).Infof("Triggered API priority and fairness config reloading due to deletion of FS %s", name) + klog.V(7).Infof("Triggered API priority and fairness config reloading in %s due to deletion of FS %s", cfgCtlr.name, name) cfgCtlr.configQueue.Add(0) }}) + return cfgCtlr } // MaintainObservations keeps the observers from @@ -245,13 +285,6 @@ func (cfgCtlr *configController) updateObservations() { } } -// used from the unit tests only. -func (cfgCtlr *configController) getPriorityLevelState(plName string) *priorityLevelState { - cfgCtlr.lock.Lock() - defer cfgCtlr.lock.Unlock() - return cfgCtlr.priorityLevelStates[plName] -} - func (cfgCtlr *configController) Run(stopCh <-chan struct{}) error { defer utilruntime.HandleCrash() @@ -271,11 +304,16 @@ func (cfgCtlr *configController) Run(stopCh <-chan struct{}) error { return nil } +// runWorker is the logic of the one and only worker goroutine. We +// limit the number to one in order to obviate explicit +// synchronization around access to `cfgCtlr.mostRecentUpdates`. func (cfgCtlr *configController) runWorker() { for cfgCtlr.processNextWorkItem() { } } +// processNextWorkItem works on one entry from the work queue. +// Only invoke this in the one and only worker goroutine. func (cfgCtlr *configController) processNextWorkItem() bool { obj, shutdown := cfgCtlr.configQueue.Get() if shutdown { @@ -284,9 +322,14 @@ func (cfgCtlr *configController) processNextWorkItem() bool { func(obj interface{}) { defer cfgCtlr.configQueue.Done(obj) - if !cfgCtlr.syncOne() { + specificDelay, err := cfgCtlr.syncOne(map[string]string{}) + switch { + case err != nil: + klog.Error(err) cfgCtlr.configQueue.AddRateLimited(obj) - } else { + case specificDelay > 0: + cfgCtlr.configQueue.AddAfter(obj, specificDelay) + default: cfgCtlr.configQueue.Forget(obj) } }(obj) @@ -294,27 +337,22 @@ func (cfgCtlr *configController) processNextWorkItem() bool { return true } -// syncOne attempts to sync all the API Priority and Fairness config -// objects. It either succeeds and returns `true` or logs an error -// and returns `false`. -func (cfgCtlr *configController) syncOne() bool { +// syncOne does one full synchronization. It reads all the API +// objects that configure API Priority and Fairness and updates the +// local configController accordingly. +// Only invoke this in the one and only worker goroutine +func (cfgCtlr *configController) syncOne(flowSchemaRVs map[string]string) (specificDelay time.Duration, err error) { + klog.V(5).Infof("%s syncOne at %s", cfgCtlr.name, cfgCtlr.clock.Now().Format(timeFmt)) all := labels.Everything() newPLs, err := cfgCtlr.plLister.List(all) if err != nil { - klog.Errorf("Unable to list PriorityLevelConfiguration objects: %s", err.Error()) - return false + return 0, fmt.Errorf("unable to list PriorityLevelConfiguration objects: %w", err) } newFSs, err := cfgCtlr.fsLister.List(all) if err != nil { - klog.Errorf("Unable to list FlowSchema objects: %s", err.Error()) - return false + return 0, fmt.Errorf("unable to list FlowSchema objects: %w", err) } - err = cfgCtlr.digestConfigObjects(newPLs, newFSs) - if err == nil { - return true - } - klog.Error(err) - return false + return cfgCtlr.digestConfigObjects(newPLs, newFSs, flowSchemaRVs) } // cfgMeal is the data involved in the process of digesting the API @@ -345,7 +383,7 @@ type cfgMeal struct { fsStatusUpdates []fsStatusUpdate } -// A buffered set of status updates for a FlowSchema +// A buffered set of status updates for FlowSchemas type fsStatusUpdate struct { flowSchema *flowcontrol.FlowSchema condition flowcontrol.FlowSchemaCondition @@ -354,25 +392,79 @@ type fsStatusUpdate struct { // digestConfigObjects is given all the API objects that configure // cfgCtlr and writes its consequent new configState. -func (cfgCtlr *configController) digestConfigObjects(newPLs []*flowcontrol.PriorityLevelConfiguration, newFSs []*flowcontrol.FlowSchema) error { +// Only invoke this in the one and only worker goroutine +func (cfgCtlr *configController) digestConfigObjects(newPLs []*flowcontrol.PriorityLevelConfiguration, newFSs []*flowcontrol.FlowSchema, flowSchemaRVs map[string]string) (time.Duration, error) { fsStatusUpdates := cfgCtlr.lockAndDigestConfigObjects(newPLs, newFSs) var errs []error + currResult := updateAttempt{ + timeUpdated: cfgCtlr.clock.Now(), + updatedItems: sets.String{}, + } + var suggestedDelay time.Duration for _, fsu := range fsStatusUpdates { + // if we should skip this name, indicate we will need a delay, but continue with other entries + if cfgCtlr.shouldDelayUpdate(fsu.flowSchema.Name) { + if suggestedDelay == 0 { + suggestedDelay = time.Duration(30+rand.Intn(45)) * time.Second + } + continue + } + + // if we are going to issue an update, be sure we track every name we update so we know if we update it too often. + currResult.updatedItems.Insert(fsu.flowSchema.Name) + enc, err := json.Marshal(fsu.condition) if err != nil { // should never happen because these conditions are created here and well formed panic(fmt.Sprintf("Failed to json.Marshall(%#+v): %s", fsu.condition, err.Error())) } - klog.V(4).Infof("Writing Condition %s to FlowSchema %s because its previous value was %s", string(enc), fsu.flowSchema.Name, fcfmt.Fmt(fsu.oldValue)) - _, err = cfgCtlr.flowcontrolClient.FlowSchemas().Patch(context.TODO(), fsu.flowSchema.Name, apitypes.StrategicMergePatchType, []byte(fmt.Sprintf(`{"status": {"conditions": [ %s ] } }`, string(enc))), metav1.PatchOptions{FieldManager: "api-priority-and-fairness-config-consumer-v1"}, "status") - if err != nil { + klog.V(4).Infof("%s writing Condition %s to FlowSchema %s, which had ResourceVersion=%s, because its previous value was %s", cfgCtlr.name, string(enc), fsu.flowSchema.Name, fsu.flowSchema.ResourceVersion, fcfmt.Fmt(fsu.oldValue)) + fsIfc := cfgCtlr.flowcontrolClient.FlowSchemas() + patchBytes := []byte(fmt.Sprintf(`{"status": {"conditions": [ %s ] } }`, string(enc))) + patchOptions := metav1.PatchOptions{FieldManager: cfgCtlr.asFieldManager} + patchedFlowSchema, err := fsIfc.Patch(context.TODO(), fsu.flowSchema.Name, apitypes.StrategicMergePatchType, patchBytes, patchOptions, "status") + if err == nil { + key, _ := cache.MetaNamespaceKeyFunc(patchedFlowSchema) + flowSchemaRVs[key] = patchedFlowSchema.ResourceVersion + } else if apierrors.IsNotFound(err) { + // This object has been deleted. A notification is coming + // and nothing more needs to be done here. + klog.V(5).Infof("%s at %s: attempted update of concurrently deleted FlowSchema %s; nothing more needs to be done", cfgCtlr.name, cfgCtlr.clock.Now().Format(timeFmt), fsu.flowSchema.Name) + } else { errs = append(errs, errors.Wrap(err, fmt.Sprintf("failed to set a status.condition for FlowSchema %s", fsu.flowSchema.Name))) } } - if len(errs) == 0 { - return nil + cfgCtlr.addUpdateResult(currResult) + + return suggestedDelay, utilerrors.NewAggregate(errs) +} + +// shouldDelayUpdate checks to see if a flowschema has been updated too often and returns true if a delay is needed. +// Only invoke this in the one and only worker goroutine +func (cfgCtlr *configController) shouldDelayUpdate(flowSchemaName string) bool { + numUpdatesInPastMinute := 0 + oneMinuteAgo := cfgCtlr.clock.Now().Add(-1 * time.Minute) + for idx, update := range cfgCtlr.mostRecentUpdates { + if oneMinuteAgo.After(update.timeUpdated) { + // this and the remaining items are no longer relevant + cfgCtlr.mostRecentUpdates = cfgCtlr.mostRecentUpdates[:idx] + return false + } + if update.updatedItems.Has(flowSchemaName) { + numUpdatesInPastMinute++ + if numUpdatesInPastMinute > 5 { + return true + } + } } - return apierrors.NewAggregate(errs) + return false +} + +// addUpdateResult adds the result. It isn't a ring buffer because +// this is small and rate limited. +// Only invoke this in the one and only worker goroutine +func (cfgCtlr *configController) addUpdateResult(result updateAttempt) { + cfgCtlr.mostRecentUpdates = append([]updateAttempt{result}, cfgCtlr.mostRecentUpdates...) } func (cfgCtlr *configController) lockAndDigestConfigObjects(newPLs []*flowcontrol.PriorityLevelConfiguration, newFSs []*flowcontrol.FlowSchema) []fsStatusUpdate { @@ -456,7 +548,7 @@ func (meal *cfgMeal) digestFlowSchemasLocked(newFSs []*flowcontrol.FlowSchema) { // // TODO: consider not even trying if server is not handling // requests yet. - meal.presyncFlowSchemaStatus(fs, !goodPriorityRef, fs.Spec.PriorityLevelConfiguration.Name) + meal.presyncFlowSchemaStatus(fs, meal.cfgCtlr.foundToDangling(goodPriorityRef), fs.Spec.PriorityLevelConfiguration.Name) if !goodPriorityRef { klog.V(6).Infof("Ignoring FlowSchema %s because of bad priority level reference %q", fs.Name, fs.Spec.PriorityLevelConfiguration.Name) @@ -620,12 +712,13 @@ func (meal *cfgMeal) presyncFlowSchemaStatus(fs *flowcontrol.FlowSchema, isDangl if danglingCondition.Status == desiredStatus && danglingCondition.Reason == desiredReason && danglingCondition.Message == desiredMessage { return } + now := meal.cfgCtlr.clock.Now() meal.fsStatusUpdates = append(meal.fsStatusUpdates, fsStatusUpdate{ flowSchema: fs, condition: flowcontrol.FlowSchemaCondition{ Type: flowcontrol.FlowSchemaConditionDangling, Status: desiredStatus, - LastTransitionTime: metav1.Now(), + LastTransitionTime: metav1.NewTime(now), Reason: desiredReason, Message: desiredMessage, }, @@ -651,7 +744,6 @@ func (meal *cfgMeal) imaginePL(proto *flowcontrol.PriorityLevelConfiguration, re if proto.Spec.Limited != nil { meal.shareSum += float64(proto.Spec.Limited.AssuredConcurrencyShares) } - return } type immediateRequest struct{} @@ -670,30 +762,28 @@ func (cfgCtlr *configController) startRequest(ctx context.Context, rd RequestDig klog.V(7).Infof("startRequest(%#+v)", rd) cfgCtlr.lock.Lock() defer cfgCtlr.lock.Unlock() - var selectedFlowSchema *flowcontrol.FlowSchema + var selectedFlowSchema, catchAllFlowSchema *flowcontrol.FlowSchema for _, fs := range cfgCtlr.flowSchemas { if matchesFlowSchema(rd, fs) { selectedFlowSchema = fs break } + if fs.Name == flowcontrol.FlowSchemaNameCatchAll { + catchAllFlowSchema = fs + } } if selectedFlowSchema == nil { // This should never happen. If the requestDigest's User is a part of // system:authenticated or system:unauthenticated, the catch-all flow // schema should match it. However, if that invariant somehow fails, // fallback to the catch-all flow schema anyway. - for _, fs := range cfgCtlr.flowSchemas { - if fs.Name == flowcontrol.FlowSchemaNameCatchAll { - selectedFlowSchema = fs - break - } - } - if selectedFlowSchema == nil { + if catchAllFlowSchema == nil { // This should absolutely never, ever happen! APF guarantees two // undeletable flow schemas at all times: an exempt flow schema and a // catch-all flow schema. panic(fmt.Sprintf("no fallback catch-all flow schema found for request %#+v and user %#+v", rd.RequestInfo, rd.User)) } + selectedFlowSchema = catchAllFlowSchema klog.Warningf("no match found for request %#+v and user %#+v; selecting catchAll=%s as fallback flow schema", rd.RequestInfo, rd.User, fcfmt.Fmt(selectedFlowSchema)) } plName := selectedFlowSchema.Spec.PriorityLevelConfiguration.Name @@ -721,7 +811,9 @@ func (cfgCtlr *configController) startRequest(ctx context.Context, rd RequestDig return selectedFlowSchema, plState.pl, false, req, startWaitingTime } -// Call this after getting a clue that the given priority level is undesired and idle +// maybeReap will remove the last internal traces of the named +// priority level if it has no more use. Call this after getting a +// clue that the given priority level is undesired and idle. func (cfgCtlr *configController) maybeReap(plName string) { cfgCtlr.lock.Lock() defer cfgCtlr.lock.Unlock() @@ -741,8 +833,11 @@ func (cfgCtlr *configController) maybeReap(plName string) { cfgCtlr.configQueue.Add(0) } -// Call this if both (1) plState.queues is non-nil and reported being -// idle, and (2) cfgCtlr's lock has not been released since then. +// maybeReapLocked requires the cfgCtlr's lock to already be held and +// will remove the last internal traces of the named priority level if +// it has no more use. Call this if both (1) plState.queues is +// non-nil and reported being idle, and (2) cfgCtlr's lock has not +// been released since then. func (cfgCtlr *configController) maybeReapLocked(plName string, plState *priorityLevelState) { if !(plState.quiescing && plState.numPending == 0) { return diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go index ffd6c9fa48..825ae09ce3 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go @@ -34,6 +34,10 @@ import ( flowcontrolclient "k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1" ) +// ConfigConsumerAsFieldManager is how the config consuminng +// controller appears in an ObjectMeta ManagedFieldsEntry.Manager +const ConfigConsumerAsFieldManager = "api-priority-and-fairness-config-consumer-v1" + // Interface defines how the API Priority and Fairness filter interacts with the underlying system. type Interface interface { // Handle takes care of queuing and dispatching a request @@ -64,7 +68,7 @@ type Interface interface { Install(c *mux.PathRecorderMux) } -// This request filter implements https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190228-priority-and-fairness.md +// This request filter implements https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/1040-priority-and-fairness/README.md // New creates a new instance to implement API priority and fairness func New( @@ -74,26 +78,65 @@ func New( requestWaitLimit time.Duration, ) Interface { grc := counter.NoOp{} - return NewTestable( - informerFactory, - flowcontrolClient, - serverConcurrencyLimit, - requestWaitLimit, - metrics.PriorityLevelConcurrencyObserverPairGenerator, - fqs.NewQueueSetFactory(&clock.RealClock{}, grc), - ) + clk := clock.RealClock{} + return NewTestable(TestableConfig{ + Name: "Controller", + Clock: clk, + AsFieldManager: ConfigConsumerAsFieldManager, + FoundToDangling: func(found bool) bool { return !found }, + InformerFactory: informerFactory, + FlowcontrolClient: flowcontrolClient, + ServerConcurrencyLimit: serverConcurrencyLimit, + RequestWaitLimit: requestWaitLimit, + ObsPairGenerator: metrics.PriorityLevelConcurrencyObserverPairGenerator, + QueueSetFactory: fqs.NewQueueSetFactory(clk, grc), + }) +} + +// TestableConfig carries the parameters to an implementation that is testable +type TestableConfig struct { + // Name of the controller + Name string + + // Clock to use in timing deliberate delays + Clock clock.PassiveClock + + // AsFieldManager is the string to use in the metadata for + // server-side apply. Normally this is + // `ConfigConsumerAsFieldManager`. This is exposed as a parameter + // so that a test of competing controllers can supply different + // values. + AsFieldManager string + + // FoundToDangling maps the boolean indicating whether a + // FlowSchema's referenced PLC exists to the boolean indicating + // that FlowSchema's status should indicate a dangling reference. + // This is a parameter so that we can write tests of what happens + // when servers disagree on that bit of Status. + FoundToDangling func(bool) bool + + // InformerFactory to use in building the controller + InformerFactory kubeinformers.SharedInformerFactory + + // FlowcontrolClient to use for manipulating config objects + FlowcontrolClient flowcontrolclient.FlowcontrolV1beta1Interface + + // ServerConcurrencyLimit for the controller to enforce + ServerConcurrencyLimit int + + // RequestWaitLimit configured on the server + RequestWaitLimit time.Duration + + // ObsPairGenerator for metrics + ObsPairGenerator metrics.TimedObserverPairGenerator + + // QueueSetFactory for the queuing implementation + QueueSetFactory fq.QueueSetFactory } // NewTestable is extra flexible to facilitate testing -func NewTestable( - informerFactory kubeinformers.SharedInformerFactory, - flowcontrolClient flowcontrolclient.FlowcontrolV1beta1Interface, - serverConcurrencyLimit int, - requestWaitLimit time.Duration, - obsPairGenerator metrics.TimedObserverPairGenerator, - queueSetFactory fq.QueueSetFactory, -) Interface { - return newTestableController(informerFactory, flowcontrolClient, serverConcurrencyLimit, requestWaitLimit, obsPairGenerator, queueSetFactory) +func NewTestable(config TestableConfig) Interface { + return newTestableController(config) } func (cfgCtlr *configController) Handle(ctx context.Context, requestDigest RequestDigest, @@ -105,7 +148,7 @@ func (cfgCtlr *configController) Handle(ctx context.Context, requestDigest Reque noteFn(fs, pl) if req == nil { if queued { - metrics.ObserveWaitingDuration(pl.Name, fs.Name, strconv.FormatBool(req != nil), time.Since(startWaitingTime)) + metrics.ObserveWaitingDuration(ctx, pl.Name, fs.Name, strconv.FormatBool(req != nil), time.Since(startWaitingTime)) } klog.V(7).Infof("Handle(%#+v) => fsName=%q, distMethod=%#+v, plName=%q, isExempt=%v, reject", requestDigest, fs.Name, fs.Spec.DistinguisherMethod, pl.Name, isExempt) return @@ -122,18 +165,18 @@ func (cfgCtlr *configController) Handle(ctx context.Context, requestDigest Reque }() idle = req.Finish(func() { if queued { - metrics.ObserveWaitingDuration(pl.Name, fs.Name, strconv.FormatBool(req != nil), time.Since(startWaitingTime)) + metrics.ObserveWaitingDuration(ctx, pl.Name, fs.Name, strconv.FormatBool(req != nil), time.Since(startWaitingTime)) } - metrics.AddDispatch(pl.Name, fs.Name) + metrics.AddDispatch(ctx, pl.Name, fs.Name) executed = true startExecutionTime := time.Now() defer func() { - metrics.ObserveExecutionDuration(pl.Name, fs.Name, time.Since(startExecutionTime)) + metrics.ObserveExecutionDuration(ctx, pl.Name, fs.Name, time.Since(startExecutionTime)) }() execFn() }) if queued && !executed { - metrics.ObserveWaitingDuration(pl.Name, fs.Name, strconv.FormatBool(req != nil), time.Since(startWaitingTime)) + metrics.ObserveWaitingDuration(ctx, pl.Name, fs.Name, strconv.FormatBool(req != nil), time.Since(startWaitingTime)) } panicking = false } diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/interface.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/interface.go index 882a505c81..a91656c562 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/interface.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/interface.go @@ -46,7 +46,7 @@ type QueueSetCompleter interface { // functionality of one non-exempt priority level. It covers the // functionality described in the "Assignment to a Queue", "Queuing", // and "Dispatching" sections of -// https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190228-priority-and-fairness.md +// https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/1040-priority-and-fairness/README.md // . Some day we may have connections between priority levels, but // today is not that day. type QueueSet interface { diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go index 1d540a28f9..8229ccbbb4 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go @@ -243,7 +243,7 @@ func (qs *queueSet) StartRequest(ctx context.Context, hashValue uint64, flowDist if qs.qCfg.DesiredNumQueues < 1 { if qs.totRequestsExecuting >= qs.dCfg.ConcurrencyLimit { klog.V(5).Infof("QS(%s): rejecting request %q %#+v %#+v because %d are executing and the limit is %d", qs.qCfg.Name, fsName, descr1, descr2, qs.totRequestsExecuting, qs.dCfg.ConcurrencyLimit) - metrics.AddReject(qs.qCfg.Name, fsName, "concurrency-limit") + metrics.AddReject(ctx, qs.qCfg.Name, fsName, "concurrency-limit") return nil, qs.isIdleLocked() } req = qs.dispatchSansQueueLocked(ctx, flowDistinguisher, fsName, descr1, descr2) @@ -262,7 +262,7 @@ func (qs *queueSet) StartRequest(ctx context.Context, hashValue uint64, flowDist // concurrency shares and at max queue length already if req == nil { klog.V(5).Infof("QS(%s): rejecting request %q %#+v %#+v due to queue full", qs.qCfg.Name, fsName, descr1, descr2) - metrics.AddReject(qs.qCfg.Name, fsName, "queue-full") + metrics.AddReject(ctx, qs.qCfg.Name, fsName, "queue-full") return nil, qs.isIdleLocked() } @@ -285,6 +285,11 @@ func (qs *queueSet) StartRequest(ctx context.Context, hashValue uint64, flowDist // request's context's Done channel gets closed by the time // the request is done being processed. doneCh := ctx.Done() + + // Retrieve the queueset configuration name while we have the lock + // and use it in the goroutine below. + configName := qs.qCfg.Name + if doneCh != nil { qs.preCreateOrUnblockGoroutine() go func() { @@ -297,7 +302,7 @@ func (qs *queueSet) StartRequest(ctx context.Context, hashValue uint64, flowDist // known that the count does not need to be accurate. // BTW, the count only needs to be accurate in a test that // uses FakeEventClock::Run(). - klog.V(6).Infof("QS(%s): Context of request %q %#+v %#+v is Done", qs.qCfg.Name, fsName, descr1, descr2) + klog.V(6).Infof("QS(%s): Context of request %q %#+v %#+v is Done", configName, fsName, descr1, descr2) qs.cancelWait(req) qs.goroutineDoneOrBlocked() }() @@ -351,7 +356,7 @@ func (req *request) wait() (bool, bool) { switch decision { case decisionReject: klog.V(5).Infof("QS(%s): request %#+v %#+v timed out after being enqueued\n", qs.qCfg.Name, req.descr1, req.descr2) - metrics.AddReject(qs.qCfg.Name, req.fsName, "time-out") + metrics.AddReject(req.ctx, qs.qCfg.Name, req.fsName, "time-out") return false, qs.isIdleLocked() case decisionCancel: // TODO(aaron-prindle) add metrics for this case @@ -448,7 +453,7 @@ func (qs *queueSet) timeoutOldRequestsAndRejectOrEnqueueLocked(ctx context.Conte if ok := qs.rejectOrEnqueueLocked(req); !ok { return nil } - metrics.ObserveQueueLength(qs.qCfg.Name, fsName, len(queue.requests)) + metrics.ObserveQueueLength(ctx, qs.qCfg.Name, fsName, len(queue.requests)) return req } @@ -486,7 +491,7 @@ func (qs *queueSet) removeTimedOutRequestsFromQueueLocked(queue *queue, fsName s req.decision.SetLocked(decisionReject) // get index for timed out requests timeoutIdx = i - metrics.AddRequestsInQueues(qs.qCfg.Name, req.fsName, -1) + metrics.AddRequestsInQueues(req.ctx, qs.qCfg.Name, req.fsName, -1) req.NoteQueued(false) } else { break @@ -534,7 +539,7 @@ func (qs *queueSet) enqueueLocked(request *request) { } queue.Enqueue(request) qs.totRequestsWaiting++ - metrics.AddRequestsInQueues(qs.qCfg.Name, request.fsName, 1) + metrics.AddRequestsInQueues(request.ctx, qs.qCfg.Name, request.fsName, 1) request.NoteQueued(true) qs.obsPair.RequestsWaiting.Add(1) } @@ -569,7 +574,7 @@ func (qs *queueSet) dispatchSansQueueLocked(ctx context.Context, flowDistinguish } req.decision.SetLocked(decisionExecute) qs.totRequestsExecuting++ - metrics.AddRequestsExecuting(qs.qCfg.Name, fsName, 1) + metrics.AddRequestsExecuting(ctx, qs.qCfg.Name, fsName, 1) qs.obsPair.RequestsExecuting.Add(1) if klog.V(5).Enabled() { klog.Infof("QS(%s) at r=%s v=%.9fs: immediate dispatch of request %q %#+v %#+v, qs will have %d executing", qs.qCfg.Name, now.Format(nsTimeFmt), qs.virtualTime, fsName, descr1, descr2, qs.totRequestsExecuting) @@ -599,9 +604,9 @@ func (qs *queueSet) dispatchLocked() bool { qs.totRequestsWaiting-- qs.totRequestsExecuting++ queue.requestsExecuting++ - metrics.AddRequestsInQueues(qs.qCfg.Name, request.fsName, -1) + metrics.AddRequestsInQueues(request.ctx, qs.qCfg.Name, request.fsName, -1) request.NoteQueued(false) - metrics.AddRequestsExecuting(qs.qCfg.Name, request.fsName, 1) + metrics.AddRequestsExecuting(request.ctx, qs.qCfg.Name, request.fsName, 1) qs.obsPair.RequestsWaiting.Add(-1) qs.obsPair.RequestsExecuting.Add(1) if klog.V(6).Enabled() { @@ -631,13 +636,12 @@ func (qs *queueSet) cancelWait(req *request) { // remove the request queue.requests = append(queue.requests[:i], queue.requests[i+1:]...) qs.totRequestsWaiting-- - metrics.AddRequestsInQueues(qs.qCfg.Name, req.fsName, -1) + metrics.AddRequestsInQueues(req.ctx, qs.qCfg.Name, req.fsName, -1) req.NoteQueued(false) qs.obsPair.RequestsWaiting.Add(-1) break } } - return } // selectQueueLocked examines the queues in round robin order and @@ -705,7 +709,7 @@ func (qs *queueSet) finishRequestAndDispatchAsMuchAsPossible(req *request) bool func (qs *queueSet) finishRequestLocked(r *request) { now := qs.clock.Now() qs.totRequestsExecuting-- - metrics.AddRequestsExecuting(qs.qCfg.Name, r.fsName, -1) + metrics.AddRequestsExecuting(r.ctx, qs.qCfg.Name, r.fsName, -1) qs.obsPair.RequestsExecuting.Add(-1) if r.queue == nil { diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format/formatting.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format/formatting.go index 61ae65df96..d2c917e0ba 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format/formatting.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format/formatting.go @@ -195,7 +195,7 @@ func BufferFmtPolicyRulesWithSubjectsSlim(buf *bytes.Buffer, rule flowcontrol.Po buf.WriteString(fmt.Sprintf(", Group: &%#+v", *subj.Group)) } if subj.ServiceAccount != nil { - buf.WriteString(fmt.Sprintf(", ServiceAcount: &%#+v", *subj.ServiceAccount)) + buf.WriteString(fmt.Sprintf(", ServiceAccount: &%#+v", *subj.ServiceAccount)) } buf.WriteString("}") } diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/metrics.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/metrics.go index bdbaa94601..4ebe85577b 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/metrics.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/metrics.go @@ -17,6 +17,7 @@ limitations under the License. package metrics import ( + "context" "strings" "sync" "time" @@ -221,12 +222,12 @@ var ( ) // AddRequestsInQueues adds the given delta to the gauge of the # of requests in the queues of the specified flowSchema and priorityLevel -func AddRequestsInQueues(priorityLevel, flowSchema string, delta int) { +func AddRequestsInQueues(ctx context.Context, priorityLevel, flowSchema string, delta int) { apiserverCurrentInqueueRequests.WithLabelValues(priorityLevel, flowSchema).Add(float64(delta)) } // AddRequestsExecuting adds the given delta to the gauge of executing requests of the given flowSchema and priorityLevel -func AddRequestsExecuting(priorityLevel, flowSchema string, delta int) { +func AddRequestsExecuting(ctx context.Context, priorityLevel, flowSchema string, delta int) { apiserverCurrentExecutingRequests.WithLabelValues(priorityLevel, flowSchema).Add(float64(delta)) } @@ -236,26 +237,26 @@ func UpdateSharedConcurrencyLimit(priorityLevel string, limit int) { } // AddReject increments the # of rejected requests for flow control -func AddReject(priorityLevel, flowSchema, reason string) { - apiserverRejectedRequestsTotal.WithLabelValues(priorityLevel, flowSchema, reason).Add(1) +func AddReject(ctx context.Context, priorityLevel, flowSchema, reason string) { + apiserverRejectedRequestsTotal.WithContext(ctx).WithLabelValues(priorityLevel, flowSchema, reason).Add(1) } // AddDispatch increments the # of dispatched requests for flow control -func AddDispatch(priorityLevel, flowSchema string) { - apiserverDispatchedRequestsTotal.WithLabelValues(priorityLevel, flowSchema).Add(1) +func AddDispatch(ctx context.Context, priorityLevel, flowSchema string) { + apiserverDispatchedRequestsTotal.WithContext(ctx).WithLabelValues(priorityLevel, flowSchema).Add(1) } // ObserveQueueLength observes the queue length for flow control -func ObserveQueueLength(priorityLevel, flowSchema string, length int) { - apiserverRequestQueueLength.WithLabelValues(priorityLevel, flowSchema).Observe(float64(length)) +func ObserveQueueLength(ctx context.Context, priorityLevel, flowSchema string, length int) { + apiserverRequestQueueLength.WithContext(ctx).WithLabelValues(priorityLevel, flowSchema).Observe(float64(length)) } // ObserveWaitingDuration observes the queue length for flow control -func ObserveWaitingDuration(priorityLevel, flowSchema, execute string, waitTime time.Duration) { - apiserverRequestWaitingSeconds.WithLabelValues(priorityLevel, flowSchema, execute).Observe(waitTime.Seconds()) +func ObserveWaitingDuration(ctx context.Context, priorityLevel, flowSchema, execute string, waitTime time.Duration) { + apiserverRequestWaitingSeconds.WithContext(ctx).WithLabelValues(priorityLevel, flowSchema, execute).Observe(waitTime.Seconds()) } // ObserveExecutionDuration observes the execution duration for flow control -func ObserveExecutionDuration(priorityLevel, flowSchema string, executionTime time.Duration) { - apiserverRequestExecutionSeconds.WithLabelValues(priorityLevel, flowSchema).Observe(executionTime.Seconds()) +func ObserveExecutionDuration(ctx context.Context, priorityLevel, flowSchema string, executionTime time.Duration) { + apiserverRequestExecutionSeconds.WithContext(ctx).WithLabelValues(priorityLevel, flowSchema).Observe(executionTime.Seconds()) } diff --git a/vendor/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go b/vendor/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go index d4bf1b45a9..41dd7a69e9 100644 --- a/vendor/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go +++ b/vendor/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go @@ -52,17 +52,18 @@ type tokenReviewer interface { } type WebhookTokenAuthenticator struct { - tokenReview tokenReviewer - retryBackoff wait.Backoff - implicitAuds authenticator.Audiences + tokenReview tokenReviewer + retryBackoff wait.Backoff + implicitAuds authenticator.Audiences + requestTimeout time.Duration } // NewFromInterface creates a webhook authenticator using the given tokenReview // client. It is recommend to wrap this authenticator with the token cache // authenticator implemented in // k8s.io/apiserver/pkg/authentication/token/cache. -func NewFromInterface(tokenReview authenticationv1client.TokenReviewInterface, implicitAuds authenticator.Audiences, retryBackoff wait.Backoff) (*WebhookTokenAuthenticator, error) { - return newWithBackoff(tokenReview, retryBackoff, implicitAuds) +func NewFromInterface(tokenReview authenticationv1client.TokenReviewInterface, implicitAuds authenticator.Audiences, retryBackoff wait.Backoff, requestTimeout time.Duration) (*WebhookTokenAuthenticator, error) { + return newWithBackoff(tokenReview, retryBackoff, implicitAuds, requestTimeout) } // New creates a new WebhookTokenAuthenticator from the provided kubeconfig @@ -74,12 +75,12 @@ func New(kubeConfigFile string, version string, implicitAuds authenticator.Audie if err != nil { return nil, err } - return newWithBackoff(tokenReview, retryBackoff, implicitAuds) + return newWithBackoff(tokenReview, retryBackoff, implicitAuds, time.Duration(0)) } // newWithBackoff allows tests to skip the sleep. -func newWithBackoff(tokenReview tokenReviewer, retryBackoff wait.Backoff, implicitAuds authenticator.Audiences) (*WebhookTokenAuthenticator, error) { - return &WebhookTokenAuthenticator{tokenReview, retryBackoff, implicitAuds}, nil +func newWithBackoff(tokenReview tokenReviewer, retryBackoff wait.Backoff, implicitAuds authenticator.Audiences, requestTimeout time.Duration) (*WebhookTokenAuthenticator, error) { + return &WebhookTokenAuthenticator{tokenReview, retryBackoff, implicitAuds, requestTimeout}, nil } // AuthenticateToken implements the authenticator.Token interface. @@ -104,14 +105,24 @@ func (w *WebhookTokenAuthenticator) AuthenticateToken(ctx context.Context, token } var ( result *authenticationv1.TokenReview - err error auds authenticator.Audiences + cancel context.CancelFunc ) - webhook.WithExponentialBackoff(ctx, w.retryBackoff, func() error { - result, err = w.tokenReview.Create(ctx, r, metav1.CreateOptions{}) - return err - }, webhook.DefaultShouldRetry) - if err != nil { + + // set a hard timeout if it was defined + // if the child has a shorter deadline then it will expire first, + // otherwise if the parent has a shorter deadline then the parent will expire and it will be propagate to the child + if w.requestTimeout > 0 { + ctx, cancel = context.WithTimeout(ctx, w.requestTimeout) + defer cancel() + } + + // WithExponentialBackoff will return tokenreview create error (tokenReviewErr) if any. + if err := webhook.WithExponentialBackoff(ctx, w.retryBackoff, func() error { + var tokenReviewErr error + result, tokenReviewErr = w.tokenReview.Create(ctx, r, metav1.CreateOptions{}) + return tokenReviewErr + }, webhook.DefaultShouldRetry); err != nil { // An error here indicates bad configuration or an outage. Log for debugging. klog.Errorf("Failed to make webhook authenticator request: %v", err) return nil, false, err diff --git a/vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go b/vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go index 5c9f28ad40..c31bd4a504 100644 --- a/vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go +++ b/vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go @@ -192,19 +192,17 @@ func (w *WebhookAuthorizer) Authorize(ctx context.Context, attr authorizer.Attri if entry, ok := w.responseCache.Get(string(key)); ok { r.Status = entry.(authorizationv1.SubjectAccessReviewStatus) } else { - var ( - result *authorizationv1.SubjectAccessReview - err error - ) - webhook.WithExponentialBackoff(ctx, w.retryBackoff, func() error { - result, err = w.subjectAccessReview.Create(ctx, r, metav1.CreateOptions{}) - return err - }, webhook.DefaultShouldRetry) - if err != nil { - // An error here indicates bad configuration or an outage. Log for debugging. + var result *authorizationv1.SubjectAccessReview + // WithExponentialBackoff will return SAR create error (sarErr) if any. + if err := webhook.WithExponentialBackoff(ctx, w.retryBackoff, func() error { + var sarErr error + result, sarErr = w.subjectAccessReview.Create(ctx, r, metav1.CreateOptions{}) + return sarErr + }, webhook.DefaultShouldRetry); err != nil { klog.Errorf("Failed to make webhook authorizer request: %v", err) return w.decisionOnError, "", err } + r.Status = result.Status if shouldCache(attr) { if r.Status.Allowed { diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/builder_flags.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/builder_flags.go index f695fb5f9b..acf576a366 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/builder_flags.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/builder_flags.go @@ -52,6 +52,9 @@ func NewResourceBuilderFlags() *ResourceBuilderFlags { } } +// WithFile sets the FileNameFlags. +// If recurse is set, it will process directory recursively. Useful when you want to manage related manifests +// organized within the same directory. func (o *ResourceBuilderFlags) WithFile(recurse bool, files ...string) *ResourceBuilderFlags { o.FileNameFlags = &FileNameFlags{ Usage: "identifying the resource.", @@ -62,41 +65,49 @@ func (o *ResourceBuilderFlags) WithFile(recurse bool, files ...string) *Resource return o } +// WithLabelSelector sets the LabelSelector flag func (o *ResourceBuilderFlags) WithLabelSelector(selector string) *ResourceBuilderFlags { o.LabelSelector = &selector return o } +// WithFieldSelector sets the FieldSelector flag func (o *ResourceBuilderFlags) WithFieldSelector(selector string) *ResourceBuilderFlags { o.FieldSelector = &selector return o } +// WithAllNamespaces sets the AllNamespaces flag func (o *ResourceBuilderFlags) WithAllNamespaces(defaultVal bool) *ResourceBuilderFlags { o.AllNamespaces = &defaultVal return o } +// WithAll sets the All flag func (o *ResourceBuilderFlags) WithAll(defaultVal bool) *ResourceBuilderFlags { o.All = &defaultVal return o } +// WithLocal sets the Local flag func (o *ResourceBuilderFlags) WithLocal(defaultVal bool) *ResourceBuilderFlags { o.Local = &defaultVal return o } +// WithScheme sets the Scheme flag func (o *ResourceBuilderFlags) WithScheme(scheme *runtime.Scheme) *ResourceBuilderFlags { o.Scheme = scheme return o } +// WithLatest sets the Latest flag func (o *ResourceBuilderFlags) WithLatest() *ResourceBuilderFlags { o.Latest = true return o } +// StopOnError sets the StopOnFirstError flag func (o *ResourceBuilderFlags) StopOnError() *ResourceBuilderFlags { o.StopOnFirstError = true return o diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/builder_flags_fake.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/builder_flags_fake.go index 310382919f..d43b0c25e0 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/builder_flags_fake.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/builder_flags_fake.go @@ -20,7 +20,7 @@ import ( "k8s.io/cli-runtime/pkg/resource" ) -// NewSimpleResourceFinder builds a super simple ResourceFinder that just iterates over the objects you provided +// NewSimpleFakeResourceFinder builds a super simple ResourceFinder that just iterates over the objects you provided func NewSimpleFakeResourceFinder(infos ...*resource.Info) ResourceFinder { return &fakeResourceFinder{ Infos: infos, diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/client_config.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/client_config.go index f25af27df2..0e22d71407 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/client_config.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/client_config.go @@ -23,6 +23,7 @@ import ( ) var ( + // ErrEmptyConfig is the error message to be displayed if the configuration info is missing or incomplete ErrEmptyConfig = clientcmd.NewEmptyConfigError(`Missing or incomplete configuration info. Please point to an existing, complete config file: diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/command_headers.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/command_headers.go new file mode 100644 index 0000000000..8f9e774752 --- /dev/null +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/command_headers.go @@ -0,0 +1,79 @@ +/* +Copyright 2021 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. +*/ + +package genericclioptions + +import ( + "net/http" + "strings" + + "github.com/google/uuid" + "github.com/spf13/cobra" +) + +const ( + kubectlCommandHeader = "X-Kubectl-Command" + kubectlSessionHeader = "X-Kubectl-Session" +) + +// CommandHeaderRoundTripper adds a layer around the standard +// round tripper to add Request headers before delegation. Implements +// the go standard library "http.RoundTripper" interface. +type CommandHeaderRoundTripper struct { + Delegate http.RoundTripper + Headers map[string]string +} + +// CommandHeaderRoundTripper adds Request headers before delegating to standard +// round tripper. These headers are kubectl command headers which +// detail the kubectl command. See SIG CLI KEP 859: +// https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers +func (c *CommandHeaderRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + for header, value := range c.Headers { + req.Header.Set(header, value) + } + return c.Delegate.RoundTrip(req) +} + +// ParseCommandHeaders fills in a map of X-Headers into the CommandHeaderRoundTripper. These +// headers are then filled into each request. For details on X-Headers see: +// https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers +// Each call overwrites the previously parsed command headers (not additive). +// TODO(seans3): Parse/add flags removing PII from flag values. +func (c *CommandHeaderRoundTripper) ParseCommandHeaders(cmd *cobra.Command, args []string) { + if cmd == nil { + return + } + // Overwrites previously parsed command headers (headers not additive). + c.Headers = map[string]string{} + // Session identifier to aggregate multiple Requests from single kubectl command. + uid := uuid.New().String() + c.Headers[kubectlSessionHeader] = uid + // Iterate up the hierarchy of commands from the leaf command to create + // the full command string. Example: kubectl create secret generic + cmdStrs := []string{} + for cmd.HasParent() { + parent := cmd.Parent() + currName := strings.TrimSpace(cmd.Name()) + cmdStrs = append([]string{currName}, cmdStrs...) + cmd = parent + } + currName := strings.TrimSpace(cmd.Name()) + cmdStrs = append([]string{currName}, cmdStrs...) + if len(cmdStrs) > 0 { + c.Headers[kubectlCommandHeader] = strings.Join(cmdStrs, " ") + } +} diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/config_flags.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/config_flags.go index 91d1a4b52c..86a601a0de 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/config_flags.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/config_flags.go @@ -98,6 +98,9 @@ type ConfigFlags struct { Username *string Password *string Timeout *string + // If non-nil, wrap config function can transform the Config + // before it is returned in ToRESTConfig function. + WrapConfigFn func(*rest.Config) *rest.Config clientConfig clientcmd.ClientConfig lock sync.Mutex @@ -105,14 +108,25 @@ type ConfigFlags struct { // propagate the config to the places that need it, rather than // loading the config multiple times usePersistentConfig bool + // Allows increasing burst used for discovery, this is useful + // in clusters with many registered resources + discoveryBurst int } // ToRESTConfig implements RESTClientGetter. // Returns a REST client configuration based on a provided path // to a .kubeconfig file, loading rules, and config flag overrides. -// Expects the AddFlags method to have been called. +// Expects the AddFlags method to have been called. If WrapConfigFn +// is non-nil this function can transform config before return. func (f *ConfigFlags) ToRESTConfig() (*rest.Config, error) { - return f.ToRawKubeConfigLoader().ClientConfig() + c, err := f.ToRawKubeConfigLoader().ClientConfig() + if err != nil { + return nil, err + } + if f.WrapConfigFn != nil { + return f.WrapConfigFn(c), nil + } + return c, nil } // ToRawKubeConfigLoader binds config flag values to config overrides @@ -224,7 +238,7 @@ func (f *ConfigFlags) ToDiscoveryClient() (discovery.CachedDiscoveryInterface, e // The more groups you have, the more discovery requests you need to make. // given 25 groups (our groups + a few custom resources) with one-ish version each, discovery needs to make 50 requests // double it just so we don't end up here again for a while. This config is only used for discovery. - config.Burst = 100 + config.Burst = f.discoveryBurst cacheDir := defaultCacheDir @@ -320,6 +334,12 @@ func (f *ConfigFlags) WithDeprecatedPasswordFlag() *ConfigFlags { return f } +// WithDiscoveryBurst sets the RESTClient burst for discovery. +func (f *ConfigFlags) WithDiscoveryBurst(discoveryBurst int) *ConfigFlags { + f.discoveryBurst = discoveryBurst + return f +} + // NewConfigFlags returns ConfigFlags with default values set func NewConfigFlags(usePersistentConfig bool) *ConfigFlags { impersonateGroup := []string{} @@ -345,6 +365,10 @@ func NewConfigFlags(usePersistentConfig bool) *ConfigFlags { ImpersonateGroup: &impersonateGroup, usePersistentConfig: usePersistentConfig, + // The more groups you have, the more discovery requests you need to make. + // given 25 groups (our groups + a few custom resources) with one-ish version each, discovery needs to make 50 requests + // double it just so we don't end up here again for a while. This config is only used for discovery. + discoveryBurst: 100, } } diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/config_flags_fake.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/config_flags_fake.go index ff986b027f..7a96481552 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/config_flags_fake.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/config_flags_fake.go @@ -27,12 +27,16 @@ import ( clientcmdapi "k8s.io/client-go/tools/clientcmd/api" ) +// TestConfigFlags contains clientConfig struct +// and interfaces that implements RESTClientGetter type TestConfigFlags struct { clientConfig clientcmd.ClientConfig discoveryClient discovery.CachedDiscoveryInterface restMapper meta.RESTMapper } +// ToRawKubeConfigLoader implements RESTClientGetter +// Returns a clientconfig if it's set func (f *TestConfigFlags) ToRawKubeConfigLoader() clientcmd.ClientConfig { if f.clientConfig == nil { panic("attempt to obtain a test RawKubeConfigLoader with no clientConfig specified") @@ -40,14 +44,22 @@ func (f *TestConfigFlags) ToRawKubeConfigLoader() clientcmd.ClientConfig { return f.clientConfig } +// ToRESTConfig implements RESTClientGetter. +// Returns a REST client configuration based on a provided path +// to a .kubeconfig file, loading rules, and config flag overrides. +// Expects the AddFlags method to have been called. func (f *TestConfigFlags) ToRESTConfig() (*rest.Config, error) { return f.ToRawKubeConfigLoader().ClientConfig() } +// ToDiscoveryClient implements RESTClientGetter. +// Returns a CachedDiscoveryInterface func (f *TestConfigFlags) ToDiscoveryClient() (discovery.CachedDiscoveryInterface, error) { return f.discoveryClient, nil } +// ToRESTMapper implements RESTClientGetter. +// Returns a mapper. func (f *TestConfigFlags) ToRESTMapper() (meta.RESTMapper, error) { if f.restMapper != nil { return f.restMapper, nil @@ -60,21 +72,25 @@ func (f *TestConfigFlags) ToRESTMapper() (meta.RESTMapper, error) { return nil, fmt.Errorf("no restmapper") } +// WithClientConfig sets the clientConfig flag func (f *TestConfigFlags) WithClientConfig(clientConfig clientcmd.ClientConfig) *TestConfigFlags { f.clientConfig = clientConfig return f } +// WithRESTMapper sets the restMapper flag func (f *TestConfigFlags) WithRESTMapper(mapper meta.RESTMapper) *TestConfigFlags { f.restMapper = mapper return f } +// WithDiscoveryClient sets the discoveryClient flag func (f *TestConfigFlags) WithDiscoveryClient(c discovery.CachedDiscoveryInterface) *TestConfigFlags { f.discoveryClient = c return f } +// WithNamespace sets the clientConfig flag by modifying delagate and namespace func (f *TestConfigFlags) WithNamespace(ns string) *TestConfigFlags { if f.clientConfig == nil { panic("attempt to obtain a test RawKubeConfigLoader with no clientConfig specified") @@ -86,6 +102,7 @@ func (f *TestConfigFlags) WithNamespace(ns string) *TestConfigFlags { return f } +// NewTestConfigFlags builds a TestConfigFlags struct to test ConfigFlags func NewTestConfigFlags() *TestConfigFlags { return &TestConfigFlags{} } diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/doc.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/doc.go index 4796a8a449..303da330b7 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/doc.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Package genericclioptions contains flags which can be added to you command, bound, completed, and produce +// Package genericclioptions contains flags which can be added to your command, bound, completed, and produce // useful helper functions. Nothing in this package can depend on kube/kube package genericclioptions // import "k8s.io/cli-runtime/pkg/genericclioptions" diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/filename_flags.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/filename_flags.go index 09e7b5bed1..74259e4170 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/filename_flags.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/filename_flags.go @@ -25,6 +25,7 @@ import ( "k8s.io/cli-runtime/pkg/resource" ) +// FileNameFlags are flags for processing files. // Usage of this struct by itself is discouraged. // These flags are composed by ResourceBuilderFlags // which should be used instead. @@ -36,6 +37,7 @@ type FileNameFlags struct { Recursive *bool } +// ToOptions creates a new FileNameOptions struct and sets FilenameOptions based on FileNameflags func (o *FileNameFlags) ToOptions() resource.FilenameOptions { options := resource.FilenameOptions{} @@ -56,6 +58,7 @@ func (o *FileNameFlags) ToOptions() resource.FilenameOptions { return options } +// AddFlags binds file name flags to a given flagset func (o *FileNameFlags) AddFlags(flags *pflag.FlagSet) { if o == nil { return diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/json_yaml_flags.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/json_yaml_flags.go index a344eb0b63..0f2bdcdaf0 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/json_yaml_flags.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/json_yaml_flags.go @@ -24,6 +24,7 @@ import ( "k8s.io/cli-runtime/pkg/printers" ) +// AllowedFormats returns slice of string of allowed JSONYaml printing format func (f *JSONYamlPrintFlags) AllowedFormats() []string { if f == nil { return []string{} @@ -35,6 +36,7 @@ func (f *JSONYamlPrintFlags) AllowedFormats() []string { // Given the following flag values, a printer can be requested that knows // how to handle printing based on these values. type JSONYamlPrintFlags struct { + showManagedFields bool } // ToPrinter receives an outputFormat and returns a printer capable of @@ -54,12 +56,21 @@ func (f *JSONYamlPrintFlags) ToPrinter(outputFormat string) (printers.ResourcePr return nil, NoCompatiblePrinterError{OutputFormat: &outputFormat, AllowedFormats: f.AllowedFormats()} } + if !f.showManagedFields { + printer = &printers.OmitManagedFieldsPrinter{Delegate: printer} + } return printer, nil } // AddFlags receives a *cobra.Command reference and binds // flags related to JSON or Yaml printing to it -func (f *JSONYamlPrintFlags) AddFlags(c *cobra.Command) {} +func (f *JSONYamlPrintFlags) AddFlags(c *cobra.Command) { + if f == nil { + return + } + + c.Flags().BoolVar(&f.showManagedFields, "show-managed-fields", f.showManagedFields, "If true, keep the managedFields when printing objects in JSON or YAML format.") +} // NewJSONYamlPrintFlags returns flags associated with // yaml or json printing, with default values set. diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/jsonpath_flags.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/jsonpath_flags.go index b5d114de73..06bef474a3 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/jsonpath_flags.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/jsonpath_flags.go @@ -46,6 +46,7 @@ type JSONPathPrintFlags struct { TemplateArgument *string } +// AllowedFormats returns slice of string of allowed JSONPath printing format func (f *JSONPathPrintFlags) AllowedFormats() []string { formats := make([]string, 0, len(jsonFormats)) for format := range jsonFormats { @@ -89,7 +90,7 @@ func (f *JSONPathPrintFlags) ToPrinter(templateFormat string) (printers.Resource if templateFormat == "jsonpath-file" { data, err := ioutil.ReadFile(templateValue) if err != nil { - return nil, fmt.Errorf("error reading --template %s, %v\n", templateValue, err) + return nil, fmt.Errorf("error reading --template %s, %v", templateValue, err) } templateValue = string(data) @@ -97,7 +98,7 @@ func (f *JSONPathPrintFlags) ToPrinter(templateFormat string) (printers.Resource p, err := printers.NewJSONPathPrinter(templateValue) if err != nil { - return nil, fmt.Errorf("error parsing jsonpath %s, %v\n", templateValue, err) + return nil, fmt.Errorf("error parsing jsonpath %s, %v", templateValue, err) } allowMissingKeys := true diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/kube_template_flags.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/kube_template_flags.go index df2b58c1c2..518a20ac6b 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/kube_template_flags.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/kube_template_flags.go @@ -33,6 +33,7 @@ type KubeTemplatePrintFlags struct { TemplateArgument *string } +// AllowedFormats returns slice of string of allowed GoTemplete and JSONPathPrint printing formats func (f *KubeTemplatePrintFlags) AllowedFormats() []string { if f == nil { return []string{} @@ -40,6 +41,10 @@ func (f *KubeTemplatePrintFlags) AllowedFormats() []string { return append(f.GoTemplatePrintFlags.AllowedFormats(), f.JSONPathPrintFlags.AllowedFormats()...) } +// ToPrinter receives an outputFormat and returns a printer capable of +// handling --template printing. +// Returns false if the specified outputFormat does not match a supported format. +// Supported Format types can be found in pkg/printers/printers.go func (f *KubeTemplatePrintFlags) ToPrinter(outputFormat string) (printers.ResourcePrinter, error) { if f == nil { return nil, NoCompatiblePrinterError{} diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/name_flags.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/name_flags.go index 7aa89ab05a..02f400a03e 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/name_flags.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/name_flags.go @@ -35,11 +35,13 @@ type NamePrintFlags struct { Operation string } +// Complete sets NamePrintFlags operation flag from sucessTemplate func (f *NamePrintFlags) Complete(successTemplate string) error { f.Operation = fmt.Sprintf(successTemplate, f.Operation) return nil } +// AllowedFormats returns slice of string of allowed Name printing format func (f *NamePrintFlags) AllowedFormats() []string { if f == nil { return []string{} diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/print_flags.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/print_flags.go index 17b05c8cd6..1ec93aecc4 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/print_flags.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/print_flags.go @@ -27,6 +27,8 @@ import ( "k8s.io/cli-runtime/pkg/printers" ) +// NoCompatiblePrinterError is a struct that contains error information. +// It will be constructed when a invalid printing format is provided type NoCompatiblePrinterError struct { OutputFormat *string AllowedFormats []string @@ -43,6 +45,8 @@ func (e NoCompatiblePrinterError) Error() string { return fmt.Sprintf("unable to match a printer suitable for the output format %q, allowed formats are: %s", output, strings.Join(e.AllowedFormats, ",")) } +// IsNoCompatiblePrinterError returns true if it is a not a compatible printer +// otherwise it will return false func IsNoCompatiblePrinterError(err error) bool { if err == nil { return false @@ -69,10 +73,12 @@ type PrintFlags struct { OutputFlagSpecified func() bool } +// Complete sets NamePrintFlags operation flag from sucessTemplate func (f *PrintFlags) Complete(successTemplate string) error { return f.NamePrintFlags.Complete(successTemplate) } +// AllowedFormats returns slice of string of allowed JSONYaml/Name/Template printing format func (f *PrintFlags) AllowedFormats() []string { ret := []string{} ret = append(ret, f.JSONYamlPrintFlags.AllowedFormats()...) @@ -81,6 +87,10 @@ func (f *PrintFlags) AllowedFormats() []string { return ret } +// ToPrinter returns a printer capable of +// handling --output or --template printing. +// Returns false if the specified outputFormat does not match a supported format. +// Supported format types can be found in pkg/printers/printers.go func (f *PrintFlags) ToPrinter() (printers.ResourcePrinter, error) { outputFormat := "" if f.OutputFormat != nil { @@ -118,6 +128,8 @@ func (f *PrintFlags) ToPrinter() (printers.ResourcePrinter, error) { return nil, NoCompatiblePrinterError{OutputFormat: f.OutputFormat, AllowedFormats: f.AllowedFormats()} } +// AddFlags receives a *cobra.Command reference and binds +// flags related to JSON/Yaml/Name/Template printing to it func (f *PrintFlags) AddFlags(cmd *cobra.Command) { f.JSONYamlPrintFlags.AddFlags(cmd) f.NamePrintFlags.AddFlags(cmd) @@ -145,6 +157,7 @@ func (f *PrintFlags) WithTypeSetter(scheme *runtime.Scheme) *PrintFlags { return f } +// NewPrintFlags returns a default *PrintFlags func NewPrintFlags(operation string) *PrintFlags { outputFormat := "" diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/record_flags.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/record_flags.go index faf250d53c..095a7b519e 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/record_flags.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/record_flags.go @@ -21,7 +21,7 @@ import ( "path/filepath" "strings" - "github.com/evanphx/json-patch" + jsonpatch "github.com/evanphx/json-patch" "github.com/spf13/cobra" "github.com/spf13/pflag" @@ -74,6 +74,7 @@ func (f *RecordFlags) Complete(cmd *cobra.Command) error { return nil } +// CompleteWithChangeCause alters changeCause value with a new cause func (f *RecordFlags) CompleteWithChangeCause(cause string) error { if f == nil { return nil diff --git a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/template_flags.go b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/template_flags.go index 342912798a..4502061ec4 100644 --- a/vendor/k8s.io/cli-runtime/pkg/genericclioptions/template_flags.go +++ b/vendor/k8s.io/cli-runtime/pkg/genericclioptions/template_flags.go @@ -47,6 +47,7 @@ type GoTemplatePrintFlags struct { TemplateArgument *string } +// AllowedFormats returns slice of string of allowed GoTemplatePrint printing format func (f *GoTemplatePrintFlags) AllowedFormats() []string { formats := make([]string, 0, len(templateFormats)) for format := range templateFormats { @@ -90,7 +91,7 @@ func (f *GoTemplatePrintFlags) ToPrinter(templateFormat string) (printers.Resour if templateFormat == "templatefile" || templateFormat == "go-template-file" { data, err := ioutil.ReadFile(templateValue) if err != nil { - return nil, fmt.Errorf("error reading --template %s, %v\n", templateValue, err) + return nil, fmt.Errorf("error reading --template %s, %v", templateValue, err) } templateValue = string(data) @@ -98,7 +99,7 @@ func (f *GoTemplatePrintFlags) ToPrinter(templateFormat string) (printers.Resour p, err := printers.NewGoTemplatePrinter([]byte(templateValue)) if err != nil { - return nil, fmt.Errorf("error parsing template %s, %v\n", templateValue, err) + return nil, fmt.Errorf("error parsing template %s, %v", templateValue, err) } allowMissingKeys := true diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/builder.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/builder.go deleted file mode 100644 index 6aace7ce53..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/builder.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2019 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. -*/ - -package kustomize - -import ( - "io" - - "k8s.io/cli-runtime/pkg/kustomize/k8sdeps" - "sigs.k8s.io/kustomize/pkg/commands/build" - "sigs.k8s.io/kustomize/pkg/fs" -) - -// RunKustomizeBuild runs kustomize build given a filesystem and a path -func RunKustomizeBuild(out io.Writer, fSys fs.FileSystem, path string) error { - f := k8sdeps.NewFactory() - o := build.NewOptions(path, "") - return o.RunBuild(out, fSys, f.ResmapF, f.TransformerF) -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret/configmapfactory.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret/configmapfactory.go deleted file mode 100644 index 9d40838ab0..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret/configmapfactory.go +++ /dev/null @@ -1,125 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package configmapandsecret generates configmaps and secrets per generator rules. -package configmapandsecret - -import ( - "fmt" - "strings" - "unicode/utf8" - - "github.com/pkg/errors" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kv" - "sigs.k8s.io/kustomize/pkg/ifc" - "sigs.k8s.io/kustomize/pkg/types" -) - -// ConfigMapFactory makes ConfigMaps. -type ConfigMapFactory struct { - ldr ifc.Loader -} - -// NewConfigMapFactory returns a new ConfigMapFactory. -func NewConfigMapFactory(l ifc.Loader) *ConfigMapFactory { - return &ConfigMapFactory{ldr: l} -} - -func (f *ConfigMapFactory) makeFreshConfigMap( - args *types.ConfigMapArgs) *corev1.ConfigMap { - cm := &corev1.ConfigMap{} - cm.APIVersion = "v1" - cm.Kind = "ConfigMap" - cm.Name = args.Name - cm.Namespace = args.Namespace - cm.Data = map[string]string{} - return cm -} - -// MakeConfigMap returns a new ConfigMap, or nil and an error. -func (f *ConfigMapFactory) MakeConfigMap( - args *types.ConfigMapArgs, options *types.GeneratorOptions) (*corev1.ConfigMap, error) { - var all []kv.Pair - var err error - cm := f.makeFreshConfigMap(args) - - pairs, err := keyValuesFromEnvFile(f.ldr, args.EnvSource) - if err != nil { - return nil, errors.Wrap(err, fmt.Sprintf( - "env source file: %s", - args.EnvSource)) - } - all = append(all, pairs...) - - pairs, err = keyValuesFromLiteralSources(args.LiteralSources) - if err != nil { - return nil, errors.Wrap(err, fmt.Sprintf( - "literal sources %v", args.LiteralSources)) - } - all = append(all, pairs...) - - pairs, err = keyValuesFromFileSources(f.ldr, args.FileSources) - if err != nil { - return nil, errors.Wrap(err, fmt.Sprintf( - "file sources: %v", args.FileSources)) - } - all = append(all, pairs...) - - for _, p := range all { - err = addKvToConfigMap(cm, p.Key, p.Value) - if err != nil { - return nil, err - } - } - if options != nil { - cm.SetLabels(options.Labels) - cm.SetAnnotations(options.Annotations) - } - return cm, nil -} - -// addKvToConfigMap adds the given key and data to the given config map. -// Error if key invalid, or already exists. -func addKvToConfigMap(configMap *corev1.ConfigMap, keyName, data string) error { - // Note, the rules for ConfigMap keys are the exact same as the ones for SecretKeys. - if errs := validation.IsConfigMapKey(keyName); len(errs) != 0 { - return fmt.Errorf("%q is not a valid key name for a ConfigMap: %s", keyName, strings.Join(errs, ";")) - } - - keyExistsErrorMsg := "cannot add key %s, another key by that name already exists: %v" - - // If the configmap data contains byte sequences that are all in the UTF-8 - // range, we will write it to .Data - if utf8.Valid([]byte(data)) { - if _, entryExists := configMap.Data[keyName]; entryExists { - return fmt.Errorf(keyExistsErrorMsg, keyName, configMap.Data) - } - configMap.Data[keyName] = data - return nil - } - - // otherwise, it's BinaryData - if configMap.BinaryData == nil { - configMap.BinaryData = map[string][]byte{} - } - if _, entryExists := configMap.BinaryData[keyName]; entryExists { - return fmt.Errorf(keyExistsErrorMsg, keyName, configMap.BinaryData) - } - configMap.BinaryData[keyName] = []byte(data) - return nil -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret/kv.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret/kv.go deleted file mode 100644 index 893dfefc9c..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret/kv.go +++ /dev/null @@ -1,107 +0,0 @@ -/* -Copyright 2019 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. -*/ - -package configmapandsecret - -import ( - "fmt" - "path" - "strings" - - "github.com/pkg/errors" - "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kv" - "sigs.k8s.io/kustomize/pkg/ifc" -) - -func keyValuesFromLiteralSources(sources []string) ([]kv.Pair, error) { - var kvs []kv.Pair - for _, s := range sources { - k, v, err := parseLiteralSource(s) - if err != nil { - return nil, err - } - kvs = append(kvs, kv.Pair{Key: k, Value: v}) - } - return kvs, nil -} - -func keyValuesFromFileSources(ldr ifc.Loader, sources []string) ([]kv.Pair, error) { - var kvs []kv.Pair - for _, s := range sources { - k, fPath, err := parseFileSource(s) - if err != nil { - return nil, err - } - content, err := ldr.Load(fPath) - if err != nil { - return nil, err - } - kvs = append(kvs, kv.Pair{Key: k, Value: string(content)}) - } - return kvs, nil -} - -func keyValuesFromEnvFile(l ifc.Loader, path string) ([]kv.Pair, error) { - if path == "" { - return nil, nil - } - content, err := l.Load(path) - if err != nil { - return nil, err - } - return kv.KeyValuesFromLines(content) -} - -// parseFileSource parses the source given. -// -// Acceptable formats include: -// 1. source-path: the basename will become the key name -// 2. source-name=source-path: the source-name will become the key name and -// source-path is the path to the key file. -// -// Key names cannot include '='. -func parseFileSource(source string) (keyName, filePath string, err error) { - numSeparators := strings.Count(source, "=") - switch { - case numSeparators == 0: - return path.Base(source), source, nil - case numSeparators == 1 && strings.HasPrefix(source, "="): - return "", "", fmt.Errorf("key name for file path %v missing", strings.TrimPrefix(source, "=")) - case numSeparators == 1 && strings.HasSuffix(source, "="): - return "", "", fmt.Errorf("file path for key name %v missing", strings.TrimSuffix(source, "=")) - case numSeparators > 1: - return "", "", errors.New("key names or file paths cannot contain '='") - default: - components := strings.Split(source, "=") - return components[0], components[1], nil - } -} - -// parseLiteralSource parses the source key=val pair into its component pieces. -// This functionality is distinguished from strings.SplitN(source, "=", 2) since -// it returns an error in the case of empty keys, values, or a missing equals sign. -func parseLiteralSource(source string) (keyName, value string, err error) { - // leading equal is invalid - if strings.Index(source, "=") == 0 { - return "", "", fmt.Errorf("invalid literal source %v, expected key=value", source) - } - // split after the first equal (so values can have the = character) - items := strings.SplitN(source, "=", 2) - if len(items) != 2 { - return "", "", fmt.Errorf("invalid literal source %v, expected key=value", source) - } - return items[0], strings.Trim(items[1], "\"'"), nil -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret/secretfactory.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret/secretfactory.go deleted file mode 100644 index 97469f6337..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret/secretfactory.go +++ /dev/null @@ -1,106 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package configmapandsecret - -import ( - "fmt" - "strings" - - "github.com/pkg/errors" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kv" - "sigs.k8s.io/kustomize/pkg/ifc" - "sigs.k8s.io/kustomize/pkg/types" -) - -// SecretFactory makes Secrets. -type SecretFactory struct { - ldr ifc.Loader -} - -// NewSecretFactory returns a new SecretFactory. -func NewSecretFactory(ldr ifc.Loader) *SecretFactory { - return &SecretFactory{ldr: ldr} -} - -func (f *SecretFactory) makeFreshSecret(args *types.SecretArgs) *corev1.Secret { - s := &corev1.Secret{} - s.APIVersion = "v1" - s.Kind = "Secret" - s.Name = args.Name - s.Namespace = args.Namespace - s.Type = corev1.SecretType(args.Type) - if s.Type == "" { - s.Type = corev1.SecretTypeOpaque - } - s.Data = map[string][]byte{} - return s -} - -// MakeSecret returns a new secret. -func (f *SecretFactory) MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (*corev1.Secret, error) { - var all []kv.Pair - var err error - s := f.makeFreshSecret(args) - - pairs, err := keyValuesFromEnvFile(f.ldr, args.EnvSource) - if err != nil { - return nil, errors.Wrap(err, fmt.Sprintf( - "env source file: %s", - args.EnvSource)) - } - all = append(all, pairs...) - - pairs, err = keyValuesFromLiteralSources(args.LiteralSources) - if err != nil { - return nil, errors.Wrap(err, fmt.Sprintf( - "literal sources %v", args.LiteralSources)) - } - all = append(all, pairs...) - - pairs, err = keyValuesFromFileSources(f.ldr, args.FileSources) - if err != nil { - return nil, errors.Wrap(err, fmt.Sprintf( - "file sources: %v", args.FileSources)) - } - all = append(all, pairs...) - - for _, p := range all { - err = addKvToSecret(s, p.Key, p.Value) - if err != nil { - return nil, err - } - } - if options != nil { - s.SetLabels(options.Labels) - s.SetAnnotations(options.Annotations) - } - return s, nil -} - -func addKvToSecret(secret *corev1.Secret, keyName, data string) error { - // Note, the rules for SecretKeys keys are the exact same as the ones for ConfigMap. - if errs := validation.IsConfigMapKey(keyName); len(errs) != 0 { - return fmt.Errorf("%q is not a valid key name for a Secret: %s", keyName, strings.Join(errs, ";")) - } - if _, entryExists := secret.Data[keyName]; entryExists { - return fmt.Errorf("cannot add key %s, another key by that name already exists", keyName) - } - secret.Data[keyName] = []byte(data) - return nil -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/doc.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/doc.go deleted file mode 100644 index c98cb8d680..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/doc.go +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// It's possible that kustomize's features will be vendored into -// the kubernetes/kubernetes repo and made available to kubectl -// commands, while at the same time the kustomize program will -// continue to exist as an independent CLI. Vendoring snapshots -// would be taken just before a kubectl release. -// -// This creates a problem in that freestanding-kustomize depends on -// (for example): -// -// https://github.com/kubernetes/apimachinery/ -// tree/master/pkg/util/yaml -// -// It vendors that package into -// sigs.k8s.io/kustomize/vendor/k8s.io/apimachinery/ -// -// Whereas kubectl-kustomize would have to depend on the "staging" -// version of this code, located at -// -// https://github.com/kubernetes/kubernetes/ -// blob/master/staging/src/k8s.io/apimachinery/pkg/util/yaml -// -// which is "vendored" via symlinks: -// k8s.io/kubernetes/vendor/k8s.io/apimachinery -// is a symlink to -// ../../staging/src/k8s.io/apimachinery -// -// The staging version is the canonical, under-development -// version of the code that kubectl depends on, whereas the packages -// at kubernetes/apimachinery are periodic snapshots of staging made -// for outside tools to depend on. -// -// apimachinery isn't the only package that poses this problem, just -// using it as a specific example. -// -// The kubectl binary cannot vendor in kustomize code that in -// turn vendors in the non-staging packages. -// -// One way to fix some of this would be to copy code - a hard fork. -// This has all the problems associated with a hard forking. -// -// Another way would be to break the kustomize repo into three: -// -// (1) kustomize - repo with the main() function, -// vendoring (2) and (3). -// -// (2) kustomize-libs - packages used by (1) with no -// apimachinery dependence. -// -// (3) kustomize-k8sdeps - A thin code layer that depends -// on (vendors) apimachinery to provide thin implementations -// to interfaces used in (2). -// -// The kubectl repo would then vendor from (2) only, and have -// a local implementation of (3). With that in mind, it's clear -// that (3) doesn't have to be a repo; the kustomize version of -// the thin layer can live directly in (1). -// -// This package is the code in (3), meant for kustomize. - -package k8sdeps diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/factory.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/factory.go deleted file mode 100644 index a83b4bdaae..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/factory.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package k8sdeps provides kustomize factory with k8s dependencies -package k8sdeps - -import ( - "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct" - "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer" - "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator" - "sigs.k8s.io/kustomize/pkg/factory" -) - -// NewFactory creates an instance of KustFactory using k8sdeps factories -func NewFactory() *factory.KustFactory { - return factory.NewKustFactory( - kunstruct.NewKunstructuredFactoryImpl(), - validator.NewKustValidator(), - transformer.NewFactoryImpl(), - ) -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct/factory.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct/factory.go deleted file mode 100644 index a1dec31691..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct/factory.go +++ /dev/null @@ -1,118 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package kunstruct - -import ( - "bytes" - "fmt" - "io" - "strings" - - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/util/yaml" - "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret" - "sigs.k8s.io/kustomize/pkg/ifc" - "sigs.k8s.io/kustomize/pkg/types" -) - -// KunstructuredFactoryImpl hides construction using apimachinery types. -type KunstructuredFactoryImpl struct { - cmFactory *configmapandsecret.ConfigMapFactory - secretFactory *configmapandsecret.SecretFactory -} - -var _ ifc.KunstructuredFactory = &KunstructuredFactoryImpl{} - -// NewKunstructuredFactoryImpl returns a factory. -func NewKunstructuredFactoryImpl() ifc.KunstructuredFactory { - return &KunstructuredFactoryImpl{} -} - -// SliceFromBytes returns a slice of Kunstructured. -func (kf *KunstructuredFactoryImpl) SliceFromBytes( - in []byte) ([]ifc.Kunstructured, error) { - decoder := yaml.NewYAMLOrJSONDecoder(bytes.NewReader(in), 1024) - var result []ifc.Kunstructured - var err error - for err == nil || isEmptyYamlError(err) { - var out unstructured.Unstructured - err = decoder.Decode(&out) - if err == nil { - if len(out.Object) == 0 { - continue - } - err = kf.validate(out) - if err != nil { - return nil, err - } - result = append(result, &UnstructAdapter{Unstructured: out}) - } - } - if err != io.EOF { - return nil, err - } - return result, nil -} - -func isEmptyYamlError(err error) bool { - return strings.Contains(err.Error(), "is missing in 'null'") -} - -// FromMap returns an instance of Kunstructured. -func (kf *KunstructuredFactoryImpl) FromMap( - m map[string]interface{}) ifc.Kunstructured { - return &UnstructAdapter{Unstructured: unstructured.Unstructured{Object: m}} -} - -// MakeConfigMap returns an instance of Kunstructured for ConfigMap -func (kf *KunstructuredFactoryImpl) MakeConfigMap(args *types.ConfigMapArgs, options *types.GeneratorOptions) (ifc.Kunstructured, error) { - cm, err := kf.cmFactory.MakeConfigMap(args, options) - if err != nil { - return nil, err - } - return NewKunstructuredFromObject(cm) -} - -// MakeSecret returns an instance of Kunstructured for Secret -func (kf *KunstructuredFactoryImpl) MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (ifc.Kunstructured, error) { - sec, err := kf.secretFactory.MakeSecret(args, options) - if err != nil { - return nil, err - } - return NewKunstructuredFromObject(sec) -} - -// Set sets loader -func (kf *KunstructuredFactoryImpl) Set(ldr ifc.Loader) { - kf.cmFactory = configmapandsecret.NewConfigMapFactory(ldr) - kf.secretFactory = configmapandsecret.NewSecretFactory(ldr) -} - -// validate validates that u has kind and name -// except for kind `List`, which doesn't require a name -func (kf *KunstructuredFactoryImpl) validate(u unstructured.Unstructured) error { - kind := u.GetKind() - if kind == "" { - return fmt.Errorf("missing kind in object %v", u) - } else if strings.HasSuffix(kind, "List") { - return nil - } - if u.GetName() == "" { - return fmt.Errorf("missing metadata.name in object %v", u) - } - return nil -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct/helper.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct/helper.go deleted file mode 100644 index 0675b961de..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct/helper.go +++ /dev/null @@ -1,71 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package kunstruct provides unstructured from api machinery and factory for creating unstructured -package kunstruct - -import ( - "fmt" - "strings" -) - -func parseFields(path string) ([]string, error) { - if !strings.Contains(path, "[") { - return strings.Split(path, "."), nil - } - - var fields []string - start := 0 - insideParentheses := false - for i := range path { - switch path[i] { - case '.': - if !insideParentheses { - fields = append(fields, path[start:i]) - start = i + 1 - } - case '[': - if !insideParentheses { - if i == start { - start = i + 1 - } else { - fields = append(fields, path[start:i]) - start = i + 1 - } - insideParentheses = true - } else { - return nil, fmt.Errorf("nested parentheses are not allowed: %s", path) - } - case ']': - if insideParentheses { - fields = append(fields, path[start:i]) - start = i + 1 - insideParentheses = false - } else { - return nil, fmt.Errorf("invalid field path %s", path) - } - } - } - if start < len(path)-1 { - fields = append(fields, path[start:]) - } - for i, f := range fields { - if strings.HasPrefix(f, "\"") || strings.HasPrefix(f, "'") { - fields[i] = strings.Trim(f, "\"'") - } - } - return fields, nil -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct/kunstruct.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct/kunstruct.go deleted file mode 100644 index 5ad306bf56..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct/kunstruct.go +++ /dev/null @@ -1,92 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package kunstruct provides unstructured from api machinery and factory for creating unstructured -package kunstruct - -import ( - "encoding/json" - "fmt" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - "sigs.k8s.io/kustomize/pkg/gvk" - "sigs.k8s.io/kustomize/pkg/ifc" -) - -var _ ifc.Kunstructured = &UnstructAdapter{} - -// UnstructAdapter wraps unstructured.Unstructured from -// https://github.com/kubernetes/apimachinery/blob/master/ -// pkg/apis/meta/v1/unstructured/unstructured.go -// to isolate dependence on apimachinery. -type UnstructAdapter struct { - unstructured.Unstructured -} - -// NewKunstructuredFromObject returns a new instance of Kunstructured. -func NewKunstructuredFromObject(obj runtime.Object) (ifc.Kunstructured, error) { - // Convert obj to a byte stream, then convert that to JSON (Unstructured). - marshaled, err := json.Marshal(obj) - if err != nil { - return &UnstructAdapter{}, err - } - var u unstructured.Unstructured - err = u.UnmarshalJSON(marshaled) - // creationTimestamp always 'null', remove it - u.SetCreationTimestamp(metav1.Time{}) - return &UnstructAdapter{Unstructured: u}, err -} - -// GetGvk returns the Gvk name of the object. -func (fs *UnstructAdapter) GetGvk() gvk.Gvk { - x := fs.GroupVersionKind() - return gvk.Gvk{ - Group: x.Group, - Version: x.Version, - Kind: x.Kind, - } -} - -// Copy provides a copy behind an interface. -func (fs *UnstructAdapter) Copy() ifc.Kunstructured { - return &UnstructAdapter{*fs.DeepCopy()} -} - -// Map returns the unstructured content map. -func (fs *UnstructAdapter) Map() map[string]interface{} { - return fs.Object -} - -// SetMap overrides the unstructured content map. -func (fs *UnstructAdapter) SetMap(m map[string]interface{}) { - fs.Object = m -} - -// GetFieldValue returns value at the given fieldpath. -func (fs *UnstructAdapter) GetFieldValue(path string) (string, error) { - fields, err := parseFields(path) - if err != nil { - return "", err - } - s, found, err := unstructured.NestedString( - fs.UnstructuredContent(), fields...) - if found || err != nil { - return s, err - } - return "", fmt.Errorf("no field named '%s'", path) -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kv/kv.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kv/kv.go deleted file mode 100644 index 27b8b3431e..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kv/kv.go +++ /dev/null @@ -1,102 +0,0 @@ -/* -Copyright 2019 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. -*/ - -package kv - -import ( - "bufio" - "bytes" - "fmt" - "os" - "strings" - "unicode" - "unicode/utf8" - - "k8s.io/apimachinery/pkg/util/validation" -) - -// Pair represents a pair. -type Pair struct { - Key string - Value string -} - -var utf8bom = []byte{0xEF, 0xBB, 0xBF} - -// KeyValuesFromLines parses given content in to a list of key-value pairs. -func KeyValuesFromLines(content []byte) ([]Pair, error) { - var kvs []Pair - - scanner := bufio.NewScanner(bytes.NewReader(content)) - currentLine := 0 - for scanner.Scan() { - // Process the current line, retrieving a key/value pair if - // possible. - scannedBytes := scanner.Bytes() - kv, err := KeyValuesFromLine(scannedBytes, currentLine) - if err != nil { - return nil, err - } - currentLine++ - - if len(kv.Key) == 0 { - // no key means line was empty or a comment - continue - } - - kvs = append(kvs, kv) - } - return kvs, nil -} - -// KeyValuesFromLine returns a kv with blank key if the line is empty or a comment. -// The value will be retrieved from the environment if necessary. -func KeyValuesFromLine(line []byte, currentLine int) (Pair, error) { - kv := Pair{} - - if !utf8.Valid(line) { - return kv, fmt.Errorf("line %d has invalid utf8 bytes : %v", line, string(line)) - } - - // We trim UTF8 BOM from the first line of the file but no others - if currentLine == 0 { - line = bytes.TrimPrefix(line, utf8bom) - } - - // trim the line from all leading whitespace first - line = bytes.TrimLeftFunc(line, unicode.IsSpace) - - // If the line is empty or a comment, we return a blank key/value pair. - if len(line) == 0 || line[0] == '#' { - return kv, nil - } - - data := strings.SplitN(string(line), "=", 2) - key := data[0] - if errs := validation.IsEnvVarName(key); len(errs) != 0 { - return kv, fmt.Errorf("%q is not a valid key name: %s", key, strings.Join(errs, ";")) - } - - if len(data) == 2 { - kv.Value = data[1] - } else { - // No value (no `=` in the line) is a signal to obtain the value - // from the environment. - kv.Value = os.Getenv(key) - } - kv.Key = key - return kv, nil -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/factory.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/factory.go deleted file mode 100644 index bc435b3797..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/factory.go +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package transformer provides transformer factory -package transformer - -import ( - "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/hash" - "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch" - "sigs.k8s.io/kustomize/pkg/resource" - "sigs.k8s.io/kustomize/pkg/transformers" -) - -// FactoryImpl makes patch transformer and name hash transformer -type FactoryImpl struct{} - -// NewFactoryImpl makes a new factoryImpl instance -func NewFactoryImpl() *FactoryImpl { - return &FactoryImpl{} -} - -// MakePatchTransformer makes a new patch transformer -func (p *FactoryImpl) MakePatchTransformer(slice []*resource.Resource, rf *resource.Factory) (transformers.Transformer, error) { - return patch.NewPatchTransformer(slice, rf) -} - -// MakeHashTransformer makes a new name hash transformer -func (p *FactoryImpl) MakeHashTransformer() transformers.Transformer { - return hash.NewNameHashTransformer() -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/hash/hash.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/hash/hash.go deleted file mode 100644 index 85bf1e731c..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/hash/hash.go +++ /dev/null @@ -1,184 +0,0 @@ -/* -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. -*/ - -package hash - -import ( - "crypto/sha256" - "encoding/json" - "fmt" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" -) - -// KustHash compute hash for unstructured objects -type KustHash struct{} - -// NewKustHash returns a KustHash object -func NewKustHash() *KustHash { - return &KustHash{} -} - -// Hash returns a hash of either a ConfigMap or a Secret -func (h *KustHash) Hash(m map[string]interface{}) (string, error) { - u := unstructured.Unstructured{ - Object: m, - } - kind := u.GetKind() - switch kind { - case "ConfigMap": - cm, err := unstructuredToConfigmap(u) - if err != nil { - return "", err - } - return ConfigMapHash(cm) - case "Secret": - sec, err := unstructuredToSecret(u) - - if err != nil { - return "", err - } - return SecretHash(sec) - default: - return "", fmt.Errorf("type %s is supported for hashing in %v", kind, m) - } -} - -// ConfigMapHash returns a hash of the ConfigMap. -// The Data, Kind, and Name are taken into account. -func ConfigMapHash(cm *v1.ConfigMap) (string, error) { - encoded, err := encodeConfigMap(cm) - if err != nil { - return "", err - } - h, err := encodeHash(hash(encoded)) - if err != nil { - return "", err - } - return h, nil -} - -// SecretHash returns a hash of the Secret. -// The Data, Kind, Name, and Type are taken into account. -func SecretHash(sec *v1.Secret) (string, error) { - encoded, err := encodeSecret(sec) - if err != nil { - return "", err - } - h, err := encodeHash(hash(encoded)) - if err != nil { - return "", err - } - return h, nil -} - -// encodeConfigMap encodes a ConfigMap. -// Data, Kind, and Name are taken into account. -func encodeConfigMap(cm *v1.ConfigMap) (string, error) { - // json.Marshal sorts the keys in a stable order in the encoding - m := map[string]interface{}{ - "kind": "ConfigMap", - "name": cm.Name, - "data": cm.Data, - } - if cm.Immutable != nil { - m["immutable"] = *cm.Immutable - } - if len(cm.BinaryData) > 0 { - m["binaryData"] = cm.BinaryData - } - data, err := json.Marshal(m) - if err != nil { - return "", err - } - return string(data), nil -} - -// encodeSecret encodes a Secret. -// Data, Kind, Name, and Type are taken into account. -func encodeSecret(sec *v1.Secret) (string, error) { - // json.Marshal sorts the keys in a stable order in the encoding - m := map[string]interface{}{ - "kind": "Secret", - "type": sec.Type, - "name": sec.Name, - "data": sec.Data, - } - if sec.Immutable != nil { - m["immutable"] = *sec.Immutable - } - data, err := json.Marshal(m) - if err != nil { - return "", err - } - return string(data), nil -} - -// encodeHash extracts the first 40 bits of the hash from the hex string -// (1 hex char represents 4 bits), and then maps vowels and vowel-like hex -// characters to consonants to prevent bad words from being formed (the theory -// is that no vowels makes it really hard to make bad words). Since the string -// is hex, the only vowels it can contain are 'a' and 'e'. -// We picked some arbitrary consonants to map to from the same character set as GenerateName. -// See: https://github.com/kubernetes/apimachinery/blob/dc1f89aff9a7509782bde3b68824c8043a3e58cc/pkg/util/rand/rand.go#L75 -// If the hex string contains fewer than ten characters, returns an error. -func encodeHash(hex string) (string, error) { - if len(hex) < 10 { - return "", fmt.Errorf("the hex string must contain at least 10 characters") - } - enc := []rune(hex[:10]) - for i := range enc { - switch enc[i] { - case '0': - enc[i] = 'g' - case '1': - enc[i] = 'h' - case '3': - enc[i] = 'k' - case 'a': - enc[i] = 'm' - case 'e': - enc[i] = 't' - } - } - return string(enc), nil -} - -// hash hashes `data` with sha256 and returns the hex string -func hash(data string) string { - return fmt.Sprintf("%x", sha256.Sum256([]byte(data))) -} - -func unstructuredToConfigmap(u unstructured.Unstructured) (*v1.ConfigMap, error) { - marshaled, err := json.Marshal(u.Object) - if err != nil { - return nil, err - } - var out v1.ConfigMap - err = json.Unmarshal(marshaled, &out) - return &out, err -} - -func unstructuredToSecret(u unstructured.Unstructured) (*v1.Secret, error) { - marshaled, err := json.Marshal(u.Object) - if err != nil { - return nil, err - } - var out v1.Secret - err = json.Unmarshal(marshaled, &out) - return &out, err -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/hash/namehash.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/hash/namehash.go deleted file mode 100644 index a52072e8ad..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/hash/namehash.go +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package hash - -import ( - "fmt" - - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/transformers" -) - -type nameHashTransformer struct{} - -var _ transformers.Transformer = &nameHashTransformer{} - -// NewNameHashTransformer construct a nameHashTransformer. -func NewNameHashTransformer() transformers.Transformer { - return &nameHashTransformer{} -} - -// Transform appends hash to generated resources. -func (o *nameHashTransformer) Transform(m resmap.ResMap) error { - for _, res := range m { - if res.NeedHashSuffix() { - h, err := NewKustHash().Hash(res.Map()) - if err != nil { - return err - } - res.SetName(fmt.Sprintf("%s-%s", res.GetName(), h)) - } - } - return nil -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch/patch.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch/patch.go deleted file mode 100644 index 357f3dabae..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch/patch.go +++ /dev/null @@ -1,174 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package patch - -import ( - "encoding/json" - "fmt" - - "github.com/evanphx/json-patch" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/strategicpatch" - "k8s.io/client-go/kubernetes/scheme" - "sigs.k8s.io/kustomize/pkg/gvk" - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/resource" - "sigs.k8s.io/kustomize/pkg/transformers" -) - -// patchTransformer applies patches. -type patchTransformer struct { - patches []*resource.Resource - rf *resource.Factory -} - -var _ transformers.Transformer = &patchTransformer{} - -// NewPatchTransformer constructs a patchTransformer. -func NewPatchTransformer( - slice []*resource.Resource, rf *resource.Factory) (transformers.Transformer, error) { - if len(slice) == 0 { - return transformers.NewNoOpTransformer(), nil - } - return &patchTransformer{patches: slice, rf: rf}, nil -} - -// Transform apply the patches on top of the base resources. -func (pt *patchTransformer) Transform(baseResourceMap resmap.ResMap) error { - // Merge and then index the patches by Id. - patches, err := pt.mergePatches() - if err != nil { - return err - } - - // Strategic merge the resources exist in both base and patches. - for _, patch := range patches { - // Merge patches with base resource. - id := patch.Id() - matchedIds := baseResourceMap.GetMatchingIds(id.GvknEquals) - if len(matchedIds) == 0 { - return fmt.Errorf("failed to find an object with %s to apply the patch", id.GvknString()) - } - if len(matchedIds) > 1 { - return fmt.Errorf("found multiple objects %#v targeted by patch %#v (ambiguous)", matchedIds, id) - } - id = matchedIds[0] - base := baseResourceMap[id] - merged := map[string]interface{}{} - versionedObj, err := scheme.Scheme.New(toSchemaGvk(id.Gvk())) - baseName := base.GetName() - switch { - case runtime.IsNotRegisteredError(err): - // Use JSON merge patch to handle types w/o schema - baseBytes, err := json.Marshal(base.Map()) - if err != nil { - return err - } - patchBytes, err := json.Marshal(patch.Map()) - if err != nil { - return err - } - mergedBytes, err := jsonpatch.MergePatch(baseBytes, patchBytes) - if err != nil { - return err - } - err = json.Unmarshal(mergedBytes, &merged) - if err != nil { - return err - } - case err != nil: - return err - default: - // Use Strategic-Merge-Patch to handle types w/ schema - // TODO: Change this to use the new Merge package. - // Store the name of the base object, because this name may have been munged. - // Apply this name to the patched object. - lookupPatchMeta, err := strategicpatch.NewPatchMetaFromStruct(versionedObj) - if err != nil { - return err - } - merged, err = strategicpatch.StrategicMergeMapPatchUsingLookupPatchMeta( - base.Map(), - patch.Map(), - lookupPatchMeta) - if err != nil { - return err - } - } - base.SetName(baseName) - baseResourceMap[id].SetMap(merged) - } - return nil -} - -// mergePatches merge and index patches by Id. -// It errors out if there is conflict between patches. -func (pt *patchTransformer) mergePatches() (resmap.ResMap, error) { - rc := resmap.ResMap{} - for ix, patch := range pt.patches { - id := patch.Id() - existing, found := rc[id] - if !found { - rc[id] = patch - continue - } - - versionedObj, err := scheme.Scheme.New(toSchemaGvk(id.Gvk())) - if err != nil && !runtime.IsNotRegisteredError(err) { - return nil, err - } - var cd conflictDetector - if err != nil { - cd = newJMPConflictDetector(pt.rf) - } else { - cd, err = newSMPConflictDetector(versionedObj, pt.rf) - if err != nil { - return nil, err - } - } - - conflict, err := cd.hasConflict(existing, patch) - if err != nil { - return nil, err - } - if conflict { - conflictingPatch, err := cd.findConflict(ix, pt.patches) - if err != nil { - return nil, err - } - return nil, fmt.Errorf( - "conflict between %#v and %#v", - conflictingPatch.Map(), patch.Map()) - } - merged, err := cd.mergePatches(existing, patch) - if err != nil { - return nil, err - } - rc[id] = merged - } - return rc, nil -} - -// toSchemaGvk converts to a schema.GroupVersionKind. -func toSchemaGvk(x gvk.Gvk) schema.GroupVersionKind { - return schema.GroupVersionKind{ - Group: x.Group, - Version: x.Version, - Kind: x.Kind, - } -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch/patchconflictdetector.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch/patchconflictdetector.go deleted file mode 100644 index 10353c77ff..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch/patchconflictdetector.go +++ /dev/null @@ -1,137 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package patch - -import ( - "encoding/json" - - "github.com/evanphx/json-patch" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/mergepatch" - "k8s.io/apimachinery/pkg/util/strategicpatch" - "sigs.k8s.io/kustomize/pkg/resource" -) - -type conflictDetector interface { - hasConflict(patch1, patch2 *resource.Resource) (bool, error) - findConflict(conflictingPatchIdx int, patches []*resource.Resource) (*resource.Resource, error) - mergePatches(patch1, patch2 *resource.Resource) (*resource.Resource, error) -} - -type jsonMergePatch struct { - rf *resource.Factory -} - -var _ conflictDetector = &jsonMergePatch{} - -func newJMPConflictDetector(rf *resource.Factory) conflictDetector { - return &jsonMergePatch{rf: rf} -} - -func (jmp *jsonMergePatch) hasConflict( - patch1, patch2 *resource.Resource) (bool, error) { - return mergepatch.HasConflicts(patch1.Map(), patch2.Map()) -} - -func (jmp *jsonMergePatch) findConflict( - conflictingPatchIdx int, patches []*resource.Resource) (*resource.Resource, error) { - for i, patch := range patches { - if i == conflictingPatchIdx { - continue - } - if !patches[conflictingPatchIdx].Id().GvknEquals(patch.Id()) { - continue - } - conflict, err := mergepatch.HasConflicts( - patch.Map(), - patches[conflictingPatchIdx].Map()) - if err != nil { - return nil, err - } - if conflict { - return patch, nil - } - } - return nil, nil -} - -func (jmp *jsonMergePatch) mergePatches( - patch1, patch2 *resource.Resource) (*resource.Resource, error) { - baseBytes, err := json.Marshal(patch1.Map()) - if err != nil { - return nil, err - } - patchBytes, err := json.Marshal(patch2.Map()) - if err != nil { - return nil, err - } - mergedBytes, err := jsonpatch.MergeMergePatches(baseBytes, patchBytes) - if err != nil { - return nil, err - } - mergedMap := make(map[string]interface{}) - err = json.Unmarshal(mergedBytes, &mergedMap) - return jmp.rf.FromMap(mergedMap), err -} - -type strategicMergePatch struct { - lookupPatchMeta strategicpatch.LookupPatchMeta - rf *resource.Factory -} - -var _ conflictDetector = &strategicMergePatch{} - -func newSMPConflictDetector( - versionedObj runtime.Object, - rf *resource.Factory) (conflictDetector, error) { - lookupPatchMeta, err := strategicpatch.NewPatchMetaFromStruct(versionedObj) - return &strategicMergePatch{lookupPatchMeta: lookupPatchMeta, rf: rf}, err -} - -func (smp *strategicMergePatch) hasConflict(p1, p2 *resource.Resource) (bool, error) { - return strategicpatch.MergingMapsHaveConflicts( - p1.Map(), p2.Map(), smp.lookupPatchMeta) -} - -func (smp *strategicMergePatch) findConflict( - conflictingPatchIdx int, patches []*resource.Resource) (*resource.Resource, error) { - for i, patch := range patches { - if i == conflictingPatchIdx { - continue - } - if !patches[conflictingPatchIdx].Id().GvknEquals(patch.Id()) { - continue - } - conflict, err := strategicpatch.MergingMapsHaveConflicts( - patch.Map(), - patches[conflictingPatchIdx].Map(), - smp.lookupPatchMeta) - if err != nil { - return nil, err - } - if conflict { - return patch, nil - } - } - return nil, nil -} - -func (smp *strategicMergePatch) mergePatches(patch1, patch2 *resource.Resource) (*resource.Resource, error) { - mergeJSONMap, err := strategicpatch.MergeStrategicMergeMapPatchUsingLookupPatchMeta( - smp.lookupPatchMeta, patch1.Map(), patch2.Map()) - return smp.rf.FromMap(mergeJSONMap), err -} diff --git a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator/validators.go b/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator/validators.go deleted file mode 100644 index 563e8d6b9c..0000000000 --- a/vendor/k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator/validators.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package validator provides functions to validate labels, annotations, namespace using apimachinery -package validator - -import ( - "errors" - apivalidation "k8s.io/apimachinery/pkg/api/validation" - v1validation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" - "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -// KustValidator validates Labels and annotations by apimachinery -type KustValidator struct{} - -// NewKustValidator returns a KustValidator object -func NewKustValidator() *KustValidator { - return &KustValidator{} -} - -// MakeAnnotationValidator returns a MapValidatorFunc using apimachinery. -func (v *KustValidator) MakeAnnotationValidator() func(map[string]string) error { - return func(x map[string]string) error { - errs := apivalidation.ValidateAnnotations(x, field.NewPath("field")) - if len(errs) > 0 { - return errors.New(errs.ToAggregate().Error()) - } - return nil - } -} - -// MakeLabelValidator returns a MapValidatorFunc using apimachinery. -func (v *KustValidator) MakeLabelValidator() func(map[string]string) error { - return func(x map[string]string) error { - errs := v1validation.ValidateLabels(x, field.NewPath("field")) - if len(errs) > 0 { - return errors.New(errs.ToAggregate().Error()) - } - return nil - } -} - -// ValidateNamespace validates a string is a valid namespace using apimachinery. -func (v *KustValidator) ValidateNamespace(s string) []string { - return validation.IsDNS1123Label(s) -} diff --git a/vendor/k8s.io/cli-runtime/pkg/printers/managedfields.go b/vendor/k8s.io/cli-runtime/pkg/printers/managedfields.go new file mode 100644 index 0000000000..cab54d0584 --- /dev/null +++ b/vendor/k8s.io/cli-runtime/pkg/printers/managedfields.go @@ -0,0 +1,59 @@ +/* +Copyright 2021 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. +*/ + +package printers + +import ( + "io" + + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" +) + +// OmitManagedFieldsPrinter wraps an existing printer and omits the managed fields from the object +// before printing it. +type OmitManagedFieldsPrinter struct { + Delegate ResourcePrinter +} + +var _ ResourcePrinter = (*OmitManagedFieldsPrinter)(nil) + +func omitManagedFields(o runtime.Object) runtime.Object { + a, err := meta.Accessor(o) + if err != nil { + // The object is not a `metav1.Object`, ignore it. + return o + } + a.SetManagedFields(nil) + return o +} + +// PrintObj copies the object and omits the managed fields from the copied object before printing it. +func (p *OmitManagedFieldsPrinter) PrintObj(obj runtime.Object, w io.Writer) error { + if obj == nil { + return p.Delegate.PrintObj(obj, w) + } + if meta.IsListType(obj) { + obj = obj.DeepCopyObject() + _ = meta.EachListItem(obj, func(item runtime.Object) error { + omitManagedFields(item) + return nil + }) + } else if _, err := meta.Accessor(obj); err == nil { + obj = omitManagedFields(obj.DeepCopyObject()) + } + return p.Delegate.PrintObj(obj, w) +} diff --git a/vendor/k8s.io/cli-runtime/pkg/printers/tableprinter.go b/vendor/k8s.io/cli-runtime/pkg/printers/tableprinter.go index 56bd05aa0d..048cb66a2b 100644 --- a/vendor/k8s.io/cli-runtime/pkg/printers/tableprinter.go +++ b/vendor/k8s.io/cli-runtime/pkg/printers/tableprinter.go @@ -94,9 +94,8 @@ func printHeader(columnNames []string, w io.Writer) error { // PrintObj prints the obj in a human-friendly format according to the type of the obj. func (h *HumanReadablePrinter) PrintObj(obj runtime.Object, output io.Writer) error { - w, found := output.(*tabwriter.Writer) - if !found { - w = GetNewTabWriter(output) + if _, found := output.(*tabwriter.Writer); !found { + w := GetNewTabWriter(output) output = w defer w.Flush() } diff --git a/vendor/k8s.io/cli-runtime/pkg/resource/builder.go b/vendor/k8s.io/cli-runtime/pkg/resource/builder.go index 5ea5016985..a8ebf6410c 100644 --- a/vendor/k8s.io/cli-runtime/pkg/resource/builder.go +++ b/vendor/k8s.io/cli-runtime/pkg/resource/builder.go @@ -38,6 +38,7 @@ import ( "k8s.io/client-go/discovery" "k8s.io/client-go/rest" "k8s.io/client-go/restmapper" + "sigs.k8s.io/kustomize/api/filesys" ) var FileExtensions = []string{".json", ".yaml", ".yml"} @@ -258,8 +259,14 @@ func (b *Builder) FilenameParam(enforceNamespace bool, filenameOptions *Filename } } if filenameOptions.Kustomize != "" { - b.paths = append(b.paths, &KustomizeVisitor{filenameOptions.Kustomize, - NewStreamVisitor(nil, b.mapper, filenameOptions.Kustomize, b.schema)}) + b.paths = append( + b.paths, + &KustomizeVisitor{ + mapper: b.mapper, + dirPath: filenameOptions.Kustomize, + schema: b.schema, + fSys: filesys.MakeFsOnDisk(), + }) } if enforceNamespace { @@ -839,7 +846,7 @@ func (b *Builder) visitorResult() *Result { return &Result{err: err} } } - return &Result{err: fmt.Errorf("resource(s) were provided, but no name, label selector, or --all flag specified")} + return &Result{err: fmt.Errorf("resource(s) were provided, but no name was specified")} } return &Result{err: missingResourceError} } diff --git a/vendor/k8s.io/cli-runtime/pkg/resource/dry_run_verifier.go b/vendor/k8s.io/cli-runtime/pkg/resource/dry_run_verifier.go index 49ab6f861c..1fb36503a2 100644 --- a/vendor/k8s.io/cli-runtime/pkg/resource/dry_run_verifier.go +++ b/vendor/k8s.io/cli-runtime/pkg/resource/dry_run_verifier.go @@ -27,17 +27,10 @@ import ( "k8s.io/client-go/dynamic" ) -// VerifyDryRun returns nil if a resource group-version-kind supports -// server-side dry-run. Otherwise, an error is returned. -func VerifyDryRun(gvk schema.GroupVersionKind, dynamicClient dynamic.Interface, discoveryClient discovery.DiscoveryInterface) error { - verifier := NewDryRunVerifier(dynamicClient, discoveryClient) - return verifier.HasSupport(gvk) -} - -func NewDryRunVerifier(dynamicClient dynamic.Interface, discoveryClient discovery.DiscoveryInterface) *DryRunVerifier { +func NewDryRunVerifier(dynamicClient dynamic.Interface, openAPIGetter discovery.OpenAPISchemaInterface) *DryRunVerifier { return &DryRunVerifier{ finder: NewCRDFinder(CRDFromDynamic(dynamicClient)), - openAPIGetter: discoveryClient, + openAPIGetter: openAPIGetter, } } diff --git a/vendor/k8s.io/cli-runtime/pkg/resource/kustomizevisitor.go b/vendor/k8s.io/cli-runtime/pkg/resource/kustomizevisitor.go new file mode 100644 index 0000000000..22c9a548d4 --- /dev/null +++ b/vendor/k8s.io/cli-runtime/pkg/resource/kustomizevisitor.go @@ -0,0 +1,54 @@ +/* +Copyright 2019 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. +*/ + +package resource + +import ( + "bytes" + + "sigs.k8s.io/kustomize/api/filesys" + "sigs.k8s.io/kustomize/api/krusty" +) + +// KustomizeVisitor handles kustomization.yaml files. +type KustomizeVisitor struct { + mapper *mapper + schema ContentValidator + // Directory expected to contain a kustomization file. + dirPath string + // File system containing dirPath. + fSys filesys.FileSystem + // Holds result of kustomize build, retained for tests. + yml []byte +} + +// Visit passes the result of a kustomize build to a StreamVisitor. +func (v *KustomizeVisitor) Visit(fn VisitorFunc) error { + kOpts := krusty.MakeDefaultOptions() + kOpts.DoLegacyResourceSort = true + k := krusty.MakeKustomizer(kOpts) + m, err := k.Run(v.fSys, v.dirPath) + if err != nil { + return err + } + v.yml, err = m.AsYaml() + if err != nil { + return err + } + sv := NewStreamVisitor( + bytes.NewReader(v.yml), v.mapper, v.dirPath, v.schema) + return sv.Visit(fn) +} diff --git a/vendor/k8s.io/cli-runtime/pkg/resource/visitor.go b/vendor/k8s.io/cli-runtime/pkg/resource/visitor.go index fbd52e12f2..25d2443465 100644 --- a/vendor/k8s.io/cli-runtime/pkg/resource/visitor.go +++ b/vendor/k8s.io/cli-runtime/pkg/resource/visitor.go @@ -30,9 +30,6 @@ import ( "golang.org/x/text/encoding/unicode" "golang.org/x/text/transform" - - "sigs.k8s.io/kustomize/pkg/fs" - "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -42,7 +39,6 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/apimachinery/pkg/watch" - "k8s.io/cli-runtime/pkg/kustomize" ) const ( @@ -528,24 +524,6 @@ func (v *FileVisitor) Visit(fn VisitorFunc) error { return v.StreamVisitor.Visit(fn) } -// KustomizeVisitor is wrapper around a StreamVisitor, to handle Kustomization directories -type KustomizeVisitor struct { - Path string - *StreamVisitor -} - -// Visit in a KustomizeVisitor gets the output of Kustomize build and save it in the Streamvisitor -func (v *KustomizeVisitor) Visit(fn VisitorFunc) error { - fSys := fs.MakeRealFS() - var out bytes.Buffer - err := kustomize.RunKustomizeBuild(&out, fSys, v.Path) - if err != nil { - return err - } - v.StreamVisitor.Reader = bytes.NewReader(out.Bytes()) - return v.StreamVisitor.Visit(fn) -} - // StreamVisitor reads objects from an io.Reader and walks them. A stream visitor can only be // visited once. // TODO: depends on objects being in JSON format before being passed to decode - need to implement diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhook.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhook.go new file mode 100644 index 0000000000..eba37bafdb --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhook.go @@ -0,0 +1,141 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + admissionregistrationv1 "k8s.io/api/admissionregistration/v1" + metav1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// MutatingWebhookApplyConfiguration represents an declarative configuration of the MutatingWebhook type for use +// with apply. +type MutatingWebhookApplyConfiguration struct { + Name *string `json:"name,omitempty"` + ClientConfig *WebhookClientConfigApplyConfiguration `json:"clientConfig,omitempty"` + Rules []RuleWithOperationsApplyConfiguration `json:"rules,omitempty"` + FailurePolicy *admissionregistrationv1.FailurePolicyType `json:"failurePolicy,omitempty"` + MatchPolicy *admissionregistrationv1.MatchPolicyType `json:"matchPolicy,omitempty"` + NamespaceSelector *metav1.LabelSelectorApplyConfiguration `json:"namespaceSelector,omitempty"` + ObjectSelector *metav1.LabelSelectorApplyConfiguration `json:"objectSelector,omitempty"` + SideEffects *admissionregistrationv1.SideEffectClass `json:"sideEffects,omitempty"` + TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"` + AdmissionReviewVersions []string `json:"admissionReviewVersions,omitempty"` + ReinvocationPolicy *admissionregistrationv1.ReinvocationPolicyType `json:"reinvocationPolicy,omitempty"` +} + +// MutatingWebhookApplyConfiguration constructs an declarative configuration of the MutatingWebhook type for use with +// apply. +func MutatingWebhook() *MutatingWebhookApplyConfiguration { + return &MutatingWebhookApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithName(value string) *MutatingWebhookApplyConfiguration { + b.Name = &value + return b +} + +// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClientConfig field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *MutatingWebhookApplyConfiguration { + b.ClientConfig = value + return b +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *MutatingWebhookApplyConfiguration) WithRules(values ...*RuleWithOperationsApplyConfiguration) *MutatingWebhookApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} + +// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FailurePolicy field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1.FailurePolicyType) *MutatingWebhookApplyConfiguration { + b.FailurePolicy = &value + return b +} + +// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MatchPolicy field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1.MatchPolicyType) *MutatingWebhookApplyConfiguration { + b.MatchPolicy = &value + return b +} + +// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NamespaceSelector field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration { + b.NamespaceSelector = value + return b +} + +// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObjectSelector field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithObjectSelector(value *metav1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration { + b.ObjectSelector = value + return b +} + +// WithSideEffects sets the SideEffects field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SideEffects field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1.SideEffectClass) *MutatingWebhookApplyConfiguration { + b.SideEffects = &value + return b +} + +// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TimeoutSeconds field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *MutatingWebhookApplyConfiguration { + b.TimeoutSeconds = &value + return b +} + +// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field. +func (b *MutatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *MutatingWebhookApplyConfiguration { + for i := range values { + b.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i]) + } + return b +} + +// WithReinvocationPolicy sets the ReinvocationPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReinvocationPolicy field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithReinvocationPolicy(value admissionregistrationv1.ReinvocationPolicyType) *MutatingWebhookApplyConfiguration { + b.ReinvocationPolicy = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhookconfiguration.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhookconfiguration.go new file mode 100644 index 0000000000..6c1658804f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhookconfiguration.go @@ -0,0 +1,259 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apiadmissionregistrationv1 "k8s.io/api/admissionregistration/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// MutatingWebhookConfigurationApplyConfiguration represents an declarative configuration of the MutatingWebhookConfiguration type for use +// with apply. +type MutatingWebhookConfigurationApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Webhooks []MutatingWebhookApplyConfiguration `json:"webhooks,omitempty"` +} + +// MutatingWebhookConfiguration constructs an declarative configuration of the MutatingWebhookConfiguration type for use with +// apply. +func MutatingWebhookConfiguration(name string) *MutatingWebhookConfigurationApplyConfiguration { + b := &MutatingWebhookConfigurationApplyConfiguration{} + b.WithName(name) + b.WithKind("MutatingWebhookConfiguration") + b.WithAPIVersion("admissionregistration.k8s.io/v1") + return b +} + +// ExtractMutatingWebhookConfiguration extracts the applied configuration owned by fieldManager from +// mutatingWebhookConfiguration. If no managedFields are found in mutatingWebhookConfiguration for fieldManager, a +// MutatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// mutatingWebhookConfiguration must be a unmodified MutatingWebhookConfiguration API object that was retrieved from the Kubernetes API. +// ExtractMutatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractMutatingWebhookConfiguration(mutatingWebhookConfiguration *apiadmissionregistrationv1.MutatingWebhookConfiguration, fieldManager string) (*MutatingWebhookConfigurationApplyConfiguration, error) { + b := &MutatingWebhookConfigurationApplyConfiguration{} + err := managedfields.ExtractInto(mutatingWebhookConfiguration, internal.Parser().Type("io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(mutatingWebhookConfiguration.Name) + + b.WithKind("MutatingWebhookConfiguration") + b.WithAPIVersion("admissionregistration.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithKind(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithName(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithSelfLink(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithClusterName(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *MutatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithWebhooks adds the given value to the Webhooks field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Webhooks field. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*MutatingWebhookApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithWebhooks") + } + b.Webhooks = append(b.Webhooks, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rule.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rule.go new file mode 100644 index 0000000000..41d4179df4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rule.go @@ -0,0 +1,76 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/admissionregistration/v1" +) + +// RuleApplyConfiguration represents an declarative configuration of the Rule type for use +// with apply. +type RuleApplyConfiguration struct { + APIGroups []string `json:"apiGroups,omitempty"` + APIVersions []string `json:"apiVersions,omitempty"` + Resources []string `json:"resources,omitempty"` + Scope *v1.ScopeType `json:"scope,omitempty"` +} + +// RuleApplyConfiguration constructs an declarative configuration of the Rule type for use with +// apply. +func Rule() *RuleApplyConfiguration { + return &RuleApplyConfiguration{} +} + +// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIGroups field. +func (b *RuleApplyConfiguration) WithAPIGroups(values ...string) *RuleApplyConfiguration { + for i := range values { + b.APIGroups = append(b.APIGroups, values[i]) + } + return b +} + +// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIVersions field. +func (b *RuleApplyConfiguration) WithAPIVersions(values ...string) *RuleApplyConfiguration { + for i := range values { + b.APIVersions = append(b.APIVersions, values[i]) + } + return b +} + +// WithResources adds the given value to the Resources field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Resources field. +func (b *RuleApplyConfiguration) WithResources(values ...string) *RuleApplyConfiguration { + for i := range values { + b.Resources = append(b.Resources, values[i]) + } + return b +} + +// WithScope sets the Scope field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Scope field is set to the value of the last call. +func (b *RuleApplyConfiguration) WithScope(value v1.ScopeType) *RuleApplyConfiguration { + b.Scope = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rulewithoperations.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rulewithoperations.go new file mode 100644 index 0000000000..59bbb8fe3d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rulewithoperations.go @@ -0,0 +1,84 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/admissionregistration/v1" +) + +// RuleWithOperationsApplyConfiguration represents an declarative configuration of the RuleWithOperations type for use +// with apply. +type RuleWithOperationsApplyConfiguration struct { + Operations []v1.OperationType `json:"operations,omitempty"` + RuleApplyConfiguration `json:",inline"` +} + +// RuleWithOperationsApplyConfiguration constructs an declarative configuration of the RuleWithOperations type for use with +// apply. +func RuleWithOperations() *RuleWithOperationsApplyConfiguration { + return &RuleWithOperationsApplyConfiguration{} +} + +// WithOperations adds the given value to the Operations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Operations field. +func (b *RuleWithOperationsApplyConfiguration) WithOperations(values ...v1.OperationType) *RuleWithOperationsApplyConfiguration { + for i := range values { + b.Operations = append(b.Operations, values[i]) + } + return b +} + +// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIGroups field. +func (b *RuleWithOperationsApplyConfiguration) WithAPIGroups(values ...string) *RuleWithOperationsApplyConfiguration { + for i := range values { + b.APIGroups = append(b.APIGroups, values[i]) + } + return b +} + +// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIVersions field. +func (b *RuleWithOperationsApplyConfiguration) WithAPIVersions(values ...string) *RuleWithOperationsApplyConfiguration { + for i := range values { + b.APIVersions = append(b.APIVersions, values[i]) + } + return b +} + +// WithResources adds the given value to the Resources field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Resources field. +func (b *RuleWithOperationsApplyConfiguration) WithResources(values ...string) *RuleWithOperationsApplyConfiguration { + for i := range values { + b.Resources = append(b.Resources, values[i]) + } + return b +} + +// WithScope sets the Scope field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Scope field is set to the value of the last call. +func (b *RuleWithOperationsApplyConfiguration) WithScope(value v1.ScopeType) *RuleWithOperationsApplyConfiguration { + b.Scope = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/servicereference.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/servicereference.go new file mode 100644 index 0000000000..2cd55d9ea2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/servicereference.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ServiceReferenceApplyConfiguration represents an declarative configuration of the ServiceReference type for use +// with apply. +type ServiceReferenceApplyConfiguration struct { + Namespace *string `json:"namespace,omitempty"` + Name *string `json:"name,omitempty"` + Path *string `json:"path,omitempty"` + Port *int32 `json:"port,omitempty"` +} + +// ServiceReferenceApplyConfiguration constructs an declarative configuration of the ServiceReference type for use with +// apply. +func ServiceReference() *ServiceReferenceApplyConfiguration { + return &ServiceReferenceApplyConfiguration{} +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ServiceReferenceApplyConfiguration) WithNamespace(value string) *ServiceReferenceApplyConfiguration { + b.Namespace = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ServiceReferenceApplyConfiguration) WithName(value string) *ServiceReferenceApplyConfiguration { + b.Name = &value + return b +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *ServiceReferenceApplyConfiguration) WithPath(value string) *ServiceReferenceApplyConfiguration { + b.Path = &value + return b +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *ServiceReferenceApplyConfiguration) WithPort(value int32) *ServiceReferenceApplyConfiguration { + b.Port = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhook.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhook.go new file mode 100644 index 0000000000..d0691de107 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhook.go @@ -0,0 +1,132 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + admissionregistrationv1 "k8s.io/api/admissionregistration/v1" + metav1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ValidatingWebhookApplyConfiguration represents an declarative configuration of the ValidatingWebhook type for use +// with apply. +type ValidatingWebhookApplyConfiguration struct { + Name *string `json:"name,omitempty"` + ClientConfig *WebhookClientConfigApplyConfiguration `json:"clientConfig,omitempty"` + Rules []RuleWithOperationsApplyConfiguration `json:"rules,omitempty"` + FailurePolicy *admissionregistrationv1.FailurePolicyType `json:"failurePolicy,omitempty"` + MatchPolicy *admissionregistrationv1.MatchPolicyType `json:"matchPolicy,omitempty"` + NamespaceSelector *metav1.LabelSelectorApplyConfiguration `json:"namespaceSelector,omitempty"` + ObjectSelector *metav1.LabelSelectorApplyConfiguration `json:"objectSelector,omitempty"` + SideEffects *admissionregistrationv1.SideEffectClass `json:"sideEffects,omitempty"` + TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"` + AdmissionReviewVersions []string `json:"admissionReviewVersions,omitempty"` +} + +// ValidatingWebhookApplyConfiguration constructs an declarative configuration of the ValidatingWebhook type for use with +// apply. +func ValidatingWebhook() *ValidatingWebhookApplyConfiguration { + return &ValidatingWebhookApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithName(value string) *ValidatingWebhookApplyConfiguration { + b.Name = &value + return b +} + +// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClientConfig field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *ValidatingWebhookApplyConfiguration { + b.ClientConfig = value + return b +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *ValidatingWebhookApplyConfiguration) WithRules(values ...*RuleWithOperationsApplyConfiguration) *ValidatingWebhookApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} + +// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FailurePolicy field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1.FailurePolicyType) *ValidatingWebhookApplyConfiguration { + b.FailurePolicy = &value + return b +} + +// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MatchPolicy field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1.MatchPolicyType) *ValidatingWebhookApplyConfiguration { + b.MatchPolicy = &value + return b +} + +// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NamespaceSelector field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration { + b.NamespaceSelector = value + return b +} + +// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObjectSelector field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithObjectSelector(value *metav1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration { + b.ObjectSelector = value + return b +} + +// WithSideEffects sets the SideEffects field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SideEffects field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1.SideEffectClass) *ValidatingWebhookApplyConfiguration { + b.SideEffects = &value + return b +} + +// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TimeoutSeconds field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *ValidatingWebhookApplyConfiguration { + b.TimeoutSeconds = &value + return b +} + +// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field. +func (b *ValidatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *ValidatingWebhookApplyConfiguration { + for i := range values { + b.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhookconfiguration.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhookconfiguration.go new file mode 100644 index 0000000000..f7802f540f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhookconfiguration.go @@ -0,0 +1,259 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apiadmissionregistrationv1 "k8s.io/api/admissionregistration/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ValidatingWebhookConfigurationApplyConfiguration represents an declarative configuration of the ValidatingWebhookConfiguration type for use +// with apply. +type ValidatingWebhookConfigurationApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Webhooks []ValidatingWebhookApplyConfiguration `json:"webhooks,omitempty"` +} + +// ValidatingWebhookConfiguration constructs an declarative configuration of the ValidatingWebhookConfiguration type for use with +// apply. +func ValidatingWebhookConfiguration(name string) *ValidatingWebhookConfigurationApplyConfiguration { + b := &ValidatingWebhookConfigurationApplyConfiguration{} + b.WithName(name) + b.WithKind("ValidatingWebhookConfiguration") + b.WithAPIVersion("admissionregistration.k8s.io/v1") + return b +} + +// ExtractValidatingWebhookConfiguration extracts the applied configuration owned by fieldManager from +// validatingWebhookConfiguration. If no managedFields are found in validatingWebhookConfiguration for fieldManager, a +// ValidatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// validatingWebhookConfiguration must be a unmodified ValidatingWebhookConfiguration API object that was retrieved from the Kubernetes API. +// ExtractValidatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractValidatingWebhookConfiguration(validatingWebhookConfiguration *apiadmissionregistrationv1.ValidatingWebhookConfiguration, fieldManager string) (*ValidatingWebhookConfigurationApplyConfiguration, error) { + b := &ValidatingWebhookConfigurationApplyConfiguration{} + err := managedfields.ExtractInto(validatingWebhookConfiguration, internal.Parser().Type("io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(validatingWebhookConfiguration.Name) + + b.WithKind("ValidatingWebhookConfiguration") + b.WithAPIVersion("admissionregistration.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithKind(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithName(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithSelfLink(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithClusterName(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ValidatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithWebhooks adds the given value to the Webhooks field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Webhooks field. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*ValidatingWebhookApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithWebhooks") + } + b.Webhooks = append(b.Webhooks, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/webhookclientconfig.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/webhookclientconfig.go new file mode 100644 index 0000000000..aa358ae205 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/webhookclientconfig.go @@ -0,0 +1,59 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// WebhookClientConfigApplyConfiguration represents an declarative configuration of the WebhookClientConfig type for use +// with apply. +type WebhookClientConfigApplyConfiguration struct { + URL *string `json:"url,omitempty"` + Service *ServiceReferenceApplyConfiguration `json:"service,omitempty"` + CABundle []byte `json:"caBundle,omitempty"` +} + +// WebhookClientConfigApplyConfiguration constructs an declarative configuration of the WebhookClientConfig type for use with +// apply. +func WebhookClientConfig() *WebhookClientConfigApplyConfiguration { + return &WebhookClientConfigApplyConfiguration{} +} + +// WithURL sets the URL field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the URL field is set to the value of the last call. +func (b *WebhookClientConfigApplyConfiguration) WithURL(value string) *WebhookClientConfigApplyConfiguration { + b.URL = &value + return b +} + +// WithService sets the Service field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Service field is set to the value of the last call. +func (b *WebhookClientConfigApplyConfiguration) WithService(value *ServiceReferenceApplyConfiguration) *WebhookClientConfigApplyConfiguration { + b.Service = value + return b +} + +// WithCABundle adds the given value to the CABundle field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the CABundle field. +func (b *WebhookClientConfigApplyConfiguration) WithCABundle(values ...byte) *WebhookClientConfigApplyConfiguration { + for i := range values { + b.CABundle = append(b.CABundle, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhook.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhook.go new file mode 100644 index 0000000000..ddb728aff8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhook.go @@ -0,0 +1,141 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + admissionregistrationv1beta1 "k8s.io/api/admissionregistration/v1beta1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// MutatingWebhookApplyConfiguration represents an declarative configuration of the MutatingWebhook type for use +// with apply. +type MutatingWebhookApplyConfiguration struct { + Name *string `json:"name,omitempty"` + ClientConfig *WebhookClientConfigApplyConfiguration `json:"clientConfig,omitempty"` + Rules []RuleWithOperationsApplyConfiguration `json:"rules,omitempty"` + FailurePolicy *admissionregistrationv1beta1.FailurePolicyType `json:"failurePolicy,omitempty"` + MatchPolicy *admissionregistrationv1beta1.MatchPolicyType `json:"matchPolicy,omitempty"` + NamespaceSelector *v1.LabelSelectorApplyConfiguration `json:"namespaceSelector,omitempty"` + ObjectSelector *v1.LabelSelectorApplyConfiguration `json:"objectSelector,omitempty"` + SideEffects *admissionregistrationv1beta1.SideEffectClass `json:"sideEffects,omitempty"` + TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"` + AdmissionReviewVersions []string `json:"admissionReviewVersions,omitempty"` + ReinvocationPolicy *admissionregistrationv1beta1.ReinvocationPolicyType `json:"reinvocationPolicy,omitempty"` +} + +// MutatingWebhookApplyConfiguration constructs an declarative configuration of the MutatingWebhook type for use with +// apply. +func MutatingWebhook() *MutatingWebhookApplyConfiguration { + return &MutatingWebhookApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithName(value string) *MutatingWebhookApplyConfiguration { + b.Name = &value + return b +} + +// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClientConfig field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *MutatingWebhookApplyConfiguration { + b.ClientConfig = value + return b +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *MutatingWebhookApplyConfiguration) WithRules(values ...*RuleWithOperationsApplyConfiguration) *MutatingWebhookApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} + +// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FailurePolicy field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1beta1.FailurePolicyType) *MutatingWebhookApplyConfiguration { + b.FailurePolicy = &value + return b +} + +// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MatchPolicy field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1beta1.MatchPolicyType) *MutatingWebhookApplyConfiguration { + b.MatchPolicy = &value + return b +} + +// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NamespaceSelector field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration { + b.NamespaceSelector = value + return b +} + +// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObjectSelector field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithObjectSelector(value *v1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration { + b.ObjectSelector = value + return b +} + +// WithSideEffects sets the SideEffects field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SideEffects field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1beta1.SideEffectClass) *MutatingWebhookApplyConfiguration { + b.SideEffects = &value + return b +} + +// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TimeoutSeconds field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *MutatingWebhookApplyConfiguration { + b.TimeoutSeconds = &value + return b +} + +// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field. +func (b *MutatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *MutatingWebhookApplyConfiguration { + for i := range values { + b.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i]) + } + return b +} + +// WithReinvocationPolicy sets the ReinvocationPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReinvocationPolicy field is set to the value of the last call. +func (b *MutatingWebhookApplyConfiguration) WithReinvocationPolicy(value admissionregistrationv1beta1.ReinvocationPolicyType) *MutatingWebhookApplyConfiguration { + b.ReinvocationPolicy = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhookconfiguration.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhookconfiguration.go new file mode 100644 index 0000000000..47ed1e2522 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhookconfiguration.go @@ -0,0 +1,259 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + admissionregistrationv1beta1 "k8s.io/api/admissionregistration/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// MutatingWebhookConfigurationApplyConfiguration represents an declarative configuration of the MutatingWebhookConfiguration type for use +// with apply. +type MutatingWebhookConfigurationApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Webhooks []MutatingWebhookApplyConfiguration `json:"webhooks,omitempty"` +} + +// MutatingWebhookConfiguration constructs an declarative configuration of the MutatingWebhookConfiguration type for use with +// apply. +func MutatingWebhookConfiguration(name string) *MutatingWebhookConfigurationApplyConfiguration { + b := &MutatingWebhookConfigurationApplyConfiguration{} + b.WithName(name) + b.WithKind("MutatingWebhookConfiguration") + b.WithAPIVersion("admissionregistration.k8s.io/v1beta1") + return b +} + +// ExtractMutatingWebhookConfiguration extracts the applied configuration owned by fieldManager from +// mutatingWebhookConfiguration. If no managedFields are found in mutatingWebhookConfiguration for fieldManager, a +// MutatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// mutatingWebhookConfiguration must be a unmodified MutatingWebhookConfiguration API object that was retrieved from the Kubernetes API. +// ExtractMutatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractMutatingWebhookConfiguration(mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfiguration, fieldManager string) (*MutatingWebhookConfigurationApplyConfiguration, error) { + b := &MutatingWebhookConfigurationApplyConfiguration{} + err := managedfields.ExtractInto(mutatingWebhookConfiguration, internal.Parser().Type("io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(mutatingWebhookConfiguration.Name) + + b.WithKind("MutatingWebhookConfiguration") + b.WithAPIVersion("admissionregistration.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithKind(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithName(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithSelfLink(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithClusterName(value string) *MutatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *MutatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithWebhooks adds the given value to the Webhooks field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Webhooks field. +func (b *MutatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*MutatingWebhookApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithWebhooks") + } + b.Webhooks = append(b.Webhooks, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/rule.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/rule.go new file mode 100644 index 0000000000..21151b9980 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/rule.go @@ -0,0 +1,76 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/admissionregistration/v1beta1" +) + +// RuleApplyConfiguration represents an declarative configuration of the Rule type for use +// with apply. +type RuleApplyConfiguration struct { + APIGroups []string `json:"apiGroups,omitempty"` + APIVersions []string `json:"apiVersions,omitempty"` + Resources []string `json:"resources,omitempty"` + Scope *v1beta1.ScopeType `json:"scope,omitempty"` +} + +// RuleApplyConfiguration constructs an declarative configuration of the Rule type for use with +// apply. +func Rule() *RuleApplyConfiguration { + return &RuleApplyConfiguration{} +} + +// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIGroups field. +func (b *RuleApplyConfiguration) WithAPIGroups(values ...string) *RuleApplyConfiguration { + for i := range values { + b.APIGroups = append(b.APIGroups, values[i]) + } + return b +} + +// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIVersions field. +func (b *RuleApplyConfiguration) WithAPIVersions(values ...string) *RuleApplyConfiguration { + for i := range values { + b.APIVersions = append(b.APIVersions, values[i]) + } + return b +} + +// WithResources adds the given value to the Resources field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Resources field. +func (b *RuleApplyConfiguration) WithResources(values ...string) *RuleApplyConfiguration { + for i := range values { + b.Resources = append(b.Resources, values[i]) + } + return b +} + +// WithScope sets the Scope field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Scope field is set to the value of the last call. +func (b *RuleApplyConfiguration) WithScope(value v1beta1.ScopeType) *RuleApplyConfiguration { + b.Scope = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/rulewithoperations.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/rulewithoperations.go new file mode 100644 index 0000000000..e072edb85a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/rulewithoperations.go @@ -0,0 +1,84 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/admissionregistration/v1beta1" +) + +// RuleWithOperationsApplyConfiguration represents an declarative configuration of the RuleWithOperations type for use +// with apply. +type RuleWithOperationsApplyConfiguration struct { + Operations []v1beta1.OperationType `json:"operations,omitempty"` + RuleApplyConfiguration `json:",inline"` +} + +// RuleWithOperationsApplyConfiguration constructs an declarative configuration of the RuleWithOperations type for use with +// apply. +func RuleWithOperations() *RuleWithOperationsApplyConfiguration { + return &RuleWithOperationsApplyConfiguration{} +} + +// WithOperations adds the given value to the Operations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Operations field. +func (b *RuleWithOperationsApplyConfiguration) WithOperations(values ...v1beta1.OperationType) *RuleWithOperationsApplyConfiguration { + for i := range values { + b.Operations = append(b.Operations, values[i]) + } + return b +} + +// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIGroups field. +func (b *RuleWithOperationsApplyConfiguration) WithAPIGroups(values ...string) *RuleWithOperationsApplyConfiguration { + for i := range values { + b.APIGroups = append(b.APIGroups, values[i]) + } + return b +} + +// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIVersions field. +func (b *RuleWithOperationsApplyConfiguration) WithAPIVersions(values ...string) *RuleWithOperationsApplyConfiguration { + for i := range values { + b.APIVersions = append(b.APIVersions, values[i]) + } + return b +} + +// WithResources adds the given value to the Resources field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Resources field. +func (b *RuleWithOperationsApplyConfiguration) WithResources(values ...string) *RuleWithOperationsApplyConfiguration { + for i := range values { + b.Resources = append(b.Resources, values[i]) + } + return b +} + +// WithScope sets the Scope field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Scope field is set to the value of the last call. +func (b *RuleWithOperationsApplyConfiguration) WithScope(value v1beta1.ScopeType) *RuleWithOperationsApplyConfiguration { + b.Scope = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/servicereference.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/servicereference.go new file mode 100644 index 0000000000..c21b574908 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/servicereference.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// ServiceReferenceApplyConfiguration represents an declarative configuration of the ServiceReference type for use +// with apply. +type ServiceReferenceApplyConfiguration struct { + Namespace *string `json:"namespace,omitempty"` + Name *string `json:"name,omitempty"` + Path *string `json:"path,omitempty"` + Port *int32 `json:"port,omitempty"` +} + +// ServiceReferenceApplyConfiguration constructs an declarative configuration of the ServiceReference type for use with +// apply. +func ServiceReference() *ServiceReferenceApplyConfiguration { + return &ServiceReferenceApplyConfiguration{} +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ServiceReferenceApplyConfiguration) WithNamespace(value string) *ServiceReferenceApplyConfiguration { + b.Namespace = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ServiceReferenceApplyConfiguration) WithName(value string) *ServiceReferenceApplyConfiguration { + b.Name = &value + return b +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *ServiceReferenceApplyConfiguration) WithPath(value string) *ServiceReferenceApplyConfiguration { + b.Path = &value + return b +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *ServiceReferenceApplyConfiguration) WithPort(value int32) *ServiceReferenceApplyConfiguration { + b.Port = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhook.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhook.go new file mode 100644 index 0000000000..8ca0e9cbeb --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhook.go @@ -0,0 +1,132 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + admissionregistrationv1beta1 "k8s.io/api/admissionregistration/v1beta1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ValidatingWebhookApplyConfiguration represents an declarative configuration of the ValidatingWebhook type for use +// with apply. +type ValidatingWebhookApplyConfiguration struct { + Name *string `json:"name,omitempty"` + ClientConfig *WebhookClientConfigApplyConfiguration `json:"clientConfig,omitempty"` + Rules []RuleWithOperationsApplyConfiguration `json:"rules,omitempty"` + FailurePolicy *admissionregistrationv1beta1.FailurePolicyType `json:"failurePolicy,omitempty"` + MatchPolicy *admissionregistrationv1beta1.MatchPolicyType `json:"matchPolicy,omitempty"` + NamespaceSelector *v1.LabelSelectorApplyConfiguration `json:"namespaceSelector,omitempty"` + ObjectSelector *v1.LabelSelectorApplyConfiguration `json:"objectSelector,omitempty"` + SideEffects *admissionregistrationv1beta1.SideEffectClass `json:"sideEffects,omitempty"` + TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"` + AdmissionReviewVersions []string `json:"admissionReviewVersions,omitempty"` +} + +// ValidatingWebhookApplyConfiguration constructs an declarative configuration of the ValidatingWebhook type for use with +// apply. +func ValidatingWebhook() *ValidatingWebhookApplyConfiguration { + return &ValidatingWebhookApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithName(value string) *ValidatingWebhookApplyConfiguration { + b.Name = &value + return b +} + +// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClientConfig field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *ValidatingWebhookApplyConfiguration { + b.ClientConfig = value + return b +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *ValidatingWebhookApplyConfiguration) WithRules(values ...*RuleWithOperationsApplyConfiguration) *ValidatingWebhookApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} + +// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FailurePolicy field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1beta1.FailurePolicyType) *ValidatingWebhookApplyConfiguration { + b.FailurePolicy = &value + return b +} + +// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MatchPolicy field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1beta1.MatchPolicyType) *ValidatingWebhookApplyConfiguration { + b.MatchPolicy = &value + return b +} + +// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NamespaceSelector field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration { + b.NamespaceSelector = value + return b +} + +// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObjectSelector field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithObjectSelector(value *v1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration { + b.ObjectSelector = value + return b +} + +// WithSideEffects sets the SideEffects field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SideEffects field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1beta1.SideEffectClass) *ValidatingWebhookApplyConfiguration { + b.SideEffects = &value + return b +} + +// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TimeoutSeconds field is set to the value of the last call. +func (b *ValidatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *ValidatingWebhookApplyConfiguration { + b.TimeoutSeconds = &value + return b +} + +// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field. +func (b *ValidatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *ValidatingWebhookApplyConfiguration { + for i := range values { + b.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhookconfiguration.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhookconfiguration.go new file mode 100644 index 0000000000..dac1c27a09 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhookconfiguration.go @@ -0,0 +1,259 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + admissionregistrationv1beta1 "k8s.io/api/admissionregistration/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ValidatingWebhookConfigurationApplyConfiguration represents an declarative configuration of the ValidatingWebhookConfiguration type for use +// with apply. +type ValidatingWebhookConfigurationApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Webhooks []ValidatingWebhookApplyConfiguration `json:"webhooks,omitempty"` +} + +// ValidatingWebhookConfiguration constructs an declarative configuration of the ValidatingWebhookConfiguration type for use with +// apply. +func ValidatingWebhookConfiguration(name string) *ValidatingWebhookConfigurationApplyConfiguration { + b := &ValidatingWebhookConfigurationApplyConfiguration{} + b.WithName(name) + b.WithKind("ValidatingWebhookConfiguration") + b.WithAPIVersion("admissionregistration.k8s.io/v1beta1") + return b +} + +// ExtractValidatingWebhookConfiguration extracts the applied configuration owned by fieldManager from +// validatingWebhookConfiguration. If no managedFields are found in validatingWebhookConfiguration for fieldManager, a +// ValidatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// validatingWebhookConfiguration must be a unmodified ValidatingWebhookConfiguration API object that was retrieved from the Kubernetes API. +// ExtractValidatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractValidatingWebhookConfiguration(validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfiguration, fieldManager string) (*ValidatingWebhookConfigurationApplyConfiguration, error) { + b := &ValidatingWebhookConfigurationApplyConfiguration{} + err := managedfields.ExtractInto(validatingWebhookConfiguration, internal.Parser().Type("io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(validatingWebhookConfiguration.Name) + + b.WithKind("ValidatingWebhookConfiguration") + b.WithAPIVersion("admissionregistration.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithKind(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithName(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithSelfLink(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithClusterName(value string) *ValidatingWebhookConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ValidatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithWebhooks adds the given value to the Webhooks field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Webhooks field. +func (b *ValidatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*ValidatingWebhookApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithWebhooks") + } + b.Webhooks = append(b.Webhooks, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/webhookclientconfig.go b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/webhookclientconfig.go new file mode 100644 index 0000000000..490f9d5f3f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/webhookclientconfig.go @@ -0,0 +1,59 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// WebhookClientConfigApplyConfiguration represents an declarative configuration of the WebhookClientConfig type for use +// with apply. +type WebhookClientConfigApplyConfiguration struct { + URL *string `json:"url,omitempty"` + Service *ServiceReferenceApplyConfiguration `json:"service,omitempty"` + CABundle []byte `json:"caBundle,omitempty"` +} + +// WebhookClientConfigApplyConfiguration constructs an declarative configuration of the WebhookClientConfig type for use with +// apply. +func WebhookClientConfig() *WebhookClientConfigApplyConfiguration { + return &WebhookClientConfigApplyConfiguration{} +} + +// WithURL sets the URL field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the URL field is set to the value of the last call. +func (b *WebhookClientConfigApplyConfiguration) WithURL(value string) *WebhookClientConfigApplyConfiguration { + b.URL = &value + return b +} + +// WithService sets the Service field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Service field is set to the value of the last call. +func (b *WebhookClientConfigApplyConfiguration) WithService(value *ServiceReferenceApplyConfiguration) *WebhookClientConfigApplyConfiguration { + b.Service = value + return b +} + +// WithCABundle adds the given value to the CABundle field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the CABundle field. +func (b *WebhookClientConfigApplyConfiguration) WithCABundle(values ...byte) *WebhookClientConfigApplyConfiguration { + for i := range values { + b.CABundle = append(b.CABundle, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/serverstorageversion.go b/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/serverstorageversion.go new file mode 100644 index 0000000000..d36f7603c7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/serverstorageversion.go @@ -0,0 +1,59 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// ServerStorageVersionApplyConfiguration represents an declarative configuration of the ServerStorageVersion type for use +// with apply. +type ServerStorageVersionApplyConfiguration struct { + APIServerID *string `json:"apiServerID,omitempty"` + EncodingVersion *string `json:"encodingVersion,omitempty"` + DecodableVersions []string `json:"decodableVersions,omitempty"` +} + +// ServerStorageVersionApplyConfiguration constructs an declarative configuration of the ServerStorageVersion type for use with +// apply. +func ServerStorageVersion() *ServerStorageVersionApplyConfiguration { + return &ServerStorageVersionApplyConfiguration{} +} + +// WithAPIServerID sets the APIServerID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIServerID field is set to the value of the last call. +func (b *ServerStorageVersionApplyConfiguration) WithAPIServerID(value string) *ServerStorageVersionApplyConfiguration { + b.APIServerID = &value + return b +} + +// WithEncodingVersion sets the EncodingVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EncodingVersion field is set to the value of the last call. +func (b *ServerStorageVersionApplyConfiguration) WithEncodingVersion(value string) *ServerStorageVersionApplyConfiguration { + b.EncodingVersion = &value + return b +} + +// WithDecodableVersions adds the given value to the DecodableVersions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the DecodableVersions field. +func (b *ServerStorageVersionApplyConfiguration) WithDecodableVersions(values ...string) *ServerStorageVersionApplyConfiguration { + for i := range values { + b.DecodableVersions = append(b.DecodableVersions, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversion.go b/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversion.go new file mode 100644 index 0000000000..44d9b05c01 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversion.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/apiserverinternal/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// StorageVersionApplyConfiguration represents an declarative configuration of the StorageVersion type for use +// with apply. +type StorageVersionApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *v1alpha1.StorageVersionSpec `json:"spec,omitempty"` + Status *StorageVersionStatusApplyConfiguration `json:"status,omitempty"` +} + +// StorageVersion constructs an declarative configuration of the StorageVersion type for use with +// apply. +func StorageVersion(name string) *StorageVersionApplyConfiguration { + b := &StorageVersionApplyConfiguration{} + b.WithName(name) + b.WithKind("StorageVersion") + b.WithAPIVersion("internal.apiserver.k8s.io/v1alpha1") + return b +} + +// ExtractStorageVersion extracts the applied configuration owned by fieldManager from +// storageVersion. If no managedFields are found in storageVersion for fieldManager, a +// StorageVersionApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// storageVersion must be a unmodified StorageVersion API object that was retrieved from the Kubernetes API. +// ExtractStorageVersion provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractStorageVersion(storageVersion *v1alpha1.StorageVersion, fieldManager string) (*StorageVersionApplyConfiguration, error) { + b := &StorageVersionApplyConfiguration{} + err := managedfields.ExtractInto(storageVersion, internal.Parser().Type("io.k8s.api.apiserverinternal.v1alpha1.StorageVersion"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(storageVersion.Name) + + b.WithKind("StorageVersion") + b.WithAPIVersion("internal.apiserver.k8s.io/v1alpha1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithKind(value string) *StorageVersionApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithAPIVersion(value string) *StorageVersionApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithName(value string) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithGenerateName(value string) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithNamespace(value string) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithSelfLink(value string) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithUID(value types.UID) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithResourceVersion(value string) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithGeneration(value int64) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *StorageVersionApplyConfiguration) WithLabels(entries map[string]string) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *StorageVersionApplyConfiguration) WithAnnotations(entries map[string]string) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *StorageVersionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *StorageVersionApplyConfiguration) WithFinalizers(values ...string) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithClusterName(value string) *StorageVersionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *StorageVersionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithSpec(value v1alpha1.StorageVersionSpec) *StorageVersionApplyConfiguration { + b.Spec = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *StorageVersionApplyConfiguration) WithStatus(value *StorageVersionStatusApplyConfiguration) *StorageVersionApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversioncondition.go b/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversioncondition.go new file mode 100644 index 0000000000..75b6256478 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversioncondition.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/apiserverinternal/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// StorageVersionConditionApplyConfiguration represents an declarative configuration of the StorageVersionCondition type for use +// with apply. +type StorageVersionConditionApplyConfiguration struct { + Type *v1alpha1.StorageVersionConditionType `json:"type,omitempty"` + Status *v1alpha1.ConditionStatus `json:"status,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + LastTransitionTime *v1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// StorageVersionConditionApplyConfiguration constructs an declarative configuration of the StorageVersionCondition type for use with +// apply. +func StorageVersionCondition() *StorageVersionConditionApplyConfiguration { + return &StorageVersionConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *StorageVersionConditionApplyConfiguration) WithType(value v1alpha1.StorageVersionConditionType) *StorageVersionConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *StorageVersionConditionApplyConfiguration) WithStatus(value v1alpha1.ConditionStatus) *StorageVersionConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *StorageVersionConditionApplyConfiguration) WithObservedGeneration(value int64) *StorageVersionConditionApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *StorageVersionConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *StorageVersionConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *StorageVersionConditionApplyConfiguration) WithReason(value string) *StorageVersionConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *StorageVersionConditionApplyConfiguration) WithMessage(value string) *StorageVersionConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversionstatus.go b/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversionstatus.go new file mode 100644 index 0000000000..43b0bf71b1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversionstatus.go @@ -0,0 +1,67 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// StorageVersionStatusApplyConfiguration represents an declarative configuration of the StorageVersionStatus type for use +// with apply. +type StorageVersionStatusApplyConfiguration struct { + StorageVersions []ServerStorageVersionApplyConfiguration `json:"storageVersions,omitempty"` + CommonEncodingVersion *string `json:"commonEncodingVersion,omitempty"` + Conditions []StorageVersionConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// StorageVersionStatusApplyConfiguration constructs an declarative configuration of the StorageVersionStatus type for use with +// apply. +func StorageVersionStatus() *StorageVersionStatusApplyConfiguration { + return &StorageVersionStatusApplyConfiguration{} +} + +// WithStorageVersions adds the given value to the StorageVersions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the StorageVersions field. +func (b *StorageVersionStatusApplyConfiguration) WithStorageVersions(values ...*ServerStorageVersionApplyConfiguration) *StorageVersionStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithStorageVersions") + } + b.StorageVersions = append(b.StorageVersions, *values[i]) + } + return b +} + +// WithCommonEncodingVersion sets the CommonEncodingVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CommonEncodingVersion field is set to the value of the last call. +func (b *StorageVersionStatusApplyConfiguration) WithCommonEncodingVersion(value string) *StorageVersionStatusApplyConfiguration { + b.CommonEncodingVersion = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *StorageVersionStatusApplyConfiguration) WithConditions(values ...*StorageVersionConditionApplyConfiguration) *StorageVersionStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/controllerrevision.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/controllerrevision.go new file mode 100644 index 0000000000..d01f77a5e8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/controllerrevision.go @@ -0,0 +1,266 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + appsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ControllerRevisionApplyConfiguration represents an declarative configuration of the ControllerRevision type for use +// with apply. +type ControllerRevisionApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Data *runtime.RawExtension `json:"data,omitempty"` + Revision *int64 `json:"revision,omitempty"` +} + +// ControllerRevision constructs an declarative configuration of the ControllerRevision type for use with +// apply. +func ControllerRevision(name, namespace string) *ControllerRevisionApplyConfiguration { + b := &ControllerRevisionApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("ControllerRevision") + b.WithAPIVersion("apps/v1") + return b +} + +// ExtractControllerRevision extracts the applied configuration owned by fieldManager from +// controllerRevision. If no managedFields are found in controllerRevision for fieldManager, a +// ControllerRevisionApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// controllerRevision must be a unmodified ControllerRevision API object that was retrieved from the Kubernetes API. +// ExtractControllerRevision provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractControllerRevision(controllerRevision *appsv1.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) { + b := &ControllerRevisionApplyConfiguration{} + err := managedfields.ExtractInto(controllerRevision, internal.Parser().Type("io.k8s.api.apps.v1.ControllerRevision"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(controllerRevision.Name) + b.WithNamespace(controllerRevision.Namespace) + + b.WithKind("ControllerRevision") + b.WithAPIVersion("apps/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithKind(value string) *ControllerRevisionApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithAPIVersion(value string) *ControllerRevisionApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithName(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithGenerateName(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithNamespace(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithSelfLink(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithUID(value types.UID) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithResourceVersion(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithGeneration(value int64) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ControllerRevisionApplyConfiguration) WithLabels(entries map[string]string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ControllerRevisionApplyConfiguration) WithAnnotations(entries map[string]string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ControllerRevisionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ControllerRevisionApplyConfiguration) WithFinalizers(values ...string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithClusterName(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ControllerRevisionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithData sets the Data field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Data field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithData(value runtime.RawExtension) *ControllerRevisionApplyConfiguration { + b.Data = &value + return b +} + +// WithRevision sets the Revision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Revision field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithRevision(value int64) *ControllerRevisionApplyConfiguration { + b.Revision = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonset.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonset.go new file mode 100644 index 0000000000..bcfe7a4a64 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonset.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apiappsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DaemonSetApplyConfiguration represents an declarative configuration of the DaemonSet type for use +// with apply. +type DaemonSetApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *DaemonSetSpecApplyConfiguration `json:"spec,omitempty"` + Status *DaemonSetStatusApplyConfiguration `json:"status,omitempty"` +} + +// DaemonSet constructs an declarative configuration of the DaemonSet type for use with +// apply. +func DaemonSet(name, namespace string) *DaemonSetApplyConfiguration { + b := &DaemonSetApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("DaemonSet") + b.WithAPIVersion("apps/v1") + return b +} + +// ExtractDaemonSet extracts the applied configuration owned by fieldManager from +// daemonSet. If no managedFields are found in daemonSet for fieldManager, a +// DaemonSetApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// daemonSet must be a unmodified DaemonSet API object that was retrieved from the Kubernetes API. +// ExtractDaemonSet provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractDaemonSet(daemonSet *apiappsv1.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) { + b := &DaemonSetApplyConfiguration{} + err := managedfields.ExtractInto(daemonSet, internal.Parser().Type("io.k8s.api.apps.v1.DaemonSet"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(daemonSet.Name) + b.WithNamespace(daemonSet.Namespace) + + b.WithKind("DaemonSet") + b.WithAPIVersion("apps/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithKind(value string) *DaemonSetApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithAPIVersion(value string) *DaemonSetApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithName(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithGenerateName(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithNamespace(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithSelfLink(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithUID(value types.UID) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithResourceVersion(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithGeneration(value int64) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *DaemonSetApplyConfiguration) WithLabels(entries map[string]string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *DaemonSetApplyConfiguration) WithAnnotations(entries map[string]string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *DaemonSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *DaemonSetApplyConfiguration) WithFinalizers(values ...string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithClusterName(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *DaemonSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithSpec(value *DaemonSetSpecApplyConfiguration) *DaemonSetApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithStatus(value *DaemonSetStatusApplyConfiguration) *DaemonSetApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetcondition.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetcondition.go new file mode 100644 index 0000000000..283ae10a29 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetcondition.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// DaemonSetConditionApplyConfiguration represents an declarative configuration of the DaemonSetCondition type for use +// with apply. +type DaemonSetConditionApplyConfiguration struct { + Type *v1.DaemonSetConditionType `json:"type,omitempty"` + Status *corev1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// DaemonSetConditionApplyConfiguration constructs an declarative configuration of the DaemonSetCondition type for use with +// apply. +func DaemonSetCondition() *DaemonSetConditionApplyConfiguration { + return &DaemonSetConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithType(value v1.DaemonSetConditionType) *DaemonSetConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *DaemonSetConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DaemonSetConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithReason(value string) *DaemonSetConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithMessage(value string) *DaemonSetConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetspec.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetspec.go new file mode 100644 index 0000000000..5e808874b7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetspec.go @@ -0,0 +1,80 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DaemonSetSpecApplyConfiguration represents an declarative configuration of the DaemonSetSpec type for use +// with apply. +type DaemonSetSpecApplyConfiguration struct { + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` + UpdateStrategy *DaemonSetUpdateStrategyApplyConfiguration `json:"updateStrategy,omitempty"` + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` +} + +// DaemonSetSpecApplyConfiguration constructs an declarative configuration of the DaemonSetSpec type for use with +// apply. +func DaemonSetSpec() *DaemonSetSpecApplyConfiguration { + return &DaemonSetSpecApplyConfiguration{} +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DaemonSetSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DaemonSetSpecApplyConfiguration { + b.Template = value + return b +} + +// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdateStrategy field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithUpdateStrategy(value *DaemonSetUpdateStrategyApplyConfiguration) *DaemonSetSpecApplyConfiguration { + b.UpdateStrategy = value + return b +} + +// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReadySeconds field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *DaemonSetSpecApplyConfiguration { + b.MinReadySeconds = &value + return b +} + +// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DaemonSetSpecApplyConfiguration { + b.RevisionHistoryLimit = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetstatus.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetstatus.go new file mode 100644 index 0000000000..d1c4462aa9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetstatus.go @@ -0,0 +1,125 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// DaemonSetStatusApplyConfiguration represents an declarative configuration of the DaemonSetStatus type for use +// with apply. +type DaemonSetStatusApplyConfiguration struct { + CurrentNumberScheduled *int32 `json:"currentNumberScheduled,omitempty"` + NumberMisscheduled *int32 `json:"numberMisscheduled,omitempty"` + DesiredNumberScheduled *int32 `json:"desiredNumberScheduled,omitempty"` + NumberReady *int32 `json:"numberReady,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + UpdatedNumberScheduled *int32 `json:"updatedNumberScheduled,omitempty"` + NumberAvailable *int32 `json:"numberAvailable,omitempty"` + NumberUnavailable *int32 `json:"numberUnavailable,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty"` + Conditions []DaemonSetConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// DaemonSetStatusApplyConfiguration constructs an declarative configuration of the DaemonSetStatus type for use with +// apply. +func DaemonSetStatus() *DaemonSetStatusApplyConfiguration { + return &DaemonSetStatusApplyConfiguration{} +} + +// WithCurrentNumberScheduled sets the CurrentNumberScheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentNumberScheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithCurrentNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.CurrentNumberScheduled = &value + return b +} + +// WithNumberMisscheduled sets the NumberMisscheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberMisscheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberMisscheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberMisscheduled = &value + return b +} + +// WithDesiredNumberScheduled sets the DesiredNumberScheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DesiredNumberScheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithDesiredNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.DesiredNumberScheduled = &value + return b +} + +// WithNumberReady sets the NumberReady field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberReady field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberReady(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberReady = &value + return b +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithObservedGeneration(value int64) *DaemonSetStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithUpdatedNumberScheduled sets the UpdatedNumberScheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdatedNumberScheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithUpdatedNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.UpdatedNumberScheduled = &value + return b +} + +// WithNumberAvailable sets the NumberAvailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberAvailable field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberAvailable(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberAvailable = &value + return b +} + +// WithNumberUnavailable sets the NumberUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberUnavailable field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberUnavailable(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberUnavailable = &value + return b +} + +// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CollisionCount field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithCollisionCount(value int32) *DaemonSetStatusApplyConfiguration { + b.CollisionCount = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *DaemonSetStatusApplyConfiguration) WithConditions(values ...*DaemonSetConditionApplyConfiguration) *DaemonSetStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetupdatestrategy.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetupdatestrategy.go new file mode 100644 index 0000000000..f1ba18226f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetupdatestrategy.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/apps/v1" +) + +// DaemonSetUpdateStrategyApplyConfiguration represents an declarative configuration of the DaemonSetUpdateStrategy type for use +// with apply. +type DaemonSetUpdateStrategyApplyConfiguration struct { + Type *v1.DaemonSetUpdateStrategyType `json:"type,omitempty"` + RollingUpdate *RollingUpdateDaemonSetApplyConfiguration `json:"rollingUpdate,omitempty"` +} + +// DaemonSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the DaemonSetUpdateStrategy type for use with +// apply. +func DaemonSetUpdateStrategy() *DaemonSetUpdateStrategyApplyConfiguration { + return &DaemonSetUpdateStrategyApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DaemonSetUpdateStrategyApplyConfiguration) WithType(value v1.DaemonSetUpdateStrategyType) *DaemonSetUpdateStrategyApplyConfiguration { + b.Type = &value + return b +} + +// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollingUpdate field is set to the value of the last call. +func (b *DaemonSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDaemonSetApplyConfiguration) *DaemonSetUpdateStrategyApplyConfiguration { + b.RollingUpdate = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deployment.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deployment.go new file mode 100644 index 0000000000..37ef1896a2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deployment.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apiappsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DeploymentApplyConfiguration represents an declarative configuration of the Deployment type for use +// with apply. +type DeploymentApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *DeploymentSpecApplyConfiguration `json:"spec,omitempty"` + Status *DeploymentStatusApplyConfiguration `json:"status,omitempty"` +} + +// Deployment constructs an declarative configuration of the Deployment type for use with +// apply. +func Deployment(name, namespace string) *DeploymentApplyConfiguration { + b := &DeploymentApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Deployment") + b.WithAPIVersion("apps/v1") + return b +} + +// ExtractDeployment extracts the applied configuration owned by fieldManager from +// deployment. If no managedFields are found in deployment for fieldManager, a +// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API. +// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractDeployment(deployment *apiappsv1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) { + b := &DeploymentApplyConfiguration{} + err := managedfields.ExtractInto(deployment, internal.Parser().Type("io.k8s.api.apps.v1.Deployment"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(deployment.Name) + b.WithNamespace(deployment.Namespace) + + b.WithKind("Deployment") + b.WithAPIVersion("apps/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithSelfLink(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithClusterName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentcondition.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentcondition.go new file mode 100644 index 0000000000..7747044136 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentcondition.go @@ -0,0 +1,90 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// DeploymentConditionApplyConfiguration represents an declarative configuration of the DeploymentCondition type for use +// with apply. +type DeploymentConditionApplyConfiguration struct { + Type *v1.DeploymentConditionType `json:"type,omitempty"` + Status *corev1.ConditionStatus `json:"status,omitempty"` + LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// DeploymentConditionApplyConfiguration constructs an declarative configuration of the DeploymentCondition type for use with +// apply. +func DeploymentCondition() *DeploymentConditionApplyConfiguration { + return &DeploymentConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithType(value v1.DeploymentConditionType) *DeploymentConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *DeploymentConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastUpdateTime field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration { + b.LastUpdateTime = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentspec.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentspec.go new file mode 100644 index 0000000000..812253dae8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentspec.go @@ -0,0 +1,107 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DeploymentSpecApplyConfiguration represents an declarative configuration of the DeploymentSpec type for use +// with apply. +type DeploymentSpecApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` + Strategy *DeploymentStrategyApplyConfiguration `json:"strategy,omitempty"` + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` + Paused *bool `json:"paused,omitempty"` + ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty"` +} + +// DeploymentSpecApplyConfiguration constructs an declarative configuration of the DeploymentSpec type for use with +// apply. +func DeploymentSpec() *DeploymentSpecApplyConfiguration { + return &DeploymentSpecApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration { + b.Replicas = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Template = value + return b +} + +// WithStrategy sets the Strategy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Strategy field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Strategy = value + return b +} + +// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReadySeconds field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration { + b.MinReadySeconds = &value + return b +} + +// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration { + b.RevisionHistoryLimit = &value + return b +} + +// WithPaused sets the Paused field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Paused field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration { + b.Paused = &value + return b +} + +// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration { + b.ProgressDeadlineSeconds = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstatus.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstatus.go new file mode 100644 index 0000000000..7b48b42557 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstatus.go @@ -0,0 +1,107 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// DeploymentStatusApplyConfiguration represents an declarative configuration of the DeploymentStatus type for use +// with apply. +type DeploymentStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Replicas *int32 `json:"replicas,omitempty"` + UpdatedReplicas *int32 `json:"updatedReplicas,omitempty"` + ReadyReplicas *int32 `json:"readyReplicas,omitempty"` + AvailableReplicas *int32 `json:"availableReplicas,omitempty"` + UnavailableReplicas *int32 `json:"unavailableReplicas,omitempty"` + Conditions []DeploymentConditionApplyConfiguration `json:"conditions,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty"` +} + +// DeploymentStatusApplyConfiguration constructs an declarative configuration of the DeploymentStatus type for use with +// apply. +func DeploymentStatus() *DeploymentStatusApplyConfiguration { + return &DeploymentStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.Replicas = &value + return b +} + +// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdatedReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.UpdatedReplicas = &value + return b +} + +// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadyReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.ReadyReplicas = &value + return b +} + +// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AvailableReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.AvailableReplicas = &value + return b +} + +// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UnavailableReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.UnavailableReplicas = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + +// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CollisionCount field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration { + b.CollisionCount = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstrategy.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstrategy.go new file mode 100644 index 0000000000..e9571edab1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstrategy.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/apps/v1" +) + +// DeploymentStrategyApplyConfiguration represents an declarative configuration of the DeploymentStrategy type for use +// with apply. +type DeploymentStrategyApplyConfiguration struct { + Type *v1.DeploymentStrategyType `json:"type,omitempty"` + RollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:"rollingUpdate,omitempty"` +} + +// DeploymentStrategyApplyConfiguration constructs an declarative configuration of the DeploymentStrategy type for use with +// apply. +func DeploymentStrategy() *DeploymentStrategyApplyConfiguration { + return &DeploymentStrategyApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DeploymentStrategyApplyConfiguration) WithType(value v1.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration { + b.Type = &value + return b +} + +// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollingUpdate field is set to the value of the last call. +func (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration { + b.RollingUpdate = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicaset.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicaset.go new file mode 100644 index 0000000000..fc7a468e48 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicaset.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apiappsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ReplicaSetApplyConfiguration represents an declarative configuration of the ReplicaSet type for use +// with apply. +type ReplicaSetApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *ReplicaSetSpecApplyConfiguration `json:"spec,omitempty"` + Status *ReplicaSetStatusApplyConfiguration `json:"status,omitempty"` +} + +// ReplicaSet constructs an declarative configuration of the ReplicaSet type for use with +// apply. +func ReplicaSet(name, namespace string) *ReplicaSetApplyConfiguration { + b := &ReplicaSetApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("ReplicaSet") + b.WithAPIVersion("apps/v1") + return b +} + +// ExtractReplicaSet extracts the applied configuration owned by fieldManager from +// replicaSet. If no managedFields are found in replicaSet for fieldManager, a +// ReplicaSetApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// replicaSet must be a unmodified ReplicaSet API object that was retrieved from the Kubernetes API. +// ExtractReplicaSet provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractReplicaSet(replicaSet *apiappsv1.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) { + b := &ReplicaSetApplyConfiguration{} + err := managedfields.ExtractInto(replicaSet, internal.Parser().Type("io.k8s.api.apps.v1.ReplicaSet"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(replicaSet.Name) + b.WithNamespace(replicaSet.Namespace) + + b.WithKind("ReplicaSet") + b.WithAPIVersion("apps/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithKind(value string) *ReplicaSetApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithAPIVersion(value string) *ReplicaSetApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithName(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithGenerateName(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithNamespace(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithSelfLink(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithUID(value types.UID) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithResourceVersion(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithGeneration(value int64) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ReplicaSetApplyConfiguration) WithLabels(entries map[string]string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ReplicaSetApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ReplicaSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ReplicaSetApplyConfiguration) WithFinalizers(values ...string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithClusterName(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ReplicaSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithSpec(value *ReplicaSetSpecApplyConfiguration) *ReplicaSetApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithStatus(value *ReplicaSetStatusApplyConfiguration) *ReplicaSetApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetcondition.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetcondition.go new file mode 100644 index 0000000000..19b0355d15 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetcondition.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ReplicaSetConditionApplyConfiguration represents an declarative configuration of the ReplicaSetCondition type for use +// with apply. +type ReplicaSetConditionApplyConfiguration struct { + Type *v1.ReplicaSetConditionType `json:"type,omitempty"` + Status *corev1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// ReplicaSetConditionApplyConfiguration constructs an declarative configuration of the ReplicaSetCondition type for use with +// apply. +func ReplicaSetCondition() *ReplicaSetConditionApplyConfiguration { + return &ReplicaSetConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithType(value v1.ReplicaSetConditionType) *ReplicaSetConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *ReplicaSetConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicaSetConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithReason(value string) *ReplicaSetConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithMessage(value string) *ReplicaSetConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetspec.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetspec.go new file mode 100644 index 0000000000..ca32865835 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetspec.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ReplicaSetSpecApplyConfiguration represents an declarative configuration of the ReplicaSetSpec type for use +// with apply. +type ReplicaSetSpecApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` +} + +// ReplicaSetSpecApplyConfiguration constructs an declarative configuration of the ReplicaSetSpec type for use with +// apply. +func ReplicaSetSpec() *ReplicaSetSpecApplyConfiguration { + return &ReplicaSetSpecApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithReplicas(value int32) *ReplicaSetSpecApplyConfiguration { + b.Replicas = &value + return b +} + +// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReadySeconds field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicaSetSpecApplyConfiguration { + b.MinReadySeconds = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ReplicaSetSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *ReplicaSetSpecApplyConfiguration { + b.Template = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetstatus.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetstatus.go new file mode 100644 index 0000000000..12f41490f9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetstatus.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ReplicaSetStatusApplyConfiguration represents an declarative configuration of the ReplicaSetStatus type for use +// with apply. +type ReplicaSetStatusApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + FullyLabeledReplicas *int32 `json:"fullyLabeledReplicas,omitempty"` + ReadyReplicas *int32 `json:"readyReplicas,omitempty"` + AvailableReplicas *int32 `json:"availableReplicas,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Conditions []ReplicaSetConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// ReplicaSetStatusApplyConfiguration constructs an declarative configuration of the ReplicaSetStatus type for use with +// apply. +func ReplicaSetStatus() *ReplicaSetStatusApplyConfiguration { + return &ReplicaSetStatusApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.Replicas = &value + return b +} + +// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.FullyLabeledReplicas = &value + return b +} + +// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadyReplicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.ReadyReplicas = &value + return b +} + +// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AvailableReplicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.AvailableReplicas = &value + return b +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicaSetStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *ReplicaSetStatusApplyConfiguration) WithConditions(values ...*ReplicaSetConditionApplyConfiguration) *ReplicaSetStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedaemonset.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedaemonset.go new file mode 100644 index 0000000000..ebe8e86d1f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedaemonset.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// RollingUpdateDaemonSetApplyConfiguration represents an declarative configuration of the RollingUpdateDaemonSet type for use +// with apply. +type RollingUpdateDaemonSetApplyConfiguration struct { + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` +} + +// RollingUpdateDaemonSetApplyConfiguration constructs an declarative configuration of the RollingUpdateDaemonSet type for use with +// apply. +func RollingUpdateDaemonSet() *RollingUpdateDaemonSetApplyConfiguration { + return &RollingUpdateDaemonSetApplyConfiguration{} +} + +// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxUnavailable field is set to the value of the last call. +func (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration { + b.MaxUnavailable = &value + return b +} + +// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxSurge field is set to the value of the last call. +func (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration { + b.MaxSurge = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedeployment.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedeployment.go new file mode 100644 index 0000000000..ca9daaf249 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedeployment.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// RollingUpdateDeploymentApplyConfiguration represents an declarative configuration of the RollingUpdateDeployment type for use +// with apply. +type RollingUpdateDeploymentApplyConfiguration struct { + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` +} + +// RollingUpdateDeploymentApplyConfiguration constructs an declarative configuration of the RollingUpdateDeployment type for use with +// apply. +func RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration { + return &RollingUpdateDeploymentApplyConfiguration{} +} + +// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxUnavailable field is set to the value of the last call. +func (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration { + b.MaxUnavailable = &value + return b +} + +// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxSurge field is set to the value of the last call. +func (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration { + b.MaxSurge = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatestatefulsetstrategy.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatestatefulsetstrategy.go new file mode 100644 index 0000000000..2090d88ed9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatestatefulsetstrategy.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// RollingUpdateStatefulSetStrategyApplyConfiguration represents an declarative configuration of the RollingUpdateStatefulSetStrategy type for use +// with apply. +type RollingUpdateStatefulSetStrategyApplyConfiguration struct { + Partition *int32 `json:"partition,omitempty"` +} + +// RollingUpdateStatefulSetStrategyApplyConfiguration constructs an declarative configuration of the RollingUpdateStatefulSetStrategy type for use with +// apply. +func RollingUpdateStatefulSetStrategy() *RollingUpdateStatefulSetStrategyApplyConfiguration { + return &RollingUpdateStatefulSetStrategyApplyConfiguration{} +} + +// WithPartition sets the Partition field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Partition field is set to the value of the last call. +func (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithPartition(value int32) *RollingUpdateStatefulSetStrategyApplyConfiguration { + b.Partition = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulset.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulset.go new file mode 100644 index 0000000000..ff0d50862c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulset.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apiappsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// StatefulSetApplyConfiguration represents an declarative configuration of the StatefulSet type for use +// with apply. +type StatefulSetApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *StatefulSetSpecApplyConfiguration `json:"spec,omitempty"` + Status *StatefulSetStatusApplyConfiguration `json:"status,omitempty"` +} + +// StatefulSet constructs an declarative configuration of the StatefulSet type for use with +// apply. +func StatefulSet(name, namespace string) *StatefulSetApplyConfiguration { + b := &StatefulSetApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("StatefulSet") + b.WithAPIVersion("apps/v1") + return b +} + +// ExtractStatefulSet extracts the applied configuration owned by fieldManager from +// statefulSet. If no managedFields are found in statefulSet for fieldManager, a +// StatefulSetApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// statefulSet must be a unmodified StatefulSet API object that was retrieved from the Kubernetes API. +// ExtractStatefulSet provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractStatefulSet(statefulSet *apiappsv1.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) { + b := &StatefulSetApplyConfiguration{} + err := managedfields.ExtractInto(statefulSet, internal.Parser().Type("io.k8s.api.apps.v1.StatefulSet"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(statefulSet.Name) + b.WithNamespace(statefulSet.Namespace) + + b.WithKind("StatefulSet") + b.WithAPIVersion("apps/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithKind(value string) *StatefulSetApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithAPIVersion(value string) *StatefulSetApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithName(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithGenerateName(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithNamespace(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithSelfLink(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithUID(value types.UID) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithResourceVersion(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithGeneration(value int64) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *StatefulSetApplyConfiguration) WithLabels(entries map[string]string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *StatefulSetApplyConfiguration) WithAnnotations(entries map[string]string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *StatefulSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *StatefulSetApplyConfiguration) WithFinalizers(values ...string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithClusterName(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *StatefulSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithSpec(value *StatefulSetSpecApplyConfiguration) *StatefulSetApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithStatus(value *StatefulSetStatusApplyConfiguration) *StatefulSetApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetcondition.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetcondition.go new file mode 100644 index 0000000000..f9d47850d6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetcondition.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// StatefulSetConditionApplyConfiguration represents an declarative configuration of the StatefulSetCondition type for use +// with apply. +type StatefulSetConditionApplyConfiguration struct { + Type *v1.StatefulSetConditionType `json:"type,omitempty"` + Status *corev1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// StatefulSetConditionApplyConfiguration constructs an declarative configuration of the StatefulSetCondition type for use with +// apply. +func StatefulSetCondition() *StatefulSetConditionApplyConfiguration { + return &StatefulSetConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithType(value v1.StatefulSetConditionType) *StatefulSetConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *StatefulSetConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *StatefulSetConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithReason(value string) *StatefulSetConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithMessage(value string) *StatefulSetConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetspec.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetspec.go new file mode 100644 index 0000000000..502f00ba45 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetspec.go @@ -0,0 +1,113 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + appsv1 "k8s.io/api/apps/v1" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// StatefulSetSpecApplyConfiguration represents an declarative configuration of the StatefulSetSpec type for use +// with apply. +type StatefulSetSpecApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` + VolumeClaimTemplates []corev1.PersistentVolumeClaimApplyConfiguration `json:"volumeClaimTemplates,omitempty"` + ServiceName *string `json:"serviceName,omitempty"` + PodManagementPolicy *appsv1.PodManagementPolicyType `json:"podManagementPolicy,omitempty"` + UpdateStrategy *StatefulSetUpdateStrategyApplyConfiguration `json:"updateStrategy,omitempty"` + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` +} + +// StatefulSetSpecApplyConfiguration constructs an declarative configuration of the StatefulSetSpec type for use with +// apply. +func StatefulSetSpec() *StatefulSetSpecApplyConfiguration { + return &StatefulSetSpecApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithReplicas(value int32) *StatefulSetSpecApplyConfiguration { + b.Replicas = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *StatefulSetSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *StatefulSetSpecApplyConfiguration { + b.Template = value + return b +} + +// WithVolumeClaimTemplates adds the given value to the VolumeClaimTemplates field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumeClaimTemplates field. +func (b *StatefulSetSpecApplyConfiguration) WithVolumeClaimTemplates(values ...*corev1.PersistentVolumeClaimApplyConfiguration) *StatefulSetSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithVolumeClaimTemplates") + } + b.VolumeClaimTemplates = append(b.VolumeClaimTemplates, *values[i]) + } + return b +} + +// WithServiceName sets the ServiceName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ServiceName field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithServiceName(value string) *StatefulSetSpecApplyConfiguration { + b.ServiceName = &value + return b +} + +// WithPodManagementPolicy sets the PodManagementPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodManagementPolicy field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithPodManagementPolicy(value appsv1.PodManagementPolicyType) *StatefulSetSpecApplyConfiguration { + b.PodManagementPolicy = &value + return b +} + +// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdateStrategy field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithUpdateStrategy(value *StatefulSetUpdateStrategyApplyConfiguration) *StatefulSetSpecApplyConfiguration { + b.UpdateStrategy = value + return b +} + +// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *StatefulSetSpecApplyConfiguration { + b.RevisionHistoryLimit = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetstatus.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetstatus.go new file mode 100644 index 0000000000..58c07475e5 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetstatus.go @@ -0,0 +1,116 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// StatefulSetStatusApplyConfiguration represents an declarative configuration of the StatefulSetStatus type for use +// with apply. +type StatefulSetStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Replicas *int32 `json:"replicas,omitempty"` + ReadyReplicas *int32 `json:"readyReplicas,omitempty"` + CurrentReplicas *int32 `json:"currentReplicas,omitempty"` + UpdatedReplicas *int32 `json:"updatedReplicas,omitempty"` + CurrentRevision *string `json:"currentRevision,omitempty"` + UpdateRevision *string `json:"updateRevision,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty"` + Conditions []StatefulSetConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// StatefulSetStatusApplyConfiguration constructs an declarative configuration of the StatefulSetStatus type for use with +// apply. +func StatefulSetStatus() *StatefulSetStatusApplyConfiguration { + return &StatefulSetStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithObservedGeneration(value int64) *StatefulSetStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.Replicas = &value + return b +} + +// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadyReplicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithReadyReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.ReadyReplicas = &value + return b +} + +// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentReplicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithCurrentReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.CurrentReplicas = &value + return b +} + +// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdatedReplicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithUpdatedReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.UpdatedReplicas = &value + return b +} + +// WithCurrentRevision sets the CurrentRevision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentRevision field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithCurrentRevision(value string) *StatefulSetStatusApplyConfiguration { + b.CurrentRevision = &value + return b +} + +// WithUpdateRevision sets the UpdateRevision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdateRevision field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithUpdateRevision(value string) *StatefulSetStatusApplyConfiguration { + b.UpdateRevision = &value + return b +} + +// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CollisionCount field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithCollisionCount(value int32) *StatefulSetStatusApplyConfiguration { + b.CollisionCount = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *StatefulSetStatusApplyConfiguration) WithConditions(values ...*StatefulSetConditionApplyConfiguration) *StatefulSetStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetupdatestrategy.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetupdatestrategy.go new file mode 100644 index 0000000000..5268a1e065 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetupdatestrategy.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/apps/v1" +) + +// StatefulSetUpdateStrategyApplyConfiguration represents an declarative configuration of the StatefulSetUpdateStrategy type for use +// with apply. +type StatefulSetUpdateStrategyApplyConfiguration struct { + Type *v1.StatefulSetUpdateStrategyType `json:"type,omitempty"` + RollingUpdate *RollingUpdateStatefulSetStrategyApplyConfiguration `json:"rollingUpdate,omitempty"` +} + +// StatefulSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the StatefulSetUpdateStrategy type for use with +// apply. +func StatefulSetUpdateStrategy() *StatefulSetUpdateStrategyApplyConfiguration { + return &StatefulSetUpdateStrategyApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *StatefulSetUpdateStrategyApplyConfiguration) WithType(value v1.StatefulSetUpdateStrategyType) *StatefulSetUpdateStrategyApplyConfiguration { + b.Type = &value + return b +} + +// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollingUpdate field is set to the value of the last call. +func (b *StatefulSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateStatefulSetStrategyApplyConfiguration) *StatefulSetUpdateStrategyApplyConfiguration { + b.RollingUpdate = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/controllerrevision.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/controllerrevision.go new file mode 100644 index 0000000000..4497fd69d6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/controllerrevision.go @@ -0,0 +1,266 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/apps/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ControllerRevisionApplyConfiguration represents an declarative configuration of the ControllerRevision type for use +// with apply. +type ControllerRevisionApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Data *runtime.RawExtension `json:"data,omitempty"` + Revision *int64 `json:"revision,omitempty"` +} + +// ControllerRevision constructs an declarative configuration of the ControllerRevision type for use with +// apply. +func ControllerRevision(name, namespace string) *ControllerRevisionApplyConfiguration { + b := &ControllerRevisionApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("ControllerRevision") + b.WithAPIVersion("apps/v1beta1") + return b +} + +// ExtractControllerRevision extracts the applied configuration owned by fieldManager from +// controllerRevision. If no managedFields are found in controllerRevision for fieldManager, a +// ControllerRevisionApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// controllerRevision must be a unmodified ControllerRevision API object that was retrieved from the Kubernetes API. +// ExtractControllerRevision provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractControllerRevision(controllerRevision *v1beta1.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) { + b := &ControllerRevisionApplyConfiguration{} + err := managedfields.ExtractInto(controllerRevision, internal.Parser().Type("io.k8s.api.apps.v1beta1.ControllerRevision"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(controllerRevision.Name) + b.WithNamespace(controllerRevision.Namespace) + + b.WithKind("ControllerRevision") + b.WithAPIVersion("apps/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithKind(value string) *ControllerRevisionApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithAPIVersion(value string) *ControllerRevisionApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithName(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithGenerateName(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithNamespace(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithSelfLink(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithUID(value types.UID) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithResourceVersion(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithGeneration(value int64) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ControllerRevisionApplyConfiguration) WithLabels(entries map[string]string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ControllerRevisionApplyConfiguration) WithAnnotations(entries map[string]string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ControllerRevisionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ControllerRevisionApplyConfiguration) WithFinalizers(values ...string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithClusterName(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ControllerRevisionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithData sets the Data field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Data field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithData(value runtime.RawExtension) *ControllerRevisionApplyConfiguration { + b.Data = &value + return b +} + +// WithRevision sets the Revision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Revision field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithRevision(value int64) *ControllerRevisionApplyConfiguration { + b.Revision = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deployment.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deployment.go new file mode 100644 index 0000000000..c79a614d3a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deployment.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + appsv1beta1 "k8s.io/api/apps/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DeploymentApplyConfiguration represents an declarative configuration of the Deployment type for use +// with apply. +type DeploymentApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *DeploymentSpecApplyConfiguration `json:"spec,omitempty"` + Status *DeploymentStatusApplyConfiguration `json:"status,omitempty"` +} + +// Deployment constructs an declarative configuration of the Deployment type for use with +// apply. +func Deployment(name, namespace string) *DeploymentApplyConfiguration { + b := &DeploymentApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Deployment") + b.WithAPIVersion("apps/v1beta1") + return b +} + +// ExtractDeployment extracts the applied configuration owned by fieldManager from +// deployment. If no managedFields are found in deployment for fieldManager, a +// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API. +// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractDeployment(deployment *appsv1beta1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) { + b := &DeploymentApplyConfiguration{} + err := managedfields.ExtractInto(deployment, internal.Parser().Type("io.k8s.api.apps.v1beta1.Deployment"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(deployment.Name) + b.WithNamespace(deployment.Namespace) + + b.WithKind("Deployment") + b.WithAPIVersion("apps/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithSelfLink(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithClusterName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentcondition.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentcondition.go new file mode 100644 index 0000000000..9da8ce0899 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentcondition.go @@ -0,0 +1,90 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/apps/v1beta1" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// DeploymentConditionApplyConfiguration represents an declarative configuration of the DeploymentCondition type for use +// with apply. +type DeploymentConditionApplyConfiguration struct { + Type *v1beta1.DeploymentConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// DeploymentConditionApplyConfiguration constructs an declarative configuration of the DeploymentCondition type for use with +// apply. +func DeploymentCondition() *DeploymentConditionApplyConfiguration { + return &DeploymentConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithType(value v1beta1.DeploymentConditionType) *DeploymentConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DeploymentConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastUpdateTime field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration { + b.LastUpdateTime = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentspec.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentspec.go new file mode 100644 index 0000000000..5e18476bdc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentspec.go @@ -0,0 +1,116 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DeploymentSpecApplyConfiguration represents an declarative configuration of the DeploymentSpec type for use +// with apply. +type DeploymentSpecApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` + Strategy *DeploymentStrategyApplyConfiguration `json:"strategy,omitempty"` + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` + Paused *bool `json:"paused,omitempty"` + RollbackTo *RollbackConfigApplyConfiguration `json:"rollbackTo,omitempty"` + ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty"` +} + +// DeploymentSpecApplyConfiguration constructs an declarative configuration of the DeploymentSpec type for use with +// apply. +func DeploymentSpec() *DeploymentSpecApplyConfiguration { + return &DeploymentSpecApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration { + b.Replicas = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Template = value + return b +} + +// WithStrategy sets the Strategy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Strategy field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Strategy = value + return b +} + +// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReadySeconds field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration { + b.MinReadySeconds = &value + return b +} + +// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration { + b.RevisionHistoryLimit = &value + return b +} + +// WithPaused sets the Paused field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Paused field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration { + b.Paused = &value + return b +} + +// WithRollbackTo sets the RollbackTo field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollbackTo field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithRollbackTo(value *RollbackConfigApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.RollbackTo = value + return b +} + +// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration { + b.ProgressDeadlineSeconds = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstatus.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstatus.go new file mode 100644 index 0000000000..f8d1cf5d25 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstatus.go @@ -0,0 +1,107 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// DeploymentStatusApplyConfiguration represents an declarative configuration of the DeploymentStatus type for use +// with apply. +type DeploymentStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Replicas *int32 `json:"replicas,omitempty"` + UpdatedReplicas *int32 `json:"updatedReplicas,omitempty"` + ReadyReplicas *int32 `json:"readyReplicas,omitempty"` + AvailableReplicas *int32 `json:"availableReplicas,omitempty"` + UnavailableReplicas *int32 `json:"unavailableReplicas,omitempty"` + Conditions []DeploymentConditionApplyConfiguration `json:"conditions,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty"` +} + +// DeploymentStatusApplyConfiguration constructs an declarative configuration of the DeploymentStatus type for use with +// apply. +func DeploymentStatus() *DeploymentStatusApplyConfiguration { + return &DeploymentStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.Replicas = &value + return b +} + +// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdatedReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.UpdatedReplicas = &value + return b +} + +// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadyReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.ReadyReplicas = &value + return b +} + +// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AvailableReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.AvailableReplicas = &value + return b +} + +// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UnavailableReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.UnavailableReplicas = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + +// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CollisionCount field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration { + b.CollisionCount = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstrategy.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstrategy.go new file mode 100644 index 0000000000..7279318a88 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstrategy.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/apps/v1beta1" +) + +// DeploymentStrategyApplyConfiguration represents an declarative configuration of the DeploymentStrategy type for use +// with apply. +type DeploymentStrategyApplyConfiguration struct { + Type *v1beta1.DeploymentStrategyType `json:"type,omitempty"` + RollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:"rollingUpdate,omitempty"` +} + +// DeploymentStrategyApplyConfiguration constructs an declarative configuration of the DeploymentStrategy type for use with +// apply. +func DeploymentStrategy() *DeploymentStrategyApplyConfiguration { + return &DeploymentStrategyApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DeploymentStrategyApplyConfiguration) WithType(value v1beta1.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration { + b.Type = &value + return b +} + +// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollingUpdate field is set to the value of the last call. +func (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration { + b.RollingUpdate = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollbackconfig.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollbackconfig.go new file mode 100644 index 0000000000..131e57a39d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollbackconfig.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// RollbackConfigApplyConfiguration represents an declarative configuration of the RollbackConfig type for use +// with apply. +type RollbackConfigApplyConfiguration struct { + Revision *int64 `json:"revision,omitempty"` +} + +// RollbackConfigApplyConfiguration constructs an declarative configuration of the RollbackConfig type for use with +// apply. +func RollbackConfig() *RollbackConfigApplyConfiguration { + return &RollbackConfigApplyConfiguration{} +} + +// WithRevision sets the Revision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Revision field is set to the value of the last call. +func (b *RollbackConfigApplyConfiguration) WithRevision(value int64) *RollbackConfigApplyConfiguration { + b.Revision = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatedeployment.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatedeployment.go new file mode 100644 index 0000000000..dde5f064b0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatedeployment.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// RollingUpdateDeploymentApplyConfiguration represents an declarative configuration of the RollingUpdateDeployment type for use +// with apply. +type RollingUpdateDeploymentApplyConfiguration struct { + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` +} + +// RollingUpdateDeploymentApplyConfiguration constructs an declarative configuration of the RollingUpdateDeployment type for use with +// apply. +func RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration { + return &RollingUpdateDeploymentApplyConfiguration{} +} + +// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxUnavailable field is set to the value of the last call. +func (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration { + b.MaxUnavailable = &value + return b +} + +// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxSurge field is set to the value of the last call. +func (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration { + b.MaxSurge = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatestatefulsetstrategy.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatestatefulsetstrategy.go new file mode 100644 index 0000000000..64273f6183 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatestatefulsetstrategy.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// RollingUpdateStatefulSetStrategyApplyConfiguration represents an declarative configuration of the RollingUpdateStatefulSetStrategy type for use +// with apply. +type RollingUpdateStatefulSetStrategyApplyConfiguration struct { + Partition *int32 `json:"partition,omitempty"` +} + +// RollingUpdateStatefulSetStrategyApplyConfiguration constructs an declarative configuration of the RollingUpdateStatefulSetStrategy type for use with +// apply. +func RollingUpdateStatefulSetStrategy() *RollingUpdateStatefulSetStrategyApplyConfiguration { + return &RollingUpdateStatefulSetStrategyApplyConfiguration{} +} + +// WithPartition sets the Partition field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Partition field is set to the value of the last call. +func (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithPartition(value int32) *RollingUpdateStatefulSetStrategyApplyConfiguration { + b.Partition = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulset.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulset.go new file mode 100644 index 0000000000..909ee91f8f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulset.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + appsv1beta1 "k8s.io/api/apps/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// StatefulSetApplyConfiguration represents an declarative configuration of the StatefulSet type for use +// with apply. +type StatefulSetApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *StatefulSetSpecApplyConfiguration `json:"spec,omitempty"` + Status *StatefulSetStatusApplyConfiguration `json:"status,omitempty"` +} + +// StatefulSet constructs an declarative configuration of the StatefulSet type for use with +// apply. +func StatefulSet(name, namespace string) *StatefulSetApplyConfiguration { + b := &StatefulSetApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("StatefulSet") + b.WithAPIVersion("apps/v1beta1") + return b +} + +// ExtractStatefulSet extracts the applied configuration owned by fieldManager from +// statefulSet. If no managedFields are found in statefulSet for fieldManager, a +// StatefulSetApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// statefulSet must be a unmodified StatefulSet API object that was retrieved from the Kubernetes API. +// ExtractStatefulSet provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractStatefulSet(statefulSet *appsv1beta1.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) { + b := &StatefulSetApplyConfiguration{} + err := managedfields.ExtractInto(statefulSet, internal.Parser().Type("io.k8s.api.apps.v1beta1.StatefulSet"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(statefulSet.Name) + b.WithNamespace(statefulSet.Namespace) + + b.WithKind("StatefulSet") + b.WithAPIVersion("apps/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithKind(value string) *StatefulSetApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithAPIVersion(value string) *StatefulSetApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithName(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithGenerateName(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithNamespace(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithSelfLink(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithUID(value types.UID) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithResourceVersion(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithGeneration(value int64) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *StatefulSetApplyConfiguration) WithLabels(entries map[string]string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *StatefulSetApplyConfiguration) WithAnnotations(entries map[string]string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *StatefulSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *StatefulSetApplyConfiguration) WithFinalizers(values ...string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithClusterName(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *StatefulSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithSpec(value *StatefulSetSpecApplyConfiguration) *StatefulSetApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithStatus(value *StatefulSetStatusApplyConfiguration) *StatefulSetApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetcondition.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetcondition.go new file mode 100644 index 0000000000..97e994ab71 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetcondition.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/apps/v1beta1" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// StatefulSetConditionApplyConfiguration represents an declarative configuration of the StatefulSetCondition type for use +// with apply. +type StatefulSetConditionApplyConfiguration struct { + Type *v1beta1.StatefulSetConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// StatefulSetConditionApplyConfiguration constructs an declarative configuration of the StatefulSetCondition type for use with +// apply. +func StatefulSetCondition() *StatefulSetConditionApplyConfiguration { + return &StatefulSetConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithType(value v1beta1.StatefulSetConditionType) *StatefulSetConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *StatefulSetConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *StatefulSetConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithReason(value string) *StatefulSetConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithMessage(value string) *StatefulSetConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetspec.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetspec.go new file mode 100644 index 0000000000..61b86a9d82 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetspec.go @@ -0,0 +1,113 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/apps/v1beta1" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// StatefulSetSpecApplyConfiguration represents an declarative configuration of the StatefulSetSpec type for use +// with apply. +type StatefulSetSpecApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` + VolumeClaimTemplates []corev1.PersistentVolumeClaimApplyConfiguration `json:"volumeClaimTemplates,omitempty"` + ServiceName *string `json:"serviceName,omitempty"` + PodManagementPolicy *v1beta1.PodManagementPolicyType `json:"podManagementPolicy,omitempty"` + UpdateStrategy *StatefulSetUpdateStrategyApplyConfiguration `json:"updateStrategy,omitempty"` + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` +} + +// StatefulSetSpecApplyConfiguration constructs an declarative configuration of the StatefulSetSpec type for use with +// apply. +func StatefulSetSpec() *StatefulSetSpecApplyConfiguration { + return &StatefulSetSpecApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithReplicas(value int32) *StatefulSetSpecApplyConfiguration { + b.Replicas = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *StatefulSetSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *StatefulSetSpecApplyConfiguration { + b.Template = value + return b +} + +// WithVolumeClaimTemplates adds the given value to the VolumeClaimTemplates field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumeClaimTemplates field. +func (b *StatefulSetSpecApplyConfiguration) WithVolumeClaimTemplates(values ...*corev1.PersistentVolumeClaimApplyConfiguration) *StatefulSetSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithVolumeClaimTemplates") + } + b.VolumeClaimTemplates = append(b.VolumeClaimTemplates, *values[i]) + } + return b +} + +// WithServiceName sets the ServiceName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ServiceName field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithServiceName(value string) *StatefulSetSpecApplyConfiguration { + b.ServiceName = &value + return b +} + +// WithPodManagementPolicy sets the PodManagementPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodManagementPolicy field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithPodManagementPolicy(value v1beta1.PodManagementPolicyType) *StatefulSetSpecApplyConfiguration { + b.PodManagementPolicy = &value + return b +} + +// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdateStrategy field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithUpdateStrategy(value *StatefulSetUpdateStrategyApplyConfiguration) *StatefulSetSpecApplyConfiguration { + b.UpdateStrategy = value + return b +} + +// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *StatefulSetSpecApplyConfiguration { + b.RevisionHistoryLimit = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetstatus.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetstatus.go new file mode 100644 index 0000000000..b716352d26 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetstatus.go @@ -0,0 +1,116 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// StatefulSetStatusApplyConfiguration represents an declarative configuration of the StatefulSetStatus type for use +// with apply. +type StatefulSetStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Replicas *int32 `json:"replicas,omitempty"` + ReadyReplicas *int32 `json:"readyReplicas,omitempty"` + CurrentReplicas *int32 `json:"currentReplicas,omitempty"` + UpdatedReplicas *int32 `json:"updatedReplicas,omitempty"` + CurrentRevision *string `json:"currentRevision,omitempty"` + UpdateRevision *string `json:"updateRevision,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty"` + Conditions []StatefulSetConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// StatefulSetStatusApplyConfiguration constructs an declarative configuration of the StatefulSetStatus type for use with +// apply. +func StatefulSetStatus() *StatefulSetStatusApplyConfiguration { + return &StatefulSetStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithObservedGeneration(value int64) *StatefulSetStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.Replicas = &value + return b +} + +// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadyReplicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithReadyReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.ReadyReplicas = &value + return b +} + +// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentReplicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithCurrentReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.CurrentReplicas = &value + return b +} + +// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdatedReplicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithUpdatedReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.UpdatedReplicas = &value + return b +} + +// WithCurrentRevision sets the CurrentRevision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentRevision field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithCurrentRevision(value string) *StatefulSetStatusApplyConfiguration { + b.CurrentRevision = &value + return b +} + +// WithUpdateRevision sets the UpdateRevision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdateRevision field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithUpdateRevision(value string) *StatefulSetStatusApplyConfiguration { + b.UpdateRevision = &value + return b +} + +// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CollisionCount field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithCollisionCount(value int32) *StatefulSetStatusApplyConfiguration { + b.CollisionCount = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *StatefulSetStatusApplyConfiguration) WithConditions(values ...*StatefulSetConditionApplyConfiguration) *StatefulSetStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetupdatestrategy.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetupdatestrategy.go new file mode 100644 index 0000000000..895c1e7f8a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetupdatestrategy.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/apps/v1beta1" +) + +// StatefulSetUpdateStrategyApplyConfiguration represents an declarative configuration of the StatefulSetUpdateStrategy type for use +// with apply. +type StatefulSetUpdateStrategyApplyConfiguration struct { + Type *v1beta1.StatefulSetUpdateStrategyType `json:"type,omitempty"` + RollingUpdate *RollingUpdateStatefulSetStrategyApplyConfiguration `json:"rollingUpdate,omitempty"` +} + +// StatefulSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the StatefulSetUpdateStrategy type for use with +// apply. +func StatefulSetUpdateStrategy() *StatefulSetUpdateStrategyApplyConfiguration { + return &StatefulSetUpdateStrategyApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *StatefulSetUpdateStrategyApplyConfiguration) WithType(value v1beta1.StatefulSetUpdateStrategyType) *StatefulSetUpdateStrategyApplyConfiguration { + b.Type = &value + return b +} + +// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollingUpdate field is set to the value of the last call. +func (b *StatefulSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateStatefulSetStrategyApplyConfiguration) *StatefulSetUpdateStrategyApplyConfiguration { + b.RollingUpdate = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/controllerrevision.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/controllerrevision.go new file mode 100644 index 0000000000..7c36cd82cb --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/controllerrevision.go @@ -0,0 +1,266 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + v1beta2 "k8s.io/api/apps/v1beta2" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ControllerRevisionApplyConfiguration represents an declarative configuration of the ControllerRevision type for use +// with apply. +type ControllerRevisionApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Data *runtime.RawExtension `json:"data,omitempty"` + Revision *int64 `json:"revision,omitempty"` +} + +// ControllerRevision constructs an declarative configuration of the ControllerRevision type for use with +// apply. +func ControllerRevision(name, namespace string) *ControllerRevisionApplyConfiguration { + b := &ControllerRevisionApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("ControllerRevision") + b.WithAPIVersion("apps/v1beta2") + return b +} + +// ExtractControllerRevision extracts the applied configuration owned by fieldManager from +// controllerRevision. If no managedFields are found in controllerRevision for fieldManager, a +// ControllerRevisionApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// controllerRevision must be a unmodified ControllerRevision API object that was retrieved from the Kubernetes API. +// ExtractControllerRevision provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractControllerRevision(controllerRevision *v1beta2.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) { + b := &ControllerRevisionApplyConfiguration{} + err := managedfields.ExtractInto(controllerRevision, internal.Parser().Type("io.k8s.api.apps.v1beta2.ControllerRevision"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(controllerRevision.Name) + b.WithNamespace(controllerRevision.Namespace) + + b.WithKind("ControllerRevision") + b.WithAPIVersion("apps/v1beta2") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithKind(value string) *ControllerRevisionApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithAPIVersion(value string) *ControllerRevisionApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithName(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithGenerateName(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithNamespace(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithSelfLink(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithUID(value types.UID) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithResourceVersion(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithGeneration(value int64) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ControllerRevisionApplyConfiguration) WithLabels(entries map[string]string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ControllerRevisionApplyConfiguration) WithAnnotations(entries map[string]string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ControllerRevisionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ControllerRevisionApplyConfiguration) WithFinalizers(values ...string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithClusterName(value string) *ControllerRevisionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ControllerRevisionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithData sets the Data field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Data field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithData(value runtime.RawExtension) *ControllerRevisionApplyConfiguration { + b.Data = &value + return b +} + +// WithRevision sets the Revision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Revision field is set to the value of the last call. +func (b *ControllerRevisionApplyConfiguration) WithRevision(value int64) *ControllerRevisionApplyConfiguration { + b.Revision = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonset.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonset.go new file mode 100644 index 0000000000..174ee8a196 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonset.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + appsv1beta2 "k8s.io/api/apps/v1beta2" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DaemonSetApplyConfiguration represents an declarative configuration of the DaemonSet type for use +// with apply. +type DaemonSetApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *DaemonSetSpecApplyConfiguration `json:"spec,omitempty"` + Status *DaemonSetStatusApplyConfiguration `json:"status,omitempty"` +} + +// DaemonSet constructs an declarative configuration of the DaemonSet type for use with +// apply. +func DaemonSet(name, namespace string) *DaemonSetApplyConfiguration { + b := &DaemonSetApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("DaemonSet") + b.WithAPIVersion("apps/v1beta2") + return b +} + +// ExtractDaemonSet extracts the applied configuration owned by fieldManager from +// daemonSet. If no managedFields are found in daemonSet for fieldManager, a +// DaemonSetApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// daemonSet must be a unmodified DaemonSet API object that was retrieved from the Kubernetes API. +// ExtractDaemonSet provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractDaemonSet(daemonSet *appsv1beta2.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) { + b := &DaemonSetApplyConfiguration{} + err := managedfields.ExtractInto(daemonSet, internal.Parser().Type("io.k8s.api.apps.v1beta2.DaemonSet"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(daemonSet.Name) + b.WithNamespace(daemonSet.Namespace) + + b.WithKind("DaemonSet") + b.WithAPIVersion("apps/v1beta2") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithKind(value string) *DaemonSetApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithAPIVersion(value string) *DaemonSetApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithName(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithGenerateName(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithNamespace(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithSelfLink(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithUID(value types.UID) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithResourceVersion(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithGeneration(value int64) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *DaemonSetApplyConfiguration) WithLabels(entries map[string]string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *DaemonSetApplyConfiguration) WithAnnotations(entries map[string]string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *DaemonSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *DaemonSetApplyConfiguration) WithFinalizers(values ...string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithClusterName(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *DaemonSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithSpec(value *DaemonSetSpecApplyConfiguration) *DaemonSetApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithStatus(value *DaemonSetStatusApplyConfiguration) *DaemonSetApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetcondition.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetcondition.go new file mode 100644 index 0000000000..55dc1f4877 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetcondition.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + v1beta2 "k8s.io/api/apps/v1beta2" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// DaemonSetConditionApplyConfiguration represents an declarative configuration of the DaemonSetCondition type for use +// with apply. +type DaemonSetConditionApplyConfiguration struct { + Type *v1beta2.DaemonSetConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// DaemonSetConditionApplyConfiguration constructs an declarative configuration of the DaemonSetCondition type for use with +// apply. +func DaemonSetCondition() *DaemonSetConditionApplyConfiguration { + return &DaemonSetConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithType(value v1beta2.DaemonSetConditionType) *DaemonSetConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DaemonSetConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DaemonSetConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithReason(value string) *DaemonSetConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithMessage(value string) *DaemonSetConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetspec.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetspec.go new file mode 100644 index 0000000000..48137819af --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetspec.go @@ -0,0 +1,80 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DaemonSetSpecApplyConfiguration represents an declarative configuration of the DaemonSetSpec type for use +// with apply. +type DaemonSetSpecApplyConfiguration struct { + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` + UpdateStrategy *DaemonSetUpdateStrategyApplyConfiguration `json:"updateStrategy,omitempty"` + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` +} + +// DaemonSetSpecApplyConfiguration constructs an declarative configuration of the DaemonSetSpec type for use with +// apply. +func DaemonSetSpec() *DaemonSetSpecApplyConfiguration { + return &DaemonSetSpecApplyConfiguration{} +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DaemonSetSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DaemonSetSpecApplyConfiguration { + b.Template = value + return b +} + +// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdateStrategy field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithUpdateStrategy(value *DaemonSetUpdateStrategyApplyConfiguration) *DaemonSetSpecApplyConfiguration { + b.UpdateStrategy = value + return b +} + +// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReadySeconds field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *DaemonSetSpecApplyConfiguration { + b.MinReadySeconds = &value + return b +} + +// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DaemonSetSpecApplyConfiguration { + b.RevisionHistoryLimit = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetstatus.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetstatus.go new file mode 100644 index 0000000000..29cda7a90e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetstatus.go @@ -0,0 +1,125 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +// DaemonSetStatusApplyConfiguration represents an declarative configuration of the DaemonSetStatus type for use +// with apply. +type DaemonSetStatusApplyConfiguration struct { + CurrentNumberScheduled *int32 `json:"currentNumberScheduled,omitempty"` + NumberMisscheduled *int32 `json:"numberMisscheduled,omitempty"` + DesiredNumberScheduled *int32 `json:"desiredNumberScheduled,omitempty"` + NumberReady *int32 `json:"numberReady,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + UpdatedNumberScheduled *int32 `json:"updatedNumberScheduled,omitempty"` + NumberAvailable *int32 `json:"numberAvailable,omitempty"` + NumberUnavailable *int32 `json:"numberUnavailable,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty"` + Conditions []DaemonSetConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// DaemonSetStatusApplyConfiguration constructs an declarative configuration of the DaemonSetStatus type for use with +// apply. +func DaemonSetStatus() *DaemonSetStatusApplyConfiguration { + return &DaemonSetStatusApplyConfiguration{} +} + +// WithCurrentNumberScheduled sets the CurrentNumberScheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentNumberScheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithCurrentNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.CurrentNumberScheduled = &value + return b +} + +// WithNumberMisscheduled sets the NumberMisscheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberMisscheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberMisscheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberMisscheduled = &value + return b +} + +// WithDesiredNumberScheduled sets the DesiredNumberScheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DesiredNumberScheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithDesiredNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.DesiredNumberScheduled = &value + return b +} + +// WithNumberReady sets the NumberReady field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberReady field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberReady(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberReady = &value + return b +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithObservedGeneration(value int64) *DaemonSetStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithUpdatedNumberScheduled sets the UpdatedNumberScheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdatedNumberScheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithUpdatedNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.UpdatedNumberScheduled = &value + return b +} + +// WithNumberAvailable sets the NumberAvailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberAvailable field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberAvailable(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberAvailable = &value + return b +} + +// WithNumberUnavailable sets the NumberUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberUnavailable field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberUnavailable(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberUnavailable = &value + return b +} + +// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CollisionCount field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithCollisionCount(value int32) *DaemonSetStatusApplyConfiguration { + b.CollisionCount = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *DaemonSetStatusApplyConfiguration) WithConditions(values ...*DaemonSetConditionApplyConfiguration) *DaemonSetStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetupdatestrategy.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetupdatestrategy.go new file mode 100644 index 0000000000..07fc07fc6a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetupdatestrategy.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + v1beta2 "k8s.io/api/apps/v1beta2" +) + +// DaemonSetUpdateStrategyApplyConfiguration represents an declarative configuration of the DaemonSetUpdateStrategy type for use +// with apply. +type DaemonSetUpdateStrategyApplyConfiguration struct { + Type *v1beta2.DaemonSetUpdateStrategyType `json:"type,omitempty"` + RollingUpdate *RollingUpdateDaemonSetApplyConfiguration `json:"rollingUpdate,omitempty"` +} + +// DaemonSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the DaemonSetUpdateStrategy type for use with +// apply. +func DaemonSetUpdateStrategy() *DaemonSetUpdateStrategyApplyConfiguration { + return &DaemonSetUpdateStrategyApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DaemonSetUpdateStrategyApplyConfiguration) WithType(value v1beta2.DaemonSetUpdateStrategyType) *DaemonSetUpdateStrategyApplyConfiguration { + b.Type = &value + return b +} + +// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollingUpdate field is set to the value of the last call. +func (b *DaemonSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDaemonSetApplyConfiguration) *DaemonSetUpdateStrategyApplyConfiguration { + b.RollingUpdate = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deployment.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deployment.go new file mode 100644 index 0000000000..c59ae290fe --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deployment.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + appsv1beta2 "k8s.io/api/apps/v1beta2" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DeploymentApplyConfiguration represents an declarative configuration of the Deployment type for use +// with apply. +type DeploymentApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *DeploymentSpecApplyConfiguration `json:"spec,omitempty"` + Status *DeploymentStatusApplyConfiguration `json:"status,omitempty"` +} + +// Deployment constructs an declarative configuration of the Deployment type for use with +// apply. +func Deployment(name, namespace string) *DeploymentApplyConfiguration { + b := &DeploymentApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Deployment") + b.WithAPIVersion("apps/v1beta2") + return b +} + +// ExtractDeployment extracts the applied configuration owned by fieldManager from +// deployment. If no managedFields are found in deployment for fieldManager, a +// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API. +// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractDeployment(deployment *appsv1beta2.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) { + b := &DeploymentApplyConfiguration{} + err := managedfields.ExtractInto(deployment, internal.Parser().Type("io.k8s.api.apps.v1beta2.Deployment"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(deployment.Name) + b.WithNamespace(deployment.Namespace) + + b.WithKind("Deployment") + b.WithAPIVersion("apps/v1beta2") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithSelfLink(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithClusterName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentcondition.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentcondition.go new file mode 100644 index 0000000000..852a2c6832 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentcondition.go @@ -0,0 +1,90 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + v1beta2 "k8s.io/api/apps/v1beta2" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// DeploymentConditionApplyConfiguration represents an declarative configuration of the DeploymentCondition type for use +// with apply. +type DeploymentConditionApplyConfiguration struct { + Type *v1beta2.DeploymentConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// DeploymentConditionApplyConfiguration constructs an declarative configuration of the DeploymentCondition type for use with +// apply. +func DeploymentCondition() *DeploymentConditionApplyConfiguration { + return &DeploymentConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithType(value v1beta2.DeploymentConditionType) *DeploymentConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DeploymentConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastUpdateTime field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration { + b.LastUpdateTime = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentspec.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentspec.go new file mode 100644 index 0000000000..6898941ace --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentspec.go @@ -0,0 +1,107 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DeploymentSpecApplyConfiguration represents an declarative configuration of the DeploymentSpec type for use +// with apply. +type DeploymentSpecApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` + Strategy *DeploymentStrategyApplyConfiguration `json:"strategy,omitempty"` + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` + Paused *bool `json:"paused,omitempty"` + ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty"` +} + +// DeploymentSpecApplyConfiguration constructs an declarative configuration of the DeploymentSpec type for use with +// apply. +func DeploymentSpec() *DeploymentSpecApplyConfiguration { + return &DeploymentSpecApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration { + b.Replicas = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Template = value + return b +} + +// WithStrategy sets the Strategy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Strategy field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Strategy = value + return b +} + +// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReadySeconds field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration { + b.MinReadySeconds = &value + return b +} + +// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration { + b.RevisionHistoryLimit = &value + return b +} + +// WithPaused sets the Paused field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Paused field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration { + b.Paused = &value + return b +} + +// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration { + b.ProgressDeadlineSeconds = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstatus.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstatus.go new file mode 100644 index 0000000000..fe99ca9917 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstatus.go @@ -0,0 +1,107 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +// DeploymentStatusApplyConfiguration represents an declarative configuration of the DeploymentStatus type for use +// with apply. +type DeploymentStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Replicas *int32 `json:"replicas,omitempty"` + UpdatedReplicas *int32 `json:"updatedReplicas,omitempty"` + ReadyReplicas *int32 `json:"readyReplicas,omitempty"` + AvailableReplicas *int32 `json:"availableReplicas,omitempty"` + UnavailableReplicas *int32 `json:"unavailableReplicas,omitempty"` + Conditions []DeploymentConditionApplyConfiguration `json:"conditions,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty"` +} + +// DeploymentStatusApplyConfiguration constructs an declarative configuration of the DeploymentStatus type for use with +// apply. +func DeploymentStatus() *DeploymentStatusApplyConfiguration { + return &DeploymentStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.Replicas = &value + return b +} + +// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdatedReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.UpdatedReplicas = &value + return b +} + +// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadyReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.ReadyReplicas = &value + return b +} + +// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AvailableReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.AvailableReplicas = &value + return b +} + +// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UnavailableReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.UnavailableReplicas = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + +// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CollisionCount field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration { + b.CollisionCount = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstrategy.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstrategy.go new file mode 100644 index 0000000000..8714e153e4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstrategy.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + v1beta2 "k8s.io/api/apps/v1beta2" +) + +// DeploymentStrategyApplyConfiguration represents an declarative configuration of the DeploymentStrategy type for use +// with apply. +type DeploymentStrategyApplyConfiguration struct { + Type *v1beta2.DeploymentStrategyType `json:"type,omitempty"` + RollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:"rollingUpdate,omitempty"` +} + +// DeploymentStrategyApplyConfiguration constructs an declarative configuration of the DeploymentStrategy type for use with +// apply. +func DeploymentStrategy() *DeploymentStrategyApplyConfiguration { + return &DeploymentStrategyApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DeploymentStrategyApplyConfiguration) WithType(value v1beta2.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration { + b.Type = &value + return b +} + +// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollingUpdate field is set to the value of the last call. +func (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration { + b.RollingUpdate = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicaset.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicaset.go new file mode 100644 index 0000000000..881c503ae8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicaset.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + appsv1beta2 "k8s.io/api/apps/v1beta2" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ReplicaSetApplyConfiguration represents an declarative configuration of the ReplicaSet type for use +// with apply. +type ReplicaSetApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *ReplicaSetSpecApplyConfiguration `json:"spec,omitempty"` + Status *ReplicaSetStatusApplyConfiguration `json:"status,omitempty"` +} + +// ReplicaSet constructs an declarative configuration of the ReplicaSet type for use with +// apply. +func ReplicaSet(name, namespace string) *ReplicaSetApplyConfiguration { + b := &ReplicaSetApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("ReplicaSet") + b.WithAPIVersion("apps/v1beta2") + return b +} + +// ExtractReplicaSet extracts the applied configuration owned by fieldManager from +// replicaSet. If no managedFields are found in replicaSet for fieldManager, a +// ReplicaSetApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// replicaSet must be a unmodified ReplicaSet API object that was retrieved from the Kubernetes API. +// ExtractReplicaSet provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractReplicaSet(replicaSet *appsv1beta2.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) { + b := &ReplicaSetApplyConfiguration{} + err := managedfields.ExtractInto(replicaSet, internal.Parser().Type("io.k8s.api.apps.v1beta2.ReplicaSet"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(replicaSet.Name) + b.WithNamespace(replicaSet.Namespace) + + b.WithKind("ReplicaSet") + b.WithAPIVersion("apps/v1beta2") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithKind(value string) *ReplicaSetApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithAPIVersion(value string) *ReplicaSetApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithName(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithGenerateName(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithNamespace(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithSelfLink(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithUID(value types.UID) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithResourceVersion(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithGeneration(value int64) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ReplicaSetApplyConfiguration) WithLabels(entries map[string]string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ReplicaSetApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ReplicaSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ReplicaSetApplyConfiguration) WithFinalizers(values ...string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithClusterName(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ReplicaSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithSpec(value *ReplicaSetSpecApplyConfiguration) *ReplicaSetApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithStatus(value *ReplicaSetStatusApplyConfiguration) *ReplicaSetApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetcondition.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetcondition.go new file mode 100644 index 0000000000..47776bfa2e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetcondition.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + v1beta2 "k8s.io/api/apps/v1beta2" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ReplicaSetConditionApplyConfiguration represents an declarative configuration of the ReplicaSetCondition type for use +// with apply. +type ReplicaSetConditionApplyConfiguration struct { + Type *v1beta2.ReplicaSetConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// ReplicaSetConditionApplyConfiguration constructs an declarative configuration of the ReplicaSetCondition type for use with +// apply. +func ReplicaSetCondition() *ReplicaSetConditionApplyConfiguration { + return &ReplicaSetConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithType(value v1beta2.ReplicaSetConditionType) *ReplicaSetConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ReplicaSetConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicaSetConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithReason(value string) *ReplicaSetConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithMessage(value string) *ReplicaSetConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetspec.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetspec.go new file mode 100644 index 0000000000..14d548169e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetspec.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ReplicaSetSpecApplyConfiguration represents an declarative configuration of the ReplicaSetSpec type for use +// with apply. +type ReplicaSetSpecApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` +} + +// ReplicaSetSpecApplyConfiguration constructs an declarative configuration of the ReplicaSetSpec type for use with +// apply. +func ReplicaSetSpec() *ReplicaSetSpecApplyConfiguration { + return &ReplicaSetSpecApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithReplicas(value int32) *ReplicaSetSpecApplyConfiguration { + b.Replicas = &value + return b +} + +// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReadySeconds field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicaSetSpecApplyConfiguration { + b.MinReadySeconds = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ReplicaSetSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *ReplicaSetSpecApplyConfiguration { + b.Template = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetstatus.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetstatus.go new file mode 100644 index 0000000000..7c1b8fb29d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetstatus.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +// ReplicaSetStatusApplyConfiguration represents an declarative configuration of the ReplicaSetStatus type for use +// with apply. +type ReplicaSetStatusApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + FullyLabeledReplicas *int32 `json:"fullyLabeledReplicas,omitempty"` + ReadyReplicas *int32 `json:"readyReplicas,omitempty"` + AvailableReplicas *int32 `json:"availableReplicas,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Conditions []ReplicaSetConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// ReplicaSetStatusApplyConfiguration constructs an declarative configuration of the ReplicaSetStatus type for use with +// apply. +func ReplicaSetStatus() *ReplicaSetStatusApplyConfiguration { + return &ReplicaSetStatusApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.Replicas = &value + return b +} + +// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.FullyLabeledReplicas = &value + return b +} + +// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadyReplicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.ReadyReplicas = &value + return b +} + +// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AvailableReplicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.AvailableReplicas = &value + return b +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicaSetStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *ReplicaSetStatusApplyConfiguration) WithConditions(values ...*ReplicaSetConditionApplyConfiguration) *ReplicaSetStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedaemonset.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedaemonset.go new file mode 100644 index 0000000000..b586b678d4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedaemonset.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// RollingUpdateDaemonSetApplyConfiguration represents an declarative configuration of the RollingUpdateDaemonSet type for use +// with apply. +type RollingUpdateDaemonSetApplyConfiguration struct { + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` +} + +// RollingUpdateDaemonSetApplyConfiguration constructs an declarative configuration of the RollingUpdateDaemonSet type for use with +// apply. +func RollingUpdateDaemonSet() *RollingUpdateDaemonSetApplyConfiguration { + return &RollingUpdateDaemonSetApplyConfiguration{} +} + +// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxUnavailable field is set to the value of the last call. +func (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration { + b.MaxUnavailable = &value + return b +} + +// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxSurge field is set to the value of the last call. +func (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration { + b.MaxSurge = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedeployment.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedeployment.go new file mode 100644 index 0000000000..78ef210081 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedeployment.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// RollingUpdateDeploymentApplyConfiguration represents an declarative configuration of the RollingUpdateDeployment type for use +// with apply. +type RollingUpdateDeploymentApplyConfiguration struct { + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` +} + +// RollingUpdateDeploymentApplyConfiguration constructs an declarative configuration of the RollingUpdateDeployment type for use with +// apply. +func RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration { + return &RollingUpdateDeploymentApplyConfiguration{} +} + +// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxUnavailable field is set to the value of the last call. +func (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration { + b.MaxUnavailable = &value + return b +} + +// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxSurge field is set to the value of the last call. +func (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration { + b.MaxSurge = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatestatefulsetstrategy.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatestatefulsetstrategy.go new file mode 100644 index 0000000000..f828ef70d4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatestatefulsetstrategy.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +// RollingUpdateStatefulSetStrategyApplyConfiguration represents an declarative configuration of the RollingUpdateStatefulSetStrategy type for use +// with apply. +type RollingUpdateStatefulSetStrategyApplyConfiguration struct { + Partition *int32 `json:"partition,omitempty"` +} + +// RollingUpdateStatefulSetStrategyApplyConfiguration constructs an declarative configuration of the RollingUpdateStatefulSetStrategy type for use with +// apply. +func RollingUpdateStatefulSetStrategy() *RollingUpdateStatefulSetStrategyApplyConfiguration { + return &RollingUpdateStatefulSetStrategyApplyConfiguration{} +} + +// WithPartition sets the Partition field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Partition field is set to the value of the last call. +func (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithPartition(value int32) *RollingUpdateStatefulSetStrategyApplyConfiguration { + b.Partition = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulset.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulset.go new file mode 100644 index 0000000000..26a1879472 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulset.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + appsv1beta2 "k8s.io/api/apps/v1beta2" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// StatefulSetApplyConfiguration represents an declarative configuration of the StatefulSet type for use +// with apply. +type StatefulSetApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *StatefulSetSpecApplyConfiguration `json:"spec,omitempty"` + Status *StatefulSetStatusApplyConfiguration `json:"status,omitempty"` +} + +// StatefulSet constructs an declarative configuration of the StatefulSet type for use with +// apply. +func StatefulSet(name, namespace string) *StatefulSetApplyConfiguration { + b := &StatefulSetApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("StatefulSet") + b.WithAPIVersion("apps/v1beta2") + return b +} + +// ExtractStatefulSet extracts the applied configuration owned by fieldManager from +// statefulSet. If no managedFields are found in statefulSet for fieldManager, a +// StatefulSetApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// statefulSet must be a unmodified StatefulSet API object that was retrieved from the Kubernetes API. +// ExtractStatefulSet provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractStatefulSet(statefulSet *appsv1beta2.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) { + b := &StatefulSetApplyConfiguration{} + err := managedfields.ExtractInto(statefulSet, internal.Parser().Type("io.k8s.api.apps.v1beta2.StatefulSet"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(statefulSet.Name) + b.WithNamespace(statefulSet.Namespace) + + b.WithKind("StatefulSet") + b.WithAPIVersion("apps/v1beta2") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithKind(value string) *StatefulSetApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithAPIVersion(value string) *StatefulSetApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithName(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithGenerateName(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithNamespace(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithSelfLink(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithUID(value types.UID) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithResourceVersion(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithGeneration(value int64) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *StatefulSetApplyConfiguration) WithLabels(entries map[string]string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *StatefulSetApplyConfiguration) WithAnnotations(entries map[string]string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *StatefulSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *StatefulSetApplyConfiguration) WithFinalizers(values ...string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithClusterName(value string) *StatefulSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *StatefulSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithSpec(value *StatefulSetSpecApplyConfiguration) *StatefulSetApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *StatefulSetApplyConfiguration) WithStatus(value *StatefulSetStatusApplyConfiguration) *StatefulSetApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetcondition.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetcondition.go new file mode 100644 index 0000000000..c33e68b5e2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetcondition.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + v1beta2 "k8s.io/api/apps/v1beta2" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// StatefulSetConditionApplyConfiguration represents an declarative configuration of the StatefulSetCondition type for use +// with apply. +type StatefulSetConditionApplyConfiguration struct { + Type *v1beta2.StatefulSetConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// StatefulSetConditionApplyConfiguration constructs an declarative configuration of the StatefulSetCondition type for use with +// apply. +func StatefulSetCondition() *StatefulSetConditionApplyConfiguration { + return &StatefulSetConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithType(value v1beta2.StatefulSetConditionType) *StatefulSetConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *StatefulSetConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *StatefulSetConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithReason(value string) *StatefulSetConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *StatefulSetConditionApplyConfiguration) WithMessage(value string) *StatefulSetConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetspec.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetspec.go new file mode 100644 index 0000000000..eb2c8555b9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetspec.go @@ -0,0 +1,113 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + v1beta2 "k8s.io/api/apps/v1beta2" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// StatefulSetSpecApplyConfiguration represents an declarative configuration of the StatefulSetSpec type for use +// with apply. +type StatefulSetSpecApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` + VolumeClaimTemplates []corev1.PersistentVolumeClaimApplyConfiguration `json:"volumeClaimTemplates,omitempty"` + ServiceName *string `json:"serviceName,omitempty"` + PodManagementPolicy *v1beta2.PodManagementPolicyType `json:"podManagementPolicy,omitempty"` + UpdateStrategy *StatefulSetUpdateStrategyApplyConfiguration `json:"updateStrategy,omitempty"` + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` +} + +// StatefulSetSpecApplyConfiguration constructs an declarative configuration of the StatefulSetSpec type for use with +// apply. +func StatefulSetSpec() *StatefulSetSpecApplyConfiguration { + return &StatefulSetSpecApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithReplicas(value int32) *StatefulSetSpecApplyConfiguration { + b.Replicas = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *StatefulSetSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *StatefulSetSpecApplyConfiguration { + b.Template = value + return b +} + +// WithVolumeClaimTemplates adds the given value to the VolumeClaimTemplates field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumeClaimTemplates field. +func (b *StatefulSetSpecApplyConfiguration) WithVolumeClaimTemplates(values ...*corev1.PersistentVolumeClaimApplyConfiguration) *StatefulSetSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithVolumeClaimTemplates") + } + b.VolumeClaimTemplates = append(b.VolumeClaimTemplates, *values[i]) + } + return b +} + +// WithServiceName sets the ServiceName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ServiceName field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithServiceName(value string) *StatefulSetSpecApplyConfiguration { + b.ServiceName = &value + return b +} + +// WithPodManagementPolicy sets the PodManagementPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodManagementPolicy field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithPodManagementPolicy(value v1beta2.PodManagementPolicyType) *StatefulSetSpecApplyConfiguration { + b.PodManagementPolicy = &value + return b +} + +// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdateStrategy field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithUpdateStrategy(value *StatefulSetUpdateStrategyApplyConfiguration) *StatefulSetSpecApplyConfiguration { + b.UpdateStrategy = value + return b +} + +// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call. +func (b *StatefulSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *StatefulSetSpecApplyConfiguration { + b.RevisionHistoryLimit = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetstatus.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetstatus.go new file mode 100644 index 0000000000..73f7c0b3f5 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetstatus.go @@ -0,0 +1,116 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +// StatefulSetStatusApplyConfiguration represents an declarative configuration of the StatefulSetStatus type for use +// with apply. +type StatefulSetStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Replicas *int32 `json:"replicas,omitempty"` + ReadyReplicas *int32 `json:"readyReplicas,omitempty"` + CurrentReplicas *int32 `json:"currentReplicas,omitempty"` + UpdatedReplicas *int32 `json:"updatedReplicas,omitempty"` + CurrentRevision *string `json:"currentRevision,omitempty"` + UpdateRevision *string `json:"updateRevision,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty"` + Conditions []StatefulSetConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// StatefulSetStatusApplyConfiguration constructs an declarative configuration of the StatefulSetStatus type for use with +// apply. +func StatefulSetStatus() *StatefulSetStatusApplyConfiguration { + return &StatefulSetStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithObservedGeneration(value int64) *StatefulSetStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.Replicas = &value + return b +} + +// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadyReplicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithReadyReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.ReadyReplicas = &value + return b +} + +// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentReplicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithCurrentReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.CurrentReplicas = &value + return b +} + +// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdatedReplicas field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithUpdatedReplicas(value int32) *StatefulSetStatusApplyConfiguration { + b.UpdatedReplicas = &value + return b +} + +// WithCurrentRevision sets the CurrentRevision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentRevision field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithCurrentRevision(value string) *StatefulSetStatusApplyConfiguration { + b.CurrentRevision = &value + return b +} + +// WithUpdateRevision sets the UpdateRevision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdateRevision field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithUpdateRevision(value string) *StatefulSetStatusApplyConfiguration { + b.UpdateRevision = &value + return b +} + +// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CollisionCount field is set to the value of the last call. +func (b *StatefulSetStatusApplyConfiguration) WithCollisionCount(value int32) *StatefulSetStatusApplyConfiguration { + b.CollisionCount = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *StatefulSetStatusApplyConfiguration) WithConditions(values ...*StatefulSetConditionApplyConfiguration) *StatefulSetStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetupdatestrategy.go b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetupdatestrategy.go new file mode 100644 index 0000000000..03c2914917 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetupdatestrategy.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta2 + +import ( + v1beta2 "k8s.io/api/apps/v1beta2" +) + +// StatefulSetUpdateStrategyApplyConfiguration represents an declarative configuration of the StatefulSetUpdateStrategy type for use +// with apply. +type StatefulSetUpdateStrategyApplyConfiguration struct { + Type *v1beta2.StatefulSetUpdateStrategyType `json:"type,omitempty"` + RollingUpdate *RollingUpdateStatefulSetStrategyApplyConfiguration `json:"rollingUpdate,omitempty"` +} + +// StatefulSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the StatefulSetUpdateStrategy type for use with +// apply. +func StatefulSetUpdateStrategy() *StatefulSetUpdateStrategyApplyConfiguration { + return &StatefulSetUpdateStrategyApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *StatefulSetUpdateStrategyApplyConfiguration) WithType(value v1beta2.StatefulSetUpdateStrategyType) *StatefulSetUpdateStrategyApplyConfiguration { + b.Type = &value + return b +} + +// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollingUpdate field is set to the value of the last call. +func (b *StatefulSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateStatefulSetStrategyApplyConfiguration) *StatefulSetUpdateStrategyApplyConfiguration { + b.RollingUpdate = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/crossversionobjectreference.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/crossversionobjectreference.go new file mode 100644 index 0000000000..0eac22692c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/crossversionobjectreference.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// CrossVersionObjectReferenceApplyConfiguration represents an declarative configuration of the CrossVersionObjectReference type for use +// with apply. +type CrossVersionObjectReferenceApplyConfiguration struct { + Kind *string `json:"kind,omitempty"` + Name *string `json:"name,omitempty"` + APIVersion *string `json:"apiVersion,omitempty"` +} + +// CrossVersionObjectReferenceApplyConfiguration constructs an declarative configuration of the CrossVersionObjectReference type for use with +// apply. +func CrossVersionObjectReference() *CrossVersionObjectReferenceApplyConfiguration { + return &CrossVersionObjectReferenceApplyConfiguration{} +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CrossVersionObjectReferenceApplyConfiguration) WithKind(value string) *CrossVersionObjectReferenceApplyConfiguration { + b.Kind = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CrossVersionObjectReferenceApplyConfiguration) WithName(value string) *CrossVersionObjectReferenceApplyConfiguration { + b.Name = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CrossVersionObjectReferenceApplyConfiguration) WithAPIVersion(value string) *CrossVersionObjectReferenceApplyConfiguration { + b.APIVersion = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscaler.go new file mode 100644 index 0000000000..6736bfb17c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscaler.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apiautoscalingv1 "k8s.io/api/autoscaling/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// HorizontalPodAutoscalerApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscaler type for use +// with apply. +type HorizontalPodAutoscalerApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *HorizontalPodAutoscalerSpecApplyConfiguration `json:"spec,omitempty"` + Status *HorizontalPodAutoscalerStatusApplyConfiguration `json:"status,omitempty"` +} + +// HorizontalPodAutoscaler constructs an declarative configuration of the HorizontalPodAutoscaler type for use with +// apply. +func HorizontalPodAutoscaler(name, namespace string) *HorizontalPodAutoscalerApplyConfiguration { + b := &HorizontalPodAutoscalerApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("HorizontalPodAutoscaler") + b.WithAPIVersion("autoscaling/v1") + return b +} + +// ExtractHorizontalPodAutoscaler extracts the applied configuration owned by fieldManager from +// horizontalPodAutoscaler. If no managedFields are found in horizontalPodAutoscaler for fieldManager, a +// HorizontalPodAutoscalerApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// horizontalPodAutoscaler must be a unmodified HorizontalPodAutoscaler API object that was retrieved from the Kubernetes API. +// ExtractHorizontalPodAutoscaler provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractHorizontalPodAutoscaler(horizontalPodAutoscaler *apiautoscalingv1.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) { + b := &HorizontalPodAutoscalerApplyConfiguration{} + err := managedfields.ExtractInto(horizontalPodAutoscaler, internal.Parser().Type("io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(horizontalPodAutoscaler.Name) + b.WithNamespace(horizontalPodAutoscaler.Namespace) + + b.WithKind("HorizontalPodAutoscaler") + b.WithAPIVersion("autoscaling/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithKind(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithAPIVersion(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithName(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithGenerateName(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithNamespace(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithSelfLink(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithUID(value types.UID) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithResourceVersion(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithGeneration(value int64) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithLabels(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithAnnotations(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithFinalizers(values ...string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithClusterName(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *HorizontalPodAutoscalerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithSpec(value *HorizontalPodAutoscalerSpecApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithStatus(value *HorizontalPodAutoscalerStatusApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerspec.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerspec.go new file mode 100644 index 0000000000..561ac60d35 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerspec.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// HorizontalPodAutoscalerSpecApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerSpec type for use +// with apply. +type HorizontalPodAutoscalerSpecApplyConfiguration struct { + ScaleTargetRef *CrossVersionObjectReferenceApplyConfiguration `json:"scaleTargetRef,omitempty"` + MinReplicas *int32 `json:"minReplicas,omitempty"` + MaxReplicas *int32 `json:"maxReplicas,omitempty"` + TargetCPUUtilizationPercentage *int32 `json:"targetCPUUtilizationPercentage,omitempty"` +} + +// HorizontalPodAutoscalerSpecApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerSpec type for use with +// apply. +func HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration { + return &HorizontalPodAutoscalerSpecApplyConfiguration{} +} + +// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ScaleTargetRef field is set to the value of the last call. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration { + b.ScaleTargetRef = value + return b +} + +// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration { + b.MinReplicas = &value + return b +} + +// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration { + b.MaxReplicas = &value + return b +} + +// WithTargetCPUUtilizationPercentage sets the TargetCPUUtilizationPercentage field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetCPUUtilizationPercentage field is set to the value of the last call. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithTargetCPUUtilizationPercentage(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration { + b.TargetCPUUtilizationPercentage = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerstatus.go new file mode 100644 index 0000000000..abc2e05aa7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerstatus.go @@ -0,0 +1,79 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// HorizontalPodAutoscalerStatusApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerStatus type for use +// with apply. +type HorizontalPodAutoscalerStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + LastScaleTime *v1.Time `json:"lastScaleTime,omitempty"` + CurrentReplicas *int32 `json:"currentReplicas,omitempty"` + DesiredReplicas *int32 `json:"desiredReplicas,omitempty"` + CurrentCPUUtilizationPercentage *int32 `json:"currentCPUUtilizationPercentage,omitempty"` +} + +// HorizontalPodAutoscalerStatusApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerStatus type for use with +// apply. +func HorizontalPodAutoscalerStatus() *HorizontalPodAutoscalerStatusApplyConfiguration { + return &HorizontalPodAutoscalerStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithObservedGeneration(value int64) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithLastScaleTime sets the LastScaleTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastScaleTime field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithLastScaleTime(value v1.Time) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.LastScaleTime = &value + return b +} + +// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.CurrentReplicas = &value + return b +} + +// WithDesiredReplicas sets the DesiredReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DesiredReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithDesiredReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.DesiredReplicas = &value + return b +} + +// WithCurrentCPUUtilizationPercentage sets the CurrentCPUUtilizationPercentage field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentCPUUtilizationPercentage field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentCPUUtilizationPercentage(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.CurrentCPUUtilizationPercentage = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricsource.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricsource.go new file mode 100644 index 0000000000..2594e8e072 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricsource.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + v1 "k8s.io/api/core/v1" + resource "k8s.io/apimachinery/pkg/api/resource" +) + +// ContainerResourceMetricSourceApplyConfiguration represents an declarative configuration of the ContainerResourceMetricSource type for use +// with apply. +type ContainerResourceMetricSourceApplyConfiguration struct { + Name *v1.ResourceName `json:"name,omitempty"` + TargetAverageUtilization *int32 `json:"targetAverageUtilization,omitempty"` + TargetAverageValue *resource.Quantity `json:"targetAverageValue,omitempty"` + Container *string `json:"container,omitempty"` +} + +// ContainerResourceMetricSourceApplyConfiguration constructs an declarative configuration of the ContainerResourceMetricSource type for use with +// apply. +func ContainerResourceMetricSource() *ContainerResourceMetricSourceApplyConfiguration { + return &ContainerResourceMetricSourceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ContainerResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricSourceApplyConfiguration { + b.Name = &value + return b +} + +// WithTargetAverageUtilization sets the TargetAverageUtilization field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetAverageUtilization field is set to the value of the last call. +func (b *ContainerResourceMetricSourceApplyConfiguration) WithTargetAverageUtilization(value int32) *ContainerResourceMetricSourceApplyConfiguration { + b.TargetAverageUtilization = &value + return b +} + +// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetAverageValue field is set to the value of the last call. +func (b *ContainerResourceMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *ContainerResourceMetricSourceApplyConfiguration { + b.TargetAverageValue = &value + return b +} + +// WithContainer sets the Container field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Container field is set to the value of the last call. +func (b *ContainerResourceMetricSourceApplyConfiguration) WithContainer(value string) *ContainerResourceMetricSourceApplyConfiguration { + b.Container = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricstatus.go new file mode 100644 index 0000000000..ae897237c4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricstatus.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + v1 "k8s.io/api/core/v1" + resource "k8s.io/apimachinery/pkg/api/resource" +) + +// ContainerResourceMetricStatusApplyConfiguration represents an declarative configuration of the ContainerResourceMetricStatus type for use +// with apply. +type ContainerResourceMetricStatusApplyConfiguration struct { + Name *v1.ResourceName `json:"name,omitempty"` + CurrentAverageUtilization *int32 `json:"currentAverageUtilization,omitempty"` + CurrentAverageValue *resource.Quantity `json:"currentAverageValue,omitempty"` + Container *string `json:"container,omitempty"` +} + +// ContainerResourceMetricStatusApplyConfiguration constructs an declarative configuration of the ContainerResourceMetricStatus type for use with +// apply. +func ContainerResourceMetricStatus() *ContainerResourceMetricStatusApplyConfiguration { + return &ContainerResourceMetricStatusApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ContainerResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricStatusApplyConfiguration { + b.Name = &value + return b +} + +// WithCurrentAverageUtilization sets the CurrentAverageUtilization field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentAverageUtilization field is set to the value of the last call. +func (b *ContainerResourceMetricStatusApplyConfiguration) WithCurrentAverageUtilization(value int32) *ContainerResourceMetricStatusApplyConfiguration { + b.CurrentAverageUtilization = &value + return b +} + +// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentAverageValue field is set to the value of the last call. +func (b *ContainerResourceMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *ContainerResourceMetricStatusApplyConfiguration { + b.CurrentAverageValue = &value + return b +} + +// WithContainer sets the Container field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Container field is set to the value of the last call. +func (b *ContainerResourceMetricStatusApplyConfiguration) WithContainer(value string) *ContainerResourceMetricStatusApplyConfiguration { + b.Container = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/crossversionobjectreference.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/crossversionobjectreference.go new file mode 100644 index 0000000000..fe3d15e866 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/crossversionobjectreference.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +// CrossVersionObjectReferenceApplyConfiguration represents an declarative configuration of the CrossVersionObjectReference type for use +// with apply. +type CrossVersionObjectReferenceApplyConfiguration struct { + Kind *string `json:"kind,omitempty"` + Name *string `json:"name,omitempty"` + APIVersion *string `json:"apiVersion,omitempty"` +} + +// CrossVersionObjectReferenceApplyConfiguration constructs an declarative configuration of the CrossVersionObjectReference type for use with +// apply. +func CrossVersionObjectReference() *CrossVersionObjectReferenceApplyConfiguration { + return &CrossVersionObjectReferenceApplyConfiguration{} +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CrossVersionObjectReferenceApplyConfiguration) WithKind(value string) *CrossVersionObjectReferenceApplyConfiguration { + b.Kind = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CrossVersionObjectReferenceApplyConfiguration) WithName(value string) *CrossVersionObjectReferenceApplyConfiguration { + b.Name = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CrossVersionObjectReferenceApplyConfiguration) WithAPIVersion(value string) *CrossVersionObjectReferenceApplyConfiguration { + b.APIVersion = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricsource.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricsource.go new file mode 100644 index 0000000000..c118e6ca1e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricsource.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + resource "k8s.io/apimachinery/pkg/api/resource" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ExternalMetricSourceApplyConfiguration represents an declarative configuration of the ExternalMetricSource type for use +// with apply. +type ExternalMetricSourceApplyConfiguration struct { + MetricName *string `json:"metricName,omitempty"` + MetricSelector *v1.LabelSelectorApplyConfiguration `json:"metricSelector,omitempty"` + TargetValue *resource.Quantity `json:"targetValue,omitempty"` + TargetAverageValue *resource.Quantity `json:"targetAverageValue,omitempty"` +} + +// ExternalMetricSourceApplyConfiguration constructs an declarative configuration of the ExternalMetricSource type for use with +// apply. +func ExternalMetricSource() *ExternalMetricSourceApplyConfiguration { + return &ExternalMetricSourceApplyConfiguration{} +} + +// WithMetricName sets the MetricName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MetricName field is set to the value of the last call. +func (b *ExternalMetricSourceApplyConfiguration) WithMetricName(value string) *ExternalMetricSourceApplyConfiguration { + b.MetricName = &value + return b +} + +// WithMetricSelector sets the MetricSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MetricSelector field is set to the value of the last call. +func (b *ExternalMetricSourceApplyConfiguration) WithMetricSelector(value *v1.LabelSelectorApplyConfiguration) *ExternalMetricSourceApplyConfiguration { + b.MetricSelector = value + return b +} + +// WithTargetValue sets the TargetValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetValue field is set to the value of the last call. +func (b *ExternalMetricSourceApplyConfiguration) WithTargetValue(value resource.Quantity) *ExternalMetricSourceApplyConfiguration { + b.TargetValue = &value + return b +} + +// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetAverageValue field is set to the value of the last call. +func (b *ExternalMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *ExternalMetricSourceApplyConfiguration { + b.TargetAverageValue = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricstatus.go new file mode 100644 index 0000000000..ab771214e2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricstatus.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + resource "k8s.io/apimachinery/pkg/api/resource" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ExternalMetricStatusApplyConfiguration represents an declarative configuration of the ExternalMetricStatus type for use +// with apply. +type ExternalMetricStatusApplyConfiguration struct { + MetricName *string `json:"metricName,omitempty"` + MetricSelector *v1.LabelSelectorApplyConfiguration `json:"metricSelector,omitempty"` + CurrentValue *resource.Quantity `json:"currentValue,omitempty"` + CurrentAverageValue *resource.Quantity `json:"currentAverageValue,omitempty"` +} + +// ExternalMetricStatusApplyConfiguration constructs an declarative configuration of the ExternalMetricStatus type for use with +// apply. +func ExternalMetricStatus() *ExternalMetricStatusApplyConfiguration { + return &ExternalMetricStatusApplyConfiguration{} +} + +// WithMetricName sets the MetricName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MetricName field is set to the value of the last call. +func (b *ExternalMetricStatusApplyConfiguration) WithMetricName(value string) *ExternalMetricStatusApplyConfiguration { + b.MetricName = &value + return b +} + +// WithMetricSelector sets the MetricSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MetricSelector field is set to the value of the last call. +func (b *ExternalMetricStatusApplyConfiguration) WithMetricSelector(value *v1.LabelSelectorApplyConfiguration) *ExternalMetricStatusApplyConfiguration { + b.MetricSelector = value + return b +} + +// WithCurrentValue sets the CurrentValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentValue field is set to the value of the last call. +func (b *ExternalMetricStatusApplyConfiguration) WithCurrentValue(value resource.Quantity) *ExternalMetricStatusApplyConfiguration { + b.CurrentValue = &value + return b +} + +// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentAverageValue field is set to the value of the last call. +func (b *ExternalMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *ExternalMetricStatusApplyConfiguration { + b.CurrentAverageValue = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscaler.go new file mode 100644 index 0000000000..280ae05095 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscaler.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + autoscalingv2beta1 "k8s.io/api/autoscaling/v2beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// HorizontalPodAutoscalerApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscaler type for use +// with apply. +type HorizontalPodAutoscalerApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *HorizontalPodAutoscalerSpecApplyConfiguration `json:"spec,omitempty"` + Status *HorizontalPodAutoscalerStatusApplyConfiguration `json:"status,omitempty"` +} + +// HorizontalPodAutoscaler constructs an declarative configuration of the HorizontalPodAutoscaler type for use with +// apply. +func HorizontalPodAutoscaler(name, namespace string) *HorizontalPodAutoscalerApplyConfiguration { + b := &HorizontalPodAutoscalerApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("HorizontalPodAutoscaler") + b.WithAPIVersion("autoscaling/v2beta1") + return b +} + +// ExtractHorizontalPodAutoscaler extracts the applied configuration owned by fieldManager from +// horizontalPodAutoscaler. If no managedFields are found in horizontalPodAutoscaler for fieldManager, a +// HorizontalPodAutoscalerApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// horizontalPodAutoscaler must be a unmodified HorizontalPodAutoscaler API object that was retrieved from the Kubernetes API. +// ExtractHorizontalPodAutoscaler provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) { + b := &HorizontalPodAutoscalerApplyConfiguration{} + err := managedfields.ExtractInto(horizontalPodAutoscaler, internal.Parser().Type("io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(horizontalPodAutoscaler.Name) + b.WithNamespace(horizontalPodAutoscaler.Namespace) + + b.WithKind("HorizontalPodAutoscaler") + b.WithAPIVersion("autoscaling/v2beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithKind(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithAPIVersion(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithName(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithGenerateName(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithNamespace(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithSelfLink(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithUID(value types.UID) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithResourceVersion(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithGeneration(value int64) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithLabels(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithAnnotations(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithFinalizers(values ...string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithClusterName(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *HorizontalPodAutoscalerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithSpec(value *HorizontalPodAutoscalerSpecApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithStatus(value *HorizontalPodAutoscalerStatusApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalercondition.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalercondition.go new file mode 100644 index 0000000000..de3e6ea5cd --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalercondition.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + v2beta1 "k8s.io/api/autoscaling/v2beta1" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// HorizontalPodAutoscalerConditionApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerCondition type for use +// with apply. +type HorizontalPodAutoscalerConditionApplyConfiguration struct { + Type *v2beta1.HorizontalPodAutoscalerConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// HorizontalPodAutoscalerConditionApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerCondition type for use with +// apply. +func HorizontalPodAutoscalerCondition() *HorizontalPodAutoscalerConditionApplyConfiguration { + return &HorizontalPodAutoscalerConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithType(value v2beta1.HorizontalPodAutoscalerConditionType) *HorizontalPodAutoscalerConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *HorizontalPodAutoscalerConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *HorizontalPodAutoscalerConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithReason(value string) *HorizontalPodAutoscalerConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithMessage(value string) *HorizontalPodAutoscalerConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerspec.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerspec.go new file mode 100644 index 0000000000..761d94a850 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerspec.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +// HorizontalPodAutoscalerSpecApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerSpec type for use +// with apply. +type HorizontalPodAutoscalerSpecApplyConfiguration struct { + ScaleTargetRef *CrossVersionObjectReferenceApplyConfiguration `json:"scaleTargetRef,omitempty"` + MinReplicas *int32 `json:"minReplicas,omitempty"` + MaxReplicas *int32 `json:"maxReplicas,omitempty"` + Metrics []MetricSpecApplyConfiguration `json:"metrics,omitempty"` +} + +// HorizontalPodAutoscalerSpecApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerSpec type for use with +// apply. +func HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration { + return &HorizontalPodAutoscalerSpecApplyConfiguration{} +} + +// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ScaleTargetRef field is set to the value of the last call. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration { + b.ScaleTargetRef = value + return b +} + +// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration { + b.MinReplicas = &value + return b +} + +// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration { + b.MaxReplicas = &value + return b +} + +// WithMetrics adds the given value to the Metrics field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Metrics field. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMetrics(values ...*MetricSpecApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithMetrics") + } + b.Metrics = append(b.Metrics, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerstatus.go new file mode 100644 index 0000000000..95ec5be43b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerstatus.go @@ -0,0 +1,98 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// HorizontalPodAutoscalerStatusApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerStatus type for use +// with apply. +type HorizontalPodAutoscalerStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + LastScaleTime *v1.Time `json:"lastScaleTime,omitempty"` + CurrentReplicas *int32 `json:"currentReplicas,omitempty"` + DesiredReplicas *int32 `json:"desiredReplicas,omitempty"` + CurrentMetrics []MetricStatusApplyConfiguration `json:"currentMetrics,omitempty"` + Conditions []HorizontalPodAutoscalerConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// HorizontalPodAutoscalerStatusApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerStatus type for use with +// apply. +func HorizontalPodAutoscalerStatus() *HorizontalPodAutoscalerStatusApplyConfiguration { + return &HorizontalPodAutoscalerStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithObservedGeneration(value int64) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithLastScaleTime sets the LastScaleTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastScaleTime field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithLastScaleTime(value v1.Time) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.LastScaleTime = &value + return b +} + +// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.CurrentReplicas = &value + return b +} + +// WithDesiredReplicas sets the DesiredReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DesiredReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithDesiredReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.DesiredReplicas = &value + return b +} + +// WithCurrentMetrics adds the given value to the CurrentMetrics field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the CurrentMetrics field. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentMetrics(values ...*MetricStatusApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithCurrentMetrics") + } + b.CurrentMetrics = append(b.CurrentMetrics, *values[i]) + } + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithConditions(values ...*HorizontalPodAutoscalerConditionApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricspec.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricspec.go new file mode 100644 index 0000000000..70beec84e0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricspec.go @@ -0,0 +1,88 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + v2beta1 "k8s.io/api/autoscaling/v2beta1" +) + +// MetricSpecApplyConfiguration represents an declarative configuration of the MetricSpec type for use +// with apply. +type MetricSpecApplyConfiguration struct { + Type *v2beta1.MetricSourceType `json:"type,omitempty"` + Object *ObjectMetricSourceApplyConfiguration `json:"object,omitempty"` + Pods *PodsMetricSourceApplyConfiguration `json:"pods,omitempty"` + Resource *ResourceMetricSourceApplyConfiguration `json:"resource,omitempty"` + ContainerResource *ContainerResourceMetricSourceApplyConfiguration `json:"containerResource,omitempty"` + External *ExternalMetricSourceApplyConfiguration `json:"external,omitempty"` +} + +// MetricSpecApplyConfiguration constructs an declarative configuration of the MetricSpec type for use with +// apply. +func MetricSpec() *MetricSpecApplyConfiguration { + return &MetricSpecApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithType(value v2beta1.MetricSourceType) *MetricSpecApplyConfiguration { + b.Type = &value + return b +} + +// WithObject sets the Object field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Object field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithObject(value *ObjectMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration { + b.Object = value + return b +} + +// WithPods sets the Pods field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Pods field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithPods(value *PodsMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration { + b.Pods = value + return b +} + +// WithResource sets the Resource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resource field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithResource(value *ResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration { + b.Resource = value + return b +} + +// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ContainerResource field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithContainerResource(value *ContainerResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration { + b.ContainerResource = value + return b +} + +// WithExternal sets the External field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the External field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithExternal(value *ExternalMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration { + b.External = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricstatus.go new file mode 100644 index 0000000000..b03ea2f9e4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricstatus.go @@ -0,0 +1,88 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + v2beta1 "k8s.io/api/autoscaling/v2beta1" +) + +// MetricStatusApplyConfiguration represents an declarative configuration of the MetricStatus type for use +// with apply. +type MetricStatusApplyConfiguration struct { + Type *v2beta1.MetricSourceType `json:"type,omitempty"` + Object *ObjectMetricStatusApplyConfiguration `json:"object,omitempty"` + Pods *PodsMetricStatusApplyConfiguration `json:"pods,omitempty"` + Resource *ResourceMetricStatusApplyConfiguration `json:"resource,omitempty"` + ContainerResource *ContainerResourceMetricStatusApplyConfiguration `json:"containerResource,omitempty"` + External *ExternalMetricStatusApplyConfiguration `json:"external,omitempty"` +} + +// MetricStatusApplyConfiguration constructs an declarative configuration of the MetricStatus type for use with +// apply. +func MetricStatus() *MetricStatusApplyConfiguration { + return &MetricStatusApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithType(value v2beta1.MetricSourceType) *MetricStatusApplyConfiguration { + b.Type = &value + return b +} + +// WithObject sets the Object field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Object field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithObject(value *ObjectMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration { + b.Object = value + return b +} + +// WithPods sets the Pods field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Pods field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithPods(value *PodsMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration { + b.Pods = value + return b +} + +// WithResource sets the Resource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resource field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithResource(value *ResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration { + b.Resource = value + return b +} + +// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ContainerResource field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithContainerResource(value *ContainerResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration { + b.ContainerResource = value + return b +} + +// WithExternal sets the External field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the External field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithExternal(value *ExternalMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration { + b.External = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricsource.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricsource.go new file mode 100644 index 0000000000..07d467972e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricsource.go @@ -0,0 +1,80 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + resource "k8s.io/apimachinery/pkg/api/resource" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ObjectMetricSourceApplyConfiguration represents an declarative configuration of the ObjectMetricSource type for use +// with apply. +type ObjectMetricSourceApplyConfiguration struct { + Target *CrossVersionObjectReferenceApplyConfiguration `json:"target,omitempty"` + MetricName *string `json:"metricName,omitempty"` + TargetValue *resource.Quantity `json:"targetValue,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + AverageValue *resource.Quantity `json:"averageValue,omitempty"` +} + +// ObjectMetricSourceApplyConfiguration constructs an declarative configuration of the ObjectMetricSource type for use with +// apply. +func ObjectMetricSource() *ObjectMetricSourceApplyConfiguration { + return &ObjectMetricSourceApplyConfiguration{} +} + +// WithTarget sets the Target field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Target field is set to the value of the last call. +func (b *ObjectMetricSourceApplyConfiguration) WithTarget(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricSourceApplyConfiguration { + b.Target = value + return b +} + +// WithMetricName sets the MetricName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MetricName field is set to the value of the last call. +func (b *ObjectMetricSourceApplyConfiguration) WithMetricName(value string) *ObjectMetricSourceApplyConfiguration { + b.MetricName = &value + return b +} + +// WithTargetValue sets the TargetValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetValue field is set to the value of the last call. +func (b *ObjectMetricSourceApplyConfiguration) WithTargetValue(value resource.Quantity) *ObjectMetricSourceApplyConfiguration { + b.TargetValue = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *ObjectMetricSourceApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ObjectMetricSourceApplyConfiguration { + b.Selector = value + return b +} + +// WithAverageValue sets the AverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AverageValue field is set to the value of the last call. +func (b *ObjectMetricSourceApplyConfiguration) WithAverageValue(value resource.Quantity) *ObjectMetricSourceApplyConfiguration { + b.AverageValue = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricstatus.go new file mode 100644 index 0000000000..b5e0d3e3d2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricstatus.go @@ -0,0 +1,80 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + resource "k8s.io/apimachinery/pkg/api/resource" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ObjectMetricStatusApplyConfiguration represents an declarative configuration of the ObjectMetricStatus type for use +// with apply. +type ObjectMetricStatusApplyConfiguration struct { + Target *CrossVersionObjectReferenceApplyConfiguration `json:"target,omitempty"` + MetricName *string `json:"metricName,omitempty"` + CurrentValue *resource.Quantity `json:"currentValue,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + AverageValue *resource.Quantity `json:"averageValue,omitempty"` +} + +// ObjectMetricStatusApplyConfiguration constructs an declarative configuration of the ObjectMetricStatus type for use with +// apply. +func ObjectMetricStatus() *ObjectMetricStatusApplyConfiguration { + return &ObjectMetricStatusApplyConfiguration{} +} + +// WithTarget sets the Target field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Target field is set to the value of the last call. +func (b *ObjectMetricStatusApplyConfiguration) WithTarget(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricStatusApplyConfiguration { + b.Target = value + return b +} + +// WithMetricName sets the MetricName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MetricName field is set to the value of the last call. +func (b *ObjectMetricStatusApplyConfiguration) WithMetricName(value string) *ObjectMetricStatusApplyConfiguration { + b.MetricName = &value + return b +} + +// WithCurrentValue sets the CurrentValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentValue field is set to the value of the last call. +func (b *ObjectMetricStatusApplyConfiguration) WithCurrentValue(value resource.Quantity) *ObjectMetricStatusApplyConfiguration { + b.CurrentValue = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *ObjectMetricStatusApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ObjectMetricStatusApplyConfiguration { + b.Selector = value + return b +} + +// WithAverageValue sets the AverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AverageValue field is set to the value of the last call. +func (b *ObjectMetricStatusApplyConfiguration) WithAverageValue(value resource.Quantity) *ObjectMetricStatusApplyConfiguration { + b.AverageValue = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricsource.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricsource.go new file mode 100644 index 0000000000..a4122b8989 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricsource.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + resource "k8s.io/apimachinery/pkg/api/resource" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodsMetricSourceApplyConfiguration represents an declarative configuration of the PodsMetricSource type for use +// with apply. +type PodsMetricSourceApplyConfiguration struct { + MetricName *string `json:"metricName,omitempty"` + TargetAverageValue *resource.Quantity `json:"targetAverageValue,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` +} + +// PodsMetricSourceApplyConfiguration constructs an declarative configuration of the PodsMetricSource type for use with +// apply. +func PodsMetricSource() *PodsMetricSourceApplyConfiguration { + return &PodsMetricSourceApplyConfiguration{} +} + +// WithMetricName sets the MetricName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MetricName field is set to the value of the last call. +func (b *PodsMetricSourceApplyConfiguration) WithMetricName(value string) *PodsMetricSourceApplyConfiguration { + b.MetricName = &value + return b +} + +// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetAverageValue field is set to the value of the last call. +func (b *PodsMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *PodsMetricSourceApplyConfiguration { + b.TargetAverageValue = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *PodsMetricSourceApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *PodsMetricSourceApplyConfiguration { + b.Selector = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricstatus.go new file mode 100644 index 0000000000..d6172011b7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricstatus.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + resource "k8s.io/apimachinery/pkg/api/resource" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodsMetricStatusApplyConfiguration represents an declarative configuration of the PodsMetricStatus type for use +// with apply. +type PodsMetricStatusApplyConfiguration struct { + MetricName *string `json:"metricName,omitempty"` + CurrentAverageValue *resource.Quantity `json:"currentAverageValue,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` +} + +// PodsMetricStatusApplyConfiguration constructs an declarative configuration of the PodsMetricStatus type for use with +// apply. +func PodsMetricStatus() *PodsMetricStatusApplyConfiguration { + return &PodsMetricStatusApplyConfiguration{} +} + +// WithMetricName sets the MetricName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MetricName field is set to the value of the last call. +func (b *PodsMetricStatusApplyConfiguration) WithMetricName(value string) *PodsMetricStatusApplyConfiguration { + b.MetricName = &value + return b +} + +// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentAverageValue field is set to the value of the last call. +func (b *PodsMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *PodsMetricStatusApplyConfiguration { + b.CurrentAverageValue = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *PodsMetricStatusApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *PodsMetricStatusApplyConfiguration { + b.Selector = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricsource.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricsource.go new file mode 100644 index 0000000000..804f3f4926 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricsource.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + v1 "k8s.io/api/core/v1" + resource "k8s.io/apimachinery/pkg/api/resource" +) + +// ResourceMetricSourceApplyConfiguration represents an declarative configuration of the ResourceMetricSource type for use +// with apply. +type ResourceMetricSourceApplyConfiguration struct { + Name *v1.ResourceName `json:"name,omitempty"` + TargetAverageUtilization *int32 `json:"targetAverageUtilization,omitempty"` + TargetAverageValue *resource.Quantity `json:"targetAverageValue,omitempty"` +} + +// ResourceMetricSourceApplyConfiguration constructs an declarative configuration of the ResourceMetricSource type for use with +// apply. +func ResourceMetricSource() *ResourceMetricSourceApplyConfiguration { + return &ResourceMetricSourceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricSourceApplyConfiguration { + b.Name = &value + return b +} + +// WithTargetAverageUtilization sets the TargetAverageUtilization field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetAverageUtilization field is set to the value of the last call. +func (b *ResourceMetricSourceApplyConfiguration) WithTargetAverageUtilization(value int32) *ResourceMetricSourceApplyConfiguration { + b.TargetAverageUtilization = &value + return b +} + +// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetAverageValue field is set to the value of the last call. +func (b *ResourceMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *ResourceMetricSourceApplyConfiguration { + b.TargetAverageValue = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricstatus.go new file mode 100644 index 0000000000..5fdc29c132 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricstatus.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta1 + +import ( + v1 "k8s.io/api/core/v1" + resource "k8s.io/apimachinery/pkg/api/resource" +) + +// ResourceMetricStatusApplyConfiguration represents an declarative configuration of the ResourceMetricStatus type for use +// with apply. +type ResourceMetricStatusApplyConfiguration struct { + Name *v1.ResourceName `json:"name,omitempty"` + CurrentAverageUtilization *int32 `json:"currentAverageUtilization,omitempty"` + CurrentAverageValue *resource.Quantity `json:"currentAverageValue,omitempty"` +} + +// ResourceMetricStatusApplyConfiguration constructs an declarative configuration of the ResourceMetricStatus type for use with +// apply. +func ResourceMetricStatus() *ResourceMetricStatusApplyConfiguration { + return &ResourceMetricStatusApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricStatusApplyConfiguration { + b.Name = &value + return b +} + +// WithCurrentAverageUtilization sets the CurrentAverageUtilization field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentAverageUtilization field is set to the value of the last call. +func (b *ResourceMetricStatusApplyConfiguration) WithCurrentAverageUtilization(value int32) *ResourceMetricStatusApplyConfiguration { + b.CurrentAverageUtilization = &value + return b +} + +// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentAverageValue field is set to the value of the last call. +func (b *ResourceMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *ResourceMetricStatusApplyConfiguration { + b.CurrentAverageValue = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricsource.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricsource.go new file mode 100644 index 0000000000..aa334744ea --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricsource.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v1 "k8s.io/api/core/v1" +) + +// ContainerResourceMetricSourceApplyConfiguration represents an declarative configuration of the ContainerResourceMetricSource type for use +// with apply. +type ContainerResourceMetricSourceApplyConfiguration struct { + Name *v1.ResourceName `json:"name,omitempty"` + Target *MetricTargetApplyConfiguration `json:"target,omitempty"` + Container *string `json:"container,omitempty"` +} + +// ContainerResourceMetricSourceApplyConfiguration constructs an declarative configuration of the ContainerResourceMetricSource type for use with +// apply. +func ContainerResourceMetricSource() *ContainerResourceMetricSourceApplyConfiguration { + return &ContainerResourceMetricSourceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ContainerResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricSourceApplyConfiguration { + b.Name = &value + return b +} + +// WithTarget sets the Target field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Target field is set to the value of the last call. +func (b *ContainerResourceMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ContainerResourceMetricSourceApplyConfiguration { + b.Target = value + return b +} + +// WithContainer sets the Container field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Container field is set to the value of the last call. +func (b *ContainerResourceMetricSourceApplyConfiguration) WithContainer(value string) *ContainerResourceMetricSourceApplyConfiguration { + b.Container = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricstatus.go new file mode 100644 index 0000000000..bf0822a066 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricstatus.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v1 "k8s.io/api/core/v1" +) + +// ContainerResourceMetricStatusApplyConfiguration represents an declarative configuration of the ContainerResourceMetricStatus type for use +// with apply. +type ContainerResourceMetricStatusApplyConfiguration struct { + Name *v1.ResourceName `json:"name,omitempty"` + Current *MetricValueStatusApplyConfiguration `json:"current,omitempty"` + Container *string `json:"container,omitempty"` +} + +// ContainerResourceMetricStatusApplyConfiguration constructs an declarative configuration of the ContainerResourceMetricStatus type for use with +// apply. +func ContainerResourceMetricStatus() *ContainerResourceMetricStatusApplyConfiguration { + return &ContainerResourceMetricStatusApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ContainerResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricStatusApplyConfiguration { + b.Name = &value + return b +} + +// WithCurrent sets the Current field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Current field is set to the value of the last call. +func (b *ContainerResourceMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ContainerResourceMetricStatusApplyConfiguration { + b.Current = value + return b +} + +// WithContainer sets the Container field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Container field is set to the value of the last call. +func (b *ContainerResourceMetricStatusApplyConfiguration) WithContainer(value string) *ContainerResourceMetricStatusApplyConfiguration { + b.Container = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/crossversionobjectreference.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/crossversionobjectreference.go new file mode 100644 index 0000000000..2903629bc8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/crossversionobjectreference.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +// CrossVersionObjectReferenceApplyConfiguration represents an declarative configuration of the CrossVersionObjectReference type for use +// with apply. +type CrossVersionObjectReferenceApplyConfiguration struct { + Kind *string `json:"kind,omitempty"` + Name *string `json:"name,omitempty"` + APIVersion *string `json:"apiVersion,omitempty"` +} + +// CrossVersionObjectReferenceApplyConfiguration constructs an declarative configuration of the CrossVersionObjectReference type for use with +// apply. +func CrossVersionObjectReference() *CrossVersionObjectReferenceApplyConfiguration { + return &CrossVersionObjectReferenceApplyConfiguration{} +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CrossVersionObjectReferenceApplyConfiguration) WithKind(value string) *CrossVersionObjectReferenceApplyConfiguration { + b.Kind = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CrossVersionObjectReferenceApplyConfiguration) WithName(value string) *CrossVersionObjectReferenceApplyConfiguration { + b.Name = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CrossVersionObjectReferenceApplyConfiguration) WithAPIVersion(value string) *CrossVersionObjectReferenceApplyConfiguration { + b.APIVersion = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricsource.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricsource.go new file mode 100644 index 0000000000..80053a6b33 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricsource.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +// ExternalMetricSourceApplyConfiguration represents an declarative configuration of the ExternalMetricSource type for use +// with apply. +type ExternalMetricSourceApplyConfiguration struct { + Metric *MetricIdentifierApplyConfiguration `json:"metric,omitempty"` + Target *MetricTargetApplyConfiguration `json:"target,omitempty"` +} + +// ExternalMetricSourceApplyConfiguration constructs an declarative configuration of the ExternalMetricSource type for use with +// apply. +func ExternalMetricSource() *ExternalMetricSourceApplyConfiguration { + return &ExternalMetricSourceApplyConfiguration{} +} + +// WithMetric sets the Metric field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Metric field is set to the value of the last call. +func (b *ExternalMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ExternalMetricSourceApplyConfiguration { + b.Metric = value + return b +} + +// WithTarget sets the Target field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Target field is set to the value of the last call. +func (b *ExternalMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ExternalMetricSourceApplyConfiguration { + b.Target = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricstatus.go new file mode 100644 index 0000000000..71ac35adbc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricstatus.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +// ExternalMetricStatusApplyConfiguration represents an declarative configuration of the ExternalMetricStatus type for use +// with apply. +type ExternalMetricStatusApplyConfiguration struct { + Metric *MetricIdentifierApplyConfiguration `json:"metric,omitempty"` + Current *MetricValueStatusApplyConfiguration `json:"current,omitempty"` +} + +// ExternalMetricStatusApplyConfiguration constructs an declarative configuration of the ExternalMetricStatus type for use with +// apply. +func ExternalMetricStatus() *ExternalMetricStatusApplyConfiguration { + return &ExternalMetricStatusApplyConfiguration{} +} + +// WithMetric sets the Metric field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Metric field is set to the value of the last call. +func (b *ExternalMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ExternalMetricStatusApplyConfiguration { + b.Metric = value + return b +} + +// WithCurrent sets the Current field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Current field is set to the value of the last call. +func (b *ExternalMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ExternalMetricStatusApplyConfiguration { + b.Current = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscaler.go new file mode 100644 index 0000000000..0ae4a19536 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscaler.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + autoscalingv2beta2 "k8s.io/api/autoscaling/v2beta2" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// HorizontalPodAutoscalerApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscaler type for use +// with apply. +type HorizontalPodAutoscalerApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *HorizontalPodAutoscalerSpecApplyConfiguration `json:"spec,omitempty"` + Status *HorizontalPodAutoscalerStatusApplyConfiguration `json:"status,omitempty"` +} + +// HorizontalPodAutoscaler constructs an declarative configuration of the HorizontalPodAutoscaler type for use with +// apply. +func HorizontalPodAutoscaler(name, namespace string) *HorizontalPodAutoscalerApplyConfiguration { + b := &HorizontalPodAutoscalerApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("HorizontalPodAutoscaler") + b.WithAPIVersion("autoscaling/v2beta2") + return b +} + +// ExtractHorizontalPodAutoscaler extracts the applied configuration owned by fieldManager from +// horizontalPodAutoscaler. If no managedFields are found in horizontalPodAutoscaler for fieldManager, a +// HorizontalPodAutoscalerApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// horizontalPodAutoscaler must be a unmodified HorizontalPodAutoscaler API object that was retrieved from the Kubernetes API. +// ExtractHorizontalPodAutoscaler provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) { + b := &HorizontalPodAutoscalerApplyConfiguration{} + err := managedfields.ExtractInto(horizontalPodAutoscaler, internal.Parser().Type("io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(horizontalPodAutoscaler.Name) + b.WithNamespace(horizontalPodAutoscaler.Namespace) + + b.WithKind("HorizontalPodAutoscaler") + b.WithAPIVersion("autoscaling/v2beta2") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithKind(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithAPIVersion(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithName(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithGenerateName(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithNamespace(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithSelfLink(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithUID(value types.UID) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithResourceVersion(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithGeneration(value int64) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithLabels(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithAnnotations(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithFinalizers(values ...string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithClusterName(value string) *HorizontalPodAutoscalerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *HorizontalPodAutoscalerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithSpec(value *HorizontalPodAutoscalerSpecApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *HorizontalPodAutoscalerApplyConfiguration) WithStatus(value *HorizontalPodAutoscalerStatusApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerbehavior.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerbehavior.go new file mode 100644 index 0000000000..ec41bfadea --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerbehavior.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +// HorizontalPodAutoscalerBehaviorApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerBehavior type for use +// with apply. +type HorizontalPodAutoscalerBehaviorApplyConfiguration struct { + ScaleUp *HPAScalingRulesApplyConfiguration `json:"scaleUp,omitempty"` + ScaleDown *HPAScalingRulesApplyConfiguration `json:"scaleDown,omitempty"` +} + +// HorizontalPodAutoscalerBehaviorApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerBehavior type for use with +// apply. +func HorizontalPodAutoscalerBehavior() *HorizontalPodAutoscalerBehaviorApplyConfiguration { + return &HorizontalPodAutoscalerBehaviorApplyConfiguration{} +} + +// WithScaleUp sets the ScaleUp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ScaleUp field is set to the value of the last call. +func (b *HorizontalPodAutoscalerBehaviorApplyConfiguration) WithScaleUp(value *HPAScalingRulesApplyConfiguration) *HorizontalPodAutoscalerBehaviorApplyConfiguration { + b.ScaleUp = value + return b +} + +// WithScaleDown sets the ScaleDown field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ScaleDown field is set to the value of the last call. +func (b *HorizontalPodAutoscalerBehaviorApplyConfiguration) WithScaleDown(value *HPAScalingRulesApplyConfiguration) *HorizontalPodAutoscalerBehaviorApplyConfiguration { + b.ScaleDown = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalercondition.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalercondition.go new file mode 100644 index 0000000000..0f0cae75d3 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalercondition.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v2beta2 "k8s.io/api/autoscaling/v2beta2" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// HorizontalPodAutoscalerConditionApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerCondition type for use +// with apply. +type HorizontalPodAutoscalerConditionApplyConfiguration struct { + Type *v2beta2.HorizontalPodAutoscalerConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// HorizontalPodAutoscalerConditionApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerCondition type for use with +// apply. +func HorizontalPodAutoscalerCondition() *HorizontalPodAutoscalerConditionApplyConfiguration { + return &HorizontalPodAutoscalerConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithType(value v2beta2.HorizontalPodAutoscalerConditionType) *HorizontalPodAutoscalerConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *HorizontalPodAutoscalerConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *HorizontalPodAutoscalerConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithReason(value string) *HorizontalPodAutoscalerConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithMessage(value string) *HorizontalPodAutoscalerConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerspec.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerspec.go new file mode 100644 index 0000000000..c60adee581 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerspec.go @@ -0,0 +1,80 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +// HorizontalPodAutoscalerSpecApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerSpec type for use +// with apply. +type HorizontalPodAutoscalerSpecApplyConfiguration struct { + ScaleTargetRef *CrossVersionObjectReferenceApplyConfiguration `json:"scaleTargetRef,omitempty"` + MinReplicas *int32 `json:"minReplicas,omitempty"` + MaxReplicas *int32 `json:"maxReplicas,omitempty"` + Metrics []MetricSpecApplyConfiguration `json:"metrics,omitempty"` + Behavior *HorizontalPodAutoscalerBehaviorApplyConfiguration `json:"behavior,omitempty"` +} + +// HorizontalPodAutoscalerSpecApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerSpec type for use with +// apply. +func HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration { + return &HorizontalPodAutoscalerSpecApplyConfiguration{} +} + +// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ScaleTargetRef field is set to the value of the last call. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration { + b.ScaleTargetRef = value + return b +} + +// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration { + b.MinReplicas = &value + return b +} + +// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration { + b.MaxReplicas = &value + return b +} + +// WithMetrics adds the given value to the Metrics field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Metrics field. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMetrics(values ...*MetricSpecApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithMetrics") + } + b.Metrics = append(b.Metrics, *values[i]) + } + return b +} + +// WithBehavior sets the Behavior field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Behavior field is set to the value of the last call. +func (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithBehavior(value *HorizontalPodAutoscalerBehaviorApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration { + b.Behavior = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerstatus.go new file mode 100644 index 0000000000..881a874e51 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerstatus.go @@ -0,0 +1,98 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// HorizontalPodAutoscalerStatusApplyConfiguration represents an declarative configuration of the HorizontalPodAutoscalerStatus type for use +// with apply. +type HorizontalPodAutoscalerStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + LastScaleTime *v1.Time `json:"lastScaleTime,omitempty"` + CurrentReplicas *int32 `json:"currentReplicas,omitempty"` + DesiredReplicas *int32 `json:"desiredReplicas,omitempty"` + CurrentMetrics []MetricStatusApplyConfiguration `json:"currentMetrics,omitempty"` + Conditions []HorizontalPodAutoscalerConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// HorizontalPodAutoscalerStatusApplyConfiguration constructs an declarative configuration of the HorizontalPodAutoscalerStatus type for use with +// apply. +func HorizontalPodAutoscalerStatus() *HorizontalPodAutoscalerStatusApplyConfiguration { + return &HorizontalPodAutoscalerStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithObservedGeneration(value int64) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithLastScaleTime sets the LastScaleTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastScaleTime field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithLastScaleTime(value v1.Time) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.LastScaleTime = &value + return b +} + +// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.CurrentReplicas = &value + return b +} + +// WithDesiredReplicas sets the DesiredReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DesiredReplicas field is set to the value of the last call. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithDesiredReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration { + b.DesiredReplicas = &value + return b +} + +// WithCurrentMetrics adds the given value to the CurrentMetrics field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the CurrentMetrics field. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentMetrics(values ...*MetricStatusApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithCurrentMetrics") + } + b.CurrentMetrics = append(b.CurrentMetrics, *values[i]) + } + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithConditions(values ...*HorizontalPodAutoscalerConditionApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingpolicy.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingpolicy.go new file mode 100644 index 0000000000..2a535891af --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingpolicy.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v2beta2 "k8s.io/api/autoscaling/v2beta2" +) + +// HPAScalingPolicyApplyConfiguration represents an declarative configuration of the HPAScalingPolicy type for use +// with apply. +type HPAScalingPolicyApplyConfiguration struct { + Type *v2beta2.HPAScalingPolicyType `json:"type,omitempty"` + Value *int32 `json:"value,omitempty"` + PeriodSeconds *int32 `json:"periodSeconds,omitempty"` +} + +// HPAScalingPolicyApplyConfiguration constructs an declarative configuration of the HPAScalingPolicy type for use with +// apply. +func HPAScalingPolicy() *HPAScalingPolicyApplyConfiguration { + return &HPAScalingPolicyApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *HPAScalingPolicyApplyConfiguration) WithType(value v2beta2.HPAScalingPolicyType) *HPAScalingPolicyApplyConfiguration { + b.Type = &value + return b +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *HPAScalingPolicyApplyConfiguration) WithValue(value int32) *HPAScalingPolicyApplyConfiguration { + b.Value = &value + return b +} + +// WithPeriodSeconds sets the PeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PeriodSeconds field is set to the value of the last call. +func (b *HPAScalingPolicyApplyConfiguration) WithPeriodSeconds(value int32) *HPAScalingPolicyApplyConfiguration { + b.PeriodSeconds = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingrules.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingrules.go new file mode 100644 index 0000000000..57c917b894 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingrules.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v2beta2 "k8s.io/api/autoscaling/v2beta2" +) + +// HPAScalingRulesApplyConfiguration represents an declarative configuration of the HPAScalingRules type for use +// with apply. +type HPAScalingRulesApplyConfiguration struct { + StabilizationWindowSeconds *int32 `json:"stabilizationWindowSeconds,omitempty"` + SelectPolicy *v2beta2.ScalingPolicySelect `json:"selectPolicy,omitempty"` + Policies []HPAScalingPolicyApplyConfiguration `json:"policies,omitempty"` +} + +// HPAScalingRulesApplyConfiguration constructs an declarative configuration of the HPAScalingRules type for use with +// apply. +func HPAScalingRules() *HPAScalingRulesApplyConfiguration { + return &HPAScalingRulesApplyConfiguration{} +} + +// WithStabilizationWindowSeconds sets the StabilizationWindowSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StabilizationWindowSeconds field is set to the value of the last call. +func (b *HPAScalingRulesApplyConfiguration) WithStabilizationWindowSeconds(value int32) *HPAScalingRulesApplyConfiguration { + b.StabilizationWindowSeconds = &value + return b +} + +// WithSelectPolicy sets the SelectPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelectPolicy field is set to the value of the last call. +func (b *HPAScalingRulesApplyConfiguration) WithSelectPolicy(value v2beta2.ScalingPolicySelect) *HPAScalingRulesApplyConfiguration { + b.SelectPolicy = &value + return b +} + +// WithPolicies adds the given value to the Policies field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Policies field. +func (b *HPAScalingRulesApplyConfiguration) WithPolicies(values ...*HPAScalingPolicyApplyConfiguration) *HPAScalingRulesApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPolicies") + } + b.Policies = append(b.Policies, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricidentifier.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricidentifier.go new file mode 100644 index 0000000000..70cbd4e815 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricidentifier.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// MetricIdentifierApplyConfiguration represents an declarative configuration of the MetricIdentifier type for use +// with apply. +type MetricIdentifierApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` +} + +// MetricIdentifierApplyConfiguration constructs an declarative configuration of the MetricIdentifier type for use with +// apply. +func MetricIdentifier() *MetricIdentifierApplyConfiguration { + return &MetricIdentifierApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *MetricIdentifierApplyConfiguration) WithName(value string) *MetricIdentifierApplyConfiguration { + b.Name = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *MetricIdentifierApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *MetricIdentifierApplyConfiguration { + b.Selector = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricspec.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricspec.go new file mode 100644 index 0000000000..1e7ee1419d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricspec.go @@ -0,0 +1,88 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v2beta2 "k8s.io/api/autoscaling/v2beta2" +) + +// MetricSpecApplyConfiguration represents an declarative configuration of the MetricSpec type for use +// with apply. +type MetricSpecApplyConfiguration struct { + Type *v2beta2.MetricSourceType `json:"type,omitempty"` + Object *ObjectMetricSourceApplyConfiguration `json:"object,omitempty"` + Pods *PodsMetricSourceApplyConfiguration `json:"pods,omitempty"` + Resource *ResourceMetricSourceApplyConfiguration `json:"resource,omitempty"` + ContainerResource *ContainerResourceMetricSourceApplyConfiguration `json:"containerResource,omitempty"` + External *ExternalMetricSourceApplyConfiguration `json:"external,omitempty"` +} + +// MetricSpecApplyConfiguration constructs an declarative configuration of the MetricSpec type for use with +// apply. +func MetricSpec() *MetricSpecApplyConfiguration { + return &MetricSpecApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithType(value v2beta2.MetricSourceType) *MetricSpecApplyConfiguration { + b.Type = &value + return b +} + +// WithObject sets the Object field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Object field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithObject(value *ObjectMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration { + b.Object = value + return b +} + +// WithPods sets the Pods field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Pods field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithPods(value *PodsMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration { + b.Pods = value + return b +} + +// WithResource sets the Resource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resource field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithResource(value *ResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration { + b.Resource = value + return b +} + +// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ContainerResource field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithContainerResource(value *ContainerResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration { + b.ContainerResource = value + return b +} + +// WithExternal sets the External field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the External field is set to the value of the last call. +func (b *MetricSpecApplyConfiguration) WithExternal(value *ExternalMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration { + b.External = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricstatus.go new file mode 100644 index 0000000000..353ec6d943 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricstatus.go @@ -0,0 +1,88 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v2beta2 "k8s.io/api/autoscaling/v2beta2" +) + +// MetricStatusApplyConfiguration represents an declarative configuration of the MetricStatus type for use +// with apply. +type MetricStatusApplyConfiguration struct { + Type *v2beta2.MetricSourceType `json:"type,omitempty"` + Object *ObjectMetricStatusApplyConfiguration `json:"object,omitempty"` + Pods *PodsMetricStatusApplyConfiguration `json:"pods,omitempty"` + Resource *ResourceMetricStatusApplyConfiguration `json:"resource,omitempty"` + ContainerResource *ContainerResourceMetricStatusApplyConfiguration `json:"containerResource,omitempty"` + External *ExternalMetricStatusApplyConfiguration `json:"external,omitempty"` +} + +// MetricStatusApplyConfiguration constructs an declarative configuration of the MetricStatus type for use with +// apply. +func MetricStatus() *MetricStatusApplyConfiguration { + return &MetricStatusApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithType(value v2beta2.MetricSourceType) *MetricStatusApplyConfiguration { + b.Type = &value + return b +} + +// WithObject sets the Object field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Object field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithObject(value *ObjectMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration { + b.Object = value + return b +} + +// WithPods sets the Pods field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Pods field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithPods(value *PodsMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration { + b.Pods = value + return b +} + +// WithResource sets the Resource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resource field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithResource(value *ResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration { + b.Resource = value + return b +} + +// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ContainerResource field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithContainerResource(value *ContainerResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration { + b.ContainerResource = value + return b +} + +// WithExternal sets the External field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the External field is set to the value of the last call. +func (b *MetricStatusApplyConfiguration) WithExternal(value *ExternalMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration { + b.External = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metrictarget.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metrictarget.go new file mode 100644 index 0000000000..fbf006a5a6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metrictarget.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v2beta2 "k8s.io/api/autoscaling/v2beta2" + resource "k8s.io/apimachinery/pkg/api/resource" +) + +// MetricTargetApplyConfiguration represents an declarative configuration of the MetricTarget type for use +// with apply. +type MetricTargetApplyConfiguration struct { + Type *v2beta2.MetricTargetType `json:"type,omitempty"` + Value *resource.Quantity `json:"value,omitempty"` + AverageValue *resource.Quantity `json:"averageValue,omitempty"` + AverageUtilization *int32 `json:"averageUtilization,omitempty"` +} + +// MetricTargetApplyConfiguration constructs an declarative configuration of the MetricTarget type for use with +// apply. +func MetricTarget() *MetricTargetApplyConfiguration { + return &MetricTargetApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *MetricTargetApplyConfiguration) WithType(value v2beta2.MetricTargetType) *MetricTargetApplyConfiguration { + b.Type = &value + return b +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *MetricTargetApplyConfiguration) WithValue(value resource.Quantity) *MetricTargetApplyConfiguration { + b.Value = &value + return b +} + +// WithAverageValue sets the AverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AverageValue field is set to the value of the last call. +func (b *MetricTargetApplyConfiguration) WithAverageValue(value resource.Quantity) *MetricTargetApplyConfiguration { + b.AverageValue = &value + return b +} + +// WithAverageUtilization sets the AverageUtilization field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AverageUtilization field is set to the value of the last call. +func (b *MetricTargetApplyConfiguration) WithAverageUtilization(value int32) *MetricTargetApplyConfiguration { + b.AverageUtilization = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricvaluestatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricvaluestatus.go new file mode 100644 index 0000000000..5796a0b4c1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricvaluestatus.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + resource "k8s.io/apimachinery/pkg/api/resource" +) + +// MetricValueStatusApplyConfiguration represents an declarative configuration of the MetricValueStatus type for use +// with apply. +type MetricValueStatusApplyConfiguration struct { + Value *resource.Quantity `json:"value,omitempty"` + AverageValue *resource.Quantity `json:"averageValue,omitempty"` + AverageUtilization *int32 `json:"averageUtilization,omitempty"` +} + +// MetricValueStatusApplyConfiguration constructs an declarative configuration of the MetricValueStatus type for use with +// apply. +func MetricValueStatus() *MetricValueStatusApplyConfiguration { + return &MetricValueStatusApplyConfiguration{} +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *MetricValueStatusApplyConfiguration) WithValue(value resource.Quantity) *MetricValueStatusApplyConfiguration { + b.Value = &value + return b +} + +// WithAverageValue sets the AverageValue field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AverageValue field is set to the value of the last call. +func (b *MetricValueStatusApplyConfiguration) WithAverageValue(value resource.Quantity) *MetricValueStatusApplyConfiguration { + b.AverageValue = &value + return b +} + +// WithAverageUtilization sets the AverageUtilization field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AverageUtilization field is set to the value of the last call. +func (b *MetricValueStatusApplyConfiguration) WithAverageUtilization(value int32) *MetricValueStatusApplyConfiguration { + b.AverageUtilization = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricsource.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricsource.go new file mode 100644 index 0000000000..eed31dab61 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricsource.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +// ObjectMetricSourceApplyConfiguration represents an declarative configuration of the ObjectMetricSource type for use +// with apply. +type ObjectMetricSourceApplyConfiguration struct { + DescribedObject *CrossVersionObjectReferenceApplyConfiguration `json:"describedObject,omitempty"` + Target *MetricTargetApplyConfiguration `json:"target,omitempty"` + Metric *MetricIdentifierApplyConfiguration `json:"metric,omitempty"` +} + +// ObjectMetricSourceApplyConfiguration constructs an declarative configuration of the ObjectMetricSource type for use with +// apply. +func ObjectMetricSource() *ObjectMetricSourceApplyConfiguration { + return &ObjectMetricSourceApplyConfiguration{} +} + +// WithDescribedObject sets the DescribedObject field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DescribedObject field is set to the value of the last call. +func (b *ObjectMetricSourceApplyConfiguration) WithDescribedObject(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricSourceApplyConfiguration { + b.DescribedObject = value + return b +} + +// WithTarget sets the Target field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Target field is set to the value of the last call. +func (b *ObjectMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ObjectMetricSourceApplyConfiguration { + b.Target = value + return b +} + +// WithMetric sets the Metric field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Metric field is set to the value of the last call. +func (b *ObjectMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ObjectMetricSourceApplyConfiguration { + b.Metric = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricstatus.go new file mode 100644 index 0000000000..175e2120d6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricstatus.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +// ObjectMetricStatusApplyConfiguration represents an declarative configuration of the ObjectMetricStatus type for use +// with apply. +type ObjectMetricStatusApplyConfiguration struct { + Metric *MetricIdentifierApplyConfiguration `json:"metric,omitempty"` + Current *MetricValueStatusApplyConfiguration `json:"current,omitempty"` + DescribedObject *CrossVersionObjectReferenceApplyConfiguration `json:"describedObject,omitempty"` +} + +// ObjectMetricStatusApplyConfiguration constructs an declarative configuration of the ObjectMetricStatus type for use with +// apply. +func ObjectMetricStatus() *ObjectMetricStatusApplyConfiguration { + return &ObjectMetricStatusApplyConfiguration{} +} + +// WithMetric sets the Metric field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Metric field is set to the value of the last call. +func (b *ObjectMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ObjectMetricStatusApplyConfiguration { + b.Metric = value + return b +} + +// WithCurrent sets the Current field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Current field is set to the value of the last call. +func (b *ObjectMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ObjectMetricStatusApplyConfiguration { + b.Current = value + return b +} + +// WithDescribedObject sets the DescribedObject field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DescribedObject field is set to the value of the last call. +func (b *ObjectMetricStatusApplyConfiguration) WithDescribedObject(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricStatusApplyConfiguration { + b.DescribedObject = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricsource.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricsource.go new file mode 100644 index 0000000000..0365880950 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricsource.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +// PodsMetricSourceApplyConfiguration represents an declarative configuration of the PodsMetricSource type for use +// with apply. +type PodsMetricSourceApplyConfiguration struct { + Metric *MetricIdentifierApplyConfiguration `json:"metric,omitempty"` + Target *MetricTargetApplyConfiguration `json:"target,omitempty"` +} + +// PodsMetricSourceApplyConfiguration constructs an declarative configuration of the PodsMetricSource type for use with +// apply. +func PodsMetricSource() *PodsMetricSourceApplyConfiguration { + return &PodsMetricSourceApplyConfiguration{} +} + +// WithMetric sets the Metric field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Metric field is set to the value of the last call. +func (b *PodsMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *PodsMetricSourceApplyConfiguration { + b.Metric = value + return b +} + +// WithTarget sets the Target field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Target field is set to the value of the last call. +func (b *PodsMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *PodsMetricSourceApplyConfiguration { + b.Target = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricstatus.go new file mode 100644 index 0000000000..e6f98be8c4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricstatus.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +// PodsMetricStatusApplyConfiguration represents an declarative configuration of the PodsMetricStatus type for use +// with apply. +type PodsMetricStatusApplyConfiguration struct { + Metric *MetricIdentifierApplyConfiguration `json:"metric,omitempty"` + Current *MetricValueStatusApplyConfiguration `json:"current,omitempty"` +} + +// PodsMetricStatusApplyConfiguration constructs an declarative configuration of the PodsMetricStatus type for use with +// apply. +func PodsMetricStatus() *PodsMetricStatusApplyConfiguration { + return &PodsMetricStatusApplyConfiguration{} +} + +// WithMetric sets the Metric field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Metric field is set to the value of the last call. +func (b *PodsMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *PodsMetricStatusApplyConfiguration { + b.Metric = value + return b +} + +// WithCurrent sets the Current field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Current field is set to the value of the last call. +func (b *PodsMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *PodsMetricStatusApplyConfiguration { + b.Current = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricsource.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricsource.go new file mode 100644 index 0000000000..cc8118d5e3 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricsource.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v1 "k8s.io/api/core/v1" +) + +// ResourceMetricSourceApplyConfiguration represents an declarative configuration of the ResourceMetricSource type for use +// with apply. +type ResourceMetricSourceApplyConfiguration struct { + Name *v1.ResourceName `json:"name,omitempty"` + Target *MetricTargetApplyConfiguration `json:"target,omitempty"` +} + +// ResourceMetricSourceApplyConfiguration constructs an declarative configuration of the ResourceMetricSource type for use with +// apply. +func ResourceMetricSource() *ResourceMetricSourceApplyConfiguration { + return &ResourceMetricSourceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricSourceApplyConfiguration { + b.Name = &value + return b +} + +// WithTarget sets the Target field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Target field is set to the value of the last call. +func (b *ResourceMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ResourceMetricSourceApplyConfiguration { + b.Target = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricstatus.go b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricstatus.go new file mode 100644 index 0000000000..0ab56be0f7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricstatus.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v1 "k8s.io/api/core/v1" +) + +// ResourceMetricStatusApplyConfiguration represents an declarative configuration of the ResourceMetricStatus type for use +// with apply. +type ResourceMetricStatusApplyConfiguration struct { + Name *v1.ResourceName `json:"name,omitempty"` + Current *MetricValueStatusApplyConfiguration `json:"current,omitempty"` +} + +// ResourceMetricStatusApplyConfiguration constructs an declarative configuration of the ResourceMetricStatus type for use with +// apply. +func ResourceMetricStatus() *ResourceMetricStatusApplyConfiguration { + return &ResourceMetricStatusApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricStatusApplyConfiguration { + b.Name = &value + return b +} + +// WithCurrent sets the Current field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Current field is set to the value of the last call. +func (b *ResourceMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ResourceMetricStatusApplyConfiguration { + b.Current = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjob.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjob.go new file mode 100644 index 0000000000..af38708a0a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjob.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apibatchv1 "k8s.io/api/batch/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// CronJobApplyConfiguration represents an declarative configuration of the CronJob type for use +// with apply. +type CronJobApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *CronJobSpecApplyConfiguration `json:"spec,omitempty"` + Status *CronJobStatusApplyConfiguration `json:"status,omitempty"` +} + +// CronJob constructs an declarative configuration of the CronJob type for use with +// apply. +func CronJob(name, namespace string) *CronJobApplyConfiguration { + b := &CronJobApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("CronJob") + b.WithAPIVersion("batch/v1") + return b +} + +// ExtractCronJob extracts the applied configuration owned by fieldManager from +// cronJob. If no managedFields are found in cronJob for fieldManager, a +// CronJobApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// cronJob must be a unmodified CronJob API object that was retrieved from the Kubernetes API. +// ExtractCronJob provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractCronJob(cronJob *apibatchv1.CronJob, fieldManager string) (*CronJobApplyConfiguration, error) { + b := &CronJobApplyConfiguration{} + err := managedfields.ExtractInto(cronJob, internal.Parser().Type("io.k8s.api.batch.v1.CronJob"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(cronJob.Name) + b.WithNamespace(cronJob.Namespace) + + b.WithKind("CronJob") + b.WithAPIVersion("batch/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithKind(value string) *CronJobApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithAPIVersion(value string) *CronJobApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithName(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithGenerateName(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithNamespace(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithSelfLink(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithUID(value types.UID) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithResourceVersion(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithGeneration(value int64) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *CronJobApplyConfiguration) WithLabels(entries map[string]string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *CronJobApplyConfiguration) WithAnnotations(entries map[string]string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *CronJobApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *CronJobApplyConfiguration) WithFinalizers(values ...string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithClusterName(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *CronJobApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithSpec(value *CronJobSpecApplyConfiguration) *CronJobApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithStatus(value *CronJobStatusApplyConfiguration) *CronJobApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobspec.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobspec.go new file mode 100644 index 0000000000..eaf3ba8e65 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobspec.go @@ -0,0 +1,97 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/batch/v1" +) + +// CronJobSpecApplyConfiguration represents an declarative configuration of the CronJobSpec type for use +// with apply. +type CronJobSpecApplyConfiguration struct { + Schedule *string `json:"schedule,omitempty"` + StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds,omitempty"` + ConcurrencyPolicy *v1.ConcurrencyPolicy `json:"concurrencyPolicy,omitempty"` + Suspend *bool `json:"suspend,omitempty"` + JobTemplate *JobTemplateSpecApplyConfiguration `json:"jobTemplate,omitempty"` + SuccessfulJobsHistoryLimit *int32 `json:"successfulJobsHistoryLimit,omitempty"` + FailedJobsHistoryLimit *int32 `json:"failedJobsHistoryLimit,omitempty"` +} + +// CronJobSpecApplyConfiguration constructs an declarative configuration of the CronJobSpec type for use with +// apply. +func CronJobSpec() *CronJobSpecApplyConfiguration { + return &CronJobSpecApplyConfiguration{} +} + +// WithSchedule sets the Schedule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Schedule field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithSchedule(value string) *CronJobSpecApplyConfiguration { + b.Schedule = &value + return b +} + +// WithStartingDeadlineSeconds sets the StartingDeadlineSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StartingDeadlineSeconds field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithStartingDeadlineSeconds(value int64) *CronJobSpecApplyConfiguration { + b.StartingDeadlineSeconds = &value + return b +} + +// WithConcurrencyPolicy sets the ConcurrencyPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ConcurrencyPolicy field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithConcurrencyPolicy(value v1.ConcurrencyPolicy) *CronJobSpecApplyConfiguration { + b.ConcurrencyPolicy = &value + return b +} + +// WithSuspend sets the Suspend field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Suspend field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithSuspend(value bool) *CronJobSpecApplyConfiguration { + b.Suspend = &value + return b +} + +// WithJobTemplate sets the JobTemplate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the JobTemplate field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithJobTemplate(value *JobTemplateSpecApplyConfiguration) *CronJobSpecApplyConfiguration { + b.JobTemplate = value + return b +} + +// WithSuccessfulJobsHistoryLimit sets the SuccessfulJobsHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SuccessfulJobsHistoryLimit field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithSuccessfulJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration { + b.SuccessfulJobsHistoryLimit = &value + return b +} + +// WithFailedJobsHistoryLimit sets the FailedJobsHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FailedJobsHistoryLimit field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithFailedJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration { + b.FailedJobsHistoryLimit = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobstatus.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobstatus.go new file mode 100644 index 0000000000..b7cc2bdfb5 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobstatus.go @@ -0,0 +1,67 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// CronJobStatusApplyConfiguration represents an declarative configuration of the CronJobStatus type for use +// with apply. +type CronJobStatusApplyConfiguration struct { + Active []v1.ObjectReferenceApplyConfiguration `json:"active,omitempty"` + LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"` + LastSuccessfulTime *metav1.Time `json:"lastSuccessfulTime,omitempty"` +} + +// CronJobStatusApplyConfiguration constructs an declarative configuration of the CronJobStatus type for use with +// apply. +func CronJobStatus() *CronJobStatusApplyConfiguration { + return &CronJobStatusApplyConfiguration{} +} + +// WithActive adds the given value to the Active field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Active field. +func (b *CronJobStatusApplyConfiguration) WithActive(values ...*v1.ObjectReferenceApplyConfiguration) *CronJobStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithActive") + } + b.Active = append(b.Active, *values[i]) + } + return b +} + +// WithLastScheduleTime sets the LastScheduleTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastScheduleTime field is set to the value of the last call. +func (b *CronJobStatusApplyConfiguration) WithLastScheduleTime(value metav1.Time) *CronJobStatusApplyConfiguration { + b.LastScheduleTime = &value + return b +} + +// WithLastSuccessfulTime sets the LastSuccessfulTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastSuccessfulTime field is set to the value of the last call. +func (b *CronJobStatusApplyConfiguration) WithLastSuccessfulTime(value metav1.Time) *CronJobStatusApplyConfiguration { + b.LastSuccessfulTime = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1/job.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/job.go new file mode 100644 index 0000000000..0c9bcdb751 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/job.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apibatchv1 "k8s.io/api/batch/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// JobApplyConfiguration represents an declarative configuration of the Job type for use +// with apply. +type JobApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *JobSpecApplyConfiguration `json:"spec,omitempty"` + Status *JobStatusApplyConfiguration `json:"status,omitempty"` +} + +// Job constructs an declarative configuration of the Job type for use with +// apply. +func Job(name, namespace string) *JobApplyConfiguration { + b := &JobApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Job") + b.WithAPIVersion("batch/v1") + return b +} + +// ExtractJob extracts the applied configuration owned by fieldManager from +// job. If no managedFields are found in job for fieldManager, a +// JobApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// job must be a unmodified Job API object that was retrieved from the Kubernetes API. +// ExtractJob provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractJob(job *apibatchv1.Job, fieldManager string) (*JobApplyConfiguration, error) { + b := &JobApplyConfiguration{} + err := managedfields.ExtractInto(job, internal.Parser().Type("io.k8s.api.batch.v1.Job"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(job.Name) + b.WithNamespace(job.Namespace) + + b.WithKind("Job") + b.WithAPIVersion("batch/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *JobApplyConfiguration) WithKind(value string) *JobApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *JobApplyConfiguration) WithAPIVersion(value string) *JobApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *JobApplyConfiguration) WithName(value string) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *JobApplyConfiguration) WithGenerateName(value string) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *JobApplyConfiguration) WithNamespace(value string) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *JobApplyConfiguration) WithSelfLink(value string) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *JobApplyConfiguration) WithUID(value types.UID) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *JobApplyConfiguration) WithResourceVersion(value string) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *JobApplyConfiguration) WithGeneration(value int64) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *JobApplyConfiguration) WithCreationTimestamp(value metav1.Time) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *JobApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *JobApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *JobApplyConfiguration) WithLabels(entries map[string]string) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *JobApplyConfiguration) WithAnnotations(entries map[string]string) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *JobApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *JobApplyConfiguration) WithFinalizers(values ...string) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *JobApplyConfiguration) WithClusterName(value string) *JobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *JobApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *JobApplyConfiguration) WithSpec(value *JobSpecApplyConfiguration) *JobApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *JobApplyConfiguration) WithStatus(value *JobStatusApplyConfiguration) *JobApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobcondition.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobcondition.go new file mode 100644 index 0000000000..388ca7a1c0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobcondition.go @@ -0,0 +1,90 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/batch/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// JobConditionApplyConfiguration represents an declarative configuration of the JobCondition type for use +// with apply. +type JobConditionApplyConfiguration struct { + Type *v1.JobConditionType `json:"type,omitempty"` + Status *corev1.ConditionStatus `json:"status,omitempty"` + LastProbeTime *metav1.Time `json:"lastProbeTime,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// JobConditionApplyConfiguration constructs an declarative configuration of the JobCondition type for use with +// apply. +func JobCondition() *JobConditionApplyConfiguration { + return &JobConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *JobConditionApplyConfiguration) WithType(value v1.JobConditionType) *JobConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *JobConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *JobConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastProbeTime sets the LastProbeTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastProbeTime field is set to the value of the last call. +func (b *JobConditionApplyConfiguration) WithLastProbeTime(value metav1.Time) *JobConditionApplyConfiguration { + b.LastProbeTime = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *JobConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *JobConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *JobConditionApplyConfiguration) WithReason(value string) *JobConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *JobConditionApplyConfiguration) WithMessage(value string) *JobConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobspec.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobspec.go new file mode 100644 index 0000000000..e142448894 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobspec.go @@ -0,0 +1,126 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + batchv1 "k8s.io/api/batch/v1" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// JobSpecApplyConfiguration represents an declarative configuration of the JobSpec type for use +// with apply. +type JobSpecApplyConfiguration struct { + Parallelism *int32 `json:"parallelism,omitempty"` + Completions *int32 `json:"completions,omitempty"` + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + BackoffLimit *int32 `json:"backoffLimit,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + ManualSelector *bool `json:"manualSelector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` + TTLSecondsAfterFinished *int32 `json:"ttlSecondsAfterFinished,omitempty"` + CompletionMode *batchv1.CompletionMode `json:"completionMode,omitempty"` + Suspend *bool `json:"suspend,omitempty"` +} + +// JobSpecApplyConfiguration constructs an declarative configuration of the JobSpec type for use with +// apply. +func JobSpec() *JobSpecApplyConfiguration { + return &JobSpecApplyConfiguration{} +} + +// WithParallelism sets the Parallelism field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Parallelism field is set to the value of the last call. +func (b *JobSpecApplyConfiguration) WithParallelism(value int32) *JobSpecApplyConfiguration { + b.Parallelism = &value + return b +} + +// WithCompletions sets the Completions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Completions field is set to the value of the last call. +func (b *JobSpecApplyConfiguration) WithCompletions(value int32) *JobSpecApplyConfiguration { + b.Completions = &value + return b +} + +// WithActiveDeadlineSeconds sets the ActiveDeadlineSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ActiveDeadlineSeconds field is set to the value of the last call. +func (b *JobSpecApplyConfiguration) WithActiveDeadlineSeconds(value int64) *JobSpecApplyConfiguration { + b.ActiveDeadlineSeconds = &value + return b +} + +// WithBackoffLimit sets the BackoffLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the BackoffLimit field is set to the value of the last call. +func (b *JobSpecApplyConfiguration) WithBackoffLimit(value int32) *JobSpecApplyConfiguration { + b.BackoffLimit = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *JobSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *JobSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithManualSelector sets the ManualSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ManualSelector field is set to the value of the last call. +func (b *JobSpecApplyConfiguration) WithManualSelector(value bool) *JobSpecApplyConfiguration { + b.ManualSelector = &value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *JobSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *JobSpecApplyConfiguration { + b.Template = value + return b +} + +// WithTTLSecondsAfterFinished sets the TTLSecondsAfterFinished field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TTLSecondsAfterFinished field is set to the value of the last call. +func (b *JobSpecApplyConfiguration) WithTTLSecondsAfterFinished(value int32) *JobSpecApplyConfiguration { + b.TTLSecondsAfterFinished = &value + return b +} + +// WithCompletionMode sets the CompletionMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CompletionMode field is set to the value of the last call. +func (b *JobSpecApplyConfiguration) WithCompletionMode(value batchv1.CompletionMode) *JobSpecApplyConfiguration { + b.CompletionMode = &value + return b +} + +// WithSuspend sets the Suspend field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Suspend field is set to the value of the last call. +func (b *JobSpecApplyConfiguration) WithSuspend(value bool) *JobSpecApplyConfiguration { + b.Suspend = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobstatus.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobstatus.go new file mode 100644 index 0000000000..e59d49cf1a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobstatus.go @@ -0,0 +1,102 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// JobStatusApplyConfiguration represents an declarative configuration of the JobStatus type for use +// with apply. +type JobStatusApplyConfiguration struct { + Conditions []JobConditionApplyConfiguration `json:"conditions,omitempty"` + StartTime *metav1.Time `json:"startTime,omitempty"` + CompletionTime *metav1.Time `json:"completionTime,omitempty"` + Active *int32 `json:"active,omitempty"` + Succeeded *int32 `json:"succeeded,omitempty"` + Failed *int32 `json:"failed,omitempty"` + CompletedIndexes *string `json:"completedIndexes,omitempty"` +} + +// JobStatusApplyConfiguration constructs an declarative configuration of the JobStatus type for use with +// apply. +func JobStatus() *JobStatusApplyConfiguration { + return &JobStatusApplyConfiguration{} +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *JobStatusApplyConfiguration) WithConditions(values ...*JobConditionApplyConfiguration) *JobStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + +// WithStartTime sets the StartTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StartTime field is set to the value of the last call. +func (b *JobStatusApplyConfiguration) WithStartTime(value metav1.Time) *JobStatusApplyConfiguration { + b.StartTime = &value + return b +} + +// WithCompletionTime sets the CompletionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CompletionTime field is set to the value of the last call. +func (b *JobStatusApplyConfiguration) WithCompletionTime(value metav1.Time) *JobStatusApplyConfiguration { + b.CompletionTime = &value + return b +} + +// WithActive sets the Active field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Active field is set to the value of the last call. +func (b *JobStatusApplyConfiguration) WithActive(value int32) *JobStatusApplyConfiguration { + b.Active = &value + return b +} + +// WithSucceeded sets the Succeeded field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Succeeded field is set to the value of the last call. +func (b *JobStatusApplyConfiguration) WithSucceeded(value int32) *JobStatusApplyConfiguration { + b.Succeeded = &value + return b +} + +// WithFailed sets the Failed field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Failed field is set to the value of the last call. +func (b *JobStatusApplyConfiguration) WithFailed(value int32) *JobStatusApplyConfiguration { + b.Failed = &value + return b +} + +// WithCompletedIndexes sets the CompletedIndexes field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CompletedIndexes field is set to the value of the last call. +func (b *JobStatusApplyConfiguration) WithCompletedIndexes(value string) *JobStatusApplyConfiguration { + b.CompletedIndexes = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobtemplatespec.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobtemplatespec.go new file mode 100644 index 0000000000..46df3722f1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobtemplatespec.go @@ -0,0 +1,206 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// JobTemplateSpecApplyConfiguration represents an declarative configuration of the JobTemplateSpec type for use +// with apply. +type JobTemplateSpecApplyConfiguration struct { + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *JobSpecApplyConfiguration `json:"spec,omitempty"` +} + +// JobTemplateSpecApplyConfiguration constructs an declarative configuration of the JobTemplateSpec type for use with +// apply. +func JobTemplateSpec() *JobTemplateSpecApplyConfiguration { + return &JobTemplateSpecApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithName(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithGenerateName(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithNamespace(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithSelfLink(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithUID(value types.UID) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithResourceVersion(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithGeneration(value int64) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithCreationTimestamp(value metav1.Time) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *JobTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *JobTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *JobTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *JobTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithClusterName(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *JobTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithSpec(value *JobSpecApplyConfiguration) *JobTemplateSpecApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjob.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjob.go new file mode 100644 index 0000000000..ddcef76fd2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjob.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + batchv1beta1 "k8s.io/api/batch/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// CronJobApplyConfiguration represents an declarative configuration of the CronJob type for use +// with apply. +type CronJobApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *CronJobSpecApplyConfiguration `json:"spec,omitempty"` + Status *CronJobStatusApplyConfiguration `json:"status,omitempty"` +} + +// CronJob constructs an declarative configuration of the CronJob type for use with +// apply. +func CronJob(name, namespace string) *CronJobApplyConfiguration { + b := &CronJobApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("CronJob") + b.WithAPIVersion("batch/v1beta1") + return b +} + +// ExtractCronJob extracts the applied configuration owned by fieldManager from +// cronJob. If no managedFields are found in cronJob for fieldManager, a +// CronJobApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// cronJob must be a unmodified CronJob API object that was retrieved from the Kubernetes API. +// ExtractCronJob provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractCronJob(cronJob *batchv1beta1.CronJob, fieldManager string) (*CronJobApplyConfiguration, error) { + b := &CronJobApplyConfiguration{} + err := managedfields.ExtractInto(cronJob, internal.Parser().Type("io.k8s.api.batch.v1beta1.CronJob"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(cronJob.Name) + b.WithNamespace(cronJob.Namespace) + + b.WithKind("CronJob") + b.WithAPIVersion("batch/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithKind(value string) *CronJobApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithAPIVersion(value string) *CronJobApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithName(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithGenerateName(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithNamespace(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithSelfLink(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithUID(value types.UID) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithResourceVersion(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithGeneration(value int64) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *CronJobApplyConfiguration) WithLabels(entries map[string]string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *CronJobApplyConfiguration) WithAnnotations(entries map[string]string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *CronJobApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *CronJobApplyConfiguration) WithFinalizers(values ...string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithClusterName(value string) *CronJobApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *CronJobApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithSpec(value *CronJobSpecApplyConfiguration) *CronJobApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *CronJobApplyConfiguration) WithStatus(value *CronJobStatusApplyConfiguration) *CronJobApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobspec.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobspec.go new file mode 100644 index 0000000000..7ca431b1e6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobspec.go @@ -0,0 +1,97 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/batch/v1beta1" +) + +// CronJobSpecApplyConfiguration represents an declarative configuration of the CronJobSpec type for use +// with apply. +type CronJobSpecApplyConfiguration struct { + Schedule *string `json:"schedule,omitempty"` + StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds,omitempty"` + ConcurrencyPolicy *v1beta1.ConcurrencyPolicy `json:"concurrencyPolicy,omitempty"` + Suspend *bool `json:"suspend,omitempty"` + JobTemplate *JobTemplateSpecApplyConfiguration `json:"jobTemplate,omitempty"` + SuccessfulJobsHistoryLimit *int32 `json:"successfulJobsHistoryLimit,omitempty"` + FailedJobsHistoryLimit *int32 `json:"failedJobsHistoryLimit,omitempty"` +} + +// CronJobSpecApplyConfiguration constructs an declarative configuration of the CronJobSpec type for use with +// apply. +func CronJobSpec() *CronJobSpecApplyConfiguration { + return &CronJobSpecApplyConfiguration{} +} + +// WithSchedule sets the Schedule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Schedule field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithSchedule(value string) *CronJobSpecApplyConfiguration { + b.Schedule = &value + return b +} + +// WithStartingDeadlineSeconds sets the StartingDeadlineSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StartingDeadlineSeconds field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithStartingDeadlineSeconds(value int64) *CronJobSpecApplyConfiguration { + b.StartingDeadlineSeconds = &value + return b +} + +// WithConcurrencyPolicy sets the ConcurrencyPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ConcurrencyPolicy field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithConcurrencyPolicy(value v1beta1.ConcurrencyPolicy) *CronJobSpecApplyConfiguration { + b.ConcurrencyPolicy = &value + return b +} + +// WithSuspend sets the Suspend field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Suspend field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithSuspend(value bool) *CronJobSpecApplyConfiguration { + b.Suspend = &value + return b +} + +// WithJobTemplate sets the JobTemplate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the JobTemplate field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithJobTemplate(value *JobTemplateSpecApplyConfiguration) *CronJobSpecApplyConfiguration { + b.JobTemplate = value + return b +} + +// WithSuccessfulJobsHistoryLimit sets the SuccessfulJobsHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SuccessfulJobsHistoryLimit field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithSuccessfulJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration { + b.SuccessfulJobsHistoryLimit = &value + return b +} + +// WithFailedJobsHistoryLimit sets the FailedJobsHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FailedJobsHistoryLimit field is set to the value of the last call. +func (b *CronJobSpecApplyConfiguration) WithFailedJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration { + b.FailedJobsHistoryLimit = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobstatus.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobstatus.go new file mode 100644 index 0000000000..8dca14f663 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobstatus.go @@ -0,0 +1,67 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// CronJobStatusApplyConfiguration represents an declarative configuration of the CronJobStatus type for use +// with apply. +type CronJobStatusApplyConfiguration struct { + Active []v1.ObjectReferenceApplyConfiguration `json:"active,omitempty"` + LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"` + LastSuccessfulTime *metav1.Time `json:"lastSuccessfulTime,omitempty"` +} + +// CronJobStatusApplyConfiguration constructs an declarative configuration of the CronJobStatus type for use with +// apply. +func CronJobStatus() *CronJobStatusApplyConfiguration { + return &CronJobStatusApplyConfiguration{} +} + +// WithActive adds the given value to the Active field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Active field. +func (b *CronJobStatusApplyConfiguration) WithActive(values ...*v1.ObjectReferenceApplyConfiguration) *CronJobStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithActive") + } + b.Active = append(b.Active, *values[i]) + } + return b +} + +// WithLastScheduleTime sets the LastScheduleTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastScheduleTime field is set to the value of the last call. +func (b *CronJobStatusApplyConfiguration) WithLastScheduleTime(value metav1.Time) *CronJobStatusApplyConfiguration { + b.LastScheduleTime = &value + return b +} + +// WithLastSuccessfulTime sets the LastSuccessfulTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastSuccessfulTime field is set to the value of the last call. +func (b *CronJobStatusApplyConfiguration) WithLastSuccessfulTime(value metav1.Time) *CronJobStatusApplyConfiguration { + b.LastSuccessfulTime = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/jobtemplatespec.go b/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/jobtemplatespec.go new file mode 100644 index 0000000000..bad60e1fbf --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/jobtemplatespec.go @@ -0,0 +1,207 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + batchv1 "k8s.io/client-go/applyconfigurations/batch/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// JobTemplateSpecApplyConfiguration represents an declarative configuration of the JobTemplateSpec type for use +// with apply. +type JobTemplateSpecApplyConfiguration struct { + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *batchv1.JobSpecApplyConfiguration `json:"spec,omitempty"` +} + +// JobTemplateSpecApplyConfiguration constructs an declarative configuration of the JobTemplateSpec type for use with +// apply. +func JobTemplateSpec() *JobTemplateSpecApplyConfiguration { + return &JobTemplateSpecApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithName(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithGenerateName(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithNamespace(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithSelfLink(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithUID(value types.UID) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithResourceVersion(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithGeneration(value int64) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithCreationTimestamp(value metav1.Time) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *JobTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *JobTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *JobTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *JobTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithClusterName(value string) *JobTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *JobTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *JobTemplateSpecApplyConfiguration) WithSpec(value *batchv1.JobSpecApplyConfiguration) *JobTemplateSpecApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequest.go b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequest.go new file mode 100644 index 0000000000..99c710a0fb --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequest.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicertificatesv1 "k8s.io/api/certificates/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// CertificateSigningRequestApplyConfiguration represents an declarative configuration of the CertificateSigningRequest type for use +// with apply. +type CertificateSigningRequestApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *CertificateSigningRequestSpecApplyConfiguration `json:"spec,omitempty"` + Status *CertificateSigningRequestStatusApplyConfiguration `json:"status,omitempty"` +} + +// CertificateSigningRequest constructs an declarative configuration of the CertificateSigningRequest type for use with +// apply. +func CertificateSigningRequest(name string) *CertificateSigningRequestApplyConfiguration { + b := &CertificateSigningRequestApplyConfiguration{} + b.WithName(name) + b.WithKind("CertificateSigningRequest") + b.WithAPIVersion("certificates.k8s.io/v1") + return b +} + +// ExtractCertificateSigningRequest extracts the applied configuration owned by fieldManager from +// certificateSigningRequest. If no managedFields are found in certificateSigningRequest for fieldManager, a +// CertificateSigningRequestApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// certificateSigningRequest must be a unmodified CertificateSigningRequest API object that was retrieved from the Kubernetes API. +// ExtractCertificateSigningRequest provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractCertificateSigningRequest(certificateSigningRequest *apicertificatesv1.CertificateSigningRequest, fieldManager string) (*CertificateSigningRequestApplyConfiguration, error) { + b := &CertificateSigningRequestApplyConfiguration{} + err := managedfields.ExtractInto(certificateSigningRequest, internal.Parser().Type("io.k8s.api.certificates.v1.CertificateSigningRequest"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(certificateSigningRequest.Name) + + b.WithKind("CertificateSigningRequest") + b.WithAPIVersion("certificates.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithKind(value string) *CertificateSigningRequestApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithAPIVersion(value string) *CertificateSigningRequestApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithName(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithGenerateName(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithNamespace(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithSelfLink(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithUID(value types.UID) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithResourceVersion(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithGeneration(value int64) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *CertificateSigningRequestApplyConfiguration) WithLabels(entries map[string]string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *CertificateSigningRequestApplyConfiguration) WithAnnotations(entries map[string]string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *CertificateSigningRequestApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *CertificateSigningRequestApplyConfiguration) WithFinalizers(values ...string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithClusterName(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *CertificateSigningRequestApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithSpec(value *CertificateSigningRequestSpecApplyConfiguration) *CertificateSigningRequestApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithStatus(value *CertificateSigningRequestStatusApplyConfiguration) *CertificateSigningRequestApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestcondition.go b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestcondition.go new file mode 100644 index 0000000000..13d69cfcef --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestcondition.go @@ -0,0 +1,90 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/certificates/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// CertificateSigningRequestConditionApplyConfiguration represents an declarative configuration of the CertificateSigningRequestCondition type for use +// with apply. +type CertificateSigningRequestConditionApplyConfiguration struct { + Type *v1.RequestConditionType `json:"type,omitempty"` + Status *corev1.ConditionStatus `json:"status,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` + LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` +} + +// CertificateSigningRequestConditionApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestCondition type for use with +// apply. +func CertificateSigningRequestCondition() *CertificateSigningRequestConditionApplyConfiguration { + return &CertificateSigningRequestConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithType(value v1.RequestConditionType) *CertificateSigningRequestConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *CertificateSigningRequestConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithReason(value string) *CertificateSigningRequestConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithMessage(value string) *CertificateSigningRequestConditionApplyConfiguration { + b.Message = &value + return b +} + +// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastUpdateTime field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration { + b.LastUpdateTime = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestspec.go b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestspec.go new file mode 100644 index 0000000000..7c4d2c98e2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestspec.go @@ -0,0 +1,109 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/certificates/v1" +) + +// CertificateSigningRequestSpecApplyConfiguration represents an declarative configuration of the CertificateSigningRequestSpec type for use +// with apply. +type CertificateSigningRequestSpecApplyConfiguration struct { + Request []byte `json:"request,omitempty"` + SignerName *string `json:"signerName,omitempty"` + Usages []v1.KeyUsage `json:"usages,omitempty"` + Username *string `json:"username,omitempty"` + UID *string `json:"uid,omitempty"` + Groups []string `json:"groups,omitempty"` + Extra map[string]v1.ExtraValue `json:"extra,omitempty"` +} + +// CertificateSigningRequestSpecApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestSpec type for use with +// apply. +func CertificateSigningRequestSpec() *CertificateSigningRequestSpecApplyConfiguration { + return &CertificateSigningRequestSpecApplyConfiguration{} +} + +// WithRequest adds the given value to the Request field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Request field. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithRequest(values ...byte) *CertificateSigningRequestSpecApplyConfiguration { + for i := range values { + b.Request = append(b.Request, values[i]) + } + return b +} + +// WithSignerName sets the SignerName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SignerName field is set to the value of the last call. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithSignerName(value string) *CertificateSigningRequestSpecApplyConfiguration { + b.SignerName = &value + return b +} + +// WithUsages adds the given value to the Usages field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Usages field. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithUsages(values ...v1.KeyUsage) *CertificateSigningRequestSpecApplyConfiguration { + for i := range values { + b.Usages = append(b.Usages, values[i]) + } + return b +} + +// WithUsername sets the Username field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Username field is set to the value of the last call. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithUsername(value string) *CertificateSigningRequestSpecApplyConfiguration { + b.Username = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithUID(value string) *CertificateSigningRequestSpecApplyConfiguration { + b.UID = &value + return b +} + +// WithGroups adds the given value to the Groups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Groups field. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithGroups(values ...string) *CertificateSigningRequestSpecApplyConfiguration { + for i := range values { + b.Groups = append(b.Groups, values[i]) + } + return b +} + +// WithExtra puts the entries into the Extra field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Extra field, +// overwriting an existing map entries in Extra field with the same key. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithExtra(entries map[string]v1.ExtraValue) *CertificateSigningRequestSpecApplyConfiguration { + if b.Extra == nil && len(entries) > 0 { + b.Extra = make(map[string]v1.ExtraValue, len(entries)) + } + for k, v := range entries { + b.Extra[k] = v + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequeststatus.go b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequeststatus.go new file mode 100644 index 0000000000..59d5930331 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequeststatus.go @@ -0,0 +1,55 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// CertificateSigningRequestStatusApplyConfiguration represents an declarative configuration of the CertificateSigningRequestStatus type for use +// with apply. +type CertificateSigningRequestStatusApplyConfiguration struct { + Conditions []CertificateSigningRequestConditionApplyConfiguration `json:"conditions,omitempty"` + Certificate []byte `json:"certificate,omitempty"` +} + +// CertificateSigningRequestStatusApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestStatus type for use with +// apply. +func CertificateSigningRequestStatus() *CertificateSigningRequestStatusApplyConfiguration { + return &CertificateSigningRequestStatusApplyConfiguration{} +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *CertificateSigningRequestStatusApplyConfiguration) WithConditions(values ...*CertificateSigningRequestConditionApplyConfiguration) *CertificateSigningRequestStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + +// WithCertificate adds the given value to the Certificate field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Certificate field. +func (b *CertificateSigningRequestStatusApplyConfiguration) WithCertificate(values ...byte) *CertificateSigningRequestStatusApplyConfiguration { + for i := range values { + b.Certificate = append(b.Certificate, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequest.go b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequest.go new file mode 100644 index 0000000000..920b5319a9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequest.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + certificatesv1beta1 "k8s.io/api/certificates/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// CertificateSigningRequestApplyConfiguration represents an declarative configuration of the CertificateSigningRequest type for use +// with apply. +type CertificateSigningRequestApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *CertificateSigningRequestSpecApplyConfiguration `json:"spec,omitempty"` + Status *CertificateSigningRequestStatusApplyConfiguration `json:"status,omitempty"` +} + +// CertificateSigningRequest constructs an declarative configuration of the CertificateSigningRequest type for use with +// apply. +func CertificateSigningRequest(name string) *CertificateSigningRequestApplyConfiguration { + b := &CertificateSigningRequestApplyConfiguration{} + b.WithName(name) + b.WithKind("CertificateSigningRequest") + b.WithAPIVersion("certificates.k8s.io/v1beta1") + return b +} + +// ExtractCertificateSigningRequest extracts the applied configuration owned by fieldManager from +// certificateSigningRequest. If no managedFields are found in certificateSigningRequest for fieldManager, a +// CertificateSigningRequestApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// certificateSigningRequest must be a unmodified CertificateSigningRequest API object that was retrieved from the Kubernetes API. +// ExtractCertificateSigningRequest provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractCertificateSigningRequest(certificateSigningRequest *certificatesv1beta1.CertificateSigningRequest, fieldManager string) (*CertificateSigningRequestApplyConfiguration, error) { + b := &CertificateSigningRequestApplyConfiguration{} + err := managedfields.ExtractInto(certificateSigningRequest, internal.Parser().Type("io.k8s.api.certificates.v1beta1.CertificateSigningRequest"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(certificateSigningRequest.Name) + + b.WithKind("CertificateSigningRequest") + b.WithAPIVersion("certificates.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithKind(value string) *CertificateSigningRequestApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithAPIVersion(value string) *CertificateSigningRequestApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithName(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithGenerateName(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithNamespace(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithSelfLink(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithUID(value types.UID) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithResourceVersion(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithGeneration(value int64) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *CertificateSigningRequestApplyConfiguration) WithLabels(entries map[string]string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *CertificateSigningRequestApplyConfiguration) WithAnnotations(entries map[string]string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *CertificateSigningRequestApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *CertificateSigningRequestApplyConfiguration) WithFinalizers(values ...string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithClusterName(value string) *CertificateSigningRequestApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *CertificateSigningRequestApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithSpec(value *CertificateSigningRequestSpecApplyConfiguration) *CertificateSigningRequestApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *CertificateSigningRequestApplyConfiguration) WithStatus(value *CertificateSigningRequestStatusApplyConfiguration) *CertificateSigningRequestApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestcondition.go b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestcondition.go new file mode 100644 index 0000000000..2c32a3272c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestcondition.go @@ -0,0 +1,90 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/certificates/v1beta1" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// CertificateSigningRequestConditionApplyConfiguration represents an declarative configuration of the CertificateSigningRequestCondition type for use +// with apply. +type CertificateSigningRequestConditionApplyConfiguration struct { + Type *v1beta1.RequestConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` + LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` +} + +// CertificateSigningRequestConditionApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestCondition type for use with +// apply. +func CertificateSigningRequestCondition() *CertificateSigningRequestConditionApplyConfiguration { + return &CertificateSigningRequestConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithType(value v1beta1.RequestConditionType) *CertificateSigningRequestConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *CertificateSigningRequestConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithReason(value string) *CertificateSigningRequestConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithMessage(value string) *CertificateSigningRequestConditionApplyConfiguration { + b.Message = &value + return b +} + +// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastUpdateTime field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration { + b.LastUpdateTime = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *CertificateSigningRequestConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestspec.go b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestspec.go new file mode 100644 index 0000000000..73ea58e5ec --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestspec.go @@ -0,0 +1,109 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/certificates/v1beta1" +) + +// CertificateSigningRequestSpecApplyConfiguration represents an declarative configuration of the CertificateSigningRequestSpec type for use +// with apply. +type CertificateSigningRequestSpecApplyConfiguration struct { + Request []byte `json:"request,omitempty"` + SignerName *string `json:"signerName,omitempty"` + Usages []v1beta1.KeyUsage `json:"usages,omitempty"` + Username *string `json:"username,omitempty"` + UID *string `json:"uid,omitempty"` + Groups []string `json:"groups,omitempty"` + Extra map[string]v1beta1.ExtraValue `json:"extra,omitempty"` +} + +// CertificateSigningRequestSpecApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestSpec type for use with +// apply. +func CertificateSigningRequestSpec() *CertificateSigningRequestSpecApplyConfiguration { + return &CertificateSigningRequestSpecApplyConfiguration{} +} + +// WithRequest adds the given value to the Request field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Request field. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithRequest(values ...byte) *CertificateSigningRequestSpecApplyConfiguration { + for i := range values { + b.Request = append(b.Request, values[i]) + } + return b +} + +// WithSignerName sets the SignerName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SignerName field is set to the value of the last call. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithSignerName(value string) *CertificateSigningRequestSpecApplyConfiguration { + b.SignerName = &value + return b +} + +// WithUsages adds the given value to the Usages field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Usages field. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithUsages(values ...v1beta1.KeyUsage) *CertificateSigningRequestSpecApplyConfiguration { + for i := range values { + b.Usages = append(b.Usages, values[i]) + } + return b +} + +// WithUsername sets the Username field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Username field is set to the value of the last call. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithUsername(value string) *CertificateSigningRequestSpecApplyConfiguration { + b.Username = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithUID(value string) *CertificateSigningRequestSpecApplyConfiguration { + b.UID = &value + return b +} + +// WithGroups adds the given value to the Groups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Groups field. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithGroups(values ...string) *CertificateSigningRequestSpecApplyConfiguration { + for i := range values { + b.Groups = append(b.Groups, values[i]) + } + return b +} + +// WithExtra puts the entries into the Extra field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Extra field, +// overwriting an existing map entries in Extra field with the same key. +func (b *CertificateSigningRequestSpecApplyConfiguration) WithExtra(entries map[string]v1beta1.ExtraValue) *CertificateSigningRequestSpecApplyConfiguration { + if b.Extra == nil && len(entries) > 0 { + b.Extra = make(map[string]v1beta1.ExtraValue, len(entries)) + } + for k, v := range entries { + b.Extra[k] = v + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequeststatus.go b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequeststatus.go new file mode 100644 index 0000000000..9d8c5d4585 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequeststatus.go @@ -0,0 +1,55 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// CertificateSigningRequestStatusApplyConfiguration represents an declarative configuration of the CertificateSigningRequestStatus type for use +// with apply. +type CertificateSigningRequestStatusApplyConfiguration struct { + Conditions []CertificateSigningRequestConditionApplyConfiguration `json:"conditions,omitempty"` + Certificate []byte `json:"certificate,omitempty"` +} + +// CertificateSigningRequestStatusApplyConfiguration constructs an declarative configuration of the CertificateSigningRequestStatus type for use with +// apply. +func CertificateSigningRequestStatus() *CertificateSigningRequestStatusApplyConfiguration { + return &CertificateSigningRequestStatusApplyConfiguration{} +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *CertificateSigningRequestStatusApplyConfiguration) WithConditions(values ...*CertificateSigningRequestConditionApplyConfiguration) *CertificateSigningRequestStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + +// WithCertificate adds the given value to the Certificate field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Certificate field. +func (b *CertificateSigningRequestStatusApplyConfiguration) WithCertificate(values ...byte) *CertificateSigningRequestStatusApplyConfiguration { + for i := range values { + b.Certificate = append(b.Certificate, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/coordination/v1/lease.go b/vendor/k8s.io/client-go/applyconfigurations/coordination/v1/lease.go new file mode 100644 index 0000000000..ad552f2a5e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/coordination/v1/lease.go @@ -0,0 +1,256 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicoordinationv1 "k8s.io/api/coordination/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// LeaseApplyConfiguration represents an declarative configuration of the Lease type for use +// with apply. +type LeaseApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *LeaseSpecApplyConfiguration `json:"spec,omitempty"` +} + +// Lease constructs an declarative configuration of the Lease type for use with +// apply. +func Lease(name, namespace string) *LeaseApplyConfiguration { + b := &LeaseApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Lease") + b.WithAPIVersion("coordination.k8s.io/v1") + return b +} + +// ExtractLease extracts the applied configuration owned by fieldManager from +// lease. If no managedFields are found in lease for fieldManager, a +// LeaseApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// lease must be a unmodified Lease API object that was retrieved from the Kubernetes API. +// ExtractLease provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractLease(lease *apicoordinationv1.Lease, fieldManager string) (*LeaseApplyConfiguration, error) { + b := &LeaseApplyConfiguration{} + err := managedfields.ExtractInto(lease, internal.Parser().Type("io.k8s.api.coordination.v1.Lease"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(lease.Name) + b.WithNamespace(lease.Namespace) + + b.WithKind("Lease") + b.WithAPIVersion("coordination.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithKind(value string) *LeaseApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithAPIVersion(value string) *LeaseApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithName(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithGenerateName(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithNamespace(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithSelfLink(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithUID(value types.UID) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithResourceVersion(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithGeneration(value int64) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithCreationTimestamp(value metav1.Time) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *LeaseApplyConfiguration) WithLabels(entries map[string]string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *LeaseApplyConfiguration) WithAnnotations(entries map[string]string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *LeaseApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *LeaseApplyConfiguration) WithFinalizers(values ...string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithClusterName(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *LeaseApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithSpec(value *LeaseSpecApplyConfiguration) *LeaseApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/coordination/v1/leasespec.go b/vendor/k8s.io/client-go/applyconfigurations/coordination/v1/leasespec.go new file mode 100644 index 0000000000..a5f6a6ebba --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/coordination/v1/leasespec.go @@ -0,0 +1,79 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// LeaseSpecApplyConfiguration represents an declarative configuration of the LeaseSpec type for use +// with apply. +type LeaseSpecApplyConfiguration struct { + HolderIdentity *string `json:"holderIdentity,omitempty"` + LeaseDurationSeconds *int32 `json:"leaseDurationSeconds,omitempty"` + AcquireTime *v1.MicroTime `json:"acquireTime,omitempty"` + RenewTime *v1.MicroTime `json:"renewTime,omitempty"` + LeaseTransitions *int32 `json:"leaseTransitions,omitempty"` +} + +// LeaseSpecApplyConfiguration constructs an declarative configuration of the LeaseSpec type for use with +// apply. +func LeaseSpec() *LeaseSpecApplyConfiguration { + return &LeaseSpecApplyConfiguration{} +} + +// WithHolderIdentity sets the HolderIdentity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HolderIdentity field is set to the value of the last call. +func (b *LeaseSpecApplyConfiguration) WithHolderIdentity(value string) *LeaseSpecApplyConfiguration { + b.HolderIdentity = &value + return b +} + +// WithLeaseDurationSeconds sets the LeaseDurationSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LeaseDurationSeconds field is set to the value of the last call. +func (b *LeaseSpecApplyConfiguration) WithLeaseDurationSeconds(value int32) *LeaseSpecApplyConfiguration { + b.LeaseDurationSeconds = &value + return b +} + +// WithAcquireTime sets the AcquireTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AcquireTime field is set to the value of the last call. +func (b *LeaseSpecApplyConfiguration) WithAcquireTime(value v1.MicroTime) *LeaseSpecApplyConfiguration { + b.AcquireTime = &value + return b +} + +// WithRenewTime sets the RenewTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RenewTime field is set to the value of the last call. +func (b *LeaseSpecApplyConfiguration) WithRenewTime(value v1.MicroTime) *LeaseSpecApplyConfiguration { + b.RenewTime = &value + return b +} + +// WithLeaseTransitions sets the LeaseTransitions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LeaseTransitions field is set to the value of the last call. +func (b *LeaseSpecApplyConfiguration) WithLeaseTransitions(value int32) *LeaseSpecApplyConfiguration { + b.LeaseTransitions = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/lease.go b/vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/lease.go new file mode 100644 index 0000000000..9093cfc543 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/lease.go @@ -0,0 +1,256 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + coordinationv1beta1 "k8s.io/api/coordination/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// LeaseApplyConfiguration represents an declarative configuration of the Lease type for use +// with apply. +type LeaseApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *LeaseSpecApplyConfiguration `json:"spec,omitempty"` +} + +// Lease constructs an declarative configuration of the Lease type for use with +// apply. +func Lease(name, namespace string) *LeaseApplyConfiguration { + b := &LeaseApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Lease") + b.WithAPIVersion("coordination.k8s.io/v1beta1") + return b +} + +// ExtractLease extracts the applied configuration owned by fieldManager from +// lease. If no managedFields are found in lease for fieldManager, a +// LeaseApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// lease must be a unmodified Lease API object that was retrieved from the Kubernetes API. +// ExtractLease provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractLease(lease *coordinationv1beta1.Lease, fieldManager string) (*LeaseApplyConfiguration, error) { + b := &LeaseApplyConfiguration{} + err := managedfields.ExtractInto(lease, internal.Parser().Type("io.k8s.api.coordination.v1beta1.Lease"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(lease.Name) + b.WithNamespace(lease.Namespace) + + b.WithKind("Lease") + b.WithAPIVersion("coordination.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithKind(value string) *LeaseApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithAPIVersion(value string) *LeaseApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithName(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithGenerateName(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithNamespace(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithSelfLink(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithUID(value types.UID) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithResourceVersion(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithGeneration(value int64) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithCreationTimestamp(value metav1.Time) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *LeaseApplyConfiguration) WithLabels(entries map[string]string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *LeaseApplyConfiguration) WithAnnotations(entries map[string]string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *LeaseApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *LeaseApplyConfiguration) WithFinalizers(values ...string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithClusterName(value string) *LeaseApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *LeaseApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *LeaseApplyConfiguration) WithSpec(value *LeaseSpecApplyConfiguration) *LeaseApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/leasespec.go b/vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/leasespec.go new file mode 100644 index 0000000000..865eb76455 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/leasespec.go @@ -0,0 +1,79 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// LeaseSpecApplyConfiguration represents an declarative configuration of the LeaseSpec type for use +// with apply. +type LeaseSpecApplyConfiguration struct { + HolderIdentity *string `json:"holderIdentity,omitempty"` + LeaseDurationSeconds *int32 `json:"leaseDurationSeconds,omitempty"` + AcquireTime *v1.MicroTime `json:"acquireTime,omitempty"` + RenewTime *v1.MicroTime `json:"renewTime,omitempty"` + LeaseTransitions *int32 `json:"leaseTransitions,omitempty"` +} + +// LeaseSpecApplyConfiguration constructs an declarative configuration of the LeaseSpec type for use with +// apply. +func LeaseSpec() *LeaseSpecApplyConfiguration { + return &LeaseSpecApplyConfiguration{} +} + +// WithHolderIdentity sets the HolderIdentity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HolderIdentity field is set to the value of the last call. +func (b *LeaseSpecApplyConfiguration) WithHolderIdentity(value string) *LeaseSpecApplyConfiguration { + b.HolderIdentity = &value + return b +} + +// WithLeaseDurationSeconds sets the LeaseDurationSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LeaseDurationSeconds field is set to the value of the last call. +func (b *LeaseSpecApplyConfiguration) WithLeaseDurationSeconds(value int32) *LeaseSpecApplyConfiguration { + b.LeaseDurationSeconds = &value + return b +} + +// WithAcquireTime sets the AcquireTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AcquireTime field is set to the value of the last call. +func (b *LeaseSpecApplyConfiguration) WithAcquireTime(value v1.MicroTime) *LeaseSpecApplyConfiguration { + b.AcquireTime = &value + return b +} + +// WithRenewTime sets the RenewTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RenewTime field is set to the value of the last call. +func (b *LeaseSpecApplyConfiguration) WithRenewTime(value v1.MicroTime) *LeaseSpecApplyConfiguration { + b.RenewTime = &value + return b +} + +// WithLeaseTransitions sets the LeaseTransitions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LeaseTransitions field is set to the value of the last call. +func (b *LeaseSpecApplyConfiguration) WithLeaseTransitions(value int32) *LeaseSpecApplyConfiguration { + b.LeaseTransitions = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/affinity.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/affinity.go new file mode 100644 index 0000000000..df6d1c64e5 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/affinity.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// AffinityApplyConfiguration represents an declarative configuration of the Affinity type for use +// with apply. +type AffinityApplyConfiguration struct { + NodeAffinity *NodeAffinityApplyConfiguration `json:"nodeAffinity,omitempty"` + PodAffinity *PodAffinityApplyConfiguration `json:"podAffinity,omitempty"` + PodAntiAffinity *PodAntiAffinityApplyConfiguration `json:"podAntiAffinity,omitempty"` +} + +// AffinityApplyConfiguration constructs an declarative configuration of the Affinity type for use with +// apply. +func Affinity() *AffinityApplyConfiguration { + return &AffinityApplyConfiguration{} +} + +// WithNodeAffinity sets the NodeAffinity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeAffinity field is set to the value of the last call. +func (b *AffinityApplyConfiguration) WithNodeAffinity(value *NodeAffinityApplyConfiguration) *AffinityApplyConfiguration { + b.NodeAffinity = value + return b +} + +// WithPodAffinity sets the PodAffinity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodAffinity field is set to the value of the last call. +func (b *AffinityApplyConfiguration) WithPodAffinity(value *PodAffinityApplyConfiguration) *AffinityApplyConfiguration { + b.PodAffinity = value + return b +} + +// WithPodAntiAffinity sets the PodAntiAffinity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodAntiAffinity field is set to the value of the last call. +func (b *AffinityApplyConfiguration) WithPodAntiAffinity(value *PodAntiAffinityApplyConfiguration) *AffinityApplyConfiguration { + b.PodAntiAffinity = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/attachedvolume.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/attachedvolume.go new file mode 100644 index 0000000000..970bf24c45 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/attachedvolume.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// AttachedVolumeApplyConfiguration represents an declarative configuration of the AttachedVolume type for use +// with apply. +type AttachedVolumeApplyConfiguration struct { + Name *v1.UniqueVolumeName `json:"name,omitempty"` + DevicePath *string `json:"devicePath,omitempty"` +} + +// AttachedVolumeApplyConfiguration constructs an declarative configuration of the AttachedVolume type for use with +// apply. +func AttachedVolume() *AttachedVolumeApplyConfiguration { + return &AttachedVolumeApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *AttachedVolumeApplyConfiguration) WithName(value v1.UniqueVolumeName) *AttachedVolumeApplyConfiguration { + b.Name = &value + return b +} + +// WithDevicePath sets the DevicePath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DevicePath field is set to the value of the last call. +func (b *AttachedVolumeApplyConfiguration) WithDevicePath(value string) *AttachedVolumeApplyConfiguration { + b.DevicePath = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/awselasticblockstorevolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/awselasticblockstorevolumesource.go new file mode 100644 index 0000000000..6ff335e9d6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/awselasticblockstorevolumesource.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// AWSElasticBlockStoreVolumeSourceApplyConfiguration represents an declarative configuration of the AWSElasticBlockStoreVolumeSource type for use +// with apply. +type AWSElasticBlockStoreVolumeSourceApplyConfiguration struct { + VolumeID *string `json:"volumeID,omitempty"` + FSType *string `json:"fsType,omitempty"` + Partition *int32 `json:"partition,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// AWSElasticBlockStoreVolumeSourceApplyConfiguration constructs an declarative configuration of the AWSElasticBlockStoreVolumeSource type for use with +// apply. +func AWSElasticBlockStoreVolumeSource() *AWSElasticBlockStoreVolumeSourceApplyConfiguration { + return &AWSElasticBlockStoreVolumeSourceApplyConfiguration{} +} + +// WithVolumeID sets the VolumeID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeID field is set to the value of the last call. +func (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithVolumeID(value string) *AWSElasticBlockStoreVolumeSourceApplyConfiguration { + b.VolumeID = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithFSType(value string) *AWSElasticBlockStoreVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithPartition sets the Partition field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Partition field is set to the value of the last call. +func (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithPartition(value int32) *AWSElasticBlockStoreVolumeSourceApplyConfiguration { + b.Partition = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AWSElasticBlockStoreVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurediskvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurediskvolumesource.go new file mode 100644 index 0000000000..b2774735ae --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurediskvolumesource.go @@ -0,0 +1,88 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// AzureDiskVolumeSourceApplyConfiguration represents an declarative configuration of the AzureDiskVolumeSource type for use +// with apply. +type AzureDiskVolumeSourceApplyConfiguration struct { + DiskName *string `json:"diskName,omitempty"` + DataDiskURI *string `json:"diskURI,omitempty"` + CachingMode *v1.AzureDataDiskCachingMode `json:"cachingMode,omitempty"` + FSType *string `json:"fsType,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + Kind *v1.AzureDataDiskKind `json:"kind,omitempty"` +} + +// AzureDiskVolumeSourceApplyConfiguration constructs an declarative configuration of the AzureDiskVolumeSource type for use with +// apply. +func AzureDiskVolumeSource() *AzureDiskVolumeSourceApplyConfiguration { + return &AzureDiskVolumeSourceApplyConfiguration{} +} + +// WithDiskName sets the DiskName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DiskName field is set to the value of the last call. +func (b *AzureDiskVolumeSourceApplyConfiguration) WithDiskName(value string) *AzureDiskVolumeSourceApplyConfiguration { + b.DiskName = &value + return b +} + +// WithDataDiskURI sets the DataDiskURI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DataDiskURI field is set to the value of the last call. +func (b *AzureDiskVolumeSourceApplyConfiguration) WithDataDiskURI(value string) *AzureDiskVolumeSourceApplyConfiguration { + b.DataDiskURI = &value + return b +} + +// WithCachingMode sets the CachingMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CachingMode field is set to the value of the last call. +func (b *AzureDiskVolumeSourceApplyConfiguration) WithCachingMode(value v1.AzureDataDiskCachingMode) *AzureDiskVolumeSourceApplyConfiguration { + b.CachingMode = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *AzureDiskVolumeSourceApplyConfiguration) WithFSType(value string) *AzureDiskVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *AzureDiskVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AzureDiskVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *AzureDiskVolumeSourceApplyConfiguration) WithKind(value v1.AzureDataDiskKind) *AzureDiskVolumeSourceApplyConfiguration { + b.Kind = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilepersistentvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilepersistentvolumesource.go new file mode 100644 index 0000000000..f173938334 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilepersistentvolumesource.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// AzureFilePersistentVolumeSourceApplyConfiguration represents an declarative configuration of the AzureFilePersistentVolumeSource type for use +// with apply. +type AzureFilePersistentVolumeSourceApplyConfiguration struct { + SecretName *string `json:"secretName,omitempty"` + ShareName *string `json:"shareName,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + SecretNamespace *string `json:"secretNamespace,omitempty"` +} + +// AzureFilePersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the AzureFilePersistentVolumeSource type for use with +// apply. +func AzureFilePersistentVolumeSource() *AzureFilePersistentVolumeSourceApplyConfiguration { + return &AzureFilePersistentVolumeSourceApplyConfiguration{} +} + +// WithSecretName sets the SecretName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretName field is set to the value of the last call. +func (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithSecretName(value string) *AzureFilePersistentVolumeSourceApplyConfiguration { + b.SecretName = &value + return b +} + +// WithShareName sets the ShareName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ShareName field is set to the value of the last call. +func (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithShareName(value string) *AzureFilePersistentVolumeSourceApplyConfiguration { + b.ShareName = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AzureFilePersistentVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithSecretNamespace sets the SecretNamespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretNamespace field is set to the value of the last call. +func (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithSecretNamespace(value string) *AzureFilePersistentVolumeSourceApplyConfiguration { + b.SecretNamespace = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilevolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilevolumesource.go new file mode 100644 index 0000000000..a7f7f33d88 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilevolumesource.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// AzureFileVolumeSourceApplyConfiguration represents an declarative configuration of the AzureFileVolumeSource type for use +// with apply. +type AzureFileVolumeSourceApplyConfiguration struct { + SecretName *string `json:"secretName,omitempty"` + ShareName *string `json:"shareName,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// AzureFileVolumeSourceApplyConfiguration constructs an declarative configuration of the AzureFileVolumeSource type for use with +// apply. +func AzureFileVolumeSource() *AzureFileVolumeSourceApplyConfiguration { + return &AzureFileVolumeSourceApplyConfiguration{} +} + +// WithSecretName sets the SecretName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretName field is set to the value of the last call. +func (b *AzureFileVolumeSourceApplyConfiguration) WithSecretName(value string) *AzureFileVolumeSourceApplyConfiguration { + b.SecretName = &value + return b +} + +// WithShareName sets the ShareName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ShareName field is set to the value of the last call. +func (b *AzureFileVolumeSourceApplyConfiguration) WithShareName(value string) *AzureFileVolumeSourceApplyConfiguration { + b.ShareName = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *AzureFileVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AzureFileVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/capabilities.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/capabilities.go new file mode 100644 index 0000000000..c3d176c4d8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/capabilities.go @@ -0,0 +1,56 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// CapabilitiesApplyConfiguration represents an declarative configuration of the Capabilities type for use +// with apply. +type CapabilitiesApplyConfiguration struct { + Add []v1.Capability `json:"add,omitempty"` + Drop []v1.Capability `json:"drop,omitempty"` +} + +// CapabilitiesApplyConfiguration constructs an declarative configuration of the Capabilities type for use with +// apply. +func Capabilities() *CapabilitiesApplyConfiguration { + return &CapabilitiesApplyConfiguration{} +} + +// WithAdd adds the given value to the Add field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Add field. +func (b *CapabilitiesApplyConfiguration) WithAdd(values ...v1.Capability) *CapabilitiesApplyConfiguration { + for i := range values { + b.Add = append(b.Add, values[i]) + } + return b +} + +// WithDrop adds the given value to the Drop field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Drop field. +func (b *CapabilitiesApplyConfiguration) WithDrop(values ...v1.Capability) *CapabilitiesApplyConfiguration { + for i := range values { + b.Drop = append(b.Drop, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfspersistentvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfspersistentvolumesource.go new file mode 100644 index 0000000000..a41936fe3d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfspersistentvolumesource.go @@ -0,0 +1,86 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// CephFSPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the CephFSPersistentVolumeSource type for use +// with apply. +type CephFSPersistentVolumeSourceApplyConfiguration struct { + Monitors []string `json:"monitors,omitempty"` + Path *string `json:"path,omitempty"` + User *string `json:"user,omitempty"` + SecretFile *string `json:"secretFile,omitempty"` + SecretRef *SecretReferenceApplyConfiguration `json:"secretRef,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// CephFSPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the CephFSPersistentVolumeSource type for use with +// apply. +func CephFSPersistentVolumeSource() *CephFSPersistentVolumeSourceApplyConfiguration { + return &CephFSPersistentVolumeSourceApplyConfiguration{} +} + +// WithMonitors adds the given value to the Monitors field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Monitors field. +func (b *CephFSPersistentVolumeSourceApplyConfiguration) WithMonitors(values ...string) *CephFSPersistentVolumeSourceApplyConfiguration { + for i := range values { + b.Monitors = append(b.Monitors, values[i]) + } + return b +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *CephFSPersistentVolumeSourceApplyConfiguration) WithPath(value string) *CephFSPersistentVolumeSourceApplyConfiguration { + b.Path = &value + return b +} + +// WithUser sets the User field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the User field is set to the value of the last call. +func (b *CephFSPersistentVolumeSourceApplyConfiguration) WithUser(value string) *CephFSPersistentVolumeSourceApplyConfiguration { + b.User = &value + return b +} + +// WithSecretFile sets the SecretFile field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretFile field is set to the value of the last call. +func (b *CephFSPersistentVolumeSourceApplyConfiguration) WithSecretFile(value string) *CephFSPersistentVolumeSourceApplyConfiguration { + b.SecretFile = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *CephFSPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *CephFSPersistentVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *CephFSPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CephFSPersistentVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfsvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfsvolumesource.go new file mode 100644 index 0000000000..0ea070ba5d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfsvolumesource.go @@ -0,0 +1,86 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// CephFSVolumeSourceApplyConfiguration represents an declarative configuration of the CephFSVolumeSource type for use +// with apply. +type CephFSVolumeSourceApplyConfiguration struct { + Monitors []string `json:"monitors,omitempty"` + Path *string `json:"path,omitempty"` + User *string `json:"user,omitempty"` + SecretFile *string `json:"secretFile,omitempty"` + SecretRef *LocalObjectReferenceApplyConfiguration `json:"secretRef,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// CephFSVolumeSourceApplyConfiguration constructs an declarative configuration of the CephFSVolumeSource type for use with +// apply. +func CephFSVolumeSource() *CephFSVolumeSourceApplyConfiguration { + return &CephFSVolumeSourceApplyConfiguration{} +} + +// WithMonitors adds the given value to the Monitors field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Monitors field. +func (b *CephFSVolumeSourceApplyConfiguration) WithMonitors(values ...string) *CephFSVolumeSourceApplyConfiguration { + for i := range values { + b.Monitors = append(b.Monitors, values[i]) + } + return b +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *CephFSVolumeSourceApplyConfiguration) WithPath(value string) *CephFSVolumeSourceApplyConfiguration { + b.Path = &value + return b +} + +// WithUser sets the User field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the User field is set to the value of the last call. +func (b *CephFSVolumeSourceApplyConfiguration) WithUser(value string) *CephFSVolumeSourceApplyConfiguration { + b.User = &value + return b +} + +// WithSecretFile sets the SecretFile field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretFile field is set to the value of the last call. +func (b *CephFSVolumeSourceApplyConfiguration) WithSecretFile(value string) *CephFSVolumeSourceApplyConfiguration { + b.SecretFile = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *CephFSVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *CephFSVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *CephFSVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CephFSVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/cinderpersistentvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/cinderpersistentvolumesource.go new file mode 100644 index 0000000000..7754cf92f7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/cinderpersistentvolumesource.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// CinderPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the CinderPersistentVolumeSource type for use +// with apply. +type CinderPersistentVolumeSourceApplyConfiguration struct { + VolumeID *string `json:"volumeID,omitempty"` + FSType *string `json:"fsType,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + SecretRef *SecretReferenceApplyConfiguration `json:"secretRef,omitempty"` +} + +// CinderPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the CinderPersistentVolumeSource type for use with +// apply. +func CinderPersistentVolumeSource() *CinderPersistentVolumeSourceApplyConfiguration { + return &CinderPersistentVolumeSourceApplyConfiguration{} +} + +// WithVolumeID sets the VolumeID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeID field is set to the value of the last call. +func (b *CinderPersistentVolumeSourceApplyConfiguration) WithVolumeID(value string) *CinderPersistentVolumeSourceApplyConfiguration { + b.VolumeID = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *CinderPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *CinderPersistentVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *CinderPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CinderPersistentVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *CinderPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *CinderPersistentVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/cindervolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/cindervolumesource.go new file mode 100644 index 0000000000..51271e279d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/cindervolumesource.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// CinderVolumeSourceApplyConfiguration represents an declarative configuration of the CinderVolumeSource type for use +// with apply. +type CinderVolumeSourceApplyConfiguration struct { + VolumeID *string `json:"volumeID,omitempty"` + FSType *string `json:"fsType,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + SecretRef *LocalObjectReferenceApplyConfiguration `json:"secretRef,omitempty"` +} + +// CinderVolumeSourceApplyConfiguration constructs an declarative configuration of the CinderVolumeSource type for use with +// apply. +func CinderVolumeSource() *CinderVolumeSourceApplyConfiguration { + return &CinderVolumeSourceApplyConfiguration{} +} + +// WithVolumeID sets the VolumeID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeID field is set to the value of the last call. +func (b *CinderVolumeSourceApplyConfiguration) WithVolumeID(value string) *CinderVolumeSourceApplyConfiguration { + b.VolumeID = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *CinderVolumeSourceApplyConfiguration) WithFSType(value string) *CinderVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *CinderVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CinderVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *CinderVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *CinderVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/clientipconfig.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/clientipconfig.go new file mode 100644 index 0000000000..a666e8faae --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/clientipconfig.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ClientIPConfigApplyConfiguration represents an declarative configuration of the ClientIPConfig type for use +// with apply. +type ClientIPConfigApplyConfiguration struct { + TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"` +} + +// ClientIPConfigApplyConfiguration constructs an declarative configuration of the ClientIPConfig type for use with +// apply. +func ClientIPConfig() *ClientIPConfigApplyConfiguration { + return &ClientIPConfigApplyConfiguration{} +} + +// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TimeoutSeconds field is set to the value of the last call. +func (b *ClientIPConfigApplyConfiguration) WithTimeoutSeconds(value int32) *ClientIPConfigApplyConfiguration { + b.TimeoutSeconds = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/componentcondition.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/componentcondition.go new file mode 100644 index 0000000000..1ef65f5a0c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/componentcondition.go @@ -0,0 +1,70 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// ComponentConditionApplyConfiguration represents an declarative configuration of the ComponentCondition type for use +// with apply. +type ComponentConditionApplyConfiguration struct { + Type *v1.ComponentConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + Message *string `json:"message,omitempty"` + Error *string `json:"error,omitempty"` +} + +// ComponentConditionApplyConfiguration constructs an declarative configuration of the ComponentCondition type for use with +// apply. +func ComponentCondition() *ComponentConditionApplyConfiguration { + return &ComponentConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *ComponentConditionApplyConfiguration) WithType(value v1.ComponentConditionType) *ComponentConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ComponentConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ComponentConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *ComponentConditionApplyConfiguration) WithMessage(value string) *ComponentConditionApplyConfiguration { + b.Message = &value + return b +} + +// WithError sets the Error field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Error field is set to the value of the last call. +func (b *ComponentConditionApplyConfiguration) WithError(value string) *ComponentConditionApplyConfiguration { + b.Error = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/componentstatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/componentstatus.go new file mode 100644 index 0000000000..9328bdd760 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/componentstatus.go @@ -0,0 +1,259 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ComponentStatusApplyConfiguration represents an declarative configuration of the ComponentStatus type for use +// with apply. +type ComponentStatusApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Conditions []ComponentConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// ComponentStatus constructs an declarative configuration of the ComponentStatus type for use with +// apply. +func ComponentStatus(name string) *ComponentStatusApplyConfiguration { + b := &ComponentStatusApplyConfiguration{} + b.WithName(name) + b.WithKind("ComponentStatus") + b.WithAPIVersion("v1") + return b +} + +// ExtractComponentStatus extracts the applied configuration owned by fieldManager from +// componentStatus. If no managedFields are found in componentStatus for fieldManager, a +// ComponentStatusApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// componentStatus must be a unmodified ComponentStatus API object that was retrieved from the Kubernetes API. +// ExtractComponentStatus provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractComponentStatus(componentStatus *apicorev1.ComponentStatus, fieldManager string) (*ComponentStatusApplyConfiguration, error) { + b := &ComponentStatusApplyConfiguration{} + err := managedfields.ExtractInto(componentStatus, internal.Parser().Type("io.k8s.api.core.v1.ComponentStatus"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(componentStatus.Name) + + b.WithKind("ComponentStatus") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithKind(value string) *ComponentStatusApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithAPIVersion(value string) *ComponentStatusApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithName(value string) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithGenerateName(value string) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithNamespace(value string) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithSelfLink(value string) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithUID(value types.UID) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithResourceVersion(value string) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithGeneration(value int64) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ComponentStatusApplyConfiguration) WithLabels(entries map[string]string) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ComponentStatusApplyConfiguration) WithAnnotations(entries map[string]string) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ComponentStatusApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ComponentStatusApplyConfiguration) WithFinalizers(values ...string) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ComponentStatusApplyConfiguration) WithClusterName(value string) *ComponentStatusApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ComponentStatusApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *ComponentStatusApplyConfiguration) WithConditions(values ...*ComponentConditionApplyConfiguration) *ComponentStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmap.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmap.go new file mode 100644 index 0000000000..b60f981b05 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmap.go @@ -0,0 +1,286 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ConfigMapApplyConfiguration represents an declarative configuration of the ConfigMap type for use +// with apply. +type ConfigMapApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Immutable *bool `json:"immutable,omitempty"` + Data map[string]string `json:"data,omitempty"` + BinaryData map[string][]byte `json:"binaryData,omitempty"` +} + +// ConfigMap constructs an declarative configuration of the ConfigMap type for use with +// apply. +func ConfigMap(name, namespace string) *ConfigMapApplyConfiguration { + b := &ConfigMapApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("ConfigMap") + b.WithAPIVersion("v1") + return b +} + +// ExtractConfigMap extracts the applied configuration owned by fieldManager from +// configMap. If no managedFields are found in configMap for fieldManager, a +// ConfigMapApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// configMap must be a unmodified ConfigMap API object that was retrieved from the Kubernetes API. +// ExtractConfigMap provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractConfigMap(configMap *corev1.ConfigMap, fieldManager string) (*ConfigMapApplyConfiguration, error) { + b := &ConfigMapApplyConfiguration{} + err := managedfields.ExtractInto(configMap, internal.Parser().Type("io.k8s.api.core.v1.ConfigMap"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(configMap.Name) + b.WithNamespace(configMap.Namespace) + + b.WithKind("ConfigMap") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithKind(value string) *ConfigMapApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithAPIVersion(value string) *ConfigMapApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithName(value string) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithGenerateName(value string) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithNamespace(value string) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithSelfLink(value string) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithUID(value types.UID) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithResourceVersion(value string) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithGeneration(value int64) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ConfigMapApplyConfiguration) WithLabels(entries map[string]string) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ConfigMapApplyConfiguration) WithAnnotations(entries map[string]string) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ConfigMapApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ConfigMapApplyConfiguration) WithFinalizers(values ...string) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithClusterName(value string) *ConfigMapApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ConfigMapApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithImmutable sets the Immutable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Immutable field is set to the value of the last call. +func (b *ConfigMapApplyConfiguration) WithImmutable(value bool) *ConfigMapApplyConfiguration { + b.Immutable = &value + return b +} + +// WithData puts the entries into the Data field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Data field, +// overwriting an existing map entries in Data field with the same key. +func (b *ConfigMapApplyConfiguration) WithData(entries map[string]string) *ConfigMapApplyConfiguration { + if b.Data == nil && len(entries) > 0 { + b.Data = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Data[k] = v + } + return b +} + +// WithBinaryData puts the entries into the BinaryData field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the BinaryData field, +// overwriting an existing map entries in BinaryData field with the same key. +func (b *ConfigMapApplyConfiguration) WithBinaryData(entries map[string][]byte) *ConfigMapApplyConfiguration { + if b.BinaryData == nil && len(entries) > 0 { + b.BinaryData = make(map[string][]byte, len(entries)) + } + for k, v := range entries { + b.BinaryData[k] = v + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapenvsource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapenvsource.go new file mode 100644 index 0000000000..8802fff48f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapenvsource.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ConfigMapEnvSourceApplyConfiguration represents an declarative configuration of the ConfigMapEnvSource type for use +// with apply. +type ConfigMapEnvSourceApplyConfiguration struct { + LocalObjectReferenceApplyConfiguration `json:",inline"` + Optional *bool `json:"optional,omitempty"` +} + +// ConfigMapEnvSourceApplyConfiguration constructs an declarative configuration of the ConfigMapEnvSource type for use with +// apply. +func ConfigMapEnvSource() *ConfigMapEnvSourceApplyConfiguration { + return &ConfigMapEnvSourceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ConfigMapEnvSourceApplyConfiguration) WithName(value string) *ConfigMapEnvSourceApplyConfiguration { + b.Name = &value + return b +} + +// WithOptional sets the Optional field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Optional field is set to the value of the last call. +func (b *ConfigMapEnvSourceApplyConfiguration) WithOptional(value bool) *ConfigMapEnvSourceApplyConfiguration { + b.Optional = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapkeyselector.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapkeyselector.go new file mode 100644 index 0000000000..2a8c800afc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapkeyselector.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ConfigMapKeySelectorApplyConfiguration represents an declarative configuration of the ConfigMapKeySelector type for use +// with apply. +type ConfigMapKeySelectorApplyConfiguration struct { + LocalObjectReferenceApplyConfiguration `json:",inline"` + Key *string `json:"key,omitempty"` + Optional *bool `json:"optional,omitempty"` +} + +// ConfigMapKeySelectorApplyConfiguration constructs an declarative configuration of the ConfigMapKeySelector type for use with +// apply. +func ConfigMapKeySelector() *ConfigMapKeySelectorApplyConfiguration { + return &ConfigMapKeySelectorApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ConfigMapKeySelectorApplyConfiguration) WithName(value string) *ConfigMapKeySelectorApplyConfiguration { + b.Name = &value + return b +} + +// WithKey sets the Key field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Key field is set to the value of the last call. +func (b *ConfigMapKeySelectorApplyConfiguration) WithKey(value string) *ConfigMapKeySelectorApplyConfiguration { + b.Key = &value + return b +} + +// WithOptional sets the Optional field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Optional field is set to the value of the last call. +func (b *ConfigMapKeySelectorApplyConfiguration) WithOptional(value bool) *ConfigMapKeySelectorApplyConfiguration { + b.Optional = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapnodeconfigsource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapnodeconfigsource.go new file mode 100644 index 0000000000..da9655a544 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapnodeconfigsource.go @@ -0,0 +1,79 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + types "k8s.io/apimachinery/pkg/types" +) + +// ConfigMapNodeConfigSourceApplyConfiguration represents an declarative configuration of the ConfigMapNodeConfigSource type for use +// with apply. +type ConfigMapNodeConfigSourceApplyConfiguration struct { + Namespace *string `json:"namespace,omitempty"` + Name *string `json:"name,omitempty"` + UID *types.UID `json:"uid,omitempty"` + ResourceVersion *string `json:"resourceVersion,omitempty"` + KubeletConfigKey *string `json:"kubeletConfigKey,omitempty"` +} + +// ConfigMapNodeConfigSourceApplyConfiguration constructs an declarative configuration of the ConfigMapNodeConfigSource type for use with +// apply. +func ConfigMapNodeConfigSource() *ConfigMapNodeConfigSourceApplyConfiguration { + return &ConfigMapNodeConfigSourceApplyConfiguration{} +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ConfigMapNodeConfigSourceApplyConfiguration) WithNamespace(value string) *ConfigMapNodeConfigSourceApplyConfiguration { + b.Namespace = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ConfigMapNodeConfigSourceApplyConfiguration) WithName(value string) *ConfigMapNodeConfigSourceApplyConfiguration { + b.Name = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ConfigMapNodeConfigSourceApplyConfiguration) WithUID(value types.UID) *ConfigMapNodeConfigSourceApplyConfiguration { + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ConfigMapNodeConfigSourceApplyConfiguration) WithResourceVersion(value string) *ConfigMapNodeConfigSourceApplyConfiguration { + b.ResourceVersion = &value + return b +} + +// WithKubeletConfigKey sets the KubeletConfigKey field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the KubeletConfigKey field is set to the value of the last call. +func (b *ConfigMapNodeConfigSourceApplyConfiguration) WithKubeletConfigKey(value string) *ConfigMapNodeConfigSourceApplyConfiguration { + b.KubeletConfigKey = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapprojection.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapprojection.go new file mode 100644 index 0000000000..7297d3a437 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapprojection.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ConfigMapProjectionApplyConfiguration represents an declarative configuration of the ConfigMapProjection type for use +// with apply. +type ConfigMapProjectionApplyConfiguration struct { + LocalObjectReferenceApplyConfiguration `json:",inline"` + Items []KeyToPathApplyConfiguration `json:"items,omitempty"` + Optional *bool `json:"optional,omitempty"` +} + +// ConfigMapProjectionApplyConfiguration constructs an declarative configuration of the ConfigMapProjection type for use with +// apply. +func ConfigMapProjection() *ConfigMapProjectionApplyConfiguration { + return &ConfigMapProjectionApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ConfigMapProjectionApplyConfiguration) WithName(value string) *ConfigMapProjectionApplyConfiguration { + b.Name = &value + return b +} + +// WithItems adds the given value to the Items field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Items field. +func (b *ConfigMapProjectionApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *ConfigMapProjectionApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithItems") + } + b.Items = append(b.Items, *values[i]) + } + return b +} + +// WithOptional sets the Optional field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Optional field is set to the value of the last call. +func (b *ConfigMapProjectionApplyConfiguration) WithOptional(value bool) *ConfigMapProjectionApplyConfiguration { + b.Optional = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapvolumesource.go new file mode 100644 index 0000000000..deaebde319 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapvolumesource.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ConfigMapVolumeSourceApplyConfiguration represents an declarative configuration of the ConfigMapVolumeSource type for use +// with apply. +type ConfigMapVolumeSourceApplyConfiguration struct { + LocalObjectReferenceApplyConfiguration `json:",inline"` + Items []KeyToPathApplyConfiguration `json:"items,omitempty"` + DefaultMode *int32 `json:"defaultMode,omitempty"` + Optional *bool `json:"optional,omitempty"` +} + +// ConfigMapVolumeSourceApplyConfiguration constructs an declarative configuration of the ConfigMapVolumeSource type for use with +// apply. +func ConfigMapVolumeSource() *ConfigMapVolumeSourceApplyConfiguration { + return &ConfigMapVolumeSourceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ConfigMapVolumeSourceApplyConfiguration) WithName(value string) *ConfigMapVolumeSourceApplyConfiguration { + b.Name = &value + return b +} + +// WithItems adds the given value to the Items field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Items field. +func (b *ConfigMapVolumeSourceApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *ConfigMapVolumeSourceApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithItems") + } + b.Items = append(b.Items, *values[i]) + } + return b +} + +// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DefaultMode field is set to the value of the last call. +func (b *ConfigMapVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *ConfigMapVolumeSourceApplyConfiguration { + b.DefaultMode = &value + return b +} + +// WithOptional sets the Optional field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Optional field is set to the value of the last call. +func (b *ConfigMapVolumeSourceApplyConfiguration) WithOptional(value bool) *ConfigMapVolumeSourceApplyConfiguration { + b.Optional = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/container.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/container.go new file mode 100644 index 0000000000..d3b066d9c4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/container.go @@ -0,0 +1,261 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" +) + +// ContainerApplyConfiguration represents an declarative configuration of the Container type for use +// with apply. +type ContainerApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Image *string `json:"image,omitempty"` + Command []string `json:"command,omitempty"` + Args []string `json:"args,omitempty"` + WorkingDir *string `json:"workingDir,omitempty"` + Ports []ContainerPortApplyConfiguration `json:"ports,omitempty"` + EnvFrom []EnvFromSourceApplyConfiguration `json:"envFrom,omitempty"` + Env []EnvVarApplyConfiguration `json:"env,omitempty"` + Resources *ResourceRequirementsApplyConfiguration `json:"resources,omitempty"` + VolumeMounts []VolumeMountApplyConfiguration `json:"volumeMounts,omitempty"` + VolumeDevices []VolumeDeviceApplyConfiguration `json:"volumeDevices,omitempty"` + LivenessProbe *ProbeApplyConfiguration `json:"livenessProbe,omitempty"` + ReadinessProbe *ProbeApplyConfiguration `json:"readinessProbe,omitempty"` + StartupProbe *ProbeApplyConfiguration `json:"startupProbe,omitempty"` + Lifecycle *LifecycleApplyConfiguration `json:"lifecycle,omitempty"` + TerminationMessagePath *string `json:"terminationMessagePath,omitempty"` + TerminationMessagePolicy *corev1.TerminationMessagePolicy `json:"terminationMessagePolicy,omitempty"` + ImagePullPolicy *corev1.PullPolicy `json:"imagePullPolicy,omitempty"` + SecurityContext *SecurityContextApplyConfiguration `json:"securityContext,omitempty"` + Stdin *bool `json:"stdin,omitempty"` + StdinOnce *bool `json:"stdinOnce,omitempty"` + TTY *bool `json:"tty,omitempty"` +} + +// ContainerApplyConfiguration constructs an declarative configuration of the Container type for use with +// apply. +func Container() *ContainerApplyConfiguration { + return &ContainerApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithName(value string) *ContainerApplyConfiguration { + b.Name = &value + return b +} + +// WithImage sets the Image field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Image field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithImage(value string) *ContainerApplyConfiguration { + b.Image = &value + return b +} + +// WithCommand adds the given value to the Command field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Command field. +func (b *ContainerApplyConfiguration) WithCommand(values ...string) *ContainerApplyConfiguration { + for i := range values { + b.Command = append(b.Command, values[i]) + } + return b +} + +// WithArgs adds the given value to the Args field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Args field. +func (b *ContainerApplyConfiguration) WithArgs(values ...string) *ContainerApplyConfiguration { + for i := range values { + b.Args = append(b.Args, values[i]) + } + return b +} + +// WithWorkingDir sets the WorkingDir field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the WorkingDir field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithWorkingDir(value string) *ContainerApplyConfiguration { + b.WorkingDir = &value + return b +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *ContainerApplyConfiguration) WithPorts(values ...*ContainerPortApplyConfiguration) *ContainerApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} + +// WithEnvFrom adds the given value to the EnvFrom field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the EnvFrom field. +func (b *ContainerApplyConfiguration) WithEnvFrom(values ...*EnvFromSourceApplyConfiguration) *ContainerApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEnvFrom") + } + b.EnvFrom = append(b.EnvFrom, *values[i]) + } + return b +} + +// WithEnv adds the given value to the Env field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Env field. +func (b *ContainerApplyConfiguration) WithEnv(values ...*EnvVarApplyConfiguration) *ContainerApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEnv") + } + b.Env = append(b.Env, *values[i]) + } + return b +} + +// WithResources sets the Resources field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resources field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *ContainerApplyConfiguration { + b.Resources = value + return b +} + +// WithVolumeMounts adds the given value to the VolumeMounts field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumeMounts field. +func (b *ContainerApplyConfiguration) WithVolumeMounts(values ...*VolumeMountApplyConfiguration) *ContainerApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithVolumeMounts") + } + b.VolumeMounts = append(b.VolumeMounts, *values[i]) + } + return b +} + +// WithVolumeDevices adds the given value to the VolumeDevices field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumeDevices field. +func (b *ContainerApplyConfiguration) WithVolumeDevices(values ...*VolumeDeviceApplyConfiguration) *ContainerApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithVolumeDevices") + } + b.VolumeDevices = append(b.VolumeDevices, *values[i]) + } + return b +} + +// WithLivenessProbe sets the LivenessProbe field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LivenessProbe field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithLivenessProbe(value *ProbeApplyConfiguration) *ContainerApplyConfiguration { + b.LivenessProbe = value + return b +} + +// WithReadinessProbe sets the ReadinessProbe field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadinessProbe field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithReadinessProbe(value *ProbeApplyConfiguration) *ContainerApplyConfiguration { + b.ReadinessProbe = value + return b +} + +// WithStartupProbe sets the StartupProbe field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StartupProbe field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithStartupProbe(value *ProbeApplyConfiguration) *ContainerApplyConfiguration { + b.StartupProbe = value + return b +} + +// WithLifecycle sets the Lifecycle field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Lifecycle field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithLifecycle(value *LifecycleApplyConfiguration) *ContainerApplyConfiguration { + b.Lifecycle = value + return b +} + +// WithTerminationMessagePath sets the TerminationMessagePath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TerminationMessagePath field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithTerminationMessagePath(value string) *ContainerApplyConfiguration { + b.TerminationMessagePath = &value + return b +} + +// WithTerminationMessagePolicy sets the TerminationMessagePolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TerminationMessagePolicy field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithTerminationMessagePolicy(value corev1.TerminationMessagePolicy) *ContainerApplyConfiguration { + b.TerminationMessagePolicy = &value + return b +} + +// WithImagePullPolicy sets the ImagePullPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ImagePullPolicy field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithImagePullPolicy(value corev1.PullPolicy) *ContainerApplyConfiguration { + b.ImagePullPolicy = &value + return b +} + +// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecurityContext field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithSecurityContext(value *SecurityContextApplyConfiguration) *ContainerApplyConfiguration { + b.SecurityContext = value + return b +} + +// WithStdin sets the Stdin field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Stdin field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithStdin(value bool) *ContainerApplyConfiguration { + b.Stdin = &value + return b +} + +// WithStdinOnce sets the StdinOnce field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StdinOnce field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithStdinOnce(value bool) *ContainerApplyConfiguration { + b.StdinOnce = &value + return b +} + +// WithTTY sets the TTY field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TTY field is set to the value of the last call. +func (b *ContainerApplyConfiguration) WithTTY(value bool) *ContainerApplyConfiguration { + b.TTY = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerimage.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerimage.go new file mode 100644 index 0000000000..d5c874a7ce --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerimage.go @@ -0,0 +1,50 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ContainerImageApplyConfiguration represents an declarative configuration of the ContainerImage type for use +// with apply. +type ContainerImageApplyConfiguration struct { + Names []string `json:"names,omitempty"` + SizeBytes *int64 `json:"sizeBytes,omitempty"` +} + +// ContainerImageApplyConfiguration constructs an declarative configuration of the ContainerImage type for use with +// apply. +func ContainerImage() *ContainerImageApplyConfiguration { + return &ContainerImageApplyConfiguration{} +} + +// WithNames adds the given value to the Names field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Names field. +func (b *ContainerImageApplyConfiguration) WithNames(values ...string) *ContainerImageApplyConfiguration { + for i := range values { + b.Names = append(b.Names, values[i]) + } + return b +} + +// WithSizeBytes sets the SizeBytes field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SizeBytes field is set to the value of the last call. +func (b *ContainerImageApplyConfiguration) WithSizeBytes(value int64) *ContainerImageApplyConfiguration { + b.SizeBytes = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerport.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerport.go new file mode 100644 index 0000000000..a23ad9268a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerport.go @@ -0,0 +1,79 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// ContainerPortApplyConfiguration represents an declarative configuration of the ContainerPort type for use +// with apply. +type ContainerPortApplyConfiguration struct { + Name *string `json:"name,omitempty"` + HostPort *int32 `json:"hostPort,omitempty"` + ContainerPort *int32 `json:"containerPort,omitempty"` + Protocol *v1.Protocol `json:"protocol,omitempty"` + HostIP *string `json:"hostIP,omitempty"` +} + +// ContainerPortApplyConfiguration constructs an declarative configuration of the ContainerPort type for use with +// apply. +func ContainerPort() *ContainerPortApplyConfiguration { + return &ContainerPortApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ContainerPortApplyConfiguration) WithName(value string) *ContainerPortApplyConfiguration { + b.Name = &value + return b +} + +// WithHostPort sets the HostPort field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostPort field is set to the value of the last call. +func (b *ContainerPortApplyConfiguration) WithHostPort(value int32) *ContainerPortApplyConfiguration { + b.HostPort = &value + return b +} + +// WithContainerPort sets the ContainerPort field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ContainerPort field is set to the value of the last call. +func (b *ContainerPortApplyConfiguration) WithContainerPort(value int32) *ContainerPortApplyConfiguration { + b.ContainerPort = &value + return b +} + +// WithProtocol sets the Protocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Protocol field is set to the value of the last call. +func (b *ContainerPortApplyConfiguration) WithProtocol(value v1.Protocol) *ContainerPortApplyConfiguration { + b.Protocol = &value + return b +} + +// WithHostIP sets the HostIP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostIP field is set to the value of the last call. +func (b *ContainerPortApplyConfiguration) WithHostIP(value string) *ContainerPortApplyConfiguration { + b.HostIP = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstate.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstate.go new file mode 100644 index 0000000000..6cbfc7fd9b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstate.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ContainerStateApplyConfiguration represents an declarative configuration of the ContainerState type for use +// with apply. +type ContainerStateApplyConfiguration struct { + Waiting *ContainerStateWaitingApplyConfiguration `json:"waiting,omitempty"` + Running *ContainerStateRunningApplyConfiguration `json:"running,omitempty"` + Terminated *ContainerStateTerminatedApplyConfiguration `json:"terminated,omitempty"` +} + +// ContainerStateApplyConfiguration constructs an declarative configuration of the ContainerState type for use with +// apply. +func ContainerState() *ContainerStateApplyConfiguration { + return &ContainerStateApplyConfiguration{} +} + +// WithWaiting sets the Waiting field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Waiting field is set to the value of the last call. +func (b *ContainerStateApplyConfiguration) WithWaiting(value *ContainerStateWaitingApplyConfiguration) *ContainerStateApplyConfiguration { + b.Waiting = value + return b +} + +// WithRunning sets the Running field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Running field is set to the value of the last call. +func (b *ContainerStateApplyConfiguration) WithRunning(value *ContainerStateRunningApplyConfiguration) *ContainerStateApplyConfiguration { + b.Running = value + return b +} + +// WithTerminated sets the Terminated field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Terminated field is set to the value of the last call. +func (b *ContainerStateApplyConfiguration) WithTerminated(value *ContainerStateTerminatedApplyConfiguration) *ContainerStateApplyConfiguration { + b.Terminated = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstaterunning.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstaterunning.go new file mode 100644 index 0000000000..6c1d7311e7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstaterunning.go @@ -0,0 +1,43 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ContainerStateRunningApplyConfiguration represents an declarative configuration of the ContainerStateRunning type for use +// with apply. +type ContainerStateRunningApplyConfiguration struct { + StartedAt *v1.Time `json:"startedAt,omitempty"` +} + +// ContainerStateRunningApplyConfiguration constructs an declarative configuration of the ContainerStateRunning type for use with +// apply. +func ContainerStateRunning() *ContainerStateRunningApplyConfiguration { + return &ContainerStateRunningApplyConfiguration{} +} + +// WithStartedAt sets the StartedAt field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StartedAt field is set to the value of the last call. +func (b *ContainerStateRunningApplyConfiguration) WithStartedAt(value v1.Time) *ContainerStateRunningApplyConfiguration { + b.StartedAt = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstateterminated.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstateterminated.go new file mode 100644 index 0000000000..0383c9dd9d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstateterminated.go @@ -0,0 +1,97 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ContainerStateTerminatedApplyConfiguration represents an declarative configuration of the ContainerStateTerminated type for use +// with apply. +type ContainerStateTerminatedApplyConfiguration struct { + ExitCode *int32 `json:"exitCode,omitempty"` + Signal *int32 `json:"signal,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` + StartedAt *v1.Time `json:"startedAt,omitempty"` + FinishedAt *v1.Time `json:"finishedAt,omitempty"` + ContainerID *string `json:"containerID,omitempty"` +} + +// ContainerStateTerminatedApplyConfiguration constructs an declarative configuration of the ContainerStateTerminated type for use with +// apply. +func ContainerStateTerminated() *ContainerStateTerminatedApplyConfiguration { + return &ContainerStateTerminatedApplyConfiguration{} +} + +// WithExitCode sets the ExitCode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ExitCode field is set to the value of the last call. +func (b *ContainerStateTerminatedApplyConfiguration) WithExitCode(value int32) *ContainerStateTerminatedApplyConfiguration { + b.ExitCode = &value + return b +} + +// WithSignal sets the Signal field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Signal field is set to the value of the last call. +func (b *ContainerStateTerminatedApplyConfiguration) WithSignal(value int32) *ContainerStateTerminatedApplyConfiguration { + b.Signal = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *ContainerStateTerminatedApplyConfiguration) WithReason(value string) *ContainerStateTerminatedApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *ContainerStateTerminatedApplyConfiguration) WithMessage(value string) *ContainerStateTerminatedApplyConfiguration { + b.Message = &value + return b +} + +// WithStartedAt sets the StartedAt field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StartedAt field is set to the value of the last call. +func (b *ContainerStateTerminatedApplyConfiguration) WithStartedAt(value v1.Time) *ContainerStateTerminatedApplyConfiguration { + b.StartedAt = &value + return b +} + +// WithFinishedAt sets the FinishedAt field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FinishedAt field is set to the value of the last call. +func (b *ContainerStateTerminatedApplyConfiguration) WithFinishedAt(value v1.Time) *ContainerStateTerminatedApplyConfiguration { + b.FinishedAt = &value + return b +} + +// WithContainerID sets the ContainerID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ContainerID field is set to the value of the last call. +func (b *ContainerStateTerminatedApplyConfiguration) WithContainerID(value string) *ContainerStateTerminatedApplyConfiguration { + b.ContainerID = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatewaiting.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatewaiting.go new file mode 100644 index 0000000000..e51b778c0d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatewaiting.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ContainerStateWaitingApplyConfiguration represents an declarative configuration of the ContainerStateWaiting type for use +// with apply. +type ContainerStateWaitingApplyConfiguration struct { + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// ContainerStateWaitingApplyConfiguration constructs an declarative configuration of the ContainerStateWaiting type for use with +// apply. +func ContainerStateWaiting() *ContainerStateWaitingApplyConfiguration { + return &ContainerStateWaitingApplyConfiguration{} +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *ContainerStateWaitingApplyConfiguration) WithReason(value string) *ContainerStateWaitingApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *ContainerStateWaitingApplyConfiguration) WithMessage(value string) *ContainerStateWaitingApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatus.go new file mode 100644 index 0000000000..18d2925c17 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatus.go @@ -0,0 +1,111 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ContainerStatusApplyConfiguration represents an declarative configuration of the ContainerStatus type for use +// with apply. +type ContainerStatusApplyConfiguration struct { + Name *string `json:"name,omitempty"` + State *ContainerStateApplyConfiguration `json:"state,omitempty"` + LastTerminationState *ContainerStateApplyConfiguration `json:"lastState,omitempty"` + Ready *bool `json:"ready,omitempty"` + RestartCount *int32 `json:"restartCount,omitempty"` + Image *string `json:"image,omitempty"` + ImageID *string `json:"imageID,omitempty"` + ContainerID *string `json:"containerID,omitempty"` + Started *bool `json:"started,omitempty"` +} + +// ContainerStatusApplyConfiguration constructs an declarative configuration of the ContainerStatus type for use with +// apply. +func ContainerStatus() *ContainerStatusApplyConfiguration { + return &ContainerStatusApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ContainerStatusApplyConfiguration) WithName(value string) *ContainerStatusApplyConfiguration { + b.Name = &value + return b +} + +// WithState sets the State field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the State field is set to the value of the last call. +func (b *ContainerStatusApplyConfiguration) WithState(value *ContainerStateApplyConfiguration) *ContainerStatusApplyConfiguration { + b.State = value + return b +} + +// WithLastTerminationState sets the LastTerminationState field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTerminationState field is set to the value of the last call. +func (b *ContainerStatusApplyConfiguration) WithLastTerminationState(value *ContainerStateApplyConfiguration) *ContainerStatusApplyConfiguration { + b.LastTerminationState = value + return b +} + +// WithReady sets the Ready field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Ready field is set to the value of the last call. +func (b *ContainerStatusApplyConfiguration) WithReady(value bool) *ContainerStatusApplyConfiguration { + b.Ready = &value + return b +} + +// WithRestartCount sets the RestartCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RestartCount field is set to the value of the last call. +func (b *ContainerStatusApplyConfiguration) WithRestartCount(value int32) *ContainerStatusApplyConfiguration { + b.RestartCount = &value + return b +} + +// WithImage sets the Image field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Image field is set to the value of the last call. +func (b *ContainerStatusApplyConfiguration) WithImage(value string) *ContainerStatusApplyConfiguration { + b.Image = &value + return b +} + +// WithImageID sets the ImageID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ImageID field is set to the value of the last call. +func (b *ContainerStatusApplyConfiguration) WithImageID(value string) *ContainerStatusApplyConfiguration { + b.ImageID = &value + return b +} + +// WithContainerID sets the ContainerID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ContainerID field is set to the value of the last call. +func (b *ContainerStatusApplyConfiguration) WithContainerID(value string) *ContainerStatusApplyConfiguration { + b.ContainerID = &value + return b +} + +// WithStarted sets the Started field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Started field is set to the value of the last call. +func (b *ContainerStatusApplyConfiguration) WithStarted(value bool) *ContainerStatusApplyConfiguration { + b.Started = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/csipersistentvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/csipersistentvolumesource.go new file mode 100644 index 0000000000..b8165445d0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/csipersistentvolumesource.go @@ -0,0 +1,117 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// CSIPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the CSIPersistentVolumeSource type for use +// with apply. +type CSIPersistentVolumeSourceApplyConfiguration struct { + Driver *string `json:"driver,omitempty"` + VolumeHandle *string `json:"volumeHandle,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + FSType *string `json:"fsType,omitempty"` + VolumeAttributes map[string]string `json:"volumeAttributes,omitempty"` + ControllerPublishSecretRef *SecretReferenceApplyConfiguration `json:"controllerPublishSecretRef,omitempty"` + NodeStageSecretRef *SecretReferenceApplyConfiguration `json:"nodeStageSecretRef,omitempty"` + NodePublishSecretRef *SecretReferenceApplyConfiguration `json:"nodePublishSecretRef,omitempty"` + ControllerExpandSecretRef *SecretReferenceApplyConfiguration `json:"controllerExpandSecretRef,omitempty"` +} + +// CSIPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the CSIPersistentVolumeSource type for use with +// apply. +func CSIPersistentVolumeSource() *CSIPersistentVolumeSourceApplyConfiguration { + return &CSIPersistentVolumeSourceApplyConfiguration{} +} + +// WithDriver sets the Driver field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Driver field is set to the value of the last call. +func (b *CSIPersistentVolumeSourceApplyConfiguration) WithDriver(value string) *CSIPersistentVolumeSourceApplyConfiguration { + b.Driver = &value + return b +} + +// WithVolumeHandle sets the VolumeHandle field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeHandle field is set to the value of the last call. +func (b *CSIPersistentVolumeSourceApplyConfiguration) WithVolumeHandle(value string) *CSIPersistentVolumeSourceApplyConfiguration { + b.VolumeHandle = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *CSIPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CSIPersistentVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *CSIPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *CSIPersistentVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithVolumeAttributes puts the entries into the VolumeAttributes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the VolumeAttributes field, +// overwriting an existing map entries in VolumeAttributes field with the same key. +func (b *CSIPersistentVolumeSourceApplyConfiguration) WithVolumeAttributes(entries map[string]string) *CSIPersistentVolumeSourceApplyConfiguration { + if b.VolumeAttributes == nil && len(entries) > 0 { + b.VolumeAttributes = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.VolumeAttributes[k] = v + } + return b +} + +// WithControllerPublishSecretRef sets the ControllerPublishSecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ControllerPublishSecretRef field is set to the value of the last call. +func (b *CSIPersistentVolumeSourceApplyConfiguration) WithControllerPublishSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration { + b.ControllerPublishSecretRef = value + return b +} + +// WithNodeStageSecretRef sets the NodeStageSecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeStageSecretRef field is set to the value of the last call. +func (b *CSIPersistentVolumeSourceApplyConfiguration) WithNodeStageSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration { + b.NodeStageSecretRef = value + return b +} + +// WithNodePublishSecretRef sets the NodePublishSecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodePublishSecretRef field is set to the value of the last call. +func (b *CSIPersistentVolumeSourceApplyConfiguration) WithNodePublishSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration { + b.NodePublishSecretRef = value + return b +} + +// WithControllerExpandSecretRef sets the ControllerExpandSecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ControllerExpandSecretRef field is set to the value of the last call. +func (b *CSIPersistentVolumeSourceApplyConfiguration) WithControllerExpandSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration { + b.ControllerExpandSecretRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/csivolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/csivolumesource.go new file mode 100644 index 0000000000..c2a32df8d0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/csivolumesource.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// CSIVolumeSourceApplyConfiguration represents an declarative configuration of the CSIVolumeSource type for use +// with apply. +type CSIVolumeSourceApplyConfiguration struct { + Driver *string `json:"driver,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + FSType *string `json:"fsType,omitempty"` + VolumeAttributes map[string]string `json:"volumeAttributes,omitempty"` + NodePublishSecretRef *LocalObjectReferenceApplyConfiguration `json:"nodePublishSecretRef,omitempty"` +} + +// CSIVolumeSourceApplyConfiguration constructs an declarative configuration of the CSIVolumeSource type for use with +// apply. +func CSIVolumeSource() *CSIVolumeSourceApplyConfiguration { + return &CSIVolumeSourceApplyConfiguration{} +} + +// WithDriver sets the Driver field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Driver field is set to the value of the last call. +func (b *CSIVolumeSourceApplyConfiguration) WithDriver(value string) *CSIVolumeSourceApplyConfiguration { + b.Driver = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *CSIVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CSIVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *CSIVolumeSourceApplyConfiguration) WithFSType(value string) *CSIVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithVolumeAttributes puts the entries into the VolumeAttributes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the VolumeAttributes field, +// overwriting an existing map entries in VolumeAttributes field with the same key. +func (b *CSIVolumeSourceApplyConfiguration) WithVolumeAttributes(entries map[string]string) *CSIVolumeSourceApplyConfiguration { + if b.VolumeAttributes == nil && len(entries) > 0 { + b.VolumeAttributes = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.VolumeAttributes[k] = v + } + return b +} + +// WithNodePublishSecretRef sets the NodePublishSecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodePublishSecretRef field is set to the value of the last call. +func (b *CSIVolumeSourceApplyConfiguration) WithNodePublishSecretRef(value *LocalObjectReferenceApplyConfiguration) *CSIVolumeSourceApplyConfiguration { + b.NodePublishSecretRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/daemonendpoint.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/daemonendpoint.go new file mode 100644 index 0000000000..13a2e948f1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/daemonendpoint.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// DaemonEndpointApplyConfiguration represents an declarative configuration of the DaemonEndpoint type for use +// with apply. +type DaemonEndpointApplyConfiguration struct { + Port *int32 `json:"Port,omitempty"` +} + +// DaemonEndpointApplyConfiguration constructs an declarative configuration of the DaemonEndpoint type for use with +// apply. +func DaemonEndpoint() *DaemonEndpointApplyConfiguration { + return &DaemonEndpointApplyConfiguration{} +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *DaemonEndpointApplyConfiguration) WithPort(value int32) *DaemonEndpointApplyConfiguration { + b.Port = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapiprojection.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapiprojection.go new file mode 100644 index 0000000000..f88a87c0b5 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapiprojection.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// DownwardAPIProjectionApplyConfiguration represents an declarative configuration of the DownwardAPIProjection type for use +// with apply. +type DownwardAPIProjectionApplyConfiguration struct { + Items []DownwardAPIVolumeFileApplyConfiguration `json:"items,omitempty"` +} + +// DownwardAPIProjectionApplyConfiguration constructs an declarative configuration of the DownwardAPIProjection type for use with +// apply. +func DownwardAPIProjection() *DownwardAPIProjectionApplyConfiguration { + return &DownwardAPIProjectionApplyConfiguration{} +} + +// WithItems adds the given value to the Items field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Items field. +func (b *DownwardAPIProjectionApplyConfiguration) WithItems(values ...*DownwardAPIVolumeFileApplyConfiguration) *DownwardAPIProjectionApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithItems") + } + b.Items = append(b.Items, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumefile.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumefile.go new file mode 100644 index 0000000000..b25ff25fa9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumefile.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// DownwardAPIVolumeFileApplyConfiguration represents an declarative configuration of the DownwardAPIVolumeFile type for use +// with apply. +type DownwardAPIVolumeFileApplyConfiguration struct { + Path *string `json:"path,omitempty"` + FieldRef *ObjectFieldSelectorApplyConfiguration `json:"fieldRef,omitempty"` + ResourceFieldRef *ResourceFieldSelectorApplyConfiguration `json:"resourceFieldRef,omitempty"` + Mode *int32 `json:"mode,omitempty"` +} + +// DownwardAPIVolumeFileApplyConfiguration constructs an declarative configuration of the DownwardAPIVolumeFile type for use with +// apply. +func DownwardAPIVolumeFile() *DownwardAPIVolumeFileApplyConfiguration { + return &DownwardAPIVolumeFileApplyConfiguration{} +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *DownwardAPIVolumeFileApplyConfiguration) WithPath(value string) *DownwardAPIVolumeFileApplyConfiguration { + b.Path = &value + return b +} + +// WithFieldRef sets the FieldRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FieldRef field is set to the value of the last call. +func (b *DownwardAPIVolumeFileApplyConfiguration) WithFieldRef(value *ObjectFieldSelectorApplyConfiguration) *DownwardAPIVolumeFileApplyConfiguration { + b.FieldRef = value + return b +} + +// WithResourceFieldRef sets the ResourceFieldRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceFieldRef field is set to the value of the last call. +func (b *DownwardAPIVolumeFileApplyConfiguration) WithResourceFieldRef(value *ResourceFieldSelectorApplyConfiguration) *DownwardAPIVolumeFileApplyConfiguration { + b.ResourceFieldRef = value + return b +} + +// WithMode sets the Mode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Mode field is set to the value of the last call. +func (b *DownwardAPIVolumeFileApplyConfiguration) WithMode(value int32) *DownwardAPIVolumeFileApplyConfiguration { + b.Mode = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumesource.go new file mode 100644 index 0000000000..6913bb5218 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumesource.go @@ -0,0 +1,53 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// DownwardAPIVolumeSourceApplyConfiguration represents an declarative configuration of the DownwardAPIVolumeSource type for use +// with apply. +type DownwardAPIVolumeSourceApplyConfiguration struct { + Items []DownwardAPIVolumeFileApplyConfiguration `json:"items,omitempty"` + DefaultMode *int32 `json:"defaultMode,omitempty"` +} + +// DownwardAPIVolumeSourceApplyConfiguration constructs an declarative configuration of the DownwardAPIVolumeSource type for use with +// apply. +func DownwardAPIVolumeSource() *DownwardAPIVolumeSourceApplyConfiguration { + return &DownwardAPIVolumeSourceApplyConfiguration{} +} + +// WithItems adds the given value to the Items field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Items field. +func (b *DownwardAPIVolumeSourceApplyConfiguration) WithItems(values ...*DownwardAPIVolumeFileApplyConfiguration) *DownwardAPIVolumeSourceApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithItems") + } + b.Items = append(b.Items, *values[i]) + } + return b +} + +// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DefaultMode field is set to the value of the last call. +func (b *DownwardAPIVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *DownwardAPIVolumeSourceApplyConfiguration { + b.DefaultMode = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/emptydirvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/emptydirvolumesource.go new file mode 100644 index 0000000000..021280daf6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/emptydirvolumesource.go @@ -0,0 +1,53 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + resource "k8s.io/apimachinery/pkg/api/resource" +) + +// EmptyDirVolumeSourceApplyConfiguration represents an declarative configuration of the EmptyDirVolumeSource type for use +// with apply. +type EmptyDirVolumeSourceApplyConfiguration struct { + Medium *v1.StorageMedium `json:"medium,omitempty"` + SizeLimit *resource.Quantity `json:"sizeLimit,omitempty"` +} + +// EmptyDirVolumeSourceApplyConfiguration constructs an declarative configuration of the EmptyDirVolumeSource type for use with +// apply. +func EmptyDirVolumeSource() *EmptyDirVolumeSourceApplyConfiguration { + return &EmptyDirVolumeSourceApplyConfiguration{} +} + +// WithMedium sets the Medium field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Medium field is set to the value of the last call. +func (b *EmptyDirVolumeSourceApplyConfiguration) WithMedium(value v1.StorageMedium) *EmptyDirVolumeSourceApplyConfiguration { + b.Medium = &value + return b +} + +// WithSizeLimit sets the SizeLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SizeLimit field is set to the value of the last call. +func (b *EmptyDirVolumeSourceApplyConfiguration) WithSizeLimit(value resource.Quantity) *EmptyDirVolumeSourceApplyConfiguration { + b.SizeLimit = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointaddress.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointaddress.go new file mode 100644 index 0000000000..52a54b6008 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointaddress.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// EndpointAddressApplyConfiguration represents an declarative configuration of the EndpointAddress type for use +// with apply. +type EndpointAddressApplyConfiguration struct { + IP *string `json:"ip,omitempty"` + Hostname *string `json:"hostname,omitempty"` + NodeName *string `json:"nodeName,omitempty"` + TargetRef *ObjectReferenceApplyConfiguration `json:"targetRef,omitempty"` +} + +// EndpointAddressApplyConfiguration constructs an declarative configuration of the EndpointAddress type for use with +// apply. +func EndpointAddress() *EndpointAddressApplyConfiguration { + return &EndpointAddressApplyConfiguration{} +} + +// WithIP sets the IP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IP field is set to the value of the last call. +func (b *EndpointAddressApplyConfiguration) WithIP(value string) *EndpointAddressApplyConfiguration { + b.IP = &value + return b +} + +// WithHostname sets the Hostname field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Hostname field is set to the value of the last call. +func (b *EndpointAddressApplyConfiguration) WithHostname(value string) *EndpointAddressApplyConfiguration { + b.Hostname = &value + return b +} + +// WithNodeName sets the NodeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeName field is set to the value of the last call. +func (b *EndpointAddressApplyConfiguration) WithNodeName(value string) *EndpointAddressApplyConfiguration { + b.NodeName = &value + return b +} + +// WithTargetRef sets the TargetRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetRef field is set to the value of the last call. +func (b *EndpointAddressApplyConfiguration) WithTargetRef(value *ObjectReferenceApplyConfiguration) *EndpointAddressApplyConfiguration { + b.TargetRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointport.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointport.go new file mode 100644 index 0000000000..cc00d0e491 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointport.go @@ -0,0 +1,70 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// EndpointPortApplyConfiguration represents an declarative configuration of the EndpointPort type for use +// with apply. +type EndpointPortApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Port *int32 `json:"port,omitempty"` + Protocol *v1.Protocol `json:"protocol,omitempty"` + AppProtocol *string `json:"appProtocol,omitempty"` +} + +// EndpointPortApplyConfiguration constructs an declarative configuration of the EndpointPort type for use with +// apply. +func EndpointPort() *EndpointPortApplyConfiguration { + return &EndpointPortApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithName(value string) *EndpointPortApplyConfiguration { + b.Name = &value + return b +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithPort(value int32) *EndpointPortApplyConfiguration { + b.Port = &value + return b +} + +// WithProtocol sets the Protocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Protocol field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithProtocol(value v1.Protocol) *EndpointPortApplyConfiguration { + b.Protocol = &value + return b +} + +// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AppProtocol field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithAppProtocol(value string) *EndpointPortApplyConfiguration { + b.AppProtocol = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpoints.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpoints.go new file mode 100644 index 0000000000..31a541c75a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpoints.go @@ -0,0 +1,261 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// EndpointsApplyConfiguration represents an declarative configuration of the Endpoints type for use +// with apply. +type EndpointsApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Subsets []EndpointSubsetApplyConfiguration `json:"subsets,omitempty"` +} + +// Endpoints constructs an declarative configuration of the Endpoints type for use with +// apply. +func Endpoints(name, namespace string) *EndpointsApplyConfiguration { + b := &EndpointsApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Endpoints") + b.WithAPIVersion("v1") + return b +} + +// ExtractEndpoints extracts the applied configuration owned by fieldManager from +// endpoints. If no managedFields are found in endpoints for fieldManager, a +// EndpointsApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// endpoints must be a unmodified Endpoints API object that was retrieved from the Kubernetes API. +// ExtractEndpoints provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractEndpoints(endpoints *apicorev1.Endpoints, fieldManager string) (*EndpointsApplyConfiguration, error) { + b := &EndpointsApplyConfiguration{} + err := managedfields.ExtractInto(endpoints, internal.Parser().Type("io.k8s.api.core.v1.Endpoints"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(endpoints.Name) + b.WithNamespace(endpoints.Namespace) + + b.WithKind("Endpoints") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithKind(value string) *EndpointsApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithAPIVersion(value string) *EndpointsApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithName(value string) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithGenerateName(value string) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithNamespace(value string) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithSelfLink(value string) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithUID(value types.UID) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithResourceVersion(value string) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithGeneration(value int64) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *EndpointsApplyConfiguration) WithLabels(entries map[string]string) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *EndpointsApplyConfiguration) WithAnnotations(entries map[string]string) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *EndpointsApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *EndpointsApplyConfiguration) WithFinalizers(values ...string) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *EndpointsApplyConfiguration) WithClusterName(value string) *EndpointsApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *EndpointsApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSubsets adds the given value to the Subsets field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Subsets field. +func (b *EndpointsApplyConfiguration) WithSubsets(values ...*EndpointSubsetApplyConfiguration) *EndpointsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSubsets") + } + b.Subsets = append(b.Subsets, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointsubset.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointsubset.go new file mode 100644 index 0000000000..cd0657a80c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointsubset.go @@ -0,0 +1,72 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// EndpointSubsetApplyConfiguration represents an declarative configuration of the EndpointSubset type for use +// with apply. +type EndpointSubsetApplyConfiguration struct { + Addresses []EndpointAddressApplyConfiguration `json:"addresses,omitempty"` + NotReadyAddresses []EndpointAddressApplyConfiguration `json:"notReadyAddresses,omitempty"` + Ports []EndpointPortApplyConfiguration `json:"ports,omitempty"` +} + +// EndpointSubsetApplyConfiguration constructs an declarative configuration of the EndpointSubset type for use with +// apply. +func EndpointSubset() *EndpointSubsetApplyConfiguration { + return &EndpointSubsetApplyConfiguration{} +} + +// WithAddresses adds the given value to the Addresses field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Addresses field. +func (b *EndpointSubsetApplyConfiguration) WithAddresses(values ...*EndpointAddressApplyConfiguration) *EndpointSubsetApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithAddresses") + } + b.Addresses = append(b.Addresses, *values[i]) + } + return b +} + +// WithNotReadyAddresses adds the given value to the NotReadyAddresses field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the NotReadyAddresses field. +func (b *EndpointSubsetApplyConfiguration) WithNotReadyAddresses(values ...*EndpointAddressApplyConfiguration) *EndpointSubsetApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithNotReadyAddresses") + } + b.NotReadyAddresses = append(b.NotReadyAddresses, *values[i]) + } + return b +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *EndpointSubsetApplyConfiguration) WithPorts(values ...*EndpointPortApplyConfiguration) *EndpointSubsetApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/envfromsource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/envfromsource.go new file mode 100644 index 0000000000..9e46d25ded --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/envfromsource.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// EnvFromSourceApplyConfiguration represents an declarative configuration of the EnvFromSource type for use +// with apply. +type EnvFromSourceApplyConfiguration struct { + Prefix *string `json:"prefix,omitempty"` + ConfigMapRef *ConfigMapEnvSourceApplyConfiguration `json:"configMapRef,omitempty"` + SecretRef *SecretEnvSourceApplyConfiguration `json:"secretRef,omitempty"` +} + +// EnvFromSourceApplyConfiguration constructs an declarative configuration of the EnvFromSource type for use with +// apply. +func EnvFromSource() *EnvFromSourceApplyConfiguration { + return &EnvFromSourceApplyConfiguration{} +} + +// WithPrefix sets the Prefix field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Prefix field is set to the value of the last call. +func (b *EnvFromSourceApplyConfiguration) WithPrefix(value string) *EnvFromSourceApplyConfiguration { + b.Prefix = &value + return b +} + +// WithConfigMapRef sets the ConfigMapRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ConfigMapRef field is set to the value of the last call. +func (b *EnvFromSourceApplyConfiguration) WithConfigMapRef(value *ConfigMapEnvSourceApplyConfiguration) *EnvFromSourceApplyConfiguration { + b.ConfigMapRef = value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *EnvFromSourceApplyConfiguration) WithSecretRef(value *SecretEnvSourceApplyConfiguration) *EnvFromSourceApplyConfiguration { + b.SecretRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/envvar.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/envvar.go new file mode 100644 index 0000000000..a83528a28e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/envvar.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// EnvVarApplyConfiguration represents an declarative configuration of the EnvVar type for use +// with apply. +type EnvVarApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Value *string `json:"value,omitempty"` + ValueFrom *EnvVarSourceApplyConfiguration `json:"valueFrom,omitempty"` +} + +// EnvVarApplyConfiguration constructs an declarative configuration of the EnvVar type for use with +// apply. +func EnvVar() *EnvVarApplyConfiguration { + return &EnvVarApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EnvVarApplyConfiguration) WithName(value string) *EnvVarApplyConfiguration { + b.Name = &value + return b +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *EnvVarApplyConfiguration) WithValue(value string) *EnvVarApplyConfiguration { + b.Value = &value + return b +} + +// WithValueFrom sets the ValueFrom field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ValueFrom field is set to the value of the last call. +func (b *EnvVarApplyConfiguration) WithValueFrom(value *EnvVarSourceApplyConfiguration) *EnvVarApplyConfiguration { + b.ValueFrom = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/envvarsource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/envvarsource.go new file mode 100644 index 0000000000..70c695bd5b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/envvarsource.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// EnvVarSourceApplyConfiguration represents an declarative configuration of the EnvVarSource type for use +// with apply. +type EnvVarSourceApplyConfiguration struct { + FieldRef *ObjectFieldSelectorApplyConfiguration `json:"fieldRef,omitempty"` + ResourceFieldRef *ResourceFieldSelectorApplyConfiguration `json:"resourceFieldRef,omitempty"` + ConfigMapKeyRef *ConfigMapKeySelectorApplyConfiguration `json:"configMapKeyRef,omitempty"` + SecretKeyRef *SecretKeySelectorApplyConfiguration `json:"secretKeyRef,omitempty"` +} + +// EnvVarSourceApplyConfiguration constructs an declarative configuration of the EnvVarSource type for use with +// apply. +func EnvVarSource() *EnvVarSourceApplyConfiguration { + return &EnvVarSourceApplyConfiguration{} +} + +// WithFieldRef sets the FieldRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FieldRef field is set to the value of the last call. +func (b *EnvVarSourceApplyConfiguration) WithFieldRef(value *ObjectFieldSelectorApplyConfiguration) *EnvVarSourceApplyConfiguration { + b.FieldRef = value + return b +} + +// WithResourceFieldRef sets the ResourceFieldRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceFieldRef field is set to the value of the last call. +func (b *EnvVarSourceApplyConfiguration) WithResourceFieldRef(value *ResourceFieldSelectorApplyConfiguration) *EnvVarSourceApplyConfiguration { + b.ResourceFieldRef = value + return b +} + +// WithConfigMapKeyRef sets the ConfigMapKeyRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ConfigMapKeyRef field is set to the value of the last call. +func (b *EnvVarSourceApplyConfiguration) WithConfigMapKeyRef(value *ConfigMapKeySelectorApplyConfiguration) *EnvVarSourceApplyConfiguration { + b.ConfigMapKeyRef = value + return b +} + +// WithSecretKeyRef sets the SecretKeyRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretKeyRef field is set to the value of the last call. +func (b *EnvVarSourceApplyConfiguration) WithSecretKeyRef(value *SecretKeySelectorApplyConfiguration) *EnvVarSourceApplyConfiguration { + b.SecretKeyRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainer.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainer.go new file mode 100644 index 0000000000..6c24cd419d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainer.go @@ -0,0 +1,249 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" +) + +// EphemeralContainerApplyConfiguration represents an declarative configuration of the EphemeralContainer type for use +// with apply. +type EphemeralContainerApplyConfiguration struct { + EphemeralContainerCommonApplyConfiguration `json:",inline"` + TargetContainerName *string `json:"targetContainerName,omitempty"` +} + +// EphemeralContainerApplyConfiguration constructs an declarative configuration of the EphemeralContainer type for use with +// apply. +func EphemeralContainer() *EphemeralContainerApplyConfiguration { + return &EphemeralContainerApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithName(value string) *EphemeralContainerApplyConfiguration { + b.Name = &value + return b +} + +// WithImage sets the Image field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Image field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithImage(value string) *EphemeralContainerApplyConfiguration { + b.Image = &value + return b +} + +// WithCommand adds the given value to the Command field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Command field. +func (b *EphemeralContainerApplyConfiguration) WithCommand(values ...string) *EphemeralContainerApplyConfiguration { + for i := range values { + b.Command = append(b.Command, values[i]) + } + return b +} + +// WithArgs adds the given value to the Args field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Args field. +func (b *EphemeralContainerApplyConfiguration) WithArgs(values ...string) *EphemeralContainerApplyConfiguration { + for i := range values { + b.Args = append(b.Args, values[i]) + } + return b +} + +// WithWorkingDir sets the WorkingDir field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the WorkingDir field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithWorkingDir(value string) *EphemeralContainerApplyConfiguration { + b.WorkingDir = &value + return b +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *EphemeralContainerApplyConfiguration) WithPorts(values ...*ContainerPortApplyConfiguration) *EphemeralContainerApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} + +// WithEnvFrom adds the given value to the EnvFrom field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the EnvFrom field. +func (b *EphemeralContainerApplyConfiguration) WithEnvFrom(values ...*EnvFromSourceApplyConfiguration) *EphemeralContainerApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEnvFrom") + } + b.EnvFrom = append(b.EnvFrom, *values[i]) + } + return b +} + +// WithEnv adds the given value to the Env field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Env field. +func (b *EphemeralContainerApplyConfiguration) WithEnv(values ...*EnvVarApplyConfiguration) *EphemeralContainerApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEnv") + } + b.Env = append(b.Env, *values[i]) + } + return b +} + +// WithResources sets the Resources field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resources field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *EphemeralContainerApplyConfiguration { + b.Resources = value + return b +} + +// WithVolumeMounts adds the given value to the VolumeMounts field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumeMounts field. +func (b *EphemeralContainerApplyConfiguration) WithVolumeMounts(values ...*VolumeMountApplyConfiguration) *EphemeralContainerApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithVolumeMounts") + } + b.VolumeMounts = append(b.VolumeMounts, *values[i]) + } + return b +} + +// WithVolumeDevices adds the given value to the VolumeDevices field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumeDevices field. +func (b *EphemeralContainerApplyConfiguration) WithVolumeDevices(values ...*VolumeDeviceApplyConfiguration) *EphemeralContainerApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithVolumeDevices") + } + b.VolumeDevices = append(b.VolumeDevices, *values[i]) + } + return b +} + +// WithLivenessProbe sets the LivenessProbe field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LivenessProbe field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithLivenessProbe(value *ProbeApplyConfiguration) *EphemeralContainerApplyConfiguration { + b.LivenessProbe = value + return b +} + +// WithReadinessProbe sets the ReadinessProbe field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadinessProbe field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithReadinessProbe(value *ProbeApplyConfiguration) *EphemeralContainerApplyConfiguration { + b.ReadinessProbe = value + return b +} + +// WithStartupProbe sets the StartupProbe field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StartupProbe field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithStartupProbe(value *ProbeApplyConfiguration) *EphemeralContainerApplyConfiguration { + b.StartupProbe = value + return b +} + +// WithLifecycle sets the Lifecycle field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Lifecycle field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithLifecycle(value *LifecycleApplyConfiguration) *EphemeralContainerApplyConfiguration { + b.Lifecycle = value + return b +} + +// WithTerminationMessagePath sets the TerminationMessagePath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TerminationMessagePath field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithTerminationMessagePath(value string) *EphemeralContainerApplyConfiguration { + b.TerminationMessagePath = &value + return b +} + +// WithTerminationMessagePolicy sets the TerminationMessagePolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TerminationMessagePolicy field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithTerminationMessagePolicy(value corev1.TerminationMessagePolicy) *EphemeralContainerApplyConfiguration { + b.TerminationMessagePolicy = &value + return b +} + +// WithImagePullPolicy sets the ImagePullPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ImagePullPolicy field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithImagePullPolicy(value corev1.PullPolicy) *EphemeralContainerApplyConfiguration { + b.ImagePullPolicy = &value + return b +} + +// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecurityContext field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithSecurityContext(value *SecurityContextApplyConfiguration) *EphemeralContainerApplyConfiguration { + b.SecurityContext = value + return b +} + +// WithStdin sets the Stdin field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Stdin field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithStdin(value bool) *EphemeralContainerApplyConfiguration { + b.Stdin = &value + return b +} + +// WithStdinOnce sets the StdinOnce field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StdinOnce field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithStdinOnce(value bool) *EphemeralContainerApplyConfiguration { + b.StdinOnce = &value + return b +} + +// WithTTY sets the TTY field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TTY field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithTTY(value bool) *EphemeralContainerApplyConfiguration { + b.TTY = &value + return b +} + +// WithTargetContainerName sets the TargetContainerName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetContainerName field is set to the value of the last call. +func (b *EphemeralContainerApplyConfiguration) WithTargetContainerName(value string) *EphemeralContainerApplyConfiguration { + b.TargetContainerName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainercommon.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainercommon.go new file mode 100644 index 0000000000..67e658cfab --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainercommon.go @@ -0,0 +1,261 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" +) + +// EphemeralContainerCommonApplyConfiguration represents an declarative configuration of the EphemeralContainerCommon type for use +// with apply. +type EphemeralContainerCommonApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Image *string `json:"image,omitempty"` + Command []string `json:"command,omitempty"` + Args []string `json:"args,omitempty"` + WorkingDir *string `json:"workingDir,omitempty"` + Ports []ContainerPortApplyConfiguration `json:"ports,omitempty"` + EnvFrom []EnvFromSourceApplyConfiguration `json:"envFrom,omitempty"` + Env []EnvVarApplyConfiguration `json:"env,omitempty"` + Resources *ResourceRequirementsApplyConfiguration `json:"resources,omitempty"` + VolumeMounts []VolumeMountApplyConfiguration `json:"volumeMounts,omitempty"` + VolumeDevices []VolumeDeviceApplyConfiguration `json:"volumeDevices,omitempty"` + LivenessProbe *ProbeApplyConfiguration `json:"livenessProbe,omitempty"` + ReadinessProbe *ProbeApplyConfiguration `json:"readinessProbe,omitempty"` + StartupProbe *ProbeApplyConfiguration `json:"startupProbe,omitempty"` + Lifecycle *LifecycleApplyConfiguration `json:"lifecycle,omitempty"` + TerminationMessagePath *string `json:"terminationMessagePath,omitempty"` + TerminationMessagePolicy *corev1.TerminationMessagePolicy `json:"terminationMessagePolicy,omitempty"` + ImagePullPolicy *corev1.PullPolicy `json:"imagePullPolicy,omitempty"` + SecurityContext *SecurityContextApplyConfiguration `json:"securityContext,omitempty"` + Stdin *bool `json:"stdin,omitempty"` + StdinOnce *bool `json:"stdinOnce,omitempty"` + TTY *bool `json:"tty,omitempty"` +} + +// EphemeralContainerCommonApplyConfiguration constructs an declarative configuration of the EphemeralContainerCommon type for use with +// apply. +func EphemeralContainerCommon() *EphemeralContainerCommonApplyConfiguration { + return &EphemeralContainerCommonApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithName(value string) *EphemeralContainerCommonApplyConfiguration { + b.Name = &value + return b +} + +// WithImage sets the Image field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Image field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithImage(value string) *EphemeralContainerCommonApplyConfiguration { + b.Image = &value + return b +} + +// WithCommand adds the given value to the Command field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Command field. +func (b *EphemeralContainerCommonApplyConfiguration) WithCommand(values ...string) *EphemeralContainerCommonApplyConfiguration { + for i := range values { + b.Command = append(b.Command, values[i]) + } + return b +} + +// WithArgs adds the given value to the Args field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Args field. +func (b *EphemeralContainerCommonApplyConfiguration) WithArgs(values ...string) *EphemeralContainerCommonApplyConfiguration { + for i := range values { + b.Args = append(b.Args, values[i]) + } + return b +} + +// WithWorkingDir sets the WorkingDir field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the WorkingDir field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithWorkingDir(value string) *EphemeralContainerCommonApplyConfiguration { + b.WorkingDir = &value + return b +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *EphemeralContainerCommonApplyConfiguration) WithPorts(values ...*ContainerPortApplyConfiguration) *EphemeralContainerCommonApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} + +// WithEnvFrom adds the given value to the EnvFrom field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the EnvFrom field. +func (b *EphemeralContainerCommonApplyConfiguration) WithEnvFrom(values ...*EnvFromSourceApplyConfiguration) *EphemeralContainerCommonApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEnvFrom") + } + b.EnvFrom = append(b.EnvFrom, *values[i]) + } + return b +} + +// WithEnv adds the given value to the Env field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Env field. +func (b *EphemeralContainerCommonApplyConfiguration) WithEnv(values ...*EnvVarApplyConfiguration) *EphemeralContainerCommonApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEnv") + } + b.Env = append(b.Env, *values[i]) + } + return b +} + +// WithResources sets the Resources field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resources field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *EphemeralContainerCommonApplyConfiguration { + b.Resources = value + return b +} + +// WithVolumeMounts adds the given value to the VolumeMounts field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumeMounts field. +func (b *EphemeralContainerCommonApplyConfiguration) WithVolumeMounts(values ...*VolumeMountApplyConfiguration) *EphemeralContainerCommonApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithVolumeMounts") + } + b.VolumeMounts = append(b.VolumeMounts, *values[i]) + } + return b +} + +// WithVolumeDevices adds the given value to the VolumeDevices field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumeDevices field. +func (b *EphemeralContainerCommonApplyConfiguration) WithVolumeDevices(values ...*VolumeDeviceApplyConfiguration) *EphemeralContainerCommonApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithVolumeDevices") + } + b.VolumeDevices = append(b.VolumeDevices, *values[i]) + } + return b +} + +// WithLivenessProbe sets the LivenessProbe field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LivenessProbe field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithLivenessProbe(value *ProbeApplyConfiguration) *EphemeralContainerCommonApplyConfiguration { + b.LivenessProbe = value + return b +} + +// WithReadinessProbe sets the ReadinessProbe field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadinessProbe field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithReadinessProbe(value *ProbeApplyConfiguration) *EphemeralContainerCommonApplyConfiguration { + b.ReadinessProbe = value + return b +} + +// WithStartupProbe sets the StartupProbe field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StartupProbe field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithStartupProbe(value *ProbeApplyConfiguration) *EphemeralContainerCommonApplyConfiguration { + b.StartupProbe = value + return b +} + +// WithLifecycle sets the Lifecycle field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Lifecycle field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithLifecycle(value *LifecycleApplyConfiguration) *EphemeralContainerCommonApplyConfiguration { + b.Lifecycle = value + return b +} + +// WithTerminationMessagePath sets the TerminationMessagePath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TerminationMessagePath field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithTerminationMessagePath(value string) *EphemeralContainerCommonApplyConfiguration { + b.TerminationMessagePath = &value + return b +} + +// WithTerminationMessagePolicy sets the TerminationMessagePolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TerminationMessagePolicy field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithTerminationMessagePolicy(value corev1.TerminationMessagePolicy) *EphemeralContainerCommonApplyConfiguration { + b.TerminationMessagePolicy = &value + return b +} + +// WithImagePullPolicy sets the ImagePullPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ImagePullPolicy field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithImagePullPolicy(value corev1.PullPolicy) *EphemeralContainerCommonApplyConfiguration { + b.ImagePullPolicy = &value + return b +} + +// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecurityContext field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithSecurityContext(value *SecurityContextApplyConfiguration) *EphemeralContainerCommonApplyConfiguration { + b.SecurityContext = value + return b +} + +// WithStdin sets the Stdin field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Stdin field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithStdin(value bool) *EphemeralContainerCommonApplyConfiguration { + b.Stdin = &value + return b +} + +// WithStdinOnce sets the StdinOnce field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StdinOnce field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithStdinOnce(value bool) *EphemeralContainerCommonApplyConfiguration { + b.StdinOnce = &value + return b +} + +// WithTTY sets the TTY field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TTY field is set to the value of the last call. +func (b *EphemeralContainerCommonApplyConfiguration) WithTTY(value bool) *EphemeralContainerCommonApplyConfiguration { + b.TTY = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralvolumesource.go new file mode 100644 index 0000000000..31859404cc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralvolumesource.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// EphemeralVolumeSourceApplyConfiguration represents an declarative configuration of the EphemeralVolumeSource type for use +// with apply. +type EphemeralVolumeSourceApplyConfiguration struct { + VolumeClaimTemplate *PersistentVolumeClaimTemplateApplyConfiguration `json:"volumeClaimTemplate,omitempty"` +} + +// EphemeralVolumeSourceApplyConfiguration constructs an declarative configuration of the EphemeralVolumeSource type for use with +// apply. +func EphemeralVolumeSource() *EphemeralVolumeSourceApplyConfiguration { + return &EphemeralVolumeSourceApplyConfiguration{} +} + +// WithVolumeClaimTemplate sets the VolumeClaimTemplate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeClaimTemplate field is set to the value of the last call. +func (b *EphemeralVolumeSourceApplyConfiguration) WithVolumeClaimTemplate(value *PersistentVolumeClaimTemplateApplyConfiguration) *EphemeralVolumeSourceApplyConfiguration { + b.VolumeClaimTemplate = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/event.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/event.go new file mode 100644 index 0000000000..bd39a0fb08 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/event.go @@ -0,0 +1,373 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// EventApplyConfiguration represents an declarative configuration of the Event type for use +// with apply. +type EventApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + InvolvedObject *ObjectReferenceApplyConfiguration `json:"involvedObject,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` + Source *EventSourceApplyConfiguration `json:"source,omitempty"` + FirstTimestamp *metav1.Time `json:"firstTimestamp,omitempty"` + LastTimestamp *metav1.Time `json:"lastTimestamp,omitempty"` + Count *int32 `json:"count,omitempty"` + Type *string `json:"type,omitempty"` + EventTime *metav1.MicroTime `json:"eventTime,omitempty"` + Series *EventSeriesApplyConfiguration `json:"series,omitempty"` + Action *string `json:"action,omitempty"` + Related *ObjectReferenceApplyConfiguration `json:"related,omitempty"` + ReportingController *string `json:"reportingComponent,omitempty"` + ReportingInstance *string `json:"reportingInstance,omitempty"` +} + +// Event constructs an declarative configuration of the Event type for use with +// apply. +func Event(name, namespace string) *EventApplyConfiguration { + b := &EventApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Event") + b.WithAPIVersion("v1") + return b +} + +// ExtractEvent extracts the applied configuration owned by fieldManager from +// event. If no managedFields are found in event for fieldManager, a +// EventApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// event must be a unmodified Event API object that was retrieved from the Kubernetes API. +// ExtractEvent provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractEvent(event *apicorev1.Event, fieldManager string) (*EventApplyConfiguration, error) { + b := &EventApplyConfiguration{} + err := managedfields.ExtractInto(event, internal.Parser().Type("io.k8s.api.core.v1.Event"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(event.Name) + b.WithNamespace(event.Namespace) + + b.WithKind("Event") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *EventApplyConfiguration) WithKind(value string) *EventApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *EventApplyConfiguration) WithAPIVersion(value string) *EventApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EventApplyConfiguration) WithName(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *EventApplyConfiguration) WithGenerateName(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *EventApplyConfiguration) WithNamespace(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *EventApplyConfiguration) WithSelfLink(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *EventApplyConfiguration) WithUID(value types.UID) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *EventApplyConfiguration) WithResourceVersion(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *EventApplyConfiguration) WithGeneration(value int64) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *EventApplyConfiguration) WithLabels(entries map[string]string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *EventApplyConfiguration) WithAnnotations(entries map[string]string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *EventApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *EventApplyConfiguration) WithFinalizers(values ...string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *EventApplyConfiguration) WithClusterName(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *EventApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithInvolvedObject sets the InvolvedObject field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the InvolvedObject field is set to the value of the last call. +func (b *EventApplyConfiguration) WithInvolvedObject(value *ObjectReferenceApplyConfiguration) *EventApplyConfiguration { + b.InvolvedObject = value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *EventApplyConfiguration) WithReason(value string) *EventApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *EventApplyConfiguration) WithMessage(value string) *EventApplyConfiguration { + b.Message = &value + return b +} + +// WithSource sets the Source field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Source field is set to the value of the last call. +func (b *EventApplyConfiguration) WithSource(value *EventSourceApplyConfiguration) *EventApplyConfiguration { + b.Source = value + return b +} + +// WithFirstTimestamp sets the FirstTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FirstTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithFirstTimestamp(value metav1.Time) *EventApplyConfiguration { + b.FirstTimestamp = &value + return b +} + +// WithLastTimestamp sets the LastTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithLastTimestamp(value metav1.Time) *EventApplyConfiguration { + b.LastTimestamp = &value + return b +} + +// WithCount sets the Count field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Count field is set to the value of the last call. +func (b *EventApplyConfiguration) WithCount(value int32) *EventApplyConfiguration { + b.Count = &value + return b +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *EventApplyConfiguration) WithType(value string) *EventApplyConfiguration { + b.Type = &value + return b +} + +// WithEventTime sets the EventTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EventTime field is set to the value of the last call. +func (b *EventApplyConfiguration) WithEventTime(value metav1.MicroTime) *EventApplyConfiguration { + b.EventTime = &value + return b +} + +// WithSeries sets the Series field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Series field is set to the value of the last call. +func (b *EventApplyConfiguration) WithSeries(value *EventSeriesApplyConfiguration) *EventApplyConfiguration { + b.Series = value + return b +} + +// WithAction sets the Action field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Action field is set to the value of the last call. +func (b *EventApplyConfiguration) WithAction(value string) *EventApplyConfiguration { + b.Action = &value + return b +} + +// WithRelated sets the Related field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Related field is set to the value of the last call. +func (b *EventApplyConfiguration) WithRelated(value *ObjectReferenceApplyConfiguration) *EventApplyConfiguration { + b.Related = value + return b +} + +// WithReportingController sets the ReportingController field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReportingController field is set to the value of the last call. +func (b *EventApplyConfiguration) WithReportingController(value string) *EventApplyConfiguration { + b.ReportingController = &value + return b +} + +// WithReportingInstance sets the ReportingInstance field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReportingInstance field is set to the value of the last call. +func (b *EventApplyConfiguration) WithReportingInstance(value string) *EventApplyConfiguration { + b.ReportingInstance = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/eventseries.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/eventseries.go new file mode 100644 index 0000000000..e66fb41271 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/eventseries.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// EventSeriesApplyConfiguration represents an declarative configuration of the EventSeries type for use +// with apply. +type EventSeriesApplyConfiguration struct { + Count *int32 `json:"count,omitempty"` + LastObservedTime *v1.MicroTime `json:"lastObservedTime,omitempty"` +} + +// EventSeriesApplyConfiguration constructs an declarative configuration of the EventSeries type for use with +// apply. +func EventSeries() *EventSeriesApplyConfiguration { + return &EventSeriesApplyConfiguration{} +} + +// WithCount sets the Count field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Count field is set to the value of the last call. +func (b *EventSeriesApplyConfiguration) WithCount(value int32) *EventSeriesApplyConfiguration { + b.Count = &value + return b +} + +// WithLastObservedTime sets the LastObservedTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastObservedTime field is set to the value of the last call. +func (b *EventSeriesApplyConfiguration) WithLastObservedTime(value v1.MicroTime) *EventSeriesApplyConfiguration { + b.LastObservedTime = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/eventsource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/eventsource.go new file mode 100644 index 0000000000..2eb4aa8e44 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/eventsource.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// EventSourceApplyConfiguration represents an declarative configuration of the EventSource type for use +// with apply. +type EventSourceApplyConfiguration struct { + Component *string `json:"component,omitempty"` + Host *string `json:"host,omitempty"` +} + +// EventSourceApplyConfiguration constructs an declarative configuration of the EventSource type for use with +// apply. +func EventSource() *EventSourceApplyConfiguration { + return &EventSourceApplyConfiguration{} +} + +// WithComponent sets the Component field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Component field is set to the value of the last call. +func (b *EventSourceApplyConfiguration) WithComponent(value string) *EventSourceApplyConfiguration { + b.Component = &value + return b +} + +// WithHost sets the Host field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Host field is set to the value of the last call. +func (b *EventSourceApplyConfiguration) WithHost(value string) *EventSourceApplyConfiguration { + b.Host = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/execaction.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/execaction.go new file mode 100644 index 0000000000..1df52144d7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/execaction.go @@ -0,0 +1,41 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ExecActionApplyConfiguration represents an declarative configuration of the ExecAction type for use +// with apply. +type ExecActionApplyConfiguration struct { + Command []string `json:"command,omitempty"` +} + +// ExecActionApplyConfiguration constructs an declarative configuration of the ExecAction type for use with +// apply. +func ExecAction() *ExecActionApplyConfiguration { + return &ExecActionApplyConfiguration{} +} + +// WithCommand adds the given value to the Command field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Command field. +func (b *ExecActionApplyConfiguration) WithCommand(values ...string) *ExecActionApplyConfiguration { + for i := range values { + b.Command = append(b.Command, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/fcvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/fcvolumesource.go new file mode 100644 index 0000000000..43069de9a6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/fcvolumesource.go @@ -0,0 +1,79 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// FCVolumeSourceApplyConfiguration represents an declarative configuration of the FCVolumeSource type for use +// with apply. +type FCVolumeSourceApplyConfiguration struct { + TargetWWNs []string `json:"targetWWNs,omitempty"` + Lun *int32 `json:"lun,omitempty"` + FSType *string `json:"fsType,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + WWIDs []string `json:"wwids,omitempty"` +} + +// FCVolumeSourceApplyConfiguration constructs an declarative configuration of the FCVolumeSource type for use with +// apply. +func FCVolumeSource() *FCVolumeSourceApplyConfiguration { + return &FCVolumeSourceApplyConfiguration{} +} + +// WithTargetWWNs adds the given value to the TargetWWNs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the TargetWWNs field. +func (b *FCVolumeSourceApplyConfiguration) WithTargetWWNs(values ...string) *FCVolumeSourceApplyConfiguration { + for i := range values { + b.TargetWWNs = append(b.TargetWWNs, values[i]) + } + return b +} + +// WithLun sets the Lun field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Lun field is set to the value of the last call. +func (b *FCVolumeSourceApplyConfiguration) WithLun(value int32) *FCVolumeSourceApplyConfiguration { + b.Lun = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *FCVolumeSourceApplyConfiguration) WithFSType(value string) *FCVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *FCVolumeSourceApplyConfiguration) WithReadOnly(value bool) *FCVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithWWIDs adds the given value to the WWIDs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the WWIDs field. +func (b *FCVolumeSourceApplyConfiguration) WithWWIDs(values ...string) *FCVolumeSourceApplyConfiguration { + for i := range values { + b.WWIDs = append(b.WWIDs, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/flexpersistentvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/flexpersistentvolumesource.go new file mode 100644 index 0000000000..47e7c746ee --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/flexpersistentvolumesource.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// FlexPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the FlexPersistentVolumeSource type for use +// with apply. +type FlexPersistentVolumeSourceApplyConfiguration struct { + Driver *string `json:"driver,omitempty"` + FSType *string `json:"fsType,omitempty"` + SecretRef *SecretReferenceApplyConfiguration `json:"secretRef,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + Options map[string]string `json:"options,omitempty"` +} + +// FlexPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the FlexPersistentVolumeSource type for use with +// apply. +func FlexPersistentVolumeSource() *FlexPersistentVolumeSourceApplyConfiguration { + return &FlexPersistentVolumeSourceApplyConfiguration{} +} + +// WithDriver sets the Driver field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Driver field is set to the value of the last call. +func (b *FlexPersistentVolumeSourceApplyConfiguration) WithDriver(value string) *FlexPersistentVolumeSourceApplyConfiguration { + b.Driver = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *FlexPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *FlexPersistentVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *FlexPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *FlexPersistentVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *FlexPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *FlexPersistentVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithOptions puts the entries into the Options field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Options field, +// overwriting an existing map entries in Options field with the same key. +func (b *FlexPersistentVolumeSourceApplyConfiguration) WithOptions(entries map[string]string) *FlexPersistentVolumeSourceApplyConfiguration { + if b.Options == nil && len(entries) > 0 { + b.Options = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Options[k] = v + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/flexvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/flexvolumesource.go new file mode 100644 index 0000000000..7c09516a98 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/flexvolumesource.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// FlexVolumeSourceApplyConfiguration represents an declarative configuration of the FlexVolumeSource type for use +// with apply. +type FlexVolumeSourceApplyConfiguration struct { + Driver *string `json:"driver,omitempty"` + FSType *string `json:"fsType,omitempty"` + SecretRef *LocalObjectReferenceApplyConfiguration `json:"secretRef,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + Options map[string]string `json:"options,omitempty"` +} + +// FlexVolumeSourceApplyConfiguration constructs an declarative configuration of the FlexVolumeSource type for use with +// apply. +func FlexVolumeSource() *FlexVolumeSourceApplyConfiguration { + return &FlexVolumeSourceApplyConfiguration{} +} + +// WithDriver sets the Driver field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Driver field is set to the value of the last call. +func (b *FlexVolumeSourceApplyConfiguration) WithDriver(value string) *FlexVolumeSourceApplyConfiguration { + b.Driver = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *FlexVolumeSourceApplyConfiguration) WithFSType(value string) *FlexVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *FlexVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *FlexVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *FlexVolumeSourceApplyConfiguration) WithReadOnly(value bool) *FlexVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithOptions puts the entries into the Options field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Options field, +// overwriting an existing map entries in Options field with the same key. +func (b *FlexVolumeSourceApplyConfiguration) WithOptions(entries map[string]string) *FlexVolumeSourceApplyConfiguration { + if b.Options == nil && len(entries) > 0 { + b.Options = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Options[k] = v + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/flockervolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/flockervolumesource.go new file mode 100644 index 0000000000..74896d55ac --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/flockervolumesource.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// FlockerVolumeSourceApplyConfiguration represents an declarative configuration of the FlockerVolumeSource type for use +// with apply. +type FlockerVolumeSourceApplyConfiguration struct { + DatasetName *string `json:"datasetName,omitempty"` + DatasetUUID *string `json:"datasetUUID,omitempty"` +} + +// FlockerVolumeSourceApplyConfiguration constructs an declarative configuration of the FlockerVolumeSource type for use with +// apply. +func FlockerVolumeSource() *FlockerVolumeSourceApplyConfiguration { + return &FlockerVolumeSourceApplyConfiguration{} +} + +// WithDatasetName sets the DatasetName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DatasetName field is set to the value of the last call. +func (b *FlockerVolumeSourceApplyConfiguration) WithDatasetName(value string) *FlockerVolumeSourceApplyConfiguration { + b.DatasetName = &value + return b +} + +// WithDatasetUUID sets the DatasetUUID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DatasetUUID field is set to the value of the last call. +func (b *FlockerVolumeSourceApplyConfiguration) WithDatasetUUID(value string) *FlockerVolumeSourceApplyConfiguration { + b.DatasetUUID = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/gcepersistentdiskvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/gcepersistentdiskvolumesource.go new file mode 100644 index 0000000000..0869d3eaa6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/gcepersistentdiskvolumesource.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// GCEPersistentDiskVolumeSourceApplyConfiguration represents an declarative configuration of the GCEPersistentDiskVolumeSource type for use +// with apply. +type GCEPersistentDiskVolumeSourceApplyConfiguration struct { + PDName *string `json:"pdName,omitempty"` + FSType *string `json:"fsType,omitempty"` + Partition *int32 `json:"partition,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// GCEPersistentDiskVolumeSourceApplyConfiguration constructs an declarative configuration of the GCEPersistentDiskVolumeSource type for use with +// apply. +func GCEPersistentDiskVolumeSource() *GCEPersistentDiskVolumeSourceApplyConfiguration { + return &GCEPersistentDiskVolumeSourceApplyConfiguration{} +} + +// WithPDName sets the PDName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PDName field is set to the value of the last call. +func (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithPDName(value string) *GCEPersistentDiskVolumeSourceApplyConfiguration { + b.PDName = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithFSType(value string) *GCEPersistentDiskVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithPartition sets the Partition field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Partition field is set to the value of the last call. +func (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithPartition(value int32) *GCEPersistentDiskVolumeSourceApplyConfiguration { + b.Partition = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithReadOnly(value bool) *GCEPersistentDiskVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/gitrepovolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/gitrepovolumesource.go new file mode 100644 index 0000000000..825e02e4e4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/gitrepovolumesource.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// GitRepoVolumeSourceApplyConfiguration represents an declarative configuration of the GitRepoVolumeSource type for use +// with apply. +type GitRepoVolumeSourceApplyConfiguration struct { + Repository *string `json:"repository,omitempty"` + Revision *string `json:"revision,omitempty"` + Directory *string `json:"directory,omitempty"` +} + +// GitRepoVolumeSourceApplyConfiguration constructs an declarative configuration of the GitRepoVolumeSource type for use with +// apply. +func GitRepoVolumeSource() *GitRepoVolumeSourceApplyConfiguration { + return &GitRepoVolumeSourceApplyConfiguration{} +} + +// WithRepository sets the Repository field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Repository field is set to the value of the last call. +func (b *GitRepoVolumeSourceApplyConfiguration) WithRepository(value string) *GitRepoVolumeSourceApplyConfiguration { + b.Repository = &value + return b +} + +// WithRevision sets the Revision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Revision field is set to the value of the last call. +func (b *GitRepoVolumeSourceApplyConfiguration) WithRevision(value string) *GitRepoVolumeSourceApplyConfiguration { + b.Revision = &value + return b +} + +// WithDirectory sets the Directory field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Directory field is set to the value of the last call. +func (b *GitRepoVolumeSourceApplyConfiguration) WithDirectory(value string) *GitRepoVolumeSourceApplyConfiguration { + b.Directory = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfspersistentvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfspersistentvolumesource.go new file mode 100644 index 0000000000..21a3925e52 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfspersistentvolumesource.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// GlusterfsPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the GlusterfsPersistentVolumeSource type for use +// with apply. +type GlusterfsPersistentVolumeSourceApplyConfiguration struct { + EndpointsName *string `json:"endpoints,omitempty"` + Path *string `json:"path,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + EndpointsNamespace *string `json:"endpointsNamespace,omitempty"` +} + +// GlusterfsPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the GlusterfsPersistentVolumeSource type for use with +// apply. +func GlusterfsPersistentVolumeSource() *GlusterfsPersistentVolumeSourceApplyConfiguration { + return &GlusterfsPersistentVolumeSourceApplyConfiguration{} +} + +// WithEndpointsName sets the EndpointsName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EndpointsName field is set to the value of the last call. +func (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithEndpointsName(value string) *GlusterfsPersistentVolumeSourceApplyConfiguration { + b.EndpointsName = &value + return b +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithPath(value string) *GlusterfsPersistentVolumeSourceApplyConfiguration { + b.Path = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *GlusterfsPersistentVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithEndpointsNamespace sets the EndpointsNamespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EndpointsNamespace field is set to the value of the last call. +func (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithEndpointsNamespace(value string) *GlusterfsPersistentVolumeSourceApplyConfiguration { + b.EndpointsNamespace = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfsvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfsvolumesource.go new file mode 100644 index 0000000000..7ce6f0b399 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfsvolumesource.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// GlusterfsVolumeSourceApplyConfiguration represents an declarative configuration of the GlusterfsVolumeSource type for use +// with apply. +type GlusterfsVolumeSourceApplyConfiguration struct { + EndpointsName *string `json:"endpoints,omitempty"` + Path *string `json:"path,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// GlusterfsVolumeSourceApplyConfiguration constructs an declarative configuration of the GlusterfsVolumeSource type for use with +// apply. +func GlusterfsVolumeSource() *GlusterfsVolumeSourceApplyConfiguration { + return &GlusterfsVolumeSourceApplyConfiguration{} +} + +// WithEndpointsName sets the EndpointsName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EndpointsName field is set to the value of the last call. +func (b *GlusterfsVolumeSourceApplyConfiguration) WithEndpointsName(value string) *GlusterfsVolumeSourceApplyConfiguration { + b.EndpointsName = &value + return b +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *GlusterfsVolumeSourceApplyConfiguration) WithPath(value string) *GlusterfsVolumeSourceApplyConfiguration { + b.Path = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *GlusterfsVolumeSourceApplyConfiguration) WithReadOnly(value bool) *GlusterfsVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/handler.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/handler.go new file mode 100644 index 0000000000..fbf1511ccc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/handler.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// HandlerApplyConfiguration represents an declarative configuration of the Handler type for use +// with apply. +type HandlerApplyConfiguration struct { + Exec *ExecActionApplyConfiguration `json:"exec,omitempty"` + HTTPGet *HTTPGetActionApplyConfiguration `json:"httpGet,omitempty"` + TCPSocket *TCPSocketActionApplyConfiguration `json:"tcpSocket,omitempty"` +} + +// HandlerApplyConfiguration constructs an declarative configuration of the Handler type for use with +// apply. +func Handler() *HandlerApplyConfiguration { + return &HandlerApplyConfiguration{} +} + +// WithExec sets the Exec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Exec field is set to the value of the last call. +func (b *HandlerApplyConfiguration) WithExec(value *ExecActionApplyConfiguration) *HandlerApplyConfiguration { + b.Exec = value + return b +} + +// WithHTTPGet sets the HTTPGet field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HTTPGet field is set to the value of the last call. +func (b *HandlerApplyConfiguration) WithHTTPGet(value *HTTPGetActionApplyConfiguration) *HandlerApplyConfiguration { + b.HTTPGet = value + return b +} + +// WithTCPSocket sets the TCPSocket field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TCPSocket field is set to the value of the last call. +func (b *HandlerApplyConfiguration) WithTCPSocket(value *TCPSocketActionApplyConfiguration) *HandlerApplyConfiguration { + b.TCPSocket = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostalias.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostalias.go new file mode 100644 index 0000000000..861508ef53 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostalias.go @@ -0,0 +1,50 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// HostAliasApplyConfiguration represents an declarative configuration of the HostAlias type for use +// with apply. +type HostAliasApplyConfiguration struct { + IP *string `json:"ip,omitempty"` + Hostnames []string `json:"hostnames,omitempty"` +} + +// HostAliasApplyConfiguration constructs an declarative configuration of the HostAlias type for use with +// apply. +func HostAlias() *HostAliasApplyConfiguration { + return &HostAliasApplyConfiguration{} +} + +// WithIP sets the IP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IP field is set to the value of the last call. +func (b *HostAliasApplyConfiguration) WithIP(value string) *HostAliasApplyConfiguration { + b.IP = &value + return b +} + +// WithHostnames adds the given value to the Hostnames field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Hostnames field. +func (b *HostAliasApplyConfiguration) WithHostnames(values ...string) *HostAliasApplyConfiguration { + for i := range values { + b.Hostnames = append(b.Hostnames, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostpathvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostpathvolumesource.go new file mode 100644 index 0000000000..8b15689eef --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostpathvolumesource.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// HostPathVolumeSourceApplyConfiguration represents an declarative configuration of the HostPathVolumeSource type for use +// with apply. +type HostPathVolumeSourceApplyConfiguration struct { + Path *string `json:"path,omitempty"` + Type *v1.HostPathType `json:"type,omitempty"` +} + +// HostPathVolumeSourceApplyConfiguration constructs an declarative configuration of the HostPathVolumeSource type for use with +// apply. +func HostPathVolumeSource() *HostPathVolumeSourceApplyConfiguration { + return &HostPathVolumeSourceApplyConfiguration{} +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *HostPathVolumeSourceApplyConfiguration) WithPath(value string) *HostPathVolumeSourceApplyConfiguration { + b.Path = &value + return b +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *HostPathVolumeSourceApplyConfiguration) WithType(value v1.HostPathType) *HostPathVolumeSourceApplyConfiguration { + b.Type = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/httpgetaction.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/httpgetaction.go new file mode 100644 index 0000000000..e4ecdd4303 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/httpgetaction.go @@ -0,0 +1,85 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// HTTPGetActionApplyConfiguration represents an declarative configuration of the HTTPGetAction type for use +// with apply. +type HTTPGetActionApplyConfiguration struct { + Path *string `json:"path,omitempty"` + Port *intstr.IntOrString `json:"port,omitempty"` + Host *string `json:"host,omitempty"` + Scheme *v1.URIScheme `json:"scheme,omitempty"` + HTTPHeaders []HTTPHeaderApplyConfiguration `json:"httpHeaders,omitempty"` +} + +// HTTPGetActionApplyConfiguration constructs an declarative configuration of the HTTPGetAction type for use with +// apply. +func HTTPGetAction() *HTTPGetActionApplyConfiguration { + return &HTTPGetActionApplyConfiguration{} +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *HTTPGetActionApplyConfiguration) WithPath(value string) *HTTPGetActionApplyConfiguration { + b.Path = &value + return b +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *HTTPGetActionApplyConfiguration) WithPort(value intstr.IntOrString) *HTTPGetActionApplyConfiguration { + b.Port = &value + return b +} + +// WithHost sets the Host field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Host field is set to the value of the last call. +func (b *HTTPGetActionApplyConfiguration) WithHost(value string) *HTTPGetActionApplyConfiguration { + b.Host = &value + return b +} + +// WithScheme sets the Scheme field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Scheme field is set to the value of the last call. +func (b *HTTPGetActionApplyConfiguration) WithScheme(value v1.URIScheme) *HTTPGetActionApplyConfiguration { + b.Scheme = &value + return b +} + +// WithHTTPHeaders adds the given value to the HTTPHeaders field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the HTTPHeaders field. +func (b *HTTPGetActionApplyConfiguration) WithHTTPHeaders(values ...*HTTPHeaderApplyConfiguration) *HTTPGetActionApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithHTTPHeaders") + } + b.HTTPHeaders = append(b.HTTPHeaders, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/httpheader.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/httpheader.go new file mode 100644 index 0000000000..d55f36bfd2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/httpheader.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// HTTPHeaderApplyConfiguration represents an declarative configuration of the HTTPHeader type for use +// with apply. +type HTTPHeaderApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Value *string `json:"value,omitempty"` +} + +// HTTPHeaderApplyConfiguration constructs an declarative configuration of the HTTPHeader type for use with +// apply. +func HTTPHeader() *HTTPHeaderApplyConfiguration { + return &HTTPHeaderApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *HTTPHeaderApplyConfiguration) WithName(value string) *HTTPHeaderApplyConfiguration { + b.Name = &value + return b +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *HTTPHeaderApplyConfiguration) WithValue(value string) *HTTPHeaderApplyConfiguration { + b.Value = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsipersistentvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsipersistentvolumesource.go new file mode 100644 index 0000000000..c7b248181a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsipersistentvolumesource.go @@ -0,0 +1,131 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ISCSIPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the ISCSIPersistentVolumeSource type for use +// with apply. +type ISCSIPersistentVolumeSourceApplyConfiguration struct { + TargetPortal *string `json:"targetPortal,omitempty"` + IQN *string `json:"iqn,omitempty"` + Lun *int32 `json:"lun,omitempty"` + ISCSIInterface *string `json:"iscsiInterface,omitempty"` + FSType *string `json:"fsType,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + Portals []string `json:"portals,omitempty"` + DiscoveryCHAPAuth *bool `json:"chapAuthDiscovery,omitempty"` + SessionCHAPAuth *bool `json:"chapAuthSession,omitempty"` + SecretRef *SecretReferenceApplyConfiguration `json:"secretRef,omitempty"` + InitiatorName *string `json:"initiatorName,omitempty"` +} + +// ISCSIPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the ISCSIPersistentVolumeSource type for use with +// apply. +func ISCSIPersistentVolumeSource() *ISCSIPersistentVolumeSourceApplyConfiguration { + return &ISCSIPersistentVolumeSourceApplyConfiguration{} +} + +// WithTargetPortal sets the TargetPortal field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetPortal field is set to the value of the last call. +func (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithTargetPortal(value string) *ISCSIPersistentVolumeSourceApplyConfiguration { + b.TargetPortal = &value + return b +} + +// WithIQN sets the IQN field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IQN field is set to the value of the last call. +func (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithIQN(value string) *ISCSIPersistentVolumeSourceApplyConfiguration { + b.IQN = &value + return b +} + +// WithLun sets the Lun field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Lun field is set to the value of the last call. +func (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithLun(value int32) *ISCSIPersistentVolumeSourceApplyConfiguration { + b.Lun = &value + return b +} + +// WithISCSIInterface sets the ISCSIInterface field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ISCSIInterface field is set to the value of the last call. +func (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithISCSIInterface(value string) *ISCSIPersistentVolumeSourceApplyConfiguration { + b.ISCSIInterface = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *ISCSIPersistentVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ISCSIPersistentVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithPortals adds the given value to the Portals field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Portals field. +func (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithPortals(values ...string) *ISCSIPersistentVolumeSourceApplyConfiguration { + for i := range values { + b.Portals = append(b.Portals, values[i]) + } + return b +} + +// WithDiscoveryCHAPAuth sets the DiscoveryCHAPAuth field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DiscoveryCHAPAuth field is set to the value of the last call. +func (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithDiscoveryCHAPAuth(value bool) *ISCSIPersistentVolumeSourceApplyConfiguration { + b.DiscoveryCHAPAuth = &value + return b +} + +// WithSessionCHAPAuth sets the SessionCHAPAuth field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SessionCHAPAuth field is set to the value of the last call. +func (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithSessionCHAPAuth(value bool) *ISCSIPersistentVolumeSourceApplyConfiguration { + b.SessionCHAPAuth = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *ISCSIPersistentVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} + +// WithInitiatorName sets the InitiatorName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the InitiatorName field is set to the value of the last call. +func (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithInitiatorName(value string) *ISCSIPersistentVolumeSourceApplyConfiguration { + b.InitiatorName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsivolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsivolumesource.go new file mode 100644 index 0000000000..c95941a9c7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsivolumesource.go @@ -0,0 +1,131 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ISCSIVolumeSourceApplyConfiguration represents an declarative configuration of the ISCSIVolumeSource type for use +// with apply. +type ISCSIVolumeSourceApplyConfiguration struct { + TargetPortal *string `json:"targetPortal,omitempty"` + IQN *string `json:"iqn,omitempty"` + Lun *int32 `json:"lun,omitempty"` + ISCSIInterface *string `json:"iscsiInterface,omitempty"` + FSType *string `json:"fsType,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + Portals []string `json:"portals,omitempty"` + DiscoveryCHAPAuth *bool `json:"chapAuthDiscovery,omitempty"` + SessionCHAPAuth *bool `json:"chapAuthSession,omitempty"` + SecretRef *LocalObjectReferenceApplyConfiguration `json:"secretRef,omitempty"` + InitiatorName *string `json:"initiatorName,omitempty"` +} + +// ISCSIVolumeSourceApplyConfiguration constructs an declarative configuration of the ISCSIVolumeSource type for use with +// apply. +func ISCSIVolumeSource() *ISCSIVolumeSourceApplyConfiguration { + return &ISCSIVolumeSourceApplyConfiguration{} +} + +// WithTargetPortal sets the TargetPortal field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetPortal field is set to the value of the last call. +func (b *ISCSIVolumeSourceApplyConfiguration) WithTargetPortal(value string) *ISCSIVolumeSourceApplyConfiguration { + b.TargetPortal = &value + return b +} + +// WithIQN sets the IQN field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IQN field is set to the value of the last call. +func (b *ISCSIVolumeSourceApplyConfiguration) WithIQN(value string) *ISCSIVolumeSourceApplyConfiguration { + b.IQN = &value + return b +} + +// WithLun sets the Lun field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Lun field is set to the value of the last call. +func (b *ISCSIVolumeSourceApplyConfiguration) WithLun(value int32) *ISCSIVolumeSourceApplyConfiguration { + b.Lun = &value + return b +} + +// WithISCSIInterface sets the ISCSIInterface field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ISCSIInterface field is set to the value of the last call. +func (b *ISCSIVolumeSourceApplyConfiguration) WithISCSIInterface(value string) *ISCSIVolumeSourceApplyConfiguration { + b.ISCSIInterface = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *ISCSIVolumeSourceApplyConfiguration) WithFSType(value string) *ISCSIVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *ISCSIVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ISCSIVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithPortals adds the given value to the Portals field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Portals field. +func (b *ISCSIVolumeSourceApplyConfiguration) WithPortals(values ...string) *ISCSIVolumeSourceApplyConfiguration { + for i := range values { + b.Portals = append(b.Portals, values[i]) + } + return b +} + +// WithDiscoveryCHAPAuth sets the DiscoveryCHAPAuth field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DiscoveryCHAPAuth field is set to the value of the last call. +func (b *ISCSIVolumeSourceApplyConfiguration) WithDiscoveryCHAPAuth(value bool) *ISCSIVolumeSourceApplyConfiguration { + b.DiscoveryCHAPAuth = &value + return b +} + +// WithSessionCHAPAuth sets the SessionCHAPAuth field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SessionCHAPAuth field is set to the value of the last call. +func (b *ISCSIVolumeSourceApplyConfiguration) WithSessionCHAPAuth(value bool) *ISCSIVolumeSourceApplyConfiguration { + b.SessionCHAPAuth = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *ISCSIVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *ISCSIVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} + +// WithInitiatorName sets the InitiatorName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the InitiatorName field is set to the value of the last call. +func (b *ISCSIVolumeSourceApplyConfiguration) WithInitiatorName(value string) *ISCSIVolumeSourceApplyConfiguration { + b.InitiatorName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/keytopath.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/keytopath.go new file mode 100644 index 0000000000..d58676d34c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/keytopath.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// KeyToPathApplyConfiguration represents an declarative configuration of the KeyToPath type for use +// with apply. +type KeyToPathApplyConfiguration struct { + Key *string `json:"key,omitempty"` + Path *string `json:"path,omitempty"` + Mode *int32 `json:"mode,omitempty"` +} + +// KeyToPathApplyConfiguration constructs an declarative configuration of the KeyToPath type for use with +// apply. +func KeyToPath() *KeyToPathApplyConfiguration { + return &KeyToPathApplyConfiguration{} +} + +// WithKey sets the Key field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Key field is set to the value of the last call. +func (b *KeyToPathApplyConfiguration) WithKey(value string) *KeyToPathApplyConfiguration { + b.Key = &value + return b +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *KeyToPathApplyConfiguration) WithPath(value string) *KeyToPathApplyConfiguration { + b.Path = &value + return b +} + +// WithMode sets the Mode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Mode field is set to the value of the last call. +func (b *KeyToPathApplyConfiguration) WithMode(value int32) *KeyToPathApplyConfiguration { + b.Mode = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/lifecycle.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/lifecycle.go new file mode 100644 index 0000000000..ab37b6677b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/lifecycle.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// LifecycleApplyConfiguration represents an declarative configuration of the Lifecycle type for use +// with apply. +type LifecycleApplyConfiguration struct { + PostStart *HandlerApplyConfiguration `json:"postStart,omitempty"` + PreStop *HandlerApplyConfiguration `json:"preStop,omitempty"` +} + +// LifecycleApplyConfiguration constructs an declarative configuration of the Lifecycle type for use with +// apply. +func Lifecycle() *LifecycleApplyConfiguration { + return &LifecycleApplyConfiguration{} +} + +// WithPostStart sets the PostStart field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PostStart field is set to the value of the last call. +func (b *LifecycleApplyConfiguration) WithPostStart(value *HandlerApplyConfiguration) *LifecycleApplyConfiguration { + b.PostStart = value + return b +} + +// WithPreStop sets the PreStop field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PreStop field is set to the value of the last call. +func (b *LifecycleApplyConfiguration) WithPreStop(value *HandlerApplyConfiguration) *LifecycleApplyConfiguration { + b.PreStop = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrange.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrange.go new file mode 100644 index 0000000000..920b527f51 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrange.go @@ -0,0 +1,256 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// LimitRangeApplyConfiguration represents an declarative configuration of the LimitRange type for use +// with apply. +type LimitRangeApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *LimitRangeSpecApplyConfiguration `json:"spec,omitempty"` +} + +// LimitRange constructs an declarative configuration of the LimitRange type for use with +// apply. +func LimitRange(name, namespace string) *LimitRangeApplyConfiguration { + b := &LimitRangeApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("LimitRange") + b.WithAPIVersion("v1") + return b +} + +// ExtractLimitRange extracts the applied configuration owned by fieldManager from +// limitRange. If no managedFields are found in limitRange for fieldManager, a +// LimitRangeApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// limitRange must be a unmodified LimitRange API object that was retrieved from the Kubernetes API. +// ExtractLimitRange provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractLimitRange(limitRange *apicorev1.LimitRange, fieldManager string) (*LimitRangeApplyConfiguration, error) { + b := &LimitRangeApplyConfiguration{} + err := managedfields.ExtractInto(limitRange, internal.Parser().Type("io.k8s.api.core.v1.LimitRange"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(limitRange.Name) + b.WithNamespace(limitRange.Namespace) + + b.WithKind("LimitRange") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithKind(value string) *LimitRangeApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithAPIVersion(value string) *LimitRangeApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithName(value string) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithGenerateName(value string) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithNamespace(value string) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithSelfLink(value string) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithUID(value types.UID) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithResourceVersion(value string) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithGeneration(value int64) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *LimitRangeApplyConfiguration) WithLabels(entries map[string]string) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *LimitRangeApplyConfiguration) WithAnnotations(entries map[string]string) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *LimitRangeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *LimitRangeApplyConfiguration) WithFinalizers(values ...string) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithClusterName(value string) *LimitRangeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *LimitRangeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *LimitRangeApplyConfiguration) WithSpec(value *LimitRangeSpecApplyConfiguration) *LimitRangeApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangeitem.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangeitem.go new file mode 100644 index 0000000000..084650fdaa --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangeitem.go @@ -0,0 +1,88 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// LimitRangeItemApplyConfiguration represents an declarative configuration of the LimitRangeItem type for use +// with apply. +type LimitRangeItemApplyConfiguration struct { + Type *v1.LimitType `json:"type,omitempty"` + Max *v1.ResourceList `json:"max,omitempty"` + Min *v1.ResourceList `json:"min,omitempty"` + Default *v1.ResourceList `json:"default,omitempty"` + DefaultRequest *v1.ResourceList `json:"defaultRequest,omitempty"` + MaxLimitRequestRatio *v1.ResourceList `json:"maxLimitRequestRatio,omitempty"` +} + +// LimitRangeItemApplyConfiguration constructs an declarative configuration of the LimitRangeItem type for use with +// apply. +func LimitRangeItem() *LimitRangeItemApplyConfiguration { + return &LimitRangeItemApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *LimitRangeItemApplyConfiguration) WithType(value v1.LimitType) *LimitRangeItemApplyConfiguration { + b.Type = &value + return b +} + +// WithMax sets the Max field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Max field is set to the value of the last call. +func (b *LimitRangeItemApplyConfiguration) WithMax(value v1.ResourceList) *LimitRangeItemApplyConfiguration { + b.Max = &value + return b +} + +// WithMin sets the Min field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Min field is set to the value of the last call. +func (b *LimitRangeItemApplyConfiguration) WithMin(value v1.ResourceList) *LimitRangeItemApplyConfiguration { + b.Min = &value + return b +} + +// WithDefault sets the Default field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Default field is set to the value of the last call. +func (b *LimitRangeItemApplyConfiguration) WithDefault(value v1.ResourceList) *LimitRangeItemApplyConfiguration { + b.Default = &value + return b +} + +// WithDefaultRequest sets the DefaultRequest field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DefaultRequest field is set to the value of the last call. +func (b *LimitRangeItemApplyConfiguration) WithDefaultRequest(value v1.ResourceList) *LimitRangeItemApplyConfiguration { + b.DefaultRequest = &value + return b +} + +// WithMaxLimitRequestRatio sets the MaxLimitRequestRatio field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxLimitRequestRatio field is set to the value of the last call. +func (b *LimitRangeItemApplyConfiguration) WithMaxLimitRequestRatio(value v1.ResourceList) *LimitRangeItemApplyConfiguration { + b.MaxLimitRequestRatio = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangespec.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangespec.go new file mode 100644 index 0000000000..5eee5c498e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangespec.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// LimitRangeSpecApplyConfiguration represents an declarative configuration of the LimitRangeSpec type for use +// with apply. +type LimitRangeSpecApplyConfiguration struct { + Limits []LimitRangeItemApplyConfiguration `json:"limits,omitempty"` +} + +// LimitRangeSpecApplyConfiguration constructs an declarative configuration of the LimitRangeSpec type for use with +// apply. +func LimitRangeSpec() *LimitRangeSpecApplyConfiguration { + return &LimitRangeSpecApplyConfiguration{} +} + +// WithLimits adds the given value to the Limits field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Limits field. +func (b *LimitRangeSpecApplyConfiguration) WithLimits(values ...*LimitRangeItemApplyConfiguration) *LimitRangeSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithLimits") + } + b.Limits = append(b.Limits, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalanceringress.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalanceringress.go new file mode 100644 index 0000000000..64d27bdad5 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalanceringress.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// LoadBalancerIngressApplyConfiguration represents an declarative configuration of the LoadBalancerIngress type for use +// with apply. +type LoadBalancerIngressApplyConfiguration struct { + IP *string `json:"ip,omitempty"` + Hostname *string `json:"hostname,omitempty"` + Ports []PortStatusApplyConfiguration `json:"ports,omitempty"` +} + +// LoadBalancerIngressApplyConfiguration constructs an declarative configuration of the LoadBalancerIngress type for use with +// apply. +func LoadBalancerIngress() *LoadBalancerIngressApplyConfiguration { + return &LoadBalancerIngressApplyConfiguration{} +} + +// WithIP sets the IP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IP field is set to the value of the last call. +func (b *LoadBalancerIngressApplyConfiguration) WithIP(value string) *LoadBalancerIngressApplyConfiguration { + b.IP = &value + return b +} + +// WithHostname sets the Hostname field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Hostname field is set to the value of the last call. +func (b *LoadBalancerIngressApplyConfiguration) WithHostname(value string) *LoadBalancerIngressApplyConfiguration { + b.Hostname = &value + return b +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *LoadBalancerIngressApplyConfiguration) WithPorts(values ...*PortStatusApplyConfiguration) *LoadBalancerIngressApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalancerstatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalancerstatus.go new file mode 100644 index 0000000000..2fcc0cad18 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalancerstatus.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// LoadBalancerStatusApplyConfiguration represents an declarative configuration of the LoadBalancerStatus type for use +// with apply. +type LoadBalancerStatusApplyConfiguration struct { + Ingress []LoadBalancerIngressApplyConfiguration `json:"ingress,omitempty"` +} + +// LoadBalancerStatusApplyConfiguration constructs an declarative configuration of the LoadBalancerStatus type for use with +// apply. +func LoadBalancerStatus() *LoadBalancerStatusApplyConfiguration { + return &LoadBalancerStatusApplyConfiguration{} +} + +// WithIngress adds the given value to the Ingress field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ingress field. +func (b *LoadBalancerStatusApplyConfiguration) WithIngress(values ...*LoadBalancerIngressApplyConfiguration) *LoadBalancerStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithIngress") + } + b.Ingress = append(b.Ingress, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/localobjectreference.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/localobjectreference.go new file mode 100644 index 0000000000..7662e32b31 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/localobjectreference.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// LocalObjectReferenceApplyConfiguration represents an declarative configuration of the LocalObjectReference type for use +// with apply. +type LocalObjectReferenceApplyConfiguration struct { + Name *string `json:"name,omitempty"` +} + +// LocalObjectReferenceApplyConfiguration constructs an declarative configuration of the LocalObjectReference type for use with +// apply. +func LocalObjectReference() *LocalObjectReferenceApplyConfiguration { + return &LocalObjectReferenceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *LocalObjectReferenceApplyConfiguration) WithName(value string) *LocalObjectReferenceApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/localvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/localvolumesource.go new file mode 100644 index 0000000000..5d289bd12d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/localvolumesource.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// LocalVolumeSourceApplyConfiguration represents an declarative configuration of the LocalVolumeSource type for use +// with apply. +type LocalVolumeSourceApplyConfiguration struct { + Path *string `json:"path,omitempty"` + FSType *string `json:"fsType,omitempty"` +} + +// LocalVolumeSourceApplyConfiguration constructs an declarative configuration of the LocalVolumeSource type for use with +// apply. +func LocalVolumeSource() *LocalVolumeSourceApplyConfiguration { + return &LocalVolumeSourceApplyConfiguration{} +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *LocalVolumeSourceApplyConfiguration) WithPath(value string) *LocalVolumeSourceApplyConfiguration { + b.Path = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *LocalVolumeSourceApplyConfiguration) WithFSType(value string) *LocalVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespace.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespace.go new file mode 100644 index 0000000000..4a829f404d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespace.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// NamespaceApplyConfiguration represents an declarative configuration of the Namespace type for use +// with apply. +type NamespaceApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *NamespaceSpecApplyConfiguration `json:"spec,omitempty"` + Status *NamespaceStatusApplyConfiguration `json:"status,omitempty"` +} + +// Namespace constructs an declarative configuration of the Namespace type for use with +// apply. +func Namespace(name string) *NamespaceApplyConfiguration { + b := &NamespaceApplyConfiguration{} + b.WithName(name) + b.WithKind("Namespace") + b.WithAPIVersion("v1") + return b +} + +// ExtractNamespace extracts the applied configuration owned by fieldManager from +// namespace. If no managedFields are found in namespace for fieldManager, a +// NamespaceApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// namespace must be a unmodified Namespace API object that was retrieved from the Kubernetes API. +// ExtractNamespace provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractNamespace(namespace *apicorev1.Namespace, fieldManager string) (*NamespaceApplyConfiguration, error) { + b := &NamespaceApplyConfiguration{} + err := managedfields.ExtractInto(namespace, internal.Parser().Type("io.k8s.api.core.v1.Namespace"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(namespace.Name) + + b.WithKind("Namespace") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithKind(value string) *NamespaceApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithAPIVersion(value string) *NamespaceApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithName(value string) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithGenerateName(value string) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithNamespace(value string) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithSelfLink(value string) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithUID(value types.UID) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithResourceVersion(value string) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithGeneration(value int64) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithCreationTimestamp(value metav1.Time) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *NamespaceApplyConfiguration) WithLabels(entries map[string]string) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *NamespaceApplyConfiguration) WithAnnotations(entries map[string]string) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *NamespaceApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *NamespaceApplyConfiguration) WithFinalizers(values ...string) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithClusterName(value string) *NamespaceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *NamespaceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithSpec(value *NamespaceSpecApplyConfiguration) *NamespaceApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *NamespaceApplyConfiguration) WithStatus(value *NamespaceStatusApplyConfiguration) *NamespaceApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacecondition.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacecondition.go new file mode 100644 index 0000000000..8651978b0f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacecondition.go @@ -0,0 +1,80 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// NamespaceConditionApplyConfiguration represents an declarative configuration of the NamespaceCondition type for use +// with apply. +type NamespaceConditionApplyConfiguration struct { + Type *v1.NamespaceConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// NamespaceConditionApplyConfiguration constructs an declarative configuration of the NamespaceCondition type for use with +// apply. +func NamespaceCondition() *NamespaceConditionApplyConfiguration { + return &NamespaceConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *NamespaceConditionApplyConfiguration) WithType(value v1.NamespaceConditionType) *NamespaceConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *NamespaceConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *NamespaceConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *NamespaceConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *NamespaceConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *NamespaceConditionApplyConfiguration) WithReason(value string) *NamespaceConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *NamespaceConditionApplyConfiguration) WithMessage(value string) *NamespaceConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacespec.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacespec.go new file mode 100644 index 0000000000..9bc02d1fa2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacespec.go @@ -0,0 +1,45 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// NamespaceSpecApplyConfiguration represents an declarative configuration of the NamespaceSpec type for use +// with apply. +type NamespaceSpecApplyConfiguration struct { + Finalizers []v1.FinalizerName `json:"finalizers,omitempty"` +} + +// NamespaceSpecApplyConfiguration constructs an declarative configuration of the NamespaceSpec type for use with +// apply. +func NamespaceSpec() *NamespaceSpecApplyConfiguration { + return &NamespaceSpecApplyConfiguration{} +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *NamespaceSpecApplyConfiguration) WithFinalizers(values ...v1.FinalizerName) *NamespaceSpecApplyConfiguration { + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacestatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacestatus.go new file mode 100644 index 0000000000..d950fd3161 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacestatus.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// NamespaceStatusApplyConfiguration represents an declarative configuration of the NamespaceStatus type for use +// with apply. +type NamespaceStatusApplyConfiguration struct { + Phase *v1.NamespacePhase `json:"phase,omitempty"` + Conditions []NamespaceConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// NamespaceStatusApplyConfiguration constructs an declarative configuration of the NamespaceStatus type for use with +// apply. +func NamespaceStatus() *NamespaceStatusApplyConfiguration { + return &NamespaceStatusApplyConfiguration{} +} + +// WithPhase sets the Phase field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Phase field is set to the value of the last call. +func (b *NamespaceStatusApplyConfiguration) WithPhase(value v1.NamespacePhase) *NamespaceStatusApplyConfiguration { + b.Phase = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *NamespaceStatusApplyConfiguration) WithConditions(values ...*NamespaceConditionApplyConfiguration) *NamespaceStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nfsvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nfsvolumesource.go new file mode 100644 index 0000000000..cb300ee81e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nfsvolumesource.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// NFSVolumeSourceApplyConfiguration represents an declarative configuration of the NFSVolumeSource type for use +// with apply. +type NFSVolumeSourceApplyConfiguration struct { + Server *string `json:"server,omitempty"` + Path *string `json:"path,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// NFSVolumeSourceApplyConfiguration constructs an declarative configuration of the NFSVolumeSource type for use with +// apply. +func NFSVolumeSource() *NFSVolumeSourceApplyConfiguration { + return &NFSVolumeSourceApplyConfiguration{} +} + +// WithServer sets the Server field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Server field is set to the value of the last call. +func (b *NFSVolumeSourceApplyConfiguration) WithServer(value string) *NFSVolumeSourceApplyConfiguration { + b.Server = &value + return b +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *NFSVolumeSourceApplyConfiguration) WithPath(value string) *NFSVolumeSourceApplyConfiguration { + b.Path = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *NFSVolumeSourceApplyConfiguration) WithReadOnly(value bool) *NFSVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/node.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/node.go new file mode 100644 index 0000000000..4f90da59f6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/node.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// NodeApplyConfiguration represents an declarative configuration of the Node type for use +// with apply. +type NodeApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *NodeSpecApplyConfiguration `json:"spec,omitempty"` + Status *NodeStatusApplyConfiguration `json:"status,omitempty"` +} + +// Node constructs an declarative configuration of the Node type for use with +// apply. +func Node(name string) *NodeApplyConfiguration { + b := &NodeApplyConfiguration{} + b.WithName(name) + b.WithKind("Node") + b.WithAPIVersion("v1") + return b +} + +// ExtractNode extracts the applied configuration owned by fieldManager from +// node. If no managedFields are found in node for fieldManager, a +// NodeApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// node must be a unmodified Node API object that was retrieved from the Kubernetes API. +// ExtractNode provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractNode(node *apicorev1.Node, fieldManager string) (*NodeApplyConfiguration, error) { + b := &NodeApplyConfiguration{} + err := managedfields.ExtractInto(node, internal.Parser().Type("io.k8s.api.core.v1.Node"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(node.Name) + + b.WithKind("Node") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithKind(value string) *NodeApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithAPIVersion(value string) *NodeApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithName(value string) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithGenerateName(value string) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithNamespace(value string) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithSelfLink(value string) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithUID(value types.UID) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithResourceVersion(value string) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithGeneration(value int64) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *NodeApplyConfiguration) WithLabels(entries map[string]string) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *NodeApplyConfiguration) WithAnnotations(entries map[string]string) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *NodeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *NodeApplyConfiguration) WithFinalizers(values ...string) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithClusterName(value string) *NodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *NodeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithSpec(value *NodeSpecApplyConfiguration) *NodeApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *NodeApplyConfiguration) WithStatus(value *NodeStatusApplyConfiguration) *NodeApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaddress.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaddress.go new file mode 100644 index 0000000000..a1d4fbe04e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaddress.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// NodeAddressApplyConfiguration represents an declarative configuration of the NodeAddress type for use +// with apply. +type NodeAddressApplyConfiguration struct { + Type *v1.NodeAddressType `json:"type,omitempty"` + Address *string `json:"address,omitempty"` +} + +// NodeAddressApplyConfiguration constructs an declarative configuration of the NodeAddress type for use with +// apply. +func NodeAddress() *NodeAddressApplyConfiguration { + return &NodeAddressApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *NodeAddressApplyConfiguration) WithType(value v1.NodeAddressType) *NodeAddressApplyConfiguration { + b.Type = &value + return b +} + +// WithAddress sets the Address field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Address field is set to the value of the last call. +func (b *NodeAddressApplyConfiguration) WithAddress(value string) *NodeAddressApplyConfiguration { + b.Address = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaffinity.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaffinity.go new file mode 100644 index 0000000000..e28ced6e46 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaffinity.go @@ -0,0 +1,53 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// NodeAffinityApplyConfiguration represents an declarative configuration of the NodeAffinity type for use +// with apply. +type NodeAffinityApplyConfiguration struct { + RequiredDuringSchedulingIgnoredDuringExecution *NodeSelectorApplyConfiguration `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` + PreferredDuringSchedulingIgnoredDuringExecution []PreferredSchedulingTermApplyConfiguration `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` +} + +// NodeAffinityApplyConfiguration constructs an declarative configuration of the NodeAffinity type for use with +// apply. +func NodeAffinity() *NodeAffinityApplyConfiguration { + return &NodeAffinityApplyConfiguration{} +} + +// WithRequiredDuringSchedulingIgnoredDuringExecution sets the RequiredDuringSchedulingIgnoredDuringExecution field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RequiredDuringSchedulingIgnoredDuringExecution field is set to the value of the last call. +func (b *NodeAffinityApplyConfiguration) WithRequiredDuringSchedulingIgnoredDuringExecution(value *NodeSelectorApplyConfiguration) *NodeAffinityApplyConfiguration { + b.RequiredDuringSchedulingIgnoredDuringExecution = value + return b +} + +// WithPreferredDuringSchedulingIgnoredDuringExecution adds the given value to the PreferredDuringSchedulingIgnoredDuringExecution field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the PreferredDuringSchedulingIgnoredDuringExecution field. +func (b *NodeAffinityApplyConfiguration) WithPreferredDuringSchedulingIgnoredDuringExecution(values ...*PreferredSchedulingTermApplyConfiguration) *NodeAffinityApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPreferredDuringSchedulingIgnoredDuringExecution") + } + b.PreferredDuringSchedulingIgnoredDuringExecution = append(b.PreferredDuringSchedulingIgnoredDuringExecution, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodecondition.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodecondition.go new file mode 100644 index 0000000000..eb81ca543f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodecondition.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// NodeConditionApplyConfiguration represents an declarative configuration of the NodeCondition type for use +// with apply. +type NodeConditionApplyConfiguration struct { + Type *v1.NodeConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastHeartbeatTime *metav1.Time `json:"lastHeartbeatTime,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// NodeConditionApplyConfiguration constructs an declarative configuration of the NodeCondition type for use with +// apply. +func NodeCondition() *NodeConditionApplyConfiguration { + return &NodeConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *NodeConditionApplyConfiguration) WithType(value v1.NodeConditionType) *NodeConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *NodeConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *NodeConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastHeartbeatTime sets the LastHeartbeatTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastHeartbeatTime field is set to the value of the last call. +func (b *NodeConditionApplyConfiguration) WithLastHeartbeatTime(value metav1.Time) *NodeConditionApplyConfiguration { + b.LastHeartbeatTime = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *NodeConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *NodeConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *NodeConditionApplyConfiguration) WithReason(value string) *NodeConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *NodeConditionApplyConfiguration) WithMessage(value string) *NodeConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigsource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigsource.go new file mode 100644 index 0000000000..60567aa431 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigsource.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// NodeConfigSourceApplyConfiguration represents an declarative configuration of the NodeConfigSource type for use +// with apply. +type NodeConfigSourceApplyConfiguration struct { + ConfigMap *ConfigMapNodeConfigSourceApplyConfiguration `json:"configMap,omitempty"` +} + +// NodeConfigSourceApplyConfiguration constructs an declarative configuration of the NodeConfigSource type for use with +// apply. +func NodeConfigSource() *NodeConfigSourceApplyConfiguration { + return &NodeConfigSourceApplyConfiguration{} +} + +// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ConfigMap field is set to the value of the last call. +func (b *NodeConfigSourceApplyConfiguration) WithConfigMap(value *ConfigMapNodeConfigSourceApplyConfiguration) *NodeConfigSourceApplyConfiguration { + b.ConfigMap = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigstatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigstatus.go new file mode 100644 index 0000000000..71447fe9c0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigstatus.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// NodeConfigStatusApplyConfiguration represents an declarative configuration of the NodeConfigStatus type for use +// with apply. +type NodeConfigStatusApplyConfiguration struct { + Assigned *NodeConfigSourceApplyConfiguration `json:"assigned,omitempty"` + Active *NodeConfigSourceApplyConfiguration `json:"active,omitempty"` + LastKnownGood *NodeConfigSourceApplyConfiguration `json:"lastKnownGood,omitempty"` + Error *string `json:"error,omitempty"` +} + +// NodeConfigStatusApplyConfiguration constructs an declarative configuration of the NodeConfigStatus type for use with +// apply. +func NodeConfigStatus() *NodeConfigStatusApplyConfiguration { + return &NodeConfigStatusApplyConfiguration{} +} + +// WithAssigned sets the Assigned field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Assigned field is set to the value of the last call. +func (b *NodeConfigStatusApplyConfiguration) WithAssigned(value *NodeConfigSourceApplyConfiguration) *NodeConfigStatusApplyConfiguration { + b.Assigned = value + return b +} + +// WithActive sets the Active field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Active field is set to the value of the last call. +func (b *NodeConfigStatusApplyConfiguration) WithActive(value *NodeConfigSourceApplyConfiguration) *NodeConfigStatusApplyConfiguration { + b.Active = value + return b +} + +// WithLastKnownGood sets the LastKnownGood field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastKnownGood field is set to the value of the last call. +func (b *NodeConfigStatusApplyConfiguration) WithLastKnownGood(value *NodeConfigSourceApplyConfiguration) *NodeConfigStatusApplyConfiguration { + b.LastKnownGood = value + return b +} + +// WithError sets the Error field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Error field is set to the value of the last call. +func (b *NodeConfigStatusApplyConfiguration) WithError(value string) *NodeConfigStatusApplyConfiguration { + b.Error = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodedaemonendpoints.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodedaemonendpoints.go new file mode 100644 index 0000000000..4cabc7f526 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodedaemonendpoints.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// NodeDaemonEndpointsApplyConfiguration represents an declarative configuration of the NodeDaemonEndpoints type for use +// with apply. +type NodeDaemonEndpointsApplyConfiguration struct { + KubeletEndpoint *DaemonEndpointApplyConfiguration `json:"kubeletEndpoint,omitempty"` +} + +// NodeDaemonEndpointsApplyConfiguration constructs an declarative configuration of the NodeDaemonEndpoints type for use with +// apply. +func NodeDaemonEndpoints() *NodeDaemonEndpointsApplyConfiguration { + return &NodeDaemonEndpointsApplyConfiguration{} +} + +// WithKubeletEndpoint sets the KubeletEndpoint field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the KubeletEndpoint field is set to the value of the last call. +func (b *NodeDaemonEndpointsApplyConfiguration) WithKubeletEndpoint(value *DaemonEndpointApplyConfiguration) *NodeDaemonEndpointsApplyConfiguration { + b.KubeletEndpoint = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselector.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselector.go new file mode 100644 index 0000000000..5489097f5a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselector.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// NodeSelectorApplyConfiguration represents an declarative configuration of the NodeSelector type for use +// with apply. +type NodeSelectorApplyConfiguration struct { + NodeSelectorTerms []NodeSelectorTermApplyConfiguration `json:"nodeSelectorTerms,omitempty"` +} + +// NodeSelectorApplyConfiguration constructs an declarative configuration of the NodeSelector type for use with +// apply. +func NodeSelector() *NodeSelectorApplyConfiguration { + return &NodeSelectorApplyConfiguration{} +} + +// WithNodeSelectorTerms adds the given value to the NodeSelectorTerms field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the NodeSelectorTerms field. +func (b *NodeSelectorApplyConfiguration) WithNodeSelectorTerms(values ...*NodeSelectorTermApplyConfiguration) *NodeSelectorApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithNodeSelectorTerms") + } + b.NodeSelectorTerms = append(b.NodeSelectorTerms, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorrequirement.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorrequirement.go new file mode 100644 index 0000000000..a6e43e607e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorrequirement.go @@ -0,0 +1,63 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// NodeSelectorRequirementApplyConfiguration represents an declarative configuration of the NodeSelectorRequirement type for use +// with apply. +type NodeSelectorRequirementApplyConfiguration struct { + Key *string `json:"key,omitempty"` + Operator *v1.NodeSelectorOperator `json:"operator,omitempty"` + Values []string `json:"values,omitempty"` +} + +// NodeSelectorRequirementApplyConfiguration constructs an declarative configuration of the NodeSelectorRequirement type for use with +// apply. +func NodeSelectorRequirement() *NodeSelectorRequirementApplyConfiguration { + return &NodeSelectorRequirementApplyConfiguration{} +} + +// WithKey sets the Key field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Key field is set to the value of the last call. +func (b *NodeSelectorRequirementApplyConfiguration) WithKey(value string) *NodeSelectorRequirementApplyConfiguration { + b.Key = &value + return b +} + +// WithOperator sets the Operator field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Operator field is set to the value of the last call. +func (b *NodeSelectorRequirementApplyConfiguration) WithOperator(value v1.NodeSelectorOperator) *NodeSelectorRequirementApplyConfiguration { + b.Operator = &value + return b +} + +// WithValues adds the given value to the Values field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Values field. +func (b *NodeSelectorRequirementApplyConfiguration) WithValues(values ...string) *NodeSelectorRequirementApplyConfiguration { + for i := range values { + b.Values = append(b.Values, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorterm.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorterm.go new file mode 100644 index 0000000000..13b3ddbc1b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorterm.go @@ -0,0 +1,58 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// NodeSelectorTermApplyConfiguration represents an declarative configuration of the NodeSelectorTerm type for use +// with apply. +type NodeSelectorTermApplyConfiguration struct { + MatchExpressions []NodeSelectorRequirementApplyConfiguration `json:"matchExpressions,omitempty"` + MatchFields []NodeSelectorRequirementApplyConfiguration `json:"matchFields,omitempty"` +} + +// NodeSelectorTermApplyConfiguration constructs an declarative configuration of the NodeSelectorTerm type for use with +// apply. +func NodeSelectorTerm() *NodeSelectorTermApplyConfiguration { + return &NodeSelectorTermApplyConfiguration{} +} + +// WithMatchExpressions adds the given value to the MatchExpressions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the MatchExpressions field. +func (b *NodeSelectorTermApplyConfiguration) WithMatchExpressions(values ...*NodeSelectorRequirementApplyConfiguration) *NodeSelectorTermApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithMatchExpressions") + } + b.MatchExpressions = append(b.MatchExpressions, *values[i]) + } + return b +} + +// WithMatchFields adds the given value to the MatchFields field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the MatchFields field. +func (b *NodeSelectorTermApplyConfiguration) WithMatchFields(values ...*NodeSelectorRequirementApplyConfiguration) *NodeSelectorTermApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithMatchFields") + } + b.MatchFields = append(b.MatchFields, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodespec.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodespec.go new file mode 100644 index 0000000000..63b61078d0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodespec.go @@ -0,0 +1,100 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// NodeSpecApplyConfiguration represents an declarative configuration of the NodeSpec type for use +// with apply. +type NodeSpecApplyConfiguration struct { + PodCIDR *string `json:"podCIDR,omitempty"` + PodCIDRs []string `json:"podCIDRs,omitempty"` + ProviderID *string `json:"providerID,omitempty"` + Unschedulable *bool `json:"unschedulable,omitempty"` + Taints []TaintApplyConfiguration `json:"taints,omitempty"` + ConfigSource *NodeConfigSourceApplyConfiguration `json:"configSource,omitempty"` + DoNotUseExternalID *string `json:"externalID,omitempty"` +} + +// NodeSpecApplyConfiguration constructs an declarative configuration of the NodeSpec type for use with +// apply. +func NodeSpec() *NodeSpecApplyConfiguration { + return &NodeSpecApplyConfiguration{} +} + +// WithPodCIDR sets the PodCIDR field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodCIDR field is set to the value of the last call. +func (b *NodeSpecApplyConfiguration) WithPodCIDR(value string) *NodeSpecApplyConfiguration { + b.PodCIDR = &value + return b +} + +// WithPodCIDRs adds the given value to the PodCIDRs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the PodCIDRs field. +func (b *NodeSpecApplyConfiguration) WithPodCIDRs(values ...string) *NodeSpecApplyConfiguration { + for i := range values { + b.PodCIDRs = append(b.PodCIDRs, values[i]) + } + return b +} + +// WithProviderID sets the ProviderID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProviderID field is set to the value of the last call. +func (b *NodeSpecApplyConfiguration) WithProviderID(value string) *NodeSpecApplyConfiguration { + b.ProviderID = &value + return b +} + +// WithUnschedulable sets the Unschedulable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Unschedulable field is set to the value of the last call. +func (b *NodeSpecApplyConfiguration) WithUnschedulable(value bool) *NodeSpecApplyConfiguration { + b.Unschedulable = &value + return b +} + +// WithTaints adds the given value to the Taints field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Taints field. +func (b *NodeSpecApplyConfiguration) WithTaints(values ...*TaintApplyConfiguration) *NodeSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTaints") + } + b.Taints = append(b.Taints, *values[i]) + } + return b +} + +// WithConfigSource sets the ConfigSource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ConfigSource field is set to the value of the last call. +func (b *NodeSpecApplyConfiguration) WithConfigSource(value *NodeConfigSourceApplyConfiguration) *NodeSpecApplyConfiguration { + b.ConfigSource = value + return b +} + +// WithDoNotUseExternalID sets the DoNotUseExternalID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DoNotUseExternalID field is set to the value of the last call. +func (b *NodeSpecApplyConfiguration) WithDoNotUseExternalID(value string) *NodeSpecApplyConfiguration { + b.DoNotUseExternalID = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodestatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodestatus.go new file mode 100644 index 0000000000..aa3603f4fc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodestatus.go @@ -0,0 +1,155 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// NodeStatusApplyConfiguration represents an declarative configuration of the NodeStatus type for use +// with apply. +type NodeStatusApplyConfiguration struct { + Capacity *v1.ResourceList `json:"capacity,omitempty"` + Allocatable *v1.ResourceList `json:"allocatable,omitempty"` + Phase *v1.NodePhase `json:"phase,omitempty"` + Conditions []NodeConditionApplyConfiguration `json:"conditions,omitempty"` + Addresses []NodeAddressApplyConfiguration `json:"addresses,omitempty"` + DaemonEndpoints *NodeDaemonEndpointsApplyConfiguration `json:"daemonEndpoints,omitempty"` + NodeInfo *NodeSystemInfoApplyConfiguration `json:"nodeInfo,omitempty"` + Images []ContainerImageApplyConfiguration `json:"images,omitempty"` + VolumesInUse []v1.UniqueVolumeName `json:"volumesInUse,omitempty"` + VolumesAttached []AttachedVolumeApplyConfiguration `json:"volumesAttached,omitempty"` + Config *NodeConfigStatusApplyConfiguration `json:"config,omitempty"` +} + +// NodeStatusApplyConfiguration constructs an declarative configuration of the NodeStatus type for use with +// apply. +func NodeStatus() *NodeStatusApplyConfiguration { + return &NodeStatusApplyConfiguration{} +} + +// WithCapacity sets the Capacity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Capacity field is set to the value of the last call. +func (b *NodeStatusApplyConfiguration) WithCapacity(value v1.ResourceList) *NodeStatusApplyConfiguration { + b.Capacity = &value + return b +} + +// WithAllocatable sets the Allocatable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Allocatable field is set to the value of the last call. +func (b *NodeStatusApplyConfiguration) WithAllocatable(value v1.ResourceList) *NodeStatusApplyConfiguration { + b.Allocatable = &value + return b +} + +// WithPhase sets the Phase field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Phase field is set to the value of the last call. +func (b *NodeStatusApplyConfiguration) WithPhase(value v1.NodePhase) *NodeStatusApplyConfiguration { + b.Phase = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *NodeStatusApplyConfiguration) WithConditions(values ...*NodeConditionApplyConfiguration) *NodeStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + +// WithAddresses adds the given value to the Addresses field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Addresses field. +func (b *NodeStatusApplyConfiguration) WithAddresses(values ...*NodeAddressApplyConfiguration) *NodeStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithAddresses") + } + b.Addresses = append(b.Addresses, *values[i]) + } + return b +} + +// WithDaemonEndpoints sets the DaemonEndpoints field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DaemonEndpoints field is set to the value of the last call. +func (b *NodeStatusApplyConfiguration) WithDaemonEndpoints(value *NodeDaemonEndpointsApplyConfiguration) *NodeStatusApplyConfiguration { + b.DaemonEndpoints = value + return b +} + +// WithNodeInfo sets the NodeInfo field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeInfo field is set to the value of the last call. +func (b *NodeStatusApplyConfiguration) WithNodeInfo(value *NodeSystemInfoApplyConfiguration) *NodeStatusApplyConfiguration { + b.NodeInfo = value + return b +} + +// WithImages adds the given value to the Images field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Images field. +func (b *NodeStatusApplyConfiguration) WithImages(values ...*ContainerImageApplyConfiguration) *NodeStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithImages") + } + b.Images = append(b.Images, *values[i]) + } + return b +} + +// WithVolumesInUse adds the given value to the VolumesInUse field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumesInUse field. +func (b *NodeStatusApplyConfiguration) WithVolumesInUse(values ...v1.UniqueVolumeName) *NodeStatusApplyConfiguration { + for i := range values { + b.VolumesInUse = append(b.VolumesInUse, values[i]) + } + return b +} + +// WithVolumesAttached adds the given value to the VolumesAttached field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumesAttached field. +func (b *NodeStatusApplyConfiguration) WithVolumesAttached(values ...*AttachedVolumeApplyConfiguration) *NodeStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithVolumesAttached") + } + b.VolumesAttached = append(b.VolumesAttached, *values[i]) + } + return b +} + +// WithConfig sets the Config field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Config field is set to the value of the last call. +func (b *NodeStatusApplyConfiguration) WithConfig(value *NodeConfigStatusApplyConfiguration) *NodeStatusApplyConfiguration { + b.Config = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodesysteminfo.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodesysteminfo.go new file mode 100644 index 0000000000..2634ea9842 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodesysteminfo.go @@ -0,0 +1,120 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// NodeSystemInfoApplyConfiguration represents an declarative configuration of the NodeSystemInfo type for use +// with apply. +type NodeSystemInfoApplyConfiguration struct { + MachineID *string `json:"machineID,omitempty"` + SystemUUID *string `json:"systemUUID,omitempty"` + BootID *string `json:"bootID,omitempty"` + KernelVersion *string `json:"kernelVersion,omitempty"` + OSImage *string `json:"osImage,omitempty"` + ContainerRuntimeVersion *string `json:"containerRuntimeVersion,omitempty"` + KubeletVersion *string `json:"kubeletVersion,omitempty"` + KubeProxyVersion *string `json:"kubeProxyVersion,omitempty"` + OperatingSystem *string `json:"operatingSystem,omitempty"` + Architecture *string `json:"architecture,omitempty"` +} + +// NodeSystemInfoApplyConfiguration constructs an declarative configuration of the NodeSystemInfo type for use with +// apply. +func NodeSystemInfo() *NodeSystemInfoApplyConfiguration { + return &NodeSystemInfoApplyConfiguration{} +} + +// WithMachineID sets the MachineID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MachineID field is set to the value of the last call. +func (b *NodeSystemInfoApplyConfiguration) WithMachineID(value string) *NodeSystemInfoApplyConfiguration { + b.MachineID = &value + return b +} + +// WithSystemUUID sets the SystemUUID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SystemUUID field is set to the value of the last call. +func (b *NodeSystemInfoApplyConfiguration) WithSystemUUID(value string) *NodeSystemInfoApplyConfiguration { + b.SystemUUID = &value + return b +} + +// WithBootID sets the BootID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the BootID field is set to the value of the last call. +func (b *NodeSystemInfoApplyConfiguration) WithBootID(value string) *NodeSystemInfoApplyConfiguration { + b.BootID = &value + return b +} + +// WithKernelVersion sets the KernelVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the KernelVersion field is set to the value of the last call. +func (b *NodeSystemInfoApplyConfiguration) WithKernelVersion(value string) *NodeSystemInfoApplyConfiguration { + b.KernelVersion = &value + return b +} + +// WithOSImage sets the OSImage field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the OSImage field is set to the value of the last call. +func (b *NodeSystemInfoApplyConfiguration) WithOSImage(value string) *NodeSystemInfoApplyConfiguration { + b.OSImage = &value + return b +} + +// WithContainerRuntimeVersion sets the ContainerRuntimeVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ContainerRuntimeVersion field is set to the value of the last call. +func (b *NodeSystemInfoApplyConfiguration) WithContainerRuntimeVersion(value string) *NodeSystemInfoApplyConfiguration { + b.ContainerRuntimeVersion = &value + return b +} + +// WithKubeletVersion sets the KubeletVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the KubeletVersion field is set to the value of the last call. +func (b *NodeSystemInfoApplyConfiguration) WithKubeletVersion(value string) *NodeSystemInfoApplyConfiguration { + b.KubeletVersion = &value + return b +} + +// WithKubeProxyVersion sets the KubeProxyVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the KubeProxyVersion field is set to the value of the last call. +func (b *NodeSystemInfoApplyConfiguration) WithKubeProxyVersion(value string) *NodeSystemInfoApplyConfiguration { + b.KubeProxyVersion = &value + return b +} + +// WithOperatingSystem sets the OperatingSystem field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the OperatingSystem field is set to the value of the last call. +func (b *NodeSystemInfoApplyConfiguration) WithOperatingSystem(value string) *NodeSystemInfoApplyConfiguration { + b.OperatingSystem = &value + return b +} + +// WithArchitecture sets the Architecture field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Architecture field is set to the value of the last call. +func (b *NodeSystemInfoApplyConfiguration) WithArchitecture(value string) *NodeSystemInfoApplyConfiguration { + b.Architecture = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/objectfieldselector.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/objectfieldselector.go new file mode 100644 index 0000000000..0c2402b3c7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/objectfieldselector.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ObjectFieldSelectorApplyConfiguration represents an declarative configuration of the ObjectFieldSelector type for use +// with apply. +type ObjectFieldSelectorApplyConfiguration struct { + APIVersion *string `json:"apiVersion,omitempty"` + FieldPath *string `json:"fieldPath,omitempty"` +} + +// ObjectFieldSelectorApplyConfiguration constructs an declarative configuration of the ObjectFieldSelector type for use with +// apply. +func ObjectFieldSelector() *ObjectFieldSelectorApplyConfiguration { + return &ObjectFieldSelectorApplyConfiguration{} +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ObjectFieldSelectorApplyConfiguration) WithAPIVersion(value string) *ObjectFieldSelectorApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithFieldPath sets the FieldPath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FieldPath field is set to the value of the last call. +func (b *ObjectFieldSelectorApplyConfiguration) WithFieldPath(value string) *ObjectFieldSelectorApplyConfiguration { + b.FieldPath = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/objectreference.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/objectreference.go new file mode 100644 index 0000000000..667fa84a81 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/objectreference.go @@ -0,0 +1,97 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + types "k8s.io/apimachinery/pkg/types" +) + +// ObjectReferenceApplyConfiguration represents an declarative configuration of the ObjectReference type for use +// with apply. +type ObjectReferenceApplyConfiguration struct { + Kind *string `json:"kind,omitempty"` + Namespace *string `json:"namespace,omitempty"` + Name *string `json:"name,omitempty"` + UID *types.UID `json:"uid,omitempty"` + APIVersion *string `json:"apiVersion,omitempty"` + ResourceVersion *string `json:"resourceVersion,omitempty"` + FieldPath *string `json:"fieldPath,omitempty"` +} + +// ObjectReferenceApplyConfiguration constructs an declarative configuration of the ObjectReference type for use with +// apply. +func ObjectReference() *ObjectReferenceApplyConfiguration { + return &ObjectReferenceApplyConfiguration{} +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ObjectReferenceApplyConfiguration) WithKind(value string) *ObjectReferenceApplyConfiguration { + b.Kind = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ObjectReferenceApplyConfiguration) WithNamespace(value string) *ObjectReferenceApplyConfiguration { + b.Namespace = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ObjectReferenceApplyConfiguration) WithName(value string) *ObjectReferenceApplyConfiguration { + b.Name = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ObjectReferenceApplyConfiguration) WithUID(value types.UID) *ObjectReferenceApplyConfiguration { + b.UID = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ObjectReferenceApplyConfiguration) WithAPIVersion(value string) *ObjectReferenceApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ObjectReferenceApplyConfiguration) WithResourceVersion(value string) *ObjectReferenceApplyConfiguration { + b.ResourceVersion = &value + return b +} + +// WithFieldPath sets the FieldPath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FieldPath field is set to the value of the last call. +func (b *ObjectReferenceApplyConfiguration) WithFieldPath(value string) *ObjectReferenceApplyConfiguration { + b.FieldPath = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolume.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolume.go new file mode 100644 index 0000000000..a5df345e15 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolume.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PersistentVolumeApplyConfiguration represents an declarative configuration of the PersistentVolume type for use +// with apply. +type PersistentVolumeApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *PersistentVolumeSpecApplyConfiguration `json:"spec,omitempty"` + Status *PersistentVolumeStatusApplyConfiguration `json:"status,omitempty"` +} + +// PersistentVolume constructs an declarative configuration of the PersistentVolume type for use with +// apply. +func PersistentVolume(name string) *PersistentVolumeApplyConfiguration { + b := &PersistentVolumeApplyConfiguration{} + b.WithName(name) + b.WithKind("PersistentVolume") + b.WithAPIVersion("v1") + return b +} + +// ExtractPersistentVolume extracts the applied configuration owned by fieldManager from +// persistentVolume. If no managedFields are found in persistentVolume for fieldManager, a +// PersistentVolumeApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// persistentVolume must be a unmodified PersistentVolume API object that was retrieved from the Kubernetes API. +// ExtractPersistentVolume provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPersistentVolume(persistentVolume *apicorev1.PersistentVolume, fieldManager string) (*PersistentVolumeApplyConfiguration, error) { + b := &PersistentVolumeApplyConfiguration{} + err := managedfields.ExtractInto(persistentVolume, internal.Parser().Type("io.k8s.api.core.v1.PersistentVolume"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(persistentVolume.Name) + + b.WithKind("PersistentVolume") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithKind(value string) *PersistentVolumeApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithAPIVersion(value string) *PersistentVolumeApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithName(value string) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithGenerateName(value string) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithNamespace(value string) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithSelfLink(value string) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithUID(value types.UID) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithResourceVersion(value string) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithGeneration(value int64) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PersistentVolumeApplyConfiguration) WithLabels(entries map[string]string) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PersistentVolumeApplyConfiguration) WithAnnotations(entries map[string]string) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PersistentVolumeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PersistentVolumeApplyConfiguration) WithFinalizers(values ...string) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithClusterName(value string) *PersistentVolumeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PersistentVolumeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithSpec(value *PersistentVolumeSpecApplyConfiguration) *PersistentVolumeApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *PersistentVolumeApplyConfiguration) WithStatus(value *PersistentVolumeStatusApplyConfiguration) *PersistentVolumeApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaim.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaim.go new file mode 100644 index 0000000000..229b5d4816 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaim.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PersistentVolumeClaimApplyConfiguration represents an declarative configuration of the PersistentVolumeClaim type for use +// with apply. +type PersistentVolumeClaimApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *PersistentVolumeClaimSpecApplyConfiguration `json:"spec,omitempty"` + Status *PersistentVolumeClaimStatusApplyConfiguration `json:"status,omitempty"` +} + +// PersistentVolumeClaim constructs an declarative configuration of the PersistentVolumeClaim type for use with +// apply. +func PersistentVolumeClaim(name, namespace string) *PersistentVolumeClaimApplyConfiguration { + b := &PersistentVolumeClaimApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("PersistentVolumeClaim") + b.WithAPIVersion("v1") + return b +} + +// ExtractPersistentVolumeClaim extracts the applied configuration owned by fieldManager from +// persistentVolumeClaim. If no managedFields are found in persistentVolumeClaim for fieldManager, a +// PersistentVolumeClaimApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// persistentVolumeClaim must be a unmodified PersistentVolumeClaim API object that was retrieved from the Kubernetes API. +// ExtractPersistentVolumeClaim provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPersistentVolumeClaim(persistentVolumeClaim *apicorev1.PersistentVolumeClaim, fieldManager string) (*PersistentVolumeClaimApplyConfiguration, error) { + b := &PersistentVolumeClaimApplyConfiguration{} + err := managedfields.ExtractInto(persistentVolumeClaim, internal.Parser().Type("io.k8s.api.core.v1.PersistentVolumeClaim"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(persistentVolumeClaim.Name) + b.WithNamespace(persistentVolumeClaim.Namespace) + + b.WithKind("PersistentVolumeClaim") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithKind(value string) *PersistentVolumeClaimApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithAPIVersion(value string) *PersistentVolumeClaimApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithName(value string) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithGenerateName(value string) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithNamespace(value string) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithSelfLink(value string) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithUID(value types.UID) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithResourceVersion(value string) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithGeneration(value int64) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PersistentVolumeClaimApplyConfiguration) WithLabels(entries map[string]string) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PersistentVolumeClaimApplyConfiguration) WithAnnotations(entries map[string]string) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PersistentVolumeClaimApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PersistentVolumeClaimApplyConfiguration) WithFinalizers(values ...string) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithClusterName(value string) *PersistentVolumeClaimApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PersistentVolumeClaimApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithSpec(value *PersistentVolumeClaimSpecApplyConfiguration) *PersistentVolumeClaimApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *PersistentVolumeClaimApplyConfiguration) WithStatus(value *PersistentVolumeClaimStatusApplyConfiguration) *PersistentVolumeClaimApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimcondition.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimcondition.go new file mode 100644 index 0000000000..65449e92eb --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimcondition.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// PersistentVolumeClaimConditionApplyConfiguration represents an declarative configuration of the PersistentVolumeClaimCondition type for use +// with apply. +type PersistentVolumeClaimConditionApplyConfiguration struct { + Type *v1.PersistentVolumeClaimConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastProbeTime *metav1.Time `json:"lastProbeTime,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// PersistentVolumeClaimConditionApplyConfiguration constructs an declarative configuration of the PersistentVolumeClaimCondition type for use with +// apply. +func PersistentVolumeClaimCondition() *PersistentVolumeClaimConditionApplyConfiguration { + return &PersistentVolumeClaimConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *PersistentVolumeClaimConditionApplyConfiguration) WithType(value v1.PersistentVolumeClaimConditionType) *PersistentVolumeClaimConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *PersistentVolumeClaimConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *PersistentVolumeClaimConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastProbeTime sets the LastProbeTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastProbeTime field is set to the value of the last call. +func (b *PersistentVolumeClaimConditionApplyConfiguration) WithLastProbeTime(value metav1.Time) *PersistentVolumeClaimConditionApplyConfiguration { + b.LastProbeTime = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *PersistentVolumeClaimConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *PersistentVolumeClaimConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *PersistentVolumeClaimConditionApplyConfiguration) WithReason(value string) *PersistentVolumeClaimConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *PersistentVolumeClaimConditionApplyConfiguration) WithMessage(value string) *PersistentVolumeClaimConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimspec.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimspec.go new file mode 100644 index 0000000000..ac4d64c711 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimspec.go @@ -0,0 +1,100 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PersistentVolumeClaimSpecApplyConfiguration represents an declarative configuration of the PersistentVolumeClaimSpec type for use +// with apply. +type PersistentVolumeClaimSpecApplyConfiguration struct { + AccessModes []v1.PersistentVolumeAccessMode `json:"accessModes,omitempty"` + Selector *metav1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Resources *ResourceRequirementsApplyConfiguration `json:"resources,omitempty"` + VolumeName *string `json:"volumeName,omitempty"` + StorageClassName *string `json:"storageClassName,omitempty"` + VolumeMode *v1.PersistentVolumeMode `json:"volumeMode,omitempty"` + DataSource *TypedLocalObjectReferenceApplyConfiguration `json:"dataSource,omitempty"` +} + +// PersistentVolumeClaimSpecApplyConfiguration constructs an declarative configuration of the PersistentVolumeClaimSpec type for use with +// apply. +func PersistentVolumeClaimSpec() *PersistentVolumeClaimSpecApplyConfiguration { + return &PersistentVolumeClaimSpecApplyConfiguration{} +} + +// WithAccessModes adds the given value to the AccessModes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AccessModes field. +func (b *PersistentVolumeClaimSpecApplyConfiguration) WithAccessModes(values ...v1.PersistentVolumeAccessMode) *PersistentVolumeClaimSpecApplyConfiguration { + for i := range values { + b.AccessModes = append(b.AccessModes, values[i]) + } + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *PersistentVolumeClaimSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithResources sets the Resources field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resources field is set to the value of the last call. +func (b *PersistentVolumeClaimSpecApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration { + b.Resources = value + return b +} + +// WithVolumeName sets the VolumeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeName field is set to the value of the last call. +func (b *PersistentVolumeClaimSpecApplyConfiguration) WithVolumeName(value string) *PersistentVolumeClaimSpecApplyConfiguration { + b.VolumeName = &value + return b +} + +// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageClassName field is set to the value of the last call. +func (b *PersistentVolumeClaimSpecApplyConfiguration) WithStorageClassName(value string) *PersistentVolumeClaimSpecApplyConfiguration { + b.StorageClassName = &value + return b +} + +// WithVolumeMode sets the VolumeMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeMode field is set to the value of the last call. +func (b *PersistentVolumeClaimSpecApplyConfiguration) WithVolumeMode(value v1.PersistentVolumeMode) *PersistentVolumeClaimSpecApplyConfiguration { + b.VolumeMode = &value + return b +} + +// WithDataSource sets the DataSource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DataSource field is set to the value of the last call. +func (b *PersistentVolumeClaimSpecApplyConfiguration) WithDataSource(value *TypedLocalObjectReferenceApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration { + b.DataSource = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimstatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimstatus.go new file mode 100644 index 0000000000..711651e0bc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimstatus.go @@ -0,0 +1,77 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// PersistentVolumeClaimStatusApplyConfiguration represents an declarative configuration of the PersistentVolumeClaimStatus type for use +// with apply. +type PersistentVolumeClaimStatusApplyConfiguration struct { + Phase *v1.PersistentVolumeClaimPhase `json:"phase,omitempty"` + AccessModes []v1.PersistentVolumeAccessMode `json:"accessModes,omitempty"` + Capacity *v1.ResourceList `json:"capacity,omitempty"` + Conditions []PersistentVolumeClaimConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// PersistentVolumeClaimStatusApplyConfiguration constructs an declarative configuration of the PersistentVolumeClaimStatus type for use with +// apply. +func PersistentVolumeClaimStatus() *PersistentVolumeClaimStatusApplyConfiguration { + return &PersistentVolumeClaimStatusApplyConfiguration{} +} + +// WithPhase sets the Phase field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Phase field is set to the value of the last call. +func (b *PersistentVolumeClaimStatusApplyConfiguration) WithPhase(value v1.PersistentVolumeClaimPhase) *PersistentVolumeClaimStatusApplyConfiguration { + b.Phase = &value + return b +} + +// WithAccessModes adds the given value to the AccessModes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AccessModes field. +func (b *PersistentVolumeClaimStatusApplyConfiguration) WithAccessModes(values ...v1.PersistentVolumeAccessMode) *PersistentVolumeClaimStatusApplyConfiguration { + for i := range values { + b.AccessModes = append(b.AccessModes, values[i]) + } + return b +} + +// WithCapacity sets the Capacity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Capacity field is set to the value of the last call. +func (b *PersistentVolumeClaimStatusApplyConfiguration) WithCapacity(value v1.ResourceList) *PersistentVolumeClaimStatusApplyConfiguration { + b.Capacity = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *PersistentVolumeClaimStatusApplyConfiguration) WithConditions(values ...*PersistentVolumeClaimConditionApplyConfiguration) *PersistentVolumeClaimStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimtemplate.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimtemplate.go new file mode 100644 index 0000000000..ac1b6bf015 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimtemplate.go @@ -0,0 +1,206 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PersistentVolumeClaimTemplateApplyConfiguration represents an declarative configuration of the PersistentVolumeClaimTemplate type for use +// with apply. +type PersistentVolumeClaimTemplateApplyConfiguration struct { + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *PersistentVolumeClaimSpecApplyConfiguration `json:"spec,omitempty"` +} + +// PersistentVolumeClaimTemplateApplyConfiguration constructs an declarative configuration of the PersistentVolumeClaimTemplate type for use with +// apply. +func PersistentVolumeClaimTemplate() *PersistentVolumeClaimTemplateApplyConfiguration { + return &PersistentVolumeClaimTemplateApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithName(value string) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithGenerateName(value string) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithNamespace(value string) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithSelfLink(value string) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithUID(value types.UID) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithResourceVersion(value string) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithGeneration(value int64) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithLabels(entries map[string]string) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithAnnotations(entries map[string]string) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithFinalizers(values ...string) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithClusterName(value string) *PersistentVolumeClaimTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PersistentVolumeClaimTemplateApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *PersistentVolumeClaimTemplateApplyConfiguration) WithSpec(value *PersistentVolumeClaimSpecApplyConfiguration) *PersistentVolumeClaimTemplateApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimvolumesource.go new file mode 100644 index 0000000000..a498fa6a5e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimvolumesource.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// PersistentVolumeClaimVolumeSourceApplyConfiguration represents an declarative configuration of the PersistentVolumeClaimVolumeSource type for use +// with apply. +type PersistentVolumeClaimVolumeSourceApplyConfiguration struct { + ClaimName *string `json:"claimName,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// PersistentVolumeClaimVolumeSourceApplyConfiguration constructs an declarative configuration of the PersistentVolumeClaimVolumeSource type for use with +// apply. +func PersistentVolumeClaimVolumeSource() *PersistentVolumeClaimVolumeSourceApplyConfiguration { + return &PersistentVolumeClaimVolumeSourceApplyConfiguration{} +} + +// WithClaimName sets the ClaimName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClaimName field is set to the value of the last call. +func (b *PersistentVolumeClaimVolumeSourceApplyConfiguration) WithClaimName(value string) *PersistentVolumeClaimVolumeSourceApplyConfiguration { + b.ClaimName = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *PersistentVolumeClaimVolumeSourceApplyConfiguration) WithReadOnly(value bool) *PersistentVolumeClaimVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumesource.go new file mode 100644 index 0000000000..0576e7dd31 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumesource.go @@ -0,0 +1,228 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// PersistentVolumeSourceApplyConfiguration represents an declarative configuration of the PersistentVolumeSource type for use +// with apply. +type PersistentVolumeSourceApplyConfiguration struct { + GCEPersistentDisk *GCEPersistentDiskVolumeSourceApplyConfiguration `json:"gcePersistentDisk,omitempty"` + AWSElasticBlockStore *AWSElasticBlockStoreVolumeSourceApplyConfiguration `json:"awsElasticBlockStore,omitempty"` + HostPath *HostPathVolumeSourceApplyConfiguration `json:"hostPath,omitempty"` + Glusterfs *GlusterfsPersistentVolumeSourceApplyConfiguration `json:"glusterfs,omitempty"` + NFS *NFSVolumeSourceApplyConfiguration `json:"nfs,omitempty"` + RBD *RBDPersistentVolumeSourceApplyConfiguration `json:"rbd,omitempty"` + ISCSI *ISCSIPersistentVolumeSourceApplyConfiguration `json:"iscsi,omitempty"` + Cinder *CinderPersistentVolumeSourceApplyConfiguration `json:"cinder,omitempty"` + CephFS *CephFSPersistentVolumeSourceApplyConfiguration `json:"cephfs,omitempty"` + FC *FCVolumeSourceApplyConfiguration `json:"fc,omitempty"` + Flocker *FlockerVolumeSourceApplyConfiguration `json:"flocker,omitempty"` + FlexVolume *FlexPersistentVolumeSourceApplyConfiguration `json:"flexVolume,omitempty"` + AzureFile *AzureFilePersistentVolumeSourceApplyConfiguration `json:"azureFile,omitempty"` + VsphereVolume *VsphereVirtualDiskVolumeSourceApplyConfiguration `json:"vsphereVolume,omitempty"` + Quobyte *QuobyteVolumeSourceApplyConfiguration `json:"quobyte,omitempty"` + AzureDisk *AzureDiskVolumeSourceApplyConfiguration `json:"azureDisk,omitempty"` + PhotonPersistentDisk *PhotonPersistentDiskVolumeSourceApplyConfiguration `json:"photonPersistentDisk,omitempty"` + PortworxVolume *PortworxVolumeSourceApplyConfiguration `json:"portworxVolume,omitempty"` + ScaleIO *ScaleIOPersistentVolumeSourceApplyConfiguration `json:"scaleIO,omitempty"` + Local *LocalVolumeSourceApplyConfiguration `json:"local,omitempty"` + StorageOS *StorageOSPersistentVolumeSourceApplyConfiguration `json:"storageos,omitempty"` + CSI *CSIPersistentVolumeSourceApplyConfiguration `json:"csi,omitempty"` +} + +// PersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the PersistentVolumeSource type for use with +// apply. +func PersistentVolumeSource() *PersistentVolumeSourceApplyConfiguration { + return &PersistentVolumeSourceApplyConfiguration{} +} + +// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GCEPersistentDisk field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.GCEPersistentDisk = value + return b +} + +// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.AWSElasticBlockStore = value + return b +} + +// WithHostPath sets the HostPath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostPath field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.HostPath = value + return b +} + +// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Glusterfs field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithGlusterfs(value *GlusterfsPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.Glusterfs = value + return b +} + +// WithNFS sets the NFS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NFS field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.NFS = value + return b +} + +// WithRBD sets the RBD field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RBD field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithRBD(value *RBDPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.RBD = value + return b +} + +// WithISCSI sets the ISCSI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ISCSI field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithISCSI(value *ISCSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.ISCSI = value + return b +} + +// WithCinder sets the Cinder field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Cinder field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithCinder(value *CinderPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.Cinder = value + return b +} + +// WithCephFS sets the CephFS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CephFS field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithCephFS(value *CephFSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.CephFS = value + return b +} + +// WithFC sets the FC field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FC field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.FC = value + return b +} + +// WithFlocker sets the Flocker field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Flocker field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.Flocker = value + return b +} + +// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FlexVolume field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithFlexVolume(value *FlexPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.FlexVolume = value + return b +} + +// WithAzureFile sets the AzureFile field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AzureFile field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithAzureFile(value *AzureFilePersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.AzureFile = value + return b +} + +// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VsphereVolume field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.VsphereVolume = value + return b +} + +// WithQuobyte sets the Quobyte field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Quobyte field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.Quobyte = value + return b +} + +// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AzureDisk field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.AzureDisk = value + return b +} + +// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.PhotonPersistentDisk = value + return b +} + +// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PortworxVolume field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.PortworxVolume = value + return b +} + +// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ScaleIO field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithScaleIO(value *ScaleIOPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.ScaleIO = value + return b +} + +// WithLocal sets the Local field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Local field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithLocal(value *LocalVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.Local = value + return b +} + +// WithStorageOS sets the StorageOS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageOS field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithStorageOS(value *StorageOSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.StorageOS = value + return b +} + +// WithCSI sets the CSI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CSI field is set to the value of the last call. +func (b *PersistentVolumeSourceApplyConfiguration) WithCSI(value *CSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration { + b.CSI = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumespec.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumespec.go new file mode 100644 index 0000000000..b3a72b1c3e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumespec.go @@ -0,0 +1,287 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// PersistentVolumeSpecApplyConfiguration represents an declarative configuration of the PersistentVolumeSpec type for use +// with apply. +type PersistentVolumeSpecApplyConfiguration struct { + Capacity *v1.ResourceList `json:"capacity,omitempty"` + PersistentVolumeSourceApplyConfiguration `json:",inline"` + AccessModes []v1.PersistentVolumeAccessMode `json:"accessModes,omitempty"` + ClaimRef *ObjectReferenceApplyConfiguration `json:"claimRef,omitempty"` + PersistentVolumeReclaimPolicy *v1.PersistentVolumeReclaimPolicy `json:"persistentVolumeReclaimPolicy,omitempty"` + StorageClassName *string `json:"storageClassName,omitempty"` + MountOptions []string `json:"mountOptions,omitempty"` + VolumeMode *v1.PersistentVolumeMode `json:"volumeMode,omitempty"` + NodeAffinity *VolumeNodeAffinityApplyConfiguration `json:"nodeAffinity,omitempty"` +} + +// PersistentVolumeSpecApplyConfiguration constructs an declarative configuration of the PersistentVolumeSpec type for use with +// apply. +func PersistentVolumeSpec() *PersistentVolumeSpecApplyConfiguration { + return &PersistentVolumeSpecApplyConfiguration{} +} + +// WithCapacity sets the Capacity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Capacity field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithCapacity(value v1.ResourceList) *PersistentVolumeSpecApplyConfiguration { + b.Capacity = &value + return b +} + +// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GCEPersistentDisk field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.GCEPersistentDisk = value + return b +} + +// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.AWSElasticBlockStore = value + return b +} + +// WithHostPath sets the HostPath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostPath field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.HostPath = value + return b +} + +// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Glusterfs field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithGlusterfs(value *GlusterfsPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.Glusterfs = value + return b +} + +// WithNFS sets the NFS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NFS field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.NFS = value + return b +} + +// WithRBD sets the RBD field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RBD field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithRBD(value *RBDPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.RBD = value + return b +} + +// WithISCSI sets the ISCSI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ISCSI field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithISCSI(value *ISCSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.ISCSI = value + return b +} + +// WithCinder sets the Cinder field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Cinder field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithCinder(value *CinderPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.Cinder = value + return b +} + +// WithCephFS sets the CephFS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CephFS field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithCephFS(value *CephFSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.CephFS = value + return b +} + +// WithFC sets the FC field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FC field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.FC = value + return b +} + +// WithFlocker sets the Flocker field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Flocker field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.Flocker = value + return b +} + +// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FlexVolume field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithFlexVolume(value *FlexPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.FlexVolume = value + return b +} + +// WithAzureFile sets the AzureFile field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AzureFile field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithAzureFile(value *AzureFilePersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.AzureFile = value + return b +} + +// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VsphereVolume field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.VsphereVolume = value + return b +} + +// WithQuobyte sets the Quobyte field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Quobyte field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.Quobyte = value + return b +} + +// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AzureDisk field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.AzureDisk = value + return b +} + +// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.PhotonPersistentDisk = value + return b +} + +// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PortworxVolume field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.PortworxVolume = value + return b +} + +// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ScaleIO field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithScaleIO(value *ScaleIOPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.ScaleIO = value + return b +} + +// WithLocal sets the Local field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Local field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithLocal(value *LocalVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.Local = value + return b +} + +// WithStorageOS sets the StorageOS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageOS field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithStorageOS(value *StorageOSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.StorageOS = value + return b +} + +// WithCSI sets the CSI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CSI field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithCSI(value *CSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.CSI = value + return b +} + +// WithAccessModes adds the given value to the AccessModes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AccessModes field. +func (b *PersistentVolumeSpecApplyConfiguration) WithAccessModes(values ...v1.PersistentVolumeAccessMode) *PersistentVolumeSpecApplyConfiguration { + for i := range values { + b.AccessModes = append(b.AccessModes, values[i]) + } + return b +} + +// WithClaimRef sets the ClaimRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClaimRef field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithClaimRef(value *ObjectReferenceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.ClaimRef = value + return b +} + +// WithPersistentVolumeReclaimPolicy sets the PersistentVolumeReclaimPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PersistentVolumeReclaimPolicy field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithPersistentVolumeReclaimPolicy(value v1.PersistentVolumeReclaimPolicy) *PersistentVolumeSpecApplyConfiguration { + b.PersistentVolumeReclaimPolicy = &value + return b +} + +// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageClassName field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithStorageClassName(value string) *PersistentVolumeSpecApplyConfiguration { + b.StorageClassName = &value + return b +} + +// WithMountOptions adds the given value to the MountOptions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the MountOptions field. +func (b *PersistentVolumeSpecApplyConfiguration) WithMountOptions(values ...string) *PersistentVolumeSpecApplyConfiguration { + for i := range values { + b.MountOptions = append(b.MountOptions, values[i]) + } + return b +} + +// WithVolumeMode sets the VolumeMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeMode field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithVolumeMode(value v1.PersistentVolumeMode) *PersistentVolumeSpecApplyConfiguration { + b.VolumeMode = &value + return b +} + +// WithNodeAffinity sets the NodeAffinity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeAffinity field is set to the value of the last call. +func (b *PersistentVolumeSpecApplyConfiguration) WithNodeAffinity(value *VolumeNodeAffinityApplyConfiguration) *PersistentVolumeSpecApplyConfiguration { + b.NodeAffinity = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumestatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumestatus.go new file mode 100644 index 0000000000..f7048dec4e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumestatus.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// PersistentVolumeStatusApplyConfiguration represents an declarative configuration of the PersistentVolumeStatus type for use +// with apply. +type PersistentVolumeStatusApplyConfiguration struct { + Phase *v1.PersistentVolumePhase `json:"phase,omitempty"` + Message *string `json:"message,omitempty"` + Reason *string `json:"reason,omitempty"` +} + +// PersistentVolumeStatusApplyConfiguration constructs an declarative configuration of the PersistentVolumeStatus type for use with +// apply. +func PersistentVolumeStatus() *PersistentVolumeStatusApplyConfiguration { + return &PersistentVolumeStatusApplyConfiguration{} +} + +// WithPhase sets the Phase field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Phase field is set to the value of the last call. +func (b *PersistentVolumeStatusApplyConfiguration) WithPhase(value v1.PersistentVolumePhase) *PersistentVolumeStatusApplyConfiguration { + b.Phase = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *PersistentVolumeStatusApplyConfiguration) WithMessage(value string) *PersistentVolumeStatusApplyConfiguration { + b.Message = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *PersistentVolumeStatusApplyConfiguration) WithReason(value string) *PersistentVolumeStatusApplyConfiguration { + b.Reason = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/photonpersistentdiskvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/photonpersistentdiskvolumesource.go new file mode 100644 index 0000000000..43587d6768 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/photonpersistentdiskvolumesource.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// PhotonPersistentDiskVolumeSourceApplyConfiguration represents an declarative configuration of the PhotonPersistentDiskVolumeSource type for use +// with apply. +type PhotonPersistentDiskVolumeSourceApplyConfiguration struct { + PdID *string `json:"pdID,omitempty"` + FSType *string `json:"fsType,omitempty"` +} + +// PhotonPersistentDiskVolumeSourceApplyConfiguration constructs an declarative configuration of the PhotonPersistentDiskVolumeSource type for use with +// apply. +func PhotonPersistentDiskVolumeSource() *PhotonPersistentDiskVolumeSourceApplyConfiguration { + return &PhotonPersistentDiskVolumeSourceApplyConfiguration{} +} + +// WithPdID sets the PdID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PdID field is set to the value of the last call. +func (b *PhotonPersistentDiskVolumeSourceApplyConfiguration) WithPdID(value string) *PhotonPersistentDiskVolumeSourceApplyConfiguration { + b.PdID = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *PhotonPersistentDiskVolumeSourceApplyConfiguration) WithFSType(value string) *PhotonPersistentDiskVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/pod.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/pod.go new file mode 100644 index 0000000000..4783713929 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/pod.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodApplyConfiguration represents an declarative configuration of the Pod type for use +// with apply. +type PodApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *PodSpecApplyConfiguration `json:"spec,omitempty"` + Status *PodStatusApplyConfiguration `json:"status,omitempty"` +} + +// Pod constructs an declarative configuration of the Pod type for use with +// apply. +func Pod(name, namespace string) *PodApplyConfiguration { + b := &PodApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Pod") + b.WithAPIVersion("v1") + return b +} + +// ExtractPod extracts the applied configuration owned by fieldManager from +// pod. If no managedFields are found in pod for fieldManager, a +// PodApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// pod must be a unmodified Pod API object that was retrieved from the Kubernetes API. +// ExtractPod provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPod(pod *apicorev1.Pod, fieldManager string) (*PodApplyConfiguration, error) { + b := &PodApplyConfiguration{} + err := managedfields.ExtractInto(pod, internal.Parser().Type("io.k8s.api.core.v1.Pod"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(pod.Name) + b.WithNamespace(pod.Namespace) + + b.WithKind("Pod") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PodApplyConfiguration) WithKind(value string) *PodApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PodApplyConfiguration) WithAPIVersion(value string) *PodApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PodApplyConfiguration) WithName(value string) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PodApplyConfiguration) WithGenerateName(value string) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PodApplyConfiguration) WithNamespace(value string) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PodApplyConfiguration) WithSelfLink(value string) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PodApplyConfiguration) WithUID(value types.UID) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PodApplyConfiguration) WithResourceVersion(value string) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PodApplyConfiguration) WithGeneration(value int64) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PodApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PodApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PodApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PodApplyConfiguration) WithLabels(entries map[string]string) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PodApplyConfiguration) WithAnnotations(entries map[string]string) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PodApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PodApplyConfiguration) WithFinalizers(values ...string) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PodApplyConfiguration) WithClusterName(value string) *PodApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PodApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *PodApplyConfiguration) WithSpec(value *PodSpecApplyConfiguration) *PodApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *PodApplyConfiguration) WithStatus(value *PodStatusApplyConfiguration) *PodApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinity.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinity.go new file mode 100644 index 0000000000..7049c62121 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinity.go @@ -0,0 +1,58 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// PodAffinityApplyConfiguration represents an declarative configuration of the PodAffinity type for use +// with apply. +type PodAffinityApplyConfiguration struct { + RequiredDuringSchedulingIgnoredDuringExecution []PodAffinityTermApplyConfiguration `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` + PreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTermApplyConfiguration `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` +} + +// PodAffinityApplyConfiguration constructs an declarative configuration of the PodAffinity type for use with +// apply. +func PodAffinity() *PodAffinityApplyConfiguration { + return &PodAffinityApplyConfiguration{} +} + +// WithRequiredDuringSchedulingIgnoredDuringExecution adds the given value to the RequiredDuringSchedulingIgnoredDuringExecution field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the RequiredDuringSchedulingIgnoredDuringExecution field. +func (b *PodAffinityApplyConfiguration) WithRequiredDuringSchedulingIgnoredDuringExecution(values ...*PodAffinityTermApplyConfiguration) *PodAffinityApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRequiredDuringSchedulingIgnoredDuringExecution") + } + b.RequiredDuringSchedulingIgnoredDuringExecution = append(b.RequiredDuringSchedulingIgnoredDuringExecution, *values[i]) + } + return b +} + +// WithPreferredDuringSchedulingIgnoredDuringExecution adds the given value to the PreferredDuringSchedulingIgnoredDuringExecution field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the PreferredDuringSchedulingIgnoredDuringExecution field. +func (b *PodAffinityApplyConfiguration) WithPreferredDuringSchedulingIgnoredDuringExecution(values ...*WeightedPodAffinityTermApplyConfiguration) *PodAffinityApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPreferredDuringSchedulingIgnoredDuringExecution") + } + b.PreferredDuringSchedulingIgnoredDuringExecution = append(b.PreferredDuringSchedulingIgnoredDuringExecution, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinityterm.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinityterm.go new file mode 100644 index 0000000000..7d2492203e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinityterm.go @@ -0,0 +1,72 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodAffinityTermApplyConfiguration represents an declarative configuration of the PodAffinityTerm type for use +// with apply. +type PodAffinityTermApplyConfiguration struct { + LabelSelector *v1.LabelSelectorApplyConfiguration `json:"labelSelector,omitempty"` + Namespaces []string `json:"namespaces,omitempty"` + TopologyKey *string `json:"topologyKey,omitempty"` + NamespaceSelector *v1.LabelSelectorApplyConfiguration `json:"namespaceSelector,omitempty"` +} + +// PodAffinityTermApplyConfiguration constructs an declarative configuration of the PodAffinityTerm type for use with +// apply. +func PodAffinityTerm() *PodAffinityTermApplyConfiguration { + return &PodAffinityTermApplyConfiguration{} +} + +// WithLabelSelector sets the LabelSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LabelSelector field is set to the value of the last call. +func (b *PodAffinityTermApplyConfiguration) WithLabelSelector(value *v1.LabelSelectorApplyConfiguration) *PodAffinityTermApplyConfiguration { + b.LabelSelector = value + return b +} + +// WithNamespaces adds the given value to the Namespaces field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Namespaces field. +func (b *PodAffinityTermApplyConfiguration) WithNamespaces(values ...string) *PodAffinityTermApplyConfiguration { + for i := range values { + b.Namespaces = append(b.Namespaces, values[i]) + } + return b +} + +// WithTopologyKey sets the TopologyKey field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TopologyKey field is set to the value of the last call. +func (b *PodAffinityTermApplyConfiguration) WithTopologyKey(value string) *PodAffinityTermApplyConfiguration { + b.TopologyKey = &value + return b +} + +// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NamespaceSelector field is set to the value of the last call. +func (b *PodAffinityTermApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *PodAffinityTermApplyConfiguration { + b.NamespaceSelector = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/podantiaffinity.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podantiaffinity.go new file mode 100644 index 0000000000..42681c54c4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podantiaffinity.go @@ -0,0 +1,58 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// PodAntiAffinityApplyConfiguration represents an declarative configuration of the PodAntiAffinity type for use +// with apply. +type PodAntiAffinityApplyConfiguration struct { + RequiredDuringSchedulingIgnoredDuringExecution []PodAffinityTermApplyConfiguration `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` + PreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTermApplyConfiguration `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` +} + +// PodAntiAffinityApplyConfiguration constructs an declarative configuration of the PodAntiAffinity type for use with +// apply. +func PodAntiAffinity() *PodAntiAffinityApplyConfiguration { + return &PodAntiAffinityApplyConfiguration{} +} + +// WithRequiredDuringSchedulingIgnoredDuringExecution adds the given value to the RequiredDuringSchedulingIgnoredDuringExecution field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the RequiredDuringSchedulingIgnoredDuringExecution field. +func (b *PodAntiAffinityApplyConfiguration) WithRequiredDuringSchedulingIgnoredDuringExecution(values ...*PodAffinityTermApplyConfiguration) *PodAntiAffinityApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRequiredDuringSchedulingIgnoredDuringExecution") + } + b.RequiredDuringSchedulingIgnoredDuringExecution = append(b.RequiredDuringSchedulingIgnoredDuringExecution, *values[i]) + } + return b +} + +// WithPreferredDuringSchedulingIgnoredDuringExecution adds the given value to the PreferredDuringSchedulingIgnoredDuringExecution field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the PreferredDuringSchedulingIgnoredDuringExecution field. +func (b *PodAntiAffinityApplyConfiguration) WithPreferredDuringSchedulingIgnoredDuringExecution(values ...*WeightedPodAffinityTermApplyConfiguration) *PodAntiAffinityApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPreferredDuringSchedulingIgnoredDuringExecution") + } + b.PreferredDuringSchedulingIgnoredDuringExecution = append(b.PreferredDuringSchedulingIgnoredDuringExecution, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/podcondition.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podcondition.go new file mode 100644 index 0000000000..610209f3c4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podcondition.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// PodConditionApplyConfiguration represents an declarative configuration of the PodCondition type for use +// with apply. +type PodConditionApplyConfiguration struct { + Type *v1.PodConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastProbeTime *metav1.Time `json:"lastProbeTime,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// PodConditionApplyConfiguration constructs an declarative configuration of the PodCondition type for use with +// apply. +func PodCondition() *PodConditionApplyConfiguration { + return &PodConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *PodConditionApplyConfiguration) WithType(value v1.PodConditionType) *PodConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *PodConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *PodConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastProbeTime sets the LastProbeTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastProbeTime field is set to the value of the last call. +func (b *PodConditionApplyConfiguration) WithLastProbeTime(value metav1.Time) *PodConditionApplyConfiguration { + b.LastProbeTime = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *PodConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *PodConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *PodConditionApplyConfiguration) WithReason(value string) *PodConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *PodConditionApplyConfiguration) WithMessage(value string) *PodConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfig.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfig.go new file mode 100644 index 0000000000..0fe6a08349 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfig.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// PodDNSConfigApplyConfiguration represents an declarative configuration of the PodDNSConfig type for use +// with apply. +type PodDNSConfigApplyConfiguration struct { + Nameservers []string `json:"nameservers,omitempty"` + Searches []string `json:"searches,omitempty"` + Options []PodDNSConfigOptionApplyConfiguration `json:"options,omitempty"` +} + +// PodDNSConfigApplyConfiguration constructs an declarative configuration of the PodDNSConfig type for use with +// apply. +func PodDNSConfig() *PodDNSConfigApplyConfiguration { + return &PodDNSConfigApplyConfiguration{} +} + +// WithNameservers adds the given value to the Nameservers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Nameservers field. +func (b *PodDNSConfigApplyConfiguration) WithNameservers(values ...string) *PodDNSConfigApplyConfiguration { + for i := range values { + b.Nameservers = append(b.Nameservers, values[i]) + } + return b +} + +// WithSearches adds the given value to the Searches field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Searches field. +func (b *PodDNSConfigApplyConfiguration) WithSearches(values ...string) *PodDNSConfigApplyConfiguration { + for i := range values { + b.Searches = append(b.Searches, values[i]) + } + return b +} + +// WithOptions adds the given value to the Options field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Options field. +func (b *PodDNSConfigApplyConfiguration) WithOptions(values ...*PodDNSConfigOptionApplyConfiguration) *PodDNSConfigApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOptions") + } + b.Options = append(b.Options, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfigoption.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfigoption.go new file mode 100644 index 0000000000..327bf803b3 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfigoption.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// PodDNSConfigOptionApplyConfiguration represents an declarative configuration of the PodDNSConfigOption type for use +// with apply. +type PodDNSConfigOptionApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Value *string `json:"value,omitempty"` +} + +// PodDNSConfigOptionApplyConfiguration constructs an declarative configuration of the PodDNSConfigOption type for use with +// apply. +func PodDNSConfigOption() *PodDNSConfigOptionApplyConfiguration { + return &PodDNSConfigOptionApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PodDNSConfigOptionApplyConfiguration) WithName(value string) *PodDNSConfigOptionApplyConfiguration { + b.Name = &value + return b +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *PodDNSConfigOptionApplyConfiguration) WithValue(value string) *PodDNSConfigOptionApplyConfiguration { + b.Value = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/podip.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podip.go new file mode 100644 index 0000000000..3c6e6b87ac --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podip.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// PodIPApplyConfiguration represents an declarative configuration of the PodIP type for use +// with apply. +type PodIPApplyConfiguration struct { + IP *string `json:"ip,omitempty"` +} + +// PodIPApplyConfiguration constructs an declarative configuration of the PodIP type for use with +// apply. +func PodIP() *PodIPApplyConfiguration { + return &PodIPApplyConfiguration{} +} + +// WithIP sets the IP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IP field is set to the value of the last call. +func (b *PodIPApplyConfiguration) WithIP(value string) *PodIPApplyConfiguration { + b.IP = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/podreadinessgate.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podreadinessgate.go new file mode 100644 index 0000000000..9d3ad458ac --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podreadinessgate.go @@ -0,0 +1,43 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// PodReadinessGateApplyConfiguration represents an declarative configuration of the PodReadinessGate type for use +// with apply. +type PodReadinessGateApplyConfiguration struct { + ConditionType *v1.PodConditionType `json:"conditionType,omitempty"` +} + +// PodReadinessGateApplyConfiguration constructs an declarative configuration of the PodReadinessGate type for use with +// apply. +func PodReadinessGate() *PodReadinessGateApplyConfiguration { + return &PodReadinessGateApplyConfiguration{} +} + +// WithConditionType sets the ConditionType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ConditionType field is set to the value of the last call. +func (b *PodReadinessGateApplyConfiguration) WithConditionType(value v1.PodConditionType) *PodReadinessGateApplyConfiguration { + b.ConditionType = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/podsecuritycontext.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podsecuritycontext.go new file mode 100644 index 0000000000..6db09aa32f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podsecuritycontext.go @@ -0,0 +1,131 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" +) + +// PodSecurityContextApplyConfiguration represents an declarative configuration of the PodSecurityContext type for use +// with apply. +type PodSecurityContextApplyConfiguration struct { + SELinuxOptions *SELinuxOptionsApplyConfiguration `json:"seLinuxOptions,omitempty"` + WindowsOptions *WindowsSecurityContextOptionsApplyConfiguration `json:"windowsOptions,omitempty"` + RunAsUser *int64 `json:"runAsUser,omitempty"` + RunAsGroup *int64 `json:"runAsGroup,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + SupplementalGroups []int64 `json:"supplementalGroups,omitempty"` + FSGroup *int64 `json:"fsGroup,omitempty"` + Sysctls []SysctlApplyConfiguration `json:"sysctls,omitempty"` + FSGroupChangePolicy *corev1.PodFSGroupChangePolicy `json:"fsGroupChangePolicy,omitempty"` + SeccompProfile *SeccompProfileApplyConfiguration `json:"seccompProfile,omitempty"` +} + +// PodSecurityContextApplyConfiguration constructs an declarative configuration of the PodSecurityContext type for use with +// apply. +func PodSecurityContext() *PodSecurityContextApplyConfiguration { + return &PodSecurityContextApplyConfiguration{} +} + +// WithSELinuxOptions sets the SELinuxOptions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SELinuxOptions field is set to the value of the last call. +func (b *PodSecurityContextApplyConfiguration) WithSELinuxOptions(value *SELinuxOptionsApplyConfiguration) *PodSecurityContextApplyConfiguration { + b.SELinuxOptions = value + return b +} + +// WithWindowsOptions sets the WindowsOptions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the WindowsOptions field is set to the value of the last call. +func (b *PodSecurityContextApplyConfiguration) WithWindowsOptions(value *WindowsSecurityContextOptionsApplyConfiguration) *PodSecurityContextApplyConfiguration { + b.WindowsOptions = value + return b +} + +// WithRunAsUser sets the RunAsUser field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RunAsUser field is set to the value of the last call. +func (b *PodSecurityContextApplyConfiguration) WithRunAsUser(value int64) *PodSecurityContextApplyConfiguration { + b.RunAsUser = &value + return b +} + +// WithRunAsGroup sets the RunAsGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RunAsGroup field is set to the value of the last call. +func (b *PodSecurityContextApplyConfiguration) WithRunAsGroup(value int64) *PodSecurityContextApplyConfiguration { + b.RunAsGroup = &value + return b +} + +// WithRunAsNonRoot sets the RunAsNonRoot field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RunAsNonRoot field is set to the value of the last call. +func (b *PodSecurityContextApplyConfiguration) WithRunAsNonRoot(value bool) *PodSecurityContextApplyConfiguration { + b.RunAsNonRoot = &value + return b +} + +// WithSupplementalGroups adds the given value to the SupplementalGroups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the SupplementalGroups field. +func (b *PodSecurityContextApplyConfiguration) WithSupplementalGroups(values ...int64) *PodSecurityContextApplyConfiguration { + for i := range values { + b.SupplementalGroups = append(b.SupplementalGroups, values[i]) + } + return b +} + +// WithFSGroup sets the FSGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSGroup field is set to the value of the last call. +func (b *PodSecurityContextApplyConfiguration) WithFSGroup(value int64) *PodSecurityContextApplyConfiguration { + b.FSGroup = &value + return b +} + +// WithSysctls adds the given value to the Sysctls field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Sysctls field. +func (b *PodSecurityContextApplyConfiguration) WithSysctls(values ...*SysctlApplyConfiguration) *PodSecurityContextApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSysctls") + } + b.Sysctls = append(b.Sysctls, *values[i]) + } + return b +} + +// WithFSGroupChangePolicy sets the FSGroupChangePolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSGroupChangePolicy field is set to the value of the last call. +func (b *PodSecurityContextApplyConfiguration) WithFSGroupChangePolicy(value corev1.PodFSGroupChangePolicy) *PodSecurityContextApplyConfiguration { + b.FSGroupChangePolicy = &value + return b +} + +// WithSeccompProfile sets the SeccompProfile field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SeccompProfile field is set to the value of the last call. +func (b *PodSecurityContextApplyConfiguration) WithSeccompProfile(value *SeccompProfileApplyConfiguration) *PodSecurityContextApplyConfiguration { + b.SeccompProfile = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/podspec.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podspec.go new file mode 100644 index 0000000000..d1c9ea9cb6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podspec.go @@ -0,0 +1,400 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" +) + +// PodSpecApplyConfiguration represents an declarative configuration of the PodSpec type for use +// with apply. +type PodSpecApplyConfiguration struct { + Volumes []VolumeApplyConfiguration `json:"volumes,omitempty"` + InitContainers []ContainerApplyConfiguration `json:"initContainers,omitempty"` + Containers []ContainerApplyConfiguration `json:"containers,omitempty"` + EphemeralContainers []EphemeralContainerApplyConfiguration `json:"ephemeralContainers,omitempty"` + RestartPolicy *corev1.RestartPolicy `json:"restartPolicy,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + DNSPolicy *corev1.DNSPolicy `json:"dnsPolicy,omitempty"` + NodeSelector map[string]string `json:"nodeSelector,omitempty"` + ServiceAccountName *string `json:"serviceAccountName,omitempty"` + DeprecatedServiceAccount *string `json:"serviceAccount,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + NodeName *string `json:"nodeName,omitempty"` + HostNetwork *bool `json:"hostNetwork,omitempty"` + HostPID *bool `json:"hostPID,omitempty"` + HostIPC *bool `json:"hostIPC,omitempty"` + ShareProcessNamespace *bool `json:"shareProcessNamespace,omitempty"` + SecurityContext *PodSecurityContextApplyConfiguration `json:"securityContext,omitempty"` + ImagePullSecrets []LocalObjectReferenceApplyConfiguration `json:"imagePullSecrets,omitempty"` + Hostname *string `json:"hostname,omitempty"` + Subdomain *string `json:"subdomain,omitempty"` + Affinity *AffinityApplyConfiguration `json:"affinity,omitempty"` + SchedulerName *string `json:"schedulerName,omitempty"` + Tolerations []TolerationApplyConfiguration `json:"tolerations,omitempty"` + HostAliases []HostAliasApplyConfiguration `json:"hostAliases,omitempty"` + PriorityClassName *string `json:"priorityClassName,omitempty"` + Priority *int32 `json:"priority,omitempty"` + DNSConfig *PodDNSConfigApplyConfiguration `json:"dnsConfig,omitempty"` + ReadinessGates []PodReadinessGateApplyConfiguration `json:"readinessGates,omitempty"` + RuntimeClassName *string `json:"runtimeClassName,omitempty"` + EnableServiceLinks *bool `json:"enableServiceLinks,omitempty"` + PreemptionPolicy *corev1.PreemptionPolicy `json:"preemptionPolicy,omitempty"` + Overhead *corev1.ResourceList `json:"overhead,omitempty"` + TopologySpreadConstraints []TopologySpreadConstraintApplyConfiguration `json:"topologySpreadConstraints,omitempty"` + SetHostnameAsFQDN *bool `json:"setHostnameAsFQDN,omitempty"` +} + +// PodSpecApplyConfiguration constructs an declarative configuration of the PodSpec type for use with +// apply. +func PodSpec() *PodSpecApplyConfiguration { + return &PodSpecApplyConfiguration{} +} + +// WithVolumes adds the given value to the Volumes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Volumes field. +func (b *PodSpecApplyConfiguration) WithVolumes(values ...*VolumeApplyConfiguration) *PodSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithVolumes") + } + b.Volumes = append(b.Volumes, *values[i]) + } + return b +} + +// WithInitContainers adds the given value to the InitContainers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the InitContainers field. +func (b *PodSpecApplyConfiguration) WithInitContainers(values ...*ContainerApplyConfiguration) *PodSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithInitContainers") + } + b.InitContainers = append(b.InitContainers, *values[i]) + } + return b +} + +// WithContainers adds the given value to the Containers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Containers field. +func (b *PodSpecApplyConfiguration) WithContainers(values ...*ContainerApplyConfiguration) *PodSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithContainers") + } + b.Containers = append(b.Containers, *values[i]) + } + return b +} + +// WithEphemeralContainers adds the given value to the EphemeralContainers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the EphemeralContainers field. +func (b *PodSpecApplyConfiguration) WithEphemeralContainers(values ...*EphemeralContainerApplyConfiguration) *PodSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEphemeralContainers") + } + b.EphemeralContainers = append(b.EphemeralContainers, *values[i]) + } + return b +} + +// WithRestartPolicy sets the RestartPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RestartPolicy field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithRestartPolicy(value corev1.RestartPolicy) *PodSpecApplyConfiguration { + b.RestartPolicy = &value + return b +} + +// WithTerminationGracePeriodSeconds sets the TerminationGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TerminationGracePeriodSeconds field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithTerminationGracePeriodSeconds(value int64) *PodSpecApplyConfiguration { + b.TerminationGracePeriodSeconds = &value + return b +} + +// WithActiveDeadlineSeconds sets the ActiveDeadlineSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ActiveDeadlineSeconds field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithActiveDeadlineSeconds(value int64) *PodSpecApplyConfiguration { + b.ActiveDeadlineSeconds = &value + return b +} + +// WithDNSPolicy sets the DNSPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DNSPolicy field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithDNSPolicy(value corev1.DNSPolicy) *PodSpecApplyConfiguration { + b.DNSPolicy = &value + return b +} + +// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the NodeSelector field, +// overwriting an existing map entries in NodeSelector field with the same key. +func (b *PodSpecApplyConfiguration) WithNodeSelector(entries map[string]string) *PodSpecApplyConfiguration { + if b.NodeSelector == nil && len(entries) > 0 { + b.NodeSelector = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.NodeSelector[k] = v + } + return b +} + +// WithServiceAccountName sets the ServiceAccountName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ServiceAccountName field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithServiceAccountName(value string) *PodSpecApplyConfiguration { + b.ServiceAccountName = &value + return b +} + +// WithDeprecatedServiceAccount sets the DeprecatedServiceAccount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeprecatedServiceAccount field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithDeprecatedServiceAccount(value string) *PodSpecApplyConfiguration { + b.DeprecatedServiceAccount = &value + return b +} + +// WithAutomountServiceAccountToken sets the AutomountServiceAccountToken field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AutomountServiceAccountToken field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithAutomountServiceAccountToken(value bool) *PodSpecApplyConfiguration { + b.AutomountServiceAccountToken = &value + return b +} + +// WithNodeName sets the NodeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeName field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithNodeName(value string) *PodSpecApplyConfiguration { + b.NodeName = &value + return b +} + +// WithHostNetwork sets the HostNetwork field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostNetwork field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithHostNetwork(value bool) *PodSpecApplyConfiguration { + b.HostNetwork = &value + return b +} + +// WithHostPID sets the HostPID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostPID field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithHostPID(value bool) *PodSpecApplyConfiguration { + b.HostPID = &value + return b +} + +// WithHostIPC sets the HostIPC field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostIPC field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithHostIPC(value bool) *PodSpecApplyConfiguration { + b.HostIPC = &value + return b +} + +// WithShareProcessNamespace sets the ShareProcessNamespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ShareProcessNamespace field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithShareProcessNamespace(value bool) *PodSpecApplyConfiguration { + b.ShareProcessNamespace = &value + return b +} + +// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecurityContext field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithSecurityContext(value *PodSecurityContextApplyConfiguration) *PodSpecApplyConfiguration { + b.SecurityContext = value + return b +} + +// WithImagePullSecrets adds the given value to the ImagePullSecrets field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ImagePullSecrets field. +func (b *PodSpecApplyConfiguration) WithImagePullSecrets(values ...*LocalObjectReferenceApplyConfiguration) *PodSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithImagePullSecrets") + } + b.ImagePullSecrets = append(b.ImagePullSecrets, *values[i]) + } + return b +} + +// WithHostname sets the Hostname field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Hostname field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithHostname(value string) *PodSpecApplyConfiguration { + b.Hostname = &value + return b +} + +// WithSubdomain sets the Subdomain field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Subdomain field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithSubdomain(value string) *PodSpecApplyConfiguration { + b.Subdomain = &value + return b +} + +// WithAffinity sets the Affinity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Affinity field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithAffinity(value *AffinityApplyConfiguration) *PodSpecApplyConfiguration { + b.Affinity = value + return b +} + +// WithSchedulerName sets the SchedulerName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SchedulerName field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithSchedulerName(value string) *PodSpecApplyConfiguration { + b.SchedulerName = &value + return b +} + +// WithTolerations adds the given value to the Tolerations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Tolerations field. +func (b *PodSpecApplyConfiguration) WithTolerations(values ...*TolerationApplyConfiguration) *PodSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTolerations") + } + b.Tolerations = append(b.Tolerations, *values[i]) + } + return b +} + +// WithHostAliases adds the given value to the HostAliases field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the HostAliases field. +func (b *PodSpecApplyConfiguration) WithHostAliases(values ...*HostAliasApplyConfiguration) *PodSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithHostAliases") + } + b.HostAliases = append(b.HostAliases, *values[i]) + } + return b +} + +// WithPriorityClassName sets the PriorityClassName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PriorityClassName field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithPriorityClassName(value string) *PodSpecApplyConfiguration { + b.PriorityClassName = &value + return b +} + +// WithPriority sets the Priority field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Priority field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithPriority(value int32) *PodSpecApplyConfiguration { + b.Priority = &value + return b +} + +// WithDNSConfig sets the DNSConfig field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DNSConfig field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithDNSConfig(value *PodDNSConfigApplyConfiguration) *PodSpecApplyConfiguration { + b.DNSConfig = value + return b +} + +// WithReadinessGates adds the given value to the ReadinessGates field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ReadinessGates field. +func (b *PodSpecApplyConfiguration) WithReadinessGates(values ...*PodReadinessGateApplyConfiguration) *PodSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithReadinessGates") + } + b.ReadinessGates = append(b.ReadinessGates, *values[i]) + } + return b +} + +// WithRuntimeClassName sets the RuntimeClassName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RuntimeClassName field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithRuntimeClassName(value string) *PodSpecApplyConfiguration { + b.RuntimeClassName = &value + return b +} + +// WithEnableServiceLinks sets the EnableServiceLinks field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EnableServiceLinks field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithEnableServiceLinks(value bool) *PodSpecApplyConfiguration { + b.EnableServiceLinks = &value + return b +} + +// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PreemptionPolicy field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PodSpecApplyConfiguration { + b.PreemptionPolicy = &value + return b +} + +// WithOverhead sets the Overhead field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Overhead field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithOverhead(value corev1.ResourceList) *PodSpecApplyConfiguration { + b.Overhead = &value + return b +} + +// WithTopologySpreadConstraints adds the given value to the TopologySpreadConstraints field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the TopologySpreadConstraints field. +func (b *PodSpecApplyConfiguration) WithTopologySpreadConstraints(values ...*TopologySpreadConstraintApplyConfiguration) *PodSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTopologySpreadConstraints") + } + b.TopologySpreadConstraints = append(b.TopologySpreadConstraints, *values[i]) + } + return b +} + +// WithSetHostnameAsFQDN sets the SetHostnameAsFQDN field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SetHostnameAsFQDN field is set to the value of the last call. +func (b *PodSpecApplyConfiguration) WithSetHostnameAsFQDN(value bool) *PodSpecApplyConfiguration { + b.SetHostnameAsFQDN = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/podstatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podstatus.go new file mode 100644 index 0000000000..7ee5b9955f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podstatus.go @@ -0,0 +1,177 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// PodStatusApplyConfiguration represents an declarative configuration of the PodStatus type for use +// with apply. +type PodStatusApplyConfiguration struct { + Phase *v1.PodPhase `json:"phase,omitempty"` + Conditions []PodConditionApplyConfiguration `json:"conditions,omitempty"` + Message *string `json:"message,omitempty"` + Reason *string `json:"reason,omitempty"` + NominatedNodeName *string `json:"nominatedNodeName,omitempty"` + HostIP *string `json:"hostIP,omitempty"` + PodIP *string `json:"podIP,omitempty"` + PodIPs []PodIPApplyConfiguration `json:"podIPs,omitempty"` + StartTime *metav1.Time `json:"startTime,omitempty"` + InitContainerStatuses []ContainerStatusApplyConfiguration `json:"initContainerStatuses,omitempty"` + ContainerStatuses []ContainerStatusApplyConfiguration `json:"containerStatuses,omitempty"` + QOSClass *v1.PodQOSClass `json:"qosClass,omitempty"` + EphemeralContainerStatuses []ContainerStatusApplyConfiguration `json:"ephemeralContainerStatuses,omitempty"` +} + +// PodStatusApplyConfiguration constructs an declarative configuration of the PodStatus type for use with +// apply. +func PodStatus() *PodStatusApplyConfiguration { + return &PodStatusApplyConfiguration{} +} + +// WithPhase sets the Phase field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Phase field is set to the value of the last call. +func (b *PodStatusApplyConfiguration) WithPhase(value v1.PodPhase) *PodStatusApplyConfiguration { + b.Phase = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *PodStatusApplyConfiguration) WithConditions(values ...*PodConditionApplyConfiguration) *PodStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *PodStatusApplyConfiguration) WithMessage(value string) *PodStatusApplyConfiguration { + b.Message = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *PodStatusApplyConfiguration) WithReason(value string) *PodStatusApplyConfiguration { + b.Reason = &value + return b +} + +// WithNominatedNodeName sets the NominatedNodeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NominatedNodeName field is set to the value of the last call. +func (b *PodStatusApplyConfiguration) WithNominatedNodeName(value string) *PodStatusApplyConfiguration { + b.NominatedNodeName = &value + return b +} + +// WithHostIP sets the HostIP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostIP field is set to the value of the last call. +func (b *PodStatusApplyConfiguration) WithHostIP(value string) *PodStatusApplyConfiguration { + b.HostIP = &value + return b +} + +// WithPodIP sets the PodIP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodIP field is set to the value of the last call. +func (b *PodStatusApplyConfiguration) WithPodIP(value string) *PodStatusApplyConfiguration { + b.PodIP = &value + return b +} + +// WithPodIPs adds the given value to the PodIPs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the PodIPs field. +func (b *PodStatusApplyConfiguration) WithPodIPs(values ...*PodIPApplyConfiguration) *PodStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPodIPs") + } + b.PodIPs = append(b.PodIPs, *values[i]) + } + return b +} + +// WithStartTime sets the StartTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StartTime field is set to the value of the last call. +func (b *PodStatusApplyConfiguration) WithStartTime(value metav1.Time) *PodStatusApplyConfiguration { + b.StartTime = &value + return b +} + +// WithInitContainerStatuses adds the given value to the InitContainerStatuses field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the InitContainerStatuses field. +func (b *PodStatusApplyConfiguration) WithInitContainerStatuses(values ...*ContainerStatusApplyConfiguration) *PodStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithInitContainerStatuses") + } + b.InitContainerStatuses = append(b.InitContainerStatuses, *values[i]) + } + return b +} + +// WithContainerStatuses adds the given value to the ContainerStatuses field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ContainerStatuses field. +func (b *PodStatusApplyConfiguration) WithContainerStatuses(values ...*ContainerStatusApplyConfiguration) *PodStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithContainerStatuses") + } + b.ContainerStatuses = append(b.ContainerStatuses, *values[i]) + } + return b +} + +// WithQOSClass sets the QOSClass field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the QOSClass field is set to the value of the last call. +func (b *PodStatusApplyConfiguration) WithQOSClass(value v1.PodQOSClass) *PodStatusApplyConfiguration { + b.QOSClass = &value + return b +} + +// WithEphemeralContainerStatuses adds the given value to the EphemeralContainerStatuses field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the EphemeralContainerStatuses field. +func (b *PodStatusApplyConfiguration) WithEphemeralContainerStatuses(values ...*ContainerStatusApplyConfiguration) *PodStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEphemeralContainerStatuses") + } + b.EphemeralContainerStatuses = append(b.EphemeralContainerStatuses, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplate.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplate.go new file mode 100644 index 0000000000..64263882a8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplate.go @@ -0,0 +1,256 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodTemplateApplyConfiguration represents an declarative configuration of the PodTemplate type for use +// with apply. +type PodTemplateApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Template *PodTemplateSpecApplyConfiguration `json:"template,omitempty"` +} + +// PodTemplate constructs an declarative configuration of the PodTemplate type for use with +// apply. +func PodTemplate(name, namespace string) *PodTemplateApplyConfiguration { + b := &PodTemplateApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("PodTemplate") + b.WithAPIVersion("v1") + return b +} + +// ExtractPodTemplate extracts the applied configuration owned by fieldManager from +// podTemplate. If no managedFields are found in podTemplate for fieldManager, a +// PodTemplateApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// podTemplate must be a unmodified PodTemplate API object that was retrieved from the Kubernetes API. +// ExtractPodTemplate provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPodTemplate(podTemplate *apicorev1.PodTemplate, fieldManager string) (*PodTemplateApplyConfiguration, error) { + b := &PodTemplateApplyConfiguration{} + err := managedfields.ExtractInto(podTemplate, internal.Parser().Type("io.k8s.api.core.v1.PodTemplate"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(podTemplate.Name) + b.WithNamespace(podTemplate.Namespace) + + b.WithKind("PodTemplate") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithKind(value string) *PodTemplateApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithAPIVersion(value string) *PodTemplateApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithName(value string) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithGenerateName(value string) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithNamespace(value string) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithSelfLink(value string) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithUID(value types.UID) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithResourceVersion(value string) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithGeneration(value int64) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PodTemplateApplyConfiguration) WithLabels(entries map[string]string) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PodTemplateApplyConfiguration) WithAnnotations(entries map[string]string) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PodTemplateApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PodTemplateApplyConfiguration) WithFinalizers(values ...string) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithClusterName(value string) *PodTemplateApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PodTemplateApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *PodTemplateApplyConfiguration) WithTemplate(value *PodTemplateSpecApplyConfiguration) *PodTemplateApplyConfiguration { + b.Template = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplatespec.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplatespec.go new file mode 100644 index 0000000000..ff06ea4b33 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplatespec.go @@ -0,0 +1,206 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodTemplateSpecApplyConfiguration represents an declarative configuration of the PodTemplateSpec type for use +// with apply. +type PodTemplateSpecApplyConfiguration struct { + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *PodSpecApplyConfiguration `json:"spec,omitempty"` +} + +// PodTemplateSpecApplyConfiguration constructs an declarative configuration of the PodTemplateSpec type for use with +// apply. +func PodTemplateSpec() *PodTemplateSpecApplyConfiguration { + return &PodTemplateSpecApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithName(value string) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithGenerateName(value string) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithNamespace(value string) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithSelfLink(value string) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithUID(value types.UID) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithResourceVersion(value string) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithGeneration(value int64) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PodTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PodTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PodTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PodTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithClusterName(value string) *PodTemplateSpecApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PodTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *PodTemplateSpecApplyConfiguration) WithSpec(value *PodSpecApplyConfiguration) *PodTemplateSpecApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/portstatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/portstatus.go new file mode 100644 index 0000000000..8c70c8f6cf --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/portstatus.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// PortStatusApplyConfiguration represents an declarative configuration of the PortStatus type for use +// with apply. +type PortStatusApplyConfiguration struct { + Port *int32 `json:"port,omitempty"` + Protocol *v1.Protocol `json:"protocol,omitempty"` + Error *string `json:"error,omitempty"` +} + +// PortStatusApplyConfiguration constructs an declarative configuration of the PortStatus type for use with +// apply. +func PortStatus() *PortStatusApplyConfiguration { + return &PortStatusApplyConfiguration{} +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *PortStatusApplyConfiguration) WithPort(value int32) *PortStatusApplyConfiguration { + b.Port = &value + return b +} + +// WithProtocol sets the Protocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Protocol field is set to the value of the last call. +func (b *PortStatusApplyConfiguration) WithProtocol(value v1.Protocol) *PortStatusApplyConfiguration { + b.Protocol = &value + return b +} + +// WithError sets the Error field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Error field is set to the value of the last call. +func (b *PortStatusApplyConfiguration) WithError(value string) *PortStatusApplyConfiguration { + b.Error = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/portworxvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/portworxvolumesource.go new file mode 100644 index 0000000000..19cbb82edb --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/portworxvolumesource.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// PortworxVolumeSourceApplyConfiguration represents an declarative configuration of the PortworxVolumeSource type for use +// with apply. +type PortworxVolumeSourceApplyConfiguration struct { + VolumeID *string `json:"volumeID,omitempty"` + FSType *string `json:"fsType,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// PortworxVolumeSourceApplyConfiguration constructs an declarative configuration of the PortworxVolumeSource type for use with +// apply. +func PortworxVolumeSource() *PortworxVolumeSourceApplyConfiguration { + return &PortworxVolumeSourceApplyConfiguration{} +} + +// WithVolumeID sets the VolumeID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeID field is set to the value of the last call. +func (b *PortworxVolumeSourceApplyConfiguration) WithVolumeID(value string) *PortworxVolumeSourceApplyConfiguration { + b.VolumeID = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *PortworxVolumeSourceApplyConfiguration) WithFSType(value string) *PortworxVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *PortworxVolumeSourceApplyConfiguration) WithReadOnly(value bool) *PortworxVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/preferredschedulingterm.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/preferredschedulingterm.go new file mode 100644 index 0000000000..a373e4afe0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/preferredschedulingterm.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// PreferredSchedulingTermApplyConfiguration represents an declarative configuration of the PreferredSchedulingTerm type for use +// with apply. +type PreferredSchedulingTermApplyConfiguration struct { + Weight *int32 `json:"weight,omitempty"` + Preference *NodeSelectorTermApplyConfiguration `json:"preference,omitempty"` +} + +// PreferredSchedulingTermApplyConfiguration constructs an declarative configuration of the PreferredSchedulingTerm type for use with +// apply. +func PreferredSchedulingTerm() *PreferredSchedulingTermApplyConfiguration { + return &PreferredSchedulingTermApplyConfiguration{} +} + +// WithWeight sets the Weight field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Weight field is set to the value of the last call. +func (b *PreferredSchedulingTermApplyConfiguration) WithWeight(value int32) *PreferredSchedulingTermApplyConfiguration { + b.Weight = &value + return b +} + +// WithPreference sets the Preference field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Preference field is set to the value of the last call. +func (b *PreferredSchedulingTermApplyConfiguration) WithPreference(value *NodeSelectorTermApplyConfiguration) *PreferredSchedulingTermApplyConfiguration { + b.Preference = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/probe.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/probe.go new file mode 100644 index 0000000000..f87adcd5f3 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/probe.go @@ -0,0 +1,109 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ProbeApplyConfiguration represents an declarative configuration of the Probe type for use +// with apply. +type ProbeApplyConfiguration struct { + HandlerApplyConfiguration `json:",inline"` + InitialDelaySeconds *int32 `json:"initialDelaySeconds,omitempty"` + TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"` + PeriodSeconds *int32 `json:"periodSeconds,omitempty"` + SuccessThreshold *int32 `json:"successThreshold,omitempty"` + FailureThreshold *int32 `json:"failureThreshold,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` +} + +// ProbeApplyConfiguration constructs an declarative configuration of the Probe type for use with +// apply. +func Probe() *ProbeApplyConfiguration { + return &ProbeApplyConfiguration{} +} + +// WithExec sets the Exec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Exec field is set to the value of the last call. +func (b *ProbeApplyConfiguration) WithExec(value *ExecActionApplyConfiguration) *ProbeApplyConfiguration { + b.Exec = value + return b +} + +// WithHTTPGet sets the HTTPGet field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HTTPGet field is set to the value of the last call. +func (b *ProbeApplyConfiguration) WithHTTPGet(value *HTTPGetActionApplyConfiguration) *ProbeApplyConfiguration { + b.HTTPGet = value + return b +} + +// WithTCPSocket sets the TCPSocket field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TCPSocket field is set to the value of the last call. +func (b *ProbeApplyConfiguration) WithTCPSocket(value *TCPSocketActionApplyConfiguration) *ProbeApplyConfiguration { + b.TCPSocket = value + return b +} + +// WithInitialDelaySeconds sets the InitialDelaySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the InitialDelaySeconds field is set to the value of the last call. +func (b *ProbeApplyConfiguration) WithInitialDelaySeconds(value int32) *ProbeApplyConfiguration { + b.InitialDelaySeconds = &value + return b +} + +// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TimeoutSeconds field is set to the value of the last call. +func (b *ProbeApplyConfiguration) WithTimeoutSeconds(value int32) *ProbeApplyConfiguration { + b.TimeoutSeconds = &value + return b +} + +// WithPeriodSeconds sets the PeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PeriodSeconds field is set to the value of the last call. +func (b *ProbeApplyConfiguration) WithPeriodSeconds(value int32) *ProbeApplyConfiguration { + b.PeriodSeconds = &value + return b +} + +// WithSuccessThreshold sets the SuccessThreshold field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SuccessThreshold field is set to the value of the last call. +func (b *ProbeApplyConfiguration) WithSuccessThreshold(value int32) *ProbeApplyConfiguration { + b.SuccessThreshold = &value + return b +} + +// WithFailureThreshold sets the FailureThreshold field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FailureThreshold field is set to the value of the last call. +func (b *ProbeApplyConfiguration) WithFailureThreshold(value int32) *ProbeApplyConfiguration { + b.FailureThreshold = &value + return b +} + +// WithTerminationGracePeriodSeconds sets the TerminationGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TerminationGracePeriodSeconds field is set to the value of the last call. +func (b *ProbeApplyConfiguration) WithTerminationGracePeriodSeconds(value int64) *ProbeApplyConfiguration { + b.TerminationGracePeriodSeconds = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/projectedvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/projectedvolumesource.go new file mode 100644 index 0000000000..0a9d1d88e6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/projectedvolumesource.go @@ -0,0 +1,53 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ProjectedVolumeSourceApplyConfiguration represents an declarative configuration of the ProjectedVolumeSource type for use +// with apply. +type ProjectedVolumeSourceApplyConfiguration struct { + Sources []VolumeProjectionApplyConfiguration `json:"sources,omitempty"` + DefaultMode *int32 `json:"defaultMode,omitempty"` +} + +// ProjectedVolumeSourceApplyConfiguration constructs an declarative configuration of the ProjectedVolumeSource type for use with +// apply. +func ProjectedVolumeSource() *ProjectedVolumeSourceApplyConfiguration { + return &ProjectedVolumeSourceApplyConfiguration{} +} + +// WithSources adds the given value to the Sources field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Sources field. +func (b *ProjectedVolumeSourceApplyConfiguration) WithSources(values ...*VolumeProjectionApplyConfiguration) *ProjectedVolumeSourceApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSources") + } + b.Sources = append(b.Sources, *values[i]) + } + return b +} + +// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DefaultMode field is set to the value of the last call. +func (b *ProjectedVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *ProjectedVolumeSourceApplyConfiguration { + b.DefaultMode = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/quobytevolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/quobytevolumesource.go new file mode 100644 index 0000000000..646052ea4a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/quobytevolumesource.go @@ -0,0 +1,84 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// QuobyteVolumeSourceApplyConfiguration represents an declarative configuration of the QuobyteVolumeSource type for use +// with apply. +type QuobyteVolumeSourceApplyConfiguration struct { + Registry *string `json:"registry,omitempty"` + Volume *string `json:"volume,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + User *string `json:"user,omitempty"` + Group *string `json:"group,omitempty"` + Tenant *string `json:"tenant,omitempty"` +} + +// QuobyteVolumeSourceApplyConfiguration constructs an declarative configuration of the QuobyteVolumeSource type for use with +// apply. +func QuobyteVolumeSource() *QuobyteVolumeSourceApplyConfiguration { + return &QuobyteVolumeSourceApplyConfiguration{} +} + +// WithRegistry sets the Registry field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Registry field is set to the value of the last call. +func (b *QuobyteVolumeSourceApplyConfiguration) WithRegistry(value string) *QuobyteVolumeSourceApplyConfiguration { + b.Registry = &value + return b +} + +// WithVolume sets the Volume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Volume field is set to the value of the last call. +func (b *QuobyteVolumeSourceApplyConfiguration) WithVolume(value string) *QuobyteVolumeSourceApplyConfiguration { + b.Volume = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *QuobyteVolumeSourceApplyConfiguration) WithReadOnly(value bool) *QuobyteVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithUser sets the User field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the User field is set to the value of the last call. +func (b *QuobyteVolumeSourceApplyConfiguration) WithUser(value string) *QuobyteVolumeSourceApplyConfiguration { + b.User = &value + return b +} + +// WithGroup sets the Group field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Group field is set to the value of the last call. +func (b *QuobyteVolumeSourceApplyConfiguration) WithGroup(value string) *QuobyteVolumeSourceApplyConfiguration { + b.Group = &value + return b +} + +// WithTenant sets the Tenant field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Tenant field is set to the value of the last call. +func (b *QuobyteVolumeSourceApplyConfiguration) WithTenant(value string) *QuobyteVolumeSourceApplyConfiguration { + b.Tenant = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdpersistentvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdpersistentvolumesource.go new file mode 100644 index 0000000000..ffcb836eb0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdpersistentvolumesource.go @@ -0,0 +1,104 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// RBDPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the RBDPersistentVolumeSource type for use +// with apply. +type RBDPersistentVolumeSourceApplyConfiguration struct { + CephMonitors []string `json:"monitors,omitempty"` + RBDImage *string `json:"image,omitempty"` + FSType *string `json:"fsType,omitempty"` + RBDPool *string `json:"pool,omitempty"` + RadosUser *string `json:"user,omitempty"` + Keyring *string `json:"keyring,omitempty"` + SecretRef *SecretReferenceApplyConfiguration `json:"secretRef,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// RBDPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the RBDPersistentVolumeSource type for use with +// apply. +func RBDPersistentVolumeSource() *RBDPersistentVolumeSourceApplyConfiguration { + return &RBDPersistentVolumeSourceApplyConfiguration{} +} + +// WithCephMonitors adds the given value to the CephMonitors field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the CephMonitors field. +func (b *RBDPersistentVolumeSourceApplyConfiguration) WithCephMonitors(values ...string) *RBDPersistentVolumeSourceApplyConfiguration { + for i := range values { + b.CephMonitors = append(b.CephMonitors, values[i]) + } + return b +} + +// WithRBDImage sets the RBDImage field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RBDImage field is set to the value of the last call. +func (b *RBDPersistentVolumeSourceApplyConfiguration) WithRBDImage(value string) *RBDPersistentVolumeSourceApplyConfiguration { + b.RBDImage = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *RBDPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *RBDPersistentVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithRBDPool sets the RBDPool field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RBDPool field is set to the value of the last call. +func (b *RBDPersistentVolumeSourceApplyConfiguration) WithRBDPool(value string) *RBDPersistentVolumeSourceApplyConfiguration { + b.RBDPool = &value + return b +} + +// WithRadosUser sets the RadosUser field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RadosUser field is set to the value of the last call. +func (b *RBDPersistentVolumeSourceApplyConfiguration) WithRadosUser(value string) *RBDPersistentVolumeSourceApplyConfiguration { + b.RadosUser = &value + return b +} + +// WithKeyring sets the Keyring field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Keyring field is set to the value of the last call. +func (b *RBDPersistentVolumeSourceApplyConfiguration) WithKeyring(value string) *RBDPersistentVolumeSourceApplyConfiguration { + b.Keyring = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *RBDPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *RBDPersistentVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *RBDPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *RBDPersistentVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdvolumesource.go new file mode 100644 index 0000000000..8e7c81732c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdvolumesource.go @@ -0,0 +1,104 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// RBDVolumeSourceApplyConfiguration represents an declarative configuration of the RBDVolumeSource type for use +// with apply. +type RBDVolumeSourceApplyConfiguration struct { + CephMonitors []string `json:"monitors,omitempty"` + RBDImage *string `json:"image,omitempty"` + FSType *string `json:"fsType,omitempty"` + RBDPool *string `json:"pool,omitempty"` + RadosUser *string `json:"user,omitempty"` + Keyring *string `json:"keyring,omitempty"` + SecretRef *LocalObjectReferenceApplyConfiguration `json:"secretRef,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// RBDVolumeSourceApplyConfiguration constructs an declarative configuration of the RBDVolumeSource type for use with +// apply. +func RBDVolumeSource() *RBDVolumeSourceApplyConfiguration { + return &RBDVolumeSourceApplyConfiguration{} +} + +// WithCephMonitors adds the given value to the CephMonitors field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the CephMonitors field. +func (b *RBDVolumeSourceApplyConfiguration) WithCephMonitors(values ...string) *RBDVolumeSourceApplyConfiguration { + for i := range values { + b.CephMonitors = append(b.CephMonitors, values[i]) + } + return b +} + +// WithRBDImage sets the RBDImage field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RBDImage field is set to the value of the last call. +func (b *RBDVolumeSourceApplyConfiguration) WithRBDImage(value string) *RBDVolumeSourceApplyConfiguration { + b.RBDImage = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *RBDVolumeSourceApplyConfiguration) WithFSType(value string) *RBDVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithRBDPool sets the RBDPool field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RBDPool field is set to the value of the last call. +func (b *RBDVolumeSourceApplyConfiguration) WithRBDPool(value string) *RBDVolumeSourceApplyConfiguration { + b.RBDPool = &value + return b +} + +// WithRadosUser sets the RadosUser field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RadosUser field is set to the value of the last call. +func (b *RBDVolumeSourceApplyConfiguration) WithRadosUser(value string) *RBDVolumeSourceApplyConfiguration { + b.RadosUser = &value + return b +} + +// WithKeyring sets the Keyring field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Keyring field is set to the value of the last call. +func (b *RBDVolumeSourceApplyConfiguration) WithKeyring(value string) *RBDVolumeSourceApplyConfiguration { + b.Keyring = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *RBDVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *RBDVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *RBDVolumeSourceApplyConfiguration) WithReadOnly(value bool) *RBDVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontroller.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontroller.go new file mode 100644 index 0000000000..f9b243a65e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontroller.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ReplicationControllerApplyConfiguration represents an declarative configuration of the ReplicationController type for use +// with apply. +type ReplicationControllerApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *ReplicationControllerSpecApplyConfiguration `json:"spec,omitempty"` + Status *ReplicationControllerStatusApplyConfiguration `json:"status,omitempty"` +} + +// ReplicationController constructs an declarative configuration of the ReplicationController type for use with +// apply. +func ReplicationController(name, namespace string) *ReplicationControllerApplyConfiguration { + b := &ReplicationControllerApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("ReplicationController") + b.WithAPIVersion("v1") + return b +} + +// ExtractReplicationController extracts the applied configuration owned by fieldManager from +// replicationController. If no managedFields are found in replicationController for fieldManager, a +// ReplicationControllerApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// replicationController must be a unmodified ReplicationController API object that was retrieved from the Kubernetes API. +// ExtractReplicationController provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractReplicationController(replicationController *apicorev1.ReplicationController, fieldManager string) (*ReplicationControllerApplyConfiguration, error) { + b := &ReplicationControllerApplyConfiguration{} + err := managedfields.ExtractInto(replicationController, internal.Parser().Type("io.k8s.api.core.v1.ReplicationController"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(replicationController.Name) + b.WithNamespace(replicationController.Namespace) + + b.WithKind("ReplicationController") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithKind(value string) *ReplicationControllerApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithAPIVersion(value string) *ReplicationControllerApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithName(value string) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithGenerateName(value string) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithNamespace(value string) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithSelfLink(value string) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithUID(value types.UID) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithResourceVersion(value string) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithGeneration(value int64) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ReplicationControllerApplyConfiguration) WithLabels(entries map[string]string) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ReplicationControllerApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ReplicationControllerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ReplicationControllerApplyConfiguration) WithFinalizers(values ...string) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithClusterName(value string) *ReplicationControllerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ReplicationControllerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithSpec(value *ReplicationControllerSpecApplyConfiguration) *ReplicationControllerApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ReplicationControllerApplyConfiguration) WithStatus(value *ReplicationControllerStatusApplyConfiguration) *ReplicationControllerApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollercondition.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollercondition.go new file mode 100644 index 0000000000..c3d56cc697 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollercondition.go @@ -0,0 +1,80 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ReplicationControllerConditionApplyConfiguration represents an declarative configuration of the ReplicationControllerCondition type for use +// with apply. +type ReplicationControllerConditionApplyConfiguration struct { + Type *v1.ReplicationControllerConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// ReplicationControllerConditionApplyConfiguration constructs an declarative configuration of the ReplicationControllerCondition type for use with +// apply. +func ReplicationControllerCondition() *ReplicationControllerConditionApplyConfiguration { + return &ReplicationControllerConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *ReplicationControllerConditionApplyConfiguration) WithType(value v1.ReplicationControllerConditionType) *ReplicationControllerConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ReplicationControllerConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ReplicationControllerConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *ReplicationControllerConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicationControllerConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *ReplicationControllerConditionApplyConfiguration) WithReason(value string) *ReplicationControllerConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *ReplicationControllerConditionApplyConfiguration) WithMessage(value string) *ReplicationControllerConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerspec.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerspec.go new file mode 100644 index 0000000000..dd4e081d9f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerspec.go @@ -0,0 +1,72 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ReplicationControllerSpecApplyConfiguration represents an declarative configuration of the ReplicationControllerSpec type for use +// with apply. +type ReplicationControllerSpecApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + Selector map[string]string `json:"selector,omitempty"` + Template *PodTemplateSpecApplyConfiguration `json:"template,omitempty"` +} + +// ReplicationControllerSpecApplyConfiguration constructs an declarative configuration of the ReplicationControllerSpec type for use with +// apply. +func ReplicationControllerSpec() *ReplicationControllerSpecApplyConfiguration { + return &ReplicationControllerSpecApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *ReplicationControllerSpecApplyConfiguration) WithReplicas(value int32) *ReplicationControllerSpecApplyConfiguration { + b.Replicas = &value + return b +} + +// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReadySeconds field is set to the value of the last call. +func (b *ReplicationControllerSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicationControllerSpecApplyConfiguration { + b.MinReadySeconds = &value + return b +} + +// WithSelector puts the entries into the Selector field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Selector field, +// overwriting an existing map entries in Selector field with the same key. +func (b *ReplicationControllerSpecApplyConfiguration) WithSelector(entries map[string]string) *ReplicationControllerSpecApplyConfiguration { + if b.Selector == nil && len(entries) > 0 { + b.Selector = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Selector[k] = v + } + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *ReplicationControllerSpecApplyConfiguration) WithTemplate(value *PodTemplateSpecApplyConfiguration) *ReplicationControllerSpecApplyConfiguration { + b.Template = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerstatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerstatus.go new file mode 100644 index 0000000000..1b994cfb8c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerstatus.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ReplicationControllerStatusApplyConfiguration represents an declarative configuration of the ReplicationControllerStatus type for use +// with apply. +type ReplicationControllerStatusApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + FullyLabeledReplicas *int32 `json:"fullyLabeledReplicas,omitempty"` + ReadyReplicas *int32 `json:"readyReplicas,omitempty"` + AvailableReplicas *int32 `json:"availableReplicas,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Conditions []ReplicationControllerConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// ReplicationControllerStatusApplyConfiguration constructs an declarative configuration of the ReplicationControllerStatus type for use with +// apply. +func ReplicationControllerStatus() *ReplicationControllerStatusApplyConfiguration { + return &ReplicationControllerStatusApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *ReplicationControllerStatusApplyConfiguration) WithReplicas(value int32) *ReplicationControllerStatusApplyConfiguration { + b.Replicas = &value + return b +} + +// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call. +func (b *ReplicationControllerStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicationControllerStatusApplyConfiguration { + b.FullyLabeledReplicas = &value + return b +} + +// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadyReplicas field is set to the value of the last call. +func (b *ReplicationControllerStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicationControllerStatusApplyConfiguration { + b.ReadyReplicas = &value + return b +} + +// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AvailableReplicas field is set to the value of the last call. +func (b *ReplicationControllerStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicationControllerStatusApplyConfiguration { + b.AvailableReplicas = &value + return b +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *ReplicationControllerStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicationControllerStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *ReplicationControllerStatusApplyConfiguration) WithConditions(values ...*ReplicationControllerConditionApplyConfiguration) *ReplicationControllerStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcefieldselector.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcefieldselector.go new file mode 100644 index 0000000000..2741227dd7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcefieldselector.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + resource "k8s.io/apimachinery/pkg/api/resource" +) + +// ResourceFieldSelectorApplyConfiguration represents an declarative configuration of the ResourceFieldSelector type for use +// with apply. +type ResourceFieldSelectorApplyConfiguration struct { + ContainerName *string `json:"containerName,omitempty"` + Resource *string `json:"resource,omitempty"` + Divisor *resource.Quantity `json:"divisor,omitempty"` +} + +// ResourceFieldSelectorApplyConfiguration constructs an declarative configuration of the ResourceFieldSelector type for use with +// apply. +func ResourceFieldSelector() *ResourceFieldSelectorApplyConfiguration { + return &ResourceFieldSelectorApplyConfiguration{} +} + +// WithContainerName sets the ContainerName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ContainerName field is set to the value of the last call. +func (b *ResourceFieldSelectorApplyConfiguration) WithContainerName(value string) *ResourceFieldSelectorApplyConfiguration { + b.ContainerName = &value + return b +} + +// WithResource sets the Resource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resource field is set to the value of the last call. +func (b *ResourceFieldSelectorApplyConfiguration) WithResource(value string) *ResourceFieldSelectorApplyConfiguration { + b.Resource = &value + return b +} + +// WithDivisor sets the Divisor field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Divisor field is set to the value of the last call. +func (b *ResourceFieldSelectorApplyConfiguration) WithDivisor(value resource.Quantity) *ResourceFieldSelectorApplyConfiguration { + b.Divisor = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequota.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequota.go new file mode 100644 index 0000000000..a0c4f0c0a2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequota.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ResourceQuotaApplyConfiguration represents an declarative configuration of the ResourceQuota type for use +// with apply. +type ResourceQuotaApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *ResourceQuotaSpecApplyConfiguration `json:"spec,omitempty"` + Status *ResourceQuotaStatusApplyConfiguration `json:"status,omitempty"` +} + +// ResourceQuota constructs an declarative configuration of the ResourceQuota type for use with +// apply. +func ResourceQuota(name, namespace string) *ResourceQuotaApplyConfiguration { + b := &ResourceQuotaApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("ResourceQuota") + b.WithAPIVersion("v1") + return b +} + +// ExtractResourceQuota extracts the applied configuration owned by fieldManager from +// resourceQuota. If no managedFields are found in resourceQuota for fieldManager, a +// ResourceQuotaApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// resourceQuota must be a unmodified ResourceQuota API object that was retrieved from the Kubernetes API. +// ExtractResourceQuota provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractResourceQuota(resourceQuota *apicorev1.ResourceQuota, fieldManager string) (*ResourceQuotaApplyConfiguration, error) { + b := &ResourceQuotaApplyConfiguration{} + err := managedfields.ExtractInto(resourceQuota, internal.Parser().Type("io.k8s.api.core.v1.ResourceQuota"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(resourceQuota.Name) + b.WithNamespace(resourceQuota.Namespace) + + b.WithKind("ResourceQuota") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithKind(value string) *ResourceQuotaApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithAPIVersion(value string) *ResourceQuotaApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithName(value string) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithGenerateName(value string) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithNamespace(value string) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithSelfLink(value string) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithUID(value types.UID) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithResourceVersion(value string) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithGeneration(value int64) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ResourceQuotaApplyConfiguration) WithLabels(entries map[string]string) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ResourceQuotaApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ResourceQuotaApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ResourceQuotaApplyConfiguration) WithFinalizers(values ...string) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithClusterName(value string) *ResourceQuotaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ResourceQuotaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithSpec(value *ResourceQuotaSpecApplyConfiguration) *ResourceQuotaApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ResourceQuotaApplyConfiguration) WithStatus(value *ResourceQuotaStatusApplyConfiguration) *ResourceQuotaApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotaspec.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotaspec.go new file mode 100644 index 0000000000..feb454bc4b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotaspec.go @@ -0,0 +1,63 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// ResourceQuotaSpecApplyConfiguration represents an declarative configuration of the ResourceQuotaSpec type for use +// with apply. +type ResourceQuotaSpecApplyConfiguration struct { + Hard *v1.ResourceList `json:"hard,omitempty"` + Scopes []v1.ResourceQuotaScope `json:"scopes,omitempty"` + ScopeSelector *ScopeSelectorApplyConfiguration `json:"scopeSelector,omitempty"` +} + +// ResourceQuotaSpecApplyConfiguration constructs an declarative configuration of the ResourceQuotaSpec type for use with +// apply. +func ResourceQuotaSpec() *ResourceQuotaSpecApplyConfiguration { + return &ResourceQuotaSpecApplyConfiguration{} +} + +// WithHard sets the Hard field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Hard field is set to the value of the last call. +func (b *ResourceQuotaSpecApplyConfiguration) WithHard(value v1.ResourceList) *ResourceQuotaSpecApplyConfiguration { + b.Hard = &value + return b +} + +// WithScopes adds the given value to the Scopes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Scopes field. +func (b *ResourceQuotaSpecApplyConfiguration) WithScopes(values ...v1.ResourceQuotaScope) *ResourceQuotaSpecApplyConfiguration { + for i := range values { + b.Scopes = append(b.Scopes, values[i]) + } + return b +} + +// WithScopeSelector sets the ScopeSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ScopeSelector field is set to the value of the last call. +func (b *ResourceQuotaSpecApplyConfiguration) WithScopeSelector(value *ScopeSelectorApplyConfiguration) *ResourceQuotaSpecApplyConfiguration { + b.ScopeSelector = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotastatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotastatus.go new file mode 100644 index 0000000000..4dced90f7a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotastatus.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// ResourceQuotaStatusApplyConfiguration represents an declarative configuration of the ResourceQuotaStatus type for use +// with apply. +type ResourceQuotaStatusApplyConfiguration struct { + Hard *v1.ResourceList `json:"hard,omitempty"` + Used *v1.ResourceList `json:"used,omitempty"` +} + +// ResourceQuotaStatusApplyConfiguration constructs an declarative configuration of the ResourceQuotaStatus type for use with +// apply. +func ResourceQuotaStatus() *ResourceQuotaStatusApplyConfiguration { + return &ResourceQuotaStatusApplyConfiguration{} +} + +// WithHard sets the Hard field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Hard field is set to the value of the last call. +func (b *ResourceQuotaStatusApplyConfiguration) WithHard(value v1.ResourceList) *ResourceQuotaStatusApplyConfiguration { + b.Hard = &value + return b +} + +// WithUsed sets the Used field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Used field is set to the value of the last call. +func (b *ResourceQuotaStatusApplyConfiguration) WithUsed(value v1.ResourceList) *ResourceQuotaStatusApplyConfiguration { + b.Used = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcerequirements.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcerequirements.go new file mode 100644 index 0000000000..d22f384794 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcerequirements.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// ResourceRequirementsApplyConfiguration represents an declarative configuration of the ResourceRequirements type for use +// with apply. +type ResourceRequirementsApplyConfiguration struct { + Limits *v1.ResourceList `json:"limits,omitempty"` + Requests *v1.ResourceList `json:"requests,omitempty"` +} + +// ResourceRequirementsApplyConfiguration constructs an declarative configuration of the ResourceRequirements type for use with +// apply. +func ResourceRequirements() *ResourceRequirementsApplyConfiguration { + return &ResourceRequirementsApplyConfiguration{} +} + +// WithLimits sets the Limits field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Limits field is set to the value of the last call. +func (b *ResourceRequirementsApplyConfiguration) WithLimits(value v1.ResourceList) *ResourceRequirementsApplyConfiguration { + b.Limits = &value + return b +} + +// WithRequests sets the Requests field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Requests field is set to the value of the last call. +func (b *ResourceRequirementsApplyConfiguration) WithRequests(value v1.ResourceList) *ResourceRequirementsApplyConfiguration { + b.Requests = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiopersistentvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiopersistentvolumesource.go new file mode 100644 index 0000000000..fffb5b186d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiopersistentvolumesource.go @@ -0,0 +1,120 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ScaleIOPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the ScaleIOPersistentVolumeSource type for use +// with apply. +type ScaleIOPersistentVolumeSourceApplyConfiguration struct { + Gateway *string `json:"gateway,omitempty"` + System *string `json:"system,omitempty"` + SecretRef *SecretReferenceApplyConfiguration `json:"secretRef,omitempty"` + SSLEnabled *bool `json:"sslEnabled,omitempty"` + ProtectionDomain *string `json:"protectionDomain,omitempty"` + StoragePool *string `json:"storagePool,omitempty"` + StorageMode *string `json:"storageMode,omitempty"` + VolumeName *string `json:"volumeName,omitempty"` + FSType *string `json:"fsType,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// ScaleIOPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the ScaleIOPersistentVolumeSource type for use with +// apply. +func ScaleIOPersistentVolumeSource() *ScaleIOPersistentVolumeSourceApplyConfiguration { + return &ScaleIOPersistentVolumeSourceApplyConfiguration{} +} + +// WithGateway sets the Gateway field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Gateway field is set to the value of the last call. +func (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithGateway(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration { + b.Gateway = &value + return b +} + +// WithSystem sets the System field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the System field is set to the value of the last call. +func (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithSystem(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration { + b.System = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *ScaleIOPersistentVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} + +// WithSSLEnabled sets the SSLEnabled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SSLEnabled field is set to the value of the last call. +func (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithSSLEnabled(value bool) *ScaleIOPersistentVolumeSourceApplyConfiguration { + b.SSLEnabled = &value + return b +} + +// WithProtectionDomain sets the ProtectionDomain field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProtectionDomain field is set to the value of the last call. +func (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithProtectionDomain(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration { + b.ProtectionDomain = &value + return b +} + +// WithStoragePool sets the StoragePool field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StoragePool field is set to the value of the last call. +func (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithStoragePool(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration { + b.StoragePool = &value + return b +} + +// WithStorageMode sets the StorageMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageMode field is set to the value of the last call. +func (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithStorageMode(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration { + b.StorageMode = &value + return b +} + +// WithVolumeName sets the VolumeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeName field is set to the value of the last call. +func (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithVolumeName(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration { + b.VolumeName = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ScaleIOPersistentVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiovolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiovolumesource.go new file mode 100644 index 0000000000..b54e1161eb --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiovolumesource.go @@ -0,0 +1,120 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ScaleIOVolumeSourceApplyConfiguration represents an declarative configuration of the ScaleIOVolumeSource type for use +// with apply. +type ScaleIOVolumeSourceApplyConfiguration struct { + Gateway *string `json:"gateway,omitempty"` + System *string `json:"system,omitempty"` + SecretRef *LocalObjectReferenceApplyConfiguration `json:"secretRef,omitempty"` + SSLEnabled *bool `json:"sslEnabled,omitempty"` + ProtectionDomain *string `json:"protectionDomain,omitempty"` + StoragePool *string `json:"storagePool,omitempty"` + StorageMode *string `json:"storageMode,omitempty"` + VolumeName *string `json:"volumeName,omitempty"` + FSType *string `json:"fsType,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// ScaleIOVolumeSourceApplyConfiguration constructs an declarative configuration of the ScaleIOVolumeSource type for use with +// apply. +func ScaleIOVolumeSource() *ScaleIOVolumeSourceApplyConfiguration { + return &ScaleIOVolumeSourceApplyConfiguration{} +} + +// WithGateway sets the Gateway field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Gateway field is set to the value of the last call. +func (b *ScaleIOVolumeSourceApplyConfiguration) WithGateway(value string) *ScaleIOVolumeSourceApplyConfiguration { + b.Gateway = &value + return b +} + +// WithSystem sets the System field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the System field is set to the value of the last call. +func (b *ScaleIOVolumeSourceApplyConfiguration) WithSystem(value string) *ScaleIOVolumeSourceApplyConfiguration { + b.System = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *ScaleIOVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *ScaleIOVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} + +// WithSSLEnabled sets the SSLEnabled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SSLEnabled field is set to the value of the last call. +func (b *ScaleIOVolumeSourceApplyConfiguration) WithSSLEnabled(value bool) *ScaleIOVolumeSourceApplyConfiguration { + b.SSLEnabled = &value + return b +} + +// WithProtectionDomain sets the ProtectionDomain field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProtectionDomain field is set to the value of the last call. +func (b *ScaleIOVolumeSourceApplyConfiguration) WithProtectionDomain(value string) *ScaleIOVolumeSourceApplyConfiguration { + b.ProtectionDomain = &value + return b +} + +// WithStoragePool sets the StoragePool field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StoragePool field is set to the value of the last call. +func (b *ScaleIOVolumeSourceApplyConfiguration) WithStoragePool(value string) *ScaleIOVolumeSourceApplyConfiguration { + b.StoragePool = &value + return b +} + +// WithStorageMode sets the StorageMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageMode field is set to the value of the last call. +func (b *ScaleIOVolumeSourceApplyConfiguration) WithStorageMode(value string) *ScaleIOVolumeSourceApplyConfiguration { + b.StorageMode = &value + return b +} + +// WithVolumeName sets the VolumeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeName field is set to the value of the last call. +func (b *ScaleIOVolumeSourceApplyConfiguration) WithVolumeName(value string) *ScaleIOVolumeSourceApplyConfiguration { + b.VolumeName = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *ScaleIOVolumeSourceApplyConfiguration) WithFSType(value string) *ScaleIOVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *ScaleIOVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ScaleIOVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/scopedresourceselectorrequirement.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/scopedresourceselectorrequirement.go new file mode 100644 index 0000000000..c901a2ae6d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/scopedresourceselectorrequirement.go @@ -0,0 +1,63 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// ScopedResourceSelectorRequirementApplyConfiguration represents an declarative configuration of the ScopedResourceSelectorRequirement type for use +// with apply. +type ScopedResourceSelectorRequirementApplyConfiguration struct { + ScopeName *v1.ResourceQuotaScope `json:"scopeName,omitempty"` + Operator *v1.ScopeSelectorOperator `json:"operator,omitempty"` + Values []string `json:"values,omitempty"` +} + +// ScopedResourceSelectorRequirementApplyConfiguration constructs an declarative configuration of the ScopedResourceSelectorRequirement type for use with +// apply. +func ScopedResourceSelectorRequirement() *ScopedResourceSelectorRequirementApplyConfiguration { + return &ScopedResourceSelectorRequirementApplyConfiguration{} +} + +// WithScopeName sets the ScopeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ScopeName field is set to the value of the last call. +func (b *ScopedResourceSelectorRequirementApplyConfiguration) WithScopeName(value v1.ResourceQuotaScope) *ScopedResourceSelectorRequirementApplyConfiguration { + b.ScopeName = &value + return b +} + +// WithOperator sets the Operator field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Operator field is set to the value of the last call. +func (b *ScopedResourceSelectorRequirementApplyConfiguration) WithOperator(value v1.ScopeSelectorOperator) *ScopedResourceSelectorRequirementApplyConfiguration { + b.Operator = &value + return b +} + +// WithValues adds the given value to the Values field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Values field. +func (b *ScopedResourceSelectorRequirementApplyConfiguration) WithValues(values ...string) *ScopedResourceSelectorRequirementApplyConfiguration { + for i := range values { + b.Values = append(b.Values, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/scopeselector.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/scopeselector.go new file mode 100644 index 0000000000..3251e9dc18 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/scopeselector.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ScopeSelectorApplyConfiguration represents an declarative configuration of the ScopeSelector type for use +// with apply. +type ScopeSelectorApplyConfiguration struct { + MatchExpressions []ScopedResourceSelectorRequirementApplyConfiguration `json:"matchExpressions,omitempty"` +} + +// ScopeSelectorApplyConfiguration constructs an declarative configuration of the ScopeSelector type for use with +// apply. +func ScopeSelector() *ScopeSelectorApplyConfiguration { + return &ScopeSelectorApplyConfiguration{} +} + +// WithMatchExpressions adds the given value to the MatchExpressions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the MatchExpressions field. +func (b *ScopeSelectorApplyConfiguration) WithMatchExpressions(values ...*ScopedResourceSelectorRequirementApplyConfiguration) *ScopeSelectorApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithMatchExpressions") + } + b.MatchExpressions = append(b.MatchExpressions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/seccompprofile.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/seccompprofile.go new file mode 100644 index 0000000000..9818a00e7a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/seccompprofile.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// SeccompProfileApplyConfiguration represents an declarative configuration of the SeccompProfile type for use +// with apply. +type SeccompProfileApplyConfiguration struct { + Type *v1.SeccompProfileType `json:"type,omitempty"` + LocalhostProfile *string `json:"localhostProfile,omitempty"` +} + +// SeccompProfileApplyConfiguration constructs an declarative configuration of the SeccompProfile type for use with +// apply. +func SeccompProfile() *SeccompProfileApplyConfiguration { + return &SeccompProfileApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *SeccompProfileApplyConfiguration) WithType(value v1.SeccompProfileType) *SeccompProfileApplyConfiguration { + b.Type = &value + return b +} + +// WithLocalhostProfile sets the LocalhostProfile field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LocalhostProfile field is set to the value of the last call. +func (b *SeccompProfileApplyConfiguration) WithLocalhostProfile(value string) *SeccompProfileApplyConfiguration { + b.LocalhostProfile = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/secret.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secret.go new file mode 100644 index 0000000000..7fd2aa9360 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secret.go @@ -0,0 +1,295 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// SecretApplyConfiguration represents an declarative configuration of the Secret type for use +// with apply. +type SecretApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Immutable *bool `json:"immutable,omitempty"` + Data map[string][]byte `json:"data,omitempty"` + StringData map[string]string `json:"stringData,omitempty"` + Type *corev1.SecretType `json:"type,omitempty"` +} + +// Secret constructs an declarative configuration of the Secret type for use with +// apply. +func Secret(name, namespace string) *SecretApplyConfiguration { + b := &SecretApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Secret") + b.WithAPIVersion("v1") + return b +} + +// ExtractSecret extracts the applied configuration owned by fieldManager from +// secret. If no managedFields are found in secret for fieldManager, a +// SecretApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// secret must be a unmodified Secret API object that was retrieved from the Kubernetes API. +// ExtractSecret provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractSecret(secret *corev1.Secret, fieldManager string) (*SecretApplyConfiguration, error) { + b := &SecretApplyConfiguration{} + err := managedfields.ExtractInto(secret, internal.Parser().Type("io.k8s.api.core.v1.Secret"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(secret.Name) + b.WithNamespace(secret.Namespace) + + b.WithKind("Secret") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithKind(value string) *SecretApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithAPIVersion(value string) *SecretApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithName(value string) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithGenerateName(value string) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithNamespace(value string) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithSelfLink(value string) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithUID(value types.UID) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithResourceVersion(value string) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithGeneration(value int64) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithCreationTimestamp(value metav1.Time) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *SecretApplyConfiguration) WithLabels(entries map[string]string) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *SecretApplyConfiguration) WithAnnotations(entries map[string]string) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *SecretApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *SecretApplyConfiguration) WithFinalizers(values ...string) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithClusterName(value string) *SecretApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *SecretApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithImmutable sets the Immutable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Immutable field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithImmutable(value bool) *SecretApplyConfiguration { + b.Immutable = &value + return b +} + +// WithData puts the entries into the Data field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Data field, +// overwriting an existing map entries in Data field with the same key. +func (b *SecretApplyConfiguration) WithData(entries map[string][]byte) *SecretApplyConfiguration { + if b.Data == nil && len(entries) > 0 { + b.Data = make(map[string][]byte, len(entries)) + } + for k, v := range entries { + b.Data[k] = v + } + return b +} + +// WithStringData puts the entries into the StringData field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the StringData field, +// overwriting an existing map entries in StringData field with the same key. +func (b *SecretApplyConfiguration) WithStringData(entries map[string]string) *SecretApplyConfiguration { + if b.StringData == nil && len(entries) > 0 { + b.StringData = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.StringData[k] = v + } + return b +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *SecretApplyConfiguration) WithType(value corev1.SecretType) *SecretApplyConfiguration { + b.Type = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretenvsource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretenvsource.go new file mode 100644 index 0000000000..7b22a8d0b2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretenvsource.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// SecretEnvSourceApplyConfiguration represents an declarative configuration of the SecretEnvSource type for use +// with apply. +type SecretEnvSourceApplyConfiguration struct { + LocalObjectReferenceApplyConfiguration `json:",inline"` + Optional *bool `json:"optional,omitempty"` +} + +// SecretEnvSourceApplyConfiguration constructs an declarative configuration of the SecretEnvSource type for use with +// apply. +func SecretEnvSource() *SecretEnvSourceApplyConfiguration { + return &SecretEnvSourceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *SecretEnvSourceApplyConfiguration) WithName(value string) *SecretEnvSourceApplyConfiguration { + b.Name = &value + return b +} + +// WithOptional sets the Optional field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Optional field is set to the value of the last call. +func (b *SecretEnvSourceApplyConfiguration) WithOptional(value bool) *SecretEnvSourceApplyConfiguration { + b.Optional = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretkeyselector.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretkeyselector.go new file mode 100644 index 0000000000..b8464a348a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretkeyselector.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// SecretKeySelectorApplyConfiguration represents an declarative configuration of the SecretKeySelector type for use +// with apply. +type SecretKeySelectorApplyConfiguration struct { + LocalObjectReferenceApplyConfiguration `json:",inline"` + Key *string `json:"key,omitempty"` + Optional *bool `json:"optional,omitempty"` +} + +// SecretKeySelectorApplyConfiguration constructs an declarative configuration of the SecretKeySelector type for use with +// apply. +func SecretKeySelector() *SecretKeySelectorApplyConfiguration { + return &SecretKeySelectorApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *SecretKeySelectorApplyConfiguration) WithName(value string) *SecretKeySelectorApplyConfiguration { + b.Name = &value + return b +} + +// WithKey sets the Key field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Key field is set to the value of the last call. +func (b *SecretKeySelectorApplyConfiguration) WithKey(value string) *SecretKeySelectorApplyConfiguration { + b.Key = &value + return b +} + +// WithOptional sets the Optional field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Optional field is set to the value of the last call. +func (b *SecretKeySelectorApplyConfiguration) WithOptional(value bool) *SecretKeySelectorApplyConfiguration { + b.Optional = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretprojection.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretprojection.go new file mode 100644 index 0000000000..e8edc61273 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretprojection.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// SecretProjectionApplyConfiguration represents an declarative configuration of the SecretProjection type for use +// with apply. +type SecretProjectionApplyConfiguration struct { + LocalObjectReferenceApplyConfiguration `json:",inline"` + Items []KeyToPathApplyConfiguration `json:"items,omitempty"` + Optional *bool `json:"optional,omitempty"` +} + +// SecretProjectionApplyConfiguration constructs an declarative configuration of the SecretProjection type for use with +// apply. +func SecretProjection() *SecretProjectionApplyConfiguration { + return &SecretProjectionApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *SecretProjectionApplyConfiguration) WithName(value string) *SecretProjectionApplyConfiguration { + b.Name = &value + return b +} + +// WithItems adds the given value to the Items field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Items field. +func (b *SecretProjectionApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *SecretProjectionApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithItems") + } + b.Items = append(b.Items, *values[i]) + } + return b +} + +// WithOptional sets the Optional field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Optional field is set to the value of the last call. +func (b *SecretProjectionApplyConfiguration) WithOptional(value bool) *SecretProjectionApplyConfiguration { + b.Optional = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretreference.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretreference.go new file mode 100644 index 0000000000..95579d003e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretreference.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// SecretReferenceApplyConfiguration represents an declarative configuration of the SecretReference type for use +// with apply. +type SecretReferenceApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` +} + +// SecretReferenceApplyConfiguration constructs an declarative configuration of the SecretReference type for use with +// apply. +func SecretReference() *SecretReferenceApplyConfiguration { + return &SecretReferenceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *SecretReferenceApplyConfiguration) WithName(value string) *SecretReferenceApplyConfiguration { + b.Name = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *SecretReferenceApplyConfiguration) WithNamespace(value string) *SecretReferenceApplyConfiguration { + b.Namespace = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretvolumesource.go new file mode 100644 index 0000000000..bcb441e9f3 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretvolumesource.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// SecretVolumeSourceApplyConfiguration represents an declarative configuration of the SecretVolumeSource type for use +// with apply. +type SecretVolumeSourceApplyConfiguration struct { + SecretName *string `json:"secretName,omitempty"` + Items []KeyToPathApplyConfiguration `json:"items,omitempty"` + DefaultMode *int32 `json:"defaultMode,omitempty"` + Optional *bool `json:"optional,omitempty"` +} + +// SecretVolumeSourceApplyConfiguration constructs an declarative configuration of the SecretVolumeSource type for use with +// apply. +func SecretVolumeSource() *SecretVolumeSourceApplyConfiguration { + return &SecretVolumeSourceApplyConfiguration{} +} + +// WithSecretName sets the SecretName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretName field is set to the value of the last call. +func (b *SecretVolumeSourceApplyConfiguration) WithSecretName(value string) *SecretVolumeSourceApplyConfiguration { + b.SecretName = &value + return b +} + +// WithItems adds the given value to the Items field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Items field. +func (b *SecretVolumeSourceApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *SecretVolumeSourceApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithItems") + } + b.Items = append(b.Items, *values[i]) + } + return b +} + +// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DefaultMode field is set to the value of the last call. +func (b *SecretVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *SecretVolumeSourceApplyConfiguration { + b.DefaultMode = &value + return b +} + +// WithOptional sets the Optional field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Optional field is set to the value of the last call. +func (b *SecretVolumeSourceApplyConfiguration) WithOptional(value bool) *SecretVolumeSourceApplyConfiguration { + b.Optional = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/securitycontext.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/securitycontext.go new file mode 100644 index 0000000000..8f01537eb3 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/securitycontext.go @@ -0,0 +1,133 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" +) + +// SecurityContextApplyConfiguration represents an declarative configuration of the SecurityContext type for use +// with apply. +type SecurityContextApplyConfiguration struct { + Capabilities *CapabilitiesApplyConfiguration `json:"capabilities,omitempty"` + Privileged *bool `json:"privileged,omitempty"` + SELinuxOptions *SELinuxOptionsApplyConfiguration `json:"seLinuxOptions,omitempty"` + WindowsOptions *WindowsSecurityContextOptionsApplyConfiguration `json:"windowsOptions,omitempty"` + RunAsUser *int64 `json:"runAsUser,omitempty"` + RunAsGroup *int64 `json:"runAsGroup,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty"` + AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty"` + ProcMount *corev1.ProcMountType `json:"procMount,omitempty"` + SeccompProfile *SeccompProfileApplyConfiguration `json:"seccompProfile,omitempty"` +} + +// SecurityContextApplyConfiguration constructs an declarative configuration of the SecurityContext type for use with +// apply. +func SecurityContext() *SecurityContextApplyConfiguration { + return &SecurityContextApplyConfiguration{} +} + +// WithCapabilities sets the Capabilities field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Capabilities field is set to the value of the last call. +func (b *SecurityContextApplyConfiguration) WithCapabilities(value *CapabilitiesApplyConfiguration) *SecurityContextApplyConfiguration { + b.Capabilities = value + return b +} + +// WithPrivileged sets the Privileged field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Privileged field is set to the value of the last call. +func (b *SecurityContextApplyConfiguration) WithPrivileged(value bool) *SecurityContextApplyConfiguration { + b.Privileged = &value + return b +} + +// WithSELinuxOptions sets the SELinuxOptions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SELinuxOptions field is set to the value of the last call. +func (b *SecurityContextApplyConfiguration) WithSELinuxOptions(value *SELinuxOptionsApplyConfiguration) *SecurityContextApplyConfiguration { + b.SELinuxOptions = value + return b +} + +// WithWindowsOptions sets the WindowsOptions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the WindowsOptions field is set to the value of the last call. +func (b *SecurityContextApplyConfiguration) WithWindowsOptions(value *WindowsSecurityContextOptionsApplyConfiguration) *SecurityContextApplyConfiguration { + b.WindowsOptions = value + return b +} + +// WithRunAsUser sets the RunAsUser field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RunAsUser field is set to the value of the last call. +func (b *SecurityContextApplyConfiguration) WithRunAsUser(value int64) *SecurityContextApplyConfiguration { + b.RunAsUser = &value + return b +} + +// WithRunAsGroup sets the RunAsGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RunAsGroup field is set to the value of the last call. +func (b *SecurityContextApplyConfiguration) WithRunAsGroup(value int64) *SecurityContextApplyConfiguration { + b.RunAsGroup = &value + return b +} + +// WithRunAsNonRoot sets the RunAsNonRoot field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RunAsNonRoot field is set to the value of the last call. +func (b *SecurityContextApplyConfiguration) WithRunAsNonRoot(value bool) *SecurityContextApplyConfiguration { + b.RunAsNonRoot = &value + return b +} + +// WithReadOnlyRootFilesystem sets the ReadOnlyRootFilesystem field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnlyRootFilesystem field is set to the value of the last call. +func (b *SecurityContextApplyConfiguration) WithReadOnlyRootFilesystem(value bool) *SecurityContextApplyConfiguration { + b.ReadOnlyRootFilesystem = &value + return b +} + +// WithAllowPrivilegeEscalation sets the AllowPrivilegeEscalation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AllowPrivilegeEscalation field is set to the value of the last call. +func (b *SecurityContextApplyConfiguration) WithAllowPrivilegeEscalation(value bool) *SecurityContextApplyConfiguration { + b.AllowPrivilegeEscalation = &value + return b +} + +// WithProcMount sets the ProcMount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProcMount field is set to the value of the last call. +func (b *SecurityContextApplyConfiguration) WithProcMount(value corev1.ProcMountType) *SecurityContextApplyConfiguration { + b.ProcMount = &value + return b +} + +// WithSeccompProfile sets the SeccompProfile field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SeccompProfile field is set to the value of the last call. +func (b *SecurityContextApplyConfiguration) WithSeccompProfile(value *SeccompProfileApplyConfiguration) *SecurityContextApplyConfiguration { + b.SeccompProfile = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/selinuxoptions.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/selinuxoptions.go new file mode 100644 index 0000000000..2938faa18e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/selinuxoptions.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// SELinuxOptionsApplyConfiguration represents an declarative configuration of the SELinuxOptions type for use +// with apply. +type SELinuxOptionsApplyConfiguration struct { + User *string `json:"user,omitempty"` + Role *string `json:"role,omitempty"` + Type *string `json:"type,omitempty"` + Level *string `json:"level,omitempty"` +} + +// SELinuxOptionsApplyConfiguration constructs an declarative configuration of the SELinuxOptions type for use with +// apply. +func SELinuxOptions() *SELinuxOptionsApplyConfiguration { + return &SELinuxOptionsApplyConfiguration{} +} + +// WithUser sets the User field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the User field is set to the value of the last call. +func (b *SELinuxOptionsApplyConfiguration) WithUser(value string) *SELinuxOptionsApplyConfiguration { + b.User = &value + return b +} + +// WithRole sets the Role field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Role field is set to the value of the last call. +func (b *SELinuxOptionsApplyConfiguration) WithRole(value string) *SELinuxOptionsApplyConfiguration { + b.Role = &value + return b +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *SELinuxOptionsApplyConfiguration) WithType(value string) *SELinuxOptionsApplyConfiguration { + b.Type = &value + return b +} + +// WithLevel sets the Level field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Level field is set to the value of the last call. +func (b *SELinuxOptionsApplyConfiguration) WithLevel(value string) *SELinuxOptionsApplyConfiguration { + b.Level = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/service.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/service.go new file mode 100644 index 0000000000..38c4395593 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/service.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ServiceApplyConfiguration represents an declarative configuration of the Service type for use +// with apply. +type ServiceApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *ServiceSpecApplyConfiguration `json:"spec,omitempty"` + Status *ServiceStatusApplyConfiguration `json:"status,omitempty"` +} + +// Service constructs an declarative configuration of the Service type for use with +// apply. +func Service(name, namespace string) *ServiceApplyConfiguration { + b := &ServiceApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Service") + b.WithAPIVersion("v1") + return b +} + +// ExtractService extracts the applied configuration owned by fieldManager from +// service. If no managedFields are found in service for fieldManager, a +// ServiceApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// service must be a unmodified Service API object that was retrieved from the Kubernetes API. +// ExtractService provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractService(service *apicorev1.Service, fieldManager string) (*ServiceApplyConfiguration, error) { + b := &ServiceApplyConfiguration{} + err := managedfields.ExtractInto(service, internal.Parser().Type("io.k8s.api.core.v1.Service"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(service.Name) + b.WithNamespace(service.Namespace) + + b.WithKind("Service") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithKind(value string) *ServiceApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithAPIVersion(value string) *ServiceApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithName(value string) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithGenerateName(value string) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithNamespace(value string) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithSelfLink(value string) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithUID(value types.UID) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithResourceVersion(value string) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithGeneration(value int64) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ServiceApplyConfiguration) WithLabels(entries map[string]string) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ServiceApplyConfiguration) WithAnnotations(entries map[string]string) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ServiceApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ServiceApplyConfiguration) WithFinalizers(values ...string) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithClusterName(value string) *ServiceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ServiceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithSpec(value *ServiceSpecApplyConfiguration) *ServiceApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ServiceApplyConfiguration) WithStatus(value *ServiceStatusApplyConfiguration) *ServiceApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccount.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccount.go new file mode 100644 index 0000000000..46983e4a7b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccount.go @@ -0,0 +1,284 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apicorev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ServiceAccountApplyConfiguration represents an declarative configuration of the ServiceAccount type for use +// with apply. +type ServiceAccountApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Secrets []ObjectReferenceApplyConfiguration `json:"secrets,omitempty"` + ImagePullSecrets []LocalObjectReferenceApplyConfiguration `json:"imagePullSecrets,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` +} + +// ServiceAccount constructs an declarative configuration of the ServiceAccount type for use with +// apply. +func ServiceAccount(name, namespace string) *ServiceAccountApplyConfiguration { + b := &ServiceAccountApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("ServiceAccount") + b.WithAPIVersion("v1") + return b +} + +// ExtractServiceAccount extracts the applied configuration owned by fieldManager from +// serviceAccount. If no managedFields are found in serviceAccount for fieldManager, a +// ServiceAccountApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// serviceAccount must be a unmodified ServiceAccount API object that was retrieved from the Kubernetes API. +// ExtractServiceAccount provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractServiceAccount(serviceAccount *apicorev1.ServiceAccount, fieldManager string) (*ServiceAccountApplyConfiguration, error) { + b := &ServiceAccountApplyConfiguration{} + err := managedfields.ExtractInto(serviceAccount, internal.Parser().Type("io.k8s.api.core.v1.ServiceAccount"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(serviceAccount.Name) + b.WithNamespace(serviceAccount.Namespace) + + b.WithKind("ServiceAccount") + b.WithAPIVersion("v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithKind(value string) *ServiceAccountApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithAPIVersion(value string) *ServiceAccountApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithName(value string) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithGenerateName(value string) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithNamespace(value string) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithSelfLink(value string) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithUID(value types.UID) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithResourceVersion(value string) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithGeneration(value int64) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ServiceAccountApplyConfiguration) WithLabels(entries map[string]string) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ServiceAccountApplyConfiguration) WithAnnotations(entries map[string]string) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ServiceAccountApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ServiceAccountApplyConfiguration) WithFinalizers(values ...string) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithClusterName(value string) *ServiceAccountApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ServiceAccountApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSecrets adds the given value to the Secrets field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Secrets field. +func (b *ServiceAccountApplyConfiguration) WithSecrets(values ...*ObjectReferenceApplyConfiguration) *ServiceAccountApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSecrets") + } + b.Secrets = append(b.Secrets, *values[i]) + } + return b +} + +// WithImagePullSecrets adds the given value to the ImagePullSecrets field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ImagePullSecrets field. +func (b *ServiceAccountApplyConfiguration) WithImagePullSecrets(values ...*LocalObjectReferenceApplyConfiguration) *ServiceAccountApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithImagePullSecrets") + } + b.ImagePullSecrets = append(b.ImagePullSecrets, *values[i]) + } + return b +} + +// WithAutomountServiceAccountToken sets the AutomountServiceAccountToken field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AutomountServiceAccountToken field is set to the value of the last call. +func (b *ServiceAccountApplyConfiguration) WithAutomountServiceAccountToken(value bool) *ServiceAccountApplyConfiguration { + b.AutomountServiceAccountToken = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccounttokenprojection.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccounttokenprojection.go new file mode 100644 index 0000000000..a52fad7d8d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccounttokenprojection.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ServiceAccountTokenProjectionApplyConfiguration represents an declarative configuration of the ServiceAccountTokenProjection type for use +// with apply. +type ServiceAccountTokenProjectionApplyConfiguration struct { + Audience *string `json:"audience,omitempty"` + ExpirationSeconds *int64 `json:"expirationSeconds,omitempty"` + Path *string `json:"path,omitempty"` +} + +// ServiceAccountTokenProjectionApplyConfiguration constructs an declarative configuration of the ServiceAccountTokenProjection type for use with +// apply. +func ServiceAccountTokenProjection() *ServiceAccountTokenProjectionApplyConfiguration { + return &ServiceAccountTokenProjectionApplyConfiguration{} +} + +// WithAudience sets the Audience field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Audience field is set to the value of the last call. +func (b *ServiceAccountTokenProjectionApplyConfiguration) WithAudience(value string) *ServiceAccountTokenProjectionApplyConfiguration { + b.Audience = &value + return b +} + +// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ExpirationSeconds field is set to the value of the last call. +func (b *ServiceAccountTokenProjectionApplyConfiguration) WithExpirationSeconds(value int64) *ServiceAccountTokenProjectionApplyConfiguration { + b.ExpirationSeconds = &value + return b +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *ServiceAccountTokenProjectionApplyConfiguration) WithPath(value string) *ServiceAccountTokenProjectionApplyConfiguration { + b.Path = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceport.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceport.go new file mode 100644 index 0000000000..8bc63bd950 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceport.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// ServicePortApplyConfiguration represents an declarative configuration of the ServicePort type for use +// with apply. +type ServicePortApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Protocol *v1.Protocol `json:"protocol,omitempty"` + AppProtocol *string `json:"appProtocol,omitempty"` + Port *int32 `json:"port,omitempty"` + TargetPort *intstr.IntOrString `json:"targetPort,omitempty"` + NodePort *int32 `json:"nodePort,omitempty"` +} + +// ServicePortApplyConfiguration constructs an declarative configuration of the ServicePort type for use with +// apply. +func ServicePort() *ServicePortApplyConfiguration { + return &ServicePortApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ServicePortApplyConfiguration) WithName(value string) *ServicePortApplyConfiguration { + b.Name = &value + return b +} + +// WithProtocol sets the Protocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Protocol field is set to the value of the last call. +func (b *ServicePortApplyConfiguration) WithProtocol(value v1.Protocol) *ServicePortApplyConfiguration { + b.Protocol = &value + return b +} + +// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AppProtocol field is set to the value of the last call. +func (b *ServicePortApplyConfiguration) WithAppProtocol(value string) *ServicePortApplyConfiguration { + b.AppProtocol = &value + return b +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *ServicePortApplyConfiguration) WithPort(value int32) *ServicePortApplyConfiguration { + b.Port = &value + return b +} + +// WithTargetPort sets the TargetPort field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetPort field is set to the value of the last call. +func (b *ServicePortApplyConfiguration) WithTargetPort(value intstr.IntOrString) *ServicePortApplyConfiguration { + b.TargetPort = &value + return b +} + +// WithNodePort sets the NodePort field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodePort field is set to the value of the last call. +func (b *ServicePortApplyConfiguration) WithNodePort(value int32) *ServicePortApplyConfiguration { + b.NodePort = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go new file mode 100644 index 0000000000..99361cecf0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go @@ -0,0 +1,235 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" +) + +// ServiceSpecApplyConfiguration represents an declarative configuration of the ServiceSpec type for use +// with apply. +type ServiceSpecApplyConfiguration struct { + Ports []ServicePortApplyConfiguration `json:"ports,omitempty"` + Selector map[string]string `json:"selector,omitempty"` + ClusterIP *string `json:"clusterIP,omitempty"` + ClusterIPs []string `json:"clusterIPs,omitempty"` + Type *corev1.ServiceType `json:"type,omitempty"` + ExternalIPs []string `json:"externalIPs,omitempty"` + SessionAffinity *corev1.ServiceAffinity `json:"sessionAffinity,omitempty"` + LoadBalancerIP *string `json:"loadBalancerIP,omitempty"` + LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"` + ExternalName *string `json:"externalName,omitempty"` + ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty"` + HealthCheckNodePort *int32 `json:"healthCheckNodePort,omitempty"` + PublishNotReadyAddresses *bool `json:"publishNotReadyAddresses,omitempty"` + SessionAffinityConfig *SessionAffinityConfigApplyConfiguration `json:"sessionAffinityConfig,omitempty"` + TopologyKeys []string `json:"topologyKeys,omitempty"` + IPFamilies []corev1.IPFamily `json:"ipFamilies,omitempty"` + IPFamilyPolicy *corev1.IPFamilyPolicyType `json:"ipFamilyPolicy,omitempty"` + AllocateLoadBalancerNodePorts *bool `json:"allocateLoadBalancerNodePorts,omitempty"` + LoadBalancerClass *string `json:"loadBalancerClass,omitempty"` + InternalTrafficPolicy *corev1.ServiceInternalTrafficPolicyType `json:"internalTrafficPolicy,omitempty"` +} + +// ServiceSpecApplyConfiguration constructs an declarative configuration of the ServiceSpec type for use with +// apply. +func ServiceSpec() *ServiceSpecApplyConfiguration { + return &ServiceSpecApplyConfiguration{} +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *ServiceSpecApplyConfiguration) WithPorts(values ...*ServicePortApplyConfiguration) *ServiceSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} + +// WithSelector puts the entries into the Selector field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Selector field, +// overwriting an existing map entries in Selector field with the same key. +func (b *ServiceSpecApplyConfiguration) WithSelector(entries map[string]string) *ServiceSpecApplyConfiguration { + if b.Selector == nil && len(entries) > 0 { + b.Selector = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Selector[k] = v + } + return b +} + +// WithClusterIP sets the ClusterIP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterIP field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithClusterIP(value string) *ServiceSpecApplyConfiguration { + b.ClusterIP = &value + return b +} + +// WithClusterIPs adds the given value to the ClusterIPs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ClusterIPs field. +func (b *ServiceSpecApplyConfiguration) WithClusterIPs(values ...string) *ServiceSpecApplyConfiguration { + for i := range values { + b.ClusterIPs = append(b.ClusterIPs, values[i]) + } + return b +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithType(value corev1.ServiceType) *ServiceSpecApplyConfiguration { + b.Type = &value + return b +} + +// WithExternalIPs adds the given value to the ExternalIPs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ExternalIPs field. +func (b *ServiceSpecApplyConfiguration) WithExternalIPs(values ...string) *ServiceSpecApplyConfiguration { + for i := range values { + b.ExternalIPs = append(b.ExternalIPs, values[i]) + } + return b +} + +// WithSessionAffinity sets the SessionAffinity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SessionAffinity field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithSessionAffinity(value corev1.ServiceAffinity) *ServiceSpecApplyConfiguration { + b.SessionAffinity = &value + return b +} + +// WithLoadBalancerIP sets the LoadBalancerIP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LoadBalancerIP field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithLoadBalancerIP(value string) *ServiceSpecApplyConfiguration { + b.LoadBalancerIP = &value + return b +} + +// WithLoadBalancerSourceRanges adds the given value to the LoadBalancerSourceRanges field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the LoadBalancerSourceRanges field. +func (b *ServiceSpecApplyConfiguration) WithLoadBalancerSourceRanges(values ...string) *ServiceSpecApplyConfiguration { + for i := range values { + b.LoadBalancerSourceRanges = append(b.LoadBalancerSourceRanges, values[i]) + } + return b +} + +// WithExternalName sets the ExternalName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ExternalName field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithExternalName(value string) *ServiceSpecApplyConfiguration { + b.ExternalName = &value + return b +} + +// WithExternalTrafficPolicy sets the ExternalTrafficPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ExternalTrafficPolicy field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithExternalTrafficPolicy(value corev1.ServiceExternalTrafficPolicyType) *ServiceSpecApplyConfiguration { + b.ExternalTrafficPolicy = &value + return b +} + +// WithHealthCheckNodePort sets the HealthCheckNodePort field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HealthCheckNodePort field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithHealthCheckNodePort(value int32) *ServiceSpecApplyConfiguration { + b.HealthCheckNodePort = &value + return b +} + +// WithPublishNotReadyAddresses sets the PublishNotReadyAddresses field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PublishNotReadyAddresses field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithPublishNotReadyAddresses(value bool) *ServiceSpecApplyConfiguration { + b.PublishNotReadyAddresses = &value + return b +} + +// WithSessionAffinityConfig sets the SessionAffinityConfig field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SessionAffinityConfig field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithSessionAffinityConfig(value *SessionAffinityConfigApplyConfiguration) *ServiceSpecApplyConfiguration { + b.SessionAffinityConfig = value + return b +} + +// WithTopologyKeys adds the given value to the TopologyKeys field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the TopologyKeys field. +func (b *ServiceSpecApplyConfiguration) WithTopologyKeys(values ...string) *ServiceSpecApplyConfiguration { + for i := range values { + b.TopologyKeys = append(b.TopologyKeys, values[i]) + } + return b +} + +// WithIPFamilies adds the given value to the IPFamilies field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the IPFamilies field. +func (b *ServiceSpecApplyConfiguration) WithIPFamilies(values ...corev1.IPFamily) *ServiceSpecApplyConfiguration { + for i := range values { + b.IPFamilies = append(b.IPFamilies, values[i]) + } + return b +} + +// WithIPFamilyPolicy sets the IPFamilyPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IPFamilyPolicy field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithIPFamilyPolicy(value corev1.IPFamilyPolicyType) *ServiceSpecApplyConfiguration { + b.IPFamilyPolicy = &value + return b +} + +// WithAllocateLoadBalancerNodePorts sets the AllocateLoadBalancerNodePorts field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AllocateLoadBalancerNodePorts field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithAllocateLoadBalancerNodePorts(value bool) *ServiceSpecApplyConfiguration { + b.AllocateLoadBalancerNodePorts = &value + return b +} + +// WithLoadBalancerClass sets the LoadBalancerClass field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LoadBalancerClass field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithLoadBalancerClass(value string) *ServiceSpecApplyConfiguration { + b.LoadBalancerClass = &value + return b +} + +// WithInternalTrafficPolicy sets the InternalTrafficPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the InternalTrafficPolicy field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithInternalTrafficPolicy(value corev1.ServiceInternalTrafficPolicyType) *ServiceSpecApplyConfiguration { + b.InternalTrafficPolicy = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/servicestatus.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/servicestatus.go new file mode 100644 index 0000000000..2347cec678 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/servicestatus.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + metav1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ServiceStatusApplyConfiguration represents an declarative configuration of the ServiceStatus type for use +// with apply. +type ServiceStatusApplyConfiguration struct { + LoadBalancer *LoadBalancerStatusApplyConfiguration `json:"loadBalancer,omitempty"` + Conditions []metav1.ConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// ServiceStatusApplyConfiguration constructs an declarative configuration of the ServiceStatus type for use with +// apply. +func ServiceStatus() *ServiceStatusApplyConfiguration { + return &ServiceStatusApplyConfiguration{} +} + +// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LoadBalancer field is set to the value of the last call. +func (b *ServiceStatusApplyConfiguration) WithLoadBalancer(value *LoadBalancerStatusApplyConfiguration) *ServiceStatusApplyConfiguration { + b.LoadBalancer = value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *ServiceStatusApplyConfiguration) WithConditions(values ...*metav1.ConditionApplyConfiguration) *ServiceStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/sessionaffinityconfig.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/sessionaffinityconfig.go new file mode 100644 index 0000000000..7016f836a1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/sessionaffinityconfig.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// SessionAffinityConfigApplyConfiguration represents an declarative configuration of the SessionAffinityConfig type for use +// with apply. +type SessionAffinityConfigApplyConfiguration struct { + ClientIP *ClientIPConfigApplyConfiguration `json:"clientIP,omitempty"` +} + +// SessionAffinityConfigApplyConfiguration constructs an declarative configuration of the SessionAffinityConfig type for use with +// apply. +func SessionAffinityConfig() *SessionAffinityConfigApplyConfiguration { + return &SessionAffinityConfigApplyConfiguration{} +} + +// WithClientIP sets the ClientIP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClientIP field is set to the value of the last call. +func (b *SessionAffinityConfigApplyConfiguration) WithClientIP(value *ClientIPConfigApplyConfiguration) *SessionAffinityConfigApplyConfiguration { + b.ClientIP = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/storageospersistentvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/storageospersistentvolumesource.go new file mode 100644 index 0000000000..00ed39ccb0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/storageospersistentvolumesource.go @@ -0,0 +1,75 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// StorageOSPersistentVolumeSourceApplyConfiguration represents an declarative configuration of the StorageOSPersistentVolumeSource type for use +// with apply. +type StorageOSPersistentVolumeSourceApplyConfiguration struct { + VolumeName *string `json:"volumeName,omitempty"` + VolumeNamespace *string `json:"volumeNamespace,omitempty"` + FSType *string `json:"fsType,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + SecretRef *ObjectReferenceApplyConfiguration `json:"secretRef,omitempty"` +} + +// StorageOSPersistentVolumeSourceApplyConfiguration constructs an declarative configuration of the StorageOSPersistentVolumeSource type for use with +// apply. +func StorageOSPersistentVolumeSource() *StorageOSPersistentVolumeSourceApplyConfiguration { + return &StorageOSPersistentVolumeSourceApplyConfiguration{} +} + +// WithVolumeName sets the VolumeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeName field is set to the value of the last call. +func (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithVolumeName(value string) *StorageOSPersistentVolumeSourceApplyConfiguration { + b.VolumeName = &value + return b +} + +// WithVolumeNamespace sets the VolumeNamespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeNamespace field is set to the value of the last call. +func (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithVolumeNamespace(value string) *StorageOSPersistentVolumeSourceApplyConfiguration { + b.VolumeNamespace = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *StorageOSPersistentVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *StorageOSPersistentVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *ObjectReferenceApplyConfiguration) *StorageOSPersistentVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/storageosvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/storageosvolumesource.go new file mode 100644 index 0000000000..7f3b810cf6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/storageosvolumesource.go @@ -0,0 +1,75 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// StorageOSVolumeSourceApplyConfiguration represents an declarative configuration of the StorageOSVolumeSource type for use +// with apply. +type StorageOSVolumeSourceApplyConfiguration struct { + VolumeName *string `json:"volumeName,omitempty"` + VolumeNamespace *string `json:"volumeNamespace,omitempty"` + FSType *string `json:"fsType,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + SecretRef *LocalObjectReferenceApplyConfiguration `json:"secretRef,omitempty"` +} + +// StorageOSVolumeSourceApplyConfiguration constructs an declarative configuration of the StorageOSVolumeSource type for use with +// apply. +func StorageOSVolumeSource() *StorageOSVolumeSourceApplyConfiguration { + return &StorageOSVolumeSourceApplyConfiguration{} +} + +// WithVolumeName sets the VolumeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeName field is set to the value of the last call. +func (b *StorageOSVolumeSourceApplyConfiguration) WithVolumeName(value string) *StorageOSVolumeSourceApplyConfiguration { + b.VolumeName = &value + return b +} + +// WithVolumeNamespace sets the VolumeNamespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeNamespace field is set to the value of the last call. +func (b *StorageOSVolumeSourceApplyConfiguration) WithVolumeNamespace(value string) *StorageOSVolumeSourceApplyConfiguration { + b.VolumeNamespace = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *StorageOSVolumeSourceApplyConfiguration) WithFSType(value string) *StorageOSVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *StorageOSVolumeSourceApplyConfiguration) WithReadOnly(value bool) *StorageOSVolumeSourceApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithSecretRef sets the SecretRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretRef field is set to the value of the last call. +func (b *StorageOSVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *StorageOSVolumeSourceApplyConfiguration { + b.SecretRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/sysctl.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/sysctl.go new file mode 100644 index 0000000000..deab9e0b38 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/sysctl.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// SysctlApplyConfiguration represents an declarative configuration of the Sysctl type for use +// with apply. +type SysctlApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Value *string `json:"value,omitempty"` +} + +// SysctlApplyConfiguration constructs an declarative configuration of the Sysctl type for use with +// apply. +func Sysctl() *SysctlApplyConfiguration { + return &SysctlApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *SysctlApplyConfiguration) WithName(value string) *SysctlApplyConfiguration { + b.Name = &value + return b +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *SysctlApplyConfiguration) WithValue(value string) *SysctlApplyConfiguration { + b.Value = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/taint.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/taint.go new file mode 100644 index 0000000000..4672b87427 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/taint.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// TaintApplyConfiguration represents an declarative configuration of the Taint type for use +// with apply. +type TaintApplyConfiguration struct { + Key *string `json:"key,omitempty"` + Value *string `json:"value,omitempty"` + Effect *v1.TaintEffect `json:"effect,omitempty"` + TimeAdded *metav1.Time `json:"timeAdded,omitempty"` +} + +// TaintApplyConfiguration constructs an declarative configuration of the Taint type for use with +// apply. +func Taint() *TaintApplyConfiguration { + return &TaintApplyConfiguration{} +} + +// WithKey sets the Key field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Key field is set to the value of the last call. +func (b *TaintApplyConfiguration) WithKey(value string) *TaintApplyConfiguration { + b.Key = &value + return b +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *TaintApplyConfiguration) WithValue(value string) *TaintApplyConfiguration { + b.Value = &value + return b +} + +// WithEffect sets the Effect field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Effect field is set to the value of the last call. +func (b *TaintApplyConfiguration) WithEffect(value v1.TaintEffect) *TaintApplyConfiguration { + b.Effect = &value + return b +} + +// WithTimeAdded sets the TimeAdded field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TimeAdded field is set to the value of the last call. +func (b *TaintApplyConfiguration) WithTimeAdded(value metav1.Time) *TaintApplyConfiguration { + b.TimeAdded = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/tcpsocketaction.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/tcpsocketaction.go new file mode 100644 index 0000000000..bd038fc3ae --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/tcpsocketaction.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// TCPSocketActionApplyConfiguration represents an declarative configuration of the TCPSocketAction type for use +// with apply. +type TCPSocketActionApplyConfiguration struct { + Port *intstr.IntOrString `json:"port,omitempty"` + Host *string `json:"host,omitempty"` +} + +// TCPSocketActionApplyConfiguration constructs an declarative configuration of the TCPSocketAction type for use with +// apply. +func TCPSocketAction() *TCPSocketActionApplyConfiguration { + return &TCPSocketActionApplyConfiguration{} +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *TCPSocketActionApplyConfiguration) WithPort(value intstr.IntOrString) *TCPSocketActionApplyConfiguration { + b.Port = &value + return b +} + +// WithHost sets the Host field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Host field is set to the value of the last call. +func (b *TCPSocketActionApplyConfiguration) WithHost(value string) *TCPSocketActionApplyConfiguration { + b.Host = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/toleration.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/toleration.go new file mode 100644 index 0000000000..1a92a8c668 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/toleration.go @@ -0,0 +1,79 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// TolerationApplyConfiguration represents an declarative configuration of the Toleration type for use +// with apply. +type TolerationApplyConfiguration struct { + Key *string `json:"key,omitempty"` + Operator *v1.TolerationOperator `json:"operator,omitempty"` + Value *string `json:"value,omitempty"` + Effect *v1.TaintEffect `json:"effect,omitempty"` + TolerationSeconds *int64 `json:"tolerationSeconds,omitempty"` +} + +// TolerationApplyConfiguration constructs an declarative configuration of the Toleration type for use with +// apply. +func Toleration() *TolerationApplyConfiguration { + return &TolerationApplyConfiguration{} +} + +// WithKey sets the Key field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Key field is set to the value of the last call. +func (b *TolerationApplyConfiguration) WithKey(value string) *TolerationApplyConfiguration { + b.Key = &value + return b +} + +// WithOperator sets the Operator field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Operator field is set to the value of the last call. +func (b *TolerationApplyConfiguration) WithOperator(value v1.TolerationOperator) *TolerationApplyConfiguration { + b.Operator = &value + return b +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *TolerationApplyConfiguration) WithValue(value string) *TolerationApplyConfiguration { + b.Value = &value + return b +} + +// WithEffect sets the Effect field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Effect field is set to the value of the last call. +func (b *TolerationApplyConfiguration) WithEffect(value v1.TaintEffect) *TolerationApplyConfiguration { + b.Effect = &value + return b +} + +// WithTolerationSeconds sets the TolerationSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TolerationSeconds field is set to the value of the last call. +func (b *TolerationApplyConfiguration) WithTolerationSeconds(value int64) *TolerationApplyConfiguration { + b.TolerationSeconds = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorlabelrequirement.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorlabelrequirement.go new file mode 100644 index 0000000000..9581490de2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorlabelrequirement.go @@ -0,0 +1,50 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// TopologySelectorLabelRequirementApplyConfiguration represents an declarative configuration of the TopologySelectorLabelRequirement type for use +// with apply. +type TopologySelectorLabelRequirementApplyConfiguration struct { + Key *string `json:"key,omitempty"` + Values []string `json:"values,omitempty"` +} + +// TopologySelectorLabelRequirementApplyConfiguration constructs an declarative configuration of the TopologySelectorLabelRequirement type for use with +// apply. +func TopologySelectorLabelRequirement() *TopologySelectorLabelRequirementApplyConfiguration { + return &TopologySelectorLabelRequirementApplyConfiguration{} +} + +// WithKey sets the Key field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Key field is set to the value of the last call. +func (b *TopologySelectorLabelRequirementApplyConfiguration) WithKey(value string) *TopologySelectorLabelRequirementApplyConfiguration { + b.Key = &value + return b +} + +// WithValues adds the given value to the Values field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Values field. +func (b *TopologySelectorLabelRequirementApplyConfiguration) WithValues(values ...string) *TopologySelectorLabelRequirementApplyConfiguration { + for i := range values { + b.Values = append(b.Values, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorterm.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorterm.go new file mode 100644 index 0000000000..a025b8a2a8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorterm.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// TopologySelectorTermApplyConfiguration represents an declarative configuration of the TopologySelectorTerm type for use +// with apply. +type TopologySelectorTermApplyConfiguration struct { + MatchLabelExpressions []TopologySelectorLabelRequirementApplyConfiguration `json:"matchLabelExpressions,omitempty"` +} + +// TopologySelectorTermApplyConfiguration constructs an declarative configuration of the TopologySelectorTerm type for use with +// apply. +func TopologySelectorTerm() *TopologySelectorTermApplyConfiguration { + return &TopologySelectorTermApplyConfiguration{} +} + +// WithMatchLabelExpressions adds the given value to the MatchLabelExpressions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the MatchLabelExpressions field. +func (b *TopologySelectorTermApplyConfiguration) WithMatchLabelExpressions(values ...*TopologySelectorLabelRequirementApplyConfiguration) *TopologySelectorTermApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithMatchLabelExpressions") + } + b.MatchLabelExpressions = append(b.MatchLabelExpressions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyspreadconstraint.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyspreadconstraint.go new file mode 100644 index 0000000000..ac8b82eead --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyspreadconstraint.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// TopologySpreadConstraintApplyConfiguration represents an declarative configuration of the TopologySpreadConstraint type for use +// with apply. +type TopologySpreadConstraintApplyConfiguration struct { + MaxSkew *int32 `json:"maxSkew,omitempty"` + TopologyKey *string `json:"topologyKey,omitempty"` + WhenUnsatisfiable *v1.UnsatisfiableConstraintAction `json:"whenUnsatisfiable,omitempty"` + LabelSelector *metav1.LabelSelectorApplyConfiguration `json:"labelSelector,omitempty"` +} + +// TopologySpreadConstraintApplyConfiguration constructs an declarative configuration of the TopologySpreadConstraint type for use with +// apply. +func TopologySpreadConstraint() *TopologySpreadConstraintApplyConfiguration { + return &TopologySpreadConstraintApplyConfiguration{} +} + +// WithMaxSkew sets the MaxSkew field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxSkew field is set to the value of the last call. +func (b *TopologySpreadConstraintApplyConfiguration) WithMaxSkew(value int32) *TopologySpreadConstraintApplyConfiguration { + b.MaxSkew = &value + return b +} + +// WithTopologyKey sets the TopologyKey field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TopologyKey field is set to the value of the last call. +func (b *TopologySpreadConstraintApplyConfiguration) WithTopologyKey(value string) *TopologySpreadConstraintApplyConfiguration { + b.TopologyKey = &value + return b +} + +// WithWhenUnsatisfiable sets the WhenUnsatisfiable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the WhenUnsatisfiable field is set to the value of the last call. +func (b *TopologySpreadConstraintApplyConfiguration) WithWhenUnsatisfiable(value v1.UnsatisfiableConstraintAction) *TopologySpreadConstraintApplyConfiguration { + b.WhenUnsatisfiable = &value + return b +} + +// WithLabelSelector sets the LabelSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LabelSelector field is set to the value of the last call. +func (b *TopologySpreadConstraintApplyConfiguration) WithLabelSelector(value *metav1.LabelSelectorApplyConfiguration) *TopologySpreadConstraintApplyConfiguration { + b.LabelSelector = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/typedlocalobjectreference.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/typedlocalobjectreference.go new file mode 100644 index 0000000000..cdc2eb7d34 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/typedlocalobjectreference.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// TypedLocalObjectReferenceApplyConfiguration represents an declarative configuration of the TypedLocalObjectReference type for use +// with apply. +type TypedLocalObjectReferenceApplyConfiguration struct { + APIGroup *string `json:"apiGroup,omitempty"` + Kind *string `json:"kind,omitempty"` + Name *string `json:"name,omitempty"` +} + +// TypedLocalObjectReferenceApplyConfiguration constructs an declarative configuration of the TypedLocalObjectReference type for use with +// apply. +func TypedLocalObjectReference() *TypedLocalObjectReferenceApplyConfiguration { + return &TypedLocalObjectReferenceApplyConfiguration{} +} + +// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIGroup field is set to the value of the last call. +func (b *TypedLocalObjectReferenceApplyConfiguration) WithAPIGroup(value string) *TypedLocalObjectReferenceApplyConfiguration { + b.APIGroup = &value + return b +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *TypedLocalObjectReferenceApplyConfiguration) WithKind(value string) *TypedLocalObjectReferenceApplyConfiguration { + b.Kind = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *TypedLocalObjectReferenceApplyConfiguration) WithName(value string) *TypedLocalObjectReferenceApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/volume.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volume.go new file mode 100644 index 0000000000..db0686bce7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volume.go @@ -0,0 +1,272 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// VolumeApplyConfiguration represents an declarative configuration of the Volume type for use +// with apply. +type VolumeApplyConfiguration struct { + Name *string `json:"name,omitempty"` + VolumeSourceApplyConfiguration `json:",inline"` +} + +// VolumeApplyConfiguration constructs an declarative configuration of the Volume type for use with +// apply. +func Volume() *VolumeApplyConfiguration { + return &VolumeApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithName(value string) *VolumeApplyConfiguration { + b.Name = &value + return b +} + +// WithHostPath sets the HostPath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostPath field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.HostPath = value + return b +} + +// WithEmptyDir sets the EmptyDir field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EmptyDir field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithEmptyDir(value *EmptyDirVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.EmptyDir = value + return b +} + +// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GCEPersistentDisk field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.GCEPersistentDisk = value + return b +} + +// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.AWSElasticBlockStore = value + return b +} + +// WithGitRepo sets the GitRepo field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GitRepo field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithGitRepo(value *GitRepoVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.GitRepo = value + return b +} + +// WithSecret sets the Secret field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Secret field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithSecret(value *SecretVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.Secret = value + return b +} + +// WithNFS sets the NFS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NFS field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.NFS = value + return b +} + +// WithISCSI sets the ISCSI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ISCSI field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithISCSI(value *ISCSIVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.ISCSI = value + return b +} + +// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Glusterfs field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithGlusterfs(value *GlusterfsVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.Glusterfs = value + return b +} + +// WithPersistentVolumeClaim sets the PersistentVolumeClaim field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PersistentVolumeClaim field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithPersistentVolumeClaim(value *PersistentVolumeClaimVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.PersistentVolumeClaim = value + return b +} + +// WithRBD sets the RBD field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RBD field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithRBD(value *RBDVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.RBD = value + return b +} + +// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FlexVolume field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithFlexVolume(value *FlexVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.FlexVolume = value + return b +} + +// WithCinder sets the Cinder field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Cinder field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithCinder(value *CinderVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.Cinder = value + return b +} + +// WithCephFS sets the CephFS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CephFS field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithCephFS(value *CephFSVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.CephFS = value + return b +} + +// WithFlocker sets the Flocker field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Flocker field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.Flocker = value + return b +} + +// WithDownwardAPI sets the DownwardAPI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DownwardAPI field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithDownwardAPI(value *DownwardAPIVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.DownwardAPI = value + return b +} + +// WithFC sets the FC field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FC field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.FC = value + return b +} + +// WithAzureFile sets the AzureFile field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AzureFile field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithAzureFile(value *AzureFileVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.AzureFile = value + return b +} + +// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ConfigMap field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithConfigMap(value *ConfigMapVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.ConfigMap = value + return b +} + +// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VsphereVolume field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.VsphereVolume = value + return b +} + +// WithQuobyte sets the Quobyte field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Quobyte field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.Quobyte = value + return b +} + +// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AzureDisk field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.AzureDisk = value + return b +} + +// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.PhotonPersistentDisk = value + return b +} + +// WithProjected sets the Projected field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Projected field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithProjected(value *ProjectedVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.Projected = value + return b +} + +// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PortworxVolume field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.PortworxVolume = value + return b +} + +// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ScaleIO field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithScaleIO(value *ScaleIOVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.ScaleIO = value + return b +} + +// WithStorageOS sets the StorageOS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageOS field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithStorageOS(value *StorageOSVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.StorageOS = value + return b +} + +// WithCSI sets the CSI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CSI field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithCSI(value *CSIVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.CSI = value + return b +} + +// WithEphemeral sets the Ephemeral field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Ephemeral field is set to the value of the last call. +func (b *VolumeApplyConfiguration) WithEphemeral(value *EphemeralVolumeSourceApplyConfiguration) *VolumeApplyConfiguration { + b.Ephemeral = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumedevice.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumedevice.go new file mode 100644 index 0000000000..ea18ca8d9e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumedevice.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// VolumeDeviceApplyConfiguration represents an declarative configuration of the VolumeDevice type for use +// with apply. +type VolumeDeviceApplyConfiguration struct { + Name *string `json:"name,omitempty"` + DevicePath *string `json:"devicePath,omitempty"` +} + +// VolumeDeviceApplyConfiguration constructs an declarative configuration of the VolumeDevice type for use with +// apply. +func VolumeDevice() *VolumeDeviceApplyConfiguration { + return &VolumeDeviceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *VolumeDeviceApplyConfiguration) WithName(value string) *VolumeDeviceApplyConfiguration { + b.Name = &value + return b +} + +// WithDevicePath sets the DevicePath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DevicePath field is set to the value of the last call. +func (b *VolumeDeviceApplyConfiguration) WithDevicePath(value string) *VolumeDeviceApplyConfiguration { + b.DevicePath = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumemount.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumemount.go new file mode 100644 index 0000000000..b0bec9ffed --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumemount.go @@ -0,0 +1,88 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// VolumeMountApplyConfiguration represents an declarative configuration of the VolumeMount type for use +// with apply. +type VolumeMountApplyConfiguration struct { + Name *string `json:"name,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + MountPath *string `json:"mountPath,omitempty"` + SubPath *string `json:"subPath,omitempty"` + MountPropagation *v1.MountPropagationMode `json:"mountPropagation,omitempty"` + SubPathExpr *string `json:"subPathExpr,omitempty"` +} + +// VolumeMountApplyConfiguration constructs an declarative configuration of the VolumeMount type for use with +// apply. +func VolumeMount() *VolumeMountApplyConfiguration { + return &VolumeMountApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *VolumeMountApplyConfiguration) WithName(value string) *VolumeMountApplyConfiguration { + b.Name = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *VolumeMountApplyConfiguration) WithReadOnly(value bool) *VolumeMountApplyConfiguration { + b.ReadOnly = &value + return b +} + +// WithMountPath sets the MountPath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MountPath field is set to the value of the last call. +func (b *VolumeMountApplyConfiguration) WithMountPath(value string) *VolumeMountApplyConfiguration { + b.MountPath = &value + return b +} + +// WithSubPath sets the SubPath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SubPath field is set to the value of the last call. +func (b *VolumeMountApplyConfiguration) WithSubPath(value string) *VolumeMountApplyConfiguration { + b.SubPath = &value + return b +} + +// WithMountPropagation sets the MountPropagation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MountPropagation field is set to the value of the last call. +func (b *VolumeMountApplyConfiguration) WithMountPropagation(value v1.MountPropagationMode) *VolumeMountApplyConfiguration { + b.MountPropagation = &value + return b +} + +// WithSubPathExpr sets the SubPathExpr field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SubPathExpr field is set to the value of the last call. +func (b *VolumeMountApplyConfiguration) WithSubPathExpr(value string) *VolumeMountApplyConfiguration { + b.SubPathExpr = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumenodeaffinity.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumenodeaffinity.go new file mode 100644 index 0000000000..32bfd82928 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumenodeaffinity.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// VolumeNodeAffinityApplyConfiguration represents an declarative configuration of the VolumeNodeAffinity type for use +// with apply. +type VolumeNodeAffinityApplyConfiguration struct { + Required *NodeSelectorApplyConfiguration `json:"required,omitempty"` +} + +// VolumeNodeAffinityApplyConfiguration constructs an declarative configuration of the VolumeNodeAffinity type for use with +// apply. +func VolumeNodeAffinity() *VolumeNodeAffinityApplyConfiguration { + return &VolumeNodeAffinityApplyConfiguration{} +} + +// WithRequired sets the Required field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Required field is set to the value of the last call. +func (b *VolumeNodeAffinityApplyConfiguration) WithRequired(value *NodeSelectorApplyConfiguration) *VolumeNodeAffinityApplyConfiguration { + b.Required = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumeprojection.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumeprojection.go new file mode 100644 index 0000000000..8d16ea79eb --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumeprojection.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// VolumeProjectionApplyConfiguration represents an declarative configuration of the VolumeProjection type for use +// with apply. +type VolumeProjectionApplyConfiguration struct { + Secret *SecretProjectionApplyConfiguration `json:"secret,omitempty"` + DownwardAPI *DownwardAPIProjectionApplyConfiguration `json:"downwardAPI,omitempty"` + ConfigMap *ConfigMapProjectionApplyConfiguration `json:"configMap,omitempty"` + ServiceAccountToken *ServiceAccountTokenProjectionApplyConfiguration `json:"serviceAccountToken,omitempty"` +} + +// VolumeProjectionApplyConfiguration constructs an declarative configuration of the VolumeProjection type for use with +// apply. +func VolumeProjection() *VolumeProjectionApplyConfiguration { + return &VolumeProjectionApplyConfiguration{} +} + +// WithSecret sets the Secret field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Secret field is set to the value of the last call. +func (b *VolumeProjectionApplyConfiguration) WithSecret(value *SecretProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration { + b.Secret = value + return b +} + +// WithDownwardAPI sets the DownwardAPI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DownwardAPI field is set to the value of the last call. +func (b *VolumeProjectionApplyConfiguration) WithDownwardAPI(value *DownwardAPIProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration { + b.DownwardAPI = value + return b +} + +// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ConfigMap field is set to the value of the last call. +func (b *VolumeProjectionApplyConfiguration) WithConfigMap(value *ConfigMapProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration { + b.ConfigMap = value + return b +} + +// WithServiceAccountToken sets the ServiceAccountToken field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ServiceAccountToken field is set to the value of the last call. +func (b *VolumeProjectionApplyConfiguration) WithServiceAccountToken(value *ServiceAccountTokenProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration { + b.ServiceAccountToken = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumesource.go new file mode 100644 index 0000000000..4a8d316dd5 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumesource.go @@ -0,0 +1,291 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// VolumeSourceApplyConfiguration represents an declarative configuration of the VolumeSource type for use +// with apply. +type VolumeSourceApplyConfiguration struct { + HostPath *HostPathVolumeSourceApplyConfiguration `json:"hostPath,omitempty"` + EmptyDir *EmptyDirVolumeSourceApplyConfiguration `json:"emptyDir,omitempty"` + GCEPersistentDisk *GCEPersistentDiskVolumeSourceApplyConfiguration `json:"gcePersistentDisk,omitempty"` + AWSElasticBlockStore *AWSElasticBlockStoreVolumeSourceApplyConfiguration `json:"awsElasticBlockStore,omitempty"` + GitRepo *GitRepoVolumeSourceApplyConfiguration `json:"gitRepo,omitempty"` + Secret *SecretVolumeSourceApplyConfiguration `json:"secret,omitempty"` + NFS *NFSVolumeSourceApplyConfiguration `json:"nfs,omitempty"` + ISCSI *ISCSIVolumeSourceApplyConfiguration `json:"iscsi,omitempty"` + Glusterfs *GlusterfsVolumeSourceApplyConfiguration `json:"glusterfs,omitempty"` + PersistentVolumeClaim *PersistentVolumeClaimVolumeSourceApplyConfiguration `json:"persistentVolumeClaim,omitempty"` + RBD *RBDVolumeSourceApplyConfiguration `json:"rbd,omitempty"` + FlexVolume *FlexVolumeSourceApplyConfiguration `json:"flexVolume,omitempty"` + Cinder *CinderVolumeSourceApplyConfiguration `json:"cinder,omitempty"` + CephFS *CephFSVolumeSourceApplyConfiguration `json:"cephfs,omitempty"` + Flocker *FlockerVolumeSourceApplyConfiguration `json:"flocker,omitempty"` + DownwardAPI *DownwardAPIVolumeSourceApplyConfiguration `json:"downwardAPI,omitempty"` + FC *FCVolumeSourceApplyConfiguration `json:"fc,omitempty"` + AzureFile *AzureFileVolumeSourceApplyConfiguration `json:"azureFile,omitempty"` + ConfigMap *ConfigMapVolumeSourceApplyConfiguration `json:"configMap,omitempty"` + VsphereVolume *VsphereVirtualDiskVolumeSourceApplyConfiguration `json:"vsphereVolume,omitempty"` + Quobyte *QuobyteVolumeSourceApplyConfiguration `json:"quobyte,omitempty"` + AzureDisk *AzureDiskVolumeSourceApplyConfiguration `json:"azureDisk,omitempty"` + PhotonPersistentDisk *PhotonPersistentDiskVolumeSourceApplyConfiguration `json:"photonPersistentDisk,omitempty"` + Projected *ProjectedVolumeSourceApplyConfiguration `json:"projected,omitempty"` + PortworxVolume *PortworxVolumeSourceApplyConfiguration `json:"portworxVolume,omitempty"` + ScaleIO *ScaleIOVolumeSourceApplyConfiguration `json:"scaleIO,omitempty"` + StorageOS *StorageOSVolumeSourceApplyConfiguration `json:"storageos,omitempty"` + CSI *CSIVolumeSourceApplyConfiguration `json:"csi,omitempty"` + Ephemeral *EphemeralVolumeSourceApplyConfiguration `json:"ephemeral,omitempty"` +} + +// VolumeSourceApplyConfiguration constructs an declarative configuration of the VolumeSource type for use with +// apply. +func VolumeSource() *VolumeSourceApplyConfiguration { + return &VolumeSourceApplyConfiguration{} +} + +// WithHostPath sets the HostPath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostPath field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.HostPath = value + return b +} + +// WithEmptyDir sets the EmptyDir field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EmptyDir field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithEmptyDir(value *EmptyDirVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.EmptyDir = value + return b +} + +// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GCEPersistentDisk field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.GCEPersistentDisk = value + return b +} + +// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.AWSElasticBlockStore = value + return b +} + +// WithGitRepo sets the GitRepo field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GitRepo field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithGitRepo(value *GitRepoVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.GitRepo = value + return b +} + +// WithSecret sets the Secret field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Secret field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithSecret(value *SecretVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.Secret = value + return b +} + +// WithNFS sets the NFS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NFS field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.NFS = value + return b +} + +// WithISCSI sets the ISCSI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ISCSI field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithISCSI(value *ISCSIVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.ISCSI = value + return b +} + +// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Glusterfs field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithGlusterfs(value *GlusterfsVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.Glusterfs = value + return b +} + +// WithPersistentVolumeClaim sets the PersistentVolumeClaim field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PersistentVolumeClaim field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithPersistentVolumeClaim(value *PersistentVolumeClaimVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.PersistentVolumeClaim = value + return b +} + +// WithRBD sets the RBD field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RBD field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithRBD(value *RBDVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.RBD = value + return b +} + +// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FlexVolume field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithFlexVolume(value *FlexVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.FlexVolume = value + return b +} + +// WithCinder sets the Cinder field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Cinder field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithCinder(value *CinderVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.Cinder = value + return b +} + +// WithCephFS sets the CephFS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CephFS field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithCephFS(value *CephFSVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.CephFS = value + return b +} + +// WithFlocker sets the Flocker field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Flocker field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.Flocker = value + return b +} + +// WithDownwardAPI sets the DownwardAPI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DownwardAPI field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithDownwardAPI(value *DownwardAPIVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.DownwardAPI = value + return b +} + +// WithFC sets the FC field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FC field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.FC = value + return b +} + +// WithAzureFile sets the AzureFile field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AzureFile field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithAzureFile(value *AzureFileVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.AzureFile = value + return b +} + +// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ConfigMap field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithConfigMap(value *ConfigMapVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.ConfigMap = value + return b +} + +// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VsphereVolume field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.VsphereVolume = value + return b +} + +// WithQuobyte sets the Quobyte field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Quobyte field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.Quobyte = value + return b +} + +// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AzureDisk field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.AzureDisk = value + return b +} + +// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.PhotonPersistentDisk = value + return b +} + +// WithProjected sets the Projected field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Projected field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithProjected(value *ProjectedVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.Projected = value + return b +} + +// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PortworxVolume field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.PortworxVolume = value + return b +} + +// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ScaleIO field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithScaleIO(value *ScaleIOVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.ScaleIO = value + return b +} + +// WithStorageOS sets the StorageOS field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageOS field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithStorageOS(value *StorageOSVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.StorageOS = value + return b +} + +// WithCSI sets the CSI field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CSI field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithCSI(value *CSIVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.CSI = value + return b +} + +// WithEphemeral sets the Ephemeral field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Ephemeral field is set to the value of the last call. +func (b *VolumeSourceApplyConfiguration) WithEphemeral(value *EphemeralVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration { + b.Ephemeral = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/vspherevirtualdiskvolumesource.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/vspherevirtualdiskvolumesource.go new file mode 100644 index 0000000000..ff3e3e27d9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/vspherevirtualdiskvolumesource.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// VsphereVirtualDiskVolumeSourceApplyConfiguration represents an declarative configuration of the VsphereVirtualDiskVolumeSource type for use +// with apply. +type VsphereVirtualDiskVolumeSourceApplyConfiguration struct { + VolumePath *string `json:"volumePath,omitempty"` + FSType *string `json:"fsType,omitempty"` + StoragePolicyName *string `json:"storagePolicyName,omitempty"` + StoragePolicyID *string `json:"storagePolicyID,omitempty"` +} + +// VsphereVirtualDiskVolumeSourceApplyConfiguration constructs an declarative configuration of the VsphereVirtualDiskVolumeSource type for use with +// apply. +func VsphereVirtualDiskVolumeSource() *VsphereVirtualDiskVolumeSourceApplyConfiguration { + return &VsphereVirtualDiskVolumeSourceApplyConfiguration{} +} + +// WithVolumePath sets the VolumePath field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumePath field is set to the value of the last call. +func (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithVolumePath(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration { + b.VolumePath = &value + return b +} + +// WithFSType sets the FSType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSType field is set to the value of the last call. +func (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithFSType(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration { + b.FSType = &value + return b +} + +// WithStoragePolicyName sets the StoragePolicyName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StoragePolicyName field is set to the value of the last call. +func (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithStoragePolicyName(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration { + b.StoragePolicyName = &value + return b +} + +// WithStoragePolicyID sets the StoragePolicyID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StoragePolicyID field is set to the value of the last call. +func (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithStoragePolicyID(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration { + b.StoragePolicyID = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/weightedpodaffinityterm.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/weightedpodaffinityterm.go new file mode 100644 index 0000000000..eb99d06ffa --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/weightedpodaffinityterm.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// WeightedPodAffinityTermApplyConfiguration represents an declarative configuration of the WeightedPodAffinityTerm type for use +// with apply. +type WeightedPodAffinityTermApplyConfiguration struct { + Weight *int32 `json:"weight,omitempty"` + PodAffinityTerm *PodAffinityTermApplyConfiguration `json:"podAffinityTerm,omitempty"` +} + +// WeightedPodAffinityTermApplyConfiguration constructs an declarative configuration of the WeightedPodAffinityTerm type for use with +// apply. +func WeightedPodAffinityTerm() *WeightedPodAffinityTermApplyConfiguration { + return &WeightedPodAffinityTermApplyConfiguration{} +} + +// WithWeight sets the Weight field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Weight field is set to the value of the last call. +func (b *WeightedPodAffinityTermApplyConfiguration) WithWeight(value int32) *WeightedPodAffinityTermApplyConfiguration { + b.Weight = &value + return b +} + +// WithPodAffinityTerm sets the PodAffinityTerm field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodAffinityTerm field is set to the value of the last call. +func (b *WeightedPodAffinityTermApplyConfiguration) WithPodAffinityTerm(value *PodAffinityTermApplyConfiguration) *WeightedPodAffinityTermApplyConfiguration { + b.PodAffinityTerm = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/core/v1/windowssecuritycontextoptions.go b/vendor/k8s.io/client-go/applyconfigurations/core/v1/windowssecuritycontextoptions.go new file mode 100644 index 0000000000..2442063c4e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/core/v1/windowssecuritycontextoptions.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// WindowsSecurityContextOptionsApplyConfiguration represents an declarative configuration of the WindowsSecurityContextOptions type for use +// with apply. +type WindowsSecurityContextOptionsApplyConfiguration struct { + GMSACredentialSpecName *string `json:"gmsaCredentialSpecName,omitempty"` + GMSACredentialSpec *string `json:"gmsaCredentialSpec,omitempty"` + RunAsUserName *string `json:"runAsUserName,omitempty"` +} + +// WindowsSecurityContextOptionsApplyConfiguration constructs an declarative configuration of the WindowsSecurityContextOptions type for use with +// apply. +func WindowsSecurityContextOptions() *WindowsSecurityContextOptionsApplyConfiguration { + return &WindowsSecurityContextOptionsApplyConfiguration{} +} + +// WithGMSACredentialSpecName sets the GMSACredentialSpecName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GMSACredentialSpecName field is set to the value of the last call. +func (b *WindowsSecurityContextOptionsApplyConfiguration) WithGMSACredentialSpecName(value string) *WindowsSecurityContextOptionsApplyConfiguration { + b.GMSACredentialSpecName = &value + return b +} + +// WithGMSACredentialSpec sets the GMSACredentialSpec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GMSACredentialSpec field is set to the value of the last call. +func (b *WindowsSecurityContextOptionsApplyConfiguration) WithGMSACredentialSpec(value string) *WindowsSecurityContextOptionsApplyConfiguration { + b.GMSACredentialSpec = &value + return b +} + +// WithRunAsUserName sets the RunAsUserName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RunAsUserName field is set to the value of the last call. +func (b *WindowsSecurityContextOptionsApplyConfiguration) WithRunAsUserName(value string) *WindowsSecurityContextOptionsApplyConfiguration { + b.RunAsUserName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpoint.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpoint.go new file mode 100644 index 0000000000..d8c2359a3b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpoint.go @@ -0,0 +1,114 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// EndpointApplyConfiguration represents an declarative configuration of the Endpoint type for use +// with apply. +type EndpointApplyConfiguration struct { + Addresses []string `json:"addresses,omitempty"` + Conditions *EndpointConditionsApplyConfiguration `json:"conditions,omitempty"` + Hostname *string `json:"hostname,omitempty"` + TargetRef *corev1.ObjectReferenceApplyConfiguration `json:"targetRef,omitempty"` + DeprecatedTopology map[string]string `json:"deprecatedTopology,omitempty"` + NodeName *string `json:"nodeName,omitempty"` + Zone *string `json:"zone,omitempty"` + Hints *EndpointHintsApplyConfiguration `json:"hints,omitempty"` +} + +// EndpointApplyConfiguration constructs an declarative configuration of the Endpoint type for use with +// apply. +func Endpoint() *EndpointApplyConfiguration { + return &EndpointApplyConfiguration{} +} + +// WithAddresses adds the given value to the Addresses field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Addresses field. +func (b *EndpointApplyConfiguration) WithAddresses(values ...string) *EndpointApplyConfiguration { + for i := range values { + b.Addresses = append(b.Addresses, values[i]) + } + return b +} + +// WithConditions sets the Conditions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Conditions field is set to the value of the last call. +func (b *EndpointApplyConfiguration) WithConditions(value *EndpointConditionsApplyConfiguration) *EndpointApplyConfiguration { + b.Conditions = value + return b +} + +// WithHostname sets the Hostname field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Hostname field is set to the value of the last call. +func (b *EndpointApplyConfiguration) WithHostname(value string) *EndpointApplyConfiguration { + b.Hostname = &value + return b +} + +// WithTargetRef sets the TargetRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetRef field is set to the value of the last call. +func (b *EndpointApplyConfiguration) WithTargetRef(value *corev1.ObjectReferenceApplyConfiguration) *EndpointApplyConfiguration { + b.TargetRef = value + return b +} + +// WithDeprecatedTopology puts the entries into the DeprecatedTopology field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the DeprecatedTopology field, +// overwriting an existing map entries in DeprecatedTopology field with the same key. +func (b *EndpointApplyConfiguration) WithDeprecatedTopology(entries map[string]string) *EndpointApplyConfiguration { + if b.DeprecatedTopology == nil && len(entries) > 0 { + b.DeprecatedTopology = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.DeprecatedTopology[k] = v + } + return b +} + +// WithNodeName sets the NodeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeName field is set to the value of the last call. +func (b *EndpointApplyConfiguration) WithNodeName(value string) *EndpointApplyConfiguration { + b.NodeName = &value + return b +} + +// WithZone sets the Zone field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Zone field is set to the value of the last call. +func (b *EndpointApplyConfiguration) WithZone(value string) *EndpointApplyConfiguration { + b.Zone = &value + return b +} + +// WithHints sets the Hints field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Hints field is set to the value of the last call. +func (b *EndpointApplyConfiguration) WithHints(value *EndpointHintsApplyConfiguration) *EndpointApplyConfiguration { + b.Hints = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointconditions.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointconditions.go new file mode 100644 index 0000000000..68c25dd57c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointconditions.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// EndpointConditionsApplyConfiguration represents an declarative configuration of the EndpointConditions type for use +// with apply. +type EndpointConditionsApplyConfiguration struct { + Ready *bool `json:"ready,omitempty"` + Serving *bool `json:"serving,omitempty"` + Terminating *bool `json:"terminating,omitempty"` +} + +// EndpointConditionsApplyConfiguration constructs an declarative configuration of the EndpointConditions type for use with +// apply. +func EndpointConditions() *EndpointConditionsApplyConfiguration { + return &EndpointConditionsApplyConfiguration{} +} + +// WithReady sets the Ready field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Ready field is set to the value of the last call. +func (b *EndpointConditionsApplyConfiguration) WithReady(value bool) *EndpointConditionsApplyConfiguration { + b.Ready = &value + return b +} + +// WithServing sets the Serving field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Serving field is set to the value of the last call. +func (b *EndpointConditionsApplyConfiguration) WithServing(value bool) *EndpointConditionsApplyConfiguration { + b.Serving = &value + return b +} + +// WithTerminating sets the Terminating field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Terminating field is set to the value of the last call. +func (b *EndpointConditionsApplyConfiguration) WithTerminating(value bool) *EndpointConditionsApplyConfiguration { + b.Terminating = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointhints.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointhints.go new file mode 100644 index 0000000000..6eb9f21a51 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointhints.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// EndpointHintsApplyConfiguration represents an declarative configuration of the EndpointHints type for use +// with apply. +type EndpointHintsApplyConfiguration struct { + ForZones []ForZoneApplyConfiguration `json:"forZones,omitempty"` +} + +// EndpointHintsApplyConfiguration constructs an declarative configuration of the EndpointHints type for use with +// apply. +func EndpointHints() *EndpointHintsApplyConfiguration { + return &EndpointHintsApplyConfiguration{} +} + +// WithForZones adds the given value to the ForZones field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ForZones field. +func (b *EndpointHintsApplyConfiguration) WithForZones(values ...*ForZoneApplyConfiguration) *EndpointHintsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithForZones") + } + b.ForZones = append(b.ForZones, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointport.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointport.go new file mode 100644 index 0000000000..c712956009 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointport.go @@ -0,0 +1,70 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// EndpointPortApplyConfiguration represents an declarative configuration of the EndpointPort type for use +// with apply. +type EndpointPortApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Protocol *v1.Protocol `json:"protocol,omitempty"` + Port *int32 `json:"port,omitempty"` + AppProtocol *string `json:"appProtocol,omitempty"` +} + +// EndpointPortApplyConfiguration constructs an declarative configuration of the EndpointPort type for use with +// apply. +func EndpointPort() *EndpointPortApplyConfiguration { + return &EndpointPortApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithName(value string) *EndpointPortApplyConfiguration { + b.Name = &value + return b +} + +// WithProtocol sets the Protocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Protocol field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithProtocol(value v1.Protocol) *EndpointPortApplyConfiguration { + b.Protocol = &value + return b +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithPort(value int32) *EndpointPortApplyConfiguration { + b.Port = &value + return b +} + +// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AppProtocol field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithAppProtocol(value string) *EndpointPortApplyConfiguration { + b.AppProtocol = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointslice.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointslice.go new file mode 100644 index 0000000000..681013f041 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointslice.go @@ -0,0 +1,284 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + discoveryv1 "k8s.io/api/discovery/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// EndpointSliceApplyConfiguration represents an declarative configuration of the EndpointSlice type for use +// with apply. +type EndpointSliceApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + AddressType *discoveryv1.AddressType `json:"addressType,omitempty"` + Endpoints []EndpointApplyConfiguration `json:"endpoints,omitempty"` + Ports []EndpointPortApplyConfiguration `json:"ports,omitempty"` +} + +// EndpointSlice constructs an declarative configuration of the EndpointSlice type for use with +// apply. +func EndpointSlice(name, namespace string) *EndpointSliceApplyConfiguration { + b := &EndpointSliceApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("EndpointSlice") + b.WithAPIVersion("discovery.k8s.io/v1") + return b +} + +// ExtractEndpointSlice extracts the applied configuration owned by fieldManager from +// endpointSlice. If no managedFields are found in endpointSlice for fieldManager, a +// EndpointSliceApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// endpointSlice must be a unmodified EndpointSlice API object that was retrieved from the Kubernetes API. +// ExtractEndpointSlice provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractEndpointSlice(endpointSlice *discoveryv1.EndpointSlice, fieldManager string) (*EndpointSliceApplyConfiguration, error) { + b := &EndpointSliceApplyConfiguration{} + err := managedfields.ExtractInto(endpointSlice, internal.Parser().Type("io.k8s.api.discovery.v1.EndpointSlice"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(endpointSlice.Name) + b.WithNamespace(endpointSlice.Namespace) + + b.WithKind("EndpointSlice") + b.WithAPIVersion("discovery.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithKind(value string) *EndpointSliceApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithAPIVersion(value string) *EndpointSliceApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithName(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithGenerateName(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithNamespace(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithSelfLink(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithUID(value types.UID) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithResourceVersion(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithGeneration(value int64) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *EndpointSliceApplyConfiguration) WithLabels(entries map[string]string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *EndpointSliceApplyConfiguration) WithAnnotations(entries map[string]string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *EndpointSliceApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *EndpointSliceApplyConfiguration) WithFinalizers(values ...string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithClusterName(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *EndpointSliceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithAddressType sets the AddressType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AddressType field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithAddressType(value discoveryv1.AddressType) *EndpointSliceApplyConfiguration { + b.AddressType = &value + return b +} + +// WithEndpoints adds the given value to the Endpoints field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Endpoints field. +func (b *EndpointSliceApplyConfiguration) WithEndpoints(values ...*EndpointApplyConfiguration) *EndpointSliceApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEndpoints") + } + b.Endpoints = append(b.Endpoints, *values[i]) + } + return b +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *EndpointSliceApplyConfiguration) WithPorts(values ...*EndpointPortApplyConfiguration) *EndpointSliceApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/forzone.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/forzone.go new file mode 100644 index 0000000000..192a5ad2e8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/forzone.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ForZoneApplyConfiguration represents an declarative configuration of the ForZone type for use +// with apply. +type ForZoneApplyConfiguration struct { + Name *string `json:"name,omitempty"` +} + +// ForZoneApplyConfiguration constructs an declarative configuration of the ForZone type for use with +// apply. +func ForZone() *ForZoneApplyConfiguration { + return &ForZoneApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ForZoneApplyConfiguration) WithName(value string) *ForZoneApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpoint.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpoint.go new file mode 100644 index 0000000000..724c2d007c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpoint.go @@ -0,0 +1,105 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// EndpointApplyConfiguration represents an declarative configuration of the Endpoint type for use +// with apply. +type EndpointApplyConfiguration struct { + Addresses []string `json:"addresses,omitempty"` + Conditions *EndpointConditionsApplyConfiguration `json:"conditions,omitempty"` + Hostname *string `json:"hostname,omitempty"` + TargetRef *v1.ObjectReferenceApplyConfiguration `json:"targetRef,omitempty"` + Topology map[string]string `json:"topology,omitempty"` + NodeName *string `json:"nodeName,omitempty"` + Hints *EndpointHintsApplyConfiguration `json:"hints,omitempty"` +} + +// EndpointApplyConfiguration constructs an declarative configuration of the Endpoint type for use with +// apply. +func Endpoint() *EndpointApplyConfiguration { + return &EndpointApplyConfiguration{} +} + +// WithAddresses adds the given value to the Addresses field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Addresses field. +func (b *EndpointApplyConfiguration) WithAddresses(values ...string) *EndpointApplyConfiguration { + for i := range values { + b.Addresses = append(b.Addresses, values[i]) + } + return b +} + +// WithConditions sets the Conditions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Conditions field is set to the value of the last call. +func (b *EndpointApplyConfiguration) WithConditions(value *EndpointConditionsApplyConfiguration) *EndpointApplyConfiguration { + b.Conditions = value + return b +} + +// WithHostname sets the Hostname field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Hostname field is set to the value of the last call. +func (b *EndpointApplyConfiguration) WithHostname(value string) *EndpointApplyConfiguration { + b.Hostname = &value + return b +} + +// WithTargetRef sets the TargetRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TargetRef field is set to the value of the last call. +func (b *EndpointApplyConfiguration) WithTargetRef(value *v1.ObjectReferenceApplyConfiguration) *EndpointApplyConfiguration { + b.TargetRef = value + return b +} + +// WithTopology puts the entries into the Topology field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Topology field, +// overwriting an existing map entries in Topology field with the same key. +func (b *EndpointApplyConfiguration) WithTopology(entries map[string]string) *EndpointApplyConfiguration { + if b.Topology == nil && len(entries) > 0 { + b.Topology = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Topology[k] = v + } + return b +} + +// WithNodeName sets the NodeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeName field is set to the value of the last call. +func (b *EndpointApplyConfiguration) WithNodeName(value string) *EndpointApplyConfiguration { + b.NodeName = &value + return b +} + +// WithHints sets the Hints field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Hints field is set to the value of the last call. +func (b *EndpointApplyConfiguration) WithHints(value *EndpointHintsApplyConfiguration) *EndpointApplyConfiguration { + b.Hints = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointconditions.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointconditions.go new file mode 100644 index 0000000000..bc0438f90b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointconditions.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// EndpointConditionsApplyConfiguration represents an declarative configuration of the EndpointConditions type for use +// with apply. +type EndpointConditionsApplyConfiguration struct { + Ready *bool `json:"ready,omitempty"` + Serving *bool `json:"serving,omitempty"` + Terminating *bool `json:"terminating,omitempty"` +} + +// EndpointConditionsApplyConfiguration constructs an declarative configuration of the EndpointConditions type for use with +// apply. +func EndpointConditions() *EndpointConditionsApplyConfiguration { + return &EndpointConditionsApplyConfiguration{} +} + +// WithReady sets the Ready field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Ready field is set to the value of the last call. +func (b *EndpointConditionsApplyConfiguration) WithReady(value bool) *EndpointConditionsApplyConfiguration { + b.Ready = &value + return b +} + +// WithServing sets the Serving field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Serving field is set to the value of the last call. +func (b *EndpointConditionsApplyConfiguration) WithServing(value bool) *EndpointConditionsApplyConfiguration { + b.Serving = &value + return b +} + +// WithTerminating sets the Terminating field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Terminating field is set to the value of the last call. +func (b *EndpointConditionsApplyConfiguration) WithTerminating(value bool) *EndpointConditionsApplyConfiguration { + b.Terminating = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointhints.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointhints.go new file mode 100644 index 0000000000..41d80206b3 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointhints.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// EndpointHintsApplyConfiguration represents an declarative configuration of the EndpointHints type for use +// with apply. +type EndpointHintsApplyConfiguration struct { + ForZones []ForZoneApplyConfiguration `json:"forZones,omitempty"` +} + +// EndpointHintsApplyConfiguration constructs an declarative configuration of the EndpointHints type for use with +// apply. +func EndpointHints() *EndpointHintsApplyConfiguration { + return &EndpointHintsApplyConfiguration{} +} + +// WithForZones adds the given value to the ForZones field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ForZones field. +func (b *EndpointHintsApplyConfiguration) WithForZones(values ...*ForZoneApplyConfiguration) *EndpointHintsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithForZones") + } + b.ForZones = append(b.ForZones, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointport.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointport.go new file mode 100644 index 0000000000..9a3a31b965 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointport.go @@ -0,0 +1,70 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// EndpointPortApplyConfiguration represents an declarative configuration of the EndpointPort type for use +// with apply. +type EndpointPortApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Protocol *v1.Protocol `json:"protocol,omitempty"` + Port *int32 `json:"port,omitempty"` + AppProtocol *string `json:"appProtocol,omitempty"` +} + +// EndpointPortApplyConfiguration constructs an declarative configuration of the EndpointPort type for use with +// apply. +func EndpointPort() *EndpointPortApplyConfiguration { + return &EndpointPortApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithName(value string) *EndpointPortApplyConfiguration { + b.Name = &value + return b +} + +// WithProtocol sets the Protocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Protocol field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithProtocol(value v1.Protocol) *EndpointPortApplyConfiguration { + b.Protocol = &value + return b +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithPort(value int32) *EndpointPortApplyConfiguration { + b.Port = &value + return b +} + +// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AppProtocol field is set to the value of the last call. +func (b *EndpointPortApplyConfiguration) WithAppProtocol(value string) *EndpointPortApplyConfiguration { + b.AppProtocol = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointslice.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointslice.go new file mode 100644 index 0000000000..a96708225a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointslice.go @@ -0,0 +1,284 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/discovery/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// EndpointSliceApplyConfiguration represents an declarative configuration of the EndpointSlice type for use +// with apply. +type EndpointSliceApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + AddressType *v1beta1.AddressType `json:"addressType,omitempty"` + Endpoints []EndpointApplyConfiguration `json:"endpoints,omitempty"` + Ports []EndpointPortApplyConfiguration `json:"ports,omitempty"` +} + +// EndpointSlice constructs an declarative configuration of the EndpointSlice type for use with +// apply. +func EndpointSlice(name, namespace string) *EndpointSliceApplyConfiguration { + b := &EndpointSliceApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("EndpointSlice") + b.WithAPIVersion("discovery.k8s.io/v1beta1") + return b +} + +// ExtractEndpointSlice extracts the applied configuration owned by fieldManager from +// endpointSlice. If no managedFields are found in endpointSlice for fieldManager, a +// EndpointSliceApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// endpointSlice must be a unmodified EndpointSlice API object that was retrieved from the Kubernetes API. +// ExtractEndpointSlice provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractEndpointSlice(endpointSlice *v1beta1.EndpointSlice, fieldManager string) (*EndpointSliceApplyConfiguration, error) { + b := &EndpointSliceApplyConfiguration{} + err := managedfields.ExtractInto(endpointSlice, internal.Parser().Type("io.k8s.api.discovery.v1beta1.EndpointSlice"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(endpointSlice.Name) + b.WithNamespace(endpointSlice.Namespace) + + b.WithKind("EndpointSlice") + b.WithAPIVersion("discovery.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithKind(value string) *EndpointSliceApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithAPIVersion(value string) *EndpointSliceApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithName(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithGenerateName(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithNamespace(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithSelfLink(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithUID(value types.UID) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithResourceVersion(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithGeneration(value int64) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *EndpointSliceApplyConfiguration) WithLabels(entries map[string]string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *EndpointSliceApplyConfiguration) WithAnnotations(entries map[string]string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *EndpointSliceApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *EndpointSliceApplyConfiguration) WithFinalizers(values ...string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithClusterName(value string) *EndpointSliceApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *EndpointSliceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithAddressType sets the AddressType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AddressType field is set to the value of the last call. +func (b *EndpointSliceApplyConfiguration) WithAddressType(value v1beta1.AddressType) *EndpointSliceApplyConfiguration { + b.AddressType = &value + return b +} + +// WithEndpoints adds the given value to the Endpoints field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Endpoints field. +func (b *EndpointSliceApplyConfiguration) WithEndpoints(values ...*EndpointApplyConfiguration) *EndpointSliceApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEndpoints") + } + b.Endpoints = append(b.Endpoints, *values[i]) + } + return b +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *EndpointSliceApplyConfiguration) WithPorts(values ...*EndpointPortApplyConfiguration) *EndpointSliceApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/forzone.go b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/forzone.go new file mode 100644 index 0000000000..4d1455ed38 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/forzone.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// ForZoneApplyConfiguration represents an declarative configuration of the ForZone type for use +// with apply. +type ForZoneApplyConfiguration struct { + Name *string `json:"name,omitempty"` +} + +// ForZoneApplyConfiguration constructs an declarative configuration of the ForZone type for use with +// apply. +func ForZone() *ForZoneApplyConfiguration { + return &ForZoneApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ForZoneApplyConfiguration) WithName(value string) *ForZoneApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/events/v1/event.go b/vendor/k8s.io/client-go/applyconfigurations/events/v1/event.go new file mode 100644 index 0000000000..860fff586c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/events/v1/event.go @@ -0,0 +1,374 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apieventsv1 "k8s.io/api/events/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// EventApplyConfiguration represents an declarative configuration of the Event type for use +// with apply. +type EventApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + EventTime *metav1.MicroTime `json:"eventTime,omitempty"` + Series *EventSeriesApplyConfiguration `json:"series,omitempty"` + ReportingController *string `json:"reportingController,omitempty"` + ReportingInstance *string `json:"reportingInstance,omitempty"` + Action *string `json:"action,omitempty"` + Reason *string `json:"reason,omitempty"` + Regarding *corev1.ObjectReferenceApplyConfiguration `json:"regarding,omitempty"` + Related *corev1.ObjectReferenceApplyConfiguration `json:"related,omitempty"` + Note *string `json:"note,omitempty"` + Type *string `json:"type,omitempty"` + DeprecatedSource *corev1.EventSourceApplyConfiguration `json:"deprecatedSource,omitempty"` + DeprecatedFirstTimestamp *metav1.Time `json:"deprecatedFirstTimestamp,omitempty"` + DeprecatedLastTimestamp *metav1.Time `json:"deprecatedLastTimestamp,omitempty"` + DeprecatedCount *int32 `json:"deprecatedCount,omitempty"` +} + +// Event constructs an declarative configuration of the Event type for use with +// apply. +func Event(name, namespace string) *EventApplyConfiguration { + b := &EventApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Event") + b.WithAPIVersion("events.k8s.io/v1") + return b +} + +// ExtractEvent extracts the applied configuration owned by fieldManager from +// event. If no managedFields are found in event for fieldManager, a +// EventApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// event must be a unmodified Event API object that was retrieved from the Kubernetes API. +// ExtractEvent provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractEvent(event *apieventsv1.Event, fieldManager string) (*EventApplyConfiguration, error) { + b := &EventApplyConfiguration{} + err := managedfields.ExtractInto(event, internal.Parser().Type("io.k8s.api.events.v1.Event"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(event.Name) + b.WithNamespace(event.Namespace) + + b.WithKind("Event") + b.WithAPIVersion("events.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *EventApplyConfiguration) WithKind(value string) *EventApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *EventApplyConfiguration) WithAPIVersion(value string) *EventApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EventApplyConfiguration) WithName(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *EventApplyConfiguration) WithGenerateName(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *EventApplyConfiguration) WithNamespace(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *EventApplyConfiguration) WithSelfLink(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *EventApplyConfiguration) WithUID(value types.UID) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *EventApplyConfiguration) WithResourceVersion(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *EventApplyConfiguration) WithGeneration(value int64) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *EventApplyConfiguration) WithLabels(entries map[string]string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *EventApplyConfiguration) WithAnnotations(entries map[string]string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *EventApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *EventApplyConfiguration) WithFinalizers(values ...string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *EventApplyConfiguration) WithClusterName(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *EventApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithEventTime sets the EventTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EventTime field is set to the value of the last call. +func (b *EventApplyConfiguration) WithEventTime(value metav1.MicroTime) *EventApplyConfiguration { + b.EventTime = &value + return b +} + +// WithSeries sets the Series field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Series field is set to the value of the last call. +func (b *EventApplyConfiguration) WithSeries(value *EventSeriesApplyConfiguration) *EventApplyConfiguration { + b.Series = value + return b +} + +// WithReportingController sets the ReportingController field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReportingController field is set to the value of the last call. +func (b *EventApplyConfiguration) WithReportingController(value string) *EventApplyConfiguration { + b.ReportingController = &value + return b +} + +// WithReportingInstance sets the ReportingInstance field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReportingInstance field is set to the value of the last call. +func (b *EventApplyConfiguration) WithReportingInstance(value string) *EventApplyConfiguration { + b.ReportingInstance = &value + return b +} + +// WithAction sets the Action field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Action field is set to the value of the last call. +func (b *EventApplyConfiguration) WithAction(value string) *EventApplyConfiguration { + b.Action = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *EventApplyConfiguration) WithReason(value string) *EventApplyConfiguration { + b.Reason = &value + return b +} + +// WithRegarding sets the Regarding field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Regarding field is set to the value of the last call. +func (b *EventApplyConfiguration) WithRegarding(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration { + b.Regarding = value + return b +} + +// WithRelated sets the Related field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Related field is set to the value of the last call. +func (b *EventApplyConfiguration) WithRelated(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration { + b.Related = value + return b +} + +// WithNote sets the Note field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Note field is set to the value of the last call. +func (b *EventApplyConfiguration) WithNote(value string) *EventApplyConfiguration { + b.Note = &value + return b +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *EventApplyConfiguration) WithType(value string) *EventApplyConfiguration { + b.Type = &value + return b +} + +// WithDeprecatedSource sets the DeprecatedSource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeprecatedSource field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeprecatedSource(value *corev1.EventSourceApplyConfiguration) *EventApplyConfiguration { + b.DeprecatedSource = value + return b +} + +// WithDeprecatedFirstTimestamp sets the DeprecatedFirstTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeprecatedFirstTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeprecatedFirstTimestamp(value metav1.Time) *EventApplyConfiguration { + b.DeprecatedFirstTimestamp = &value + return b +} + +// WithDeprecatedLastTimestamp sets the DeprecatedLastTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeprecatedLastTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeprecatedLastTimestamp(value metav1.Time) *EventApplyConfiguration { + b.DeprecatedLastTimestamp = &value + return b +} + +// WithDeprecatedCount sets the DeprecatedCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeprecatedCount field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeprecatedCount(value int32) *EventApplyConfiguration { + b.DeprecatedCount = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/events/v1/eventseries.go b/vendor/k8s.io/client-go/applyconfigurations/events/v1/eventseries.go new file mode 100644 index 0000000000..e66fb41271 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/events/v1/eventseries.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// EventSeriesApplyConfiguration represents an declarative configuration of the EventSeries type for use +// with apply. +type EventSeriesApplyConfiguration struct { + Count *int32 `json:"count,omitempty"` + LastObservedTime *v1.MicroTime `json:"lastObservedTime,omitempty"` +} + +// EventSeriesApplyConfiguration constructs an declarative configuration of the EventSeries type for use with +// apply. +func EventSeries() *EventSeriesApplyConfiguration { + return &EventSeriesApplyConfiguration{} +} + +// WithCount sets the Count field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Count field is set to the value of the last call. +func (b *EventSeriesApplyConfiguration) WithCount(value int32) *EventSeriesApplyConfiguration { + b.Count = &value + return b +} + +// WithLastObservedTime sets the LastObservedTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastObservedTime field is set to the value of the last call. +func (b *EventSeriesApplyConfiguration) WithLastObservedTime(value v1.MicroTime) *EventSeriesApplyConfiguration { + b.LastObservedTime = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/event.go b/vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/event.go new file mode 100644 index 0000000000..65057f957b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/event.go @@ -0,0 +1,374 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + eventsv1beta1 "k8s.io/api/events/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// EventApplyConfiguration represents an declarative configuration of the Event type for use +// with apply. +type EventApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + EventTime *metav1.MicroTime `json:"eventTime,omitempty"` + Series *EventSeriesApplyConfiguration `json:"series,omitempty"` + ReportingController *string `json:"reportingController,omitempty"` + ReportingInstance *string `json:"reportingInstance,omitempty"` + Action *string `json:"action,omitempty"` + Reason *string `json:"reason,omitempty"` + Regarding *corev1.ObjectReferenceApplyConfiguration `json:"regarding,omitempty"` + Related *corev1.ObjectReferenceApplyConfiguration `json:"related,omitempty"` + Note *string `json:"note,omitempty"` + Type *string `json:"type,omitempty"` + DeprecatedSource *corev1.EventSourceApplyConfiguration `json:"deprecatedSource,omitempty"` + DeprecatedFirstTimestamp *metav1.Time `json:"deprecatedFirstTimestamp,omitempty"` + DeprecatedLastTimestamp *metav1.Time `json:"deprecatedLastTimestamp,omitempty"` + DeprecatedCount *int32 `json:"deprecatedCount,omitempty"` +} + +// Event constructs an declarative configuration of the Event type for use with +// apply. +func Event(name, namespace string) *EventApplyConfiguration { + b := &EventApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Event") + b.WithAPIVersion("events.k8s.io/v1beta1") + return b +} + +// ExtractEvent extracts the applied configuration owned by fieldManager from +// event. If no managedFields are found in event for fieldManager, a +// EventApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// event must be a unmodified Event API object that was retrieved from the Kubernetes API. +// ExtractEvent provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractEvent(event *eventsv1beta1.Event, fieldManager string) (*EventApplyConfiguration, error) { + b := &EventApplyConfiguration{} + err := managedfields.ExtractInto(event, internal.Parser().Type("io.k8s.api.events.v1beta1.Event"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(event.Name) + b.WithNamespace(event.Namespace) + + b.WithKind("Event") + b.WithAPIVersion("events.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *EventApplyConfiguration) WithKind(value string) *EventApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *EventApplyConfiguration) WithAPIVersion(value string) *EventApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EventApplyConfiguration) WithName(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *EventApplyConfiguration) WithGenerateName(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *EventApplyConfiguration) WithNamespace(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *EventApplyConfiguration) WithSelfLink(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *EventApplyConfiguration) WithUID(value types.UID) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *EventApplyConfiguration) WithResourceVersion(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *EventApplyConfiguration) WithGeneration(value int64) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *EventApplyConfiguration) WithLabels(entries map[string]string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *EventApplyConfiguration) WithAnnotations(entries map[string]string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *EventApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *EventApplyConfiguration) WithFinalizers(values ...string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *EventApplyConfiguration) WithClusterName(value string) *EventApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *EventApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithEventTime sets the EventTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EventTime field is set to the value of the last call. +func (b *EventApplyConfiguration) WithEventTime(value metav1.MicroTime) *EventApplyConfiguration { + b.EventTime = &value + return b +} + +// WithSeries sets the Series field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Series field is set to the value of the last call. +func (b *EventApplyConfiguration) WithSeries(value *EventSeriesApplyConfiguration) *EventApplyConfiguration { + b.Series = value + return b +} + +// WithReportingController sets the ReportingController field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReportingController field is set to the value of the last call. +func (b *EventApplyConfiguration) WithReportingController(value string) *EventApplyConfiguration { + b.ReportingController = &value + return b +} + +// WithReportingInstance sets the ReportingInstance field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReportingInstance field is set to the value of the last call. +func (b *EventApplyConfiguration) WithReportingInstance(value string) *EventApplyConfiguration { + b.ReportingInstance = &value + return b +} + +// WithAction sets the Action field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Action field is set to the value of the last call. +func (b *EventApplyConfiguration) WithAction(value string) *EventApplyConfiguration { + b.Action = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *EventApplyConfiguration) WithReason(value string) *EventApplyConfiguration { + b.Reason = &value + return b +} + +// WithRegarding sets the Regarding field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Regarding field is set to the value of the last call. +func (b *EventApplyConfiguration) WithRegarding(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration { + b.Regarding = value + return b +} + +// WithRelated sets the Related field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Related field is set to the value of the last call. +func (b *EventApplyConfiguration) WithRelated(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration { + b.Related = value + return b +} + +// WithNote sets the Note field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Note field is set to the value of the last call. +func (b *EventApplyConfiguration) WithNote(value string) *EventApplyConfiguration { + b.Note = &value + return b +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *EventApplyConfiguration) WithType(value string) *EventApplyConfiguration { + b.Type = &value + return b +} + +// WithDeprecatedSource sets the DeprecatedSource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeprecatedSource field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeprecatedSource(value *corev1.EventSourceApplyConfiguration) *EventApplyConfiguration { + b.DeprecatedSource = value + return b +} + +// WithDeprecatedFirstTimestamp sets the DeprecatedFirstTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeprecatedFirstTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeprecatedFirstTimestamp(value metav1.Time) *EventApplyConfiguration { + b.DeprecatedFirstTimestamp = &value + return b +} + +// WithDeprecatedLastTimestamp sets the DeprecatedLastTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeprecatedLastTimestamp field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeprecatedLastTimestamp(value metav1.Time) *EventApplyConfiguration { + b.DeprecatedLastTimestamp = &value + return b +} + +// WithDeprecatedCount sets the DeprecatedCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeprecatedCount field is set to the value of the last call. +func (b *EventApplyConfiguration) WithDeprecatedCount(value int32) *EventApplyConfiguration { + b.DeprecatedCount = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/eventseries.go b/vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/eventseries.go new file mode 100644 index 0000000000..640a265172 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/eventseries.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// EventSeriesApplyConfiguration represents an declarative configuration of the EventSeries type for use +// with apply. +type EventSeriesApplyConfiguration struct { + Count *int32 `json:"count,omitempty"` + LastObservedTime *v1.MicroTime `json:"lastObservedTime,omitempty"` +} + +// EventSeriesApplyConfiguration constructs an declarative configuration of the EventSeries type for use with +// apply. +func EventSeries() *EventSeriesApplyConfiguration { + return &EventSeriesApplyConfiguration{} +} + +// WithCount sets the Count field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Count field is set to the value of the last call. +func (b *EventSeriesApplyConfiguration) WithCount(value int32) *EventSeriesApplyConfiguration { + b.Count = &value + return b +} + +// WithLastObservedTime sets the LastObservedTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastObservedTime field is set to the value of the last call. +func (b *EventSeriesApplyConfiguration) WithLastObservedTime(value v1.MicroTime) *EventSeriesApplyConfiguration { + b.LastObservedTime = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/allowedcsidriver.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/allowedcsidriver.go new file mode 100644 index 0000000000..27b49bf153 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/allowedcsidriver.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// AllowedCSIDriverApplyConfiguration represents an declarative configuration of the AllowedCSIDriver type for use +// with apply. +type AllowedCSIDriverApplyConfiguration struct { + Name *string `json:"name,omitempty"` +} + +// AllowedCSIDriverApplyConfiguration constructs an declarative configuration of the AllowedCSIDriver type for use with +// apply. +func AllowedCSIDriver() *AllowedCSIDriverApplyConfiguration { + return &AllowedCSIDriverApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *AllowedCSIDriverApplyConfiguration) WithName(value string) *AllowedCSIDriverApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/allowedflexvolume.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/allowedflexvolume.go new file mode 100644 index 0000000000..30c3724cfe --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/allowedflexvolume.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// AllowedFlexVolumeApplyConfiguration represents an declarative configuration of the AllowedFlexVolume type for use +// with apply. +type AllowedFlexVolumeApplyConfiguration struct { + Driver *string `json:"driver,omitempty"` +} + +// AllowedFlexVolumeApplyConfiguration constructs an declarative configuration of the AllowedFlexVolume type for use with +// apply. +func AllowedFlexVolume() *AllowedFlexVolumeApplyConfiguration { + return &AllowedFlexVolumeApplyConfiguration{} +} + +// WithDriver sets the Driver field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Driver field is set to the value of the last call. +func (b *AllowedFlexVolumeApplyConfiguration) WithDriver(value string) *AllowedFlexVolumeApplyConfiguration { + b.Driver = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/allowedhostpath.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/allowedhostpath.go new file mode 100644 index 0000000000..493815d8d4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/allowedhostpath.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// AllowedHostPathApplyConfiguration represents an declarative configuration of the AllowedHostPath type for use +// with apply. +type AllowedHostPathApplyConfiguration struct { + PathPrefix *string `json:"pathPrefix,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// AllowedHostPathApplyConfiguration constructs an declarative configuration of the AllowedHostPath type for use with +// apply. +func AllowedHostPath() *AllowedHostPathApplyConfiguration { + return &AllowedHostPathApplyConfiguration{} +} + +// WithPathPrefix sets the PathPrefix field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PathPrefix field is set to the value of the last call. +func (b *AllowedHostPathApplyConfiguration) WithPathPrefix(value string) *AllowedHostPathApplyConfiguration { + b.PathPrefix = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *AllowedHostPathApplyConfiguration) WithReadOnly(value bool) *AllowedHostPathApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonset.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonset.go new file mode 100644 index 0000000000..09777e4340 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonset.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DaemonSetApplyConfiguration represents an declarative configuration of the DaemonSet type for use +// with apply. +type DaemonSetApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *DaemonSetSpecApplyConfiguration `json:"spec,omitempty"` + Status *DaemonSetStatusApplyConfiguration `json:"status,omitempty"` +} + +// DaemonSet constructs an declarative configuration of the DaemonSet type for use with +// apply. +func DaemonSet(name, namespace string) *DaemonSetApplyConfiguration { + b := &DaemonSetApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("DaemonSet") + b.WithAPIVersion("extensions/v1beta1") + return b +} + +// ExtractDaemonSet extracts the applied configuration owned by fieldManager from +// daemonSet. If no managedFields are found in daemonSet for fieldManager, a +// DaemonSetApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// daemonSet must be a unmodified DaemonSet API object that was retrieved from the Kubernetes API. +// ExtractDaemonSet provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractDaemonSet(daemonSet *extensionsv1beta1.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) { + b := &DaemonSetApplyConfiguration{} + err := managedfields.ExtractInto(daemonSet, internal.Parser().Type("io.k8s.api.extensions.v1beta1.DaemonSet"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(daemonSet.Name) + b.WithNamespace(daemonSet.Namespace) + + b.WithKind("DaemonSet") + b.WithAPIVersion("extensions/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithKind(value string) *DaemonSetApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithAPIVersion(value string) *DaemonSetApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithName(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithGenerateName(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithNamespace(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithSelfLink(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithUID(value types.UID) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithResourceVersion(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithGeneration(value int64) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *DaemonSetApplyConfiguration) WithLabels(entries map[string]string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *DaemonSetApplyConfiguration) WithAnnotations(entries map[string]string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *DaemonSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *DaemonSetApplyConfiguration) WithFinalizers(values ...string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithClusterName(value string) *DaemonSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *DaemonSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithSpec(value *DaemonSetSpecApplyConfiguration) *DaemonSetApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DaemonSetApplyConfiguration) WithStatus(value *DaemonSetStatusApplyConfiguration) *DaemonSetApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetcondition.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetcondition.go new file mode 100644 index 0000000000..bbf718f0f2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetcondition.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/api/core/v1" + v1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// DaemonSetConditionApplyConfiguration represents an declarative configuration of the DaemonSetCondition type for use +// with apply. +type DaemonSetConditionApplyConfiguration struct { + Type *v1beta1.DaemonSetConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// DaemonSetConditionApplyConfiguration constructs an declarative configuration of the DaemonSetCondition type for use with +// apply. +func DaemonSetCondition() *DaemonSetConditionApplyConfiguration { + return &DaemonSetConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithType(value v1beta1.DaemonSetConditionType) *DaemonSetConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DaemonSetConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DaemonSetConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithReason(value string) *DaemonSetConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *DaemonSetConditionApplyConfiguration) WithMessage(value string) *DaemonSetConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetspec.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetspec.go new file mode 100644 index 0000000000..b5d7a0c161 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetspec.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DaemonSetSpecApplyConfiguration represents an declarative configuration of the DaemonSetSpec type for use +// with apply. +type DaemonSetSpecApplyConfiguration struct { + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` + UpdateStrategy *DaemonSetUpdateStrategyApplyConfiguration `json:"updateStrategy,omitempty"` + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + TemplateGeneration *int64 `json:"templateGeneration,omitempty"` + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` +} + +// DaemonSetSpecApplyConfiguration constructs an declarative configuration of the DaemonSetSpec type for use with +// apply. +func DaemonSetSpec() *DaemonSetSpecApplyConfiguration { + return &DaemonSetSpecApplyConfiguration{} +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DaemonSetSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DaemonSetSpecApplyConfiguration { + b.Template = value + return b +} + +// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdateStrategy field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithUpdateStrategy(value *DaemonSetUpdateStrategyApplyConfiguration) *DaemonSetSpecApplyConfiguration { + b.UpdateStrategy = value + return b +} + +// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReadySeconds field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *DaemonSetSpecApplyConfiguration { + b.MinReadySeconds = &value + return b +} + +// WithTemplateGeneration sets the TemplateGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the TemplateGeneration field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithTemplateGeneration(value int64) *DaemonSetSpecApplyConfiguration { + b.TemplateGeneration = &value + return b +} + +// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call. +func (b *DaemonSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DaemonSetSpecApplyConfiguration { + b.RevisionHistoryLimit = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetstatus.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetstatus.go new file mode 100644 index 0000000000..be6b3b2853 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetstatus.go @@ -0,0 +1,125 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// DaemonSetStatusApplyConfiguration represents an declarative configuration of the DaemonSetStatus type for use +// with apply. +type DaemonSetStatusApplyConfiguration struct { + CurrentNumberScheduled *int32 `json:"currentNumberScheduled,omitempty"` + NumberMisscheduled *int32 `json:"numberMisscheduled,omitempty"` + DesiredNumberScheduled *int32 `json:"desiredNumberScheduled,omitempty"` + NumberReady *int32 `json:"numberReady,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + UpdatedNumberScheduled *int32 `json:"updatedNumberScheduled,omitempty"` + NumberAvailable *int32 `json:"numberAvailable,omitempty"` + NumberUnavailable *int32 `json:"numberUnavailable,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty"` + Conditions []DaemonSetConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// DaemonSetStatusApplyConfiguration constructs an declarative configuration of the DaemonSetStatus type for use with +// apply. +func DaemonSetStatus() *DaemonSetStatusApplyConfiguration { + return &DaemonSetStatusApplyConfiguration{} +} + +// WithCurrentNumberScheduled sets the CurrentNumberScheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentNumberScheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithCurrentNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.CurrentNumberScheduled = &value + return b +} + +// WithNumberMisscheduled sets the NumberMisscheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberMisscheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberMisscheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberMisscheduled = &value + return b +} + +// WithDesiredNumberScheduled sets the DesiredNumberScheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DesiredNumberScheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithDesiredNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.DesiredNumberScheduled = &value + return b +} + +// WithNumberReady sets the NumberReady field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberReady field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberReady(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberReady = &value + return b +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithObservedGeneration(value int64) *DaemonSetStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithUpdatedNumberScheduled sets the UpdatedNumberScheduled field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdatedNumberScheduled field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithUpdatedNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration { + b.UpdatedNumberScheduled = &value + return b +} + +// WithNumberAvailable sets the NumberAvailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberAvailable field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberAvailable(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberAvailable = &value + return b +} + +// WithNumberUnavailable sets the NumberUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NumberUnavailable field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithNumberUnavailable(value int32) *DaemonSetStatusApplyConfiguration { + b.NumberUnavailable = &value + return b +} + +// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CollisionCount field is set to the value of the last call. +func (b *DaemonSetStatusApplyConfiguration) WithCollisionCount(value int32) *DaemonSetStatusApplyConfiguration { + b.CollisionCount = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *DaemonSetStatusApplyConfiguration) WithConditions(values ...*DaemonSetConditionApplyConfiguration) *DaemonSetStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetupdatestrategy.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetupdatestrategy.go new file mode 100644 index 0000000000..2c827e62d4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetupdatestrategy.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/extensions/v1beta1" +) + +// DaemonSetUpdateStrategyApplyConfiguration represents an declarative configuration of the DaemonSetUpdateStrategy type for use +// with apply. +type DaemonSetUpdateStrategyApplyConfiguration struct { + Type *v1beta1.DaemonSetUpdateStrategyType `json:"type,omitempty"` + RollingUpdate *RollingUpdateDaemonSetApplyConfiguration `json:"rollingUpdate,omitempty"` +} + +// DaemonSetUpdateStrategyApplyConfiguration constructs an declarative configuration of the DaemonSetUpdateStrategy type for use with +// apply. +func DaemonSetUpdateStrategy() *DaemonSetUpdateStrategyApplyConfiguration { + return &DaemonSetUpdateStrategyApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DaemonSetUpdateStrategyApplyConfiguration) WithType(value v1beta1.DaemonSetUpdateStrategyType) *DaemonSetUpdateStrategyApplyConfiguration { + b.Type = &value + return b +} + +// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollingUpdate field is set to the value of the last call. +func (b *DaemonSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDaemonSetApplyConfiguration) *DaemonSetUpdateStrategyApplyConfiguration { + b.RollingUpdate = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deployment.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deployment.go new file mode 100644 index 0000000000..cc9d8fdc3a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deployment.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DeploymentApplyConfiguration represents an declarative configuration of the Deployment type for use +// with apply. +type DeploymentApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *DeploymentSpecApplyConfiguration `json:"spec,omitempty"` + Status *DeploymentStatusApplyConfiguration `json:"status,omitempty"` +} + +// Deployment constructs an declarative configuration of the Deployment type for use with +// apply. +func Deployment(name, namespace string) *DeploymentApplyConfiguration { + b := &DeploymentApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Deployment") + b.WithAPIVersion("extensions/v1beta1") + return b +} + +// ExtractDeployment extracts the applied configuration owned by fieldManager from +// deployment. If no managedFields are found in deployment for fieldManager, a +// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API. +// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractDeployment(deployment *extensionsv1beta1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) { + b := &DeploymentApplyConfiguration{} + err := managedfields.ExtractInto(deployment, internal.Parser().Type("io.k8s.api.extensions.v1beta1.Deployment"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(deployment.Name) + b.WithNamespace(deployment.Namespace) + + b.WithKind("Deployment") + b.WithAPIVersion("extensions/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithSelfLink(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithClusterName(value string) *DeploymentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentcondition.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentcondition.go new file mode 100644 index 0000000000..d8a214b7fc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentcondition.go @@ -0,0 +1,90 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/api/core/v1" + v1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// DeploymentConditionApplyConfiguration represents an declarative configuration of the DeploymentCondition type for use +// with apply. +type DeploymentConditionApplyConfiguration struct { + Type *v1beta1.DeploymentConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// DeploymentConditionApplyConfiguration constructs an declarative configuration of the DeploymentCondition type for use with +// apply. +func DeploymentCondition() *DeploymentConditionApplyConfiguration { + return &DeploymentConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithType(value v1beta1.DeploymentConditionType) *DeploymentConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DeploymentConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastUpdateTime field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration { + b.LastUpdateTime = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentspec.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentspec.go new file mode 100644 index 0000000000..5e18476bdc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentspec.go @@ -0,0 +1,116 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// DeploymentSpecApplyConfiguration represents an declarative configuration of the DeploymentSpec type for use +// with apply. +type DeploymentSpecApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` + Strategy *DeploymentStrategyApplyConfiguration `json:"strategy,omitempty"` + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` + Paused *bool `json:"paused,omitempty"` + RollbackTo *RollbackConfigApplyConfiguration `json:"rollbackTo,omitempty"` + ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty"` +} + +// DeploymentSpecApplyConfiguration constructs an declarative configuration of the DeploymentSpec type for use with +// apply. +func DeploymentSpec() *DeploymentSpecApplyConfiguration { + return &DeploymentSpecApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration { + b.Replicas = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Template = value + return b +} + +// WithStrategy sets the Strategy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Strategy field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.Strategy = value + return b +} + +// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReadySeconds field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration { + b.MinReadySeconds = &value + return b +} + +// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration { + b.RevisionHistoryLimit = &value + return b +} + +// WithPaused sets the Paused field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Paused field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration { + b.Paused = &value + return b +} + +// WithRollbackTo sets the RollbackTo field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollbackTo field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithRollbackTo(value *RollbackConfigApplyConfiguration) *DeploymentSpecApplyConfiguration { + b.RollbackTo = value + return b +} + +// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call. +func (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration { + b.ProgressDeadlineSeconds = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstatus.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstatus.go new file mode 100644 index 0000000000..f8d1cf5d25 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstatus.go @@ -0,0 +1,107 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// DeploymentStatusApplyConfiguration represents an declarative configuration of the DeploymentStatus type for use +// with apply. +type DeploymentStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Replicas *int32 `json:"replicas,omitempty"` + UpdatedReplicas *int32 `json:"updatedReplicas,omitempty"` + ReadyReplicas *int32 `json:"readyReplicas,omitempty"` + AvailableReplicas *int32 `json:"availableReplicas,omitempty"` + UnavailableReplicas *int32 `json:"unavailableReplicas,omitempty"` + Conditions []DeploymentConditionApplyConfiguration `json:"conditions,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty"` +} + +// DeploymentStatusApplyConfiguration constructs an declarative configuration of the DeploymentStatus type for use with +// apply. +func DeploymentStatus() *DeploymentStatusApplyConfiguration { + return &DeploymentStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.Replicas = &value + return b +} + +// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UpdatedReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.UpdatedReplicas = &value + return b +} + +// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadyReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.ReadyReplicas = &value + return b +} + +// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AvailableReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.AvailableReplicas = &value + return b +} + +// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UnavailableReplicas field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration { + b.UnavailableReplicas = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + +// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CollisionCount field is set to the value of the last call. +func (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration { + b.CollisionCount = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstrategy.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstrategy.go new file mode 100644 index 0000000000..7c17b40722 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstrategy.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/extensions/v1beta1" +) + +// DeploymentStrategyApplyConfiguration represents an declarative configuration of the DeploymentStrategy type for use +// with apply. +type DeploymentStrategyApplyConfiguration struct { + Type *v1beta1.DeploymentStrategyType `json:"type,omitempty"` + RollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:"rollingUpdate,omitempty"` +} + +// DeploymentStrategyApplyConfiguration constructs an declarative configuration of the DeploymentStrategy type for use with +// apply. +func DeploymentStrategy() *DeploymentStrategyApplyConfiguration { + return &DeploymentStrategyApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *DeploymentStrategyApplyConfiguration) WithType(value v1beta1.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration { + b.Type = &value + return b +} + +// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RollingUpdate field is set to the value of the last call. +func (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration { + b.RollingUpdate = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/fsgroupstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/fsgroupstrategyoptions.go new file mode 100644 index 0000000000..c7434a6af0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/fsgroupstrategyoptions.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/extensions/v1beta1" +) + +// FSGroupStrategyOptionsApplyConfiguration represents an declarative configuration of the FSGroupStrategyOptions type for use +// with apply. +type FSGroupStrategyOptionsApplyConfiguration struct { + Rule *v1beta1.FSGroupStrategyType `json:"rule,omitempty"` + Ranges []IDRangeApplyConfiguration `json:"ranges,omitempty"` +} + +// FSGroupStrategyOptionsApplyConfiguration constructs an declarative configuration of the FSGroupStrategyOptions type for use with +// apply. +func FSGroupStrategyOptions() *FSGroupStrategyOptionsApplyConfiguration { + return &FSGroupStrategyOptionsApplyConfiguration{} +} + +// WithRule sets the Rule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Rule field is set to the value of the last call. +func (b *FSGroupStrategyOptionsApplyConfiguration) WithRule(value v1beta1.FSGroupStrategyType) *FSGroupStrategyOptionsApplyConfiguration { + b.Rule = &value + return b +} + +// WithRanges adds the given value to the Ranges field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ranges field. +func (b *FSGroupStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *FSGroupStrategyOptionsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRanges") + } + b.Ranges = append(b.Ranges, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/hostportrange.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/hostportrange.go new file mode 100644 index 0000000000..7c79688139 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/hostportrange.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// HostPortRangeApplyConfiguration represents an declarative configuration of the HostPortRange type for use +// with apply. +type HostPortRangeApplyConfiguration struct { + Min *int32 `json:"min,omitempty"` + Max *int32 `json:"max,omitempty"` +} + +// HostPortRangeApplyConfiguration constructs an declarative configuration of the HostPortRange type for use with +// apply. +func HostPortRange() *HostPortRangeApplyConfiguration { + return &HostPortRangeApplyConfiguration{} +} + +// WithMin sets the Min field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Min field is set to the value of the last call. +func (b *HostPortRangeApplyConfiguration) WithMin(value int32) *HostPortRangeApplyConfiguration { + b.Min = &value + return b +} + +// WithMax sets the Max field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Max field is set to the value of the last call. +func (b *HostPortRangeApplyConfiguration) WithMax(value int32) *HostPortRangeApplyConfiguration { + b.Max = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingresspath.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingresspath.go new file mode 100644 index 0000000000..361605d8cd --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingresspath.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/extensions/v1beta1" +) + +// HTTPIngressPathApplyConfiguration represents an declarative configuration of the HTTPIngressPath type for use +// with apply. +type HTTPIngressPathApplyConfiguration struct { + Path *string `json:"path,omitempty"` + PathType *v1beta1.PathType `json:"pathType,omitempty"` + Backend *IngressBackendApplyConfiguration `json:"backend,omitempty"` +} + +// HTTPIngressPathApplyConfiguration constructs an declarative configuration of the HTTPIngressPath type for use with +// apply. +func HTTPIngressPath() *HTTPIngressPathApplyConfiguration { + return &HTTPIngressPathApplyConfiguration{} +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *HTTPIngressPathApplyConfiguration) WithPath(value string) *HTTPIngressPathApplyConfiguration { + b.Path = &value + return b +} + +// WithPathType sets the PathType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PathType field is set to the value of the last call. +func (b *HTTPIngressPathApplyConfiguration) WithPathType(value v1beta1.PathType) *HTTPIngressPathApplyConfiguration { + b.PathType = &value + return b +} + +// WithBackend sets the Backend field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Backend field is set to the value of the last call. +func (b *HTTPIngressPathApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *HTTPIngressPathApplyConfiguration { + b.Backend = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingressrulevalue.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingressrulevalue.go new file mode 100644 index 0000000000..3137bc5eb0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingressrulevalue.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// HTTPIngressRuleValueApplyConfiguration represents an declarative configuration of the HTTPIngressRuleValue type for use +// with apply. +type HTTPIngressRuleValueApplyConfiguration struct { + Paths []HTTPIngressPathApplyConfiguration `json:"paths,omitempty"` +} + +// HTTPIngressRuleValueApplyConfiguration constructs an declarative configuration of the HTTPIngressRuleValue type for use with +// apply. +func HTTPIngressRuleValue() *HTTPIngressRuleValueApplyConfiguration { + return &HTTPIngressRuleValueApplyConfiguration{} +} + +// WithPaths adds the given value to the Paths field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Paths field. +func (b *HTTPIngressRuleValueApplyConfiguration) WithPaths(values ...*HTTPIngressPathApplyConfiguration) *HTTPIngressRuleValueApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPaths") + } + b.Paths = append(b.Paths, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/idrange.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/idrange.go new file mode 100644 index 0000000000..af46f76581 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/idrange.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IDRangeApplyConfiguration represents an declarative configuration of the IDRange type for use +// with apply. +type IDRangeApplyConfiguration struct { + Min *int64 `json:"min,omitempty"` + Max *int64 `json:"max,omitempty"` +} + +// IDRangeApplyConfiguration constructs an declarative configuration of the IDRange type for use with +// apply. +func IDRange() *IDRangeApplyConfiguration { + return &IDRangeApplyConfiguration{} +} + +// WithMin sets the Min field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Min field is set to the value of the last call. +func (b *IDRangeApplyConfiguration) WithMin(value int64) *IDRangeApplyConfiguration { + b.Min = &value + return b +} + +// WithMax sets the Max field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Max field is set to the value of the last call. +func (b *IDRangeApplyConfiguration) WithMax(value int64) *IDRangeApplyConfiguration { + b.Max = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingress.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingress.go new file mode 100644 index 0000000000..ac30106667 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingress.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// IngressApplyConfiguration represents an declarative configuration of the Ingress type for use +// with apply. +type IngressApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *IngressSpecApplyConfiguration `json:"spec,omitempty"` + Status *IngressStatusApplyConfiguration `json:"status,omitempty"` +} + +// Ingress constructs an declarative configuration of the Ingress type for use with +// apply. +func Ingress(name, namespace string) *IngressApplyConfiguration { + b := &IngressApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Ingress") + b.WithAPIVersion("extensions/v1beta1") + return b +} + +// ExtractIngress extracts the applied configuration owned by fieldManager from +// ingress. If no managedFields are found in ingress for fieldManager, a +// IngressApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API. +// ExtractIngress provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractIngress(ingress *extensionsv1beta1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) { + b := &IngressApplyConfiguration{} + err := managedfields.ExtractInto(ingress, internal.Parser().Type("io.k8s.api.extensions.v1beta1.Ingress"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(ingress.Name) + b.WithNamespace(ingress.Namespace) + + b.WithKind("Ingress") + b.WithAPIVersion("extensions/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithKind(value string) *IngressApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithAPIVersion(value string) *IngressApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithName(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithGenerateName(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithNamespace(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithSelfLink(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithUID(value types.UID) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithResourceVersion(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithGeneration(value int64) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *IngressApplyConfiguration) WithLabels(entries map[string]string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *IngressApplyConfiguration) WithAnnotations(entries map[string]string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *IngressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *IngressApplyConfiguration) WithFinalizers(values ...string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithClusterName(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *IngressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithSpec(value *IngressSpecApplyConfiguration) *IngressApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithStatus(value *IngressStatusApplyConfiguration) *IngressApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressbackend.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressbackend.go new file mode 100644 index 0000000000..f19c2f2ee2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressbackend.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// IngressBackendApplyConfiguration represents an declarative configuration of the IngressBackend type for use +// with apply. +type IngressBackendApplyConfiguration struct { + ServiceName *string `json:"serviceName,omitempty"` + ServicePort *intstr.IntOrString `json:"servicePort,omitempty"` + Resource *v1.TypedLocalObjectReferenceApplyConfiguration `json:"resource,omitempty"` +} + +// IngressBackendApplyConfiguration constructs an declarative configuration of the IngressBackend type for use with +// apply. +func IngressBackend() *IngressBackendApplyConfiguration { + return &IngressBackendApplyConfiguration{} +} + +// WithServiceName sets the ServiceName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ServiceName field is set to the value of the last call. +func (b *IngressBackendApplyConfiguration) WithServiceName(value string) *IngressBackendApplyConfiguration { + b.ServiceName = &value + return b +} + +// WithServicePort sets the ServicePort field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ServicePort field is set to the value of the last call. +func (b *IngressBackendApplyConfiguration) WithServicePort(value intstr.IntOrString) *IngressBackendApplyConfiguration { + b.ServicePort = &value + return b +} + +// WithResource sets the Resource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resource field is set to the value of the last call. +func (b *IngressBackendApplyConfiguration) WithResource(value *v1.TypedLocalObjectReferenceApplyConfiguration) *IngressBackendApplyConfiguration { + b.Resource = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressrule.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressrule.go new file mode 100644 index 0000000000..015541eeb9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressrule.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IngressRuleApplyConfiguration represents an declarative configuration of the IngressRule type for use +// with apply. +type IngressRuleApplyConfiguration struct { + Host *string `json:"host,omitempty"` + IngressRuleValueApplyConfiguration `json:",omitempty,inline"` +} + +// IngressRuleApplyConfiguration constructs an declarative configuration of the IngressRule type for use with +// apply. +func IngressRule() *IngressRuleApplyConfiguration { + return &IngressRuleApplyConfiguration{} +} + +// WithHost sets the Host field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Host field is set to the value of the last call. +func (b *IngressRuleApplyConfiguration) WithHost(value string) *IngressRuleApplyConfiguration { + b.Host = &value + return b +} + +// WithHTTP sets the HTTP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HTTP field is set to the value of the last call. +func (b *IngressRuleApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleApplyConfiguration { + b.HTTP = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressrulevalue.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressrulevalue.go new file mode 100644 index 0000000000..2d03c7b132 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressrulevalue.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IngressRuleValueApplyConfiguration represents an declarative configuration of the IngressRuleValue type for use +// with apply. +type IngressRuleValueApplyConfiguration struct { + HTTP *HTTPIngressRuleValueApplyConfiguration `json:"http,omitempty"` +} + +// IngressRuleValueApplyConfiguration constructs an declarative configuration of the IngressRuleValue type for use with +// apply. +func IngressRuleValue() *IngressRuleValueApplyConfiguration { + return &IngressRuleValueApplyConfiguration{} +} + +// WithHTTP sets the HTTP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HTTP field is set to the value of the last call. +func (b *IngressRuleValueApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleValueApplyConfiguration { + b.HTTP = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressspec.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressspec.go new file mode 100644 index 0000000000..1ab4d8bb73 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressspec.go @@ -0,0 +1,76 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IngressSpecApplyConfiguration represents an declarative configuration of the IngressSpec type for use +// with apply. +type IngressSpecApplyConfiguration struct { + IngressClassName *string `json:"ingressClassName,omitempty"` + Backend *IngressBackendApplyConfiguration `json:"backend,omitempty"` + TLS []IngressTLSApplyConfiguration `json:"tls,omitempty"` + Rules []IngressRuleApplyConfiguration `json:"rules,omitempty"` +} + +// IngressSpecApplyConfiguration constructs an declarative configuration of the IngressSpec type for use with +// apply. +func IngressSpec() *IngressSpecApplyConfiguration { + return &IngressSpecApplyConfiguration{} +} + +// WithIngressClassName sets the IngressClassName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IngressClassName field is set to the value of the last call. +func (b *IngressSpecApplyConfiguration) WithIngressClassName(value string) *IngressSpecApplyConfiguration { + b.IngressClassName = &value + return b +} + +// WithBackend sets the Backend field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Backend field is set to the value of the last call. +func (b *IngressSpecApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *IngressSpecApplyConfiguration { + b.Backend = value + return b +} + +// WithTLS adds the given value to the TLS field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the TLS field. +func (b *IngressSpecApplyConfiguration) WithTLS(values ...*IngressTLSApplyConfiguration) *IngressSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTLS") + } + b.TLS = append(b.TLS, *values[i]) + } + return b +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *IngressSpecApplyConfiguration) WithRules(values ...*IngressRuleApplyConfiguration) *IngressSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressstatus.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressstatus.go new file mode 100644 index 0000000000..941769594e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressstatus.go @@ -0,0 +1,43 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// IngressStatusApplyConfiguration represents an declarative configuration of the IngressStatus type for use +// with apply. +type IngressStatusApplyConfiguration struct { + LoadBalancer *v1.LoadBalancerStatusApplyConfiguration `json:"loadBalancer,omitempty"` +} + +// IngressStatusApplyConfiguration constructs an declarative configuration of the IngressStatus type for use with +// apply. +func IngressStatus() *IngressStatusApplyConfiguration { + return &IngressStatusApplyConfiguration{} +} + +// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LoadBalancer field is set to the value of the last call. +func (b *IngressStatusApplyConfiguration) WithLoadBalancer(value *v1.LoadBalancerStatusApplyConfiguration) *IngressStatusApplyConfiguration { + b.LoadBalancer = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingresstls.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingresstls.go new file mode 100644 index 0000000000..8ca93a0bc2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingresstls.go @@ -0,0 +1,50 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IngressTLSApplyConfiguration represents an declarative configuration of the IngressTLS type for use +// with apply. +type IngressTLSApplyConfiguration struct { + Hosts []string `json:"hosts,omitempty"` + SecretName *string `json:"secretName,omitempty"` +} + +// IngressTLSApplyConfiguration constructs an declarative configuration of the IngressTLS type for use with +// apply. +func IngressTLS() *IngressTLSApplyConfiguration { + return &IngressTLSApplyConfiguration{} +} + +// WithHosts adds the given value to the Hosts field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Hosts field. +func (b *IngressTLSApplyConfiguration) WithHosts(values ...string) *IngressTLSApplyConfiguration { + for i := range values { + b.Hosts = append(b.Hosts, values[i]) + } + return b +} + +// WithSecretName sets the SecretName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretName field is set to the value of the last call. +func (b *IngressTLSApplyConfiguration) WithSecretName(value string) *IngressTLSApplyConfiguration { + b.SecretName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ipblock.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ipblock.go new file mode 100644 index 0000000000..a90d3b2207 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ipblock.go @@ -0,0 +1,50 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IPBlockApplyConfiguration represents an declarative configuration of the IPBlock type for use +// with apply. +type IPBlockApplyConfiguration struct { + CIDR *string `json:"cidr,omitempty"` + Except []string `json:"except,omitempty"` +} + +// IPBlockApplyConfiguration constructs an declarative configuration of the IPBlock type for use with +// apply. +func IPBlock() *IPBlockApplyConfiguration { + return &IPBlockApplyConfiguration{} +} + +// WithCIDR sets the CIDR field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CIDR field is set to the value of the last call. +func (b *IPBlockApplyConfiguration) WithCIDR(value string) *IPBlockApplyConfiguration { + b.CIDR = &value + return b +} + +// WithExcept adds the given value to the Except field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Except field. +func (b *IPBlockApplyConfiguration) WithExcept(values ...string) *IPBlockApplyConfiguration { + for i := range values { + b.Except = append(b.Except, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicy.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicy.go new file mode 100644 index 0000000000..0b25c9c966 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicy.go @@ -0,0 +1,256 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// NetworkPolicyApplyConfiguration represents an declarative configuration of the NetworkPolicy type for use +// with apply. +type NetworkPolicyApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *NetworkPolicySpecApplyConfiguration `json:"spec,omitempty"` +} + +// NetworkPolicy constructs an declarative configuration of the NetworkPolicy type for use with +// apply. +func NetworkPolicy(name, namespace string) *NetworkPolicyApplyConfiguration { + b := &NetworkPolicyApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("NetworkPolicy") + b.WithAPIVersion("extensions/v1beta1") + return b +} + +// ExtractNetworkPolicy extracts the applied configuration owned by fieldManager from +// networkPolicy. If no managedFields are found in networkPolicy for fieldManager, a +// NetworkPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// networkPolicy must be a unmodified NetworkPolicy API object that was retrieved from the Kubernetes API. +// ExtractNetworkPolicy provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractNetworkPolicy(networkPolicy *extensionsv1beta1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) { + b := &NetworkPolicyApplyConfiguration{} + err := managedfields.ExtractInto(networkPolicy, internal.Parser().Type("io.k8s.api.extensions.v1beta1.NetworkPolicy"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(networkPolicy.Name) + b.WithNamespace(networkPolicy.Namespace) + + b.WithKind("NetworkPolicy") + b.WithAPIVersion("extensions/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithKind(value string) *NetworkPolicyApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithAPIVersion(value string) *NetworkPolicyApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithName(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithGenerateName(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithNamespace(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithSelfLink(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithUID(value types.UID) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithResourceVersion(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithGeneration(value int64) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *NetworkPolicyApplyConfiguration) WithLabels(entries map[string]string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *NetworkPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *NetworkPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *NetworkPolicyApplyConfiguration) WithFinalizers(values ...string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithClusterName(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *NetworkPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithSpec(value *NetworkPolicySpecApplyConfiguration) *NetworkPolicyApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyegressrule.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyegressrule.go new file mode 100644 index 0000000000..6335ec375d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyegressrule.go @@ -0,0 +1,58 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// NetworkPolicyEgressRuleApplyConfiguration represents an declarative configuration of the NetworkPolicyEgressRule type for use +// with apply. +type NetworkPolicyEgressRuleApplyConfiguration struct { + Ports []NetworkPolicyPortApplyConfiguration `json:"ports,omitempty"` + To []NetworkPolicyPeerApplyConfiguration `json:"to,omitempty"` +} + +// NetworkPolicyEgressRuleApplyConfiguration constructs an declarative configuration of the NetworkPolicyEgressRule type for use with +// apply. +func NetworkPolicyEgressRule() *NetworkPolicyEgressRuleApplyConfiguration { + return &NetworkPolicyEgressRuleApplyConfiguration{} +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *NetworkPolicyEgressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} + +// WithTo adds the given value to the To field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the To field. +func (b *NetworkPolicyEgressRuleApplyConfiguration) WithTo(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTo") + } + b.To = append(b.To, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyingressrule.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyingressrule.go new file mode 100644 index 0000000000..2ecc4c8c65 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyingressrule.go @@ -0,0 +1,58 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// NetworkPolicyIngressRuleApplyConfiguration represents an declarative configuration of the NetworkPolicyIngressRule type for use +// with apply. +type NetworkPolicyIngressRuleApplyConfiguration struct { + Ports []NetworkPolicyPortApplyConfiguration `json:"ports,omitempty"` + From []NetworkPolicyPeerApplyConfiguration `json:"from,omitempty"` +} + +// NetworkPolicyIngressRuleApplyConfiguration constructs an declarative configuration of the NetworkPolicyIngressRule type for use with +// apply. +func NetworkPolicyIngressRule() *NetworkPolicyIngressRuleApplyConfiguration { + return &NetworkPolicyIngressRuleApplyConfiguration{} +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *NetworkPolicyIngressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} + +// WithFrom adds the given value to the From field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the From field. +func (b *NetworkPolicyIngressRuleApplyConfiguration) WithFrom(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithFrom") + } + b.From = append(b.From, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicypeer.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicypeer.go new file mode 100644 index 0000000000..c69b281225 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicypeer.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// NetworkPolicyPeerApplyConfiguration represents an declarative configuration of the NetworkPolicyPeer type for use +// with apply. +type NetworkPolicyPeerApplyConfiguration struct { + PodSelector *v1.LabelSelectorApplyConfiguration `json:"podSelector,omitempty"` + NamespaceSelector *v1.LabelSelectorApplyConfiguration `json:"namespaceSelector,omitempty"` + IPBlock *IPBlockApplyConfiguration `json:"ipBlock,omitempty"` +} + +// NetworkPolicyPeerApplyConfiguration constructs an declarative configuration of the NetworkPolicyPeer type for use with +// apply. +func NetworkPolicyPeer() *NetworkPolicyPeerApplyConfiguration { + return &NetworkPolicyPeerApplyConfiguration{} +} + +// WithPodSelector sets the PodSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodSelector field is set to the value of the last call. +func (b *NetworkPolicyPeerApplyConfiguration) WithPodSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration { + b.PodSelector = value + return b +} + +// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NamespaceSelector field is set to the value of the last call. +func (b *NetworkPolicyPeerApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration { + b.NamespaceSelector = value + return b +} + +// WithIPBlock sets the IPBlock field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IPBlock field is set to the value of the last call. +func (b *NetworkPolicyPeerApplyConfiguration) WithIPBlock(value *IPBlockApplyConfiguration) *NetworkPolicyPeerApplyConfiguration { + b.IPBlock = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyport.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyport.go new file mode 100644 index 0000000000..0140d771bf --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyport.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/api/core/v1" + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// NetworkPolicyPortApplyConfiguration represents an declarative configuration of the NetworkPolicyPort type for use +// with apply. +type NetworkPolicyPortApplyConfiguration struct { + Protocol *v1.Protocol `json:"protocol,omitempty"` + Port *intstr.IntOrString `json:"port,omitempty"` + EndPort *int32 `json:"endPort,omitempty"` +} + +// NetworkPolicyPortApplyConfiguration constructs an declarative configuration of the NetworkPolicyPort type for use with +// apply. +func NetworkPolicyPort() *NetworkPolicyPortApplyConfiguration { + return &NetworkPolicyPortApplyConfiguration{} +} + +// WithProtocol sets the Protocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Protocol field is set to the value of the last call. +func (b *NetworkPolicyPortApplyConfiguration) WithProtocol(value v1.Protocol) *NetworkPolicyPortApplyConfiguration { + b.Protocol = &value + return b +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *NetworkPolicyPortApplyConfiguration) WithPort(value intstr.IntOrString) *NetworkPolicyPortApplyConfiguration { + b.Port = &value + return b +} + +// WithEndPort sets the EndPort field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EndPort field is set to the value of the last call. +func (b *NetworkPolicyPortApplyConfiguration) WithEndPort(value int32) *NetworkPolicyPortApplyConfiguration { + b.EndPort = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyspec.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyspec.go new file mode 100644 index 0000000000..179e4bd024 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyspec.go @@ -0,0 +1,83 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// NetworkPolicySpecApplyConfiguration represents an declarative configuration of the NetworkPolicySpec type for use +// with apply. +type NetworkPolicySpecApplyConfiguration struct { + PodSelector *v1.LabelSelectorApplyConfiguration `json:"podSelector,omitempty"` + Ingress []NetworkPolicyIngressRuleApplyConfiguration `json:"ingress,omitempty"` + Egress []NetworkPolicyEgressRuleApplyConfiguration `json:"egress,omitempty"` + PolicyTypes []extensionsv1beta1.PolicyType `json:"policyTypes,omitempty"` +} + +// NetworkPolicySpecApplyConfiguration constructs an declarative configuration of the NetworkPolicySpec type for use with +// apply. +func NetworkPolicySpec() *NetworkPolicySpecApplyConfiguration { + return &NetworkPolicySpecApplyConfiguration{} +} + +// WithPodSelector sets the PodSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodSelector field is set to the value of the last call. +func (b *NetworkPolicySpecApplyConfiguration) WithPodSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicySpecApplyConfiguration { + b.PodSelector = value + return b +} + +// WithIngress adds the given value to the Ingress field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ingress field. +func (b *NetworkPolicySpecApplyConfiguration) WithIngress(values ...*NetworkPolicyIngressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithIngress") + } + b.Ingress = append(b.Ingress, *values[i]) + } + return b +} + +// WithEgress adds the given value to the Egress field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Egress field. +func (b *NetworkPolicySpecApplyConfiguration) WithEgress(values ...*NetworkPolicyEgressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEgress") + } + b.Egress = append(b.Egress, *values[i]) + } + return b +} + +// WithPolicyTypes adds the given value to the PolicyTypes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the PolicyTypes field. +func (b *NetworkPolicySpecApplyConfiguration) WithPolicyTypes(values ...extensionsv1beta1.PolicyType) *NetworkPolicySpecApplyConfiguration { + for i := range values { + b.PolicyTypes = append(b.PolicyTypes, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/podsecuritypolicy.go new file mode 100644 index 0000000000..e2c8d8f811 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/podsecuritypolicy.go @@ -0,0 +1,254 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodSecurityPolicyApplyConfiguration represents an declarative configuration of the PodSecurityPolicy type for use +// with apply. +type PodSecurityPolicyApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *PodSecurityPolicySpecApplyConfiguration `json:"spec,omitempty"` +} + +// PodSecurityPolicy constructs an declarative configuration of the PodSecurityPolicy type for use with +// apply. +func PodSecurityPolicy(name string) *PodSecurityPolicyApplyConfiguration { + b := &PodSecurityPolicyApplyConfiguration{} + b.WithName(name) + b.WithKind("PodSecurityPolicy") + b.WithAPIVersion("extensions/v1beta1") + return b +} + +// ExtractPodSecurityPolicy extracts the applied configuration owned by fieldManager from +// podSecurityPolicy. If no managedFields are found in podSecurityPolicy for fieldManager, a +// PodSecurityPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// podSecurityPolicy must be a unmodified PodSecurityPolicy API object that was retrieved from the Kubernetes API. +// ExtractPodSecurityPolicy provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPodSecurityPolicy(podSecurityPolicy *extensionsv1beta1.PodSecurityPolicy, fieldManager string) (*PodSecurityPolicyApplyConfiguration, error) { + b := &PodSecurityPolicyApplyConfiguration{} + err := managedfields.ExtractInto(podSecurityPolicy, internal.Parser().Type("io.k8s.api.extensions.v1beta1.PodSecurityPolicy"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(podSecurityPolicy.Name) + + b.WithKind("PodSecurityPolicy") + b.WithAPIVersion("extensions/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithKind(value string) *PodSecurityPolicyApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithAPIVersion(value string) *PodSecurityPolicyApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithName(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithGenerateName(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithNamespace(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithSelfLink(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithUID(value types.UID) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithResourceVersion(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithGeneration(value int64) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PodSecurityPolicyApplyConfiguration) WithLabels(entries map[string]string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PodSecurityPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PodSecurityPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PodSecurityPolicyApplyConfiguration) WithFinalizers(values ...string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithClusterName(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PodSecurityPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithSpec(value *PodSecurityPolicySpecApplyConfiguration) *PodSecurityPolicyApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/podsecuritypolicyspec.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/podsecuritypolicyspec.go new file mode 100644 index 0000000000..de3949dc92 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/podsecuritypolicyspec.go @@ -0,0 +1,285 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/api/core/v1" + v1beta1 "k8s.io/api/extensions/v1beta1" +) + +// PodSecurityPolicySpecApplyConfiguration represents an declarative configuration of the PodSecurityPolicySpec type for use +// with apply. +type PodSecurityPolicySpecApplyConfiguration struct { + Privileged *bool `json:"privileged,omitempty"` + DefaultAddCapabilities []v1.Capability `json:"defaultAddCapabilities,omitempty"` + RequiredDropCapabilities []v1.Capability `json:"requiredDropCapabilities,omitempty"` + AllowedCapabilities []v1.Capability `json:"allowedCapabilities,omitempty"` + Volumes []v1beta1.FSType `json:"volumes,omitempty"` + HostNetwork *bool `json:"hostNetwork,omitempty"` + HostPorts []HostPortRangeApplyConfiguration `json:"hostPorts,omitempty"` + HostPID *bool `json:"hostPID,omitempty"` + HostIPC *bool `json:"hostIPC,omitempty"` + SELinux *SELinuxStrategyOptionsApplyConfiguration `json:"seLinux,omitempty"` + RunAsUser *RunAsUserStrategyOptionsApplyConfiguration `json:"runAsUser,omitempty"` + RunAsGroup *RunAsGroupStrategyOptionsApplyConfiguration `json:"runAsGroup,omitempty"` + SupplementalGroups *SupplementalGroupsStrategyOptionsApplyConfiguration `json:"supplementalGroups,omitempty"` + FSGroup *FSGroupStrategyOptionsApplyConfiguration `json:"fsGroup,omitempty"` + ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty"` + DefaultAllowPrivilegeEscalation *bool `json:"defaultAllowPrivilegeEscalation,omitempty"` + AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty"` + AllowedHostPaths []AllowedHostPathApplyConfiguration `json:"allowedHostPaths,omitempty"` + AllowedFlexVolumes []AllowedFlexVolumeApplyConfiguration `json:"allowedFlexVolumes,omitempty"` + AllowedCSIDrivers []AllowedCSIDriverApplyConfiguration `json:"allowedCSIDrivers,omitempty"` + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty"` + ForbiddenSysctls []string `json:"forbiddenSysctls,omitempty"` + AllowedProcMountTypes []v1.ProcMountType `json:"allowedProcMountTypes,omitempty"` + RuntimeClass *RuntimeClassStrategyOptionsApplyConfiguration `json:"runtimeClass,omitempty"` +} + +// PodSecurityPolicySpecApplyConfiguration constructs an declarative configuration of the PodSecurityPolicySpec type for use with +// apply. +func PodSecurityPolicySpec() *PodSecurityPolicySpecApplyConfiguration { + return &PodSecurityPolicySpecApplyConfiguration{} +} + +// WithPrivileged sets the Privileged field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Privileged field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithPrivileged(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.Privileged = &value + return b +} + +// WithDefaultAddCapabilities adds the given value to the DefaultAddCapabilities field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the DefaultAddCapabilities field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithDefaultAddCapabilities(values ...v1.Capability) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.DefaultAddCapabilities = append(b.DefaultAddCapabilities, values[i]) + } + return b +} + +// WithRequiredDropCapabilities adds the given value to the RequiredDropCapabilities field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the RequiredDropCapabilities field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithRequiredDropCapabilities(values ...v1.Capability) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.RequiredDropCapabilities = append(b.RequiredDropCapabilities, values[i]) + } + return b +} + +// WithAllowedCapabilities adds the given value to the AllowedCapabilities field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedCapabilities field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedCapabilities(values ...v1.Capability) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.AllowedCapabilities = append(b.AllowedCapabilities, values[i]) + } + return b +} + +// WithVolumes adds the given value to the Volumes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Volumes field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithVolumes(values ...v1beta1.FSType) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.Volumes = append(b.Volumes, values[i]) + } + return b +} + +// WithHostNetwork sets the HostNetwork field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostNetwork field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithHostNetwork(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.HostNetwork = &value + return b +} + +// WithHostPorts adds the given value to the HostPorts field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the HostPorts field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithHostPorts(values ...*HostPortRangeApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithHostPorts") + } + b.HostPorts = append(b.HostPorts, *values[i]) + } + return b +} + +// WithHostPID sets the HostPID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostPID field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithHostPID(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.HostPID = &value + return b +} + +// WithHostIPC sets the HostIPC field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostIPC field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithHostIPC(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.HostIPC = &value + return b +} + +// WithSELinux sets the SELinux field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SELinux field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithSELinux(value *SELinuxStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.SELinux = value + return b +} + +// WithRunAsUser sets the RunAsUser field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RunAsUser field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithRunAsUser(value *RunAsUserStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.RunAsUser = value + return b +} + +// WithRunAsGroup sets the RunAsGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RunAsGroup field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithRunAsGroup(value *RunAsGroupStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.RunAsGroup = value + return b +} + +// WithSupplementalGroups sets the SupplementalGroups field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SupplementalGroups field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithSupplementalGroups(value *SupplementalGroupsStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.SupplementalGroups = value + return b +} + +// WithFSGroup sets the FSGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSGroup field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithFSGroup(value *FSGroupStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.FSGroup = value + return b +} + +// WithReadOnlyRootFilesystem sets the ReadOnlyRootFilesystem field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnlyRootFilesystem field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithReadOnlyRootFilesystem(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.ReadOnlyRootFilesystem = &value + return b +} + +// WithDefaultAllowPrivilegeEscalation sets the DefaultAllowPrivilegeEscalation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DefaultAllowPrivilegeEscalation field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithDefaultAllowPrivilegeEscalation(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.DefaultAllowPrivilegeEscalation = &value + return b +} + +// WithAllowPrivilegeEscalation sets the AllowPrivilegeEscalation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AllowPrivilegeEscalation field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowPrivilegeEscalation(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.AllowPrivilegeEscalation = &value + return b +} + +// WithAllowedHostPaths adds the given value to the AllowedHostPaths field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedHostPaths field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedHostPaths(values ...*AllowedHostPathApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithAllowedHostPaths") + } + b.AllowedHostPaths = append(b.AllowedHostPaths, *values[i]) + } + return b +} + +// WithAllowedFlexVolumes adds the given value to the AllowedFlexVolumes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedFlexVolumes field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedFlexVolumes(values ...*AllowedFlexVolumeApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithAllowedFlexVolumes") + } + b.AllowedFlexVolumes = append(b.AllowedFlexVolumes, *values[i]) + } + return b +} + +// WithAllowedCSIDrivers adds the given value to the AllowedCSIDrivers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedCSIDrivers field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedCSIDrivers(values ...*AllowedCSIDriverApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithAllowedCSIDrivers") + } + b.AllowedCSIDrivers = append(b.AllowedCSIDrivers, *values[i]) + } + return b +} + +// WithAllowedUnsafeSysctls adds the given value to the AllowedUnsafeSysctls field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedUnsafeSysctls field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedUnsafeSysctls(values ...string) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.AllowedUnsafeSysctls = append(b.AllowedUnsafeSysctls, values[i]) + } + return b +} + +// WithForbiddenSysctls adds the given value to the ForbiddenSysctls field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ForbiddenSysctls field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithForbiddenSysctls(values ...string) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.ForbiddenSysctls = append(b.ForbiddenSysctls, values[i]) + } + return b +} + +// WithAllowedProcMountTypes adds the given value to the AllowedProcMountTypes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedProcMountTypes field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedProcMountTypes(values ...v1.ProcMountType) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.AllowedProcMountTypes = append(b.AllowedProcMountTypes, values[i]) + } + return b +} + +// WithRuntimeClass sets the RuntimeClass field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RuntimeClass field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithRuntimeClass(value *RuntimeClassStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.RuntimeClass = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicaset.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicaset.go new file mode 100644 index 0000000000..dc7e7da78e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicaset.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ReplicaSetApplyConfiguration represents an declarative configuration of the ReplicaSet type for use +// with apply. +type ReplicaSetApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *ReplicaSetSpecApplyConfiguration `json:"spec,omitempty"` + Status *ReplicaSetStatusApplyConfiguration `json:"status,omitempty"` +} + +// ReplicaSet constructs an declarative configuration of the ReplicaSet type for use with +// apply. +func ReplicaSet(name, namespace string) *ReplicaSetApplyConfiguration { + b := &ReplicaSetApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("ReplicaSet") + b.WithAPIVersion("extensions/v1beta1") + return b +} + +// ExtractReplicaSet extracts the applied configuration owned by fieldManager from +// replicaSet. If no managedFields are found in replicaSet for fieldManager, a +// ReplicaSetApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// replicaSet must be a unmodified ReplicaSet API object that was retrieved from the Kubernetes API. +// ExtractReplicaSet provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractReplicaSet(replicaSet *extensionsv1beta1.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) { + b := &ReplicaSetApplyConfiguration{} + err := managedfields.ExtractInto(replicaSet, internal.Parser().Type("io.k8s.api.extensions.v1beta1.ReplicaSet"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(replicaSet.Name) + b.WithNamespace(replicaSet.Namespace) + + b.WithKind("ReplicaSet") + b.WithAPIVersion("extensions/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithKind(value string) *ReplicaSetApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithAPIVersion(value string) *ReplicaSetApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithName(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithGenerateName(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithNamespace(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithSelfLink(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithUID(value types.UID) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithResourceVersion(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithGeneration(value int64) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ReplicaSetApplyConfiguration) WithLabels(entries map[string]string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ReplicaSetApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ReplicaSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ReplicaSetApplyConfiguration) WithFinalizers(values ...string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithClusterName(value string) *ReplicaSetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ReplicaSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithSpec(value *ReplicaSetSpecApplyConfiguration) *ReplicaSetApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ReplicaSetApplyConfiguration) WithStatus(value *ReplicaSetStatusApplyConfiguration) *ReplicaSetApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetcondition.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetcondition.go new file mode 100644 index 0000000000..b717365175 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetcondition.go @@ -0,0 +1,81 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/api/core/v1" + v1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ReplicaSetConditionApplyConfiguration represents an declarative configuration of the ReplicaSetCondition type for use +// with apply. +type ReplicaSetConditionApplyConfiguration struct { + Type *v1beta1.ReplicaSetConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// ReplicaSetConditionApplyConfiguration constructs an declarative configuration of the ReplicaSetCondition type for use with +// apply. +func ReplicaSetCondition() *ReplicaSetConditionApplyConfiguration { + return &ReplicaSetConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithType(value v1beta1.ReplicaSetConditionType) *ReplicaSetConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ReplicaSetConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicaSetConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithReason(value string) *ReplicaSetConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *ReplicaSetConditionApplyConfiguration) WithMessage(value string) *ReplicaSetConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetspec.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetspec.go new file mode 100644 index 0000000000..5d0c570149 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetspec.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ReplicaSetSpecApplyConfiguration represents an declarative configuration of the ReplicaSetSpec type for use +// with apply. +type ReplicaSetSpecApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + Template *corev1.PodTemplateSpecApplyConfiguration `json:"template,omitempty"` +} + +// ReplicaSetSpecApplyConfiguration constructs an declarative configuration of the ReplicaSetSpec type for use with +// apply. +func ReplicaSetSpec() *ReplicaSetSpecApplyConfiguration { + return &ReplicaSetSpecApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithReplicas(value int32) *ReplicaSetSpecApplyConfiguration { + b.Replicas = &value + return b +} + +// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinReadySeconds field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicaSetSpecApplyConfiguration { + b.MinReadySeconds = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ReplicaSetSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithTemplate sets the Template field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Template field is set to the value of the last call. +func (b *ReplicaSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *ReplicaSetSpecApplyConfiguration { + b.Template = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetstatus.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetstatus.go new file mode 100644 index 0000000000..45dc4bf319 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetstatus.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// ReplicaSetStatusApplyConfiguration represents an declarative configuration of the ReplicaSetStatus type for use +// with apply. +type ReplicaSetStatusApplyConfiguration struct { + Replicas *int32 `json:"replicas,omitempty"` + FullyLabeledReplicas *int32 `json:"fullyLabeledReplicas,omitempty"` + ReadyReplicas *int32 `json:"readyReplicas,omitempty"` + AvailableReplicas *int32 `json:"availableReplicas,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Conditions []ReplicaSetConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// ReplicaSetStatusApplyConfiguration constructs an declarative configuration of the ReplicaSetStatus type for use with +// apply. +func ReplicaSetStatus() *ReplicaSetStatusApplyConfiguration { + return &ReplicaSetStatusApplyConfiguration{} +} + +// WithReplicas sets the Replicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Replicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.Replicas = &value + return b +} + +// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.FullyLabeledReplicas = &value + return b +} + +// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadyReplicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.ReadyReplicas = &value + return b +} + +// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AvailableReplicas field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicaSetStatusApplyConfiguration { + b.AvailableReplicas = &value + return b +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *ReplicaSetStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicaSetStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *ReplicaSetStatusApplyConfiguration) WithConditions(values ...*ReplicaSetConditionApplyConfiguration) *ReplicaSetStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollbackconfig.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollbackconfig.go new file mode 100644 index 0000000000..131e57a39d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollbackconfig.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// RollbackConfigApplyConfiguration represents an declarative configuration of the RollbackConfig type for use +// with apply. +type RollbackConfigApplyConfiguration struct { + Revision *int64 `json:"revision,omitempty"` +} + +// RollbackConfigApplyConfiguration constructs an declarative configuration of the RollbackConfig type for use with +// apply. +func RollbackConfig() *RollbackConfigApplyConfiguration { + return &RollbackConfigApplyConfiguration{} +} + +// WithRevision sets the Revision field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Revision field is set to the value of the last call. +func (b *RollbackConfigApplyConfiguration) WithRevision(value int64) *RollbackConfigApplyConfiguration { + b.Revision = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollingupdatedaemonset.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollingupdatedaemonset.go new file mode 100644 index 0000000000..3aa5e2f891 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollingupdatedaemonset.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// RollingUpdateDaemonSetApplyConfiguration represents an declarative configuration of the RollingUpdateDaemonSet type for use +// with apply. +type RollingUpdateDaemonSetApplyConfiguration struct { + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` +} + +// RollingUpdateDaemonSetApplyConfiguration constructs an declarative configuration of the RollingUpdateDaemonSet type for use with +// apply. +func RollingUpdateDaemonSet() *RollingUpdateDaemonSetApplyConfiguration { + return &RollingUpdateDaemonSetApplyConfiguration{} +} + +// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxUnavailable field is set to the value of the last call. +func (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration { + b.MaxUnavailable = &value + return b +} + +// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxSurge field is set to the value of the last call. +func (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration { + b.MaxSurge = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollingupdatedeployment.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollingupdatedeployment.go new file mode 100644 index 0000000000..dde5f064b0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollingupdatedeployment.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// RollingUpdateDeploymentApplyConfiguration represents an declarative configuration of the RollingUpdateDeployment type for use +// with apply. +type RollingUpdateDeploymentApplyConfiguration struct { + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` +} + +// RollingUpdateDeploymentApplyConfiguration constructs an declarative configuration of the RollingUpdateDeployment type for use with +// apply. +func RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration { + return &RollingUpdateDeploymentApplyConfiguration{} +} + +// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxUnavailable field is set to the value of the last call. +func (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration { + b.MaxUnavailable = &value + return b +} + +// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxSurge field is set to the value of the last call. +func (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration { + b.MaxSurge = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/runasgroupstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/runasgroupstrategyoptions.go new file mode 100644 index 0000000000..75e76e85fd --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/runasgroupstrategyoptions.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/extensions/v1beta1" +) + +// RunAsGroupStrategyOptionsApplyConfiguration represents an declarative configuration of the RunAsGroupStrategyOptions type for use +// with apply. +type RunAsGroupStrategyOptionsApplyConfiguration struct { + Rule *v1beta1.RunAsGroupStrategy `json:"rule,omitempty"` + Ranges []IDRangeApplyConfiguration `json:"ranges,omitempty"` +} + +// RunAsGroupStrategyOptionsApplyConfiguration constructs an declarative configuration of the RunAsGroupStrategyOptions type for use with +// apply. +func RunAsGroupStrategyOptions() *RunAsGroupStrategyOptionsApplyConfiguration { + return &RunAsGroupStrategyOptionsApplyConfiguration{} +} + +// WithRule sets the Rule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Rule field is set to the value of the last call. +func (b *RunAsGroupStrategyOptionsApplyConfiguration) WithRule(value v1beta1.RunAsGroupStrategy) *RunAsGroupStrategyOptionsApplyConfiguration { + b.Rule = &value + return b +} + +// WithRanges adds the given value to the Ranges field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ranges field. +func (b *RunAsGroupStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *RunAsGroupStrategyOptionsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRanges") + } + b.Ranges = append(b.Ranges, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/runasuserstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/runasuserstrategyoptions.go new file mode 100644 index 0000000000..712c1675ac --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/runasuserstrategyoptions.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/extensions/v1beta1" +) + +// RunAsUserStrategyOptionsApplyConfiguration represents an declarative configuration of the RunAsUserStrategyOptions type for use +// with apply. +type RunAsUserStrategyOptionsApplyConfiguration struct { + Rule *v1beta1.RunAsUserStrategy `json:"rule,omitempty"` + Ranges []IDRangeApplyConfiguration `json:"ranges,omitempty"` +} + +// RunAsUserStrategyOptionsApplyConfiguration constructs an declarative configuration of the RunAsUserStrategyOptions type for use with +// apply. +func RunAsUserStrategyOptions() *RunAsUserStrategyOptionsApplyConfiguration { + return &RunAsUserStrategyOptionsApplyConfiguration{} +} + +// WithRule sets the Rule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Rule field is set to the value of the last call. +func (b *RunAsUserStrategyOptionsApplyConfiguration) WithRule(value v1beta1.RunAsUserStrategy) *RunAsUserStrategyOptionsApplyConfiguration { + b.Rule = &value + return b +} + +// WithRanges adds the given value to the Ranges field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ranges field. +func (b *RunAsUserStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *RunAsUserStrategyOptionsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRanges") + } + b.Ranges = append(b.Ranges, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/runtimeclassstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/runtimeclassstrategyoptions.go new file mode 100644 index 0000000000..c19a7ce617 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/runtimeclassstrategyoptions.go @@ -0,0 +1,50 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// RuntimeClassStrategyOptionsApplyConfiguration represents an declarative configuration of the RuntimeClassStrategyOptions type for use +// with apply. +type RuntimeClassStrategyOptionsApplyConfiguration struct { + AllowedRuntimeClassNames []string `json:"allowedRuntimeClassNames,omitempty"` + DefaultRuntimeClassName *string `json:"defaultRuntimeClassName,omitempty"` +} + +// RuntimeClassStrategyOptionsApplyConfiguration constructs an declarative configuration of the RuntimeClassStrategyOptions type for use with +// apply. +func RuntimeClassStrategyOptions() *RuntimeClassStrategyOptionsApplyConfiguration { + return &RuntimeClassStrategyOptionsApplyConfiguration{} +} + +// WithAllowedRuntimeClassNames adds the given value to the AllowedRuntimeClassNames field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedRuntimeClassNames field. +func (b *RuntimeClassStrategyOptionsApplyConfiguration) WithAllowedRuntimeClassNames(values ...string) *RuntimeClassStrategyOptionsApplyConfiguration { + for i := range values { + b.AllowedRuntimeClassNames = append(b.AllowedRuntimeClassNames, values[i]) + } + return b +} + +// WithDefaultRuntimeClassName sets the DefaultRuntimeClassName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DefaultRuntimeClassName field is set to the value of the last call. +func (b *RuntimeClassStrategyOptionsApplyConfiguration) WithDefaultRuntimeClassName(value string) *RuntimeClassStrategyOptionsApplyConfiguration { + b.DefaultRuntimeClassName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/selinuxstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/selinuxstrategyoptions.go new file mode 100644 index 0000000000..265906a73a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/selinuxstrategyoptions.go @@ -0,0 +1,53 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/extensions/v1beta1" + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// SELinuxStrategyOptionsApplyConfiguration represents an declarative configuration of the SELinuxStrategyOptions type for use +// with apply. +type SELinuxStrategyOptionsApplyConfiguration struct { + Rule *v1beta1.SELinuxStrategy `json:"rule,omitempty"` + SELinuxOptions *v1.SELinuxOptionsApplyConfiguration `json:"seLinuxOptions,omitempty"` +} + +// SELinuxStrategyOptionsApplyConfiguration constructs an declarative configuration of the SELinuxStrategyOptions type for use with +// apply. +func SELinuxStrategyOptions() *SELinuxStrategyOptionsApplyConfiguration { + return &SELinuxStrategyOptionsApplyConfiguration{} +} + +// WithRule sets the Rule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Rule field is set to the value of the last call. +func (b *SELinuxStrategyOptionsApplyConfiguration) WithRule(value v1beta1.SELinuxStrategy) *SELinuxStrategyOptionsApplyConfiguration { + b.Rule = &value + return b +} + +// WithSELinuxOptions sets the SELinuxOptions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SELinuxOptions field is set to the value of the last call. +func (b *SELinuxStrategyOptionsApplyConfiguration) WithSELinuxOptions(value *v1.SELinuxOptionsApplyConfiguration) *SELinuxStrategyOptionsApplyConfiguration { + b.SELinuxOptions = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/supplementalgroupsstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/supplementalgroupsstrategyoptions.go new file mode 100644 index 0000000000..ec43138124 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/supplementalgroupsstrategyoptions.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/extensions/v1beta1" +) + +// SupplementalGroupsStrategyOptionsApplyConfiguration represents an declarative configuration of the SupplementalGroupsStrategyOptions type for use +// with apply. +type SupplementalGroupsStrategyOptionsApplyConfiguration struct { + Rule *v1beta1.SupplementalGroupsStrategyType `json:"rule,omitempty"` + Ranges []IDRangeApplyConfiguration `json:"ranges,omitempty"` +} + +// SupplementalGroupsStrategyOptionsApplyConfiguration constructs an declarative configuration of the SupplementalGroupsStrategyOptions type for use with +// apply. +func SupplementalGroupsStrategyOptions() *SupplementalGroupsStrategyOptionsApplyConfiguration { + return &SupplementalGroupsStrategyOptionsApplyConfiguration{} +} + +// WithRule sets the Rule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Rule field is set to the value of the last call. +func (b *SupplementalGroupsStrategyOptionsApplyConfiguration) WithRule(value v1beta1.SupplementalGroupsStrategyType) *SupplementalGroupsStrategyOptionsApplyConfiguration { + b.Rule = &value + return b +} + +// WithRanges adds the given value to the Ranges field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ranges field. +func (b *SupplementalGroupsStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *SupplementalGroupsStrategyOptionsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRanges") + } + b.Ranges = append(b.Ranges, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowdistinguishermethod.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowdistinguishermethod.go new file mode 100644 index 0000000000..507f8e9abe --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowdistinguishermethod.go @@ -0,0 +1,43 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/flowcontrol/v1alpha1" +) + +// FlowDistinguisherMethodApplyConfiguration represents an declarative configuration of the FlowDistinguisherMethod type for use +// with apply. +type FlowDistinguisherMethodApplyConfiguration struct { + Type *v1alpha1.FlowDistinguisherMethodType `json:"type,omitempty"` +} + +// FlowDistinguisherMethodApplyConfiguration constructs an declarative configuration of the FlowDistinguisherMethod type for use with +// apply. +func FlowDistinguisherMethod() *FlowDistinguisherMethodApplyConfiguration { + return &FlowDistinguisherMethodApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *FlowDistinguisherMethodApplyConfiguration) WithType(value v1alpha1.FlowDistinguisherMethodType) *FlowDistinguisherMethodApplyConfiguration { + b.Type = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschema.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschema.go new file mode 100644 index 0000000000..76107d2d59 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschema.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + flowcontrolv1alpha1 "k8s.io/api/flowcontrol/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// FlowSchemaApplyConfiguration represents an declarative configuration of the FlowSchema type for use +// with apply. +type FlowSchemaApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *FlowSchemaSpecApplyConfiguration `json:"spec,omitempty"` + Status *FlowSchemaStatusApplyConfiguration `json:"status,omitempty"` +} + +// FlowSchema constructs an declarative configuration of the FlowSchema type for use with +// apply. +func FlowSchema(name string) *FlowSchemaApplyConfiguration { + b := &FlowSchemaApplyConfiguration{} + b.WithName(name) + b.WithKind("FlowSchema") + b.WithAPIVersion("flowcontrol.apiserver.k8s.io/v1alpha1") + return b +} + +// ExtractFlowSchema extracts the applied configuration owned by fieldManager from +// flowSchema. If no managedFields are found in flowSchema for fieldManager, a +// FlowSchemaApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// flowSchema must be a unmodified FlowSchema API object that was retrieved from the Kubernetes API. +// ExtractFlowSchema provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractFlowSchema(flowSchema *flowcontrolv1alpha1.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) { + b := &FlowSchemaApplyConfiguration{} + err := managedfields.ExtractInto(flowSchema, internal.Parser().Type("io.k8s.api.flowcontrol.v1alpha1.FlowSchema"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(flowSchema.Name) + + b.WithKind("FlowSchema") + b.WithAPIVersion("flowcontrol.apiserver.k8s.io/v1alpha1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithKind(value string) *FlowSchemaApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithAPIVersion(value string) *FlowSchemaApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithName(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithGenerateName(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithNamespace(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithSelfLink(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithUID(value types.UID) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithResourceVersion(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithGeneration(value int64) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *FlowSchemaApplyConfiguration) WithLabels(entries map[string]string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *FlowSchemaApplyConfiguration) WithAnnotations(entries map[string]string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *FlowSchemaApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *FlowSchemaApplyConfiguration) WithFinalizers(values ...string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithClusterName(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *FlowSchemaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithSpec(value *FlowSchemaSpecApplyConfiguration) *FlowSchemaApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithStatus(value *FlowSchemaStatusApplyConfiguration) *FlowSchemaApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemacondition.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemacondition.go new file mode 100644 index 0000000000..31f5dc13ed --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemacondition.go @@ -0,0 +1,80 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/flowcontrol/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// FlowSchemaConditionApplyConfiguration represents an declarative configuration of the FlowSchemaCondition type for use +// with apply. +type FlowSchemaConditionApplyConfiguration struct { + Type *v1alpha1.FlowSchemaConditionType `json:"type,omitempty"` + Status *v1alpha1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *v1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// FlowSchemaConditionApplyConfiguration constructs an declarative configuration of the FlowSchemaCondition type for use with +// apply. +func FlowSchemaCondition() *FlowSchemaConditionApplyConfiguration { + return &FlowSchemaConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *FlowSchemaConditionApplyConfiguration) WithType(value v1alpha1.FlowSchemaConditionType) *FlowSchemaConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *FlowSchemaConditionApplyConfiguration) WithStatus(value v1alpha1.ConditionStatus) *FlowSchemaConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *FlowSchemaConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *FlowSchemaConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *FlowSchemaConditionApplyConfiguration) WithReason(value string) *FlowSchemaConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *FlowSchemaConditionApplyConfiguration) WithMessage(value string) *FlowSchemaConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemaspec.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemaspec.go new file mode 100644 index 0000000000..fd5fc0ae9a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemaspec.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// FlowSchemaSpecApplyConfiguration represents an declarative configuration of the FlowSchemaSpec type for use +// with apply. +type FlowSchemaSpecApplyConfiguration struct { + PriorityLevelConfiguration *PriorityLevelConfigurationReferenceApplyConfiguration `json:"priorityLevelConfiguration,omitempty"` + MatchingPrecedence *int32 `json:"matchingPrecedence,omitempty"` + DistinguisherMethod *FlowDistinguisherMethodApplyConfiguration `json:"distinguisherMethod,omitempty"` + Rules []PolicyRulesWithSubjectsApplyConfiguration `json:"rules,omitempty"` +} + +// FlowSchemaSpecApplyConfiguration constructs an declarative configuration of the FlowSchemaSpec type for use with +// apply. +func FlowSchemaSpec() *FlowSchemaSpecApplyConfiguration { + return &FlowSchemaSpecApplyConfiguration{} +} + +// WithPriorityLevelConfiguration sets the PriorityLevelConfiguration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PriorityLevelConfiguration field is set to the value of the last call. +func (b *FlowSchemaSpecApplyConfiguration) WithPriorityLevelConfiguration(value *PriorityLevelConfigurationReferenceApplyConfiguration) *FlowSchemaSpecApplyConfiguration { + b.PriorityLevelConfiguration = value + return b +} + +// WithMatchingPrecedence sets the MatchingPrecedence field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MatchingPrecedence field is set to the value of the last call. +func (b *FlowSchemaSpecApplyConfiguration) WithMatchingPrecedence(value int32) *FlowSchemaSpecApplyConfiguration { + b.MatchingPrecedence = &value + return b +} + +// WithDistinguisherMethod sets the DistinguisherMethod field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DistinguisherMethod field is set to the value of the last call. +func (b *FlowSchemaSpecApplyConfiguration) WithDistinguisherMethod(value *FlowDistinguisherMethodApplyConfiguration) *FlowSchemaSpecApplyConfiguration { + b.DistinguisherMethod = value + return b +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *FlowSchemaSpecApplyConfiguration) WithRules(values ...*PolicyRulesWithSubjectsApplyConfiguration) *FlowSchemaSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemastatus.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemastatus.go new file mode 100644 index 0000000000..db2dacf13a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/flowschemastatus.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// FlowSchemaStatusApplyConfiguration represents an declarative configuration of the FlowSchemaStatus type for use +// with apply. +type FlowSchemaStatusApplyConfiguration struct { + Conditions []FlowSchemaConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// FlowSchemaStatusApplyConfiguration constructs an declarative configuration of the FlowSchemaStatus type for use with +// apply. +func FlowSchemaStatus() *FlowSchemaStatusApplyConfiguration { + return &FlowSchemaStatusApplyConfiguration{} +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *FlowSchemaStatusApplyConfiguration) WithConditions(values ...*FlowSchemaConditionApplyConfiguration) *FlowSchemaStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/groupsubject.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/groupsubject.go new file mode 100644 index 0000000000..0421f3f599 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/groupsubject.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// GroupSubjectApplyConfiguration represents an declarative configuration of the GroupSubject type for use +// with apply. +type GroupSubjectApplyConfiguration struct { + Name *string `json:"name,omitempty"` +} + +// GroupSubjectApplyConfiguration constructs an declarative configuration of the GroupSubject type for use with +// apply. +func GroupSubject() *GroupSubjectApplyConfiguration { + return &GroupSubjectApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *GroupSubjectApplyConfiguration) WithName(value string) *GroupSubjectApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/limitedprioritylevelconfiguration.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/limitedprioritylevelconfiguration.go new file mode 100644 index 0000000000..df3fecbd7f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/limitedprioritylevelconfiguration.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// LimitedPriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the LimitedPriorityLevelConfiguration type for use +// with apply. +type LimitedPriorityLevelConfigurationApplyConfiguration struct { + AssuredConcurrencyShares *int32 `json:"assuredConcurrencyShares,omitempty"` + LimitResponse *LimitResponseApplyConfiguration `json:"limitResponse,omitempty"` +} + +// LimitedPriorityLevelConfigurationApplyConfiguration constructs an declarative configuration of the LimitedPriorityLevelConfiguration type for use with +// apply. +func LimitedPriorityLevelConfiguration() *LimitedPriorityLevelConfigurationApplyConfiguration { + return &LimitedPriorityLevelConfigurationApplyConfiguration{} +} + +// WithAssuredConcurrencyShares sets the AssuredConcurrencyShares field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AssuredConcurrencyShares field is set to the value of the last call. +func (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithAssuredConcurrencyShares(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration { + b.AssuredConcurrencyShares = &value + return b +} + +// WithLimitResponse sets the LimitResponse field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LimitResponse field is set to the value of the last call. +func (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLimitResponse(value *LimitResponseApplyConfiguration) *LimitedPriorityLevelConfigurationApplyConfiguration { + b.LimitResponse = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/limitresponse.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/limitresponse.go new file mode 100644 index 0000000000..5edaa025cd --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/limitresponse.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/flowcontrol/v1alpha1" +) + +// LimitResponseApplyConfiguration represents an declarative configuration of the LimitResponse type for use +// with apply. +type LimitResponseApplyConfiguration struct { + Type *v1alpha1.LimitResponseType `json:"type,omitempty"` + Queuing *QueuingConfigurationApplyConfiguration `json:"queuing,omitempty"` +} + +// LimitResponseApplyConfiguration constructs an declarative configuration of the LimitResponse type for use with +// apply. +func LimitResponse() *LimitResponseApplyConfiguration { + return &LimitResponseApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *LimitResponseApplyConfiguration) WithType(value v1alpha1.LimitResponseType) *LimitResponseApplyConfiguration { + b.Type = &value + return b +} + +// WithQueuing sets the Queuing field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Queuing field is set to the value of the last call. +func (b *LimitResponseApplyConfiguration) WithQueuing(value *QueuingConfigurationApplyConfiguration) *LimitResponseApplyConfiguration { + b.Queuing = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/nonresourcepolicyrule.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/nonresourcepolicyrule.go new file mode 100644 index 0000000000..b1f09f5304 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/nonresourcepolicyrule.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// NonResourcePolicyRuleApplyConfiguration represents an declarative configuration of the NonResourcePolicyRule type for use +// with apply. +type NonResourcePolicyRuleApplyConfiguration struct { + Verbs []string `json:"verbs,omitempty"` + NonResourceURLs []string `json:"nonResourceURLs,omitempty"` +} + +// NonResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the NonResourcePolicyRule type for use with +// apply. +func NonResourcePolicyRule() *NonResourcePolicyRuleApplyConfiguration { + return &NonResourcePolicyRuleApplyConfiguration{} +} + +// WithVerbs adds the given value to the Verbs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Verbs field. +func (b *NonResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *NonResourcePolicyRuleApplyConfiguration { + for i := range values { + b.Verbs = append(b.Verbs, values[i]) + } + return b +} + +// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the NonResourceURLs field. +func (b *NonResourcePolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *NonResourcePolicyRuleApplyConfiguration { + for i := range values { + b.NonResourceURLs = append(b.NonResourceURLs, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/policyruleswithsubjects.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/policyruleswithsubjects.go new file mode 100644 index 0000000000..8411040644 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/policyruleswithsubjects.go @@ -0,0 +1,72 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// PolicyRulesWithSubjectsApplyConfiguration represents an declarative configuration of the PolicyRulesWithSubjects type for use +// with apply. +type PolicyRulesWithSubjectsApplyConfiguration struct { + Subjects []SubjectApplyConfiguration `json:"subjects,omitempty"` + ResourceRules []ResourcePolicyRuleApplyConfiguration `json:"resourceRules,omitempty"` + NonResourceRules []NonResourcePolicyRuleApplyConfiguration `json:"nonResourceRules,omitempty"` +} + +// PolicyRulesWithSubjectsApplyConfiguration constructs an declarative configuration of the PolicyRulesWithSubjects type for use with +// apply. +func PolicyRulesWithSubjects() *PolicyRulesWithSubjectsApplyConfiguration { + return &PolicyRulesWithSubjectsApplyConfiguration{} +} + +// WithSubjects adds the given value to the Subjects field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Subjects field. +func (b *PolicyRulesWithSubjectsApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSubjects") + } + b.Subjects = append(b.Subjects, *values[i]) + } + return b +} + +// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ResourceRules field. +func (b *PolicyRulesWithSubjectsApplyConfiguration) WithResourceRules(values ...*ResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithResourceRules") + } + b.ResourceRules = append(b.ResourceRules, *values[i]) + } + return b +} + +// WithNonResourceRules adds the given value to the NonResourceRules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the NonResourceRules field. +func (b *PolicyRulesWithSubjectsApplyConfiguration) WithNonResourceRules(values ...*NonResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithNonResourceRules") + } + b.NonResourceRules = append(b.NonResourceRules, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfiguration.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfiguration.go new file mode 100644 index 0000000000..5f497ac786 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfiguration.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + flowcontrolv1alpha1 "k8s.io/api/flowcontrol/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the PriorityLevelConfiguration type for use +// with apply. +type PriorityLevelConfigurationApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *PriorityLevelConfigurationSpecApplyConfiguration `json:"spec,omitempty"` + Status *PriorityLevelConfigurationStatusApplyConfiguration `json:"status,omitempty"` +} + +// PriorityLevelConfiguration constructs an declarative configuration of the PriorityLevelConfiguration type for use with +// apply. +func PriorityLevelConfiguration(name string) *PriorityLevelConfigurationApplyConfiguration { + b := &PriorityLevelConfigurationApplyConfiguration{} + b.WithName(name) + b.WithKind("PriorityLevelConfiguration") + b.WithAPIVersion("flowcontrol.apiserver.k8s.io/v1alpha1") + return b +} + +// ExtractPriorityLevelConfiguration extracts the applied configuration owned by fieldManager from +// priorityLevelConfiguration. If no managedFields are found in priorityLevelConfiguration for fieldManager, a +// PriorityLevelConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// priorityLevelConfiguration must be a unmodified PriorityLevelConfiguration API object that was retrieved from the Kubernetes API. +// ExtractPriorityLevelConfiguration provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) { + b := &PriorityLevelConfigurationApplyConfiguration{} + err := managedfields.ExtractInto(priorityLevelConfiguration, internal.Parser().Type("io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfiguration"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(priorityLevelConfiguration.Name) + + b.WithKind("PriorityLevelConfiguration") + b.WithAPIVersion("flowcontrol.apiserver.k8s.io/v1alpha1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithKind(value string) *PriorityLevelConfigurationApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithAPIVersion(value string) *PriorityLevelConfigurationApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithName(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithGenerateName(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithNamespace(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithSelfLink(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithUID(value types.UID) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithResourceVersion(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithGeneration(value int64) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PriorityLevelConfigurationApplyConfiguration) WithLabels(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PriorityLevelConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PriorityLevelConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PriorityLevelConfigurationApplyConfiguration) WithFinalizers(values ...string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithClusterName(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PriorityLevelConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithSpec(value *PriorityLevelConfigurationSpecApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithStatus(value *PriorityLevelConfigurationStatusApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationcondition.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationcondition.go new file mode 100644 index 0000000000..bd91b80f21 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationcondition.go @@ -0,0 +1,80 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/flowcontrol/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// PriorityLevelConfigurationConditionApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationCondition type for use +// with apply. +type PriorityLevelConfigurationConditionApplyConfiguration struct { + Type *v1alpha1.PriorityLevelConfigurationConditionType `json:"type,omitempty"` + Status *v1alpha1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *v1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// PriorityLevelConfigurationConditionApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationCondition type for use with +// apply. +func PriorityLevelConfigurationCondition() *PriorityLevelConfigurationConditionApplyConfiguration { + return &PriorityLevelConfigurationConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *PriorityLevelConfigurationConditionApplyConfiguration) WithType(value v1alpha1.PriorityLevelConfigurationConditionType) *PriorityLevelConfigurationConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *PriorityLevelConfigurationConditionApplyConfiguration) WithStatus(value v1alpha1.ConditionStatus) *PriorityLevelConfigurationConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *PriorityLevelConfigurationConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *PriorityLevelConfigurationConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *PriorityLevelConfigurationConditionApplyConfiguration) WithReason(value string) *PriorityLevelConfigurationConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *PriorityLevelConfigurationConditionApplyConfiguration) WithMessage(value string) *PriorityLevelConfigurationConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationreference.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationreference.go new file mode 100644 index 0000000000..b477c04df5 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationreference.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// PriorityLevelConfigurationReferenceApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationReference type for use +// with apply. +type PriorityLevelConfigurationReferenceApplyConfiguration struct { + Name *string `json:"name,omitempty"` +} + +// PriorityLevelConfigurationReferenceApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationReference type for use with +// apply. +func PriorityLevelConfigurationReference() *PriorityLevelConfigurationReferenceApplyConfiguration { + return &PriorityLevelConfigurationReferenceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PriorityLevelConfigurationReferenceApplyConfiguration) WithName(value string) *PriorityLevelConfigurationReferenceApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationspec.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationspec.go new file mode 100644 index 0000000000..3949dee46d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationspec.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/flowcontrol/v1alpha1" +) + +// PriorityLevelConfigurationSpecApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationSpec type for use +// with apply. +type PriorityLevelConfigurationSpecApplyConfiguration struct { + Type *v1alpha1.PriorityLevelEnablement `json:"type,omitempty"` + Limited *LimitedPriorityLevelConfigurationApplyConfiguration `json:"limited,omitempty"` +} + +// PriorityLevelConfigurationSpecApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationSpec type for use with +// apply. +func PriorityLevelConfigurationSpec() *PriorityLevelConfigurationSpecApplyConfiguration { + return &PriorityLevelConfigurationSpecApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *PriorityLevelConfigurationSpecApplyConfiguration) WithType(value v1alpha1.PriorityLevelEnablement) *PriorityLevelConfigurationSpecApplyConfiguration { + b.Type = &value + return b +} + +// WithLimited sets the Limited field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Limited field is set to the value of the last call. +func (b *PriorityLevelConfigurationSpecApplyConfiguration) WithLimited(value *LimitedPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration { + b.Limited = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationstatus.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationstatus.go new file mode 100644 index 0000000000..eb3ef3d61d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/prioritylevelconfigurationstatus.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// PriorityLevelConfigurationStatusApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationStatus type for use +// with apply. +type PriorityLevelConfigurationStatusApplyConfiguration struct { + Conditions []PriorityLevelConfigurationConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// PriorityLevelConfigurationStatusApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationStatus type for use with +// apply. +func PriorityLevelConfigurationStatus() *PriorityLevelConfigurationStatusApplyConfiguration { + return &PriorityLevelConfigurationStatusApplyConfiguration{} +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *PriorityLevelConfigurationStatusApplyConfiguration) WithConditions(values ...*PriorityLevelConfigurationConditionApplyConfiguration) *PriorityLevelConfigurationStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/queuingconfiguration.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/queuingconfiguration.go new file mode 100644 index 0000000000..0fccc3f08b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/queuingconfiguration.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// QueuingConfigurationApplyConfiguration represents an declarative configuration of the QueuingConfiguration type for use +// with apply. +type QueuingConfigurationApplyConfiguration struct { + Queues *int32 `json:"queues,omitempty"` + HandSize *int32 `json:"handSize,omitempty"` + QueueLengthLimit *int32 `json:"queueLengthLimit,omitempty"` +} + +// QueuingConfigurationApplyConfiguration constructs an declarative configuration of the QueuingConfiguration type for use with +// apply. +func QueuingConfiguration() *QueuingConfigurationApplyConfiguration { + return &QueuingConfigurationApplyConfiguration{} +} + +// WithQueues sets the Queues field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Queues field is set to the value of the last call. +func (b *QueuingConfigurationApplyConfiguration) WithQueues(value int32) *QueuingConfigurationApplyConfiguration { + b.Queues = &value + return b +} + +// WithHandSize sets the HandSize field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HandSize field is set to the value of the last call. +func (b *QueuingConfigurationApplyConfiguration) WithHandSize(value int32) *QueuingConfigurationApplyConfiguration { + b.HandSize = &value + return b +} + +// WithQueueLengthLimit sets the QueueLengthLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the QueueLengthLimit field is set to the value of the last call. +func (b *QueuingConfigurationApplyConfiguration) WithQueueLengthLimit(value int32) *QueuingConfigurationApplyConfiguration { + b.QueueLengthLimit = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/resourcepolicyrule.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/resourcepolicyrule.go new file mode 100644 index 0000000000..d2c6f4eed6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/resourcepolicyrule.go @@ -0,0 +1,83 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// ResourcePolicyRuleApplyConfiguration represents an declarative configuration of the ResourcePolicyRule type for use +// with apply. +type ResourcePolicyRuleApplyConfiguration struct { + Verbs []string `json:"verbs,omitempty"` + APIGroups []string `json:"apiGroups,omitempty"` + Resources []string `json:"resources,omitempty"` + ClusterScope *bool `json:"clusterScope,omitempty"` + Namespaces []string `json:"namespaces,omitempty"` +} + +// ResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the ResourcePolicyRule type for use with +// apply. +func ResourcePolicyRule() *ResourcePolicyRuleApplyConfiguration { + return &ResourcePolicyRuleApplyConfiguration{} +} + +// WithVerbs adds the given value to the Verbs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Verbs field. +func (b *ResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *ResourcePolicyRuleApplyConfiguration { + for i := range values { + b.Verbs = append(b.Verbs, values[i]) + } + return b +} + +// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIGroups field. +func (b *ResourcePolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *ResourcePolicyRuleApplyConfiguration { + for i := range values { + b.APIGroups = append(b.APIGroups, values[i]) + } + return b +} + +// WithResources adds the given value to the Resources field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Resources field. +func (b *ResourcePolicyRuleApplyConfiguration) WithResources(values ...string) *ResourcePolicyRuleApplyConfiguration { + for i := range values { + b.Resources = append(b.Resources, values[i]) + } + return b +} + +// WithClusterScope sets the ClusterScope field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterScope field is set to the value of the last call. +func (b *ResourcePolicyRuleApplyConfiguration) WithClusterScope(value bool) *ResourcePolicyRuleApplyConfiguration { + b.ClusterScope = &value + return b +} + +// WithNamespaces adds the given value to the Namespaces field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Namespaces field. +func (b *ResourcePolicyRuleApplyConfiguration) WithNamespaces(values ...string) *ResourcePolicyRuleApplyConfiguration { + for i := range values { + b.Namespaces = append(b.Namespaces, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/serviceaccountsubject.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/serviceaccountsubject.go new file mode 100644 index 0000000000..270b5225e1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/serviceaccountsubject.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// ServiceAccountSubjectApplyConfiguration represents an declarative configuration of the ServiceAccountSubject type for use +// with apply. +type ServiceAccountSubjectApplyConfiguration struct { + Namespace *string `json:"namespace,omitempty"` + Name *string `json:"name,omitempty"` +} + +// ServiceAccountSubjectApplyConfiguration constructs an declarative configuration of the ServiceAccountSubject type for use with +// apply. +func ServiceAccountSubject() *ServiceAccountSubjectApplyConfiguration { + return &ServiceAccountSubjectApplyConfiguration{} +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ServiceAccountSubjectApplyConfiguration) WithNamespace(value string) *ServiceAccountSubjectApplyConfiguration { + b.Namespace = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ServiceAccountSubjectApplyConfiguration) WithName(value string) *ServiceAccountSubjectApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/subject.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/subject.go new file mode 100644 index 0000000000..83c09d644b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/subject.go @@ -0,0 +1,70 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/flowcontrol/v1alpha1" +) + +// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use +// with apply. +type SubjectApplyConfiguration struct { + Kind *v1alpha1.SubjectKind `json:"kind,omitempty"` + User *UserSubjectApplyConfiguration `json:"user,omitempty"` + Group *GroupSubjectApplyConfiguration `json:"group,omitempty"` + ServiceAccount *ServiceAccountSubjectApplyConfiguration `json:"serviceAccount,omitempty"` +} + +// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with +// apply. +func Subject() *SubjectApplyConfiguration { + return &SubjectApplyConfiguration{} +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithKind(value v1alpha1.SubjectKind) *SubjectApplyConfiguration { + b.Kind = &value + return b +} + +// WithUser sets the User field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the User field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithUser(value *UserSubjectApplyConfiguration) *SubjectApplyConfiguration { + b.User = value + return b +} + +// WithGroup sets the Group field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Group field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithGroup(value *GroupSubjectApplyConfiguration) *SubjectApplyConfiguration { + b.Group = value + return b +} + +// WithServiceAccount sets the ServiceAccount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ServiceAccount field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithServiceAccount(value *ServiceAccountSubjectApplyConfiguration) *SubjectApplyConfiguration { + b.ServiceAccount = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/usersubject.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/usersubject.go new file mode 100644 index 0000000000..a762c249e0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1/usersubject.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// UserSubjectApplyConfiguration represents an declarative configuration of the UserSubject type for use +// with apply. +type UserSubjectApplyConfiguration struct { + Name *string `json:"name,omitempty"` +} + +// UserSubjectApplyConfiguration constructs an declarative configuration of the UserSubject type for use with +// apply. +func UserSubject() *UserSubjectApplyConfiguration { + return &UserSubjectApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *UserSubjectApplyConfiguration) WithName(value string) *UserSubjectApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowdistinguishermethod.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowdistinguishermethod.go new file mode 100644 index 0000000000..6dc1bb4d68 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowdistinguishermethod.go @@ -0,0 +1,43 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/flowcontrol/v1beta1" +) + +// FlowDistinguisherMethodApplyConfiguration represents an declarative configuration of the FlowDistinguisherMethod type for use +// with apply. +type FlowDistinguisherMethodApplyConfiguration struct { + Type *v1beta1.FlowDistinguisherMethodType `json:"type,omitempty"` +} + +// FlowDistinguisherMethodApplyConfiguration constructs an declarative configuration of the FlowDistinguisherMethod type for use with +// apply. +func FlowDistinguisherMethod() *FlowDistinguisherMethodApplyConfiguration { + return &FlowDistinguisherMethodApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *FlowDistinguisherMethodApplyConfiguration) WithType(value v1beta1.FlowDistinguisherMethodType) *FlowDistinguisherMethodApplyConfiguration { + b.Type = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschema.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschema.go new file mode 100644 index 0000000000..2c23ff949c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschema.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + flowcontrolv1beta1 "k8s.io/api/flowcontrol/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// FlowSchemaApplyConfiguration represents an declarative configuration of the FlowSchema type for use +// with apply. +type FlowSchemaApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *FlowSchemaSpecApplyConfiguration `json:"spec,omitempty"` + Status *FlowSchemaStatusApplyConfiguration `json:"status,omitempty"` +} + +// FlowSchema constructs an declarative configuration of the FlowSchema type for use with +// apply. +func FlowSchema(name string) *FlowSchemaApplyConfiguration { + b := &FlowSchemaApplyConfiguration{} + b.WithName(name) + b.WithKind("FlowSchema") + b.WithAPIVersion("flowcontrol.apiserver.k8s.io/v1beta1") + return b +} + +// ExtractFlowSchema extracts the applied configuration owned by fieldManager from +// flowSchema. If no managedFields are found in flowSchema for fieldManager, a +// FlowSchemaApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// flowSchema must be a unmodified FlowSchema API object that was retrieved from the Kubernetes API. +// ExtractFlowSchema provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractFlowSchema(flowSchema *flowcontrolv1beta1.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) { + b := &FlowSchemaApplyConfiguration{} + err := managedfields.ExtractInto(flowSchema, internal.Parser().Type("io.k8s.api.flowcontrol.v1beta1.FlowSchema"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(flowSchema.Name) + + b.WithKind("FlowSchema") + b.WithAPIVersion("flowcontrol.apiserver.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithKind(value string) *FlowSchemaApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithAPIVersion(value string) *FlowSchemaApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithName(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithGenerateName(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithNamespace(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithSelfLink(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithUID(value types.UID) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithResourceVersion(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithGeneration(value int64) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *FlowSchemaApplyConfiguration) WithLabels(entries map[string]string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *FlowSchemaApplyConfiguration) WithAnnotations(entries map[string]string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *FlowSchemaApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *FlowSchemaApplyConfiguration) WithFinalizers(values ...string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithClusterName(value string) *FlowSchemaApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *FlowSchemaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithSpec(value *FlowSchemaSpecApplyConfiguration) *FlowSchemaApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *FlowSchemaApplyConfiguration) WithStatus(value *FlowSchemaStatusApplyConfiguration) *FlowSchemaApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemacondition.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemacondition.go new file mode 100644 index 0000000000..b62e9a22ff --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemacondition.go @@ -0,0 +1,80 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/flowcontrol/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// FlowSchemaConditionApplyConfiguration represents an declarative configuration of the FlowSchemaCondition type for use +// with apply. +type FlowSchemaConditionApplyConfiguration struct { + Type *v1beta1.FlowSchemaConditionType `json:"type,omitempty"` + Status *v1beta1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *v1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// FlowSchemaConditionApplyConfiguration constructs an declarative configuration of the FlowSchemaCondition type for use with +// apply. +func FlowSchemaCondition() *FlowSchemaConditionApplyConfiguration { + return &FlowSchemaConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *FlowSchemaConditionApplyConfiguration) WithType(value v1beta1.FlowSchemaConditionType) *FlowSchemaConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *FlowSchemaConditionApplyConfiguration) WithStatus(value v1beta1.ConditionStatus) *FlowSchemaConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *FlowSchemaConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *FlowSchemaConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *FlowSchemaConditionApplyConfiguration) WithReason(value string) *FlowSchemaConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *FlowSchemaConditionApplyConfiguration) WithMessage(value string) *FlowSchemaConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemaspec.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemaspec.go new file mode 100644 index 0000000000..8d72c2d0d7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemaspec.go @@ -0,0 +1,71 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// FlowSchemaSpecApplyConfiguration represents an declarative configuration of the FlowSchemaSpec type for use +// with apply. +type FlowSchemaSpecApplyConfiguration struct { + PriorityLevelConfiguration *PriorityLevelConfigurationReferenceApplyConfiguration `json:"priorityLevelConfiguration,omitempty"` + MatchingPrecedence *int32 `json:"matchingPrecedence,omitempty"` + DistinguisherMethod *FlowDistinguisherMethodApplyConfiguration `json:"distinguisherMethod,omitempty"` + Rules []PolicyRulesWithSubjectsApplyConfiguration `json:"rules,omitempty"` +} + +// FlowSchemaSpecApplyConfiguration constructs an declarative configuration of the FlowSchemaSpec type for use with +// apply. +func FlowSchemaSpec() *FlowSchemaSpecApplyConfiguration { + return &FlowSchemaSpecApplyConfiguration{} +} + +// WithPriorityLevelConfiguration sets the PriorityLevelConfiguration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PriorityLevelConfiguration field is set to the value of the last call. +func (b *FlowSchemaSpecApplyConfiguration) WithPriorityLevelConfiguration(value *PriorityLevelConfigurationReferenceApplyConfiguration) *FlowSchemaSpecApplyConfiguration { + b.PriorityLevelConfiguration = value + return b +} + +// WithMatchingPrecedence sets the MatchingPrecedence field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MatchingPrecedence field is set to the value of the last call. +func (b *FlowSchemaSpecApplyConfiguration) WithMatchingPrecedence(value int32) *FlowSchemaSpecApplyConfiguration { + b.MatchingPrecedence = &value + return b +} + +// WithDistinguisherMethod sets the DistinguisherMethod field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DistinguisherMethod field is set to the value of the last call. +func (b *FlowSchemaSpecApplyConfiguration) WithDistinguisherMethod(value *FlowDistinguisherMethodApplyConfiguration) *FlowSchemaSpecApplyConfiguration { + b.DistinguisherMethod = value + return b +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *FlowSchemaSpecApplyConfiguration) WithRules(values ...*PolicyRulesWithSubjectsApplyConfiguration) *FlowSchemaSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemastatus.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemastatus.go new file mode 100644 index 0000000000..6bc6d0543a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemastatus.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// FlowSchemaStatusApplyConfiguration represents an declarative configuration of the FlowSchemaStatus type for use +// with apply. +type FlowSchemaStatusApplyConfiguration struct { + Conditions []FlowSchemaConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// FlowSchemaStatusApplyConfiguration constructs an declarative configuration of the FlowSchemaStatus type for use with +// apply. +func FlowSchemaStatus() *FlowSchemaStatusApplyConfiguration { + return &FlowSchemaStatusApplyConfiguration{} +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *FlowSchemaStatusApplyConfiguration) WithConditions(values ...*FlowSchemaConditionApplyConfiguration) *FlowSchemaStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/groupsubject.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/groupsubject.go new file mode 100644 index 0000000000..95b416e426 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/groupsubject.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// GroupSubjectApplyConfiguration represents an declarative configuration of the GroupSubject type for use +// with apply. +type GroupSubjectApplyConfiguration struct { + Name *string `json:"name,omitempty"` +} + +// GroupSubjectApplyConfiguration constructs an declarative configuration of the GroupSubject type for use with +// apply. +func GroupSubject() *GroupSubjectApplyConfiguration { + return &GroupSubjectApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *GroupSubjectApplyConfiguration) WithName(value string) *GroupSubjectApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/limitedprioritylevelconfiguration.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/limitedprioritylevelconfiguration.go new file mode 100644 index 0000000000..f7f77f9b29 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/limitedprioritylevelconfiguration.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// LimitedPriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the LimitedPriorityLevelConfiguration type for use +// with apply. +type LimitedPriorityLevelConfigurationApplyConfiguration struct { + AssuredConcurrencyShares *int32 `json:"assuredConcurrencyShares,omitempty"` + LimitResponse *LimitResponseApplyConfiguration `json:"limitResponse,omitempty"` +} + +// LimitedPriorityLevelConfigurationApplyConfiguration constructs an declarative configuration of the LimitedPriorityLevelConfiguration type for use with +// apply. +func LimitedPriorityLevelConfiguration() *LimitedPriorityLevelConfigurationApplyConfiguration { + return &LimitedPriorityLevelConfigurationApplyConfiguration{} +} + +// WithAssuredConcurrencyShares sets the AssuredConcurrencyShares field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AssuredConcurrencyShares field is set to the value of the last call. +func (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithAssuredConcurrencyShares(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration { + b.AssuredConcurrencyShares = &value + return b +} + +// WithLimitResponse sets the LimitResponse field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LimitResponse field is set to the value of the last call. +func (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLimitResponse(value *LimitResponseApplyConfiguration) *LimitedPriorityLevelConfigurationApplyConfiguration { + b.LimitResponse = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/limitresponse.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/limitresponse.go new file mode 100644 index 0000000000..86e1bef6b9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/limitresponse.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/flowcontrol/v1beta1" +) + +// LimitResponseApplyConfiguration represents an declarative configuration of the LimitResponse type for use +// with apply. +type LimitResponseApplyConfiguration struct { + Type *v1beta1.LimitResponseType `json:"type,omitempty"` + Queuing *QueuingConfigurationApplyConfiguration `json:"queuing,omitempty"` +} + +// LimitResponseApplyConfiguration constructs an declarative configuration of the LimitResponse type for use with +// apply. +func LimitResponse() *LimitResponseApplyConfiguration { + return &LimitResponseApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *LimitResponseApplyConfiguration) WithType(value v1beta1.LimitResponseType) *LimitResponseApplyConfiguration { + b.Type = &value + return b +} + +// WithQueuing sets the Queuing field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Queuing field is set to the value of the last call. +func (b *LimitResponseApplyConfiguration) WithQueuing(value *QueuingConfigurationApplyConfiguration) *LimitResponseApplyConfiguration { + b.Queuing = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/nonresourcepolicyrule.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/nonresourcepolicyrule.go new file mode 100644 index 0000000000..594ebc9912 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/nonresourcepolicyrule.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// NonResourcePolicyRuleApplyConfiguration represents an declarative configuration of the NonResourcePolicyRule type for use +// with apply. +type NonResourcePolicyRuleApplyConfiguration struct { + Verbs []string `json:"verbs,omitempty"` + NonResourceURLs []string `json:"nonResourceURLs,omitempty"` +} + +// NonResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the NonResourcePolicyRule type for use with +// apply. +func NonResourcePolicyRule() *NonResourcePolicyRuleApplyConfiguration { + return &NonResourcePolicyRuleApplyConfiguration{} +} + +// WithVerbs adds the given value to the Verbs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Verbs field. +func (b *NonResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *NonResourcePolicyRuleApplyConfiguration { + for i := range values { + b.Verbs = append(b.Verbs, values[i]) + } + return b +} + +// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the NonResourceURLs field. +func (b *NonResourcePolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *NonResourcePolicyRuleApplyConfiguration { + for i := range values { + b.NonResourceURLs = append(b.NonResourceURLs, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/policyruleswithsubjects.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/policyruleswithsubjects.go new file mode 100644 index 0000000000..ea5b266b4c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/policyruleswithsubjects.go @@ -0,0 +1,72 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// PolicyRulesWithSubjectsApplyConfiguration represents an declarative configuration of the PolicyRulesWithSubjects type for use +// with apply. +type PolicyRulesWithSubjectsApplyConfiguration struct { + Subjects []SubjectApplyConfiguration `json:"subjects,omitempty"` + ResourceRules []ResourcePolicyRuleApplyConfiguration `json:"resourceRules,omitempty"` + NonResourceRules []NonResourcePolicyRuleApplyConfiguration `json:"nonResourceRules,omitempty"` +} + +// PolicyRulesWithSubjectsApplyConfiguration constructs an declarative configuration of the PolicyRulesWithSubjects type for use with +// apply. +func PolicyRulesWithSubjects() *PolicyRulesWithSubjectsApplyConfiguration { + return &PolicyRulesWithSubjectsApplyConfiguration{} +} + +// WithSubjects adds the given value to the Subjects field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Subjects field. +func (b *PolicyRulesWithSubjectsApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSubjects") + } + b.Subjects = append(b.Subjects, *values[i]) + } + return b +} + +// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ResourceRules field. +func (b *PolicyRulesWithSubjectsApplyConfiguration) WithResourceRules(values ...*ResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithResourceRules") + } + b.ResourceRules = append(b.ResourceRules, *values[i]) + } + return b +} + +// WithNonResourceRules adds the given value to the NonResourceRules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the NonResourceRules field. +func (b *PolicyRulesWithSubjectsApplyConfiguration) WithNonResourceRules(values ...*NonResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithNonResourceRules") + } + b.NonResourceRules = append(b.NonResourceRules, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfiguration.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfiguration.go new file mode 100644 index 0000000000..57f118ad82 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfiguration.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + flowcontrolv1beta1 "k8s.io/api/flowcontrol/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PriorityLevelConfigurationApplyConfiguration represents an declarative configuration of the PriorityLevelConfiguration type for use +// with apply. +type PriorityLevelConfigurationApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *PriorityLevelConfigurationSpecApplyConfiguration `json:"spec,omitempty"` + Status *PriorityLevelConfigurationStatusApplyConfiguration `json:"status,omitempty"` +} + +// PriorityLevelConfiguration constructs an declarative configuration of the PriorityLevelConfiguration type for use with +// apply. +func PriorityLevelConfiguration(name string) *PriorityLevelConfigurationApplyConfiguration { + b := &PriorityLevelConfigurationApplyConfiguration{} + b.WithName(name) + b.WithKind("PriorityLevelConfiguration") + b.WithAPIVersion("flowcontrol.apiserver.k8s.io/v1beta1") + return b +} + +// ExtractPriorityLevelConfiguration extracts the applied configuration owned by fieldManager from +// priorityLevelConfiguration. If no managedFields are found in priorityLevelConfiguration for fieldManager, a +// PriorityLevelConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// priorityLevelConfiguration must be a unmodified PriorityLevelConfiguration API object that was retrieved from the Kubernetes API. +// ExtractPriorityLevelConfiguration provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) { + b := &PriorityLevelConfigurationApplyConfiguration{} + err := managedfields.ExtractInto(priorityLevelConfiguration, internal.Parser().Type("io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(priorityLevelConfiguration.Name) + + b.WithKind("PriorityLevelConfiguration") + b.WithAPIVersion("flowcontrol.apiserver.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithKind(value string) *PriorityLevelConfigurationApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithAPIVersion(value string) *PriorityLevelConfigurationApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithName(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithGenerateName(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithNamespace(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithSelfLink(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithUID(value types.UID) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithResourceVersion(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithGeneration(value int64) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PriorityLevelConfigurationApplyConfiguration) WithLabels(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PriorityLevelConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PriorityLevelConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PriorityLevelConfigurationApplyConfiguration) WithFinalizers(values ...string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithClusterName(value string) *PriorityLevelConfigurationApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PriorityLevelConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithSpec(value *PriorityLevelConfigurationSpecApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *PriorityLevelConfigurationApplyConfiguration) WithStatus(value *PriorityLevelConfigurationStatusApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationcondition.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationcondition.go new file mode 100644 index 0000000000..59bc610510 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationcondition.go @@ -0,0 +1,80 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/flowcontrol/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// PriorityLevelConfigurationConditionApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationCondition type for use +// with apply. +type PriorityLevelConfigurationConditionApplyConfiguration struct { + Type *v1beta1.PriorityLevelConfigurationConditionType `json:"type,omitempty"` + Status *v1beta1.ConditionStatus `json:"status,omitempty"` + LastTransitionTime *v1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// PriorityLevelConfigurationConditionApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationCondition type for use with +// apply. +func PriorityLevelConfigurationCondition() *PriorityLevelConfigurationConditionApplyConfiguration { + return &PriorityLevelConfigurationConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *PriorityLevelConfigurationConditionApplyConfiguration) WithType(value v1beta1.PriorityLevelConfigurationConditionType) *PriorityLevelConfigurationConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *PriorityLevelConfigurationConditionApplyConfiguration) WithStatus(value v1beta1.ConditionStatus) *PriorityLevelConfigurationConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *PriorityLevelConfigurationConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *PriorityLevelConfigurationConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *PriorityLevelConfigurationConditionApplyConfiguration) WithReason(value string) *PriorityLevelConfigurationConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *PriorityLevelConfigurationConditionApplyConfiguration) WithMessage(value string) *PriorityLevelConfigurationConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationreference.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationreference.go new file mode 100644 index 0000000000..c44bcc08b4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationreference.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// PriorityLevelConfigurationReferenceApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationReference type for use +// with apply. +type PriorityLevelConfigurationReferenceApplyConfiguration struct { + Name *string `json:"name,omitempty"` +} + +// PriorityLevelConfigurationReferenceApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationReference type for use with +// apply. +func PriorityLevelConfigurationReference() *PriorityLevelConfigurationReferenceApplyConfiguration { + return &PriorityLevelConfigurationReferenceApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PriorityLevelConfigurationReferenceApplyConfiguration) WithName(value string) *PriorityLevelConfigurationReferenceApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationspec.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationspec.go new file mode 100644 index 0000000000..8ed4e399f8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationspec.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/flowcontrol/v1beta1" +) + +// PriorityLevelConfigurationSpecApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationSpec type for use +// with apply. +type PriorityLevelConfigurationSpecApplyConfiguration struct { + Type *v1beta1.PriorityLevelEnablement `json:"type,omitempty"` + Limited *LimitedPriorityLevelConfigurationApplyConfiguration `json:"limited,omitempty"` +} + +// PriorityLevelConfigurationSpecApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationSpec type for use with +// apply. +func PriorityLevelConfigurationSpec() *PriorityLevelConfigurationSpecApplyConfiguration { + return &PriorityLevelConfigurationSpecApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *PriorityLevelConfigurationSpecApplyConfiguration) WithType(value v1beta1.PriorityLevelEnablement) *PriorityLevelConfigurationSpecApplyConfiguration { + b.Type = &value + return b +} + +// WithLimited sets the Limited field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Limited field is set to the value of the last call. +func (b *PriorityLevelConfigurationSpecApplyConfiguration) WithLimited(value *LimitedPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration { + b.Limited = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationstatus.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationstatus.go new file mode 100644 index 0000000000..3c27e6aa62 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationstatus.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// PriorityLevelConfigurationStatusApplyConfiguration represents an declarative configuration of the PriorityLevelConfigurationStatus type for use +// with apply. +type PriorityLevelConfigurationStatusApplyConfiguration struct { + Conditions []PriorityLevelConfigurationConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// PriorityLevelConfigurationStatusApplyConfiguration constructs an declarative configuration of the PriorityLevelConfigurationStatus type for use with +// apply. +func PriorityLevelConfigurationStatus() *PriorityLevelConfigurationStatusApplyConfiguration { + return &PriorityLevelConfigurationStatusApplyConfiguration{} +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *PriorityLevelConfigurationStatusApplyConfiguration) WithConditions(values ...*PriorityLevelConfigurationConditionApplyConfiguration) *PriorityLevelConfigurationStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/queuingconfiguration.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/queuingconfiguration.go new file mode 100644 index 0000000000..5e6e6e7b01 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/queuingconfiguration.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// QueuingConfigurationApplyConfiguration represents an declarative configuration of the QueuingConfiguration type for use +// with apply. +type QueuingConfigurationApplyConfiguration struct { + Queues *int32 `json:"queues,omitempty"` + HandSize *int32 `json:"handSize,omitempty"` + QueueLengthLimit *int32 `json:"queueLengthLimit,omitempty"` +} + +// QueuingConfigurationApplyConfiguration constructs an declarative configuration of the QueuingConfiguration type for use with +// apply. +func QueuingConfiguration() *QueuingConfigurationApplyConfiguration { + return &QueuingConfigurationApplyConfiguration{} +} + +// WithQueues sets the Queues field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Queues field is set to the value of the last call. +func (b *QueuingConfigurationApplyConfiguration) WithQueues(value int32) *QueuingConfigurationApplyConfiguration { + b.Queues = &value + return b +} + +// WithHandSize sets the HandSize field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HandSize field is set to the value of the last call. +func (b *QueuingConfigurationApplyConfiguration) WithHandSize(value int32) *QueuingConfigurationApplyConfiguration { + b.HandSize = &value + return b +} + +// WithQueueLengthLimit sets the QueueLengthLimit field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the QueueLengthLimit field is set to the value of the last call. +func (b *QueuingConfigurationApplyConfiguration) WithQueueLengthLimit(value int32) *QueuingConfigurationApplyConfiguration { + b.QueueLengthLimit = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/resourcepolicyrule.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/resourcepolicyrule.go new file mode 100644 index 0000000000..2e12ee1cc0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/resourcepolicyrule.go @@ -0,0 +1,83 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// ResourcePolicyRuleApplyConfiguration represents an declarative configuration of the ResourcePolicyRule type for use +// with apply. +type ResourcePolicyRuleApplyConfiguration struct { + Verbs []string `json:"verbs,omitempty"` + APIGroups []string `json:"apiGroups,omitempty"` + Resources []string `json:"resources,omitempty"` + ClusterScope *bool `json:"clusterScope,omitempty"` + Namespaces []string `json:"namespaces,omitempty"` +} + +// ResourcePolicyRuleApplyConfiguration constructs an declarative configuration of the ResourcePolicyRule type for use with +// apply. +func ResourcePolicyRule() *ResourcePolicyRuleApplyConfiguration { + return &ResourcePolicyRuleApplyConfiguration{} +} + +// WithVerbs adds the given value to the Verbs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Verbs field. +func (b *ResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *ResourcePolicyRuleApplyConfiguration { + for i := range values { + b.Verbs = append(b.Verbs, values[i]) + } + return b +} + +// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIGroups field. +func (b *ResourcePolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *ResourcePolicyRuleApplyConfiguration { + for i := range values { + b.APIGroups = append(b.APIGroups, values[i]) + } + return b +} + +// WithResources adds the given value to the Resources field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Resources field. +func (b *ResourcePolicyRuleApplyConfiguration) WithResources(values ...string) *ResourcePolicyRuleApplyConfiguration { + for i := range values { + b.Resources = append(b.Resources, values[i]) + } + return b +} + +// WithClusterScope sets the ClusterScope field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterScope field is set to the value of the last call. +func (b *ResourcePolicyRuleApplyConfiguration) WithClusterScope(value bool) *ResourcePolicyRuleApplyConfiguration { + b.ClusterScope = &value + return b +} + +// WithNamespaces adds the given value to the Namespaces field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Namespaces field. +func (b *ResourcePolicyRuleApplyConfiguration) WithNamespaces(values ...string) *ResourcePolicyRuleApplyConfiguration { + for i := range values { + b.Namespaces = append(b.Namespaces, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/serviceaccountsubject.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/serviceaccountsubject.go new file mode 100644 index 0000000000..f5a146a9b1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/serviceaccountsubject.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// ServiceAccountSubjectApplyConfiguration represents an declarative configuration of the ServiceAccountSubject type for use +// with apply. +type ServiceAccountSubjectApplyConfiguration struct { + Namespace *string `json:"namespace,omitempty"` + Name *string `json:"name,omitempty"` +} + +// ServiceAccountSubjectApplyConfiguration constructs an declarative configuration of the ServiceAccountSubject type for use with +// apply. +func ServiceAccountSubject() *ServiceAccountSubjectApplyConfiguration { + return &ServiceAccountSubjectApplyConfiguration{} +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ServiceAccountSubjectApplyConfiguration) WithNamespace(value string) *ServiceAccountSubjectApplyConfiguration { + b.Namespace = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ServiceAccountSubjectApplyConfiguration) WithName(value string) *ServiceAccountSubjectApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/subject.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/subject.go new file mode 100644 index 0000000000..af571029fc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/subject.go @@ -0,0 +1,70 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/flowcontrol/v1beta1" +) + +// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use +// with apply. +type SubjectApplyConfiguration struct { + Kind *v1beta1.SubjectKind `json:"kind,omitempty"` + User *UserSubjectApplyConfiguration `json:"user,omitempty"` + Group *GroupSubjectApplyConfiguration `json:"group,omitempty"` + ServiceAccount *ServiceAccountSubjectApplyConfiguration `json:"serviceAccount,omitempty"` +} + +// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with +// apply. +func Subject() *SubjectApplyConfiguration { + return &SubjectApplyConfiguration{} +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithKind(value v1beta1.SubjectKind) *SubjectApplyConfiguration { + b.Kind = &value + return b +} + +// WithUser sets the User field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the User field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithUser(value *UserSubjectApplyConfiguration) *SubjectApplyConfiguration { + b.User = value + return b +} + +// WithGroup sets the Group field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Group field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithGroup(value *GroupSubjectApplyConfiguration) *SubjectApplyConfiguration { + b.Group = value + return b +} + +// WithServiceAccount sets the ServiceAccount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ServiceAccount field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithServiceAccount(value *ServiceAccountSubjectApplyConfiguration) *SubjectApplyConfiguration { + b.ServiceAccount = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/usersubject.go b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/usersubject.go new file mode 100644 index 0000000000..35bf27a593 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/usersubject.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// UserSubjectApplyConfiguration represents an declarative configuration of the UserSubject type for use +// with apply. +type UserSubjectApplyConfiguration struct { + Name *string `json:"name,omitempty"` +} + +// UserSubjectApplyConfiguration constructs an declarative configuration of the UserSubject type for use with +// apply. +func UserSubject() *UserSubjectApplyConfiguration { + return &UserSubjectApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *UserSubjectApplyConfiguration) WithName(value string) *UserSubjectApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/internal/internal.go b/vendor/k8s.io/client-go/applyconfigurations/internal/internal.go new file mode 100644 index 0000000000..abe43c0bf4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/internal/internal.go @@ -0,0 +1,10762 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package internal + +import ( + "fmt" + "sync" + + typed "sigs.k8s.io/structured-merge-diff/v4/typed" +) + +func Parser() *typed.Parser { + parserOnce.Do(func() { + var err error + parser, err = typed.NewParser(schemaYAML) + if err != nil { + panic(fmt.Sprintf("Failed to parse schema: %v", err)) + } + }) + return parser +} + +var parserOnce sync.Once +var parser *typed.Parser +var schemaYAML = typed.YAMLObject(`types: +- name: io.k8s.api.admissionregistration.v1.MutatingWebhook + map: + fields: + - name: admissionReviewVersions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: clientConfig + type: + namedType: io.k8s.api.admissionregistration.v1.WebhookClientConfig + default: {} + - name: failurePolicy + type: + scalar: string + - name: matchPolicy + type: + scalar: string + - name: name + type: + scalar: string + default: "" + - name: namespaceSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: objectSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: reinvocationPolicy + type: + scalar: string + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations + elementRelationship: atomic + - name: sideEffects + type: + scalar: string + - name: timeoutSeconds + type: + scalar: numeric +- name: io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: webhooks + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1.MutatingWebhook + elementRelationship: associative + keys: + - name +- name: io.k8s.api.admissionregistration.v1.RuleWithOperations + map: + fields: + - name: apiGroups + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: apiVersions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: operations + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: resources + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: scope + type: + scalar: string +- name: io.k8s.api.admissionregistration.v1.ServiceReference + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: namespace + type: + scalar: string + default: "" + - name: path + type: + scalar: string + - name: port + type: + scalar: numeric +- name: io.k8s.api.admissionregistration.v1.ValidatingWebhook + map: + fields: + - name: admissionReviewVersions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: clientConfig + type: + namedType: io.k8s.api.admissionregistration.v1.WebhookClientConfig + default: {} + - name: failurePolicy + type: + scalar: string + - name: matchPolicy + type: + scalar: string + - name: name + type: + scalar: string + default: "" + - name: namespaceSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: objectSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations + elementRelationship: atomic + - name: sideEffects + type: + scalar: string + - name: timeoutSeconds + type: + scalar: numeric +- name: io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: webhooks + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1.ValidatingWebhook + elementRelationship: associative + keys: + - name +- name: io.k8s.api.admissionregistration.v1.WebhookClientConfig + map: + fields: + - name: caBundle + type: + scalar: string + - name: service + type: + namedType: io.k8s.api.admissionregistration.v1.ServiceReference + - name: url + type: + scalar: string +- name: io.k8s.api.admissionregistration.v1beta1.MutatingWebhook + map: + fields: + - name: admissionReviewVersions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: clientConfig + type: + namedType: io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig + default: {} + - name: failurePolicy + type: + scalar: string + - name: matchPolicy + type: + scalar: string + - name: name + type: + scalar: string + default: "" + - name: namespaceSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: objectSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: reinvocationPolicy + type: + scalar: string + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1beta1.RuleWithOperations + elementRelationship: atomic + - name: sideEffects + type: + scalar: string + - name: timeoutSeconds + type: + scalar: numeric +- name: io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: webhooks + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1beta1.MutatingWebhook + elementRelationship: associative + keys: + - name +- name: io.k8s.api.admissionregistration.v1beta1.RuleWithOperations + map: + fields: + - name: apiGroups + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: apiVersions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: operations + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: resources + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: scope + type: + scalar: string +- name: io.k8s.api.admissionregistration.v1beta1.ServiceReference + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: namespace + type: + scalar: string + default: "" + - name: path + type: + scalar: string + - name: port + type: + scalar: numeric +- name: io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook + map: + fields: + - name: admissionReviewVersions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: clientConfig + type: + namedType: io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig + default: {} + - name: failurePolicy + type: + scalar: string + - name: matchPolicy + type: + scalar: string + - name: name + type: + scalar: string + default: "" + - name: namespaceSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: objectSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1beta1.RuleWithOperations + elementRelationship: atomic + - name: sideEffects + type: + scalar: string + - name: timeoutSeconds + type: + scalar: numeric +- name: io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: webhooks + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook + elementRelationship: associative + keys: + - name +- name: io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig + map: + fields: + - name: caBundle + type: + scalar: string + - name: service + type: + namedType: io.k8s.api.admissionregistration.v1beta1.ServiceReference + - name: url + type: + scalar: string +- name: io.k8s.api.apiserverinternal.v1alpha1.ServerStorageVersion + map: + fields: + - name: apiServerID + type: + scalar: string + - name: decodableVersions + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: encodingVersion + type: + scalar: string +- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersion + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec + default: {} + - name: status + type: + namedType: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus + default: {} +- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: observedGeneration + type: + scalar: numeric + - name: reason + type: + scalar: string + default: "" + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec + map: + elementType: + scalar: untyped + list: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic + map: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic +- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus + map: + fields: + - name: commonEncodingVersion + type: + scalar: string + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition + elementRelationship: associative + keys: + - type + - name: storageVersions + type: + list: + elementType: + namedType: io.k8s.api.apiserverinternal.v1alpha1.ServerStorageVersion + elementRelationship: associative + keys: + - apiServerID +- name: io.k8s.api.apps.v1.ControllerRevision + map: + fields: + - name: apiVersion + type: + scalar: string + - name: data + type: + namedType: __untyped_atomic_ + default: {} + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: revision + type: + scalar: numeric + default: 0 +- name: io.k8s.api.apps.v1.DaemonSet + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.apps.v1.DaemonSetSpec + default: {} + - name: status + type: + namedType: io.k8s.api.apps.v1.DaemonSetStatus + default: {} +- name: io.k8s.api.apps.v1.DaemonSetCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.apps.v1.DaemonSetSpec + map: + fields: + - name: minReadySeconds + type: + scalar: numeric + - name: revisionHistoryLimit + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} + - name: updateStrategy + type: + namedType: io.k8s.api.apps.v1.DaemonSetUpdateStrategy + default: {} +- name: io.k8s.api.apps.v1.DaemonSetStatus + map: + fields: + - name: collisionCount + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.apps.v1.DaemonSetCondition + elementRelationship: associative + keys: + - type + - name: currentNumberScheduled + type: + scalar: numeric + default: 0 + - name: desiredNumberScheduled + type: + scalar: numeric + default: 0 + - name: numberAvailable + type: + scalar: numeric + - name: numberMisscheduled + type: + scalar: numeric + default: 0 + - name: numberReady + type: + scalar: numeric + default: 0 + - name: numberUnavailable + type: + scalar: numeric + - name: observedGeneration + type: + scalar: numeric + - name: updatedNumberScheduled + type: + scalar: numeric +- name: io.k8s.api.apps.v1.DaemonSetUpdateStrategy + map: + fields: + - name: rollingUpdate + type: + namedType: io.k8s.api.apps.v1.RollingUpdateDaemonSet + - name: type + type: + scalar: string +- name: io.k8s.api.apps.v1.Deployment + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.apps.v1.DeploymentSpec + default: {} + - name: status + type: + namedType: io.k8s.api.apps.v1.DeploymentStatus + default: {} +- name: io.k8s.api.apps.v1.DeploymentCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: lastUpdateTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.apps.v1.DeploymentSpec + map: + fields: + - name: minReadySeconds + type: + scalar: numeric + - name: paused + type: + scalar: boolean + - name: progressDeadlineSeconds + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: revisionHistoryLimit + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: strategy + type: + namedType: io.k8s.api.apps.v1.DeploymentStrategy + default: {} + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} +- name: io.k8s.api.apps.v1.DeploymentStatus + map: + fields: + - name: availableReplicas + type: + scalar: numeric + - name: collisionCount + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.apps.v1.DeploymentCondition + elementRelationship: associative + keys: + - type + - name: observedGeneration + type: + scalar: numeric + - name: readyReplicas + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: unavailableReplicas + type: + scalar: numeric + - name: updatedReplicas + type: + scalar: numeric +- name: io.k8s.api.apps.v1.DeploymentStrategy + map: + fields: + - name: rollingUpdate + type: + namedType: io.k8s.api.apps.v1.RollingUpdateDeployment + - name: type + type: + scalar: string +- name: io.k8s.api.apps.v1.ReplicaSet + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.apps.v1.ReplicaSetSpec + default: {} + - name: status + type: + namedType: io.k8s.api.apps.v1.ReplicaSetStatus + default: {} +- name: io.k8s.api.apps.v1.ReplicaSetCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.apps.v1.ReplicaSetSpec + map: + fields: + - name: minReadySeconds + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} +- name: io.k8s.api.apps.v1.ReplicaSetStatus + map: + fields: + - name: availableReplicas + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.apps.v1.ReplicaSetCondition + elementRelationship: associative + keys: + - type + - name: fullyLabeledReplicas + type: + scalar: numeric + - name: observedGeneration + type: + scalar: numeric + - name: readyReplicas + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + default: 0 +- name: io.k8s.api.apps.v1.RollingUpdateDaemonSet + map: + fields: + - name: maxSurge + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: maxUnavailable + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString +- name: io.k8s.api.apps.v1.RollingUpdateDeployment + map: + fields: + - name: maxSurge + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: maxUnavailable + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString +- name: io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy + map: + fields: + - name: partition + type: + scalar: numeric +- name: io.k8s.api.apps.v1.StatefulSet + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.apps.v1.StatefulSetSpec + default: {} + - name: status + type: + namedType: io.k8s.api.apps.v1.StatefulSetStatus + default: {} +- name: io.k8s.api.apps.v1.StatefulSetCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.apps.v1.StatefulSetSpec + map: + fields: + - name: podManagementPolicy + type: + scalar: string + - name: replicas + type: + scalar: numeric + - name: revisionHistoryLimit + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: serviceName + type: + scalar: string + default: "" + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} + - name: updateStrategy + type: + namedType: io.k8s.api.apps.v1.StatefulSetUpdateStrategy + default: {} + - name: volumeClaimTemplates + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PersistentVolumeClaim + elementRelationship: atomic +- name: io.k8s.api.apps.v1.StatefulSetStatus + map: + fields: + - name: collisionCount + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.apps.v1.StatefulSetCondition + elementRelationship: associative + keys: + - type + - name: currentReplicas + type: + scalar: numeric + - name: currentRevision + type: + scalar: string + - name: observedGeneration + type: + scalar: numeric + - name: readyReplicas + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + default: 0 + - name: updateRevision + type: + scalar: string + - name: updatedReplicas + type: + scalar: numeric +- name: io.k8s.api.apps.v1.StatefulSetUpdateStrategy + map: + fields: + - name: rollingUpdate + type: + namedType: io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy + - name: type + type: + scalar: string +- name: io.k8s.api.apps.v1beta1.ControllerRevision + map: + fields: + - name: apiVersion + type: + scalar: string + - name: data + type: + namedType: __untyped_atomic_ + default: {} + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: revision + type: + scalar: numeric + default: 0 +- name: io.k8s.api.apps.v1beta1.Deployment + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.apps.v1beta1.DeploymentSpec + default: {} + - name: status + type: + namedType: io.k8s.api.apps.v1beta1.DeploymentStatus + default: {} +- name: io.k8s.api.apps.v1beta1.DeploymentCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: lastUpdateTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.apps.v1beta1.DeploymentSpec + map: + fields: + - name: minReadySeconds + type: + scalar: numeric + - name: paused + type: + scalar: boolean + - name: progressDeadlineSeconds + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: revisionHistoryLimit + type: + scalar: numeric + - name: rollbackTo + type: + namedType: io.k8s.api.apps.v1beta1.RollbackConfig + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: strategy + type: + namedType: io.k8s.api.apps.v1beta1.DeploymentStrategy + default: {} + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} +- name: io.k8s.api.apps.v1beta1.DeploymentStatus + map: + fields: + - name: availableReplicas + type: + scalar: numeric + - name: collisionCount + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.apps.v1beta1.DeploymentCondition + elementRelationship: associative + keys: + - type + - name: observedGeneration + type: + scalar: numeric + - name: readyReplicas + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: unavailableReplicas + type: + scalar: numeric + - name: updatedReplicas + type: + scalar: numeric +- name: io.k8s.api.apps.v1beta1.DeploymentStrategy + map: + fields: + - name: rollingUpdate + type: + namedType: io.k8s.api.apps.v1beta1.RollingUpdateDeployment + - name: type + type: + scalar: string +- name: io.k8s.api.apps.v1beta1.RollbackConfig + map: + fields: + - name: revision + type: + scalar: numeric +- name: io.k8s.api.apps.v1beta1.RollingUpdateDeployment + map: + fields: + - name: maxSurge + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: maxUnavailable + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString +- name: io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy + map: + fields: + - name: partition + type: + scalar: numeric +- name: io.k8s.api.apps.v1beta1.StatefulSet + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.apps.v1beta1.StatefulSetSpec + default: {} + - name: status + type: + namedType: io.k8s.api.apps.v1beta1.StatefulSetStatus + default: {} +- name: io.k8s.api.apps.v1beta1.StatefulSetCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.apps.v1beta1.StatefulSetSpec + map: + fields: + - name: podManagementPolicy + type: + scalar: string + - name: replicas + type: + scalar: numeric + - name: revisionHistoryLimit + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: serviceName + type: + scalar: string + default: "" + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} + - name: updateStrategy + type: + namedType: io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy + default: {} + - name: volumeClaimTemplates + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PersistentVolumeClaim + elementRelationship: atomic +- name: io.k8s.api.apps.v1beta1.StatefulSetStatus + map: + fields: + - name: collisionCount + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.apps.v1beta1.StatefulSetCondition + elementRelationship: associative + keys: + - type + - name: currentReplicas + type: + scalar: numeric + - name: currentRevision + type: + scalar: string + - name: observedGeneration + type: + scalar: numeric + - name: readyReplicas + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + default: 0 + - name: updateRevision + type: + scalar: string + - name: updatedReplicas + type: + scalar: numeric +- name: io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy + map: + fields: + - name: rollingUpdate + type: + namedType: io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy + - name: type + type: + scalar: string +- name: io.k8s.api.apps.v1beta2.ControllerRevision + map: + fields: + - name: apiVersion + type: + scalar: string + - name: data + type: + namedType: __untyped_atomic_ + default: {} + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: revision + type: + scalar: numeric + default: 0 +- name: io.k8s.api.apps.v1beta2.DaemonSet + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.apps.v1beta2.DaemonSetSpec + default: {} + - name: status + type: + namedType: io.k8s.api.apps.v1beta2.DaemonSetStatus + default: {} +- name: io.k8s.api.apps.v1beta2.DaemonSetCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.apps.v1beta2.DaemonSetSpec + map: + fields: + - name: minReadySeconds + type: + scalar: numeric + - name: revisionHistoryLimit + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} + - name: updateStrategy + type: + namedType: io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy + default: {} +- name: io.k8s.api.apps.v1beta2.DaemonSetStatus + map: + fields: + - name: collisionCount + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.apps.v1beta2.DaemonSetCondition + elementRelationship: associative + keys: + - type + - name: currentNumberScheduled + type: + scalar: numeric + default: 0 + - name: desiredNumberScheduled + type: + scalar: numeric + default: 0 + - name: numberAvailable + type: + scalar: numeric + - name: numberMisscheduled + type: + scalar: numeric + default: 0 + - name: numberReady + type: + scalar: numeric + default: 0 + - name: numberUnavailable + type: + scalar: numeric + - name: observedGeneration + type: + scalar: numeric + - name: updatedNumberScheduled + type: + scalar: numeric +- name: io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy + map: + fields: + - name: rollingUpdate + type: + namedType: io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet + - name: type + type: + scalar: string +- name: io.k8s.api.apps.v1beta2.Deployment + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.apps.v1beta2.DeploymentSpec + default: {} + - name: status + type: + namedType: io.k8s.api.apps.v1beta2.DeploymentStatus + default: {} +- name: io.k8s.api.apps.v1beta2.DeploymentCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: lastUpdateTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.apps.v1beta2.DeploymentSpec + map: + fields: + - name: minReadySeconds + type: + scalar: numeric + - name: paused + type: + scalar: boolean + - name: progressDeadlineSeconds + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: revisionHistoryLimit + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: strategy + type: + namedType: io.k8s.api.apps.v1beta2.DeploymentStrategy + default: {} + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} +- name: io.k8s.api.apps.v1beta2.DeploymentStatus + map: + fields: + - name: availableReplicas + type: + scalar: numeric + - name: collisionCount + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.apps.v1beta2.DeploymentCondition + elementRelationship: associative + keys: + - type + - name: observedGeneration + type: + scalar: numeric + - name: readyReplicas + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: unavailableReplicas + type: + scalar: numeric + - name: updatedReplicas + type: + scalar: numeric +- name: io.k8s.api.apps.v1beta2.DeploymentStrategy + map: + fields: + - name: rollingUpdate + type: + namedType: io.k8s.api.apps.v1beta2.RollingUpdateDeployment + - name: type + type: + scalar: string +- name: io.k8s.api.apps.v1beta2.ReplicaSet + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.apps.v1beta2.ReplicaSetSpec + default: {} + - name: status + type: + namedType: io.k8s.api.apps.v1beta2.ReplicaSetStatus + default: {} +- name: io.k8s.api.apps.v1beta2.ReplicaSetCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.apps.v1beta2.ReplicaSetSpec + map: + fields: + - name: minReadySeconds + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} +- name: io.k8s.api.apps.v1beta2.ReplicaSetStatus + map: + fields: + - name: availableReplicas + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.apps.v1beta2.ReplicaSetCondition + elementRelationship: associative + keys: + - type + - name: fullyLabeledReplicas + type: + scalar: numeric + - name: observedGeneration + type: + scalar: numeric + - name: readyReplicas + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + default: 0 +- name: io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet + map: + fields: + - name: maxSurge + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: maxUnavailable + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString +- name: io.k8s.api.apps.v1beta2.RollingUpdateDeployment + map: + fields: + - name: maxSurge + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: maxUnavailable + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString +- name: io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy + map: + fields: + - name: partition + type: + scalar: numeric +- name: io.k8s.api.apps.v1beta2.StatefulSet + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.apps.v1beta2.StatefulSetSpec + default: {} + - name: status + type: + namedType: io.k8s.api.apps.v1beta2.StatefulSetStatus + default: {} +- name: io.k8s.api.apps.v1beta2.StatefulSetCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.apps.v1beta2.StatefulSetSpec + map: + fields: + - name: podManagementPolicy + type: + scalar: string + - name: replicas + type: + scalar: numeric + - name: revisionHistoryLimit + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: serviceName + type: + scalar: string + default: "" + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} + - name: updateStrategy + type: + namedType: io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy + default: {} + - name: volumeClaimTemplates + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PersistentVolumeClaim + elementRelationship: atomic +- name: io.k8s.api.apps.v1beta2.StatefulSetStatus + map: + fields: + - name: collisionCount + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.apps.v1beta2.StatefulSetCondition + elementRelationship: associative + keys: + - type + - name: currentReplicas + type: + scalar: numeric + - name: currentRevision + type: + scalar: string + - name: observedGeneration + type: + scalar: numeric + - name: readyReplicas + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + default: 0 + - name: updateRevision + type: + scalar: string + - name: updatedReplicas + type: + scalar: numeric +- name: io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy + map: + fields: + - name: rollingUpdate + type: + namedType: io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy + - name: type + type: + scalar: string +- name: io.k8s.api.autoscaling.v1.CrossVersionObjectReference + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec + default: {} + - name: status + type: + namedType: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus + default: {} +- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec + map: + fields: + - name: maxReplicas + type: + scalar: numeric + default: 0 + - name: minReplicas + type: + scalar: numeric + - name: scaleTargetRef + type: + namedType: io.k8s.api.autoscaling.v1.CrossVersionObjectReference + default: {} + - name: targetCPUUtilizationPercentage + type: + scalar: numeric +- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus + map: + fields: + - name: currentCPUUtilizationPercentage + type: + scalar: numeric + - name: currentReplicas + type: + scalar: numeric + default: 0 + - name: desiredReplicas + type: + scalar: numeric + default: 0 + - name: lastScaleTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: observedGeneration + type: + scalar: numeric +- name: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricSource + map: + fields: + - name: container + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" + - name: targetAverageUtilization + type: + scalar: numeric + - name: targetAverageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricStatus + map: + fields: + - name: container + type: + scalar: string + default: "" + - name: currentAverageUtilization + type: + scalar: numeric + - name: currentAverageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + default: {} + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v2beta1.ExternalMetricSource + map: + fields: + - name: metricName + type: + scalar: string + default: "" + - name: metricSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: targetAverageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: targetValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus + map: + fields: + - name: currentAverageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: currentValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + default: {} + - name: metricName + type: + scalar: string + default: "" + - name: metricSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector +- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec + default: {} + - name: status + type: + namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus + default: {} +- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec + map: + fields: + - name: maxReplicas + type: + scalar: numeric + default: 0 + - name: metrics + type: + list: + elementType: + namedType: io.k8s.api.autoscaling.v2beta1.MetricSpec + elementRelationship: atomic + - name: minReplicas + type: + scalar: numeric + - name: scaleTargetRef + type: + namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference + default: {} +- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition + elementRelationship: atomic + - name: currentMetrics + type: + list: + elementType: + namedType: io.k8s.api.autoscaling.v2beta1.MetricStatus + elementRelationship: atomic + - name: currentReplicas + type: + scalar: numeric + default: 0 + - name: desiredReplicas + type: + scalar: numeric + default: 0 + - name: lastScaleTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: observedGeneration + type: + scalar: numeric +- name: io.k8s.api.autoscaling.v2beta1.MetricSpec + map: + fields: + - name: containerResource + type: + namedType: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricSource + - name: external + type: + namedType: io.k8s.api.autoscaling.v2beta1.ExternalMetricSource + - name: object + type: + namedType: io.k8s.api.autoscaling.v2beta1.ObjectMetricSource + - name: pods + type: + namedType: io.k8s.api.autoscaling.v2beta1.PodsMetricSource + - name: resource + type: + namedType: io.k8s.api.autoscaling.v2beta1.ResourceMetricSource + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v2beta1.MetricStatus + map: + fields: + - name: containerResource + type: + namedType: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricStatus + - name: external + type: + namedType: io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus + - name: object + type: + namedType: io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus + - name: pods + type: + namedType: io.k8s.api.autoscaling.v2beta1.PodsMetricStatus + - name: resource + type: + namedType: io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v2beta1.ObjectMetricSource + map: + fields: + - name: averageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: metricName + type: + scalar: string + default: "" + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: target + type: + namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference + default: {} + - name: targetValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + default: {} +- name: io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus + map: + fields: + - name: averageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: currentValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + default: {} + - name: metricName + type: + scalar: string + default: "" + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: target + type: + namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference + default: {} +- name: io.k8s.api.autoscaling.v2beta1.PodsMetricSource + map: + fields: + - name: metricName + type: + scalar: string + default: "" + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: targetAverageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + default: {} +- name: io.k8s.api.autoscaling.v2beta1.PodsMetricStatus + map: + fields: + - name: currentAverageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + default: {} + - name: metricName + type: + scalar: string + default: "" + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector +- name: io.k8s.api.autoscaling.v2beta1.ResourceMetricSource + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: targetAverageUtilization + type: + scalar: numeric + - name: targetAverageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus + map: + fields: + - name: currentAverageUtilization + type: + scalar: numeric + - name: currentAverageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + default: {} + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource + map: + fields: + - name: container + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" + - name: target + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget + default: {} +- name: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus + map: + fields: + - name: container + type: + scalar: string + default: "" + - name: current + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus + default: {} + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v2beta2.ExternalMetricSource + map: + fields: + - name: metric + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier + default: {} + - name: target + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget + default: {} +- name: io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus + map: + fields: + - name: current + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus + default: {} + - name: metric + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier + default: {} +- name: io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy + map: + fields: + - name: periodSeconds + type: + scalar: numeric + default: 0 + - name: type + type: + scalar: string + default: "" + - name: value + type: + scalar: numeric + default: 0 +- name: io.k8s.api.autoscaling.v2beta2.HPAScalingRules + map: + fields: + - name: policies + type: + list: + elementType: + namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy + elementRelationship: atomic + - name: selectPolicy + type: + scalar: string + - name: stabilizationWindowSeconds + type: + scalar: numeric +- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec + default: {} + - name: status + type: + namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus + default: {} +- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior + map: + fields: + - name: scaleDown + type: + namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingRules + - name: scaleUp + type: + namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingRules +- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec + map: + fields: + - name: behavior + type: + namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior + - name: maxReplicas + type: + scalar: numeric + default: 0 + - name: metrics + type: + list: + elementType: + namedType: io.k8s.api.autoscaling.v2beta2.MetricSpec + elementRelationship: atomic + - name: minReplicas + type: + scalar: numeric + - name: scaleTargetRef + type: + namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference + default: {} +- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition + elementRelationship: atomic + - name: currentMetrics + type: + list: + elementType: + namedType: io.k8s.api.autoscaling.v2beta2.MetricStatus + elementRelationship: atomic + - name: currentReplicas + type: + scalar: numeric + default: 0 + - name: desiredReplicas + type: + scalar: numeric + default: 0 + - name: lastScaleTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: observedGeneration + type: + scalar: numeric +- name: io.k8s.api.autoscaling.v2beta2.MetricIdentifier + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector +- name: io.k8s.api.autoscaling.v2beta2.MetricSpec + map: + fields: + - name: containerResource + type: + namedType: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource + - name: external + type: + namedType: io.k8s.api.autoscaling.v2beta2.ExternalMetricSource + - name: object + type: + namedType: io.k8s.api.autoscaling.v2beta2.ObjectMetricSource + - name: pods + type: + namedType: io.k8s.api.autoscaling.v2beta2.PodsMetricSource + - name: resource + type: + namedType: io.k8s.api.autoscaling.v2beta2.ResourceMetricSource + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v2beta2.MetricStatus + map: + fields: + - name: containerResource + type: + namedType: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus + - name: external + type: + namedType: io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus + - name: object + type: + namedType: io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus + - name: pods + type: + namedType: io.k8s.api.autoscaling.v2beta2.PodsMetricStatus + - name: resource + type: + namedType: io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.autoscaling.v2beta2.MetricTarget + map: + fields: + - name: averageUtilization + type: + scalar: numeric + - name: averageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: type + type: + scalar: string + default: "" + - name: value + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.autoscaling.v2beta2.MetricValueStatus + map: + fields: + - name: averageUtilization + type: + scalar: numeric + - name: averageValue + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: value + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.autoscaling.v2beta2.ObjectMetricSource + map: + fields: + - name: describedObject + type: + namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference + default: {} + - name: metric + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier + default: {} + - name: target + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget + default: {} +- name: io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus + map: + fields: + - name: current + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus + default: {} + - name: describedObject + type: + namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference + default: {} + - name: metric + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier + default: {} +- name: io.k8s.api.autoscaling.v2beta2.PodsMetricSource + map: + fields: + - name: metric + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier + default: {} + - name: target + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget + default: {} +- name: io.k8s.api.autoscaling.v2beta2.PodsMetricStatus + map: + fields: + - name: current + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus + default: {} + - name: metric + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier + default: {} +- name: io.k8s.api.autoscaling.v2beta2.ResourceMetricSource + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: target + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget + default: {} +- name: io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus + map: + fields: + - name: current + type: + namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus + default: {} + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.batch.v1.CronJob + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.batch.v1.CronJobSpec + default: {} + - name: status + type: + namedType: io.k8s.api.batch.v1.CronJobStatus + default: {} +- name: io.k8s.api.batch.v1.CronJobSpec + map: + fields: + - name: concurrencyPolicy + type: + scalar: string + - name: failedJobsHistoryLimit + type: + scalar: numeric + - name: jobTemplate + type: + namedType: io.k8s.api.batch.v1.JobTemplateSpec + default: {} + - name: schedule + type: + scalar: string + default: "" + - name: startingDeadlineSeconds + type: + scalar: numeric + - name: successfulJobsHistoryLimit + type: + scalar: numeric + - name: suspend + type: + scalar: boolean +- name: io.k8s.api.batch.v1.CronJobStatus + map: + fields: + - name: active + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ObjectReference + elementRelationship: atomic + - name: lastScheduleTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: lastSuccessfulTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time +- name: io.k8s.api.batch.v1.Job + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.batch.v1.JobSpec + default: {} + - name: status + type: + namedType: io.k8s.api.batch.v1.JobStatus + default: {} +- name: io.k8s.api.batch.v1.JobCondition + map: + fields: + - name: lastProbeTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.batch.v1.JobSpec + map: + fields: + - name: activeDeadlineSeconds + type: + scalar: numeric + - name: backoffLimit + type: + scalar: numeric + - name: completionMode + type: + scalar: string + - name: completions + type: + scalar: numeric + - name: manualSelector + type: + scalar: boolean + - name: parallelism + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: suspend + type: + scalar: boolean + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} + - name: ttlSecondsAfterFinished + type: + scalar: numeric +- name: io.k8s.api.batch.v1.JobStatus + map: + fields: + - name: active + type: + scalar: numeric + - name: completedIndexes + type: + scalar: string + - name: completionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.batch.v1.JobCondition + elementRelationship: atomic + - name: failed + type: + scalar: numeric + - name: startTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: succeeded + type: + scalar: numeric +- name: io.k8s.api.batch.v1.JobTemplateSpec + map: + fields: + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.batch.v1.JobSpec + default: {} +- name: io.k8s.api.batch.v1beta1.CronJob + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.batch.v1beta1.CronJobSpec + default: {} + - name: status + type: + namedType: io.k8s.api.batch.v1beta1.CronJobStatus + default: {} +- name: io.k8s.api.batch.v1beta1.CronJobSpec + map: + fields: + - name: concurrencyPolicy + type: + scalar: string + - name: failedJobsHistoryLimit + type: + scalar: numeric + - name: jobTemplate + type: + namedType: io.k8s.api.batch.v1beta1.JobTemplateSpec + default: {} + - name: schedule + type: + scalar: string + default: "" + - name: startingDeadlineSeconds + type: + scalar: numeric + - name: successfulJobsHistoryLimit + type: + scalar: numeric + - name: suspend + type: + scalar: boolean +- name: io.k8s.api.batch.v1beta1.CronJobStatus + map: + fields: + - name: active + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ObjectReference + elementRelationship: atomic + - name: lastScheduleTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: lastSuccessfulTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time +- name: io.k8s.api.batch.v1beta1.JobTemplateSpec + map: + fields: + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.batch.v1.JobSpec + default: {} +- name: io.k8s.api.certificates.v1.CertificateSigningRequest + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.certificates.v1.CertificateSigningRequestSpec + default: {} + - name: status + type: + namedType: io.k8s.api.certificates.v1.CertificateSigningRequestStatus + default: {} +- name: io.k8s.api.certificates.v1.CertificateSigningRequestCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: lastUpdateTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.certificates.v1.CertificateSigningRequestSpec + map: + fields: + - name: extra + type: + map: + elementType: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: groups + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: request + type: + scalar: string + - name: signerName + type: + scalar: string + default: "" + - name: uid + type: + scalar: string + - name: usages + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: username + type: + scalar: string +- name: io.k8s.api.certificates.v1.CertificateSigningRequestStatus + map: + fields: + - name: certificate + type: + scalar: string + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.certificates.v1.CertificateSigningRequestCondition + elementRelationship: associative + keys: + - type +- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequest + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec + default: {} + - name: status + type: + namedType: io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus + default: {} +- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: lastUpdateTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec + map: + fields: + - name: extra + type: + map: + elementType: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: groups + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: request + type: + scalar: string + - name: signerName + type: + scalar: string + - name: uid + type: + scalar: string + - name: usages + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: username + type: + scalar: string +- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus + map: + fields: + - name: certificate + type: + scalar: string + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition + elementRelationship: associative + keys: + - type +- name: io.k8s.api.coordination.v1.Lease + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.coordination.v1.LeaseSpec + default: {} +- name: io.k8s.api.coordination.v1.LeaseSpec + map: + fields: + - name: acquireTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime + - name: holderIdentity + type: + scalar: string + - name: leaseDurationSeconds + type: + scalar: numeric + - name: leaseTransitions + type: + scalar: numeric + - name: renewTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime +- name: io.k8s.api.coordination.v1beta1.Lease + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.coordination.v1beta1.LeaseSpec + default: {} +- name: io.k8s.api.coordination.v1beta1.LeaseSpec + map: + fields: + - name: acquireTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime + - name: holderIdentity + type: + scalar: string + - name: leaseDurationSeconds + type: + scalar: numeric + - name: leaseTransitions + type: + scalar: numeric + - name: renewTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime +- name: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: partition + type: + scalar: numeric + - name: readOnly + type: + scalar: boolean + - name: volumeID + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.Affinity + map: + fields: + - name: nodeAffinity + type: + namedType: io.k8s.api.core.v1.NodeAffinity + - name: podAffinity + type: + namedType: io.k8s.api.core.v1.PodAffinity + - name: podAntiAffinity + type: + namedType: io.k8s.api.core.v1.PodAntiAffinity +- name: io.k8s.api.core.v1.AttachedVolume + map: + fields: + - name: devicePath + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.AzureDiskVolumeSource + map: + fields: + - name: cachingMode + type: + scalar: string + - name: diskName + type: + scalar: string + default: "" + - name: diskURI + type: + scalar: string + default: "" + - name: fsType + type: + scalar: string + - name: kind + type: + scalar: string + - name: readOnly + type: + scalar: boolean +- name: io.k8s.api.core.v1.AzureFilePersistentVolumeSource + map: + fields: + - name: readOnly + type: + scalar: boolean + - name: secretName + type: + scalar: string + default: "" + - name: secretNamespace + type: + scalar: string + - name: shareName + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.AzureFileVolumeSource + map: + fields: + - name: readOnly + type: + scalar: boolean + - name: secretName + type: + scalar: string + default: "" + - name: shareName + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.CSIPersistentVolumeSource + map: + fields: + - name: controllerExpandSecretRef + type: + namedType: io.k8s.api.core.v1.SecretReference + - name: controllerPublishSecretRef + type: + namedType: io.k8s.api.core.v1.SecretReference + - name: driver + type: + scalar: string + default: "" + - name: fsType + type: + scalar: string + - name: nodePublishSecretRef + type: + namedType: io.k8s.api.core.v1.SecretReference + - name: nodeStageSecretRef + type: + namedType: io.k8s.api.core.v1.SecretReference + - name: readOnly + type: + scalar: boolean + - name: volumeAttributes + type: + map: + elementType: + scalar: string + - name: volumeHandle + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.CSIVolumeSource + map: + fields: + - name: driver + type: + scalar: string + default: "" + - name: fsType + type: + scalar: string + - name: nodePublishSecretRef + type: + namedType: io.k8s.api.core.v1.LocalObjectReference + - name: readOnly + type: + scalar: boolean + - name: volumeAttributes + type: + map: + elementType: + scalar: string +- name: io.k8s.api.core.v1.Capabilities + map: + fields: + - name: add + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: drop + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.core.v1.CephFSPersistentVolumeSource + map: + fields: + - name: monitors + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: path + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretFile + type: + scalar: string + - name: secretRef + type: + namedType: io.k8s.api.core.v1.SecretReference + - name: user + type: + scalar: string +- name: io.k8s.api.core.v1.CephFSVolumeSource + map: + fields: + - name: monitors + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: path + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretFile + type: + scalar: string + - name: secretRef + type: + namedType: io.k8s.api.core.v1.LocalObjectReference + - name: user + type: + scalar: string +- name: io.k8s.api.core.v1.CinderPersistentVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.SecretReference + - name: volumeID + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.CinderVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.LocalObjectReference + - name: volumeID + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.ClientIPConfig + map: + fields: + - name: timeoutSeconds + type: + scalar: numeric +- name: io.k8s.api.core.v1.ComponentCondition + map: + fields: + - name: error + type: + scalar: string + - name: message + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.ComponentStatus + map: + fields: + - name: apiVersion + type: + scalar: string + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ComponentCondition + elementRelationship: associative + keys: + - type + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} +- name: io.k8s.api.core.v1.ConfigMap + map: + fields: + - name: apiVersion + type: + scalar: string + - name: binaryData + type: + map: + elementType: + scalar: string + - name: data + type: + map: + elementType: + scalar: string + - name: immutable + type: + scalar: boolean + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} +- name: io.k8s.api.core.v1.ConfigMapEnvSource + map: + fields: + - name: name + type: + scalar: string + - name: optional + type: + scalar: boolean +- name: io.k8s.api.core.v1.ConfigMapKeySelector + map: + fields: + - name: key + type: + scalar: string + default: "" + - name: name + type: + scalar: string + - name: optional + type: + scalar: boolean +- name: io.k8s.api.core.v1.ConfigMapNodeConfigSource + map: + fields: + - name: kubeletConfigKey + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" + - name: namespace + type: + scalar: string + default: "" + - name: resourceVersion + type: + scalar: string + - name: uid + type: + scalar: string +- name: io.k8s.api.core.v1.ConfigMapProjection + map: + fields: + - name: items + type: + list: + elementType: + namedType: io.k8s.api.core.v1.KeyToPath + elementRelationship: atomic + - name: name + type: + scalar: string + - name: optional + type: + scalar: boolean +- name: io.k8s.api.core.v1.ConfigMapVolumeSource + map: + fields: + - name: defaultMode + type: + scalar: numeric + - name: items + type: + list: + elementType: + namedType: io.k8s.api.core.v1.KeyToPath + elementRelationship: atomic + - name: name + type: + scalar: string + - name: optional + type: + scalar: boolean +- name: io.k8s.api.core.v1.Container + map: + fields: + - name: args + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: command + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: env + type: + list: + elementType: + namedType: io.k8s.api.core.v1.EnvVar + elementRelationship: associative + keys: + - name + - name: envFrom + type: + list: + elementType: + namedType: io.k8s.api.core.v1.EnvFromSource + elementRelationship: atomic + - name: image + type: + scalar: string + - name: imagePullPolicy + type: + scalar: string + - name: lifecycle + type: + namedType: io.k8s.api.core.v1.Lifecycle + - name: livenessProbe + type: + namedType: io.k8s.api.core.v1.Probe + - name: name + type: + scalar: string + default: "" + - name: ports + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ContainerPort + elementRelationship: associative + keys: + - containerPort + - protocol + - name: readinessProbe + type: + namedType: io.k8s.api.core.v1.Probe + - name: resources + type: + namedType: io.k8s.api.core.v1.ResourceRequirements + default: {} + - name: securityContext + type: + namedType: io.k8s.api.core.v1.SecurityContext + - name: startupProbe + type: + namedType: io.k8s.api.core.v1.Probe + - name: stdin + type: + scalar: boolean + - name: stdinOnce + type: + scalar: boolean + - name: terminationMessagePath + type: + scalar: string + - name: terminationMessagePolicy + type: + scalar: string + - name: tty + type: + scalar: boolean + - name: volumeDevices + type: + list: + elementType: + namedType: io.k8s.api.core.v1.VolumeDevice + elementRelationship: associative + keys: + - devicePath + - name: volumeMounts + type: + list: + elementType: + namedType: io.k8s.api.core.v1.VolumeMount + elementRelationship: associative + keys: + - mountPath + - name: workingDir + type: + scalar: string +- name: io.k8s.api.core.v1.ContainerImage + map: + fields: + - name: names + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: sizeBytes + type: + scalar: numeric +- name: io.k8s.api.core.v1.ContainerPort + map: + fields: + - name: containerPort + type: + scalar: numeric + default: 0 + - name: hostIP + type: + scalar: string + - name: hostPort + type: + scalar: numeric + - name: name + type: + scalar: string + - name: protocol + type: + scalar: string + default: TCP +- name: io.k8s.api.core.v1.ContainerState + map: + fields: + - name: running + type: + namedType: io.k8s.api.core.v1.ContainerStateRunning + - name: terminated + type: + namedType: io.k8s.api.core.v1.ContainerStateTerminated + - name: waiting + type: + namedType: io.k8s.api.core.v1.ContainerStateWaiting +- name: io.k8s.api.core.v1.ContainerStateRunning + map: + fields: + - name: startedAt + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} +- name: io.k8s.api.core.v1.ContainerStateTerminated + map: + fields: + - name: containerID + type: + scalar: string + - name: exitCode + type: + scalar: numeric + default: 0 + - name: finishedAt + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: signal + type: + scalar: numeric + - name: startedAt + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} +- name: io.k8s.api.core.v1.ContainerStateWaiting + map: + fields: + - name: message + type: + scalar: string + - name: reason + type: + scalar: string +- name: io.k8s.api.core.v1.ContainerStatus + map: + fields: + - name: containerID + type: + scalar: string + - name: image + type: + scalar: string + default: "" + - name: imageID + type: + scalar: string + default: "" + - name: lastState + type: + namedType: io.k8s.api.core.v1.ContainerState + default: {} + - name: name + type: + scalar: string + default: "" + - name: ready + type: + scalar: boolean + default: false + - name: restartCount + type: + scalar: numeric + default: 0 + - name: started + type: + scalar: boolean + - name: state + type: + namedType: io.k8s.api.core.v1.ContainerState + default: {} +- name: io.k8s.api.core.v1.DaemonEndpoint + map: + fields: + - name: Port + type: + scalar: numeric + default: 0 +- name: io.k8s.api.core.v1.DownwardAPIProjection + map: + fields: + - name: items + type: + list: + elementType: + namedType: io.k8s.api.core.v1.DownwardAPIVolumeFile + elementRelationship: atomic +- name: io.k8s.api.core.v1.DownwardAPIVolumeFile + map: + fields: + - name: fieldRef + type: + namedType: io.k8s.api.core.v1.ObjectFieldSelector + - name: mode + type: + scalar: numeric + - name: path + type: + scalar: string + default: "" + - name: resourceFieldRef + type: + namedType: io.k8s.api.core.v1.ResourceFieldSelector +- name: io.k8s.api.core.v1.DownwardAPIVolumeSource + map: + fields: + - name: defaultMode + type: + scalar: numeric + - name: items + type: + list: + elementType: + namedType: io.k8s.api.core.v1.DownwardAPIVolumeFile + elementRelationship: atomic +- name: io.k8s.api.core.v1.EmptyDirVolumeSource + map: + fields: + - name: medium + type: + scalar: string + - name: sizeLimit + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.core.v1.EndpointAddress + map: + fields: + - name: hostname + type: + scalar: string + - name: ip + type: + scalar: string + default: "" + - name: nodeName + type: + scalar: string + - name: targetRef + type: + namedType: io.k8s.api.core.v1.ObjectReference +- name: io.k8s.api.core.v1.EndpointPort + map: + fields: + - name: appProtocol + type: + scalar: string + - name: name + type: + scalar: string + - name: port + type: + scalar: numeric + default: 0 + - name: protocol + type: + scalar: string +- name: io.k8s.api.core.v1.EndpointSubset + map: + fields: + - name: addresses + type: + list: + elementType: + namedType: io.k8s.api.core.v1.EndpointAddress + elementRelationship: atomic + - name: notReadyAddresses + type: + list: + elementType: + namedType: io.k8s.api.core.v1.EndpointAddress + elementRelationship: atomic + - name: ports + type: + list: + elementType: + namedType: io.k8s.api.core.v1.EndpointPort + elementRelationship: atomic +- name: io.k8s.api.core.v1.Endpoints + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: subsets + type: + list: + elementType: + namedType: io.k8s.api.core.v1.EndpointSubset + elementRelationship: atomic +- name: io.k8s.api.core.v1.EnvFromSource + map: + fields: + - name: configMapRef + type: + namedType: io.k8s.api.core.v1.ConfigMapEnvSource + - name: prefix + type: + scalar: string + - name: secretRef + type: + namedType: io.k8s.api.core.v1.SecretEnvSource +- name: io.k8s.api.core.v1.EnvVar + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: value + type: + scalar: string + - name: valueFrom + type: + namedType: io.k8s.api.core.v1.EnvVarSource +- name: io.k8s.api.core.v1.EnvVarSource + map: + fields: + - name: configMapKeyRef + type: + namedType: io.k8s.api.core.v1.ConfigMapKeySelector + - name: fieldRef + type: + namedType: io.k8s.api.core.v1.ObjectFieldSelector + - name: resourceFieldRef + type: + namedType: io.k8s.api.core.v1.ResourceFieldSelector + - name: secretKeyRef + type: + namedType: io.k8s.api.core.v1.SecretKeySelector +- name: io.k8s.api.core.v1.EphemeralContainer + map: + fields: + - name: args + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: command + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: env + type: + list: + elementType: + namedType: io.k8s.api.core.v1.EnvVar + elementRelationship: associative + keys: + - name + - name: envFrom + type: + list: + elementType: + namedType: io.k8s.api.core.v1.EnvFromSource + elementRelationship: atomic + - name: image + type: + scalar: string + - name: imagePullPolicy + type: + scalar: string + - name: lifecycle + type: + namedType: io.k8s.api.core.v1.Lifecycle + - name: livenessProbe + type: + namedType: io.k8s.api.core.v1.Probe + - name: name + type: + scalar: string + default: "" + - name: ports + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ContainerPort + elementRelationship: atomic + - name: readinessProbe + type: + namedType: io.k8s.api.core.v1.Probe + - name: resources + type: + namedType: io.k8s.api.core.v1.ResourceRequirements + default: {} + - name: securityContext + type: + namedType: io.k8s.api.core.v1.SecurityContext + - name: startupProbe + type: + namedType: io.k8s.api.core.v1.Probe + - name: stdin + type: + scalar: boolean + - name: stdinOnce + type: + scalar: boolean + - name: targetContainerName + type: + scalar: string + - name: terminationMessagePath + type: + scalar: string + - name: terminationMessagePolicy + type: + scalar: string + - name: tty + type: + scalar: boolean + - name: volumeDevices + type: + list: + elementType: + namedType: io.k8s.api.core.v1.VolumeDevice + elementRelationship: associative + keys: + - devicePath + - name: volumeMounts + type: + list: + elementType: + namedType: io.k8s.api.core.v1.VolumeMount + elementRelationship: associative + keys: + - mountPath + - name: workingDir + type: + scalar: string +- name: io.k8s.api.core.v1.EphemeralVolumeSource + map: + fields: + - name: volumeClaimTemplate + type: + namedType: io.k8s.api.core.v1.PersistentVolumeClaimTemplate +- name: io.k8s.api.core.v1.Event + map: + fields: + - name: action + type: + scalar: string + - name: apiVersion + type: + scalar: string + - name: count + type: + scalar: numeric + - name: eventTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime + default: {} + - name: firstTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: involvedObject + type: + namedType: io.k8s.api.core.v1.ObjectReference + default: {} + - name: kind + type: + scalar: string + - name: lastTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: reason + type: + scalar: string + - name: related + type: + namedType: io.k8s.api.core.v1.ObjectReference + - name: reportingComponent + type: + scalar: string + default: "" + - name: reportingInstance + type: + scalar: string + default: "" + - name: series + type: + namedType: io.k8s.api.core.v1.EventSeries + - name: source + type: + namedType: io.k8s.api.core.v1.EventSource + default: {} + - name: type + type: + scalar: string +- name: io.k8s.api.core.v1.EventSeries + map: + fields: + - name: count + type: + scalar: numeric + - name: lastObservedTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime + default: {} +- name: io.k8s.api.core.v1.EventSource + map: + fields: + - name: component + type: + scalar: string + - name: host + type: + scalar: string +- name: io.k8s.api.core.v1.ExecAction + map: + fields: + - name: command + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.core.v1.FCVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: lun + type: + scalar: numeric + - name: readOnly + type: + scalar: boolean + - name: targetWWNs + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: wwids + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.core.v1.FlexPersistentVolumeSource + map: + fields: + - name: driver + type: + scalar: string + default: "" + - name: fsType + type: + scalar: string + - name: options + type: + map: + elementType: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.SecretReference +- name: io.k8s.api.core.v1.FlexVolumeSource + map: + fields: + - name: driver + type: + scalar: string + default: "" + - name: fsType + type: + scalar: string + - name: options + type: + map: + elementType: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.LocalObjectReference +- name: io.k8s.api.core.v1.FlockerVolumeSource + map: + fields: + - name: datasetName + type: + scalar: string + - name: datasetUUID + type: + scalar: string +- name: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: partition + type: + scalar: numeric + - name: pdName + type: + scalar: string + default: "" + - name: readOnly + type: + scalar: boolean +- name: io.k8s.api.core.v1.GitRepoVolumeSource + map: + fields: + - name: directory + type: + scalar: string + - name: repository + type: + scalar: string + default: "" + - name: revision + type: + scalar: string +- name: io.k8s.api.core.v1.GlusterfsPersistentVolumeSource + map: + fields: + - name: endpoints + type: + scalar: string + default: "" + - name: endpointsNamespace + type: + scalar: string + - name: path + type: + scalar: string + default: "" + - name: readOnly + type: + scalar: boolean +- name: io.k8s.api.core.v1.GlusterfsVolumeSource + map: + fields: + - name: endpoints + type: + scalar: string + default: "" + - name: path + type: + scalar: string + default: "" + - name: readOnly + type: + scalar: boolean +- name: io.k8s.api.core.v1.HTTPGetAction + map: + fields: + - name: host + type: + scalar: string + - name: httpHeaders + type: + list: + elementType: + namedType: io.k8s.api.core.v1.HTTPHeader + elementRelationship: atomic + - name: path + type: + scalar: string + - name: port + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + default: {} + - name: scheme + type: + scalar: string +- name: io.k8s.api.core.v1.HTTPHeader + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: value + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.Handler + map: + fields: + - name: exec + type: + namedType: io.k8s.api.core.v1.ExecAction + - name: httpGet + type: + namedType: io.k8s.api.core.v1.HTTPGetAction + - name: tcpSocket + type: + namedType: io.k8s.api.core.v1.TCPSocketAction +- name: io.k8s.api.core.v1.HostAlias + map: + fields: + - name: hostnames + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: ip + type: + scalar: string +- name: io.k8s.api.core.v1.HostPathVolumeSource + map: + fields: + - name: path + type: + scalar: string + default: "" + - name: type + type: + scalar: string +- name: io.k8s.api.core.v1.ISCSIPersistentVolumeSource + map: + fields: + - name: chapAuthDiscovery + type: + scalar: boolean + - name: chapAuthSession + type: + scalar: boolean + - name: fsType + type: + scalar: string + - name: initiatorName + type: + scalar: string + - name: iqn + type: + scalar: string + default: "" + - name: iscsiInterface + type: + scalar: string + - name: lun + type: + scalar: numeric + default: 0 + - name: portals + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.SecretReference + - name: targetPortal + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.ISCSIVolumeSource + map: + fields: + - name: chapAuthDiscovery + type: + scalar: boolean + - name: chapAuthSession + type: + scalar: boolean + - name: fsType + type: + scalar: string + - name: initiatorName + type: + scalar: string + - name: iqn + type: + scalar: string + default: "" + - name: iscsiInterface + type: + scalar: string + - name: lun + type: + scalar: numeric + default: 0 + - name: portals + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.LocalObjectReference + - name: targetPortal + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.KeyToPath + map: + fields: + - name: key + type: + scalar: string + default: "" + - name: mode + type: + scalar: numeric + - name: path + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.Lifecycle + map: + fields: + - name: postStart + type: + namedType: io.k8s.api.core.v1.Handler + - name: preStop + type: + namedType: io.k8s.api.core.v1.Handler +- name: io.k8s.api.core.v1.LimitRange + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.core.v1.LimitRangeSpec + default: {} +- name: io.k8s.api.core.v1.LimitRangeItem + map: + fields: + - name: default + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: defaultRequest + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: max + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: maxLimitRequestRatio + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: min + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.LimitRangeSpec + map: + fields: + - name: limits + type: + list: + elementType: + namedType: io.k8s.api.core.v1.LimitRangeItem + elementRelationship: atomic +- name: io.k8s.api.core.v1.LoadBalancerIngress + map: + fields: + - name: hostname + type: + scalar: string + - name: ip + type: + scalar: string + - name: ports + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PortStatus + elementRelationship: atomic +- name: io.k8s.api.core.v1.LoadBalancerStatus + map: + fields: + - name: ingress + type: + list: + elementType: + namedType: io.k8s.api.core.v1.LoadBalancerIngress + elementRelationship: atomic +- name: io.k8s.api.core.v1.LocalObjectReference + map: + fields: + - name: name + type: + scalar: string +- name: io.k8s.api.core.v1.LocalVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: path + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.NFSVolumeSource + map: + fields: + - name: path + type: + scalar: string + default: "" + - name: readOnly + type: + scalar: boolean + - name: server + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.Namespace + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.core.v1.NamespaceSpec + default: {} + - name: status + type: + namedType: io.k8s.api.core.v1.NamespaceStatus + default: {} +- name: io.k8s.api.core.v1.NamespaceCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.NamespaceSpec + map: + fields: + - name: finalizers + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.core.v1.NamespaceStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.core.v1.NamespaceCondition + elementRelationship: associative + keys: + - type + - name: phase + type: + scalar: string +- name: io.k8s.api.core.v1.Node + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.core.v1.NodeSpec + default: {} + - name: status + type: + namedType: io.k8s.api.core.v1.NodeStatus + default: {} +- name: io.k8s.api.core.v1.NodeAddress + map: + fields: + - name: address + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.NodeAffinity + map: + fields: + - name: preferredDuringSchedulingIgnoredDuringExecution + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PreferredSchedulingTerm + elementRelationship: atomic + - name: requiredDuringSchedulingIgnoredDuringExecution + type: + namedType: io.k8s.api.core.v1.NodeSelector +- name: io.k8s.api.core.v1.NodeCondition + map: + fields: + - name: lastHeartbeatTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.NodeConfigSource + map: + fields: + - name: configMap + type: + namedType: io.k8s.api.core.v1.ConfigMapNodeConfigSource +- name: io.k8s.api.core.v1.NodeConfigStatus + map: + fields: + - name: active + type: + namedType: io.k8s.api.core.v1.NodeConfigSource + - name: assigned + type: + namedType: io.k8s.api.core.v1.NodeConfigSource + - name: error + type: + scalar: string + - name: lastKnownGood + type: + namedType: io.k8s.api.core.v1.NodeConfigSource +- name: io.k8s.api.core.v1.NodeDaemonEndpoints + map: + fields: + - name: kubeletEndpoint + type: + namedType: io.k8s.api.core.v1.DaemonEndpoint + default: {} +- name: io.k8s.api.core.v1.NodeSelector + map: + fields: + - name: nodeSelectorTerms + type: + list: + elementType: + namedType: io.k8s.api.core.v1.NodeSelectorTerm + elementRelationship: atomic +- name: io.k8s.api.core.v1.NodeSelectorRequirement + map: + fields: + - name: key + type: + scalar: string + default: "" + - name: operator + type: + scalar: string + default: "" + - name: values + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.core.v1.NodeSelectorTerm + map: + fields: + - name: matchExpressions + type: + list: + elementType: + namedType: io.k8s.api.core.v1.NodeSelectorRequirement + elementRelationship: atomic + - name: matchFields + type: + list: + elementType: + namedType: io.k8s.api.core.v1.NodeSelectorRequirement + elementRelationship: atomic +- name: io.k8s.api.core.v1.NodeSpec + map: + fields: + - name: configSource + type: + namedType: io.k8s.api.core.v1.NodeConfigSource + - name: externalID + type: + scalar: string + - name: podCIDR + type: + scalar: string + - name: podCIDRs + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: providerID + type: + scalar: string + - name: taints + type: + list: + elementType: + namedType: io.k8s.api.core.v1.Taint + elementRelationship: atomic + - name: unschedulable + type: + scalar: boolean +- name: io.k8s.api.core.v1.NodeStatus + map: + fields: + - name: addresses + type: + list: + elementType: + namedType: io.k8s.api.core.v1.NodeAddress + elementRelationship: associative + keys: + - type + - name: allocatable + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: capacity + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.core.v1.NodeCondition + elementRelationship: associative + keys: + - type + - name: config + type: + namedType: io.k8s.api.core.v1.NodeConfigStatus + - name: daemonEndpoints + type: + namedType: io.k8s.api.core.v1.NodeDaemonEndpoints + default: {} + - name: images + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ContainerImage + elementRelationship: atomic + - name: nodeInfo + type: + namedType: io.k8s.api.core.v1.NodeSystemInfo + default: {} + - name: phase + type: + scalar: string + - name: volumesAttached + type: + list: + elementType: + namedType: io.k8s.api.core.v1.AttachedVolume + elementRelationship: atomic + - name: volumesInUse + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.core.v1.NodeSystemInfo + map: + fields: + - name: architecture + type: + scalar: string + default: "" + - name: bootID + type: + scalar: string + default: "" + - name: containerRuntimeVersion + type: + scalar: string + default: "" + - name: kernelVersion + type: + scalar: string + default: "" + - name: kubeProxyVersion + type: + scalar: string + default: "" + - name: kubeletVersion + type: + scalar: string + default: "" + - name: machineID + type: + scalar: string + default: "" + - name: operatingSystem + type: + scalar: string + default: "" + - name: osImage + type: + scalar: string + default: "" + - name: systemUUID + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.ObjectFieldSelector + map: + fields: + - name: apiVersion + type: + scalar: string + - name: fieldPath + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.ObjectReference + map: + fields: + - name: apiVersion + type: + scalar: string + - name: fieldPath + type: + scalar: string + - name: kind + type: + scalar: string + - name: name + type: + scalar: string + - name: namespace + type: + scalar: string + - name: resourceVersion + type: + scalar: string + - name: uid + type: + scalar: string +- name: io.k8s.api.core.v1.PersistentVolume + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.core.v1.PersistentVolumeSpec + default: {} + - name: status + type: + namedType: io.k8s.api.core.v1.PersistentVolumeStatus + default: {} +- name: io.k8s.api.core.v1.PersistentVolumeClaim + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.core.v1.PersistentVolumeClaimSpec + default: {} + - name: status + type: + namedType: io.k8s.api.core.v1.PersistentVolumeClaimStatus + default: {} +- name: io.k8s.api.core.v1.PersistentVolumeClaimCondition + map: + fields: + - name: lastProbeTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.PersistentVolumeClaimSpec + map: + fields: + - name: accessModes + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: dataSource + type: + namedType: io.k8s.api.core.v1.TypedLocalObjectReference + - name: resources + type: + namedType: io.k8s.api.core.v1.ResourceRequirements + default: {} + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: storageClassName + type: + scalar: string + - name: volumeMode + type: + scalar: string + - name: volumeName + type: + scalar: string +- name: io.k8s.api.core.v1.PersistentVolumeClaimStatus + map: + fields: + - name: accessModes + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: capacity + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PersistentVolumeClaimCondition + elementRelationship: associative + keys: + - type + - name: phase + type: + scalar: string +- name: io.k8s.api.core.v1.PersistentVolumeClaimTemplate + map: + fields: + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.core.v1.PersistentVolumeClaimSpec + default: {} +- name: io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource + map: + fields: + - name: claimName + type: + scalar: string + default: "" + - name: readOnly + type: + scalar: boolean +- name: io.k8s.api.core.v1.PersistentVolumeSpec + map: + fields: + - name: accessModes + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: awsElasticBlockStore + type: + namedType: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource + - name: azureDisk + type: + namedType: io.k8s.api.core.v1.AzureDiskVolumeSource + - name: azureFile + type: + namedType: io.k8s.api.core.v1.AzureFilePersistentVolumeSource + - name: capacity + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: cephfs + type: + namedType: io.k8s.api.core.v1.CephFSPersistentVolumeSource + - name: cinder + type: + namedType: io.k8s.api.core.v1.CinderPersistentVolumeSource + - name: claimRef + type: + namedType: io.k8s.api.core.v1.ObjectReference + - name: csi + type: + namedType: io.k8s.api.core.v1.CSIPersistentVolumeSource + - name: fc + type: + namedType: io.k8s.api.core.v1.FCVolumeSource + - name: flexVolume + type: + namedType: io.k8s.api.core.v1.FlexPersistentVolumeSource + - name: flocker + type: + namedType: io.k8s.api.core.v1.FlockerVolumeSource + - name: gcePersistentDisk + type: + namedType: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource + - name: glusterfs + type: + namedType: io.k8s.api.core.v1.GlusterfsPersistentVolumeSource + - name: hostPath + type: + namedType: io.k8s.api.core.v1.HostPathVolumeSource + - name: iscsi + type: + namedType: io.k8s.api.core.v1.ISCSIPersistentVolumeSource + - name: local + type: + namedType: io.k8s.api.core.v1.LocalVolumeSource + - name: mountOptions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: nfs + type: + namedType: io.k8s.api.core.v1.NFSVolumeSource + - name: nodeAffinity + type: + namedType: io.k8s.api.core.v1.VolumeNodeAffinity + - name: persistentVolumeReclaimPolicy + type: + scalar: string + - name: photonPersistentDisk + type: + namedType: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource + - name: portworxVolume + type: + namedType: io.k8s.api.core.v1.PortworxVolumeSource + - name: quobyte + type: + namedType: io.k8s.api.core.v1.QuobyteVolumeSource + - name: rbd + type: + namedType: io.k8s.api.core.v1.RBDPersistentVolumeSource + - name: scaleIO + type: + namedType: io.k8s.api.core.v1.ScaleIOPersistentVolumeSource + - name: storageClassName + type: + scalar: string + - name: storageos + type: + namedType: io.k8s.api.core.v1.StorageOSPersistentVolumeSource + - name: volumeMode + type: + scalar: string + - name: vsphereVolume + type: + namedType: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource +- name: io.k8s.api.core.v1.PersistentVolumeStatus + map: + fields: + - name: message + type: + scalar: string + - name: phase + type: + scalar: string + - name: reason + type: + scalar: string +- name: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: pdID + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.Pod + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.core.v1.PodSpec + default: {} + - name: status + type: + namedType: io.k8s.api.core.v1.PodStatus + default: {} +- name: io.k8s.api.core.v1.PodAffinity + map: + fields: + - name: preferredDuringSchedulingIgnoredDuringExecution + type: + list: + elementType: + namedType: io.k8s.api.core.v1.WeightedPodAffinityTerm + elementRelationship: atomic + - name: requiredDuringSchedulingIgnoredDuringExecution + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PodAffinityTerm + elementRelationship: atomic +- name: io.k8s.api.core.v1.PodAffinityTerm + map: + fields: + - name: labelSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: namespaceSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: namespaces + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: topologyKey + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.PodAntiAffinity + map: + fields: + - name: preferredDuringSchedulingIgnoredDuringExecution + type: + list: + elementType: + namedType: io.k8s.api.core.v1.WeightedPodAffinityTerm + elementRelationship: atomic + - name: requiredDuringSchedulingIgnoredDuringExecution + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PodAffinityTerm + elementRelationship: atomic +- name: io.k8s.api.core.v1.PodCondition + map: + fields: + - name: lastProbeTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.PodDNSConfig + map: + fields: + - name: nameservers + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: options + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PodDNSConfigOption + elementRelationship: atomic + - name: searches + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.core.v1.PodDNSConfigOption + map: + fields: + - name: name + type: + scalar: string + - name: value + type: + scalar: string +- name: io.k8s.api.core.v1.PodIP + map: + fields: + - name: ip + type: + scalar: string +- name: io.k8s.api.core.v1.PodReadinessGate + map: + fields: + - name: conditionType + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.PodSecurityContext + map: + fields: + - name: fsGroup + type: + scalar: numeric + - name: fsGroupChangePolicy + type: + scalar: string + - name: runAsGroup + type: + scalar: numeric + - name: runAsNonRoot + type: + scalar: boolean + - name: runAsUser + type: + scalar: numeric + - name: seLinuxOptions + type: + namedType: io.k8s.api.core.v1.SELinuxOptions + - name: seccompProfile + type: + namedType: io.k8s.api.core.v1.SeccompProfile + - name: supplementalGroups + type: + list: + elementType: + scalar: numeric + elementRelationship: atomic + - name: sysctls + type: + list: + elementType: + namedType: io.k8s.api.core.v1.Sysctl + elementRelationship: atomic + - name: windowsOptions + type: + namedType: io.k8s.api.core.v1.WindowsSecurityContextOptions +- name: io.k8s.api.core.v1.PodSpec + map: + fields: + - name: activeDeadlineSeconds + type: + scalar: numeric + - name: affinity + type: + namedType: io.k8s.api.core.v1.Affinity + - name: automountServiceAccountToken + type: + scalar: boolean + - name: containers + type: + list: + elementType: + namedType: io.k8s.api.core.v1.Container + elementRelationship: associative + keys: + - name + - name: dnsConfig + type: + namedType: io.k8s.api.core.v1.PodDNSConfig + - name: dnsPolicy + type: + scalar: string + - name: enableServiceLinks + type: + scalar: boolean + - name: ephemeralContainers + type: + list: + elementType: + namedType: io.k8s.api.core.v1.EphemeralContainer + elementRelationship: associative + keys: + - name + - name: hostAliases + type: + list: + elementType: + namedType: io.k8s.api.core.v1.HostAlias + elementRelationship: associative + keys: + - ip + - name: hostIPC + type: + scalar: boolean + - name: hostNetwork + type: + scalar: boolean + - name: hostPID + type: + scalar: boolean + - name: hostname + type: + scalar: string + - name: imagePullSecrets + type: + list: + elementType: + namedType: io.k8s.api.core.v1.LocalObjectReference + elementRelationship: associative + keys: + - name + - name: initContainers + type: + list: + elementType: + namedType: io.k8s.api.core.v1.Container + elementRelationship: associative + keys: + - name + - name: nodeName + type: + scalar: string + - name: nodeSelector + type: + map: + elementType: + scalar: string + - name: overhead + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: preemptionPolicy + type: + scalar: string + - name: priority + type: + scalar: numeric + - name: priorityClassName + type: + scalar: string + - name: readinessGates + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PodReadinessGate + elementRelationship: atomic + - name: restartPolicy + type: + scalar: string + - name: runtimeClassName + type: + scalar: string + - name: schedulerName + type: + scalar: string + - name: securityContext + type: + namedType: io.k8s.api.core.v1.PodSecurityContext + - name: serviceAccount + type: + scalar: string + - name: serviceAccountName + type: + scalar: string + - name: setHostnameAsFQDN + type: + scalar: boolean + - name: shareProcessNamespace + type: + scalar: boolean + - name: subdomain + type: + scalar: string + - name: terminationGracePeriodSeconds + type: + scalar: numeric + - name: tolerations + type: + list: + elementType: + namedType: io.k8s.api.core.v1.Toleration + elementRelationship: atomic + - name: topologySpreadConstraints + type: + list: + elementType: + namedType: io.k8s.api.core.v1.TopologySpreadConstraint + elementRelationship: associative + keys: + - topologyKey + - whenUnsatisfiable + - name: volumes + type: + list: + elementType: + namedType: io.k8s.api.core.v1.Volume + elementRelationship: associative + keys: + - name +- name: io.k8s.api.core.v1.PodStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PodCondition + elementRelationship: associative + keys: + - type + - name: containerStatuses + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ContainerStatus + elementRelationship: atomic + - name: ephemeralContainerStatuses + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ContainerStatus + elementRelationship: atomic + - name: hostIP + type: + scalar: string + - name: initContainerStatuses + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ContainerStatus + elementRelationship: atomic + - name: message + type: + scalar: string + - name: nominatedNodeName + type: + scalar: string + - name: phase + type: + scalar: string + - name: podIP + type: + scalar: string + - name: podIPs + type: + list: + elementType: + namedType: io.k8s.api.core.v1.PodIP + elementRelationship: associative + keys: + - ip + - name: qosClass + type: + scalar: string + - name: reason + type: + scalar: string + - name: startTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time +- name: io.k8s.api.core.v1.PodTemplate + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} +- name: io.k8s.api.core.v1.PodTemplateSpec + map: + fields: + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.core.v1.PodSpec + default: {} +- name: io.k8s.api.core.v1.PortStatus + map: + fields: + - name: error + type: + scalar: string + - name: port + type: + scalar: numeric + default: 0 + - name: protocol + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.PortworxVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: volumeID + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.PreferredSchedulingTerm + map: + fields: + - name: preference + type: + namedType: io.k8s.api.core.v1.NodeSelectorTerm + default: {} + - name: weight + type: + scalar: numeric + default: 0 +- name: io.k8s.api.core.v1.Probe + map: + fields: + - name: exec + type: + namedType: io.k8s.api.core.v1.ExecAction + - name: failureThreshold + type: + scalar: numeric + - name: httpGet + type: + namedType: io.k8s.api.core.v1.HTTPGetAction + - name: initialDelaySeconds + type: + scalar: numeric + - name: periodSeconds + type: + scalar: numeric + - name: successThreshold + type: + scalar: numeric + - name: tcpSocket + type: + namedType: io.k8s.api.core.v1.TCPSocketAction + - name: terminationGracePeriodSeconds + type: + scalar: numeric + - name: timeoutSeconds + type: + scalar: numeric +- name: io.k8s.api.core.v1.ProjectedVolumeSource + map: + fields: + - name: defaultMode + type: + scalar: numeric + - name: sources + type: + list: + elementType: + namedType: io.k8s.api.core.v1.VolumeProjection + elementRelationship: atomic +- name: io.k8s.api.core.v1.QuobyteVolumeSource + map: + fields: + - name: group + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: registry + type: + scalar: string + default: "" + - name: tenant + type: + scalar: string + - name: user + type: + scalar: string + - name: volume + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.RBDPersistentVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: image + type: + scalar: string + default: "" + - name: keyring + type: + scalar: string + - name: monitors + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: pool + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.SecretReference + - name: user + type: + scalar: string +- name: io.k8s.api.core.v1.RBDVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: image + type: + scalar: string + default: "" + - name: keyring + type: + scalar: string + - name: monitors + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: pool + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.LocalObjectReference + - name: user + type: + scalar: string +- name: io.k8s.api.core.v1.ReplicationController + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.core.v1.ReplicationControllerSpec + default: {} + - name: status + type: + namedType: io.k8s.api.core.v1.ReplicationControllerStatus + default: {} +- name: io.k8s.api.core.v1.ReplicationControllerCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.ReplicationControllerSpec + map: + fields: + - name: minReadySeconds + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: selector + type: + map: + elementType: + scalar: string + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec +- name: io.k8s.api.core.v1.ReplicationControllerStatus + map: + fields: + - name: availableReplicas + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ReplicationControllerCondition + elementRelationship: associative + keys: + - type + - name: fullyLabeledReplicas + type: + scalar: numeric + - name: observedGeneration + type: + scalar: numeric + - name: readyReplicas + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + default: 0 +- name: io.k8s.api.core.v1.ResourceFieldSelector + map: + fields: + - name: containerName + type: + scalar: string + - name: divisor + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + default: {} + - name: resource + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.ResourceQuota + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.core.v1.ResourceQuotaSpec + default: {} + - name: status + type: + namedType: io.k8s.api.core.v1.ResourceQuotaStatus + default: {} +- name: io.k8s.api.core.v1.ResourceQuotaSpec + map: + fields: + - name: hard + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: scopeSelector + type: + namedType: io.k8s.api.core.v1.ScopeSelector + - name: scopes + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.core.v1.ResourceQuotaStatus + map: + fields: + - name: hard + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: used + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.core.v1.ResourceRequirements + map: + fields: + - name: limits + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: requests + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.core.v1.SELinuxOptions + map: + fields: + - name: level + type: + scalar: string + - name: role + type: + scalar: string + - name: type + type: + scalar: string + - name: user + type: + scalar: string +- name: io.k8s.api.core.v1.ScaleIOPersistentVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: gateway + type: + scalar: string + default: "" + - name: protectionDomain + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.SecretReference + - name: sslEnabled + type: + scalar: boolean + - name: storageMode + type: + scalar: string + - name: storagePool + type: + scalar: string + - name: system + type: + scalar: string + default: "" + - name: volumeName + type: + scalar: string +- name: io.k8s.api.core.v1.ScaleIOVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: gateway + type: + scalar: string + default: "" + - name: protectionDomain + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.LocalObjectReference + - name: sslEnabled + type: + scalar: boolean + - name: storageMode + type: + scalar: string + - name: storagePool + type: + scalar: string + - name: system + type: + scalar: string + default: "" + - name: volumeName + type: + scalar: string +- name: io.k8s.api.core.v1.ScopeSelector + map: + fields: + - name: matchExpressions + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ScopedResourceSelectorRequirement + elementRelationship: atomic +- name: io.k8s.api.core.v1.ScopedResourceSelectorRequirement + map: + fields: + - name: operator + type: + scalar: string + default: "" + - name: scopeName + type: + scalar: string + default: "" + - name: values + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.core.v1.SeccompProfile + map: + fields: + - name: localhostProfile + type: + scalar: string + - name: type + type: + scalar: string + default: "" + unions: + - discriminator: type + fields: + - fieldName: localhostProfile + discriminatorValue: LocalhostProfile +- name: io.k8s.api.core.v1.Secret + map: + fields: + - name: apiVersion + type: + scalar: string + - name: data + type: + map: + elementType: + scalar: string + - name: immutable + type: + scalar: boolean + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: stringData + type: + map: + elementType: + scalar: string + - name: type + type: + scalar: string +- name: io.k8s.api.core.v1.SecretEnvSource + map: + fields: + - name: name + type: + scalar: string + - name: optional + type: + scalar: boolean +- name: io.k8s.api.core.v1.SecretKeySelector + map: + fields: + - name: key + type: + scalar: string + default: "" + - name: name + type: + scalar: string + - name: optional + type: + scalar: boolean +- name: io.k8s.api.core.v1.SecretProjection + map: + fields: + - name: items + type: + list: + elementType: + namedType: io.k8s.api.core.v1.KeyToPath + elementRelationship: atomic + - name: name + type: + scalar: string + - name: optional + type: + scalar: boolean +- name: io.k8s.api.core.v1.SecretReference + map: + fields: + - name: name + type: + scalar: string + - name: namespace + type: + scalar: string +- name: io.k8s.api.core.v1.SecretVolumeSource + map: + fields: + - name: defaultMode + type: + scalar: numeric + - name: items + type: + list: + elementType: + namedType: io.k8s.api.core.v1.KeyToPath + elementRelationship: atomic + - name: optional + type: + scalar: boolean + - name: secretName + type: + scalar: string +- name: io.k8s.api.core.v1.SecurityContext + map: + fields: + - name: allowPrivilegeEscalation + type: + scalar: boolean + - name: capabilities + type: + namedType: io.k8s.api.core.v1.Capabilities + - name: privileged + type: + scalar: boolean + - name: procMount + type: + scalar: string + - name: readOnlyRootFilesystem + type: + scalar: boolean + - name: runAsGroup + type: + scalar: numeric + - name: runAsNonRoot + type: + scalar: boolean + - name: runAsUser + type: + scalar: numeric + - name: seLinuxOptions + type: + namedType: io.k8s.api.core.v1.SELinuxOptions + - name: seccompProfile + type: + namedType: io.k8s.api.core.v1.SeccompProfile + - name: windowsOptions + type: + namedType: io.k8s.api.core.v1.WindowsSecurityContextOptions +- name: io.k8s.api.core.v1.Service + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.core.v1.ServiceSpec + default: {} + - name: status + type: + namedType: io.k8s.api.core.v1.ServiceStatus + default: {} +- name: io.k8s.api.core.v1.ServiceAccount + map: + fields: + - name: apiVersion + type: + scalar: string + - name: automountServiceAccountToken + type: + scalar: boolean + - name: imagePullSecrets + type: + list: + elementType: + namedType: io.k8s.api.core.v1.LocalObjectReference + elementRelationship: atomic + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: secrets + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ObjectReference + elementRelationship: associative + keys: + - name +- name: io.k8s.api.core.v1.ServiceAccountTokenProjection + map: + fields: + - name: audience + type: + scalar: string + - name: expirationSeconds + type: + scalar: numeric + - name: path + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.ServicePort + map: + fields: + - name: appProtocol + type: + scalar: string + - name: name + type: + scalar: string + - name: nodePort + type: + scalar: numeric + - name: port + type: + scalar: numeric + default: 0 + - name: protocol + type: + scalar: string + default: TCP + - name: targetPort + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + default: {} +- name: io.k8s.api.core.v1.ServiceSpec + map: + fields: + - name: allocateLoadBalancerNodePorts + type: + scalar: boolean + - name: clusterIP + type: + scalar: string + - name: clusterIPs + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: externalIPs + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: externalName + type: + scalar: string + - name: externalTrafficPolicy + type: + scalar: string + - name: healthCheckNodePort + type: + scalar: numeric + - name: internalTrafficPolicy + type: + scalar: string + - name: ipFamilies + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: ipFamilyPolicy + type: + scalar: string + - name: loadBalancerClass + type: + scalar: string + - name: loadBalancerIP + type: + scalar: string + - name: loadBalancerSourceRanges + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: ports + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ServicePort + elementRelationship: associative + keys: + - port + - protocol + - name: publishNotReadyAddresses + type: + scalar: boolean + - name: selector + type: + map: + elementType: + scalar: string + - name: sessionAffinity + type: + scalar: string + - name: sessionAffinityConfig + type: + namedType: io.k8s.api.core.v1.SessionAffinityConfig + - name: topologyKeys + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: type + type: + scalar: string +- name: io.k8s.api.core.v1.ServiceStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition + elementRelationship: associative + keys: + - type + - name: loadBalancer + type: + namedType: io.k8s.api.core.v1.LoadBalancerStatus + default: {} +- name: io.k8s.api.core.v1.SessionAffinityConfig + map: + fields: + - name: clientIP + type: + namedType: io.k8s.api.core.v1.ClientIPConfig +- name: io.k8s.api.core.v1.StorageOSPersistentVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.ObjectReference + - name: volumeName + type: + scalar: string + - name: volumeNamespace + type: + scalar: string +- name: io.k8s.api.core.v1.StorageOSVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: readOnly + type: + scalar: boolean + - name: secretRef + type: + namedType: io.k8s.api.core.v1.LocalObjectReference + - name: volumeName + type: + scalar: string + - name: volumeNamespace + type: + scalar: string +- name: io.k8s.api.core.v1.Sysctl + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: value + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.TCPSocketAction + map: + fields: + - name: host + type: + scalar: string + - name: port + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + default: {} +- name: io.k8s.api.core.v1.Taint + map: + fields: + - name: effect + type: + scalar: string + default: "" + - name: key + type: + scalar: string + default: "" + - name: timeAdded + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: value + type: + scalar: string +- name: io.k8s.api.core.v1.Toleration + map: + fields: + - name: effect + type: + scalar: string + - name: key + type: + scalar: string + - name: operator + type: + scalar: string + - name: tolerationSeconds + type: + scalar: numeric + - name: value + type: + scalar: string +- name: io.k8s.api.core.v1.TopologySelectorLabelRequirement + map: + fields: + - name: key + type: + scalar: string + default: "" + - name: values + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.core.v1.TopologySelectorTerm + map: + fields: + - name: matchLabelExpressions + type: + list: + elementType: + namedType: io.k8s.api.core.v1.TopologySelectorLabelRequirement + elementRelationship: atomic +- name: io.k8s.api.core.v1.TopologySpreadConstraint + map: + fields: + - name: labelSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: maxSkew + type: + scalar: numeric + default: 0 + - name: topologyKey + type: + scalar: string + default: "" + - name: whenUnsatisfiable + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.TypedLocalObjectReference + map: + fields: + - name: apiGroup + type: + scalar: string + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.Volume + map: + fields: + - name: awsElasticBlockStore + type: + namedType: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource + - name: azureDisk + type: + namedType: io.k8s.api.core.v1.AzureDiskVolumeSource + - name: azureFile + type: + namedType: io.k8s.api.core.v1.AzureFileVolumeSource + - name: cephfs + type: + namedType: io.k8s.api.core.v1.CephFSVolumeSource + - name: cinder + type: + namedType: io.k8s.api.core.v1.CinderVolumeSource + - name: configMap + type: + namedType: io.k8s.api.core.v1.ConfigMapVolumeSource + - name: csi + type: + namedType: io.k8s.api.core.v1.CSIVolumeSource + - name: downwardAPI + type: + namedType: io.k8s.api.core.v1.DownwardAPIVolumeSource + - name: emptyDir + type: + namedType: io.k8s.api.core.v1.EmptyDirVolumeSource + - name: ephemeral + type: + namedType: io.k8s.api.core.v1.EphemeralVolumeSource + - name: fc + type: + namedType: io.k8s.api.core.v1.FCVolumeSource + - name: flexVolume + type: + namedType: io.k8s.api.core.v1.FlexVolumeSource + - name: flocker + type: + namedType: io.k8s.api.core.v1.FlockerVolumeSource + - name: gcePersistentDisk + type: + namedType: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource + - name: gitRepo + type: + namedType: io.k8s.api.core.v1.GitRepoVolumeSource + - name: glusterfs + type: + namedType: io.k8s.api.core.v1.GlusterfsVolumeSource + - name: hostPath + type: + namedType: io.k8s.api.core.v1.HostPathVolumeSource + - name: iscsi + type: + namedType: io.k8s.api.core.v1.ISCSIVolumeSource + - name: name + type: + scalar: string + default: "" + - name: nfs + type: + namedType: io.k8s.api.core.v1.NFSVolumeSource + - name: persistentVolumeClaim + type: + namedType: io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource + - name: photonPersistentDisk + type: + namedType: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource + - name: portworxVolume + type: + namedType: io.k8s.api.core.v1.PortworxVolumeSource + - name: projected + type: + namedType: io.k8s.api.core.v1.ProjectedVolumeSource + - name: quobyte + type: + namedType: io.k8s.api.core.v1.QuobyteVolumeSource + - name: rbd + type: + namedType: io.k8s.api.core.v1.RBDVolumeSource + - name: scaleIO + type: + namedType: io.k8s.api.core.v1.ScaleIOVolumeSource + - name: secret + type: + namedType: io.k8s.api.core.v1.SecretVolumeSource + - name: storageos + type: + namedType: io.k8s.api.core.v1.StorageOSVolumeSource + - name: vsphereVolume + type: + namedType: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource +- name: io.k8s.api.core.v1.VolumeDevice + map: + fields: + - name: devicePath + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.VolumeMount + map: + fields: + - name: mountPath + type: + scalar: string + default: "" + - name: mountPropagation + type: + scalar: string + - name: name + type: + scalar: string + default: "" + - name: readOnly + type: + scalar: boolean + - name: subPath + type: + scalar: string + - name: subPathExpr + type: + scalar: string +- name: io.k8s.api.core.v1.VolumeNodeAffinity + map: + fields: + - name: required + type: + namedType: io.k8s.api.core.v1.NodeSelector +- name: io.k8s.api.core.v1.VolumeProjection + map: + fields: + - name: configMap + type: + namedType: io.k8s.api.core.v1.ConfigMapProjection + - name: downwardAPI + type: + namedType: io.k8s.api.core.v1.DownwardAPIProjection + - name: secret + type: + namedType: io.k8s.api.core.v1.SecretProjection + - name: serviceAccountToken + type: + namedType: io.k8s.api.core.v1.ServiceAccountTokenProjection +- name: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource + map: + fields: + - name: fsType + type: + scalar: string + - name: storagePolicyID + type: + scalar: string + - name: storagePolicyName + type: + scalar: string + - name: volumePath + type: + scalar: string + default: "" +- name: io.k8s.api.core.v1.WeightedPodAffinityTerm + map: + fields: + - name: podAffinityTerm + type: + namedType: io.k8s.api.core.v1.PodAffinityTerm + default: {} + - name: weight + type: + scalar: numeric + default: 0 +- name: io.k8s.api.core.v1.WindowsSecurityContextOptions + map: + fields: + - name: gmsaCredentialSpec + type: + scalar: string + - name: gmsaCredentialSpecName + type: + scalar: string + - name: runAsUserName + type: + scalar: string +- name: io.k8s.api.discovery.v1.Endpoint + map: + fields: + - name: addresses + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: conditions + type: + namedType: io.k8s.api.discovery.v1.EndpointConditions + default: {} + - name: deprecatedTopology + type: + map: + elementType: + scalar: string + - name: hints + type: + namedType: io.k8s.api.discovery.v1.EndpointHints + - name: hostname + type: + scalar: string + - name: nodeName + type: + scalar: string + - name: targetRef + type: + namedType: io.k8s.api.core.v1.ObjectReference + - name: zone + type: + scalar: string +- name: io.k8s.api.discovery.v1.EndpointConditions + map: + fields: + - name: ready + type: + scalar: boolean + - name: serving + type: + scalar: boolean + - name: terminating + type: + scalar: boolean +- name: io.k8s.api.discovery.v1.EndpointHints + map: + fields: + - name: forZones + type: + list: + elementType: + namedType: io.k8s.api.discovery.v1.ForZone + elementRelationship: atomic +- name: io.k8s.api.discovery.v1.EndpointPort + map: + fields: + - name: appProtocol + type: + scalar: string + - name: name + type: + scalar: string + - name: port + type: + scalar: numeric + - name: protocol + type: + scalar: string +- name: io.k8s.api.discovery.v1.EndpointSlice + map: + fields: + - name: addressType + type: + scalar: string + default: "" + - name: apiVersion + type: + scalar: string + - name: endpoints + type: + list: + elementType: + namedType: io.k8s.api.discovery.v1.Endpoint + elementRelationship: atomic + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: ports + type: + list: + elementType: + namedType: io.k8s.api.discovery.v1.EndpointPort + elementRelationship: atomic +- name: io.k8s.api.discovery.v1.ForZone + map: + fields: + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.discovery.v1beta1.Endpoint + map: + fields: + - name: addresses + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: conditions + type: + namedType: io.k8s.api.discovery.v1beta1.EndpointConditions + default: {} + - name: hints + type: + namedType: io.k8s.api.discovery.v1beta1.EndpointHints + - name: hostname + type: + scalar: string + - name: nodeName + type: + scalar: string + - name: targetRef + type: + namedType: io.k8s.api.core.v1.ObjectReference + - name: topology + type: + map: + elementType: + scalar: string +- name: io.k8s.api.discovery.v1beta1.EndpointConditions + map: + fields: + - name: ready + type: + scalar: boolean + - name: serving + type: + scalar: boolean + - name: terminating + type: + scalar: boolean +- name: io.k8s.api.discovery.v1beta1.EndpointHints + map: + fields: + - name: forZones + type: + list: + elementType: + namedType: io.k8s.api.discovery.v1beta1.ForZone + elementRelationship: atomic +- name: io.k8s.api.discovery.v1beta1.EndpointPort + map: + fields: + - name: appProtocol + type: + scalar: string + - name: name + type: + scalar: string + - name: port + type: + scalar: numeric + - name: protocol + type: + scalar: string +- name: io.k8s.api.discovery.v1beta1.EndpointSlice + map: + fields: + - name: addressType + type: + scalar: string + default: "" + - name: apiVersion + type: + scalar: string + - name: endpoints + type: + list: + elementType: + namedType: io.k8s.api.discovery.v1beta1.Endpoint + elementRelationship: atomic + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: ports + type: + list: + elementType: + namedType: io.k8s.api.discovery.v1beta1.EndpointPort + elementRelationship: atomic +- name: io.k8s.api.discovery.v1beta1.ForZone + map: + fields: + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.events.v1.Event + map: + fields: + - name: action + type: + scalar: string + - name: apiVersion + type: + scalar: string + - name: deprecatedCount + type: + scalar: numeric + - name: deprecatedFirstTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: deprecatedLastTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: deprecatedSource + type: + namedType: io.k8s.api.core.v1.EventSource + default: {} + - name: eventTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime + default: {} + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: note + type: + scalar: string + - name: reason + type: + scalar: string + - name: regarding + type: + namedType: io.k8s.api.core.v1.ObjectReference + default: {} + - name: related + type: + namedType: io.k8s.api.core.v1.ObjectReference + - name: reportingController + type: + scalar: string + - name: reportingInstance + type: + scalar: string + - name: series + type: + namedType: io.k8s.api.events.v1.EventSeries + - name: type + type: + scalar: string +- name: io.k8s.api.events.v1.EventSeries + map: + fields: + - name: count + type: + scalar: numeric + default: 0 + - name: lastObservedTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime + default: {} +- name: io.k8s.api.events.v1beta1.Event + map: + fields: + - name: action + type: + scalar: string + - name: apiVersion + type: + scalar: string + - name: deprecatedCount + type: + scalar: numeric + - name: deprecatedFirstTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: deprecatedLastTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: deprecatedSource + type: + namedType: io.k8s.api.core.v1.EventSource + default: {} + - name: eventTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime + default: {} + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: note + type: + scalar: string + - name: reason + type: + scalar: string + - name: regarding + type: + namedType: io.k8s.api.core.v1.ObjectReference + default: {} + - name: related + type: + namedType: io.k8s.api.core.v1.ObjectReference + - name: reportingController + type: + scalar: string + - name: reportingInstance + type: + scalar: string + - name: series + type: + namedType: io.k8s.api.events.v1beta1.EventSeries + - name: type + type: + scalar: string +- name: io.k8s.api.events.v1beta1.EventSeries + map: + fields: + - name: count + type: + scalar: numeric + default: 0 + - name: lastObservedTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime + default: {} +- name: io.k8s.api.extensions.v1beta1.AllowedCSIDriver + map: + fields: + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.extensions.v1beta1.AllowedFlexVolume + map: + fields: + - name: driver + type: + scalar: string + default: "" +- name: io.k8s.api.extensions.v1beta1.AllowedHostPath + map: + fields: + - name: pathPrefix + type: + scalar: string + - name: readOnly + type: + scalar: boolean +- name: io.k8s.api.extensions.v1beta1.DaemonSet + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.extensions.v1beta1.DaemonSetSpec + default: {} + - name: status + type: + namedType: io.k8s.api.extensions.v1beta1.DaemonSetStatus + default: {} +- name: io.k8s.api.extensions.v1beta1.DaemonSetCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.extensions.v1beta1.DaemonSetSpec + map: + fields: + - name: minReadySeconds + type: + scalar: numeric + - name: revisionHistoryLimit + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} + - name: templateGeneration + type: + scalar: numeric + - name: updateStrategy + type: + namedType: io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy + default: {} +- name: io.k8s.api.extensions.v1beta1.DaemonSetStatus + map: + fields: + - name: collisionCount + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.DaemonSetCondition + elementRelationship: associative + keys: + - type + - name: currentNumberScheduled + type: + scalar: numeric + default: 0 + - name: desiredNumberScheduled + type: + scalar: numeric + default: 0 + - name: numberAvailable + type: + scalar: numeric + - name: numberMisscheduled + type: + scalar: numeric + default: 0 + - name: numberReady + type: + scalar: numeric + default: 0 + - name: numberUnavailable + type: + scalar: numeric + - name: observedGeneration + type: + scalar: numeric + - name: updatedNumberScheduled + type: + scalar: numeric +- name: io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy + map: + fields: + - name: rollingUpdate + type: + namedType: io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet + - name: type + type: + scalar: string +- name: io.k8s.api.extensions.v1beta1.Deployment + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.extensions.v1beta1.DeploymentSpec + default: {} + - name: status + type: + namedType: io.k8s.api.extensions.v1beta1.DeploymentStatus + default: {} +- name: io.k8s.api.extensions.v1beta1.DeploymentCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: lastUpdateTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.extensions.v1beta1.DeploymentSpec + map: + fields: + - name: minReadySeconds + type: + scalar: numeric + - name: paused + type: + scalar: boolean + - name: progressDeadlineSeconds + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: revisionHistoryLimit + type: + scalar: numeric + - name: rollbackTo + type: + namedType: io.k8s.api.extensions.v1beta1.RollbackConfig + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: strategy + type: + namedType: io.k8s.api.extensions.v1beta1.DeploymentStrategy + default: {} + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} +- name: io.k8s.api.extensions.v1beta1.DeploymentStatus + map: + fields: + - name: availableReplicas + type: + scalar: numeric + - name: collisionCount + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.DeploymentCondition + elementRelationship: associative + keys: + - type + - name: observedGeneration + type: + scalar: numeric + - name: readyReplicas + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: unavailableReplicas + type: + scalar: numeric + - name: updatedReplicas + type: + scalar: numeric +- name: io.k8s.api.extensions.v1beta1.DeploymentStrategy + map: + fields: + - name: rollingUpdate + type: + namedType: io.k8s.api.extensions.v1beta1.RollingUpdateDeployment + - name: type + type: + scalar: string +- name: io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions + map: + fields: + - name: ranges + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.IDRange + elementRelationship: atomic + - name: rule + type: + scalar: string +- name: io.k8s.api.extensions.v1beta1.HTTPIngressPath + map: + fields: + - name: backend + type: + namedType: io.k8s.api.extensions.v1beta1.IngressBackend + default: {} + - name: path + type: + scalar: string + - name: pathType + type: + scalar: string +- name: io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue + map: + fields: + - name: paths + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.HTTPIngressPath + elementRelationship: atomic +- name: io.k8s.api.extensions.v1beta1.HostPortRange + map: + fields: + - name: max + type: + scalar: numeric + default: 0 + - name: min + type: + scalar: numeric + default: 0 +- name: io.k8s.api.extensions.v1beta1.IDRange + map: + fields: + - name: max + type: + scalar: numeric + default: 0 + - name: min + type: + scalar: numeric + default: 0 +- name: io.k8s.api.extensions.v1beta1.IPBlock + map: + fields: + - name: cidr + type: + scalar: string + default: "" + - name: except + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.extensions.v1beta1.Ingress + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.extensions.v1beta1.IngressSpec + default: {} + - name: status + type: + namedType: io.k8s.api.extensions.v1beta1.IngressStatus + default: {} +- name: io.k8s.api.extensions.v1beta1.IngressBackend + map: + fields: + - name: resource + type: + namedType: io.k8s.api.core.v1.TypedLocalObjectReference + - name: serviceName + type: + scalar: string + - name: servicePort + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + default: {} +- name: io.k8s.api.extensions.v1beta1.IngressRule + map: + fields: + - name: host + type: + scalar: string + - name: http + type: + namedType: io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue +- name: io.k8s.api.extensions.v1beta1.IngressSpec + map: + fields: + - name: backend + type: + namedType: io.k8s.api.extensions.v1beta1.IngressBackend + - name: ingressClassName + type: + scalar: string + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.IngressRule + elementRelationship: atomic + - name: tls + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.IngressTLS + elementRelationship: atomic +- name: io.k8s.api.extensions.v1beta1.IngressStatus + map: + fields: + - name: loadBalancer + type: + namedType: io.k8s.api.core.v1.LoadBalancerStatus + default: {} +- name: io.k8s.api.extensions.v1beta1.IngressTLS + map: + fields: + - name: hosts + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: secretName + type: + scalar: string +- name: io.k8s.api.extensions.v1beta1.NetworkPolicy + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.extensions.v1beta1.NetworkPolicySpec + default: {} +- name: io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule + map: + fields: + - name: ports + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPort + elementRelationship: atomic + - name: to + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPeer + elementRelationship: atomic +- name: io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule + map: + fields: + - name: from + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPeer + elementRelationship: atomic + - name: ports + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPort + elementRelationship: atomic +- name: io.k8s.api.extensions.v1beta1.NetworkPolicyPeer + map: + fields: + - name: ipBlock + type: + namedType: io.k8s.api.extensions.v1beta1.IPBlock + - name: namespaceSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: podSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector +- name: io.k8s.api.extensions.v1beta1.NetworkPolicyPort + map: + fields: + - name: endPort + type: + scalar: numeric + - name: port + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: protocol + type: + scalar: string +- name: io.k8s.api.extensions.v1beta1.NetworkPolicySpec + map: + fields: + - name: egress + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule + elementRelationship: atomic + - name: ingress + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule + elementRelationship: atomic + - name: podSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + default: {} + - name: policyTypes + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.extensions.v1beta1.PodSecurityPolicy + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec + default: {} +- name: io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec + map: + fields: + - name: allowPrivilegeEscalation + type: + scalar: boolean + - name: allowedCSIDrivers + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.AllowedCSIDriver + elementRelationship: atomic + - name: allowedCapabilities + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: allowedFlexVolumes + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.AllowedFlexVolume + elementRelationship: atomic + - name: allowedHostPaths + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.AllowedHostPath + elementRelationship: atomic + - name: allowedProcMountTypes + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: allowedUnsafeSysctls + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: defaultAddCapabilities + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: defaultAllowPrivilegeEscalation + type: + scalar: boolean + - name: forbiddenSysctls + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: fsGroup + type: + namedType: io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions + default: {} + - name: hostIPC + type: + scalar: boolean + - name: hostNetwork + type: + scalar: boolean + - name: hostPID + type: + scalar: boolean + - name: hostPorts + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.HostPortRange + elementRelationship: atomic + - name: privileged + type: + scalar: boolean + - name: readOnlyRootFilesystem + type: + scalar: boolean + - name: requiredDropCapabilities + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: runAsGroup + type: + namedType: io.k8s.api.extensions.v1beta1.RunAsGroupStrategyOptions + - name: runAsUser + type: + namedType: io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions + default: {} + - name: runtimeClass + type: + namedType: io.k8s.api.extensions.v1beta1.RuntimeClassStrategyOptions + - name: seLinux + type: + namedType: io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions + default: {} + - name: supplementalGroups + type: + namedType: io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions + default: {} + - name: volumes + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.extensions.v1beta1.ReplicaSet + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.extensions.v1beta1.ReplicaSetSpec + default: {} + - name: status + type: + namedType: io.k8s.api.extensions.v1beta1.ReplicaSetStatus + default: {} +- name: io.k8s.api.extensions.v1beta1.ReplicaSetCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.extensions.v1beta1.ReplicaSetSpec + map: + fields: + - name: minReadySeconds + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: template + type: + namedType: io.k8s.api.core.v1.PodTemplateSpec + default: {} +- name: io.k8s.api.extensions.v1beta1.ReplicaSetStatus + map: + fields: + - name: availableReplicas + type: + scalar: numeric + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.ReplicaSetCondition + elementRelationship: associative + keys: + - type + - name: fullyLabeledReplicas + type: + scalar: numeric + - name: observedGeneration + type: + scalar: numeric + - name: readyReplicas + type: + scalar: numeric + - name: replicas + type: + scalar: numeric + default: 0 +- name: io.k8s.api.extensions.v1beta1.RollbackConfig + map: + fields: + - name: revision + type: + scalar: numeric +- name: io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet + map: + fields: + - name: maxSurge + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: maxUnavailable + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString +- name: io.k8s.api.extensions.v1beta1.RollingUpdateDeployment + map: + fields: + - name: maxSurge + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: maxUnavailable + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString +- name: io.k8s.api.extensions.v1beta1.RunAsGroupStrategyOptions + map: + fields: + - name: ranges + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.IDRange + elementRelationship: atomic + - name: rule + type: + scalar: string + default: "" +- name: io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions + map: + fields: + - name: ranges + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.IDRange + elementRelationship: atomic + - name: rule + type: + scalar: string + default: "" +- name: io.k8s.api.extensions.v1beta1.RuntimeClassStrategyOptions + map: + fields: + - name: allowedRuntimeClassNames + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: defaultRuntimeClassName + type: + scalar: string +- name: io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions + map: + fields: + - name: rule + type: + scalar: string + default: "" + - name: seLinuxOptions + type: + namedType: io.k8s.api.core.v1.SELinuxOptions +- name: io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions + map: + fields: + - name: ranges + type: + list: + elementType: + namedType: io.k8s.api.extensions.v1beta1.IDRange + elementRelationship: atomic + - name: rule + type: + scalar: string +- name: io.k8s.api.flowcontrol.v1alpha1.FlowDistinguisherMethod + map: + fields: + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.flowcontrol.v1alpha1.FlowSchema + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaSpec + default: {} + - name: status + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaStatus + default: {} +- name: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + - name: type + type: + scalar: string +- name: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaSpec + map: + fields: + - name: distinguisherMethod + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.FlowDistinguisherMethod + - name: matchingPrecedence + type: + scalar: numeric + default: 0 + - name: priorityLevelConfiguration + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationReference + default: {} + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1alpha1.PolicyRulesWithSubjects + elementRelationship: atomic +- name: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1alpha1.FlowSchemaCondition + elementRelationship: associative + keys: + - type +- name: io.k8s.api.flowcontrol.v1alpha1.GroupSubject + map: + fields: + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.flowcontrol.v1alpha1.LimitResponse + map: + fields: + - name: queuing + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.QueuingConfiguration + - name: type + type: + scalar: string + default: "" + unions: + - discriminator: type + fields: + - fieldName: queuing + discriminatorValue: Queuing +- name: io.k8s.api.flowcontrol.v1alpha1.LimitedPriorityLevelConfiguration + map: + fields: + - name: assuredConcurrencyShares + type: + scalar: numeric + default: 0 + - name: limitResponse + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.LimitResponse + default: {} +- name: io.k8s.api.flowcontrol.v1alpha1.NonResourcePolicyRule + map: + fields: + - name: nonResourceURLs + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: verbs + type: + list: + elementType: + scalar: string + elementRelationship: associative +- name: io.k8s.api.flowcontrol.v1alpha1.PolicyRulesWithSubjects + map: + fields: + - name: nonResourceRules + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1alpha1.NonResourcePolicyRule + elementRelationship: atomic + - name: resourceRules + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1alpha1.ResourcePolicyRule + elementRelationship: atomic + - name: subjects + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1alpha1.Subject + elementRelationship: atomic +- name: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfiguration + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationSpec + default: {} + - name: status + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationStatus + default: {} +- name: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + - name: type + type: + scalar: string +- name: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationReference + map: + fields: + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationSpec + map: + fields: + - name: limited + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.LimitedPriorityLevelConfiguration + - name: type + type: + scalar: string + default: "" + unions: + - discriminator: type + fields: + - fieldName: limited + discriminatorValue: Limited +- name: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfigurationCondition + elementRelationship: associative + keys: + - type +- name: io.k8s.api.flowcontrol.v1alpha1.QueuingConfiguration + map: + fields: + - name: handSize + type: + scalar: numeric + default: 0 + - name: queueLengthLimit + type: + scalar: numeric + default: 0 + - name: queues + type: + scalar: numeric + default: 0 +- name: io.k8s.api.flowcontrol.v1alpha1.ResourcePolicyRule + map: + fields: + - name: apiGroups + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: clusterScope + type: + scalar: boolean + - name: namespaces + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: resources + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: verbs + type: + list: + elementType: + scalar: string + elementRelationship: associative +- name: io.k8s.api.flowcontrol.v1alpha1.ServiceAccountSubject + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: namespace + type: + scalar: string + default: "" +- name: io.k8s.api.flowcontrol.v1alpha1.Subject + map: + fields: + - name: group + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.GroupSubject + - name: kind + type: + scalar: string + default: "" + - name: serviceAccount + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.ServiceAccountSubject + - name: user + type: + namedType: io.k8s.api.flowcontrol.v1alpha1.UserSubject + unions: + - discriminator: kind + fields: + - fieldName: group + discriminatorValue: Group + - fieldName: serviceAccount + discriminatorValue: ServiceAccount + - fieldName: user + discriminatorValue: User +- name: io.k8s.api.flowcontrol.v1alpha1.UserSubject + map: + fields: + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.flowcontrol.v1beta1.FlowDistinguisherMethod + map: + fields: + - name: type + type: + scalar: string + default: "" +- name: io.k8s.api.flowcontrol.v1beta1.FlowSchema + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.flowcontrol.v1beta1.FlowSchemaSpec + default: {} + - name: status + type: + namedType: io.k8s.api.flowcontrol.v1beta1.FlowSchemaStatus + default: {} +- name: io.k8s.api.flowcontrol.v1beta1.FlowSchemaCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + - name: type + type: + scalar: string +- name: io.k8s.api.flowcontrol.v1beta1.FlowSchemaSpec + map: + fields: + - name: distinguisherMethod + type: + namedType: io.k8s.api.flowcontrol.v1beta1.FlowDistinguisherMethod + - name: matchingPrecedence + type: + scalar: numeric + default: 0 + - name: priorityLevelConfiguration + type: + namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationReference + default: {} + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1beta1.PolicyRulesWithSubjects + elementRelationship: atomic +- name: io.k8s.api.flowcontrol.v1beta1.FlowSchemaStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1beta1.FlowSchemaCondition + elementRelationship: associative + keys: + - type +- name: io.k8s.api.flowcontrol.v1beta1.GroupSubject + map: + fields: + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.flowcontrol.v1beta1.LimitResponse + map: + fields: + - name: queuing + type: + namedType: io.k8s.api.flowcontrol.v1beta1.QueuingConfiguration + - name: type + type: + scalar: string + default: "" + unions: + - discriminator: type + fields: + - fieldName: queuing + discriminatorValue: Queuing +- name: io.k8s.api.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration + map: + fields: + - name: assuredConcurrencyShares + type: + scalar: numeric + default: 0 + - name: limitResponse + type: + namedType: io.k8s.api.flowcontrol.v1beta1.LimitResponse + default: {} +- name: io.k8s.api.flowcontrol.v1beta1.NonResourcePolicyRule + map: + fields: + - name: nonResourceURLs + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: verbs + type: + list: + elementType: + scalar: string + elementRelationship: associative +- name: io.k8s.api.flowcontrol.v1beta1.PolicyRulesWithSubjects + map: + fields: + - name: nonResourceRules + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1beta1.NonResourcePolicyRule + elementRelationship: atomic + - name: resourceRules + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1beta1.ResourcePolicyRule + elementRelationship: atomic + - name: subjects + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1beta1.Subject + elementRelationship: atomic +- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationSpec + default: {} + - name: status + type: + namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationStatus + default: {} +- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + - name: reason + type: + scalar: string + - name: status + type: + scalar: string + - name: type + type: + scalar: string +- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationReference + map: + fields: + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationSpec + map: + fields: + - name: limited + type: + namedType: io.k8s.api.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration + - name: type + type: + scalar: string + default: "" + unions: + - discriminator: type + fields: + - fieldName: limited + discriminatorValue: Limited +- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationCondition + elementRelationship: associative + keys: + - type +- name: io.k8s.api.flowcontrol.v1beta1.QueuingConfiguration + map: + fields: + - name: handSize + type: + scalar: numeric + default: 0 + - name: queueLengthLimit + type: + scalar: numeric + default: 0 + - name: queues + type: + scalar: numeric + default: 0 +- name: io.k8s.api.flowcontrol.v1beta1.ResourcePolicyRule + map: + fields: + - name: apiGroups + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: clusterScope + type: + scalar: boolean + - name: namespaces + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: resources + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: verbs + type: + list: + elementType: + scalar: string + elementRelationship: associative +- name: io.k8s.api.flowcontrol.v1beta1.ServiceAccountSubject + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: namespace + type: + scalar: string + default: "" +- name: io.k8s.api.flowcontrol.v1beta1.Subject + map: + fields: + - name: group + type: + namedType: io.k8s.api.flowcontrol.v1beta1.GroupSubject + - name: kind + type: + scalar: string + default: "" + - name: serviceAccount + type: + namedType: io.k8s.api.flowcontrol.v1beta1.ServiceAccountSubject + - name: user + type: + namedType: io.k8s.api.flowcontrol.v1beta1.UserSubject + unions: + - discriminator: kind + fields: + - fieldName: group + discriminatorValue: Group + - fieldName: serviceAccount + discriminatorValue: ServiceAccount + - fieldName: user + discriminatorValue: User +- name: io.k8s.api.flowcontrol.v1beta1.UserSubject + map: + fields: + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.imagepolicy.v1alpha1.ImageReview + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.imagepolicy.v1alpha1.ImageReviewSpec + default: {} + - name: status + type: + namedType: io.k8s.api.imagepolicy.v1alpha1.ImageReviewStatus + default: {} +- name: io.k8s.api.imagepolicy.v1alpha1.ImageReviewContainerSpec + map: + fields: + - name: image + type: + scalar: string +- name: io.k8s.api.imagepolicy.v1alpha1.ImageReviewSpec + map: + fields: + - name: annotations + type: + map: + elementType: + scalar: string + - name: containers + type: + list: + elementType: + namedType: io.k8s.api.imagepolicy.v1alpha1.ImageReviewContainerSpec + elementRelationship: atomic + - name: namespace + type: + scalar: string +- name: io.k8s.api.imagepolicy.v1alpha1.ImageReviewStatus + map: + fields: + - name: allowed + type: + scalar: boolean + default: false + - name: auditAnnotations + type: + map: + elementType: + scalar: string + - name: reason + type: + scalar: string +- name: io.k8s.api.networking.v1.HTTPIngressPath + map: + fields: + - name: backend + type: + namedType: io.k8s.api.networking.v1.IngressBackend + default: {} + - name: path + type: + scalar: string + - name: pathType + type: + scalar: string +- name: io.k8s.api.networking.v1.HTTPIngressRuleValue + map: + fields: + - name: paths + type: + list: + elementType: + namedType: io.k8s.api.networking.v1.HTTPIngressPath + elementRelationship: atomic +- name: io.k8s.api.networking.v1.IPBlock + map: + fields: + - name: cidr + type: + scalar: string + default: "" + - name: except + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.networking.v1.Ingress + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.networking.v1.IngressSpec + default: {} + - name: status + type: + namedType: io.k8s.api.networking.v1.IngressStatus + default: {} +- name: io.k8s.api.networking.v1.IngressBackend + map: + fields: + - name: resource + type: + namedType: io.k8s.api.core.v1.TypedLocalObjectReference + - name: service + type: + namedType: io.k8s.api.networking.v1.IngressServiceBackend +- name: io.k8s.api.networking.v1.IngressClass + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.networking.v1.IngressClassSpec + default: {} +- name: io.k8s.api.networking.v1.IngressClassParametersReference + map: + fields: + - name: apiGroup + type: + scalar: string + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" + - name: namespace + type: + scalar: string + - name: scope + type: + scalar: string +- name: io.k8s.api.networking.v1.IngressClassSpec + map: + fields: + - name: controller + type: + scalar: string + - name: parameters + type: + namedType: io.k8s.api.networking.v1.IngressClassParametersReference +- name: io.k8s.api.networking.v1.IngressRule + map: + fields: + - name: host + type: + scalar: string + - name: http + type: + namedType: io.k8s.api.networking.v1.HTTPIngressRuleValue +- name: io.k8s.api.networking.v1.IngressServiceBackend + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: port + type: + namedType: io.k8s.api.networking.v1.ServiceBackendPort + default: {} +- name: io.k8s.api.networking.v1.IngressSpec + map: + fields: + - name: defaultBackend + type: + namedType: io.k8s.api.networking.v1.IngressBackend + - name: ingressClassName + type: + scalar: string + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.networking.v1.IngressRule + elementRelationship: atomic + - name: tls + type: + list: + elementType: + namedType: io.k8s.api.networking.v1.IngressTLS + elementRelationship: atomic +- name: io.k8s.api.networking.v1.IngressStatus + map: + fields: + - name: loadBalancer + type: + namedType: io.k8s.api.core.v1.LoadBalancerStatus + default: {} +- name: io.k8s.api.networking.v1.IngressTLS + map: + fields: + - name: hosts + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: secretName + type: + scalar: string +- name: io.k8s.api.networking.v1.NetworkPolicy + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.networking.v1.NetworkPolicySpec + default: {} +- name: io.k8s.api.networking.v1.NetworkPolicyEgressRule + map: + fields: + - name: ports + type: + list: + elementType: + namedType: io.k8s.api.networking.v1.NetworkPolicyPort + elementRelationship: atomic + - name: to + type: + list: + elementType: + namedType: io.k8s.api.networking.v1.NetworkPolicyPeer + elementRelationship: atomic +- name: io.k8s.api.networking.v1.NetworkPolicyIngressRule + map: + fields: + - name: from + type: + list: + elementType: + namedType: io.k8s.api.networking.v1.NetworkPolicyPeer + elementRelationship: atomic + - name: ports + type: + list: + elementType: + namedType: io.k8s.api.networking.v1.NetworkPolicyPort + elementRelationship: atomic +- name: io.k8s.api.networking.v1.NetworkPolicyPeer + map: + fields: + - name: ipBlock + type: + namedType: io.k8s.api.networking.v1.IPBlock + - name: namespaceSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: podSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector +- name: io.k8s.api.networking.v1.NetworkPolicyPort + map: + fields: + - name: endPort + type: + scalar: numeric + - name: port + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: protocol + type: + scalar: string +- name: io.k8s.api.networking.v1.NetworkPolicySpec + map: + fields: + - name: egress + type: + list: + elementType: + namedType: io.k8s.api.networking.v1.NetworkPolicyEgressRule + elementRelationship: atomic + - name: ingress + type: + list: + elementType: + namedType: io.k8s.api.networking.v1.NetworkPolicyIngressRule + elementRelationship: atomic + - name: podSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + default: {} + - name: policyTypes + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.networking.v1.ServiceBackendPort + map: + fields: + - name: name + type: + scalar: string + - name: number + type: + scalar: numeric +- name: io.k8s.api.networking.v1beta1.HTTPIngressPath + map: + fields: + - name: backend + type: + namedType: io.k8s.api.networking.v1beta1.IngressBackend + default: {} + - name: path + type: + scalar: string + - name: pathType + type: + scalar: string +- name: io.k8s.api.networking.v1beta1.HTTPIngressRuleValue + map: + fields: + - name: paths + type: + list: + elementType: + namedType: io.k8s.api.networking.v1beta1.HTTPIngressPath + elementRelationship: atomic +- name: io.k8s.api.networking.v1beta1.Ingress + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.networking.v1beta1.IngressSpec + default: {} + - name: status + type: + namedType: io.k8s.api.networking.v1beta1.IngressStatus + default: {} +- name: io.k8s.api.networking.v1beta1.IngressBackend + map: + fields: + - name: resource + type: + namedType: io.k8s.api.core.v1.TypedLocalObjectReference + - name: serviceName + type: + scalar: string + - name: servicePort + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + default: {} +- name: io.k8s.api.networking.v1beta1.IngressClass + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.networking.v1beta1.IngressClassSpec + default: {} +- name: io.k8s.api.networking.v1beta1.IngressClassParametersReference + map: + fields: + - name: apiGroup + type: + scalar: string + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" + - name: namespace + type: + scalar: string + - name: scope + type: + scalar: string +- name: io.k8s.api.networking.v1beta1.IngressClassSpec + map: + fields: + - name: controller + type: + scalar: string + - name: parameters + type: + namedType: io.k8s.api.networking.v1beta1.IngressClassParametersReference +- name: io.k8s.api.networking.v1beta1.IngressRule + map: + fields: + - name: host + type: + scalar: string + - name: http + type: + namedType: io.k8s.api.networking.v1beta1.HTTPIngressRuleValue +- name: io.k8s.api.networking.v1beta1.IngressSpec + map: + fields: + - name: backend + type: + namedType: io.k8s.api.networking.v1beta1.IngressBackend + - name: ingressClassName + type: + scalar: string + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.networking.v1beta1.IngressRule + elementRelationship: atomic + - name: tls + type: + list: + elementType: + namedType: io.k8s.api.networking.v1beta1.IngressTLS + elementRelationship: atomic +- name: io.k8s.api.networking.v1beta1.IngressStatus + map: + fields: + - name: loadBalancer + type: + namedType: io.k8s.api.core.v1.LoadBalancerStatus + default: {} +- name: io.k8s.api.networking.v1beta1.IngressTLS + map: + fields: + - name: hosts + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: secretName + type: + scalar: string +- name: io.k8s.api.node.v1.Overhead + map: + fields: + - name: podFixed + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.node.v1.RuntimeClass + map: + fields: + - name: apiVersion + type: + scalar: string + - name: handler + type: + scalar: string + default: "" + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: overhead + type: + namedType: io.k8s.api.node.v1.Overhead + - name: scheduling + type: + namedType: io.k8s.api.node.v1.Scheduling +- name: io.k8s.api.node.v1.Scheduling + map: + fields: + - name: nodeSelector + type: + map: + elementType: + scalar: string + - name: tolerations + type: + list: + elementType: + namedType: io.k8s.api.core.v1.Toleration + elementRelationship: atomic +- name: io.k8s.api.node.v1alpha1.Overhead + map: + fields: + - name: podFixed + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.node.v1alpha1.RuntimeClass + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.node.v1alpha1.RuntimeClassSpec + default: {} +- name: io.k8s.api.node.v1alpha1.RuntimeClassSpec + map: + fields: + - name: overhead + type: + namedType: io.k8s.api.node.v1alpha1.Overhead + - name: runtimeHandler + type: + scalar: string + default: "" + - name: scheduling + type: + namedType: io.k8s.api.node.v1alpha1.Scheduling +- name: io.k8s.api.node.v1alpha1.Scheduling + map: + fields: + - name: nodeSelector + type: + map: + elementType: + scalar: string + - name: tolerations + type: + list: + elementType: + namedType: io.k8s.api.core.v1.Toleration + elementRelationship: atomic +- name: io.k8s.api.node.v1beta1.Overhead + map: + fields: + - name: podFixed + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.node.v1beta1.RuntimeClass + map: + fields: + - name: apiVersion + type: + scalar: string + - name: handler + type: + scalar: string + default: "" + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: overhead + type: + namedType: io.k8s.api.node.v1beta1.Overhead + - name: scheduling + type: + namedType: io.k8s.api.node.v1beta1.Scheduling +- name: io.k8s.api.node.v1beta1.Scheduling + map: + fields: + - name: nodeSelector + type: + map: + elementType: + scalar: string + - name: tolerations + type: + list: + elementType: + namedType: io.k8s.api.core.v1.Toleration + elementRelationship: atomic +- name: io.k8s.api.policy.v1.PodDisruptionBudget + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.policy.v1.PodDisruptionBudgetSpec + default: {} + - name: status + type: + namedType: io.k8s.api.policy.v1.PodDisruptionBudgetStatus + default: {} +- name: io.k8s.api.policy.v1.PodDisruptionBudgetSpec + map: + fields: + - name: maxUnavailable + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: minAvailable + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector +- name: io.k8s.api.policy.v1.PodDisruptionBudgetStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition + elementRelationship: associative + keys: + - type + - name: currentHealthy + type: + scalar: numeric + default: 0 + - name: desiredHealthy + type: + scalar: numeric + default: 0 + - name: disruptedPods + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: disruptionsAllowed + type: + scalar: numeric + default: 0 + - name: expectedPods + type: + scalar: numeric + default: 0 + - name: observedGeneration + type: + scalar: numeric +- name: io.k8s.api.policy.v1beta1.AllowedCSIDriver + map: + fields: + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.policy.v1beta1.AllowedFlexVolume + map: + fields: + - name: driver + type: + scalar: string + default: "" +- name: io.k8s.api.policy.v1beta1.AllowedHostPath + map: + fields: + - name: pathPrefix + type: + scalar: string + - name: readOnly + type: + scalar: boolean +- name: io.k8s.api.policy.v1beta1.Eviction + map: + fields: + - name: apiVersion + type: + scalar: string + - name: deleteOptions + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} +- name: io.k8s.api.policy.v1beta1.FSGroupStrategyOptions + map: + fields: + - name: ranges + type: + list: + elementType: + namedType: io.k8s.api.policy.v1beta1.IDRange + elementRelationship: atomic + - name: rule + type: + scalar: string +- name: io.k8s.api.policy.v1beta1.HostPortRange + map: + fields: + - name: max + type: + scalar: numeric + default: 0 + - name: min + type: + scalar: numeric + default: 0 +- name: io.k8s.api.policy.v1beta1.IDRange + map: + fields: + - name: max + type: + scalar: numeric + default: 0 + - name: min + type: + scalar: numeric + default: 0 +- name: io.k8s.api.policy.v1beta1.PodDisruptionBudget + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec + default: {} + - name: status + type: + namedType: io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus + default: {} +- name: io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec + map: + fields: + - name: maxUnavailable + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: minAvailable + type: + namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString + - name: selector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector +- name: io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition + elementRelationship: associative + keys: + - type + - name: currentHealthy + type: + scalar: numeric + default: 0 + - name: desiredHealthy + type: + scalar: numeric + default: 0 + - name: disruptedPods + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: disruptionsAllowed + type: + scalar: numeric + default: 0 + - name: expectedPods + type: + scalar: numeric + default: 0 + - name: observedGeneration + type: + scalar: numeric +- name: io.k8s.api.policy.v1beta1.PodSecurityPolicy + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.policy.v1beta1.PodSecurityPolicySpec + default: {} +- name: io.k8s.api.policy.v1beta1.PodSecurityPolicySpec + map: + fields: + - name: allowPrivilegeEscalation + type: + scalar: boolean + - name: allowedCSIDrivers + type: + list: + elementType: + namedType: io.k8s.api.policy.v1beta1.AllowedCSIDriver + elementRelationship: atomic + - name: allowedCapabilities + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: allowedFlexVolumes + type: + list: + elementType: + namedType: io.k8s.api.policy.v1beta1.AllowedFlexVolume + elementRelationship: atomic + - name: allowedHostPaths + type: + list: + elementType: + namedType: io.k8s.api.policy.v1beta1.AllowedHostPath + elementRelationship: atomic + - name: allowedProcMountTypes + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: allowedUnsafeSysctls + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: defaultAddCapabilities + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: defaultAllowPrivilegeEscalation + type: + scalar: boolean + - name: forbiddenSysctls + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: fsGroup + type: + namedType: io.k8s.api.policy.v1beta1.FSGroupStrategyOptions + default: {} + - name: hostIPC + type: + scalar: boolean + - name: hostNetwork + type: + scalar: boolean + - name: hostPID + type: + scalar: boolean + - name: hostPorts + type: + list: + elementType: + namedType: io.k8s.api.policy.v1beta1.HostPortRange + elementRelationship: atomic + - name: privileged + type: + scalar: boolean + - name: readOnlyRootFilesystem + type: + scalar: boolean + - name: requiredDropCapabilities + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: runAsGroup + type: + namedType: io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions + - name: runAsUser + type: + namedType: io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions + default: {} + - name: runtimeClass + type: + namedType: io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions + - name: seLinux + type: + namedType: io.k8s.api.policy.v1beta1.SELinuxStrategyOptions + default: {} + - name: supplementalGroups + type: + namedType: io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions + default: {} + - name: volumes + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions + map: + fields: + - name: ranges + type: + list: + elementType: + namedType: io.k8s.api.policy.v1beta1.IDRange + elementRelationship: atomic + - name: rule + type: + scalar: string + default: "" +- name: io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions + map: + fields: + - name: ranges + type: + list: + elementType: + namedType: io.k8s.api.policy.v1beta1.IDRange + elementRelationship: atomic + - name: rule + type: + scalar: string + default: "" +- name: io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions + map: + fields: + - name: allowedRuntimeClassNames + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: defaultRuntimeClassName + type: + scalar: string +- name: io.k8s.api.policy.v1beta1.SELinuxStrategyOptions + map: + fields: + - name: rule + type: + scalar: string + default: "" + - name: seLinuxOptions + type: + namedType: io.k8s.api.core.v1.SELinuxOptions +- name: io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions + map: + fields: + - name: ranges + type: + list: + elementType: + namedType: io.k8s.api.policy.v1beta1.IDRange + elementRelationship: atomic + - name: rule + type: + scalar: string +- name: io.k8s.api.rbac.v1.AggregationRule + map: + fields: + - name: clusterRoleSelectors + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + elementRelationship: atomic +- name: io.k8s.api.rbac.v1.ClusterRole + map: + fields: + - name: aggregationRule + type: + namedType: io.k8s.api.rbac.v1.AggregationRule + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1.PolicyRule + elementRelationship: atomic +- name: io.k8s.api.rbac.v1.ClusterRoleBinding + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: roleRef + type: + namedType: io.k8s.api.rbac.v1.RoleRef + default: {} + - name: subjects + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1.Subject + elementRelationship: atomic +- name: io.k8s.api.rbac.v1.PolicyRule + map: + fields: + - name: apiGroups + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: nonResourceURLs + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: resourceNames + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: resources + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: verbs + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.rbac.v1.Role + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1.PolicyRule + elementRelationship: atomic +- name: io.k8s.api.rbac.v1.RoleBinding + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: roleRef + type: + namedType: io.k8s.api.rbac.v1.RoleRef + default: {} + - name: subjects + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1.Subject + elementRelationship: atomic +- name: io.k8s.api.rbac.v1.RoleRef + map: + fields: + - name: apiGroup + type: + scalar: string + default: "" + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.rbac.v1.Subject + map: + fields: + - name: apiGroup + type: + scalar: string + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" + - name: namespace + type: + scalar: string +- name: io.k8s.api.rbac.v1alpha1.AggregationRule + map: + fields: + - name: clusterRoleSelectors + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + elementRelationship: atomic +- name: io.k8s.api.rbac.v1alpha1.ClusterRole + map: + fields: + - name: aggregationRule + type: + namedType: io.k8s.api.rbac.v1alpha1.AggregationRule + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1alpha1.PolicyRule + elementRelationship: atomic +- name: io.k8s.api.rbac.v1alpha1.ClusterRoleBinding + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: roleRef + type: + namedType: io.k8s.api.rbac.v1alpha1.RoleRef + default: {} + - name: subjects + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1alpha1.Subject + elementRelationship: atomic +- name: io.k8s.api.rbac.v1alpha1.PolicyRule + map: + fields: + - name: apiGroups + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: nonResourceURLs + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: resourceNames + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: resources + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: verbs + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.rbac.v1alpha1.Role + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1alpha1.PolicyRule + elementRelationship: atomic +- name: io.k8s.api.rbac.v1alpha1.RoleBinding + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: roleRef + type: + namedType: io.k8s.api.rbac.v1alpha1.RoleRef + default: {} + - name: subjects + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1alpha1.Subject + elementRelationship: atomic +- name: io.k8s.api.rbac.v1alpha1.RoleRef + map: + fields: + - name: apiGroup + type: + scalar: string + default: "" + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.rbac.v1alpha1.Subject + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" + - name: namespace + type: + scalar: string +- name: io.k8s.api.rbac.v1beta1.AggregationRule + map: + fields: + - name: clusterRoleSelectors + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + elementRelationship: atomic +- name: io.k8s.api.rbac.v1beta1.ClusterRole + map: + fields: + - name: aggregationRule + type: + namedType: io.k8s.api.rbac.v1beta1.AggregationRule + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1beta1.PolicyRule + elementRelationship: atomic +- name: io.k8s.api.rbac.v1beta1.ClusterRoleBinding + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: roleRef + type: + namedType: io.k8s.api.rbac.v1beta1.RoleRef + default: {} + - name: subjects + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1beta1.Subject + elementRelationship: atomic +- name: io.k8s.api.rbac.v1beta1.PolicyRule + map: + fields: + - name: apiGroups + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: nonResourceURLs + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: resourceNames + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: resources + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: verbs + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.rbac.v1beta1.Role + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: rules + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1beta1.PolicyRule + elementRelationship: atomic +- name: io.k8s.api.rbac.v1beta1.RoleBinding + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: roleRef + type: + namedType: io.k8s.api.rbac.v1beta1.RoleRef + default: {} + - name: subjects + type: + list: + elementType: + namedType: io.k8s.api.rbac.v1beta1.Subject + elementRelationship: atomic +- name: io.k8s.api.rbac.v1beta1.RoleRef + map: + fields: + - name: apiGroup + type: + scalar: string + default: "" + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.rbac.v1beta1.Subject + map: + fields: + - name: apiGroup + type: + scalar: string + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" + - name: namespace + type: + scalar: string +- name: io.k8s.api.scheduling.v1.PriorityClass + map: + fields: + - name: apiVersion + type: + scalar: string + - name: description + type: + scalar: string + - name: globalDefault + type: + scalar: boolean + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: preemptionPolicy + type: + scalar: string + - name: value + type: + scalar: numeric + default: 0 +- name: io.k8s.api.scheduling.v1alpha1.PriorityClass + map: + fields: + - name: apiVersion + type: + scalar: string + - name: description + type: + scalar: string + - name: globalDefault + type: + scalar: boolean + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: preemptionPolicy + type: + scalar: string + - name: value + type: + scalar: numeric + default: 0 +- name: io.k8s.api.scheduling.v1beta1.PriorityClass + map: + fields: + - name: apiVersion + type: + scalar: string + - name: description + type: + scalar: string + - name: globalDefault + type: + scalar: boolean + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: preemptionPolicy + type: + scalar: string + - name: value + type: + scalar: numeric + default: 0 +- name: io.k8s.api.storage.v1.CSIDriver + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.storage.v1.CSIDriverSpec + default: {} +- name: io.k8s.api.storage.v1.CSIDriverSpec + map: + fields: + - name: attachRequired + type: + scalar: boolean + - name: fsGroupPolicy + type: + scalar: string + - name: podInfoOnMount + type: + scalar: boolean + - name: requiresRepublish + type: + scalar: boolean + - name: storageCapacity + type: + scalar: boolean + - name: tokenRequests + type: + list: + elementType: + namedType: io.k8s.api.storage.v1.TokenRequest + elementRelationship: atomic + - name: volumeLifecycleModes + type: + list: + elementType: + scalar: string + elementRelationship: associative +- name: io.k8s.api.storage.v1.CSINode + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.storage.v1.CSINodeSpec + default: {} +- name: io.k8s.api.storage.v1.CSINodeDriver + map: + fields: + - name: allocatable + type: + namedType: io.k8s.api.storage.v1.VolumeNodeResources + - name: name + type: + scalar: string + default: "" + - name: nodeID + type: + scalar: string + default: "" + - name: topologyKeys + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.storage.v1.CSINodeSpec + map: + fields: + - name: drivers + type: + list: + elementType: + namedType: io.k8s.api.storage.v1.CSINodeDriver + elementRelationship: associative + keys: + - name +- name: io.k8s.api.storage.v1.StorageClass + map: + fields: + - name: allowVolumeExpansion + type: + scalar: boolean + - name: allowedTopologies + type: + list: + elementType: + namedType: io.k8s.api.core.v1.TopologySelectorTerm + elementRelationship: atomic + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: mountOptions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: parameters + type: + map: + elementType: + scalar: string + - name: provisioner + type: + scalar: string + default: "" + - name: reclaimPolicy + type: + scalar: string + - name: volumeBindingMode + type: + scalar: string +- name: io.k8s.api.storage.v1.TokenRequest + map: + fields: + - name: audience + type: + scalar: string + default: "" + - name: expirationSeconds + type: + scalar: numeric +- name: io.k8s.api.storage.v1.VolumeAttachment + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.storage.v1.VolumeAttachmentSpec + default: {} + - name: status + type: + namedType: io.k8s.api.storage.v1.VolumeAttachmentStatus + default: {} +- name: io.k8s.api.storage.v1.VolumeAttachmentSource + map: + fields: + - name: inlineVolumeSpec + type: + namedType: io.k8s.api.core.v1.PersistentVolumeSpec + - name: persistentVolumeName + type: + scalar: string +- name: io.k8s.api.storage.v1.VolumeAttachmentSpec + map: + fields: + - name: attacher + type: + scalar: string + default: "" + - name: nodeName + type: + scalar: string + default: "" + - name: source + type: + namedType: io.k8s.api.storage.v1.VolumeAttachmentSource + default: {} +- name: io.k8s.api.storage.v1.VolumeAttachmentStatus + map: + fields: + - name: attachError + type: + namedType: io.k8s.api.storage.v1.VolumeError + - name: attached + type: + scalar: boolean + default: false + - name: attachmentMetadata + type: + map: + elementType: + scalar: string + - name: detachError + type: + namedType: io.k8s.api.storage.v1.VolumeError +- name: io.k8s.api.storage.v1.VolumeError + map: + fields: + - name: message + type: + scalar: string + - name: time + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} +- name: io.k8s.api.storage.v1.VolumeNodeResources + map: + fields: + - name: count + type: + scalar: numeric +- name: io.k8s.api.storage.v1alpha1.CSIStorageCapacity + map: + fields: + - name: apiVersion + type: + scalar: string + - name: capacity + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: kind + type: + scalar: string + - name: maximumVolumeSize + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: nodeTopology + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: storageClassName + type: + scalar: string + default: "" +- name: io.k8s.api.storage.v1alpha1.VolumeAttachment + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec + default: {} + - name: status + type: + namedType: io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus + default: {} +- name: io.k8s.api.storage.v1alpha1.VolumeAttachmentSource + map: + fields: + - name: inlineVolumeSpec + type: + namedType: io.k8s.api.core.v1.PersistentVolumeSpec + - name: persistentVolumeName + type: + scalar: string +- name: io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec + map: + fields: + - name: attacher + type: + scalar: string + default: "" + - name: nodeName + type: + scalar: string + default: "" + - name: source + type: + namedType: io.k8s.api.storage.v1alpha1.VolumeAttachmentSource + default: {} +- name: io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus + map: + fields: + - name: attachError + type: + namedType: io.k8s.api.storage.v1alpha1.VolumeError + - name: attached + type: + scalar: boolean + default: false + - name: attachmentMetadata + type: + map: + elementType: + scalar: string + - name: detachError + type: + namedType: io.k8s.api.storage.v1alpha1.VolumeError +- name: io.k8s.api.storage.v1alpha1.VolumeError + map: + fields: + - name: message + type: + scalar: string + - name: time + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} +- name: io.k8s.api.storage.v1beta1.CSIDriver + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.storage.v1beta1.CSIDriverSpec + default: {} +- name: io.k8s.api.storage.v1beta1.CSIDriverSpec + map: + fields: + - name: attachRequired + type: + scalar: boolean + - name: fsGroupPolicy + type: + scalar: string + - name: podInfoOnMount + type: + scalar: boolean + - name: requiresRepublish + type: + scalar: boolean + - name: storageCapacity + type: + scalar: boolean + - name: tokenRequests + type: + list: + elementType: + namedType: io.k8s.api.storage.v1beta1.TokenRequest + elementRelationship: atomic + - name: volumeLifecycleModes + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.storage.v1beta1.CSINode + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.storage.v1beta1.CSINodeSpec + default: {} +- name: io.k8s.api.storage.v1beta1.CSINodeDriver + map: + fields: + - name: allocatable + type: + namedType: io.k8s.api.storage.v1beta1.VolumeNodeResources + - name: name + type: + scalar: string + default: "" + - name: nodeID + type: + scalar: string + default: "" + - name: topologyKeys + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.api.storage.v1beta1.CSINodeSpec + map: + fields: + - name: drivers + type: + list: + elementType: + namedType: io.k8s.api.storage.v1beta1.CSINodeDriver + elementRelationship: associative + keys: + - name +- name: io.k8s.api.storage.v1beta1.CSIStorageCapacity + map: + fields: + - name: apiVersion + type: + scalar: string + - name: capacity + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: kind + type: + scalar: string + - name: maximumVolumeSize + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: nodeTopology + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + - name: storageClassName + type: + scalar: string + default: "" +- name: io.k8s.api.storage.v1beta1.StorageClass + map: + fields: + - name: allowVolumeExpansion + type: + scalar: boolean + - name: allowedTopologies + type: + list: + elementType: + namedType: io.k8s.api.core.v1.TopologySelectorTerm + elementRelationship: atomic + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: mountOptions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: parameters + type: + map: + elementType: + scalar: string + - name: provisioner + type: + scalar: string + default: "" + - name: reclaimPolicy + type: + scalar: string + - name: volumeBindingMode + type: + scalar: string +- name: io.k8s.api.storage.v1beta1.TokenRequest + map: + fields: + - name: audience + type: + scalar: string + default: "" + - name: expirationSeconds + type: + scalar: numeric +- name: io.k8s.api.storage.v1beta1.VolumeAttachment + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.storage.v1beta1.VolumeAttachmentSpec + default: {} + - name: status + type: + namedType: io.k8s.api.storage.v1beta1.VolumeAttachmentStatus + default: {} +- name: io.k8s.api.storage.v1beta1.VolumeAttachmentSource + map: + fields: + - name: inlineVolumeSpec + type: + namedType: io.k8s.api.core.v1.PersistentVolumeSpec + - name: persistentVolumeName + type: + scalar: string +- name: io.k8s.api.storage.v1beta1.VolumeAttachmentSpec + map: + fields: + - name: attacher + type: + scalar: string + default: "" + - name: nodeName + type: + scalar: string + default: "" + - name: source + type: + namedType: io.k8s.api.storage.v1beta1.VolumeAttachmentSource + default: {} +- name: io.k8s.api.storage.v1beta1.VolumeAttachmentStatus + map: + fields: + - name: attachError + type: + namedType: io.k8s.api.storage.v1beta1.VolumeError + - name: attached + type: + scalar: boolean + default: false + - name: attachmentMetadata + type: + map: + elementType: + scalar: string + - name: detachError + type: + namedType: io.k8s.api.storage.v1beta1.VolumeError +- name: io.k8s.api.storage.v1beta1.VolumeError + map: + fields: + - name: message + type: + scalar: string + - name: time + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} +- name: io.k8s.api.storage.v1beta1.VolumeNodeResources + map: + fields: + - name: count + type: + scalar: numeric +- name: io.k8s.apimachinery.pkg.api.resource.Quantity + scalar: untyped +- name: io.k8s.apimachinery.pkg.apis.meta.v1.Condition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + default: "" + - name: observedGeneration + type: + scalar: numeric + - name: reason + type: + scalar: string + default: "" + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions + map: + fields: + - name: apiVersion + type: + scalar: string + - name: dryRun + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: gracePeriodSeconds + type: + scalar: numeric + - name: kind + type: + scalar: string + - name: orphanDependents + type: + scalar: boolean + - name: preconditions + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions + - name: propagationPolicy + type: + scalar: string +- name: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1 + map: + elementType: + scalar: untyped + list: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic + map: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic +- name: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + map: + fields: + - name: matchExpressions + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement + elementRelationship: atomic + - name: matchLabels + type: + map: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement + map: + fields: + - name: key + type: + scalar: string + default: "" + - name: operator + type: + scalar: string + default: "" + - name: values + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry + map: + fields: + - name: apiVersion + type: + scalar: string + - name: fieldsType + type: + scalar: string + - name: fieldsV1 + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1 + - name: manager + type: + scalar: string + - name: operation + type: + scalar: string + - name: time + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time +- name: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime + scalar: untyped +- name: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + map: + fields: + - name: annotations + type: + map: + elementType: + scalar: string + - name: clusterName + type: + scalar: string + - name: creationTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: deletionGracePeriodSeconds + type: + scalar: numeric + - name: deletionTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: finalizers + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: generateName + type: + scalar: string + - name: generation + type: + scalar: numeric + - name: labels + type: + map: + elementType: + scalar: string + - name: managedFields + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry + elementRelationship: atomic + - name: name + type: + scalar: string + - name: namespace + type: + scalar: string + - name: ownerReferences + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference + elementRelationship: associative + keys: + - uid + - name: resourceVersion + type: + scalar: string + - name: selfLink + type: + scalar: string + - name: uid + type: + scalar: string +- name: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference + map: + fields: + - name: apiVersion + type: + scalar: string + default: "" + - name: blockOwnerDeletion + type: + scalar: boolean + - name: controller + type: + scalar: boolean + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" + - name: uid + type: + scalar: string + default: "" +- name: io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions + map: + fields: + - name: resourceVersion + type: + scalar: string + - name: uid + type: + scalar: string +- name: io.k8s.apimachinery.pkg.apis.meta.v1.Time + scalar: untyped +- name: io.k8s.apimachinery.pkg.runtime.RawExtension + map: + elementType: + scalar: untyped + list: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic + map: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic +- name: io.k8s.apimachinery.pkg.util.intstr.IntOrString + scalar: untyped +- name: __untyped_atomic_ + scalar: untyped + list: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic + map: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic +- name: __untyped_deduced_ + scalar: untyped + list: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic + map: + elementType: + namedType: __untyped_deduced_ + elementRelationship: separable +`) diff --git a/vendor/k8s.io/client-go/applyconfigurations/meta/v1/condition.go b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/condition.go new file mode 100644 index 0000000000..c84102cdde --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/condition.go @@ -0,0 +1,88 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ConditionApplyConfiguration represents an declarative configuration of the Condition type for use +// with apply. +type ConditionApplyConfiguration struct { + Type *string `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + LastTransitionTime *v1.Time `json:"lastTransitionTime,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` +} + +// ConditionApplyConfiguration constructs an declarative configuration of the Condition type for use with +// apply. +func Condition() *ConditionApplyConfiguration { + return &ConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *ConditionApplyConfiguration) WithType(value string) *ConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *ConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *ConditionApplyConfiguration) WithObservedGeneration(value int64) *ConditionApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *ConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *ConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *ConditionApplyConfiguration) WithReason(value string) *ConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *ConditionApplyConfiguration) WithMessage(value string) *ConditionApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/meta/v1/deleteoptions.go b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/deleteoptions.go new file mode 100644 index 0000000000..289bef43de --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/deleteoptions.go @@ -0,0 +1,98 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// DeleteOptionsApplyConfiguration represents an declarative configuration of the DeleteOptions type for use +// with apply. +type DeleteOptionsApplyConfiguration struct { + TypeMetaApplyConfiguration `json:",inline"` + GracePeriodSeconds *int64 `json:"gracePeriodSeconds,omitempty"` + Preconditions *PreconditionsApplyConfiguration `json:"preconditions,omitempty"` + OrphanDependents *bool `json:"orphanDependents,omitempty"` + PropagationPolicy *metav1.DeletionPropagation `json:"propagationPolicy,omitempty"` + DryRun []string `json:"dryRun,omitempty"` +} + +// DeleteOptionsApplyConfiguration constructs an declarative configuration of the DeleteOptions type for use with +// apply. +func DeleteOptions() *DeleteOptionsApplyConfiguration { + return &DeleteOptionsApplyConfiguration{} +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *DeleteOptionsApplyConfiguration) WithKind(value string) *DeleteOptionsApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *DeleteOptionsApplyConfiguration) WithAPIVersion(value string) *DeleteOptionsApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithGracePeriodSeconds sets the GracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GracePeriodSeconds field is set to the value of the last call. +func (b *DeleteOptionsApplyConfiguration) WithGracePeriodSeconds(value int64) *DeleteOptionsApplyConfiguration { + b.GracePeriodSeconds = &value + return b +} + +// WithPreconditions sets the Preconditions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Preconditions field is set to the value of the last call. +func (b *DeleteOptionsApplyConfiguration) WithPreconditions(value *PreconditionsApplyConfiguration) *DeleteOptionsApplyConfiguration { + b.Preconditions = value + return b +} + +// WithOrphanDependents sets the OrphanDependents field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the OrphanDependents field is set to the value of the last call. +func (b *DeleteOptionsApplyConfiguration) WithOrphanDependents(value bool) *DeleteOptionsApplyConfiguration { + b.OrphanDependents = &value + return b +} + +// WithPropagationPolicy sets the PropagationPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PropagationPolicy field is set to the value of the last call. +func (b *DeleteOptionsApplyConfiguration) WithPropagationPolicy(value metav1.DeletionPropagation) *DeleteOptionsApplyConfiguration { + b.PropagationPolicy = &value + return b +} + +// WithDryRun adds the given value to the DryRun field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the DryRun field. +func (b *DeleteOptionsApplyConfiguration) WithDryRun(values ...string) *DeleteOptionsApplyConfiguration { + for i := range values { + b.DryRun = append(b.DryRun, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/meta/v1/labelselector.go b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/labelselector.go new file mode 100644 index 0000000000..6d24bc363b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/labelselector.go @@ -0,0 +1,59 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// LabelSelectorApplyConfiguration represents an declarative configuration of the LabelSelector type for use +// with apply. +type LabelSelectorApplyConfiguration struct { + MatchLabels map[string]string `json:"matchLabels,omitempty"` + MatchExpressions []LabelSelectorRequirementApplyConfiguration `json:"matchExpressions,omitempty"` +} + +// LabelSelectorApplyConfiguration constructs an declarative configuration of the LabelSelector type for use with +// apply. +func LabelSelector() *LabelSelectorApplyConfiguration { + return &LabelSelectorApplyConfiguration{} +} + +// WithMatchLabels puts the entries into the MatchLabels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the MatchLabels field, +// overwriting an existing map entries in MatchLabels field with the same key. +func (b *LabelSelectorApplyConfiguration) WithMatchLabels(entries map[string]string) *LabelSelectorApplyConfiguration { + if b.MatchLabels == nil && len(entries) > 0 { + b.MatchLabels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.MatchLabels[k] = v + } + return b +} + +// WithMatchExpressions adds the given value to the MatchExpressions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the MatchExpressions field. +func (b *LabelSelectorApplyConfiguration) WithMatchExpressions(values ...*LabelSelectorRequirementApplyConfiguration) *LabelSelectorApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithMatchExpressions") + } + b.MatchExpressions = append(b.MatchExpressions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/meta/v1/labelselectorrequirement.go b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/labelselectorrequirement.go new file mode 100644 index 0000000000..ff70f365e6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/labelselectorrequirement.go @@ -0,0 +1,63 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// LabelSelectorRequirementApplyConfiguration represents an declarative configuration of the LabelSelectorRequirement type for use +// with apply. +type LabelSelectorRequirementApplyConfiguration struct { + Key *string `json:"key,omitempty"` + Operator *v1.LabelSelectorOperator `json:"operator,omitempty"` + Values []string `json:"values,omitempty"` +} + +// LabelSelectorRequirementApplyConfiguration constructs an declarative configuration of the LabelSelectorRequirement type for use with +// apply. +func LabelSelectorRequirement() *LabelSelectorRequirementApplyConfiguration { + return &LabelSelectorRequirementApplyConfiguration{} +} + +// WithKey sets the Key field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Key field is set to the value of the last call. +func (b *LabelSelectorRequirementApplyConfiguration) WithKey(value string) *LabelSelectorRequirementApplyConfiguration { + b.Key = &value + return b +} + +// WithOperator sets the Operator field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Operator field is set to the value of the last call. +func (b *LabelSelectorRequirementApplyConfiguration) WithOperator(value v1.LabelSelectorOperator) *LabelSelectorRequirementApplyConfiguration { + b.Operator = &value + return b +} + +// WithValues adds the given value to the Values field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Values field. +func (b *LabelSelectorRequirementApplyConfiguration) WithValues(values ...string) *LabelSelectorRequirementApplyConfiguration { + for i := range values { + b.Values = append(b.Values, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/meta/v1/managedfieldsentry.go b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/managedfieldsentry.go new file mode 100644 index 0000000000..919ad9f12c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/managedfieldsentry.go @@ -0,0 +1,88 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ManagedFieldsEntryApplyConfiguration represents an declarative configuration of the ManagedFieldsEntry type for use +// with apply. +type ManagedFieldsEntryApplyConfiguration struct { + Manager *string `json:"manager,omitempty"` + Operation *v1.ManagedFieldsOperationType `json:"operation,omitempty"` + APIVersion *string `json:"apiVersion,omitempty"` + Time *v1.Time `json:"time,omitempty"` + FieldsType *string `json:"fieldsType,omitempty"` + FieldsV1 *v1.FieldsV1 `json:"fieldsV1,omitempty"` +} + +// ManagedFieldsEntryApplyConfiguration constructs an declarative configuration of the ManagedFieldsEntry type for use with +// apply. +func ManagedFieldsEntry() *ManagedFieldsEntryApplyConfiguration { + return &ManagedFieldsEntryApplyConfiguration{} +} + +// WithManager sets the Manager field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Manager field is set to the value of the last call. +func (b *ManagedFieldsEntryApplyConfiguration) WithManager(value string) *ManagedFieldsEntryApplyConfiguration { + b.Manager = &value + return b +} + +// WithOperation sets the Operation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Operation field is set to the value of the last call. +func (b *ManagedFieldsEntryApplyConfiguration) WithOperation(value v1.ManagedFieldsOperationType) *ManagedFieldsEntryApplyConfiguration { + b.Operation = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ManagedFieldsEntryApplyConfiguration) WithAPIVersion(value string) *ManagedFieldsEntryApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithTime sets the Time field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Time field is set to the value of the last call. +func (b *ManagedFieldsEntryApplyConfiguration) WithTime(value v1.Time) *ManagedFieldsEntryApplyConfiguration { + b.Time = &value + return b +} + +// WithFieldsType sets the FieldsType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FieldsType field is set to the value of the last call. +func (b *ManagedFieldsEntryApplyConfiguration) WithFieldsType(value string) *ManagedFieldsEntryApplyConfiguration { + b.FieldsType = &value + return b +} + +// WithFieldsV1 sets the FieldsV1 field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FieldsV1 field is set to the value of the last call. +func (b *ManagedFieldsEntryApplyConfiguration) WithFieldsV1(value v1.FieldsV1) *ManagedFieldsEntryApplyConfiguration { + b.FieldsV1 = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/meta/v1/objectmeta.go b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/objectmeta.go new file mode 100644 index 0000000000..0aeaeba274 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/objectmeta.go @@ -0,0 +1,189 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" +) + +// ObjectMetaApplyConfiguration represents an declarative configuration of the ObjectMeta type for use +// with apply. +type ObjectMetaApplyConfiguration struct { + Name *string `json:"name,omitempty"` + GenerateName *string `json:"generateName,omitempty"` + Namespace *string `json:"namespace,omitempty"` + SelfLink *string `json:"selfLink,omitempty"` + UID *types.UID `json:"uid,omitempty"` + ResourceVersion *string `json:"resourceVersion,omitempty"` + Generation *int64 `json:"generation,omitempty"` + CreationTimestamp *v1.Time `json:"creationTimestamp,omitempty"` + DeletionTimestamp *v1.Time `json:"deletionTimestamp,omitempty"` + DeletionGracePeriodSeconds *int64 `json:"deletionGracePeriodSeconds,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + OwnerReferences []OwnerReferenceApplyConfiguration `json:"ownerReferences,omitempty"` + Finalizers []string `json:"finalizers,omitempty"` + ClusterName *string `json:"clusterName,omitempty"` +} + +// ObjectMetaApplyConfiguration constructs an declarative configuration of the ObjectMeta type for use with +// apply. +func ObjectMeta() *ObjectMetaApplyConfiguration { + return &ObjectMetaApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ObjectMetaApplyConfiguration) WithName(value string) *ObjectMetaApplyConfiguration { + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ObjectMetaApplyConfiguration) WithGenerateName(value string) *ObjectMetaApplyConfiguration { + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ObjectMetaApplyConfiguration) WithNamespace(value string) *ObjectMetaApplyConfiguration { + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ObjectMetaApplyConfiguration) WithSelfLink(value string) *ObjectMetaApplyConfiguration { + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ObjectMetaApplyConfiguration) WithUID(value types.UID) *ObjectMetaApplyConfiguration { + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ObjectMetaApplyConfiguration) WithResourceVersion(value string) *ObjectMetaApplyConfiguration { + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ObjectMetaApplyConfiguration) WithGeneration(value int64) *ObjectMetaApplyConfiguration { + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ObjectMetaApplyConfiguration) WithCreationTimestamp(value v1.Time) *ObjectMetaApplyConfiguration { + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ObjectMetaApplyConfiguration) WithDeletionTimestamp(value v1.Time) *ObjectMetaApplyConfiguration { + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ObjectMetaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ObjectMetaApplyConfiguration { + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ObjectMetaApplyConfiguration) WithLabels(entries map[string]string) *ObjectMetaApplyConfiguration { + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ObjectMetaApplyConfiguration) WithAnnotations(entries map[string]string) *ObjectMetaApplyConfiguration { + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ObjectMetaApplyConfiguration) WithOwnerReferences(values ...*OwnerReferenceApplyConfiguration) *ObjectMetaApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ObjectMetaApplyConfiguration) WithFinalizers(values ...string) *ObjectMetaApplyConfiguration { + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ObjectMetaApplyConfiguration) WithClusterName(value string) *ObjectMetaApplyConfiguration { + b.ClusterName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/meta/v1/ownerreference.go b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/ownerreference.go new file mode 100644 index 0000000000..b3117d6a4b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/ownerreference.go @@ -0,0 +1,88 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + types "k8s.io/apimachinery/pkg/types" +) + +// OwnerReferenceApplyConfiguration represents an declarative configuration of the OwnerReference type for use +// with apply. +type OwnerReferenceApplyConfiguration struct { + APIVersion *string `json:"apiVersion,omitempty"` + Kind *string `json:"kind,omitempty"` + Name *string `json:"name,omitempty"` + UID *types.UID `json:"uid,omitempty"` + Controller *bool `json:"controller,omitempty"` + BlockOwnerDeletion *bool `json:"blockOwnerDeletion,omitempty"` +} + +// OwnerReferenceApplyConfiguration constructs an declarative configuration of the OwnerReference type for use with +// apply. +func OwnerReference() *OwnerReferenceApplyConfiguration { + return &OwnerReferenceApplyConfiguration{} +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *OwnerReferenceApplyConfiguration) WithAPIVersion(value string) *OwnerReferenceApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *OwnerReferenceApplyConfiguration) WithKind(value string) *OwnerReferenceApplyConfiguration { + b.Kind = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *OwnerReferenceApplyConfiguration) WithName(value string) *OwnerReferenceApplyConfiguration { + b.Name = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *OwnerReferenceApplyConfiguration) WithUID(value types.UID) *OwnerReferenceApplyConfiguration { + b.UID = &value + return b +} + +// WithController sets the Controller field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Controller field is set to the value of the last call. +func (b *OwnerReferenceApplyConfiguration) WithController(value bool) *OwnerReferenceApplyConfiguration { + b.Controller = &value + return b +} + +// WithBlockOwnerDeletion sets the BlockOwnerDeletion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the BlockOwnerDeletion field is set to the value of the last call. +func (b *OwnerReferenceApplyConfiguration) WithBlockOwnerDeletion(value bool) *OwnerReferenceApplyConfiguration { + b.BlockOwnerDeletion = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/meta/v1/preconditions.go b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/preconditions.go new file mode 100644 index 0000000000..f627733f1e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/preconditions.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + types "k8s.io/apimachinery/pkg/types" +) + +// PreconditionsApplyConfiguration represents an declarative configuration of the Preconditions type for use +// with apply. +type PreconditionsApplyConfiguration struct { + UID *types.UID `json:"uid,omitempty"` + ResourceVersion *string `json:"resourceVersion,omitempty"` +} + +// PreconditionsApplyConfiguration constructs an declarative configuration of the Preconditions type for use with +// apply. +func Preconditions() *PreconditionsApplyConfiguration { + return &PreconditionsApplyConfiguration{} +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PreconditionsApplyConfiguration) WithUID(value types.UID) *PreconditionsApplyConfiguration { + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PreconditionsApplyConfiguration) WithResourceVersion(value string) *PreconditionsApplyConfiguration { + b.ResourceVersion = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/meta/v1/typemeta.go b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/typemeta.go new file mode 100644 index 0000000000..877b0890e8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/meta/v1/typemeta.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// TypeMetaApplyConfiguration represents an declarative configuration of the TypeMeta type for use +// with apply. +type TypeMetaApplyConfiguration struct { + Kind *string `json:"kind,omitempty"` + APIVersion *string `json:"apiVersion,omitempty"` +} + +// TypeMetaApplyConfiguration constructs an declarative configuration of the TypeMeta type for use with +// apply. +func TypeMeta() *TypeMetaApplyConfiguration { + return &TypeMetaApplyConfiguration{} +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *TypeMetaApplyConfiguration) WithKind(value string) *TypeMetaApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *TypeMetaApplyConfiguration) WithAPIVersion(value string) *TypeMetaApplyConfiguration { + b.APIVersion = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/httpingresspath.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/httpingresspath.go new file mode 100644 index 0000000000..07b6a67f6a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/httpingresspath.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/networking/v1" +) + +// HTTPIngressPathApplyConfiguration represents an declarative configuration of the HTTPIngressPath type for use +// with apply. +type HTTPIngressPathApplyConfiguration struct { + Path *string `json:"path,omitempty"` + PathType *v1.PathType `json:"pathType,omitempty"` + Backend *IngressBackendApplyConfiguration `json:"backend,omitempty"` +} + +// HTTPIngressPathApplyConfiguration constructs an declarative configuration of the HTTPIngressPath type for use with +// apply. +func HTTPIngressPath() *HTTPIngressPathApplyConfiguration { + return &HTTPIngressPathApplyConfiguration{} +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *HTTPIngressPathApplyConfiguration) WithPath(value string) *HTTPIngressPathApplyConfiguration { + b.Path = &value + return b +} + +// WithPathType sets the PathType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PathType field is set to the value of the last call. +func (b *HTTPIngressPathApplyConfiguration) WithPathType(value v1.PathType) *HTTPIngressPathApplyConfiguration { + b.PathType = &value + return b +} + +// WithBackend sets the Backend field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Backend field is set to the value of the last call. +func (b *HTTPIngressPathApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *HTTPIngressPathApplyConfiguration { + b.Backend = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/httpingressrulevalue.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/httpingressrulevalue.go new file mode 100644 index 0000000000..fef529d696 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/httpingressrulevalue.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// HTTPIngressRuleValueApplyConfiguration represents an declarative configuration of the HTTPIngressRuleValue type for use +// with apply. +type HTTPIngressRuleValueApplyConfiguration struct { + Paths []HTTPIngressPathApplyConfiguration `json:"paths,omitempty"` +} + +// HTTPIngressRuleValueApplyConfiguration constructs an declarative configuration of the HTTPIngressRuleValue type for use with +// apply. +func HTTPIngressRuleValue() *HTTPIngressRuleValueApplyConfiguration { + return &HTTPIngressRuleValueApplyConfiguration{} +} + +// WithPaths adds the given value to the Paths field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Paths field. +func (b *HTTPIngressRuleValueApplyConfiguration) WithPaths(values ...*HTTPIngressPathApplyConfiguration) *HTTPIngressRuleValueApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPaths") + } + b.Paths = append(b.Paths, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingress.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingress.go new file mode 100644 index 0000000000..08cbec9042 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingress.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apinetworkingv1 "k8s.io/api/networking/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// IngressApplyConfiguration represents an declarative configuration of the Ingress type for use +// with apply. +type IngressApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *IngressSpecApplyConfiguration `json:"spec,omitempty"` + Status *IngressStatusApplyConfiguration `json:"status,omitempty"` +} + +// Ingress constructs an declarative configuration of the Ingress type for use with +// apply. +func Ingress(name, namespace string) *IngressApplyConfiguration { + b := &IngressApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Ingress") + b.WithAPIVersion("networking.k8s.io/v1") + return b +} + +// ExtractIngress extracts the applied configuration owned by fieldManager from +// ingress. If no managedFields are found in ingress for fieldManager, a +// IngressApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API. +// ExtractIngress provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractIngress(ingress *apinetworkingv1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) { + b := &IngressApplyConfiguration{} + err := managedfields.ExtractInto(ingress, internal.Parser().Type("io.k8s.api.networking.v1.Ingress"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(ingress.Name) + b.WithNamespace(ingress.Namespace) + + b.WithKind("Ingress") + b.WithAPIVersion("networking.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithKind(value string) *IngressApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithAPIVersion(value string) *IngressApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithName(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithGenerateName(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithNamespace(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithSelfLink(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithUID(value types.UID) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithResourceVersion(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithGeneration(value int64) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *IngressApplyConfiguration) WithLabels(entries map[string]string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *IngressApplyConfiguration) WithAnnotations(entries map[string]string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *IngressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *IngressApplyConfiguration) WithFinalizers(values ...string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithClusterName(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *IngressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithSpec(value *IngressSpecApplyConfiguration) *IngressApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithStatus(value *IngressStatusApplyConfiguration) *IngressApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressbackend.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressbackend.go new file mode 100644 index 0000000000..5757135991 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressbackend.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// IngressBackendApplyConfiguration represents an declarative configuration of the IngressBackend type for use +// with apply. +type IngressBackendApplyConfiguration struct { + Service *IngressServiceBackendApplyConfiguration `json:"service,omitempty"` + Resource *corev1.TypedLocalObjectReferenceApplyConfiguration `json:"resource,omitempty"` +} + +// IngressBackendApplyConfiguration constructs an declarative configuration of the IngressBackend type for use with +// apply. +func IngressBackend() *IngressBackendApplyConfiguration { + return &IngressBackendApplyConfiguration{} +} + +// WithService sets the Service field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Service field is set to the value of the last call. +func (b *IngressBackendApplyConfiguration) WithService(value *IngressServiceBackendApplyConfiguration) *IngressBackendApplyConfiguration { + b.Service = value + return b +} + +// WithResource sets the Resource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resource field is set to the value of the last call. +func (b *IngressBackendApplyConfiguration) WithResource(value *corev1.TypedLocalObjectReferenceApplyConfiguration) *IngressBackendApplyConfiguration { + b.Resource = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclass.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclass.go new file mode 100644 index 0000000000..105dc7d716 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclass.go @@ -0,0 +1,254 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apinetworkingv1 "k8s.io/api/networking/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// IngressClassApplyConfiguration represents an declarative configuration of the IngressClass type for use +// with apply. +type IngressClassApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *IngressClassSpecApplyConfiguration `json:"spec,omitempty"` +} + +// IngressClass constructs an declarative configuration of the IngressClass type for use with +// apply. +func IngressClass(name string) *IngressClassApplyConfiguration { + b := &IngressClassApplyConfiguration{} + b.WithName(name) + b.WithKind("IngressClass") + b.WithAPIVersion("networking.k8s.io/v1") + return b +} + +// ExtractIngressClass extracts the applied configuration owned by fieldManager from +// ingressClass. If no managedFields are found in ingressClass for fieldManager, a +// IngressClassApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// ingressClass must be a unmodified IngressClass API object that was retrieved from the Kubernetes API. +// ExtractIngressClass provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractIngressClass(ingressClass *apinetworkingv1.IngressClass, fieldManager string) (*IngressClassApplyConfiguration, error) { + b := &IngressClassApplyConfiguration{} + err := managedfields.ExtractInto(ingressClass, internal.Parser().Type("io.k8s.api.networking.v1.IngressClass"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(ingressClass.Name) + + b.WithKind("IngressClass") + b.WithAPIVersion("networking.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithKind(value string) *IngressClassApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithAPIVersion(value string) *IngressClassApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithName(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithGenerateName(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithNamespace(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithSelfLink(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithUID(value types.UID) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithResourceVersion(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithGeneration(value int64) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *IngressClassApplyConfiguration) WithLabels(entries map[string]string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *IngressClassApplyConfiguration) WithAnnotations(entries map[string]string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *IngressClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *IngressClassApplyConfiguration) WithFinalizers(values ...string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithClusterName(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *IngressClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithSpec(value *IngressClassSpecApplyConfiguration) *IngressClassApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclassparametersreference.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclassparametersreference.go new file mode 100644 index 0000000000..a020d3a8df --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclassparametersreference.go @@ -0,0 +1,75 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// IngressClassParametersReferenceApplyConfiguration represents an declarative configuration of the IngressClassParametersReference type for use +// with apply. +type IngressClassParametersReferenceApplyConfiguration struct { + APIGroup *string `json:"apiGroup,omitempty"` + Kind *string `json:"kind,omitempty"` + Name *string `json:"name,omitempty"` + Scope *string `json:"scope,omitempty"` + Namespace *string `json:"namespace,omitempty"` +} + +// IngressClassParametersReferenceApplyConfiguration constructs an declarative configuration of the IngressClassParametersReference type for use with +// apply. +func IngressClassParametersReference() *IngressClassParametersReferenceApplyConfiguration { + return &IngressClassParametersReferenceApplyConfiguration{} +} + +// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIGroup field is set to the value of the last call. +func (b *IngressClassParametersReferenceApplyConfiguration) WithAPIGroup(value string) *IngressClassParametersReferenceApplyConfiguration { + b.APIGroup = &value + return b +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *IngressClassParametersReferenceApplyConfiguration) WithKind(value string) *IngressClassParametersReferenceApplyConfiguration { + b.Kind = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *IngressClassParametersReferenceApplyConfiguration) WithName(value string) *IngressClassParametersReferenceApplyConfiguration { + b.Name = &value + return b +} + +// WithScope sets the Scope field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Scope field is set to the value of the last call. +func (b *IngressClassParametersReferenceApplyConfiguration) WithScope(value string) *IngressClassParametersReferenceApplyConfiguration { + b.Scope = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *IngressClassParametersReferenceApplyConfiguration) WithNamespace(value string) *IngressClassParametersReferenceApplyConfiguration { + b.Namespace = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclassspec.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclassspec.go new file mode 100644 index 0000000000..ec0423e708 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclassspec.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// IngressClassSpecApplyConfiguration represents an declarative configuration of the IngressClassSpec type for use +// with apply. +type IngressClassSpecApplyConfiguration struct { + Controller *string `json:"controller,omitempty"` + Parameters *IngressClassParametersReferenceApplyConfiguration `json:"parameters,omitempty"` +} + +// IngressClassSpecApplyConfiguration constructs an declarative configuration of the IngressClassSpec type for use with +// apply. +func IngressClassSpec() *IngressClassSpecApplyConfiguration { + return &IngressClassSpecApplyConfiguration{} +} + +// WithController sets the Controller field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Controller field is set to the value of the last call. +func (b *IngressClassSpecApplyConfiguration) WithController(value string) *IngressClassSpecApplyConfiguration { + b.Controller = &value + return b +} + +// WithParameters sets the Parameters field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Parameters field is set to the value of the last call. +func (b *IngressClassSpecApplyConfiguration) WithParameters(value *IngressClassParametersReferenceApplyConfiguration) *IngressClassSpecApplyConfiguration { + b.Parameters = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressrule.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressrule.go new file mode 100644 index 0000000000..8153e88fe2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressrule.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// IngressRuleApplyConfiguration represents an declarative configuration of the IngressRule type for use +// with apply. +type IngressRuleApplyConfiguration struct { + Host *string `json:"host,omitempty"` + IngressRuleValueApplyConfiguration `json:",omitempty,inline"` +} + +// IngressRuleApplyConfiguration constructs an declarative configuration of the IngressRule type for use with +// apply. +func IngressRule() *IngressRuleApplyConfiguration { + return &IngressRuleApplyConfiguration{} +} + +// WithHost sets the Host field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Host field is set to the value of the last call. +func (b *IngressRuleApplyConfiguration) WithHost(value string) *IngressRuleApplyConfiguration { + b.Host = &value + return b +} + +// WithHTTP sets the HTTP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HTTP field is set to the value of the last call. +func (b *IngressRuleApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleApplyConfiguration { + b.HTTP = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressrulevalue.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressrulevalue.go new file mode 100644 index 0000000000..d0e094387c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressrulevalue.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// IngressRuleValueApplyConfiguration represents an declarative configuration of the IngressRuleValue type for use +// with apply. +type IngressRuleValueApplyConfiguration struct { + HTTP *HTTPIngressRuleValueApplyConfiguration `json:"http,omitempty"` +} + +// IngressRuleValueApplyConfiguration constructs an declarative configuration of the IngressRuleValue type for use with +// apply. +func IngressRuleValue() *IngressRuleValueApplyConfiguration { + return &IngressRuleValueApplyConfiguration{} +} + +// WithHTTP sets the HTTP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HTTP field is set to the value of the last call. +func (b *IngressRuleValueApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleValueApplyConfiguration { + b.HTTP = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressservicebackend.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressservicebackend.go new file mode 100644 index 0000000000..399739631b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressservicebackend.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// IngressServiceBackendApplyConfiguration represents an declarative configuration of the IngressServiceBackend type for use +// with apply. +type IngressServiceBackendApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Port *ServiceBackendPortApplyConfiguration `json:"port,omitempty"` +} + +// IngressServiceBackendApplyConfiguration constructs an declarative configuration of the IngressServiceBackend type for use with +// apply. +func IngressServiceBackend() *IngressServiceBackendApplyConfiguration { + return &IngressServiceBackendApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *IngressServiceBackendApplyConfiguration) WithName(value string) *IngressServiceBackendApplyConfiguration { + b.Name = &value + return b +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *IngressServiceBackendApplyConfiguration) WithPort(value *ServiceBackendPortApplyConfiguration) *IngressServiceBackendApplyConfiguration { + b.Port = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressspec.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressspec.go new file mode 100644 index 0000000000..635514ecf7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressspec.go @@ -0,0 +1,76 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// IngressSpecApplyConfiguration represents an declarative configuration of the IngressSpec type for use +// with apply. +type IngressSpecApplyConfiguration struct { + IngressClassName *string `json:"ingressClassName,omitempty"` + DefaultBackend *IngressBackendApplyConfiguration `json:"defaultBackend,omitempty"` + TLS []IngressTLSApplyConfiguration `json:"tls,omitempty"` + Rules []IngressRuleApplyConfiguration `json:"rules,omitempty"` +} + +// IngressSpecApplyConfiguration constructs an declarative configuration of the IngressSpec type for use with +// apply. +func IngressSpec() *IngressSpecApplyConfiguration { + return &IngressSpecApplyConfiguration{} +} + +// WithIngressClassName sets the IngressClassName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IngressClassName field is set to the value of the last call. +func (b *IngressSpecApplyConfiguration) WithIngressClassName(value string) *IngressSpecApplyConfiguration { + b.IngressClassName = &value + return b +} + +// WithDefaultBackend sets the DefaultBackend field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DefaultBackend field is set to the value of the last call. +func (b *IngressSpecApplyConfiguration) WithDefaultBackend(value *IngressBackendApplyConfiguration) *IngressSpecApplyConfiguration { + b.DefaultBackend = value + return b +} + +// WithTLS adds the given value to the TLS field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the TLS field. +func (b *IngressSpecApplyConfiguration) WithTLS(values ...*IngressTLSApplyConfiguration) *IngressSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTLS") + } + b.TLS = append(b.TLS, *values[i]) + } + return b +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *IngressSpecApplyConfiguration) WithRules(values ...*IngressRuleApplyConfiguration) *IngressSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressstatus.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressstatus.go new file mode 100644 index 0000000000..dd8b25d836 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressstatus.go @@ -0,0 +1,43 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// IngressStatusApplyConfiguration represents an declarative configuration of the IngressStatus type for use +// with apply. +type IngressStatusApplyConfiguration struct { + LoadBalancer *v1.LoadBalancerStatusApplyConfiguration `json:"loadBalancer,omitempty"` +} + +// IngressStatusApplyConfiguration constructs an declarative configuration of the IngressStatus type for use with +// apply. +func IngressStatus() *IngressStatusApplyConfiguration { + return &IngressStatusApplyConfiguration{} +} + +// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LoadBalancer field is set to the value of the last call. +func (b *IngressStatusApplyConfiguration) WithLoadBalancer(value *v1.LoadBalancerStatusApplyConfiguration) *IngressStatusApplyConfiguration { + b.LoadBalancer = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingresstls.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingresstls.go new file mode 100644 index 0000000000..4d8d369f7c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingresstls.go @@ -0,0 +1,50 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// IngressTLSApplyConfiguration represents an declarative configuration of the IngressTLS type for use +// with apply. +type IngressTLSApplyConfiguration struct { + Hosts []string `json:"hosts,omitempty"` + SecretName *string `json:"secretName,omitempty"` +} + +// IngressTLSApplyConfiguration constructs an declarative configuration of the IngressTLS type for use with +// apply. +func IngressTLS() *IngressTLSApplyConfiguration { + return &IngressTLSApplyConfiguration{} +} + +// WithHosts adds the given value to the Hosts field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Hosts field. +func (b *IngressTLSApplyConfiguration) WithHosts(values ...string) *IngressTLSApplyConfiguration { + for i := range values { + b.Hosts = append(b.Hosts, values[i]) + } + return b +} + +// WithSecretName sets the SecretName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretName field is set to the value of the last call. +func (b *IngressTLSApplyConfiguration) WithSecretName(value string) *IngressTLSApplyConfiguration { + b.SecretName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ipblock.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ipblock.go new file mode 100644 index 0000000000..1efd6edfdc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/ipblock.go @@ -0,0 +1,50 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// IPBlockApplyConfiguration represents an declarative configuration of the IPBlock type for use +// with apply. +type IPBlockApplyConfiguration struct { + CIDR *string `json:"cidr,omitempty"` + Except []string `json:"except,omitempty"` +} + +// IPBlockApplyConfiguration constructs an declarative configuration of the IPBlock type for use with +// apply. +func IPBlock() *IPBlockApplyConfiguration { + return &IPBlockApplyConfiguration{} +} + +// WithCIDR sets the CIDR field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CIDR field is set to the value of the last call. +func (b *IPBlockApplyConfiguration) WithCIDR(value string) *IPBlockApplyConfiguration { + b.CIDR = &value + return b +} + +// WithExcept adds the given value to the Except field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Except field. +func (b *IPBlockApplyConfiguration) WithExcept(values ...string) *IPBlockApplyConfiguration { + for i := range values { + b.Except = append(b.Except, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicy.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicy.go new file mode 100644 index 0000000000..061111183d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicy.go @@ -0,0 +1,256 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apinetworkingv1 "k8s.io/api/networking/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// NetworkPolicyApplyConfiguration represents an declarative configuration of the NetworkPolicy type for use +// with apply. +type NetworkPolicyApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *NetworkPolicySpecApplyConfiguration `json:"spec,omitempty"` +} + +// NetworkPolicy constructs an declarative configuration of the NetworkPolicy type for use with +// apply. +func NetworkPolicy(name, namespace string) *NetworkPolicyApplyConfiguration { + b := &NetworkPolicyApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("NetworkPolicy") + b.WithAPIVersion("networking.k8s.io/v1") + return b +} + +// ExtractNetworkPolicy extracts the applied configuration owned by fieldManager from +// networkPolicy. If no managedFields are found in networkPolicy for fieldManager, a +// NetworkPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// networkPolicy must be a unmodified NetworkPolicy API object that was retrieved from the Kubernetes API. +// ExtractNetworkPolicy provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractNetworkPolicy(networkPolicy *apinetworkingv1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) { + b := &NetworkPolicyApplyConfiguration{} + err := managedfields.ExtractInto(networkPolicy, internal.Parser().Type("io.k8s.api.networking.v1.NetworkPolicy"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(networkPolicy.Name) + b.WithNamespace(networkPolicy.Namespace) + + b.WithKind("NetworkPolicy") + b.WithAPIVersion("networking.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithKind(value string) *NetworkPolicyApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithAPIVersion(value string) *NetworkPolicyApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithName(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithGenerateName(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithNamespace(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithSelfLink(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithUID(value types.UID) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithResourceVersion(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithGeneration(value int64) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *NetworkPolicyApplyConfiguration) WithLabels(entries map[string]string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *NetworkPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *NetworkPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *NetworkPolicyApplyConfiguration) WithFinalizers(values ...string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithClusterName(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *NetworkPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithSpec(value *NetworkPolicySpecApplyConfiguration) *NetworkPolicyApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyegressrule.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyegressrule.go new file mode 100644 index 0000000000..e5751c4413 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyegressrule.go @@ -0,0 +1,58 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// NetworkPolicyEgressRuleApplyConfiguration represents an declarative configuration of the NetworkPolicyEgressRule type for use +// with apply. +type NetworkPolicyEgressRuleApplyConfiguration struct { + Ports []NetworkPolicyPortApplyConfiguration `json:"ports,omitempty"` + To []NetworkPolicyPeerApplyConfiguration `json:"to,omitempty"` +} + +// NetworkPolicyEgressRuleApplyConfiguration constructs an declarative configuration of the NetworkPolicyEgressRule type for use with +// apply. +func NetworkPolicyEgressRule() *NetworkPolicyEgressRuleApplyConfiguration { + return &NetworkPolicyEgressRuleApplyConfiguration{} +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *NetworkPolicyEgressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} + +// WithTo adds the given value to the To field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the To field. +func (b *NetworkPolicyEgressRuleApplyConfiguration) WithTo(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTo") + } + b.To = append(b.To, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyingressrule.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyingressrule.go new file mode 100644 index 0000000000..630fe1fabe --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyingressrule.go @@ -0,0 +1,58 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// NetworkPolicyIngressRuleApplyConfiguration represents an declarative configuration of the NetworkPolicyIngressRule type for use +// with apply. +type NetworkPolicyIngressRuleApplyConfiguration struct { + Ports []NetworkPolicyPortApplyConfiguration `json:"ports,omitempty"` + From []NetworkPolicyPeerApplyConfiguration `json:"from,omitempty"` +} + +// NetworkPolicyIngressRuleApplyConfiguration constructs an declarative configuration of the NetworkPolicyIngressRule type for use with +// apply. +func NetworkPolicyIngressRule() *NetworkPolicyIngressRuleApplyConfiguration { + return &NetworkPolicyIngressRuleApplyConfiguration{} +} + +// WithPorts adds the given value to the Ports field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ports field. +func (b *NetworkPolicyIngressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} + +// WithFrom adds the given value to the From field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the From field. +func (b *NetworkPolicyIngressRuleApplyConfiguration) WithFrom(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithFrom") + } + b.From = append(b.From, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicypeer.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicypeer.go new file mode 100644 index 0000000000..909b651c04 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicypeer.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// NetworkPolicyPeerApplyConfiguration represents an declarative configuration of the NetworkPolicyPeer type for use +// with apply. +type NetworkPolicyPeerApplyConfiguration struct { + PodSelector *v1.LabelSelectorApplyConfiguration `json:"podSelector,omitempty"` + NamespaceSelector *v1.LabelSelectorApplyConfiguration `json:"namespaceSelector,omitempty"` + IPBlock *IPBlockApplyConfiguration `json:"ipBlock,omitempty"` +} + +// NetworkPolicyPeerApplyConfiguration constructs an declarative configuration of the NetworkPolicyPeer type for use with +// apply. +func NetworkPolicyPeer() *NetworkPolicyPeerApplyConfiguration { + return &NetworkPolicyPeerApplyConfiguration{} +} + +// WithPodSelector sets the PodSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodSelector field is set to the value of the last call. +func (b *NetworkPolicyPeerApplyConfiguration) WithPodSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration { + b.PodSelector = value + return b +} + +// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NamespaceSelector field is set to the value of the last call. +func (b *NetworkPolicyPeerApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration { + b.NamespaceSelector = value + return b +} + +// WithIPBlock sets the IPBlock field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IPBlock field is set to the value of the last call. +func (b *NetworkPolicyPeerApplyConfiguration) WithIPBlock(value *IPBlockApplyConfiguration) *NetworkPolicyPeerApplyConfiguration { + b.IPBlock = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyport.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyport.go new file mode 100644 index 0000000000..73dbed1d89 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyport.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// NetworkPolicyPortApplyConfiguration represents an declarative configuration of the NetworkPolicyPort type for use +// with apply. +type NetworkPolicyPortApplyConfiguration struct { + Protocol *v1.Protocol `json:"protocol,omitempty"` + Port *intstr.IntOrString `json:"port,omitempty"` + EndPort *int32 `json:"endPort,omitempty"` +} + +// NetworkPolicyPortApplyConfiguration constructs an declarative configuration of the NetworkPolicyPort type for use with +// apply. +func NetworkPolicyPort() *NetworkPolicyPortApplyConfiguration { + return &NetworkPolicyPortApplyConfiguration{} +} + +// WithProtocol sets the Protocol field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Protocol field is set to the value of the last call. +func (b *NetworkPolicyPortApplyConfiguration) WithProtocol(value v1.Protocol) *NetworkPolicyPortApplyConfiguration { + b.Protocol = &value + return b +} + +// WithPort sets the Port field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Port field is set to the value of the last call. +func (b *NetworkPolicyPortApplyConfiguration) WithPort(value intstr.IntOrString) *NetworkPolicyPortApplyConfiguration { + b.Port = &value + return b +} + +// WithEndPort sets the EndPort field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the EndPort field is set to the value of the last call. +func (b *NetworkPolicyPortApplyConfiguration) WithEndPort(value int32) *NetworkPolicyPortApplyConfiguration { + b.EndPort = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyspec.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyspec.go new file mode 100644 index 0000000000..882d8233a9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyspec.go @@ -0,0 +1,83 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apinetworkingv1 "k8s.io/api/networking/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// NetworkPolicySpecApplyConfiguration represents an declarative configuration of the NetworkPolicySpec type for use +// with apply. +type NetworkPolicySpecApplyConfiguration struct { + PodSelector *v1.LabelSelectorApplyConfiguration `json:"podSelector,omitempty"` + Ingress []NetworkPolicyIngressRuleApplyConfiguration `json:"ingress,omitempty"` + Egress []NetworkPolicyEgressRuleApplyConfiguration `json:"egress,omitempty"` + PolicyTypes []apinetworkingv1.PolicyType `json:"policyTypes,omitempty"` +} + +// NetworkPolicySpecApplyConfiguration constructs an declarative configuration of the NetworkPolicySpec type for use with +// apply. +func NetworkPolicySpec() *NetworkPolicySpecApplyConfiguration { + return &NetworkPolicySpecApplyConfiguration{} +} + +// WithPodSelector sets the PodSelector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodSelector field is set to the value of the last call. +func (b *NetworkPolicySpecApplyConfiguration) WithPodSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicySpecApplyConfiguration { + b.PodSelector = value + return b +} + +// WithIngress adds the given value to the Ingress field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ingress field. +func (b *NetworkPolicySpecApplyConfiguration) WithIngress(values ...*NetworkPolicyIngressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithIngress") + } + b.Ingress = append(b.Ingress, *values[i]) + } + return b +} + +// WithEgress adds the given value to the Egress field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Egress field. +func (b *NetworkPolicySpecApplyConfiguration) WithEgress(values ...*NetworkPolicyEgressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEgress") + } + b.Egress = append(b.Egress, *values[i]) + } + return b +} + +// WithPolicyTypes adds the given value to the PolicyTypes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the PolicyTypes field. +func (b *NetworkPolicySpecApplyConfiguration) WithPolicyTypes(values ...apinetworkingv1.PolicyType) *NetworkPolicySpecApplyConfiguration { + for i := range values { + b.PolicyTypes = append(b.PolicyTypes, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1/servicebackendport.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/servicebackendport.go new file mode 100644 index 0000000000..ec278960ca --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1/servicebackendport.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// ServiceBackendPortApplyConfiguration represents an declarative configuration of the ServiceBackendPort type for use +// with apply. +type ServiceBackendPortApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Number *int32 `json:"number,omitempty"` +} + +// ServiceBackendPortApplyConfiguration constructs an declarative configuration of the ServiceBackendPort type for use with +// apply. +func ServiceBackendPort() *ServiceBackendPortApplyConfiguration { + return &ServiceBackendPortApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ServiceBackendPortApplyConfiguration) WithName(value string) *ServiceBackendPortApplyConfiguration { + b.Name = &value + return b +} + +// WithNumber sets the Number field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Number field is set to the value of the last call. +func (b *ServiceBackendPortApplyConfiguration) WithNumber(value int32) *ServiceBackendPortApplyConfiguration { + b.Number = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/httpingresspath.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/httpingresspath.go new file mode 100644 index 0000000000..b12907e81c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/httpingresspath.go @@ -0,0 +1,61 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/networking/v1beta1" +) + +// HTTPIngressPathApplyConfiguration represents an declarative configuration of the HTTPIngressPath type for use +// with apply. +type HTTPIngressPathApplyConfiguration struct { + Path *string `json:"path,omitempty"` + PathType *v1beta1.PathType `json:"pathType,omitempty"` + Backend *IngressBackendApplyConfiguration `json:"backend,omitempty"` +} + +// HTTPIngressPathApplyConfiguration constructs an declarative configuration of the HTTPIngressPath type for use with +// apply. +func HTTPIngressPath() *HTTPIngressPathApplyConfiguration { + return &HTTPIngressPathApplyConfiguration{} +} + +// WithPath sets the Path field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Path field is set to the value of the last call. +func (b *HTTPIngressPathApplyConfiguration) WithPath(value string) *HTTPIngressPathApplyConfiguration { + b.Path = &value + return b +} + +// WithPathType sets the PathType field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PathType field is set to the value of the last call. +func (b *HTTPIngressPathApplyConfiguration) WithPathType(value v1beta1.PathType) *HTTPIngressPathApplyConfiguration { + b.PathType = &value + return b +} + +// WithBackend sets the Backend field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Backend field is set to the value of the last call. +func (b *HTTPIngressPathApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *HTTPIngressPathApplyConfiguration { + b.Backend = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/httpingressrulevalue.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/httpingressrulevalue.go new file mode 100644 index 0000000000..3137bc5eb0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/httpingressrulevalue.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// HTTPIngressRuleValueApplyConfiguration represents an declarative configuration of the HTTPIngressRuleValue type for use +// with apply. +type HTTPIngressRuleValueApplyConfiguration struct { + Paths []HTTPIngressPathApplyConfiguration `json:"paths,omitempty"` +} + +// HTTPIngressRuleValueApplyConfiguration constructs an declarative configuration of the HTTPIngressRuleValue type for use with +// apply. +func HTTPIngressRuleValue() *HTTPIngressRuleValueApplyConfiguration { + return &HTTPIngressRuleValueApplyConfiguration{} +} + +// WithPaths adds the given value to the Paths field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Paths field. +func (b *HTTPIngressRuleValueApplyConfiguration) WithPaths(values ...*HTTPIngressPathApplyConfiguration) *HTTPIngressRuleValueApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPaths") + } + b.Paths = append(b.Paths, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingress.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingress.go new file mode 100644 index 0000000000..3d15cf1270 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingress.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + networkingv1beta1 "k8s.io/api/networking/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// IngressApplyConfiguration represents an declarative configuration of the Ingress type for use +// with apply. +type IngressApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *IngressSpecApplyConfiguration `json:"spec,omitempty"` + Status *IngressStatusApplyConfiguration `json:"status,omitempty"` +} + +// Ingress constructs an declarative configuration of the Ingress type for use with +// apply. +func Ingress(name, namespace string) *IngressApplyConfiguration { + b := &IngressApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Ingress") + b.WithAPIVersion("networking.k8s.io/v1beta1") + return b +} + +// ExtractIngress extracts the applied configuration owned by fieldManager from +// ingress. If no managedFields are found in ingress for fieldManager, a +// IngressApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API. +// ExtractIngress provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractIngress(ingress *networkingv1beta1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) { + b := &IngressApplyConfiguration{} + err := managedfields.ExtractInto(ingress, internal.Parser().Type("io.k8s.api.networking.v1beta1.Ingress"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(ingress.Name) + b.WithNamespace(ingress.Namespace) + + b.WithKind("Ingress") + b.WithAPIVersion("networking.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithKind(value string) *IngressApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithAPIVersion(value string) *IngressApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithName(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithGenerateName(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithNamespace(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithSelfLink(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithUID(value types.UID) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithResourceVersion(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithGeneration(value int64) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *IngressApplyConfiguration) WithLabels(entries map[string]string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *IngressApplyConfiguration) WithAnnotations(entries map[string]string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *IngressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *IngressApplyConfiguration) WithFinalizers(values ...string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithClusterName(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *IngressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithSpec(value *IngressSpecApplyConfiguration) *IngressApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithStatus(value *IngressStatusApplyConfiguration) *IngressApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressbackend.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressbackend.go new file mode 100644 index 0000000000..f19c2f2ee2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressbackend.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// IngressBackendApplyConfiguration represents an declarative configuration of the IngressBackend type for use +// with apply. +type IngressBackendApplyConfiguration struct { + ServiceName *string `json:"serviceName,omitempty"` + ServicePort *intstr.IntOrString `json:"servicePort,omitempty"` + Resource *v1.TypedLocalObjectReferenceApplyConfiguration `json:"resource,omitempty"` +} + +// IngressBackendApplyConfiguration constructs an declarative configuration of the IngressBackend type for use with +// apply. +func IngressBackend() *IngressBackendApplyConfiguration { + return &IngressBackendApplyConfiguration{} +} + +// WithServiceName sets the ServiceName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ServiceName field is set to the value of the last call. +func (b *IngressBackendApplyConfiguration) WithServiceName(value string) *IngressBackendApplyConfiguration { + b.ServiceName = &value + return b +} + +// WithServicePort sets the ServicePort field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ServicePort field is set to the value of the last call. +func (b *IngressBackendApplyConfiguration) WithServicePort(value intstr.IntOrString) *IngressBackendApplyConfiguration { + b.ServicePort = &value + return b +} + +// WithResource sets the Resource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resource field is set to the value of the last call. +func (b *IngressBackendApplyConfiguration) WithResource(value *v1.TypedLocalObjectReferenceApplyConfiguration) *IngressBackendApplyConfiguration { + b.Resource = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclass.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclass.go new file mode 100644 index 0000000000..f80fae107d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclass.go @@ -0,0 +1,254 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + networkingv1beta1 "k8s.io/api/networking/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// IngressClassApplyConfiguration represents an declarative configuration of the IngressClass type for use +// with apply. +type IngressClassApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *IngressClassSpecApplyConfiguration `json:"spec,omitempty"` +} + +// IngressClass constructs an declarative configuration of the IngressClass type for use with +// apply. +func IngressClass(name string) *IngressClassApplyConfiguration { + b := &IngressClassApplyConfiguration{} + b.WithName(name) + b.WithKind("IngressClass") + b.WithAPIVersion("networking.k8s.io/v1beta1") + return b +} + +// ExtractIngressClass extracts the applied configuration owned by fieldManager from +// ingressClass. If no managedFields are found in ingressClass for fieldManager, a +// IngressClassApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// ingressClass must be a unmodified IngressClass API object that was retrieved from the Kubernetes API. +// ExtractIngressClass provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractIngressClass(ingressClass *networkingv1beta1.IngressClass, fieldManager string) (*IngressClassApplyConfiguration, error) { + b := &IngressClassApplyConfiguration{} + err := managedfields.ExtractInto(ingressClass, internal.Parser().Type("io.k8s.api.networking.v1beta1.IngressClass"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(ingressClass.Name) + + b.WithKind("IngressClass") + b.WithAPIVersion("networking.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithKind(value string) *IngressClassApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithAPIVersion(value string) *IngressClassApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithName(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithGenerateName(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithNamespace(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithSelfLink(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithUID(value types.UID) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithResourceVersion(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithGeneration(value int64) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *IngressClassApplyConfiguration) WithLabels(entries map[string]string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *IngressClassApplyConfiguration) WithAnnotations(entries map[string]string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *IngressClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *IngressClassApplyConfiguration) WithFinalizers(values ...string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithClusterName(value string) *IngressClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *IngressClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *IngressClassApplyConfiguration) WithSpec(value *IngressClassSpecApplyConfiguration) *IngressClassApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclassparametersreference.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclassparametersreference.go new file mode 100644 index 0000000000..e6ca805e47 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclassparametersreference.go @@ -0,0 +1,75 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IngressClassParametersReferenceApplyConfiguration represents an declarative configuration of the IngressClassParametersReference type for use +// with apply. +type IngressClassParametersReferenceApplyConfiguration struct { + APIGroup *string `json:"apiGroup,omitempty"` + Kind *string `json:"kind,omitempty"` + Name *string `json:"name,omitempty"` + Scope *string `json:"scope,omitempty"` + Namespace *string `json:"namespace,omitempty"` +} + +// IngressClassParametersReferenceApplyConfiguration constructs an declarative configuration of the IngressClassParametersReference type for use with +// apply. +func IngressClassParametersReference() *IngressClassParametersReferenceApplyConfiguration { + return &IngressClassParametersReferenceApplyConfiguration{} +} + +// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIGroup field is set to the value of the last call. +func (b *IngressClassParametersReferenceApplyConfiguration) WithAPIGroup(value string) *IngressClassParametersReferenceApplyConfiguration { + b.APIGroup = &value + return b +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *IngressClassParametersReferenceApplyConfiguration) WithKind(value string) *IngressClassParametersReferenceApplyConfiguration { + b.Kind = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *IngressClassParametersReferenceApplyConfiguration) WithName(value string) *IngressClassParametersReferenceApplyConfiguration { + b.Name = &value + return b +} + +// WithScope sets the Scope field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Scope field is set to the value of the last call. +func (b *IngressClassParametersReferenceApplyConfiguration) WithScope(value string) *IngressClassParametersReferenceApplyConfiguration { + b.Scope = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *IngressClassParametersReferenceApplyConfiguration) WithNamespace(value string) *IngressClassParametersReferenceApplyConfiguration { + b.Namespace = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclassspec.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclassspec.go new file mode 100644 index 0000000000..51040462ca --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclassspec.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IngressClassSpecApplyConfiguration represents an declarative configuration of the IngressClassSpec type for use +// with apply. +type IngressClassSpecApplyConfiguration struct { + Controller *string `json:"controller,omitempty"` + Parameters *IngressClassParametersReferenceApplyConfiguration `json:"parameters,omitempty"` +} + +// IngressClassSpecApplyConfiguration constructs an declarative configuration of the IngressClassSpec type for use with +// apply. +func IngressClassSpec() *IngressClassSpecApplyConfiguration { + return &IngressClassSpecApplyConfiguration{} +} + +// WithController sets the Controller field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Controller field is set to the value of the last call. +func (b *IngressClassSpecApplyConfiguration) WithController(value string) *IngressClassSpecApplyConfiguration { + b.Controller = &value + return b +} + +// WithParameters sets the Parameters field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Parameters field is set to the value of the last call. +func (b *IngressClassSpecApplyConfiguration) WithParameters(value *IngressClassParametersReferenceApplyConfiguration) *IngressClassSpecApplyConfiguration { + b.Parameters = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressrule.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressrule.go new file mode 100644 index 0000000000..015541eeb9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressrule.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IngressRuleApplyConfiguration represents an declarative configuration of the IngressRule type for use +// with apply. +type IngressRuleApplyConfiguration struct { + Host *string `json:"host,omitempty"` + IngressRuleValueApplyConfiguration `json:",omitempty,inline"` +} + +// IngressRuleApplyConfiguration constructs an declarative configuration of the IngressRule type for use with +// apply. +func IngressRule() *IngressRuleApplyConfiguration { + return &IngressRuleApplyConfiguration{} +} + +// WithHost sets the Host field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Host field is set to the value of the last call. +func (b *IngressRuleApplyConfiguration) WithHost(value string) *IngressRuleApplyConfiguration { + b.Host = &value + return b +} + +// WithHTTP sets the HTTP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HTTP field is set to the value of the last call. +func (b *IngressRuleApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleApplyConfiguration { + b.HTTP = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressrulevalue.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressrulevalue.go new file mode 100644 index 0000000000..2d03c7b132 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressrulevalue.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IngressRuleValueApplyConfiguration represents an declarative configuration of the IngressRuleValue type for use +// with apply. +type IngressRuleValueApplyConfiguration struct { + HTTP *HTTPIngressRuleValueApplyConfiguration `json:"http,omitempty"` +} + +// IngressRuleValueApplyConfiguration constructs an declarative configuration of the IngressRuleValue type for use with +// apply. +func IngressRuleValue() *IngressRuleValueApplyConfiguration { + return &IngressRuleValueApplyConfiguration{} +} + +// WithHTTP sets the HTTP field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HTTP field is set to the value of the last call. +func (b *IngressRuleValueApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleValueApplyConfiguration { + b.HTTP = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressspec.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressspec.go new file mode 100644 index 0000000000..1ab4d8bb73 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressspec.go @@ -0,0 +1,76 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IngressSpecApplyConfiguration represents an declarative configuration of the IngressSpec type for use +// with apply. +type IngressSpecApplyConfiguration struct { + IngressClassName *string `json:"ingressClassName,omitempty"` + Backend *IngressBackendApplyConfiguration `json:"backend,omitempty"` + TLS []IngressTLSApplyConfiguration `json:"tls,omitempty"` + Rules []IngressRuleApplyConfiguration `json:"rules,omitempty"` +} + +// IngressSpecApplyConfiguration constructs an declarative configuration of the IngressSpec type for use with +// apply. +func IngressSpec() *IngressSpecApplyConfiguration { + return &IngressSpecApplyConfiguration{} +} + +// WithIngressClassName sets the IngressClassName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the IngressClassName field is set to the value of the last call. +func (b *IngressSpecApplyConfiguration) WithIngressClassName(value string) *IngressSpecApplyConfiguration { + b.IngressClassName = &value + return b +} + +// WithBackend sets the Backend field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Backend field is set to the value of the last call. +func (b *IngressSpecApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *IngressSpecApplyConfiguration { + b.Backend = value + return b +} + +// WithTLS adds the given value to the TLS field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the TLS field. +func (b *IngressSpecApplyConfiguration) WithTLS(values ...*IngressTLSApplyConfiguration) *IngressSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTLS") + } + b.TLS = append(b.TLS, *values[i]) + } + return b +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *IngressSpecApplyConfiguration) WithRules(values ...*IngressRuleApplyConfiguration) *IngressSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressstatus.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressstatus.go new file mode 100644 index 0000000000..941769594e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressstatus.go @@ -0,0 +1,43 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// IngressStatusApplyConfiguration represents an declarative configuration of the IngressStatus type for use +// with apply. +type IngressStatusApplyConfiguration struct { + LoadBalancer *v1.LoadBalancerStatusApplyConfiguration `json:"loadBalancer,omitempty"` +} + +// IngressStatusApplyConfiguration constructs an declarative configuration of the IngressStatus type for use with +// apply. +func IngressStatus() *IngressStatusApplyConfiguration { + return &IngressStatusApplyConfiguration{} +} + +// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LoadBalancer field is set to the value of the last call. +func (b *IngressStatusApplyConfiguration) WithLoadBalancer(value *v1.LoadBalancerStatusApplyConfiguration) *IngressStatusApplyConfiguration { + b.LoadBalancer = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingresstls.go b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingresstls.go new file mode 100644 index 0000000000..8ca93a0bc2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingresstls.go @@ -0,0 +1,50 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IngressTLSApplyConfiguration represents an declarative configuration of the IngressTLS type for use +// with apply. +type IngressTLSApplyConfiguration struct { + Hosts []string `json:"hosts,omitempty"` + SecretName *string `json:"secretName,omitempty"` +} + +// IngressTLSApplyConfiguration constructs an declarative configuration of the IngressTLS type for use with +// apply. +func IngressTLS() *IngressTLSApplyConfiguration { + return &IngressTLSApplyConfiguration{} +} + +// WithHosts adds the given value to the Hosts field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Hosts field. +func (b *IngressTLSApplyConfiguration) WithHosts(values ...string) *IngressTLSApplyConfiguration { + for i := range values { + b.Hosts = append(b.Hosts, values[i]) + } + return b +} + +// WithSecretName sets the SecretName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SecretName field is set to the value of the last call. +func (b *IngressTLSApplyConfiguration) WithSecretName(value string) *IngressTLSApplyConfiguration { + b.SecretName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/node/v1/overhead.go b/vendor/k8s.io/client-go/applyconfigurations/node/v1/overhead.go new file mode 100644 index 0000000000..9eec002671 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/node/v1/overhead.go @@ -0,0 +1,43 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// OverheadApplyConfiguration represents an declarative configuration of the Overhead type for use +// with apply. +type OverheadApplyConfiguration struct { + PodFixed *v1.ResourceList `json:"podFixed,omitempty"` +} + +// OverheadApplyConfiguration constructs an declarative configuration of the Overhead type for use with +// apply. +func Overhead() *OverheadApplyConfiguration { + return &OverheadApplyConfiguration{} +} + +// WithPodFixed sets the PodFixed field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodFixed field is set to the value of the last call. +func (b *OverheadApplyConfiguration) WithPodFixed(value v1.ResourceList) *OverheadApplyConfiguration { + b.PodFixed = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/node/v1/runtimeclass.go b/vendor/k8s.io/client-go/applyconfigurations/node/v1/runtimeclass.go new file mode 100644 index 0000000000..9f6cbef595 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/node/v1/runtimeclass.go @@ -0,0 +1,272 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apinodev1 "k8s.io/api/node/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// RuntimeClassApplyConfiguration represents an declarative configuration of the RuntimeClass type for use +// with apply. +type RuntimeClassApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Handler *string `json:"handler,omitempty"` + Overhead *OverheadApplyConfiguration `json:"overhead,omitempty"` + Scheduling *SchedulingApplyConfiguration `json:"scheduling,omitempty"` +} + +// RuntimeClass constructs an declarative configuration of the RuntimeClass type for use with +// apply. +func RuntimeClass(name string) *RuntimeClassApplyConfiguration { + b := &RuntimeClassApplyConfiguration{} + b.WithName(name) + b.WithKind("RuntimeClass") + b.WithAPIVersion("node.k8s.io/v1") + return b +} + +// ExtractRuntimeClass extracts the applied configuration owned by fieldManager from +// runtimeClass. If no managedFields are found in runtimeClass for fieldManager, a +// RuntimeClassApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// runtimeClass must be a unmodified RuntimeClass API object that was retrieved from the Kubernetes API. +// ExtractRuntimeClass provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractRuntimeClass(runtimeClass *apinodev1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) { + b := &RuntimeClassApplyConfiguration{} + err := managedfields.ExtractInto(runtimeClass, internal.Parser().Type("io.k8s.api.node.v1.RuntimeClass"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(runtimeClass.Name) + + b.WithKind("RuntimeClass") + b.WithAPIVersion("node.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithKind(value string) *RuntimeClassApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithAPIVersion(value string) *RuntimeClassApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithName(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithGenerateName(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithNamespace(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithSelfLink(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithUID(value types.UID) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithResourceVersion(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithGeneration(value int64) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *RuntimeClassApplyConfiguration) WithLabels(entries map[string]string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *RuntimeClassApplyConfiguration) WithAnnotations(entries map[string]string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *RuntimeClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *RuntimeClassApplyConfiguration) WithFinalizers(values ...string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithClusterName(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *RuntimeClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithHandler sets the Handler field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Handler field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithHandler(value string) *RuntimeClassApplyConfiguration { + b.Handler = &value + return b +} + +// WithOverhead sets the Overhead field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Overhead field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithOverhead(value *OverheadApplyConfiguration) *RuntimeClassApplyConfiguration { + b.Overhead = value + return b +} + +// WithScheduling sets the Scheduling field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Scheduling field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithScheduling(value *SchedulingApplyConfiguration) *RuntimeClassApplyConfiguration { + b.Scheduling = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/node/v1/scheduling.go b/vendor/k8s.io/client-go/applyconfigurations/node/v1/scheduling.go new file mode 100644 index 0000000000..e01db85d7b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/node/v1/scheduling.go @@ -0,0 +1,63 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// SchedulingApplyConfiguration represents an declarative configuration of the Scheduling type for use +// with apply. +type SchedulingApplyConfiguration struct { + NodeSelector map[string]string `json:"nodeSelector,omitempty"` + Tolerations []v1.TolerationApplyConfiguration `json:"tolerations,omitempty"` +} + +// SchedulingApplyConfiguration constructs an declarative configuration of the Scheduling type for use with +// apply. +func Scheduling() *SchedulingApplyConfiguration { + return &SchedulingApplyConfiguration{} +} + +// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the NodeSelector field, +// overwriting an existing map entries in NodeSelector field with the same key. +func (b *SchedulingApplyConfiguration) WithNodeSelector(entries map[string]string) *SchedulingApplyConfiguration { + if b.NodeSelector == nil && len(entries) > 0 { + b.NodeSelector = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.NodeSelector[k] = v + } + return b +} + +// WithTolerations adds the given value to the Tolerations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Tolerations field. +func (b *SchedulingApplyConfiguration) WithTolerations(values ...*v1.TolerationApplyConfiguration) *SchedulingApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTolerations") + } + b.Tolerations = append(b.Tolerations, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/overhead.go b/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/overhead.go new file mode 100644 index 0000000000..1ddaa64acc --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/overhead.go @@ -0,0 +1,43 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// OverheadApplyConfiguration represents an declarative configuration of the Overhead type for use +// with apply. +type OverheadApplyConfiguration struct { + PodFixed *v1.ResourceList `json:"podFixed,omitempty"` +} + +// OverheadApplyConfiguration constructs an declarative configuration of the Overhead type for use with +// apply. +func Overhead() *OverheadApplyConfiguration { + return &OverheadApplyConfiguration{} +} + +// WithPodFixed sets the PodFixed field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodFixed field is set to the value of the last call. +func (b *OverheadApplyConfiguration) WithPodFixed(value v1.ResourceList) *OverheadApplyConfiguration { + b.PodFixed = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/runtimeclass.go b/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/runtimeclass.go new file mode 100644 index 0000000000..d40ba68b93 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/runtimeclass.go @@ -0,0 +1,254 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + nodev1alpha1 "k8s.io/api/node/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// RuntimeClassApplyConfiguration represents an declarative configuration of the RuntimeClass type for use +// with apply. +type RuntimeClassApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *RuntimeClassSpecApplyConfiguration `json:"spec,omitempty"` +} + +// RuntimeClass constructs an declarative configuration of the RuntimeClass type for use with +// apply. +func RuntimeClass(name string) *RuntimeClassApplyConfiguration { + b := &RuntimeClassApplyConfiguration{} + b.WithName(name) + b.WithKind("RuntimeClass") + b.WithAPIVersion("node.k8s.io/v1alpha1") + return b +} + +// ExtractRuntimeClass extracts the applied configuration owned by fieldManager from +// runtimeClass. If no managedFields are found in runtimeClass for fieldManager, a +// RuntimeClassApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// runtimeClass must be a unmodified RuntimeClass API object that was retrieved from the Kubernetes API. +// ExtractRuntimeClass provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractRuntimeClass(runtimeClass *nodev1alpha1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) { + b := &RuntimeClassApplyConfiguration{} + err := managedfields.ExtractInto(runtimeClass, internal.Parser().Type("io.k8s.api.node.v1alpha1.RuntimeClass"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(runtimeClass.Name) + + b.WithKind("RuntimeClass") + b.WithAPIVersion("node.k8s.io/v1alpha1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithKind(value string) *RuntimeClassApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithAPIVersion(value string) *RuntimeClassApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithName(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithGenerateName(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithNamespace(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithSelfLink(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithUID(value types.UID) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithResourceVersion(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithGeneration(value int64) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *RuntimeClassApplyConfiguration) WithLabels(entries map[string]string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *RuntimeClassApplyConfiguration) WithAnnotations(entries map[string]string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *RuntimeClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *RuntimeClassApplyConfiguration) WithFinalizers(values ...string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithClusterName(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *RuntimeClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithSpec(value *RuntimeClassSpecApplyConfiguration) *RuntimeClassApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/runtimeclassspec.go b/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/runtimeclassspec.go new file mode 100644 index 0000000000..86e8585ad3 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/runtimeclassspec.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// RuntimeClassSpecApplyConfiguration represents an declarative configuration of the RuntimeClassSpec type for use +// with apply. +type RuntimeClassSpecApplyConfiguration struct { + RuntimeHandler *string `json:"runtimeHandler,omitempty"` + Overhead *OverheadApplyConfiguration `json:"overhead,omitempty"` + Scheduling *SchedulingApplyConfiguration `json:"scheduling,omitempty"` +} + +// RuntimeClassSpecApplyConfiguration constructs an declarative configuration of the RuntimeClassSpec type for use with +// apply. +func RuntimeClassSpec() *RuntimeClassSpecApplyConfiguration { + return &RuntimeClassSpecApplyConfiguration{} +} + +// WithRuntimeHandler sets the RuntimeHandler field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RuntimeHandler field is set to the value of the last call. +func (b *RuntimeClassSpecApplyConfiguration) WithRuntimeHandler(value string) *RuntimeClassSpecApplyConfiguration { + b.RuntimeHandler = &value + return b +} + +// WithOverhead sets the Overhead field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Overhead field is set to the value of the last call. +func (b *RuntimeClassSpecApplyConfiguration) WithOverhead(value *OverheadApplyConfiguration) *RuntimeClassSpecApplyConfiguration { + b.Overhead = value + return b +} + +// WithScheduling sets the Scheduling field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Scheduling field is set to the value of the last call. +func (b *RuntimeClassSpecApplyConfiguration) WithScheduling(value *SchedulingApplyConfiguration) *RuntimeClassSpecApplyConfiguration { + b.Scheduling = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/scheduling.go b/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/scheduling.go new file mode 100644 index 0000000000..d4117d6bc7 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/scheduling.go @@ -0,0 +1,63 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// SchedulingApplyConfiguration represents an declarative configuration of the Scheduling type for use +// with apply. +type SchedulingApplyConfiguration struct { + NodeSelector map[string]string `json:"nodeSelector,omitempty"` + Tolerations []v1.TolerationApplyConfiguration `json:"tolerations,omitempty"` +} + +// SchedulingApplyConfiguration constructs an declarative configuration of the Scheduling type for use with +// apply. +func Scheduling() *SchedulingApplyConfiguration { + return &SchedulingApplyConfiguration{} +} + +// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the NodeSelector field, +// overwriting an existing map entries in NodeSelector field with the same key. +func (b *SchedulingApplyConfiguration) WithNodeSelector(entries map[string]string) *SchedulingApplyConfiguration { + if b.NodeSelector == nil && len(entries) > 0 { + b.NodeSelector = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.NodeSelector[k] = v + } + return b +} + +// WithTolerations adds the given value to the Tolerations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Tolerations field. +func (b *SchedulingApplyConfiguration) WithTolerations(values ...*v1.TolerationApplyConfiguration) *SchedulingApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTolerations") + } + b.Tolerations = append(b.Tolerations, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/overhead.go b/vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/overhead.go new file mode 100644 index 0000000000..e8c4895505 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/overhead.go @@ -0,0 +1,43 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// OverheadApplyConfiguration represents an declarative configuration of the Overhead type for use +// with apply. +type OverheadApplyConfiguration struct { + PodFixed *v1.ResourceList `json:"podFixed,omitempty"` +} + +// OverheadApplyConfiguration constructs an declarative configuration of the Overhead type for use with +// apply. +func Overhead() *OverheadApplyConfiguration { + return &OverheadApplyConfiguration{} +} + +// WithPodFixed sets the PodFixed field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodFixed field is set to the value of the last call. +func (b *OverheadApplyConfiguration) WithPodFixed(value v1.ResourceList) *OverheadApplyConfiguration { + b.PodFixed = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/runtimeclass.go b/vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/runtimeclass.go new file mode 100644 index 0000000000..b56bc0ce7f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/runtimeclass.go @@ -0,0 +1,272 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + nodev1beta1 "k8s.io/api/node/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// RuntimeClassApplyConfiguration represents an declarative configuration of the RuntimeClass type for use +// with apply. +type RuntimeClassApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Handler *string `json:"handler,omitempty"` + Overhead *OverheadApplyConfiguration `json:"overhead,omitempty"` + Scheduling *SchedulingApplyConfiguration `json:"scheduling,omitempty"` +} + +// RuntimeClass constructs an declarative configuration of the RuntimeClass type for use with +// apply. +func RuntimeClass(name string) *RuntimeClassApplyConfiguration { + b := &RuntimeClassApplyConfiguration{} + b.WithName(name) + b.WithKind("RuntimeClass") + b.WithAPIVersion("node.k8s.io/v1beta1") + return b +} + +// ExtractRuntimeClass extracts the applied configuration owned by fieldManager from +// runtimeClass. If no managedFields are found in runtimeClass for fieldManager, a +// RuntimeClassApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// runtimeClass must be a unmodified RuntimeClass API object that was retrieved from the Kubernetes API. +// ExtractRuntimeClass provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractRuntimeClass(runtimeClass *nodev1beta1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) { + b := &RuntimeClassApplyConfiguration{} + err := managedfields.ExtractInto(runtimeClass, internal.Parser().Type("io.k8s.api.node.v1beta1.RuntimeClass"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(runtimeClass.Name) + + b.WithKind("RuntimeClass") + b.WithAPIVersion("node.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithKind(value string) *RuntimeClassApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithAPIVersion(value string) *RuntimeClassApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithName(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithGenerateName(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithNamespace(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithSelfLink(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithUID(value types.UID) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithResourceVersion(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithGeneration(value int64) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *RuntimeClassApplyConfiguration) WithLabels(entries map[string]string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *RuntimeClassApplyConfiguration) WithAnnotations(entries map[string]string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *RuntimeClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *RuntimeClassApplyConfiguration) WithFinalizers(values ...string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithClusterName(value string) *RuntimeClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *RuntimeClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithHandler sets the Handler field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Handler field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithHandler(value string) *RuntimeClassApplyConfiguration { + b.Handler = &value + return b +} + +// WithOverhead sets the Overhead field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Overhead field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithOverhead(value *OverheadApplyConfiguration) *RuntimeClassApplyConfiguration { + b.Overhead = value + return b +} + +// WithScheduling sets the Scheduling field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Scheduling field is set to the value of the last call. +func (b *RuntimeClassApplyConfiguration) WithScheduling(value *SchedulingApplyConfiguration) *RuntimeClassApplyConfiguration { + b.Scheduling = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/scheduling.go b/vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/scheduling.go new file mode 100644 index 0000000000..10831d0ff5 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/scheduling.go @@ -0,0 +1,63 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// SchedulingApplyConfiguration represents an declarative configuration of the Scheduling type for use +// with apply. +type SchedulingApplyConfiguration struct { + NodeSelector map[string]string `json:"nodeSelector,omitempty"` + Tolerations []v1.TolerationApplyConfiguration `json:"tolerations,omitempty"` +} + +// SchedulingApplyConfiguration constructs an declarative configuration of the Scheduling type for use with +// apply. +func Scheduling() *SchedulingApplyConfiguration { + return &SchedulingApplyConfiguration{} +} + +// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the NodeSelector field, +// overwriting an existing map entries in NodeSelector field with the same key. +func (b *SchedulingApplyConfiguration) WithNodeSelector(entries map[string]string) *SchedulingApplyConfiguration { + if b.NodeSelector == nil && len(entries) > 0 { + b.NodeSelector = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.NodeSelector[k] = v + } + return b +} + +// WithTolerations adds the given value to the Tolerations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Tolerations field. +func (b *SchedulingApplyConfiguration) WithTolerations(values ...*v1.TolerationApplyConfiguration) *SchedulingApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTolerations") + } + b.Tolerations = append(b.Tolerations, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudget.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudget.go new file mode 100644 index 0000000000..3233f5386e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudget.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apipolicyv1 "k8s.io/api/policy/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodDisruptionBudgetApplyConfiguration represents an declarative configuration of the PodDisruptionBudget type for use +// with apply. +type PodDisruptionBudgetApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *PodDisruptionBudgetSpecApplyConfiguration `json:"spec,omitempty"` + Status *PodDisruptionBudgetStatusApplyConfiguration `json:"status,omitempty"` +} + +// PodDisruptionBudget constructs an declarative configuration of the PodDisruptionBudget type for use with +// apply. +func PodDisruptionBudget(name, namespace string) *PodDisruptionBudgetApplyConfiguration { + b := &PodDisruptionBudgetApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("PodDisruptionBudget") + b.WithAPIVersion("policy/v1") + return b +} + +// ExtractPodDisruptionBudget extracts the applied configuration owned by fieldManager from +// podDisruptionBudget. If no managedFields are found in podDisruptionBudget for fieldManager, a +// PodDisruptionBudgetApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// podDisruptionBudget must be a unmodified PodDisruptionBudget API object that was retrieved from the Kubernetes API. +// ExtractPodDisruptionBudget provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPodDisruptionBudget(podDisruptionBudget *apipolicyv1.PodDisruptionBudget, fieldManager string) (*PodDisruptionBudgetApplyConfiguration, error) { + b := &PodDisruptionBudgetApplyConfiguration{} + err := managedfields.ExtractInto(podDisruptionBudget, internal.Parser().Type("io.k8s.api.policy.v1.PodDisruptionBudget"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(podDisruptionBudget.Name) + b.WithNamespace(podDisruptionBudget.Namespace) + + b.WithKind("PodDisruptionBudget") + b.WithAPIVersion("policy/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithKind(value string) *PodDisruptionBudgetApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithAPIVersion(value string) *PodDisruptionBudgetApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithName(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithGenerateName(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithNamespace(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithSelfLink(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithUID(value types.UID) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithResourceVersion(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithGeneration(value int64) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PodDisruptionBudgetApplyConfiguration) WithLabels(entries map[string]string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PodDisruptionBudgetApplyConfiguration) WithAnnotations(entries map[string]string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PodDisruptionBudgetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PodDisruptionBudgetApplyConfiguration) WithFinalizers(values ...string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithClusterName(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PodDisruptionBudgetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithSpec(value *PodDisruptionBudgetSpecApplyConfiguration) *PodDisruptionBudgetApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithStatus(value *PodDisruptionBudgetStatusApplyConfiguration) *PodDisruptionBudgetApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudgetspec.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudgetspec.go new file mode 100644 index 0000000000..e2f49f528c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudgetspec.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodDisruptionBudgetSpecApplyConfiguration represents an declarative configuration of the PodDisruptionBudgetSpec type for use +// with apply. +type PodDisruptionBudgetSpecApplyConfiguration struct { + MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` +} + +// PodDisruptionBudgetSpecApplyConfiguration constructs an declarative configuration of the PodDisruptionBudgetSpec type for use with +// apply. +func PodDisruptionBudgetSpec() *PodDisruptionBudgetSpecApplyConfiguration { + return &PodDisruptionBudgetSpecApplyConfiguration{} +} + +// WithMinAvailable sets the MinAvailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinAvailable field is set to the value of the last call. +func (b *PodDisruptionBudgetSpecApplyConfiguration) WithMinAvailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration { + b.MinAvailable = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *PodDisruptionBudgetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *PodDisruptionBudgetSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxUnavailable field is set to the value of the last call. +func (b *PodDisruptionBudgetSpecApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration { + b.MaxUnavailable = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudgetstatus.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudgetstatus.go new file mode 100644 index 0000000000..2dd427b9e1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudgetstatus.go @@ -0,0 +1,109 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodDisruptionBudgetStatusApplyConfiguration represents an declarative configuration of the PodDisruptionBudgetStatus type for use +// with apply. +type PodDisruptionBudgetStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + DisruptedPods map[string]v1.Time `json:"disruptedPods,omitempty"` + DisruptionsAllowed *int32 `json:"disruptionsAllowed,omitempty"` + CurrentHealthy *int32 `json:"currentHealthy,omitempty"` + DesiredHealthy *int32 `json:"desiredHealthy,omitempty"` + ExpectedPods *int32 `json:"expectedPods,omitempty"` + Conditions []metav1.ConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// PodDisruptionBudgetStatusApplyConfiguration constructs an declarative configuration of the PodDisruptionBudgetStatus type for use with +// apply. +func PodDisruptionBudgetStatus() *PodDisruptionBudgetStatusApplyConfiguration { + return &PodDisruptionBudgetStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithObservedGeneration(value int64) *PodDisruptionBudgetStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithDisruptedPods puts the entries into the DisruptedPods field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the DisruptedPods field, +// overwriting an existing map entries in DisruptedPods field with the same key. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptedPods(entries map[string]v1.Time) *PodDisruptionBudgetStatusApplyConfiguration { + if b.DisruptedPods == nil && len(entries) > 0 { + b.DisruptedPods = make(map[string]v1.Time, len(entries)) + } + for k, v := range entries { + b.DisruptedPods[k] = v + } + return b +} + +// WithDisruptionsAllowed sets the DisruptionsAllowed field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DisruptionsAllowed field is set to the value of the last call. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptionsAllowed(value int32) *PodDisruptionBudgetStatusApplyConfiguration { + b.DisruptionsAllowed = &value + return b +} + +// WithCurrentHealthy sets the CurrentHealthy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentHealthy field is set to the value of the last call. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithCurrentHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration { + b.CurrentHealthy = &value + return b +} + +// WithDesiredHealthy sets the DesiredHealthy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DesiredHealthy field is set to the value of the last call. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithDesiredHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration { + b.DesiredHealthy = &value + return b +} + +// WithExpectedPods sets the ExpectedPods field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ExpectedPods field is set to the value of the last call. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithExpectedPods(value int32) *PodDisruptionBudgetStatusApplyConfiguration { + b.ExpectedPods = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithConditions(values ...*metav1.ConditionApplyConfiguration) *PodDisruptionBudgetStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedcsidriver.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedcsidriver.go new file mode 100644 index 0000000000..27b49bf153 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedcsidriver.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// AllowedCSIDriverApplyConfiguration represents an declarative configuration of the AllowedCSIDriver type for use +// with apply. +type AllowedCSIDriverApplyConfiguration struct { + Name *string `json:"name,omitempty"` +} + +// AllowedCSIDriverApplyConfiguration constructs an declarative configuration of the AllowedCSIDriver type for use with +// apply. +func AllowedCSIDriver() *AllowedCSIDriverApplyConfiguration { + return &AllowedCSIDriverApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *AllowedCSIDriverApplyConfiguration) WithName(value string) *AllowedCSIDriverApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedflexvolume.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedflexvolume.go new file mode 100644 index 0000000000..30c3724cfe --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedflexvolume.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// AllowedFlexVolumeApplyConfiguration represents an declarative configuration of the AllowedFlexVolume type for use +// with apply. +type AllowedFlexVolumeApplyConfiguration struct { + Driver *string `json:"driver,omitempty"` +} + +// AllowedFlexVolumeApplyConfiguration constructs an declarative configuration of the AllowedFlexVolume type for use with +// apply. +func AllowedFlexVolume() *AllowedFlexVolumeApplyConfiguration { + return &AllowedFlexVolumeApplyConfiguration{} +} + +// WithDriver sets the Driver field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Driver field is set to the value of the last call. +func (b *AllowedFlexVolumeApplyConfiguration) WithDriver(value string) *AllowedFlexVolumeApplyConfiguration { + b.Driver = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedhostpath.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedhostpath.go new file mode 100644 index 0000000000..493815d8d4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedhostpath.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// AllowedHostPathApplyConfiguration represents an declarative configuration of the AllowedHostPath type for use +// with apply. +type AllowedHostPathApplyConfiguration struct { + PathPrefix *string `json:"pathPrefix,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +// AllowedHostPathApplyConfiguration constructs an declarative configuration of the AllowedHostPath type for use with +// apply. +func AllowedHostPath() *AllowedHostPathApplyConfiguration { + return &AllowedHostPathApplyConfiguration{} +} + +// WithPathPrefix sets the PathPrefix field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PathPrefix field is set to the value of the last call. +func (b *AllowedHostPathApplyConfiguration) WithPathPrefix(value string) *AllowedHostPathApplyConfiguration { + b.PathPrefix = &value + return b +} + +// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnly field is set to the value of the last call. +func (b *AllowedHostPathApplyConfiguration) WithReadOnly(value bool) *AllowedHostPathApplyConfiguration { + b.ReadOnly = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/eviction.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/eviction.go new file mode 100644 index 0000000000..1db2695f7d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/eviction.go @@ -0,0 +1,256 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/policy/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// EvictionApplyConfiguration represents an declarative configuration of the Eviction type for use +// with apply. +type EvictionApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + DeleteOptions *v1.DeleteOptionsApplyConfiguration `json:"deleteOptions,omitempty"` +} + +// Eviction constructs an declarative configuration of the Eviction type for use with +// apply. +func Eviction(name, namespace string) *EvictionApplyConfiguration { + b := &EvictionApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Eviction") + b.WithAPIVersion("policy/v1beta1") + return b +} + +// ExtractEviction extracts the applied configuration owned by fieldManager from +// eviction. If no managedFields are found in eviction for fieldManager, a +// EvictionApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// eviction must be a unmodified Eviction API object that was retrieved from the Kubernetes API. +// ExtractEviction provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractEviction(eviction *v1beta1.Eviction, fieldManager string) (*EvictionApplyConfiguration, error) { + b := &EvictionApplyConfiguration{} + err := managedfields.ExtractInto(eviction, internal.Parser().Type("io.k8s.api.policy.v1beta1.Eviction"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(eviction.Name) + b.WithNamespace(eviction.Namespace) + + b.WithKind("Eviction") + b.WithAPIVersion("policy/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithKind(value string) *EvictionApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithAPIVersion(value string) *EvictionApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithName(value string) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithGenerateName(value string) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithNamespace(value string) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithSelfLink(value string) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithUID(value types.UID) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithResourceVersion(value string) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithGeneration(value int64) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *EvictionApplyConfiguration) WithLabels(entries map[string]string) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *EvictionApplyConfiguration) WithAnnotations(entries map[string]string) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *EvictionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *EvictionApplyConfiguration) WithFinalizers(values ...string) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithClusterName(value string) *EvictionApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *EvictionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithDeleteOptions sets the DeleteOptions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeleteOptions field is set to the value of the last call. +func (b *EvictionApplyConfiguration) WithDeleteOptions(value *v1.DeleteOptionsApplyConfiguration) *EvictionApplyConfiguration { + b.DeleteOptions = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/fsgroupstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/fsgroupstrategyoptions.go new file mode 100644 index 0000000000..06803b439d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/fsgroupstrategyoptions.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/policy/v1beta1" +) + +// FSGroupStrategyOptionsApplyConfiguration represents an declarative configuration of the FSGroupStrategyOptions type for use +// with apply. +type FSGroupStrategyOptionsApplyConfiguration struct { + Rule *v1beta1.FSGroupStrategyType `json:"rule,omitempty"` + Ranges []IDRangeApplyConfiguration `json:"ranges,omitempty"` +} + +// FSGroupStrategyOptionsApplyConfiguration constructs an declarative configuration of the FSGroupStrategyOptions type for use with +// apply. +func FSGroupStrategyOptions() *FSGroupStrategyOptionsApplyConfiguration { + return &FSGroupStrategyOptionsApplyConfiguration{} +} + +// WithRule sets the Rule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Rule field is set to the value of the last call. +func (b *FSGroupStrategyOptionsApplyConfiguration) WithRule(value v1beta1.FSGroupStrategyType) *FSGroupStrategyOptionsApplyConfiguration { + b.Rule = &value + return b +} + +// WithRanges adds the given value to the Ranges field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ranges field. +func (b *FSGroupStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *FSGroupStrategyOptionsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRanges") + } + b.Ranges = append(b.Ranges, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/hostportrange.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/hostportrange.go new file mode 100644 index 0000000000..7c79688139 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/hostportrange.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// HostPortRangeApplyConfiguration represents an declarative configuration of the HostPortRange type for use +// with apply. +type HostPortRangeApplyConfiguration struct { + Min *int32 `json:"min,omitempty"` + Max *int32 `json:"max,omitempty"` +} + +// HostPortRangeApplyConfiguration constructs an declarative configuration of the HostPortRange type for use with +// apply. +func HostPortRange() *HostPortRangeApplyConfiguration { + return &HostPortRangeApplyConfiguration{} +} + +// WithMin sets the Min field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Min field is set to the value of the last call. +func (b *HostPortRangeApplyConfiguration) WithMin(value int32) *HostPortRangeApplyConfiguration { + b.Min = &value + return b +} + +// WithMax sets the Max field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Max field is set to the value of the last call. +func (b *HostPortRangeApplyConfiguration) WithMax(value int32) *HostPortRangeApplyConfiguration { + b.Max = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/idrange.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/idrange.go new file mode 100644 index 0000000000..af46f76581 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/idrange.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// IDRangeApplyConfiguration represents an declarative configuration of the IDRange type for use +// with apply. +type IDRangeApplyConfiguration struct { + Min *int64 `json:"min,omitempty"` + Max *int64 `json:"max,omitempty"` +} + +// IDRangeApplyConfiguration constructs an declarative configuration of the IDRange type for use with +// apply. +func IDRange() *IDRangeApplyConfiguration { + return &IDRangeApplyConfiguration{} +} + +// WithMin sets the Min field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Min field is set to the value of the last call. +func (b *IDRangeApplyConfiguration) WithMin(value int64) *IDRangeApplyConfiguration { + b.Min = &value + return b +} + +// WithMax sets the Max field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Max field is set to the value of the last call. +func (b *IDRangeApplyConfiguration) WithMax(value int64) *IDRangeApplyConfiguration { + b.Max = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudget.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudget.go new file mode 100644 index 0000000000..36d0394451 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudget.go @@ -0,0 +1,265 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + policyv1beta1 "k8s.io/api/policy/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodDisruptionBudgetApplyConfiguration represents an declarative configuration of the PodDisruptionBudget type for use +// with apply. +type PodDisruptionBudgetApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *PodDisruptionBudgetSpecApplyConfiguration `json:"spec,omitempty"` + Status *PodDisruptionBudgetStatusApplyConfiguration `json:"status,omitempty"` +} + +// PodDisruptionBudget constructs an declarative configuration of the PodDisruptionBudget type for use with +// apply. +func PodDisruptionBudget(name, namespace string) *PodDisruptionBudgetApplyConfiguration { + b := &PodDisruptionBudgetApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("PodDisruptionBudget") + b.WithAPIVersion("policy/v1beta1") + return b +} + +// ExtractPodDisruptionBudget extracts the applied configuration owned by fieldManager from +// podDisruptionBudget. If no managedFields are found in podDisruptionBudget for fieldManager, a +// PodDisruptionBudgetApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// podDisruptionBudget must be a unmodified PodDisruptionBudget API object that was retrieved from the Kubernetes API. +// ExtractPodDisruptionBudget provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPodDisruptionBudget(podDisruptionBudget *policyv1beta1.PodDisruptionBudget, fieldManager string) (*PodDisruptionBudgetApplyConfiguration, error) { + b := &PodDisruptionBudgetApplyConfiguration{} + err := managedfields.ExtractInto(podDisruptionBudget, internal.Parser().Type("io.k8s.api.policy.v1beta1.PodDisruptionBudget"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(podDisruptionBudget.Name) + b.WithNamespace(podDisruptionBudget.Namespace) + + b.WithKind("PodDisruptionBudget") + b.WithAPIVersion("policy/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithKind(value string) *PodDisruptionBudgetApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithAPIVersion(value string) *PodDisruptionBudgetApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithName(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithGenerateName(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithNamespace(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithSelfLink(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithUID(value types.UID) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithResourceVersion(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithGeneration(value int64) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PodDisruptionBudgetApplyConfiguration) WithLabels(entries map[string]string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PodDisruptionBudgetApplyConfiguration) WithAnnotations(entries map[string]string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PodDisruptionBudgetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PodDisruptionBudgetApplyConfiguration) WithFinalizers(values ...string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithClusterName(value string) *PodDisruptionBudgetApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PodDisruptionBudgetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithSpec(value *PodDisruptionBudgetSpecApplyConfiguration) *PodDisruptionBudgetApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *PodDisruptionBudgetApplyConfiguration) WithStatus(value *PodDisruptionBudgetStatusApplyConfiguration) *PodDisruptionBudgetApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudgetspec.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudgetspec.go new file mode 100644 index 0000000000..b5d17d3fe0 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudgetspec.go @@ -0,0 +1,62 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + intstr "k8s.io/apimachinery/pkg/util/intstr" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodDisruptionBudgetSpecApplyConfiguration represents an declarative configuration of the PodDisruptionBudgetSpec type for use +// with apply. +type PodDisruptionBudgetSpecApplyConfiguration struct { + MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty"` + Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` +} + +// PodDisruptionBudgetSpecApplyConfiguration constructs an declarative configuration of the PodDisruptionBudgetSpec type for use with +// apply. +func PodDisruptionBudgetSpec() *PodDisruptionBudgetSpecApplyConfiguration { + return &PodDisruptionBudgetSpecApplyConfiguration{} +} + +// WithMinAvailable sets the MinAvailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MinAvailable field is set to the value of the last call. +func (b *PodDisruptionBudgetSpecApplyConfiguration) WithMinAvailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration { + b.MinAvailable = &value + return b +} + +// WithSelector sets the Selector field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Selector field is set to the value of the last call. +func (b *PodDisruptionBudgetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *PodDisruptionBudgetSpecApplyConfiguration { + b.Selector = value + return b +} + +// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaxUnavailable field is set to the value of the last call. +func (b *PodDisruptionBudgetSpecApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration { + b.MaxUnavailable = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudgetstatus.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudgetstatus.go new file mode 100644 index 0000000000..d0813590e1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudgetstatus.go @@ -0,0 +1,109 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodDisruptionBudgetStatusApplyConfiguration represents an declarative configuration of the PodDisruptionBudgetStatus type for use +// with apply. +type PodDisruptionBudgetStatusApplyConfiguration struct { + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + DisruptedPods map[string]v1.Time `json:"disruptedPods,omitempty"` + DisruptionsAllowed *int32 `json:"disruptionsAllowed,omitempty"` + CurrentHealthy *int32 `json:"currentHealthy,omitempty"` + DesiredHealthy *int32 `json:"desiredHealthy,omitempty"` + ExpectedPods *int32 `json:"expectedPods,omitempty"` + Conditions []metav1.ConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// PodDisruptionBudgetStatusApplyConfiguration constructs an declarative configuration of the PodDisruptionBudgetStatus type for use with +// apply. +func PodDisruptionBudgetStatus() *PodDisruptionBudgetStatusApplyConfiguration { + return &PodDisruptionBudgetStatusApplyConfiguration{} +} + +// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ObservedGeneration field is set to the value of the last call. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithObservedGeneration(value int64) *PodDisruptionBudgetStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} + +// WithDisruptedPods puts the entries into the DisruptedPods field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the DisruptedPods field, +// overwriting an existing map entries in DisruptedPods field with the same key. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptedPods(entries map[string]v1.Time) *PodDisruptionBudgetStatusApplyConfiguration { + if b.DisruptedPods == nil && len(entries) > 0 { + b.DisruptedPods = make(map[string]v1.Time, len(entries)) + } + for k, v := range entries { + b.DisruptedPods[k] = v + } + return b +} + +// WithDisruptionsAllowed sets the DisruptionsAllowed field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DisruptionsAllowed field is set to the value of the last call. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptionsAllowed(value int32) *PodDisruptionBudgetStatusApplyConfiguration { + b.DisruptionsAllowed = &value + return b +} + +// WithCurrentHealthy sets the CurrentHealthy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CurrentHealthy field is set to the value of the last call. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithCurrentHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration { + b.CurrentHealthy = &value + return b +} + +// WithDesiredHealthy sets the DesiredHealthy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DesiredHealthy field is set to the value of the last call. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithDesiredHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration { + b.DesiredHealthy = &value + return b +} + +// WithExpectedPods sets the ExpectedPods field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ExpectedPods field is set to the value of the last call. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithExpectedPods(value int32) *PodDisruptionBudgetStatusApplyConfiguration { + b.ExpectedPods = &value + return b +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *PodDisruptionBudgetStatusApplyConfiguration) WithConditions(values ...*metav1.ConditionApplyConfiguration) *PodDisruptionBudgetStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/podsecuritypolicy.go new file mode 100644 index 0000000000..3ff73633c4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/podsecuritypolicy.go @@ -0,0 +1,254 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + policyv1beta1 "k8s.io/api/policy/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PodSecurityPolicyApplyConfiguration represents an declarative configuration of the PodSecurityPolicy type for use +// with apply. +type PodSecurityPolicyApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *PodSecurityPolicySpecApplyConfiguration `json:"spec,omitempty"` +} + +// PodSecurityPolicy constructs an declarative configuration of the PodSecurityPolicy type for use with +// apply. +func PodSecurityPolicy(name string) *PodSecurityPolicyApplyConfiguration { + b := &PodSecurityPolicyApplyConfiguration{} + b.WithName(name) + b.WithKind("PodSecurityPolicy") + b.WithAPIVersion("policy/v1beta1") + return b +} + +// ExtractPodSecurityPolicy extracts the applied configuration owned by fieldManager from +// podSecurityPolicy. If no managedFields are found in podSecurityPolicy for fieldManager, a +// PodSecurityPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// podSecurityPolicy must be a unmodified PodSecurityPolicy API object that was retrieved from the Kubernetes API. +// ExtractPodSecurityPolicy provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPodSecurityPolicy(podSecurityPolicy *policyv1beta1.PodSecurityPolicy, fieldManager string) (*PodSecurityPolicyApplyConfiguration, error) { + b := &PodSecurityPolicyApplyConfiguration{} + err := managedfields.ExtractInto(podSecurityPolicy, internal.Parser().Type("io.k8s.api.policy.v1beta1.PodSecurityPolicy"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(podSecurityPolicy.Name) + + b.WithKind("PodSecurityPolicy") + b.WithAPIVersion("policy/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithKind(value string) *PodSecurityPolicyApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithAPIVersion(value string) *PodSecurityPolicyApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithName(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithGenerateName(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithNamespace(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithSelfLink(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithUID(value types.UID) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithResourceVersion(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithGeneration(value int64) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PodSecurityPolicyApplyConfiguration) WithLabels(entries map[string]string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PodSecurityPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PodSecurityPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PodSecurityPolicyApplyConfiguration) WithFinalizers(values ...string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithClusterName(value string) *PodSecurityPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PodSecurityPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *PodSecurityPolicyApplyConfiguration) WithSpec(value *PodSecurityPolicySpecApplyConfiguration) *PodSecurityPolicyApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/podsecuritypolicyspec.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/podsecuritypolicyspec.go new file mode 100644 index 0000000000..bf951cf56b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/podsecuritypolicyspec.go @@ -0,0 +1,285 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/api/core/v1" + v1beta1 "k8s.io/api/policy/v1beta1" +) + +// PodSecurityPolicySpecApplyConfiguration represents an declarative configuration of the PodSecurityPolicySpec type for use +// with apply. +type PodSecurityPolicySpecApplyConfiguration struct { + Privileged *bool `json:"privileged,omitempty"` + DefaultAddCapabilities []v1.Capability `json:"defaultAddCapabilities,omitempty"` + RequiredDropCapabilities []v1.Capability `json:"requiredDropCapabilities,omitempty"` + AllowedCapabilities []v1.Capability `json:"allowedCapabilities,omitempty"` + Volumes []v1beta1.FSType `json:"volumes,omitempty"` + HostNetwork *bool `json:"hostNetwork,omitempty"` + HostPorts []HostPortRangeApplyConfiguration `json:"hostPorts,omitempty"` + HostPID *bool `json:"hostPID,omitempty"` + HostIPC *bool `json:"hostIPC,omitempty"` + SELinux *SELinuxStrategyOptionsApplyConfiguration `json:"seLinux,omitempty"` + RunAsUser *RunAsUserStrategyOptionsApplyConfiguration `json:"runAsUser,omitempty"` + RunAsGroup *RunAsGroupStrategyOptionsApplyConfiguration `json:"runAsGroup,omitempty"` + SupplementalGroups *SupplementalGroupsStrategyOptionsApplyConfiguration `json:"supplementalGroups,omitempty"` + FSGroup *FSGroupStrategyOptionsApplyConfiguration `json:"fsGroup,omitempty"` + ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty"` + DefaultAllowPrivilegeEscalation *bool `json:"defaultAllowPrivilegeEscalation,omitempty"` + AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty"` + AllowedHostPaths []AllowedHostPathApplyConfiguration `json:"allowedHostPaths,omitempty"` + AllowedFlexVolumes []AllowedFlexVolumeApplyConfiguration `json:"allowedFlexVolumes,omitempty"` + AllowedCSIDrivers []AllowedCSIDriverApplyConfiguration `json:"allowedCSIDrivers,omitempty"` + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty"` + ForbiddenSysctls []string `json:"forbiddenSysctls,omitempty"` + AllowedProcMountTypes []v1.ProcMountType `json:"allowedProcMountTypes,omitempty"` + RuntimeClass *RuntimeClassStrategyOptionsApplyConfiguration `json:"runtimeClass,omitempty"` +} + +// PodSecurityPolicySpecApplyConfiguration constructs an declarative configuration of the PodSecurityPolicySpec type for use with +// apply. +func PodSecurityPolicySpec() *PodSecurityPolicySpecApplyConfiguration { + return &PodSecurityPolicySpecApplyConfiguration{} +} + +// WithPrivileged sets the Privileged field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Privileged field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithPrivileged(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.Privileged = &value + return b +} + +// WithDefaultAddCapabilities adds the given value to the DefaultAddCapabilities field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the DefaultAddCapabilities field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithDefaultAddCapabilities(values ...v1.Capability) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.DefaultAddCapabilities = append(b.DefaultAddCapabilities, values[i]) + } + return b +} + +// WithRequiredDropCapabilities adds the given value to the RequiredDropCapabilities field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the RequiredDropCapabilities field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithRequiredDropCapabilities(values ...v1.Capability) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.RequiredDropCapabilities = append(b.RequiredDropCapabilities, values[i]) + } + return b +} + +// WithAllowedCapabilities adds the given value to the AllowedCapabilities field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedCapabilities field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedCapabilities(values ...v1.Capability) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.AllowedCapabilities = append(b.AllowedCapabilities, values[i]) + } + return b +} + +// WithVolumes adds the given value to the Volumes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Volumes field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithVolumes(values ...v1beta1.FSType) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.Volumes = append(b.Volumes, values[i]) + } + return b +} + +// WithHostNetwork sets the HostNetwork field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostNetwork field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithHostNetwork(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.HostNetwork = &value + return b +} + +// WithHostPorts adds the given value to the HostPorts field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the HostPorts field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithHostPorts(values ...*HostPortRangeApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithHostPorts") + } + b.HostPorts = append(b.HostPorts, *values[i]) + } + return b +} + +// WithHostPID sets the HostPID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostPID field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithHostPID(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.HostPID = &value + return b +} + +// WithHostIPC sets the HostIPC field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the HostIPC field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithHostIPC(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.HostIPC = &value + return b +} + +// WithSELinux sets the SELinux field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SELinux field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithSELinux(value *SELinuxStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.SELinux = value + return b +} + +// WithRunAsUser sets the RunAsUser field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RunAsUser field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithRunAsUser(value *RunAsUserStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.RunAsUser = value + return b +} + +// WithRunAsGroup sets the RunAsGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RunAsGroup field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithRunAsGroup(value *RunAsGroupStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.RunAsGroup = value + return b +} + +// WithSupplementalGroups sets the SupplementalGroups field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SupplementalGroups field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithSupplementalGroups(value *SupplementalGroupsStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.SupplementalGroups = value + return b +} + +// WithFSGroup sets the FSGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSGroup field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithFSGroup(value *FSGroupStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.FSGroup = value + return b +} + +// WithReadOnlyRootFilesystem sets the ReadOnlyRootFilesystem field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReadOnlyRootFilesystem field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithReadOnlyRootFilesystem(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.ReadOnlyRootFilesystem = &value + return b +} + +// WithDefaultAllowPrivilegeEscalation sets the DefaultAllowPrivilegeEscalation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DefaultAllowPrivilegeEscalation field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithDefaultAllowPrivilegeEscalation(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.DefaultAllowPrivilegeEscalation = &value + return b +} + +// WithAllowPrivilegeEscalation sets the AllowPrivilegeEscalation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AllowPrivilegeEscalation field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowPrivilegeEscalation(value bool) *PodSecurityPolicySpecApplyConfiguration { + b.AllowPrivilegeEscalation = &value + return b +} + +// WithAllowedHostPaths adds the given value to the AllowedHostPaths field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedHostPaths field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedHostPaths(values ...*AllowedHostPathApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithAllowedHostPaths") + } + b.AllowedHostPaths = append(b.AllowedHostPaths, *values[i]) + } + return b +} + +// WithAllowedFlexVolumes adds the given value to the AllowedFlexVolumes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedFlexVolumes field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedFlexVolumes(values ...*AllowedFlexVolumeApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithAllowedFlexVolumes") + } + b.AllowedFlexVolumes = append(b.AllowedFlexVolumes, *values[i]) + } + return b +} + +// WithAllowedCSIDrivers adds the given value to the AllowedCSIDrivers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedCSIDrivers field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedCSIDrivers(values ...*AllowedCSIDriverApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithAllowedCSIDrivers") + } + b.AllowedCSIDrivers = append(b.AllowedCSIDrivers, *values[i]) + } + return b +} + +// WithAllowedUnsafeSysctls adds the given value to the AllowedUnsafeSysctls field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedUnsafeSysctls field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedUnsafeSysctls(values ...string) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.AllowedUnsafeSysctls = append(b.AllowedUnsafeSysctls, values[i]) + } + return b +} + +// WithForbiddenSysctls adds the given value to the ForbiddenSysctls field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ForbiddenSysctls field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithForbiddenSysctls(values ...string) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.ForbiddenSysctls = append(b.ForbiddenSysctls, values[i]) + } + return b +} + +// WithAllowedProcMountTypes adds the given value to the AllowedProcMountTypes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedProcMountTypes field. +func (b *PodSecurityPolicySpecApplyConfiguration) WithAllowedProcMountTypes(values ...v1.ProcMountType) *PodSecurityPolicySpecApplyConfiguration { + for i := range values { + b.AllowedProcMountTypes = append(b.AllowedProcMountTypes, values[i]) + } + return b +} + +// WithRuntimeClass sets the RuntimeClass field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RuntimeClass field is set to the value of the last call. +func (b *PodSecurityPolicySpecApplyConfiguration) WithRuntimeClass(value *RuntimeClassStrategyOptionsApplyConfiguration) *PodSecurityPolicySpecApplyConfiguration { + b.RuntimeClass = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runasgroupstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runasgroupstrategyoptions.go new file mode 100644 index 0000000000..fcfcfbe6b9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runasgroupstrategyoptions.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/policy/v1beta1" +) + +// RunAsGroupStrategyOptionsApplyConfiguration represents an declarative configuration of the RunAsGroupStrategyOptions type for use +// with apply. +type RunAsGroupStrategyOptionsApplyConfiguration struct { + Rule *v1beta1.RunAsGroupStrategy `json:"rule,omitempty"` + Ranges []IDRangeApplyConfiguration `json:"ranges,omitempty"` +} + +// RunAsGroupStrategyOptionsApplyConfiguration constructs an declarative configuration of the RunAsGroupStrategyOptions type for use with +// apply. +func RunAsGroupStrategyOptions() *RunAsGroupStrategyOptionsApplyConfiguration { + return &RunAsGroupStrategyOptionsApplyConfiguration{} +} + +// WithRule sets the Rule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Rule field is set to the value of the last call. +func (b *RunAsGroupStrategyOptionsApplyConfiguration) WithRule(value v1beta1.RunAsGroupStrategy) *RunAsGroupStrategyOptionsApplyConfiguration { + b.Rule = &value + return b +} + +// WithRanges adds the given value to the Ranges field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ranges field. +func (b *RunAsGroupStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *RunAsGroupStrategyOptionsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRanges") + } + b.Ranges = append(b.Ranges, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runasuserstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runasuserstrategyoptions.go new file mode 100644 index 0000000000..a6d6ee58e3 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runasuserstrategyoptions.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/policy/v1beta1" +) + +// RunAsUserStrategyOptionsApplyConfiguration represents an declarative configuration of the RunAsUserStrategyOptions type for use +// with apply. +type RunAsUserStrategyOptionsApplyConfiguration struct { + Rule *v1beta1.RunAsUserStrategy `json:"rule,omitempty"` + Ranges []IDRangeApplyConfiguration `json:"ranges,omitempty"` +} + +// RunAsUserStrategyOptionsApplyConfiguration constructs an declarative configuration of the RunAsUserStrategyOptions type for use with +// apply. +func RunAsUserStrategyOptions() *RunAsUserStrategyOptionsApplyConfiguration { + return &RunAsUserStrategyOptionsApplyConfiguration{} +} + +// WithRule sets the Rule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Rule field is set to the value of the last call. +func (b *RunAsUserStrategyOptionsApplyConfiguration) WithRule(value v1beta1.RunAsUserStrategy) *RunAsUserStrategyOptionsApplyConfiguration { + b.Rule = &value + return b +} + +// WithRanges adds the given value to the Ranges field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ranges field. +func (b *RunAsUserStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *RunAsUserStrategyOptionsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRanges") + } + b.Ranges = append(b.Ranges, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runtimeclassstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runtimeclassstrategyoptions.go new file mode 100644 index 0000000000..c19a7ce617 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runtimeclassstrategyoptions.go @@ -0,0 +1,50 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// RuntimeClassStrategyOptionsApplyConfiguration represents an declarative configuration of the RuntimeClassStrategyOptions type for use +// with apply. +type RuntimeClassStrategyOptionsApplyConfiguration struct { + AllowedRuntimeClassNames []string `json:"allowedRuntimeClassNames,omitempty"` + DefaultRuntimeClassName *string `json:"defaultRuntimeClassName,omitempty"` +} + +// RuntimeClassStrategyOptionsApplyConfiguration constructs an declarative configuration of the RuntimeClassStrategyOptions type for use with +// apply. +func RuntimeClassStrategyOptions() *RuntimeClassStrategyOptionsApplyConfiguration { + return &RuntimeClassStrategyOptionsApplyConfiguration{} +} + +// WithAllowedRuntimeClassNames adds the given value to the AllowedRuntimeClassNames field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedRuntimeClassNames field. +func (b *RuntimeClassStrategyOptionsApplyConfiguration) WithAllowedRuntimeClassNames(values ...string) *RuntimeClassStrategyOptionsApplyConfiguration { + for i := range values { + b.AllowedRuntimeClassNames = append(b.AllowedRuntimeClassNames, values[i]) + } + return b +} + +// WithDefaultRuntimeClassName sets the DefaultRuntimeClassName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DefaultRuntimeClassName field is set to the value of the last call. +func (b *RuntimeClassStrategyOptionsApplyConfiguration) WithDefaultRuntimeClassName(value string) *RuntimeClassStrategyOptionsApplyConfiguration { + b.DefaultRuntimeClassName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/selinuxstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/selinuxstrategyoptions.go new file mode 100644 index 0000000000..de7ede618e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/selinuxstrategyoptions.go @@ -0,0 +1,53 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/policy/v1beta1" + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// SELinuxStrategyOptionsApplyConfiguration represents an declarative configuration of the SELinuxStrategyOptions type for use +// with apply. +type SELinuxStrategyOptionsApplyConfiguration struct { + Rule *v1beta1.SELinuxStrategy `json:"rule,omitempty"` + SELinuxOptions *v1.SELinuxOptionsApplyConfiguration `json:"seLinuxOptions,omitempty"` +} + +// SELinuxStrategyOptionsApplyConfiguration constructs an declarative configuration of the SELinuxStrategyOptions type for use with +// apply. +func SELinuxStrategyOptions() *SELinuxStrategyOptionsApplyConfiguration { + return &SELinuxStrategyOptionsApplyConfiguration{} +} + +// WithRule sets the Rule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Rule field is set to the value of the last call. +func (b *SELinuxStrategyOptionsApplyConfiguration) WithRule(value v1beta1.SELinuxStrategy) *SELinuxStrategyOptionsApplyConfiguration { + b.Rule = &value + return b +} + +// WithSELinuxOptions sets the SELinuxOptions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SELinuxOptions field is set to the value of the last call. +func (b *SELinuxStrategyOptionsApplyConfiguration) WithSELinuxOptions(value *v1.SELinuxOptionsApplyConfiguration) *SELinuxStrategyOptionsApplyConfiguration { + b.SELinuxOptions = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/supplementalgroupsstrategyoptions.go b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/supplementalgroupsstrategyoptions.go new file mode 100644 index 0000000000..9e4a9bb2ca --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/supplementalgroupsstrategyoptions.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/policy/v1beta1" +) + +// SupplementalGroupsStrategyOptionsApplyConfiguration represents an declarative configuration of the SupplementalGroupsStrategyOptions type for use +// with apply. +type SupplementalGroupsStrategyOptionsApplyConfiguration struct { + Rule *v1beta1.SupplementalGroupsStrategyType `json:"rule,omitempty"` + Ranges []IDRangeApplyConfiguration `json:"ranges,omitempty"` +} + +// SupplementalGroupsStrategyOptionsApplyConfiguration constructs an declarative configuration of the SupplementalGroupsStrategyOptions type for use with +// apply. +func SupplementalGroupsStrategyOptions() *SupplementalGroupsStrategyOptionsApplyConfiguration { + return &SupplementalGroupsStrategyOptionsApplyConfiguration{} +} + +// WithRule sets the Rule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Rule field is set to the value of the last call. +func (b *SupplementalGroupsStrategyOptionsApplyConfiguration) WithRule(value v1beta1.SupplementalGroupsStrategyType) *SupplementalGroupsStrategyOptionsApplyConfiguration { + b.Rule = &value + return b +} + +// WithRanges adds the given value to the Ranges field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Ranges field. +func (b *SupplementalGroupsStrategyOptionsApplyConfiguration) WithRanges(values ...*IDRangeApplyConfiguration) *SupplementalGroupsStrategyOptionsApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRanges") + } + b.Ranges = append(b.Ranges, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/aggregationrule.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/aggregationrule.go new file mode 100644 index 0000000000..fda9205c21 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/aggregationrule.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// AggregationRuleApplyConfiguration represents an declarative configuration of the AggregationRule type for use +// with apply. +type AggregationRuleApplyConfiguration struct { + ClusterRoleSelectors []v1.LabelSelectorApplyConfiguration `json:"clusterRoleSelectors,omitempty"` +} + +// AggregationRuleApplyConfiguration constructs an declarative configuration of the AggregationRule type for use with +// apply. +func AggregationRule() *AggregationRuleApplyConfiguration { + return &AggregationRuleApplyConfiguration{} +} + +// WithClusterRoleSelectors adds the given value to the ClusterRoleSelectors field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ClusterRoleSelectors field. +func (b *AggregationRuleApplyConfiguration) WithClusterRoleSelectors(values ...*v1.LabelSelectorApplyConfiguration) *AggregationRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithClusterRoleSelectors") + } + b.ClusterRoleSelectors = append(b.ClusterRoleSelectors, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/clusterrole.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/clusterrole.go new file mode 100644 index 0000000000..92ade083e4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/clusterrole.go @@ -0,0 +1,268 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apirbacv1 "k8s.io/api/rbac/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ClusterRoleApplyConfiguration represents an declarative configuration of the ClusterRole type for use +// with apply. +type ClusterRoleApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Rules []PolicyRuleApplyConfiguration `json:"rules,omitempty"` + AggregationRule *AggregationRuleApplyConfiguration `json:"aggregationRule,omitempty"` +} + +// ClusterRole constructs an declarative configuration of the ClusterRole type for use with +// apply. +func ClusterRole(name string) *ClusterRoleApplyConfiguration { + b := &ClusterRoleApplyConfiguration{} + b.WithName(name) + b.WithKind("ClusterRole") + b.WithAPIVersion("rbac.authorization.k8s.io/v1") + return b +} + +// ExtractClusterRole extracts the applied configuration owned by fieldManager from +// clusterRole. If no managedFields are found in clusterRole for fieldManager, a +// ClusterRoleApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// clusterRole must be a unmodified ClusterRole API object that was retrieved from the Kubernetes API. +// ExtractClusterRole provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractClusterRole(clusterRole *apirbacv1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) { + b := &ClusterRoleApplyConfiguration{} + err := managedfields.ExtractInto(clusterRole, internal.Parser().Type("io.k8s.api.rbac.v1.ClusterRole"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(clusterRole.Name) + + b.WithKind("ClusterRole") + b.WithAPIVersion("rbac.authorization.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithKind(value string) *ClusterRoleApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithAPIVersion(value string) *ClusterRoleApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithName(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithGenerateName(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithNamespace(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithSelfLink(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithUID(value types.UID) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithResourceVersion(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithGeneration(value int64) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ClusterRoleApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ClusterRoleApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ClusterRoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ClusterRoleApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithClusterName(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ClusterRoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *ClusterRoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *ClusterRoleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} + +// WithAggregationRule sets the AggregationRule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AggregationRule field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithAggregationRule(value *AggregationRuleApplyConfiguration) *ClusterRoleApplyConfiguration { + b.AggregationRule = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/clusterrolebinding.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/clusterrolebinding.go new file mode 100644 index 0000000000..7bbbdaec98 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/clusterrolebinding.go @@ -0,0 +1,268 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apirbacv1 "k8s.io/api/rbac/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ClusterRoleBindingApplyConfiguration represents an declarative configuration of the ClusterRoleBinding type for use +// with apply. +type ClusterRoleBindingApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Subjects []SubjectApplyConfiguration `json:"subjects,omitempty"` + RoleRef *RoleRefApplyConfiguration `json:"roleRef,omitempty"` +} + +// ClusterRoleBinding constructs an declarative configuration of the ClusterRoleBinding type for use with +// apply. +func ClusterRoleBinding(name string) *ClusterRoleBindingApplyConfiguration { + b := &ClusterRoleBindingApplyConfiguration{} + b.WithName(name) + b.WithKind("ClusterRoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1") + return b +} + +// ExtractClusterRoleBinding extracts the applied configuration owned by fieldManager from +// clusterRoleBinding. If no managedFields are found in clusterRoleBinding for fieldManager, a +// ClusterRoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// clusterRoleBinding must be a unmodified ClusterRoleBinding API object that was retrieved from the Kubernetes API. +// ExtractClusterRoleBinding provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractClusterRoleBinding(clusterRoleBinding *apirbacv1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) { + b := &ClusterRoleBindingApplyConfiguration{} + err := managedfields.ExtractInto(clusterRoleBinding, internal.Parser().Type("io.k8s.api.rbac.v1.ClusterRoleBinding"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(clusterRoleBinding.Name) + + b.WithKind("ClusterRoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithKind(value string) *ClusterRoleBindingApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithAPIVersion(value string) *ClusterRoleBindingApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithName(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithGenerateName(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithNamespace(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithSelfLink(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithUID(value types.UID) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithResourceVersion(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithGeneration(value int64) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ClusterRoleBindingApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ClusterRoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ClusterRoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ClusterRoleBindingApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithClusterName(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ClusterRoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSubjects adds the given value to the Subjects field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Subjects field. +func (b *ClusterRoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *ClusterRoleBindingApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSubjects") + } + b.Subjects = append(b.Subjects, *values[i]) + } + return b +} + +// WithRoleRef sets the RoleRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RoleRef field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *ClusterRoleBindingApplyConfiguration { + b.RoleRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/policyrule.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/policyrule.go new file mode 100644 index 0000000000..65ee1d4fe5 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/policyrule.go @@ -0,0 +1,85 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// PolicyRuleApplyConfiguration represents an declarative configuration of the PolicyRule type for use +// with apply. +type PolicyRuleApplyConfiguration struct { + Verbs []string `json:"verbs,omitempty"` + APIGroups []string `json:"apiGroups,omitempty"` + Resources []string `json:"resources,omitempty"` + ResourceNames []string `json:"resourceNames,omitempty"` + NonResourceURLs []string `json:"nonResourceURLs,omitempty"` +} + +// PolicyRuleApplyConfiguration constructs an declarative configuration of the PolicyRule type for use with +// apply. +func PolicyRule() *PolicyRuleApplyConfiguration { + return &PolicyRuleApplyConfiguration{} +} + +// WithVerbs adds the given value to the Verbs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Verbs field. +func (b *PolicyRuleApplyConfiguration) WithVerbs(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.Verbs = append(b.Verbs, values[i]) + } + return b +} + +// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIGroups field. +func (b *PolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.APIGroups = append(b.APIGroups, values[i]) + } + return b +} + +// WithResources adds the given value to the Resources field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Resources field. +func (b *PolicyRuleApplyConfiguration) WithResources(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.Resources = append(b.Resources, values[i]) + } + return b +} + +// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ResourceNames field. +func (b *PolicyRuleApplyConfiguration) WithResourceNames(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.ResourceNames = append(b.ResourceNames, values[i]) + } + return b +} + +// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the NonResourceURLs field. +func (b *PolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.NonResourceURLs = append(b.NonResourceURLs, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/role.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/role.go new file mode 100644 index 0000000000..772122f456 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/role.go @@ -0,0 +1,261 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apirbacv1 "k8s.io/api/rbac/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// RoleApplyConfiguration represents an declarative configuration of the Role type for use +// with apply. +type RoleApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Rules []PolicyRuleApplyConfiguration `json:"rules,omitempty"` +} + +// Role constructs an declarative configuration of the Role type for use with +// apply. +func Role(name, namespace string) *RoleApplyConfiguration { + b := &RoleApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Role") + b.WithAPIVersion("rbac.authorization.k8s.io/v1") + return b +} + +// ExtractRole extracts the applied configuration owned by fieldManager from +// role. If no managedFields are found in role for fieldManager, a +// RoleApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// role must be a unmodified Role API object that was retrieved from the Kubernetes API. +// ExtractRole provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractRole(role *apirbacv1.Role, fieldManager string) (*RoleApplyConfiguration, error) { + b := &RoleApplyConfiguration{} + err := managedfields.ExtractInto(role, internal.Parser().Type("io.k8s.api.rbac.v1.Role"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(role.Name) + b.WithNamespace(role.Namespace) + + b.WithKind("Role") + b.WithAPIVersion("rbac.authorization.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithKind(value string) *RoleApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithAPIVersion(value string) *RoleApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithName(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithGenerateName(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithNamespace(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithSelfLink(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithUID(value types.UID) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithResourceVersion(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithGeneration(value int64) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *RoleApplyConfiguration) WithLabels(entries map[string]string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *RoleApplyConfiguration) WithAnnotations(entries map[string]string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *RoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *RoleApplyConfiguration) WithFinalizers(values ...string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithClusterName(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *RoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *RoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *RoleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/rolebinding.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/rolebinding.go new file mode 100644 index 0000000000..85dc476cd4 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/rolebinding.go @@ -0,0 +1,270 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apirbacv1 "k8s.io/api/rbac/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// RoleBindingApplyConfiguration represents an declarative configuration of the RoleBinding type for use +// with apply. +type RoleBindingApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Subjects []SubjectApplyConfiguration `json:"subjects,omitempty"` + RoleRef *RoleRefApplyConfiguration `json:"roleRef,omitempty"` +} + +// RoleBinding constructs an declarative configuration of the RoleBinding type for use with +// apply. +func RoleBinding(name, namespace string) *RoleBindingApplyConfiguration { + b := &RoleBindingApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("RoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1") + return b +} + +// ExtractRoleBinding extracts the applied configuration owned by fieldManager from +// roleBinding. If no managedFields are found in roleBinding for fieldManager, a +// RoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// roleBinding must be a unmodified RoleBinding API object that was retrieved from the Kubernetes API. +// ExtractRoleBinding provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractRoleBinding(roleBinding *apirbacv1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) { + b := &RoleBindingApplyConfiguration{} + err := managedfields.ExtractInto(roleBinding, internal.Parser().Type("io.k8s.api.rbac.v1.RoleBinding"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(roleBinding.Name) + b.WithNamespace(roleBinding.Namespace) + + b.WithKind("RoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithKind(value string) *RoleBindingApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithAPIVersion(value string) *RoleBindingApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithName(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithGenerateName(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithNamespace(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithSelfLink(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithUID(value types.UID) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithResourceVersion(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithGeneration(value int64) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *RoleBindingApplyConfiguration) WithLabels(entries map[string]string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *RoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *RoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *RoleBindingApplyConfiguration) WithFinalizers(values ...string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithClusterName(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *RoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSubjects adds the given value to the Subjects field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Subjects field. +func (b *RoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *RoleBindingApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSubjects") + } + b.Subjects = append(b.Subjects, *values[i]) + } + return b +} + +// WithRoleRef sets the RoleRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RoleRef field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *RoleBindingApplyConfiguration { + b.RoleRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/roleref.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/roleref.go new file mode 100644 index 0000000000..ef03a48827 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/roleref.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// RoleRefApplyConfiguration represents an declarative configuration of the RoleRef type for use +// with apply. +type RoleRefApplyConfiguration struct { + APIGroup *string `json:"apiGroup,omitempty"` + Kind *string `json:"kind,omitempty"` + Name *string `json:"name,omitempty"` +} + +// RoleRefApplyConfiguration constructs an declarative configuration of the RoleRef type for use with +// apply. +func RoleRef() *RoleRefApplyConfiguration { + return &RoleRefApplyConfiguration{} +} + +// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIGroup field is set to the value of the last call. +func (b *RoleRefApplyConfiguration) WithAPIGroup(value string) *RoleRefApplyConfiguration { + b.APIGroup = &value + return b +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RoleRefApplyConfiguration) WithKind(value string) *RoleRefApplyConfiguration { + b.Kind = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RoleRefApplyConfiguration) WithName(value string) *RoleRefApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/subject.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/subject.go new file mode 100644 index 0000000000..ebc87fdc45 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1/subject.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use +// with apply. +type SubjectApplyConfiguration struct { + Kind *string `json:"kind,omitempty"` + APIGroup *string `json:"apiGroup,omitempty"` + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` +} + +// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with +// apply. +func Subject() *SubjectApplyConfiguration { + return &SubjectApplyConfiguration{} +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithKind(value string) *SubjectApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIGroup field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithAPIGroup(value string) *SubjectApplyConfiguration { + b.APIGroup = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithName(value string) *SubjectApplyConfiguration { + b.Name = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithNamespace(value string) *SubjectApplyConfiguration { + b.Namespace = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/aggregationrule.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/aggregationrule.go new file mode 100644 index 0000000000..63cdc3fcca --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/aggregationrule.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// AggregationRuleApplyConfiguration represents an declarative configuration of the AggregationRule type for use +// with apply. +type AggregationRuleApplyConfiguration struct { + ClusterRoleSelectors []v1.LabelSelectorApplyConfiguration `json:"clusterRoleSelectors,omitempty"` +} + +// AggregationRuleApplyConfiguration constructs an declarative configuration of the AggregationRule type for use with +// apply. +func AggregationRule() *AggregationRuleApplyConfiguration { + return &AggregationRuleApplyConfiguration{} +} + +// WithClusterRoleSelectors adds the given value to the ClusterRoleSelectors field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ClusterRoleSelectors field. +func (b *AggregationRuleApplyConfiguration) WithClusterRoleSelectors(values ...*v1.LabelSelectorApplyConfiguration) *AggregationRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithClusterRoleSelectors") + } + b.ClusterRoleSelectors = append(b.ClusterRoleSelectors, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/clusterrole.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/clusterrole.go new file mode 100644 index 0000000000..4e2d4a63c3 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/clusterrole.go @@ -0,0 +1,268 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ClusterRoleApplyConfiguration represents an declarative configuration of the ClusterRole type for use +// with apply. +type ClusterRoleApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Rules []PolicyRuleApplyConfiguration `json:"rules,omitempty"` + AggregationRule *AggregationRuleApplyConfiguration `json:"aggregationRule,omitempty"` +} + +// ClusterRole constructs an declarative configuration of the ClusterRole type for use with +// apply. +func ClusterRole(name string) *ClusterRoleApplyConfiguration { + b := &ClusterRoleApplyConfiguration{} + b.WithName(name) + b.WithKind("ClusterRole") + b.WithAPIVersion("rbac.authorization.k8s.io/v1alpha1") + return b +} + +// ExtractClusterRole extracts the applied configuration owned by fieldManager from +// clusterRole. If no managedFields are found in clusterRole for fieldManager, a +// ClusterRoleApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// clusterRole must be a unmodified ClusterRole API object that was retrieved from the Kubernetes API. +// ExtractClusterRole provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractClusterRole(clusterRole *rbacv1alpha1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) { + b := &ClusterRoleApplyConfiguration{} + err := managedfields.ExtractInto(clusterRole, internal.Parser().Type("io.k8s.api.rbac.v1alpha1.ClusterRole"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(clusterRole.Name) + + b.WithKind("ClusterRole") + b.WithAPIVersion("rbac.authorization.k8s.io/v1alpha1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithKind(value string) *ClusterRoleApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithAPIVersion(value string) *ClusterRoleApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithName(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithGenerateName(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithNamespace(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithSelfLink(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithUID(value types.UID) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithResourceVersion(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithGeneration(value int64) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ClusterRoleApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ClusterRoleApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ClusterRoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ClusterRoleApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithClusterName(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ClusterRoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *ClusterRoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *ClusterRoleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} + +// WithAggregationRule sets the AggregationRule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AggregationRule field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithAggregationRule(value *AggregationRuleApplyConfiguration) *ClusterRoleApplyConfiguration { + b.AggregationRule = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/clusterrolebinding.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/clusterrolebinding.go new file mode 100644 index 0000000000..10c93e5a5f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/clusterrolebinding.go @@ -0,0 +1,268 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ClusterRoleBindingApplyConfiguration represents an declarative configuration of the ClusterRoleBinding type for use +// with apply. +type ClusterRoleBindingApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Subjects []SubjectApplyConfiguration `json:"subjects,omitempty"` + RoleRef *RoleRefApplyConfiguration `json:"roleRef,omitempty"` +} + +// ClusterRoleBinding constructs an declarative configuration of the ClusterRoleBinding type for use with +// apply. +func ClusterRoleBinding(name string) *ClusterRoleBindingApplyConfiguration { + b := &ClusterRoleBindingApplyConfiguration{} + b.WithName(name) + b.WithKind("ClusterRoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1alpha1") + return b +} + +// ExtractClusterRoleBinding extracts the applied configuration owned by fieldManager from +// clusterRoleBinding. If no managedFields are found in clusterRoleBinding for fieldManager, a +// ClusterRoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// clusterRoleBinding must be a unmodified ClusterRoleBinding API object that was retrieved from the Kubernetes API. +// ExtractClusterRoleBinding provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractClusterRoleBinding(clusterRoleBinding *rbacv1alpha1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) { + b := &ClusterRoleBindingApplyConfiguration{} + err := managedfields.ExtractInto(clusterRoleBinding, internal.Parser().Type("io.k8s.api.rbac.v1alpha1.ClusterRoleBinding"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(clusterRoleBinding.Name) + + b.WithKind("ClusterRoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1alpha1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithKind(value string) *ClusterRoleBindingApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithAPIVersion(value string) *ClusterRoleBindingApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithName(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithGenerateName(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithNamespace(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithSelfLink(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithUID(value types.UID) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithResourceVersion(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithGeneration(value int64) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ClusterRoleBindingApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ClusterRoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ClusterRoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ClusterRoleBindingApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithClusterName(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ClusterRoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSubjects adds the given value to the Subjects field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Subjects field. +func (b *ClusterRoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *ClusterRoleBindingApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSubjects") + } + b.Subjects = append(b.Subjects, *values[i]) + } + return b +} + +// WithRoleRef sets the RoleRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RoleRef field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *ClusterRoleBindingApplyConfiguration { + b.RoleRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/policyrule.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/policyrule.go new file mode 100644 index 0000000000..12143af130 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/policyrule.go @@ -0,0 +1,85 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// PolicyRuleApplyConfiguration represents an declarative configuration of the PolicyRule type for use +// with apply. +type PolicyRuleApplyConfiguration struct { + Verbs []string `json:"verbs,omitempty"` + APIGroups []string `json:"apiGroups,omitempty"` + Resources []string `json:"resources,omitempty"` + ResourceNames []string `json:"resourceNames,omitempty"` + NonResourceURLs []string `json:"nonResourceURLs,omitempty"` +} + +// PolicyRuleApplyConfiguration constructs an declarative configuration of the PolicyRule type for use with +// apply. +func PolicyRule() *PolicyRuleApplyConfiguration { + return &PolicyRuleApplyConfiguration{} +} + +// WithVerbs adds the given value to the Verbs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Verbs field. +func (b *PolicyRuleApplyConfiguration) WithVerbs(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.Verbs = append(b.Verbs, values[i]) + } + return b +} + +// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIGroups field. +func (b *PolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.APIGroups = append(b.APIGroups, values[i]) + } + return b +} + +// WithResources adds the given value to the Resources field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Resources field. +func (b *PolicyRuleApplyConfiguration) WithResources(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.Resources = append(b.Resources, values[i]) + } + return b +} + +// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ResourceNames field. +func (b *PolicyRuleApplyConfiguration) WithResourceNames(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.ResourceNames = append(b.ResourceNames, values[i]) + } + return b +} + +// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the NonResourceURLs field. +func (b *PolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.NonResourceURLs = append(b.NonResourceURLs, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/role.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/role.go new file mode 100644 index 0000000000..d9bf15b4c9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/role.go @@ -0,0 +1,261 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// RoleApplyConfiguration represents an declarative configuration of the Role type for use +// with apply. +type RoleApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Rules []PolicyRuleApplyConfiguration `json:"rules,omitempty"` +} + +// Role constructs an declarative configuration of the Role type for use with +// apply. +func Role(name, namespace string) *RoleApplyConfiguration { + b := &RoleApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Role") + b.WithAPIVersion("rbac.authorization.k8s.io/v1alpha1") + return b +} + +// ExtractRole extracts the applied configuration owned by fieldManager from +// role. If no managedFields are found in role for fieldManager, a +// RoleApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// role must be a unmodified Role API object that was retrieved from the Kubernetes API. +// ExtractRole provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractRole(role *rbacv1alpha1.Role, fieldManager string) (*RoleApplyConfiguration, error) { + b := &RoleApplyConfiguration{} + err := managedfields.ExtractInto(role, internal.Parser().Type("io.k8s.api.rbac.v1alpha1.Role"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(role.Name) + b.WithNamespace(role.Namespace) + + b.WithKind("Role") + b.WithAPIVersion("rbac.authorization.k8s.io/v1alpha1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithKind(value string) *RoleApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithAPIVersion(value string) *RoleApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithName(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithGenerateName(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithNamespace(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithSelfLink(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithUID(value types.UID) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithResourceVersion(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithGeneration(value int64) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *RoleApplyConfiguration) WithLabels(entries map[string]string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *RoleApplyConfiguration) WithAnnotations(entries map[string]string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *RoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *RoleApplyConfiguration) WithFinalizers(values ...string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithClusterName(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *RoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *RoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *RoleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/rolebinding.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/rolebinding.go new file mode 100644 index 0000000000..ca6f563a37 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/rolebinding.go @@ -0,0 +1,270 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// RoleBindingApplyConfiguration represents an declarative configuration of the RoleBinding type for use +// with apply. +type RoleBindingApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Subjects []SubjectApplyConfiguration `json:"subjects,omitempty"` + RoleRef *RoleRefApplyConfiguration `json:"roleRef,omitempty"` +} + +// RoleBinding constructs an declarative configuration of the RoleBinding type for use with +// apply. +func RoleBinding(name, namespace string) *RoleBindingApplyConfiguration { + b := &RoleBindingApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("RoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1alpha1") + return b +} + +// ExtractRoleBinding extracts the applied configuration owned by fieldManager from +// roleBinding. If no managedFields are found in roleBinding for fieldManager, a +// RoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// roleBinding must be a unmodified RoleBinding API object that was retrieved from the Kubernetes API. +// ExtractRoleBinding provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractRoleBinding(roleBinding *rbacv1alpha1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) { + b := &RoleBindingApplyConfiguration{} + err := managedfields.ExtractInto(roleBinding, internal.Parser().Type("io.k8s.api.rbac.v1alpha1.RoleBinding"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(roleBinding.Name) + b.WithNamespace(roleBinding.Namespace) + + b.WithKind("RoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1alpha1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithKind(value string) *RoleBindingApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithAPIVersion(value string) *RoleBindingApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithName(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithGenerateName(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithNamespace(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithSelfLink(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithUID(value types.UID) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithResourceVersion(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithGeneration(value int64) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *RoleBindingApplyConfiguration) WithLabels(entries map[string]string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *RoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *RoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *RoleBindingApplyConfiguration) WithFinalizers(values ...string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithClusterName(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *RoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSubjects adds the given value to the Subjects field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Subjects field. +func (b *RoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *RoleBindingApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSubjects") + } + b.Subjects = append(b.Subjects, *values[i]) + } + return b +} + +// WithRoleRef sets the RoleRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RoleRef field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *RoleBindingApplyConfiguration { + b.RoleRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/roleref.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/roleref.go new file mode 100644 index 0000000000..40dbc33073 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/roleref.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// RoleRefApplyConfiguration represents an declarative configuration of the RoleRef type for use +// with apply. +type RoleRefApplyConfiguration struct { + APIGroup *string `json:"apiGroup,omitempty"` + Kind *string `json:"kind,omitempty"` + Name *string `json:"name,omitempty"` +} + +// RoleRefApplyConfiguration constructs an declarative configuration of the RoleRef type for use with +// apply. +func RoleRef() *RoleRefApplyConfiguration { + return &RoleRefApplyConfiguration{} +} + +// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIGroup field is set to the value of the last call. +func (b *RoleRefApplyConfiguration) WithAPIGroup(value string) *RoleRefApplyConfiguration { + b.APIGroup = &value + return b +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RoleRefApplyConfiguration) WithKind(value string) *RoleRefApplyConfiguration { + b.Kind = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RoleRefApplyConfiguration) WithName(value string) *RoleRefApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/subject.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/subject.go new file mode 100644 index 0000000000..46640dbbe9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/subject.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use +// with apply. +type SubjectApplyConfiguration struct { + Kind *string `json:"kind,omitempty"` + APIVersion *string `json:"apiVersion,omitempty"` + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` +} + +// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with +// apply. +func Subject() *SubjectApplyConfiguration { + return &SubjectApplyConfiguration{} +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithKind(value string) *SubjectApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithAPIVersion(value string) *SubjectApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithName(value string) *SubjectApplyConfiguration { + b.Name = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithNamespace(value string) *SubjectApplyConfiguration { + b.Namespace = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/aggregationrule.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/aggregationrule.go new file mode 100644 index 0000000000..d52ac3db9b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/aggregationrule.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// AggregationRuleApplyConfiguration represents an declarative configuration of the AggregationRule type for use +// with apply. +type AggregationRuleApplyConfiguration struct { + ClusterRoleSelectors []v1.LabelSelectorApplyConfiguration `json:"clusterRoleSelectors,omitempty"` +} + +// AggregationRuleApplyConfiguration constructs an declarative configuration of the AggregationRule type for use with +// apply. +func AggregationRule() *AggregationRuleApplyConfiguration { + return &AggregationRuleApplyConfiguration{} +} + +// WithClusterRoleSelectors adds the given value to the ClusterRoleSelectors field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ClusterRoleSelectors field. +func (b *AggregationRuleApplyConfiguration) WithClusterRoleSelectors(values ...*v1.LabelSelectorApplyConfiguration) *AggregationRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithClusterRoleSelectors") + } + b.ClusterRoleSelectors = append(b.ClusterRoleSelectors, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/clusterrole.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/clusterrole.go new file mode 100644 index 0000000000..4f5f28170a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/clusterrole.go @@ -0,0 +1,268 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + rbacv1beta1 "k8s.io/api/rbac/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ClusterRoleApplyConfiguration represents an declarative configuration of the ClusterRole type for use +// with apply. +type ClusterRoleApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Rules []PolicyRuleApplyConfiguration `json:"rules,omitempty"` + AggregationRule *AggregationRuleApplyConfiguration `json:"aggregationRule,omitempty"` +} + +// ClusterRole constructs an declarative configuration of the ClusterRole type for use with +// apply. +func ClusterRole(name string) *ClusterRoleApplyConfiguration { + b := &ClusterRoleApplyConfiguration{} + b.WithName(name) + b.WithKind("ClusterRole") + b.WithAPIVersion("rbac.authorization.k8s.io/v1beta1") + return b +} + +// ExtractClusterRole extracts the applied configuration owned by fieldManager from +// clusterRole. If no managedFields are found in clusterRole for fieldManager, a +// ClusterRoleApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// clusterRole must be a unmodified ClusterRole API object that was retrieved from the Kubernetes API. +// ExtractClusterRole provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractClusterRole(clusterRole *rbacv1beta1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) { + b := &ClusterRoleApplyConfiguration{} + err := managedfields.ExtractInto(clusterRole, internal.Parser().Type("io.k8s.api.rbac.v1beta1.ClusterRole"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(clusterRole.Name) + + b.WithKind("ClusterRole") + b.WithAPIVersion("rbac.authorization.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithKind(value string) *ClusterRoleApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithAPIVersion(value string) *ClusterRoleApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithName(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithGenerateName(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithNamespace(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithSelfLink(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithUID(value types.UID) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithResourceVersion(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithGeneration(value int64) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ClusterRoleApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ClusterRoleApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ClusterRoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ClusterRoleApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithClusterName(value string) *ClusterRoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ClusterRoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *ClusterRoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *ClusterRoleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} + +// WithAggregationRule sets the AggregationRule field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AggregationRule field is set to the value of the last call. +func (b *ClusterRoleApplyConfiguration) WithAggregationRule(value *AggregationRuleApplyConfiguration) *ClusterRoleApplyConfiguration { + b.AggregationRule = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/clusterrolebinding.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/clusterrolebinding.go new file mode 100644 index 0000000000..6fbe0aa984 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/clusterrolebinding.go @@ -0,0 +1,268 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + rbacv1beta1 "k8s.io/api/rbac/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// ClusterRoleBindingApplyConfiguration represents an declarative configuration of the ClusterRoleBinding type for use +// with apply. +type ClusterRoleBindingApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Subjects []SubjectApplyConfiguration `json:"subjects,omitempty"` + RoleRef *RoleRefApplyConfiguration `json:"roleRef,omitempty"` +} + +// ClusterRoleBinding constructs an declarative configuration of the ClusterRoleBinding type for use with +// apply. +func ClusterRoleBinding(name string) *ClusterRoleBindingApplyConfiguration { + b := &ClusterRoleBindingApplyConfiguration{} + b.WithName(name) + b.WithKind("ClusterRoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1beta1") + return b +} + +// ExtractClusterRoleBinding extracts the applied configuration owned by fieldManager from +// clusterRoleBinding. If no managedFields are found in clusterRoleBinding for fieldManager, a +// ClusterRoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// clusterRoleBinding must be a unmodified ClusterRoleBinding API object that was retrieved from the Kubernetes API. +// ExtractClusterRoleBinding provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractClusterRoleBinding(clusterRoleBinding *rbacv1beta1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) { + b := &ClusterRoleBindingApplyConfiguration{} + err := managedfields.ExtractInto(clusterRoleBinding, internal.Parser().Type("io.k8s.api.rbac.v1beta1.ClusterRoleBinding"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(clusterRoleBinding.Name) + + b.WithKind("ClusterRoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithKind(value string) *ClusterRoleBindingApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithAPIVersion(value string) *ClusterRoleBindingApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithName(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithGenerateName(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithNamespace(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithSelfLink(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithUID(value types.UID) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithResourceVersion(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithGeneration(value int64) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *ClusterRoleBindingApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *ClusterRoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *ClusterRoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *ClusterRoleBindingApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithClusterName(value string) *ClusterRoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *ClusterRoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSubjects adds the given value to the Subjects field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Subjects field. +func (b *ClusterRoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *ClusterRoleBindingApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSubjects") + } + b.Subjects = append(b.Subjects, *values[i]) + } + return b +} + +// WithRoleRef sets the RoleRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RoleRef field is set to the value of the last call. +func (b *ClusterRoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *ClusterRoleBindingApplyConfiguration { + b.RoleRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/policyrule.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/policyrule.go new file mode 100644 index 0000000000..c63dc68c6b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/policyrule.go @@ -0,0 +1,85 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// PolicyRuleApplyConfiguration represents an declarative configuration of the PolicyRule type for use +// with apply. +type PolicyRuleApplyConfiguration struct { + Verbs []string `json:"verbs,omitempty"` + APIGroups []string `json:"apiGroups,omitempty"` + Resources []string `json:"resources,omitempty"` + ResourceNames []string `json:"resourceNames,omitempty"` + NonResourceURLs []string `json:"nonResourceURLs,omitempty"` +} + +// PolicyRuleApplyConfiguration constructs an declarative configuration of the PolicyRule type for use with +// apply. +func PolicyRule() *PolicyRuleApplyConfiguration { + return &PolicyRuleApplyConfiguration{} +} + +// WithVerbs adds the given value to the Verbs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Verbs field. +func (b *PolicyRuleApplyConfiguration) WithVerbs(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.Verbs = append(b.Verbs, values[i]) + } + return b +} + +// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the APIGroups field. +func (b *PolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.APIGroups = append(b.APIGroups, values[i]) + } + return b +} + +// WithResources adds the given value to the Resources field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Resources field. +func (b *PolicyRuleApplyConfiguration) WithResources(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.Resources = append(b.Resources, values[i]) + } + return b +} + +// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the ResourceNames field. +func (b *PolicyRuleApplyConfiguration) WithResourceNames(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.ResourceNames = append(b.ResourceNames, values[i]) + } + return b +} + +// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the NonResourceURLs field. +func (b *PolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *PolicyRuleApplyConfiguration { + for i := range values { + b.NonResourceURLs = append(b.NonResourceURLs, values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/role.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/role.go new file mode 100644 index 0000000000..7e3744afba --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/role.go @@ -0,0 +1,261 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + rbacv1beta1 "k8s.io/api/rbac/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// RoleApplyConfiguration represents an declarative configuration of the Role type for use +// with apply. +type RoleApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Rules []PolicyRuleApplyConfiguration `json:"rules,omitempty"` +} + +// Role constructs an declarative configuration of the Role type for use with +// apply. +func Role(name, namespace string) *RoleApplyConfiguration { + b := &RoleApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("Role") + b.WithAPIVersion("rbac.authorization.k8s.io/v1beta1") + return b +} + +// ExtractRole extracts the applied configuration owned by fieldManager from +// role. If no managedFields are found in role for fieldManager, a +// RoleApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// role must be a unmodified Role API object that was retrieved from the Kubernetes API. +// ExtractRole provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractRole(role *rbacv1beta1.Role, fieldManager string) (*RoleApplyConfiguration, error) { + b := &RoleApplyConfiguration{} + err := managedfields.ExtractInto(role, internal.Parser().Type("io.k8s.api.rbac.v1beta1.Role"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(role.Name) + b.WithNamespace(role.Namespace) + + b.WithKind("Role") + b.WithAPIVersion("rbac.authorization.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithKind(value string) *RoleApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithAPIVersion(value string) *RoleApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithName(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithGenerateName(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithNamespace(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithSelfLink(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithUID(value types.UID) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithResourceVersion(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithGeneration(value int64) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *RoleApplyConfiguration) WithLabels(entries map[string]string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *RoleApplyConfiguration) WithAnnotations(entries map[string]string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *RoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *RoleApplyConfiguration) WithFinalizers(values ...string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *RoleApplyConfiguration) WithClusterName(value string) *RoleApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *RoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithRules adds the given value to the Rules field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Rules field. +func (b *RoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *RoleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithRules") + } + b.Rules = append(b.Rules, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/rolebinding.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/rolebinding.go new file mode 100644 index 0000000000..ee3e6c55de --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/rolebinding.go @@ -0,0 +1,270 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + rbacv1beta1 "k8s.io/api/rbac/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// RoleBindingApplyConfiguration represents an declarative configuration of the RoleBinding type for use +// with apply. +type RoleBindingApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Subjects []SubjectApplyConfiguration `json:"subjects,omitempty"` + RoleRef *RoleRefApplyConfiguration `json:"roleRef,omitempty"` +} + +// RoleBinding constructs an declarative configuration of the RoleBinding type for use with +// apply. +func RoleBinding(name, namespace string) *RoleBindingApplyConfiguration { + b := &RoleBindingApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("RoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1beta1") + return b +} + +// ExtractRoleBinding extracts the applied configuration owned by fieldManager from +// roleBinding. If no managedFields are found in roleBinding for fieldManager, a +// RoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// roleBinding must be a unmodified RoleBinding API object that was retrieved from the Kubernetes API. +// ExtractRoleBinding provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractRoleBinding(roleBinding *rbacv1beta1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) { + b := &RoleBindingApplyConfiguration{} + err := managedfields.ExtractInto(roleBinding, internal.Parser().Type("io.k8s.api.rbac.v1beta1.RoleBinding"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(roleBinding.Name) + b.WithNamespace(roleBinding.Namespace) + + b.WithKind("RoleBinding") + b.WithAPIVersion("rbac.authorization.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithKind(value string) *RoleBindingApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithAPIVersion(value string) *RoleBindingApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithName(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithGenerateName(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithNamespace(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithSelfLink(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithUID(value types.UID) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithResourceVersion(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithGeneration(value int64) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *RoleBindingApplyConfiguration) WithLabels(entries map[string]string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *RoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *RoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *RoleBindingApplyConfiguration) WithFinalizers(values ...string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithClusterName(value string) *RoleBindingApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *RoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSubjects adds the given value to the Subjects field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Subjects field. +func (b *RoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *RoleBindingApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithSubjects") + } + b.Subjects = append(b.Subjects, *values[i]) + } + return b +} + +// WithRoleRef sets the RoleRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RoleRef field is set to the value of the last call. +func (b *RoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *RoleBindingApplyConfiguration { + b.RoleRef = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/roleref.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/roleref.go new file mode 100644 index 0000000000..e6a02dc602 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/roleref.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// RoleRefApplyConfiguration represents an declarative configuration of the RoleRef type for use +// with apply. +type RoleRefApplyConfiguration struct { + APIGroup *string `json:"apiGroup,omitempty"` + Kind *string `json:"kind,omitempty"` + Name *string `json:"name,omitempty"` +} + +// RoleRefApplyConfiguration constructs an declarative configuration of the RoleRef type for use with +// apply. +func RoleRef() *RoleRefApplyConfiguration { + return &RoleRefApplyConfiguration{} +} + +// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIGroup field is set to the value of the last call. +func (b *RoleRefApplyConfiguration) WithAPIGroup(value string) *RoleRefApplyConfiguration { + b.APIGroup = &value + return b +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *RoleRefApplyConfiguration) WithKind(value string) *RoleRefApplyConfiguration { + b.Kind = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *RoleRefApplyConfiguration) WithName(value string) *RoleRefApplyConfiguration { + b.Name = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/subject.go b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/subject.go new file mode 100644 index 0000000000..b616da8b13 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/subject.go @@ -0,0 +1,66 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// SubjectApplyConfiguration represents an declarative configuration of the Subject type for use +// with apply. +type SubjectApplyConfiguration struct { + Kind *string `json:"kind,omitempty"` + APIGroup *string `json:"apiGroup,omitempty"` + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` +} + +// SubjectApplyConfiguration constructs an declarative configuration of the Subject type for use with +// apply. +func Subject() *SubjectApplyConfiguration { + return &SubjectApplyConfiguration{} +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithKind(value string) *SubjectApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIGroup field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithAPIGroup(value string) *SubjectApplyConfiguration { + b.APIGroup = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithName(value string) *SubjectApplyConfiguration { + b.Name = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *SubjectApplyConfiguration) WithNamespace(value string) *SubjectApplyConfiguration { + b.Namespace = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/scheduling/v1/priorityclass.go b/vendor/k8s.io/client-go/applyconfigurations/scheduling/v1/priorityclass.go new file mode 100644 index 0000000000..6a942ecf1c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/scheduling/v1/priorityclass.go @@ -0,0 +1,282 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" + schedulingv1 "k8s.io/api/scheduling/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PriorityClassApplyConfiguration represents an declarative configuration of the PriorityClass type for use +// with apply. +type PriorityClassApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Value *int32 `json:"value,omitempty"` + GlobalDefault *bool `json:"globalDefault,omitempty"` + Description *string `json:"description,omitempty"` + PreemptionPolicy *corev1.PreemptionPolicy `json:"preemptionPolicy,omitempty"` +} + +// PriorityClass constructs an declarative configuration of the PriorityClass type for use with +// apply. +func PriorityClass(name string) *PriorityClassApplyConfiguration { + b := &PriorityClassApplyConfiguration{} + b.WithName(name) + b.WithKind("PriorityClass") + b.WithAPIVersion("scheduling.k8s.io/v1") + return b +} + +// ExtractPriorityClass extracts the applied configuration owned by fieldManager from +// priorityClass. If no managedFields are found in priorityClass for fieldManager, a +// PriorityClassApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// priorityClass must be a unmodified PriorityClass API object that was retrieved from the Kubernetes API. +// ExtractPriorityClass provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPriorityClass(priorityClass *schedulingv1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) { + b := &PriorityClassApplyConfiguration{} + err := managedfields.ExtractInto(priorityClass, internal.Parser().Type("io.k8s.api.scheduling.v1.PriorityClass"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(priorityClass.Name) + + b.WithKind("PriorityClass") + b.WithAPIVersion("scheduling.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithKind(value string) *PriorityClassApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithAPIVersion(value string) *PriorityClassApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithName(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithGenerateName(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithNamespace(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithSelfLink(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithUID(value types.UID) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithResourceVersion(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithGeneration(value int64) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PriorityClassApplyConfiguration) WithLabels(entries map[string]string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PriorityClassApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PriorityClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PriorityClassApplyConfiguration) WithFinalizers(values ...string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithClusterName(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PriorityClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithValue(value int32) *PriorityClassApplyConfiguration { + b.Value = &value + return b +} + +// WithGlobalDefault sets the GlobalDefault field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GlobalDefault field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithGlobalDefault(value bool) *PriorityClassApplyConfiguration { + b.GlobalDefault = &value + return b +} + +// WithDescription sets the Description field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Description field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithDescription(value string) *PriorityClassApplyConfiguration { + b.Description = &value + return b +} + +// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PreemptionPolicy field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PriorityClassApplyConfiguration { + b.PreemptionPolicy = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/scheduling/v1alpha1/priorityclass.go b/vendor/k8s.io/client-go/applyconfigurations/scheduling/v1alpha1/priorityclass.go new file mode 100644 index 0000000000..46dc278d9a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/scheduling/v1alpha1/priorityclass.go @@ -0,0 +1,282 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + corev1 "k8s.io/api/core/v1" + v1alpha1 "k8s.io/api/scheduling/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PriorityClassApplyConfiguration represents an declarative configuration of the PriorityClass type for use +// with apply. +type PriorityClassApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Value *int32 `json:"value,omitempty"` + GlobalDefault *bool `json:"globalDefault,omitempty"` + Description *string `json:"description,omitempty"` + PreemptionPolicy *corev1.PreemptionPolicy `json:"preemptionPolicy,omitempty"` +} + +// PriorityClass constructs an declarative configuration of the PriorityClass type for use with +// apply. +func PriorityClass(name string) *PriorityClassApplyConfiguration { + b := &PriorityClassApplyConfiguration{} + b.WithName(name) + b.WithKind("PriorityClass") + b.WithAPIVersion("scheduling.k8s.io/v1alpha1") + return b +} + +// ExtractPriorityClass extracts the applied configuration owned by fieldManager from +// priorityClass. If no managedFields are found in priorityClass for fieldManager, a +// PriorityClassApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// priorityClass must be a unmodified PriorityClass API object that was retrieved from the Kubernetes API. +// ExtractPriorityClass provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPriorityClass(priorityClass *v1alpha1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) { + b := &PriorityClassApplyConfiguration{} + err := managedfields.ExtractInto(priorityClass, internal.Parser().Type("io.k8s.api.scheduling.v1alpha1.PriorityClass"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(priorityClass.Name) + + b.WithKind("PriorityClass") + b.WithAPIVersion("scheduling.k8s.io/v1alpha1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithKind(value string) *PriorityClassApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithAPIVersion(value string) *PriorityClassApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithName(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithGenerateName(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithNamespace(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithSelfLink(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithUID(value types.UID) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithResourceVersion(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithGeneration(value int64) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PriorityClassApplyConfiguration) WithLabels(entries map[string]string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PriorityClassApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PriorityClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PriorityClassApplyConfiguration) WithFinalizers(values ...string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithClusterName(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PriorityClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithValue(value int32) *PriorityClassApplyConfiguration { + b.Value = &value + return b +} + +// WithGlobalDefault sets the GlobalDefault field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GlobalDefault field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithGlobalDefault(value bool) *PriorityClassApplyConfiguration { + b.GlobalDefault = &value + return b +} + +// WithDescription sets the Description field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Description field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithDescription(value string) *PriorityClassApplyConfiguration { + b.Description = &value + return b +} + +// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PreemptionPolicy field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PriorityClassApplyConfiguration { + b.PreemptionPolicy = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/scheduling/v1beta1/priorityclass.go b/vendor/k8s.io/client-go/applyconfigurations/scheduling/v1beta1/priorityclass.go new file mode 100644 index 0000000000..9327b7b619 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/scheduling/v1beta1/priorityclass.go @@ -0,0 +1,282 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + corev1 "k8s.io/api/core/v1" + v1beta1 "k8s.io/api/scheduling/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// PriorityClassApplyConfiguration represents an declarative configuration of the PriorityClass type for use +// with apply. +type PriorityClassApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Value *int32 `json:"value,omitempty"` + GlobalDefault *bool `json:"globalDefault,omitempty"` + Description *string `json:"description,omitempty"` + PreemptionPolicy *corev1.PreemptionPolicy `json:"preemptionPolicy,omitempty"` +} + +// PriorityClass constructs an declarative configuration of the PriorityClass type for use with +// apply. +func PriorityClass(name string) *PriorityClassApplyConfiguration { + b := &PriorityClassApplyConfiguration{} + b.WithName(name) + b.WithKind("PriorityClass") + b.WithAPIVersion("scheduling.k8s.io/v1beta1") + return b +} + +// ExtractPriorityClass extracts the applied configuration owned by fieldManager from +// priorityClass. If no managedFields are found in priorityClass for fieldManager, a +// PriorityClassApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// priorityClass must be a unmodified PriorityClass API object that was retrieved from the Kubernetes API. +// ExtractPriorityClass provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractPriorityClass(priorityClass *v1beta1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) { + b := &PriorityClassApplyConfiguration{} + err := managedfields.ExtractInto(priorityClass, internal.Parser().Type("io.k8s.api.scheduling.v1beta1.PriorityClass"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(priorityClass.Name) + + b.WithKind("PriorityClass") + b.WithAPIVersion("scheduling.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithKind(value string) *PriorityClassApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithAPIVersion(value string) *PriorityClassApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithName(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithGenerateName(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithNamespace(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithSelfLink(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithUID(value types.UID) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithResourceVersion(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithGeneration(value int64) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *PriorityClassApplyConfiguration) WithLabels(entries map[string]string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *PriorityClassApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *PriorityClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *PriorityClassApplyConfiguration) WithFinalizers(values ...string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithClusterName(value string) *PriorityClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *PriorityClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithValue sets the Value field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Value field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithValue(value int32) *PriorityClassApplyConfiguration { + b.Value = &value + return b +} + +// WithGlobalDefault sets the GlobalDefault field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GlobalDefault field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithGlobalDefault(value bool) *PriorityClassApplyConfiguration { + b.GlobalDefault = &value + return b +} + +// WithDescription sets the Description field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Description field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithDescription(value string) *PriorityClassApplyConfiguration { + b.Description = &value + return b +} + +// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PreemptionPolicy field is set to the value of the last call. +func (b *PriorityClassApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PriorityClassApplyConfiguration { + b.PreemptionPolicy = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csidriver.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csidriver.go new file mode 100644 index 0000000000..31b35446ec --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csidriver.go @@ -0,0 +1,254 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apistoragev1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// CSIDriverApplyConfiguration represents an declarative configuration of the CSIDriver type for use +// with apply. +type CSIDriverApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *CSIDriverSpecApplyConfiguration `json:"spec,omitempty"` +} + +// CSIDriver constructs an declarative configuration of the CSIDriver type for use with +// apply. +func CSIDriver(name string) *CSIDriverApplyConfiguration { + b := &CSIDriverApplyConfiguration{} + b.WithName(name) + b.WithKind("CSIDriver") + b.WithAPIVersion("storage.k8s.io/v1") + return b +} + +// ExtractCSIDriver extracts the applied configuration owned by fieldManager from +// cSIDriver. If no managedFields are found in cSIDriver for fieldManager, a +// CSIDriverApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// cSIDriver must be a unmodified CSIDriver API object that was retrieved from the Kubernetes API. +// ExtractCSIDriver provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractCSIDriver(cSIDriver *apistoragev1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) { + b := &CSIDriverApplyConfiguration{} + err := managedfields.ExtractInto(cSIDriver, internal.Parser().Type("io.k8s.api.storage.v1.CSIDriver"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(cSIDriver.Name) + + b.WithKind("CSIDriver") + b.WithAPIVersion("storage.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithKind(value string) *CSIDriverApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithAPIVersion(value string) *CSIDriverApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithName(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithGenerateName(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithNamespace(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithSelfLink(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithUID(value types.UID) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithResourceVersion(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithGeneration(value int64) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *CSIDriverApplyConfiguration) WithLabels(entries map[string]string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *CSIDriverApplyConfiguration) WithAnnotations(entries map[string]string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *CSIDriverApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *CSIDriverApplyConfiguration) WithFinalizers(values ...string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithClusterName(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *CSIDriverApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithSpec(value *CSIDriverSpecApplyConfiguration) *CSIDriverApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csidriverspec.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csidriverspec.go new file mode 100644 index 0000000000..1dc17ce96a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csidriverspec.go @@ -0,0 +1,104 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/storage/v1" +) + +// CSIDriverSpecApplyConfiguration represents an declarative configuration of the CSIDriverSpec type for use +// with apply. +type CSIDriverSpecApplyConfiguration struct { + AttachRequired *bool `json:"attachRequired,omitempty"` + PodInfoOnMount *bool `json:"podInfoOnMount,omitempty"` + VolumeLifecycleModes []v1.VolumeLifecycleMode `json:"volumeLifecycleModes,omitempty"` + StorageCapacity *bool `json:"storageCapacity,omitempty"` + FSGroupPolicy *v1.FSGroupPolicy `json:"fsGroupPolicy,omitempty"` + TokenRequests []TokenRequestApplyConfiguration `json:"tokenRequests,omitempty"` + RequiresRepublish *bool `json:"requiresRepublish,omitempty"` +} + +// CSIDriverSpecApplyConfiguration constructs an declarative configuration of the CSIDriverSpec type for use with +// apply. +func CSIDriverSpec() *CSIDriverSpecApplyConfiguration { + return &CSIDriverSpecApplyConfiguration{} +} + +// WithAttachRequired sets the AttachRequired field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AttachRequired field is set to the value of the last call. +func (b *CSIDriverSpecApplyConfiguration) WithAttachRequired(value bool) *CSIDriverSpecApplyConfiguration { + b.AttachRequired = &value + return b +} + +// WithPodInfoOnMount sets the PodInfoOnMount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodInfoOnMount field is set to the value of the last call. +func (b *CSIDriverSpecApplyConfiguration) WithPodInfoOnMount(value bool) *CSIDriverSpecApplyConfiguration { + b.PodInfoOnMount = &value + return b +} + +// WithVolumeLifecycleModes adds the given value to the VolumeLifecycleModes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumeLifecycleModes field. +func (b *CSIDriverSpecApplyConfiguration) WithVolumeLifecycleModes(values ...v1.VolumeLifecycleMode) *CSIDriverSpecApplyConfiguration { + for i := range values { + b.VolumeLifecycleModes = append(b.VolumeLifecycleModes, values[i]) + } + return b +} + +// WithStorageCapacity sets the StorageCapacity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageCapacity field is set to the value of the last call. +func (b *CSIDriverSpecApplyConfiguration) WithStorageCapacity(value bool) *CSIDriverSpecApplyConfiguration { + b.StorageCapacity = &value + return b +} + +// WithFSGroupPolicy sets the FSGroupPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSGroupPolicy field is set to the value of the last call. +func (b *CSIDriverSpecApplyConfiguration) WithFSGroupPolicy(value v1.FSGroupPolicy) *CSIDriverSpecApplyConfiguration { + b.FSGroupPolicy = &value + return b +} + +// WithTokenRequests adds the given value to the TokenRequests field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the TokenRequests field. +func (b *CSIDriverSpecApplyConfiguration) WithTokenRequests(values ...*TokenRequestApplyConfiguration) *CSIDriverSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTokenRequests") + } + b.TokenRequests = append(b.TokenRequests, *values[i]) + } + return b +} + +// WithRequiresRepublish sets the RequiresRepublish field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RequiresRepublish field is set to the value of the last call. +func (b *CSIDriverSpecApplyConfiguration) WithRequiresRepublish(value bool) *CSIDriverSpecApplyConfiguration { + b.RequiresRepublish = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinode.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinode.go new file mode 100644 index 0000000000..8da150bd50 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinode.go @@ -0,0 +1,254 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apistoragev1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// CSINodeApplyConfiguration represents an declarative configuration of the CSINode type for use +// with apply. +type CSINodeApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *CSINodeSpecApplyConfiguration `json:"spec,omitempty"` +} + +// CSINode constructs an declarative configuration of the CSINode type for use with +// apply. +func CSINode(name string) *CSINodeApplyConfiguration { + b := &CSINodeApplyConfiguration{} + b.WithName(name) + b.WithKind("CSINode") + b.WithAPIVersion("storage.k8s.io/v1") + return b +} + +// ExtractCSINode extracts the applied configuration owned by fieldManager from +// cSINode. If no managedFields are found in cSINode for fieldManager, a +// CSINodeApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// cSINode must be a unmodified CSINode API object that was retrieved from the Kubernetes API. +// ExtractCSINode provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractCSINode(cSINode *apistoragev1.CSINode, fieldManager string) (*CSINodeApplyConfiguration, error) { + b := &CSINodeApplyConfiguration{} + err := managedfields.ExtractInto(cSINode, internal.Parser().Type("io.k8s.api.storage.v1.CSINode"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(cSINode.Name) + + b.WithKind("CSINode") + b.WithAPIVersion("storage.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithKind(value string) *CSINodeApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithAPIVersion(value string) *CSINodeApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithName(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithGenerateName(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithNamespace(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithSelfLink(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithUID(value types.UID) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithResourceVersion(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithGeneration(value int64) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *CSINodeApplyConfiguration) WithLabels(entries map[string]string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *CSINodeApplyConfiguration) WithAnnotations(entries map[string]string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *CSINodeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *CSINodeApplyConfiguration) WithFinalizers(values ...string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithClusterName(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *CSINodeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithSpec(value *CSINodeSpecApplyConfiguration) *CSINodeApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinodedriver.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinodedriver.go new file mode 100644 index 0000000000..6219ef1151 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinodedriver.go @@ -0,0 +1,68 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// CSINodeDriverApplyConfiguration represents an declarative configuration of the CSINodeDriver type for use +// with apply. +type CSINodeDriverApplyConfiguration struct { + Name *string `json:"name,omitempty"` + NodeID *string `json:"nodeID,omitempty"` + TopologyKeys []string `json:"topologyKeys,omitempty"` + Allocatable *VolumeNodeResourcesApplyConfiguration `json:"allocatable,omitempty"` +} + +// CSINodeDriverApplyConfiguration constructs an declarative configuration of the CSINodeDriver type for use with +// apply. +func CSINodeDriver() *CSINodeDriverApplyConfiguration { + return &CSINodeDriverApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CSINodeDriverApplyConfiguration) WithName(value string) *CSINodeDriverApplyConfiguration { + b.Name = &value + return b +} + +// WithNodeID sets the NodeID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeID field is set to the value of the last call. +func (b *CSINodeDriverApplyConfiguration) WithNodeID(value string) *CSINodeDriverApplyConfiguration { + b.NodeID = &value + return b +} + +// WithTopologyKeys adds the given value to the TopologyKeys field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the TopologyKeys field. +func (b *CSINodeDriverApplyConfiguration) WithTopologyKeys(values ...string) *CSINodeDriverApplyConfiguration { + for i := range values { + b.TopologyKeys = append(b.TopologyKeys, values[i]) + } + return b +} + +// WithAllocatable sets the Allocatable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Allocatable field is set to the value of the last call. +func (b *CSINodeDriverApplyConfiguration) WithAllocatable(value *VolumeNodeResourcesApplyConfiguration) *CSINodeDriverApplyConfiguration { + b.Allocatable = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinodespec.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinodespec.go new file mode 100644 index 0000000000..30d1d4546b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinodespec.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// CSINodeSpecApplyConfiguration represents an declarative configuration of the CSINodeSpec type for use +// with apply. +type CSINodeSpecApplyConfiguration struct { + Drivers []CSINodeDriverApplyConfiguration `json:"drivers,omitempty"` +} + +// CSINodeSpecApplyConfiguration constructs an declarative configuration of the CSINodeSpec type for use with +// apply. +func CSINodeSpec() *CSINodeSpecApplyConfiguration { + return &CSINodeSpecApplyConfiguration{} +} + +// WithDrivers adds the given value to the Drivers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Drivers field. +func (b *CSINodeSpecApplyConfiguration) WithDrivers(values ...*CSINodeDriverApplyConfiguration) *CSINodeSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithDrivers") + } + b.Drivers = append(b.Drivers, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/storageclass.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/storageclass.go new file mode 100644 index 0000000000..ac5b8ca8d1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/storageclass.go @@ -0,0 +1,323 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + corev1 "k8s.io/api/core/v1" + storagev1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// StorageClassApplyConfiguration represents an declarative configuration of the StorageClass type for use +// with apply. +type StorageClassApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Provisioner *string `json:"provisioner,omitempty"` + Parameters map[string]string `json:"parameters,omitempty"` + ReclaimPolicy *corev1.PersistentVolumeReclaimPolicy `json:"reclaimPolicy,omitempty"` + MountOptions []string `json:"mountOptions,omitempty"` + AllowVolumeExpansion *bool `json:"allowVolumeExpansion,omitempty"` + VolumeBindingMode *storagev1.VolumeBindingMode `json:"volumeBindingMode,omitempty"` + AllowedTopologies []applyconfigurationscorev1.TopologySelectorTermApplyConfiguration `json:"allowedTopologies,omitempty"` +} + +// StorageClass constructs an declarative configuration of the StorageClass type for use with +// apply. +func StorageClass(name string) *StorageClassApplyConfiguration { + b := &StorageClassApplyConfiguration{} + b.WithName(name) + b.WithKind("StorageClass") + b.WithAPIVersion("storage.k8s.io/v1") + return b +} + +// ExtractStorageClass extracts the applied configuration owned by fieldManager from +// storageClass. If no managedFields are found in storageClass for fieldManager, a +// StorageClassApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// storageClass must be a unmodified StorageClass API object that was retrieved from the Kubernetes API. +// ExtractStorageClass provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractStorageClass(storageClass *storagev1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) { + b := &StorageClassApplyConfiguration{} + err := managedfields.ExtractInto(storageClass, internal.Parser().Type("io.k8s.api.storage.v1.StorageClass"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(storageClass.Name) + + b.WithKind("StorageClass") + b.WithAPIVersion("storage.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithKind(value string) *StorageClassApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithAPIVersion(value string) *StorageClassApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithName(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithGenerateName(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithNamespace(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithSelfLink(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithUID(value types.UID) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithResourceVersion(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithGeneration(value int64) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *StorageClassApplyConfiguration) WithLabels(entries map[string]string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *StorageClassApplyConfiguration) WithAnnotations(entries map[string]string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *StorageClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *StorageClassApplyConfiguration) WithFinalizers(values ...string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithClusterName(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *StorageClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithProvisioner sets the Provisioner field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Provisioner field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithProvisioner(value string) *StorageClassApplyConfiguration { + b.Provisioner = &value + return b +} + +// WithParameters puts the entries into the Parameters field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Parameters field, +// overwriting an existing map entries in Parameters field with the same key. +func (b *StorageClassApplyConfiguration) WithParameters(entries map[string]string) *StorageClassApplyConfiguration { + if b.Parameters == nil && len(entries) > 0 { + b.Parameters = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Parameters[k] = v + } + return b +} + +// WithReclaimPolicy sets the ReclaimPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReclaimPolicy field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithReclaimPolicy(value corev1.PersistentVolumeReclaimPolicy) *StorageClassApplyConfiguration { + b.ReclaimPolicy = &value + return b +} + +// WithMountOptions adds the given value to the MountOptions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the MountOptions field. +func (b *StorageClassApplyConfiguration) WithMountOptions(values ...string) *StorageClassApplyConfiguration { + for i := range values { + b.MountOptions = append(b.MountOptions, values[i]) + } + return b +} + +// WithAllowVolumeExpansion sets the AllowVolumeExpansion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AllowVolumeExpansion field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithAllowVolumeExpansion(value bool) *StorageClassApplyConfiguration { + b.AllowVolumeExpansion = &value + return b +} + +// WithVolumeBindingMode sets the VolumeBindingMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeBindingMode field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithVolumeBindingMode(value storagev1.VolumeBindingMode) *StorageClassApplyConfiguration { + b.VolumeBindingMode = &value + return b +} + +// WithAllowedTopologies adds the given value to the AllowedTopologies field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedTopologies field. +func (b *StorageClassApplyConfiguration) WithAllowedTopologies(values ...*applyconfigurationscorev1.TopologySelectorTermApplyConfiguration) *StorageClassApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithAllowedTopologies") + } + b.AllowedTopologies = append(b.AllowedTopologies, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/tokenrequest.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/tokenrequest.go new file mode 100644 index 0000000000..6665a1ff2e --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/tokenrequest.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// TokenRequestApplyConfiguration represents an declarative configuration of the TokenRequest type for use +// with apply. +type TokenRequestApplyConfiguration struct { + Audience *string `json:"audience,omitempty"` + ExpirationSeconds *int64 `json:"expirationSeconds,omitempty"` +} + +// TokenRequestApplyConfiguration constructs an declarative configuration of the TokenRequest type for use with +// apply. +func TokenRequest() *TokenRequestApplyConfiguration { + return &TokenRequestApplyConfiguration{} +} + +// WithAudience sets the Audience field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Audience field is set to the value of the last call. +func (b *TokenRequestApplyConfiguration) WithAudience(value string) *TokenRequestApplyConfiguration { + b.Audience = &value + return b +} + +// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ExpirationSeconds field is set to the value of the last call. +func (b *TokenRequestApplyConfiguration) WithExpirationSeconds(value int64) *TokenRequestApplyConfiguration { + b.ExpirationSeconds = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachment.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachment.go new file mode 100644 index 0000000000..97c37c609d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachment.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + apistoragev1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// VolumeAttachmentApplyConfiguration represents an declarative configuration of the VolumeAttachment type for use +// with apply. +type VolumeAttachmentApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *VolumeAttachmentSpecApplyConfiguration `json:"spec,omitempty"` + Status *VolumeAttachmentStatusApplyConfiguration `json:"status,omitempty"` +} + +// VolumeAttachment constructs an declarative configuration of the VolumeAttachment type for use with +// apply. +func VolumeAttachment(name string) *VolumeAttachmentApplyConfiguration { + b := &VolumeAttachmentApplyConfiguration{} + b.WithName(name) + b.WithKind("VolumeAttachment") + b.WithAPIVersion("storage.k8s.io/v1") + return b +} + +// ExtractVolumeAttachment extracts the applied configuration owned by fieldManager from +// volumeAttachment. If no managedFields are found in volumeAttachment for fieldManager, a +// VolumeAttachmentApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// volumeAttachment must be a unmodified VolumeAttachment API object that was retrieved from the Kubernetes API. +// ExtractVolumeAttachment provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractVolumeAttachment(volumeAttachment *apistoragev1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) { + b := &VolumeAttachmentApplyConfiguration{} + err := managedfields.ExtractInto(volumeAttachment, internal.Parser().Type("io.k8s.api.storage.v1.VolumeAttachment"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(volumeAttachment.Name) + + b.WithKind("VolumeAttachment") + b.WithAPIVersion("storage.k8s.io/v1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithKind(value string) *VolumeAttachmentApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithAPIVersion(value string) *VolumeAttachmentApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithName(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithGenerateName(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithNamespace(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithSelfLink(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithUID(value types.UID) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithResourceVersion(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithGeneration(value int64) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *VolumeAttachmentApplyConfiguration) WithLabels(entries map[string]string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *VolumeAttachmentApplyConfiguration) WithAnnotations(entries map[string]string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *VolumeAttachmentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *VolumeAttachmentApplyConfiguration) WithFinalizers(values ...string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithClusterName(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *VolumeAttachmentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithSpec(value *VolumeAttachmentSpecApplyConfiguration) *VolumeAttachmentApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithStatus(value *VolumeAttachmentStatusApplyConfiguration) *VolumeAttachmentApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentsource.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentsource.go new file mode 100644 index 0000000000..2bf3f7720d --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentsource.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// VolumeAttachmentSourceApplyConfiguration represents an declarative configuration of the VolumeAttachmentSource type for use +// with apply. +type VolumeAttachmentSourceApplyConfiguration struct { + PersistentVolumeName *string `json:"persistentVolumeName,omitempty"` + InlineVolumeSpec *v1.PersistentVolumeSpecApplyConfiguration `json:"inlineVolumeSpec,omitempty"` +} + +// VolumeAttachmentSourceApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSource type for use with +// apply. +func VolumeAttachmentSource() *VolumeAttachmentSourceApplyConfiguration { + return &VolumeAttachmentSourceApplyConfiguration{} +} + +// WithPersistentVolumeName sets the PersistentVolumeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PersistentVolumeName field is set to the value of the last call. +func (b *VolumeAttachmentSourceApplyConfiguration) WithPersistentVolumeName(value string) *VolumeAttachmentSourceApplyConfiguration { + b.PersistentVolumeName = &value + return b +} + +// WithInlineVolumeSpec sets the InlineVolumeSpec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the InlineVolumeSpec field is set to the value of the last call. +func (b *VolumeAttachmentSourceApplyConfiguration) WithInlineVolumeSpec(value *v1.PersistentVolumeSpecApplyConfiguration) *VolumeAttachmentSourceApplyConfiguration { + b.InlineVolumeSpec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentspec.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentspec.go new file mode 100644 index 0000000000..a55f7c8ea1 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentspec.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// VolumeAttachmentSpecApplyConfiguration represents an declarative configuration of the VolumeAttachmentSpec type for use +// with apply. +type VolumeAttachmentSpecApplyConfiguration struct { + Attacher *string `json:"attacher,omitempty"` + Source *VolumeAttachmentSourceApplyConfiguration `json:"source,omitempty"` + NodeName *string `json:"nodeName,omitempty"` +} + +// VolumeAttachmentSpecApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSpec type for use with +// apply. +func VolumeAttachmentSpec() *VolumeAttachmentSpecApplyConfiguration { + return &VolumeAttachmentSpecApplyConfiguration{} +} + +// WithAttacher sets the Attacher field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Attacher field is set to the value of the last call. +func (b *VolumeAttachmentSpecApplyConfiguration) WithAttacher(value string) *VolumeAttachmentSpecApplyConfiguration { + b.Attacher = &value + return b +} + +// WithSource sets the Source field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Source field is set to the value of the last call. +func (b *VolumeAttachmentSpecApplyConfiguration) WithSource(value *VolumeAttachmentSourceApplyConfiguration) *VolumeAttachmentSpecApplyConfiguration { + b.Source = value + return b +} + +// WithNodeName sets the NodeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeName field is set to the value of the last call. +func (b *VolumeAttachmentSpecApplyConfiguration) WithNodeName(value string) *VolumeAttachmentSpecApplyConfiguration { + b.NodeName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentstatus.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentstatus.go new file mode 100644 index 0000000000..015b08e6eb --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentstatus.go @@ -0,0 +1,72 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// VolumeAttachmentStatusApplyConfiguration represents an declarative configuration of the VolumeAttachmentStatus type for use +// with apply. +type VolumeAttachmentStatusApplyConfiguration struct { + Attached *bool `json:"attached,omitempty"` + AttachmentMetadata map[string]string `json:"attachmentMetadata,omitempty"` + AttachError *VolumeErrorApplyConfiguration `json:"attachError,omitempty"` + DetachError *VolumeErrorApplyConfiguration `json:"detachError,omitempty"` +} + +// VolumeAttachmentStatusApplyConfiguration constructs an declarative configuration of the VolumeAttachmentStatus type for use with +// apply. +func VolumeAttachmentStatus() *VolumeAttachmentStatusApplyConfiguration { + return &VolumeAttachmentStatusApplyConfiguration{} +} + +// WithAttached sets the Attached field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Attached field is set to the value of the last call. +func (b *VolumeAttachmentStatusApplyConfiguration) WithAttached(value bool) *VolumeAttachmentStatusApplyConfiguration { + b.Attached = &value + return b +} + +// WithAttachmentMetadata puts the entries into the AttachmentMetadata field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the AttachmentMetadata field, +// overwriting an existing map entries in AttachmentMetadata field with the same key. +func (b *VolumeAttachmentStatusApplyConfiguration) WithAttachmentMetadata(entries map[string]string) *VolumeAttachmentStatusApplyConfiguration { + if b.AttachmentMetadata == nil && len(entries) > 0 { + b.AttachmentMetadata = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.AttachmentMetadata[k] = v + } + return b +} + +// WithAttachError sets the AttachError field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AttachError field is set to the value of the last call. +func (b *VolumeAttachmentStatusApplyConfiguration) WithAttachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration { + b.AttachError = value + return b +} + +// WithDetachError sets the DetachError field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DetachError field is set to the value of the last call. +func (b *VolumeAttachmentStatusApplyConfiguration) WithDetachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration { + b.DetachError = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeerror.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeerror.go new file mode 100644 index 0000000000..4bf829f8a9 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeerror.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// VolumeErrorApplyConfiguration represents an declarative configuration of the VolumeError type for use +// with apply. +type VolumeErrorApplyConfiguration struct { + Time *v1.Time `json:"time,omitempty"` + Message *string `json:"message,omitempty"` +} + +// VolumeErrorApplyConfiguration constructs an declarative configuration of the VolumeError type for use with +// apply. +func VolumeError() *VolumeErrorApplyConfiguration { + return &VolumeErrorApplyConfiguration{} +} + +// WithTime sets the Time field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Time field is set to the value of the last call. +func (b *VolumeErrorApplyConfiguration) WithTime(value v1.Time) *VolumeErrorApplyConfiguration { + b.Time = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *VolumeErrorApplyConfiguration) WithMessage(value string) *VolumeErrorApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumenoderesources.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumenoderesources.go new file mode 100644 index 0000000000..3c5fd3dc29 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumenoderesources.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// VolumeNodeResourcesApplyConfiguration represents an declarative configuration of the VolumeNodeResources type for use +// with apply. +type VolumeNodeResourcesApplyConfiguration struct { + Count *int32 `json:"count,omitempty"` +} + +// VolumeNodeResourcesApplyConfiguration constructs an declarative configuration of the VolumeNodeResources type for use with +// apply. +func VolumeNodeResources() *VolumeNodeResourcesApplyConfiguration { + return &VolumeNodeResourcesApplyConfiguration{} +} + +// WithCount sets the Count field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Count field is set to the value of the last call. +func (b *VolumeNodeResourcesApplyConfiguration) WithCount(value int32) *VolumeNodeResourcesApplyConfiguration { + b.Count = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/csistoragecapacity.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/csistoragecapacity.go new file mode 100644 index 0000000000..32cf1b9f8b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/csistoragecapacity.go @@ -0,0 +1,284 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/storage/v1alpha1" + resource "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// CSIStorageCapacityApplyConfiguration represents an declarative configuration of the CSIStorageCapacity type for use +// with apply. +type CSIStorageCapacityApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + NodeTopology *v1.LabelSelectorApplyConfiguration `json:"nodeTopology,omitempty"` + StorageClassName *string `json:"storageClassName,omitempty"` + Capacity *resource.Quantity `json:"capacity,omitempty"` + MaximumVolumeSize *resource.Quantity `json:"maximumVolumeSize,omitempty"` +} + +// CSIStorageCapacity constructs an declarative configuration of the CSIStorageCapacity type for use with +// apply. +func CSIStorageCapacity(name, namespace string) *CSIStorageCapacityApplyConfiguration { + b := &CSIStorageCapacityApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("CSIStorageCapacity") + b.WithAPIVersion("storage.k8s.io/v1alpha1") + return b +} + +// ExtractCSIStorageCapacity extracts the applied configuration owned by fieldManager from +// cSIStorageCapacity. If no managedFields are found in cSIStorageCapacity for fieldManager, a +// CSIStorageCapacityApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// cSIStorageCapacity must be a unmodified CSIStorageCapacity API object that was retrieved from the Kubernetes API. +// ExtractCSIStorageCapacity provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractCSIStorageCapacity(cSIStorageCapacity *v1alpha1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) { + b := &CSIStorageCapacityApplyConfiguration{} + err := managedfields.ExtractInto(cSIStorageCapacity, internal.Parser().Type("io.k8s.api.storage.v1alpha1.CSIStorageCapacity"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(cSIStorageCapacity.Name) + b.WithNamespace(cSIStorageCapacity.Namespace) + + b.WithKind("CSIStorageCapacity") + b.WithAPIVersion("storage.k8s.io/v1alpha1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithKind(value string) *CSIStorageCapacityApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithAPIVersion(value string) *CSIStorageCapacityApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithName(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithGenerateName(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithNamespace(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithSelfLink(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithUID(value types.UID) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithResourceVersion(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithGeneration(value int64) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *CSIStorageCapacityApplyConfiguration) WithLabels(entries map[string]string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *CSIStorageCapacityApplyConfiguration) WithAnnotations(entries map[string]string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *CSIStorageCapacityApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *CSIStorageCapacityApplyConfiguration) WithFinalizers(values ...string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithClusterName(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *CSIStorageCapacityApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithNodeTopology sets the NodeTopology field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeTopology field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithNodeTopology(value *v1.LabelSelectorApplyConfiguration) *CSIStorageCapacityApplyConfiguration { + b.NodeTopology = value + return b +} + +// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageClassName field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithStorageClassName(value string) *CSIStorageCapacityApplyConfiguration { + b.StorageClassName = &value + return b +} + +// WithCapacity sets the Capacity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Capacity field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithCapacity(value resource.Quantity) *CSIStorageCapacityApplyConfiguration { + b.Capacity = &value + return b +} + +// WithMaximumVolumeSize sets the MaximumVolumeSize field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaximumVolumeSize field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithMaximumVolumeSize(value resource.Quantity) *CSIStorageCapacityApplyConfiguration { + b.MaximumVolumeSize = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachment.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachment.go new file mode 100644 index 0000000000..bcc0f77295 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachment.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + storagev1alpha1 "k8s.io/api/storage/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// VolumeAttachmentApplyConfiguration represents an declarative configuration of the VolumeAttachment type for use +// with apply. +type VolumeAttachmentApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *VolumeAttachmentSpecApplyConfiguration `json:"spec,omitempty"` + Status *VolumeAttachmentStatusApplyConfiguration `json:"status,omitempty"` +} + +// VolumeAttachment constructs an declarative configuration of the VolumeAttachment type for use with +// apply. +func VolumeAttachment(name string) *VolumeAttachmentApplyConfiguration { + b := &VolumeAttachmentApplyConfiguration{} + b.WithName(name) + b.WithKind("VolumeAttachment") + b.WithAPIVersion("storage.k8s.io/v1alpha1") + return b +} + +// ExtractVolumeAttachment extracts the applied configuration owned by fieldManager from +// volumeAttachment. If no managedFields are found in volumeAttachment for fieldManager, a +// VolumeAttachmentApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// volumeAttachment must be a unmodified VolumeAttachment API object that was retrieved from the Kubernetes API. +// ExtractVolumeAttachment provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractVolumeAttachment(volumeAttachment *storagev1alpha1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) { + b := &VolumeAttachmentApplyConfiguration{} + err := managedfields.ExtractInto(volumeAttachment, internal.Parser().Type("io.k8s.api.storage.v1alpha1.VolumeAttachment"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(volumeAttachment.Name) + + b.WithKind("VolumeAttachment") + b.WithAPIVersion("storage.k8s.io/v1alpha1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithKind(value string) *VolumeAttachmentApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithAPIVersion(value string) *VolumeAttachmentApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithName(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithGenerateName(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithNamespace(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithSelfLink(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithUID(value types.UID) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithResourceVersion(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithGeneration(value int64) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *VolumeAttachmentApplyConfiguration) WithLabels(entries map[string]string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *VolumeAttachmentApplyConfiguration) WithAnnotations(entries map[string]string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *VolumeAttachmentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *VolumeAttachmentApplyConfiguration) WithFinalizers(values ...string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithClusterName(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *VolumeAttachmentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithSpec(value *VolumeAttachmentSpecApplyConfiguration) *VolumeAttachmentApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithStatus(value *VolumeAttachmentStatusApplyConfiguration) *VolumeAttachmentApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentsource.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentsource.go new file mode 100644 index 0000000000..82872cc355 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentsource.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// VolumeAttachmentSourceApplyConfiguration represents an declarative configuration of the VolumeAttachmentSource type for use +// with apply. +type VolumeAttachmentSourceApplyConfiguration struct { + PersistentVolumeName *string `json:"persistentVolumeName,omitempty"` + InlineVolumeSpec *v1.PersistentVolumeSpecApplyConfiguration `json:"inlineVolumeSpec,omitempty"` +} + +// VolumeAttachmentSourceApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSource type for use with +// apply. +func VolumeAttachmentSource() *VolumeAttachmentSourceApplyConfiguration { + return &VolumeAttachmentSourceApplyConfiguration{} +} + +// WithPersistentVolumeName sets the PersistentVolumeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PersistentVolumeName field is set to the value of the last call. +func (b *VolumeAttachmentSourceApplyConfiguration) WithPersistentVolumeName(value string) *VolumeAttachmentSourceApplyConfiguration { + b.PersistentVolumeName = &value + return b +} + +// WithInlineVolumeSpec sets the InlineVolumeSpec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the InlineVolumeSpec field is set to the value of the last call. +func (b *VolumeAttachmentSourceApplyConfiguration) WithInlineVolumeSpec(value *v1.PersistentVolumeSpecApplyConfiguration) *VolumeAttachmentSourceApplyConfiguration { + b.InlineVolumeSpec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentspec.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentspec.go new file mode 100644 index 0000000000..2710ff8864 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentspec.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// VolumeAttachmentSpecApplyConfiguration represents an declarative configuration of the VolumeAttachmentSpec type for use +// with apply. +type VolumeAttachmentSpecApplyConfiguration struct { + Attacher *string `json:"attacher,omitempty"` + Source *VolumeAttachmentSourceApplyConfiguration `json:"source,omitempty"` + NodeName *string `json:"nodeName,omitempty"` +} + +// VolumeAttachmentSpecApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSpec type for use with +// apply. +func VolumeAttachmentSpec() *VolumeAttachmentSpecApplyConfiguration { + return &VolumeAttachmentSpecApplyConfiguration{} +} + +// WithAttacher sets the Attacher field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Attacher field is set to the value of the last call. +func (b *VolumeAttachmentSpecApplyConfiguration) WithAttacher(value string) *VolumeAttachmentSpecApplyConfiguration { + b.Attacher = &value + return b +} + +// WithSource sets the Source field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Source field is set to the value of the last call. +func (b *VolumeAttachmentSpecApplyConfiguration) WithSource(value *VolumeAttachmentSourceApplyConfiguration) *VolumeAttachmentSpecApplyConfiguration { + b.Source = value + return b +} + +// WithNodeName sets the NodeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeName field is set to the value of the last call. +func (b *VolumeAttachmentSpecApplyConfiguration) WithNodeName(value string) *VolumeAttachmentSpecApplyConfiguration { + b.NodeName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentstatus.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentstatus.go new file mode 100644 index 0000000000..43803496e8 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentstatus.go @@ -0,0 +1,72 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// VolumeAttachmentStatusApplyConfiguration represents an declarative configuration of the VolumeAttachmentStatus type for use +// with apply. +type VolumeAttachmentStatusApplyConfiguration struct { + Attached *bool `json:"attached,omitempty"` + AttachmentMetadata map[string]string `json:"attachmentMetadata,omitempty"` + AttachError *VolumeErrorApplyConfiguration `json:"attachError,omitempty"` + DetachError *VolumeErrorApplyConfiguration `json:"detachError,omitempty"` +} + +// VolumeAttachmentStatusApplyConfiguration constructs an declarative configuration of the VolumeAttachmentStatus type for use with +// apply. +func VolumeAttachmentStatus() *VolumeAttachmentStatusApplyConfiguration { + return &VolumeAttachmentStatusApplyConfiguration{} +} + +// WithAttached sets the Attached field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Attached field is set to the value of the last call. +func (b *VolumeAttachmentStatusApplyConfiguration) WithAttached(value bool) *VolumeAttachmentStatusApplyConfiguration { + b.Attached = &value + return b +} + +// WithAttachmentMetadata puts the entries into the AttachmentMetadata field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the AttachmentMetadata field, +// overwriting an existing map entries in AttachmentMetadata field with the same key. +func (b *VolumeAttachmentStatusApplyConfiguration) WithAttachmentMetadata(entries map[string]string) *VolumeAttachmentStatusApplyConfiguration { + if b.AttachmentMetadata == nil && len(entries) > 0 { + b.AttachmentMetadata = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.AttachmentMetadata[k] = v + } + return b +} + +// WithAttachError sets the AttachError field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AttachError field is set to the value of the last call. +func (b *VolumeAttachmentStatusApplyConfiguration) WithAttachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration { + b.AttachError = value + return b +} + +// WithDetachError sets the DetachError field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DetachError field is set to the value of the last call. +func (b *VolumeAttachmentStatusApplyConfiguration) WithDetachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration { + b.DetachError = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeerror.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeerror.go new file mode 100644 index 0000000000..cbff16fd0c --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeerror.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// VolumeErrorApplyConfiguration represents an declarative configuration of the VolumeError type for use +// with apply. +type VolumeErrorApplyConfiguration struct { + Time *v1.Time `json:"time,omitempty"` + Message *string `json:"message,omitempty"` +} + +// VolumeErrorApplyConfiguration constructs an declarative configuration of the VolumeError type for use with +// apply. +func VolumeError() *VolumeErrorApplyConfiguration { + return &VolumeErrorApplyConfiguration{} +} + +// WithTime sets the Time field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Time field is set to the value of the last call. +func (b *VolumeErrorApplyConfiguration) WithTime(value v1.Time) *VolumeErrorApplyConfiguration { + b.Time = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *VolumeErrorApplyConfiguration) WithMessage(value string) *VolumeErrorApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csidriver.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csidriver.go new file mode 100644 index 0000000000..aad9ce500a --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csidriver.go @@ -0,0 +1,254 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + storagev1beta1 "k8s.io/api/storage/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// CSIDriverApplyConfiguration represents an declarative configuration of the CSIDriver type for use +// with apply. +type CSIDriverApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *CSIDriverSpecApplyConfiguration `json:"spec,omitempty"` +} + +// CSIDriver constructs an declarative configuration of the CSIDriver type for use with +// apply. +func CSIDriver(name string) *CSIDriverApplyConfiguration { + b := &CSIDriverApplyConfiguration{} + b.WithName(name) + b.WithKind("CSIDriver") + b.WithAPIVersion("storage.k8s.io/v1beta1") + return b +} + +// ExtractCSIDriver extracts the applied configuration owned by fieldManager from +// cSIDriver. If no managedFields are found in cSIDriver for fieldManager, a +// CSIDriverApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// cSIDriver must be a unmodified CSIDriver API object that was retrieved from the Kubernetes API. +// ExtractCSIDriver provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractCSIDriver(cSIDriver *storagev1beta1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) { + b := &CSIDriverApplyConfiguration{} + err := managedfields.ExtractInto(cSIDriver, internal.Parser().Type("io.k8s.api.storage.v1beta1.CSIDriver"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(cSIDriver.Name) + + b.WithKind("CSIDriver") + b.WithAPIVersion("storage.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithKind(value string) *CSIDriverApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithAPIVersion(value string) *CSIDriverApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithName(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithGenerateName(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithNamespace(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithSelfLink(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithUID(value types.UID) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithResourceVersion(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithGeneration(value int64) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *CSIDriverApplyConfiguration) WithLabels(entries map[string]string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *CSIDriverApplyConfiguration) WithAnnotations(entries map[string]string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *CSIDriverApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *CSIDriverApplyConfiguration) WithFinalizers(values ...string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithClusterName(value string) *CSIDriverApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *CSIDriverApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *CSIDriverApplyConfiguration) WithSpec(value *CSIDriverSpecApplyConfiguration) *CSIDriverApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csidriverspec.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csidriverspec.go new file mode 100644 index 0000000000..1d943cbfff --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csidriverspec.go @@ -0,0 +1,104 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/storage/v1beta1" +) + +// CSIDriverSpecApplyConfiguration represents an declarative configuration of the CSIDriverSpec type for use +// with apply. +type CSIDriverSpecApplyConfiguration struct { + AttachRequired *bool `json:"attachRequired,omitempty"` + PodInfoOnMount *bool `json:"podInfoOnMount,omitempty"` + VolumeLifecycleModes []v1beta1.VolumeLifecycleMode `json:"volumeLifecycleModes,omitempty"` + StorageCapacity *bool `json:"storageCapacity,omitempty"` + FSGroupPolicy *v1beta1.FSGroupPolicy `json:"fsGroupPolicy,omitempty"` + TokenRequests []TokenRequestApplyConfiguration `json:"tokenRequests,omitempty"` + RequiresRepublish *bool `json:"requiresRepublish,omitempty"` +} + +// CSIDriverSpecApplyConfiguration constructs an declarative configuration of the CSIDriverSpec type for use with +// apply. +func CSIDriverSpec() *CSIDriverSpecApplyConfiguration { + return &CSIDriverSpecApplyConfiguration{} +} + +// WithAttachRequired sets the AttachRequired field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AttachRequired field is set to the value of the last call. +func (b *CSIDriverSpecApplyConfiguration) WithAttachRequired(value bool) *CSIDriverSpecApplyConfiguration { + b.AttachRequired = &value + return b +} + +// WithPodInfoOnMount sets the PodInfoOnMount field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PodInfoOnMount field is set to the value of the last call. +func (b *CSIDriverSpecApplyConfiguration) WithPodInfoOnMount(value bool) *CSIDriverSpecApplyConfiguration { + b.PodInfoOnMount = &value + return b +} + +// WithVolumeLifecycleModes adds the given value to the VolumeLifecycleModes field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the VolumeLifecycleModes field. +func (b *CSIDriverSpecApplyConfiguration) WithVolumeLifecycleModes(values ...v1beta1.VolumeLifecycleMode) *CSIDriverSpecApplyConfiguration { + for i := range values { + b.VolumeLifecycleModes = append(b.VolumeLifecycleModes, values[i]) + } + return b +} + +// WithStorageCapacity sets the StorageCapacity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageCapacity field is set to the value of the last call. +func (b *CSIDriverSpecApplyConfiguration) WithStorageCapacity(value bool) *CSIDriverSpecApplyConfiguration { + b.StorageCapacity = &value + return b +} + +// WithFSGroupPolicy sets the FSGroupPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FSGroupPolicy field is set to the value of the last call. +func (b *CSIDriverSpecApplyConfiguration) WithFSGroupPolicy(value v1beta1.FSGroupPolicy) *CSIDriverSpecApplyConfiguration { + b.FSGroupPolicy = &value + return b +} + +// WithTokenRequests adds the given value to the TokenRequests field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the TokenRequests field. +func (b *CSIDriverSpecApplyConfiguration) WithTokenRequests(values ...*TokenRequestApplyConfiguration) *CSIDriverSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTokenRequests") + } + b.TokenRequests = append(b.TokenRequests, *values[i]) + } + return b +} + +// WithRequiresRepublish sets the RequiresRepublish field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the RequiresRepublish field is set to the value of the last call. +func (b *CSIDriverSpecApplyConfiguration) WithRequiresRepublish(value bool) *CSIDriverSpecApplyConfiguration { + b.RequiresRepublish = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinode.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinode.go new file mode 100644 index 0000000000..5d151f28ea --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinode.go @@ -0,0 +1,254 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + storagev1beta1 "k8s.io/api/storage/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// CSINodeApplyConfiguration represents an declarative configuration of the CSINode type for use +// with apply. +type CSINodeApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *CSINodeSpecApplyConfiguration `json:"spec,omitempty"` +} + +// CSINode constructs an declarative configuration of the CSINode type for use with +// apply. +func CSINode(name string) *CSINodeApplyConfiguration { + b := &CSINodeApplyConfiguration{} + b.WithName(name) + b.WithKind("CSINode") + b.WithAPIVersion("storage.k8s.io/v1beta1") + return b +} + +// ExtractCSINode extracts the applied configuration owned by fieldManager from +// cSINode. If no managedFields are found in cSINode for fieldManager, a +// CSINodeApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// cSINode must be a unmodified CSINode API object that was retrieved from the Kubernetes API. +// ExtractCSINode provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractCSINode(cSINode *storagev1beta1.CSINode, fieldManager string) (*CSINodeApplyConfiguration, error) { + b := &CSINodeApplyConfiguration{} + err := managedfields.ExtractInto(cSINode, internal.Parser().Type("io.k8s.api.storage.v1beta1.CSINode"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(cSINode.Name) + + b.WithKind("CSINode") + b.WithAPIVersion("storage.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithKind(value string) *CSINodeApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithAPIVersion(value string) *CSINodeApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithName(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithGenerateName(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithNamespace(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithSelfLink(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithUID(value types.UID) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithResourceVersion(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithGeneration(value int64) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *CSINodeApplyConfiguration) WithLabels(entries map[string]string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *CSINodeApplyConfiguration) WithAnnotations(entries map[string]string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *CSINodeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *CSINodeApplyConfiguration) WithFinalizers(values ...string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithClusterName(value string) *CSINodeApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *CSINodeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *CSINodeApplyConfiguration) WithSpec(value *CSINodeSpecApplyConfiguration) *CSINodeApplyConfiguration { + b.Spec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinodedriver.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinodedriver.go new file mode 100644 index 0000000000..2c7de497b2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinodedriver.go @@ -0,0 +1,68 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// CSINodeDriverApplyConfiguration represents an declarative configuration of the CSINodeDriver type for use +// with apply. +type CSINodeDriverApplyConfiguration struct { + Name *string `json:"name,omitempty"` + NodeID *string `json:"nodeID,omitempty"` + TopologyKeys []string `json:"topologyKeys,omitempty"` + Allocatable *VolumeNodeResourcesApplyConfiguration `json:"allocatable,omitempty"` +} + +// CSINodeDriverApplyConfiguration constructs an declarative configuration of the CSINodeDriver type for use with +// apply. +func CSINodeDriver() *CSINodeDriverApplyConfiguration { + return &CSINodeDriverApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CSINodeDriverApplyConfiguration) WithName(value string) *CSINodeDriverApplyConfiguration { + b.Name = &value + return b +} + +// WithNodeID sets the NodeID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeID field is set to the value of the last call. +func (b *CSINodeDriverApplyConfiguration) WithNodeID(value string) *CSINodeDriverApplyConfiguration { + b.NodeID = &value + return b +} + +// WithTopologyKeys adds the given value to the TopologyKeys field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the TopologyKeys field. +func (b *CSINodeDriverApplyConfiguration) WithTopologyKeys(values ...string) *CSINodeDriverApplyConfiguration { + for i := range values { + b.TopologyKeys = append(b.TopologyKeys, values[i]) + } + return b +} + +// WithAllocatable sets the Allocatable field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Allocatable field is set to the value of the last call. +func (b *CSINodeDriverApplyConfiguration) WithAllocatable(value *VolumeNodeResourcesApplyConfiguration) *CSINodeDriverApplyConfiguration { + b.Allocatable = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinodespec.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinodespec.go new file mode 100644 index 0000000000..94ff1b4611 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinodespec.go @@ -0,0 +1,44 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// CSINodeSpecApplyConfiguration represents an declarative configuration of the CSINodeSpec type for use +// with apply. +type CSINodeSpecApplyConfiguration struct { + Drivers []CSINodeDriverApplyConfiguration `json:"drivers,omitempty"` +} + +// CSINodeSpecApplyConfiguration constructs an declarative configuration of the CSINodeSpec type for use with +// apply. +func CSINodeSpec() *CSINodeSpecApplyConfiguration { + return &CSINodeSpecApplyConfiguration{} +} + +// WithDrivers adds the given value to the Drivers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Drivers field. +func (b *CSINodeSpecApplyConfiguration) WithDrivers(values ...*CSINodeDriverApplyConfiguration) *CSINodeSpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithDrivers") + } + b.Drivers = append(b.Drivers, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csistoragecapacity.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csistoragecapacity.go new file mode 100644 index 0000000000..e0c6bd6352 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csistoragecapacity.go @@ -0,0 +1,284 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/storage/v1beta1" + resource "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// CSIStorageCapacityApplyConfiguration represents an declarative configuration of the CSIStorageCapacity type for use +// with apply. +type CSIStorageCapacityApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + NodeTopology *v1.LabelSelectorApplyConfiguration `json:"nodeTopology,omitempty"` + StorageClassName *string `json:"storageClassName,omitempty"` + Capacity *resource.Quantity `json:"capacity,omitempty"` + MaximumVolumeSize *resource.Quantity `json:"maximumVolumeSize,omitempty"` +} + +// CSIStorageCapacity constructs an declarative configuration of the CSIStorageCapacity type for use with +// apply. +func CSIStorageCapacity(name, namespace string) *CSIStorageCapacityApplyConfiguration { + b := &CSIStorageCapacityApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("CSIStorageCapacity") + b.WithAPIVersion("storage.k8s.io/v1beta1") + return b +} + +// ExtractCSIStorageCapacity extracts the applied configuration owned by fieldManager from +// cSIStorageCapacity. If no managedFields are found in cSIStorageCapacity for fieldManager, a +// CSIStorageCapacityApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// cSIStorageCapacity must be a unmodified CSIStorageCapacity API object that was retrieved from the Kubernetes API. +// ExtractCSIStorageCapacity provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractCSIStorageCapacity(cSIStorageCapacity *v1beta1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) { + b := &CSIStorageCapacityApplyConfiguration{} + err := managedfields.ExtractInto(cSIStorageCapacity, internal.Parser().Type("io.k8s.api.storage.v1beta1.CSIStorageCapacity"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(cSIStorageCapacity.Name) + b.WithNamespace(cSIStorageCapacity.Namespace) + + b.WithKind("CSIStorageCapacity") + b.WithAPIVersion("storage.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithKind(value string) *CSIStorageCapacityApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithAPIVersion(value string) *CSIStorageCapacityApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithName(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithGenerateName(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithNamespace(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithSelfLink(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithUID(value types.UID) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithResourceVersion(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithGeneration(value int64) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *CSIStorageCapacityApplyConfiguration) WithLabels(entries map[string]string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *CSIStorageCapacityApplyConfiguration) WithAnnotations(entries map[string]string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *CSIStorageCapacityApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *CSIStorageCapacityApplyConfiguration) WithFinalizers(values ...string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithClusterName(value string) *CSIStorageCapacityApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *CSIStorageCapacityApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithNodeTopology sets the NodeTopology field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeTopology field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithNodeTopology(value *v1.LabelSelectorApplyConfiguration) *CSIStorageCapacityApplyConfiguration { + b.NodeTopology = value + return b +} + +// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the StorageClassName field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithStorageClassName(value string) *CSIStorageCapacityApplyConfiguration { + b.StorageClassName = &value + return b +} + +// WithCapacity sets the Capacity field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Capacity field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithCapacity(value resource.Quantity) *CSIStorageCapacityApplyConfiguration { + b.Capacity = &value + return b +} + +// WithMaximumVolumeSize sets the MaximumVolumeSize field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the MaximumVolumeSize field is set to the value of the last call. +func (b *CSIStorageCapacityApplyConfiguration) WithMaximumVolumeSize(value resource.Quantity) *CSIStorageCapacityApplyConfiguration { + b.MaximumVolumeSize = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/storageclass.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/storageclass.go new file mode 100644 index 0000000000..d88da6a20f --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/storageclass.go @@ -0,0 +1,323 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + corev1 "k8s.io/api/core/v1" + v1beta1 "k8s.io/api/storage/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// StorageClassApplyConfiguration represents an declarative configuration of the StorageClass type for use +// with apply. +type StorageClassApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Provisioner *string `json:"provisioner,omitempty"` + Parameters map[string]string `json:"parameters,omitempty"` + ReclaimPolicy *corev1.PersistentVolumeReclaimPolicy `json:"reclaimPolicy,omitempty"` + MountOptions []string `json:"mountOptions,omitempty"` + AllowVolumeExpansion *bool `json:"allowVolumeExpansion,omitempty"` + VolumeBindingMode *v1beta1.VolumeBindingMode `json:"volumeBindingMode,omitempty"` + AllowedTopologies []applyconfigurationscorev1.TopologySelectorTermApplyConfiguration `json:"allowedTopologies,omitempty"` +} + +// StorageClass constructs an declarative configuration of the StorageClass type for use with +// apply. +func StorageClass(name string) *StorageClassApplyConfiguration { + b := &StorageClassApplyConfiguration{} + b.WithName(name) + b.WithKind("StorageClass") + b.WithAPIVersion("storage.k8s.io/v1beta1") + return b +} + +// ExtractStorageClass extracts the applied configuration owned by fieldManager from +// storageClass. If no managedFields are found in storageClass for fieldManager, a +// StorageClassApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// storageClass must be a unmodified StorageClass API object that was retrieved from the Kubernetes API. +// ExtractStorageClass provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractStorageClass(storageClass *v1beta1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) { + b := &StorageClassApplyConfiguration{} + err := managedfields.ExtractInto(storageClass, internal.Parser().Type("io.k8s.api.storage.v1beta1.StorageClass"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(storageClass.Name) + + b.WithKind("StorageClass") + b.WithAPIVersion("storage.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithKind(value string) *StorageClassApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithAPIVersion(value string) *StorageClassApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithName(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithGenerateName(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithNamespace(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithSelfLink(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithUID(value types.UID) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithResourceVersion(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithGeneration(value int64) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *StorageClassApplyConfiguration) WithLabels(entries map[string]string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *StorageClassApplyConfiguration) WithAnnotations(entries map[string]string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *StorageClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *StorageClassApplyConfiguration) WithFinalizers(values ...string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithClusterName(value string) *StorageClassApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *StorageClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithProvisioner sets the Provisioner field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Provisioner field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithProvisioner(value string) *StorageClassApplyConfiguration { + b.Provisioner = &value + return b +} + +// WithParameters puts the entries into the Parameters field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Parameters field, +// overwriting an existing map entries in Parameters field with the same key. +func (b *StorageClassApplyConfiguration) WithParameters(entries map[string]string) *StorageClassApplyConfiguration { + if b.Parameters == nil && len(entries) > 0 { + b.Parameters = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Parameters[k] = v + } + return b +} + +// WithReclaimPolicy sets the ReclaimPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ReclaimPolicy field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithReclaimPolicy(value corev1.PersistentVolumeReclaimPolicy) *StorageClassApplyConfiguration { + b.ReclaimPolicy = &value + return b +} + +// WithMountOptions adds the given value to the MountOptions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the MountOptions field. +func (b *StorageClassApplyConfiguration) WithMountOptions(values ...string) *StorageClassApplyConfiguration { + for i := range values { + b.MountOptions = append(b.MountOptions, values[i]) + } + return b +} + +// WithAllowVolumeExpansion sets the AllowVolumeExpansion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AllowVolumeExpansion field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithAllowVolumeExpansion(value bool) *StorageClassApplyConfiguration { + b.AllowVolumeExpansion = &value + return b +} + +// WithVolumeBindingMode sets the VolumeBindingMode field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VolumeBindingMode field is set to the value of the last call. +func (b *StorageClassApplyConfiguration) WithVolumeBindingMode(value v1beta1.VolumeBindingMode) *StorageClassApplyConfiguration { + b.VolumeBindingMode = &value + return b +} + +// WithAllowedTopologies adds the given value to the AllowedTopologies field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the AllowedTopologies field. +func (b *StorageClassApplyConfiguration) WithAllowedTopologies(values ...*applyconfigurationscorev1.TopologySelectorTermApplyConfiguration) *StorageClassApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithAllowedTopologies") + } + b.AllowedTopologies = append(b.AllowedTopologies, *values[i]) + } + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/tokenrequest.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/tokenrequest.go new file mode 100644 index 0000000000..89c99d5602 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/tokenrequest.go @@ -0,0 +1,48 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// TokenRequestApplyConfiguration represents an declarative configuration of the TokenRequest type for use +// with apply. +type TokenRequestApplyConfiguration struct { + Audience *string `json:"audience,omitempty"` + ExpirationSeconds *int64 `json:"expirationSeconds,omitempty"` +} + +// TokenRequestApplyConfiguration constructs an declarative configuration of the TokenRequest type for use with +// apply. +func TokenRequest() *TokenRequestApplyConfiguration { + return &TokenRequestApplyConfiguration{} +} + +// WithAudience sets the Audience field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Audience field is set to the value of the last call. +func (b *TokenRequestApplyConfiguration) WithAudience(value string) *TokenRequestApplyConfiguration { + b.Audience = &value + return b +} + +// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ExpirationSeconds field is set to the value of the last call. +func (b *TokenRequestApplyConfiguration) WithExpirationSeconds(value int64) *TokenRequestApplyConfiguration { + b.ExpirationSeconds = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachment.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachment.go new file mode 100644 index 0000000000..3a3ed874f6 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachment.go @@ -0,0 +1,263 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + storagev1beta1 "k8s.io/api/storage/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + internal "k8s.io/client-go/applyconfigurations/internal" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// VolumeAttachmentApplyConfiguration represents an declarative configuration of the VolumeAttachment type for use +// with apply. +type VolumeAttachmentApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *VolumeAttachmentSpecApplyConfiguration `json:"spec,omitempty"` + Status *VolumeAttachmentStatusApplyConfiguration `json:"status,omitempty"` +} + +// VolumeAttachment constructs an declarative configuration of the VolumeAttachment type for use with +// apply. +func VolumeAttachment(name string) *VolumeAttachmentApplyConfiguration { + b := &VolumeAttachmentApplyConfiguration{} + b.WithName(name) + b.WithKind("VolumeAttachment") + b.WithAPIVersion("storage.k8s.io/v1beta1") + return b +} + +// ExtractVolumeAttachment extracts the applied configuration owned by fieldManager from +// volumeAttachment. If no managedFields are found in volumeAttachment for fieldManager, a +// VolumeAttachmentApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. Is is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// volumeAttachment must be a unmodified VolumeAttachment API object that was retrieved from the Kubernetes API. +// ExtractVolumeAttachment provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractVolumeAttachment(volumeAttachment *storagev1beta1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) { + b := &VolumeAttachmentApplyConfiguration{} + err := managedfields.ExtractInto(volumeAttachment, internal.Parser().Type("io.k8s.api.storage.v1beta1.VolumeAttachment"), fieldManager, b) + if err != nil { + return nil, err + } + b.WithName(volumeAttachment.Name) + + b.WithKind("VolumeAttachment") + b.WithAPIVersion("storage.k8s.io/v1beta1") + return b, nil +} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithKind(value string) *VolumeAttachmentApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithAPIVersion(value string) *VolumeAttachmentApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithName(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithGenerateName(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithNamespace(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithSelfLink sets the SelfLink field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the SelfLink field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithSelfLink(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.SelfLink = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithUID(value types.UID) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithResourceVersion(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithGeneration(value int64) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *VolumeAttachmentApplyConfiguration) WithLabels(entries map[string]string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *VolumeAttachmentApplyConfiguration) WithAnnotations(entries map[string]string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *VolumeAttachmentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *VolumeAttachmentApplyConfiguration) WithFinalizers(values ...string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +// WithClusterName sets the ClusterName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ClusterName field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithClusterName(value string) *VolumeAttachmentApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ClusterName = &value + return b +} + +func (b *VolumeAttachmentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithSpec(value *VolumeAttachmentSpecApplyConfiguration) *VolumeAttachmentApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *VolumeAttachmentApplyConfiguration) WithStatus(value *VolumeAttachmentStatusApplyConfiguration) *VolumeAttachmentApplyConfiguration { + b.Status = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentsource.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentsource.go new file mode 100644 index 0000000000..9700b38ee2 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentsource.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/core/v1" +) + +// VolumeAttachmentSourceApplyConfiguration represents an declarative configuration of the VolumeAttachmentSource type for use +// with apply. +type VolumeAttachmentSourceApplyConfiguration struct { + PersistentVolumeName *string `json:"persistentVolumeName,omitempty"` + InlineVolumeSpec *v1.PersistentVolumeSpecApplyConfiguration `json:"inlineVolumeSpec,omitempty"` +} + +// VolumeAttachmentSourceApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSource type for use with +// apply. +func VolumeAttachmentSource() *VolumeAttachmentSourceApplyConfiguration { + return &VolumeAttachmentSourceApplyConfiguration{} +} + +// WithPersistentVolumeName sets the PersistentVolumeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the PersistentVolumeName field is set to the value of the last call. +func (b *VolumeAttachmentSourceApplyConfiguration) WithPersistentVolumeName(value string) *VolumeAttachmentSourceApplyConfiguration { + b.PersistentVolumeName = &value + return b +} + +// WithInlineVolumeSpec sets the InlineVolumeSpec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the InlineVolumeSpec field is set to the value of the last call. +func (b *VolumeAttachmentSourceApplyConfiguration) WithInlineVolumeSpec(value *v1.PersistentVolumeSpecApplyConfiguration) *VolumeAttachmentSourceApplyConfiguration { + b.InlineVolumeSpec = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentspec.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentspec.go new file mode 100644 index 0000000000..1d5e304bb5 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentspec.go @@ -0,0 +1,57 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// VolumeAttachmentSpecApplyConfiguration represents an declarative configuration of the VolumeAttachmentSpec type for use +// with apply. +type VolumeAttachmentSpecApplyConfiguration struct { + Attacher *string `json:"attacher,omitempty"` + Source *VolumeAttachmentSourceApplyConfiguration `json:"source,omitempty"` + NodeName *string `json:"nodeName,omitempty"` +} + +// VolumeAttachmentSpecApplyConfiguration constructs an declarative configuration of the VolumeAttachmentSpec type for use with +// apply. +func VolumeAttachmentSpec() *VolumeAttachmentSpecApplyConfiguration { + return &VolumeAttachmentSpecApplyConfiguration{} +} + +// WithAttacher sets the Attacher field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Attacher field is set to the value of the last call. +func (b *VolumeAttachmentSpecApplyConfiguration) WithAttacher(value string) *VolumeAttachmentSpecApplyConfiguration { + b.Attacher = &value + return b +} + +// WithSource sets the Source field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Source field is set to the value of the last call. +func (b *VolumeAttachmentSpecApplyConfiguration) WithSource(value *VolumeAttachmentSourceApplyConfiguration) *VolumeAttachmentSpecApplyConfiguration { + b.Source = value + return b +} + +// WithNodeName sets the NodeName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the NodeName field is set to the value of the last call. +func (b *VolumeAttachmentSpecApplyConfiguration) WithNodeName(value string) *VolumeAttachmentSpecApplyConfiguration { + b.NodeName = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentstatus.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentstatus.go new file mode 100644 index 0000000000..fa1855a241 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentstatus.go @@ -0,0 +1,72 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// VolumeAttachmentStatusApplyConfiguration represents an declarative configuration of the VolumeAttachmentStatus type for use +// with apply. +type VolumeAttachmentStatusApplyConfiguration struct { + Attached *bool `json:"attached,omitempty"` + AttachmentMetadata map[string]string `json:"attachmentMetadata,omitempty"` + AttachError *VolumeErrorApplyConfiguration `json:"attachError,omitempty"` + DetachError *VolumeErrorApplyConfiguration `json:"detachError,omitempty"` +} + +// VolumeAttachmentStatusApplyConfiguration constructs an declarative configuration of the VolumeAttachmentStatus type for use with +// apply. +func VolumeAttachmentStatus() *VolumeAttachmentStatusApplyConfiguration { + return &VolumeAttachmentStatusApplyConfiguration{} +} + +// WithAttached sets the Attached field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Attached field is set to the value of the last call. +func (b *VolumeAttachmentStatusApplyConfiguration) WithAttached(value bool) *VolumeAttachmentStatusApplyConfiguration { + b.Attached = &value + return b +} + +// WithAttachmentMetadata puts the entries into the AttachmentMetadata field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the AttachmentMetadata field, +// overwriting an existing map entries in AttachmentMetadata field with the same key. +func (b *VolumeAttachmentStatusApplyConfiguration) WithAttachmentMetadata(entries map[string]string) *VolumeAttachmentStatusApplyConfiguration { + if b.AttachmentMetadata == nil && len(entries) > 0 { + b.AttachmentMetadata = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.AttachmentMetadata[k] = v + } + return b +} + +// WithAttachError sets the AttachError field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AttachError field is set to the value of the last call. +func (b *VolumeAttachmentStatusApplyConfiguration) WithAttachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration { + b.AttachError = value + return b +} + +// WithDetachError sets the DetachError field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DetachError field is set to the value of the last call. +func (b *VolumeAttachmentStatusApplyConfiguration) WithDetachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration { + b.DetachError = value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeerror.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeerror.go new file mode 100644 index 0000000000..3f255fce75 --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeerror.go @@ -0,0 +1,52 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// VolumeErrorApplyConfiguration represents an declarative configuration of the VolumeError type for use +// with apply. +type VolumeErrorApplyConfiguration struct { + Time *v1.Time `json:"time,omitempty"` + Message *string `json:"message,omitempty"` +} + +// VolumeErrorApplyConfiguration constructs an declarative configuration of the VolumeError type for use with +// apply. +func VolumeError() *VolumeErrorApplyConfiguration { + return &VolumeErrorApplyConfiguration{} +} + +// WithTime sets the Time field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Time field is set to the value of the last call. +func (b *VolumeErrorApplyConfiguration) WithTime(value v1.Time) *VolumeErrorApplyConfiguration { + b.Time = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *VolumeErrorApplyConfiguration) WithMessage(value string) *VolumeErrorApplyConfiguration { + b.Message = &value + return b +} diff --git a/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumenoderesources.go b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumenoderesources.go new file mode 100644 index 0000000000..4b69b64c9b --- /dev/null +++ b/vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumenoderesources.go @@ -0,0 +1,39 @@ +/* +Copyright 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. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1beta1 + +// VolumeNodeResourcesApplyConfiguration represents an declarative configuration of the VolumeNodeResources type for use +// with apply. +type VolumeNodeResourcesApplyConfiguration struct { + Count *int32 `json:"count,omitempty"` +} + +// VolumeNodeResourcesApplyConfiguration constructs an declarative configuration of the VolumeNodeResources type for use with +// apply. +func VolumeNodeResources() *VolumeNodeResourcesApplyConfiguration { + return &VolumeNodeResourcesApplyConfiguration{} +} + +// WithCount sets the Count field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Count field is set to the value of the last call. +func (b *VolumeNodeResourcesApplyConfiguration) WithCount(value int32) *VolumeNodeResourcesApplyConfiguration { + b.Count = &value + return b +} diff --git a/vendor/k8s.io/client-go/informers/batch/interface.go b/vendor/k8s.io/client-go/informers/batch/interface.go index fa428869df..53b81c7ecc 100644 --- a/vendor/k8s.io/client-go/informers/batch/interface.go +++ b/vendor/k8s.io/client-go/informers/batch/interface.go @@ -21,7 +21,6 @@ package batch import ( v1 "k8s.io/client-go/informers/batch/v1" v1beta1 "k8s.io/client-go/informers/batch/v1beta1" - v2alpha1 "k8s.io/client-go/informers/batch/v2alpha1" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" ) @@ -31,8 +30,6 @@ type Interface interface { V1() v1.Interface // V1beta1 provides access to shared informers for resources in V1beta1. V1beta1() v1beta1.Interface - // V2alpha1 provides access to shared informers for resources in V2alpha1. - V2alpha1() v2alpha1.Interface } type group struct { @@ -55,8 +52,3 @@ func (g *group) V1() v1.Interface { func (g *group) V1beta1() v1beta1.Interface { return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) } - -// V2alpha1 returns a new v2alpha1.Interface. -func (g *group) V2alpha1() v2alpha1.Interface { - return v2alpha1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/k8s.io/client-go/informers/batch/v1/cronjob.go b/vendor/k8s.io/client-go/informers/batch/v1/cronjob.go new file mode 100644 index 0000000000..fdfb655134 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/batch/v1/cronjob.go @@ -0,0 +1,90 @@ +/* +Copyright 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1 + +import ( + "context" + time "time" + + batchv1 "k8s.io/api/batch/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1 "k8s.io/client-go/listers/batch/v1" + cache "k8s.io/client-go/tools/cache" +) + +// CronJobInformer provides access to a shared informer and lister for +// CronJobs. +type CronJobInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.CronJobLister +} + +type cronJobInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewCronJobInformer constructs a new informer for CronJob type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewCronJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredCronJobInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredCronJobInformer constructs a new informer for CronJob type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredCronJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.BatchV1().CronJobs(namespace).List(context.TODO(), options) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.BatchV1().CronJobs(namespace).Watch(context.TODO(), options) + }, + }, + &batchv1.CronJob{}, + resyncPeriod, + indexers, + ) +} + +func (f *cronJobInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredCronJobInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *cronJobInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&batchv1.CronJob{}, f.defaultInformer) +} + +func (f *cronJobInformer) Lister() v1.CronJobLister { + return v1.NewCronJobLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/client-go/informers/batch/v1/interface.go b/vendor/k8s.io/client-go/informers/batch/v1/interface.go index 67d71adc23..84567fb592 100644 --- a/vendor/k8s.io/client-go/informers/batch/v1/interface.go +++ b/vendor/k8s.io/client-go/informers/batch/v1/interface.go @@ -24,6 +24,8 @@ import ( // Interface provides access to all the informers in this group version. type Interface interface { + // CronJobs returns a CronJobInformer. + CronJobs() CronJobInformer // Jobs returns a JobInformer. Jobs() JobInformer } @@ -39,6 +41,11 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } +// CronJobs returns a CronJobInformer. +func (v *version) CronJobs() CronJobInformer { + return &cronJobInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + // Jobs returns a JobInformer. func (v *version) Jobs() JobInformer { return &jobInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} diff --git a/vendor/k8s.io/client-go/informers/batch/v2alpha1/cronjob.go b/vendor/k8s.io/client-go/informers/batch/v2alpha1/cronjob.go deleted file mode 100644 index 5f5b870d4b..0000000000 --- a/vendor/k8s.io/client-go/informers/batch/v2alpha1/cronjob.go +++ /dev/null @@ -1,90 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package v2alpha1 - -import ( - "context" - time "time" - - batchv2alpha1 "k8s.io/api/batch/v2alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - internalinterfaces "k8s.io/client-go/informers/internalinterfaces" - kubernetes "k8s.io/client-go/kubernetes" - v2alpha1 "k8s.io/client-go/listers/batch/v2alpha1" - cache "k8s.io/client-go/tools/cache" -) - -// CronJobInformer provides access to a shared informer and lister for -// CronJobs. -type CronJobInformer interface { - Informer() cache.SharedIndexInformer - Lister() v2alpha1.CronJobLister -} - -type cronJobInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewCronJobInformer constructs a new informer for CronJob type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewCronJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredCronJobInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredCronJobInformer constructs a new informer for CronJob type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewFilteredCronJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.BatchV2alpha1().CronJobs(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.BatchV2alpha1().CronJobs(namespace).Watch(context.TODO(), options) - }, - }, - &batchv2alpha1.CronJob{}, - resyncPeriod, - indexers, - ) -} - -func (f *cronJobInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredCronJobInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *cronJobInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&batchv2alpha1.CronJob{}, f.defaultInformer) -} - -func (f *cronJobInformer) Lister() v2alpha1.CronJobLister { - return v2alpha1.NewCronJobLister(f.Informer().GetIndexer()) -} diff --git a/vendor/k8s.io/client-go/informers/batch/v2alpha1/interface.go b/vendor/k8s.io/client-go/informers/batch/v2alpha1/interface.go deleted file mode 100644 index 6c5bf236f9..0000000000 --- a/vendor/k8s.io/client-go/informers/batch/v2alpha1/interface.go +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package v2alpha1 - -import ( - internalinterfaces "k8s.io/client-go/informers/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // CronJobs returns a CronJobInformer. - CronJobs() CronJobInformer -} - -type version struct { - factory internalinterfaces.SharedInformerFactory - namespace string - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { - return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} -} - -// CronJobs returns a CronJobInformer. -func (v *version) CronJobs() CronJobInformer { - return &cronJobInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/k8s.io/client-go/informers/discovery/interface.go b/vendor/k8s.io/client-go/informers/discovery/interface.go index c0cae3314a..37da9371f6 100644 --- a/vendor/k8s.io/client-go/informers/discovery/interface.go +++ b/vendor/k8s.io/client-go/informers/discovery/interface.go @@ -19,15 +19,15 @@ limitations under the License. package discovery import ( - v1alpha1 "k8s.io/client-go/informers/discovery/v1alpha1" + v1 "k8s.io/client-go/informers/discovery/v1" v1beta1 "k8s.io/client-go/informers/discovery/v1beta1" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" ) // Interface provides access to each of this group's versions. type Interface interface { - // V1alpha1 provides access to shared informers for resources in V1alpha1. - V1alpha1() v1alpha1.Interface + // V1 provides access to shared informers for resources in V1. + V1() v1.Interface // V1beta1 provides access to shared informers for resources in V1beta1. V1beta1() v1beta1.Interface } @@ -43,9 +43,9 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } -// V1alpha1 returns a new v1alpha1.Interface. -func (g *group) V1alpha1() v1alpha1.Interface { - return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) +// V1 returns a new v1.Interface. +func (g *group) V1() v1.Interface { + return v1.New(g.factory, g.namespace, g.tweakListOptions) } // V1beta1 returns a new v1beta1.Interface. diff --git a/vendor/k8s.io/client-go/informers/discovery/v1/endpointslice.go b/vendor/k8s.io/client-go/informers/discovery/v1/endpointslice.go new file mode 100644 index 0000000000..6c6c3372bf --- /dev/null +++ b/vendor/k8s.io/client-go/informers/discovery/v1/endpointslice.go @@ -0,0 +1,90 @@ +/* +Copyright 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1 + +import ( + "context" + time "time" + + discoveryv1 "k8s.io/api/discovery/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1 "k8s.io/client-go/listers/discovery/v1" + cache "k8s.io/client-go/tools/cache" +) + +// EndpointSliceInformer provides access to a shared informer and lister for +// EndpointSlices. +type EndpointSliceInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.EndpointSliceLister +} + +type endpointSliceInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewEndpointSliceInformer constructs a new informer for EndpointSlice type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewEndpointSliceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredEndpointSliceInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredEndpointSliceInformer constructs a new informer for EndpointSlice type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredEndpointSliceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.DiscoveryV1().EndpointSlices(namespace).List(context.TODO(), options) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.DiscoveryV1().EndpointSlices(namespace).Watch(context.TODO(), options) + }, + }, + &discoveryv1.EndpointSlice{}, + resyncPeriod, + indexers, + ) +} + +func (f *endpointSliceInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredEndpointSliceInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *endpointSliceInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&discoveryv1.EndpointSlice{}, f.defaultInformer) +} + +func (f *endpointSliceInformer) Lister() v1.EndpointSliceLister { + return v1.NewEndpointSliceLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/client-go/informers/discovery/v1/interface.go b/vendor/k8s.io/client-go/informers/discovery/v1/interface.go new file mode 100644 index 0000000000..d90c63c0a9 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/discovery/v1/interface.go @@ -0,0 +1,45 @@ +/* +Copyright 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1 + +import ( + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // EndpointSlices returns a EndpointSliceInformer. + EndpointSlices() EndpointSliceInformer +} + +type version struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// EndpointSlices returns a EndpointSliceInformer. +func (v *version) EndpointSlices() EndpointSliceInformer { + return &endpointSliceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/client-go/informers/discovery/v1alpha1/endpointslice.go b/vendor/k8s.io/client-go/informers/discovery/v1alpha1/endpointslice.go deleted file mode 100644 index c5e383c0b2..0000000000 --- a/vendor/k8s.io/client-go/informers/discovery/v1alpha1/endpointslice.go +++ /dev/null @@ -1,90 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "context" - time "time" - - discoveryv1alpha1 "k8s.io/api/discovery/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - internalinterfaces "k8s.io/client-go/informers/internalinterfaces" - kubernetes "k8s.io/client-go/kubernetes" - v1alpha1 "k8s.io/client-go/listers/discovery/v1alpha1" - cache "k8s.io/client-go/tools/cache" -) - -// EndpointSliceInformer provides access to a shared informer and lister for -// EndpointSlices. -type EndpointSliceInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1alpha1.EndpointSliceLister -} - -type endpointSliceInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewEndpointSliceInformer constructs a new informer for EndpointSlice type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewEndpointSliceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredEndpointSliceInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredEndpointSliceInformer constructs a new informer for EndpointSlice type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewFilteredEndpointSliceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.DiscoveryV1alpha1().EndpointSlices(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.DiscoveryV1alpha1().EndpointSlices(namespace).Watch(context.TODO(), options) - }, - }, - &discoveryv1alpha1.EndpointSlice{}, - resyncPeriod, - indexers, - ) -} - -func (f *endpointSliceInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredEndpointSliceInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *endpointSliceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&discoveryv1alpha1.EndpointSlice{}, f.defaultInformer) -} - -func (f *endpointSliceInformer) Lister() v1alpha1.EndpointSliceLister { - return v1alpha1.NewEndpointSliceLister(f.Informer().GetIndexer()) -} diff --git a/vendor/k8s.io/client-go/informers/discovery/v1alpha1/interface.go b/vendor/k8s.io/client-go/informers/discovery/v1alpha1/interface.go deleted file mode 100644 index 711dcae52c..0000000000 --- a/vendor/k8s.io/client-go/informers/discovery/v1alpha1/interface.go +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - internalinterfaces "k8s.io/client-go/informers/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // EndpointSlices returns a EndpointSliceInformer. - EndpointSlices() EndpointSliceInformer -} - -type version struct { - factory internalinterfaces.SharedInformerFactory - namespace string - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { - return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} -} - -// EndpointSlices returns a EndpointSliceInformer. -func (v *version) EndpointSlices() EndpointSliceInformer { - return &endpointSliceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/k8s.io/client-go/informers/generic.go b/vendor/k8s.io/client-go/informers/generic.go index 2bc451095e..aede51a5e6 100644 --- a/vendor/k8s.io/client-go/informers/generic.go +++ b/vendor/k8s.io/client-go/informers/generic.go @@ -32,24 +32,24 @@ import ( v2beta2 "k8s.io/api/autoscaling/v2beta2" batchv1 "k8s.io/api/batch/v1" batchv1beta1 "k8s.io/api/batch/v1beta1" - v2alpha1 "k8s.io/api/batch/v2alpha1" certificatesv1 "k8s.io/api/certificates/v1" certificatesv1beta1 "k8s.io/api/certificates/v1beta1" coordinationv1 "k8s.io/api/coordination/v1" coordinationv1beta1 "k8s.io/api/coordination/v1beta1" corev1 "k8s.io/api/core/v1" - v1alpha1 "k8s.io/api/discovery/v1alpha1" + discoveryv1 "k8s.io/api/discovery/v1" discoveryv1beta1 "k8s.io/api/discovery/v1beta1" eventsv1 "k8s.io/api/events/v1" eventsv1beta1 "k8s.io/api/events/v1beta1" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" - flowcontrolv1alpha1 "k8s.io/api/flowcontrol/v1alpha1" + v1alpha1 "k8s.io/api/flowcontrol/v1alpha1" flowcontrolv1beta1 "k8s.io/api/flowcontrol/v1beta1" networkingv1 "k8s.io/api/networking/v1" networkingv1beta1 "k8s.io/api/networking/v1beta1" nodev1 "k8s.io/api/node/v1" nodev1alpha1 "k8s.io/api/node/v1alpha1" nodev1beta1 "k8s.io/api/node/v1beta1" + policyv1 "k8s.io/api/policy/v1" policyv1beta1 "k8s.io/api/policy/v1beta1" rbacv1 "k8s.io/api/rbac/v1" rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" @@ -147,6 +147,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V2beta2().HorizontalPodAutoscalers().Informer()}, nil // Group=batch, Version=v1 + case batchv1.SchemeGroupVersion.WithResource("cronjobs"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1().CronJobs().Informer()}, nil case batchv1.SchemeGroupVersion.WithResource("jobs"): return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1().Jobs().Informer()}, nil @@ -154,10 +156,6 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case batchv1beta1.SchemeGroupVersion.WithResource("cronjobs"): return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1beta1().CronJobs().Informer()}, nil - // Group=batch, Version=v2alpha1 - case v2alpha1.SchemeGroupVersion.WithResource("cronjobs"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V2alpha1().CronJobs().Informer()}, nil - // Group=certificates.k8s.io, Version=v1 case certificatesv1.SchemeGroupVersion.WithResource("certificatesigningrequests"): return &genericInformer{resource: resource.GroupResource(), informer: f.Certificates().V1().CertificateSigningRequests().Informer()}, nil @@ -208,9 +206,9 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case corev1.SchemeGroupVersion.WithResource("serviceaccounts"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ServiceAccounts().Informer()}, nil - // Group=discovery.k8s.io, Version=v1alpha1 - case v1alpha1.SchemeGroupVersion.WithResource("endpointslices"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Discovery().V1alpha1().EndpointSlices().Informer()}, nil + // Group=discovery.k8s.io, Version=v1 + case discoveryv1.SchemeGroupVersion.WithResource("endpointslices"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Discovery().V1().EndpointSlices().Informer()}, nil // Group=discovery.k8s.io, Version=v1beta1 case discoveryv1beta1.SchemeGroupVersion.WithResource("endpointslices"): @@ -239,9 +237,9 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().ReplicaSets().Informer()}, nil // Group=flowcontrol.apiserver.k8s.io, Version=v1alpha1 - case flowcontrolv1alpha1.SchemeGroupVersion.WithResource("flowschemas"): + case v1alpha1.SchemeGroupVersion.WithResource("flowschemas"): return &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1alpha1().FlowSchemas().Informer()}, nil - case flowcontrolv1alpha1.SchemeGroupVersion.WithResource("prioritylevelconfigurations"): + case v1alpha1.SchemeGroupVersion.WithResource("prioritylevelconfigurations"): return &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1alpha1().PriorityLevelConfigurations().Informer()}, nil // Group=flowcontrol.apiserver.k8s.io, Version=v1beta1 @@ -280,6 +278,10 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case nodev1beta1.SchemeGroupVersion.WithResource("runtimeclasses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Node().V1beta1().RuntimeClasses().Informer()}, nil + // Group=policy, Version=v1 + case policyv1.SchemeGroupVersion.WithResource("poddisruptionbudgets"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1().PodDisruptionBudgets().Informer()}, nil + // Group=policy, Version=v1beta1 case policyv1beta1.SchemeGroupVersion.WithResource("poddisruptionbudgets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodDisruptionBudgets().Informer()}, nil @@ -349,6 +351,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().CSIDrivers().Informer()}, nil case storagev1beta1.SchemeGroupVersion.WithResource("csinodes"): return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().CSINodes().Informer()}, nil + case storagev1beta1.SchemeGroupVersion.WithResource("csistoragecapacities"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().CSIStorageCapacities().Informer()}, nil case storagev1beta1.SchemeGroupVersion.WithResource("storageclasses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().StorageClasses().Informer()}, nil case storagev1beta1.SchemeGroupVersion.WithResource("volumeattachments"): diff --git a/vendor/k8s.io/client-go/informers/policy/interface.go b/vendor/k8s.io/client-go/informers/policy/interface.go index 1859fca821..889cb8152c 100644 --- a/vendor/k8s.io/client-go/informers/policy/interface.go +++ b/vendor/k8s.io/client-go/informers/policy/interface.go @@ -20,11 +20,14 @@ package policy import ( internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + v1 "k8s.io/client-go/informers/policy/v1" v1beta1 "k8s.io/client-go/informers/policy/v1beta1" ) // Interface provides access to each of this group's versions. type Interface interface { + // V1 provides access to shared informers for resources in V1. + V1() v1.Interface // V1beta1 provides access to shared informers for resources in V1beta1. V1beta1() v1beta1.Interface } @@ -40,6 +43,11 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } +// V1 returns a new v1.Interface. +func (g *group) V1() v1.Interface { + return v1.New(g.factory, g.namespace, g.tweakListOptions) +} + // V1beta1 returns a new v1beta1.Interface. func (g *group) V1beta1() v1beta1.Interface { return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) diff --git a/vendor/k8s.io/client-go/informers/policy/v1/interface.go b/vendor/k8s.io/client-go/informers/policy/v1/interface.go new file mode 100644 index 0000000000..2c42e1993c --- /dev/null +++ b/vendor/k8s.io/client-go/informers/policy/v1/interface.go @@ -0,0 +1,45 @@ +/* +Copyright 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1 + +import ( + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // PodDisruptionBudgets returns a PodDisruptionBudgetInformer. + PodDisruptionBudgets() PodDisruptionBudgetInformer +} + +type version struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// PodDisruptionBudgets returns a PodDisruptionBudgetInformer. +func (v *version) PodDisruptionBudgets() PodDisruptionBudgetInformer { + return &podDisruptionBudgetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/client-go/informers/policy/v1/poddisruptionbudget.go b/vendor/k8s.io/client-go/informers/policy/v1/poddisruptionbudget.go new file mode 100644 index 0000000000..436598512a --- /dev/null +++ b/vendor/k8s.io/client-go/informers/policy/v1/poddisruptionbudget.go @@ -0,0 +1,90 @@ +/* +Copyright 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1 + +import ( + "context" + time "time" + + policyv1 "k8s.io/api/policy/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1 "k8s.io/client-go/listers/policy/v1" + cache "k8s.io/client-go/tools/cache" +) + +// PodDisruptionBudgetInformer provides access to a shared informer and lister for +// PodDisruptionBudgets. +type PodDisruptionBudgetInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.PodDisruptionBudgetLister +} + +type podDisruptionBudgetInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewPodDisruptionBudgetInformer constructs a new informer for PodDisruptionBudget type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewPodDisruptionBudgetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodDisruptionBudgetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredPodDisruptionBudgetInformer constructs a new informer for PodDisruptionBudget type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredPodDisruptionBudgetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.PolicyV1().PodDisruptionBudgets(namespace).List(context.TODO(), options) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.PolicyV1().PodDisruptionBudgets(namespace).Watch(context.TODO(), options) + }, + }, + &policyv1.PodDisruptionBudget{}, + resyncPeriod, + indexers, + ) +} + +func (f *podDisruptionBudgetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodDisruptionBudgetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *podDisruptionBudgetInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&policyv1.PodDisruptionBudget{}, f.defaultInformer) +} + +func (f *podDisruptionBudgetInformer) Lister() v1.PodDisruptionBudgetLister { + return v1.NewPodDisruptionBudgetLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/client-go/informers/storage/v1beta1/csistoragecapacity.go b/vendor/k8s.io/client-go/informers/storage/v1beta1/csistoragecapacity.go new file mode 100644 index 0000000000..8f0cc46687 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/storage/v1beta1/csistoragecapacity.go @@ -0,0 +1,90 @@ +/* +Copyright 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta1 + +import ( + "context" + time "time" + + storagev1beta1 "k8s.io/api/storage/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1beta1 "k8s.io/client-go/listers/storage/v1beta1" + cache "k8s.io/client-go/tools/cache" +) + +// CSIStorageCapacityInformer provides access to a shared informer and lister for +// CSIStorageCapacities. +type CSIStorageCapacityInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1beta1.CSIStorageCapacityLister +} + +type cSIStorageCapacityInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewCSIStorageCapacityInformer constructs a new informer for CSIStorageCapacity type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewCSIStorageCapacityInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredCSIStorageCapacityInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredCSIStorageCapacityInformer constructs a new informer for CSIStorageCapacity type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredCSIStorageCapacityInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.StorageV1beta1().CSIStorageCapacities(namespace).List(context.TODO(), options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.StorageV1beta1().CSIStorageCapacities(namespace).Watch(context.TODO(), options) + }, + }, + &storagev1beta1.CSIStorageCapacity{}, + resyncPeriod, + indexers, + ) +} + +func (f *cSIStorageCapacityInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredCSIStorageCapacityInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *cSIStorageCapacityInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&storagev1beta1.CSIStorageCapacity{}, f.defaultInformer) +} + +func (f *cSIStorageCapacityInformer) Lister() v1beta1.CSIStorageCapacityLister { + return v1beta1.NewCSIStorageCapacityLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/client-go/informers/storage/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/storage/v1beta1/interface.go index af4ee2f74a..77b77c08ee 100644 --- a/vendor/k8s.io/client-go/informers/storage/v1beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/storage/v1beta1/interface.go @@ -28,6 +28,8 @@ type Interface interface { CSIDrivers() CSIDriverInformer // CSINodes returns a CSINodeInformer. CSINodes() CSINodeInformer + // CSIStorageCapacities returns a CSIStorageCapacityInformer. + CSIStorageCapacities() CSIStorageCapacityInformer // StorageClasses returns a StorageClassInformer. StorageClasses() StorageClassInformer // VolumeAttachments returns a VolumeAttachmentInformer. @@ -55,6 +57,11 @@ func (v *version) CSINodes() CSINodeInformer { return &cSINodeInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } +// CSIStorageCapacities returns a CSIStorageCapacityInformer. +func (v *version) CSIStorageCapacities() CSIStorageCapacityInformer { + return &cSIStorageCapacityInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + // StorageClasses returns a StorageClassInformer. func (v *version) StorageClasses() StorageClassInformer { return &storageClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} diff --git a/vendor/k8s.io/client-go/kubernetes/clientset.go b/vendor/k8s.io/client-go/kubernetes/clientset.go index f0d54b6a18..55a236fac5 100644 --- a/vendor/k8s.io/client-go/kubernetes/clientset.go +++ b/vendor/k8s.io/client-go/kubernetes/clientset.go @@ -37,13 +37,12 @@ import ( autoscalingv2beta2 "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2" batchv1 "k8s.io/client-go/kubernetes/typed/batch/v1" batchv1beta1 "k8s.io/client-go/kubernetes/typed/batch/v1beta1" - batchv2alpha1 "k8s.io/client-go/kubernetes/typed/batch/v2alpha1" certificatesv1 "k8s.io/client-go/kubernetes/typed/certificates/v1" certificatesv1beta1 "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" coordinationv1 "k8s.io/client-go/kubernetes/typed/coordination/v1" coordinationv1beta1 "k8s.io/client-go/kubernetes/typed/coordination/v1beta1" corev1 "k8s.io/client-go/kubernetes/typed/core/v1" - discoveryv1alpha1 "k8s.io/client-go/kubernetes/typed/discovery/v1alpha1" + discoveryv1 "k8s.io/client-go/kubernetes/typed/discovery/v1" discoveryv1beta1 "k8s.io/client-go/kubernetes/typed/discovery/v1beta1" eventsv1 "k8s.io/client-go/kubernetes/typed/events/v1" eventsv1beta1 "k8s.io/client-go/kubernetes/typed/events/v1beta1" @@ -55,6 +54,7 @@ import ( nodev1 "k8s.io/client-go/kubernetes/typed/node/v1" nodev1alpha1 "k8s.io/client-go/kubernetes/typed/node/v1alpha1" nodev1beta1 "k8s.io/client-go/kubernetes/typed/node/v1beta1" + policyv1 "k8s.io/client-go/kubernetes/typed/policy/v1" policyv1beta1 "k8s.io/client-go/kubernetes/typed/policy/v1beta1" rbacv1 "k8s.io/client-go/kubernetes/typed/rbac/v1" rbacv1alpha1 "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1" @@ -86,13 +86,12 @@ type Interface interface { AutoscalingV2beta2() autoscalingv2beta2.AutoscalingV2beta2Interface BatchV1() batchv1.BatchV1Interface BatchV1beta1() batchv1beta1.BatchV1beta1Interface - BatchV2alpha1() batchv2alpha1.BatchV2alpha1Interface CertificatesV1() certificatesv1.CertificatesV1Interface CertificatesV1beta1() certificatesv1beta1.CertificatesV1beta1Interface CoordinationV1beta1() coordinationv1beta1.CoordinationV1beta1Interface CoordinationV1() coordinationv1.CoordinationV1Interface CoreV1() corev1.CoreV1Interface - DiscoveryV1alpha1() discoveryv1alpha1.DiscoveryV1alpha1Interface + DiscoveryV1() discoveryv1.DiscoveryV1Interface DiscoveryV1beta1() discoveryv1beta1.DiscoveryV1beta1Interface EventsV1() eventsv1.EventsV1Interface EventsV1beta1() eventsv1beta1.EventsV1beta1Interface @@ -104,6 +103,7 @@ type Interface interface { NodeV1() nodev1.NodeV1Interface NodeV1alpha1() nodev1alpha1.NodeV1alpha1Interface NodeV1beta1() nodev1beta1.NodeV1beta1Interface + PolicyV1() policyv1.PolicyV1Interface PolicyV1beta1() policyv1beta1.PolicyV1beta1Interface RbacV1() rbacv1.RbacV1Interface RbacV1beta1() rbacv1beta1.RbacV1beta1Interface @@ -135,13 +135,12 @@ type Clientset struct { autoscalingV2beta2 *autoscalingv2beta2.AutoscalingV2beta2Client batchV1 *batchv1.BatchV1Client batchV1beta1 *batchv1beta1.BatchV1beta1Client - batchV2alpha1 *batchv2alpha1.BatchV2alpha1Client certificatesV1 *certificatesv1.CertificatesV1Client certificatesV1beta1 *certificatesv1beta1.CertificatesV1beta1Client coordinationV1beta1 *coordinationv1beta1.CoordinationV1beta1Client coordinationV1 *coordinationv1.CoordinationV1Client coreV1 *corev1.CoreV1Client - discoveryV1alpha1 *discoveryv1alpha1.DiscoveryV1alpha1Client + discoveryV1 *discoveryv1.DiscoveryV1Client discoveryV1beta1 *discoveryv1beta1.DiscoveryV1beta1Client eventsV1 *eventsv1.EventsV1Client eventsV1beta1 *eventsv1beta1.EventsV1beta1Client @@ -153,6 +152,7 @@ type Clientset struct { nodeV1 *nodev1.NodeV1Client nodeV1alpha1 *nodev1alpha1.NodeV1alpha1Client nodeV1beta1 *nodev1beta1.NodeV1beta1Client + policyV1 *policyv1.PolicyV1Client policyV1beta1 *policyv1beta1.PolicyV1beta1Client rbacV1 *rbacv1.RbacV1Client rbacV1beta1 *rbacv1beta1.RbacV1beta1Client @@ -240,11 +240,6 @@ func (c *Clientset) BatchV1beta1() batchv1beta1.BatchV1beta1Interface { return c.batchV1beta1 } -// BatchV2alpha1 retrieves the BatchV2alpha1Client -func (c *Clientset) BatchV2alpha1() batchv2alpha1.BatchV2alpha1Interface { - return c.batchV2alpha1 -} - // CertificatesV1 retrieves the CertificatesV1Client func (c *Clientset) CertificatesV1() certificatesv1.CertificatesV1Interface { return c.certificatesV1 @@ -270,9 +265,9 @@ func (c *Clientset) CoreV1() corev1.CoreV1Interface { return c.coreV1 } -// DiscoveryV1alpha1 retrieves the DiscoveryV1alpha1Client -func (c *Clientset) DiscoveryV1alpha1() discoveryv1alpha1.DiscoveryV1alpha1Interface { - return c.discoveryV1alpha1 +// DiscoveryV1 retrieves the DiscoveryV1Client +func (c *Clientset) DiscoveryV1() discoveryv1.DiscoveryV1Interface { + return c.discoveryV1 } // DiscoveryV1beta1 retrieves the DiscoveryV1beta1Client @@ -330,6 +325,11 @@ func (c *Clientset) NodeV1beta1() nodev1beta1.NodeV1beta1Interface { return c.nodeV1beta1 } +// PolicyV1 retrieves the PolicyV1Client +func (c *Clientset) PolicyV1() policyv1.PolicyV1Interface { + return c.policyV1 +} + // PolicyV1beta1 retrieves the PolicyV1beta1Client func (c *Clientset) PolicyV1beta1() policyv1beta1.PolicyV1beta1Interface { return c.policyV1beta1 @@ -461,10 +461,6 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } - cs.batchV2alpha1, err = batchv2alpha1.NewForConfig(&configShallowCopy) - if err != nil { - return nil, err - } cs.certificatesV1, err = certificatesv1.NewForConfig(&configShallowCopy) if err != nil { return nil, err @@ -485,7 +481,7 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } - cs.discoveryV1alpha1, err = discoveryv1alpha1.NewForConfig(&configShallowCopy) + cs.discoveryV1, err = discoveryv1.NewForConfig(&configShallowCopy) if err != nil { return nil, err } @@ -533,6 +529,10 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } + cs.policyV1, err = policyv1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } cs.policyV1beta1, err = policyv1beta1.NewForConfig(&configShallowCopy) if err != nil { return nil, err @@ -600,13 +600,12 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { cs.autoscalingV2beta2 = autoscalingv2beta2.NewForConfigOrDie(c) cs.batchV1 = batchv1.NewForConfigOrDie(c) cs.batchV1beta1 = batchv1beta1.NewForConfigOrDie(c) - cs.batchV2alpha1 = batchv2alpha1.NewForConfigOrDie(c) cs.certificatesV1 = certificatesv1.NewForConfigOrDie(c) cs.certificatesV1beta1 = certificatesv1beta1.NewForConfigOrDie(c) cs.coordinationV1beta1 = coordinationv1beta1.NewForConfigOrDie(c) cs.coordinationV1 = coordinationv1.NewForConfigOrDie(c) cs.coreV1 = corev1.NewForConfigOrDie(c) - cs.discoveryV1alpha1 = discoveryv1alpha1.NewForConfigOrDie(c) + cs.discoveryV1 = discoveryv1.NewForConfigOrDie(c) cs.discoveryV1beta1 = discoveryv1beta1.NewForConfigOrDie(c) cs.eventsV1 = eventsv1.NewForConfigOrDie(c) cs.eventsV1beta1 = eventsv1beta1.NewForConfigOrDie(c) @@ -618,6 +617,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { cs.nodeV1 = nodev1.NewForConfigOrDie(c) cs.nodeV1alpha1 = nodev1alpha1.NewForConfigOrDie(c) cs.nodeV1beta1 = nodev1beta1.NewForConfigOrDie(c) + cs.policyV1 = policyv1.NewForConfigOrDie(c) cs.policyV1beta1 = policyv1beta1.NewForConfigOrDie(c) cs.rbacV1 = rbacv1.NewForConfigOrDie(c) cs.rbacV1beta1 = rbacv1beta1.NewForConfigOrDie(c) @@ -651,13 +651,12 @@ func New(c rest.Interface) *Clientset { cs.autoscalingV2beta2 = autoscalingv2beta2.New(c) cs.batchV1 = batchv1.New(c) cs.batchV1beta1 = batchv1beta1.New(c) - cs.batchV2alpha1 = batchv2alpha1.New(c) cs.certificatesV1 = certificatesv1.New(c) cs.certificatesV1beta1 = certificatesv1beta1.New(c) cs.coordinationV1beta1 = coordinationv1beta1.New(c) cs.coordinationV1 = coordinationv1.New(c) cs.coreV1 = corev1.New(c) - cs.discoveryV1alpha1 = discoveryv1alpha1.New(c) + cs.discoveryV1 = discoveryv1.New(c) cs.discoveryV1beta1 = discoveryv1beta1.New(c) cs.eventsV1 = eventsv1.New(c) cs.eventsV1beta1 = eventsv1beta1.New(c) @@ -669,6 +668,7 @@ func New(c rest.Interface) *Clientset { cs.nodeV1 = nodev1.New(c) cs.nodeV1alpha1 = nodev1alpha1.New(c) cs.nodeV1beta1 = nodev1beta1.New(c) + cs.policyV1 = policyv1.New(c) cs.policyV1beta1 = policyv1beta1.New(c) cs.rbacV1 = rbacv1.New(c) cs.rbacV1beta1 = rbacv1beta1.New(c) diff --git a/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go b/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go index 7293844ca5..c09d8999f8 100644 --- a/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go +++ b/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go @@ -54,8 +54,6 @@ import ( fakebatchv1 "k8s.io/client-go/kubernetes/typed/batch/v1/fake" batchv1beta1 "k8s.io/client-go/kubernetes/typed/batch/v1beta1" fakebatchv1beta1 "k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake" - batchv2alpha1 "k8s.io/client-go/kubernetes/typed/batch/v2alpha1" - fakebatchv2alpha1 "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake" certificatesv1 "k8s.io/client-go/kubernetes/typed/certificates/v1" fakecertificatesv1 "k8s.io/client-go/kubernetes/typed/certificates/v1/fake" certificatesv1beta1 "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" @@ -66,8 +64,8 @@ import ( fakecoordinationv1beta1 "k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake" corev1 "k8s.io/client-go/kubernetes/typed/core/v1" fakecorev1 "k8s.io/client-go/kubernetes/typed/core/v1/fake" - discoveryv1alpha1 "k8s.io/client-go/kubernetes/typed/discovery/v1alpha1" - fakediscoveryv1alpha1 "k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/fake" + discoveryv1 "k8s.io/client-go/kubernetes/typed/discovery/v1" + fakediscoveryv1 "k8s.io/client-go/kubernetes/typed/discovery/v1/fake" discoveryv1beta1 "k8s.io/client-go/kubernetes/typed/discovery/v1beta1" fakediscoveryv1beta1 "k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake" eventsv1 "k8s.io/client-go/kubernetes/typed/events/v1" @@ -90,6 +88,8 @@ import ( fakenodev1alpha1 "k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake" nodev1beta1 "k8s.io/client-go/kubernetes/typed/node/v1beta1" fakenodev1beta1 "k8s.io/client-go/kubernetes/typed/node/v1beta1/fake" + policyv1 "k8s.io/client-go/kubernetes/typed/policy/v1" + fakepolicyv1 "k8s.io/client-go/kubernetes/typed/policy/v1/fake" policyv1beta1 "k8s.io/client-go/kubernetes/typed/policy/v1beta1" fakepolicyv1beta1 "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake" rbacv1 "k8s.io/client-go/kubernetes/typed/rbac/v1" @@ -235,11 +235,6 @@ func (c *Clientset) BatchV1beta1() batchv1beta1.BatchV1beta1Interface { return &fakebatchv1beta1.FakeBatchV1beta1{Fake: &c.Fake} } -// BatchV2alpha1 retrieves the BatchV2alpha1Client -func (c *Clientset) BatchV2alpha1() batchv2alpha1.BatchV2alpha1Interface { - return &fakebatchv2alpha1.FakeBatchV2alpha1{Fake: &c.Fake} -} - // CertificatesV1 retrieves the CertificatesV1Client func (c *Clientset) CertificatesV1() certificatesv1.CertificatesV1Interface { return &fakecertificatesv1.FakeCertificatesV1{Fake: &c.Fake} @@ -265,9 +260,9 @@ func (c *Clientset) CoreV1() corev1.CoreV1Interface { return &fakecorev1.FakeCoreV1{Fake: &c.Fake} } -// DiscoveryV1alpha1 retrieves the DiscoveryV1alpha1Client -func (c *Clientset) DiscoveryV1alpha1() discoveryv1alpha1.DiscoveryV1alpha1Interface { - return &fakediscoveryv1alpha1.FakeDiscoveryV1alpha1{Fake: &c.Fake} +// DiscoveryV1 retrieves the DiscoveryV1Client +func (c *Clientset) DiscoveryV1() discoveryv1.DiscoveryV1Interface { + return &fakediscoveryv1.FakeDiscoveryV1{Fake: &c.Fake} } // DiscoveryV1beta1 retrieves the DiscoveryV1beta1Client @@ -325,6 +320,11 @@ func (c *Clientset) NodeV1beta1() nodev1beta1.NodeV1beta1Interface { return &fakenodev1beta1.FakeNodeV1beta1{Fake: &c.Fake} } +// PolicyV1 retrieves the PolicyV1Client +func (c *Clientset) PolicyV1() policyv1.PolicyV1Interface { + return &fakepolicyv1.FakePolicyV1{Fake: &c.Fake} +} + // PolicyV1beta1 retrieves the PolicyV1beta1Client func (c *Clientset) PolicyV1beta1() policyv1beta1.PolicyV1beta1Interface { return &fakepolicyv1beta1.FakePolicyV1beta1{Fake: &c.Fake} diff --git a/vendor/k8s.io/client-go/kubernetes/fake/register.go b/vendor/k8s.io/client-go/kubernetes/fake/register.go index 0e8ab29f5f..789d6428fe 100644 --- a/vendor/k8s.io/client-go/kubernetes/fake/register.go +++ b/vendor/k8s.io/client-go/kubernetes/fake/register.go @@ -34,13 +34,12 @@ import ( autoscalingv2beta2 "k8s.io/api/autoscaling/v2beta2" batchv1 "k8s.io/api/batch/v1" batchv1beta1 "k8s.io/api/batch/v1beta1" - batchv2alpha1 "k8s.io/api/batch/v2alpha1" certificatesv1 "k8s.io/api/certificates/v1" certificatesv1beta1 "k8s.io/api/certificates/v1beta1" coordinationv1 "k8s.io/api/coordination/v1" coordinationv1beta1 "k8s.io/api/coordination/v1beta1" corev1 "k8s.io/api/core/v1" - discoveryv1alpha1 "k8s.io/api/discovery/v1alpha1" + discoveryv1 "k8s.io/api/discovery/v1" discoveryv1beta1 "k8s.io/api/discovery/v1beta1" eventsv1 "k8s.io/api/events/v1" eventsv1beta1 "k8s.io/api/events/v1beta1" @@ -52,6 +51,7 @@ import ( nodev1 "k8s.io/api/node/v1" nodev1alpha1 "k8s.io/api/node/v1alpha1" nodev1beta1 "k8s.io/api/node/v1beta1" + policyv1 "k8s.io/api/policy/v1" policyv1beta1 "k8s.io/api/policy/v1beta1" rbacv1 "k8s.io/api/rbac/v1" rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" @@ -88,13 +88,12 @@ var localSchemeBuilder = runtime.SchemeBuilder{ autoscalingv2beta2.AddToScheme, batchv1.AddToScheme, batchv1beta1.AddToScheme, - batchv2alpha1.AddToScheme, certificatesv1.AddToScheme, certificatesv1beta1.AddToScheme, coordinationv1beta1.AddToScheme, coordinationv1.AddToScheme, corev1.AddToScheme, - discoveryv1alpha1.AddToScheme, + discoveryv1.AddToScheme, discoveryv1beta1.AddToScheme, eventsv1.AddToScheme, eventsv1beta1.AddToScheme, @@ -106,6 +105,7 @@ var localSchemeBuilder = runtime.SchemeBuilder{ nodev1.AddToScheme, nodev1alpha1.AddToScheme, nodev1beta1.AddToScheme, + policyv1.AddToScheme, policyv1beta1.AddToScheme, rbacv1.AddToScheme, rbacv1beta1.AddToScheme, diff --git a/vendor/k8s.io/client-go/kubernetes/scheme/register.go b/vendor/k8s.io/client-go/kubernetes/scheme/register.go index 5601e20dd5..a46fb29629 100644 --- a/vendor/k8s.io/client-go/kubernetes/scheme/register.go +++ b/vendor/k8s.io/client-go/kubernetes/scheme/register.go @@ -34,13 +34,12 @@ import ( autoscalingv2beta2 "k8s.io/api/autoscaling/v2beta2" batchv1 "k8s.io/api/batch/v1" batchv1beta1 "k8s.io/api/batch/v1beta1" - batchv2alpha1 "k8s.io/api/batch/v2alpha1" certificatesv1 "k8s.io/api/certificates/v1" certificatesv1beta1 "k8s.io/api/certificates/v1beta1" coordinationv1 "k8s.io/api/coordination/v1" coordinationv1beta1 "k8s.io/api/coordination/v1beta1" corev1 "k8s.io/api/core/v1" - discoveryv1alpha1 "k8s.io/api/discovery/v1alpha1" + discoveryv1 "k8s.io/api/discovery/v1" discoveryv1beta1 "k8s.io/api/discovery/v1beta1" eventsv1 "k8s.io/api/events/v1" eventsv1beta1 "k8s.io/api/events/v1beta1" @@ -52,6 +51,7 @@ import ( nodev1 "k8s.io/api/node/v1" nodev1alpha1 "k8s.io/api/node/v1alpha1" nodev1beta1 "k8s.io/api/node/v1beta1" + policyv1 "k8s.io/api/policy/v1" policyv1beta1 "k8s.io/api/policy/v1beta1" rbacv1 "k8s.io/api/rbac/v1" rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" @@ -88,13 +88,12 @@ var localSchemeBuilder = runtime.SchemeBuilder{ autoscalingv2beta2.AddToScheme, batchv1.AddToScheme, batchv1beta1.AddToScheme, - batchv2alpha1.AddToScheme, certificatesv1.AddToScheme, certificatesv1beta1.AddToScheme, coordinationv1beta1.AddToScheme, coordinationv1.AddToScheme, corev1.AddToScheme, - discoveryv1alpha1.AddToScheme, + discoveryv1.AddToScheme, discoveryv1beta1.AddToScheme, eventsv1.AddToScheme, eventsv1beta1.AddToScheme, @@ -106,6 +105,7 @@ var localSchemeBuilder = runtime.SchemeBuilder{ nodev1.AddToScheme, nodev1alpha1.AddToScheme, nodev1beta1.AddToScheme, + policyv1.AddToScheme, policyv1beta1.AddToScheme, rbacv1.AddToScheme, rbacv1beta1.AddToScheme, diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_mutatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_mutatingwebhookconfiguration.go index 1173846127..cda5c5d638 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_mutatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_mutatingwebhookconfiguration.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" admissionregistrationv1 "k8s.io/api/admissionregistration/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsadmissionregistrationv1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeMutatingWebhookConfigurations) Patch(ctx context.Context, name stri } return obj.(*admissionregistrationv1.MutatingWebhookConfiguration), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied mutatingWebhookConfiguration. +func (c *FakeMutatingWebhookConfigurations) Apply(ctx context.Context, mutatingWebhookConfiguration *applyconfigurationsadmissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1.MutatingWebhookConfiguration, err error) { + if mutatingWebhookConfiguration == nil { + return nil, fmt.Errorf("mutatingWebhookConfiguration provided to Apply must not be nil") + } + data, err := json.Marshal(mutatingWebhookConfiguration) + if err != nil { + return nil, err + } + name := mutatingWebhookConfiguration.Name + if name == nil { + return nil, fmt.Errorf("mutatingWebhookConfiguration.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(mutatingwebhookconfigurationsResource, *name, types.ApplyPatchType, data), &admissionregistrationv1.MutatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*admissionregistrationv1.MutatingWebhookConfiguration), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingwebhookconfiguration.go index 78b059372c..8cf1956121 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingwebhookconfiguration.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" admissionregistrationv1 "k8s.io/api/admissionregistration/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsadmissionregistrationv1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeValidatingWebhookConfigurations) Patch(ctx context.Context, name st } return obj.(*admissionregistrationv1.ValidatingWebhookConfiguration), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied validatingWebhookConfiguration. +func (c *FakeValidatingWebhookConfigurations) Apply(ctx context.Context, validatingWebhookConfiguration *applyconfigurationsadmissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1.ValidatingWebhookConfiguration, err error) { + if validatingWebhookConfiguration == nil { + return nil, fmt.Errorf("validatingWebhookConfiguration provided to Apply must not be nil") + } + data, err := json.Marshal(validatingWebhookConfiguration) + if err != nil { + return nil, err + } + name := validatingWebhookConfiguration.Name + if name == nil { + return nil, fmt.Errorf("validatingWebhookConfiguration.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(validatingwebhookconfigurationsResource, *name, types.ApplyPatchType, data), &admissionregistrationv1.ValidatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*admissionregistrationv1.ValidatingWebhookConfiguration), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/mutatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/mutatingwebhookconfiguration.go index cf458f4820..edbc826d19 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/mutatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/mutatingwebhookconfiguration.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/admissionregistration/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + admissionregistrationv1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type MutatingWebhookConfigurationInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.MutatingWebhookConfigurationList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.MutatingWebhookConfiguration, err error) + Apply(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.MutatingWebhookConfiguration, err error) MutatingWebhookConfigurationExpansion } @@ -166,3 +170,28 @@ func (c *mutatingWebhookConfigurations) Patch(ctx context.Context, name string, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied mutatingWebhookConfiguration. +func (c *mutatingWebhookConfigurations) Apply(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.MutatingWebhookConfiguration, err error) { + if mutatingWebhookConfiguration == nil { + return nil, fmt.Errorf("mutatingWebhookConfiguration provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(mutatingWebhookConfiguration) + if err != nil { + return nil, err + } + name := mutatingWebhookConfiguration.Name + if name == nil { + return nil, fmt.Errorf("mutatingWebhookConfiguration.Name must be provided to Apply") + } + result = &v1.MutatingWebhookConfiguration{} + err = c.client.Patch(types.ApplyPatchType). + Resource("mutatingwebhookconfigurations"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingwebhookconfiguration.go index c7191c0fe9..065e3c8341 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingwebhookconfiguration.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/admissionregistration/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + admissionregistrationv1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ValidatingWebhookConfigurationInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.ValidatingWebhookConfigurationList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ValidatingWebhookConfiguration, err error) + Apply(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ValidatingWebhookConfiguration, err error) ValidatingWebhookConfigurationExpansion } @@ -166,3 +170,28 @@ func (c *validatingWebhookConfigurations) Patch(ctx context.Context, name string Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied validatingWebhookConfiguration. +func (c *validatingWebhookConfigurations) Apply(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ValidatingWebhookConfiguration, err error) { + if validatingWebhookConfiguration == nil { + return nil, fmt.Errorf("validatingWebhookConfiguration provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(validatingWebhookConfiguration) + if err != nil { + return nil, err + } + name := validatingWebhookConfiguration.Name + if name == nil { + return nil, fmt.Errorf("validatingWebhookConfiguration.Name must be provided to Apply") + } + result = &v1.ValidatingWebhookConfiguration{} + err = c.client.Patch(types.ApplyPatchType). + Resource("validatingwebhookconfigurations"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_mutatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_mutatingwebhookconfiguration.go index f303f9fdf0..c281156313 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_mutatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_mutatingwebhookconfiguration.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/admissionregistration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + admissionregistrationv1beta1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeMutatingWebhookConfigurations) Patch(ctx context.Context, name stri } return obj.(*v1beta1.MutatingWebhookConfiguration), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied mutatingWebhookConfiguration. +func (c *FakeMutatingWebhookConfigurations) Apply(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.MutatingWebhookConfiguration, err error) { + if mutatingWebhookConfiguration == nil { + return nil, fmt.Errorf("mutatingWebhookConfiguration provided to Apply must not be nil") + } + data, err := json.Marshal(mutatingWebhookConfiguration) + if err != nil { + return nil, err + } + name := mutatingWebhookConfiguration.Name + if name == nil { + return nil, fmt.Errorf("mutatingWebhookConfiguration.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(mutatingwebhookconfigurationsResource, *name, types.ApplyPatchType, data), &v1beta1.MutatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MutatingWebhookConfiguration), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingwebhookconfiguration.go index 7227fe0882..ac87db44af 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingwebhookconfiguration.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/admissionregistration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + admissionregistrationv1beta1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeValidatingWebhookConfigurations) Patch(ctx context.Context, name st } return obj.(*v1beta1.ValidatingWebhookConfiguration), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied validatingWebhookConfiguration. +func (c *FakeValidatingWebhookConfigurations) Apply(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error) { + if validatingWebhookConfiguration == nil { + return nil, fmt.Errorf("validatingWebhookConfiguration provided to Apply must not be nil") + } + data, err := json.Marshal(validatingWebhookConfiguration) + if err != nil { + return nil, err + } + name := validatingWebhookConfiguration.Name + if name == nil { + return nil, fmt.Errorf("validatingWebhookConfiguration.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(validatingwebhookconfigurationsResource, *name, types.ApplyPatchType, data), &v1beta1.ValidatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.ValidatingWebhookConfiguration), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/mutatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/mutatingwebhookconfiguration.go index 73ab9ecdee..ca6bb8bd50 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/mutatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/mutatingwebhookconfiguration.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/admissionregistration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + admissionregistrationv1beta1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type MutatingWebhookConfigurationInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.MutatingWebhookConfigurationList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.MutatingWebhookConfiguration, err error) + Apply(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.MutatingWebhookConfiguration, err error) MutatingWebhookConfigurationExpansion } @@ -166,3 +170,28 @@ func (c *mutatingWebhookConfigurations) Patch(ctx context.Context, name string, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied mutatingWebhookConfiguration. +func (c *mutatingWebhookConfigurations) Apply(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.MutatingWebhookConfiguration, err error) { + if mutatingWebhookConfiguration == nil { + return nil, fmt.Errorf("mutatingWebhookConfiguration provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(mutatingWebhookConfiguration) + if err != nil { + return nil, err + } + name := mutatingWebhookConfiguration.Name + if name == nil { + return nil, fmt.Errorf("mutatingWebhookConfiguration.Name must be provided to Apply") + } + result = &v1beta1.MutatingWebhookConfiguration{} + err = c.client.Patch(types.ApplyPatchType). + Resource("mutatingwebhookconfigurations"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingwebhookconfiguration.go index 5ab0b9e377..5ba5974d7a 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingwebhookconfiguration.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/admissionregistration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + admissionregistrationv1beta1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ValidatingWebhookConfigurationInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.ValidatingWebhookConfigurationList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ValidatingWebhookConfiguration, err error) + Apply(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error) ValidatingWebhookConfigurationExpansion } @@ -166,3 +170,28 @@ func (c *validatingWebhookConfigurations) Patch(ctx context.Context, name string Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied validatingWebhookConfiguration. +func (c *validatingWebhookConfigurations) Apply(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ValidatingWebhookConfiguration, err error) { + if validatingWebhookConfiguration == nil { + return nil, fmt.Errorf("validatingWebhookConfiguration provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(validatingWebhookConfiguration) + if err != nil { + return nil, err + } + name := validatingWebhookConfiguration.Name + if name == nil { + return nil, fmt.Errorf("validatingWebhookConfiguration.Name must be provided to Apply") + } + result = &v1beta1.ValidatingWebhookConfiguration{} + err = c.client.Patch(types.ApplyPatchType). + Resource("validatingwebhookconfigurations"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake/fake_storageversion.go b/vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake/fake_storageversion.go index d75049a40b..71617dc25f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake/fake_storageversion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake/fake_storageversion.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1alpha1 "k8s.io/api/apiserverinternal/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + apiserverinternalv1alpha1 "k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1" testing "k8s.io/client-go/testing" ) @@ -131,3 +134,46 @@ func (c *FakeStorageVersions) Patch(ctx context.Context, name string, pt types.P } return obj.(*v1alpha1.StorageVersion), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied storageVersion. +func (c *FakeStorageVersions) Apply(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error) { + if storageVersion == nil { + return nil, fmt.Errorf("storageVersion provided to Apply must not be nil") + } + data, err := json.Marshal(storageVersion) + if err != nil { + return nil, err + } + name := storageVersion.Name + if name == nil { + return nil, fmt.Errorf("storageVersion.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(storageversionsResource, *name, types.ApplyPatchType, data), &v1alpha1.StorageVersion{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.StorageVersion), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeStorageVersions) ApplyStatus(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error) { + if storageVersion == nil { + return nil, fmt.Errorf("storageVersion provided to Apply must not be nil") + } + data, err := json.Marshal(storageVersion) + if err != nil { + return nil, err + } + name := storageVersion.Name + if name == nil { + return nil, fmt.Errorf("storageVersion.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(storageversionsResource, *name, types.ApplyPatchType, data, "status"), &v1alpha1.StorageVersion{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.StorageVersion), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/storageversion.go b/vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/storageversion.go index af5466b043..18789c7f82 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/storageversion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/storageversion.go @@ -20,12 +20,15 @@ package v1alpha1 import ( "context" + json "encoding/json" + "fmt" "time" v1alpha1 "k8s.io/api/apiserverinternal/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + apiserverinternalv1alpha1 "k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type StorageVersionInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.StorageVersionList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.StorageVersion, err error) + Apply(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error) + ApplyStatus(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error) StorageVersionExpansion } @@ -182,3 +187,57 @@ func (c *storageVersions) Patch(ctx context.Context, name string, pt types.Patch Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied storageVersion. +func (c *storageVersions) Apply(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error) { + if storageVersion == nil { + return nil, fmt.Errorf("storageVersion provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(storageVersion) + if err != nil { + return nil, err + } + name := storageVersion.Name + if name == nil { + return nil, fmt.Errorf("storageVersion.Name must be provided to Apply") + } + result = &v1alpha1.StorageVersion{} + err = c.client.Patch(types.ApplyPatchType). + Resource("storageversions"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *storageVersions) ApplyStatus(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.StorageVersion, err error) { + if storageVersion == nil { + return nil, fmt.Errorf("storageVersion provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(storageVersion) + if err != nil { + return nil, err + } + + name := storageVersion.Name + if name == nil { + return nil, fmt.Errorf("storageVersion.Name must be provided to Apply") + } + + result = &v1alpha1.StorageVersion{} + err = c.client.Patch(types.ApplyPatchType). + Resource("storageversions"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go index dba06207a0..f4b198265d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/apps/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1 "k8s.io/client-go/applyconfigurations/apps/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ControllerRevisionInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.ControllerRevisionList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ControllerRevision, err error) + Apply(ctx context.Context, controllerRevision *appsv1.ControllerRevisionApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ControllerRevision, err error) ControllerRevisionExpansion } @@ -176,3 +180,29 @@ func (c *controllerRevisions) Patch(ctx context.Context, name string, pt types.P Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision. +func (c *controllerRevisions) Apply(ctx context.Context, controllerRevision *appsv1.ControllerRevisionApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ControllerRevision, err error) { + if controllerRevision == nil { + return nil, fmt.Errorf("controllerRevision provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(controllerRevision) + if err != nil { + return nil, err + } + name := controllerRevision.Name + if name == nil { + return nil, fmt.Errorf("controllerRevision.Name must be provided to Apply") + } + result = &v1.ControllerRevision{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("controllerrevisions"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/daemonset.go index 0bb397af72..53e5392879 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/daemonset.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/apps/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1 "k8s.io/client-go/applyconfigurations/apps/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type DaemonSetInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.DaemonSetList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.DaemonSet, err error) + Apply(ctx context.Context, daemonSet *appsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.DaemonSet, err error) + ApplyStatus(ctx context.Context, daemonSet *appsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.DaemonSet, err error) DaemonSetExpansion } @@ -193,3 +198,59 @@ func (c *daemonSets) Patch(ctx context.Context, name string, pt types.PatchType, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet. +func (c *daemonSets) Apply(ctx context.Context, daemonSet *appsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + result = &v1.DaemonSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("daemonsets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *daemonSets) ApplyStatus(ctx context.Context, daemonSet *appsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + + result = &v1.DaemonSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("daemonsets"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go index 69d1b86dc0..51545107d5 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go @@ -20,6 +20,8 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/apps/v1" @@ -27,6 +29,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1 "k8s.io/client-go/applyconfigurations/apps/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -48,6 +51,8 @@ type DeploymentInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.DeploymentList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Deployment, err error) + Apply(ctx context.Context, deployment *appsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Deployment, err error) + ApplyStatus(ctx context.Context, deployment *appsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Deployment, err error) GetScale(ctx context.Context, deploymentName string, options metav1.GetOptions) (*autoscalingv1.Scale, error) UpdateScale(ctx context.Context, deploymentName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error) @@ -198,6 +203,62 @@ func (c *deployments) Patch(ctx context.Context, name string, pt types.PatchType return } +// Apply takes the given apply declarative configuration, applies it and returns the applied deployment. +func (c *deployments) Apply(ctx context.Context, deployment *appsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + result = &v1.Deployment{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("deployments"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *deployments) ApplyStatus(ctx context.Context, deployment *appsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + + result = &v1.Deployment{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("deployments"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + // GetScale takes name of the deployment, and returns the corresponding autoscalingv1.Scale object, and an error if there is any. func (c *deployments) GetScale(ctx context.Context, deploymentName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) { result = &autoscalingv1.Scale{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go index 959fc758da..c7ba0c50af 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" appsv1 "k8s.io/api/apps/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsappsv1 "k8s.io/client-go/applyconfigurations/apps/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeControllerRevisions) Patch(ctx context.Context, name string, pt typ } return obj.(*appsv1.ControllerRevision), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision. +func (c *FakeControllerRevisions) Apply(ctx context.Context, controllerRevision *applyconfigurationsappsv1.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *appsv1.ControllerRevision, err error) { + if controllerRevision == nil { + return nil, fmt.Errorf("controllerRevision provided to Apply must not be nil") + } + data, err := json.Marshal(controllerRevision) + if err != nil { + return nil, err + } + name := controllerRevision.Name + if name == nil { + return nil, fmt.Errorf("controllerRevision.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, *name, types.ApplyPatchType, data), &appsv1.ControllerRevision{}) + + if obj == nil { + return nil, err + } + return obj.(*appsv1.ControllerRevision), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_daemonset.go index 3a799f6de2..ce69673bcb 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_daemonset.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" appsv1 "k8s.io/api/apps/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsappsv1 "k8s.io/client-go/applyconfigurations/apps/v1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeDaemonSets) Patch(ctx context.Context, name string, pt types.PatchT } return obj.(*appsv1.DaemonSet), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet. +func (c *FakeDaemonSets) Apply(ctx context.Context, daemonSet *applyconfigurationsappsv1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data), &appsv1.DaemonSet{}) + + if obj == nil { + return nil, err + } + return obj.(*appsv1.DaemonSet), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeDaemonSets) ApplyStatus(ctx context.Context, daemonSet *applyconfigurationsappsv1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &appsv1.DaemonSet{}) + + if obj == nil { + return nil, err + } + return obj.(*appsv1.DaemonSet), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go index 868742ac6c..3fe07c7785 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" appsv1 "k8s.io/api/apps/v1" autoscalingv1 "k8s.io/api/autoscaling/v1" @@ -28,6 +30,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsappsv1 "k8s.io/client-go/applyconfigurations/apps/v1" testing "k8s.io/client-go/testing" ) @@ -142,6 +145,51 @@ func (c *FakeDeployments) Patch(ctx context.Context, name string, pt types.Patch return obj.(*appsv1.Deployment), err } +// Apply takes the given apply declarative configuration, applies it and returns the applied deployment. +func (c *FakeDeployments) Apply(ctx context.Context, deployment *applyconfigurationsappsv1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *appsv1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data), &appsv1.Deployment{}) + + if obj == nil { + return nil, err + } + return obj.(*appsv1.Deployment), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeDeployments) ApplyStatus(ctx context.Context, deployment *applyconfigurationsappsv1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *appsv1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &appsv1.Deployment{}) + + if obj == nil { + return nil, err + } + return obj.(*appsv1.Deployment), err +} + // GetScale takes name of the deployment, and returns the corresponding scale object, and an error if there is any. func (c *FakeDeployments) GetScale(ctx context.Context, deploymentName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) { obj, err := c.Fake. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go index 9e6912b7ee..a84d1bdf6e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" appsv1 "k8s.io/api/apps/v1" autoscalingv1 "k8s.io/api/autoscaling/v1" @@ -28,6 +30,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsappsv1 "k8s.io/client-go/applyconfigurations/apps/v1" testing "k8s.io/client-go/testing" ) @@ -142,6 +145,51 @@ func (c *FakeReplicaSets) Patch(ctx context.Context, name string, pt types.Patch return obj.(*appsv1.ReplicaSet), err } +// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet. +func (c *FakeReplicaSets) Apply(ctx context.Context, replicaSet *applyconfigurationsappsv1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data), &appsv1.ReplicaSet{}) + + if obj == nil { + return nil, err + } + return obj.(*appsv1.ReplicaSet), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeReplicaSets) ApplyStatus(ctx context.Context, replicaSet *applyconfigurationsappsv1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &appsv1.ReplicaSet{}) + + if obj == nil { + return nil, err + } + return obj.(*appsv1.ReplicaSet), err +} + // GetScale takes name of the replicaSet, and returns the corresponding scale object, and an error if there is any. func (c *FakeReplicaSets) GetScale(ctx context.Context, replicaSetName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) { obj, err := c.Fake. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go index 65eea8dc3d..44a3a5e09f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" appsv1 "k8s.io/api/apps/v1" autoscalingv1 "k8s.io/api/autoscaling/v1" @@ -28,6 +30,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsappsv1 "k8s.io/client-go/applyconfigurations/apps/v1" testing "k8s.io/client-go/testing" ) @@ -142,6 +145,51 @@ func (c *FakeStatefulSets) Patch(ctx context.Context, name string, pt types.Patc return obj.(*appsv1.StatefulSet), err } +// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet. +func (c *FakeStatefulSets) Apply(ctx context.Context, statefulSet *applyconfigurationsappsv1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data), &appsv1.StatefulSet{}) + + if obj == nil { + return nil, err + } + return obj.(*appsv1.StatefulSet), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeStatefulSets) ApplyStatus(ctx context.Context, statefulSet *applyconfigurationsappsv1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &appsv1.StatefulSet{}) + + if obj == nil { + return nil, err + } + return obj.(*appsv1.StatefulSet), err +} + // GetScale takes name of the statefulSet, and returns the corresponding scale object, and an error if there is any. func (c *FakeStatefulSets) GetScale(ctx context.Context, statefulSetName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) { obj, err := c.Fake. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go index 377b9ca37a..7a8f0cd84c 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go @@ -20,6 +20,8 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/apps/v1" @@ -27,6 +29,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1 "k8s.io/client-go/applyconfigurations/apps/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -48,6 +51,8 @@ type ReplicaSetInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.ReplicaSetList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ReplicaSet, err error) + Apply(ctx context.Context, replicaSet *appsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicaSet, err error) + ApplyStatus(ctx context.Context, replicaSet *appsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicaSet, err error) GetScale(ctx context.Context, replicaSetName string, options metav1.GetOptions) (*autoscalingv1.Scale, error) UpdateScale(ctx context.Context, replicaSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error) @@ -198,6 +203,62 @@ func (c *replicaSets) Patch(ctx context.Context, name string, pt types.PatchType return } +// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet. +func (c *replicaSets) Apply(ctx context.Context, replicaSet *appsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + result = &v1.ReplicaSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("replicasets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *replicaSets) ApplyStatus(ctx context.Context, replicaSet *appsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + + result = &v1.ReplicaSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("replicasets"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + // GetScale takes name of the replicaSet, and returns the corresponding autoscalingv1.Scale object, and an error if there is any. func (c *replicaSets) GetScale(ctx context.Context, replicaSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) { result = &autoscalingv1.Scale{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go index 33a9f535c1..5626e2baac 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go @@ -20,6 +20,8 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/apps/v1" @@ -27,6 +29,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1 "k8s.io/client-go/applyconfigurations/apps/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -48,6 +51,8 @@ type StatefulSetInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.StatefulSetList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.StatefulSet, err error) + Apply(ctx context.Context, statefulSet *appsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StatefulSet, err error) + ApplyStatus(ctx context.Context, statefulSet *appsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StatefulSet, err error) GetScale(ctx context.Context, statefulSetName string, options metav1.GetOptions) (*autoscalingv1.Scale, error) UpdateScale(ctx context.Context, statefulSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error) @@ -198,6 +203,62 @@ func (c *statefulSets) Patch(ctx context.Context, name string, pt types.PatchTyp return } +// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet. +func (c *statefulSets) Apply(ctx context.Context, statefulSet *appsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + result = &v1.StatefulSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("statefulsets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *statefulSets) ApplyStatus(ctx context.Context, statefulSet *appsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + + result = &v1.StatefulSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("statefulsets"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + // GetScale takes name of the statefulSet, and returns the corresponding autoscalingv1.Scale object, and an error if there is any. func (c *statefulSets) GetScale(ctx context.Context, statefulSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) { result = &autoscalingv1.Scale{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/controllerrevision.go index e247e07d03..0c3f49ba14 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/controllerrevision.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta1 "k8s.io/client-go/applyconfigurations/apps/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ControllerRevisionInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.ControllerRevisionList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ControllerRevision, err error) + Apply(ctx context.Context, controllerRevision *appsv1beta1.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ControllerRevision, err error) ControllerRevisionExpansion } @@ -176,3 +180,29 @@ func (c *controllerRevisions) Patch(ctx context.Context, name string, pt types.P Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision. +func (c *controllerRevisions) Apply(ctx context.Context, controllerRevision *appsv1beta1.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ControllerRevision, err error) { + if controllerRevision == nil { + return nil, fmt.Errorf("controllerRevision provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(controllerRevision) + if err != nil { + return nil, err + } + name := controllerRevision.Name + if name == nil { + return nil, fmt.Errorf("controllerRevision.Name must be provided to Apply") + } + result = &v1beta1.ControllerRevision{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("controllerrevisions"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/deployment.go index dc0dad044d..281758c435 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/deployment.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta1 "k8s.io/client-go/applyconfigurations/apps/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type DeploymentInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.DeploymentList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Deployment, err error) + Apply(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) + ApplyStatus(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) DeploymentExpansion } @@ -193,3 +198,59 @@ func (c *deployments) Patch(ctx context.Context, name string, pt types.PatchType Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied deployment. +func (c *deployments) Apply(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + result = &v1beta1.Deployment{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("deployments"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *deployments) ApplyStatus(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + + result = &v1beta1.Deployment{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("deployments"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_controllerrevision.go index 3215eca7d1..5cf7bf16c3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_controllerrevision.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta1 "k8s.io/client-go/applyconfigurations/apps/v1beta1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeControllerRevisions) Patch(ctx context.Context, name string, pt typ } return obj.(*v1beta1.ControllerRevision), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision. +func (c *FakeControllerRevisions) Apply(ctx context.Context, controllerRevision *appsv1beta1.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ControllerRevision, err error) { + if controllerRevision == nil { + return nil, fmt.Errorf("controllerRevision provided to Apply must not be nil") + } + data, err := json.Marshal(controllerRevision) + if err != nil { + return nil, err + } + name := controllerRevision.Name + if name == nil { + return nil, fmt.Errorf("controllerRevision.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.ControllerRevision{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.ControllerRevision), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_deployment.go index d9a9bbd167..2ab2ce5ff7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_deployment.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta1 "k8s.io/client-go/applyconfigurations/apps/v1beta1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeDeployments) Patch(ctx context.Context, name string, pt types.Patch } return obj.(*v1beta1.Deployment), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied deployment. +func (c *FakeDeployments) Apply(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Deployment{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Deployment), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeDeployments) ApplyStatus(ctx context.Context, deployment *appsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta1.Deployment{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Deployment), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go index ef77142ff1..a7c8db2409 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta1 "k8s.io/client-go/applyconfigurations/apps/v1beta1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeStatefulSets) Patch(ctx context.Context, name string, pt types.Patc } return obj.(*v1beta1.StatefulSet), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet. +func (c *FakeStatefulSets) Apply(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.StatefulSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.StatefulSet), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeStatefulSets) ApplyStatus(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta1.StatefulSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.StatefulSet), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go index 32ec548ab4..3f1aebcffb 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta1 "k8s.io/client-go/applyconfigurations/apps/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type StatefulSetInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.StatefulSetList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.StatefulSet, err error) + Apply(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error) + ApplyStatus(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error) StatefulSetExpansion } @@ -193,3 +198,59 @@ func (c *statefulSets) Patch(ctx context.Context, name string, pt types.PatchTyp Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet. +func (c *statefulSets) Apply(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + result = &v1beta1.StatefulSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("statefulsets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *statefulSets) ApplyStatus(ctx context.Context, statefulSet *appsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + + result = &v1beta1.StatefulSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("statefulsets"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/controllerrevision.go index e8de2d0fd0..e1643277a6 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/controllerrevision.go @@ -20,12 +20,15 @@ package v1beta2 import ( "context" + json "encoding/json" + "fmt" "time" v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta2 "k8s.io/client-go/applyconfigurations/apps/v1beta2" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ControllerRevisionInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta2.ControllerRevisionList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.ControllerRevision, err error) + Apply(ctx context.Context, controllerRevision *appsv1beta2.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ControllerRevision, err error) ControllerRevisionExpansion } @@ -176,3 +180,29 @@ func (c *controllerRevisions) Patch(ctx context.Context, name string, pt types.P Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision. +func (c *controllerRevisions) Apply(ctx context.Context, controllerRevision *appsv1beta2.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ControllerRevision, err error) { + if controllerRevision == nil { + return nil, fmt.Errorf("controllerRevision provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(controllerRevision) + if err != nil { + return nil, err + } + name := controllerRevision.Name + if name == nil { + return nil, fmt.Errorf("controllerRevision.Name must be provided to Apply") + } + result = &v1beta2.ControllerRevision{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("controllerrevisions"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/daemonset.go index 6d3a26d337..1391df87d2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/daemonset.go @@ -20,12 +20,15 @@ package v1beta2 import ( "context" + json "encoding/json" + "fmt" "time" v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta2 "k8s.io/client-go/applyconfigurations/apps/v1beta2" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type DaemonSetInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta2.DaemonSetList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.DaemonSet, err error) + Apply(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error) + ApplyStatus(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error) DaemonSetExpansion } @@ -193,3 +198,59 @@ func (c *daemonSets) Patch(ctx context.Context, name string, pt types.PatchType, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet. +func (c *daemonSets) Apply(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + result = &v1beta2.DaemonSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("daemonsets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *daemonSets) ApplyStatus(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + + result = &v1beta2.DaemonSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("daemonsets"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/deployment.go index 2cdb539ef9..5bda0d92c1 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/deployment.go @@ -20,12 +20,15 @@ package v1beta2 import ( "context" + json "encoding/json" + "fmt" "time" v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta2 "k8s.io/client-go/applyconfigurations/apps/v1beta2" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type DeploymentInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta2.DeploymentList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.Deployment, err error) + Apply(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error) + ApplyStatus(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error) DeploymentExpansion } @@ -193,3 +198,59 @@ func (c *deployments) Patch(ctx context.Context, name string, pt types.PatchType Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied deployment. +func (c *deployments) Apply(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + result = &v1beta2.Deployment{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("deployments"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *deployments) ApplyStatus(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + + result = &v1beta2.Deployment{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("deployments"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_controllerrevision.go index a29d7eb584..90015d915e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_controllerrevision.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta2 "k8s.io/client-go/applyconfigurations/apps/v1beta2" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeControllerRevisions) Patch(ctx context.Context, name string, pt typ } return obj.(*v1beta2.ControllerRevision), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied controllerRevision. +func (c *FakeControllerRevisions) Apply(ctx context.Context, controllerRevision *appsv1beta2.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ControllerRevision, err error) { + if controllerRevision == nil { + return nil, fmt.Errorf("controllerRevision provided to Apply must not be nil") + } + data, err := json.Marshal(controllerRevision) + if err != nil { + return nil, err + } + name := controllerRevision.Name + if name == nil { + return nil, fmt.Errorf("controllerRevision.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta2.ControllerRevision{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.ControllerRevision), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_daemonset.go index 3e355e582f..ef29e2ff87 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_daemonset.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta2 "k8s.io/client-go/applyconfigurations/apps/v1beta2" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeDaemonSets) Patch(ctx context.Context, name string, pt types.PatchT } return obj.(*v1beta2.DaemonSet), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet. +func (c *FakeDaemonSets) Apply(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta2.DaemonSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.DaemonSet), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeDaemonSets) ApplyStatus(ctx context.Context, daemonSet *appsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta2.DaemonSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.DaemonSet), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_deployment.go index c01fddb333..e11b3ffd3a 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_deployment.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta2 "k8s.io/client-go/applyconfigurations/apps/v1beta2" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeDeployments) Patch(ctx context.Context, name string, pt types.Patch } return obj.(*v1beta2.Deployment), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied deployment. +func (c *FakeDeployments) Apply(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta2.Deployment{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.Deployment), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeDeployments) ApplyStatus(ctx context.Context, deployment *appsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta2.Deployment{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.Deployment), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_replicaset.go index 1f623d2976..713b1ec6ee 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_replicaset.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta2 "k8s.io/client-go/applyconfigurations/apps/v1beta2" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeReplicaSets) Patch(ctx context.Context, name string, pt types.Patch } return obj.(*v1beta2.ReplicaSet), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet. +func (c *FakeReplicaSets) Apply(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta2.ReplicaSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.ReplicaSet), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeReplicaSets) ApplyStatus(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta2.ReplicaSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.ReplicaSet), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_statefulset.go index 035086e229..6b996d4f33 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_statefulset.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta2 "k8s.io/client-go/applyconfigurations/apps/v1beta2" testing "k8s.io/client-go/testing" ) @@ -141,6 +144,51 @@ func (c *FakeStatefulSets) Patch(ctx context.Context, name string, pt types.Patc return obj.(*v1beta2.StatefulSet), err } +// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet. +func (c *FakeStatefulSets) Apply(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta2.StatefulSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.StatefulSet), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeStatefulSets) ApplyStatus(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta2.StatefulSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta2.StatefulSet), err +} + // GetScale takes name of the statefulSet, and returns the corresponding scale object, and an error if there is any. func (c *FakeStatefulSets) GetScale(ctx context.Context, statefulSetName string, options v1.GetOptions) (result *v1beta2.Scale, err error) { obj, err := c.Fake. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/replicaset.go index d7365bebb5..988d898f79 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/replicaset.go @@ -20,12 +20,15 @@ package v1beta2 import ( "context" + json "encoding/json" + "fmt" "time" v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta2 "k8s.io/client-go/applyconfigurations/apps/v1beta2" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type ReplicaSetInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta2.ReplicaSetList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.ReplicaSet, err error) + Apply(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error) + ApplyStatus(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error) ReplicaSetExpansion } @@ -193,3 +198,59 @@ func (c *replicaSets) Patch(ctx context.Context, name string, pt types.PatchType Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet. +func (c *replicaSets) Apply(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + result = &v1beta2.ReplicaSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("replicasets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *replicaSets) ApplyStatus(ctx context.Context, replicaSet *appsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + + result = &v1beta2.ReplicaSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("replicasets"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/statefulset.go index 7458316990..73a12c9966 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/statefulset.go @@ -20,12 +20,15 @@ package v1beta2 import ( "context" + json "encoding/json" + "fmt" "time" v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + appsv1beta2 "k8s.io/client-go/applyconfigurations/apps/v1beta2" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type StatefulSetInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta2.StatefulSetList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta2.StatefulSet, err error) + Apply(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error) + ApplyStatus(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error) GetScale(ctx context.Context, statefulSetName string, options v1.GetOptions) (*v1beta2.Scale, error) UpdateScale(ctx context.Context, statefulSetName string, scale *v1beta2.Scale, opts v1.UpdateOptions) (*v1beta2.Scale, error) @@ -197,6 +202,62 @@ func (c *statefulSets) Patch(ctx context.Context, name string, pt types.PatchTyp return } +// Apply takes the given apply declarative configuration, applies it and returns the applied statefulSet. +func (c *statefulSets) Apply(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + result = &v1beta2.StatefulSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("statefulsets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *statefulSets) ApplyStatus(ctx context.Context, statefulSet *appsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.StatefulSet, err error) { + if statefulSet == nil { + return nil, fmt.Errorf("statefulSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(statefulSet) + if err != nil { + return nil, err + } + + name := statefulSet.Name + if name == nil { + return nil, fmt.Errorf("statefulSet.Name must be provided to Apply") + } + + result = &v1beta2.StatefulSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("statefulsets"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + // GetScale takes name of the statefulSet, and returns the corresponding v1beta2.Scale object, and an error if there is any. func (c *statefulSets) GetScale(ctx context.Context, statefulSetName string, options v1.GetOptions) (result *v1beta2.Scale, err error) { result = &v1beta2.Scale{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go index 82b8709a94..2c54f08ef8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" autoscalingv1 "k8s.io/api/autoscaling/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsautoscalingv1 "k8s.io/client-go/applyconfigurations/autoscaling/v1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeHorizontalPodAutoscalers) Patch(ctx context.Context, name string, p } return obj.(*autoscalingv1.HorizontalPodAutoscaler), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler. +func (c *FakeHorizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *applyconfigurationsautoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *autoscalingv1.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data), &autoscalingv1.HorizontalPodAutoscaler{}) + + if obj == nil { + return nil, err + } + return obj.(*autoscalingv1.HorizontalPodAutoscaler), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeHorizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *applyconfigurationsautoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *autoscalingv1.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data, "status"), &autoscalingv1.HorizontalPodAutoscaler{}) + + if obj == nil { + return nil, err + } + return obj.(*autoscalingv1.HorizontalPodAutoscaler), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/horizontalpodautoscaler.go index ca8e0da8ba..19afde66db 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/horizontalpodautoscaler.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/autoscaling/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + autoscalingv1 "k8s.io/client-go/applyconfigurations/autoscaling/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type HorizontalPodAutoscalerInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.HorizontalPodAutoscalerList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.HorizontalPodAutoscaler, err error) + Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.HorizontalPodAutoscaler, err error) + ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.HorizontalPodAutoscaler, err error) HorizontalPodAutoscalerExpansion } @@ -193,3 +198,59 @@ func (c *horizontalPodAutoscalers) Patch(ctx context.Context, name string, pt ty Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler. +func (c *horizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + result = &v1.HorizontalPodAutoscaler{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *horizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + + result = &v1.HorizontalPodAutoscaler{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_horizontalpodautoscaler.go index 292d01814b..4967ca8f0d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_horizontalpodautoscaler.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v2beta1 "k8s.io/api/autoscaling/v2beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + autoscalingv2beta1 "k8s.io/client-go/applyconfigurations/autoscaling/v2beta1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeHorizontalPodAutoscalers) Patch(ctx context.Context, name string, p } return obj.(*v2beta1.HorizontalPodAutoscaler), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler. +func (c *FakeHorizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data), &v2beta1.HorizontalPodAutoscaler{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta1.HorizontalPodAutoscaler), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeHorizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v2beta1.HorizontalPodAutoscaler{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta1.HorizontalPodAutoscaler), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/horizontalpodautoscaler.go index f1637c1b85..5080912a12 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/horizontalpodautoscaler.go @@ -20,12 +20,15 @@ package v2beta1 import ( "context" + json "encoding/json" + "fmt" "time" v2beta1 "k8s.io/api/autoscaling/v2beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + autoscalingv2beta1 "k8s.io/client-go/applyconfigurations/autoscaling/v2beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type HorizontalPodAutoscalerInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v2beta1.HorizontalPodAutoscalerList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta1.HorizontalPodAutoscaler, err error) + Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) + ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) HorizontalPodAutoscalerExpansion } @@ -193,3 +198,59 @@ func (c *horizontalPodAutoscalers) Patch(ctx context.Context, name string, pt ty Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler. +func (c *horizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + result = &v2beta1.HorizontalPodAutoscaler{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *horizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta1.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + + result = &v2beta1.HorizontalPodAutoscaler{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_horizontalpodautoscaler.go index 845568b331..d003343408 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_horizontalpodautoscaler.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v2beta2 "k8s.io/api/autoscaling/v2beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + autoscalingv2beta2 "k8s.io/client-go/applyconfigurations/autoscaling/v2beta2" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeHorizontalPodAutoscalers) Patch(ctx context.Context, name string, p } return obj.(*v2beta2.HorizontalPodAutoscaler), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler. +func (c *FakeHorizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data), &v2beta2.HorizontalPodAutoscaler{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.HorizontalPodAutoscaler), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeHorizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v2beta2.HorizontalPodAutoscaler{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.HorizontalPodAutoscaler), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/horizontalpodautoscaler.go index c7fad10808..0ddb9108b3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/horizontalpodautoscaler.go @@ -20,12 +20,15 @@ package v2beta2 import ( "context" + json "encoding/json" + "fmt" "time" v2beta2 "k8s.io/api/autoscaling/v2beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + autoscalingv2beta2 "k8s.io/client-go/applyconfigurations/autoscaling/v2beta2" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type HorizontalPodAutoscalerInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v2beta2.HorizontalPodAutoscalerList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.HorizontalPodAutoscaler, err error) + Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) + ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) HorizontalPodAutoscalerExpansion } @@ -193,3 +198,59 @@ func (c *horizontalPodAutoscalers) Patch(ctx context.Context, name string, pt ty Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied horizontalPodAutoscaler. +func (c *horizontalPodAutoscalers) Apply(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + result = &v2beta2.HorizontalPodAutoscaler{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *horizontalPodAutoscalers) ApplyStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) { + if horizontalPodAutoscaler == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(horizontalPodAutoscaler) + if err != nil { + return nil, err + } + + name := horizontalPodAutoscaler.Name + if name == nil { + return nil, fmt.Errorf("horizontalPodAutoscaler.Name must be provided to Apply") + } + + result = &v2beta2.HorizontalPodAutoscaler{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/batch_client.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/batch_client.go index 8dfc118a32..ba414eebc7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/batch_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/batch_client.go @@ -26,6 +26,7 @@ import ( type BatchV1Interface interface { RESTClient() rest.Interface + CronJobsGetter JobsGetter } @@ -34,6 +35,10 @@ type BatchV1Client struct { restClient rest.Interface } +func (c *BatchV1Client) CronJobs(namespace string) CronJobInterface { + return newCronJobs(c, namespace) +} + func (c *BatchV1Client) Jobs(namespace string) JobInterface { return newJobs(c, namespace) } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/cronjob.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/cronjob.go new file mode 100644 index 0000000000..9250263215 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/cronjob.go @@ -0,0 +1,256 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1 + +import ( + "context" + json "encoding/json" + "fmt" + "time" + + v1 "k8s.io/api/batch/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + batchv1 "k8s.io/client-go/applyconfigurations/batch/v1" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// CronJobsGetter has a method to return a CronJobInterface. +// A group's client should implement this interface. +type CronJobsGetter interface { + CronJobs(namespace string) CronJobInterface +} + +// CronJobInterface has methods to work with CronJob resources. +type CronJobInterface interface { + Create(ctx context.Context, cronJob *v1.CronJob, opts metav1.CreateOptions) (*v1.CronJob, error) + Update(ctx context.Context, cronJob *v1.CronJob, opts metav1.UpdateOptions) (*v1.CronJob, error) + UpdateStatus(ctx context.Context, cronJob *v1.CronJob, opts metav1.UpdateOptions) (*v1.CronJob, error) + Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error + Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.CronJob, error) + List(ctx context.Context, opts metav1.ListOptions) (*v1.CronJobList, error) + Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CronJob, err error) + Apply(ctx context.Context, cronJob *batchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CronJob, err error) + ApplyStatus(ctx context.Context, cronJob *batchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CronJob, err error) + CronJobExpansion +} + +// cronJobs implements CronJobInterface +type cronJobs struct { + client rest.Interface + ns string +} + +// newCronJobs returns a CronJobs +func newCronJobs(c *BatchV1Client, namespace string) *cronJobs { + return &cronJobs{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the cronJob, and returns the corresponding cronJob object, and an error if there is any. +func (c *cronJobs) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CronJob, err error) { + result = &v1.CronJob{} + err = c.client.Get(). + Namespace(c.ns). + Resource("cronjobs"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of CronJobs that match those selectors. +func (c *cronJobs) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CronJobList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1.CronJobList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("cronjobs"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested cronJobs. +func (c *cronJobs) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("cronjobs"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a cronJob and creates it. Returns the server's representation of the cronJob, and an error, if there is any. +func (c *cronJobs) Create(ctx context.Context, cronJob *v1.CronJob, opts metav1.CreateOptions) (result *v1.CronJob, err error) { + result = &v1.CronJob{} + err = c.client.Post(). + Namespace(c.ns). + Resource("cronjobs"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(cronJob). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a cronJob and updates it. Returns the server's representation of the cronJob, and an error, if there is any. +func (c *cronJobs) Update(ctx context.Context, cronJob *v1.CronJob, opts metav1.UpdateOptions) (result *v1.CronJob, err error) { + result = &v1.CronJob{} + err = c.client.Put(). + Namespace(c.ns). + Resource("cronjobs"). + Name(cronJob.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(cronJob). + Do(ctx). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *cronJobs) UpdateStatus(ctx context.Context, cronJob *v1.CronJob, opts metav1.UpdateOptions) (result *v1.CronJob, err error) { + result = &v1.CronJob{} + err = c.client.Put(). + Namespace(c.ns). + Resource("cronjobs"). + Name(cronJob.Name). + SubResource("status"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(cronJob). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the cronJob and deletes it. Returns an error if one occurs. +func (c *cronJobs) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("cronjobs"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *cronJobs) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("cronjobs"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched cronJob. +func (c *cronJobs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CronJob, err error) { + result = &v1.CronJob{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("cronjobs"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// Apply takes the given apply declarative configuration, applies it and returns the applied cronJob. +func (c *cronJobs) Apply(ctx context.Context, cronJob *batchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CronJob, err error) { + if cronJob == nil { + return nil, fmt.Errorf("cronJob provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(cronJob) + if err != nil { + return nil, err + } + name := cronJob.Name + if name == nil { + return nil, fmt.Errorf("cronJob.Name must be provided to Apply") + } + result = &v1.CronJob{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("cronjobs"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *cronJobs) ApplyStatus(ctx context.Context, cronJob *batchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CronJob, err error) { + if cronJob == nil { + return nil, fmt.Errorf("cronJob provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(cronJob) + if err != nil { + return nil, err + } + + name := cronJob.Name + if name == nil { + return nil, fmt.Errorf("cronJob.Name must be provided to Apply") + } + + result = &v1.CronJob{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("cronjobs"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_batch_client.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_batch_client.go index c90dd75616..43d5b0d309 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_batch_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_batch_client.go @@ -28,6 +28,10 @@ type FakeBatchV1 struct { *testing.Fake } +func (c *FakeBatchV1) CronJobs(namespace string) v1.CronJobInterface { + return &FakeCronJobs{c, namespace} +} + func (c *FakeBatchV1) Jobs(namespace string) v1.JobInterface { return &FakeJobs{c, namespace} } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_cronjob.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_cronjob.go new file mode 100644 index 0000000000..05441e4cf8 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_cronjob.go @@ -0,0 +1,190 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + "context" + json "encoding/json" + "fmt" + + batchv1 "k8s.io/api/batch/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsbatchv1 "k8s.io/client-go/applyconfigurations/batch/v1" + testing "k8s.io/client-go/testing" +) + +// FakeCronJobs implements CronJobInterface +type FakeCronJobs struct { + Fake *FakeBatchV1 + ns string +} + +var cronjobsResource = schema.GroupVersionResource{Group: "batch", Version: "v1", Resource: "cronjobs"} + +var cronjobsKind = schema.GroupVersionKind{Group: "batch", Version: "v1", Kind: "CronJob"} + +// Get takes name of the cronJob, and returns the corresponding cronJob object, and an error if there is any. +func (c *FakeCronJobs) Get(ctx context.Context, name string, options v1.GetOptions) (result *batchv1.CronJob, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(cronjobsResource, c.ns, name), &batchv1.CronJob{}) + + if obj == nil { + return nil, err + } + return obj.(*batchv1.CronJob), err +} + +// List takes label and field selectors, and returns the list of CronJobs that match those selectors. +func (c *FakeCronJobs) List(ctx context.Context, opts v1.ListOptions) (result *batchv1.CronJobList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(cronjobsResource, cronjobsKind, c.ns, opts), &batchv1.CronJobList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &batchv1.CronJobList{ListMeta: obj.(*batchv1.CronJobList).ListMeta} + for _, item := range obj.(*batchv1.CronJobList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested cronJobs. +func (c *FakeCronJobs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(cronjobsResource, c.ns, opts)) + +} + +// Create takes the representation of a cronJob and creates it. Returns the server's representation of the cronJob, and an error, if there is any. +func (c *FakeCronJobs) Create(ctx context.Context, cronJob *batchv1.CronJob, opts v1.CreateOptions) (result *batchv1.CronJob, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(cronjobsResource, c.ns, cronJob), &batchv1.CronJob{}) + + if obj == nil { + return nil, err + } + return obj.(*batchv1.CronJob), err +} + +// Update takes the representation of a cronJob and updates it. Returns the server's representation of the cronJob, and an error, if there is any. +func (c *FakeCronJobs) Update(ctx context.Context, cronJob *batchv1.CronJob, opts v1.UpdateOptions) (result *batchv1.CronJob, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(cronjobsResource, c.ns, cronJob), &batchv1.CronJob{}) + + if obj == nil { + return nil, err + } + return obj.(*batchv1.CronJob), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeCronJobs) UpdateStatus(ctx context.Context, cronJob *batchv1.CronJob, opts v1.UpdateOptions) (*batchv1.CronJob, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(cronjobsResource, "status", c.ns, cronJob), &batchv1.CronJob{}) + + if obj == nil { + return nil, err + } + return obj.(*batchv1.CronJob), err +} + +// Delete takes name of the cronJob and deletes it. Returns an error if one occurs. +func (c *FakeCronJobs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(cronjobsResource, c.ns, name), &batchv1.CronJob{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeCronJobs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(cronjobsResource, c.ns, listOpts) + + _, err := c.Fake.Invokes(action, &batchv1.CronJobList{}) + return err +} + +// Patch applies the patch and returns the patched cronJob. +func (c *FakeCronJobs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *batchv1.CronJob, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, name, pt, data, subresources...), &batchv1.CronJob{}) + + if obj == nil { + return nil, err + } + return obj.(*batchv1.CronJob), err +} + +// Apply takes the given apply declarative configuration, applies it and returns the applied cronJob. +func (c *FakeCronJobs) Apply(ctx context.Context, cronJob *applyconfigurationsbatchv1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *batchv1.CronJob, err error) { + if cronJob == nil { + return nil, fmt.Errorf("cronJob provided to Apply must not be nil") + } + data, err := json.Marshal(cronJob) + if err != nil { + return nil, err + } + name := cronJob.Name + if name == nil { + return nil, fmt.Errorf("cronJob.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, *name, types.ApplyPatchType, data), &batchv1.CronJob{}) + + if obj == nil { + return nil, err + } + return obj.(*batchv1.CronJob), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeCronJobs) ApplyStatus(ctx context.Context, cronJob *applyconfigurationsbatchv1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *batchv1.CronJob, err error) { + if cronJob == nil { + return nil, fmt.Errorf("cronJob provided to Apply must not be nil") + } + data, err := json.Marshal(cronJob) + if err != nil { + return nil, err + } + name := cronJob.Name + if name == nil { + return nil, fmt.Errorf("cronJob.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &batchv1.CronJob{}) + + if obj == nil { + return nil, err + } + return obj.(*batchv1.CronJob), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_job.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_job.go index 45c0ad1ee7..8da3bb13c8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_job.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_job.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" batchv1 "k8s.io/api/batch/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsbatchv1 "k8s.io/client-go/applyconfigurations/batch/v1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeJobs) Patch(ctx context.Context, name string, pt types.PatchType, d } return obj.(*batchv1.Job), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied job. +func (c *FakeJobs) Apply(ctx context.Context, job *applyconfigurationsbatchv1.JobApplyConfiguration, opts v1.ApplyOptions) (result *batchv1.Job, err error) { + if job == nil { + return nil, fmt.Errorf("job provided to Apply must not be nil") + } + data, err := json.Marshal(job) + if err != nil { + return nil, err + } + name := job.Name + if name == nil { + return nil, fmt.Errorf("job.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(jobsResource, c.ns, *name, types.ApplyPatchType, data), &batchv1.Job{}) + + if obj == nil { + return nil, err + } + return obj.(*batchv1.Job), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeJobs) ApplyStatus(ctx context.Context, job *applyconfigurationsbatchv1.JobApplyConfiguration, opts v1.ApplyOptions) (result *batchv1.Job, err error) { + if job == nil { + return nil, fmt.Errorf("job provided to Apply must not be nil") + } + data, err := json.Marshal(job) + if err != nil { + return nil, err + } + name := job.Name + if name == nil { + return nil, fmt.Errorf("job.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(jobsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &batchv1.Job{}) + + if obj == nil { + return nil, err + } + return obj.(*batchv1.Job), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/generated_expansion.go index dc4142934e..cd74884be7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/generated_expansion.go @@ -18,4 +18,6 @@ limitations under the License. package v1 +type CronJobExpansion interface{} + type JobExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/job.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/job.go index a20c8e0e4e..c076c80af2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/job.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/job.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/batch/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + batchv1 "k8s.io/client-go/applyconfigurations/batch/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type JobInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.JobList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Job, err error) + Apply(ctx context.Context, job *batchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Job, err error) + ApplyStatus(ctx context.Context, job *batchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Job, err error) JobExpansion } @@ -193,3 +198,59 @@ func (c *jobs) Patch(ctx context.Context, name string, pt types.PatchType, data Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied job. +func (c *jobs) Apply(ctx context.Context, job *batchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Job, err error) { + if job == nil { + return nil, fmt.Errorf("job provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(job) + if err != nil { + return nil, err + } + name := job.Name + if name == nil { + return nil, fmt.Errorf("job.Name must be provided to Apply") + } + result = &v1.Job{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("jobs"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *jobs) ApplyStatus(ctx context.Context, job *batchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Job, err error) { + if job == nil { + return nil, fmt.Errorf("job provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(job) + if err != nil { + return nil, err + } + + name := job.Name + if name == nil { + return nil, fmt.Errorf("job.Name must be provided to Apply") + } + + result = &v1.Job{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("jobs"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/cronjob.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/cronjob.go index 076520296b..d687339ae9 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/cronjob.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/cronjob.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/batch/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + batchv1beta1 "k8s.io/client-go/applyconfigurations/batch/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type CronJobInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.CronJobList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CronJob, err error) + Apply(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error) + ApplyStatus(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error) CronJobExpansion } @@ -193,3 +198,59 @@ func (c *cronJobs) Patch(ctx context.Context, name string, pt types.PatchType, d Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cronJob. +func (c *cronJobs) Apply(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error) { + if cronJob == nil { + return nil, fmt.Errorf("cronJob provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(cronJob) + if err != nil { + return nil, err + } + name := cronJob.Name + if name == nil { + return nil, fmt.Errorf("cronJob.Name must be provided to Apply") + } + result = &v1beta1.CronJob{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("cronjobs"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *cronJobs) ApplyStatus(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error) { + if cronJob == nil { + return nil, fmt.Errorf("cronJob provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(cronJob) + if err != nil { + return nil, err + } + + name := cronJob.Name + if name == nil { + return nil, fmt.Errorf("cronJob.Name must be provided to Apply") + } + + result = &v1beta1.CronJob{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("cronjobs"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_cronjob.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_cronjob.go index 303b7506a1..959b5cfe5a 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_cronjob.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_cronjob.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/batch/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + batchv1beta1 "k8s.io/client-go/applyconfigurations/batch/v1beta1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeCronJobs) Patch(ctx context.Context, name string, pt types.PatchTyp } return obj.(*v1beta1.CronJob), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cronJob. +func (c *FakeCronJobs) Apply(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error) { + if cronJob == nil { + return nil, fmt.Errorf("cronJob provided to Apply must not be nil") + } + data, err := json.Marshal(cronJob) + if err != nil { + return nil, err + } + name := cronJob.Name + if name == nil { + return nil, fmt.Errorf("cronJob.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.CronJob{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.CronJob), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeCronJobs) ApplyStatus(ctx context.Context, cronJob *batchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CronJob, err error) { + if cronJob == nil { + return nil, fmt.Errorf("cronJob provided to Apply must not be nil") + } + data, err := json.Marshal(cronJob) + if err != nil { + return nil, err + } + name := cronJob.Name + if name == nil { + return nil, fmt.Errorf("cronJob.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta1.CronJob{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.CronJob), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/batch_client.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/batch_client.go deleted file mode 100644 index d45c19d521..0000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/batch_client.go +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v2alpha1 - -import ( - v2alpha1 "k8s.io/api/batch/v2alpha1" - "k8s.io/client-go/kubernetes/scheme" - rest "k8s.io/client-go/rest" -) - -type BatchV2alpha1Interface interface { - RESTClient() rest.Interface - CronJobsGetter -} - -// BatchV2alpha1Client is used to interact with features provided by the batch group. -type BatchV2alpha1Client struct { - restClient rest.Interface -} - -func (c *BatchV2alpha1Client) CronJobs(namespace string) CronJobInterface { - return newCronJobs(c, namespace) -} - -// NewForConfig creates a new BatchV2alpha1Client for the given config. -func NewForConfig(c *rest.Config) (*BatchV2alpha1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &BatchV2alpha1Client{client}, nil -} - -// NewForConfigOrDie creates a new BatchV2alpha1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *BatchV2alpha1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new BatchV2alpha1Client for the given RESTClient. -func New(c rest.Interface) *BatchV2alpha1Client { - return &BatchV2alpha1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v2alpha1.SchemeGroupVersion - config.GroupVersion = &gv - config.APIPath = "/apis" - config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() - - if config.UserAgent == "" { - config.UserAgent = rest.DefaultKubernetesUserAgent() - } - - return nil -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *BatchV2alpha1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/cronjob.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/cronjob.go deleted file mode 100644 index a25054f244..0000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/cronjob.go +++ /dev/null @@ -1,195 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v2alpha1 - -import ( - "context" - "time" - - v2alpha1 "k8s.io/api/batch/v2alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - scheme "k8s.io/client-go/kubernetes/scheme" - rest "k8s.io/client-go/rest" -) - -// CronJobsGetter has a method to return a CronJobInterface. -// A group's client should implement this interface. -type CronJobsGetter interface { - CronJobs(namespace string) CronJobInterface -} - -// CronJobInterface has methods to work with CronJob resources. -type CronJobInterface interface { - Create(ctx context.Context, cronJob *v2alpha1.CronJob, opts v1.CreateOptions) (*v2alpha1.CronJob, error) - Update(ctx context.Context, cronJob *v2alpha1.CronJob, opts v1.UpdateOptions) (*v2alpha1.CronJob, error) - UpdateStatus(ctx context.Context, cronJob *v2alpha1.CronJob, opts v1.UpdateOptions) (*v2alpha1.CronJob, error) - Delete(ctx context.Context, name string, opts v1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error - Get(ctx context.Context, name string, opts v1.GetOptions) (*v2alpha1.CronJob, error) - List(ctx context.Context, opts v1.ListOptions) (*v2alpha1.CronJobList, error) - Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2alpha1.CronJob, err error) - CronJobExpansion -} - -// cronJobs implements CronJobInterface -type cronJobs struct { - client rest.Interface - ns string -} - -// newCronJobs returns a CronJobs -func newCronJobs(c *BatchV2alpha1Client, namespace string) *cronJobs { - return &cronJobs{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the cronJob, and returns the corresponding cronJob object, and an error if there is any. -func (c *cronJobs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2alpha1.CronJob, err error) { - result = &v2alpha1.CronJob{} - err = c.client.Get(). - Namespace(c.ns). - Resource("cronjobs"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of CronJobs that match those selectors. -func (c *cronJobs) List(ctx context.Context, opts v1.ListOptions) (result *v2alpha1.CronJobList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v2alpha1.CronJobList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("cronjobs"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested cronJobs. -func (c *cronJobs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("cronjobs"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a cronJob and creates it. Returns the server's representation of the cronJob, and an error, if there is any. -func (c *cronJobs) Create(ctx context.Context, cronJob *v2alpha1.CronJob, opts v1.CreateOptions) (result *v2alpha1.CronJob, err error) { - result = &v2alpha1.CronJob{} - err = c.client.Post(). - Namespace(c.ns). - Resource("cronjobs"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(cronJob). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a cronJob and updates it. Returns the server's representation of the cronJob, and an error, if there is any. -func (c *cronJobs) Update(ctx context.Context, cronJob *v2alpha1.CronJob, opts v1.UpdateOptions) (result *v2alpha1.CronJob, err error) { - result = &v2alpha1.CronJob{} - err = c.client.Put(). - Namespace(c.ns). - Resource("cronjobs"). - Name(cronJob.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(cronJob). - Do(ctx). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *cronJobs) UpdateStatus(ctx context.Context, cronJob *v2alpha1.CronJob, opts v1.UpdateOptions) (result *v2alpha1.CronJob, err error) { - result = &v2alpha1.CronJob{} - err = c.client.Put(). - Namespace(c.ns). - Resource("cronjobs"). - Name(cronJob.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(cronJob). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the cronJob and deletes it. Returns an error if one occurs. -func (c *cronJobs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("cronjobs"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *cronJobs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("cronjobs"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched cronJob. -func (c *cronJobs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2alpha1.CronJob, err error) { - result = &v2alpha1.CronJob{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("cronjobs"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/doc.go deleted file mode 100644 index 3efe0d2844..0000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v2alpha1 diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_batch_client.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_batch_client.go deleted file mode 100644 index 3e478cde9d..0000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_batch_client.go +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - v2alpha1 "k8s.io/client-go/kubernetes/typed/batch/v2alpha1" - rest "k8s.io/client-go/rest" - testing "k8s.io/client-go/testing" -) - -type FakeBatchV2alpha1 struct { - *testing.Fake -} - -func (c *FakeBatchV2alpha1) CronJobs(namespace string) v2alpha1.CronJobInterface { - return &FakeCronJobs{c, namespace} -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *FakeBatchV2alpha1) RESTClient() rest.Interface { - var ret *rest.RESTClient - return ret -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_cronjob.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_cronjob.go deleted file mode 100644 index 3cd1bc159f..0000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_cronjob.go +++ /dev/null @@ -1,142 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - v2alpha1 "k8s.io/api/batch/v2alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeCronJobs implements CronJobInterface -type FakeCronJobs struct { - Fake *FakeBatchV2alpha1 - ns string -} - -var cronjobsResource = schema.GroupVersionResource{Group: "batch", Version: "v2alpha1", Resource: "cronjobs"} - -var cronjobsKind = schema.GroupVersionKind{Group: "batch", Version: "v2alpha1", Kind: "CronJob"} - -// Get takes name of the cronJob, and returns the corresponding cronJob object, and an error if there is any. -func (c *FakeCronJobs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2alpha1.CronJob, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(cronjobsResource, c.ns, name), &v2alpha1.CronJob{}) - - if obj == nil { - return nil, err - } - return obj.(*v2alpha1.CronJob), err -} - -// List takes label and field selectors, and returns the list of CronJobs that match those selectors. -func (c *FakeCronJobs) List(ctx context.Context, opts v1.ListOptions) (result *v2alpha1.CronJobList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(cronjobsResource, cronjobsKind, c.ns, opts), &v2alpha1.CronJobList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v2alpha1.CronJobList{ListMeta: obj.(*v2alpha1.CronJobList).ListMeta} - for _, item := range obj.(*v2alpha1.CronJobList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested cronJobs. -func (c *FakeCronJobs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(cronjobsResource, c.ns, opts)) - -} - -// Create takes the representation of a cronJob and creates it. Returns the server's representation of the cronJob, and an error, if there is any. -func (c *FakeCronJobs) Create(ctx context.Context, cronJob *v2alpha1.CronJob, opts v1.CreateOptions) (result *v2alpha1.CronJob, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(cronjobsResource, c.ns, cronJob), &v2alpha1.CronJob{}) - - if obj == nil { - return nil, err - } - return obj.(*v2alpha1.CronJob), err -} - -// Update takes the representation of a cronJob and updates it. Returns the server's representation of the cronJob, and an error, if there is any. -func (c *FakeCronJobs) Update(ctx context.Context, cronJob *v2alpha1.CronJob, opts v1.UpdateOptions) (result *v2alpha1.CronJob, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(cronjobsResource, c.ns, cronJob), &v2alpha1.CronJob{}) - - if obj == nil { - return nil, err - } - return obj.(*v2alpha1.CronJob), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeCronJobs) UpdateStatus(ctx context.Context, cronJob *v2alpha1.CronJob, opts v1.UpdateOptions) (*v2alpha1.CronJob, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(cronjobsResource, "status", c.ns, cronJob), &v2alpha1.CronJob{}) - - if obj == nil { - return nil, err - } - return obj.(*v2alpha1.CronJob), err -} - -// Delete takes name of the cronJob and deletes it. Returns an error if one occurs. -func (c *FakeCronJobs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(cronjobsResource, c.ns, name), &v2alpha1.CronJob{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeCronJobs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(cronjobsResource, c.ns, listOpts) - - _, err := c.Fake.Invokes(action, &v2alpha1.CronJobList{}) - return err -} - -// Patch applies the patch and returns the patched cronJob. -func (c *FakeCronJobs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2alpha1.CronJob, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, name, pt, data, subresources...), &v2alpha1.CronJob{}) - - if obj == nil { - return nil, err - } - return obj.(*v2alpha1.CronJob), err -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/generated_expansion.go deleted file mode 100644 index 34dafc464a..0000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/generated_expansion.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v2alpha1 - -type CronJobExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/certificatesigningrequest.go b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/certificatesigningrequest.go index 28f74b2729..0d6b68b296 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/certificatesigningrequest.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/certificatesigningrequest.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/certificates/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + certificatesv1 "k8s.io/client-go/applyconfigurations/certificates/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type CertificateSigningRequestInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.CertificateSigningRequestList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CertificateSigningRequest, err error) + Apply(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CertificateSigningRequest, err error) + ApplyStatus(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CertificateSigningRequest, err error) UpdateApproval(ctx context.Context, certificateSigningRequestName string, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (*v1.CertificateSigningRequest, error) CertificateSigningRequestExpansion @@ -185,6 +190,60 @@ func (c *certificateSigningRequests) Patch(ctx context.Context, name string, pt return } +// Apply takes the given apply declarative configuration, applies it and returns the applied certificateSigningRequest. +func (c *certificateSigningRequests) Apply(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CertificateSigningRequest, err error) { + if certificateSigningRequest == nil { + return nil, fmt.Errorf("certificateSigningRequest provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(certificateSigningRequest) + if err != nil { + return nil, err + } + name := certificateSigningRequest.Name + if name == nil { + return nil, fmt.Errorf("certificateSigningRequest.Name must be provided to Apply") + } + result = &v1.CertificateSigningRequest{} + err = c.client.Patch(types.ApplyPatchType). + Resource("certificatesigningrequests"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *certificateSigningRequests) ApplyStatus(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CertificateSigningRequest, err error) { + if certificateSigningRequest == nil { + return nil, fmt.Errorf("certificateSigningRequest provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(certificateSigningRequest) + if err != nil { + return nil, err + } + + name := certificateSigningRequest.Name + if name == nil { + return nil, fmt.Errorf("certificateSigningRequest.Name must be provided to Apply") + } + + result = &v1.CertificateSigningRequest{} + err = c.client.Patch(types.ApplyPatchType). + Resource("certificatesigningrequests"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + // UpdateApproval takes the top resource name and the representation of a certificateSigningRequest and updates it. Returns the server's representation of the certificateSigningRequest, and an error, if there is any. func (c *certificateSigningRequests) UpdateApproval(ctx context.Context, certificateSigningRequestName string, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (result *v1.CertificateSigningRequest, err error) { result = &v1.CertificateSigningRequest{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/fake/fake_certificatesigningrequest.go b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/fake/fake_certificatesigningrequest.go index 1e5d9c2eff..acb9e579ec 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/fake/fake_certificatesigningrequest.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/fake/fake_certificatesigningrequest.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" certificatesv1 "k8s.io/api/certificates/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscertificatesv1 "k8s.io/client-go/applyconfigurations/certificates/v1" testing "k8s.io/client-go/testing" ) @@ -132,6 +135,49 @@ func (c *FakeCertificateSigningRequests) Patch(ctx context.Context, name string, return obj.(*certificatesv1.CertificateSigningRequest), err } +// Apply takes the given apply declarative configuration, applies it and returns the applied certificateSigningRequest. +func (c *FakeCertificateSigningRequests) Apply(ctx context.Context, certificateSigningRequest *applyconfigurationscertificatesv1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *certificatesv1.CertificateSigningRequest, err error) { + if certificateSigningRequest == nil { + return nil, fmt.Errorf("certificateSigningRequest provided to Apply must not be nil") + } + data, err := json.Marshal(certificateSigningRequest) + if err != nil { + return nil, err + } + name := certificateSigningRequest.Name + if name == nil { + return nil, fmt.Errorf("certificateSigningRequest.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, *name, types.ApplyPatchType, data), &certificatesv1.CertificateSigningRequest{}) + if obj == nil { + return nil, err + } + return obj.(*certificatesv1.CertificateSigningRequest), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeCertificateSigningRequests) ApplyStatus(ctx context.Context, certificateSigningRequest *applyconfigurationscertificatesv1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *certificatesv1.CertificateSigningRequest, err error) { + if certificateSigningRequest == nil { + return nil, fmt.Errorf("certificateSigningRequest provided to Apply must not be nil") + } + data, err := json.Marshal(certificateSigningRequest) + if err != nil { + return nil, err + } + name := certificateSigningRequest.Name + if name == nil { + return nil, fmt.Errorf("certificateSigningRequest.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, *name, types.ApplyPatchType, data, "status"), &certificatesv1.CertificateSigningRequest{}) + if obj == nil { + return nil, err + } + return obj.(*certificatesv1.CertificateSigningRequest), err +} + // UpdateApproval takes the representation of a certificateSigningRequest and updates it. Returns the server's representation of the certificateSigningRequest, and an error, if there is any. func (c *FakeCertificateSigningRequests) UpdateApproval(ctx context.Context, certificateSigningRequestName string, certificateSigningRequest *certificatesv1.CertificateSigningRequest, opts v1.UpdateOptions) (result *certificatesv1.CertificateSigningRequest, err error) { obj, err := c.Fake. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest.go b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest.go index 6b2623b8ae..ec0b9d266f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/certificates/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + certificatesv1beta1 "k8s.io/client-go/applyconfigurations/certificates/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type CertificateSigningRequestInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.CertificateSigningRequestList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CertificateSigningRequest, err error) + Apply(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error) + ApplyStatus(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error) CertificateSigningRequestExpansion } @@ -182,3 +187,57 @@ func (c *certificateSigningRequests) Patch(ctx context.Context, name string, pt Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied certificateSigningRequest. +func (c *certificateSigningRequests) Apply(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error) { + if certificateSigningRequest == nil { + return nil, fmt.Errorf("certificateSigningRequest provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(certificateSigningRequest) + if err != nil { + return nil, err + } + name := certificateSigningRequest.Name + if name == nil { + return nil, fmt.Errorf("certificateSigningRequest.Name must be provided to Apply") + } + result = &v1beta1.CertificateSigningRequest{} + err = c.client.Patch(types.ApplyPatchType). + Resource("certificatesigningrequests"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *certificateSigningRequests) ApplyStatus(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error) { + if certificateSigningRequest == nil { + return nil, fmt.Errorf("certificateSigningRequest provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(certificateSigningRequest) + if err != nil { + return nil, err + } + + name := certificateSigningRequest.Name + if name == nil { + return nil, fmt.Errorf("certificateSigningRequest.Name must be provided to Apply") + } + + result = &v1beta1.CertificateSigningRequest{} + err = c.client.Patch(types.ApplyPatchType). + Resource("certificatesigningrequests"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest.go b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest.go index 9c1bd38473..68a1627d6e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/certificates/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + certificatesv1beta1 "k8s.io/client-go/applyconfigurations/certificates/v1beta1" testing "k8s.io/client-go/testing" ) @@ -131,3 +134,46 @@ func (c *FakeCertificateSigningRequests) Patch(ctx context.Context, name string, } return obj.(*v1beta1.CertificateSigningRequest), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied certificateSigningRequest. +func (c *FakeCertificateSigningRequests) Apply(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error) { + if certificateSigningRequest == nil { + return nil, fmt.Errorf("certificateSigningRequest provided to Apply must not be nil") + } + data, err := json.Marshal(certificateSigningRequest) + if err != nil { + return nil, err + } + name := certificateSigningRequest.Name + if name == nil { + return nil, fmt.Errorf("certificateSigningRequest.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, *name, types.ApplyPatchType, data), &v1beta1.CertificateSigningRequest{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.CertificateSigningRequest), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeCertificateSigningRequests) ApplyStatus(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CertificateSigningRequest, err error) { + if certificateSigningRequest == nil { + return nil, fmt.Errorf("certificateSigningRequest provided to Apply must not be nil") + } + data, err := json.Marshal(certificateSigningRequest) + if err != nil { + return nil, err + } + name := certificateSigningRequest.Name + if name == nil { + return nil, fmt.Errorf("certificateSigningRequest.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, *name, types.ApplyPatchType, data, "status"), &v1beta1.CertificateSigningRequest{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.CertificateSigningRequest), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/fake/fake_lease.go b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/fake/fake_lease.go index 1c979de00f..a27f4765e1 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/fake/fake_lease.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/fake/fake_lease.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" coordinationv1 "k8s.io/api/coordination/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscoordinationv1 "k8s.io/client-go/applyconfigurations/coordination/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeLeases) Patch(ctx context.Context, name string, pt types.PatchType, } return obj.(*coordinationv1.Lease), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied lease. +func (c *FakeLeases) Apply(ctx context.Context, lease *applyconfigurationscoordinationv1.LeaseApplyConfiguration, opts v1.ApplyOptions) (result *coordinationv1.Lease, err error) { + if lease == nil { + return nil, fmt.Errorf("lease provided to Apply must not be nil") + } + data, err := json.Marshal(lease) + if err != nil { + return nil, err + } + name := lease.Name + if name == nil { + return nil, fmt.Errorf("lease.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(leasesResource, c.ns, *name, types.ApplyPatchType, data), &coordinationv1.Lease{}) + + if obj == nil { + return nil, err + } + return obj.(*coordinationv1.Lease), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/lease.go b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/lease.go index 4e8cbf9d61..9e6b169a81 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/lease.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/lease.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/coordination/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + coordinationv1 "k8s.io/client-go/applyconfigurations/coordination/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type LeaseInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.LeaseList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Lease, err error) + Apply(ctx context.Context, lease *coordinationv1.LeaseApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Lease, err error) LeaseExpansion } @@ -176,3 +180,29 @@ func (c *leases) Patch(ctx context.Context, name string, pt types.PatchType, dat Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied lease. +func (c *leases) Apply(ctx context.Context, lease *coordinationv1.LeaseApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Lease, err error) { + if lease == nil { + return nil, fmt.Errorf("lease provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(lease) + if err != nil { + return nil, err + } + name := lease.Name + if name == nil { + return nil, fmt.Errorf("lease.Name must be provided to Apply") + } + result = &v1.Lease{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("leases"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_lease.go b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_lease.go index 4ab5b2ebd4..303f765c28 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_lease.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_lease.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/coordination/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + coordinationv1beta1 "k8s.io/client-go/applyconfigurations/coordination/v1beta1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeLeases) Patch(ctx context.Context, name string, pt types.PatchType, } return obj.(*v1beta1.Lease), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied lease. +func (c *FakeLeases) Apply(ctx context.Context, lease *coordinationv1beta1.LeaseApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Lease, err error) { + if lease == nil { + return nil, fmt.Errorf("lease provided to Apply must not be nil") + } + data, err := json.Marshal(lease) + if err != nil { + return nil, err + } + name := lease.Name + if name == nil { + return nil, fmt.Errorf("lease.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(leasesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Lease{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Lease), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/lease.go b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/lease.go index c73cb0a97d..1bbd57bdd1 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/lease.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/lease.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/coordination/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + coordinationv1beta1 "k8s.io/client-go/applyconfigurations/coordination/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type LeaseInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.LeaseList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Lease, err error) + Apply(ctx context.Context, lease *coordinationv1beta1.LeaseApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Lease, err error) LeaseExpansion } @@ -176,3 +180,29 @@ func (c *leases) Patch(ctx context.Context, name string, pt types.PatchType, dat Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied lease. +func (c *leases) Apply(ctx context.Context, lease *coordinationv1beta1.LeaseApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Lease, err error) { + if lease == nil { + return nil, fmt.Errorf("lease provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(lease) + if err != nil { + return nil, err + } + name := lease.Name + if name == nil { + return nil, fmt.Errorf("lease.Name must be provided to Apply") + } + result = &v1beta1.Lease{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("leases"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/componentstatus.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/componentstatus.go index faf5d19cc1..0fef56429d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/componentstatus.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/componentstatus.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ComponentStatusInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.ComponentStatusList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ComponentStatus, err error) + Apply(ctx context.Context, componentStatus *corev1.ComponentStatusApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ComponentStatus, err error) ComponentStatusExpansion } @@ -166,3 +170,28 @@ func (c *componentStatuses) Patch(ctx context.Context, name string, pt types.Pat Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied componentStatus. +func (c *componentStatuses) Apply(ctx context.Context, componentStatus *corev1.ComponentStatusApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ComponentStatus, err error) { + if componentStatus == nil { + return nil, fmt.Errorf("componentStatus provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(componentStatus) + if err != nil { + return nil, err + } + name := componentStatus.Name + if name == nil { + return nil, fmt.Errorf("componentStatus.Name must be provided to Apply") + } + result = &v1.ComponentStatus{} + err = c.client.Patch(types.ApplyPatchType). + Resource("componentstatuses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/configmap.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/configmap.go index 407d25a462..b68177720b 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/configmap.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/configmap.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ConfigMapInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.ConfigMapList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ConfigMap, err error) + Apply(ctx context.Context, configMap *corev1.ConfigMapApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ConfigMap, err error) ConfigMapExpansion } @@ -176,3 +180,29 @@ func (c *configMaps) Patch(ctx context.Context, name string, pt types.PatchType, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied configMap. +func (c *configMaps) Apply(ctx context.Context, configMap *corev1.ConfigMapApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ConfigMap, err error) { + if configMap == nil { + return nil, fmt.Errorf("configMap provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(configMap) + if err != nil { + return nil, err + } + name := configMap.Name + if name == nil { + return nil, fmt.Errorf("configMap.Name must be provided to Apply") + } + result = &v1.ConfigMap{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("configmaps"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/endpoints.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/endpoints.go index c36eaaa4ab..cdf464b069 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/endpoints.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/endpoints.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type EndpointsInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.EndpointsList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Endpoints, err error) + Apply(ctx context.Context, endpoints *corev1.EndpointsApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Endpoints, err error) EndpointsExpansion } @@ -176,3 +180,29 @@ func (c *endpoints) Patch(ctx context.Context, name string, pt types.PatchType, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied endpoints. +func (c *endpoints) Apply(ctx context.Context, endpoints *corev1.EndpointsApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Endpoints, err error) { + if endpoints == nil { + return nil, fmt.Errorf("endpoints provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(endpoints) + if err != nil { + return nil, err + } + name := endpoints.Name + if name == nil { + return nil, fmt.Errorf("endpoints.Name must be provided to Apply") + } + result = &v1.Endpoints{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("endpoints"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/event.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/event.go index 9b669920f1..8274d85ffe 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/event.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/event.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type EventInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.EventList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Event, err error) + Apply(ctx context.Context, event *corev1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Event, err error) EventExpansion } @@ -176,3 +180,29 @@ func (c *events) Patch(ctx context.Context, name string, pt types.PatchType, dat Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied event. +func (c *events) Apply(ctx context.Context, event *corev1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Event, err error) { + if event == nil { + return nil, fmt.Errorf("event provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(event) + if err != nil { + return nil, err + } + name := event.Name + if name == nil { + return nil, fmt.Errorf("event.Name must be provided to Apply") + } + result = &v1.Event{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("events"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_componentstatus.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_componentstatus.go index 08ff515df1..a80fb38dce 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_componentstatus.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_componentstatus.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeComponentStatuses) Patch(ctx context.Context, name string, pt types } return obj.(*corev1.ComponentStatus), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied componentStatus. +func (c *FakeComponentStatuses) Apply(ctx context.Context, componentStatus *applyconfigurationscorev1.ComponentStatusApplyConfiguration, opts v1.ApplyOptions) (result *corev1.ComponentStatus, err error) { + if componentStatus == nil { + return nil, fmt.Errorf("componentStatus provided to Apply must not be nil") + } + data, err := json.Marshal(componentStatus) + if err != nil { + return nil, err + } + name := componentStatus.Name + if name == nil { + return nil, fmt.Errorf("componentStatus.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(componentstatusesResource, *name, types.ApplyPatchType, data), &corev1.ComponentStatus{}) + if obj == nil { + return nil, err + } + return obj.(*corev1.ComponentStatus), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_configmap.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_configmap.go index 6c541ec7d3..ba0058d611 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_configmap.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_configmap.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeConfigMaps) Patch(ctx context.Context, name string, pt types.PatchT } return obj.(*corev1.ConfigMap), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied configMap. +func (c *FakeConfigMaps) Apply(ctx context.Context, configMap *applyconfigurationscorev1.ConfigMapApplyConfiguration, opts v1.ApplyOptions) (result *corev1.ConfigMap, err error) { + if configMap == nil { + return nil, fmt.Errorf("configMap provided to Apply must not be nil") + } + data, err := json.Marshal(configMap) + if err != nil { + return nil, err + } + name := configMap.Name + if name == nil { + return nil, fmt.Errorf("configMap.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(configmapsResource, c.ns, *name, types.ApplyPatchType, data), &corev1.ConfigMap{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.ConfigMap), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_endpoints.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_endpoints.go index 02c03223aa..c9484ad243 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_endpoints.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_endpoints.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeEndpoints) Patch(ctx context.Context, name string, pt types.PatchTy } return obj.(*corev1.Endpoints), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied endpoints. +func (c *FakeEndpoints) Apply(ctx context.Context, endpoints *applyconfigurationscorev1.EndpointsApplyConfiguration, opts v1.ApplyOptions) (result *corev1.Endpoints, err error) { + if endpoints == nil { + return nil, fmt.Errorf("endpoints provided to Apply must not be nil") + } + data, err := json.Marshal(endpoints) + if err != nil { + return nil, err + } + name := endpoints.Name + if name == nil { + return nil, fmt.Errorf("endpoints.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(endpointsResource, c.ns, *name, types.ApplyPatchType, data), &corev1.Endpoints{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.Endpoints), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event.go index 2e4787dc7f..71e34a948a 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeEvents) Patch(ctx context.Context, name string, pt types.PatchType, } return obj.(*corev1.Event), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied event. +func (c *FakeEvents) Apply(ctx context.Context, event *applyconfigurationscorev1.EventApplyConfiguration, opts v1.ApplyOptions) (result *corev1.Event, err error) { + if event == nil { + return nil, fmt.Errorf("event provided to Apply must not be nil") + } + data, err := json.Marshal(event) + if err != nil { + return nil, err + } + name := event.Name + if name == nil { + return nil, fmt.Errorf("event.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, *name, types.ApplyPatchType, data), &corev1.Event{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.Event), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_limitrange.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_limitrange.go index eb0bde8e59..8c6c11ca12 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_limitrange.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_limitrange.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeLimitRanges) Patch(ctx context.Context, name string, pt types.Patch } return obj.(*corev1.LimitRange), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied limitRange. +func (c *FakeLimitRanges) Apply(ctx context.Context, limitRange *applyconfigurationscorev1.LimitRangeApplyConfiguration, opts v1.ApplyOptions) (result *corev1.LimitRange, err error) { + if limitRange == nil { + return nil, fmt.Errorf("limitRange provided to Apply must not be nil") + } + data, err := json.Marshal(limitRange) + if err != nil { + return nil, err + } + name := limitRange.Name + if name == nil { + return nil, fmt.Errorf("limitRange.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(limitrangesResource, c.ns, *name, types.ApplyPatchType, data), &corev1.LimitRange{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.LimitRange), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace.go index efb9375803..6b56afecb1 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -123,3 +126,46 @@ func (c *FakeNamespaces) Patch(ctx context.Context, name string, pt types.PatchT } return obj.(*corev1.Namespace), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied namespace. +func (c *FakeNamespaces) Apply(ctx context.Context, namespace *applyconfigurationscorev1.NamespaceApplyConfiguration, opts v1.ApplyOptions) (result *corev1.Namespace, err error) { + if namespace == nil { + return nil, fmt.Errorf("namespace provided to Apply must not be nil") + } + data, err := json.Marshal(namespace) + if err != nil { + return nil, err + } + name := namespace.Name + if name == nil { + return nil, fmt.Errorf("namespace.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(namespacesResource, *name, types.ApplyPatchType, data), &corev1.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*corev1.Namespace), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeNamespaces) ApplyStatus(ctx context.Context, namespace *applyconfigurationscorev1.NamespaceApplyConfiguration, opts v1.ApplyOptions) (result *corev1.Namespace, err error) { + if namespace == nil { + return nil, fmt.Errorf("namespace provided to Apply must not be nil") + } + data, err := json.Marshal(namespace) + if err != nil { + return nil, err + } + name := namespace.Name + if name == nil { + return nil, fmt.Errorf("namespace.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(namespacesResource, *name, types.ApplyPatchType, data, "status"), &corev1.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*corev1.Namespace), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node.go index 47c3a21686..7a4071ab07 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -131,3 +134,46 @@ func (c *FakeNodes) Patch(ctx context.Context, name string, pt types.PatchType, } return obj.(*corev1.Node), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied node. +func (c *FakeNodes) Apply(ctx context.Context, node *applyconfigurationscorev1.NodeApplyConfiguration, opts v1.ApplyOptions) (result *corev1.Node, err error) { + if node == nil { + return nil, fmt.Errorf("node provided to Apply must not be nil") + } + data, err := json.Marshal(node) + if err != nil { + return nil, err + } + name := node.Name + if name == nil { + return nil, fmt.Errorf("node.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(nodesResource, *name, types.ApplyPatchType, data), &corev1.Node{}) + if obj == nil { + return nil, err + } + return obj.(*corev1.Node), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeNodes) ApplyStatus(ctx context.Context, node *applyconfigurationscorev1.NodeApplyConfiguration, opts v1.ApplyOptions) (result *corev1.Node, err error) { + if node == nil { + return nil, fmt.Errorf("node provided to Apply must not be nil") + } + data, err := json.Marshal(node) + if err != nil { + return nil, err + } + name := node.Name + if name == nil { + return nil, fmt.Errorf("node.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(nodesResource, *name, types.ApplyPatchType, data, "status"), &corev1.Node{}) + if obj == nil { + return nil, err + } + return obj.(*corev1.Node), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolume.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolume.go index 94e093073d..b2b5b954fb 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolume.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolume.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -131,3 +134,46 @@ func (c *FakePersistentVolumes) Patch(ctx context.Context, name string, pt types } return obj.(*corev1.PersistentVolume), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied persistentVolume. +func (c *FakePersistentVolumes) Apply(ctx context.Context, persistentVolume *applyconfigurationscorev1.PersistentVolumeApplyConfiguration, opts v1.ApplyOptions) (result *corev1.PersistentVolume, err error) { + if persistentVolume == nil { + return nil, fmt.Errorf("persistentVolume provided to Apply must not be nil") + } + data, err := json.Marshal(persistentVolume) + if err != nil { + return nil, err + } + name := persistentVolume.Name + if name == nil { + return nil, fmt.Errorf("persistentVolume.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(persistentvolumesResource, *name, types.ApplyPatchType, data), &corev1.PersistentVolume{}) + if obj == nil { + return nil, err + } + return obj.(*corev1.PersistentVolume), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakePersistentVolumes) ApplyStatus(ctx context.Context, persistentVolume *applyconfigurationscorev1.PersistentVolumeApplyConfiguration, opts v1.ApplyOptions) (result *corev1.PersistentVolume, err error) { + if persistentVolume == nil { + return nil, fmt.Errorf("persistentVolume provided to Apply must not be nil") + } + data, err := json.Marshal(persistentVolume) + if err != nil { + return nil, err + } + name := persistentVolume.Name + if name == nil { + return nil, fmt.Errorf("persistentVolume.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(persistentvolumesResource, *name, types.ApplyPatchType, data, "status"), &corev1.PersistentVolume{}) + if obj == nil { + return nil, err + } + return obj.(*corev1.PersistentVolume), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolumeclaim.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolumeclaim.go index 7b9a38da0e..952d4decb3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolumeclaim.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolumeclaim.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakePersistentVolumeClaims) Patch(ctx context.Context, name string, pt } return obj.(*corev1.PersistentVolumeClaim), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied persistentVolumeClaim. +func (c *FakePersistentVolumeClaims) Apply(ctx context.Context, persistentVolumeClaim *applyconfigurationscorev1.PersistentVolumeClaimApplyConfiguration, opts v1.ApplyOptions) (result *corev1.PersistentVolumeClaim, err error) { + if persistentVolumeClaim == nil { + return nil, fmt.Errorf("persistentVolumeClaim provided to Apply must not be nil") + } + data, err := json.Marshal(persistentVolumeClaim) + if err != nil { + return nil, err + } + name := persistentVolumeClaim.Name + if name == nil { + return nil, fmt.Errorf("persistentVolumeClaim.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(persistentvolumeclaimsResource, c.ns, *name, types.ApplyPatchType, data), &corev1.PersistentVolumeClaim{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.PersistentVolumeClaim), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakePersistentVolumeClaims) ApplyStatus(ctx context.Context, persistentVolumeClaim *applyconfigurationscorev1.PersistentVolumeClaimApplyConfiguration, opts v1.ApplyOptions) (result *corev1.PersistentVolumeClaim, err error) { + if persistentVolumeClaim == nil { + return nil, fmt.Errorf("persistentVolumeClaim provided to Apply must not be nil") + } + data, err := json.Marshal(persistentVolumeClaim) + if err != nil { + return nil, err + } + name := persistentVolumeClaim.Name + if name == nil { + return nil, fmt.Errorf("persistentVolumeClaim.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(persistentvolumeclaimsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &corev1.PersistentVolumeClaim{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.PersistentVolumeClaim), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod.go index b2f1b15315..601cc82d48 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -141,6 +144,51 @@ func (c *FakePods) Patch(ctx context.Context, name string, pt types.PatchType, d return obj.(*corev1.Pod), err } +// Apply takes the given apply declarative configuration, applies it and returns the applied pod. +func (c *FakePods) Apply(ctx context.Context, pod *applyconfigurationscorev1.PodApplyConfiguration, opts v1.ApplyOptions) (result *corev1.Pod, err error) { + if pod == nil { + return nil, fmt.Errorf("pod provided to Apply must not be nil") + } + data, err := json.Marshal(pod) + if err != nil { + return nil, err + } + name := pod.Name + if name == nil { + return nil, fmt.Errorf("pod.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(podsResource, c.ns, *name, types.ApplyPatchType, data), &corev1.Pod{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.Pod), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakePods) ApplyStatus(ctx context.Context, pod *applyconfigurationscorev1.PodApplyConfiguration, opts v1.ApplyOptions) (result *corev1.Pod, err error) { + if pod == nil { + return nil, fmt.Errorf("pod provided to Apply must not be nil") + } + data, err := json.Marshal(pod) + if err != nil { + return nil, err + } + name := pod.Name + if name == nil { + return nil, fmt.Errorf("pod.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(podsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &corev1.Pod{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.Pod), err +} + // GetEphemeralContainers takes name of the pod, and returns the corresponding ephemeralContainers object, and an error if there is any. func (c *FakePods) GetEphemeralContainers(ctx context.Context, podName string, options v1.GetOptions) (result *corev1.EphemeralContainers, err error) { obj, err := c.Fake. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_podtemplate.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_podtemplate.go index 579fe1c7a7..40c91611fa 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_podtemplate.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_podtemplate.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakePodTemplates) Patch(ctx context.Context, name string, pt types.Patc } return obj.(*corev1.PodTemplate), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied podTemplate. +func (c *FakePodTemplates) Apply(ctx context.Context, podTemplate *applyconfigurationscorev1.PodTemplateApplyConfiguration, opts v1.ApplyOptions) (result *corev1.PodTemplate, err error) { + if podTemplate == nil { + return nil, fmt.Errorf("podTemplate provided to Apply must not be nil") + } + data, err := json.Marshal(podTemplate) + if err != nil { + return nil, err + } + name := podTemplate.Name + if name == nil { + return nil, fmt.Errorf("podTemplate.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(podtemplatesResource, c.ns, *name, types.ApplyPatchType, data), &corev1.PodTemplate{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.PodTemplate), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_replicationcontroller.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_replicationcontroller.go index 3fa03a0763..01cfd9088f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_replicationcontroller.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_replicationcontroller.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" autoscalingv1 "k8s.io/api/autoscaling/v1" corev1 "k8s.io/api/core/v1" @@ -28,6 +30,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -142,6 +145,51 @@ func (c *FakeReplicationControllers) Patch(ctx context.Context, name string, pt return obj.(*corev1.ReplicationController), err } +// Apply takes the given apply declarative configuration, applies it and returns the applied replicationController. +func (c *FakeReplicationControllers) Apply(ctx context.Context, replicationController *applyconfigurationscorev1.ReplicationControllerApplyConfiguration, opts v1.ApplyOptions) (result *corev1.ReplicationController, err error) { + if replicationController == nil { + return nil, fmt.Errorf("replicationController provided to Apply must not be nil") + } + data, err := json.Marshal(replicationController) + if err != nil { + return nil, err + } + name := replicationController.Name + if name == nil { + return nil, fmt.Errorf("replicationController.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(replicationcontrollersResource, c.ns, *name, types.ApplyPatchType, data), &corev1.ReplicationController{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.ReplicationController), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeReplicationControllers) ApplyStatus(ctx context.Context, replicationController *applyconfigurationscorev1.ReplicationControllerApplyConfiguration, opts v1.ApplyOptions) (result *corev1.ReplicationController, err error) { + if replicationController == nil { + return nil, fmt.Errorf("replicationController provided to Apply must not be nil") + } + data, err := json.Marshal(replicationController) + if err != nil { + return nil, err + } + name := replicationController.Name + if name == nil { + return nil, fmt.Errorf("replicationController.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(replicationcontrollersResource, c.ns, *name, types.ApplyPatchType, data, "status"), &corev1.ReplicationController{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.ReplicationController), err +} + // GetScale takes name of the replicationController, and returns the corresponding scale object, and an error if there is any. func (c *FakeReplicationControllers) GetScale(ctx context.Context, replicationControllerName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) { obj, err := c.Fake. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_resourcequota.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_resourcequota.go index f70de30849..c8af473f71 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_resourcequota.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_resourcequota.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeResourceQuotas) Patch(ctx context.Context, name string, pt types.Pa } return obj.(*corev1.ResourceQuota), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied resourceQuota. +func (c *FakeResourceQuotas) Apply(ctx context.Context, resourceQuota *applyconfigurationscorev1.ResourceQuotaApplyConfiguration, opts v1.ApplyOptions) (result *corev1.ResourceQuota, err error) { + if resourceQuota == nil { + return nil, fmt.Errorf("resourceQuota provided to Apply must not be nil") + } + data, err := json.Marshal(resourceQuota) + if err != nil { + return nil, err + } + name := resourceQuota.Name + if name == nil { + return nil, fmt.Errorf("resourceQuota.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(resourcequotasResource, c.ns, *name, types.ApplyPatchType, data), &corev1.ResourceQuota{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.ResourceQuota), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeResourceQuotas) ApplyStatus(ctx context.Context, resourceQuota *applyconfigurationscorev1.ResourceQuotaApplyConfiguration, opts v1.ApplyOptions) (result *corev1.ResourceQuota, err error) { + if resourceQuota == nil { + return nil, fmt.Errorf("resourceQuota provided to Apply must not be nil") + } + data, err := json.Marshal(resourceQuota) + if err != nil { + return nil, err + } + name := resourceQuota.Name + if name == nil { + return nil, fmt.Errorf("resourceQuota.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(resourcequotasResource, c.ns, *name, types.ApplyPatchType, data, "status"), &corev1.ResourceQuota{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.ResourceQuota), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_secret.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_secret.go index a92329cfaa..b20c5edf49 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_secret.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_secret.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeSecrets) Patch(ctx context.Context, name string, pt types.PatchType } return obj.(*corev1.Secret), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied secret. +func (c *FakeSecrets) Apply(ctx context.Context, secret *applyconfigurationscorev1.SecretApplyConfiguration, opts v1.ApplyOptions) (result *corev1.Secret, err error) { + if secret == nil { + return nil, fmt.Errorf("secret provided to Apply must not be nil") + } + data, err := json.Marshal(secret) + if err != nil { + return nil, err + } + name := secret.Name + if name == nil { + return nil, fmt.Errorf("secret.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(secretsResource, c.ns, *name, types.ApplyPatchType, data), &corev1.Secret{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.Secret), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service.go index e5391ffb38..1da10581ea 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -132,3 +135,48 @@ func (c *FakeServices) Patch(ctx context.Context, name string, pt types.PatchTyp } return obj.(*corev1.Service), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied service. +func (c *FakeServices) Apply(ctx context.Context, service *applyconfigurationscorev1.ServiceApplyConfiguration, opts v1.ApplyOptions) (result *corev1.Service, err error) { + if service == nil { + return nil, fmt.Errorf("service provided to Apply must not be nil") + } + data, err := json.Marshal(service) + if err != nil { + return nil, err + } + name := service.Name + if name == nil { + return nil, fmt.Errorf("service.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(servicesResource, c.ns, *name, types.ApplyPatchType, data), &corev1.Service{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.Service), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeServices) ApplyStatus(ctx context.Context, service *applyconfigurationscorev1.ServiceApplyConfiguration, opts v1.ApplyOptions) (result *corev1.Service, err error) { + if service == nil { + return nil, fmt.Errorf("service provided to Apply must not be nil") + } + data, err := json.Marshal(service) + if err != nil { + return nil, err + } + name := service.Name + if name == nil { + return nil, fmt.Errorf("service.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(servicesResource, c.ns, *name, types.ApplyPatchType, data, "status"), &corev1.Service{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.Service), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_serviceaccount.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_serviceaccount.go index df344b5893..487c6f0f07 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_serviceaccount.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_serviceaccount.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" authenticationv1 "k8s.io/api/authentication/v1" corev1 "k8s.io/api/core/v1" @@ -28,6 +30,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" testing "k8s.io/client-go/testing" ) @@ -130,6 +133,28 @@ func (c *FakeServiceAccounts) Patch(ctx context.Context, name string, pt types.P return obj.(*corev1.ServiceAccount), err } +// Apply takes the given apply declarative configuration, applies it and returns the applied serviceAccount. +func (c *FakeServiceAccounts) Apply(ctx context.Context, serviceAccount *applyconfigurationscorev1.ServiceAccountApplyConfiguration, opts v1.ApplyOptions) (result *corev1.ServiceAccount, err error) { + if serviceAccount == nil { + return nil, fmt.Errorf("serviceAccount provided to Apply must not be nil") + } + data, err := json.Marshal(serviceAccount) + if err != nil { + return nil, err + } + name := serviceAccount.Name + if name == nil { + return nil, fmt.Errorf("serviceAccount.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(serviceaccountsResource, c.ns, *name, types.ApplyPatchType, data), &corev1.ServiceAccount{}) + + if obj == nil { + return nil, err + } + return obj.(*corev1.ServiceAccount), err +} + // CreateToken takes the representation of a tokenRequest and creates it. Returns the server's representation of the tokenRequest, and an error, if there is any. func (c *FakeServiceAccounts) CreateToken(ctx context.Context, serviceAccountName string, tokenRequest *authenticationv1.TokenRequest, opts v1.CreateOptions) (result *authenticationv1.TokenRequest, err error) { obj, err := c.Fake. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/limitrange.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/limitrange.go index 7031cd77ed..e6883b607c 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/limitrange.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/limitrange.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type LimitRangeInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.LimitRangeList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.LimitRange, err error) + Apply(ctx context.Context, limitRange *corev1.LimitRangeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.LimitRange, err error) LimitRangeExpansion } @@ -176,3 +180,29 @@ func (c *limitRanges) Patch(ctx context.Context, name string, pt types.PatchType Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied limitRange. +func (c *limitRanges) Apply(ctx context.Context, limitRange *corev1.LimitRangeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.LimitRange, err error) { + if limitRange == nil { + return nil, fmt.Errorf("limitRange provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(limitRange) + if err != nil { + return nil, err + } + name := limitRange.Name + if name == nil { + return nil, fmt.Errorf("limitRange.Name must be provided to Apply") + } + result = &v1.LimitRange{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("limitranges"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace.go index 55b03d65b2..06c77b4c45 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,8 @@ type NamespaceInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.NamespaceList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Namespace, err error) + Apply(ctx context.Context, namespace *corev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Namespace, err error) + ApplyStatus(ctx context.Context, namespace *corev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Namespace, err error) NamespaceExpansion } @@ -166,3 +171,57 @@ func (c *namespaces) Patch(ctx context.Context, name string, pt types.PatchType, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied namespace. +func (c *namespaces) Apply(ctx context.Context, namespace *corev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Namespace, err error) { + if namespace == nil { + return nil, fmt.Errorf("namespace provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(namespace) + if err != nil { + return nil, err + } + name := namespace.Name + if name == nil { + return nil, fmt.Errorf("namespace.Name must be provided to Apply") + } + result = &v1.Namespace{} + err = c.client.Patch(types.ApplyPatchType). + Resource("namespaces"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *namespaces) ApplyStatus(ctx context.Context, namespace *corev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Namespace, err error) { + if namespace == nil { + return nil, fmt.Errorf("namespace provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(namespace) + if err != nil { + return nil, err + } + + name := namespace.Name + if name == nil { + return nil, fmt.Errorf("namespace.Name must be provided to Apply") + } + + result = &v1.Namespace{} + err = c.client.Patch(types.ApplyPatchType). + Resource("namespaces"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/node.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/node.go index 6176808f42..d9725b2f95 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/node.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/node.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type NodeInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.NodeList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Node, err error) + Apply(ctx context.Context, node *corev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Node, err error) + ApplyStatus(ctx context.Context, node *corev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Node, err error) NodeExpansion } @@ -182,3 +187,57 @@ func (c *nodes) Patch(ctx context.Context, name string, pt types.PatchType, data Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied node. +func (c *nodes) Apply(ctx context.Context, node *corev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Node, err error) { + if node == nil { + return nil, fmt.Errorf("node provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(node) + if err != nil { + return nil, err + } + name := node.Name + if name == nil { + return nil, fmt.Errorf("node.Name must be provided to Apply") + } + result = &v1.Node{} + err = c.client.Patch(types.ApplyPatchType). + Resource("nodes"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *nodes) ApplyStatus(ctx context.Context, node *corev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Node, err error) { + if node == nil { + return nil, fmt.Errorf("node provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(node) + if err != nil { + return nil, err + } + + name := node.Name + if name == nil { + return nil, fmt.Errorf("node.Name must be provided to Apply") + } + + result = &v1.Node{} + err = c.client.Patch(types.ApplyPatchType). + Resource("nodes"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolume.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolume.go index 1eb9db635a..a8e2295977 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolume.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolume.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type PersistentVolumeInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.PersistentVolumeList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PersistentVolume, err error) + Apply(ctx context.Context, persistentVolume *corev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolume, err error) + ApplyStatus(ctx context.Context, persistentVolume *corev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolume, err error) PersistentVolumeExpansion } @@ -182,3 +187,57 @@ func (c *persistentVolumes) Patch(ctx context.Context, name string, pt types.Pat Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied persistentVolume. +func (c *persistentVolumes) Apply(ctx context.Context, persistentVolume *corev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolume, err error) { + if persistentVolume == nil { + return nil, fmt.Errorf("persistentVolume provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(persistentVolume) + if err != nil { + return nil, err + } + name := persistentVolume.Name + if name == nil { + return nil, fmt.Errorf("persistentVolume.Name must be provided to Apply") + } + result = &v1.PersistentVolume{} + err = c.client.Patch(types.ApplyPatchType). + Resource("persistentvolumes"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *persistentVolumes) ApplyStatus(ctx context.Context, persistentVolume *corev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolume, err error) { + if persistentVolume == nil { + return nil, fmt.Errorf("persistentVolume provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(persistentVolume) + if err != nil { + return nil, err + } + + name := persistentVolume.Name + if name == nil { + return nil, fmt.Errorf("persistentVolume.Name must be provided to Apply") + } + + result = &v1.PersistentVolume{} + err = c.client.Patch(types.ApplyPatchType). + Resource("persistentvolumes"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolumeclaim.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolumeclaim.go index f4e205f4e8..2e7f4fb44f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolumeclaim.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolumeclaim.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type PersistentVolumeClaimInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.PersistentVolumeClaimList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PersistentVolumeClaim, err error) + Apply(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolumeClaim, err error) + ApplyStatus(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolumeClaim, err error) PersistentVolumeClaimExpansion } @@ -193,3 +198,59 @@ func (c *persistentVolumeClaims) Patch(ctx context.Context, name string, pt type Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied persistentVolumeClaim. +func (c *persistentVolumeClaims) Apply(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolumeClaim, err error) { + if persistentVolumeClaim == nil { + return nil, fmt.Errorf("persistentVolumeClaim provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(persistentVolumeClaim) + if err != nil { + return nil, err + } + name := persistentVolumeClaim.Name + if name == nil { + return nil, fmt.Errorf("persistentVolumeClaim.Name must be provided to Apply") + } + result = &v1.PersistentVolumeClaim{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("persistentvolumeclaims"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *persistentVolumeClaims) ApplyStatus(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PersistentVolumeClaim, err error) { + if persistentVolumeClaim == nil { + return nil, fmt.Errorf("persistentVolumeClaim provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(persistentVolumeClaim) + if err != nil { + return nil, err + } + + name := persistentVolumeClaim.Name + if name == nil { + return nil, fmt.Errorf("persistentVolumeClaim.Name must be provided to Apply") + } + + result = &v1.PersistentVolumeClaim{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("persistentvolumeclaims"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod.go index 36092ab640..14b7bd0f04 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type PodInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.PodList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Pod, err error) + Apply(ctx context.Context, pod *corev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Pod, err error) + ApplyStatus(ctx context.Context, pod *corev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Pod, err error) GetEphemeralContainers(ctx context.Context, podName string, options metav1.GetOptions) (*v1.EphemeralContainers, error) UpdateEphemeralContainers(ctx context.Context, podName string, ephemeralContainers *v1.EphemeralContainers, opts metav1.UpdateOptions) (*v1.EphemeralContainers, error) @@ -197,6 +202,62 @@ func (c *pods) Patch(ctx context.Context, name string, pt types.PatchType, data return } +// Apply takes the given apply declarative configuration, applies it and returns the applied pod. +func (c *pods) Apply(ctx context.Context, pod *corev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Pod, err error) { + if pod == nil { + return nil, fmt.Errorf("pod provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(pod) + if err != nil { + return nil, err + } + name := pod.Name + if name == nil { + return nil, fmt.Errorf("pod.Name must be provided to Apply") + } + result = &v1.Pod{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("pods"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *pods) ApplyStatus(ctx context.Context, pod *corev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Pod, err error) { + if pod == nil { + return nil, fmt.Errorf("pod provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(pod) + if err != nil { + return nil, err + } + + name := pod.Name + if name == nil { + return nil, fmt.Errorf("pod.Name must be provided to Apply") + } + + result = &v1.Pod{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("pods"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + // GetEphemeralContainers takes name of the pod, and returns the corresponding v1.EphemeralContainers object, and an error if there is any. func (c *pods) GetEphemeralContainers(ctx context.Context, podName string, options metav1.GetOptions) (result *v1.EphemeralContainers, err error) { result = &v1.EphemeralContainers{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/podtemplate.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/podtemplate.go index 012d3b52c4..ff90fc0e62 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/podtemplate.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/podtemplate.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type PodTemplateInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.PodTemplateList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PodTemplate, err error) + Apply(ctx context.Context, podTemplate *corev1.PodTemplateApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodTemplate, err error) PodTemplateExpansion } @@ -176,3 +180,29 @@ func (c *podTemplates) Patch(ctx context.Context, name string, pt types.PatchTyp Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied podTemplate. +func (c *podTemplates) Apply(ctx context.Context, podTemplate *corev1.PodTemplateApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodTemplate, err error) { + if podTemplate == nil { + return nil, fmt.Errorf("podTemplate provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(podTemplate) + if err != nil { + return nil, err + } + name := podTemplate.Name + if name == nil { + return nil, fmt.Errorf("podTemplate.Name must be provided to Apply") + } + result = &v1.PodTemplate{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("podtemplates"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/replicationcontroller.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/replicationcontroller.go index 8e9ccd59de..49c75d967b 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/replicationcontroller.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/replicationcontroller.go @@ -20,6 +20,8 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" autoscalingv1 "k8s.io/api/autoscaling/v1" @@ -27,6 +29,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -48,6 +51,8 @@ type ReplicationControllerInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.ReplicationControllerList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ReplicationController, err error) + Apply(ctx context.Context, replicationController *corev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicationController, err error) + ApplyStatus(ctx context.Context, replicationController *corev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicationController, err error) GetScale(ctx context.Context, replicationControllerName string, options metav1.GetOptions) (*autoscalingv1.Scale, error) UpdateScale(ctx context.Context, replicationControllerName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error) @@ -198,6 +203,62 @@ func (c *replicationControllers) Patch(ctx context.Context, name string, pt type return } +// Apply takes the given apply declarative configuration, applies it and returns the applied replicationController. +func (c *replicationControllers) Apply(ctx context.Context, replicationController *corev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicationController, err error) { + if replicationController == nil { + return nil, fmt.Errorf("replicationController provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(replicationController) + if err != nil { + return nil, err + } + name := replicationController.Name + if name == nil { + return nil, fmt.Errorf("replicationController.Name must be provided to Apply") + } + result = &v1.ReplicationController{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("replicationcontrollers"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *replicationControllers) ApplyStatus(ctx context.Context, replicationController *corev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ReplicationController, err error) { + if replicationController == nil { + return nil, fmt.Errorf("replicationController provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(replicationController) + if err != nil { + return nil, err + } + + name := replicationController.Name + if name == nil { + return nil, fmt.Errorf("replicationController.Name must be provided to Apply") + } + + result = &v1.ReplicationController{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("replicationcontrollers"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + // GetScale takes name of the replicationController, and returns the corresponding autoscalingv1.Scale object, and an error if there is any. func (c *replicationControllers) GetScale(ctx context.Context, replicationControllerName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) { result = &autoscalingv1.Scale{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/resourcequota.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/resourcequota.go index 6a41e35fdb..8444d164ed 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/resourcequota.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/resourcequota.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type ResourceQuotaInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.ResourceQuotaList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ResourceQuota, err error) + Apply(ctx context.Context, resourceQuota *corev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ResourceQuota, err error) + ApplyStatus(ctx context.Context, resourceQuota *corev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ResourceQuota, err error) ResourceQuotaExpansion } @@ -193,3 +198,59 @@ func (c *resourceQuotas) Patch(ctx context.Context, name string, pt types.PatchT Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied resourceQuota. +func (c *resourceQuotas) Apply(ctx context.Context, resourceQuota *corev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ResourceQuota, err error) { + if resourceQuota == nil { + return nil, fmt.Errorf("resourceQuota provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(resourceQuota) + if err != nil { + return nil, err + } + name := resourceQuota.Name + if name == nil { + return nil, fmt.Errorf("resourceQuota.Name must be provided to Apply") + } + result = &v1.ResourceQuota{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("resourcequotas"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *resourceQuotas) ApplyStatus(ctx context.Context, resourceQuota *corev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ResourceQuota, err error) { + if resourceQuota == nil { + return nil, fmt.Errorf("resourceQuota provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(resourceQuota) + if err != nil { + return nil, err + } + + name := resourceQuota.Name + if name == nil { + return nil, fmt.Errorf("resourceQuota.Name must be provided to Apply") + } + + result = &v1.ResourceQuota{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("resourcequotas"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/secret.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/secret.go index b2bd80baa5..4aba330381 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/secret.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/secret.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type SecretInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.SecretList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Secret, err error) + Apply(ctx context.Context, secret *corev1.SecretApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Secret, err error) SecretExpansion } @@ -176,3 +180,29 @@ func (c *secrets) Patch(ctx context.Context, name string, pt types.PatchType, da Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied secret. +func (c *secrets) Apply(ctx context.Context, secret *corev1.SecretApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Secret, err error) { + if secret == nil { + return nil, fmt.Errorf("secret provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(secret) + if err != nil { + return nil, err + } + name := secret.Name + if name == nil { + return nil, fmt.Errorf("secret.Name must be provided to Apply") + } + result = &v1.Secret{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("secrets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/service.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/service.go index ddde2ec6c7..3fe22ba444 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/service.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/service.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,8 @@ type ServiceInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.ServiceList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Service, err error) + Apply(ctx context.Context, service *corev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Service, err error) + ApplyStatus(ctx context.Context, service *corev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Service, err error) ServiceExpansion } @@ -176,3 +181,59 @@ func (c *services) Patch(ctx context.Context, name string, pt types.PatchType, d Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied service. +func (c *services) Apply(ctx context.Context, service *corev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Service, err error) { + if service == nil { + return nil, fmt.Errorf("service provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(service) + if err != nil { + return nil, err + } + name := service.Name + if name == nil { + return nil, fmt.Errorf("service.Name must be provided to Apply") + } + result = &v1.Service{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("services"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *services) ApplyStatus(ctx context.Context, service *corev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Service, err error) { + if service == nil { + return nil, fmt.Errorf("service provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(service) + if err != nil { + return nil, err + } + + name := service.Name + if name == nil { + return nil, fmt.Errorf("service.Name must be provided to Apply") + } + + result = &v1.Service{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("services"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount.go index c2ddfbfdb7..bdf589b960 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount.go @@ -20,6 +20,8 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" authenticationv1 "k8s.io/api/authentication/v1" @@ -27,6 +29,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + corev1 "k8s.io/client-go/applyconfigurations/core/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,7 @@ type ServiceAccountInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.ServiceAccountList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ServiceAccount, err error) + Apply(ctx context.Context, serviceAccount *corev1.ServiceAccountApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ServiceAccount, err error) CreateToken(ctx context.Context, serviceAccountName string, tokenRequest *authenticationv1.TokenRequest, opts metav1.CreateOptions) (*authenticationv1.TokenRequest, error) ServiceAccountExpansion @@ -180,6 +184,32 @@ func (c *serviceAccounts) Patch(ctx context.Context, name string, pt types.Patch return } +// Apply takes the given apply declarative configuration, applies it and returns the applied serviceAccount. +func (c *serviceAccounts) Apply(ctx context.Context, serviceAccount *corev1.ServiceAccountApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ServiceAccount, err error) { + if serviceAccount == nil { + return nil, fmt.Errorf("serviceAccount provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(serviceAccount) + if err != nil { + return nil, err + } + name := serviceAccount.Name + if name == nil { + return nil, fmt.Errorf("serviceAccount.Name must be provided to Apply") + } + result = &v1.ServiceAccount{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("serviceaccounts"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + // CreateToken takes the representation of a tokenRequest and creates it. Returns the server's representation of the tokenRequest, and an error, if there is any. func (c *serviceAccounts) CreateToken(ctx context.Context, serviceAccountName string, tokenRequest *authenticationv1.TokenRequest, opts metav1.CreateOptions) (result *authenticationv1.TokenRequest, err error) { result = &authenticationv1.TokenRequest{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/discovery_client.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/discovery_client.go new file mode 100644 index 0000000000..cb26327626 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/discovery_client.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/discovery/v1" + "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +type DiscoveryV1Interface interface { + RESTClient() rest.Interface + EndpointSlicesGetter +} + +// DiscoveryV1Client is used to interact with features provided by the discovery.k8s.io group. +type DiscoveryV1Client struct { + restClient rest.Interface +} + +func (c *DiscoveryV1Client) EndpointSlices(namespace string) EndpointSliceInterface { + return newEndpointSlices(c, namespace) +} + +// NewForConfig creates a new DiscoveryV1Client for the given config. +func NewForConfig(c *rest.Config) (*DiscoveryV1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &DiscoveryV1Client{client}, nil +} + +// NewForConfigOrDie creates a new DiscoveryV1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *DiscoveryV1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new DiscoveryV1Client for the given RESTClient. +func New(c rest.Interface) *DiscoveryV1Client { + return &DiscoveryV1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v1.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *DiscoveryV1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/doc.go new file mode 100644 index 0000000000..3af5d054f1 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// This package has the automatically generated typed clients. +package v1 diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/endpointslice.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/endpointslice.go new file mode 100644 index 0000000000..63e616b033 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/endpointslice.go @@ -0,0 +1,208 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1 + +import ( + "context" + json "encoding/json" + "fmt" + "time" + + v1 "k8s.io/api/discovery/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + discoveryv1 "k8s.io/client-go/applyconfigurations/discovery/v1" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// EndpointSlicesGetter has a method to return a EndpointSliceInterface. +// A group's client should implement this interface. +type EndpointSlicesGetter interface { + EndpointSlices(namespace string) EndpointSliceInterface +} + +// EndpointSliceInterface has methods to work with EndpointSlice resources. +type EndpointSliceInterface interface { + Create(ctx context.Context, endpointSlice *v1.EndpointSlice, opts metav1.CreateOptions) (*v1.EndpointSlice, error) + Update(ctx context.Context, endpointSlice *v1.EndpointSlice, opts metav1.UpdateOptions) (*v1.EndpointSlice, error) + Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error + Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.EndpointSlice, error) + List(ctx context.Context, opts metav1.ListOptions) (*v1.EndpointSliceList, error) + Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.EndpointSlice, err error) + Apply(ctx context.Context, endpointSlice *discoveryv1.EndpointSliceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.EndpointSlice, err error) + EndpointSliceExpansion +} + +// endpointSlices implements EndpointSliceInterface +type endpointSlices struct { + client rest.Interface + ns string +} + +// newEndpointSlices returns a EndpointSlices +func newEndpointSlices(c *DiscoveryV1Client, namespace string) *endpointSlices { + return &endpointSlices{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the endpointSlice, and returns the corresponding endpointSlice object, and an error if there is any. +func (c *endpointSlices) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.EndpointSlice, err error) { + result = &v1.EndpointSlice{} + err = c.client.Get(). + Namespace(c.ns). + Resource("endpointslices"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of EndpointSlices that match those selectors. +func (c *endpointSlices) List(ctx context.Context, opts metav1.ListOptions) (result *v1.EndpointSliceList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1.EndpointSliceList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("endpointslices"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested endpointSlices. +func (c *endpointSlices) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("endpointslices"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a endpointSlice and creates it. Returns the server's representation of the endpointSlice, and an error, if there is any. +func (c *endpointSlices) Create(ctx context.Context, endpointSlice *v1.EndpointSlice, opts metav1.CreateOptions) (result *v1.EndpointSlice, err error) { + result = &v1.EndpointSlice{} + err = c.client.Post(). + Namespace(c.ns). + Resource("endpointslices"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(endpointSlice). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a endpointSlice and updates it. Returns the server's representation of the endpointSlice, and an error, if there is any. +func (c *endpointSlices) Update(ctx context.Context, endpointSlice *v1.EndpointSlice, opts metav1.UpdateOptions) (result *v1.EndpointSlice, err error) { + result = &v1.EndpointSlice{} + err = c.client.Put(). + Namespace(c.ns). + Resource("endpointslices"). + Name(endpointSlice.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(endpointSlice). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the endpointSlice and deletes it. Returns an error if one occurs. +func (c *endpointSlices) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("endpointslices"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *endpointSlices) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("endpointslices"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched endpointSlice. +func (c *endpointSlices) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.EndpointSlice, err error) { + result = &v1.EndpointSlice{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("endpointslices"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// Apply takes the given apply declarative configuration, applies it and returns the applied endpointSlice. +func (c *endpointSlices) Apply(ctx context.Context, endpointSlice *discoveryv1.EndpointSliceApplyConfiguration, opts metav1.ApplyOptions) (result *v1.EndpointSlice, err error) { + if endpointSlice == nil { + return nil, fmt.Errorf("endpointSlice provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(endpointSlice) + if err != nil { + return nil, err + } + name := endpointSlice.Name + if name == nil { + return nil, fmt.Errorf("endpointSlice.Name must be provided to Apply") + } + result = &v1.EndpointSlice{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("endpointslices"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/doc.go similarity index 100% rename from vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/doc.go rename to vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/doc.go diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/fake/fake_discovery_client.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/fake_discovery_client.go similarity index 77% rename from vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/fake/fake_discovery_client.go rename to vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/fake_discovery_client.go index 532a10756d..1ca9b23f59 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/fake/fake_discovery_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/fake_discovery_client.go @@ -19,22 +19,22 @@ limitations under the License. package fake import ( - v1alpha1 "k8s.io/client-go/kubernetes/typed/discovery/v1alpha1" + v1 "k8s.io/client-go/kubernetes/typed/discovery/v1" rest "k8s.io/client-go/rest" testing "k8s.io/client-go/testing" ) -type FakeDiscoveryV1alpha1 struct { +type FakeDiscoveryV1 struct { *testing.Fake } -func (c *FakeDiscoveryV1alpha1) EndpointSlices(namespace string) v1alpha1.EndpointSliceInterface { +func (c *FakeDiscoveryV1) EndpointSlices(namespace string) v1.EndpointSliceInterface { return &FakeEndpointSlices{c, namespace} } // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *FakeDiscoveryV1alpha1) RESTClient() rest.Interface { +func (c *FakeDiscoveryV1) RESTClient() rest.Interface { var ret *rest.RESTClient return ret } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/fake_endpointslice.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/fake_endpointslice.go new file mode 100644 index 0000000000..9113061ff9 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/fake_endpointslice.go @@ -0,0 +1,155 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + "context" + json "encoding/json" + "fmt" + + discoveryv1 "k8s.io/api/discovery/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsdiscoveryv1 "k8s.io/client-go/applyconfigurations/discovery/v1" + testing "k8s.io/client-go/testing" +) + +// FakeEndpointSlices implements EndpointSliceInterface +type FakeEndpointSlices struct { + Fake *FakeDiscoveryV1 + ns string +} + +var endpointslicesResource = schema.GroupVersionResource{Group: "discovery.k8s.io", Version: "v1", Resource: "endpointslices"} + +var endpointslicesKind = schema.GroupVersionKind{Group: "discovery.k8s.io", Version: "v1", Kind: "EndpointSlice"} + +// Get takes name of the endpointSlice, and returns the corresponding endpointSlice object, and an error if there is any. +func (c *FakeEndpointSlices) Get(ctx context.Context, name string, options v1.GetOptions) (result *discoveryv1.EndpointSlice, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(endpointslicesResource, c.ns, name), &discoveryv1.EndpointSlice{}) + + if obj == nil { + return nil, err + } + return obj.(*discoveryv1.EndpointSlice), err +} + +// List takes label and field selectors, and returns the list of EndpointSlices that match those selectors. +func (c *FakeEndpointSlices) List(ctx context.Context, opts v1.ListOptions) (result *discoveryv1.EndpointSliceList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(endpointslicesResource, endpointslicesKind, c.ns, opts), &discoveryv1.EndpointSliceList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &discoveryv1.EndpointSliceList{ListMeta: obj.(*discoveryv1.EndpointSliceList).ListMeta} + for _, item := range obj.(*discoveryv1.EndpointSliceList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested endpointSlices. +func (c *FakeEndpointSlices) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(endpointslicesResource, c.ns, opts)) + +} + +// Create takes the representation of a endpointSlice and creates it. Returns the server's representation of the endpointSlice, and an error, if there is any. +func (c *FakeEndpointSlices) Create(ctx context.Context, endpointSlice *discoveryv1.EndpointSlice, opts v1.CreateOptions) (result *discoveryv1.EndpointSlice, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(endpointslicesResource, c.ns, endpointSlice), &discoveryv1.EndpointSlice{}) + + if obj == nil { + return nil, err + } + return obj.(*discoveryv1.EndpointSlice), err +} + +// Update takes the representation of a endpointSlice and updates it. Returns the server's representation of the endpointSlice, and an error, if there is any. +func (c *FakeEndpointSlices) Update(ctx context.Context, endpointSlice *discoveryv1.EndpointSlice, opts v1.UpdateOptions) (result *discoveryv1.EndpointSlice, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(endpointslicesResource, c.ns, endpointSlice), &discoveryv1.EndpointSlice{}) + + if obj == nil { + return nil, err + } + return obj.(*discoveryv1.EndpointSlice), err +} + +// Delete takes name of the endpointSlice and deletes it. Returns an error if one occurs. +func (c *FakeEndpointSlices) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(endpointslicesResource, c.ns, name), &discoveryv1.EndpointSlice{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeEndpointSlices) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(endpointslicesResource, c.ns, listOpts) + + _, err := c.Fake.Invokes(action, &discoveryv1.EndpointSliceList{}) + return err +} + +// Patch applies the patch and returns the patched endpointSlice. +func (c *FakeEndpointSlices) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *discoveryv1.EndpointSlice, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(endpointslicesResource, c.ns, name, pt, data, subresources...), &discoveryv1.EndpointSlice{}) + + if obj == nil { + return nil, err + } + return obj.(*discoveryv1.EndpointSlice), err +} + +// Apply takes the given apply declarative configuration, applies it and returns the applied endpointSlice. +func (c *FakeEndpointSlices) Apply(ctx context.Context, endpointSlice *applyconfigurationsdiscoveryv1.EndpointSliceApplyConfiguration, opts v1.ApplyOptions) (result *discoveryv1.EndpointSlice, err error) { + if endpointSlice == nil { + return nil, fmt.Errorf("endpointSlice provided to Apply must not be nil") + } + data, err := json.Marshal(endpointSlice) + if err != nil { + return nil, err + } + name := endpointSlice.Name + if name == nil { + return nil, fmt.Errorf("endpointSlice.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(endpointslicesResource, c.ns, *name, types.ApplyPatchType, data), &discoveryv1.EndpointSlice{}) + + if obj == nil { + return nil, err + } + return obj.(*discoveryv1.EndpointSlice), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/generated_expansion.go new file mode 100644 index 0000000000..56147f60a0 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/generated_expansion.go @@ -0,0 +1,21 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1 + +type EndpointSliceExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/discovery_client.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/discovery_client.go deleted file mode 100644 index e65a0988d8..0000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/discovery_client.go +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "k8s.io/api/discovery/v1alpha1" - "k8s.io/client-go/kubernetes/scheme" - rest "k8s.io/client-go/rest" -) - -type DiscoveryV1alpha1Interface interface { - RESTClient() rest.Interface - EndpointSlicesGetter -} - -// DiscoveryV1alpha1Client is used to interact with features provided by the discovery.k8s.io group. -type DiscoveryV1alpha1Client struct { - restClient rest.Interface -} - -func (c *DiscoveryV1alpha1Client) EndpointSlices(namespace string) EndpointSliceInterface { - return newEndpointSlices(c, namespace) -} - -// NewForConfig creates a new DiscoveryV1alpha1Client for the given config. -func NewForConfig(c *rest.Config) (*DiscoveryV1alpha1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &DiscoveryV1alpha1Client{client}, nil -} - -// NewForConfigOrDie creates a new DiscoveryV1alpha1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *DiscoveryV1alpha1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new DiscoveryV1alpha1Client for the given RESTClient. -func New(c rest.Interface) *DiscoveryV1alpha1Client { - return &DiscoveryV1alpha1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1alpha1.SchemeGroupVersion - config.GroupVersion = &gv - config.APIPath = "/apis" - config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() - - if config.UserAgent == "" { - config.UserAgent = rest.DefaultKubernetesUserAgent() - } - - return nil -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *DiscoveryV1alpha1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/doc.go deleted file mode 100644 index df51baa4d4..0000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1alpha1 diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/endpointslice.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/endpointslice.go deleted file mode 100644 index 63b4627d33..0000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/endpointslice.go +++ /dev/null @@ -1,178 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "context" - "time" - - v1alpha1 "k8s.io/api/discovery/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - scheme "k8s.io/client-go/kubernetes/scheme" - rest "k8s.io/client-go/rest" -) - -// EndpointSlicesGetter has a method to return a EndpointSliceInterface. -// A group's client should implement this interface. -type EndpointSlicesGetter interface { - EndpointSlices(namespace string) EndpointSliceInterface -} - -// EndpointSliceInterface has methods to work with EndpointSlice resources. -type EndpointSliceInterface interface { - Create(ctx context.Context, endpointSlice *v1alpha1.EndpointSlice, opts v1.CreateOptions) (*v1alpha1.EndpointSlice, error) - Update(ctx context.Context, endpointSlice *v1alpha1.EndpointSlice, opts v1.UpdateOptions) (*v1alpha1.EndpointSlice, error) - Delete(ctx context.Context, name string, opts v1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error - Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.EndpointSlice, error) - List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.EndpointSliceList, error) - Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.EndpointSlice, err error) - EndpointSliceExpansion -} - -// endpointSlices implements EndpointSliceInterface -type endpointSlices struct { - client rest.Interface - ns string -} - -// newEndpointSlices returns a EndpointSlices -func newEndpointSlices(c *DiscoveryV1alpha1Client, namespace string) *endpointSlices { - return &endpointSlices{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the endpointSlice, and returns the corresponding endpointSlice object, and an error if there is any. -func (c *endpointSlices) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.EndpointSlice, err error) { - result = &v1alpha1.EndpointSlice{} - err = c.client.Get(). - Namespace(c.ns). - Resource("endpointslices"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of EndpointSlices that match those selectors. -func (c *endpointSlices) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.EndpointSliceList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1alpha1.EndpointSliceList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("endpointslices"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested endpointSlices. -func (c *endpointSlices) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("endpointslices"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a endpointSlice and creates it. Returns the server's representation of the endpointSlice, and an error, if there is any. -func (c *endpointSlices) Create(ctx context.Context, endpointSlice *v1alpha1.EndpointSlice, opts v1.CreateOptions) (result *v1alpha1.EndpointSlice, err error) { - result = &v1alpha1.EndpointSlice{} - err = c.client.Post(). - Namespace(c.ns). - Resource("endpointslices"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(endpointSlice). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a endpointSlice and updates it. Returns the server's representation of the endpointSlice, and an error, if there is any. -func (c *endpointSlices) Update(ctx context.Context, endpointSlice *v1alpha1.EndpointSlice, opts v1.UpdateOptions) (result *v1alpha1.EndpointSlice, err error) { - result = &v1alpha1.EndpointSlice{} - err = c.client.Put(). - Namespace(c.ns). - Resource("endpointslices"). - Name(endpointSlice.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(endpointSlice). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the endpointSlice and deletes it. Returns an error if one occurs. -func (c *endpointSlices) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("endpointslices"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *endpointSlices) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("endpointslices"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched endpointSlice. -func (c *endpointSlices) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.EndpointSlice, err error) { - result = &v1alpha1.EndpointSlice{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("endpointslices"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/fake/fake_endpointslice.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/fake/fake_endpointslice.go deleted file mode 100644 index f180340ab6..0000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/fake/fake_endpointslice.go +++ /dev/null @@ -1,130 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - v1alpha1 "k8s.io/api/discovery/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeEndpointSlices implements EndpointSliceInterface -type FakeEndpointSlices struct { - Fake *FakeDiscoveryV1alpha1 - ns string -} - -var endpointslicesResource = schema.GroupVersionResource{Group: "discovery.k8s.io", Version: "v1alpha1", Resource: "endpointslices"} - -var endpointslicesKind = schema.GroupVersionKind{Group: "discovery.k8s.io", Version: "v1alpha1", Kind: "EndpointSlice"} - -// Get takes name of the endpointSlice, and returns the corresponding endpointSlice object, and an error if there is any. -func (c *FakeEndpointSlices) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.EndpointSlice, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(endpointslicesResource, c.ns, name), &v1alpha1.EndpointSlice{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.EndpointSlice), err -} - -// List takes label and field selectors, and returns the list of EndpointSlices that match those selectors. -func (c *FakeEndpointSlices) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.EndpointSliceList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(endpointslicesResource, endpointslicesKind, c.ns, opts), &v1alpha1.EndpointSliceList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1alpha1.EndpointSliceList{ListMeta: obj.(*v1alpha1.EndpointSliceList).ListMeta} - for _, item := range obj.(*v1alpha1.EndpointSliceList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested endpointSlices. -func (c *FakeEndpointSlices) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(endpointslicesResource, c.ns, opts)) - -} - -// Create takes the representation of a endpointSlice and creates it. Returns the server's representation of the endpointSlice, and an error, if there is any. -func (c *FakeEndpointSlices) Create(ctx context.Context, endpointSlice *v1alpha1.EndpointSlice, opts v1.CreateOptions) (result *v1alpha1.EndpointSlice, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(endpointslicesResource, c.ns, endpointSlice), &v1alpha1.EndpointSlice{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.EndpointSlice), err -} - -// Update takes the representation of a endpointSlice and updates it. Returns the server's representation of the endpointSlice, and an error, if there is any. -func (c *FakeEndpointSlices) Update(ctx context.Context, endpointSlice *v1alpha1.EndpointSlice, opts v1.UpdateOptions) (result *v1alpha1.EndpointSlice, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(endpointslicesResource, c.ns, endpointSlice), &v1alpha1.EndpointSlice{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.EndpointSlice), err -} - -// Delete takes name of the endpointSlice and deletes it. Returns an error if one occurs. -func (c *FakeEndpointSlices) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(endpointslicesResource, c.ns, name), &v1alpha1.EndpointSlice{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeEndpointSlices) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(endpointslicesResource, c.ns, listOpts) - - _, err := c.Fake.Invokes(action, &v1alpha1.EndpointSliceList{}) - return err -} - -// Patch applies the patch and returns the patched endpointSlice. -func (c *FakeEndpointSlices) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.EndpointSlice, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(endpointslicesResource, c.ns, name, pt, data, subresources...), &v1alpha1.EndpointSlice{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.EndpointSlice), err -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/generated_expansion.go deleted file mode 100644 index e8ceb59a48..0000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/generated_expansion.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -type EndpointSliceExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/endpointslice.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/endpointslice.go index a016663e73..2ade833029 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/endpointslice.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/endpointslice.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/discovery/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + discoveryv1beta1 "k8s.io/client-go/applyconfigurations/discovery/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type EndpointSliceInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.EndpointSliceList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.EndpointSlice, err error) + Apply(ctx context.Context, endpointSlice *discoveryv1beta1.EndpointSliceApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.EndpointSlice, err error) EndpointSliceExpansion } @@ -176,3 +180,29 @@ func (c *endpointSlices) Patch(ctx context.Context, name string, pt types.PatchT Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied endpointSlice. +func (c *endpointSlices) Apply(ctx context.Context, endpointSlice *discoveryv1beta1.EndpointSliceApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.EndpointSlice, err error) { + if endpointSlice == nil { + return nil, fmt.Errorf("endpointSlice provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(endpointSlice) + if err != nil { + return nil, err + } + name := endpointSlice.Name + if name == nil { + return nil, fmt.Errorf("endpointSlice.Name must be provided to Apply") + } + result = &v1beta1.EndpointSlice{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("endpointslices"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake/fake_endpointslice.go b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake/fake_endpointslice.go index f338d1bd64..2019fdb440 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake/fake_endpointslice.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake/fake_endpointslice.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/discovery/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + discoveryv1beta1 "k8s.io/client-go/applyconfigurations/discovery/v1beta1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeEndpointSlices) Patch(ctx context.Context, name string, pt types.Pa } return obj.(*v1beta1.EndpointSlice), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied endpointSlice. +func (c *FakeEndpointSlices) Apply(ctx context.Context, endpointSlice *discoveryv1beta1.EndpointSliceApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.EndpointSlice, err error) { + if endpointSlice == nil { + return nil, fmt.Errorf("endpointSlice provided to Apply must not be nil") + } + data, err := json.Marshal(endpointSlice) + if err != nil { + return nil, err + } + name := endpointSlice.Name + if name == nil { + return nil, fmt.Errorf("endpointSlice.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(endpointslicesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.EndpointSlice{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.EndpointSlice), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1/event.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1/event.go index 3b3496317f..c9f2bbed50 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1/event.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1/event.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/events/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + eventsv1 "k8s.io/client-go/applyconfigurations/events/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type EventInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.EventList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Event, err error) + Apply(ctx context.Context, event *eventsv1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Event, err error) EventExpansion } @@ -176,3 +180,29 @@ func (c *events) Patch(ctx context.Context, name string, pt types.PatchType, dat Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied event. +func (c *events) Apply(ctx context.Context, event *eventsv1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Event, err error) { + if event == nil { + return nil, fmt.Errorf("event provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(event) + if err != nil { + return nil, err + } + name := event.Name + if name == nil { + return nil, fmt.Errorf("event.Name must be provided to Apply") + } + result = &v1.Event{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("events"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1/fake/fake_event.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1/fake/fake_event.go index 73c3b4e02e..3e7065d313 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1/fake/fake_event.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1/fake/fake_event.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" eventsv1 "k8s.io/api/events/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationseventsv1 "k8s.io/client-go/applyconfigurations/events/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeEvents) Patch(ctx context.Context, name string, pt types.PatchType, } return obj.(*eventsv1.Event), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied event. +func (c *FakeEvents) Apply(ctx context.Context, event *applyconfigurationseventsv1.EventApplyConfiguration, opts v1.ApplyOptions) (result *eventsv1.Event, err error) { + if event == nil { + return nil, fmt.Errorf("event provided to Apply must not be nil") + } + data, err := json.Marshal(event) + if err != nil { + return nil, err + } + name := event.Name + if name == nil { + return nil, fmt.Errorf("event.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, *name, types.ApplyPatchType, data), &eventsv1.Event{}) + + if obj == nil { + return nil, err + } + return obj.(*eventsv1.Event), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go index 4cdc471fb0..dfdf8b8979 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/events/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + eventsv1beta1 "k8s.io/client-go/applyconfigurations/events/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type EventInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.EventList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Event, err error) + Apply(ctx context.Context, event *eventsv1beta1.EventApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Event, err error) EventExpansion } @@ -176,3 +180,29 @@ func (c *events) Patch(ctx context.Context, name string, pt types.PatchType, dat Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied event. +func (c *events) Apply(ctx context.Context, event *eventsv1beta1.EventApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Event, err error) { + if event == nil { + return nil, fmt.Errorf("event provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(event) + if err != nil { + return nil, err + } + name := event.Name + if name == nil { + return nil, fmt.Errorf("event.Name must be provided to Apply") + } + result = &v1beta1.Event{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("events"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event.go index dcf488f7c1..a8e0a023d8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/events/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + eventsv1beta1 "k8s.io/client-go/applyconfigurations/events/v1beta1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeEvents) Patch(ctx context.Context, name string, pt types.PatchType, } return obj.(*v1beta1.Event), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied event. +func (c *FakeEvents) Apply(ctx context.Context, event *eventsv1beta1.EventApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Event, err error) { + if event == nil { + return nil, fmt.Errorf("event provided to Apply must not be nil") + } + data, err := json.Marshal(event) + if err != nil { + return nil, err + } + name := event.Name + if name == nil { + return nil, fmt.Errorf("event.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Event{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Event), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/daemonset.go index 0ba8bfc949..ffe219fdaa 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/daemonset.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type DaemonSetInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.DaemonSetList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.DaemonSet, err error) + Apply(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error) + ApplyStatus(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error) DaemonSetExpansion } @@ -193,3 +198,59 @@ func (c *daemonSets) Patch(ctx context.Context, name string, pt types.PatchType, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet. +func (c *daemonSets) Apply(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + result = &v1beta1.DaemonSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("daemonsets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *daemonSets) ApplyStatus(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + + result = &v1beta1.DaemonSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("daemonsets"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment.go index 4265f6decb..45c90aca3d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type DeploymentInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.DeploymentList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Deployment, err error) + Apply(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) + ApplyStatus(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) GetScale(ctx context.Context, deploymentName string, options v1.GetOptions) (*v1beta1.Scale, error) UpdateScale(ctx context.Context, deploymentName string, scale *v1beta1.Scale, opts v1.UpdateOptions) (*v1beta1.Scale, error) @@ -197,6 +202,62 @@ func (c *deployments) Patch(ctx context.Context, name string, pt types.PatchType return } +// Apply takes the given apply declarative configuration, applies it and returns the applied deployment. +func (c *deployments) Apply(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + result = &v1beta1.Deployment{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("deployments"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *deployments) ApplyStatus(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + + result = &v1beta1.Deployment{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("deployments"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + // GetScale takes name of the deployment, and returns the corresponding v1beta1.Scale object, and an error if there is any. func (c *deployments) GetScale(ctx context.Context, deploymentName string, options v1.GetOptions) (result *v1beta1.Scale, err error) { result = &v1beta1.Scale{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_daemonset.go index 75e9132e6e..f83c312e61 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_daemonset.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeDaemonSets) Patch(ctx context.Context, name string, pt types.PatchT } return obj.(*v1beta1.DaemonSet), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied daemonSet. +func (c *FakeDaemonSets) Apply(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.DaemonSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.DaemonSet), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeDaemonSets) ApplyStatus(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.DaemonSet, err error) { + if daemonSet == nil { + return nil, fmt.Errorf("daemonSet provided to Apply must not be nil") + } + data, err := json.Marshal(daemonSet) + if err != nil { + return nil, err + } + name := daemonSet.Name + if name == nil { + return nil, fmt.Errorf("daemonSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta1.DaemonSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.DaemonSet), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment.go index 2841b7b877..97511d300e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" testing "k8s.io/client-go/testing" ) @@ -141,6 +144,51 @@ func (c *FakeDeployments) Patch(ctx context.Context, name string, pt types.Patch return obj.(*v1beta1.Deployment), err } +// Apply takes the given apply declarative configuration, applies it and returns the applied deployment. +func (c *FakeDeployments) Apply(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Deployment{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Deployment), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeDeployments) ApplyStatus(ctx context.Context, deployment *extensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Deployment, err error) { + if deployment == nil { + return nil, fmt.Errorf("deployment provided to Apply must not be nil") + } + data, err := json.Marshal(deployment) + if err != nil { + return nil, err + } + name := deployment.Name + if name == nil { + return nil, fmt.Errorf("deployment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta1.Deployment{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Deployment), err +} + // GetScale takes name of the deployment, and returns the corresponding scale object, and an error if there is any. func (c *FakeDeployments) GetScale(ctx context.Context, deploymentName string, options v1.GetOptions) (result *v1beta1.Scale, err error) { obj, err := c.Fake. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_ingress.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_ingress.go index 01a3cf1adb..46db8d067f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_ingress.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_ingress.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeIngresses) Patch(ctx context.Context, name string, pt types.PatchTy } return obj.(*v1beta1.Ingress), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied ingress. +func (c *FakeIngresses) Apply(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Ingress{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Ingress), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeIngresses) ApplyStatus(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta1.Ingress{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Ingress), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_networkpolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_networkpolicy.go index e97a54eaaf..4ae650b0da 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_networkpolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_networkpolicy.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeNetworkPolicies) Patch(ctx context.Context, name string, pt types.P } return obj.(*v1beta1.NetworkPolicy), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied networkPolicy. +func (c *FakeNetworkPolicies) Apply(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error) { + if networkPolicy == nil { + return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil") + } + data, err := json.Marshal(networkPolicy) + if err != nil { + return nil, err + } + name := networkPolicy.Name + if name == nil { + return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.NetworkPolicy{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.NetworkPolicy), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_podsecuritypolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_podsecuritypolicy.go index adb7d30fbd..c4d0e9c535 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_podsecuritypolicy.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakePodSecurityPolicies) Patch(ctx context.Context, name string, pt typ } return obj.(*v1beta1.PodSecurityPolicy), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied podSecurityPolicy. +func (c *FakePodSecurityPolicies) Apply(ctx context.Context, podSecurityPolicy *extensionsv1beta1.PodSecurityPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodSecurityPolicy, err error) { + if podSecurityPolicy == nil { + return nil, fmt.Errorf("podSecurityPolicy provided to Apply must not be nil") + } + data, err := json.Marshal(podSecurityPolicy) + if err != nil { + return nil, err + } + name := podSecurityPolicy.Name + if name == nil { + return nil, fmt.Errorf("podSecurityPolicy.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(podsecuritypoliciesResource, *name, types.ApplyPatchType, data), &v1beta1.PodSecurityPolicy{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.PodSecurityPolicy), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_replicaset.go index 5b824acbbf..cf0310acb7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_replicaset.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" testing "k8s.io/client-go/testing" ) @@ -141,6 +144,51 @@ func (c *FakeReplicaSets) Patch(ctx context.Context, name string, pt types.Patch return obj.(*v1beta1.ReplicaSet), err } +// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet. +func (c *FakeReplicaSets) Apply(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.ReplicaSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.ReplicaSet), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeReplicaSets) ApplyStatus(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta1.ReplicaSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.ReplicaSet), err +} + // GetScale takes name of the replicaSet, and returns the corresponding scale object, and an error if there is any. func (c *FakeReplicaSets) GetScale(ctx context.Context, replicaSetName string, options v1.GetOptions) (result *v1beta1.Scale, err error) { obj, err := c.Fake. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/ingress.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/ingress.go index b19e2455ad..dd4012cc23 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/ingress.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/ingress.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type IngressInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.IngressList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Ingress, err error) + Apply(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) + ApplyStatus(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) IngressExpansion } @@ -193,3 +198,59 @@ func (c *ingresses) Patch(ctx context.Context, name string, pt types.PatchType, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied ingress. +func (c *ingresses) Apply(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + result = &v1beta1.Ingress{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("ingresses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *ingresses) ApplyStatus(ctx context.Context, ingress *extensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + + result = &v1beta1.Ingress{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("ingresses"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/networkpolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/networkpolicy.go index ed9ae30ded..978b26db03 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/networkpolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/networkpolicy.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type NetworkPolicyInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.NetworkPolicyList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.NetworkPolicy, err error) + Apply(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error) NetworkPolicyExpansion } @@ -176,3 +180,29 @@ func (c *networkPolicies) Patch(ctx context.Context, name string, pt types.Patch Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied networkPolicy. +func (c *networkPolicies) Apply(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error) { + if networkPolicy == nil { + return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(networkPolicy) + if err != nil { + return nil, err + } + name := networkPolicy.Name + if name == nil { + return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply") + } + result = &v1beta1.NetworkPolicy{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("networkpolicies"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/podsecuritypolicy.go index 76e67dedb8..3f38c3133d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/podsecuritypolicy.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type PodSecurityPolicyInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.PodSecurityPolicyList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PodSecurityPolicy, err error) + Apply(ctx context.Context, podSecurityPolicy *extensionsv1beta1.PodSecurityPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodSecurityPolicy, err error) PodSecurityPolicyExpansion } @@ -166,3 +170,28 @@ func (c *podSecurityPolicies) Patch(ctx context.Context, name string, pt types.P Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied podSecurityPolicy. +func (c *podSecurityPolicies) Apply(ctx context.Context, podSecurityPolicy *extensionsv1beta1.PodSecurityPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodSecurityPolicy, err error) { + if podSecurityPolicy == nil { + return nil, fmt.Errorf("podSecurityPolicy provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(podSecurityPolicy) + if err != nil { + return nil, err + } + name := podSecurityPolicy.Name + if name == nil { + return nil, fmt.Errorf("podSecurityPolicy.Name must be provided to Apply") + } + result = &v1beta1.PodSecurityPolicy{} + err = c.client.Patch(types.ApplyPatchType). + Resource("podsecuritypolicies"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/replicaset.go index 64e3c18617..ee897f75ad 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/replicaset.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + extensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type ReplicaSetInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.ReplicaSetList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ReplicaSet, err error) + Apply(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error) + ApplyStatus(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error) GetScale(ctx context.Context, replicaSetName string, options v1.GetOptions) (*v1beta1.Scale, error) UpdateScale(ctx context.Context, replicaSetName string, scale *v1beta1.Scale, opts v1.UpdateOptions) (*v1beta1.Scale, error) @@ -197,6 +202,62 @@ func (c *replicaSets) Patch(ctx context.Context, name string, pt types.PatchType return } +// Apply takes the given apply declarative configuration, applies it and returns the applied replicaSet. +func (c *replicaSets) Apply(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + result = &v1beta1.ReplicaSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("replicasets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *replicaSets) ApplyStatus(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ReplicaSet, err error) { + if replicaSet == nil { + return nil, fmt.Errorf("replicaSet provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(replicaSet) + if err != nil { + return nil, err + } + + name := replicaSet.Name + if name == nil { + return nil, fmt.Errorf("replicaSet.Name must be provided to Apply") + } + + result = &v1beta1.ReplicaSet{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("replicasets"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + // GetScale takes name of the replicaSet, and returns the corresponding v1beta1.Scale object, and an error if there is any. func (c *replicaSets) GetScale(ctx context.Context, replicaSetName string, options v1.GetOptions) (result *v1beta1.Scale, err error) { result = &v1beta1.Scale{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/fake_flowschema.go b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/fake_flowschema.go index e4692874e8..824318c889 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/fake_flowschema.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/fake_flowschema.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1alpha1 "k8s.io/api/flowcontrol/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + flowcontrolv1alpha1 "k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1" testing "k8s.io/client-go/testing" ) @@ -131,3 +134,46 @@ func (c *FakeFlowSchemas) Patch(ctx context.Context, name string, pt types.Patch } return obj.(*v1alpha1.FlowSchema), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema. +func (c *FakeFlowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error) { + if flowSchema == nil { + return nil, fmt.Errorf("flowSchema provided to Apply must not be nil") + } + data, err := json.Marshal(flowSchema) + if err != nil { + return nil, err + } + name := flowSchema.Name + if name == nil { + return nil, fmt.Errorf("flowSchema.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data), &v1alpha1.FlowSchema{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.FlowSchema), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeFlowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error) { + if flowSchema == nil { + return nil, fmt.Errorf("flowSchema provided to Apply must not be nil") + } + data, err := json.Marshal(flowSchema) + if err != nil { + return nil, err + } + name := flowSchema.Name + if name == nil { + return nil, fmt.Errorf("flowSchema.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data, "status"), &v1alpha1.FlowSchema{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.FlowSchema), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/fake_prioritylevelconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/fake_prioritylevelconfiguration.go index 133ab793ce..f6f7c8a5b1 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/fake_prioritylevelconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/fake/fake_prioritylevelconfiguration.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1alpha1 "k8s.io/api/flowcontrol/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + flowcontrolv1alpha1 "k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1" testing "k8s.io/client-go/testing" ) @@ -131,3 +134,46 @@ func (c *FakePriorityLevelConfigurations) Patch(ctx context.Context, name string } return obj.(*v1alpha1.PriorityLevelConfiguration), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration. +func (c *FakePriorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) { + if priorityLevelConfiguration == nil { + return nil, fmt.Errorf("priorityLevelConfiguration provided to Apply must not be nil") + } + data, err := json.Marshal(priorityLevelConfiguration) + if err != nil { + return nil, err + } + name := priorityLevelConfiguration.Name + if name == nil { + return nil, fmt.Errorf("priorityLevelConfiguration.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data), &v1alpha1.PriorityLevelConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.PriorityLevelConfiguration), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakePriorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) { + if priorityLevelConfiguration == nil { + return nil, fmt.Errorf("priorityLevelConfiguration provided to Apply must not be nil") + } + data, err := json.Marshal(priorityLevelConfiguration) + if err != nil { + return nil, err + } + name := priorityLevelConfiguration.Name + if name == nil { + return nil, fmt.Errorf("priorityLevelConfiguration.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data, "status"), &v1alpha1.PriorityLevelConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.PriorityLevelConfiguration), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/flowschema.go b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/flowschema.go index 319636f771..95baf82519 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/flowschema.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/flowschema.go @@ -20,12 +20,15 @@ package v1alpha1 import ( "context" + json "encoding/json" + "fmt" "time" v1alpha1 "k8s.io/api/flowcontrol/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + flowcontrolv1alpha1 "k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type FlowSchemaInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.FlowSchemaList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.FlowSchema, err error) + Apply(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error) + ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error) FlowSchemaExpansion } @@ -182,3 +187,57 @@ func (c *flowSchemas) Patch(ctx context.Context, name string, pt types.PatchType Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema. +func (c *flowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error) { + if flowSchema == nil { + return nil, fmt.Errorf("flowSchema provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(flowSchema) + if err != nil { + return nil, err + } + name := flowSchema.Name + if name == nil { + return nil, fmt.Errorf("flowSchema.Name must be provided to Apply") + } + result = &v1alpha1.FlowSchema{} + err = c.client.Patch(types.ApplyPatchType). + Resource("flowschemas"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *flowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1alpha1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.FlowSchema, err error) { + if flowSchema == nil { + return nil, fmt.Errorf("flowSchema provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(flowSchema) + if err != nil { + return nil, err + } + + name := flowSchema.Name + if name == nil { + return nil, fmt.Errorf("flowSchema.Name must be provided to Apply") + } + + result = &v1alpha1.FlowSchema{} + err = c.client.Patch(types.ApplyPatchType). + Resource("flowschemas"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/prioritylevelconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/prioritylevelconfiguration.go index 1290e7936b..327b727c18 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/prioritylevelconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1alpha1/prioritylevelconfiguration.go @@ -20,12 +20,15 @@ package v1alpha1 import ( "context" + json "encoding/json" + "fmt" "time" v1alpha1 "k8s.io/api/flowcontrol/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + flowcontrolv1alpha1 "k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type PriorityLevelConfigurationInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.PriorityLevelConfigurationList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.PriorityLevelConfiguration, err error) + Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) + ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) PriorityLevelConfigurationExpansion } @@ -182,3 +187,57 @@ func (c *priorityLevelConfigurations) Patch(ctx context.Context, name string, pt Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration. +func (c *priorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) { + if priorityLevelConfiguration == nil { + return nil, fmt.Errorf("priorityLevelConfiguration provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(priorityLevelConfiguration) + if err != nil { + return nil, err + } + name := priorityLevelConfiguration.Name + if name == nil { + return nil, fmt.Errorf("priorityLevelConfiguration.Name must be provided to Apply") + } + result = &v1alpha1.PriorityLevelConfiguration{} + err = c.client.Patch(types.ApplyPatchType). + Resource("prioritylevelconfigurations"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *priorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1alpha1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityLevelConfiguration, err error) { + if priorityLevelConfiguration == nil { + return nil, fmt.Errorf("priorityLevelConfiguration provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(priorityLevelConfiguration) + if err != nil { + return nil, err + } + + name := priorityLevelConfiguration.Name + if name == nil { + return nil, fmt.Errorf("priorityLevelConfiguration.Name must be provided to Apply") + } + + result = &v1alpha1.PriorityLevelConfiguration{} + err = c.client.Patch(types.ApplyPatchType). + Resource("prioritylevelconfigurations"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_flowschema.go b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_flowschema.go index 7732b69dca..378c666d63 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_flowschema.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_flowschema.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/flowcontrol/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + flowcontrolv1beta1 "k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1" testing "k8s.io/client-go/testing" ) @@ -131,3 +134,46 @@ func (c *FakeFlowSchemas) Patch(ctx context.Context, name string, pt types.Patch } return obj.(*v1beta1.FlowSchema), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema. +func (c *FakeFlowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error) { + if flowSchema == nil { + return nil, fmt.Errorf("flowSchema provided to Apply must not be nil") + } + data, err := json.Marshal(flowSchema) + if err != nil { + return nil, err + } + name := flowSchema.Name + if name == nil { + return nil, fmt.Errorf("flowSchema.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data), &v1beta1.FlowSchema{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.FlowSchema), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeFlowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error) { + if flowSchema == nil { + return nil, fmt.Errorf("flowSchema provided to Apply must not be nil") + } + data, err := json.Marshal(flowSchema) + if err != nil { + return nil, err + } + name := flowSchema.Name + if name == nil { + return nil, fmt.Errorf("flowSchema.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(flowschemasResource, *name, types.ApplyPatchType, data, "status"), &v1beta1.FlowSchema{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.FlowSchema), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_prioritylevelconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_prioritylevelconfiguration.go index f93a505d4c..fe6850b30e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_prioritylevelconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_prioritylevelconfiguration.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/flowcontrol/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + flowcontrolv1beta1 "k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1" testing "k8s.io/client-go/testing" ) @@ -131,3 +134,46 @@ func (c *FakePriorityLevelConfigurations) Patch(ctx context.Context, name string } return obj.(*v1beta1.PriorityLevelConfiguration), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration. +func (c *FakePriorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error) { + if priorityLevelConfiguration == nil { + return nil, fmt.Errorf("priorityLevelConfiguration provided to Apply must not be nil") + } + data, err := json.Marshal(priorityLevelConfiguration) + if err != nil { + return nil, err + } + name := priorityLevelConfiguration.Name + if name == nil { + return nil, fmt.Errorf("priorityLevelConfiguration.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data), &v1beta1.PriorityLevelConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.PriorityLevelConfiguration), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakePriorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error) { + if priorityLevelConfiguration == nil { + return nil, fmt.Errorf("priorityLevelConfiguration provided to Apply must not be nil") + } + data, err := json.Marshal(priorityLevelConfiguration) + if err != nil { + return nil, err + } + name := priorityLevelConfiguration.Name + if name == nil { + return nil, fmt.Errorf("priorityLevelConfiguration.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(prioritylevelconfigurationsResource, *name, types.ApplyPatchType, data, "status"), &v1beta1.PriorityLevelConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.PriorityLevelConfiguration), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/flowschema.go b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/flowschema.go index 398f4f3473..a9d38becf9 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/flowschema.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/flowschema.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/flowcontrol/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + flowcontrolv1beta1 "k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type FlowSchemaInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.FlowSchemaList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.FlowSchema, err error) + Apply(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error) + ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error) FlowSchemaExpansion } @@ -182,3 +187,57 @@ func (c *flowSchemas) Patch(ctx context.Context, name string, pt types.PatchType Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied flowSchema. +func (c *flowSchemas) Apply(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error) { + if flowSchema == nil { + return nil, fmt.Errorf("flowSchema provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(flowSchema) + if err != nil { + return nil, err + } + name := flowSchema.Name + if name == nil { + return nil, fmt.Errorf("flowSchema.Name must be provided to Apply") + } + result = &v1beta1.FlowSchema{} + err = c.client.Patch(types.ApplyPatchType). + Resource("flowschemas"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *flowSchemas) ApplyStatus(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.FlowSchema, err error) { + if flowSchema == nil { + return nil, fmt.Errorf("flowSchema provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(flowSchema) + if err != nil { + return nil, err + } + + name := flowSchema.Name + if name == nil { + return nil, fmt.Errorf("flowSchema.Name must be provided to Apply") + } + + result = &v1beta1.FlowSchema{} + err = c.client.Patch(types.ApplyPatchType). + Resource("flowschemas"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/prioritylevelconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/prioritylevelconfiguration.go index 88633c8278..41f35cbccd 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/prioritylevelconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/prioritylevelconfiguration.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/flowcontrol/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + flowcontrolv1beta1 "k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type PriorityLevelConfigurationInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.PriorityLevelConfigurationList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PriorityLevelConfiguration, err error) + Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error) + ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error) PriorityLevelConfigurationExpansion } @@ -182,3 +187,57 @@ func (c *priorityLevelConfigurations) Patch(ctx context.Context, name string, pt Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied priorityLevelConfiguration. +func (c *priorityLevelConfigurations) Apply(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error) { + if priorityLevelConfiguration == nil { + return nil, fmt.Errorf("priorityLevelConfiguration provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(priorityLevelConfiguration) + if err != nil { + return nil, err + } + name := priorityLevelConfiguration.Name + if name == nil { + return nil, fmt.Errorf("priorityLevelConfiguration.Name must be provided to Apply") + } + result = &v1beta1.PriorityLevelConfiguration{} + err = c.client.Patch(types.ApplyPatchType). + Resource("prioritylevelconfigurations"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *priorityLevelConfigurations) ApplyStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityLevelConfiguration, err error) { + if priorityLevelConfiguration == nil { + return nil, fmt.Errorf("priorityLevelConfiguration provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(priorityLevelConfiguration) + if err != nil { + return nil, err + } + + name := priorityLevelConfiguration.Name + if name == nil { + return nil, fmt.Errorf("priorityLevelConfiguration.Name must be provided to Apply") + } + + result = &v1beta1.PriorityLevelConfiguration{} + err = c.client.Patch(types.ApplyPatchType). + Resource("prioritylevelconfigurations"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingress.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingress.go index 68d4d3358c..f2feced2a6 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingress.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingress.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" networkingv1 "k8s.io/api/networking/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsnetworkingv1 "k8s.io/client-go/applyconfigurations/networking/v1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeIngresses) Patch(ctx context.Context, name string, pt types.PatchTy } return obj.(*networkingv1.Ingress), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied ingress. +func (c *FakeIngresses) Apply(ctx context.Context, ingress *applyconfigurationsnetworkingv1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data), &networkingv1.Ingress{}) + + if obj == nil { + return nil, err + } + return obj.(*networkingv1.Ingress), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeIngresses) ApplyStatus(ctx context.Context, ingress *applyconfigurationsnetworkingv1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data, "status"), &networkingv1.Ingress{}) + + if obj == nil { + return nil, err + } + return obj.(*networkingv1.Ingress), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingressclass.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingressclass.go index 9c05195629..200d9f68b9 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingressclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingressclass.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" networkingv1 "k8s.io/api/networking/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsnetworkingv1 "k8s.io/client-go/applyconfigurations/networking/v1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeIngressClasses) Patch(ctx context.Context, name string, pt types.Pa } return obj.(*networkingv1.IngressClass), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied ingressClass. +func (c *FakeIngressClasses) Apply(ctx context.Context, ingressClass *applyconfigurationsnetworkingv1.IngressClassApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1.IngressClass, err error) { + if ingressClass == nil { + return nil, fmt.Errorf("ingressClass provided to Apply must not be nil") + } + data, err := json.Marshal(ingressClass) + if err != nil { + return nil, err + } + name := ingressClass.Name + if name == nil { + return nil, fmt.Errorf("ingressClass.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(ingressclassesResource, *name, types.ApplyPatchType, data), &networkingv1.IngressClass{}) + if obj == nil { + return nil, err + } + return obj.(*networkingv1.IngressClass), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networkpolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networkpolicy.go index e8d6e28e44..5be9e8b573 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networkpolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networkpolicy.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" networkingv1 "k8s.io/api/networking/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsnetworkingv1 "k8s.io/client-go/applyconfigurations/networking/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeNetworkPolicies) Patch(ctx context.Context, name string, pt types.P } return obj.(*networkingv1.NetworkPolicy), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied networkPolicy. +func (c *FakeNetworkPolicies) Apply(ctx context.Context, networkPolicy *applyconfigurationsnetworkingv1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1.NetworkPolicy, err error) { + if networkPolicy == nil { + return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil") + } + data, err := json.Marshal(networkPolicy) + if err != nil { + return nil, err + } + name := networkPolicy.Name + if name == nil { + return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, *name, types.ApplyPatchType, data), &networkingv1.NetworkPolicy{}) + + if obj == nil { + return nil, err + } + return obj.(*networkingv1.NetworkPolicy), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingress.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingress.go index 40d028b2f5..9923d6cbae 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingress.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingress.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/networking/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + networkingv1 "k8s.io/client-go/applyconfigurations/networking/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type IngressInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.IngressList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Ingress, err error) + Apply(ctx context.Context, ingress *networkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Ingress, err error) + ApplyStatus(ctx context.Context, ingress *networkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Ingress, err error) IngressExpansion } @@ -193,3 +198,59 @@ func (c *ingresses) Patch(ctx context.Context, name string, pt types.PatchType, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied ingress. +func (c *ingresses) Apply(ctx context.Context, ingress *networkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + result = &v1.Ingress{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("ingresses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *ingresses) ApplyStatus(ctx context.Context, ingress *networkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + + result = &v1.Ingress{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("ingresses"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingressclass.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingressclass.go index ea67fdab21..16c8e48bf0 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingressclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingressclass.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/networking/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + networkingv1 "k8s.io/client-go/applyconfigurations/networking/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type IngressClassInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.IngressClassList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.IngressClass, err error) + Apply(ctx context.Context, ingressClass *networkingv1.IngressClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IngressClass, err error) IngressClassExpansion } @@ -166,3 +170,28 @@ func (c *ingressClasses) Patch(ctx context.Context, name string, pt types.PatchT Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied ingressClass. +func (c *ingressClasses) Apply(ctx context.Context, ingressClass *networkingv1.IngressClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.IngressClass, err error) { + if ingressClass == nil { + return nil, fmt.Errorf("ingressClass provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(ingressClass) + if err != nil { + return nil, err + } + name := ingressClass.Name + if name == nil { + return nil, fmt.Errorf("ingressClass.Name must be provided to Apply") + } + result = &v1.IngressClass{} + err = c.client.Patch(types.ApplyPatchType). + Resource("ingressclasses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networkpolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networkpolicy.go index 19c0c880f3..d7454ce145 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networkpolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networkpolicy.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/networking/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + networkingv1 "k8s.io/client-go/applyconfigurations/networking/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type NetworkPolicyInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.NetworkPolicyList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.NetworkPolicy, err error) + Apply(ctx context.Context, networkPolicy *networkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *v1.NetworkPolicy, err error) NetworkPolicyExpansion } @@ -176,3 +180,29 @@ func (c *networkPolicies) Patch(ctx context.Context, name string, pt types.Patch Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied networkPolicy. +func (c *networkPolicies) Apply(ctx context.Context, networkPolicy *networkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *v1.NetworkPolicy, err error) { + if networkPolicy == nil { + return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(networkPolicy) + if err != nil { + return nil, err + } + name := networkPolicy.Name + if name == nil { + return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply") + } + result = &v1.NetworkPolicy{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("networkpolicies"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingress.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingress.go index 083229e290..21f5f62454 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingress.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingress.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/networking/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + networkingv1beta1 "k8s.io/client-go/applyconfigurations/networking/v1beta1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakeIngresses) Patch(ctx context.Context, name string, pt types.PatchTy } return obj.(*v1beta1.Ingress), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied ingress. +func (c *FakeIngresses) Apply(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Ingress{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Ingress), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeIngresses) ApplyStatus(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta1.Ingress{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Ingress), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingressclass.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingressclass.go index 9329d0b397..a0bcebe6f3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingressclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingressclass.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/networking/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + networkingv1beta1 "k8s.io/client-go/applyconfigurations/networking/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeIngressClasses) Patch(ctx context.Context, name string, pt types.Pa } return obj.(*v1beta1.IngressClass), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied ingressClass. +func (c *FakeIngressClasses) Apply(ctx context.Context, ingressClass *networkingv1beta1.IngressClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.IngressClass, err error) { + if ingressClass == nil { + return nil, fmt.Errorf("ingressClass provided to Apply must not be nil") + } + data, err := json.Marshal(ingressClass) + if err != nil { + return nil, err + } + name := ingressClass.Name + if name == nil { + return nil, fmt.Errorf("ingressClass.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(ingressclassesResource, *name, types.ApplyPatchType, data), &v1beta1.IngressClass{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.IngressClass), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingress.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingress.go index 0857c05d69..b309281afa 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingress.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingress.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/networking/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + networkingv1beta1 "k8s.io/client-go/applyconfigurations/networking/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type IngressInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.IngressList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Ingress, err error) + Apply(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) + ApplyStatus(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) IngressExpansion } @@ -193,3 +198,59 @@ func (c *ingresses) Patch(ctx context.Context, name string, pt types.PatchType, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied ingress. +func (c *ingresses) Apply(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + result = &v1beta1.Ingress{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("ingresses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *ingresses) ApplyStatus(ctx context.Context, ingress *networkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Ingress, err error) { + if ingress == nil { + return nil, fmt.Errorf("ingress provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(ingress) + if err != nil { + return nil, err + } + + name := ingress.Name + if name == nil { + return nil, fmt.Errorf("ingress.Name must be provided to Apply") + } + + result = &v1beta1.Ingress{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("ingresses"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingressclass.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingressclass.go index 2a4237425b..50ccdfdbba 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingressclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingressclass.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/networking/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + networkingv1beta1 "k8s.io/client-go/applyconfigurations/networking/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type IngressClassInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.IngressClassList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.IngressClass, err error) + Apply(ctx context.Context, ingressClass *networkingv1beta1.IngressClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.IngressClass, err error) IngressClassExpansion } @@ -166,3 +170,28 @@ func (c *ingressClasses) Patch(ctx context.Context, name string, pt types.PatchT Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied ingressClass. +func (c *ingressClasses) Apply(ctx context.Context, ingressClass *networkingv1beta1.IngressClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.IngressClass, err error) { + if ingressClass == nil { + return nil, fmt.Errorf("ingressClass provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(ingressClass) + if err != nil { + return nil, err + } + name := ingressClass.Name + if name == nil { + return nil, fmt.Errorf("ingressClass.Name must be provided to Apply") + } + result = &v1beta1.IngressClass{} + err = c.client.Patch(types.ApplyPatchType). + Resource("ingressclasses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/node/v1/fake/fake_runtimeclass.go b/vendor/k8s.io/client-go/kubernetes/typed/node/v1/fake/fake_runtimeclass.go index 461386f452..c79a924bad 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/node/v1/fake/fake_runtimeclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/node/v1/fake/fake_runtimeclass.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" nodev1 "k8s.io/api/node/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsnodev1 "k8s.io/client-go/applyconfigurations/node/v1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeRuntimeClasses) Patch(ctx context.Context, name string, pt types.Pa } return obj.(*nodev1.RuntimeClass), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass. +func (c *FakeRuntimeClasses) Apply(ctx context.Context, runtimeClass *applyconfigurationsnodev1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *nodev1.RuntimeClass, err error) { + if runtimeClass == nil { + return nil, fmt.Errorf("runtimeClass provided to Apply must not be nil") + } + data, err := json.Marshal(runtimeClass) + if err != nil { + return nil, err + } + name := runtimeClass.Name + if name == nil { + return nil, fmt.Errorf("runtimeClass.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(runtimeclassesResource, *name, types.ApplyPatchType, data), &nodev1.RuntimeClass{}) + if obj == nil { + return nil, err + } + return obj.(*nodev1.RuntimeClass), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/node/v1/runtimeclass.go b/vendor/k8s.io/client-go/kubernetes/typed/node/v1/runtimeclass.go index df8c1cafe8..5ec38b203e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/node/v1/runtimeclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/node/v1/runtimeclass.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/node/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + nodev1 "k8s.io/client-go/applyconfigurations/node/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type RuntimeClassInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.RuntimeClassList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RuntimeClass, err error) + Apply(ctx context.Context, runtimeClass *nodev1.RuntimeClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.RuntimeClass, err error) RuntimeClassExpansion } @@ -166,3 +170,28 @@ func (c *runtimeClasses) Patch(ctx context.Context, name string, pt types.PatchT Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass. +func (c *runtimeClasses) Apply(ctx context.Context, runtimeClass *nodev1.RuntimeClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.RuntimeClass, err error) { + if runtimeClass == nil { + return nil, fmt.Errorf("runtimeClass provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(runtimeClass) + if err != nil { + return nil, err + } + name := runtimeClass.Name + if name == nil { + return nil, fmt.Errorf("runtimeClass.Name must be provided to Apply") + } + result = &v1.RuntimeClass{} + err = c.client.Patch(types.ApplyPatchType). + Resource("runtimeclasses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake/fake_runtimeclass.go b/vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake/fake_runtimeclass.go index b49d787ded..22694eea35 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake/fake_runtimeclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake/fake_runtimeclass.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1alpha1 "k8s.io/api/node/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + nodev1alpha1 "k8s.io/client-go/applyconfigurations/node/v1alpha1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeRuntimeClasses) Patch(ctx context.Context, name string, pt types.Pa } return obj.(*v1alpha1.RuntimeClass), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass. +func (c *FakeRuntimeClasses) Apply(ctx context.Context, runtimeClass *nodev1alpha1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RuntimeClass, err error) { + if runtimeClass == nil { + return nil, fmt.Errorf("runtimeClass provided to Apply must not be nil") + } + data, err := json.Marshal(runtimeClass) + if err != nil { + return nil, err + } + name := runtimeClass.Name + if name == nil { + return nil, fmt.Errorf("runtimeClass.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(runtimeclassesResource, *name, types.ApplyPatchType, data), &v1alpha1.RuntimeClass{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.RuntimeClass), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/runtimeclass.go b/vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/runtimeclass.go index 402c23e8af..039a7ace15 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/runtimeclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/runtimeclass.go @@ -20,12 +20,15 @@ package v1alpha1 import ( "context" + json "encoding/json" + "fmt" "time" v1alpha1 "k8s.io/api/node/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + nodev1alpha1 "k8s.io/client-go/applyconfigurations/node/v1alpha1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type RuntimeClassInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.RuntimeClassList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.RuntimeClass, err error) + Apply(ctx context.Context, runtimeClass *nodev1alpha1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RuntimeClass, err error) RuntimeClassExpansion } @@ -166,3 +170,28 @@ func (c *runtimeClasses) Patch(ctx context.Context, name string, pt types.PatchT Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass. +func (c *runtimeClasses) Apply(ctx context.Context, runtimeClass *nodev1alpha1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RuntimeClass, err error) { + if runtimeClass == nil { + return nil, fmt.Errorf("runtimeClass provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(runtimeClass) + if err != nil { + return nil, err + } + name := runtimeClass.Name + if name == nil { + return nil, fmt.Errorf("runtimeClass.Name must be provided to Apply") + } + result = &v1alpha1.RuntimeClass{} + err = c.client.Patch(types.ApplyPatchType). + Resource("runtimeclasses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/fake/fake_runtimeclass.go b/vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/fake/fake_runtimeclass.go index d7987d9812..5aba915992 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/fake/fake_runtimeclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/fake/fake_runtimeclass.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/node/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + nodev1beta1 "k8s.io/client-go/applyconfigurations/node/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeRuntimeClasses) Patch(ctx context.Context, name string, pt types.Pa } return obj.(*v1beta1.RuntimeClass), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass. +func (c *FakeRuntimeClasses) Apply(ctx context.Context, runtimeClass *nodev1beta1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RuntimeClass, err error) { + if runtimeClass == nil { + return nil, fmt.Errorf("runtimeClass provided to Apply must not be nil") + } + data, err := json.Marshal(runtimeClass) + if err != nil { + return nil, err + } + name := runtimeClass.Name + if name == nil { + return nil, fmt.Errorf("runtimeClass.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(runtimeclassesResource, *name, types.ApplyPatchType, data), &v1beta1.RuntimeClass{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.RuntimeClass), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/runtimeclass.go b/vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/runtimeclass.go index b0d1886ecc..f8990adf1e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/runtimeclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/runtimeclass.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/node/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + nodev1beta1 "k8s.io/client-go/applyconfigurations/node/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type RuntimeClassInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.RuntimeClassList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.RuntimeClass, err error) + Apply(ctx context.Context, runtimeClass *nodev1beta1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RuntimeClass, err error) RuntimeClassExpansion } @@ -166,3 +170,28 @@ func (c *runtimeClasses) Patch(ctx context.Context, name string, pt types.PatchT Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied runtimeClass. +func (c *runtimeClasses) Apply(ctx context.Context, runtimeClass *nodev1beta1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RuntimeClass, err error) { + if runtimeClass == nil { + return nil, fmt.Errorf("runtimeClass provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(runtimeClass) + if err != nil { + return nil, err + } + name := runtimeClass.Name + if name == nil { + return nil, fmt.Errorf("runtimeClass.Name must be provided to Apply") + } + result = &v1beta1.RuntimeClass{} + err = c.client.Patch(types.ApplyPatchType). + Resource("runtimeclasses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/doc.go new file mode 100644 index 0000000000..3af5d054f1 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// This package has the automatically generated typed clients. +package v1 diff --git a/vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/doc.go similarity index 100% rename from vendor/k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/fake/doc.go rename to vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/doc.go diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_poddisruptionbudget.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_poddisruptionbudget.go new file mode 100644 index 0000000000..5763782a90 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_poddisruptionbudget.go @@ -0,0 +1,190 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + "context" + json "encoding/json" + "fmt" + + policyv1 "k8s.io/api/policy/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationspolicyv1 "k8s.io/client-go/applyconfigurations/policy/v1" + testing "k8s.io/client-go/testing" +) + +// FakePodDisruptionBudgets implements PodDisruptionBudgetInterface +type FakePodDisruptionBudgets struct { + Fake *FakePolicyV1 + ns string +} + +var poddisruptionbudgetsResource = schema.GroupVersionResource{Group: "policy", Version: "v1", Resource: "poddisruptionbudgets"} + +var poddisruptionbudgetsKind = schema.GroupVersionKind{Group: "policy", Version: "v1", Kind: "PodDisruptionBudget"} + +// Get takes name of the podDisruptionBudget, and returns the corresponding podDisruptionBudget object, and an error if there is any. +func (c *FakePodDisruptionBudgets) Get(ctx context.Context, name string, options v1.GetOptions) (result *policyv1.PodDisruptionBudget, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(poddisruptionbudgetsResource, c.ns, name), &policyv1.PodDisruptionBudget{}) + + if obj == nil { + return nil, err + } + return obj.(*policyv1.PodDisruptionBudget), err +} + +// List takes label and field selectors, and returns the list of PodDisruptionBudgets that match those selectors. +func (c *FakePodDisruptionBudgets) List(ctx context.Context, opts v1.ListOptions) (result *policyv1.PodDisruptionBudgetList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(poddisruptionbudgetsResource, poddisruptionbudgetsKind, c.ns, opts), &policyv1.PodDisruptionBudgetList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &policyv1.PodDisruptionBudgetList{ListMeta: obj.(*policyv1.PodDisruptionBudgetList).ListMeta} + for _, item := range obj.(*policyv1.PodDisruptionBudgetList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested podDisruptionBudgets. +func (c *FakePodDisruptionBudgets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(poddisruptionbudgetsResource, c.ns, opts)) + +} + +// Create takes the representation of a podDisruptionBudget and creates it. Returns the server's representation of the podDisruptionBudget, and an error, if there is any. +func (c *FakePodDisruptionBudgets) Create(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudget, opts v1.CreateOptions) (result *policyv1.PodDisruptionBudget, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(poddisruptionbudgetsResource, c.ns, podDisruptionBudget), &policyv1.PodDisruptionBudget{}) + + if obj == nil { + return nil, err + } + return obj.(*policyv1.PodDisruptionBudget), err +} + +// Update takes the representation of a podDisruptionBudget and updates it. Returns the server's representation of the podDisruptionBudget, and an error, if there is any. +func (c *FakePodDisruptionBudgets) Update(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudget, opts v1.UpdateOptions) (result *policyv1.PodDisruptionBudget, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(poddisruptionbudgetsResource, c.ns, podDisruptionBudget), &policyv1.PodDisruptionBudget{}) + + if obj == nil { + return nil, err + } + return obj.(*policyv1.PodDisruptionBudget), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakePodDisruptionBudgets) UpdateStatus(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudget, opts v1.UpdateOptions) (*policyv1.PodDisruptionBudget, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(poddisruptionbudgetsResource, "status", c.ns, podDisruptionBudget), &policyv1.PodDisruptionBudget{}) + + if obj == nil { + return nil, err + } + return obj.(*policyv1.PodDisruptionBudget), err +} + +// Delete takes name of the podDisruptionBudget and deletes it. Returns an error if one occurs. +func (c *FakePodDisruptionBudgets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(poddisruptionbudgetsResource, c.ns, name), &policyv1.PodDisruptionBudget{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakePodDisruptionBudgets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(poddisruptionbudgetsResource, c.ns, listOpts) + + _, err := c.Fake.Invokes(action, &policyv1.PodDisruptionBudgetList{}) + return err +} + +// Patch applies the patch and returns the patched podDisruptionBudget. +func (c *FakePodDisruptionBudgets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *policyv1.PodDisruptionBudget, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, name, pt, data, subresources...), &policyv1.PodDisruptionBudget{}) + + if obj == nil { + return nil, err + } + return obj.(*policyv1.PodDisruptionBudget), err +} + +// Apply takes the given apply declarative configuration, applies it and returns the applied podDisruptionBudget. +func (c *FakePodDisruptionBudgets) Apply(ctx context.Context, podDisruptionBudget *applyconfigurationspolicyv1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *policyv1.PodDisruptionBudget, err error) { + if podDisruptionBudget == nil { + return nil, fmt.Errorf("podDisruptionBudget provided to Apply must not be nil") + } + data, err := json.Marshal(podDisruptionBudget) + if err != nil { + return nil, err + } + name := podDisruptionBudget.Name + if name == nil { + return nil, fmt.Errorf("podDisruptionBudget.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, *name, types.ApplyPatchType, data), &policyv1.PodDisruptionBudget{}) + + if obj == nil { + return nil, err + } + return obj.(*policyv1.PodDisruptionBudget), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakePodDisruptionBudgets) ApplyStatus(ctx context.Context, podDisruptionBudget *applyconfigurationspolicyv1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *policyv1.PodDisruptionBudget, err error) { + if podDisruptionBudget == nil { + return nil, fmt.Errorf("podDisruptionBudget provided to Apply must not be nil") + } + data, err := json.Marshal(podDisruptionBudget) + if err != nil { + return nil, err + } + name := podDisruptionBudget.Name + if name == nil { + return nil, fmt.Errorf("podDisruptionBudget.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &policyv1.PodDisruptionBudget{}) + + if obj == nil { + return nil, err + } + return obj.(*policyv1.PodDisruptionBudget), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_policy_client.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_policy_client.go new file mode 100644 index 0000000000..ba0f039b21 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_policy_client.go @@ -0,0 +1,40 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1 "k8s.io/client-go/kubernetes/typed/policy/v1" + rest "k8s.io/client-go/rest" + testing "k8s.io/client-go/testing" +) + +type FakePolicyV1 struct { + *testing.Fake +} + +func (c *FakePolicyV1) PodDisruptionBudgets(namespace string) v1.PodDisruptionBudgetInterface { + return &FakePodDisruptionBudgets{c, namespace} +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakePolicyV1) RESTClient() rest.Interface { + var ret *rest.RESTClient + return ret +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/generated_expansion.go new file mode 100644 index 0000000000..e07093d79f --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/generated_expansion.go @@ -0,0 +1,21 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1 + +type PodDisruptionBudgetExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/poddisruptionbudget.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/poddisruptionbudget.go new file mode 100644 index 0000000000..58db3acf9e --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/poddisruptionbudget.go @@ -0,0 +1,256 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1 + +import ( + "context" + json "encoding/json" + "fmt" + "time" + + v1 "k8s.io/api/policy/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + policyv1 "k8s.io/client-go/applyconfigurations/policy/v1" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// PodDisruptionBudgetsGetter has a method to return a PodDisruptionBudgetInterface. +// A group's client should implement this interface. +type PodDisruptionBudgetsGetter interface { + PodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface +} + +// PodDisruptionBudgetInterface has methods to work with PodDisruptionBudget resources. +type PodDisruptionBudgetInterface interface { + Create(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.CreateOptions) (*v1.PodDisruptionBudget, error) + Update(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.UpdateOptions) (*v1.PodDisruptionBudget, error) + UpdateStatus(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.UpdateOptions) (*v1.PodDisruptionBudget, error) + Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error + Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.PodDisruptionBudget, error) + List(ctx context.Context, opts metav1.ListOptions) (*v1.PodDisruptionBudgetList, error) + Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PodDisruptionBudget, err error) + Apply(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodDisruptionBudget, err error) + ApplyStatus(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodDisruptionBudget, err error) + PodDisruptionBudgetExpansion +} + +// podDisruptionBudgets implements PodDisruptionBudgetInterface +type podDisruptionBudgets struct { + client rest.Interface + ns string +} + +// newPodDisruptionBudgets returns a PodDisruptionBudgets +func newPodDisruptionBudgets(c *PolicyV1Client, namespace string) *podDisruptionBudgets { + return &podDisruptionBudgets{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the podDisruptionBudget, and returns the corresponding podDisruptionBudget object, and an error if there is any. +func (c *podDisruptionBudgets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PodDisruptionBudget, err error) { + result = &v1.PodDisruptionBudget{} + err = c.client.Get(). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of PodDisruptionBudgets that match those selectors. +func (c *podDisruptionBudgets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PodDisruptionBudgetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1.PodDisruptionBudgetList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested podDisruptionBudgets. +func (c *podDisruptionBudgets) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a podDisruptionBudget and creates it. Returns the server's representation of the podDisruptionBudget, and an error, if there is any. +func (c *podDisruptionBudgets) Create(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.CreateOptions) (result *v1.PodDisruptionBudget, err error) { + result = &v1.PodDisruptionBudget{} + err = c.client.Post(). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(podDisruptionBudget). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a podDisruptionBudget and updates it. Returns the server's representation of the podDisruptionBudget, and an error, if there is any. +func (c *podDisruptionBudgets) Update(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.UpdateOptions) (result *v1.PodDisruptionBudget, err error) { + result = &v1.PodDisruptionBudget{} + err = c.client.Put(). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + Name(podDisruptionBudget.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(podDisruptionBudget). + Do(ctx). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *podDisruptionBudgets) UpdateStatus(ctx context.Context, podDisruptionBudget *v1.PodDisruptionBudget, opts metav1.UpdateOptions) (result *v1.PodDisruptionBudget, err error) { + result = &v1.PodDisruptionBudget{} + err = c.client.Put(). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + Name(podDisruptionBudget.Name). + SubResource("status"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(podDisruptionBudget). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the podDisruptionBudget and deletes it. Returns an error if one occurs. +func (c *podDisruptionBudgets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *podDisruptionBudgets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched podDisruptionBudget. +func (c *podDisruptionBudgets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PodDisruptionBudget, err error) { + result = &v1.PodDisruptionBudget{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// Apply takes the given apply declarative configuration, applies it and returns the applied podDisruptionBudget. +func (c *podDisruptionBudgets) Apply(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodDisruptionBudget, err error) { + if podDisruptionBudget == nil { + return nil, fmt.Errorf("podDisruptionBudget provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(podDisruptionBudget) + if err != nil { + return nil, err + } + name := podDisruptionBudget.Name + if name == nil { + return nil, fmt.Errorf("podDisruptionBudget.Name must be provided to Apply") + } + result = &v1.PodDisruptionBudget{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *podDisruptionBudgets) ApplyStatus(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PodDisruptionBudget, err error) { + if podDisruptionBudget == nil { + return nil, fmt.Errorf("podDisruptionBudget provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(podDisruptionBudget) + if err != nil { + return nil, err + } + + name := podDisruptionBudget.Name + if name == nil { + return nil, fmt.Errorf("podDisruptionBudget.Name must be provided to Apply") + } + + result = &v1.PodDisruptionBudget{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/policy_client.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/policy_client.go new file mode 100644 index 0000000000..bb05a686a6 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1/policy_client.go @@ -0,0 +1,89 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/policy/v1" + "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +type PolicyV1Interface interface { + RESTClient() rest.Interface + PodDisruptionBudgetsGetter +} + +// PolicyV1Client is used to interact with features provided by the policy group. +type PolicyV1Client struct { + restClient rest.Interface +} + +func (c *PolicyV1Client) PodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface { + return newPodDisruptionBudgets(c, namespace) +} + +// NewForConfig creates a new PolicyV1Client for the given config. +func NewForConfig(c *rest.Config) (*PolicyV1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &PolicyV1Client{client}, nil +} + +// NewForConfigOrDie creates a new PolicyV1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *PolicyV1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new PolicyV1Client for the given RESTClient. +func New(c rest.Interface) *PolicyV1Client { + return &PolicyV1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v1.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *PolicyV1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go index 78ea7815ac..7c0352daa7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/policy/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + policyv1beta1 "k8s.io/client-go/applyconfigurations/policy/v1beta1" testing "k8s.io/client-go/testing" ) @@ -140,3 +143,48 @@ func (c *FakePodDisruptionBudgets) Patch(ctx context.Context, name string, pt ty } return obj.(*v1beta1.PodDisruptionBudget), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied podDisruptionBudget. +func (c *FakePodDisruptionBudgets) Apply(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error) { + if podDisruptionBudget == nil { + return nil, fmt.Errorf("podDisruptionBudget provided to Apply must not be nil") + } + data, err := json.Marshal(podDisruptionBudget) + if err != nil { + return nil, err + } + name := podDisruptionBudget.Name + if name == nil { + return nil, fmt.Errorf("podDisruptionBudget.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.PodDisruptionBudget{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.PodDisruptionBudget), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakePodDisruptionBudgets) ApplyStatus(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error) { + if podDisruptionBudget == nil { + return nil, fmt.Errorf("podDisruptionBudget provided to Apply must not be nil") + } + data, err := json.Marshal(podDisruptionBudget) + if err != nil { + return nil, err + } + name := podDisruptionBudget.Name + if name == nil { + return nil, fmt.Errorf("podDisruptionBudget.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta1.PodDisruptionBudget{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.PodDisruptionBudget), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_podsecuritypolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_podsecuritypolicy.go index 667f86b792..a7dffc032c 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_podsecuritypolicy.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/policy/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + policyv1beta1 "k8s.io/client-go/applyconfigurations/policy/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakePodSecurityPolicies) Patch(ctx context.Context, name string, pt typ } return obj.(*v1beta1.PodSecurityPolicy), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied podSecurityPolicy. +func (c *FakePodSecurityPolicies) Apply(ctx context.Context, podSecurityPolicy *policyv1beta1.PodSecurityPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodSecurityPolicy, err error) { + if podSecurityPolicy == nil { + return nil, fmt.Errorf("podSecurityPolicy provided to Apply must not be nil") + } + data, err := json.Marshal(podSecurityPolicy) + if err != nil { + return nil, err + } + name := podSecurityPolicy.Name + if name == nil { + return nil, fmt.Errorf("podSecurityPolicy.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(podsecuritypoliciesResource, *name, types.ApplyPatchType, data), &v1beta1.PodSecurityPolicy{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.PodSecurityPolicy), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go index 95b7ff1b82..1687289921 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/policy/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + policyv1beta1 "k8s.io/client-go/applyconfigurations/policy/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type PodDisruptionBudgetInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.PodDisruptionBudgetList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PodDisruptionBudget, err error) + Apply(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error) + ApplyStatus(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error) PodDisruptionBudgetExpansion } @@ -193,3 +198,59 @@ func (c *podDisruptionBudgets) Patch(ctx context.Context, name string, pt types. Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied podDisruptionBudget. +func (c *podDisruptionBudgets) Apply(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error) { + if podDisruptionBudget == nil { + return nil, fmt.Errorf("podDisruptionBudget provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(podDisruptionBudget) + if err != nil { + return nil, err + } + name := podDisruptionBudget.Name + if name == nil { + return nil, fmt.Errorf("podDisruptionBudget.Name must be provided to Apply") + } + result = &v1beta1.PodDisruptionBudget{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *podDisruptionBudgets) ApplyStatus(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodDisruptionBudget, err error) { + if podDisruptionBudget == nil { + return nil, fmt.Errorf("podDisruptionBudget provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(podDisruptionBudget) + if err != nil { + return nil, err + } + + name := podDisruptionBudget.Name + if name == nil { + return nil, fmt.Errorf("podDisruptionBudget.Name must be provided to Apply") + } + + result = &v1beta1.PodDisruptionBudget{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("poddisruptionbudgets"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go index 15d7bb9e46..944b61de47 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/policy/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + policyv1beta1 "k8s.io/client-go/applyconfigurations/policy/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type PodSecurityPolicyInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.PodSecurityPolicyList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PodSecurityPolicy, err error) + Apply(ctx context.Context, podSecurityPolicy *policyv1beta1.PodSecurityPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodSecurityPolicy, err error) PodSecurityPolicyExpansion } @@ -166,3 +170,28 @@ func (c *podSecurityPolicies) Patch(ctx context.Context, name string, pt types.P Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied podSecurityPolicy. +func (c *podSecurityPolicies) Apply(ctx context.Context, podSecurityPolicy *policyv1beta1.PodSecurityPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PodSecurityPolicy, err error) { + if podSecurityPolicy == nil { + return nil, fmt.Errorf("podSecurityPolicy provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(podSecurityPolicy) + if err != nil { + return nil, err + } + name := podSecurityPolicy.Name + if name == nil { + return nil, fmt.Errorf("podSecurityPolicy.Name must be provided to Apply") + } + result = &v1beta1.PodSecurityPolicy{} + err = c.client.Patch(types.ApplyPatchType). + Resource("podsecuritypolicies"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go index 787324d654..000d737f0f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/rbac/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1 "k8s.io/client-go/applyconfigurations/rbac/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ClusterRoleInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.ClusterRoleList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRole, err error) + Apply(ctx context.Context, clusterRole *rbacv1.ClusterRoleApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ClusterRole, err error) ClusterRoleExpansion } @@ -166,3 +170,28 @@ func (c *clusterRoles) Patch(ctx context.Context, name string, pt types.PatchTyp Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole. +func (c *clusterRoles) Apply(ctx context.Context, clusterRole *rbacv1.ClusterRoleApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ClusterRole, err error) { + if clusterRole == nil { + return nil, fmt.Errorf("clusterRole provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(clusterRole) + if err != nil { + return nil, err + } + name := clusterRole.Name + if name == nil { + return nil, fmt.Errorf("clusterRole.Name must be provided to Apply") + } + result = &v1.ClusterRole{} + err = c.client.Patch(types.ApplyPatchType). + Resource("clusterroles"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go index 83e8c81bb2..31db43d984 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/rbac/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1 "k8s.io/client-go/applyconfigurations/rbac/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ClusterRoleBindingInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.ClusterRoleBindingList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRoleBinding, err error) + Apply(ctx context.Context, clusterRoleBinding *rbacv1.ClusterRoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ClusterRoleBinding, err error) ClusterRoleBindingExpansion } @@ -166,3 +170,28 @@ func (c *clusterRoleBindings) Patch(ctx context.Context, name string, pt types.P Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding. +func (c *clusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *rbacv1.ClusterRoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *v1.ClusterRoleBinding, err error) { + if clusterRoleBinding == nil { + return nil, fmt.Errorf("clusterRoleBinding provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(clusterRoleBinding) + if err != nil { + return nil, err + } + name := clusterRoleBinding.Name + if name == nil { + return nil, fmt.Errorf("clusterRoleBinding.Name must be provided to Apply") + } + result = &v1.ClusterRoleBinding{} + err = c.client.Patch(types.ApplyPatchType). + Resource("clusterrolebindings"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go index e7696ba27d..b4950675b3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" rbacv1 "k8s.io/api/rbac/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsrbacv1 "k8s.io/client-go/applyconfigurations/rbac/v1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeClusterRoles) Patch(ctx context.Context, name string, pt types.Patc } return obj.(*rbacv1.ClusterRole), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole. +func (c *FakeClusterRoles) Apply(ctx context.Context, clusterRole *applyconfigurationsrbacv1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1.ClusterRole, err error) { + if clusterRole == nil { + return nil, fmt.Errorf("clusterRole provided to Apply must not be nil") + } + data, err := json.Marshal(clusterRole) + if err != nil { + return nil, err + } + name := clusterRole.Name + if name == nil { + return nil, fmt.Errorf("clusterRole.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, *name, types.ApplyPatchType, data), &rbacv1.ClusterRole{}) + if obj == nil { + return nil, err + } + return obj.(*rbacv1.ClusterRole), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go index e9d19f1e09..08d30e62dc 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" rbacv1 "k8s.io/api/rbac/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsrbacv1 "k8s.io/client-go/applyconfigurations/rbac/v1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeClusterRoleBindings) Patch(ctx context.Context, name string, pt typ } return obj.(*rbacv1.ClusterRoleBinding), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding. +func (c *FakeClusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *applyconfigurationsrbacv1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1.ClusterRoleBinding, err error) { + if clusterRoleBinding == nil { + return nil, fmt.Errorf("clusterRoleBinding provided to Apply must not be nil") + } + data, err := json.Marshal(clusterRoleBinding) + if err != nil { + return nil, err + } + name := clusterRoleBinding.Name + if name == nil { + return nil, fmt.Errorf("clusterRoleBinding.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, *name, types.ApplyPatchType, data), &rbacv1.ClusterRoleBinding{}) + if obj == nil { + return nil, err + } + return obj.(*rbacv1.ClusterRoleBinding), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go index 1bc86d425d..ae724c65e8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" rbacv1 "k8s.io/api/rbac/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsrbacv1 "k8s.io/client-go/applyconfigurations/rbac/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeRoles) Patch(ctx context.Context, name string, pt types.PatchType, } return obj.(*rbacv1.Role), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied role. +func (c *FakeRoles) Apply(ctx context.Context, role *applyconfigurationsrbacv1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1.Role, err error) { + if role == nil { + return nil, fmt.Errorf("role provided to Apply must not be nil") + } + data, err := json.Marshal(role) + if err != nil { + return nil, err + } + name := role.Name + if name == nil { + return nil, fmt.Errorf("role.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, *name, types.ApplyPatchType, data), &rbacv1.Role{}) + + if obj == nil { + return nil, err + } + return obj.(*rbacv1.Role), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go index 4962aa7c8b..f47924378a 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" rbacv1 "k8s.io/api/rbac/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsrbacv1 "k8s.io/client-go/applyconfigurations/rbac/v1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeRoleBindings) Patch(ctx context.Context, name string, pt types.Patc } return obj.(*rbacv1.RoleBinding), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding. +func (c *FakeRoleBindings) Apply(ctx context.Context, roleBinding *applyconfigurationsrbacv1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1.RoleBinding, err error) { + if roleBinding == nil { + return nil, fmt.Errorf("roleBinding provided to Apply must not be nil") + } + data, err := json.Marshal(roleBinding) + if err != nil { + return nil, err + } + name := roleBinding.Name + if name == nil { + return nil, fmt.Errorf("roleBinding.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, *name, types.ApplyPatchType, data), &rbacv1.RoleBinding{}) + + if obj == nil { + return nil, err + } + return obj.(*rbacv1.RoleBinding), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go index c31e22b63e..93810a3ffa 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/rbac/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1 "k8s.io/client-go/applyconfigurations/rbac/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type RoleInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.RoleList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Role, err error) + Apply(ctx context.Context, role *rbacv1.RoleApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Role, err error) RoleExpansion } @@ -176,3 +180,29 @@ func (c *roles) Patch(ctx context.Context, name string, pt types.PatchType, data Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied role. +func (c *roles) Apply(ctx context.Context, role *rbacv1.RoleApplyConfiguration, opts metav1.ApplyOptions) (result *v1.Role, err error) { + if role == nil { + return nil, fmt.Errorf("role provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(role) + if err != nil { + return nil, err + } + name := role.Name + if name == nil { + return nil, fmt.Errorf("role.Name must be provided to Apply") + } + result = &v1.Role{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("roles"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go index 160fc16e6b..2ace938604 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/rbac/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1 "k8s.io/client-go/applyconfigurations/rbac/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type RoleBindingInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.RoleBindingList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RoleBinding, err error) + Apply(ctx context.Context, roleBinding *rbacv1.RoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *v1.RoleBinding, err error) RoleBindingExpansion } @@ -176,3 +180,29 @@ func (c *roleBindings) Patch(ctx context.Context, name string, pt types.PatchTyp Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding. +func (c *roleBindings) Apply(ctx context.Context, roleBinding *rbacv1.RoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *v1.RoleBinding, err error) { + if roleBinding == nil { + return nil, fmt.Errorf("roleBinding provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(roleBinding) + if err != nil { + return nil, err + } + name := roleBinding.Name + if name == nil { + return nil, fmt.Errorf("roleBinding.Name must be provided to Apply") + } + result = &v1.RoleBinding{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("rolebindings"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrole.go index 678d3711f3..d6d30e99ef 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrole.go @@ -20,12 +20,15 @@ package v1alpha1 import ( "context" + json "encoding/json" + "fmt" "time" v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1alpha1 "k8s.io/client-go/applyconfigurations/rbac/v1alpha1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ClusterRoleInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ClusterRoleList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterRole, err error) + Apply(ctx context.Context, clusterRole *rbacv1alpha1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRole, err error) ClusterRoleExpansion } @@ -166,3 +170,28 @@ func (c *clusterRoles) Patch(ctx context.Context, name string, pt types.PatchTyp Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole. +func (c *clusterRoles) Apply(ctx context.Context, clusterRole *rbacv1alpha1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRole, err error) { + if clusterRole == nil { + return nil, fmt.Errorf("clusterRole provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(clusterRole) + if err != nil { + return nil, err + } + name := clusterRole.Name + if name == nil { + return nil, fmt.Errorf("clusterRole.Name must be provided to Apply") + } + result = &v1alpha1.ClusterRole{} + err = c.client.Patch(types.ApplyPatchType). + Resource("clusterroles"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrolebinding.go index 7a9ca29533..2eded92ac2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrolebinding.go @@ -20,12 +20,15 @@ package v1alpha1 import ( "context" + json "encoding/json" + "fmt" "time" v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1alpha1 "k8s.io/client-go/applyconfigurations/rbac/v1alpha1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ClusterRoleBindingInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ClusterRoleBindingList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterRoleBinding, err error) + Apply(ctx context.Context, clusterRoleBinding *rbacv1alpha1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRoleBinding, err error) ClusterRoleBindingExpansion } @@ -166,3 +170,28 @@ func (c *clusterRoleBindings) Patch(ctx context.Context, name string, pt types.P Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding. +func (c *clusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *rbacv1alpha1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRoleBinding, err error) { + if clusterRoleBinding == nil { + return nil, fmt.Errorf("clusterRoleBinding provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(clusterRoleBinding) + if err != nil { + return nil, err + } + name := clusterRoleBinding.Name + if name == nil { + return nil, fmt.Errorf("clusterRoleBinding.Name must be provided to Apply") + } + result = &v1alpha1.ClusterRoleBinding{} + err = c.client.Patch(types.ApplyPatchType). + Resource("clusterrolebindings"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrole.go index 3bdccbfad6..91015097a5 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrole.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1alpha1 "k8s.io/client-go/applyconfigurations/rbac/v1alpha1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeClusterRoles) Patch(ctx context.Context, name string, pt types.Patc } return obj.(*v1alpha1.ClusterRole), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole. +func (c *FakeClusterRoles) Apply(ctx context.Context, clusterRole *rbacv1alpha1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRole, err error) { + if clusterRole == nil { + return nil, fmt.Errorf("clusterRole provided to Apply must not be nil") + } + data, err := json.Marshal(clusterRole) + if err != nil { + return nil, err + } + name := clusterRole.Name + if name == nil { + return nil, fmt.Errorf("clusterRole.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, *name, types.ApplyPatchType, data), &v1alpha1.ClusterRole{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.ClusterRole), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrolebinding.go index 6557f73b0c..4c7b77215f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrolebinding.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1alpha1 "k8s.io/client-go/applyconfigurations/rbac/v1alpha1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeClusterRoleBindings) Patch(ctx context.Context, name string, pt typ } return obj.(*v1alpha1.ClusterRoleBinding), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding. +func (c *FakeClusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *rbacv1alpha1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterRoleBinding, err error) { + if clusterRoleBinding == nil { + return nil, fmt.Errorf("clusterRoleBinding provided to Apply must not be nil") + } + data, err := json.Marshal(clusterRoleBinding) + if err != nil { + return nil, err + } + name := clusterRoleBinding.Name + if name == nil { + return nil, fmt.Errorf("clusterRoleBinding.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, *name, types.ApplyPatchType, data), &v1alpha1.ClusterRoleBinding{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.ClusterRoleBinding), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_role.go index 8a7f2fea25..5e72ab7f17 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_role.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1alpha1 "k8s.io/client-go/applyconfigurations/rbac/v1alpha1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeRoles) Patch(ctx context.Context, name string, pt types.PatchType, } return obj.(*v1alpha1.Role), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied role. +func (c *FakeRoles) Apply(ctx context.Context, role *rbacv1alpha1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Role, err error) { + if role == nil { + return nil, fmt.Errorf("role provided to Apply must not be nil") + } + data, err := json.Marshal(role) + if err != nil { + return nil, err + } + name := role.Name + if name == nil { + return nil, fmt.Errorf("role.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha1.Role{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.Role), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rolebinding.go index 744ce03155..65250f7eb9 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rolebinding.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1alpha1 "k8s.io/client-go/applyconfigurations/rbac/v1alpha1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeRoleBindings) Patch(ctx context.Context, name string, pt types.Patc } return obj.(*v1alpha1.RoleBinding), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding. +func (c *FakeRoleBindings) Apply(ctx context.Context, roleBinding *rbacv1alpha1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RoleBinding, err error) { + if roleBinding == nil { + return nil, fmt.Errorf("roleBinding provided to Apply must not be nil") + } + data, err := json.Marshal(roleBinding) + if err != nil { + return nil, err + } + name := roleBinding.Name + if name == nil { + return nil, fmt.Errorf("roleBinding.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha1.RoleBinding{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.RoleBinding), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/role.go index 56ec6e373d..43c16fde74 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/role.go @@ -20,12 +20,15 @@ package v1alpha1 import ( "context" + json "encoding/json" + "fmt" "time" v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1alpha1 "k8s.io/client-go/applyconfigurations/rbac/v1alpha1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type RoleInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.RoleList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Role, err error) + Apply(ctx context.Context, role *rbacv1alpha1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Role, err error) RoleExpansion } @@ -176,3 +180,29 @@ func (c *roles) Patch(ctx context.Context, name string, pt types.PatchType, data Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied role. +func (c *roles) Apply(ctx context.Context, role *rbacv1alpha1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Role, err error) { + if role == nil { + return nil, fmt.Errorf("role provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(role) + if err != nil { + return nil, err + } + name := role.Name + if name == nil { + return nil, fmt.Errorf("role.Name must be provided to Apply") + } + result = &v1alpha1.Role{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("roles"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rolebinding.go index b4b1df5dc3..3129c9b4e8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rolebinding.go @@ -20,12 +20,15 @@ package v1alpha1 import ( "context" + json "encoding/json" + "fmt" "time" v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1alpha1 "k8s.io/client-go/applyconfigurations/rbac/v1alpha1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type RoleBindingInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.RoleBindingList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.RoleBinding, err error) + Apply(ctx context.Context, roleBinding *rbacv1alpha1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RoleBinding, err error) RoleBindingExpansion } @@ -176,3 +180,29 @@ func (c *roleBindings) Patch(ctx context.Context, name string, pt types.PatchTyp Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding. +func (c *roleBindings) Apply(ctx context.Context, roleBinding *rbacv1alpha1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.RoleBinding, err error) { + if roleBinding == nil { + return nil, fmt.Errorf("roleBinding provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(roleBinding) + if err != nil { + return nil, err + } + name := roleBinding.Name + if name == nil { + return nil, fmt.Errorf("roleBinding.Name must be provided to Apply") + } + result = &v1alpha1.RoleBinding{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("rolebindings"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrole.go index 4db46666ab..a3d67f0315 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrole.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1beta1 "k8s.io/client-go/applyconfigurations/rbac/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ClusterRoleInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.ClusterRoleList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ClusterRole, err error) + Apply(ctx context.Context, clusterRole *rbacv1beta1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRole, err error) ClusterRoleExpansion } @@ -166,3 +170,28 @@ func (c *clusterRoles) Patch(ctx context.Context, name string, pt types.PatchTyp Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole. +func (c *clusterRoles) Apply(ctx context.Context, clusterRole *rbacv1beta1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRole, err error) { + if clusterRole == nil { + return nil, fmt.Errorf("clusterRole provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(clusterRole) + if err != nil { + return nil, err + } + name := clusterRole.Name + if name == nil { + return nil, fmt.Errorf("clusterRole.Name must be provided to Apply") + } + result = &v1beta1.ClusterRole{} + err = c.client.Patch(types.ApplyPatchType). + Resource("clusterroles"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrolebinding.go index f45777c232..ae39cbb9ae 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrolebinding.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1beta1 "k8s.io/client-go/applyconfigurations/rbac/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type ClusterRoleBindingInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.ClusterRoleBindingList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.ClusterRoleBinding, err error) + Apply(ctx context.Context, clusterRoleBinding *rbacv1beta1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRoleBinding, err error) ClusterRoleBindingExpansion } @@ -166,3 +170,28 @@ func (c *clusterRoleBindings) Patch(ctx context.Context, name string, pt types.P Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding. +func (c *clusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *rbacv1beta1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRoleBinding, err error) { + if clusterRoleBinding == nil { + return nil, fmt.Errorf("clusterRoleBinding provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(clusterRoleBinding) + if err != nil { + return nil, err + } + name := clusterRoleBinding.Name + if name == nil { + return nil, fmt.Errorf("clusterRoleBinding.Name must be provided to Apply") + } + result = &v1beta1.ClusterRoleBinding{} + err = c.client.Patch(types.ApplyPatchType). + Resource("clusterrolebindings"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrole.go index 38fdc83f8b..e8a2ad3527 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrole.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1beta1 "k8s.io/client-go/applyconfigurations/rbac/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeClusterRoles) Patch(ctx context.Context, name string, pt types.Patc } return obj.(*v1beta1.ClusterRole), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRole. +func (c *FakeClusterRoles) Apply(ctx context.Context, clusterRole *rbacv1beta1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRole, err error) { + if clusterRole == nil { + return nil, fmt.Errorf("clusterRole provided to Apply must not be nil") + } + data, err := json.Marshal(clusterRole) + if err != nil { + return nil, err + } + name := clusterRole.Name + if name == nil { + return nil, fmt.Errorf("clusterRole.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, *name, types.ApplyPatchType, data), &v1beta1.ClusterRole{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.ClusterRole), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrolebinding.go index a47c011b5b..6695b1c4e2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrolebinding.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1beta1 "k8s.io/client-go/applyconfigurations/rbac/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeClusterRoleBindings) Patch(ctx context.Context, name string, pt typ } return obj.(*v1beta1.ClusterRoleBinding), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied clusterRoleBinding. +func (c *FakeClusterRoleBindings) Apply(ctx context.Context, clusterRoleBinding *rbacv1beta1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.ClusterRoleBinding, err error) { + if clusterRoleBinding == nil { + return nil, fmt.Errorf("clusterRoleBinding provided to Apply must not be nil") + } + data, err := json.Marshal(clusterRoleBinding) + if err != nil { + return nil, err + } + name := clusterRoleBinding.Name + if name == nil { + return nil, fmt.Errorf("clusterRoleBinding.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, *name, types.ApplyPatchType, data), &v1beta1.ClusterRoleBinding{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.ClusterRoleBinding), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_role.go index dad8915d07..b73fc56c2a 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_role.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1beta1 "k8s.io/client-go/applyconfigurations/rbac/v1beta1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeRoles) Patch(ctx context.Context, name string, pt types.PatchType, } return obj.(*v1beta1.Role), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied role. +func (c *FakeRoles) Apply(ctx context.Context, role *rbacv1beta1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Role, err error) { + if role == nil { + return nil, fmt.Errorf("role provided to Apply must not be nil") + } + data, err := json.Marshal(role) + if err != nil { + return nil, err + } + name := role.Name + if name == nil { + return nil, fmt.Errorf("role.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.Role{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Role), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rolebinding.go index 1d7456b18b..2e3f6ab7f7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rolebinding.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1beta1 "k8s.io/client-go/applyconfigurations/rbac/v1beta1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeRoleBindings) Patch(ctx context.Context, name string, pt types.Patc } return obj.(*v1beta1.RoleBinding), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding. +func (c *FakeRoleBindings) Apply(ctx context.Context, roleBinding *rbacv1beta1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RoleBinding, err error) { + if roleBinding == nil { + return nil, fmt.Errorf("roleBinding provided to Apply must not be nil") + } + data, err := json.Marshal(roleBinding) + if err != nil { + return nil, err + } + name := roleBinding.Name + if name == nil { + return nil, fmt.Errorf("roleBinding.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.RoleBinding{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.RoleBinding), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/role.go index c172e7f671..e789e42fe7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/role.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1beta1 "k8s.io/client-go/applyconfigurations/rbac/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type RoleInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.RoleList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Role, err error) + Apply(ctx context.Context, role *rbacv1beta1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Role, err error) RoleExpansion } @@ -176,3 +180,29 @@ func (c *roles) Patch(ctx context.Context, name string, pt types.PatchType, data Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied role. +func (c *roles) Apply(ctx context.Context, role *rbacv1beta1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Role, err error) { + if role == nil { + return nil, fmt.Errorf("role provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(role) + if err != nil { + return nil, err + } + name := role.Name + if name == nil { + return nil, fmt.Errorf("role.Name must be provided to Apply") + } + result = &v1beta1.Role{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("roles"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rolebinding.go index f37bfb7441..1461ba3b6e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rolebinding.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + rbacv1beta1 "k8s.io/client-go/applyconfigurations/rbac/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type RoleBindingInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.RoleBindingList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.RoleBinding, err error) + Apply(ctx context.Context, roleBinding *rbacv1beta1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RoleBinding, err error) RoleBindingExpansion } @@ -176,3 +180,29 @@ func (c *roleBindings) Patch(ctx context.Context, name string, pt types.PatchTyp Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied roleBinding. +func (c *roleBindings) Apply(ctx context.Context, roleBinding *rbacv1beta1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.RoleBinding, err error) { + if roleBinding == nil { + return nil, fmt.Errorf("roleBinding provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(roleBinding) + if err != nil { + return nil, err + } + name := roleBinding.Name + if name == nil { + return nil, fmt.Errorf("roleBinding.Name must be provided to Apply") + } + result = &v1beta1.RoleBinding{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("rolebindings"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/fake/fake_priorityclass.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/fake/fake_priorityclass.go index df095d87d1..bc1819c27a 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/fake/fake_priorityclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/fake/fake_priorityclass.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" schedulingv1 "k8s.io/api/scheduling/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsschedulingv1 "k8s.io/client-go/applyconfigurations/scheduling/v1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakePriorityClasses) Patch(ctx context.Context, name string, pt types.P } return obj.(*schedulingv1.PriorityClass), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass. +func (c *FakePriorityClasses) Apply(ctx context.Context, priorityClass *applyconfigurationsschedulingv1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *schedulingv1.PriorityClass, err error) { + if priorityClass == nil { + return nil, fmt.Errorf("priorityClass provided to Apply must not be nil") + } + data, err := json.Marshal(priorityClass) + if err != nil { + return nil, err + } + name := priorityClass.Name + if name == nil { + return nil, fmt.Errorf("priorityClass.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, *name, types.ApplyPatchType, data), &schedulingv1.PriorityClass{}) + if obj == nil { + return nil, err + } + return obj.(*schedulingv1.PriorityClass), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/priorityclass.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/priorityclass.go index 06185d5fb6..c68ec5da41 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/priorityclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/priorityclass.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/scheduling/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + schedulingv1 "k8s.io/client-go/applyconfigurations/scheduling/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type PriorityClassInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.PriorityClassList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PriorityClass, err error) + Apply(ctx context.Context, priorityClass *schedulingv1.PriorityClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PriorityClass, err error) PriorityClassExpansion } @@ -166,3 +170,28 @@ func (c *priorityClasses) Patch(ctx context.Context, name string, pt types.Patch Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass. +func (c *priorityClasses) Apply(ctx context.Context, priorityClass *schedulingv1.PriorityClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.PriorityClass, err error) { + if priorityClass == nil { + return nil, fmt.Errorf("priorityClass provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(priorityClass) + if err != nil { + return nil, err + } + name := priorityClass.Name + if name == nil { + return nil, fmt.Errorf("priorityClass.Name must be provided to Apply") + } + result = &v1.PriorityClass{} + err = c.client.Patch(types.ApplyPatchType). + Resource("priorityclasses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_priorityclass.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_priorityclass.go index 0f246c032d..c8090f06c5 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_priorityclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_priorityclass.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1alpha1 "k8s.io/api/scheduling/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + schedulingv1alpha1 "k8s.io/client-go/applyconfigurations/scheduling/v1alpha1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakePriorityClasses) Patch(ctx context.Context, name string, pt types.P } return obj.(*v1alpha1.PriorityClass), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass. +func (c *FakePriorityClasses) Apply(ctx context.Context, priorityClass *schedulingv1alpha1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityClass, err error) { + if priorityClass == nil { + return nil, fmt.Errorf("priorityClass provided to Apply must not be nil") + } + data, err := json.Marshal(priorityClass) + if err != nil { + return nil, err + } + name := priorityClass.Name + if name == nil { + return nil, fmt.Errorf("priorityClass.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, *name, types.ApplyPatchType, data), &v1alpha1.PriorityClass{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.PriorityClass), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/priorityclass.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/priorityclass.go index ae9875e9a0..a9b8c19c78 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/priorityclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/priorityclass.go @@ -20,12 +20,15 @@ package v1alpha1 import ( "context" + json "encoding/json" + "fmt" "time" v1alpha1 "k8s.io/api/scheduling/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + schedulingv1alpha1 "k8s.io/client-go/applyconfigurations/scheduling/v1alpha1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type PriorityClassInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.PriorityClassList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.PriorityClass, err error) + Apply(ctx context.Context, priorityClass *schedulingv1alpha1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityClass, err error) PriorityClassExpansion } @@ -166,3 +170,28 @@ func (c *priorityClasses) Patch(ctx context.Context, name string, pt types.Patch Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass. +func (c *priorityClasses) Apply(ctx context.Context, priorityClass *schedulingv1alpha1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.PriorityClass, err error) { + if priorityClass == nil { + return nil, fmt.Errorf("priorityClass provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(priorityClass) + if err != nil { + return nil, err + } + name := priorityClass.Name + if name == nil { + return nil, fmt.Errorf("priorityClass.Name must be provided to Apply") + } + result = &v1alpha1.PriorityClass{} + err = c.client.Patch(types.ApplyPatchType). + Resource("priorityclasses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_priorityclass.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_priorityclass.go index 256590177c..ae415da0fd 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_priorityclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_priorityclass.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/scheduling/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + schedulingv1beta1 "k8s.io/client-go/applyconfigurations/scheduling/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakePriorityClasses) Patch(ctx context.Context, name string, pt types.P } return obj.(*v1beta1.PriorityClass), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass. +func (c *FakePriorityClasses) Apply(ctx context.Context, priorityClass *schedulingv1beta1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityClass, err error) { + if priorityClass == nil { + return nil, fmt.Errorf("priorityClass provided to Apply must not be nil") + } + data, err := json.Marshal(priorityClass) + if err != nil { + return nil, err + } + name := priorityClass.Name + if name == nil { + return nil, fmt.Errorf("priorityClass.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, *name, types.ApplyPatchType, data), &v1beta1.PriorityClass{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.PriorityClass), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/priorityclass.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/priorityclass.go index 70ed597bb4..155476e4c7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/priorityclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/priorityclass.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/scheduling/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + schedulingv1beta1 "k8s.io/client-go/applyconfigurations/scheduling/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type PriorityClassInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.PriorityClassList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.PriorityClass, err error) + Apply(ctx context.Context, priorityClass *schedulingv1beta1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityClass, err error) PriorityClassExpansion } @@ -166,3 +170,28 @@ func (c *priorityClasses) Patch(ctx context.Context, name string, pt types.Patch Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied priorityClass. +func (c *priorityClasses) Apply(ctx context.Context, priorityClass *schedulingv1beta1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.PriorityClass, err error) { + if priorityClass == nil { + return nil, fmt.Errorf("priorityClass provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(priorityClass) + if err != nil { + return nil, err + } + name := priorityClass.Name + if name == nil { + return nil, fmt.Errorf("priorityClass.Name must be provided to Apply") + } + result = &v1beta1.PriorityClass{} + err = c.client.Patch(types.ApplyPatchType). + Resource("priorityclasses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csidriver.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csidriver.go index 92e82251d5..d9dc4151e2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csidriver.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csidriver.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/storage/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1 "k8s.io/client-go/applyconfigurations/storage/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type CSIDriverInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.CSIDriverList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CSIDriver, err error) + Apply(ctx context.Context, cSIDriver *storagev1.CSIDriverApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSIDriver, err error) CSIDriverExpansion } @@ -166,3 +170,28 @@ func (c *cSIDrivers) Patch(ctx context.Context, name string, pt types.PatchType, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSIDriver. +func (c *cSIDrivers) Apply(ctx context.Context, cSIDriver *storagev1.CSIDriverApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSIDriver, err error) { + if cSIDriver == nil { + return nil, fmt.Errorf("cSIDriver provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(cSIDriver) + if err != nil { + return nil, err + } + name := cSIDriver.Name + if name == nil { + return nil, fmt.Errorf("cSIDriver.Name must be provided to Apply") + } + result = &v1.CSIDriver{} + err = c.client.Patch(types.ApplyPatchType). + Resource("csidrivers"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csinode.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csinode.go index f8ba245447..17dbc8c1c8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csinode.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csinode.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/storage/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1 "k8s.io/client-go/applyconfigurations/storage/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type CSINodeInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.CSINodeList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CSINode, err error) + Apply(ctx context.Context, cSINode *storagev1.CSINodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSINode, err error) CSINodeExpansion } @@ -166,3 +170,28 @@ func (c *cSINodes) Patch(ctx context.Context, name string, pt types.PatchType, d Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSINode. +func (c *cSINodes) Apply(ctx context.Context, cSINode *storagev1.CSINodeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.CSINode, err error) { + if cSINode == nil { + return nil, fmt.Errorf("cSINode provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(cSINode) + if err != nil { + return nil, err + } + name := cSINode.Name + if name == nil { + return nil, fmt.Errorf("cSINode.Name must be provided to Apply") + } + result = &v1.CSINode{} + err = c.client.Patch(types.ApplyPatchType). + Resource("csinodes"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csidriver.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csidriver.go index d3b682c639..b001aaa94d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csidriver.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csidriver.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" storagev1 "k8s.io/api/storage/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsstoragev1 "k8s.io/client-go/applyconfigurations/storage/v1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeCSIDrivers) Patch(ctx context.Context, name string, pt types.PatchT } return obj.(*storagev1.CSIDriver), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSIDriver. +func (c *FakeCSIDrivers) Apply(ctx context.Context, cSIDriver *applyconfigurationsstoragev1.CSIDriverApplyConfiguration, opts v1.ApplyOptions) (result *storagev1.CSIDriver, err error) { + if cSIDriver == nil { + return nil, fmt.Errorf("cSIDriver provided to Apply must not be nil") + } + data, err := json.Marshal(cSIDriver) + if err != nil { + return nil, err + } + name := cSIDriver.Name + if name == nil { + return nil, fmt.Errorf("cSIDriver.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(csidriversResource, *name, types.ApplyPatchType, data), &storagev1.CSIDriver{}) + if obj == nil { + return nil, err + } + return obj.(*storagev1.CSIDriver), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csinode.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csinode.go index 46662d20a3..7089d5362c 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csinode.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csinode.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" storagev1 "k8s.io/api/storage/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsstoragev1 "k8s.io/client-go/applyconfigurations/storage/v1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeCSINodes) Patch(ctx context.Context, name string, pt types.PatchTyp } return obj.(*storagev1.CSINode), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSINode. +func (c *FakeCSINodes) Apply(ctx context.Context, cSINode *applyconfigurationsstoragev1.CSINodeApplyConfiguration, opts v1.ApplyOptions) (result *storagev1.CSINode, err error) { + if cSINode == nil { + return nil, fmt.Errorf("cSINode provided to Apply must not be nil") + } + data, err := json.Marshal(cSINode) + if err != nil { + return nil, err + } + name := cSINode.Name + if name == nil { + return nil, fmt.Errorf("cSINode.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(csinodesResource, *name, types.ApplyPatchType, data), &storagev1.CSINode{}) + if obj == nil { + return nil, err + } + return obj.(*storagev1.CSINode), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storageclass.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storageclass.go index dbd38c7653..4b175356bb 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storageclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storageclass.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" storagev1 "k8s.io/api/storage/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsstoragev1 "k8s.io/client-go/applyconfigurations/storage/v1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeStorageClasses) Patch(ctx context.Context, name string, pt types.Pa } return obj.(*storagev1.StorageClass), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied storageClass. +func (c *FakeStorageClasses) Apply(ctx context.Context, storageClass *applyconfigurationsstoragev1.StorageClassApplyConfiguration, opts v1.ApplyOptions) (result *storagev1.StorageClass, err error) { + if storageClass == nil { + return nil, fmt.Errorf("storageClass provided to Apply must not be nil") + } + data, err := json.Marshal(storageClass) + if err != nil { + return nil, err + } + name := storageClass.Name + if name == nil { + return nil, fmt.Errorf("storageClass.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(storageclassesResource, *name, types.ApplyPatchType, data), &storagev1.StorageClass{}) + if obj == nil { + return nil, err + } + return obj.(*storagev1.StorageClass), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_volumeattachment.go index 72a3238f97..63f53fd524 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_volumeattachment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_volumeattachment.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" storagev1 "k8s.io/api/storage/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + applyconfigurationsstoragev1 "k8s.io/client-go/applyconfigurations/storage/v1" testing "k8s.io/client-go/testing" ) @@ -131,3 +134,46 @@ func (c *FakeVolumeAttachments) Patch(ctx context.Context, name string, pt types } return obj.(*storagev1.VolumeAttachment), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment. +func (c *FakeVolumeAttachments) Apply(ctx context.Context, volumeAttachment *applyconfigurationsstoragev1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *storagev1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data), &storagev1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storagev1.VolumeAttachment), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeVolumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *applyconfigurationsstoragev1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *storagev1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data, "status"), &storagev1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storagev1.VolumeAttachment), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storageclass.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storageclass.go index 046ec3a1b9..8e97d90a0f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storageclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storageclass.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/storage/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1 "k8s.io/client-go/applyconfigurations/storage/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type StorageClassInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.StorageClassList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.StorageClass, err error) + Apply(ctx context.Context, storageClass *storagev1.StorageClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StorageClass, err error) StorageClassExpansion } @@ -166,3 +170,28 @@ func (c *storageClasses) Patch(ctx context.Context, name string, pt types.PatchT Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied storageClass. +func (c *storageClasses) Apply(ctx context.Context, storageClass *storagev1.StorageClassApplyConfiguration, opts metav1.ApplyOptions) (result *v1.StorageClass, err error) { + if storageClass == nil { + return nil, fmt.Errorf("storageClass provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(storageClass) + if err != nil { + return nil, err + } + name := storageClass.Name + if name == nil { + return nil, fmt.Errorf("storageClass.Name must be provided to Apply") + } + result = &v1.StorageClass{} + err = c.client.Patch(types.ApplyPatchType). + Resource("storageclasses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/volumeattachment.go index e4162975fc..c1dbec84f4 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/volumeattachment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/volumeattachment.go @@ -20,12 +20,15 @@ package v1 import ( "context" + json "encoding/json" + "fmt" "time" v1 "k8s.io/api/storage/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1 "k8s.io/client-go/applyconfigurations/storage/v1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type VolumeAttachmentInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.VolumeAttachmentList, error) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.VolumeAttachment, err error) + Apply(ctx context.Context, volumeAttachment *storagev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.VolumeAttachment, err error) + ApplyStatus(ctx context.Context, volumeAttachment *storagev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.VolumeAttachment, err error) VolumeAttachmentExpansion } @@ -182,3 +187,57 @@ func (c *volumeAttachments) Patch(ctx context.Context, name string, pt types.Pat Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment. +func (c *volumeAttachments) Apply(ctx context.Context, volumeAttachment *storagev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + result = &v1.VolumeAttachment{} + err = c.client.Patch(types.ApplyPatchType). + Resource("volumeattachments"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *volumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *storagev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *v1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + + result = &v1.VolumeAttachment{} + err = c.client.Patch(types.ApplyPatchType). + Resource("volumeattachments"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/csistoragecapacity.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/csistoragecapacity.go index 876348112a..bf5d64dddc 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/csistoragecapacity.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/csistoragecapacity.go @@ -20,12 +20,15 @@ package v1alpha1 import ( "context" + json "encoding/json" + "fmt" "time" v1alpha1 "k8s.io/api/storage/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1alpha1 "k8s.io/client-go/applyconfigurations/storage/v1alpha1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type CSIStorageCapacityInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.CSIStorageCapacityList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.CSIStorageCapacity, err error) + Apply(ctx context.Context, cSIStorageCapacity *storagev1alpha1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.CSIStorageCapacity, err error) CSIStorageCapacityExpansion } @@ -176,3 +180,29 @@ func (c *cSIStorageCapacities) Patch(ctx context.Context, name string, pt types. Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSIStorageCapacity. +func (c *cSIStorageCapacities) Apply(ctx context.Context, cSIStorageCapacity *storagev1alpha1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.CSIStorageCapacity, err error) { + if cSIStorageCapacity == nil { + return nil, fmt.Errorf("cSIStorageCapacity provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(cSIStorageCapacity) + if err != nil { + return nil, err + } + name := cSIStorageCapacity.Name + if name == nil { + return nil, fmt.Errorf("cSIStorageCapacity.Name must be provided to Apply") + } + result = &v1alpha1.CSIStorageCapacity{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("csistoragecapacities"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_csistoragecapacity.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_csistoragecapacity.go index 5bca3e209c..004f584493 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_csistoragecapacity.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_csistoragecapacity.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1alpha1 "k8s.io/api/storage/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1alpha1 "k8s.io/client-go/applyconfigurations/storage/v1alpha1" testing "k8s.io/client-go/testing" ) @@ -128,3 +131,25 @@ func (c *FakeCSIStorageCapacities) Patch(ctx context.Context, name string, pt ty } return obj.(*v1alpha1.CSIStorageCapacity), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSIStorageCapacity. +func (c *FakeCSIStorageCapacities) Apply(ctx context.Context, cSIStorageCapacity *storagev1alpha1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.CSIStorageCapacity, err error) { + if cSIStorageCapacity == nil { + return nil, fmt.Errorf("cSIStorageCapacity provided to Apply must not be nil") + } + data, err := json.Marshal(cSIStorageCapacity) + if err != nil { + return nil, err + } + name := cSIStorageCapacity.Name + if name == nil { + return nil, fmt.Errorf("cSIStorageCapacity.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(csistoragecapacitiesResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha1.CSIStorageCapacity{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.CSIStorageCapacity), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go index a3140e7217..a9a8d76fb0 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1alpha1 "k8s.io/api/storage/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1alpha1 "k8s.io/client-go/applyconfigurations/storage/v1alpha1" testing "k8s.io/client-go/testing" ) @@ -131,3 +134,46 @@ func (c *FakeVolumeAttachments) Patch(ctx context.Context, name string, pt types } return obj.(*v1alpha1.VolumeAttachment), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment. +func (c *FakeVolumeAttachments) Apply(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data), &v1alpha1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.VolumeAttachment), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeVolumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data, "status"), &v1alpha1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.VolumeAttachment), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go index 9012fde99d..58abb748f9 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go @@ -20,12 +20,15 @@ package v1alpha1 import ( "context" + json "encoding/json" + "fmt" "time" v1alpha1 "k8s.io/api/storage/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1alpha1 "k8s.io/client-go/applyconfigurations/storage/v1alpha1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type VolumeAttachmentInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.VolumeAttachmentList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.VolumeAttachment, err error) + Apply(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error) + ApplyStatus(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error) VolumeAttachmentExpansion } @@ -182,3 +187,57 @@ func (c *volumeAttachments) Patch(ctx context.Context, name string, pt types.Pat Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment. +func (c *volumeAttachments) Apply(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + result = &v1alpha1.VolumeAttachment{} + err = c.client.Patch(types.ApplyPatchType). + Resource("volumeattachments"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *volumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + + result = &v1alpha1.VolumeAttachment{} + err = c.client.Patch(types.ApplyPatchType). + Resource("volumeattachments"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csidriver.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csidriver.go index 2ad2630420..04e677db05 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csidriver.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csidriver.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1beta1 "k8s.io/client-go/applyconfigurations/storage/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type CSIDriverInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.CSIDriverList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSIDriver, err error) + Apply(ctx context.Context, cSIDriver *storagev1beta1.CSIDriverApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIDriver, err error) CSIDriverExpansion } @@ -166,3 +170,28 @@ func (c *cSIDrivers) Patch(ctx context.Context, name string, pt types.PatchType, Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSIDriver. +func (c *cSIDrivers) Apply(ctx context.Context, cSIDriver *storagev1beta1.CSIDriverApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIDriver, err error) { + if cSIDriver == nil { + return nil, fmt.Errorf("cSIDriver provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(cSIDriver) + if err != nil { + return nil, err + } + name := cSIDriver.Name + if name == nil { + return nil, fmt.Errorf("cSIDriver.Name must be provided to Apply") + } + result = &v1beta1.CSIDriver{} + err = c.client.Patch(types.ApplyPatchType). + Resource("csidrivers"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csinode.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csinode.go index babb89aba6..c3760b5ce5 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csinode.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csinode.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1beta1 "k8s.io/client-go/applyconfigurations/storage/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type CSINodeInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.CSINodeList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSINode, err error) + Apply(ctx context.Context, cSINode *storagev1beta1.CSINodeApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSINode, err error) CSINodeExpansion } @@ -166,3 +170,28 @@ func (c *cSINodes) Patch(ctx context.Context, name string, pt types.PatchType, d Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSINode. +func (c *cSINodes) Apply(ctx context.Context, cSINode *storagev1beta1.CSINodeApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSINode, err error) { + if cSINode == nil { + return nil, fmt.Errorf("cSINode provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(cSINode) + if err != nil { + return nil, err + } + name := cSINode.Name + if name == nil { + return nil, fmt.Errorf("cSINode.Name must be provided to Apply") + } + result = &v1beta1.CSINode{} + err = c.client.Patch(types.ApplyPatchType). + Resource("csinodes"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csistoragecapacity.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csistoragecapacity.go new file mode 100644 index 0000000000..98ba936dc4 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csistoragecapacity.go @@ -0,0 +1,208 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +import ( + "context" + json "encoding/json" + "fmt" + "time" + + v1beta1 "k8s.io/api/storage/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + storagev1beta1 "k8s.io/client-go/applyconfigurations/storage/v1beta1" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// CSIStorageCapacitiesGetter has a method to return a CSIStorageCapacityInterface. +// A group's client should implement this interface. +type CSIStorageCapacitiesGetter interface { + CSIStorageCapacities(namespace string) CSIStorageCapacityInterface +} + +// CSIStorageCapacityInterface has methods to work with CSIStorageCapacity resources. +type CSIStorageCapacityInterface interface { + Create(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.CreateOptions) (*v1beta1.CSIStorageCapacity, error) + Update(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.UpdateOptions) (*v1beta1.CSIStorageCapacity, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.CSIStorageCapacity, error) + List(ctx context.Context, opts v1.ListOptions) (*v1beta1.CSIStorageCapacityList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSIStorageCapacity, err error) + Apply(ctx context.Context, cSIStorageCapacity *storagev1beta1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIStorageCapacity, err error) + CSIStorageCapacityExpansion +} + +// cSIStorageCapacities implements CSIStorageCapacityInterface +type cSIStorageCapacities struct { + client rest.Interface + ns string +} + +// newCSIStorageCapacities returns a CSIStorageCapacities +func newCSIStorageCapacities(c *StorageV1beta1Client, namespace string) *cSIStorageCapacities { + return &cSIStorageCapacities{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the cSIStorageCapacity, and returns the corresponding cSIStorageCapacity object, and an error if there is any. +func (c *cSIStorageCapacities) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CSIStorageCapacity, err error) { + result = &v1beta1.CSIStorageCapacity{} + err = c.client.Get(). + Namespace(c.ns). + Resource("csistoragecapacities"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of CSIStorageCapacities that match those selectors. +func (c *cSIStorageCapacities) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CSIStorageCapacityList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1beta1.CSIStorageCapacityList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("csistoragecapacities"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested cSIStorageCapacities. +func (c *cSIStorageCapacities) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("csistoragecapacities"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a cSIStorageCapacity and creates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any. +func (c *cSIStorageCapacities) Create(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.CreateOptions) (result *v1beta1.CSIStorageCapacity, err error) { + result = &v1beta1.CSIStorageCapacity{} + err = c.client.Post(). + Namespace(c.ns). + Resource("csistoragecapacities"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(cSIStorageCapacity). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a cSIStorageCapacity and updates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any. +func (c *cSIStorageCapacities) Update(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.UpdateOptions) (result *v1beta1.CSIStorageCapacity, err error) { + result = &v1beta1.CSIStorageCapacity{} + err = c.client.Put(). + Namespace(c.ns). + Resource("csistoragecapacities"). + Name(cSIStorageCapacity.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(cSIStorageCapacity). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the cSIStorageCapacity and deletes it. Returns an error if one occurs. +func (c *cSIStorageCapacities) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("csistoragecapacities"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *cSIStorageCapacities) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("csistoragecapacities"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched cSIStorageCapacity. +func (c *cSIStorageCapacities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSIStorageCapacity, err error) { + result = &v1beta1.CSIStorageCapacity{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("csistoragecapacities"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSIStorageCapacity. +func (c *cSIStorageCapacities) Apply(ctx context.Context, cSIStorageCapacity *storagev1beta1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIStorageCapacity, err error) { + if cSIStorageCapacity == nil { + return nil, fmt.Errorf("cSIStorageCapacity provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(cSIStorageCapacity) + if err != nil { + return nil, err + } + name := cSIStorageCapacity.Name + if name == nil { + return nil, fmt.Errorf("cSIStorageCapacity.Name must be provided to Apply") + } + result = &v1beta1.CSIStorageCapacity{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("csistoragecapacities"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csidriver.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csidriver.go index 35b2449ee5..d4482f39ee 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csidriver.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csidriver.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1beta1 "k8s.io/client-go/applyconfigurations/storage/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeCSIDrivers) Patch(ctx context.Context, name string, pt types.PatchT } return obj.(*v1beta1.CSIDriver), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSIDriver. +func (c *FakeCSIDrivers) Apply(ctx context.Context, cSIDriver *storagev1beta1.CSIDriverApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIDriver, err error) { + if cSIDriver == nil { + return nil, fmt.Errorf("cSIDriver provided to Apply must not be nil") + } + data, err := json.Marshal(cSIDriver) + if err != nil { + return nil, err + } + name := cSIDriver.Name + if name == nil { + return nil, fmt.Errorf("cSIDriver.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(csidriversResource, *name, types.ApplyPatchType, data), &v1beta1.CSIDriver{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.CSIDriver), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csinode.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csinode.go index 81e5bc6d92..1bee83d70c 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csinode.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csinode.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1beta1 "k8s.io/client-go/applyconfigurations/storage/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeCSINodes) Patch(ctx context.Context, name string, pt types.PatchTyp } return obj.(*v1beta1.CSINode), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSINode. +func (c *FakeCSINodes) Apply(ctx context.Context, cSINode *storagev1beta1.CSINodeApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSINode, err error) { + if cSINode == nil { + return nil, fmt.Errorf("cSINode provided to Apply must not be nil") + } + data, err := json.Marshal(cSINode) + if err != nil { + return nil, err + } + name := cSINode.Name + if name == nil { + return nil, fmt.Errorf("cSINode.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(csinodesResource, *name, types.ApplyPatchType, data), &v1beta1.CSINode{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.CSINode), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csistoragecapacity.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csistoragecapacity.go new file mode 100644 index 0000000000..e216b9905e --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csistoragecapacity.go @@ -0,0 +1,155 @@ +/* +Copyright 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + "context" + json "encoding/json" + "fmt" + + v1beta1 "k8s.io/api/storage/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + storagev1beta1 "k8s.io/client-go/applyconfigurations/storage/v1beta1" + testing "k8s.io/client-go/testing" +) + +// FakeCSIStorageCapacities implements CSIStorageCapacityInterface +type FakeCSIStorageCapacities struct { + Fake *FakeStorageV1beta1 + ns string +} + +var csistoragecapacitiesResource = schema.GroupVersionResource{Group: "storage.k8s.io", Version: "v1beta1", Resource: "csistoragecapacities"} + +var csistoragecapacitiesKind = schema.GroupVersionKind{Group: "storage.k8s.io", Version: "v1beta1", Kind: "CSIStorageCapacity"} + +// Get takes name of the cSIStorageCapacity, and returns the corresponding cSIStorageCapacity object, and an error if there is any. +func (c *FakeCSIStorageCapacities) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1beta1.CSIStorageCapacity, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(csistoragecapacitiesResource, c.ns, name), &v1beta1.CSIStorageCapacity{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.CSIStorageCapacity), err +} + +// List takes label and field selectors, and returns the list of CSIStorageCapacities that match those selectors. +func (c *FakeCSIStorageCapacities) List(ctx context.Context, opts v1.ListOptions) (result *v1beta1.CSIStorageCapacityList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(csistoragecapacitiesResource, csistoragecapacitiesKind, c.ns, opts), &v1beta1.CSIStorageCapacityList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1beta1.CSIStorageCapacityList{ListMeta: obj.(*v1beta1.CSIStorageCapacityList).ListMeta} + for _, item := range obj.(*v1beta1.CSIStorageCapacityList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested cSIStorageCapacities. +func (c *FakeCSIStorageCapacities) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(csistoragecapacitiesResource, c.ns, opts)) + +} + +// Create takes the representation of a cSIStorageCapacity and creates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any. +func (c *FakeCSIStorageCapacities) Create(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.CreateOptions) (result *v1beta1.CSIStorageCapacity, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(csistoragecapacitiesResource, c.ns, cSIStorageCapacity), &v1beta1.CSIStorageCapacity{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.CSIStorageCapacity), err +} + +// Update takes the representation of a cSIStorageCapacity and updates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any. +func (c *FakeCSIStorageCapacities) Update(ctx context.Context, cSIStorageCapacity *v1beta1.CSIStorageCapacity, opts v1.UpdateOptions) (result *v1beta1.CSIStorageCapacity, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(csistoragecapacitiesResource, c.ns, cSIStorageCapacity), &v1beta1.CSIStorageCapacity{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.CSIStorageCapacity), err +} + +// Delete takes name of the cSIStorageCapacity and deletes it. Returns an error if one occurs. +func (c *FakeCSIStorageCapacities) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(csistoragecapacitiesResource, c.ns, name), &v1beta1.CSIStorageCapacity{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeCSIStorageCapacities) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(csistoragecapacitiesResource, c.ns, listOpts) + + _, err := c.Fake.Invokes(action, &v1beta1.CSIStorageCapacityList{}) + return err +} + +// Patch applies the patch and returns the patched cSIStorageCapacity. +func (c *FakeCSIStorageCapacities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.CSIStorageCapacity, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(csistoragecapacitiesResource, c.ns, name, pt, data, subresources...), &v1beta1.CSIStorageCapacity{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.CSIStorageCapacity), err +} + +// Apply takes the given apply declarative configuration, applies it and returns the applied cSIStorageCapacity. +func (c *FakeCSIStorageCapacities) Apply(ctx context.Context, cSIStorageCapacity *storagev1beta1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.CSIStorageCapacity, err error) { + if cSIStorageCapacity == nil { + return nil, fmt.Errorf("cSIStorageCapacity provided to Apply must not be nil") + } + data, err := json.Marshal(cSIStorageCapacity) + if err != nil { + return nil, err + } + name := cSIStorageCapacity.Name + if name == nil { + return nil, fmt.Errorf("cSIStorageCapacity.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(csistoragecapacitiesResource, c.ns, *name, types.ApplyPatchType, data), &v1beta1.CSIStorageCapacity{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.CSIStorageCapacity), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storage_client.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storage_client.go index 7968c9003a..6b5bb02fda 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storage_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storage_client.go @@ -36,6 +36,10 @@ func (c *FakeStorageV1beta1) CSINodes() v1beta1.CSINodeInterface { return &FakeCSINodes{c} } +func (c *FakeStorageV1beta1) CSIStorageCapacities(namespace string) v1beta1.CSIStorageCapacityInterface { + return &FakeCSIStorageCapacities{c, namespace} +} + func (c *FakeStorageV1beta1) StorageClasses() v1beta1.StorageClassInterface { return &FakeStorageClasses{c} } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storageclass.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storageclass.go index 3b0a8688cb..2cf03cb5aa 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storageclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storageclass.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1beta1 "k8s.io/client-go/applyconfigurations/storage/v1beta1" testing "k8s.io/client-go/testing" ) @@ -120,3 +123,24 @@ func (c *FakeStorageClasses) Patch(ctx context.Context, name string, pt types.Pa } return obj.(*v1beta1.StorageClass), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied storageClass. +func (c *FakeStorageClasses) Apply(ctx context.Context, storageClass *storagev1beta1.StorageClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StorageClass, err error) { + if storageClass == nil { + return nil, fmt.Errorf("storageClass provided to Apply must not be nil") + } + data, err := json.Marshal(storageClass) + if err != nil { + return nil, err + } + name := storageClass.Name + if name == nil { + return nil, fmt.Errorf("storageClass.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(storageclassesResource, *name, types.ApplyPatchType, data), &v1beta1.StorageClass{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.StorageClass), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_volumeattachment.go index 0bc91bf566..3ba1d539a9 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_volumeattachment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_volumeattachment.go @@ -20,6 +20,8 @@ package fake import ( "context" + json "encoding/json" + "fmt" v1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -27,6 +29,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1beta1 "k8s.io/client-go/applyconfigurations/storage/v1beta1" testing "k8s.io/client-go/testing" ) @@ -131,3 +134,46 @@ func (c *FakeVolumeAttachments) Patch(ctx context.Context, name string, pt types } return obj.(*v1beta1.VolumeAttachment), err } + +// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment. +func (c *FakeVolumeAttachments) Apply(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data), &v1beta1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.VolumeAttachment), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeVolumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, *name, types.ApplyPatchType, data, "status"), &v1beta1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.VolumeAttachment), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/generated_expansion.go index 7ba93142bf..1a202a928e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/generated_expansion.go @@ -22,6 +22,8 @@ type CSIDriverExpansion interface{} type CSINodeExpansion interface{} +type CSIStorageCapacityExpansion interface{} + type StorageClassExpansion interface{} type VolumeAttachmentExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storage_client.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storage_client.go index 5e12b025b2..19267b3625 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storage_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storage_client.go @@ -28,6 +28,7 @@ type StorageV1beta1Interface interface { RESTClient() rest.Interface CSIDriversGetter CSINodesGetter + CSIStorageCapacitiesGetter StorageClassesGetter VolumeAttachmentsGetter } @@ -45,6 +46,10 @@ func (c *StorageV1beta1Client) CSINodes() CSINodeInterface { return newCSINodes(c) } +func (c *StorageV1beta1Client) CSIStorageCapacities(namespace string) CSIStorageCapacityInterface { + return newCSIStorageCapacities(c, namespace) +} + func (c *StorageV1beta1Client) StorageClasses() StorageClassInterface { return newStorageClasses(c) } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storageclass.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storageclass.go index d6a8da98a3..9b4ef231c8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storageclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storageclass.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1beta1 "k8s.io/client-go/applyconfigurations/storage/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -46,6 +49,7 @@ type StorageClassInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.StorageClassList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.StorageClass, err error) + Apply(ctx context.Context, storageClass *storagev1beta1.StorageClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StorageClass, err error) StorageClassExpansion } @@ -166,3 +170,28 @@ func (c *storageClasses) Patch(ctx context.Context, name string, pt types.PatchT Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied storageClass. +func (c *storageClasses) Apply(ctx context.Context, storageClass *storagev1beta1.StorageClassApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.StorageClass, err error) { + if storageClass == nil { + return nil, fmt.Errorf("storageClass provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(storageClass) + if err != nil { + return nil, err + } + name := storageClass.Name + if name == nil { + return nil, fmt.Errorf("storageClass.Name must be provided to Apply") + } + result = &v1beta1.StorageClass{} + err = c.client.Patch(types.ApplyPatchType). + Resource("storageclasses"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/volumeattachment.go index 951a5e71bf..35a8b64fcc 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/volumeattachment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/volumeattachment.go @@ -20,12 +20,15 @@ package v1beta1 import ( "context" + json "encoding/json" + "fmt" "time" v1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" + storagev1beta1 "k8s.io/client-go/applyconfigurations/storage/v1beta1" scheme "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" ) @@ -47,6 +50,8 @@ type VolumeAttachmentInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.VolumeAttachmentList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.VolumeAttachment, err error) + Apply(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error) + ApplyStatus(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error) VolumeAttachmentExpansion } @@ -182,3 +187,57 @@ func (c *volumeAttachments) Patch(ctx context.Context, name string, pt types.Pat Into(result) return } + +// Apply takes the given apply declarative configuration, applies it and returns the applied volumeAttachment. +func (c *volumeAttachments) Apply(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + result = &v1beta1.VolumeAttachment{} + err = c.client.Patch(types.ApplyPatchType). + Resource("volumeattachments"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *volumeAttachments) ApplyStatus(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.VolumeAttachment, err error) { + if volumeAttachment == nil { + return nil, fmt.Errorf("volumeAttachment provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(volumeAttachment) + if err != nil { + return nil, err + } + + name := volumeAttachment.Name + if name == nil { + return nil, fmt.Errorf("volumeAttachment.Name must be provided to Apply") + } + + result = &v1beta1.VolumeAttachment{} + err = c.client.Patch(types.ApplyPatchType). + Resource("volumeattachments"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/listers/batch/v1/cronjob.go b/vendor/k8s.io/client-go/listers/batch/v1/cronjob.go new file mode 100644 index 0000000000..8e49ed959f --- /dev/null +++ b/vendor/k8s.io/client-go/listers/batch/v1/cronjob.go @@ -0,0 +1,99 @@ +/* +Copyright 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/batch/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// CronJobLister helps list CronJobs. +// All objects returned here must be treated as read-only. +type CronJobLister interface { + // List lists all CronJobs in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v1.CronJob, err error) + // CronJobs returns an object that can list and get CronJobs. + CronJobs(namespace string) CronJobNamespaceLister + CronJobListerExpansion +} + +// cronJobLister implements the CronJobLister interface. +type cronJobLister struct { + indexer cache.Indexer +} + +// NewCronJobLister returns a new CronJobLister. +func NewCronJobLister(indexer cache.Indexer) CronJobLister { + return &cronJobLister{indexer: indexer} +} + +// List lists all CronJobs in the indexer. +func (s *cronJobLister) List(selector labels.Selector) (ret []*v1.CronJob, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.CronJob)) + }) + return ret, err +} + +// CronJobs returns an object that can list and get CronJobs. +func (s *cronJobLister) CronJobs(namespace string) CronJobNamespaceLister { + return cronJobNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// CronJobNamespaceLister helps list and get CronJobs. +// All objects returned here must be treated as read-only. +type CronJobNamespaceLister interface { + // List lists all CronJobs in the indexer for a given namespace. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v1.CronJob, err error) + // Get retrieves the CronJob from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. + Get(name string) (*v1.CronJob, error) + CronJobNamespaceListerExpansion +} + +// cronJobNamespaceLister implements the CronJobNamespaceLister +// interface. +type cronJobNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all CronJobs in the indexer for a given namespace. +func (s cronJobNamespaceLister) List(selector labels.Selector) (ret []*v1.CronJob, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.CronJob)) + }) + return ret, err +} + +// Get retrieves the CronJob from the indexer for a given namespace and name. +func (s cronJobNamespaceLister) Get(name string) (*v1.CronJob, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("cronjob"), name) + } + return obj.(*v1.CronJob), nil +} diff --git a/vendor/k8s.io/client-go/listers/batch/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/batch/v1/expansion_generated.go index c43caf2403..2209762790 100644 --- a/vendor/k8s.io/client-go/listers/batch/v1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/batch/v1/expansion_generated.go @@ -17,3 +17,11 @@ limitations under the License. // Code generated by lister-gen. DO NOT EDIT. package v1 + +// CronJobListerExpansion allows custom methods to be added to +// CronJobLister. +type CronJobListerExpansion interface{} + +// CronJobNamespaceListerExpansion allows custom methods to be added to +// CronJobNamespaceLister. +type CronJobNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/batch/v2alpha1/cronjob.go b/vendor/k8s.io/client-go/listers/batch/v2alpha1/cronjob.go deleted file mode 100644 index 824aa331f4..0000000000 --- a/vendor/k8s.io/client-go/listers/batch/v2alpha1/cronjob.go +++ /dev/null @@ -1,99 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v2alpha1 - -import ( - v2alpha1 "k8s.io/api/batch/v2alpha1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// CronJobLister helps list CronJobs. -// All objects returned here must be treated as read-only. -type CronJobLister interface { - // List lists all CronJobs in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v2alpha1.CronJob, err error) - // CronJobs returns an object that can list and get CronJobs. - CronJobs(namespace string) CronJobNamespaceLister - CronJobListerExpansion -} - -// cronJobLister implements the CronJobLister interface. -type cronJobLister struct { - indexer cache.Indexer -} - -// NewCronJobLister returns a new CronJobLister. -func NewCronJobLister(indexer cache.Indexer) CronJobLister { - return &cronJobLister{indexer: indexer} -} - -// List lists all CronJobs in the indexer. -func (s *cronJobLister) List(selector labels.Selector) (ret []*v2alpha1.CronJob, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v2alpha1.CronJob)) - }) - return ret, err -} - -// CronJobs returns an object that can list and get CronJobs. -func (s *cronJobLister) CronJobs(namespace string) CronJobNamespaceLister { - return cronJobNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// CronJobNamespaceLister helps list and get CronJobs. -// All objects returned here must be treated as read-only. -type CronJobNamespaceLister interface { - // List lists all CronJobs in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v2alpha1.CronJob, err error) - // Get retrieves the CronJob from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v2alpha1.CronJob, error) - CronJobNamespaceListerExpansion -} - -// cronJobNamespaceLister implements the CronJobNamespaceLister -// interface. -type cronJobNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all CronJobs in the indexer for a given namespace. -func (s cronJobNamespaceLister) List(selector labels.Selector) (ret []*v2alpha1.CronJob, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v2alpha1.CronJob)) - }) - return ret, err -} - -// Get retrieves the CronJob from the indexer for a given namespace and name. -func (s cronJobNamespaceLister) Get(name string) (*v2alpha1.CronJob, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v2alpha1.Resource("cronjob"), name) - } - return obj.(*v2alpha1.CronJob), nil -} diff --git a/vendor/k8s.io/client-go/listers/batch/v2alpha1/expansion_generated.go b/vendor/k8s.io/client-go/listers/batch/v2alpha1/expansion_generated.go deleted file mode 100644 index a30c7a6190..0000000000 --- a/vendor/k8s.io/client-go/listers/batch/v2alpha1/expansion_generated.go +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v2alpha1 - -// CronJobListerExpansion allows custom methods to be added to -// CronJobLister. -type CronJobListerExpansion interface{} - -// CronJobNamespaceListerExpansion allows custom methods to be added to -// CronJobNamespaceLister. -type CronJobNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/discovery/v1/endpointslice.go b/vendor/k8s.io/client-go/listers/discovery/v1/endpointslice.go new file mode 100644 index 0000000000..4dd46ff1bf --- /dev/null +++ b/vendor/k8s.io/client-go/listers/discovery/v1/endpointslice.go @@ -0,0 +1,99 @@ +/* +Copyright 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/discovery/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// EndpointSliceLister helps list EndpointSlices. +// All objects returned here must be treated as read-only. +type EndpointSliceLister interface { + // List lists all EndpointSlices in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v1.EndpointSlice, err error) + // EndpointSlices returns an object that can list and get EndpointSlices. + EndpointSlices(namespace string) EndpointSliceNamespaceLister + EndpointSliceListerExpansion +} + +// endpointSliceLister implements the EndpointSliceLister interface. +type endpointSliceLister struct { + indexer cache.Indexer +} + +// NewEndpointSliceLister returns a new EndpointSliceLister. +func NewEndpointSliceLister(indexer cache.Indexer) EndpointSliceLister { + return &endpointSliceLister{indexer: indexer} +} + +// List lists all EndpointSlices in the indexer. +func (s *endpointSliceLister) List(selector labels.Selector) (ret []*v1.EndpointSlice, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.EndpointSlice)) + }) + return ret, err +} + +// EndpointSlices returns an object that can list and get EndpointSlices. +func (s *endpointSliceLister) EndpointSlices(namespace string) EndpointSliceNamespaceLister { + return endpointSliceNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// EndpointSliceNamespaceLister helps list and get EndpointSlices. +// All objects returned here must be treated as read-only. +type EndpointSliceNamespaceLister interface { + // List lists all EndpointSlices in the indexer for a given namespace. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v1.EndpointSlice, err error) + // Get retrieves the EndpointSlice from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. + Get(name string) (*v1.EndpointSlice, error) + EndpointSliceNamespaceListerExpansion +} + +// endpointSliceNamespaceLister implements the EndpointSliceNamespaceLister +// interface. +type endpointSliceNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all EndpointSlices in the indexer for a given namespace. +func (s endpointSliceNamespaceLister) List(selector labels.Selector) (ret []*v1.EndpointSlice, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.EndpointSlice)) + }) + return ret, err +} + +// Get retrieves the EndpointSlice from the indexer for a given namespace and name. +func (s endpointSliceNamespaceLister) Get(name string) (*v1.EndpointSlice, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("endpointslice"), name) + } + return obj.(*v1.EndpointSlice), nil +} diff --git a/vendor/k8s.io/client-go/listers/discovery/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/discovery/v1/expansion_generated.go new file mode 100644 index 0000000000..660163eeef --- /dev/null +++ b/vendor/k8s.io/client-go/listers/discovery/v1/expansion_generated.go @@ -0,0 +1,27 @@ +/* +Copyright 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1 + +// EndpointSliceListerExpansion allows custom methods to be added to +// EndpointSliceLister. +type EndpointSliceListerExpansion interface{} + +// EndpointSliceNamespaceListerExpansion allows custom methods to be added to +// EndpointSliceNamespaceLister. +type EndpointSliceNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/discovery/v1alpha1/endpointslice.go b/vendor/k8s.io/client-go/listers/discovery/v1alpha1/endpointslice.go deleted file mode 100644 index f3c0822bb0..0000000000 --- a/vendor/k8s.io/client-go/listers/discovery/v1alpha1/endpointslice.go +++ /dev/null @@ -1,99 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "k8s.io/api/discovery/v1alpha1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// EndpointSliceLister helps list EndpointSlices. -// All objects returned here must be treated as read-only. -type EndpointSliceLister interface { - // List lists all EndpointSlices in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1alpha1.EndpointSlice, err error) - // EndpointSlices returns an object that can list and get EndpointSlices. - EndpointSlices(namespace string) EndpointSliceNamespaceLister - EndpointSliceListerExpansion -} - -// endpointSliceLister implements the EndpointSliceLister interface. -type endpointSliceLister struct { - indexer cache.Indexer -} - -// NewEndpointSliceLister returns a new EndpointSliceLister. -func NewEndpointSliceLister(indexer cache.Indexer) EndpointSliceLister { - return &endpointSliceLister{indexer: indexer} -} - -// List lists all EndpointSlices in the indexer. -func (s *endpointSliceLister) List(selector labels.Selector) (ret []*v1alpha1.EndpointSlice, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1alpha1.EndpointSlice)) - }) - return ret, err -} - -// EndpointSlices returns an object that can list and get EndpointSlices. -func (s *endpointSliceLister) EndpointSlices(namespace string) EndpointSliceNamespaceLister { - return endpointSliceNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// EndpointSliceNamespaceLister helps list and get EndpointSlices. -// All objects returned here must be treated as read-only. -type EndpointSliceNamespaceLister interface { - // List lists all EndpointSlices in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1alpha1.EndpointSlice, err error) - // Get retrieves the EndpointSlice from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1alpha1.EndpointSlice, error) - EndpointSliceNamespaceListerExpansion -} - -// endpointSliceNamespaceLister implements the EndpointSliceNamespaceLister -// interface. -type endpointSliceNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all EndpointSlices in the indexer for a given namespace. -func (s endpointSliceNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.EndpointSlice, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1alpha1.EndpointSlice)) - }) - return ret, err -} - -// Get retrieves the EndpointSlice from the indexer for a given namespace and name. -func (s endpointSliceNamespaceLister) Get(name string) (*v1alpha1.EndpointSlice, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1alpha1.Resource("endpointslice"), name) - } - return obj.(*v1alpha1.EndpointSlice), nil -} diff --git a/vendor/k8s.io/client-go/listers/discovery/v1alpha1/expansion_generated.go b/vendor/k8s.io/client-go/listers/discovery/v1alpha1/expansion_generated.go deleted file mode 100644 index d47af59aa8..0000000000 --- a/vendor/k8s.io/client-go/listers/discovery/v1alpha1/expansion_generated.go +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 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. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v1alpha1 - -// EndpointSliceListerExpansion allows custom methods to be added to -// EndpointSliceLister. -type EndpointSliceListerExpansion interface{} - -// EndpointSliceNamespaceListerExpansion allows custom methods to be added to -// EndpointSliceNamespaceLister. -type EndpointSliceNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/policy/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/policy/v1/expansion_generated.go new file mode 100644 index 0000000000..c43caf2403 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/policy/v1/expansion_generated.go @@ -0,0 +1,19 @@ +/* +Copyright 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1 diff --git a/vendor/k8s.io/client-go/listers/policy/v1/poddisruptionbudget.go b/vendor/k8s.io/client-go/listers/policy/v1/poddisruptionbudget.go new file mode 100644 index 0000000000..8470d38bb2 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/policy/v1/poddisruptionbudget.go @@ -0,0 +1,99 @@ +/* +Copyright 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/policy/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// PodDisruptionBudgetLister helps list PodDisruptionBudgets. +// All objects returned here must be treated as read-only. +type PodDisruptionBudgetLister interface { + // List lists all PodDisruptionBudgets in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v1.PodDisruptionBudget, err error) + // PodDisruptionBudgets returns an object that can list and get PodDisruptionBudgets. + PodDisruptionBudgets(namespace string) PodDisruptionBudgetNamespaceLister + PodDisruptionBudgetListerExpansion +} + +// podDisruptionBudgetLister implements the PodDisruptionBudgetLister interface. +type podDisruptionBudgetLister struct { + indexer cache.Indexer +} + +// NewPodDisruptionBudgetLister returns a new PodDisruptionBudgetLister. +func NewPodDisruptionBudgetLister(indexer cache.Indexer) PodDisruptionBudgetLister { + return &podDisruptionBudgetLister{indexer: indexer} +} + +// List lists all PodDisruptionBudgets in the indexer. +func (s *podDisruptionBudgetLister) List(selector labels.Selector) (ret []*v1.PodDisruptionBudget, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.PodDisruptionBudget)) + }) + return ret, err +} + +// PodDisruptionBudgets returns an object that can list and get PodDisruptionBudgets. +func (s *podDisruptionBudgetLister) PodDisruptionBudgets(namespace string) PodDisruptionBudgetNamespaceLister { + return podDisruptionBudgetNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// PodDisruptionBudgetNamespaceLister helps list and get PodDisruptionBudgets. +// All objects returned here must be treated as read-only. +type PodDisruptionBudgetNamespaceLister interface { + // List lists all PodDisruptionBudgets in the indexer for a given namespace. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v1.PodDisruptionBudget, err error) + // Get retrieves the PodDisruptionBudget from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. + Get(name string) (*v1.PodDisruptionBudget, error) + PodDisruptionBudgetNamespaceListerExpansion +} + +// podDisruptionBudgetNamespaceLister implements the PodDisruptionBudgetNamespaceLister +// interface. +type podDisruptionBudgetNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all PodDisruptionBudgets in the indexer for a given namespace. +func (s podDisruptionBudgetNamespaceLister) List(selector labels.Selector) (ret []*v1.PodDisruptionBudget, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.PodDisruptionBudget)) + }) + return ret, err +} + +// Get retrieves the PodDisruptionBudget from the indexer for a given namespace and name. +func (s podDisruptionBudgetNamespaceLister) Get(name string) (*v1.PodDisruptionBudget, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("poddisruptionbudget"), name) + } + return obj.(*v1.PodDisruptionBudget), nil +} diff --git a/vendor/k8s.io/client-go/listers/policy/v1/poddisruptionbudget_expansion.go b/vendor/k8s.io/client-go/listers/policy/v1/poddisruptionbudget_expansion.go new file mode 100644 index 0000000000..f63851ad48 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/policy/v1/poddisruptionbudget_expansion.go @@ -0,0 +1,69 @@ +/* +Copyright 2021 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. +*/ + +package v1 + +import ( + "fmt" + + "k8s.io/api/core/v1" + policy "k8s.io/api/policy/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/klog/v2" +) + +// PodDisruptionBudgetListerExpansion allows custom methods to be added to +// PodDisruptionBudgetLister. +type PodDisruptionBudgetListerExpansion interface { + GetPodPodDisruptionBudgets(pod *v1.Pod) ([]*policy.PodDisruptionBudget, error) +} + +// PodDisruptionBudgetNamespaceListerExpansion allows custom methods to be added to +// PodDisruptionBudgetNamespaceLister. +type PodDisruptionBudgetNamespaceListerExpansion interface{} + +// GetPodPodDisruptionBudgets returns a list of PodDisruptionBudgets matching a pod. +func (s *podDisruptionBudgetLister) GetPodPodDisruptionBudgets(pod *v1.Pod) ([]*policy.PodDisruptionBudget, error) { + var selector labels.Selector + + list, err := s.PodDisruptionBudgets(pod.Namespace).List(labels.Everything()) + if err != nil { + return nil, err + } + + var pdbList []*policy.PodDisruptionBudget + for i := range list { + pdb := list[i] + selector, err = metav1.LabelSelectorAsSelector(pdb.Spec.Selector) + if err != nil { + klog.Warningf("invalid selector: %v", err) + continue + } + + // Unlike the v1beta version, here we let an empty selector match everything. + if !selector.Matches(labels.Set(pod.Labels)) { + continue + } + pdbList = append(pdbList, pdb) + } + + if len(pdbList) == 0 { + return nil, fmt.Errorf("could not find PodDisruptionBudget for pod %s in namespace %s with labels: %v", pod.Name, pod.Namespace, pod.Labels) + } + + return pdbList, nil +} diff --git a/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget_expansion.go b/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget_expansion.go index e93c3647b5..dce5dca820 100644 --- a/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget_expansion.go +++ b/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget_expansion.go @@ -40,10 +40,6 @@ type PodDisruptionBudgetNamespaceListerExpansion interface{} func (s *podDisruptionBudgetLister) GetPodPodDisruptionBudgets(pod *v1.Pod) ([]*policy.PodDisruptionBudget, error) { var selector labels.Selector - if len(pod.Labels) == 0 { - return nil, fmt.Errorf("no PodDisruptionBudgets found for pod %v because it has no labels", pod.Name) - } - list, err := s.PodDisruptionBudgets(pod.Namespace).List(labels.Everything()) if err != nil { return nil, err diff --git a/vendor/k8s.io/client-go/listers/storage/v1beta1/csistoragecapacity.go b/vendor/k8s.io/client-go/listers/storage/v1beta1/csistoragecapacity.go new file mode 100644 index 0000000000..4680ffb7c8 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/storage/v1beta1/csistoragecapacity.go @@ -0,0 +1,99 @@ +/* +Copyright 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/storage/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// CSIStorageCapacityLister helps list CSIStorageCapacities. +// All objects returned here must be treated as read-only. +type CSIStorageCapacityLister interface { + // List lists all CSIStorageCapacities in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v1beta1.CSIStorageCapacity, err error) + // CSIStorageCapacities returns an object that can list and get CSIStorageCapacities. + CSIStorageCapacities(namespace string) CSIStorageCapacityNamespaceLister + CSIStorageCapacityListerExpansion +} + +// cSIStorageCapacityLister implements the CSIStorageCapacityLister interface. +type cSIStorageCapacityLister struct { + indexer cache.Indexer +} + +// NewCSIStorageCapacityLister returns a new CSIStorageCapacityLister. +func NewCSIStorageCapacityLister(indexer cache.Indexer) CSIStorageCapacityLister { + return &cSIStorageCapacityLister{indexer: indexer} +} + +// List lists all CSIStorageCapacities in the indexer. +func (s *cSIStorageCapacityLister) List(selector labels.Selector) (ret []*v1beta1.CSIStorageCapacity, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.CSIStorageCapacity)) + }) + return ret, err +} + +// CSIStorageCapacities returns an object that can list and get CSIStorageCapacities. +func (s *cSIStorageCapacityLister) CSIStorageCapacities(namespace string) CSIStorageCapacityNamespaceLister { + return cSIStorageCapacityNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// CSIStorageCapacityNamespaceLister helps list and get CSIStorageCapacities. +// All objects returned here must be treated as read-only. +type CSIStorageCapacityNamespaceLister interface { + // List lists all CSIStorageCapacities in the indexer for a given namespace. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v1beta1.CSIStorageCapacity, err error) + // Get retrieves the CSIStorageCapacity from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. + Get(name string) (*v1beta1.CSIStorageCapacity, error) + CSIStorageCapacityNamespaceListerExpansion +} + +// cSIStorageCapacityNamespaceLister implements the CSIStorageCapacityNamespaceLister +// interface. +type cSIStorageCapacityNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all CSIStorageCapacities in the indexer for a given namespace. +func (s cSIStorageCapacityNamespaceLister) List(selector labels.Selector) (ret []*v1beta1.CSIStorageCapacity, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.CSIStorageCapacity)) + }) + return ret, err +} + +// Get retrieves the CSIStorageCapacity from the indexer for a given namespace and name. +func (s cSIStorageCapacityNamespaceLister) Get(name string) (*v1beta1.CSIStorageCapacity, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1beta1.Resource("csistoragecapacity"), name) + } + return obj.(*v1beta1.CSIStorageCapacity), nil +} diff --git a/vendor/k8s.io/client-go/listers/storage/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/storage/v1beta1/expansion_generated.go index eeca4fdb40..c2b0d5b17d 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/storage/v1beta1/expansion_generated.go @@ -26,6 +26,14 @@ type CSIDriverListerExpansion interface{} // CSINodeLister. type CSINodeListerExpansion interface{} +// CSIStorageCapacityListerExpansion allows custom methods to be added to +// CSIStorageCapacityLister. +type CSIStorageCapacityListerExpansion interface{} + +// CSIStorageCapacityNamespaceListerExpansion allows custom methods to be added to +// CSIStorageCapacityNamespaceLister. +type CSIStorageCapacityNamespaceListerExpansion interface{} + // StorageClassListerExpansion allows custom methods to be added to // StorageClassLister. type StorageClassListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/pkg/version/base.go b/vendor/k8s.io/client-go/pkg/version/base.go index 9b4c79f895..51e34dda33 100644 --- a/vendor/k8s.io/client-go/pkg/version/base.go +++ b/vendor/k8s.io/client-go/pkg/version/base.go @@ -55,7 +55,7 @@ var ( // NOTE: The $Format strings are replaced during 'git archive' thanks to the // companion .gitattributes file containing 'export-subst' in this same // directory. See also https://git-scm.com/docs/gitattributes - gitVersion string = "v0.0.0-master+$Format:%h$" + gitVersion string = "v0.0.0-master+$Format:%H$" gitCommit string = "$Format:%H$" // sha1 from git, output of $(git rev-parse HEAD) gitTreeState string = "" // state of git tree, either "clean" or "dirty" diff --git a/vendor/k8s.io/client-go/pkg/version/def.bzl b/vendor/k8s.io/client-go/pkg/version/def.bzl deleted file mode 100644 index ecc9cd3bb0..0000000000 --- a/vendor/k8s.io/client-go/pkg/version/def.bzl +++ /dev/null @@ -1,38 +0,0 @@ -# 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. - -# Implements hack/lib/version.sh's kube::version::ldflags() for Bazel. -def version_x_defs(): - # This should match the list of packages in kube::version::ldflag - stamp_pkgs = [ - "k8s.io/component-base/version", - # In hack/lib/version.sh, this has a vendor/ prefix. That isn't needed here? - "k8s.io/client-go/pkg/version", - ] - # This should match the list of vars in kube::version::ldflags - # It should also match the list of vars set in hack/print-workspace-status.sh. - stamp_vars = [ - "buildDate", - "gitCommit", - "gitMajor", - "gitMinor", - "gitTreeState", - "gitVersion", - ] - # Generate the cross-product. - x_defs = {} - for pkg in stamp_pkgs: - for var in stamp_vars: - x_defs["%s.%s" % (pkg, var)] = "{%s}" % var - return x_defs diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go index af21c49953..b23e57dde6 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go @@ -18,7 +18,6 @@ package exec import ( "bytes" - "context" "crypto/tls" "crypto/x509" "errors" @@ -34,7 +33,8 @@ import ( "time" "github.com/davecgh/go-spew/spew" - "golang.org/x/crypto/ssh/terminal" + "golang.org/x/term" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -52,7 +52,6 @@ import ( ) const execInfoEnv = "KUBERNETES_EXEC_INFO" -const onRotateListWarningLength = 1000 const installHintVerboseHelp = ` It looks like you are trying to use a client-go credential plugin that is not installed. @@ -177,6 +176,12 @@ func newAuthenticator(c *cache, config *api.ExecConfig, cluster *clientauthentic return nil, fmt.Errorf("exec plugin: invalid apiVersion %q", config.APIVersion) } + connTracker := connrotation.NewConnectionTracker() + defaultDialer := connrotation.NewDialerWithTracker( + (&net.Dialer{Timeout: 30 * time.Second, KeepAlive: 30 * time.Second}).DialContext, + connTracker, + ) + a := &Authenticator{ cmd: config.Command, args: config.Args, @@ -193,9 +198,12 @@ func newAuthenticator(c *cache, config *api.ExecConfig, cluster *clientauthentic stdin: os.Stdin, stderr: os.Stderr, - interactive: terminal.IsTerminal(int(os.Stdout.Fd())), + interactive: term.IsTerminal(int(os.Stdin.Fd())), now: time.Now, environ: os.Environ, + + defaultDialer: defaultDialer, + connTracker: connTracker, } for _, env := range config.Env { @@ -229,6 +237,11 @@ type Authenticator struct { now func() time.Time environ func() []string + // defaultDialer is used for clients which don't specify a custom dialer + defaultDialer *connrotation.Dialer + // connTracker tracks all connections opened that we need to close when rotating a client certificate + connTracker *connrotation.ConnectionTracker + // Cached results. // // The mutex also guards calling the plugin. Since the plugin could be @@ -236,8 +249,6 @@ type Authenticator struct { mu sync.Mutex cachedCreds *credentials exp time.Time - - onRotateList []func() } type credentials struct { @@ -266,20 +277,12 @@ func (a *Authenticator) UpdateTransportConfig(c *transport.Config) error { } c.TLS.GetCert = a.cert - var dial func(ctx context.Context, network, addr string) (net.Conn, error) + var d *connrotation.Dialer if c.Dial != nil { - dial = c.Dial + // if c has a custom dialer, we have to wrap it + d = connrotation.NewDialerWithTracker(c.Dial, a.connTracker) } else { - dial = (&net.Dialer{Timeout: 30 * time.Second, KeepAlive: 30 * time.Second}).DialContext - } - d := connrotation.NewDialer(dial) - - a.mu.Lock() - defer a.mu.Unlock() - a.onRotateList = append(a.onRotateList, d.CloseAll) - onRotateListLength := len(a.onRotateList) - if onRotateListLength > onRotateListWarningLength { - klog.Warningf("constructing many client instances from the same exec auth config can cause performance problems during cert rotation and can exhaust available network connections; %d clients constructed calling %q", onRotateListLength, a.cmd) + d = a.defaultDialer } c.Dial = d.DialContext @@ -398,7 +401,9 @@ func (a *Authenticator) refreshCredsLocked(r *clientauthentication.Response) err cmd.Stdin = a.stdin } - if err := cmd.Run(); err != nil { + err = cmd.Run() + incrementCallsMetric(err) + if err != nil { return a.wrapCmdRunErrorLocked(err) } @@ -458,9 +463,7 @@ func (a *Authenticator) refreshCredsLocked(r *clientauthentication.Response) err if oldCreds.cert != nil && oldCreds.cert.Leaf != nil { metrics.ClientCertRotationAge.Observe(time.Now().Sub(oldCreds.cert.Leaf.NotBefore)) } - for _, onRotate := range a.onRotateList { - onRotate() - } + a.connTracker.CloseAll() } expiry := time.Time{} diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/metrics.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/metrics.go index caf0cca3e4..3a2cc251a1 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/metrics.go +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/metrics.go @@ -17,12 +17,39 @@ limitations under the License. package exec import ( + "errors" + "os/exec" + "reflect" "sync" "time" + "k8s.io/klog/v2" + "k8s.io/client-go/tools/metrics" ) +// The following constants shadow the special values used in the prometheus metrics implementation. +const ( + // noError indicates that the plugin process was successfully started and exited with an exit + // code of 0. + noError = "no_error" + // pluginExecutionError indicates that the plugin process was successfully started and then + // it returned a non-zero exit code. + pluginExecutionError = "plugin_execution_error" + // pluginNotFoundError indicates that we could not find the exec plugin. + pluginNotFoundError = "plugin_not_found_error" + // clientInternalError indicates that we attempted to start the plugin process, but failed + // for some reason. + clientInternalError = "client_internal_error" + + // successExitCode represents an exec plugin invocation that was successful. + successExitCode = 0 + // failureExitCode represents an exec plugin invocation that was not successful. This code is + // used in some failure modes (e.g., plugin not found, client internal error) so that someone + // can more easily monitor all unsuccessful invocations. + failureExitCode = 1 +) + type certificateExpirationTracker struct { mu sync.RWMutex m map[*Authenticator]time.Time @@ -58,3 +85,25 @@ func (c *certificateExpirationTracker) set(a *Authenticator, t time.Time) { c.metricSet(&earliest) } } + +// incrementCallsMetric increments a global metrics counter for the number of calls to an exec +// plugin, partitioned by exit code. The provided err should be the return value from +// exec.Cmd.Run(). +func incrementCallsMetric(err error) { + execExitError := &exec.ExitError{} + execError := &exec.Error{} + switch { + case err == nil: // Binary execution succeeded. + metrics.ExecPluginCalls.Increment(successExitCode, noError) + + case errors.As(err, &execExitError): // Binary execution failed (see "os/exec".Cmd.Run()). + metrics.ExecPluginCalls.Increment(execExitError.ExitCode(), pluginExecutionError) + + case errors.As(err, &execError): // Binary does not exist (see exec.Error). + metrics.ExecPluginCalls.Increment(failureExitCode, pluginNotFoundError) + + default: // We don't know about this error type. + klog.V(2).InfoS("unexpected exec plugin return error type", "type", reflect.TypeOf(err).String(), "err", err) + metrics.ExecPluginCalls.Increment(failureExitCode, clientInternalError) + } +} diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/plugins.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/plugins.go index 42085d7ae1..d1efc86cde 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/plugins.go +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/plugins.go @@ -17,9 +17,6 @@ limitations under the License. package auth import ( - // Initialize all known client auth plugins. - _ "k8s.io/client-go/plugin/pkg/client/auth/azure" - _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" + // Initialize common client auth plugins. _ "k8s.io/client-go/plugin/pkg/client/auth/oidc" - _ "k8s.io/client-go/plugin/pkg/client/auth/openstack" ) diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/plugins_providers.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/plugins_providers.go new file mode 100644 index 0000000000..967039662c --- /dev/null +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/plugins_providers.go @@ -0,0 +1,26 @@ +// +build !providerless + +/* +Copyright 2016 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. +*/ + +package auth + +import ( + // Initialize client auth plugins for cloud providers. + _ "k8s.io/client-go/plugin/pkg/client/auth/azure" + _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" + _ "k8s.io/client-go/plugin/pkg/client/auth/openstack" +) diff --git a/vendor/k8s.io/client-go/rest/OWNERS b/vendor/k8s.io/client-go/rest/OWNERS index c02ec6a250..0d574e0568 100644 --- a/vendor/k8s.io/client-go/rest/OWNERS +++ b/vendor/k8s.io/client-go/rest/OWNERS @@ -8,8 +8,6 @@ reviewers: - deads2k - brendandburns - liggitt -- nikhiljindal -- gmarek - erictune - sttts - luxas diff --git a/vendor/k8s.io/client-go/rest/client.go b/vendor/k8s.io/client-go/rest/client.go index f35955d45f..c969300494 100644 --- a/vendor/k8s.io/client-go/rest/client.go +++ b/vendor/k8s.io/client-go/rest/client.go @@ -127,7 +127,7 @@ func NewRESTClient(baseURL *url.URL, versionedAPIPath string, config ClientConte }, nil } -// GetRateLimiter returns rate limier for a given client, or nil if it's called on a nil client +// GetRateLimiter returns rate limiter for a given client, or nil if it's called on a nil client func (c *RESTClient) GetRateLimiter() flowcontrol.RateLimiter { if c == nil { return nil diff --git a/vendor/k8s.io/client-go/rest/plugin.go b/vendor/k8s.io/client-go/rest/plugin.go index 33d146cd9d..c2b3dfc0f5 100644 --- a/vendor/k8s.io/client-go/rest/plugin.go +++ b/vendor/k8s.io/client-go/rest/plugin.go @@ -47,6 +47,13 @@ type AuthProviderConfigPersister interface { Persist(map[string]string) error } +type noopPersister struct{} + +func (n *noopPersister) Persist(_ map[string]string) error { + // no operation persister + return nil +} + // All registered auth provider plugins. var pluginsLock sync.Mutex var plugins = make(map[string]Factory) @@ -69,5 +76,8 @@ func GetAuthProvider(clusterAddress string, apc *clientcmdapi.AuthProviderConfig if !ok { return nil, fmt.Errorf("no Auth Provider found for name %q", apc.Name) } + if persister == nil { + persister = &noopPersister{} + } return p(clusterAddress, apc.Config, persister) } diff --git a/vendor/k8s.io/client-go/rest/request.go b/vendor/k8s.io/client-go/rest/request.go index 1ccc0dafe6..0ac0e8eab8 100644 --- a/vendor/k8s.io/client-go/rest/request.go +++ b/vendor/k8s.io/client-go/rest/request.go @@ -242,7 +242,7 @@ func (r *Request) SubResource(subresources ...string) *Request { } subresource := path.Join(subresources...) if len(r.subresource) != 0 { - r.err = fmt.Errorf("subresource already set to %q, cannot change to %q", r.resource, subresource) + r.err = fmt.Errorf("subresource already set to %q, cannot change to %q", r.subresource, subresource) return r } for _, s := range subresources { @@ -577,7 +577,7 @@ func (r Request) finalURLTemplate() url.URL { return *url } -func (r *Request) tryThrottle(ctx context.Context) error { +func (r *Request) tryThrottleWithInfo(ctx context.Context, retryInfo string) error { if r.rateLimiter == nil { return nil } @@ -587,19 +587,32 @@ func (r *Request) tryThrottle(ctx context.Context) error { err := r.rateLimiter.Wait(ctx) latency := time.Since(now) + + var message string + switch { + case len(retryInfo) > 0: + message = fmt.Sprintf("Waited for %v, %s - request: %s:%s", latency, retryInfo, r.verb, r.URL().String()) + default: + message = fmt.Sprintf("Waited for %v due to client-side throttling, not priority and fairness, request: %s:%s", latency, r.verb, r.URL().String()) + } + if latency > longThrottleLatency { - klog.V(3).Infof("Throttling request took %v, request: %s:%s", latency, r.verb, r.URL().String()) + klog.V(3).Info(message) } if latency > extraLongThrottleLatency { // If the rate limiter latency is very high, the log message should be printed at a higher log level, // but we use a throttled logger to prevent spamming. - globalThrottledLogger.Infof("Throttling request took %v, request: %s:%s", latency, r.verb, r.URL().String()) + globalThrottledLogger.Infof(message) } - metrics.RateLimiterLatency.Observe(r.verb, r.finalURLTemplate(), latency) + metrics.RateLimiterLatency.Observe(ctx, r.verb, r.finalURLTemplate(), latency) return err } +func (r *Request) tryThrottle(ctx context.Context) error { + return r.tryThrottleWithInfo(ctx, "") +} + type throttleSettings struct { logLevel klog.Level minLogInterval time.Duration @@ -678,7 +691,7 @@ func (r *Request) Watch(ctx context.Context) (watch.Interface, error) { } r.backoff.Sleep(r.backoff.CalculateBackoff(r.URL())) resp, err := client.Do(req) - updateURLMetrics(r, resp, err) + updateURLMetrics(ctx, r, resp, err) if r.c.base != nil { if err != nil { r.backoff.UpdateBackoff(r.c.base, err, 0) @@ -727,7 +740,7 @@ func (r *Request) Watch(ctx context.Context) (watch.Interface, error) { // updateURLMetrics is a convenience function for pushing metrics. // It also handles corner cases for incomplete/invalid request data. -func updateURLMetrics(req *Request, resp *http.Response, err error) { +func updateURLMetrics(ctx context.Context, req *Request, resp *http.Response, err error) { url := "none" if req.c.base != nil { url = req.c.base.Host @@ -736,10 +749,10 @@ func updateURLMetrics(req *Request, resp *http.Response, err error) { // Errors can be arbitrary strings. Unbound label cardinality is not suitable for a metric // system so we just report them as ``. if err != nil { - metrics.RequestResult.Increment("", req.verb, url) + metrics.RequestResult.Increment(ctx, "", req.verb, url) } else { //Metrics for failure codes - metrics.RequestResult.Increment(strconv.Itoa(resp.StatusCode), req.verb, url) + metrics.RequestResult.Increment(ctx, strconv.Itoa(resp.StatusCode), req.verb, url) } } @@ -772,7 +785,7 @@ func (r *Request) Stream(ctx context.Context) (io.ReadCloser, error) { } r.backoff.Sleep(r.backoff.CalculateBackoff(r.URL())) resp, err := client.Do(req) - updateURLMetrics(r, resp, err) + updateURLMetrics(ctx, r, resp, err) if r.c.base != nil { if err != nil { r.backoff.UpdateBackoff(r.URL(), err, 0) @@ -837,7 +850,7 @@ func (r *Request) request(ctx context.Context, fn func(*http.Request, *http.Resp //Metrics for total request latency start := time.Now() defer func() { - metrics.RequestLatency.Observe(r.verb, r.finalURLTemplate(), time.Since(start)) + metrics.RequestLatency.Observe(ctx, r.verb, r.finalURLTemplate(), time.Since(start)) }() if r.err != nil { @@ -869,6 +882,7 @@ func (r *Request) request(ctx context.Context, fn func(*http.Request, *http.Resp // Right now we make about ten retry attempts if we get a Retry-After response. retries := 0 + var retryInfo string for { url := r.URL().String() @@ -884,12 +898,13 @@ func (r *Request) request(ctx context.Context, fn func(*http.Request, *http.Resp // We are retrying the request that we already send to apiserver // at least once before. // This request should also be throttled with the client-internal rate limiter. - if err := r.tryThrottle(ctx); err != nil { + if err := r.tryThrottleWithInfo(ctx, retryInfo); err != nil { return err } + retryInfo = "" } resp, err := client.Do(req) - updateURLMetrics(r, resp, err) + updateURLMetrics(ctx, r, resp, err) if err != nil { r.backoff.UpdateBackoff(r.URL(), err, 0) } else { @@ -931,6 +946,7 @@ func (r *Request) request(ctx context.Context, fn func(*http.Request, *http.Resp retries++ if seconds, wait := checkWait(resp); wait && retries <= r.maxRetries { + retryInfo = getRetryReason(retries, seconds, resp, err) if seeker, ok := r.body.(io.Seeker); ok && r.body != nil { _, err := seeker.Seek(0, 0) if err != nil { @@ -1204,6 +1220,26 @@ func retryAfterSeconds(resp *http.Response) (int, bool) { return 0, false } +func getRetryReason(retries, seconds int, resp *http.Response, err error) string { + // priority and fairness sets the UID of the FlowSchema associated with a request + // in the following response Header. + const responseHeaderMatchedFlowSchemaUID = "X-Kubernetes-PF-FlowSchema-UID" + + message := fmt.Sprintf("retries: %d, retry-after: %ds", retries, seconds) + + switch { + case resp.StatusCode == http.StatusTooManyRequests: + // it is server-side throttling from priority and fairness + flowSchemaUID := resp.Header.Get(responseHeaderMatchedFlowSchemaUID) + return fmt.Sprintf("%s - retry-reason: due to server-side throttling, FlowSchema UID: %q", message, flowSchemaUID) + case err != nil: + // it's a retriable error + return fmt.Sprintf("%s - retry-reason: due to retriable error, error: %v", message, err) + default: + return fmt.Sprintf("%s - retry-reason: %d", message, resp.StatusCode) + } +} + // Result contains the result of calling Request.Do(). type Result struct { body []byte diff --git a/vendor/k8s.io/client-go/tools/cache/OWNERS b/vendor/k8s.io/client-go/tools/cache/OWNERS index 9d0a18771e..6562ee5c7a 100644 --- a/vendor/k8s.io/client-go/tools/cache/OWNERS +++ b/vendor/k8s.io/client-go/tools/cache/OWNERS @@ -20,7 +20,6 @@ reviewers: - caesarxuchao - mikedanese - liggitt -- nikhiljindal - erictune - davidopp - pmorie @@ -29,7 +28,6 @@ reviewers: - soltysh - jsafrane - dims -- madhusudancs - hongchaodeng - krousey - xiang90 diff --git a/vendor/k8s.io/client-go/tools/cache/delta_fifo.go b/vendor/k8s.io/client-go/tools/cache/delta_fifo.go index 148b478d58..f648673e11 100644 --- a/vendor/k8s.io/client-go/tools/cache/delta_fifo.go +++ b/vendor/k8s.io/client-go/tools/cache/delta_fifo.go @@ -26,54 +26,6 @@ import ( "k8s.io/klog/v2" ) -// NewDeltaFIFO returns a Queue which can be used to process changes to items. -// -// keyFunc is used to figure out what key an object should have. (It is -// exposed in the returned DeltaFIFO's KeyOf() method, with additional handling -// around deleted objects and queue state). -// -// 'knownObjects' may be supplied to modify the behavior of Delete, -// Replace, and Resync. It may be nil if you do not need those -// modifications. -// -// TODO: consider merging keyLister with this object, tracking a list of -// "known" keys when Pop() is called. Have to think about how that -// affects error retrying. -// NOTE: It is possible to misuse this and cause a race when using an -// external known object source. -// Whether there is a potential race depends on how the consumer -// modifies knownObjects. In Pop(), process function is called under -// lock, so it is safe to update data structures in it that need to be -// in sync with the queue (e.g. knownObjects). -// -// Example: -// In case of sharedIndexInformer being a consumer -// (https://github.com/kubernetes/kubernetes/blob/0cdd940f/staging/ -// src/k8s.io/client-go/tools/cache/shared_informer.go#L192), -// there is no race as knownObjects (s.indexer) is modified safely -// under DeltaFIFO's lock. The only exceptions are GetStore() and -// GetIndexer() methods, which expose ways to modify the underlying -// storage. Currently these two methods are used for creating Lister -// and internal tests. -// -// Also see the comment on DeltaFIFO. -// -// Warning: This constructs a DeltaFIFO that does not differentiate between -// events caused by a call to Replace (e.g., from a relist, which may -// contain object updates), and synthetic events caused by a periodic resync -// (which just emit the existing object). See https://issue.k8s.io/86015 for details. -// -// Use `NewDeltaFIFOWithOptions(DeltaFIFOOptions{..., EmitDeltaTypeReplaced: true})` -// instead to receive a `Replaced` event depending on the type. -// -// Deprecated: Equivalent to NewDeltaFIFOWithOptions(DeltaFIFOOptions{KeyFunction: keyFunc, KnownObjects: knownObjects}) -func NewDeltaFIFO(keyFunc KeyFunc, knownObjects KeyListerGetter) *DeltaFIFO { - return NewDeltaFIFOWithOptions(DeltaFIFOOptions{ - KeyFunction: keyFunc, - KnownObjects: knownObjects, - }) -} - // DeltaFIFOOptions is the configuration parameters for DeltaFIFO. All are // optional. type DeltaFIFOOptions struct { @@ -99,25 +51,6 @@ type DeltaFIFOOptions struct { EmitDeltaTypeReplaced bool } -// NewDeltaFIFOWithOptions returns a Queue which can be used to process changes to -// items. See also the comment on DeltaFIFO. -func NewDeltaFIFOWithOptions(opts DeltaFIFOOptions) *DeltaFIFO { - if opts.KeyFunction == nil { - opts.KeyFunction = MetaNamespaceKeyFunc - } - - f := &DeltaFIFO{ - items: map[string]Deltas{}, - queue: []string{}, - keyFunc: opts.KeyFunction, - knownObjects: opts.KnownObjects, - - emitDeltaTypeReplaced: opts.EmitDeltaTypeReplaced, - } - f.cond.L = &f.lock - return f -} - // DeltaFIFO is like FIFO, but differs in two ways. One is that the // accumulator associated with a given object's key is not that object // but rather a Deltas, which is a slice of Delta values for that @@ -128,8 +61,11 @@ func NewDeltaFIFOWithOptions(opts DeltaFIFOOptions) *DeltaFIFO { // Deleted if the older Deleted's object is a // DeletedFinalStateUnknown. // -// The other difference is that DeltaFIFO has an additional way that -// an object can be applied to an accumulator, called Sync. +// The other difference is that DeltaFIFO has two additional ways that +// an object can be applied to an accumulator: Replaced and Sync. +// If EmitDeltaTypeReplaced is not set to true, Sync will be used in +// replace events for backwards compatibility. Sync is used for periodic +// resync events. // // DeltaFIFO is a producer-consumer queue, where a Reflector is // intended to be the producer, and the consumer is whatever calls @@ -193,6 +129,107 @@ type DeltaFIFO struct { emitDeltaTypeReplaced bool } +// DeltaType is the type of a change (addition, deletion, etc) +type DeltaType string + +// Change type definition +const ( + Added DeltaType = "Added" + Updated DeltaType = "Updated" + Deleted DeltaType = "Deleted" + // Replaced is emitted when we encountered watch errors and had to do a + // relist. We don't know if the replaced object has changed. + // + // NOTE: Previous versions of DeltaFIFO would use Sync for Replace events + // as well. Hence, Replaced is only emitted when the option + // EmitDeltaTypeReplaced is true. + Replaced DeltaType = "Replaced" + // Sync is for synthetic events during a periodic resync. + Sync DeltaType = "Sync" +) + +// Delta is a member of Deltas (a list of Delta objects) which +// in its turn is the type stored by a DeltaFIFO. It tells you what +// change happened, and the object's state after* that change. +// +// [*] Unless the change is a deletion, and then you'll get the final +// state of the object before it was deleted. +type Delta struct { + Type DeltaType + Object interface{} +} + +// Deltas is a list of one or more 'Delta's to an individual object. +// The oldest delta is at index 0, the newest delta is the last one. +type Deltas []Delta + +// NewDeltaFIFO returns a Queue which can be used to process changes to items. +// +// keyFunc is used to figure out what key an object should have. (It is +// exposed in the returned DeltaFIFO's KeyOf() method, with additional handling +// around deleted objects and queue state). +// +// 'knownObjects' may be supplied to modify the behavior of Delete, +// Replace, and Resync. It may be nil if you do not need those +// modifications. +// +// TODO: consider merging keyLister with this object, tracking a list of +// "known" keys when Pop() is called. Have to think about how that +// affects error retrying. +// NOTE: It is possible to misuse this and cause a race when using an +// external known object source. +// Whether there is a potential race depends on how the consumer +// modifies knownObjects. In Pop(), process function is called under +// lock, so it is safe to update data structures in it that need to be +// in sync with the queue (e.g. knownObjects). +// +// Example: +// In case of sharedIndexInformer being a consumer +// (https://github.com/kubernetes/kubernetes/blob/0cdd940f/staging/ +// src/k8s.io/client-go/tools/cache/shared_informer.go#L192), +// there is no race as knownObjects (s.indexer) is modified safely +// under DeltaFIFO's lock. The only exceptions are GetStore() and +// GetIndexer() methods, which expose ways to modify the underlying +// storage. Currently these two methods are used for creating Lister +// and internal tests. +// +// Also see the comment on DeltaFIFO. +// +// Warning: This constructs a DeltaFIFO that does not differentiate between +// events caused by a call to Replace (e.g., from a relist, which may +// contain object updates), and synthetic events caused by a periodic resync +// (which just emit the existing object). See https://issue.k8s.io/86015 for details. +// +// Use `NewDeltaFIFOWithOptions(DeltaFIFOOptions{..., EmitDeltaTypeReplaced: true})` +// instead to receive a `Replaced` event depending on the type. +// +// Deprecated: Equivalent to NewDeltaFIFOWithOptions(DeltaFIFOOptions{KeyFunction: keyFunc, KnownObjects: knownObjects}) +func NewDeltaFIFO(keyFunc KeyFunc, knownObjects KeyListerGetter) *DeltaFIFO { + return NewDeltaFIFOWithOptions(DeltaFIFOOptions{ + KeyFunction: keyFunc, + KnownObjects: knownObjects, + }) +} + +// NewDeltaFIFOWithOptions returns a Queue which can be used to process changes to +// items. See also the comment on DeltaFIFO. +func NewDeltaFIFOWithOptions(opts DeltaFIFOOptions) *DeltaFIFO { + if opts.KeyFunction == nil { + opts.KeyFunction = MetaNamespaceKeyFunc + } + + f := &DeltaFIFO{ + items: map[string]Deltas{}, + queue: []string{}, + keyFunc: opts.KeyFunction, + knownObjects: opts.KnownObjects, + + emitDeltaTypeReplaced: opts.EmitDeltaTypeReplaced, + } + f.cond.L = &f.lock + return f +} + var ( _ = Queue(&DeltaFIFO{}) // DeltaFIFO is a Queue ) @@ -572,7 +609,7 @@ func (f *DeltaFIFO) Replace(list []interface{}, resourceVersion string) error { f.populated = true // While there shouldn't be any queued deletions in the initial // population of the queue, it's better to be on the safe side. - f.initialPopulationCount = len(list) + queuedDeletions + f.initialPopulationCount = keys.Len() + queuedDeletions } return nil @@ -602,7 +639,7 @@ func (f *DeltaFIFO) Replace(list []interface{}, resourceVersion string) error { if !f.populated { f.populated = true - f.initialPopulationCount = len(list) + queuedDeletions + f.initialPopulationCount = keys.Len() + queuedDeletions } return nil @@ -673,39 +710,6 @@ type KeyGetter interface { GetByKey(key string) (value interface{}, exists bool, err error) } -// DeltaType is the type of a change (addition, deletion, etc) -type DeltaType string - -// Change type definition -const ( - Added DeltaType = "Added" - Updated DeltaType = "Updated" - Deleted DeltaType = "Deleted" - // Replaced is emitted when we encountered watch errors and had to do a - // relist. We don't know if the replaced object has changed. - // - // NOTE: Previous versions of DeltaFIFO would use Sync for Replace events - // as well. Hence, Replaced is only emitted when the option - // EmitDeltaTypeReplaced is true. - Replaced DeltaType = "Replaced" - // Sync is for synthetic events during a periodic resync. - Sync DeltaType = "Sync" -) - -// Delta is the type stored by a DeltaFIFO. It tells you what change -// happened, and the object's state after* that change. -// -// [*] Unless the change is a deletion, and then you'll get the final -// state of the object before it was deleted. -type Delta struct { - Type DeltaType - Object interface{} -} - -// Deltas is a list of one or more 'Delta's to an individual object. -// The oldest delta is at index 0, the newest delta is the last one. -type Deltas []Delta - // Oldest is a convenience function that returns the oldest delta, or // nil if there are no deltas. func (d Deltas) Oldest() *Delta { diff --git a/vendor/k8s.io/client-go/tools/clientcmd/auth_loaders.go b/vendor/k8s.io/client-go/tools/clientcmd/auth_loaders.go index 1d3c11d8fc..0e41277628 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/auth_loaders.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/auth_loaders.go @@ -23,7 +23,7 @@ import ( "io/ioutil" "os" - "golang.org/x/crypto/ssh/terminal" + "golang.org/x/term" clientauth "k8s.io/client-go/tools/auth" ) @@ -90,8 +90,8 @@ func promptForString(field string, r io.Reader, show bool) (result string, err e _, err = fmt.Fscan(r, &result) } else { var data []byte - if terminal.IsTerminal(int(os.Stdin.Fd())) { - data, err = terminal.ReadPassword(int(os.Stdin.Fd())) + if term.IsTerminal(int(os.Stdin.Fd())) { + data, err = term.ReadPassword(int(os.Stdin.Fd())) result = string(data) } else { return "", fmt.Errorf("error reading input for %s", field) diff --git a/vendor/k8s.io/client-go/tools/clientcmd/client_config.go b/vendor/k8s.io/client-go/tools/clientcmd/client_config.go index 9e1cd64a09..0a905490c9 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/client_config.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/client_config.go @@ -198,13 +198,13 @@ func (config *DirectClientConfig) ClientConfig() (*restclient.Config, error) { if err != nil { return nil, err } - mergo.MergeWithOverwrite(clientConfig, userAuthPartialConfig) + mergo.Merge(clientConfig, userAuthPartialConfig, mergo.WithOverride) serverAuthPartialConfig, err := getServerIdentificationPartialConfig(configAuthInfo, configClusterInfo) if err != nil { return nil, err } - mergo.MergeWithOverwrite(clientConfig, serverAuthPartialConfig) + mergo.Merge(clientConfig, serverAuthPartialConfig, mergo.WithOverride) } return clientConfig, nil @@ -225,7 +225,7 @@ func getServerIdentificationPartialConfig(configAuthInfo clientcmdapi.AuthInfo, configClientConfig.CAData = configClusterInfo.CertificateAuthorityData configClientConfig.Insecure = configClusterInfo.InsecureSkipTLSVerify configClientConfig.ServerName = configClusterInfo.TLSServerName - mergo.MergeWithOverwrite(mergedConfig, configClientConfig) + mergo.Merge(mergedConfig, configClientConfig, mergo.WithOverride) return mergedConfig, nil } @@ -294,8 +294,8 @@ func (config *DirectClientConfig) getUserIdentificationPartialConfig(configAuthI promptedConfig := makeUserIdentificationConfig(*promptedAuthInfo) previouslyMergedConfig := mergedConfig mergedConfig = &restclient.Config{} - mergo.MergeWithOverwrite(mergedConfig, promptedConfig) - mergo.MergeWithOverwrite(mergedConfig, previouslyMergedConfig) + mergo.Merge(mergedConfig, promptedConfig, mergo.WithOverride) + mergo.Merge(mergedConfig, previouslyMergedConfig, mergo.WithOverride) config.promptedCredentials.username = mergedConfig.Username config.promptedCredentials.password = mergedConfig.Password } @@ -463,12 +463,12 @@ func (config *DirectClientConfig) getContext() (clientcmdapi.Context, error) { mergedContext := clientcmdapi.NewContext() if configContext, exists := contexts[contextName]; exists { - mergo.MergeWithOverwrite(mergedContext, configContext) + mergo.Merge(mergedContext, configContext, mergo.WithOverride) } else if required { return clientcmdapi.Context{}, fmt.Errorf("context %q does not exist", contextName) } if config.overrides != nil { - mergo.MergeWithOverwrite(mergedContext, config.overrides.Context) + mergo.Merge(mergedContext, config.overrides.Context, mergo.WithOverride) } return *mergedContext, nil @@ -481,12 +481,12 @@ func (config *DirectClientConfig) getAuthInfo() (clientcmdapi.AuthInfo, error) { mergedAuthInfo := clientcmdapi.NewAuthInfo() if configAuthInfo, exists := authInfos[authInfoName]; exists { - mergo.MergeWithOverwrite(mergedAuthInfo, configAuthInfo) + mergo.Merge(mergedAuthInfo, configAuthInfo, mergo.WithOverride) } else if required { return clientcmdapi.AuthInfo{}, fmt.Errorf("auth info %q does not exist", authInfoName) } if config.overrides != nil { - mergo.MergeWithOverwrite(mergedAuthInfo, config.overrides.AuthInfo) + mergo.Merge(mergedAuthInfo, config.overrides.AuthInfo, mergo.WithOverride) } return *mergedAuthInfo, nil @@ -499,15 +499,15 @@ func (config *DirectClientConfig) getCluster() (clientcmdapi.Cluster, error) { mergedClusterInfo := clientcmdapi.NewCluster() if config.overrides != nil { - mergo.MergeWithOverwrite(mergedClusterInfo, config.overrides.ClusterDefaults) + mergo.Merge(mergedClusterInfo, config.overrides.ClusterDefaults, mergo.WithOverride) } if configClusterInfo, exists := clusterInfos[clusterInfoName]; exists { - mergo.MergeWithOverwrite(mergedClusterInfo, configClusterInfo) + mergo.Merge(mergedClusterInfo, configClusterInfo, mergo.WithOverride) } else if required { return clientcmdapi.Cluster{}, fmt.Errorf("cluster %q does not exist", clusterInfoName) } if config.overrides != nil { - mergo.MergeWithOverwrite(mergedClusterInfo, config.overrides.ClusterInfo) + mergo.Merge(mergedClusterInfo, config.overrides.ClusterInfo, mergo.WithOverride) } // * An override of --insecure-skip-tls-verify=true and no accompanying CA/CA data should clear already-set CA/CA data @@ -548,11 +548,12 @@ func (config *inClusterClientConfig) RawConfig() (clientcmdapi.Config, error) { } func (config *inClusterClientConfig) ClientConfig() (*restclient.Config, error) { - if config.inClusterConfigProvider == nil { - config.inClusterConfigProvider = restclient.InClusterConfig + inClusterConfigProvider := config.inClusterConfigProvider + if inClusterConfigProvider == nil { + inClusterConfigProvider = restclient.InClusterConfig } - icc, err := config.inClusterConfigProvider() + icc, err := inClusterConfigProvider() if err != nil { return nil, err } @@ -572,7 +573,7 @@ func (config *inClusterClientConfig) ClientConfig() (*restclient.Config, error) } } - return icc, err + return icc, nil } func (config *inClusterClientConfig) Namespace() (string, bool, error) { @@ -611,7 +612,7 @@ func (config *inClusterClientConfig) Possible() bool { // to the default config. func BuildConfigFromFlags(masterUrl, kubeconfigPath string) (*restclient.Config, error) { if kubeconfigPath == "" && masterUrl == "" { - klog.Warningf("Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.") + klog.Warning("Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.") kubeconfig, err := restclient.InClusterConfig() if err == nil { return kubeconfig, nil diff --git a/vendor/k8s.io/client-go/tools/clientcmd/config.go b/vendor/k8s.io/client-go/tools/clientcmd/config.go index a7eae66bfa..12c8b84f37 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/config.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/config.go @@ -374,7 +374,7 @@ func (p *persister) Persist(config map[string]string) error { authInfo, ok := newConfig.AuthInfos[p.user] if ok && authInfo.AuthProvider != nil { authInfo.AuthProvider.Config = config - ModifyConfig(p.configAccess, *newConfig, false) + return ModifyConfig(p.configAccess, *newConfig, false) } return nil } diff --git a/vendor/k8s.io/client-go/tools/clientcmd/loader.go b/vendor/k8s.io/client-go/tools/clientcmd/loader.go index 901ed50c42..78bd9ed8d5 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/loader.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/loader.go @@ -18,10 +18,8 @@ package clientcmd import ( "fmt" - "io" "io/ioutil" "os" - "path" "path/filepath" "reflect" goruntime "runtime" @@ -48,24 +46,24 @@ const ( ) var ( - RecommendedConfigDir = path.Join(homedir.HomeDir(), RecommendedHomeDir) - RecommendedHomeFile = path.Join(RecommendedConfigDir, RecommendedFileName) - RecommendedSchemaFile = path.Join(RecommendedConfigDir, RecommendedSchemaName) + RecommendedConfigDir = filepath.Join(homedir.HomeDir(), RecommendedHomeDir) + RecommendedHomeFile = filepath.Join(RecommendedConfigDir, RecommendedFileName) + RecommendedSchemaFile = filepath.Join(RecommendedConfigDir, RecommendedSchemaName) ) // currentMigrationRules returns a map that holds the history of recommended home directories used in previous versions. // Any future changes to RecommendedHomeFile and related are expected to add a migration rule here, in order to make // sure existing config files are migrated to their new locations properly. func currentMigrationRules() map[string]string { - oldRecommendedHomeFile := path.Join(os.Getenv("HOME"), "/.kube/.kubeconfig") - oldRecommendedWindowsHomeFile := path.Join(os.Getenv("HOME"), RecommendedHomeDir, RecommendedFileName) - - migrationRules := map[string]string{} - migrationRules[RecommendedHomeFile] = oldRecommendedHomeFile + var oldRecommendedHomeFileName string if goruntime.GOOS == "windows" { - migrationRules[RecommendedHomeFile] = oldRecommendedWindowsHomeFile + oldRecommendedHomeFileName = RecommendedFileName + } else { + oldRecommendedHomeFileName = ".kubeconfig" + } + return map[string]string{ + RecommendedHomeFile: filepath.Join(os.Getenv("HOME"), RecommendedHomeDir, oldRecommendedHomeFileName), } - return migrationRules } type ClientConfigLoader interface { @@ -227,7 +225,7 @@ func (rules *ClientConfigLoadingRules) Load() (*clientcmdapi.Config, error) { mapConfig := clientcmdapi.NewConfig() for _, kubeconfig := range kubeconfigs { - mergo.MergeWithOverwrite(mapConfig, kubeconfig) + mergo.Merge(mapConfig, kubeconfig, mergo.WithOverride) } // merge all of the struct values in the reverse order so that priority is given correctly @@ -235,14 +233,14 @@ func (rules *ClientConfigLoadingRules) Load() (*clientcmdapi.Config, error) { nonMapConfig := clientcmdapi.NewConfig() for i := len(kubeconfigs) - 1; i >= 0; i-- { kubeconfig := kubeconfigs[i] - mergo.MergeWithOverwrite(nonMapConfig, kubeconfig) + mergo.Merge(nonMapConfig, kubeconfig, mergo.WithOverride) } // since values are overwritten, but maps values are not, we can merge the non-map config on top of the map config and // get the values we expect. config := clientcmdapi.NewConfig() - mergo.MergeWithOverwrite(config, mapConfig) - mergo.MergeWithOverwrite(config, nonMapConfig) + mergo.Merge(config, mapConfig, mergo.WithOverride) + mergo.Merge(config, nonMapConfig, mergo.WithOverride) if rules.ResolvePaths() { if err := ResolveLocalPaths(config); err != nil { @@ -283,20 +281,15 @@ func (rules *ClientConfigLoadingRules) Migrate() error { return fmt.Errorf("cannot migrate %v to %v because it is a directory", source, destination) } - in, err := os.Open(source) + data, err := ioutil.ReadFile(source) if err != nil { return err } - defer in.Close() - out, err := os.Create(destination) + // destination is created with mode 0666 before umask + err = ioutil.WriteFile(destination, data, 0666) if err != nil { return err } - defer out.Close() - - if _, err = io.Copy(out, in); err != nil { - return err - } } return nil diff --git a/vendor/k8s.io/client-go/tools/events/OWNERS b/vendor/k8s.io/client-go/tools/events/OWNERS index fbd0a6a013..05d68e687f 100644 --- a/vendor/k8s.io/client-go/tools/events/OWNERS +++ b/vendor/k8s.io/client-go/tools/events/OWNERS @@ -1,8 +1,10 @@ # See the OWNERS docs at https://go.k8s.io/owners approvers: +- sig-instrumentation-approvers - yastij - wojtek-t reviewers: +- sig-instrumentation-reviewers - yastij - wojtek-t diff --git a/vendor/k8s.io/client-go/tools/leaderelection/OWNERS b/vendor/k8s.io/client-go/tools/leaderelection/OWNERS index 9ece5e1ea4..2ba793ee80 100644 --- a/vendor/k8s.io/client-go/tools/leaderelection/OWNERS +++ b/vendor/k8s.io/client-go/tools/leaderelection/OWNERS @@ -7,7 +7,6 @@ reviewers: - wojtek-t - deads2k - mikedanese -- gmarek - timothysc - ingvagabund - resouer diff --git a/vendor/k8s.io/client-go/tools/leaderelection/resourcelock/interface.go b/vendor/k8s.io/client-go/tools/leaderelection/resourcelock/interface.go index c5d7ae3c57..bc77c2eda8 100644 --- a/vendor/k8s.io/client-go/tools/leaderelection/resourcelock/interface.go +++ b/vendor/k8s.io/client-go/tools/leaderelection/resourcelock/interface.go @@ -145,10 +145,13 @@ func New(lockType string, ns string, name string, coreClient corev1.CoreV1Interf } // NewFromKubeconfig will create a lock of a given type according to the input parameters. +// Timeout set for a client used to contact to Kubernetes should be lower than +// RenewDeadline to keep a single hung request from forcing a leader loss. +// Setting it to max(time.Second, RenewDeadline/2) as a reasonable heuristic. func NewFromKubeconfig(lockType string, ns string, name string, rlc ResourceLockConfig, kubeconfig *restclient.Config, renewDeadline time.Duration) (Interface, error) { // shallow copy, do not modify the kubeconfig config := *kubeconfig - timeout := ((renewDeadline / time.Millisecond) / 2) * time.Millisecond + timeout := renewDeadline / 2 if timeout < time.Second { timeout = time.Second } diff --git a/vendor/k8s.io/client-go/tools/metrics/metrics.go b/vendor/k8s.io/client-go/tools/metrics/metrics.go index 5194026bdb..597dc8e539 100644 --- a/vendor/k8s.io/client-go/tools/metrics/metrics.go +++ b/vendor/k8s.io/client-go/tools/metrics/metrics.go @@ -19,6 +19,7 @@ limitations under the License. package metrics import ( + "context" "net/url" "sync" "time" @@ -38,12 +39,18 @@ type ExpiryMetric interface { // LatencyMetric observes client latency partitioned by verb and url. type LatencyMetric interface { - Observe(verb string, u url.URL, latency time.Duration) + Observe(ctx context.Context, verb string, u url.URL, latency time.Duration) } // ResultMetric counts response codes partitioned by method and host. type ResultMetric interface { - Increment(code string, method string, host string) + Increment(ctx context.Context, code string, method string, host string) +} + +// CallsMetric counts calls that take place for a specific exec plugin. +type CallsMetric interface { + // Increment increments a counter per exitCode and callStatus. + Increment(exitCode int, callStatus string) } var ( @@ -57,6 +64,9 @@ var ( RateLimiterLatency LatencyMetric = noopLatency{} // RequestResult is the result metric that rest clients will update. RequestResult ResultMetric = noopResult{} + // ExecPluginCalls is the number of calls made to an exec plugin, partitioned by + // exit code and call status. + ExecPluginCalls CallsMetric = noopCalls{} ) // RegisterOpts contains all the metrics to register. Metrics may be nil. @@ -66,6 +76,7 @@ type RegisterOpts struct { RequestLatency LatencyMetric RateLimiterLatency LatencyMetric RequestResult ResultMetric + ExecPluginCalls CallsMetric } // Register registers metrics for the rest client to use. This can @@ -87,6 +98,9 @@ func Register(opts RegisterOpts) { if opts.RequestResult != nil { RequestResult = opts.RequestResult } + if opts.ExecPluginCalls != nil { + ExecPluginCalls = opts.ExecPluginCalls + } }) } @@ -100,8 +114,12 @@ func (noopExpiry) Set(*time.Time) {} type noopLatency struct{} -func (noopLatency) Observe(string, url.URL, time.Duration) {} +func (noopLatency) Observe(context.Context, string, url.URL, time.Duration) {} type noopResult struct{} -func (noopResult) Increment(string, string, string) {} +func (noopResult) Increment(context.Context, string, string, string) {} + +type noopCalls struct{} + +func (noopCalls) Increment(int, string) {} diff --git a/vendor/k8s.io/client-go/tools/record/OWNERS b/vendor/k8s.io/client-go/tools/record/OWNERS index 792f356b0d..e7e739b150 100644 --- a/vendor/k8s.io/client-go/tools/record/OWNERS +++ b/vendor/k8s.io/client-go/tools/record/OWNERS @@ -1,28 +1,6 @@ # See the OWNERS docs at https://go.k8s.io/owners reviewers: -- lavalamp -- smarterclayton -- wojtek-t -- deads2k -- derekwaynecarr -- caesarxuchao -- vishh -- mikedanese -- liggitt -- nikhiljindal -- erictune -- pmorie -- dchen1107 -- saad-ali -- luxas -- yifan-gu -- mwielgus -- timothysc -- jsafrane -- dims -- krousey -- a-robinson -- aveshagarwal -- resouer -- cjcullen +- sig-instrumentation-reviewers +approvers: +- sig-instrumentation-approvers diff --git a/vendor/k8s.io/client-go/tools/record/event.go b/vendor/k8s.io/client-go/tools/record/event.go index 48ef45bb5b..30a6660198 100644 --- a/vendor/k8s.io/client-go/tools/record/event.go +++ b/vendor/k8s.io/client-go/tools/record/event.go @@ -155,21 +155,21 @@ func (a *EventRecorderAdapter) Eventf(regarding, _ runtime.Object, eventtype, re // Creates a new event broadcaster. func NewBroadcaster() EventBroadcaster { return &eventBroadcasterImpl{ - Broadcaster: watch.NewBroadcaster(maxQueuedEvents, watch.DropIfChannelFull), + Broadcaster: watch.NewLongQueueBroadcaster(maxQueuedEvents, watch.DropIfChannelFull), sleepDuration: defaultSleepDuration, } } func NewBroadcasterForTests(sleepDuration time.Duration) EventBroadcaster { return &eventBroadcasterImpl{ - Broadcaster: watch.NewBroadcaster(maxQueuedEvents, watch.DropIfChannelFull), + Broadcaster: watch.NewLongQueueBroadcaster(maxQueuedEvents, watch.DropIfChannelFull), sleepDuration: sleepDuration, } } func NewBroadcasterWithCorrelatorOptions(options CorrelatorOptions) EventBroadcaster { return &eventBroadcasterImpl{ - Broadcaster: watch.NewBroadcaster(maxQueuedEvents, watch.DropIfChannelFull), + Broadcaster: watch.NewLongQueueBroadcaster(maxQueuedEvents, watch.DropIfChannelFull), sleepDuration: defaultSleepDuration, options: options, } @@ -323,7 +323,7 @@ type recorderImpl struct { clock clock.Clock } -func (recorder *recorderImpl) generateEvent(object runtime.Object, annotations map[string]string, timestamp metav1.Time, eventtype, reason, message string) { +func (recorder *recorderImpl) generateEvent(object runtime.Object, annotations map[string]string, eventtype, reason, message string) { ref, err := ref.GetReference(recorder.scheme, object) if err != nil { klog.Errorf("Could not construct reference to: '%#v' due to: '%v'. Will not report event: '%v' '%v' '%v'", object, err, eventtype, reason, message) @@ -338,15 +338,18 @@ func (recorder *recorderImpl) generateEvent(object runtime.Object, annotations m event := recorder.makeEvent(ref, annotations, eventtype, reason, message) event.Source = recorder.source - go func() { - // NOTE: events should be a non-blocking operation - defer utilruntime.HandleCrash() - recorder.Action(watch.Added, event) - }() + // NOTE: events should be a non-blocking operation, but we also need to not + // put this in a goroutine, otherwise we'll race to write to a closed channel + // when we go to shut down this broadcaster. Just drop events if we get overloaded, + // and log an error if that happens (we've configured the broadcaster to drop + // outgoing events anyway). + if sent := recorder.ActionOrDrop(watch.Added, event); !sent { + klog.Errorf("unable to record event: too many queued events, dropped event %#v", event) + } } func (recorder *recorderImpl) Event(object runtime.Object, eventtype, reason, message string) { - recorder.generateEvent(object, nil, metav1.Now(), eventtype, reason, message) + recorder.generateEvent(object, nil, eventtype, reason, message) } func (recorder *recorderImpl) Eventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{}) { @@ -354,7 +357,7 @@ func (recorder *recorderImpl) Eventf(object runtime.Object, eventtype, reason, m } func (recorder *recorderImpl) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) { - recorder.generateEvent(object, annotations, metav1.Now(), eventtype, reason, fmt.Sprintf(messageFmt, args...)) + recorder.generateEvent(object, annotations, eventtype, reason, fmt.Sprintf(messageFmt, args...)) } func (recorder *recorderImpl) makeEvent(ref *v1.ObjectReference, annotations map[string]string, eventtype, reason, message string) *v1.Event { diff --git a/vendor/k8s.io/client-go/tools/remotecommand/v2.go b/vendor/k8s.io/client-go/tools/remotecommand/v2.go index 4b0001502a..2f5561c942 100644 --- a/vendor/k8s.io/client-go/tools/remotecommand/v2.go +++ b/vendor/k8s.io/client-go/tools/remotecommand/v2.go @@ -142,6 +142,10 @@ func (p *streamProtocolV2) copyStdout(wg *sync.WaitGroup) { go func() { defer runtime.HandleCrash() defer wg.Done() + // make sure, packet in queue can be consumed. + // block in queue may lead to deadlock in conn.server + // issue: https://github.com/kubernetes/kubernetes/issues/96339 + defer io.Copy(ioutil.Discard, p.remoteStdout) if _, err := io.Copy(p.Stdout, p.remoteStdout); err != nil { runtime.HandleError(err) @@ -158,6 +162,7 @@ func (p *streamProtocolV2) copyStderr(wg *sync.WaitGroup) { go func() { defer runtime.HandleCrash() defer wg.Done() + defer io.Copy(ioutil.Discard, p.remoteStderr) if _, err := io.Copy(p.Stderr, p.remoteStderr); err != nil { runtime.HandleError(err) diff --git a/vendor/k8s.io/client-go/tools/watch/informerwatcher.go b/vendor/k8s.io/client-go/tools/watch/informerwatcher.go index 4e0a400bb5..5e6aad5cf1 100644 --- a/vendor/k8s.io/client-go/tools/watch/informerwatcher.go +++ b/vendor/k8s.io/client-go/tools/watch/informerwatcher.go @@ -127,7 +127,7 @@ func NewIndexerInformerWatcher(lw cache.ListerWatcher, objType runtime.Object) ( // We have no means of passing the additional information down using // watch API based on watch.Event but the caller can filter such // objects by checking if metadata.deletionTimestamp is set - obj = staleObj + obj = staleObj.Obj } e.push(watch.Event{ diff --git a/vendor/k8s.io/client-go/tools/watch/retrywatcher.go b/vendor/k8s.io/client-go/tools/watch/retrywatcher.go index 62af45def2..1ed46ccb9e 100644 --- a/vendor/k8s.io/client-go/tools/watch/retrywatcher.go +++ b/vendor/k8s.io/client-go/tools/watch/retrywatcher.go @@ -116,24 +116,24 @@ func (rw *RetryWatcher) doReceive() (bool, time.Duration) { return false, 0 case io.ErrUnexpectedEOF: - klog.V(1).Infof("Watch closed with unexpected EOF: %v", err) + klog.V(1).InfoS("Watch closed with unexpected EOF", "err", err) return false, 0 default: - msg := "Watch failed: %v" + msg := "Watch failed" if net.IsProbableEOF(err) || net.IsTimeout(err) { - klog.V(5).Infof(msg, err) + klog.V(5).InfoS(msg, "err", err) // Retry return false, 0 } - klog.Errorf(msg, err) + klog.ErrorS(err, msg) // Retry return false, 0 } if watcher == nil { - klog.Error("Watch returned nil watcher") + klog.ErrorS(nil, "Watch returned nil watcher") // Retry return false, 0 } @@ -144,11 +144,11 @@ func (rw *RetryWatcher) doReceive() (bool, time.Duration) { for { select { case <-rw.stopChan: - klog.V(4).Info("Stopping RetryWatcher.") + klog.V(4).InfoS("Stopping RetryWatcher.") return true, 0 case event, ok := <-ch: if !ok { - klog.V(4).Infof("Failed to get event! Re-creating the watcher. Last RV: %s", rw.lastResourceVersion) + klog.V(4).InfoS("Failed to get event! Re-creating the watcher.", "resourceVersion", rw.lastResourceVersion) return false, 0 } diff --git a/vendor/k8s.io/client-go/transport/round_trippers.go b/vendor/k8s.io/client-go/transport/round_trippers.go index 056bc023c5..cd0a4455f1 100644 --- a/vendor/k8s.io/client-go/transport/round_trippers.go +++ b/vendor/k8s.io/client-go/transport/round_trippers.go @@ -23,9 +23,9 @@ import ( "time" "golang.org/x/oauth2" - "k8s.io/klog/v2" utilnet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/klog/v2" ) // HTTPWrappersForConfig wraps a round tripper with any relevant layered @@ -68,13 +68,13 @@ func HTTPWrappersForConfig(config *Config, rt http.RoundTripper) (http.RoundTrip func DebugWrappers(rt http.RoundTripper) http.RoundTripper { switch { case bool(klog.V(9).Enabled()): - rt = newDebuggingRoundTripper(rt, debugCurlCommand, debugURLTiming, debugResponseHeaders) + rt = NewDebuggingRoundTripper(rt, DebugCurlCommand, DebugURLTiming, DebugResponseHeaders) case bool(klog.V(8).Enabled()): - rt = newDebuggingRoundTripper(rt, debugJustURL, debugRequestHeaders, debugResponseStatus, debugResponseHeaders) + rt = NewDebuggingRoundTripper(rt, DebugJustURL, DebugRequestHeaders, DebugResponseStatus, DebugResponseHeaders) case bool(klog.V(7).Enabled()): - rt = newDebuggingRoundTripper(rt, debugJustURL, debugRequestHeaders, debugResponseStatus) + rt = NewDebuggingRoundTripper(rt, DebugJustURL, DebugRequestHeaders, DebugResponseStatus) case bool(klog.V(6).Enabled()): - rt = newDebuggingRoundTripper(rt, debugURLTiming) + rt = NewDebuggingRoundTripper(rt, DebugURLTiming) } return rt @@ -353,25 +353,35 @@ func (r *requestInfo) toCurl() string { // through it based on what is configured type debuggingRoundTripper struct { delegatedRoundTripper http.RoundTripper - - levels map[debugLevel]bool + levels map[DebugLevel]bool } -type debugLevel int +// DebugLevel is used to enable debugging of certain +// HTTP requests and responses fields via the debuggingRoundTripper. +type DebugLevel int const ( - debugJustURL debugLevel = iota - debugURLTiming - debugCurlCommand - debugRequestHeaders - debugResponseStatus - debugResponseHeaders + // DebugJustURL will add to the debug output HTTP requests method and url. + DebugJustURL DebugLevel = iota + // DebugURLTiming will add to the debug output the duration of HTTP requests. + DebugURLTiming + // DebugCurlCommand will add to the debug output the curl command equivalent to the + // HTTP request. + DebugCurlCommand + // DebugRequestHeaders will add to the debug output the HTTP requests headers. + DebugRequestHeaders + // DebugResponseStatus will add to the debug output the HTTP response status. + DebugResponseStatus + // DebugResponseHeaders will add to the debug output the HTTP response headers. + DebugResponseHeaders ) -func newDebuggingRoundTripper(rt http.RoundTripper, levels ...debugLevel) *debuggingRoundTripper { +// NewDebuggingRoundTripper allows to display in the logs output debug information +// on the API requests performed by the client. +func NewDebuggingRoundTripper(rt http.RoundTripper, levels ...DebugLevel) http.RoundTripper { drt := &debuggingRoundTripper{ delegatedRoundTripper: rt, - levels: make(map[debugLevel]bool, len(levels)), + levels: make(map[DebugLevel]bool, len(levels)), } for _, v := range levels { drt.levels[v] = true @@ -418,15 +428,14 @@ func maskValue(key string, value string) string { func (rt *debuggingRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { reqInfo := newRequestInfo(req) - if rt.levels[debugJustURL] { + if rt.levels[DebugJustURL] { klog.Infof("%s %s", reqInfo.RequestVerb, reqInfo.RequestURL) } - if rt.levels[debugCurlCommand] { + if rt.levels[DebugCurlCommand] { klog.Infof("%s", reqInfo.toCurl()) - } - if rt.levels[debugRequestHeaders] { - klog.Infof("Request Headers:") + if rt.levels[DebugRequestHeaders] { + klog.Info("Request Headers:") for key, values := range reqInfo.RequestHeaders { for _, value := range values { value = maskValue(key, value) @@ -441,14 +450,14 @@ func (rt *debuggingRoundTripper) RoundTrip(req *http.Request) (*http.Response, e reqInfo.complete(response, err) - if rt.levels[debugURLTiming] { + if rt.levels[DebugURLTiming] { klog.Infof("%s %s %s in %d milliseconds", reqInfo.RequestVerb, reqInfo.RequestURL, reqInfo.ResponseStatus, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond)) } - if rt.levels[debugResponseStatus] { + if rt.levels[DebugResponseStatus] { klog.Infof("Response Status: %s in %d milliseconds", reqInfo.ResponseStatus, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond)) } - if rt.levels[debugResponseHeaders] { - klog.Infof("Response Headers:") + if rt.levels[DebugResponseHeaders] { + klog.Info("Response Headers:") for key, values := range reqInfo.ResponseHeaders { for _, value := range values { klog.Infof(" %s: %s", key, value) diff --git a/vendor/k8s.io/client-go/transport/spdy/spdy.go b/vendor/k8s.io/client-go/transport/spdy/spdy.go index 682f964f6f..406d3cc19c 100644 --- a/vendor/k8s.io/client-go/transport/spdy/spdy.go +++ b/vendor/k8s.io/client-go/transport/spdy/spdy.go @@ -20,6 +20,7 @@ import ( "fmt" "net/http" "net/url" + "time" "k8s.io/apimachinery/pkg/util/httpstream" "k8s.io/apimachinery/pkg/util/httpstream/spdy" @@ -42,7 +43,13 @@ func RoundTripperFor(config *restclient.Config) (http.RoundTripper, Upgrader, er if config.Proxy != nil { proxy = config.Proxy } - upgradeRoundTripper := spdy.NewRoundTripperWithProxy(tlsConfig, true, false, proxy) + upgradeRoundTripper := spdy.NewRoundTripperWithConfig(spdy.RoundTripperConfig{ + TLS: tlsConfig, + FollowRedirects: true, + RequireSameHostRedirects: false, + Proxier: proxy, + PingPeriod: time.Second * 5, + }) wrapper, err := restclient.HTTPWrappersForConfig(config, upgradeRoundTripper) if err != nil { return nil, nil, err diff --git a/vendor/k8s.io/client-go/transport/token_source.go b/vendor/k8s.io/client-go/transport/token_source.go index f730c39759..fea02e6111 100644 --- a/vendor/k8s.io/client-go/transport/token_source.go +++ b/vendor/k8s.io/client-go/transport/token_source.go @@ -43,9 +43,29 @@ func TokenSourceWrapTransport(ts oauth2.TokenSource) func(http.RoundTripper) htt } } -// NewCachedFileTokenSource returns a oauth2.TokenSource reads a token from a -// file at a specified path and periodically reloads it. -func NewCachedFileTokenSource(path string) oauth2.TokenSource { +type ResettableTokenSource interface { + oauth2.TokenSource + ResetTokenOlderThan(time.Time) +} + +// ResettableTokenSourceWrapTransport returns a WrapTransport that injects bearer tokens +// authentication from an ResettableTokenSource. +func ResettableTokenSourceWrapTransport(ts ResettableTokenSource) func(http.RoundTripper) http.RoundTripper { + return func(rt http.RoundTripper) http.RoundTripper { + return &tokenSourceTransport{ + base: rt, + ort: &oauth2.Transport{ + Source: ts, + Base: rt, + }, + src: ts, + } + } +} + +// NewCachedFileTokenSource returns a resettable token source which reads a +// token from a file at a specified path and periodically reloads it. +func NewCachedFileTokenSource(path string) *cachingTokenSource { return &cachingTokenSource{ now: time.Now, leeway: 10 * time.Second, @@ -60,9 +80,9 @@ func NewCachedFileTokenSource(path string) oauth2.TokenSource { } } -// NewCachedTokenSource returns a oauth2.TokenSource reads a token from a -// designed TokenSource. The ts would provide the source of token. -func NewCachedTokenSource(ts oauth2.TokenSource) oauth2.TokenSource { +// NewCachedTokenSource returns resettable token source with caching. It reads +// a token from a designed TokenSource if not in cache or expired. +func NewCachedTokenSource(ts oauth2.TokenSource) *cachingTokenSource { return &cachingTokenSource{ now: time.Now, base: ts, @@ -72,6 +92,7 @@ func NewCachedTokenSource(ts oauth2.TokenSource) oauth2.TokenSource { type tokenSourceTransport struct { base http.RoundTripper ort http.RoundTripper + src ResettableTokenSource } func (tst *tokenSourceTransport) RoundTrip(req *http.Request) (*http.Response, error) { @@ -79,7 +100,15 @@ func (tst *tokenSourceTransport) RoundTrip(req *http.Request) (*http.Response, e if req.Header.Get("Authorization") != "" { return tst.base.RoundTrip(req) } - return tst.ort.RoundTrip(req) + // record time before RoundTrip to make sure newly acquired Unauthorized + // token would not be reset. Another request from user is required to reset + // and proceed. + start := time.Now() + resp, err := tst.ort.RoundTrip(req) + if err == nil && resp != nil && resp.StatusCode == 401 && tst.src != nil { + tst.src.ResetTokenOlderThan(start) + } + return resp, err } func (tst *tokenSourceTransport) CancelRequest(req *http.Request) { @@ -119,13 +148,12 @@ type cachingTokenSource struct { sync.RWMutex tok *oauth2.Token + t time.Time // for testing now func() time.Time } -var _ = oauth2.TokenSource(&cachingTokenSource{}) - func (ts *cachingTokenSource) Token() (*oauth2.Token, error) { now := ts.now() // fast path @@ -153,6 +181,16 @@ func (ts *cachingTokenSource) Token() (*oauth2.Token, error) { return ts.tok, nil } + ts.t = ts.now() ts.tok = tok return tok, nil } + +func (ts *cachingTokenSource) ResetTokenOlderThan(t time.Time) { + ts.Lock() + defer ts.Unlock() + if ts.t.Before(t) { + ts.tok = nil + ts.t = time.Time{} + } +} diff --git a/vendor/k8s.io/client-go/util/connrotation/connrotation.go b/vendor/k8s.io/client-go/util/connrotation/connrotation.go index f98faee47d..2b9bf72bde 100644 --- a/vendor/k8s.io/client-go/util/connrotation/connrotation.go +++ b/vendor/k8s.io/client-go/util/connrotation/connrotation.go @@ -33,18 +33,40 @@ type DialFunc func(ctx context.Context, network, address string) (net.Conn, erro // Dialer opens connections through Dial and tracks them. type Dialer struct { dial DialFunc - - mu sync.Mutex - conns map[*closableConn]struct{} + *ConnectionTracker } // NewDialer creates a new Dialer instance. +// Equivalent to NewDialerWithTracker(dial, nil). +func NewDialer(dial DialFunc) *Dialer { + return NewDialerWithTracker(dial, nil) +} + +// NewDialerWithTracker creates a new Dialer instance. // // If dial is not nil, it will be used to create new underlying connections. // Otherwise net.DialContext is used. -func NewDialer(dial DialFunc) *Dialer { +// If tracker is not nil, it will be used to track new underlying connections. +// Otherwise NewConnectionTracker() is used. +func NewDialerWithTracker(dial DialFunc, tracker *ConnectionTracker) *Dialer { + if tracker == nil { + tracker = NewConnectionTracker() + } return &Dialer{ - dial: dial, + dial: dial, + ConnectionTracker: tracker, + } +} + +// ConnectionTracker keeps track of opened connections +type ConnectionTracker struct { + mu sync.Mutex + conns map[*closableConn]struct{} +} + +// NewConnectionTracker returns a connection tracker for use with NewDialerWithTracker +func NewConnectionTracker() *ConnectionTracker { + return &ConnectionTracker{ conns: make(map[*closableConn]struct{}), } } @@ -52,17 +74,40 @@ func NewDialer(dial DialFunc) *Dialer { // CloseAll forcibly closes all tracked connections. // // Note: new connections may get created before CloseAll returns. -func (d *Dialer) CloseAll() { - d.mu.Lock() - conns := d.conns - d.conns = make(map[*closableConn]struct{}) - d.mu.Unlock() +func (c *ConnectionTracker) CloseAll() { + c.mu.Lock() + conns := c.conns + c.conns = make(map[*closableConn]struct{}) + c.mu.Unlock() for conn := range conns { conn.Close() } } +// Track adds the connection to the list of tracked connections, +// and returns a wrapped copy of the connection that stops tracking the connection +// when it is closed. +func (c *ConnectionTracker) Track(conn net.Conn) net.Conn { + closable := &closableConn{Conn: conn} + + // When the connection is closed, remove it from the map. This will + // be no-op if the connection isn't in the map, e.g. if CloseAll() + // is called. + closable.onClose = func() { + c.mu.Lock() + delete(c.conns, closable) + c.mu.Unlock() + } + + // Start tracking the connection + c.mu.Lock() + c.conns[closable] = struct{}{} + c.mu.Unlock() + + return closable +} + // Dial creates a new tracked connection. func (d *Dialer) Dial(network, address string) (net.Conn, error) { return d.DialContext(context.Background(), network, address) @@ -74,24 +119,7 @@ func (d *Dialer) DialContext(ctx context.Context, network, address string) (net. if err != nil { return nil, err } - - closable := &closableConn{Conn: conn} - - // When the connection is closed, remove it from the map. This will - // be no-op if the connection isn't in the map, e.g. if CloseAll() - // is called. - closable.onClose = func() { - d.mu.Lock() - delete(d.conns, closable) - d.mu.Unlock() - } - - // Start tracking the connection - d.mu.Lock() - d.conns[closable] = struct{}{} - d.mu.Unlock() - - return closable, nil + return d.ConnectionTracker.Track(conn), nil } type closableConn struct { diff --git a/vendor/k8s.io/client-go/util/workqueue/queue.go b/vendor/k8s.io/client-go/util/workqueue/queue.go index 39009b8e79..f7c14ddcdb 100644 --- a/vendor/k8s.io/client-go/util/workqueue/queue.go +++ b/vendor/k8s.io/client-go/util/workqueue/queue.go @@ -55,7 +55,13 @@ func newQueue(c clock.Clock, metrics queueMetrics, updatePeriod time.Duration) * metrics: metrics, unfinishedWorkUpdatePeriod: updatePeriod, } - go t.updateUnfinishedWorkLoop() + + // Don't start the goroutine for a type of noMetrics so we don't consume + // resources unnecessarily + if _, ok := metrics.(noMetrics); !ok { + go t.updateUnfinishedWorkLoop() + } + return t } diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/README.md b/vendor/k8s.io/code-generator/cmd/client-gen/README.md index 092a61151c..b8206127ff 100644 --- a/vendor/k8s.io/code-generator/cmd/client-gen/README.md +++ b/vendor/k8s.io/code-generator/cmd/client-gen/README.md @@ -1,4 +1,2 @@ See [generating-clientset.md](https://git.k8s.io/community/contributors/devel/sig-api-machinery/generating-clientset.md) - -[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/staging/src/k8s.io/code-generator/client-gen/README.md?pixel)]() diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/args/args.go b/vendor/k8s.io/code-generator/cmd/client-gen/args/args.go index 949369cd70..2f31de8487 100644 --- a/vendor/k8s.io/code-generator/cmd/client-gen/args/args.go +++ b/vendor/k8s.io/code-generator/cmd/client-gen/args/args.go @@ -52,16 +52,22 @@ type CustomArgs struct { // PluralExceptions specify list of exceptions used when pluralizing certain types. // For example 'Endpoints:Endpoints', otherwise the pluralizer will generate 'Endpointes'. PluralExceptions []string + + // ApplyConfigurationPackage is the package of apply builders generated by typebuilder-gen. + // If non-empty, Apply functions are generated for each type and reference the apply builders. + // If empty (""), Apply functions are not generated. + ApplyConfigurationPackage string } func NewDefaults() (*args.GeneratorArgs, *CustomArgs) { genericArgs := args.Default().WithoutDefaultFlagParsing() customArgs := &CustomArgs{ - ClientsetName: "internalclientset", - ClientsetAPIPath: "/apis", - ClientsetOnly: false, - FakeClient: true, - PluralExceptions: []string{"Endpoints:Endpoints"}, + ClientsetName: "internalclientset", + ClientsetAPIPath: "/apis", + ClientsetOnly: false, + FakeClient: true, + PluralExceptions: []string{"Endpoints:Endpoints"}, + ApplyConfigurationPackage: "", } genericArgs.CustomArgs = customArgs genericArgs.InputDirs = DefaultInputDirs @@ -84,6 +90,7 @@ func (ca *CustomArgs) AddFlags(fs *pflag.FlagSet, inputBase string) { pflag.BoolVar(&ca.FakeClient, "fake-clientset", ca.FakeClient, "when set, client-gen will generate the fake clientset that can be used in tests") fs.StringSliceVar(&ca.PluralExceptions, "plural-exceptions", ca.PluralExceptions, "list of comma separated plural exception definitions in Type:PluralizedType form") + fs.StringVar(&ca.ApplyConfigurationPackage, "apply-configuration-package", ca.ApplyConfigurationPackage, "optional package of apply configurations, generated by applyconfiguration-gen, that are required to generate Apply functions for each type in the clientset. By default Apply functions are not generated.") // support old flags fs.SetNormalizeFunc(mapFlagName("clientset-path", "output-package", fs.GetNormalizeFunc())) diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/args/gvpackages.go b/vendor/k8s.io/code-generator/cmd/client-gen/args/gvpackages.go index 8da71d6f9b..50d29a95be 100644 --- a/vendor/k8s.io/code-generator/cmd/client-gen/args/gvpackages.go +++ b/vendor/k8s.io/code-generator/cmd/client-gen/args/gvpackages.go @@ -24,6 +24,7 @@ import ( "sort" "strings" + "k8s.io/code-generator/cmd/client-gen/generators/util" "k8s.io/code-generator/cmd/client-gen/types" ) @@ -120,7 +121,7 @@ func NewGroupVersionsBuilder(groups *[]types.GroupVersions) *groupVersionsBuilde func (p *groupVersionsBuilder) update() error { var seenGroups = make(map[types.Group]*types.GroupVersions) for _, v := range p.groups { - pth, gvString := parsePathGroupVersion(v) + pth, gvString := util.ParsePathGroupVersion(v) gv, err := types.ToGroupVersion(gvString) if err != nil { return err @@ -151,17 +152,6 @@ func (p *groupVersionsBuilder) update() error { return nil } -func parsePathGroupVersion(pgvString string) (gvPath string, gvString string) { - subs := strings.Split(pgvString, "/") - length := len(subs) - switch length { - case 0, 1, 2: - return "", pgvString - default: - return strings.Join(subs[:length-2], "/"), strings.Join(subs[length-2:], "/") - } -} - func readAsCSV(val string) ([]string, error) { if val == "" { return []string{}, nil diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go index 1f1c3b4c02..5b27a1127a 100644 --- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go +++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go @@ -128,7 +128,7 @@ func DefaultNameSystem() string { return "public" } -func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, apiPath string, srcTreePath string, inputPackage string, boilerplate []byte) generator.Package { +func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, apiPath string, srcTreePath string, inputPackage string, applyBuilderPackage string, boilerplate []byte) generator.Package { groupVersionClientPackage := filepath.Join(clientsetPackage, "typed", strings.ToLower(groupPackageName), strings.ToLower(gv.Version.NonEmpty())) return &generator.DefaultPackage{ PackageName: strings.ToLower(gv.Version.NonEmpty()), @@ -151,13 +151,15 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli DefaultGen: generator.DefaultGen{ OptionalName: strings.ToLower(c.Namers["private"].Name(t)), }, - outputPackage: groupVersionClientPackage, - clientsetPackage: clientsetPackage, - group: gv.Group.NonEmpty(), - version: gv.Version.String(), - groupGoName: groupGoName, - typeToMatch: t, - imports: generator.NewImportTracker(), + outputPackage: groupVersionClientPackage, + inputPackage: inputPackage, + clientsetPackage: clientsetPackage, + applyConfigurationPackage: applyBuilderPackage, + group: gv.Group.NonEmpty(), + version: gv.Version.String(), + groupGoName: groupGoName, + typeToMatch: t, + imports: generator.NewImportTracker(), }) } @@ -390,9 +392,9 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat gv := clientgentypes.GroupVersion{Group: group.Group, Version: version.Version} types := gvToTypes[gv] inputPath := gvPackages[gv] - packageList = append(packageList, packageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, group.PackageName, groupGoNames[gv], customArgs.ClientsetAPIPath, arguments.OutputBase, inputPath, boilerplate)) + packageList = append(packageList, packageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, group.PackageName, groupGoNames[gv], customArgs.ClientsetAPIPath, arguments.OutputBase, inputPath, customArgs.ApplyConfigurationPackage, boilerplate)) if customArgs.FakeClient { - packageList = append(packageList, fake.PackageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, group.PackageName, groupGoNames[gv], inputPath, boilerplate)) + packageList = append(packageList, fake.PackageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, group.PackageName, groupGoNames[gv], inputPath, customArgs.ApplyConfigurationPackage, boilerplate)) } } } diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go index 4b3854be6e..7e11d78203 100644 --- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go +++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go @@ -29,7 +29,7 @@ import ( clientgentypes "k8s.io/code-generator/cmd/client-gen/types" ) -func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, inputPackage string, boilerplate []byte) generator.Package { +func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, inputPackage string, applyBuilderPackage string, boilerplate []byte) generator.Package { outputPackage := filepath.Join(clientsetPackage, "typed", strings.ToLower(groupPackageName), strings.ToLower(gv.Version.NonEmpty()), "fake") // TODO: should make this a function, called by here and in client-generator.go realClientPackage := filepath.Join(clientsetPackage, "typed", strings.ToLower(groupPackageName), strings.ToLower(gv.Version.NonEmpty())) @@ -54,13 +54,14 @@ func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli DefaultGen: generator.DefaultGen{ OptionalName: "fake_" + strings.ToLower(c.Namers["private"].Name(t)), }, - outputPackage: outputPackage, - inputPackage: inputPackage, - group: gv.Group.NonEmpty(), - version: gv.Version.String(), - groupGoName: groupGoName, - typeToMatch: t, - imports: generator.NewImportTracker(), + outputPackage: outputPackage, + inputPackage: inputPackage, + group: gv.Group.NonEmpty(), + version: gv.Version.String(), + groupGoName: groupGoName, + typeToMatch: t, + imports: generator.NewImportTracker(), + applyBuilderPackage: applyBuilderPackage, }) } diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go index 9efe024fca..2ea24c1acd 100644 --- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go +++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go @@ -18,6 +18,7 @@ package fake import ( "io" + gopath "path" "path/filepath" "strings" @@ -32,13 +33,14 @@ import ( // genFakeForType produces a file for each top-level type. type genFakeForType struct { generator.DefaultGen - outputPackage string - group string - version string - groupGoName string - inputPackage string - typeToMatch *types.Type - imports namer.ImportTracker + outputPackage string + group string + version string + groupGoName string + inputPackage string + typeToMatch *types.Type + imports namer.ImportTracker + applyBuilderPackage string } var _ generator.Generator = &genFakeForType{} @@ -127,12 +129,15 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io. "GetOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "GetOptions"}), "ListOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ListOptions"}), "PatchOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "PatchOptions"}), + "ApplyOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ApplyOptions"}), "UpdateOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "UpdateOptions"}), "Everything": c.Universe.Function(types.Name{Package: "k8s.io/apimachinery/pkg/labels", Name: "Everything"}), "GroupVersionResource": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersionResource"}), "GroupVersionKind": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersionKind"}), "PatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "PatchType"}), + "ApplyPatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "ApplyPatchType"}), "watchInterface": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"}), + "jsonMarshal": c.Universe.Type(types.Name{Package: "encoding/json", Name: "Marshal"}), "NewRootListAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootListAction"}), "NewListAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewListAction"}), @@ -161,6 +166,13 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io. "ExtractFromListOptions": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "ExtractFromListOptions"}), } + generateApply := len(g.applyBuilderPackage) > 0 + if generateApply { + // Generated apply builder type references required for generated Apply function + _, gvString := util.ParsePathGroupVersion(g.inputPackage) + m["applyConfig"] = types.Ref(gopath.Join(g.applyBuilderPackage, gvString), t.Name.Name+"ApplyConfiguration") + } + if tags.NonNamespaced { sw.Do(structNonNamespaced, m) } else { @@ -205,6 +217,12 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io. if tags.HasVerb("patch") { sw.Do(patchTemplate, m) } + if tags.HasVerb("apply") && generateApply { + sw.Do(applyTemplate, m) + } + if tags.HasVerb("applyStatus") && generateApply && genStatus(t) { + sw.Do(applyStatusTemplate, m) + } // generate extended client methods for _, e := range tags.Extensions { @@ -273,6 +291,11 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io. if e.HasVerb("patch") { sw.Do(adjustTemplate(e.VerbName, e.VerbType, patchTemplate), m) } + + if e.HasVerb("apply") && generateApply { + // TODO: Support apply on arbitrary subresource once it is supported by the api-server. + sw.Do(adjustTemplate(e.VerbName, e.VerbType, applyTemplate), m) + } } return sw.Error() @@ -480,3 +503,52 @@ func (c *Fake$.type|publicPlural$) Patch(ctx context.Context, name string, pt $. return obj.(*$.resultType|raw$), err } ` + +var applyTemplate = ` +// Apply takes the given apply declarative configuration, applies it and returns the applied $.resultType|private$. +func (c *Fake$.type|publicPlural$) Apply(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) { + if $.inputType|private$ == nil { + return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil") + } + data, err := $.jsonMarshal|raw$($.inputType|private$) + if err != nil { + return nil, err + } + name := $.inputType|private$.Name + if name == nil { + return nil, fmt.Errorf("$.inputType|private$.Name must be provided to Apply") + } + obj, err := c.Fake. + $if .namespaced$Invokes($.NewPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, c.ns, *name, $.ApplyPatchType|raw$, data), &$.resultType|raw${}) + $else$Invokes($.NewRootPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, *name, $.ApplyPatchType|raw$, data), &$.resultType|raw${})$end$ + if obj == nil { + return nil, err + } + return obj.(*$.resultType|raw$), err +} +` + +var applyStatusTemplate = ` +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *Fake$.type|publicPlural$) ApplyStatus(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) { + if $.inputType|private$ == nil { + return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil") + } + data, err := $.jsonMarshal|raw$($.inputType|private$) + if err != nil { + return nil, err + } + name := $.inputType|private$.Name + if name == nil { + return nil, fmt.Errorf("$.inputType|private$.Name must be provided to Apply") + } + obj, err := c.Fake. + $if .namespaced$Invokes($.NewPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, c.ns, *name, $.ApplyPatchType|raw$, data, "status"), &$.resultType|raw${}) + $else$Invokes($.NewRootPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, *name, $.ApplyPatchType|raw$, data, "status"), &$.resultType|raw${})$end$ + if obj == nil { + return nil, err + } + return obj.(*$.resultType|raw$), err +} +` diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go index 13664d0d92..37dc4a3655 100644 --- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go +++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go @@ -18,6 +18,7 @@ package generators import ( "io" + "path" "path/filepath" "strings" @@ -31,13 +32,15 @@ import ( // genClientForType produces a file for each top-level type. type genClientForType struct { generator.DefaultGen - outputPackage string - clientsetPackage string - group string - version string - groupGoName string - typeToMatch *types.Type - imports namer.ImportTracker + outputPackage string + inputPackage string + clientsetPackage string + applyConfigurationPackage string + group string + version string + groupGoName string + typeToMatch *types.Type + imports namer.ImportTracker } var _ generator.Generator = &genClientForType{} @@ -74,6 +77,9 @@ func genStatus(t *types.Type) bool { // GenerateType makes the body of a file implementing the individual typed client for type t. func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error { + generateApply := len(g.applyConfigurationPackage) > 0 + defaultVerbTemplates := buildDefaultVerbTemplates(generateApply) + subresourceDefaultVerbTemplates := buildSubresourceDefaultVerbTemplates(generateApply) sw := generator.NewSnippetWriter(w, c, "$", "$") pkg := filepath.Base(t.Name.Package) tags, err := util.ParseClientGenTags(append(t.SecondClosestCommentLines, t.CommentLines...)) @@ -143,11 +149,20 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i "GetOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "GetOptions"}), "ListOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ListOptions"}), "PatchOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "PatchOptions"}), + "ApplyOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ApplyOptions"}), "UpdateOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "UpdateOptions"}), "PatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "PatchType"}), + "ApplyPatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "ApplyPatchType"}), "watchInterface": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"}), "RESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}), "schemeParameterCodec": c.Universe.Variable(types.Name{Package: filepath.Join(g.clientsetPackage, "scheme"), Name: "ParameterCodec"}), + "jsonMarshal": c.Universe.Type(types.Name{Package: "encoding/json", Name: "Marshal"}), + } + + if generateApply { + // Generated apply configuration type references required for generated Apply function + _, gvString := util.ParsePathGroupVersion(g.inputPackage) + m["applyConfig"] = types.Ref(path.Join(g.applyConfigurationPackage, gvString), t.Name.Name+"ApplyConfiguration") } sw.Do(getterComment, m) @@ -161,12 +176,13 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i if !tags.NoVerbs { if !genStatus(t) { tags.SkipVerbs = append(tags.SkipVerbs, "updateStatus") + tags.SkipVerbs = append(tags.SkipVerbs, "applyStatus") } interfaceSuffix := "" if len(extendedMethods) > 0 { interfaceSuffix = "\n" } - sw.Do("\n"+generateInterface(tags)+interfaceSuffix, m) + sw.Do("\n"+generateInterface(defaultVerbTemplates, tags)+interfaceSuffix, m) // add extended verbs into interface for _, v := range extendedMethods { sw.Do(v.template+interfaceSuffix, v.args) @@ -215,6 +231,13 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i if tags.HasVerb("patch") { sw.Do(patchTemplate, m) } + if tags.HasVerb("apply") && generateApply { + sw.Do(applyTemplate, m) + } + if tags.HasVerb("applyStatus") && generateApply { + sw.Do(applyStatusTemplate, m) + } + // TODO: Add subresource support once apply subresources are supported on the server side // generate expansion methods for _, e := range tags.Extensions { @@ -286,6 +309,11 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i if e.HasVerb("patch") { sw.Do(adjustTemplate(e.VerbName, e.VerbType, patchTemplate), m) } + + if e.HasVerb("apply") && generateApply { + // TODO: Support apply on arbitrary subresource once it is supported by the api-server. + sw.Do(adjustTemplate(e.VerbName, e.VerbType, applyTemplate), m) + } } return sw.Error() @@ -298,34 +326,45 @@ func adjustTemplate(name, verbType, template string) string { return strings.Replace(template, " "+strings.Title(verbType), " "+name, -1) } -func generateInterface(tags util.Tags) string { +func generateInterface(defaultVerbTemplates map[string]string, tags util.Tags) string { // need an ordered list here to guarantee order of generated methods. out := []string{} for _, m := range util.SupportedVerbs { - if tags.HasVerb(m) { + if tags.HasVerb(m) && len(defaultVerbTemplates[m]) > 0 { out = append(out, defaultVerbTemplates[m]) } } return strings.Join(out, "\n") } -var subresourceDefaultVerbTemplates = map[string]string{ - "create": `Create(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`, - "list": `List(ctx context.Context, $.type|private$Name string, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`, - "update": `Update(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`, - "get": `Get(ctx context.Context, $.type|private$Name string, options $.GetOptions|raw$) (*$.resultType|raw$, error)`, +func buildSubresourceDefaultVerbTemplates(generateApply bool) map[string]string { + m := map[string]string{ + "create": `Create(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`, + "list": `List(ctx context.Context, $.type|private$Name string, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`, + "update": `Update(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`, + "get": `Get(ctx context.Context, $.type|private$Name string, options $.GetOptions|raw$) (*$.resultType|raw$, error)`, + } + // TODO: Support apply on arbitrary subresource once it is supported by the api-server. + return m } -var defaultVerbTemplates = map[string]string{ - "create": `Create(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`, - "update": `Update(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`, - "updateStatus": `UpdateStatus(ctx context.Context, $.inputType|private$ *$.type|raw$, opts $.UpdateOptions|raw$) (*$.type|raw$, error)`, - "delete": `Delete(ctx context.Context, name string, opts $.DeleteOptions|raw$) error`, - "deleteCollection": `DeleteCollection(ctx context.Context, opts $.DeleteOptions|raw$, listOpts $.ListOptions|raw$) error`, - "get": `Get(ctx context.Context, name string, opts $.GetOptions|raw$) (*$.resultType|raw$, error)`, - "list": `List(ctx context.Context, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`, - "watch": `Watch(ctx context.Context, opts $.ListOptions|raw$) ($.watchInterface|raw$, error)`, - "patch": `Patch(ctx context.Context, name string, pt $.PatchType|raw$, data []byte, opts $.PatchOptions|raw$, subresources ...string) (result *$.resultType|raw$, err error)`, +func buildDefaultVerbTemplates(generateApply bool) map[string]string { + m := map[string]string{ + "create": `Create(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`, + "update": `Update(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`, + "updateStatus": `UpdateStatus(ctx context.Context, $.inputType|private$ *$.type|raw$, opts $.UpdateOptions|raw$) (*$.type|raw$, error)`, + "delete": `Delete(ctx context.Context, name string, opts $.DeleteOptions|raw$) error`, + "deleteCollection": `DeleteCollection(ctx context.Context, opts $.DeleteOptions|raw$, listOpts $.ListOptions|raw$) error`, + "get": `Get(ctx context.Context, name string, opts $.GetOptions|raw$) (*$.resultType|raw$, error)`, + "list": `List(ctx context.Context, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`, + "watch": `Watch(ctx context.Context, opts $.ListOptions|raw$) ($.watchInterface|raw$, error)`, + "patch": `Patch(ctx context.Context, name string, pt $.PatchType|raw$, data []byte, opts $.PatchOptions|raw$, subresources ...string) (result *$.resultType|raw$, err error)`, + } + if generateApply { + m["apply"] = `Apply(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error)` + m["applyStatus"] = `ApplyStatus(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error)` + } + return m } // group client will implement this interface. @@ -608,3 +647,63 @@ func (c *$.type|privatePlural$) Patch(ctx context.Context, name string, pt $.Pat return } ` + +var applyTemplate = ` +// Apply takes the given apply declarative configuration, applies it and returns the applied $.resultType|private$. +func (c *$.type|privatePlural$) Apply(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) { + if $.inputType|private$ == nil { + return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := $.jsonMarshal|raw$($.inputType|private$) + if err != nil { + return nil, err + } + name := $.inputType|private$.Name + if name == nil { + return nil, fmt.Errorf("$.inputType|private$.Name must be provided to Apply") + } + result = &$.resultType|raw${} + err = c.client.Patch($.ApplyPatchType|raw$). + $if .namespaced$Namespace(c.ns).$end$ + Resource("$.type|resource$"). + Name(*name). + VersionedParams(&patchOpts, $.schemeParameterCodec|raw$). + Body(data). + Do(ctx). + Into(result) + return +} +` + +var applyStatusTemplate = ` +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *$.type|privatePlural$) ApplyStatus(ctx context.Context, $.inputType|private$ *$.applyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) { + if $.inputType|private$ == nil { + return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := $.jsonMarshal|raw$($.inputType|private$) + if err != nil { + return nil, err + } + + name := $.inputType|private$.Name + if name == nil { + return nil, fmt.Errorf("$.inputType|private$.Name must be provided to Apply") + } + + result = &$.resultType|raw${} + err = c.client.Patch($.ApplyPatchType|raw$). + $if .namespaced$Namespace(c.ns).$end$ + Resource("$.type|resource$"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, $.schemeParameterCodec|raw$). + Body(data). + Do(ctx). + Into(result) + return +} +` diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/util/gvpackages.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/util/gvpackages.go new file mode 100644 index 0000000000..fcc1950909 --- /dev/null +++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/util/gvpackages.go @@ -0,0 +1,30 @@ +/* +Copyright 2021 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. +*/ + +package util + +import "strings" + +func ParsePathGroupVersion(pgvString string) (gvPath string, gvString string) { + subs := strings.Split(pgvString, "/") + length := len(subs) + switch length { + case 0, 1, 2: + return "", pgvString + default: + return strings.Join(subs[:length-2], "/"), strings.Join(subs[length-2:], "/") + } +} diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/util/tags.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/util/tags.go index 426b392731..71346061f0 100644 --- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/util/tags.go +++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/util/tags.go @@ -46,6 +46,8 @@ var SupportedVerbs = []string{ "list", "watch", "patch", + "apply", + "applyStatus", } // ReadonlyVerbs represents a list of read-only verbs. diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/types/types.go b/vendor/k8s.io/code-generator/cmd/client-gen/types/types.go index 7d1606c508..a5cc37cf7f 100644 --- a/vendor/k8s.io/code-generator/cmd/client-gen/types/types.go +++ b/vendor/k8s.io/code-generator/cmd/client-gen/types/types.go @@ -16,6 +16,8 @@ limitations under the License. package types +import "strings" + type Version string func (v Version) String() string { @@ -29,6 +31,10 @@ func (v Version) NonEmpty() string { return v.String() } +func (v Version) PackageName() string { + return strings.ToLower(v.NonEmpty()) +} + type Group string func (g Group) String() string { @@ -42,6 +48,14 @@ func (g Group) NonEmpty() string { return string(g) } +func (g Group) PackageName() string { + parts := strings.Split(g.NonEmpty(), ".") + if parts[0] == "internal" && len(parts) > 1 { + return strings.ToLower(parts[1] + parts[0]) + } + return strings.ToLower(parts[0]) +} + type PackageVersion struct { Version // The fully qualified package, e.g. k8s.io/kubernetes/pkg/apis/apps, where the types.go is found. @@ -53,6 +67,14 @@ type GroupVersion struct { Version Version } +func (gv GroupVersion) ToAPIVersion() string { + if len(gv.Group) > 0 && gv.Group.NonEmpty() != "core" { + return gv.Group.String() + "/" + gv.Version.String() + } else { + return gv.Version.String() + } +} + type GroupVersions struct { // The name of the package for this group, e.g. apps. PackageName string diff --git a/vendor/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go b/vendor/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go index 01b140072d..04b97690de 100644 --- a/vendor/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go +++ b/vendor/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go @@ -133,7 +133,7 @@ type conversionFuncMap map[conversionPair]*types.Type // Returns all manually-defined conversion functions in the package. func getManualConversionFunctions(context *generator.Context, pkg *types.Package, manualMap conversionFuncMap) { if pkg == nil { - klog.Warningf("Skipping nil package passed to getManualConversionFunctions") + klog.Warning("Skipping nil package passed to getManualConversionFunctions") return } klog.V(5).Infof("Scanning for conversion functions in %v", pkg.Name) @@ -641,7 +641,7 @@ func (g *genConversion) Init(c *generator.Context, w io.Writer) error { if klog.V(5).Enabled() { if m, ok := g.useUnsafe.(equalMemoryTypes); ok { var result []string - klog.Infof("All objects without identical memory layout:") + klog.Info("All objects without identical memory layout:") for k, v := range m { if v { continue diff --git a/vendor/k8s.io/code-generator/generate-internal-groups.sh b/vendor/k8s.io/code-generator/generate-internal-groups.sh index 8c31d93370..e4430b27d5 100644 --- a/vendor/k8s.io/code-generator/generate-internal-groups.sh +++ b/vendor/k8s.io/code-generator/generate-internal-groups.sh @@ -114,7 +114,7 @@ if [ "${GENS}" = "all" ] || grep -qw "openapi" <<<"${GENS}"; then echo "Generating OpenAPI definitions for ${GROUPS_WITH_VERSIONS} at ${OUTPUT_PKG}/openapi" declare -a OPENAPI_EXTRA_PACKAGES "${GOPATH}/bin/openapi-gen" \ - --input-dirs "$(codegen::join , "${EXT_FQ_APIS[@]}" "${OPENAPI_EXTRA_PACKAGES[@]}")" \ + --input-dirs "$(codegen::join , "${EXT_FQ_APIS[@]}" "${OPENAPI_EXTRA_PACKAGES[@]+"${OPENAPI_EXTRA_PACKAGES[@]}"}")" \ --input-dirs "k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/runtime,k8s.io/apimachinery/pkg/version" \ --output-package "${OUTPUT_PKG}/openapi" \ -O zz_generated.openapi \ diff --git a/vendor/k8s.io/code-generator/go.mod b/vendor/k8s.io/code-generator/go.mod index ed526e5842..5fdd0a43a0 100644 --- a/vendor/k8s.io/code-generator/go.mod +++ b/vendor/k8s.io/code-generator/go.mod @@ -2,22 +2,33 @@ module k8s.io/code-generator -go 1.15 +go 1.16 require ( github.com/emicklei/go-restful v2.9.5+incompatible // indirect - github.com/gogo/protobuf v1.3.1 + github.com/go-openapi/spec v0.19.5 + github.com/gogo/protobuf v1.3.2 + github.com/golang/protobuf v1.4.3 // indirect github.com/google/go-cmp v0.5.2 // indirect + github.com/googleapis/gnostic v0.4.1 github.com/json-iterator/go v1.1.10 // indirect + github.com/kr/text v0.2.0 // indirect github.com/mailru/easyjson v0.7.0 // indirect + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect + github.com/onsi/ginkgo v1.11.0 // indirect + github.com/onsi/gomega v1.7.0 // indirect github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.6.1 // indirect - golang.org/x/mod v0.3.0 // indirect - golang.org/x/net v0.0.0-20201110031124-69a78807bb2b // indirect + golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449 // indirect + golang.org/x/net v0.0.0-20210224082022-3d97a244fca7 // indirect + golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073 // indirect golang.org/x/text v0.3.4 // indirect - golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect - k8s.io/gengo v0.0.0-20201113003025-83324d819ded - k8s.io/klog/v2 v2.4.0 - k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd + golang.org/x/tools v0.1.0 // indirect + google.golang.org/protobuf v1.25.0 // indirect + gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect + gopkg.in/yaml.v2 v2.4.0 + k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027 + k8s.io/klog/v2 v2.8.0 + k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 + sigs.k8s.io/structured-merge-diff/v4 v4.1.0 // indirect ) diff --git a/vendor/k8s.io/code-generator/go.sum b/vendor/k8s.io/code-generator/go.sum index af35786dcd..1194158092 100644 --- a/vendor/k8s.io/code-generator/go.sum +++ b/vendor/k8s.io/code-generator/go.sum @@ -1,9 +1,14 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -11,46 +16,67 @@ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3 github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-logr/logr v0.1.0 h1:M1Tv3VzNlEHg6uyACnRdtrploV2P7wZqH8BoQMtz0cg= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc= +github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/spec v0.19.5 h1:Xm0Ao53uqnk9QE/LlYV5DEU09UAgpliA85QoT9LzqPw= +github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= @@ -63,10 +89,18 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= +github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -76,70 +110,121 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449 h1:xUIPaMhvROX9dhPvRCenIJtU78+lbEenGbgqB5hfHCQ= +golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210224082022-3d97a244fca7 h1:OgUuv8lsRpBibGNbSizVwKWlysjaNzmC9gYMhPVfqFM= +golang.org/x/net v0.0.0-20210224082022-3d97a244fca7/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/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-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073 h1:8qxJSnu+7dRq6upnbntrmriWByIakBuct5OM/MdQC1M= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= 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 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 h1:HHeAlu5H9b71C+Fx0K+1dGgVFN1DM1/wz4aoGOA5qS8= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.4/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 h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20201113003025-83324d819ded h1:JApXBKYyB7l9xx+DK7/+mFjC7A9Bt5A93FPvFD0HIFE= -k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027 h1:Uusb3oh8XcdzDF/ndlI4ToKTYVlkCSJP39SRY2mfRAw= +k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.4.0 h1:7+X0fUguPyrKEC4WjH8iGDg3laWgMo5tMnRTIGTTxGQ= -k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd h1:sOHNzJIkytDF6qadMNKhhDRpc6ODik8lVC6nOur7B2c= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= +k8s.io/klog/v2 v2.8.0 h1:Q3gmuM9hKEjefWFFYF0Mat+YyFJvsUyYuwyNNJ5C9Ts= +k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= +k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 h1:vEx13qjvaZ4yfObSSXW7BrMc/KQBBT/Jyee8XtLf4x0= +k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/structured-merge-diff/v4 v4.1.0 h1:C4r9BgJ98vrKnnVCjwCSXcWjWe0NKcUQkmzDXZXGwH8= +sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/vendor/k8s.io/component-base/cli/flag/sectioned.go b/vendor/k8s.io/component-base/cli/flag/sectioned.go index 493a6c0f0f..d829177674 100644 --- a/vendor/k8s.io/component-base/cli/flag/sectioned.go +++ b/vendor/k8s.io/component-base/cli/flag/sectioned.go @@ -31,6 +31,8 @@ type NamedFlagSets struct { Order []string // FlagSets stores the flag sets by name. FlagSets map[string]*pflag.FlagSet + // NormalizeNameFunc is the normalize function which used to initialize FlagSets created by NamedFlagSets. + NormalizeNameFunc func(f *pflag.FlagSet, name string) pflag.NormalizedName } // FlagSet returns the flag set with the given name and adds it to the @@ -40,7 +42,12 @@ func (nfs *NamedFlagSets) FlagSet(name string) *pflag.FlagSet { nfs.FlagSets = map[string]*pflag.FlagSet{} } if _, ok := nfs.FlagSets[name]; !ok { - nfs.FlagSets[name] = pflag.NewFlagSet(name, pflag.ExitOnError) + flagSet := pflag.NewFlagSet(name, pflag.ExitOnError) + flagSet.SetNormalizeFunc(pflag.CommandLine.GetNormalizeFunc()) + if nfs.NormalizeNameFunc != nil { + flagSet.SetNormalizeFunc(nfs.NormalizeNameFunc) + } + nfs.FlagSets[name] = flagSet nfs.Order = append(nfs.Order, name) } return nfs.FlagSets[name] diff --git a/vendor/k8s.io/component-base/cli/flag/string_slice_flag.go b/vendor/k8s.io/component-base/cli/flag/string_slice_flag.go new file mode 100644 index 0000000000..37a1d778a3 --- /dev/null +++ b/vendor/k8s.io/component-base/cli/flag/string_slice_flag.go @@ -0,0 +1,59 @@ +/* +Copyright 2021 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. +*/ + +package flag + +import ( + goflag "flag" + "strings" + + "github.com/spf13/pflag" +) + +// StringSlice implements goflag.Value and plfag.Value, +// and allows set to be invoked repeatedly to accumulate values. +type StringSlice struct { + value *[]string + changed bool +} + +func NewStringSlice(s *[]string) *StringSlice { + return &StringSlice{value: s} +} + +var _ goflag.Value = &StringSlice{} +var _ pflag.Value = &StringSlice{} + +func (s *StringSlice) String() string { + if s == nil || s.value == nil { + return "" + } + return strings.Join(*s.value, " ") +} + +func (s *StringSlice) Set(val string) error { + if s.value == nil || !s.changed { + v := make([]string, 0) + s.value = &v + } + *s.value = append(*s.value, val) + s.changed = true + return nil +} + +func (StringSlice) Type() string { + return "sliceString" +} diff --git a/vendor/k8s.io/component-base/config/types.go b/vendor/k8s.io/component-base/config/types.go index f5fef2508b..c6cd112af1 100644 --- a/vendor/k8s.io/component-base/config/types.go +++ b/vendor/k8s.io/component-base/config/types.go @@ -65,7 +65,7 @@ type LeaderElectionConfiguration struct { // resourceName indicates the name of resource object that will be used to lock // during leader election cycles. ResourceName string - // resourceName indicates the namespace of resource object that will be used to lock + // resourceNamespace indicates the namespace of resource object that will be used to lock // during leader election cycles. ResourceNamespace string } diff --git a/vendor/k8s.io/component-base/logs/json/json.go b/vendor/k8s.io/component-base/logs/json/json.go index f9bb55656f..fd23246979 100644 --- a/vendor/k8s.io/component-base/logs/json/json.go +++ b/vendor/k8s.io/component-base/logs/json/json.go @@ -148,8 +148,9 @@ func (l *zapLogger) WithName(name string) logr.Logger { var encoderConfig = zapcore.EncoderConfig{ MessageKey: "msg", - TimeKey: "ts", - EncodeTime: zapcore.EpochMillisTimeEncoder, + TimeKey: "ts", + EncodeTime: zapcore.EpochMillisTimeEncoder, + EncodeDuration: zapcore.StringDurationEncoder, } // NewJSONLogger creates a new json logr.Logger using the given Zap Logger to log. diff --git a/vendor/k8s.io/component-base/logs/options.go b/vendor/k8s.io/component-base/logs/options.go index 3d9fd4c08f..1b53a6b2cd 100644 --- a/vendor/k8s.io/component-base/logs/options.go +++ b/vendor/k8s.io/component-base/logs/options.go @@ -57,9 +57,9 @@ func NewOptions() *Options { func (o *Options) Validate() []error { errs := []error{} if o.LogFormat != defaultLogFormat { - allFlags := unsupportedLoggingFlags() + allFlags := unsupportedLoggingFlags(hyphensToUnderscores) for _, fname := range allFlags { - if flagIsSet(fname) { + if flagIsSet(fname, hyphensToUnderscores) { errs = append(errs, fmt.Errorf("non-default logging format doesn't honor flag: %s", fname)) } } @@ -70,11 +70,23 @@ func (o *Options) Validate() []error { return errs } -func flagIsSet(name string) bool { +// hyphensToUnderscores replaces hyphens with underscores +// we should always use underscores instead of hyphens when validate flags +func hyphensToUnderscores(s string) string { + return strings.Replace(s, "-", "_", -1) +} + +func flagIsSet(name string, normalizeFunc func(name string) string) bool { f := flag.Lookup(name) if f != nil { return f.DefValue != f.Value.String() } + if normalizeFunc != nil { + f = flag.Lookup(normalizeFunc(name)) + if f != nil { + return f.DefValue != f.Value.String() + } + } pf := pflag.Lookup(name) if pf != nil { return pf.DefValue != pf.Value.String() @@ -84,7 +96,12 @@ func flagIsSet(name string) bool { // AddFlags add logging-format flag func (o *Options) AddFlags(fs *pflag.FlagSet) { - unsupportedFlags := fmt.Sprintf("--%s", strings.Join(unsupportedLoggingFlags(), ", --")) + normalizeFunc := func(name string) string { + f := fs.GetNormalizeFunc() + return string(f(fs, name)) + } + + unsupportedFlags := fmt.Sprintf("--%s", strings.Join(unsupportedLoggingFlags(normalizeFunc), ", --")) formats := fmt.Sprintf(`"%s"`, strings.Join(logRegistry.List(), `", "`)) fs.StringVar(&o.LogFormat, logFormatFlagName, defaultLogFormat, fmt.Sprintf("Sets the log format. Permitted formats: %s.\nNon-default formats don't honor these flags: %s.\nNon-default choices are currently alpha and subject to change without warning.", formats, unsupportedFlags)) @@ -109,7 +126,7 @@ func (o *Options) Get() (logr.Logger, error) { return logRegistry.Get(o.LogFormat) } -func unsupportedLoggingFlags() []string { +func unsupportedLoggingFlags(normalizeFunc func(name string) string) []string { allFlags := []string{} // k8s.io/klog flags @@ -117,7 +134,11 @@ func unsupportedLoggingFlags() []string { klog.InitFlags(fs) fs.VisitAll(func(flag *flag.Flag) { if _, found := supportedLogsFlags[flag.Name]; !found { - allFlags = append(allFlags, flag.Name) + name := flag.Name + if normalizeFunc != nil { + name = normalizeFunc(name) + } + allFlags = append(allFlags, name) } }) diff --git a/vendor/k8s.io/component-base/metrics/OWNERS b/vendor/k8s.io/component-base/metrics/OWNERS index a9c3172f39..6010d505f6 100644 --- a/vendor/k8s.io/component-base/metrics/OWNERS +++ b/vendor/k8s.io/component-base/metrics/OWNERS @@ -6,5 +6,6 @@ approvers: - RainbowMango reviewers: - sig-instrumentation-reviewers +- YoyinZyc labels: - sig/instrumentation diff --git a/vendor/k8s.io/component-base/metrics/collector.go b/vendor/k8s.io/component-base/metrics/collector.go index 090342e162..61ad951e5b 100644 --- a/vendor/k8s.io/component-base/metrics/collector.go +++ b/vendor/k8s.io/component-base/metrics/collector.go @@ -49,10 +49,10 @@ type StableCollector interface { // is a convenient assistant for custom collectors. // It is recommend that inherit BaseStableCollector when implementing custom collectors. type BaseStableCollector struct { - descriptors map[string]*Desc // stores all descriptors by pair, these are collected from DescribeWithStability(). - registrable map[string]*Desc // stores registrable descriptors by pair, is a subset of descriptors. - hidden map[string]*Desc // stores hidden descriptors by pair, is a subset of descriptors. - self StableCollector + descriptors map[string]*Desc // stores all descriptors by pair, these are collected from DescribeWithStability(). + registerable map[string]*Desc // stores registerable descriptors by pair, is a subset of descriptors. + hidden map[string]*Desc // stores hidden descriptors by pair, is a subset of descriptors. + self StableCollector } // DescribeWithStability sends all descriptors to the provided channel. @@ -64,7 +64,7 @@ func (bsc *BaseStableCollector) DescribeWithStability(ch chan<- *Desc) { // Describe sends all descriptors to the provided channel. // It intend to be called by prometheus registry. func (bsc *BaseStableCollector) Describe(ch chan<- *prometheus.Desc) { - for _, d := range bsc.registrable { + for _, d := range bsc.registerable { ch <- d.toPrometheusDesc() } } @@ -128,11 +128,11 @@ func (bsc *BaseStableCollector) init(self StableCollector) { } func (bsc *BaseStableCollector) trackRegistrableDescriptor(d *Desc) { - if bsc.registrable == nil { - bsc.registrable = make(map[string]*Desc) + if bsc.registerable == nil { + bsc.registerable = make(map[string]*Desc) } - bsc.registrable[d.fqName] = d + bsc.registerable[d.fqName] = d } func (bsc *BaseStableCollector) trackHiddenDescriptor(d *Desc) { @@ -158,7 +158,7 @@ func (bsc *BaseStableCollector) Create(version *semver.Version, self StableColle } } - if len(bsc.registrable) > 0 { + if len(bsc.registerable) > 0 { return true } @@ -173,7 +173,7 @@ func (bsc *BaseStableCollector) ClearState() { } bsc.descriptors = nil - bsc.registrable = nil + bsc.registerable = nil bsc.hidden = nil bsc.self = nil } diff --git a/vendor/k8s.io/component-base/metrics/counter.go b/vendor/k8s.io/component-base/metrics/counter.go index de69431095..addf680c87 100644 --- a/vendor/k8s.io/component-base/metrics/counter.go +++ b/vendor/k8s.io/component-base/metrics/counter.go @@ -17,8 +17,10 @@ limitations under the License. package metrics import ( + "context" "github.com/blang/semver" "github.com/prometheus/client_golang/prometheus" + dto "github.com/prometheus/client_model/go" ) // Counter is our internal representation for our wrapping struct around prometheus @@ -30,6 +32,9 @@ type Counter struct { selfCollector } +// The implementation of the Metric interface is expected by testutil.GetCounterMetricValue. +var _ Metric = &Counter{} + // NewCounter returns an object which satisfies the kubeCollector and CounterMetric interfaces. // However, the object returned will not measure anything unless the collector is first // registered, since the metric is lazily instantiated. @@ -45,6 +50,14 @@ func NewCounter(opts *CounterOpts) *Counter { return kc } +func (c *Counter) Desc() *prometheus.Desc { + return c.metric.Desc() +} + +func (c *Counter) Write(to *dto.Metric) error { + return c.metric.Write(to) +} + // Reset resets the underlying prometheus Counter to start counting from 0 again func (c *Counter) Reset() { if !c.IsCreated() { @@ -79,6 +92,11 @@ func (c *Counter) initializeDeprecatedMetric() { c.initializeMetric() } +// WithContext allows the normal Counter metric to pass in context. The context is no-op now. +func (c *Counter) WithContext(ctx context.Context) CounterMetric { + return c.CounterMetric +} + // CounterVec is the internal representation of our wrapping struct around prometheus // counterVecs. CounterVec implements both kubeCollector and CounterVecMetric. type CounterVec struct { @@ -94,13 +112,20 @@ type CounterVec struct { func NewCounterVec(opts *CounterOpts, labels []string) *CounterVec { opts.StabilityLevel.setDefaults() + fqName := BuildFQName(opts.Namespace, opts.Subsystem, opts.Name) + allowListLock.RLock() + if allowList, ok := labelValueAllowLists[fqName]; ok { + opts.LabelValueAllowLists = allowList + } + allowListLock.RUnlock() + cv := &CounterVec{ CounterVec: noopCounterVec, CounterOpts: opts, originalLabels: labels, lazyMetric: lazyMetric{}, } - cv.lazyInit(cv, BuildFQName(opts.Namespace, opts.Subsystem, opts.Name)) + cv.lazyInit(cv, fqName) return cv } @@ -140,6 +165,9 @@ func (v *CounterVec) WithLabelValues(lvs ...string) CounterMetric { if !v.IsCreated() { return noop // return no-op counter } + if v.LabelValueAllowLists != nil { + v.LabelValueAllowLists.ConstrainToAllowedList(v.originalLabels, lvs) + } return v.CounterVec.WithLabelValues(lvs...) } @@ -151,6 +179,9 @@ func (v *CounterVec) With(labels map[string]string) CounterMetric { if !v.IsCreated() { return noop // return no-op counter } + if v.LabelValueAllowLists != nil { + v.LabelValueAllowLists.ConstrainLabelMap(labels) + } return v.CounterVec.With(labels) } @@ -176,3 +207,27 @@ func (v *CounterVec) Reset() { v.CounterVec.Reset() } + +// WithContext returns wrapped CounterVec with context +func (v *CounterVec) WithContext(ctx context.Context) *CounterVecWithContext { + return &CounterVecWithContext{ + ctx: ctx, + CounterVec: *v, + } +} + +// CounterVecWithContext is the wrapper of CounterVec with context. +type CounterVecWithContext struct { + CounterVec + ctx context.Context +} + +// WithLabelValues is the wrapper of CounterVec.WithLabelValues. +func (vc *CounterVecWithContext) WithLabelValues(lvs ...string) CounterMetric { + return vc.CounterVec.WithLabelValues(lvs...) +} + +// With is the wrapper of CounterVec.With. +func (vc *CounterVecWithContext) With(labels map[string]string) CounterMetric { + return vc.CounterVec.With(labels) +} diff --git a/vendor/k8s.io/component-base/metrics/gauge.go b/vendor/k8s.io/component-base/metrics/gauge.go index 7b4469fcb8..a8d9c20101 100644 --- a/vendor/k8s.io/component-base/metrics/gauge.go +++ b/vendor/k8s.io/component-base/metrics/gauge.go @@ -17,6 +17,7 @@ limitations under the License. package metrics import ( + "context" "github.com/blang/semver" "github.com/prometheus/client_golang/prometheus" @@ -73,6 +74,11 @@ func (g *Gauge) initializeDeprecatedMetric() { g.initializeMetric() } +// WithContext allows the normal Gauge metric to pass in context. The context is no-op now. +func (g *Gauge) WithContext(ctx context.Context) GaugeMetric { + return g.GaugeMetric +} + // GaugeVec is the internal representation of our wrapping struct around prometheus // gaugeVecs. kubeGaugeVec implements both kubeCollector and KubeGaugeVec. type GaugeVec struct { @@ -88,13 +94,20 @@ type GaugeVec struct { func NewGaugeVec(opts *GaugeOpts, labels []string) *GaugeVec { opts.StabilityLevel.setDefaults() + fqName := BuildFQName(opts.Namespace, opts.Subsystem, opts.Name) + allowListLock.RLock() + if allowList, ok := labelValueAllowLists[fqName]; ok { + opts.LabelValueAllowLists = allowList + } + allowListLock.RUnlock() + cv := &GaugeVec{ GaugeVec: noopGaugeVec, GaugeOpts: opts, originalLabels: labels, lazyMetric: lazyMetric{}, } - cv.lazyInit(cv, BuildFQName(opts.Namespace, opts.Subsystem, opts.Name)) + cv.lazyInit(cv, fqName) return cv } @@ -133,6 +146,9 @@ func (v *GaugeVec) WithLabelValues(lvs ...string) GaugeMetric { if !v.IsCreated() { return noop // return no-op gauge } + if v.LabelValueAllowLists != nil { + v.LabelValueAllowLists.ConstrainToAllowedList(v.originalLabels, lvs) + } return v.GaugeVec.WithLabelValues(lvs...) } @@ -144,6 +160,9 @@ func (v *GaugeVec) With(labels map[string]string) GaugeMetric { if !v.IsCreated() { return noop // return no-op gauge } + if v.LabelValueAllowLists != nil { + v.LabelValueAllowLists.ConstrainLabelMap(labels) + } return v.GaugeVec.With(labels) } @@ -191,3 +210,27 @@ func NewGaugeFunc(opts GaugeOpts, function func() float64) GaugeFunc { return newGaugeFunc(opts, function, v) } + +// WithContext returns wrapped GaugeVec with context +func (v *GaugeVec) WithContext(ctx context.Context) *GaugeVecWithContext { + return &GaugeVecWithContext{ + ctx: ctx, + GaugeVec: *v, + } +} + +// GaugeVecWithContext is the wrapper of GaugeVec with context. +type GaugeVecWithContext struct { + GaugeVec + ctx context.Context +} + +// WithLabelValues is the wrapper of GaugeVec.WithLabelValues. +func (vc *GaugeVecWithContext) WithLabelValues(lvs ...string) GaugeMetric { + return vc.GaugeVec.WithLabelValues(lvs...) +} + +// With is the wrapper of GaugeVec.With. +func (vc *GaugeVecWithContext) With(labels map[string]string) GaugeMetric { + return vc.GaugeVec.With(labels) +} diff --git a/vendor/k8s.io/component-base/metrics/histogram.go b/vendor/k8s.io/component-base/metrics/histogram.go index d233e12b92..9dd75388b3 100644 --- a/vendor/k8s.io/component-base/metrics/histogram.go +++ b/vendor/k8s.io/component-base/metrics/histogram.go @@ -17,6 +17,7 @@ limitations under the License. package metrics import ( + "context" "github.com/blang/semver" "github.com/prometheus/client_golang/prometheus" ) @@ -83,6 +84,11 @@ func (h *Histogram) initializeDeprecatedMetric() { h.initializeMetric() } +// WithContext allows the normal Histogram metric to pass in context. The context is no-op now. +func (h *Histogram) WithContext(ctx context.Context) ObserverMetric { + return h.ObserverMetric +} + // HistogramVec is the internal representation of our wrapping struct around prometheus // histogramVecs. type HistogramVec struct { @@ -98,13 +104,20 @@ type HistogramVec struct { func NewHistogramVec(opts *HistogramOpts, labels []string) *HistogramVec { opts.StabilityLevel.setDefaults() + fqName := BuildFQName(opts.Namespace, opts.Subsystem, opts.Name) + allowListLock.RLock() + if allowList, ok := labelValueAllowLists[fqName]; ok { + opts.LabelValueAllowLists = allowList + } + allowListLock.RUnlock() + v := &HistogramVec{ HistogramVec: noopHistogramVec, HistogramOpts: opts, originalLabels: labels, lazyMetric: lazyMetric{}, } - v.lazyInit(v, BuildFQName(opts.Namespace, opts.Subsystem, opts.Name)) + v.lazyInit(v, fqName) return v } @@ -139,6 +152,9 @@ func (v *HistogramVec) WithLabelValues(lvs ...string) ObserverMetric { if !v.IsCreated() { return noop } + if v.LabelValueAllowLists != nil { + v.LabelValueAllowLists.ConstrainToAllowedList(v.originalLabels, lvs) + } return v.HistogramVec.WithLabelValues(lvs...) } @@ -150,6 +166,9 @@ func (v *HistogramVec) With(labels map[string]string) ObserverMetric { if !v.IsCreated() { return noop } + if v.LabelValueAllowLists != nil { + v.LabelValueAllowLists.ConstrainLabelMap(labels) + } return v.HistogramVec.With(labels) } @@ -175,3 +194,27 @@ func (v *HistogramVec) Reset() { v.HistogramVec.Reset() } + +// WithContext returns wrapped HistogramVec with context +func (v *HistogramVec) WithContext(ctx context.Context) *HistogramVecWithContext { + return &HistogramVecWithContext{ + ctx: ctx, + HistogramVec: *v, + } +} + +// HistogramVecWithContext is the wrapper of HistogramVec with context. +type HistogramVecWithContext struct { + HistogramVec + ctx context.Context +} + +// WithLabelValues is the wrapper of HistogramVec.WithLabelValues. +func (vc *HistogramVecWithContext) WithLabelValues(lvs ...string) ObserverMetric { + return vc.HistogramVec.WithLabelValues(lvs...) +} + +// With is the wrapper of HistogramVec.With. +func (vc *HistogramVecWithContext) With(labels map[string]string) ObserverMetric { + return vc.HistogramVec.With(labels) +} diff --git a/vendor/k8s.io/component-base/metrics/metric.go b/vendor/k8s.io/component-base/metrics/metric.go index bb1f696270..2f7b880d86 100644 --- a/vendor/k8s.io/component-base/metrics/metric.go +++ b/vendor/k8s.io/component-base/metrics/metric.go @@ -87,10 +87,24 @@ func (r *lazyMetric) lazyInit(self kubeCollector, fqName string) { r.self = self } -// determineDeprecationStatus figures out whether the lazy metric should be deprecated or not. +// preprocessMetric figures out whether the lazy metric should be hidden or not. // This method takes a Version argument which should be the version of the binary in which -// this code is currently being executed. -func (r *lazyMetric) determineDeprecationStatus(version semver.Version) { +// this code is currently being executed. A metric can be hidden under two conditions: +// 1. if the metric is deprecated and is outside the grace period (i.e. has been +// deprecated for more than one release +// 2. if the metric is manually disabled via a CLI flag. +// +// Disclaimer: disabling a metric via a CLI flag has higher precedence than +// deprecation and will override show-hidden-metrics for the explicitly +// disabled metric. +func (r *lazyMetric) preprocessMetric(version semver.Version) { + disabledMetricsLock.RLock() + defer disabledMetricsLock.RUnlock() + // disabling metrics is higher in precedence than showing hidden metrics + if _, ok := disabledMetrics[r.fqName]; ok { + r.isHidden = true + return + } selfVersion := r.self.DeprecatedVersion() if selfVersion == nil { return @@ -99,6 +113,7 @@ func (r *lazyMetric) determineDeprecationStatus(version semver.Version) { if selfVersion.LTE(version) { r.isDeprecated = true } + if ShouldShowHidden() { klog.Warningf("Hidden metrics (%s) have been manually overridden, showing this very deprecated metric.", r.fqName) return @@ -126,7 +141,7 @@ func (r *lazyMetric) IsDeprecated() bool { // created. func (r *lazyMetric) Create(version *semver.Version) bool { if version != nil { - r.determineDeprecationStatus(*version) + r.preprocessMetric(*version) } // let's not create if this metric is slated to be hidden if r.IsHidden() { diff --git a/vendor/k8s.io/component-base/metrics/options.go b/vendor/k8s.io/component-base/metrics/options.go index c15dd9b4d2..91a76ba7e5 100644 --- a/vendor/k8s.io/component-base/metrics/options.go +++ b/vendor/k8s.io/component-base/metrics/options.go @@ -18,6 +18,7 @@ package metrics import ( "fmt" + "regexp" "github.com/blang/semver" "github.com/spf13/pflag" @@ -28,6 +29,8 @@ import ( // Options has all parameters needed for exposing metrics from components type Options struct { ShowHiddenMetricsForVersion string + DisabledMetrics []string + AllowListMapping map[string]string } // NewOptions returns default metrics options @@ -37,12 +40,20 @@ func NewOptions() *Options { // Validate validates metrics flags options. func (o *Options) Validate() []error { + var errs []error err := validateShowHiddenMetricsVersion(parseVersion(version.Get()), o.ShowHiddenMetricsForVersion) if err != nil { - return []error{err} + errs = append(errs, err) } - return nil + if err := validateAllowMetricLabel(o.AllowListMapping); err != nil { + errs = append(errs, err) + } + + if len(errs) == 0 { + return nil + } + return errs } // AddFlags adds flags for exposing component metrics. @@ -56,13 +67,33 @@ func (o *Options) AddFlags(fs *pflag.FlagSet) { "The format is ., e.g.: '1.16'. "+ "The purpose of this format is make sure you have the opportunity to notice if the next release hides additional metrics, "+ "rather than being surprised when they are permanently removed in the release after that.") + fs.StringSliceVar(&o.DisabledMetrics, + "disabled-metrics", + o.DisabledMetrics, + "This flag provides an escape hatch for misbehaving metrics. "+ + "You must provide the fully qualified metric name in order to disable it. "+ + "Disclaimer: disabling metrics is higher in precedence than showing hidden metrics.") + fs.StringToStringVar(&o.AllowListMapping, "allow-metric-labels", o.AllowListMapping, + "The map from metric-label to value allow-list of this label. The key's format is ,. "+ + "The value's format is ,..."+ + "e.g. metric1,label1='v1,v2,v3', metric1,label2='v1,v2,v3' metric2,label1='v1,v2,v3'.") } // Apply applies parameters into global configuration of metrics. func (o *Options) Apply() { - if o != nil && len(o.ShowHiddenMetricsForVersion) > 0 { + if o == nil { + return + } + if len(o.ShowHiddenMetricsForVersion) > 0 { SetShowHidden() } + // set disabled metrics + for _, metricName := range o.DisabledMetrics { + SetDisabledMetric(metricName) + } + if o.AllowListMapping != nil { + SetLabelAllowListFromCLI(o.AllowListMapping) + } } func validateShowHiddenMetricsVersion(currentVersion semver.Version, targetVersionStr string) error { @@ -77,3 +108,18 @@ func validateShowHiddenMetricsVersion(currentVersion semver.Version, targetVersi return nil } + +func validateAllowMetricLabel(allowListMapping map[string]string) error { + if allowListMapping == nil { + return nil + } + metricNameRegex := `[a-zA-Z_:][a-zA-Z0-9_:]*` + labelRegex := `[a-zA-Z_][a-zA-Z0-9_]*` + for k := range allowListMapping { + reg := regexp.MustCompile(metricNameRegex + `,` + labelRegex) + if reg.FindString(k) != k { + return fmt.Errorf("--allow-metric-labels must has a list of kv pair with format `metricName:labelName=labelValue, labelValue,...`") + } + } + return nil +} diff --git a/vendor/k8s.io/component-base/metrics/opts.go b/vendor/k8s.io/component-base/metrics/opts.go index 906050c7f7..04203b74e0 100644 --- a/vendor/k8s.io/component-base/metrics/opts.go +++ b/vendor/k8s.io/component-base/metrics/opts.go @@ -18,10 +18,17 @@ package metrics import ( "fmt" + "strings" "sync" "time" "github.com/prometheus/client_golang/prometheus" + "k8s.io/apimachinery/pkg/util/sets" +) + +var ( + labelValueAllowLists = map[string]*MetricLabelAllowList{} + allowListLock sync.RWMutex ) // KubeOpts is superset struct for prometheus.Opts. The prometheus Opts structure @@ -31,15 +38,16 @@ import ( // Name must be set to a non-empty string. DeprecatedVersion is defined only // if the metric for which this options applies is, in fact, deprecated. type KubeOpts struct { - Namespace string - Subsystem string - Name string - Help string - ConstLabels map[string]string - DeprecatedVersion string - deprecateOnce sync.Once - annotateOnce sync.Once - StabilityLevel StabilityLevel + Namespace string + Subsystem string + Name string + Help string + ConstLabels map[string]string + DeprecatedVersion string + deprecateOnce sync.Once + annotateOnce sync.Once + StabilityLevel StabilityLevel + LabelValueAllowLists *MetricLabelAllowList } // BuildFQName joins the given three name components by "_". Empty name @@ -140,16 +148,17 @@ func (o *GaugeOpts) toPromGaugeOpts() prometheus.GaugeOpts { // and can safely be left at their zero value, although it is strongly // encouraged to set a Help string. type HistogramOpts struct { - Namespace string - Subsystem string - Name string - Help string - ConstLabels map[string]string - Buckets []float64 - DeprecatedVersion string - deprecateOnce sync.Once - annotateOnce sync.Once - StabilityLevel StabilityLevel + Namespace string + Subsystem string + Name string + Help string + ConstLabels map[string]string + Buckets []float64 + DeprecatedVersion string + deprecateOnce sync.Once + annotateOnce sync.Once + StabilityLevel StabilityLevel + LabelValueAllowLists *MetricLabelAllowList } // Modify help description on the metric description. @@ -186,19 +195,20 @@ func (o *HistogramOpts) toPromHistogramOpts() prometheus.HistogramOpts { // a help string and to explicitly set the Objectives field to the desired value // as the default value will change in the upcoming v0.10 of the library. type SummaryOpts struct { - Namespace string - Subsystem string - Name string - Help string - ConstLabels map[string]string - Objectives map[float64]float64 - MaxAge time.Duration - AgeBuckets uint32 - BufCap uint32 - DeprecatedVersion string - deprecateOnce sync.Once - annotateOnce sync.Once - StabilityLevel StabilityLevel + Namespace string + Subsystem string + Name string + Help string + ConstLabels map[string]string + Objectives map[float64]float64 + MaxAge time.Duration + AgeBuckets uint32 + BufCap uint32 + DeprecatedVersion string + deprecateOnce sync.Once + annotateOnce sync.Once + StabilityLevel StabilityLevel + LabelValueAllowLists *MetricLabelAllowList } // Modify help description on the metric description. @@ -243,3 +253,49 @@ func (o *SummaryOpts) toPromSummaryOpts() prometheus.SummaryOpts { BufCap: o.BufCap, } } + +type MetricLabelAllowList struct { + labelToAllowList map[string]sets.String +} + +func (allowList *MetricLabelAllowList) ConstrainToAllowedList(labelNameList, labelValueList []string) { + for index, value := range labelValueList { + name := labelNameList[index] + if allowValues, ok := allowList.labelToAllowList[name]; ok { + if !allowValues.Has(value) { + labelValueList[index] = "unexpected" + } + } + } +} + +func (allowList *MetricLabelAllowList) ConstrainLabelMap(labels map[string]string) { + for name, value := range labels { + if allowValues, ok := allowList.labelToAllowList[name]; ok { + if !allowValues.Has(value) { + labels[name] = "unexpected" + } + } + } +} + +func SetLabelAllowListFromCLI(allowListMapping map[string]string) { + allowListLock.Lock() + defer allowListLock.Unlock() + for metricLabelName, labelValues := range allowListMapping { + metricName := strings.Split(metricLabelName, ",")[0] + labelName := strings.Split(metricLabelName, ",")[1] + valueSet := sets.NewString(strings.Split(labelValues, ",")...) + + allowList, ok := labelValueAllowLists[metricName] + if ok { + allowList.labelToAllowList[labelName] = valueSet + } else { + labelToAllowList := make(map[string]sets.String) + labelToAllowList[labelName] = valueSet + labelValueAllowLists[metricName] = &MetricLabelAllowList{ + labelToAllowList, + } + } + } +} diff --git a/vendor/k8s.io/component-base/metrics/processstarttime.go b/vendor/k8s.io/component-base/metrics/processstarttime.go index 8dde458814..4b5e76935c 100644 --- a/vendor/k8s.io/component-base/metrics/processstarttime.go +++ b/vendor/k8s.io/component-base/metrics/processstarttime.go @@ -17,11 +17,8 @@ limitations under the License. package metrics import ( - "os" "time" - "github.com/prometheus/procfs" - "k8s.io/klog/v2" ) @@ -44,24 +41,11 @@ func RegisterProcessStartTime(registrationFunc func(Registerable) error) error { start = float64(time.Now().Unix()) } // processStartTime is a lazy metric which only get initialized after registered. - // so we have to explicitly create it before setting the label value. Otherwise - // it is a noop. - if !processStartTime.IsCreated() { - processStartTime.initializeMetric() - } - processStartTime.WithLabelValues().Set(start) - return registrationFunc(processStartTime) -} - -func getProcessStart() (float64, error) { - pid := os.Getpid() - p, err := procfs.NewProc(pid) - if err != nil { - return 0, err + // so we need to register the metric first and then set the value for it + if err = registrationFunc(processStartTime); err != nil { + return err } - if stat, err := p.Stat(); err == nil { - return stat.StartTime() - } - return 0, err + processStartTime.WithLabelValues().Set(start) + return nil } diff --git a/vendor/k8s.io/component-base/metrics/processstarttime_others.go b/vendor/k8s.io/component-base/metrics/processstarttime_others.go new file mode 100644 index 0000000000..89ea8a68e8 --- /dev/null +++ b/vendor/k8s.io/component-base/metrics/processstarttime_others.go @@ -0,0 +1,38 @@ +// +build !windows + +/* +Copyright 2019 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. +*/ + +package metrics + +import ( + "os" + + "github.com/prometheus/procfs" +) + +func getProcessStart() (float64, error) { + pid := os.Getpid() + p, err := procfs.NewProc(pid) + if err != nil { + return 0, err + } + + if stat, err := p.Stat(); err == nil { + return stat.StartTime() + } + return 0, err +} diff --git a/vendor/k8s.io/component-base/metrics/processstarttime_windows.go b/vendor/k8s.io/component-base/metrics/processstarttime_windows.go new file mode 100644 index 0000000000..8fcdf273a2 --- /dev/null +++ b/vendor/k8s.io/component-base/metrics/processstarttime_windows.go @@ -0,0 +1,33 @@ +// +build windows + +/* +Copyright 2019 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. +*/ + +package metrics + +import ( + "golang.org/x/sys/windows" +) + +func getProcessStart() (float64, error) { + processHandle := windows.CurrentProcess() + + var creationTime, exitTime, kernelTime, userTime windows.Filetime + if err := windows.GetProcessTimes(processHandle, &creationTime, &exitTime, &kernelTime, &userTime); err != nil { + return 0, err + } + return float64(creationTime.Nanoseconds() / 1e9), nil +} diff --git a/vendor/k8s.io/component-base/metrics/registry.go b/vendor/k8s.io/component-base/metrics/registry.go index 06a5c6503c..b608fb568f 100644 --- a/vendor/k8s.io/component-base/metrics/registry.go +++ b/vendor/k8s.io/component-base/metrics/registry.go @@ -30,10 +30,12 @@ import ( ) var ( - showHiddenOnce sync.Once - showHidden atomic.Value - registries []*kubeRegistry // stores all registries created by NewKubeRegistry() - registriesLock sync.RWMutex + showHiddenOnce sync.Once + disabledMetricsLock sync.RWMutex + showHidden atomic.Value + registries []*kubeRegistry // stores all registries created by NewKubeRegistry() + registriesLock sync.RWMutex + disabledMetrics = map[string]struct{}{} ) // shouldHide be used to check if a specific metric with deprecated version should be hidden @@ -61,6 +63,12 @@ func ValidateShowHiddenMetricsVersion(v string) []error { return nil } +func SetDisabledMetric(name string) { + disabledMetricsLock.Lock() + defer disabledMetricsLock.Unlock() + disabledMetrics[name] = struct{}{} +} + // SetShowHidden will enable showing hidden metrics. This will no-opt // after the initial call func SetShowHidden() { diff --git a/vendor/k8s.io/component-base/metrics/summary.go b/vendor/k8s.io/component-base/metrics/summary.go index 726bcc4894..4732b02e30 100644 --- a/vendor/k8s.io/component-base/metrics/summary.go +++ b/vendor/k8s.io/component-base/metrics/summary.go @@ -17,6 +17,7 @@ limitations under the License. package metrics import ( + "context" "github.com/blang/semver" "github.com/prometheus/client_golang/prometheus" ) @@ -74,6 +75,11 @@ func (s *Summary) initializeDeprecatedMetric() { s.initializeMetric() } +// WithContext allows the normal Summary metric to pass in context. The context is no-op now. +func (s *Summary) WithContext(ctx context.Context) ObserverMetric { + return s.ObserverMetric +} + // SummaryVec is the internal representation of our wrapping struct around prometheus // summaryVecs. // @@ -93,12 +99,19 @@ type SummaryVec struct { func NewSummaryVec(opts *SummaryOpts, labels []string) *SummaryVec { opts.StabilityLevel.setDefaults() + fqName := BuildFQName(opts.Namespace, opts.Subsystem, opts.Name) + allowListLock.RLock() + if allowList, ok := labelValueAllowLists[fqName]; ok { + opts.LabelValueAllowLists = allowList + } + allowListLock.RUnlock() + v := &SummaryVec{ SummaryOpts: opts, originalLabels: labels, lazyMetric: lazyMetric{}, } - v.lazyInit(v, BuildFQName(opts.Namespace, opts.Subsystem, opts.Name)) + v.lazyInit(v, fqName) return v } @@ -133,6 +146,9 @@ func (v *SummaryVec) WithLabelValues(lvs ...string) ObserverMetric { if !v.IsCreated() { return noop } + if v.LabelValueAllowLists != nil { + v.LabelValueAllowLists.ConstrainToAllowedList(v.originalLabels, lvs) + } return v.SummaryVec.WithLabelValues(lvs...) } @@ -144,6 +160,9 @@ func (v *SummaryVec) With(labels map[string]string) ObserverMetric { if !v.IsCreated() { return noop } + if v.LabelValueAllowLists != nil { + v.LabelValueAllowLists.ConstrainLabelMap(labels) + } return v.SummaryVec.With(labels) } @@ -169,3 +188,27 @@ func (v *SummaryVec) Reset() { v.SummaryVec.Reset() } + +// WithContext returns wrapped SummaryVec with context +func (v *SummaryVec) WithContext(ctx context.Context) *SummaryVecWithContext { + return &SummaryVecWithContext{ + ctx: ctx, + SummaryVec: *v, + } +} + +// SummaryVecWithContext is the wrapper of SummaryVec with context. +type SummaryVecWithContext struct { + SummaryVec + ctx context.Context +} + +// WithLabelValues is the wrapper of SummaryVec.WithLabelValues. +func (vc *SummaryVecWithContext) WithLabelValues(lvs ...string) ObserverMetric { + return vc.SummaryVec.WithLabelValues(lvs...) +} + +// With is the wrapper of SummaryVec.With. +func (vc *SummaryVecWithContext) With(labels map[string]string) ObserverMetric { + return vc.SummaryVec.With(labels) +} diff --git a/vendor/k8s.io/component-base/metrics/testutil/metrics.go b/vendor/k8s.io/component-base/metrics/testutil/metrics.go index 3896550122..60a186483f 100644 --- a/vendor/k8s.io/component-base/metrics/testutil/metrics.go +++ b/vendor/k8s.io/component-base/metrics/testutil/metrics.go @@ -281,21 +281,6 @@ func (hist *Histogram) Average() float64 { return hist.GetSampleSum() / float64(hist.GetSampleCount()) } -// Clear clears all fields of the wrapped histogram -func (hist *Histogram) Clear() { - if hist.SampleCount != nil { - *hist.SampleCount = 0 - } - if hist.SampleSum != nil { - *hist.SampleSum = 0 - } - for _, b := range hist.Bucket { - if b.CumulativeCount != nil { - *b.CumulativeCount = 0 - } - } -} - // Validate makes sure the wrapped histogram has all necessary fields set and with valid values. func (hist *Histogram) Validate() error { if hist.SampleCount == nil || hist.GetSampleCount() == 0 { @@ -318,7 +303,7 @@ func (hist *Histogram) Validate() error { return nil } -// GetGaugeMetricValue extract metric value from GaugeMetric +// GetGaugeMetricValue extracts metric value from GaugeMetric func GetGaugeMetricValue(m metrics.GaugeMetric) (float64, error) { metricProto := &dto.Metric{} if err := m.Write(metricProto); err != nil { @@ -327,7 +312,7 @@ func GetGaugeMetricValue(m metrics.GaugeMetric) (float64, error) { return metricProto.Gauge.GetValue(), nil } -// GetCounterMetricValue extract metric value from CounterMetric +// GetCounterMetricValue extracts metric value from CounterMetric func GetCounterMetricValue(m metrics.CounterMetric) (float64, error) { metricProto := &dto.Metric{} if err := m.(metrics.Metric).Write(metricProto); err != nil { @@ -336,7 +321,7 @@ func GetCounterMetricValue(m metrics.CounterMetric) (float64, error) { return metricProto.Counter.GetValue(), nil } -// GetHistogramMetricValue extract sum of all samples from ObserverMetric +// GetHistogramMetricValue extracts sum of all samples from ObserverMetric func GetHistogramMetricValue(m metrics.ObserverMetric) (float64, error) { metricProto := &dto.Metric{} if err := m.(metrics.Metric).Write(metricProto); err != nil { @@ -345,6 +330,15 @@ func GetHistogramMetricValue(m metrics.ObserverMetric) (float64, error) { return metricProto.Histogram.GetSampleSum(), nil } +// GetHistogramMetricCount extracts count of all samples from ObserverMetric +func GetHistogramMetricCount(m metrics.ObserverMetric) (uint64, error) { + metricProto := &dto.Metric{} + if err := m.(metrics.Metric).Write(metricProto); err != nil { + return 0, fmt.Errorf("error writing m: %v", err) + } + return metricProto.Histogram.GetSampleCount(), nil +} + // LabelsMatch returns true if metric has all expected labels otherwise false func LabelsMatch(metric *dto.Metric, labelFilter map[string]string) bool { metricLabels := map[string]string{} diff --git a/vendor/k8s.io/component-base/version/base.go b/vendor/k8s.io/component-base/version/base.go index e13678c305..b753b7d191 100644 --- a/vendor/k8s.io/component-base/version/base.go +++ b/vendor/k8s.io/component-base/version/base.go @@ -55,7 +55,7 @@ var ( // NOTE: The $Format strings are replaced during 'git archive' thanks to the // companion .gitattributes file containing 'export-subst' in this same // directory. See also https://git-scm.com/docs/gitattributes - gitVersion = "v0.0.0-master+$Format:%h$" + gitVersion = "v0.0.0-master+$Format:%H$" gitCommit = "$Format:%H$" // sha1 from git, output of $(git rev-parse HEAD) gitTreeState = "" // state of git tree, either "clean" or "dirty" diff --git a/vendor/k8s.io/component-base/version/def.bzl b/vendor/k8s.io/component-base/version/def.bzl deleted file mode 100644 index 77edcbc89b..0000000000 --- a/vendor/k8s.io/component-base/version/def.bzl +++ /dev/null @@ -1,39 +0,0 @@ -# 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. - -# Implements hack/lib/version.sh's kube::version::ldflags() for Bazel. -def version_x_defs(): - # This should match the list of packages in kube::version::ldflag - stamp_pkgs = [ - "k8s.io/kubernetes/vendor/k8s.io/component-base/version", - "k8s.io/kubernetes/vendor/k8s.io/client-go/pkg/version", - ] - - # This should match the list of vars in kube::version::ldflags - # It should also match the list of vars set in hack/print-workspace-status.sh. - stamp_vars = [ - "buildDate", - "gitCommit", - "gitMajor", - "gitMinor", - "gitTreeState", - "gitVersion", - ] - - # Generate the cross-product. - x_defs = {} - for pkg in stamp_pkgs: - for var in stamp_vars: - x_defs["%s.%s" % (pkg, var)] = "{%s}" % var - return x_defs diff --git a/vendor/k8s.io/gengo/examples/defaulter-gen/generators/defaulter.go b/vendor/k8s.io/gengo/examples/defaulter-gen/generators/defaulter.go index cdb6f7c7e4..72782b166e 100644 --- a/vendor/k8s.io/gengo/examples/defaulter-gen/generators/defaulter.go +++ b/vendor/k8s.io/gengo/examples/defaulter-gen/generators/defaulter.go @@ -23,6 +23,7 @@ import ( "io" "path/filepath" "reflect" + "strconv" "strings" "k8s.io/gengo/args" @@ -50,7 +51,7 @@ var typeZeroValue = map[string]interface{}{ "int16": 0., "int32": 0., "int64": 0., - "byte": 0, + "byte": 0., "float64": 0., "float32": 0., "bool": false, @@ -839,6 +840,12 @@ type callNode struct { // For example 1 corresponds to setting a default value and taking its pointer while // 2 corresponds to setting a default value and taking its pointer's pointer // 0 implies that no pointers are used + // This is used in situations where a field is a pointer to a primitive value rather than a primitive value itself. + // + // type A { + // +default="foo" + // Field *string + // } defaultDepth int // defaultType is the type of the default value. @@ -899,80 +906,90 @@ func (n *callNode) writeCalls(varName string, isVarPointer bool, sw *generator.S } } +func getTypeZeroValue(t string) (interface{}, error) { + defaultZero, ok := typeZeroValue[t] + if !ok { + return nil, fmt.Errorf("Cannot find zero value for type %v in typeZeroValue", t) + } + + // To generate the code for empty string, they must be quoted + if defaultZero == "" { + defaultZero = strconv.Quote(defaultZero.(string)) + } + return defaultZero, nil +} + func (n *callNode) writeDefaulter(varName string, index string, isVarPointer bool, sw *generator.SnippetWriter) { if n.defaultValue == "" { return } - varPointer := varName - if !isVarPointer { - varPointer = "&" + varPointer - } - args := generator.Args{ "defaultValue": n.defaultValue, - "varPointer": varPointer, "varName": varName, "index": index, "varDepth": n.defaultDepth, "varType": n.defaultType, } + variablePlaceholder := "" + if n.index { - sw.Do("if reflect.ValueOf($.var$[$.index$]).IsZero() {\n", generator.Args{"var": varName, "index": index}) - if n.defaultIsPrimitive { - if n.defaultDepth > 0 { - sw.Do("var ptrVar$.varDepth$ $.varType$ = $.defaultValue$\n", args) - for i := n.defaultDepth; i > 0; i-- { - sw.Do("ptrVar$.ptri$ := &ptrVar$.i$\n", generator.Args{"i": fmt.Sprintf("%d", i), "ptri": fmt.Sprintf("%d", (i - 1))}) - } - sw.Do("$.varName$[$.index$] = ptrVar0", args) - } else { - sw.Do("$.varName$[$.index$] = $.defaultValue$", args) - } - } else { - sw.Do("if err := json.Unmarshal([]byte(`$.defaultValue$`), $.varPointer$[$.index$]); err != nil {\n", args) - sw.Do("panic(err)\n", nil) - sw.Do("}\n", nil) - } + // Defaulting for array + variablePlaceholder = "$.varName$[$.index$]" } else if n.key { - mapDefaultVar := index + "_default" + // Defaulting for map + variablePlaceholder = "$.varName$[$.index$]" + mapDefaultVar := args["index"].(string) + "_default" args["mapDefaultVar"] = mapDefaultVar - sw.Do("if reflect.ValueOf($.var$[$.index$]).IsZero() {\n", generator.Args{"var": varName, "index": index}) + } else { + // Defaulting for primitive type + variablePlaceholder = "$.varName$" + } - if n.defaultIsPrimitive { - if n.defaultDepth > 0 { - sw.Do("var ptrVar$.varDepth$ $.varType$ = $.defaultValue$\n", args) - for i := n.defaultDepth; i > 0; i-- { - sw.Do("ptrVar$.ptri$ := &ptrVar$.i$\n", generator.Args{"i": fmt.Sprintf("%d", i), "ptri": fmt.Sprintf("%d", (i - 1))}) - } - sw.Do("$.varName$[$.index$] = ptrVar0", args) - } else { - sw.Do("$.varName$[$.index$] = $.defaultValue$", args) + // defaultIsPrimitive is true if the type or underlying type (in an array/map) is primitive + // or is a pointer to a primitive type + // (Eg: int, map[string]*string, []int) + if n.defaultIsPrimitive { + // If the default value is a primitive when the assigned type is a pointer + // keep using the address-of operator on the primitive value until the types match + if n.defaultDepth > 0 { + sw.Do(fmt.Sprintf("if %s == nil {\n", variablePlaceholder), args) + sw.Do("var ptrVar$.varDepth$ $.varType$ = $.defaultValue$\n", args) + // We iterate until a depth of 1 instead of 0 because the following line + // `if $.varName$ == &ptrVar1` accounts for 1 level already + for i := n.defaultDepth; i > 1; i-- { + sw.Do("ptrVar$.ptri$ := &ptrVar$.i$\n", generator.Args{"i": fmt.Sprintf("%d", i), "ptri": fmt.Sprintf("%d", (i - 1))}) } + sw.Do(fmt.Sprintf("%s = &ptrVar1", variablePlaceholder), args) } else { - sw.Do("$.mapDefaultVar$ := $.varName$[$.index$]\n", args) - sw.Do("if err := json.Unmarshal([]byte(`$.defaultValue$`), &$.mapDefaultVar$); err != nil {\n", args) - sw.Do("panic(err)\n", nil) - sw.Do("}\n", nil) - sw.Do("$.varName$[$.index$] = $.mapDefaultVar$\n", args) + // For primitive types, nil checks cannot be used and the zero value must be determined + defaultZero, err := getTypeZeroValue(n.defaultType) + if err != nil { + klog.Error(err) + } + args["defaultZero"] = defaultZero + + sw.Do(fmt.Sprintf("if %s == $.defaultZero$ {\n", variablePlaceholder), args) + sw.Do(fmt.Sprintf("%s = $.defaultValue$", variablePlaceholder), args) } } else { - sw.Do("if reflect.ValueOf($.var$).IsZero() {\n", generator.Args{"var": varName}) - - if n.defaultIsPrimitive { - if n.defaultDepth > 0 { - sw.Do("var ptrVar$.varDepth$ $.varType$ = $.defaultValue$\n", args) - for i := n.defaultDepth; i > 0; i-- { - sw.Do("ptrVar$.ptri$ := &ptrVar$.i$\n", generator.Args{"i": fmt.Sprintf("%d", i), "ptri": fmt.Sprintf("%d", (i - 1))}) - } - sw.Do("$.varName$ = ptrVar0", args) - } else { - sw.Do("$.varName$ = $.defaultValue$", args) - } + sw.Do(fmt.Sprintf("if %s == nil {\n", variablePlaceholder), args) + // Map values are not directly addressable and we need a temporary variable to do json unmarshalling + // This applies to maps with non-primitive values (eg: map[string]SubStruct) + if n.key { + sw.Do("$.mapDefaultVar$ := $.varName$[$.index$]\n", args) + sw.Do("if err := json.Unmarshal([]byte(`$.defaultValue$`), &$.mapDefaultVar$); err != nil {\n", args) } else { - sw.Do("if err := json.Unmarshal([]byte(`$.defaultValue$`), $.varPointer$); err != nil {\n", args) - sw.Do("panic(err)\n", nil) - sw.Do("}\n", nil) + variablePointer := variablePlaceholder + if !isVarPointer { + variablePointer = "&" + variablePointer + } + sw.Do(fmt.Sprintf("if err := json.Unmarshal([]byte(`$.defaultValue$`), %s); err != nil {\n", variablePointer), args) + } + sw.Do("panic(err)\n", nil) + sw.Do("}\n", nil) + if n.key { + sw.Do("$.varName$[$.index$] = $.mapDefaultVar$\n", args) } } sw.Do("}\n", nil) diff --git a/vendor/k8s.io/gengo/parser/parse.go b/vendor/k8s.io/gengo/parser/parse.go index 14b5ae1347..635afcf282 100644 --- a/vendor/k8s.io/gengo/parser/parse.go +++ b/vendor/k8s.io/gengo/parser/parse.go @@ -493,6 +493,19 @@ func (b *Builder) FindTypes() (types.Universe, error) { return u, nil } +// addCommentsToType takes any accumulated comment lines prior to obj and +// attaches them to the type t. +func (b *Builder) addCommentsToType(obj tc.Object, t *types.Type) { + c1 := b.priorCommentLines(obj.Pos(), 1) + // c1.Text() is safe if c1 is nil + t.CommentLines = splitLines(c1.Text()) + if c1 == nil { + t.SecondClosestCommentLines = splitLines(b.priorCommentLines(obj.Pos(), 2).Text()) + } else { + t.SecondClosestCommentLines = splitLines(b.priorCommentLines(c1.List[0].Slash, 2).Text()) + } +} + // findTypesIn finalizes the package import and searches through the package // for types. func (b *Builder) findTypesIn(pkgPath importPathString, u *types.Universe) error { @@ -536,35 +549,23 @@ func (b *Builder) findTypesIn(pkgPath importPathString, u *types.Universe) error tn, ok := obj.(*tc.TypeName) if ok { t := b.walkType(*u, nil, tn.Type()) - c1 := b.priorCommentLines(obj.Pos(), 1) - // c1.Text() is safe if c1 is nil - t.CommentLines = splitLines(c1.Text()) - if c1 == nil { - t.SecondClosestCommentLines = splitLines(b.priorCommentLines(obj.Pos(), 2).Text()) - } else { - t.SecondClosestCommentLines = splitLines(b.priorCommentLines(c1.List[0].Slash, 2).Text()) - } + b.addCommentsToType(obj, t) } tf, ok := obj.(*tc.Func) // We only care about functions, not concrete/abstract methods. if ok && tf.Type() != nil && tf.Type().(*tc.Signature).Recv() == nil { t := b.addFunction(*u, nil, tf) - c1 := b.priorCommentLines(obj.Pos(), 1) - // c1.Text() is safe if c1 is nil - t.CommentLines = splitLines(c1.Text()) - if c1 == nil { - t.SecondClosestCommentLines = splitLines(b.priorCommentLines(obj.Pos(), 2).Text()) - } else { - t.SecondClosestCommentLines = splitLines(b.priorCommentLines(c1.List[0].Slash, 2).Text()) - } + b.addCommentsToType(obj, t) } tv, ok := obj.(*tc.Var) if ok && !tv.IsField() { - b.addVariable(*u, nil, tv) + t := b.addVariable(*u, nil, tv) + b.addCommentsToType(obj, t) } tconst, ok := obj.(*tc.Const) if ok { - b.addConstant(*u, nil, tconst) + t := b.addConstant(*u, nil, tconst) + b.addCommentsToType(obj, t) } } diff --git a/vendor/k8s.io/kube-openapi/pkg/schemaconv/smd.go b/vendor/k8s.io/kube-openapi/pkg/schemaconv/smd.go index adc76f6c0c..99b33d34f2 100644 --- a/vendor/k8s.io/kube-openapi/pkg/schemaconv/smd.go +++ b/vendor/k8s.io/kube-openapi/pkg/schemaconv/smd.go @@ -27,6 +27,10 @@ import ( "sigs.k8s.io/structured-merge-diff/v4/schema" ) +const ( + quantityResource = "io.k8s.apimachinery.pkg.api.resource.Quantity" +) + // ToSchema converts openapi definitions into a schema suitable for structured // merge (i.e. kubectl apply v2). func ToSchema(models proto.Models) (*schema.Schema, error) { @@ -414,29 +418,33 @@ func ptr(s schema.Scalar) *schema.Scalar { return &s } func (c *convert) VisitPrimitive(p *proto.Primitive) { a := c.top() - switch p.Type { - case proto.Integer: - a.Scalar = ptr(schema.Numeric) - case proto.Number: - a.Scalar = ptr(schema.Numeric) - case proto.String: - switch p.Format { - case "": - a.Scalar = ptr(schema.String) - case "byte": - // byte really means []byte and is encoded as a string. - a.Scalar = ptr(schema.String) - case "int-or-string": - a.Scalar = ptr(schema.Scalar("untyped")) - case "date-time": - a.Scalar = ptr(schema.Scalar("untyped")) + if c.currentName == quantityResource { + a.Scalar = ptr(schema.Scalar("untyped")) + } else { + switch p.Type { + case proto.Integer: + a.Scalar = ptr(schema.Numeric) + case proto.Number: + a.Scalar = ptr(schema.Numeric) + case proto.String: + switch p.Format { + case "": + a.Scalar = ptr(schema.String) + case "byte": + // byte really means []byte and is encoded as a string. + a.Scalar = ptr(schema.String) + case "int-or-string": + a.Scalar = ptr(schema.Scalar("untyped")) + case "date-time": + a.Scalar = ptr(schema.Scalar("untyped")) + default: + a.Scalar = ptr(schema.Scalar("untyped")) + } + case proto.Boolean: + a.Scalar = ptr(schema.Boolean) default: a.Scalar = ptr(schema.Scalar("untyped")) } - case proto.Boolean: - a.Scalar = ptr(schema.Boolean) - default: - a.Scalar = ptr(schema.Scalar("untyped")) } } diff --git a/vendor/k8s.io/kube-openapi/pkg/util/util.go b/vendor/k8s.io/kube-openapi/pkg/util/util.go index 1eb674eea0..0be06989e6 100644 --- a/vendor/k8s.io/kube-openapi/pkg/util/util.go +++ b/vendor/k8s.io/kube-openapi/pkg/util/util.go @@ -80,6 +80,9 @@ func ToRESTFriendlyName(name string) string { // Example for vendored Go type: // Original full path: k8s.io/kubernetes/vendor/k8s.io/api/core/v1.Pod // Canonical name: k8s.io/api/core/v1.Pod +// +// Original full path: vendor/k8s.io/api/core/v1.Pod +// Canonical name: k8s.io/api/core/v1.Pod type OpenAPICanonicalTypeNamer interface { OpenAPICanonicalTypeName() string } @@ -100,6 +103,8 @@ func GetCanonicalTypeName(model interface{}) string { path := t.PkgPath() if strings.Contains(path, "/vendor/") { path = path[strings.Index(path, "/vendor/")+len("/vendor/"):] + } else if strings.HasPrefix(path, "vendor/") { + path = strings.TrimPrefix(path, "vendor/") } return path + "." + t.Name() } diff --git a/vendor/k8s.io/kubectl/pkg/cmd/apply/apply.go b/vendor/k8s.io/kubectl/pkg/cmd/apply/apply.go index 2722af720c..28883537bc 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/apply/apply.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/apply/apply.go @@ -218,11 +218,7 @@ func (o *ApplyOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error { if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(o.DynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(o.DynamicClient, f.OpenAPIGetter()) o.FieldManager = GetApplyFieldManagerFlag(cmd, o.ServerSideApply) if o.ForceConflicts && !o.ServerSideApply { @@ -464,7 +460,7 @@ are the ways you can resolve this warning: * You may co-own fields by updating your manifest to match the existing value; in this case, you'll become the manager if the other manager(s) stop managing the field (remove it from their configuration). -See http://k8s.io/docs/reference/using-api/api-concepts/#conflicts`, err) +See http://k8s.io/docs/reference/using-api/server-side-apply/#conflicts`, err) } return err } @@ -652,7 +648,7 @@ func (o *ApplyOptions) MarkNamespaceVisited(info *resource.Info) { } } -// MarkNamespaceVisited keeps track of UIDs of the applied +// MarkObjectVisited keeps track of UIDs of the applied // objects. Used for pruning. func (o *ApplyOptions) MarkObjectVisited(info *resource.Info) error { metadata, err := meta.Accessor(info.Object) @@ -663,7 +659,7 @@ func (o *ApplyOptions) MarkObjectVisited(info *resource.Info) error { return nil } -// PrintAndPrune returns a function which meets the PostProcessorFn +// PrintAndPrunePostProcessor returns a function which meets the PostProcessorFn // function signature. This returned function prints all the // objects as a list (if configured for that), and prunes the // objects not applied. The returned function is the standard diff --git a/vendor/k8s.io/kubectl/pkg/cmd/apply/apply_set_last_applied.go b/vendor/k8s.io/kubectl/pkg/cmd/apply/apply_set_last_applied.go index f761f80032..1b9dd672b9 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/apply/apply_set_last_applied.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/apply/apply_set_last_applied.go @@ -128,11 +128,7 @@ func (o *SetLastAppliedOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.dryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.dryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) o.output = cmdutil.GetFlagString(cmd, "output") o.shortOutput = o.output == "name" diff --git a/vendor/k8s.io/kubectl/pkg/cmd/apply/prune.go b/vendor/k8s.io/kubectl/pkg/cmd/apply/prune.go index 724fe9d14d..d504970785 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/apply/prune.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/apply/prune.go @@ -172,8 +172,7 @@ func (pr pruneResource) String() string { func getRESTMappings(mapper meta.RESTMapper, pruneResources *[]pruneResource) (namespaced, nonNamespaced []*meta.RESTMapping, err error) { if len(*pruneResources) == 0 { - // default whitelist - // TODO: need to handle the older api versions - e.g. v1beta1 jobs. Github issue: #35991 + // default allowlist *pruneResources = []pruneResource{ {"", "v1", "ConfigMap", true}, {"", "v1", "Endpoints", true}, @@ -186,7 +185,7 @@ func getRESTMappings(mapper meta.RESTMapper, pruneResources *[]pruneResource) (n {"", "v1", "Service", true}, {"batch", "v1", "Job", true}, {"batch", "v1beta1", "CronJob", true}, - {"extensions", "v1beta1", "Ingress", true}, + {"networking.k8s.io", "v1", "Ingress", true}, {"apps", "v1", "DaemonSet", true}, {"apps", "v1", "Deployment", true}, {"apps", "v1", "ReplicaSet", true}, diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create.go index d5a9b95c2b..090f736c6f 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create.go @@ -206,11 +206,7 @@ func (o *CreateOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error { if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) printer, err := o.PrintFlags.ToPrinter() if err != nil { @@ -387,11 +383,7 @@ func (o *CreateSubcommandOptions) Complete(f cmdutil.Factory, cmd *cobra.Command if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag) cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_clusterrolebinding.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_clusterrolebinding.go index 35b99cb791..e973dc9517 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_clusterrolebinding.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_clusterrolebinding.go @@ -131,11 +131,7 @@ func (o *ClusterRoleBindingOptions) Complete(f cmdutil.Factory, cmd *cobra.Comma if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) printer, err := o.PrintFlags.ToPrinter() diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_configmap.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_configmap.go index b93c87db44..22728f5fb6 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_configmap.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_configmap.go @@ -17,12 +17,27 @@ limitations under the License. package create import ( + "context" + "fmt" + "io/ioutil" + "os" + "path" + "strings" + "unicode/utf8" + "github.com/spf13/cobra" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation" "k8s.io/cli-runtime/pkg/genericclioptions" + "k8s.io/cli-runtime/pkg/resource" + corev1client "k8s.io/client-go/kubernetes/typed/core/v1" cmdutil "k8s.io/kubectl/pkg/cmd/util" - "k8s.io/kubectl/pkg/generate" - generateversioned "k8s.io/kubectl/pkg/generate/versioned" + "k8s.io/kubectl/pkg/scheme" + "k8s.io/kubectl/pkg/util" + "k8s.io/kubectl/pkg/util/hash" "k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/templates" ) @@ -57,16 +72,50 @@ var ( kubectl create configmap my-config --from-env-file=path/to/bar.env`)) ) -// ConfigMapOpts holds properties for create configmap sub-command -type ConfigMapOpts struct { - CreateSubcommandOptions *CreateSubcommandOptions +// ConfigMapOptions holds properties for create configmap sub-command +type ConfigMapOptions struct { + // PrintFlags holds options necessary for obtaining a printer + PrintFlags *genericclioptions.PrintFlags + PrintObj func(obj runtime.Object) error + + // Name of configMap (required) + Name string + // Type of configMap (optional) + Type string + // FileSources to derive the configMap from (optional) + FileSources []string + // LiteralSources to derive the configMap from (optional) + LiteralSources []string + // EnvFileSource to derive the configMap from (optional) + EnvFileSource string + // AppendHash; if true, derive a hash from the ConfigMap and append it to the name + AppendHash bool + + FieldManager string + CreateAnnotation bool + Namespace string + EnforceNamespace bool + + Client corev1client.CoreV1Interface + DryRunStrategy cmdutil.DryRunStrategy + DryRunVerifier *resource.DryRunVerifier + + genericclioptions.IOStreams } -// NewCmdCreateConfigMap initializes and returns ConfigMapOpts -func NewCmdCreateConfigMap(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { - options := &ConfigMapOpts{ - CreateSubcommandOptions: NewCreateSubcommandOptions(ioStreams), +// NewConfigMapOptions creates a new *ConfigMapOptions with default value +func NewConfigMapOptions(ioStreams genericclioptions.IOStreams) *ConfigMapOptions { + return &ConfigMapOptions{ + FileSources: []string{}, + LiteralSources: []string{}, + PrintFlags: genericclioptions.NewPrintFlags("created").WithTypeSetter(scheme.Scheme), + IOStreams: ioStreams, } +} + +// NewCmdCreateConfigMap creates the `create configmap` Cobra command +func NewCmdCreateConfigMap(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { + o := NewConfigMapOptions(ioStreams) cmd := &cobra.Command{ Use: "configmap NAME [--from-file=[key=]source] [--from-literal=key1=value1] [--dry-run=server|client|none]", @@ -76,49 +125,296 @@ func NewCmdCreateConfigMap(f cmdutil.Factory, ioStreams genericclioptions.IOStre Long: configMapLong, Example: configMapExample, Run: func(cmd *cobra.Command, args []string) { - cmdutil.CheckErr(options.Complete(f, cmd, args)) - cmdutil.CheckErr(options.Run()) + cmdutil.CheckErr(o.Complete(f, cmd, args)) + cmdutil.CheckErr(o.Validate()) + cmdutil.CheckErr(o.Run()) }, } - - options.CreateSubcommandOptions.PrintFlags.AddFlags(cmd) + o.PrintFlags.AddFlags(cmd) cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) - cmdutil.AddGeneratorFlags(cmd, generateversioned.ConfigMapV1GeneratorName) - cmd.Flags().StringSlice("from-file", []string{}, "Key file can be specified using its file path, in which case file basename will be used as configmap key, or optionally with a key and file path, in which case the given key will be used. Specifying a directory will iterate each named file in the directory whose basename is a valid configmap key.") - cmd.Flags().StringArray("from-literal", []string{}, "Specify a key and literal value to insert in configmap (i.e. mykey=somevalue)") - cmd.Flags().String("from-env-file", "", "Specify the path to a file to read lines of key=val pairs to create a configmap (i.e. a Docker .env file).") - cmd.Flags().Bool("append-hash", false, "Append a hash of the configmap to its name.") - cmdutil.AddFieldManagerFlagVar(cmd, &options.CreateSubcommandOptions.FieldManager, "kubectl-create") + cmdutil.AddDryRunFlag(cmd) + + cmd.Flags().StringSliceVar(&o.FileSources, "from-file", o.FileSources, "Key file can be specified using its file path, in which case file basename will be used as configmap key, or optionally with a key and file path, in which case the given key will be used. Specifying a directory will iterate each named file in the directory whose basename is a valid configmap key.") + cmd.Flags().StringArrayVar(&o.LiteralSources, "from-literal", o.LiteralSources, "Specify a key and literal value to insert in configmap (i.e. mykey=somevalue)") + cmd.Flags().StringVar(&o.EnvFileSource, "from-env-file", o.EnvFileSource, "Specify the path to a file to read lines of key=val pairs to create a configmap (i.e. a Docker .env file).") + cmd.Flags().BoolVar(&o.AppendHash, "append-hash", o.AppendHash, "Append a hash of the configmap to its name.") + + cmdutil.AddFieldManagerFlagVar(cmd, &o.FieldManager, "kubectl-create") + return cmd } -// Complete completes all the required options -func (o *ConfigMapOpts) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { - name, err := NameFromCommandArgs(cmd, args) +// Complete loads data from the command line environment +func (o *ConfigMapOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { + var err error + o.Name, err = NameFromCommandArgs(cmd, args) if err != nil { return err } - var generator generate.StructuredGenerator - switch generatorName := cmdutil.GetFlagString(cmd, "generator"); generatorName { - case generateversioned.ConfigMapV1GeneratorName: - generator = &generateversioned.ConfigMapGeneratorV1{ - Name: name, - FileSources: cmdutil.GetFlagStringSlice(cmd, "from-file"), - LiteralSources: cmdutil.GetFlagStringArray(cmd, "from-literal"), - EnvFileSource: cmdutil.GetFlagString(cmd, "from-env-file"), - AppendHash: cmdutil.GetFlagBool(cmd, "append-hash"), + restConfig, err := f.ToRESTConfig() + if err != nil { + return err + } + + o.Client, err = corev1client.NewForConfig(restConfig) + if err != nil { + return err + } + + o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag) + + o.DryRunStrategy, err = cmdutil.GetDryRunStrategy(cmd) + if err != nil { + return err + } + + dynamicClient, err := f.DynamicClient() + if err != nil { + return err + } + + discoveryClient, err := f.ToDiscoveryClient() + if err != nil { + return err + } + + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + + o.Namespace, o.EnforceNamespace, err = f.ToRawKubeConfigLoader().Namespace() + if err != nil { + return err + } + + cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) + printer, err := o.PrintFlags.ToPrinter() + if err != nil { + return err + } + o.PrintObj = func(obj runtime.Object) error { + return printer.PrintObj(obj, o.Out) + } + + return nil +} + +// Validate checks if ConfigMapOptions has sufficient value to run +func (o *ConfigMapOptions) Validate() error { + if len(o.Name) == 0 { + return fmt.Errorf("name must be specified") + } + if len(o.EnvFileSource) > 0 && (len(o.FileSources) > 0 || len(o.LiteralSources) > 0) { + return fmt.Errorf("from-env-file cannot be combined with from-file or from-literal") + } + return nil +} + +// Run calls createConfigMap and filled in value for configMap object +func (o *ConfigMapOptions) Run() error { + configMap, err := o.createConfigMap() + if err != nil { + return nil + } + if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, configMap, scheme.DefaultJSONEncoder()); err != nil { + return err + } + if o.DryRunStrategy != cmdutil.DryRunClient { + createOptions := metav1.CreateOptions{} + if o.FieldManager != "" { + createOptions.FieldManager = o.FieldManager + } + if o.DryRunStrategy == cmdutil.DryRunServer { + if err := o.DryRunVerifier.HasSupport(configMap.GroupVersionKind()); err != nil { + return err + } + createOptions.DryRun = []string{metav1.DryRunAll} + } + configMap, err = o.Client.ConfigMaps(o.Namespace).Create(context.TODO(), configMap, createOptions) + if err != nil { + return fmt.Errorf("failed to create configmap: %v", err) + } + } + + return o.PrintObj(configMap) +} + +// createConfigMap fills in key value pair from the information given in +// ConfigMapOptions into *corev1.ConfigMap +func (o *ConfigMapOptions) createConfigMap() (*corev1.ConfigMap, error) { + namespace := "" + if o.EnforceNamespace { + namespace = o.Namespace + } + + configMap := &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + APIVersion: corev1.SchemeGroupVersion.String(), + Kind: "ConfigMap", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: o.Name, + Namespace: namespace, + }, + } + configMap.Name = o.Name + configMap.Data = map[string]string{} + configMap.BinaryData = map[string][]byte{} + + if len(o.FileSources) > 0 { + if err := handleConfigMapFromFileSources(configMap, o.FileSources); err != nil { + return nil, err + } + } + if len(o.LiteralSources) > 0 { + if err := handleConfigMapFromLiteralSources(configMap, o.LiteralSources); err != nil { + return nil, err + } + } + if len(o.EnvFileSource) > 0 { + if err := handleConfigMapFromEnvFileSource(configMap, o.EnvFileSource); err != nil { + return nil, err + } + } + if o.AppendHash { + hash, err := hash.ConfigMapHash(configMap) + if err != nil { + return nil, err + } + configMap.Name = fmt.Sprintf("%s-%s", configMap.Name, hash) + } + + return configMap, nil +} + +// handleConfigMapFromLiteralSources adds the specified literal source +// information into the provided configMap. +func handleConfigMapFromLiteralSources(configMap *corev1.ConfigMap, literalSources []string) error { + for _, literalSource := range literalSources { + keyName, value, err := util.ParseLiteralSource(literalSource) + if err != nil { + return err + } + err = addKeyFromLiteralToConfigMap(configMap, keyName, value) + if err != nil { + return err } - default: - return errUnsupportedGenerator(cmd, generatorName) } - return o.CreateSubcommandOptions.Complete(f, cmd, args, generator) + return nil } -// Run performs the execution of 'create' sub command options -func (o *ConfigMapOpts) Run() error { - return o.CreateSubcommandOptions.Run() +// handleConfigMapFromFileSources adds the specified file source information +// into the provided configMap +func handleConfigMapFromFileSources(configMap *corev1.ConfigMap, fileSources []string) error { + for _, fileSource := range fileSources { + keyName, filePath, err := util.ParseFileSource(fileSource) + if err != nil { + return err + } + info, err := os.Stat(filePath) + if err != nil { + switch err := err.(type) { + case *os.PathError: + return fmt.Errorf("error reading %s: %v", filePath, err.Err) + default: + return fmt.Errorf("error reading %s: %v", filePath, err) + } + + } + if info.IsDir() { + if strings.Contains(fileSource, "=") { + return fmt.Errorf("cannot give a key name for a directory path") + } + fileList, err := ioutil.ReadDir(filePath) + if err != nil { + return fmt.Errorf("error listing files in %s: %v", filePath, err) + } + for _, item := range fileList { + itemPath := path.Join(filePath, item.Name()) + if item.Mode().IsRegular() { + keyName = item.Name() + err = addKeyFromFileToConfigMap(configMap, keyName, itemPath) + if err != nil { + return err + } + } + } + } else { + if err := addKeyFromFileToConfigMap(configMap, keyName, filePath); err != nil { + return err + } + + } + } + return nil +} + +// handleConfigMapFromEnvFileSource adds the specified env file source information +// into the provided configMap +func handleConfigMapFromEnvFileSource(configMap *corev1.ConfigMap, envFileSource string) error { + info, err := os.Stat(envFileSource) + if err != nil { + switch err := err.(type) { + case *os.PathError: + return fmt.Errorf("error reading %s: %v", envFileSource, err.Err) + default: + return fmt.Errorf("error reading %s: %v", envFileSource, err) + } + } + if info.IsDir() { + return fmt.Errorf("env config file cannot be a directory") + } + + return cmdutil.AddFromEnvFile(envFileSource, func(key, value string) error { + return addKeyFromLiteralToConfigMap(configMap, key, value) + }) +} + +// addKeyFromFileToConfigMap adds a key with the given name to a ConfigMap, populating +// the value with the content of the given file path, or returns an error. +func addKeyFromFileToConfigMap(configMap *corev1.ConfigMap, keyName, filePath string) error { + data, err := ioutil.ReadFile(filePath) + if err != nil { + return err + } + if utf8.Valid(data) { + return addKeyFromLiteralToConfigMap(configMap, keyName, string(data)) + } + err = validateNewConfigMap(configMap, keyName) + if err != nil { + return err + } + configMap.BinaryData[keyName] = data + + return nil +} + +// addKeyFromLiteralToConfigMap adds the given key and data to the given config map, +// returning an error if the key is not valid or if the key already exists. +func addKeyFromLiteralToConfigMap(configMap *corev1.ConfigMap, keyName, data string) error { + err := validateNewConfigMap(configMap, keyName) + if err != nil { + return err + } + configMap.Data[keyName] = data + + return nil +} + +// validateNewConfigMap checks whether the keyname is valid +// Note, the rules for ConfigMap keys are the exact same as the ones for SecretKeys. +func validateNewConfigMap(configMap *corev1.ConfigMap, keyName string) error { + if errs := validation.IsConfigMapKey(keyName); len(errs) > 0 { + return fmt.Errorf("%q is not a valid key name for a ConfigMap: %s", keyName, strings.Join(errs, ",")) + } + if _, exists := configMap.Data[keyName]; exists { + return fmt.Errorf("cannot add key %q, another key by that name already exists in Data for ConfigMap %q", keyName, configMap.Name) + } + if _, exists := configMap.BinaryData[keyName]; exists { + return fmt.Errorf("cannot add key %q, another key by that name already exists in BinaryData for ConfigMap %q", keyName, configMap.Name) + } + + return nil } diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_cronjob.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_cronjob.go index 758ae0db48..f0b672c490 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_cronjob.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_cronjob.go @@ -29,6 +29,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/cli-runtime/pkg/resource" + batchv1client "k8s.io/client-go/kubernetes/typed/batch/v1" batchv1beta1client "k8s.io/client-go/kubernetes/typed/batch/v1beta1" cmdutil "k8s.io/kubectl/pkg/cmd/util" "k8s.io/kubectl/pkg/scheme" @@ -49,6 +50,7 @@ var ( kubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *" -- date`) ) +// CreateCronJobOptions is returned by NewCreateCronJobOptions type CreateCronJobOptions struct { PrintFlags *genericclioptions.PrintFlags @@ -62,7 +64,8 @@ type CreateCronJobOptions struct { Namespace string EnforceNamespace bool - Client batchv1beta1client.BatchV1beta1Interface + ClientBeta batchv1beta1client.BatchV1beta1Interface + Client batchv1client.BatchV1Interface DryRunStrategy cmdutil.DryRunStrategy DryRunVerifier *resource.DryRunVerifier Builder *resource.Builder @@ -72,6 +75,7 @@ type CreateCronJobOptions struct { genericclioptions.IOStreams } +// NewCreateCronJobOptions returns an initialized CreateCronJobOptions instance func NewCreateCronJobOptions(ioStreams genericclioptions.IOStreams) *CreateCronJobOptions { return &CreateCronJobOptions{ PrintFlags: genericclioptions.NewPrintFlags("created").WithTypeSetter(scheme.Scheme), @@ -110,6 +114,7 @@ func NewCmdCreateCronJob(f cmdutil.Factory, ioStreams genericclioptions.IOStream return cmd } +// Complete completes all the required options func (o *CreateCronJobOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { name, err := NameFromCommandArgs(cmd, args) if err != nil { @@ -127,10 +132,34 @@ func (o *CreateCronJobOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, a if err != nil { return err } - o.Client, err = batchv1beta1client.NewForConfig(clientConfig) + + // TODO: drop this condition when beta disappears in 1.25 + clientset, err := f.KubernetesClientSet() if err != nil { return err } + resources, err := clientset.Discovery().ServerResourcesForGroupVersion(batchv1.SchemeGroupVersion.String()) + if err != nil { + return fmt.Errorf("failed to discover supported resources: %v", err) + } + found := false + for _, serverResource := range resources.APIResources { + if serverResource.Name == "cronjobs" { + found = true + break + } + } + if found { + o.Client, err = batchv1client.NewForConfig(clientConfig) + if err != nil { + return err + } + } else { + o.ClientBeta, err = batchv1beta1client.NewForConfig(clientConfig) + if err != nil { + return err + } + } o.Namespace, o.EnforceNamespace, err = f.ToRawKubeConfigLoader().Namespace() if err != nil { @@ -148,11 +177,7 @@ func (o *CreateCronJobOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, a if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) printer, err := o.PrintFlags.ToPrinter() if err != nil { @@ -165,10 +190,38 @@ func (o *CreateCronJobOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, a return nil } +// Run performs the execution of 'create cronjob' sub command func (o *CreateCronJobOptions) Run() error { - cronjob := o.createCronJob() + if o.Client != nil { + cronJob := o.createCronJob() + if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, cronJob, scheme.DefaultJSONEncoder()); err != nil { + return err + } - if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, cronjob, scheme.DefaultJSONEncoder()); err != nil { + if o.DryRunStrategy != cmdutil.DryRunClient { + createOptions := metav1.CreateOptions{} + if o.FieldManager != "" { + createOptions.FieldManager = o.FieldManager + } + if o.DryRunStrategy == cmdutil.DryRunServer { + if err := o.DryRunVerifier.HasSupport(cronJob.GroupVersionKind()); err != nil { + return err + } + createOptions.DryRun = []string{metav1.DryRunAll} + } + var err error + cronJob, err = o.Client.CronJobs(o.Namespace).Create(context.TODO(), cronJob, createOptions) + if err != nil { + return fmt.Errorf("failed to create cronjob: %v", err) + } + } + + return o.PrintObj(cronJob) + } + + // TODO: drop this condition when beta disappears in 1.25 + cronJobBeta := o.createCronJobBeta() + if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, cronJobBeta, scheme.DefaultJSONEncoder()); err != nil { return err } @@ -178,22 +231,23 @@ func (o *CreateCronJobOptions) Run() error { createOptions.FieldManager = o.FieldManager } if o.DryRunStrategy == cmdutil.DryRunServer { - if err := o.DryRunVerifier.HasSupport(cronjob.GroupVersionKind()); err != nil { + if err := o.DryRunVerifier.HasSupport(cronJobBeta.GroupVersionKind()); err != nil { return err } createOptions.DryRun = []string{metav1.DryRunAll} } var err error - cronjob, err = o.Client.CronJobs(o.Namespace).Create(context.TODO(), cronjob, createOptions) + cronJobBeta, err = o.ClientBeta.CronJobs(o.Namespace).Create(context.TODO(), cronJobBeta, createOptions) if err != nil { return fmt.Errorf("failed to create cronjob: %v", err) } } - return o.PrintObj(cronjob) + return o.PrintObj(cronJobBeta) + } -func (o *CreateCronJobOptions) createCronJob() *batchv1beta1.CronJob { +func (o *CreateCronJobOptions) createCronJobBeta() *batchv1beta1.CronJob { cronjob := &batchv1beta1.CronJob{ TypeMeta: metav1.TypeMeta{APIVersion: batchv1beta1.SchemeGroupVersion.String(), Kind: "CronJob"}, ObjectMeta: metav1.ObjectMeta{ @@ -227,3 +281,38 @@ func (o *CreateCronJobOptions) createCronJob() *batchv1beta1.CronJob { } return cronjob } + +func (o *CreateCronJobOptions) createCronJob() *batchv1.CronJob { + cronjob := &batchv1.CronJob{ + TypeMeta: metav1.TypeMeta{APIVersion: batchv1.SchemeGroupVersion.String(), Kind: "CronJob"}, + ObjectMeta: metav1.ObjectMeta{ + Name: o.Name, + }, + Spec: batchv1.CronJobSpec{ + Schedule: o.Schedule, + JobTemplate: batchv1.JobTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Name: o.Name, + }, + Spec: batchv1.JobSpec{ + Template: corev1.PodTemplateSpec{ + Spec: corev1.PodSpec{ + Containers: []corev1.Container{ + { + Name: o.Name, + Image: o.Image, + Command: o.Command, + }, + }, + RestartPolicy: corev1.RestartPolicy(o.Restart), + }, + }, + }, + }, + }, + } + if o.EnforceNamespace { + cronjob.Namespace = o.Namespace + } + return cronjob +} diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_deployment.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_deployment.go index b28b09b6b0..283e8a528f 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_deployment.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_deployment.go @@ -79,6 +79,7 @@ type CreateDeploymentOptions struct { genericclioptions.IOStreams } +// NewCreateDeploymentOptions returns an initialized CreateDeploymentOptions instance func NewCreateDeploymentOptions(ioStreams genericclioptions.IOStreams) *CreateDeploymentOptions { return &CreateDeploymentOptions{ Port: -1, @@ -155,11 +156,7 @@ func (o *CreateDeploymentOptions) Complete(f cmdutil.Factory, cmd *cobra.Command if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) printer, err := o.PrintFlags.ToPrinter() @@ -173,6 +170,7 @@ func (o *CreateDeploymentOptions) Complete(f cmdutil.Factory, cmd *cobra.Command return nil } +// Validate makes sure there is no discrepency in provided option values func (o *CreateDeploymentOptions) Validate() error { if len(o.Images) > 1 && len(o.Command) > 0 { return fmt.Errorf("cannot specify multiple --image options and command") diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_ingress.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_ingress.go index 83a2541e6f..fc4bd83581 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_ingress.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_ingress.go @@ -62,7 +62,7 @@ var ( Create an ingress with the specified name.`)) ingressExample = templates.Examples(i18n.T(` - # Create a single ingress called 'simple' that directs requests to foo.com/bar to svc + # Create a single ingress called 'simple' that directs requests to foo.com/bar to svc # svc1:8080 with a tls secret "my-cert" kubectl create ingress simple --rule="foo.com/bar=svc1:8080,tls=my-cert" @@ -75,7 +75,7 @@ var ( --annotation ingress.annotation2=bla # Create an ingress with the same host and multiple paths - kubectl create ingress multipath --class=default \ + kubectl create ingress multipath --class=default \ --rule="foo.com/=svc:port" \ --rule="foo.com/admin/=svcadmin:portadmin" @@ -88,11 +88,11 @@ var ( kubectl create ingress ingtls --class=default \ --rule="foo.com/=svc:https,tls" \ --rule="foo.com/path/subpath*=othersvc:8080" - + # Create an ingress with TLS enabled using a specific secret and pathType as Prefix kubectl create ingress ingsecret --class=default \ --rule="foo.com/*=svc:8080,tls=secret1" - + # Create an ingress with a default backend kubectl create ingress ingdefault --class=default \ --default-backend=defaultsvc:http \ @@ -198,11 +198,7 @@ func (o *CreateIngressOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, a if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) printer, err := o.PrintFlags.ToPrinter() @@ -232,6 +228,12 @@ func (o *CreateIngressOptions) Validate() error { } } + for _, annotation := range o.Annotations { + if an := strings.SplitN(annotation, "=", 2); len(an) != 2 { + return fmt.Errorf("annotation %s is invalid and should be in format key=[value]", annotation) + } + } + if len(o.DefaultBackend) > 0 && len(strings.Split(o.DefaultBackend, ":")) != 2 { return fmt.Errorf("default-backend should be in format servicename:serviceport") } @@ -289,8 +291,8 @@ func (o *CreateIngressOptions) createIngress() *networkingv1.Ingress { } func (o *CreateIngressOptions) buildAnnotations() map[string]string { - var annotations map[string]string - annotations = make(map[string]string) + + var annotations = make(map[string]string) for _, annotation := range o.Annotations { an := strings.SplitN(annotation, "=", 2) diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_job.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_job.go index b613343473..41ed9d09a5 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_job.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_job.go @@ -146,11 +146,7 @@ func (o *CreateJobOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) printer, err := o.PrintFlags.ToPrinter() if err != nil { @@ -181,7 +177,7 @@ func (o *CreateJobOptions) Run() error { job = o.createJob() } else { infos, err := o.Builder. - Unstructured(). + WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...). NamespaceParam(o.Namespace).DefaultNamespace(). ResourceTypeOrNameArgs(false, o.From). Flatten(). @@ -195,16 +191,14 @@ func (o *CreateJobOptions) Run() error { return fmt.Errorf("from must be an existing cronjob") } - uncastVersionedObj, err := scheme.Scheme.ConvertToVersion(infos[0].Object, batchv1beta1.SchemeGroupVersion) - if err != nil { - return fmt.Errorf("from must be an existing cronjob: %v", err) + switch obj := infos[0].Object.(type) { + case *batchv1.CronJob: + job = o.createJobFromCronJob(obj) + case *batchv1beta1.CronJob: + job = o.createJobFromCronJobV1Beta1(obj) + default: + return fmt.Errorf("unknown object type %T", obj) } - cronJob, ok := uncastVersionedObj.(*batchv1beta1.CronJob) - if !ok { - return fmt.Errorf("from must be an existing cronjob") - } - - job = o.createJobFromCronJob(cronJob) } if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, job, scheme.DefaultJSONEncoder()); err != nil { @@ -260,7 +254,39 @@ func (o *CreateJobOptions) createJob() *batchv1.Job { return job } -func (o *CreateJobOptions) createJobFromCronJob(cronJob *batchv1beta1.CronJob) *batchv1.Job { +func (o *CreateJobOptions) createJobFromCronJobV1Beta1(cronJob *batchv1beta1.CronJob) *batchv1.Job { + annotations := make(map[string]string) + annotations["cronjob.kubernetes.io/instantiate"] = "manual" + for k, v := range cronJob.Spec.JobTemplate.Annotations { + annotations[k] = v + } + + job := &batchv1.Job{ + // this is ok because we know exactly how we want to be serialized + TypeMeta: metav1.TypeMeta{APIVersion: batchv1.SchemeGroupVersion.String(), Kind: "Job"}, + ObjectMeta: metav1.ObjectMeta{ + Name: o.Name, + Annotations: annotations, + Labels: cronJob.Spec.JobTemplate.Labels, + OwnerReferences: []metav1.OwnerReference{ + { + // TODO (soltysh): switch this to v1 in v1.22, when n-1 skew will be fulfilled + APIVersion: batchv1beta1.SchemeGroupVersion.String(), + Kind: "CronJob", + Name: cronJob.GetName(), + UID: cronJob.GetUID(), + }, + }, + }, + Spec: cronJob.Spec.JobTemplate.Spec, + } + if o.EnforceNamespace { + job.Namespace = o.Namespace + } + return job +} + +func (o *CreateJobOptions) createJobFromCronJob(cronJob *batchv1.CronJob) *batchv1.Job { annotations := make(map[string]string) annotations["cronjob.kubernetes.io/instantiate"] = "manual" for k, v := range cronJob.Spec.JobTemplate.Annotations { @@ -277,7 +303,7 @@ func (o *CreateJobOptions) createJobFromCronJob(cronJob *batchv1beta1.CronJob) * OwnerReferences: []metav1.OwnerReference{ { APIVersion: batchv1beta1.SchemeGroupVersion.String(), - Kind: cronJob.Kind, + Kind: "CronJob", Name: cronJob.GetName(), UID: cronJob.GetUID(), }, diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_namespace.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_namespace.go index 49a4b3c962..cb7fdb7e0f 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_namespace.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_namespace.go @@ -17,12 +17,20 @@ limitations under the License. package create import ( + "context" + "fmt" "github.com/spf13/cobra" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/cli-runtime/pkg/resource" + coreclient "k8s.io/client-go/kubernetes/typed/core/v1" + "k8s.io/kubectl/pkg/scheme" + "k8s.io/kubectl/pkg/util" "k8s.io/cli-runtime/pkg/genericclioptions" cmdutil "k8s.io/kubectl/pkg/cmd/util" - "k8s.io/kubectl/pkg/generate" - generateversioned "k8s.io/kubectl/pkg/generate/versioned" "k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/templates" ) @@ -36,16 +44,37 @@ var ( kubectl create namespace my-namespace`)) ) -// NamespaceOpts is the options for 'create namespace' sub command -type NamespaceOpts struct { - CreateSubcommandOptions *CreateSubcommandOptions +// NamespaceOptions is the options for 'create namespace' sub command +type NamespaceOptions struct { + // PrintFlags holds options necessary for obtaining a printer + PrintFlags *genericclioptions.PrintFlags + // Name of resource being created + Name string + + DryRunStrategy cmdutil.DryRunStrategy + DryRunVerifier *resource.DryRunVerifier + CreateAnnotation bool + FieldManager string + + Client *coreclient.CoreV1Client + + PrintObj func(obj runtime.Object) error + + genericclioptions.IOStreams +} + +// NewNamespaceOptions creates a new *NamespaceOptions with sane defaults +func NewNamespaceOptions(ioStreams genericclioptions.IOStreams) *NamespaceOptions { + return &NamespaceOptions{ + PrintFlags: genericclioptions.NewPrintFlags("created").WithTypeSetter(scheme.Scheme), + IOStreams: ioStreams, + } } // NewCmdCreateNamespace is a macro command to create a new namespace func NewCmdCreateNamespace(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { - options := &NamespaceOpts{ - CreateSubcommandOptions: NewCreateSubcommandOptions(ioStreams), - } + + o := NewNamespaceOptions(ioStreams) cmd := &cobra.Command{ Use: "namespace NAME [--dry-run=server|client|none]", @@ -55,40 +84,104 @@ func NewCmdCreateNamespace(f cmdutil.Factory, ioStreams genericclioptions.IOStre Long: namespaceLong, Example: namespaceExample, Run: func(cmd *cobra.Command, args []string) { - cmdutil.CheckErr(options.Complete(f, cmd, args)) - cmdutil.CheckErr(options.Run()) + cmdutil.CheckErr(o.Complete(f, cmd, args)) + cmdutil.CheckErr(o.Validate()) + cmdutil.CheckErr(o.Run()) }, } - options.CreateSubcommandOptions.PrintFlags.AddFlags(cmd) + o.PrintFlags.AddFlags(cmd) cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) - cmdutil.AddGeneratorFlags(cmd, generateversioned.NamespaceV1GeneratorName) - cmdutil.AddFieldManagerFlagVar(cmd, &options.CreateSubcommandOptions.FieldManager, "kubectl-create") + cmdutil.AddDryRunFlag(cmd) + cmdutil.AddFieldManagerFlagVar(cmd, &o.FieldManager, "kubectl-create") return cmd } // Complete completes all the required options -func (o *NamespaceOpts) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { +func (o *NamespaceOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { name, err := NameFromCommandArgs(cmd, args) if err != nil { return err } - var generator generate.StructuredGenerator - switch generatorName := cmdutil.GetFlagString(cmd, "generator"); generatorName { - case generateversioned.NamespaceV1GeneratorName: - generator = &generateversioned.NamespaceGeneratorV1{Name: name} - default: - return errUnsupportedGenerator(cmd, generatorName) + restConfig, err := f.ToRESTConfig() + if err != nil { + return err + } + o.Client, err = coreclient.NewForConfig(restConfig) + if err != nil { + return err } - return o.CreateSubcommandOptions.Complete(f, cmd, args, generator) + o.Name = name + o.DryRunStrategy, err = cmdutil.GetDryRunStrategy(cmd) + if err != nil { + return err + } + dynamicClient, err := f.DynamicClient() + if err != nil { + return err + } + discoveryClient, err := f.ToDiscoveryClient() + if err != nil { + return err + } + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag) + cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) + printer, err := o.PrintFlags.ToPrinter() + if err != nil { + return err + } + o.PrintObj = func(obj runtime.Object) error { + return printer.PrintObj(obj, o.Out) + } + return nil } // Run calls the CreateSubcommandOptions.Run in NamespaceOpts instance -func (o *NamespaceOpts) Run() error { - return o.CreateSubcommandOptions.Run() +func (o *NamespaceOptions) Run() error { + namespace := o.createNamespace() + if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, namespace, scheme.DefaultJSONEncoder()); err != nil { + return err + } + + if o.DryRunStrategy != cmdutil.DryRunClient { + createOptions := metav1.CreateOptions{} + if o.FieldManager != "" { + createOptions.FieldManager = o.FieldManager + } + if o.DryRunStrategy == cmdutil.DryRunServer { + if err := o.DryRunVerifier.HasSupport(namespace.GroupVersionKind()); err != nil { + return err + } + createOptions.DryRun = []string{metav1.DryRunAll} + } + var err error + namespace, err = o.Client.Namespaces().Create(context.TODO(), namespace, createOptions) + if err != nil { + return err + } + } + return o.PrintObj(namespace) +} + +// createNamespace outputs a namespace object using the configured fields +func (o *NamespaceOptions) createNamespace() *corev1.Namespace { + namespace := &corev1.Namespace{ + TypeMeta: metav1.TypeMeta{APIVersion: corev1.SchemeGroupVersion.String(), Kind: "Namespace"}, + ObjectMeta: metav1.ObjectMeta{Name: o.Name}, + } + return namespace +} + +// Validate validates required fields are set to support structured generation +func (o *NamespaceOptions) Validate() error { + if len(o.Name) == 0 { + return fmt.Errorf("name must be specified") + } + return nil } diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_pdb.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_pdb.go index 569895d11e..2e2518bb40 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_pdb.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_pdb.go @@ -17,12 +17,22 @@ limitations under the License. package create import ( + "context" + "fmt" + "regexp" + "github.com/spf13/cobra" + policyv1beta1 "k8s.io/api/policy/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/cli-runtime/pkg/genericclioptions" + resourcecli "k8s.io/cli-runtime/pkg/resource" + policyclient "k8s.io/client-go/kubernetes/typed/policy/v1beta1" cmdutil "k8s.io/kubectl/pkg/cmd/util" - "k8s.io/kubectl/pkg/generate" - generateversioned "k8s.io/kubectl/pkg/generate/versioned" + "k8s.io/kubectl/pkg/scheme" + "k8s.io/kubectl/pkg/util" "k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/templates" ) @@ -43,14 +53,40 @@ var ( // PodDisruptionBudgetOpts holds the command-line options for poddisruptionbudget sub command type PodDisruptionBudgetOpts struct { - CreateSubcommandOptions *CreateSubcommandOptions + // PrintFlags holds options necessary for obtaining a printer + PrintFlags *genericclioptions.PrintFlags + PrintObj func(obj runtime.Object) error + // Name of resource being created + Name string + + MinAvailable string + MaxUnavailable string + + // A label selector to use for this budget + Selector string + CreateAnnotation bool + FieldManager string + Namespace string + EnforceNamespace bool + + Client *policyclient.PolicyV1beta1Client + DryRunStrategy cmdutil.DryRunStrategy + DryRunVerifier *resourcecli.DryRunVerifier + + genericclioptions.IOStreams +} + +// NewPodDisruptionBudgetOpts creates a new *PodDisruptionBudgetOpts with sane defaults +func NewPodDisruptionBudgetOpts(ioStreams genericclioptions.IOStreams) *PodDisruptionBudgetOpts { + return &PodDisruptionBudgetOpts{ + PrintFlags: genericclioptions.NewPrintFlags("created").WithTypeSetter(scheme.Scheme), + IOStreams: ioStreams, + } } // NewCmdCreatePodDisruptionBudget is a macro command to create a new pod disruption budget. func NewCmdCreatePodDisruptionBudget(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { - options := &PodDisruptionBudgetOpts{ - CreateSubcommandOptions: NewCreateSubcommandOptions(ioStreams), - } + o := NewPodDisruptionBudgetOpts(ioStreams) cmd := &cobra.Command{ Use: "poddisruptionbudget NAME --selector=SELECTOR --min-available=N [--dry-run=server|client|none]", @@ -60,54 +96,172 @@ func NewCmdCreatePodDisruptionBudget(f cmdutil.Factory, ioStreams genericcliopti Long: pdbLong, Example: pdbExample, Run: func(cmd *cobra.Command, args []string) { - cmdutil.CheckErr(options.Complete(f, cmd, args)) - cmdutil.CheckErr(options.Run()) + cmdutil.CheckErr(o.Complete(f, cmd, args)) + cmdutil.CheckErr(o.Validate()) + cmdutil.CheckErr(o.Run()) }, } - options.CreateSubcommandOptions.PrintFlags.AddFlags(cmd) + o.PrintFlags.AddFlags(cmd) cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) - cmdutil.AddGeneratorFlags(cmd, generateversioned.PodDisruptionBudgetV2GeneratorName) + cmdutil.AddDryRunFlag(cmd) - cmd.Flags().String("min-available", "", i18n.T("The minimum number or percentage of available pods this budget requires.")) - cmd.Flags().String("max-unavailable", "", i18n.T("The maximum number or percentage of unavailable pods this budget requires.")) - cmd.Flags().String("selector", "", i18n.T("A label selector to use for this budget. Only equality-based selector requirements are supported.")) - cmdutil.AddFieldManagerFlagVar(cmd, &options.CreateSubcommandOptions.FieldManager, "kubectl-create") + cmd.Flags().StringVar(&o.MinAvailable, "min-available", o.MinAvailable, i18n.T("The minimum number or percentage of available pods this budget requires.")) + cmd.Flags().StringVar(&o.MaxUnavailable, "max-unavailable", o.MaxUnavailable, i18n.T("The maximum number or percentage of unavailable pods this budget requires.")) + cmd.Flags().StringVar(&o.Selector, "selector", o.Selector, i18n.T("A label selector to use for this budget. Only equality-based selector requirements are supported.")) + cmdutil.AddFieldManagerFlagVar(cmd, &o.FieldManager, "kubectl-create") return cmd } // Complete completes all the required options func (o *PodDisruptionBudgetOpts) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { - name, err := NameFromCommandArgs(cmd, args) + var err error + o.Name, err = NameFromCommandArgs(cmd, args) if err != nil { return err } - var generator generate.StructuredGenerator - switch generatorName := cmdutil.GetFlagString(cmd, "generator"); generatorName { - case generateversioned.PodDisruptionBudgetV1GeneratorName: - generator = &generateversioned.PodDisruptionBudgetV1Generator{ - Name: name, - MinAvailable: cmdutil.GetFlagString(cmd, "min-available"), - Selector: cmdutil.GetFlagString(cmd, "selector"), - } - case generateversioned.PodDisruptionBudgetV2GeneratorName: - generator = &generateversioned.PodDisruptionBudgetV2Generator{ - Name: name, - MinAvailable: cmdutil.GetFlagString(cmd, "min-available"), - MaxUnavailable: cmdutil.GetFlagString(cmd, "max-unavailable"), - Selector: cmdutil.GetFlagString(cmd, "selector"), - } - default: - return errUnsupportedGenerator(cmd, generatorName) + restConfig, err := f.ToRESTConfig() + if err != nil { + return err + } + o.Client, err = policyclient.NewForConfig(restConfig) + if err != nil { + return err + } + + o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag) + + o.DryRunStrategy, err = cmdutil.GetDryRunStrategy(cmd) + if err != nil { + return err + } + dynamicClient, err := f.DynamicClient() + if err != nil { + return err + } + discoveryClient, err := f.ToDiscoveryClient() + if err != nil { + return err + } + o.DryRunVerifier = resourcecli.NewDryRunVerifier(dynamicClient, discoveryClient) + + o.Namespace, o.EnforceNamespace, err = f.ToRawKubeConfigLoader().Namespace() + if err != nil { + return err + } + + cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) + + printer, err := o.PrintFlags.ToPrinter() + if err != nil { + return err + } + + o.PrintObj = func(obj runtime.Object) error { + return printer.PrintObj(obj, o.Out) } - return o.CreateSubcommandOptions.Complete(f, cmd, args, generator) + return nil +} + +// Validate checks to the PodDisruptionBudgetOpts to see if there is sufficient information run the command +func (o *PodDisruptionBudgetOpts) Validate() error { + if len(o.Name) == 0 { + return fmt.Errorf("name must be specified") + } + + if len(o.Selector) == 0 { + return fmt.Errorf("a selector must be specified") + } + + if len(o.MaxUnavailable) == 0 && len(o.MinAvailable) == 0 { + return fmt.Errorf("one of min-available or max-unavailable must be specified") + } + + if len(o.MaxUnavailable) > 0 && len(o.MinAvailable) > 0 { + return fmt.Errorf("min-available and max-unavailable cannot be both specified") + } + + // The following regex matches the following values: + // 10, 20, 30%, 50% (number and percentage) + // but not 10Gb, 20Mb + re := regexp.MustCompile(`^[0-9]+%?$`) + + switch { + case len(o.MinAvailable) > 0 && !re.MatchString(o.MinAvailable): + return fmt.Errorf("invalid format specified for min-available") + case len(o.MaxUnavailable) > 0 && !re.MatchString(o.MaxUnavailable): + return fmt.Errorf("invalid format specified for max-unavailable") + } + + return nil } // Run calls the CreateSubcommandOptions.Run in PodDisruptionBudgetOpts instance func (o *PodDisruptionBudgetOpts) Run() error { - return o.CreateSubcommandOptions.Run() + podDisruptionBudget, err := o.createPodDisruptionBudgets() + if err != nil { + return err + } + + if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, podDisruptionBudget, scheme.DefaultJSONEncoder()); err != nil { + return err + } + + if o.DryRunStrategy != cmdutil.DryRunClient { + createOptions := metav1.CreateOptions{} + if o.FieldManager != "" { + createOptions.FieldManager = o.FieldManager + } + if o.DryRunStrategy == cmdutil.DryRunServer { + if err := o.DryRunVerifier.HasSupport(podDisruptionBudget.GroupVersionKind()); err != nil { + return err + } + createOptions.DryRun = []string{metav1.DryRunAll} + } + podDisruptionBudget, err = o.Client.PodDisruptionBudgets(o.Namespace).Create(context.TODO(), podDisruptionBudget, createOptions) + if err != nil { + return fmt.Errorf("failed to create poddisruptionbudgets: %v", err) + } + } + return o.PrintObj(podDisruptionBudget) +} + +func (o *PodDisruptionBudgetOpts) createPodDisruptionBudgets() (*policyv1beta1.PodDisruptionBudget, error) { + namespace := "" + if o.EnforceNamespace { + namespace = o.Namespace + } + + podDisruptionBudget := &policyv1beta1.PodDisruptionBudget{ + TypeMeta: metav1.TypeMeta{ + APIVersion: policyv1beta1.SchemeGroupVersion.String(), + Kind: "PodDisruptionBudget", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: o.Name, + Namespace: namespace, + }, + } + + selector, err := metav1.ParseToLabelSelector(o.Selector) + if err != nil { + return nil, err + } + + podDisruptionBudget.Spec.Selector = selector + + switch { + case len(o.MinAvailable) > 0: + minAvailable := intstr.Parse(o.MinAvailable) + podDisruptionBudget.Spec.MinAvailable = &minAvailable + case len(o.MaxUnavailable) > 0: + maxUnavailable := intstr.Parse(o.MaxUnavailable) + podDisruptionBudget.Spec.MaxUnavailable = &maxUnavailable + } + + return podDisruptionBudget, nil } diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_priorityclass.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_priorityclass.go index 8062e5923d..39f490409b 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_priorityclass.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_priorityclass.go @@ -71,6 +71,7 @@ type PriorityClassOptions struct { genericclioptions.IOStreams } +// NewPriorityClassOptions returns an initialized PriorityClassOptions instance func NewPriorityClassOptions(ioStreams genericclioptions.IOStreams) *PriorityClassOptions { return &PriorityClassOptions{ Value: 0, @@ -137,11 +138,7 @@ func (o *PriorityClassOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, a if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) printer, err := o.PrintFlags.ToPrinter() @@ -180,7 +177,7 @@ func (o *PriorityClassOptions) Run() error { var err error priorityClass, err = o.Client.PriorityClasses().Create(context.TODO(), priorityClass, createOptions) if err != nil { - return fmt.Errorf("failed to create clusterrolebinding: %v", err) + return fmt.Errorf("failed to create priorityclass: %v", err) } } diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_quota.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_quota.go index ddf5d203eb..df5444a2e9 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_quota.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_quota.go @@ -136,11 +136,7 @@ func (o *QuotaOpts) Complete(f cmdutil.Factory, cmd *cobra.Command, args []strin if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resourcecli.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resourcecli.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) o.Namespace, o.EnforceNamespace, err = f.ToRawKubeConfigLoader().Namespace() if err != nil { diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_role.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_role.go index 9e379ae721..c34cbd7f4d 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_role.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_role.go @@ -250,11 +250,7 @@ func (o *CreateRoleOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) o.OutputFormat = cmdutil.GetFlagString(cmd, "output") o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag) diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_rolebinding.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_rolebinding.go index 10e0a144c5..77012da75b 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_rolebinding.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_rolebinding.go @@ -45,7 +45,7 @@ var ( kubectl create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1`)) ) -// RoleBindingOpts holds the options for 'create rolebinding' sub command +// RoleBindingOptions holds the options for 'create rolebinding' sub command type RoleBindingOptions struct { PrintFlags *genericclioptions.PrintFlags PrintObj func(obj runtime.Object) error @@ -140,11 +140,7 @@ func (o *RoleBindingOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, arg if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicCient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicCient, f.OpenAPIGetter()) cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) printer, err := o.PrintFlags.ToPrinter() if err != nil { diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_secret.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_secret.go index f9499e5483..608c823ebc 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_secret.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_secret.go @@ -17,17 +17,32 @@ limitations under the License. package create import ( + "context" + "fmt" + "io/ioutil" + "os" + "path" + "strings" + "github.com/spf13/cobra" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation" "k8s.io/cli-runtime/pkg/genericclioptions" + "k8s.io/cli-runtime/pkg/resource" + corev1client "k8s.io/client-go/kubernetes/typed/core/v1" cmdutil "k8s.io/kubectl/pkg/cmd/util" - "k8s.io/kubectl/pkg/generate" - generateversioned "k8s.io/kubectl/pkg/generate/versioned" + "k8s.io/kubectl/pkg/scheme" + "k8s.io/kubectl/pkg/util" + "k8s.io/kubectl/pkg/util/hash" "k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/templates" ) -// NewCmdCreateSecret groups subcommands to create various types of secrets +// NewCmdCreateSecret groups subcommands to create various types of secrets. +// This is the entry point of create_secret.go which will be called by create.go func NewCmdCreateSecret(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { cmd := &cobra.Command{ Use: "secret", @@ -73,16 +88,48 @@ var ( kubectl create secret generic my-secret --from-env-file=path/to/bar.env`)) ) -// SecretGenericOpts holds the options for 'create secret' sub command -type SecretGenericOpts struct { - CreateSubcommandOptions *CreateSubcommandOptions +// CreateSecretOptions holds the options for 'create secret' sub command +type CreateSecretOptions struct { + // PrintFlags holds options necessary for obtaining a printer + PrintFlags *genericclioptions.PrintFlags + PrintObj func(obj runtime.Object) error + + // Name of secret (required) + Name string + // Type of secret (optional) + Type string + // FileSources to derive the secret from (optional) + FileSources []string + // LiteralSources to derive the secret from (optional) + LiteralSources []string + // EnvFileSource to derive the secret from (optional) + EnvFileSource string + // AppendHash; if true, derive a hash from the Secret data and type and append it to the name + AppendHash bool + + FieldManager string + CreateAnnotation bool + Namespace string + EnforceNamespace bool + + Client corev1client.CoreV1Interface + DryRunStrategy cmdutil.DryRunStrategy + DryRunVerifier *resource.DryRunVerifier + + genericclioptions.IOStreams +} + +// NewSecretOptions creates a new *CreateSecretOptions with default value +func NewSecretOptions(ioStreams genericclioptions.IOStreams) *CreateSecretOptions { + return &CreateSecretOptions{ + PrintFlags: genericclioptions.NewPrintFlags("created").WithTypeSetter(scheme.Scheme), + IOStreams: ioStreams, + } } // NewCmdCreateSecretGeneric is a command to create generic secrets from files, directories, or literal values func NewCmdCreateSecretGeneric(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { - options := &SecretGenericOpts{ - CreateSubcommandOptions: NewCreateSubcommandOptions(ioStreams), - } + o := NewSecretOptions(ioStreams) cmd := &cobra.Command{ Use: "generic NAME [--type=string] [--from-file=[key=]source] [--from-literal=key1=value1] [--dry-run=server|client|none]", @@ -91,233 +138,279 @@ func NewCmdCreateSecretGeneric(f cmdutil.Factory, ioStreams genericclioptions.IO Long: secretLong, Example: secretExample, Run: func(cmd *cobra.Command, args []string) { - cmdutil.CheckErr(options.Complete(f, cmd, args)) - cmdutil.CheckErr(options.Run()) + cmdutil.CheckErr(o.Complete(f, cmd, args)) + cmdutil.CheckErr(o.Validate()) + cmdutil.CheckErr(o.Run()) }, } - - options.CreateSubcommandOptions.PrintFlags.AddFlags(cmd) + o.PrintFlags.AddFlags(cmd) cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) - cmdutil.AddGeneratorFlags(cmd, generateversioned.SecretV1GeneratorName) - cmd.Flags().StringSlice("from-file", []string{}, "Key files can be specified using their file path, in which case a default name will be given to them, or optionally with a name and file path, in which case the given name will be used. Specifying a directory will iterate each named file in the directory that is a valid secret key.") - cmd.Flags().StringArray("from-literal", []string{}, "Specify a key and literal value to insert in secret (i.e. mykey=somevalue)") - cmd.Flags().String("from-env-file", "", "Specify the path to a file to read lines of key=val pairs to create a secret (i.e. a Docker .env file).") - cmd.Flags().String("type", "", i18n.T("The type of secret to create")) - cmd.Flags().Bool("append-hash", false, "Append a hash of the secret to its name.") - cmdutil.AddFieldManagerFlagVar(cmd, &options.CreateSubcommandOptions.FieldManager, "kubectl-create") + cmdutil.AddDryRunFlag(cmd) + + cmd.Flags().StringSliceVar(&o.FileSources, "from-file", o.FileSources, "Key files can be specified using their file path, in which case a default name will be given to them, or optionally with a name and file path, in which case the given name will be used. Specifying a directory will iterate each named file in the directory that is a valid secret key.") + cmd.Flags().StringArrayVar(&o.LiteralSources, "from-literal", o.LiteralSources, "Specify a key and literal value to insert in secret (i.e. mykey=somevalue)") + cmd.Flags().StringVar(&o.EnvFileSource, "from-env-file", o.EnvFileSource, "Specify the path to a file to read lines of key=val pairs to create a secret (i.e. a Docker .env file).") + cmd.Flags().StringVar(&o.Type, "type", o.Type, i18n.T("The type of secret to create")) + cmd.Flags().BoolVar(&o.AppendHash, "append-hash", o.AppendHash, "Append a hash of the secret to its name.") + + cmdutil.AddFieldManagerFlagVar(cmd, &o.FieldManager, "kubectl-create") + return cmd } -// Complete completes all the required options -func (o *SecretGenericOpts) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { - name, err := NameFromCommandArgs(cmd, args) +// Complete loads data from the command line environment +func (o *CreateSecretOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { + var err error + o.Name, err = NameFromCommandArgs(cmd, args) if err != nil { return err } - var generator generate.StructuredGenerator - switch generatorName := cmdutil.GetFlagString(cmd, "generator"); generatorName { - case generateversioned.SecretV1GeneratorName: - generator = &generateversioned.SecretGeneratorV1{ - Name: name, - Type: cmdutil.GetFlagString(cmd, "type"), - FileSources: cmdutil.GetFlagStringSlice(cmd, "from-file"), - LiteralSources: cmdutil.GetFlagStringArray(cmd, "from-literal"), - EnvFileSource: cmdutil.GetFlagString(cmd, "from-env-file"), - AppendHash: cmdutil.GetFlagBool(cmd, "append-hash"), - } - default: - return errUnsupportedGenerator(cmd, generatorName) + restConfig, err := f.ToRESTConfig() + if err != nil { + return err } - return o.CreateSubcommandOptions.Complete(f, cmd, args, generator) -} - -// Run calls the CreateSubcommandOptions.Run in SecretGenericOpts instance -func (o *SecretGenericOpts) Run() error { - return o.CreateSubcommandOptions.Run() -} - -var ( - secretForDockerRegistryLong = templates.LongDesc(i18n.T(` - Create a new secret for use with Docker registries. - - Dockercfg secrets are used to authenticate against Docker registries. + o.Client, err = corev1client.NewForConfig(restConfig) + if err != nil { + return err + } - When using the Docker command line to push images, you can authenticate to a given registry by running: - '$ docker login DOCKER_REGISTRY_SERVER --username=DOCKER_USER --password=DOCKER_PASSWORD --email=DOCKER_EMAIL'. + o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag) - That produces a ~/.dockercfg file that is used by subsequent 'docker push' and 'docker pull' commands to - authenticate to the registry. The email address is optional. + o.DryRunStrategy, err = cmdutil.GetDryRunStrategy(cmd) + if err != nil { + return err + } - When creating applications, you may have a Docker registry that requires authentication. In order for the - nodes to pull images on your behalf, they have to have the credentials. You can provide this information - by creating a dockercfg secret and attaching it to your service account.`)) + dynamicClient, err := f.DynamicClient() + if err != nil { + return err + } - secretForDockerRegistryExample = templates.Examples(i18n.T(` - # If you don't already have a .dockercfg file, you can create a dockercfg secret directly by using: - kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL`)) -) + discoveryClient, err := f.ToDiscoveryClient() + if err != nil { + return err + } -// SecretDockerRegistryOpts holds the options for 'create secret docker-registry' sub command -type SecretDockerRegistryOpts struct { - CreateSubcommandOptions *CreateSubcommandOptions -} + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) -// NewCmdCreateSecretDockerRegistry is a macro command for creating secrets to work with Docker registries -func NewCmdCreateSecretDockerRegistry(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { - options := &SecretDockerRegistryOpts{ - CreateSubcommandOptions: NewCreateSubcommandOptions(ioStreams), + o.Namespace, o.EnforceNamespace, err = f.ToRawKubeConfigLoader().Namespace() + if err != nil { + return nil } - cmd := &cobra.Command{ - Use: "docker-registry NAME --docker-username=user --docker-password=password --docker-email=email [--docker-server=string] [--from-literal=key1=value1] [--dry-run=server|client|none]", - DisableFlagsInUseLine: true, - Short: i18n.T("Create a secret for use with a Docker registry"), - Long: secretForDockerRegistryLong, - Example: secretForDockerRegistryExample, - Run: func(cmd *cobra.Command, args []string) { - cmdutil.CheckErr(options.Complete(f, cmd, args)) - cmdutil.CheckErr(options.Run()) - }, + cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) + printer, err := o.PrintFlags.ToPrinter() + if err != nil { + return nil } - options.CreateSubcommandOptions.PrintFlags.AddFlags(cmd) + o.PrintObj = func(obj runtime.Object) error { + return printer.PrintObj(obj, o.Out) + } - cmdutil.AddApplyAnnotationFlags(cmd) - cmdutil.AddValidateFlags(cmd) - cmdutil.AddGeneratorFlags(cmd, generateversioned.SecretForDockerRegistryV1GeneratorName) - cmd.Flags().String("docker-username", "", i18n.T("Username for Docker registry authentication")) - cmd.Flags().String("docker-password", "", i18n.T("Password for Docker registry authentication")) - cmd.Flags().String("docker-email", "", i18n.T("Email for Docker registry")) - cmd.Flags().String("docker-server", "https://index.docker.io/v1/", i18n.T("Server location for Docker registry")) - cmd.Flags().Bool("append-hash", false, "Append a hash of the secret to its name.") - cmd.Flags().StringSlice("from-file", []string{}, "Key files can be specified using their file path, in which case a default name will be given to them, or optionally with a name and file path, in which case the given name will be used. Specifying a directory will iterate each named file in the directory that is a valid secret key.") - cmdutil.AddFieldManagerFlagVar(cmd, &options.CreateSubcommandOptions.FieldManager, "kubectl-create") + return nil +} - return cmd +// Validate checks if CreateSecretOptions has sufficient value to run +func (o *CreateSecretOptions) Validate() error { + if len(o.Name) == 0 { + return fmt.Errorf("name must be specified") + } + if len(o.EnvFileSource) > 0 && (len(o.FileSources) > 0 || len(o.LiteralSources) > 0) { + return fmt.Errorf("from-env-file cannot be combined with from-file or from-literal") + } + return nil } -// Complete completes all the required options -func (o *SecretDockerRegistryOpts) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { - name, err := NameFromCommandArgs(cmd, args) +// Run calls createSecret which will create secret based on CreateSecretOptions +// and makes an API call to the server +func (o *CreateSecretOptions) Run() error { + secret, err := o.createSecret() if err != nil { return err } - - fromFileFlag := cmdutil.GetFlagStringSlice(cmd, "from-file") - if len(fromFileFlag) == 0 { - requiredFlags := []string{"docker-username", "docker-password", "docker-server"} - for _, requiredFlag := range requiredFlags { - if value := cmdutil.GetFlagString(cmd, requiredFlag); len(value) == 0 { - return cmdutil.UsageErrorf(cmd, "flag %s is required", requiredFlag) + err = util.CreateOrUpdateAnnotation(o.CreateAnnotation, secret, scheme.DefaultJSONEncoder()) + if err != nil { + return err + } + if o.DryRunStrategy != cmdutil.DryRunClient { + createOptions := metav1.CreateOptions{} + if o.FieldManager != "" { + createOptions.FieldManager = o.FieldManager + } + if o.DryRunStrategy == cmdutil.DryRunServer { + err := o.DryRunVerifier.HasSupport(secret.GroupVersionKind()) + if err != nil { + return err } + createOptions.DryRun = []string{metav1.DryRunAll} + } + secret, err = o.Client.Secrets(o.Namespace).Create(context.TODO(), secret, createOptions) + if err != nil { + return fmt.Errorf("failed to create secret %v", err) } } - var generator generate.StructuredGenerator - switch generatorName := cmdutil.GetFlagString(cmd, "generator"); generatorName { - case generateversioned.SecretForDockerRegistryV1GeneratorName: - generator = &generateversioned.SecretForDockerRegistryGeneratorV1{ - Name: name, - Username: cmdutil.GetFlagString(cmd, "docker-username"), - Email: cmdutil.GetFlagString(cmd, "docker-email"), - Password: cmdutil.GetFlagString(cmd, "docker-password"), - Server: cmdutil.GetFlagString(cmd, "docker-server"), - AppendHash: cmdutil.GetFlagBool(cmd, "append-hash"), - FileSources: cmdutil.GetFlagStringSlice(cmd, "from-file"), + return o.PrintObj(secret) +} + +// createSecret fills in key value pair from the information given in +// CreateSecretOptions into *corev1.Secret +func (o *CreateSecretOptions) createSecret() (*corev1.Secret, error) { + namespace := "" + if o.EnforceNamespace { + namespace = o.Namespace + } + secret := newSecretObj(o.Name, namespace, corev1.SecretType(o.Type)) + if len(o.LiteralSources) > 0 { + if err := handleSecretFromLiteralSources(secret, o.LiteralSources); err != nil { + return nil, err + } + } + if len(o.FileSources) > 0 { + if err := handleSecretFromFileSources(secret, o.FileSources); err != nil { + return nil, err + } + } + if len(o.EnvFileSource) > 0 { + if err := handleSecretFromEnvFileSource(secret, o.EnvFileSource); err != nil { + return nil, err + } + } + if o.AppendHash { + hash, err := hash.SecretHash(secret) + if err != nil { + return nil, err } - default: - return errUnsupportedGenerator(cmd, generatorName) + secret.Name = fmt.Sprintf("%s-%s", secret.Name, hash) } - return o.CreateSubcommandOptions.Complete(f, cmd, args, generator) + return secret, nil } -// Run calls CreateSubcommandOptions.Run in SecretDockerRegistryOpts instance -func (o *SecretDockerRegistryOpts) Run() error { - return o.CreateSubcommandOptions.Run() +// newSecretObj will create a new Secret Object given name, namespace and secretType +func newSecretObj(name, namespace string, secretType corev1.SecretType) *corev1.Secret { + return &corev1.Secret{ + TypeMeta: metav1.TypeMeta{ + APIVersion: corev1.SchemeGroupVersion.String(), + Kind: "Secret", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Namespace: namespace, + }, + Type: secretType, + Data: map[string][]byte{}, + } } -var ( - secretForTLSLong = templates.LongDesc(i18n.T(` - Create a TLS secret from the given public/private key pair. +// handleSecretFromLiteralSources adds the specified literal source +// information into the provided secret +func handleSecretFromLiteralSources(secret *corev1.Secret, literalSources []string) error { + for _, literalSource := range literalSources { + keyName, value, err := util.ParseLiteralSource(literalSource) + if err != nil { + return err + } + if err = addKeyFromLiteralToSecret(secret, keyName, []byte(value)); err != nil { + return err + } + } - The public/private key pair must exist before hand. The public key certificate must be .PEM encoded and match - the given private key.`)) + return nil +} - secretForTLSExample = templates.Examples(i18n.T(` - # Create a new TLS secret named tls-secret with the given key pair: - kubectl create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key`)) -) +// handleSecretFromFileSources adds the specified file source information into the provided secret +func handleSecretFromFileSources(secret *corev1.Secret, fileSources []string) error { + for _, fileSource := range fileSources { + keyName, filePath, err := util.ParseFileSource(fileSource) + if err != nil { + return err + } + fileInfo, err := os.Stat(filePath) + if err != nil { + switch err := err.(type) { + case *os.PathError: + return fmt.Errorf("error reading %s: %v", filePath, err.Err) + default: + return fmt.Errorf("error reading %s: %v", filePath, err) + } + } + // if the filePath is a directory + if fileInfo.IsDir() { + if strings.Contains(fileSource, "=") { + return fmt.Errorf("cannot give a key name for a directory path") + } + fileList, err := ioutil.ReadDir(filePath) + if err != nil { + return fmt.Errorf("error listing files in %s: %v", filePath, err) + } + for _, item := range fileList { + itemPath := path.Join(filePath, item.Name()) + if item.Mode().IsRegular() { + keyName = item.Name() + if err := addKeyFromFileToSecret(secret, keyName, itemPath); err != nil { + return err + } + } + } + // if the filepath is a file + } else { + if err := addKeyFromFileToSecret(secret, keyName, filePath); err != nil { + return err + } + } + + } -// SecretTLSOpts holds the options for 'create secret tls' sub command -type SecretTLSOpts struct { - CreateSubcommandOptions *CreateSubcommandOptions + return nil } -// NewCmdCreateSecretTLS is a macro command for creating secrets to work with Docker registries -func NewCmdCreateSecretTLS(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { - options := &SecretTLSOpts{ - CreateSubcommandOptions: NewCreateSubcommandOptions(ioStreams), +// handleSecretFromEnvFileSource adds the specified env file source information +// into the provided secret +func handleSecretFromEnvFileSource(secret *corev1.Secret, envFileSource string) error { + fileInfo, err := os.Stat(envFileSource) + if err != nil { + switch err := err.(type) { + case *os.PathError: + return fmt.Errorf("error reading %s: %v", envFileSource, err.Err) + default: + return fmt.Errorf("error reading %s: %v", envFileSource, err) + } } - - cmd := &cobra.Command{ - Use: "tls NAME --cert=path/to/cert/file --key=path/to/key/file [--dry-run=server|client|none]", - DisableFlagsInUseLine: true, - Short: i18n.T("Create a TLS secret"), - Long: secretForTLSLong, - Example: secretForTLSExample, - Run: func(cmd *cobra.Command, args []string) { - cmdutil.CheckErr(options.Complete(f, cmd, args)) - cmdutil.CheckErr(options.Run()) - }, + if fileInfo.IsDir() { + return fmt.Errorf("env secret file cannot be a directory") } - options.CreateSubcommandOptions.PrintFlags.AddFlags(cmd) - - cmdutil.AddApplyAnnotationFlags(cmd) - cmdutil.AddValidateFlags(cmd) - cmdutil.AddGeneratorFlags(cmd, generateversioned.SecretForTLSV1GeneratorName) - cmd.Flags().String("cert", "", i18n.T("Path to PEM encoded public key certificate.")) - cmd.Flags().String("key", "", i18n.T("Path to private key associated with given certificate.")) - cmd.Flags().Bool("append-hash", false, "Append a hash of the secret to its name.") - cmdutil.AddFieldManagerFlagVar(cmd, &options.CreateSubcommandOptions.FieldManager, "kubectl-create") - return cmd + return cmdutil.AddFromEnvFile(envFileSource, func(key, value string) error { + return addKeyFromLiteralToSecret(secret, key, []byte(value)) + }) } -// Complete completes all the required options -func (o *SecretTLSOpts) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { - name, err := NameFromCommandArgs(cmd, args) +// addKeyFromFileToSecret adds a key with the given name to a Secret, populating +// the value with the content of the given file path, or returns an error. +func addKeyFromFileToSecret(secret *corev1.Secret, keyName, filePath string) error { + data, err := ioutil.ReadFile(filePath) if err != nil { return err } + return addKeyFromLiteralToSecret(secret, keyName, data) +} - requiredFlags := []string{"cert", "key"} - for _, requiredFlag := range requiredFlags { - if value := cmdutil.GetFlagString(cmd, requiredFlag); len(value) == 0 { - return cmdutil.UsageErrorf(cmd, "flag %s is required", requiredFlag) - } +// addKeyFromLiteralToSecret adds the given key and data to the given secret, +// returning an error if the key is not valid or if the key already exists. +func addKeyFromLiteralToSecret(secret *corev1.Secret, keyName string, data []byte) error { + if errs := validation.IsConfigMapKey(keyName); len(errs) != 0 { + return fmt.Errorf("%q is not valid key name for a Secret %s", keyName, strings.Join(errs, ";")) } - var generator generate.StructuredGenerator - switch generatorName := cmdutil.GetFlagString(cmd, "generator"); generatorName { - case generateversioned.SecretForTLSV1GeneratorName: - generator = &generateversioned.SecretForTLSGeneratorV1{ - Name: name, - Key: cmdutil.GetFlagString(cmd, "key"), - Cert: cmdutil.GetFlagString(cmd, "cert"), - AppendHash: cmdutil.GetFlagBool(cmd, "append-hash"), - } - default: - return errUnsupportedGenerator(cmd, generatorName) + if _, entryExists := secret.Data[keyName]; entryExists { + return fmt.Errorf("cannot add key %s, another key by that name already exists", keyName) } + secret.Data[keyName] = data - return o.CreateSubcommandOptions.Complete(f, cmd, args, generator) -} - -// Run calls CreateSubcommandOptions.Run in the SecretTLSOpts instance -func (o *SecretTLSOpts) Run() error { - return o.CreateSubcommandOptions.Run() + return nil } diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_secret_docker.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_secret_docker.go new file mode 100644 index 0000000000..40ac2ee363 --- /dev/null +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_secret_docker.go @@ -0,0 +1,308 @@ +/* +Copyright 2021 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. +*/ + +package create + +import ( + "context" + "encoding/base64" + "encoding/json" + "fmt" + + "github.com/spf13/cobra" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/cli-runtime/pkg/genericclioptions" + "k8s.io/cli-runtime/pkg/resource" + corev1client "k8s.io/client-go/kubernetes/typed/core/v1" + cmdutil "k8s.io/kubectl/pkg/cmd/util" + "k8s.io/kubectl/pkg/scheme" + "k8s.io/kubectl/pkg/util" + "k8s.io/kubectl/pkg/util/hash" + "k8s.io/kubectl/pkg/util/i18n" + "k8s.io/kubectl/pkg/util/templates" +) + +var ( + secretForDockerRegistryLong = templates.LongDesc(i18n.T(` + Create a new secret for use with Docker registries. + + Dockercfg secrets are used to authenticate against Docker registries. + + When using the Docker command line to push images, you can authenticate to a given registry by running: + '$ docker login DOCKER_REGISTRY_SERVER --username=DOCKER_USER --password=DOCKER_PASSWORD --email=DOCKER_EMAIL'. + + That produces a ~/.dockercfg file that is used by subsequent 'docker push' and 'docker pull' commands to + authenticate to the registry. The email address is optional. + + When creating applications, you may have a Docker registry that requires authentication. In order for the + nodes to pull images on your behalf, they have to have the credentials. You can provide this information + by creating a dockercfg secret and attaching it to your service account.`)) + + secretForDockerRegistryExample = templates.Examples(i18n.T(` + # If you don't already have a .dockercfg file, you can create a dockercfg secret directly by using: + kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL + + # Create a new secret named my-secret from ~/.docker/config.json + kubectl create secret docker-registry my-secret --from-file=.dockerconfigjson=path/to/.docker/config.json`)) +) + +// DockerConfigJSON represents a local docker auth config file +// for pulling images. +type DockerConfigJSON struct { + Auths DockerConfig `json:"auths" datapolicy:"token"` + // +optional + HttpHeaders map[string]string `json:"HttpHeaders,omitempty" datapolicy:"token"` +} + +// DockerConfig represents the config file used by the docker CLI. +// This config that represents the credentials that should be used +// when pulling images from specific image repositories. +type DockerConfig map[string]DockerConfigEntry + +// DockerConfigEntry holds the user information that grant the access to docker registry +type DockerConfigEntry struct { + Username string `json:"username,omitempty"` + Password string `json:"password,omitempty" datapolicy:"password"` + Email string `json:"email,omitempty"` + Auth string `json:"auth,omitempty" datapolicy:"token"` +} + +// CreateSecretDockerRegistryOptions holds the options for 'create secret docker-registry' sub command +type CreateSecretDockerRegistryOptions struct { + // PrintFlags holds options necessary for obtaining a printer + PrintFlags *genericclioptions.PrintFlags + PrintObj func(obj runtime.Object) error + + // Name of secret (required) + Name string + // FileSources to derive the secret from (optional) + FileSources []string + // Username for registry (required) + Username string + // Email for registry (optional) + Email string + // Password for registry (required) + Password string `datapolicy:"password"` + // Server for registry (required) + Server string + // AppendHash; if true, derive a hash from the Secret and append it to the name + AppendHash bool + + FieldManager string + CreateAnnotation bool + Namespace string + EnforceNamespace bool + + Client corev1client.CoreV1Interface + DryRunStrategy cmdutil.DryRunStrategy + DryRunVerifier *resource.DryRunVerifier + + genericclioptions.IOStreams +} + +// NewSecretDockerRegistryOptions creates a new *CreateSecretDockerRegistryOptions with default value +func NewSecretDockerRegistryOptions(ioStreams genericclioptions.IOStreams) *CreateSecretDockerRegistryOptions { + return &CreateSecretDockerRegistryOptions{ + Server: "https://index.docker.io/v1/", + PrintFlags: genericclioptions.NewPrintFlags("created").WithTypeSetter(scheme.Scheme), + IOStreams: ioStreams, + } +} + +// NewCmdCreateSecretDockerRegistry is a macro command for creating secrets to work with Docker registries +func NewCmdCreateSecretDockerRegistry(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { + o := NewSecretDockerRegistryOptions(ioStreams) + + cmd := &cobra.Command{ + Use: "docker-registry NAME --docker-username=user --docker-password=password --docker-email=email [--docker-server=string] [--from-file=[key=]source] [--dry-run=server|client|none]", + DisableFlagsInUseLine: true, + Short: i18n.T("Create a secret for use with a Docker registry"), + Long: secretForDockerRegistryLong, + Example: secretForDockerRegistryExample, + Run: func(cmd *cobra.Command, args []string) { + cmdutil.CheckErr(o.Complete(f, cmd, args)) + cmdutil.CheckErr(o.Validate()) + cmdutil.CheckErr(o.Run()) + }, + } + + o.PrintFlags.AddFlags(cmd) + + cmdutil.AddApplyAnnotationFlags(cmd) + cmdutil.AddValidateFlags(cmd) + cmdutil.AddDryRunFlag(cmd) + + cmd.Flags().StringVar(&o.Username, "docker-username", o.Username, i18n.T("Username for Docker registry authentication")) + cmd.Flags().StringVar(&o.Password, "docker-password", o.Password, i18n.T("Password for Docker registry authentication")) + cmd.Flags().StringVar(&o.Email, "docker-email", o.Email, i18n.T("Email for Docker registry")) + cmd.Flags().StringVar(&o.Server, "docker-server", o.Server, i18n.T("Server location for Docker registry")) + cmd.Flags().BoolVar(&o.AppendHash, "append-hash", o.AppendHash, "Append a hash of the secret to its name.") + cmd.Flags().StringSliceVar(&o.FileSources, "from-file", o.FileSources, "Key files can be specified using their file path, in which case a default name will be given to them, or optionally with a name and file path, in which case the given name will be used. Specifying a directory will iterate each named file in the directory that is a valid secret key.") + + cmdutil.AddFieldManagerFlagVar(cmd, &o.FieldManager, "kubectl-create") + + return cmd +} + +// Complete loads data from the command line environment +func (o *CreateSecretDockerRegistryOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { + var err error + o.Name, err = NameFromCommandArgs(cmd, args) + if err != nil { + return err + } + + restConfig, err := f.ToRESTConfig() + if err != nil { + return err + } + + o.Client, err = corev1client.NewForConfig(restConfig) + if err != nil { + return err + } + + o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag) + + o.DryRunStrategy, err = cmdutil.GetDryRunStrategy(cmd) + if err != nil { + return err + } + + dynamicClient, err := f.DynamicClient() + if err != nil { + return err + } + + discoveryClient, err := f.ToDiscoveryClient() + if err != nil { + return err + } + + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + + o.Namespace, o.EnforceNamespace, err = f.ToRawKubeConfigLoader().Namespace() + if err != nil { + return nil + } + + cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) + printer, err := o.PrintFlags.ToPrinter() + if err != nil { + return nil + } + + o.PrintObj = func(obj runtime.Object) error { + return printer.PrintObj(obj, o.Out) + } + + return nil +} + +// Validate checks if CreateSecretDockerRegistryOptions has sufficient value to run +func (o *CreateSecretDockerRegistryOptions) Validate() error { + if len(o.Name) == 0 { + return fmt.Errorf("name must be specified") + } + if len(o.FileSources) == 0 && (len(o.Username) == 0 || len(o.Password) == 0 || len(o.Server) == 0) { + return fmt.Errorf("either --from-file or the combination of --docker-username, --docker-password and --docker-server is required") + } + return nil +} + +// Run calls createSecretDockerRegistry which will create secretDockerRegistry based on CreateSecretDockerRegistryOptions +// and makes an API call to the server +func (o *CreateSecretDockerRegistryOptions) Run() error { + secretDockerRegistry, err := o.createSecretDockerRegistry() + if err != nil { + return err + } + err = util.CreateOrUpdateAnnotation(o.CreateAnnotation, secretDockerRegistry, scheme.DefaultJSONEncoder()) + if err != nil { + return err + } + if o.DryRunStrategy != cmdutil.DryRunClient { + createOptions := metav1.CreateOptions{} + if o.FieldManager != "" { + createOptions.FieldManager = o.FieldManager + } + if o.DryRunStrategy == cmdutil.DryRunServer { + err := o.DryRunVerifier.HasSupport(secretDockerRegistry.GroupVersionKind()) + if err != nil { + return err + } + createOptions.DryRun = []string{metav1.DryRunAll} + } + secretDockerRegistry, err = o.Client.Secrets(o.Namespace).Create(context.TODO(), secretDockerRegistry, createOptions) + if err != nil { + return fmt.Errorf("failed to create secret %v", err) + } + } + + return o.PrintObj(secretDockerRegistry) +} + +// createSecretDockerRegistry fills in key value pair from the information given in +// CreateSecretDockerRegistryOptions into *corev1.Secret +func (o *CreateSecretDockerRegistryOptions) createSecretDockerRegistry() (*corev1.Secret, error) { + namespace := "" + if o.EnforceNamespace { + namespace = o.Namespace + } + secretDockerRegistry := newSecretObj(o.Name, namespace, corev1.SecretTypeDockerConfigJson) + if len(o.FileSources) > 0 { + if err := handleSecretFromFileSources(secretDockerRegistry, o.FileSources); err != nil { + return nil, err + } + } else { + dockerConfigJSONContent, err := handleDockerCfgJSONContent(o.Username, o.Password, o.Email, o.Server) + if err != nil { + return nil, err + } + secretDockerRegistry.Data[corev1.DockerConfigJsonKey] = dockerConfigJSONContent + } + if o.AppendHash { + hash, err := hash.SecretHash(secretDockerRegistry) + if err != nil { + return nil, err + } + secretDockerRegistry.Name = fmt.Sprintf("%s-%s", secretDockerRegistry.Name, hash) + } + return secretDockerRegistry, nil +} + +// handleDockerCfgJSONContent serializes a ~/.docker/config.json file +func handleDockerCfgJSONContent(username, password, email, server string) ([]byte, error) { + dockerConfigAuth := DockerConfigEntry{ + Username: username, + Password: password, + Email: email, + Auth: encodeDockerConfigFieldAuth(username, password), + } + dockerConfigJSON := DockerConfigJSON{ + Auths: map[string]DockerConfigEntry{server: dockerConfigAuth}, + } + + return json.Marshal(dockerConfigJSON) +} + +// encodeDockerConfigFieldAuth returns base64 encoding of the username and password string +func encodeDockerConfigFieldAuth(username, password string) string { + fieldValue := username + ":" + password + return base64.StdEncoding.EncodeToString([]byte(fieldValue)) +} diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_secret_tls.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_secret_tls.go new file mode 100644 index 0000000000..ca27af7a6b --- /dev/null +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_secret_tls.go @@ -0,0 +1,259 @@ +/* +Copyright 2021 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. +*/ + +package create + +import ( + "context" + "crypto/tls" + "fmt" + "io/ioutil" + + "github.com/spf13/cobra" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/cli-runtime/pkg/genericclioptions" + "k8s.io/cli-runtime/pkg/resource" + corev1client "k8s.io/client-go/kubernetes/typed/core/v1" + cmdutil "k8s.io/kubectl/pkg/cmd/util" + "k8s.io/kubectl/pkg/scheme" + "k8s.io/kubectl/pkg/util" + "k8s.io/kubectl/pkg/util/hash" + "k8s.io/kubectl/pkg/util/i18n" + "k8s.io/kubectl/pkg/util/templates" +) + +var ( + secretForTLSLong = templates.LongDesc(i18n.T(` + Create a TLS secret from the given public/private key pair. + + The public/private key pair must exist before hand. The public key certificate must be .PEM encoded and match + the given private key.`)) + + secretForTLSExample = templates.Examples(i18n.T(` + # Create a new TLS secret named tls-secret with the given key pair: + kubectl create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key`)) +) + +// CreateSecretTLSOptions holds the options for 'create secret tls' sub command +type CreateSecretTLSOptions struct { + // PrintFlags holds options necessary for obtaining a printer + PrintFlags *genericclioptions.PrintFlags + PrintObj func(obj runtime.Object) error + + // Name is the name of this TLS secret. + Name string + // Key is the path to the user's private key. + Key string + // Cert is the path to the user's public key certificate. + Cert string + // AppendHash; if true, derive a hash from the Secret and append it to the name + AppendHash bool + + FieldManager string + CreateAnnotation bool + Namespace string + EnforceNamespace bool + + Client corev1client.CoreV1Interface + DryRunStrategy cmdutil.DryRunStrategy + DryRunVerifier *resource.DryRunVerifier + + genericclioptions.IOStreams +} + +// NewSecretTLSOptions creates a new *CreateSecretTLSOptions with default value +func NewSecretTLSOptions(ioStrems genericclioptions.IOStreams) *CreateSecretTLSOptions { + return &CreateSecretTLSOptions{ + PrintFlags: genericclioptions.NewPrintFlags("created").WithTypeSetter(scheme.Scheme), + IOStreams: ioStrems, + } +} + +// NewCmdCreateSecretTLS is a macro command for creating secrets to work with TLS client or server +func NewCmdCreateSecretTLS(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { + o := NewSecretTLSOptions(ioStreams) + + cmd := &cobra.Command{ + Use: "tls NAME --cert=path/to/cert/file --key=path/to/key/file [--dry-run=server|client|none]", + DisableFlagsInUseLine: true, + Short: i18n.T("Create a TLS secret"), + Long: secretForTLSLong, + Example: secretForTLSExample, + Run: func(cmd *cobra.Command, args []string) { + cmdutil.CheckErr(o.Complete(f, cmd, args)) + cmdutil.CheckErr(o.Validate()) + cmdutil.CheckErr(o.Run()) + }, + } + + o.PrintFlags.AddFlags(cmd) + + cmdutil.AddApplyAnnotationFlags(cmd) + cmdutil.AddValidateFlags(cmd) + cmdutil.AddDryRunFlag(cmd) + + cmd.Flags().StringVar(&o.Cert, "cert", o.Cert, i18n.T("Path to PEM encoded public key certificate.")) + cmd.Flags().StringVar(&o.Key, "key", o.Key, i18n.T("Path to private key associated with given certificate.")) + cmd.Flags().BoolVar(&o.AppendHash, "append-hash", o.AppendHash, "Append a hash of the secret to its name.") + + cmdutil.AddFieldManagerFlagVar(cmd, &o.FieldManager, "kubectl-create") + + return cmd +} + +// Complete loads data from the command line environment +func (o *CreateSecretTLSOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { + var err error + o.Name, err = NameFromCommandArgs(cmd, args) + if err != nil { + return err + } + + restConfig, err := f.ToRESTConfig() + if err != nil { + return err + } + + o.Client, err = corev1client.NewForConfig(restConfig) + if err != nil { + return err + } + + o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag) + + o.DryRunStrategy, err = cmdutil.GetDryRunStrategy(cmd) + if err != nil { + return err + } + + dynamicClient, err := f.DynamicClient() + if err != nil { + return err + } + + discoveryClient, err := f.ToDiscoveryClient() + if err != nil { + return err + } + + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + + o.Namespace, o.EnforceNamespace, err = f.ToRawKubeConfigLoader().Namespace() + if err != nil { + return nil + } + + cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) + printer, err := o.PrintFlags.ToPrinter() + if err != nil { + return nil + } + + o.PrintObj = func(obj runtime.Object) error { + return printer.PrintObj(obj, o.Out) + } + + return nil +} + +// Validate checks if CreateSecretTLSOptions hass sufficient value to run +func (o *CreateSecretTLSOptions) Validate() error { + // TODO: This is not strictly necessary. We can generate a self signed cert + // if no key/cert is given. The only requirement is that we either get both + // or none. See test/e2e/ingress_utils for self signed cert generation. + if len(o.Key) == 0 || len(o.Cert) == 0 { + return fmt.Errorf("key and cert must be specified") + } + return nil +} + +// Run calls createSecretTLS which will create secretTLS based on CreateSecretTLSOptions +// and makes an API call to the server +func (o *CreateSecretTLSOptions) Run() error { + secretTLS, err := o.createSecretTLS() + if err != nil { + return err + } + err = util.CreateOrUpdateAnnotation(o.CreateAnnotation, secretTLS, scheme.DefaultJSONEncoder()) + if err != nil { + return err + } + if o.DryRunStrategy != cmdutil.DryRunClient { + createOptions := metav1.CreateOptions{} + if o.FieldManager != "" { + createOptions.FieldManager = o.FieldManager + } + if o.DryRunStrategy == cmdutil.DryRunServer { + err := o.DryRunVerifier.HasSupport(secretTLS.GroupVersionKind()) + if err != nil { + return err + } + createOptions.DryRun = []string{metav1.DryRunAll} + } + secretTLS, err = o.Client.Secrets(o.Namespace).Create(context.TODO(), secretTLS, createOptions) + if err != nil { + return fmt.Errorf("failed to create secret %v", err) + } + } + return o.PrintObj(secretTLS) +} + +// createSecretTLS fills in key value pair from the information given in +// CreateSecretTLSOptions into *corev1.Secret +func (o *CreateSecretTLSOptions) createSecretTLS() (*corev1.Secret, error) { + namespace := "" + if o.EnforceNamespace { + namespace = o.Namespace + } + tlsCert, err := readFile(o.Cert) + if err != nil { + return nil, err + } + tlsKey, err := readFile(o.Key) + if err != nil { + return nil, err + } + if _, err := tls.X509KeyPair(tlsCert, tlsKey); err != nil { + return nil, err + } + // TODO: Add more validation. + // 1. If the certificate contains intermediates, it is a valid chain. + // 2. Format etc. + + secretTLS := newSecretObj(o.Name, namespace, corev1.SecretTypeTLS) + secretTLS.Data[corev1.TLSCertKey] = []byte(tlsCert) + secretTLS.Data[corev1.TLSPrivateKeyKey] = []byte(tlsKey) + if o.AppendHash { + hash, err := hash.SecretHash(secretTLS) + if err != nil { + return nil, err + } + secretTLS.Name = fmt.Sprintf("%s-%s", secretTLS.Name, hash) + } + + return secretTLS, nil +} + +// readFile just reads a file into a byte array. +func readFile(file string) ([]byte, error) { + b, err := ioutil.ReadFile(file) + if err != nil { + return []byte{}, fmt.Errorf("Cannot read file %v, %v", file, err) + } + return b, nil +} diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_service.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_service.go index 8661c712df..afb1716926 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_service.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_service.go @@ -72,6 +72,7 @@ type ServiceOptions struct { FieldManager string CreateAnnotation bool Namespace string + EnforceNamespace bool Client corev1client.CoreV1Interface DryRunStrategy cmdutil.DryRunStrategy @@ -105,7 +106,7 @@ func (o *ServiceOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [] return err } - o.Namespace, _, err = f.ToRawKubeConfigLoader().Namespace() + o.Namespace, o.EnforceNamespace, err = f.ToRawKubeConfigLoader().Namespace() if err != nil { return err } @@ -118,11 +119,7 @@ func (o *ServiceOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [] if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) printer, err := o.PrintFlags.ToPrinter() @@ -177,13 +174,19 @@ func (o *ServiceOptions) createService() (*corev1.Service, error) { selector := map[string]string{} selector["app"] = o.Name + namespace := "" + if o.EnforceNamespace { + namespace = o.Namespace + } + service := corev1.Service{ ObjectMeta: metav1.ObjectMeta{ - Name: o.Name, - Labels: labels, + Name: o.Name, + Labels: labels, + Namespace: namespace, }, Spec: corev1.ServiceSpec{ - Type: corev1.ServiceType(o.Type), + Type: o.Type, Selector: selector, Ports: ports, ExternalName: o.ExternalName, diff --git a/vendor/k8s.io/kubectl/pkg/cmd/create/create_serviceaccount.go b/vendor/k8s.io/kubectl/pkg/cmd/create/create_serviceaccount.go index 2c45cb11c9..f35649a694 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/create/create_serviceaccount.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/create/create_serviceaccount.go @@ -17,12 +17,21 @@ limitations under the License. package create import ( + "context" + "fmt" + "github.com/spf13/cobra" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/cli-runtime/pkg/genericclioptions" + "k8s.io/cli-runtime/pkg/resource" + coreclient "k8s.io/client-go/kubernetes/typed/core/v1" cmdutil "k8s.io/kubectl/pkg/cmd/util" - "k8s.io/kubectl/pkg/generate" - generateversioned "k8s.io/kubectl/pkg/generate/versioned" + "k8s.io/kubectl/pkg/scheme" + "k8s.io/kubectl/pkg/util" "k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/templates" ) @@ -38,14 +47,36 @@ var ( // ServiceAccountOpts holds the options for 'create serviceaccount' sub command type ServiceAccountOpts struct { - CreateSubcommandOptions *CreateSubcommandOptions + // PrintFlags holds options necessary for obtaining a printer + PrintFlags *genericclioptions.PrintFlags + PrintObj func(obj runtime.Object) error + // Name of resource being created + Name string + DryRunStrategy cmdutil.DryRunStrategy + DryRunVerifier *resource.DryRunVerifier + CreateAnnotation bool + FieldManager string + + Namespace string + EnforceNamespace bool + + Mapper meta.RESTMapper + Client *coreclient.CoreV1Client + + genericclioptions.IOStreams +} + +// NewServiceAccountOpts creates a new *ServiceAccountOpts with sane defaults +func NewServiceAccountOpts(ioStreams genericclioptions.IOStreams) *ServiceAccountOpts { + return &ServiceAccountOpts{ + PrintFlags: genericclioptions.NewPrintFlags("created").WithTypeSetter(scheme.Scheme), + IOStreams: ioStreams, + } } // NewCmdCreateServiceAccount is a macro command to create a new service account func NewCmdCreateServiceAccount(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { - options := &ServiceAccountOpts{ - CreateSubcommandOptions: NewCreateSubcommandOptions(ioStreams), - } + o := NewServiceAccountOpts(ioStreams) cmd := &cobra.Command{ Use: "serviceaccount NAME [--dry-run=server|client|none]", @@ -55,43 +86,119 @@ func NewCmdCreateServiceAccount(f cmdutil.Factory, ioStreams genericclioptions.I Long: serviceAccountLong, Example: serviceAccountExample, Run: func(cmd *cobra.Command, args []string) { - cmdutil.CheckErr(options.Complete(f, cmd, args)) - cmdutil.CheckErr(options.Run()) + cmdutil.CheckErr(o.Complete(f, cmd, args)) + cmdutil.CheckErr(o.Validate()) + cmdutil.CheckErr(o.Run()) }, } - options.CreateSubcommandOptions.PrintFlags.AddFlags(cmd) + o.PrintFlags.AddFlags(cmd) cmdutil.AddApplyAnnotationFlags(cmd) cmdutil.AddValidateFlags(cmd) - cmdutil.AddGeneratorFlags(cmd, generateversioned.ServiceAccountV1GeneratorName) - cmdutil.AddFieldManagerFlagVar(cmd, &options.CreateSubcommandOptions.FieldManager, "kubectl-create") + cmdutil.AddDryRunFlag(cmd) + cmdutil.AddFieldManagerFlagVar(cmd, &o.FieldManager, "kubectl-create") return cmd } // Complete completes all the required options func (o *ServiceAccountOpts) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { - name, err := NameFromCommandArgs(cmd, args) + var err error + o.Name, err = NameFromCommandArgs(cmd, args) + if err != nil { + return err + } + + restConfig, err := f.ToRESTConfig() + if err != nil { + return err + } + o.Client, err = coreclient.NewForConfig(restConfig) if err != nil { return err } - var generator generate.StructuredGenerator - switch generatorName := cmdutil.GetFlagString(cmd, "generator"); generatorName { - case generateversioned.ServiceAccountV1GeneratorName: - generator = &generateversioned.ServiceAccountGeneratorV1{Name: name} - default: - return errUnsupportedGenerator(cmd, generatorName) + o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag) + + o.DryRunStrategy, err = cmdutil.GetDryRunStrategy(cmd) + if err != nil { + return err + } + dynamicClient, err := f.DynamicClient() + if err != nil { + return err + } + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) + + o.Namespace, o.EnforceNamespace, err = f.ToRawKubeConfigLoader().Namespace() + if err != nil { + return err } - return o.CreateSubcommandOptions.Complete(f, cmd, args, generator) + cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) + + printer, err := o.PrintFlags.ToPrinter() + if err != nil { + return err + } + + o.PrintObj = func(obj runtime.Object) error { + return printer.PrintObj(obj, o.Out) + } + + return nil } -// Run calls the CreateSubcommandOptions.Run in ServiceAccountOpts instance +// Validate checks ServiceAccountOpts to see if there is sufficient information run the command. +func (o *ServiceAccountOpts) Validate() error { + if len(o.Name) == 0 { + return fmt.Errorf("name must be specified") + } + return nil +} + +// Run makes the api call to the server func (o *ServiceAccountOpts) Run() error { - return o.CreateSubcommandOptions.Run() + serviceAccount, err := o.createServiceAccount() + if err != nil { + return err + } + + if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, serviceAccount, scheme.DefaultJSONEncoder()); err != nil { + return err + } + + if o.DryRunStrategy != cmdutil.DryRunClient { + createOptions := metav1.CreateOptions{} + if o.FieldManager != "" { + createOptions.FieldManager = o.FieldManager + } + if o.DryRunStrategy == cmdutil.DryRunServer { + if err := o.DryRunVerifier.HasSupport(serviceAccount.GroupVersionKind()); err != nil { + return err + } + createOptions.DryRun = []string{metav1.DryRunAll} + } + serviceAccount, err = o.Client.ServiceAccounts(o.Namespace).Create(context.TODO(), serviceAccount, createOptions) + if err != nil { + return fmt.Errorf("failed to create serviceaccount: %v", err) + } + } + return o.PrintObj(serviceAccount) } -func errUnsupportedGenerator(cmd *cobra.Command, generatorName string) error { - return cmdutil.UsageErrorf(cmd, "Generator %s not supported. ", generatorName) +func (o *ServiceAccountOpts) createServiceAccount() (*corev1.ServiceAccount, error) { + namespace := "" + if o.EnforceNamespace { + namespace = o.Namespace + } + serviceAccount := &corev1.ServiceAccount{ + TypeMeta: metav1.TypeMeta{APIVersion: corev1.SchemeGroupVersion.String(), Kind: "ServiceAccount"}, + ObjectMeta: metav1.ObjectMeta{ + Name: o.Name, + Namespace: namespace, + }, + } + serviceAccount.Name = o.Name + return serviceAccount, nil } diff --git a/vendor/k8s.io/kubectl/pkg/cmd/delete/delete.go b/vendor/k8s.io/kubectl/pkg/cmd/delete/delete.go index 1ba0ceae84..022c991718 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/delete/delete.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/delete/delete.go @@ -188,11 +188,7 @@ func (o *DeleteOptions) Complete(f cmdutil.Factory, args []string, cmd *cobra.Co if err != nil { return err } - discoveryClient, err := f.ToDiscoveryClient() - if err != nil { - return err - } - o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) + o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, f.OpenAPIGetter()) if len(o.Raw) == 0 { r := f.NewBuilder(). diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/env_file.go b/vendor/k8s.io/kubectl/pkg/cmd/util/env_file.go similarity index 86% rename from vendor/k8s.io/kubectl/pkg/generate/versioned/env_file.go rename to vendor/k8s.io/kubectl/pkg/cmd/util/env_file.go index 1277257f24..ed1255839e 100644 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/env_file.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/util/env_file.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package versioned +package util import ( "bufio" @@ -30,9 +30,9 @@ import ( var utf8bom = []byte{0xEF, 0xBB, 0xBF} -// proccessEnvFileLine returns a blank key if the line is empty or a comment. +// processEnvFileLine returns a blank key if the line is empty or a comment. // The value will be retrieved from the environment if necessary. -func proccessEnvFileLine(line []byte, filePath string, +func processEnvFileLine(line []byte, filePath string, currentLine int) (key, value string, err error) { if !utf8.Valid(line) { @@ -69,9 +69,9 @@ func proccessEnvFileLine(line []byte, filePath string, return } -// addFromEnvFile processes an env file allows a generic addTo to handle the +// AddFromEnvFile processes an env file allows a generic addTo to handle the // collection of key value pairs or returns an error. -func addFromEnvFile(filePath string, addTo func(key, value string) error) error { +func AddFromEnvFile(filePath string, addTo func(key, value string) error) error { f, err := os.Open(filePath) if err != nil { return err @@ -84,7 +84,7 @@ func addFromEnvFile(filePath string, addTo func(key, value string) error) error // Process the current line, retrieving a key/value pair if // possible. scannedBytes := scanner.Bytes() - key, value, err := proccessEnvFileLine(scannedBytes, filePath, currentLine) + key, value, err := processEnvFileLine(scannedBytes, filePath, currentLine) if err != nil { return err } diff --git a/vendor/k8s.io/kubectl/pkg/cmd/util/factory.go b/vendor/k8s.io/kubectl/pkg/cmd/util/factory.go index d9df0bf3b5..9235b4b0ab 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/util/factory.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/util/factory.go @@ -20,6 +20,7 @@ import ( "k8s.io/apimachinery/pkg/api/meta" "k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/cli-runtime/pkg/resource" + "k8s.io/client-go/discovery" "k8s.io/client-go/dynamic" "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" @@ -61,6 +62,8 @@ type Factory interface { // Returns a schema that can validate objects stored on disk. Validator(validate bool) (validation.Schema, error) - // OpenAPISchema returns the schema openapi schema definition + // OpenAPISchema returns the parsed openapi schema definition OpenAPISchema() (openapi.Resources, error) + // OpenAPIGetter returns a getter for the openapi schema document + OpenAPIGetter() discovery.OpenAPISchemaInterface } diff --git a/vendor/k8s.io/kubectl/pkg/cmd/util/factory_client_access.go b/vendor/k8s.io/kubectl/pkg/cmd/util/factory_client_access.go index e4cf2da073..2b9074cbac 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/util/factory_client_access.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/util/factory_client_access.go @@ -19,6 +19,7 @@ limitations under the License. package util import ( + "errors" "sync" corev1 "k8s.io/api/core/v1" @@ -38,20 +39,17 @@ import ( type factoryImpl struct { clientGetter genericclioptions.RESTClientGetter - // openAPIGetter loads and caches openapi specs - openAPIGetter openAPIGetter -} - -type openAPIGetter struct { - once sync.Once - getter openapi.Getter + // Caches OpenAPI document and parsed resources + openAPIParser *openapi.CachedOpenAPIParser + openAPIGetter *openapi.CachedOpenAPIGetter + parser sync.Once + getter sync.Once } func NewFactory(clientGetter genericclioptions.RESTClientGetter) Factory { if clientGetter == nil { panic("attempt to instantiate client_access_factory with nil clientGetter") } - f := &factoryImpl{ clientGetter: clientGetter, } @@ -159,19 +157,32 @@ func (f *factoryImpl) Validator(validate bool) (validation.Schema, error) { }, nil } -// OpenAPISchema returns metadata and structural information about Kubernetes object definitions. +// OpenAPISchema returns metadata and structural information about +// Kubernetes object definitions. func (f *factoryImpl) OpenAPISchema() (openapi.Resources, error) { + openAPIGetter := f.OpenAPIGetter() + if openAPIGetter == nil { + return nil, errors.New("no openapi getter") + } + + // Lazily initialize the OpenAPIParser once + f.parser.Do(func() { + // Create the caching OpenAPIParser + f.openAPIParser = openapi.NewOpenAPIParser(f.OpenAPIGetter()) + }) + + // Delegate to the OpenAPIPArser + return f.openAPIParser.Parse() +} + +func (f *factoryImpl) OpenAPIGetter() discovery.OpenAPISchemaInterface { discovery, err := f.clientGetter.ToDiscoveryClient() if err != nil { - return nil, err + return nil } - - // Lazily initialize the OpenAPIGetter once - f.openAPIGetter.once.Do(func() { - // Create the caching OpenAPIGetter - f.openAPIGetter.getter = openapi.NewOpenAPIGetter(discovery) + f.getter.Do(func() { + f.openAPIGetter = openapi.NewOpenAPIGetter(discovery) }) - // Delegate to the OpenAPIGetter - return f.openAPIGetter.getter.Get() + return f.openAPIGetter } diff --git a/vendor/k8s.io/kubectl/pkg/cmd/util/helpers.go b/vendor/k8s.io/kubectl/pkg/cmd/util/helpers.go index a6bfdd80af..8f74d66b8a 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/util/helpers.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/util/helpers.go @@ -434,6 +434,10 @@ func AddFieldManagerFlagVar(cmd *cobra.Command, p *string, defaultFieldManager s cmd.Flags().StringVar(p, "field-manager", defaultFieldManager, "Name of the manager used to track field ownership.") } +func AddContainerVarFlags(cmd *cobra.Command, p *string, containerName string) { + cmd.Flags().StringVarP(p, "container", "c", containerName, "Container name. If omitted, use the kubectl.kubernetes.io/default-container annotation for selecting the container to be attached or the first container in the pod will be chosen") +} + func AddServerSideApplyFlags(cmd *cobra.Command) { cmd.Flags().Bool("server-side", false, "If true, apply runs in the server instead of the client.") cmd.Flags().Bool("force-conflicts", false, "If true, server-side apply will force the changes against conflicts.") diff --git a/vendor/k8s.io/kubectl/pkg/cmd/wait/wait.go b/vendor/k8s.io/kubectl/pkg/cmd/wait/wait.go index d781a76f7f..574d18cd30 100644 --- a/vendor/k8s.io/kubectl/pkg/cmd/wait/wait.go +++ b/vendor/k8s.io/kubectl/pkg/cmd/wait/wait.go @@ -58,13 +58,16 @@ var ( A successful message will be printed to stdout indicating when the specified condition has been met. One can use -o option to change to output destination.`)) - waitExample = templates.Examples(` + waitExample = templates.Examples(i18n.T(` # Wait for the pod "busybox1" to contain the status condition of type "Ready". kubectl wait --for=condition=Ready pod/busybox1 + # The default value of status condition is true, you can set false. + kubectl wait --for=condition=Ready=false pod/busybox1 + # Wait for the pod "busybox1" to be deleted, with a timeout of 60s, after having issued the "delete" command. kubectl delete pod/busybox1 - kubectl wait --for=delete pod/busybox1 --timeout=60s`) + kubectl wait --for=delete pod/busybox1 --timeout=60s`)) ) // errNoMatchingResources is returned when there is no resources matching a query. @@ -134,7 +137,7 @@ func (flags *WaitFlags) AddFlags(cmd *cobra.Command) { flags.ResourceBuilderFlags.AddFlags(cmd.Flags()) cmd.Flags().DurationVar(&flags.Timeout, "timeout", flags.Timeout, "The length of time to wait before giving up. Zero means check once and don't wait, negative means wait for a week.") - cmd.Flags().StringVar(&flags.ForCondition, "for", flags.ForCondition, "The condition to wait on: [delete|condition=condition-name].") + cmd.Flags().StringVar(&flags.ForCondition, "for", flags.ForCondition, "The condition to wait on: [delete|condition=condition-name]. The default status value of condition-name is true, you can set false with condition=condition-name=false") } // ToOptions converts from CLI inputs to runtime inputs @@ -442,6 +445,13 @@ func (w ConditionalWait) checkCondition(obj *unstructured.Unstructured) (bool, e if !found || err != nil { continue } + generation, found, _ := unstructured.NestedInt64(obj.Object, "metadata", "generation") + if found { + observedGeneration, found := getObservedGeneration(obj, condition) + if found && observedGeneration < generation { + return false, nil + } + } return strings.EqualFold(status, w.conditionStatus), nil } @@ -467,3 +477,12 @@ func (w ConditionalWait) isConditionMet(event watch.Event) (bool, error) { func extendErrWaitTimeout(err error, info *resource.Info) error { return fmt.Errorf("%s on %s/%s", err.Error(), info.Mapping.Resource.Resource, info.Name) } + +func getObservedGeneration(obj *unstructured.Unstructured, condition map[string]interface{}) (int64, bool) { + conditionObservedGeneration, found, _ := unstructured.NestedInt64(condition, "observedGeneration") + if found { + return conditionObservedGeneration, true + } + statusObservedGeneration, found, _ := unstructured.NestedInt64(obj.Object, "status", "observedGeneration") + return statusObservedGeneration, found +} diff --git a/vendor/k8s.io/kubectl/pkg/describe/describe.go b/vendor/k8s.io/kubectl/pkg/describe/describe.go index ba59c19167..70850f15c3 100644 --- a/vendor/k8s.io/kubectl/pkg/describe/describe.go +++ b/vendor/k8s.io/kubectl/pkg/describe/describe.go @@ -42,15 +42,18 @@ import ( certificatesv1beta1 "k8s.io/api/certificates/v1beta1" coordinationv1 "k8s.io/api/coordination/v1" corev1 "k8s.io/api/core/v1" + discoveryv1 "k8s.io/api/discovery/v1" discoveryv1beta1 "k8s.io/api/discovery/v1beta1" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" networkingv1 "k8s.io/api/networking/v1" networkingv1beta1 "k8s.io/api/networking/v1beta1" + policyv1 "k8s.io/api/policy/v1" policyv1beta1 "k8s.io/api/policy/v1beta1" rbacv1 "k8s.io/api/rbac/v1" schedulingv1 "k8s.io/api/scheduling/v1" storagev1 "k8s.io/api/storage/v1" "k8s.io/apimachinery/pkg/api/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -200,6 +203,7 @@ func describerMap(clientConfig *rest.Config) (map[schema.GroupKind]ResourceDescr {Group: corev1.GroupName, Kind: "ConfigMap"}: &ConfigMapDescriber{c}, {Group: corev1.GroupName, Kind: "PriorityClass"}: &PriorityClassDescriber{c}, {Group: discoveryv1beta1.GroupName, Kind: "EndpointSlice"}: &EndpointSliceDescriber{c}, + {Group: discoveryv1.GroupName, Kind: "EndpointSlice"}: &EndpointSliceDescriber{c}, {Group: extensionsv1beta1.GroupName, Kind: "ReplicaSet"}: &ReplicaSetDescriber{c}, {Group: extensionsv1beta1.GroupName, Kind: "NetworkPolicy"}: &NetworkPolicyDescriber{c}, {Group: extensionsv1beta1.GroupName, Kind: "PodSecurityPolicy"}: &PodSecurityPolicyDescriber{c}, @@ -213,6 +217,7 @@ func describerMap(clientConfig *rest.Config) (map[schema.GroupKind]ResourceDescr {Group: networkingv1.GroupName, Kind: "IngressClass"}: &IngressClassDescriber{c}, {Group: batchv1.GroupName, Kind: "Job"}: &JobDescriber{c}, {Group: batchv1.GroupName, Kind: "CronJob"}: &CronJobDescriber{c}, + {Group: batchv1beta1.GroupName, Kind: "CronJob"}: &CronJobDescriber{c}, {Group: appsv1.GroupName, Kind: "StatefulSet"}: &StatefulSetDescriber{c}, {Group: appsv1.GroupName, Kind: "Deployment"}: &DeploymentDescriber{c}, {Group: appsv1.GroupName, Kind: "DaemonSet"}: &DaemonSetDescriber{c}, @@ -221,6 +226,7 @@ func describerMap(clientConfig *rest.Config) (map[schema.GroupKind]ResourceDescr {Group: storagev1.GroupName, Kind: "StorageClass"}: &StorageClassDescriber{c}, {Group: storagev1.GroupName, Kind: "CSINode"}: &CSINodeDescriber{c}, {Group: policyv1beta1.GroupName, Kind: "PodDisruptionBudget"}: &PodDisruptionBudgetDescriber{c}, + {Group: policyv1.GroupName, Kind: "PodDisruptionBudget"}: &PodDisruptionBudgetDescriber{c}, {Group: rbacv1.GroupName, Kind: "Role"}: &RoleDescriber{c}, {Group: rbacv1.GroupName, Kind: "ClusterRole"}: &ClusterRoleDescriber{c}, {Group: rbacv1.GroupName, Kind: "RoleBinding"}: &RoleBindingDescriber{c}, @@ -525,26 +531,26 @@ func DescribeResourceQuotas(quotas *corev1.ResourceQuotaList, w PrefixWriter) { } sort.Sort(SortableResourceQuotas(quotas.Items)) - w.Write(LEVEL_0, "Resource Quotas") + w.Write(LEVEL_0, "Resource Quotas\n") for _, q := range quotas.Items { - w.Write(LEVEL_0, "\n Name:\t%s\n", q.Name) + w.Write(LEVEL_1, "Name:\t%s\n", q.Name) if len(q.Spec.Scopes) > 0 { scopes := make([]string, 0, len(q.Spec.Scopes)) for _, scope := range q.Spec.Scopes { scopes = append(scopes, string(scope)) } sort.Strings(scopes) - w.Write(LEVEL_0, " Scopes:\t%s\n", strings.Join(scopes, ", ")) + w.Write(LEVEL_1, "Scopes:\t%s\n", strings.Join(scopes, ", ")) for _, scope := range scopes { helpText := helpTextForResourceQuotaScope(corev1.ResourceQuotaScope(scope)) if len(helpText) > 0 { - w.Write(LEVEL_0, " * %s\n", helpText) + w.Write(LEVEL_1, "* %s\n", helpText) } } } - w.Write(LEVEL_0, " Resource\tUsed\tHard\n") - w.Write(LEVEL_0, " --------\t---\t---\n") + w.Write(LEVEL_1, "Resource\tUsed\tHard\n") + w.Write(LEVEL_1, "--------\t---\t---\n") resources := make([]corev1.ResourceName, 0, len(q.Status.Hard)) for resource := range q.Status.Hard { @@ -555,7 +561,7 @@ func DescribeResourceQuotas(quotas *corev1.ResourceQuotaList, w PrefixWriter) { for _, resource := range resources { hardQuantity := q.Status.Hard[resource] usedQuantity := q.Status.Used[resource] - w.Write(LEVEL_0, " %s\t%s\t%s\n", string(resource), usedQuantity.String(), hardQuantity.String()) + w.Write(LEVEL_1, "%s\t%s\t%s\n", string(resource), usedQuantity.String(), hardQuantity.String()) } } } @@ -1070,7 +1076,6 @@ func printEphemeralVolumeSource(ephemeral *corev1.EphemeralVolumeSource, w Prefi Spec: ephemeral.VolumeClaimTemplate.Spec, }, false /* not a full PVC */) } - w.Write(LEVEL_2, "ReadOnly:\t%v\n", ephemeral.ReadOnly) } func printRBDVolumeSource(rbd *corev1.RBDVolumeSource, w PrefixWriter) { @@ -2160,6 +2165,9 @@ func describeJob(job *batchv1.Job, events *corev1.EventList) (string, error) { } else { w.Write(LEVEL_0, "Completions:\t\n") } + if job.Spec.CompletionMode != nil { + w.Write(LEVEL_0, "Completion Mode:\t%s\n", *job.Spec.CompletionMode) + } if job.Status.StartTime != nil { w.Write(LEVEL_0, "Start Time:\t%s\n", job.Status.StartTime.Time.Format(time.RFC1123Z)) } @@ -2173,6 +2181,9 @@ func describeJob(job *batchv1.Job, events *corev1.EventList) (string, error) { w.Write(LEVEL_0, "Active Deadline Seconds:\t%ds\n", *job.Spec.ActiveDeadlineSeconds) } w.Write(LEVEL_0, "Pods Statuses:\t%d Running / %d Succeeded / %d Failed\n", job.Status.Active, job.Status.Succeeded, job.Status.Failed) + if job.Spec.CompletionMode != nil && *job.Spec.CompletionMode == batchv1.IndexedCompletion { + w.Write(LEVEL_0, "Completed Indexes:\t%s\n", capIndexesListOrNone(job.Status.CompletedIndexes, 50)) + } DescribePodTemplate(&job.Spec.Template, w) if events != nil { DescribeEvents(events, w) @@ -2181,25 +2192,50 @@ func describeJob(job *batchv1.Job, events *corev1.EventList) (string, error) { }) } +func capIndexesListOrNone(indexes string, softLimit int) string { + if len(indexes) == 0 { + return "" + } + ix := softLimit + for ; ix < len(indexes); ix++ { + if indexes[ix] == ',' { + break + } + } + if ix >= len(indexes) { + return indexes + } + return indexes[:ix+1] + "..." +} + // CronJobDescriber generates information about a cron job and the jobs it has created. type CronJobDescriber struct { client clientset.Interface } func (d *CronJobDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { - cronJob, err := d.client.BatchV1beta1().CronJobs(namespace).Get(context.TODO(), name, metav1.GetOptions{}) + var events *corev1.EventList + + cronJob, err := d.client.BatchV1().CronJobs(namespace).Get(context.TODO(), name, metav1.GetOptions{}) + if err == nil { + if describerSettings.ShowEvents { + events, _ = d.client.CoreV1().Events(namespace).Search(scheme.Scheme, cronJob) + } + return describeCronJob(cronJob, events) + } + + // TODO: drop this condition when beta disappears in 1.25 + cronJobBeta, err := d.client.BatchV1beta1().CronJobs(namespace).Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err } - - var events *corev1.EventList if describerSettings.ShowEvents { events, _ = d.client.CoreV1().Events(namespace).Search(scheme.Scheme, cronJob) } - return describeCronJob(cronJob, events) + return describeCronJobBeta(cronJobBeta, events) } -func describeCronJob(cronJob *batchv1beta1.CronJob, events *corev1.EventList) (string, error) { +func describeCronJob(cronJob *batchv1.CronJob, events *corev1.EventList) (string, error) { return tabbedString(func(out io.Writer) error { w := NewPrefixWriter(out) w.Write(LEVEL_0, "Name:\t%s\n", cronJob.Name) @@ -2238,7 +2274,72 @@ func describeCronJob(cronJob *batchv1beta1.CronJob, events *corev1.EventList) (s }) } -func describeJobTemplate(jobTemplate batchv1beta1.JobTemplateSpec, w PrefixWriter) { +func describeJobTemplate(jobTemplate batchv1.JobTemplateSpec, w PrefixWriter) { + if jobTemplate.Spec.Selector != nil { + if selector, err := metav1.LabelSelectorAsSelector(jobTemplate.Spec.Selector); err == nil { + w.Write(LEVEL_0, "Selector:\t%s\n", selector) + } else { + w.Write(LEVEL_0, "Selector:\tFailed to get selector: %s\n", err) + } + } else { + w.Write(LEVEL_0, "Selector:\t\n") + } + if jobTemplate.Spec.Parallelism != nil { + w.Write(LEVEL_0, "Parallelism:\t%d\n", *jobTemplate.Spec.Parallelism) + } else { + w.Write(LEVEL_0, "Parallelism:\t\n") + } + if jobTemplate.Spec.Completions != nil { + w.Write(LEVEL_0, "Completions:\t%d\n", *jobTemplate.Spec.Completions) + } else { + w.Write(LEVEL_0, "Completions:\t\n") + } + if jobTemplate.Spec.ActiveDeadlineSeconds != nil { + w.Write(LEVEL_0, "Active Deadline Seconds:\t%ds\n", *jobTemplate.Spec.ActiveDeadlineSeconds) + } + DescribePodTemplate(&jobTemplate.Spec.Template, w) +} + +func describeCronJobBeta(cronJob *batchv1beta1.CronJob, events *corev1.EventList) (string, error) { + return tabbedString(func(out io.Writer) error { + w := NewPrefixWriter(out) + w.Write(LEVEL_0, "Name:\t%s\n", cronJob.Name) + w.Write(LEVEL_0, "Namespace:\t%s\n", cronJob.Namespace) + printLabelsMultiline(w, "Labels", cronJob.Labels) + printAnnotationsMultiline(w, "Annotations", cronJob.Annotations) + w.Write(LEVEL_0, "Schedule:\t%s\n", cronJob.Spec.Schedule) + w.Write(LEVEL_0, "Concurrency Policy:\t%s\n", cronJob.Spec.ConcurrencyPolicy) + w.Write(LEVEL_0, "Suspend:\t%s\n", printBoolPtr(cronJob.Spec.Suspend)) + if cronJob.Spec.SuccessfulJobsHistoryLimit != nil { + w.Write(LEVEL_0, "Successful Job History Limit:\t%d\n", *cronJob.Spec.SuccessfulJobsHistoryLimit) + } else { + w.Write(LEVEL_0, "Successful Job History Limit:\t\n") + } + if cronJob.Spec.FailedJobsHistoryLimit != nil { + w.Write(LEVEL_0, "Failed Job History Limit:\t%d\n", *cronJob.Spec.FailedJobsHistoryLimit) + } else { + w.Write(LEVEL_0, "Failed Job History Limit:\t\n") + } + if cronJob.Spec.StartingDeadlineSeconds != nil { + w.Write(LEVEL_0, "Starting Deadline Seconds:\t%ds\n", *cronJob.Spec.StartingDeadlineSeconds) + } else { + w.Write(LEVEL_0, "Starting Deadline Seconds:\t\n") + } + describeJobTemplateBeta(cronJob.Spec.JobTemplate, w) + if cronJob.Status.LastScheduleTime != nil { + w.Write(LEVEL_0, "Last Schedule Time:\t%s\n", cronJob.Status.LastScheduleTime.Time.Format(time.RFC1123Z)) + } else { + w.Write(LEVEL_0, "Last Schedule Time:\t\n") + } + printActiveJobs(w, "Active Jobs", cronJob.Status.Active) + if events != nil { + DescribeEvents(events, w) + } + return nil + }) +} + +func describeJobTemplateBeta(jobTemplate batchv1beta1.JobTemplateSpec, w PrefixWriter) { if jobTemplate.Spec.Selector != nil { if selector, err := metav1.LabelSelectorAsSelector(jobTemplate.Spec.Selector); err == nil { w.Write(LEVEL_0, "Selector:\t%s\n", selector) @@ -2455,7 +2556,11 @@ func (i *IngressDescriber) describeBackendV1(ns string, backend *networkingv1.In } if backend.Resource != nil { ic := backend.Resource - return fmt.Sprintf("APIGroup: %v, Kind: %v, Name: %v", *ic.APIGroup, ic.Kind, ic.Name) + apiGroup := "" + if ic.APIGroup != nil { + apiGroup = fmt.Sprintf("%v", *ic.APIGroup) + } + return fmt.Sprintf("APIGroup: %v, Kind: %v, Name: %v", apiGroup, ic.Kind, ic.Name) } return "" } @@ -2859,22 +2964,112 @@ type EndpointSliceDescriber struct { } func (d *EndpointSliceDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { - c := d.DiscoveryV1beta1().EndpointSlices(namespace) + var events *corev1.EventList + // try endpointslice/v1 first (v1.21) and fallback to v1beta1 if error occurs - eps, err := c.Get(context.TODO(), name, metav1.GetOptions{}) + epsV1, err := d.DiscoveryV1().EndpointSlices(namespace).Get(context.TODO(), name, metav1.GetOptions{}) + if err == nil { + if describerSettings.ShowEvents { + events, _ = d.CoreV1().Events(namespace).Search(scheme.Scheme, epsV1) + } + return describeEndpointSliceV1(epsV1, events) + } + + epsV1beta1, err := d.DiscoveryV1beta1().EndpointSlices(namespace).Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err } - var events *corev1.EventList if describerSettings.ShowEvents { - events, _ = d.CoreV1().Events(namespace).Search(scheme.Scheme, eps) + events, _ = d.CoreV1().Events(namespace).Search(scheme.Scheme, epsV1beta1) } - return describeEndpointSlice(eps, events) + return describeEndpointSliceV1beta1(epsV1beta1, events) +} + +func describeEndpointSliceV1(eps *discoveryv1.EndpointSlice, events *corev1.EventList) (string, error) { + return tabbedString(func(out io.Writer) error { + w := NewPrefixWriter(out) + w.Write(LEVEL_0, "Name:\t%s\n", eps.Name) + w.Write(LEVEL_0, "Namespace:\t%s\n", eps.Namespace) + printLabelsMultiline(w, "Labels", eps.Labels) + printAnnotationsMultiline(w, "Annotations", eps.Annotations) + + w.Write(LEVEL_0, "AddressType:\t%s\n", string(eps.AddressType)) + + if len(eps.Ports) == 0 { + w.Write(LEVEL_0, "Ports: \n") + } else { + w.Write(LEVEL_0, "Ports:\n") + w.Write(LEVEL_1, "Name\tPort\tProtocol\n") + w.Write(LEVEL_1, "----\t----\t--------\n") + for _, port := range eps.Ports { + portName := "" + if port.Name != nil && len(*port.Name) > 0 { + portName = *port.Name + } + + portNum := "" + if port.Port != nil { + portNum = strconv.Itoa(int(*port.Port)) + } + + w.Write(LEVEL_1, "%s\t%s\t%s\n", portName, portNum, *port.Protocol) + } + } + + if len(eps.Endpoints) == 0 { + w.Write(LEVEL_0, "Endpoints: \n") + } else { + w.Write(LEVEL_0, "Endpoints:\n") + for i := range eps.Endpoints { + endpoint := &eps.Endpoints[i] + + addressesString := strings.Join(endpoint.Addresses, ", ") + if len(addressesString) == 0 { + addressesString = "" + } + w.Write(LEVEL_1, "- Addresses:\t%s\n", addressesString) + + w.Write(LEVEL_2, "Conditions:\n") + readyText := "" + if endpoint.Conditions.Ready != nil { + readyText = strconv.FormatBool(*endpoint.Conditions.Ready) + } + w.Write(LEVEL_3, "Ready:\t%s\n", readyText) + + hostnameText := "" + if endpoint.Hostname != nil { + hostnameText = *endpoint.Hostname + } + w.Write(LEVEL_2, "Hostname:\t%s\n", hostnameText) + + if endpoint.TargetRef != nil { + w.Write(LEVEL_2, "TargetRef:\t%s/%s\n", endpoint.TargetRef.Kind, endpoint.TargetRef.Name) + } + + nodeNameText := "" + if endpoint.NodeName != nil { + nodeNameText = *endpoint.NodeName + } + w.Write(LEVEL_2, "NodeName:\t%s\n", nodeNameText) + + zoneText := "" + if endpoint.Zone != nil { + zoneText = *endpoint.Zone + } + w.Write(LEVEL_2, "Zone:\t%s\n", zoneText) + } + } + + if events != nil { + DescribeEvents(events, w) + } + return nil + }) } -func describeEndpointSlice(eps *discoveryv1beta1.EndpointSlice, events *corev1.EventList) (string, error) { +func describeEndpointSliceV1beta1(eps *discoveryv1beta1.EndpointSlice, events *corev1.EventList) (string, error) { return tabbedString(func(out io.Writer) error { w := NewPrefixWriter(out) w.Write(LEVEL_0, "Name:\t%s\n", eps.Name) @@ -3772,7 +3967,7 @@ func describeHorizontalPodAutoscalerV1(hpa *autoscalingv1.HorizontalPodAutoscale func describeNodeResource(nodeNonTerminatedPodsList *corev1.PodList, node *corev1.Node, w PrefixWriter) { w.Write(LEVEL_0, "Non-terminated Pods:\t(%d in total)\n", len(nodeNonTerminatedPodsList.Items)) - w.Write(LEVEL_1, "Namespace\tName\t\tCPU Requests\tCPU Limits\tMemory Requests\tMemory Limits\tAGE\n") + w.Write(LEVEL_1, "Namespace\tName\t\tCPU Requests\tCPU Limits\tMemory Requests\tMemory Limits\tAge\n") w.Write(LEVEL_1, "---------\t----\t\t------------\t----------\t---------------\t-------------\t---\n") allocatable := node.Status.Capacity if len(node.Status.Allocatable) > 0 { @@ -3929,7 +4124,7 @@ func (dd *DeploymentDescriber) Describe(namespace, name string, describerSetting events, _ = dd.client.CoreV1().Events(namespace).Search(scheme.Scheme, d) } - return describeDeployment(d, selector, d, events, dd) + return describeDeployment(d, selector, d.DeepCopy(), events, dd) } func describeDeployment(d *appsv1.Deployment, selector labels.Selector, internalDeployment *appsv1.Deployment, events *corev1.EventList, dd *DeploymentDescriber) (string, error) { @@ -4344,20 +4539,67 @@ type PodDisruptionBudgetDescriber struct { } func (p *PodDisruptionBudgetDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { - pdb, err := p.PolicyV1beta1().PodDisruptionBudgets(namespace).Get(context.TODO(), name, metav1.GetOptions{}) - if err != nil { - return "", err + var ( + pdbv1 *policyv1.PodDisruptionBudget + pdbv1beta1 *policyv1beta1.PodDisruptionBudget + err error + ) + + pdbv1, err = p.PolicyV1().PodDisruptionBudgets(namespace).Get(context.TODO(), name, metav1.GetOptions{}) + if err == nil { + var events *corev1.EventList + if describerSettings.ShowEvents { + events, _ = p.CoreV1().Events(namespace).Search(scheme.Scheme, pdbv1) + } + return describePodDisruptionBudgetV1(pdbv1, events) } - var events *corev1.EventList - if describerSettings.ShowEvents { - events, _ = p.CoreV1().Events(namespace).Search(scheme.Scheme, pdb) + // try falling back to v1beta1 in NotFound error cases + if apierrors.IsNotFound(err) { + pdbv1beta1, err = p.PolicyV1beta1().PodDisruptionBudgets(namespace).Get(context.TODO(), name, metav1.GetOptions{}) } + if err == nil { + var events *corev1.EventList + if describerSettings.ShowEvents { + events, _ = p.CoreV1().Events(namespace).Search(scheme.Scheme, pdbv1beta1) + } + return describePodDisruptionBudgetV1beta1(pdbv1beta1, events) + } + + return "", err +} - return describePodDisruptionBudget(pdb, events) +func describePodDisruptionBudgetV1(pdb *policyv1.PodDisruptionBudget, events *corev1.EventList) (string, error) { + return tabbedString(func(out io.Writer) error { + w := NewPrefixWriter(out) + w.Write(LEVEL_0, "Name:\t%s\n", pdb.Name) + w.Write(LEVEL_0, "Namespace:\t%s\n", pdb.Namespace) + + if pdb.Spec.MinAvailable != nil { + w.Write(LEVEL_0, "Min available:\t%s\n", pdb.Spec.MinAvailable.String()) + } else if pdb.Spec.MaxUnavailable != nil { + w.Write(LEVEL_0, "Max unavailable:\t%s\n", pdb.Spec.MaxUnavailable.String()) + } + + if pdb.Spec.Selector != nil { + w.Write(LEVEL_0, "Selector:\t%s\n", metav1.FormatLabelSelector(pdb.Spec.Selector)) + } else { + w.Write(LEVEL_0, "Selector:\t\n") + } + w.Write(LEVEL_0, "Status:\n") + w.Write(LEVEL_2, "Allowed disruptions:\t%d\n", pdb.Status.DisruptionsAllowed) + w.Write(LEVEL_2, "Current:\t%d\n", pdb.Status.CurrentHealthy) + w.Write(LEVEL_2, "Desired:\t%d\n", pdb.Status.DesiredHealthy) + w.Write(LEVEL_2, "Total:\t%d\n", pdb.Status.ExpectedPods) + if events != nil { + DescribeEvents(events, w) + } + + return nil + }) } -func describePodDisruptionBudget(pdb *policyv1beta1.PodDisruptionBudget, events *corev1.EventList) (string, error) { +func describePodDisruptionBudgetV1beta1(pdb *policyv1beta1.PodDisruptionBudget, events *corev1.EventList) (string, error) { return tabbedString(func(out io.Writer) error { w := NewPrefixWriter(out) w.Write(LEVEL_0, "Name:\t%s\n", pdb.Name) diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/autoscale.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/autoscale.go deleted file mode 100644 index 5d1669a0d9..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/autoscale.go +++ /dev/null @@ -1,86 +0,0 @@ -/* -Copyright 2015 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. -*/ - -package versioned - -import ( - "fmt" - - autoscalingv1 "k8s.io/api/autoscaling/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubectl/pkg/generate" -) - -// HorizontalPodAutoscalerGeneratorV1 supports stable generation of a horizontal pod autoscaler. -type HorizontalPodAutoscalerGeneratorV1 struct { - Name string - ScaleRefKind string - ScaleRefName string - ScaleRefAPIVersion string - MinReplicas int32 - MaxReplicas int32 - CPUPercent int32 -} - -// Ensure it supports the generator pattern that uses parameters specified during construction. -var _ generate.StructuredGenerator = &HorizontalPodAutoscalerGeneratorV1{} - -// StructuredGenerate outputs a horizontal pod autoscaler object using the configured fields. -func (s *HorizontalPodAutoscalerGeneratorV1) StructuredGenerate() (runtime.Object, error) { - if err := s.validate(); err != nil { - return nil, err - } - - scaler := autoscalingv1.HorizontalPodAutoscaler{ - ObjectMeta: metav1.ObjectMeta{ - Name: s.Name, - }, - Spec: autoscalingv1.HorizontalPodAutoscalerSpec{ - ScaleTargetRef: autoscalingv1.CrossVersionObjectReference{ - Kind: s.ScaleRefKind, - Name: s.ScaleRefName, - APIVersion: s.ScaleRefAPIVersion, - }, - MaxReplicas: s.MaxReplicas, - }, - } - - if s.MinReplicas > 0 { - v := int32(s.MinReplicas) - scaler.Spec.MinReplicas = &v - } - if s.CPUPercent >= 0 { - c := int32(s.CPUPercent) - scaler.Spec.TargetCPUUtilizationPercentage = &c - } - - return &scaler, nil -} - -// validate check if the caller has set the right fields. -func (s HorizontalPodAutoscalerGeneratorV1) validate() error { - if len(s.Name) == 0 { - return fmt.Errorf("name must be specified") - } - if s.MaxReplicas < 1 { - return fmt.Errorf("'max' is a required parameter and must be at least 1") - } - if s.MinReplicas > s.MaxReplicas { - return fmt.Errorf("'max' must be greater than or equal to 'min'") - } - return nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/clusterrolebinding.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/clusterrolebinding.go deleted file mode 100644 index b1778cb413..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/clusterrolebinding.go +++ /dev/null @@ -1,159 +0,0 @@ -/* -Copyright 2016 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. -*/ - -package versioned - -import ( - "fmt" - - "strings" - - rbacv1 "k8s.io/api/rbac/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubectl/pkg/generate" -) - -// ClusterRoleBindingGeneratorV1 supports stable generation of a clusterRoleBinding. -type ClusterRoleBindingGeneratorV1 struct { - // Name of clusterRoleBinding (required) - Name string - // ClusterRole for the clusterRoleBinding (required) - ClusterRole string - // Users to derive the clusterRoleBinding from (optional) - Users []string - // Groups to derive the clusterRoleBinding from (optional) - Groups []string - // ServiceAccounts to derive the clusterRoleBinding from in namespace:name format(optional) - ServiceAccounts []string -} - -// Ensure it supports the generator pattern that uses parameter injection. -var _ generate.Generator = &ClusterRoleBindingGeneratorV1{} - -// Ensure it supports the generator pattern that uses parameters specified during construction. -var _ generate.StructuredGenerator = &ClusterRoleBindingGeneratorV1{} - -// Generate returns a clusterRoleBinding using the specified parameters. -func (s ClusterRoleBindingGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), genericParams) - if err != nil { - return nil, err - } - delegate := &ClusterRoleBindingGeneratorV1{} - userStrings, found := genericParams["user"] - if found { - fromFileArray, isArray := userStrings.([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found :%v", userStrings) - } - delegate.Users = fromFileArray - delete(genericParams, "user") - } - groupStrings, found := genericParams["group"] - if found { - fromLiteralArray, isArray := groupStrings.([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found :%v", groupStrings) - } - delegate.Groups = fromLiteralArray - delete(genericParams, "group") - } - saStrings, found := genericParams["serviceaccount"] - if found { - fromLiteralArray, isArray := saStrings.([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found :%v", saStrings) - } - delegate.ServiceAccounts = fromLiteralArray - delete(genericParams, "serviceaccount") - } - params := map[string]string{} - for key, value := range genericParams { - strVal, isString := value.(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key) - } - params[key] = strVal - } - delegate.Name = params["name"] - delegate.ClusterRole = params["clusterrole"] - return delegate.StructuredGenerate() -} - -// ParamNames returns the set of supported input parameters when using the parameter injection generator pattern. -func (s ClusterRoleBindingGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "clusterrole", Required: false}, - {Name: "user", Required: false}, - {Name: "group", Required: false}, - {Name: "serviceaccount", Required: false}, - } -} - -// StructuredGenerate outputs a clusterRoleBinding object using the configured fields. -func (s ClusterRoleBindingGeneratorV1) StructuredGenerate() (runtime.Object, error) { - if err := s.validate(); err != nil { - return nil, err - } - clusterRoleBinding := &rbacv1.ClusterRoleBinding{} - clusterRoleBinding.Name = s.Name - clusterRoleBinding.RoleRef = rbacv1.RoleRef{ - APIGroup: rbacv1.GroupName, - Kind: "ClusterRole", - Name: s.ClusterRole, - } - for _, user := range sets.NewString(s.Users...).List() { - clusterRoleBinding.Subjects = append(clusterRoleBinding.Subjects, rbacv1.Subject{ - Kind: rbacv1.UserKind, - APIGroup: rbacv1.GroupName, - Name: user, - }) - } - for _, group := range sets.NewString(s.Groups...).List() { - clusterRoleBinding.Subjects = append(clusterRoleBinding.Subjects, rbacv1.Subject{ - Kind: rbacv1.GroupKind, - APIGroup: rbacv1.GroupName, - Name: group, - }) - } - for _, sa := range sets.NewString(s.ServiceAccounts...).List() { - tokens := strings.Split(sa, ":") - if len(tokens) != 2 || tokens[0] == "" || tokens[1] == "" { - return nil, fmt.Errorf("serviceaccount must be :") - } - clusterRoleBinding.Subjects = append(clusterRoleBinding.Subjects, rbacv1.Subject{ - Kind: rbacv1.ServiceAccountKind, - APIGroup: "", - Namespace: tokens[0], - Name: tokens[1], - }) - } - - return clusterRoleBinding, nil -} - -// validate validates required fields are set to support structured generation. -func (s ClusterRoleBindingGeneratorV1) validate() error { - if len(s.Name) == 0 { - return fmt.Errorf("name must be specified") - } - if len(s.ClusterRole) == 0 { - return fmt.Errorf("clusterrole must be specified") - } - return nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/configmap.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/configmap.go deleted file mode 100644 index 52a5ebe3e1..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/configmap.go +++ /dev/null @@ -1,298 +0,0 @@ -/* -Copyright 2016 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. -*/ - -package versioned - -import ( - "fmt" - "io/ioutil" - "os" - "path" - "strings" - "unicode/utf8" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/kubectl/pkg/generate" - "k8s.io/kubectl/pkg/util" - "k8s.io/kubectl/pkg/util/hash" -) - -// ConfigMapGeneratorV1 supports stable generation of a configMap. -type ConfigMapGeneratorV1 struct { - // Name of configMap (required) - Name string - // Type of configMap (optional) - Type string - // FileSources to derive the configMap from (optional) - FileSources []string - // LiteralSources to derive the configMap from (optional) - LiteralSources []string - // EnvFileSource to derive the configMap from (optional) - EnvFileSource string - // AppendHash; if true, derive a hash from the ConfigMap and append it to the name - AppendHash bool -} - -// Ensure it supports the generator pattern that uses parameter injection. -var _ generate.Generator = &ConfigMapGeneratorV1{} - -// Ensure it supports the generator pattern that uses parameters specified during construction. -var _ generate.StructuredGenerator = &ConfigMapGeneratorV1{} - -// Generate returns a configMap using the specified parameters. -func (s ConfigMapGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), genericParams) - if err != nil { - return nil, err - } - delegate := &ConfigMapGeneratorV1{} - fromFileStrings, found := genericParams["from-file"] - if found { - fromFileArray, isArray := fromFileStrings.([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found :%v", fromFileStrings) - } - delegate.FileSources = fromFileArray - delete(genericParams, "from-file") - } - fromLiteralStrings, found := genericParams["from-literal"] - if found { - fromLiteralArray, isArray := fromLiteralStrings.([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found :%v", fromLiteralStrings) - } - delegate.LiteralSources = fromLiteralArray - delete(genericParams, "from-literal") - } - fromEnvFileString, found := genericParams["from-env-file"] - if found { - fromEnvFile, isString := fromEnvFileString.(string) - if !isString { - return nil, fmt.Errorf("expected string, found :%v", fromEnvFileString) - } - delegate.EnvFileSource = fromEnvFile - delete(genericParams, "from-env-file") - } - hashParam, found := genericParams["append-hash"] - if found { - hashBool, isBool := hashParam.(bool) - if !isBool { - return nil, fmt.Errorf("expected bool, found :%v", hashParam) - } - delegate.AppendHash = hashBool - delete(genericParams, "append-hash") - } - params := map[string]string{} - for key, value := range genericParams { - strVal, isString := value.(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key) - } - params[key] = strVal - } - delegate.Name = params["name"] - delegate.Type = params["type"] - - return delegate.StructuredGenerate() -} - -// ParamNames returns the set of supported input parameters when using the parameter injection generator pattern. -func (s ConfigMapGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "type", Required: false}, - {Name: "from-file", Required: false}, - {Name: "from-literal", Required: false}, - {Name: "from-env-file", Required: false}, - {Name: "force", Required: false}, - {Name: "hash", Required: false}, - } -} - -// StructuredGenerate outputs a configMap object using the configured fields. -func (s ConfigMapGeneratorV1) StructuredGenerate() (runtime.Object, error) { - if err := s.validate(); err != nil { - return nil, err - } - configMap := &v1.ConfigMap{} - configMap.Name = s.Name - configMap.Data = map[string]string{} - configMap.BinaryData = map[string][]byte{} - if len(s.FileSources) > 0 { - if err := handleConfigMapFromFileSources(configMap, s.FileSources); err != nil { - return nil, err - } - } - if len(s.LiteralSources) > 0 { - if err := handleConfigMapFromLiteralSources(configMap, s.LiteralSources); err != nil { - return nil, err - } - } - if len(s.EnvFileSource) > 0 { - if err := handleConfigMapFromEnvFileSource(configMap, s.EnvFileSource); err != nil { - return nil, err - } - } - if s.AppendHash { - h, err := hash.ConfigMapHash(configMap) - if err != nil { - return nil, err - } - configMap.Name = fmt.Sprintf("%s-%s", configMap.Name, h) - } - return configMap, nil -} - -// validate validates required fields are set to support structured generation. -func (s ConfigMapGeneratorV1) validate() error { - if len(s.Name) == 0 { - return fmt.Errorf("name must be specified") - } - if len(s.EnvFileSource) > 0 && (len(s.FileSources) > 0 || len(s.LiteralSources) > 0) { - return fmt.Errorf("from-env-file cannot be combined with from-file or from-literal") - } - return nil -} - -// handleConfigMapFromLiteralSources adds the specified literal source -// information into the provided configMap. -func handleConfigMapFromLiteralSources(configMap *v1.ConfigMap, literalSources []string) error { - for _, literalSource := range literalSources { - keyName, value, err := util.ParseLiteralSource(literalSource) - if err != nil { - return err - } - err = addKeyFromLiteralToConfigMap(configMap, keyName, value) - if err != nil { - return err - } - } - return nil -} - -// handleConfigMapFromFileSources adds the specified file source information -// into the provided configMap -func handleConfigMapFromFileSources(configMap *v1.ConfigMap, fileSources []string) error { - for _, fileSource := range fileSources { - keyName, filePath, err := util.ParseFileSource(fileSource) - if err != nil { - return err - } - info, err := os.Stat(filePath) - if err != nil { - switch err := err.(type) { - case *os.PathError: - return fmt.Errorf("error reading %s: %v", filePath, err.Err) - default: - return fmt.Errorf("error reading %s: %v", filePath, err) - } - } - if info.IsDir() { - if strings.Contains(fileSource, "=") { - return fmt.Errorf("cannot give a key name for a directory path.") - } - fileList, err := ioutil.ReadDir(filePath) - if err != nil { - return fmt.Errorf("error listing files in %s: %v", filePath, err) - } - for _, item := range fileList { - itemPath := path.Join(filePath, item.Name()) - if item.Mode().IsRegular() { - keyName = item.Name() - err = addKeyFromFileToConfigMap(configMap, keyName, itemPath) - if err != nil { - return err - } - } - } - } else { - if err := addKeyFromFileToConfigMap(configMap, keyName, filePath); err != nil { - return err - } - } - } - - return nil -} - -// handleConfigMapFromEnvFileSource adds the specified env file source information -// into the provided configMap -func handleConfigMapFromEnvFileSource(configMap *v1.ConfigMap, envFileSource string) error { - info, err := os.Stat(envFileSource) - if err != nil { - switch err := err.(type) { - case *os.PathError: - return fmt.Errorf("error reading %s: %v", envFileSource, err.Err) - default: - return fmt.Errorf("error reading %s: %v", envFileSource, err) - } - } - if info.IsDir() { - return fmt.Errorf("env config file cannot be a directory") - } - - return addFromEnvFile(envFileSource, func(key, value string) error { - return addKeyFromLiteralToConfigMap(configMap, key, value) - }) -} - -// addKeyFromFileToConfigMap adds a key with the given name to a ConfigMap, populating -// the value with the content of the given file path, or returns an error. -func addKeyFromFileToConfigMap(configMap *v1.ConfigMap, keyName, filePath string) error { - data, err := ioutil.ReadFile(filePath) - if err != nil { - return err - } - - if utf8.Valid(data) { - return addKeyFromLiteralToConfigMap(configMap, keyName, string(data)) - } - - err = validateNewConfigMap(configMap, keyName) - if err != nil { - return err - } - configMap.BinaryData[keyName] = data - return nil -} - -// addKeyFromLiteralToConfigMap adds the given key and data to the given config map, -// returning an error if the key is not valid or if the key already exists. -func addKeyFromLiteralToConfigMap(configMap *v1.ConfigMap, keyName, data string) error { - err := validateNewConfigMap(configMap, keyName) - if err != nil { - return err - } - configMap.Data[keyName] = data - return nil -} - -func validateNewConfigMap(configMap *v1.ConfigMap, keyName string) error { - // Note, the rules for ConfigMap keys are the exact same as the ones for SecretKeys. - if errs := validation.IsConfigMapKey(keyName); len(errs) != 0 { - return fmt.Errorf("%q is not a valid key name for a ConfigMap: %s", keyName, strings.Join(errs, ";")) - } - - if _, exists := configMap.Data[keyName]; exists { - return fmt.Errorf("cannot add key %q, another key by that name already exists in Data for ConfigMap %q", keyName, configMap.Name) - } - if _, exists := configMap.BinaryData[keyName]; exists { - return fmt.Errorf("cannot add key %q, another key by that name already exists in BinaryData for ConfigMap %q", keyName, configMap.Name) - } - return nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/deployment.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/deployment.go deleted file mode 100644 index c6bae8885d..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/deployment.go +++ /dev/null @@ -1,193 +0,0 @@ -/* -Copyright 2016 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. -*/ - -package versioned - -import ( - "fmt" - "strings" - - appsv1 "k8s.io/api/apps/v1" - appsv1beta1 "k8s.io/api/apps/v1beta1" - "k8s.io/api/core/v1" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - utilrand "k8s.io/apimachinery/pkg/util/rand" - "k8s.io/kubectl/pkg/generate" -) - -// BaseDeploymentGenerator implements the common functionality of -// DeploymentBasicGeneratorV1, DeploymentBasicAppsGeneratorV1Beta1 and DeploymentBasicAppsGeneratorV1. To reduce -// confusion, it's best to keep this struct in the same file as those -// generators. -type BaseDeploymentGenerator struct { - Name string - Images []string -} - -// validate: check if the caller has forgotten to set one of our fields. -func (b BaseDeploymentGenerator) validate() error { - if len(b.Name) == 0 { - return fmt.Errorf("name must be specified") - } - if len(b.Images) == 0 { - return fmt.Errorf("at least one image must be specified") - } - return nil -} - -// structuredGenerate: determine the fields of a deployment. The struct that -// embeds BaseDeploymentGenerator should assemble these pieces into a -// runtime.Object. -func (b BaseDeploymentGenerator) structuredGenerate() ( - podSpec v1.PodSpec, - labels map[string]string, - selector metav1.LabelSelector, - err error, -) { - err = b.validate() - if err != nil { - return - } - podSpec = buildPodSpec(b.Images) - labels = map[string]string{} - labels["app"] = b.Name - selector = metav1.LabelSelector{MatchLabels: labels} - return -} - -// buildPodSpec: parse the image strings and assemble them into the Containers -// of a PodSpec. This is all you need to create the PodSpec for a deployment. -func buildPodSpec(images []string) v1.PodSpec { - podSpec := v1.PodSpec{Containers: []v1.Container{}} - for _, imageString := range images { - // Retain just the image name - imageSplit := strings.Split(imageString, "/") - name := imageSplit[len(imageSplit)-1] - // Remove any tag or hash - if strings.Contains(name, ":") { - name = strings.Split(name, ":")[0] - } - if strings.Contains(name, "@") { - name = strings.Split(name, "@")[0] - } - name = sanitizeAndUniquify(name) - podSpec.Containers = append(podSpec.Containers, v1.Container{Name: name, Image: imageString}) - } - return podSpec -} - -// sanitizeAndUniquify: replaces characters like "." or "_" into "-" to follow DNS1123 rules. -// Then add random suffix to make it uniquified. -func sanitizeAndUniquify(name string) string { - if strings.Contains(name, "_") || strings.Contains(name, ".") { - name = strings.Replace(name, "_", "-", -1) - name = strings.Replace(name, ".", "-", -1) - name = fmt.Sprintf("%s-%s", name, utilrand.String(5)) - } - return name -} - -// DeploymentBasicGeneratorV1 supports stable generation of a deployment -type DeploymentBasicGeneratorV1 struct { - BaseDeploymentGenerator -} - -// Ensure it supports the generator pattern that uses parameters specified during construction -var _ generate.StructuredGenerator = &DeploymentBasicGeneratorV1{} - -// StructuredGenerate outputs a deployment object using the configured fields -func (s *DeploymentBasicGeneratorV1) StructuredGenerate() (runtime.Object, error) { - podSpec, labels, selector, err := s.structuredGenerate() - one := int32(1) - return &extensionsv1beta1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: s.Name, - Labels: labels, - }, - Spec: extensionsv1beta1.DeploymentSpec{ - Replicas: &one, - Selector: &selector, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: labels, - }, - Spec: podSpec, - }, - }, - }, err -} - -// DeploymentBasicAppsGeneratorV1Beta1 supports stable generation of a deployment under apps/v1beta1 endpoint -type DeploymentBasicAppsGeneratorV1Beta1 struct { - BaseDeploymentGenerator -} - -// Ensure it supports the generator pattern that uses parameters specified during construction -var _ generate.StructuredGenerator = &DeploymentBasicAppsGeneratorV1Beta1{} - -// StructuredGenerate outputs a deployment object using the configured fields -func (s *DeploymentBasicAppsGeneratorV1Beta1) StructuredGenerate() (runtime.Object, error) { - podSpec, labels, selector, err := s.structuredGenerate() - one := int32(1) - return &appsv1beta1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: s.Name, - Labels: labels, - }, - Spec: appsv1beta1.DeploymentSpec{ - Replicas: &one, - Selector: &selector, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: labels, - }, - Spec: podSpec, - }, - }, - }, err -} - -// DeploymentBasicAppsGeneratorV1 supports stable generation of a deployment under apps/v1 endpoint -type DeploymentBasicAppsGeneratorV1 struct { - BaseDeploymentGenerator -} - -// Ensure it supports the generator pattern that uses parameters specified during construction -var _ generate.StructuredGenerator = &DeploymentBasicAppsGeneratorV1{} - -// StructuredGenerate outputs a deployment object using the configured fields -func (s *DeploymentBasicAppsGeneratorV1) StructuredGenerate() (runtime.Object, error) { - podSpec, labels, selector, err := s.structuredGenerate() - one := int32(1) - return &appsv1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: s.Name, - Labels: labels, - }, - Spec: appsv1.DeploymentSpec{ - Replicas: &one, - Selector: &selector, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: labels, - }, - Spec: podSpec, - }, - }, - }, err -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/generator.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/generator.go deleted file mode 100644 index 20856d39bb..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/generator.go +++ /dev/null @@ -1,171 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package versioned - -import ( - "fmt" - "io" - - appsv1 "k8s.io/api/apps/v1" - appsv1beta1 "k8s.io/api/apps/v1beta1" - apierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/discovery" - "k8s.io/kubectl/pkg/generate" -) - -// GeneratorFn gives a way to easily override the function for unit testing if needed -var GeneratorFn generate.GeneratorFunc = DefaultGenerators - -const ( - // TODO(sig-cli): Enforce consistent naming for generators here. - // See discussion in https://github.com/kubernetes/kubernetes/issues/46237 - // before you add any more. - RunPodV1GeneratorName = "run-pod/v1" - ServiceV1GeneratorName = "service/v1" - ServiceV2GeneratorName = "service/v2" - ServiceNodePortGeneratorV1Name = "service-nodeport/v1" - ServiceClusterIPGeneratorV1Name = "service-clusterip/v1" - ServiceLoadBalancerGeneratorV1Name = "service-loadbalancer/v1" - ServiceExternalNameGeneratorV1Name = "service-externalname/v1" - ServiceAccountV1GeneratorName = "serviceaccount/v1" - HorizontalPodAutoscalerV1GeneratorName = "horizontalpodautoscaler/v1" - DeploymentBasicV1Beta1GeneratorName = "deployment-basic/v1beta1" - DeploymentBasicAppsV1Beta1GeneratorName = "deployment-basic/apps.v1beta1" - DeploymentBasicAppsV1GeneratorName = "deployment-basic/apps.v1" - NamespaceV1GeneratorName = "namespace/v1" - ResourceQuotaV1GeneratorName = "resourcequotas/v1" - SecretV1GeneratorName = "secret/v1" - SecretForDockerRegistryV1GeneratorName = "secret-for-docker-registry/v1" - SecretForTLSV1GeneratorName = "secret-for-tls/v1" - ConfigMapV1GeneratorName = "configmap/v1" - ClusterRoleBindingV1GeneratorName = "clusterrolebinding.rbac.authorization.k8s.io/v1alpha1" - RoleBindingV1GeneratorName = "rolebinding.rbac.authorization.k8s.io/v1alpha1" - PodDisruptionBudgetV1GeneratorName = "poddisruptionbudget/v1beta1" - PodDisruptionBudgetV2GeneratorName = "poddisruptionbudget/v1beta1/v2" - PriorityClassV1Alpha1GeneratorName = "priorityclass/v1alpha1" - PriorityClassV1Beta1GeneratorName = "priorityclass/v1beta1" - PriorityClassV1GeneratorName = "priorityclass/v1" -) - -// DefaultGenerators returns the set of default generators for use in Factory instances -func DefaultGenerators(cmdName string) map[string]generate.Generator { - var generator map[string]generate.Generator - switch cmdName { - case "expose": - generator = map[string]generate.Generator{ - ServiceV1GeneratorName: ServiceGeneratorV1{}, - ServiceV2GeneratorName: ServiceGeneratorV2{}, - } - case "service-clusterip": - generator = map[string]generate.Generator{ - ServiceClusterIPGeneratorV1Name: ServiceClusterIPGeneratorV1{}, - } - case "service-nodeport": - generator = map[string]generate.Generator{ - ServiceNodePortGeneratorV1Name: ServiceNodePortGeneratorV1{}, - } - case "service-loadbalancer": - generator = map[string]generate.Generator{ - ServiceLoadBalancerGeneratorV1Name: ServiceLoadBalancerGeneratorV1{}, - } - case "deployment": - // Create Deployment has only StructuredGenerators and no - // param-based Generators. - // The StructuredGenerators are as follows (as of 2018-03-16): - // DeploymentBasicV1Beta1GeneratorName -> DeploymentBasicGeneratorV1 - // DeploymentBasicAppsV1Beta1GeneratorName -> DeploymentBasicAppsGeneratorV1Beta1 - // DeploymentBasicAppsV1GeneratorName -> DeploymentBasicAppsGeneratorV1 - generator = map[string]generate.Generator{} - case "run": - generator = map[string]generate.Generator{ - RunPodV1GeneratorName: BasicPod{}, - } - case "namespace": - generator = map[string]generate.Generator{ - NamespaceV1GeneratorName: NamespaceGeneratorV1{}, - } - case "quota": - generator = map[string]generate.Generator{ - ResourceQuotaV1GeneratorName: ResourceQuotaGeneratorV1{}, - } - case "secret": - generator = map[string]generate.Generator{ - SecretV1GeneratorName: SecretGeneratorV1{}, - } - case "secret-for-docker-registry": - generator = map[string]generate.Generator{ - SecretForDockerRegistryV1GeneratorName: SecretForDockerRegistryGeneratorV1{}, - } - case "secret-for-tls": - generator = map[string]generate.Generator{ - SecretForTLSV1GeneratorName: SecretForTLSGeneratorV1{}, - } - } - - return generator -} - -// FallbackGeneratorNameIfNecessary returns the name of the old generator -// if server does not support new generator. Otherwise, the -// generator string is returned unchanged. -// -// If the generator name is changed, print a warning message to let the user -// know. -func FallbackGeneratorNameIfNecessary( - generatorName string, - discoveryClient discovery.DiscoveryInterface, - cmdErr io.Writer, -) (string, error) { - switch generatorName { - case DeploymentBasicAppsV1GeneratorName: - hasResource, err := HasResource(discoveryClient, appsv1.SchemeGroupVersion.WithResource("deployments")) - if err != nil { - return "", err - } - if !hasResource { - return FallbackGeneratorNameIfNecessary(DeploymentBasicAppsV1Beta1GeneratorName, discoveryClient, cmdErr) - } - case DeploymentBasicAppsV1Beta1GeneratorName: - hasResource, err := HasResource(discoveryClient, appsv1beta1.SchemeGroupVersion.WithResource("deployments")) - if err != nil { - return "", err - } - if !hasResource { - return DeploymentBasicV1Beta1GeneratorName, nil - } - } - return generatorName, nil -} - -func HasResource(client discovery.DiscoveryInterface, resource schema.GroupVersionResource) (bool, error) { - resources, err := client.ServerResourcesForGroupVersion(resource.GroupVersion().String()) - if apierrors.IsNotFound(err) { - // entire group is missing - return false, nil - } - if err != nil { - // other errors error - return false, fmt.Errorf("failed to discover supported resources: %v", err) - } - for _, serverResource := range resources.APIResources { - if serverResource.Name == resource.Resource { - return true, nil - } - } - return false, nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/namespace.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/namespace.go deleted file mode 100644 index 23cdbfa5ae..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/namespace.go +++ /dev/null @@ -1,80 +0,0 @@ -/* -Copyright 2015 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. -*/ - -package versioned - -import ( - "fmt" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubectl/pkg/generate" -) - -// NamespaceGeneratorV1 supports stable generation of a namespace -type NamespaceGeneratorV1 struct { - // Name of namespace - Name string -} - -// Ensure it supports the generator pattern that uses parameter injection -var _ generate.Generator = &NamespaceGeneratorV1{} - -// Ensure it supports the generator pattern that uses parameters specified during construction -var _ generate.StructuredGenerator = &NamespaceGeneratorV1{} - -// Generate returns a namespace using the specified parameters -func (g NamespaceGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(g.ParamNames(), genericParams) - if err != nil { - return nil, err - } - params := map[string]string{} - for key, value := range genericParams { - strVal, isString := value.(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key) - } - params[key] = strVal - } - delegate := &NamespaceGeneratorV1{Name: params["name"]} - return delegate.StructuredGenerate() -} - -// ParamNames returns the set of supported input parameters when using the parameter injection generator pattern -func (g NamespaceGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - } -} - -// StructuredGenerate outputs a namespace object using the configured fields -func (g *NamespaceGeneratorV1) StructuredGenerate() (runtime.Object, error) { - if err := g.validate(); err != nil { - return nil, err - } - namespace := &v1.Namespace{} - namespace.Name = g.Name - return namespace, nil -} - -// validate validates required fields are set to support structured generation -func (g *NamespaceGeneratorV1) validate() error { - if len(g.Name) == 0 { - return fmt.Errorf("name must be specified") - } - return nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/pdb.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/pdb.go deleted file mode 100644 index a28fcefcc1..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/pdb.go +++ /dev/null @@ -1,214 +0,0 @@ -/* -Copyright 2016 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. -*/ - -package versioned - -import ( - "fmt" - - policy "k8s.io/api/policy/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubectl/pkg/generate" -) - -// PodDisruptionBudgetV1Generator supports stable generation of a pod disruption budget. -type PodDisruptionBudgetV1Generator struct { - Name string - MinAvailable string - Selector string -} - -// Ensure it supports the generator pattern that uses parameters specified during construction. -var _ generate.StructuredGenerator = &PodDisruptionBudgetV1Generator{} - -func (PodDisruptionBudgetV1Generator) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "min-available", Required: false}, - {Name: "selector", Required: true}, - } -} - -func (s PodDisruptionBudgetV1Generator) Generate(params map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), params) - if err != nil { - return nil, err - } - name, isString := params["name"].(string) - if !isString { - return nil, fmt.Errorf("expected string, found %T for 'name'", params["name"]) - } - minAvailable, isString := params["min-available"].(string) - if !isString { - return nil, fmt.Errorf("expected string, found %T for 'min-available'", params["min-available"]) - } - selector, isString := params["selector"].(string) - if !isString { - return nil, fmt.Errorf("expected string, found %T for 'selector'", params["selector"]) - } - delegate := &PodDisruptionBudgetV1Generator{Name: name, MinAvailable: minAvailable, Selector: selector} - return delegate.StructuredGenerate() -} - -// StructuredGenerate outputs a pod disruption budget object using the configured fields. -func (s *PodDisruptionBudgetV1Generator) StructuredGenerate() (runtime.Object, error) { - if len(s.MinAvailable) == 0 { - // defaulting behavior seen in Kubernetes 1.6 and below. - s.MinAvailable = "1" - } - - if err := s.validate(); err != nil { - return nil, err - } - - selector, err := metav1.ParseToLabelSelector(s.Selector) - if err != nil { - return nil, err - } - - minAvailable := intstr.Parse(s.MinAvailable) - return &policy.PodDisruptionBudget{ - ObjectMeta: metav1.ObjectMeta{ - Name: s.Name, - }, - Spec: policy.PodDisruptionBudgetSpec{ - MinAvailable: &minAvailable, - Selector: selector, - }, - }, nil -} - -// validate validates required fields are set to support structured generation. -func (s *PodDisruptionBudgetV1Generator) validate() error { - if len(s.Name) == 0 { - return fmt.Errorf("name must be specified") - } - if len(s.Selector) == 0 { - return fmt.Errorf("a selector must be specified") - } - if len(s.MinAvailable) == 0 { - return fmt.Errorf("the minimum number of available pods required must be specified") - } - return nil -} - -// PodDisruptionBudgetV2Generator supports stable generation of a pod disruption budget. -type PodDisruptionBudgetV2Generator struct { - Name string - MinAvailable string - MaxUnavailable string - Selector string -} - -// Ensure it supports the generator pattern that uses parameters specified during construction. -var _ generate.StructuredGenerator = &PodDisruptionBudgetV2Generator{} - -func (PodDisruptionBudgetV2Generator) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "min-available", Required: false}, - {Name: "max-unavailable", Required: false}, - {Name: "selector", Required: true}, - } -} - -func (s PodDisruptionBudgetV2Generator) Generate(params map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), params) - if err != nil { - return nil, err - } - - name, isString := params["name"].(string) - if !isString { - return nil, fmt.Errorf("expected string, found %T for 'name'", params["name"]) - } - - minAvailable, isString := params["min-available"].(string) - if !isString { - return nil, fmt.Errorf("expected string, found %T for 'min-available'", params["min-available"]) - } - - maxUnavailable, isString := params["max-unavailable"].(string) - if !isString { - return nil, fmt.Errorf("expected string, found %T for 'max-unavailable'", params["max-unavailable"]) - } - - selector, isString := params["selector"].(string) - if !isString { - return nil, fmt.Errorf("expected string, found %T for 'selector'", params["selector"]) - } - delegate := &PodDisruptionBudgetV2Generator{Name: name, MinAvailable: minAvailable, MaxUnavailable: maxUnavailable, Selector: selector} - return delegate.StructuredGenerate() -} - -// StructuredGenerate outputs a pod disruption budget object using the configured fields. -func (s *PodDisruptionBudgetV2Generator) StructuredGenerate() (runtime.Object, error) { - if err := s.validate(); err != nil { - return nil, err - } - - selector, err := metav1.ParseToLabelSelector(s.Selector) - if err != nil { - return nil, err - } - - if len(s.MaxUnavailable) > 0 { - maxUnavailable := intstr.Parse(s.MaxUnavailable) - return &policy.PodDisruptionBudget{ - ObjectMeta: metav1.ObjectMeta{ - Name: s.Name, - }, - Spec: policy.PodDisruptionBudgetSpec{ - MaxUnavailable: &maxUnavailable, - Selector: selector, - }, - }, nil - } - - if len(s.MinAvailable) > 0 { - minAvailable := intstr.Parse(s.MinAvailable) - return &policy.PodDisruptionBudget{ - ObjectMeta: metav1.ObjectMeta{ - Name: s.Name, - }, - Spec: policy.PodDisruptionBudgetSpec{ - MinAvailable: &minAvailable, - Selector: selector, - }, - }, nil - } - - return nil, err -} - -// validate validates required fields are set to support structured generation. -func (s *PodDisruptionBudgetV2Generator) validate() error { - if len(s.Name) == 0 { - return fmt.Errorf("name must be specified") - } - if len(s.Selector) == 0 { - return fmt.Errorf("a selector must be specified") - } - if len(s.MaxUnavailable) == 0 && len(s.MinAvailable) == 0 { - return fmt.Errorf("one of min-available or max-unavailable must be specified") - } - if len(s.MaxUnavailable) > 0 && len(s.MinAvailable) > 0 { - return fmt.Errorf("min-available and max-unavailable cannot be both specified") - } - return nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/priorityclass.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/priorityclass.go deleted file mode 100644 index a819ece3d4..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/priorityclass.go +++ /dev/null @@ -1,93 +0,0 @@ -/* -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. -*/ - -package versioned - -import ( - "fmt" - - apiv1 "k8s.io/api/core/v1" - scheduling "k8s.io/api/scheduling/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubectl/pkg/generate" -) - -// PriorityClassV1Generator supports stable generation of a priorityClass. -type PriorityClassV1Generator struct { - Name string - Value int32 - GlobalDefault bool - Description string - PreemptionPolicy apiv1.PreemptionPolicy -} - -// Ensure it supports the generator pattern that uses parameters specified during construction. -var _ generate.StructuredGenerator = &PriorityClassV1Generator{} - -func (PriorityClassV1Generator) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "value", Required: true}, - {Name: "global-default", Required: false}, - {Name: "description", Required: false}, - {Name: "preemption-policy", Required: false}, - } -} - -func (s PriorityClassV1Generator) Generate(params map[string]interface{}) (runtime.Object, error) { - if err := generate.ValidateParams(s.ParamNames(), params); err != nil { - return nil, err - } - - name, found := params["name"].(string) - if !found { - return nil, fmt.Errorf("expected string, saw %v for 'name'", name) - } - - value, found := params["value"].(int32) - if !found { - return nil, fmt.Errorf("expected int32, found %v", value) - } - - globalDefault, found := params["global-default"].(bool) - if !found { - return nil, fmt.Errorf("expected bool, found %v", globalDefault) - } - - description, found := params["description"].(string) - if !found { - return nil, fmt.Errorf("expected string, found %v", description) - } - - preemptionPolicy := apiv1.PreemptionPolicy(params["preemption-policy"].(string)) - - delegate := &PriorityClassV1Generator{Name: name, Value: value, GlobalDefault: globalDefault, Description: description, PreemptionPolicy: preemptionPolicy} - return delegate.StructuredGenerate() -} - -// StructuredGenerate outputs a priorityClass object using the configured fields. -func (s *PriorityClassV1Generator) StructuredGenerate() (runtime.Object, error) { - return &scheduling.PriorityClass{ - ObjectMeta: metav1.ObjectMeta{ - Name: s.Name, - }, - Value: s.Value, - GlobalDefault: s.GlobalDefault, - Description: s.Description, - PreemptionPolicy: &s.PreemptionPolicy, - }, nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/quota.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/quota.go deleted file mode 100644 index 1a59b6e37d..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/quota.go +++ /dev/null @@ -1,126 +0,0 @@ -/* -Copyright 2016 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. -*/ - -package versioned - -import ( - "fmt" - "strings" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubectl/pkg/generate" -) - -// ResourceQuotaGeneratorV1 supports stable generation of a resource quota -type ResourceQuotaGeneratorV1 struct { - // The name of a quota object. - Name string - - // The hard resource limit string before parsing. - Hard string - - // The scopes of a quota object before parsing. - Scopes string -} - -// ParamNames returns the set of supported input parameters when using the parameter injection generator pattern -func (g ResourceQuotaGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "hard", Required: true}, - {Name: "scopes", Required: false}, - } -} - -// Ensure it supports the generator pattern that uses parameter injection -var _ generate.Generator = &ResourceQuotaGeneratorV1{} - -// Ensure it supports the generator pattern that uses parameters specified during construction -var _ generate.StructuredGenerator = &ResourceQuotaGeneratorV1{} - -func (g ResourceQuotaGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(g.ParamNames(), genericParams) - if err != nil { - return nil, err - } - - params := map[string]string{} - for key, value := range genericParams { - strVal, isString := value.(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key) - } - params[key] = strVal - } - - delegate := &ResourceQuotaGeneratorV1{} - delegate.Name = params["name"] - delegate.Hard = params["hard"] - delegate.Scopes = params["scopes"] - return delegate.StructuredGenerate() -} - -// StructuredGenerate outputs a ResourceQuota object using the configured fields -func (g *ResourceQuotaGeneratorV1) StructuredGenerate() (runtime.Object, error) { - if err := g.validate(); err != nil { - return nil, err - } - - resourceList, err := populateResourceListV1(g.Hard) - if err != nil { - return nil, err - } - - scopes, err := parseScopes(g.Scopes) - if err != nil { - return nil, err - } - - resourceQuota := &v1.ResourceQuota{} - resourceQuota.Name = g.Name - resourceQuota.Spec.Hard = resourceList - resourceQuota.Spec.Scopes = scopes - return resourceQuota, nil -} - -// validate validates required fields are set to support structured generation -func (r *ResourceQuotaGeneratorV1) validate() error { - if len(r.Name) == 0 { - return fmt.Errorf("name must be specified") - } - return nil -} - -func parseScopes(spec string) ([]v1.ResourceQuotaScope, error) { - // empty input gets a nil response to preserve generator test expected behaviors - if spec == "" { - return nil, nil - } - - scopes := strings.Split(spec, ",") - result := make([]v1.ResourceQuotaScope, 0, len(scopes)) - for _, scope := range scopes { - // intentionally do not verify the scope against the valid scope list. This is done by the apiserver anyway. - - if scope == "" { - return nil, fmt.Errorf("invalid resource quota scope \"\"") - } - - result = append(result, v1.ResourceQuotaScope(scope)) - } - return result, nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/rolebinding.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/rolebinding.go deleted file mode 100644 index f811750c91..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/rolebinding.go +++ /dev/null @@ -1,174 +0,0 @@ -/* -Copyright 2016 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. -*/ - -package versioned - -import ( - "fmt" - - "strings" - - rbacv1 "k8s.io/api/rbac/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubectl/pkg/generate" -) - -// RoleBindingGeneratorV1 supports stable generation of a roleBinding. -type RoleBindingGeneratorV1 struct { - // Name of roleBinding (required) - Name string - // ClusterRole for the roleBinding - ClusterRole string - // Role for the roleBinding - Role string - // Users to derive the roleBinding from (optional) - Users []string - // Groups to derive the roleBinding from (optional) - Groups []string - // ServiceAccounts to derive the roleBinding from in namespace:name format(optional) - ServiceAccounts []string -} - -// Ensure it supports the generator pattern that uses parameter injection. -var _ generate.Generator = &RoleBindingGeneratorV1{} - -// Ensure it supports the generator pattern that uses parameters specified during construction. -var _ generate.StructuredGenerator = &RoleBindingGeneratorV1{} - -// Generate returns a roleBinding using the specified parameters. -func (s RoleBindingGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), genericParams) - if err != nil { - return nil, err - } - delegate := &RoleBindingGeneratorV1{} - userStrings, found := genericParams["user"] - if found { - fromFileArray, isArray := userStrings.([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found :%v", userStrings) - } - delegate.Users = fromFileArray - delete(genericParams, "user") - } - groupStrings, found := genericParams["group"] - if found { - fromLiteralArray, isArray := groupStrings.([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found :%v", groupStrings) - } - delegate.Groups = fromLiteralArray - delete(genericParams, "group") - } - saStrings, found := genericParams["serviceaccount"] - if found { - fromLiteralArray, isArray := saStrings.([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found :%v", saStrings) - } - delegate.ServiceAccounts = fromLiteralArray - delete(genericParams, "serviceaccount") - } - params := map[string]string{} - for key, value := range genericParams { - strVal, isString := value.(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key) - } - params[key] = strVal - } - delegate.Name = params["name"] - delegate.ClusterRole = params["clusterrole"] - delegate.Role = params["role"] - return delegate.StructuredGenerate() -} - -// ParamNames returns the set of supported input parameters when using the parameter injection generator pattern. -func (s RoleBindingGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "clusterrole", Required: false}, - {Name: "role", Required: false}, - {Name: "user", Required: false}, - {Name: "group", Required: false}, - {Name: "serviceaccount", Required: false}, - } -} - -// StructuredGenerate outputs a roleBinding object using the configured fields. -func (s RoleBindingGeneratorV1) StructuredGenerate() (runtime.Object, error) { - if err := s.validate(); err != nil { - return nil, err - } - roleBinding := &rbacv1.RoleBinding{} - roleBinding.Name = s.Name - - switch { - case len(s.Role) > 0: - roleBinding.RoleRef = rbacv1.RoleRef{ - APIGroup: rbacv1.GroupName, - Kind: "Role", - Name: s.Role, - } - case len(s.ClusterRole) > 0: - roleBinding.RoleRef = rbacv1.RoleRef{ - APIGroup: rbacv1.GroupName, - Kind: "ClusterRole", - Name: s.ClusterRole, - } - } - - for _, user := range sets.NewString(s.Users...).List() { - roleBinding.Subjects = append(roleBinding.Subjects, rbacv1.Subject{ - Kind: rbacv1.UserKind, - APIGroup: rbacv1.GroupName, - Name: user, - }) - } - for _, group := range sets.NewString(s.Groups...).List() { - roleBinding.Subjects = append(roleBinding.Subjects, rbacv1.Subject{ - Kind: rbacv1.GroupKind, - APIGroup: rbacv1.GroupName, - Name: group, - }) - } - for _, sa := range sets.NewString(s.ServiceAccounts...).List() { - tokens := strings.Split(sa, ":") - if len(tokens) != 2 || tokens[1] == "" { - return nil, fmt.Errorf("serviceaccount must be :") - } - roleBinding.Subjects = append(roleBinding.Subjects, rbacv1.Subject{ - Kind: rbacv1.ServiceAccountKind, - APIGroup: "", - Namespace: tokens[0], - Name: tokens[1], - }) - } - - return roleBinding, nil -} - -// validate validates required fields are set to support structured generation. -func (s RoleBindingGeneratorV1) validate() error { - if len(s.Name) == 0 { - return fmt.Errorf("name must be specified") - } - if (len(s.ClusterRole) == 0) == (len(s.Role) == 0) { - return fmt.Errorf("exactly one of clusterrole or role must be specified") - } - return nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/run.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/run.go deleted file mode 100644 index b264c52603..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/run.go +++ /dev/null @@ -1,379 +0,0 @@ -/* -Copyright 2014 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. -*/ - -package versioned - -import ( - "fmt" - "strconv" - "strings" - - v1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/validation" - cmdutil "k8s.io/kubectl/pkg/cmd/util" - "k8s.io/kubectl/pkg/generate" -) - -// getLabels returns map of labels. -func getLabels(params map[string]string, name string) (map[string]string, error) { - labelString, found := params["labels"] - var labels map[string]string - var err error - if found && len(labelString) > 0 { - labels, err = generate.ParseLabels(labelString) - if err != nil { - return nil, err - } - } else { - labels = map[string]string{ - "run": name, - } - } - return labels, nil -} - -// getName returns the name of newly created resource. -func getName(params map[string]string) (string, error) { - name, found := params["name"] - if !found || len(name) == 0 { - name, found = params["default-name"] - if !found || len(name) == 0 { - return "", fmt.Errorf("'name' is a required parameter") - } - } - return name, nil -} - -// getParams returns map of generic parameters. -func getParams(genericParams map[string]interface{}) (map[string]string, error) { - params := map[string]string{} - for key, value := range genericParams { - strVal, isString := value.(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key) - } - params[key] = strVal - } - return params, nil -} - -// getArgs returns arguments for the container command. -func getArgs(genericParams map[string]interface{}) ([]string, error) { - args := []string{} - val, found := genericParams["args"] - if found { - var isArray bool - args, isArray = val.([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found: %v", val) - } - delete(genericParams, "args") - } - return args, nil -} - -// getAnnotations returns map of annotations. -func getAnnotations(genericParams map[string]interface{}) (map[string]string, error) { - annotationStrings, ok := genericParams["annotations"] - if !ok { - return nil, nil - } - - annotationStringArray, ok := annotationStrings.([]string) - if !ok { - return nil, fmt.Errorf("expected []string, found: %v", annotationStrings) - } - - annotations, _, err := cmdutil.ParsePairs(annotationStringArray, "annotations", false) - if err != nil { - return nil, err - } - - delete(genericParams, "annotations") - return annotations, nil -} - -// getEnvs returns environment variables. -func getEnvs(genericParams map[string]interface{}) ([]v1.EnvVar, error) { - var envs []v1.EnvVar - envStrings, found := genericParams["env"] - if found { - if envStringArray, isArray := envStrings.([]string); isArray { - var err error - envs, err = parseEnvs(envStringArray) - if err != nil { - return nil, err - } - delete(genericParams, "env") - } else { - return nil, fmt.Errorf("expected []string, found: %v", envStrings) - } - } - return envs, nil -} - -// populateResourceListV1 takes strings of form =,= -// and returns ResourceList. -func populateResourceListV1(spec string) (v1.ResourceList, error) { - // empty input gets a nil response to preserve generator test expected behaviors - if spec == "" { - return nil, nil - } - - result := v1.ResourceList{} - resourceStatements := strings.Split(spec, ",") - for _, resourceStatement := range resourceStatements { - parts := strings.Split(resourceStatement, "=") - if len(parts) != 2 { - return nil, fmt.Errorf("Invalid argument syntax %v, expected =", resourceStatement) - } - resourceName := v1.ResourceName(parts[0]) - resourceQuantity, err := resource.ParseQuantity(parts[1]) - if err != nil { - return nil, err - } - result[resourceName] = resourceQuantity - } - return result, nil -} - -// HandleResourceRequirementsV1 parses the limits and requests parameters if specified -// and returns ResourceRequirements. -func HandleResourceRequirementsV1(params map[string]string) (v1.ResourceRequirements, error) { - result := v1.ResourceRequirements{} - limits, err := populateResourceListV1(params["limits"]) - if err != nil { - return result, err - } - result.Limits = limits - requests, err := populateResourceListV1(params["requests"]) - if err != nil { - return result, err - } - result.Requests = requests - return result, nil -} - -// updatePodContainers updates PodSpec.Containers with passed parameters. -func updatePodContainers(params map[string]string, args []string, envs []v1.EnvVar, imagePullPolicy v1.PullPolicy, podSpec *v1.PodSpec) error { - if len(args) > 0 { - command, err := generate.GetBool(params, "command", false) - if err != nil { - return err - } - if command { - podSpec.Containers[0].Command = args - } else { - podSpec.Containers[0].Args = args - } - } - - if len(envs) > 0 { - podSpec.Containers[0].Env = envs - } - - if len(imagePullPolicy) > 0 { - // imagePullPolicy should be valid here since we have verified it before. - podSpec.Containers[0].ImagePullPolicy = imagePullPolicy - } - return nil -} - -// updatePodContainers updates PodSpec.Containers.Ports with passed parameters. -func updatePodPorts(params map[string]string, podSpec *v1.PodSpec) (err error) { - port := -1 - hostPort := -1 - if len(params["port"]) > 0 { - port, err = strconv.Atoi(params["port"]) - if err != nil { - return err - } - } - - if len(params["hostport"]) > 0 { - hostPort, err = strconv.Atoi(params["hostport"]) - if err != nil { - return err - } - if hostPort > 0 && port < 0 { - return fmt.Errorf("--hostport requires --port to be specified") - } - } - - // Don't include the port if it was not specified. - if len(params["port"]) > 0 { - podSpec.Containers[0].Ports = []v1.ContainerPort{ - { - ContainerPort: int32(port), - }, - } - if hostPort > 0 { - podSpec.Containers[0].Ports[0].HostPort = int32(hostPort) - } - } - return nil -} - -type BasicPod struct{} - -func (BasicPod) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "labels", Required: false}, - {Name: "annotations", Required: false}, - {Name: "default-name", Required: false}, - {Name: "name", Required: true}, - {Name: "image", Required: true}, - {Name: "image-pull-policy", Required: false}, - {Name: "port", Required: false}, - {Name: "hostport", Required: false}, - {Name: "stdin", Required: false}, - {Name: "leave-stdin-open", Required: false}, - {Name: "tty", Required: false}, - {Name: "restart", Required: false}, - {Name: "command", Required: false}, - {Name: "args", Required: false}, - {Name: "env", Required: false}, - {Name: "requests", Required: false}, - {Name: "limits", Required: false}, - {Name: "serviceaccount", Required: false}, - {Name: "privileged", Required: false}, - } -} - -func (BasicPod) Generate(genericParams map[string]interface{}) (runtime.Object, error) { - args, err := getArgs(genericParams) - if err != nil { - return nil, err - } - - envs, err := getEnvs(genericParams) - if err != nil { - return nil, err - } - - annotations, err := getAnnotations(genericParams) - if err != nil { - return nil, err - } - - params, err := getParams(genericParams) - if err != nil { - return nil, err - } - - name, err := getName(params) - if err != nil { - return nil, err - } - - labels, err := getLabels(params, name) - if err != nil { - return nil, err - } - - stdin, err := generate.GetBool(params, "stdin", false) - if err != nil { - return nil, err - } - leaveStdinOpen, err := generate.GetBool(params, "leave-stdin-open", false) - if err != nil { - return nil, err - } - - tty, err := generate.GetBool(params, "tty", false) - if err != nil { - return nil, err - } - - resourceRequirements, err := HandleResourceRequirementsV1(params) - if err != nil { - return nil, err - } - - restartPolicy := v1.RestartPolicy(params["restart"]) - if len(restartPolicy) == 0 { - restartPolicy = v1.RestartPolicyAlways - } - - privileged, err := generate.GetBool(params, "privileged", false) - if err != nil { - return nil, err - } - var securityContext *v1.SecurityContext - if privileged { - securityContext = &v1.SecurityContext{ - Privileged: &privileged, - } - } - - pod := v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: labels, - Annotations: annotations, - }, - Spec: v1.PodSpec{ - ServiceAccountName: params["serviceaccount"], - Containers: []v1.Container{ - { - Name: name, - Image: params["image"], - Stdin: stdin, - StdinOnce: !leaveStdinOpen && stdin, - TTY: tty, - Resources: resourceRequirements, - SecurityContext: securityContext, - }, - }, - DNSPolicy: v1.DNSClusterFirst, - RestartPolicy: restartPolicy, - }, - } - imagePullPolicy := v1.PullPolicy(params["image-pull-policy"]) - if err = updatePodContainers(params, args, envs, imagePullPolicy, &pod.Spec); err != nil { - return nil, err - } - - if err := updatePodPorts(params, &pod.Spec); err != nil { - return nil, err - } - return &pod, nil -} - -// parseEnvs converts string into EnvVar objects. -func parseEnvs(envArray []string) ([]v1.EnvVar, error) { - envs := make([]v1.EnvVar, 0, len(envArray)) - for _, env := range envArray { - pos := strings.Index(env, "=") - if pos == -1 { - return nil, fmt.Errorf("invalid env: %v", env) - } - name := env[:pos] - value := env[pos+1:] - if len(name) == 0 { - return nil, fmt.Errorf("invalid env: %v", env) - } - if len(validation.IsEnvVarName(name)) != 0 { - return nil, fmt.Errorf("invalid env: %v", env) - } - envVar := v1.EnvVar{Name: name, Value: value} - envs = append(envs, envVar) - } - return envs, nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/secret.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/secret.go deleted file mode 100644 index 9acaecf337..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/secret.go +++ /dev/null @@ -1,272 +0,0 @@ -/* -Copyright 2015 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. -*/ - -package versioned - -import ( - "fmt" - "io/ioutil" - "os" - "path" - "strings" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/kubectl/pkg/generate" - "k8s.io/kubectl/pkg/util" - "k8s.io/kubectl/pkg/util/hash" -) - -// SecretGeneratorV1 supports stable generation of an opaque secret -type SecretGeneratorV1 struct { - // Name of secret (required) - Name string - // Type of secret (optional) - Type string - // FileSources to derive the secret from (optional) - FileSources []string - // LiteralSources to derive the secret from (optional) - LiteralSources []string - // EnvFileSource to derive the secret from (optional) - EnvFileSource string - // AppendHash; if true, derive a hash from the Secret data and type and append it to the name - AppendHash bool -} - -// Ensure it supports the generator pattern that uses parameter injection -var _ generate.Generator = &SecretGeneratorV1{} - -// Ensure it supports the generator pattern that uses parameters specified during construction -var _ generate.StructuredGenerator = &SecretGeneratorV1{} - -// Generate returns a secret using the specified parameters -func (s SecretGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), genericParams) - if err != nil { - return nil, err - } - delegate := &SecretGeneratorV1{} - fromFileStrings, found := genericParams["from-file"] - if found { - fromFileArray, isArray := fromFileStrings.([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found :%v", fromFileStrings) - } - delegate.FileSources = fromFileArray - delete(genericParams, "from-file") - } - fromLiteralStrings, found := genericParams["from-literal"] - if found { - fromLiteralArray, isArray := fromLiteralStrings.([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found :%v", fromLiteralStrings) - } - delegate.LiteralSources = fromLiteralArray - delete(genericParams, "from-literal") - } - fromEnvFileString, found := genericParams["from-env-file"] - if found { - fromEnvFile, isString := fromEnvFileString.(string) - if !isString { - return nil, fmt.Errorf("expected string, found :%v", fromEnvFileString) - } - delegate.EnvFileSource = fromEnvFile - delete(genericParams, "from-env-file") - } - - hashParam, found := genericParams["append-hash"] - if found { - hashBool, isBool := hashParam.(bool) - if !isBool { - return nil, fmt.Errorf("expected bool, found :%v", hashParam) - } - delegate.AppendHash = hashBool - delete(genericParams, "append-hash") - } - - params := map[string]string{} - for key, value := range genericParams { - strVal, isString := value.(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key) - } - params[key] = strVal - } - delegate.Name = params["name"] - delegate.Type = params["type"] - - return delegate.StructuredGenerate() -} - -// ParamNames returns the set of supported input parameters when using the parameter injection generator pattern -func (s SecretGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "type", Required: false}, - {Name: "from-file", Required: false}, - {Name: "from-literal", Required: false}, - {Name: "from-env-file", Required: false}, - {Name: "force", Required: false}, - {Name: "append-hash", Required: false}, - } -} - -// StructuredGenerate outputs a secret object using the configured fields -func (s SecretGeneratorV1) StructuredGenerate() (runtime.Object, error) { - if err := s.validate(); err != nil { - return nil, err - } - secret := &v1.Secret{} - secret.SetGroupVersionKind(v1.SchemeGroupVersion.WithKind("Secret")) - secret.Name = s.Name - secret.Data = map[string][]byte{} - if len(s.Type) > 0 { - secret.Type = v1.SecretType(s.Type) - } - if len(s.FileSources) > 0 { - if err := handleFromFileSources(secret, s.FileSources); err != nil { - return nil, err - } - } - if len(s.LiteralSources) > 0 { - if err := handleFromLiteralSources(secret, s.LiteralSources); err != nil { - return nil, err - } - } - if len(s.EnvFileSource) > 0 { - if err := handleFromEnvFileSource(secret, s.EnvFileSource); err != nil { - return nil, err - } - } - if s.AppendHash { - h, err := hash.SecretHash(secret) - if err != nil { - return nil, err - } - secret.Name = fmt.Sprintf("%s-%s", secret.Name, h) - } - return secret, nil -} - -// validate validates required fields are set to support structured generation -func (s SecretGeneratorV1) validate() error { - if len(s.Name) == 0 { - return fmt.Errorf("name must be specified") - } - if len(s.EnvFileSource) > 0 && (len(s.FileSources) > 0 || len(s.LiteralSources) > 0) { - return fmt.Errorf("from-env-file cannot be combined with from-file or from-literal") - } - return nil -} - -// handleFromLiteralSources adds the specified literal source information into the provided secret -func handleFromLiteralSources(secret *v1.Secret, literalSources []string) error { - for _, literalSource := range literalSources { - keyName, value, err := util.ParseLiteralSource(literalSource) - if err != nil { - return err - } - if err = addKeyFromLiteralToSecret(secret, keyName, []byte(value)); err != nil { - return err - } - } - return nil -} - -// handleFromFileSources adds the specified file source information into the provided secret -func handleFromFileSources(secret *v1.Secret, fileSources []string) error { - for _, fileSource := range fileSources { - keyName, filePath, err := util.ParseFileSource(fileSource) - if err != nil { - return err - } - info, err := os.Stat(filePath) - if err != nil { - switch err := err.(type) { - case *os.PathError: - return fmt.Errorf("error reading %s: %v", filePath, err.Err) - default: - return fmt.Errorf("error reading %s: %v", filePath, err) - } - } - if info.IsDir() { - if strings.Contains(fileSource, "=") { - return fmt.Errorf("cannot give a key name for a directory path") - } - fileList, err := ioutil.ReadDir(filePath) - if err != nil { - return fmt.Errorf("error listing files in %s: %v", filePath, err) - } - for _, item := range fileList { - itemPath := path.Join(filePath, item.Name()) - if item.Mode().IsRegular() { - keyName = item.Name() - if err = addKeyFromFileToSecret(secret, keyName, itemPath); err != nil { - return err - } - } - } - } else { - if err := addKeyFromFileToSecret(secret, keyName, filePath); err != nil { - return err - } - } - } - - return nil -} - -// handleFromEnvFileSource adds the specified env file source information -// into the provided secret -func handleFromEnvFileSource(secret *v1.Secret, envFileSource string) error { - info, err := os.Stat(envFileSource) - if err != nil { - switch err := err.(type) { - case *os.PathError: - return fmt.Errorf("error reading %s: %v", envFileSource, err.Err) - default: - return fmt.Errorf("error reading %s: %v", envFileSource, err) - } - } - if info.IsDir() { - return fmt.Errorf("env secret file cannot be a directory") - } - - return addFromEnvFile(envFileSource, func(key, value string) error { - return addKeyFromLiteralToSecret(secret, key, []byte(value)) - }) -} - -func addKeyFromFileToSecret(secret *v1.Secret, keyName, filePath string) error { - data, err := ioutil.ReadFile(filePath) - if err != nil { - return err - } - return addKeyFromLiteralToSecret(secret, keyName, data) -} - -func addKeyFromLiteralToSecret(secret *v1.Secret, keyName string, data []byte) error { - if errs := validation.IsConfigMapKey(keyName); len(errs) != 0 { - return fmt.Errorf("%q is not a valid key name for a Secret: %s", keyName, strings.Join(errs, ";")) - } - - if _, entryExists := secret.Data[keyName]; entryExists { - return fmt.Errorf("cannot add key %s, another key by that name already exists", keyName) - } - secret.Data[keyName] = data - return nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/secret_for_docker_registry.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/secret_for_docker_registry.go deleted file mode 100644 index 67f689903c..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/secret_for_docker_registry.go +++ /dev/null @@ -1,189 +0,0 @@ -/* -Copyright 2015 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. -*/ - -package versioned - -import ( - "encoding/base64" - "encoding/json" - "fmt" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubectl/pkg/generate" - "k8s.io/kubectl/pkg/util/hash" -) - -// SecretForDockerRegistryGeneratorV1 supports stable generation of a docker registry secret -type SecretForDockerRegistryGeneratorV1 struct { - // Name of secret (required) - Name string - // FileSources to derive the secret from (optional) - FileSources []string - // Username for registry (required) - Username string - // Email for registry (optional) - Email string - // Password for registry (required) - Password string `datapolicy:"password"` - // Server for registry (required) - Server string - // AppendHash; if true, derive a hash from the Secret and append it to the name - AppendHash bool -} - -// Ensure it supports the generator pattern that uses parameter injection -var _ generate.Generator = &SecretForDockerRegistryGeneratorV1{} - -// Ensure it supports the generator pattern that uses parameters specified during construction -var _ generate.StructuredGenerator = &SecretForDockerRegistryGeneratorV1{} - -// Generate returns a secret using the specified parameters -func (s SecretForDockerRegistryGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), genericParams) - if err != nil { - return nil, err - } - delegate := &SecretForDockerRegistryGeneratorV1{} - hashParam, found := genericParams["append-hash"] - if found { - hashBool, isBool := hashParam.(bool) - if !isBool { - return nil, fmt.Errorf("expected bool, found :%v", hashParam) - } - delegate.AppendHash = hashBool - delete(genericParams, "append-hash") - } - params := map[string]string{} - for key, value := range genericParams { - strVal, isString := value.(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key) - } - params[key] = strVal - } - delegate.Name = params["name"] - delegate.Username = params["docker-username"] - delegate.Email = params["docker-email"] - delegate.Password = params["docker-password"] - delegate.Server = params["docker-server"] - return delegate.StructuredGenerate() -} - -// StructuredGenerate outputs a secret object using the configured fields -func (s SecretForDockerRegistryGeneratorV1) StructuredGenerate() (runtime.Object, error) { - if err := s.validate(); err != nil { - return nil, err - } - secret := &v1.Secret{} - secret.Name = s.Name - secret.Type = v1.SecretTypeDockerConfigJson - secret.Data = map[string][]byte{} - if len(s.FileSources) > 0 { - if err := handleFromFileSources(secret, s.FileSources); err != nil { - return nil, err - } - } - if len(s.FileSources) == 0 { - dockercfgJSONContent, err := handleDockerCfgJSONContent(s.Username, s.Password, s.Email, s.Server) - if err != nil { - return nil, err - } - secret.Data[v1.DockerConfigJsonKey] = dockercfgJSONContent - } - if s.AppendHash { - h, err := hash.SecretHash(secret) - if err != nil { - return nil, err - } - secret.Name = fmt.Sprintf("%s-%s", secret.Name, h) - } - return secret, nil -} - -// ParamNames returns the set of supported input parameters when using the parameter injection generator pattern -func (s SecretForDockerRegistryGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "from-file", Required: false}, - {Name: "docker-username", Required: true}, - {Name: "docker-email", Required: false}, - {Name: "docker-password", Required: true}, - {Name: "docker-server", Required: true}, - {Name: "append-hash", Required: false}, - } -} - -// validate validates required fields are set to support structured generation -func (s SecretForDockerRegistryGeneratorV1) validate() error { - if len(s.Name) == 0 { - return fmt.Errorf("name must be specified") - } - - if len(s.FileSources) == 0 { - if len(s.Username) == 0 { - return fmt.Errorf("username must be specified") - } - if len(s.Password) == 0 { - return fmt.Errorf("password must be specified") - } - if len(s.Server) == 0 { - return fmt.Errorf("server must be specified") - } - } - return nil -} - -// handleDockerCfgJSONContent serializes a ~/.docker/config.json file -func handleDockerCfgJSONContent(username, password, email, server string) ([]byte, error) { - dockercfgAuth := DockerConfigEntry{ - Username: username, - Password: password, - Email: email, - Auth: encodeDockerConfigFieldAuth(username, password), - } - - dockerCfgJSON := DockerConfigJSON{ - Auths: map[string]DockerConfigEntry{server: dockercfgAuth}, - } - - return json.Marshal(dockerCfgJSON) -} - -func encodeDockerConfigFieldAuth(username, password string) string { - fieldValue := username + ":" + password - return base64.StdEncoding.EncodeToString([]byte(fieldValue)) -} - -// DockerConfigJSON represents a local docker auth config file -// for pulling images. -type DockerConfigJSON struct { - Auths DockerConfig `json:"auths" datapolicy:"token"` - // +optional - HttpHeaders map[string]string `json:"HttpHeaders,omitempty" datapolicy:"token"` -} - -// DockerConfig represents the config file used by the docker CLI. -// This config that represents the credentials that should be used -// when pulling images from specific image repositories. -type DockerConfig map[string]DockerConfigEntry - -type DockerConfigEntry struct { - Username string `json:"username,omitempty"` - Password string `json:"password,omitempty" datapolicy:"password"` - Email string `json:"email,omitempty"` - Auth string `json:"auth,omitempty" datapolicy:"token"` -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/secret_for_tls.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/secret_for_tls.go deleted file mode 100644 index 7c65f0b41c..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/secret_for_tls.go +++ /dev/null @@ -1,146 +0,0 @@ -/* -Copyright 2015 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. -*/ - -package versioned - -import ( - "crypto/tls" - "fmt" - "io/ioutil" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubectl/pkg/generate" - "k8s.io/kubectl/pkg/util/hash" -) - -// SecretForTLSGeneratorV1 supports stable generation of a TLS secret. -type SecretForTLSGeneratorV1 struct { - // Name is the name of this TLS secret. - Name string - // Key is the path to the user's private key. - Key string - // Cert is the path to the user's public key certificate. - Cert string - // AppendHash; if true, derive a hash from the Secret and append it to the name - AppendHash bool -} - -// Ensure it supports the generator pattern that uses parameter injection -var _ generate.Generator = &SecretForTLSGeneratorV1{} - -// Ensure it supports the generator pattern that uses parameters specified during construction -var _ generate.StructuredGenerator = &SecretForTLSGeneratorV1{} - -// Generate returns a secret using the specified parameters -func (s SecretForTLSGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), genericParams) - if err != nil { - return nil, err - } - delegate := &SecretForTLSGeneratorV1{} - hashParam, found := genericParams["append-hash"] - if found { - hashBool, isBool := hashParam.(bool) - if !isBool { - return nil, fmt.Errorf("expected bool, found :%v", hashParam) - } - delegate.AppendHash = hashBool - delete(genericParams, "append-hash") - } - params := map[string]string{} - for key, value := range genericParams { - strVal, isString := value.(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key) - } - params[key] = strVal - } - delegate.Name = params["name"] - delegate.Key = params["key"] - delegate.Cert = params["cert"] - return delegate.StructuredGenerate() -} - -// StructuredGenerate outputs a secret object using the configured fields -func (s SecretForTLSGeneratorV1) StructuredGenerate() (runtime.Object, error) { - if err := s.validate(); err != nil { - return nil, err - } - tlsCrt, err := readFile(s.Cert) - if err != nil { - return nil, err - } - tlsKey, err := readFile(s.Key) - if err != nil { - return nil, err - } - - if _, err := tls.X509KeyPair(tlsCrt, tlsKey); err != nil { - return nil, fmt.Errorf("failed to load key pair %v", err) - } - // TODO: Add more validation. - // 1. If the certificate contains intermediates, it is a valid chain. - // 2. Format etc. - - secret := &v1.Secret{} - secret.Name = s.Name - secret.Type = v1.SecretTypeTLS - secret.Data = map[string][]byte{} - secret.Data[v1.TLSCertKey] = []byte(tlsCrt) - secret.Data[v1.TLSPrivateKeyKey] = []byte(tlsKey) - if s.AppendHash { - h, err := hash.SecretHash(secret) - if err != nil { - return nil, err - } - secret.Name = fmt.Sprintf("%s-%s", secret.Name, h) - } - return secret, nil -} - -// readFile just reads a file into a byte array. -func readFile(file string) ([]byte, error) { - b, err := ioutil.ReadFile(file) - if err != nil { - return []byte{}, fmt.Errorf("Cannot read file %v, %v", file, err) - } - return b, nil -} - -// ParamNames returns the set of supported input parameters when using the parameter injection generator pattern -func (s SecretForTLSGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "key", Required: true}, - {Name: "cert", Required: true}, - {Name: "append-hash", Required: false}, - } -} - -// validate validates required fields are set to support structured generation -func (s SecretForTLSGeneratorV1) validate() error { - // TODO: This is not strictly necessary. We can generate a self signed cert - // if no key/cert is given. The only requirement is that we either get both - // or none. See test/e2e/ingress_utils for self signed cert generation. - if len(s.Key) == 0 { - return fmt.Errorf("key must be specified") - } - if len(s.Cert) == 0 { - return fmt.Errorf("certificate must be specified") - } - return nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/service.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/service.go deleted file mode 100644 index 30f3791568..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/service.go +++ /dev/null @@ -1,240 +0,0 @@ -/* -Copyright 2014 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. -*/ - -package versioned - -import ( - "fmt" - "strconv" - "strings" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubectl/pkg/generate" -) - -// The only difference between ServiceGeneratorV1 and V2 is that the service port is named "default" in V1, while it is left unnamed in V2. -type ServiceGeneratorV1 struct{} - -func (ServiceGeneratorV1) ParamNames() []generate.GeneratorParam { - return paramNames() -} - -func (ServiceGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error) { - params["port-name"] = "default" - return generateService(params) -} - -type ServiceGeneratorV2 struct{} - -func (ServiceGeneratorV2) ParamNames() []generate.GeneratorParam { - return paramNames() -} - -func (ServiceGeneratorV2) Generate(params map[string]interface{}) (runtime.Object, error) { - return generateService(params) -} - -func paramNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "default-name", Required: true}, - {Name: "name", Required: false}, - {Name: "selector", Required: true}, - // port will be used if a user specifies --port OR the exposed object - // has one port - {Name: "port", Required: false}, - // ports will be used iff a user doesn't specify --port AND the - // exposed object has multiple ports - {Name: "ports", Required: false}, - {Name: "labels", Required: false}, - {Name: "external-ip", Required: false}, - {Name: "load-balancer-ip", Required: false}, - {Name: "type", Required: false}, - {Name: "protocol", Required: false}, - // protocols will be used to keep port-protocol mapping derived from - // exposed object - {Name: "protocols", Required: false}, - {Name: "container-port", Required: false}, // alias of target-port - {Name: "target-port", Required: false}, - {Name: "port-name", Required: false}, - {Name: "session-affinity", Required: false}, - {Name: "cluster-ip", Required: false}, - } -} - -func generateService(genericParams map[string]interface{}) (runtime.Object, error) { - params := map[string]string{} - for key, value := range genericParams { - strVal, isString := value.(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key) - } - params[key] = strVal - } - selectorString, found := params["selector"] - if !found || len(selectorString) == 0 { - return nil, fmt.Errorf("'selector' is a required parameter") - } - selector, err := generate.ParseLabels(selectorString) - if err != nil { - return nil, err - } - - labelsString, found := params["labels"] - var labels map[string]string - if found && len(labelsString) > 0 { - labels, err = generate.ParseLabels(labelsString) - if err != nil { - return nil, err - } - } - - name, found := params["name"] - if !found || len(name) == 0 { - name, found = params["default-name"] - if !found || len(name) == 0 { - return nil, fmt.Errorf("'name' is a required parameter") - } - } - - isHeadlessService := params["cluster-ip"] == "None" - - ports := []v1.ServicePort{} - servicePortName, found := params["port-name"] - if !found { - // Leave the port unnamed. - servicePortName = "" - } - - protocolsString, found := params["protocols"] - var portProtocolMap map[string]string - if found && len(protocolsString) > 0 { - portProtocolMap, err = generate.ParseProtocols(protocolsString) - if err != nil { - return nil, err - } - } - // ports takes precedence over port since it will be - // specified only when the user hasn't specified a port - // via --port and the exposed object has multiple ports. - var portString string - if portString, found = params["ports"]; !found { - portString, found = params["port"] - if !found && !isHeadlessService { - return nil, fmt.Errorf("'ports' or 'port' is a required parameter") - } - } - - if portString != "" { - portStringSlice := strings.Split(portString, ",") - for i, stillPortString := range portStringSlice { - port, err := strconv.Atoi(stillPortString) - if err != nil { - return nil, err - } - name := servicePortName - // If we are going to assign multiple ports to a service, we need to - // generate a different name for each one. - if len(portStringSlice) > 1 { - name = fmt.Sprintf("port-%d", i+1) - } - protocol := params["protocol"] - - switch { - case len(protocol) == 0 && len(portProtocolMap) == 0: - // Default to TCP, what the flag was doing previously. - protocol = "TCP" - case len(protocol) > 0 && len(portProtocolMap) > 0: - // User has specified the --protocol while exposing a multiprotocol resource - // We should stomp multiple protocols with the one specified ie. do nothing - case len(protocol) == 0 && len(portProtocolMap) > 0: - // no --protocol and we expose a multiprotocol resource - protocol = "TCP" // have the default so we can stay sane - if exposeProtocol, found := portProtocolMap[stillPortString]; found { - protocol = exposeProtocol - } - } - ports = append(ports, v1.ServicePort{ - Name: name, - Port: int32(port), - Protocol: v1.Protocol(protocol), - }) - } - } - - service := v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: labels, - }, - Spec: v1.ServiceSpec{ - Selector: selector, - Ports: ports, - }, - } - targetPortString := params["target-port"] - if len(targetPortString) == 0 { - targetPortString = params["container-port"] - } - if len(targetPortString) > 0 { - var targetPort intstr.IntOrString - if portNum, err := strconv.Atoi(targetPortString); err != nil { - targetPort = intstr.FromString(targetPortString) - } else { - targetPort = intstr.FromInt(portNum) - } - // Use the same target-port for every port - for i := range service.Spec.Ports { - service.Spec.Ports[i].TargetPort = targetPort - } - } else { - // If --target-port or --container-port haven't been specified, this - // should be the same as Port - for i := range service.Spec.Ports { - port := service.Spec.Ports[i].Port - service.Spec.Ports[i].TargetPort = intstr.FromInt(int(port)) - } - } - if len(params["external-ip"]) > 0 { - service.Spec.ExternalIPs = []string{params["external-ip"]} - } - if len(params["type"]) != 0 { - service.Spec.Type = v1.ServiceType(params["type"]) - } - if service.Spec.Type == v1.ServiceTypeLoadBalancer { - service.Spec.LoadBalancerIP = params["load-balancer-ip"] - } - if len(params["session-affinity"]) != 0 { - switch v1.ServiceAffinity(params["session-affinity"]) { - case v1.ServiceAffinityNone: - service.Spec.SessionAffinity = v1.ServiceAffinityNone - case v1.ServiceAffinityClientIP: - service.Spec.SessionAffinity = v1.ServiceAffinityClientIP - default: - return nil, fmt.Errorf("unknown session affinity: %s", params["session-affinity"]) - } - } - if len(params["cluster-ip"]) != 0 { - if params["cluster-ip"] == "None" { - service.Spec.ClusterIP = v1.ClusterIPNone - } else { - service.Spec.ClusterIP = params["cluster-ip"] - } - } - return &service, nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/service_basic.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/service_basic.go deleted file mode 100644 index b0b584ab7c..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/service_basic.go +++ /dev/null @@ -1,257 +0,0 @@ -/* -Copyright 2016 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. -*/ - -package versioned - -import ( - "fmt" - "strconv" - "strings" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/kubectl/pkg/generate" - utilsnet "k8s.io/utils/net" -) - -type ServiceCommonGeneratorV1 struct { - Name string - TCP []string - Type v1.ServiceType - ClusterIP string - NodePort int - ExternalName string -} - -type ServiceClusterIPGeneratorV1 struct { - ServiceCommonGeneratorV1 -} - -type ServiceNodePortGeneratorV1 struct { - ServiceCommonGeneratorV1 -} - -type ServiceLoadBalancerGeneratorV1 struct { - ServiceCommonGeneratorV1 -} - -// TODO: is this really necessary? -type ServiceExternalNameGeneratorV1 struct { - ServiceCommonGeneratorV1 -} - -func (ServiceClusterIPGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "tcp", Required: true}, - {Name: "clusterip", Required: false}, - } -} -func (ServiceNodePortGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "tcp", Required: true}, - {Name: "nodeport", Required: true}, - } -} -func (ServiceLoadBalancerGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "tcp", Required: true}, - } -} - -func (ServiceExternalNameGeneratorV1) ParamNames() []generate.GeneratorParam { - return []generate.GeneratorParam{ - {Name: "name", Required: true}, - {Name: "externalname", Required: true}, - } -} - -func parsePorts(portString string) (int32, intstr.IntOrString, error) { - portStringSlice := strings.Split(portString, ":") - - port, err := utilsnet.ParsePort(portStringSlice[0], true) - if err != nil { - return 0, intstr.FromInt(0), err - } - - if len(portStringSlice) == 1 { - return int32(port), intstr.FromInt(int(port)), nil - } - - var targetPort intstr.IntOrString - if portNum, err := strconv.Atoi(portStringSlice[1]); err != nil { - if errs := validation.IsValidPortName(portStringSlice[1]); len(errs) != 0 { - return 0, intstr.FromInt(0), fmt.Errorf(strings.Join(errs, ",")) - } - targetPort = intstr.FromString(portStringSlice[1]) - } else { - if errs := validation.IsValidPortNum(portNum); len(errs) != 0 { - return 0, intstr.FromInt(0), fmt.Errorf(strings.Join(errs, ",")) - } - targetPort = intstr.FromInt(portNum) - } - return int32(port), targetPort, nil -} - -func (s ServiceCommonGeneratorV1) GenerateCommon(params map[string]interface{}) error { - name, isString := params["name"].(string) - if !isString { - return fmt.Errorf("expected string, saw %v for 'name'", name) - } - tcpStrings, isArray := params["tcp"].([]string) - if !isArray { - return fmt.Errorf("expected []string, found :%v", tcpStrings) - } - clusterip, isString := params["clusterip"].(string) - if !isString { - return fmt.Errorf("expected string, saw %v for 'clusterip'", clusterip) - } - externalname, isString := params["externalname"].(string) - if !isString { - return fmt.Errorf("expected string, saw %v for 'externalname'", externalname) - } - s.Name = name - s.TCP = tcpStrings - s.ClusterIP = clusterip - s.ExternalName = externalname - return nil -} - -func (s ServiceLoadBalancerGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), params) - if err != nil { - return nil, err - } - delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeLoadBalancer, ClusterIP: ""} - err = delegate.GenerateCommon(params) - if err != nil { - return nil, err - } - return delegate.StructuredGenerate() -} - -func (s ServiceNodePortGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), params) - if err != nil { - return nil, err - } - delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeNodePort, ClusterIP: ""} - err = delegate.GenerateCommon(params) - if err != nil { - return nil, err - } - return delegate.StructuredGenerate() -} - -func (s ServiceClusterIPGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), params) - if err != nil { - return nil, err - } - delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeClusterIP, ClusterIP: ""} - err = delegate.GenerateCommon(params) - if err != nil { - return nil, err - } - return delegate.StructuredGenerate() -} - -func (s ServiceExternalNameGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error) { - err := generate.ValidateParams(s.ParamNames(), params) - if err != nil { - return nil, err - } - delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeExternalName, ClusterIP: ""} - err = delegate.GenerateCommon(params) - if err != nil { - return nil, err - } - return delegate.StructuredGenerate() -} - -// validate validates required fields are set to support structured generation -// TODO(xiangpengzhao): validate ports are identity mapped for headless service when we enforce that in validation.validateServicePort. -func (s ServiceCommonGeneratorV1) validate() error { - if len(s.Name) == 0 { - return fmt.Errorf("name must be specified") - } - if len(s.Type) == 0 { - return fmt.Errorf("type must be specified") - } - if s.ClusterIP == v1.ClusterIPNone && s.Type != v1.ServiceTypeClusterIP { - return fmt.Errorf("ClusterIP=None can only be used with ClusterIP service type") - } - if s.ClusterIP != v1.ClusterIPNone && len(s.TCP) == 0 && s.Type != v1.ServiceTypeExternalName { - return fmt.Errorf("at least one tcp port specifier must be provided") - } - if s.Type == v1.ServiceTypeExternalName { - if errs := validation.IsDNS1123Subdomain(s.ExternalName); len(errs) != 0 { - return fmt.Errorf("invalid service external name %s", s.ExternalName) - } - } - return nil -} - -func (s ServiceCommonGeneratorV1) StructuredGenerate() (runtime.Object, error) { - err := s.validate() - if err != nil { - return nil, err - } - ports := []v1.ServicePort{} - for _, tcpString := range s.TCP { - port, targetPort, err := parsePorts(tcpString) - if err != nil { - return nil, err - } - - portName := strings.Replace(tcpString, ":", "-", -1) - ports = append(ports, v1.ServicePort{ - Name: portName, - Port: port, - TargetPort: targetPort, - Protocol: v1.Protocol("TCP"), - NodePort: int32(s.NodePort), - }) - } - - // setup default label and selector - labels := map[string]string{} - labels["app"] = s.Name - selector := map[string]string{} - selector["app"] = s.Name - - service := v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: s.Name, - Labels: labels, - }, - Spec: v1.ServiceSpec{ - Type: v1.ServiceType(s.Type), - Selector: selector, - Ports: ports, - ExternalName: s.ExternalName, - }, - } - if len(s.ClusterIP) > 0 { - service.Spec.ClusterIP = s.ClusterIP - } - return &service, nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generate/versioned/serviceaccount.go b/vendor/k8s.io/kubectl/pkg/generate/versioned/serviceaccount.go deleted file mode 100644 index 659d151580..0000000000 --- a/vendor/k8s.io/kubectl/pkg/generate/versioned/serviceaccount.go +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright 2016 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. -*/ - -package versioned - -import ( - "fmt" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubectl/pkg/generate" -) - -// ServiceAccountGeneratorV1 supports stable generation of a service account -type ServiceAccountGeneratorV1 struct { - // Name of service account - Name string -} - -// Ensure it supports the generator pattern that uses parameters specified during construction -var _ generate.StructuredGenerator = &ServiceAccountGeneratorV1{} - -// StructuredGenerate outputs a service account object using the configured fields -func (g *ServiceAccountGeneratorV1) StructuredGenerate() (runtime.Object, error) { - if err := g.validate(); err != nil { - return nil, err - } - serviceAccount := &v1.ServiceAccount{} - serviceAccount.Name = g.Name - return serviceAccount, nil -} - -// validate validates required fields are set to support structured generation -func (g *ServiceAccountGeneratorV1) validate() error { - if len(g.Name) == 0 { - return fmt.Errorf("name must be specified") - } - return nil -} diff --git a/vendor/k8s.io/kubectl/pkg/generated/bindata.go b/vendor/k8s.io/kubectl/pkg/generated/bindata.go index 4c5baf26be..06afdfc3a2 100644 --- a/vendor/k8s.io/kubectl/pkg/generated/bindata.go +++ b/vendor/k8s.io/kubectl/pkg/generated/bindata.go @@ -17,6 +17,8 @@ // translations/kubectl/ja_JP/LC_MESSAGES/k8s.po // translations/kubectl/ko_KR/LC_MESSAGES/k8s.mo // translations/kubectl/ko_KR/LC_MESSAGES/k8s.po +// translations/kubectl/pt_BR/LC_MESSAGES/k8s.mo +// translations/kubectl/pt_BR/LC_MESSAGES/k8s.po // translations/kubectl/template.pot // translations/kubectl/zh_CN/LC_MESSAGES/k8s.mo // translations/kubectl/zh_CN/LC_MESSAGES/k8s.po @@ -17515,6 +17517,3063 @@ func translationsKubectlKo_krLc_messagesK8sPo() (*asset, error) { return a, nil } +var _translationsKubectlPt_brLc_messagesK8sMo = []byte("\xde\x12\x04\x95\x00\x00\x00\x00\xeb\x00\x00\x00\x1c\x00\x00\x00t\a\x00\x009\x01\x00\x00\xcc\x0e\x00\x00\x00\x00\x00\x00\xb0\x13\x00\x00\xdc\x00\x00\x00\xb1\x13\x00\x00\xb6\x00\x00\x00\x8e\x14\x00\x00\v\x02\x00\x00E\x15\x00\x00\x1f\x01\x00\x00Q\x17\x00\x00z\x00\x00\x00q\x18\x00\x00_\x02\x00\x00\xec\x18\x00\x00\u007f\x01\x00\x00L\x1b\x00\x00\x8f\x01\x00\x00\xcc\x1c\x00\x00k\x01\x00\x00\\\x1e\x00\x00k\x01\x00\x00\xc8\x1f\x00\x00>\x01\x00\x004!\x00\x00\x03\x02\x00\x00s\"\x00\x00o\x01\x00\x00w$\x00\x00H\x05\x00\x00\xe7%\x00\x00g\x02\x00\x000+\x00\x00\x1b\x02\x00\x00\x98-\x00\x00q\x01\x00\x00\xb4/\x00\x00\xa8\x01\x00\x00&1\x00\x00\xd4\x01\x00\x00\xcf2\x00\x00\x02\x02\x00\x00\xa44\x00\x00\xb4\x00\x00\x00\xa76\x00\x00\xb7\x02\x00\x00\\7\x00\x00\x92\x03\x00\x00\x14:\x00\x00\xbf\x01\x00\x00\xa7=\x00\x00=\x00\x00\x00g?\x00\x00;\x00\x00\x00\xa5?\x00\x00\xcd\x02\x00\x00\xe1?\x00\x00<\x00\x00\x00\xafB\x00\x00P\x00\x00\x00\xecB\x00\x00S\x00\x00\x00=C\x00\x00<\x00\x00\x00\x91C\x00\x00\xac\x01\x00\x00\xceC\x00\x00\x13\x03\x00\x00{E\x00\x00\xea\x01\x00\x00\x8fH\x00\x00\xfa\x01\x00\x00zJ\x00\x00\xda\x01\x00\x00uL\x00\x00c\x01\x00\x00PN\x00\x00T\x01\x00\x00\xb4O\x00\x00\xba\x06\x00\x00\tQ\x00\x00\xf9\x01\x00\x00\xc4W\x00\x00\xe0\x02\x00\x00\xbeY\x00\x00\x02\x03\x00\x00\x9f\\\x00\x00\xfb\x00\x00\x00\xa2_\x00\x00\xa5\x01\x00\x00\x9e`\x00\x00\xb4\x01\x00\x00Db\x00\x00\x18\x00\x00\x00\xf9c\x00\x00<\x00\x00\x00\x12d\x00\x00=\x00\x00\x00Od\x00\x00\xc6\x00\x00\x00\x8dd\x00\x00g\x02\x00\x00Te\x00\x00.\x00\x00\x00\xbcg\x00\x001\x03\x00\x00\xebg\x00\x00g\x00\x00\x00\x1dk\x00\x00Q\x00\x00\x00\x85k\x00\x00R\x00\x00\x00\xd7k\x00\x00\"\x00\x00\x00*l\x00\x00X\x02\x00\x00Ml\x00\x004\x00\x00\x00\xa6n\x00\x00}\x00\x00\x00\xdbn\x00\x00k\x01\x00\x00Yo\x00\x00\x81\a\x00\x00\xc5p\x00\x00f\x01\x00\x00Gx\x00\x00\x85\x00\x00\x00\xaey\x00\x00\xea\x00\x00\x004z\x00\x00\xd9\x00\x00\x00\x1f{\x00\x00\n\x05\x00\x00\xf9{\x00\x00\x10\x05\x00\x00\x04\x81\x00\x00\x1c\x00\x00\x00\x15\x86\x00\x00\x1e\x00\x00\x002\x86\x00\x00\x98\x02\x00\x00Q\x86\x00\x00\xbc\x01\x00\x00\xea\x88\x00\x00\x9c\x01\x00\x00\xa7\x8a\x00\x00q\x01\x00\x00D\x8c\x00\x00\x05\x01\x00\x00\xb6\x8d\x00\x00\xdf\x01\x00\x00\xbc\x8e\x00\x00\x1c\x01\x00\x00\x9c\x90\x00\x00\xc1\x01\x00\x00\xb9\x91\x00\x00\x1b\x02\x00\x00{\x93\x00\x00\xc0\x00\x00\x00\x97\x95\x00\x00\xd5\x02\x00\x00X\x96\x00\x00\x9d\x00\x00\x00.\x99\x00\x00X\x00\x00\x00\u0319\x00\x00%\x02\x00\x00%\x9a\x00\x00o\x00\x00\x00K\x9c\x00\x00u\x00\x00\x00\xbb\x9c\x00\x00\x01\x01\x00\x001\x9d\x00\x00v\x00\x00\x003\x9e\x00\x00t\x00\x00\x00\xaa\x9e\x00\x00\xef\x00\x00\x00\x1f\x9f\x00\x00}\x00\x00\x00\x0f\xa0\x00\x00j\x00\x00\x00\x8d\xa0\x00\x00\xc4\x01\x00\x00\xf8\xa0\x00\x00\xf7\x03\x00\x00\xbd\xa2\x00\x00;\x00\x00\x00\xb5\xa6\x00\x008\x00\x00\x00\xf1\xa6\x00\x001\x00\x00\x00*\xa7\x00\x007\x00\x00\x00\\\xa7\x00\x00u\x02\x00\x00\x94\xa7\x00\x00\xb0\x00\x00\x00\n\xaa\x00\x00[\x00\x00\x00\xbb\xaa\x00\x00J\x00\x00\x00\x17\xab\x00\x00a\x00\x00\x00b\xab\x00\x00\xbd\x00\x00\x00\u012b\x00\x009\x00\x00\x00\x82\xac\x00\x00\xc5\x00\x00\x00\xbc\xac\x00\x00\xae\x00\x00\x00\x82\xad\x00\x00\xd6\x00\x00\x001\xae\x00\x008\x00\x00\x00\b\xaf\x00\x00%\x00\x00\x00A\xaf\x00\x00W\x00\x00\x00g\xaf\x00\x00\x1d\x00\x00\x00\xbf\xaf\x00\x00=\x00\x00\x00\u076f\x00\x00u\x00\x00\x00\x1b\xb0\x00\x004\x00\x00\x00\x91\xb0\x00\x00-\x00\x00\x00\u01b0\x00\x00\xa3\x00\x00\x00\xf4\xb0\x00\x003\x00\x00\x00\x98\xb1\x00\x002\x00\x00\x00\u0331\x00\x008\x00\x00\x00\xff\xb1\x00\x00\x1e\x00\x00\x008\xb2\x00\x00\x1a\x00\x00\x00W\xb2\x00\x009\x00\x00\x00r\xb2\x00\x00\x13\x00\x00\x00\xac\xb2\x00\x00\x1b\x00\x00\x00\xc0\xb2\x00\x00@\x00\x00\x00\u0732\x00\x00,\x00\x00\x00\x1d\xb3\x00\x00*\x00\x00\x00J\xb3\x00\x007\x00\x00\x00u\xb3\x00\x00'\x00\x00\x00\xad\xb3\x00\x00&\x00\x00\x00\u0573\x00\x00.\x00\x00\x00\xfc\xb3\x00\x00=\x00\x00\x00+\xb4\x00\x00*\x00\x00\x00i\xb4\x00\x000\x00\x00\x00\x94\xb4\x00\x00,\x00\x00\x00\u0174\x00\x00\x1f\x00\x00\x00\xf2\xb4\x00\x00]\x00\x00\x00\x12\xb5\x00\x000\x00\x00\x00p\xb5\x00\x000\x00\x00\x00\xa1\xb5\x00\x00\"\x00\x00\x00\u04b5\x00\x00?\x00\x00\x00\xf5\xb5\x00\x00\x1d\x00\x00\x005\xb6\x00\x00,\x00\x00\x00S\xb6\x00\x00+\x00\x00\x00\x80\xb6\x00\x00$\x00\x00\x00\xac\xb6\x00\x00\x14\x00\x00\x00\u0476\x00\x00*\x00\x00\x00\xe6\xb6\x00\x00A\x00\x00\x00\x11\xb7\x00\x00\x1d\x00\x00\x00S\xb7\x00\x00\x1c\x00\x00\x00q\xb7\x00\x00\x1a\x00\x00\x00\x8e\xb7\x00\x00)\x00\x00\x00\xa9\xb7\x00\x006\x00\x00\x00\u04f7\x00\x00\x1d\x00\x00\x00\n\xb8\x00\x00\x19\x00\x00\x00(\xb8\x00\x00 \x00\x00\x00B\xb8\x00\x00v\x00\x00\x00c\xb8\x00\x00(\x00\x00\x00\u06b8\x00\x00\x16\x00\x00\x00\x03\xb9\x00\x00p\x00\x00\x00\x1a\xb9\x00\x00`\x00\x00\x00\x8b\xb9\x00\x00\x9b\x00\x00\x00\xec\xb9\x00\x00\x97\x00\x00\x00\x88\xba\x00\x00\xa8\x00\x00\x00 \xbb\x00\x00\x1b\x00\x00\x00\u027b\x00\x00\x18\x00\x00\x00\xe5\xbb\x00\x00\x1a\x00\x00\x00\xfe\xbb\x00\x00$\x00\x00\x00\x19\xbc\x00\x00\x1d\x00\x00\x00>\xbc\x00\x00\x17\x00\x00\x00\\\xbc\x00\x00a\x00\x00\x00t\xbc\x00\x00s\x00\x00\x00\u05bc\x00\x00B\x00\x00\x00J\xbd\x00\x00Y\x00\x00\x00\x8d\xbd\x00\x00+\x00\x00\x00\xe7\xbd\x00\x00+\x00\x00\x00\x13\xbe\x00\x006\x00\x00\x00?\xbe\x00\x00;\x00\x00\x00v\xbe\x00\x00q\x00\x00\x00\xb2\xbe\x00\x00/\x00\x00\x00$\xbf\x00\x001\x00\x00\x00T\xbf\x00\x00'\x00\x00\x00\x86\xbf\x00\x00'\x00\x00\x00\xae\xbf\x00\x00\x18\x00\x00\x00\u05bf\x00\x00&\x00\x00\x00\xef\xbf\x00\x00%\x00\x00\x00\x16\xc0\x00\x00(\x00\x00\x00<\xc0\x00\x00#\x00\x00\x00e\xc0\x00\x00K\x00\x00\x00\x89\xc0\x00\x00 \x00\x00\x00\xd5\xc0\x00\x00_\x00\x00\x00\xf6\xc0\x00\x00\x1e\x00\x00\x00V\xc1\x00\x00\"\x00\x00\x00u\xc1\x00\x00\"\x00\x00\x00\x98\xc1\x00\x00\x1f\x00\x00\x00\xbb\xc1\x00\x00-\x00\x00\x00\xdb\xc1\x00\x00-\x00\x00\x00\t\xc2\x00\x009\x00\x00\x007\xc2\x00\x00\x1e\x00\x00\x00q\xc2\x00\x00\x19\x00\x00\x00\x90\xc2\x00\x00c\x00\x00\x00\xaa\xc2\x00\x00#\x00\x00\x00\x0e\xc3\x00\x00\x82\x00\x00\x002\xc3\x00\x00\x94\x00\x00\x00\xb5\xc3\x00\x00H\x00\x00\x00J\xc4\x00\x00&\x00\x00\x00\x93\xc4\x00\x00e\x00\x00\x00\xba\xc4\x00\x00z\x00\x00\x00 \xc5\x00\x00J\x00\x00\x00\x9b\xc5\x00\x00\xe5\x00\x00\x00\xe6\xc5\x00\x00W\x00\x00\x00\xcc\xc6\x00\x00E\x00\x00\x00$\xc7\x00\x00a\x00\x00\x00j\xc7\x00\x00v\x00\x00\x00\xcc\xc7\x00\x00\xcb\x00\x00\x00C\xc8\x00\x00\xcf\x00\x00\x00\x0f\xc9\x00\x00\x1e\x01\x00\x00\xdf\xc9\x00\x00\x1c\x00\x00\x00\xfe\xca\x00\x00T\x00\x00\x00\x1b\xcb\x00\x00\x17\x00\x00\x00p\xcb\x00\x00/\x00\x00\x00\x88\xcb\x00\x009\x00\x00\x00\xb8\xcb\x00\x00\x1e\x00\x00\x00\xf2\xcb\x00\x00=\x00\x00\x00\x11\xcc\x00\x00$\x00\x00\x00O\xcc\x00\x00\x1f\x00\x00\x00t\xcc\x00\x00&\x00\x00\x00\x94\xcc\x00\x00+\x00\x00\x00\xbb\xcc\x00\x00G\x00\x00\x00\xe7\xcc\x00\x00\x14\x00\x00\x00/\xcd\x00\x00r\x00\x00\x00D\xcd\x00\x00\x13\x00\x00\x00\xb7\xcd\x00\x00\x18\x00\x00\x00\xcb\xcd\x00\x00/\x00\x00\x00\xe4\xcd\x00\x00a\x01\x00\x00\x14\xce\x00\x00\xe0\x00\x00\x00v\xcf\x00\x00\xbc\x00\x00\x00W\xd0\x00\x00<\x02\x00\x00\x14\xd1\x00\x005\x01\x00\x00Q\xd3\x00\x00\x96\x00\x00\x00\x87\xd4\x00\x00u\x02\x00\x00\x1e\xd5\x00\x00\xa9\x01\x00\x00\x94\xd7\x00\x00\xd2\x01\x00\x00>\xd9\x00\x00\x84\x01\x00\x00\x11\xdb\x00\x00\x8b\x01\x00\x00\x96\xdc\x00\x00Q\x01\x00\x00\"\xde\x00\x00*\x02\x00\x00t\xdf\x00\x00\x82\x01\x00\x00\x9f\xe1\x00\x00W\x05\x00\x00\"\xe3\x00\x00\x90\x02\x00\x00z\xe8\x00\x00.\x02\x00\x00\v\xeb\x00\x00\x82\x01\x00\x00:\xed\x00\x00\xb6\x01\x00\x00\xbd\xee\x00\x00\xf6\x01\x00\x00t\xf0\x00\x00\x16\x02\x00\x00k\xf2\x00\x00\xb6\x00\x00\x00\x82\xf4\x00\x00\a\x03\x00\x009\xf5\x00\x00\xde\x03\x00\x00A\xf8\x00\x00\xee\x01\x00\x00 \xfc\x00\x00W\x00\x00\x00\x0f\xfe\x00\x00M\x00\x00\x00g\xfe\x00\x00\x14\x03\x00\x00\xb5\xfe\x00\x00H\x00\x00\x00\xca\x01\x01\x00f\x00\x00\x00\x13\x02\x01\x00W\x00\x00\x00z\x02\x01\x00@\x00\x00\x00\xd2\x02\x01\x00\xcb\x01\x00\x00\x13\x03\x01\x00\xfd\x02\x00\x00\xdf\x04\x01\x00A\x02\x00\x00\xdd\a\x01\x00!\x02\x00\x00\x1f\n\x01\x00\xfd\x01\x00\x00A\f\x01\x00\x8b\x01\x00\x00?\x0e\x01\x00}\x01\x00\x00\xcb\x0f\x01\x00\x11\a\x00\x00I\x11\x01\x00\x11\x02\x00\x00[\x18\x01\x00\xfa\x02\x00\x00m\x1a\x01\x00\x1b\x03\x00\x00h\x1d\x01\x00\x01\x01\x00\x00\x84 \x01\x00\xaa\x01\x00\x00\x86!\x01\x00\xe9\x01\x00\x001#\x01\x00\x17\x00\x00\x00\x1b%\x01\x00>\x00\x00\x003%\x01\x00A\x00\x00\x00r%\x01\x00\xc9\x00\x00\x00\xb4%\x01\x00\xb9\x02\x00\x00~&\x01\x00.\x00\x00\x008)\x01\x00_\x03\x00\x00g)\x01\x00k\x00\x00\x00\xc7,\x01\x00Y\x00\x00\x003-\x01\x00S\x00\x00\x00\x8d-\x01\x00&\x00\x00\x00\xe1-\x01\x00\xad\x02\x00\x00\b.\x01\x007\x00\x00\x00\xb60\x01\x00\x8b\x00\x00\x00\xee0\x01\x00e\x01\x00\x00z1\x01\x00\x84\a\x00\x00\xe02\x01\x00g\x01\x00\x00e:\x01\x00\x96\x00\x00\x00\xcd;\x01\x00\x1b\x01\x00\x00d<\x01\x00\xf0\x00\x00\x00\x80=\x01\x00\r\x05\x00\x00q>\x01\x00\x11\x05\x00\x00\u007fC\x01\x00;\x00\x00\x00\x91H\x01\x00;\x00\x00\x00\xcdH\x01\x00\x99\x02\x00\x00\tI\x01\x00\xc9\x01\x00\x00\xa3K\x01\x00\xcf\x01\x00\x00mM\x01\x00\x82\x01\x00\x00=O\x01\x00\xfd\x00\x00\x00\xc0P\x01\x00/\x02\x00\x00\xbeQ\x01\x00%\x01\x00\x00\xeeS\x01\x00\xcf\x01\x00\x00\x14U\x01\x00?\x02\x00\x00\xe4V\x01\x00\xc0\x00\x00\x00$Y\x01\x00\xf4\x02\x00\x00\xe5Y\x01\x00\xa9\x00\x00\x00\xda\\\x01\x00Z\x00\x00\x00\x84]\x01\x00A\x02\x00\x00\xdf]\x01\x00q\x00\x00\x00!`\x01\x00\x81\x00\x00\x00\x93`\x01\x00%\x01\x00\x00\x15a\x01\x00\x89\x00\x00\x00;b\x01\x00\x80\x00\x00\x00\xc5b\x01\x00\xf5\x00\x00\x00Fc\x01\x00\x83\x00\x00\x00g\x01\x00C\x00\x00\x00]k\x01\x00@\x00\x00\x00\xa1k\x01\x000\x00\x00\x00\xe2k\x01\x00?\x00\x00\x00\x13l\x01\x00\x90\x02\x00\x00Sl\x01\x00\xd2\x00\x00\x00\xe4n\x01\x00\x8d\x00\x00\x00\xb7o\x01\x00j\x00\x00\x00Ep\x01\x00b\x00\x00\x00\xb0p\x01\x00\xc8\x00\x00\x00\x13q\x01\x005\x00\x00\x00\xdcq\x01\x00\xc6\x00\x00\x00\x12r\x01\x00\xb6\x00\x00\x00\xd9r\x01\x00\xe5\x00\x00\x00\x90s\x01\x00M\x00\x00\x00vt\x01\x005\x00\x00\x00\xc4t\x01\x00k\x00\x00\x00\xfat\x01\x00'\x00\x00\x00fu\x01\x00>\x00\x00\x00\x8eu\x01\x00\x89\x00\x00\x00\xcdu\x01\x008\x00\x00\x00Wv\x01\x001\x00\x00\x00\x90v\x01\x00\xc0\x00\x00\x00\xc2v\x01\x00D\x00\x00\x00\x83w\x01\x002\x00\x00\x00\xc8w\x01\x009\x00\x00\x00\xfbw\x01\x00&\x00\x00\x005x\x01\x00\"\x00\x00\x00\\x\x01\x00;\x00\x00\x00\u007fx\x01\x00\x1b\x00\x00\x00\xbbx\x01\x00#\x00\x00\x00\xd7x\x01\x00I\x00\x00\x00\xfbx\x01\x00,\x00\x00\x00Ey\x01\x00)\x00\x00\x00ry\x01\x007\x00\x00\x00\x9cy\x01\x00(\x00\x00\x00\xd4y\x01\x00,\x00\x00\x00\xfdy\x01\x007\x00\x00\x00*z\x01\x00E\x00\x00\x00bz\x01\x005\x00\x00\x00\xa8z\x01\x003\x00\x00\x00\xdez\x01\x007\x00\x00\x00\x12{\x01\x00&\x00\x00\x00J{\x01\x00c\x00\x00\x00q{\x01\x00*\x00\x00\x00\xd5{\x01\x00+\x00\x00\x00\x00|\x01\x00-\x00\x00\x00,|\x01\x00=\x00\x00\x00Z|\x01\x00\x1b\x00\x00\x00\x98|\x01\x00:\x00\x00\x00\xb4|\x01\x009\x00\x00\x00\xef|\x01\x001\x00\x00\x00)}\x01\x00\"\x00\x00\x00[}\x01\x00*\x00\x00\x00~}\x01\x00U\x00\x00\x00\xa9}\x01\x00\x1a\x00\x00\x00\xff}\x01\x00\x1a\x00\x00\x00\x1a~\x01\x00\x1b\x00\x00\x005~\x01\x00/\x00\x00\x00Q~\x01\x00P\x00\x00\x00\x81~\x01\x00\x1c\x00\x00\x00\xd2~\x01\x00\x1c\x00\x00\x00\xef~\x01\x00\"\x00\x00\x00\f\u007f\x01\x00\x9b\x00\x00\x00/\u007f\x01\x000\x00\x00\x00\xcb\u007f\x01\x00\x1c\x00\x00\x00\xfc\u007f\x01\x00\u007f\x00\x00\x00\x19\x80\x01\x00e\x00\x00\x00\x99\x80\x01\x00\xad\x00\x00\x00\xff\x80\x01\x00\xa9\x00\x00\x00\xad\x81\x01\x00\xb9\x00\x00\x00W\x82\x01\x00\x1e\x00\x00\x00\x11\x83\x01\x00\x1c\x00\x00\x000\x83\x01\x00!\x00\x00\x00M\x83\x01\x00&\x00\x00\x00o\x83\x01\x00!\x00\x00\x00\x96\x83\x01\x00\x1a\x00\x00\x00\xb8\x83\x01\x00b\x00\x00\x00\u04c3\x01\x00\x89\x00\x00\x006\x84\x01\x00G\x00\x00\x00\xc0\x84\x01\x00\\\x00\x00\x00\b\x85\x01\x001\x00\x00\x00e\x85\x01\x00-\x00\x00\x00\x97\x85\x01\x00B\x00\x00\x00\u0145\x01\x00#\x00\x00\x00\b\x86\x01\x00w\x00\x00\x00,\x86\x01\x009\x00\x00\x00\xa4\x86\x01\x009\x00\x00\x00\u0786\x01\x00(\x00\x00\x00\x18\x87\x01\x004\x00\x00\x00A\x87\x01\x00\x19\x00\x00\x00v\x87\x01\x00'\x00\x00\x00\x90\x87\x01\x00)\x00\x00\x00\xb8\x87\x01\x005\x00\x00\x00\xe2\x87\x01\x003\x00\x00\x00\x18\x88\x01\x00U\x00\x00\x00L\x88\x01\x00.\x00\x00\x00\xa2\x88\x01\x00p\x00\x00\x00\u0448\x01\x00\x1f\x00\x00\x00B\x89\x01\x00'\x00\x00\x00b\x89\x01\x00(\x00\x00\x00\x8a\x89\x01\x00(\x00\x00\x00\xb3\x89\x01\x000\x00\x00\x00\u0709\x01\x00.\x00\x00\x00\r\x8a\x01\x00G\x00\x00\x00<\x8a\x01\x00-\x00\x00\x00\x84\x8a\x01\x00\x1d\x00\x00\x00\xb2\x8a\x01\x00f\x00\x00\x00\u040a\x01\x00#\x00\x00\x007\x8b\x01\x00\x93\x00\x00\x00[\x8b\x01\x00\xa9\x00\x00\x00\xef\x8b\x01\x00N\x00\x00\x00\x99\x8c\x01\x00#\x00\x00\x00\xe8\x8c\x01\x00c\x00\x00\x00\f\x8d\x01\x00{\x00\x00\x00p\x8d\x01\x00I\x00\x00\x00\xec\x8d\x01\x00\xf3\x00\x00\x006\x8e\x01\x00m\x00\x00\x00*\x8f\x01\x00A\x00\x00\x00\x98\x8f\x01\x00`\x00\x00\x00\u068f\x01\x00\u007f\x00\x00\x00;\x90\x01\x00\xdc\x00\x00\x00\xbb\x90\x01\x00\xe9\x00\x00\x00\x98\x91\x01\x00J\x01\x00\x00\x82\x92\x01\x00\x1c\x00\x00\x00\u0353\x01\x00\\\x00\x00\x00\xea\x93\x01\x00\x1b\x00\x00\x00G\x94\x01\x001\x00\x00\x00c\x94\x01\x00I\x00\x00\x00\x95\x94\x01\x00(\x00\x00\x00\u07d4\x01\x00I\x00\x00\x00\b\x95\x01\x00&\x00\x00\x00R\x95\x01\x00!\x00\x00\x00y\x95\x01\x00&\x00\x00\x00\x9b\x95\x01\x009\x00\x00\x00\u0095\x01\x00O\x00\x00\x00\xfc\x95\x01\x00\"\x00\x00\x00L\x96\x01\x00\x8c\x00\x00\x00o\x96\x01\x00\x13\x00\x00\x00\xfc\x96\x01\x00\x18\x00\x00\x00\x10\x97\x01\x007\x00\x00\x00)\x97\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00^\x00\x00\x00\\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00F\x00\x00\x00\xc4\x00\x00\x00\x0f\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\xeb\x00\x00\x00c\x00\x00\x00\x00\x00\x00\x001\x00\x00\x00o\x00\x00\x00}\x00\x00\x00\x00\x00\x00\x00J\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x98\x00\x00\x00U\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x17\x00\x00\x00u\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x00\x00\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\x00\x00\xb7\x00\x00\x00\xd7\x00\x00\x00*\x00\x00\x00\x99\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x84\x00\x00\x00\x9c\x00\x00\x00\xe6\x00\x00\x00\x9d\x00\x00\x00\xc5\x00\x00\x00\xd9\x00\x00\x00\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xcd\x00\x00\x00\xcb\x00\x00\x00y\x00\x00\x00\x97\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00C\x00\x00\x00\x93\x00\x00\x00\xad\x00\x00\x00\xe1\x00\x00\x00\xa6\x00\x00\x00\xd0\x00\x00\x00r\x00\x00\x00+\x00\x00\x006\x00\x00\x00\x00\x00\x00\x00\xa5\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00h\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\xd1\x00\x00\x00\xde\x00\x00\x00;\x00\x00\x00\x00\x00\x00\x00\xe9\x00\x00\x00\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00z\x00\x00\x00/\x00\x00\x00V\x00\x00\x00\x8d\x00\x00\x00\xe3\x00\x00\x00!\x00\x00\x00~\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x00\x00\x88\x00\x00\x00l\x00\x00\x00s\x00\x00\x00g\x00\x00\x00\x05\x00\x00\x00\xc6\x00\x00\x00#\x00\x00\x00\x9f\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x00\x00\x00\x00\x00\x00\xc2\x00\x00\x00\x13\x00\x00\x00S\x00\x00\x00G\x00\x00\x00$\x00\x00\x00\xc1\x00\x00\x00\xb5\x00\x00\x00X\x00\x00\x00m\x00\x00\x00\t\x00\x00\x00x\x00\x00\x00\xb8\x00\x00\x00\xbd\x00\x00\x00k\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00<\x00\x00\x00E\x00\x00\x00\xbf\x00\x00\x00\xbc\x00\x00\x00\x00\x00\x00\x00:\x00\x00\x00\x82\x00\x00\x00\x81\x00\x00\x00&\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00[\x00\x00\x00I\x00\x00\x00e\x00\x00\x00\x04\x00\x00\x00>\x00\x00\x00\b\x00\x00\x00\x94\x00\x00\x00\x8f\x00\x00\x00\xce\x00\x00\x00?\x00\x00\x00Y\x00\x00\x00\xda\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00'\x00\x00\x004\x00\x00\x00\xcc\x00\x00\x00\f\x00\x00\x005\x00\x00\x00(\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\x00\x00\x00\x00\xa9\x00\x00\x00\x9e\x00\x00\x00\x00\x00\x00\x00\xe5\x00\x00\x00\x00\x00\x00\x00O\x00\x00\x00 \x00\x00\x00)\x00\x00\x00\xcf\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00Z\x00\x00\x00\"\x00\x00\x00\x00\x00\x00\x00v\x00\x00\x00]\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00a\x00\x00\x00j\x00\x00\x008\x00\x00\x00\xa3\x00\x00\x00q\x00\x00\x00t\x00\x00\x00_\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\v\x00\x00\x00@\x00\x00\x00\xd2\x00\x00\x00,\x00\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x95\x00\x00\x00\x06\x00\x00\x00\xa8\x00\x00\x00\xae\x00\x00\x00\xa1\x00\x00\x00\x00\x00\x00\x00\x91\x00\x00\x00\x0e\x00\x00\x00{\x00\x00\x00\xa7\x00\x00\x00\x00\x00\x00\x00\xb6\x00\x00\x00i\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x00L\x00\x00\x00\x00\x00\x00\x00\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00w\x00\x00\x00\x12\x00\x00\x00=\x00\x00\x00\xaf\x00\x00\x00\a\x00\x00\x00\xdf\x00\x00\x00\xc0\x00\x00\x00N\x00\x00\x00%\x00\x00\x009\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00\u007f\x00\x00\x00\xbe\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x00\x00P\x00\x00\x00\xb3\x00\x00\x00\r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00R\x00\x00\x00D\x00\x00\x00B\x00\x00\x00n\x00\x00\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x83\x00\x00\x00\n\x00\x00\x00W\x00\x00\x00\x14\x00\x00\x00Q\x00\x00\x00\xd4\x00\x00\x00d\x00\x00\x00\xac\x00\x00\x00\x16\x00\x00\x00\x96\x00\x00\x00K\x00\x00\x002\x00\x00\x00\x1a\x00\x00\x00\xb4\x00\x00\x00f\x00\x00\x00\xa2\x00\x00\x00\xe8\x00\x00\x00\x02\x00\x00\x00A\x00\x00\x00\xe4\x00\x00\x00\x8c\x00\x00\x00\x9a\x00\x00\x00`\x00\x00\x00\xab\x00\x00\x00M\x00\x00\x007\x00\x00\x000\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x00\x00\x89\x00\x00\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x8e\x00\x00\x00\xca\x00\x00\x00H\x00\x00\x00\x00\x00\x00\x00\xb2\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xb0\x00\x00\x00\x00\x00\x00\x00|\x00\x00\x003\x00\x00\x00T\x00\x00\x00\x87\x00\x00\x00b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\xaa\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00p\x00\x00\x00\xc7\x00\x00\x00\x8b\x00\x00\x00\x00\n\t\t # Create a ClusterRoleBinding for user1, user2, and group1 using the cluster-admin ClusterRole\n\t\t kubectl create clusterrolebinding cluster-admin --clusterrole=cluster-admin --user=user1 --user=user2 --group=group1\x00\n\t\t # Create a RoleBinding for user1, user2, and group1 using the admin ClusterRole\n\t\t kubectl create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1\x00\n\t\t # Create a new configmap named my-config based on folder bar\n\t\t kubectl create configmap my-config --from-file=path/to/bar\n\n\t\t # Create a new configmap named my-config with specified keys instead of file basenames on disk\n\t\t kubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-file=key2=/path/to/bar/file2.txt\n\n\t\t # Create a new configmap named my-config with key1=config1 and key2=config2\n\t\t kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2\x00\n\t\t # If you don't already have a .dockercfg file, you can create a dockercfg secret directly by using:\n\t\t kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL\x00\n\t\t # Show metrics for all nodes\n\t\t kubectl top node\n\n\t\t # Show metrics for a given node\n\t\t kubectl top node NODE_NAME\x00\n\t\t# Apply the configuration in pod.json to a pod.\n\t\tkubectl apply -f ./pod.json\n\n\t\t# Apply the JSON passed into stdin to a pod.\n\t\tcat pod.json | kubectl apply -f -\n\n\t\t# Note: --prune is still in Alpha\n\t\t# Apply the configuration in manifest.yaml that matches label app=nginx and delete all the other resources that are not in the file and match label app=nginx.\n\t\tkubectl apply --prune -f manifest.yaml -l app=nginx\n\n\t\t# Apply the configuration in manifest.yaml and delete all the other configmaps that are not in the file.\n\t\tkubectl apply --prune -f manifest.yaml --all --prune-whitelist=core/v1/ConfigMap\x00\n\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and 10, no target CPU utilization specified so a default autoscaling policy will be used:\n\t\tkubectl autoscale deployment foo --min=2 --max=10\n\n\t\t# Auto scale a replication controller \"foo\", with the number of pods between 1 and 5, target CPU utilization at 80%:\n\t\tkubectl autoscale rc foo --max=5 --cpu-percent=80\x00\n\t\t# Convert 'pod.yaml' to latest version and print to stdout.\n\t\tkubectl convert -f pod.yaml\n\n\t\t# Convert the live state of the resource specified by 'pod.yaml' to the latest version\n\t\t# and print to stdout in json format.\n\t\tkubectl convert -f pod.yaml --local -o json\n\n\t\t# Convert all files under current directory to latest version and create them all.\n\t\tkubectl convert -f . | kubectl create -f -\x00\n\t\t# Create a ClusterRole named \"pod-reader\" that allows user to perform \"get\", \"watch\" and \"list\" on pods\n\t\tkubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods\n\n\t\t# Create a ClusterRole named \"pod-reader\" with ResourceName specified\n\t\tkubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods --resource-name=readablepod\x00\n\t\t# Create a Role named \"pod-reader\" that allows user to perform \"get\", \"watch\" and \"list\" on pods\n\t\tkubectl create role pod-reader --verb=get --verb=list --verb=watch --resource=pods\n\n\t\t# Create a Role named \"pod-reader\" with ResourceName specified\n\t\tkubectl create role pod-reader --verb=get --verg=list --verb=watch --resource=pods --resource-name=readablepod\x00\n\t\t# Create a new resourcequota named my-quota\n\t\tkubectl create quota my-quota --hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10\n\n\t\t# Create a new resourcequota named best-effort\n\t\tkubectl create quota best-effort --hard=pods=100 --scopes=BestEffort\x00\n\t\t# Create a pod disruption budget named my-pdb that will select all pods with the app=rails label\n\t\t# and require at least one of them being available at any point in time.\n\t\tkubectl create poddisruptionbudget my-pdb --selector=app=rails --min-available=1\n\n\t\t# Create a pod disruption budget named my-pdb that will select all pods with the app=nginx label\n\t\t# and require at least half of the pods selected to be available at any point in time.\n\t\tkubectl create pdb my-pdb --selector=app=nginx --min-available=50%\x00\n\t\t# Create a pod using the data in pod.json.\n\t\tkubectl create -f ./pod.json\n\n\t\t# Create a pod based on the JSON passed into stdin.\n\t\tcat pod.json | kubectl create -f -\n\n\t\t# Edit the data in docker-registry.yaml in JSON using the v1 API format then create the resource using the edited data.\n\t\tkubectl create -f docker-registry.yaml --edit --output-version=v1 -o json\x00\n\t\t# Create a service for a replicated nginx, which serves on port 80 and connects to the containers on port 8000.\n\t\tkubectl expose rc nginx --port=80 --target-port=8000\n\n\t\t# Create a service for a replication controller identified by type and name specified in \"nginx-controller.yaml\", which serves on port 80 and connects to the containers on port 8000.\n\t\tkubectl expose -f nginx-controller.yaml --port=80 --target-port=8000\n\n\t\t# Create a service for a pod valid-pod, which serves on port 444 with the name \"frontend\"\n\t\tkubectl expose pod valid-pod --port=444 --name=frontend\n\n\t\t# Create a second service based on the above service, exposing the container port 8443 as port 443 with the name \"nginx-https\"\n\t\tkubectl expose service nginx --port=443 --target-port=8443 --name=nginx-https\n\n\t\t# Create a service for a replicated streaming application on port 4100 balancing UDP traffic and named 'video-stream'.\n\t\tkubectl expose rc streamer --port=4100 --protocol=udp --name=video-stream\n\n\t\t# Create a service for a replicated nginx using replica set, which serves on port 80 and connects to the containers on port 8000.\n\t\tkubectl expose rs nginx --port=80 --target-port=8000\n\n\t\t# Create a service for an nginx deployment, which serves on port 80 and connects to the containers on port 8000.\n\t\tkubectl expose deployment nginx --port=80 --target-port=8000\x00\n\t\t# Delete a pod using the type and name specified in pod.json.\n\t\tkubectl delete -f ./pod.json\n\n\t\t# Delete a pod based on the type and name in the JSON passed into stdin.\n\t\tcat pod.json | kubectl delete -f -\n\n\t\t# Delete pods and services with same names \"baz\" and \"foo\"\n\t\tkubectl delete pod,service baz foo\n\n\t\t# Delete pods and services with label name=myLabel.\n\t\tkubectl delete pods,services -l name=myLabel\n\n\t\t# Delete a pod with minimal delay\n\t\tkubectl delete pod foo --now\n\n\t\t# Force delete a pod on a dead node\n\t\tkubectl delete pod foo --grace-period=0 --force\n\n\t\t# Delete all pods\n\t\tkubectl delete pods --all\x00\n\t\t# Describe a node\n\t\tkubectl describe nodes kubernetes-node-emt8.c.myproject.internal\n\n\t\t# Describe a pod\n\t\tkubectl describe pods/nginx\n\n\t\t# Describe a pod identified by type and name in \"pod.json\"\n\t\tkubectl describe -f pod.json\n\n\t\t# Describe all pods\n\t\tkubectl describe pods\n\n\t\t# Describe pods by label name=myLabel\n\t\tkubectl describe po -l name=myLabel\n\n\t\t# Describe all pods managed by the 'frontend' replication controller (rc-created pods\n\t\t# get the name of the rc as a prefix in the pod the name).\n\t\tkubectl describe pods frontend\x00\n\t\t# Drain node \"foo\", even if there are pods not managed by a ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet on it.\n\t\t$ kubectl drain foo --force\n\n\t\t# As above, but abort if there are pods not managed by a ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet, and use a grace period of 15 minutes.\n\t\t$ kubectl drain foo --grace-period=900\x00\n\t\t# Edit the service named 'docker-registry':\n\t\tkubectl edit svc/docker-registry\n\n\t\t# Use an alternative editor\n\t\tKUBE_EDITOR=\"nano\" kubectl edit svc/docker-registry\n\n\t\t# Edit the job 'myjob' in JSON using the v1 API format:\n\t\tkubectl edit job.v1.batch/myjob -o json\n\n\t\t# Edit the deployment 'mydeployment' in YAML and save the modified config in its annotation:\n\t\tkubectl edit deployment/mydeployment -o yaml --save-config\x00\n\t\t# Get output from running 'date' from pod 123456-7890, using the first container by default\n\t\tkubectl exec 123456-7890 date\n\n\t\t# Get output from running 'date' in ruby-container from pod 123456-7890\n\t\tkubectl exec 123456-7890 -c ruby-container date\n\n\t\t# Switch to raw terminal mode, sends stdin to 'bash' in ruby-container from pod 123456-7890\n\t\t# and sends stdout/stderr from 'bash' back to the client\n\t\tkubectl exec 123456-7890 -c ruby-container -i -t -- bash -il\x00\n\t\t# Get output from running pod 123456-7890, using the first container by default\n\t\tkubectl attach 123456-7890\n\n\t\t# Get output from ruby-container from pod 123456-7890\n\t\tkubectl attach 123456-7890 -c ruby-container\n\n\t\t# Switch to raw terminal mode, sends stdin to 'bash' in ruby-container from pod 123456-7890\n\t\t# and sends stdout/stderr from 'bash' back to the client\n\t\tkubectl attach 123456-7890 -c ruby-container -i -t\n\n\t\t# Get output from the first pod of a ReplicaSet named nginx\n\t\tkubectl attach rs/nginx\n\t\t\x00\n\t\t# Get the documentation of the resource and its fields\n\t\tkubectl explain pods\n\n\t\t# Get the documentation of a specific field of a resource\n\t\tkubectl explain pods.spec.containers\x00\n\t\t# Install bash completion on a Mac using homebrew\n\t\tbrew install bash-completion\n\t\tprintf \"\n# Bash completion support\nsource $(brew --prefix)/etc/bash_completion\n\" >> $HOME/.bash_profile\n\t\tsource $HOME/.bash_profile\n\n\t\t# Load the kubectl completion code for bash into the current shell\n\t\tsource <(kubectl completion bash)\n\n\t\t# Write bash completion code to a file and source if from .bash_profile\n\t\tkubectl completion bash > ~/.kube/completion.bash.inc\n\t\tprintf \"\n# Kubectl shell completion\nsource '$HOME/.kube/completion.bash.inc'\n\" >> $HOME/.bash_profile\n\t\tsource $HOME/.bash_profile\n\n\t\t# Load the kubectl completion code for zsh[1] into the current shell\n\t\tsource <(kubectl completion zsh)\x00\n\t\t# List all pods in ps output format.\n\t\tkubectl get pods\n\n\t\t# List all pods in ps output format with more information (such as node name).\n\t\tkubectl get pods -o wide\n\n\t\t# List a single replication controller with specified NAME in ps output format.\n\t\tkubectl get replicationcontroller web\n\n\t\t# List a single pod in JSON output format.\n\t\tkubectl get -o json pod web-pod-13je7\n\n\t\t# List a pod identified by type and name specified in \"pod.yaml\" in JSON output format.\n\t\tkubectl get -f pod.yaml -o json\n\n\t\t# Return only the phase value of the specified pod.\n\t\tkubectl get -o template pod/web-pod-13je7 --template={{.status.phase}}\n\n\t\t# List all replication controllers and services together in ps output format.\n\t\tkubectl get rc,services\n\n\t\t# List one or more resources by their type and names.\n\t\tkubectl get rc/web service/frontend pods/web-pod-13je7\n\n\t\t# List all resources with different types.\n\t\tkubectl get all\x00\n\t\t# Listen on ports 5000 and 6000 locally, forwarding data to/from ports 5000 and 6000 in the pod\n\t\tkubectl port-forward mypod 5000 6000\n\n\t\t# Listen on port 8888 locally, forwarding to 5000 in the pod\n\t\tkubectl port-forward mypod 8888:5000\n\n\t\t# Listen on a random port locally, forwarding to 5000 in the pod\n\t\tkubectl port-forward mypod :5000\n\n\t\t# Listen on a random port locally, forwarding to 5000 in the pod\n\t\tkubectl port-forward mypod 0:5000\x00\n\t\t# Mark node \"foo\" as schedulable.\n\t\t$ kubectl uncordon foo\x00\n\t\t# Mark node \"foo\" as unschedulable.\n\t\tkubectl cordon foo\x00\n\t\t# Partially update a node using strategic merge patch\n\t\tkubectl patch node k8s-node-1 -p '{\"spec\":{\"unschedulable\":true}}'\n\n\t\t# Partially update a node identified by the type and name specified in \"node.json\" using strategic merge patch\n\t\tkubectl patch -f node.json -p '{\"spec\":{\"unschedulable\":true}}'\n\n\t\t# Update a container's image; spec.containers[*].name is required because it's a merge key\n\t\tkubectl patch pod valid-pod -p '{\"spec\":{\"containers\":[{\"name\":\"kubernetes-serve-hostname\",\"image\":\"new image\"}]}}'\n\n\t\t# Update a container's image using a json patch with positional arrays\n\t\tkubectl patch pod valid-pod --type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/containers/0/image\", \"value\":\"new image\"}]'\x00\n\t\t# Print flags inherited by all commands\n\t\tkubectl options\x00\n\t\t# Print the address of the master and cluster services\n\t\tkubectl cluster-info\x00\n\t\t# Print the client and server versions for the current context\n\t\tkubectl version\x00\n\t\t# Print the supported API versions\n\t\tkubectl api-versions\x00\n\t\t# Replace a pod using the data in pod.json.\n\t\tkubectl replace -f ./pod.json\n\n\t\t# Replace a pod based on the JSON passed into stdin.\n\t\tcat pod.json | kubectl replace -f -\n\n\t\t# Update a single-container pod's image version (tag) to v4\n\t\tkubectl get pod mypod -o yaml | sed 's/\\(image: myimage\\):.*$/\x01:v4/' | kubectl replace -f -\n\n\t\t# Force replace, delete and then re-create the resource\n\t\tkubectl replace --force -f ./pod.json\x00\n\t\t# Return snapshot logs from pod nginx with only one container\n\t\tkubectl logs nginx\n\n\t\t# Return snapshot logs for the pods defined by label app=nginx\n\t\tkubectl logs -lapp=nginx\n\n\t\t# Return snapshot of previous terminated ruby container logs from pod web-1\n\t\tkubectl logs -p -c ruby web-1\n\n\t\t# Begin streaming the logs of the ruby container in pod web-1\n\t\tkubectl logs -f -c ruby web-1\n\n\t\t# Display only the most recent 20 lines of output in pod nginx\n\t\tkubectl logs --tail=20 nginx\n\n\t\t# Show all logs from pod nginx written in the last hour\n\t\tkubectl logs --since=1h nginx\n\n\t\t# Return snapshot logs from first container of a job named hello\n\t\tkubectl logs job/hello\n\n\t\t# Return snapshot logs from container nginx-1 of a deployment named nginx\n\t\tkubectl logs deployment/nginx -c nginx-1\x00\n\t\t# Run a proxy to kubernetes apiserver on port 8011, serving static content from ./local/www/\n\t\tkubectl proxy --port=8011 --www=./local/www/\n\n\t\t# Run a proxy to kubernetes apiserver on an arbitrary local port.\n\t\t# The chosen port for the server will be output to stdout.\n\t\tkubectl proxy --port=0\n\n\t\t# Run a proxy to kubernetes apiserver, changing the api prefix to k8s-api\n\t\t# This makes e.g. the pods api available at localhost:8001/k8s-api/v1/pods/\n\t\tkubectl proxy --api-prefix=/k8s-api\x00\n\t\t# Scale a replicaset named 'foo' to 3.\n\t\tkubectl scale --replicas=3 rs/foo\n\n\t\t# Scale a resource identified by type and name specified in \"foo.yaml\" to 3.\n\t\tkubectl scale --replicas=3 -f foo.yaml\n\n\t\t# If the deployment named mysql's current size is 2, scale mysql to 3.\n\t\tkubectl scale --current-replicas=2 --replicas=3 deployment/mysql\n\n\t\t# Scale multiple replication controllers.\n\t\tkubectl scale --replicas=5 rc/foo rc/bar rc/baz\n\n\t\t# Scale job named 'cron' to 3.\n\t\tkubectl scale --replicas=3 job/cron\x00\n\t\t# Set the last-applied-configuration of a resource to match the contents of a file.\n\t\tkubectl apply set-last-applied -f deploy.yaml\n\n\t\t# Execute set-last-applied against each configuration file in a directory.\n\t\tkubectl apply set-last-applied -f path/\n\n\t\t# Set the last-applied-configuration of a resource to match the contents of a file, will create the annotation if it does not already exist.\n\t\tkubectl apply set-last-applied -f deploy.yaml --create-annotation=true\n\t\t\x00\n\t\t# Show metrics for all pods in the default namespace\n\t\tkubectl top pod\n\n\t\t# Show metrics for all pods in the given namespace\n\t\tkubectl top pod --namespace=NAMESPACE\n\n\t\t# Show metrics for a given pod and its containers\n\t\tkubectl top pod POD_NAME --containers\n\n\t\t# Show metrics for the pods defined by label name=myLabel\n\t\tkubectl top pod -l name=myLabel\x00\n\t\t# Shut down foo.\n\t\tkubectl stop replicationcontroller foo\n\n\t\t# Stop pods and services with label name=myLabel.\n\t\tkubectl stop pods,services -l name=myLabel\n\n\t\t# Shut down the service defined in service.json\n\t\tkubectl stop -f service.json\n\n\t\t# Shut down all resources in the path/to/resources directory\n\t\tkubectl stop -f path/to/resources\x00\n\t\t# Start a single instance of nginx.\n\t\tkubectl run nginx --image=nginx\n\n\t\t# Start a single instance of hazelcast and let the container expose port 5701 .\n\t\tkubectl run hazelcast --image=hazelcast --port=5701\n\n\t\t# Start a single instance of hazelcast and set environment variables \"DNS_DOMAIN=cluster\" and \"POD_NAMESPACE=default\" in the container.\n\t\tkubectl run hazelcast --image=hazelcast --env=\"DNS_DOMAIN=cluster\" --env=\"POD_NAMESPACE=default\"\n\n\t\t# Start a replicated instance of nginx.\n\t\tkubectl run nginx --image=nginx --replicas=5\n\n\t\t# Dry run. Print the corresponding API objects without creating them.\n\t\tkubectl run nginx --image=nginx --dry-run\n\n\t\t# Start a single instance of nginx, but overload the spec of the deployment with a partial set of values parsed from JSON.\n\t\tkubectl run nginx --image=nginx --overrides='{ \"apiVersion\": \"v1\", \"spec\": { ... } }'\n\n\t\t# Start a pod of busybox and keep it in the foreground, don't restart it if it exits.\n\t\tkubectl run -i -t busybox --image=busybox --restart=Never\n\n\t\t# Start the nginx container using the default command, but use custom arguments (arg1 .. argN) for that command.\n\t\tkubectl run nginx --image=nginx -- ... \n\n\t\t# Start the nginx container using a different command and custom arguments.\n\t\tkubectl run nginx --image=nginx --command -- ... \n\n\t\t# Start the perl container to compute \u03c0 to 2000 places and print it out.\n\t\tkubectl run pi --image=perl --restart=OnFailure -- perl -Mbignum=bpi -wle 'print bpi(2000)'\n\n\t\t# Start the cron job to compute \u03c0 to 2000 places and print it out every 5 minutes.\n\t\tkubectl run pi --schedule=\"0/5 * * * ?\" --image=perl --restart=OnFailure -- perl -Mbignum=bpi -wle 'print bpi(2000)'\x00\n\t\t# Update node 'foo' with a taint with key 'dedicated' and value 'special-user' and effect 'NoSchedule'.\n\t\t# If a taint with that key and effect already exists, its value is replaced as specified.\n\t\tkubectl taint nodes foo dedicated=special-user:NoSchedule\n\n\t\t# Remove from node 'foo' the taint with key 'dedicated' and effect 'NoSchedule' if one exists.\n\t\tkubectl taint nodes foo dedicated:NoSchedule-\n\n\t\t# Remove from node 'foo' all the taints with key 'dedicated'\n\t\tkubectl taint nodes foo dedicated-\x00\n\t\t# Update pod 'foo' with the label 'unhealthy' and the value 'true'.\n\t\tkubectl label pods foo unhealthy=true\n\n\t\t# Update pod 'foo' with the label 'status' and the value 'unhealthy', overwriting any existing value.\n\t\tkubectl label --overwrite pods foo status=unhealthy\n\n\t\t# Update all pods in the namespace\n\t\tkubectl label pods --all status=unhealthy\n\n\t\t# Update a pod identified by the type and name in \"pod.json\"\n\t\tkubectl label -f pod.json status=unhealthy\n\n\t\t# Update pod 'foo' only if the resource is unchanged from version 1.\n\t\tkubectl label pods foo status=unhealthy --resource-version=1\n\n\t\t# Update pod 'foo' by removing a label named 'bar' if it exists.\n\t\t# Does not require the --overwrite flag.\n\t\tkubectl label pods foo bar-\x00\n\t\t# Update pods of frontend-v1 using new replication controller data in frontend-v2.json.\n\t\tkubectl rolling-update frontend-v1 -f frontend-v2.json\n\n\t\t# Update pods of frontend-v1 using JSON data passed into stdin.\n\t\tcat frontend-v2.json | kubectl rolling-update frontend-v1 -f -\n\n\t\t# Update the pods of frontend-v1 to frontend-v2 by just changing the image, and switching the\n\t\t# name of the replication controller.\n\t\tkubectl rolling-update frontend-v1 frontend-v2 --image=image:v2\n\n\t\t# Update the pods of frontend by just changing the image, and keeping the old name.\n\t\tkubectl rolling-update frontend --image=image:v2\n\n\t\t# Abort and reverse an existing rollout in progress (from frontend-v1 to frontend-v2).\n\t\tkubectl rolling-update frontend-v1 frontend-v2 --rollback\x00\n\t\t# View the last-applied-configuration annotations by type/name in YAML.\n\t\tkubectl apply view-last-applied deployment/nginx\n\n\t\t# View the last-applied-configuration annotations by file in JSON\n\t\tkubectl apply view-last-applied -f deploy.yaml -o json\x00\n\t\tApply a configuration to a resource by filename or stdin.\n\t\tThis resource will be created if it doesn't exist yet.\n\t\tTo use 'apply', always create the resource initially with either 'apply' or 'create --save-config'.\n\n\t\tJSON and YAML formats are accepted.\n\n\t\tAlpha Disclaimer: the --prune functionality is not yet complete. Do not use unless you are aware of what the current state is. See https://issues.k8s.io/34274.\x00\n\t\tConvert config files between different API versions. Both YAML\n\t\tand JSON formats are accepted.\n\n\t\tThe command takes filename, directory, or URL as input, and convert it into format\n\t\tof version specified by --output-version flag. If target version is not specified or\n\t\tnot supported, convert to latest version.\n\n\t\tThe default output will be printed to stdout in YAML format. One can use -o option\n\t\tto change to output destination.\x00\n\t\tCreate a ClusterRole.\x00\n\t\tCreate a ClusterRoleBinding for a particular ClusterRole.\x00\n\t\tCreate a RoleBinding for a particular Role or ClusterRole.\x00\n\t\tCreate a TLS secret from the given public/private key pair.\n\n\t\tThe public/private key pair must exist before hand. The public key certificate must be .PEM encoded and match the given private key.\x00\n\t\tCreate a configmap based on a file, directory, or specified literal value.\n\n\t\tA single configmap may package one or more key/value pairs.\n\n\t\tWhen creating a configmap based on a file, the key will default to the basename of the file, and the value will\n\t\tdefault to the file content. If the basename is an invalid key, you may specify an alternate key.\n\n\t\tWhen creating a configmap based on a directory, each file whose basename is a valid key in the directory will be\n\t\tpackaged into the configmap. Any directory entries except regular files are ignored (e.g. subdirectories,\n\t\tsymlinks, devices, pipes, etc).\x00\n\t\tCreate a namespace with the specified name.\x00\n\t\tCreate a new secret for use with Docker registries.\n\n\t\tDockercfg secrets are used to authenticate against Docker registries.\n\n\t\tWhen using the Docker command line to push images, you can authenticate to a given registry by running\n\n\t\t $ docker login DOCKER_REGISTRY_SERVER --username=DOCKER_USER --password=DOCKER_PASSWORD --email=DOCKER_EMAIL'.\n\n That produces a ~/.dockercfg file that is used by subsequent 'docker push' and 'docker pull' commands to\n\t\tauthenticate to the registry. The email address is optional.\n\n\t\tWhen creating applications, you may have a Docker registry that requires authentication. In order for the\n\t\tnodes to pull images on your behalf, they have to have the credentials. You can provide this information\n\t\tby creating a dockercfg secret and attaching it to your service account.\x00\n\t\tCreate a pod disruption budget with the specified name, selector, and desired minimum available pods\x00\n\t\tCreate a resource by filename or stdin.\n\n\t\tJSON and YAML formats are accepted.\x00\n\t\tCreate a resourcequota with the specified name, hard limits and optional scopes\x00\n\t\tCreate a role with single rule.\x00\n\t\tCreate a secret based on a file, directory, or specified literal value.\n\n\t\tA single secret may package one or more key/value pairs.\n\n\t\tWhen creating a secret based on a file, the key will default to the basename of the file, and the value will\n\t\tdefault to the file content. If the basename is an invalid key, you may specify an alternate key.\n\n\t\tWhen creating a secret based on a directory, each file whose basename is a valid key in the directory will be\n\t\tpackaged into the secret. Any directory entries except regular files are ignored (e.g. subdirectories,\n\t\tsymlinks, devices, pipes, etc).\x00\n\t\tCreate a service account with the specified name.\x00\n\t\tCreate and run a particular image, possibly replicated.\n\n\t\tCreates a deployment or job to manage the created container(s).\x00\n\t\tCreates an autoscaler that automatically chooses and sets the number of pods that run in a kubernetes cluster.\n\n\t\tLooks up a Deployment, ReplicaSet, or ReplicationController by name and creates an autoscaler that uses the given resource as a reference.\n\t\tAn autoscaler can automatically increase or decrease number of pods deployed within the system as needed.\x00\n\t\tDelete resources by filenames, stdin, resources and names, or by resources and label selector.\n\n\t\tJSON and YAML formats are accepted. Only one type of the arguments may be specified: filenames,\n\t\tresources and names, or resources and label selector.\n\n\t\tSome resources, such as pods, support graceful deletion. These resources define a default period\n\t\tbefore they are forcibly terminated (the grace period) but you may override that value with\n\t\tthe --grace-period flag, or pass --now to set a grace-period of 1. Because these resources often\n\t\trepresent entities in the cluster, deletion may not be acknowledged immediately. If the node\n\t\thosting a pod is down or cannot reach the API server, termination may take significantly longer\n\t\tthan the grace period. To force delete a resource,\tyou must pass a grace\tperiod of 0 and specify\n\t\tthe --force flag.\n\n\t\tIMPORTANT: Force deleting pods does not wait for confirmation that the pod's processes have been\n\t\tterminated, which can leave those processes running until the node detects the deletion and\n\t\tcompletes graceful deletion. If your processes use shared storage or talk to a remote API and\n\t\tdepend on the name of the pod to identify themselves, force deleting those pods may result in\n\t\tmultiple processes running on different machines using the same identification which may lead\n\t\tto data corruption or inconsistency. Only force delete pods when you are sure the pod is\n\t\tterminated, or if your application can tolerate multiple copies of the same pod running at once.\n\t\tAlso, if you force delete pods the scheduler may place new pods on those nodes before the node\n\t\thas released those resources and causing those pods to be evicted immediately.\n\n\t\tNote that the delete command does NOT do resource version checks, so if someone\n\t\tsubmits an update to a resource right when you submit a delete, their update\n\t\twill be lost along with the rest of the resource.\x00\n\t\tDeprecated: Gracefully shut down a resource by name or filename.\n\n\t\tThe stop command is deprecated, all its functionalities are covered by delete command.\n\t\tSee 'kubectl delete --help' for more details.\n\n\t\tAttempts to shut down and delete a resource that supports graceful termination.\n\t\tIf the resource is scalable it will be scaled to 0 before deletion.\x00\n\t\tDisplay Resource (CPU/Memory/Storage) usage of nodes.\n\n\t\tThe top-node command allows you to see the resource consumption of nodes.\x00\n\t\tDisplay Resource (CPU/Memory/Storage) usage of pods.\n\n\t\tThe 'top pod' command allows you to see the resource consumption of pods.\n\n\t\tDue to the metrics pipeline delay, they may be unavailable for a few minutes\n\t\tsince pod creation.\x00\n\t\tDisplay Resource (CPU/Memory/Storage) usage.\n\n\t\tThe top command allows you to see the resource consumption for nodes or pods.\n\n\t\tThis command requires Heapster to be correctly configured and working on the server. \x00\n\t\tDrain node in preparation for maintenance.\n\n\t\tThe given node will be marked unschedulable to prevent new pods from arriving.\n\t\t'drain' evicts the pods if the APIServer supports eviction\n\t\t(http://kubernetes.io/docs/admin/disruptions/). Otherwise, it will use normal DELETE\n\t\tto delete the pods.\n\t\tThe 'drain' evicts or deletes all pods except mirror pods (which cannot be deleted through\n\t\tthe API server). If there are DaemonSet-managed pods, drain will not proceed\n\t\twithout --ignore-daemonsets, and regardless it will not delete any\n\t\tDaemonSet-managed pods, because those pods would be immediately replaced by the\n\t\tDaemonSet controller, which ignores unschedulable markings. If there are any\n\t\tpods that are neither mirror pods nor managed by ReplicationController,\n\t\tReplicaSet, DaemonSet, StatefulSet or Job, then drain will not delete any pods unless you\n\t\tuse --force. --force will also allow deletion to proceed if the managing resource of one\n\t\tor more pods is missing.\n\n\t\t'drain' waits for graceful termination. You should not operate on the machine until\n\t\tthe command completes.\n\n\t\tWhen you are ready to put the node back into service, use kubectl uncordon, which\n\t\twill make the node schedulable again.\n\n\t\t![Workflow](http://kubernetes.io/images/docs/kubectl_drain.svg)\x00\n\t\tEdit a resource from the default editor.\n\n\t\tThe edit command allows you to directly edit any API resource you can retrieve via the\n\t\tcommand line tools. It will open the editor defined by your KUBE_EDITOR, or EDITOR\n\t\tenvironment variables, or fall back to 'vi' for Linux or 'notepad' for Windows.\n\t\tYou can edit multiple objects, although changes are applied one at a time. The command\n\t\taccepts filenames as well as command line arguments, although the files you point to must\n\t\tbe previously saved versions of resources.\n\n\t\tEditing is done with the API version used to fetch the resource.\n\t\tTo edit using a specific API version, fully-qualify the resource, version, and group.\n\n\t\tThe default format is YAML. To edit in JSON, specify \"-o json\".\n\n\t\tThe flag --windows-line-endings can be used to force Windows line endings,\n\t\totherwise the default for your operating system will be used.\n\n\t\tIn the event an error occurs while updating, a temporary file will be created on disk\n\t\tthat contains your unapplied changes. The most common error when updating a resource\n\t\tis another editor changing the resource on the server. When this occurs, you will have\n\t\tto apply your changes to the newer version of the resource, or update your temporary\n\t\tsaved copy to include the latest resource version.\x00\n\t\tMark node as schedulable.\x00\n\t\tMark node as unschedulable.\x00\n\t\tOutput shell completion code for the specified shell (bash or zsh).\n\t\tThe shell code must be evaluated to provide interactive\n\t\tcompletion of kubectl commands. This can be done by sourcing it from\n\t\tthe .bash_profile.\n\n\t\tNote: this requires the bash-completion framework, which is not installed\n\t\tby default on Mac. This can be installed by using homebrew:\n\n\t\t $ brew install bash-completion\n\n\t\tOnce installed, bash_completion must be evaluated. This can be done by adding the\n\t\tfollowing line to the .bash_profile\n\n\t\t $ source $(brew --prefix)/etc/bash_completion\n\n\t\tNote for zsh users: [1] zsh completions are only supported in versions of zsh >= 5.2\x00\n\t\tPerform a rolling update of the given ReplicationController.\n\n\t\tReplaces the specified replication controller with a new replication controller by updating one pod at a time to use the\n\t\tnew PodTemplate. The new-controller.json must specify the same namespace as the\n\t\texisting replication controller and overwrite at least one (common) label in its replicaSelector.\n\n\t\t![Workflow](http://kubernetes.io/images/docs/kubectl_rollingupdate.svg)\x00\n\t\tReplace a resource by filename or stdin.\n\n\t\tJSON and YAML formats are accepted. If replacing an existing resource, the\n\t\tcomplete resource spec must be provided. This can be obtained by\n\n\t\t $ kubectl get TYPE NAME -o yaml\n\n\t\tPlease refer to the models in https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html to find if a field is mutable.\x00\n\t\tSet a new size for a Deployment, ReplicaSet, Replication Controller, or Job.\n\n\t\tScale also allows users to specify one or more preconditions for the scale action.\n\n\t\tIf --current-replicas or --resource-version is specified, it is validated before the\n\t\tscale is attempted, and it is guaranteed that the precondition holds true when the\n\t\tscale is sent to the server.\x00\n\t\tSet the latest last-applied-configuration annotations by setting it to match the contents of a file.\n\t\tThis results in the last-applied-configuration being updated as though 'kubectl apply -f ' was run,\n\t\twithout updating any other parts of the object.\x00\n\t\tTo proxy all of the kubernetes api and nothing else, use:\n\n\t\t $ kubectl proxy --api-prefix=/\n\n\t\tTo proxy only part of the kubernetes api and also some static files:\n\n\t\t $ kubectl proxy --www=/my/files --www-prefix=/static/ --api-prefix=/api/\n\n\t\tThe above lets you 'curl localhost:8001/api/v1/pods'.\n\n\t\tTo proxy the entire kubernetes api at a different root, use:\n\n\t\t $ kubectl proxy --api-prefix=/custom/\n\n\t\tThe above lets you 'curl localhost:8001/custom/api/v1/pods'\x00\n\t\tUpdate field(s) of a resource using strategic merge patch\n\n\t\tJSON and YAML formats are accepted.\n\n\t\tPlease refer to the models in https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html to find if a field is mutable.\x00\n\t\tUpdate the labels on a resource.\n\n\t\t* A label must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to %[1]d characters.\n\t\t* If --overwrite is true, then existing labels can be overwritten, otherwise attempting to overwrite a label will result in an error.\n\t\t* If --resource-version is specified, then updates will use this resource version, otherwise the existing resource-version will be used.\x00\n\t\tUpdate the taints on one or more nodes.\n\n\t\t* A taint consists of a key, value, and effect. As an argument here, it is expressed as key=value:effect.\n\t\t* The key must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to %[1]d characters.\n\t\t* The value must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to %[2]d characters.\n\t\t* The effect must be NoSchedule, PreferNoSchedule or NoExecute.\n\t\t* Currently taint can only apply to node.\x00\n\t\tView the latest last-applied-configuration annotations by type/name or file.\n\n\t\tThe default output will be printed to stdout in YAML format. One can use -o option\n\t\tto change output format.\x00\n\t # !!!Important Note!!!\n\t # Requires that the 'tar' binary is present in your container\n\t # image. If 'tar' is not present, 'kubectl cp' will fail.\n\n\t # Copy /tmp/foo_dir local directory to /tmp/bar_dir in a remote pod in the default namespace\n\t\tkubectl cp /tmp/foo_dir :/tmp/bar_dir\n\n # Copy /tmp/foo local file to /tmp/bar in a remote pod in a specific container\n\t\tkubectl cp /tmp/foo :/tmp/bar -c \n\n\t\t# Copy /tmp/foo local file to /tmp/bar in a remote pod in namespace \n\t\tkubectl cp /tmp/foo /:/tmp/bar\n\n\t\t# Copy /tmp/foo from a remote pod to /tmp/bar locally\n\t\tkubectl cp /:/tmp/foo /tmp/bar\x00\n\t # Create a new TLS secret named tls-secret with the given key pair:\n\t kubectl create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key\x00\n\t # Create a new namespace named my-namespace\n\t kubectl create namespace my-namespace\x00\n\t # Create a new secret named my-secret with keys for each file in folder bar\n\t kubectl create secret generic my-secret --from-file=path/to/bar\n\n\t # Create a new secret named my-secret with specified keys instead of names on disk\n\t kubectl create secret generic my-secret --from-file=ssh-privatekey=~/.ssh/id_rsa --from-file=ssh-publickey=~/.ssh/id_rsa.pub\n\n\t # Create a new secret named my-secret with key1=supersecret and key2=topsecret\n\t kubectl create secret generic my-secret --from-literal=key1=supersecret --from-literal=key2=topsecret\x00\n\t # Create a new service account named my-service-account\n\t kubectl create serviceaccount my-service-account\x00\n\t# Create a new ExternalName service named my-ns \n\tkubectl create service externalname my-ns --external-name bar.com\x00\n\tCreate an ExternalName service with the specified name.\n\n\tExternalName service references to an external DNS address instead of\n\tonly pods, which will allow application authors to reference services\n\tthat exist off platform, on other clusters, or locally.\x00\n\tHelp provides help for any command in the application.\n\tSimply type kubectl help [path to command] for full details.\x00\n # Create a new LoadBalancer service named my-lbs\n kubectl create service loadbalancer my-lbs --tcp=5678:8080\x00\n # Create a new clusterIP service named my-cs\n kubectl create service clusterip my-cs --tcp=5678:8080\n\n # Create a new clusterIP service named my-cs (in headless mode)\n kubectl create service clusterip my-cs --clusterip=\"None\"\x00\n # Create a new deployment named my-dep that runs the busybox image.\n kubectl create deployment my-dep --image=busybox\x00\n # Create a new nodeport service named my-ns\n kubectl create service nodeport my-ns --tcp=5678:8080\x00\n # Dump current cluster state to stdout\n kubectl cluster-info dump\n\n # Dump current cluster state to /path/to/cluster-state\n kubectl cluster-info dump --output-directory=/path/to/cluster-state\n\n # Dump all namespaces to stdout\n kubectl cluster-info dump --all-namespaces\n\n # Dump a set of namespaces to /path/to/cluster-state\n kubectl cluster-info dump --namespaces default,kube-system --output-directory=/path/to/cluster-state\x00\n # Update pod 'foo' with the annotation 'description' and the value 'my frontend'.\n # If the same annotation is set multiple times, only the last value will be applied\n kubectl annotate pods foo description='my frontend'\n\n # Update a pod identified by type and name in \"pod.json\"\n kubectl annotate -f pod.json description='my frontend'\n\n # Update pod 'foo' with the annotation 'description' and the value 'my frontend running nginx', overwriting any existing value.\n kubectl annotate --overwrite pods foo description='my frontend running nginx'\n\n # Update all pods in the namespace\n kubectl annotate pods --all description='my frontend running nginx'\n\n # Update pod 'foo' only if the resource is unchanged from version 1.\n kubectl annotate pods foo description='my frontend running nginx' --resource-version=1\n\n # Update pod 'foo' by removing an annotation named 'description' if it exists.\n # Does not require the --overwrite flag.\n kubectl annotate pods foo description-\x00\n Create a LoadBalancer service with the specified name.\x00\n Create a clusterIP service with the specified name.\x00\n Create a deployment with the specified name.\x00\n Create a nodeport service with the specified name.\x00\n Dumps cluster info out suitable for debugging and diagnosing cluster problems. By default, dumps everything to\n stdout. You can optionally specify a directory with --output-directory. If you specify a directory, kubernetes will\n build a set of files in that directory. By default only dumps things in the 'kube-system' namespace, but you can\n switch to a different namespace with the --namespaces flag, or specify --all-namespaces to dump all namespaces.\n\n The command also dumps the logs of all of the pods in the cluster, these logs are dumped into different directories\n based on namespace and pod name.\x00\n Display addresses of the master and services with label kubernetes.io/cluster-service=true\n To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.\x00A comma-delimited set of quota scopes that must all match each object tracked by the quota.\x00A comma-delimited set of resource=quantity pairs that define a hard limit.\x00A label selector to use for this budget. Only equality-based selector requirements are supported.\x00A label selector to use for this service. Only equality-based selector requirements are supported. If empty (the default) infer the selector from the replication controller or replica set.)\x00A schedule in the Cron format the job should be run with.\x00Additional external IP address (not managed by Kubernetes) to accept for the service. If this IP is routed to a node, the service can be accessed by this IP in addition to its generated service IP.\x00An inline JSON override for the generated object. If this is non-empty, it is used to override the generated object. Requires that the object supply a valid apiVersion field.\x00An inline JSON override for the generated service object. If this is non-empty, it is used to override the generated object. Requires that the object supply a valid apiVersion field. Only used if --expose is true.\x00Apply a configuration to a resource by filename or stdin\x00Approve a certificate signing request\x00Assign your own ClusterIP or set to 'None' for a 'headless' service (no loadbalancing).\x00Attach to a running container\x00Auto-scale a Deployment, ReplicaSet, or ReplicationController\x00ClusterIP to be assigned to the service. Leave empty to auto-allocate, or set to 'None' to create a headless service.\x00ClusterRole this ClusterRoleBinding should reference\x00ClusterRole this RoleBinding should reference\x00Container name which will have its image upgraded. Only relevant when --image is specified, ignored otherwise. Required when using --image on a multi-container pod\x00Convert config files between different API versions\x00Copy files and directories to and from containers.\x00Create a ClusterRoleBinding for a particular ClusterRole\x00Create a LoadBalancer service.\x00Create a NodePort service.\x00Create a RoleBinding for a particular Role or ClusterRole\x00Create a TLS secret\x00Create a clusterIP service.\x00Create a configmap from a local file, directory or literal value\x00Create a deployment with the specified name.\x00Create a namespace with the specified name\x00Create a pod disruption budget with the specified name.\x00Create a quota with the specified name.\x00Create a resource by filename or stdin\x00Create a secret for use with a Docker registry\x00Create a secret from a local file, directory or literal value\x00Create a secret using specified subcommand\x00Create a service account with the specified name\x00Create a service using specified subcommand.\x00Create an ExternalName service.\x00Delete resources by filenames, stdin, resources and names, or by resources and label selector\x00Delete the specified cluster from the kubeconfig\x00Delete the specified context from the kubeconfig\x00Deny a certificate signing request\x00Deprecated: Gracefully shut down a resource by name or filename\x00Describe one or many contexts\x00Display Resource (CPU/Memory) usage of nodes\x00Display Resource (CPU/Memory) usage of pods\x00Display Resource (CPU/Memory) usage.\x00Display cluster info\x00Display clusters defined in the kubeconfig\x00Display merged kubeconfig settings or a specified kubeconfig file\x00Display one or many resources\x00Displays the current-context\x00Documentation of resources\x00Drain node in preparation for maintenance\x00Dump lots of relevant info for debugging and diagnosis\x00Edit a resource on the server\x00Email for Docker registry\x00Execute a command in a container\x00Explicit policy for when to pull container images. Required when --image is same as existing image, ignored otherwise.\x00Forward one or more local ports to a pod\x00Help about any command\x00IP to assign to the Load Balancer. If empty, an ephemeral IP will be created and used (cloud-provider specific).\x00If non-empty, set the session affinity for the service to this; legal values: 'None', 'ClientIP'\x00If non-empty, the annotation update will only succeed if this is the current resource-version for the object. Only valid when specifying a single resource.\x00If non-empty, the labels update will only succeed if this is the current resource-version for the object. Only valid when specifying a single resource.\x00Image to use for upgrading the replication controller. Must be distinct from the existing image (either new image or new image tag). Can not be used with --filename/-f\x00Manage a deployment rollout\x00Mark node as schedulable\x00Mark node as unschedulable\x00Mark the provided resource as paused\x00Modify certificate resources.\x00Modify kubeconfig files\x00Name or number for the port on the container that the service should direct traffic to. Optional.\x00Only return logs after a specific date (RFC3339). Defaults to all logs. Only one of since-time / since may be used.\x00Output shell completion code for the specified shell (bash or zsh)\x00Output the formatted object with the given group version (for ex: 'extensions/v1beta1').)\x00Password for Docker registry authentication\x00Path to PEM encoded public key certificate.\x00Path to private key associated with given certificate.\x00Perform a rolling update of the given ReplicationController\x00Precondition for resource version. Requires that the current resource version match this value in order to scale.\x00Print the client and server version information\x00Print the list of flags inherited by all commands\x00Print the logs for a container in a pod\x00Replace a resource by filename or stdin\x00Resume a paused resource\x00Role this RoleBinding should reference\x00Run a particular image on the cluster\x00Run a proxy to the Kubernetes API server\x00Server location for Docker registry\x00Set a new size for a Deployment, ReplicaSet, Replication Controller, or Job\x00Set specific features on objects\x00Set the last-applied-configuration annotation on a live object to match the contents of a file.\x00Set the selector on a resource\x00Sets a cluster entry in kubeconfig\x00Sets a context entry in kubeconfig\x00Sets a user entry in kubeconfig\x00Sets an individual value in a kubeconfig file\x00Sets the current-context in a kubeconfig file\x00Show details of a specific resource or group of resources\x00Show the status of the rollout\x00Synonym for --target-port\x00Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service\x00The image for the container to run.\x00The image pull policy for the container. If left empty, this value will not be specified by the client and defaulted by the server\x00The key to use to differentiate between two different controllers, default 'deployment'. Only relevant when --image is specified, ignored otherwise\x00The minimum number or percentage of available pods this budget requires.\x00The name for the newly created object.\x00The name for the newly created object. If not specified, the name of the input resource will be used.\x00The name of the API generator to use, see http://kubernetes.io/docs/user-guide/kubectl-conventions/#generators for a list.\x00The name of the API generator to use. Currently there is only 1 generator.\x00The name of the API generator to use. There are 2 generators: 'service/v1' and 'service/v2'. The only difference between them is that service port in v1 is named 'default', while it is left unnamed in v2. Default is 'service/v2'.\x00The name of the generator to use for creating a service. Only used if --expose is true\x00The network protocol for the service to be created. Default is 'TCP'.\x00The port that the service should serve on. Copied from the resource being exposed, if unspecified\x00The port that this container exposes. If --expose is true, this is also the port used by the service that is created.\x00The resource requirement limits for this container. For example, 'cpu=200m,memory=512Mi'. Note that server side components may assign limits depending on the server configuration, such as limit ranges.\x00The resource requirement requests for this container. For example, 'cpu=100m,memory=256Mi'. Note that server side components may assign requests depending on the server configuration, such as limit ranges.\x00The restart policy for this Pod. Legal values [Always, OnFailure, Never]. If set to 'Always' a deployment is created, if set to 'OnFailure' a job is created, if set to 'Never', a regular pod is created. For the latter two --replicas must be 1. Default 'Always', for CronJobs `Never`.\x00The type of secret to create\x00Type for this service: ClusterIP, NodePort, or LoadBalancer. Default is 'ClusterIP'.\x00Undo a previous rollout\x00Unsets an individual value in a kubeconfig file\x00Update field(s) of a resource using strategic merge patch\x00Update image of a pod template\x00Update resource requests/limits on objects with pod templates\x00Update the annotations on a resource\x00Update the labels on a resource\x00Update the taints on one or more nodes\x00Username for Docker registry authentication\x00View latest last-applied-configuration annotations of a resource/object\x00View rollout history\x00Where to output the files. If empty or '-' uses stdout, otherwise creates a directory hierarchy in that directory\x00dummy restart flag)\x00external name of service\x00kubectl controls the Kubernetes cluster manager\x00Project-Id-Version: \nReport-Msgid-Bugs-To: EMAIL\nPO-Revision-Date: 2020-12-11 17:03+0100\nLanguage-Team: \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nX-Generator: Poedit 2.4.2\nLast-Translator: Carlos Panato \nPlural-Forms: nplurals=2; plural=(n > 1);\nLanguage: pt_BR\nX-Poedit-KeywordsList: \n\x00\n\t\t # Criar o ClusterRoleBinding para user1, user2, e group1 utilizando o ClusterRole cluster-admin\n\t\t kubectl create clusterrolebinding cluster-admin --clusterrole=cluster-admin \u2014user=user1 \u2014user=user2 \u2014group=group1\x00\n\t\t # Criar uma RoleBinding para user1, user2, e group1 utilizando o admin ClusterRole\n\t\t kubectl create rolebinding admin --clusterrole=admin \u2014user=user1 \u2014user=user2 \u2014group=group1\x00\n\t\t # Criar um novo configmap com o nome de my-config baseado na pasta bar\n\t\t kubectl create configmap my-config \u2014from-file=path/to/bar\n\n\t\t # Cria um novo configmap com o nome my-config, onde cada chave possui o valor especificado em um arquivo distinto no disco\n\t\t kubectl create configmap my-config \u2014from-file=key1=/path/to/bar/file1.txt \u2014from-file=key2=/path/to/bar/file2.txt\n\n\t\t # Criar um novo configmap com o nome de my-config com key1=config1 e key2=config2\n\t\t kubectl create configmap my-config \u2014from-literal=key1=config1 \u2014from-literal=key2=config2\x00\n\t\t # Se voc\u00ea ainda n\u00e3o tem o arquivo .dockercfg, voc\u00ea pode gerar diretamente o dockercfg secret utilizando o comando:\n\t\t kubectl create secret docker-registry my-secret \u2014docker-server=DOCKER_REGISTRY_SERVER \u2014docker-username=DOCKER_USER \u2014docker-password=DOCKER_PASSWORD \u2014docker-email=DOCKER_EMAIL\x00\n\t\t # Mostra as m\u00e9tricas para todos os nodes\n\t\t kubectl top node\n\n\t\t # Mostra as m\u00e9tricas para um node espec\u00edfico\n\t\t kubectl top node NODE_NAME\x00\n\t\t# Aplica a configura\u00e7\u00e3o do arquivo pod.json a um pod.\n\t\tkubectl apply -f ./pod.json\n\n\t\t# Aplica o JSON recebido via stdin para um pod.\n\t\tcat pod.json | kubectl apply -f -\n\n\t\t# Nota: \u2014prune ainda est\u00e1 em Alpha\n\t\t# Aplica a configura\u00e7\u00e3o do manifest.yaml que conter o label app=nginx e remove todos os outros recursos que n\u00e3o estejam no arquivo e n\u00e3o contenham o label.\n\t\tkubectl apply \u2014prune -f manifest.yaml -l app=nginx\n\n\t\t# Aplica a configura\u00e7\u00e3o do manifest.yaml e remove todos os outros configmaps que n\u00e3o est\u00e3o no arquivo.\n\t\tkubectl apply \u2014prune -f manifest.yaml \u2014all \u2014prune-whitelist=core/v1/ConfigMap\x00\n\t\t# Escala automaticamente um deployment \"foo\", com o n\u00famero de pods entre 2 e 10, sem especificar a utiliza\u00e7\u00e3o da CPU o padr\u00e3o da pol\u00edtica de autoscaling ser\u00e1 utilizado:\n\t\tkubectl autoscale deployment foo \u2014min=2 \u2014max=10\n\n\t\t# Escala automaticamente um replication controller \"foo\", com o n\u00famero de pods entre 1 and 5, e definindo a utiliza\u00e7\u00e3o da CPU em 80%:\n\t\tkubectl autoscale rc foo \u2014max=5 \u2014cpu-percent=80\x00\n\t\t# converte o arquivo 'pod.yaml' para a vers\u00e3o mais atual e imprime a sa\u00edda para o stdout.\n\t\tkubectl convert -f pod.yaml\n\n\t\t# Converte o estado atual do recurso especificado pelo 'pod.yaml' para a vers\u00e3o mais atual\n\t\t# e imprime a sa\u00edda para o stdout no formato json.\n\t\tkubectl convert -f pod.yaml \u2014local -o json\n\n\t\t# Converte todos os arquivos dentro do diret\u00f3rio atual para a vers\u00e3o mais recente e cria todos.\n\t\tkubectl convert -f . | kubectl create -f -\x00\n\t\t# Cria um ClusterRole com o nome de \"pod-reader\" que permite o usu\u00e1rio realizar \"get\", \"watch\" e \"list\" em pods\n\t\tkubectl create clusterrole pod-reader \u2014verb=get,list,watch \u2014resource=pods\n\n\t\t# Cria a ClusterRole com o nome de \"pod-reader\" com um ResourceName especificado\n\t\tkubectl create clusterrole pod-reader \u2014verb=get,list,watch \u2014resource=pods \u2014resource-name=readablepod\x00\n\t\t# Cria uma Role com o nome de \"pod-reader\" que permite o usu\u00e1rio realizar \"get\", \"watch\" e \"list\" em pods\n\t\tkubectl create role pod-reader \u2014verb=get \u2014verb=list \u2014verb=watch \u2014resource=pods\n\n\t\t# Cria uma Role com o nome de \"pod-reader\" com um ResourceName especificado\n\t\tkubectl create role pod-reader \u2014verb=get \u2014verg=list \u2014verb=watch \u2014resource=pods \u2014resource-name=readablepod\x00\n\t\t# Cria um novo resourcequota com o nome de my-quota\n\t\tkubectl create quota my-quota \u2014hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10\n\n\t\t# Cria um novo resourcequota com o nome de best-effort\n\t\tkubectl create quota best-effort \u2014hard=pods=100 \u2014scopes=BestEffort\x00\n\t\t# Cria um pod disruption budget com o nome de my-pdb que ir\u00e1 selecionar todos os pods com o label app=rails\n\t\t# e requer que pelo menos um deles esteja dispon\u00edvel a qualquer momento.\n\t\tkubectl create poddisruptionbudget my-pdb \u2014selector=app=rails \u2014min-available=1\n\n\t\t# Cria um pod disruption budget com o nome de my-pdb que ir\u00e1 selecionar todos os pods com o label app=nginx\n\t\t# e requer pelo menos que metade dos pods selecionados estejam dispon\u00edveis em qualquer momento.\n\t\tkubectl create pdb my-pdb \u2014selector=app=nginx \u2014min-available=50%\x00\n\t\t# Cria um pod utilizando o arquivo pod.json.\n\t\tkubectl create -f ./pod.json\n\n\t\t# Cria um pod utilizando o JSON recebido via stdin.\n\t\tcat pod.json | kubectl create -f -\n\n\t\t# Edita o conte\u00fado do arquivo docker-registry.yaml em JSON utilizando o formato da API v1, criando o recurso com o conte\u00fado editado.\n\t\tkubectl create -f docker-registry.yaml \u2014edit \u2014output-version=v1 -o json\x00\n\t\t# Cria um servi\u00e7o para um nginx replicado, que escuta na porta 80 e conecta na porta 8000 dos containers.\n\\t\tkubectl expose rc nginx \u2014port=80 \u2014target-port=8000\n\n\t\t# Cria um servi\u00e7o para um replication controller identificado por tipo e com o nome especificado em \"nginx-controller.yaml\", que escuta na porta 80 e conecta na porta 8000 dos containers.\n\t\tkubectl expose -f nginx-controller.yaml \u2014port=80 \u2014target-port=8000\n\n\t\t# Cria um servi\u00e7o para um pod valid-pod, que escuta na porta 444 com o nome \"frontend\"\n\t\tkubectl expose pod valid-pod \u2014port=444 \u2014name=frontend\n\n\t\t# Cria um segundo servi\u00e7o baseado no servi\u00e7o acima, expondo a porta 8443 do container como porta 443 e com nome \"nginx-https\"\n\t\tkubectl expose service nginx \u2014port=443 \u2014target-port=8443 \u2014name=nginx-https\n\n\t\t# Cria um servi\u00e7o para uma aplica\u00e7\u00e3o streaming replicada na porta 4100 com trafico balanceado UDP e nome 'video-stream'.\n\t\tkubectl expose rc streamer \u2014port=4100 \u2014protocol=udp \u2014name=video-stream\n\n\t\t# Cria um servi\u00e7o para um nginx replicado usando o replica set, que escuta na porta 80 e conecta na porta 8000 dos containers.\n\t\tkubectl expose rs nginx \u2014port=80 \u2014target-port=8000\n\n\t\t# Cria um servi\u00e7o para um deployment nginx, que escuta na porta 80 e conecta na porta 8000 dos containers.\n\t\tkubectl expose deployment nginx \u2014port=80 \u2014target-port=8000\x00\n\t\t# Remove um pod usando o tipo e nome especificado no arquivo pod.json.\n\t\tkubectl delete -f ./pod.json\n\n\t\t# Remove um pod baseado no tipo e nome no JSON passado na entrada de comando(stdin).\n\t\tcat pod.json | kubectl delete -f -\n\n\t\t# Remove pods e servi\u00e7os com os nomes \"baz\" e \"foo\"\n\t\tkubectl delete pod,service baz foo\n\n\t\t# Remove pods e servi\u00e7os com label name=myLabel.\n\t\tkubectl delete pods,services -l name=myLabel\n\n\t\t# Remove um pod com um m\u00ednimo de delay\n\t\tkubectl delete pod foo \u2014now\n\n\t\t# For\u00e7a a remo\u00e7\u00e3o de um pod em um node morto\n\t\tkubectl delete pod foo \u2014grace-period=0 \u2014force\n\n\t\t# Remove todos os pods\n\t\tkubectl delete pods \u2014all\x00\n\t\t# Descreve um node\n\t\tkubectl describe nodes kubernetes-node-emt8.c.myproject.internal\n\n\t\t# Descreve um pod\n\t\tkubectl describe pods/nginx\n\n\t\t# Descreve um pod identificado pelo tipo e nome no arquivo \"pod.json\"\n\t\tkubectl describe -f pod.json\n\n\t\t# Descreve todos os pods\n\t\tkubectl describe pods\n\n\t\t# Descreve os pods com label name=myLabel\n\t\tkubectl describe po -l name=myLabel\n\n\t\t# Descreve todos os pods gerenciados pelo replication controller 'frontend' (rc-created pods\n\t\t# tem o nome de rc como prefixo no nome do pod).\n\t\tkubectl describe pods frontend\x00\n\t\t# Drena o node \"foo\", mesmo se os pods n\u00e3o s\u00e3o gerenciados por um ReplicationController, ReplicaSet, Job, DaemonSet ou StatefulSet.\n\t\t$ kubectl drain foo \u2014force\n\n\t\t# Mesmo que acima, mas \u00e9 interrompido se os pods n\u00e3o s\u00e3o gerenciados por um ReplicationController, ReplicaSet, Job, DaemonSet ou StatefulSet, e tem espera por 15 minutos.\n\t\t$ kubectl drain foo \u2014grace-period=900\x00\n\t\t# Edita o servi\u00e7o chamado 'docker-registry':\n\t\tkubectl edit svc/docker-registry\n\n\t\t# Usa um editor alternativo\n\t\tKUBE_EDITOR=\"nano\" kubectl edit svc/docker-registry\n\n\t\t# Edita o Job 'myjob' em JSON utilizando o format da API v1:\n\t\tkubectl edit job.v1.batch/myjob -o json\n\n\t\t# Edita o deployment 'mydeployment' em YAML e salva a configura\u00e7\u00e3o modificada em sua annotation:\n\t\tkubectl edit deployment/mydeployment -o yaml \u2014save-config\x00\n\t\t# Pega a sa\u00edda de execu\u00e7\u00e3o do comando 'date' do pod 123456-7890, usando o primeiro container por padr\u00e3o\n\t\tkubectl exec 123456-7890 date\n\n\t\t# Pega a sa\u00edda de execu\u00e7\u00e3o do comando 'date' no ruby-container do pod 123456-7890\n\t\tkubectl exec 123456-7890 -c ruby-container date\n\n\t\t# Troca para raw terminal mode, envia stdin para o 'bash' no ruby-container do pod 123456-7890\n\t\t# e envia stdout/stderr do 'bash' de volta para o cliente\n\t\tkubectl exec 123456-7890 -c ruby-container -i -t \u2014 bash -il\x00\n\t\t# Pega a sa\u00edda do pod em execu\u00e7\u00e3o 123456-7890, utilizando o primeiro container por padr\u00e3o\n\t\tkubectl attach 123456-7890\n\n\t\t# Pega a sa\u00edda do ruby-container do pod 123456-7890\n\t\tkubectl attach 123456-7890 -c ruby-container\n\n\t\t# Troca para raw terminal mode, envia stdin para o 'bash' no ruby-container do pod 123456-7890\n\t\t# e envia stdout/stderr do 'bash' de volta para o cliente\n\t\tkubectl attach 123456-7890 -c ruby-container -i -t\n\n\t\t# Pega a sa\u00edda do primeiro pod de um ReplicaSet chamado nginx\n\t\tkubectl attach rs/nginx\n\t\t\x00\n\t\t# Mostra a documenta\u00e7\u00e3o do recurso e seus campos\n\t\tkubectl explain pods\n\n\t\t# Mostra a documenta\u00e7\u00e3o de um campo espec\u00edfico de um recurso\n\t\tkubectl explain pods.spec.containers\x00\n\t\t# Instala o auto completar do bash no Mac utilizando homebrew\n\t\tbrew install bash-completion\n\t\tprintf \"\n# Bash completion support\nsource $(brew \u2014prefix)/etc/bash_completion\n\" >> $HOME/.bash_profile\n\t\tsource $HOME/.bash_profile\n\n\t\t# Carrega o c\u00f3digo de auto complentar do kubectl para o bash no shell corrente\n\t\tsource <(kubectl completion bash)\n\n\t\t# Escreve o c\u00f3digo de autocompletar do bash no arquivo de perfil e faz o source se \u00e9 para o .bash_profile\n\t\tkubectl completion bash > ~/.kube/completion.bash.inc\n\t\tprintf \"\n# Kubectl shell completion\nsource '$HOME/.kube/completion.bash.inc'\n\" >> $HOME/.bash_profile\n\t\tsource $HOME/.bash_profile\n\n\t\t# Carrega o c\u00f3digo de auto complentar do kubectl para zsh[1] no shell em utiliza\u00e7\u00e3o\n\t\tsource <(kubectl completion zsh)\x00\n\t\t# Lista todos os pods no formato de sa\u00edda ps.\n\t\tkubectl get pods\n\n\t\t# Lista todos os pods no formato de sa\u00edda ps com mais informa\u00e7\u00f5es (como o nome do node).\n\t\tkubectl get pods -o wide\n\n\t\t# Lista um \u00fanico replication controller com o nome especificado no formato de sa\u00edda ps\n\t\tkubectl get replicationcontroller web\n\n\t\t# Lista um \u00fanico pod e usa o formato de sa\u00edda JSON.\n\t\tkubectl get -o json pod web-pod-13je7\n\n\t\t# Lista o pod identificado com o tipo e nome especificado no \"pod.yaml\" e usa o formato de sa\u00edda JSON.\n\t\tkubectl get -f pod.yaml -o json\n\n\t\t# Mostra apenas em que est\u00e1gio o pod especificado est\u00e1.\n\t\tkubectl get -o template pod/web-pod-13je7 \u2014template={{.status.phase}}\n\n\t\t# Lista todos os replication controllers e services juntos no formato de sa\u00edda ps.\n\t\tkubectl get rc,services\n\n\t\t# Lista um ou mais recursos pelo seu tipo e nomes.\n\t\tkubectl get rc/web service/frontend pods/web-pod-13je7\n\n\t\t# Lista todos os recursos e com tipos diferentes.\n\t\tkubectl get all\x00\n\t\t# Escuta nas portas locais 5000 e 6000, e redireciona os dados de/para as portas 5000 e 6000 no pod\n\t\tkubectl port-forward mypod 5000 6000\n\n\t\t# Escuta na porta local 8888 localmente, e redireciona para a porta 5000 no pod\n\t\tkubectl port-forward mypod 8888:5000\n\n\t\t# Escuta uma porta local aleat\u00f3ria, e redireciona para a porta 5000 no pod\n\t\tkubectl port-forward mypod :5000\n\n\t\t# Escuta uma porta local aleat\u00f3ria, e redireciona para a porta 5000 no pod\\n\n\t\tkubectl port-forward mypod 0:5000\x00\n\t\t# Remove a restri\u00e7\u00e3o de execu\u00e7\u00e3o de Pods no node \"foo\".\n\t\t$ kubectl uncordon foo\x00\n\t\t# Restringe a execu\u00e7\u00e3o de novos Pods no node \"foo\".\n\t\tkubectl cordon foo\x00\n\t\t# Atualiza parcialmente um node utilizando a estrat\u00e9gia merge patch\n\t\tkubectl patch node k8s-node-1 -p '{\"spec\":{\"unschedulable\":true}}'\n\n\t\t# Atualiza parcialmente um node identificado pelo tipo e nome no arquivo \"node.json\" utilizando a estrat\u00e9gia merge patch\n\t\tkubectl patch -f node.json -p '{\"spec\":{\"unschedulable\":true}}'\n\n\t\t# Atualiza uma imagem em um container; spec.containers[*].name \u00e9 requerido pois ser\u00e1 usado como \u00edndice para a mudan\u00e7a\n\t\tkubectl patch pod valid-pod -p '{\"spec\":{\"containers\":[{\"name\":\"kubernetes-serve-hostname\",\"image\":\"new image\"}]}}'\n\n\t\t# Atualiza uma imagem em um container utilizando o json patch com positional arrays\n\t\tkubectl patch pod valid-pod \u2014type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/containers/0/image\", \"value\":\"new image\"}]'\x00\n\t\t# Mostra as op\u00e7\u00f5es herdadas por todos os comandos\n\t\tkubectl options\x00\n\t\t# Mostra o endere\u00e7o do servidor de gerenciamento e dos servi\u00e7os do cluster\n\t\tkubectl cluster-info\x00\n\t\t# Imprime a vers\u00e3o do cliente e do servidor para o contexto atual\n\t\tkubectl version\x00\n\t\t# Mostra as vers\u00f5es de API suportadas\n\t\tkubectl api-versions\x00\n\t\t# Substitui um pod utlizando os dados contidos em pod.json.\n\t\tkubectl replace -f ./pod.json\n\n\t\t# Troca um pod com base no JSON fornecido no stdin.\n\t\tcat pod.json | kubectl replace -f -\n\n\t\t# Atualiza uma vers\u00e3o de imagem (tag) de um pod com um \u00fanico container para v4\n\t\tkubectl get pod mypod -o yaml | sed 's/\\(image: myimage\\):.*$/\x01:v4/' | kubectl replace -f -\n\n\t\t# For\u00e7a a troca, removendo e recriando o recurso\n\t\tkubectl replace \u2014force -f ./pod.json\x00\n\t\t# Retorna os logs do pod nginx com um \u00fanico container\n\t\tkubectl logs nginx\n\n\t\t# Retorna os logs dos pods definidos pelo label app=nginx\n\t\tkubectl logs -lapp=nginx\n\n\t\t# Retorna os logs do container ruby finalizado do pod web-1\n\t\tkubectl logs -p -c ruby web-1\n\n\t\t# Come\u00e7a o streaming de logs de um ruby container no pod web-1\n\t\tkubectl logs -f -c ruby web-1\n\n\t\t# Mostra apenas as 20 linhas mais recentes de sa\u00edda do pod nginx\n\t\tkubectl logs \u2014tail=20 nginx\n\n\t\t# Mostra todos os logs do pod nginx escrito na \u00faltima hora\n\t\tkubectl logs \u2014since=1h nginx\n\n\t\t# Retorna os logs do primeiro container com o Job chamado hello\n\t\tkubectl logs job/hello\n\n\t\t# Retorna os logs do container nginx-1 de um deployment chamado nginx\n\t\tkubectl logs deployment/nginx -c nginx-1\x00\n\t\t# Executa um proxy para o apiserver do kubernetes na porta 8011, servindo um conte\u00fado est\u00e1tico do caminho ./local/www/\n\t\tkubectl proxy \u2014port=8011 \u2014www=./local/www/\n\n\t\t# Executa um proxy para o apiserver do kubernetes em uma porta local arbitr\u00e1ria.\n\t\t# A porta escolhida para o servidor ser\u00e1 utilizada para o sa\u00edda de stdout.\n\t\tkubectl proxy \u2014port=0\n\n\t\t# Executa um proxy para o apiserver do kubernetes, mudando o prefixo do api para k8s-api\n\t\t# Com isso a api dos pods estar\u00e3o dispon\u00edvel em localhost:8001/k8s-api/v1/pods/\n\t\tkubectl proxy \u2014api-prefix=/k8s-api\x00\n\t\t# Escala um replicaset chamado 'foo' para 3.\n\t\tkubectl scale \u2014replicas=3 rs/foo\n\n\t\t# Escala um recurso identificado pelo tipo e nome especificado no arquivo \"foo.yaml\" para 3.\n\t\tkubectl scale \u2014replicas=3 -f foo.yaml\n\n\t\t# Se um deployment chamado mysql tem tamanho 2, escala o mysql para 3.\n\t\tkubectl scale \u2014current-replicas=2 \u2014replicas=3 deployment/mysql\n\n\t\t# Escala m\u00faltiplos replication controllers.\n\t\tkubectl scale \u2014replicas=5 rc/foo rc/bar rc/baz\n\n\t\t# Escala um Job chamado 'cron' para 3.\n\t\tkubectl scale \u2014replicas=3 job/cron\x00\n\t\t# Ajusta o last-applied-configuration de um recurso para corresponder ao conte\u00fado de um arquivo.\n\t\tkubectl apply set-last-applied -f deploy.yaml\n\n\t\t# Executa o set-last-applied em todos os arquivos de configura\u00e7\u00e3o no diret\u00f3rio.\n\t\tkubectl apply set-last-applied -f path/\n\n\t\t# Ajusta o last-applied-configuration de um recurso para corresponder ao conte\u00fado de um arquivo, ser\u00e1 criada uma annotation se esta ainda n\u00e3o existe.\n\t\tkubectl apply set-last-applied -f deploy.yaml \u2014create-annotation=true\n\t\t\x00\n\t\t# Mostra as m\u00e9tricas para todos os pods no namespace default\n\t\tkubectl top pod\n\n\t\t# Mostra as m\u00e9tricas para todos os pods em um dado namespace\n\t\tkubectl top pod \u2014namespace=NAMESPACE\n\n\t\t# Mostra as m\u00e9tricas para um dado pod e seus containers\n\t\tkubectl top pod POD_NAME \u2014containers\n\n\t\t# Mostra as m\u00e9tricas para os pods definidos pelo label name=myLabel\n\t\tkubectl top pod -l name=myLabel\x00\n\t\t# Termina o replicationcontroller foo.\n\t\tkubectl stop replicationcontroller foo\n\n\t\t# Para os pods e servi\u00e7os com o label name=myLabel.\n\t\tkubectl stop pods,services -l name=myLabel\n\n\t\t# Termina o servi\u00e7o definido no arquivo service.json\n\t\tkubectl stop -f service.json\n\n\t\t# Termina todos os recursos no caminho do diret\u00f3rio path/to/resources\n\t\tkubectl stop -f path/to/resources\x00\n\t\t# Inicia uma \u00fanica inst\u00e2ncia de nginx.\n\t\tkubectl run nginx \u2014image=nginx\n\n\t\t# Inicia uma \u00fanica inst\u00e2ncia do hazelcast e exp\u00f5e a porta 5701 do container.\n\t\tkubectl run hazelcast \u2014image=hazelcast \u2014port=5701\n\n\t\t# Inicia uma \u00fanica inst\u00e2ncia do hazelcast e seta as vari\u00e1veis de ambiente \"DNS_DOMAIN=cluster\" e \"POD_NAMESPACE=default\" no container.\n\t\tkubectl run hazelcast \u2014image=hazelcast \u2014env=\"DNS_DOMAIN=cluster\" \u2014env=\"POD_NAMESPACE=default\"\n\n\t\t# Inicia uma inst\u00e2ncia replicada de nginx.\n\t\tkubectl run nginx \u2014image=nginx \u2014replicas=5\n\n\t\t# Dry run. Mostra os objetos da API correspondente sem criar elas.\n\t\tkubectl run nginx \u2014image=nginx \u2014dry-run\n\n\t\t# Inicia uma \u00fanica inst\u00e2ncia de nginx, mas sobrescreve a spec do deployment com um conjunto parcial de valores passeados do JSON.\n\t\tkubectl run nginx \u2014image=nginx \u2014overrides='{ \"apiVersion\": \"v1\", \"spec\": { \u2026 } }'\n\n\t\t# Inicia um pod de busybox e mant\u00e9m ele em primeiro plano, n\u00e3o reinicia se ele j\u00e1 existe.\n\t\tkubectl run -i -t busybox \u2014image=busybox \u2014restart=Never\n\n\t\t# Inicia um container nginx usando o comando padr\u00e3o, mas utiliza argumentos customizados (arg1 .. argN) para o comando.\n\t\tkubectl run nginx \u2014image=nginx \u2014 \u2026 \n\n\t\t# Inicia um container nginx usando um comando diferente e argumentos customizados.\n\t\tkubectl run nginx \u2014image=nginx \u2014command \u2014 \u2026 \n\n\t\t# Inicia um container perl para processar \u03c0 to 2000 posi\u00e7\u00f5es e mostra a sa\u00edda.\n\t\tkubectl run pi \u2014image=perl \u2014restart=OnFailure \u2014 perl -Mbignum=bpi -wle 'print bpi(2000)'\n\n\t\t# Inicia um cron job para processar as 2000 posi\u00e7\u00f5es de \u03c0 e mostra a sa\u00edda a cada 5 minutos.\n\t\tkubectl run pi \u2014schedule=\"0/5 * * * ?\" \u2014image=perl \u2014restart=OnFailure \u2014 perl -Mbignum=bpi -wle 'print bpi(2000)'\x00\n\t\t# Atualiza a restri\u00e7\u00e3o para a chave 'dedicated' e o valor 'special-user' e o efeito 'NoSchedule' para o node 'foo'.\n\t\t# Se o taint com esta chave e efeito j\u00e1 existirem, o seu valor \u00e9 substitu\u00eddo pelo especificado.\n\t\tkubectl taint nodes foo dedicated=special-user:NoSchedule\n\n\t\t# Remove a restri\u00e7\u00e3o com a chave 'dedicated' e efeito 'NoSchedule' do nodo 'foo' se existir.\n\t\tkubectl taint nodes foo dedicated:NoSchedule-\n\n\t\t# Remove o node 'foo' todos os taints com a chave 'dedicated'\n\t\tkubectl taint nodes foo dedicated-\x00\n\t\t# Atualiza o pod 'foo' com o label 'unhealthy' e valor 'true'.\n\t\tkubectl label pods foo unhealthy=true\n\n\t\t# Atualiza o pod 'foo' com o label 'status' e valor 'unhealthy', sobrescrevendo qualquer valor existente.\n\t\tkubectl label \u2014overwrite pods foo status=unhealthy\n\n\t\t# Atualiza todos os pods no namespace corrente\n\t\tkubectl label pods \u2014all status=unhealthy\n\n\t\t# Atualiza o pod identificado pelo tipo e nome em \"pod.json\"\n\t\tkubectl label -f pod.json status=unhealthy\n\n\t\t# Atualiza o pod 'foo' apenas se o recurso n\u00e3o foi modificado na vers\u00e3o 1.\n\t\tkubectl label pods foo status=unhealthy \u2014resource-version=1\n\n\t\t# Atualiza o pod 'foo' removendo o label chamado 'bar', se ele existir.\n\t\t# N\u00e3o necessita a flag \u2014overwrite.\n\t\tkubectl label pods foo bar-\x00\n\t\t# Atualiza os pods de frontend-v1 utilizando os dados do novo replication controller definido em frontend-v2.json.\n\t\tkubectl rolling-update frontend-v1 -f frontend-v2.json\n\n\t\t# Atualiza os pods do frontend-v1 utilizando os dados em JSON passados pelo stdin.\n\t\tcat frontend-v2.json | kubectl rolling-update frontend-v1 -f -\n\n\t\t# Atualiza os pods do frontend-v1 para frontend-v2 trocando a imagem, e trocando o\n\t\t# nome do replication controller.\n\t\tkubectl rolling-update frontend-v1 frontend-v2 --image=image:v2\n\n\t\t# Atualiza os pods do frontend trocando a imagem, e mantendo o nome antigo.\n\t\tkubectl rolling-update frontend --image=image:v2\n\n\t\t# Cancela e reverte um rollout existente em progresso (de frontend-v1 para frontend-v2).\n\t\tkubectl rolling-update frontend-v1 frontend-v2 --rollback\x00\n\t\t# Visualiza a anota\u00e7\u00e3o last-applied-configuration pelo tipo/nome no YAML.\n\t\tkubectl apply view-last-applied deployment/nginx\n\n\t\t# Visualiza a anota\u00e7\u00e3o last-applied-configuration no arquivo JSON\n\t\tkubectl apply view-last-applied -f deploy.yaml -o json\x00\n\t\tAplica a configura\u00e7\u00e3o em um recurso usando um nome de arquivo ou stdin.\n\t\tEste recurso ser\u00e1 criado se ele n\u00e3o existir.\n\t\tPara utilizar o 'apply', sempre crie o recurso inicialmente com 'apply' ou 'create --save-config'.\n\n\t\tFormatos JSON e YAML s\u00e3o aceitos.\n\n\t\tNota Alpha: a funcionalidade --prune n\u00e3o est\u00e1 completa. N\u00e3o utilize a n\u00e3o ser que voc\u00ea saibe qual \u00e9 o estado corrente. Veja https://issues.k8s.io/34274.\x00\n\t\tConvert os arquivos de configura\u00e7\u00e3o para diferentes vers\u00f5es de API. Ambos formatos YAML\n\t\\e JSON s\u00e3o aceitos.\n\n\t\tO command recebe o nome do arquivo, diret\u00f3rio ou URL como entrada, e converteno formato\n\t\tpara a vers\u00e3o especificada pelo parametro \u2014output-version. Se a vers\u00e3o desejada n\u00e3o \u00e9 especificada ou \n\t\tn\u00e3o \u00e9 suportada, converte para a \u00faltima vers\u00e3 dispon\u00edvel.\n\n\t\tA sa\u00edda padr\u00e3o \u00e9 no formato YAML. Pode ser utilizadoa op\u00e7\u00e3o -o\n\t\tpara mudar o formato de sa\u00edda.\x00\n\t\tCria um ClusterRole.\x00\n\t\tCria um ClusterRoleBinding para um ClusterRole espec\u00edfico.\x00\n\t\tCria uma RoleBinding para uma Role espec\u00edfica ou ClusterRole.\x00\n\t\tCria um TLS secret de uma chave p\u00fablica/privada fornecida.\n\n\t\tA chave p\u00fablica/privada deve existir antes. O certificado da chave deve ser codificada como PEM, e ter sido gerada pela chave privada.\x00\n\t\tCria um configmap com base em um arquivo, diret\u00f3rio, ou um valor literal especificado.\n\n\t\tUm configmap \u00fanico pode conter um ou mais pares de chave/valor.\n\n\t\tQuando criar um configmap com base em um arquivo, a chave ser\u00e1 por padr\u00e3o o nome do arquivo, e o valor ser\u00e1\n\t\tpor padr\u00e3o o conte\u00fado do arquivo. Se o nome do arquivo for uma chave inv\u00e1lida, voc\u00ea deve especificar uma chave alternativa.\n\n\t\tQuando criar um configmap com base em um diret\u00f3rio, cada arquivo cujo o nome \u00e9 uma chave v\u00e1lida no diret\u00f3rio ser\u00e1\n\t\tcolocada no configmap. Qualquer entrada de diret\u00f3rio, exceto as com arquivos v\u00e1lidos ser\u00e3o ignorados (por exemplo: sub-diret\u00f3rios,\n\t\tsymlinks, devices, pipes, etc).\x00\n\t\tCria um namespace com um nome especificado.\x00\n\t\tCria um novo secret para utilizar com Docker registries.\n\n\t\tDockercfg secrets s\u00e3o utilizados para autenticar Docker registries.\n\n\t\tQuando utilizando a linha de comando do Docker para realizar envio das images, voc\u00ea pode se autenticar para um registro fornecido executando\n\n\t\t $ docker login DOCKER_REGISTRY_SERVER \u2014username=DOCKER_USER \u2014password=DOCKER_PASSWORD \u2014email=DOCKER_EMAIL'.\n\n Isso ir\u00e1 gerar um arquivo ~/.dockercfg que ser\u00e1 utilizado para os comandos 'docker push' e 'docker pull' \n\t\tse autenticarem no registro. O endere\u00e7o de email \u00e9 opcional.\n\n\t\tQuando criar aplica\u00e7\u00f5es, voc\u00ea pode ter um Docker registry que requer autentica\u00e7\u00e3o. Para que \n\t\tos nodes possam baixar as imagens em seu nome, eles devem ter as credenciais. Voc\u00ea pode prover esta informa\u00e7\u00e3o\n\t\tcriando um dockercfg secret e anexando-o \u00e0 sua conta de servi\u00e7o.\x00\n\t\tCria um pod disruption budget com o nome especificado, seletor, e o n\u00famero m\u00ednimo de pode dispon\u00edveis\x00\n\t\tCria um recurso por nome de arquivo ou stdin.\n\n\t\tOs formatos JSON e YAML s\u00e3o aceitos.\x00\n\t\tCria um resourcequota com o nome especificado, limits rig\u00eddos e escopo opcional\x00\n\t\tCria uma role com uma \u00fanica regra.\x00\n\t\tCria um secret com base em um arquivo, diret\u00f3rio, ou um valor literal especificado.\n\n\t\tUm secret \u00fanico pode conter um ou mais pares de chave/valor.\n\n\t\tQuando criar um secret com base em um arquivo, a chave ser\u00e1 por padr\u00e3o o nome do arquivo, e o valor ser\u00e1\n\t\tpor padr\u00e3o o conte\u00fado do arquivo. Se o nome do arquivo for uma chave inv\u00e1lida, voc\u00ea deve especificar uma chave alternativa.\n\n\t\tQuando criar um secret com base em um diret\u00f3rio, cada arquivo cujo o nome \u00e9 uma chave v\u00e1lida no diret\u00f3rio ser\u00e1\n\t\tcolocada no configmap. Qualquer entrada de diret\u00f3rio, exceto as com arquivos v\u00e1lidos ser\u00e3o ignorados (por exemplo: sub-diret\u00f3rios,\n\t\tsymlinks, devices, pipes, etc).\x00\n\t\tCria uma conta de servi\u00e7o com um nome especificado.\x00\n\t\tCria e executa uma imagem espec\u00edfica, possivelmente replicada.\n\n\t\tCria um deployment ou job para gerenciar o(s) container(s) criado(s).\x00\n\t\tCria um autoscaler que automaticamente escolhe e configura quantos pods ir\u00e3o executar em um cluster kubernetes.\n\n\t\tProcura por um Deployment, ReplicaSet, ou ReplicationController por nome e cria um autoscaler que utiliza o recurso fornecido como refer\u00eancia.\n\t\tUm autoscaler pode automaticamente aumentar ou reduzir o n\u00famero de pods quando necess\u00e1rio.\x00\n\t\tDelete resources by filenames, stdin, resources and names, or by resources and label selector.\n\n\t\tJSON and YAML formats are accepted. Only one type of the arguments may be specified: filenames,\n\t\tresources and names, or resources and label selector.\n\n\t\tSome resources, such as pods, support graceful deletion. These resources define a default period\n\t\tbefore they are forcibly terminated (the grace period) but you may override that value with\n\t\tthe \u2014grace-period flag, or pass \u2014now to set a grace-period of 1. Because these resources often\n\t\trepresent entities in the cluster, deletion may not be acknowledged immediately. If the node\n\t\thosting a pod is down or cannot reach the API server, termination may take significantly longer\n\t\tthan the grace period. To force delete a resource,\tyou must pass a grace\tperiod of 0 and specify\n\t\tthe \u2014force flag.\n\n\t\tIMPORTANT: Force deleting pods does not wait for confirmation that the pod's processes have been\n\t\tterminated, which can leave those processes running until the node detects the deletion and\n\t\tcompletes graceful deletion. If your processes use shared storage or talk to a remote API and\n\t\tdepend on the name of the pod to identify themselves, force deleting those pods may result in\n\t\tmultiple processes running on different machines using the same identification which may lead\n\t\tto data corruption or inconsistency. Only force delete pods when you are sure the pod is\n\t\tterminated, or if your application can tolerate multiple copies of the same pod running at once.\n\t\tAlso, if you force delete pods the scheduler may place new pods on those nodes before the node\n\t\thas released those resources and causing those pods to be evicted immediately.\n\n\t\tNote that the delete command does NOT do resource version checks, so if someone\n\t\tsubmits an update to a resource right when you submit a delete, their update\n\t\twill be lost along with the rest of the resource.\x00\n\t\tDeprecated: Gracefully shut down a resource by name or filename.\n\n\t\tThe stop command is deprecated, all its functionalities are covered by delete command.\n\t\tSee 'kubectl delete \u2014help' for more details.\n\n\t\tAttempts to shut down and delete a resource that supports graceful termination.\n\t\tIf the resource is scalable it will be scaled to 0 before deletion.\x00\n\t\tMostra os Recursos (CPU/Mem\u00f3ria/Armazenamento) utilizados nos nodes.\n\n\t\tO comando top-node permite que voc\u00ea veja o consumo de recursos dos nodes.\x00\n\t\tMostra a utiliza\u00e7\u00e3o de recursos dos pods (CPU/Mem\u00f3ria/Armazenamento).\n\n\t\tO comando 'top pod' deixa voc\u00ea ver a utiliza\u00e7\u00e3o dos recusrsos dos pods.\n\n\t\tDevido ao atraso da pipeline de m\u00e9tricas, o resultado pode estar indispon\u00edvel por alguns minutos\n\t\tdesde a cria\u00e7\u00e3o do pod.\x00\n\t\tMostra a utiliza\u00e7\u00e3o de recursos (CPU/Mem\u00f3ria/Armazenamento).\n\n\t\tO comando top deixa voc\u00ea ver a utiliza\u00e7\u00e3o de recursos de nodes e pods.\n\n\t\tEste comando necessita que o Heapster esteja corretamente configurado e rodando no servidor. \x00\n\t\tDrain node in preparation for maintenance.\n\n\t\tThe given node will be marked unschedulable to prevent new pods from arriving.\n\t\t'drain' evicts the pods if the APIServer supports eviction\n\t\t(http://kubernetes.io/docs/admin/disruptions/). Otherwise, it will use normal DELETE\n\t\tto delete the pods.\n\t\tThe 'drain' evicts or deletes all pods except mirror pods (which cannot be deleted through\n\t\tthe API server). If there are DaemonSet-managed pods, drain will not proceed\n\t\twithout \u2014ignore-daemonsets, and regardless it will not delete any\n\t\tDaemonSet-managed pods, because those pods would be immediately replaced by the\n\t\tDaemonSet controller, which ignores unschedulable markings. If there are any\n\t\tpods that are neither mirror pods nor managed by ReplicationController,\n\t\tReplicaSet, DaemonSet, StatefulSet or Job, then drain will not delete any pods unless you\n\t\tuse \u2014force. \u2014force will also allow deletion to proceed if the managing resource of one\n\t\tor more pods is missing.\n\n\t\t'drain' waits for graceful termination. You should not operate on the machine until\n\t\tthe command completes.\n\n\t\tWhen you are ready to put the node back into service, use kubectl uncordon, which\n\t\twill make the node schedulable again.\n\n\t\t![Workflow](http://kubernetes.io/images/docs/kubectl_drain.svg)\x00\n\t\tEdit a resource from the default editor.\n\n\t\tThe edit command allows you to directly edit any API resource you can retrieve via the\n\t\tcommand line tools. It will open the editor defined by your KUBE_EDITOR, or EDITOR\n\t\tenvironment variables, or fall back to 'vi' for Linux or 'notepad' for Windows.\n\t\tYou can edit multiple objects, although changes are applied one at a time. The command\n\t\taccepts filenames as well as command line arguments, although the files you point to must\n\t\tbe previously saved versions of resources.\n\n\t\tEditing is done with the API version used to fetch the resource.\n\t\tTo edit using a specific API version, fully-qualify the resource, version, and group.\n\n\t\tThe default format is YAML. To edit in JSON, specify \"-o json\".\n\n\t\tThe flag \u2014windows-line-endings can be used to force Windows line endings,\n\t\totherwise the default for your operating system will be used.\n\n\t\tIn the event an error occurs while updating, a temporary file will be created on disk\n\t\tthat contains your unapplied changes. The most common error when updating a resource\n\t\tis another editor changing the resource on the server. When this occurs, you will have\n\t\tto apply your changes to the newer version of the resource, or update your temporary\n\t\tsaved copy to include the latest resource version.\x00\n\t\tRemove a restri\u00e7\u00e3o de execu\u00e7\u00e3o de workloads no node.\x00\n\t\tAplica a restri\u00e7\u00e3o de execu\u00e7\u00e3o de workloads no node.\x00\n\t\tOutput shell completion code for the specified shell (bash or zsh).\n\t\tThe shell code must be evaluated to provide interactive\n\t\tcompletion of kubectl commands. This can be done by sourcing it from\n\t\tthe .bash_profile.\n\n\t\tNote: this requires the bash-completion framework, which is not installed\n\t\tby default on Mac. This can be installed by using homebrew:\n\n\t\t $ brew install bash-completion\n\n\t\tOnce installed, bash_completion must be evaluated. This can be done by adding the\n\t\tfollowing line to the .bash_profile\n\n\t\t $ source $(brew \u2014prefix)/etc/bash_completion\n\n\t\tNote for zsh users: [1] zsh completions are only supported in versions of zsh >= 5.2\x00\n\t\tAplica uma atualiza\u00e7\u00e3o cont\u00ednua em um ReplicationController.\n\n\t\tTroca o replication controller especificado por um novo replication controller atualizando um pod por vez para utilizar o\n\t\tnovo PodTemplate. O new-controller.json deve ser especificado no mesmo namespace que o\n\t\treplication controller existente e sobrescrever pelo menos uma label comum no seu replicaSelector.\n\n\t\t![Workflow](http://kubernetes.io/images/docs/kubectl_rollingupdate.svg)\x00\n\t\tSubstitui um recurso pelo especificado em um arquivo ou via stdin.\n\n\t\tOs formatos JSON and YAML s\u00e3o aceitos. Quando substituindo recursos existentes,\n\t\a especifica\u00e7\u00e3o completa do recurso deve ser fornecida. Isto pode ser obtido com\n\n\t\t $ kubectl get TYPE NAME -o yaml\n\n\t\tConsulte os modelos em https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html para descobrir se um campo \u00e9 mut\u00e1vel.\x00\n\t\tDefine um novo tamanho para um Deployment, ReplicaSet, Replication Controller, ou Job.\n\n\t\tScale deixa os usu\u00e1rios especificar uma ou mais pre-condi\u00e7\u00f5es para a a\u00e7\u00e3o de scale.\n\n\t\tSe --current-replicas ou --resource-version forem especificados, ser\u00e1 validado antes\n\t\tda tentativa de scale, e garante que a pre-condi\u00e7\u00e3o \u00e9 verdadeira quando\n\t\to scale \u00e9 enviado para o servidor.\x00\n\t\tDefine a annotation last-applied-configuration configurando para ser igual ao conte\u00fado do arquivo.\n\t\tIsto resulta no last-applied-configuration ser atualizado quando o 'kubectl apply -f ' executa,\n\t\tn\u00e3o atualizando as outras partes do objeto.\x00\n\t\tPara fazer o proxy the todas as apis do kubernetes, utilize:\n\n\t\t $ kubectl proxy \u2014api-prefix=/\n\n\t\tPara fazer o proxy de parte da api do kubernetes e alguns arquivos est\u00e1ticos:\n\n\t\t $ kubectl proxy \u2014www=/my/files \u2014www-prefix=/static/ \u2014api-prefix=/api/\n\n\t\tCom os comandos acima voc\u00ea pode fazer 'curl localhost:8001/api/v1/pods'.\n\n\t\tPara fazer o proxy the todas as apis do kubernetes em um caminho diferente, utilize:\n\n\t\t $ kubectl proxy \u2014api-prefix=/custom/\n\n\t\tCom o comando acima voc\u00ea pode fazer 'curl localhost:8001/custom/api/v1/pods'\x00\n\t\tAtualiza o(s) campo(s) de um recurso usando strategic merge patch\n\n\t\tFormatos JSON e YAML s\u00e3o aceitos.\n\n\t\tConsulte os modelos em https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html para descobrir se um campo \u00e9 mut\u00e1vel.\x00\n\t\tAtualiza labels em um recurso.\n\n\t\t* Um label deve come\u00e7ar com uma letra ou n\u00famero, e pode conter letra, n\u00fameros, h\u00edfens, pontos e sublinhados, com no m\u00e1ximo %[1]d caracteres.\n\t\t* Se --overwrite for verdadeiro, ent\u00e3o labels podem ser sobreescritos, caso contr\u00e1rio a sobreescrita ir\u00e1 falhar.\n\t\t* Se --resource-version for especificado, ent\u00e3o as atualiza\u00e7\u00f5es usar\u00e3o esta vers\u00e3o do recurso, caso contr\u00e1rio, a vers\u00e3o do recurso existente ser\u00e1 usada.\x00\n\t\tAtualiza os taints em um ou mais nodes.\n\n\t\t* Um taint consiste em uma chave, valor e efeito. Como arqgumento, \u00e9 expressado como chave=valor:efeito.\n\t\t* Uma chave deve come\u00e7ar com uma letra ou n\u00famero, e pode conter letras, n\u00fameros, h\u00edfens, pontos e sublinhados, com no m\u00e1ximo %[1]d caract\u00e9res.\n\t\t* Um valor deve come\u00e7ar com uma letra ou n\u00famero, e pode conter letras, n\u00fameros, h\u00edfens, pontos e sublinhados, com no m\u00e1ximo %[2]d caract\u00e9res.\n\t\t* O efeito deve ser NoSchedule, PreferNoSchedule ou NoExecute.\n\t\t* Atualmente taint pode ser aplicado apenas para nodes.\x00\n\t\tView the latest last-applied-configuration annotations by type/name or file.\n\n\t\tThe default output will be printed to stdout in YAML format. One can use -o option\n\t\tto change output format.\x00\n\t # !!!Nota Importante!!!\n\t # Necessita que o bin\u00e1rio 'tar' esteja presente na imagem do\n\t # container. Se 'tar' n\u00e3o estiver presente, o 'kubectl cp' ir\u00e1 falhar.\n\n\t # Copia o diret\u00f3rio local /tmp/foo_dir para /tmp/bar_dir no pod remoto no namespace default\n\t\tkubectl cp /tmp/foo_dir :/tmp/bar_dir\n\n # Copia o arquivo local /tmp/foo para /tmp/bar no pod remoto no container espec\u00edfico\n\t\tkubectl cp /tmp/foo :/tmp/bar -c \n\n\t\t# Copia o arquivo local /tmp/foo para /tmp/bar no pod remoto no namespace \n\t\tkubectl cp /tmp/foo /:/tmp/bar\n\n\t\t# Copia /tmp/foo do pod remoto para /tmp/bar localmente\n\t\tkubectl cp /:/tmp/foo /tmp/bar\x00\n\t # Cria um novo segredo TLS chamado tls-secret com o par the chaves fornecido:\n\t kubectl create secret tls tls-secret \u2014cert=path/to/tls.cert \u2014key=path/to/tls.key\x00\n\t # Cria um novo namespace chamado my-namespace\n\t kubectl create namespace my-namespace\x00\n\t # Cria um novo segredo chamado my-secret com as chaves para cada arquivo no diret\u00f3rio bar\n\t kubectl create secret generic my-secret --from-file=path/to/bar\n\n\t # Cria um novo segredo chamado my-secret com chaves especificadas em vez dos nomes dos arquivos\n\t kubectl create secret generic my-secret --from-file=ssh-privatekey=~/.ssh/id_rsa --from-file=ssh-publickey=~/.ssh/id_rsa.pub\n\n\t # Cria um novo segredo chamado my-secret com key1=supersecret e key2=topsecret\n\t kubectl create secret generic my-secret --from-literal=key1=supersecret --from-literal=key2=topsecret\x00\n\t # Cria um novo service account chamado my-service-account\n\t kubectl create serviceaccount my-service-account\x00\n\t# Cria um novo servi\u00e7o do tipo ExternalName chamado my-ns \n\tkubectl create service externalname my-ns \u2014external-name bar.com\x00\n\tCria um servi\u00e7o do tipo ExternalName com o nome especificado.\n\n\tServi\u00e7o ExternalName referencia um endere\u00e7o externo de DNS ao inv\u00e9s de\n\tapenas pods, o que permite aos desenvolvedores de aplica\u00e7\u00f5es referenciar servi\u00e7os\n\tque existem fora da plataforma, em outros clusters ou localmente.\x00\n\tHelp prov\u00ea ajuda para qualquer comando na aplica\u00e7\u00e3o.\n\tDigite simplesmente kubectl help [caminho do comando] para detalhes completos.\x00\n # Cria um novo servi\u00e7o do tipo LoadBalancer chamado my-lbs\n kubectl create service loadbalancer my-lbs \u2014tcp=5678:8080\x00\n # Cria um novo servi\u00e7o clusterIP chamado my-cs\n kubectl create service clusterip my-cs --tcp=5678:8080\n\n # Cria um novo servi\u00e7o clusterIP chamado my-cs (em modo headless)\n kubectl create service clusterip my-cs --clusterip=\"None\"\x00\n # Cria um novo deployment chamado my-dep que executa uma imagem busybox.\n kubectl create deployment my-dep \u2014image=busybox\x00\n # Cria um novo servi\u00e7o nodeport chamado my-ns\n kubectl create service nodeport my-ns \u2014tcp=5678:8080\x00\n # Coleta o estado corrente do cluster e exibe no stdout\n kubectl cluster-info dump\n\n # Coleta o estado corrente do custer para /path/to/cluster-state\n kubectl cluster-info dump --output-directory=/path/to/cluster-state\n\n # Coleta informa\u00e7\u00e3o de todos os namespaces para stdout\n kubectl cluster-info dump --all-namespaces\n\n # Coleta o conjunto especificado de namespaces para /path/to/cluster-state\n kubectl cluster-info dump --namespaces default,kube-system --output-directory=/path/to/cluster-state\x00\n # Atualiza o pod 'foo' com a annotation 'description' e o valor 'my frontend'.\n # Se a mesma annotation \u00e9 configurada v\u00e1rias vezes, apenas o \u00faltimo valor ser\u00e1 utilizado\n kubectl annotate pods foo description='my frontend'\n\n # Atualiza o pod identificado pelo tipo e nome definido no \"pod.json\"\n kubectl annotate -f pod.json description='my frontend'\n\n # Atualiza o pod 'foo' com a annotation 'description' e o valor 'my frontend running nginx', sobreescrevendo qualquer valor existente.\n kubectl annotate --overwrite pods foo description='my frontend running nginx'\n\n # Atualiza todos os pods no namespace\n kubectl annotate pods --all description='my frontend running nginx'\n\n # Atualiza o pod 'foo' apenas se o recurso n\u00e3o foi modificado na vers\u00e3o 1.\n kubectl annotate pods foo description='my frontend running nginx' --resource-version=1\n\n # Atualiza o pod 'foo' removendo a annotation chamada 'description' se ela existir.\n # N\u00e3o necessita da flag --overwrite.\n kubectl annotate pods foo description-\x00\n Cria um servi\u00e7o do tipo LoadBalancer com o nome especificado.\x00\n Cria um servi\u00e7o do tipo clusterIP com o nome especificado.\x00\n Cria um deployment com o nome especificado.\x00\n Cria um servi\u00e7o do tipo nodeport com o nome especificado.\x00\n Coleta informa\u00e7\u00f5es do cluster para debugar e diagnosticar problemas do dele. Por padr\u00e3o, exibe tudo para o\n stdout. Voc\u00ea pode, se quiser, especificar um diret\u00f3rio com --output-directory. Se especificar o diret\u00f3rio, kubernetes ir\u00e1\n montar um conjunto de arquivos no diret\u00f3rio. Por padr\u00e3o, apenas coleta informa\u00e7\u00f5es no namespace 'kube-system' , mas voc\u00ea pode\n trocar para um namespace diferente com a flag --namespaces, ou especificar --all-namespaces para todos os namespaces.\n\n O comando tamb\u00e9m coleta os logs de todos os pods no cluster, estes logs s\u00e3o salvos em outros diret\u00f3rios\n baseado no namespace e nome do pod.\x00\n Mostra os endere\u00e7os dos servidores de gerenciamento e servi\u00e7os com o label kubernetes.io/cluster-service=true\n Para debugar e diagnosticar outros problemas do cluster, utilize 'kubectl cluster-info dump'.\x00Lista de valores delimitados por v\u00edrgulas para um conjunto de escopos de quota que devem corresponder para cada objeto rastreado pela quota.\x00Lista de valores delimitados por v\u00edrgulas ajusta os pares resource=quantity que define um limite rig\u00eddo.\x00Um seletor de label a ser usado para o PDB. Apenas seletores baseado em igualdade s\u00e3o suportados.\x00Um seletor de label para ser utilizado neste servi\u00e7o. Apenas seletores baseado em igualdade s\u00e3o suportados. Se vazio (por padr\u00e3o) o seletor do replication controller ou replica set ser\u00e1 utilizado.\x00Agendamento no formato Cron em qual o job deve rodar.\x00Um IP externo adicional (n\u00e3o gerenciado pelo Kubernetes) para ser usado no servi\u00e7o. Se este IP for roteado para um n\u00f3, o servi\u00e7o pode ser acessado por este IP al\u00e9m de seu IP de servi\u00e7o gerado.\x00Uma substitui\u00e7\u00e3o inline JSON para o objeto gerado. Se n\u00e3o estiver vazio, ele ser\u00e1 usado para substituir o objeto gerado. Requer que o objeto forne\u00e7a um campo apiVersion v\u00e1lido.\x00Uma substitui\u00e7\u00e3o inline JSON para o objeto de servi\u00e7o gerado. Se n\u00e3o estiver vazio, ele ser\u00e1 usado para substituir o objeto gerado. Requer que o objeto forne\u00e7a o campo apiVersion v\u00e1lido. Usado apenas se --expose for true.\x00Aplica a configura\u00e7\u00e3o para um recurso utilizado um nome de arquivo ou stdin\x00Aprova uma solicita\u00e7\u00e3o de assinatura de certificado\x00Atribuir o seu pr\u00f3prio ClusterIP ou configura para 'None' para um servi\u00e7o 'headless' (sem loadbalancing).\x00Se conecta a um container em execu\u00e7\u00e3o\x00Auto-escala um Deployment, ReplicaSet ou ReplicationController\x00ClusterIP que ser\u00e1 atribu\u00eddo ao servi\u00e7o. Deixe vazio para auto atribui\u00e7\u00e3o, ou configure para 'None' para criar um servi\u00e7o headless.\x00ClusterRole que esse ClusterRoleBinding deve referenciar\x00ClusterRole que esse RoleBinding deve referenciar\x00Nome do cont\u00eainer que ter\u00e1 sua imagem atualizada. Relevante apenas quando --image for especificado, caso contr\u00e1rio, ignorado. Obrigat\u00f3rio ao usar --image em um pod com v\u00e1rios cont\u00eaineres\x00Converte arquivos de configura\u00e7\u00e3o entre vers\u00f5es de API diferentes\x00Copia arquivos e diret\u00f3rios de e para containers.\x00Cria um ClusterRoleBinding para um ClusterRole especifico\x00Cria um servi\u00e7o do tipo LoadBalancer.\x00Cria um servi\u00e7o do tipo NodePort.\x00Cria um RoleBinding para uma Role ou ClusterRole especifico\x00Cria uma secret do tipo TLS\x00Cria um servi\u00e7o do tipo clusterIP.\x00Cria um configmap com base em um arquivo, diret\u00f3rio, ou um valor literal\x00Cria um deployment com um nome especificado.\x00Cria a namespace com um nome especificado\x00Cria um pod disruption budget com um nome especificado.\x00Cria uma quota com um nome especificado.\x00Cria um recurso por nome de arquivo ou stdin\x00Cria um secret para ser utilizado com o Docker registry\x00Cria um secret com base em um arquivo, diret\u00f3rio ou um valor literal\x00Cria um secret utilizando um sub-comando especificado\x00Cria uma conta de servi\u00e7o com um nome especificado\x00Cria um service utilizando um sub-comando especificado.\x00Cria um servi\u00e7o do tipo ExternalName.\x00Apaga os recusros por nome de arquivos, stdin, recursos e nomes, ou por recursos e seletor de label\x00Apaga o cluster especificado do kubeconfig\x00Apaga o contexto especificado do kubeconfig\x00Rejeita o pedido de assinatura do certificado\x00Descontinuado: Termina um recurso por nome ou nome de arquivo\x00Mostra um ou mais contextos\x00Mostra a utiliza\u00e7\u00e3o de recursos (CPU/Mem\u00f3ria) nos nodes\x00Mostra a utiliza\u00e7\u00e3o de recursos (CPU/Mem\u00f3ria) nos pods\x00Mostra a utiliza\u00e7\u00e3o de recursos (CPU/Mem\u00f3ria).\x00Mostra as informa\u00e7\u00f5es do cluster\x00Mostra os clusters definidos no kubeconfig\x00Mostra a configura\u00e7\u00e3o do kubeconfig mescladas ou um arquivo kubeconfig especificado\x00Mostra um ou mais recursos\x00Mostra o contexto corrente\x00Documenta\u00e7\u00e3o dos recursos\x00Drenar o node para prepara\u00e7\u00e3o de manuten\u00e7\u00e3o\x00Realiza o dump de muitas informa\u00e7\u00f5es relevantes para debugging e diagn\u00f3sticos\x00Edita um recurso no servidor\x00Email para o Docker registry\x00Executa um comando em um container\x00Pol\u00edtica expl\u00edcita para quando extrair imagens de cont\u00eainer. Obrigat\u00f3rio quando --image for igual \u00e0 imagem existente, caso contr\u00e1rio, ser\u00e1 ignorado.\x00Encaminhar uma ou mais portas locais para um pod\x00Ajuda sobre qualquer comando\x00IP para ser alocado no Load Balancer. Se vazio, um IP ef\u00eamero ser\u00e1 criado e utilizado (espec\u00edfico para cada provedor cloud).\x00Se n\u00e3o vazio, configura a afinidade de sess\u00e3o para o servi\u00e7o; valores v\u00e1lidos: 'None', 'ClientIP'\x00Se n\u00e3o estiver vazio, a atualiza\u00e7\u00e3o dos annotation s\u00f3 ter\u00e1 \u00eaxito se esta for a vers\u00e3o do recurso atual para o objeto. V\u00e1lido apenas ao especificar um \u00fanico recurso.\x00Se n\u00e3o estiver vazio, a atualiza\u00e7\u00e3o dos labels s\u00f3 ter\u00e1 \u00eaxito se esta for a vers\u00e3o do recurso atual para o objeto. V\u00e1lido apenas ao especificar um \u00fanico recurso.\x00Imagem a ser utilizada para atualizar o replication controller. Deve ser diferente da imagem atual (pode ser uma nova imagem ou uma nova tag). N\u00e3o pode ser utilizada com \u2014filename/-f\x00Gerencia um deployment rollout\x00Marca o node como agend\u00e1vel\x00Marca o node como n\u00e3o agend\u00e1vel\x00Marca o recurso fornecido como pausado\x00Edita o certificado dos recursos.\x00Edita o arquivo kubeconfig\x00Nome ou o n\u00famero da porta em um container em que o servi\u00e7o deve direcionar o tr\u00e1fego. Opcional.\x00Apenas retorna os logs ap\u00f3s uma data espec\u00edfica (RFC3339). Padr\u00e3o para todos os logs. Apenas um since-time / since deve ser utilizado.\x00Sa\u00edda do autocomplete de shell para um Shell espec\u00edfico (bash ou zsh)\x00Imprime o objeto formatado com a dada vers\u00e3o de grupo (por exemplo: 'extensions/v1beta1').)\x00Senha para a autentica\u00e7\u00e3o do registro do Docker\x00Caminho para a chave p\u00fablica em formato PEM.\x00Caminho para a chave private associada a um certificado fornecido.\x00Executa uma atualiza\u00e7\u00e3o cont\u00ednua\x00Pr\u00e9-condi\u00e7\u00e3o para a vers\u00e3o do recurso. Requer que a vers\u00e3o do recurso atual corresponda a este valor para escalar.\x00Mostra a informa\u00e7\u00e3o de vers\u00e3o do cliente e do servidor\x00Mostra a lista de op\u00e7\u00f5es herdadas por todos os comandos\x00Mostra os logs de um container em um pod\x00Substitui um recurso por um nome de arquivo ou stdin\x00Retoma um recurso pausado\x00Role que a RoleBinding deve referenciar\x00Executa uma imagem espec\u00edfica no cluster\x00Executa um proxy para o servidor de API do Kubernetes\x00Localiza\u00e7\u00e3o do servidor para o registro do Docker\x00Define um novo tamanho para um Deployment, ReplicaSet, Replication Controller, ou Job\x00Define funcionalidades espec\u00edficas em objetos\x00Define a anota\u00e7\u00e3o last-applied-configuration em um objeto existente para corresponder ao conte\u00fado do arquivo.\x00Define um seletor em um recurso\x00Define um cluster no arquivo kubeconfig\x00Define um contexto no arquivo kubeconfig\x00Define um usu\u00e1rio no arquivo kubeconfig\x00Define um valor individual no arquivo kubeconfig\x00Define o current-context no arquivo kubeconfig\x00Mostra os detalhes de um recurso espec\u00edfico ou de um grupo de recursos\x00Mostra o status de uma atualiza\u00e7\u00e3o dinamica\x00Sin\u00f4nimo para \u2014target-port\x00Pega um replication controlar, service, deployment ou pod e exp\u00f5e como um novo Servi\u00e7o do Kubernetes\x00A imagem para o container executar.\x00A pol\u00edtica de obten\u00e7\u00e3o de imagens. Se deixado em branco, este valor n\u00e3o ser\u00e1 especificado pelo cliente e ser\u00e1 utilizado o padr\u00e3o do servidor\x00A chave utilizada para diferenciar entre dois controlares diferentes, padr\u00e3o 'deployment'. Apenas relevante quando --image \u00e9 especificado, \u00e9 ignorado caso contr\u00e1rio\x00Um n\u00famero m\u00ednimo ou porcentagem de pods dispon\u00edveis que este budget requer.\x00O nome para o objeto rec\u00e9m criado.\x00O nome para o objeto rec\u00e9m criado. Se n\u00e3o especificado, o nome do input resource ser\u00e1 utilizado.\x00O nome do gerador de API a ser usado, veja a lista em http://kubernetes.io/docs/user-guide/kubectl-conventions/#generators.\x00O nome do gerador de API a ser usado. Atualmente existe apenas 1 gerador.\x00O nome do gerador de API a ser usado. Existem 2 geradores: 'service/v1' e 'service/v2'. A \u00fanica diferen\u00e7a entre eles \u00e9 que a porta de servi\u00e7o na v1 \u00e9 chamada de 'default', enquanto ela \u00e9 deixada sem nome na v2. O padr\u00e3o \u00e9 'service/v2'.\x00O nome do recurso para ser utilizado quando criando um servi\u00e7o. Apenas utilizado se \u2014expose \u00e9 verdadeiro\x00O protocolo de rede para o servi\u00e7o ser criado. Padr\u00e3o \u00e9 'TCP'.\x00A porta para que o servi\u00e7o possa servir. Copiado do recurso sendo exposto, se n\u00e3o especificado\x00A porta que o container exp\u00f5e. Se \u2014expose \u00e9 verdadeiro, esta tamb\u00e9m \u00e9 a porta utilizada pelo servi\u00e7o quando for criado.\x00O recurso requerido para este container. Por exemplo, 'cpu=200m,memory=512Mi'. Observe que os componentes do lado do servidor podem atribuir limites, dependendo da configura\u00e7\u00e3o do servidor, como intervalos de limite.\x00O recurso requerido de requests para este container. Por exemplo, 'cpu=100m,memory=256Mi'. Observe que os componentes do lado do servidor podem atribuir requests, dependendo da configura\u00e7\u00e3o do servidor, como intervalos de limite.\x00A politica de restart para este Pod. Poss\u00edveis valores [Always, OnFailure, Never]. Se configurado para 'Always' um deployment \u00e9 criado, se configurado para 'OnFailure' um job \u00e9 criado, se configurado para 'Never', um pod \u00e9 criado. Para os dois \u00faltimos \u2014replicas deve ser 1. Valor padr\u00e3o 'Always', para CronJobs `Never`.\x00O tipo de segredo para criar\x00Tipo para este servi\u00e7o: ClusterIP, NodePort, ou LoadBalancer. Valor padr\u00e3o \u00e9 'ClusterIP'.\x00Desfazer o rollout anterior\x00Remover um valor individual do arquivo kubeconfig\x00Atualizar o(s) campo(s) de um recurso usando a estrat\u00e9gia de merge patch\x00Atualizar a imagem de um template de pod\x00Atualizar os recursos de request/limites em um objeto com template de pod\x00Atualizar as anota\u00e7\u00f5es de um recurso\x00Atualizar os labels de um recurso\x00Atualizar o taints de um ou mais nodes\x00Nome de usu\u00e1rio para a autentica\u00e7\u00e3o no Docker registry\x00Visualizar a \u00faltima anota\u00e7\u00e3o last-applied-configuration de um recurso/objeto\x00Visualizar o hist\u00f3rico de rollout\x00Onde colocar os arquivos de sa\u00edda. Se vazio ou '-' usa o stdout do terminal, caso contr\u00e1rio, cria uma hierarquia no diret\u00f3rio configurado\x00dummy restart flag)\x00nome externo do servi\u00e7o\x00kubectl controla o gerenciador de cluster do Kubernetes\x00") + +func translationsKubectlPt_brLc_messagesK8sMoBytes() ([]byte, error) { + return _translationsKubectlPt_brLc_messagesK8sMo, nil +} + +func translationsKubectlPt_brLc_messagesK8sMo() (*asset, error) { + bytes, err := translationsKubectlPt_brLc_messagesK8sMoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "translations/kubectl/pt_BR/LC_MESSAGES/k8s.mo", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _translationsKubectlPt_brLc_messagesK8sPo = []byte(`# Brazilian Portuguese translation. +# Copyright (C) 2020 +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR ctadeu@gmail.com, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: EMAIL\n" +"POT-Creation-Date: 2017-03-14 21:32-0700\n" +"PO-Revision-Date: 2020-12-11 17:03+0100\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.2\n" +"Last-Translator: Carlos Panato \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: pt_BR\n" +"X-Poedit-KeywordsList: \n" + +#: pkg/kubectl/cmd/create_clusterrolebinding.go:35 +msgid "" +"\n" +"\t\t # Create a ClusterRoleBinding for user1, user2, and group1 using the cluster-admin " +"ClusterRole\n" +"\t\t kubectl create clusterrolebinding cluster-admin --clusterrole=cluster-admin --user=user1 --" +"user=user2 --group=group1" +msgstr "" +"\n" +"\t\t # Criar o ClusterRoleBinding para user1, user2, e group1 utilizando o ClusterRole cluster-" +"admin\n" +"\t\t kubectl create clusterrolebinding cluster-admin --clusterrole=cluster-admin —user=user1 —" +"user=user2 —group=group1" + +#: pkg/kubectl/cmd/create_rolebinding.go:35 +msgid "" +"\n" +"\t\t # Create a RoleBinding for user1, user2, and group1 using the admin ClusterRole\n" +"\t\t kubectl create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --" +"group=group1" +msgstr "" +"\n" +"\t\t # Criar uma RoleBinding para user1, user2, e group1 utilizando o admin ClusterRole\n" +"\t\t kubectl create rolebinding admin --clusterrole=admin —user=user1 —user=user2 —group=group1" + +#: pkg/kubectl/cmd/create_configmap.go:44 +msgid "" +"\n" +"\t\t # Create a new configmap named my-config based on folder bar\n" +"\t\t kubectl create configmap my-config --from-file=path/to/bar\n" +"\n" +"\t\t # Create a new configmap named my-config with specified keys instead of file basenames on " +"disk\n" +"\t\t kubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-" +"file=key2=/path/to/bar/file2.txt\n" +"\n" +"\t\t # Create a new configmap named my-config with key1=config1 and key2=config2\n" +"\t\t kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2" +msgstr "" +"\n" +"\t\t # Criar um novo configmap com o nome de my-config baseado na pasta bar\n" +"\t\t kubectl create configmap my-config —from-file=path/to/bar\n" +"\n" +"\t\t # Cria um novo configmap com o nome my-config, onde cada chave possui o valor especificado " +"em um arquivo distinto no disco\n" +"\t\t kubectl create configmap my-config —from-file=key1=/path/to/bar/file1.txt —from-file=key2=/" +"path/to/bar/file2.txt\n" +"\n" +"\t\t # Criar um novo configmap com o nome de my-config com key1=config1 e key2=config2\n" +"\t\t kubectl create configmap my-config —from-literal=key1=config1 —from-literal=key2=config2" + +#: pkg/kubectl/cmd/create_secret.go:135 +msgid "" +"\n" +"\t\t # If you don't already have a .dockercfg file, you can create a dockercfg secret directly " +"by using:\n" +"\t\t kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --" +"docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL" +msgstr "" +"\n" +"\t\t # Se você ainda não tem o arquivo .dockercfg, você pode gerar diretamente o dockercfg " +"secret utilizando o comando:\n" +"\t\t kubectl create secret docker-registry my-secret —docker-server=DOCKER_REGISTRY_SERVER —" +"docker-username=DOCKER_USER —docker-password=DOCKER_PASSWORD —docker-email=DOCKER_EMAIL" + +#: pkg/kubectl/cmd/top_node.go:65 +msgid "" +"\n" +"\t\t # Show metrics for all nodes\n" +"\t\t kubectl top node\n" +"\n" +"\t\t # Show metrics for a given node\n" +"\t\t kubectl top node NODE_NAME" +msgstr "" +"\n" +"\t\t # Mostra as métricas para todos os nodes\n" +"\t\t kubectl top node\n" +"\n" +"\t\t # Mostra as métricas para um node específico\n" +"\t\t kubectl top node NODE_NAME" + +#: pkg/kubectl/cmd/apply.go:84 +msgid "" +"\n" +"\t\t# Apply the configuration in pod.json to a pod.\n" +"\t\tkubectl apply -f ./pod.json\n" +"\n" +"\t\t# Apply the JSON passed into stdin to a pod.\n" +"\t\tcat pod.json | kubectl apply -f -\n" +"\n" +"\t\t# Note: --prune is still in Alpha\n" +"\t\t# Apply the configuration in manifest.yaml that matches label app=nginx and delete all the " +"other resources that are not in the file and match label app=nginx.\n" +"\t\tkubectl apply --prune -f manifest.yaml -l app=nginx\n" +"\n" +"\t\t# Apply the configuration in manifest.yaml and delete all the other configmaps that are not " +"in the file.\n" +"\t\tkubectl apply --prune -f manifest.yaml --all --prune-whitelist=core/v1/ConfigMap" +msgstr "" +"\n" +"\t\t# Aplica a configuração do arquivo pod.json a um pod.\n" +"\t\tkubectl apply -f ./pod.json\n" +"\n" +"\t\t# Aplica o JSON recebido via stdin para um pod.\n" +"\t\tcat pod.json | kubectl apply -f -\n" +"\n" +"\t\t# Nota: —prune ainda está em Alpha\n" +"\t\t# Aplica a configuração do manifest.yaml que conter o label app=nginx e remove todos os " +"outros recursos que não estejam no arquivo e não contenham o label.\n" +"\t\tkubectl apply —prune -f manifest.yaml -l app=nginx\n" +"\n" +"\t\t# Aplica a configuração do manifest.yaml e remove todos os outros configmaps que não estão " +"no arquivo.\n" +"\t\tkubectl apply —prune -f manifest.yaml —all —prune-whitelist=core/v1/ConfigMap" + +#: pkg/kubectl/cmd/autoscale.go:40 +#, c-format +msgid "" +"\n" +"\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and 10, no target CPU " +"utilization specified so a default autoscaling policy will be used:\n" +"\t\tkubectl autoscale deployment foo --min=2 --max=10\n" +"\n" +"\t\t# Auto scale a replication controller \"foo\", with the number of pods between 1 and 5, " +"target CPU utilization at 80%:\n" +"\t\tkubectl autoscale rc foo --max=5 --cpu-percent=80" +msgstr "" +"\n" +"\t\t# Escala automaticamente um deployment \"foo\", com o número de pods entre 2 e 10, sem " +"especificar a utilização da CPU o padrão da política de autoscaling será utilizado:\n" +"\t\tkubectl autoscale deployment foo —min=2 —max=10\n" +"\n" +"\t\t# Escala automaticamente um replication controller \"foo\", com o número de pods entre 1 and " +"5, e definindo a utilização da CPU em 80%:\n" +"\t\tkubectl autoscale rc foo —max=5 —cpu-percent=80" + +#: pkg/kubectl/cmd/convert.go:49 +msgid "" +"\n" +"\t\t# Convert 'pod.yaml' to latest version and print to stdout.\n" +"\t\tkubectl convert -f pod.yaml\n" +"\n" +"\t\t# Convert the live state of the resource specified by 'pod.yaml' to the latest version\n" +"\t\t# and print to stdout in json format.\n" +"\t\tkubectl convert -f pod.yaml --local -o json\n" +"\n" +"\t\t# Convert all files under current directory to latest version and create them all.\n" +"\t\tkubectl convert -f . | kubectl create -f -" +msgstr "" +"\n" +"\t\t# converte o arquivo 'pod.yaml' para a versão mais atual e imprime a saída para o stdout.\n" +"\t\tkubectl convert -f pod.yaml\n" +"\n" +"\t\t# Converte o estado atual do recurso especificado pelo 'pod.yaml' para a versão mais atual\n" +"\t\t# e imprime a saída para o stdout no formato json.\n" +"\t\tkubectl convert -f pod.yaml —local -o json\n" +"\n" +"\t\t# Converte todos os arquivos dentro do diretório atual para a versão mais recente e cria " +"todos.\n" +"\t\tkubectl convert -f . | kubectl create -f -" + +#: pkg/kubectl/cmd/create_clusterrole.go:34 +msgid "" +"\n" +"\t\t# Create a ClusterRole named \"pod-reader\" that allows user to perform \"get\", \"watch\" " +"and \"list\" on pods\n" +"\t\tkubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods\n" +"\n" +"\t\t# Create a ClusterRole named \"pod-reader\" with ResourceName specified\n" +"\t\tkubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods --resource-" +"name=readablepod" +msgstr "" +"\n" +"\t\t# Cria um ClusterRole com o nome de \"pod-reader\" que permite o usuário realizar \"get\", " +"\"watch\" e \"list\" em pods\n" +"\t\tkubectl create clusterrole pod-reader —verb=get,list,watch —resource=pods\n" +"\n" +"\t\t# Cria a ClusterRole com o nome de \"pod-reader\" com um ResourceName especificado\n" +"\t\tkubectl create clusterrole pod-reader —verb=get,list,watch —resource=pods —resource-" +"name=readablepod" + +#: pkg/kubectl/cmd/create_role.go:41 +msgid "" +"\n" +"\t\t# Create a Role named \"pod-reader\" that allows user to perform \"get\", \"watch\" and " +"\"list\" on pods\n" +"\t\tkubectl create role pod-reader --verb=get --verb=list --verb=watch --resource=pods\n" +"\n" +"\t\t# Create a Role named \"pod-reader\" with ResourceName specified\n" +"\t\tkubectl create role pod-reader --verb=get --verg=list --verb=watch --resource=pods --" +"resource-name=readablepod" +msgstr "" +"\n" +"\t\t# Cria uma Role com o nome de \"pod-reader\" que permite o usuário realizar \"get\", \"watch" +"\" e \"list\" em pods\n" +"\t\tkubectl create role pod-reader —verb=get —verb=list —verb=watch —resource=pods\n" +"\n" +"\t\t# Cria uma Role com o nome de \"pod-reader\" com um ResourceName especificado\n" +"\t\tkubectl create role pod-reader —verb=get —verg=list —verb=watch —resource=pods —resource-" +"name=readablepod" + +#: pkg/kubectl/cmd/create_quota.go:35 +msgid "" +"\n" +"\t\t# Create a new resourcequota named my-quota\n" +"\t\tkubectl create quota my-quota --hard=cpu=1,memory=1G,pods=2,services=3," +"replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10\n" +"\n" +"\t\t# Create a new resourcequota named best-effort\n" +"\t\tkubectl create quota best-effort --hard=pods=100 --scopes=BestEffort" +msgstr "" +"\n" +"\t\t# Cria um novo resourcequota com o nome de my-quota\n" +"\t\tkubectl create quota my-quota —hard=cpu=1,memory=1G,pods=2,services=3," +"replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10\n" +"\n" +"\t\t# Cria um novo resourcequota com o nome de best-effort\n" +"\t\tkubectl create quota best-effort —hard=pods=100 —scopes=BestEffort" + +#: pkg/kubectl/cmd/create_pdb.go:35 +#, c-format +msgid "" +"\n" +"\t\t# Create a pod disruption budget named my-pdb that will select all pods with the app=rails " +"label\n" +"\t\t# and require at least one of them being available at any point in time.\n" +"\t\tkubectl create poddisruptionbudget my-pdb --selector=app=rails --min-available=1\n" +"\n" +"\t\t# Create a pod disruption budget named my-pdb that will select all pods with the app=nginx " +"label\n" +"\t\t# and require at least half of the pods selected to be available at any point in time.\n" +"\t\tkubectl create pdb my-pdb --selector=app=nginx --min-available=50%" +msgstr "" +"\n" +"\t\t# Cria um pod disruption budget com o nome de my-pdb que irá selecionar todos os pods com o " +"label app=rails\n" +"\t\t# e requer que pelo menos um deles esteja disponível a qualquer momento.\n" +"\t\tkubectl create poddisruptionbudget my-pdb —selector=app=rails —min-available=1\n" +"\n" +"\t\t# Cria um pod disruption budget com o nome de my-pdb que irá selecionar todos os pods com o " +"label app=nginx\n" +"\t\t# e requer pelo menos que metade dos pods selecionados estejam disponíveis em qualquer " +"momento.\n" +"\t\tkubectl create pdb my-pdb —selector=app=nginx —min-available=50%" + +#: pkg/kubectl/cmd/create.go:47 +msgid "" +"\n" +"\t\t# Create a pod using the data in pod.json.\n" +"\t\tkubectl create -f ./pod.json\n" +"\n" +"\t\t# Create a pod based on the JSON passed into stdin.\n" +"\t\tcat pod.json | kubectl create -f -\n" +"\n" +"\t\t# Edit the data in docker-registry.yaml in JSON using the v1 API format then create the " +"resource using the edited data.\n" +"\t\tkubectl create -f docker-registry.yaml --edit --output-version=v1 -o json" +msgstr "" +"\n" +"\t\t# Cria um pod utilizando o arquivo pod.json.\n" +"\t\tkubectl create -f ./pod.json\n" +"\n" +"\t\t# Cria um pod utilizando o JSON recebido via stdin.\n" +"\t\tcat pod.json | kubectl create -f -\n" +"\n" +"\t\t# Edita o conteúdo do arquivo docker-registry.yaml em JSON utilizando o formato da API v1, " +"criando o recurso com o conteúdo editado.\n" +"\t\tkubectl create -f docker-registry.yaml —edit —output-version=v1 -o json" + +#: pkg/kubectl/cmd/expose.go:53 +msgid "" +"\n" +"\t\t# Create a service for a replicated nginx, which serves on port 80 and connects to the " +"containers on port 8000.\n" +"\t\tkubectl expose rc nginx --port=80 --target-port=8000\n" +"\n" +"\t\t# Create a service for a replication controller identified by type and name specified in " +"\"nginx-controller.yaml\", which serves on port 80 and connects to the containers on port 8000.\n" +"\t\tkubectl expose -f nginx-controller.yaml --port=80 --target-port=8000\n" +"\n" +"\t\t# Create a service for a pod valid-pod, which serves on port 444 with the name \"frontend\"\n" +"\t\tkubectl expose pod valid-pod --port=444 --name=frontend\n" +"\n" +"\t\t# Create a second service based on the above service, exposing the container port 8443 as " +"port 443 with the name \"nginx-https\"\n" +"\t\tkubectl expose service nginx --port=443 --target-port=8443 --name=nginx-https\n" +"\n" +"\t\t# Create a service for a replicated streaming application on port 4100 balancing UDP traffic " +"and named 'video-stream'.\n" +"\t\tkubectl expose rc streamer --port=4100 --protocol=udp --name=video-stream\n" +"\n" +"\t\t# Create a service for a replicated nginx using replica set, which serves on port 80 and " +"connects to the containers on port 8000.\n" +"\t\tkubectl expose rs nginx --port=80 --target-port=8000\n" +"\n" +"\t\t# Create a service for an nginx deployment, which serves on port 80 and connects to the " +"containers on port 8000.\n" +"\t\tkubectl expose deployment nginx --port=80 --target-port=8000" +msgstr "" +"\n" +"\t\t# Cria um serviço para um nginx replicado, que escuta na porta 80 e conecta na porta 8000 " +"dos containers.\n" +"\\t\tkubectl expose rc nginx —port=80 —target-port=8000\n" +"\n" +"\t\t# Cria um serviço para um replication controller identificado por tipo e com o nome " +"especificado em \"nginx-controller.yaml\", que escuta na porta 80 e conecta na porta 8000 dos " +"containers.\n" +"\t\tkubectl expose -f nginx-controller.yaml —port=80 —target-port=8000\n" +"\n" +"\t\t# Cria um serviço para um pod valid-pod, que escuta na porta 444 com o nome \"frontend\"\n" +"\t\tkubectl expose pod valid-pod —port=444 —name=frontend\n" +"\n" +"\t\t# Cria um segundo serviço baseado no serviço acima, expondo a porta 8443 do container como " +"porta 443 e com nome \"nginx-https\"\n" +"\t\tkubectl expose service nginx —port=443 —target-port=8443 —name=nginx-https\n" +"\n" +"\t\t# Cria um serviço para uma aplicação streaming replicada na porta 4100 com trafico " +"balanceado UDP e nome 'video-stream'.\n" +"\t\tkubectl expose rc streamer —port=4100 —protocol=udp —name=video-stream\n" +"\n" +"\t\t# Cria um serviço para um nginx replicado usando o replica set, que escuta na porta 80 e " +"conecta na porta 8000 dos containers.\n" +"\t\tkubectl expose rs nginx —port=80 —target-port=8000\n" +"\n" +"\t\t# Cria um serviço para um deployment nginx, que escuta na porta 80 e conecta na porta 8000 " +"dos containers.\n" +"\t\tkubectl expose deployment nginx —port=80 —target-port=8000" + +#: pkg/kubectl/cmd/delete.go:68 +msgid "" +"\n" +"\t\t# Delete a pod using the type and name specified in pod.json.\n" +"\t\tkubectl delete -f ./pod.json\n" +"\n" +"\t\t# Delete a pod based on the type and name in the JSON passed into stdin.\n" +"\t\tcat pod.json | kubectl delete -f -\n" +"\n" +"\t\t# Delete pods and services with same names \"baz\" and \"foo\"\n" +"\t\tkubectl delete pod,service baz foo\n" +"\n" +"\t\t# Delete pods and services with label name=myLabel.\n" +"\t\tkubectl delete pods,services -l name=myLabel\n" +"\n" +"\t\t# Delete a pod with minimal delay\n" +"\t\tkubectl delete pod foo --now\n" +"\n" +"\t\t# Force delete a pod on a dead node\n" +"\t\tkubectl delete pod foo --grace-period=0 --force\n" +"\n" +"\t\t# Delete all pods\n" +"\t\tkubectl delete pods --all" +msgstr "" +"\n" +"\t\t# Remove um pod usando o tipo e nome especificado no arquivo pod.json.\n" +"\t\tkubectl delete -f ./pod.json\n" +"\n" +"\t\t# Remove um pod baseado no tipo e nome no JSON passado na entrada de comando(stdin).\n" +"\t\tcat pod.json | kubectl delete -f -\n" +"\n" +"\t\t# Remove pods e serviços com os nomes \"baz\" e \"foo\"\n" +"\t\tkubectl delete pod,service baz foo\n" +"\n" +"\t\t# Remove pods e serviços com label name=myLabel.\n" +"\t\tkubectl delete pods,services -l name=myLabel\n" +"\n" +"\t\t# Remove um pod com um mínimo de delay\n" +"\t\tkubectl delete pod foo —now\n" +"\n" +"\t\t# Força a remoção de um pod em um node morto\n" +"\t\tkubectl delete pod foo —grace-period=0 —force\n" +"\n" +"\t\t# Remove todos os pods\n" +"\t\tkubectl delete pods —all" + +#: pkg/kubectl/cmd/describe.go:54 +msgid "" +"\n" +"\t\t# Describe a node\n" +"\t\tkubectl describe nodes kubernetes-node-emt8.c.myproject.internal\n" +"\n" +"\t\t# Describe a pod\n" +"\t\tkubectl describe pods/nginx\n" +"\n" +"\t\t# Describe a pod identified by type and name in \"pod.json\"\n" +"\t\tkubectl describe -f pod.json\n" +"\n" +"\t\t# Describe all pods\n" +"\t\tkubectl describe pods\n" +"\n" +"\t\t# Describe pods by label name=myLabel\n" +"\t\tkubectl describe po -l name=myLabel\n" +"\n" +"\t\t# Describe all pods managed by the 'frontend' replication controller (rc-created pods\n" +"\t\t# get the name of the rc as a prefix in the pod the name).\n" +"\t\tkubectl describe pods frontend" +msgstr "" +"\n" +"\t\t# Descreve um node\n" +"\t\tkubectl describe nodes kubernetes-node-emt8.c.myproject.internal\n" +"\n" +"\t\t# Descreve um pod\n" +"\t\tkubectl describe pods/nginx\n" +"\n" +"\t\t# Descreve um pod identificado pelo tipo e nome no arquivo \"pod.json\"\n" +"\t\tkubectl describe -f pod.json\n" +"\n" +"\t\t# Descreve todos os pods\n" +"\t\tkubectl describe pods\n" +"\n" +"\t\t# Descreve os pods com label name=myLabel\n" +"\t\tkubectl describe po -l name=myLabel\n" +"\n" +"\t\t# Descreve todos os pods gerenciados pelo replication controller 'frontend' (rc-created " +"pods\n" +"\t\t# tem o nome de rc como prefixo no nome do pod).\n" +"\t\tkubectl describe pods frontend" + +#: pkg/kubectl/cmd/drain.go:165 +msgid "" +"\n" +"\t\t# Drain node \"foo\", even if there are pods not managed by a ReplicationController, " +"ReplicaSet, Job, DaemonSet or StatefulSet on it.\n" +"\t\t$ kubectl drain foo --force\n" +"\n" +"\t\t# As above, but abort if there are pods not managed by a ReplicationController, ReplicaSet, " +"Job, DaemonSet or StatefulSet, and use a grace period of 15 minutes.\n" +"\t\t$ kubectl drain foo --grace-period=900" +msgstr "" +"\n" +"\t\t# Drena o node \"foo\", mesmo se os pods não são gerenciados por um ReplicationController, " +"ReplicaSet, Job, DaemonSet ou StatefulSet.\n" +"\t\t$ kubectl drain foo —force\n" +"\n" +"\t\t# Mesmo que acima, mas é interrompido se os pods não são gerenciados por um " +"ReplicationController, ReplicaSet, Job, DaemonSet ou StatefulSet, e tem espera por 15 minutos.\n" +"\t\t$ kubectl drain foo —grace-period=900" + +#: pkg/kubectl/cmd/edit.go:80 +msgid "" +"\n" +"\t\t# Edit the service named 'docker-registry':\n" +"\t\tkubectl edit svc/docker-registry\n" +"\n" +"\t\t# Use an alternative editor\n" +"\t\tKUBE_EDITOR=\"nano\" kubectl edit svc/docker-registry\n" +"\n" +"\t\t# Edit the job 'myjob' in JSON using the v1 API format:\n" +"\t\tkubectl edit job.v1.batch/myjob -o json\n" +"\n" +"\t\t# Edit the deployment 'mydeployment' in YAML and save the modified config in its " +"annotation:\n" +"\t\tkubectl edit deployment/mydeployment -o yaml --save-config" +msgstr "" +"\n" +"\t\t# Edita o serviço chamado 'docker-registry':\n" +"\t\tkubectl edit svc/docker-registry\n" +"\n" +"\t\t# Usa um editor alternativo\n" +"\t\tKUBE_EDITOR=\"nano\" kubectl edit svc/docker-registry\n" +"\n" +"\t\t# Edita o Job 'myjob' em JSON utilizando o format da API v1:\n" +"\t\tkubectl edit job.v1.batch/myjob -o json\n" +"\n" +"\t\t# Edita o deployment 'mydeployment' em YAML e salva a configuração modificada em sua " +"annotation:\n" +"\t\tkubectl edit deployment/mydeployment -o yaml —save-config" + +#: pkg/kubectl/cmd/exec.go:41 +msgid "" +"\n" +"\t\t# Get output from running 'date' from pod 123456-7890, using the first container by default\n" +"\t\tkubectl exec 123456-7890 date\n" +"\n" +"\t\t# Get output from running 'date' in ruby-container from pod 123456-7890\n" +"\t\tkubectl exec 123456-7890 -c ruby-container date\n" +"\n" +"\t\t# Switch to raw terminal mode, sends stdin to 'bash' in ruby-container from pod 123456-7890\n" +"\t\t# and sends stdout/stderr from 'bash' back to the client\n" +"\t\tkubectl exec 123456-7890 -c ruby-container -i -t -- bash -il" +msgstr "" +"\n" +"\t\t# Pega a saída de execução do comando 'date' do pod 123456-7890, usando o primeiro container " +"por padrão\n" +"\t\tkubectl exec 123456-7890 date\n" +"\n" +"\t\t# Pega a saída de execução do comando 'date' no ruby-container do pod 123456-7890\n" +"\t\tkubectl exec 123456-7890 -c ruby-container date\n" +"\n" +"\t\t# Troca para raw terminal mode, envia stdin para o 'bash' no ruby-container do pod " +"123456-7890\n" +"\t\t# e envia stdout/stderr do 'bash' de volta para o cliente\n" +"\t\tkubectl exec 123456-7890 -c ruby-container -i -t — bash -il" + +#: pkg/kubectl/cmd/attach.go:42 +msgid "" +"\n" +"\t\t# Get output from running pod 123456-7890, using the first container by default\n" +"\t\tkubectl attach 123456-7890\n" +"\n" +"\t\t# Get output from ruby-container from pod 123456-7890\n" +"\t\tkubectl attach 123456-7890 -c ruby-container\n" +"\n" +"\t\t# Switch to raw terminal mode, sends stdin to 'bash' in ruby-container from pod 123456-7890\n" +"\t\t# and sends stdout/stderr from 'bash' back to the client\n" +"\t\tkubectl attach 123456-7890 -c ruby-container -i -t\n" +"\n" +"\t\t# Get output from the first pod of a ReplicaSet named nginx\n" +"\t\tkubectl attach rs/nginx\n" +"\t\t" +msgstr "" +"\n" +"\t\t# Pega a saída do pod em execução 123456-7890, utilizando o primeiro container por padrão\n" +"\t\tkubectl attach 123456-7890\n" +"\n" +"\t\t# Pega a saída do ruby-container do pod 123456-7890\n" +"\t\tkubectl attach 123456-7890 -c ruby-container\n" +"\n" +"\t\t# Troca para raw terminal mode, envia stdin para o 'bash' no ruby-container do pod " +"123456-7890\n" +"\t\t# e envia stdout/stderr do 'bash' de volta para o cliente\n" +"\t\tkubectl attach 123456-7890 -c ruby-container -i -t\n" +"\n" +"\t\t# Pega a saída do primeiro pod de um ReplicaSet chamado nginx\n" +"\t\tkubectl attach rs/nginx\n" +"\t\t" + +#: pkg/kubectl/cmd/explain.go:39 +msgid "" +"\n" +"\t\t# Get the documentation of the resource and its fields\n" +"\t\tkubectl explain pods\n" +"\n" +"\t\t# Get the documentation of a specific field of a resource\n" +"\t\tkubectl explain pods.spec.containers" +msgstr "" +"\n" +"\t\t# Mostra a documentação do recurso e seus campos\n" +"\t\tkubectl explain pods\n" +"\n" +"\t\t# Mostra a documentação de um campo específico de um recurso\n" +"\t\tkubectl explain pods.spec.containers" + +#: pkg/kubectl/cmd/completion.go:65 +msgid "" +"\n" +"\t\t# Install bash completion on a Mac using homebrew\n" +"\t\tbrew install bash-completion\n" +"\t\tprintf \"\n" +"# Bash completion support\n" +"source $(brew --prefix)/etc/bash_completion\n" +"\" >> $HOME/.bash_profile\n" +"\t\tsource $HOME/.bash_profile\n" +"\n" +"\t\t# Load the kubectl completion code for bash into the current shell\n" +"\t\tsource <(kubectl completion bash)\n" +"\n" +"\t\t# Write bash completion code to a file and source if from .bash_profile\n" +"\t\tkubectl completion bash > ~/.kube/completion.bash.inc\n" +"\t\tprintf \"\n" +"# Kubectl shell completion\n" +"source '$HOME/.kube/completion.bash.inc'\n" +"\" >> $HOME/.bash_profile\n" +"\t\tsource $HOME/.bash_profile\n" +"\n" +"\t\t# Load the kubectl completion code for zsh[1] into the current shell\n" +"\t\tsource <(kubectl completion zsh)" +msgstr "" +"\n" +"\t\t# Instala o auto completar do bash no Mac utilizando homebrew\n" +"\t\tbrew install bash-completion\n" +"\t\tprintf \"\n" +"# Bash completion support\n" +"source $(brew —prefix)/etc/bash_completion\n" +"\" >> $HOME/.bash_profile\n" +"\t\tsource $HOME/.bash_profile\n" +"\n" +"\t\t# Carrega o código de auto complentar do kubectl para o bash no shell corrente\n" +"\t\tsource <(kubectl completion bash)\n" +"\n" +"\t\t# Escreve o código de autocompletar do bash no arquivo de perfil e faz o source se é para o ." +"bash_profile\n" +"\t\tkubectl completion bash > ~/.kube/completion.bash.inc\n" +"\t\tprintf \"\n" +"# Kubectl shell completion\n" +"source '$HOME/.kube/completion.bash.inc'\n" +"\" >> $HOME/.bash_profile\n" +"\t\tsource $HOME/.bash_profile\n" +"\n" +"\t\t# Carrega o código de auto complentar do kubectl para zsh[1] no shell em utilização\n" +"\t\tsource <(kubectl completion zsh)" + +#: pkg/kubectl/cmd/get.go:64 +msgid "" +"\n" +"\t\t# List all pods in ps output format.\n" +"\t\tkubectl get pods\n" +"\n" +"\t\t# List all pods in ps output format with more information (such as node name).\n" +"\t\tkubectl get pods -o wide\n" +"\n" +"\t\t# List a single replication controller with specified NAME in ps output format.\n" +"\t\tkubectl get replicationcontroller web\n" +"\n" +"\t\t# List a single pod in JSON output format.\n" +"\t\tkubectl get -o json pod web-pod-13je7\n" +"\n" +"\t\t# List a pod identified by type and name specified in \"pod.yaml\" in JSON output format.\n" +"\t\tkubectl get -f pod.yaml -o json\n" +"\n" +"\t\t# Return only the phase value of the specified pod.\n" +"\t\tkubectl get -o template pod/web-pod-13je7 --template={{.status.phase}}\n" +"\n" +"\t\t# List all replication controllers and services together in ps output format.\n" +"\t\tkubectl get rc,services\n" +"\n" +"\t\t# List one or more resources by their type and names.\n" +"\t\tkubectl get rc/web service/frontend pods/web-pod-13je7\n" +"\n" +"\t\t# List all resources with different types.\n" +"\t\tkubectl get all" +msgstr "" +"\n" +"\t\t# Lista todos os pods no formato de saída ps.\n" +"\t\tkubectl get pods\n" +"\n" +"\t\t# Lista todos os pods no formato de saída ps com mais informações (como o nome do node).\n" +"\t\tkubectl get pods -o wide\n" +"\n" +"\t\t# Lista um único replication controller com o nome especificado no formato de saída ps\n" +"\t\tkubectl get replicationcontroller web\n" +"\n" +"\t\t# Lista um único pod e usa o formato de saída JSON.\n" +"\t\tkubectl get -o json pod web-pod-13je7\n" +"\n" +"\t\t# Lista o pod identificado com o tipo e nome especificado no \"pod.yaml\" e usa o formato de " +"saída JSON.\n" +"\t\tkubectl get -f pod.yaml -o json\n" +"\n" +"\t\t# Mostra apenas em que estágio o pod especificado está.\n" +"\t\tkubectl get -o template pod/web-pod-13je7 —template={{.status.phase}}\n" +"\n" +"\t\t# Lista todos os replication controllers e services juntos no formato de saída ps.\n" +"\t\tkubectl get rc,services\n" +"\n" +"\t\t# Lista um ou mais recursos pelo seu tipo e nomes.\n" +"\t\tkubectl get rc/web service/frontend pods/web-pod-13je7\n" +"\n" +"\t\t# Lista todos os recursos e com tipos diferentes.\n" +"\t\tkubectl get all" + +#: pkg/kubectl/cmd/portforward.go:53 +msgid "" +"\n" +"\t\t# Listen on ports 5000 and 6000 locally, forwarding data to/from ports 5000 and 6000 in the " +"pod\n" +"\t\tkubectl port-forward mypod 5000 6000\n" +"\n" +"\t\t# Listen on port 8888 locally, forwarding to 5000 in the pod\n" +"\t\tkubectl port-forward mypod 8888:5000\n" +"\n" +"\t\t# Listen on a random port locally, forwarding to 5000 in the pod\n" +"\t\tkubectl port-forward mypod :5000\n" +"\n" +"\t\t# Listen on a random port locally, forwarding to 5000 in the pod\n" +"\t\tkubectl port-forward mypod 0:5000" +msgstr "" +"\n" +"\t\t# Escuta nas portas locais 5000 e 6000, e redireciona os dados de/para as portas 5000 e 6000 " +"no pod\n" +"\t\tkubectl port-forward mypod 5000 6000\n" +"\n" +"\t\t# Escuta na porta local 8888 localmente, e redireciona para a porta 5000 no pod\n" +"\t\tkubectl port-forward mypod 8888:5000\n" +"\n" +"\t\t# Escuta uma porta local aleatória, e redireciona para a porta 5000 no pod\n" +"\t\tkubectl port-forward mypod :5000\n" +"\n" +"\t\t# Escuta uma porta local aleatória, e redireciona para a porta 5000 no pod\\n\n" +"\t\tkubectl port-forward mypod 0:5000" + +#: pkg/kubectl/cmd/drain.go:118 +msgid "" +"\n" +"\t\t# Mark node \"foo\" as schedulable.\n" +"\t\t$ kubectl uncordon foo" +msgstr "" +"\n" +"\t\t# Remove a restrição de execução de Pods no node \"foo\".\n" +"\t\t$ kubectl uncordon foo" + +#: pkg/kubectl/cmd/drain.go:93 +msgid "" +"\n" +"\t\t# Mark node \"foo\" as unschedulable.\n" +"\t\tkubectl cordon foo" +msgstr "" +"\n" +"\t\t# Restringe a execução de novos Pods no node \"foo\".\n" +"\t\tkubectl cordon foo" + +#: pkg/kubectl/cmd/patch.go:66 +msgid "" +"\n" +"\t\t# Partially update a node using strategic merge patch\n" +"\t\tkubectl patch node k8s-node-1 -p '{\"spec\":{\"unschedulable\":true}}'\n" +"\n" +"\t\t# Partially update a node identified by the type and name specified in \"node.json\" using " +"strategic merge patch\n" +"\t\tkubectl patch -f node.json -p '{\"spec\":{\"unschedulable\":true}}'\n" +"\n" +"\t\t# Update a container's image; spec.containers[*].name is required because it's a merge key\n" +"\t\tkubectl patch pod valid-pod -p '{\"spec\":{\"containers\":[{\"name\":\"kubernetes-serve-" +"hostname\",\"image\":\"new image\"}]}}'\n" +"\n" +"\t\t# Update a container's image using a json patch with positional arrays\n" +"\t\tkubectl patch pod valid-pod --type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/" +"containers/0/image\", \"value\":\"new image\"}]'" +msgstr "" +"\n" +"\t\t# Atualiza parcialmente um node utilizando a estratégia merge patch\n" +"\t\tkubectl patch node k8s-node-1 -p '{\"spec\":{\"unschedulable\":true}}'\n" +"\n" +"\t\t# Atualiza parcialmente um node identificado pelo tipo e nome no arquivo \"node.json\" " +"utilizando a estratégia merge patch\n" +"\t\tkubectl patch -f node.json -p '{\"spec\":{\"unschedulable\":true}}'\n" +"\n" +"\t\t# Atualiza uma imagem em um container; spec.containers[*].name é requerido pois será usado " +"como índice para a mudança\n" +"\t\tkubectl patch pod valid-pod -p '{\"spec\":{\"containers\":[{\"name\":\"kubernetes-serve-" +"hostname\",\"image\":\"new image\"}]}}'\n" +"\n" +"\t\t# Atualiza uma imagem em um container utilizando o json patch com positional arrays\n" +"\t\tkubectl patch pod valid-pod —type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/" +"containers/0/image\", \"value\":\"new image\"}]'" + +#: pkg/kubectl/cmd/options.go:29 +msgid "" +"\n" +"\t\t# Print flags inherited by all commands\n" +"\t\tkubectl options" +msgstr "" +"\n" +"\t\t# Mostra as opções herdadas por todos os comandos\n" +"\t\tkubectl options" + +#: pkg/kubectl/cmd/clusterinfo.go:41 +msgid "" +"\n" +"\t\t# Print the address of the master and cluster services\n" +"\t\tkubectl cluster-info" +msgstr "" +"\n" +"\t\t# Mostra o endereço do servidor de gerenciamento e dos serviços do cluster\n" +"\t\tkubectl cluster-info" + +#: pkg/kubectl/cmd/version.go:32 +msgid "" +"\n" +"\t\t# Print the client and server versions for the current context\n" +"\t\tkubectl version" +msgstr "" +"\n" +"\t\t# Imprime a versão do cliente e do servidor para o contexto atual\n" +"\t\tkubectl version" + +#: pkg/kubectl/cmd/apiversions.go:34 +msgid "" +"\n" +"\t\t# Print the supported API versions\n" +"\t\tkubectl api-versions" +msgstr "" +"\n" +"\t\t# Mostra as versões de API suportadas\n" +"\t\tkubectl api-versions" + +#: pkg/kubectl/cmd/replace.go:50 +msgid "" +"\n" +"\t\t# Replace a pod using the data in pod.json.\n" +"\t\tkubectl replace -f ./pod.json\n" +"\n" +"\t\t# Replace a pod based on the JSON passed into stdin.\n" +"\t\tcat pod.json | kubectl replace -f -\n" +"\n" +"\t\t# Update a single-container pod's image version (tag) to v4\n" +"\t\tkubectl get pod mypod -o yaml | sed 's/\\(image: myimage\\):.*$/:v4/' | kubectl replace -f " +"-\n" +"\n" +"\t\t# Force replace, delete and then re-create the resource\n" +"\t\tkubectl replace --force -f ./pod.json" +msgstr "" +"\n" +"\t\t# Substitui um pod utlizando os dados contidos em pod.json.\n" +"\t\tkubectl replace -f ./pod.json\n" +"\n" +"\t\t# Troca um pod com base no JSON fornecido no stdin.\n" +"\t\tcat pod.json | kubectl replace -f -\n" +"\n" +"\t\t# Atualiza uma versão de imagem (tag) de um pod com um único container para v4\n" +"\t\tkubectl get pod mypod -o yaml | sed 's/\\(image: myimage\\):.*$/:v4/' | kubectl replace -f " +"-\n" +"\n" +"\t\t# Força a troca, removendo e recriando o recurso\n" +"\t\tkubectl replace —force -f ./pod.json" + +#: pkg/kubectl/cmd/logs.go:40 +msgid "" +"\n" +"\t\t# Return snapshot logs from pod nginx with only one container\n" +"\t\tkubectl logs nginx\n" +"\n" +"\t\t# Return snapshot logs for the pods defined by label app=nginx\n" +"\t\tkubectl logs -lapp=nginx\n" +"\n" +"\t\t# Return snapshot of previous terminated ruby container logs from pod web-1\n" +"\t\tkubectl logs -p -c ruby web-1\n" +"\n" +"\t\t# Begin streaming the logs of the ruby container in pod web-1\n" +"\t\tkubectl logs -f -c ruby web-1\n" +"\n" +"\t\t# Display only the most recent 20 lines of output in pod nginx\n" +"\t\tkubectl logs --tail=20 nginx\n" +"\n" +"\t\t# Show all logs from pod nginx written in the last hour\n" +"\t\tkubectl logs --since=1h nginx\n" +"\n" +"\t\t# Return snapshot logs from first container of a job named hello\n" +"\t\tkubectl logs job/hello\n" +"\n" +"\t\t# Return snapshot logs from container nginx-1 of a deployment named nginx\n" +"\t\tkubectl logs deployment/nginx -c nginx-1" +msgstr "" +"\n" +"\t\t# Retorna os logs do pod nginx com um único container\n" +"\t\tkubectl logs nginx\n" +"\n" +"\t\t# Retorna os logs dos pods definidos pelo label app=nginx\n" +"\t\tkubectl logs -lapp=nginx\n" +"\n" +"\t\t# Retorna os logs do container ruby finalizado do pod web-1\n" +"\t\tkubectl logs -p -c ruby web-1\n" +"\n" +"\t\t# Começa o streaming de logs de um ruby container no pod web-1\n" +"\t\tkubectl logs -f -c ruby web-1\n" +"\n" +"\t\t# Mostra apenas as 20 linhas mais recentes de saída do pod nginx\n" +"\t\tkubectl logs —tail=20 nginx\n" +"\n" +"\t\t# Mostra todos os logs do pod nginx escrito na última hora\n" +"\t\tkubectl logs —since=1h nginx\n" +"\n" +"\t\t# Retorna os logs do primeiro container com o Job chamado hello\n" +"\t\tkubectl logs job/hello\n" +"\n" +"\t\t# Retorna os logs do container nginx-1 de um deployment chamado nginx\n" +"\t\tkubectl logs deployment/nginx -c nginx-1" + +#: pkg/kubectl/cmd/proxy.go:53 +msgid "" +"\n" +"\t\t# Run a proxy to kubernetes apiserver on port 8011, serving static content from ./local/" +"www/\n" +"\t\tkubectl proxy --port=8011 --www=./local/www/\n" +"\n" +"\t\t# Run a proxy to kubernetes apiserver on an arbitrary local port.\n" +"\t\t# The chosen port for the server will be output to stdout.\n" +"\t\tkubectl proxy --port=0\n" +"\n" +"\t\t# Run a proxy to kubernetes apiserver, changing the api prefix to k8s-api\n" +"\t\t# This makes e.g. the pods api available at localhost:8001/k8s-api/v1/pods/\n" +"\t\tkubectl proxy --api-prefix=/k8s-api" +msgstr "" +"\n" +"\t\t# Executa um proxy para o apiserver do kubernetes na porta 8011, servindo um conteúdo " +"estático do caminho ./local/www/\n" +"\t\tkubectl proxy —port=8011 —www=./local/www/\n" +"\n" +"\t\t# Executa um proxy para o apiserver do kubernetes em uma porta local arbitrária.\n" +"\t\t# A porta escolhida para o servidor será utilizada para o saída de stdout.\n" +"\t\tkubectl proxy —port=0\n" +"\n" +"\t\t# Executa um proxy para o apiserver do kubernetes, mudando o prefixo do api para k8s-api\n" +"\t\t# Com isso a api dos pods estarão disponível em localhost:8001/k8s-api/v1/pods/\n" +"\t\tkubectl proxy —api-prefix=/k8s-api" + +#: pkg/kubectl/cmd/scale.go:43 +msgid "" +"\n" +"\t\t# Scale a replicaset named 'foo' to 3.\n" +"\t\tkubectl scale --replicas=3 rs/foo\n" +"\n" +"\t\t# Scale a resource identified by type and name specified in \"foo.yaml\" to 3.\n" +"\t\tkubectl scale --replicas=3 -f foo.yaml\n" +"\n" +"\t\t# If the deployment named mysql's current size is 2, scale mysql to 3.\n" +"\t\tkubectl scale --current-replicas=2 --replicas=3 deployment/mysql\n" +"\n" +"\t\t# Scale multiple replication controllers.\n" +"\t\tkubectl scale --replicas=5 rc/foo rc/bar rc/baz\n" +"\n" +"\t\t# Scale job named 'cron' to 3.\n" +"\t\tkubectl scale --replicas=3 job/cron" +msgstr "" +"\n" +"\t\t# Escala um replicaset chamado 'foo' para 3.\n" +"\t\tkubectl scale —replicas=3 rs/foo\n" +"\n" +"\t\t# Escala um recurso identificado pelo tipo e nome especificado no arquivo \"foo.yaml\" para " +"3.\n" +"\t\tkubectl scale —replicas=3 -f foo.yaml\n" +"\n" +"\t\t# Se um deployment chamado mysql tem tamanho 2, escala o mysql para 3.\n" +"\t\tkubectl scale —current-replicas=2 —replicas=3 deployment/mysql\n" +"\n" +"\t\t# Escala múltiplos replication controllers.\n" +"\t\tkubectl scale —replicas=5 rc/foo rc/bar rc/baz\n" +"\n" +"\t\t# Escala um Job chamado 'cron' para 3.\n" +"\t\tkubectl scale —replicas=3 job/cron" + +#: pkg/kubectl/cmd/apply_set_last_applied.go:67 +msgid "" +"\n" +"\t\t# Set the last-applied-configuration of a resource to match the contents of a file.\n" +"\t\tkubectl apply set-last-applied -f deploy.yaml\n" +"\n" +"\t\t# Execute set-last-applied against each configuration file in a directory.\n" +"\t\tkubectl apply set-last-applied -f path/\n" +"\n" +"\t\t# Set the last-applied-configuration of a resource to match the contents of a file, will " +"create the annotation if it does not already exist.\n" +"\t\tkubectl apply set-last-applied -f deploy.yaml --create-annotation=true\n" +"\t\t" +msgstr "" +"\n" +"\t\t# Ajusta o last-applied-configuration de um recurso para corresponder ao conteúdo de um " +"arquivo.\n" +"\t\tkubectl apply set-last-applied -f deploy.yaml\n" +"\n" +"\t\t# Executa o set-last-applied em todos os arquivos de configuração no diretório.\n" +"\t\tkubectl apply set-last-applied -f path/\n" +"\n" +"\t\t# Ajusta o last-applied-configuration de um recurso para corresponder ao conteúdo de um " +"arquivo, será criada uma annotation se esta ainda não existe.\n" +"\t\tkubectl apply set-last-applied -f deploy.yaml —create-annotation=true\n" +"\t\t" + +#: pkg/kubectl/cmd/top_pod.go:61 +msgid "" +"\n" +"\t\t# Show metrics for all pods in the default namespace\n" +"\t\tkubectl top pod\n" +"\n" +"\t\t# Show metrics for all pods in the given namespace\n" +"\t\tkubectl top pod --namespace=NAMESPACE\n" +"\n" +"\t\t# Show metrics for a given pod and its containers\n" +"\t\tkubectl top pod POD_NAME --containers\n" +"\n" +"\t\t# Show metrics for the pods defined by label name=myLabel\n" +"\t\tkubectl top pod -l name=myLabel" +msgstr "" +"\n" +"\t\t# Mostra as métricas para todos os pods no namespace default\n" +"\t\tkubectl top pod\n" +"\n" +"\t\t# Mostra as métricas para todos os pods em um dado namespace\n" +"\t\tkubectl top pod —namespace=NAMESPACE\n" +"\n" +"\t\t# Mostra as métricas para um dado pod e seus containers\n" +"\t\tkubectl top pod POD_NAME —containers\n" +"\n" +"\t\t# Mostra as métricas para os pods definidos pelo label name=myLabel\n" +"\t\tkubectl top pod -l name=myLabel" + +#: pkg/kubectl/cmd/stop.go:40 +msgid "" +"\n" +"\t\t# Shut down foo.\n" +"\t\tkubectl stop replicationcontroller foo\n" +"\n" +"\t\t# Stop pods and services with label name=myLabel.\n" +"\t\tkubectl stop pods,services -l name=myLabel\n" +"\n" +"\t\t# Shut down the service defined in service.json\n" +"\t\tkubectl stop -f service.json\n" +"\n" +"\t\t# Shut down all resources in the path/to/resources directory\n" +"\t\tkubectl stop -f path/to/resources" +msgstr "" +"\n" +"\t\t# Termina o replicationcontroller foo.\n" +"\t\tkubectl stop replicationcontroller foo\n" +"\n" +"\t\t# Para os pods e serviços com o label name=myLabel.\n" +"\t\tkubectl stop pods,services -l name=myLabel\n" +"\n" +"\t\t# Termina o serviço definido no arquivo service.json\n" +"\t\tkubectl stop -f service.json\n" +"\n" +"\t\t# Termina todos os recursos no caminho do diretório path/to/resources\n" +"\t\tkubectl stop -f path/to/resources" + +#: pkg/kubectl/cmd/run.go:57 +msgid "" +"\n" +"\t\t# Start a single instance of nginx.\n" +"\t\tkubectl run nginx --image=nginx\n" +"\n" +"\t\t# Start a single instance of hazelcast and let the container expose port 5701 .\n" +"\t\tkubectl run hazelcast --image=hazelcast --port=5701\n" +"\n" +"\t\t# Start a single instance of hazelcast and set environment variables \"DNS_DOMAIN=cluster\" " +"and \"POD_NAMESPACE=default\" in the container.\n" +"\t\tkubectl run hazelcast --image=hazelcast --env=\"DNS_DOMAIN=cluster\" --env=" +"\"POD_NAMESPACE=default\"\n" +"\n" +"\t\t# Start a replicated instance of nginx.\n" +"\t\tkubectl run nginx --image=nginx --replicas=5\n" +"\n" +"\t\t# Dry run. Print the corresponding API objects without creating them.\n" +"\t\tkubectl run nginx --image=nginx --dry-run\n" +"\n" +"\t\t# Start a single instance of nginx, but overload the spec of the deployment with a partial " +"set of values parsed from JSON.\n" +"\t\tkubectl run nginx --image=nginx --overrides='{ \"apiVersion\": \"v1\", \"spec\": { ... } }'\n" +"\n" +"\t\t# Start a pod of busybox and keep it in the foreground, don't restart it if it exits.\n" +"\t\tkubectl run -i -t busybox --image=busybox --restart=Never\n" +"\n" +"\t\t# Start the nginx container using the default command, but use custom arguments (arg1 .. " +"argN) for that command.\n" +"\t\tkubectl run nginx --image=nginx -- ... \n" +"\n" +"\t\t# Start the nginx container using a different command and custom arguments.\n" +"\t\tkubectl run nginx --image=nginx --command -- ... \n" +"\n" +"\t\t# Start the perl container to compute π to 2000 places and print it out.\n" +"\t\tkubectl run pi --image=perl --restart=OnFailure -- perl -Mbignum=bpi -wle 'print bpi(2000)'\n" +"\n" +"\t\t# Start the cron job to compute π to 2000 places and print it out every 5 minutes.\n" +"\t\tkubectl run pi --schedule=\"0/5 * * * ?\" --image=perl --restart=OnFailure -- perl -" +"Mbignum=bpi -wle 'print bpi(2000)'" +msgstr "" +"\n" +"\t\t# Inicia uma única instância de nginx.\n" +"\t\tkubectl run nginx —image=nginx\n" +"\n" +"\t\t# Inicia uma única instância do hazelcast e expõe a porta 5701 do container.\n" +"\t\tkubectl run hazelcast —image=hazelcast —port=5701\n" +"\n" +"\t\t# Inicia uma única instância do hazelcast e seta as variáveis de ambiente " +"\"DNS_DOMAIN=cluster\" e \"POD_NAMESPACE=default\" no container.\n" +"\t\tkubectl run hazelcast —image=hazelcast —env=\"DNS_DOMAIN=cluster\" —env=" +"\"POD_NAMESPACE=default\"\n" +"\n" +"\t\t# Inicia uma instância replicada de nginx.\n" +"\t\tkubectl run nginx —image=nginx —replicas=5\n" +"\n" +"\t\t# Dry run. Mostra os objetos da API correspondente sem criar elas.\n" +"\t\tkubectl run nginx —image=nginx —dry-run\n" +"\n" +"\t\t# Inicia uma única instância de nginx, mas sobrescreve a spec do deployment com um conjunto " +"parcial de valores passeados do JSON.\n" +"\t\tkubectl run nginx —image=nginx —overrides='{ \"apiVersion\": \"v1\", \"spec\": { … } }'\n" +"\n" +"\t\t# Inicia um pod de busybox e mantém ele em primeiro plano, não reinicia se ele já existe.\n" +"\t\tkubectl run -i -t busybox —image=busybox —restart=Never\n" +"\n" +"\t\t# Inicia um container nginx usando o comando padrão, mas utiliza argumentos customizados " +"(arg1 .. argN) para o comando.\n" +"\t\tkubectl run nginx —image=nginx — \n" +"\n" +"\t\t# Inicia um container nginx usando um comando diferente e argumentos customizados.\n" +"\t\tkubectl run nginx —image=nginx —command — \n" +"\n" +"\t\t# Inicia um container perl para processar π to 2000 posições e mostra a saída.\n" +"\t\tkubectl run pi —image=perl —restart=OnFailure — perl -Mbignum=bpi -wle 'print bpi(2000)'\n" +"\n" +"\t\t# Inicia um cron job para processar as 2000 posições de π e mostra a saída a cada 5 " +"minutos.\n" +"\t\tkubectl run pi —schedule=\"0/5 * * * ?\" —image=perl —restart=OnFailure — perl -Mbignum=bpi -" +"wle 'print bpi(2000)'" + +#: pkg/kubectl/cmd/taint.go:67 +msgid "" +"\n" +"\t\t# Update node 'foo' with a taint with key 'dedicated' and value 'special-user' and effect " +"'NoSchedule'.\n" +"\t\t# If a taint with that key and effect already exists, its value is replaced as specified.\n" +"\t\tkubectl taint nodes foo dedicated=special-user:NoSchedule\n" +"\n" +"\t\t# Remove from node 'foo' the taint with key 'dedicated' and effect 'NoSchedule' if one " +"exists.\n" +"\t\tkubectl taint nodes foo dedicated:NoSchedule-\n" +"\n" +"\t\t# Remove from node 'foo' all the taints with key 'dedicated'\n" +"\t\tkubectl taint nodes foo dedicated-" +msgstr "" +"\n" +"\t\t# Atualiza a restrição para a chave 'dedicated' e o valor 'special-user' e o efeito " +"'NoSchedule' para o node 'foo'.\n" +"\t\t# Se o taint com esta chave e efeito já existirem, o seu valor é substituído pelo " +"especificado.\n" +"\t\tkubectl taint nodes foo dedicated=special-user:NoSchedule\n" +"\n" +"\t\t# Remove a restrição com a chave 'dedicated' e efeito 'NoSchedule' do nodo 'foo' se " +"existir.\n" +"\t\tkubectl taint nodes foo dedicated:NoSchedule-\n" +"\n" +"\t\t# Remove o node 'foo' todos os taints com a chave 'dedicated'\n" +"\t\tkubectl taint nodes foo dedicated-" + +#: pkg/kubectl/cmd/label.go:77 +msgid "" +"\n" +"\t\t# Update pod 'foo' with the label 'unhealthy' and the value 'true'.\n" +"\t\tkubectl label pods foo unhealthy=true\n" +"\n" +"\t\t# Update pod 'foo' with the label 'status' and the value 'unhealthy', overwriting any " +"existing value.\n" +"\t\tkubectl label --overwrite pods foo status=unhealthy\n" +"\n" +"\t\t# Update all pods in the namespace\n" +"\t\tkubectl label pods --all status=unhealthy\n" +"\n" +"\t\t# Update a pod identified by the type and name in \"pod.json\"\n" +"\t\tkubectl label -f pod.json status=unhealthy\n" +"\n" +"\t\t# Update pod 'foo' only if the resource is unchanged from version 1.\n" +"\t\tkubectl label pods foo status=unhealthy --resource-version=1\n" +"\n" +"\t\t# Update pod 'foo' by removing a label named 'bar' if it exists.\n" +"\t\t# Does not require the --overwrite flag.\n" +"\t\tkubectl label pods foo bar-" +msgstr "" +"\n" +"\t\t# Atualiza o pod 'foo' com o label 'unhealthy' e valor 'true'.\n" +"\t\tkubectl label pods foo unhealthy=true\n" +"\n" +"\t\t# Atualiza o pod 'foo' com o label 'status' e valor 'unhealthy', sobrescrevendo qualquer " +"valor existente.\n" +"\t\tkubectl label —overwrite pods foo status=unhealthy\n" +"\n" +"\t\t# Atualiza todos os pods no namespace corrente\n" +"\t\tkubectl label pods —all status=unhealthy\n" +"\n" +"\t\t# Atualiza o pod identificado pelo tipo e nome em \"pod.json\"\n" +"\t\tkubectl label -f pod.json status=unhealthy\n" +"\n" +"\t\t# Atualiza o pod 'foo' apenas se o recurso não foi modificado na versão 1.\n" +"\t\tkubectl label pods foo status=unhealthy —resource-version=1\n" +"\n" +"\t\t# Atualiza o pod 'foo' removendo o label chamado 'bar', se ele existir.\n" +"\t\t# Não necessita a flag —overwrite.\n" +"\t\tkubectl label pods foo bar-" + +#: pkg/kubectl/cmd/rollingupdate.go:54 +msgid "" +"\n" +"\t\t# Update pods of frontend-v1 using new replication controller data in frontend-v2.json.\n" +"\t\tkubectl rolling-update frontend-v1 -f frontend-v2.json\n" +"\n" +"\t\t# Update pods of frontend-v1 using JSON data passed into stdin.\n" +"\t\tcat frontend-v2.json | kubectl rolling-update frontend-v1 -f -\n" +"\n" +"\t\t# Update the pods of frontend-v1 to frontend-v2 by just changing the image, and switching " +"the\n" +"\t\t# name of the replication controller.\n" +"\t\tkubectl rolling-update frontend-v1 frontend-v2 --image=image:v2\n" +"\n" +"\t\t# Update the pods of frontend by just changing the image, and keeping the old name.\n" +"\t\tkubectl rolling-update frontend --image=image:v2\n" +"\n" +"\t\t# Abort and reverse an existing rollout in progress (from frontend-v1 to frontend-v2).\n" +"\t\tkubectl rolling-update frontend-v1 frontend-v2 --rollback" +msgstr "" +"\n" +"\t\t# Atualiza os pods de frontend-v1 utilizando os dados do novo replication controller " +"definido em frontend-v2.json.\n" +"\t\tkubectl rolling-update frontend-v1 -f frontend-v2.json\n" +"\n" +"\t\t# Atualiza os pods do frontend-v1 utilizando os dados em JSON passados pelo stdin.\n" +"\t\tcat frontend-v2.json | kubectl rolling-update frontend-v1 -f -\n" +"\n" +"\t\t# Atualiza os pods do frontend-v1 para frontend-v2 trocando a imagem, e trocando o\n" +"\t\t# nome do replication controller.\n" +"\t\tkubectl rolling-update frontend-v1 frontend-v2 --image=image:v2\n" +"\n" +"\t\t# Atualiza os pods do frontend trocando a imagem, e mantendo o nome antigo.\n" +"\t\tkubectl rolling-update frontend --image=image:v2\n" +"\n" +"\t\t# Cancela e reverte um rollout existente em progresso (de frontend-v1 para frontend-v2).\n" +"\t\tkubectl rolling-update frontend-v1 frontend-v2 --rollback" + +#: pkg/kubectl/cmd/apply_view_last_applied.go:52 +msgid "" +"\n" +"\t\t# View the last-applied-configuration annotations by type/name in YAML.\n" +"\t\tkubectl apply view-last-applied deployment/nginx\n" +"\n" +"\t\t# View the last-applied-configuration annotations by file in JSON\n" +"\t\tkubectl apply view-last-applied -f deploy.yaml -o json" +msgstr "" +"\n" +"\t\t# Visualiza a anotação last-applied-configuration pelo tipo/nome no YAML.\n" +"\t\tkubectl apply view-last-applied deployment/nginx\n" +"\n" +"\t\t# Visualiza a anotação last-applied-configuration no arquivo JSON\n" +"\t\tkubectl apply view-last-applied -f deploy.yaml -o json" + +#: pkg/kubectl/cmd/apply.go:75 +msgid "" +"\n" +"\t\tApply a configuration to a resource by filename or stdin.\n" +"\t\tThis resource will be created if it doesn't exist yet.\n" +"\t\tTo use 'apply', always create the resource initially with either 'apply' or 'create --save-" +"config'.\n" +"\n" +"\t\tJSON and YAML formats are accepted.\n" +"\n" +"\t\tAlpha Disclaimer: the --prune functionality is not yet complete. Do not use unless you are " +"aware of what the current state is. See https://issues.k8s.io/34274." +msgstr "" +"\n" +"\t\tAplica a configuração em um recurso usando um nome de arquivo ou stdin.\n" +"\t\tEste recurso será criado se ele não existir.\n" +"\t\tPara utilizar o 'apply', sempre crie o recurso inicialmente com 'apply' ou 'create --save-" +"config'.\n" +"\n" +"\t\tFormatos JSON e YAML são aceitos.\n" +"\n" +"\t\tNota Alpha: a funcionalidade --prune não está completa. Não utilize a não ser que você saibe " +"qual é o estado corrente. Veja https://issues.k8s.io/34274." + +#: pkg/kubectl/cmd/convert.go:38 +msgid "" +"\n" +"\t\tConvert config files between different API versions. Both YAML\n" +"\t\tand JSON formats are accepted.\n" +"\n" +"\t\tThe command takes filename, directory, or URL as input, and convert it into format\n" +"\t\tof version specified by --output-version flag. If target version is not specified or\n" +"\t\tnot supported, convert to latest version.\n" +"\n" +"\t\tThe default output will be printed to stdout in YAML format. One can use -o option\n" +"\t\tto change to output destination." +msgstr "" +"\n" +"\t\tConvert os arquivos de configuração para diferentes versões de API. Ambos formatos YAML\n" +"\t\\e JSON são aceitos.\n" +"\n" +"\t\tO command recebe o nome do arquivo, diretório ou URL como entrada, e converteno formato\n" +"\t\tpara a versão especificada pelo parametro —output-version. Se a versão desejada não é " +"especificada ou \n" +"\t\tnão é suportada, converte para a última versã disponível.\n" +"\n" +"\t\tA saída padrão é no formato YAML. Pode ser utilizadoa opção -o\n" +"\t\tpara mudar o formato de saída." + +#: pkg/kubectl/cmd/create_clusterrole.go:31 +msgid "" +"\n" +"\t\tCreate a ClusterRole." +msgstr "" +"\n" +"\t\tCria um ClusterRole." + +#: pkg/kubectl/cmd/create_clusterrolebinding.go:32 +msgid "" +"\n" +"\t\tCreate a ClusterRoleBinding for a particular ClusterRole." +msgstr "" +"\n" +"\t\tCria um ClusterRoleBinding para um ClusterRole específico." + +#: pkg/kubectl/cmd/create_rolebinding.go:32 +msgid "" +"\n" +"\t\tCreate a RoleBinding for a particular Role or ClusterRole." +msgstr "" +"\n" +"\t\tCria uma RoleBinding para uma Role específica ou ClusterRole." + +#: pkg/kubectl/cmd/create_secret.go:200 +msgid "" +"\n" +"\t\tCreate a TLS secret from the given public/private key pair.\n" +"\n" +"\t\tThe public/private key pair must exist before hand. The public key certificate must be .PEM " +"encoded and match the given private key." +msgstr "" +"\n" +"\t\tCria um TLS secret de uma chave pública/privada fornecida.\n" +"\n" +"\t\tA chave pública/privada deve existir antes. O certificado da chave deve ser codificada como " +"PEM, e ter sido gerada pela chave privada." + +#: pkg/kubectl/cmd/create_configmap.go:32 +msgid "" +"\n" +"\t\tCreate a configmap based on a file, directory, or specified literal value.\n" +"\n" +"\t\tA single configmap may package one or more key/value pairs.\n" +"\n" +"\t\tWhen creating a configmap based on a file, the key will default to the basename of the file, " +"and the value will\n" +"\t\tdefault to the file content. If the basename is an invalid key, you may specify an " +"alternate key.\n" +"\n" +"\t\tWhen creating a configmap based on a directory, each file whose basename is a valid key in " +"the directory will be\n" +"\t\tpackaged into the configmap. Any directory entries except regular files are ignored (e.g. " +"subdirectories,\n" +"\t\tsymlinks, devices, pipes, etc)." +msgstr "" +"\n" +"\t\tCria um configmap com base em um arquivo, diretório, ou um valor literal especificado.\n" +"\n" +"\t\tUm configmap único pode conter um ou mais pares de chave/valor.\n" +"\n" +"\t\tQuando criar um configmap com base em um arquivo, a chave será por padrão o nome do arquivo, " +"e o valor será\n" +"\t\tpor padrão o conteúdo do arquivo. Se o nome do arquivo for uma chave inválida, você deve " +"especificar uma chave alternativa.\n" +"\n" +"\t\tQuando criar um configmap com base em um diretório, cada arquivo cujo o nome é uma chave " +"válida no diretório será\n" +"\t\tcolocada no configmap. Qualquer entrada de diretório, exceto as com arquivos válidos serão " +"ignorados (por exemplo: sub-diretórios,\n" +"\t\tsymlinks, devices, pipes, etc)." + +#: pkg/kubectl/cmd/create_namespace.go:32 +msgid "" +"\n" +"\t\tCreate a namespace with the specified name." +msgstr "" +"\n" +"\t\tCria um namespace com um nome especificado." + +#: pkg/kubectl/cmd/create_secret.go:119 +msgid "" +"\n" +"\t\tCreate a new secret for use with Docker registries.\n" +"\n" +"\t\tDockercfg secrets are used to authenticate against Docker registries.\n" +"\n" +"\t\tWhen using the Docker command line to push images, you can authenticate to a given registry " +"by running\n" +"\n" +"\t\t $ docker login DOCKER_REGISTRY_SERVER --username=DOCKER_USER --password=DOCKER_PASSWORD " +"--email=DOCKER_EMAIL'.\n" +"\n" +" That produces a ~/.dockercfg file that is used by subsequent 'docker push' and 'docker pull' " +"commands to\n" +"\t\tauthenticate to the registry. The email address is optional.\n" +"\n" +"\t\tWhen creating applications, you may have a Docker registry that requires authentication. In " +"order for the\n" +"\t\tnodes to pull images on your behalf, they have to have the credentials. You can provide " +"this information\n" +"\t\tby creating a dockercfg secret and attaching it to your service account." +msgstr "" +"\n" +"\t\tCria um novo secret para utilizar com Docker registries.\n" +"\n" +"\t\tDockercfg secrets são utilizados para autenticar Docker registries.\n" +"\n" +"\t\tQuando utilizando a linha de comando do Docker para realizar envio das images, você pode se " +"autenticar para um registro fornecido executando\n" +"\n" +"\t\t $ docker login DOCKER_REGISTRY_SERVER —username=DOCKER_USER —password=DOCKER_PASSWORD —" +"email=DOCKER_EMAIL'.\n" +"\n" +" Isso irá gerar um arquivo ~/.dockercfg que será utilizado para os comandos 'docker push' e " +"'docker pull' \n" +"\t\tse autenticarem no registro. O endereço de email é opcional.\n" +"\n" +"\t\tQuando criar aplicações, você pode ter um Docker registry que requer autenticação. Para " +"que \n" +"\t\tos nodes possam baixar as imagens em seu nome, eles devem ter as credenciais. Você pode " +"prover esta informação\n" +"\t\tcriando um dockercfg secret e anexando-o à sua conta de serviço." + +#: pkg/kubectl/cmd/create_pdb.go:32 +msgid "" +"\n" +"\t\tCreate a pod disruption budget with the specified name, selector, and desired minimum " +"available pods" +msgstr "" +"\n" +"\t\tCria um pod disruption budget com o nome especificado, seletor, e o número mínimo de pode " +"disponíveis" + +#: pkg/kubectl/cmd/create.go:42 +msgid "" +"\n" +"\t\tCreate a resource by filename or stdin.\n" +"\n" +"\t\tJSON and YAML formats are accepted." +msgstr "" +"\n" +"\t\tCria um recurso por nome de arquivo ou stdin.\n" +"\n" +"\t\tOs formatos JSON e YAML são aceitos." + +#: pkg/kubectl/cmd/create_quota.go:32 +msgid "" +"\n" +"\t\tCreate a resourcequota with the specified name, hard limits and optional scopes" +msgstr "" +"\n" +"\t\tCria um resourcequota com o nome especificado, limits rigídos e escopo opcional" + +#: pkg/kubectl/cmd/create_role.go:38 +msgid "" +"\n" +"\t\tCreate a role with single rule." +msgstr "" +"\n" +"\t\tCria uma role com uma única regra." + +#: pkg/kubectl/cmd/create_secret.go:47 +msgid "" +"\n" +"\t\tCreate a secret based on a file, directory, or specified literal value.\n" +"\n" +"\t\tA single secret may package one or more key/value pairs.\n" +"\n" +"\t\tWhen creating a secret based on a file, the key will default to the basename of the file, " +"and the value will\n" +"\t\tdefault to the file content. If the basename is an invalid key, you may specify an " +"alternate key.\n" +"\n" +"\t\tWhen creating a secret based on a directory, each file whose basename is a valid key in the " +"directory will be\n" +"\t\tpackaged into the secret. Any directory entries except regular files are ignored (e.g. " +"subdirectories,\n" +"\t\tsymlinks, devices, pipes, etc)." +msgstr "" +"\n" +"\t\tCria um secret com base em um arquivo, diretório, ou um valor literal especificado.\n" +"\n" +"\t\tUm secret único pode conter um ou mais pares de chave/valor.\n" +"\n" +"\t\tQuando criar um secret com base em um arquivo, a chave será por padrão o nome do arquivo, e " +"o valor será\n" +"\t\tpor padrão o conteúdo do arquivo. Se o nome do arquivo for uma chave inválida, você deve " +"especificar uma chave alternativa.\n" +"\n" +"\t\tQuando criar um secret com base em um diretório, cada arquivo cujo o nome é uma chave válida " +"no diretório será\n" +"\t\tcolocada no configmap. Qualquer entrada de diretório, exceto as com arquivos válidos serão " +"ignorados (por exemplo: sub-diretórios,\n" +"\t\tsymlinks, devices, pipes, etc)." + +#: pkg/kubectl/cmd/create_serviceaccount.go:32 +msgid "" +"\n" +"\t\tCreate a service account with the specified name." +msgstr "" +"\n" +"\t\tCria uma conta de serviço com um nome especificado." + +#: pkg/kubectl/cmd/run.go:52 +msgid "" +"\n" +"\t\tCreate and run a particular image, possibly replicated.\n" +"\n" +"\t\tCreates a deployment or job to manage the created container(s)." +msgstr "" +"\n" +"\t\tCria e executa uma imagem específica, possivelmente replicada.\n" +"\n" +"\t\tCria um deployment ou job para gerenciar o(s) container(s) criado(s)." + +#: pkg/kubectl/cmd/autoscale.go:34 +msgid "" +"\n" +"\t\tCreates an autoscaler that automatically chooses and sets the number of pods that run in a " +"kubernetes cluster.\n" +"\n" +"\t\tLooks up a Deployment, ReplicaSet, or ReplicationController by name and creates an " +"autoscaler that uses the given resource as a reference.\n" +"\t\tAn autoscaler can automatically increase or decrease number of pods deployed within the " +"system as needed." +msgstr "" +"\n" +"\t\tCria um autoscaler que automaticamente escolhe e configura quantos pods irão executar em um " +"cluster kubernetes.\n" +"\n" +"\t\tProcura por um Deployment, ReplicaSet, ou ReplicationController por nome e cria um " +"autoscaler que utiliza o recurso fornecido como referência.\n" +"\t\tUm autoscaler pode automaticamente aumentar ou reduzir o número de pods quando necessário." + +#: pkg/kubectl/cmd/delete.go:40 +msgid "" +"\n" +"\t\tDelete resources by filenames, stdin, resources and names, or by resources and label " +"selector.\n" +"\n" +"\t\tJSON and YAML formats are accepted. Only one type of the arguments may be specified: " +"filenames,\n" +"\t\tresources and names, or resources and label selector.\n" +"\n" +"\t\tSome resources, such as pods, support graceful deletion. These resources define a default " +"period\n" +"\t\tbefore they are forcibly terminated (the grace period) but you may override that value with\n" +"\t\tthe --grace-period flag, or pass --now to set a grace-period of 1. Because these resources " +"often\n" +"\t\trepresent entities in the cluster, deletion may not be acknowledged immediately. If the " +"node\n" +"\t\thosting a pod is down or cannot reach the API server, termination may take significantly " +"longer\n" +"\t\tthan the grace period. To force delete a resource,\tyou must pass a grace\tperiod of 0 and " +"specify\n" +"\t\tthe --force flag.\n" +"\n" +"\t\tIMPORTANT: Force deleting pods does not wait for confirmation that the pod's processes have " +"been\n" +"\t\tterminated, which can leave those processes running until the node detects the deletion and\n" +"\t\tcompletes graceful deletion. If your processes use shared storage or talk to a remote API " +"and\n" +"\t\tdepend on the name of the pod to identify themselves, force deleting those pods may result " +"in\n" +"\t\tmultiple processes running on different machines using the same identification which may " +"lead\n" +"\t\tto data corruption or inconsistency. Only force delete pods when you are sure the pod is\n" +"\t\tterminated, or if your application can tolerate multiple copies of the same pod running at " +"once.\n" +"\t\tAlso, if you force delete pods the scheduler may place new pods on those nodes before the " +"node\n" +"\t\thas released those resources and causing those pods to be evicted immediately.\n" +"\n" +"\t\tNote that the delete command does NOT do resource version checks, so if someone\n" +"\t\tsubmits an update to a resource right when you submit a delete, their update\n" +"\t\twill be lost along with the rest of the resource." +msgstr "" +"\n" +"\t\tDelete resources by filenames, stdin, resources and names, or by resources and label " +"selector.\n" +"\n" +"\t\tJSON and YAML formats are accepted. Only one type of the arguments may be specified: " +"filenames,\n" +"\t\tresources and names, or resources and label selector.\n" +"\n" +"\t\tSome resources, such as pods, support graceful deletion. These resources define a default " +"period\n" +"\t\tbefore they are forcibly terminated (the grace period) but you may override that value with\n" +"\t\tthe —grace-period flag, or pass —now to set a grace-period of 1. Because these resources " +"often\n" +"\t\trepresent entities in the cluster, deletion may not be acknowledged immediately. If the " +"node\n" +"\t\thosting a pod is down or cannot reach the API server, termination may take significantly " +"longer\n" +"\t\tthan the grace period. To force delete a resource,\tyou must pass a grace\tperiod of 0 and " +"specify\n" +"\t\tthe —force flag.\n" +"\n" +"\t\tIMPORTANT: Force deleting pods does not wait for confirmation that the pod's processes have " +"been\n" +"\t\tterminated, which can leave those processes running until the node detects the deletion and\n" +"\t\tcompletes graceful deletion. If your processes use shared storage or talk to a remote API " +"and\n" +"\t\tdepend on the name of the pod to identify themselves, force deleting those pods may result " +"in\n" +"\t\tmultiple processes running on different machines using the same identification which may " +"lead\n" +"\t\tto data corruption or inconsistency. Only force delete pods when you are sure the pod is\n" +"\t\tterminated, or if your application can tolerate multiple copies of the same pod running at " +"once.\n" +"\t\tAlso, if you force delete pods the scheduler may place new pods on those nodes before the " +"node\n" +"\t\thas released those resources and causing those pods to be evicted immediately.\n" +"\n" +"\t\tNote that the delete command does NOT do resource version checks, so if someone\n" +"\t\tsubmits an update to a resource right when you submit a delete, their update\n" +"\t\twill be lost along with the rest of the resource." + +#: pkg/kubectl/cmd/stop.go:31 +msgid "" +"\n" +"\t\tDeprecated: Gracefully shut down a resource by name or filename.\n" +"\n" +"\t\tThe stop command is deprecated, all its functionalities are covered by delete command.\n" +"\t\tSee 'kubectl delete --help' for more details.\n" +"\n" +"\t\tAttempts to shut down and delete a resource that supports graceful termination.\n" +"\t\tIf the resource is scalable it will be scaled to 0 before deletion." +msgstr "" +"\n" +"\t\tDeprecated: Gracefully shut down a resource by name or filename.\n" +"\n" +"\t\tThe stop command is deprecated, all its functionalities are covered by delete command.\n" +"\t\tSee 'kubectl delete —help' for more details.\n" +"\n" +"\t\tAttempts to shut down and delete a resource that supports graceful termination.\n" +"\t\tIf the resource is scalable it will be scaled to 0 before deletion." + +#: pkg/kubectl/cmd/top_node.go:60 +msgid "" +"\n" +"\t\tDisplay Resource (CPU/Memory/Storage) usage of nodes.\n" +"\n" +"\t\tThe top-node command allows you to see the resource consumption of nodes." +msgstr "" +"\n" +"\t\tMostra os Recursos (CPU/Memória/Armazenamento) utilizados nos nodes.\n" +"\n" +"\t\tO comando top-node permite que você veja o consumo de recursos dos nodes." + +#: pkg/kubectl/cmd/top_pod.go:53 +msgid "" +"\n" +"\t\tDisplay Resource (CPU/Memory/Storage) usage of pods.\n" +"\n" +"\t\tThe 'top pod' command allows you to see the resource consumption of pods.\n" +"\n" +"\t\tDue to the metrics pipeline delay, they may be unavailable for a few minutes\n" +"\t\tsince pod creation." +msgstr "" +"\n" +"\t\tMostra a utilização de recursos dos pods (CPU/Memória/Armazenamento).\n" +"\n" +"\t\tO comando 'top pod' deixa você ver a utilização dos recusrsos dos pods.\n" +"\n" +"\t\tDevido ao atraso da pipeline de métricas, o resultado pode estar indisponível por alguns " +"minutos\n" +"\t\tdesde a criação do pod." + +#: pkg/kubectl/cmd/top.go:33 +msgid "" +"\n" +"\t\tDisplay Resource (CPU/Memory/Storage) usage.\n" +"\n" +"\t\tThe top command allows you to see the resource consumption for nodes or pods.\n" +"\n" +"\t\tThis command requires Heapster to be correctly configured and working on the server. " +msgstr "" +"\n" +"\t\tMostra a utilização de recursos (CPU/Memória/Armazenamento).\n" +"\n" +"\t\tO comando top deixa você ver a utilização de recursos de nodes e pods.\n" +"\n" +"\t\tEste comando necessita que o Heapster esteja corretamente configurado e rodando no servidor. " + +#: pkg/kubectl/cmd/drain.go:140 +msgid "" +"\n" +"\t\tDrain node in preparation for maintenance.\n" +"\n" +"\t\tThe given node will be marked unschedulable to prevent new pods from arriving.\n" +"\t\t'drain' evicts the pods if the APIServer supports eviction\n" +"\t\t(http://kubernetes.io/docs/admin/disruptions/). Otherwise, it will use normal DELETE\n" +"\t\tto delete the pods.\n" +"\t\tThe 'drain' evicts or deletes all pods except mirror pods (which cannot be deleted through\n" +"\t\tthe API server). If there are DaemonSet-managed pods, drain will not proceed\n" +"\t\twithout --ignore-daemonsets, and regardless it will not delete any\n" +"\t\tDaemonSet-managed pods, because those pods would be immediately replaced by the\n" +"\t\tDaemonSet controller, which ignores unschedulable markings. If there are any\n" +"\t\tpods that are neither mirror pods nor managed by ReplicationController,\n" +"\t\tReplicaSet, DaemonSet, StatefulSet or Job, then drain will not delete any pods unless you\n" +"\t\tuse --force. --force will also allow deletion to proceed if the managing resource of one\n" +"\t\tor more pods is missing.\n" +"\n" +"\t\t'drain' waits for graceful termination. You should not operate on the machine until\n" +"\t\tthe command completes.\n" +"\n" +"\t\tWhen you are ready to put the node back into service, use kubectl uncordon, which\n" +"\t\twill make the node schedulable again.\n" +"\n" +"\t\t![Workflow](http://kubernetes.io/images/docs/kubectl_drain.svg)" +msgstr "" +"\n" +"\t\tDrain node in preparation for maintenance.\n" +"\n" +"\t\tThe given node will be marked unschedulable to prevent new pods from arriving.\n" +"\t\t'drain' evicts the pods if the APIServer supports eviction\n" +"\t\t(http://kubernetes.io/docs/admin/disruptions/). Otherwise, it will use normal DELETE\n" +"\t\tto delete the pods.\n" +"\t\tThe 'drain' evicts or deletes all pods except mirror pods (which cannot be deleted through\n" +"\t\tthe API server). If there are DaemonSet-managed pods, drain will not proceed\n" +"\t\twithout —ignore-daemonsets, and regardless it will not delete any\n" +"\t\tDaemonSet-managed pods, because those pods would be immediately replaced by the\n" +"\t\tDaemonSet controller, which ignores unschedulable markings. If there are any\n" +"\t\tpods that are neither mirror pods nor managed by ReplicationController,\n" +"\t\tReplicaSet, DaemonSet, StatefulSet or Job, then drain will not delete any pods unless you\n" +"\t\tuse —force. —force will also allow deletion to proceed if the managing resource of one\n" +"\t\tor more pods is missing.\n" +"\n" +"\t\t'drain' waits for graceful termination. You should not operate on the machine until\n" +"\t\tthe command completes.\n" +"\n" +"\t\tWhen you are ready to put the node back into service, use kubectl uncordon, which\n" +"\t\twill make the node schedulable again.\n" +"\n" +"\t\t![Workflow](http://kubernetes.io/images/docs/kubectl_drain.svg)" + +#: pkg/kubectl/cmd/edit.go:56 +msgid "" +"\n" +"\t\tEdit a resource from the default editor.\n" +"\n" +"\t\tThe edit command allows you to directly edit any API resource you can retrieve via the\n" +"\t\tcommand line tools. It will open the editor defined by your KUBE_EDITOR, or EDITOR\n" +"\t\tenvironment variables, or fall back to 'vi' for Linux or 'notepad' for Windows.\n" +"\t\tYou can edit multiple objects, although changes are applied one at a time. The command\n" +"\t\taccepts filenames as well as command line arguments, although the files you point to must\n" +"\t\tbe previously saved versions of resources.\n" +"\n" +"\t\tEditing is done with the API version used to fetch the resource.\n" +"\t\tTo edit using a specific API version, fully-qualify the resource, version, and group.\n" +"\n" +"\t\tThe default format is YAML. To edit in JSON, specify \"-o json\".\n" +"\n" +"\t\tThe flag --windows-line-endings can be used to force Windows line endings,\n" +"\t\totherwise the default for your operating system will be used.\n" +"\n" +"\t\tIn the event an error occurs while updating, a temporary file will be created on disk\n" +"\t\tthat contains your unapplied changes. The most common error when updating a resource\n" +"\t\tis another editor changing the resource on the server. When this occurs, you will have\n" +"\t\tto apply your changes to the newer version of the resource, or update your temporary\n" +"\t\tsaved copy to include the latest resource version." +msgstr "" +"\n" +"\t\tEdit a resource from the default editor.\n" +"\n" +"\t\tThe edit command allows you to directly edit any API resource you can retrieve via the\n" +"\t\tcommand line tools. It will open the editor defined by your KUBE_EDITOR, or EDITOR\n" +"\t\tenvironment variables, or fall back to 'vi' for Linux or 'notepad' for Windows.\n" +"\t\tYou can edit multiple objects, although changes are applied one at a time. The command\n" +"\t\taccepts filenames as well as command line arguments, although the files you point to must\n" +"\t\tbe previously saved versions of resources.\n" +"\n" +"\t\tEditing is done with the API version used to fetch the resource.\n" +"\t\tTo edit using a specific API version, fully-qualify the resource, version, and group.\n" +"\n" +"\t\tThe default format is YAML. To edit in JSON, specify \"-o json\".\n" +"\n" +"\t\tThe flag —windows-line-endings can be used to force Windows line endings,\n" +"\t\totherwise the default for your operating system will be used.\n" +"\n" +"\t\tIn the event an error occurs while updating, a temporary file will be created on disk\n" +"\t\tthat contains your unapplied changes. The most common error when updating a resource\n" +"\t\tis another editor changing the resource on the server. When this occurs, you will have\n" +"\t\tto apply your changes to the newer version of the resource, or update your temporary\n" +"\t\tsaved copy to include the latest resource version." + +#: pkg/kubectl/cmd/drain.go:115 +msgid "" +"\n" +"\t\tMark node as schedulable." +msgstr "" +"\n" +"\t\tRemove a restrição de execução de workloads no node." + +#: pkg/kubectl/cmd/drain.go:90 +msgid "" +"\n" +"\t\tMark node as unschedulable." +msgstr "" +"\n" +"\t\tAplica a restrição de execução de workloads no node." + +#: pkg/kubectl/cmd/completion.go:47 +msgid "" +"\n" +"\t\tOutput shell completion code for the specified shell (bash or zsh).\n" +"\t\tThe shell code must be evaluated to provide interactive\n" +"\t\tcompletion of kubectl commands. This can be done by sourcing it from\n" +"\t\tthe .bash_profile.\n" +"\n" +"\t\tNote: this requires the bash-completion framework, which is not installed\n" +"\t\tby default on Mac. This can be installed by using homebrew:\n" +"\n" +"\t\t $ brew install bash-completion\n" +"\n" +"\t\tOnce installed, bash_completion must be evaluated. This can be done by adding the\n" +"\t\tfollowing line to the .bash_profile\n" +"\n" +"\t\t $ source $(brew --prefix)/etc/bash_completion\n" +"\n" +"\t\tNote for zsh users: [1] zsh completions are only supported in versions of zsh >= 5.2" +msgstr "" +"\n" +"\t\tOutput shell completion code for the specified shell (bash or zsh).\n" +"\t\tThe shell code must be evaluated to provide interactive\n" +"\t\tcompletion of kubectl commands. This can be done by sourcing it from\n" +"\t\tthe .bash_profile.\n" +"\n" +"\t\tNote: this requires the bash-completion framework, which is not installed\n" +"\t\tby default on Mac. This can be installed by using homebrew:\n" +"\n" +"\t\t $ brew install bash-completion\n" +"\n" +"\t\tOnce installed, bash_completion must be evaluated. This can be done by adding the\n" +"\t\tfollowing line to the .bash_profile\n" +"\n" +"\t\t $ source $(brew —prefix)/etc/bash_completion\n" +"\n" +"\t\tNote for zsh users: [1] zsh completions are only supported in versions of zsh >= 5.2" + +#: pkg/kubectl/cmd/rollingupdate.go:45 +msgid "" +"\n" +"\t\tPerform a rolling update of the given ReplicationController.\n" +"\n" +"\t\tReplaces the specified replication controller with a new replication controller by updating " +"one pod at a time to use the\n" +"\t\tnew PodTemplate. The new-controller.json must specify the same namespace as the\n" +"\t\texisting replication controller and overwrite at least one (common) label in its " +"replicaSelector.\n" +"\n" +"\t\t![Workflow](http://kubernetes.io/images/docs/kubectl_rollingupdate.svg)" +msgstr "" +"\n" +"\t\tAplica uma atualização contínua em um ReplicationController.\n" +"\n" +"\t\tTroca o replication controller especificado por um novo replication controller atualizando " +"um pod por vez para utilizar o\n" +"\t\tnovo PodTemplate. O new-controller.json deve ser especificado no mesmo namespace que o\n" +"\t\treplication controller existente e sobrescrever pelo menos uma label comum no seu " +"replicaSelector.\n" +"\n" +"\t\t![Workflow](http://kubernetes.io/images/docs/kubectl_rollingupdate.svg)" + +#: pkg/kubectl/cmd/replace.go:40 +msgid "" +"\n" +"\t\tReplace a resource by filename or stdin.\n" +"\n" +"\t\tJSON and YAML formats are accepted. If replacing an existing resource, the\n" +"\t\tcomplete resource spec must be provided. This can be obtained by\n" +"\n" +"\t\t $ kubectl get TYPE NAME -o yaml\n" +"\n" +"\t\tPlease refer to the models in https://htmlpreview.github.io/?https://github.com/kubernetes/" +"kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html to find if a field is mutable." +msgstr "" +"\n" +"\t\tSubstitui um recurso pelo especificado em um arquivo ou via stdin.\n" +"\n" +"\t\tOs formatos JSON and YAML são aceitos. Quando substituindo recursos existentes,\n" +"\t\a especificação completa do recurso deve ser fornecida. Isto pode ser obtido com\n" +"\n" +"\t\t $ kubectl get TYPE NAME -o yaml\n" +"\n" +"\t\tConsulte os modelos em https://htmlpreview.github.io/?https://github.com/kubernetes/" +"kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html para descobrir se um campo é mutável." + +#: pkg/kubectl/cmd/scale.go:34 +msgid "" +"\n" +"\t\tSet a new size for a Deployment, ReplicaSet, Replication Controller, or Job.\n" +"\n" +"\t\tScale also allows users to specify one or more preconditions for the scale action.\n" +"\n" +"\t\tIf --current-replicas or --resource-version is specified, it is validated before the\n" +"\t\tscale is attempted, and it is guaranteed that the precondition holds true when the\n" +"\t\tscale is sent to the server." +msgstr "" +"\n" +"\t\tDefine um novo tamanho para um Deployment, ReplicaSet, Replication Controller, ou Job.\n" +"\n" +"\t\tScale deixa os usuários especificar uma ou mais pre-condições para a ação de scale.\n" +"\n" +"\t\tSe --current-replicas ou --resource-version forem especificados, será validado antes\n" +"\t\tda tentativa de scale, e garante que a pre-condição é verdadeira quando\n" +"\t\to scale é enviado para o servidor." + +#: pkg/kubectl/cmd/apply_set_last_applied.go:62 +msgid "" +"\n" +"\t\tSet the latest last-applied-configuration annotations by setting it to match the contents of " +"a file.\n" +"\t\tThis results in the last-applied-configuration being updated as though 'kubectl apply -f " +"' was run,\n" +"\t\twithout updating any other parts of the object." +msgstr "" +"\n" +"\t\tDefine a annotation last-applied-configuration configurando para ser igual ao conteúdo do " +"arquivo.\n" +"\t\tIsto resulta no last-applied-configuration ser atualizado quando o 'kubectl apply -f ' " +"executa,\n" +"\t\tnão atualizando as outras partes do objeto." + +#: pkg/kubectl/cmd/proxy.go:36 +msgid "" +"\n" +"\t\tTo proxy all of the kubernetes api and nothing else, use:\n" +"\n" +"\t\t $ kubectl proxy --api-prefix=/\n" +"\n" +"\t\tTo proxy only part of the kubernetes api and also some static files:\n" +"\n" +"\t\t $ kubectl proxy --www=/my/files --www-prefix=/static/ --api-prefix=/api/\n" +"\n" +"\t\tThe above lets you 'curl localhost:8001/api/v1/pods'.\n" +"\n" +"\t\tTo proxy the entire kubernetes api at a different root, use:\n" +"\n" +"\t\t $ kubectl proxy --api-prefix=/custom/\n" +"\n" +"\t\tThe above lets you 'curl localhost:8001/custom/api/v1/pods'" +msgstr "" +"\n" +"\t\tPara fazer o proxy the todas as apis do kubernetes, utilize:\n" +"\n" +"\t\t $ kubectl proxy —api-prefix=/\n" +"\n" +"\t\tPara fazer o proxy de parte da api do kubernetes e alguns arquivos estáticos:\n" +"\n" +"\t\t $ kubectl proxy —www=/my/files —www-prefix=/static/ —api-prefix=/api/\n" +"\n" +"\t\tCom os comandos acima você pode fazer 'curl localhost:8001/api/v1/pods'.\n" +"\n" +"\t\tPara fazer o proxy the todas as apis do kubernetes em um caminho diferente, utilize:\n" +"\n" +"\t\t $ kubectl proxy —api-prefix=/custom/\n" +"\n" +"\t\tCom o comando acima você pode fazer 'curl localhost:8001/custom/api/v1/pods'" + +#: pkg/kubectl/cmd/patch.go:59 +msgid "" +"\n" +"\t\tUpdate field(s) of a resource using strategic merge patch\n" +"\n" +"\t\tJSON and YAML formats are accepted.\n" +"\n" +"\t\tPlease refer to the models in https://htmlpreview.github.io/?https://github.com/kubernetes/" +"kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html to find if a field is mutable." +msgstr "" +"\n" +"\t\tAtualiza o(s) campo(s) de um recurso usando strategic merge patch\n" +"\n" +"\t\tFormatos JSON e YAML são aceitos.\n" +"\n" +"\t\tConsulte os modelos em https://htmlpreview.github.io/?https://github.com/kubernetes/" +"kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html para descobrir se um campo é mutável." + +#: pkg/kubectl/cmd/label.go:70 +#, c-format +msgid "" +"\n" +"\t\tUpdate the labels on a resource.\n" +"\n" +"\t\t* A label must begin with a letter or number, and may contain letters, numbers, hyphens, " +"dots, and underscores, up to %[1]d characters.\n" +"\t\t* If --overwrite is true, then existing labels can be overwritten, otherwise attempting to " +"overwrite a label will result in an error.\n" +"\t\t* If --resource-version is specified, then updates will use this resource version, otherwise " +"the existing resource-version will be used." +msgstr "" +"\n" +"\t\tAtualiza labels em um recurso.\n" +"\n" +"\t\t* Um label deve começar com uma letra ou número, e pode conter letra, números, hífens, " +"pontos e sublinhados, com no máximo %[1]d caracteres.\n" +"\t\t* Se --overwrite for verdadeiro, então labels podem ser sobreescritos, caso contrário a " +"sobreescrita irá falhar.\n" +"\t\t* Se --resource-version for especificado, então as atualizações usarão esta versão do " +"recurso, caso contrário, a versão do recurso existente será usada." + +#: pkg/kubectl/cmd/taint.go:58 +#, c-format +msgid "" +"\n" +"\t\tUpdate the taints on one or more nodes.\n" +"\n" +"\t\t* A taint consists of a key, value, and effect. As an argument here, it is expressed as " +"key=value:effect.\n" +"\t\t* The key must begin with a letter or number, and may contain letters, numbers, hyphens, " +"dots, and underscores, up to %[1]d characters.\n" +"\t\t* The value must begin with a letter or number, and may contain letters, numbers, hyphens, " +"dots, and underscores, up to %[2]d characters.\n" +"\t\t* The effect must be NoSchedule, PreferNoSchedule or NoExecute.\n" +"\t\t* Currently taint can only apply to node." +msgstr "" +"\n" +"\t\tAtualiza os taints em um ou mais nodes.\n" +"\n" +"\t\t* Um taint consiste em uma chave, valor e efeito. Como arqgumento, é expressado como " +"chave=valor:efeito.\n" +"\t\t* Uma chave deve começar com uma letra ou número, e pode conter letras, números, hífens, " +"pontos e sublinhados, com no máximo %[1]d caractéres.\n" +"\t\t* Um valor deve começar com uma letra ou número, e pode conter letras, números, hífens, " +"pontos e sublinhados, com no máximo %[2]d caractéres.\n" +"\t\t* O efeito deve ser NoSchedule, PreferNoSchedule ou NoExecute.\n" +"\t\t* Atualmente taint pode ser aplicado apenas para nodes." + +#: pkg/kubectl/cmd/apply_view_last_applied.go:46 +msgid "" +"\n" +"\t\tView the latest last-applied-configuration annotations by type/name or file.\n" +"\n" +"\t\tThe default output will be printed to stdout in YAML format. One can use -o option\n" +"\t\tto change output format." +msgstr "" +"\n" +"\t\tView the latest last-applied-configuration annotations by type/name or file.\n" +"\n" +"\t\tThe default output will be printed to stdout in YAML format. One can use -o option\n" +"\t\tto change output format." + +#: pkg/kubectl/cmd/cp.go:37 +msgid "" +"\n" +"\t # !!!Important Note!!!\n" +"\t # Requires that the 'tar' binary is present in your container\n" +"\t # image. If 'tar' is not present, 'kubectl cp' will fail.\n" +"\n" +"\t # Copy /tmp/foo_dir local directory to /tmp/bar_dir in a remote pod in the default " +"namespace\n" +"\t\tkubectl cp /tmp/foo_dir :/tmp/bar_dir\n" +"\n" +" # Copy /tmp/foo local file to /tmp/bar in a remote pod in a specific container\n" +"\t\tkubectl cp /tmp/foo :/tmp/bar -c \n" +"\n" +"\t\t# Copy /tmp/foo local file to /tmp/bar in a remote pod in namespace \n" +"\t\tkubectl cp /tmp/foo /:/tmp/bar\n" +"\n" +"\t\t# Copy /tmp/foo from a remote pod to /tmp/bar locally\n" +"\t\tkubectl cp /:/tmp/foo /tmp/bar" +msgstr "" +"\n" +"\t # !!!Nota Importante!!!\n" +"\t # Necessita que o binário 'tar' esteja presente na imagem do\n" +"\t # container. Se 'tar' não estiver presente, o 'kubectl cp' irá falhar.\n" +"\n" +"\t # Copia o diretório local /tmp/foo_dir para /tmp/bar_dir no pod remoto no namespace " +"default\n" +"\t\tkubectl cp /tmp/foo_dir :/tmp/bar_dir\n" +"\n" +" # Copia o arquivo local /tmp/foo para /tmp/bar no pod remoto no container específico\n" +"\t\tkubectl cp /tmp/foo :/tmp/bar -c \n" +"\n" +"\t\t# Copia o arquivo local /tmp/foo para /tmp/bar no pod remoto no namespace \n" +"\t\tkubectl cp /tmp/foo /:/tmp/bar\n" +"\n" +"\t\t# Copia /tmp/foo do pod remoto para /tmp/bar localmente\n" +"\t\tkubectl cp /:/tmp/foo /tmp/bar" + +#: pkg/kubectl/cmd/create_secret.go:205 +msgid "" +"\n" +"\t # Create a new TLS secret named tls-secret with the given key pair:\n" +"\t kubectl create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key" +msgstr "" +"\n" +"\t # Cria um novo segredo TLS chamado tls-secret com o par the chaves fornecido:\n" +"\t kubectl create secret tls tls-secret —cert=path/to/tls.cert —key=path/to/tls.key" + +#: pkg/kubectl/cmd/create_namespace.go:35 +msgid "" +"\n" +"\t # Create a new namespace named my-namespace\n" +"\t kubectl create namespace my-namespace" +msgstr "" +"\n" +"\t # Cria um novo namespace chamado my-namespace\n" +"\t kubectl create namespace my-namespace" + +#: pkg/kubectl/cmd/create_secret.go:59 +msgid "" +"\n" +"\t # Create a new secret named my-secret with keys for each file in folder bar\n" +"\t kubectl create secret generic my-secret --from-file=path/to/bar\n" +"\n" +"\t # Create a new secret named my-secret with specified keys instead of names on disk\n" +"\t kubectl create secret generic my-secret --from-file=ssh-privatekey=~/.ssh/id_rsa --from-" +"file=ssh-publickey=~/.ssh/id_rsa.pub\n" +"\n" +"\t # Create a new secret named my-secret with key1=supersecret and key2=topsecret\n" +"\t kubectl create secret generic my-secret --from-literal=key1=supersecret --from-" +"literal=key2=topsecret" +msgstr "" +"\n" +"\t # Cria um novo segredo chamado my-secret com as chaves para cada arquivo no diretório bar\n" +"\t kubectl create secret generic my-secret --from-file=path/to/bar\n" +"\n" +"\t # Cria um novo segredo chamado my-secret com chaves especificadas em vez dos nomes dos " +"arquivos\n" +"\t kubectl create secret generic my-secret --from-file=ssh-privatekey=~/.ssh/id_rsa --from-" +"file=ssh-publickey=~/.ssh/id_rsa.pub\n" +"\n" +"\t # Cria um novo segredo chamado my-secret com key1=supersecret e key2=topsecret\n" +"\t kubectl create secret generic my-secret --from-literal=key1=supersecret --from-" +"literal=key2=topsecret" + +#: pkg/kubectl/cmd/create_serviceaccount.go:35 +msgid "" +"\n" +"\t # Create a new service account named my-service-account\n" +"\t kubectl create serviceaccount my-service-account" +msgstr "" +"\n" +"\t # Cria um novo service account chamado my-service-account\n" +"\t kubectl create serviceaccount my-service-account" + +#: pkg/kubectl/cmd/create_service.go:232 +msgid "" +"\n" +"\t# Create a new ExternalName service named my-ns \n" +"\tkubectl create service externalname my-ns --external-name bar.com" +msgstr "" +"\n" +"\t# Cria um novo serviço do tipo ExternalName chamado my-ns \n" +"\tkubectl create service externalname my-ns —external-name bar.com" + +#: pkg/kubectl/cmd/create_service.go:225 +msgid "" +"\n" +"\tCreate an ExternalName service with the specified name.\n" +"\n" +"\tExternalName service references to an external DNS address instead of\n" +"\tonly pods, which will allow application authors to reference services\n" +"\tthat exist off platform, on other clusters, or locally." +msgstr "" +"\n" +"\tCria um serviço do tipo ExternalName com o nome especificado.\n" +"\n" +"\tServiço ExternalName referencia um endereço externo de DNS ao invés de\n" +"\tapenas pods, o que permite aos desenvolvedores de aplicações referenciar serviços\n" +"\tque existem fora da plataforma, em outros clusters ou localmente." + +#: pkg/kubectl/cmd/help.go:30 +msgid "" +"\n" +"\tHelp provides help for any command in the application.\n" +"\tSimply type kubectl help [path to command] for full details." +msgstr "" +"\n" +"\tHelp provê ajuda para qualquer comando na aplicação.\n" +"\tDigite simplesmente kubectl help [caminho do comando] para detalhes completos." + +#: pkg/kubectl/cmd/create_service.go:173 +msgid "" +"\n" +" # Create a new LoadBalancer service named my-lbs\n" +" kubectl create service loadbalancer my-lbs --tcp=5678:8080" +msgstr "" +"\n" +" # Cria um novo serviço do tipo LoadBalancer chamado my-lbs\n" +" kubectl create service loadbalancer my-lbs —tcp=5678:8080" + +#: pkg/kubectl/cmd/create_service.go:53 +msgid "" +"\n" +" # Create a new clusterIP service named my-cs\n" +" kubectl create service clusterip my-cs --tcp=5678:8080\n" +"\n" +" # Create a new clusterIP service named my-cs (in headless mode)\n" +" kubectl create service clusterip my-cs --clusterip=\"None\"" +msgstr "" +"\n" +" # Cria um novo serviço clusterIP chamado my-cs\n" +" kubectl create service clusterip my-cs --tcp=5678:8080\n" +"\n" +" # Cria um novo serviço clusterIP chamado my-cs (em modo headless)\n" +" kubectl create service clusterip my-cs --clusterip=\"None\"" + +#: pkg/kubectl/cmd/create_deployment.go:36 +msgid "" +"\n" +" # Create a new deployment named my-dep that runs the busybox image.\n" +" kubectl create deployment my-dep --image=busybox" +msgstr "" +"\n" +" # Cria um novo deployment chamado my-dep que executa uma imagem busybox.\n" +" kubectl create deployment my-dep —image=busybox" + +#: pkg/kubectl/cmd/create_service.go:116 +msgid "" +"\n" +" # Create a new nodeport service named my-ns\n" +" kubectl create service nodeport my-ns --tcp=5678:8080" +msgstr "" +"\n" +" # Cria um novo serviço nodeport chamado my-ns\n" +" kubectl create service nodeport my-ns —tcp=5678:8080" + +#: pkg/kubectl/cmd/clusterinfo_dump.go:62 +msgid "" +"\n" +" # Dump current cluster state to stdout\n" +" kubectl cluster-info dump\n" +"\n" +" # Dump current cluster state to /path/to/cluster-state\n" +" kubectl cluster-info dump --output-directory=/path/to/cluster-state\n" +"\n" +" # Dump all namespaces to stdout\n" +" kubectl cluster-info dump --all-namespaces\n" +"\n" +" # Dump a set of namespaces to /path/to/cluster-state\n" +" kubectl cluster-info dump --namespaces default,kube-system --output-directory=/path/to/" +"cluster-state" +msgstr "" +"\n" +" # Coleta o estado corrente do cluster e exibe no stdout\n" +" kubectl cluster-info dump\n" +"\n" +" # Coleta o estado corrente do custer para /path/to/cluster-state\n" +" kubectl cluster-info dump --output-directory=/path/to/cluster-state\n" +"\n" +" # Coleta informação de todos os namespaces para stdout\n" +" kubectl cluster-info dump --all-namespaces\n" +"\n" +" # Coleta o conjunto especificado de namespaces para /path/to/cluster-state\n" +" kubectl cluster-info dump --namespaces default,kube-system --output-directory=/path/to/" +"cluster-state" + +#: pkg/kubectl/cmd/annotate.go:78 +msgid "" +"\n" +" # Update pod 'foo' with the annotation 'description' and the value 'my frontend'.\n" +" # If the same annotation is set multiple times, only the last value will be applied\n" +" kubectl annotate pods foo description='my frontend'\n" +"\n" +" # Update a pod identified by type and name in \"pod.json\"\n" +" kubectl annotate -f pod.json description='my frontend'\n" +"\n" +" # Update pod 'foo' with the annotation 'description' and the value 'my frontend running " +"nginx', overwriting any existing value.\n" +" kubectl annotate --overwrite pods foo description='my frontend running nginx'\n" +"\n" +" # Update all pods in the namespace\n" +" kubectl annotate pods --all description='my frontend running nginx'\n" +"\n" +" # Update pod 'foo' only if the resource is unchanged from version 1.\n" +" kubectl annotate pods foo description='my frontend running nginx' --resource-version=1\n" +"\n" +" # Update pod 'foo' by removing an annotation named 'description' if it exists.\n" +" # Does not require the --overwrite flag.\n" +" kubectl annotate pods foo description-" +msgstr "" +"\n" +" # Atualiza o pod 'foo' com a annotation 'description' e o valor 'my frontend'.\n" +" # Se a mesma annotation é configurada várias vezes, apenas o último valor será utilizado\n" +" kubectl annotate pods foo description='my frontend'\n" +"\n" +" # Atualiza o pod identificado pelo tipo e nome definido no \"pod.json\"\n" +" kubectl annotate -f pod.json description='my frontend'\n" +"\n" +" # Atualiza o pod 'foo' com a annotation 'description' e o valor 'my frontend running nginx', " +"sobreescrevendo qualquer valor existente.\n" +" kubectl annotate --overwrite pods foo description='my frontend running nginx'\n" +"\n" +" # Atualiza todos os pods no namespace\n" +" kubectl annotate pods --all description='my frontend running nginx'\n" +"\n" +" # Atualiza o pod 'foo' apenas se o recurso não foi modificado na versão 1.\n" +" kubectl annotate pods foo description='my frontend running nginx' --resource-version=1\n" +"\n" +" # Atualiza o pod 'foo' removendo a annotation chamada 'description' se ela existir.\n" +" # Não necessita da flag --overwrite.\n" +" kubectl annotate pods foo description-" + +#: pkg/kubectl/cmd/create_service.go:170 +msgid "" +"\n" +" Create a LoadBalancer service with the specified name." +msgstr "" +"\n" +" Cria um serviço do tipo LoadBalancer com o nome especificado." + +#: pkg/kubectl/cmd/create_service.go:50 +msgid "" +"\n" +" Create a clusterIP service with the specified name." +msgstr "" +"\n" +" Cria um serviço do tipo clusterIP com o nome especificado." + +#: pkg/kubectl/cmd/create_deployment.go:33 +msgid "" +"\n" +" Create a deployment with the specified name." +msgstr "" +"\n" +" Cria um deployment com o nome especificado." + +#: pkg/kubectl/cmd/create_service.go:113 +msgid "" +"\n" +" Create a nodeport service with the specified name." +msgstr "" +"\n" +" Cria um serviço do tipo nodeport com o nome especificado." + +#: pkg/kubectl/cmd/clusterinfo_dump.go:53 +msgid "" +"\n" +" Dumps cluster info out suitable for debugging and diagnosing cluster problems. By default, " +"dumps everything to\n" +" stdout. You can optionally specify a directory with --output-directory. If you specify a " +"directory, kubernetes will\n" +" build a set of files in that directory. By default only dumps things in the 'kube-system' " +"namespace, but you can\n" +" switch to a different namespace with the --namespaces flag, or specify --all-namespaces to " +"dump all namespaces.\n" +"\n" +" The command also dumps the logs of all of the pods in the cluster, these logs are dumped " +"into different directories\n" +" based on namespace and pod name." +msgstr "" +"\n" +" Coleta informações do cluster para debugar e diagnosticar problemas do dele. Por padrão, " +"exibe tudo para o\n" +" stdout. Você pode, se quiser, especificar um diretório com --output-directory. Se " +"especificar o diretório, kubernetes irá\n" +" montar um conjunto de arquivos no diretório. Por padrão, apenas coleta informações no " +"namespace 'kube-system' , mas você pode\n" +" trocar para um namespace diferente com a flag --namespaces, ou especificar --all-namespaces " +"para todos os namespaces.\n" +"\n" +" O comando também coleta os logs de todos os pods no cluster, estes logs são salvos em outros " +"diretórios\n" +" baseado no namespace e nome do pod." + +#: pkg/kubectl/cmd/clusterinfo.go:37 +msgid "" +"\n" +" Display addresses of the master and services with label kubernetes.io/cluster-service=true\n" +" To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'." +msgstr "" +"\n" +" Mostra os endereços dos servidores de gerenciamento e serviços com o label kubernetes.io/" +"cluster-service=true\n" +" Para debugar e diagnosticar outros problemas do cluster, utilize 'kubectl cluster-info dump'." + +#: pkg/kubectl/cmd/create_quota.go:62 +msgid "A comma-delimited set of quota scopes that must all match each object tracked by the quota." +msgstr "" +"Lista de valores delimitados por vírgulas para um conjunto de escopos de quota que devem " +"corresponder para cada objeto rastreado pela quota." + +#: pkg/kubectl/cmd/create_quota.go:61 +msgid "A comma-delimited set of resource=quantity pairs that define a hard limit." +msgstr "" +"Lista de valores delimitados por vírgulas ajusta os pares resource=quantity que define um limite " +"rigído." + +#: pkg/kubectl/cmd/create_pdb.go:64 +msgid "" +"A label selector to use for this budget. Only equality-based selector requirements are supported." +msgstr "" +"Um seletor de label a ser usado para o PDB. Apenas seletores baseado em igualdade são suportados." + +#: pkg/kubectl/cmd/expose.go:104 +msgid "" +"A label selector to use for this service. Only equality-based selector requirements are " +"supported. If empty (the default) infer the selector from the replication controller or replica " +"set.)" +msgstr "" +"Um seletor de label para ser utilizado neste serviço. Apenas seletores baseado em igualdade são " +"suportados. Se vazio (por padrão) o seletor do replication controller ou replica set será " +"utilizado." + +#: pkg/kubectl/cmd/run.go:139 +msgid "A schedule in the Cron format the job should be run with." +msgstr "Agendamento no formato Cron em qual o job deve rodar." + +#: pkg/kubectl/cmd/expose.go:109 +msgid "" +"Additional external IP address (not managed by Kubernetes) to accept for the service. If this IP " +"is routed to a node, the service can be accessed by this IP in addition to its generated service " +"IP." +msgstr "" +"Um IP externo adicional (não gerenciado pelo Kubernetes) para ser usado no serviço. Se este IP " +"for roteado para um nó, o serviço pode ser acessado por este IP além de seu IP de serviço gerado." + +#: pkg/kubectl/cmd/expose.go:110 pkg/kubectl/cmd/run.go:122 +msgid "" +"An inline JSON override for the generated object. If this is non-empty, it is used to override " +"the generated object. Requires that the object supply a valid apiVersion field." +msgstr "" +"Uma substituição inline JSON para o objeto gerado. Se não estiver vazio, ele será usado para " +"substituir o objeto gerado. Requer que o objeto forneça um campo apiVersion válido." + +#: pkg/kubectl/cmd/run.go:137 +msgid "" +"An inline JSON override for the generated service object. If this is non-empty, it is used to " +"override the generated object. Requires that the object supply a valid apiVersion field. Only " +"used if --expose is true." +msgstr "" +"Uma substituição inline JSON para o objeto de serviço gerado. Se não estiver vazio, ele será " +"usado para substituir o objeto gerado. Requer que o objeto forneça o campo apiVersion válido. " +"Usado apenas se --expose for true." + +#: pkg/kubectl/cmd/apply.go:104 +msgid "Apply a configuration to a resource by filename or stdin" +msgstr "Aplica a configuração para um recurso utilizado um nome de arquivo ou stdin" + +#: pkg/kubectl/cmd/certificates.go:72 +msgid "Approve a certificate signing request" +msgstr "Aprova uma solicitação de assinatura de certificado" + +#: pkg/kubectl/cmd/create_service.go:82 +msgid "Assign your own ClusterIP or set to 'None' for a 'headless' service (no loadbalancing)." +msgstr "" +"Atribuir o seu próprio ClusterIP ou configura para 'None' para um serviço 'headless' (sem " +"loadbalancing)." + +#: pkg/kubectl/cmd/attach.go:70 +msgid "Attach to a running container" +msgstr "Se conecta a um container em execução" + +#: pkg/kubectl/cmd/autoscale.go:56 +msgid "Auto-scale a Deployment, ReplicaSet, or ReplicationController" +msgstr "Auto-escala um Deployment, ReplicaSet ou ReplicationController" + +#: pkg/kubectl/cmd/expose.go:113 +msgid "" +"ClusterIP to be assigned to the service. Leave empty to auto-allocate, or set to 'None' to " +"create a headless service." +msgstr "" +"ClusterIP que será atribuído ao serviço. Deixe vazio para auto atribuição, ou configure para " +"'None' para criar um serviço headless." + +#: pkg/kubectl/cmd/create_clusterrolebinding.go:56 +msgid "ClusterRole this ClusterRoleBinding should reference" +msgstr "ClusterRole que esse ClusterRoleBinding deve referenciar" + +#: pkg/kubectl/cmd/create_rolebinding.go:56 +msgid "ClusterRole this RoleBinding should reference" +msgstr "ClusterRole que esse RoleBinding deve referenciar" + +#: pkg/kubectl/cmd/rollingupdate.go:102 +msgid "" +"Container name which will have its image upgraded. Only relevant when --image is specified, " +"ignored otherwise. Required when using --image on a multi-container pod" +msgstr "" +"Nome do contêiner que terá sua imagem atualizada. Relevante apenas quando --image for " +"especificado, caso contrário, ignorado. Obrigatório ao usar --image em um pod com vários " +"contêineres" + +#: pkg/kubectl/cmd/convert.go:68 +msgid "Convert config files between different API versions" +msgstr "Converte arquivos de configuração entre versões de API diferentes" + +#: pkg/kubectl/cmd/cp.go:65 +msgid "Copy files and directories to and from containers." +msgstr "Copia arquivos e diretórios de e para containers." + +#: pkg/kubectl/cmd/create_clusterrolebinding.go:44 +msgid "Create a ClusterRoleBinding for a particular ClusterRole" +msgstr "Cria um ClusterRoleBinding para um ClusterRole especifico" + +#: pkg/kubectl/cmd/create_service.go:182 +msgid "Create a LoadBalancer service." +msgstr "Cria um serviço do tipo LoadBalancer." + +#: pkg/kubectl/cmd/create_service.go:125 +msgid "Create a NodePort service." +msgstr "Cria um serviço do tipo NodePort." + +#: pkg/kubectl/cmd/create_rolebinding.go:44 +msgid "Create a RoleBinding for a particular Role or ClusterRole" +msgstr "Cria um RoleBinding para uma Role ou ClusterRole especifico" + +#: pkg/kubectl/cmd/create_secret.go:214 +msgid "Create a TLS secret" +msgstr "Cria uma secret do tipo TLS" + +#: pkg/kubectl/cmd/create_service.go:69 +msgid "Create a clusterIP service." +msgstr "Cria um serviço do tipo clusterIP." + +#: pkg/kubectl/cmd/create_configmap.go:60 +msgid "Create a configmap from a local file, directory or literal value" +msgstr "Cria um configmap com base em um arquivo, diretório, ou um valor literal" + +#: pkg/kubectl/cmd/create_deployment.go:46 +msgid "Create a deployment with the specified name." +msgstr "Cria um deployment com um nome especificado." + +#: pkg/kubectl/cmd/create_namespace.go:45 +msgid "Create a namespace with the specified name" +msgstr "Cria a namespace com um nome especificado" + +#: pkg/kubectl/cmd/create_pdb.go:50 +msgid "Create a pod disruption budget with the specified name." +msgstr "Cria um pod disruption budget com um nome especificado." + +#: pkg/kubectl/cmd/create_quota.go:48 +msgid "Create a quota with the specified name." +msgstr "Cria uma quota com um nome especificado." + +#: pkg/kubectl/cmd/create.go:63 +msgid "Create a resource by filename or stdin" +msgstr "Cria um recurso por nome de arquivo ou stdin" + +#: pkg/kubectl/cmd/create_secret.go:144 +msgid "Create a secret for use with a Docker registry" +msgstr "Cria um secret para ser utilizado com o Docker registry" + +#: pkg/kubectl/cmd/create_secret.go:74 +msgid "Create a secret from a local file, directory or literal value" +msgstr "Cria um secret com base em um arquivo, diretório ou um valor literal" + +#: pkg/kubectl/cmd/create_secret.go:35 +msgid "Create a secret using specified subcommand" +msgstr "Cria um secret utilizando um sub-comando especificado" + +#: pkg/kubectl/cmd/create_serviceaccount.go:45 +msgid "Create a service account with the specified name" +msgstr "Cria uma conta de serviço com um nome especificado" + +#: pkg/kubectl/cmd/create_service.go:37 +msgid "Create a service using specified subcommand." +msgstr "Cria um service utilizando um sub-comando especificado." + +#: pkg/kubectl/cmd/create_service.go:241 +msgid "Create an ExternalName service." +msgstr "Cria um serviço do tipo ExternalName." + +#: pkg/kubectl/cmd/delete.go:132 +msgid "" +"Delete resources by filenames, stdin, resources and names, or by resources and label selector" +msgstr "" +"Apaga os recusros por nome de arquivos, stdin, recursos e nomes, ou por recursos e seletor de " +"label" + +#: pkg/kubectl/cmd/config/delete_cluster.go:39 +msgid "Delete the specified cluster from the kubeconfig" +msgstr "Apaga o cluster especificado do kubeconfig" + +#: pkg/kubectl/cmd/config/delete_context.go:39 +msgid "Delete the specified context from the kubeconfig" +msgstr "Apaga o contexto especificado do kubeconfig" + +#: pkg/kubectl/cmd/certificates.go:122 +msgid "Deny a certificate signing request" +msgstr "Rejeita o pedido de assinatura do certificado" + +#: pkg/kubectl/cmd/stop.go:59 +msgid "Deprecated: Gracefully shut down a resource by name or filename" +msgstr "Descontinuado: Termina um recurso por nome ou nome de arquivo" + +#: pkg/kubectl/cmd/config/get_contexts.go:64 +msgid "Describe one or many contexts" +msgstr "Mostra um ou mais contextos" + +#: pkg/kubectl/cmd/top_node.go:78 +msgid "Display Resource (CPU/Memory) usage of nodes" +msgstr "Mostra a utilização de recursos (CPU/Memória) nos nodes" + +#: pkg/kubectl/cmd/top_pod.go:80 +msgid "Display Resource (CPU/Memory) usage of pods" +msgstr "Mostra a utilização de recursos (CPU/Memória) nos pods" + +#: pkg/kubectl/cmd/top.go:44 +msgid "Display Resource (CPU/Memory) usage." +msgstr "Mostra a utilização de recursos (CPU/Memória)." + +#: pkg/kubectl/cmd/clusterinfo.go:51 +msgid "Display cluster info" +msgstr "Mostra as informações do cluster" + +#: pkg/kubectl/cmd/config/get_clusters.go:41 +msgid "Display clusters defined in the kubeconfig" +msgstr "Mostra os clusters definidos no kubeconfig" + +#: pkg/kubectl/cmd/config/view.go:67 +msgid "Display merged kubeconfig settings or a specified kubeconfig file" +msgstr "Mostra a configuração do kubeconfig mescladas ou um arquivo kubeconfig especificado" + +#: pkg/kubectl/cmd/get.go:111 +msgid "Display one or many resources" +msgstr "Mostra um ou mais recursos" + +#: pkg/kubectl/cmd/config/current_context.go:49 +msgid "Displays the current-context" +msgstr "Mostra o contexto corrente" + +#: pkg/kubectl/cmd/explain.go:51 +msgid "Documentation of resources" +msgstr "Documentação dos recursos" + +#: pkg/kubectl/cmd/drain.go:178 +msgid "Drain node in preparation for maintenance" +msgstr "Drenar o node para preparação de manutenção" + +#: pkg/kubectl/cmd/clusterinfo_dump.go:39 +msgid "Dump lots of relevant info for debugging and diagnosis" +msgstr "Realiza o dump de muitas informações relevantes para debugging e diagnósticos" + +#: pkg/kubectl/cmd/edit.go:110 +msgid "Edit a resource on the server" +msgstr "Edita um recurso no servidor" + +#: pkg/kubectl/cmd/create_secret.go:160 +msgid "Email for Docker registry" +msgstr "Email para o Docker registry" + +#: pkg/kubectl/cmd/exec.go:69 +msgid "Execute a command in a container" +msgstr "Executa um comando em um container" + +#: pkg/kubectl/cmd/rollingupdate.go:103 +msgid "" +"Explicit policy for when to pull container images. Required when --image is same as existing " +"image, ignored otherwise." +msgstr "" +"Política explícita para quando extrair imagens de contêiner. Obrigatório quando --image for " +"igual à imagem existente, caso contrário, será ignorado." + +#: pkg/kubectl/cmd/portforward.go:76 +msgid "Forward one or more local ports to a pod" +msgstr "Encaminhar uma ou mais portas locais para um pod" + +#: pkg/kubectl/cmd/help.go:37 +msgid "Help about any command" +msgstr "Ajuda sobre qualquer comando" + +#: pkg/kubectl/cmd/expose.go:103 +msgid "" +"IP to assign to the Load Balancer. If empty, an ephemeral IP will be created and used (cloud-" +"provider specific)." +msgstr "" +"IP para ser alocado no Load Balancer. Se vazio, um IP efêmero será criado e utilizado " +"(específico para cada provedor cloud)." + +#: pkg/kubectl/cmd/expose.go:112 +msgid "" +"If non-empty, set the session affinity for the service to this; legal values: 'None', 'ClientIP'" +msgstr "" +"Se não vazio, configura a afinidade de sessão para o serviço; valores válidos: 'None', 'ClientIP'" + +#: pkg/kubectl/cmd/annotate.go:136 +msgid "" +"If non-empty, the annotation update will only succeed if this is the current resource-version " +"for the object. Only valid when specifying a single resource." +msgstr "" +"Se não estiver vazio, a atualização dos annotation só terá êxito se esta for a versão do recurso " +"atual para o objeto. Válido apenas ao especificar um único recurso." + +#: pkg/kubectl/cmd/label.go:134 +msgid "" +"If non-empty, the labels update will only succeed if this is the current resource-version for " +"the object. Only valid when specifying a single resource." +msgstr "" +"Se não estiver vazio, a atualização dos labels só terá êxito se esta for a versão do recurso " +"atual para o objeto. Válido apenas ao especificar um único recurso." + +#: pkg/kubectl/cmd/rollingupdate.go:99 +msgid "" +"Image to use for upgrading the replication controller. Must be distinct from the existing image " +"(either new image or new image tag). Can not be used with --filename/-f" +msgstr "" +"Imagem a ser utilizada para atualizar o replication controller. Deve ser diferente da imagem " +"atual (pode ser uma nova imagem ou uma nova tag). Não pode ser utilizada com —filename/-f" + +#: pkg/kubectl/cmd/rollout/rollout.go:47 +msgid "Manage a deployment rollout" +msgstr "Gerencia um deployment rollout" + +#: pkg/kubectl/cmd/drain.go:128 +msgid "Mark node as schedulable" +msgstr "Marca o node como agendável" + +#: pkg/kubectl/cmd/drain.go:103 +msgid "Mark node as unschedulable" +msgstr "Marca o node como não agendável" + +#: pkg/kubectl/cmd/rollout/rollout_pause.go:74 +msgid "Mark the provided resource as paused" +msgstr "Marca o recurso fornecido como pausado" + +#: pkg/kubectl/cmd/certificates.go:36 +msgid "Modify certificate resources." +msgstr "Edita o certificado dos recursos." + +#: pkg/kubectl/cmd/config/config.go:40 +msgid "Modify kubeconfig files" +msgstr "Edita o arquivo kubeconfig" + +#: pkg/kubectl/cmd/expose.go:108 +msgid "" +"Name or number for the port on the container that the service should direct traffic to. Optional." +msgstr "" +"Nome ou o número da porta em um container em que o serviço deve direcionar o tráfego. Opcional." + +#: pkg/kubectl/cmd/logs.go:113 +msgid "" +"Only return logs after a specific date (RFC3339). Defaults to all logs. Only one of since-time / " +"since may be used." +msgstr "" +"Apenas retorna os logs após uma data específica (RFC3339). Padrão para todos os logs. Apenas um " +"since-time / since deve ser utilizado." + +#: pkg/kubectl/cmd/completion.go:104 +msgid "Output shell completion code for the specified shell (bash or zsh)" +msgstr "Saída do autocomplete de shell para um Shell específico (bash ou zsh)" + +#: pkg/kubectl/cmd/convert.go:85 +msgid "Output the formatted object with the given group version (for ex: 'extensions/v1beta1').)" +msgstr "" +"Imprime o objeto formatado com a dada versão de grupo (por exemplo: 'extensions/v1beta1').)" + +#: pkg/kubectl/cmd/create_secret.go:158 +msgid "Password for Docker registry authentication" +msgstr "Senha para a autenticação do registro do Docker" + +#: pkg/kubectl/cmd/create_secret.go:226 +msgid "Path to PEM encoded public key certificate." +msgstr "Caminho para a chave pública em formato PEM." + +#: pkg/kubectl/cmd/create_secret.go:227 +msgid "Path to private key associated with given certificate." +msgstr "Caminho para a chave private associada a um certificado fornecido." + +#: pkg/kubectl/cmd/rollingupdate.go:85 +msgid "Perform a rolling update of the given ReplicationController" +msgstr "Executa uma atualização contínua" + +#: pkg/kubectl/cmd/scale.go:83 +msgid "" +"Precondition for resource version. Requires that the current resource version match this value " +"in order to scale." +msgstr "" +"Pré-condição para a versão do recurso. Requer que a versão do recurso atual corresponda a este " +"valor para escalar." + +#: pkg/kubectl/cmd/version.go:40 +msgid "Print the client and server version information" +msgstr "Mostra a informação de versão do cliente e do servidor" + +#: pkg/kubectl/cmd/options.go:38 +msgid "Print the list of flags inherited by all commands" +msgstr "Mostra a lista de opções herdadas por todos os comandos" + +#: pkg/kubectl/cmd/logs.go:93 +msgid "Print the logs for a container in a pod" +msgstr "Mostra os logs de um container em um pod" + +#: pkg/kubectl/cmd/replace.go:71 +msgid "Replace a resource by filename or stdin" +msgstr "Substitui um recurso por um nome de arquivo ou stdin" + +#: pkg/kubectl/cmd/rollout/rollout_resume.go:72 +msgid "Resume a paused resource" +msgstr "Retoma um recurso pausado" + +#: pkg/kubectl/cmd/create_rolebinding.go:57 +msgid "Role this RoleBinding should reference" +msgstr "Role que a RoleBinding deve referenciar" + +#: pkg/kubectl/cmd/run.go:97 +msgid "Run a particular image on the cluster" +msgstr "Executa uma imagem específica no cluster" + +#: pkg/kubectl/cmd/proxy.go:69 +msgid "Run a proxy to the Kubernetes API server" +msgstr "Executa um proxy para o servidor de API do Kubernetes" + +#: pkg/kubectl/cmd/create_secret.go:161 +msgid "Server location for Docker registry" +msgstr "Localização do servidor para o registro do Docker" + +#: pkg/kubectl/cmd/scale.go:71 +msgid "Set a new size for a Deployment, ReplicaSet, Replication Controller, or Job" +msgstr "Define um novo tamanho para um Deployment, ReplicaSet, Replication Controller, ou Job" + +#: pkg/kubectl/cmd/set/set.go:38 +msgid "Set specific features on objects" +msgstr "Define funcionalidades específicas em objetos" + +#: pkg/kubectl/cmd/apply_set_last_applied.go:83 +msgid "" +"Set the last-applied-configuration annotation on a live object to match the contents of a file." +msgstr "" +"Define a anotação last-applied-configuration em um objeto existente para corresponder ao " +"conteúdo do arquivo." + +#: pkg/kubectl/cmd/set/set_selector.go:82 +msgid "Set the selector on a resource" +msgstr "Define um seletor em um recurso" + +#: pkg/kubectl/cmd/config/create_cluster.go:68 +msgid "Sets a cluster entry in kubeconfig" +msgstr "Define um cluster no arquivo kubeconfig" + +#: pkg/kubectl/cmd/config/create_context.go:58 +msgid "Sets a context entry in kubeconfig" +msgstr "Define um contexto no arquivo kubeconfig" + +#: pkg/kubectl/cmd/config/create_authinfo.go:104 +msgid "Sets a user entry in kubeconfig" +msgstr "Define um usuário no arquivo kubeconfig" + +#: pkg/kubectl/cmd/config/set.go:60 +msgid "Sets an individual value in a kubeconfig file" +msgstr "Define um valor individual no arquivo kubeconfig" + +#: pkg/kubectl/cmd/config/use_context.go:49 +msgid "Sets the current-context in a kubeconfig file" +msgstr "Define o current-context no arquivo kubeconfig" + +#: pkg/kubectl/cmd/describe.go:86 +msgid "Show details of a specific resource or group of resources" +msgstr "Mostra os detalhes de um recurso específico ou de um grupo de recursos" + +#: pkg/kubectl/cmd/rollout/rollout_status.go:58 +msgid "Show the status of the rollout" +msgstr "Mostra o status de uma atualização dinamica" + +#: pkg/kubectl/cmd/expose.go:106 +msgid "Synonym for --target-port" +msgstr "Sinônimo para —target-port" + +#: pkg/kubectl/cmd/expose.go:88 +msgid "" +"Take a replication controller, service, deployment or pod and expose it as a new Kubernetes " +"Service" +msgstr "" +"Pega um replication controlar, service, deployment ou pod e expõe como um novo Serviço do " +"Kubernetes" + +#: pkg/kubectl/cmd/run.go:117 +msgid "The image for the container to run." +msgstr "A imagem para o container executar." + +#: pkg/kubectl/cmd/run.go:119 +msgid "" +"The image pull policy for the container. If left empty, this value will not be specified by the " +"client and defaulted by the server" +msgstr "" +"A política de obtenção de imagens. Se deixado em branco, este valor não será especificado pelo " +"cliente e será utilizado o padrão do servidor" + +#: pkg/kubectl/cmd/rollingupdate.go:101 +msgid "" +"The key to use to differentiate between two different controllers, default 'deployment'. Only " +"relevant when --image is specified, ignored otherwise" +msgstr "" +"A chave utilizada para diferenciar entre dois controlares diferentes, padrão 'deployment'. " +"Apenas relevante quando --image é especificado, é ignorado caso contrário" + +#: pkg/kubectl/cmd/create_pdb.go:63 +msgid "The minimum number or percentage of available pods this budget requires." +msgstr "Um número mínimo ou porcentagem de pods disponíveis que este budget requer." + +#: pkg/kubectl/cmd/expose.go:111 +msgid "The name for the newly created object." +msgstr "O nome para o objeto recém criado." + +#: pkg/kubectl/cmd/autoscale.go:72 +msgid "" +"The name for the newly created object. If not specified, the name of the input resource will be " +"used." +msgstr "" +"O nome para o objeto recém criado. Se não especificado, o nome do input resource será utilizado." + +#: pkg/kubectl/cmd/run.go:116 +msgid "" +"The name of the API generator to use, see http://kubernetes.io/docs/user-guide/kubectl-" +"conventions/#generators for a list." +msgstr "" +"O nome do gerador de API a ser usado, veja a lista em http://kubernetes.io/docs/user-guide/" +"kubectl-conventions/#generators." + +#: pkg/kubectl/cmd/autoscale.go:67 +msgid "The name of the API generator to use. Currently there is only 1 generator." +msgstr "O nome do gerador de API a ser usado. Atualmente existe apenas 1 gerador." + +#: pkg/kubectl/cmd/expose.go:99 +msgid "" +"The name of the API generator to use. There are 2 generators: 'service/v1' and 'service/v2'. The " +"only difference between them is that service port in v1 is named 'default', while it is left " +"unnamed in v2. Default is 'service/v2'." +msgstr "" +"O nome do gerador de API a ser usado. Existem 2 geradores: 'service/v1' e 'service/v2'. A única " +"diferença entre eles é que a porta de serviço na v1 é chamada de 'default', enquanto ela é " +"deixada sem nome na v2. O padrão é 'service/v2'." + +#: pkg/kubectl/cmd/run.go:136 +msgid "The name of the generator to use for creating a service. Only used if --expose is true" +msgstr "" +"O nome do recurso para ser utilizado quando criando um serviço. Apenas utilizado se —expose é " +"verdadeiro" + +#: pkg/kubectl/cmd/expose.go:100 +msgid "The network protocol for the service to be created. Default is 'TCP'." +msgstr "O protocolo de rede para o serviço ser criado. Padrão é 'TCP'." + +#: pkg/kubectl/cmd/expose.go:101 +msgid "" +"The port that the service should serve on. Copied from the resource being exposed, if unspecified" +msgstr "" +"A porta para que o serviço possa servir. Copiado do recurso sendo exposto, se não especificado" + +#: pkg/kubectl/cmd/run.go:124 +msgid "" +"The port that this container exposes. If --expose is true, this is also the port used by the " +"service that is created." +msgstr "" +"A porta que o container expõe. Se —expose é verdadeiro, esta também é a porta utilizada pelo " +"serviço quando for criado." + +#: pkg/kubectl/cmd/run.go:134 +msgid "" +"The resource requirement limits for this container. For example, 'cpu=200m,memory=512Mi'. Note " +"that server side components may assign limits depending on the server configuration, such as " +"limit ranges." +msgstr "" +"O recurso requerido para este container. Por exemplo, 'cpu=200m,memory=512Mi'. Observe que os " +"componentes do lado do servidor podem atribuir limites, dependendo da configuração do servidor, " +"como intervalos de limite." + +#: pkg/kubectl/cmd/run.go:133 +msgid "" +"The resource requirement requests for this container. For example, 'cpu=100m,memory=256Mi'. " +"Note that server side components may assign requests depending on the server configuration, such " +"as limit ranges." +msgstr "" +"O recurso requerido de requests para este container. Por exemplo, 'cpu=100m,memory=256Mi'. " +"Observe que os componentes do lado do servidor podem atribuir requests, dependendo da " +"configuração do servidor, como intervalos de limite." + +#: pkg/kubectl/cmd/run.go:131 +msgid "" +"The restart policy for this Pod. Legal values [Always, OnFailure, Never]. If set to 'Always' a " +"deployment is created, if set to 'OnFailure' a job is created, if set to 'Never', a regular pod " +"is created. For the latter two --replicas must be 1. Default 'Always', for CronJobs ` + "`" + `Never` + "`" + `." +msgstr "" +"A politica de restart para este Pod. Possíveis valores [Always, OnFailure, Never]. Se " +"configurado para 'Always' um deployment é criado, se configurado para 'OnFailure' um job é " +"criado, se configurado para 'Never', um pod é criado. Para os dois últimos —replicas deve ser " +"1. Valor padrão 'Always', para CronJobs ` + "`" + `Never` + "`" + `." + +#: pkg/kubectl/cmd/create_secret.go:88 +msgid "The type of secret to create" +msgstr "O tipo de segredo para criar" + +#: pkg/kubectl/cmd/expose.go:102 +msgid "Type for this service: ClusterIP, NodePort, or LoadBalancer. Default is 'ClusterIP'." +msgstr "Tipo para este serviço: ClusterIP, NodePort, ou LoadBalancer. Valor padrão é 'ClusterIP'." + +#: pkg/kubectl/cmd/rollout/rollout_undo.go:72 +msgid "Undo a previous rollout" +msgstr "Desfazer o rollout anterior" + +#: pkg/kubectl/cmd/config/unset.go:48 +msgid "Unsets an individual value in a kubeconfig file" +msgstr "Remover um valor individual do arquivo kubeconfig" + +#: pkg/kubectl/cmd/patch.go:96 +msgid "Update field(s) of a resource using strategic merge patch" +msgstr "Atualizar o(s) campo(s) de um recurso usando a estratégia de merge patch" + +#: pkg/kubectl/cmd/set/set_image.go:95 +msgid "Update image of a pod template" +msgstr "Atualizar a imagem de um template de pod" + +#: pkg/kubectl/cmd/set/set_resources.go:102 +msgid "Update resource requests/limits on objects with pod templates" +msgstr "Atualizar os recursos de request/limites em um objeto com template de pod" + +#: pkg/kubectl/cmd/annotate.go:116 +msgid "Update the annotations on a resource" +msgstr "Atualizar as anotações de um recurso" + +#: pkg/kubectl/cmd/label.go:114 +msgid "Update the labels on a resource" +msgstr "Atualizar os labels de um recurso" + +#: pkg/kubectl/cmd/taint.go:87 +msgid "Update the taints on one or more nodes" +msgstr "Atualizar o taints de um ou mais nodes" + +#: pkg/kubectl/cmd/create_secret.go:156 +msgid "Username for Docker registry authentication" +msgstr "Nome de usuário para a autenticação no Docker registry" + +#: pkg/kubectl/cmd/apply_view_last_applied.go:64 +msgid "View latest last-applied-configuration annotations of a resource/object" +msgstr "Visualizar a última anotação last-applied-configuration de um recurso/objeto" + +#: pkg/kubectl/cmd/rollout/rollout_history.go:52 +msgid "View rollout history" +msgstr "Visualizar o histórico de rollout" + +#: pkg/kubectl/cmd/clusterinfo_dump.go:46 +msgid "" +"Where to output the files. If empty or '-' uses stdout, otherwise creates a directory hierarchy " +"in that directory" +msgstr "" +"Onde colocar os arquivos de saída. Se vazio ou '-' usa o stdout do terminal, caso contrário, " +"cria uma hierarquia no diretório configurado" + +#: pkg/kubectl/cmd/run_test.go:85 +msgid "dummy restart flag)" +msgstr "dummy restart flag)" + +#: pkg/kubectl/cmd/create_service.go:254 +msgid "external name of service" +msgstr "nome externo do serviço" + +#: pkg/kubectl/cmd/cmd.go:227 +msgid "kubectl controls the Kubernetes cluster manager" +msgstr "kubectl controla o gerenciador de cluster do Kubernetes" +`) + +func translationsKubectlPt_brLc_messagesK8sPoBytes() ([]byte, error) { + return _translationsKubectlPt_brLc_messagesK8sPo, nil +} + +func translationsKubectlPt_brLc_messagesK8sPo() (*asset, error) { + bytes, err := translationsKubectlPt_brLc_messagesK8sPoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "translations/kubectl/pt_BR/LC_MESSAGES/k8s.po", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _translationsKubectlTemplatePot = []byte(`# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the Kubernetes package. @@ -22806,6 +25865,8 @@ var _bindata = map[string]func() (*asset, error){ "translations/kubectl/ja_JP/LC_MESSAGES/k8s.po": translationsKubectlJa_jpLc_messagesK8sPo, "translations/kubectl/ko_KR/LC_MESSAGES/k8s.mo": translationsKubectlKo_krLc_messagesK8sMo, "translations/kubectl/ko_KR/LC_MESSAGES/k8s.po": translationsKubectlKo_krLc_messagesK8sPo, + "translations/kubectl/pt_BR/LC_MESSAGES/k8s.mo": translationsKubectlPt_brLc_messagesK8sMo, + "translations/kubectl/pt_BR/LC_MESSAGES/k8s.po": translationsKubectlPt_brLc_messagesK8sPo, "translations/kubectl/template.pot": translationsKubectlTemplatePot, "translations/kubectl/zh_CN/LC_MESSAGES/k8s.mo": translationsKubectlZh_cnLc_messagesK8sMo, "translations/kubectl/zh_CN/LC_MESSAGES/k8s.po": translationsKubectlZh_cnLc_messagesK8sPo, @@ -22905,6 +25966,12 @@ var _bintree = &bintree{nil, map[string]*bintree{ "k8s.po": {translationsKubectlKo_krLc_messagesK8sPo, map[string]*bintree{}}, }}, }}, + "pt_BR": {nil, map[string]*bintree{ + "LC_MESSAGES": {nil, map[string]*bintree{ + "k8s.mo": {translationsKubectlPt_brLc_messagesK8sMo, map[string]*bintree{}}, + "k8s.po": {translationsKubectlPt_brLc_messagesK8sPo, map[string]*bintree{}}, + }}, + }}, "template.pot": {translationsKubectlTemplatePot, map[string]*bintree{}}, "zh_CN": {nil, map[string]*bintree{ "LC_MESSAGES": {nil, map[string]*bintree{ diff --git a/vendor/k8s.io/kubectl/pkg/scheme/install.go b/vendor/k8s.io/kubectl/pkg/scheme/install.go index 8640c70216..0aa436eeb9 100644 --- a/vendor/k8s.io/kubectl/pkg/scheme/install.go +++ b/vendor/k8s.io/kubectl/pkg/scheme/install.go @@ -32,13 +32,13 @@ import ( autoscalingv2beta1 "k8s.io/api/autoscaling/v2beta1" batchv1 "k8s.io/api/batch/v1" batchv1beta1 "k8s.io/api/batch/v1beta1" - batchv2alpha1 "k8s.io/api/batch/v2alpha1" certificatesv1 "k8s.io/api/certificates/v1" certificatesv1beta1 "k8s.io/api/certificates/v1beta1" corev1 "k8s.io/api/core/v1" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" imagepolicyv1alpha1 "k8s.io/api/imagepolicy/v1alpha1" networkingv1 "k8s.io/api/networking/v1" + policyv1 "k8s.io/api/policy/v1" policyv1beta1 "k8s.io/api/policy/v1beta1" rbacv1 "k8s.io/api/rbac/v1" rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" @@ -70,12 +70,12 @@ func init() { utilruntime.Must(Scheme.SetVersionPriority(authenticationv1.SchemeGroupVersion, authenticationv1beta1.SchemeGroupVersion)) utilruntime.Must(Scheme.SetVersionPriority(authorizationv1.SchemeGroupVersion, authorizationv1beta1.SchemeGroupVersion)) utilruntime.Must(Scheme.SetVersionPriority(autoscalingv1.SchemeGroupVersion, autoscalingv2beta1.SchemeGroupVersion)) - utilruntime.Must(Scheme.SetVersionPriority(batchv1.SchemeGroupVersion, batchv1beta1.SchemeGroupVersion, batchv2alpha1.SchemeGroupVersion)) + utilruntime.Must(Scheme.SetVersionPriority(batchv1.SchemeGroupVersion, batchv1beta1.SchemeGroupVersion)) utilruntime.Must(Scheme.SetVersionPriority(certificatesv1.SchemeGroupVersion, certificatesv1beta1.SchemeGroupVersion)) utilruntime.Must(Scheme.SetVersionPriority(extensionsv1beta1.SchemeGroupVersion)) utilruntime.Must(Scheme.SetVersionPriority(imagepolicyv1alpha1.SchemeGroupVersion)) utilruntime.Must(Scheme.SetVersionPriority(networkingv1.SchemeGroupVersion)) - utilruntime.Must(Scheme.SetVersionPriority(policyv1beta1.SchemeGroupVersion)) + utilruntime.Must(Scheme.SetVersionPriority(policyv1beta1.SchemeGroupVersion, policyv1.SchemeGroupVersion)) utilruntime.Must(Scheme.SetVersionPriority(rbacv1.SchemeGroupVersion, rbacv1beta1.SchemeGroupVersion, rbacv1alpha1.SchemeGroupVersion)) utilruntime.Must(Scheme.SetVersionPriority(schedulingv1alpha1.SchemeGroupVersion)) utilruntime.Must(Scheme.SetVersionPriority(storagev1.SchemeGroupVersion, storagev1beta1.SchemeGroupVersion)) diff --git a/vendor/k8s.io/kubectl/pkg/util/i18n/i18n.go b/vendor/k8s.io/kubectl/pkg/util/i18n/i18n.go index 721b36ed2f..d3eae73896 100644 --- a/vendor/k8s.io/kubectl/pkg/util/i18n/i18n.go +++ b/vendor/k8s.io/kubectl/pkg/util/i18n/i18n.go @@ -41,6 +41,7 @@ var knownTranslations = map[string][]string{ "it_IT", "de_DE", "ko_KR", + "pt_BR", }, // only used for unit tests. "test": { diff --git a/vendor/k8s.io/kubectl/pkg/util/openapi/openapi_getter.go b/vendor/k8s.io/kubectl/pkg/util/openapi/openapi_getter.go index d5c9476a02..e0f82eba9c 100644 --- a/vendor/k8s.io/kubectl/pkg/util/openapi/openapi_getter.go +++ b/vendor/k8s.io/kubectl/pkg/util/openapi/openapi_getter.go @@ -19,47 +19,64 @@ package openapi import ( "sync" + openapi_v2 "github.com/googleapis/gnostic/openapiv2" "k8s.io/client-go/discovery" ) -// synchronizedOpenAPIGetter fetches the openapi schema once and then caches it in memory -type synchronizedOpenAPIGetter struct { +// CachedOpenAPIGetter fetches the openapi schema once and then caches it in memory +type CachedOpenAPIGetter struct { + openAPIClient discovery.OpenAPISchemaInterface + // Cached results sync.Once - openAPISchema Resources + openAPISchema *openapi_v2.Document err error - - openAPIClient discovery.OpenAPISchemaInterface } -var _ Getter = &synchronizedOpenAPIGetter{} - -// Getter is an interface for fetching openapi specs and parsing them into an Resources struct -type Getter interface { - // OpenAPIData returns the parsed OpenAPIData - Get() (Resources, error) -} +var _ discovery.OpenAPISchemaInterface = &CachedOpenAPIGetter{} // NewOpenAPIGetter returns an object to return OpenAPIDatas which reads // from a server, and then stores in memory for subsequent invocations -func NewOpenAPIGetter(openAPIClient discovery.OpenAPISchemaInterface) Getter { - return &synchronizedOpenAPIGetter{ +func NewOpenAPIGetter(openAPIClient discovery.OpenAPISchemaInterface) *CachedOpenAPIGetter { + return &CachedOpenAPIGetter{ openAPIClient: openAPIClient, } } -// Resources implements Getter -func (g *synchronizedOpenAPIGetter) Get() (Resources, error) { +// OpenAPISchema implements OpenAPISchemaInterface. +func (g *CachedOpenAPIGetter) OpenAPISchema() (*openapi_v2.Document, error) { g.Do(func() { - s, err := g.openAPIClient.OpenAPISchema() + g.openAPISchema, g.err = g.openAPIClient.OpenAPISchema() + }) + + // Return the saved result. + return g.openAPISchema, g.err +} + +type CachedOpenAPIParser struct { + openAPIClient discovery.OpenAPISchemaInterface + + // Cached results + sync.Once + openAPIResources Resources + err error +} + +func NewOpenAPIParser(openAPIClient discovery.OpenAPISchemaInterface) *CachedOpenAPIParser { + return &CachedOpenAPIParser{ + openAPIClient: openAPIClient, + } +} + +func (p *CachedOpenAPIParser) Parse() (Resources, error) { + p.Do(func() { + oapi, err := p.openAPIClient.OpenAPISchema() if err != nil { - g.err = err + p.err = err return } - - g.openAPISchema, g.err = NewOpenAPIData(s) + p.openAPIResources, p.err = NewOpenAPIData(oapi) }) - // Return the save result - return g.openAPISchema, g.err + return p.openAPIResources, p.err } diff --git a/vendor/k8s.io/utils/pointer/pointer.go b/vendor/k8s.io/utils/pointer/pointer.go index 0a55a844ee..1da6f6664a 100644 --- a/vendor/k8s.io/utils/pointer/pointer.go +++ b/vendor/k8s.io/utils/pointer/pointer.go @@ -46,86 +46,182 @@ func AllPtrFieldsNil(obj interface{}) bool { return true } -// Int32Ptr returns a pointer to an int32 -func Int32Ptr(i int32) *int32 { +// Int32 returns a pointer to an int32. +func Int32(i int32) *int32 { return &i } -// Int32PtrDerefOr dereference the int32 ptr and returns it if not nil, -// else returns def. -func Int32PtrDerefOr(ptr *int32, def int32) int32 { +var Int32Ptr = Int32 // for back-compat + +// Int32Deref dereferences the int32 ptr and returns it if not nil, or else +// returns def. +func Int32Deref(ptr *int32, def int32) int32 { if ptr != nil { return *ptr } return def } -// Int64Ptr returns a pointer to an int64 -func Int64Ptr(i int64) *int64 { +var Int32PtrDerefOr = Int32Deref // for back-compat + +// Int32Equal returns true if both arguments are nil or both arguments +// dereference to the same value. +func Int32Equal(a, b *int32) bool { + if (a == nil) != (b == nil) { + return false + } + if a == nil { + return true + } + return *a == *b +} + +// Int64 returns a pointer to an int64. +func Int64(i int64) *int64 { return &i } -// Int64PtrDerefOr dereference the int64 ptr and returns it if not nil, -// else returns def. -func Int64PtrDerefOr(ptr *int64, def int64) int64 { +var Int64Ptr = Int64 // for back-compat + +// Int64Deref dereferences the int64 ptr and returns it if not nil, or else +// returns def. +func Int64Deref(ptr *int64, def int64) int64 { if ptr != nil { return *ptr } return def } -// BoolPtr returns a pointer to a bool -func BoolPtr(b bool) *bool { +var Int64PtrDerefOr = Int64Deref // for back-compat + +// Int64Equal returns true if both arguments are nil or both arguments +// dereference to the same value. +func Int64Equal(a, b *int64) bool { + if (a == nil) != (b == nil) { + return false + } + if a == nil { + return true + } + return *a == *b +} + +// Bool returns a pointer to a bool. +func Bool(b bool) *bool { return &b } -// BoolPtrDerefOr dereference the bool ptr and returns it if not nil, -// else returns def. -func BoolPtrDerefOr(ptr *bool, def bool) bool { +var BoolPtr = Bool // for back-compat + +// BoolDeref dereferences the bool ptr and returns it if not nil, or else +// returns def. +func BoolDeref(ptr *bool, def bool) bool { if ptr != nil { return *ptr } return def } -// StringPtr returns a pointer to the passed string. -func StringPtr(s string) *string { +var BoolPtrDerefOr = BoolDeref // for back-compat + +// BoolEqual returns true if both arguments are nil or both arguments +// dereference to the same value. +func BoolEqual(a, b *bool) bool { + if (a == nil) != (b == nil) { + return false + } + if a == nil { + return true + } + return *a == *b +} + +// String returns a pointer to a string. +func String(s string) *string { return &s } -// StringPtrDerefOr dereference the string ptr and returns it if not nil, -// else returns def. -func StringPtrDerefOr(ptr *string, def string) string { +var StringPtr = String // for back-compat + +// StringDeref dereferences the string ptr and returns it if not nil, or else +// returns def. +func StringDeref(ptr *string, def string) string { if ptr != nil { return *ptr } return def } -// Float32Ptr returns a pointer to the passed float32. -func Float32Ptr(i float32) *float32 { +var StringPtrDerefOr = StringDeref // for back-compat + +// StringEqual returns true if both arguments are nil or both arguments +// dereference to the same value. +func StringEqual(a, b *string) bool { + if (a == nil) != (b == nil) { + return false + } + if a == nil { + return true + } + return *a == *b +} + +// Float32 returns a pointer to the a float32. +func Float32(i float32) *float32 { return &i } -// Float32PtrDerefOr dereference the float32 ptr and returns it if not nil, -// else returns def. -func Float32PtrDerefOr(ptr *float32, def float32) float32 { +var Float32Ptr = Float32 + +// Float32Deref dereferences the float32 ptr and returns it if not nil, or else +// returns def. +func Float32Deref(ptr *float32, def float32) float32 { if ptr != nil { return *ptr } return def } -// Float64Ptr returns a pointer to the passed float64. -func Float64Ptr(i float64) *float64 { +var Float32PtrDerefOr = Float32Deref // for back-compat + +// Float32Equal returns true if both arguments are nil or both arguments +// dereference to the same value. +func Float32Equal(a, b *float32) bool { + if (a == nil) != (b == nil) { + return false + } + if a == nil { + return true + } + return *a == *b +} + +// Float64 returns a pointer to the a float64. +func Float64(i float64) *float64 { return &i } -// Float64PtrDerefOr dereference the float64 ptr and returns it if not nil, -// else returns def. -func Float64PtrDerefOr(ptr *float64, def float64) float64 { +var Float64Ptr = Float64 + +// Float64Deref dereferences the float64 ptr and returns it if not nil, or else +// returns def. +func Float64Deref(ptr *float64, def float64) float64 { if ptr != nil { return *ptr } return def } + +var Float64PtrDerefOr = Float64Deref // for back-compat + +// Float64Equal returns true if both arguments are nil or both arguments +// dereference to the same value. +func Float64Equal(a, b *float64) bool { + if (a == nil) != (b == nil) { + return false + } + if a == nil { + return true + } + return *a == *b +} diff --git a/vendor/k8s.io/utils/trace/trace.go b/vendor/k8s.io/utils/trace/trace.go index 2af4967ca0..3023d1066e 100644 --- a/vendor/k8s.io/utils/trace/trace.go +++ b/vendor/k8s.io/utils/trace/trace.go @@ -56,7 +56,7 @@ func writeTraceItemSummary(b *bytes.Buffer, msg string, totalTime time.Duration, b.WriteString(" ") } - b.WriteString(fmt.Sprintf("%vms (%v)", durationToMilliseconds(totalTime), startTime.Format("15:04:00.000"))) + b.WriteString(fmt.Sprintf("%vms (%v)", durationToMilliseconds(totalTime), startTime.Format("15:04:05.000"))) } func durationToMilliseconds(timeDuration time.Duration) int64 { diff --git a/vendor/modules.txt b/vendor/modules.txt index 4dd0e6a3c0..7ae14585ea 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -8,7 +8,7 @@ github.com/Azure/go-ansiterm github.com/Azure/go-ansiterm/winterm # github.com/Azure/go-autorest v14.2.0+incompatible => github.com/Azure/go-autorest v14.2.0+incompatible github.com/Azure/go-autorest -# github.com/Azure/go-autorest/autorest v0.11.1 +# github.com/Azure/go-autorest/autorest v0.11.12 github.com/Azure/go-autorest/autorest github.com/Azure/go-autorest/autorest/azure # github.com/Azure/go-autorest/autorest/adal v0.9.5 @@ -26,7 +26,7 @@ github.com/Microsoft/go-winio github.com/Microsoft/go-winio/pkg/guid # github.com/Microsoft/hcsshim v0.8.9 github.com/Microsoft/hcsshim/osversion -# github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 +# github.com/NYTimes/gziphandler v1.1.1 github.com/NYTimes/gziphandler # github.com/PuerkitoBio/purell v1.1.1 github.com/PuerkitoBio/purell @@ -203,13 +203,10 @@ github.com/docker/go-metrics github.com/docker/go-units # github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 ## explicit -# github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 -github.com/docker/spdystream -github.com/docker/spdystream/spdy # github.com/emicklei/go-restful v2.9.5+incompatible github.com/emicklei/go-restful github.com/emicklei/go-restful/log -# github.com/evanphx/json-patch v4.9.0+incompatible => github.com/tilt-dev/json-patch/v4 v4.8.1 +# github.com/evanphx/json-patch v4.11.0+incompatible => github.com/tilt-dev/json-patch/v4 v4.8.1 github.com/evanphx/json-patch # github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d github.com/exponent-io/jsonpath @@ -253,7 +250,7 @@ github.com/go-openapi/swag ## explicit # github.com/gofrs/uuid v3.2.0+incompatible ## explicit -# github.com/gogo/protobuf v1.3.1 +# github.com/gogo/protobuf v1.3.2 ## explicit github.com/gogo/protobuf/gogoproto github.com/gogo/protobuf/proto @@ -293,7 +290,7 @@ github.com/google/uuid # github.com/google/wire v0.3.0 ## explicit github.com/google/wire -# github.com/googleapis/gnostic v0.5.1 => github.com/googleapis/gnostic v0.4.1 +# github.com/googleapis/gnostic v0.5.5 => github.com/googleapis/gnostic v0.4.1 github.com/googleapis/gnostic/compiler github.com/googleapis/gnostic/extensions github.com/googleapis/gnostic/openapiv2 @@ -323,7 +320,7 @@ github.com/grpc-ecosystem/grpc-opentracing/go/otgrpc # github.com/hashicorp/golang-lru v0.5.4 github.com/hashicorp/golang-lru github.com/hashicorp/golang-lru/simplelru -# github.com/imdario/mergo v0.3.10 +# github.com/imdario/mergo v0.3.12 github.com/imdario/mergo # github.com/inconshreveable/mousetrap v1.0.0 github.com/inconshreveable/mousetrap @@ -334,7 +331,7 @@ github.com/inconshreveable/mousetrap github.com/jonboulle/clockwork # github.com/josharian/intern v1.0.0 github.com/josharian/intern -# github.com/json-iterator/go v1.1.10 +# github.com/json-iterator/go v1.1.11 ## explicit github.com/json-iterator/go github.com/json-iterator/go/extra @@ -357,7 +354,7 @@ github.com/mattn/go-colorable # github.com/mattn/go-isatty v0.0.12 ## explicit github.com/mattn/go-isatty -# github.com/mattn/go-runewidth v0.0.6 +# github.com/mattn/go-runewidth v0.0.7 github.com/mattn/go-runewidth # github.com/mattn/go-tty v0.0.3 ## explicit @@ -403,11 +400,14 @@ github.com/moby/buildkit/util/leaseutil github.com/moby/buildkit/util/progress github.com/moby/buildkit/util/stack github.com/moby/buildkit/util/system +# github.com/moby/spdystream v0.2.0 +github.com/moby/spdystream +github.com/moby/spdystream/spdy # github.com/moby/sys/mount v0.1.0 github.com/moby/sys/mount # github.com/moby/sys/mountinfo v0.1.3 github.com/moby/sys/mountinfo -# github.com/moby/term v0.0.0-20200312100748-672ec06f55cd +# github.com/moby/term v0.0.0-20201216013528-df9cb8a40635 github.com/moby/term github.com/moby/term/windows # github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd @@ -415,6 +415,8 @@ github.com/modern-go/concurrent # github.com/modern-go/reflect2 v1.0.1 ## explicit github.com/modern-go/reflect2 +# github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 +github.com/monochromegane/go-gitignore # github.com/morikuni/aec v1.0.0 github.com/morikuni/aec # github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 @@ -442,7 +444,7 @@ github.com/pkg/browser github.com/pkg/errors # github.com/pmezard/go-difflib v1.0.0 github.com/pmezard/go-difflib/difflib -# github.com/prometheus/client_golang v1.7.1 +# github.com/prometheus/client_golang v1.11.0 github.com/prometheus/client_golang/prometheus github.com/prometheus/client_golang/prometheus/internal github.com/prometheus/client_golang/prometheus/promhttp @@ -450,11 +452,11 @@ github.com/prometheus/client_golang/prometheus/testutil github.com/prometheus/client_golang/prometheus/testutil/promlint # github.com/prometheus/client_model v0.2.0 github.com/prometheus/client_model/go -# github.com/prometheus/common v0.10.0 +# github.com/prometheus/common v0.26.0 github.com/prometheus/common/expfmt github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg github.com/prometheus/common/model -# github.com/prometheus/procfs v0.2.0 +# github.com/prometheus/procfs v0.6.0 github.com/prometheus/procfs github.com/prometheus/procfs/internal/fs github.com/prometheus/procfs/internal/util @@ -520,7 +522,7 @@ github.com/tilt-dev/localregistry-go ## explicit github.com/tilt-dev/probe/pkg/probe github.com/tilt-dev/probe/pkg/prober -# github.com/tilt-dev/tilt-apiserver v0.3.3 +# github.com/tilt-dev/tilt-apiserver v0.4.0 ## explicit github.com/tilt-dev/tilt-apiserver/pkg/server/apiserver github.com/tilt-dev/tilt-apiserver/pkg/server/builder @@ -548,6 +550,8 @@ github.com/whilp/git-urls # github.com/wojas/genericr v0.2.0 ## explicit github.com/wojas/genericr +# github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca +github.com/xlab/treeprint # go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489 go.etcd.io/etcd/auth/authpb go.etcd.io/etcd/clientv3 @@ -605,18 +609,18 @@ go.starlark.net/resolve go.starlark.net/starlark go.starlark.net/starlarkstruct go.starlark.net/syntax -# go.uber.org/atomic v1.6.0 +# go.uber.org/atomic v1.7.0 go.uber.org/atomic -# go.uber.org/multierr v1.5.0 +# go.uber.org/multierr v1.6.0 go.uber.org/multierr -# go.uber.org/zap v1.15.0 +# go.uber.org/zap v1.17.0 go.uber.org/zap go.uber.org/zap/buffer go.uber.org/zap/internal/bufferpool go.uber.org/zap/internal/color go.uber.org/zap/internal/exit go.uber.org/zap/zapcore -# golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0 => golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 +# golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 => golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 golang.org/x/crypto/chacha20 golang.org/x/crypto/curve25519 golang.org/x/crypto/ed25519 @@ -629,11 +633,10 @@ golang.org/x/crypto/poly1305 golang.org/x/crypto/ssh golang.org/x/crypto/ssh/agent golang.org/x/crypto/ssh/terminal -# golang.org/x/mod v0.3.0 +# golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449 golang.org/x/mod/module golang.org/x/mod/semver -# golang.org/x/net v0.0.0-20210119194325-5f4716e94777 -## explicit +# golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 golang.org/x/net/context golang.org/x/net/context/ctxhttp golang.org/x/net/http/httpguts @@ -651,19 +654,22 @@ golang.org/x/oauth2/google golang.org/x/oauth2/internal golang.org/x/oauth2/jws golang.org/x/oauth2/jwt -# golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 +# golang.org/x/sync v0.0.0-20201207232520-09787c993a3a ## explicit golang.org/x/sync/errgroup golang.org/x/sync/semaphore golang.org/x/sync/singleflight -# golang.org/x/sys v0.0.0-20210415045647-66c3f260301c => golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 +# golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40 golang.org/x/sys/cpu +golang.org/x/sys/execabs golang.org/x/sys/internal/unsafeheader +golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry -# golang.org/x/text v0.3.5 -## explicit +# golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d +golang.org/x/term +# golang.org/x/text v0.3.6 golang.org/x/text/encoding golang.org/x/text/encoding/internal golang.org/x/text/encoding/internal/identifier @@ -675,9 +681,9 @@ golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm golang.org/x/text/width -# golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e +# golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba golang.org/x/time/rate -# golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0 +# golang.org/x/tools v0.1.0 golang.org/x/tools/go/ast/astutil golang.org/x/tools/imports golang.org/x/tools/internal/event @@ -691,11 +697,11 @@ golang.org/x/tools/internal/imports # golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 golang.org/x/xerrors golang.org/x/xerrors/internal -# gomodules.xyz/jsonpatch/v2 v2.1.0 +# gomodules.xyz/jsonpatch/v2 v2.2.0 gomodules.xyz/jsonpatch/v2 # google.golang.org/api v0.25.0 google.golang.org/api/support/bundler -# google.golang.org/appengine v1.6.6 +# google.golang.org/appengine v1.6.7 google.golang.org/appengine google.golang.org/appengine/internal google.golang.org/appengine/internal/app_identity @@ -813,7 +819,7 @@ gopkg.in/yaml.v3 ## explicit helm.sh/helm/v3/internal/third_party/k8s.io/kubernetes/deployment/util helm.sh/helm/v3/pkg/kube -# k8s.io/api v0.20.2 +# k8s.io/api v0.21.1 ## explicit k8s.io/api/admission/v1 k8s.io/api/admission/v1beta1 @@ -832,13 +838,12 @@ k8s.io/api/autoscaling/v2beta1 k8s.io/api/autoscaling/v2beta2 k8s.io/api/batch/v1 k8s.io/api/batch/v1beta1 -k8s.io/api/batch/v2alpha1 k8s.io/api/certificates/v1 k8s.io/api/certificates/v1beta1 k8s.io/api/coordination/v1 k8s.io/api/coordination/v1beta1 k8s.io/api/core/v1 -k8s.io/api/discovery/v1alpha1 +k8s.io/api/discovery/v1 k8s.io/api/discovery/v1beta1 k8s.io/api/events/v1 k8s.io/api/events/v1beta1 @@ -851,6 +856,7 @@ k8s.io/api/networking/v1beta1 k8s.io/api/node/v1 k8s.io/api/node/v1alpha1 k8s.io/api/node/v1beta1 +k8s.io/api/policy/v1 k8s.io/api/policy/v1beta1 k8s.io/api/rbac/v1 k8s.io/api/rbac/v1alpha1 @@ -861,11 +867,11 @@ k8s.io/api/scheduling/v1beta1 k8s.io/api/storage/v1 k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1beta1 -# k8s.io/apiextensions-apiserver v0.20.1 +# k8s.io/apiextensions-apiserver v0.21.1 k8s.io/apiextensions-apiserver/pkg/apis/apiextensions k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1 k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1 -# k8s.io/apimachinery v0.20.2 => github.com/tilt-dev/apimachinery v0.20.2-tilt-20210505 +# k8s.io/apimachinery v0.21.1 => github.com/tilt-dev/apimachinery v0.21.1-tilt-20210608 ## explicit k8s.io/apimachinery/pkg/api/equality k8s.io/apimachinery/pkg/api/errors @@ -907,6 +913,7 @@ k8s.io/apimachinery/pkg/util/httpstream/spdy k8s.io/apimachinery/pkg/util/intstr k8s.io/apimachinery/pkg/util/json k8s.io/apimachinery/pkg/util/jsonmergepatch +k8s.io/apimachinery/pkg/util/managedfields k8s.io/apimachinery/pkg/util/mergepatch k8s.io/apimachinery/pkg/util/naming k8s.io/apimachinery/pkg/util/net @@ -926,7 +933,7 @@ k8s.io/apimachinery/pkg/watch k8s.io/apimachinery/third_party/forked/golang/json k8s.io/apimachinery/third_party/forked/golang/netutil k8s.io/apimachinery/third_party/forked/golang/reflect -# k8s.io/apiserver v0.20.2 +# k8s.io/apiserver v0.21.1 ## explicit k8s.io/apiserver/pkg/admission k8s.io/apiserver/pkg/admission/configuration @@ -1034,22 +1041,54 @@ k8s.io/apiserver/pkg/util/wsstream k8s.io/apiserver/pkg/warning k8s.io/apiserver/plugin/pkg/authenticator/token/webhook k8s.io/apiserver/plugin/pkg/authorizer/webhook -# k8s.io/cli-runtime v0.20.2 +# k8s.io/cli-runtime v0.21.1 ## explicit k8s.io/cli-runtime/pkg/genericclioptions -k8s.io/cli-runtime/pkg/kustomize -k8s.io/cli-runtime/pkg/kustomize/k8sdeps -k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret -k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct -k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kv -k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer -k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/hash -k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch -k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator k8s.io/cli-runtime/pkg/printers k8s.io/cli-runtime/pkg/resource -# k8s.io/client-go v0.20.2 -## explicit +# k8s.io/client-go v0.21.1 +## explicit +k8s.io/client-go/applyconfigurations/admissionregistration/v1 +k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1 +k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1 +k8s.io/client-go/applyconfigurations/apps/v1 +k8s.io/client-go/applyconfigurations/apps/v1beta1 +k8s.io/client-go/applyconfigurations/apps/v1beta2 +k8s.io/client-go/applyconfigurations/autoscaling/v1 +k8s.io/client-go/applyconfigurations/autoscaling/v2beta1 +k8s.io/client-go/applyconfigurations/autoscaling/v2beta2 +k8s.io/client-go/applyconfigurations/batch/v1 +k8s.io/client-go/applyconfigurations/batch/v1beta1 +k8s.io/client-go/applyconfigurations/certificates/v1 +k8s.io/client-go/applyconfigurations/certificates/v1beta1 +k8s.io/client-go/applyconfigurations/coordination/v1 +k8s.io/client-go/applyconfigurations/coordination/v1beta1 +k8s.io/client-go/applyconfigurations/core/v1 +k8s.io/client-go/applyconfigurations/discovery/v1 +k8s.io/client-go/applyconfigurations/discovery/v1beta1 +k8s.io/client-go/applyconfigurations/events/v1 +k8s.io/client-go/applyconfigurations/events/v1beta1 +k8s.io/client-go/applyconfigurations/extensions/v1beta1 +k8s.io/client-go/applyconfigurations/flowcontrol/v1alpha1 +k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1 +k8s.io/client-go/applyconfigurations/internal +k8s.io/client-go/applyconfigurations/meta/v1 +k8s.io/client-go/applyconfigurations/networking/v1 +k8s.io/client-go/applyconfigurations/networking/v1beta1 +k8s.io/client-go/applyconfigurations/node/v1 +k8s.io/client-go/applyconfigurations/node/v1alpha1 +k8s.io/client-go/applyconfigurations/node/v1beta1 +k8s.io/client-go/applyconfigurations/policy/v1 +k8s.io/client-go/applyconfigurations/policy/v1beta1 +k8s.io/client-go/applyconfigurations/rbac/v1 +k8s.io/client-go/applyconfigurations/rbac/v1alpha1 +k8s.io/client-go/applyconfigurations/rbac/v1beta1 +k8s.io/client-go/applyconfigurations/scheduling/v1 +k8s.io/client-go/applyconfigurations/scheduling/v1alpha1 +k8s.io/client-go/applyconfigurations/scheduling/v1beta1 +k8s.io/client-go/applyconfigurations/storage/v1 +k8s.io/client-go/applyconfigurations/storage/v1alpha1 +k8s.io/client-go/applyconfigurations/storage/v1beta1 k8s.io/client-go/discovery k8s.io/client-go/discovery/cached/disk k8s.io/client-go/discovery/cached/memory @@ -1073,7 +1112,6 @@ k8s.io/client-go/informers/autoscaling/v2beta2 k8s.io/client-go/informers/batch k8s.io/client-go/informers/batch/v1 k8s.io/client-go/informers/batch/v1beta1 -k8s.io/client-go/informers/batch/v2alpha1 k8s.io/client-go/informers/certificates k8s.io/client-go/informers/certificates/v1 k8s.io/client-go/informers/certificates/v1beta1 @@ -1083,7 +1121,7 @@ k8s.io/client-go/informers/coordination/v1beta1 k8s.io/client-go/informers/core k8s.io/client-go/informers/core/v1 k8s.io/client-go/informers/discovery -k8s.io/client-go/informers/discovery/v1alpha1 +k8s.io/client-go/informers/discovery/v1 k8s.io/client-go/informers/discovery/v1beta1 k8s.io/client-go/informers/events k8s.io/client-go/informers/events/v1 @@ -1102,6 +1140,7 @@ k8s.io/client-go/informers/node/v1 k8s.io/client-go/informers/node/v1alpha1 k8s.io/client-go/informers/node/v1beta1 k8s.io/client-go/informers/policy +k8s.io/client-go/informers/policy/v1 k8s.io/client-go/informers/policy/v1beta1 k8s.io/client-go/informers/rbac k8s.io/client-go/informers/rbac/v1 @@ -1148,8 +1187,6 @@ k8s.io/client-go/kubernetes/typed/batch/v1 k8s.io/client-go/kubernetes/typed/batch/v1/fake k8s.io/client-go/kubernetes/typed/batch/v1beta1 k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake -k8s.io/client-go/kubernetes/typed/batch/v2alpha1 -k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake k8s.io/client-go/kubernetes/typed/certificates/v1 k8s.io/client-go/kubernetes/typed/certificates/v1/fake k8s.io/client-go/kubernetes/typed/certificates/v1beta1 @@ -1160,8 +1197,8 @@ k8s.io/client-go/kubernetes/typed/coordination/v1beta1 k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake k8s.io/client-go/kubernetes/typed/core/v1 k8s.io/client-go/kubernetes/typed/core/v1/fake -k8s.io/client-go/kubernetes/typed/discovery/v1alpha1 -k8s.io/client-go/kubernetes/typed/discovery/v1alpha1/fake +k8s.io/client-go/kubernetes/typed/discovery/v1 +k8s.io/client-go/kubernetes/typed/discovery/v1/fake k8s.io/client-go/kubernetes/typed/discovery/v1beta1 k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake k8s.io/client-go/kubernetes/typed/events/v1 @@ -1184,6 +1221,8 @@ k8s.io/client-go/kubernetes/typed/node/v1alpha1 k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake k8s.io/client-go/kubernetes/typed/node/v1beta1 k8s.io/client-go/kubernetes/typed/node/v1beta1/fake +k8s.io/client-go/kubernetes/typed/policy/v1 +k8s.io/client-go/kubernetes/typed/policy/v1/fake k8s.io/client-go/kubernetes/typed/policy/v1beta1 k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake k8s.io/client-go/kubernetes/typed/rbac/v1 @@ -1215,13 +1254,12 @@ k8s.io/client-go/listers/autoscaling/v2beta1 k8s.io/client-go/listers/autoscaling/v2beta2 k8s.io/client-go/listers/batch/v1 k8s.io/client-go/listers/batch/v1beta1 -k8s.io/client-go/listers/batch/v2alpha1 k8s.io/client-go/listers/certificates/v1 k8s.io/client-go/listers/certificates/v1beta1 k8s.io/client-go/listers/coordination/v1 k8s.io/client-go/listers/coordination/v1beta1 k8s.io/client-go/listers/core/v1 -k8s.io/client-go/listers/discovery/v1alpha1 +k8s.io/client-go/listers/discovery/v1 k8s.io/client-go/listers/discovery/v1beta1 k8s.io/client-go/listers/events/v1 k8s.io/client-go/listers/events/v1beta1 @@ -1233,6 +1271,7 @@ k8s.io/client-go/listers/networking/v1beta1 k8s.io/client-go/listers/node/v1 k8s.io/client-go/listers/node/v1alpha1 k8s.io/client-go/listers/node/v1beta1 +k8s.io/client-go/listers/policy/v1 k8s.io/client-go/listers/policy/v1beta1 k8s.io/client-go/listers/rbac/v1 k8s.io/client-go/listers/rbac/v1alpha1 @@ -1297,7 +1336,7 @@ k8s.io/client-go/util/homedir k8s.io/client-go/util/jsonpath k8s.io/client-go/util/keyutil k8s.io/client-go/util/workqueue -# k8s.io/code-generator v0.20.2 +# k8s.io/code-generator v0.21.1 ## explicit k8s.io/code-generator k8s.io/code-generator/cmd/client-gen @@ -1332,7 +1371,7 @@ k8s.io/code-generator/cmd/set-gen k8s.io/code-generator/pkg/namer k8s.io/code-generator/pkg/util k8s.io/code-generator/third_party/forked/golang/reflect -# k8s.io/component-base v0.20.2 +# k8s.io/component-base v0.21.1 k8s.io/component-base/cli/flag k8s.io/component-base/config k8s.io/component-base/config/v1alpha1 @@ -1346,7 +1385,7 @@ k8s.io/component-base/metrics/legacyregistry k8s.io/component-base/metrics/prometheus/workqueue k8s.io/component-base/metrics/testutil k8s.io/component-base/version -# k8s.io/gengo v0.0.0-20201113003025-83324d819ded +# k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027 k8s.io/gengo/args k8s.io/gengo/examples/deepcopy-gen/generators k8s.io/gengo/examples/defaulter-gen/generators @@ -1360,7 +1399,7 @@ k8s.io/gengo/types # k8s.io/klog/v2 v2.8.0 ## explicit k8s.io/klog/v2 -# k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd +# k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 ## explicit k8s.io/kube-openapi/cmd/openapi-gen/args k8s.io/kube-openapi/pkg/builder @@ -1373,7 +1412,7 @@ k8s.io/kube-openapi/pkg/util k8s.io/kube-openapi/pkg/util/proto k8s.io/kube-openapi/pkg/util/proto/validation k8s.io/kube-openapi/pkg/util/sets -# k8s.io/kubectl v0.20.2 +# k8s.io/kubectl v0.21.1 ## explicit k8s.io/kubectl/pkg/cmd/apiresources k8s.io/kubectl/pkg/cmd/apply @@ -1387,7 +1426,6 @@ k8s.io/kubectl/pkg/cmd/util/editor/crlf k8s.io/kubectl/pkg/cmd/wait k8s.io/kubectl/pkg/describe k8s.io/kubectl/pkg/generate -k8s.io/kubectl/pkg/generate/versioned k8s.io/kubectl/pkg/generated k8s.io/kubectl/pkg/rawhttp k8s.io/kubectl/pkg/scheme @@ -1409,7 +1447,7 @@ k8s.io/kubectl/pkg/util/storage k8s.io/kubectl/pkg/util/templates k8s.io/kubectl/pkg/util/term k8s.io/kubectl/pkg/validation -# k8s.io/utils v0.0.0-20210111153108-fddb29f9d009 +# k8s.io/utils v0.0.0-20210527160623-6fdb442a123b k8s.io/utils/buffer k8s.io/utils/exec k8s.io/utils/integer @@ -1417,15 +1455,16 @@ k8s.io/utils/net k8s.io/utils/path k8s.io/utils/pointer k8s.io/utils/trace -# sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14 +# sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client -# sigs.k8s.io/controller-runtime v0.8.2 +# sigs.k8s.io/controller-runtime v0.9.0 ## explicit sigs.k8s.io/controller-runtime sigs.k8s.io/controller-runtime/pkg/builder sigs.k8s.io/controller-runtime/pkg/cache sigs.k8s.io/controller-runtime/pkg/cache/internal +sigs.k8s.io/controller-runtime/pkg/certwatcher sigs.k8s.io/controller-runtime/pkg/client sigs.k8s.io/controller-runtime/pkg/client/apiutil sigs.k8s.io/controller-runtime/pkg/client/config @@ -1460,47 +1499,70 @@ sigs.k8s.io/controller-runtime/pkg/source/internal sigs.k8s.io/controller-runtime/pkg/webhook sigs.k8s.io/controller-runtime/pkg/webhook/admission sigs.k8s.io/controller-runtime/pkg/webhook/conversion -sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics -# sigs.k8s.io/kustomize v2.0.3+incompatible -sigs.k8s.io/kustomize/pkg/commands/build -sigs.k8s.io/kustomize/pkg/constants -sigs.k8s.io/kustomize/pkg/expansion -sigs.k8s.io/kustomize/pkg/factory -sigs.k8s.io/kustomize/pkg/fs -sigs.k8s.io/kustomize/pkg/git -sigs.k8s.io/kustomize/pkg/gvk -sigs.k8s.io/kustomize/pkg/ifc -sigs.k8s.io/kustomize/pkg/ifc/transformer -sigs.k8s.io/kustomize/pkg/image -sigs.k8s.io/kustomize/pkg/internal/error -sigs.k8s.io/kustomize/pkg/loader -sigs.k8s.io/kustomize/pkg/patch -sigs.k8s.io/kustomize/pkg/patch/transformer -sigs.k8s.io/kustomize/pkg/resid -sigs.k8s.io/kustomize/pkg/resmap -sigs.k8s.io/kustomize/pkg/resource -sigs.k8s.io/kustomize/pkg/target -sigs.k8s.io/kustomize/pkg/transformers -sigs.k8s.io/kustomize/pkg/transformers/config -sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig -sigs.k8s.io/kustomize/pkg/types -# sigs.k8s.io/kustomize/api v0.7.2 +# sigs.k8s.io/kustomize/api v0.8.8 ## explicit +sigs.k8s.io/kustomize/api/builtins sigs.k8s.io/kustomize/api/filesys +sigs.k8s.io/kustomize/api/filters/annotations +sigs.k8s.io/kustomize/api/filters/fieldspec +sigs.k8s.io/kustomize/api/filters/filtersutil +sigs.k8s.io/kustomize/api/filters/fsslice +sigs.k8s.io/kustomize/api/filters/imagetag +sigs.k8s.io/kustomize/api/filters/labels +sigs.k8s.io/kustomize/api/filters/nameref +sigs.k8s.io/kustomize/api/filters/namespace +sigs.k8s.io/kustomize/api/filters/patchjson6902 +sigs.k8s.io/kustomize/api/filters/patchstrategicmerge +sigs.k8s.io/kustomize/api/filters/prefixsuffix +sigs.k8s.io/kustomize/api/filters/refvar +sigs.k8s.io/kustomize/api/filters/replicacount +sigs.k8s.io/kustomize/api/filters/valueadd +sigs.k8s.io/kustomize/api/hasher +sigs.k8s.io/kustomize/api/ifc +sigs.k8s.io/kustomize/api/image +sigs.k8s.io/kustomize/api/internal/accumulator +sigs.k8s.io/kustomize/api/internal/generators +sigs.k8s.io/kustomize/api/internal/git +sigs.k8s.io/kustomize/api/internal/kusterr +sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig +sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers +sigs.k8s.io/kustomize/api/internal/plugins/execplugin +sigs.k8s.io/kustomize/api/internal/plugins/fnplugin +sigs.k8s.io/kustomize/api/internal/plugins/loader +sigs.k8s.io/kustomize/api/internal/plugins/utils +sigs.k8s.io/kustomize/api/internal/target +sigs.k8s.io/kustomize/api/internal/utils +sigs.k8s.io/kustomize/api/internal/validate sigs.k8s.io/kustomize/api/konfig +sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts +sigs.k8s.io/kustomize/api/krusty +sigs.k8s.io/kustomize/api/kv +sigs.k8s.io/kustomize/api/loader +sigs.k8s.io/kustomize/api/provenance +sigs.k8s.io/kustomize/api/provider sigs.k8s.io/kustomize/api/resid +sigs.k8s.io/kustomize/api/resmap +sigs.k8s.io/kustomize/api/resource sigs.k8s.io/kustomize/api/types -# sigs.k8s.io/kustomize/kyaml v0.10.6 +# sigs.k8s.io/kustomize/kyaml v0.10.17 +sigs.k8s.io/kustomize/kyaml/comments sigs.k8s.io/kustomize/kyaml/errors +sigs.k8s.io/kustomize/kyaml/ext +sigs.k8s.io/kustomize/kyaml/fieldmeta +sigs.k8s.io/kustomize/kyaml/fn/runtime/container +sigs.k8s.io/kustomize/kyaml/fn/runtime/exec +sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil +sigs.k8s.io/kustomize/kyaml/fn/runtime/starlark +sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util +sigs.k8s.io/kustomize/kyaml/kio +sigs.k8s.io/kustomize/kyaml/kio/filters +sigs.k8s.io/kustomize/kyaml/kio/kioutil sigs.k8s.io/kustomize/kyaml/openapi sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi -sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1184 -sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1186 -sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1188 -sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1190 -sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1191 +sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1204 sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi +sigs.k8s.io/kustomize/kyaml/runfn sigs.k8s.io/kustomize/kyaml/sets sigs.k8s.io/kustomize/kyaml/yaml sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels @@ -1509,7 +1571,11 @@ sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/errors sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field -# sigs.k8s.io/structured-merge-diff/v4 v4.0.2 +sigs.k8s.io/kustomize/kyaml/yaml/merge2 +sigs.k8s.io/kustomize/kyaml/yaml/merge3 +sigs.k8s.io/kustomize/kyaml/yaml/schema +sigs.k8s.io/kustomize/kyaml/yaml/walk +# sigs.k8s.io/structured-merge-diff/v4 v4.1.0 sigs.k8s.io/structured-merge-diff/v4/fieldpath sigs.k8s.io/structured-merge-diff/v4/merge sigs.k8s.io/structured-merge-diff/v4/schema @@ -1528,5 +1594,4 @@ vbom.ml/util/sortorder # github.com/pkg/browser => github.com/tilt-dev/browser v0.0.1 # go.opencensus.io => github.com/tilt-dev/opencensus-go v0.22.5-0.20200904175236-275b1754f353 # golang.org/x/crypto => golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 -# golang.org/x/sys => golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 -# k8s.io/apimachinery => github.com/tilt-dev/apimachinery v0.20.2-tilt-20210505 +# k8s.io/apimachinery => github.com/tilt-dev/apimachinery v0.21.1-tilt-20210608 diff --git a/vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client/client.go b/vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client/client.go index 3ccec331a1..1d9a495002 100644 --- a/vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client/client.go +++ b/vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client/client.go @@ -115,6 +115,12 @@ func (t *grpcTunnel) serve(c clientConn) { connid: resp.ConnectID, } } + + if resp.Error != "" { + // On dial error, avoid leaking serve goroutine. + return + } + case client.PacketType_DATA: resp := pkt.GetData() // TODO: flow control diff --git a/vendor/sigs.k8s.io/controller-runtime/.golangci.yml b/vendor/sigs.k8s.io/controller-runtime/.golangci.yml index 97d52e4ea4..5aa700429d 100644 --- a/vendor/sigs.k8s.io/controller-runtime/.golangci.yml +++ b/vendor/sigs.k8s.io/controller-runtime/.golangci.yml @@ -24,12 +24,13 @@ linters: - deadcode - errcheck - varcheck - - goconst - unparam - ineffassign - nakedret - gocyclo - - lll - dupl - goimports - golint + # disabled: + # - goconst is overly aggressive + # - lll generally just complains about flag help & error strings that are human-readable diff --git a/vendor/sigs.k8s.io/controller-runtime/Makefile b/vendor/sigs.k8s.io/controller-runtime/Makefile index 139c6b177b..8541f2a2fc 100644 --- a/vendor/sigs.k8s.io/controller-runtime/Makefile +++ b/vendor/sigs.k8s.io/controller-runtime/Makefile @@ -54,9 +54,13 @@ help: ## Display this help ## -------------------------------------- .PHONY: test -test: ## Run the script check-everything.sh which will check all. +test: test-tools ## Run the script check-everything.sh which will check all. TRACE=1 ./hack/check-everything.sh +.PHONY: test-tools +test-tools: ## tests the tools codebase (setup-envtest) + cd tools/setup-envtest && go test ./... + ## -------------------------------------- ## Binaries ## -------------------------------------- @@ -74,10 +78,17 @@ $(CONTROLLER_GEN): $(TOOLS_DIR)/go.mod # Build controller-gen from tools folder. ## Linting ## -------------------------------------- -.PHONY: lint -lint: $(GOLANGCI_LINT) ## Lint codebase. +.PHONY: lint-libs +lint-libs: $(GOLANGCI_LINT) ## Lint library codebase. $(GOLANGCI_LINT) run -v +.PHONY: lint-tools +lint-tools: $(GOLANGCI_LINT) ## Lint tools codebase. + cd tools/setup-envtest && $(GOLANGCI_LINT) run -v + +.PHONY: lint +lint: lint-libs lint-tools + ## -------------------------------------- ## Generate ## -------------------------------------- diff --git a/vendor/sigs.k8s.io/controller-runtime/README.md b/vendor/sigs.k8s.io/controller-runtime/README.md index 674d10bcf0..e4cbabb00a 100644 --- a/vendor/sigs.k8s.io/controller-runtime/README.md +++ b/vendor/sigs.k8s.io/controller-runtime/README.md @@ -11,10 +11,10 @@ see how it can be used. Documentation: -- [Package overview](https://godoc.org/github.com/kubernetes-sigs/controller-runtime/pkg) -- [Basic controller using builder](https://godoc.org/github.com/kubernetes-sigs/controller-runtime/pkg/builder#example-Builder) -- [Creating a manager](https://godoc.org/github.com/kubernetes-sigs/controller-runtime/pkg/manager#example-New) -- [Creating a controller](https://godoc.org/github.com/kubernetes-sigs/controller-runtime/pkg/controller#example-New) +- [Package overview](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg) +- [Basic controller using builder](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/builder#example-Builder) +- [Creating a manager](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/manager#example-New) +- [Creating a controller](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/controller#example-New) - [Examples](https://github.com/kubernetes-sigs/controller-runtime/blob/master/examples) - [Designs](https://github.com/kubernetes-sigs/controller-runtime/blob/master/designs) @@ -63,4 +63,3 @@ Before starting any work, please either comment on an existing issue, or file a ## Code of conduct Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md). - diff --git a/vendor/sigs.k8s.io/controller-runtime/go.mod b/vendor/sigs.k8s.io/controller-runtime/go.mod index 9b98c012b9..2765dfd476 100644 --- a/vendor/sigs.k8s.io/controller-runtime/go.mod +++ b/vendor/sigs.k8s.io/controller-runtime/go.mod @@ -1,29 +1,29 @@ module sigs.k8s.io/controller-runtime -go 1.15 +go 1.16 require ( - github.com/evanphx/json-patch v4.9.0+incompatible + github.com/evanphx/json-patch v4.11.0+incompatible github.com/fsnotify/fsnotify v1.4.9 - github.com/go-logr/logr v0.3.0 - github.com/go-logr/zapr v0.2.0 - github.com/googleapis/gnostic v0.5.1 // indirect + github.com/go-logr/logr v0.4.0 + github.com/go-logr/zapr v0.4.0 + github.com/googleapis/gnostic v0.5.5 // indirect github.com/hashicorp/golang-lru v0.5.4 // indirect - github.com/imdario/mergo v0.3.10 // indirect - github.com/onsi/ginkgo v1.14.1 - github.com/onsi/gomega v1.10.2 - github.com/prometheus/client_golang v1.7.1 + github.com/imdario/mergo v0.3.12 // indirect + github.com/onsi/ginkgo v1.16.4 + github.com/onsi/gomega v1.13.0 + github.com/prometheus/client_golang v1.11.0 github.com/prometheus/client_model v0.2.0 go.uber.org/goleak v1.1.10 - go.uber.org/zap v1.15.0 - golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e - gomodules.xyz/jsonpatch/v2 v2.1.0 - google.golang.org/appengine v1.6.6 // indirect - k8s.io/api v0.20.2 - k8s.io/apiextensions-apiserver v0.20.1 - k8s.io/apimachinery v0.20.2 - k8s.io/client-go v0.20.2 - k8s.io/component-base v0.20.2 - k8s.io/utils v0.0.0-20210111153108-fddb29f9d009 + go.uber.org/zap v1.17.0 + golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba + gomodules.xyz/jsonpatch/v2 v2.2.0 + google.golang.org/appengine v1.6.7 // indirect + k8s.io/api v0.21.1 + k8s.io/apiextensions-apiserver v0.21.1 + k8s.io/apimachinery v0.21.1 + k8s.io/client-go v0.21.1 + k8s.io/component-base v0.21.1 + k8s.io/utils v0.0.0-20210527160623-6fdb442a123b sigs.k8s.io/yaml v1.2.0 ) diff --git a/vendor/sigs.k8s.io/controller-runtime/go.sum b/vendor/sigs.k8s.io/controller-runtime/go.sum index 42ba9a2d74..f898b31ade 100644 --- a/vendor/sigs.k8s.io/controller-runtime/go.sum +++ b/vendor/sigs.k8s.io/controller-runtime/go.sum @@ -25,33 +25,27 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= -github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= +github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 h1:lsxEuwrXEAokXB9qhlbKWPpo3KMLZQ5WB5WLQRW1uq0= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= @@ -59,7 +53,6 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= @@ -75,76 +68,71 @@ github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkE github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M= -github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= +github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v4.11.0+incompatible h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs= +github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v0.3.0 h1:q4c+kbcR0d5rSurhBR8dIgieOaYpXtsdTYfx22Cu6rs= -github.com/go-logr/logr v0.3.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/zapr v0.2.0 h1:v6Ji8yBW77pva6NkJKQdHLAJKrIJKRHz0RXwPqCHSR4= -github.com/go-logr/zapr v0.2.0/go.mod h1:qhKdvif7YF5GI9NWEpyxTSSBdGmzkNguibrdCNVPunU= +github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc= +github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/zapr v0.4.0 h1:uc1uML3hRYL9/ZZPdgHS/n8Nzo+eaYL/Efxkkamf7OM= +github.com/go-logr/zapr v0.4.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -164,20 +152,22 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -189,23 +179,20 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/googleapis/gnostic v0.5.1 h1:A8Yhf6EtqTv9RMsU6MQTyrtV1TjWlR6xU9BsZIwuTCM= -github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= +github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= +github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= @@ -234,43 +221,43 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.10 h1:6q5mVkdH/vYmqngx7kZQTjJ5HRsx+ImorDIEQ+beJgc= -github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= +github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= @@ -282,9 +269,9 @@ github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eI github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= +github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -292,28 +279,30 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1 h1:mFwc4LvZ0xpSvDZ3E+k8Yte0hLOMxXUlP+yXtJqkYfQ= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.1 h1:jMU0WaQrP0a/YAEq8eJmJKjBoMs+pClEr1vDMlM/Do4= -github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= +github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.2 h1:aY/nuoWlKJud2J6U0E3NWsjlg+0GtwXxgEqthRdzlcs= -github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak= +github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= @@ -328,8 +317,9 @@ github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prY github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -338,15 +328,16 @@ github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0 h1:iMAkS2TDoNWnKM+Kopnx/8tnEStIfpYA0ur0xQzzhMQ= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -357,6 +348,7 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeV github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -365,7 +357,6 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v1.1.1 h1:KfztREH0tPxJJ+geloSLaAkaPkr4ki2Er5quFV1TDo4= github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -380,45 +371,38 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489 h1:1JFLBqwIgdyHN1ZtgjTBwO+blA6gVOmZurpiMEsETKo= go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.8.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.15.0 h1:ZZCA22JRF2gQE5FoNmhmrf7jeJJ2uhqDUNRYKm8dvmM= -go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= +go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -426,10 +410,9 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0 h1:hb9wdF1z5waM+dSIICn1l0DkLVDT3hqhhQsDNUmHPRE= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -449,7 +432,6 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f h1:J5lckAjkw6qYlOZNj90mLYNTEKDvWeuc1yieZ8qUzUE= golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= @@ -461,8 +443,8 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -490,12 +472,14 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210224082022-3d97a244fca7/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 h1:DzZ89McO9/gWPsQXS/FVKAlG02ZjaQ6AlZRBimEYOd0= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6 h1:pE8b58s1HRDMi8RDc79m0HISf9D4TzseP40cEA6IGfs= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -504,8 +488,9 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -527,6 +512,7 @@ golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -538,29 +524,38 @@ golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= -golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40 h1:JWgyZ1qgdTaF3N3oxC+MdTV7qvEEgHo3otj+HB5CM7Q= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -578,8 +573,6 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -598,16 +591,18 @@ golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 h1:HHeAlu5H9b71C+Fx0K+1dGgVFN1DM1/wz4aoGOA5qS8= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gomodules.xyz/jsonpatch/v2 v2.1.0 h1:Phva6wqu+xR//Njw6iorylFFgn/z547tw5Ne3HZPQ+k= -gomodules.xyz/jsonpatch/v2 v2.1.0/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= +gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY= +gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -622,10 +617,9 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -645,7 +639,7 @@ google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a h1:pOwg4OoaRYScjmR4LlLgdtnyoHYTSAVhhqe5uPdpII8= +google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -653,7 +647,6 @@ google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -663,22 +656,23 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= @@ -690,62 +684,51 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= +gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3U= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.20.1 h1:ud1c3W3YNzGd6ABJlbFfKXBKXO+1KdGfcgGGNgFR03E= -k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= -k8s.io/api v0.20.2 h1:y/HR22XDZY3pniu9hIFDLpUCPq2w5eQ6aV/VFQ7uJMw= -k8s.io/api v0.20.2/go.mod h1:d7n6Ehyzx+S+cE3VhTGfVNNqtGc/oL9DCdYYahlurV8= -k8s.io/apiextensions-apiserver v0.20.1 h1:ZrXQeslal+6zKM/HjDXLzThlz/vPSxrfK3OqL8txgVQ= -k8s.io/apiextensions-apiserver v0.20.1/go.mod h1:ntnrZV+6a3dB504qwC5PN/Yg9PBiDNt1EVqbW2kORVk= -k8s.io/apimachinery v0.20.1 h1:LAhz8pKbgR8tUwn7boK+b2HZdt7MiTu2mkYtFMUjTRQ= -k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= -k8s.io/apimachinery v0.20.2 h1:hFx6Sbt1oG0n6DZ+g4bFt5f6BoMkOjKWsQFu077M3Vg= -k8s.io/apimachinery v0.20.2/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= -k8s.io/apiserver v0.20.1 h1:yEqdkxlnQbxi/3e74cp0X16h140fpvPrNnNRAJBDuBk= -k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= -k8s.io/client-go v0.20.1 h1:Qquik0xNFbK9aUG92pxHYsyfea5/RPO9o9bSywNor+M= -k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= -k8s.io/client-go v0.20.2 h1:uuf+iIAbfnCSw8IGAv/Rg0giM+2bOzHLOsbbrwrdhNQ= -k8s.io/client-go v0.20.2/go.mod h1:kH5brqWqp7HDxUFKoEgiI4v8G1xzbe9giaCenUWJzgE= -k8s.io/code-generator v0.20.1/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbWHJg= -k8s.io/component-base v0.20.1 h1:6OQaHr205NSl24t5wOF2IhdrlxZTWEZwuGlLvBgaeIg= -k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= -k8s.io/component-base v0.20.2 h1:LMmu5I0pLtwjpp5009KLuMGFqSc2S2isGw8t1hpYKLE= -k8s.io/component-base v0.20.2/go.mod h1:pzFtCiwe/ASD0iV7ySMu8SYVJjCapNM9bjvk7ptpKh0= +k8s.io/api v0.21.1 h1:94bbZ5NTjdINJEdzOkpS4vdPhkb1VFpTYC9zh43f75c= +k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s= +k8s.io/apiextensions-apiserver v0.21.1 h1:AA+cnsb6w7SZ1vD32Z+zdgfXdXY8X9uGX5bN6EoPEIo= +k8s.io/apiextensions-apiserver v0.21.1/go.mod h1:KESQFCGjqVcVsZ9g0xX5bacMjyX5emuWcS2arzdEouA= +k8s.io/apimachinery v0.21.1 h1:Q6XuHGlj2xc+hlMCvqyYfbv3H7SRGn2c8NycxJquDVs= +k8s.io/apimachinery v0.21.1/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= +k8s.io/apiserver v0.21.1/go.mod h1:nLLYZvMWn35glJ4/FZRhzLG/3MPxAaZTgV4FJZdr+tY= +k8s.io/client-go v0.21.1 h1:bhblWYLZKUu+pm50plvQF8WpY6TXdRRtcS/K9WauOj4= +k8s.io/client-go v0.21.1/go.mod h1:/kEw4RgW+3xnBGzvp9IWxKSNA+lXn3A7AuH3gdOAzLs= +k8s.io/code-generator v0.21.1/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= +k8s.io/component-base v0.21.1 h1:iLpj2btXbR326s/xNQWmPNGu0gaYSjzn7IN/5i28nQw= +k8s.io/component-base v0.21.1/go.mod h1:NgzFZ2qu4m1juby4TnrmpR8adRk6ka62YdH5DkIIyKA= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.4.0 h1:7+X0fUguPyrKEC4WjH8iGDg3laWgMo5tMnRTIGTTxGQ= -k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd h1:sOHNzJIkytDF6qadMNKhhDRpc6ODik8lVC6nOur7B2c= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= -k8s.io/utils v0.0.0-20201110183641-67b214c5f920 h1:CbnUZsM497iRC5QMVkHwyl8s2tB3g7yaSHkYPkpgelw= +k8s.io/klog/v2 v2.8.0 h1:Q3gmuM9hKEjefWFFYF0Mat+YyFJvsUyYuwyNNJ5C9Ts= +k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= +k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 h1:vEx13qjvaZ4yfObSSXW7BrMc/KQBBT/Jyee8XtLf4x0= +k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210111153108-fddb29f9d009 h1:0T5IaWHO3sJTEmCP6mUlBvMukxPKUQWqiI/YuiBNMiQ= -k8s.io/utils v0.0.0-20210111153108-fddb29f9d009/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210527160623-6fdb442a123b h1:MSqsVQ3pZvPGTqCjptfimO2WjG7A9un2zcpiHkA6M/s= +k8s.io/utils v0.0.0-20210527160623-6fdb442a123b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14 h1:TihvEz9MPj2u0KWds6E2OBUXfwaL4qRJ33c7HGiJpqk= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2 h1:YHQV7Dajm86OuqnIR6zAelnDWBRjo+YhYV9PmGrh1s8= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.1.0 h1:C4r9BgJ98vrKnnVCjwCSXcWjWe0NKcUQkmzDXZXGwH8= +sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/builder/controller.go b/vendor/sigs.k8s.io/controller-runtime/pkg/builder/controller.go index 11bbea3c1d..81f446d62f 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/builder/controller.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/builder/controller.go @@ -23,7 +23,6 @@ import ( "github.com/go-logr/logr" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/apiutil" @@ -57,7 +56,6 @@ type Builder struct { watchesInput []WatchesInput mgr manager.Manager globalPredicates []predicate.Predicate - config *rest.Config ctrl controller.Controller ctrlOptions controller.Options name string @@ -166,13 +164,13 @@ func (blder *Builder) Named(name string) *Builder { return blder } -// Complete builds the Application ControllerManagedBy. +// Complete builds the Application Controller. func (blder *Builder) Complete(r reconcile.Reconciler) error { _, err := blder.Build(r) return err } -// Build builds the Application ControllerManagedBy and returns the Controller it created. +// Build builds the Application Controller and returns the Controller it created. func (blder *Builder) Build(r reconcile.Reconciler) (controller.Controller, error) { if r == nil { return nil, fmt.Errorf("must provide a non-nil Reconciler") @@ -188,9 +186,6 @@ func (blder *Builder) Build(r reconcile.Reconciler) (controller.Controller, erro return nil, fmt.Errorf("must provide an object for reconciliation") } - // Set the Config - blder.loadRestConfig() - // Set the ControllerManagedBy if err := blder.doController(r); err != nil { return nil, err @@ -273,12 +268,6 @@ func (blder *Builder) doWatch() error { return nil } -func (blder *Builder) loadRestConfig() { - if blder.config == nil { - blder.config = blder.mgr.GetConfig() - } -} - func (blder *Builder) getControllerName(gvk schema.GroupVersionKind) string { if blder.name != "" { return blder.name @@ -287,6 +276,8 @@ func (blder *Builder) getControllerName(gvk schema.GroupVersionKind) string { } func (blder *Builder) doController(r reconcile.Reconciler) error { + globalOpts := blder.mgr.GetControllerOptions() + ctrlOptions := blder.ctrlOptions if ctrlOptions.Reconciler == nil { ctrlOptions.Reconciler = r @@ -299,6 +290,20 @@ func (blder *Builder) doController(r reconcile.Reconciler) error { return err } + // Setup concurrency. + if ctrlOptions.MaxConcurrentReconciles == 0 { + groupKind := gvk.GroupKind().String() + + if concurrency, ok := globalOpts.GroupKindConcurrency[groupKind]; ok && concurrency > 0 { + ctrlOptions.MaxConcurrentReconciles = concurrency + } + } + + // Setup cache sync timeout. + if ctrlOptions.CacheSyncTimeout == 0 && globalOpts.CacheSyncTimeout != nil { + ctrlOptions.CacheSyncTimeout = *globalOpts.CacheSyncTimeout + } + // Setup the logger. if ctrlOptions.Log == nil { ctrlOptions.Log = blder.mgr.GetLogger() diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/cache.go b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/cache.go index 71dfbd0454..dee523fe23 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/cache.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/cache.go @@ -86,6 +86,9 @@ type Informer interface { HasSynced() bool } +// SelectorsByObject associate a client.Object's GVK to a field/label selector +type SelectorsByObject map[client.Object]internal.Selector + // Options are the optional arguments for creating a new InformersMap object type Options struct { // Scheme is the scheme to use for mapping objects to GroupVersionKinds @@ -103,6 +106,13 @@ type Options struct { // Namespace restricts the cache's ListWatch to the desired namespace // Default watches all namespaces Namespace string + + // SelectorsByObject restricts the cache's ListWatch to the desired + // fields per GVK at the specified object, the map's value must implement + // Selector [1] using for example a Set [2] + // [1] https://pkg.go.dev/k8s.io/apimachinery/pkg/fields#Selector + // [2] https://pkg.go.dev/k8s.io/apimachinery/pkg/fields#Set + SelectorsByObject SelectorsByObject } var defaultResyncTime = 10 * time.Hour @@ -113,10 +123,38 @@ func New(config *rest.Config, opts Options) (Cache, error) { if err != nil { return nil, err } - im := internal.NewInformersMap(config, opts.Scheme, opts.Mapper, *opts.Resync, opts.Namespace) + selectorsByGVK, err := convertToSelectorsByGVK(opts.SelectorsByObject, opts.Scheme) + if err != nil { + return nil, err + } + im := internal.NewInformersMap(config, opts.Scheme, opts.Mapper, *opts.Resync, opts.Namespace, selectorsByGVK) return &informerCache{InformersMap: im}, nil } +// BuilderWithOptions returns a Cache constructor that will build the a cache +// honoring the options argument, this is useful to specify options like +// SelectorsByObject +// WARNING: if SelectorsByObject is specified. filtered out resources are not +// returned. +func BuilderWithOptions(options Options) NewCacheFunc { + return func(config *rest.Config, opts Options) (Cache, error) { + if opts.Scheme == nil { + opts.Scheme = options.Scheme + } + if opts.Mapper == nil { + opts.Mapper = options.Mapper + } + if opts.Resync == nil { + opts.Resync = options.Resync + } + if opts.Namespace == "" { + opts.Namespace = options.Namespace + } + opts.SelectorsByObject = options.SelectorsByObject + return New(config, opts) + } +} + func defaultOpts(config *rest.Config, opts Options) (Options, error) { // Use the default Kubernetes Scheme if unset if opts.Scheme == nil { @@ -139,3 +177,15 @@ func defaultOpts(config *rest.Config, opts Options) (Options, error) { } return opts, nil } + +func convertToSelectorsByGVK(selectorsByObject SelectorsByObject, scheme *runtime.Scheme) (internal.SelectorsByGVK, error) { + selectorsByGVK := internal.SelectorsByGVK{} + for object, selector := range selectorsByObject { + gvk, err := apiutil.GVKForObject(object, scheme) + if err != nil { + return nil, err + } + selectorsByGVK[gvk] = selector + } + return selectorsByGVK, nil +} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/cache_reader.go b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/cache_reader.go index e895631e2e..bd546b934a 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/cache_reader.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/cache_reader.go @@ -125,8 +125,15 @@ func (c *CacheReader) List(_ context.Context, out client.ObjectList, opts ...cli labelSel = listOpts.LabelSelector } + limitSet := listOpts.Limit > 0 + runtimeObjs := make([]runtime.Object, 0, len(objs)) - for _, item := range objs { + for i, item := range objs { + // if the Limit option is set and the number of items + // listed exceeds this limit, then stop reading. + if limitSet && int64(i) >= listOpts.Limit { + break + } obj, isObj := item.(runtime.Object) if !isObj { return fmt.Errorf("cache contained %T, which is not an Object", obj) diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/deleg_map.go b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/deleg_map.go index 02bb1919f7..2242d9b674 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/deleg_map.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/deleg_map.go @@ -49,12 +49,14 @@ func NewInformersMap(config *rest.Config, scheme *runtime.Scheme, mapper meta.RESTMapper, resync time.Duration, - namespace string) *InformersMap { + namespace string, + selectors SelectorsByGVK, +) *InformersMap { return &InformersMap{ - structured: newStructuredInformersMap(config, scheme, mapper, resync, namespace), - unstructured: newUnstructuredInformersMap(config, scheme, mapper, resync, namespace), - metadata: newMetadataInformersMap(config, scheme, mapper, resync, namespace), + structured: newStructuredInformersMap(config, scheme, mapper, resync, namespace, selectors), + unstructured: newUnstructuredInformersMap(config, scheme, mapper, resync, namespace, selectors), + metadata: newMetadataInformersMap(config, scheme, mapper, resync, namespace, selectors), Scheme: scheme, } @@ -105,16 +107,19 @@ func (m *InformersMap) Get(ctx context.Context, gvk schema.GroupVersionKind, obj } // newStructuredInformersMap creates a new InformersMap for structured objects. -func newStructuredInformersMap(config *rest.Config, scheme *runtime.Scheme, mapper meta.RESTMapper, resync time.Duration, namespace string) *specificInformersMap { - return newSpecificInformersMap(config, scheme, mapper, resync, namespace, createStructuredListWatch) +func newStructuredInformersMap(config *rest.Config, scheme *runtime.Scheme, mapper meta.RESTMapper, resync time.Duration, + namespace string, selectors SelectorsByGVK) *specificInformersMap { + return newSpecificInformersMap(config, scheme, mapper, resync, namespace, selectors, createStructuredListWatch) } // newUnstructuredInformersMap creates a new InformersMap for unstructured objects. -func newUnstructuredInformersMap(config *rest.Config, scheme *runtime.Scheme, mapper meta.RESTMapper, resync time.Duration, namespace string) *specificInformersMap { - return newSpecificInformersMap(config, scheme, mapper, resync, namespace, createUnstructuredListWatch) +func newUnstructuredInformersMap(config *rest.Config, scheme *runtime.Scheme, mapper meta.RESTMapper, resync time.Duration, + namespace string, selectors SelectorsByGVK) *specificInformersMap { + return newSpecificInformersMap(config, scheme, mapper, resync, namespace, selectors, createUnstructuredListWatch) } // newMetadataInformersMap creates a new InformersMap for metadata-only objects. -func newMetadataInformersMap(config *rest.Config, scheme *runtime.Scheme, mapper meta.RESTMapper, resync time.Duration, namespace string) *specificInformersMap { - return newSpecificInformersMap(config, scheme, mapper, resync, namespace, createMetadataListWatch) +func newMetadataInformersMap(config *rest.Config, scheme *runtime.Scheme, mapper meta.RESTMapper, resync time.Duration, + namespace string, selectors SelectorsByGVK) *specificInformersMap { + return newSpecificInformersMap(config, scheme, mapper, resync, namespace, selectors, createMetadataListWatch) } diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go index 6b57c6fa61..5c9bd0b0a0 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go @@ -34,7 +34,6 @@ import ( "k8s.io/client-go/metadata" "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" - "sigs.k8s.io/controller-runtime/pkg/client/apiutil" ) @@ -48,6 +47,7 @@ func newSpecificInformersMap(config *rest.Config, mapper meta.RESTMapper, resync time.Duration, namespace string, + selectors SelectorsByGVK, createListWatcher createListWatcherFunc) *specificInformersMap { ip := &specificInformersMap{ config: config, @@ -60,6 +60,7 @@ func newSpecificInformersMap(config *rest.Config, startWait: make(chan struct{}), createListWatcher: createListWatcher, namespace: namespace, + selectors: selectors, } return ip } @@ -120,6 +121,10 @@ type specificInformersMap struct { // namespace is the namespace that all ListWatches are restricted to // default or empty string means all namespaces namespace string + + // selectors are the label or field selectors that will be added to the + // ListWatch ListOptions. + selectors SelectorsByGVK } // Start calls Run on each of the informers and sets started to true. Blocks on the context. @@ -216,6 +221,13 @@ func (ip *specificInformersMap) addInformerToMap(gvk schema.GroupVersionKind, ob if err != nil { return nil, false, err } + + switch obj.(type) { + case *metav1.PartialObjectMetadata, *metav1.PartialObjectMetadataList: + ni = metadataSharedIndexInformerPreserveGVK(gvk, ni) + default: + } + i := &MapEntry{ Informer: ni, Reader: CacheReader{indexer: ni.GetIndexer(), groupVersionKind: gvk, scopeName: rm.Scope.Name()}, @@ -256,6 +268,7 @@ func createStructuredListWatch(gvk schema.GroupVersionKind, ip *specificInformer // Create a new ListWatch for the obj return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + ip.selectors[gvk].ApplyToList(&opts) res := listObj.DeepCopyObject() isNamespaceScoped := ip.namespace != "" && mapping.Scope.Name() != meta.RESTScopeNameRoot err := client.Get().NamespaceIfScoped(ip.namespace, isNamespaceScoped).Resource(mapping.Resource.Resource).VersionedParams(&opts, ip.paramCodec).Do(ctx).Into(res) @@ -263,6 +276,7 @@ func createStructuredListWatch(gvk schema.GroupVersionKind, ip *specificInformer }, // Setup the watch function WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + ip.selectors[gvk].ApplyToList(&opts) // Watch needs to be set to true separately opts.Watch = true isNamespaceScoped := ip.namespace != "" && mapping.Scope.Name() != meta.RESTScopeNameRoot @@ -278,7 +292,12 @@ func createUnstructuredListWatch(gvk schema.GroupVersionKind, ip *specificInform if err != nil { return nil, err } - dynamicClient, err := dynamic.NewForConfig(ip.config) + + // If the rest configuration has a negotiated serializer passed in, + // we should remove it and use the one that the dynamic client sets for us. + cfg := rest.CopyConfig(ip.config) + cfg.NegotiatedSerializer = nil + dynamicClient, err := dynamic.NewForConfig(cfg) if err != nil { return nil, err } @@ -289,6 +308,7 @@ func createUnstructuredListWatch(gvk schema.GroupVersionKind, ip *specificInform // Create a new ListWatch for the obj return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + ip.selectors[gvk].ApplyToList(&opts) if ip.namespace != "" && mapping.Scope.Name() != meta.RESTScopeNameRoot { return dynamicClient.Resource(mapping.Resource).Namespace(ip.namespace).List(ctx, opts) } @@ -296,6 +316,7 @@ func createUnstructuredListWatch(gvk schema.GroupVersionKind, ip *specificInform }, // Setup the watch function WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + ip.selectors[gvk].ApplyToList(&opts) // Watch needs to be set to true separately opts.Watch = true if ip.namespace != "" && mapping.Scope.Name() != meta.RESTScopeNameRoot { @@ -314,8 +335,13 @@ func createMetadataListWatch(gvk schema.GroupVersionKind, ip *specificInformersM return nil, err } + // Always clear the negotiated serializer and use the one + // set from the metadata client. + cfg := rest.CopyConfig(ip.config) + cfg.NegotiatedSerializer = nil + // grab the metadata client - client, err := metadata.NewForConfig(ip.config) + client, err := metadata.NewForConfig(cfg) if err != nil { return nil, err } @@ -327,6 +353,7 @@ func createMetadataListWatch(gvk schema.GroupVersionKind, ip *specificInformersM // create the relevant listwatch return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + ip.selectors[gvk].ApplyToList(&opts) if ip.namespace != "" && mapping.Scope.Name() != meta.RESTScopeNameRoot { return client.Resource(mapping.Resource).Namespace(ip.namespace).List(ctx, opts) } @@ -334,6 +361,7 @@ func createMetadataListWatch(gvk schema.GroupVersionKind, ip *specificInformersM }, // Setup the watch function WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + ip.selectors[gvk].ApplyToList(&opts) // Watch needs to be set to true separately opts.Watch = true if ip.namespace != "" && mapping.Scope.Name() != meta.RESTScopeNameRoot { diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/metadata_infomer_wrapper.go b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/metadata_infomer_wrapper.go new file mode 100644 index 0000000000..c0fa24a5c1 --- /dev/null +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/metadata_infomer_wrapper.go @@ -0,0 +1,71 @@ +/* +Copyright 2021 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. +*/ + +package internal + +import ( + "time" + + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/tools/cache" +) + +func metadataSharedIndexInformerPreserveGVK(gvk schema.GroupVersionKind, si cache.SharedIndexInformer) cache.SharedIndexInformer { + return &sharedInformerWrapper{ + gvk: gvk, + SharedIndexInformer: si, + } +} + +type sharedInformerWrapper struct { + gvk schema.GroupVersionKind + cache.SharedIndexInformer +} + +func (s *sharedInformerWrapper) AddEventHandler(handler cache.ResourceEventHandler) { + s.SharedIndexInformer.AddEventHandler(&handlerPreserveGVK{s.gvk, handler}) +} + +func (s *sharedInformerWrapper) AddEventHandlerWithResyncPeriod(handler cache.ResourceEventHandler, resyncPeriod time.Duration) { + s.SharedIndexInformer.AddEventHandlerWithResyncPeriod(&handlerPreserveGVK{s.gvk, handler}, resyncPeriod) +} + +type handlerPreserveGVK struct { + gvk schema.GroupVersionKind + cache.ResourceEventHandler +} + +func (h *handlerPreserveGVK) resetGroupVersionKind(obj interface{}) { + if v, ok := obj.(schema.ObjectKind); ok { + v.SetGroupVersionKind(h.gvk) + } +} + +func (h *handlerPreserveGVK) OnAdd(obj interface{}) { + h.resetGroupVersionKind(obj) + h.ResourceEventHandler.OnAdd(obj) +} + +func (h *handlerPreserveGVK) OnUpdate(oldObj, newObj interface{}) { + h.resetGroupVersionKind(oldObj) + h.resetGroupVersionKind(newObj) + h.ResourceEventHandler.OnUpdate(oldObj, newObj) +} + +func (h *handlerPreserveGVK) OnDelete(obj interface{}) { + h.resetGroupVersionKind(obj) + h.ResourceEventHandler.OnDelete(obj) +} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/selector.go b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/selector.go new file mode 100644 index 0000000000..0e872eaf02 --- /dev/null +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/selector.go @@ -0,0 +1,43 @@ +/* +Copyright 2021 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. +*/ + +package internal + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// SelectorsByGVK associate a GroupVersionKind to a field/label selector +type SelectorsByGVK map[schema.GroupVersionKind]Selector + +// Selector specify the label/field selector to fill in ListOptions +type Selector struct { + Label labels.Selector + Field fields.Selector +} + +// ApplyToList fill in ListOptions LabelSelector and FieldSelector if needed +func (s Selector) ApplyToList(listOpts *metav1.ListOptions) { + if s.Label != nil { + listOpts.LabelSelector = s.Label.String() + } + if s.Field != nil { + listOpts.FieldSelector = s.Field.String() + } +} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/multi_namespace_cache.go b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/multi_namespace_cache.go index f0e18c09b0..f3520bf8d7 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/cache/multi_namespace_cache.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/cache/multi_namespace_cache.go @@ -29,14 +29,19 @@ import ( "k8s.io/client-go/rest" toolscache "k8s.io/client-go/tools/cache" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/internal/objectutil" ) // NewCacheFunc - Function for creating a new cache from the options and a rest config type NewCacheFunc func(config *rest.Config, opts Options) (Cache, error) +// a new global namespaced cache to handle cluster scoped resources +const globalCache = "_cluster-scope" + // MultiNamespacedCacheBuilder - Builder function to create a new multi-namespaced cache. // This will scope the cache to a list of namespaces. Listing for all namespaces -// will list for all the namespaces that this knows about. Note that this is not intended +// will list for all the namespaces that this knows about. By default this will create +// a global cache for cluster scoped resource. Note that this is not intended // to be used for excluding namespaces, this is better done via a Predicate. Also note that // you may face performance issues when using this with a high number of namespaces. func MultiNamespacedCacheBuilder(namespaces []string) NewCacheFunc { @@ -45,7 +50,15 @@ func MultiNamespacedCacheBuilder(namespaces []string) NewCacheFunc { if err != nil { return nil, err } + caches := map[string]Cache{} + + // create a cache for cluster scoped resources + gCache, err := New(config, opts) + if err != nil { + return nil, fmt.Errorf("error creating global cache %v", err) + } + for _, ns := range namespaces { opts.Namespace = ns c, err := New(config, opts) @@ -54,7 +67,7 @@ func MultiNamespacedCacheBuilder(namespaces []string) NewCacheFunc { } caches[ns] = c } - return &multiNamespaceCache{namespaceToCache: caches, Scheme: opts.Scheme}, nil + return &multiNamespaceCache{namespaceToCache: caches, Scheme: opts.Scheme, RESTMapper: opts.Mapper, clusterCache: gCache}, nil } } @@ -65,6 +78,8 @@ func MultiNamespacedCacheBuilder(namespaces []string) NewCacheFunc { type multiNamespaceCache struct { namespaceToCache map[string]Cache Scheme *runtime.Scheme + RESTMapper meta.RESTMapper + clusterCache Cache } var _ Cache = &multiNamespaceCache{} @@ -72,6 +87,23 @@ var _ Cache = &multiNamespaceCache{} // Methods for multiNamespaceCache to conform to the Informers interface func (c *multiNamespaceCache) GetInformer(ctx context.Context, obj client.Object) (Informer, error) { informers := map[string]Informer{} + + // If the object is clusterscoped, get the informer from clusterCache, + // if not use the namespaced caches. + isNamespaced, err := objectutil.IsAPINamespaced(obj, c.Scheme, c.RESTMapper) + if err != nil { + return nil, err + } + if !isNamespaced { + clusterCacheInf, err := c.clusterCache.GetInformer(ctx, obj) + if err != nil { + return nil, err + } + informers[globalCache] = clusterCacheInf + + return &multiNamespaceInformer{namespaceToInformer: informers}, nil + } + for ns, cache := range c.namespaceToCache { informer, err := cache.GetInformer(ctx, obj) if err != nil { @@ -79,11 +111,29 @@ func (c *multiNamespaceCache) GetInformer(ctx context.Context, obj client.Object } informers[ns] = informer } + return &multiNamespaceInformer{namespaceToInformer: informers}, nil } func (c *multiNamespaceCache) GetInformerForKind(ctx context.Context, gvk schema.GroupVersionKind) (Informer, error) { informers := map[string]Informer{} + + // If the object is clusterscoped, get the informer from clusterCache, + // if not use the namespaced caches. + isNamespaced, err := objectutil.IsAPINamespacedWithGVK(gvk, c.Scheme, c.RESTMapper) + if err != nil { + return nil, err + } + if !isNamespaced { + clusterCacheInf, err := c.clusterCache.GetInformerForKind(ctx, gvk) + if err != nil { + return nil, err + } + informers[globalCache] = clusterCacheInf + + return &multiNamespaceInformer{namespaceToInformer: informers}, nil + } + for ns, cache := range c.namespaceToCache { informer, err := cache.GetInformerForKind(ctx, gvk) if err != nil { @@ -91,10 +141,20 @@ func (c *multiNamespaceCache) GetInformerForKind(ctx context.Context, gvk schema } informers[ns] = informer } + return &multiNamespaceInformer{namespaceToInformer: informers}, nil } func (c *multiNamespaceCache) Start(ctx context.Context) error { + // start global cache + go func() { + err := c.clusterCache.Start(ctx) + if err != nil { + log.Error(err, "cluster scoped cache failed to start") + } + }() + + // start namespaced caches for ns, cache := range c.namespaceToCache { go func(ns string, cache Cache) { err := cache.Start(ctx) @@ -103,6 +163,7 @@ func (c *multiNamespaceCache) Start(ctx context.Context) error { } }(ns, cache) } + <-ctx.Done() return nil } @@ -114,10 +175,24 @@ func (c *multiNamespaceCache) WaitForCacheSync(ctx context.Context) bool { synced = s } } + + // check if cluster scoped cache has synced + if !c.clusterCache.WaitForCacheSync(ctx) { + synced = false + } return synced } func (c *multiNamespaceCache) IndexField(ctx context.Context, obj client.Object, field string, extractValue client.IndexerFunc) error { + isNamespaced, err := objectutil.IsAPINamespaced(obj, c.Scheme, c.RESTMapper) + if err != nil { + return nil + } + + if !isNamespaced { + return c.clusterCache.IndexField(ctx, obj, field, extractValue) + } + for _, cache := range c.namespaceToCache { if err := cache.IndexField(ctx, obj, field, extractValue); err != nil { return err @@ -127,6 +202,16 @@ func (c *multiNamespaceCache) IndexField(ctx context.Context, obj client.Object, } func (c *multiNamespaceCache) Get(ctx context.Context, key client.ObjectKey, obj client.Object) error { + isNamespaced, err := objectutil.IsAPINamespaced(obj, c.Scheme, c.RESTMapper) + if err != nil { + return err + } + + if !isNamespaced { + // Look into the global cache to fetch the object + return c.clusterCache.Get(ctx, key, obj) + } + cache, ok := c.namespaceToCache[key.Namespace] if !ok { return fmt.Errorf("unable to get: %v because of unknown namespace for the cache", key) @@ -138,6 +223,17 @@ func (c *multiNamespaceCache) Get(ctx context.Context, key client.ObjectKey, obj func (c *multiNamespaceCache) List(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error { listOpts := client.ListOptions{} listOpts.ApplyOptions(opts) + + isNamespaced, err := objectutil.IsAPINamespaced(list, c.Scheme, c.RESTMapper) + if err != nil { + return err + } + + if !isNamespaced { + // Look at the global cache to get the objects with the specified GVK + return c.clusterCache.List(ctx, list, opts...) + } + if listOpts.Namespace != corev1.NamespaceAll { cache, ok := c.namespaceToCache[listOpts.Namespace] if !ok { @@ -155,10 +251,13 @@ func (c *multiNamespaceCache) List(ctx context.Context, list client.ObjectList, if err != nil { return err } + + limitSet := listOpts.Limit > 0 + var resourceVersion string for _, cache := range c.namespaceToCache { listObj := list.DeepCopyObject().(client.ObjectList) - err = cache.List(ctx, listObj, opts...) + err = cache.List(ctx, listObj, &listOpts) if err != nil { return err } @@ -173,6 +272,17 @@ func (c *multiNamespaceCache) List(ctx context.Context, list client.ObjectList, allItems = append(allItems, items...) // The last list call should have the most correct resource version. resourceVersion = accessor.GetResourceVersion() + if limitSet { + // decrement Limit by the number of items + // fetched from the current namespace. + listOpts.Limit -= int64(len(items)) + // if a Limit was set and the number of + // items read has reached this set limit, + // then stop reading. + if listOpts.Limit == 0 { + break + } + } } listAccessor.SetResourceVersion(resourceVersion) diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher/certwatcher.go b/vendor/sigs.k8s.io/controller-runtime/pkg/certwatcher/certwatcher.go similarity index 97% rename from vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher/certwatcher.go rename to vendor/sigs.k8s.io/controller-runtime/pkg/certwatcher/certwatcher.go index d681ef2a6b..e8e0e17a2b 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher/certwatcher.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/certwatcher/certwatcher.go @@ -1,5 +1,5 @@ /* -Copyright 2019 The Kubernetes Authors. +Copyright 2021 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. @@ -31,7 +31,7 @@ var log = logf.RuntimeLog.WithName("certwatcher") // changes, it reads and parses both and calls an optional callback with the new // certificate. type CertWatcher struct { - sync.Mutex + sync.RWMutex currentCert *tls.Certificate watcher *fsnotify.Watcher @@ -64,8 +64,8 @@ func New(certPath, keyPath string) (*CertWatcher, error) { // GetCertificate fetches the currently loaded certificate, which may be nil. func (cw *CertWatcher) GetCertificate(_ *tls.ClientHelloInfo) (*tls.Certificate, error) { - cw.Lock() - defer cw.Unlock() + cw.RLock() + defer cw.RUnlock() return cw.currentCert, nil } diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/certwatcher/doc.go b/vendor/sigs.k8s.io/controller-runtime/pkg/certwatcher/doc.go new file mode 100644 index 0000000000..40c2fc0bfb --- /dev/null +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/certwatcher/doc.go @@ -0,0 +1,23 @@ +/* +Copyright 2021 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. +*/ + +/* +Package certwatcher is a helper for reloading Certificates from disk to be used +with tls servers. It provides a helper func `GetCertificate` which can be +called from `tls.Config` and passed into your tls.Listener. For a detailed +example server view pkg/webhook/server.go. +*/ +package certwatcher diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/apiutil/apimachinery.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/apiutil/apimachinery.go index b3464c655d..bb66a6dfdd 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/apiutil/apimachinery.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/client/apiutil/apimachinery.go @@ -118,15 +118,24 @@ func GVKForObject(obj runtime.Object, scheme *runtime.Scheme) (schema.GroupVersi // with the given GroupVersionKind. The REST client will be configured to use the negotiated serializer from // baseConfig, if set, otherwise a default serializer will be set. func RESTClientForGVK(gvk schema.GroupVersionKind, isUnstructured bool, baseConfig *rest.Config, codecs serializer.CodecFactory) (rest.Interface, error) { - cfg := createRestConfig(gvk, isUnstructured, baseConfig) - if cfg.NegotiatedSerializer == nil { - cfg.NegotiatedSerializer = serializer.WithoutConversionCodecFactory{CodecFactory: codecs} - } - return rest.RESTClientFor(cfg) + return rest.RESTClientFor(createRestConfig(gvk, isUnstructured, baseConfig, codecs)) +} + +// serializerWithDecodedGVK is a CodecFactory that overrides the DecoderToVersion of a WithoutConversionCodecFactory +// in order to avoid clearing the GVK from the decoded object. +// +// See https://github.com/kubernetes/kubernetes/issues/80609. +type serializerWithDecodedGVK struct { + serializer.WithoutConversionCodecFactory +} + +// DecoderToVersion returns an decoder that does not do conversion. +func (f serializerWithDecodedGVK) DecoderToVersion(serializer runtime.Decoder, _ runtime.GroupVersioner) runtime.Decoder { + return serializer } //createRestConfig copies the base config and updates needed fields for a new rest config -func createRestConfig(gvk schema.GroupVersionKind, isUnstructured bool, baseConfig *rest.Config) *rest.Config { +func createRestConfig(gvk schema.GroupVersionKind, isUnstructured bool, baseConfig *rest.Config, codecs serializer.CodecFactory) *rest.Config { gv := gvk.GroupVersion() cfg := rest.CopyConfig(baseConfig) @@ -147,5 +156,16 @@ func createRestConfig(gvk schema.GroupVersionKind, isUnstructured bool, baseConf } protobufSchemeLock.RUnlock() } + + if cfg.NegotiatedSerializer == nil { + if isUnstructured { + // If the object is unstructured, we need to preserve the GVK information. + // Use our own custom serializer. + cfg.NegotiatedSerializer = serializerWithDecodedGVK{serializer.WithoutConversionCodecFactory{CodecFactory: codecs}} + } else { + cfg.NegotiatedSerializer = serializer.WithoutConversionCodecFactory{CodecFactory: codecs} + } + } + return cfg } diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/client.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/client.go index 0af814fdf9..3444ab52b4 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/client.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/client/client.go @@ -19,6 +19,7 @@ package client import ( "context" "fmt" + "strings" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -31,8 +32,23 @@ import ( "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/client/apiutil" + "sigs.k8s.io/controller-runtime/pkg/log" ) +// WarningHandlerOptions are options for configuring a +// warning handler for the client which is responsible +// for surfacing API Server warnings. +type WarningHandlerOptions struct { + // SuppressWarnings decides if the warnings from the + // API server are suppressed or surfaced in the client. + SuppressWarnings bool + // AllowDuplicateLogs does not deduplicate the to-be + // logged surfaced warnings messages. See + // log.WarningHandlerOptions for considerations + // regarding deuplication + AllowDuplicateLogs bool +} + // Options are creation options for a Client type Options struct { // Scheme, if provided, will be used to map go structs to GroupVersionKinds @@ -40,6 +56,10 @@ type Options struct { // Mapper, if provided, will be used to map GroupVersionKinds to Resources Mapper meta.RESTMapper + + // Opts is used to configure the warning handler responsible for + // surfacing and handling warnings messages sent by the API server. + Opts WarningHandlerOptions } // New returns a new Client using the provided config and Options. @@ -53,10 +73,31 @@ type Options struct { // case of unstructured types, the group, version, and kind will be extracted // from the corresponding fields on the object. func New(config *rest.Config, options Options) (Client, error) { + return newClient(config, options) +} + +func newClient(config *rest.Config, options Options) (*client, error) { if config == nil { return nil, fmt.Errorf("must provide non-nil rest.Config to client.New") } + if !options.Opts.SuppressWarnings { + // surface warnings + logger := log.Log.WithName("KubeAPIWarningLogger") + // Set a WarningHandler, the default WarningHandler + // is log.KubeAPIWarningLogger with deduplication enabled. + // See log.KubeAPIWarningLoggerOptions for considerations + // regarding deduplication. + rest.SetDefaultWarningHandler( + log.NewKubeAPIWarningLogger( + logger, + log.KubeAPIWarningLoggerOptions{ + Deduplicate: !options.Opts.AllowDuplicateLogs, + }, + ), + ) + } + // Init a scheme if none provided if options.Scheme == nil { options.Scheme = scheme.Scheme @@ -119,7 +160,6 @@ type client struct { } // resetGroupVersionKind is a helper function to restore and preserve GroupVersionKind on an object. -// TODO(vincepri): Remove this function and its calls once controller-runtime dependencies are upgraded to 1.16? func (c *client) resetGroupVersionKind(obj runtime.Object, gvk schema.GroupVersionKind) { if gvk != schema.EmptyObjectKind.GroupVersionKind() { if v, ok := obj.(schema.ObjectKind); ok { @@ -206,6 +246,8 @@ func (c *client) Get(ctx context.Context, key ObjectKey, obj Object) error { case *unstructured.Unstructured: return c.unstructuredClient.Get(ctx, key, obj) case *metav1.PartialObjectMetadata: + // Metadata only object should always preserve the GVK coming in from the caller. + defer c.resetGroupVersionKind(obj, obj.GetObjectKind().GroupVersionKind()) return c.metadataClient.Get(ctx, key, obj) default: return c.typedClient.Get(ctx, key, obj) @@ -214,11 +256,33 @@ func (c *client) Get(ctx context.Context, key ObjectKey, obj Object) error { // List implements client.Client func (c *client) List(ctx context.Context, obj ObjectList, opts ...ListOption) error { - switch obj.(type) { + switch x := obj.(type) { case *unstructured.UnstructuredList: return c.unstructuredClient.List(ctx, obj, opts...) case *metav1.PartialObjectMetadataList: - return c.metadataClient.List(ctx, obj, opts...) + // Metadata only object should always preserve the GVK. + gvk := obj.GetObjectKind().GroupVersionKind() + defer c.resetGroupVersionKind(obj, gvk) + + // Call the list client. + if err := c.metadataClient.List(ctx, obj, opts...); err != nil { + return err + } + + // Restore the GVK for each item in the list. + itemGVK := schema.GroupVersionKind{ + Group: gvk.Group, + Version: gvk.Version, + // TODO: this is producing unsafe guesses that don't actually work, + // but it matches ~99% of the cases out there. + Kind: strings.TrimSuffix(gvk.Kind, "List"), + } + for i := range x.Items { + item := &x.Items[i] + item.SetGroupVersionKind(itemGVK) + } + + return nil default: return c.typedClient.List(ctx, obj, opts...) } diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/client_cache.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/client_cache.go index bf6ee882bb..b3493cb025 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/client_cache.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/client/client_cache.go @@ -133,7 +133,6 @@ type resourceMeta struct { // isNamespaced returns true if the type is namespaced func (r *resourceMeta) isNamespaced() bool { return r.mapping.Scope.Name() != meta.RESTScopeNameRoot - } // resource returns the resource name of the type diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/codec.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/codec.go index 5789de2046..9c2923106c 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/codec.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/client/codec.go @@ -1,3 +1,19 @@ +/* +Copyright 2021 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. +*/ + package client import ( diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/client.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/client.go index 1747731945..ded8a60d33 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/client.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/client.go @@ -23,14 +23,17 @@ import ( "fmt" "strconv" "strings" + "sync" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" utilrand "k8s.io/apimachinery/pkg/util/rand" "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/testing" @@ -45,11 +48,12 @@ type versionedTracker struct { } type fakeClient struct { - tracker versionedTracker - scheme *runtime.Scheme + tracker versionedTracker + scheme *runtime.Scheme + schemeWriteLock sync.Mutex } -var _ client.Client = &fakeClient{} +var _ client.WithWatch = &fakeClient{} const ( maxNameLength = 63 @@ -61,7 +65,7 @@ const ( // You can choose to initialize it with a slice of runtime.Object. // // Deprecated: Please use NewClientBuilder instead. -func NewFakeClient(initObjs ...runtime.Object) client.Client { +func NewFakeClient(initObjs ...runtime.Object) client.WithWatch { return NewClientBuilder().WithRuntimeObjects(initObjs...).Build() } @@ -70,7 +74,7 @@ func NewFakeClient(initObjs ...runtime.Object) client.Client { // You can choose to initialize it with a slice of runtime.Object. // // Deprecated: Please use NewClientBuilder instead. -func NewFakeClientWithScheme(clientScheme *runtime.Scheme, initObjs ...runtime.Object) client.Client { +func NewFakeClientWithScheme(clientScheme *runtime.Scheme, initObjs ...runtime.Object) client.WithWatch { return NewClientBuilder().WithScheme(clientScheme).WithRuntimeObjects(initObjs...).Build() } @@ -113,7 +117,7 @@ func (f *ClientBuilder) WithRuntimeObjects(initRuntimeObjs ...runtime.Object) *C } // Build builds and returns a new fake client. -func (f *ClientBuilder) Build() client.Client { +func (f *ClientBuilder) Build() client.WithWatch { if f.scheme == nil { f.scheme = scheme.Scheme } @@ -248,6 +252,9 @@ func (t versionedTracker) Update(gvr schema.GroupVersionResource, obj runtime.Ob } intResourceVersion++ accessor.SetResourceVersion(strconv.FormatUint(intResourceVersion, 10)) + if !accessor.GetDeletionTimestamp().IsZero() && len(accessor.GetFinalizers()) == 0 { + return t.ObjectTracker.Delete(gvr, accessor.GetNamespace(), accessor.GetName()) + } return t.ObjectTracker.Update(gvr, obj, ns) } @@ -281,19 +288,42 @@ func (c *fakeClient) Get(ctx context.Context, key client.ObjectKey, obj client.O return err } +func (c *fakeClient) Watch(ctx context.Context, list client.ObjectList, opts ...client.ListOption) (watch.Interface, error) { + gvk, err := apiutil.GVKForObject(list, c.scheme) + if err != nil { + return nil, err + } + + if strings.HasSuffix(gvk.Kind, "List") { + gvk.Kind = gvk.Kind[:len(gvk.Kind)-4] + } + + listOpts := client.ListOptions{} + listOpts.ApplyOptions(opts) + + gvr, _ := meta.UnsafeGuessKindToResource(gvk) + return c.tracker.Watch(gvr, listOpts.Namespace) +} + func (c *fakeClient) List(ctx context.Context, obj client.ObjectList, opts ...client.ListOption) error { gvk, err := apiutil.GVKForObject(obj, c.scheme) if err != nil { return err } - OriginalKind := gvk.Kind + originalKind := gvk.Kind - if !strings.HasSuffix(gvk.Kind, "List") { - return fmt.Errorf("non-list type %T (kind %q) passed as output", obj, gvk) + if strings.HasSuffix(gvk.Kind, "List") { + gvk.Kind = gvk.Kind[:len(gvk.Kind)-4] + } + + if _, isUnstructuredList := obj.(*unstructured.UnstructuredList); isUnstructuredList && !c.scheme.Recognizes(gvk) { + // We need tor register the ListKind with UnstructuredList: + // https://github.com/kubernetes/kubernetes/blob/7b2776b89fb1be28d4e9203bdeec079be903c103/staging/src/k8s.io/client-go/dynamic/fake/simple.go#L44-L51 + c.schemeWriteLock.Lock() + c.scheme.AddKnownTypeWithName(gvk.GroupVersion().WithKind(gvk.Kind+"List"), &unstructured.UnstructuredList{}) + c.schemeWriteLock.Unlock() } - // we need the non-list GVK, so chop off the "List" from the end of the kind - gvk.Kind = gvk.Kind[:len(gvk.Kind)-4] listOpts := client.ListOptions{} listOpts.ApplyOptions(opts) @@ -308,7 +338,7 @@ func (c *fakeClient) List(ctx context.Context, obj client.ObjectList, opts ...cl if err != nil { return err } - ta.SetKind(OriginalKind) + ta.SetKind(originalKind) ta.SetAPIVersion(gvk.GroupVersion().String()) j, err := json.Marshal(o) @@ -389,8 +419,7 @@ func (c *fakeClient) Delete(ctx context.Context, obj client.Object, opts ...clie delOptions := client.DeleteOptions{} delOptions.ApplyOptions(opts) - //TODO: implement propagation - return c.tracker.Delete(gvr, accessor.GetNamespace(), accessor.GetName()) + return c.deleteObject(gvr, accessor) } func (c *fakeClient) DeleteAllOf(ctx context.Context, obj client.Object, opts ...client.DeleteAllOfOption) error { @@ -421,7 +450,7 @@ func (c *fakeClient) DeleteAllOf(ctx context.Context, obj client.Object, opts .. if err != nil { return err } - err = c.tracker.Delete(gvr, accessor.GetNamespace(), accessor.GetName()) + err = c.deleteObject(gvr, accessor) if err != nil { return err } @@ -506,6 +535,23 @@ func (c *fakeClient) Status() client.StatusWriter { return &fakeStatusWriter{client: c} } +func (c *fakeClient) deleteObject(gvr schema.GroupVersionResource, accessor metav1.Object) error { + old, err := c.tracker.Get(gvr, accessor.GetNamespace(), accessor.GetName()) + if err == nil { + oldAccessor, err := meta.Accessor(old) + if err == nil { + if len(oldAccessor.GetFinalizers()) > 0 { + now := metav1.Now() + oldAccessor.SetDeletionTimestamp(&now) + return c.tracker.Update(gvr, old, accessor.GetNamespace()) + } + } + } + + //TODO: implement propagation + return c.tracker.Delete(gvr, accessor.GetNamespace(), accessor.GetName()) +} + func getGVRFromObject(obj runtime.Object, scheme *runtime.Scheme) (schema.GroupVersionResource, error) { gvk, err := apiutil.GVKForObject(obj, scheme) if err != nil { diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/interfaces.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/interfaces.go index 09636968f1..0dfea4d6c5 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/interfaces.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/client/interfaces.go @@ -24,6 +24,7 @@ import ( "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" ) // ObjectKey identifies a Kubernetes Object. @@ -39,7 +40,7 @@ type Patch interface { // Type is the PatchType of the patch. Type() types.PatchType // Data is the raw data representing the patch. - Data(obj runtime.Object) ([]byte, error) + Data(obj Object) ([]byte, error) } // TODO(directxman12): is there a sane way to deal with get/delete options? @@ -108,6 +109,14 @@ type Client interface { RESTMapper() meta.RESTMapper } +// WithWatch supports Watch on top of the CRUD operations supported by +// the normal Client. Its intended use-case are CLI apps that need to wait for +// events. +type WithWatch interface { + Client + Watch(ctx context.Context, obj ObjectList, opts ...ListOption) (watch.Interface, error) +} + // IndexerFunc knows how to take an object and turn it into a series // of non-namespaced keys. Namespaced objects are automatically given // namespaced and non-spaced variants, so keys do not need to include namespace. diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/metadata_client.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/metadata_client.go index 6587a19407..c0fc72c5b7 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/metadata_client.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/client/metadata_client.go @@ -104,6 +104,8 @@ func (mc *metadataClient) Patch(ctx context.Context, obj Object, patch Patch, op } patchOpts := &PatchOptions{} + patchOpts.ApplyOptions(opts) + res, err := resInt.Patch(ctx, metadata.Name, patch.Type(), data, *patchOpts.AsPatchOptions()) if err != nil { return err diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/namespaced_client.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/namespaced_client.go index 5ed8baca9b..cedcfb5961 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/namespaced_client.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/client/namespaced_client.go @@ -57,6 +57,7 @@ func (n *namespacedClient) RESTMapper() meta.RESTMapper { // isNamespaced returns true if the object is namespace scoped. // For unstructured objects the gvk is found from the object itself. +// TODO: this is repetitive code. Remove this and use ojectutil.IsNamespaced. func isNamespaced(c Client, obj runtime.Object) (bool, error) { var gvk schema.GroupVersionKind var err error diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/patch.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/patch.go index c32a06c06d..10984c5342 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/patch.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/client/patch.go @@ -20,20 +20,18 @@ import ( "fmt" jsonpatch "github.com/evanphx/json-patch" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/json" + "k8s.io/apimachinery/pkg/util/strategicpatch" ) var ( // Apply uses server-side apply to patch the given object. - Apply = applyPatch{} + Apply Patch = applyPatch{} // Merge uses the raw object as a merge patch, without modifications. // Use MergeFrom if you wish to compute a diff instead. - Merge = mergePatch{} + Merge Patch = mergePatch{} ) type patch struct { @@ -47,7 +45,7 @@ func (s *patch) Type() types.PatchType { } // Data implements Patch. -func (s *patch) Data(obj runtime.Object) ([]byte, error) { +func (s *patch) Data(obj Object) ([]byte, error) { return s.data, nil } @@ -87,68 +85,97 @@ type MergeFromOptions struct { } type mergeFromPatch struct { - from runtime.Object - opts MergeFromOptions + patchType types.PatchType + createPatch func(originalJSON, modifiedJSON []byte, dataStruct interface{}) ([]byte, error) + from Object + opts MergeFromOptions } -// Type implements patch. +// Type implements Patch. func (s *mergeFromPatch) Type() types.PatchType { - return types.MergePatchType + return s.patchType } // Data implements Patch. -func (s *mergeFromPatch) Data(obj runtime.Object) ([]byte, error) { - originalJSON, err := json.Marshal(s.from) - if err != nil { - return nil, err +func (s *mergeFromPatch) Data(obj Object) ([]byte, error) { + original := s.from + modified := obj + + if s.opts.OptimisticLock { + version := original.GetResourceVersion() + if len(version) == 0 { + return nil, fmt.Errorf("cannot use OptimisticLock, object %q does not have any resource version we can use", original) + } + + original = original.DeepCopyObject().(Object) + original.SetResourceVersion("") + + modified = modified.DeepCopyObject().(Object) + modified.SetResourceVersion(version) } - modifiedJSON, err := json.Marshal(obj) + originalJSON, err := json.Marshal(original) if err != nil { return nil, err } - data, err := jsonpatch.CreateMergePatch(originalJSON, modifiedJSON) + modifiedJSON, err := json.Marshal(modified) if err != nil { return nil, err } - if s.opts.OptimisticLock { - dataMap := map[string]interface{}{} - if err := json.Unmarshal(data, &dataMap); err != nil { - return nil, err - } - fromMeta, ok := s.from.(metav1.Object) - if !ok { - return nil, fmt.Errorf("cannot use OptimisticLock, from object %q is not a valid metav1.Object", s.from) - } - resourceVersion := fromMeta.GetResourceVersion() - if len(resourceVersion) == 0 { - return nil, fmt.Errorf("cannot use OptimisticLock, from object %q does not have any resource version we can use", s.from) - } - u := &unstructured.Unstructured{Object: dataMap} - u.SetResourceVersion(resourceVersion) - data, err = json.Marshal(u) - if err != nil { - return nil, err - } + data, err := s.createPatch(originalJSON, modifiedJSON, obj) + if err != nil { + return nil, err } return data, nil } +func createMergePatch(originalJSON, modifiedJSON []byte, _ interface{}) ([]byte, error) { + return jsonpatch.CreateMergePatch(originalJSON, modifiedJSON) +} + +func createStrategicMergePatch(originalJSON, modifiedJSON []byte, dataStruct interface{}) ([]byte, error) { + return strategicpatch.CreateTwoWayMergePatch(originalJSON, modifiedJSON, dataStruct) +} + // MergeFrom creates a Patch that patches using the merge-patch strategy with the given object as base. -func MergeFrom(obj runtime.Object) Patch { - return &mergeFromPatch{from: obj} +// The difference between MergeFrom and StrategicMergeFrom lays in the handling of modified list fields. +// When using MergeFrom, existing lists will be completely replaced by new lists. +// When using StrategicMergeFrom, the list field's `patchStrategy` is respected if specified in the API type, +// e.g. the existing list is not replaced completely but rather merged with the new one using the list's `patchMergeKey`. +// See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ for more details on +// the difference between merge-patch and strategic-merge-patch. +func MergeFrom(obj Object) Patch { + return &mergeFromPatch{patchType: types.MergePatchType, createPatch: createMergePatch, from: obj} } // MergeFromWithOptions creates a Patch that patches using the merge-patch strategy with the given object as base. -func MergeFromWithOptions(obj runtime.Object, opts ...MergeFromOption) Patch { +// See MergeFrom for more details. +func MergeFromWithOptions(obj Object, opts ...MergeFromOption) Patch { + options := &MergeFromOptions{} + for _, opt := range opts { + opt.ApplyToMergeFrom(options) + } + return &mergeFromPatch{patchType: types.MergePatchType, createPatch: createMergePatch, from: obj, opts: *options} +} + +// StrategicMergeFrom creates a Patch that patches using the strategic-merge-patch strategy with the given object as base. +// The difference between MergeFrom and StrategicMergeFrom lays in the handling of modified list fields. +// When using MergeFrom, existing lists will be completely replaced by new lists. +// When using StrategicMergeFrom, the list field's `patchStrategy` is respected if specified in the API type, +// e.g. the existing list is not replaced completely but rather merged with the new one using the list's `patchMergeKey`. +// See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ for more details on +// the difference between merge-patch and strategic-merge-patch. +// Please note, that CRDs don't support strategic-merge-patch, see +// https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#advanced-features-and-flexibility +func StrategicMergeFrom(obj Object, opts ...MergeFromOption) Patch { options := &MergeFromOptions{} for _, opt := range opts { opt.ApplyToMergeFrom(options) } - return &mergeFromPatch{from: obj, opts: *options} + return &mergeFromPatch{patchType: types.StrategicMergePatchType, createPatch: createStrategicMergePatch, from: obj, opts: *options} } // mergePatch uses a raw merge strategy to patch the object. @@ -160,7 +187,7 @@ func (p mergePatch) Type() types.PatchType { } // Data implements Patch. -func (p mergePatch) Data(obj runtime.Object) ([]byte, error) { +func (p mergePatch) Data(obj Object) ([]byte, error) { // NB(directxman12): we might technically want to be using an actual encoder // here (in case some more performant encoder is introduced) but this is // correct and sufficient for our uses (it's what the JSON serializer in @@ -177,7 +204,7 @@ func (p applyPatch) Type() types.PatchType { } // Data implements Patch. -func (p applyPatch) Data(obj runtime.Object) ([]byte, error) { +func (p applyPatch) Data(obj Object) ([]byte, error) { // NB(directxman12): we might technically want to be using an actual encoder // here (in case some more performant encoder is introduced) but this is // correct and sufficient for our uses (it's what the JSON serializer in diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/watch.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/watch.go new file mode 100644 index 0000000000..765ca5daa6 --- /dev/null +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/client/watch.go @@ -0,0 +1,118 @@ +/* +Copyright 2020 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. +*/ + +package client + +import ( + "context" + "strings" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/dynamic" + "k8s.io/client-go/rest" +) + +// NewWithWatch returns a new WithWatch. +func NewWithWatch(config *rest.Config, options Options) (WithWatch, error) { + client, err := newClient(config, options) + if err != nil { + return nil, err + } + dynamicClient, err := dynamic.NewForConfig(config) + if err != nil { + return nil, err + } + return &watchingClient{client: client, dynamic: dynamicClient}, nil +} + +type watchingClient struct { + *client + dynamic dynamic.Interface +} + +func (w *watchingClient) Watch(ctx context.Context, list ObjectList, opts ...ListOption) (watch.Interface, error) { + switch l := list.(type) { + case *unstructured.UnstructuredList: + return w.unstructuredWatch(ctx, l, opts...) + case *metav1.PartialObjectMetadataList: + return w.metadataWatch(ctx, l, opts...) + default: + return w.typedWatch(ctx, l, opts...) + } +} + +func (w *watchingClient) listOpts(opts ...ListOption) ListOptions { + listOpts := ListOptions{} + listOpts.ApplyOptions(opts) + if listOpts.Raw == nil { + listOpts.Raw = &metav1.ListOptions{} + } + listOpts.Raw.Watch = true + + return listOpts +} + +func (w *watchingClient) metadataWatch(ctx context.Context, obj *metav1.PartialObjectMetadataList, opts ...ListOption) (watch.Interface, error) { + gvk := obj.GroupVersionKind() + if strings.HasSuffix(gvk.Kind, "List") { + gvk.Kind = gvk.Kind[:len(gvk.Kind)-4] + } + + listOpts := w.listOpts(opts...) + + resInt, err := w.client.metadataClient.getResourceInterface(gvk, listOpts.Namespace) + if err != nil { + return nil, err + } + + return resInt.Watch(ctx, *listOpts.AsListOptions()) +} + +func (w *watchingClient) unstructuredWatch(ctx context.Context, obj *unstructured.UnstructuredList, opts ...ListOption) (watch.Interface, error) { + gvk := obj.GroupVersionKind() + if strings.HasSuffix(gvk.Kind, "List") { + gvk.Kind = gvk.Kind[:len(gvk.Kind)-4] + } + + r, err := w.client.unstructuredClient.cache.getResource(obj) + if err != nil { + return nil, err + } + + listOpts := w.listOpts(opts...) + + if listOpts.Namespace != "" && r.isNamespaced() { + return w.dynamic.Resource(r.mapping.Resource).Namespace(listOpts.Namespace).Watch(ctx, *listOpts.AsListOptions()) + } + return w.dynamic.Resource(r.mapping.Resource).Watch(ctx, *listOpts.AsListOptions()) +} + +func (w *watchingClient) typedWatch(ctx context.Context, obj ObjectList, opts ...ListOption) (watch.Interface, error) { + r, err := w.client.typedClient.cache.getResource(obj) + if err != nil { + return nil, err + } + + listOpts := w.listOpts(opts...) + + return r.Get(). + NamespaceIfScoped(listOpts.Namespace, r.isNamespaced()). + Resource(r.resource()). + VersionedParams(listOpts.AsListOptions(), w.client.typedClient.paramCodec). + Watch(ctx) +} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/cluster/client_builder.go b/vendor/sigs.k8s.io/controller-runtime/pkg/cluster/client_builder.go deleted file mode 100644 index 791ce16061..0000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/cluster/client_builder.go +++ /dev/null @@ -1,62 +0,0 @@ -/* -Copyright 2020 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. -*/ - -package cluster - -import ( - "k8s.io/client-go/rest" - - "sigs.k8s.io/controller-runtime/pkg/cache" - "sigs.k8s.io/controller-runtime/pkg/client" -) - -// ClientBuilder builder is the interface for the client builder. -type ClientBuilder interface { - // WithUncached takes a list of runtime objects (plain or lists) that users don't want to cache - // for this client. This function can be called multiple times, it should append to an internal slice. - WithUncached(objs ...client.Object) ClientBuilder - - // Build returns a new client. - Build(cache cache.Cache, config *rest.Config, options client.Options) (client.Client, error) -} - -// NewClientBuilder returns a builder to build new clients to be passed when creating a Manager. -func NewClientBuilder() ClientBuilder { - return &newClientBuilder{} -} - -type newClientBuilder struct { - uncached []client.Object -} - -func (n *newClientBuilder) WithUncached(objs ...client.Object) ClientBuilder { - n.uncached = append(n.uncached, objs...) - return n -} - -func (n *newClientBuilder) Build(cache cache.Cache, config *rest.Config, options client.Options) (client.Client, error) { - // Create the Client for Write operations. - c, err := client.New(config, options) - if err != nil { - return nil, err - } - - return client.NewDelegatingClient(client.NewDelegatingClientInput{ - CacheReader: cache, - Client: c, - UncachedObjects: n.uncached, - }) -} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/cluster/cluster.go b/vendor/sigs.k8s.io/controller-runtime/pkg/cluster/cluster.go index 2c7b22382d..76fa72ad76 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/cluster/cluster.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/cluster/cluster.go @@ -39,6 +39,7 @@ import ( type Cluster interface { // SetFields will set any dependencies on an object for which the object has implemented the inject // interface - e.g. inject.Client. + // Deprecated: use the equivalent Options field to set a field. This method will be removed in v0.10. SetFields(interface{}) error // GetConfig returns an initialized Config @@ -108,10 +109,10 @@ type Options struct { // by the manager. If not set this will use the default new cache function. NewCache cache.NewCacheFunc - // ClientBuilder is the builder that creates the client to be used by the manager. + // NewClient is the func that creates the client to be used by the manager. // If not set this will create the default DelegatingClient that will // use the cache for reads and the client for writes. - ClientBuilder ClientBuilder + NewClient NewClientFunc // ClientDisableCacheFor tells the client that, if any cache is used, to bypass it // for the given objects. @@ -173,9 +174,7 @@ func New(config *rest.Config, opts ...Option) (Cluster, error) { return nil, err } - writeObj, err := options.ClientBuilder. - WithUncached(options.ClientDisableCacheFor...). - Build(cache, config, clientOptions) + writeObj, err := options.NewClient(cache, config, clientOptions, options.ClientDisableCacheFor...) if err != nil { return nil, err } @@ -218,9 +217,9 @@ func setOptionsDefaults(options Options) Options { } } - // Allow the client builder to be mocked - if options.ClientBuilder == nil { - options.ClientBuilder = NewClientBuilder() + // Allow users to define how to create a new client + if options.NewClient == nil { + options.NewClient = DefaultNewClient } // Allow newCache to be mocked @@ -252,3 +251,20 @@ func setOptionsDefaults(options Options) Options { return options } + +// NewClientFunc allows a user to define how to create a client +type NewClientFunc func(cache cache.Cache, config *rest.Config, options client.Options, uncachedObjects ...client.Object) (client.Client, error) + +// DefaultNewClient creates the default caching client +func DefaultNewClient(cache cache.Cache, config *rest.Config, options client.Options, uncachedObjects ...client.Object) (client.Client, error) { + c, err := client.New(config, options) + if err != nil { + return nil, err + } + + return client.NewDelegatingClient(client.NewDelegatingClientInput{ + CacheReader: cache, + Client: c, + UncachedObjects: uncachedObjects, + }) +} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/types.go b/vendor/sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/types.go index 25c406375b..e13f1c0090 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/types.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/types.go @@ -17,6 +17,8 @@ limitations under the License. package v1alpha1 import ( + "time" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" configv1alpha1 "k8s.io/component-base/config/v1alpha1" @@ -50,9 +52,14 @@ type ControllerManagerConfigurationSpec struct { // GracefulShutdownTimeout is the duration given to runnable to stop before the manager actually returns on stop. // To disable graceful shutdown, set to time.Duration(0) // To use graceful shutdown without timeout, set to a negative duration, e.G. time.Duration(-1) - // The graceful shutdown is skipped for safety reasons in case the leadere election lease is lost. + // The graceful shutdown is skipped for safety reasons in case the leader election lease is lost. GracefulShutdownTimeout *metav1.Duration `json:"gracefulShutDown,omitempty"` + // Controller contains global configuration options for controllers + // registered within this manager. + // +optional + Controller *ControllerConfigurationSpec `json:"controller,omitempty"` + // Metrics contains thw controller metrics configuration // +optional Metrics ControllerMetrics `json:"metrics,omitempty"` @@ -66,6 +73,29 @@ type ControllerManagerConfigurationSpec struct { Webhook ControllerWebhook `json:"webhook,omitempty"` } +// ControllerConfigurationSpec defines the global configuration for +// controllers registered with the manager. +type ControllerConfigurationSpec struct { + // GroupKindConcurrency is a map from a Kind to the number of concurrent reconciliation + // allowed for that controller. + // + // When a controller is registered within this manager using the builder utilities, + // users have to specify the type the controller reconciles in the For(...) call. + // If the object's kind passed matches one of the keys in this map, the concurrency + // for that controller is set to the number specified. + // + // The key is expected to be consistent in form with GroupKind.String(), + // e.g. ReplicaSet in apps group (regardless of version) would be `ReplicaSet.apps`. + // + // +optional + GroupKindConcurrency map[string]int `json:"groupKindConcurrency,omitempty"` + + // CacheSyncTimeout refers to the time limit set to wait for syncing caches. + // Defaults to 2 minutes if not set. + // +optional + CacheSyncTimeout *time.Duration `json:"cacheSyncTimeout,omitempty"` +} + // ControllerMetrics defines the metrics configs type ControllerMetrics struct { // BindAddress is the TCP address that the controller should bind to diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/zz_generated.deepcopy.go b/vendor/sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/zz_generated.deepcopy.go index 5deb12fad7..752fa9754c 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/zz_generated.deepcopy.go @@ -8,8 +8,36 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" configv1alpha1 "k8s.io/component-base/config/v1alpha1" + timex "time" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ControllerConfigurationSpec) DeepCopyInto(out *ControllerConfigurationSpec) { + *out = *in + if in.GroupKindConcurrency != nil { + in, out := &in.GroupKindConcurrency, &out.GroupKindConcurrency + *out = make(map[string]int, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.CacheSyncTimeout != nil { + in, out := &in.CacheSyncTimeout, &out.CacheSyncTimeout + *out = new(timex.Duration) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigurationSpec. +func (in *ControllerConfigurationSpec) DeepCopy() *ControllerConfigurationSpec { + if in == nil { + return nil + } + out := new(ControllerConfigurationSpec) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ControllerHealth) DeepCopyInto(out *ControllerHealth) { *out = *in @@ -68,6 +96,11 @@ func (in *ControllerManagerConfigurationSpec) DeepCopyInto(out *ControllerManage *out = new(v1.Duration) **out = **in } + if in.Controller != nil { + in, out := &in.Controller, &out.Controller + *out = new(ControllerConfigurationSpec) + (*in).DeepCopyInto(*out) + } out.Metrics = in.Metrics out.Health = in.Health in.Webhook.DeepCopyInto(&out.Webhook) diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/controller/controllerutil/controllerutil.go b/vendor/sigs.k8s.io/controller-runtime/pkg/controller/controllerutil/controllerutil.go index 462781bd37..f77d52052d 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/controller/controllerutil/controllerutil.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/controller/controllerutil/controllerutil.go @@ -249,8 +249,8 @@ func CreateOrPatch(ctx context.Context, c client.Client, obj client.Object, f Mu } // Create patches for the object and its possible status. - objPatch := client.MergeFrom(obj.DeepCopyObject()) - statusPatch := client.MergeFrom(obj.DeepCopyObject()) + objPatch := client.MergeFrom(obj.DeepCopyObject().(client.Object)) + statusPatch := client.MergeFrom(obj.DeepCopyObject().(client.Object)) // Create a copy of the original object as well as converting that copy to // unstructured data. @@ -309,6 +309,20 @@ func CreateOrPatch(ctx context.Context, c client.Client, obj client.Object, f Mu if (hasBeforeStatus || hasAfterStatus) && !reflect.DeepEqual(beforeStatus, afterStatus) { // Only issue a Status Patch if the resource has a status and the beforeStatus // and afterStatus copies differ + if result == OperationResultUpdated { + // If Status was replaced by Patch before, set it to afterStatus + objectAfterPatch, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) + if err != nil { + return result, err + } + if err = unstructured.SetNestedField(objectAfterPatch, afterStatus, "status"); err != nil { + return result, err + } + // If Status was replaced by Patch before, restore patched structure to the obj + if err = runtime.DefaultUnstructuredConverter.FromUnstructured(objectAfterPatch, obj); err != nil { + return result, err + } + } if err := c.Status().Patch(ctx, obj, statusPatch); err != nil { return result, err } diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue.go b/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue.go index 9f72302d1c..fb8987cfe9 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue.go @@ -26,6 +26,8 @@ import ( var enqueueLog = logf.RuntimeLog.WithName("eventhandler").WithName("EnqueueRequestForObject") +type empty struct{} + var _ EventHandler = &EnqueueRequestForObject{} // EnqueueRequestForObject enqueues a Request containing the Name and Namespace of the object that is the source of the Event. @@ -47,22 +49,18 @@ func (e *EnqueueRequestForObject) Create(evt event.CreateEvent, q workqueue.Rate // Update implements EventHandler func (e *EnqueueRequestForObject) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) { - if evt.ObjectOld != nil { - q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ - Name: evt.ObjectOld.GetName(), - Namespace: evt.ObjectOld.GetNamespace(), - }}) - } else { - enqueueLog.Error(nil, "UpdateEvent received with no old metadata", "event", evt) - } - if evt.ObjectNew != nil { q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ Name: evt.ObjectNew.GetName(), Namespace: evt.ObjectNew.GetNamespace(), }}) + } else if evt.ObjectOld != nil { + q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ + Name: evt.ObjectOld.GetName(), + Namespace: evt.ObjectOld.GetNamespace(), + }}) } else { - enqueueLog.Error(nil, "UpdateEvent received with no new metadata", "event", evt) + enqueueLog.Error(nil, "UpdateEvent received with no metadata", "event", evt) } } diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue_mapped.go b/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue_mapped.go index f98ec25638..585c21e718 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue_mapped.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue_mapped.go @@ -53,28 +53,36 @@ type enqueueRequestsFromMapFunc struct { // Create implements EventHandler func (e *enqueueRequestsFromMapFunc) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) { - e.mapAndEnqueue(q, evt.Object) + reqs := map[reconcile.Request]empty{} + e.mapAndEnqueue(q, evt.Object, reqs) } // Update implements EventHandler func (e *enqueueRequestsFromMapFunc) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) { - e.mapAndEnqueue(q, evt.ObjectOld) - e.mapAndEnqueue(q, evt.ObjectNew) + reqs := map[reconcile.Request]empty{} + e.mapAndEnqueue(q, evt.ObjectOld, reqs) + e.mapAndEnqueue(q, evt.ObjectNew, reqs) } // Delete implements EventHandler func (e *enqueueRequestsFromMapFunc) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) { - e.mapAndEnqueue(q, evt.Object) + reqs := map[reconcile.Request]empty{} + e.mapAndEnqueue(q, evt.Object, reqs) } // Generic implements EventHandler func (e *enqueueRequestsFromMapFunc) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) { - e.mapAndEnqueue(q, evt.Object) + reqs := map[reconcile.Request]empty{} + e.mapAndEnqueue(q, evt.Object, reqs) } -func (e *enqueueRequestsFromMapFunc) mapAndEnqueue(q workqueue.RateLimitingInterface, object client.Object) { +func (e *enqueueRequestsFromMapFunc) mapAndEnqueue(q workqueue.RateLimitingInterface, object client.Object, reqs map[reconcile.Request]empty) { for _, req := range e.toRequests(object) { - q.Add(req) + _, ok := reqs[req] + if !ok { + q.Add(req) + reqs[req] = empty{} + } } } diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue_owner.go b/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue_owner.go index 925b9e3c2d..8aa4ec52b2 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue_owner.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/handler/enqueue_owner.go @@ -59,31 +59,37 @@ type EnqueueRequestForOwner struct { // Create implements EventHandler func (e *EnqueueRequestForOwner) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) { - for _, req := range e.getOwnerReconcileRequest(evt.Object) { + reqs := map[reconcile.Request]empty{} + e.getOwnerReconcileRequest(evt.Object, reqs) + for req := range reqs { q.Add(req) } } // Update implements EventHandler func (e *EnqueueRequestForOwner) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) { - for _, req := range e.getOwnerReconcileRequest(evt.ObjectOld) { - q.Add(req) - } - for _, req := range e.getOwnerReconcileRequest(evt.ObjectNew) { + reqs := map[reconcile.Request]empty{} + e.getOwnerReconcileRequest(evt.ObjectOld, reqs) + e.getOwnerReconcileRequest(evt.ObjectNew, reqs) + for req := range reqs { q.Add(req) } } // Delete implements EventHandler func (e *EnqueueRequestForOwner) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) { - for _, req := range e.getOwnerReconcileRequest(evt.Object) { + reqs := map[reconcile.Request]empty{} + e.getOwnerReconcileRequest(evt.Object, reqs) + for req := range reqs { q.Add(req) } } // Generic implements EventHandler func (e *EnqueueRequestForOwner) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) { - for _, req := range e.getOwnerReconcileRequest(evt.Object) { + reqs := map[reconcile.Request]empty{} + e.getOwnerReconcileRequest(evt.Object, reqs) + for req := range reqs { q.Add(req) } } @@ -109,19 +115,18 @@ func (e *EnqueueRequestForOwner) parseOwnerTypeGroupKind(scheme *runtime.Scheme) return nil } -// getOwnerReconcileRequest looks at object and returns a slice of reconcile.Request to reconcile +// getOwnerReconcileRequest looks at object and builds a map of reconcile.Request to reconcile // owners of object that match e.OwnerType. -func (e *EnqueueRequestForOwner) getOwnerReconcileRequest(object metav1.Object) []reconcile.Request { +func (e *EnqueueRequestForOwner) getOwnerReconcileRequest(object metav1.Object, result map[reconcile.Request]empty) { // Iterate through the OwnerReferences looking for a match on Group and Kind against what was requested // by the user - var result []reconcile.Request for _, ref := range e.getOwnersReferences(object) { // Parse the Group out of the OwnerReference to compare it to what was parsed out of the requested OwnerType refGV, err := schema.ParseGroupVersion(ref.APIVersion) if err != nil { log.Error(err, "Could not parse OwnerReference APIVersion", "api version", ref.APIVersion) - return nil + return } // Compare the OwnerReference Group and Kind against the OwnerType Group and Kind specified by the user. @@ -138,18 +143,15 @@ func (e *EnqueueRequestForOwner) getOwnerReconcileRequest(object metav1.Object) mapping, err := e.mapper.RESTMapping(e.groupKind, refGV.Version) if err != nil { log.Error(err, "Could not retrieve rest mapping", "kind", e.groupKind) - return nil + return } if mapping.Scope.Name() != meta.RESTScopeNameRoot { request.Namespace = object.GetNamespace() } - result = append(result, request) + result[request] = empty{} } } - - // Return the matches - return result } // getOwnersReferences returns the OwnerReferences for an object as specified by the EnqueueRequestForOwner diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go b/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go index 28bf3bde5a..f5024502d9 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go @@ -25,7 +25,6 @@ import ( "github.com/go-logr/logr" utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/util/workqueue" "sigs.k8s.io/controller-runtime/pkg/handler" ctrlmetrics "sigs.k8s.io/controller-runtime/pkg/internal/controller/metrics" @@ -61,14 +60,12 @@ type Controller struct { Queue workqueue.RateLimitingInterface // SetFields is used to inject dependencies into other objects such as Sources, EventHandlers and Predicates + // Deprecated: the caller should handle injected fields itself. SetFields func(i interface{}) error // mu is used to synchronize Controller setup mu sync.Mutex - // JitterPeriod allows tests to reduce the JitterPeriod so they complete faster - JitterPeriod time.Duration - // Started is true if the Controller has been Started Started bool @@ -149,8 +146,12 @@ func (c *Controller) Start(ctx context.Context) error { c.ctx = ctx c.Queue = c.MakeQueue() - defer c.Queue.ShutDown() // needs to be outside the iife so that we shutdown after the stop channel is closed + go func() { + <-ctx.Done() + c.Queue.ShutDown() + }() + wg := &sync.WaitGroup{} err := func() error { defer c.mu.Unlock() @@ -202,19 +203,17 @@ func (c *Controller) Start(ctx context.Context) error { // which won't be garbage collected if we hold a reference to it. c.startWatches = nil - if c.JitterPeriod == 0 { - c.JitterPeriod = 1 * time.Second - } - // Launch workers to process resources c.Log.Info("Starting workers", "worker count", c.MaxConcurrentReconciles) + wg.Add(c.MaxConcurrentReconciles) for i := 0; i < c.MaxConcurrentReconciles; i++ { - go wait.UntilWithContext(ctx, func(ctx context.Context) { + go func() { + defer wg.Done() // Run a worker thread that just dequeues items, processes them, and marks them done. // It enforces that the reconcileHandler is never invoked concurrently with the same object. for c.processNextWorkItem(ctx) { } - }, c.JitterPeriod) + }() } c.Started = true @@ -225,7 +224,9 @@ func (c *Controller) Start(ctx context.Context) error { } <-ctx.Done() - c.Log.Info("Stopping workers") + c.Log.Info("Shutdown signal received, waiting for all workers to finish") + wg.Wait() + c.Log.Info("All workers finished") return nil } @@ -292,7 +293,7 @@ func (c *Controller) reconcileHandler(ctx context.Context, obj interface{}) { log := c.Log.WithValues("name", req.Name, "namespace", req.Namespace) ctx = logf.IntoContext(ctx, log) - // RunInformersAndControllers the syncHandler, passing it the namespace/Name string of the + // RunInformersAndControllers the syncHandler, passing it the Namespace/Name string of the // resource to be synced. if result, err := c.Do.Reconcile(ctx, req); err != nil { c.Queue.AddRateLimited(req) diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/internal/objectutil/filter.go b/vendor/sigs.k8s.io/controller-runtime/pkg/internal/objectutil/filter.go deleted file mode 100644 index 8513846e2c..0000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/internal/objectutil/filter.go +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package objectutil - -import ( - apimeta "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" -) - -// FilterWithLabels returns a copy of the items in objs matching labelSel -func FilterWithLabels(objs []runtime.Object, labelSel labels.Selector) ([]runtime.Object, error) { - outItems := make([]runtime.Object, 0, len(objs)) - for _, obj := range objs { - meta, err := apimeta.Accessor(obj) - if err != nil { - return nil, err - } - if labelSel != nil { - lbls := labels.Set(meta.GetLabels()) - if !labelSel.Matches(lbls) { - continue - } - } - outItems = append(outItems, obj.DeepCopyObject()) - } - return outItems, nil -} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/internal/objectutil/objectutil.go b/vendor/sigs.k8s.io/controller-runtime/pkg/internal/objectutil/objectutil.go new file mode 100644 index 0000000000..5264da3cc1 --- /dev/null +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/internal/objectutil/objectutil.go @@ -0,0 +1,79 @@ +/* +Copyright 2018 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. +*/ + +package objectutil + +import ( + "errors" + "fmt" + + "k8s.io/apimachinery/pkg/api/meta" + apimeta "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/client/apiutil" +) + +// FilterWithLabels returns a copy of the items in objs matching labelSel +func FilterWithLabels(objs []runtime.Object, labelSel labels.Selector) ([]runtime.Object, error) { + outItems := make([]runtime.Object, 0, len(objs)) + for _, obj := range objs { + meta, err := apimeta.Accessor(obj) + if err != nil { + return nil, err + } + if labelSel != nil { + lbls := labels.Set(meta.GetLabels()) + if !labelSel.Matches(lbls) { + continue + } + } + outItems = append(outItems, obj.DeepCopyObject()) + } + return outItems, nil +} + +// IsAPINamespaced returns true if the object is namespace scoped. +// For unstructured objects the gvk is found from the object itself. +func IsAPINamespaced(obj runtime.Object, scheme *runtime.Scheme, restmapper apimeta.RESTMapper) (bool, error) { + gvk, err := apiutil.GVKForObject(obj, scheme) + if err != nil { + return false, err + } + + return IsAPINamespacedWithGVK(gvk, scheme, restmapper) +} + +// IsAPINamespacedWithGVK returns true if the object having the provided +// GVK is namespace scoped. +func IsAPINamespacedWithGVK(gk schema.GroupVersionKind, scheme *runtime.Scheme, restmapper apimeta.RESTMapper) (bool, error) { + restmapping, err := restmapper.RESTMapping(schema.GroupKind{Group: gk.Group, Kind: gk.Kind}) + if err != nil { + return false, fmt.Errorf("failed to get restmapping: %w", err) + } + + scope := restmapping.Scope.Name() + + if scope == "" { + return false, errors.New("Scope cannot be identified. Empty scope returned") + } + + if scope != meta.RESTScopeNameRoot { + return true, nil + } + return false, nil +} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/internal/recorder/recorder.go b/vendor/sigs.k8s.io/controller-runtime/pkg/internal/recorder/recorder.go index c699f04ec0..cb8b7b6d63 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/internal/recorder/recorder.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/internal/recorder/recorder.go @@ -38,6 +38,9 @@ type EventBroadcasterProducer func() (caster record.EventBroadcaster, stopWithPr // Provider is a recorder.Provider that records events to the k8s API server // and to a logr Logger. type Provider struct { + lock sync.RWMutex + stopped bool + // scheme to specify when creating a recorder scheme *runtime.Scheme // logger is the logger to use when logging diagnostic event info @@ -70,7 +73,10 @@ func (p *Provider) Stop(shutdownCtx context.Context) { // an invocation of getBroadcaster. broadcaster := p.getBroadcaster() if p.stopBroadcaster { + p.lock.Lock() broadcaster.Shutdown() + p.stopped = true + p.lock.Unlock() } close(doneCh) }() @@ -144,13 +150,28 @@ func (l *lazyRecorder) ensureRecording() { func (l *lazyRecorder) Event(object runtime.Object, eventtype, reason, message string) { l.ensureRecording() - l.rec.Event(object, eventtype, reason, message) + + l.prov.lock.RLock() + if !l.prov.stopped { + l.rec.Event(object, eventtype, reason, message) + } + l.prov.lock.RUnlock() } func (l *lazyRecorder) Eventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{}) { l.ensureRecording() - l.rec.Eventf(object, eventtype, reason, messageFmt, args...) + + l.prov.lock.RLock() + if !l.prov.stopped { + l.rec.Eventf(object, eventtype, reason, messageFmt, args...) + } + l.prov.lock.RUnlock() } func (l *lazyRecorder) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) { l.ensureRecording() - l.rec.AnnotatedEventf(object, annotations, eventtype, reason, messageFmt, args...) + + l.prov.lock.RLock() + if !l.prov.stopped { + l.rec.AnnotatedEventf(object, annotations, eventtype, reason, messageFmt, args...) + } + l.prov.lock.RUnlock() } diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/log/warning_handler.go b/vendor/sigs.k8s.io/controller-runtime/pkg/log/warning_handler.go new file mode 100644 index 0000000000..d4ea12cebf --- /dev/null +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/log/warning_handler.go @@ -0,0 +1,76 @@ +/* +Copyright 2018 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. +*/ + +package log + +import ( + "sync" + + "github.com/go-logr/logr" +) + +// KubeAPIWarningLoggerOptions controls the behavior +// of a rest.WarningHandler constructed using NewKubeAPIWarningLogger() +type KubeAPIWarningLoggerOptions struct { + // Deduplicate indicates a given warning message should only be written once. + // Setting this to true in a long-running process handling many warnings can + // result in increased memory use. + Deduplicate bool +} + +// KubeAPIWarningLogger is a wrapper around +// a provided logr.Logger that implements the +// rest.WarningHandler interface. +type KubeAPIWarningLogger struct { + // logger is used to log responses with the warning header + logger logr.Logger + // opts contain options controlling warning output + opts KubeAPIWarningLoggerOptions + // writtenLock gurads written + writtenLock sync.Mutex + // used to keep track of already logged messages + // and help in de-duplication. + written map[string]struct{} +} + +// HandleWarningHeader handles logging for responses from API server that are +// warnings with code being 299 and uses a logr.Logger for it's logging purposes. +func (l *KubeAPIWarningLogger) HandleWarningHeader(code int, agent string, message string) { + if code != 299 || len(message) == 0 { + return + } + + if l.opts.Deduplicate { + l.writtenLock.Lock() + defer l.writtenLock.Unlock() + + if _, alreadyLogged := l.written[message]; alreadyLogged { + return + } + l.written[message] = struct{}{} + } + l.logger.Info(message) +} + +// NewKubeAPIWarningLogger returns an implementation of rest.WarningHandler that logs warnings +// with code = 299 to the provided logr.Logger. +func NewKubeAPIWarningLogger(l logr.Logger, opts KubeAPIWarningLoggerOptions) *KubeAPIWarningLogger { + h := &KubeAPIWarningLogger{logger: l, opts: opts} + if opts.Deduplicate { + h.written = map[string]struct{}{} + } + return h +} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/manager/client_builder.go b/vendor/sigs.k8s.io/controller-runtime/pkg/manager/client_builder.go deleted file mode 100644 index e2fea8d1f7..0000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/manager/client_builder.go +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2020 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. -*/ - -package manager - -import ( - "sigs.k8s.io/controller-runtime/pkg/cluster" -) - -// ClientBuilder builder is the interface for the client builder. -type ClientBuilder = cluster.ClientBuilder - -// NewClientBuilder returns a builder to build new clients to be passed when creating a Manager. -func NewClientBuilder() ClientBuilder { - return cluster.NewClientBuilder() -} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/manager/internal.go b/vendor/sigs.k8s.io/controller-runtime/pkg/manager/internal.go index fd92ea1cb4..c16a5bb5f3 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/manager/internal.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/manager/internal.go @@ -38,6 +38,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/cluster" + "sigs.k8s.io/controller-runtime/pkg/config/v1alpha1" "sigs.k8s.io/controller-runtime/pkg/healthz" intrec "sigs.k8s.io/controller-runtime/pkg/internal/recorder" "sigs.k8s.io/controller-runtime/pkg/metrics" @@ -66,6 +67,7 @@ type controllerManager struct { // leaderElectionRunnables is the set of Controllers that the controllerManager injects deps into and Starts. // These Runnables are managed by lead election. leaderElectionRunnables []Runnable + // nonLeaderElectionRunnables is the set of webhook servers that the controllerManager injects deps into and Starts. // These Runnables will not be blocked by lead election. nonLeaderElectionRunnables []Runnable @@ -108,6 +110,9 @@ type controllerManager struct { healthzStarted bool errChan chan error + // controllerOptions are the global controller options. + controllerOptions v1alpha1.ControllerConfigurationSpec + // Logger is the logger that should be used by this manager. // If none is set, it defaults to log.Log global logger. logger logr.Logger @@ -141,6 +146,9 @@ type controllerManager struct { certDir string webhookServer *webhook.Server + // webhookServerOnce will be called in GetWebhookServer() to optionally initialize + // webhookServer if unset, and Add() it to controllerManager. + webhookServerOnce sync.Once // leaseDuration is the duration that non-leader candidates will // wait to force acquire leadership. @@ -216,7 +224,11 @@ func (cm *controllerManager) Add(r Runnable) error { return nil } +// Deprecated: use the equivalent Options field to set a field. This method will be removed in v0.10. func (cm *controllerManager) SetFields(i interface{}) error { + if err := cm.cluster.SetFields(i); err != nil { + return err + } if _, err := inject.InjectorInto(cm.SetFields, i); err != nil { return err } @@ -226,9 +238,6 @@ func (cm *controllerManager) SetFields(i interface{}) error { if _, err := inject.LoggerInto(cm.logger, i); err != nil { return err } - if err := cm.cluster.SetFields(i); err != nil { - return err - } return nil } @@ -327,38 +336,29 @@ func (cm *controllerManager) GetAPIReader() client.Reader { } func (cm *controllerManager) GetWebhookServer() *webhook.Server { - server, wasNew := func() (*webhook.Server, bool) { - cm.mu.Lock() - defer cm.mu.Unlock() - - if cm.webhookServer != nil { - return cm.webhookServer, false - } - - cm.webhookServer = &webhook.Server{ - Port: cm.port, - Host: cm.host, - CertDir: cm.certDir, + cm.webhookServerOnce.Do(func() { + if cm.webhookServer == nil { + cm.webhookServer = &webhook.Server{ + Port: cm.port, + Host: cm.host, + CertDir: cm.certDir, + } } - return cm.webhookServer, true - }() - - // only add the server if *we ourselves* just registered it. - // Add has its own lock, so just do this separately -- there shouldn't - // be a "race" in this lock gap because the condition is the population - // of cm.webhookServer, not anything to do with Add. - if wasNew { - if err := cm.Add(server); err != nil { + if err := cm.Add(cm.webhookServer); err != nil { panic("unable to add webhook server to the controller manager") } - } - return server + }) + return cm.webhookServer } func (cm *controllerManager) GetLogger() logr.Logger { return cm.logger } +func (cm *controllerManager) GetControllerOptions() v1alpha1.ControllerConfigurationSpec { + return cm.controllerOptions +} + func (cm *controllerManager) serveMetrics() { handler := promhttp.HandlerFor(metrics.Registry, promhttp.HandlerOpts{ ErrorHandling: promhttp.HTTPErrorOnError, @@ -578,10 +578,27 @@ func (cm *controllerManager) startNonLeaderElectionRunnables() { cm.mu.Lock() defer cm.mu.Unlock() + // First start any webhook servers, which includes conversion, validation, and defaulting + // webhooks that are registered. + // + // WARNING: Webhooks MUST start before any cache is populated, otherwise there is a race condition + // between conversion webhooks and the cache sync (usually initial list) which causes the webhooks + // to never start because no cache can be populated. + for _, c := range cm.nonLeaderElectionRunnables { + if _, ok := c.(*webhook.Server); ok { + cm.startRunnable(c) + } + } + + // Start and wait for caches. cm.waitForCache(cm.internalCtx) // Start the non-leaderelection Runnables after the cache has synced for _, c := range cm.nonLeaderElectionRunnables { + if _, ok := c.(*webhook.Server); ok { + continue + } + // Controllers block, but we want to return an error if any have an error starting. // Write any Start errors to a channel so we can return them cm.startRunnable(c) diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/manager/manager.go b/vendor/sigs.k8s.io/controller-runtime/pkg/manager/manager.go index 3fd790d34e..843919427d 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/manager/manager.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/manager/manager.go @@ -90,6 +90,9 @@ type Manager interface { // GetLogger returns this manager's logger. GetLogger() logr.Logger + + // GetControllerOptions returns controller global configuration options. + GetControllerOptions() v1alpha1.ControllerConfigurationSpec } // Options are the arguments for creating a new Manager @@ -108,6 +111,25 @@ type Options struct { // value only if you know what you are doing. Defaults to 10 hours if unset. // there will a 10 percent jitter between the SyncPeriod of all controllers // so that all controllers will not send list requests simultaneously. + // + // This applies to all controllers. + // + // A period sync happens for two reasons: + // 1. To insure against a bug in the controller that causes an object to not + // be requeued, when it otherwise should be requeued. + // 2. To insure against an unknown bug in controller-runtime, or its dependencies, + // that causes an object to not be requeued, when it otherwise should be + // requeued, or to be removed from the queue, when it otherwise should not + // be removed. + // + // If you want + // 1. to insure against missed watch events, or + // 2. to poll services that cannot be watched, + // then we recommend that, instead of changing the default period, the + // controller requeue, with a constant duration `t`, whenever the controller + // is "done" with an object, and would otherwise not requeue it, i.e., we + // recommend the `Reconcile` function return `reconcile.Result{RequeueAfter: t}`, + // instead of `reconcile.Result{}`. SyncPeriod *time.Duration // Logger is the logger that should be used by this manager. @@ -187,27 +209,34 @@ type Options struct { LivenessEndpointName string // Port is the port that the webhook server serves at. - // It is used to set webhook.Server.Port. + // It is used to set webhook.Server.Port if WebhookServer is not set. Port int // Host is the hostname that the webhook server binds to. - // It is used to set webhook.Server.Host. + // It is used to set webhook.Server.Host if WebhookServer is not set. Host string // CertDir is the directory that contains the server key and certificate. - // if not set, webhook server would look up the server key and certificate in + // If not set, webhook server would look up the server key and certificate in // {TempDir}/k8s-webhook-server/serving-certs. The server key and certificate // must be named tls.key and tls.crt, respectively. + // It is used to set webhook.Server.CertDir if WebhookServer is not set. CertDir string + + // WebhookServer is an externally configured webhook.Server. By default, + // a Manager will create a default server using Port, Host, and CertDir; + // if this is set, the Manager will use this server instead. + WebhookServer *webhook.Server + // Functions to all for a user to customize the values that will be injected. // NewCache is the function that will create the cache to be used // by the manager. If not set this will use the default new cache function. NewCache cache.NewCacheFunc - // ClientBuilder is the builder that creates the client to be used by the manager. + // NewClient is the func that creates the client to be used by the manager. // If not set this will create the default DelegatingClient that will // use the cache for reads and the client for writes. - ClientBuilder ClientBuilder + NewClient cluster.NewClientFunc // ClientDisableCacheFor tells the client that, if any cache is used, to bypass it // for the given objects. @@ -230,6 +259,11 @@ type Options struct { // The graceful shutdown is skipped for safety reasons in case the leader election lease is lost. GracefulShutdownTimeout *time.Duration + // Controller contains global configuration options for controllers + // registered within this manager. + // +optional + Controller v1alpha1.ControllerConfigurationSpec + // makeBroadcaster allows deferring the creation of the broadcaster to // avoid leaking goroutines if we never call Start on this manager. It also // returns whether or not this is a "owned" broadcaster, and as such should be @@ -282,7 +316,7 @@ func New(config *rest.Config, options Options) (Manager, error) { clusterOptions.SyncPeriod = options.SyncPeriod clusterOptions.Namespace = options.Namespace clusterOptions.NewCache = options.NewCache - clusterOptions.ClientBuilder = options.ClientBuilder + clusterOptions.NewClient = options.NewClient clusterOptions.ClientDisableCacheFor = options.ClientDisableCacheFor clusterOptions.DryRunClient = options.DryRunClient clusterOptions.EventBroadcaster = options.EventBroadcaster @@ -300,9 +334,9 @@ func New(config *rest.Config, options Options) (Manager, error) { } // Create the resource lock to enable leader election) - leaderConfig := config - if options.LeaderElectionConfig != nil { - leaderConfig = options.LeaderElectionConfig + leaderConfig := options.LeaderElectionConfig + if leaderConfig == nil { + leaderConfig = rest.CopyConfig(config) } resourceLock, err := options.newResourceLock(leaderConfig, recorderProvider, leaderelection.Options{ LeaderElection: options.LeaderElection, @@ -332,25 +366,28 @@ func New(config *rest.Config, options Options) (Manager, error) { } return &controllerManager{ - cluster: cluster, - recorderProvider: recorderProvider, - resourceLock: resourceLock, - metricsListener: metricsListener, - metricsExtraHandlers: metricsExtraHandlers, - logger: options.Logger, - elected: make(chan struct{}), - port: options.Port, - host: options.Host, - certDir: options.CertDir, - leaseDuration: *options.LeaseDuration, - renewDeadline: *options.RenewDeadline, - retryPeriod: *options.RetryPeriod, - healthProbeListener: healthProbeListener, - readinessEndpointName: options.ReadinessEndpointName, - livenessEndpointName: options.LivenessEndpointName, - gracefulShutdownTimeout: *options.GracefulShutdownTimeout, - internalProceduresStop: make(chan struct{}), - leaderElectionStopped: make(chan struct{}), + cluster: cluster, + recorderProvider: recorderProvider, + resourceLock: resourceLock, + metricsListener: metricsListener, + metricsExtraHandlers: metricsExtraHandlers, + controllerOptions: options.Controller, + logger: options.Logger, + elected: make(chan struct{}), + port: options.Port, + host: options.Host, + certDir: options.CertDir, + webhookServer: options.WebhookServer, + leaseDuration: *options.LeaseDuration, + renewDeadline: *options.RenewDeadline, + retryPeriod: *options.RetryPeriod, + healthProbeListener: healthProbeListener, + readinessEndpointName: options.ReadinessEndpointName, + livenessEndpointName: options.LivenessEndpointName, + gracefulShutdownTimeout: *options.GracefulShutdownTimeout, + internalProceduresStop: make(chan struct{}), + leaderElectionStopped: make(chan struct{}), + leaderElectionReleaseOnCancel: options.LeaderElectionReleaseOnCancel, }, nil } @@ -408,6 +445,16 @@ func (o Options) AndFrom(loader config.ControllerManagerConfiguration) (Options, o.CertDir = newObj.Webhook.CertDir } + if newObj.Controller != nil { + if o.Controller.CacheSyncTimeout == nil && newObj.Controller.CacheSyncTimeout != nil { + o.Controller.CacheSyncTimeout = newObj.Controller.CacheSyncTimeout + } + + if len(o.Controller.GroupKindConcurrency) == 0 && len(newObj.Controller.GroupKindConcurrency) > 0 { + o.Controller.GroupKindConcurrency = newObj.Controller.GroupKindConcurrency + } + } + return o, nil } diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/metrics/client_go_adapter.go b/vendor/sigs.k8s.io/controller-runtime/pkg/metrics/client_go_adapter.go index 17d3eccd20..3df9b0b0b0 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/metrics/client_go_adapter.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/metrics/client_go_adapter.go @@ -17,6 +17,7 @@ limitations under the License. package metrics import ( + "context" "net/url" "time" @@ -162,7 +163,7 @@ type latencyAdapter struct { metric *prometheus.HistogramVec } -func (l *latencyAdapter) Observe(verb string, u url.URL, latency time.Duration) { +func (l *latencyAdapter) Observe(_ context.Context, verb string, u url.URL, latency time.Duration) { l.metric.WithLabelValues(verb, u.String()).Observe(latency.Seconds()) } @@ -170,7 +171,7 @@ type resultAdapter struct { metric *prometheus.CounterVec } -func (r *resultAdapter) Increment(code, method, host string) { +func (r *resultAdapter) Increment(_ context.Context, code, method, host string) { r.metric.WithLabelValues(code, method, host).Inc() } diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/runtime/inject/inject.go b/vendor/sigs.k8s.io/controller-runtime/pkg/runtime/inject/inject.go index 147899d45b..8874c75727 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/runtime/inject/inject.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/runtime/inject/inject.go @@ -26,17 +26,8 @@ import ( "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" - logf "sigs.k8s.io/controller-runtime/pkg/internal/log" ) -// log is specifically to add a warning message for injectors. -var log = logf.RuntimeLog.WithName("injectors-warning") - -// logWarningMsg logs a warning message if inject is used -func logWarningMsg() { - log.Info("Injectors are deprecated, and will be removed in v0.10.x") -} - // Cache is used by the ControllerManager to inject Cache into Sources, EventHandlers, Predicates, and // Reconciles type Cache interface { @@ -47,7 +38,6 @@ type Cache interface { // false if i does not implement Cache. func CacheInto(c cache.Cache, i interface{}) (bool, error) { if s, ok := i.(Cache); ok { - logWarningMsg() return true, s.InjectCache(c) } return false, nil @@ -62,7 +52,6 @@ type APIReader interface { // Returns false if i does not implement APIReader func APIReaderInto(reader client.Reader, i interface{}) (bool, error) { if s, ok := i.(APIReader); ok { - logWarningMsg() return true, s.InjectAPIReader(reader) } return false, nil @@ -78,7 +67,6 @@ type Config interface { // false if i does not implement Config. func ConfigInto(config *rest.Config, i interface{}) (bool, error) { if s, ok := i.(Config); ok { - logWarningMsg() return true, s.InjectConfig(config) } return false, nil @@ -94,7 +82,6 @@ type Client interface { // false if i does not implement Client. func ClientInto(client client.Client, i interface{}) (bool, error) { if s, ok := i.(Client); ok { - logWarningMsg() return true, s.InjectClient(client) } return false, nil @@ -110,7 +97,6 @@ type Scheme interface { // false if i does not implement Scheme. func SchemeInto(scheme *runtime.Scheme, i interface{}) (bool, error) { if is, ok := i.(Scheme); ok { - logWarningMsg() return true, is.InjectScheme(scheme) } return false, nil @@ -126,7 +112,6 @@ type Stoppable interface { // Returns false if i does not implement Stoppable. func StopChannelInto(stop <-chan struct{}, i interface{}) (bool, error) { if s, ok := i.(Stoppable); ok { - logWarningMsg() return true, s.InjectStopChannel(stop) } return false, nil @@ -141,7 +126,6 @@ type Mapper interface { // Returns false if i does not implement Mapper. func MapperInto(mapper meta.RESTMapper, i interface{}) (bool, error) { if m, ok := i.(Mapper); ok { - logWarningMsg() return true, m.InjectMapper(mapper) } return false, nil @@ -159,7 +143,6 @@ type Injector interface { // false if i does not implement Injector. func InjectorInto(f Func, i interface{}) (bool, error) { if ii, ok := i.(Injector); ok { - logWarningMsg() return true, ii.InjectFunc(f) } return false, nil @@ -175,7 +158,6 @@ type Logger interface { // returning true if a InjectLogger was called, and false otherwise. func LoggerInto(l logr.Logger, i interface{}) (bool, error) { if injectable, wantsLogger := i.(Logger); wantsLogger { - logWarningMsg() return true, injectable.InjectLogger(l) } return false, nil diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/source/source.go b/vendor/sigs.k8s.io/controller-runtime/pkg/source/source.go index c4a74af02a..adabbaf917 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/source/source.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/source/source.go @@ -91,6 +91,11 @@ type Kind struct { // cache used to watch APIs cache cache.Cache + + // started may contain an error if one was encountered during startup. If its closed and does not + // contain an error, startup and syncing finished. + started chan error + startCancel func() } var _ SyncingSource = &Kind{} @@ -110,16 +115,30 @@ func (ks *Kind) Start(ctx context.Context, handler handler.EventHandler, queue w return fmt.Errorf("must call CacheInto on Kind before calling Start") } - // Lookup the Informer from the Cache and add an EventHandler which populates the Queue - i, err := ks.cache.GetInformer(ctx, ks.Type) - if err != nil { - if kindMatchErr, ok := err.(*meta.NoKindMatchError); ok { - log.Error(err, "if kind is a CRD, it should be installed before calling Start", - "kind", kindMatchErr.GroupKind) + // cache.GetInformer will block until its context is cancelled if the cache was already started and it can not + // sync that informer (most commonly due to RBAC issues). + ctx, ks.startCancel = context.WithCancel(ctx) + ks.started = make(chan error) + go func() { + // Lookup the Informer from the Cache and add an EventHandler which populates the Queue + i, err := ks.cache.GetInformer(ctx, ks.Type) + if err != nil { + kindMatchErr := &meta.NoKindMatchError{} + if errors.As(err, &kindMatchErr) { + log.Error(err, "if kind is a CRD, it should be installed before calling Start", + "kind", kindMatchErr.GroupKind) + } + ks.started <- err + return } - return err - } - i.AddEventHandler(internal.EventHandler{Queue: queue, EventHandler: handler, Predicates: prct}) + i.AddEventHandler(internal.EventHandler{Queue: queue, EventHandler: handler, Predicates: prct}) + if !ks.cache.WaitForCacheSync(ctx) { + // Would be great to return something more informative here + ks.started <- errors.New("cache did not sync") + } + close(ks.started) + }() + return nil } @@ -133,11 +152,13 @@ func (ks *Kind) String() string { // WaitForSync implements SyncingSource to allow controllers to wait with starting // workers until the cache is synced. func (ks *Kind) WaitForSync(ctx context.Context) error { - if !ks.cache.WaitForCacheSync(ctx) { - // Would be great to return something more informative here - return errors.New("cache did not sync") + select { + case err := <-ks.started: + return err + case <-ctx.Done(): + ks.startCancel() + return errors.New("timed out waiting for cache to be synced") } - return nil } var _ inject.Cache = &Kind{} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/http.go b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/http.go index 245e2d8ae1..052f803161 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/http.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/http.go @@ -51,14 +51,7 @@ func (wh *Webhook) ServeHTTP(w http.ResponseWriter, r *http.Request) { } var reviewResponse Response - if r.Body != nil { - if body, err = ioutil.ReadAll(r.Body); err != nil { - wh.log.Error(err, "unable to read the body from the incoming request") - reviewResponse = Errored(http.StatusBadRequest, err) - wh.writeResponse(w, reviewResponse) - return - } - } else { + if r.Body == nil { err = errors.New("request body is empty") wh.log.Error(err, "bad request") reviewResponse = Errored(http.StatusBadRequest, err) @@ -66,6 +59,14 @@ func (wh *Webhook) ServeHTTP(w http.ResponseWriter, r *http.Request) { return } + defer r.Body.Close() + if body, err = ioutil.ReadAll(r.Body); err != nil { + wh.log.Error(err, "unable to read the body from the incoming request") + reviewResponse = Errored(http.StatusBadRequest, err) + wh.writeResponse(w, reviewResponse) + return + } + // verify the content type is accurate contentType := r.Header.Get("Content-Type") if contentType != "application/json" { @@ -96,7 +97,6 @@ func (wh *Webhook) ServeHTTP(w http.ResponseWriter, r *http.Request) { } wh.log.V(1).Info("received request", "UID", req.UID, "kind", req.Kind, "resource", req.Resource) - // TODO: add panic-recovery for Handle reviewResponse = wh.Handle(ctx, req) wh.writeResponseTyped(w, reviewResponse, actualAdmRevGVK) } diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/multi.go b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/multi.go index e6179d3729..26900cf2eb 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/multi.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/multi.go @@ -77,6 +77,16 @@ func (hs multiMutating) InjectFunc(f inject.Func) error { return nil } +// InjectDecoder injects the decoder into the handlers. +func (hs multiMutating) InjectDecoder(d *Decoder) error { + for _, handler := range hs { + if _, err := InjectDecoderInto(d, handler); err != nil { + return err + } + } + return nil +} + // MultiMutatingHandler combines multiple mutating webhook handlers into a single // mutating webhook handler. Handlers are called in sequential order, and the first // `allowed: false` response may short-circuit the rest. Users must take care to @@ -125,3 +135,13 @@ func (hs multiValidating) InjectFunc(f inject.Func) error { return nil } + +// InjectDecoder injects the decoder into the handlers. +func (hs multiValidating) InjectDecoder(d *Decoder) error { + for _, handler := range hs { + if _, err := InjectDecoderInto(d, handler); err != nil { + return err + } + } + return nil +} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/webhook.go b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/webhook.go index 4430c3132c..d8c7721501 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/webhook.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/webhook.go @@ -27,8 +27,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/json" + "k8s.io/client-go/kubernetes/scheme" + logf "sigs.k8s.io/controller-runtime/pkg/internal/log" "sigs.k8s.io/controller-runtime/pkg/runtime/inject" + "sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics" ) var ( @@ -110,6 +113,9 @@ func (f HandlerFunc) Handle(ctx context.Context, req Request) Response { } // Webhook represents each individual webhook. +// +// It must be registered with a webhook.Server or +// populated by StandaloneWebhook to be ran on an arbitrary HTTP server. type Webhook struct { // Handler actually processes an admission request returning whether it was allowed or denied, // and potentially patches to apply to the handler. @@ -203,3 +209,47 @@ func (w *Webhook) InjectFunc(f inject.Func) error { return setFields(w.Handler) } + +// StandaloneOptions let you configure a StandaloneWebhook. +type StandaloneOptions struct { + // Scheme is the scheme used to resolve runtime.Objects to GroupVersionKinds / Resources + // Defaults to the kubernetes/client-go scheme.Scheme, but it's almost always better + // idea to pass your own scheme in. See the documentation in pkg/scheme for more information. + Scheme *runtime.Scheme + // Logger to be used by the webhook. + // If none is set, it defaults to log.Log global logger. + Logger logr.Logger + // MetricsPath is used for labelling prometheus metrics + // by the path is served on. + // If none is set, prometheus metrics will not be generated. + MetricsPath string +} + +// StandaloneWebhook prepares a webhook for use without a webhook.Server, +// passing in the information normally populated by webhook.Server +// and instrumenting the webhook with metrics. +// +// Use this to attach your webhook to an arbitrary HTTP server or mux. +// +// Note that you are responsible for terminating TLS if you use StandaloneWebhook +// in your own server/mux. In order to be accessed by a kubernetes cluster, +// all webhook servers require TLS. +func StandaloneWebhook(hook *Webhook, opts StandaloneOptions) (http.Handler, error) { + if opts.Scheme == nil { + opts.Scheme = scheme.Scheme + } + + if err := hook.InjectScheme(opts.Scheme); err != nil { + return nil, err + } + + if opts.Logger == nil { + opts.Logger = logf.RuntimeLog.WithName("webhook") + } + hook.log = opts.Logger + + if opts.MetricsPath == "" { + return hook, nil + } + return metrics.InstrumentedHook(opts.MetricsPath, hook), nil +} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/conversion/decoder.go b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/conversion/decoder.go index 8a145cd978..6a9e9c2365 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/conversion/decoder.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/conversion/decoder.go @@ -1,3 +1,19 @@ +/* +Copyright 2021 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. +*/ + package conversion import ( diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics/metrics.go b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics/metrics.go index a29643b244..557004908b 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics/metrics.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics/metrics.go @@ -17,7 +17,10 @@ limitations under the License. package metrics import ( + "net/http" + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promhttp" "sigs.k8s.io/controller-runtime/pkg/metrics" ) @@ -59,3 +62,24 @@ var ( func init() { metrics.Registry.MustRegister(RequestLatency, RequestTotal, RequestInFlight) } + +// InstrumentedHook adds some instrumentation on top of the given webhook. +func InstrumentedHook(path string, hookRaw http.Handler) http.Handler { + lbl := prometheus.Labels{"webhook": path} + + lat := RequestLatency.MustCurryWith(lbl) + cnt := RequestTotal.MustCurryWith(lbl) + gge := RequestInFlight.With(lbl) + + // Initialize the most likely HTTP status codes. + cnt.WithLabelValues("200") + cnt.WithLabelValues("500") + + return promhttp.InstrumentHandlerDuration( + lat, + promhttp.InstrumentHandlerCounter( + cnt, + promhttp.InstrumentHandlerInFlight(gge, hookRaw), + ), + ) +} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/server.go b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/server.go index 721df490a0..cdd34c9660 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/server.go +++ b/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/server.go @@ -29,10 +29,10 @@ import ( "strconv" "sync" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promhttp" + "k8s.io/apimachinery/pkg/runtime" + kscheme "k8s.io/client-go/kubernetes/scheme" + "sigs.k8s.io/controller-runtime/pkg/certwatcher" "sigs.k8s.io/controller-runtime/pkg/runtime/inject" - "sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher" "sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics" ) @@ -41,6 +41,12 @@ var DefaultPort = 9443 // Server is an admission webhook server that can serve traffic and // generates related k8s resources for deploying. +// +// TLS is required for a webhook to be accessed by kubernetes, so +// you must provide a CertName and KeyName or have valid cert/key +// at the default locations (tls.crt and tls.key). If you do not +// want to configure TLS (i.e for testing purposes) run an +// admission.StandaloneWebhook in your own server. type Server struct { // Host is the address that the server will listen on. // Defaults to "" - all addresses. @@ -124,7 +130,7 @@ func (s *Server) Register(path string, hook http.Handler) { } // TODO(directxman12): call setfields if we've already started the server s.webhooks[path] = hook - s.WebhookMux.Handle(path, instrumentedHook(path, hook)) + s.WebhookMux.Handle(path, metrics.InstrumentedHook(path, hook)) regLog := log.WithValues("path", path) regLog.Info("registering webhook") @@ -149,25 +155,24 @@ func (s *Server) Register(path string, hook http.Handler) { } } -// instrumentedHook adds some instrumentation on top of the given webhook. -func instrumentedHook(path string, hookRaw http.Handler) http.Handler { - lbl := prometheus.Labels{"webhook": path} - - lat := metrics.RequestLatency.MustCurryWith(lbl) - cnt := metrics.RequestTotal.MustCurryWith(lbl) - gge := metrics.RequestInFlight.With(lbl) - - // Initialize the most likely HTTP status codes. - cnt.WithLabelValues("200") - cnt.WithLabelValues("500") - - return promhttp.InstrumentHandlerDuration( - lat, - promhttp.InstrumentHandlerCounter( - cnt, - promhttp.InstrumentHandlerInFlight(gge, hookRaw), - ), - ) +// StartStandalone runs a webhook server without +// a controller manager. +func (s *Server) StartStandalone(ctx context.Context, scheme *runtime.Scheme) error { + // Use the Kubernetes client-go scheme if none is specified + if scheme == nil { + scheme = kscheme.Scheme + } + + if err := s.InjectFunc(func(i interface{}) error { + if _, err := inject.SchemeInto(scheme, i); err != nil { + return err + } + return nil + }); err != nil { + return err + } + + return s.Start(ctx) } // Start runs the server. diff --git a/vendor/sigs.k8s.io/kustomize/LICENSE b/vendor/sigs.k8s.io/kustomize/LICENSE deleted file mode 100644 index 8dada3edaf..0000000000 --- a/vendor/sigs.k8s.io/kustomize/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - 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. diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/AnnotationsTransformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/AnnotationsTransformer.go new file mode 100644 index 0000000000..68d351e181 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/AnnotationsTransformer.go @@ -0,0 +1,44 @@ +// Code generated by pluginator on AnnotationsTransformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "sigs.k8s.io/kustomize/api/filters/annotations" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +// Add the given annotations to the given field specifications. +type AnnotationsTransformerPlugin struct { + Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` +} + +func (p *AnnotationsTransformerPlugin) Config( + _ *resmap.PluginHelpers, c []byte) (err error) { + p.Annotations = nil + p.FieldSpecs = nil + return yaml.Unmarshal(c, p) +} + +func (p *AnnotationsTransformerPlugin) Transform(m resmap.ResMap) error { + if len(p.Annotations) == 0 { + return nil + } + for _, r := range m.Resources() { + err := r.ApplyFilter(annotations.Filter{ + Annotations: p.Annotations, + FsSlice: p.FieldSpecs, + }) + if err != nil { + return err + } + } + return nil +} + +func NewAnnotationsTransformerPlugin() resmap.TransformerPlugin { + return &AnnotationsTransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/ConfigMapGenerator.go b/vendor/sigs.k8s.io/kustomize/api/builtins/ConfigMapGenerator.go new file mode 100644 index 0000000000..d853a1cfd4 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/ConfigMapGenerator.go @@ -0,0 +1,39 @@ +// Code generated by pluginator on ConfigMapGenerator; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "sigs.k8s.io/kustomize/api/kv" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +type ConfigMapGeneratorPlugin struct { + h *resmap.PluginHelpers + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + types.ConfigMapArgs +} + +func (p *ConfigMapGeneratorPlugin) Config(h *resmap.PluginHelpers, config []byte) (err error) { + p.ConfigMapArgs = types.ConfigMapArgs{} + err = yaml.Unmarshal(config, p) + if p.ConfigMapArgs.Name == "" { + p.ConfigMapArgs.Name = p.Name + } + if p.ConfigMapArgs.Namespace == "" { + p.ConfigMapArgs.Namespace = p.Namespace + } + p.h = h + return +} + +func (p *ConfigMapGeneratorPlugin) Generate() (resmap.ResMap, error) { + return p.h.ResmapFactory().FromConfigMapArgs( + kv.NewLoader(p.h.Loader(), p.h.Validator()), p.ConfigMapArgs) +} + +func NewConfigMapGeneratorPlugin() resmap.GeneratorPlugin { + return &ConfigMapGeneratorPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/HashTransformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/HashTransformer.go new file mode 100644 index 0000000000..54586beeb3 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/HashTransformer.go @@ -0,0 +1,40 @@ +// Code generated by pluginator on HashTransformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "fmt" + + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/resmap" +) + +type HashTransformerPlugin struct { + hasher ifc.KustHasher +} + +func (p *HashTransformerPlugin) Config( + h *resmap.PluginHelpers, _ []byte) (err error) { + p.hasher = h.ResmapFactory().RF().Hasher() + return nil +} + +// Transform appends hash to generated resources. +func (p *HashTransformerPlugin) Transform(m resmap.ResMap) error { + for _, res := range m.Resources() { + if res.NeedHashSuffix() { + h, err := res.Hash(p.hasher) + if err != nil { + return err + } + res.StorePreviousId() + res.SetName(fmt.Sprintf("%s-%s", res.GetName(), h)) + } + } + return nil +} + +func NewHashTransformerPlugin() resmap.TransformerPlugin { + return &HashTransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/HelmChartInflationGenerator.go b/vendor/sigs.k8s.io/kustomize/api/builtins/HelmChartInflationGenerator.go new file mode 100644 index 0000000000..7037a01b5f --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/HelmChartInflationGenerator.go @@ -0,0 +1,333 @@ +// Code generated by pluginator on HelmChartInflationGenerator; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "bytes" + "fmt" + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "regexp" + "strings" + + "github.com/imdario/mergo" + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +// HelmChartInflationGeneratorPlugin is a plugin to generate resources +// from a remote or local helm chart. +type HelmChartInflationGeneratorPlugin struct { + h *resmap.PluginHelpers + types.HelmGlobals + types.HelmChart + tmpDir string +} + +var KustomizePlugin HelmChartInflationGeneratorPlugin + +const ( + valuesMergeOptionMerge = "merge" + valuesMergeOptionOverride = "override" + valuesMergeOptionReplace = "replace" +) + +var legalMergeOptions = []string{ + valuesMergeOptionMerge, + valuesMergeOptionOverride, + valuesMergeOptionReplace, +} + +// Config uses the input plugin configurations `config` to setup the generator +// options +func (p *HelmChartInflationGeneratorPlugin) Config( + h *resmap.PluginHelpers, config []byte) (err error) { + if h.GeneralConfig() == nil { + return fmt.Errorf("unable to access general config") + } + if !h.GeneralConfig().HelmConfig.Enabled { + return fmt.Errorf("must specify --enable-helm") + } + if h.GeneralConfig().HelmConfig.Command == "" { + return fmt.Errorf("must specify --helm-command") + } + p.h = h + if err = yaml.Unmarshal(config, p); err != nil { + return + } + return p.validateArgs() +} + +// This uses the real file system since tmpDir may be used +// by the helm subprocess. Cannot use a chroot jail or fake +// filesystem since we allow the user to use previously +// downloaded charts. This is safe since this plugin is +// owned by kustomize. +func (p *HelmChartInflationGeneratorPlugin) establishTmpDir() (err error) { + if p.tmpDir != "" { + // already done. + return nil + } + p.tmpDir, err = ioutil.TempDir("", "kustomize-helm-") + return err +} + +func (p *HelmChartInflationGeneratorPlugin) validateArgs() (err error) { + if p.Name == "" { + return fmt.Errorf("chart name cannot be empty") + } + + // ChartHome might be consulted by the plugin (to read + // values files below it), so it must be located under + // the loader root (unless root restrictions are + // disabled, in which case this can be an absolute path). + if p.ChartHome == "" { + p.ChartHome = "charts" + } + + // The ValuesFile may be consulted by the plugin, so it must + // be under the loader root (unless root restrictions are + // disabled). + if p.ValuesFile == "" { + p.ValuesFile = filepath.Join(p.ChartHome, p.Name, "values.yaml") + } + + if err = p.errIfIllegalValuesMerge(); err != nil { + return err + } + + // ConfigHome is not loaded by the plugin, and can be located anywhere. + if p.ConfigHome == "" { + if err = p.establishTmpDir(); err != nil { + return errors.Wrap( + err, "unable to create tmp dir for HELM_CONFIG_HOME") + } + p.ConfigHome = filepath.Join(p.tmpDir, "helm") + } + return nil +} + +func (p *HelmChartInflationGeneratorPlugin) errIfIllegalValuesMerge() error { + if p.ValuesMerge == "" { + // Use the default. + p.ValuesMerge = valuesMergeOptionOverride + return nil + } + for _, opt := range legalMergeOptions { + if p.ValuesMerge == opt { + return nil + } + } + return fmt.Errorf("valuesMerge must be one of %v", legalMergeOptions) +} + +func (p *HelmChartInflationGeneratorPlugin) absChartHome() string { + if filepath.IsAbs(p.ChartHome) { + return p.ChartHome + } + return filepath.Join(p.h.Loader().Root(), p.ChartHome) +} + +func (p *HelmChartInflationGeneratorPlugin) runHelmCommand( + args []string) ([]byte, error) { + stdout := new(bytes.Buffer) + stderr := new(bytes.Buffer) + cmd := exec.Command(p.h.GeneralConfig().HelmConfig.Command, args...) + cmd.Stdout = stdout + cmd.Stderr = stderr + env := []string{ + fmt.Sprintf("HELM_CONFIG_HOME=%s", p.ConfigHome), + fmt.Sprintf("HELM_CACHE_HOME=%s/.cache", p.ConfigHome), + fmt.Sprintf("HELM_DATA_HOME=%s/.data", p.ConfigHome)} + cmd.Env = append(os.Environ(), env...) + err := cmd.Run() + if err != nil { + helm := p.h.GeneralConfig().HelmConfig.Command + err = errors.Wrap( + fmt.Errorf( + "unable to run: '%s %s' with env=%s (is '%s' installed?)", + helm, strings.Join(args, " "), env, helm), + stderr.String(), + ) + } + return stdout.Bytes(), err +} + +// createNewMergedValuesFile replaces/merges original values file with ValuesInline. +func (p *HelmChartInflationGeneratorPlugin) createNewMergedValuesFile() ( + path string, err error) { + if p.ValuesMerge == valuesMergeOptionMerge || + p.ValuesMerge == valuesMergeOptionOverride { + if err = p.replaceValuesInline(); err != nil { + return "", err + } + } + var b []byte + b, err = yaml.Marshal(p.ValuesInline) + if err != nil { + return "", err + } + return p.writeValuesBytes(b) +} + +func (p *HelmChartInflationGeneratorPlugin) replaceValuesInline() error { + pValues, err := p.h.Loader().Load(p.ValuesFile) + if err != nil { + return err + } + chValues := make(map[string]interface{}) + if err = yaml.Unmarshal(pValues, &chValues); err != nil { + return err + } + switch p.ValuesMerge { + case valuesMergeOptionOverride: + err = mergo.Merge( + &chValues, p.ValuesInline, mergo.WithOverride) + case valuesMergeOptionMerge: + err = mergo.Merge(&chValues, p.ValuesInline) + } + p.ValuesInline = chValues + return err +} + +// copyValuesFile to avoid branching. TODO: get rid of this. +func (p *HelmChartInflationGeneratorPlugin) copyValuesFile() (string, error) { + b, err := p.h.Loader().Load(p.ValuesFile) + if err != nil { + return "", err + } + return p.writeValuesBytes(b) +} + +// Write a absolute path file in the tmp file system. +func (p *HelmChartInflationGeneratorPlugin) writeValuesBytes( + b []byte) (string, error) { + if err := p.establishTmpDir(); err != nil { + return "", fmt.Errorf("cannot create tmp dir to write helm values") + } + path := filepath.Join(p.tmpDir, p.Name+"-kustomize-values.yaml") + return path, ioutil.WriteFile(path, b, 0644) +} + +func (p *HelmChartInflationGeneratorPlugin) cleanup() { + if p.tmpDir != "" { + os.RemoveAll(p.tmpDir) + } +} + +// Generate implements generator +func (p *HelmChartInflationGeneratorPlugin) Generate() (rm resmap.ResMap, err error) { + defer p.cleanup() + if err = p.checkHelmVersion(); err != nil { + return nil, err + } + if path, exists := p.chartExistsLocally(); !exists { + if p.Repo == "" { + return nil, fmt.Errorf( + "no repo specified for pull, no chart found at '%s'", path) + } + if _, err := p.runHelmCommand(p.pullCommand()); err != nil { + return nil, err + } + } + if len(p.ValuesInline) > 0 { + p.ValuesFile, err = p.createNewMergedValuesFile() + } else { + p.ValuesFile, err = p.copyValuesFile() + } + if err != nil { + return nil, err + } + var stdout []byte + stdout, err = p.runHelmCommand(p.templateCommand()) + if err != nil { + return nil, err + } + + rm, err = p.h.ResmapFactory().NewResMapFromBytes(stdout) + if err == nil { + return rm, nil + } + // try to remove the contents before first "---" because + // helm may produce messages to stdout before it + stdoutStr := string(stdout) + if idx := strings.Index(stdoutStr, "---"); idx != -1 { + return p.h.ResmapFactory().NewResMapFromBytes([]byte(stdoutStr[idx:])) + } + return nil, err +} + +func (p *HelmChartInflationGeneratorPlugin) templateCommand() []string { + args := []string{"template"} + if p.ReleaseName != "" { + args = append(args, p.ReleaseName) + } + args = append(args, filepath.Join(p.absChartHome(), p.Name)) + if p.ValuesFile != "" { + args = append(args, "--values", p.ValuesFile) + } + if p.ReleaseName == "" { + // AFAICT, this doesn't work as intended due to a bug in helm. + // See https://github.com/helm/helm/issues/6019 + // I've tried placing the flag before and after the name argument. + args = append(args, "--generate-name") + } + return args +} + +func (p *HelmChartInflationGeneratorPlugin) pullCommand() []string { + args := []string{ + "pull", + "--untar", + "--untardir", p.absChartHome(), + "--repo", p.Repo, + p.Name} + if p.Version != "" { + args = append(args, "--version", p.Version) + } + return args +} + +// chartExistsLocally will return true if the chart does exist in +// local chart home. +func (p *HelmChartInflationGeneratorPlugin) chartExistsLocally() (string, bool) { + path := filepath.Join(p.absChartHome(), p.Name) + s, err := os.Stat(path) + if err != nil { + return "", false + } + return path, s.IsDir() +} + +// checkHelmVersion will return an error if the helm version is not V3 +func (p *HelmChartInflationGeneratorPlugin) checkHelmVersion() error { + stdout, err := p.runHelmCommand([]string{"version", "-c", "--short"}) + if err != nil { + return err + } + r, err := regexp.Compile(`v?\d+(\.\d+)+`) + if err != nil { + return err + } + v := r.FindString(string(stdout)) + if v == "" { + return fmt.Errorf("cannot find version string in %s", string(stdout)) + } + if v[0] == 'v' { + v = v[1:] + } + majorVersion := strings.Split(v, ".")[0] + if majorVersion != "3" { + return fmt.Errorf("this plugin requires helm V3 but got v%s", v) + } + return nil +} + +func NewHelmChartInflationGeneratorPlugin() resmap.GeneratorPlugin { + return &HelmChartInflationGeneratorPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/ImageTagTransformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/ImageTagTransformer.go new file mode 100644 index 0000000000..a09ef163df --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/ImageTagTransformer.go @@ -0,0 +1,50 @@ +// Code generated by pluginator on ImageTagTransformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "sigs.k8s.io/kustomize/api/filters/imagetag" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +// Find matching image declarations and replace +// the name, tag and/or digest. +type ImageTagTransformerPlugin struct { + ImageTag types.Image `json:"imageTag,omitempty" yaml:"imageTag,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` +} + +func (p *ImageTagTransformerPlugin) Config( + _ *resmap.PluginHelpers, c []byte) (err error) { + p.ImageTag = types.Image{} + p.FieldSpecs = nil + return yaml.Unmarshal(c, p) +} + +func (p *ImageTagTransformerPlugin) Transform(m resmap.ResMap) error { + for _, r := range m.Resources() { + // traverse all fields at first + err := r.ApplyFilter(imagetag.LegacyFilter{ + ImageTag: p.ImageTag, + }) + if err != nil { + return err + } + // then use user specified field specs + err = r.ApplyFilter(imagetag.Filter{ + ImageTag: p.ImageTag, + FsSlice: p.FieldSpecs, + }) + if err != nil { + return err + } + } + return nil +} + +func NewImageTagTransformerPlugin() resmap.TransformerPlugin { + return &ImageTagTransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/LabelTransformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/LabelTransformer.go new file mode 100644 index 0000000000..647e57efd0 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/LabelTransformer.go @@ -0,0 +1,44 @@ +// Code generated by pluginator on LabelTransformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "sigs.k8s.io/kustomize/api/filters/labels" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +// Add the given labels to the given field specifications. +type LabelTransformerPlugin struct { + Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` +} + +func (p *LabelTransformerPlugin) Config( + _ *resmap.PluginHelpers, c []byte) (err error) { + p.Labels = nil + p.FieldSpecs = nil + return yaml.Unmarshal(c, p) +} + +func (p *LabelTransformerPlugin) Transform(m resmap.ResMap) error { + if len(p.Labels) == 0 { + return nil + } + for _, r := range m.Resources() { + err := r.ApplyFilter(labels.Filter{ + Labels: p.Labels, + FsSlice: p.FieldSpecs, + }) + if err != nil { + return err + } + } + return nil +} + +func NewLabelTransformerPlugin() resmap.TransformerPlugin { + return &LabelTransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/LegacyOrderTransformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/LegacyOrderTransformer.go new file mode 100644 index 0000000000..322cea93aa --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/LegacyOrderTransformer.go @@ -0,0 +1,46 @@ +// Code generated by pluginator on LegacyOrderTransformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "sort" + + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/resource" +) + +// Sort the resources using an ordering defined in the Gvk class. +// This puts cluster-wide basic resources with no +// dependencies (like Namespace, StorageClass, etc.) +// first, and resources with a high number of dependencies +// (like ValidatingWebhookConfiguration) last. +type LegacyOrderTransformerPlugin struct{} + +// Nothing needed for configuration. +func (p *LegacyOrderTransformerPlugin) Config( + _ *resmap.PluginHelpers, _ []byte) (err error) { + return nil +} + +func (p *LegacyOrderTransformerPlugin) Transform(m resmap.ResMap) (err error) { + resources := make([]*resource.Resource, m.Size()) + ids := m.AllIds() + sort.Sort(resmap.IdSlice(ids)) + for i, id := range ids { + resources[i], err = m.GetByCurrentId(id) + if err != nil { + return errors.Wrap(err, "expected match for sorting") + } + } + m.Clear() + for _, r := range resources { + m.Append(r) + } + return nil +} + +func NewLegacyOrderTransformerPlugin() resmap.TransformerPlugin { + return &LegacyOrderTransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/NamespaceTransformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/NamespaceTransformer.go new file mode 100644 index 0000000000..6794f26e81 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/NamespaceTransformer.go @@ -0,0 +1,55 @@ +// Code generated by pluginator on NamespaceTransformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "fmt" + + "sigs.k8s.io/kustomize/api/filters/namespace" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +// Change or set the namespace of non-cluster level resources. +type NamespaceTransformerPlugin struct { + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` +} + +func (p *NamespaceTransformerPlugin) Config( + _ *resmap.PluginHelpers, c []byte) (err error) { + p.Namespace = "" + p.FieldSpecs = nil + return yaml.Unmarshal(c, p) +} + +func (p *NamespaceTransformerPlugin) Transform(m resmap.ResMap) error { + if len(p.Namespace) == 0 { + return nil + } + for _, r := range m.Resources() { + if r.IsEmpty() { + // Don't mutate empty objects? + continue + } + r.StorePreviousId() + if err := r.ApplyFilter(namespace.Filter{ + Namespace: p.Namespace, + FsSlice: p.FieldSpecs, + }); err != nil { + return err + } + matches := m.GetMatchingResourcesByCurrentId(r.CurId().Equals) + if len(matches) != 1 { + return fmt.Errorf( + "namespace transformation produces ID conflict: %+v", matches) + } + } + return nil +} + +func NewNamespaceTransformerPlugin() resmap.TransformerPlugin { + return &NamespaceTransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/PatchJson6902Transformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/PatchJson6902Transformer.go new file mode 100644 index 0000000000..dfe4db43bd --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/PatchJson6902Transformer.go @@ -0,0 +1,93 @@ +// Code generated by pluginator on PatchJson6902Transformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "fmt" + + jsonpatch "github.com/evanphx/json-patch" + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/filters/patchjson6902" + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +type PatchJson6902TransformerPlugin struct { + ldr ifc.Loader + decodedPatch jsonpatch.Patch + Target *types.Selector `json:"target,omitempty" yaml:"target,omitempty"` + Path string `json:"path,omitempty" yaml:"path,omitempty"` + JsonOp string `json:"jsonOp,omitempty" yaml:"jsonOp,omitempty"` +} + +func (p *PatchJson6902TransformerPlugin) Config( + h *resmap.PluginHelpers, c []byte) (err error) { + p.ldr = h.Loader() + err = yaml.Unmarshal(c, p) + if err != nil { + return err + } + if p.Target.Name == "" { + return fmt.Errorf("must specify the target name") + } + if p.Path == "" && p.JsonOp == "" { + return fmt.Errorf("empty file path and empty jsonOp") + } + if p.Path != "" { + if p.JsonOp != "" { + return fmt.Errorf("must specify a file path or jsonOp, not both") + } + rawOp, err := p.ldr.Load(p.Path) + if err != nil { + return err + } + p.JsonOp = string(rawOp) + if p.JsonOp == "" { + return fmt.Errorf("patch file '%s' empty seems to be empty", p.Path) + } + } + if p.JsonOp[0] != '[' { + // if it doesn't seem to be JSON, imagine + // it is YAML, and convert to JSON. + op, err := yaml.YAMLToJSON([]byte(p.JsonOp)) + if err != nil { + return err + } + p.JsonOp = string(op) + } + p.decodedPatch, err = jsonpatch.DecodePatch([]byte(p.JsonOp)) + if err != nil { + return errors.Wrapf(err, "decoding %s", p.JsonOp) + } + if len(p.decodedPatch) == 0 { + return fmt.Errorf( + "patch appears to be empty; file=%s, JsonOp=%s", p.Path, p.JsonOp) + } + return err +} + +func (p *PatchJson6902TransformerPlugin) Transform(m resmap.ResMap) error { + if p.Target == nil { + return fmt.Errorf("must specify a target for patch %s", p.JsonOp) + } + resources, err := m.Select(*p.Target) + if err != nil { + return err + } + for _, res := range resources { + err = res.ApplyFilter(patchjson6902.Filter{ + Patch: p.JsonOp, + }) + if err != nil { + return err + } + } + return nil +} + +func NewPatchJson6902TransformerPlugin() resmap.TransformerPlugin { + return &PatchJson6902TransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/PatchStrategicMergeTransformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/PatchStrategicMergeTransformer.go new file mode 100644 index 0000000000..f93d1266d7 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/PatchStrategicMergeTransformer.go @@ -0,0 +1,89 @@ +// Code generated by pluginator on PatchStrategicMergeTransformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "fmt" + + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/resource" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +type PatchStrategicMergeTransformerPlugin struct { + loadedPatches []*resource.Resource + Paths []types.PatchStrategicMerge `json:"paths,omitempty" yaml:"paths,omitempty"` + Patches string `json:"patches,omitempty" yaml:"patches,omitempty"` +} + +func (p *PatchStrategicMergeTransformerPlugin) Config( + h *resmap.PluginHelpers, c []byte) (err error) { + err = yaml.Unmarshal(c, p) + if err != nil { + return err + } + if len(p.Paths) == 0 && p.Patches == "" { + return fmt.Errorf("empty file path and empty patch content") + } + if len(p.Paths) != 0 { + patches, err := loadFromPaths(h, p.Paths) + if err != nil { + return err + } + p.loadedPatches = append(p.loadedPatches, patches...) + } + if p.Patches != "" { + patches, err := h.ResmapFactory().RF().SliceFromBytes([]byte(p.Patches)) + if err != nil { + return err + } + p.loadedPatches = append(p.loadedPatches, patches...) + } + if len(p.loadedPatches) == 0 { + return fmt.Errorf( + "patch appears to be empty; files=%v, Patch=%s", p.Paths, p.Patches) + } + return nil +} + +func loadFromPaths( + h *resmap.PluginHelpers, + paths []types.PatchStrategicMerge) ( + result []*resource.Resource, err error) { + var patches []*resource.Resource + for _, path := range paths { + // For legacy reasons, attempt to treat the path string as + // actual patch content. + patches, err = h.ResmapFactory().RF().SliceFromBytes([]byte(path)) + if err != nil { + // Failing that, treat it as a file path. + patches, err = h.ResmapFactory().RF().SliceFromPatches( + h.Loader(), []types.PatchStrategicMerge{path}) + if err != nil { + return + } + } + result = append(result, patches...) + } + return +} + +func (p *PatchStrategicMergeTransformerPlugin) Transform(m resmap.ResMap) error { + for _, patch := range p.loadedPatches { + target, err := m.GetById(patch.OrgId()) + if err != nil { + return err + } + if err = m.ApplySmPatch( + resource.MakeIdSet([]*resource.Resource{target}), patch); err != nil { + return err + } + } + return nil +} + +func NewPatchStrategicMergeTransformerPlugin() resmap.TransformerPlugin { + return &PatchStrategicMergeTransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/PatchTransformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/PatchTransformer.go new file mode 100644 index 0000000000..99f48e7489 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/PatchTransformer.go @@ -0,0 +1,146 @@ +// Code generated by pluginator on PatchTransformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "fmt" + "strings" + + jsonpatch "github.com/evanphx/json-patch" + "sigs.k8s.io/kustomize/api/filters/patchjson6902" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/resource" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +type PatchTransformerPlugin struct { + loadedPatch *resource.Resource + decodedPatch jsonpatch.Patch + Path string `json:"path,omitempty" yaml:"path,omitempty"` + Patch string `json:"patch,omitempty" yaml:"patch,omitempty"` + Target *types.Selector `json:"target,omitempty" yaml:"target,omitempty"` + Options map[string]bool `json:"options,omitempty" yaml:"options,omitempty"` +} + +func (p *PatchTransformerPlugin) Config( + h *resmap.PluginHelpers, c []byte) error { + err := yaml.Unmarshal(c, p) + if err != nil { + return err + } + p.Patch = strings.TrimSpace(p.Patch) + if p.Patch == "" && p.Path == "" { + return fmt.Errorf( + "must specify one of patch and path in\n%s", string(c)) + } + if p.Patch != "" && p.Path != "" { + return fmt.Errorf( + "patch and path can't be set at the same time\n%s", string(c)) + } + if p.Path != "" { + loaded, loadErr := h.Loader().Load(p.Path) + if loadErr != nil { + return loadErr + } + p.Patch = string(loaded) + } + + patchSM, errSM := h.ResmapFactory().RF().FromBytes([]byte(p.Patch)) + patchJson, errJson := jsonPatchFromBytes([]byte(p.Patch)) + if (errSM == nil && errJson == nil) || + (patchSM != nil && patchJson != nil) { + return fmt.Errorf( + "illegally qualifies as both an SM and JSON patch: [%v]", + p.Patch) + } + if errSM != nil && errJson != nil { + return fmt.Errorf( + "unable to parse SM or JSON patch from [%v]", p.Patch) + } + if errSM == nil { + p.loadedPatch = patchSM + if p.Options["allowNameChange"] { + p.loadedPatch.SetAllowNameChange("true") + } + if p.Options["allowKindChange"] { + p.loadedPatch.SetAllowKindChange("true") + } + } else { + p.decodedPatch = patchJson + } + return nil +} + +func (p *PatchTransformerPlugin) Transform(m resmap.ResMap) error { + if p.loadedPatch == nil { + return p.transformJson6902(m, p.decodedPatch) + } else { + // The patch was a strategic merge patch + return p.transformStrategicMerge(m, p.loadedPatch) + } +} + +// transformStrategicMerge applies the provided strategic merge patch +// to all the resources in the ResMap that match either the Target or +// the identifier of the patch. +func (p *PatchTransformerPlugin) transformStrategicMerge(m resmap.ResMap, patch *resource.Resource) error { + if p.Target == nil { + target, err := m.GetById(patch.OrgId()) + if err != nil { + return err + } + return target.ApplySmPatch(patch) + } + selected, err := m.Select(*p.Target) + if err != nil { + return err + } + return m.ApplySmPatch(resource.MakeIdSet(selected), patch) +} + +// transformJson6902 applies the provided json6902 patch +// to all the resources in the ResMap that match the Target. +func (p *PatchTransformerPlugin) transformJson6902(m resmap.ResMap, patch jsonpatch.Patch) error { + if p.Target == nil { + return fmt.Errorf("must specify a target for patch %s", p.Patch) + } + resources, err := m.Select(*p.Target) + if err != nil { + return err + } + for _, res := range resources { + res.StorePreviousId() + err = res.ApplyFilter(patchjson6902.Filter{ + Patch: p.Patch, + }) + if err != nil { + return err + } + } + return nil +} + +// jsonPatchFromBytes loads a Json 6902 patch from +// a bytes input +func jsonPatchFromBytes( + in []byte) (jsonpatch.Patch, error) { + ops := string(in) + if ops == "" { + return nil, fmt.Errorf("empty json patch operations") + } + + if ops[0] != '[' { + jsonOps, err := yaml.YAMLToJSON(in) + if err != nil { + return nil, err + } + ops = string(jsonOps) + } + return jsonpatch.DecodePatch([]byte(ops)) +} + +func NewPatchTransformerPlugin() resmap.TransformerPlugin { + return &PatchTransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/PrefixSuffixTransformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/PrefixSuffixTransformer.go new file mode 100644 index 0000000000..20265d592b --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/PrefixSuffixTransformer.go @@ -0,0 +1,104 @@ +// Code generated by pluginator on PrefixSuffixTransformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "errors" + + "sigs.k8s.io/kustomize/api/filters/prefixsuffix" + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +// Add the given prefix and suffix to the field. +type PrefixSuffixTransformerPlugin struct { + Prefix string `json:"prefix,omitempty" yaml:"prefix,omitempty"` + Suffix string `json:"suffix,omitempty" yaml:"suffix,omitempty"` + FieldSpecs types.FsSlice `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` +} + +// A Gvk skip list for prefix/suffix modification. +// hard coded for now - eventually should be part of config. +var prefixSuffixFieldSpecsToSkip = types.FsSlice{ + {Gvk: resid.Gvk{Kind: "CustomResourceDefinition"}}, + {Gvk: resid.Gvk{Group: "apiregistration.k8s.io", Kind: "APIService"}}, + {Gvk: resid.Gvk{Kind: "Namespace"}}, +} + +func (p *PrefixSuffixTransformerPlugin) Config( + _ *resmap.PluginHelpers, c []byte) (err error) { + p.Prefix = "" + p.Suffix = "" + p.FieldSpecs = nil + err = yaml.Unmarshal(c, p) + if err != nil { + return + } + if p.FieldSpecs == nil { + return errors.New("fieldSpecs is not expected to be nil") + } + return +} + +func (p *PrefixSuffixTransformerPlugin) Transform(m resmap.ResMap) error { + // Even if both the Prefix and Suffix are empty we want + // to proceed with the transformation. This allows to add contextual + // information to the resources (AddNamePrefix and AddNameSuffix). + for _, r := range m.Resources() { + // TODO: move this test into the filter (i.e. make a better filter) + if p.shouldSkip(r.OrgId()) { + continue + } + id := r.OrgId() + // current default configuration contains + // only one entry: "metadata/name" with no GVK + for _, fs := range p.FieldSpecs { + // TODO: this is redundant to filter (but needed for now) + if !id.IsSelected(&fs.Gvk) { + continue + } + // TODO: move this test into the filter. + if smellsLikeANameChange(&fs) { + // "metadata/name" is the only field. + // this will add a prefix and a suffix + // to the resource even if those are + // empty + + r.AddNamePrefix(p.Prefix) + r.AddNameSuffix(p.Suffix) + if p.Prefix != "" || p.Suffix != "" { + r.StorePreviousId() + } + } + err := r.ApplyFilter(prefixsuffix.Filter{ + Prefix: p.Prefix, + Suffix: p.Suffix, + FieldSpec: fs, + }) + if err != nil { + return err + } + } + } + return nil +} + +func smellsLikeANameChange(fs *types.FieldSpec) bool { + return fs.Path == "metadata/name" +} + +func (p *PrefixSuffixTransformerPlugin) shouldSkip(id resid.ResId) bool { + for _, path := range prefixSuffixFieldSpecsToSkip { + if id.IsSelected(&path.Gvk) { + return true + } + } + return false +} + +func NewPrefixSuffixTransformerPlugin() resmap.TransformerPlugin { + return &PrefixSuffixTransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/ReplicaCountTransformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/ReplicaCountTransformer.go new file mode 100644 index 0000000000..03fbf6f1e5 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/ReplicaCountTransformer.go @@ -0,0 +1,73 @@ +// Code generated by pluginator on ReplicaCountTransformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "fmt" + + "sigs.k8s.io/kustomize/api/filters/replicacount" + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +// Find matching replicas declarations and replace the count. +// Eases the kustomization configuration of replica changes. +type ReplicaCountTransformerPlugin struct { + Replica types.Replica `json:"replica,omitempty" yaml:"replica,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` +} + +func (p *ReplicaCountTransformerPlugin) Config( + _ *resmap.PluginHelpers, c []byte) (err error) { + p.Replica = types.Replica{} + p.FieldSpecs = nil + return yaml.Unmarshal(c, p) +} + +func (p *ReplicaCountTransformerPlugin) Transform(m resmap.ResMap) error { + found := false + for _, fs := range p.FieldSpecs { + matcher := p.createMatcher(fs) + resList := m.GetMatchingResourcesByAnyId(matcher) + if len(resList) > 0 { + found = true + for _, r := range resList { + // There are redundant checks in the filter + // that we'll live with until resolution of + // https://github.com/kubernetes-sigs/kustomize/issues/2506 + err := r.ApplyFilter(replicacount.Filter{ + Replica: p.Replica, + FieldSpec: fs, + }) + if err != nil { + return err + } + } + } + } + + if !found { + gvks := make([]string, len(p.FieldSpecs)) + for i, replicaSpec := range p.FieldSpecs { + gvks[i] = replicaSpec.Gvk.String() + } + return fmt.Errorf("resource with name %s does not match a config with the following GVK %v", + p.Replica.Name, gvks) + } + + return nil +} + +// Match Replica.Name and FieldSpec +func (p *ReplicaCountTransformerPlugin) createMatcher(fs types.FieldSpec) resmap.IdMatcher { + return func(r resid.ResId) bool { + return r.Name == p.Replica.Name && r.Gvk.IsSelected(&fs.Gvk) + } +} + +func NewReplicaCountTransformerPlugin() resmap.TransformerPlugin { + return &ReplicaCountTransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/SecretGenerator.go b/vendor/sigs.k8s.io/kustomize/api/builtins/SecretGenerator.go new file mode 100644 index 0000000000..5e8581eb9a --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/SecretGenerator.go @@ -0,0 +1,39 @@ +// Code generated by pluginator on SecretGenerator; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "sigs.k8s.io/kustomize/api/kv" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +type SecretGeneratorPlugin struct { + h *resmap.PluginHelpers + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + types.SecretArgs +} + +func (p *SecretGeneratorPlugin) Config(h *resmap.PluginHelpers, config []byte) (err error) { + p.SecretArgs = types.SecretArgs{} + err = yaml.Unmarshal(config, p) + if p.SecretArgs.Name == "" { + p.SecretArgs.Name = p.Name + } + if p.SecretArgs.Namespace == "" { + p.SecretArgs.Namespace = p.Namespace + } + p.h = h + return +} + +func (p *SecretGeneratorPlugin) Generate() (resmap.ResMap, error) { + return p.h.ResmapFactory().FromSecretArgs( + kv.NewLoader(p.h.Loader(), p.h.Validator()), p.SecretArgs) +} + +func NewSecretGeneratorPlugin() resmap.GeneratorPlugin { + return &SecretGeneratorPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/ValueAddTransformer.go b/vendor/sigs.k8s.io/kustomize/api/builtins/ValueAddTransformer.go new file mode 100644 index 0000000000..c2c460ab91 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/ValueAddTransformer.go @@ -0,0 +1,141 @@ +// Code generated by pluginator on ValueAddTransformer; DO NOT EDIT. +// pluginator {unknown 1970-01-01T00:00:00Z } + +package builtins + +import ( + "fmt" + "path/filepath" + "strings" + + "sigs.k8s.io/kustomize/api/filters/namespace" + "sigs.k8s.io/kustomize/api/filters/valueadd" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/resource" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +// An 'Add' transformer inspired by the IETF RFC 6902 JSON spec Add operation. +type ValueAddTransformerPlugin struct { + // Value is the value to add. + // Defaults to base name of encompassing kustomization root. + Value string `json:"value,omitempty" yaml:"value,omitempty"` + + // Targets is a slice of targets that should have the value added. + Targets []Target `json:"targets,omitempty" yaml:"targets,omitempty"` + + // TargetFilePath is a file path. If specified, the file will be parsed into + // a slice of Target, and appended to anything that was specified in the + // Targets field. This is just a means to share common target specifications. + TargetFilePath string `json:"targetFilePath,omitempty" yaml:"targetFilePath,omitempty"` +} + +// Target describes where to put the value. +type Target struct { + // Selector selects the resources to modify. + Selector *types.Selector `json:"selector,omitempty" yaml:"selector,omitempty"` + + // NotSelector selects the resources to exclude + // from those included by overly broad selectors. + // TODO: implement this? + // NotSelector *types.Selector `json:"notSelector,omitempty" yaml:"notSelector,omitempty"` + + // FieldPath is a JSON-style path to the field intended to hold the value. + FieldPath string `json:"fieldPath,omitempty" yaml:"fieldPath,omitempty"` + + // FilePathPosition is passed to the filter directly. Look there for doc. + FilePathPosition int `json:"filePathPosition,omitempty" yaml:"filePathPosition,omitempty"` +} + +func (p *ValueAddTransformerPlugin) Config(h *resmap.PluginHelpers, c []byte) error { + err := yaml.Unmarshal(c, p) + if err != nil { + return err + } + p.Value = strings.TrimSpace(p.Value) + if p.Value == "" { + p.Value = filepath.Base(h.Loader().Root()) + } + if p.TargetFilePath != "" { + bytes, err := h.Loader().Load(p.TargetFilePath) + if err != nil { + return err + } + var targets struct { + Targets []Target `json:"targets,omitempty" yaml:"targets,omitempty"` + } + err = yaml.Unmarshal(bytes, &targets) + if err != nil { + return err + } + p.Targets = append(p.Targets, targets.Targets...) + } + if len(p.Targets) == 0 { + return fmt.Errorf("must specify at least one target") + } + for _, target := range p.Targets { + if err = validateSelector(target.Selector); err != nil { + return err + } + // TODO: call validateSelector(target.NotSelector) if field added. + if err = validateJsonFieldPath(target.FieldPath); err != nil { + return err + } + if target.FilePathPosition < 0 { + return fmt.Errorf( + "value of FilePathPosition (%d) cannot be negative", + target.FilePathPosition) + } + } + return nil +} + +// TODO: implement +func validateSelector(_ *types.Selector) error { + return nil +} + +// TODO: Enforce RFC 6902? +func validateJsonFieldPath(p string) error { + if len(p) == 0 { + return fmt.Errorf("fieldPath cannot be empty") + } + return nil +} + +func (p *ValueAddTransformerPlugin) Transform(m resmap.ResMap) (err error) { + for _, t := range p.Targets { + var resources []*resource.Resource + if t.Selector == nil { + resources = m.Resources() + } else { + resources, err = m.Select(*t.Selector) + if err != nil { + return err + } + } + // TODO: consider t.NotSelector if implemented + for _, res := range resources { + if t.FieldPath == types.MetadataNamespacePath { + err = res.ApplyFilter(namespace.Filter{ + Namespace: p.Value, + }) + } else { + err = res.ApplyFilter(valueadd.Filter{ + Value: p.Value, + FieldPath: t.FieldPath, + FilePathPosition: t.FilePathPosition, + }) + } + if err != nil { + return err + } + } + } + return nil +} + +func NewValueAddTransformerPlugin() resmap.TransformerPlugin { + return &ValueAddTransformerPlugin{} +} diff --git a/vendor/sigs.k8s.io/kustomize/api/builtins/doc.go b/vendor/sigs.k8s.io/kustomize/api/builtins/doc.go new file mode 100644 index 0000000000..37a8dc6e7d --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/builtins/doc.go @@ -0,0 +1,8 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package builtins holds code generated from the builtin plugins. +// The "builtin" plugins are written as normal plugins and can +// be used as such, but they are also used to generate the code +// in this package so they can be statically linked to client code. +package builtins diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/annotations/annotations.go b/vendor/sigs.k8s.io/kustomize/api/filters/annotations/annotations.go new file mode 100644 index 0000000000..cd0e3b4d5d --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/annotations/annotations.go @@ -0,0 +1,44 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package annotations + +import ( + "sigs.k8s.io/kustomize/api/filters/filtersutil" + "sigs.k8s.io/kustomize/api/filters/fsslice" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type annoMap map[string]string + +type Filter struct { + // Annotations is the set of annotations to apply to the inputs + Annotations annoMap `yaml:"annotations,omitempty"` + + // FsSlice contains the FieldSpecs to locate the namespace field + FsSlice types.FsSlice +} + +var _ kio.Filter = Filter{} + +func (f Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + keys := yaml.SortedMapKeys(f.Annotations) + _, err := kio.FilterAll(yaml.FilterFunc( + func(node *yaml.RNode) (*yaml.RNode, error) { + for _, k := range keys { + if err := node.PipeE(fsslice.Filter{ + FsSlice: f.FsSlice, + SetValue: filtersutil.SetEntry( + k, f.Annotations[k], yaml.NodeTagString), + CreateKind: yaml.MappingNode, // Annotations are MappingNodes. + CreateTag: yaml.NodeTagMap, + }); err != nil { + return nil, err + } + } + return node, nil + })).Filter(nodes) + return nodes, err +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/annotations/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/annotations/doc.go new file mode 100644 index 0000000000..b1f6a0b66e --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/annotations/doc.go @@ -0,0 +1,6 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package annotations contains a kio.Filter implementation of the kustomize +// annotations transformer. +package annotations diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/doc.go new file mode 100644 index 0000000000..6f643630a5 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/doc.go @@ -0,0 +1,6 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package fieldspec contains a yaml.Filter to modify a resource +// that matches the FieldSpec. +package fieldspec diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/fieldspec.go b/vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/fieldspec.go new file mode 100644 index 0000000000..d728e9ebcf --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/fieldspec.go @@ -0,0 +1,185 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package fieldspec + +import ( + "fmt" + "strings" + + "sigs.k8s.io/kustomize/api/filters/filtersutil" + "sigs.k8s.io/kustomize/api/internal/utils" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +var _ yaml.Filter = Filter{} + +// Filter possibly mutates its object argument using a FieldSpec. +// If the object matches the FieldSpec, and the node found +// by following the fieldSpec's path is non-null, this filter calls +// the setValue function on the node at the end of the path. +// If any part of the path doesn't exist, the filter returns +// without doing anything and without error, unless it was set +// to create the path. If set to create, it creates a tree of maps +// along the path, and the leaf node gets the setValue called on it. +// Error on GVK mismatch, empty or poorly formed path. +// Filter expect kustomize style paths, not JSON paths. +// Filter stores internal state and should not be reused +type Filter struct { + // FieldSpec contains the path to the value to set. + FieldSpec types.FieldSpec `yaml:"fieldSpec"` + + // Set the field using this function + SetValue filtersutil.SetFn + + // CreateKind defines the type of node to create if the field is not found + CreateKind yaml.Kind + + CreateTag string + + // path keeps internal state about the current path + path []string +} + +func (fltr Filter) Filter(obj *yaml.RNode) (*yaml.RNode, error) { + // check if the FieldSpec applies to the object + if match, err := isMatchGVK(fltr.FieldSpec, obj); !match || err != nil { + return obj, errors.Wrap(err) + } + fltr.path = utils.PathSplitter(fltr.FieldSpec.Path) + err := fltr.filter(obj) + if err != nil { + s, _ := obj.String() + return nil, errors.WrapPrefixf(err, + "considering field '%s' of object\n%v", fltr.FieldSpec.Path, s) + } + return obj, nil +} + +// Recursively called. +func (fltr Filter) filter(obj *yaml.RNode) error { + if len(fltr.path) == 0 { + // found the field -- set its value + return fltr.SetValue(obj) + } + if obj.IsTaggedNull() || obj.IsNil() { + return nil + } + switch obj.YNode().Kind { + case yaml.SequenceNode: + return fltr.handleSequence(obj) + case yaml.MappingNode: + return fltr.handleMap(obj) + case yaml.AliasNode: + return fltr.filter(yaml.NewRNode(obj.YNode().Alias)) + default: + return errors.Errorf("expected sequence or mapping node") + } +} + +// handleMap calls filter on the map field matching the next path element +func (fltr Filter) handleMap(obj *yaml.RNode) error { + fieldName, isSeq := isSequenceField(fltr.path[0]) + if fieldName == "" { + return fmt.Errorf("cannot set or create an empty field name") + } + // lookup the field matching the next path element + var operation yaml.Filter + var kind yaml.Kind + tag := yaml.NodeTagEmpty + switch { + case !fltr.FieldSpec.CreateIfNotPresent || fltr.CreateKind == 0 || isSeq: + // don't create the field if we don't find it + operation = yaml.Lookup(fieldName) + if isSeq { + // The query path thinks this field should be a sequence; + // accept this hint for use later if the tag is NodeTagNull. + kind = yaml.SequenceNode + } + case len(fltr.path) <= 1: + // create the field if it is missing: use the provided node kind + operation = yaml.LookupCreate(fltr.CreateKind, fieldName) + kind = fltr.CreateKind + tag = fltr.CreateTag + default: + // create the field if it is missing: must be a mapping node + operation = yaml.LookupCreate(yaml.MappingNode, fieldName) + kind = yaml.MappingNode + tag = yaml.NodeTagMap + } + + // locate (or maybe create) the field + field, err := obj.Pipe(operation) + if err != nil { + return errors.WrapPrefixf(err, "fieldName: %s", fieldName) + } + if field == nil { + // No error if field not found. + return nil + } + + // if the value exists, but is null and kind is set, + // then change it to the creation type + // TODO: update yaml.LookupCreate to support this + if field.YNode().Tag == yaml.NodeTagNull && yaml.IsCreate(kind) { + field.YNode().Kind = kind + field.YNode().Tag = tag + } + + // copy the current fltr and change the path on the copy + var next = fltr + // call filter for the next path element on the matching field + next.path = fltr.path[1:] + return next.filter(field) +} + +// seq calls filter on all sequence elements +func (fltr Filter) handleSequence(obj *yaml.RNode) error { + if err := obj.VisitElements(func(node *yaml.RNode) error { + // recurse on each element -- re-allocating a Filter is + // not strictly required, but is more consistent with field + // and less likely to have side effects + // keep the entire path -- it does not contain parts for sequences + return fltr.filter(node) + }); err != nil { + return errors.WrapPrefixf(err, + "visit traversal on path: %v", fltr.path) + } + return nil +} + +// isSequenceField returns true if the path element is for a sequence field. +// isSequence also returns the path element with the '[]' suffix trimmed +func isSequenceField(name string) (string, bool) { + shorter := strings.TrimSuffix(name, "[]") + return shorter, shorter != name +} + +// isMatchGVK returns true if the fs.GVK matches the obj GVK. +func isMatchGVK(fs types.FieldSpec, obj *yaml.RNode) (bool, error) { + meta, err := obj.GetMeta() + if err != nil { + return false, err + } + if fs.Kind != "" && fs.Kind != meta.Kind { + // kind doesn't match + return false, err + } + + // parse the group and version from the apiVersion field + group, version := parseGV(meta.APIVersion) + + if fs.Group != "" && fs.Group != group { + // group doesn't match + return false, nil + } + + if fs.Version != "" && fs.Version != version { + // version doesn't match + return false, nil + } + + return true, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/gvk.go b/vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/gvk.go new file mode 100644 index 0000000000..42e21a80dc --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/gvk.go @@ -0,0 +1,49 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 +package fieldspec + +import ( + "strings" + + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Return true for 'v' followed by a 1 or 2, and don't look at rest. +// I.e. 'v1', 'v1beta1', 'v2', would return true. +func looksLikeACoreApiVersion(s string) bool { + if len(s) < 2 { + return false + } + if s[0:1] != "v" { + return false + } + return s[1:2] == "1" || s[1:2] == "2" +} + +// parseGV parses apiVersion field into group and version. +func parseGV(apiVersion string) (group, version string) { + // parse the group and version from the apiVersion field + parts := strings.SplitN(apiVersion, "/", 2) + group = parts[0] + if len(parts) > 1 { + version = parts[1] + } + // Special case the original "apiVersion" of what + // we now call the "core" (empty) group. + if version == "" && looksLikeACoreApiVersion(group) { + version = group + group = "" + } + return +} + +// GetGVK parses the metadata into a GVK +func GetGVK(meta yaml.ResourceMeta) resid.Gvk { + group, version := parseGV(meta.APIVersion) + return resid.Gvk{ + Group: group, + Version: version, + Kind: meta.Kind, + } +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/filtersutil/setters.go b/vendor/sigs.k8s.io/kustomize/api/filters/filtersutil/setters.go new file mode 100644 index 0000000000..cc04afe898 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/filtersutil/setters.go @@ -0,0 +1,33 @@ +package filtersutil + +import ( + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// SetFn is a function that accepts an RNode to possibly modify. +type SetFn func(*yaml.RNode) error + +// SetScalar returns a SetFn to set a scalar value +func SetScalar(value string) SetFn { + return func(node *yaml.RNode) error { + return node.PipeE(yaml.FieldSetter{StringValue: value}) + } +} + +// SetEntry returns a SetFn to set an entry in a map +func SetEntry(key, value, tag string) SetFn { + n := &yaml.Node{ + Kind: yaml.ScalarNode, + Value: value, + Tag: tag, + } + if tag == yaml.NodeTagString && yaml.IsYaml1_1NonString(n) { + n.Style = yaml.DoubleQuotedStyle + } + return func(node *yaml.RNode) error { + return node.PipeE(yaml.FieldSetter{ + Name: key, + Value: yaml.NewRNode(n), + }) + } +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/fsslice/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/fsslice/doc.go new file mode 100644 index 0000000000..b0f197722e --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/fsslice/doc.go @@ -0,0 +1,6 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package fsslice contains a yaml.Filter to modify a resource if +// it matches one or more FieldSpec entries. +package fsslice diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/fsslice/fsslice.go b/vendor/sigs.k8s.io/kustomize/api/filters/fsslice/fsslice.go new file mode 100644 index 0000000000..9eb5c13133 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/fsslice/fsslice.go @@ -0,0 +1,47 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package fsslice + +import ( + "sigs.k8s.io/kustomize/api/filters/fieldspec" + "sigs.k8s.io/kustomize/api/filters/filtersutil" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +var _ yaml.Filter = Filter{} + +// Filter ranges over an FsSlice to modify fields on a single object. +// An FsSlice is a range of FieldSpecs. A FieldSpec is a GVK plus a path. +type Filter struct { + // FieldSpecList list of FieldSpecs to set + FsSlice types.FsSlice `yaml:"fsSlice"` + + // SetValue is called on each field that matches one of the FieldSpecs + SetValue filtersutil.SetFn + + // CreateKind is used to create fields that do not exist + CreateKind yaml.Kind + + // CreateTag is used to set the tag if encountering a null field + CreateTag string +} + +func (fltr Filter) Filter(obj *yaml.RNode) (*yaml.RNode, error) { + for i := range fltr.FsSlice { + // apply this FieldSpec + // create a new filter for each iteration because they + // store internal state about the field paths + _, err := (&fieldspec.Filter{ + FieldSpec: fltr.FsSlice[i], + SetValue: fltr.SetValue, + CreateKind: fltr.CreateKind, + CreateTag: fltr.CreateTag, + }).Filter(obj) + if err != nil { + return nil, err + } + } + return obj, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/doc.go new file mode 100644 index 0000000000..d919491dd6 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/doc.go @@ -0,0 +1,12 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package imagetag contains two kio.Filter implementations to cover the +// functionality of the kustomize imagetag transformer. +// +// Filter updates fields based on a FieldSpec and an ImageTag. +// +// LegacyFilter doesn't use a FieldSpec, and instead only updates image +// references if the field is name image and it is underneath a field called +// either containers or initContainers. +package imagetag diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/imagetag.go b/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/imagetag.go new file mode 100644 index 0000000000..0770317544 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/imagetag.go @@ -0,0 +1,69 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package imagetag + +import ( + "sigs.k8s.io/kustomize/api/filters/filtersutil" + "sigs.k8s.io/kustomize/api/filters/fsslice" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Filter modifies an "image tag", the value used to specify the +// name, tag, version digest etc. of (docker) container images +// used by a pod template. +type Filter struct { + // imageTag is the tag we want to apply to the inputs + // The name of the image is used as a key, and other fields + // can specify a new name, tag, etc. + ImageTag types.Image `json:"imageTag,omitempty" yaml:"imageTag,omitempty"` + + // FsSlice contains the FieldSpecs to locate an image field, + // e.g. Path: "spec/myContainers[]/image" + FsSlice types.FsSlice `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` +} + +var _ kio.Filter = Filter{} + +func (f Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + _, err := kio.FilterAll(yaml.FilterFunc(f.filter)).Filter(nodes) + return nodes, err +} + +func (f Filter) filter(node *yaml.RNode) (*yaml.RNode, error) { + // FsSlice is an allowlist, not a denyList, so to deny + // something via configuration a new config mechanism is + // needed. Until then, hardcode it. + if f.isOnDenyList(node) { + return node, nil + } + if err := node.PipeE(fsslice.Filter{ + FsSlice: f.FsSlice, + SetValue: updateImageTagFn(f.ImageTag), + }); err != nil { + return nil, err + } + return node, nil +} + +func (f Filter) isOnDenyList(node *yaml.RNode) bool { + meta, err := node.GetMeta() + if err != nil { + // A missing 'meta' field will cause problems elsewhere; + // ignore it here to keep the signature simple. + return false + } + // Ignore CRDs + // https://github.com/kubernetes-sigs/kustomize/issues/890 + return meta.Kind == `CustomResourceDefinition` +} + +func updateImageTagFn(imageTag types.Image) filtersutil.SetFn { + return func(node *yaml.RNode) error { + return node.PipeE(imageTagUpdater{ + ImageTag: imageTag, + }) + } +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/legacy.go b/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/legacy.go new file mode 100644 index 0000000000..5014e9c82b --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/legacy.go @@ -0,0 +1,113 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package imagetag + +import ( + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// LegacyFilter is an implementation of the kio.Filter interface +// that scans through the provided kyaml data structure and updates +// any values of any image fields that is inside a sequence under +// a field called either containers or initContainers. The field is only +// update if it has a value that matches and image reference and the name +// of the image is a match with the provided ImageTag. +type LegacyFilter struct { + ImageTag types.Image `json:"imageTag,omitempty" yaml:"imageTag,omitempty"` +} + +var _ kio.Filter = LegacyFilter{} + +func (lf LegacyFilter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + return kio.FilterAll(yaml.FilterFunc(lf.filter)).Filter(nodes) +} + +func (lf LegacyFilter) filter(node *yaml.RNode) (*yaml.RNode, error) { + meta, err := node.GetMeta() + if err != nil { + return nil, err + } + + // We do not make any changes if the type of the resource + // is CustomResourceDefinition. + if meta.Kind == `CustomResourceDefinition` { + return node, nil + } + + fff := findFieldsFilter{ + fields: []string{"containers", "initContainers"}, + fieldCallback: checkImageTagsFn(lf.ImageTag), + } + if err := node.PipeE(fff); err != nil { + return nil, err + } + return node, nil +} + +type fieldCallback func(node *yaml.RNode) error + +// findFieldsFilter is an implementation of the kio.Filter +// interface. It will walk the data structure and look for fields +// that matches the provided list of field names. For each match, +// the value of the field will be passed in as a parameter to the +// provided fieldCallback. +// TODO: move this to kyaml/filterutils +type findFieldsFilter struct { + fields []string + + fieldCallback fieldCallback +} + +func (f findFieldsFilter) Filter(obj *yaml.RNode) (*yaml.RNode, error) { + return obj, f.walk(obj) +} + +func (f findFieldsFilter) walk(node *yaml.RNode) error { + switch node.YNode().Kind { + case yaml.MappingNode: + return node.VisitFields(func(n *yaml.MapNode) error { + err := f.walk(n.Value) + if err != nil { + return err + } + key := n.Key.YNode().Value + if contains(f.fields, key) { + return f.fieldCallback(n.Value) + } + return nil + }) + case yaml.SequenceNode: + return node.VisitElements(func(n *yaml.RNode) error { + return f.walk(n) + }) + } + return nil +} + +func contains(slice []string, str string) bool { + for _, s := range slice { + if s == str { + return true + } + } + return false +} + +func checkImageTagsFn(imageTag types.Image) fieldCallback { + return func(node *yaml.RNode) error { + if node.YNode().Kind != yaml.SequenceNode { + return nil + } + + return node.VisitElements(func(n *yaml.RNode) error { + // Look up any fields on the provided node that is named + // image. + return n.PipeE(yaml.Get("image"), imageTagUpdater{ + ImageTag: imageTag, + }) + }) + } +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/updater.go b/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/updater.go new file mode 100644 index 0000000000..1c3637cdec --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/updater.go @@ -0,0 +1,43 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package imagetag + +import ( + "sigs.k8s.io/kustomize/api/image" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// imageTagUpdater is an implementation of the kio.Filter interface +// that will update the value of the yaml node based on the provided +// ImageTag if the current value matches the format of an image reference. +type imageTagUpdater struct { + Kind string `yaml:"kind,omitempty"` + ImageTag types.Image `yaml:"imageTag,omitempty"` +} + +func (u imageTagUpdater) Filter(rn *yaml.RNode) (*yaml.RNode, error) { + if err := yaml.ErrorIfInvalid(rn, yaml.ScalarNode); err != nil { + return nil, err + } + + value := rn.YNode().Value + + if !image.IsImageMatched(value, u.ImageTag.Name) { + return rn, nil + } + + name, tag := image.Split(value) + if u.ImageTag.NewName != "" { + name = u.ImageTag.NewName + } + if u.ImageTag.NewTag != "" { + tag = ":" + u.ImageTag.NewTag + } + if u.ImageTag.Digest != "" { + tag = "@" + u.ImageTag.Digest + } + + return rn.Pipe(yaml.FieldSetter{StringValue: name + tag}) +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/labels/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/labels/doc.go new file mode 100644 index 0000000000..978033c7e0 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/labels/doc.go @@ -0,0 +1,6 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package labels contains a kio.Filter implementation of the kustomize +// labels transformer. +package labels diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/labels/labels.go b/vendor/sigs.k8s.io/kustomize/api/filters/labels/labels.go new file mode 100644 index 0000000000..92f298bfe9 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/labels/labels.go @@ -0,0 +1,45 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package labels + +import ( + "sigs.k8s.io/kustomize/api/filters/filtersutil" + "sigs.k8s.io/kustomize/api/filters/fsslice" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type labelMap map[string]string + +// Filter sets labels. +type Filter struct { + // Labels is the set of labels to apply to the inputs + Labels labelMap `yaml:"labels,omitempty"` + + // FsSlice identifies the label fields. + FsSlice types.FsSlice +} + +var _ kio.Filter = Filter{} + +func (f Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + keys := yaml.SortedMapKeys(f.Labels) + _, err := kio.FilterAll(yaml.FilterFunc( + func(node *yaml.RNode) (*yaml.RNode, error) { + for _, k := range keys { + if err := node.PipeE(fsslice.Filter{ + FsSlice: f.FsSlice, + SetValue: filtersutil.SetEntry( + k, f.Labels[k], yaml.NodeTagString), + CreateKind: yaml.MappingNode, // Labels are MappingNodes. + CreateTag: yaml.NodeTagMap, + }); err != nil { + return nil, err + } + } + return node, nil + })).Filter(nodes) + return nodes, err +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/nameref/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/nameref/doc.go new file mode 100644 index 0000000000..b78499d51e --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/nameref/doc.go @@ -0,0 +1,3 @@ +// Package nameref contains a kio.Filter implementation of the kustomize +// name reference transformer. +package nameref diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/nameref/nameref.go b/vendor/sigs.k8s.io/kustomize/api/filters/nameref/nameref.go new file mode 100644 index 0000000000..a048d97f12 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/nameref/nameref.go @@ -0,0 +1,396 @@ +package nameref + +import ( + "fmt" + "strings" + + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/filters/fieldspec" + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/resource" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Filter updates a name references. +type Filter struct { + // Referrer refers to another resource X by X's name. + // E.g. A Deployment can refer to a ConfigMap. + // The Deployment is the Referrer, + // the ConfigMap is the ReferralTarget. + // This filter seeks to repair the reference in Deployment, given + // that the ConfigMap's name may have changed. + Referrer *resource.Resource + + // NameFieldToUpdate is the field in the Referrer + // that holds the name requiring an update. + // This is the field to write. + NameFieldToUpdate types.FieldSpec + + // ReferralTarget is the source of the new value for + // the name, always in the 'metadata/name' field. + // This is the field to read. + ReferralTarget resid.Gvk + + // Set of resources to scan to find the ReferralTarget. + ReferralCandidates resmap.ResMap +} + +// At time of writing, in practice this is called with a slice with only +// one entry, the node also referred to be the resource in the Referrer field. +func (f Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + return kio.FilterAll(yaml.FilterFunc(f.run)).Filter(nodes) +} + +// The node passed in here is the same node as held in Referrer; +// that's how the referrer's name field is updated. +// Currently, however, this filter still needs the extra methods on Referrer +// to consult things like the resource Id, its namespace, etc. +// TODO(3455): No filter should use the Resource api; all information +// about names should come from annotations, with helper methods +// on the RNode object. Resource should get stupider, RNode smarter. +func (f Filter) run(node *yaml.RNode) (*yaml.RNode, error) { + if err := f.confirmNodeMatchesReferrer(node); err != nil { + // sanity check. + return nil, err + } + if err := node.PipeE(fieldspec.Filter{ + FieldSpec: f.NameFieldToUpdate, + SetValue: f.set, + }); err != nil { + return nil, errors.Wrapf( + err, "updating name reference in '%s' field of '%s'", + f.NameFieldToUpdate.Path, f.Referrer.CurId().String()) + } + return node, nil +} + +// This function is called on the node found at FieldSpec.Path. +// It's some node in the Referrer. +func (f Filter) set(node *yaml.RNode) error { + if yaml.IsMissingOrNull(node) { + return nil + } + switch node.YNode().Kind { + case yaml.ScalarNode: + return f.setScalar(node) + case yaml.MappingNode: + return f.setMapping(node) + case yaml.SequenceNode: + return applyFilterToSeq(seqFilter{ + setScalarFn: f.setScalar, + setMappingFn: f.setMapping, + }, node) + default: + return fmt.Errorf("node must be a scalar, sequence or map") + } +} + +// This method used when NameFieldToUpdate doesn't lead to +// one scalar field (typically called 'name'), but rather +// leads to a map field (called anything). In this case we +// must complete the field path, looking for both a 'name' +// and a 'namespace' field to help select the proper +// ReferralTarget to read the name and namespace from. +func (f Filter) setMapping(node *yaml.RNode) error { + if node.YNode().Kind != yaml.MappingNode { + return fmt.Errorf("expect a mapping node") + } + nameNode, err := node.Pipe(yaml.FieldMatcher{Name: "name"}) + if err != nil { + return errors.Wrap(err, "trying to match 'name' field") + } + if nameNode == nil { + // This is a _configuration_ error; the field path + // specified in NameFieldToUpdate.Path doesn't resolve + // to a map with a 'name' field, so we have no idea what + // field to update with a new name. + return fmt.Errorf("path config error; no 'name' field in node") + } + candidates, err := f.filterMapCandidatesByNamespace(node) + if err != nil { + return err + } + oldName := nameNode.YNode().Value + referral, err := f.selectReferral(oldName, candidates) + if err != nil || referral == nil { + // Nil referral means nothing to do. + return err + } + f.recordTheReferral(referral) + if referral.GetName() == oldName && referral.GetNamespace() == "" { + // The name has not changed, nothing to do. + return nil + } + if err = node.PipeE(yaml.FieldSetter{ + Name: "name", + StringValue: referral.GetName(), + }); err != nil { + return err + } + if referral.GetNamespace() == "" { + // Don't write an empty string into the namespace field, as + // it should not replace the value "default". The empty + // string is handled as a wild card here, not as an implicit + // specification of the "default" k8s namespace. + return nil + } + return node.PipeE(yaml.FieldSetter{ + Name: "namespace", + StringValue: referral.GetNamespace(), + }) +} + +func (f Filter) filterMapCandidatesByNamespace( + node *yaml.RNode) ([]*resource.Resource, error) { + namespaceNode, err := node.Pipe(yaml.FieldMatcher{Name: "namespace"}) + if err != nil { + return nil, errors.Wrap(err, "trying to match 'namespace' field") + } + if namespaceNode == nil { + return f.ReferralCandidates.Resources(), nil + } + namespace := namespaceNode.YNode().Value + nsMap := f.ReferralCandidates.GroupedByOriginalNamespace() + if candidates, ok := nsMap[namespace]; ok { + return candidates, nil + } + nsMap = f.ReferralCandidates.GroupedByCurrentNamespace() + // This could be nil, or an empty list. + return nsMap[namespace], nil +} + +func (f Filter) setScalar(node *yaml.RNode) error { + referral, err := f.selectReferral( + node.YNode().Value, f.ReferralCandidates.Resources()) + if err != nil || referral == nil { + // Nil referral means nothing to do. + return err + } + f.recordTheReferral(referral) + if referral.GetName() == node.YNode().Value { + // The name has not changed, nothing to do. + return nil + } + return node.PipeE(yaml.FieldSetter{StringValue: referral.GetName()}) +} + +// In the resource, make a note that it is referred to by the Referrer. +func (f Filter) recordTheReferral(referral *resource.Resource) { + referral.AppendRefBy(f.Referrer.CurId()) +} + +// getRoleRefGvk returns a Gvk in the roleRef field. Return error +// if the roleRef, roleRef/apiGroup or roleRef/kind is missing. +func getRoleRefGvk(n *yaml.RNode) (*resid.Gvk, error) { + roleRef, err := n.Pipe(yaml.Lookup("roleRef")) + if err != nil { + return nil, err + } + if roleRef.IsNil() { + return nil, fmt.Errorf("roleRef cannot be found in %s", n.MustString()) + } + apiGroup, err := roleRef.Pipe(yaml.Lookup("apiGroup")) + if err != nil { + return nil, err + } + if apiGroup.IsNil() { + return nil, fmt.Errorf( + "apiGroup cannot be found in roleRef %s", roleRef.MustString()) + } + kind, err := roleRef.Pipe(yaml.Lookup("kind")) + if err != nil { + return nil, err + } + if kind.IsNil() { + return nil, fmt.Errorf( + "kind cannot be found in roleRef %s", roleRef.MustString()) + } + return &resid.Gvk{ + Group: apiGroup.YNode().Value, + Kind: kind.YNode().Value, + }, nil +} + +// sieveFunc returns true if the resource argument satisfies some criteria. +type sieveFunc func(*resource.Resource) bool + +// doSieve uses a function to accept or ignore resources from a list. +// If list is nil, returns immediately. +// It's a filter obviously, but that term is overloaded here. +func doSieve(list []*resource.Resource, fn sieveFunc) (s []*resource.Resource) { + for _, r := range list { + if fn(r) { + s = append(s, r) + } + } + return +} + +func acceptAll(r *resource.Resource) bool { + return true +} + +func previousNameMatches(name string) sieveFunc { + return func(r *resource.Resource) bool { + for _, id := range r.PrevIds() { + if id.Name == name { + return true + } + } + return false + } +} + +func previousIdSelectedByGvk(gvk *resid.Gvk) sieveFunc { + return func(r *resource.Resource) bool { + for _, id := range r.PrevIds() { + if id.IsSelected(gvk) { + return true + } + } + return false + } +} + +// If the we are updating a 'roleRef/name' field, the 'apiGroup' and 'kind' +// fields in the same 'roleRef' map must be considered. +// If either object is cluster-scoped (!IsNamespaceableKind), there +// can be a referral. +// E.g. a RoleBinding (which exists in a namespace) can refer +// to a ClusterRole (cluster-scoped) object. +// https://kubernetes.io/docs/reference/access-authn-authz/rbac/#role-and-clusterrole +// Likewise, a ClusterRole can refer to a Secret (in a namespace). +// Objects in different namespaces generally cannot refer to other +// with some exceptions (e.g. RoleBinding and ServiceAccount are both +// namespaceable, but the former can refer to accounts in other namespaces). +func (f Filter) roleRefFilter() sieveFunc { + if !strings.HasSuffix(f.NameFieldToUpdate.Path, "roleRef/name") { + return acceptAll + } + roleRefGvk, err := getRoleRefGvk(f.Referrer.AsRNode()) + if err != nil { + return acceptAll + } + return previousIdSelectedByGvk(roleRefGvk) +} + +func prefixSuffixEquals(other resource.ResCtx) sieveFunc { + return func(r *resource.Resource) bool { + return r.PrefixesSuffixesEquals(other) + } +} + +func (f Filter) sameCurrentNamespaceAsReferrer() sieveFunc { + referrerCurId := f.Referrer.CurId() + if !referrerCurId.IsNamespaceableKind() { + // If the referrer is cluster-scoped, let anything through. + return acceptAll + } + return func(r *resource.Resource) bool { + if !r.CurId().IsNamespaceableKind() { + // Allow cluster-scoped through. + return true + } + if r.GetKind() == "ServiceAccount" { + // Allow service accounts through, even though they + // are in a namespace. A RoleBinding in another namespace + // can reference them. + return true + } + return referrerCurId.IsNsEquals(r.CurId()) + } +} + +// selectReferral picks the best referral from a list of candidates. +func (f Filter) selectReferral( + // The name referral that may need to be updated. + oldName string, + candidates []*resource.Resource) (*resource.Resource, error) { + candidates = doSieve(candidates, previousNameMatches(oldName)) + candidates = doSieve(candidates, previousIdSelectedByGvk(&f.ReferralTarget)) + candidates = doSieve(candidates, f.roleRefFilter()) + candidates = doSieve(candidates, f.sameCurrentNamespaceAsReferrer()) + if len(candidates) == 1 { + return candidates[0], nil + } + candidates = doSieve(candidates, prefixSuffixEquals(f.Referrer)) + if len(candidates) == 1 { + return candidates[0], nil + } + if len(candidates) == 0 { + return nil, nil + } + if allNamesAreTheSame(candidates) { + // Just take the first one. + return candidates[0], nil + } + ids := getIds(candidates) + f.failureDetails(candidates) + return nil, fmt.Errorf(" found multiple possible referrals: %s", ids) +} + +func (f Filter) failureDetails(resources []*resource.Resource) { + fmt.Printf( + "\n**** Too many possible referral targets to referrer:\n%s\n", + f.Referrer.MustYaml()) + for i, r := range resources { + fmt.Printf( + "--- possible referral %d:\n%s", i, r.MustYaml()) + fmt.Println("------") + } +} + +func allNamesAreTheSame(resources []*resource.Resource) bool { + name := resources[0].GetName() + for i := 1; i < len(resources); i++ { + if name != resources[i].GetName() { + return false + } + } + return true +} + +func getIds(rs []*resource.Resource) string { + var result []string + for _, r := range rs { + result = append(result, r.CurId().String()) + } + return strings.Join(result, ", ") +} + +func checkEqual(k, a, b string) error { + if a != b { + return fmt.Errorf( + "node-referrerOriginal '%s' mismatch '%s' != '%s'", + k, a, b) + } + return nil +} + +func (f Filter) confirmNodeMatchesReferrer(node *yaml.RNode) error { + meta, err := node.GetMeta() + if err != nil { + return err + } + gvk := f.Referrer.GetGvk() + if err = checkEqual( + "APIVersion", meta.APIVersion, gvk.ApiVersion()); err != nil { + return err + } + if err = checkEqual( + "Kind", meta.Kind, gvk.Kind); err != nil { + return err + } + if err = checkEqual( + "Name", meta.Name, f.Referrer.GetName()); err != nil { + return err + } + if err = checkEqual( + "Namespace", meta.Namespace, f.Referrer.GetNamespace()); err != nil { + return err + } + return nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/nameref/seqfilter.go b/vendor/sigs.k8s.io/kustomize/api/filters/nameref/seqfilter.go new file mode 100644 index 0000000000..c880694d1a --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/nameref/seqfilter.go @@ -0,0 +1,57 @@ +package nameref + +import ( + "fmt" + + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type setFn func(*yaml.RNode) error + +type seqFilter struct { + setScalarFn setFn + setMappingFn setFn +} + +func (sf seqFilter) Filter(node *yaml.RNode) (*yaml.RNode, error) { + if yaml.IsMissingOrNull(node) { + return node, nil + } + switch node.YNode().Kind { + case yaml.ScalarNode: + // Kind: Role/ClusterRole + // FieldSpec is rules.resourceNames + err := sf.setScalarFn(node) + return node, err + case yaml.MappingNode: + // Kind: RoleBinding/ClusterRoleBinding + // FieldSpec is subjects + // Note: The corresponding fieldSpec had been changed from + // from path: subjects/name to just path: subjects. This is + // what get mutatefield to request the mapping of the whole + // map containing namespace and name instead of just a simple + // string field containing the name + err := sf.setMappingFn(node) + return node, err + default: + return node, fmt.Errorf( + "%#v is expected to be either a string or a map of string", node) + } +} + +// applyFilterToSeq will apply the filter to each element in the sequence node +func applyFilterToSeq(filter yaml.Filter, node *yaml.RNode) error { + if node.YNode().Kind != yaml.SequenceNode { + return fmt.Errorf("expect a sequence node but got %v", node.YNode().Kind) + } + + for _, elem := range node.Content() { + rnode := yaml.NewRNode(elem) + err := rnode.PipeE(filter) + if err != nil { + return err + } + } + + return nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/namespace/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/namespace/doc.go new file mode 100644 index 0000000000..539758b282 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/namespace/doc.go @@ -0,0 +1,9 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package namespace contains a kio.Filter implementation of the kustomize +// namespace transformer. +// +// Special cases for known Kubernetes resources have been hardcoded in addition +// to those defined by the FsSlice. +package namespace diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/namespace/namespace.go b/vendor/sigs.k8s.io/kustomize/api/filters/namespace/namespace.go new file mode 100644 index 0000000000..69458e198b --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/namespace/namespace.go @@ -0,0 +1,168 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package namespace + +import ( + "sigs.k8s.io/kustomize/api/filters/fieldspec" + "sigs.k8s.io/kustomize/api/filters/filtersutil" + "sigs.k8s.io/kustomize/api/filters/fsslice" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type Filter struct { + // Namespace is the namespace to apply to the inputs + Namespace string `yaml:"namespace,omitempty"` + + // FsSlice contains the FieldSpecs to locate the namespace field + FsSlice types.FsSlice `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` +} + +var _ kio.Filter = Filter{} + +func (ns Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + return kio.FilterAll(yaml.FilterFunc(ns.run)).Filter(nodes) +} + +// Run runs the filter on a single node rather than a slice +func (ns Filter) run(node *yaml.RNode) (*yaml.RNode, error) { + // hacks for hardcoded types -- :( + if err := ns.hacks(node); err != nil { + return nil, err + } + + // Remove the fieldspecs that are for hardcoded fields. The fieldspecs + // exist for backwards compatibility with other implementations + // of this transformation. + // This implementation of the namespace transformation + // Does not use the fieldspecs for implementing cases which + // require hardcoded logic. + ns.FsSlice = ns.removeFieldSpecsForHacks(ns.FsSlice) + + // transformations based on data -- :) + err := node.PipeE(fsslice.Filter{ + FsSlice: ns.FsSlice, + SetValue: filtersutil.SetScalar(ns.Namespace), + CreateKind: yaml.ScalarNode, // Namespace is a ScalarNode + CreateTag: yaml.NodeTagString, + }) + return node, err +} + +// hacks applies the namespace transforms that are hardcoded rather +// than specified through FieldSpecs. +func (ns Filter) hacks(obj *yaml.RNode) error { + meta, err := obj.GetMeta() + if err != nil { + return err + } + + if err := ns.metaNamespaceHack(obj, meta); err != nil { + return err + } + + return ns.roleBindingHack(obj, meta) +} + +// metaNamespaceHack is a hack for implementing the namespace transform +// for the metadata.namespace field on namespace scoped resources. +// namespace scoped resources are determined by NOT being present +// in a hard-coded list of cluster-scoped resource types (by apiVersion and kind). +// +// This hack should be updated to allow individual resources to specify +// if they are cluster scoped through either an annotation on the resources, +// or through inlined OpenAPI on the resource as a YAML comment. +func (ns Filter) metaNamespaceHack(obj *yaml.RNode, meta yaml.ResourceMeta) error { + gvk := fieldspec.GetGVK(meta) + if !gvk.IsNamespaceableKind() { + return nil + } + f := fsslice.Filter{ + FsSlice: []types.FieldSpec{ + {Path: types.MetadataNamespacePath, CreateIfNotPresent: true}, + }, + SetValue: filtersutil.SetScalar(ns.Namespace), + CreateKind: yaml.ScalarNode, // Namespace is a ScalarNode + } + _, err := f.Filter(obj) + return err +} + +// roleBindingHack is a hack for implementing the namespace transform +// for RoleBinding and ClusterRoleBinding resource types. +// RoleBinding and ClusterRoleBinding have namespace set on +// elements of the "subjects" field if and only if the subject elements +// "name" is "default". Otherwise the namespace is not set. +// +// Example: +// +// kind: RoleBinding +// subjects: +// - name: "default" # this will have the namespace set +// ... +// - name: "something-else" # this will not have the namespace set +// ... +func (ns Filter) roleBindingHack(obj *yaml.RNode, meta yaml.ResourceMeta) error { + if meta.Kind != roleBindingKind && meta.Kind != clusterRoleBindingKind { + return nil + } + + // Lookup the namespace field on all elements. + // We should change the fieldspec so this isn't necessary. + obj, err := obj.Pipe(yaml.Lookup(subjectsField)) + if err != nil || yaml.IsMissingOrNull(obj) { + return err + } + + // add the namespace to each "subject" with name: default + err = obj.VisitElements(func(o *yaml.RNode) error { + // The only case we need to force the namespace + // if for the "service account". "default" is + // kind of hardcoded here for right now. + name, err := o.Pipe( + yaml.Lookup("name"), yaml.Match("default"), + ) + if err != nil || yaml.IsMissingOrNull(name) { + return err + } + + // set the namespace for the default account + v := yaml.NewScalarRNode(ns.Namespace) + return o.PipeE( + yaml.LookupCreate(yaml.ScalarNode, "namespace"), + yaml.FieldSetter{Value: v}, + ) + }) + + return err +} + +// removeFieldSpecsForHacks removes from the list fieldspecs that +// have hardcoded implementations +func (ns Filter) removeFieldSpecsForHacks(fs types.FsSlice) types.FsSlice { + var val types.FsSlice + for i := range fs { + // implemented by metaNamespaceHack + if fs[i].Path == types.MetadataNamespacePath { + continue + } + // implemented by roleBindingHack + if fs[i].Kind == roleBindingKind && fs[i].Path == subjectsField { + continue + } + // implemented by roleBindingHack + if fs[i].Kind == clusterRoleBindingKind && fs[i].Path == subjectsField { + continue + } + val = append(val, fs[i]) + } + return val +} + +const ( + subjectsField = "subjects" + roleBindingKind = "RoleBinding" + clusterRoleBindingKind = "ClusterRoleBinding" +) diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/patchjson6902/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/patchjson6902/doc.go new file mode 100644 index 0000000000..ec4cfa8211 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/patchjson6902/doc.go @@ -0,0 +1,6 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package namespace contains a kio.Filter implementation of the kustomize +// patchjson6902 transformer +package patchjson6902 diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/patchjson6902/patchjson6902.go b/vendor/sigs.k8s.io/kustomize/api/filters/patchjson6902/patchjson6902.go new file mode 100644 index 0000000000..5749d6ddfd --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/patchjson6902/patchjson6902.go @@ -0,0 +1,65 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package patchjson6902 + +import ( + "strings" + + jsonpatch "github.com/evanphx/json-patch" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" + k8syaml "sigs.k8s.io/yaml" +) + +type Filter struct { + Patch string + + decodedPatch jsonpatch.Patch +} + +var _ kio.Filter = Filter{} + +func (pf Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + decodedPatch, err := pf.decodePatch() + if err != nil { + return nil, err + } + pf.decodedPatch = decodedPatch + return kio.FilterAll(yaml.FilterFunc(pf.run)).Filter(nodes) +} + +func (pf Filter) decodePatch() (jsonpatch.Patch, error) { + patch := pf.Patch + // If the patch doesn't look like a JSON6902 patch, we + // try to parse it to json. + if !strings.HasPrefix(pf.Patch, "[") { + p, err := k8syaml.YAMLToJSON([]byte(patch)) + if err != nil { + return nil, err + } + patch = string(p) + } + decodedPatch, err := jsonpatch.DecodePatch([]byte(patch)) + if err != nil { + return nil, err + } + return decodedPatch, nil +} + +func (pf Filter) run(node *yaml.RNode) (*yaml.RNode, error) { + // We don't actually use the kyaml library for manipulating the + // yaml here. We just marshal it to json and rely on the + // jsonpatch library to take care of applying the patch. + // This means ordering might not be preserved with this filter. + b, err := node.MarshalJSON() + if err != nil { + return nil, err + } + res, err := pf.decodedPatch.Apply(b) + if err != nil { + return nil, err + } + err = node.UnmarshalJSON(res) + return node, err +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/patchstrategicmerge/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/patchstrategicmerge/doc.go new file mode 100644 index 0000000000..1733fd8a2c --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/patchstrategicmerge/doc.go @@ -0,0 +1,6 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package patchstrategicmerge contains a kio.Filter implementation of the +// kustomize strategic merge patch transformer. +package patchstrategicmerge diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/patchstrategicmerge/patchstrategicmerge.go b/vendor/sigs.k8s.io/kustomize/api/filters/patchstrategicmerge/patchstrategicmerge.go new file mode 100644 index 0000000000..1a70d19aac --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/patchstrategicmerge/patchstrategicmerge.go @@ -0,0 +1,36 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package patchstrategicmerge + +import ( + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" + "sigs.k8s.io/kustomize/kyaml/yaml/merge2" +) + +type Filter struct { + Patch *yaml.RNode +} + +var _ kio.Filter = Filter{} + +// Filter does a strategic merge patch, which can delete nodes. +func (pf Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + var result []*yaml.RNode + for i := range nodes { + r, err := merge2.Merge( + pf.Patch, nodes[i], + yaml.MergeOptions{ + ListIncreaseDirection: yaml.MergeOptionsListPrepend, + }, + ) + if err != nil { + return nil, err + } + if r != nil { + result = append(result, r) + } + } + return result, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/prefixsuffix/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/prefixsuffix/doc.go new file mode 100644 index 0000000000..319374436f --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/prefixsuffix/doc.go @@ -0,0 +1,6 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package prefixsuffix contains a kio.Filter implementation of the kustomize +// PrefixSuffixTransformer. +package prefixsuffix diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/prefixsuffix/prefixsuffix.go b/vendor/sigs.k8s.io/kustomize/api/filters/prefixsuffix/prefixsuffix.go new file mode 100644 index 0000000000..4b4247d41a --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/prefixsuffix/prefixsuffix.go @@ -0,0 +1,43 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package prefixsuffix + +import ( + "fmt" + + "sigs.k8s.io/kustomize/api/filters/fieldspec" + "sigs.k8s.io/kustomize/api/filters/filtersutil" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Filter applies resource name prefix's and suffix's using the fieldSpecs +type Filter struct { + Prefix string `json:"prefix,omitempty" yaml:"prefix,omitempty"` + Suffix string `json:"suffix,omitempty" yaml:"suffix,omitempty"` + + FieldSpec types.FieldSpec `json:"fieldSpec,omitempty" yaml:"fieldSpec,omitempty"` +} + +var _ kio.Filter = Filter{} + +func (f Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + return kio.FilterAll(yaml.FilterFunc(f.run)).Filter(nodes) +} + +func (f Filter) run(node *yaml.RNode) (*yaml.RNode, error) { + err := node.PipeE(fieldspec.Filter{ + FieldSpec: f.FieldSpec, + SetValue: f.evaluateField, + CreateKind: yaml.ScalarNode, // Name is a ScalarNode + CreateTag: yaml.NodeTagString, + }) + return node, err +} + +func (f Filter) evaluateField(node *yaml.RNode) error { + return filtersutil.SetScalar(fmt.Sprintf( + "%s%s%s", f.Prefix, node.YNode().Value, f.Suffix))(node) +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/refvar/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/refvar/doc.go new file mode 100644 index 0000000000..ab3a01d545 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/refvar/doc.go @@ -0,0 +1,3 @@ +// Package refvar contains a kio.Filter implementation of the kustomize +// refvar transformer (find and replace $(FOO) style variables in strings). +package refvar diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/refvar/expand.go b/vendor/sigs.k8s.io/kustomize/api/filters/refvar/expand.go new file mode 100644 index 0000000000..3bcbd7a53b --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/refvar/expand.go @@ -0,0 +1,147 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package refvar + +import ( + "fmt" + "log" + "strings" +) + +const ( + operator = '$' + referenceOpener = '(' + referenceCloser = ')' +) + +// syntaxWrap returns the input string wrapped by the expansion syntax. +func syntaxWrap(input string) string { + var sb strings.Builder + sb.WriteByte(operator) + sb.WriteByte(referenceOpener) + sb.WriteString(input) + sb.WriteByte(referenceCloser) + return sb.String() +} + +// MappingFunc maps a string to anything. +type MappingFunc func(string) interface{} + +// MakePrimitiveReplacer returns a MappingFunc that uses a map to do +// replacements, and a histogram to count map hits. +// +// Func behavior: +// +// If the input key is NOT found in the map, the key is wrapped up as +// as a variable declaration string and returned, e.g. key FOO becomes $(FOO). +// This string is presumably put back where it was found, and might get replaced +// later. +// +// If the key is found in the map, the value is returned if it is a primitive +// type (string, bool, number), and the hit is counted. +// +// If it's not a primitive type (e.g. a map, struct, func, etc.) then this +// function doesn't know what to do with it and it returns the key wrapped up +// again as if it had not been replaced. This should probably be an error. +func MakePrimitiveReplacer( + counts map[string]int, someMap map[string]interface{}) MappingFunc { + return func(key string) interface{} { + if value, ok := someMap[key]; ok { + switch typedV := value.(type) { + case string, int, int32, int64, float32, float64, bool: + counts[key]++ + return typedV + default: + // If the value is some complicated type (e.g. a map or struct), + // this function doesn't know how to jam it into a string, + // so just pretend it was a cache miss. + // Likely this should be an error instead of a silent failure, + // since the programmer passed an impossible value. + log.Printf( + "MakePrimitiveReplacer: bad replacement type=%T val=%v", + typedV, typedV) + return syntaxWrap(key) + } + } + // If unable to return the mapped variable, return it + // as it was found, and a later mapping might be able to + // replace it. + return syntaxWrap(key) + } +} + +// DoReplacements replaces variable references in the input string +// using the mapping function. +func DoReplacements(input string, mapping MappingFunc) interface{} { + var buf strings.Builder + checkpoint := 0 + for cursor := 0; cursor < len(input); cursor++ { + if input[cursor] == operator && cursor+1 < len(input) { + // Copy the portion of the input string since the last + // checkpoint into the buffer + buf.WriteString(input[checkpoint:cursor]) + + // Attempt to read the variable name as defined by the + // syntax from the input string + read, isVar, advance := tryReadVariableName(input[cursor+1:]) + + if isVar { + // We were able to read a variable name correctly; + // apply the mapping to the variable name and copy the + // bytes into the buffer + mapped := mapping(read) + if input == syntaxWrap(read) { + // Preserve the type of variable + return mapped + } + + // Variable is used in a middle of a string + buf.WriteString(fmt.Sprintf("%v", mapped)) + } else { + // Not a variable name; copy the read bytes into the buffer + buf.WriteString(read) + } + + // Advance the cursor in the input string to account for + // bytes consumed to read the variable name expression + cursor += advance + + // Advance the checkpoint in the input string + checkpoint = cursor + 1 + } + } + + // Return the buffer and any remaining unwritten bytes in the + // input string. + return buf.String() + input[checkpoint:] +} + +// tryReadVariableName attempts to read a variable name from the input +// string and returns the content read from the input, whether that content +// represents a variable name to perform mapping on, and the number of bytes +// consumed in the input string. +// +// The input string is assumed not to contain the initial operator. +func tryReadVariableName(input string) (string, bool, int) { + switch input[0] { + case operator: + // Escaped operator; return it. + return input[0:1], false, 1 + case referenceOpener: + // Scan to expression closer + for i := 1; i < len(input); i++ { + if input[i] == referenceCloser { + return input[1:i], true, i + 1 + } + } + + // Incomplete reference; return it. + return string(operator) + string(referenceOpener), false, 1 + default: + // Not the beginning of an expression, ie, an operator + // that doesn't begin an expression. Return the operator + // and the first rune in the string. + return string(operator) + string(input[0]), false, 1 + } +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/refvar/refvar.go b/vendor/sigs.k8s.io/kustomize/api/filters/refvar/refvar.go new file mode 100644 index 0000000000..016c574ec7 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/refvar/refvar.go @@ -0,0 +1,110 @@ +package refvar + +import ( + "fmt" + "strconv" + + "sigs.k8s.io/kustomize/api/filters/fieldspec" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Filter updates $(VAR) style variables with values. +// The fieldSpecs are the places to look for occurrences of $(VAR). +type Filter struct { + MappingFunc MappingFunc `json:"mappingFunc,omitempty" yaml:"mappingFunc,omitempty"` + FieldSpec types.FieldSpec `json:"fieldSpec,omitempty" yaml:"fieldSpec,omitempty"` +} + +func (f Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + return kio.FilterAll(yaml.FilterFunc(f.run)).Filter(nodes) +} + +func (f Filter) run(node *yaml.RNode) (*yaml.RNode, error) { + err := node.PipeE(fieldspec.Filter{ + FieldSpec: f.FieldSpec, + SetValue: f.set, + }) + return node, err +} + +func (f Filter) set(node *yaml.RNode) error { + if yaml.IsMissingOrNull(node) { + return nil + } + switch node.YNode().Kind { + case yaml.ScalarNode: + return f.setScalar(node) + case yaml.MappingNode: + return f.setMap(node) + case yaml.SequenceNode: + return f.setSeq(node) + default: + return fmt.Errorf("invalid type encountered %v", node.YNode().Kind) + } +} + +func updateNodeValue(node *yaml.Node, newValue interface{}) { + switch newValue := newValue.(type) { + case int: + node.Value = strconv.FormatInt(int64(newValue), 10) + node.Tag = yaml.NodeTagInt + case int32: + node.Value = strconv.FormatInt(int64(newValue), 10) + node.Tag = yaml.NodeTagInt + case int64: + node.Value = strconv.FormatInt(newValue, 10) + node.Tag = yaml.NodeTagInt + case bool: + node.SetString(strconv.FormatBool(newValue)) + node.Tag = yaml.NodeTagBool + case float32: + node.SetString(strconv.FormatFloat(float64(newValue), 'f', -1, 32)) + node.Tag = yaml.NodeTagFloat + case float64: + node.SetString(strconv.FormatFloat(newValue, 'f', -1, 64)) + node.Tag = yaml.NodeTagFloat + default: + node.SetString(newValue.(string)) + node.Tag = yaml.NodeTagString + } + node.Style = 0 +} + +func (f Filter) setScalar(node *yaml.RNode) error { + if !yaml.IsYNodeString(node.YNode()) { + return nil + } + v := DoReplacements(node.YNode().Value, f.MappingFunc) + updateNodeValue(node.YNode(), v) + return nil +} + +func (f Filter) setMap(node *yaml.RNode) error { + contents := node.YNode().Content + for i := 0; i < len(contents); i += 2 { + if !yaml.IsYNodeString(contents[i]) { + return fmt.Errorf( + "invalid map key: value='%s', tag='%s'", + contents[i].Value, contents[i].Tag) + } + if !yaml.IsYNodeString(contents[i+1]) { + continue + } + newValue := DoReplacements(contents[i+1].Value, f.MappingFunc) + updateNodeValue(contents[i+1], newValue) + } + return nil +} + +func (f Filter) setSeq(node *yaml.RNode) error { + for _, item := range node.YNode().Content { + if !yaml.IsYNodeString(item) { + return fmt.Errorf("invalid value type expect a string") + } + newValue := DoReplacements(item.Value, f.MappingFunc) + updateNodeValue(item, newValue) + } + return nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/replicacount/doc.go b/vendor/sigs.k8s.io/kustomize/api/filters/replicacount/doc.go new file mode 100644 index 0000000000..a22d13034b --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/replicacount/doc.go @@ -0,0 +1,6 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package replicacount contains a kio.Filter implementation of the kustomize +// ReplicaCountTransformer. +package replicacount diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/replicacount/replicacount.go b/vendor/sigs.k8s.io/kustomize/api/filters/replicacount/replicacount.go new file mode 100644 index 0000000000..8a503966a1 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/replicacount/replicacount.go @@ -0,0 +1,37 @@ +package replicacount + +import ( + "strconv" + + "sigs.k8s.io/kustomize/api/filters/fieldspec" + "sigs.k8s.io/kustomize/api/filters/filtersutil" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Filter updates/sets replicas fields using the fieldSpecs +type Filter struct { + Replica types.Replica `json:"replica,omitempty" yaml:"replica,omitempty"` + FieldSpec types.FieldSpec `json:"fieldSpec,omitempty" yaml:"fieldSpec,omitempty"` +} + +var _ kio.Filter = Filter{} + +func (rc Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + return kio.FilterAll(yaml.FilterFunc(rc.run)).Filter(nodes) +} + +func (rc Filter) run(node *yaml.RNode) (*yaml.RNode, error) { + err := node.PipeE(fieldspec.Filter{ + FieldSpec: rc.FieldSpec, + SetValue: rc.set, + CreateKind: yaml.ScalarNode, // replicas is a ScalarNode + CreateTag: yaml.NodeTagInt, + }) + return node, err +} + +func (rc Filter) set(node *yaml.RNode) error { + return filtersutil.SetScalar(strconv.FormatInt(rc.Replica.Count, 10))(node) +} diff --git a/vendor/sigs.k8s.io/kustomize/api/filters/valueadd/valueadd.go b/vendor/sigs.k8s.io/kustomize/api/filters/valueadd/valueadd.go new file mode 100644 index 0000000000..326466a45d --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/filters/valueadd/valueadd.go @@ -0,0 +1,134 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package valueadd + +import ( + "strings" + + "sigs.k8s.io/kustomize/api/filesys" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// An 'Add' operation aspiring to IETF RFC 6902 JSON. +// +// The filter tries to add a value to a node at a particular field path. +// +// Kinds of target fields: +// +// - Non-existent target field. +// +// The field will be added and the value inserted. +// +// - Existing field, scalar or map. +// +// E.g. 'spec/template/spec/containers/[name:nginx]/image' +// +// This behaves like an IETF RFC 6902 Replace operation would; +// the existing value is replaced without complaint, even though +// this is an Add operation. In contrast, a Replace operation +// must fail (report an error) if the field doesn't exist. +// +// - Existing field, list (array) +// Not supported yet. +// TODO: Honor fields with RFC-6902-style array indices +// TODO: like 'spec/template/spec/containers/2' +// TODO: Modify kyaml/yaml/PathGetter to allow this. +// The value will be inserted into the array at the given position, +// shifting other contents. To instead replace an array entry, use +// an implementation of an IETF RFC 6902 Replace operation. +// +// For the common case of a filepath in the field value, and a desire +// to add the value to the filepath (rather than replace the filepath), +// use a non-zero value of FilePathPosition (see below). +type Filter struct { + // Value is the value to add. + // + // Empty values are disallowed, i.e. this filter isn't intended + // for use in erasing or removing fields. For that, use a filter + // more aligned with the IETF RFC 6902 JSON Remove operation. + // + // At the time of writing, Value's value should be a simple string, + // not a JSON document. This particular filter focuses on easing + // injection of a single-sourced cloud project and/or cluster name + // into various fields, especially namespace and various filepath + // specifications. + Value string + + // FieldPath is a JSON-style path to the field intended to hold the value. + FieldPath string + + // FilePathPosition is a filepath field index. + // + // Call the value of this field _i_. + // + // If _i_ is zero, negative or unspecified, this field has no effect. + // + // If _i_ is > 0, then it's assumed that + // - 'Value' is a string that can work as a directory or file name, + // - the field value intended for replacement holds a filepath. + // + // The filepath is split into a string slice, the value is inserted + // at position [i-1], shifting the rest of the path to the right. + // A value of i==1 puts the new value at the start of the path. + // This change never converts an absolute path to a relative path, + // meaning adding a new field at position i==1 will preserve a + // leading slash. E.g. if Value == 'PEACH' + // + // OLD : NEW : FilePathPosition + // -------------------------------------------------------- + // {empty} : PEACH : irrelevant + // / : /PEACH : irrelevant + // pie : PEACH/pie : 1 (or less to prefix) + // /pie : /PEACH/pie : 1 (or less to prefix) + // raw : raw/PEACH : 2 (or more to postfix) + // /raw : /raw/PEACH : 2 (or more to postfix) + // a/nice/warm/pie : a/nice/warm/PEACH/pie : 4 + // /a/nice/warm/pie : /a/nice/warm/PEACH/pie : 4 + // + // For robustness (liberal input, conservative output) FilePathPosition + // values that that are too large to index the split filepath result in a + // postfix rather than an error. So use 1 to prefix, 9999 to postfix. + FilePathPosition int `json:"filePathPosition,omitempty" yaml:"filePathPosition,omitempty"` +} + +var _ kio.Filter = Filter{} + +func (f Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + _, err := kio.FilterAll(yaml.FilterFunc( + func(node *yaml.RNode) (*yaml.RNode, error) { + var fields []string + // if there is forward slash '/' in the field name, a back slash '\' + // will be used to escape it. + for _, f := range strings.Split(f.FieldPath, "/") { + if len(fields) > 0 && strings.HasSuffix(fields[len(fields)-1], "\\") { + concatField := strings.TrimSuffix(fields[len(fields)-1], "\\") + "/" + f + fields = append(fields[:len(fields)-1], concatField) + } else { + fields = append(fields, f) + } + } + // TODO: support SequenceNode. + // Presumably here one could look for array indices (digits) at + // the end of the field path (as described in IETF RFC 6902 JSON), + // and if found, take it as a signal that this should be a + // SequenceNode instead of a ScalarNode, and insert the value + // into the proper slot, shifting every over. + n, err := node.Pipe(yaml.LookupCreate(yaml.ScalarNode, fields...)) + if err != nil { + return node, err + } + // TODO: allow more kinds + if err := yaml.ErrorIfInvalid(n, yaml.ScalarNode); err != nil { + return nil, err + } + newValue := f.Value + if f.FilePathPosition > 0 { + newValue = filesys.InsertPathPart( + n.YNode().Value, f.FilePathPosition-1, newValue) + } + return n.Pipe(yaml.FieldSetter{StringValue: newValue}) + })).Filter(nodes) + return nodes, err +} diff --git a/vendor/sigs.k8s.io/kustomize/api/hasher/hasher.go b/vendor/sigs.k8s.io/kustomize/api/hasher/hasher.go new file mode 100644 index 0000000000..aef436d919 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/hasher/hasher.go @@ -0,0 +1,155 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package hasher + +import ( + "crypto/sha256" + "encoding/json" + "fmt" + "sort" + + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// SortArrayAndComputeHash sorts a string array and +// returns a hash for it +func SortArrayAndComputeHash(s []string) (string, error) { + sort.Strings(s) + data, err := json.Marshal(s) + if err != nil { + return "", err + } + return encode(hex256(string(data))) +} + +// Copied from https://github.com/kubernetes/kubernetes +// /blob/master/pkg/kubectl/util/hash/hash.go +func encode(hex string) (string, error) { + if len(hex) < 10 { + return "", fmt.Errorf( + "input length must be at least 10") + } + enc := []rune(hex[:10]) + for i := range enc { + switch enc[i] { + case '0': + enc[i] = 'g' + case '1': + enc[i] = 'h' + case '3': + enc[i] = 'k' + case 'a': + enc[i] = 'm' + case 'e': + enc[i] = 't' + } + } + return string(enc), nil +} + +// hex256 returns the hex form of the sha256 of the argument. +func hex256(data string) string { + return fmt.Sprintf("%x", sha256.Sum256([]byte(data))) +} + +// Hasher computes the hash of an RNode. +type Hasher struct{} + +// Hash returns a hash of the argument. +func (h *Hasher) Hash(node *yaml.RNode) (r string, err error) { + var encoded string + switch node.GetKind() { + case "ConfigMap": + encoded, err = encodeConfigMap(node) + case "Secret": + encoded, err = encodeSecret(node) + default: + var encodedBytes []byte + encodedBytes, err = json.Marshal(node.YNode()) + encoded = string(encodedBytes) + } + if err != nil { + return "", err + } + return encode(hex256(encoded)) +} + +func getNodeValues( + node *yaml.RNode, paths []string) (map[string]interface{}, error) { + values := make(map[string]interface{}) + for _, p := range paths { + vn, err := node.Pipe(yaml.Lookup(p)) + if err != nil { + return map[string]interface{}{}, err + } + if vn == nil { + values[p] = "" + continue + } + if vn.YNode().Kind != yaml.ScalarNode { + vs, err := vn.MarshalJSON() + if err != nil { + return map[string]interface{}{}, err + } + // data, binaryData and stringData are all maps + var v map[string]interface{} + json.Unmarshal(vs, &v) + values[p] = v + } else { + values[p] = vn.YNode().Value + } + } + return values, nil +} + +// encodeConfigMap encodes a ConfigMap. +// Data, Kind, and Name are taken into account. +// BinaryData is included if it's not empty to avoid useless key in output. +func encodeConfigMap(node *yaml.RNode) (string, error) { + // get fields + paths := []string{"metadata/name", "data", "binaryData"} + values, err := getNodeValues(node, paths) + if err != nil { + return "", err + } + m := map[string]interface{}{ + "kind": "ConfigMap", + "name": values["metadata/name"], + "data": values["data"], + } + if _, ok := values["binaryData"].(map[string]interface{}); ok { + m["binaryData"] = values["binaryData"] + } + + // json.Marshal sorts the keys in a stable order in the encoding + data, err := json.Marshal(m) + if err != nil { + return "", err + } + return string(data), nil +} + +// encodeSecret encodes a Secret. +// Data, Kind, Name, and Type are taken into account. +// StringData is included if it's not empty to avoid useless key in output. +func encodeSecret(node *yaml.RNode) (string, error) { + // get fields + paths := []string{"type", "metadata/name", "data", "stringData"} + values, err := getNodeValues(node, paths) + if err != nil { + return "", err + } + m := map[string]interface{}{"kind": "Secret", "type": values["type"], + "name": values["metadata/name"], "data": values["data"]} + if _, ok := values["stringData"].(map[string]interface{}); ok { + m["stringData"] = values["stringData"] + } + + // json.Marshal sorts the keys in a stable order in the encoding + data, err := json.Marshal(m) + if err != nil { + return "", err + } + return string(data), nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/ifc/ifc.go b/vendor/sigs.k8s.io/kustomize/api/ifc/ifc.go new file mode 100644 index 0000000000..9fd297478a --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/ifc/ifc.go @@ -0,0 +1,48 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package ifc holds miscellaneous interfaces used by kustomize. +package ifc + +import ( + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Validator provides functions to validate annotations and labels +type Validator interface { + MakeAnnotationValidator() func(map[string]string) error + MakeAnnotationNameValidator() func([]string) error + MakeLabelValidator() func(map[string]string) error + MakeLabelNameValidator() func([]string) error + ValidateNamespace(string) []string + ErrIfInvalidKey(string) error + IsEnvVarName(k string) error +} + +// KvLoader reads and validates KV pairs. +type KvLoader interface { + Validator() Validator + Load(args types.KvPairSources) (all []types.Pair, err error) +} + +// Loader interface exposes methods to read bytes. +type Loader interface { + // Root returns the root location for this Loader. + Root() string + // New returns Loader located at newRoot. + New(newRoot string) (Loader, error) + // Load returns the bytes read from the location or an error. + Load(location string) ([]byte, error) + // Cleanup cleans the loader + Cleanup() error +} + +// KustHasher returns a hash of the argument +// or an error. +type KustHasher interface { + Hash(*yaml.RNode) (string, error) +} + +// See core.v1.SecretTypeOpaque +const SecretTypeOpaque = "Opaque" diff --git a/vendor/sigs.k8s.io/kustomize/api/image/image.go b/vendor/sigs.k8s.io/kustomize/api/image/image.go new file mode 100644 index 0000000000..059999062d --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/image/image.go @@ -0,0 +1,50 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package image + +import ( + "regexp" + "strings" +) + +// IsImageMatched returns true if the value of t is identical to the +// image name in the full image name and tag as given by s. +func IsImageMatched(s, t string) bool { + // Tag values are limited to [a-zA-Z0-9_.{}-]. + // Some tools like Bazel rules_k8s allow tag patterns with {} characters. + // More info: https://github.com/bazelbuild/rules_k8s/pull/423 + pattern, _ := regexp.Compile("^" + t + "(@sha256)?(:[a-zA-Z0-9_.{}-]*)?$") + return pattern.MatchString(s) +} + +// Split separates and returns the name and tag parts +// from the image string using either colon `:` or at `@` separators. +// Note that the returned tag keeps its separator. +func Split(imageName string) (name string, tag string) { + // check if image name contains a domain + // if domain is present, ignore domain and check for `:` + ic := -1 + if slashIndex := strings.Index(imageName, "/"); slashIndex < 0 { + ic = strings.LastIndex(imageName, ":") + } else { + lastIc := strings.LastIndex(imageName[slashIndex:], ":") + // set ic only if `:` is present + if lastIc > 0 { + ic = slashIndex + lastIc + } + } + ia := strings.LastIndex(imageName, "@") + if ic < 0 && ia < 0 { + return imageName, "" + } + + i := ic + if ia > 0 { + i = ia + } + + name = imageName[:i] + tag = imageName[i:] + return +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/loadconfigfromcrds.go b/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/loadconfigfromcrds.go new file mode 100644 index 0000000000..d48c7a9dc0 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/loadconfigfromcrds.go @@ -0,0 +1,195 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package accumulator + +import ( + "encoding/json" + "strings" + + "github.com/go-openapi/spec" + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/filesys" + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +// OpenAPIDefinition describes single type. +// Normally these definitions are auto-generated using gen-openapi. +// Same as in k8s.io / kube-openapi / pkg / common. +type OpenAPIDefinition struct { + Schema spec.Schema + Dependencies []string +} + +type myProperties = map[string]spec.Schema +type nameToApiMap map[string]OpenAPIDefinition + +// LoadConfigFromCRDs parse CRD schemas from paths into a TransformerConfig +func LoadConfigFromCRDs( + ldr ifc.Loader, paths []string) (*builtinconfig.TransformerConfig, error) { + tc := builtinconfig.MakeEmptyConfig() + for _, path := range paths { + content, err := ldr.Load(path) + if err != nil { + return nil, err + } + m, err := makeNameToApiMap(content) + if err != nil { + return nil, errors.Wrapf(err, "unable to parse open API definition from '%s'", path) + } + otherTc, err := makeConfigFromApiMap(m) + if err != nil { + return nil, err + } + tc, err = tc.Merge(otherTc) + if err != nil { + return nil, err + } + } + return tc, nil +} + +func makeNameToApiMap(content []byte) (result nameToApiMap, err error) { + if content[0] == '{' { + err = json.Unmarshal(content, &result) + } else { + err = yaml.Unmarshal(content, &result) + } + return +} + +func makeConfigFromApiMap(m nameToApiMap) (*builtinconfig.TransformerConfig, error) { + result := builtinconfig.MakeEmptyConfig() + for name, api := range m { + if !looksLikeAk8sType(api.Schema.SchemaProps.Properties) { + continue + } + tc := builtinconfig.MakeEmptyConfig() + err := loadCrdIntoConfig( + tc, makeGvkFromTypeName(name), m, name, []string{}) + if err != nil { + return result, err + } + result, err = result.Merge(tc) + if err != nil { + return result, err + } + } + return result, nil +} + +// TODO: Get Group and Version for CRD from the +// openAPI definition once +// "x-kubernetes-group-version-kind" is available in CRD +func makeGvkFromTypeName(n string) resid.Gvk { + names := strings.Split(n, filesys.SelfDir) + kind := names[len(names)-1] + return resid.Gvk{Kind: kind} +} + +func looksLikeAk8sType(properties myProperties) bool { + _, ok := properties["kind"] + if !ok { + return false + } + _, ok = properties["apiVersion"] + if !ok { + return false + } + _, ok = properties["metadata"] + return ok +} + +const ( + // "x-kubernetes-annotation": "" + xAnnotation = "x-kubernetes-annotation" + + // "x-kubernetes-label-selector": "" + xLabelSelector = "x-kubernetes-label-selector" + + // "x-kubernetes-identity": "" + xIdentity = "x-kubernetes-identity" + + // "x-kubernetes-object-ref-api-version": + xVersion = "x-kubernetes-object-ref-api-version" + + // "x-kubernetes-object-ref-kind": + xKind = "x-kubernetes-object-ref-kind" + + // "x-kubernetes-object-ref-name-key": "name" + // default is "name" + xNameKey = "x-kubernetes-object-ref-name-key" +) + +// loadCrdIntoConfig loads a CRD spec into a TransformerConfig +func loadCrdIntoConfig( + theConfig *builtinconfig.TransformerConfig, theGvk resid.Gvk, theMap nameToApiMap, + typeName string, path []string) (err error) { + api, ok := theMap[typeName] + if !ok { + return nil + } + for propName, property := range api.Schema.SchemaProps.Properties { + _, annotate := property.Extensions.GetString(xAnnotation) + if annotate { + err = theConfig.AddAnnotationFieldSpec( + makeFs(theGvk, append(path, propName))) + if err != nil { + return + } + } + _, label := property.Extensions.GetString(xLabelSelector) + if label { + err = theConfig.AddLabelFieldSpec( + makeFs(theGvk, append(path, propName))) + if err != nil { + return + } + } + _, identity := property.Extensions.GetString(xIdentity) + if identity { + err = theConfig.AddPrefixFieldSpec( + makeFs(theGvk, append(path, propName))) + if err != nil { + return + } + } + version, ok := property.Extensions.GetString(xVersion) + if ok { + kind, ok := property.Extensions.GetString(xKind) + if ok { + nameKey, ok := property.Extensions.GetString(xNameKey) + if !ok { + nameKey = "name" + } + err = theConfig.AddNamereferenceFieldSpec( + builtinconfig.NameBackReferences{ + Gvk: resid.Gvk{Kind: kind, Version: version}, + Referrers: []types.FieldSpec{ + makeFs(theGvk, append(path, propName, nameKey))}, + }) + if err != nil { + return + } + } + } + if property.Ref.GetURL() != nil { + loadCrdIntoConfig( + theConfig, theGvk, theMap, + property.Ref.String(), append(path, propName)) + } + } + return nil +} + +func makeFs(in resid.Gvk, path []string) types.FieldSpec { + return types.FieldSpec{ + CreateIfNotPresent: false, + Gvk: in, + Path: strings.Join(path, "/"), + } +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/namereferencetransformer.go b/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/namereferencetransformer.go new file mode 100644 index 0000000000..a94ebcdf00 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/namereferencetransformer.go @@ -0,0 +1,154 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package accumulator + +import ( + "fmt" + "log" + + "sigs.k8s.io/kustomize/api/filters/nameref" + "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/resource" +) + +type nameReferenceTransformer struct { + backRefs []builtinconfig.NameBackReferences +} + +const doDebug = false + +var _ resmap.Transformer = &nameReferenceTransformer{} + +type filterMap map[*resource.Resource][]nameref.Filter + +// newNameReferenceTransformer constructs a nameReferenceTransformer +// with a given slice of NameBackReferences. +func newNameReferenceTransformer( + br []builtinconfig.NameBackReferences) resmap.Transformer { + if br == nil { + log.Fatal("backrefs not expected to be nil") + } + return &nameReferenceTransformer{backRefs: br} +} + +// Transform updates name references in resource A that +// refer to resource B, given that B's name may have +// changed. +// +// For example, a HorizontalPodAutoscaler (HPA) +// necessarily refers to a Deployment, the thing that +// an HPA scales. In this case: +// +// - the HPA instance is the Referrer, +// - the Deployment instance is the ReferralTarget. +// +// If the Deployment's name changes, e.g. a prefix is added, +// then the HPA's reference to the Deployment must be fixed. +// +func (t *nameReferenceTransformer) Transform(m resmap.ResMap) error { + fMap := t.determineFilters(m.Resources()) + debug(fMap) + for r, fList := range fMap { + c := m.SubsetThatCouldBeReferencedByResource(r) + for _, f := range fList { + f.Referrer = r + f.ReferralCandidates = c + if err := f.Referrer.ApplyFilter(f); err != nil { + return err + } + } + } + return nil +} + +func debug(fMap filterMap) { + if !doDebug { + return + } + fmt.Printf("filterMap has %d entries:\n", len(fMap)) + rCount := 0 + for r, fList := range fMap { + yml, _ := r.AsYAML() + rCount++ + fmt.Printf(` +---- %3d. possible referrer ------------- +%s +---------`, rCount, string(yml), + ) + for i, f := range fList { + fmt.Printf(` +%3d/%3d update: %s + from: %s +`, rCount, i+1, f.NameFieldToUpdate.Path, f.ReferralTarget, + ) + } + } +} + +// Produce a map from referrer resources that might need to be fixed +// to filters that might fix them. The keys to this map are potential +// referrers, so won't include resources like ConfigMap or Secret. +// +// In the inner loop over the resources below, say we +// encounter an HPA instance. Then, in scanning the set +// of all known backrefs, we encounter an entry like +// +// - kind: Deployment +// fieldSpecs: +// - kind: HorizontalPodAutoscaler +// path: spec/scaleTargetRef/name +// +// This entry says that an HPA, via its +// 'spec/scaleTargetRef/name' field, may refer to a +// Deployment. +// +// This means that a filter will need to hunt for the right Deployment, +// obtain it's new name, and write that name into the HPA's +// 'spec/scaleTargetRef/name' field. Return a filter that can do that. +func (t *nameReferenceTransformer) determineFilters( + resources []*resource.Resource) (fMap filterMap) { + fMap = make(filterMap) + for _, backReference := range t.backRefs { + for _, referrerSpec := range backReference.Referrers { + for _, res := range resources { + if res.OrgId().IsSelected(&referrerSpec.Gvk) { + // If this is true, the res might be a referrer, and if + // so, the name reference it holds might need an update. + if resHasField(res, referrerSpec.Path) { + // Optimization - the referrer has the field + // that might need updating. + fMap[res] = append(fMap[res], nameref.Filter{ + // Name field to write in the Referrer. + // If the path specified here isn't found in + // the Referrer, nothing happens (no error, + // no field creation). + NameFieldToUpdate: referrerSpec, + // Specification of object class to read from. + // Always read from metadata/name field. + ReferralTarget: backReference.Gvk, + }) + } + } + } + } + } + return fMap +} + +// TODO: check res for field existence here to avoid extra work. +// res.GetFieldValue, which uses yaml.Lookup under the hood, doesn't know +// how to parse fieldspec-style paths that make no distinction +// between maps and sequences. This means it cannot lookup commonly +// used "indeterminate" paths like +// spec/containers/env/valueFrom/configMapKeyRef/name +// ('containers' is a list, not a map). +// However, the fieldspec filter does know how to handle this; +// extract that code and call it here? +func resHasField(res *resource.Resource, path string) bool { + return true + // fld := strings.Join(utils.PathSplitter(path), ".") + // _, e := res.GetFieldValue(fld) + // return e == nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/refvartransformer.go b/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/refvartransformer.go new file mode 100644 index 0000000000..a02edc4fb3 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/refvartransformer.go @@ -0,0 +1,57 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package accumulator + +import ( + "sigs.k8s.io/kustomize/api/filters/refvar" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" +) + +type refVarTransformer struct { + varMap map[string]interface{} + replacementCounts map[string]int + fieldSpecs []types.FieldSpec +} + +// newRefVarTransformer returns a new refVarTransformer +// that replaces $(VAR) style variables with values. +// The fieldSpecs are the places to look for occurrences of $(VAR). +func newRefVarTransformer( + varMap map[string]interface{}, fs []types.FieldSpec) *refVarTransformer { + return &refVarTransformer{ + varMap: varMap, + fieldSpecs: fs, + } +} + +// UnusedVars returns slice of Var names that were unused +// after a Transform run. +func (rv *refVarTransformer) UnusedVars() []string { + var unused []string + for k := range rv.varMap { + if _, ok := rv.replacementCounts[k]; !ok { + unused = append(unused, k) + } + } + return unused +} + +// Transform replaces $(VAR) style variables with values. +func (rv *refVarTransformer) Transform(m resmap.ResMap) error { + rv.replacementCounts = make(map[string]int) + mf := refvar.MakePrimitiveReplacer(rv.replacementCounts, rv.varMap) + for _, res := range m.Resources() { + for _, fieldSpec := range rv.fieldSpecs { + err := res.ApplyFilter(refvar.Filter{ + MappingFunc: mf, + FieldSpec: fieldSpec, + }) + if err != nil { + return err + } + } + } + return nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/resaccumulator.go b/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/resaccumulator.go new file mode 100644 index 0000000000..b49db9b121 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/resaccumulator.go @@ -0,0 +1,169 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package accumulator + +import ( + "fmt" + "log" + "strings" + + "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" +) + +// ResAccumulator accumulates resources and the rules +// used to customize those resources. It's a ResMap +// plus stuff needed to modify the ResMap. +type ResAccumulator struct { + resMap resmap.ResMap + tConfig *builtinconfig.TransformerConfig + varSet types.VarSet +} + +func MakeEmptyAccumulator() *ResAccumulator { + ra := &ResAccumulator{} + ra.resMap = resmap.New() + ra.tConfig = &builtinconfig.TransformerConfig{} + ra.varSet = types.NewVarSet() + return ra +} + +// ResMap returns a copy of the internal resMap. +func (ra *ResAccumulator) ResMap() resmap.ResMap { + return ra.resMap.ShallowCopy() +} + +// Vars returns a copy of underlying vars. +func (ra *ResAccumulator) Vars() []types.Var { + return ra.varSet.AsSlice() +} + +func (ra *ResAccumulator) AppendAll(resources resmap.ResMap) error { + return ra.resMap.AppendAll(resources) +} + +func (ra *ResAccumulator) AbsorbAll(resources resmap.ResMap) error { + return ra.resMap.AbsorbAll(resources) +} + +func (ra *ResAccumulator) MergeConfig( + tConfig *builtinconfig.TransformerConfig) (err error) { + ra.tConfig, err = ra.tConfig.Merge(tConfig) + return err +} + +func (ra *ResAccumulator) GetTransformerConfig() *builtinconfig.TransformerConfig { + return ra.tConfig +} + +// MergeVars accumulates vars into ResAccumulator. +// A Var is a tuple of name, object reference and field reference. +// This func takes a list of vars from the current kustomization file and +// annotates the accumulated resources with the names of the vars that match +// those resources. E.g. if there's a var named "sam" that wants to get +// its data from a ConfigMap named "james", and the resource list contains a +// ConfigMap named "james", then that ConfigMap will be annotated with the +// var name "sam". Later this annotation is used to find the data for "sam" +// by digging into a particular fieldpath of "james". +func (ra *ResAccumulator) MergeVars(incoming []types.Var) error { + for _, v := range incoming { + targetId := resid.NewResIdWithNamespace(v.ObjRef.GVK(), v.ObjRef.Name, v.ObjRef.Namespace) + idMatcher := targetId.GvknEquals + if targetId.Namespace != "" || !targetId.IsNamespaceableKind() { + // Preserve backward compatibility. An empty namespace means + // wildcard search on the namespace hence we still use GvknEquals + idMatcher = targetId.Equals + } + matched := ra.resMap.GetMatchingResourcesByAnyId(idMatcher) + if len(matched) > 1 { + return fmt.Errorf( + "found %d resId matches for var %s "+ + "(unable to disambiguate)", + len(matched), v) + } + if len(matched) == 1 { + matched[0].AppendRefVarName(v) + } + } + return ra.varSet.MergeSlice(incoming) +} + +func (ra *ResAccumulator) MergeAccumulator(other *ResAccumulator) (err error) { + err = ra.AppendAll(other.resMap) + if err != nil { + return err + } + err = ra.MergeConfig(other.tConfig) + if err != nil { + return err + } + return ra.varSet.MergeSet(other.varSet) +} + +func (ra *ResAccumulator) findVarValueFromResources(v types.Var) (interface{}, error) { + for _, res := range ra.resMap.Resources() { + for _, varName := range res.GetRefVarNames() { + if varName == v.Name { + s, err := res.GetFieldValue(v.FieldRef.FieldPath) + if err != nil { + return "", fmt.Errorf( + "field specified in var '%v' "+ + "not found in corresponding resource", v) + } + return s, nil + } + } + } + return "", fmt.Errorf( + "var '%v' cannot be mapped to a field "+ + "in the set of known resources", v) +} + +// makeVarReplacementMap returns a map of Var names to +// their final values. The values are strings intended +// for substitution wherever the $(var.Name) occurs. +func (ra *ResAccumulator) makeVarReplacementMap() (map[string]interface{}, error) { + result := map[string]interface{}{} + for _, v := range ra.Vars() { + s, err := ra.findVarValueFromResources(v) + if err != nil { + return nil, err + } + result[v.Name] = s + } + return result, nil +} + +func (ra *ResAccumulator) Transform(t resmap.Transformer) error { + return t.Transform(ra.resMap) +} + +func (ra *ResAccumulator) ResolveVars() error { + replacementMap, err := ra.makeVarReplacementMap() + if err != nil { + return err + } + if len(replacementMap) == 0 { + return nil + } + t := newRefVarTransformer( + replacementMap, ra.tConfig.VarReference) + err = ra.Transform(t) + if len(t.UnusedVars()) > 0 { + log.Printf( + "well-defined vars that were never replaced: %s\n", + strings.Join(t.UnusedVars(), ",")) + } + return err +} + +func (ra *ResAccumulator) FixBackReferences() (err error) { + if ra.tConfig.NameReference == nil { + return nil + } + return ra.Transform( + newNameReferenceTransformer(ra.tConfig.NameReference)) +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/generators/configmap.go b/vendor/sigs.k8s.io/kustomize/api/internal/generators/configmap.go new file mode 100644 index 0000000000..19a0e2832e --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/generators/configmap.go @@ -0,0 +1,45 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package generators + +import ( + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// MakeConfigMap makes a configmap. +// +// ConfigMap: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#configmap-v1-core +// +// ConfigMaps and Secrets are similar. +// +// Both objects have a `data` field, which contains a map from keys to +// values that must be UTF-8 valid strings. Such data might be simple text, +// or whoever made the data may have done so by performing a base64 encoding +// on binary data. Regardless, k8s has no means to know this, so it treats +// the data field as a string. +// +// The ConfigMap has an additional field `binaryData`, also a map, but its +// values are _intended_ to be interpreted as a base64 encoding of []byte, +// by whatever makes use of the ConfigMap. +// +// In a ConfigMap, any key used in `data` cannot also be used in `binaryData` +// and vice-versa. A key must be unique across both maps. +func MakeConfigMap( + ldr ifc.KvLoader, args *types.ConfigMapArgs) (rn *yaml.RNode, err error) { + rn, err = makeBaseNode("ConfigMap", args.Name, args.Namespace) + if err != nil { + return nil, err + } + m, err := makeValidatedDataMap(ldr, args.Name, args.KvPairSources) + if err != nil { + return nil, err + } + if err = rn.LoadMapIntoConfigMapData(m); err != nil { + return nil, err + } + copyLabelsAndAnnotations(rn, args.Options) + return rn, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/generators/secret.go b/vendor/sigs.k8s.io/kustomize/api/internal/generators/secret.go new file mode 100644 index 0000000000..a46f497db2 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/generators/secret.go @@ -0,0 +1,58 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package generators + +import ( + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// MakeSecret makes a kubernetes Secret. +// +// Secret: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#secret-v1-core +// +// ConfigMaps and Secrets are similar. +// +// Like a ConfigMap, a Secret has a `data` field, but unlike a ConfigMap it has +// no `binaryData` field. +// +// All of a Secret's data is assumed to be opaque in nature, and assumed to be +// base64 encoded from its original representation, regardless of whether the +// original data was UTF-8 text or binary. +// +// This encoding provides no secrecy. It's just a neutral, common means to +// represent opaque text and binary data. Beneath the base64 encoding +// is presumably further encoding under control of the Secret's consumer. +// +// A Secret has string field `type` which holds an identifier, used by the +// client, to choose the algorithm to interpret the `data` field. Kubernetes +// cannot make use of this data; it's up to a controller or some pod's service +// to interpret the value, using `type` as a clue as to how to do this. +func MakeSecret( + ldr ifc.KvLoader, args *types.SecretArgs) (rn *yaml.RNode, err error) { + rn, err = makeBaseNode("Secret", args.Name, args.Namespace) + if err != nil { + return nil, err + } + t := "Opaque" + if args.Type != "" { + t = args.Type + } + if _, err := rn.Pipe( + yaml.FieldSetter{ + Name: "type", + Value: yaml.NewStringRNode(t)}); err != nil { + return nil, err + } + m, err := makeValidatedDataMap(ldr, args.Name, args.KvPairSources) + if err != nil { + return nil, err + } + if err = rn.LoadMapIntoSecretData(m); err != nil { + return nil, err + } + copyLabelsAndAnnotations(rn, args.Options) + return rn, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/generators/utils.go b/vendor/sigs.k8s.io/kustomize/api/internal/generators/utils.go new file mode 100644 index 0000000000..d1630fc847 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/generators/utils.go @@ -0,0 +1,78 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package generators + +import ( + "fmt" + + "github.com/go-errors/errors" + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +func makeBaseNode(kind, name, namespace string) (*yaml.RNode, error) { + rn, err := yaml.Parse(fmt.Sprintf(` +apiVersion: v1 +kind: %s +`, kind)) + if err != nil { + return nil, err + } + if name == "" { + return nil, errors.Errorf("a configmap must have a name") + } + if _, err := rn.Pipe(yaml.SetK8sName(name)); err != nil { + return nil, err + } + if namespace != "" { + if _, err := rn.Pipe(yaml.SetK8sNamespace(namespace)); err != nil { + return nil, err + } + } + return rn, nil +} + +func makeValidatedDataMap( + ldr ifc.KvLoader, name string, sources types.KvPairSources) (map[string]string, error) { + pairs, err := ldr.Load(sources) + if err != nil { + return nil, errors.WrapPrefix(err, "loading KV pairs", 0) + } + knownKeys := make(map[string]string) + for _, p := range pairs { + // legal key: alphanumeric characters, '-', '_' or '.' + if err := ldr.Validator().ErrIfInvalidKey(p.Key); err != nil { + return nil, err + } + if _, ok := knownKeys[p.Key]; ok { + return nil, errors.Errorf( + "configmap %s illegally repeats the key `%s`", name, p.Key) + } + knownKeys[p.Key] = p.Value + } + return knownKeys, nil +} + +// copyLabelsAndAnnotations copies labels and annotations from +// GeneratorOptions into the given object. +func copyLabelsAndAnnotations( + rn *yaml.RNode, opts *types.GeneratorOptions) error { + if opts == nil { + return nil + } + for _, k := range yaml.SortedMapKeys(opts.Labels) { + v := opts.Labels[k] + if _, err := rn.Pipe(yaml.SetLabel(k, v)); err != nil { + return err + } + } + for _, k := range yaml.SortedMapKeys(opts.Annotations) { + v := opts.Annotations[k] + if _, err := rn.Pipe(yaml.SetAnnotation(k, v)); err != nil { + return err + } + } + return nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/git/cloner.go b/vendor/sigs.k8s.io/kustomize/api/internal/git/cloner.go new file mode 100644 index 0000000000..e3daccd88a --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/git/cloner.go @@ -0,0 +1,51 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package git + +import ( + "sigs.k8s.io/kustomize/api/filesys" +) + +// Cloner is a function that can clone a git repo. +type Cloner func(repoSpec *RepoSpec) error + +// ClonerUsingGitExec uses a local git install, as opposed +// to say, some remote API, to obtain a local clone of +// a remote repo. +func ClonerUsingGitExec(repoSpec *RepoSpec) error { + r, err := newCmdRunner() + if err != nil { + return err + } + repoSpec.Dir = r.dir + if err = r.run("init"); err != nil { + return err + } + if err = r.run( + "remote", "add", "origin", repoSpec.CloneSpec()); err != nil { + return err + } + ref := "HEAD" + if repoSpec.Ref != "" { + ref = repoSpec.Ref + } + if err = r.run("fetch", "--depth=1", "origin", ref); err != nil { + return err + } + if err = r.run("checkout", "FETCH_HEAD"); err != nil { + return err + } + return r.run("submodule", "update", "--init", "--recursive") +} + +// DoNothingCloner returns a cloner that only sets +// cloneDir field in the repoSpec. It's assumed that +// the cloneDir is associated with some fake filesystem +// used in a test. +func DoNothingCloner(dir filesys.ConfirmedDir) Cloner { + return func(rs *RepoSpec) error { + rs.Dir = dir + return nil + } +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/git/gitrunner.go b/vendor/sigs.k8s.io/kustomize/api/internal/git/gitrunner.go new file mode 100644 index 0000000000..94bb78c600 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/git/gitrunner.go @@ -0,0 +1,58 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package git + +import ( + "os/exec" + "time" + + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/filesys" + "sigs.k8s.io/kustomize/api/internal/utils" +) + +// Arbitrary, but non-infinite, timeout for running commands. +const defaultDuration = 27 * time.Second + +// gitRunner runs the external git binary. +type gitRunner struct { + gitProgram string + duration time.Duration + dir filesys.ConfirmedDir +} + +// newCmdRunner returns a gitRunner if it can find the binary. +// It also creats a temp directory for cloning repos. +func newCmdRunner() (*gitRunner, error) { + gitProgram, err := exec.LookPath("git") + if err != nil { + return nil, errors.Wrap(err, "no 'git' program on path") + } + dir, err := filesys.NewTmpConfirmedDir() + if err != nil { + return nil, err + } + return &gitRunner{ + gitProgram: gitProgram, + duration: defaultDuration, + dir: dir, + }, nil +} + +// run a command with a timeout. +func (r gitRunner) run(args ...string) error { + //nolint: gosec + cmd := exec.Command(r.gitProgram, args...) + cmd.Dir = r.dir.String() + return utils.TimedCall( + cmd.String(), + r.duration, + func() error { + _, err := cmd.CombinedOutput() + if err != nil { + return errors.Wrapf(err, "git cmd = '%s'", cmd.String()) + } + return err + }) +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/git/repospec.go b/vendor/sigs.k8s.io/kustomize/api/internal/git/repospec.go new file mode 100644 index 0000000000..ad8dfc24d7 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/git/repospec.go @@ -0,0 +1,219 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package git + +import ( + "fmt" + "path/filepath" + "regexp" + "strings" + + "sigs.k8s.io/kustomize/api/filesys" +) + +// Used as a temporary non-empty occupant of the cloneDir +// field, as something distinguishable from the empty string +// in various outputs (especially tests). Not using an +// actual directory name here, as that's a temporary directory +// with a unique name that isn't created until clone time. +const notCloned = filesys.ConfirmedDir("/notCloned") + +// RepoSpec specifies a git repository and a branch and path therein. +type RepoSpec struct { + // Raw, original spec, used to look for cycles. + // TODO(monopole): Drop raw, use processed fields instead. + raw string + + // Host, e.g. github.com + Host string + + // orgRepo name (organization/repoName), + // e.g. kubernetes-sigs/kustomize + OrgRepo string + + // Dir where the orgRepo is cloned to. + Dir filesys.ConfirmedDir + + // Relative path in the repository, and in the cloneDir, + // to a Kustomization. + Path string + + // Branch or tag reference. + Ref string + + // e.g. .git or empty in case of _git is present + GitSuffix string +} + +// CloneSpec returns a string suitable for "git clone {spec}". +func (x *RepoSpec) CloneSpec() string { + if isAzureHost(x.Host) || isAWSHost(x.Host) { + return x.Host + x.OrgRepo + } + return x.Host + x.OrgRepo + x.GitSuffix +} + +func (x *RepoSpec) CloneDir() filesys.ConfirmedDir { + return x.Dir +} + +func (x *RepoSpec) Raw() string { + return x.raw +} + +func (x *RepoSpec) AbsPath() string { + return x.Dir.Join(x.Path) +} + +func (x *RepoSpec) Cleaner(fSys filesys.FileSystem) func() error { + return func() error { return fSys.RemoveAll(x.Dir.String()) } +} + +// From strings like git@github.com:someOrg/someRepo.git or +// https://github.com/someOrg/someRepo?ref=someHash, extract +// the parts. +func NewRepoSpecFromUrl(n string) (*RepoSpec, error) { + if filepath.IsAbs(n) { + return nil, fmt.Errorf("uri looks like abs path: %s", n) + } + host, orgRepo, path, gitRef, gitSuffix := parseGitUrl(n) + if orgRepo == "" { + return nil, fmt.Errorf("url lacks orgRepo: %s", n) + } + if host == "" { + return nil, fmt.Errorf("url lacks host: %s", n) + } + return &RepoSpec{ + raw: n, Host: host, OrgRepo: orgRepo, + Dir: notCloned, Path: path, Ref: gitRef, GitSuffix: gitSuffix}, nil +} + +const ( + refQuery = "?ref=" + refQueryRegex = "\\?(version|ref)=" + gitSuffix = ".git" + gitDelimiter = "_git/" +) + +// From strings like git@github.com:someOrg/someRepo.git or +// https://github.com/someOrg/someRepo?ref=someHash, extract +// the parts. +func parseGitUrl(n string) ( + host string, orgRepo string, path string, gitRef string, gitSuff string) { + + if strings.Contains(n, gitDelimiter) { + index := strings.Index(n, gitDelimiter) + // Adding _git/ to host + host = normalizeGitHostSpec(n[:index+len(gitDelimiter)]) + orgRepo = strings.Split(strings.Split(n[index+len(gitDelimiter):], "/")[0], "?")[0] + path, gitRef = peelQuery(n[index+len(gitDelimiter)+len(orgRepo):]) + return + } + host, n = parseHostSpec(n) + gitSuff = gitSuffix + if strings.Contains(n, gitSuffix) { + index := strings.Index(n, gitSuffix) + orgRepo = n[0:index] + n = n[index+len(gitSuffix):] + path, gitRef = peelQuery(n) + return + } + + i := strings.Index(n, "/") + if i < 1 { + return "", "", "", "", "" + } + j := strings.Index(n[i+1:], "/") + if j >= 0 { + j += i + 1 + orgRepo = n[:j] + path, gitRef = peelQuery(n[j+1:]) + return + } + path = "" + orgRepo, gitRef = peelQuery(n) + return host, orgRepo, path, gitRef, gitSuff +} + +func peelQuery(arg string) (string, string) { + + r, _ := regexp.Compile(refQueryRegex) + j := r.FindStringIndex(arg) + + if len(j) > 0 { + return arg[:j[0]], arg[j[0]+len(r.FindString(arg)):] + } + return arg, "" +} + +func parseHostSpec(n string) (string, string) { + var host string + // Start accumulating the host part. + for _, p := range []string{ + // Order matters here. + "git::", "gh:", "ssh://", "https://", "http://", + "git@", "github.com:", "github.com/"} { + if len(p) < len(n) && strings.ToLower(n[:len(p)]) == p { + n = n[len(p):] + host += p + } + } + if host == "git@" { + i := strings.Index(n, "/") + if i > -1 { + host += n[:i+1] + n = n[i+1:] + } else { + i = strings.Index(n, ":") + if i > -1 { + host += n[:i+1] + n = n[i+1:] + } + } + return host, n + } + + // If host is a http(s) or ssh URL, grab the domain part. + for _, p := range []string{ + "ssh://", "https://", "http://"} { + if strings.HasSuffix(host, p) { + i := strings.Index(n, "/") + if i > -1 { + host = host + n[0:i+1] + n = n[i+1:] + } + break + } + } + + return normalizeGitHostSpec(host), n +} + +func normalizeGitHostSpec(host string) string { + s := strings.ToLower(host) + if strings.Contains(s, "github.com") { + if strings.Contains(s, "git@") || strings.Contains(s, "ssh:") { + host = "git@github.com:" + } else { + host = "https://github.com/" + } + } + if strings.HasPrefix(s, "git::") { + host = strings.TrimPrefix(s, "git::") + } + return host +} + +// The format of Azure repo URL is documented +// https://docs.microsoft.com/en-us/azure/devops/repos/git/clone?view=vsts&tabs=visual-studio#clone_url +func isAzureHost(host string) bool { + return strings.Contains(host, "dev.azure.com") || + strings.Contains(host, "visualstudio.com") +} + +// The format of AWS repo URL is documented +// https://docs.aws.amazon.com/codecommit/latest/userguide/regions.html +func isAWSHost(host string) bool { + return strings.Contains(host, "amazonaws.com") +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/kusterr/yamlformaterror.go b/vendor/sigs.k8s.io/kustomize/api/internal/kusterr/yamlformaterror.go new file mode 100644 index 0000000000..950ffea8a4 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/kusterr/yamlformaterror.go @@ -0,0 +1,35 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package error has contextual error types. +package kusterr + +import ( + "fmt" + "strings" +) + +// YamlFormatError represents error with yaml file name where json/yaml format error happens. +type YamlFormatError struct { + Path string + ErrorMsg string +} + +func (e YamlFormatError) Error() string { + return fmt.Sprintf("YAML file [%s] encounters a format error.\n%s\n", e.Path, e.ErrorMsg) +} + +// Handler handles YamlFormatError +func Handler(e error, path string) error { + if isYAMLSyntaxError(e) { + return YamlFormatError{ + Path: path, + ErrorMsg: e.Error(), + } + } + return e +} + +func isYAMLSyntaxError(e error) bool { + return strings.Contains(e.Error(), "error converting YAML to JSON") || strings.Contains(e.Error(), "error unmarshaling JSON") +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/doc.go b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/doc.go new file mode 100644 index 0000000000..f41f79b0c1 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/doc.go @@ -0,0 +1,10 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package builtinconfig provides legacy methods for +// configuring builtin plugins from a common config file. +// As a user, its best to configure plugins individually +// with plugin config files specified in the `transformers:` +// or `generators:` field, than to use this legacy +// configuration technique. +package builtinconfig diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/loaddefaultconfig.go b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/loaddefaultconfig.go new file mode 100644 index 0000000000..bf5e3f8a32 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/loaddefaultconfig.go @@ -0,0 +1,42 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinconfig + +import ( + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/yaml" +) + +// loadDefaultConfig returns a TranformerConfig +// object from a list of files. +func loadDefaultConfig( + ldr ifc.Loader, paths []string) (*TransformerConfig, error) { + result := &TransformerConfig{} + for _, path := range paths { + data, err := ldr.Load(path) + if err != nil { + return nil, err + } + t, err := makeTransformerConfigFromBytes(data) + if err != nil { + return nil, err + } + result, err = result.Merge(t) + if err != nil { + return nil, err + } + } + return result, nil +} + +// makeTransformerConfigFromBytes returns a TransformerConfig object from bytes +func makeTransformerConfigFromBytes(data []byte) (*TransformerConfig, error) { + var t TransformerConfig + err := yaml.Unmarshal(data, &t) + if err != nil { + return nil, err + } + t.sortFields() + return &t, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/namebackreferences.go b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/namebackreferences.go new file mode 100644 index 0000000000..e458786c4d --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/namebackreferences.go @@ -0,0 +1,99 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinconfig + +import ( + "strings" + + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/api/types" +) + +// NameBackReferences is an association between a gvk.GVK (a ReferralTarget) +// and a list of Referrers that could refer to it. +// +// It is used to handle name changes, and can be thought of as a +// a contact list. If you change your own contact info (name, +// phone number, etc.), you must tell your contacts or they won't +// know about the change. +// +// For example, ConfigMaps can be used by Pods and everything that +// contains a Pod; Deployment, Job, StatefulSet, etc. +// The ConfigMap is the ReferralTarget, the others are Referrers. +// +// If the the name of a ConfigMap instance changed from 'alice' to 'bob', +// one must +// - visit all objects that could refer to the ConfigMap (the Referrers) +// - see if they mention 'alice', +// - if so, change the Referrer's name reference to 'bob'. +// +// The NameBackReferences instance to aid in this could look like +// { +// kind: ConfigMap +// version: v1 +// fieldSpecs: +// - kind: Pod +// version: v1 +// path: spec/volumes/configMap/name +// - kind: Deployment +// path: spec/template/spec/volumes/configMap/name +// - kind: Job +// path: spec/template/spec/volumes/configMap/name +// (etc.) +// } +type NameBackReferences struct { + resid.Gvk `json:",inline,omitempty" yaml:",inline,omitempty"` + // TODO: rename json 'fieldSpecs' to 'referrers' for clarity. + // This will, however, break anyone using a custom config. + Referrers types.FsSlice `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` +} + +func (n NameBackReferences) String() string { + var r []string + for _, f := range n.Referrers { + r = append(r, f.String()) + } + return n.Gvk.String() + ": (\n" + + strings.Join(r, "\n") + "\n)" +} + +type nbrSlice []NameBackReferences + +func (s nbrSlice) Len() int { return len(s) } +func (s nbrSlice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } +func (s nbrSlice) Less(i, j int) bool { + return s[i].Gvk.IsLessThan(s[j].Gvk) +} + +func (s nbrSlice) mergeAll(o nbrSlice) (result nbrSlice, err error) { + result = s + for _, r := range o { + result, err = result.mergeOne(r) + if err != nil { + return nil, err + } + } + return result, nil +} + +func (s nbrSlice) mergeOne(other NameBackReferences) (nbrSlice, error) { + var result nbrSlice + var err error + found := false + for _, c := range s { + if c.Gvk.Equals(other.Gvk) { + c.Referrers, err = c.Referrers.MergeAll(other.Referrers) + if err != nil { + return nil, err + } + found = true + } + result = append(result, c) + } + + if !found { + result = append(result, other) + } + return result, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/transformerconfig.go b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/transformerconfig.go new file mode 100644 index 0000000000..a28627a13f --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/transformerconfig.go @@ -0,0 +1,148 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinconfig + +import ( + "log" + "sort" + + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts" + "sigs.k8s.io/kustomize/api/types" +) + +// TransformerConfig holds the data needed to perform transformations. +type TransformerConfig struct { + NamePrefix types.FsSlice `json:"namePrefix,omitempty" yaml:"namePrefix,omitempty"` + NameSuffix types.FsSlice `json:"nameSuffix,omitempty" yaml:"nameSuffix,omitempty"` + NameSpace types.FsSlice `json:"namespace,omitempty" yaml:"namespace,omitempty"` + CommonLabels types.FsSlice `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"` + CommonAnnotations types.FsSlice `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"` + NameReference nbrSlice `json:"nameReference,omitempty" yaml:"nameReference,omitempty"` + VarReference types.FsSlice `json:"varReference,omitempty" yaml:"varReference,omitempty"` + Images types.FsSlice `json:"images,omitempty" yaml:"images,omitempty"` + Replicas types.FsSlice `json:"replicas,omitempty" yaml:"replicas,omitempty"` +} + +// MakeEmptyConfig returns an empty TransformerConfig object +func MakeEmptyConfig() *TransformerConfig { + return &TransformerConfig{} +} + +// MakeDefaultConfig returns a default TransformerConfig. +func MakeDefaultConfig() *TransformerConfig { + c, err := makeTransformerConfigFromBytes( + builtinpluginconsts.GetDefaultFieldSpecs()) + if err != nil { + log.Fatalf("Unable to make default transformconfig: %v", err) + } + return c +} + +// MakeTransformerConfig returns a merger of custom config, +// if any, with default config. +func MakeTransformerConfig( + ldr ifc.Loader, paths []string) (*TransformerConfig, error) { + t1 := MakeDefaultConfig() + if len(paths) == 0 { + return t1, nil + } + t2, err := loadDefaultConfig(ldr, paths) + if err != nil { + return nil, err + } + return t1.Merge(t2) +} + +// sortFields provides determinism in logging, tests, etc. +func (t *TransformerConfig) sortFields() { + sort.Sort(t.NamePrefix) + sort.Sort(t.NameSpace) + sort.Sort(t.CommonLabels) + sort.Sort(t.CommonAnnotations) + sort.Sort(t.NameReference) + sort.Sort(t.VarReference) + sort.Sort(t.Images) + sort.Sort(t.Replicas) +} + +// AddPrefixFieldSpec adds a FieldSpec to NamePrefix +func (t *TransformerConfig) AddPrefixFieldSpec(fs types.FieldSpec) (err error) { + t.NamePrefix, err = t.NamePrefix.MergeOne(fs) + return err +} + +// AddSuffixFieldSpec adds a FieldSpec to NameSuffix +func (t *TransformerConfig) AddSuffixFieldSpec(fs types.FieldSpec) (err error) { + t.NameSuffix, err = t.NameSuffix.MergeOne(fs) + return err +} + +// AddLabelFieldSpec adds a FieldSpec to CommonLabels +func (t *TransformerConfig) AddLabelFieldSpec(fs types.FieldSpec) (err error) { + t.CommonLabels, err = t.CommonLabels.MergeOne(fs) + return err +} + +// AddAnnotationFieldSpec adds a FieldSpec to CommonAnnotations +func (t *TransformerConfig) AddAnnotationFieldSpec(fs types.FieldSpec) (err error) { + t.CommonAnnotations, err = t.CommonAnnotations.MergeOne(fs) + return err +} + +// AddNamereferenceFieldSpec adds a NameBackReferences to NameReference +func (t *TransformerConfig) AddNamereferenceFieldSpec( + nbrs NameBackReferences) (err error) { + t.NameReference, err = t.NameReference.mergeOne(nbrs) + return err +} + +// Merge merges two TransformerConfigs objects into +// a new TransformerConfig object +func (t *TransformerConfig) Merge(input *TransformerConfig) ( + merged *TransformerConfig, err error) { + if input == nil { + return t, nil + } + merged = &TransformerConfig{} + merged.NamePrefix, err = t.NamePrefix.MergeAll(input.NamePrefix) + if err != nil { + return nil, err + } + merged.NameSuffix, err = t.NameSuffix.MergeAll(input.NameSuffix) + if err != nil { + return nil, err + } + merged.NameSpace, err = t.NameSpace.MergeAll(input.NameSpace) + if err != nil { + return nil, err + } + merged.CommonAnnotations, err = t.CommonAnnotations.MergeAll( + input.CommonAnnotations) + if err != nil { + return nil, err + } + merged.CommonLabels, err = t.CommonLabels.MergeAll(input.CommonLabels) + if err != nil { + return nil, err + } + merged.VarReference, err = t.VarReference.MergeAll(input.VarReference) + if err != nil { + return nil, err + } + merged.NameReference, err = t.NameReference.mergeAll(input.NameReference) + if err != nil { + return nil, err + } + merged.Images, err = t.Images.MergeAll(input.Images) + if err != nil { + return nil, err + } + merged.Replicas, err = t.Replicas.MergeAll(input.Replicas) + if err != nil { + return nil, err + } + merged.sortFields() + return merged, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers/builtinplugintype_string.go b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers/builtinplugintype_string.go new file mode 100644 index 0000000000..7b775fadb4 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers/builtinplugintype_string.go @@ -0,0 +1,38 @@ +// Code generated by "stringer -type=BuiltinPluginType"; DO NOT EDIT. + +package builtinhelpers + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[Unknown-0] + _ = x[AnnotationsTransformer-1] + _ = x[ConfigMapGenerator-2] + _ = x[HashTransformer-3] + _ = x[ImageTagTransformer-4] + _ = x[LabelTransformer-5] + _ = x[LegacyOrderTransformer-6] + _ = x[NamespaceTransformer-7] + _ = x[PatchJson6902Transformer-8] + _ = x[PatchStrategicMergeTransformer-9] + _ = x[PatchTransformer-10] + _ = x[PrefixSuffixTransformer-11] + _ = x[ReplicaCountTransformer-12] + _ = x[SecretGenerator-13] + _ = x[ValueAddTransformer-14] + _ = x[HelmChartInflationGenerator-15] +} + +const _BuiltinPluginType_name = "UnknownAnnotationsTransformerConfigMapGeneratorHashTransformerImageTagTransformerLabelTransformerLegacyOrderTransformerNamespaceTransformerPatchJson6902TransformerPatchStrategicMergeTransformerPatchTransformerPrefixSuffixTransformerReplicaCountTransformerSecretGeneratorValueAddTransformerHelmChartInflationGenerator" + +var _BuiltinPluginType_index = [...]uint16{0, 7, 29, 47, 62, 81, 97, 119, 139, 163, 193, 209, 232, 255, 270, 289, 316} + +func (i BuiltinPluginType) String() string { + if i < 0 || i >= BuiltinPluginType(len(_BuiltinPluginType_index)-1) { + return "BuiltinPluginType(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _BuiltinPluginType_name[_BuiltinPluginType_index[i]:_BuiltinPluginType_index[i+1]] +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers/builtins.go b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers/builtins.go new file mode 100644 index 0000000000..f53583981c --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers/builtins.go @@ -0,0 +1,77 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinhelpers + +import ( + "sigs.k8s.io/kustomize/api/builtins" + "sigs.k8s.io/kustomize/api/resmap" +) + +//go:generate stringer -type=BuiltinPluginType +type BuiltinPluginType int + +const ( + Unknown BuiltinPluginType = iota + AnnotationsTransformer + ConfigMapGenerator + HashTransformer + ImageTagTransformer + LabelTransformer + LegacyOrderTransformer + NamespaceTransformer + PatchJson6902Transformer + PatchStrategicMergeTransformer + PatchTransformer + PrefixSuffixTransformer + ReplicaCountTransformer + SecretGenerator + ValueAddTransformer + HelmChartInflationGenerator +) + +var stringToBuiltinPluginTypeMap map[string]BuiltinPluginType + +func init() { + stringToBuiltinPluginTypeMap = makeStringToBuiltinPluginTypeMap() +} + +func makeStringToBuiltinPluginTypeMap() (result map[string]BuiltinPluginType) { + result = make(map[string]BuiltinPluginType, 23) + for k := range GeneratorFactories { + result[k.String()] = k + } + for k := range TransformerFactories { + result[k.String()] = k + } + return +} + +func GetBuiltinPluginType(n string) BuiltinPluginType { + result, ok := stringToBuiltinPluginTypeMap[n] + if ok { + return result + } + return Unknown +} + +var GeneratorFactories = map[BuiltinPluginType]func() resmap.GeneratorPlugin{ + ConfigMapGenerator: builtins.NewConfigMapGeneratorPlugin, + SecretGenerator: builtins.NewSecretGeneratorPlugin, + HelmChartInflationGenerator: builtins.NewHelmChartInflationGeneratorPlugin, +} + +var TransformerFactories = map[BuiltinPluginType]func() resmap.TransformerPlugin{ + AnnotationsTransformer: builtins.NewAnnotationsTransformerPlugin, + HashTransformer: builtins.NewHashTransformerPlugin, + ImageTagTransformer: builtins.NewImageTagTransformerPlugin, + LabelTransformer: builtins.NewLabelTransformerPlugin, + LegacyOrderTransformer: builtins.NewLegacyOrderTransformerPlugin, + NamespaceTransformer: builtins.NewNamespaceTransformerPlugin, + PatchJson6902Transformer: builtins.NewPatchJson6902TransformerPlugin, + PatchStrategicMergeTransformer: builtins.NewPatchStrategicMergeTransformerPlugin, + PatchTransformer: builtins.NewPatchTransformerPlugin, + PrefixSuffixTransformer: builtins.NewPrefixSuffixTransformerPlugin, + ReplicaCountTransformer: builtins.NewReplicaCountTransformerPlugin, + ValueAddTransformer: builtins.NewValueAddTransformerPlugin, +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/plugins/execplugin/execplugin.go b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/execplugin/execplugin.go new file mode 100644 index 0000000000..a6f801ebb9 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/execplugin/execplugin.go @@ -0,0 +1,189 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package execplugin + +import ( + "bytes" + "fmt" + "io/ioutil" + "os" + "os/exec" + "runtime" + "strings" + + "github.com/google/shlex" + + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/internal/plugins/utils" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/yaml" +) + +const ( + tmpConfigFilePrefix = "kust-plugin-config-" +) + +// ExecPlugin record the name and args of an executable +// It triggers the executable generator and transformer +type ExecPlugin struct { + // absolute path of the executable + path string + + // Optional command line arguments to the executable + // pulled from specially named fields in cfg. + // This is for executables that don't want to parse YAML. + args []string + + // Plugin configuration data. + cfg []byte + + // PluginHelpers + h *resmap.PluginHelpers +} + +func NewExecPlugin(p string) *ExecPlugin { + return &ExecPlugin{path: p} +} + +func (p *ExecPlugin) ErrIfNotExecutable() error { + f, err := os.Stat(p.path) + if err != nil { + return err + } + // In Windows, it is not possible to determine whether a + // file is executable through file mode. + // TODO: provide for setting the executable FileMode bit on Windows + // The (fs *fileStat) Mode() (m FileMode) {} function in + // https://golang.org/src/os/types_windows.go + // lacks the ability to set the FileMode executable bit in response + // to file data on Windows. + if f.Mode()&0111 == 0000 && runtime.GOOS != "windows" { + return fmt.Errorf("unexecutable plugin at: %s", p.path) + } + return nil +} + +func (p *ExecPlugin) Path() string { + return p.path +} + +func (p *ExecPlugin) Args() []string { + return p.args +} + +func (p *ExecPlugin) Cfg() []byte { + return p.cfg +} + +func (p *ExecPlugin) Config(h *resmap.PluginHelpers, config []byte) error { + p.h = h + p.cfg = config + return p.processOptionalArgsFields() +} + +type argsConfig struct { + ArgsOneLiner string `json:"argsOneLiner,omitempty" yaml:"argsOneLiner,omitempty"` + ArgsFromFile string `json:"argsFromFile,omitempty" yaml:"argsFromFile,omitempty"` +} + +func (p *ExecPlugin) processOptionalArgsFields() error { + var c argsConfig + yaml.Unmarshal(p.cfg, &c) + if c.ArgsOneLiner != "" { + p.args, _ = shlex.Split(c.ArgsOneLiner) + } + if c.ArgsFromFile != "" { + content, err := p.h.Loader().Load(c.ArgsFromFile) + if err != nil { + return err + } + for _, x := range strings.Split(string(content), "\n") { + x := strings.TrimLeft(x, " ") + if x != "" { + p.args = append(p.args, x) + } + } + } + return nil +} + +func (p *ExecPlugin) Generate() (resmap.ResMap, error) { + output, err := p.invokePlugin(nil) + if err != nil { + return nil, err + } + rm, err := p.h.ResmapFactory().NewResMapFromBytes(output) + if err != nil { + return nil, err + } + return utils.UpdateResourceOptions(rm) +} + +func (p *ExecPlugin) Transform(rm resmap.ResMap) error { + // add ResIds as annotations to all objects so that we can add them back + inputRM, err := utils.GetResMapWithIDAnnotation(rm) + if err != nil { + return err + } + + // encode the ResMap so it can be fed to the plugin + resources, err := inputRM.AsYaml() + if err != nil { + return err + } + + // invoke the plugin with resources as the input + output, err := p.invokePlugin(resources) + if err != nil { + return fmt.Errorf("%v %s", err, string(output)) + } + + // update the original ResMap based on the output + return utils.UpdateResMapValues(p.path, p.h, output, rm) +} + +// invokePlugin writes plugin config to a temp file, then +// passes the full temp file path as the first arg to a process +// running the plugin binary. Process output is returned. +func (p *ExecPlugin) invokePlugin(input []byte) ([]byte, error) { + f, err := ioutil.TempFile("", tmpConfigFilePrefix) + if err != nil { + return nil, errors.Wrap( + err, "creating tmp plugin config file") + } + _, err = f.Write(p.cfg) + if err != nil { + return nil, errors.Wrap( + err, "writing plugin config to "+f.Name()) + } + err = f.Close() + if err != nil { + return nil, errors.Wrap( + err, "closing plugin config file "+f.Name()) + } + //nolint:gosec + cmd := exec.Command( + p.path, append([]string{f.Name()}, p.args...)...) + cmd.Env = p.getEnv() + cmd.Stdin = bytes.NewReader(input) + cmd.Stderr = os.Stderr + if _, err := os.Stat(p.h.Loader().Root()); err == nil { + cmd.Dir = p.h.Loader().Root() + } + result, err := cmd.Output() + if err != nil { + return nil, errors.Wrapf( + err, "failure in plugin configured via %s; %v", + f.Name(), err.Error()) + } + return result, os.Remove(f.Name()) +} + +func (p *ExecPlugin) getEnv() []string { + env := os.Environ() + env = append(env, + "KUSTOMIZE_PLUGIN_CONFIG_STRING="+string(p.cfg), + "KUSTOMIZE_PLUGIN_CONFIG_ROOT="+p.h.Loader().Root()) + return env +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/plugins/fnplugin/fnplugin.go b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/fnplugin/fnplugin.go new file mode 100644 index 0000000000..ddd980d74a --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/fnplugin/fnplugin.go @@ -0,0 +1,197 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package fnplugin + +import ( + "bytes" + "fmt" + + "github.com/pkg/errors" + + "sigs.k8s.io/kustomize/api/internal/plugins/utils" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/resource" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil" + "sigs.k8s.io/kustomize/kyaml/runfn" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// FnPlugin is the struct to hold function information +type FnPlugin struct { + // Function runner + runFns runfn.RunFns + + // Plugin configuration data. + cfg []byte + + // Plugin name cache for error output + pluginName string + + // PluginHelpers + h *resmap.PluginHelpers +} + +func bytesToRNode(yml []byte) (*yaml.RNode, error) { + rnode, err := yaml.Parse(string(yml)) + if err != nil { + return nil, err + } + return rnode, nil +} + +func resourceToRNode(res *resource.Resource) (*yaml.RNode, error) { + yml, err := res.AsYAML() + if err != nil { + return nil, err + } + + return bytesToRNode(yml) +} + +// GetFunctionSpec return function spec is there is. Otherwise return nil +func GetFunctionSpec(res *resource.Resource) *runtimeutil.FunctionSpec { + rnode, err := resourceToRNode(res) + if err != nil { + return nil + } + + return runtimeutil.GetFunctionSpec(rnode) +} + +func toStorageMounts(mounts []string) []runtimeutil.StorageMount { + var sms []runtimeutil.StorageMount + for _, mount := range mounts { + sms = append(sms, runtimeutil.StringToStorageMount(mount)) + } + return sms +} + +// NewFnPlugin creates a FnPlugin struct +func NewFnPlugin(o *types.FnPluginLoadingOptions) *FnPlugin { + return &FnPlugin{ + runFns: runfn.RunFns{ + Functions: []*yaml.RNode{}, + Network: o.Network, + EnableStarlark: o.EnableStar, + EnableExec: o.EnableExec, + StorageMounts: toStorageMounts(o.Mounts), + Env: o.Env, + }, + } +} + +// Cfg returns function config +func (p *FnPlugin) Cfg() []byte { + return p.cfg +} + +// Config is called by kustomize to pass-in config information +func (p *FnPlugin) Config(h *resmap.PluginHelpers, config []byte) error { + p.h = h + p.cfg = config + + fn, err := bytesToRNode(p.cfg) + if err != nil { + return err + } + + meta, err := fn.GetMeta() + if err != nil { + return err + } + + p.pluginName = fmt.Sprintf("api: %s, kind: %s, name: %s", + meta.APIVersion, meta.Kind, meta.Name) + + return nil +} + +// Generate is called when run as generator +func (p *FnPlugin) Generate() (resmap.ResMap, error) { + output, err := p.invokePlugin(nil) + if err != nil { + return nil, err + } + rm, err := p.h.ResmapFactory().NewResMapFromBytes(output) + if err != nil { + return nil, err + } + return utils.UpdateResourceOptions(rm) +} + +// Transform is called when run as transformer +func (p *FnPlugin) Transform(rm resmap.ResMap) error { + // add ResIds as annotations to all objects so that we can add them back + inputRM, err := utils.GetResMapWithIDAnnotation(rm) + if err != nil { + return err + } + + // encode the ResMap so it can be fed to the plugin + resources, err := inputRM.AsYaml() + if err != nil { + return err + } + + // invoke the plugin with resources as the input + output, err := p.invokePlugin(resources) + if err != nil { + return fmt.Errorf("%v %s", err, string(output)) + } + + // update the original ResMap based on the output + return utils.UpdateResMapValues(p.pluginName, p.h, output, rm) +} + +func injectAnnotation(input *yaml.RNode, k, v string) error { + err := input.PipeE(yaml.SetAnnotation(k, v)) + if err != nil { + return err + } + return nil +} + +// invokePlugin uses Function runner to run function as plugin +func (p *FnPlugin) invokePlugin(input []byte) ([]byte, error) { + // get function config rnode + functionConfig, err := bytesToRNode(p.cfg) + if err != nil { + return nil, err + } + + // This annotation will let kustomize ingnore this item in output + err = injectAnnotation(functionConfig, "config.kubernetes.io/local-config", "true") + if err != nil { + return nil, err + } + // we need to add config as input for generators. Some of them don't work with FunctionConfig + // and in addition kio.Pipeline won't create anything if there are no objects + // see https://github.com/kubernetes-sigs/kustomize/blob/master/kyaml/kio/kio.go#L93 + // Since we added `local-config` annotation so it will be ignored in generator output + // TODO(donnyxia): This is actually not used by generator and only used to bypass a kio limitation. + // Need better solution. + if input == nil { + yml, err := functionConfig.String() + if err != nil { + return nil, err + } + input = []byte(yml) + } + + // Configure and Execute Fn. We don't need to convert resources to ResourceList here + // because function runtime will do that. See kyaml/fn/runtime/runtimeutil/runtimeutil.go + var ouputBuffer bytes.Buffer + p.runFns.Input = bytes.NewReader(input) + p.runFns.Functions = append(p.runFns.Functions, functionConfig) + p.runFns.Output = &ouputBuffer + + err = p.runFns.Execute() + if err != nil { + return nil, errors.Wrap( + err, "couldn't execute function") + } + + return ouputBuffer.Bytes(), nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/plugins/loader/loader.go b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/loader/loader.go new file mode 100644 index 0000000000..0cbdfbe210 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/loader/loader.go @@ -0,0 +1,293 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package loader + +import ( + "fmt" + "log" + "os" + "path/filepath" + "plugin" + "reflect" + "strings" + + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/filesys" + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers" + "sigs.k8s.io/kustomize/api/internal/plugins/execplugin" + "sigs.k8s.io/kustomize/api/internal/plugins/fnplugin" + "sigs.k8s.io/kustomize/api/internal/plugins/utils" + "sigs.k8s.io/kustomize/api/konfig" + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/resource" + "sigs.k8s.io/kustomize/api/types" +) + +// Loader loads plugins using a file loader (a different loader). +type Loader struct { + pc *types.PluginConfig + rf *resmap.Factory + fs filesys.FileSystem + + // absolutePluginHome caches the location of a valid plugin root directory. + // It should only be set once the directory's existence has been confirmed. + absolutePluginHome string +} + +func NewLoader( + pc *types.PluginConfig, rf *resmap.Factory, fs filesys.FileSystem) *Loader { + return &Loader{pc: pc, rf: rf, fs: fs} +} + +// Config provides the global (not plugin specific) PluginConfig data. +func (l *Loader) Config() *types.PluginConfig { + return l.pc +} + +func (l *Loader) LoadGenerators( + ldr ifc.Loader, v ifc.Validator, rm resmap.ResMap) ([]resmap.Generator, error) { + var result []resmap.Generator + for _, res := range rm.Resources() { + g, err := l.LoadGenerator(ldr, v, res) + if err != nil { + return nil, err + } + result = append(result, g) + } + return result, nil +} + +func (l *Loader) LoadGenerator( + ldr ifc.Loader, v ifc.Validator, res *resource.Resource) (resmap.Generator, error) { + c, err := l.loadAndConfigurePlugin(ldr, v, res) + if err != nil { + return nil, err + } + g, ok := c.(resmap.Generator) + if !ok { + return nil, fmt.Errorf("plugin %s not a generator", res.OrgId()) + } + return g, nil +} + +func (l *Loader) LoadTransformers( + ldr ifc.Loader, v ifc.Validator, rm resmap.ResMap) ([]resmap.Transformer, error) { + var result []resmap.Transformer + for _, res := range rm.Resources() { + t, err := l.LoadTransformer(ldr, v, res) + if err != nil { + return nil, err + } + result = append(result, t) + } + return result, nil +} + +func (l *Loader) LoadTransformer( + ldr ifc.Loader, v ifc.Validator, res *resource.Resource) (resmap.Transformer, error) { + c, err := l.loadAndConfigurePlugin(ldr, v, res) + if err != nil { + return nil, err + } + t, ok := c.(resmap.Transformer) + if !ok { + return nil, fmt.Errorf("plugin %s not a transformer", res.OrgId()) + } + return t, nil +} + +func relativePluginPath(id resid.ResId) string { + return filepath.Join( + id.Group, + id.Version, + strings.ToLower(id.Kind)) +} + +func (l *Loader) AbsolutePluginPath(id resid.ResId) (string, error) { + pluginHome, err := l.absPluginHome() + if err != nil { + return "", err + } + return filepath.Join(pluginHome, relativePluginPath(id), id.Kind), nil +} + +// absPluginHome is the home of kustomize Exec and Go plugins. +// Kustomize plugin configuration files are k8s-style objects +// containing the fields 'apiVersion' and 'kind', e.g. +// apiVersion: apps/v1 +// kind: Deployment +// kustomize reads plugin configuration data from a file path +// specified in the 'generators:' or 'transformers:' field of a +// kustomization file. For Exec and Go plugins, kustomize +// uses this data to both locate the plugin and configure it. +// Each Exec or Go plugin (its code, its tests, its supporting data +// files, etc.) must be housed in its own directory at +// ${absPluginHome}/${pluginApiVersion}/LOWERCASE(${pluginKind}) +// where +// - ${absPluginHome} is an absolute path, defined below. +// - ${pluginApiVersion} is taken from the plugin config file. +// - ${pluginKind} is taken from the plugin config file. +func (l *Loader) absPluginHome() (string, error) { + // External plugins are disabled--return the dummy plugin root. + if l.pc.PluginRestrictions != types.PluginRestrictionsNone { + return konfig.NoPluginHomeSentinal, nil + } + // We've already determined plugin home--use the cached value. + if l.absolutePluginHome != "" { + return l.absolutePluginHome, nil + } + + // Check default locations for a valid plugin root, and cache it if found. + dir, err := konfig.DefaultAbsPluginHome(l.fs) + if err != nil { + return "", err + } + l.absolutePluginHome = dir + return l.absolutePluginHome, nil +} + +func isBuiltinPlugin(res *resource.Resource) bool { + // TODO: the special string should appear in Group, not Version. + return res.GetGvk().Group == "" && + res.GetGvk().Version == konfig.BuiltinPluginApiVersion +} + +func (l *Loader) loadAndConfigurePlugin( + ldr ifc.Loader, + v ifc.Validator, + res *resource.Resource) (c resmap.Configurable, err error) { + if isBuiltinPlugin(res) { + switch l.pc.BpLoadingOptions { + case types.BploLoadFromFileSys: + c, err = l.loadPlugin(res) + case types.BploUseStaticallyLinked: + // Instead of looking for and loading a .so file, + // instantiate the plugin from a generated factory + // function (see "pluginator"). Being able to do this + // is what makes a plugin "builtin". + c, err = l.makeBuiltinPlugin(res.GetGvk()) + default: + err = fmt.Errorf( + "unknown plugin loader behavior specified: %v", + l.pc.BpLoadingOptions) + } + } else { + switch l.pc.PluginRestrictions { + case types.PluginRestrictionsNone: + c, err = l.loadPlugin(res) + case types.PluginRestrictionsBuiltinsOnly: + err = types.NewErrOnlyBuiltinPluginsAllowed(res.OrgId().Kind) + default: + err = fmt.Errorf( + "unknown plugin restriction specified: %v", + l.pc.PluginRestrictions) + } + } + if err != nil { + return nil, err + } + yaml, err := res.AsYAML() + if err != nil { + return nil, errors.Wrapf(err, "marshalling yaml from res %s", res.OrgId()) + } + err = c.Config(resmap.NewPluginHelpers(ldr, v, l.rf, l.pc), yaml) + if err != nil { + return nil, errors.Wrapf( + err, "plugin %s fails configuration", res.OrgId()) + } + return c, nil +} + +func (l *Loader) makeBuiltinPlugin(r resid.Gvk) (resmap.Configurable, error) { + bpt := builtinhelpers.GetBuiltinPluginType(r.Kind) + if f, ok := builtinhelpers.GeneratorFactories[bpt]; ok { + return f(), nil + } + if f, ok := builtinhelpers.TransformerFactories[bpt]; ok { + return f(), nil + } + return nil, errors.Errorf("unable to load builtin %s", r) +} + +func (l *Loader) loadPlugin(res *resource.Resource) (resmap.Configurable, error) { + spec := fnplugin.GetFunctionSpec(res) + if spec != nil { + return fnplugin.NewFnPlugin(&l.pc.FnpLoadingOptions), nil + } + return l.loadExecOrGoPlugin(res.OrgId()) +} + +func (l *Loader) loadExecOrGoPlugin(resId resid.ResId) (resmap.Configurable, error) { + absPluginPath, err := l.AbsolutePluginPath(resId) + if err != nil { + return nil, err + } + // First try to load the plugin as an executable. + p := execplugin.NewExecPlugin(absPluginPath) + if err = p.ErrIfNotExecutable(); err == nil { + return p, nil + } + if !os.IsNotExist(err) { + // The file exists, but something else is wrong, + // likely it's not executable. + // Assume the user forgot to set the exec bit, + // and return an error, rather than adding ".so" + // to the name and attempting to load it as a Go + // plugin, which will likely fail and result + // in an obscure message. + return nil, err + } + // Failing the above, try loading it as a Go plugin. + c, err := l.loadGoPlugin(resId, absPluginPath+".so") + if err != nil { + return nil, err + } + return c, nil +} + +// registry is a means to avoid trying to load the same .so file +// into memory more than once, which results in an error. +// Each test makes its own loader, and tries to load its own plugins, +// but the loaded .so files are in shared memory, so one will get +// "this plugin already loaded" errors if the registry is maintained +// as a Loader instance variable. So make it a package variable. +var registry = make(map[string]resmap.Configurable) + +func (l *Loader) loadGoPlugin(id resid.ResId, absPath string) (resmap.Configurable, error) { + regId := relativePluginPath(id) + if c, ok := registry[regId]; ok { + return copyPlugin(c), nil + } + if !utils.FileExists(absPath) { + return nil, fmt.Errorf( + "expected file with Go object code at: %s", absPath) + } + log.Printf("Attempting plugin load from '%s'", absPath) + p, err := plugin.Open(absPath) + if err != nil { + return nil, errors.Wrapf(err, "plugin %s fails to load", absPath) + } + symbol, err := p.Lookup(konfig.PluginSymbol) + if err != nil { + return nil, errors.Wrapf( + err, "plugin %s doesn't have symbol %s", + regId, konfig.PluginSymbol) + } + c, ok := symbol.(resmap.Configurable) + if !ok { + return nil, fmt.Errorf("plugin '%s' not configurable", regId) + } + registry[regId] = c + return copyPlugin(c), nil +} + +func copyPlugin(c resmap.Configurable) resmap.Configurable { + indirect := reflect.Indirect(reflect.ValueOf(c)) + newIndirect := reflect.New(indirect.Type()) + newIndirect.Elem().Set(reflect.ValueOf(indirect.Interface())) + newNamed := newIndirect.Interface() + return newNamed.(resmap.Configurable) +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/plugins/utils/utils.go b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/utils/utils.go new file mode 100644 index 0000000000..7fa4611914 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/plugins/utils/utils.go @@ -0,0 +1,237 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package utils + +import ( + "encoding/json" + "fmt" + "os" + "path/filepath" + "runtime" + "strconv" + "time" + + "sigs.k8s.io/kustomize/api/filesys" + "sigs.k8s.io/kustomize/api/konfig" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/resource" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/yaml" +) + +const ( + idAnnotation = "kustomize.config.k8s.io/id" + HashAnnotation = "kustomize.config.k8s.io/needs-hash" + BehaviorAnnotation = "kustomize.config.k8s.io/behavior" +) + +func GoBin() string { + return filepath.Join(runtime.GOROOT(), "bin", "go") +} + +// DeterminePluginSrcRoot guesses where the user +// has her ${g}/${v}/$lower(${k})/${k}.go files. +func DeterminePluginSrcRoot(fSys filesys.FileSystem) (string, error) { + return konfig.FirstDirThatExistsElseError( + "plugin src root", fSys, []konfig.NotedFunc{ + { + Note: "relative to unit test", + F: func() string { + return filepath.Clean( + filepath.Join( + os.Getenv("PWD"), + "..", "..", + konfig.RelPluginHome)) + }, + }, + { + Note: "relative to unit test (internal pkg)", + F: func() string { + return filepath.Clean( + filepath.Join( + os.Getenv("PWD"), + "..", "..", "..", "..", + konfig.RelPluginHome)) + }, + }, + { + Note: "relative to api package", + F: func() string { + return filepath.Clean( + filepath.Join( + os.Getenv("PWD"), + "..", "..", "..", + konfig.RelPluginHome)) + }, + }, + { + Note: "old style $GOPATH", + F: func() string { + return filepath.Join( + os.Getenv("GOPATH"), + "src", konfig.DomainName, + konfig.ProgramName, konfig.RelPluginHome) + }, + }, + { + Note: "HOME with literal 'gopath'", + F: func() string { + return filepath.Join( + konfig.HomeDir(), "gopath", + "src", konfig.DomainName, + konfig.ProgramName, konfig.RelPluginHome) + }, + }, + { + Note: "home directory", + F: func() string { + return filepath.Join( + konfig.HomeDir(), konfig.DomainName, + konfig.ProgramName, konfig.RelPluginHome) + }, + }, + }) +} + +// FileYoungerThan returns true if the file both exists and has an +// age is <= the Duration argument. +func FileYoungerThan(path string, d time.Duration) bool { + fi, err := os.Stat(path) + if err != nil { + if os.IsNotExist(err) { + return false + } + } + return time.Since(fi.ModTime()) <= d +} + +// FileModifiedAfter returns true if the file both exists and was +// modified after the given time.. +func FileModifiedAfter(path string, t time.Time) bool { + fi, err := os.Stat(path) + if err != nil { + if os.IsNotExist(err) { + return false + } + } + return fi.ModTime().After(t) +} + +func FileExists(path string) bool { + if _, err := os.Stat(path); err != nil { + if os.IsNotExist(err) { + return false + } + } + return true +} + +// GetResMapWithIDAnnotation returns a new copy of the given ResMap with the ResIds annotated in each Resource +func GetResMapWithIDAnnotation(rm resmap.ResMap) (resmap.ResMap, error) { + inputRM := rm.DeepCopy() + for _, r := range inputRM.Resources() { + idString, err := yaml.Marshal(r.CurId()) + if err != nil { + return nil, err + } + annotations := r.GetAnnotations() + annotations[idAnnotation] = string(idString) + r.SetAnnotations(annotations) + } + return inputRM, nil +} + +// UpdateResMapValues updates the Resource value in the given ResMap +// with the emitted Resource values in output. +func UpdateResMapValues(pluginName string, h *resmap.PluginHelpers, output []byte, rm resmap.ResMap) error { + mapFactory := h.ResmapFactory() + resFactory := mapFactory.RF() + resources, err := resFactory.SliceFromBytes(output) + if err != nil { + return err + } + // Don't use resources here, or error message will be unfriendly to plugin builders + newMap, err := mapFactory.NewResMapFromBytes([]byte{}) + if err != nil { + return err + } + + for _, r := range resources { + removeIDAnnotation(r) // stale--not manipulated by plugin transformers + + // Add to the new map, checking for duplicates + if err := newMap.Append(r); err != nil { + prettyID, err := json.Marshal(r.CurId()) + if err != nil { + prettyID = []byte(r.CurId().String()) + } + return fmt.Errorf("plugin %s generated duplicate resource: %s", pluginName, prettyID) + } + + // Add to or update the old map + oldIdx, err := rm.GetIndexOfCurrentId(r.CurId()) + if err != nil { + return err + } + if oldIdx != -1 { + rm.GetByIndex(oldIdx).ResetPrimaryData(r) + } else { + if err := rm.Append(r); err != nil { + return err + } + } + } + + // Remove items the transformer deleted from the old map + for _, id := range rm.AllIds() { + newIdx, _ := newMap.GetIndexOfCurrentId(id) + if newIdx == -1 { + rm.Remove(id) + } + } + + return nil +} + +func removeIDAnnotation(r *resource.Resource) { + // remove the annotation set by Kustomize to track the resource + annotations := r.GetAnnotations() + delete(annotations, idAnnotation) + if len(annotations) == 0 { + annotations = nil + } + r.SetAnnotations(annotations) +} + +// UpdateResourceOptions updates the generator options for each resource in the +// given ResMap based on plugin provided annotations. +func UpdateResourceOptions(rm resmap.ResMap) (resmap.ResMap, error) { + for _, r := range rm.Resources() { + // Disable name hashing by default and require plugin to explicitly + // request it for each resource. + annotations := r.GetAnnotations() + behavior := annotations[BehaviorAnnotation] + var needsHash bool + if val, ok := annotations[HashAnnotation]; ok { + b, err := strconv.ParseBool(val) + if err != nil { + return nil, fmt.Errorf( + "the annotation %q contains an invalid value (%q)", + HashAnnotation, val) + } + needsHash = b + } + delete(annotations, HashAnnotation) + delete(annotations, BehaviorAnnotation) + if len(annotations) == 0 { + annotations = nil + } + r.SetAnnotations(annotations) + r.SetOptions(types.NewGenArgs( + &types.GeneratorArgs{ + Behavior: behavior, + Options: &types.GeneratorOptions{DisableNameSuffixHash: !needsHash}})) + } + return rm, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/target/errmissingkustomization.go b/vendor/sigs.k8s.io/kustomize/api/internal/target/errmissingkustomization.go new file mode 100644 index 0000000000..45e4895932 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/target/errmissingkustomization.go @@ -0,0 +1,48 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package target + +import ( + "fmt" + "strings" + + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/konfig" +) + +type errMissingKustomization struct { + path string +} + +func (e *errMissingKustomization) Error() string { + return fmt.Sprintf( + "unable to find one of %v in directory '%s'", + commaOr(quoted(konfig.RecognizedKustomizationFileNames())), + e.path) +} + +func IsMissingKustomizationFileError(err error) bool { + _, ok := err.(*errMissingKustomization) + if ok { + return true + } + _, ok = errors.Cause(err).(*errMissingKustomization) + return ok +} + +func NewErrMissingKustomization(p string) *errMissingKustomization { + return &errMissingKustomization{path: p} +} + +func quoted(l []string) []string { + r := make([]string, len(l)) + for i, v := range l { + r[i] = "'" + v + "'" + } + return r +} + +func commaOr(q []string) string { + return strings.Join(q[:len(q)-1], ", ") + " or " + q[len(q)-1] +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget.go b/vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget.go new file mode 100644 index 0000000000..efbb71ea61 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget.go @@ -0,0 +1,455 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package target + +import ( + "encoding/json" + "fmt" + "path/filepath" + "strings" + + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/builtins" + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/internal/accumulator" + "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" + "sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers" + "sigs.k8s.io/kustomize/api/internal/plugins/loader" + "sigs.k8s.io/kustomize/api/konfig" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/yaml" +) + +// KustTarget encapsulates the entirety of a kustomization build. +type KustTarget struct { + kustomization *types.Kustomization + ldr ifc.Loader + validator ifc.Validator + rFactory *resmap.Factory + pLdr *loader.Loader +} + +// NewKustTarget returns a new instance of KustTarget. +func NewKustTarget( + ldr ifc.Loader, + validator ifc.Validator, + rFactory *resmap.Factory, + pLdr *loader.Loader) *KustTarget { + return &KustTarget{ + ldr: ldr, + validator: validator, + rFactory: rFactory, + pLdr: pLdr, + } +} + +// Load attempts to load the target's kustomization file. +func (kt *KustTarget) Load() error { + content, err := loadKustFile(kt.ldr) + if err != nil { + return err + } + content, err = types.FixKustomizationPreUnmarshalling(content) + if err != nil { + return err + } + var k types.Kustomization + err = k.Unmarshal(content) + if err != nil { + return err + } + k.FixKustomizationPostUnmarshalling() + errs := k.EnforceFields() + if len(errs) > 0 { + return fmt.Errorf( + "Failed to read kustomization file under %s:\n"+ + strings.Join(errs, "\n"), kt.ldr.Root()) + } + kt.kustomization = &k + return nil +} + +// Kustomization returns a copy of the immutable, internal kustomization object. +func (kt *KustTarget) Kustomization() types.Kustomization { + var result types.Kustomization + b, _ := json.Marshal(*kt.kustomization) + json.Unmarshal(b, &result) + return result +} + +func loadKustFile(ldr ifc.Loader) ([]byte, error) { + var content []byte + match := 0 + for _, kf := range konfig.RecognizedKustomizationFileNames() { + c, err := ldr.Load(kf) + if err == nil { + match += 1 + content = c + } + } + switch match { + case 0: + return nil, NewErrMissingKustomization(ldr.Root()) + case 1: + return content, nil + default: + return nil, fmt.Errorf( + "Found multiple kustomization files under: %s\n", ldr.Root()) + } +} + +// MakeCustomizedResMap creates a fully customized ResMap +// per the instructions contained in its kustomization instance. +func (kt *KustTarget) MakeCustomizedResMap() (resmap.ResMap, error) { + return kt.makeCustomizedResMap() +} + +func (kt *KustTarget) makeCustomizedResMap() (resmap.ResMap, error) { + ra, err := kt.AccumulateTarget() + if err != nil { + return nil, err + } + + // The following steps must be done last, not as part of + // the recursion implicit in AccumulateTarget. + + err = kt.addHashesToNames(ra) + if err != nil { + return nil, err + } + + // Given that names have changed (prefixs/suffixes added), + // fix all the back references to those names. + err = ra.FixBackReferences() + if err != nil { + return nil, err + } + + // With all the back references fixed, it's OK to resolve Vars. + err = ra.ResolveVars() + if err != nil { + return nil, err + } + + return ra.ResMap(), nil +} + +func (kt *KustTarget) addHashesToNames( + ra *accumulator.ResAccumulator) error { + p := builtins.NewHashTransformerPlugin() + err := kt.configureBuiltinPlugin(p, nil, builtinhelpers.HashTransformer) + if err != nil { + return err + } + return ra.Transform(p) +} + +// AccumulateTarget returns a new ResAccumulator, +// holding customized resources and the data/rules used +// to do so. The name back references and vars are +// not yet fixed. +func (kt *KustTarget) AccumulateTarget() ( + ra *accumulator.ResAccumulator, err error) { + return kt.accumulateTarget(accumulator.MakeEmptyAccumulator()) +} + +// ra should be empty when this KustTarget is a Kustomization, or the ra of the parent if this KustTarget is a Component +// (or empty if the Component does not have a parent). +func (kt *KustTarget) accumulateTarget(ra *accumulator.ResAccumulator) ( + resRa *accumulator.ResAccumulator, err error) { + ra, err = kt.accumulateResources(ra, kt.kustomization.Resources) + if err != nil { + return nil, errors.Wrap(err, "accumulating resources") + } + ra, err = kt.accumulateComponents(ra, kt.kustomization.Components) + if err != nil { + return nil, errors.Wrap(err, "accumulating components") + } + tConfig, err := builtinconfig.MakeTransformerConfig( + kt.ldr, kt.kustomization.Configurations) + if err != nil { + return nil, err + } + err = ra.MergeConfig(tConfig) + if err != nil { + return nil, errors.Wrapf( + err, "merging config %v", tConfig) + } + crdTc, err := accumulator.LoadConfigFromCRDs(kt.ldr, kt.kustomization.Crds) + if err != nil { + return nil, errors.Wrapf( + err, "loading CRDs %v", kt.kustomization.Crds) + } + err = ra.MergeConfig(crdTc) + if err != nil { + return nil, errors.Wrapf( + err, "merging CRDs %v", crdTc) + } + err = kt.runGenerators(ra) + if err != nil { + return nil, err + } + err = kt.runTransformers(ra) + if err != nil { + return nil, err + } + err = kt.runValidators(ra) + if err != nil { + return nil, err + } + err = ra.MergeVars(kt.kustomization.Vars) + if err != nil { + return nil, errors.Wrapf( + err, "merging vars %v", kt.kustomization.Vars) + } + return ra, nil +} + +func (kt *KustTarget) runGenerators( + ra *accumulator.ResAccumulator) error { + var generators []resmap.Generator + gs, err := kt.configureBuiltinGenerators() + if err != nil { + return err + } + generators = append(generators, gs...) + gs, err = kt.configureExternalGenerators() + if err != nil { + return errors.Wrap(err, "loading generator plugins") + } + generators = append(generators, gs...) + for _, g := range generators { + resMap, err := g.Generate() + if err != nil { + return err + } + err = ra.AbsorbAll(resMap) + if err != nil { + return errors.Wrapf(err, "merging from generator %v", g) + } + } + return nil +} + +func (kt *KustTarget) configureExternalGenerators() ([]resmap.Generator, error) { + ra := accumulator.MakeEmptyAccumulator() + var generatorPaths []string + for _, p := range kt.kustomization.Generators { + // handle inline generators + rm, err := kt.rFactory.NewResMapFromBytes([]byte(p)) + if err != nil { + // not an inline config + generatorPaths = append(generatorPaths, p) + continue + } + ra.AppendAll(rm) + } + ra, err := kt.accumulateResources(ra, generatorPaths) + if err != nil { + return nil, err + } + return kt.pLdr.LoadGenerators(kt.ldr, kt.validator, ra.ResMap()) +} + +func (kt *KustTarget) runTransformers(ra *accumulator.ResAccumulator) error { + var r []resmap.Transformer + tConfig := ra.GetTransformerConfig() + lts, err := kt.configureBuiltinTransformers(tConfig) + if err != nil { + return err + } + r = append(r, lts...) + lts, err = kt.configureExternalTransformers(kt.kustomization.Transformers) + if err != nil { + return err + } + r = append(r, lts...) + return ra.Transform(newMultiTransformer(r)) +} + +func (kt *KustTarget) configureExternalTransformers(transformers []string) ([]resmap.Transformer, error) { + ra := accumulator.MakeEmptyAccumulator() + var transformerPaths []string + for _, p := range transformers { + // handle inline transformers + rm, err := kt.rFactory.NewResMapFromBytes([]byte(p)) + if err != nil { + // not an inline config + transformerPaths = append(transformerPaths, p) + continue + } + ra.AppendAll(rm) + } + ra, err := kt.accumulateResources(ra, transformerPaths) + + if err != nil { + return nil, err + } + return kt.pLdr.LoadTransformers(kt.ldr, kt.validator, ra.ResMap()) +} + +func (kt *KustTarget) runValidators(ra *accumulator.ResAccumulator) error { + validators, err := kt.configureExternalTransformers(kt.kustomization.Validators) + if err != nil { + return err + } + for _, v := range validators { + // Validators shouldn't modify the resource map + orignal := ra.ResMap().DeepCopy() + err = v.Transform(ra.ResMap()) + if err != nil { + return err + } + new := ra.ResMap().DeepCopy() + kt.removeValidatedByLabel(new) + if err = orignal.ErrorIfNotEqualSets(new); err != nil { + return fmt.Errorf("validator shouldn't modify the resource map: %v", err) + } + } + return nil +} + +func (kt *KustTarget) removeValidatedByLabel(rm resmap.ResMap) { + resources := rm.Resources() + for _, r := range resources { + labels := r.GetLabels() + if _, found := labels[konfig.ValidatedByLabelKey]; !found { + continue + } + delete(labels, konfig.ValidatedByLabelKey) + if len(labels) == 0 { + r.SetLabels(nil) + } else { + r.SetLabels(labels) + } + } +} + +// accumulateResources fills the given resourceAccumulator +// with resources read from the given list of paths. +func (kt *KustTarget) accumulateResources( + ra *accumulator.ResAccumulator, paths []string) (*accumulator.ResAccumulator, error) { + for _, path := range paths { + // try loading resource as file then as base (directory or git repository) + if errF := kt.accumulateFile(ra, path); errF != nil { + ldr, err := kt.ldr.New(path) + if err != nil { + return nil, errors.Wrapf( + err, "accumulation err='%s'", errF.Error()) + } + ra, err = kt.accumulateDirectory(ra, ldr, false) + if err != nil { + return nil, errors.Wrapf( + err, "accumulation err='%s'", errF.Error()) + } + } + } + return ra, nil +} + +// accumulateResources fills the given resourceAccumulator +// with resources read from the given list of paths. +func (kt *KustTarget) accumulateComponents( + ra *accumulator.ResAccumulator, paths []string) (*accumulator.ResAccumulator, error) { + for _, path := range paths { + // Components always refer to directories + ldr, errL := kt.ldr.New(path) + if errL != nil { + return nil, fmt.Errorf("loader.New %q", errL) + } + var errD error + ra, errD = kt.accumulateDirectory(ra, ldr, true) + if errD != nil { + return nil, fmt.Errorf("accumulateDirectory: %q", errD) + } + } + return ra, nil +} + +func (kt *KustTarget) accumulateDirectory( + ra *accumulator.ResAccumulator, ldr ifc.Loader, isComponent bool) (*accumulator.ResAccumulator, error) { + defer ldr.Cleanup() + subKt := NewKustTarget(ldr, kt.validator, kt.rFactory, kt.pLdr) + err := subKt.Load() + if err != nil { + return nil, errors.Wrapf( + err, "couldn't make target for path '%s'", ldr.Root()) + } + var bytes []byte + path := ldr.Root() + if openApiPath, exists := subKt.Kustomization().OpenAPI["path"]; exists { + bytes, err = ldr.Load(filepath.Join(path, openApiPath)) + if err != nil { + return nil, err + } + } + err = openapi.SetSchema(subKt.Kustomization().OpenAPI, bytes, false) + if err != nil { + return nil, err + } + if isComponent && subKt.kustomization.Kind != types.ComponentKind { + return nil, fmt.Errorf( + "expected kind '%s' for path '%s' but got '%s'", types.ComponentKind, ldr.Root(), subKt.kustomization.Kind) + } else if !isComponent && subKt.kustomization.Kind == types.ComponentKind { + return nil, fmt.Errorf( + "expected kind != '%s' for path '%s'", types.ComponentKind, ldr.Root()) + } + + var subRa *accumulator.ResAccumulator + if isComponent { + // Components don't create a new accumulator: the kustomization directives are added to the current accumulator + subRa, err = subKt.accumulateTarget(ra) + ra = accumulator.MakeEmptyAccumulator() + } else { + // Child Kustomizations create a new accumulator which resolves their kustomization directives, which will later + // be merged into the current accumulator. + subRa, err = subKt.AccumulateTarget() + } + if err != nil { + return nil, errors.Wrapf( + err, "recursed accumulation of path '%s'", ldr.Root()) + } + err = ra.MergeAccumulator(subRa) + if err != nil { + return nil, errors.Wrapf( + err, "recursed merging from path '%s'", ldr.Root()) + } + return ra, nil +} + +func (kt *KustTarget) accumulateFile( + ra *accumulator.ResAccumulator, path string) error { + resources, err := kt.rFactory.FromFile(kt.ldr, path) + if err != nil { + return errors.Wrapf(err, "accumulating resources from '%s'", path) + } + err = ra.AppendAll(resources) + if err != nil { + return errors.Wrapf(err, "merging resources from '%s'", path) + } + return nil +} + +func (kt *KustTarget) configureBuiltinPlugin( + p resmap.Configurable, c interface{}, bpt builtinhelpers.BuiltinPluginType) (err error) { + var y []byte + if c != nil { + y, err = yaml.Marshal(c) + if err != nil { + return errors.Wrapf( + err, "builtin %s marshal", bpt) + } + } + err = p.Config( + resmap.NewPluginHelpers( + kt.ldr, kt.validator, kt.rFactory, kt.pLdr.Config()), + y) + if err != nil { + return errors.Wrapf( + err, "trouble configuring builtin %s with config: `\n%s`", bpt, string(y)) + } + return nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget_configplugin.go b/vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget_configplugin.go new file mode 100644 index 0000000000..2715af471f --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget_configplugin.go @@ -0,0 +1,351 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package target + +import ( + "fmt" + + "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" + "sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" +) + +// Functions dedicated to configuring the builtin +// transformer and generator plugins using config data +// read from a kustomization file and from the +// config.TransformerConfig, whose data may be a +// mix of hardcoded values and data read from file. +// +// Non-builtin plugins will get their configuration +// from their own dedicated structs and YAML files. +// +// There are some loops in the functions below because +// the kustomization file would, say, allow someone to +// request multiple secrets be made, or run multiple +// image tag transforms. In these cases, we'll need +// N plugin instances with differing configurations. + +func (kt *KustTarget) configureBuiltinGenerators() ( + result []resmap.Generator, err error) { + for _, bpt := range []builtinhelpers.BuiltinPluginType{ + builtinhelpers.ConfigMapGenerator, + builtinhelpers.SecretGenerator, + builtinhelpers.HelmChartInflationGenerator, + } { + r, err := generatorConfigurators[bpt]( + kt, bpt, builtinhelpers.GeneratorFactories[bpt]) + if err != nil { + return nil, err + } + result = append(result, r...) + } + return result, nil +} + +func (kt *KustTarget) configureBuiltinTransformers( + tc *builtinconfig.TransformerConfig) ( + result []resmap.Transformer, err error) { + for _, bpt := range []builtinhelpers.BuiltinPluginType{ + builtinhelpers.PatchStrategicMergeTransformer, + builtinhelpers.PatchTransformer, + builtinhelpers.NamespaceTransformer, + builtinhelpers.PrefixSuffixTransformer, + builtinhelpers.LabelTransformer, + builtinhelpers.AnnotationsTransformer, + builtinhelpers.PatchJson6902Transformer, + builtinhelpers.ReplicaCountTransformer, + builtinhelpers.ImageTagTransformer, + } { + r, err := transformerConfigurators[bpt]( + kt, bpt, builtinhelpers.TransformerFactories[bpt], tc) + if err != nil { + return nil, err + } + result = append(result, r...) + } + return result, nil +} + +type gFactory func() resmap.GeneratorPlugin + +var generatorConfigurators = map[builtinhelpers.BuiltinPluginType]func( + kt *KustTarget, + bpt builtinhelpers.BuiltinPluginType, + factory gFactory) (result []resmap.Generator, err error){ + builtinhelpers.SecretGenerator: func(kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f gFactory) ( + result []resmap.Generator, err error) { + var c struct { + types.SecretArgs + } + for _, args := range kt.kustomization.SecretGenerator { + c.SecretArgs = args + c.SecretArgs.Options = types.MergeGlobalOptionsIntoLocal( + c.SecretArgs.Options, kt.kustomization.GeneratorOptions) + p := f() + err := kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + } + return + }, + + builtinhelpers.ConfigMapGenerator: func(kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f gFactory) ( + result []resmap.Generator, err error) { + var c struct { + types.ConfigMapArgs + } + for _, args := range kt.kustomization.ConfigMapGenerator { + c.ConfigMapArgs = args + c.ConfigMapArgs.Options = types.MergeGlobalOptionsIntoLocal( + c.ConfigMapArgs.Options, kt.kustomization.GeneratorOptions) + p := f() + err := kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + } + return + }, + + builtinhelpers.HelmChartInflationGenerator: func( + kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f gFactory) ( + result []resmap.Generator, err error) { + var c struct { + types.HelmGlobals + types.HelmChart + } + var globals types.HelmGlobals + if kt.kustomization.HelmGlobals != nil { + globals = *kt.kustomization.HelmGlobals + } + for _, chart := range kt.kustomization.HelmCharts { + c.HelmGlobals = globals + c.HelmChart = chart + p := f() + if err = kt.configureBuiltinPlugin(p, c, bpt); err != nil { + return nil, err + } + result = append(result, p) + } + return + }, +} + +type tFactory func() resmap.TransformerPlugin + +var transformerConfigurators = map[builtinhelpers.BuiltinPluginType]func( + kt *KustTarget, + bpt builtinhelpers.BuiltinPluginType, + f tFactory, + tc *builtinconfig.TransformerConfig) (result []resmap.Transformer, err error){ + builtinhelpers.NamespaceTransformer: func( + kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, tc *builtinconfig.TransformerConfig) ( + result []resmap.Transformer, err error) { + var c struct { + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty"` + FieldSpecs []types.FieldSpec + } + c.Namespace = kt.kustomization.Namespace + c.FieldSpecs = tc.NameSpace + p := f() + err = kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + return + }, + + builtinhelpers.PatchJson6902Transformer: func( + kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, _ *builtinconfig.TransformerConfig) ( + result []resmap.Transformer, err error) { + var c struct { + Target *types.Selector `json:"target,omitempty" yaml:"target,omitempty"` + Path string `json:"path,omitempty" yaml:"path,omitempty"` + JsonOp string `json:"jsonOp,omitempty" yaml:"jsonOp,omitempty"` + } + for _, args := range kt.kustomization.PatchesJson6902 { + c.Target = args.Target + c.Path = args.Path + c.JsonOp = args.Patch + p := f() + err = kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + } + return + }, + builtinhelpers.PatchStrategicMergeTransformer: func( + kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, _ *builtinconfig.TransformerConfig) ( + result []resmap.Transformer, err error) { + if len(kt.kustomization.PatchesStrategicMerge) == 0 { + return + } + var c struct { + Paths []types.PatchStrategicMerge `json:"paths,omitempty" yaml:"paths,omitempty"` + } + c.Paths = kt.kustomization.PatchesStrategicMerge + p := f() + err = kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + return + }, + builtinhelpers.PatchTransformer: func( + kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, _ *builtinconfig.TransformerConfig) ( + result []resmap.Transformer, err error) { + if len(kt.kustomization.Patches) == 0 { + return + } + var c struct { + Path string `json:"path,omitempty" yaml:"path,omitempty"` + Patch string `json:"patch,omitempty" yaml:"patch,omitempty"` + Target *types.Selector `json:"target,omitempty" yaml:"target,omitempty"` + Options map[string]bool `json:"options,omitempty" yaml:"options,omitempty"` + } + for _, pc := range kt.kustomization.Patches { + c.Target = pc.Target + c.Patch = pc.Patch + c.Path = pc.Path + c.Options = pc.Options + p := f() + err = kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + } + return + }, + builtinhelpers.LabelTransformer: func( + kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, tc *builtinconfig.TransformerConfig) ( + result []resmap.Transformer, err error) { + for _, label := range kt.kustomization.Labels { + var c struct { + Labels map[string]string + FieldSpecs []types.FieldSpec + } + c.Labels = label.Pairs + fss := types.FsSlice(label.FieldSpecs) + // merge the custom fieldSpecs with the default + if label.IncludeSelectors { + fss, err = fss.MergeAll(tc.CommonLabels) + } else { + // only add to metadata by default + fss, err = fss.MergeOne(types.FieldSpec{Path: "metadata/labels", CreateIfNotPresent: true}) + } + if err != nil { + return nil, err + } + c.FieldSpecs = fss + p := f() + err = kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + } + var c struct { + Labels map[string]string + FieldSpecs []types.FieldSpec + } + c.Labels = kt.kustomization.CommonLabels + c.FieldSpecs = tc.CommonLabels + p := f() + err = kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + return + }, + builtinhelpers.AnnotationsTransformer: func( + kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, tc *builtinconfig.TransformerConfig) ( + result []resmap.Transformer, err error) { + var c struct { + Annotations map[string]string + FieldSpecs []types.FieldSpec + } + c.Annotations = kt.kustomization.CommonAnnotations + c.FieldSpecs = tc.CommonAnnotations + p := f() + err = kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + return + }, + builtinhelpers.PrefixSuffixTransformer: func( + kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, tc *builtinconfig.TransformerConfig) ( + result []resmap.Transformer, err error) { + var c struct { + Prefix string + Suffix string + FieldSpecs []types.FieldSpec + } + c.Prefix = kt.kustomization.NamePrefix + c.Suffix = kt.kustomization.NameSuffix + c.FieldSpecs = tc.NamePrefix + p := f() + err = kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + return + }, + builtinhelpers.ImageTagTransformer: func( + kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, tc *builtinconfig.TransformerConfig) ( + result []resmap.Transformer, err error) { + var c struct { + ImageTag types.Image + FieldSpecs []types.FieldSpec + } + for _, args := range kt.kustomization.Images { + c.ImageTag = args + c.FieldSpecs = tc.Images + p := f() + err = kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + } + return + }, + builtinhelpers.ReplicaCountTransformer: func( + kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, tc *builtinconfig.TransformerConfig) ( + result []resmap.Transformer, err error) { + var c struct { + Replica types.Replica + FieldSpecs []types.FieldSpec + } + for _, args := range kt.kustomization.Replicas { + c.Replica = args + c.FieldSpecs = tc.Replicas + p := f() + err = kt.configureBuiltinPlugin(p, c, bpt) + if err != nil { + return nil, err + } + result = append(result, p) + } + return + }, + // No kustomization file keyword for this yet. + builtinhelpers.ValueAddTransformer: func( + kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, tc *builtinconfig.TransformerConfig) ( + result []resmap.Transformer, err error) { + return nil, fmt.Errorf("valueadd keyword not yet defined") + }, +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/target/multitransformer.go b/vendor/sigs.k8s.io/kustomize/api/internal/target/multitransformer.go new file mode 100644 index 0000000000..caf1bd2de4 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/target/multitransformer.go @@ -0,0 +1,36 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package target + +import ( + "sigs.k8s.io/kustomize/api/resmap" +) + +// multiTransformer contains a list of transformers. +type multiTransformer struct { + transformers []resmap.Transformer +} + +var _ resmap.Transformer = &multiTransformer{} + +// newMultiTransformer constructs a multiTransformer. +func newMultiTransformer(t []resmap.Transformer) resmap.Transformer { + r := &multiTransformer{ + transformers: make([]resmap.Transformer, len(t)), + } + copy(r.transformers, t) + return r +} + +// Transform applies the member transformers in order to the resources, +// optionally detecting and erroring on commutation conflict. +func (o *multiTransformer) Transform(m resmap.ResMap) error { + for _, t := range o.transformers { + if err := t.Transform(m); err != nil { + return err + } + m.DropEmpties() + } + return nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/utils/errtimeout.go b/vendor/sigs.k8s.io/kustomize/api/internal/utils/errtimeout.go new file mode 100644 index 0000000000..24b8abe664 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/utils/errtimeout.go @@ -0,0 +1,36 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package utils + +import ( + "fmt" + "time" + + "github.com/pkg/errors" +) + +type errTimeOut struct { + duration time.Duration + cmd string +} + +func NewErrTimeOut(d time.Duration, c string) errTimeOut { + return errTimeOut{duration: d, cmd: c} +} + +func (e errTimeOut) Error() string { + return fmt.Sprintf("hit %s timeout running '%s'", e.duration, e.cmd) +} + +func IsErrTimeout(err error) bool { + if err == nil { + return false + } + _, ok := err.(errTimeOut) + if ok { + return true + } + _, ok = errors.Cause(err).(errTimeOut) + return ok +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/utils/pathsplitter.go b/vendor/sigs.k8s.io/kustomize/api/internal/utils/pathsplitter.go new file mode 100644 index 0000000000..c8d2f3342e --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/utils/pathsplitter.go @@ -0,0 +1,22 @@ +// Copyright 2021 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package utils + +import "strings" + +// PathSplitter splits a slash delimited string, permitting escaped slashes. +func PathSplitter(path string) []string { + ps := strings.Split(path, "/") + var res []string + res = append(res, ps[0]) + for i := 1; i < len(ps); i++ { + last := len(res) - 1 + if strings.HasSuffix(res[last], `\`) { + res[last] = strings.TrimSuffix(res[last], `\`) + "/" + ps[i] + } else { + res = append(res, ps[i]) + } + } + return res +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/utils/timedcall.go b/vendor/sigs.k8s.io/kustomize/api/internal/utils/timedcall.go new file mode 100644 index 0000000000..0afadd0c3f --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/utils/timedcall.go @@ -0,0 +1,23 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package utils + +import ( + "time" +) + +// TimedCall runs fn, failing if it doesn't complete in the given duration. +// The description is used in the timeout error message. +func TimedCall(description string, d time.Duration, fn func() error) error { + done := make(chan error) + timer := time.NewTimer(d) + defer timer.Stop() + go func() { done <- fn() }() + select { + case err := <-done: + return err + case <-timer.C: + return NewErrTimeOut(d, description) + } +} diff --git a/vendor/sigs.k8s.io/kustomize/api/internal/validate/fieldvalidator.go b/vendor/sigs.k8s.io/kustomize/api/internal/validate/fieldvalidator.go new file mode 100644 index 0000000000..5ccfc3ce7b --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/internal/validate/fieldvalidator.go @@ -0,0 +1,68 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package validate + +import ( + "sigs.k8s.io/kustomize/api/ifc" +) + +// FieldValidator implements ifc.Validator to check +// the values of various KRM string fields, +// e.g. labels, annotations, names, namespaces. +// +// TODO: Have this use kyaml/yaml/internal/k8sgen/pkg/labels +// which has label and annotation validation code, but is internal +// so this impl would need to move to kyaml (a fine idea). +type FieldValidator struct { +} + +var _ ifc.Validator = (*FieldValidator)(nil) + +func NewFieldValidator() *FieldValidator { + return &FieldValidator{} +} + +// TODO(#FieldValidator): implement MakeAnnotationValidator +func (f FieldValidator) MakeAnnotationValidator() func(map[string]string) error { + return func(x map[string]string) error { + return nil + } +} + +// TODO(#FieldValidator): implement MakeAnnotationNameValidator +func (f FieldValidator) MakeAnnotationNameValidator() func([]string) error { + return func(x []string) error { + return nil + } +} + +// TODO(#FieldValidator): implement MakeLabelValidator +func (f FieldValidator) MakeLabelValidator() func(map[string]string) error { + return func(x map[string]string) error { + return nil + } +} + +// TODO(#FieldValidator): implement MakeLabelNameValidator +func (f FieldValidator) MakeLabelNameValidator() func([]string) error { + return func(x []string) error { + return nil + } +} + +// TODO(#FieldValidator): implement ValidateNamespace +func (f FieldValidator) ValidateNamespace(s string) []string { + var errs []string + return errs +} + +// TODO(#FieldValidator): implement ErrIfInvalidKey +func (f FieldValidator) ErrIfInvalidKey(s string) error { + return nil +} + +// TODO(#FieldValidator): implement IsEnvVarName +func (f FieldValidator) IsEnvVarName(k string) error { + return nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/commonannotations.go b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/commonannotations.go new file mode 100644 index 0000000000..97c1d6b22d --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/commonannotations.go @@ -0,0 +1,47 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinpluginconsts + +const commonAnnotationFieldSpecs = ` +commonAnnotations: +- path: metadata/annotations + create: true + +- path: spec/template/metadata/annotations + create: true + version: v1 + kind: ReplicationController + +- path: spec/template/metadata/annotations + create: true + kind: Deployment + +- path: spec/template/metadata/annotations + create: true + kind: ReplicaSet + +- path: spec/template/metadata/annotations + create: true + kind: DaemonSet + +- path: spec/template/metadata/annotations + create: true + kind: StatefulSet + +- path: spec/template/metadata/annotations + create: true + group: batch + kind: Job + +- path: spec/jobTemplate/metadata/annotations + create: true + group: batch + kind: CronJob + +- path: spec/jobTemplate/spec/template/metadata/annotations + create: true + group: batch + kind: CronJob + +` diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/commonlabels.go b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/commonlabels.go similarity index 83% rename from vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/commonlabels.go rename to vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/commonlabels.go index 66943c1ed0..7775a544ff 100644 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/commonlabels.go +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/commonlabels.go @@ -1,20 +1,7 @@ -/* -Copyright 2018 The Kubernetes Authors. +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 -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. -*/ - -package defaultconfig +package builtinpluginconsts const commonLabelFieldSpecs = ` commonLabels: @@ -64,6 +51,11 @@ commonLabels: group: apps kind: Deployment +- path: spec/template/spec/topologySpreadConstraints/labelSelector/matchLabels + create: false + group: apps + kind: Deployment + - path: spec/selector/matchLabels create: true kind: ReplicaSet @@ -110,7 +102,12 @@ commonLabels: group: apps kind: StatefulSet -- path: spec/volumeClaimTemplates/metadata/labels +- path: spec/template/spec/topologySpreadConstraints/labelSelector/matchLabels + create: false + group: apps + kind: StatefulSet + +- path: spec/volumeClaimTemplates[]/metadata/labels create: true group: apps kind: StatefulSet diff --git a/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/defaultconfig.go b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/defaultconfig.go new file mode 100644 index 0000000000..435491ccdd --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/defaultconfig.go @@ -0,0 +1,38 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinpluginconsts + +import ( + "bytes" +) + +// GetDefaultFieldSpecs returns default fieldSpecs. +func GetDefaultFieldSpecs() []byte { + configData := [][]byte{ + []byte(namePrefixFieldSpecs), + []byte(commonLabelFieldSpecs), + []byte(commonAnnotationFieldSpecs), + []byte(namespaceFieldSpecs), + []byte(varReferenceFieldSpecs), + []byte(nameReferenceFieldSpecs), + []byte(imagesFieldSpecs), + []byte(replicasFieldSpecs), + } + return bytes.Join(configData, []byte("\n")) +} + +// GetDefaultFieldSpecsAsMap returns default fieldSpecs +// as a string->string map. +func GetDefaultFieldSpecsAsMap() map[string]string { + result := make(map[string]string) + result["nameprefix"] = namePrefixFieldSpecs + result["commonlabels"] = commonLabelFieldSpecs + result["commonannotations"] = commonAnnotationFieldSpecs + result["namespace"] = namespaceFieldSpecs + result["varreference"] = varReferenceFieldSpecs + result["namereference"] = nameReferenceFieldSpecs + result["images"] = imagesFieldSpecs + result["replicas"] = replicasFieldSpecs + return result +} diff --git a/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/doc.go b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/doc.go new file mode 100644 index 0000000000..4b7b5faac5 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/doc.go @@ -0,0 +1,8 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package builtinpluginconsts provides builtin plugin +// configuration data. Builtin plugins can also be +// configured individually with plugin config files, +// in which case the constants in this package are ignored. +package builtinpluginconsts diff --git a/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/images.go b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/images.go new file mode 100644 index 0000000000..b8d8bf1e38 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/images.go @@ -0,0 +1,18 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinpluginconsts + +const ( + imagesFieldSpecs = ` +images: +- path: spec/containers[]/image + create: true +- path: spec/initContainers[]/image + create: true +- path: spec/template/spec/containers[]/image + create: true +- path: spec/template/spec/initContainers[]/image + create: true +` +) diff --git a/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/nameprefix.go b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/nameprefix.go new file mode 100644 index 0000000000..59a25a61fa --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/nameprefix.go @@ -0,0 +1,11 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinpluginconsts + +const ( + namePrefixFieldSpecs = ` +namePrefix: +- path: metadata/name +` +) diff --git a/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/namereference.go b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/namereference.go new file mode 100644 index 0000000000..a9af15706e --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/namereference.go @@ -0,0 +1,403 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinpluginconsts + +// TODO: rename 'fieldSpecs' to 'referrers' for clarity. +// This will, however, break anyone using a custom config. + +const ( + nameReferenceFieldSpecs = ` +nameReference: +- kind: Deployment + fieldSpecs: + - path: spec/scaleTargetRef/name + kind: HorizontalPodAutoscaler + +- kind: ReplicationController + fieldSpecs: + - path: spec/scaleTargetRef/name + kind: HorizontalPodAutoscaler + +- kind: ReplicaSet + fieldSpecs: + - path: spec/scaleTargetRef/name + kind: HorizontalPodAutoscaler + +- kind: StatefulSet + fieldSpecs: + - path: spec/scaleTargetRef/name + kind: HorizontalPodAutoscaler + +- kind: ConfigMap + version: v1 + fieldSpecs: + - path: spec/volumes/configMap/name + version: v1 + kind: Pod + - path: spec/containers/env/valueFrom/configMapKeyRef/name + version: v1 + kind: Pod + - path: spec/initContainers/env/valueFrom/configMapKeyRef/name + version: v1 + kind: Pod + - path: spec/containers/envFrom/configMapRef/name + version: v1 + kind: Pod + - path: spec/initContainers/envFrom/configMapRef/name + version: v1 + kind: Pod + - path: spec/volumes/projected/sources/configMap/name + version: v1 + kind: Pod + - path: template/spec/volumes/configMap/name + kind: PodTemplate + - path: spec/template/spec/volumes/configMap/name + kind: Deployment + - path: spec/template/spec/containers/env/valueFrom/configMapKeyRef/name + kind: Deployment + - path: spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name + kind: Deployment + - path: spec/template/spec/containers/envFrom/configMapRef/name + kind: Deployment + - path: spec/template/spec/initContainers/envFrom/configMapRef/name + kind: Deployment + - path: spec/template/spec/volumes/projected/sources/configMap/name + kind: Deployment + - path: spec/template/spec/volumes/configMap/name + kind: ReplicaSet + - path: spec/template/spec/containers/env/valueFrom/configMapKeyRef/name + kind: ReplicaSet + - path: spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name + kind: ReplicaSet + - path: spec/template/spec/containers/envFrom/configMapRef/name + kind: ReplicaSet + - path: spec/template/spec/initContainers/envFrom/configMapRef/name + kind: ReplicaSet + - path: spec/template/spec/volumes/projected/sources/configMap/name + kind: ReplicaSet + - path: spec/template/spec/volumes/configMap/name + kind: DaemonSet + - path: spec/template/spec/containers/env/valueFrom/configMapKeyRef/name + kind: DaemonSet + - path: spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name + kind: DaemonSet + - path: spec/template/spec/containers/envFrom/configMapRef/name + kind: DaemonSet + - path: spec/template/spec/initContainers/envFrom/configMapRef/name + kind: DaemonSet + - path: spec/template/spec/volumes/projected/sources/configMap/name + kind: DaemonSet + - path: spec/template/spec/volumes/configMap/name + kind: StatefulSet + - path: spec/template/spec/containers/env/valueFrom/configMapKeyRef/name + kind: StatefulSet + - path: spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name + kind: StatefulSet + - path: spec/template/spec/containers/envFrom/configMapRef/name + kind: StatefulSet + - path: spec/template/spec/initContainers/envFrom/configMapRef/name + kind: StatefulSet + - path: spec/template/spec/volumes/projected/sources/configMap/name + kind: StatefulSet + - path: spec/template/spec/volumes/configMap/name + kind: Job + - path: spec/template/spec/containers/env/valueFrom/configMapKeyRef/name + kind: Job + - path: spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name + kind: Job + - path: spec/template/spec/containers/envFrom/configMapRef/name + kind: Job + - path: spec/template/spec/initContainers/envFrom/configMapRef/name + kind: Job + - path: spec/template/spec/volumes/projected/sources/configMap/name + kind: Job + - path: spec/jobTemplate/spec/template/spec/volumes/configMap/name + kind: CronJob + - path: spec/jobTemplate/spec/template/spec/volumes/projected/sources/configMap/name + kind: CronJob + - path: spec/jobTemplate/spec/template/spec/containers/env/valueFrom/configMapKeyRef/name + kind: CronJob + - path: spec/jobTemplate/spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name + kind: CronJob + - path: spec/jobTemplate/spec/template/spec/containers/envFrom/configMapRef/name + kind: CronJob + - path: spec/jobTemplate/spec/template/spec/initContainers/envFrom/configMapRef/name + kind: CronJob + - path: spec/configSource/configMap + kind: Node + - path: rules/resourceNames + kind: Role + - path: rules/resourceNames + kind: ClusterRole + - path: metadata/annotations/nginx.ingress.kubernetes.io\/fastcgi-params-configmap + kind: Ingress + +- kind: Secret + version: v1 + fieldSpecs: + - path: spec/volumes/secret/secretName + version: v1 + kind: Pod + - path: spec/containers/env/valueFrom/secretKeyRef/name + version: v1 + kind: Pod + - path: spec/initContainers/env/valueFrom/secretKeyRef/name + version: v1 + kind: Pod + - path: spec/containers/envFrom/secretRef/name + version: v1 + kind: Pod + - path: spec/initContainers/envFrom/secretRef/name + version: v1 + kind: Pod + - path: spec/imagePullSecrets/name + version: v1 + kind: Pod + - path: spec/volumes/projected/sources/secret/name + version: v1 + kind: Pod + - path: spec/template/spec/volumes/secret/secretName + kind: Deployment + - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name + kind: Deployment + - path: spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name + kind: Deployment + - path: spec/template/spec/containers/envFrom/secretRef/name + kind: Deployment + - path: spec/template/spec/initContainers/envFrom/secretRef/name + kind: Deployment + - path: spec/template/spec/imagePullSecrets/name + kind: Deployment + - path: spec/template/spec/volumes/projected/sources/secret/name + kind: Deployment + - path: spec/template/spec/volumes/secret/secretName + kind: ReplicaSet + - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name + kind: ReplicaSet + - path: spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name + kind: ReplicaSet + - path: spec/template/spec/containers/envFrom/secretRef/name + kind: ReplicaSet + - path: spec/template/spec/initContainers/envFrom/secretRef/name + kind: ReplicaSet + - path: spec/template/spec/imagePullSecrets/name + kind: ReplicaSet + - path: spec/template/spec/volumes/projected/sources/secret/name + kind: ReplicaSet + - path: spec/template/spec/volumes/secret/secretName + kind: DaemonSet + - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name + kind: DaemonSet + - path: spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name + kind: DaemonSet + - path: spec/template/spec/containers/envFrom/secretRef/name + kind: DaemonSet + - path: spec/template/spec/initContainers/envFrom/secretRef/name + kind: DaemonSet + - path: spec/template/spec/imagePullSecrets/name + kind: DaemonSet + - path: spec/template/spec/volumes/projected/sources/secret/name + kind: DaemonSet + - path: spec/template/spec/volumes/secret/secretName + kind: StatefulSet + - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name + kind: StatefulSet + - path: spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name + kind: StatefulSet + - path: spec/template/spec/containers/envFrom/secretRef/name + kind: StatefulSet + - path: spec/template/spec/initContainers/envFrom/secretRef/name + kind: StatefulSet + - path: spec/template/spec/imagePullSecrets/name + kind: StatefulSet + - path: spec/template/spec/volumes/projected/sources/secret/name + kind: StatefulSet + - path: spec/template/spec/volumes/secret/secretName + kind: Job + - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name + kind: Job + - path: spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name + kind: Job + - path: spec/template/spec/containers/envFrom/secretRef/name + kind: Job + - path: spec/template/spec/initContainers/envFrom/secretRef/name + kind: Job + - path: spec/template/spec/imagePullSecrets/name + kind: Job + - path: spec/template/spec/volumes/projected/sources/secret/name + kind: Job + - path: spec/jobTemplate/spec/template/spec/volumes/secret/secretName + kind: CronJob + - path: spec/jobTemplate/spec/template/spec/volumes/projected/sources/secret/name + kind: CronJob + - path: spec/jobTemplate/spec/template/spec/containers/env/valueFrom/secretKeyRef/name + kind: CronJob + - path: spec/jobTemplate/spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name + kind: CronJob + - path: spec/jobTemplate/spec/template/spec/containers/envFrom/secretRef/name + kind: CronJob + - path: spec/jobTemplate/spec/template/spec/initContainers/envFrom/secretRef/name + kind: CronJob + - path: spec/jobTemplate/spec/template/spec/imagePullSecrets/name + kind: CronJob + - path: spec/tls/secretName + kind: Ingress + - path: metadata/annotations/ingress.kubernetes.io\/auth-secret + kind: Ingress + - path: metadata/annotations/nginx.ingress.kubernetes.io\/auth-secret + kind: Ingress + - path: metadata/annotations/nginx.ingress.kubernetes.io\/auth-tls-secret + kind: Ingress + - path: spec/tls/secretName + kind: Ingress + - path: imagePullSecrets/name + kind: ServiceAccount + - path: parameters/secretName + kind: StorageClass + - path: parameters/adminSecretName + kind: StorageClass + - path: parameters/userSecretName + kind: StorageClass + - path: parameters/secretRef + kind: StorageClass + - path: rules/resourceNames + kind: Role + - path: rules/resourceNames + kind: ClusterRole + - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name + kind: Service + group: serving.knative.dev + version: v1 + - path: spec/azureFile/secretName + kind: PersistentVolume + +- kind: Service + version: v1 + fieldSpecs: + - path: spec/serviceName + kind: StatefulSet + group: apps + - path: spec/rules/http/paths/backend/serviceName + kind: Ingress + - path: spec/backend/serviceName + kind: Ingress + - path: spec/rules/http/paths/backend/service/name + kind: Ingress + - path: spec/defaultBackend/service/name + kind: Ingress + - path: spec/service/name + kind: APIService + group: apiregistration.k8s.io + - path: webhooks/clientConfig/service + kind: ValidatingWebhookConfiguration + group: admissionregistration.k8s.io + - path: webhooks/clientConfig/service + kind: MutatingWebhookConfiguration + group: admissionregistration.k8s.io + +- kind: Role + group: rbac.authorization.k8s.io + fieldSpecs: + - path: roleRef/name + kind: RoleBinding + group: rbac.authorization.k8s.io + +- kind: ClusterRole + group: rbac.authorization.k8s.io + fieldSpecs: + - path: roleRef/name + kind: RoleBinding + group: rbac.authorization.k8s.io + - path: roleRef/name + kind: ClusterRoleBinding + group: rbac.authorization.k8s.io + +- kind: ServiceAccount + version: v1 + fieldSpecs: + - path: subjects + kind: RoleBinding + group: rbac.authorization.k8s.io + - path: subjects + kind: ClusterRoleBinding + group: rbac.authorization.k8s.io + - path: spec/serviceAccountName + kind: Pod + - path: spec/template/spec/serviceAccountName + kind: StatefulSet + - path: spec/template/spec/serviceAccountName + kind: Deployment + - path: spec/template/spec/serviceAccountName + kind: ReplicationController + - path: spec/jobTemplate/spec/template/spec/serviceAccountName + kind: CronJob + - path: spec/template/spec/serviceAccountName + kind: Job + - path: spec/template/spec/serviceAccountName + kind: DaemonSet + +- kind: PersistentVolumeClaim + version: v1 + fieldSpecs: + - path: spec/volumes/persistentVolumeClaim/claimName + kind: Pod + - path: spec/template/spec/volumes/persistentVolumeClaim/claimName + kind: StatefulSet + - path: spec/template/spec/volumes/persistentVolumeClaim/claimName + kind: Deployment + - path: spec/template/spec/volumes/persistentVolumeClaim/claimName + kind: ReplicationController + - path: spec/jobTemplate/spec/template/spec/volumes/persistentVolumeClaim/claimName + kind: CronJob + - path: spec/template/spec/volumes/persistentVolumeClaim/claimName + kind: Job + - path: spec/template/spec/volumes/persistentVolumeClaim/claimName + kind: DaemonSet + +- kind: PersistentVolume + version: v1 + fieldSpecs: + - path: spec/volumeName + kind: PersistentVolumeClaim + - path: rules/resourceNames + kind: ClusterRole + +- kind: StorageClass + version: v1 + group: storage.k8s.io + fieldSpecs: + - path: spec/storageClassName + kind: PersistentVolume + - path: spec/storageClassName + kind: PersistentVolumeClaim + - path: spec/volumeClaimTemplates/spec/storageClassName + kind: StatefulSet + +- kind: PriorityClass + version: v1 + group: scheduling.k8s.io + fieldSpecs: + - path: spec/priorityClassName + kind: Pod + - path: spec/template/spec/priorityClassName + kind: StatefulSet + - path: spec/template/spec/priorityClassName + kind: Deployment + - path: spec/template/spec/priorityClassName + kind: ReplicationController + - path: spec/jobTemplate/spec/template/spec/priorityClassName + kind: CronJob + - path: spec/template/spec/priorityClassName + kind: Job + - path: spec/template/spec/priorityClassName + kind: DaemonSet + +- kind: IngressClass + version: v1 + group: networking.k8s.io/v1 + fieldSpecs: + - path: spec/ingressClassName + kind: Ingress +` +) diff --git a/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/namespace.go b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/namespace.go new file mode 100644 index 0000000000..a35ef9c6f7 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/namespace.go @@ -0,0 +1,26 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinpluginconsts + +const ( + namespaceFieldSpecs = ` +namespace: +- path: metadata/namespace + create: true +- path: metadata/name + kind: Namespace + create: true +- path: subjects + kind: RoleBinding +- path: subjects + kind: ClusterRoleBinding +- path: spec/service/namespace + group: apiregistration.k8s.io + kind: APIService + create: true +- path: spec/conversion/webhook/clientConfig/service/namespace + group: apiextensions.k8s.io + kind: CustomResourceDefinition +` +) diff --git a/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/replicas.go b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/replicas.go new file mode 100644 index 0000000000..76549c21fa --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/replicas.go @@ -0,0 +1,23 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinpluginconsts + +const replicasFieldSpecs = ` +replicas: +- path: spec/replicas + create: true + kind: Deployment + +- path: spec/replicas + create: true + kind: ReplicationController + +- path: spec/replicas + create: true + kind: ReplicaSet + +- path: spec/replicas + create: true + kind: StatefulSet +` diff --git a/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/varreference.go b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/varreference.go new file mode 100644 index 0000000000..f4011d825d --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/varreference.go @@ -0,0 +1,223 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package builtinpluginconsts + +const ( + varReferenceFieldSpecs = ` +varReference: +- path: spec/jobTemplate/spec/template/spec/containers/args + kind: CronJob + +- path: spec/jobTemplate/spec/template/spec/containers/command + kind: CronJob + +- path: spec/jobTemplate/spec/template/spec/containers/env/value + kind: CronJob + +- path: spec/jobTemplate/spec/template/spec/containers/volumeMounts/mountPath + kind: CronJob + +- path: spec/jobTemplate/spec/template/spec/initContainers/args + kind: CronJob + +- path: spec/jobTemplate/spec/template/spec/initContainers/command + kind: CronJob + +- path: spec/jobTemplate/spec/template/spec/initContainers/env/value + kind: CronJob + +- path: spec/jobTemplate/spec/template/spec/initContainers/volumeMounts/mountPath + kind: CronJob + +- path: spec/jobTemplate/spec/template/volumes/nfs/server + kind: CronJob + +- path: spec/template/spec/containers/args + kind: DaemonSet + +- path: spec/template/spec/containers/command + kind: DaemonSet + +- path: spec/template/spec/containers/env/value + kind: DaemonSet + +- path: spec/template/spec/containers/volumeMounts/mountPath + kind: DaemonSet + +- path: spec/template/spec/initContainers/args + kind: DaemonSet + +- path: spec/template/spec/initContainers/command + kind: DaemonSet + +- path: spec/template/spec/initContainers/env/value + kind: DaemonSet + +- path: spec/template/spec/initContainers/volumeMounts/mountPath + kind: DaemonSet + +- path: spec/template/spec/volumes/nfs/server + kind: DaemonSet + +- path: spec/template/spec/containers/args + kind: Deployment + +- path: spec/template/spec/containers/command + kind: Deployment + +- path: spec/template/spec/containers/env/value + kind: Deployment + +- path: spec/template/spec/containers/volumeMounts/mountPath + kind: Deployment + +- path: spec/template/spec/initContainers/args + kind: Deployment + +- path: spec/template/spec/initContainers/command + kind: Deployment + +- path: spec/template/spec/initContainers/env/value + kind: Deployment + +- path: spec/template/spec/initContainers/volumeMounts/mountPath + kind: Deployment + +- path: spec/template/spec/volumes/nfs/server + kind: Deployment + +- path: spec/template/metadata/annotations + kind: Deployment + +- path: spec/rules/host + kind: Ingress + +- path: spec/tls/hosts + kind: Ingress + +- path: spec/tls/secretName + kind: Ingress + +- path: spec/template/spec/containers/args + kind: Job + +- path: spec/template/spec/containers/command + kind: Job + +- path: spec/template/spec/containers/env/value + kind: Job + +- path: spec/template/spec/containers/volumeMounts/mountPath + kind: Job + +- path: spec/template/spec/initContainers/args + kind: Job + +- path: spec/template/spec/initContainers/command + kind: Job + +- path: spec/template/spec/initContainers/env/value + kind: Job + +- path: spec/template/spec/initContainers/volumeMounts/mountPath + kind: Job + +- path: spec/template/spec/volumes/nfs/server + kind: Job + +- path: spec/containers/args + kind: Pod + +- path: spec/containers/command + kind: Pod + +- path: spec/containers/env/value + kind: Pod + +- path: spec/containers/volumeMounts/mountPath + kind: Pod + +- path: spec/initContainers/args + kind: Pod + +- path: spec/initContainers/command + kind: Pod + +- path: spec/initContainers/env/value + kind: Pod + +- path: spec/initContainers/volumeMounts/mountPath + kind: Pod + +- path: spec/volumes/nfs/server + kind: Pod + +- path: spec/template/spec/containers/args + kind: ReplicaSet + +- path: spec/template/spec/containers/command + kind: ReplicaSet + +- path: spec/template/spec/containers/env/value + kind: ReplicaSet + +- path: spec/template/spec/containers/volumeMounts/mountPath + kind: ReplicaSet + +- path: spec/template/spec/initContainers/args + kind: ReplicaSet + +- path: spec/template/spec/initContainers/command + kind: ReplicaSet + +- path: spec/template/spec/initContainers/env/value + kind: ReplicaSet + +- path: spec/template/spec/initContainers/volumeMounts/mountPath + kind: ReplicaSet + +- path: spec/template/spec/volumes/nfs/server + kind: ReplicaSet + +- path: spec/ports/port + kind: Service + +- path: spec/ports/targetPort + kind: Service + +- path: spec/template/spec/containers/args + kind: StatefulSet + +- path: spec/template/spec/containers/command + kind: StatefulSet + +- path: spec/template/spec/containers/env/value + kind: StatefulSet + +- path: spec/template/spec/containers/volumeMounts/mountPath + kind: StatefulSet + +- path: spec/template/spec/initContainers/args + kind: StatefulSet + +- path: spec/template/spec/initContainers/command + kind: StatefulSet + +- path: spec/template/spec/initContainers/env/value + kind: StatefulSet + +- path: spec/template/spec/initContainers/volumeMounts/mountPath + kind: StatefulSet + +- path: spec/volumeClaimTemplates/spec/nfs/server + kind: StatefulSet + +- path: spec/nfs/server + kind: PersistentVolume + +- path: metadata/labels + +- path: metadata/annotations +` +) diff --git a/vendor/sigs.k8s.io/kustomize/api/konfig/general.go b/vendor/sigs.k8s.io/kustomize/api/konfig/general.go index 7c095cd35f..6c86391df9 100644 --- a/vendor/sigs.k8s.io/kustomize/api/konfig/general.go +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/general.go @@ -19,32 +19,7 @@ func DefaultKustomizationFileName() string { return RecognizedKustomizationFileNames()[0] } -// IfApiMachineryElseKyaml returns true if executing the apimachinery code -// path, else we're executing the kyaml code paths. -func IfApiMachineryElseKyaml(s1, s2 string) string { - if !FlagEnableKyamlDefaultValue { - return s1 - } - return s2 -} - const ( - // FlagEnableKyamlDefaultValue is the default value for the --enable_kyaml - // flag. This value is also used in unit tests. See provider.DepProvider. - // - // TODO(#3304): eliminate branching on this constant. - // Details: https://github.com/kubernetes-sigs/kustomize/issues/3304 - // - // All tests should pass for either true or false values - // of this constant, without having to check its value. - // In the cases where there's a different outcome, either decide - // that the difference is acceptable, or make the difference go away. - // - // Historically, tests passed for enable_kyaml == false, i.e. using - // apimachinery libs. This doesn't mean the code was better, it just - // means regression tests preserved those outcomes. - FlagEnableKyamlDefaultValue = true - // An environment variable to consult for kustomization // configuration data. See: // https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html diff --git a/vendor/sigs.k8s.io/kustomize/api/konfig/plugins.go b/vendor/sigs.k8s.io/kustomize/api/konfig/plugins.go index a42e5e296a..0615f1768f 100644 --- a/vendor/sigs.k8s.io/kustomize/api/konfig/plugins.go +++ b/vendor/sigs.k8s.io/kustomize/api/konfig/plugins.go @@ -41,32 +41,6 @@ const ( NoPluginHomeSentinal = "/No/non-builtin/plugins!" ) -func EnabledPluginConfig(b types.BuiltinPluginLoadingOptions) (*types.PluginConfig, error) { - dir, err := DefaultAbsPluginHome(filesys.MakeFsOnDisk()) - if err != nil { - return nil, err - } - return MakePluginConfig(types.PluginRestrictionsNone, b, dir), nil -} - -func DisabledPluginConfig() *types.PluginConfig { - return MakePluginConfig( - types.PluginRestrictionsBuiltinsOnly, - types.BploUseStaticallyLinked, - NoPluginHomeSentinal) -} - -func MakePluginConfig( - pr types.PluginRestrictions, - b types.BuiltinPluginLoadingOptions, - home string) *types.PluginConfig { - return &types.PluginConfig{ - PluginRestrictions: pr, - AbsPluginHome: home, - BpLoadingOptions: b, - } -} - type NotedFunc struct { Note string F func() string @@ -77,7 +51,7 @@ type NotedFunc struct { // the home of kustomize plugins. func DefaultAbsPluginHome(fSys filesys.FileSystem) (string, error) { return FirstDirThatExistsElseError( - "plugin home directory", fSys, []NotedFunc{ + "plugin root", fSys, []NotedFunc{ { Note: "homed in $" + KustomizePluginHomeEnv, F: func() string { @@ -87,9 +61,11 @@ func DefaultAbsPluginHome(fSys filesys.FileSystem) (string, error) { { Note: "homed in $" + XdgConfigHomeEnv, F: func() string { - return filepath.Join( - os.Getenv(XdgConfigHomeEnv), - ProgramName, RelPluginHome) + if root := os.Getenv(XdgConfigHomeEnv); root != "" { + return filepath.Join(root, ProgramName, RelPluginHome) + } + // do not look in "kustomize/plugin" if XdgConfigHomeEnv is unset + return "" }, }, { @@ -118,11 +94,14 @@ func FirstDirThatExistsElseError( pathFuncs []NotedFunc) (string, error) { var nope []types.Pair for _, dt := range pathFuncs { - dir := dt.F() - if fSys.Exists(dir) { - return dir, nil + if dir := dt.F(); dir != "" { + if fSys.Exists(dir) { + return dir, nil + } + nope = append(nope, types.Pair{Key: dt.Note, Value: dir}) + } else { + nope = append(nope, types.Pair{Key: dt.Note, Value: ""}) } - nope = append(nope, types.Pair{Key: dt.Note, Value: dir}) } return "", types.NewErrUnableToFind(what, nope) } diff --git a/vendor/sigs.k8s.io/kustomize/api/krusty/doc.go b/vendor/sigs.k8s.io/kustomize/api/krusty/doc.go new file mode 100644 index 0000000000..bf516ca94b --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/krusty/doc.go @@ -0,0 +1,11 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package krusty is intended as the entry point package +// for those seeking to add kustomize ability to other +// programs. +// +// To use, follow the example of the kustomize CLI's 'build' +// command. Also, see the high level tests in this package, +// which serve a dual purpose as examples. +package krusty diff --git a/vendor/sigs.k8s.io/kustomize/api/krusty/kustomizer.go b/vendor/sigs.k8s.io/kustomize/api/krusty/kustomizer.go new file mode 100644 index 0000000000..08af7ee753 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/krusty/kustomizer.go @@ -0,0 +1,109 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package krusty + +import ( + "fmt" + "path/filepath" + + "sigs.k8s.io/kustomize/api/builtins" + "sigs.k8s.io/kustomize/api/filesys" + pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader" + "sigs.k8s.io/kustomize/api/internal/target" + "sigs.k8s.io/kustomize/api/konfig" + fLdr "sigs.k8s.io/kustomize/api/loader" + "sigs.k8s.io/kustomize/api/provenance" + "sigs.k8s.io/kustomize/api/provider" + "sigs.k8s.io/kustomize/api/resmap" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/openapi" +) + +// Kustomizer performs kustomizations. +// +// It's meant to behave similarly to the kustomize CLI, and can be +// used instead of performing an exec to a kustomize CLI subprocess. +// To use, load a filesystem with kustomization files (any +// number of overlays and bases), then make a Kustomizer +// injected with the given fileystem, then call Run. +type Kustomizer struct { + options *Options + depProvider *provider.DepProvider +} + +// MakeKustomizer returns an instance of Kustomizer. +func MakeKustomizer(o *Options) *Kustomizer { + return &Kustomizer{ + options: o, + depProvider: provider.NewDepProvider(), + } +} + +// Run performs a kustomization. +// +// It reads given path from the given file system, interprets it as +// a kustomization.yaml file, perform the kustomization it represents, +// and return the resulting resources. +// +// Any files referenced by the kustomization must be present on the +// filesystem. One may call Run any number of times, on any number +// of internal paths (e.g. the filesystem may contain multiple overlays, +// and Run can be called on each of them). +func (b *Kustomizer) Run( + fSys filesys.FileSystem, path string) (resmap.ResMap, error) { + resmapFactory := resmap.NewFactory(b.depProvider.GetResourceFactory()) + lr := fLdr.RestrictionNone + if b.options.LoadRestrictions == types.LoadRestrictionsRootOnly { + lr = fLdr.RestrictionRootOnly + } + ldr, err := fLdr.NewLoader(lr, path, fSys) + if err != nil { + return nil, err + } + defer ldr.Cleanup() + kt := target.NewKustTarget( + ldr, + b.depProvider.GetFieldValidator(), + resmapFactory, + // The plugin configs are always located on disk, regardless of the fSys passed in + pLdr.NewLoader(b.options.PluginConfig, resmapFactory, filesys.MakeFsOnDisk()), + ) + err = kt.Load() + if err != nil { + return nil, err + } + var bytes []byte + if openApiPath, exists := kt.Kustomization().OpenAPI["path"]; exists { + bytes, err = ldr.Load(filepath.Join(ldr.Root(), openApiPath)) + if err != nil { + return nil, err + } + } + err = openapi.SetSchema(kt.Kustomization().OpenAPI, bytes, true) + if err != nil { + return nil, err + } + var m resmap.ResMap + m, err = kt.MakeCustomizedResMap() + if err != nil { + return nil, err + } + if b.options.DoLegacyResourceSort { + builtins.NewLegacyOrderTransformerPlugin().Transform(m) + } + if b.options.AddManagedbyLabel { + t := builtins.LabelTransformerPlugin{ + Labels: map[string]string{ + konfig.ManagedbyLabelKey: fmt.Sprintf( + "kustomize-%s", provenance.GetProvenance().Semver())}, + FieldSpecs: []types.FieldSpec{{ + Path: "metadata/labels", + CreateIfNotPresent: true, + }}, + } + t.Transform(m) + } + m.RemoveBuildAnnotations() + return m, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/krusty/options.go b/vendor/sigs.k8s.io/kustomize/api/krusty/options.go new file mode 100644 index 0000000000..438f6c1029 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/krusty/options.go @@ -0,0 +1,58 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package krusty + +import ( + "sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers" + "sigs.k8s.io/kustomize/api/types" +) + +// Options holds high-level kustomize configuration options, +// e.g. are plugins enabled, should the loader be restricted +// to the kustomization root, etc. +type Options struct { + // When true, sort the resources before emitting them, + // per a particular sort order. When false, don't do the + // sort, and instead respect the depth-first resource input + // order as specified by the kustomization file(s). + DoLegacyResourceSort bool + + // When true, a label + // app.kubernetes.io/managed-by: kustomize- + // is added to all the resources in the build out. + AddManagedbyLabel bool + + // Restrictions on what can be loaded from the file system. + // See type definition. + LoadRestrictions types.LoadRestrictions + + // Create an inventory object for pruning. + DoPrune bool + + // Options related to kustomize plugins. + PluginConfig *types.PluginConfig +} + +// MakeDefaultOptions returns a default instance of Options. +func MakeDefaultOptions() *Options { + return &Options{ + DoLegacyResourceSort: false, + AddManagedbyLabel: false, + LoadRestrictions: types.LoadRestrictionsRootOnly, + DoPrune: false, + PluginConfig: types.DisabledPluginConfig(), + } +} + +// GetBuiltinPluginNames returns a list of builtin plugin names +func GetBuiltinPluginNames() []string { + var ret []string + for k := range builtinhelpers.GeneratorFactories { + ret = append(ret, k.String()) + } + for k := range builtinhelpers.TransformerFactories { + ret = append(ret, k.String()) + } + return ret +} diff --git a/vendor/sigs.k8s.io/kustomize/api/kv/kv.go b/vendor/sigs.k8s.io/kustomize/api/kv/kv.go new file mode 100644 index 0000000000..b887e583c8 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/kv/kv.go @@ -0,0 +1,213 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package kv + +import ( + "bufio" + "bytes" + "fmt" + "os" + "path" + "strings" + "unicode" + "unicode/utf8" + + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/types" +) + +var utf8bom = []byte{0xEF, 0xBB, 0xBF} + +// loader reads and validates KV pairs. +type loader struct { + // Used to read the filesystem. + ldr ifc.Loader + + // Used to validate various k8s data fields. + validator ifc.Validator +} + +func NewLoader(ldr ifc.Loader, v ifc.Validator) ifc.KvLoader { + return &loader{ldr: ldr, validator: v} +} + +func (kvl *loader) Validator() ifc.Validator { + return kvl.validator +} + +func (kvl *loader) Load( + args types.KvPairSources) (all []types.Pair, err error) { + pairs, err := kvl.keyValuesFromEnvFiles(args.EnvSources) + if err != nil { + return nil, errors.Wrap(err, fmt.Sprintf( + "env source files: %v", + args.EnvSources)) + } + all = append(all, pairs...) + + pairs, err = keyValuesFromLiteralSources(args.LiteralSources) + if err != nil { + return nil, errors.Wrap(err, fmt.Sprintf( + "literal sources %v", args.LiteralSources)) + } + all = append(all, pairs...) + + pairs, err = kvl.keyValuesFromFileSources(args.FileSources) + if err != nil { + return nil, errors.Wrap(err, fmt.Sprintf( + "file sources: %v", args.FileSources)) + } + return append(all, pairs...), nil +} + +func keyValuesFromLiteralSources(sources []string) ([]types.Pair, error) { + var kvs []types.Pair + for _, s := range sources { + k, v, err := parseLiteralSource(s) + if err != nil { + return nil, err + } + kvs = append(kvs, types.Pair{Key: k, Value: v}) + } + return kvs, nil +} + +func (kvl *loader) keyValuesFromFileSources(sources []string) ([]types.Pair, error) { + var kvs []types.Pair + for _, s := range sources { + k, fPath, err := parseFileSource(s) + if err != nil { + return nil, err + } + content, err := kvl.ldr.Load(fPath) + if err != nil { + return nil, err + } + kvs = append(kvs, types.Pair{Key: k, Value: string(content)}) + } + return kvs, nil +} + +func (kvl *loader) keyValuesFromEnvFiles(paths []string) ([]types.Pair, error) { + var kvs []types.Pair + for _, p := range paths { + content, err := kvl.ldr.Load(p) + if err != nil { + return nil, err + } + more, err := kvl.keyValuesFromLines(content) + if err != nil { + return nil, err + } + kvs = append(kvs, more...) + } + return kvs, nil +} + +// keyValuesFromLines parses given content in to a list of key-value pairs. +func (kvl *loader) keyValuesFromLines(content []byte) ([]types.Pair, error) { + var kvs []types.Pair + + scanner := bufio.NewScanner(bytes.NewReader(content)) + currentLine := 0 + for scanner.Scan() { + // Process the current line, retrieving a key/value pair if + // possible. + scannedBytes := scanner.Bytes() + kv, err := kvl.keyValuesFromLine(scannedBytes, currentLine) + if err != nil { + return nil, err + } + currentLine++ + + if len(kv.Key) == 0 { + // no key means line was empty or a comment + continue + } + + kvs = append(kvs, kv) + } + return kvs, nil +} + +// KeyValuesFromLine returns a kv with blank key if the line is empty or a comment. +// The value will be retrieved from the environment if necessary. +func (kvl *loader) keyValuesFromLine(line []byte, currentLine int) (types.Pair, error) { + kv := types.Pair{} + + if !utf8.Valid(line) { + return kv, fmt.Errorf("line %d has invalid utf8 bytes : %v", line, string(line)) + } + + // We trim UTF8 BOM from the first line of the file but no others + if currentLine == 0 { + line = bytes.TrimPrefix(line, utf8bom) + } + + // trim the line from all leading whitespace first + line = bytes.TrimLeftFunc(line, unicode.IsSpace) + + // If the line is empty or a comment, we return a blank key/value pair. + if len(line) == 0 || line[0] == '#' { + return kv, nil + } + + data := strings.SplitN(string(line), "=", 2) + key := data[0] + if err := kvl.validator.IsEnvVarName(key); err != nil { + return kv, err + } + + if len(data) == 2 { + kv.Value = data[1] + } else { + // No value (no `=` in the line) is a signal to obtain the value + // from the environment. + kv.Value = os.Getenv(key) + } + kv.Key = key + return kv, nil +} + +// ParseFileSource parses the source given. +// +// Acceptable formats include: +// 1. source-path: the basename will become the key name +// 2. source-name=source-path: the source-name will become the key name and +// source-path is the path to the key file. +// +// Key names cannot include '='. +func parseFileSource(source string) (keyName, filePath string, err error) { + numSeparators := strings.Count(source, "=") + switch { + case numSeparators == 0: + return path.Base(source), source, nil + case numSeparators == 1 && strings.HasPrefix(source, "="): + return "", "", fmt.Errorf("key name for file path %v missing", strings.TrimPrefix(source, "=")) + case numSeparators == 1 && strings.HasSuffix(source, "="): + return "", "", fmt.Errorf("file path for key name %v missing", strings.TrimSuffix(source, "=")) + case numSeparators > 1: + return "", "", errors.New("key names or file paths cannot contain '='") + default: + components := strings.Split(source, "=") + return components[0], components[1], nil + } +} + +// ParseLiteralSource parses the source key=val pair into its component pieces. +// This functionality is distinguished from strings.SplitN(source, "=", 2) since +// it returns an error in the case of empty keys, values, or a missing equals sign. +func parseLiteralSource(source string) (keyName, value string, err error) { + // leading equal is invalid + if strings.Index(source, "=") == 0 { + return "", "", fmt.Errorf("invalid literal source %v, expected key=value", source) + } + // split after the first equal (so values can have the = character) + items := strings.SplitN(source, "=", 2) + if len(items) != 2 { + return "", "", fmt.Errorf("invalid literal source %v, expected key=value", source) + } + return items[0], strings.Trim(items[1], "\"'"), nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/loader/fileloader.go b/vendor/sigs.k8s.io/kustomize/api/loader/fileloader.go new file mode 100644 index 0000000000..e0fa2807f5 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/loader/fileloader.go @@ -0,0 +1,335 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package loader + +import ( + "fmt" + "io/ioutil" + "log" + "net/http" + "net/url" + "path/filepath" + "strings" + + "sigs.k8s.io/kustomize/api/filesys" + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/internal/git" +) + +// fileLoader is a kustomization's interface to files. +// +// The directory in which a kustomization file sits +// is referred to below as the kustomization's _root_. +// +// An instance of fileLoader has an immutable root, +// and offers a `New` method returning a new loader +// with a new root. +// +// A kustomization file refers to two kinds of files: +// +// * supplemental data paths +// +// `Load` is used to visit these paths. +// +// These paths refer to resources, patches, +// data for ConfigMaps and Secrets, etc. +// +// The loadRestrictor may disallow certain paths +// or classes of paths. +// +// * bases (other kustomizations) +// +// `New` is used to load bases. +// +// A base can be either a remote git repo URL, or +// a directory specified relative to the current +// root. In the former case, the repo is locally +// cloned, and the new loader is rooted on a path +// in that clone. +// +// As loaders create new loaders, a root history +// is established, and used to disallow: +// +// - A base that is a repository that, in turn, +// specifies a base repository seen previously +// in the loading stack (a cycle). +// +// - An overlay depending on a base positioned at +// or above it. I.e. '../foo' is OK, but '.', +// '..', '../..', etc. are disallowed. Allowing +// such a base has no advantages and encourages +// cycles, particularly if some future change +// were to introduce globbing to file +// specifications in the kustomization file. +// +// These restrictions assure that kustomizations +// are self-contained and relocatable, and impose +// some safety when relying on remote kustomizations, +// e.g. a remotely loaded ConfigMap generator specified +// to read from /etc/passwd will fail. +// +type fileLoader struct { + // Loader that spawned this loader. + // Used to avoid cycles. + referrer *fileLoader + + // An absolute, cleaned path to a directory. + // The Load function will read non-absolute + // paths relative to this directory. + root filesys.ConfirmedDir + + // Restricts behavior of Load function. + loadRestrictor LoadRestrictorFunc + + // If this is non-nil, the files were + // obtained from the given repository. + repoSpec *git.RepoSpec + + // File system utilities. + fSys filesys.FileSystem + + // Used to load from HTTP + http *http.Client + + // Used to clone repositories. + cloner git.Cloner + + // Used to clean up, as needed. + cleaner func() error +} + +// NewFileLoaderAtCwd returns a loader that loads from PWD. +// A convenience for kustomize edit commands. +func NewFileLoaderAtCwd(fSys filesys.FileSystem) *fileLoader { + return newLoaderOrDie( + RestrictionRootOnly, fSys, filesys.SelfDir) +} + +// NewFileLoaderAtRoot returns a loader that loads from "/". +// A convenience for tests. +func NewFileLoaderAtRoot(fSys filesys.FileSystem) *fileLoader { + return newLoaderOrDie( + RestrictionRootOnly, fSys, filesys.Separator) +} + +// Root returns the absolute path that is prepended to any +// relative paths used in Load. +func (fl *fileLoader) Root() string { + return fl.root.String() +} + +func newLoaderOrDie( + lr LoadRestrictorFunc, + fSys filesys.FileSystem, path string) *fileLoader { + root, err := demandDirectoryRoot(fSys, path) + if err != nil { + log.Fatalf("unable to make loader at '%s'; %v", path, err) + } + return newLoaderAtConfirmedDir( + lr, root, fSys, nil, git.ClonerUsingGitExec) +} + +// newLoaderAtConfirmedDir returns a new fileLoader with given root. +func newLoaderAtConfirmedDir( + lr LoadRestrictorFunc, + root filesys.ConfirmedDir, fSys filesys.FileSystem, + referrer *fileLoader, cloner git.Cloner) *fileLoader { + return &fileLoader{ + loadRestrictor: lr, + root: root, + referrer: referrer, + fSys: fSys, + cloner: cloner, + cleaner: func() error { return nil }, + } +} + +// Assure that the given path is in fact a directory. +func demandDirectoryRoot( + fSys filesys.FileSystem, path string) (filesys.ConfirmedDir, error) { + if path == "" { + return "", fmt.Errorf( + "loader root cannot be empty") + } + d, f, err := fSys.CleanedAbs(path) + if err != nil { + return "", err + } + if f != "" { + return "", fmt.Errorf( + "got file '%s', but '%s' must be a directory to be a root", + f, path) + } + return d, nil +} + +// New returns a new Loader, rooted relative to current loader, +// or rooted in a temp directory holding a git repo clone. +func (fl *fileLoader) New(path string) (ifc.Loader, error) { + if path == "" { + return nil, fmt.Errorf("new root cannot be empty") + } + + repoSpec, err := git.NewRepoSpecFromUrl(path) + if err == nil { + // Treat this as git repo clone request. + if err = fl.errIfRepoCycle(repoSpec); err != nil { + return nil, err + } + return newLoaderAtGitClone( + repoSpec, fl.fSys, fl, fl.cloner) + } + + if filepath.IsAbs(path) { + return nil, fmt.Errorf("new root '%s' cannot be absolute", path) + } + root, err := demandDirectoryRoot(fl.fSys, fl.root.Join(path)) + if err != nil { + return nil, err + } + if err = fl.errIfGitContainmentViolation(root); err != nil { + return nil, err + } + if err = fl.errIfArgEqualOrHigher(root); err != nil { + return nil, err + } + return newLoaderAtConfirmedDir( + fl.loadRestrictor, root, fl.fSys, fl, fl.cloner), nil +} + +// newLoaderAtGitClone returns a new Loader pinned to a temporary +// directory holding a cloned git repo. +func newLoaderAtGitClone( + repoSpec *git.RepoSpec, fSys filesys.FileSystem, + referrer *fileLoader, cloner git.Cloner) (ifc.Loader, error) { + cleaner := repoSpec.Cleaner(fSys) + err := cloner(repoSpec) + if err != nil { + cleaner() + return nil, err + } + root, f, err := fSys.CleanedAbs(repoSpec.AbsPath()) + if err != nil { + cleaner() + return nil, err + } + // We don't know that the path requested in repoSpec + // is a directory until we actually clone it and look + // inside. That just happened, hence the error check + // is here. + if f != "" { + cleaner() + return nil, fmt.Errorf( + "'%s' refers to file '%s'; expecting directory", + repoSpec.AbsPath(), f) + } + return &fileLoader{ + // Clones never allowed to escape root. + loadRestrictor: RestrictionRootOnly, + root: root, + referrer: referrer, + repoSpec: repoSpec, + fSys: fSys, + cloner: cloner, + cleaner: cleaner, + }, nil +} + +func (fl *fileLoader) errIfGitContainmentViolation( + base filesys.ConfirmedDir) error { + containingRepo := fl.containingRepo() + if containingRepo == nil { + return nil + } + if !base.HasPrefix(containingRepo.CloneDir()) { + return fmt.Errorf( + "security; bases in kustomizations found in "+ + "cloned git repos must be within the repo, "+ + "but base '%s' is outside '%s'", + base, containingRepo.CloneDir()) + } + return nil +} + +// Looks back through referrers for a git repo, returning nil +// if none found. +func (fl *fileLoader) containingRepo() *git.RepoSpec { + if fl.repoSpec != nil { + return fl.repoSpec + } + if fl.referrer == nil { + return nil + } + return fl.referrer.containingRepo() +} + +// errIfArgEqualOrHigher tests whether the argument, +// is equal to or above the root of any ancestor. +func (fl *fileLoader) errIfArgEqualOrHigher( + candidateRoot filesys.ConfirmedDir) error { + if fl.root.HasPrefix(candidateRoot) { + return fmt.Errorf( + "cycle detected: candidate root '%s' contains visited root '%s'", + candidateRoot, fl.root) + } + if fl.referrer == nil { + return nil + } + return fl.referrer.errIfArgEqualOrHigher(candidateRoot) +} + +// TODO(monopole): Distinguish branches? +// I.e. Allow a distinction between git URI with +// path foo and tag bar and a git URI with the same +// path but a different tag? +func (fl *fileLoader) errIfRepoCycle(newRepoSpec *git.RepoSpec) error { + // TODO(monopole): Use parsed data instead of Raw(). + if fl.repoSpec != nil && + strings.HasPrefix(fl.repoSpec.Raw(), newRepoSpec.Raw()) { + return fmt.Errorf( + "cycle detected: URI '%s' referenced by previous URI '%s'", + newRepoSpec.Raw(), fl.repoSpec.Raw()) + } + if fl.referrer == nil { + return nil + } + return fl.referrer.errIfRepoCycle(newRepoSpec) +} + +// Load returns the content of file at the given path, +// else an error. Relative paths are taken relative +// to the root. +func (fl *fileLoader) Load(path string) ([]byte, error) { + if u, err := url.Parse(path); err == nil && (u.Scheme == "http" || u.Scheme == "https") { + var hc *http.Client + if fl.http != nil { + hc = fl.http + } else { + hc = &http.Client{} + } + resp, err := hc.Get(path) + if err != nil { + return nil, err + } + defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err + } + return body, nil + } + if !filepath.IsAbs(path) { + path = fl.root.Join(path) + } + path, err := fl.loadRestrictor(fl.fSys, fl.root, path) + if err != nil { + return nil, err + } + return fl.fSys.ReadFile(path) +} + +// Cleanup runs the cleaner. +func (fl *fileLoader) Cleanup() error { + return fl.cleaner() +} diff --git a/vendor/sigs.k8s.io/kustomize/api/loader/loader.go b/vendor/sigs.k8s.io/kustomize/api/loader/loader.go new file mode 100644 index 0000000000..c72a959654 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/loader/loader.go @@ -0,0 +1,34 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package loader has a data loading interface and various implementations. +package loader + +import ( + "sigs.k8s.io/kustomize/api/filesys" + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/internal/git" +) + +// NewLoader returns a Loader pointed at the given target. +// If the target is remote, the loader will be restricted +// to the root and below only. If the target is local, the +// loader will have the restrictions passed in. Regardless, +// if a local target attempts to transitively load remote bases, +// the remote bases will all be root-only restricted. +func NewLoader( + lr LoadRestrictorFunc, + target string, fSys filesys.FileSystem) (ifc.Loader, error) { + repoSpec, err := git.NewRepoSpecFromUrl(target) + if err == nil { + // The target qualifies as a remote git target. + return newLoaderAtGitClone( + repoSpec, fSys, nil, git.ClonerUsingGitExec) + } + root, err := demandDirectoryRoot(fSys, target) + if err != nil { + return nil, err + } + return newLoaderAtConfirmedDir( + lr, root, fSys, nil, git.ClonerUsingGitExec), nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/loader/loadrestrictions.go b/vendor/sigs.k8s.io/kustomize/api/loader/loadrestrictions.go new file mode 100644 index 0000000000..99b5562fbf --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/loader/loadrestrictions.go @@ -0,0 +1,35 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package loader + +import ( + "fmt" + + "sigs.k8s.io/kustomize/api/filesys" +) + +type LoadRestrictorFunc func( + filesys.FileSystem, filesys.ConfirmedDir, string) (string, error) + +func RestrictionRootOnly( + fSys filesys.FileSystem, root filesys.ConfirmedDir, path string) (string, error) { + d, f, err := fSys.CleanedAbs(path) + if err != nil { + return "", err + } + if f == "" { + return "", fmt.Errorf("'%s' must resolve to a file", path) + } + if !d.HasPrefix(root) { + return "", fmt.Errorf( + "security; file '%s' is not in or below '%s'", + path, root) + } + return d.Join(f), nil +} + +func RestrictionNone( + _ filesys.FileSystem, _ filesys.ConfirmedDir, path string) (string, error) { + return path, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/provenance/provenance.go b/vendor/sigs.k8s.io/kustomize/api/provenance/provenance.go new file mode 100644 index 0000000000..4ad40395a1 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/provenance/provenance.go @@ -0,0 +1,68 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package provenance + +import ( + "fmt" + "runtime" + "strings" +) + +var ( + version = "unknown" + // sha1 from git, output of $(git rev-parse HEAD) + gitCommit = "$Format:%H$" + // build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ') + buildDate = "1970-01-01T00:00:00Z" + goos = runtime.GOOS + goarch = runtime.GOARCH +) + +// Provenance holds information about the build of an executable. +type Provenance struct { + // Version of the kustomize binary. + Version string `json:"version,omitempty"` + // GitCommit is a git commit + GitCommit string `json:"gitCommit,omitempty"` + // BuildDate is date of the build. + BuildDate string `json:"buildDate,omitempty"` + // GoOs holds OS name. + GoOs string `json:"goOs,omitempty"` + // GoArch holds architecture name. + GoArch string `json:"goArch,omitempty"` +} + +// GetProvenance returns an instance of Provenance. +func GetProvenance() Provenance { + return Provenance{ + version, + gitCommit, + buildDate, + goos, + goarch, + } +} + +// Full returns the full provenance stamp. +func (v Provenance) Full() string { + return fmt.Sprintf("%+v", v) +} + +// Short returns the shortened provenance stamp. +func (v Provenance) Short() string { + return fmt.Sprintf( + "%v", + Provenance{ + Version: v.Version, + BuildDate: v.BuildDate, + }) +} + +// Semver returns the semantic version of kustomize. +// kustomize version is set in format "kustomize/vX.X.X" in every release. +// X.X.X is a semver. If the version string is not in this format, +// return the original version string +func (v Provenance) Semver() string { + return strings.TrimPrefix(v.Version, "kustomize/") +} diff --git a/vendor/sigs.k8s.io/kustomize/api/provider/depprovider.go b/vendor/sigs.k8s.io/kustomize/api/provider/depprovider.go new file mode 100644 index 0000000000..0102c89ce0 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/provider/depprovider.go @@ -0,0 +1,42 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package provider + +import ( + "sigs.k8s.io/kustomize/api/hasher" + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/internal/validate" + "sigs.k8s.io/kustomize/api/resource" +) + +// DepProvider is a dependency provider, injecting different +// implementations depending on the context. +type DepProvider struct { + resourceFactory *resource.Factory + // implemented by api/internal/validate.FieldValidator + // See TODO inside the validator for status. + // At time of writing, this is a do-nothing + // validator as it's not critical to kustomize function. + fieldValidator ifc.Validator +} + +func NewDepProvider() *DepProvider { + rf := resource.NewFactory(&hasher.Hasher{}) + return &DepProvider{ + resourceFactory: rf, + fieldValidator: validate.NewFieldValidator(), + } +} + +func NewDefaultDepProvider() *DepProvider { + return NewDepProvider() +} + +func (dp *DepProvider) GetResourceFactory() *resource.Factory { + return dp.resourceFactory +} + +func (dp *DepProvider) GetFieldValidator() ifc.Validator { + return dp.fieldValidator +} diff --git a/vendor/sigs.k8s.io/kustomize/api/resid/gvk.go b/vendor/sigs.k8s.io/kustomize/api/resid/gvk.go index 70f7107386..b112151d38 100644 --- a/vendor/sigs.k8s.io/kustomize/api/resid/gvk.go +++ b/vendor/sigs.k8s.io/kustomize/api/resid/gvk.go @@ -36,6 +36,14 @@ func ParseGroupVersion(apiVersion string) (group, version string) { // GvkFromString makes a Gvk from the output of Gvk.String(). func GvkFromString(s string) Gvk { values := strings.Split(s, fieldSep) + if len(values) != 3 { + // ...then the string didn't come from Gvk.String(). + return Gvk{ + Group: noGroup, + Version: noVersion, + Kind: noKind, + } + } g := values[0] if g == noGroup { g = "" @@ -213,7 +221,10 @@ func (x Gvk) toKyamlTypeMeta() yaml.TypeMeta { } } -// IsNamespaceableKind returns true if x is a namespaceable Gvk +// IsNamespaceableKind returns true if x is a namespaceable Gvk, +// e.g. instances of Pod and Deployment are namespaceable, +// but instances of Node and Namespace are not namespaceable. +// Alternative name for this method: IsNotClusterScoped. // Implements https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#not-all-objects-are-in-a-namespace func (x Gvk) IsNamespaceableKind() bool { isNamespaceScoped, found := openapi.IsNamespaceScoped(x.toKyamlTypeMeta()) diff --git a/vendor/sigs.k8s.io/kustomize/api/resmap/factory.go b/vendor/sigs.k8s.io/kustomize/api/resmap/factory.go new file mode 100644 index 0000000000..9ec0fe3967 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/resmap/factory.go @@ -0,0 +1,145 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package resmap + +import ( + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/internal/kusterr" + "sigs.k8s.io/kustomize/api/resource" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Factory makes instances of ResMap. +type Factory struct { + // Makes resources. + resF *resource.Factory +} + +// NewFactory returns a new resmap.Factory. +func NewFactory(rf *resource.Factory) *Factory { + return &Factory{resF: rf} +} + +// RF returns a resource.Factory. +func (rmF *Factory) RF() *resource.Factory { + return rmF.resF +} + +func New() ResMap { + return newOne() +} + +// FromResource returns a ResMap with one entry. +func (rmF *Factory) FromResource(res *resource.Resource) ResMap { + m, err := newResMapFromResourceSlice([]*resource.Resource{res}) + if err != nil { + panic(err) + } + return m +} + +// FromResourceSlice returns a ResMap with a slice of resources. +func (rmF *Factory) FromResourceSlice(ress []*resource.Resource) ResMap { + m, err := newResMapFromResourceSlice(ress) + if err != nil { + panic(err) + } + return m +} + +// FromFile returns a ResMap given a resource path. +func (rmF *Factory) FromFile( + loader ifc.Loader, path string) (ResMap, error) { + content, err := loader.Load(path) + if err != nil { + return nil, err + } + m, err := rmF.NewResMapFromBytes(content) + if err != nil { + return nil, kusterr.Handler(err, path) + } + return m, nil +} + +// NewResMapFromBytes decodes a list of objects in byte array format. +func (rmF *Factory) NewResMapFromBytes(b []byte) (ResMap, error) { + resources, err := rmF.resF.SliceFromBytes(b) + if err != nil { + return nil, err + } + return newResMapFromResourceSlice(resources) +} + +// NewResMapFromConfigMapArgs returns a Resource slice given +// a configmap metadata slice from kustomization file. +func (rmF *Factory) NewResMapFromConfigMapArgs( + kvLdr ifc.KvLoader, argList []types.ConfigMapArgs) (ResMap, error) { + var resources []*resource.Resource + for _, args := range argList { + res, err := rmF.resF.MakeConfigMap(kvLdr, &args) + if err != nil { + return nil, errors.Wrap(err, "NewResMapFromConfigMapArgs") + } + resources = append(resources, res) + } + return newResMapFromResourceSlice(resources) +} + +// FromConfigMapArgs creates a new ResMap containing one ConfigMap. +func (rmF *Factory) FromConfigMapArgs( + kvLdr ifc.KvLoader, args types.ConfigMapArgs) (ResMap, error) { + res, err := rmF.resF.MakeConfigMap(kvLdr, &args) + if err != nil { + return nil, err + } + return rmF.FromResource(res), nil +} + +// NewResMapFromSecretArgs takes a SecretArgs slice, generates +// secrets from each entry, and accumulates them in a ResMap. +func (rmF *Factory) NewResMapFromSecretArgs( + kvLdr ifc.KvLoader, argsList []types.SecretArgs) (ResMap, error) { + var resources []*resource.Resource + for _, args := range argsList { + res, err := rmF.resF.MakeSecret(kvLdr, &args) + if err != nil { + return nil, errors.Wrap(err, "NewResMapFromSecretArgs") + } + resources = append(resources, res) + } + return newResMapFromResourceSlice(resources) +} + +// FromSecretArgs creates a new ResMap containing one secret. +func (rmF *Factory) FromSecretArgs( + kvLdr ifc.KvLoader, args types.SecretArgs) (ResMap, error) { + res, err := rmF.resF.MakeSecret(kvLdr, &args) + if err != nil { + return nil, err + } + return rmF.FromResource(res), nil +} + +func newResMapFromResourceSlice( + resources []*resource.Resource) (ResMap, error) { + result := New() + for _, res := range resources { + err := result.Append(res) + if err != nil { + return nil, err + } + } + return result, nil +} + +// NewResMapFromRNodeSlice returns a ResMap from a slice of RNodes +func (rmF *Factory) NewResMapFromRNodeSlice(s []*yaml.RNode) (ResMap, error) { + rs, err := rmF.resF.ResourcesFromRNodes(s) + if err != nil { + return nil, err + } + return newResMapFromResourceSlice(rs) +} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/resmap/idslice.go b/vendor/sigs.k8s.io/kustomize/api/resmap/idslice.go similarity index 88% rename from vendor/sigs.k8s.io/kustomize/pkg/resmap/idslice.go rename to vendor/sigs.k8s.io/kustomize/api/resmap/idslice.go index cdf759203b..f2e46d4406 100644 --- a/vendor/sigs.k8s.io/kustomize/pkg/resmap/idslice.go +++ b/vendor/sigs.k8s.io/kustomize/api/resmap/idslice.go @@ -19,7 +19,7 @@ package resmap import ( "sort" - "sigs.k8s.io/kustomize/pkg/resid" + "sigs.k8s.io/kustomize/api/resid" ) // IdSlice implements the sort interface. @@ -30,8 +30,8 @@ var _ sort.Interface = IdSlice{} func (a IdSlice) Len() int { return len(a) } func (a IdSlice) Swap(i, j int) { a[i], a[j] = a[j], a[i] } func (a IdSlice) Less(i, j int) bool { - if !a[i].Gvk().Equals(a[j].Gvk()) { - return a[i].Gvk().IsLessThan(a[j].Gvk()) + if !a[i].Gvk.Equals(a[j].Gvk) { + return a[i].Gvk.IsLessThan(a[j].Gvk) } return a[i].String() < a[j].String() } diff --git a/vendor/sigs.k8s.io/kustomize/api/resmap/resmap.go b/vendor/sigs.k8s.io/kustomize/api/resmap/resmap.go new file mode 100644 index 0000000000..2b62482aa5 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/resmap/resmap.go @@ -0,0 +1,257 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package resmap implements a map from ResId to Resource that +// tracks all resources in a kustomization. +package resmap + +import ( + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/api/resource" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// A Transformer modifies an instance of ResMap. +type Transformer interface { + // Transform modifies data in the argument, + // e.g. adding labels to resources that can be labelled. + Transform(m ResMap) error +} + +// A Generator creates an instance of ResMap. +type Generator interface { + Generate() (ResMap, error) +} + +// Something that's configurable accepts an +// instance of PluginHelpers and a raw config +// object (YAML in []byte form). +type Configurable interface { + Config(h *PluginHelpers, config []byte) error +} + +// NewPluginHelpers makes an instance of PluginHelpers. +func NewPluginHelpers( + ldr ifc.Loader, v ifc.Validator, rf *Factory, + pc *types.PluginConfig) *PluginHelpers { + return &PluginHelpers{ldr: ldr, v: v, rf: rf, pc: pc} +} + +// PluginHelpers holds things that any or all plugins might need. +// This should be available to each plugin, in addition to +// any plugin-specific configuration. +type PluginHelpers struct { + ldr ifc.Loader + v ifc.Validator + rf *Factory + pc *types.PluginConfig +} + +func (c *PluginHelpers) GeneralConfig() *types.PluginConfig { + return c.pc +} + +func (c *PluginHelpers) Loader() ifc.Loader { + return c.ldr +} + +func (c *PluginHelpers) ResmapFactory() *Factory { + return c.rf +} + +func (c *PluginHelpers) Validator() ifc.Validator { + return c.v +} + +type GeneratorPlugin interface { + Generator + Configurable +} + +type TransformerPlugin interface { + Transformer + Configurable +} + +// ResMap is an interface describing operations on the +// core kustomize data structure, a list of Resources. +// +// Every Resource has two ResIds: OrgId and CurId. +// +// In a ResMap, no two resources may have the same CurId, +// but they may have the same OrgId. The latter can happen +// when mixing two or more different overlays apply different +// transformations to a common base. When looking for a +// resource to transform, try the OrgId first, and if this +// fails or finds too many, it might make sense to then try +// the CurrId. Depends on the situation. +// +// TODO: get rid of this interface (use bare resWrangler). +// There aren't multiple implementations any more. +type ResMap interface { + // Size reports the number of resources. + Size() int + + // Resources provides a discardable slice + // of resource pointers, returned in the order + // as appended. + Resources() []*resource.Resource + + // Append adds a Resource. Error on CurId collision. + // + // A class invariant of ResMap is that all of its + // resources must differ in their value of + // CurId(), aka current Id. The Id is the tuple + // of {namespace, group, version, kind, name} + // (see ResId). + // + // This invariant reflects the invariant of a + // kubernetes cluster, where if one tries to add + // a resource to the cluster whose Id matches + // that of a resource already in the cluster, + // only two outcomes are allowed. Either the + // incoming resource is _merged_ into the existing + // one, or the incoming resource is rejected. + // One cannot end up with two resources + // in the cluster with the same Id. + Append(*resource.Resource) error + + // AppendAll appends another ResMap to self, + // failing on any CurId collision. + AppendAll(ResMap) error + + // AbsorbAll appends, replaces or merges the contents + // of another ResMap into self, + // allowing and sometimes demanding ID collisions. + // A collision would be demanded, say, when a generated + // ConfigMap has the "replace" option in its generation + // instructions, meaning it _must_ replace + // something in the known set of resources. + // If a resource id for resource X is found to already + // be in self, then the behavior field for X must + // be BehaviorMerge or BehaviorReplace. If X is not in + // self, then its behavior _cannot_ be merge or replace. + AbsorbAll(ResMap) error + + // AsYaml returns the yaml form of resources. + AsYaml() ([]byte, error) + + // GetByIndex returns a resource at the given index, + // nil if out of range. + GetByIndex(int) *resource.Resource + + // GetIndexOfCurrentId returns the index of the resource + // with the given CurId. + // Returns error if there is more than one match. + // Returns (-1, nil) if there is no match. + GetIndexOfCurrentId(id resid.ResId) (int, error) + + // GetMatchingResourcesByCurrentId returns the resources + // who's CurId is matched by the argument. + GetMatchingResourcesByCurrentId(matches IdMatcher) []*resource.Resource + + // GetMatchingResourcesByAnyId returns the resources + // who's current or previous IDs is matched by the argument. + GetMatchingResourcesByAnyId(matches IdMatcher) []*resource.Resource + + // GetByCurrentId is shorthand for calling + // GetMatchingResourcesByCurrentId with a matcher requiring + // an exact match, returning an error on multiple or no matches. + GetByCurrentId(resid.ResId) (*resource.Resource, error) + + // GetById is shorthand for calling + // GetMatchingResourcesByAnyId with a matcher requiring + // an exact match, returning an error on multiple or no matches. + GetById(resid.ResId) (*resource.Resource, error) + + // GroupedByCurrentNamespace returns a map of namespace + // to a slice of *Resource in that namespace. + // Resources for whom IsNamespaceableKind is false are + // are not included at all (see NonNamespaceable). + // Resources with an empty namespace are placed + // in the resid.DefaultNamespace entry. + GroupedByCurrentNamespace() map[string][]*resource.Resource + + // GroupByOrginalNamespace performs as GroupByNamespace + // but use the original namespace instead of the current + // one to perform the grouping. + GroupedByOriginalNamespace() map[string][]*resource.Resource + + // NonNamespaceable returns a slice of resources that + // cannot be placed in a namespace, e.g. + // Node, ClusterRole, Namespace itself, etc. + NonNamespaceable() []*resource.Resource + + // AllIds returns all CurrentIds. + AllIds() []resid.ResId + + // Replace replaces the resource with the matching CurId. + // Error if there's no match or more than one match. + // Returns the index where the replacement happened. + Replace(*resource.Resource) (int, error) + + // Remove removes the resource whose CurId matches the argument. + // Error if not found. + Remove(resid.ResId) error + + // Clear removes all resources and Ids. + Clear() + + // DropEmpties drops empty resources from the ResMap. + DropEmpties() + + // SubsetThatCouldBeReferencedByResource returns a ResMap subset + // of self with resources that could be referenced by the + // resource argument. + // This is a filter; it excludes things that cannot be + // referenced by the resource, e.g. objects in other + // namespaces. Cluster wide objects are never excluded. + SubsetThatCouldBeReferencedByResource(*resource.Resource) ResMap + + // DeepCopy copies the ResMap and underlying resources. + DeepCopy() ResMap + + // ShallowCopy copies the ResMap but + // not the underlying resources. + ShallowCopy() ResMap + + // ErrorIfNotEqualSets returns an error if the + // argument doesn't have the same resources as self. + // Ordering is _not_ taken into account, + // as this function was solely used in tests written + // before internal resource order was maintained, + // and those tests are initialized with maps which + // by definition have random ordering, and will + // fail spuriously. + // TODO: modify tests to not use resmap.FromMap, + // TODO: - and replace this with a stricter equals. + ErrorIfNotEqualSets(ResMap) error + + // ErrorIfNotEqualLists returns an error if the + // argument doesn't have the resource objects + // data as self, in the same order. + // Meta information is ignored; this is similar + // to comparing the AsYaml() strings, but allows + // for more informed errors on not equals. + ErrorIfNotEqualLists(ResMap) error + + // Debug prints the ResMap. + Debug(title string) + + // Select returns a list of resources that + // are selected by a Selector + Select(types.Selector) ([]*resource.Resource, error) + + // ToRNodeSlice returns a copy of the resources as RNodes. + ToRNodeSlice() []*yaml.RNode + + // ApplySmPatch applies a strategic-merge patch to the + // selected set of resources. + ApplySmPatch( + selectedSet *resource.IdSet, patch *resource.Resource) error + + // RemoveBuildAnnotations removes annotations created by the build process. + RemoveBuildAnnotations() +} diff --git a/vendor/sigs.k8s.io/kustomize/api/resmap/reswrangler.go b/vendor/sigs.k8s.io/kustomize/api/resmap/reswrangler.go new file mode 100644 index 0000000000..acdceed231 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/resmap/reswrangler.go @@ -0,0 +1,620 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package resmap + +import ( + "bytes" + "fmt" + + "github.com/pkg/errors" + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/api/resource" + "sigs.k8s.io/kustomize/api/types" + kyaml "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// resWrangler implements ResMap. +type resWrangler struct { + // Resource list maintained in load (append) order. + // This is important for transformers, which must + // be performed in a specific order, and for users + // who for whatever reasons wish the order they + // specify in kustomizations to be maintained and + // available as an option for final YAML rendering. + rList []*resource.Resource +} + +func newOne() *resWrangler { + result := &resWrangler{} + result.Clear() + return result +} + +// Clear implements ResMap. +func (m *resWrangler) Clear() { + m.rList = nil +} + +// DropEmpties quickly drops empty resources. +// It doesn't use Append, which checks for Id collisions. +func (m *resWrangler) DropEmpties() { + var rList []*resource.Resource + for _, r := range m.rList { + if !r.IsEmpty() { + rList = append(rList, r) + } + } + m.rList = rList +} + +// Size implements ResMap. +func (m *resWrangler) Size() int { + return len(m.rList) +} + +func (m *resWrangler) indexOfResource(other *resource.Resource) int { + for i, r := range m.rList { + if r == other { + return i + } + } + return -1 +} + +// Resources implements ResMap. +func (m *resWrangler) Resources() []*resource.Resource { + tmp := make([]*resource.Resource, len(m.rList)) + copy(tmp, m.rList) + return tmp +} + +// Append implements ResMap. +func (m *resWrangler) Append(res *resource.Resource) error { + id := res.CurId() + if r := m.GetMatchingResourcesByCurrentId(id.Equals); len(r) > 0 { + return fmt.Errorf( + "may not add resource with an already registered id: %s", id) + } + m.append(res) + return nil +} + +// append appends without performing an Id check +func (m *resWrangler) append(res *resource.Resource) { + m.rList = append(m.rList, res) +} + +// Remove implements ResMap. +func (m *resWrangler) Remove(adios resid.ResId) error { + var rList []*resource.Resource + for _, r := range m.rList { + if r.CurId() != adios { + rList = append(rList, r) + } + } + if len(rList) != m.Size()-1 { + return fmt.Errorf("id %s not found in removal", adios) + } + m.rList = rList + return nil +} + +// Replace implements ResMap. +func (m *resWrangler) Replace(res *resource.Resource) (int, error) { + id := res.CurId() + i, err := m.GetIndexOfCurrentId(id) + if err != nil { + return -1, errors.Wrap(err, "in Replace") + } + if i < 0 { + return -1, fmt.Errorf("cannot find resource with id %s to replace", id) + } + m.rList[i] = res + return i, nil +} + +// AllIds implements ResMap. +func (m *resWrangler) AllIds() (ids []resid.ResId) { + ids = make([]resid.ResId, m.Size()) + for i, r := range m.rList { + ids[i] = r.CurId() + } + return +} + +// Debug implements ResMap. +func (m *resWrangler) Debug(title string) { + fmt.Println("--------------------------- " + title) + firstObj := true + for i, r := range m.rList { + if firstObj { + firstObj = false + } else { + fmt.Println("---") + } + fmt.Printf("# %d %s\n%s\n", i, r.OrgId(), r.String()) + } +} + +type IdMatcher func(resid.ResId) bool + +// GetByIndex implements ResMap. +func (m *resWrangler) GetByIndex(i int) *resource.Resource { + if i < 0 || i >= m.Size() { + return nil + } + return m.rList[i] +} + +// GetIndexOfCurrentId implements ResMap. +func (m *resWrangler) GetIndexOfCurrentId(id resid.ResId) (int, error) { + count := 0 + result := -1 + for i, r := range m.rList { + if id.Equals(r.CurId()) { + count++ + result = i + } + } + if count > 1 { + return -1, fmt.Errorf("id matched %d resources", count) + } + return result, nil +} + +type IdFromResource func(r *resource.Resource) resid.ResId + +func GetCurrentId(r *resource.Resource) resid.ResId { return r.CurId() } + +// GetMatchingResourcesByCurrentId implements ResMap. +func (m *resWrangler) GetMatchingResourcesByCurrentId( + matches IdMatcher) []*resource.Resource { + return m.filteredById(matches, GetCurrentId) +} + +// GetMatchingResourcesByAnyId implements ResMap. +func (m *resWrangler) GetMatchingResourcesByAnyId( + matches IdMatcher) []*resource.Resource { + var result []*resource.Resource + for _, r := range m.rList { + for _, id := range append(r.PrevIds(), r.CurId()) { + if matches(id) { + result = append(result, r) + break + } + } + } + return result +} + +func (m *resWrangler) filteredById( + matches IdMatcher, idGetter IdFromResource) []*resource.Resource { + var result []*resource.Resource + for _, r := range m.rList { + if matches(idGetter(r)) { + result = append(result, r) + } + } + return result +} + +// GetByCurrentId implements ResMap. +func (m *resWrangler) GetByCurrentId( + id resid.ResId) (*resource.Resource, error) { + return demandOneMatch(m.GetMatchingResourcesByCurrentId, id, "Current") +} + +// GetById implements ResMap. +func (m *resWrangler) GetById( + id resid.ResId) (*resource.Resource, error) { + r, err := demandOneMatch(m.GetMatchingResourcesByAnyId, id, "Id") + if err != nil { + return nil, fmt.Errorf( + "%s; failed to find unique target for patch %s", + err.Error(), id.GvknString()) + } + return r, nil +} + +type resFinder func(IdMatcher) []*resource.Resource + +func demandOneMatch( + f resFinder, id resid.ResId, s string) (*resource.Resource, error) { + r := f(id.Equals) + if len(r) == 1 { + return r[0], nil + } + if len(r) > 1 { + return nil, fmt.Errorf("multiple matches for %s %s", s, id) + } + return nil, fmt.Errorf("no matches for %sId %s", s, id) +} + +// GroupedByCurrentNamespace implements ResMap.GroupByCurrentNamespace +func (m *resWrangler) GroupedByCurrentNamespace() map[string][]*resource.Resource { + items := m.groupedByCurrentNamespace() + delete(items, resid.TotallyNotANamespace) + return items +} + +// NonNamespaceable implements ResMap.NonNamespaceable +func (m *resWrangler) NonNamespaceable() []*resource.Resource { + return m.groupedByCurrentNamespace()[resid.TotallyNotANamespace] +} + +func (m *resWrangler) groupedByCurrentNamespace() map[string][]*resource.Resource { + byNamespace := make(map[string][]*resource.Resource) + for _, res := range m.rList { + namespace := res.CurId().EffectiveNamespace() + if _, found := byNamespace[namespace]; !found { + byNamespace[namespace] = []*resource.Resource{} + } + byNamespace[namespace] = append(byNamespace[namespace], res) + } + return byNamespace +} + +// GroupedByNamespace implements ResMap.GroupByOrginalNamespace +func (m *resWrangler) GroupedByOriginalNamespace() map[string][]*resource.Resource { + items := m.groupedByOriginalNamespace() + delete(items, resid.TotallyNotANamespace) + return items +} + +func (m *resWrangler) groupedByOriginalNamespace() map[string][]*resource.Resource { + byNamespace := make(map[string][]*resource.Resource) + for _, res := range m.rList { + namespace := res.OrgId().EffectiveNamespace() + if _, found := byNamespace[namespace]; !found { + byNamespace[namespace] = []*resource.Resource{} + } + byNamespace[namespace] = append(byNamespace[namespace], res) + } + return byNamespace +} + +// AsYaml implements ResMap. +func (m *resWrangler) AsYaml() ([]byte, error) { + firstObj := true + var b []byte + buf := bytes.NewBuffer(b) + for _, res := range m.rList { + out, err := res.AsYAML() + if err != nil { + m, _ := res.Map() + return nil, errors.Wrapf(err, "%#v", m) + } + if firstObj { + firstObj = false + } else { + if _, err = buf.WriteString("---\n"); err != nil { + return nil, err + } + } + if _, err = buf.Write(out); err != nil { + return nil, err + } + } + return buf.Bytes(), nil +} + +// ErrorIfNotEqualSets implements ResMap. +func (m *resWrangler) ErrorIfNotEqualSets(other ResMap) error { + m2, ok := other.(*resWrangler) + if !ok { + return fmt.Errorf("bad cast to resWrangler 1") + } + if m.Size() != m2.Size() { + return fmt.Errorf( + "lists have different number of entries: %#v doesn't equal %#v", + m.rList, m2.rList) + } + seen := make(map[int]bool) + for _, r1 := range m.rList { + id := r1.CurId() + others := m2.GetMatchingResourcesByCurrentId(id.Equals) + if len(others) == 0 { + return fmt.Errorf( + "id in self missing from other; id: %s", id) + } + if len(others) > 1 { + return fmt.Errorf( + "id in self matches %d in other; id: %s", len(others), id) + } + r2 := others[0] + if !r1.NodeEqual(r2) { + return fmt.Errorf( + "nodes unequal: \n -- %s,\n -- %s\n\n--\n%#v\n------\n%#v\n", + r1, r2, r1, r2) + } + seen[m2.indexOfResource(r2)] = true + } + if len(seen) != m.Size() { + return fmt.Errorf("counting problem %d != %d", len(seen), m.Size()) + } + return nil +} + +// ErrorIfNotEqualList implements ResMap. +func (m *resWrangler) ErrorIfNotEqualLists(other ResMap) error { + m2, ok := other.(*resWrangler) + if !ok { + return fmt.Errorf("bad cast to resWrangler 2") + } + if m.Size() != m2.Size() { + return fmt.Errorf( + "lists have different number of entries: %#v doesn't equal %#v", + m.rList, m2.rList) + } + for i, r1 := range m.rList { + r2 := m2.rList[i] + if err := r1.ErrIfNotEquals(r2); err != nil { + return err + } + } + return nil +} + +type resCopier func(r *resource.Resource) *resource.Resource + +// ShallowCopy implements ResMap. +func (m *resWrangler) ShallowCopy() ResMap { + return m.makeCopy( + func(r *resource.Resource) *resource.Resource { + return r + }) +} + +// DeepCopy implements ResMap. +func (m *resWrangler) DeepCopy() ResMap { + return m.makeCopy( + func(r *resource.Resource) *resource.Resource { + return r.DeepCopy() + }) +} + +// makeCopy copies the ResMap. +func (m *resWrangler) makeCopy(copier resCopier) ResMap { + result := &resWrangler{} + result.rList = make([]*resource.Resource, m.Size()) + for i, r := range m.rList { + result.rList[i] = copier(r) + } + return result +} + +// SubsetThatCouldBeReferencedByResource implements ResMap. +func (m *resWrangler) SubsetThatCouldBeReferencedByResource( + referrer *resource.Resource) ResMap { + referrerId := referrer.CurId() + if !referrerId.IsNamespaceableKind() { + // A cluster scoped resource can refer to anything. + return m + } + result := newOne() + roleBindingNamespaces := getNamespacesForRoleBinding(referrer) + for _, possibleTarget := range m.rList { + id := possibleTarget.CurId() + if !id.IsNamespaceableKind() { + // A cluster-scoped resource can be referred to by anything. + result.append(possibleTarget) + continue + } + if id.IsNsEquals(referrerId) { + // The two objects are in the same namespace. + result.append(possibleTarget) + continue + } + // The two objects are namespaced (not cluster-scoped), AND + // are in different namespaces. + // There's still a chance they can refer to each other. + ns := possibleTarget.GetNamespace() + if roleBindingNamespaces[ns] { + result.append(possibleTarget) + } + } + return result +} + +// getNamespacesForRoleBinding returns referenced ServiceAccount namespaces +// if the resource is a RoleBinding +func getNamespacesForRoleBinding(r *resource.Resource) map[string]bool { + result := make(map[string]bool) + if r.GetKind() != "RoleBinding" { + return result + } + subjects, err := r.GetSlice("subjects") + if err != nil || subjects == nil { + return result + } + for _, s := range subjects { + subject := s.(map[string]interface{}) + if ns, ok1 := subject["namespace"]; ok1 { + if kind, ok2 := subject["kind"]; ok2 { + if kind.(string) == "ServiceAccount" { + result[ns.(string)] = true + } + } + } + } + return result +} + +// AppendAll implements ResMap. +func (m *resWrangler) AppendAll(other ResMap) error { + if other == nil { + return nil + } + m2, ok := other.(*resWrangler) + if !ok { + return fmt.Errorf("bad cast to resWrangler 3") + } + return m.appendAll(m2.rList) +} + +// appendAll appends all the resources, error on Id collision. +func (m *resWrangler) appendAll(list []*resource.Resource) error { + for _, res := range list { + if err := m.Append(res); err != nil { + return err + } + } + return nil +} + +// AbsorbAll implements ResMap. +func (m *resWrangler) AbsorbAll(other ResMap) error { + if other == nil { + return nil + } + m2, ok := other.(*resWrangler) + if !ok { + return fmt.Errorf("bad cast to resWrangler 4") + } + for _, r := range m2.rList { + err := m.appendReplaceOrMerge(r) + if err != nil { + return err + } + } + return nil +} + +func (m *resWrangler) appendReplaceOrMerge(res *resource.Resource) error { + id := res.CurId() + matches := m.GetMatchingResourcesByAnyId(id.Equals) + switch len(matches) { + case 0: + switch res.Behavior() { + case types.BehaviorMerge, types.BehaviorReplace: + return fmt.Errorf( + "id %#v does not exist; cannot merge or replace", id) + default: + // presumably types.BehaviorCreate + return m.Append(res) + } + case 1: + old := matches[0] + if old == nil { + return fmt.Errorf("id lookup failure") + } + index := m.indexOfResource(old) + if index < 0 { + return fmt.Errorf("indexing problem") + } + switch res.Behavior() { + case types.BehaviorReplace: + res.CopyMergeMetaDataFieldsFrom(old) + case types.BehaviorMerge: + res.CopyMergeMetaDataFieldsFrom(old) + res.MergeDataMapFrom(old) + res.MergeBinaryDataMapFrom(old) + default: + return fmt.Errorf( + "id %#v exists; behavior must be merge or replace", id) + } + i, err := m.Replace(res) + if err != nil { + return err + } + if i != index { + return fmt.Errorf("unexpected target index in replacement") + } + return nil + default: + return fmt.Errorf( + "found multiple objects %v that could accept merge of %v", + matches, id) + } +} + +// Select returns a list of resources that +// are selected by a Selector +func (m *resWrangler) Select(s types.Selector) ([]*resource.Resource, error) { + var result []*resource.Resource + sr, err := types.NewSelectorRegex(&s) + if err != nil { + return nil, err + } + for _, r := range m.rList { + curId := r.CurId() + orgId := r.OrgId() + + // It first tries to match with the original namespace + // then matches with the current namespace + if !sr.MatchNamespace(orgId.EffectiveNamespace()) && + !sr.MatchNamespace(curId.EffectiveNamespace()) { + continue + } + + // It first tries to match with the original name + // then matches with the current name + if !sr.MatchName(orgId.Name) && + !sr.MatchName(curId.Name) { + continue + } + + // matches the GVK + if !sr.MatchGvk(r.GetGvk()) { + continue + } + + // matches the label selector + matched, err := r.MatchesLabelSelector(s.LabelSelector) + if err != nil { + return nil, err + } + if !matched { + continue + } + + // matches the annotation selector + matched, err = r.MatchesAnnotationSelector(s.AnnotationSelector) + if err != nil { + return nil, err + } + if !matched { + continue + } + result = append(result, r) + } + return result, nil +} + +// ToRNodeSlice returns a copy of the resources as RNodes. +func (m *resWrangler) ToRNodeSlice() []*kyaml.RNode { + result := make([]*kyaml.RNode, len(m.rList)) + for i := range m.rList { + result[i] = m.rList[i].AsRNode() + } + return result +} + +// ApplySmPatch applies the patch, and errors on Id collisions. +func (m *resWrangler) ApplySmPatch( + selectedSet *resource.IdSet, patch *resource.Resource) error { + var list []*resource.Resource + for _, res := range m.rList { + if selectedSet.Contains(res.CurId()) { + patchCopy := patch.DeepCopy() + patchCopy.CopyMergeMetaDataFieldsFrom(patch) + patchCopy.SetGvk(res.GetGvk()) + patchCopy.SetKind(patch.GetKind()) + if err := res.ApplySmPatch(patchCopy); err != nil { + return err + } + } + if !res.IsEmpty() { + list = append(list, res) + } + } + m.Clear() + return m.appendAll(list) +} + +func (m *resWrangler) RemoveBuildAnnotations() { + for _, r := range m.rList { + r.RemoveBuildAnnotations() + } +} diff --git a/vendor/sigs.k8s.io/kustomize/api/resource/doc.go b/vendor/sigs.k8s.io/kustomize/api/resource/doc.go new file mode 100644 index 0000000000..32d34b1626 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/resource/doc.go @@ -0,0 +1,5 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package resource implements representations of k8s API resources. +package resource diff --git a/vendor/sigs.k8s.io/kustomize/api/resource/factory.go b/vendor/sigs.k8s.io/kustomize/api/resource/factory.go new file mode 100644 index 0000000000..a9a1006bc0 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/resource/factory.go @@ -0,0 +1,270 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package resource + +import ( + "encoding/json" + "fmt" + "log" + "strings" + + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/internal/generators" + "sigs.k8s.io/kustomize/api/internal/kusterr" + "sigs.k8s.io/kustomize/api/konfig" + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Factory makes instances of Resource. +type Factory struct { + hasher ifc.KustHasher +} + +// NewFactory makes an instance of Factory. +func NewFactory(h ifc.KustHasher) *Factory { + return &Factory{hasher: h} +} + +// Hasher returns an ifc.KustHasher +func (rf *Factory) Hasher() ifc.KustHasher { + return rf.hasher +} + +// FromMap returns a new instance of Resource. +func (rf *Factory) FromMap(m map[string]interface{}) *Resource { + return rf.FromMapAndOption(m, nil) +} + +// FromMapWithName returns a new instance with the given "original" name. +func (rf *Factory) FromMapWithName(n string, m map[string]interface{}) *Resource { + return rf.FromMapWithNamespaceAndName(resid.DefaultNamespace, n, m) +} + +// FromMapWithNamespaceAndName returns a new instance with the given "original" namespace. +func (rf *Factory) FromMapWithNamespaceAndName(ns string, n string, m map[string]interface{}) *Resource { + r := rf.FromMapAndOption(m, nil) + return r.setPreviousId(ns, n, r.GetKind()) +} + +// FromMapAndOption returns a new instance of Resource with given options. +func (rf *Factory) FromMapAndOption( + m map[string]interface{}, args *types.GeneratorArgs) *Resource { + n, err := yaml.FromMap(m) + if err != nil { + // TODO: return err instead of log. + log.Fatal(err) + } + return rf.makeOne(n, types.NewGenArgs(args)) +} + +// makeOne returns a new instance of Resource. +func (rf *Factory) makeOne(rn *yaml.RNode, o *types.GenArgs) *Resource { + if rn == nil { + log.Fatal("RNode must not be null") + } + if o == nil { + o = types.NewGenArgs(nil) + } + return &Resource{node: rn, options: o} +} + +// SliceFromPatches returns a slice of resources given a patch path +// slice from a kustomization file. +func (rf *Factory) SliceFromPatches( + ldr ifc.Loader, paths []types.PatchStrategicMerge) ([]*Resource, error) { + var result []*Resource + for _, path := range paths { + content, err := ldr.Load(string(path)) + if err != nil { + return nil, err + } + res, err := rf.SliceFromBytes(content) + if err != nil { + return nil, kusterr.Handler(err, string(path)) + } + result = append(result, res...) + } + return result, nil +} + +// FromBytes unmarshalls bytes into one Resource. +func (rf *Factory) FromBytes(in []byte) (*Resource, error) { + result, err := rf.SliceFromBytes(in) + if err != nil { + return nil, err + } + if len(result) != 1 { + return nil, fmt.Errorf( + "expected 1 resource, found %d in %v", len(result), in) + } + return result[0], nil +} + +// SliceFromBytes unmarshals bytes into a Resource slice. +func (rf *Factory) SliceFromBytes(in []byte) ([]*Resource, error) { + nodes, err := rf.RNodesFromBytes(in) + if err != nil { + return nil, err + } + return rf.resourcesFromRNodes(nodes), nil +} + +// ResourcesFromRNodes converts RNodes to Resources. +func (rf *Factory) ResourcesFromRNodes( + nodes []*yaml.RNode) (result []*Resource, err error) { + nodes, err = rf.dropBadNodes(nodes) + if err != nil { + return nil, err + } + return rf.resourcesFromRNodes(nodes), nil +} + +// resourcesFromRNode assumes all nodes are good. +func (rf *Factory) resourcesFromRNodes( + nodes []*yaml.RNode) (result []*Resource) { + for _, n := range nodes { + result = append(result, rf.makeOne(n, nil)) + } + return +} + +func (rf *Factory) RNodesFromBytes(b []byte) (result []*yaml.RNode, err error) { + nodes, err := kio.FromBytes(b) + if err != nil { + return nil, err + } + nodes, err = rf.dropBadNodes(nodes) + if err != nil { + return nil, err + } + for len(nodes) > 0 { + n0 := nodes[0] + nodes = nodes[1:] + kind := n0.GetKind() + if !strings.HasSuffix(kind, "List") { + result = append(result, n0) + continue + } + // Convert a FooList into a slice of Foo. + var m map[string]interface{} + m, err = n0.Map() + if err != nil { + return nil, err + } + items, ok := m["items"] + if !ok { + // treat as an empty list + continue + } + slice, ok := items.([]interface{}) + if !ok { + if items == nil { + // an empty list + continue + } + return nil, fmt.Errorf( + "expected array in %s/items, but found %T", kind, items) + } + innerNodes, err := rf.convertObjectSliceToNodeSlice(slice) + if err != nil { + return nil, err + } + nodes = append(nodes, innerNodes...) + } + return result, nil +} + +// convertObjectSlice converts a list of objects to a list of RNode. +func (rf *Factory) convertObjectSliceToNodeSlice( + objects []interface{}) (result []*yaml.RNode, err error) { + var bytes []byte + var nodes []*yaml.RNode + for _, obj := range objects { + bytes, err = json.Marshal(obj) + if err != nil { + return + } + nodes, err = kio.FromBytes(bytes) + if err != nil { + return + } + nodes, err = rf.dropBadNodes(nodes) + if err != nil { + return + } + result = append(result, nodes...) + } + return +} + +// dropBadNodes may drop some nodes from its input argument. +func (rf *Factory) dropBadNodes(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + var result []*yaml.RNode + for _, n := range nodes { + ignore, err := rf.shouldIgnore(n) + if err != nil { + return nil, err + } + if !ignore { + result = append(result, n) + } + } + return result, nil +} + +// shouldIgnore returns true if there's some reason to ignore the node. +func (rf *Factory) shouldIgnore(n *yaml.RNode) (bool, error) { + if n.IsNilOrEmpty() { + return true, nil + } + md, err := n.GetValidatedMetadata() + if err != nil { + return true, err + } + _, ignore := md.ObjectMeta.Annotations[konfig.IgnoredByKustomizeAnnotation] + if ignore { + return true, nil + } + if foundNil, path := n.HasNilEntryInList(); foundNil { + return true, fmt.Errorf("empty item at %v in object %v", path, n) + } + return false, nil +} + +// SliceFromBytesWithNames unmarshals bytes into a Resource slice with specified original +// name. +func (rf *Factory) SliceFromBytesWithNames(names []string, in []byte) ([]*Resource, error) { + result, err := rf.SliceFromBytes(in) + if err != nil { + return nil, err + } + if len(names) != len(result) { + return nil, fmt.Errorf("number of names doesn't match number of resources") + } + for i, res := range result { + res.setPreviousId(resid.DefaultNamespace, names[i], res.GetKind()) + } + return result, nil +} + +// MakeConfigMap makes an instance of Resource for ConfigMap +func (rf *Factory) MakeConfigMap(kvLdr ifc.KvLoader, args *types.ConfigMapArgs) (*Resource, error) { + rn, err := generators.MakeConfigMap(kvLdr, args) + if err != nil { + return nil, err + } + return rf.makeOne(rn, types.NewGenArgs(&args.GeneratorArgs)), nil +} + +// MakeSecret makes an instance of Resource for Secret +func (rf *Factory) MakeSecret(kvLdr ifc.KvLoader, args *types.SecretArgs) (*Resource, error) { + rn, err := generators.MakeSecret(kvLdr, args) + if err != nil { + return nil, err + } + return rf.makeOne(rn, types.NewGenArgs(&args.GeneratorArgs)), nil +} diff --git a/vendor/sigs.k8s.io/kustomize/api/resource/idset.go b/vendor/sigs.k8s.io/kustomize/api/resource/idset.go new file mode 100644 index 0000000000..eaa2533816 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/resource/idset.go @@ -0,0 +1,30 @@ +// Copyright 2020 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package resource + +import "sigs.k8s.io/kustomize/api/resid" + +type IdSet struct { + ids map[resid.ResId]bool +} + +func MakeIdSet(slice []*Resource) *IdSet { + set := make(map[resid.ResId]bool) + for _, r := range slice { + id := r.CurId() + if _, ok := set[id]; !ok { + set[id] = true + } + } + return &IdSet{ids: set} +} + +func (s IdSet) Contains(id resid.ResId) bool { + _, ok := s.ids[id] + return ok +} + +func (s IdSet) Size() int { + return len(s.ids) +} diff --git a/vendor/sigs.k8s.io/kustomize/api/resource/resource.go b/vendor/sigs.k8s.io/kustomize/api/resource/resource.go new file mode 100644 index 0000000000..f017798999 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/resource/resource.go @@ -0,0 +1,587 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package resource + +import ( + "errors" + "fmt" + "log" + "reflect" + "strings" + + "sigs.k8s.io/kustomize/api/filters/patchstrategicmerge" + "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/konfig" + "sigs.k8s.io/kustomize/api/resid" + "sigs.k8s.io/kustomize/api/types" + "sigs.k8s.io/kustomize/kyaml/kio" + kyaml "sigs.k8s.io/kustomize/kyaml/yaml" + "sigs.k8s.io/yaml" +) + +// Resource is an RNode, representing a Kubernetes Resource Model object, +// paired with metadata used by kustomize. +type Resource struct { + // TODO: Inline RNode, dropping complexity. Resource is just a decorator. + node *kyaml.RNode + options *types.GenArgs + refBy []resid.ResId + refVarNames []string +} + +const ( + buildAnnotationPreviousKinds = konfig.ConfigAnnoDomain + "/previousKinds" + buildAnnotationPreviousNames = konfig.ConfigAnnoDomain + "/previousNames" + buildAnnotationPrefixes = konfig.ConfigAnnoDomain + "/prefixes" + buildAnnotationSuffixes = konfig.ConfigAnnoDomain + "/suffixes" + buildAnnotationPreviousNamespaces = konfig.ConfigAnnoDomain + "/previousNamespaces" + + // the following are only for patches, to specify whether they can change names + // and kinds of their targets + buildAnnotationAllowNameChange = konfig.ConfigAnnoDomain + "/allowNameChange" + buildAnnotationAllowKindChange = konfig.ConfigAnnoDomain + "/allowKindChange" +) + +var buildAnnotations = []string{ + buildAnnotationPreviousKinds, + buildAnnotationPreviousNames, + buildAnnotationPrefixes, + buildAnnotationSuffixes, + buildAnnotationPreviousNamespaces, + buildAnnotationAllowNameChange, + buildAnnotationAllowKindChange, +} + +func (r *Resource) AsRNode() *kyaml.RNode { + return r.node.Copy() +} + +func (r *Resource) ResetPrimaryData(incoming *Resource) { + r.node = incoming.node.Copy() +} + +func (r *Resource) GetAnnotations() map[string]string { + annotations, err := r.node.GetAnnotations() + if err != nil || annotations == nil { + return make(map[string]string) + } + return annotations +} + +func (r *Resource) GetFieldValue(f string) (interface{}, error) { + //nolint:staticcheck + return r.node.GetFieldValue(f) +} + +func (r *Resource) GetDataMap() map[string]string { + return r.node.GetDataMap() +} + +func (r *Resource) GetBinaryDataMap() map[string]string { + return r.node.GetBinaryDataMap() +} + +func (r *Resource) GetGvk() resid.Gvk { + meta, err := r.node.GetMeta() + if err != nil { + return resid.GvkFromString("") + } + g, v := resid.ParseGroupVersion(meta.APIVersion) + return resid.Gvk{Group: g, Version: v, Kind: meta.Kind} +} + +func (r *Resource) Hash(h ifc.KustHasher) (string, error) { + return h.Hash(r.node) +} + +func (r *Resource) GetKind() string { + return r.node.GetKind() +} + +func (r *Resource) GetLabels() map[string]string { + l, err := r.node.GetLabels() + if err != nil { + return map[string]string{} + } + return l +} + +func (r *Resource) GetName() string { + return r.node.GetName() +} + +func (r *Resource) GetSlice(p string) ([]interface{}, error) { + //nolint:staticcheck + return r.node.GetSlice(p) +} + +func (r *Resource) GetString(p string) (string, error) { + //nolint:staticcheck + return r.node.GetString(p) +} + +func (r *Resource) IsEmpty() bool { + return r.node.IsNilOrEmpty() +} + +func (r *Resource) Map() (map[string]interface{}, error) { + return r.node.Map() +} + +func (r *Resource) MarshalJSON() ([]byte, error) { + return r.node.MarshalJSON() +} + +func (r *Resource) MatchesLabelSelector(selector string) (bool, error) { + return r.node.MatchesLabelSelector(selector) +} + +func (r *Resource) MatchesAnnotationSelector(selector string) (bool, error) { + return r.node.MatchesAnnotationSelector(selector) +} + +func (r *Resource) SetAnnotations(m map[string]string) { + if len(m) == 0 { + // Force field erasure. + r.node.SetAnnotations(nil) + return + } + r.node.SetAnnotations(m) +} + +func (r *Resource) SetDataMap(m map[string]string) { + r.node.SetDataMap(m) +} + +func (r *Resource) SetBinaryDataMap(m map[string]string) { + r.node.SetBinaryDataMap(m) +} + +func (r *Resource) SetGvk(gvk resid.Gvk) { + r.node.SetMapField( + kyaml.NewScalarRNode(gvk.Kind), kyaml.KindField) + r.node.SetMapField( + kyaml.NewScalarRNode(gvk.ApiVersion()), kyaml.APIVersionField) +} + +func (r *Resource) SetLabels(m map[string]string) { + if len(m) == 0 { + // Force field erasure. + r.node.SetLabels(nil) + return + } + r.node.SetLabels(m) +} + +func (r *Resource) SetName(n string) { + r.node.SetName(n) +} + +func (r *Resource) SetNamespace(n string) { + r.node.SetNamespace(n) +} + +func (r *Resource) SetKind(k string) { + gvk := r.GetGvk() + gvk.Kind = k + r.SetGvk(gvk) +} + +func (r *Resource) UnmarshalJSON(s []byte) error { + return r.node.UnmarshalJSON(s) +} + +// ResCtx is an interface describing the contextual added +// kept kustomize in the context of each Resource object. +// Currently mainly the name prefix and name suffix are added. +type ResCtx interface { + AddNamePrefix(p string) + AddNameSuffix(s string) + GetNamePrefixes() []string + GetNameSuffixes() []string +} + +// ResCtxMatcher returns true if two Resources are being +// modified in the same kustomize context. +type ResCtxMatcher func(ResCtx) bool + +// DeepCopy returns a new copy of resource +func (r *Resource) DeepCopy() *Resource { + rc := &Resource{ + node: r.node.Copy(), + } + rc.copyOtherFields(r) + return rc +} + +// CopyMergeMetaDataFields copies everything but the non-metadata in +// the resource. +func (r *Resource) CopyMergeMetaDataFieldsFrom(other *Resource) { + r.SetLabels(mergeStringMaps(other.GetLabels(), r.GetLabels())) + r.SetAnnotations( + mergeStringMaps(other.GetAnnotations(), r.GetAnnotations())) + r.SetName(other.GetName()) + r.SetNamespace(other.GetNamespace()) + r.copyOtherFields(other) +} + +func (r *Resource) copyOtherFields(other *Resource) { + r.options = other.options + r.refBy = other.copyRefBy() + r.refVarNames = copyStringSlice(other.refVarNames) +} + +func (r *Resource) MergeDataMapFrom(o *Resource) { + r.SetDataMap(mergeStringMaps(o.GetDataMap(), r.GetDataMap())) +} + +func (r *Resource) MergeBinaryDataMapFrom(o *Resource) { + r.SetBinaryDataMap(mergeStringMaps(o.GetBinaryDataMap(), r.GetBinaryDataMap())) +} + +func (r *Resource) ErrIfNotEquals(o *Resource) error { + meYaml, err := r.AsYAML() + if err != nil { + return err + } + otherYaml, err := o.AsYAML() + if err != nil { + return err + } + if !r.ReferencesEqual(o) { + return fmt.Errorf( + `unequal references - self: +%sreferenced by: %s +--- other: +%sreferenced by: %s +`, meYaml, r.GetRefBy(), otherYaml, o.GetRefBy()) + } + if string(meYaml) != string(otherYaml) { + return fmt.Errorf(`--- self: +%s +--- other: +%s +`, meYaml, otherYaml) + } + return nil +} + +func (r *Resource) ReferencesEqual(other *Resource) bool { + setSelf := make(map[resid.ResId]bool) + setOther := make(map[resid.ResId]bool) + for _, ref := range other.refBy { + setOther[ref] = true + } + for _, ref := range r.refBy { + if _, ok := setOther[ref]; !ok { + return false + } + setSelf[ref] = true + } + return len(setSelf) == len(setOther) +} + +// NodeEqual returns true if the resource's nodes are +// equal, ignoring ancillary information like genargs, refby, etc. +func (r *Resource) NodeEqual(o *Resource) bool { + return reflect.DeepEqual(r.node, o.node) +} + +func (r *Resource) copyRefBy() []resid.ResId { + if r.refBy == nil { + return nil + } + s := make([]resid.ResId, len(r.refBy)) + copy(s, r.refBy) + return s +} + +func copyStringSlice(s []string) []string { + if s == nil { + return nil + } + c := make([]string, len(s)) + copy(c, s) + return c +} + +// Implements ResCtx AddNamePrefix +func (r *Resource) AddNamePrefix(p string) { + r.appendCsvAnnotation(buildAnnotationPrefixes, p) +} + +// Implements ResCtx AddNameSuffix +func (r *Resource) AddNameSuffix(s string) { + r.appendCsvAnnotation(buildAnnotationSuffixes, s) +} + +func (r *Resource) appendCsvAnnotation(name, value string) { + if value == "" { + return + } + annotations := r.GetAnnotations() + if existing, ok := annotations[name]; ok { + annotations[name] = existing + "," + value + } else { + annotations[name] = value + } + r.SetAnnotations(annotations) +} + +func SameEndingSubarray(shortest, longest []string) bool { + if len(shortest) > len(longest) { + longest, shortest = shortest, longest + } + diff := len(longest) - len(shortest) + if len(shortest) == 0 { + return diff == 0 + } + for i := len(shortest) - 1; i >= 0; i-- { + if longest[i+diff] != shortest[i] { + return false + } + } + return true +} + +// Implements ResCtx GetNamePrefixes +func (r *Resource) GetNamePrefixes() []string { + return r.getCsvAnnotation(buildAnnotationPrefixes) +} + +// Implements ResCtx GetNameSuffixes +func (r *Resource) GetNameSuffixes() []string { + return r.getCsvAnnotation(buildAnnotationSuffixes) +} + +func (r *Resource) getCsvAnnotation(name string) []string { + annotations := r.GetAnnotations() + if _, ok := annotations[name]; !ok { + return nil + } + return strings.Split(annotations[name], ",") +} + +// PrefixesSuffixesEquals is conceptually doing the same task +// as OutermostPrefixSuffix but performs a deeper comparison +// of the suffix and prefix slices. +func (r *Resource) PrefixesSuffixesEquals(o ResCtx) bool { + return SameEndingSubarray(r.GetNamePrefixes(), o.GetNamePrefixes()) && SameEndingSubarray(r.GetNameSuffixes(), o.GetNameSuffixes()) +} + +// RemoveBuildAnnotations removes annotations created by the build process. +// These are internal-only to kustomize, added to the data pipeline to +// track name changes so name references can be fixed. +func (r *Resource) RemoveBuildAnnotations() { + annotations := r.GetAnnotations() + if len(annotations) == 0 { + return + } + for _, a := range buildAnnotations { + delete(annotations, a) + } + r.SetAnnotations(annotations) +} + +func (r *Resource) setPreviousId(ns string, n string, k string) *Resource { + r.appendCsvAnnotation(buildAnnotationPreviousNames, n) + r.appendCsvAnnotation(buildAnnotationPreviousNamespaces, ns) + r.appendCsvAnnotation(buildAnnotationPreviousKinds, k) + return r +} + +func (r *Resource) SetAllowNameChange(value string) { + annotations := r.GetAnnotations() + annotations[buildAnnotationAllowNameChange] = value + r.SetAnnotations(annotations) +} + +func (r *Resource) NameChangeAllowed() bool { + annotations := r.GetAnnotations() + if allowed, set := annotations[buildAnnotationAllowNameChange]; set && allowed == "true" { + return true + } + return false +} + +func (r *Resource) SetAllowKindChange(value string) { + annotations := r.GetAnnotations() + annotations[buildAnnotationAllowKindChange] = value + r.SetAnnotations(annotations) +} + +func (r *Resource) KindChangeAllowed() bool { + annotations := r.GetAnnotations() + if allowed, set := annotations[buildAnnotationAllowKindChange]; set && allowed == "true" { + return true + } + return false +} + +// String returns resource as JSON. +func (r *Resource) String() string { + bs, err := r.MarshalJSON() + if err != nil { + return "<" + err.Error() + ">" + } + return strings.TrimSpace(string(bs)) + r.options.String() +} + +// AsYAML returns the resource in Yaml form. +// Easier to read than JSON. +func (r *Resource) AsYAML() ([]byte, error) { + json, err := r.MarshalJSON() + if err != nil { + return nil, err + } + return yaml.JSONToYAML(json) +} + +// MustYaml returns YAML or panics. +func (r *Resource) MustYaml() string { + yml, err := r.AsYAML() + if err != nil { + log.Fatal(err) + } + return string(yml) +} + +// SetOptions updates the generator options for the resource. +func (r *Resource) SetOptions(o *types.GenArgs) { + r.options = o +} + +// Behavior returns the behavior for the resource. +func (r *Resource) Behavior() types.GenerationBehavior { + return r.options.Behavior() +} + +// NeedHashSuffix returns true if a resource content +// hash should be appended to the name of the resource. +func (r *Resource) NeedHashSuffix() bool { + return r.options != nil && r.options.ShouldAddHashSuffixToName() +} + +// GetNamespace returns the namespace the resource thinks it's in. +func (r *Resource) GetNamespace() string { + namespace, _ := r.GetString("metadata.namespace") + // if err, namespace is empty, so no need to check. + return namespace +} + +// OrgId returns the original, immutable ResId for the resource. +// This doesn't have to be unique in a ResMap. +func (r *Resource) OrgId() resid.ResId { + ids := r.PrevIds() + if len(ids) > 0 { + return ids[0] + } + return r.CurId() +} + +// PrevIds returns a list of ResIds that includes every +// previous ResId the resource has had through all of its +// GVKN transformations, in the order that it had that ID. +// I.e. the oldest ID is first. +// The returned array does not include the resource's current +// ID. If there are no previous IDs, this will return nil. +func (r *Resource) PrevIds() []resid.ResId { + var ids []resid.ResId + // TODO: merge previous names and namespaces into one list of + // pairs on one annotation so there is no chance of error + names := r.getCsvAnnotation(buildAnnotationPreviousNames) + ns := r.getCsvAnnotation(buildAnnotationPreviousNamespaces) + kinds := r.getCsvAnnotation(buildAnnotationPreviousKinds) + if len(names) != len(ns) || len(names) != len(kinds) { + panic(errors.New( + "number of previous names, " + + "number of previous namespaces, " + + "number of previous kinds not equal")) + } + for i := range names { + k := kinds[i] + gvk := r.GetGvk() + gvk.Kind = k + ids = append(ids, resid.NewResIdWithNamespace( + gvk, names[i], ns[i])) + } + return ids +} + +// StorePreviousId stores the resource's current ID via build annotations. +func (r *Resource) StorePreviousId() { + id := r.CurId() + r.setPreviousId(id.EffectiveNamespace(), id.Name, id.Kind) +} + +// CurId returns a ResId for the resource using the +// mutable parts of the resource. +// This should be unique in any ResMap. +func (r *Resource) CurId() resid.ResId { + return resid.NewResIdWithNamespace( + r.GetGvk(), r.GetName(), r.GetNamespace()) +} + +// GetRefBy returns the ResIds that referred to current resource +func (r *Resource) GetRefBy() []resid.ResId { + return r.refBy +} + +// AppendRefBy appends a ResId into the refBy list +func (r *Resource) AppendRefBy(id resid.ResId) { + r.refBy = append(r.refBy, id) +} + +// GetRefVarNames returns vars that refer to current resource +func (r *Resource) GetRefVarNames() []string { + return r.refVarNames +} + +// AppendRefVarName appends a name of a var into the refVar list +func (r *Resource) AppendRefVarName(variable types.Var) { + r.refVarNames = append(r.refVarNames, variable.Name) +} + +// ApplySmPatch applies the provided strategic merge patch. +func (r *Resource) ApplySmPatch(patch *Resource) error { + n, ns, k := r.GetName(), r.GetNamespace(), r.GetKind() + if patch.NameChangeAllowed() || patch.KindChangeAllowed() { + r.StorePreviousId() + } + if err := r.ApplyFilter(patchstrategicmerge.Filter{ + Patch: patch.node, + }); err != nil { + return err + } + if r.IsEmpty() { + return nil + } + if !patch.KindChangeAllowed() { + r.SetKind(k) + } + if !patch.NameChangeAllowed() { + r.SetName(n) + } + r.SetNamespace(ns) + return nil +} + +func (r *Resource) ApplyFilter(f kio.Filter) error { + l, err := f.Filter([]*kyaml.RNode{r.node}) + if len(l) == 0 { + // The node was deleted. The following makes r.IsEmpty() true. + r.node = nil + } + return err +} + +func mergeStringMaps(maps ...map[string]string) map[string]string { + result := map[string]string{} + for _, m := range maps { + for key, value := range m { + result[key] = value + } + } + return result +} diff --git a/vendor/sigs.k8s.io/kustomize/api/types/errunabletofind.go b/vendor/sigs.k8s.io/kustomize/api/types/errunabletofind.go index a39e9a3854..f95b8edd5a 100644 --- a/vendor/sigs.k8s.io/kustomize/api/types/errunabletofind.go +++ b/vendor/sigs.k8s.io/kustomize/api/types/errunabletofind.go @@ -23,7 +23,7 @@ func (e *errUnableToFind) Error() string { m = append(m, "('"+p.Value+"'; "+p.Key+")") } return fmt.Sprintf( - "unable to find plugin root - tried: %s", strings.Join(m, ", ")) + "unable to find %s - tried: %s", e.what, strings.Join(m, ", ")) } func NewErrUnableToFind(w string, a []Pair) *errUnableToFind { diff --git a/vendor/sigs.k8s.io/kustomize/api/types/fieldspec.go b/vendor/sigs.k8s.io/kustomize/api/types/fieldspec.go index e5836aa1c6..0bee70256b 100644 --- a/vendor/sigs.k8s.io/kustomize/api/types/fieldspec.go +++ b/vendor/sigs.k8s.io/kustomize/api/types/fieldspec.go @@ -5,13 +5,11 @@ package types import ( "fmt" - "strings" "sigs.k8s.io/kustomize/api/resid" ) -// FieldSpec completely specifies a kustomizable field in -// an unstructured representation of a k8s API object. +// FieldSpec completely specifies a kustomizable field in a k8s API object. // It helps define the operands of transformations. // // For example, a directive to add a common label to objects @@ -34,11 +32,6 @@ type FieldSpec struct { CreateIfNotPresent bool `json:"create,omitempty" yaml:"create,omitempty"` } -const ( - escapedForwardSlash = "\\/" - tempSlashReplacement = "???" -) - func (fs FieldSpec) String() string { return fmt.Sprintf( "%s:%v:%s", fs.Gvk.String(), fs.CreateIfNotPresent, fs.Path) @@ -49,34 +42,6 @@ func (fs FieldSpec) effectivelyEquals(other FieldSpec) bool { return fs.IsSelected(&other.Gvk) && fs.Path == other.Path } -// PathSlice converts the path string to a slice of strings, -// separated by a '/'. Forward slash can be contained in a -// fieldname. such as ingress.kubernetes.io/auth-secret in -// Ingress annotations. To deal with this special case, the -// path to this field should be formatted as -// -// metadata/annotations/ingress.kubernetes.io\/auth-secret -// -// Then PathSlice will return -// -// []string{ -// "metadata", -// "annotations", -// "ingress.auth-secretkubernetes.io/auth-secret" -// } -func (fs FieldSpec) PathSlice() []string { - if !strings.Contains(fs.Path, escapedForwardSlash) { - return strings.Split(fs.Path, "/") - } - s := strings.Replace(fs.Path, escapedForwardSlash, tempSlashReplacement, -1) - paths := strings.Split(s, "/") - var result []string - for _, path := range paths { - result = append(result, strings.Replace(path, tempSlashReplacement, "/", -1)) - } - return result -} - type FsSlice []FieldSpec func (s FsSlice) Len() int { return len(s) } diff --git a/vendor/sigs.k8s.io/kustomize/api/types/helmchartargs.go b/vendor/sigs.k8s.io/kustomize/api/types/helmchartargs.go index 5703720837..7bb22f2e41 100644 --- a/vendor/sigs.k8s.io/kustomize/api/types/helmchartargs.go +++ b/vendor/sigs.k8s.io/kustomize/api/types/helmchartargs.go @@ -3,14 +3,77 @@ package types -// HelmChartArgs contains the metadata of how to generate a secret. +type HelmGlobals struct { + // ChartHome is a file path, relative to the kustomization root, + // to a directory containing a subdirectory for each chart to be + // included in the kustomization. + // The default value of this field is "charts". + // So, for example, kustomize looks for the minecraft chart + // at {kustomizationRoot}/{ChartHome}/minecraft. + // If the chart is there at build time, kustomize will use it as found, + // and not check version numbers or dates. + // If the chart is not there, kustomize will attempt to pull it + // using the version number specified in the kustomization file, + // and put it there. To suppress the pull attempt, simply assure + // that the chart is already there. + ChartHome string `json:"chartHome,omitempty" yaml:"chartHome,omitempty"` + + // ConfigHome defines a value that kustomize should pass to helm via + // the HELM_CONFIG_HOME environment variable. kustomize doesn't attempt + // to read or write this directory. + // If omitted, {tmpDir}/helm is used, where {tmpDir} is some temporary + // directory created by kustomize for the benefit of helm. + // Likewise, kustomize sets + // HELM_CACHE_HOME={ConfigHome}/.cache + // HELM_DATA_HOME={ConfigHome}/.data + // for the helm subprocess. + ConfigHome string `json:"configHome,omitempty" yaml:"configHome,omitempty"` +} + +type HelmChart struct { + // Name is the name of the chart, e.g. 'minecraft'. + Name string `json:"name,omitempty" yaml:"name,omitempty"` + + // Version is the version of the chart, e.g. '3.1.3' + Version string `json:"version,omitempty" yaml:"version,omitempty"` + + // Repo is a URL locating the chart on the internet. + // This is the argument to helm's `--repo` flag, e.g. + // `https://itzg.github.io/minecraft-server-charts`. + Repo string `json:"repo,omitempty" yaml:"repo,omitempty"` + + // ReleaseName replaces RELEASE-NAME in chart template output, + // making a particular inflation of a chart unique with respect to + // other inflations of the same chart in a cluster. It's the first + // argument to the helm `install` and `template` commands, i.e. + // helm install {RELEASE-NAME} {chartName} + // helm template {RELEASE-NAME} {chartName} + // If omitted, the flag --generate-name is passed to 'helm template'. + ReleaseName string `json:"releaseName,omitempty" yaml:"releaseName,omitempty"` + + // ValuesFile is local file path to a values file to use _instead of_ + // the default values that accompanied the chart. + // The default values are in '{ChartHome}/{Name}/values.yaml'. + ValuesFile string `json:"valuesFile,omitempty" yaml:"valuesFile,omitempty"` + + // ValuesInline holds value mappings specified directly, + // rather than in a separate file. + ValuesInline map[string]interface{} `json:"valuesInline,omitempty" yaml:"valuesInline,omitempty"` + + // ValuesMerge specifies how to treat ValuesInline with respect to Values. + // Legal values: 'merge', 'override', 'replace'. + // Defaults to 'override'. + ValuesMerge string `json:"valuesMerge,omitempty" yaml:"valuesMerge,omitempty"` +} + +// HelmChartArgs contains arguments to helm. +// Deprecated. Use HelmGlobals and HelmChart instead. type HelmChartArgs struct { - ChartName string `json:"chartName,omitempty" yaml:"chartName,omitempty"` - ChartVersion string `json:"chartVersion,omitempty" yaml:"chartVersion,omitempty"` - ChartRepoURL string `json:"chartRepoUrl,omitempty" yaml:"chartRepoUrl,omitempty"` - ChartHome string `json:"chartHome,omitempty" yaml:"chartHome,omitempty"` - // Use chartRelease to keep compatible with old exec plugin - ChartRepoName string `json:"chartRelease,omitempty" yaml:"chartRelease,omitempty"` + ChartName string `json:"chartName,omitempty" yaml:"chartName,omitempty"` + ChartVersion string `json:"chartVersion,omitempty" yaml:"chartVersion,omitempty"` + ChartRepoURL string `json:"chartRepoUrl,omitempty" yaml:"chartRepoUrl,omitempty"` + ChartHome string `json:"chartHome,omitempty" yaml:"chartHome,omitempty"` + ChartRepoName string `json:"chartRepoName,omitempty" yaml:"chartRepoName,omitempty"` HelmBin string `json:"helmBin,omitempty" yaml:"helmBin,omitempty"` HelmHome string `json:"helmHome,omitempty" yaml:"helmHome,omitempty"` Values string `json:"values,omitempty" yaml:"values,omitempty"` @@ -20,3 +83,32 @@ type HelmChartArgs struct { ReleaseNamespace string `json:"releaseNamespace,omitempty" yaml:"releaseNamespace,omitempty"` ExtraArgs []string `json:"extraArgs,omitempty" yaml:"extraArgs,omitempty"` } + +// SplitHelmParameters splits helm parameters into +// per-chart params and global chart-independent parameters. +func SplitHelmParameters( + oldArgs []HelmChartArgs) (charts []HelmChart, globals HelmGlobals) { + for _, old := range oldArgs { + charts = append(charts, makeHelmChartFromHca(&old)) + if old.HelmHome != "" { + // last non-empty wins + globals.ConfigHome = old.HelmHome + } + if old.ChartHome != "" { + // last non-empty wins + globals.ChartHome = old.ChartHome + } + } + return charts, globals +} + +func makeHelmChartFromHca(old *HelmChartArgs) (c HelmChart) { + c.Name = old.ChartName + c.Version = old.ChartVersion + c.Repo = old.ChartRepoURL + c.ValuesFile = old.Values + c.ValuesInline = old.ValuesLocal + c.ValuesMerge = old.ValuesMerge + c.ReleaseName = old.ReleaseName + return +} diff --git a/vendor/sigs.k8s.io/kustomize/api/types/kustomization.go b/vendor/sigs.k8s.io/kustomize/api/types/kustomization.go index b290da35cd..9c555a860e 100644 --- a/vendor/sigs.k8s.io/kustomize/api/types/kustomization.go +++ b/vendor/sigs.k8s.io/kustomize/api/types/kustomization.go @@ -6,6 +6,7 @@ package types import ( "bytes" "encoding/json" + "fmt" "sigs.k8s.io/yaml" ) @@ -25,6 +26,9 @@ type Kustomization struct { // MetaData is a pointer to avoid marshalling empty struct MetaData *ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty"` + // OpenAPI contains information about what kubernetes schema to use. + OpenAPI map[string]string `json:"openapi,omitempty" yaml:"openapi,omitempty"` + // // Operators - what kustomize can do. // @@ -43,6 +47,9 @@ type Kustomization struct { // CommonLabels to add to all objects and selectors. CommonLabels map[string]string `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"` + // Labels to add to all objects but not selectors. + Labels []Label `json:"labels,omitempty" yaml:"labels,omitempty"` + // CommonAnnotations to add to all objects. CommonAnnotations map[string]string `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"` @@ -122,9 +129,14 @@ type Kustomization struct { // the map will have a suffix hash generated from its contents. SecretGenerator []SecretArgs `json:"secretGenerator,omitempty" yaml:"secretGenerator,omitempty"` + // HelmGlobals contains helm configuration that isn't chart specific. + HelmGlobals *HelmGlobals `json:"helmGlobals,omitempty" yaml:"helmGlobals,omitempty"` + + // HelmCharts is a list of helm chart configuration instances. + HelmCharts []HelmChart `json:"helmCharts,omitempty" yaml:"helmCharts,omitempty"` + // HelmChartInflationGenerator is a list of helm chart configurations. - // The resulting resource is a normal operand rendered from - // a remote chart by `helm template` + // Deprecated. Auto-converted to HelmGlobals and HelmCharts. HelmChartInflationGenerator []HelmChartArgs `json:"helmChartInflationGenerator,omitempty" yaml:"helmChartInflationGenerator,omitempty"` // GeneratorOptions modify behavior of all ConfigMap and Secret generators. @@ -152,7 +164,6 @@ type Kustomization struct { // moving content of deprecated fields to newer // fields. func (k *Kustomization) FixKustomizationPostUnmarshalling() { - if k.Kind == "" { k.Kind = KustomizationKind } @@ -165,15 +176,56 @@ func (k *Kustomization) FixKustomizationPostUnmarshalling() { } k.Resources = append(k.Resources, k.Bases...) k.Bases = nil + for i, g := range k.ConfigMapGenerator { + if g.EnvSource != "" { + k.ConfigMapGenerator[i].EnvSources = + append(g.EnvSources, g.EnvSource) + k.ConfigMapGenerator[i].EnvSource = "" + } + } + for i, g := range k.SecretGenerator { + if g.EnvSource != "" { + k.SecretGenerator[i].EnvSources = + append(g.EnvSources, g.EnvSource) + k.SecretGenerator[i].EnvSource = "" + } + } + charts, globals := SplitHelmParameters(k.HelmChartInflationGenerator) + if k.HelmGlobals == nil { + if globals.ChartHome != "" || globals.ConfigHome != "" { + k.HelmGlobals = &globals + } + } + k.HelmCharts = append(k.HelmCharts, charts...) + // Wipe it for the fix command. + k.HelmChartInflationGenerator = nil } // FixKustomizationPreMarshalling fixes things // that should occur after the kustomization file // has been processed. -func (k *Kustomization) FixKustomizationPreMarshalling() { +func (k *Kustomization) FixKustomizationPreMarshalling() error { // PatchesJson6902 should be under the Patches field. k.Patches = append(k.Patches, k.PatchesJson6902...) k.PatchesJson6902 = nil + + // this fix is not in FixKustomizationPostUnmarshalling because + // it will break some commands like `create` and `add`. those + // commands depend on 'commonLabels' field + if cl := labelFromCommonLabels(k.CommonLabels); cl != nil { + // check conflicts between commonLabels and labels + for _, l := range k.Labels { + for k := range l.Pairs { + if _, exist := cl.Pairs[k]; exist { + return fmt.Errorf("label name '%s' exists in both commonLabels and labels", k) + } + } + } + k.Labels = append(k.Labels, *cl) + k.CommonLabels = nil + } + + return nil } func (k *Kustomization) EnforceFields() []string { diff --git a/vendor/sigs.k8s.io/kustomize/api/types/kvpairsources.go b/vendor/sigs.k8s.io/kustomize/api/types/kvpairsources.go index 61252c0648..9898defade 100644 --- a/vendor/sigs.k8s.io/kustomize/api/types/kvpairsources.go +++ b/vendor/sigs.k8s.io/kustomize/api/types/kvpairsources.go @@ -28,4 +28,9 @@ type KvPairSources struct { // or npm ".env" file or a ".ini" file // (wikipedia.org/wiki/INI_file) EnvSources []string `json:"envs,omitempty" yaml:"envs,omitempty"` + + // Older, singular form of EnvSources. + // On edits (e.g. `kustomize fix`) this is merged into the plural form + // for consistency with LiteralSources and FileSources. + EnvSource string `json:"env,omitempty" yaml:"env,omitempty"` } diff --git a/vendor/sigs.k8s.io/kustomize/api/types/labels.go b/vendor/sigs.k8s.io/kustomize/api/types/labels.go new file mode 100644 index 0000000000..e2a2aee789 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/api/types/labels.go @@ -0,0 +1,25 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package types + +type Label struct { + // Pairs contains the key-value pairs for labels to add + Pairs map[string]string `json:"pairs,omitempty" yaml:"pairs,omitempty"` + // IncludeSelectors inidicates should transformer include the + // fieldSpecs for selectors. Custom fieldSpecs specified by + // FieldSpecs will be merged with builtin fieldSpecs if this + // is true. + IncludeSelectors bool `json:"includeSelectors,omitempty" yaml:"includeSelectors,omitempty"` + FieldSpecs []FieldSpec `json:"fields,omitempty" yaml:"fields,omitempty"` +} + +func labelFromCommonLabels(commonLabels map[string]string) *Label { + if len(commonLabels) == 0 { + return nil + } + return &Label{ + Pairs: commonLabels, + IncludeSelectors: true, + } +} diff --git a/vendor/sigs.k8s.io/kustomize/api/types/patch.go b/vendor/sigs.k8s.io/kustomize/api/types/patch.go index 48b521d7e8..5310a6e66d 100644 --- a/vendor/sigs.k8s.io/kustomize/api/types/patch.go +++ b/vendor/sigs.k8s.io/kustomize/api/types/patch.go @@ -3,6 +3,8 @@ package types +import "reflect" + // Patch represent either a Strategic Merge Patch or a JSON patch // and its targets. // The content of the patch can either be from a file @@ -16,6 +18,9 @@ type Patch struct { // Target points to the resources that the patch is applied to Target *Selector `json:"target,omitempty" yaml:"target,omitempty"` + + // Options is a list of options for the patch + Options map[string]bool `json:"options,omitempty" yaml:"options,omitempty"` } // Equals return true if p equals o. @@ -24,5 +29,6 @@ func (p *Patch) Equals(o Patch) bool { (p.Target != nil && o.Target != nil && *p.Target == *o.Target) return p.Path == o.Path && p.Patch == o.Patch && - targetEqual + targetEqual && + reflect.DeepEqual(p.Options, o.Options) } diff --git a/vendor/sigs.k8s.io/kustomize/api/types/pluginconfig.go b/vendor/sigs.k8s.io/kustomize/api/types/pluginconfig.go index 2756f98268..741e5debc4 100644 --- a/vendor/sigs.k8s.io/kustomize/api/types/pluginconfig.go +++ b/vendor/sigs.k8s.io/kustomize/api/types/pluginconfig.go @@ -3,27 +3,13 @@ package types +type HelmConfig struct { + Enabled bool + Command string +} + // PluginConfig holds plugin configuration. type PluginConfig struct { - // AbsPluginHome is the home of kustomize plugins. - // Kustomize plugin configuration files are k8s-style objects - // containing the fields 'apiVersion' and 'kind', e.g. - // apiVersion: apps/v1 - // kind: Deployment - // kustomize reads plugin configuration data from a file path - // specified in the 'generators:' or 'transformers:' field of a - // kustomization file. kustomize must then use this data to both - // locate the plugin and configure it. - // Every kustomize plugin (its code, its tests, its supporting data - // files, etc.) must be housed in its own directory at - // ${AbsPluginHome}/${pluginApiVersion}/LOWERCASE(${pluginKind}) - // where - // - ${AbsPluginHome} is an absolute path, defined below. - // - ${pluginApiVersion} is taken from the plugin config file. - // - ${pluginKind} is taken from the plugin config file. - // The value of AbsPluginHome can be any absolute path. - AbsPluginHome string - // PluginRestrictions distinguishes plugin restrictions. PluginRestrictions PluginRestrictions @@ -32,4 +18,30 @@ type PluginConfig struct { // FnpLoadingOptions sets the way function-based plugin behaviors. FnpLoadingOptions FnPluginLoadingOptions + + // HelmConfig contains metadata needed for allowing and running helm. + HelmConfig HelmConfig +} + +func EnabledPluginConfig(b BuiltinPluginLoadingOptions) (pc *PluginConfig) { + pc = MakePluginConfig(PluginRestrictionsNone, b) + pc.FnpLoadingOptions.EnableStar = true + pc.HelmConfig.Enabled = true + // If this command is not on PATH, tests needing it should skip. + pc.HelmConfig.Command = "helmV3" + return +} + +func DisabledPluginConfig() *PluginConfig { + return MakePluginConfig( + PluginRestrictionsBuiltinsOnly, + BploUseStaticallyLinked) +} + +func MakePluginConfig(pr PluginRestrictions, + b BuiltinPluginLoadingOptions) *PluginConfig { + return &PluginConfig{ + PluginRestrictions: pr, + BpLoadingOptions: b, + } } diff --git a/vendor/sigs.k8s.io/kustomize/api/types/replacement.go b/vendor/sigs.k8s.io/kustomize/api/types/replacement.go index 57c2507ada..41bd848a34 100644 --- a/vendor/sigs.k8s.io/kustomize/api/types/replacement.go +++ b/vendor/sigs.k8s.io/kustomize/api/types/replacement.go @@ -1,27 +1,59 @@ -// Copyright 2019 The Kubernetes Authors. +// Copyright 2021 The Kubernetes Authors. // SPDX-License-Identifier: Apache-2.0 package types +const DefaultReplacementFieldPath = "metadata.name" + // Replacement defines how to perform a substitution // where it is from and where it is to. type Replacement struct { - Source *ReplSource `json:"source" yaml:"source"` - Target *ReplTarget `json:"target" yaml:"target"` + // The source of the value. + Source *SourceSelector `json:"source" yaml:"source"` + + // The N fields to write the value to. + Targets []*TargetSelector `json:"targets" yaml:"targets"` +} + +// SourceSelector is the source of the replacement transformer. +type SourceSelector struct { + // A specific object to read it from. + KrmId `json:",inline,omitempty" yaml:",inline,omitempty"` + + // Structured field path expected in the allowed object. + FieldPath string `json:"fieldPath" yaml:"fieldPath"` + + // Used to refine the interpretation of the field. + Options *FieldOptions `json:"options" yaml:"options"` } -// ReplSource defines where a substitution is from -// It can from two different kinds of sources -// - from a field of one resource -// - from a string -type ReplSource struct { - ObjRef *Target `json:"objref,omitempty" yaml:"objref,omitempty"` - FieldRef string `json:"fieldref,omitempty" yaml:"fiedldref,omitempty"` - Value string `json:"value,omitempty" yaml:"value,omitempty"` +// TargetSelector specifies fields in one or more objects. +type TargetSelector struct { + // Include objects that match this. + Select *Selector `json:"select" yaml:"select"` + + // From the allowed set, remove objects that match this. + Reject []*Selector `json:"reject" yaml:"reject"` + + // Structured field paths expected in each allowed object. + FieldPaths []string `json:"fieldPaths" yaml:"fieldPaths"` + + // Used to refine the interpretation of the field. + Options *FieldOptions `json:"options" yaml:"options"` } -// ReplTarget defines where a substitution is to. -type ReplTarget struct { - ObjRef *Selector `json:"objref,omitempty" yaml:"objref,omitempty"` - FieldRefs []string `json:"fieldrefs,omitempty" yaml:"fieldrefs,omitempty"` +// FieldOptions refine the interpretation of FieldPaths. +type FieldOptions struct { + // Used to split/join the field. + Delimiter string `json:"delimiter" yaml:"delimiter"` + + // Which position in the split to consider. + Index int `json:"index" yaml:"index"` + + // TODO (#3492): Implement use of this option + // None, Base64, URL, Hex, etc + Encoding string `json:"encoding" yaml:"encoding"` + + // If field missing, add it. + Create bool `json:"create" yaml:"create"` } diff --git a/vendor/sigs.k8s.io/kustomize/api/types/selector.go b/vendor/sigs.k8s.io/kustomize/api/types/selector.go index 007b508f13..4b7295c6a7 100644 --- a/vendor/sigs.k8s.io/kustomize/api/types/selector.go +++ b/vendor/sigs.k8s.io/kustomize/api/types/selector.go @@ -13,9 +13,8 @@ import ( // Any resource that matches intersection of all conditions // is included in this set. type Selector struct { - resid.Gvk `json:",inline,omitempty" yaml:",inline,omitempty"` - Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` - Name string `json:"name,omitempty" yaml:"name,omitempty"` + // KrmId refers to a GVKN/Ns of a resource. + KrmId `json:",inline,omitempty" yaml:",inline,omitempty"` // AnnotationSelector is a string that follows the label selection expression // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api @@ -28,6 +27,23 @@ type Selector struct { LabelSelector string `json:"labelSelector,omitempty" yaml:"labelSelector,omitempty"` } +// KrmId refers to a GVKN/Ns of a resource. +type KrmId struct { + resid.Gvk `json:",inline,omitempty" yaml:",inline,omitempty"` + Name string `json:"name,omitempty" yaml:"name,omitempty"` + Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` +} + +// Match returns true if id selects other, i.e. id's fields +// either match other's or are empty +func (id *KrmId) Match(other *KrmId) bool { + return (id.Group == "" || id.Group == other.Group) && + (id.Version == "" || id.Version == other.Version) && + (id.Kind == "" || id.Kind == other.Kind) && + (id.Name == "" || id.Name == other.Name) && + (id.Namespace == "" || id.Namespace == other.Namespace) +} + // SelectorRegex is a Selector with regex in GVK // Any resource that matches intersection of all conditions // is included in this set. diff --git a/vendor/sigs.k8s.io/kustomize/api/types/var.go b/vendor/sigs.k8s.io/kustomize/api/types/var.go index f636d0d35b..a953151667 100644 --- a/vendor/sigs.k8s.io/kustomize/api/types/var.go +++ b/vendor/sigs.k8s.io/kustomize/api/types/var.go @@ -12,8 +12,6 @@ import ( "sigs.k8s.io/kustomize/api/resid" ) -const defaultFieldPath = "metadata.name" - // Var represents a variable whose value will be sourced // from a field in a Kubernetes object. type Var struct { @@ -71,7 +69,7 @@ type FieldSelector struct { // defaulting sets reference to field used by default. func (v *Var) Defaulting() { if v.FieldRef.FieldPath == "" { - v.FieldRef.FieldPath = defaultFieldPath + v.FieldRef.FieldPath = DefaultReplacementFieldPath } v.ObjRef.GVK() } diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/comments/comments.go b/vendor/sigs.k8s.io/kustomize/kyaml/comments/comments.go new file mode 100644 index 0000000000..9d6dc22dc4 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/comments/comments.go @@ -0,0 +1,78 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package comments + +import ( + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/kustomize/kyaml/yaml" + "sigs.k8s.io/kustomize/kyaml/yaml/walk" +) + +// CopyComments recursively copies the comments on fields in from to fields in to +func CopyComments(from, to *yaml.RNode) error { + copy(from, to) + // walk the fields copying comments + _, err := walk.Walker{ + Sources: []*yaml.RNode{from, to}, + Visitor: &copier{}, + VisitKeysAsScalars: true}.Walk() + return err +} + +// copier implements walk.Visitor, and copies comments to fields shared between 2 instances +// of a resource +type copier struct{} + +func (c *copier) VisitMap(s walk.Sources, _ *openapi.ResourceSchema) (*yaml.RNode, error) { + copy(s.Dest(), s.Origin()) + return s.Dest(), nil +} + +func (c *copier) VisitScalar(s walk.Sources, _ *openapi.ResourceSchema) (*yaml.RNode, error) { + to := s.Origin() + // TODO: File a bug with upstream yaml to handle comments for FoldedStyle scalar nodes + // Hack: convert FoldedStyle scalar node to DoubleQuotedStyle as the line comments are + // being serialized without space + // https://github.com/GoogleContainerTools/kpt/issues/766 + if to != nil && to.Document().Style == yaml.FoldedStyle { + to.Document().Style = yaml.DoubleQuotedStyle + } + + copy(s.Dest(), to) + return s.Dest(), nil +} + +func (c *copier) VisitList(s walk.Sources, _ *openapi.ResourceSchema, _ walk.ListKind) ( + *yaml.RNode, error) { + copy(s.Dest(), s.Origin()) + destItems := s.Dest().Content() + originItems := s.Origin().Content() + + for i := 0; i < len(destItems) && i < len(originItems); i++ { + dest := destItems[i] + origin := originItems[i] + + if dest.Value == origin.Value { + copy(yaml.NewRNode(dest), yaml.NewRNode(origin)) + } + } + + return s.Dest(), nil +} + +// copy copies the comment from one field to another +func copy(from, to *yaml.RNode) { + if from == nil || to == nil { + return + } + if to.Document().LineComment == "" { + to.Document().LineComment = from.Document().LineComment + } + if to.Document().HeadComment == "" { + to.Document().HeadComment = from.Document().HeadComment + } + if to.Document().FootComment == "" { + to.Document().FootComment = from.Document().FootComment + } +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/ext/ext.go b/vendor/sigs.k8s.io/kustomize/kyaml/ext/ext.go new file mode 100644 index 0000000000..c946577cce --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/ext/ext.go @@ -0,0 +1,10 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package ext + +// IgnoreFileName returns the name for ignore files in +// packages. It can be overridden by tools using this library. +var IgnoreFileName = func() string { + return ".krmignore" +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/fieldmeta/fieldmeta.go b/vendor/sigs.k8s.io/kustomize/kyaml/fieldmeta/fieldmeta.go new file mode 100644 index 0000000000..83fdff3d5b --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/fieldmeta/fieldmeta.go @@ -0,0 +1,275 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package fieldmeta + +import ( + "encoding/json" + "fmt" + "reflect" + "strconv" + "strings" + + "github.com/go-openapi/spec" + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// FieldMeta contains metadata that may be attached to fields as comments +type FieldMeta struct { + Schema spec.Schema + + Extensions XKustomize + + SettersSchema *spec.Schema +} + +type XKustomize struct { + SetBy string `yaml:"setBy,omitempty" json:"setBy,omitempty"` + PartialFieldSetters []PartialFieldSetter `yaml:"partialSetters,omitempty" json:"partialSetters,omitempty"` + FieldSetter *PartialFieldSetter `yaml:"setter,omitempty" json:"setter,omitempty"` +} + +// PartialFieldSetter defines how to set part of a field rather than the full field +// value. e.g. the tag part of an image field +type PartialFieldSetter struct { + // Name is the name of this setter. + Name string `yaml:"name" json:"name"` + + // Value is the current value that has been set. + Value string `yaml:"value" json:"value"` +} + +// IsEmpty returns true if the FieldMeta has any empty Schema +func (fm *FieldMeta) IsEmpty() bool { + if fm == nil { + return true + } + return reflect.DeepEqual(fm.Schema, spec.Schema{}) +} + +// Read reads the FieldMeta from a node +func (fm *FieldMeta) Read(n *yaml.RNode) error { + // check for metadata on head and line comments + comments := []string{n.YNode().LineComment, n.YNode().HeadComment} + for _, c := range comments { + if c == "" { + continue + } + c := strings.TrimLeft(c, "#") + + // check for new short hand notation or fall back to openAPI ref format + if !fm.processShortHand(c) { + // if it doesn't Unmarshal that is fine, it means there is no metadata + // other comments are valid, they just don't parse + // TODO: consider more sophisticated parsing techniques similar to what is used + // for go struct tags. + if err := fm.Schema.UnmarshalJSON([]byte(c)); err != nil { + // note: don't return an error if the comment isn't a fieldmeta struct + return nil + } + } + fe := fm.Schema.VendorExtensible.Extensions["x-kustomize"] + if fe == nil { + return nil + } + b, err := json.Marshal(fe) + if err != nil { + return errors.Wrap(err) + } + return json.Unmarshal(b, &fm.Extensions) + } + return nil +} + +// processShortHand parses the comment for short hand ref, loads schema to fm +// and returns true if successful, returns false for any other cases and not throw +// error, as the comment might not be a setter ref +func (fm *FieldMeta) processShortHand(comment string) bool { + input := map[string]string{} + err := json.Unmarshal([]byte(comment), &input) + if err != nil { + return false + } + name := input[shortHandRef] + if name == "" { + return false + } + + // check if setter with the name exists, else check for a substitution + // setter and substitution can't have same name in shorthand + + setterRef, err := spec.NewRef(DefinitionsPrefix + SetterDefinitionPrefix + name) + if err != nil { + return false + } + + setterRefBytes, err := setterRef.MarshalJSON() + if err != nil { + return false + } + + if _, err := openapi.Resolve(&setterRef, fm.SettersSchema); err == nil { + setterErr := fm.Schema.UnmarshalJSON(setterRefBytes) + return setterErr == nil + } + + substRef, err := spec.NewRef(DefinitionsPrefix + SubstitutionDefinitionPrefix + name) + if err != nil { + return false + } + + substRefBytes, err := substRef.MarshalJSON() + if err != nil { + return false + } + + if _, err := openapi.Resolve(&substRef, fm.SettersSchema); err == nil { + substErr := fm.Schema.UnmarshalJSON(substRefBytes) + return substErr == nil + } + return false +} + +func isExtensionEmpty(x XKustomize) bool { + if x.FieldSetter != nil { + return false + } + if x.SetBy != "" { + return false + } + if len(x.PartialFieldSetters) > 0 { + return false + } + return true +} + +// Write writes the FieldMeta to a node +func (fm *FieldMeta) Write(n *yaml.RNode) error { + if !isExtensionEmpty(fm.Extensions) { + return fm.WriteV1Setters(n) + } + + // Ref is removed when a setter is deleted, so the Ref string could be empty. + if fm.Schema.Ref.String() != "" { + // Ex: {"$ref":"#/definitions/io.k8s.cli.setters.replicas"} should be converted to + // {"$openAPI":"replicas"} and added to the line comment + ref := fm.Schema.Ref.String() + var shortHandRefValue string + switch { + case strings.HasPrefix(ref, DefinitionsPrefix+SetterDefinitionPrefix): + shortHandRefValue = strings.TrimPrefix(ref, DefinitionsPrefix+SetterDefinitionPrefix) + case strings.HasPrefix(ref, DefinitionsPrefix+SubstitutionDefinitionPrefix): + shortHandRefValue = strings.TrimPrefix(ref, DefinitionsPrefix+SubstitutionDefinitionPrefix) + default: + return fmt.Errorf("unexpected ref format: %s", ref) + } + n.YNode().LineComment = fmt.Sprintf(`{"%s":"%s"}`, shortHandRef, + shortHandRefValue) + } else { + n.YNode().LineComment = "" + } + + return nil +} + +// WriteV1Setters is the v1 setters way of writing setter definitions +// TODO: pmarupaka - remove this method after migration +func (fm *FieldMeta) WriteV1Setters(n *yaml.RNode) error { + fm.Schema.VendorExtensible.AddExtension("x-kustomize", fm.Extensions) + b, err := json.Marshal(fm.Schema) + if err != nil { + return errors.Wrap(err) + } + n.YNode().LineComment = string(b) + return nil +} + +// FieldValueType defines the type of input to register +type FieldValueType string + +const ( + // String defines a string flag + String FieldValueType = "string" + // Bool defines a bool flag + Bool = "boolean" + // Int defines an int flag + Int = "integer" +) + +func (it FieldValueType) String() string { + if it == "" { + return "string" + } + return string(it) +} + +func (it FieldValueType) Validate(value string) error { + switch it { + case Int: + if _, err := strconv.Atoi(value); err != nil { + return errors.WrapPrefixf(err, "value must be an int") + } + case Bool: + if _, err := strconv.ParseBool(value); err != nil { + return errors.WrapPrefixf(err, "value must be a bool") + } + } + return nil +} + +func (it FieldValueType) Tag() string { + switch it { + case String: + return yaml.NodeTagString + case Bool: + return yaml.NodeTagBool + case Int: + return yaml.NodeTagInt + } + return "" +} + +func (it FieldValueType) TagForValue(value string) string { + switch it { + case String: + return yaml.NodeTagString + case Bool: + if _, err := strconv.ParseBool(string(it)); err != nil { + return "" + } + return yaml.NodeTagBool + case Int: + if _, err := strconv.ParseInt(string(it), 0, 32); err != nil { + return "" + } + return yaml.NodeTagInt + } + return "" +} + +const ( + // CLIDefinitionsPrefix is the prefix for cli definition keys. + CLIDefinitionsPrefix = "io.k8s.cli." + + // SetterDefinitionPrefix is the prefix for setter definition keys. + SetterDefinitionPrefix = CLIDefinitionsPrefix + "setters." + + // SubstitutionDefinitionPrefix is the prefix for substitution definition keys. + SubstitutionDefinitionPrefix = CLIDefinitionsPrefix + "substitutions." + + // DefinitionsPrefix is the prefix used to reference definitions in the OpenAPI + DefinitionsPrefix = "#/definitions/" +) + +// shortHandRef is the shorthand reference to setters and substitutions +var shortHandRef = "$openapi" + +func SetShortHandRef(ref string) { + shortHandRef = ref +} + +func ShortHandRef() string { + return shortHandRef +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/container/container.go b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/container/container.go new file mode 100644 index 0000000000..e36d44ed1d --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/container/container.go @@ -0,0 +1,192 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package container + +import ( + "fmt" + + runtimeexec "sigs.k8s.io/kustomize/kyaml/fn/runtime/exec" + "sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil" + + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Filter filters Resources using a container image. +// The container must start a process that reads the list of +// input Resources from stdin, reads the Configuration from the env +// API_CONFIG, and writes the filtered Resources to stdout. +// If there is a error or validation failure, the process must exit +// non-zero. +// The full set of environment variables from the parent process +// are passed to the container. +// +// Function Scoping: +// Filter applies the function only to Resources to which it is scoped. +// +// Resources are scoped to a function if any of the following are true: +// - the Resource were read from the same directory as the function config +// - the Resource were read from a subdirectory of the function config directory +// - the function config is in a directory named "functions" and +// they were read from a subdirectory of "functions" parent +// - the function config doesn't have a path annotation (considered globally scoped) +// - the Filter has GlobalScope == true +// +// In Scope Examples: +// +// Example 1: deployment.yaml and service.yaml in function.yaml scope +// same directory as the function config directory +// . +// ├── function.yaml +// ├── deployment.yaml +// └── service.yaml +// +// Example 2: apps/deployment.yaml and apps/service.yaml in function.yaml scope +// subdirectory of the function config directory +// . +// ├── function.yaml +// └── apps +//    ├── deployment.yaml +//    └── service.yaml +// +// Example 3: apps/deployment.yaml and apps/service.yaml in functions/function.yaml scope +// function config is in a directory named "functions" +// . +// ├── functions +// │   └── function.yaml +// └── apps +//    ├── deployment.yaml +//    └── service.yaml +// +// Out of Scope Examples: +// +// Example 1: apps/deployment.yaml and apps/service.yaml NOT in stuff/function.yaml scope +// . +// ├── stuff +// │   └── function.yaml +// └── apps +//    ├── deployment.yaml +//    └── service.yaml +// +// Example 2: apps/deployment.yaml and apps/service.yaml NOT in stuff/functions/function.yaml scope +// . +// ├── stuff +// │   └── functions +// │    └── function.yaml +// └── apps +//    ├── deployment.yaml +//    └── service.yaml +// +// Default Paths: +// Resources emitted by functions will have default path applied as annotations +// if none is present. +// The default path will be the function-dir/ (or parent directory in the case of "functions") +// + function-file-name/ + namespace/ + kind_name.yaml +// +// Example 1: Given a function in fn.yaml that produces a Deployment name foo and a Service named bar +// dir +// └── fn.yaml +// +// Would default newly generated Resources to: +// +// dir +// ├── fn.yaml +// └── fn +//    ├── deployment_foo.yaml +//    └── service_bar.yaml +// +// Example 2: Given a function in functions/fn.yaml that produces a Deployment name foo and a Service named bar +// dir +// └── fn.yaml +// +// Would default newly generated Resources to: +// +// dir +// ├── functions +// │   └── fn.yaml +// └── fn +//    ├── deployment_foo.yaml +//    └── service_bar.yaml +// +// Example 3: Given a function in fn.yaml that produces a Deployment name foo, namespace baz and a Service named bar namespace baz +// dir +// └── fn.yaml +// +// Would default newly generated Resources to: +// +// dir +// ├── fn.yaml +// └── fn +// └── baz +//    ├── deployment_foo.yaml +//    └── service_bar.yaml +type Filter struct { + runtimeutil.ContainerSpec `json:",inline" yaml:",inline"` + + Exec runtimeexec.Filter + + UIDGID string +} + +func (c Filter) String() string { + if c.Exec.DeferFailure { + return fmt.Sprintf("%s deferFailure: %v", c.Image, c.Exec.DeferFailure) + } + return c.Image +} +func (c Filter) GetExit() error { + return c.Exec.GetExit() +} + +func (c *Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + c.setupExec() + return c.Exec.Filter(nodes) +} + +func (c *Filter) setupExec() { + // don't init 2x + if c.Exec.Path != "" { + return + } + + path, args := c.getCommand() + c.Exec.Path = path + c.Exec.Args = args +} + +// getArgs returns the command + args to run to spawn the container +func (c *Filter) getCommand() (string, []string) { + network := runtimeutil.NetworkNameNone + if c.ContainerSpec.Network { + network = runtimeutil.NetworkNameHost + } + // run the container using docker. this is simpler than using the docker + // libraries, and ensures things like auth work the same as if the container + // was run from the cli. + args := []string{"run", + "--rm", // delete the container afterward + "-i", "-a", "STDIN", "-a", "STDOUT", "-a", "STDERR", // attach stdin, stdout, stderr + "--network", string(network), + + // added security options + "--user", c.UIDGID, + "--security-opt=no-new-privileges", // don't allow the user to escalate privileges + // note: don't make fs readonly because things like heredoc rely on writing tmp files + } + + // TODO(joncwong): Allow StorageMount fields to have default values. + for _, storageMount := range c.StorageMounts { + args = append(args, "--mount", storageMount.String()) + } + + args = append(args, runtimeutil.NewContainerEnvFromStringSlice(c.Env).GetDockerFlags()...) + a := append(args, c.Image) + return "docker", a +} + +// NewContainer returns a new container filter +func NewContainer(spec runtimeutil.ContainerSpec, uidgid string) Filter { + f := Filter{ContainerSpec: spec, UIDGID: uidgid} + + return f +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/exec/doc.go b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/exec/doc.go new file mode 100644 index 0000000000..2747a96fba --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/exec/doc.go @@ -0,0 +1,5 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package exec contains the exec function implementation. +package exec diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/exec/exec.go b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/exec/exec.go new file mode 100644 index 0000000000..3346bc998f --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/exec/exec.go @@ -0,0 +1,36 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package exec + +import ( + "io" + "os" + "os/exec" + + "sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type Filter struct { + // Path is the path to the executable to run + Path string `yaml:"path,omitempty"` + + // Args are the arguments to the executable + Args []string `yaml:"args,omitempty"` + + runtimeutil.FunctionFilter +} + +func (c *Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + c.FunctionFilter.Run = c.Run + return c.FunctionFilter.Filter(nodes) +} + +func (c *Filter) Run(reader io.Reader, writer io.Writer) error { + cmd := exec.Command(c.Path, c.Args...) + cmd.Stdin = reader + cmd.Stdout = writer + cmd.Stderr = os.Stderr + return cmd.Run() +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/doc.go b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/doc.go new file mode 100644 index 0000000000..89f9036a4c --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/doc.go @@ -0,0 +1,5 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package runtimeutil contains libraries for implementing function runtimes. +package runtimeutil diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/functiontypes.go b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/functiontypes.go new file mode 100644 index 0000000000..83e7ff0eca --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/functiontypes.go @@ -0,0 +1,305 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package runtimeutil + +import ( + "fmt" + "os" + "sort" + "strings" + + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +const ( + FunctionAnnotationKey = "config.kubernetes.io/function" + oldFunctionAnnotationKey = "config.k8s.io/function" +) + +var functionAnnotationKeys = []string{FunctionAnnotationKey, oldFunctionAnnotationKey} + +// ContainerNetworkName is a type for network name used in container +type ContainerNetworkName string + +const ( + NetworkNameNone ContainerNetworkName = "none" + NetworkNameHost ContainerNetworkName = "host" +) +const defaultEnvValue string = "true" + +// ContainerEnv defines the environment present in a container. +type ContainerEnv struct { + // EnvVars is a key-value map that will be set as env in container + EnvVars map[string]string + + // VarsToExport are only env key. Value will be the value in the host system + VarsToExport []string +} + +// GetDockerFlags returns docker run style env flags +func (ce *ContainerEnv) GetDockerFlags() []string { + envs := ce.EnvVars + if envs == nil { + envs = make(map[string]string) + } + + flags := []string{} + // return in order to keep consistent among different runs + keys := []string{} + for k := range envs { + keys = append(keys, k) + } + sort.Strings(keys) + for _, key := range keys { + flags = append(flags, "-e", key+"="+envs[key]) + } + + for _, key := range ce.VarsToExport { + flags = append(flags, "-e", key) + } + + return flags +} + +// AddKeyValue adds a key-value pair into the envs +func (ce *ContainerEnv) AddKeyValue(key, value string) { + if ce.EnvVars == nil { + ce.EnvVars = make(map[string]string) + } + ce.EnvVars[key] = value +} + +// HasExportedKey returns true if the key is a exported key +func (ce *ContainerEnv) HasExportedKey(key string) bool { + for _, k := range ce.VarsToExport { + if k == key { + return true + } + } + return false +} + +// AddKey adds a key into the envs +func (ce *ContainerEnv) AddKey(key string) { + if !ce.HasExportedKey(key) { + ce.VarsToExport = append(ce.VarsToExport, key) + } +} + +// Raw returns a slice of string which represents the envs. +// Example: [foo=bar, baz] +func (ce *ContainerEnv) Raw() []string { + var ret []string + for k, v := range ce.EnvVars { + ret = append(ret, k+"="+v) + } + + ret = append(ret, ce.VarsToExport...) + return ret +} + +// NewContainerEnv returns a pointer to a new ContainerEnv +func NewContainerEnv() *ContainerEnv { + var ce ContainerEnv + ce.EnvVars = make(map[string]string) + // default envs + ce.EnvVars["LOG_TO_STDERR"] = defaultEnvValue + ce.EnvVars["STRUCTURED_RESULTS"] = defaultEnvValue + return &ce +} + +// NewContainerEnvFromStringSlice returns a new ContainerEnv pointer with parsing +// input envStr. envStr example: ["foo=bar", "baz"] +func NewContainerEnvFromStringSlice(envStr []string) *ContainerEnv { + ce := NewContainerEnv() + for _, e := range envStr { + parts := strings.SplitN(e, "=", 2) + if len(parts) == 1 { + ce.AddKey(e) + } else { + ce.AddKeyValue(parts[0], parts[1]) + } + } + return ce +} + +// FunctionSpec defines a spec for running a function +type FunctionSpec struct { + DeferFailure bool `json:"deferFailure,omitempty" yaml:"deferFailure,omitempty"` + + // Container is the spec for running a function as a container + Container ContainerSpec `json:"container,omitempty" yaml:"container,omitempty"` + + // Starlark is the spec for running a function as a starlark script + Starlark StarlarkSpec `json:"starlark,omitempty" yaml:"starlark,omitempty"` + + // ExecSpec is the spec for running a function as an executable + Exec ExecSpec `json:"exec,omitempty" yaml:"exec,omitempty"` + + // Mounts are the storage or directories to mount into the container + StorageMounts []StorageMount `json:"mounts,omitempty" yaml:"mounts,omitempty"` +} + +type ExecSpec struct { + Path string `json:"path,omitempty" yaml:"path,omitempty"` +} + +// ContainerSpec defines a spec for running a function as a container +type ContainerSpec struct { + // Image is the container image to run + Image string `json:"image,omitempty" yaml:"image,omitempty"` + + // Network defines network specific configuration + Network bool `json:"network,omitempty" yaml:"network,omitempty"` + + // Mounts are the storage or directories to mount into the container + StorageMounts []StorageMount `json:"mounts,omitempty" yaml:"mounts,omitempty"` + + // Env is a slice of env string that will be exposed to container + Env []string `json:"envs,omitempty" yaml:"envs,omitempty"` +} + +// StarlarkSpec defines how to run a function as a starlark program +type StarlarkSpec struct { + Name string `json:"name,omitempty" yaml:"name,omitempty"` + + // Path specifies a path to a starlark script + Path string `json:"path,omitempty" yaml:"path,omitempty"` + + // URL specifies a url containing a starlark script + URL string `json:"url,omitempty" yaml:"url,omitempty"` +} + +// StorageMount represents a container's mounted storage option(s) +type StorageMount struct { + // Type of mount e.g. bind mount, local volume, etc. + MountType string `json:"type,omitempty" yaml:"type,omitempty"` + + // Source for the storage to be mounted. + // For named volumes, this is the name of the volume. + // For anonymous volumes, this field is omitted (empty string). + // For bind mounts, this is the path to the file or directory on the host. + Src string `json:"src,omitempty" yaml:"src,omitempty"` + + // The path where the file or directory is mounted in the container. + DstPath string `json:"dst,omitempty" yaml:"dst,omitempty"` + + // Mount in ReadWrite mode if it's explicitly configured + // See https://docs.docker.com/storage/bind-mounts/#use-a-read-only-bind-mount + ReadWriteMode bool `json:"rw,omitempty" yaml:"rw,omitempty"` +} + +func (s *StorageMount) String() string { + mode := "" + if !s.ReadWriteMode { + mode = ",readonly" + } + return fmt.Sprintf("type=%s,source=%s,target=%s%s", s.MountType, s.Src, s.DstPath, mode) +} + +// GetFunctionSpec returns the FunctionSpec for a resource. Returns +// nil if the resource does not have a FunctionSpec. +// +// The FunctionSpec is read from the resource metadata.annotation +// "config.kubernetes.io/function" +func GetFunctionSpec(n *yaml.RNode) *FunctionSpec { + meta, err := n.GetMeta() + if err != nil { + return nil + } + + if fn := getFunctionSpecFromAnnotation(n, meta); fn != nil { + fn.StorageMounts = []StorageMount{} + return fn + } + + // legacy function specification for backwards compatibility + container := meta.Annotations["config.kubernetes.io/container"] + if container != "" { + return &FunctionSpec{Container: ContainerSpec{Image: container}} + } + return nil +} + +// getFunctionSpecFromAnnotation parses the config function from an annotation +// if it is found +func getFunctionSpecFromAnnotation(n *yaml.RNode, meta yaml.ResourceMeta) *FunctionSpec { + var fs FunctionSpec + for _, s := range functionAnnotationKeys { + fn := meta.Annotations[s] + if fn != "" { + err := yaml.Unmarshal([]byte(fn), &fs) + if err != nil { + fmt.Fprintf(os.Stderr, "%v\n", err) + } + return &fs + } + } + n, err := n.Pipe(yaml.Lookup("metadata", "configFn")) + if err != nil || yaml.IsMissingOrNull(n) { + return nil + } + s, err := n.String() + if err != nil { + fmt.Fprintf(os.Stderr, "%v\n", err) + } + err = yaml.Unmarshal([]byte(s), &fs) + if err != nil { + fmt.Fprintf(os.Stderr, "%v\n", err) + } + return &fs +} + +func StringToStorageMount(s string) StorageMount { + m := make(map[string]string) + options := strings.Split(s, ",") + for _, option := range options { + keyVal := strings.SplitN(option, "=", 2) + if len(keyVal) == 2 { + m[keyVal[0]] = keyVal[1] + } + } + var sm StorageMount + for key, value := range m { + switch { + case key == "type": + sm.MountType = value + case key == "src" || key == "source": + sm.Src = value + case key == "dst" || key == "target": + sm.DstPath = value + case key == "rw" && value == "true": + sm.ReadWriteMode = true + } + } + return sm +} + +// IsReconcilerFilter filters Resources based on whether or not they are Reconciler Resource. +// Resources with an apiVersion starting with '*.gcr.io', 'gcr.io' or 'docker.io' are considered +// Reconciler Resources. +type IsReconcilerFilter struct { + // ExcludeReconcilers if set to true, then Reconcilers will be excluded -- e.g. + // Resources with a reconcile container through the apiVersion (gcr.io prefix) or + // through the annotations + ExcludeReconcilers bool `yaml:"excludeReconcilers,omitempty"` + + // IncludeNonReconcilers if set to true, the NonReconciler will be included. + IncludeNonReconcilers bool `yaml:"includeNonReconcilers,omitempty"` +} + +// Filter implements kio.Filter +func (c *IsReconcilerFilter) Filter(inputs []*yaml.RNode) ([]*yaml.RNode, error) { + var out []*yaml.RNode + for i := range inputs { + isFnResource := GetFunctionSpec(inputs[i]) != nil + if isFnResource && !c.ExcludeReconcilers { + out = append(out, inputs[i]) + } + if !isFnResource && c.IncludeNonReconcilers { + out = append(out, inputs[i]) + } + } + return out, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/runtimeutil.go b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/runtimeutil.go new file mode 100644 index 0000000000..29e2ea0adf --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/runtimeutil.go @@ -0,0 +1,256 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package runtimeutil + +import ( + "bytes" + "fmt" + "io" + "io/ioutil" + "path" + "strings" + + "sigs.k8s.io/kustomize/kyaml/comments" + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/kio/kioutil" + + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// FunctionFilter wraps another filter to be invoked in the context of a function. +// FunctionFilter manages scoping the function, deferring failures, and saving results +// to files. +type FunctionFilter struct { + // Run implements the function. + Run func(reader io.Reader, writer io.Writer) error + + // FunctionConfig is passed to the function through ResourceList.functionConfig. + FunctionConfig *yaml.RNode `yaml:"functionConfig,omitempty"` + + // GlobalScope explicitly scopes the function to all input resources rather than only those + // resources scoped to it by path. + GlobalScope bool + + // ResultsFile is the file to write function ResourceList.results to. + // If unset, results will not be written. + ResultsFile string + + // DeferFailure will cause the Filter to return a nil error even if Run returns an error. + // The Run error will be available through GetExit(). + DeferFailure bool + + // results saves the results emitted from Run + results *yaml.RNode + + // exit saves the error returned from Run + exit error + + ids map[string]*yaml.RNode +} + +// GetExit returns the error from Run +func (c FunctionFilter) GetExit() error { + return c.exit +} + +// functionsDirectoryName is keyword directory name for functions scoped 1 directory higher +const functionsDirectoryName = "functions" + +// getFunctionScope returns the path of the directory containing the function config, +// or its parent directory if the base directory is named "functions" +func (c *FunctionFilter) getFunctionScope() (string, error) { + m, err := c.FunctionConfig.GetMeta() + if err != nil { + return "", errors.Wrap(err) + } + p, found := m.Annotations[kioutil.PathAnnotation] + if !found { + return "", nil + } + + functionDir := path.Clean(path.Dir(p)) + + if path.Base(functionDir) == functionsDirectoryName { + // the scope of functions in a directory called "functions" is 1 level higher + // this is similar to how the golang "internal" directory scoping works + functionDir = path.Dir(functionDir) + } + return functionDir, nil +} + +// scope partitions the input nodes into 2 slices. The first slice contains only Resources +// which are scoped under dir, and the second slice contains the Resources which are not. +func (c *FunctionFilter) scope(dir string, nodes []*yaml.RNode) ([]*yaml.RNode, []*yaml.RNode, error) { + // scope container filtered Resources to Resources under that directory + var input, saved []*yaml.RNode + if c.GlobalScope { + return nodes, nil, nil + } + + // global function + if dir == "" || dir == "." { + return nodes, nil, nil + } + + // identify Resources read from directories under the function configuration + for i := range nodes { + m, err := nodes[i].GetMeta() + if err != nil { + return nil, nil, err + } + p, found := m.Annotations[kioutil.PathAnnotation] + if !found { + // this Resource isn't scoped under the function -- don't know where it came from + // consider it out of scope + saved = append(saved, nodes[i]) + continue + } + + resourceDir := path.Clean(path.Dir(p)) + if path.Base(resourceDir) == functionsDirectoryName { + // Functions in the `functions` directory are scoped to + // themselves, and should see themselves as input + resourceDir = path.Dir(resourceDir) + } + if !strings.HasPrefix(resourceDir, dir) { + // this Resource doesn't fall under the function scope if it + // isn't in a subdirectory of where the function lives + saved = append(saved, nodes[i]) + continue + } + + // this input is scoped under the function + input = append(input, nodes[i]) + } + + return input, saved, nil +} + +func (c *FunctionFilter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + in := &bytes.Buffer{} + out := &bytes.Buffer{} + + // only process Resources scoped to this function, save the others + functionDir, err := c.getFunctionScope() + if err != nil { + return nil, err + } + input, saved, err := c.scope(functionDir, nodes) + if err != nil { + return nil, err + } + + // set ids on each input so it is possible to copy comments from inputs back to outputs + if err := c.setIds(input); err != nil { + return nil, err + } + + // write the input + err = kio.ByteWriter{ + WrappingAPIVersion: kio.ResourceListAPIVersion, + WrappingKind: kio.ResourceListKind, + Writer: in, + KeepReaderAnnotations: true, + FunctionConfig: c.FunctionConfig}.Write(input) + if err != nil { + return nil, err + } + + // capture the command stdout for the return value + r := &kio.ByteReader{Reader: out} + + // don't exit immediately if the function fails -- write out the validation + c.exit = c.Run(in, out) + + output, err := r.Read() + if err != nil { + return nil, err + } + + // copy the comments from the inputs to the outputs + if err := c.setComments(output); err != nil { + return nil, err + } + + if err := c.doResults(r); err != nil { + return nil, err + } + + if c.exit != nil && !c.DeferFailure { + return append(output, saved...), c.exit + } + + // annotate any generated Resources with a path and index if they don't already have one + if err := kioutil.DefaultPathAnnotation(functionDir, output); err != nil { + return nil, err + } + + // emit both the Resources output from the function, and the out-of-scope Resources + // which were not provided to the function + return append(output, saved...), nil +} + +const idAnnotation = "config.k8s.io/id" + +func (c *FunctionFilter) setIds(nodes []*yaml.RNode) error { + // set the id on each node to map inputs to outputs + var id int + c.ids = map[string]*yaml.RNode{} + for i := range nodes { + id++ + idStr := fmt.Sprintf("%v", id) + err := nodes[i].PipeE(yaml.SetAnnotation(idAnnotation, idStr)) + if err != nil { + return errors.Wrap(err) + } + c.ids[idStr] = nodes[i] + } + return nil +} + +func (c *FunctionFilter) setComments(nodes []*yaml.RNode) error { + for i := range nodes { + node := nodes[i] + anID, err := node.Pipe(yaml.GetAnnotation(idAnnotation)) + if err != nil { + return errors.Wrap(err) + } + if anID == nil { + continue + } + + var in *yaml.RNode + var found bool + if in, found = c.ids[anID.YNode().Value]; !found { + continue + } + if err := comments.CopyComments(in, node); err != nil { + return errors.Wrap(err) + } + if err := node.PipeE(yaml.ClearAnnotation(idAnnotation)); err != nil { + return errors.Wrap(err) + } + } + return nil +} + +func (c *FunctionFilter) doResults(r *kio.ByteReader) error { + // Write the results to a file if configured to do so + if c.ResultsFile != "" && r.Results != nil { + results, err := r.Results.String() + if err != nil { + return err + } + err = ioutil.WriteFile(c.ResultsFile, []byte(results), 0600) + if err != nil { + return err + } + } + + if r.Results != nil { + c.results = r.Results + } + return nil +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/types.go b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/types.go new file mode 100644 index 0000000000..5edc4ebc33 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/types.go @@ -0,0 +1,8 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package runtimeutil + +type DeferFailureFunction interface { + GetExit() error +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/starlark/context.go b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/starlark/context.go new file mode 100644 index 0000000000..bbf07f66c5 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/starlark/context.go @@ -0,0 +1,79 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package starlark + +import ( + "encoding/json" + "os" + "strings" + + "go.starlark.net/starlark" + "go.starlark.net/starlarkstruct" + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util" + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type Context struct { + resourceList starlark.Value +} + +func (c *Context) predeclared() (starlark.StringDict, error) { + e, err := env() + if err != nil { + return nil, err + } + oa, err := oa() + if err != nil { + return nil, err + } + dict := starlark.StringDict{ + "resource_list": c.resourceList, + "open_api": oa, + "environment": e, + } + + return starlark.StringDict{ + "ctx": starlarkstruct.FromStringDict(starlarkstruct.Default, dict), + }, nil +} + +func oa() (starlark.Value, error) { + return interfaceToValue(openapi.Schema()) +} + +func env() (starlark.Value, error) { + env := map[string]interface{}{} + for _, e := range os.Environ() { + pair := strings.SplitN(e, "=", 2) + if len(pair) < 2 { + continue + } + env[pair[0]] = pair[1] + } + value, err := util.Marshal(env) + if err != nil { + return nil, errors.Wrap(err) + } + return value, nil +} + +func interfaceToValue(i interface{}) (starlark.Value, error) { + b, err := json.Marshal(i) + if err != nil { + return nil, err + } + + var in map[string]interface{} + if err := yaml.Unmarshal(b, &in); err != nil { + return nil, errors.Wrap(err) + } + + value, err := util.Marshal(in) + if err != nil { + return nil, errors.Wrap(err) + } + return value, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/starlark/doc.go b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/starlark/doc.go new file mode 100644 index 0000000000..70f0a2c7b4 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/starlark/doc.go @@ -0,0 +1,36 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package starlark contains a kio.Filter which can be applied to resources to transform +// them through starlark program. +// +// Starlark has become a popular runtime embedding in go programs, especially for Kubernetes +// and data processing. +// Examples: https://github.com/cruise-automation/isopod, https://qri.io/docs/starlark/starlib, +// https://github.com/stripe/skycfg, https://github.com/k14s/ytt +// +// The resources are provided to the starlark program through the global variable "resourceList". +// "resourceList" is a dictionary containing an "items" field with a list of resources. +// The starlark modified "resourceList" is the Filter output. +// +// After being run through the starlark program, the filter will copy the comments from the input +// resources to restore them -- due to them being dropped as a result of serializing the resources +// as starlark values. +// +// "resourceList" may also contain a "functionConfig" entry to configure the starlark script itself. +// Changes made by the starlark program to the "functionConfig" will be reflected in the +// Filter.FunctionConfig value. +// +// The Filter will also format the output so that output has the preferred field ordering +// rather than an alphabetical field ordering. +// +// The resourceList variable adheres to the kustomize function spec as specified by: +// https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md +// +// All items in the resourceList are resources represented as starlark dictionaries/ +// The items in the resourceList respect the io spec specified by: +// https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/config-io.md +// +// The starlark language spec can be found here: +// https://github.com/google/starlark-go/blob/master/doc/spec.md +package starlark diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/starlark/starlark.go b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/starlark/starlark.go new file mode 100644 index 0000000000..825ff63a02 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/starlark/starlark.go @@ -0,0 +1,181 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package starlark + +import ( + "bytes" + "fmt" + "io" + "io/ioutil" + "net/http" + + "go.starlark.net/starlark" + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil" + "sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util" + "sigs.k8s.io/kustomize/kyaml/kio/filters" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Filter transforms a set of resources through the provided program +type Filter struct { + Name string + + // Program is a starlark script which will be run against the resources + Program string + + // URL is the url of a starlark program to fetch and run + URL string + + // Path is the path to a starlark program to read and run + Path string + + runtimeutil.FunctionFilter +} + +func (sf *Filter) String() string { + return fmt.Sprintf( + "name: %v path: %v url: %v program: %v", sf.Name, sf.Path, sf.URL, sf.Program) +} + +func (sf *Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + err := sf.setup() + if err != nil { + return nil, err + } + sf.FunctionFilter.Run = sf.Run + + return sf.FunctionFilter.Filter(nodes) +} + +func (sf *Filter) setup() error { + if (sf.URL != "" && sf.Path != "") || + (sf.URL != "" && sf.Program != "") || + (sf.Path != "" && sf.Program != "") { + return errors.Errorf("Filter Path, Program and URL are mutually exclusive") + } + + // read the program from a file + if sf.Path != "" { + b, err := ioutil.ReadFile(sf.Path) + if err != nil { + return err + } + sf.Program = string(b) + } + + // read the program from a URL + if sf.URL != "" { + err := func() error { + resp, err := http.Get(sf.URL) + if err != nil { + return err + } + defer resp.Body.Close() + b, err := ioutil.ReadAll(resp.Body) + if err != nil { + return err + } + sf.Program = string(b) + return nil + }() + if err != nil { + return err + } + } + + return nil +} + +func (sf *Filter) Run(reader io.Reader, writer io.Writer) error { + // retain map of inputs to outputs by id so if the name is changed by the + // starlark program, we are able to match the same resources + value, err := sf.readResourceList(reader) + if err != nil { + return errors.Wrap(err) + } + + // run the starlark as program as transformation function + thread := &starlark.Thread{Name: sf.Name} + + ctx := &Context{resourceList: value} + pd, err := ctx.predeclared() + if err != nil { + return errors.Wrap(err) + } + _, err = starlark.ExecFile(thread, sf.Name, sf.Program, pd) + if err != nil { + return errors.Wrap(err) + } + + return sf.writeResourceList(value, writer) +} + +// inputToResourceList transforms input into a starlark.Value +func (sf *Filter) readResourceList(reader io.Reader) (starlark.Value, error) { + // read and parse the inputs + rl := bytes.Buffer{} + _, err := rl.ReadFrom(reader) + if err != nil { + return nil, errors.Wrap(err) + } + rn, err := yaml.Parse(rl.String()) + if err != nil { + return nil, errors.Wrap(err) + } + + // convert to a starlark value + b, err := yaml.Marshal(rn.Document()) // convert to bytes + if err != nil { + return nil, errors.Wrap(err) + } + var in map[string]interface{} + err = yaml.Unmarshal(b, &in) // convert to map[string]interface{} + if err != nil { + return nil, errors.Wrap(err) + } + return util.Marshal(in) // convert to starlark value +} + +// resourceListToOutput converts the output of the starlark program to the filter output +func (sf *Filter) writeResourceList(value starlark.Value, writer io.Writer) error { + // convert the modified resourceList back into a slice of RNodes + // by first converting to a map[string]interface{} + out, err := util.Unmarshal(value) + if err != nil { + return errors.Wrap(err) + } + b, err := yaml.Marshal(out) + if err != nil { + return errors.Wrap(err) + } + + rl, err := yaml.Parse(string(b)) + if err != nil { + return errors.Wrap(err) + } + + // preserve the comments from the input + items, err := rl.Pipe(yaml.Lookup("items")) + if err != nil { + return errors.Wrap(err) + } + err = items.VisitElements(func(node *yaml.RNode) error { + // starlark will serialize the resources sorting the fields alphabetically, + // format them to have a better ordering + _, err := filters.FormatFilter{}.Filter([]*yaml.RNode{node}) + return err + }) + if err != nil { + return errors.Wrap(err) + } + + s, err := rl.String() + if err != nil { + return errors.Wrap(err) + } + + _, err = writer.Write([]byte(s)) + return err +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util/LICENSE b/vendor/sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util/LICENSE new file mode 100644 index 0000000000..31f292dce5 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 QRI, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util/doc.go b/vendor/sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util/doc.go new file mode 100644 index 0000000000..035b479216 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util/doc.go @@ -0,0 +1,25 @@ +// The MIT License (MIT) + +// Copyright (c) 2018 QRI, Inc. + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// Package util is forked from https://github.com/qri-io/starlib in order to prune +// excessive transitive dependencies from pulling in that library. +package util diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util/util.go b/vendor/sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util/util.go new file mode 100644 index 0000000000..96b4a9aeaa --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util/util.go @@ -0,0 +1,273 @@ +// The MIT License (MIT) + +// Copyright (c) 2018 QRI, Inc. + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package util + +import ( + "fmt" + + "github.com/pkg/errors" + "go.starlark.net/starlark" + "go.starlark.net/starlarkstruct" +) + +// // asString unquotes a starlark string value +// func asString(x starlark.Value) (string, error) { +// return strconv.Unquote(x.String()) +// } + +// IsEmptyString checks is a starlark string is empty ("" for a go string) +// starlark.String.String performs repr-style quotation, which is necessary +// for the starlark.Value contract but a frequent source of errors in API +// clients. This helper method makes sure it'll work properly +func IsEmptyString(s starlark.String) bool { + return s.String() == `""` +} + +// Unmarshal decodes a starlark.Value into it's golang counterpart +//nolint:nakedret +func Unmarshal(x starlark.Value) (val interface{}, err error) { + switch v := x.(type) { + case starlark.NoneType: + val = nil + case starlark.Bool: + val = v.Truth() == starlark.True + case starlark.Int: + val, err = starlark.AsInt32(x) + case starlark.Float: + if f, ok := starlark.AsFloat(x); !ok { + err = fmt.Errorf("couldn't parse float") + } else { + val = f + } + case starlark.String: + val = v.GoString() + // case starlibtime.Time: + // val = time.Time(v) + case *starlark.Dict: + var ( + dictVal starlark.Value + pval interface{} + kval interface{} + keys []interface{} + vals []interface{} + // key as interface if found one key is not a string + ki bool + ) + + for _, k := range v.Keys() { + dictVal, _, err = v.Get(k) + if err != nil { + return + } + + pval, err = Unmarshal(dictVal) + if err != nil { + err = fmt.Errorf("unmarshaling starlark value: %w", err) + return + } + + kval, err = Unmarshal(k) + if err != nil { + err = fmt.Errorf("unmarshaling starlark key: %w", err) + return + } + + if _, ok := kval.(string); !ok { + // found key as not a string + ki = true + } + + keys = append(keys, kval) + vals = append(vals, pval) + } + + // prepare result + + rs := map[string]interface{}{} + ri := map[interface{}]interface{}{} + + for i, key := range keys { + // key as interface + if ki { + ri[key] = vals[i] + } else { + rs[key.(string)] = vals[i] + } + } + + if ki { + val = ri // map[interface{}]interface{} + } else { + val = rs // map[string]interface{} + } + case *starlark.List: + var ( + i int + listVal starlark.Value + iter = v.Iterate() + value = make([]interface{}, v.Len()) + ) + + defer iter.Done() + for iter.Next(&listVal) { + value[i], err = Unmarshal(listVal) + if err != nil { + return + } + i++ + } + val = value + case starlark.Tuple: + var ( + i int + tupleVal starlark.Value + iter = v.Iterate() + value = make([]interface{}, v.Len()) + ) + + defer iter.Done() + for iter.Next(&tupleVal) { + value[i], err = Unmarshal(tupleVal) + if err != nil { + return + } + i++ + } + val = value + case *starlark.Set: + fmt.Println("errnotdone: SET") + err = fmt.Errorf("sets aren't yet supported") + case *starlarkstruct.Struct: + if _var, ok := v.Constructor().(Unmarshaler); ok { + err = _var.UnmarshalStarlark(x) + if err != nil { + err = errors.Wrapf(err, "failed marshal %q to Starlark object", v.Constructor().Type()) + return + } + val = _var + } else { + err = fmt.Errorf("constructor object from *starlarkstruct.Struct not supported Marshaler to starlark object: %s", v.Constructor().Type()) + } + default: + fmt.Println("errbadtype:", x.Type()) + err = fmt.Errorf("unrecognized starlark type: %s", x.Type()) + } + return +} + +// Marshal turns go values into starlark types +//nolint:nakedret +func Marshal(data interface{}) (v starlark.Value, err error) { + switch x := data.(type) { + case nil: + v = starlark.None + case bool: + v = starlark.Bool(x) + case string: + v = starlark.String(x) + case int: + v = starlark.MakeInt(x) + case int8: + v = starlark.MakeInt(int(x)) + case int16: + v = starlark.MakeInt(int(x)) + case int32: + v = starlark.MakeInt(int(x)) + case int64: + v = starlark.MakeInt64(x) + case uint: + v = starlark.MakeUint(x) + case uint8: + v = starlark.MakeUint(uint(x)) + case uint16: + v = starlark.MakeUint(uint(x)) + case uint32: + v = starlark.MakeUint(uint(x)) + case uint64: + v = starlark.MakeUint64(x) + case float32: + v = starlark.Float(float64(x)) + case float64: + v = starlark.Float(x) + // case time.Time: + // v = starlibtime.Time(x) + case []interface{}: + var elems = make([]starlark.Value, len(x)) + for i, val := range x { + elems[i], err = Marshal(val) + if err != nil { + return + } + } + v = starlark.NewList(elems) + case map[interface{}]interface{}: + dict := &starlark.Dict{} + var elem starlark.Value + for ki, val := range x { + var key starlark.Value + key, err = Marshal(ki) + if err != nil { + return + } + + elem, err = Marshal(val) + if err != nil { + return + } + if err = dict.SetKey(key, elem); err != nil { + return + } + } + v = dict + case map[string]interface{}: + dict := &starlark.Dict{} + var elem starlark.Value + for key, val := range x { + elem, err = Marshal(val) + if err != nil { + return + } + if err = dict.SetKey(starlark.String(key), elem); err != nil { + return + } + } + v = dict + case Marshaler: + v, err = x.MarshalStarlark() + default: + return starlark.None, fmt.Errorf("unrecognized type: %#v", x) + } + return +} + +// Unmarshaler is the interface use to unmarshal starlark custom types. +type Unmarshaler interface { + // UnmarshalStarlark unmarshal a starlark object to custom type. + UnmarshalStarlark(starlark.Value) error +} + +// Marshaler is the interface use to marshal starlark custom types. +type Marshaler interface { + // MarshalStarlark marshal a custom type to starlark object. + MarshalStarlark() (starlark.Value, error) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/byteio_reader.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/byteio_reader.go new file mode 100644 index 0000000000..7469698f40 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/byteio_reader.go @@ -0,0 +1,248 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package kio + +import ( + "bytes" + "fmt" + "io" + "sort" + "strings" + + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/kio/kioutil" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +const ( + ResourceListKind = "ResourceList" + ResourceListAPIVersion = "config.kubernetes.io/v1alpha1" +) + +// ByteReadWriter reads from an input and writes to an output. +type ByteReadWriter struct { + // Reader is where ResourceNodes are decoded from. + Reader io.Reader + + // Writer is where ResourceNodes are encoded. + Writer io.Writer + + // OmitReaderAnnotations will configures Read to skip setting the config.kubernetes.io/index + // annotation on Resources as they are Read. + OmitReaderAnnotations bool + + // KeepReaderAnnotations if set will keep the Reader specific annotations when writing + // the Resources, otherwise they will be cleared. + KeepReaderAnnotations bool + + // Style is a style that is set on the Resource Node Document. + Style yaml.Style + + FunctionConfig *yaml.RNode + + Results *yaml.RNode + + NoWrap bool + WrappingAPIVersion string + WrappingKind string +} + +func (rw *ByteReadWriter) Read() ([]*yaml.RNode, error) { + b := &ByteReader{ + Reader: rw.Reader, + OmitReaderAnnotations: rw.OmitReaderAnnotations, + } + val, err := b.Read() + if rw.FunctionConfig == nil { + rw.FunctionConfig = b.FunctionConfig + } + rw.Results = b.Results + + if !rw.NoWrap { + rw.WrappingAPIVersion = b.WrappingAPIVersion + rw.WrappingKind = b.WrappingKind + } + return val, errors.Wrap(err) +} + +func (rw *ByteReadWriter) Write(nodes []*yaml.RNode) error { + return ByteWriter{ + Writer: rw.Writer, + KeepReaderAnnotations: rw.KeepReaderAnnotations, + Style: rw.Style, + FunctionConfig: rw.FunctionConfig, + Results: rw.Results, + WrappingAPIVersion: rw.WrappingAPIVersion, + WrappingKind: rw.WrappingKind, + }.Write(nodes) +} + +// ParseAll reads all of the inputs into resources +func ParseAll(inputs ...string) ([]*yaml.RNode, error) { + return (&ByteReader{ + Reader: bytes.NewBufferString(strings.Join(inputs, "\n---\n")), + }).Read() +} + +// FromBytes reads from a byte slice. +func FromBytes(bs []byte) ([]*yaml.RNode, error) { + return (&ByteReader{ + OmitReaderAnnotations: true, + Reader: bytes.NewBuffer(bs), + }).Read() +} + +// StringAll writes all of the resources to a string +func StringAll(resources []*yaml.RNode) (string, error) { + var b bytes.Buffer + err := (&ByteWriter{Writer: &b}).Write(resources) + return b.String(), err +} + +// ByteReader decodes ResourceNodes from bytes. +// By default, Read will set the config.kubernetes.io/index annotation on each RNode as it +// is read so they can be written back in the same order. +type ByteReader struct { + // Reader is where ResourceNodes are decoded from. + Reader io.Reader + + // OmitReaderAnnotations will configures Read to skip setting the config.kubernetes.io/index + // annotation on Resources as they are Read. + OmitReaderAnnotations bool + + // SetAnnotations is a map of caller specified annotations to set on resources as they are read + // These are independent of the annotations controlled by OmitReaderAnnotations + SetAnnotations map[string]string + + FunctionConfig *yaml.RNode + + Results *yaml.RNode + + // DisableUnwrapping prevents Resources in Lists and ResourceLists from being unwrapped + DisableUnwrapping bool + + // WrappingAPIVersion is set by Read(), and is the apiVersion of the object that + // the read objects were originally wrapped in. + WrappingAPIVersion string + + // WrappingKind is set by Read(), and is the kind of the object that + // the read objects were originally wrapped in. + WrappingKind string +} + +var _ Reader = &ByteReader{} + +func (r *ByteReader) Read() ([]*yaml.RNode, error) { + output := ResourceNodeSlice{} + + // by manually splitting resources -- otherwise the decoder will get the Resource + // boundaries wrong for header comments. + input := &bytes.Buffer{} + _, err := io.Copy(input, r.Reader) + if err != nil { + return nil, errors.Wrap(err) + } + + // replace the ending \r\n (line ending used in windows) with \n and then separate by \n---\n + values := strings.Split(strings.ReplaceAll(input.String(), "\r\n", "\n"), "\n---\n") + + index := 0 + for i := range values { + // the Split used above will eat the tail '\n' from each resource. This may affect the + // literal string value since '\n' is meaningful in it. + if i != len(values)-1 { + values[i] += "\n" + } + decoder := yaml.NewDecoder(bytes.NewBufferString(values[i])) + node, err := r.decode(index, decoder) + if err == io.EOF { + continue + } + if err != nil { + return nil, errors.Wrap(err) + } + if yaml.IsMissingOrNull(node) { + // empty value + continue + } + + // ok if no metadata -- assume not an InputList + meta, err := node.GetMeta() + if err != yaml.ErrMissingMetadata && err != nil { + return nil, errors.WrapPrefixf(err, "[%d]", i) + } + + // the elements are wrapped in an InputList, unwrap them + // don't check apiVersion, we haven't standardized on the domain + if !r.DisableUnwrapping && + len(values) == 1 && // Only unwrap if there is only 1 value + (meta.Kind == ResourceListKind || meta.Kind == "List") && + (node.Field("items") != nil || node.Field("functionConfig") != nil) { + r.WrappingKind = meta.Kind + r.WrappingAPIVersion = meta.APIVersion + + // unwrap the list + if fc := node.Field("functionConfig"); fc != nil { + r.FunctionConfig = fc.Value + } + if res := node.Field("results"); res != nil { + r.Results = res.Value + } + + items := node.Field("items") + if items != nil { + for i := range items.Value.Content() { + // add items + output = append(output, yaml.NewRNode(items.Value.Content()[i])) + } + } + continue + } + + // add the node to the list + output = append(output, node) + + // increment the index annotation value + index++ + } + return output, nil +} + +func (r *ByteReader) decode(index int, decoder *yaml.Decoder) (*yaml.RNode, error) { + node := &yaml.Node{} + err := decoder.Decode(node) + if err == io.EOF { + return nil, io.EOF + } + if err != nil { + return nil, errors.Wrap(err) + } + + if yaml.IsYNodeEmptyDoc(node) { + return nil, nil + } + + // set annotations on the read Resources + // sort the annotations by key so the output Resources is consistent (otherwise the + // annotations will be in a random order) + n := yaml.NewRNode(node) + if r.SetAnnotations == nil { + r.SetAnnotations = map[string]string{} + } + if !r.OmitReaderAnnotations { + r.SetAnnotations[kioutil.IndexAnnotation] = fmt.Sprintf("%d", index) + } + var keys []string + for k := range r.SetAnnotations { + keys = append(keys, k) + } + sort.Strings(keys) + for _, k := range keys { + _, err = n.Pipe(yaml.SetAnnotation(k, r.SetAnnotations[k])) + if err != nil { + return nil, errors.Wrap(err) + } + } + return yaml.NewRNode(node), nil +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/byteio_writer.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/byteio_writer.go new file mode 100644 index 0000000000..84097f1086 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/byteio_writer.go @@ -0,0 +1,140 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package kio + +import ( + "encoding/json" + "io" + + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/kio/kioutil" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Writer writes ResourceNodes to bytes. +type ByteWriter struct { + // Writer is where ResourceNodes are encoded. + Writer io.Writer + + // KeepReaderAnnotations if set will keep the Reader specific annotations when writing + // the Resources, otherwise they will be cleared. + KeepReaderAnnotations bool + + // ClearAnnotations is a list of annotations to clear when writing the Resources. + ClearAnnotations []string + + // Style is a style that is set on the Resource Node Document. + Style yaml.Style + + // FunctionConfig is the function config for an ResourceList. If non-nil + // wrap the results in an ResourceList. + FunctionConfig *yaml.RNode + + Results *yaml.RNode + + // WrappingKind if set will cause ByteWriter to wrap the Resources in + // an 'items' field in this kind. e.g. if WrappingKind is 'List', + // ByteWriter will wrap the Resources in a List .items field. + WrappingKind string + + // WrappingAPIVersion is the apiVersion for WrappingKind + WrappingAPIVersion string + + // Sort if set, will cause ByteWriter to sort the the nodes before writing them. + Sort bool +} + +var _ Writer = ByteWriter{} + +func (w ByteWriter) Write(nodes []*yaml.RNode) error { + yaml.DoSerializationHacksOnNodes(nodes) + if w.Sort { + if err := kioutil.SortNodes(nodes); err != nil { + return errors.Wrap(err) + } + } + + encoder := yaml.NewEncoder(w.Writer) + defer encoder.Close() + for i := range nodes { + // clean resources by removing annotations set by the Reader + if !w.KeepReaderAnnotations { + _, err := nodes[i].Pipe(yaml.ClearAnnotation(kioutil.IndexAnnotation)) + if err != nil { + return errors.Wrap(err) + } + } + for _, a := range w.ClearAnnotations { + _, err := nodes[i].Pipe(yaml.ClearAnnotation(a)) + if err != nil { + return errors.Wrap(err) + } + } + + if err := yaml.ClearEmptyAnnotations(nodes[i]); err != nil { + return err + } + + if w.Style != 0 { + nodes[i].YNode().Style = w.Style + } + } + + // don't wrap the elements + if w.WrappingKind == "" { + for i := range nodes { + if err := w.encode(encoder, nodes[i].Document()); err != nil { + return err + } + } + return nil + } + // wrap the elements in a list + items := &yaml.Node{Kind: yaml.SequenceNode} + list := &yaml.Node{ + Kind: yaml.MappingNode, + Style: w.Style, + Content: []*yaml.Node{ + {Kind: yaml.ScalarNode, Value: "apiVersion"}, + {Kind: yaml.ScalarNode, Value: w.WrappingAPIVersion}, + {Kind: yaml.ScalarNode, Value: "kind"}, + {Kind: yaml.ScalarNode, Value: w.WrappingKind}, + {Kind: yaml.ScalarNode, Value: "items"}, items, + }} + if w.FunctionConfig != nil { + list.Content = append(list.Content, + &yaml.Node{Kind: yaml.ScalarNode, Value: "functionConfig"}, + w.FunctionConfig.YNode()) + } + if w.Results != nil { + list.Content = append(list.Content, + &yaml.Node{Kind: yaml.ScalarNode, Value: "results"}, + w.Results.YNode()) + } + doc := &yaml.Node{ + Kind: yaml.DocumentNode, + Content: []*yaml.Node{list}} + for i := range nodes { + items.Content = append(items.Content, nodes[i].YNode()) + } + err := w.encode(encoder, doc) + yaml.UndoSerializationHacksOnNodes(nodes) + return err +} + +// encode encodes the input document node to appropriate node format +func (w ByteWriter) encode(encoder *yaml.Encoder, doc *yaml.Node) error { + rNode := &yaml.RNode{} + rNode.SetYNode(doc) + str, err := rNode.String() + if err != nil { + return errors.Wrap(err) + } + if json.Valid([]byte(str)) { + je := json.NewEncoder(w.Writer) + je.SetIndent("", " ") + return errors.Wrap(je.Encode(rNode)) + } + return encoder.Encode(doc) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/doc.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/doc.go new file mode 100644 index 0000000000..9c11a14630 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/doc.go @@ -0,0 +1,35 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package kio contains libraries for reading and writing collections of Resources. +// +// Reading Resources +// +// Resources are Read using a kio.Reader function. Examples: +// [kio.LocalPackageReader{}, kio.ByteReader{}] +// +// Resources read using a LocalPackageReader will have annotations applied so they can be +// written back to the files they were read from. +// +// Modifying Resources +// +// Resources are modified using a kio.Filter. The kio.Filter accepts a collection of +// Resources as input, and returns a new collection as output. +// It is recommended to use the yaml package for manipulating individual Resources in +// the collection. +// +// Writing Resources +// +// Resources are Read using a kio.Reader function. Examples: +// [kio.LocalPackageWriter{}, kio.ByteWriter{}] +// +// ReadWriters +// +// It is preferred to use a ReadWriter when reading and writing from / to the same source. +// +// Building Pipelines +// +// The preferred way to transforms a collection of Resources is to use kio.Pipeline to Read, +// Modify and Write the collection of Resources. Pipeline will automatically sequentially +// invoke the Read, Modify, Write steps, returning and error immediately on any failure. +package kio diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/filters.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/filters.go new file mode 100644 index 0000000000..f8ceb51ca2 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/filters.go @@ -0,0 +1,199 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package filters + +import ( + "fmt" + "sort" + "strings" + + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/kio/kioutil" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Filters are the list of known filters for unmarshalling a filter into a concrete +// implementation. +var Filters = map[string]func() kio.Filter{ + "FileSetter": func() kio.Filter { return &FileSetter{} }, + "FormatFilter": func() kio.Filter { return &FormatFilter{} }, + "GrepFilter": func() kio.Filter { return GrepFilter{} }, + "MatchModifier": func() kio.Filter { return &MatchModifyFilter{} }, + "Modifier": func() kio.Filter { return &Modifier{} }, +} + +// filter wraps a kio.filter so that it can be unmarshalled from yaml. +type KFilter struct { + kio.Filter +} + +func (t KFilter) MarshalYAML() (interface{}, error) { + return t.Filter, nil +} + +func (t *KFilter) UnmarshalYAML(unmarshal func(interface{}) error) error { + i := map[string]interface{}{} + if err := unmarshal(i); err != nil { + return err + } + meta := &yaml.ResourceMeta{} + if err := unmarshal(meta); err != nil { + return err + } + filter, found := Filters[meta.Kind] + if !found { + var knownFilters []string + for k := range Filters { + knownFilters = append(knownFilters, k) + } + sort.Strings(knownFilters) + return fmt.Errorf("unsupported filter Kind %v: may be one of: [%s]", + meta, strings.Join(knownFilters, ",")) + } + t.Filter = filter() + + return unmarshal(t.Filter) +} + +// Modifier modifies the input Resources by invoking the provided pipeline. +// Modifier will return any Resources for which the pipeline does not return an error. +type Modifier struct { + Kind string `yaml:"kind,omitempty"` + + Filters yaml.YFilters `yaml:"pipeline,omitempty"` +} + +var _ kio.Filter = &Modifier{} + +func (f Modifier) Filter(input []*yaml.RNode) ([]*yaml.RNode, error) { + for i := range input { + if _, err := input[i].Pipe(f.Filters.Filters()...); err != nil { + return nil, err + } + } + return input, nil +} + +type MatchModifyFilter struct { + Kind string `yaml:"kind,omitempty"` + + MatchFilters []yaml.YFilters `yaml:"match,omitempty"` + + ModifyFilters yaml.YFilters `yaml:"modify,omitempty"` +} + +var _ kio.Filter = &MatchModifyFilter{} + +func (f MatchModifyFilter) Filter(input []*yaml.RNode) ([]*yaml.RNode, error) { + var matches = input + var err error + for _, filter := range f.MatchFilters { + matches, err = MatchFilter{Filters: filter}.Filter(matches) + if err != nil { + return nil, err + } + } + _, err = Modifier{Filters: f.ModifyFilters}.Filter(matches) + if err != nil { + return nil, err + } + return input, nil +} + +type MatchFilter struct { + Kind string `yaml:"kind,omitempty"` + + Filters yaml.YFilters `yaml:"pipeline,omitempty"` +} + +var _ kio.Filter = &MatchFilter{} + +func (f MatchFilter) Filter(input []*yaml.RNode) ([]*yaml.RNode, error) { + var output []*yaml.RNode + for i := range input { + if v, err := input[i].Pipe(f.Filters.Filters()...); err != nil { + return nil, err + } else if v == nil { + continue + } + output = append(output, input[i]) + } + return output, nil +} + +type FilenameFmtVerb string + +const ( + // KindFmt substitutes kind + KindFmt FilenameFmtVerb = "%k" + + // NameFmt substitutes metadata.name + NameFmt FilenameFmtVerb = "%n" + + // NamespaceFmt substitutes metdata.namespace + NamespaceFmt FilenameFmtVerb = "%s" +) + +// FileSetter sets the file name and mode annotations on Resources. +type FileSetter struct { + Kind string `yaml:"kind,omitempty"` + + // FilenamePattern is the pattern to use for generating filenames. FilenameFmtVerb + // FielnameFmtVerbs may be specified to substitute Resource metadata into the filename. + FilenamePattern string `yaml:"filenamePattern,omitempty"` + + // Mode is the filemode to write. + Mode string `yaml:"mode,omitempty"` + + // Override will override the existing filename if it is set on the pattern. + // Otherwise the existing filename is kept. + Override bool `yaml:"override,omitempty"` +} + +var _ kio.Filter = &FileSetter{} + +const DefaultFilenamePattern = "%n_%k.yaml" + +func (f *FileSetter) Filter(input []*yaml.RNode) ([]*yaml.RNode, error) { + if f.Mode == "" { + f.Mode = fmt.Sprintf("%d", 0600) + } + if f.FilenamePattern == "" { + f.FilenamePattern = DefaultFilenamePattern + } + + resources := map[string][]*yaml.RNode{} + for i := range input { + m, err := input[i].GetMeta() + if err != nil { + return nil, err + } + file := f.FilenamePattern + file = strings.ReplaceAll(file, string(KindFmt), strings.ToLower(m.Kind)) + file = strings.ReplaceAll(file, string(NameFmt), strings.ToLower(m.Name)) + file = strings.ReplaceAll(file, string(NamespaceFmt), strings.ToLower(m.Namespace)) + + if _, found := m.Annotations[kioutil.PathAnnotation]; !found || f.Override { + if _, err := input[i].Pipe(yaml.SetAnnotation(kioutil.PathAnnotation, file)); err != nil { + return nil, err + } + } + resources[file] = append(resources[file], input[i]) + } + + var output []*yaml.RNode + for i := range resources { + if err := kioutil.SortNodes(resources[i]); err != nil { + return nil, err + } + for j := range resources[i] { + if _, err := resources[i][j].Pipe( + yaml.SetAnnotation(kioutil.IndexAnnotation, fmt.Sprintf("%d", j))); err != nil { + return nil, err + } + output = append(output, resources[i][j]) + } + } + return output, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/fmtr.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/fmtr.go new file mode 100644 index 0000000000..7f2acbda4c --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/fmtr.go @@ -0,0 +1,314 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package yamlfmt contains libraries for formatting yaml files containing +// Kubernetes Resource configuration. +// +// Yaml files are formatted by: +// - Sorting fields and map values +// - Sorting unordered lists for whitelisted types +// - Applying a canonical yaml Style +// +// Fields are ordered using a relative ordering applied to commonly +// encountered Resource fields. All Resources, including non-builtin +// Resources such as CRDs, share the same field precedence. +// +// Fields that do not appear in the explicit ordering are ordered +// lexicographically. +// +// A subset of well known known unordered lists are sorted by element field +// values. +package filters + +import ( + "bytes" + "fmt" + "io" + "sort" + + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type FormattingStrategy = string + +const ( + // NoFmtAnnotation determines if the resource should be formatted. + FmtAnnotation string = "config.kubernetes.io/formatting" + + // FmtStrategyStandard means the resource will be formatted according + // to the default rules. + FmtStrategyStandard FormattingStrategy = "standard" + + // FmtStrategyNone means the resource will not be formatted. + FmtStrategyNone FormattingStrategy = "none" +) + +// FormatInput returns the formatted input. +func FormatInput(input io.Reader) (*bytes.Buffer, error) { + buff := &bytes.Buffer{} + err := kio.Pipeline{ + Inputs: []kio.Reader{&kio.ByteReader{Reader: input}}, + Filters: []kio.Filter{FormatFilter{}}, + Outputs: []kio.Writer{kio.ByteWriter{Writer: buff}}, + }.Execute() + + return buff, err +} + +// FormatFileOrDirectory reads the file or directory and formats each file's +// contents by writing it back to the file. +func FormatFileOrDirectory(path string) error { + return kio.Pipeline{ + Inputs: []kio.Reader{kio.LocalPackageReader{ + PackagePath: path, + }}, + Filters: []kio.Filter{FormatFilter{}}, + Outputs: []kio.Writer{kio.LocalPackageWriter{PackagePath: path}}, + }.Execute() +} + +type FormatFilter struct { + Process func(n *yaml.Node) error + UseSchema bool +} + +var _ kio.Filter = FormatFilter{} + +func (f FormatFilter) Filter(slice []*yaml.RNode) ([]*yaml.RNode, error) { + for i := range slice { + fmtStrategy, err := getFormattingStrategy(slice[i]) + if err != nil { + return nil, err + } + + if fmtStrategy == FmtStrategyNone { + continue + } + + kindNode, err := slice[i].Pipe(yaml.Get("kind")) + if err != nil { + return nil, err + } + if kindNode == nil { + continue + } + apiVersionNode, err := slice[i].Pipe(yaml.Get("apiVersion")) + if err != nil { + return nil, err + } + if apiVersionNode == nil { + continue + } + kind, apiVersion := kindNode.YNode().Value, apiVersionNode.YNode().Value + var s *openapi.ResourceSchema + if f.UseSchema { + s = openapi.SchemaForResourceType(yaml.TypeMeta{APIVersion: apiVersion, Kind: kind}) + } else { + s = nil + } + err = (&formatter{apiVersion: apiVersion, kind: kind, process: f.Process}). + fmtNode(slice[i].YNode(), "", s) + if err != nil { + return nil, err + } + } + return slice, nil +} + +// getFormattingStrategy looks for the formatting annotation to determine +// which strategy should be used for formatting. The default is standard +// if no annotation is found. +func getFormattingStrategy(node *yaml.RNode) (FormattingStrategy, error) { + value, err := node.Pipe(yaml.GetAnnotation(FmtAnnotation)) + if err != nil || value == nil { + return FmtStrategyStandard, err + } + + fmtStrategy := value.YNode().Value + + switch fmtStrategy { + case FmtStrategyStandard: + return FmtStrategyStandard, nil + case FmtStrategyNone: + return FmtStrategyNone, nil + default: + return "", fmt.Errorf( + "formatting annotation has illegal value %s", fmtStrategy) + } +} + +type formatter struct { + apiVersion string + kind string + process func(n *yaml.Node) error +} + +// fmtNode recursively formats the Document Contents. +// See: https://godoc.org/gopkg.in/yaml.v3#Node +func (f *formatter) fmtNode(n *yaml.Node, path string, schema *openapi.ResourceSchema) error { + if n.Kind == yaml.ScalarNode && schema != nil && schema.Schema != nil { + // ensure values that are interpreted as non-string values (e.g. "true") + // are properly quoted + yaml.FormatNonStringStyle(n, *schema.Schema) + } + + // sort the order of mapping fields + if n.Kind == yaml.MappingNode { + sort.Sort(sortedMapContents(*n)) + } + + // sort the order of sequence elements if it is whitelisted + if n.Kind == yaml.SequenceNode { + if yaml.WhitelistedListSortKinds.Has(f.kind) && + yaml.WhitelistedListSortApis.Has(f.apiVersion) { + if sortField, found := yaml.WhitelistedListSortFields[path]; found { + sort.Sort(sortedSeqContents{Node: *n, sortField: sortField}) + } + } + } + + // format the Content + for i := range n.Content { + // MappingNode are structured as having their fields as Content, + // with the field-key and field-value alternating. e.g. Even elements + // are the keys and odd elements are the values + isFieldKey := n.Kind == yaml.MappingNode && i%2 == 0 + isFieldValue := n.Kind == yaml.MappingNode && i%2 == 1 + isElement := n.Kind == yaml.SequenceNode + + // run the process callback on the node if it has been set + // don't process keys: their format should be fixed + if f.process != nil && !isFieldKey { + if err := f.process(n.Content[i]); err != nil { + return err + } + } + + // get the schema for this Node + p := path + var s *openapi.ResourceSchema + switch { + case isFieldValue: + // if the node is a field, lookup the schema using the field name + p = fmt.Sprintf("%s.%s", path, n.Content[i-1].Value) + if schema != nil { + s = schema.Field(n.Content[i-1].Value) + } + case isElement: + // if the node is a list element, lookup the schema for the array items + if schema != nil { + s = schema.Elements() + } + } + // format the node using the schema + err := f.fmtNode(n.Content[i], p, s) + if err != nil { + return err + } + } + return nil +} + +// sortedMapContents sorts the Contents field of a MappingNode by the field names using a statically +// defined field precedence, and falling back on lexicographical sorting +type sortedMapContents yaml.Node + +func (s sortedMapContents) Len() int { + return len(s.Content) / 2 +} +func (s sortedMapContents) Swap(i, j int) { + // yaml MappingNode Contents are a list of field names followed by + // field values, rather than a list of field pairs. + // increment. + // + // e.g. ["field1Name", "field1Value", "field2Name", "field2Value"] + iFieldNameIndex := i * 2 + jFieldNameIndex := j * 2 + iFieldValueIndex := iFieldNameIndex + 1 + jFieldValueIndex := jFieldNameIndex + 1 + + // swap field names + s.Content[iFieldNameIndex], s.Content[jFieldNameIndex] = + s.Content[jFieldNameIndex], s.Content[iFieldNameIndex] + + // swap field values + s.Content[iFieldValueIndex], s.Content[jFieldValueIndex] = s. + Content[jFieldValueIndex], s.Content[iFieldValueIndex] +} + +func (s sortedMapContents) Less(i, j int) bool { + iFieldNameIndex := i * 2 + jFieldNameIndex := j * 2 + iFieldName := s.Content[iFieldNameIndex].Value + jFieldName := s.Content[jFieldNameIndex].Value + + // order by their precedence values looked up from the index + iOrder, foundI := yaml.FieldOrder[iFieldName] + jOrder, foundJ := yaml.FieldOrder[jFieldName] + if foundI && foundJ { + return iOrder < jOrder + } + + // known fields come before unknown fields + if foundI { + return true + } + if foundJ { + return false + } + + // neither field is known, sort them lexicographically + return iFieldName < jFieldName +} + +// sortedSeqContents sorts the Contents field of a SequenceNode by the value of +// the elements sortField. +// e.g. it will sort spec.template.spec.containers by the value of the container `name` field +type sortedSeqContents struct { + yaml.Node + sortField string +} + +func (s sortedSeqContents) Len() int { + return len(s.Content) +} +func (s sortedSeqContents) Swap(i, j int) { + s.Content[i], s.Content[j] = s.Content[j], s.Content[i] +} +func (s sortedSeqContents) Less(i, j int) bool { + // primitive lists -- sort by the element's primitive values + if s.sortField == "" { + iValue := s.Content[i].Value + jValue := s.Content[j].Value + return iValue < jValue + } + + // map lists -- sort by the element's sortField values + var iValue, jValue string + for a := range s.Content[i].Content { + if a%2 != 0 { + continue // not a fieldNameIndex + } + // locate the index of the sortField field + if s.Content[i].Content[a].Value == s.sortField { + // a is the yaml node for the field key, a+1 is the node for the field value + iValue = s.Content[i].Content[a+1].Value + } + } + for a := range s.Content[j].Content { + if a%2 != 0 { + continue // not a fieldNameIndex + } + + // locate the index of the sortField field + if s.Content[j].Content[a].Value == s.sortField { + // a is the yaml node for the field key, a+1 is the node for the field value + jValue = s.Content[j].Content[a+1].Value + } + } + + // compare the field values + return iValue < jValue +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/grep.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/grep.go new file mode 100644 index 0000000000..2eb8a88866 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/grep.go @@ -0,0 +1,117 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package filters + +import ( + "regexp" + "strings" + + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type GrepType int + +const ( + Regexp GrepType = 1 << iota + GreaterThanEq + GreaterThan + LessThan + LessThanEq +) + +// GrepFilter filters RNodes with a matching field +type GrepFilter struct { + Path []string `yaml:"path,omitempty"` + Value string `yaml:"value,omitempty"` + MatchType GrepType `yaml:"matchType,omitempty"` + InvertMatch bool `yaml:"invertMatch,omitempty"` + Compare func(a, b string) (int, error) +} + +var _ kio.Filter = GrepFilter{} + +func (f GrepFilter) Filter(input []*yaml.RNode) ([]*yaml.RNode, error) { + // compile the regular expression 1 time if we are matching using regex + var reg *regexp.Regexp + var err error + if f.MatchType == Regexp || f.MatchType == 0 { + reg, err = regexp.Compile(f.Value) + if err != nil { + return nil, err + } + } + + var output kio.ResourceNodeSlice + for i := range input { + node := input[i] + val, err := node.Pipe(&yaml.PathMatcher{Path: f.Path}) + if err != nil { + return nil, err + } + if val == nil || len(val.Content()) == 0 { + if f.InvertMatch { + output = append(output, input[i]) + } + continue + } + found := false + err = val.VisitElements(func(elem *yaml.RNode) error { + // get the value + var str string + if f.MatchType == Regexp { + style := elem.YNode().Style + defer func() { elem.YNode().Style = style }() + elem.YNode().Style = yaml.FlowStyle + str, err = elem.String() + if err != nil { + return err + } + str = strings.TrimSpace(strings.ReplaceAll(str, `"`, "")) + } else { + // if not regexp, then it needs to parse into a quantity and comments will + // break that + str = elem.YNode().Value + if str == "" { + return nil + } + } + + if f.MatchType == Regexp || f.MatchType == 0 { + if reg.MatchString(str) { + found = true + } + return nil + } + + comp, err := f.Compare(str, f.Value) + if err != nil { + return err + } + + if f.MatchType == GreaterThan && comp > 0 { + found = true + } + if f.MatchType == GreaterThanEq && comp >= 0 { + found = true + } + if f.MatchType == LessThan && comp < 0 { + found = true + } + if f.MatchType == LessThanEq && comp <= 0 { + found = true + } + return nil + }) + if err != nil { + return nil, err + } + if found == f.InvertMatch { + continue + } + + output = append(output, input[i]) + } + return output, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/local.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/local.go new file mode 100644 index 0000000000..bdac1a28fc --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/local.go @@ -0,0 +1,38 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package filters + +import ( + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +const LocalConfigAnnotation = "config.kubernetes.io/local-config" + +// IsLocalConfig filters Resources using the config.kubernetes.io/local-config annotation +type IsLocalConfig struct { + // IncludeLocalConfig will include local-config if set to true + IncludeLocalConfig bool `yaml:"includeLocalConfig,omitempty"` + + // ExcludeNonLocalConfig will exclude non local-config if set to true + ExcludeNonLocalConfig bool `yaml:"excludeNonLocalConfig,omitempty"` +} + +// Filter implements kio.Filter +func (c *IsLocalConfig) Filter(inputs []*yaml.RNode) ([]*yaml.RNode, error) { + var out []*yaml.RNode + for i := range inputs { + meta, err := inputs[i].GetMeta() + if err != nil { + return nil, err + } + _, local := meta.Annotations[LocalConfigAnnotation] + + if local && c.IncludeLocalConfig { + out = append(out, inputs[i]) + } else if !local && !c.ExcludeNonLocalConfig { + out = append(out, inputs[i]) + } + } + return out, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/merge.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/merge.go new file mode 100644 index 0000000000..5159052cc0 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/merge.go @@ -0,0 +1,86 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package merge contains libraries for merging Resources and Patches +package filters + +import ( + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" + "sigs.k8s.io/kustomize/kyaml/yaml/merge2" +) + +// MergeFilter merges Resources with the Group/Version/Kind/Namespace/Name together using +// a 2-way merge strategy. +// +// - Fields set to null in the source will be cleared from the destination +// - Fields with matching keys will be merged recursively +// - Lists with an associative key (e.g. name) will have their elements merged using the key +// - List without an associative key will have the dest list replaced by the source list +type MergeFilter struct { + Reverse bool +} + +var _ kio.Filter = MergeFilter{} + +type mergeKey struct { + apiVersion string + kind string + namespace string + name string +} + +// MergeFilter implements kio.Filter by merging Resources with the same G/V/K/NS/N +func (c MergeFilter) Filter(input []*yaml.RNode) ([]*yaml.RNode, error) { + // invert the merge precedence + if c.Reverse { + for i, j := 0, len(input)-1; i < j; i, j = i+1, j-1 { + input[i], input[j] = input[j], input[i] + } + } + + // index the Resources by G/V/K/NS/N + index := map[mergeKey][]*yaml.RNode{} + // retain the original ordering + var order []mergeKey + for i := range input { + meta, err := input[i].GetMeta() + if err != nil { + return nil, err + } + key := mergeKey{ + apiVersion: meta.APIVersion, + kind: meta.Kind, + namespace: meta.Namespace, + name: meta.Name, + } + if _, found := index[key]; !found { + order = append(order, key) + } + index[key] = append(index[key], input[i]) + } + + // merge each of the G/V/K/NS/N lists + var output []*yaml.RNode + var err error + for _, k := range order { + var merged *yaml.RNode + resources := index[k] + for i := range resources { + patch := resources[i] + if merged == nil { + // first resources, don't merge it + merged = resources[i] + } else { + merged, err = merge2.Merge(patch, merged, yaml.MergeOptions{ + ListIncreaseDirection: yaml.MergeOptionsListPrepend, + }) + if err != nil { + return nil, err + } + } + } + output = append(output, merged) + } + return output, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/merge3.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/merge3.go new file mode 100644 index 0000000000..27dd0f766d --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/merge3.go @@ -0,0 +1,203 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package filters + +import ( + "fmt" + + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/kio/kioutil" + "sigs.k8s.io/kustomize/kyaml/yaml" + "sigs.k8s.io/kustomize/kyaml/yaml/merge3" +) + +const ( + mergeSourceAnnotation = "config.kubernetes.io/merge-source" + mergeSourceOriginal = "original" + mergeSourceUpdated = "updated" + mergeSourceDest = "dest" +) + +// Merge3 performs a 3-way merge on the original, updated, and destination packages. +type Merge3 struct { + OriginalPath string + UpdatedPath string + DestPath string + MatchFilesGlob []string + + // MergeOnPath will use the relative filepath as part of the merge key. + // This may be necessary if the directory contains multiple copies of + // the same resource, or resources patches. + MergeOnPath bool +} + +func (m Merge3) Merge() error { + // Read the destination package. The ReadWriter will take take of deleting files + // for removed resources. + var inputs []kio.Reader + dest := &kio.LocalPackageReadWriter{ + PackagePath: m.DestPath, + MatchFilesGlob: m.MatchFilesGlob, + SetAnnotations: map[string]string{mergeSourceAnnotation: mergeSourceDest}, + } + inputs = append(inputs, dest) + + // Read the original package + inputs = append(inputs, kio.LocalPackageReader{ + PackagePath: m.OriginalPath, + MatchFilesGlob: m.MatchFilesGlob, + SetAnnotations: map[string]string{mergeSourceAnnotation: mergeSourceOriginal}, + }) + + // Read the updated package + inputs = append(inputs, kio.LocalPackageReader{ + PackagePath: m.UpdatedPath, + MatchFilesGlob: m.MatchFilesGlob, + SetAnnotations: map[string]string{mergeSourceAnnotation: mergeSourceUpdated}, + }) + + return kio.Pipeline{ + Inputs: inputs, + Filters: []kio.Filter{m}, + Outputs: []kio.Writer{dest}, + }.Execute() +} + +// Filter combines Resources with the same GVK + N + NS into tuples, and then merges them +func (m Merge3) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + // index the nodes by their identity + tl := tuples{mergeOnPath: m.MergeOnPath} + for i := range nodes { + if err := tl.add(nodes[i]); err != nil { + return nil, err + } + } + + // iterate over the inputs, merging as needed + var output []*yaml.RNode + for i := range tl.list { + t := tl.list[i] + switch { + case t.original == nil && t.updated == nil && t.dest != nil: + // added locally -- keep dest + output = append(output, t.dest) + case t.original == nil && t.updated != nil && t.dest == nil: + // added in the update -- add update + output = append(output, t.updated) + case t.original != nil && t.updated == nil: + // deleted in the update + // don't include the resource in the output + case t.original != nil && t.dest == nil: + // deleted locally + // don't include the resource in the output + default: + // dest and updated are non-nil -- merge them + node, err := t.merge() + if err != nil { + return nil, err + } + if node != nil { + output = append(output, node) + } + } + } + return output, nil +} + +// tuples combines nodes with the same GVK + N + NS +type tuples struct { + list []*tuple + + // mergeOnPath if set to true will use the resource filepath + // as part of the merge key + mergeOnPath bool +} + +// isSameResource returns true if meta1 and meta2 are for the same logic resource +func (ts *tuples) isSameResource(meta1, meta2 yaml.ResourceMeta) bool { + if meta1.Name != meta2.Name { + return false + } + if meta1.Namespace != meta2.Namespace { + return false + } + if meta1.APIVersion != meta2.APIVersion { + return false + } + if meta1.Kind != meta2.Kind { + return false + } + if ts.mergeOnPath { + // directories may contain multiple copies of a resource with the same + // name, namespace, apiVersion and kind -- e.g. kustomize patches, or + // multiple environments + // mergeOnPath configures the merge logic to use the path as part of the + // resource key + if meta1.Annotations[kioutil.PathAnnotation] != meta2.Annotations[kioutil.PathAnnotation] { + return false + } + } + return true +} + +// add adds a node to the list, combining it with an existing matching Resource if found +func (ts *tuples) add(node *yaml.RNode) error { + nodeMeta, err := node.GetMeta() + if err != nil { + return err + } + for i := range ts.list { + t := ts.list[i] + if ts.isSameResource(t.meta, nodeMeta) { + return t.add(node) + } + } + t := &tuple{meta: nodeMeta} + if err := t.add(node); err != nil { + return err + } + ts.list = append(ts.list, t) + return nil +} + +// tuple wraps an original, updated, and dest tuple for a given Resource +type tuple struct { + meta yaml.ResourceMeta + original *yaml.RNode + updated *yaml.RNode + dest *yaml.RNode +} + +// add sets the corresponding tuple field for the node +func (t *tuple) add(node *yaml.RNode) error { + meta, err := node.GetMeta() + if err != nil { + return err + } + switch meta.Annotations[mergeSourceAnnotation] { + case mergeSourceDest: + if t.dest != nil { + return fmt.Errorf("dest source already specified") + } + t.dest = node + case mergeSourceOriginal: + if t.original != nil { + return fmt.Errorf("original source already specified") + } + t.original = node + case mergeSourceUpdated: + if t.updated != nil { + return fmt.Errorf("updated source already specified") + } + t.updated = node + default: + return fmt.Errorf("no source annotation for Resource") + } + return nil +} + +// merge performs a 3-way merge on the tuple +func (t *tuple) merge() (*yaml.RNode, error) { + return merge3.Merge(t.dest, t.original, t.updated) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/modify.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/modify.go new file mode 100644 index 0000000000..b1090302af --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/modify.go @@ -0,0 +1,4 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package filters diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/stripcomments.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/stripcomments.go new file mode 100644 index 0000000000..8e9ecb3f24 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/stripcomments.go @@ -0,0 +1,32 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package filters + +import ( + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type StripCommentsFilter struct{} + +var _ kio.Filter = StripCommentsFilter{} + +func (f StripCommentsFilter) Filter(slice []*yaml.RNode) ([]*yaml.RNode, error) { + for i := range slice { + stripComments(slice[i].YNode()) + } + return slice, nil +} + +func stripComments(node *yaml.Node) { + if node == nil { + return + } + node.HeadComment = "" + node.LineComment = "" + node.FootComment = "" + for i := range node.Content { + stripComments(node.Content[i]) + } +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/ignorefilesmatcher.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/ignorefilesmatcher.go new file mode 100644 index 0000000000..9a6ce924bd --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/ignorefilesmatcher.go @@ -0,0 +1,100 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package kio + +import ( + "os" + "path/filepath" + "strings" + + "github.com/monochromegane/go-gitignore" + "sigs.k8s.io/kustomize/kyaml/ext" +) + +// ignoreFilesMatcher handles `.krmignore` files, which allows for ignoring +// files or folders in a package. The format of this file is a subset of the +// gitignore format, with recursive patterns (like a/**/c) not supported. If a +// file or folder matches any of the patterns in the .krmignore file for the +// package, it will be excluded. +// +// It works as follows: +// +// * It will look for .krmignore file in the top folder and on the top level +// of any subpackages. Subpackages are defined by the presence of a Krmfile +// in the folder. +// * `.krmignore` files only cover files and folders for the package in which +// it is defined. So ignore patterns defined in a parent package does not +// affect which files are ignored from a subpackage. +// * An ignore pattern can not ignore a subpackage. So even if the parent +// package contains a pattern that ignores the directory foo, if foo is a +// subpackage, it will still be included if the IncludeSubpackages property +// is set to true +type ignoreFilesMatcher struct { + matchers []matcher +} + +// readIgnoreFile checks whether there is a .krmignore file in the path, and +// if it is, reads it in and turns it into a matcher. If we can't find a file, +// we just add a matcher that match nothing. +func (i *ignoreFilesMatcher) readIgnoreFile(path string) error { + i.verifyPath(path) + m, err := gitignore.NewGitIgnore(filepath.Join(path, ext.IgnoreFileName())) + if err != nil { + if os.IsNotExist(err) { + i.matchers = append(i.matchers, matcher{ + matcher: gitignore.DummyIgnoreMatcher(false), + basePath: path, + }) + return nil + } + return err + } + i.matchers = append(i.matchers, matcher{ + matcher: m, + basePath: path, + }) + return nil +} + +// verifyPath checks whether the top matcher on the stack +// is correct for the provided filepath. Matchers are removed once +// we encounter a filepath that is not a subpath of the basepath for +// the matcher. +func (i *ignoreFilesMatcher) verifyPath(path string) { + for j := len(i.matchers) - 1; j >= 0; j-- { + matcher := i.matchers[j] + if strings.HasPrefix(path, matcher.basePath) || path == matcher.basePath { + i.matchers = i.matchers[:j+1] + return + } + } +} + +// matchFile checks whether the file given by the provided path matches +// any of the patterns in the .krmignore file for the package. +func (i *ignoreFilesMatcher) matchFile(path string) bool { + if len(i.matchers) == 0 { + return false + } + i.verifyPath(filepath.Dir(path)) + return i.matchers[len(i.matchers)-1].matcher.Match(path, false) +} + +// matchFile checks whether the directory given by the provided path matches +// any of the patterns in the .krmignore file for the package. +func (i *ignoreFilesMatcher) matchDir(path string) bool { + if len(i.matchers) == 0 { + return false + } + i.verifyPath(path) + return i.matchers[len(i.matchers)-1].matcher.Match(path, true) +} + +// matcher wraps the gitignore matcher and the path to the folder +// where the file was found. +type matcher struct { + matcher gitignore.IgnoreMatcher + + basePath string +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/kio.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/kio.go new file mode 100644 index 0000000000..12271aa810 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/kio.go @@ -0,0 +1,149 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package kio contains low-level libraries for reading, modifying and writing +// Resource Configuration and packages. +package kio + +import ( + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// Reader reads ResourceNodes. Analogous to io.Reader. +type Reader interface { + Read() ([]*yaml.RNode, error) +} + +// ResourceNodeSlice is a collection of ResourceNodes. +// While ResourceNodeSlice has no inherent constraints on ordering or uniqueness, specific +// Readers, Filters or Writers may have constraints. +type ResourceNodeSlice []*yaml.RNode + +var _ Reader = ResourceNodeSlice{} + +func (o ResourceNodeSlice) Read() ([]*yaml.RNode, error) { + return o, nil +} + +// Writer writes ResourceNodes. Analogous to io.Writer. +type Writer interface { + Write([]*yaml.RNode) error +} + +// WriterFunc implements a Writer as a function. +type WriterFunc func([]*yaml.RNode) error + +func (fn WriterFunc) Write(o []*yaml.RNode) error { + return fn(o) +} + +// ReaderWriter implements both Reader and Writer interfaces +type ReaderWriter interface { + Reader + Writer +} + +// Filter modifies a collection of Resource Configuration by returning the modified slice. +// When possible, Filters should be serializable to yaml so that they can be described +// as either data or code. +// +// Analogous to http://www.linfo.org/filters.html +type Filter interface { + Filter([]*yaml.RNode) ([]*yaml.RNode, error) +} + +// FilterFunc implements a Filter as a function. +type FilterFunc func([]*yaml.RNode) ([]*yaml.RNode, error) + +func (fn FilterFunc) Filter(o []*yaml.RNode) ([]*yaml.RNode, error) { + return fn(o) +} + +// Pipeline reads Resource Configuration from a set of Inputs, applies some +// transformation filters, and writes the results to a set of Outputs. +// +// Analogous to http://www.linfo.org/pipes.html +type Pipeline struct { + // Inputs provide sources for Resource Configuration to be read. + Inputs []Reader `yaml:"inputs,omitempty"` + + // Filters are transformations applied to the Resource Configuration. + // They are applied in the order they are specified. + // Analogous to http://www.linfo.org/filters.html + Filters []Filter `yaml:"filters,omitempty"` + + // Outputs are where the transformed Resource Configuration is written. + Outputs []Writer `yaml:"outputs,omitempty"` + + // ContinueOnEmptyResult configures what happens when a filter in the pipeline + // returns an empty result. + // If it is false (default), subsequent filters will be skipped and the result + // will be returned immediately. This is useful as an optimization when you + // know that subsequent filters will not alter the empty result. + // If it is true, the empty result will be provided as input to the next + // filter in the list. This is useful when subsequent functions in the + // pipeline may generate new resources. + ContinueOnEmptyResult bool `yaml:"continueOnEmptyResult,omitempty"` +} + +// Execute executes each step in the sequence, returning immediately after encountering +// any error as part of the Pipeline. +func (p Pipeline) Execute() error { + return p.ExecuteWithCallback(nil) +} + +// PipelineExecuteCallbackFunc defines a callback function that will be called each time a step in the pipeline succeeds. +type PipelineExecuteCallbackFunc = func(op Filter) + +// ExecuteWithCallback executes each step in the sequence, returning immediately after encountering +// any error as part of the Pipeline. The callback will be called each time a step succeeds. +func (p Pipeline) ExecuteWithCallback(callback PipelineExecuteCallbackFunc) error { + var result []*yaml.RNode + + // read from the inputs + for _, i := range p.Inputs { + nodes, err := i.Read() + if err != nil { + return errors.Wrap(err) + } + result = append(result, nodes...) + } + + // apply operations + var err error + for i := range p.Filters { + op := p.Filters[i] + if callback != nil { + callback(op) + } + result, err = op.Filter(result) + // TODO (issue 2872): This len(result) == 0 should be removed and empty result list should be + // handled by outputs. However currently some writer like LocalPackageReadWriter + // will clear the output directory and which will cause unpredictable results + if len(result) == 0 && !p.ContinueOnEmptyResult || err != nil { + return errors.Wrap(err) + } + } + + // write to the outputs + for _, o := range p.Outputs { + if err := o.Write(result); err != nil { + return errors.Wrap(err) + } + } + return nil +} + +// FilterAll runs the yaml.Filter against all inputs +func FilterAll(filter yaml.Filter) Filter { + return FilterFunc(func(nodes []*yaml.RNode) ([]*yaml.RNode, error) { + for i := range nodes { + _, err := filter.Filter(nodes[i]) + if err != nil { + return nil, errors.Wrap(err) + } + } + return nodes, nil + }) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/kioutil/kioutil.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/kioutil/kioutil.go new file mode 100644 index 0000000000..1d5e3bf586 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/kioutil/kioutil.go @@ -0,0 +1,233 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package kioutil + +import ( + "fmt" + "path" + "sort" + "strconv" + "strings" + + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type AnnotationKey = string + +const ( + // IndexAnnotation records the index of a specific resource in a file or input stream. + IndexAnnotation AnnotationKey = "config.kubernetes.io/index" + + // PathAnnotation records the path to the file the Resource was read from + PathAnnotation AnnotationKey = "config.kubernetes.io/path" +) + +func GetFileAnnotations(rn *yaml.RNode) (string, string, error) { + meta, err := rn.GetMeta() + if err != nil { + return "", "", err + } + path := meta.Annotations[PathAnnotation] + index := meta.Annotations[IndexAnnotation] + return path, index, nil +} + +// ErrorIfMissingAnnotation validates the provided annotations are present on the given resources +func ErrorIfMissingAnnotation(nodes []*yaml.RNode, keys ...AnnotationKey) error { + for _, key := range keys { + for _, node := range nodes { + val, err := node.Pipe(yaml.GetAnnotation(key)) + if err != nil { + return errors.Wrap(err) + } + if val == nil { + return errors.Errorf("missing annotation %s", key) + } + } + } + return nil +} + +// CreatePathAnnotationValue creates a default path annotation value for a Resource. +// The path prefix will be dir. +func CreatePathAnnotationValue(dir string, m yaml.ResourceMeta) string { + filename := fmt.Sprintf("%s_%s.yaml", strings.ToLower(m.Kind), m.Name) + return path.Join(dir, m.Namespace, filename) +} + +// DefaultPathAndIndexAnnotation sets a default path or index value on any nodes missing the +// annotation +func DefaultPathAndIndexAnnotation(dir string, nodes []*yaml.RNode) error { + counts := map[string]int{} + + // check each node for the path annotation + for i := range nodes { + m, err := nodes[i].GetMeta() + if err != nil { + return err + } + + // calculate the max index in each file in case we are appending + if p, found := m.Annotations[PathAnnotation]; found { + // record the max indexes into each file + if i, found := m.Annotations[IndexAnnotation]; found { + index, _ := strconv.Atoi(i) + if index > counts[p] { + counts[p] = index + } + } + + // has the path annotation already -- do nothing + continue + } + + // set a path annotation on the Resource + path := CreatePathAnnotationValue(dir, m) + if err := nodes[i].PipeE(yaml.SetAnnotation(PathAnnotation, path)); err != nil { + return err + } + } + + // set the index annotations + for i := range nodes { + m, err := nodes[i].GetMeta() + if err != nil { + return err + } + + if _, found := m.Annotations[IndexAnnotation]; found { + continue + } + + p := m.Annotations[PathAnnotation] + + // set an index annotation on the Resource + c := counts[p] + counts[p] = c + 1 + if err := nodes[i].PipeE( + yaml.SetAnnotation(IndexAnnotation, fmt.Sprintf("%d", c))); err != nil { + return err + } + } + return nil +} + +// DefaultPathAnnotation sets a default path annotation on any Reources +// missing it. +func DefaultPathAnnotation(dir string, nodes []*yaml.RNode) error { + // check each node for the path annotation + for i := range nodes { + m, err := nodes[i].GetMeta() + if err != nil { + return err + } + + if _, found := m.Annotations[PathAnnotation]; found { + // has the path annotation already -- do nothing + continue + } + + // set a path annotation on the Resource + path := CreatePathAnnotationValue(dir, m) + if err := nodes[i].PipeE(yaml.SetAnnotation(PathAnnotation, path)); err != nil { + return err + } + } + return nil +} + +// Map invokes fn for each element in nodes. +func Map(nodes []*yaml.RNode, fn func(*yaml.RNode) (*yaml.RNode, error)) ([]*yaml.RNode, error) { + var returnNodes []*yaml.RNode + for i := range nodes { + n, err := fn(nodes[i]) + if err != nil { + return nil, errors.Wrap(err) + } + if n != nil { + returnNodes = append(returnNodes, n) + } + } + return returnNodes, nil +} + +func MapMeta(nodes []*yaml.RNode, fn func(*yaml.RNode, yaml.ResourceMeta) (*yaml.RNode, error)) ( + []*yaml.RNode, error) { + var returnNodes []*yaml.RNode + for i := range nodes { + meta, err := nodes[i].GetMeta() + if err != nil { + return nil, errors.Wrap(err) + } + n, err := fn(nodes[i], meta) + if err != nil { + return nil, errors.Wrap(err) + } + if n != nil { + returnNodes = append(returnNodes, n) + } + } + return returnNodes, nil +} + +// SortNodes sorts nodes in place: +// - by PathAnnotation annotation +// - by IndexAnnotation annotation +func SortNodes(nodes []*yaml.RNode) error { + var err error + // use stable sort to keep ordering of equal elements + sort.SliceStable(nodes, func(i, j int) bool { + if err != nil { + return false + } + var iMeta, jMeta yaml.ResourceMeta + if iMeta, _ = nodes[i].GetMeta(); err != nil { + return false + } + if jMeta, _ = nodes[j].GetMeta(); err != nil { + return false + } + + iValue := iMeta.Annotations[PathAnnotation] + jValue := jMeta.Annotations[PathAnnotation] + if iValue != jValue { + return iValue < jValue + } + + iValue = iMeta.Annotations[IndexAnnotation] + jValue = jMeta.Annotations[IndexAnnotation] + + // put resource config without an index first + if iValue == jValue { + return false + } + if iValue == "" { + return true + } + if jValue == "" { + return false + } + + // sort by index + var iIndex, jIndex int + iIndex, err = strconv.Atoi(iValue) + if err != nil { + err = fmt.Errorf("unable to parse config.kubernetes.io/index %s :%v", iValue, err) + return false + } + jIndex, err = strconv.Atoi(jValue) + if err != nil { + err = fmt.Errorf("unable to parse config.kubernetes.io/index %s :%v", jValue, err) + return false + } + if iIndex != jIndex { + return iIndex < jIndex + } + + // elements are equal + return false + }) + return errors.Wrap(err) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/pkgio_reader.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/pkgio_reader.go new file mode 100644 index 0000000000..1dfec3c773 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/pkgio_reader.go @@ -0,0 +1,326 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package kio + +import ( + "fmt" + "os" + "path/filepath" + + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/kio/kioutil" + "sigs.k8s.io/kustomize/kyaml/sets" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// requiredResourcePackageAnnotations are annotations that are required to write resources back to +// files. +var requiredResourcePackageAnnotations = []string{kioutil.IndexAnnotation, kioutil.PathAnnotation} + +// PackageBuffer implements Reader and Writer, storing Resources in a local field. +type PackageBuffer struct { + Nodes []*yaml.RNode +} + +func (r *PackageBuffer) Read() ([]*yaml.RNode, error) { + return r.Nodes, nil +} + +func (r *PackageBuffer) Write(nodes []*yaml.RNode) error { + r.Nodes = nodes + return nil +} + +// LocalPackageReadWriter reads and writes Resources from / to a local directory. +// When writing, LocalPackageReadWriter will delete files if all of the Resources from +// that file have been removed from the output. +type LocalPackageReadWriter struct { + Kind string `yaml:"kind,omitempty"` + + KeepReaderAnnotations bool `yaml:"keepReaderAnnotations,omitempty"` + + // PackagePath is the path to the package directory. + PackagePath string `yaml:"path,omitempty"` + + // PackageFileName is the name of file containing package metadata. + // It will be used to identify package. + PackageFileName string `yaml:"packageFileName,omitempty"` + + // MatchFilesGlob configures Read to only read Resources from files matching any of the + // provided patterns. + // Defaults to ["*.yaml", "*.yml"] if empty. To match all files specify ["*"]. + MatchFilesGlob []string `yaml:"matchFilesGlob,omitempty"` + + // IncludeSubpackages will configure Read to read Resources from subpackages. + // Subpackages are identified by presence of PackageFileName. + IncludeSubpackages bool `yaml:"includeSubpackages,omitempty"` + + // ErrorIfNonResources will configure Read to throw an error if yaml missing missing + // apiVersion or kind is read. + ErrorIfNonResources bool `yaml:"errorIfNonResources,omitempty"` + + // OmitReaderAnnotations will cause the reader to skip annotating Resources with the file + // path and mode. + OmitReaderAnnotations bool `yaml:"omitReaderAnnotations,omitempty"` + + // SetAnnotations are annotations to set on the Resources as they are read. + SetAnnotations map[string]string `yaml:"setAnnotations,omitempty"` + + // NoDeleteFiles if set to true, LocalPackageReadWriter won't delete any files + NoDeleteFiles bool `yaml:"noDeleteFiles,omitempty"` + + files sets.String + + // FileSkipFunc is a function which returns true if reader should ignore + // the file + FileSkipFunc LocalPackageSkipFileFunc +} + +func (r *LocalPackageReadWriter) Read() ([]*yaml.RNode, error) { + nodes, err := LocalPackageReader{ + PackagePath: r.PackagePath, + MatchFilesGlob: r.MatchFilesGlob, + IncludeSubpackages: r.IncludeSubpackages, + ErrorIfNonResources: r.ErrorIfNonResources, + SetAnnotations: r.SetAnnotations, + PackageFileName: r.PackageFileName, + FileSkipFunc: r.FileSkipFunc, + }.Read() + if err != nil { + return nil, errors.Wrap(err) + } + // keep track of all the files + if !r.NoDeleteFiles { + r.files, err = r.getFiles(nodes) + if err != nil { + return nil, errors.Wrap(err) + } + } + return nodes, nil +} + +func (r *LocalPackageReadWriter) Write(nodes []*yaml.RNode) error { + newFiles, err := r.getFiles(nodes) + if err != nil { + return errors.Wrap(err) + } + var clear []string + for k := range r.SetAnnotations { + clear = append(clear, k) + } + err = LocalPackageWriter{ + PackagePath: r.PackagePath, + ClearAnnotations: clear, + KeepReaderAnnotations: r.KeepReaderAnnotations, + }.Write(nodes) + if err != nil { + return errors.Wrap(err) + } + deleteFiles := r.files.Difference(newFiles) + for f := range deleteFiles { + if err = os.Remove(filepath.Join(r.PackagePath, f)); err != nil { + return errors.Wrap(err) + } + } + return nil +} + +func (r *LocalPackageReadWriter) getFiles(nodes []*yaml.RNode) (sets.String, error) { + val := sets.String{} + for _, n := range nodes { + path, _, err := kioutil.GetFileAnnotations(n) + if err != nil { + return nil, errors.Wrap(err) + } + val.Insert(path) + } + return val, nil +} + +// LocalPackageSkipFileFunc is a function which returns true if the file +// in the package should be ignored by reader. +// relPath is an OS specific relative path +type LocalPackageSkipFileFunc func(relPath string) bool + +// LocalPackageReader reads ResourceNodes from a local package. +type LocalPackageReader struct { + Kind string `yaml:"kind,omitempty"` + + // PackagePath is the path to the package directory. + PackagePath string `yaml:"path,omitempty"` + + // PackageFileName is the name of file containing package metadata. + // It will be used to identify package. + PackageFileName string `yaml:"packageFileName,omitempty"` + + // MatchFilesGlob configures Read to only read Resources from files matching any of the + // provided patterns. + // Defaults to ["*.yaml", "*.yml"] if empty. To match all files specify ["*"]. + MatchFilesGlob []string `yaml:"matchFilesGlob,omitempty"` + + // IncludeSubpackages will configure Read to read Resources from subpackages. + // Subpackages are identified by presence of PackageFileName. + IncludeSubpackages bool `yaml:"includeSubpackages,omitempty"` + + // ErrorIfNonResources will configure Read to throw an error if yaml missing missing + // apiVersion or kind is read. + ErrorIfNonResources bool `yaml:"errorIfNonResources,omitempty"` + + // OmitReaderAnnotations will cause the reader to skip annotating Resources with the file + // path and mode. + OmitReaderAnnotations bool `yaml:"omitReaderAnnotations,omitempty"` + + // SetAnnotations are annotations to set on the Resources as they are read. + SetAnnotations map[string]string `yaml:"setAnnotations,omitempty"` + + // FileSkipFunc is a function which returns true if reader should ignore + // the file + FileSkipFunc LocalPackageSkipFileFunc +} + +var _ Reader = LocalPackageReader{} + +var DefaultMatch = []string{"*.yaml", "*.yml"} +var JSONMatch = []string{"*.json"} +var MatchAll = append(DefaultMatch, JSONMatch...) + +// Read reads the Resources. +func (r LocalPackageReader) Read() ([]*yaml.RNode, error) { + if r.PackagePath == "" { + return nil, fmt.Errorf("must specify package path") + } + + // use slash for path + r.PackagePath = filepath.ToSlash(r.PackagePath) + if len(r.MatchFilesGlob) == 0 { + r.MatchFilesGlob = DefaultMatch + } + + var operand ResourceNodeSlice + var pathRelativeTo string + var err error + ignoreFilesMatcher := &ignoreFilesMatcher{} + r.PackagePath, err = filepath.Abs(r.PackagePath) + if err != nil { + return nil, errors.Wrap(err) + } + err = filepath.Walk(r.PackagePath, func( + path string, info os.FileInfo, err error) error { + if err != nil { + return errors.Wrap(err) + } + + // is this the user specified path? + if path == r.PackagePath { + if info.IsDir() { + // skip the root package directory, but check for a + // .krmignore file first. + pathRelativeTo = r.PackagePath + return ignoreFilesMatcher.readIgnoreFile(path) + } + + // user specified path is a file rather than a directory. + // make its path relative to its parent so it can be written to another file. + pathRelativeTo = filepath.Dir(r.PackagePath) + } + + // check if we should skip the directory or file + if info.IsDir() { + return r.shouldSkipDir(path, ignoreFilesMatcher) + } + + // get the relative path to file within the package so we can write the files back out + // to another location. + relPath, err := filepath.Rel(pathRelativeTo, path) + if err != nil { + return errors.WrapPrefixf(err, pathRelativeTo) + } + if match, err := r.shouldSkipFile(path, relPath, ignoreFilesMatcher); err != nil { + return err + } else if match { + // skip this file + return nil + } + + r.initReaderAnnotations(relPath, info) + nodes, err := r.readFile(path, info) + if err != nil { + return errors.WrapPrefixf(err, path) + } + operand = append(operand, nodes...) + return nil + }) + return operand, err +} + +// readFile reads the ResourceNodes from a file +func (r *LocalPackageReader) readFile(path string, _ os.FileInfo) ([]*yaml.RNode, error) { + f, err := os.Open(path) + if err != nil { + return nil, err + } + defer f.Close() + + rr := &ByteReader{ + DisableUnwrapping: true, + Reader: f, + OmitReaderAnnotations: r.OmitReaderAnnotations, + SetAnnotations: r.SetAnnotations, + } + return rr.Read() +} + +// shouldSkipFile returns true if the file should be skipped +func (r *LocalPackageReader) shouldSkipFile(path, relPath string, matcher *ignoreFilesMatcher) (bool, error) { + // check if the file is covered by a .krmignore file. + if matcher.matchFile(path) { + return true, nil + } + + if r.FileSkipFunc != nil && r.FileSkipFunc(relPath) { + return true, nil + } + + // check if the files are in scope + for _, g := range r.MatchFilesGlob { + if match, err := filepath.Match(g, filepath.Base(path)); err != nil { + return true, errors.Wrap(err) + } else if match { + return false, nil + } + } + return true, nil +} + +// initReaderAnnotations adds the LocalPackageReader Annotations to r.SetAnnotations +func (r *LocalPackageReader) initReaderAnnotations(path string, _ os.FileInfo) { + if r.SetAnnotations == nil { + r.SetAnnotations = map[string]string{} + } + if !r.OmitReaderAnnotations { + r.SetAnnotations[kioutil.PathAnnotation] = path + } +} + +// shouldSkipDir returns a filepath.SkipDir if the directory should be skipped +func (r *LocalPackageReader) shouldSkipDir(path string, matcher *ignoreFilesMatcher) error { + if matcher.matchDir(path) { + return filepath.SkipDir + } + + if r.PackageFileName == "" { + return nil + } + // check if this is a subpackage + _, err := os.Stat(filepath.Join(path, r.PackageFileName)) + if os.IsNotExist(err) { + return nil + } else if err != nil { + return errors.Wrap(err) + } + if !r.IncludeSubpackages { + return filepath.SkipDir + } + return matcher.readIgnoreFile(path) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/pkgio_writer.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/pkgio_writer.go new file mode 100644 index 0000000000..b671512e33 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/pkgio_writer.go @@ -0,0 +1,152 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package kio + +import ( + "fmt" + "os" + "path/filepath" + "strings" + + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/kio/kioutil" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// LocalPackageWriter writes ResourceNodes to a filesystem +type LocalPackageWriter struct { + Kind string `yaml:"kind,omitempty"` + + // PackagePath is the path to the package directory. + PackagePath string `yaml:"path,omitempty"` + + // KeepReaderAnnotations if set will retain the annotations set by LocalPackageReader + KeepReaderAnnotations bool `yaml:"keepReaderAnnotations,omitempty"` + + // ClearAnnotations will clear annotations before writing the resources + ClearAnnotations []string `yaml:"clearAnnotations,omitempty"` +} + +var _ Writer = LocalPackageWriter{} + +func (r LocalPackageWriter) Write(nodes []*yaml.RNode) error { + // set the path and index annotations if they are missing + if err := kioutil.DefaultPathAndIndexAnnotation("", nodes); err != nil { + return err + } + + if s, err := os.Stat(r.PackagePath); err != nil { + return err + } else if !s.IsDir() { + // if the user specified input isn't a directory, the package is the directory of the + // target + r.PackagePath = filepath.Dir(r.PackagePath) + } + + // setup indexes for writing Resources back to files + if err := r.errorIfMissingRequiredAnnotation(nodes); err != nil { + return err + } + outputFiles, err := r.indexByFilePath(nodes) + if err != nil { + return err + } + for k := range outputFiles { + if err = kioutil.SortNodes(outputFiles[k]); err != nil { + return errors.Wrap(err) + } + } + + if !r.KeepReaderAnnotations { + r.ClearAnnotations = append(r.ClearAnnotations, kioutil.PathAnnotation) + } + + // validate outputs before writing any + for path := range outputFiles { + outputPath := filepath.Join(r.PackagePath, path) + if st, err := os.Stat(outputPath); !os.IsNotExist(err) { + if err != nil { + return errors.Wrap(err) + } + if st.IsDir() { + return fmt.Errorf("config.kubernetes.io/path cannot be a directory: %s", path) + } + } + + err = os.MkdirAll(filepath.Dir(outputPath), 0700) + if err != nil { + return errors.Wrap(err) + } + } + + // write files + for path := range outputFiles { + outputPath := filepath.Join(r.PackagePath, path) + err = os.MkdirAll(filepath.Dir(filepath.Join(r.PackagePath, path)), 0700) + if err != nil { + return errors.Wrap(err) + } + + f, err := os.OpenFile(outputPath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.FileMode(0600)) + if err != nil { + return errors.Wrap(err) + } + if err := func() error { + defer f.Close() + w := ByteWriter{ + Writer: f, + KeepReaderAnnotations: r.KeepReaderAnnotations, + ClearAnnotations: r.ClearAnnotations, + } + if err = w.Write(outputFiles[path]); err != nil { + return errors.Wrap(err) + } + return nil + }(); err != nil { + return errors.Wrap(err) + } + } + + return nil +} + +func (r LocalPackageWriter) errorIfMissingRequiredAnnotation(nodes []*yaml.RNode) error { + for i := range nodes { + for _, s := range requiredResourcePackageAnnotations { + key, err := nodes[i].Pipe(yaml.GetAnnotation(s)) + if err != nil { + return errors.Wrap(err) + } + if key == nil || key.YNode() == nil || key.YNode().Value == "" { + return errors.Errorf( + "resources must be annotated with %s to be written to files", s) + } + } + } + return nil +} + +func (r LocalPackageWriter) indexByFilePath(nodes []*yaml.RNode) (map[string][]*yaml.RNode, error) { + outputFiles := map[string][]*yaml.RNode{} + for i := range nodes { + // parse the file write path + node := nodes[i] + value, err := node.Pipe(yaml.GetAnnotation(kioutil.PathAnnotation)) + if err != nil { + // this should never happen if errorIfMissingRequiredAnnotation was run + return nil, errors.Wrap(err) + } + path := value.YNode().Value + outputFiles[path] = append(outputFiles[path], node) + + if filepath.IsAbs(path) { + return nil, errors.Errorf("package paths may not be absolute paths") + } + if strings.Contains(filepath.Clean(path), "..") { + return nil, fmt.Errorf("resource must be written under package %s: %s", + r.PackagePath, filepath.Clean(path)) + } + } + return outputFiles, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/testing.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/testing.go new file mode 100644 index 0000000000..67471c6654 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/testing.go @@ -0,0 +1,55 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package kio + +import ( + "io/ioutil" + "os" + "path/filepath" + "testing" + + "github.com/stretchr/testify/assert" +) + +// Setup creates directories and files for testing +type Setup struct { + // root is the tmp directory + Root string +} + +// setupDirectories creates directories for reading test configuration from +func SetupDirectories(t *testing.T, dirs ...string) Setup { + d, err := ioutil.TempDir("", "kyaml-test") + if !assert.NoError(t, err) { + assert.FailNow(t, err.Error()) + } + err = os.Chdir(d) + if !assert.NoError(t, err) { + assert.FailNow(t, err.Error()) + } + for _, s := range dirs { + err = os.MkdirAll(s, 0700) + if !assert.NoError(t, err) { + assert.FailNow(t, err.Error()) + } + } + return Setup{Root: d} +} + +// writeFile writes a file under the test directory +func (s Setup) WriteFile(t *testing.T, path string, value []byte) { + err := os.MkdirAll(filepath.Dir(filepath.Join(s.Root, path)), 0700) + if !assert.NoError(t, err) { + assert.FailNow(t, err.Error()) + } + err = ioutil.WriteFile(filepath.Join(s.Root, path), value, 0600) + if !assert.NoError(t, err) { + assert.FailNow(t, err.Error()) + } +} + +// clean deletes the test config +func (s Setup) Clean() { + os.RemoveAll(s.Root) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/kio/tree.go b/vendor/sigs.k8s.io/kustomize/kyaml/kio/tree.go new file mode 100644 index 0000000000..d17293722d --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/kio/tree.go @@ -0,0 +1,514 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package kio + +import ( + "fmt" + "io" + "os" + "path/filepath" + "sort" + "strings" + + "github.com/xlab/treeprint" + "sigs.k8s.io/kustomize/kyaml/kio/kioutil" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type TreeStructure string + +const ( + // TreeStructurePackage configures TreeWriter to generate the tree structure off of the + // Resources packages. + TreeStructurePackage TreeStructure = "directory" + + // TreeStructureOwners configures TreeWriter to generate the tree structure off of the + // Resource owners. + TreeStructureGraph TreeStructure = "owners" +) + +var GraphStructures = []string{string(TreeStructureGraph), string(TreeStructurePackage)} + +// TreeWriter prints the package structured as a tree. +// TODO(pwittrock): test this package better. it is lower-risk since it is only +// used for printing rather than updating or editing. +type TreeWriter struct { + Writer io.Writer + Root string + Fields []TreeWriterField + Structure TreeStructure + OpenAPIFileName string +} + +// TreeWriterField configures a Resource field to be included in the tree +type TreeWriterField struct { + yaml.PathMatcher + Name string + SubName string +} + +func (p TreeWriter) packageStructure(nodes []*yaml.RNode) error { + indexByPackage := p.index(nodes) + + // create the new tree + tree := treeprint.New() + tree.SetValue(p.Root) + + // add each package to the tree + treeIndex := map[string]treeprint.Tree{} + keys := p.sort(indexByPackage) + for _, pkg := range keys { + // create a branch for this package -- search for the parent package and create + // the branch under it -- requires that the keys are sorted + branch := tree + for parent, subTree := range treeIndex { + if strings.HasPrefix(pkg, parent) { + // found a package whose path is a prefix to our own, use this + // package if a closer one isn't found + branch = subTree + // don't break, continue searching for more closely related ancestors + } + } + + // create a new branch for the package + createOk := pkg != "." // special edge case logic for tree on current working dir + if createOk { + branch = branch.AddBranch(branchName(p.Root, pkg, p.OpenAPIFileName)) + } + + // cache the branch for this package + treeIndex[pkg] = branch + + // print each resource in the package + for i := range indexByPackage[pkg] { + var err error + if _, err = p.doResource(indexByPackage[pkg][i], "", branch); err != nil { + return err + } + } + } + + _, err := io.WriteString(p.Writer, tree.String()) + return err +} + +// branchName takes the root directory and relative path to the directory +// and returns the branch name +func branchName(root, dirRelPath, openAPIFileName string) string { + name := filepath.Base(dirRelPath) + _, err := os.Stat(filepath.Join(root, dirRelPath, openAPIFileName)) + if !os.IsNotExist(err) { + // add Pkg: prefix indicating that it is a separate package as it has + // openAPIFile + return fmt.Sprintf("Pkg: %s", name) + } + return name +} + +// Write writes the ascii tree to p.Writer +func (p TreeWriter) Write(nodes []*yaml.RNode) error { + switch p.Structure { + case TreeStructurePackage: + return p.packageStructure(nodes) + case TreeStructureGraph: + return p.graphStructure(nodes) + } + + // If any resource has an owner reference, default to the graph structure. Otherwise, use package structure. + for _, node := range nodes { + if owners, _ := node.Pipe(yaml.Lookup("metadata", "ownerReferences")); owners != nil { + return p.graphStructure(nodes) + } + } + return p.packageStructure(nodes) +} + +// node wraps a tree node, and any children nodes +type node struct { + p TreeWriter + *yaml.RNode + children []*node +} + +func (a node) Len() int { return len(a.children) } +func (a node) Swap(i, j int) { a.children[i], a.children[j] = a.children[j], a.children[i] } +func (a node) Less(i, j int) bool { + return compareNodes(a.children[i].RNode, a.children[j].RNode) +} + +// Tree adds this node to the root +func (a node) Tree(root treeprint.Tree) error { + sort.Sort(a) + branch := root + var err error + + // generate a node for the Resource + if a.RNode != nil { + branch, err = a.p.doResource(a.RNode, "Resource", root) + if err != nil { + return err + } + } + + // attach children to the branch + for _, n := range a.children { + if err := n.Tree(branch); err != nil { + return err + } + } + return nil +} + +// graphStructure writes the tree using owners for structure +func (p TreeWriter) graphStructure(nodes []*yaml.RNode) error { + resourceToOwner := map[string]*node{} + root := &node{} + // index each of the nodes by their owner + for _, n := range nodes { + ownerVal, err := ownerToString(n) + if err != nil { + return err + } + var owner *node + if ownerVal == "" { + // no owner -- attach to the root + owner = root + } else { + // owner found -- attach to the owner + var found bool + owner, found = resourceToOwner[ownerVal] + if !found { + // initialize the owner if not found + resourceToOwner[ownerVal] = &node{p: p} + owner = resourceToOwner[ownerVal] + } + } + + nodeVal, err := nodeToString(n) + if err != nil { + return err + } + val, found := resourceToOwner[nodeVal] + if !found { + // initialize the node if not found -- may have already been initialized if it + // is the owner of another node + resourceToOwner[nodeVal] = &node{p: p} + val = resourceToOwner[nodeVal] + } + val.RNode = n + owner.children = append(owner.children, val) + } + + for k, v := range resourceToOwner { + if v.RNode == nil { + return fmt.Errorf( + "owner '%s' not found in input, but found as an owner of input objects", k) + } + } + + // print the tree + tree := treeprint.New() + if err := root.Tree(tree); err != nil { + return err + } + + _, err := io.WriteString(p.Writer, tree.String()) + return err +} + +// nodeToString generates a string to identify the node -- matches ownerToString format +func nodeToString(node *yaml.RNode) (string, error) { + meta, err := node.GetMeta() + if err != nil { + return "", err + } + + return fmt.Sprintf("%s %s/%s", meta.Kind, meta.Namespace, meta.Name), nil +} + +// ownerToString generate a string to identify the owner -- matches nodeToString format +func ownerToString(node *yaml.RNode) (string, error) { + meta, err := node.GetMeta() + if err != nil { + return "", err + } + namespace := meta.Namespace + + owners, err := node.Pipe(yaml.Lookup("metadata", "ownerReferences")) + if err != nil { + return "", err + } + if owners == nil { + return "", nil + } + + elements, err := owners.Elements() + if err != nil { + return "", err + } + if len(elements) == 0 { + return "", err + } + owner := elements[0] + var kind, name string + + if value := owner.Field("kind"); !value.IsNilOrEmpty() { + kind = value.Value.YNode().Value + } + if value := owner.Field("name"); !value.IsNilOrEmpty() { + name = value.Value.YNode().Value + } + + return fmt.Sprintf("%s %s/%s", kind, namespace, name), nil +} + +// index indexes the Resources by their package +func (p TreeWriter) index(nodes []*yaml.RNode) map[string][]*yaml.RNode { + // index the ResourceNodes by package + indexByPackage := map[string][]*yaml.RNode{} + for i := range nodes { + meta, err := nodes[i].GetMeta() + if err != nil || meta.Kind == "" { + // not a resource + continue + } + pkg := filepath.Dir(meta.Annotations[kioutil.PathAnnotation]) + indexByPackage[pkg] = append(indexByPackage[pkg], nodes[i]) + } + return indexByPackage +} + +func compareNodes(i, j *yaml.RNode) bool { + metai, _ := i.GetMeta() + metaj, _ := j.GetMeta() + pi := metai.Annotations[kioutil.PathAnnotation] + pj := metaj.Annotations[kioutil.PathAnnotation] + + // compare file names + if filepath.Base(pi) != filepath.Base(pj) { + return filepath.Base(pi) < filepath.Base(pj) + } + + // compare namespace + if metai.Namespace != metaj.Namespace { + return metai.Namespace < metaj.Namespace + } + + // compare name + if metai.Name != metaj.Name { + return metai.Name < metaj.Name + } + + // compare kind + if metai.Kind != metaj.Kind { + return metai.Kind < metaj.Kind + } + + // compare apiVersion + if metai.APIVersion != metaj.APIVersion { + return metai.APIVersion < metaj.APIVersion + } + return true +} + +// sort sorts the Resources in the index in display order and returns the ordered +// keys for the index +// +// Packages are sorted by package name +// Resources within a package are sorted by: [filename, namespace, name, kind, apiVersion] +func (p TreeWriter) sort(indexByPackage map[string][]*yaml.RNode) []string { + var keys []string + for k := range indexByPackage { + pkgNodes := indexByPackage[k] + sort.Slice(pkgNodes, func(i, j int) bool { return compareNodes(pkgNodes[i], pkgNodes[j]) }) + keys = append(keys, k) + } + + // return the package names sorted lexicographically + sort.Strings(keys) + return keys +} + +func (p TreeWriter) doResource(leaf *yaml.RNode, metaString string, branch treeprint.Tree) (treeprint.Tree, error) { + meta, _ := leaf.GetMeta() + if metaString == "" { + path := meta.Annotations[kioutil.PathAnnotation] + path = filepath.Base(path) + metaString = path + } + + value := fmt.Sprintf("%s %s", meta.Kind, meta.Name) + if len(meta.Namespace) > 0 { + value = fmt.Sprintf("%s %s/%s", meta.Kind, meta.Namespace, meta.Name) + } + + fields, err := p.getFields(leaf) + if err != nil { + return nil, err + } + + n := branch.AddMetaBranch(metaString, value) + for i := range fields { + field := fields[i] + + // do leaf node + if len(field.matchingElementsAndFields) == 0 { + n.AddNode(fmt.Sprintf("%s: %s", field.name, field.value)) + continue + } + + // do nested nodes + b := n.AddBranch(field.name) + for j := range field.matchingElementsAndFields { + elem := field.matchingElementsAndFields[j] + b := b.AddBranch(elem.name) + for k := range elem.matchingElementsAndFields { + field := elem.matchingElementsAndFields[k] + b.AddNode(fmt.Sprintf("%s: %s", field.name, field.value)) + } + } + } + + return n, nil +} + +// getFields looks up p.Fields from leaf and structures them into treeFields. +// TODO(pwittrock): simplify this function +func (p TreeWriter) getFields(leaf *yaml.RNode) (treeFields, error) { + fieldsByName := map[string]*treeField{} + + // index nested and non-nested fields + for i := range p.Fields { + f := p.Fields[i] + seq, err := leaf.Pipe(&f) + if err != nil { + return nil, err + } + if seq == nil { + continue + } + + if fieldsByName[f.Name] == nil { + fieldsByName[f.Name] = &treeField{name: f.Name} + } + + // non-nested field -- add directly to the treeFields list + if f.SubName == "" { + // non-nested field -- only 1 element + val, err := yaml.String(seq.Content()[0], yaml.Trim, yaml.Flow) + if err != nil { + return nil, err + } + fieldsByName[f.Name].value = val + continue + } + + // nested-field -- create a parent elem, and index by the 'match' value + if fieldsByName[f.Name].subFieldByMatch == nil { + fieldsByName[f.Name].subFieldByMatch = map[string]treeFields{} + } + index := fieldsByName[f.Name].subFieldByMatch + for j := range seq.Content() { + elem := seq.Content()[j] + matches := f.Matches[elem] + str, err := yaml.String(elem, yaml.Trim, yaml.Flow) + if err != nil { + return nil, err + } + + // map the field by the name of the element + // index the subfields by the matching element so we can put all the fields for the + // same element under the same branch + matchKey := strings.Join(matches, "/") + index[matchKey] = append(index[matchKey], &treeField{name: f.SubName, value: str}) + } + } + + // iterate over collection of all queried fields in the Resource + for _, field := range fieldsByName { + // iterate over collection of elements under the field -- indexed by element name + for match, subFields := range field.subFieldByMatch { + // create a new element for this collection of fields + // note: we will convert name to an index later, but keep the match for sorting + elem := &treeField{name: match} + field.matchingElementsAndFields = append(field.matchingElementsAndFields, elem) + + // iterate over collection of queried fields for the element + for i := range subFields { + // add to the list of fields for this element + elem.matchingElementsAndFields = append(elem.matchingElementsAndFields, subFields[i]) + } + } + // clear this cached data + field.subFieldByMatch = nil + } + + // put the fields in a list so they are ordered + fieldList := treeFields{} + for _, v := range fieldsByName { + fieldList = append(fieldList, v) + } + + // sort the fields + sort.Sort(fieldList) + for i := range fieldList { + field := fieldList[i] + // sort the elements under this field + sort.Sort(field.matchingElementsAndFields) + + for i := range field.matchingElementsAndFields { + element := field.matchingElementsAndFields[i] + // sort the elements under a list field by their name + sort.Sort(element.matchingElementsAndFields) + // set the name of the element to its index + element.name = fmt.Sprintf("%d", i) + } + } + + return fieldList, nil +} + +// treeField wraps a field node +type treeField struct { + // name is the name of the node + name string + + // value is the value of the node -- may be empty + value string + + // matchingElementsAndFields is a slice of fields that go under this as a branch + matchingElementsAndFields treeFields + + // subFieldByMatch caches matchingElementsAndFields indexed by the name of the matching elem + subFieldByMatch map[string]treeFields +} + +// treeFields wraps a slice of treeField so they can be sorted +type treeFields []*treeField + +func (nodes treeFields) Len() int { return len(nodes) } + +func (nodes treeFields) Less(i, j int) bool { + iIndex, iFound := yaml.FieldOrder[nodes[i].name] + jIndex, jFound := yaml.FieldOrder[nodes[j].name] + if iFound && jFound { + return iIndex < jIndex + } + if iFound { + return true + } + if jFound { + return false + } + + if nodes[i].name != nodes[j].name { + return nodes[i].name < nodes[j].name + } + if nodes[i].value != nodes[j].value { + return nodes[i].value < nodes[j].value + } + return false +} + +func (nodes treeFields) Swap(i, j int) { nodes[i], nodes[j] = nodes[j], nodes[i] } diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/Makefile b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/Makefile index f5cd8dc677..945f1aa526 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/Makefile +++ b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/Makefile @@ -1,7 +1,10 @@ # Copyright 2020 The Kubernetes Authors. # SPDX-License-Identifier: Apache-2.0 -MYGOBIN := $(shell go env GOPATH)/bin +MYGOBIN = $(shell go env GOBIN) +ifeq ($(MYGOBIN),) +MYGOBIN = $(shell go env GOPATH)/bin +endif API_VERSION := "v1.19.1" .PHONY: all diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/openapiinfo.go b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/openapiinfo.go index ed319353e8..2cf472c8ab 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/openapiinfo.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/openapiinfo.go @@ -6,21 +6,13 @@ package kubernetesapi import ( - "sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1184" - "sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1186" - "sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1188" - "sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1190" - "sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1191" + "sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1204" ) -const Info = "{title:Kubernetes,version:v1.18.4}\n{title:Kubernetes,version:v1.18.6}\n{title:Kubernetes,version:v1.18.8}\n{title:Kubernetes,version:v1.19.0}\n{title:Kubernetes,version:v1.19.1}" +const Info = "{title:Kubernetes,version:v1.20.4}" -var OpenApiMustAsset = map[string]func(string) []byte{ - "v1184": v1184.MustAsset, - "v1186": v1186.MustAsset, - "v1188": v1188.MustAsset, - "v1190": v1190.MustAsset, - "v1191": v1191.MustAsset, +var OpenAPIMustAsset = map[string]func(string) []byte{ + "v1204": v1204.MustAsset, } -const DefaultOpenApi = "v1191" +const DefaultOpenAPI = "v1204" diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1184/swagger.go b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1184/swagger.go deleted file mode 100644 index a526286955..0000000000 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1184/swagger.go +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright 2019 The Kubernetes Authors. -// SPDX-License-Identifier: Apache-2.0 - -// Code generated for package v1184 by go-bindata DO NOT EDIT. (@generated) -// sources: -// kubernetesapi/v1184/swagger.json -package v1184 - -import ( - "bytes" - "compress/gzip" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - "time" -) - -func bindataRead(data []byte, name string) ([]byte, error) { - gz, err := gzip.NewReader(bytes.NewBuffer(data)) - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - - var buf bytes.Buffer - _, err = io.Copy(&buf, gz) - clErr := gz.Close() - - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - if clErr != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -type asset struct { - bytes []byte - info os.FileInfo -} - -type bindataFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} - -// Name return file name -func (fi bindataFileInfo) Name() string { - return fi.name -} - -// Size return file size -func (fi bindataFileInfo) Size() int64 { - return fi.size -} - -// Mode return file mode -func (fi bindataFileInfo) Mode() os.FileMode { - return fi.mode -} - -// Mode return file modify time -func (fi bindataFileInfo) ModTime() time.Time { - return fi.modTime -} - -// IsDir return file whether a directory -func (fi bindataFileInfo) IsDir() bool { - return fi.mode&os.ModeDir != 0 -} - -// Sys return file is sys mode -func (fi bindataFileInfo) Sys() interface{} { - return nil -} - -var _kubernetesapiV1184SwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x6d\x73\xdb\x38\xd6\x28\xf8\xfd\xfe\x0a\x94\x7b\xa7\x92\xf4\xca\x72\xd2\x3d\x6f\x37\x5d\x53\xbb\x9e\x24\x3d\xed\x99\x24\xed\x6b\x3b\x3d\x7b\x77\x3c\xf5\x04\x22\x21\x09\x8f\x29\x80\x0d\x80\x76\xd4\x5b\x4f\xd5\xfe\x8d\xfd\x7b\xfb\x4b\x6e\xe1\x1c\x00\x04\x29\x52\xa4\x64\xc9\x6f\xe1\x7c\x98\x8e\x45\x10\x04\x0e\x0e\xce\xfb\xcb\xff\xf3\xdf\x08\x39\x48\xd9\x94\x0b\x6e\xb8\x14\xfa\xe0\x35\xb1\x3f\x11\x72\xc0\xe5\xf8\xea\xcf\x7a\x4c\x73\x3e\xa6\xe9\x82\x6b\xcd\xa5\x50\x6c\xc6\xb5\x51\xd4\x0e\x1d\x5f\xbf\x1a\x7f\x28\x0c\x35\x5c\xcc\xfe\xc9\x26\x73\x29\xaf\xc2\xcb\x30\xa7\x4e\x14\xcf\xed\xc8\x83\xd7\xe4\xa0\x36\x92\xe0\xe3\x09\xd3\x84\x0a\x12\xe6\x27\x37\xee\x31\x15\x29\x31\x73\x46\x14\xd3\xb2\x50\x09\x0c\x4b\x89\xcc\x19\x7e\x5b\x13\x6e\x08\xcd\xf3\x8c\x33\x4d\x8c\x1c\x1f\x8c\xfc\x67\x73\x65\x07\x19\xce\x74\xb4\x18\x42\x0e\xc2\x27\xce\xd8\x35\x67\x37\xbf\x30\xa5\x2b\xdb\x6d\x5e\xf5\x71\xf3\x5b\x84\xc3\xb2\xa5\x4a\x99\x62\x29\xc9\xb8\x36\x44\x4e\x49\xae\xd8\x94\x29\xfb\xcb\xe7\xda\x8b\x9f\xc9\xb5\x7f\xd5\xee\xca\x03\x81\x7d\xc9\x59\x62\xf4\x98\x1c\x9f\x9e\x10\xcd\xd4\x35\x53\xe4\x86\x67\x19\x31\x6a\x49\x8c\x24\x85\x66\x64\xca\x95\x36\xfe\x75\xc2\x05\x4c\x00\x5f\xbc\x99\xf3\x64\x6e\x01\xa1\x8b\x3c\x97\xca\xce\x73\x32\x25\x42\x0a\x66\x17\x63\x87\x85\x8f\xea\x9c\x25\x7c\xca\x59\x8a\x13\x70\x8d\x33\xb8\x17\x59\x4a\x26\xcb\x68\x0d\x23\x72\x4d\x33\x9e\x02\xa4\x71\x3d\x53\xca\x33\x32\x95\x0a\xdf\x95\x93\xff\x64\x89\x81\xaf\x51\x92\xdb\x6f\x68\x3b\x87\x3f\xbb\x44\x8a\x29\x9f\x15\x78\x52\xe1\xd3\x9a\xd0\x2c\x93\x37\x2c\x2d\x57\x65\x8f\x34\x95\x4c\x13\x21\x0d\xe1\x22\xc9\x8a\x94\x11\x2a\x96\xe5\x88\x2b\x21\x6f\x84\x85\x84\xdd\x8d\x5d\xe0\xb9\x5b\x60\x42\xb3\x4c\xfb\x07\xfe\xc3\xe5\x52\xed\xcc\x13\x46\x74\x01\x2b\xf5\xe3\xec\xa3\x42\x31\x92\xcb\x8c\x27\xcb\x12\x69\x10\xdd\x0d\x5b\xd4\xd1\x81\x90\x03\xb3\xcc\x99\xc5\x04\x6d\x14\x17\xb3\x83\xe8\xe1\x7f\x55\x5e\xf7\xe3\xa8\x52\x74\x59\x0e\x8b\x06\x1d\x24\x19\x67\xc2\xbc\x01\xe8\xd4\xf1\xee\x7f\x53\x6c\x6a\x5f\xff\xe6\x28\xba\x8b\x47\x7d\xae\xa0\xc3\xa5\x37\xf1\xe4\xa3\x35\x28\x1d\x0f\x24\xf0\x31\xa6\xc9\x5c\xde\x58\x20\x25\x72\xb1\x28\x04\x4f\xa8\x61\xe4\x86\x9b\x39\x40\xcd\xce\x3e\x26\x67\xec\xd7\x82\x2b\x96\x36\x6f\xcd\x41\xf6\x14\x00\xdb\x71\xa7\x7e\x8c\xc7\x56\x56\x50\x08\xc5\x12\x39\x13\xfc\x37\x96\x12\xa6\x94\x54\x9a\x4c\x95\x5c\xc0\x32\x4a\x1a\xc1\x44\x9a\x4b\x2e\x0c\xa1\x8a\x91\x39\x15\x69\xc6\x52\x72\x58\xa2\x17\xcd\x0a\x8b\x6d\x8a\x91\x93\x99\x90\x8a\x11\xa9\x88\xfd\xe8\x98\xbc\x65\x53\x5a\x64\x06\x10\x07\x7e\x39\x68\x3c\xc3\xfa\x59\xc7\x3b\x5d\x50\x93\xcc\x7b\xed\x33\x1a\x59\x85\xf3\x9c\x91\xcb\x03\x55\x64\x4c\x5f\x1e\xe0\x3d\xe4\xda\x5e\xf5\xd4\x2e\x0b\xde\xb2\x97\x41\x2e\xb8\x98\x11\xc5\x7e\x2d\x98\x06\x12\xb1\xba\xbd\xcb\x83\x77\x5f\x68\x62\x2e\x0f\xec\x0e\x2f\x0f\xde\xfd\x5a\xf0\x6b\x9a\x31\x61\x2e\x0f\xc6\x97\xe2\x52\x1c\x12\x78\xfe\xda\x4d\x4a\xfd\x6c\x44\x8a\x6c\x49\xf8\xd4\xd2\x0e\x66\x47\x64\x4b\x1c\x62\xe7\x8d\x68\x85\x5d\xe3\x98\xfc\x28\x95\x1d\xb5\xc8\x33\x36\xb2\x2f\xa5\x2c\xcf\xe4\x72\xc1\x84\xd1\x24\xa1\xc2\xde\xb3\x85\x4c\xf1\x8d\x6b\x4e\x2d\x59\xd6\x47\xd7\xaf\x46\xfe\x1f\x13\x66\xa8\xfd\x4b\xa4\x84\x7d\x31\x4c\xc0\xcd\x2e\x7f\x9f\x14\x26\x02\x07\xae\x0c\x49\x41\x4a\x3e\xd3\x9c\xff\x4d\xc9\x22\xd7\xaf\xff\x75\x79\x60\xe7\xbb\x3c\xf8\xb7\x9d\x98\x7b\x4a\x6c\x7f\xbf\x7e\x05\xbf\x06\x56\xf1\x9a\xfc\xeb\xf2\x20\x5a\xe5\xe5\xc1\xbf\x3f\x8f\xa2\xdd\x1b\x59\x59\x1a\x81\xfd\xd5\x17\x46\x6e\x64\x91\xa5\x40\x99\x2c\x21\x61\xc2\xd4\xa8\x8d\x87\x70\x00\xfa\x2a\x98\xf9\xd4\x43\x46\xc3\xaf\xb8\x3e\x38\x72\xa4\xc4\xb0\xeb\x11\x61\xd7\x4c\x20\xe8\x84\x34\x73\xa6\x80\xd2\xcd\xec\xbe\xed\xda\x1c\x31\xdc\xfb\x41\xd8\xdf\x1f\xee\x41\x4c\x98\xe5\x2b\xd7\x0c\xb8\x55\xf9\x22\xac\xba\xed\x74\xe2\xeb\x5e\xbd\x1e\x9b\xdf\x7b\x41\x17\xac\xe3\xc2\x5f\xcc\x19\xb1\xc3\x3c\xf7\x5d\x91\x6a\xc6\xe4\xa3\x7d\xac\xe7\x7e\x47\xd3\x22\xcb\x96\xe4\xd7\x82\x66\x70\x6a\x23\xc2\xc6\xb3\xf1\x88\xf0\x05\x9d\x31\xc7\xa4\xae\x8a\x09\x53\x82\x19\xa6\xc7\x5c\x8e\xc8\xcd\x9c\xc1\xc5\x8f\x86\x5c\x1e\x58\xfa\x61\x6a\x1f\x77\x9f\xc4\x63\xad\x4c\xd2\x34\x5a\xaa\x19\x15\xfc\x37\x64\x2a\x81\xd6\x6f\x41\x1e\xed\xa4\x3a\xa7\x09\x3b\x67\x19\x4b\x8c\x54\x9b\x32\xba\x05\x4d\xe6\x5c\x30\xb5\x1c\xe7\x57\x33\xfb\x83\x1e\x2f\x98\xa1\x96\xd3\xbd\xa7\x13\x96\x85\x79\xd7\xf1\xb8\x8f\xf5\x55\x90\x94\x25\x3c\x65\xda\xc2\x0f\x6e\x98\x91\x44\x15\xa2\x22\x3d\x48\x01\x32\x1d\x4a\x0c\x13\x6a\xe9\xb1\x3d\x3a\xff\x82\x83\x18\x4c\xeb\x44\x21\x6a\xfc\x70\x4f\x3d\xed\x28\xed\xbe\x09\xf2\x11\x00\x17\xc7\x70\xa3\x59\x36\x05\xd1\xb1\x9c\x69\x04\x23\xe0\x75\x4b\xee\xb9\xb6\xf2\xd4\x54\xaa\x05\x7e\xdd\x49\x5a\x16\x02\x29\x35\x74\x9c\x59\x10\xe8\x95\x99\x75\xa0\x1c\x49\x56\x68\xc3\x14\xd1\x89\xcc\x2d\x05\x77\x57\x71\x64\x49\xbd\x60\x56\xbe\xd4\x57\x3c\xd7\x2b\x57\xa5\x42\x5b\xda\x80\xb3\x74\x1f\xb4\x60\x94\x3a\x86\x07\x47\x19\x8e\x6a\x2d\x13\x4e\x41\x18\xb4\xe2\x83\x25\x27\x22\x63\xd7\x2c\xb3\x14\x65\x4a\x2e\x0f\x5e\x7a\x66\xf5\xea\xf2\xe0\x07\x42\x96\xb2\x40\xa9\x4d\x33\x53\x01\x1e\xa1\x9a\x4c\xa5\x65\x79\xfa\x35\xb9\x5c\x45\xab\x4b\x8b\x57\x97\x82\x90\x4b\xe4\xb3\xef\xbe\xe4\x8a\xc1\x65\xd3\xf6\xd1\xbf\xec\x23\x82\x23\xec\xff\x2e\x0f\xae\xd8\xd2\x3e\x88\x57\x34\x2a\x9f\xa2\x62\x81\xd3\x5e\x1e\x7c\x94\xe6\x44\x54\x9e\x23\xd3\x8d\x66\xc6\x9f\x5f\x46\x83\x08\x6e\xca\xff\xf9\x6f\xfc\xc7\x7f\xd9\xff\xfc\xfb\x52\xfc\x97\x05\xf2\xc9\x94\x70\xa1\x0d\xa3\x29\x6e\x9c\x22\xd9\x02\x52\xbb\x39\xc0\xeb\xc0\x46\xb9\x82\x89\x6b\xae\xa4\x58\x00\x99\x43\x98\xe7\x4a\xa6\x1e\xec\xda\xd0\x19\x17\x33\x0b\xfc\x7b\x80\x7d\x65\x71\xad\xe0\xef\x07\x7b\xdc\x55\x05\xfc\x61\x73\xeb\x0e\xe1\x9c\x31\x32\x37\x26\xd7\xaf\x8f\x8e\x2a\x74\xf1\x28\x95\x89\x3e\x4a\xa4\x48\x58\x6e\xf4\x91\xbc\x66\xca\xaa\x6e\x47\x37\x52\x5d\x71\x31\x3b\xb4\x40\x3e\x74\xe7\x71\x84\x17\xf1\x08\x08\xc1\xc2\xca\x98\xee\xf2\x68\x0b\x72\x78\x18\xc0\xa9\x63\x5e\xe4\xd9\x14\x5b\xe4\x66\x49\x2a\x14\x6d\xe4\x14\x3a\x4f\x4b\xec\x6d\x5d\x1a\x4b\x16\xc6\xcd\xb4\x16\xd7\x72\xaf\x84\xf6\xe7\xca\x12\xfa\x50\xd9\x40\x58\x79\x85\x84\xcd\xa9\x2e\xa9\xa0\xa7\x72\xd5\x0d\x5a\x9c\x67\x16\x19\x00\xe5\xe9\x8c\xda\xbb\x44\x26\xd2\xa1\xbe\xcc\x52\x5c\x0d\x70\x3c\xc1\x6e\xdc\x5f\x40\xa6\x83\x0c\xd1\x20\x2a\x20\x8b\xe4\xda\xca\x17\x9a\xa3\x46\x5f\x0a\xe2\x53\xc2\x38\xec\x65\x2d\xa5\x3f\x26\xa2\xc8\x32\x3f\xe6\x79\xb9\x16\xa7\xaf\x27\x54\x03\xaf\x4d\x14\xa3\x86\x8d\xec\x5d\x2c\x57\x58\x1b\x93\xb2\x8c\x19\xf6\xc2\x8e\x29\xf9\x11\xec\x22\xa1\xc2\x52\xd9\x39\xbd\x66\x0e\x46\xe4\x79\xc6\xaf\x18\xa1\xe4\x6d\x90\xb2\xce\x64\x96\x4d\x68\x72\x05\xef\x93\x53\x99\x9e\x2a\xf9\x65\xf9\x73\x8e\x66\x13\x9c\xee\x85\x27\xd8\x0d\x5b\x1e\x93\x4f\x9a\xc5\x47\x13\xc8\x82\xd7\x1a\xe2\xe3\xe4\x9a\xc8\xdc\x1c\x72\x31\x22\x13\x96\xd0\x42\x33\xab\x9e\x59\x6d\x46\xd9\x03\x5d\x02\xbb\x69\x96\x86\xc8\x64\x69\x49\x8f\xb1\x27\x0e\x36\x0d\x77\xea\x7b\xb8\x29\x8a\x71\x71\x2d\x13\x10\x6f\x7a\xe9\x6e\xab\x2f\x10\x2e\x52\x50\x8c\x23\xec\x9e\x73\x1d\x36\x53\x0a\x75\x09\xcd\xac\x42\xba\x28\x32\xc3\xf3\x8c\x11\xc3\x17\x56\xfe\xd7\x24\xa7\x0a\xcc\x44\x94\x68\x2e\x66\x59\x45\xa5\x45\xbc\x06\xe9\xab\x51\xd1\xfb\x68\xf7\x78\x79\xe0\x84\xf4\x93\xe9\x47\xc6\x52\x96\x3a\x3d\x0f\x1e\xbe\x5e\x35\x85\x38\xe5\xc5\x2f\xc8\x92\x29\x33\xb7\x38\x25\x2c\x07\x11\x1d\x0b\x41\x8e\x85\x1f\x6a\x98\xbc\x9c\x98\x1a\x92\x31\x0a\x6a\xa5\x9d\x2a\x05\x52\x43\x33\xd8\x78\xbc\xef\x9a\x16\x1f\xbe\x54\x23\x05\x13\x66\x31\xc2\x0e\x34\xa0\x26\xe9\x52\xab\x99\x2c\x09\x8a\x39\xe5\x34\x79\x56\xcc\xb8\xd0\x84\x4e\x8d\x93\xd2\x80\xd6\xd1\xac\x34\x47\xd1\x2c\x1b\x7b\x93\x9b\xc6\x9b\x84\x3a\xee\xd2\x99\xb3\xe0\xd8\xc9\xb7\x8b\x42\x9b\x6f\xed\xbe\x78\xca\x16\xb9\x34\x4c\x98\x11\xa1\x13\x7b\x84\x92\xe4\x4a\x26\x4c\xeb\xc0\x90\xcd\x9c\x2d\x49\xae\xd8\x35\x97\x85\xce\x96\x61\xbd\x63\xf2\x51\x1a\xf6\x9a\x7c\x8b\x12\x63\xb1\x98\x58\xda\x31\x8d\xe1\x52\xa2\x96\xf6\xf7\x70\x56\x50\x45\x85\x61\x78\x0f\x27\x2c\xa8\xe5\x52\xb0\x31\xf9\xd6\x42\xa8\x65\x02\xc5\xb4\xbd\x2c\x5c\x90\x69\xa1\x00\x36\x08\x2d\xff\xdc\xdd\x22\x5c\xf6\xc8\x03\x05\xd1\xaa\xf1\xcb\x76\xf2\x2b\x4f\x60\xed\xb7\x6f\x2a\x90\x2b\x80\x38\x94\x50\xb3\x77\x7c\xc2\x88\x62\xde\x18\x6a\xe9\x08\x17\x7c\xc1\x7f\x63\xbd\x40\x60\x3f\x61\xa4\xb7\x38\xb2\x88\xe6\xe1\x91\xd2\x2c\x23\x0b\x30\x1e\x83\xc9\x50\xb1\x78\xc9\x89\xb4\x4c\xd7\x52\x54\xbb\x2e\x1a\xec\x96\x0e\x81\xaa\xf4\xc6\xc9\x5e\x0d\xaa\xa1\xbb\x5d\x5b\xe8\x3b\xa0\x2e\x77\x10\x93\x33\x3b\x26\x32\x78\xdf\x80\xe2\x50\x9a\xb2\x41\xcb\xa0\xa6\xd4\x9b\x8f\x74\x31\x29\x0d\xdf\xf1\xcd\x4b\xa8\xb2\x24\x61\x22\x0b\x33\x26\x17\xcd\x0f\x00\x82\x7e\x76\x67\xe5\xf1\x94\xf2\x3f\xa8\x58\xfe\x07\x39\x03\xbb\xce\x4f\xf2\x86\x81\x2d\x95\x3b\x4b\x36\xa2\x39\xbb\xb6\x2c\xf2\x97\x00\xc8\x60\xc9\x0e\x37\xc8\xd2\x20\x6f\xce\x5f\x7d\x0a\x06\xbb\xbc\x28\xe9\xba\x57\x49\x90\xe0\x18\xb0\x2d\x02\xf9\x76\xec\x0c\xb0\x27\xb1\xe2\x16\x4b\xf1\x6d\x2b\x69\xd9\x8d\xf8\xd3\xcd\x96\x24\xe5\x9a\x4e\x32\x3f\x25\x5e\xfa\xd1\x2d\x56\x09\xe8\x0f\xfa\x90\x23\x62\x32\xf6\x42\x78\xab\x1b\x88\x77\xe5\x47\xbc\xa9\xb5\x62\xdf\x8e\xbf\xd3\x38\xc0\x51\x8c\x7e\xe6\xe6\xed\xed\xc0\xf6\x50\xff\xc9\xcd\xfc\xe7\x80\x58\xb7\x32\x56\x5b\xb1\xe0\xdd\x74\x6a\x57\xde\x81\xde\xe7\xe5\x48\x3c\xde\x16\x0e\x69\x45\x3c\x3b\x2b\x61\x38\x78\x4c\x8e\x13\x2b\x6a\x03\x85\x2d\x99\xdd\x6b\xf2\x51\x0a\x36\x82\xff\xff\x59\xbc\x55\xcb\xb3\x42\x90\xe7\x81\x08\xa1\x04\x85\x06\x2e\x6f\x21\xb2\x34\x88\x66\x5a\x06\xb2\x7e\x2e\x17\x60\xf5\xfd\x24\xc0\x81\xf0\x22\x22\xff\xa0\x2a\xc5\xcb\x20\x1f\x3e\x9d\x5f\x10\x6e\x31\xcd\x8a\x4f\x60\x9e\xb2\x4a\x00\xcf\xb8\x73\x60\x2c\xb5\x61\x8b\x91\xe5\x95\x09\x8b\xac\x57\x81\xf2\xd9\xe3\x45\xe6\x44\xc9\xb4\x30\x85\x62\x44\x1b\x96\x7b\xb9\xae\x44\xab\x64\x4e\xc5\x8c\x05\xdf\x56\x65\x15\x16\x5e\x6c\x2a\x01\x2d\x03\x2d\x2e\x44\x0a\x0c\xe0\xcc\xe3\x63\x50\xf4\x52\x84\x0b\x35\x46\xf1\x49\x01\xe6\x7a\xe4\xc9\xb4\x30\xf2\x30\xac\x09\x39\xeb\x32\x58\x26\x4b\x0e\xee\xa0\xe0\x0f\xee\x2f\x7f\xf1\xc0\xb2\x70\xb3\xf0\xdb\x82\x18\x5a\x86\x2f\x0b\x73\x6e\xe1\x97\x76\xa1\xcd\x45\x65\x70\xe4\x26\xb2\xdb\x73\x33\x95\x2e\xa7\x60\x41\x3b\x0e\x7c\xde\x8f\xc9\xa9\xd6\x4c\x8f\x6a\x74\x32\xcb\x02\x48\x38\x78\x01\x52\x22\x55\x70\x23\x95\xcf\xc1\x5d\x14\x94\x92\x06\x2f\x11\x90\x59\xff\x2d\x40\x53\x62\x05\x05\x3b\xf1\x84\x99\x1b\xc6\x04\x41\x2b\xe4\xf7\x2f\x89\xc6\xcd\x54\x64\xd8\x57\xe5\xcf\x55\x88\x4e\xa5\x5a\x50\x63\x41\xc1\x85\xf9\xfe\xbb\x66\x70\x73\x61\xd8\x8c\xa9\x08\xde\xff\xad\x06\xf7\x03\xe5\x3d\x33\xaf\xc9\xbf\x6a\xf6\xca\x36\xe7\x53\xcb\x3d\x1f\x75\xbb\x4b\xdd\x88\x7f\x87\xaf\xfb\x85\x22\x95\xc3\xe7\x6e\x6d\xdb\x78\x90\x2b\xa4\xb3\xbf\x3b\xb9\x4a\x71\x4b\x56\x0b\xfc\xa7\x4a\x8d\xa7\x70\x58\xab\xd2\x01\x48\x37\x14\x28\x92\xc5\x14\xbc\x42\x30\xd6\x5e\x74\x77\x75\x4b\x51\xaa\x8f\xcb\x39\x58\xc7\xbb\xbc\xcc\xa7\x27\x6e\x60\x70\x14\x45\xde\x5b\x96\x12\x9d\xcc\xd9\x82\xa2\x0c\xcd\xad\xcc\x97\x2b\x66\x35\xd9\x68\x4b\xc1\x29\x8b\x1e\x52\xed\x15\x12\x67\x34\x27\x91\x67\x0d\x67\x0b\xa2\x61\x66\x49\xb6\x95\x20\x0d\x53\x56\x36\x03\x1c\x1f\x85\x9d\x3b\x40\x54\x7c\x73\x48\xad\xc7\xe4\x83\xa5\x57\x5c\x4c\xe5\xeb\x60\x52\x99\x71\x03\x87\xce\xe5\x91\xf3\x26\x9a\xe5\x51\x22\x05\xd2\x29\xa9\xf4\x51\xca\xae\x59\x76\xa4\xf9\xec\x90\xaa\x64\xce\x0d\x4b\x2c\xc9\x3c\xa2\x39\x3f\x84\xc5\x0a\x14\x0b\x17\xe9\x37\x41\x06\xda\x9c\x14\x5d\x71\x91\x76\x40\xfd\x1f\x1c\xd5\x7e\x2b\x94\xd8\x89\xdc\xe5\x0e\xc0\xf5\xc2\xc6\xd9\xbb\xf3\x8b\xd2\x79\x13\x39\xc0\xcb\xa1\xba\x04\xbb\x05\x19\x17\x53\xcf\xfc\x82\xfb\x32\x38\x2d\x51\x24\xb2\x97\x91\xe8\x62\xb2\xe0\x46\x97\xe2\x86\x91\x63\xf2\x26\x48\x45\x45\x6e\x05\xe2\x74\x4c\x4e\x04\x79\x43\x17\x2c\x7b\x43\x35\xdb\x3b\xd0\x2d\x74\xf5\xa1\x85\xdf\x16\x60\xf7\x86\xea\x1d\x1a\xa3\xd0\x48\xf2\x81\x19\xba\xd6\x12\x75\x6e\xa8\x48\xa9\x4a\x83\x9d\xc6\xad\xe4\x87\x7d\xc3\x2b\xd8\xe6\x9b\x21\xe2\x05\x97\x0e\x64\x0c\xf2\x09\x20\xa4\x0f\x28\xb9\x89\x85\x59\x90\x25\x80\x52\x47\x86\xfd\x7a\x5c\xcc\xbe\xa5\xcc\x7a\xc0\x4f\x4f\x11\xb3\xf2\xe8\xcb\x61\x69\x77\x3d\xcc\xad\x64\x72\xb8\x60\x6a\xc6\x0e\xaf\xd8\xd2\xbe\x52\x63\x5d\xcd\x6f\xc0\xa2\xd8\x0c\x5e\x80\xb7\xd7\xb1\xc8\x1a\x93\x0a\xbf\x57\xe6\x05\x87\xeb\xa1\x23\xba\x87\x8e\x80\x94\x1c\xb5\x72\x7a\x30\x16\xb6\xd7\x08\x28\xc4\xad\xea\x1e\xdc\x84\x6b\x39\x57\xf5\x8d\xeb\xc0\x3c\x0e\xae\x5f\xad\x6e\xef\xdf\x3b\xe5\xb5\xef\xb9\x36\x5b\xf2\xdb\xf7\x2e\x84\xa1\xc4\xdb\x75\xa3\x07\xc6\xf9\xa0\x19\x67\x13\xc5\xa8\x83\xfd\xfd\x46\xc7\xdc\x3a\xed\x2e\x09\x51\xf5\x1a\xdd\x46\xf1\x1d\x24\x87\xa7\x22\x39\x58\x34\xed\x2f\x37\x00\xed\x0a\xcc\xfc\x2e\x61\xb5\xb1\x6e\x87\x97\xa9\x4b\x15\x7b\xb0\x5c\x0e\x58\xcd\x7e\x39\x5d\x83\x31\xac\x9d\xb7\xad\x0e\xc6\xcb\x6d\x8a\x3c\x03\x8f\x5c\xf4\xc0\x12\xf7\x33\x4f\x5d\xc7\xe4\x04\x18\x9f\x25\xf0\x8b\x05\x13\xa9\x77\xa3\x5d\x31\xa2\x0b\xf4\xb6\x18\x30\x60\x83\xbd\x02\xa6\x63\x5f\x72\x2a\x74\xb0\x65\x83\xc1\xba\x1f\x4b\xc4\xf8\xab\x6e\x8e\x88\xe3\x7c\x94\x4f\x08\x25\xd3\xb5\x78\xea\x09\xcb\xa4\xa5\x53\x72\x4c\x9e\x7d\xfb\x0c\x76\x9c\x65\x6e\x28\x04\x98\xb8\x5f\x1d\xa1\x42\xfb\x4a\xc6\xc4\xcc\xcc\xbd\x33\x47\x67\x3c\x29\xad\x21\xc1\x52\xd5\x10\x3a\xb4\xff\xe0\xda\x28\x14\xad\xb7\xd0\x50\x01\x52\x25\x40\xbb\x0b\x4c\x7e\xf0\x23\x04\x94\x6c\xba\x12\x4d\x70\xaa\x5e\x07\xb0\x7c\x94\xbf\x54\x0d\x9b\x2b\x2e\x88\x43\xf2\xe6\xec\xdd\xf1\xc5\xbb\x11\xf9\x74\xfa\x16\xfe\x2b\x15\xf9\x16\xcc\x79\x16\x7c\x91\xbe\xf2\xf8\x00\x58\x0a\x57\x1d\x6e\x9f\x80\x43\x15\xd9\x38\x76\xec\x58\xda\x51\x64\x2c\xce\x64\xa8\x05\x63\xbd\x26\xcf\x72\x99\xea\x67\x64\xc1\xa8\xd0\xc4\xfe\x7b\x8c\x3f\x1d\x65\x72\xe6\x7f\x06\x80\xc9\x19\x89\xfc\x46\x90\x8f\x80\xa3\xbf\xf5\xc3\x2c\xe8\xc3\xe7\x31\xf2\xd6\x0a\x0c\xb1\xb7\xc9\x4f\x5e\x79\xa7\xe2\x8e\x8a\xe6\x3d\xd2\x09\xcd\x58\x65\xa4\xfd\xa1\x3e\xe1\xb7\x47\xcd\x2b\xf0\x5a\x2d\x57\xd5\x37\x5c\xa8\xd4\x0d\xcf\xd2\xc4\x72\xe6\x3a\x6a\x44\xc9\x09\x00\x3d\xb0\xe3\x32\x01\x14\xb7\x9c\x3c\x95\xb0\x39\x79\xcd\x54\x46\x73\xb4\x78\x33\x9a\xcc\xd1\x83\xec\x9c\x80\x39\x13\xa9\x95\xd6\x9c\xe9\x97\x89\x24\x93\x1a\x7e\x70\xfe\xd2\xca\xd6\x17\x7c\x36\x37\xde\xab\xee\xc2\xcd\xef\x11\x11\x21\xc6\xaf\x03\x09\x61\x4c\xcd\xb8\x8e\xbf\x05\x9d\x08\x9c\x81\xe0\xe4\xaa\x86\x1c\xbc\x41\xbf\xdd\xe5\xc1\x88\x5c\x96\x11\x95\xa9\xfd\x1b\xa3\x10\xbe\xbd\x3c\x88\x87\x05\x5c\xa4\x2e\xc0\xdc\x39\xfe\x0e\x6b\xb1\x88\x1a\x0f\x0c\x5d\x12\xd1\x12\xc2\x27\x80\x1c\x7b\x3f\xbb\x5d\x4b\x75\xa2\x71\x6d\x39\x2b\xdf\x0d\x01\x6b\xdd\xdf\xc4\x4d\x44\x13\x80\x1b\xc6\x39\xc7\x1d\xa0\x14\xb3\x67\x95\x38\x72\x75\x5e\x41\x08\x37\x5f\x05\xa6\x16\x9f\x73\xaa\xac\x98\xee\x47\x96\x0e\x01\xae\xf1\x9b\x7d\xbd\x2b\x5d\xa6\x8c\x8d\x25\x23\xab\x6d\xf0\x84\x9d\xb1\x29\x53\x4c\x24\x6c\x8d\x5c\x54\x1f\x4a\xe6\x32\x4b\x31\x92\xdd\xff\x62\x24\x71\xa3\xc6\x19\x9b\xd1\x64\x59\x17\x0a\x5b\x05\x9a\x1e\xf1\xd4\x9f\xed\x98\xcf\x4d\xe1\xca\xda\x7d\xb3\xcc\x4a\xd9\x3e\x50\xb9\xcf\x22\x60\x60\x65\x25\x88\xa8\xbb\x5b\x4e\x4e\xcd\xbc\x6b\x25\x76\xcc\x67\x9f\x7a\x96\xbb\x48\x8a\x4f\x67\xef\x89\x7d\xe0\x7c\xea\xde\xe7\x05\x71\x6e\x1c\x63\x48\xa3\x70\x7b\x40\x7d\xbf\xdc\x2d\x56\x29\x95\xe9\x58\xe5\xc9\xb4\x4c\x20\x41\x72\x6d\x5f\xf2\x04\xd6\x7d\x1a\xef\xda\x5c\x6a\x50\x95\x83\x6f\x2f\xf2\x9a\xfd\xfe\xf7\xdf\x83\xb4\x30\xa1\xc9\xd5\x8d\x65\x02\x89\x5c\xe4\xd4\xf0\x09\xcf\xb8\x59\x8e\xc9\x67\x3b\xeb\xe7\x28\xea\xca\xc5\x7e\xe0\xd7\x5c\xcc\xc9\xf3\x57\x87\x7f\xfc\xc3\x1f\xbe\xff\xc3\x08\x13\x19\x34\xbf\x66\x2f\xee\xdc\x09\x87\x48\x56\xcf\x24\xe8\x52\xde\x36\xbe\xd7\x2b\x51\x0a\x6b\x2e\xf6\xca\xd8\x21\x1b\x73\xc8\xc6\x1c\xb2\x31\xcb\xd7\x87\x6c\xcc\x21\x1b\x73\xc8\xc6\x7c\x78\x49\x80\x43\x36\xe6\x03\x39\x88\x21\x1b\x73\xc8\xc6\x1c\xb2\x31\x87\x6c\xcc\x21\x1b\x73\xc8\xc6\x7c\x30\xd9\x98\x43\x32\xe6\x90\x8c\x39\x24\x63\x3e\xfc\x64\xcc\x21\x65\x6a\x48\x99\x1a\x52\xa6\x86\x94\xa9\x21\x65\x6a\x48\x99\x1a\x52\xa6\x76\xe0\xea\xe9\x9b\x34\xd5\x41\x96\x77\x9c\x36\xe5\x24\x96\xc0\x99\xec\x4d\x06\xad\x7a\xc8\x9d\x7a\xd8\x21\xe0\x43\x04\xf4\x53\x89\x80\x1e\x72\xa7\x1e\x52\xee\xd4\xaa\x8b\xbe\xa7\xb4\x39\x64\x4f\x85\xb8\xf2\x0e\xde\xb7\xdf\xa8\xf2\xf5\x1f\xef\xc8\xa0\xea\x7e\xb9\x8a\xbf\xeb\xc7\x0f\x2c\xf4\x41\xb3\xd0\x4d\xb2\xa8\xfa\x1e\x74\xeb\xc4\xbb\x25\x4a\x43\x26\xd5\x20\x47\x0c\x99\x54\x8f\x85\xe3\xdd\x41\x2e\x55\x53\x48\x53\x3b\x9b\x6b\x18\x6d\x99\x80\xa1\xdc\x45\xdb\x59\x4c\xb0\x5a\xbc\x65\x1d\x3e\x59\x8a\x92\x8b\xf7\xe7\x76\x98\x60\x89\x0b\x73\x73\x46\x1b\x27\xc5\x75\x73\xbb\x84\xfe\xb5\x10\x69\xd6\x19\xce\xeb\xc7\x61\x20\x2d\x39\x7d\xf7\x81\x30\x91\xc8\x94\xa5\xe4\xcd\x31\x99\xc0\xb3\x5a\x2c\xad\x0f\x06\x0a\x25\xca\xa2\x85\x3d\xd3\x3e\x52\x30\xb1\xab\x82\xba\x6b\x0c\x3c\xc2\x85\x88\xe2\x60\xd1\x20\x46\x8c\x2a\xb4\x21\x4a\x4a\xa3\xbd\xe9\xc4\xde\x33\x9c\x80\x2a\xfc\x54\xab\xcd\x63\xb2\x34\x6c\x73\x72\xe0\x42\x6e\x77\x17\xe2\xb6\x12\x41\xbe\x8e\x28\x7c\x76\x9f\x77\xe0\xae\x44\x8e\xc7\x01\xc1\xab\x56\xab\x77\xe8\xe9\x29\x27\x90\x8a\x7c\x2e\x54\xf6\x39\xd8\x92\x02\x7c\x7d\xc6\x48\xcd\x17\xa2\x0a\x21\x20\xbe\x98\x9b\xb9\x77\xeb\xa0\x61\x1d\x2c\x5f\x02\x7c\xae\x4e\x4e\x29\x34\x2b\x3f\xd5\xa2\x8e\x14\x2a\xeb\xc2\x2e\x58\xdf\x8c\x5f\x33\x9f\x93\x93\x04\x19\xa9\xe2\xe4\xe2\x82\x68\x4f\x2e\x3f\x9d\xbd\xb7\xdb\x5f\x90\xe7\x9f\x41\x34\x62\xaf\x8f\x8e\xe6\x52\x9b\xd7\xb9\x54\xe6\x08\x82\xbe\x5f\x8c\x31\x76\x0c\x0b\x02\xda\xd9\xf0\x4b\x32\x86\x4f\x33\x58\x2e\xe6\x8c\x7c\xb6\xd3\x85\x60\x69\xcb\xd9\xe0\x1c\x20\x70\x27\x9c\x80\x87\x56\x15\x52\x3f\xb8\x82\x7f\x11\x74\xc8\x94\xb3\x2c\x0d\xd5\xf4\xc0\xd8\x67\x3f\xe0\xd2\x63\x26\x18\x26\x9c\x5d\x3b\x8b\x33\xfb\xe2\x04\xbb\xb7\x1f\xcf\x61\xdf\x72\x11\x61\xbd\x26\xcf\x31\xca\xe6\xb3\xa5\xac\x87\xe1\xf7\xcf\xde\xd5\xe1\xe6\x22\x5c\x1c\x7a\xaf\x88\x9d\x88\xea\x9a\x2f\x91\x92\x8c\x2e\x19\xca\x10\x5c\x66\x00\xf6\x17\x63\xbf\xf5\x60\xee\x9e\x40\x81\xc1\x93\x53\x42\xd3\x54\x31\x8d\xee\xe0\xd3\x8c\x51\x0d\xe5\x10\x99\x2f\x72\x68\xe7\xf9\x6c\x8f\x2f\xc3\x09\x2c\xa4\x5f\x7d\xf7\xa7\xf1\xcb\xf1\xcb\xf1\xab\xcf\xf6\xf3\xd4\xcf\x6d\x31\x8d\xeb\xab\x25\x29\x44\xc6\xb4\x06\xac\x32\x96\xaa\xcd\x14\x03\x3f\xa1\x62\xa5\xef\x35\x32\xee\x4b\x01\xe9\x50\x76\x12\xed\x28\x8e\x1d\x43\x45\x44\x13\x9c\x6b\x0d\xf3\x8e\x58\x94\x5e\x1a\x45\xdc\xc6\x97\xe6\xbc\x80\x70\x45\x6d\xe0\xb1\xfd\x72\xc6\xaf\x58\xb6\x74\xc6\x71\x21\xc5\xa1\xc5\x2a\x3a\x81\xa0\xb5\x31\x1b\x8f\x00\x1d\x18\xd5\x30\xc4\x14\x4a\x90\x22\x47\xbf\x93\x60\x37\x1e\x0b\x02\x26\x21\x82\x06\x54\xbb\x3c\x00\x8e\x7e\x79\xf0\x03\xa0\x88\xc5\x64\xf7\x68\xc6\x85\x0f\x3a\xf1\x4c\xdf\x85\x41\x1e\x63\xba\x42\xa8\x20\x49\x33\xe7\xf3\x9d\xfa\x2c\x2f\xef\x26\xa0\x62\xe9\xc5\xc2\x9c\x29\xa0\x46\x93\xcc\x15\x2e\xfd\x74\xf6\x7e\x4c\xfe\xa7\x2c\x60\xac\x47\x51\x98\xd8\x48\x30\x6f\x03\x1c\xd5\x84\x1b\x45\x55\x98\xa6\xee\x6b\x9e\xc6\x71\x36\xb4\x74\xbb\xa5\x56\xbe\x98\x72\xb7\xf1\x63\x63\xd8\x22\x37\x6e\x02\x2c\x34\x59\x68\xa6\x08\xe4\x27\x68\x9e\x10\x5a\x98\x39\x44\x8b\x91\xcb\x03\xfb\xe4\xb5\x5d\xc1\x8d\x54\xe9\xff\x89\xe1\x60\x10\x8d\xe3\xf3\xc5\x7e\x54\x74\x86\x61\x82\xcf\x2f\x0f\xbe\x19\x8f\xc7\x97\x07\x2f\x00\x02\xbf\x16\x4c\x2d\x49\x4e\x15\x5d\x30\x03\x57\xe3\xf2\xe0\xff\xf0\xcf\x5d\xb9\x4e\x37\xcb\xc8\x39\xc2\xef\x2b\x8d\x08\x9c\x48\x43\xf7\xa7\x21\xdf\xe0\xf1\xe6\x1b\xc4\x0e\xa7\xcf\xff\x7a\xe6\x70\xfa\xd9\xbf\x3f\x3f\x8d\x4c\x04\xbc\xa1\x43\x3a\xc2\x76\xe9\x08\xf8\x6c\x48\x48\x18\x12\x12\x86\x84\x84\xaf\x25\x21\x01\xef\xca\x90\x8b\x30\xe4\x22\x0c\xb9\x08\x43\x2e\x82\x7f\x3a\xe4\x22\x0c\xb9\x08\x43\x67\xa8\x21\x19\x61\x48\x46\x78\x9a\xc9\x08\x43\x67\xa8\xa1\x33\xd4\xd0\x19\x6a\xe8\x0c\x35\x74\x86\x1a\xd2\x9c\x9e\x66\x9a\x13\x5a\x82\x9f\x4e\xae\x93\x4b\xba\x19\xb9\xa4\xa7\x73\xb9\xa8\xa7\x3e\x0d\x99\x4b\x1b\x67\x2e\x55\xac\xdf\xee\xe1\x90\xce\xb4\x9b\x74\xa6\xef\x1f\x60\x3a\x53\x57\xc8\xdb\x4e\x1c\xc2\x8f\xa7\x99\x93\xd5\x92\x14\x4b\xa8\x33\xbc\x5f\xbf\x1a\xbf\xfa\xe3\x88\xe4\x19\x15\xc2\xb2\x1e\x98\x62\x21\xaf\x41\x3e\x81\xa7\xff\x1d\x95\xa1\x75\xe1\x7c\x47\xd7\xaf\xd6\x93\x7f\x2f\x75\x0c\xa1\xdc\x0f\x39\x94\x7b\x88\x62\x7e\x2a\x51\xcc\x43\x36\xd4\x03\xca\x86\x6a\x8e\x20\xea\x29\x92\x0e\x09\x51\xb7\x6d\x27\x05\xe0\xdf\x41\x74\x78\x37\xdf\x1f\x1a\x4b\x0d\x7c\x74\xd3\x94\xa8\x7b\x6c\x2c\xd5\x43\x90\xbd\x8d\xde\x3c\x48\x13\x4f\x45\x9a\x18\x72\xa2\xf0\xf7\x87\xc6\xf4\x3a\x32\xa2\x76\xcb\xf8\x86\x3e\x53\x43\x9f\xa9\x35\x20\x1a\xfa\x4c\x0d\x7d\xa6\xb6\x06\xe0\xd0\x67\x6a\xe8\x33\x35\xf4\x99\x1a\xfa\x4c\x3d\xca\x3e\x53\x28\x1e\x0d\xcd\xa6\xca\xef\x0f\xcd\xa6\x36\x5d\xe5\xd0\x6c\xaa\xe5\x6e\xde\x77\xb3\x29\xbc\xdc\x43\xc7\xa9\x21\x03\x74\xc8\x00\x1d\x32\x40\x87\x0c\xd0\x21\x03\x74\xc8\x00\x1d\x32\x40\x87\x0c\xd0\x35\x77\x7d\xc8\x00\x1d\x32\x40\x87\x0c\xd0\x21\x03\x14\xfe\x37\x64\x80\x7e\x05\x19\xa0\x43\x02\xe8\x90\x00\x3a\x24\x80\x3e\xfc\x04\xd0\x21\x4d\x6b\x48\xd3\x1a\xd2\xb4\x86\x34\xad\x21\x4d\xab\x05\x33\x86\x34\xad\xa7\x96\xa6\xf5\xf8\x1b\x48\xed\x2b\x5f\xab\x63\x83\x43\xc6\xd6\x63\x88\x34\x1f\x62\xac\x9f\x4a\x8c\xf5\x90\xb1\xf5\xe0\x32\xb6\x86\x26\x56\xee\xc5\xfb\x68\x62\xb5\xdb\xe0\xf5\xa1\x9d\xd5\xc0\x51\x9f\x58\x3b\xab\x5e\xf2\xed\x6d\x14\xea\x41\xb6\x78\x2a\xb2\xc5\x90\xbf\x85\xbf\x3f\x3c\x06\x78\xa7\x19\x5c\x43\x77\xab\xa1\xbb\x55\x77\xdc\xfa\x3a\x1a\x31\xb4\xb8\x32\x43\x8b\xab\xa1\xc5\xd5\xd0\xe2\x6a\x68\x71\xf5\x28\x5b\x5c\xe5\xb9\xb6\xf2\xe0\x1b\x2b\xaa\xc9\x2c\x63\xea\x8c\x5d\x73\xbd\xde\x10\xbe\x3a\xb8\xf4\x56\xc1\xb9\xf0\xc5\xa2\x40\x9f\x98\x16\x34\xd7\x73\x09\xba\x11\x3a\x4f\x51\x84\x44\x19\x02\x31\x58\x31\x9d\x4b\x81\x67\x6f\x0f\x4c\x33\xc5\x69\xc6\x7f\x83\x6a\xa5\x22\x25\x29\x8b\x7f\x29\x1d\xf0\x8e\x42\x38\x09\xc4\xe5\x84\x05\xd5\x13\xbe\x36\x26\x3f\xa3\x8b\xac\x61\xc9\x73\xaa\xc9\x84\x31\x41\x74\x91\x24\x4c\x6b\x0c\x39\xc4\x40\x84\x14\xc2\xc2\x12\x2a\x48\x5d\x6b\xb8\xa8\x84\xe2\x47\xce\x99\x28\x69\xc0\x2a\xd1\x90\x82\xe9\x15\x10\x30\xf2\x23\x92\xc1\x05\x2f\x8c\x17\x35\xde\x52\x43\x91\xde\x8e\x1b\xd6\x08\x8a\xcf\x88\xcc\xbd\xab\x7b\xc2\x5c\x10\x84\x2b\xa7\x0b\x33\x8f\x48\x5a\x00\x01\xb2\x4a\x8f\x45\xde\xc9\xb2\x0c\xfe\x78\x4b\xd9\x42\x8a\x73\x86\x3e\x85\x73\xfb\xdd\x69\x91\xd9\xbf\x93\xf0\x35\xf4\x13\xe3\x0e\x61\x98\x72\x91\x12\xa3\x8a\x5e\xc6\x2d\xb8\xec\xd9\x95\x9e\xf7\x70\x93\xa3\x54\x03\x08\x9e\x84\x59\xaa\x96\x05\x74\x35\x6a\xac\xc8\x6b\x30\x8b\x14\xc8\xb2\x46\xf2\x90\x38\x8c\x88\x98\x58\x0a\x99\xa3\x10\x13\x83\x7e\x59\x9f\x92\x84\x05\x01\x72\xc5\x17\x54\xf1\x6c\x09\xeb\x0f\x07\xef\x40\x10\xed\x6f\xb0\xaf\x3c\x68\xfb\xca\xed\x55\x5b\x55\x08\xc3\x17\x6c\x7c\x46\x6f\xde\xf9\x08\xe9\xb5\x52\x2b\x5c\x3b\xee\x83\x95\x90\xb8\xb0\x15\x94\xf5\x39\x87\x40\x49\x06\x8b\xc8\xd3\xb6\x88\x6c\xe7\x6d\x79\xa6\xef\xce\x2e\x12\x36\xdd\x08\x12\xb5\xca\xb7\x9b\xd6\x5f\x72\xec\x50\xb7\x1f\x33\x0d\xdd\xcf\x31\xce\x97\x88\x87\xc1\x24\x6f\xc1\xd9\xd3\x1e\x1d\xf0\xc7\xdf\xef\x38\x3a\x20\xec\xe9\x2e\xed\x39\x79\xae\x9b\xed\x36\x0d\x32\x52\xbb\x9d\x66\x13\x13\x4d\xab\x0c\xd6\xe1\x85\x68\x7e\xc1\x2b\xe2\x8e\x90\x38\xf1\x08\x84\xa9\xe0\x8f\x68\x10\x87\x56\xe2\xbc\x06\x5e\xf9\x00\x79\x65\x1f\x5f\xc4\x89\x1d\xe3\xb9\x5b\xfb\x89\xeb\x1d\x39\x23\xda\x35\x88\xc1\xd5\x30\x30\xd6\x9e\xae\x86\xbb\x67\x9d\x0f\xd6\x9f\xb0\x01\xff\xe9\xf0\x15\x6c\xc1\x83\x82\xbe\xb8\x86\xed\x94\x3a\x65\x79\x7f\x5a\x62\xde\x48\x0a\x63\x89\x66\x66\x60\x2c\x0f\x9a\xb1\x0c\xf4\xf6\xa9\xd0\xdb\xc7\xae\xc8\xe8\x9c\x25\x9b\x7b\xb4\xea\xf4\xeb\xdc\xce\xb2\x6e\xff\x17\x73\x46\x52\xa6\x2d\xc5\x27\x13\x36\xa7\xd7\x5c\xaa\x40\x30\x22\xb2\xb5\x6f\x60\xd8\xed\x1e\x52\x91\x1e\x5a\x95\xab\xd0\x2d\x30\xc1\x67\xb7\x87\x0a\xce\xd3\x05\x97\xa4\x50\x50\x59\x0b\x3f\xdb\x08\x95\x0b\xfc\xc1\x50\x6f\x02\x94\x05\xc8\x99\x60\x44\x9c\x2c\xd1\x0b\x74\xc3\x45\x2a\x6f\xe0\x7d\xbe\x60\x63\x72\x2a\xf3\x22\xa3\x4e\x9b\x04\x35\x13\x7c\xa7\x63\x72\xc6\x68\x7a\x28\x45\xb6\xbc\x47\x70\x77\x99\xd0\xef\x84\xc7\x97\xfc\x77\x3f\x6c\xfd\x8d\x14\xd8\x6c\xac\x0f\x7f\x0f\x83\x6b\xb1\xed\x68\x1c\x00\xfe\x1e\xd9\x97\x0d\xa1\xe0\x28\xa7\x5c\x10\xa0\xdc\x3d\x38\x7e\x46\xb5\xb9\x50\x54\x68\xf8\xcc\x05\x5f\xad\x24\x70\x0b\x42\x08\xd3\xad\x43\xf5\xf7\x54\x1b\xec\xc6\xe7\xa4\x17\xb7\x5b\x13\x56\xe4\x53\xba\xa4\x60\xfe\x32\x18\xe9\x53\xca\x5b\x4c\x82\x0b\xa6\x35\x9d\x75\x05\x2b\x1c\x93\x79\xb1\xa0\x82\x28\x46\x53\xf0\x94\xb8\xd7\xbc\x5d\xc6\x32\xd3\x94\x19\xca\x33\x9f\x17\x07\xc9\x24\x61\x65\xdb\xf4\x64\x63\x54\x77\x8a\x56\x17\x60\x0c\xb2\x03\x9d\xcb\x3e\x02\xcc\x33\x4d\x32\x00\xd9\x6d\x56\xd1\x4c\xca\x56\x99\x53\x20\x3c\xd1\x02\x46\xde\x3b\x7e\xa1\xac\xc4\xf5\x23\xcd\x34\x1b\xdd\x26\x13\x68\xd9\x59\xda\xf1\x62\x89\x15\x07\x4b\x44\x0f\xab\xd9\xda\x37\xd7\xac\x69\xc0\xfb\xab\x80\xea\x52\x3d\x7a\x5f\xfd\x0e\x63\x52\x65\x1c\x8a\x79\x89\x55\x36\x12\x2f\x32\x97\xd4\x7f\x30\x12\x3d\x6c\x59\xbe\x8f\x91\xe8\x38\x58\x86\x1a\xcf\xb5\x75\x9e\xad\xc4\x8e\xc1\x12\x34\x68\x26\x0f\x3c\xe8\xf4\x49\x58\x88\xaa\xb4\x7e\x3f\x12\xe4\x79\x55\x3d\x6b\x65\x23\x76\x5c\x70\xb1\x62\xc4\x5a\xb2\xad\x61\x68\xc1\x85\xd5\x10\x96\x3d\x53\x76\xe7\x0c\x5b\xed\x16\x8b\xa8\xcb\xae\xcb\x6e\x05\xa9\x06\xa3\xae\x20\x02\xaa\x0c\xf9\x88\x58\x7c\x2e\xd3\xa8\x16\x95\x15\xd1\x96\x21\x11\x13\x6a\xcf\x4c\x21\x22\xc1\xb9\x56\x98\x22\x89\xa2\x7a\xce\xc5\x0c\x23\x8e\xb8\x71\xe1\x58\x51\x15\x09\x7a\x4d\x79\x66\x05\xbd\x6a\x16\xf3\x4b\xf2\xdc\x7e\x2c\x74\x8e\x6e\x78\x81\x50\x4d\xb4\x94\xc2\xfe\x97\xbb\x4e\x08\x34\x5d\xee\xa8\xbc\x6a\x83\x07\xf1\x27\xae\x8d\x54\xcb\xf7\x7c\xc1\xbb\x4a\xd0\x5e\x54\x1a\x19\xcb\x2c\x25\x73\x7c\x19\x02\xe2\x18\xc6\xe5\x48\x0c\x6a\x0a\x61\x25\x4e\x79\x04\x7a\x0d\x84\x14\x23\x15\x53\x0e\x35\x6a\x0b\xae\xe7\x21\x65\x99\x7d\xc9\x33\x9e\x70\x43\x7e\x63\x4a\x62\xfd\x12\x69\xa2\x00\xc8\x0a\x2c\x5f\xbd\xdc\x39\x48\xf4\x7d\xd6\x90\x39\x76\xf5\x72\x30\x6c\x4c\x5e\x33\x05\x35\xe1\x5d\x38\x91\x62\x64\x41\x05\x9d\x95\xca\x74\xc5\x68\x51\x68\x13\x8a\x25\x96\xf5\x31\x10\xc5\xd0\x8a\x9c\x42\x1c\xcd\xa2\x1c\x88\x15\x84\x53\x62\xd8\x22\xb7\x72\x11\x88\xfb\x58\x7a\xa4\x81\xf8\xde\xb6\x42\xd0\xd1\x37\xf0\xdf\xc3\x50\x0d\xa8\x45\x44\x77\x8b\xd9\xd8\xf6\x91\x48\xc5\x2c\xbc\x4f\x65\x7a\xe1\xe6\xe8\xb4\x09\x1d\x57\xcb\xca\x54\xb5\x5e\x00\x0d\x84\xa4\xfa\xcb\x8a\x74\x03\x63\xc2\x4a\xe2\x01\x8f\xf1\x59\xdc\xae\x9c\x24\x32\x5f\x06\x29\xd6\x4e\x06\xcd\xde\xed\xd1\x0a\x99\xba\xb8\xd4\xb8\x88\x4e\x74\x0c\x30\x20\x94\x9b\x79\x0e\x25\x67\xe2\x77\xf9\x94\x08\x59\x1b\xc5\xa3\xba\xb7\x2f\x36\x3e\x41\x7b\x70\x99\xa4\xa9\x3e\x8a\xe2\xa8\x8e\x14\xb3\xd7\x11\xa8\x78\xf9\xf3\x37\xb9\x4c\x0f\xc3\x31\x35\x1e\x22\x8a\x3f\xe7\x65\xc6\xe2\x2d\xcd\x58\x9f\xaa\xf3\x75\x1c\xa9\x8b\x6c\xf3\x09\x93\x48\x9a\xf2\x8c\x26\xf6\x7c\x90\xe8\x54\x69\xbf\xab\x6a\x21\xd8\x0d\x36\x61\xd8\x5c\x26\xd0\xab\xf7\xfb\xa0\x0e\xa2\xdb\x6b\x74\xe7\x75\x55\xba\x9d\x19\xa3\x3e\x5d\xf7\xd7\xac\x98\xf9\x36\xe4\xcb\x56\x41\x04\x96\xf1\x46\x16\xa2\x8b\x57\xc0\x18\xfb\x91\x39\xd5\x73\x12\x5e\xd5\xc1\xce\x10\x56\x5b\xbf\x51\x25\xae\x91\x42\xfb\x96\x1e\x18\xa4\x4e\xbd\x9e\x8a\x41\x0c\xf4\x5a\xf2\x94\x8a\x84\x91\x05\x4b\xe6\x54\x70\xbd\x20\x37\x73\x26\xb0\xc8\x1f\x4b\x81\x4f\xb8\xbb\x19\x2a\x3d\xfa\xef\x0b\x76\x63\x75\xc1\x55\x37\xdb\xce\xd9\x4a\x30\x21\x74\x77\x37\xa9\x1c\x98\xd3\x56\x4b\xd1\x40\x4e\x34\x53\xd7\xbe\x10\x53\xc5\x20\xf7\x4c\x57\xce\xb7\x5e\xcc\x77\x67\xba\x5d\x69\x51\xec\xa9\xe4\x75\x25\x36\x57\x52\xa1\x6b\x46\x91\xcd\x53\xa1\x63\xa8\x23\x38\x3e\x82\xbc\x72\x9e\xcc\x59\x5a\x64\xac\x4b\xb5\xac\x4a\x38\x96\xc4\x46\x0c\xd8\xa7\x54\x50\x43\x32\x46\xb5\x21\xaf\xfc\xfd\xb1\xf4\x1d\x2a\x7e\x28\x86\x75\xc6\x5d\x9e\x91\xaf\xfa\x56\x0e\xdb\x11\x69\xc6\x09\x35\x33\x47\xbb\x46\x56\xe7\x24\xd9\x1c\x6c\x46\x1a\x9a\x35\x03\x2f\x12\xae\x1d\x08\xab\x40\x21\xcf\xb1\xb6\xae\x7d\x82\xaf\x25\x52\x29\x06\xbc\xb4\xf9\x8d\x5d\xb1\xb8\xfd\xc1\x11\x01\x71\xec\xef\xee\xb6\x78\xd7\x09\x3a\x8b\x76\x50\x09\x0f\x6c\xa5\xae\x0a\xa3\xb3\xa4\x46\xc3\x02\xee\x8a\x58\xd7\x78\x8e\xca\x0e\xb4\x90\xf2\x48\x6d\xc5\x88\x71\x4d\x05\x7b\xb1\x1f\xe8\x7c\xe0\x5a\xef\xf2\x62\x56\xf7\x8c\xd5\xb4\x7d\xa6\xc5\x23\xbf\x96\xb8\x77\x38\x93\x87\x84\x4a\x80\x3f\x3b\x67\x98\xb8\xfc\x4f\x82\xde\xdd\xed\x89\x3b\x49\x3c\xdc\x6b\x83\x02\x00\x4b\xff\xc6\x04\x5b\x29\x60\xd5\x06\x99\x85\xd4\x60\x13\xb7\xb2\xc1\x2c\xbc\x48\xfc\x5c\xab\xfa\x64\x24\x81\xed\x26\xfe\x77\x45\x37\xd8\x2d\x7b\x89\x49\x80\x9b\x3f\x3a\xc3\xbb\xac\x6f\xd6\x22\x73\xac\x27\x7c\xdd\xcc\xb7\x85\x0e\xec\x4c\xb3\xf8\xd4\xa6\xb0\xb5\x6a\x18\xd5\x37\x82\x31\xbe\x48\x4c\xc8\xb1\x76\x48\x04\xb8\x55\xd7\xc9\xe0\xe6\x44\x1a\x40\xb7\xee\x61\xd1\x91\x8b\x19\x7e\x77\x6b\x95\xf2\x2c\x9e\xa5\xc5\xf9\x5e\x97\xc9\xf1\x15\xbf\x05\x0c\x7a\xc3\xac\x3e\x3d\x26\xa7\x2e\xc5\x31\xd4\x84\x5d\xe6\x8c\xfc\x85\x5c\x1e\x54\xbe\x74\x79\xd0\xe2\x3c\xde\xc0\x23\x19\x5d\x4f\x5c\x0a\x38\x1c\x30\x6b\xb3\xf6\x31\xac\x70\xfd\xb3\x78\x0b\xc9\x63\x97\x07\x95\x4e\x69\x95\xb1\x77\x95\x6f\x58\x96\xe5\x5d\x87\x5c\x61\x10\x61\xc2\xd2\x59\x4d\x52\x96\x64\xd4\xd2\xab\x6b\x8f\x43\xa8\x3f\x9e\x5a\xad\x1d\xdb\xc6\x82\x89\xe2\x7c\xf0\x52\x3e\x74\x2f\xe5\xe0\xd7\x7b\x2a\x7e\xbd\x5b\x16\xaa\x6b\x21\x85\xb7\x8b\x03\x0c\xa4\xa3\xd3\xe8\x7b\x5e\x77\x4e\x99\xd6\xc8\x40\x16\x95\x13\x6f\x5b\xf5\x2d\x23\xf5\xca\x75\x77\x87\xea\x7d\x28\xe5\xb8\x6c\x59\x8a\x6f\xba\x12\x3c\xd3\xbc\xe2\x2e\xfa\x7d\x37\xee\xca\x92\x09\xec\xd6\x57\x19\xe6\xed\x15\xee\xb6\x3a\xba\x3d\xde\xad\x6c\xd7\x33\x04\xbc\xc5\x7b\x42\xe9\xe1\xae\xf7\x73\x01\xbc\xb1\xdc\x13\xf6\x2a\x70\x9b\xba\xa1\x3a\xd0\xe7\x21\x52\xef\xeb\x89\xd4\x8b\xae\xe8\x63\x0b\xd5\x0b\x2b\xef\x8a\xd5\xab\x0c\xac\x96\x9a\x2c\x9f\x0d\x02\xf0\xc3\x16\x80\xb7\xce\xe5\x6c\x3c\xe2\xd6\x29\xb7\x13\x3f\x86\x90\xbd\x41\xb4\xbf\x65\xc8\xde\xe3\x0e\xa5\xab\xd2\xe2\x3d\xc9\xa7\x5d\xc1\x74\x95\x81\xad\xd1\x74\x7d\x15\x96\x1d\xc7\xd9\x7d\xd8\x22\xc6\xee\x51\x44\xd6\xed\xda\x48\x9f\xd3\x42\x77\x9a\xb4\x4f\xa2\x7a\x1c\xd4\xb8\x33\x0d\x92\x0c\xd7\x04\x67\x69\x91\x64\x26\x52\x66\x8c\x8a\x96\xef\x2b\x39\x53\x4c\xeb\xb7\x8c\xa6\x19\x17\x6c\x83\x30\x4a\xfa\x05\x8e\x18\xe4\x6b\x2e\x2a\x07\x5c\x51\x86\x7c\xd9\x3a\xff\x29\x32\xc1\xd6\x31\x08\xd6\x6a\x37\xad\x09\x36\x2f\xf1\x91\x53\x55\x79\xcd\x07\x7a\x60\x14\x95\xb4\x8c\x00\xab\x5b\xe5\x4a\x26\x76\x62\x7c\xb5\xd2\xdd\x15\x7c\x31\xb1\xe4\xcf\x8d\xc5\xbc\xd3\xda\xb6\xdf\x7d\x49\x18\x4b\xa1\xcc\x0f\x48\xcd\xa1\x81\x7f\xa1\xa6\x34\xf1\xdd\xc1\x2b\x0b\x42\xc1\x2e\x2a\xb6\x55\x6e\x10\xde\x76\xbc\x82\x69\xc3\x17\xe8\x65\x28\x94\xe7\x5c\x00\x33\xda\x7c\x88\x15\x4c\xfd\xe3\xcb\x97\x3b\x6a\xba\x52\x51\x21\xc0\x0e\xda\x75\xc8\x1f\xc3\xdd\xf5\x04\x04\x22\x9e\xf6\x15\xa1\xf9\x30\x63\x56\x23\x9b\xf1\x10\xb7\x7a\xfb\xb8\xd5\xf7\x95\x2e\x8f\x40\x2b\x10\xa9\xde\xf9\x68\xbb\x18\xe0\xd8\xbf\x13\xa2\xee\x20\x58\x06\x5e\xf3\x4e\x48\xae\xc3\x2d\x85\xba\x7f\x56\xed\x08\x9d\x20\xfc\x88\xf2\x86\xf5\x8f\x68\x6d\xd3\x78\x6f\x1b\xa1\x18\x99\xef\x7a\x04\x27\x5e\xd4\xa9\x4d\x19\xa1\x08\x25\x2f\x1b\x02\x15\xab\xe1\x89\x16\x20\xe3\x8d\xe2\xa3\x10\xb9\xff\xc1\x96\x0f\x21\xde\xd6\x0f\x5c\x8d\xb4\xd5\xcd\xa1\xb6\x0f\x2d\x12\xb3\x6e\xad\xed\x25\xca\xa1\xc5\xc4\x09\x73\x8b\x4d\x6d\xb8\xdd\x2a\xbd\x17\x6f\xce\xfa\xb1\x80\x8b\x9a\x1f\xbd\x14\x8f\xe0\x1c\x9a\x42\x1b\xea\x51\x0d\xc4\x50\x35\x63\x2d\x77\x72\xf7\xc1\x93\x3b\x0d\x3a\x8d\x88\xc7\x45\xe5\xef\x3b\x0e\x3b\x2d\x69\xe2\x63\x0a\x37\x2d\xcf\x79\xdf\xf1\xa6\x0d\x36\xfd\x9e\x26\x8a\x7b\x0b\x38\xdd\x2a\x38\x67\x5d\x40\x4e\x13\x6e\xee\x3c\x20\x07\xee\xfb\x96\xb4\x03\x69\x05\xd2\xef\x3b\x24\x09\x3d\x85\xdd\xfa\x6a\x85\x14\x87\x86\xa9\x05\x17\x5e\x37\x5d\xbb\x6c\xf2\x1c\x4b\x0c\xbb\x0e\xc3\xa5\x88\xe1\x79\xcc\xee\x53\xb2\x0a\x71\x5b\x6a\x1e\xcd\xd0\x7d\x2e\x41\xc0\x35\x0d\xf1\x55\xd5\xdc\x23\x6d\xb8\x2b\x71\x0c\x5a\x83\x27\x66\x55\x95\x10\x02\xe9\x5e\xbd\x7c\xf9\xbb\x88\x86\x24\x34\xa7\x09\x54\xf1\xbd\xc0\x3e\xa0\x4b\xdf\x48\x7a\xc2\x6a\xdf\xf0\x21\x5c\x93\xc2\x80\xfc\xbc\x64\x15\x62\x14\xa7\x43\xe1\x72\x5c\xe0\x9e\xc1\xba\xce\x41\x68\xd8\xf5\xa1\xa0\x65\x70\xcb\x03\xd9\x14\xe9\x60\x7b\xb0\xb1\xd8\xcc\xe3\x45\x18\x8c\x32\xdc\x4f\x44\xdb\x2d\x84\xa1\xee\xb8\xb1\x95\xc1\x91\x0c\x38\x97\x37\x1b\xcb\xbe\x77\x1a\x27\xd6\xe2\xb7\xbe\x55\xa0\xd8\x2a\x44\x2e\x30\x74\xac\x16\x9f\xd5\x2c\xb5\x6f\xe3\x1e\x8b\xe3\xc5\x18\x5e\x16\x1f\x2a\x56\x0f\x56\xbb\xf7\x78\xb1\x52\x3a\x5a\x83\x54\xe5\x20\xc2\x84\x2e\x54\x08\x07\x2d\x35\xef\x2a\x3d\x23\x9e\x71\xd4\xb3\x39\xa8\x58\x42\x97\x0f\x81\x85\x8b\x06\x3f\xda\x43\xf6\xa3\x0d\xde\xa6\xa7\xe2\x6d\xea\x19\x48\xe6\x3a\x01\xbd\x47\x39\x0c\xf4\x90\xe8\xea\xdb\xab\xcc\x16\xb9\x59\x42\x13\xa0\x25\xfc\x9d\x22\xf9\x0a\xf6\x67\x90\xda\xa0\x51\x01\x5e\xbf\x53\x99\x3e\xb7\x6a\xac\xb7\xbc\x47\xd3\x61\x92\xb5\x3d\xf5\x27\x59\x30\xaf\xdc\x69\xaf\x40\xb9\x0a\xd1\xda\xc8\x11\x15\xe9\xb7\x4f\xa1\xa4\x5e\x04\xb7\xee\x40\xbd\x2d\x4c\x3e\x31\xb8\x86\x5a\x7b\x7b\x71\xf1\x46\x32\xc5\x4e\xdd\xbb\xe5\xbc\x7d\xc2\x0f\x1b\x46\xb7\x87\x1f\x3a\x79\x05\x82\xfe\x1f\x61\xfc\x61\x3d\x5e\x6f\x28\xba\x37\x84\xf2\x35\xc2\xc3\xe9\x2a\x31\xba\x3f\xb2\x58\xbe\xf2\x5a\x77\xc4\xf2\x55\x07\x36\x15\xde\x1b\x52\x5a\x1e\x8b\x26\xb2\x49\xa7\xe8\xf8\x54\xf7\x58\x9d\x65\xb7\x56\xf8\x88\x65\xf6\x34\xbe\x0f\x1a\xdb\x93\xd6\xd8\x1e\x72\x49\xbf\x47\xd6\x47\xba\x87\x9c\xba\xfb\x50\xc4\x9a\xfa\xd7\x87\x4d\x75\x14\xf6\x6b\xf2\x63\x0e\x01\x87\x77\x1b\x70\xd8\xd3\x1f\xe6\x3d\x18\xfe\x34\xc5\x4a\x30\x98\x9f\xe8\x56\xa1\x4f\x51\xb7\xec\x7a\x38\xd8\x1e\x19\xdf\xd1\x37\x37\x73\x6a\x0e\xb9\x3e\xa4\x87\x3d\x38\xe3\x23\x8f\xb9\x3a\x8f\xca\xbe\xd1\x75\x75\x03\xdd\x5d\x28\x9d\x97\x5e\xc6\x4e\x64\x21\xcc\x18\x8d\x6a\xe4\x8a\x2d\x31\xac\x12\x65\x2e\x57\x9c\xae\x47\x4d\xc1\xe0\xc1\x8a\x44\xf7\xa1\xce\x60\x6b\xdc\x93\xbb\x78\x9b\x17\x1d\x24\x7c\x4a\xb8\xd0\xc5\x74\xca\x13\x90\x56\x2a\x9e\x8c\x94\x19\x08\x91\xbb\x8f\xb2\x7f\x3d\xf9\x6b\xb8\x2d\xbb\x53\xb4\x3a\x63\xb0\xea\x43\xfb\xd4\xc3\xdb\x88\x9d\x6d\xec\xac\xaf\x10\xdd\x92\x4d\x84\xc3\xec\x15\x7c\x15\x5a\xeb\xc7\x77\xee\x11\xc5\x10\x45\xcb\xde\x73\x10\x51\x93\x65\xae\xa7\x1e\x73\x6f\x41\x44\xd0\x96\x1a\xa8\x72\xff\x90\x83\x0a\x5a\x95\xb4\x1f\xa2\x08\xe2\xe8\x15\xaf\x44\x65\xc1\x93\x52\xa7\xcd\xfe\x37\x8f\x91\x7b\xc0\xac\x8d\xa3\xa4\x7e\x5e\x79\x81\x28\x36\xcd\x5c\x47\xf0\x6a\x04\xd5\x74\x9d\xc5\xbd\x5f\xc8\xdd\xfe\x83\xa8\x2a\xc7\x85\x37\x3e\x50\x80\x3b\xb9\xdc\x5b\xca\x8b\x75\xb0\x22\x54\xe3\xad\x78\xe9\xf1\xb1\x8b\x79\x3d\x99\x5a\x80\xe3\xad\x99\x5a\x73\x59\xa2\x76\xd6\x06\x4a\x59\xad\xc6\x52\x93\x27\x2e\x2a\x1a\xa4\x2a\xe1\x29\x7d\x94\x35\xfa\x65\x4d\x05\xb6\xcd\xc4\xdc\xc2\xf0\x6c\xcc\x85\xd1\x46\x8d\x4f\x84\xf9\x59\x9d\xa3\xdd\xa2\xcb\x7b\xe0\x13\x92\x4a\x24\xab\x55\xee\x05\x42\x97\x60\x5c\x4b\x1c\xfb\x16\x25\xe6\xf8\x6a\x49\xbf\x80\x45\xc9\x8d\xa5\x82\xd0\x89\x96\x59\x61\xc2\x65\x7c\xce\xbe\xbc\x26\x7f\x78\x41\x20\xd7\x29\x67\xca\xe2\x39\x9d\x21\x49\xac\x05\x75\xd5\x16\xe1\xbc\xc8\xda\x50\x65\x3c\x0d\x72\x51\x40\x30\xe9\xab\x97\xbf\x7b\x31\x26\xc7\xb5\xef\x71\x4d\x12\x9a\x25\xce\x6b\x07\xb6\xa9\xe8\xab\x93\x25\x51\xb2\x10\x29\x1e\x99\x53\xc8\x92\x60\x8e\x7a\x59\xc6\xe8\xa0\xa5\x8c\x6b\xab\x5f\xbd\xfb\x42\x17\x79\xc6\x5e\x63\x38\xb2\x71\x4a\x9c\x3d\x7e\x23\xc9\xf7\x2f\x7f\x37\xb2\x6b\x85\x7b\xfc\xfd\xcb\xdf\xf9\xa5\xde\xae\x70\xe7\x98\x8d\x7d\xde\x54\x73\xf5\xb2\x17\x00\x73\x1f\xd2\xc6\x9d\x76\xa2\x8d\xcc\x73\x17\x49\x48\x43\xd1\xe6\xd5\x58\x1c\x88\xd2\x0e\xe5\xc3\xa8\x32\x1a\x5c\xa0\xf6\x6d\x17\xbc\x53\xdd\x8e\xd4\x6c\xe5\x78\x84\x15\xaa\x99\x20\x13\x8b\x13\x9a\x14\x39\x04\x94\xd5\x46\x61\x36\x98\x5d\x5e\x46\x13\x36\x26\x3f\x8b\x84\xf9\x80\xed\x32\x5f\x25\x60\xd8\x08\x6c\x05\x76\x56\xc8\x54\x63\xa9\x26\x52\x18\x49\xc0\x6b\x55\x9b\x7b\x44\xcc\xbc\xd0\x18\xa4\x84\x30\xa4\xa6\x14\xf0\xfe\x84\x4b\x97\x8a\xcf\xb8\x58\x8b\x66\xf1\xf7\x01\x54\x59\x06\x40\xd2\x0d\xe8\xbe\xcb\x60\xac\x96\x60\xb8\xdb\x93\xa7\x6d\x68\xd2\x79\xa1\x56\x1d\x7f\xf7\x45\x8d\x56\x68\x50\xa8\xea\x47\xe8\x44\xd6\x82\x38\xab\xaf\xdd\x8a\x20\xc5\xd9\x7b\x31\x8d\xf1\x54\xc2\x67\x2a\xbe\xb4\x8a\xe3\x87\x0a\x21\xb7\x04\xe1\xe5\x6d\xa9\x51\x6c\xd6\xf9\xee\x0f\xbf\xeb\x43\x78\xfc\x55\x8a\x62\x6d\x02\xcc\xa8\x05\x58\x91\x13\xbe\x58\xb0\x94\x53\xc3\xb2\xa5\x9f\x88\xd5\x90\xc4\x11\x81\x11\xd1\x05\xd8\x16\x1c\xed\xad\xd3\x30\x99\x61\x6d\xcf\x70\x79\x53\x09\x30\x61\x90\x14\x4a\x5e\x39\x7a\x51\xcd\x82\x84\x2b\x6f\xdf\x84\x37\x80\x62\x41\x64\xf1\x15\xcf\x32\x96\x8e\x3a\x97\x3f\x2d\x94\xbd\xfd\xa3\xda\x4d\x6f\x8c\xac\xae\x45\x1f\x82\x87\x7c\xe5\x16\x83\x79\xc7\x51\xb8\xc6\x25\xb7\x18\xfe\x1f\x24\xe7\xbe\x43\x7e\xdd\x76\x3d\xb6\x47\xfa\x54\xde\x88\xf6\xeb\x05\x34\xc9\x5d\xac\x2d\xaf\x46\x35\x31\xb5\x86\x5b\xf6\xeb\x76\xf4\x9f\x56\x51\x60\x83\x3b\xe3\x10\xbc\xc2\xcf\x40\xfd\x18\xf5\xf8\x7a\xc0\xed\xa9\xcc\x32\x79\x83\xa6\x3f\x3b\x00\x3f\xd3\x70\xbd\x57\xae\x41\x5b\x92\x41\x5f\x9e\xe6\x6e\x43\x85\x6b\xb6\xdd\x86\x9d\xf2\xbc\x73\x43\x0d\x9b\x16\x19\x58\x92\x3a\x63\xdd\xbb\x5e\xb5\xdb\x28\x6b\xa4\x82\xd3\x2b\xb1\xbb\x83\x48\x71\x66\x18\xa6\xd0\x76\xcd\x72\xb1\xcc\xfb\x30\xcc\x9c\x2a\x53\x0f\x49\x6a\x5a\xf4\xa9\x1f\xe7\x63\x63\x9c\x41\x52\xaa\x14\x84\x12\x6a\x9c\xc3\xc5\xfe\x18\x2d\x27\x92\x10\xc3\xa7\x22\xbb\x7f\x29\x9c\xee\x28\xe9\xf9\xb6\xe7\x1a\x2d\x7d\x9d\xfc\x12\x6d\x30\x32\x1a\x62\x64\x8a\x47\x5b\xc8\x4c\x00\xb7\x8f\x36\x90\xee\x9f\x32\x61\x01\xc0\xf4\x98\x9c\x84\x7f\xfb\x78\x54\x2e\xac\x4c\xa0\x5f\x5f\x0a\x72\x48\x3e\x32\x63\x75\xde\xd7\xe4\x98\x68\x2e\x66\x19\xdc\x50\x7b\x01\xde\x7e\x3c\xc7\x92\xd4\x52\x1b\x41\x17\x6c\x0c\xc3\xcf\x8d\x54\x74\xc6\x5e\x93\x63\x4d\x16\x96\x5b\xfc\x22\xb3\x62\xc1\xde\x64\x94\x2f\x34\xa1\xc1\x67\xcd\xd2\xf1\xa5\xb8\xa8\x1d\xd0\xac\xa0\x8a\x0a\xc3\xca\xe8\x78\x94\xae\x05\xae\xc1\x2f\x7b\x89\x26\x67\x9a\xdd\xd0\xa5\xfd\x4a\xee\x23\x37\x20\x6e\x56\xe3\x0a\xc2\xe0\x21\x30\xe5\x41\x07\xa6\x0c\x01\x17\x4f\x25\xe0\x22\x0a\x91\x6f\xf6\x42\xde\x26\x18\x3c\x66\x2b\x1b\x47\x83\x7b\xce\x5b\x92\xbd\x40\x19\xb9\x13\x73\xc0\x76\xd9\xbc\xec\xdb\x45\x63\x57\xf8\xe1\x86\xe1\xd8\xab\x5e\x9f\xd3\x78\xcd\xd1\xd4\xdb\x45\x62\x3f\xb4\xb0\xe7\x98\xe3\xed\x34\x96\x24\x9a\xb8\x4f\xe0\x73\xd3\xf0\xf6\xc8\x67\xed\x46\x3f\xd2\xc8\xe7\xa1\xd5\xf8\x10\xf5\xdc\x37\xea\x39\x46\xf5\x47\x16\xf5\x1c\xdd\xe9\x8e\xb0\xe7\xda\xc8\xa6\xb8\xe7\x68\xc8\x10\xf8\xfc\xb0\xe5\xcb\xc6\xc0\xe7\xdb\x7a\xeb\x63\x46\x15\x4d\x31\x44\x1b\x7f\xb5\xc2\x6f\x88\x36\xde\x98\xde\x3d\xa0\x70\xde\x3a\x8d\xdc\x97\x0c\xd6\x11\xd0\x7b\x4c\x6a\x63\xd7\xc4\xf4\xc6\x32\x70\x0f\x13\x93\x4c\x3f\x40\xd2\xec\x82\x09\x73\x2a\x33\x9e\x74\x75\x28\x6b\x78\xc3\xbb\x8a\xb0\x1a\x44\x30\x4f\xfa\xf0\x37\x67\x0b\x04\xf4\xa1\x19\x1a\x26\x49\x91\x8f\xd0\xe2\x89\x95\x23\x42\xc9\x08\x29\xd0\x85\x39\x22\x10\x26\xcc\x44\xb0\x53\x7a\x2b\x6e\xc8\x10\x26\x39\x7e\x9d\x6b\xf2\xf9\x67\x05\xe1\xbb\x10\x6c\xf5\x19\x66\x56\x6c\x75\x25\x5c\x10\x2e\xec\x1f\xda\x4e\x88\x51\x91\xcf\x73\x99\x1e\xbe\x1c\x39\x77\xa0\x4c\x0f\x5f\x8d\x08\x33\xc9\x0b\xef\x79\x5c\x29\x74\x79\x43\xb9\xa5\xf9\x86\x67\x84\xd1\x64\x0e\x9e\x54\x1f\x1d\xec\x4b\x69\xba\x62\x98\x5c\xcc\xc6\xe4\x9f\xf5\x4d\x8c\xca\xc2\x69\x68\xc5\x5d\xc8\xeb\xb2\xa2\xa5\xcc\x73\xa9\xb9\x61\xb8\x3c\xdc\x30\xcd\x80\x01\x41\x27\x9d\x68\xd3\xa7\x54\xd1\x2c\x63\xd9\x67\x67\xde\x8b\xbb\x19\x7b\x5d\x2e\x77\x63\xb0\xea\xa7\x0f\xe9\xf4\xfa\x1f\x9e\x85\x8f\xb1\xb6\x3b\x83\x68\x6a\xbb\x75\x29\xdc\x53\xb0\x20\xc3\xd4\x29\xb4\x24\x02\x2b\xaf\x77\x9d\x4b\x91\xf4\xae\x2b\xb1\x79\x10\x8b\xaa\x05\xb1\xac\x3a\xe3\xc2\x08\x27\x13\xa2\x79\xcc\xc7\x6c\x02\xf4\x34\x73\x60\xf6\x73\x09\x57\x08\x48\x68\x16\x8c\xdb\x98\x7a\xce\x85\x36\x54\x18\x5e\x46\xbc\x05\x23\x9a\x9f\x12\xfb\x12\x5a\x69\xfc\x9a\xa7\x05\xcd\xa2\x60\xce\x4c\xbb\x2a\x3a\xb4\xc1\xb2\xb8\x1c\x93\x93\x69\x1c\x5e\x3d\xf2\x68\xfc\x70\xaa\x6d\x36\xbd\x12\xe2\x87\x56\x5c\x42\x7e\x74\xad\xfc\xdf\x82\x72\x0c\xcf\x0f\x18\x1d\x51\xa4\x67\x3a\xbc\xe6\xbb\xcf\x23\x86\xd7\x7f\xf5\x10\xc4\xb0\x43\xa8\x5e\xe4\xbf\x66\xb9\x6c\xe0\xe0\xe8\xca\xa0\xde\x30\x90\x2d\x09\xcd\xf3\x8c\xb3\x74\x85\x62\x3a\x6a\x5d\xa5\x20\x65\xf8\xc5\x13\xab\xeb\xa9\x77\x15\x63\xfe\x08\xc2\xc1\xb5\x9d\x29\x61\x1f\xe9\xaa\x99\x60\x05\x2a\x61\x64\xc8\xa3\xb0\xff\xf6\x17\x1d\x1f\x23\x60\x66\x76\x85\x42\xb7\x19\x96\xfc\x58\x00\x0e\x54\x3d\xf2\xb4\xbf\x86\xf2\x48\x4d\x81\x41\xe8\xdc\x22\xb5\xd5\xea\xcb\x7a\x82\x35\x3b\x7e\x58\x89\x19\xa3\x69\x6b\xc6\x0c\x79\xfb\xf1\xfc\xc8\x3b\x15\xdc\xb1\xa1\x23\x0f\xcf\x83\x1a\xcb\x1d\x5e\x03\xf3\xf2\x02\xc1\x21\x52\xdf\x71\xb4\xe3\xb1\x43\xfa\xb1\xbe\x4e\xc6\x49\x56\x68\xc3\xd4\x38\x93\x09\xcd\x1c\xbb\xbc\x3c\x68\x98\xe1\xf2\xc0\xae\x1d\x0b\x6b\x84\xf2\x04\xb1\x8b\xa2\xb5\xba\x5d\x2f\x4d\xfb\x2e\x23\xf9\xcd\x9d\x45\xf2\xbf\xf3\x72\x81\x36\x74\x91\xb3\x14\x4c\x8f\x0d\xb0\x83\xe9\xa7\x45\x36\xb5\xff\x05\x44\xab\xb2\x19\xc7\x4d\x0a\xc1\x7f\x2d\x4a\xff\x4d\xa9\x9c\x28\xa6\x43\xcc\x5a\x45\xee\x6b\x04\xf6\x8e\x3a\xfb\x47\x1f\xda\xa0\xb7\x7f\x51\xeb\x39\x59\x71\x54\xb6\x4e\x59\x3d\x05\x0b\x1b\xb9\x44\xe7\xab\xf3\x2a\x97\xe6\xdf\x1a\x64\xad\xd0\x45\x4b\xb6\x02\x38\x9c\x42\x99\xde\x20\x1c\x34\x43\xe9\xba\x74\xcf\xf9\x91\x5d\x62\x4a\xd3\x2b\xd5\x46\x2f\x09\x7a\xfb\xb0\x2a\x79\x08\x07\x73\xbe\x78\x28\x9f\x36\x65\x8a\x59\x59\x8a\xd4\x5d\x80\x91\xf8\xd9\x40\x44\x16\x14\x43\xe9\x6a\x84\x84\x33\x2c\x63\x8a\x9f\xe5\x16\x14\x37\xd4\x41\xd3\x33\x68\x04\x7d\x4c\x79\x28\x36\x53\x7e\x77\x6d\xf9\x04\xbc\x1b\x2c\xeb\x98\x0d\x6a\x69\x1d\xe2\xa4\xf7\xe4\x4b\xc1\xca\xf0\xf4\xe7\x93\x25\xd0\xd3\x17\x04\x21\xf2\x01\x0a\xba\x72\x01\xa3\xca\xac\x3d\x77\x5c\x26\x08\x69\xc7\x4d\x1f\x33\xf4\x8a\x69\x92\x2b\x96\xb0\x94\x41\x6c\x8f\x65\x5c\x54\x2c\xdd\xe4\xba\x3e\xcf\x08\x9d\xba\x41\x62\x03\x17\xec\x6e\x72\x12\x02\xb5\xb1\x32\x04\x88\x75\x91\x13\x77\x73\x7b\x47\x4f\x3d\x78\x6d\x39\xe4\x16\xfe\xb7\x43\xa3\x60\x67\x8a\xce\xca\xd8\x75\x39\x3a\x6c\x1b\xed\x74\xa3\xf2\xc1\xd5\xc1\xc1\x63\xd4\x55\x54\xb8\xc6\xda\x5b\x2f\xdf\x1d\x94\x15\x7e\x13\xbe\x76\xe6\xe8\xd6\x63\x4a\x0d\x8a\x4c\xe1\x7b\x4e\x0d\x6a\x74\x5e\xf5\xbc\x85\xf7\x96\x1b\xe4\x00\xd2\x33\xcf\xa4\x36\x7a\x35\xeb\x17\x18\x9f\x17\x4b\xd6\x8a\x65\xa5\xb8\x10\x3f\x77\xea\x50\x60\xc4\x30\x49\xf8\xea\xbe\xb0\xaf\x3a\x7f\x5f\x18\xe0\xe8\x91\x95\xbe\x20\x0c\x14\x0b\xc6\x55\x45\x08\xbf\x9f\x55\x69\x28\xc4\x6b\xb9\x5c\xa3\xaa\xd0\xa0\xd9\xaf\x05\xb0\x97\x7f\xbd\x1c\xd5\x80\x5e\x2f\x11\xdc\x47\xa0\xdd\x38\x41\x6a\xf5\x85\x86\x8c\x9d\xc6\x42\xd3\x21\xdb\xa8\x42\xc1\x4e\xec\xd1\x2b\x14\x13\xd2\xe0\xc8\xa8\xaa\xe0\xe5\x6c\x23\x67\x39\xe2\xa1\xfd\x22\x91\x82\x2c\x0a\xe7\x3e\x71\x78\x75\x7c\x7a\xe2\xec\xe4\xf7\x9a\x7b\x55\x19\x7b\xab\x1b\x51\x66\xd8\x51\x28\xb1\xb6\x24\x6f\x5a\x7c\x77\x77\x96\xaf\x55\x37\x75\x6d\xb3\xaf\x3d\x55\x4f\xee\x79\x5d\xab\x83\xf7\x7d\x5b\x3d\xbc\x0e\x6b\x15\x9e\x47\xfe\xc1\x8b\xcd\x2f\xef\x66\xc5\xa2\x6b\xa3\xef\x88\x44\x57\xa1\xbc\xa7\xb8\xcc\x3d\x67\xcc\xb5\x6b\x90\xbd\x84\xcd\x4f\xeb\x54\x49\x5d\xd1\x1c\xd7\x80\x1c\x94\x4a\xd7\xb9\x25\x67\xca\x82\xce\x77\xa9\x07\x2a\xca\x45\x92\x15\x29\xd3\xa0\x72\xd0\x14\xa9\x03\xcd\xca\x48\x5f\x4d\x04\x4b\x98\xd6\x54\x2d\xe3\x39\xa2\x90\x67\x2f\xde\x95\x07\xe8\x57\x77\x3f\xb5\xb0\x9b\x42\xa1\xd7\xe9\xec\x95\x97\x3b\x23\x9f\x35\xca\xbb\x10\x19\x51\x2f\x3d\xdd\x1a\x03\xdd\x6c\x15\xea\x19\x7f\x51\x3d\x79\xe3\x42\x32\xd6\x1a\x14\xee\xb1\x3a\x76\x61\xe6\x56\xd5\x46\x5f\x1d\x04\x22\xc9\x2b\x26\xec\x4d\x66\x37\x6b\x10\x3f\x1a\x45\xa8\xb1\xfa\x1f\x7a\x0c\xa2\xf9\x2c\x1b\x33\x76\x18\xfc\x4e\x20\xec\xc5\x9e\x95\xc2\x66\x68\xaf\x49\x3c\x47\x70\x5a\xbb\xa8\xb8\x84\x26\xf3\x92\x3e\xdd\xb0\xc9\x5c\xca\x2b\x37\x5d\xf4\x0d\xa9\x48\x9e\x15\x33\xf0\xa0\xc1\x48\x2b\x07\x1f\xd2\x9c\xeb\x9a\x60\x30\xc4\x7c\x3c\xc0\x98\x8f\x21\xac\xe2\xa9\x84\x55\xec\x27\xa6\x78\x1d\x6d\xea\x17\x5d\x3c\x97\x19\x88\x69\x28\x82\x80\x45\x24\x84\x27\xba\x03\x25\x13\x66\x91\x88\x59\xc4\xb2\x27\xb9\xdb\xe8\xe2\xb5\x5b\xd8\x24\xce\x78\x0a\x09\x83\x96\xcc\xf9\x62\xcc\x80\xcb\xe8\xc6\x09\x1c\xe7\x66\xce\x20\x59\x38\xde\x9f\x4f\x77\x8b\x28\xf3\x56\x6d\xd0\x2c\xc0\xbb\x64\xac\x5d\x86\xbf\x54\x41\x87\x37\xa7\x39\x1e\x26\x66\x59\xbb\x89\x85\xe9\xc4\xbc\x5e\x9c\xd1\xc7\xc4\x50\x12\x8d\x29\x53\xe4\x6b\xbc\x0c\xab\x90\xc0\x99\xf5\xe1\x5b\x45\xca\xad\xce\xd1\xa5\x0f\x1c\xfb\x71\x55\xd3\x7f\x69\x64\x9f\x72\x4b\x11\x83\x5c\x1a\x68\xa8\xc3\xaf\xd2\xa3\x1d\xec\xd8\xb8\xf2\xf0\xb6\x26\x54\x8f\x89\xff\xce\x21\xbd\xa1\xaa\x61\x77\x52\xb9\x46\x8c\xd7\x4c\xf1\xe9\x32\xce\xdf\xb3\x23\x6f\x20\x04\xc2\x30\x91\xfa\x04\xfe\xd8\x96\xef\x16\x4c\xcb\xbd\x44\x36\x79\x08\x61\x10\x32\x7a\x6a\x17\x90\x2b\x79\xcd\x53\x96\x8e\x2a\x6f\xfa\x88\x11\x14\xb6\x1c\x6f\x0d\x0f\xdd\x67\xfe\x11\x30\x97\x34\x48\x12\x64\x8d\xad\xb0\x8d\xfa\x6e\x11\x72\x08\x60\xe9\x6c\x0c\x04\x07\xe1\xfc\x86\x39\xfd\xb5\x60\x64\xc2\xa8\x82\xaa\x6a\x57\x6c\xfb\x88\xdf\x5d\x08\x8f\x9d\x86\xfa\x95\xb1\x7e\x27\x8a\x69\x7b\x3a\xf7\x75\x4f\xc0\x09\xe6\x51\x22\xbe\x23\xc9\x5c\x6a\x16\xe8\x6f\x55\x0a\x0d\x1d\xa7\x12\xb9\xc8\xa9\x01\x4f\x18\x5c\x98\x89\x74\xb7\xa6\x22\x31\x8b\xd4\x9d\x10\x39\x8e\x6e\x12\xc6\x45\x88\x65\xe5\x17\xe1\x94\x35\xab\xcb\x94\x91\xcd\xb5\x19\x81\xd2\x44\x17\xc0\x05\x89\xc1\x37\x9e\xe9\xf2\x09\x7a\xb5\x40\xae\x59\x9d\x04\x2c\x6a\x18\x7e\xc1\x4c\x19\xc9\x37\x2e\xe7\x45\x1f\x83\x13\x5a\xaf\x69\xc6\x53\xea\xbb\x1a\xd3\x78\xe7\x0d\xe0\x43\x37\xa1\x29\x54\x14\x82\xe3\x6a\x7c\xd4\xe7\x37\xd2\x35\xdf\x29\x89\x44\xbc\x4a\x47\x98\x78\xb9\x2d\x02\x34\x07\xe8\x00\xad\x69\x15\xf6\x83\x16\x1e\x68\xf0\xa9\x7f\xd1\x7d\x10\x03\x0d\xc2\xb3\x88\x4f\xda\xaf\x5c\x1e\x18\x55\xb0\xcb\x83\x51\x4c\xfc\x34\x6e\x9f\xd0\x19\xe5\x42\x9b\x2e\x3a\x62\x21\x7b\x4f\x84\xa4\xb2\x9f\xce\x4b\x50\xd9\xfb\x6a\x3f\xf1\x92\x58\x53\xad\x65\xc2\x69\x60\x0c\x15\x05\xaf\x99\xee\xac\xed\x30\xce\x94\x5a\x0d\x4a\xaa\x2d\xef\x9d\x1d\xd3\xbe\xac\xc4\xa2\xa5\x78\x06\x62\x79\x32\x67\xc9\x15\x4b\xb7\xb0\xb6\x69\xb6\x71\x6c\x54\x03\x21\xfc\xa4\x99\x3a\x11\x53\xb9\x56\xba\xb3\x83\x3c\xd1\xf3\x2f\xac\x00\x16\x22\x3f\x1c\x33\xf3\x64\x7d\x1f\xa4\x3b\xac\xb8\x9d\x62\x87\x35\xa2\x58\x8d\x74\xa9\x49\xb4\xb6\x40\x04\xff\x22\x1a\x66\xf8\x22\xcf\x98\x6b\x45\x87\x0f\xc7\x30\x0d\x10\xb5\x29\x4d\xfa\x64\x9d\xb3\x2f\x46\xad\x68\x2c\xa5\x01\xec\xb4\xf9\x35\xd2\x7e\xc7\xd6\xde\xb2\xda\x3d\x6b\xbf\x69\xf5\x0b\x59\xbf\x50\x55\x2b\x5d\x0c\xad\x70\xa6\x4d\xfc\xa4\xe5\x06\xc5\x87\x5a\x47\x5c\x10\x9c\x7b\x15\x8a\x83\x78\x2d\x39\x25\xf8\x06\x0a\x52\x85\x43\x45\x0a\x39\xf7\x44\x4e\xef\x9c\x4e\x15\xbc\x93\x3a\xf9\x90\x23\xb4\x01\xc0\xed\x8f\xa4\xd0\x72\x1f\x34\x51\x52\x6b\x57\xec\xe9\x64\x5a\xdd\x21\x86\x0b\x63\x29\x17\x97\x1b\x87\xcf\xbc\x5e\xe5\xa3\x34\x00\x1c\xa9\x17\x21\x5d\x32\x3b\xb8\x67\x52\x3e\x85\xc0\x18\x43\x3e\x9d\xbc\xad\x77\xcf\xee\x4b\x64\x44\x77\x60\xa0\x3f\x2d\xdc\x2a\x6e\x3e\x5b\xb6\xec\x79\x21\xc5\x0c\x62\x52\x69\x02\x11\xd9\xf6\xd7\xde\x6b\xdb\x19\x19\x99\x30\x43\x07\x1b\x62\x2b\x06\x0f\x36\xc4\xc1\x86\x38\xd8\x10\xef\xd3\x86\xb8\x42\xa0\x1e\xa9\x21\x71\x75\x1f\x83\x35\x11\xfe\x77\x47\xd6\x44\x80\xff\x6d\x4c\x8a\xcd\x88\x38\xd8\x15\x07\xbb\xe2\x60\x57\xec\x4b\xec\x06\xe3\xe2\x60\x5c\x1c\x8c\x8b\x83\x71\xf1\xeb\x32\x2e\x22\x35\x7c\x74\x16\xc6\xda\xb2\x07\x33\x23\x19\xcc\x8c\x83\x99\x71\x30\x33\xf6\xa4\x25\x52\xf1\xdf\x82\xb3\xe2\xbd\x4c\x68\x76\x5e\xc0\x5b\xc7\x49\xc2\xb4\xee\xb4\x36\xb6\xbd\x82\xd4\xbc\x54\x76\xa5\x82\x00\x71\x8a\xfb\x95\x0a\xf1\x17\xf4\x5e\x1f\x4c\x4b\x05\xec\x1e\x82\xa0\xcb\xe2\xa7\x16\xdf\x73\xa8\xf3\xff\x13\xbd\x86\x3a\xdc\xe5\x6f\x44\x27\x32\x87\x6e\x78\x4e\x0b\x5a\x40\x1e\x21\x37\x64\x51\x24\x73\xc2\xa8\xe6\xd8\x0a\x6d\xa6\xa8\x30\xab\xef\xb9\xf2\x1a\x88\x8b\x3e\x04\x38\x67\x6a\xc1\x35\xe6\x8d\xc1\x26\xb8\x98\x0d\xd6\xca\xc1\x5a\x39\x58\x2b\xeb\x60\x7f\x4c\xd6\xca\x0a\x9d\x6b\xa0\x57\x7b\xb3\x57\x8e\x09\x6a\x64\x25\xf1\x81\xcc\xea\x09\x23\xec\xd7\x82\x66\xfe\x5e\x96\x8f\x97\xb2\x70\xe9\xeb\xd1\xa4\x4e\x67\x19\x13\xcb\x11\x7d\x96\x8d\x41\x8e\x08\xd6\x91\xaa\xb9\x70\x37\x96\xd1\x4e\x98\xdd\x8d\x6d\xd4\xde\x5a\x97\x3d\x8f\x5c\xe4\x71\xd8\x45\x4b\xe8\xad\x33\x8b\xb6\xb2\xdc\x9d\x45\x5c\x56\x4e\xf1\xa3\x14\x67\x8e\xb8\x1d\x1b\x24\x18\x6c\x9d\xc1\xa7\x71\x7c\xc9\x2b\xbd\xe8\x1b\xbe\x41\x68\x39\xaa\xcc\x1f\x9e\xc2\xb9\x89\xc3\x40\x57\x23\x1a\x88\x49\x87\x6e\x0e\x30\x9e\x38\xb5\xa2\x4f\xc9\x7c\x33\xef\xac\x96\x6f\xe6\x41\x53\x3b\x7b\x4f\xec\x2b\x65\xeb\x3c\x58\xc4\xe6\x74\xef\x9a\xa9\x49\xc7\x77\x7f\x61\x6a\x12\xea\xb6\xf9\x2e\xdb\x3f\x5d\x5c\x9c\x12\x78\xf9\x8e\xe5\xba\xe8\x14\xcf\x8a\x4a\x9f\x91\x35\xe7\x6d\x47\x36\x10\xbc\x5a\x05\x15\x4a\x54\x11\xd7\xb8\x89\x4e\xb9\xfb\x00\x45\xf9\xb5\x4f\x67\xef\xbb\xd4\x9f\x8f\xd5\xd1\x8e\x9b\xbb\x3a\xff\x54\x41\xbd\xb9\x42\x65\xa1\x7a\x3e\x48\x9a\x4e\x30\xc2\xfc\x4f\xb8\x5f\xc0\x77\xc9\xb7\x95\xb2\x1c\x58\x81\x45\x8a\x6c\x49\x28\x1e\xda\xb4\xc8\xb2\x11\x99\x42\x4b\x05\x6d\x58\xee\xed\x5f\x16\x81\xc6\x84\x5c\x1e\x7c\x7b\x79\x40\x16\x8c\x0a\x20\x4e\x77\xae\x6f\x59\x2c\xea\x82\x97\xc7\xc1\xd2\x8d\x50\x92\xb5\xea\x75\x3c\x3e\x3d\x01\xbc\xd4\x23\x92\xf1\x2b\xf6\x9a\xcc\x98\x19\x91\x5c\x6a\xfb\xff\x85\x19\x39\xb5\x6b\x44\x20\x09\x7e\x44\xe6\x8c\xa6\x23\x22\x73\x14\x23\xee\x09\x1a\x3d\x49\x3f\x42\xaa\x8b\xf6\xf7\xbe\x4a\x1b\x51\xcf\x1d\x91\xce\x1d\x93\x4d\xcf\xa5\xd6\xe1\xce\xdf\x40\x3b\x73\x04\xcc\xa2\x07\xfe\xe0\x28\xa7\xdf\x57\xe7\xd1\xf7\xa1\xa6\x3d\x54\xe9\xb6\x1a\x5e\x01\x30\x28\x73\x85\xe6\x1a\xe8\x92\x22\x97\x07\x33\x66\x2e\x0f\xac\xd4\xe0\xed\x06\xfe\x01\xfe\x7d\x79\x30\x26\x97\x07\x97\x07\xe4\x39\x88\x54\x2f\x6e\xbd\x0f\x90\xe0\x7a\x6c\x06\x25\xbd\x68\x47\xf8\x83\x77\x9c\xa1\x16\x5c\xdb\xd4\x98\x90\x37\xbe\xf0\x1d\x18\x35\x14\xcc\x20\x7c\xb7\x77\xff\x12\x76\x7b\x17\x32\x9a\x17\xac\x25\x59\x56\xfe\xa2\xab\xdb\x8e\xc5\x48\x00\x51\x9b\x54\xb2\xfa\x1e\xda\xe8\xed\x3b\xae\xca\xd8\x61\x4d\x27\xd7\x4d\x10\xbe\x3c\xa0\x59\x76\x79\x80\x82\x41\x9b\x36\xef\xf4\x29\x4a\x9a\xcc\x0b\x52\x91\x73\x96\x4d\x3b\x25\xa7\x7e\x05\x2a\x1d\xc3\xea\xaa\x92\xe2\xb0\xcd\xea\x84\xa5\x9b\x13\xea\xc1\xe1\x49\x79\xad\xd1\x2a\x55\x3b\xb9\x1b\xba\x98\xf4\x5c\xdc\x79\x39\x72\x83\xf5\x85\xe5\x09\x29\xb6\x29\xed\xb9\x81\x24\x44\x63\xee\xb3\xc2\x79\x2a\x8c\xc7\xb2\xab\x11\xb9\x41\x5e\x83\x39\xf5\x23\xa7\x1f\x47\xac\x48\xc9\x2f\xcb\x9d\x00\xf9\xba\x97\xd9\xc6\xdb\x6c\x22\x9a\xf8\x4b\xb5\xb0\xc1\xed\xa9\xe2\xce\x04\xbe\x9e\xd2\x5e\x45\xd4\x73\x1b\xf3\xb2\x02\x12\x21\x27\xc1\xe2\x2d\x8b\x35\xb1\x28\x09\x1e\x7c\xbb\xee\xca\x62\x55\x25\x9c\x43\xa5\x0c\x6b\x01\x6b\xf1\xcc\x10\xcd\x67\x02\xaa\x17\x0b\x33\x02\xbb\x89\xab\x11\x46\xd2\x02\x9b\x03\x33\x8d\x66\xa8\x5c\x6a\xcd\x27\x19\xc4\x1a\x72\x91\xc8\x45\x6e\x0f\xbc\x9f\x05\xee\x6f\x7d\xcc\xe8\xc7\xa7\x27\x38\xae\x89\xa5\xf8\x87\xae\xff\x9d\x8c\xaa\xa7\x45\x9b\xb4\x5a\xf8\xa2\xc8\x0c\xcf\x33\x44\x05\x67\x8d\xb7\x22\x65\x54\xf4\x15\xaa\x09\x24\xb1\xf7\x9b\x95\xee\xc7\xf8\x8a\x8a\x62\x01\xf5\x2f\x62\xe2\xc7\x05\xbc\x1f\x66\x0f\x95\xf1\xdc\x11\x3c\x00\x29\xd4\x2f\x16\x58\x5a\x4f\xea\x09\x63\xd1\x69\xee\x24\x48\xa8\x49\xc9\x4d\x89\x7a\x51\xe9\x4b\x80\xbb\xc5\x4e\xac\xf4\xea\x84\xf7\xe3\xe0\x1b\x66\xc6\x6d\x1f\x46\xb3\x6b\xa6\x96\x66\x8e\x48\xf7\x00\xe1\xd4\x17\x46\xb5\xe8\x9f\x12\x27\xd0\x20\xbc\x02\x8f\xda\xfe\x82\xaf\xde\x63\x22\x09\x57\x63\x7c\x29\xec\xe8\xa3\xa9\x94\x97\x07\xf5\x12\x6e\x11\xb7\x21\xcf\xa6\x52\x3e\x43\x71\x09\x0a\xf2\x46\x58\xd9\x36\xf5\xa3\xd3\x81\x3a\xf4\x9f\x1d\xb2\xa1\x27\xa5\x02\xb5\xc9\x5d\x6b\xea\xb9\x34\xbf\xd1\xe0\x23\x32\x51\x25\x41\xd0\xdf\x1b\x1d\x44\x63\x42\x3e\x4a\x03\x26\x45\x2c\x36\x4f\xe8\x8a\x91\xd5\xc9\x99\xf6\x59\x45\xf2\xb5\x32\x3f\x88\x8e\xce\x7e\x60\x11\x99\x66\x24\xa1\x9a\x8d\xc8\x84\x25\xb4\xd0\xce\xfd\xe6\x6d\x07\xae\xd3\x9e\xa5\xbc\x56\x23\x33\x12\xd7\x1d\xdb\x2a\x97\xcd\xeb\x1c\xbc\x46\x83\xd7\x68\xf0\x1a\x3d\x19\xaf\x51\x33\x15\xdb\xa7\xe7\x08\x83\x03\x44\xea\xe5\xcb\xe0\x3a\xb2\xd2\xcf\xe0\xef\x79\x84\xfe\x9e\x5e\x46\x8b\x9d\xb9\x7b\xd6\xa1\xec\xc6\xec\x7a\x6d\x7c\xbc\xb3\xad\xfb\x20\x5f\x42\xde\x7d\xa1\x89\xc9\x96\x5e\xcd\x09\xa6\xd0\x78\x89\x91\x5d\xd4\xa2\x45\xec\x6c\x6a\x19\xe6\x2f\x80\x8e\x7a\x24\xf6\x71\x2f\x34\x9a\x6b\xb7\xbc\x19\xcd\x3e\xb4\x75\xb7\xa2\xd9\x8b\x56\x3a\x51\x62\xb2\x80\x16\xca\x8a\x79\xbe\x0a\xdb\xf5\x2a\xc6\x2e\x37\xba\xe1\x2e\xbb\xce\x6e\xdd\x7e\xbb\xf7\xba\x33\xdb\x48\x84\xdd\x67\x45\xc6\x36\x92\x5e\xa3\x17\x4a\xa5\xdd\x29\x4f\x6c\xc5\x6c\xd2\x2a\xc8\xde\x70\xab\xa4\xc6\x91\x4c\xbe\x31\x8a\x0b\xb6\xae\x1b\x61\x5c\xea\x65\x69\x0e\x21\x29\xcb\x19\x36\xbc\x97\x22\x22\xaf\x10\x38\x1e\x3b\x15\x16\x32\x75\x82\x1a\x15\x4b\x02\x11\xbb\x9a\xb0\x2f\x39\x53\x10\xf7\x9c\xc6\xcd\xdb\x1d\xe7\x01\x01\xbb\x65\xd3\x65\x13\x71\x28\x0f\x38\x59\x92\x4f\x27\x20\x25\xea\xb9\xbc\x39\x9a\xf3\xd4\x5b\xaf\xb1\xa7\x93\x91\xe4\xd7\x82\x27\x57\xd9\x92\x64\xcc\x40\x4c\xb7\x48\x11\x1e\xae\xc1\x64\xe0\x82\x5c\xc5\x91\x57\x50\x95\xd1\x7d\xec\xe3\xcf\x17\xe4\xaf\xe5\x07\xd9\x17\x27\x84\xea\xa5\xb6\x6a\x95\xfd\x48\xaa\xf8\x75\xdd\x9d\x92\xb2\xc4\x55\xff\xa6\x5e\x71\xa6\x5c\x33\x6d\xc5\xdd\x29\x4c\x96\xb2\xbc\x30\xcb\x11\x66\xb4\x92\x8c\x4f\x99\xe1\x0b\x76\xa4\xd8\xb5\x4c\x5c\xc5\x5c\x0b\x38\x28\xb1\x9b\x18\x61\xf1\x12\x5a\x9a\x28\xbb\xbe\x06\x02\x89\xc3\xc1\x76\x5e\x51\x73\xa8\xf2\xdd\x45\x61\x22\xac\xce\x2f\xad\x1c\x6f\xf9\x61\xcb\xa2\xbd\x8b\xa7\x21\x0a\x7d\xd0\x26\x06\x6d\x62\xd0\x26\x70\xcc\x53\xd0\x26\x22\x02\xbb\x3f\x65\xe2\x4e\xb4\x85\x78\x27\xbb\x57\x16\x1a\xd8\x2c\x5d\x61\xae\x8f\x24\x6b\x76\x63\x6d\x21\x96\x55\xf6\xae\x2c\xd4\x31\x32\x12\x8e\x5a\x85\xed\x8d\xdd\xdf\x46\x06\xf4\x04\x9b\x36\xb4\xe9\x18\x93\x33\x77\x46\x77\xee\x34\xdb\xd0\xa6\xb9\xdb\x98\xf7\x81\xbb\x0f\xdc\x7d\xe0\xee\x75\xb0\x3f\x5e\xee\x7e\x87\x76\xc2\xc1\x0e\xf8\x18\x39\xfb\xdd\xd9\x00\x37\xb7\xff\x3d\x01\xdb\xdf\xe3\xcc\x38\x7d\x67\x57\xdd\xd4\xd3\x27\xa4\xdd\x8e\xff\xc6\x0c\x8c\x7a\xfe\x82\x2c\x98\x99\xcb\xb4\xe4\x09\xd5\x24\x54\x42\xce\xb9\xf0\x0d\x4e\xb9\xa5\x29\x79\x11\x15\xd1\x28\x23\x47\x7d\xcf\x32\x4a\x14\x9b\x66\xae\x5e\xc1\x9c\xa9\xb6\x80\xb0\x5b\xe7\xb1\x56\xa3\x6f\x9c\x6b\x63\x29\x8b\x67\x8a\x11\x2b\x3b\x58\xea\x36\x5d\x49\xa3\xdd\x7f\x40\xc1\x60\x2f\x7e\x42\xf6\xe2\x68\xaf\xdd\xc9\xc9\x9f\x4e\xde\xae\xe7\xb9\x16\x25\xd7\x94\x49\xd8\xb4\x3a\xc1\x9a\x7a\x02\xa0\x2b\x34\x5c\x06\x72\x32\x85\xd4\x30\x8c\xbc\x59\x92\x4b\x78\xeb\xf2\x00\x32\x17\xac\x84\x77\xe9\xee\x95\xab\x7a\x01\x91\x8a\xdc\xc9\xe1\xb9\xc2\xac\x69\x4d\x2e\x0f\xfe\x09\xf4\x60\x0a\x85\x0b\xc8\x0d\x53\xcc\x29\x29\x0b\xe6\x7b\x19\x51\xb1\x74\xb7\xf2\x01\xa8\x60\xdd\x9d\x29\x3b\x05\x94\x76\x8d\x0a\xc5\x8b\x2e\x75\xca\x09\x21\x1c\xd1\x0c\x74\x53\x72\xa1\x0a\x66\xa1\x18\xc5\x6b\xdf\x78\xd3\x78\x48\x2a\x99\xd2\x4c\x33\x02\x59\xea\x37\x5c\xb7\xd1\xd3\xb5\x35\x36\x52\x26\x78\xe7\x0a\xdf\xc2\x20\x88\xfb\x75\x11\x75\xeb\x17\x88\x93\x8e\xca\x95\xe1\x4a\x01\xc7\xa0\xf8\x0d\x2d\xb7\x8c\x7b\xb0\x2c\x3a\x0d\x5f\x81\xdf\x1c\x96\xd5\xb8\xc9\x9c\x42\x48\xba\xcc\xb9\x00\x09\x41\x94\xa2\x9d\x2c\xc7\x45\xab\x1a\x13\xb7\x7a\xab\xe9\x38\x4d\xc5\xb8\xb5\x47\x90\xb7\x3f\x6d\x55\xa3\x24\xf8\x34\xde\xf5\xa9\x56\x52\x1d\xed\xc2\x14\x9d\x98\x1a\xb2\x9f\xb4\x5c\x30\x74\xa5\x10\x99\x80\x93\xa7\xe2\x46\xa9\x5a\xf4\xc1\x26\x80\x4d\xa6\x34\xb1\xdc\x59\xb1\x6c\xe9\x83\x5c\x19\x36\x3f\x43\xcf\x08\x4c\x68\x01\x1d\x47\x1a\x49\xab\x38\x16\xd8\x6f\x5a\x2d\xb8\xa8\x4f\xaf\x9d\xa0\x2d\x88\xce\x39\x36\x5e\xe5\x66\x4c\x7e\x84\xa2\x2b\xda\x50\x91\xb0\x11\x39\xfb\xeb\xf1\x1b\x5f\x62\x0e\x3c\x2c\x90\x46\xaf\x64\xe6\x5a\x4f\x33\x21\x8b\xd9\x1c\x7e\x70\x31\xac\x86\x67\x99\x2f\x26\x86\x6b\x92\x85\x70\xdd\x8b\xab\x7e\x9b\xd5\xba\x4e\xbd\x29\x23\x4e\xd5\x19\x13\x09\xdf\xab\xe0\x36\xb6\xec\x2a\x75\x87\x25\x70\x04\xd4\x1a\xa0\xd0\x4d\xa9\x36\x20\xd2\x6e\x6d\x4b\x6a\x56\x2b\x3c\xdd\xe8\xd2\x2c\x36\xa5\x7b\xab\xe6\xd3\x4e\xb2\xb7\xf2\xca\x4a\xcc\xb2\xab\xcb\x45\x9d\x8d\xcd\xe1\x23\xf4\xb5\xc7\x38\x36\x87\x18\xeb\x9d\x8b\x38\x47\xb8\xe7\x3a\x56\xe5\x38\xfa\xd4\xf8\xac\x50\xa1\xb4\x50\xa7\xc3\x31\x76\x36\xfe\xd5\x85\xdd\x55\x51\x1b\xd7\x0b\x59\x7a\x20\xb7\x5f\x33\xe8\x33\x48\x43\x00\x2c\xa3\xca\xf5\xbb\x06\x7f\x29\x37\xcf\x34\xd1\x74\x0a\x17\x87\x6a\x5d\x2c\x58\x25\x7a\x7d\x4e\x7d\x53\xee\xe0\x67\x1c\x11\x76\x6d\x39\xe5\x14\x1f\xe0\x34\x7a\xb3\xb0\xf3\xdb\x51\x18\x0b\x7c\xdc\x8a\xdd\x49\x22\x17\x13\x2e\x70\xfb\x00\x47\x38\xde\x71\x15\xdf\x03\xad\xa8\x13\x1f\x80\x4b\xb9\x9c\x11\xd1\x45\x32\x87\xde\xc5\x22\x26\xd1\x98\xc1\x29\x19\x86\xe5\x17\x79\x2e\x95\x59\x7d\x17\xeb\x91\x51\x43\xe2\x24\x01\xd0\xd5\x8e\xa4\x22\xb5\x3c\xd1\x06\x0f\xf5\x16\xf4\xa0\x7c\xb9\x03\x88\x27\x25\xaa\x3a\xd6\x80\xed\xe8\x7c\xb4\x78\x54\xb6\x0c\x8c\x0e\x16\x41\xa1\xb8\x8a\xaa\xac\x10\x2f\x01\xd7\xd8\x7d\x35\x91\x8b\x05\x64\x80\x32\x01\x7d\xa4\x19\x20\x33\xb4\x96\x8f\xc1\x57\x81\x6a\xf0\x45\xc7\xcf\x9b\x40\xab\x63\x7c\xdf\x82\x8d\x89\x1a\xbc\xfb\xa7\xca\xe2\xf1\xdc\x26\xb9\x23\xd6\x2d\xee\x22\xc1\x83\xac\xd1\xf6\x6e\xa5\x7d\x41\x36\xcc\x6d\x14\x44\xb5\xc1\x11\xec\x0e\xfe\x8f\x17\xf6\xb7\x03\x7c\x4f\x66\x5c\x3d\x94\x75\x77\xa6\x99\xd4\xec\x8a\x89\x63\x21\xb6\xa1\x84\xd2\x50\x42\x69\x70\x70\x0d\x0e\xae\x27\xee\xe0\x42\x62\x37\xd4\x51\xda\x21\xe0\x06\xa7\xda\x7d\x14\x53\xda\xa6\xe0\xfc\xea\x79\x0e\x65\x95\xbe\xc2\xb2\x4a\x2b\x47\x3f\xd4\x56\x1a\x6a\x2b\x0d\xb5\x95\x6e\x79\x9f\x86\x02\x4b\x43\x81\xa5\xa1\xc0\xd2\x50\x60\x69\x28\xb0\xb4\xa1\x4c\x34\x14\x58\xea\x5e\xd4\x6e\x45\xbf\xa1\xca\xd2\x7a\x1b\xdd\x50\x65\x69\xa8\xb2\x74\x0f\x70\x1a\xaa\x2c\x3d\x28\x6d\x68\xa8\xb2\xb4\x3d\x87\x19\x4a\x2d\x0d\xa5\x96\x06\xef\xd2\xe0\x5d\xfa\x3a\xbd\x4b\x5f\x53\xbd\xa5\xc1\x2f\xf4\xa0\x8a\x2e\xed\xc6\x2d\x34\x94\x5f\xda\x7d\x96\xc9\x3a\x87\xdb\xd3\xcb\xa9\x69\xb5\x89\xdf\x5f\x62\xcd\x6e\x6d\x28\x43\x35\xa6\xa1\x1a\xd3\x50\x8d\x69\x50\x38\x06\x85\x63\x50\x38\x1e\x90\xc2\xf1\xf8\x4b\x32\x55\x14\x8a\xa1\x2e\xd3\x3d\xd7\x65\xda\xb9\x3e\xf1\x35\x56\x68\x6a\xd5\x91\x87\x32\x4d\x03\xdb\x27\x03\xdb\x1f\xd8\xfe\x83\x8f\x62\x1f\x6c\x88\x8f\x96\xe5\xdf\x87\xfd\x70\x28\xdd\xe4\x7f\x1c\x4a\x37\xdd\x49\xe9\xa6\xa1\x72\xd3\x60\x6a\x7e\x38\xa6\xe6\x68\xc3\x5f\x55\x0d\xa7\x47\x5c\xc2\xa9\x4b\x06\x19\xea\x38\xad\x59\xe1\x50\xc7\x69\xa8\xe3\x34\xd4\x71\x7a\xbc\x75\x9c\x3a\x6c\xae\x43\x31\xa7\xa1\x98\xd3\x50\xcc\x69\x28\xe6\x34\x14\x73\xc2\x9f\x6f\xaf\x90\x0d\x15\x9d\xee\xe3\x00\x9e\x7a\x59\x27\xa9\x13\x9a\x71\x31\x1b\x5f\xbf\x1a\xbf\x51\x52\x6b\xe7\xa6\x41\x9b\xf4\x19\x9b\x32\x65\xb9\xdf\x1a\x7e\xbe\xe6\xad\x92\xa5\x3b\x69\xad\x52\x00\x40\x42\x64\x8e\xd5\x11\x79\x6a\x85\xcc\xe9\xd2\x71\xfe\x29\x03\xe6\xe0\xa1\xb2\x63\x3f\x94\x77\x3a\x95\x79\xbf\xb0\xda\x2d\x8a\x38\xf4\xf5\xc0\xd4\x3e\xf4\xc3\x1d\xfa\x37\x2e\x0f\xf6\x97\x43\xdd\xb5\xad\xd7\x47\x47\xa5\xc9\xda\x6e\x2c\x95\x89\x3e\x2a\x34\x53\x87\xb3\x82\xa7\xec\xc8\x1d\x3b\x67\x4a\x7f\x03\x0e\xdb\xdd\x4a\xbc\x70\x3c\xf5\x7d\xed\xe8\xaa\xfc\x64\x29\x85\x45\xee\xec\x54\xa6\xc7\xee\x59\xc5\x6e\x52\x07\x99\x17\x34\x4b\x87\x26\x99\x87\x49\x48\x2e\x53\x42\xc3\x34\x83\xe7\x75\xf0\xbc\x0e\x9e\xd7\x3a\xd8\xf7\xeb\x79\xed\x70\x18\x62\xf9\x1d\x77\x36\x7e\x25\x7b\x87\x57\xd8\x72\x23\x40\xb6\xf5\x0b\xf7\x20\x64\x9d\x4e\xe1\x09\x9b\xd3\x6b\x2e\x0b\xe5\xd4\x6b\x4f\xb9\xf6\x0d\x11\xbb\xe7\x43\x2a\xd2\x43\x34\x22\xed\x3c\xae\xac\x0f\x6c\xba\x3d\xcc\x3e\xfe\xba\xd9\x46\x1f\x13\xfa\xfe\x56\xe9\xdd\x7a\x82\xfd\x3e\x9b\x1d\xc0\x6d\xec\xad\xdd\x09\xbc\x99\xff\xb7\x07\x94\xdf\x73\x6d\xd6\xb0\x53\xaf\x8b\xb4\xf2\x50\x77\x57\xf5\xc0\x4b\x1f\x34\x2f\x6d\xd2\xd6\x76\x70\xd6\xad\x73\xef\x8e\x0c\xdc\x4a\x17\x1f\x44\x88\xa7\x22\x42\x58\x3a\xd5\x5f\x80\x00\x54\x0e\xe2\xc3\xe6\x3a\x0d\xa2\x74\x97\x12\xf3\x00\x58\x05\x90\xef\x3b\x64\x17\x1d\xb1\x42\xae\xba\x44\xb2\x23\xed\x6b\x41\xbf\x9c\x31\xb0\x4d\x75\xd1\xae\x22\xcf\x99\x22\x19\x5f\x70\x53\x16\x37\x2c\xbc\xeb\x3a\x97\xa9\x33\xed\x3b\x5f\x86\x66\xc6\x87\xa2\x95\x0b\xfa\xc1\x3e\x75\x97\x4e\x2f\x68\x96\xa1\x2d\x5c\x90\x0f\x5c\xf8\x65\xd4\x48\x1f\x8a\x1d\x76\x01\x5c\x98\xef\xbf\x6b\xbe\x29\x96\x93\xcc\x62\x42\x56\xb9\x2a\xe5\xdc\x1d\x5b\x8c\x46\x06\x4b\xa1\xbc\x59\xb3\x6b\xe5\x47\x1b\x49\x6e\xe6\x3c\x99\xd7\xf6\x0b\xc0\x80\x7f\x92\x54\xde\x08\xf4\x9d\xb9\x9a\x62\xf0\xd2\x2b\x0b\xb8\x31\x21\xb5\x2f\x47\x06\xc8\x09\x23\x2f\x83\x27\x39\xcb\xe7\x94\x4c\x19\xb5\x24\x85\xcc\xa8\x61\xe4\xa7\xd3\xe3\x73\x3b\xff\x85\xfc\xbf\x99\x92\xe8\xe5\xa4\x93\x8c\xa5\xe8\xff\x31\x24\x63\xd4\x15\xd4\x41\x15\x81\x48\x45\xde\x79\x9b\xf9\x82\x19\xc5\x93\xaa\xf7\x68\x4c\xc8\x39\x22\x29\xac\x24\x31\x90\x16\xa6\x49\x26\xc5\x0c\x6c\xee\xf1\x9c\x6e\x02\x24\xe8\x3c\xaa\xd0\xb7\xf3\x53\x04\x28\x5e\x50\x35\x63\xe6\x0c\x48\xdc\xad\x04\xe2\x75\x06\xc2\x75\xe4\x4f\x05\x83\xa0\x91\x78\xb0\xa5\x75\xef\x87\x35\x6c\x1d\xea\x13\x65\x8c\x2a\x51\xc9\x6a\x0c\xcc\x2e\x91\x42\x17\x0b\x0c\xf2\xb3\x07\x07\xe3\xed\x15\xb2\xa3\x53\xa6\x2d\xfd\xac\xdf\xb6\xc9\x92\x14\xe0\x4c\xb6\x9c\x0d\x90\x20\xae\x52\xd3\xa2\x4f\x18\x80\xe0\x9b\xd3\x4f\x9f\x0c\xcf\x9c\x89\xf8\x94\xa9\xc4\x8a\x76\xb3\x2e\x63\x19\xbe\x4c\xe8\x35\x53\x74\xc6\xc8\x9b\xd3\x4f\xa4\x28\xa7\x21\xcf\x03\x9b\xc6\x90\x17\x4a\xf2\x30\x33\xde\x16\x5f\xe7\xe9\xcd\xe9\xa7\x17\x44\x42\x7c\x6a\x96\x61\x15\x51\x99\xea\x1f\x2c\x9e\x5b\xea\x50\x56\xd0\xc1\xed\xc3\x7d\x21\xd1\x11\xfa\x02\xf6\xbe\xec\x53\xa1\x57\xbc\xcc\x5b\x62\x5c\x4f\xee\x55\xc3\xc6\x51\x33\x41\xdd\xaf\x89\xae\xd3\x3f\xed\xb1\xcc\x45\x29\xac\xe7\x15\xdd\xac\xc2\x4d\xb7\x25\xee\xf8\xc5\xb4\x21\x4f\xc0\x06\x8b\x09\x23\xb2\x09\x2a\x8d\x08\x1b\xcf\xc6\xe4\x4f\x2f\xe3\x7a\x57\x54\x84\x4f\xd9\x8d\x72\xed\x2e\x8b\x90\x37\xe4\x4f\x2f\x7f\x87\xa1\x1a\xba\x3a\xd1\xce\x89\x96\xdb\x74\x4f\xf6\xe3\x41\xd4\xc0\x5f\xfc\x9d\x5f\x50\x41\x67\x91\x4f\xb5\x89\xd7\xef\x68\xed\x8e\xea\xf4\x5c\xfb\x2a\x8d\xba\xcf\xb5\x67\x54\x1b\x64\x8b\x7c\xd5\x03\x70\x0b\x11\x19\xa6\x5b\xc7\x1f\xec\x87\x89\xe1\x2e\xec\xa1\xe5\xe2\x7a\xc6\xb1\x2a\x41\xfd\x10\x32\xb4\x6b\x72\x84\x0b\x46\x52\x32\x23\x73\x79\x43\xe4\xd4\x38\x5f\x7b\x8d\x27\x40\x44\x09\x15\xb3\xd6\x3c\x45\x39\x81\x88\x91\xf4\x6f\x4c\x30\xb4\xe0\x77\xc9\x44\x52\x83\x2a\x6f\x11\x73\x16\x5e\x22\x7e\x9e\x0d\x4f\xf3\x8f\xbf\xdf\x31\x21\xae\xdf\xb0\x35\x08\xbc\x23\x6a\x0c\x78\xb5\x2e\x2a\x08\x38\x71\x54\x3e\x8e\x12\xcf\xb5\x7c\x94\x54\x35\x92\x76\xb0\xeb\x3c\x68\xbb\xce\x60\xe0\x78\x2a\x06\x8e\x5b\xfa\x48\xf6\xee\xed\x6e\xb2\xa6\xec\xd8\x49\x02\xc4\xa9\xd3\x25\x12\x93\x0e\xe7\x1e\x51\xde\x49\x0e\x34\xfe\x49\x39\x47\x10\x26\xfd\x5d\x21\xa5\x38\x7d\x7f\xf0\x20\x67\x8c\xa6\x87\x52\x64\xcb\x87\xea\x78\x41\x36\xb9\x0f\xbb\x59\x89\xc3\x1d\x4c\x18\x72\xe8\xca\x5c\x16\x10\xa9\xca\x24\x17\x50\x87\xf4\xaa\xda\xdc\xc9\x8c\xd5\xb6\x12\xb1\x0f\x09\xd7\xc1\x92\xe4\x04\x41\xc7\x70\xf7\xa3\xc0\xde\x42\xca\xe9\x8e\x80\x2e\x47\xd5\x0b\xe6\x36\x29\x9f\x7b\x84\x36\x4d\x4c\x41\xb3\x08\xd8\x41\x40\x2d\xa1\x1e\xdf\xd8\xdd\x02\x3d\xa6\x49\x2c\x63\x89\xe9\x0c\x42\xce\xe8\x84\x65\xe4\xd7\x82\xa9\x25\xaa\xbe\xa5\x01\xd5\x89\x5b\x0b\x6a\x9c\x3d\x31\x68\x52\x10\x14\x5b\xc6\xcc\x6a\xba\x60\xbe\x3b\x0b\xce\xe7\x3f\x0e\x79\x05\xbe\x1c\x31\x8a\x24\xb8\x33\x88\xcb\xbe\x96\xdc\x82\xc5\x28\x69\xc9\x0a\x08\x7e\x93\xa5\x93\x24\x5c\x70\xa3\x7b\xc9\xdb\x57\xfc\x54\xf6\x83\x6e\x22\xf7\x5d\xd8\xc1\x61\x4e\x15\x5d\x10\xbd\x14\x86\x7e\x89\x68\xa1\xf3\x14\x57\xd7\xa6\x7b\xc6\x54\xc1\x5b\xfa\x1b\xf8\xcf\x61\x78\x79\xb7\x81\x55\x6a\xa7\xba\xc1\x77\x18\x68\x39\x04\x1f\xf6\x38\xa0\x21\xf8\x70\x08\x3e\x74\xf7\xc5\x7b\x23\x3e\x80\x2f\xe1\xbc\xde\xd6\xa3\x21\x65\x7b\x65\x78\x94\x9a\x31\x97\x37\xc1\x36\x4f\xa4\x80\xfc\x4a\xf0\x51\x40\xb2\xa5\xd6\x32\xe1\xd0\x4c\xc0\xe5\xc8\x2c\xc9\x3f\xca\xa2\xe7\x4e\xe0\x7f\x6e\xd9\x33\xfb\x42\x17\x79\xc6\x48\xc6\xc4\x0c\xdb\xa4\xfd\x5a\xb0\x02\x48\x61\x92\xc9\x22\x25\x0b\xa6\x35\x9d\x59\x2a\x69\x19\x0d\x4f\x18\x54\xeb\xfb\x1f\xa7\xe7\xa8\xa9\x65\x92\xa6\x13\x9a\x59\xce\xa3\x88\x2a\x84\x80\x5c\x9e\xc2\x68\x9e\xc2\x99\xbb\xbe\x30\x2f\xc6\x95\xe4\xfd\x4b\x67\x63\xbf\x3c\x80\x76\x24\x51\xad\x40\xcd\x4c\x1f\x77\x1e\xec\xf5\x63\x37\xea\x95\x03\x9b\x3a\x3d\x78\xbf\x90\x20\x98\x83\xdb\x9a\x31\xd1\xa1\xc1\xd9\x03\x6a\xe1\x87\xb7\x71\x54\x5b\x96\x10\xe6\x5d\x27\xb2\x57\x97\x80\x46\x60\x74\xab\x05\x5a\x49\xbd\xb7\x21\x41\xbb\x9d\x66\x8a\x33\x5d\x96\x97\xc4\x6e\xbc\x38\xd1\x5a\x9f\xca\x31\x5a\x9b\x7f\xb1\xaa\xff\xad\x37\x3b\x0e\x54\xfb\x7f\x14\x54\x18\x6e\x96\x6b\xf7\xb9\xba\x02\x7f\xaa\xce\x65\x93\x33\x75\x98\x4b\x67\x6e\xb1\xa7\x3c\xcb\xe4\xa4\x74\x00\x3e\x07\x13\xfb\xaf\xee\x53\x2f\xc6\xe4\x43\x61\xc5\xa9\x6c\x49\xd8\x17\x8b\xa8\xfc\x9a\xe1\x85\x41\x97\x07\x7c\x61\x2d\x30\xee\x11\x0a\x4d\xdb\x0f\xdb\x8e\x90\x7b\xc3\x3d\xc7\xc0\xdd\x22\xdc\x21\xba\x98\x7b\xa4\x9d\x5d\xf2\x7a\xd3\xf0\x5a\x49\x38\x2f\xb7\x07\x90\xd1\x1a\xae\xf4\xa6\xa3\x3d\xc8\x95\xfb\xd8\x7d\x5e\x9d\x86\x25\x78\xe4\x59\x01\x85\x83\x80\xf3\x2b\xa5\xce\x67\xe5\x0d\xdf\x29\xc8\xf0\x2d\xd7\xc2\xcd\x75\x9f\x5b\x5c\xbf\xb7\xf6\x9b\xb1\x8e\xba\xdf\x8a\xd3\x04\xd6\x0c\x44\x19\x8c\xe2\x91\x8b\x97\x7b\xaa\xeb\x8a\xd4\x0e\x1c\xa8\xc6\x81\x36\xa7\x3c\x6d\xf8\xb8\x4b\x8a\xb4\x79\x3e\x49\x9b\x97\xcc\x63\x6a\x25\xdd\x04\x5d\x27\xad\x5e\xec\x91\x0b\xc3\xb1\xbf\x58\x05\x29\x01\x82\x8e\x9e\x47\x1d\x2b\xd3\xa8\x4b\xfb\xa2\x1b\x65\x8f\x38\x2b\xf3\x2d\x22\x93\xfd\x8a\xc9\x82\x4c\xa8\x3d\x40\x97\x95\x8d\xc0\xd5\x65\xc4\xc2\xe0\xcc\x19\x9c\x39\x83\x33\xa7\x81\x10\xdf\x93\x33\xc7\x7f\x79\xa5\xff\xf4\x53\x4b\x80\x59\x4f\x7e\x3b\x5d\x3e\xda\xd5\x9b\x8b\x1a\x98\x25\x25\xc5\x8d\x1c\x41\x45\xf0\x04\x3d\xc9\x5c\x99\x0e\x30\x76\x7b\x89\x74\x28\xc9\x18\x8b\x59\x5f\x4d\xfa\xcc\x77\x5b\xd4\x50\xec\x0b\xfd\x37\x52\x60\x39\xc1\xcd\x85\x89\xf0\x6a\xcd\x1f\x64\x4f\xcb\xc9\xa2\x6d\x62\x08\x74\x4e\x4f\x98\x82\x3c\x7e\xa0\xd5\x3d\x78\x7c\x46\xb5\xb9\x50\x54\x68\xf8\xe8\x7d\x44\x21\x55\xbf\x1e\xc2\x99\x2b\xf1\x49\x49\x80\x8a\x09\xa3\x99\xab\x6f\x28\x05\xf3\xbe\x1b\x23\x09\x15\x50\xad\xaa\x8d\xba\x6b\xdd\x1d\x00\xe8\x46\x21\x6b\x9d\x17\x0b\x2a\x0e\x15\xa3\x29\xd4\x5a\x62\x5f\xf2\x8c\xba\xa2\x2b\xce\xd8\x6d\xd9\x6c\xca\x0c\xe5\x99\x8e\x6e\x4c\xb9\xce\x3d\x15\x3c\x52\xa1\xe0\x11\x0a\x8b\xf0\x97\x27\x81\x01\x5e\xcf\xb4\x83\x64\x58\xce\x36\x5d\x8c\x1b\xc9\xd5\x5a\x72\x52\x75\x3d\x97\xc7\xf7\xfc\x42\x59\xd9\xec\x47\xac\x0c\xf6\x49\x5c\x09\x79\x23\x5e\x6c\xbe\x24\x37\x66\x6d\x0c\xf0\x32\x67\xb5\x4b\xe4\x89\x5c\x58\xcf\x6e\x0d\xd0\xf0\xfe\x2a\xdc\xee\x40\x69\xe9\xc8\xdc\x5b\xa3\xb8\x94\x3d\x35\x87\xb4\xbe\xc7\xad\x31\xf4\x49\xeb\x83\x31\xf5\xda\x32\xf7\x92\xe3\xd7\xa1\x84\x47\x53\x0f\x89\x7e\x5f\xad\xea\xd4\x2b\xd1\xaf\x55\x71\x1a\x12\xff\xf6\x2e\xe8\x76\x04\x37\xad\x79\xab\xc6\x99\x7d\x0c\xd2\xb4\x10\x10\xe7\x41\x33\x6e\x96\x5e\x7c\x68\x99\x66\xa7\x49\x83\xd1\xc8\x50\x66\x77\x6d\x1e\xe1\x06\x19\x75\x45\x0e\x55\xf9\xca\x8c\xc2\x8c\x69\x17\x42\xb3\xd8\x67\x3a\x21\x9a\xfc\x7a\x59\xbd\x6b\xa5\x20\x2b\x8a\x35\x46\x81\xb9\x3d\x4a\x52\x68\x2c\x39\x4a\xb3\xa4\xb0\x8c\xb4\x72\x7e\x55\xa3\xe5\x73\xb0\x3c\xd2\x2f\x7c\x51\x2c\x6a\x8f\x68\xa2\xa4\xc6\x46\xe7\x7e\x05\x71\x8e\xd4\x8b\x31\x81\xf0\x9e\xe6\x79\xb1\x46\x1f\x7e\x3e\xf5\x3d\xfc\x97\x9e\x68\x83\x01\x96\x4c\x98\xb9\x61\x2e\xf7\xa0\xe2\x5c\xc3\x62\x85\x75\xc7\x82\xcb\x64\x58\xcd\x6c\x01\x57\x09\x21\xef\xd4\x4c\x8e\xc2\x52\xc1\x34\x0e\x55\xe7\x53\x96\x58\xd9\x3b\x84\x37\x59\x0e\x1a\x16\xc9\x05\x3e\x4c\x51\xb6\xb8\xe6\x09\x03\x9a\x40\xa1\x71\x35\x42\x8e\x8b\x94\x5f\xf3\xb4\x28\xfd\x56\x9e\xdb\x58\x62\x0c\xa0\x5f\x78\xaa\x5f\x55\xcc\xe7\xf2\x86\x30\x6a\x0f\xc5\x4a\xba\xa5\xd7\x07\xd6\xe5\xca\xc4\xef\x91\x75\x3b\xd7\x5c\xd4\x51\x81\x6c\xc3\xad\x87\xa4\xd7\x21\xe9\x75\xe3\xe8\xb4\xb5\x76\xad\xca\x52\xd0\x10\x12\x24\x7f\x47\x09\x4a\x91\xce\x05\xe0\xe0\x05\x8d\x9c\x5e\x3e\xd5\x33\xa2\x7d\xc1\x85\x12\x42\x5d\x12\x99\x65\x2c\x31\x70\xbf\x35\xb9\x61\x59\x46\x10\xdb\x30\xc8\x33\x5b\xba\x1c\xa7\x55\x7f\xce\x36\xed\xca\xee\x2e\x93\xb3\x97\x6d\x71\x73\xb6\x8f\x36\x81\x66\x95\xbc\x57\xea\x67\x1f\x47\xbd\x57\xed\x3b\x73\x18\xc3\xc0\x20\x38\x62\xe1\xe2\xe8\x81\x3f\x08\x47\x5b\x2a\xc9\x63\x65\xec\x96\x15\xe3\x11\xaf\x46\x2d\x5d\x6c\x5c\x0b\x30\x33\x97\x9a\xc5\xf3\x53\x05\x77\xf4\xee\xf5\xab\xd2\x40\x79\x1b\xd2\xed\xce\xee\x43\x2f\x39\xa3\x3a\xb8\x62\xe6\x53\x8c\xa6\xa5\x81\x33\xf6\x56\x96\x49\x86\xeb\x12\xf7\xf6\xc0\xd5\x2a\x96\x9b\xdb\x00\x67\xb3\x8c\xda\x98\xcb\xdc\x2a\xc9\x16\x08\x12\x00\x57\x5b\x21\x68\x25\x4f\xf3\x61\x24\xe1\xd6\xd9\xf9\xad\x72\x73\xcb\x2d\x47\xb2\xe1\xfe\x37\x7e\xaf\x19\xbc\xe1\xc3\xcd\x66\xf3\x8d\xd3\x7a\x47\x0f\x2f\xad\x77\xf5\x05\xbf\xd7\xa7\x93\xf0\x3b\x6a\xe4\x5f\xbb\x64\xe5\x91\xb0\xde\xce\xb7\xcb\x41\x21\x4c\xa4\x16\xa6\x1c\x42\x4a\x28\xd1\x5c\xcc\xb2\x32\x12\x0b\xaa\xa1\x7f\xb6\x2b\xfc\x0c\x4c\x10\x1a\x7c\x01\xf3\x83\xf4\x10\x48\xec\xe0\x2c\x4b\xab\x81\xc2\x56\x5c\x95\x22\x61\x2f\xfa\xd4\xce\x77\x62\xf1\x4e\x84\xcb\xc6\x50\xee\x75\xb7\x2d\x54\x6f\x87\xf0\x77\x14\xf2\x6a\xf1\x86\xbe\x9d\x56\xff\xb8\x43\xab\x6f\x80\x32\xa1\x2b\x01\x65\x01\xca\xb1\xce\x97\xc8\x05\x00\x51\xc9\x85\xfd\x77\x2e\x05\x64\x30\xb5\x07\x6c\xdf\x71\x74\x78\xdb\x75\x07\x54\xdd\xc5\x91\x85\x38\x8a\x7e\x07\x16\xec\xb4\xe5\x71\xb9\x73\x72\x02\x28\x76\x37\x71\x68\x7c\xb5\x36\xb6\x7e\x44\xe6\xdc\xe8\xc3\x9c\xa9\x43\xcd\xec\x0d\x85\x2b\x20\xc8\x89\x98\x29\xa6\xfd\x2b\x6d\x30\xb0\x84\x71\x27\x10\x38\x95\xa9\xee\xbd\x7f\x20\xc7\xeb\x77\x0f\xc6\x03\xa8\x39\x52\x2d\xf6\x83\x77\xdd\xa9\x4a\x55\x38\x80\x1f\xd1\x15\xa3\x3f\xcc\x95\x4c\x98\xd6\x2c\x8d\x20\xe3\x0d\x37\xe8\x2f\x09\x36\x9d\x10\x89\x6a\xe4\x0c\x65\xe2\x09\x9b\x4a\xc5\x5c\x03\x4b\x8b\xd0\x54\x95\x9a\x57\x6c\xb0\x69\x81\xaa\x57\xe1\x76\x02\x59\x5f\xf1\xbd\x37\x74\x83\x02\x19\x43\x38\xfc\xe8\x89\xa2\xef\xfe\x80\x82\x7f\x59\x2c\x88\x8b\xd2\xee\x6f\x89\x25\x18\x30\xf4\x0b\x02\xde\x50\x3b\x57\x44\x2a\x36\x3e\x2f\x28\x31\xf3\xe6\xf4\x93\xbd\xc6\x0b\xb6\x90\x6a\xf9\x62\x4c\xce\x8b\x48\x81\xb5\x6a\xc7\xa4\xe0\x19\x66\xde\xc5\x5f\x43\x05\x66\x4e\xaf\xdd\x6a\x69\x16\x4a\x42\x60\x5b\x1d\x0d\xf1\x84\x32\x47\x41\xdd\xee\x2a\xd8\x14\xec\x4c\xc2\x92\xab\x2c\x04\xf1\x97\x62\xbc\xb7\xcd\x5d\x02\x5e\x5e\x1e\x90\xf5\xb5\x9f\x7a\x7a\x77\x7d\xec\x7c\xd5\xfe\xe5\xa6\x06\x6b\x4e\xc9\x6d\x5c\xc7\xc9\xcb\x03\xa4\x23\x97\x07\x23\x72\x79\x70\x8a\x8b\x91\x8a\x5c\x86\xfe\x0b\xf6\x09\x40\x7a\x41\xf3\x1c\xd6\x0d\xb7\xa7\xca\xc5\xdc\x09\x34\xa6\x66\xee\xc4\x8d\xbc\x07\xe6\xdf\xa5\xb6\x57\x62\xed\xab\x5a\xba\x15\x2b\x0f\xab\x6a\x5a\x4d\x02\xb8\x67\x06\xde\x1d\xee\x34\x30\xf0\x07\xc5\xc0\xbb\x0f\xec\x69\x33\xf0\xee\xfd\x0f\x0c\x7c\x7b\x06\xde\x0d\xdd\x81\x81\x3f\x0e\x06\xee\xf1\x6f\x73\xf6\x5d\xeb\x95\xfc\xb8\x59\x78\x83\xf2\xd3\xce\xc8\x57\x07\xf7\x49\x3b\xae\x50\xd5\x1d\x91\xd3\xee\x80\xb1\x7b\x4c\xa8\xa3\xed\x59\xa8\x95\x64\x33\x5f\x9d\xb1\x9a\x7b\x16\x39\xb0\x15\xcb\xd8\x35\x15\x06\x4d\x60\x77\x95\x94\xb6\xb3\xf4\xe7\xb6\x42\x20\x77\x92\x76\xa6\xa3\x84\xb3\xb2\x08\xc8\x21\x13\x89\x4c\xd1\xf1\xb2\x70\xd2\xa6\x0f\xeb\x89\x50\xb3\x56\x4b\xc4\x7b\x80\xe3\x3c\x34\xf2\xcf\x39\x13\x44\x33\x33\x82\x56\xc7\x9a\xe4\xd4\x32\x3c\xdf\xe9\x30\xb4\x7d\x27\x50\x19\x84\x19\xb4\x75\x56\x32\xa6\xb0\x71\x65\x70\xc4\x87\x1c\xb8\x30\x20\x91\xa0\x27\xc0\x97\x0a\x01\xdf\xfa\xcf\x42\x9b\x68\x16\x38\xbf\x38\xbe\x01\x1a\xba\x52\xb4\x8f\xe1\x34\x6b\xb3\x94\xef\xd5\xa1\xea\xee\x44\x69\xa3\x07\xc5\x20\x6d\xca\xa3\x5d\xb3\x85\x47\x98\x68\xbd\x05\xdd\xc7\xd3\x6a\xbe\xe8\x2d\x20\xd9\x1b\x9b\xe8\xd2\xf7\x56\x07\x77\x67\x58\x0f\xbc\xa2\x23\x33\x79\x1f\xcc\xe2\x11\xa7\x64\xb7\x90\x84\x81\xfd\xdd\x35\xfb\xf3\xe2\xee\xaa\x6c\xb8\x77\xc6\x38\x1e\x38\xe3\x1e\x59\xc9\xde\xf2\xe3\x57\xbc\x0d\xed\x9c\xa4\x3e\x74\x43\x75\x63\x4f\x66\x8c\x5d\x5b\x31\xba\xa3\x8d\xf7\x45\xd5\x06\xa2\xf6\x04\x65\xfa\x07\x5d\x86\x69\x3f\x32\x4d\x4f\xd2\xb7\x4e\x66\xae\x40\x6d\x4f\xe4\xae\x4b\x70\xae\x0f\xdd\x46\x6c\xde\x0f\xcd\x7b\x72\x85\x8c\x1e\x9d\xfd\x65\x20\xd5\xeb\xe5\xcf\xba\xa8\xf0\xa8\xa4\xcf\x5b\xd1\xaf\xa6\x9b\xb7\x4b\x02\xd6\x18\xc3\xd0\x4e\xc4\x9a\x86\xaf\x95\xdb\xea\xce\x91\x06\x5f\x07\x84\x60\x76\x79\x49\x46\x3b\xf2\x88\xec\x4c\xbe\x1b\x93\x07\xeb\x5d\x21\xe4\x67\xb1\xa3\x82\x9b\x3d\xaa\xbc\x8a\x16\x2a\x57\x16\x9d\xba\x95\xa2\x5d\x61\xe0\x51\x67\xa6\x5e\xbd\xbc\x56\x5f\xdb\x40\x62\xa9\xa3\x6e\x1b\xef\xe8\xec\xe6\x84\x93\xf9\x46\x4c\x95\x4f\x86\x6f\x78\x32\x88\x35\xf6\x76\x1c\x6d\xfc\xc8\x45\xc7\xfe\x07\x01\xc0\x57\xf4\xc6\x4d\xf7\x9c\x0b\x6d\x18\x85\xda\xca\xeb\xcf\xe5\xc5\x88\x68\xbe\xe0\x19\x0d\x1c\x23\x5c\xaa\xd5\xfc\xba\x2d\x88\xfb\xce\xab\x0a\x37\xba\xae\x7b\xd3\xed\x9e\x02\xe8\x83\x23\xde\x0f\x95\xe2\x6e\x2a\x41\xf7\xa7\x63\xad\xef\x6d\x22\xfc\xde\x1f\x25\x2b\xbd\xf1\x10\xea\x3d\x61\xc4\xcd\x4f\xf8\x94\x7c\x5e\xa5\x0a\x9f\xc9\x8d\xc5\xa7\x52\xf2\x2b\xfd\xf1\x16\xf6\xfe\x2e\xc6\x89\xc6\xfb\xea\x6a\xf7\x88\x95\x9d\x07\x47\x30\x03\x16\xd0\xec\x86\x2e\xb5\x93\x3f\x2c\xba\xcd\xa8\x4a\x21\xb1\x3d\x14\xfd\xe9\x3e\xef\xc6\x53\xbb\x27\x49\x65\x13\xfa\x7f\x67\x62\xfd\x77\x43\x93\x86\x3e\x67\x17\x9d\xc7\xd0\xa4\x61\xed\xb6\x9e\x78\x93\x86\xef\xbe\xf6\x26\x0d\x7d\xbd\x14\x3b\xf0\x9b\x7d\xe7\x02\xcb\x4f\x02\xc6\xf4\x28\x30\x4d\x02\x7e\x55\x94\x06\xf7\x70\xb2\x44\x72\x6e\x85\xbe\x60\x17\x5b\xa3\x08\xed\x70\x17\x17\x75\x7f\x5b\xab\xbb\xaf\xcc\x8d\x5b\xd1\x7a\x9a\x4c\x60\xdb\xda\x8f\x56\x6d\xdf\xfb\xbc\x27\x8f\xb4\x20\xff\x0e\x11\x00\x58\xf7\x06\xdd\xf5\x2a\x05\x73\xaa\x7b\xef\x40\x83\x15\x3b\xf4\xa3\xbc\x8c\x5b\x23\xb3\x3f\xba\x5d\x62\xb3\x2b\xb4\xc2\xc5\xec\x14\x1a\xae\xaf\xab\x4e\x51\x1b\xea\xea\xc0\x61\x1a\x81\x6f\xd7\x8e\x05\x3f\x0a\x6d\xc8\x5c\x66\x29\x31\xca\x9d\x2a\x8d\x34\xe4\x9c\xfa\x1a\x82\xd7\x34\xeb\x81\xb2\x39\x53\x5c\xa6\xe7\xe0\xaa\xe9\x4a\x90\x3f\x8d\xc7\xd6\x28\xce\x0d\x17\x29\xe4\x60\x63\xa2\x77\x54\x9c\x69\x1e\x36\xe0\xac\x83\x61\xf1\x63\x52\x9d\x11\xb6\x36\x61\x64\xa6\x18\x05\xe3\xfa\x9c\x0a\xf2\x1b\x53\x12\x75\x7d\x57\x9f\x4a\x58\x1e\xc4\x7e\x2d\x68\x06\xd5\x70\xfe\xfc\xf2\x25\x79\xfe\xfd\x4b\xb2\xe0\xe2\xc5\xee\x2d\x5b\xdd\x21\xe3\x17\x2e\x64\xdc\x1b\xea\x11\x2c\x28\xa0\xea\x4a\xbf\xfd\x2d\xac\x93\xd7\x4d\xda\x61\x6d\x01\xa8\xbe\x55\x2e\x3e\x5d\xf8\xf2\xfc\xae\xd4\x0b\x1e\x05\xd7\x56\xe1\x5a\x70\x13\x15\x21\x70\x4b\xb3\x1a\x54\x2b\xf8\x77\x02\xd5\x9e\x37\xb3\x5e\xae\x14\x21\x30\x6a\x43\xd8\xfd\x5c\xd7\xb3\x22\x63\x6b\x6b\xc9\x54\x47\x96\x95\x90\x74\xe5\xd8\x43\xf3\x57\x7b\x1b\xa4\x60\x24\xe5\x0a\x3b\x06\x42\x1c\x88\x66\x04\x5f\xa7\x8a\x11\x9a\xe7\x99\xbd\xbf\x74\x6a\xa0\x06\x14\x16\x8b\xb0\xb3\xbc\xad\x95\xa5\x00\xd1\xcb\xdb\x8c\x3c\x51\xff\xe9\xf4\x18\xe6\x5c\x42\xf9\x28\xac\x3d\x15\x2f\xe5\x9a\x65\x32\xe1\x66\x69\x8f\xdd\x61\x28\x88\x75\x31\x82\x72\xa6\xa3\x39\x72\xc5\xac\xa6\x40\xa6\x99\xcb\x38\xac\xbe\x89\x7e\x39\x3a\x29\x0d\x46\x48\x01\x46\x44\x4b\xcc\x59\x33\xcd\x65\xaf\x5c\x2a\x1b\xda\x60\xb4\xa1\xc2\x64\xcb\x11\x71\x86\x81\x11\xce\x4b\xa7\x4c\x07\xb6\xe5\x0b\x56\x36\x7d\x0d\x4b\x3b\x48\xcd\x44\x1f\x52\xe7\x36\xd9\x71\x9f\xfc\xb0\x6a\x21\xda\x5c\x1a\xcb\x95\x22\x53\x1f\x8c\x83\x7a\x3a\xf6\x6e\x59\x90\x79\x77\x5d\x5a\xa8\x08\xb8\x63\x72\x1c\x97\xbf\x72\xb4\xd0\x5f\xb6\x40\xb9\x47\x58\x99\xe0\x86\x6b\xe6\x4f\xb4\x82\x63\xde\x9b\x94\x72\x9d\x50\x95\xa2\x01\x8d\x8b\x6b\x9a\xf1\x74\x5f\x95\x67\x1a\x58\x58\x34\xe7\xc6\xd5\x67\x90\x5f\xaf\xf0\xc2\xa6\x43\x88\x87\x36\x51\x57\x04\x7a\x95\xaf\x38\xf0\x8f\xc9\xc9\xd4\xa3\xd8\xc8\xc5\xc0\x41\xf5\x34\x87\x50\x1f\xe8\x17\x9c\x17\x7d\xd1\x7e\xf6\xed\x4a\x50\x97\x18\xf9\x4f\x40\xc8\x7e\x8c\xf4\xbc\xf5\xc5\x60\x3f\x0a\x17\x47\xbb\x07\x25\x47\xcd\xb1\x3c\x91\x55\xfe\x99\x48\x5d\x35\xc4\xb8\xfe\x97\xb0\x0a\x98\xb2\xc2\xec\x9c\x67\x25\x0d\x28\x72\xcb\x39\xfd\x5f\x58\x5c\x6e\xcd\x4a\x1a\xd9\x41\xcc\x7a\x3b\x38\xf3\xf7\x7f\xb4\x9c\xd9\xa2\xfc\x5c\x16\xea\x45\xf5\x58\x0a\xcd\x56\x8f\x46\xbf\x26\x87\xe4\x47\xb7\x46\x46\x8a\xfc\x35\x79\x49\x9e\xf3\x31\x1b\x13\x21\x6b\xf7\x9f\x6b\x92\x4a\xc1\x5e\x8c\x2b\xaf\xd8\x4d\xbd\x26\xdf\xbf\xf4\xaf\xad\xa3\x1b\x76\x94\x07\x6e\x26\xc5\x6c\x47\xd2\xc3\x0a\x9f\xbb\x0d\x47\x1a\xba\x01\x75\xd0\xf4\xa1\xb6\xf7\xd0\x0d\x68\x28\x69\x4d\x6e\x19\x9a\x35\x74\x03\xda\x84\xfc\x0e\xdd\x80\x76\x03\xc6\xa1\x1b\x50\x9f\x6e\x40\xdf\xdd\xaa\x48\x7a\x2b\xf4\xff\xea\x74\xd3\xcd\x65\x09\xff\x66\xa7\xd6\xeb\x50\xdb\xe7\xa3\x08\x32\x91\x66\x4e\x3e\xe5\xc0\xf6\xde\xca\x1b\x51\xea\xc3\x9a\x3c\x87\xc9\xdd\x43\xf8\x37\x8c\x80\xac\x78\x0d\x85\xa3\x19\x94\x15\xce\x96\x7d\xdc\x09\x61\x82\xdd\x20\x70\xcd\x30\xb0\x16\x65\xc3\xd2\xb9\xae\xd9\x7f\xe0\xf6\xfb\x9f\xde\x82\xf8\xbd\x5e\x53\xe1\x58\x23\x20\xcb\x62\x7f\x4f\xea\x62\x64\xe2\xf2\xcf\xe8\x6c\x47\xd3\x75\x24\xd7\x36\x8b\xbe\x20\x19\xe3\xe7\xe6\x7c\x36\x67\x2b\xca\x44\xa0\x52\x50\xb7\xf1\xfb\x97\x2f\x35\x92\x33\x2c\x81\xbe\xa6\xd4\xf2\xa7\xfc\x7e\xc0\xfd\x29\xef\x00\xf6\xa7\xbc\x0f\xa8\x3d\x40\x2c\xe6\xbe\xbe\x14\x84\x7c\x1b\x6a\xa5\x5b\xfd\x03\x02\x7a\x41\xcb\xf9\x3d\xc6\x74\xe7\x4c\x91\x3f\x06\x1d\x02\x5f\x48\x65\x01\x41\x3e\xab\x45\x28\xeb\xa3\x3f\x36\x68\x34\xa8\x87\xde\xa9\x2e\x31\x74\x05\x1b\xba\x82\x0d\x5d\xc1\x86\xae\x60\xbb\xee\x0a\xd6\x4a\x70\xb6\xeb\x0a\x66\xdf\x1a\x3a\x83\x3d\x25\xeb\xc1\x23\xec\x0c\xd6\x6e\x90\xbb\x8d\x55\x7c\x30\xa3\x3c\x15\x33\xca\xd0\x19\xac\x82\xd1\xb7\xe8\x0c\xb6\x27\xa5\xf7\xa1\x77\x06\x9b\xac\x2a\xe5\xbd\x70\x72\x2b\xc5\x7f\x1d\x92\x4e\xee\x5d\xc7\x6f\xd5\xd7\xea\x7e\xd1\x69\xe4\x2f\x2a\x27\x46\x35\x99\x2a\xb6\xa2\x53\xc5\x24\x60\x68\xc4\x36\x34\x62\xfb\xaa\x1b\xb1\xb5\xde\x32\x37\xd8\x03\x5d\x33\x63\x4f\xf5\xcf\x2f\x7f\x17\x72\x41\xde\x9c\x7e\x22\x45\x99\x2f\xb4\x47\xa1\x6b\xe8\xe9\x36\xf4\x74\x0b\x83\xf4\xae\x7b\xba\xad\x4f\x66\xe9\xb4\x3d\x0e\x3d\xdd\xf6\x67\x2a\x18\x7a\xba\x3d\x96\x9e\x6e\x3d\xcc\xcb\xb7\x21\xdd\x4f\xaf\xa7\xdb\x77\x43\x4f\xb7\xa1\xa7\xdb\x66\x1b\x1f\x7a\xba\x0d\x3d\xdd\x1e\x7a\x4f\xb7\x86\x84\x9f\xae\xd6\x2e\xe5\xd0\x8a\x69\x3d\x24\xf9\x60\x45\x05\x90\x71\x2a\x45\x9d\x7c\xd2\xe3\x5e\x8b\xcc\x54\x72\xa5\x36\x77\x46\x7d\x15\x45\xb4\x9e\x62\xb1\xac\x9d\x27\x00\x0f\xad\x0e\x7b\x24\x44\xaf\x43\xe7\xa1\x53\xd2\xfd\x76\x4a\xfa\xee\xab\x6f\x75\xf8\xdd\xd0\xea\x70\x4f\x9d\x92\xbe\x1b\x5a\x1d\x3e\xd5\x4e\x49\x43\xab\xc3\xba\xaa\xff\x24\x5a\x1d\xb6\x54\x6a\x18\x18\xf8\xa3\x61\xe0\x5f\x61\xab\xc3\xef\x86\x56\x87\x77\xc5\xc0\x87\x56\x87\x4f\x85\x81\x0f\xad\x0e\x57\xcb\x31\x75\xb1\x70\x1c\x56\x31\x67\xc5\xf7\x71\x14\x7c\xe8\xee\x4f\xa9\xc2\x2f\x91\x47\xdd\x31\xf9\xaa\x51\xa4\x77\x43\xaa\xfe\x25\x40\x57\x5f\x78\x14\x45\x8c\xc9\x1b\xbc\xbc\x50\x89\x3a\x5b\x12\x28\x84\x00\x43\xce\x6a\x6b\x8a\x22\x26\x76\x6d\x93\x7f\x68\xdd\xbf\xee\xaa\x53\x64\x5f\xfa\x52\x86\x9d\x06\x17\x65\xb4\x06\x4f\x82\x22\xd4\x1b\x91\x5f\xc2\x9d\xa8\x54\xaf\xdc\xd8\xf8\xda\x58\x3a\x67\xdf\x67\x72\x7d\x77\x4d\xfd\xf6\x43\xe1\xe2\x7a\x63\x5d\x64\x2e\x1a\x0b\x35\x9d\xda\x8a\x8e\xf5\xb7\xd4\x6f\x4c\xbb\x1e\x79\xf9\xe2\xa7\x4e\x8e\xee\xac\x73\xca\xfd\x5f\xf6\x2d\xdb\x0f\xae\xdc\xf6\x5b\xdc\xe0\xa7\xda\x8e\x39\xb4\xb0\xfb\x79\x77\xba\xf0\xba\x98\xaf\x46\x0c\x7b\xc4\x35\x11\x63\xbe\xfd\x84\x0b\x94\xd6\xd1\x64\x75\xdb\xab\xc7\xb9\x4b\x06\xfa\xa4\xdb\xdc\x3e\x91\xca\xa6\x03\x29\xb9\xe7\xf2\xaa\x6b\xce\x62\x97\x77\x71\x68\x13\xba\x5d\x9b\xd0\x47\x89\x94\x5f\x09\x7f\xbb\x93\x02\xdc\x5f\x57\xc3\xc9\xc7\xce\xce\x1e\xf1\xa5\xbd\x35\x27\xd9\x25\xd6\x0f\x5d\x0a\x87\x2e\x85\x8f\xa0\x4b\xe1\xd3\xe4\x6b\xf5\xde\x45\x7b\xe0\x6a\x43\x37\xbb\x87\x74\x33\xbf\x1a\xf6\xdc\xb7\x3d\xd2\x83\xea\x19\xb6\xf5\xc5\x9b\x50\x93\xcc\xc7\xd7\xaf\xc6\x7f\x97\x93\x35\x97\xeb\xef\x72\x12\xbb\x85\xcc\x4a\x55\xe2\x38\xb6\xe9\x3f\xe5\x64\x28\xe3\xf3\xa0\xcb\xf8\x0c\xd5\x6b\x9e\x4a\xf5\x9a\x9e\x45\x80\xcf\xab\x45\x7f\x9f\xe9\x47\x5d\xf6\x37\x26\x5a\x9d\x75\x7d\xcf\x2b\xb5\x7c\x1d\xa5\xf6\xa9\x84\x71\x49\x14\x0a\x84\xeb\x8e\x0b\xf9\xee\xb4\x8e\x6f\x05\x2e\xdd\x6c\xf3\x4d\x43\x72\xf5\xfd\x82\x60\x85\x09\xee\xaf\x0e\x12\xc0\xaa\xb9\x02\x92\x65\x85\x95\x07\x71\xa5\xa3\x57\x1b\x14\x39\x8a\xcf\xa3\x4f\xc9\xce\x78\x58\x14\x4b\x1c\x27\xc1\xb3\xf2\x98\xfa\xd5\xde\x3c\x55\x72\x72\xe7\xc9\xa7\xef\x5b\x8a\x6b\xde\x50\x4d\x92\x39\x4b\xae\x5a\x13\x40\xef\xb7\x5c\x68\xdb\xba\x5d\x75\xcb\x35\xf5\x40\xdb\x8a\x15\xf5\x2a\x08\xfa\x53\xb1\xa0\x82\x84\x1a\xa0\xa1\x3e\x28\x2a\x2f\xab\xf5\x3f\x6f\x5f\x71\xb3\x57\x05\xd0\xe7\x13\xc5\xd9\xf4\xc5\x03\xa8\xfd\x79\xde\x5c\xed\x73\xe4\x03\x1c\x9b\x8a\x7e\x6e\xa3\xb0\xf7\x6c\x1c\x26\xa7\xf6\x02\xc6\xeb\x78\x23\x17\x79\xc6\xec\xed\x54\xe4\x47\xca\xb3\xfe\x9d\x69\x7a\xca\xfd\x3b\x2e\xfd\x19\x53\xa6\x8e\xda\x9e\x6e\x04\xca\x82\xae\xa4\x89\xe3\xa4\xff\x29\x27\x43\xc1\xce\x87\x2d\xe9\x6f\x5d\xb0\xf3\xef\x95\xb3\x6d\x9d\x6b\x53\xb1\x64\x28\xba\x39\xa8\x2d\x7d\x8b\x6e\x9e\x37\x17\xd9\xbc\x07\x85\xa5\x27\x91\xbe\xf3\x62\x9e\xeb\x85\xd8\xf5\x25\x3b\xb7\x15\x64\x3b\xd2\xe1\xdd\x88\x48\x7c\x05\xcf\xca\x1c\xcc\x42\x84\x7d\x61\x49\x81\xa2\x20\xcf\x32\x92\x49\x79\x45\x32\x7e\xd5\xab\x07\x3c\x14\x33\x7b\xcb\x68\x9a\x71\xc1\x7a\xb6\x6c\xab\x98\xc1\x53\x6f\xac\xe2\x22\xf4\x10\x53\x2c\xa3\x50\x24\xcd\x31\x01\x6d\xa8\x32\x17\x28\x01\xba\x76\x88\x76\xdd\x96\x00\x4c\x98\x2f\xa8\xe6\x7c\x2c\x30\x7e\xa9\x0d\x5b\x10\xa3\xe0\x23\x92\x18\xa6\x16\x5c\x58\x39\x9d\x9b\x1f\x1c\xf1\xf1\x3d\xd9\x72\x69\xa5\xa4\x6b\x46\x7c\x38\x68\x7b\x20\x69\xff\x72\x23\xd1\x3d\x9d\xd0\xe4\x4a\x4e\xa7\xef\xf9\x82\xaf\x58\x61\xd7\x02\x26\x2e\xa8\x83\x3b\x71\x3b\x5c\x50\x75\x85\x14\x93\x6b\x80\xc3\x14\x65\x1b\xf2\x36\x2a\x83\xf7\xc7\x5d\x07\xc4\x26\x28\x4c\xf5\xa8\xd2\x55\x3b\xdf\x95\xfa\x40\xba\x48\x12\xa6\xf5\xb4\xc8\xb2\x25\xb1\x24\x4a\xcf\x59\x8a\x11\xaa\xfe\x64\x4b\xb7\x92\x2a\x04\x64\x2d\x42\x21\x47\x63\x5c\x12\xab\xe0\x19\x59\x30\x2a\x74\x89\x10\x6e\x56\xdf\x3a\x2d\x97\x29\xd1\x7c\x26\x68\xa6\x57\x1e\x67\x99\x0b\x42\x86\x82\x7e\x98\xf3\x98\x53\x45\xb3\x8c\x65\x5c\x2f\xec\x07\xc0\x86\x8f\xf3\x38\xf4\xc0\xe8\x8f\xca\x2a\x5e\xc5\x6b\x88\x27\xe0\x1a\x1d\x10\xe8\xe3\x7b\x15\x2a\x61\x46\x8b\xc0\x77\xda\x17\xe9\x20\xd1\x48\x57\x1b\x1a\xfc\x27\x52\x24\x2c\x37\xfa\xe8\x46\xaa\xab\x4c\xd2\x54\x1f\xb9\xda\x3f\x19\x53\xfa\xc8\xca\x84\x87\xaa\x10\x87\x46\x1e\x96\x07\x79\xb4\xf3\x42\xa8\x54\x14\xb4\xac\xa9\xd2\x55\x08\x36\x1e\xec\x4b\x15\xe9\x4a\x59\x20\xa8\x50\x84\x25\x54\xd0\xaf\x03\x10\x73\xaf\xe8\x31\x79\xcf\xec\x39\x7d\xae\x4e\xf5\x19\xeb\x9b\x90\x42\x40\xf9\xd7\xa5\x2c\xc0\x65\xe3\x7b\x64\xdc\x58\xc8\xfb\x1f\x53\x59\x56\x45\x99\x5a\x4d\xc5\xea\x0a\xae\x3c\x4a\x44\x49\x72\x9e\x5c\xf9\x65\x14\x82\xff\x5a\x38\xd2\xe4\x2e\x20\xe0\x51\x9e\x33\xc8\xcf\x02\xb7\x8e\x1b\x5b\x16\x25\x24\x86\x2d\x72\x2b\xcc\x8e\x09\x7e\xcd\x80\x76\x64\x9f\x16\x1a\xbb\x0a\x62\x8a\x97\xe6\x56\xdb\xb4\x6a\x9d\xfd\x28\x34\x9b\xc4\x0f\x46\x50\xa8\x37\x8f\x75\x1b\x1f\x13\x50\x73\x0a\x05\xab\x83\x35\xd3\xca\xdb\x40\x31\x13\x8a\x1d\x23\x39\xce\x85\x95\x4d\x2c\x82\xa0\x07\xca\x84\x4a\xcc\x98\x76\x96\x98\x6c\x39\x26\xe4\x27\x79\xc3\xae\x99\x1a\x91\xff\x29\x0b\x98\x46\xb3\x15\xc0\xff\xc5\xee\xe9\xb3\x25\xe4\x38\x9d\x05\xf4\x0d\xb3\xa0\x87\xbe\x97\x2e\xfd\x18\x32\xd5\xb2\x94\x7c\x66\x5f\x0c\x13\x1a\xc4\x93\xeb\x57\x13\x66\xe8\xab\xcf\xe4\xf8\xf4\x64\xbf\x28\xff\x4d\x09\xbb\xc3\xa5\x2c\xd4\xa1\xbc\x11\x87\xb9\x4c\x0f\x75\x63\x25\x20\x8f\xf6\x13\x29\x33\x46\x45\x4b\x52\x6d\x79\xf5\x37\x22\x8d\xbe\x60\xef\x2a\x89\x6c\x22\x86\x96\x12\x52\x03\x44\x09\xfd\x65\x86\x2f\x18\x86\xb7\x61\xe9\xca\xfa\xfb\x3e\x43\xda\x32\x56\xc3\x68\xba\x74\xb6\x2a\x1f\xa6\x50\xf6\x1a\x05\x64\x70\x6f\xdf\x58\xe4\x7c\xfe\x7c\x6c\xe1\x34\x8e\x88\x3e\x39\x24\x63\xd7\xe6\xac\x24\xe0\x2f\xc8\x65\xf1\xf2\xe5\xf7\x09\xc1\xe1\x11\x20\x5e\x8c\x08\xb4\x0d\x85\xe9\xec\x4e\xec\x29\x91\x8c\x4d\xa1\xfa\x6d\x0a\x75\x55\xcb\x05\x2c\xe8\x97\x98\x80\x3e\x2e\xaa\x77\xaf\xb5\xa9\x8e\xdd\xcd\xfe\xb5\x60\x6a\x49\xe4\x35\x53\x1e\x79\x68\x28\x19\x01\xd9\xa2\x81\x10\x61\x2d\x53\xf2\x11\x7c\xcd\xd9\xb2\x42\xe7\x34\x03\x3f\xa2\xd5\xa6\x20\xb1\xd4\x92\xa1\xa5\x2c\x36\x3e\x0f\xbb\x8e\x6b\xce\x6e\xe0\x60\xec\x55\xb3\x37\xff\xd0\x35\x95\x38\x42\x4a\x76\xf4\x0d\xfc\x37\x5c\xbc\x16\xab\xbb\xa7\x9b\x1b\xdb\xdd\x13\xa9\x98\x85\xe5\xa9\x4c\x2f\xdc\x1c\x9d\x6e\x89\xb7\x95\x52\x11\x40\xb6\x81\x88\xb9\x1b\x13\xe8\x98\x45\x6a\x27\x35\x43\xec\xf8\xfe\x39\x75\x33\x6c\x4c\xe6\x44\xee\xe3\xa9\x61\xea\x47\x27\x4b\x75\xa5\x13\x36\xbf\xe5\x62\x26\x9c\xbd\x61\xca\xc0\xe2\x0a\x76\xed\xbf\xcb\x09\xc2\x61\x4e\x75\x29\xb0\x95\x5a\xc3\x73\xc6\x81\x89\xac\xda\xdb\xb0\xf8\x7c\x84\x50\x5c\xbb\x02\xd9\x2d\x6b\xc0\x9e\xed\x76\x09\xf6\xa3\xee\x5b\xda\xd7\x45\x63\x19\x9f\x71\x17\x2b\x31\x61\xb5\x6e\xba\x29\xb3\xdf\x4e\x1d\x33\xf7\x53\x70\xed\xa2\xae\xdc\xe3\x11\x94\x7e\xb5\xfb\x4b\x96\x49\xc6\xc8\xac\xa0\x8a\x0a\xc3\x98\x76\xb1\x1f\x53\x2e\x68\xc6\x7f\x63\x4a\xbf\x08\xe7\x3e\x97\x42\x2a\xd7\x0e\xbb\xba\x99\x48\x54\xb0\x5f\xbb\x91\xe2\x99\x59\xb3\xb4\x26\x60\xf8\xfe\xcf\xe5\x2c\x13\x96\xc8\x05\x5b\xd9\xae\x9b\x85\xf0\xc5\x82\xa5\x9c\x1a\x96\x2d\x1d\xbc\xb8\x09\xa0\xb2\x0c\x21\xfe\x00\x14\xb8\x3e\xcc\xac\x9e\xed\xcb\x25\x43\x8e\xaf\xdb\x12\xb4\xa2\x77\xf6\x14\x38\x62\xac\x75\x0d\x4b\xb9\xb8\x78\x5f\x3d\x1c\x57\x26\x7b\x4f\xcd\x9d\x5b\x4c\xac\xfe\xfa\xef\xc2\xa8\xda\x19\xae\x14\xc6\xac\xc4\x55\xac\x7a\x7b\xfe\xde\x2f\xa0\x02\x94\xd3\x2e\xfb\x75\x45\xdd\xa3\xae\x73\x43\x60\xe0\x7b\x49\x70\x2c\x89\xcb\x5d\xfb\x73\xce\x22\xd0\x5a\x1a\x13\x44\x04\x2b\xec\x80\x33\xca\xd1\x91\x14\x8a\xd2\xb8\x2a\x36\xe1\xa2\xfa\x1a\xee\x1a\xbb\x64\xcc\x41\xf0\xd6\x87\x4e\x39\x96\x2a\x65\xca\xa7\x40\x6a\x66\x85\x0a\x7b\x60\xb9\x53\x29\xb4\x9f\x32\xce\x3f\xe5\x82\x9c\xfd\xf8\xe6\xfb\xef\xbf\xff\xef\x58\xcb\xd1\xdd\x13\x2e\xc8\xa7\x8b\x37\x2d\x3e\xa4\xde\x35\xab\x2f\x4a\x23\x76\x19\xeb\x85\xf5\x4e\x5d\xd3\x87\xd8\x42\xfe\xac\xe6\x58\xbc\x4b\x49\x68\x17\x96\xe4\x8d\x8b\x54\x57\x1e\x55\x6c\x6f\xb9\x9d\xf6\x70\xc1\xd4\x8c\x1d\x5e\xb1\xa5\x4f\x84\xef\x7c\x43\x1b\x7b\xe4\xb3\x25\x46\x57\xab\x59\x4b\xea\x10\x1a\x4d\x36\xba\x98\x20\x58\x61\x5d\x79\xc5\x68\x02\x56\x8b\x39\xd5\xac\xd9\xb9\xb4\x03\xc1\xd2\x9b\xbd\x1e\xd4\xed\xa4\xc9\x95\x90\x37\x19\x4b\x67\x65\xd5\x61\xe7\x78\x73\xf8\xf6\x80\xaf\x2d\xa8\x2e\x2c\xdd\xd5\xc1\x9f\xfb\xe9\xf6\xc4\x13\x37\xe4\x71\xa0\x44\x8f\xdf\x28\x29\xd6\x07\x0e\xba\x11\xfd\x83\x07\x13\x25\xc5\x10\x41\xf8\xe0\xfd\x8a\x83\x2b\xee\xa9\xb8\xe2\xbe\xea\x08\xc2\x0a\x19\xdb\x65\x28\xa1\x27\x63\x23\xc2\x45\x92\x15\x69\x30\xa0\x5a\x92\x5e\x64\xfb\x47\xb3\xbb\x88\x33\xac\x42\x6f\xbb\x80\xc3\x40\xef\xbf\xf6\xa8\x43\xcf\x4b\xdb\x1d\xb6\x00\xee\x2d\xbc\xb6\x95\x63\xea\x88\xf6\x89\x46\x35\x45\xfc\xf8\xd3\x1a\xc2\x7e\x1e\x36\x7b\xde\x3a\xec\xc7\x9d\xff\xae\x43\x7f\xaa\xe2\x62\x4f\x85\x6d\x10\x3c\x9e\xb4\xe0\x31\xc4\x00\xdd\x11\x4b\xe9\x88\x03\xda\x09\x5b\xe9\x88\x0a\x8a\x46\x6d\x18\x19\x04\x84\x18\x2c\x03\xdc\x79\x47\x42\xf7\x3c\x55\x88\x7e\x2d\xdf\xd0\xce\x95\x2c\x4f\x65\xc6\x93\x65\x6f\xc7\xa9\x4b\x09\x37\x8a\x51\xc8\x2d\xf4\xe6\xb2\xb0\x54\x5d\x9a\x67\xc9\x2f\x50\xc9\xd2\xa5\x67\x53\xc5\x5e\x93\x43\x72\x79\x70\x9c\x65\xf2\xe6\xf2\x80\x3c\x77\x7d\x23\x5f\xbc\xf6\x51\x20\x9e\xd0\xda\x2f\xa8\x42\x44\xf3\x67\xcb\x1f\xe0\xdd\x1f\xa5\x9a\xf0\xf4\xf2\xe0\x35\x99\xc2\xbf\x74\xbc\x06\x55\x08\x3d\x22\xfa\x8a\x63\xb5\x75\xc1\xbe\xc0\x6f\x84\x4f\x49\xae\xd8\x35\x97\x05\x78\x65\xc9\x9c\x6a\xf1\xcc\x94\xae\x94\x25\x33\x38\xfb\x19\xcb\x33\x9a\x30\x3b\x7d\x42\x45\xc2\xb2\x60\x0e\x8c\xcc\xc1\x3e\xe2\x40\xe1\x60\x8d\x67\x60\xe6\x84\x12\xc1\x6e\x88\x14\x5b\x94\x78\x44\x6b\x98\xdd\xfa\x4f\x5c\x1b\xa9\x96\x7d\xe2\x95\xaa\x46\x12\x9c\xa2\xdc\x94\x0f\x29\x50\xcc\x50\x2e\x9c\x5f\x02\x18\x00\x50\x66\x6c\x62\x93\x72\x6d\x29\x7f\xc1\xf5\x3c\x34\x92\x65\x5f\xf2\x8c\x27\xdc\x80\x57\x04\x76\x0a\x7d\x55\x7d\xae\x6f\x35\xce\xe9\xd5\xce\xad\x6e\xff\x29\x27\x17\xdb\xfa\x1c\xab\xb7\xf0\xef\xe5\x4c\x7d\xb5\x18\x56\xba\xfd\xfb\x79\x1e\x1d\xc6\xb6\x99\xbb\x9c\x62\xd3\xe3\x20\xfd\x50\xc2\x05\x4c\x4a\x10\x92\x23\x08\xf4\xf0\xd4\x9c\x89\xf1\x0d\xbf\xe2\x39\x4b\x39\x1d\x4b\x35\x3b\xb2\x7f\x1d\xd9\xe1\xdb\x25\x19\x28\xbb\x8b\xcd\xa2\x07\x7f\x76\x4d\xac\x48\xea\x5e\x8b\x03\x07\xa1\x83\xb5\x9b\x36\x00\x92\x4f\xed\x0d\x59\x70\xad\x99\x0e\xdb\x4c\xd1\xba\x09\x45\x35\xc5\xd2\x65\x53\x8c\x09\xf9\xc0\xa1\xf5\x12\x20\x6f\x44\x52\xc2\x39\xc8\xc2\x97\xac\x74\xf8\x2e\x05\x5b\xeb\x9c\xd9\x2a\x68\xb0\x8c\xb0\xb8\xd5\x95\x2c\xa7\xb9\xeb\x6b\xf9\xfd\xee\x8d\xe1\x85\xce\x59\xa7\x94\x89\xce\xcf\x8c\xce\x88\x61\x59\x16\xcc\x9a\xce\x30\x0d\xb5\x44\x70\x1e\x2b\x0d\x6a\x2b\x08\x56\x58\x07\x38\x9a\x53\xc9\x5c\xe3\x84\x3c\xcf\x96\x90\x4e\x94\x29\x1f\x3f\xa3\x4c\xec\xfa\xd6\x63\x52\xd9\x36\x84\x90\xb5\x5c\x85\xd5\x10\xa2\x9e\xc2\x4b\xb8\xc4\x2d\x44\xaa\x4b\xac\xd9\x4c\x64\xe8\x72\x91\x56\xc6\xf5\x70\x93\x6e\x62\x3a\xee\xe3\x2b\x3d\x0e\x5a\x91\xc3\x57\x00\x7c\x23\x97\xdc\x95\xbe\xe4\x23\x49\x5a\x4b\xd2\x6d\xa1\x31\x61\x27\x48\x3c\xd8\xbb\x76\xf1\x9c\x44\xad\x3c\x80\xa1\xdc\xd0\xa6\x4e\x94\xde\xe1\x53\x89\xd7\x0d\xf4\x73\x17\xa5\x57\xd7\xb3\xcb\xb5\x6e\xfa\x78\x64\xad\xc3\x8b\x55\x11\x5c\xd4\x8a\xb3\x37\x40\x34\x2f\xec\xd4\xf3\x51\x50\x14\x69\x08\xca\xec\x55\xd4\xed\xc1\xd9\x78\xa3\x38\x61\x5d\xdd\x19\x28\xc3\x65\xc4\xe9\xe3\x35\x05\xef\x36\x99\x7c\x5d\x50\xf5\xc3\xb0\x6a\xb6\xdd\x94\xc4\xe2\xe4\x14\xab\xe6\x94\x24\xbb\xfc\xf1\x9c\xcf\x2c\xd5\x3b\x43\xd3\xc6\x9a\xab\x53\x46\xb8\x51\x12\x4d\x0a\x61\xe8\x96\x6c\x3a\xe3\xc8\x60\x48\x7c\xc8\x86\xc4\xc1\xdc\xf6\x54\xcc\x6d\x11\x0f\xd8\x1d\xf1\xdc\x8c\x58\x74\x92\x57\xab\x53\xc4\xa4\xc2\x1d\x28\xe1\x46\xb3\x6c\x8a\xc9\x0f\x62\x19\xf7\xa9\x8d\x7a\x85\xb5\x29\xa6\xdb\xf9\xb8\x36\xdc\x59\xb7\xf3\xeb\x2d\x53\xfc\x1a\x62\x49\x4a\x91\x08\xd3\xf9\xa3\x0e\x04\x9b\x88\x3a\x3b\xb4\x21\x56\x36\x8b\x17\xa0\xc5\xa2\xd8\xca\x07\x76\x67\x5f\xdc\x0c\xf2\x8d\x75\x35\xd6\x15\xc4\xf8\x04\xd4\xe0\xae\x05\x61\x2b\xea\x6a\x43\x17\x79\x28\xa3\x00\x12\x30\x92\xa6\x90\xe1\x93\xac\xc6\xb4\x6d\x5e\x4d\x62\xde\x5c\x4d\x02\xec\x76\xd5\x3a\x12\x11\xe2\xa1\x1e\xb5\xa7\x42\x12\x50\x47\xa2\x5e\x46\xe2\x96\x1f\xee\x51\xab\xc1\x7f\x81\xe6\xb9\x92\xd7\x34\xc3\x4f\x8d\x22\x0d\xee\x18\x9e\xb0\x94\x48\x45\xde\x32\xc1\xf7\x53\xb6\x61\x5b\xad\x79\xb3\x8b\x50\x77\xec\x0e\xd2\xd4\xc3\x93\xa6\x1a\xdd\xb2\x5b\xdb\x0a\x36\x13\xd4\x6f\x63\x42\x18\xa4\xc0\xa7\x22\x05\x06\xa7\xeb\xc6\xa4\xec\xce\x1d\x9b\xb7\x17\x4a\x76\xec\xf8\xdc\x42\xd8\x6d\xd7\x8e\xd1\x18\x1e\xc9\x82\xf6\xcf\xc5\xa2\x30\xc0\xb4\xcb\xe4\xa4\x20\x02\x07\xbb\xcb\x18\x6b\x24\xc3\x65\xf2\x1c\x4e\xa4\xe4\x93\xe5\xf2\x2e\x1d\x47\x93\x84\x0a\x1f\x02\x2d\x9d\x2d\x0a\x0b\x26\x41\xfa\x94\x1b\x04\x69\xc9\x4e\x2c\x9d\x54\x3a\xf5\xda\x09\x93\x70\x75\x16\x32\xc5\xda\xb7\x93\x25\xa4\x10\xf7\x89\xfe\x61\x5f\x8c\x5a\x41\xdc\x52\x70\x3f\x6d\x7e\x8d\xb4\x13\xc4\x35\x77\x86\xd4\x69\x5a\x3b\x55\xab\x13\xbf\xda\xa9\xbc\xb3\xab\x5e\x2f\xa2\x43\x9e\xb4\x66\xca\x12\x29\xcc\xa8\x1e\x9f\x88\xa9\x44\x4e\x35\xa5\xae\x5b\x98\x13\xb4\x5a\xc4\x09\x59\x69\x9e\x51\xbd\xf4\x80\xff\x5d\xae\xa9\xbf\xd9\x41\xfb\x5b\x67\x0b\x4b\x6a\x87\xff\xc6\x1c\x45\xad\x98\x8f\x9a\xb6\xf9\x57\xaa\xd9\x1f\x7f\x7f\xc8\x44\x22\x53\x96\x92\xd3\x7f\xbc\x39\xff\xe6\xd5\x4b\xf2\xe6\xfc\x0c\x4c\xaf\x6d\x8e\x9f\xc9\x72\x1b\x89\x52\xf3\x99\x60\xea\x63\x77\xf9\xdf\xb3\xd0\x2d\x0e\x5f\xa9\x8b\xb4\x3e\x83\x00\xba\x87\x65\x78\x73\xb0\xd4\x38\xa6\x37\xd8\x85\xbe\x26\x9f\x75\x22\x73\x76\x38\x97\xda\xd8\x87\x96\xdb\xd8\xff\x7e\x86\xd4\x3d\xb6\xc8\xcd\x72\x14\x42\x1e\x20\x25\x0f\x7c\x3f\x2c\x7d\x7d\x29\xc8\x2b\x18\xc4\xcd\x33\xed\xba\x09\x65\xcc\x78\x36\x18\x51\x29\x9f\xcc\x48\x35\x2c\x34\xbd\x14\x76\x3b\x97\x07\xd5\xac\x1e\xfb\xd7\xa1\x65\x12\xc0\x73\x0f\x71\x9a\x43\x37\xeb\xe5\xc1\xf8\x52\x90\xef\x9a\xbe\x07\x8d\xb3\xc5\x6c\xbb\x0f\x66\xcc\x1c\xba\x09\xf0\x13\xdf\x8f\xc9\xcf\x96\x36\xdd\x70\xbd\x32\xcd\xca\x0c\x19\x9b\xd1\x64\x79\x58\x60\xa5\x37\x98\xe0\x2d\xd7\xc8\x9f\xbd\x61\x56\x15\xda\xa0\x97\x16\x0e\x49\xfb\x3c\x10\x62\xef\x89\x9c\x92\x09\x15\xe9\x18\x6a\x0c\x58\x5a\x89\xa9\xc1\x50\x33\xbb\x4c\x6a\xc4\x6a\xd8\x9f\x21\xe1\xbc\xc4\x8e\xcf\x5b\x38\xa0\x0b\xde\x25\x3f\x7d\x3a\x79\xbb\x7f\xba\xb3\x76\x89\xc0\x3f\x3a\x56\x09\xc1\x2b\x2c\x75\xbc\xa6\xac\x32\x4f\x91\xd3\x4c\x09\xcc\x02\x7e\x50\xf6\xc5\x79\xea\xae\xd8\x32\x60\x71\xe8\xf7\x0a\xbb\x28\x45\x2e\x23\x65\xa6\xc7\x9c\x99\x29\xf8\xfa\xe7\x66\x91\x1d\xa9\x69\xf2\x87\xef\xfe\xfc\xf2\x1b\x8d\xe1\xa7\x87\xbf\x1f\x7f\x37\x7e\x35\xfe\x1e\x71\x6a\x8b\x37\x5f\x7d\x77\xd7\x44\xce\x1e\x52\x8f\x72\xe2\x27\x77\x7e\xec\x3d\x45\x3e\x55\x55\x1d\xf6\xac\xc0\xae\xfa\x83\x5b\x43\xba\xca\x29\xba\x40\x3b\x0d\x02\x14\x24\x94\x39\x7d\x7f\x54\xf7\xd6\x03\x7e\x42\x8c\x13\x3c\xe1\x5a\x17\x2c\xad\x98\x22\xe7\x6c\x4d\x3a\xf2\x76\x0c\xa7\x77\x62\x67\xb0\x71\xc1\x0e\x32\x5e\x36\xf4\x70\x9b\x1b\x11\xdf\x73\x3d\xd8\x3a\x00\x29\x04\xa7\xd9\xae\x3c\xd3\x5b\x5a\xe5\x36\xbe\x3f\x2b\xb8\xd9\x17\xd9\xa4\x54\x29\x17\x68\x0a\xb6\x9a\x0e\xa3\x7a\x5d\x3f\x18\x78\x1e\x2c\x1b\x94\x64\xf0\xb7\xcb\x6e\x1d\xc2\xdb\x1f\xb4\x1d\x65\xb0\x47\x3c\x15\x7b\x44\xcf\xc8\x84\xc7\x17\x56\xd0\x48\x8e\xb6\x8b\x2f\x80\x57\x1f\x70\x24\xc1\x2e\x6d\x3e\x31\xd4\xd6\xd9\x7c\x90\xba\xb7\xdb\x76\x36\x31\xeb\x34\x9d\x54\x47\x9a\x54\x18\x83\x24\xc6\xc7\x89\x21\x4f\x71\xc5\x87\x06\x1e\xf2\xa0\x79\x48\x9f\x14\xa9\x13\x9f\x22\x55\x1e\xb1\x07\x74\xfd\x8c\x5b\xe7\xdc\x9a\x58\x0c\x16\xfb\x81\x43\x0e\x69\x52\xf8\xfb\x5d\x73\x96\xdd\x95\x4e\x6e\x97\x03\x3a\xb8\x0b\x84\x9b\xe2\xf5\xac\x0b\x05\xd4\x89\x04\x7d\xe2\x9c\x01\xf8\x3b\x8e\x76\xf8\xc0\x13\x25\x3b\x43\x1e\xa2\x6f\xe3\x3e\xaa\x45\x5e\x7c\x00\x37\xea\x5d\x58\xee\x05\x31\xa5\x25\x90\x67\x2e\xb3\x94\x29\x6c\x76\x6a\xba\xb2\xb8\xaa\x83\xab\x9d\xe1\xb8\xff\xd5\xc9\x57\x38\xd6\xc5\x90\xc7\xab\xda\xc2\x8a\x06\xef\xbd\x75\x85\x4d\xfa\xa5\x99\x34\xbd\x82\x00\x0b\x05\xab\x21\x41\x27\xa1\x22\xe5\x29\x34\x33\x84\x5c\x12\x07\x39\xe1\x0a\xde\xdc\x50\x0e\x05\xde\xa6\xd2\x92\x69\x07\x4b\xc2\x4d\x99\x77\xb1\x60\x54\x17\x8a\x11\x3a\xb3\xa0\x70\xe1\xd7\x72\x8a\x91\x28\x58\x27\x8a\xa5\xe4\x8c\x09\x76\x63\x0f\x6d\xe7\x79\x15\xb0\xde\xb2\xb9\x4b\x2f\xb8\x44\xc3\x43\xc7\xbd\x90\x74\x62\xa2\x87\x70\x7a\x08\x11\x9f\x46\x82\xe7\xba\xfb\x7a\x66\xca\x43\xe8\xce\xaf\x54\xf8\xf2\xba\x0b\x15\xa3\x33\x02\x64\x4e\x75\x1c\x6e\x84\x15\xa2\x1d\x86\xef\xdc\xf0\x82\x96\xa1\xc1\xfa\xf2\x74\x25\xe7\x41\xb6\x7c\x2a\xb2\xe5\xd7\x62\x7d\x89\x68\xd2\x60\x82\xb9\x2b\x13\xcc\xc6\xe1\x35\xad\x67\x36\x18\x63\x9e\x3a\x4b\x79\xc0\xc6\x98\x58\x9e\x19\x2c\x32\x03\xd7\x1c\x2c\x32\xe4\x01\x5a\x64\x76\xc7\x6c\x06\xdb\xcc\x60\x9b\x19\x6c\x33\x83\x6d\xe6\x89\xd8\x66\xb0\x9e\xc4\xf1\x3f\xcf\xdf\xd9\xaf\xf0\xe4\xaf\x99\x4c\xae\xce\x8d\x54\xec\x17\x99\x15\x0b\x76\x0e\x42\xc4\x1a\x82\x17\x55\xe9\xa6\xe4\xd4\xd2\x5c\x6d\xec\x56\xde\x72\x7d\x55\x0a\x21\x5c\x90\xe3\x7f\x9e\x8f\x2f\xc5\xa5\x38\x86\x7f\x92\x77\x7f\x3d\x27\xa9\x1d\x03\xed\xef\xd8\x17\x0e\x4d\xf0\xb0\xad\x9c\x2c\x84\xef\x6c\x46\xfd\xfd\x67\x0a\x3b\x0c\x95\xef\xd0\x4c\x43\x1d\x6f\x17\x36\xab\xe9\x82\xc1\xcc\xbf\x49\xc1\x88\xab\x23\xe1\x62\x49\xc7\xa4\xfe\xd5\xc4\xca\xd8\x22\x5b\x62\xfc\x7a\x28\xa5\xa3\x18\x4d\x8f\x6e\x14\x37\x8c\x48\x91\xb0\x71\x78\xe9\x1a\xa0\xa1\x89\x2e\xf2\x5c\x2a\x43\xe4\x8d\x60\x4a\xcf\x79\x4e\x16\x54\xd0\x19\x5b\xd8\x3d\x5b\x21\xfb\xfc\xdd\x7b\x2e\x8a\x2f\xd0\x39\x70\xc2\x32\x2e\x66\x3d\x68\xfd\x54\x5f\x74\xe7\xab\xfd\xc8\x33\xe6\xfb\x09\xba\x36\xc3\xa0\x57\xc0\xca\x90\xce\x2c\x65\x41\x6e\xa8\x00\x62\xb2\xc0\xee\x3a\x17\x3c\x7f\x4d\xde\x09\xa0\x1e\xa1\x45\xdd\xb4\x36\x15\x0f\x1b\x2b\x2b\xa9\xcf\xa5\x25\x2d\x58\xf7\x5c\xcc\x5c\x5f\x9e\x31\x79\xf7\x85\x2e\xf2\x8c\xe9\xd7\xe4\xf2\x80\x7d\x31\xbf\xbf\x3c\x18\x91\xcb\x83\x2f\x53\x8d\xff\x10\xc6\xfe\x6b\x4c\x4e\x16\x58\xa3\x27\x73\xc2\xa5\x0a\x65\xd7\xfd\x6b\x84\x4f\x49\x21\xa2\xaa\x3d\x1b\xf6\x17\xd0\x46\x2a\x3a\x63\x47\xee\x64\xbe\xa1\x37\x9a\x21\x0e\x4f\x2c\x0e\xdb\xc7\x5b\x04\xdd\xe5\x54\x99\x7a\xbe\x68\xd3\x61\x58\x54\x0c\x63\x3d\x0a\x76\x1c\xc5\xc9\x94\xc8\x05\x37\xc6\x07\x18\xba\x98\x6d\x20\x8e\x6e\x90\x05\xbe\x9b\x05\xa2\xbe\x23\x70\xff\x28\x95\x7f\x64\x05\xbe\x23\x9d\xd2\x57\x23\xf8\x8c\x6b\x24\x86\x9d\x82\xc2\x9a\xa8\x26\x97\x07\xaf\xec\x59\x9c\xf3\x05\xcf\xa8\xf2\x1d\x96\xdc\x24\xe5\x48\xcb\x92\xfc\x94\x76\x31\x97\x07\x2f\x2f\x0f\xc8\x73\xec\xb8\x04\x37\x25\x83\xee\x76\x30\x3f\x62\xf0\x12\x43\xd0\x5f\xec\x81\x40\xd3\xf4\x67\x91\xf5\xab\xc2\xb7\x24\x97\x07\x46\x15\xec\xf2\x20\xe2\x9e\x22\xc5\x5e\x36\x90\xff\x82\x93\x95\xab\xe6\x82\x20\x5d\xfb\x60\xa1\x0d\x70\xf7\x53\xac\x3d\x9f\xcb\x03\x28\xa8\x64\x47\xdd\x19\x9a\xae\xed\xf4\x86\xd3\x9d\xbc\xed\x0a\x1b\xc7\x9e\x7b\x27\x6f\x3d\xb5\xc8\x4b\x0a\x9d\x36\x50\x68\xf2\xfc\x78\x41\x7f\x93\x22\xa2\x79\x2f\xee\xf3\x66\xf6\x54\x4e\x02\x34\xba\xf4\x93\x4e\x46\x38\x05\xe6\xbf\x5c\xc3\xf0\xfc\x10\xe4\xe3\xa0\xae\x00\xc3\xf6\x3f\xbb\xba\x44\x50\xc2\xa4\xc8\x58\x1f\xd3\x92\x90\x29\x6b\xf8\x32\xe9\x69\x8f\xc0\xa5\x7f\x8c\x27\x59\x27\x89\x94\x85\x57\xec\x77\xdb\x17\x1e\xf2\x56\x72\xd9\x26\xd7\xe7\x32\xbd\xf5\xba\x4f\xa3\x39\xfa\x2d\x3b\x97\xe9\x9a\x55\x63\xf3\xac\x44\x1e\x66\x12\x22\xb3\xc1\xaa\x61\x5f\x89\xe5\x04\xbb\xf3\x11\x48\x0a\x23\xc2\x4c\x32\xb6\xd4\x52\x4b\x2b\x53\x43\x02\x5c\x2e\xd3\xe7\xfa\xc5\x8b\x35\xbb\x16\x86\xef\x64\xe7\xf1\x3c\x1b\xec\x5e\x18\x7e\xd8\x05\x02\x7a\x2d\x79\x4a\xf2\xc2\x75\x89\xdd\x0d\x18\x6e\x2d\x69\x1a\x03\x6d\x4b\x90\x0a\xaf\xbb\x66\x95\x81\x51\x61\x2d\xea\x19\x18\x75\x23\x50\x4c\xb4\x5b\xe9\xbe\x69\x29\xbb\xe6\x09\x3b\xa5\x66\xde\x41\x38\xdf\x86\x81\xf5\xca\x72\x38\x05\xc9\xed\xa3\x9b\x39\x73\x8d\x9e\xdd\x9a\xca\x76\xc1\xa1\xc5\xd2\xe6\x32\x48\x8f\x9c\x90\x8f\x74\x11\x04\xc0\x00\x07\x5c\xc3\x6e\x29\x2b\xac\x65\xd4\x08\xc0\x5b\xd3\xda\xdf\x0a\xc5\xac\x9a\xd0\x53\xd3\x08\xe3\xe3\x13\xa1\x82\xc0\xef\xe4\x2d\x35\x14\x95\x0e\x14\xa4\xa4\x28\xa5\x58\x2b\x13\x4c\xb8\x48\xdd\xa3\xb2\x17\x6e\x9f\xfa\xc0\xa0\xf8\xcd\x3e\x58\xf4\x5a\x7f\x26\x3f\xd9\x4f\xbd\xc1\xe1\x64\x21\x53\xf6\x9a\x7c\x84\x9b\x65\xc5\x10\x48\xca\x75\xff\xfc\xa7\xd5\x2f\xb6\x30\x50\x58\x86\xdd\x23\xff\xd0\x8a\xa6\x31\x7e\x40\x81\x36\x60\xf6\xee\xea\x4f\x32\x39\x21\x8e\x49\x6f\xb7\x8a\x4f\x67\x27\x3d\x16\xf1\xe9\xec\x64\x1f\x0b\xd8\x4a\x59\x2a\xa5\xf0\x0f\xae\xdd\x3a\x5d\xd1\x82\xfa\xab\x40\xe3\x5d\x2b\x3f\x7b\xf1\xb2\xbf\xfb\x92\xb3\xc4\x04\x07\x0f\x39\x9f\x53\xc5\xd2\xd7\x64\x51\x64\x86\xe7\x99\x3b\x07\x7b\x30\xda\xca\x85\xfe\x44\x08\x4d\xa0\xb8\x2c\x21\x6f\x59\x0a\xc9\x3b\xe9\x6b\xdf\x7e\x29\xbc\xd1\xfc\xc2\x07\xd0\x85\xd3\xd7\x84\xc2\x9d\x44\xd5\x38\x8d\x10\xe0\x39\xe8\xdc\x5c\x84\x47\x8e\x4c\xf2\x0c\x18\x19\x33\x2f\xc6\x5e\xec\x06\xe1\x5c\xc3\x92\xb7\xaa\x3b\xd3\x47\x8d\x58\xa9\x98\x4a\x9e\x97\x16\x80\x17\xe3\x52\x81\x00\x3a\x0f\x59\x60\xa8\x65\x54\xb4\x0b\xed\x1a\xb1\xd7\x94\x8b\x5d\x57\x5f\x0d\xd7\xbf\xe1\x32\xee\x84\x16\xdb\x3b\x53\x5a\x70\x36\xa1\xca\xf6\xcd\x46\xaa\x0c\x0f\xce\x99\x02\x96\xb9\x5b\xc2\xfc\xa8\x8e\x38\x0e\x58\x60\x89\x62\xa6\x07\x1d\x07\x83\xa9\xa3\xe3\xf8\x92\x33\x26\x7b\x83\x38\x82\xf8\xdc\x5d\xc2\x63\x77\x09\x81\xf4\x5b\xc0\xfe\x83\x2d\xb7\xc8\x72\x0f\xab\xd3\x39\x4d\xfa\x2e\x11\xc6\x7a\x7e\xb3\xe5\x5a\x2b\xe6\x10\x2f\xa0\x3a\x33\xde\xa9\xdc\x82\x06\x00\xed\xe8\x01\x67\x20\x8b\xa4\x76\xb3\x76\x20\x3a\x45\x07\xdd\xb8\xaa\x9d\xdd\xd9\xe1\xa6\x7e\x95\x37\xf5\x89\xa3\xf7\x5f\xb9\x48\xed\xc2\xda\x11\xda\x8d\x20\x16\xe3\x88\x14\x3e\x98\x07\xf4\x41\x01\x1a\xec\x0f\x60\xc3\x60\x68\x43\x1d\x41\x65\x79\x88\xa0\x98\xc8\x42\x44\x7a\xa3\x95\xf7\x68\x28\x28\xad\xc6\xe4\xad\xbd\x20\x20\xf9\x58\x3c\x7a\x35\xfe\xd3\x88\xe4\xe8\x8f\x29\x34\xe2\xdb\x04\xbf\xad\x89\x2e\x26\xc1\x86\xe6\x1b\x74\x72\xa1\x0d\xa3\x7d\xae\xc6\x10\x54\x34\xc4\xa9\x0e\x11\x37\xe4\x96\x1e\xd8\xc7\xde\xa3\xd2\x50\x35\x63\x2b\xc5\x8e\xb6\xee\x06\xb0\x0e\x06\x56\x2f\xc7\xcf\x05\x6a\x59\xf7\x56\x01\x9b\x77\x17\x5f\x57\x41\xb6\xd6\x12\xd8\x52\xe2\x12\xf7\xd6\xc5\x0d\x76\x18\x38\xd4\x1c\x25\xe4\xd9\x49\x7b\x8c\xd0\x46\xe1\x41\x08\xf9\x37\xe7\x27\x1b\x2b\x4c\x91\xc3\xdc\xeb\xcf\x70\x04\x5c\x07\xa5\xd8\xb2\x23\x41\xd8\x17\x47\x6d\xdf\x9c\x9f\x78\xfb\x62\xaa\xf8\x35\x53\xe4\xf9\x5f\x99\xa1\x64\xca\xa8\xc5\xb7\x17\x3d\x8c\x58\xa1\x94\xc9\xbb\x2f\x39\x15\xe9\x39\xf0\xee\x33\xc0\xaf\xed\x70\x2e\xcc\xd0\x03\xe7\xde\xb4\x7d\x1d\x49\xab\xf2\x93\x04\xa4\x43\x11\xca\xe1\xa7\x13\xa2\xc0\x00\xc3\x20\x66\xe4\x9a\x55\x4a\x21\x19\x49\x72\xaa\x03\xaf\xb2\xd0\x72\x60\x32\x32\x74\xf0\x0f\x8f\xea\x8b\x71\xf6\xe5\x84\x66\x59\xd4\x82\x46\x10\x9a\xe5\x73\xea\x0a\x3d\x61\x8f\x2b\xc0\x6e\x4d\x98\xa0\x13\xb0\xb5\xe3\xfb\x6f\xce\x4f\x7e\x71\xb1\x01\xee\x3c\xc8\x0c\x5a\x1d\x5c\x94\x85\xa2\x2c\x3b\x70\xcd\x82\x4a\xa6\x39\x61\xe8\x43\x25\x7c\x4a\x84\xf4\x9b\xe6\xda\x7f\x29\x05\x87\x64\x2b\x3c\x34\x59\x48\x74\xe9\x0b\x90\x7d\x70\xd0\x88\xd0\x2c\x73\xff\xc6\x02\x7e\x16\x34\xad\x71\x59\x25\x5e\x9c\x16\x93\x8c\xeb\xf9\x7d\x21\x46\xfd\xf3\xf7\x8b\x19\x6e\x35\x0e\x35\xec\x81\x95\xcf\x3e\x89\xbc\xf2\xd4\x22\x8e\x7e\x1c\xa7\x8d\x7b\xef\xd2\xc2\x10\x40\x3e\x60\x2b\xb6\x23\x07\xd0\x59\x21\x18\x9d\x83\x5c\x3b\xca\x34\x86\x62\x93\x18\x02\xf8\xf4\x2c\xba\x5b\xf8\x70\x64\xca\xee\xe5\x4e\x7d\x6c\xf8\xf0\x7d\xdc\xa6\x68\x1d\xd1\x3d\xb2\xbf\x3e\xe2\x1b\x64\x4f\xf5\xdc\xd0\x19\xbb\xfb\x33\xad\x7e\xf6\xbe\x4e\x14\x56\x51\x3b\xcf\xa6\xdf\x3e\x09\x1d\xfd\xfa\x88\x4e\xb8\xa7\xad\xca\xf7\xfe\x7b\x0d\x31\x89\xa8\x15\x46\xd0\x6c\x61\x25\x67\xbe\x00\x68\x87\xa9\x6b\xeb\x78\xa0\x63\x83\xca\xc9\x6a\xa1\xc6\x7e\xa5\x75\xfb\x16\x37\x5c\xf5\xd5\xbb\xcf\xd6\x83\x12\x25\x71\x77\x7d\x8b\x4a\xb7\x38\xc7\x4f\x54\xa4\x9d\x6d\x23\x7f\x89\x86\x7a\xd6\x55\x60\xe8\x53\x14\x4d\x47\x14\x33\x85\x12\x25\x37\x88\x04\xeb\x3c\x2b\x66\x5c\xfc\xff\xff\xef\xff\xa7\xc9\x1b\xa8\xa3\xfc\x4b\xd8\x01\xdc\x32\x7f\x47\xdc\x70\x29\x10\xad\xca\xd6\x7d\x0e\xc7\x37\xe5\x82\x3d\xb5\x28\xc7\xba\xdb\xa0\x73\x5b\x5b\x5b\x10\x62\x37\x0b\xf7\x75\xf6\x0e\x08\xb4\x09\xf9\x0d\xe5\xd1\x03\x7b\x1e\xad\xd3\x6a\x6a\xdb\x6a\x0f\xdb\xb8\x9d\xe4\x12\x13\x36\xab\x6a\xcd\x01\x6a\xba\x2a\xbf\xbc\x91\x42\x17\x99\x6b\x60\xbb\x94\x85\x22\x34\x5d\xf0\xb2\x21\x45\x22\x95\xb2\xd4\x46\x38\xbf\x84\x62\x33\xab\xf7\x29\x16\x42\x6a\x92\xac\xb0\x3f\xdc\xbd\x00\xd4\xed\x90\x9e\x42\x1b\xc9\x5c\xc9\x6b\x9e\xfa\xf0\x46\xa4\xb5\x48\xbb\xb8\x76\x64\xd1\xe3\x39\xd5\x5a\x26\x1c\x2c\xa0\x11\xf4\x6e\xe6\x3c\x99\xa3\xe9\x3d\x65\x86\xa9\x05\x17\xac\x12\x2a\x19\x0b\x60\x12\xdb\x56\xde\xb7\xf0\xf4\x5e\x26\x34\xdb\xc4\x44\xf2\x24\x25\xa8\xbb\x61\xb0\x25\x84\x76\xc7\x6a\xcf\xa3\x2a\xc2\xf6\x95\x43\x08\x21\x48\xa4\x98\xf2\x99\x4f\xb2\xf1\x77\xd4\xdf\xe5\x27\xc6\x5f\x7f\xa9\x7d\x1c\x0c\x47\x4c\x3b\xe4\x39\xf4\x49\x66\xa4\x24\x9f\x48\xe7\xca\x23\x58\x45\xb9\x92\xe0\x01\xad\xc3\x1f\x9f\x69\x92\xca\xa4\x58\x04\xbf\x01\x14\xc8\x0e\x4a\x94\xb3\xe9\xf7\x64\xe5\x9b\xb1\xb6\x5b\xb3\x30\x9a\x63\x18\x49\x15\xf0\x2b\xa2\x4a\x9a\x6a\x67\xcf\x59\xc8\x6b\xa6\xc9\xe9\xcf\xe7\x27\xff\x17\x49\xa2\xb7\xd1\x20\xef\xbb\xb7\x86\xf4\x93\x5e\x39\xe2\x69\x97\x47\xe1\x38\x4d\x59\x5a\xf9\xdc\x5d\x57\x9d\x4e\x95\xcc\x3b\x2b\xd8\x2f\xa0\xed\xd1\x9d\x2f\x73\x05\x65\x36\x45\x02\x96\xcf\x7f\x3c\xbf\x8d\x49\x96\x12\x3b\x07\x89\x78\xad\x73\x78\xdb\xfb\x94\x51\xed\x82\x40\x33\x3e\x65\x3e\x07\x0f\xbd\x8a\xf6\xb5\xa9\x0e\x79\x42\xa9\xc4\xa6\xd4\xeb\xd2\x85\xa4\xda\x2e\x5b\x68\x21\x05\x37\x52\x75\x25\xe1\x79\x51\xf4\x35\xf9\xe0\x5e\x40\x2e\x96\x58\xc5\x24\xf1\x02\x1b\x6c\xd7\xcf\xd8\xe4\x06\x71\xde\x53\xdf\x63\xc5\x47\xf5\x1f\x25\xb0\xe1\xa3\xb3\x77\xc7\x6f\x3f\xbc\x1b\x2f\xd2\x6f\xe6\xf2\xe6\xd0\xc8\xc3\x42\xb3\x43\x6e\xee\x1a\xab\xf3\xee\x90\xde\x52\x67\xfb\xa4\x31\xdb\xcb\x9e\xa4\x4f\xfe\x52\x52\x9a\x11\x51\x14\x02\x9f\x81\xc5\x41\xa2\x54\x91\x65\x08\x22\xa3\x18\x1b\xc5\x31\x2a\x47\x7b\x8b\x4a\x2b\x17\xba\xdf\x90\x88\x7d\x9d\xf6\x06\xc1\x15\xf6\x9e\xf5\x86\xc6\x79\x78\xc5\x0b\xf9\x10\x84\x6d\x24\xf4\x10\x00\xff\xac\xe5\x57\x9f\x34\x53\xd5\x93\x62\x26\x81\x0d\x1c\x41\x7d\x7c\x27\xaa\xec\x79\xf3\xdd\x41\x56\x77\x65\x3d\xaa\x03\xd0\x89\xb3\x2b\xc2\x2c\x2d\xcc\x9c\x09\xe3\x93\xd5\x1d\x98\x1a\x21\x0a\x52\xe4\x2e\xf1\xa7\x11\x4c\xf6\xb4\x36\xb9\xd3\x41\xf7\x53\x34\x95\x1a\x9a\x21\x80\xb6\x56\x59\x3a\x2a\x75\x77\x7d\xf8\x3d\x65\xa1\x40\xd9\x6f\x2d\x0d\x01\x23\x1c\xd8\xdf\xc0\xfe\x06\xf6\x37\xb0\xbf\x27\xc7\xfe\x36\xb6\xe9\x0c\x3c\xf0\x2b\xe4\x81\x5c\xa4\x4c\xdd\x4e\x19\x4c\x60\x0e\x6f\xd3\x8e\x93\xa5\x7f\xce\x99\xd0\x86\x26\x57\x63\x72\x4c\xde\x54\x86\x6d\x58\xd1\x22\x7e\xab\xa9\xa6\x85\x62\x33\x97\xcf\x5f\xa9\x68\x51\xf9\xe6\x83\x2a\x4c\xb1\x5b\xcf\xfc\x1d\x96\x9b\xa8\xa3\xff\x62\xa9\x7f\xcd\x0e\x11\x07\x0e\xf3\xb4\xc4\xff\xaf\x82\xf7\x6d\xb8\xfb\x1e\xec\xee\xee\x35\x1e\x88\xa7\xd5\x78\xed\x5a\x8d\xf5\x39\x55\x74\xc1\x0c\x53\x40\x2f\x53\x34\xc6\x0b\xe1\x42\xc9\xed\x45\x3f\x87\x8b\x7e\xab\x4a\x0c\xee\x96\xf3\x34\x7c\x03\x6b\x59\xb9\xba\x1d\xfe\xb1\x70\x24\xe7\x4e\xf0\xb3\x27\x45\xde\x59\x75\x05\x24\x59\x03\x1d\x1e\xe8\xf0\x40\x87\x1f\x2b\x1d\xbe\x85\xe8\x3d\x10\xe3\x07\x45\x8c\x21\xc1\xe4\xe4\xf4\x0d\x78\x52\xd7\x10\xe2\xea\xc0\x7a\x39\x8c\x8a\x23\x16\xe2\x7f\x70\x3c\x39\x39\x25\x13\x6a\xa1\xab\x99\x86\xbc\x25\x5f\xaf\xa4\x07\xb9\x33\x7c\xc1\x64\x61\xfa\x15\x61\xac\x0e\x8e\xba\xce\x3a\x47\x36\xfc\x1a\xd6\x75\x72\xea\x08\x9f\x5b\x95\x36\x3c\xb9\x5a\x42\x3d\xbe\x71\x14\xcc\xb5\x70\x14\xf3\xb2\x78\xf9\xf2\x7b\xf6\x12\xfe\xfb\xdd\x1f\xf1\xff\xf1\xc7\xe4\x2f\x7f\xfe\xe3\xef\x5f\xbe\x7c\x6e\x95\xc3\x57\x24\xa5\xcb\x17\x96\xb4\xb9\x0c\xca\x50\x24\xe8\x2f\x7f\x21\x97\x01\x82\x96\x42\x3a\x7a\x52\xc6\x5d\xbc\x7a\xf9\x67\x37\xcb\xf7\x64\x2e\x0b\xa5\x77\x54\x54\x6b\x05\x9f\x36\xc5\x0f\xb9\xc8\xa5\x60\x22\x6a\xd6\xd9\x8e\x23\xcd\x3d\x6a\x43\x07\x53\x57\xa0\xd3\xcf\xd8\xa7\x3f\xbc\x52\xb2\x4b\xf1\x0d\x0b\x23\x30\x9a\x24\x32\x65\xae\xbe\x66\xf9\x29\xa8\x9b\x16\x65\x00\xce\x19\xcd\xcc\x9c\x24\x73\x96\x5c\x45\xef\x6d\x11\xa5\xb2\x60\x5a\xd3\x59\x17\x53\xfe\x80\xa3\x1a\xa1\xb2\x7e\xad\xab\xed\x9e\xab\xab\xdf\x62\xc9\xba\xde\x43\xb7\x69\xc5\xd8\x68\xd7\xc7\x4e\xad\x59\xed\x2f\xd0\xad\xd9\x15\x97\xb0\x4f\x2f\x0f\x7e\x82\xf5\x2d\x2f\x0f\xac\x9c\x70\x01\x75\xd5\xac\x78\xf0\x23\x16\x4f\x1b\x11\x18\xf4\x29\xf4\xe5\xde\x7c\x07\xa6\x5b\x0c\xba\x70\xc5\x11\xfb\xad\xfc\x75\xbc\xea\xdd\x92\x6a\x78\x7f\x15\xfa\xb7\x26\xdc\x7e\x1f\xab\x1d\x91\x57\x2e\x48\x65\x24\x79\x8e\xa9\x0c\x95\x1f\xdf\x73\x6d\x5e\x40\xe1\x51\x1d\x07\xb1\x61\x2b\x6e\x44\x3e\x8b\x88\x43\x2e\xeb\x83\xce\x65\xed\xdd\x2b\xfa\xbd\x2b\x8d\x1f\x2e\x43\x79\x4d\x74\x28\x24\xbc\xab\x42\xf9\xad\x8c\xa4\xa7\xab\xa3\xf2\xa8\x92\x18\x98\x53\x93\xcc\x0f\x17\x4c\xcd\xd8\xe1\x15\x5b\x82\x18\x50\xbd\x6d\xcd\x6f\x68\xa3\xa8\x61\x33\x78\x01\xde\x1e\x52\x83\x87\xd4\xe0\x07\x97\x1a\xdc\x25\xba\x85\xdf\xf7\x95\x2c\x5b\x67\x31\x95\x41\xb7\x4e\x9a\x5d\x65\x40\x6b\x78\x58\x29\x8d\xd0\x2c\xab\x4a\x24\x3a\x8a\xcd\xf6\xd4\x8c\xc6\xfd\x3f\xea\xfc\x6f\x68\xf6\xf2\x18\x78\x59\x9f\x66\x2f\xef\xfb\x9e\x70\xeb\x8c\x5b\x71\xb0\xf3\x5a\xe3\xa5\xa1\xcf\xcb\x57\xcc\x5a\x1e\x72\x9f\x97\x18\x56\x1b\xeb\x2d\x77\xde\xea\xa5\x17\x13\xda\x65\xcf\x5d\x7f\xad\xc5\x94\xcf\x3e\xd0\x7c\xad\x0a\xe5\xc6\x38\x15\xa9\x9a\x77\x00\x85\x0d\x2d\x13\x82\xb2\x3f\x68\xaa\xd4\xc5\xa2\x57\x7b\x97\x81\xc3\xdc\x1b\x87\x99\x70\x41\xd5\xf2\x6d\x03\x39\xe8\x97\xc6\x51\x5a\xe4\x26\x4b\x53\x55\x3a\xb6\x4f\xf2\xf8\x6b\x58\x54\xb5\xe5\x0d\x2e\x96\x20\xd9\x78\x47\x93\x39\x84\xfb\x80\x7d\xd2\x62\x9b\x63\x84\x50\xae\x42\x14\x0b\xa6\x78\x42\x92\x39\x55\x34\x31\x4c\xe9\x11\x79\x76\xf8\x6c\x44\x9e\xfd\xc7\x33\x22\x15\x79\x36\x7e\x36\x26\xf1\x77\xa8\xf0\xdf\x22\x76\x27\x04\x93\x19\x93\x38\x7f\xc4\x92\x7c\xe7\x05\xfb\x74\xf1\xe3\xe1\x9f\x89\xa2\x62\xe6\x4c\xa5\x57\x6c\xe9\x72\x51\x20\x07\x2e\x9a\x19\x96\x67\x5f\x95\xd7\x4c\x65\x34\xc7\xac\x3a\x3b\x89\xb4\x08\xec\x26\x84\xa1\x90\xb0\x34\x42\xdc\xe5\x9a\x30\x01\xee\x93\x94\xa4\x85\xe7\x7d\xde\x0e\x91\x2b\x99\x30\xad\xc7\xe4\x93\x0e\x15\xad\x31\xdd\x09\xdc\x2e\x8e\x98\x91\x57\xe3\x57\x2f\xff\x77\x62\x49\x35\x20\x3b\xe0\xaa\xf7\xd6\x6d\x9e\x85\xda\xc4\x34\xf6\x9a\xec\xb3\x8a\x01\xab\x34\x67\x27\x88\xf0\x0b\x1a\xee\xe0\x64\x84\x14\x87\x78\xbc\x35\x3c\x80\xe9\x7d\xd1\xb3\xff\xc5\xde\xbb\x37\xb7\x91\x23\xfb\x82\xff\xef\xa7\xc0\xba\xcf\x0d\x4b\x1b\x24\x65\xf7\xc3\x3d\xe3\xf9\x4b\x2d\xc9\x6e\x6d\xdb\xb2\x8e\x24\x77\xc7\x89\xd1\xc4\x5c\xb0\x0a\x24\x71\x55\x04\x6a\x0a\x28\x49\xec\xb3\xe7\xbb\x6f\x20\x33\x81\x42\x15\x8b\x64\xf1\x21\xd9\xdd\xc3\xb8\x37\xe6\xb4\x45\x14\x1e\x09\x20\x91\xcf\x5f\x46\x1b\x0c\x74\x6f\x3d\x05\x2b\xf6\x1f\x5a\xd3\xfe\x37\xfb\x5b\xeb\x14\xac\xbf\x95\x72\x3a\x2d\x2d\x40\x72\x2f\xe7\xb8\xe7\xbe\x5d\x8f\xc9\x11\x16\x93\xd0\xcc\x16\x8e\xef\x09\x28\xa4\x42\xd7\x03\xb8\x7f\xb5\x70\xc8\xaf\x0a\xcf\x45\xd2\x94\x96\x08\xfb\x96\x24\x34\x2f\x09\xc0\x1d\x84\x1a\x34\x29\xf8\x43\x0f\x43\xb2\x66\x6d\x5c\x08\xc6\x84\xa3\xde\x68\xcf\xdc\x35\x55\xde\x7f\x41\xce\x05\x74\x69\x29\xb9\x18\xd1\x06\x40\x6c\xd0\xe9\x1b\x56\x7b\x96\x4f\xc4\x54\x14\x3c\x6b\xc5\xb3\xd9\xc0\xd9\xb8\x17\x75\xff\x2c\xa2\xee\xde\x8a\xe2\x7b\x5d\x4f\x80\xf5\xf2\xe5\xd3\x88\xad\x67\xea\x7e\x65\x14\xcd\x7c\x63\x66\x44\xe6\x74\x64\xc6\x23\x6e\x65\x35\xcb\x75\x5e\x66\x9c\xf2\x8f\x85\xba\x97\x85\x56\x10\xb4\x72\xcf\x0b\xe9\xf8\x03\x3e\x15\x50\xc3\xeb\x06\x5f\x25\x0b\x5e\x60\x72\x14\x11\xaa\x5c\xe8\xf3\xa5\x89\xde\x77\xff\x42\xd3\x5d\xf5\x2f\x41\x1f\xaf\x7b\xce\x65\x61\x18\x37\xed\xc3\x76\x29\xa0\xb2\x5e\xc5\x04\x0a\xfb\xb5\x6b\x57\xb6\x71\xaf\xd9\xbd\x14\x0f\x47\x0f\xba\xb8\x93\x6a\xdc\x77\x14\xe9\x93\xd1\xe1\x08\x90\x90\x8f\xbe\x81\xff\xb3\xfe\xb5\xf5\xf9\xda\x1d\x2b\x1f\x3d\x4c\x04\xc5\xea\xc7\xaf\x8e\x77\x5b\xa3\xa6\xd0\x39\x42\x64\xd5\x55\xe9\x7c\x24\x7f\x11\xb3\x6b\x38\x5e\x35\xe7\xed\xdc\x1a\xc2\x09\x74\x12\x0c\xb0\xe7\xe8\x30\x76\xd8\x6f\x34\xf9\xaf\xaa\x3f\xe0\x3a\xb7\x9a\xce\xfb\x26\x30\x04\xfb\x53\x85\xa7\x4a\x17\xcc\x3d\x91\x41\xdc\xdc\xc1\x01\x6b\xb7\x3c\xb8\x7d\x5d\x65\x77\xe8\x7c\x16\x57\x18\x96\x6b\xed\x3c\xbe\x03\x09\x18\x51\x3c\x52\x6c\x4d\x0e\xf4\xd8\xdb\x91\xff\x00\x5a\xfe\x5a\x45\xc3\x31\xab\xad\xb1\xd1\xbb\xb7\x23\x7b\x81\x60\x6f\x41\xde\x8b\xd5\x1d\x2d\xc8\x5f\x81\xe0\xfc\x95\x9b\x89\x63\x7e\xff\x34\x92\xf6\x85\x4e\x05\xfe\xa3\xbb\xc0\xdd\xfc\xa6\x51\xc8\xba\x0e\x0b\x54\x25\xa2\xc5\x52\x39\xc7\x7c\x55\x08\xbb\xa4\x3b\xea\x3d\x9e\x17\xb5\x98\xb5\xc5\x82\x12\xda\xbd\xb0\xcb\x5f\x56\x4a\x4d\xbf\x34\x9a\xb3\x54\x24\x19\x2f\x9c\xe8\x0f\xc8\x4f\x4e\x02\xa8\x4b\x3b\x89\x48\x63\xa3\x87\x2e\x0a\x61\x72\x88\xb8\xa4\xa7\xa5\xd6\xa5\xb7\x61\x19\x5b\x94\x70\x22\x1b\x98\x45\xfe\xa0\x31\x89\xf8\x6a\x09\x37\x0b\xf1\x66\x76\x21\xb9\x11\xe3\x0f\x5a\xaa\x9a\x17\xe7\x6a\x0b\x6c\x62\x2c\xed\x72\xbe\x5d\xea\xad\x84\xba\x2c\xad\x33\xaf\x55\x61\x79\xce\xe9\xfb\x17\xa4\x9b\xa8\x73\x55\x6f\x3d\xb7\x94\xe6\xef\x6b\x2c\x68\xa4\x8b\xa1\x4c\x53\x01\x15\x79\xe1\x8a\x38\xc1\xb6\x17\x03\x38\xa7\xd5\x4f\xe0\x56\xda\x60\xb9\xa5\x5c\xf5\xfe\x7e\x3e\x3f\x9d\x5b\xd6\xe7\xaa\x08\xeb\x17\x5e\x4a\x47\xfe\x5e\x1d\xca\xe6\xcd\xea\x2d\x61\x30\x3b\x13\xdf\x2f\x0b\xfd\x7f\x30\x4f\x7f\x29\x9c\x13\xcf\x1b\xa6\x0c\xa9\x20\xc1\x20\xc7\xcf\x43\x59\xc4\x6d\xec\x16\x43\xc1\x48\x1a\xa2\xbb\x32\xd7\xbb\x63\xd5\x90\x5a\xc3\x4a\xe3\x85\xab\xd8\xd2\x1d\xf5\x48\xf9\x43\xae\x35\xd6\x4e\xea\xb1\x52\x65\xc2\xd0\xbb\x00\x02\xa9\xc8\x30\x5f\x08\x4a\x76\xa2\x59\x26\x45\x13\x7a\xc0\xfa\x9a\xf2\x3c\x87\x02\x24\x7a\x84\x23\x01\xb8\x9c\x9d\x98\x01\xbb\xd0\x36\xd4\xfa\x46\xeb\x2f\x66\x37\x24\x3c\x0b\x89\x4f\x23\x39\x9e\xf2\x3c\x94\xad\xc4\xc7\xc5\x8d\xe0\xa3\x94\x7d\xba\xf0\xb4\xdb\x43\xd3\x49\xd8\xae\x65\xfe\xf4\x98\x20\x1f\x46\x64\x05\x6a\xa1\xd7\xb2\xf7\xa6\xda\x1d\xbf\x1d\xb0\xfb\x51\x0e\x07\x3c\xa1\x40\xeb\x87\x89\x36\x04\x0b\x49\x57\xd3\xbd\x66\xee\x3a\xd1\x89\xf0\x7f\x86\xd9\x80\x19\x3e\x9a\xab\xd7\x0f\x44\x8a\xd4\x5e\x32\x72\xf8\x0a\xf7\x03\xaf\x6c\xa9\xe6\xbe\x26\x51\x98\x4e\x16\x0c\x88\x06\x11\x69\xa2\x3e\xf0\xe1\x95\x86\x00\x1c\xd1\x7c\xd6\xf4\x36\xd4\x0a\x7b\x1b\x61\x4b\x22\x0d\xc6\xb7\xd3\xf1\x92\x54\x63\xa0\xb8\x13\x69\x40\x07\x1c\xb0\x4b\x37\xc9\xa0\xd7\x17\x22\xe3\x80\x5b\xe8\x75\x3f\x37\xac\xf7\x11\xba\x41\x5e\x0e\x06\x2f\x11\x78\x40\x17\xcc\x58\x5e\x10\x62\xa6\xfb\xfb\x8e\xd5\xa5\x5f\xc4\xec\x46\xc7\xa5\x46\xd9\x26\xea\xd2\xde\x8a\x33\x67\xc5\x31\x5f\xdc\x4e\xd8\xb5\x64\xd9\x42\xf6\xfe\x14\x4c\xfd\x2b\x64\xe5\xd5\xba\x9f\x36\xbf\x94\xb8\x7d\x87\x2a\xb7\x55\x3a\xdf\x14\x2a\x67\x49\xcc\xe8\x2b\x0d\x80\x22\x27\x80\x9d\x9c\x12\x01\x87\xa1\xa8\x5f\x9c\x82\x8a\xdc\x7e\x28\xec\x83\x10\x8a\xbd\x82\x49\xbf\xfa\xf1\xc7\x1f\xeb\xb0\x9d\xaf\xde\x7c\xff\xfd\x80\x9d\xca\x02\x8c\xc9\x92\xbc\x0f\xb4\x07\xc0\x7f\x7c\x74\x02\x1f\x8d\x90\x03\x43\x06\xab\x63\x9e\x98\x6c\x49\x12\xd5\x54\x8e\x27\x96\x72\x79\xdd\xc3\x97\xc9\x84\x58\x16\x16\xb9\xc6\xbb\xe5\x23\x1e\xa0\xaf\x6a\x57\xa7\x50\x20\x3b\x93\x77\x82\x8d\xcc\x7b\xa7\x88\x22\x3b\x47\x4e\x01\xf0\x99\xe4\x90\xc5\xce\x2a\x9a\x98\xb9\x68\x83\x0d\xf3\xb8\xd6\xb5\x68\xed\x1f\xd9\xfd\x23\xbb\x7f\x64\xff\xbd\x1f\x59\x84\x35\x58\xf6\xb0\xfa\x82\xce\x3c\xcf\x33\x8f\x76\x14\xf0\x10\xe6\x6b\x82\x15\xa5\xf2\xfc\x97\x77\xac\xfa\xc9\x8b\xf1\x2a\x5e\x75\x5c\x8c\x01\x6b\x38\x18\x8b\x84\xb2\xc5\x0c\x6c\xc9\x18\x5a\x94\xea\xe4\x4e\x14\x4c\x4e\xf9\x58\xbc\x34\xec\xe4\x23\xa8\xd5\x90\xb3\x2d\x47\x41\xbb\x89\xa1\xcd\x07\xec\x57\xf2\x1b\xc7\x58\xd4\xff\x71\xf0\xeb\xf1\xd5\x3f\x2f\x8e\x3f\x9e\x1d\xc2\xb3\x21\xa0\x74\x93\x48\xa3\x27\x3e\x2c\xfe\x65\xcd\x0d\x4d\x1c\xc3\x3b\xa3\xa3\xb0\x9e\x42\x18\x9d\xdd\x7b\xb6\x55\x19\xf0\xe8\x0a\x4b\x95\x97\xd6\x9b\xdf\x3d\x23\x2b\x55\x32\xe1\x6a\x2c\x28\x72\x2a\x9e\x96\x99\x29\xcb\x1f\xfd\x6b\x22\x4c\xc2\x73\x2f\x28\x70\x96\xea\xd2\x0d\xfe\x1f\xff\xd1\x63\x52\xbc\x65\xff\x11\x7d\x38\x60\x67\xd4\x36\x5a\x2f\xb2\x3e\x71\x2f\x0a\xe8\x8c\x56\xdb\x63\x85\x18\xf3\x22\x05\x46\xa5\x47\xb5\x13\x1c\x16\x08\x78\x19\xc6\x9d\x63\xa5\x6d\xab\xc9\xbe\xdb\x95\xb5\xdc\xdc\x99\x23\xa9\xdc\x91\xed\xa7\xdc\xf2\x7e\x74\xd4\x90\x29\x89\x7e\xa2\xa7\x53\xae\xd2\x3e\xa7\x83\xd0\x0f\xbb\x70\xf4\x0d\x01\x30\xf7\x79\x68\x25\x55\x9f\xf7\xcd\x44\x64\xd9\x73\xc3\xeb\xd1\x0c\x56\x1c\xe7\xb3\x70\x7a\x19\xf4\x05\x9a\x38\x13\x8f\x22\x29\xbd\xd0\x07\xf7\x07\x96\xd0\x7a\xc0\xcf\x2e\x6e\xae\xfe\xeb\xf2\xd3\xf9\xc5\xcd\xfe\x9c\xef\xcf\xf9\xf3\x9f\x73\xa1\xee\x3b\x26\xde\xb4\x07\x08\x41\xb4\x45\x90\x9c\x22\x7c\x9d\x79\xf2\xee\x56\x8a\x39\x53\xf7\xbf\xf2\xe2\x49\xf2\x4a\xd5\x5c\xe5\xe4\xcd\xf3\x4a\x85\xba\x7f\x57\xe8\x69\x47\x1a\x93\xe7\xbb\x16\x9c\xd5\x4e\xf7\x79\x82\x87\xc0\x5c\x12\x3e\x22\xee\x83\xb6\xbe\x69\xd0\xc7\x4e\xfe\x79\x7e\x7a\x76\x71\x73\xfe\xee\xfc\xec\x6a\xc0\x8e\xb3\x8c\x49\x05\xf1\xb6\x75\x21\xbc\x10\x04\x14\xc4\x21\x9a\x54\xdc\xbb\x29\x3c\x4c\x44\x63\x68\x10\xac\x9d\xc4\x0a\x1a\xd8\x6f\xee\x77\x14\xb8\xe9\xc2\x49\xc5\xa6\x65\x66\x65\x9e\x79\xb3\xa3\xe9\x55\x1a\x41\x5c\x77\x24\x84\x0c\x67\xdc\xd8\xca\x44\x99\x65\xcc\xf2\x3b\x10\xe9\x13\x91\x3a\x3e\x10\x42\x99\xfd\x5a\xb1\xd2\xcc\x99\xba\x0f\x7c\xa5\xc4\x2b\x89\xea\x48\x7b\x1f\xcf\x70\x44\xdd\xde\x93\xcd\x63\x9b\x5b\x0a\xaf\xc5\xaa\x62\x38\xd1\xc3\x02\xfa\xd8\xda\xa2\x76\x55\xf8\xe0\x08\x7a\x31\x0b\xea\x8b\x80\x49\x39\xcb\xf4\x03\x9b\xc8\xb1\x63\xb3\x99\xb8\x17\x99\x77\x5b\x46\xc6\x09\xab\x83\x51\x59\x17\x10\x18\x5e\xc8\xb4\x76\x72\x70\x18\xa9\x98\x93\xee\x33\xcd\x51\x6b\xc4\x42\x5a\x06\xb5\xf0\x53\x91\x67\x7a\x36\xa5\xda\xf5\x29\xbb\xb6\xdc\x8a\x51\x99\x5d\x8b\x85\x35\xde\x97\xc6\x88\xb8\x21\x2f\xcb\x2c\xbb\xd4\x99\x4c\x56\xb9\x47\xcf\x81\x9a\x79\x99\x65\x2c\x87\xf6\x03\xf6\x49\x81\x52\x73\x9c\x3d\xf0\x99\xe9\xb1\x0b\xf7\x16\xf5\xd8\xf9\xe8\x42\xdb\x4b\xaf\x73\xc6\x66\x0d\x6c\xe8\x5e\xf5\xb7\x14\x74\x63\xf9\xb8\xa6\x8c\x02\x48\x46\xdc\x01\x9a\x16\x1e\xa4\x69\x3d\xa4\x5b\x6f\xeb\x37\xd0\x93\x7b\x81\xf0\xdf\xeb\x13\x31\x93\x23\x91\xcc\x92\xf9\xb8\xfa\xee\xa0\x52\xa1\x87\x65\x91\x10\xc7\x49\x64\xa9\x01\xdf\x5a\x75\xb8\x08\xd3\x8c\x22\x9e\xe0\x72\x4b\xc5\xd0\x19\x6d\x04\xa5\x66\xd1\x39\x0b\xf3\x45\x26\x66\x5a\xef\xfe\x82\x95\xde\x0b\x25\x8c\xb9\x2c\xf4\x70\xf3\xd5\xe2\xd7\xcb\x56\x7a\x29\x0a\xa9\x53\xac\xe8\x32\xf4\x60\x26\x61\xf6\x38\x07\x30\x0e\xd2\xdf\x2a\x1e\x0d\xac\xd7\x8b\x8d\x82\xbe\x1f\x71\x99\xb5\xae\x72\xdd\xc3\xe3\xef\xa5\x39\xca\x35\xfe\x4f\x3f\x10\xf3\x9b\x30\xc5\x3e\x8c\x6a\x76\x62\x29\xa8\xd6\x5d\x59\x6b\xc0\xdc\x74\x7a\x71\xfd\xcf\x0f\xc7\x3f\x9d\x7d\xa0\x5c\x98\x88\x8d\x90\x8e\x8a\x4f\xdc\x84\xdf\xbb\x47\x8e\xaa\xc1\x81\x65\xea\x20\x7c\x7b\xb8\x9a\xed\x77\xb9\x00\xee\x61\xec\x9a\xb1\x0c\x6d\xdd\x79\x14\x8f\xb9\x36\xa2\x8a\xa2\x8a\x1e\xef\x33\xf7\x13\x06\x1f\x82\xad\x17\xa0\xe5\xc6\xf2\xde\x63\x5a\xe1\x59\xaf\xb2\x90\x5a\xa0\x82\x5c\x3b\x25\xac\xdb\x30\x8f\x9f\x06\x77\x27\x42\x3d\x74\xfa\x85\xe9\xb1\x61\x89\xc6\xe9\x42\x4e\x79\x21\x11\xb8\xcf\x77\xc6\x33\xd4\x61\x90\xf6\xb3\xe6\x94\x4e\x3f\x9d\x5d\xb3\x8b\x4f\x37\xee\x1d\xbd\x17\x1e\x26\x1e\x7e\x87\x65\x0d\x85\xfb\x02\x17\x9a\x0e\xd8\xb1\x9a\xe1\x8f\xc1\xdc\x06\xe6\x3a\x08\xb3\xd4\xaa\xe6\x75\xbc\x7d\xf1\x6a\x00\xff\xef\xf6\x85\x5b\x67\x01\xa6\x35\x65\xdc\x7b\x11\xaf\xc0\x9f\x7b\x9e\x24\xc2\x18\xe9\xe4\xfa\x40\x4f\x5a\xfd\xd3\x3f\xec\xe1\x1a\x5e\xea\xc2\x6e\x2f\x82\x3a\x9a\xf4\xa7\x3c\x77\xf2\xa7\xa9\x79\xe4\x19\xa3\x92\xcd\xd5\x68\x8d\xd4\xc3\xbc\xd0\x56\x27\x3a\x8b\x67\xf1\x8f\x15\x43\xf9\x79\x4d\x9b\x79\x0a\xab\x04\xe3\xc5\x33\xd9\x42\x42\x2e\x04\x4f\xe5\x97\x66\xb1\x06\x41\xdc\x58\x98\x4c\x3b\xaf\xc5\x22\x49\x70\xe0\xfc\x17\x3e\x14\xd2\x7c\xbd\x0c\xb8\x8a\xa8\xdd\x94\xb8\x3e\x40\x87\x2a\x2c\x80\x30\xb6\x94\xd6\x27\x7a\x9a\x97\x56\x30\xff\x61\x14\x79\xe4\x7d\x36\x4b\x75\xc5\x0d\x64\x9c\x2a\xd8\xec\x08\xa5\x04\xa7\x5d\xbb\x49\xf4\xc3\xfa\x23\x25\x7c\x21\x58\x66\x59\x48\x3b\x73\x7b\x2f\x1e\xed\x36\xd0\xc5\xb5\x7e\x96\xa6\x50\x51\xdb\xc8\x2d\x25\xe0\x31\x23\xc9\xc6\x1b\x62\xd7\xa6\x09\x0a\xac\x47\x7e\x4d\xb0\x78\xf1\x68\x8f\xd6\x32\x73\x78\xc2\x8a\xbe\x3b\x79\x15\xfd\xe6\x7a\x5d\x08\x3f\x57\xd8\x32\x7f\xea\xab\x7d\x1d\x0d\xc3\xa4\x4a\x41\xf3\x8b\xc4\xc6\x4b\x9d\xb2\x09\x37\xcc\x94\xf0\x6c\x8c\xca\x0c\x5e\x3d\x69\x25\xcf\xe4\xef\x54\x05\x31\x92\xc7\x95\x26\xef\x1e\x5e\x2b\xb2\xac\x91\x55\xaf\x54\x56\x66\xfe\x0c\x63\x05\xc7\x7a\xcf\x54\x53\x11\x9e\xd8\xc0\x0b\x7a\x61\x22\x73\xa2\x5b\x8f\xfd\x1f\x40\x20\x0e\x2c\xa4\x26\x74\xc2\xe7\x68\x57\x73\x23\xa2\x15\xcd\x83\x98\x92\x71\x90\xa5\x72\x84\xfe\x15\x1a\x32\xc2\x54\x25\x12\x0c\xc5\x58\x62\x7d\x3b\x40\x66\xbc\xd4\xe9\x4b\x53\xc9\xc5\x3d\xd4\xeb\xa5\x25\xe7\x29\x88\xd3\x9c\x65\x5a\x8d\x21\xd1\xd4\x8d\x05\xea\x19\x64\xb0\xea\x82\x3d\xf0\x62\xea\x1e\x66\x9e\x4c\x20\x59\x95\x2b\x9f\xb8\x6b\xac\xe0\xe9\xac\x6f\x9c\x9a\xe6\x61\x85\xb5\xaa\xa6\xdf\xbc\xe9\x21\x5f\x95\x0d\x85\xe5\x21\x05\x35\xca\x57\x75\xd3\xaf\xed\xb0\x6f\x33\xca\xf8\xf8\x4b\x30\x54\x63\x53\xb9\x2a\xe6\xf1\xb7\x60\x82\x8c\x79\x9d\xbf\xd4\x4e\x7d\x06\xeb\x04\x67\xc3\xd2\x6d\x1d\xd6\x5d\x74\xfd\xce\x99\x76\x1c\x07\xc0\x64\xdf\xf3\xba\x65\xd8\x08\xdb\x83\x17\x8b\x22\xf3\x17\x7c\x0e\xe7\x8d\xa3\x16\x4a\x1e\x6c\xa9\xd8\xd9\xa7\x77\x15\x34\xa9\xd3\xf2\x79\x66\x36\xca\xf9\x85\x51\x3f\xa9\x95\x91\xac\xbf\x45\x36\xd9\xb9\xb5\x85\xc4\x95\x4c\x53\xe6\x39\x2e\x26\x99\x70\xa5\x44\xc6\xf8\xc8\x3a\x39\xdf\xc2\x2d\x1e\x0a\xa1\xdc\xc9\xf2\x86\x9f\xe0\xd9\xb2\x96\x27\x13\x32\x41\x11\x31\x0c\xa4\x53\x47\x3d\x1a\x5b\x08\x3e\xf5\xd9\x89\x53\x2e\xb1\x2b\xc6\x93\x42\x1b\x53\x59\xaa\xb0\x33\x0f\x1a\x6b\x90\x43\xf8\xa5\x32\x8c\x39\xa8\xb2\xb5\xc3\x68\x34\xad\x9a\x6f\x0d\xae\x79\x2f\x54\x10\x09\x0c\x44\xb0\x91\x2c\x8c\xf5\x09\x14\x38\x22\xd9\x54\x5d\x7f\x21\xf0\x40\xd1\x4c\x0d\x4d\x55\xa5\x20\xff\xe6\xd6\xe0\x7d\xac\x3a\xa4\xae\x52\x69\x48\x05\x30\x3d\xc7\x00\x50\xfc\x46\x42\xfb\x99\x02\xa9\x53\x5f\x19\x13\x7a\xa7\x3f\x45\xdd\xc5\x36\xbe\xc0\xaf\xaa\x83\xe8\x2e\x60\x38\x3c\xbd\x9a\xa0\x4e\x49\xfb\x9e\x0b\xcf\x1d\xd3\xc8\x90\x5f\x88\x44\xa0\x6f\xbc\xfd\x54\x6e\x70\x28\xb1\x52\x31\x70\x1e\x82\x63\xbd\x5c\xa7\x5e\xd2\x25\x44\x9b\x04\xba\xf9\xd8\x10\xab\xa3\xbf\xc4\x6e\x95\x68\x38\x46\x20\xb1\x81\xcd\x3f\x14\xd2\x5a\x01\x24\xf7\xa5\x97\x42\x4c\x43\xdc\x47\x85\xd3\x3e\x60\x1e\x42\x36\xfa\x56\x2a\x2b\xc0\xb1\x83\xe0\xea\xc3\x42\x8a\x11\x1b\x49\xa7\x0b\x22\xca\x68\xcf\xbd\x41\x13\xb2\xd5\x72\x63\x44\x01\xd3\x71\xaf\x87\xe3\x95\x34\xad\x01\xfb\x8d\xe6\x65\x8b\x52\x25\x3c\xc2\x81\x57\x3a\x15\xee\x05\x1a\x43\x44\x0f\xd5\x84\xfa\xfe\xd5\x5f\xdf\x00\x42\x84\x41\x0b\xb3\xd5\x96\x67\x61\x8d\x99\x50\x63\x47\x29\xbc\x3b\x10\x50\x1e\x8c\x4d\x81\x00\x99\x9c\x4a\x02\x28\x78\xfd\xed\xdd\xb0\x6e\x1d\x3b\x4a\xc5\xfd\x51\x44\xbe\x7e\xa6\xc7\xbb\x51\xd1\x5b\x8e\x40\x27\x8b\x1f\x49\x0f\x6c\xa2\x1f\x30\xb0\xac\x65\x6f\x89\x5b\xb9\x87\xd6\x47\x78\x0d\xa0\x84\x1a\x2e\xda\xa3\x67\xd4\x62\xd4\x5a\x4f\xe4\x5c\x1a\x76\x8d\x6b\xd8\xd2\x84\x21\xb5\x62\x43\x6d\x27\x5e\xd0\x80\x7b\x4b\x7b\x3b\x60\xef\x78\x96\x0d\x79\x72\x77\xa3\x3f\xe8\xb1\xf9\xa4\xce\x20\x40\xa5\x36\x17\x30\xa9\x27\x93\x52\xdd\x35\x8c\x4b\x7a\xcc\x74\x69\xf3\xd2\x7a\xe9\xa3\x6d\xc1\x23\xaa\x41\x85\x0c\xcc\xc7\x43\x55\xbd\x88\x47\x19\x0c\xf8\x9c\xd0\x99\xf1\xc0\xc4\xfd\x9b\xf8\x2c\x7c\xfb\xea\x7b\xc4\x1e\x01\x97\xdc\x5f\x5e\xb1\xcc\x29\x5e\x3d\xbc\x61\x82\xea\xba\x9b\x29\xcf\x32\xa7\x22\xc4\x67\xc6\x11\x7a\x47\x67\xc4\xae\x3a\x0e\x9d\x9f\xf1\x9b\x9b\xff\x82\x37\x5c\x5a\x23\xb2\x51\x0f\xeb\x49\x90\xd2\x63\xd8\x4b\x60\x7a\x2f\xe9\xf2\xba\x37\x63\x37\x8f\x2f\xc6\x26\x9d\x0a\xa7\x8a\xae\xb2\x47\xd5\xda\x36\x33\x20\x87\x99\x4e\xee\x58\x4a\x3f\xe2\x34\x41\xc8\x24\xe6\x50\x69\x6b\xbb\x35\xa5\xfc\x1a\x4d\xea\x49\x9c\x79\xb8\x24\xe0\xfe\x3b\x32\x58\xdc\x47\xe5\x1c\x56\x90\xdc\x89\xfb\x3e\x8c\xd3\xd7\xe6\x58\xcd\xfd\x9f\xda\x7c\x15\xd5\xa3\x78\x12\x92\xc3\x32\x77\x49\x71\x0a\xfd\x3a\x95\x1d\xf0\xe1\x03\x45\xe9\x23\x96\x52\x40\xe9\xac\xc2\xd9\xa9\xc7\x1f\xce\x09\xa3\x2f\x4d\xb0\x4a\x86\xf0\x06\xe3\x5a\xe3\xe3\x1f\xc2\x4b\x83\x6e\x9c\xce\x0b\xdd\xe0\x59\xd9\x82\x49\xcd\x85\x84\x2d\xce\xd8\xd9\x45\x02\x0e\xce\xfa\xbc\xe1\x66\x9c\x73\x31\xc2\x3f\x87\x75\x8b\x2c\xfa\x26\x57\x06\x87\x61\x88\x5e\x87\x64\x37\xc7\x71\xbc\x94\xe5\xe4\x1e\xf0\xc0\x49\xc3\x00\x41\x7e\xc0\xc4\x60\x3c\x60\x7f\xbf\x7d\xe1\x16\x31\x4e\x0a\xa7\xdf\x4d\x66\xb9\x28\xdc\xd9\x7a\x7b\xff\x7a\xf0\x6a\xf0\x23\x22\xd0\x63\xa0\xcd\xa4\x1c\xba\x26\x63\xad\xc7\x99\xf8\x67\xe4\x0a\x9b\xff\xe8\x1f\xcf\x1d\x7b\x61\xe4\xef\xe2\x27\xf7\x00\x76\x40\xb6\x70\x6d\xbd\x87\x84\x48\xa2\x48\x2e\x5b\x12\x73\xfc\xe6\xfb\x8d\x6b\x47\x2c\xc9\x10\xdb\xdd\x81\x03\x3b\xf2\xd2\xcc\xda\xaa\x5d\x5c\x86\x84\x07\x4f\x07\x78\x17\x30\xca\x01\x95\xc0\x96\x87\x6a\xe1\x99\x4c\x16\xcc\xa3\xf5\x6c\x96\xd3\xa1\x28\xbc\x3f\x27\x72\xe7\x90\x1f\x23\x07\x83\xca\xf9\xa5\x77\x5e\xf8\x58\xf4\x38\x08\x5e\xa6\xf8\xb1\x82\xbe\x7a\xec\x15\xd5\x15\x61\x8f\xfe\x3f\xde\xfc\xf0\xc3\x77\x6f\x76\x1e\x45\x3e\xd1\xc6\x9e\x5f\xae\x94\x74\xb8\xc5\x5a\x50\xe7\x97\x20\x00\x48\x92\xf2\xc4\x23\x61\x44\xd0\xc2\x37\x90\xb3\x5c\xb7\x3b\xa0\xb1\xeb\x66\x3e\x82\x7c\x53\x2a\xbb\x8e\x7e\xd6\xc6\x5e\xd0\x51\xaa\xbb\xe4\xab\x7e\xa7\xee\xa9\x62\xb5\xb3\x38\x60\x1f\xb5\xb1\xb1\xb2\x43\xe5\x8f\x95\x70\xc2\xed\x44\x2e\xbd\x95\x1b\xed\x61\x07\x2f\xea\x32\xc2\x28\x76\x7e\x7c\x71\xfc\xcf\xeb\x5f\x4f\x20\xb8\x8e\x82\xe7\xc1\x43\x1a\x67\x59\xe8\x94\x9c\xab\x6e\xb8\x34\xba\x5d\x4b\xbc\xab\x03\x06\xee\x5b\x9f\xa7\x8e\x5b\xe7\x0e\x13\xd9\x2a\x21\x7a\xcf\x97\x05\x9b\x79\xc7\xc9\x26\xb1\x1b\xc1\xd9\xb5\x42\xea\xa2\x66\x84\xd3\x5a\x44\xb9\x28\x9f\x4f\x2f\x7b\xec\xe6\xe4\x12\x42\x2e\xae\x4f\x6e\x2e\xeb\x9a\xc5\xed\x8b\x9b\x93\xcb\xee\x55\x4a\x3a\x32\xcd\xa4\xcd\x5d\xb8\x3d\xf3\x84\x40\x98\x2e\xdc\x13\x1a\x12\x9a\xad\xdb\x49\xf2\x9b\x92\x85\x76\x14\x7b\x62\xa0\x74\x99\xc6\x08\x17\x69\x9d\xf6\xe9\xee\x10\x02\x81\x0c\xa3\x1c\x0c\x92\xa5\x94\x7f\x93\xa6\x73\xb7\xa7\xf2\xec\xba\x56\xd2\xb0\xfa\x74\x7e\xe3\xd2\x76\x4b\x54\xa2\x68\xc9\x8d\xbd\x07\xf5\x71\xaf\xa8\xb7\x65\xde\x84\x53\x61\xb9\xcc\x4c\x28\xc1\x43\x33\xa8\xe8\xb4\xdc\xe0\x20\xe6\xa2\x86\x37\x9c\xeb\x4d\xd5\xe1\x3a\xd3\xad\xe6\xb1\x6a\xc6\x0f\xb8\x09\x3b\x9a\x2e\x6d\xe9\x5a\x73\xa5\x19\xb4\x4e\x74\xee\x76\x6d\x75\x51\xae\xe6\x8e\xd1\xf2\xfb\x42\xed\x09\x26\x8a\xfe\x11\xae\x0c\x5f\x4b\xce\x20\xbb\xe9\xf1\xda\x0e\xc5\x25\x48\x32\x37\xb2\x19\xa4\xda\x94\x1a\xe5\x54\xd4\x6d\x98\x91\x4b\x80\x1b\x34\x08\x1d\x14\xa2\x7f\x48\xd3\x7b\x32\xd2\xdf\xb4\x5d\x8c\xe5\xd4\xaf\x3e\xc1\x0d\x88\xce\xf4\x86\x7b\x10\xda\xae\x2c\x15\x18\x2b\x91\xe7\xa7\x5e\xb5\xc3\x17\x9c\xbd\x44\xb5\xe2\xed\xd1\x11\xca\x12\xa1\xdb\x7f\xca\x14\x2b\xc7\xbd\x5c\xff\x5d\x13\x8f\xd2\x9e\xac\x4e\xc4\x3c\x7b\x94\xd6\x9b\x05\x43\xd0\x0b\x6c\x63\x6c\xb2\x6b\x86\x51\xed\x5a\x10\x71\xe7\xd4\x4c\xbe\xa6\xd3\x5c\x23\x41\xed\x1c\x47\xd3\x5e\xaf\x76\x1b\xa6\x13\xf8\x0c\x8a\x35\x69\xdc\xb1\x2a\xa9\x59\x89\x9b\x72\x00\x56\xfe\x43\x86\x8d\x37\xde\xf3\x4e\x75\xe2\xe4\xb8\x43\x22\x1c\x34\xfa\x82\x67\xef\x2b\x60\xa4\x79\x21\xee\xa5\x2e\x0d\xc5\x03\xb4\xad\x9a\x75\x60\xa8\xed\x92\x62\x60\x04\xbb\x15\x12\x7f\x9b\x7b\xe7\x97\x73\x5f\x6a\x8f\xac\xd7\x3f\xd1\x1b\xf2\xdd\x4d\xef\xdd\xc3\x64\x36\xef\x82\x74\x2a\xd6\x4c\x58\xff\x1e\x6f\x04\x5c\xb4\xfe\xbd\xdb\xd5\x34\x76\xfa\xaa\xae\x28\x03\x58\x6b\x59\x01\x91\xa5\x24\x7f\x85\x32\x4a\x65\x01\x51\x23\x26\xaa\x00\x59\x8b\xcd\xfa\x9a\x1e\xd6\x4d\xa3\xfd\x3b\x98\xd7\xd0\xa4\x36\xef\xf2\xa6\x0d\xde\x3a\xe4\x7e\xc3\x99\xaf\x24\xe9\x39\xb6\x9a\x63\x41\x2f\xc9\x70\xba\x01\xc9\x1c\x53\x6f\xaa\x96\x6c\x0b\xb5\x60\x0d\x7d\xa0\xb9\x84\xb9\xf7\x25\x14\x02\x5b\x10\xad\xdf\xc1\x48\xd2\xb0\xca\x6d\x1e\x54\xbe\x1b\x0f\x64\x21\x78\xba\xca\x07\x79\x1d\xea\x1b\x3f\xb4\xc6\xd0\x4c\xb8\x61\x39\x37\x90\x3b\x0a\x00\x9c\x14\xc3\x8a\xb1\x60\x9b\xb8\x15\x29\xd4\xe3\x04\x5c\x44\xab\x6f\x8f\x0a\x76\x3b\x2b\xa7\xc2\xb4\x4c\x0f\x42\x76\xa2\x80\x37\xe2\x3b\xd9\x8c\x2a\x46\x13\x97\xad\x3a\x4a\x05\x4f\x63\xfb\x1a\x18\x94\x60\x13\x3c\xf3\xa5\x2e\x21\x24\xb7\x0d\x01\x2b\xe1\x59\x42\xe0\x2b\x20\xb0\x34\x7a\x1c\xb0\x9f\xe0\xc4\x69\x23\xe2\x71\x78\x21\x98\x29\x11\x11\xd5\x6a\x36\xe6\xc5\xd0\x71\x86\x44\x67\x19\x06\xd4\x93\x5d\x17\x73\xd7\xc0\x3d\x34\x16\x96\x25\x3c\xcf\xb1\x34\xc3\x0f\x6c\x38\x63\xef\x4f\x76\x6e\xff\xf3\x32\xc5\x4e\x8f\x0a\x85\x67\xd2\x41\x61\xe7\x55\x44\x24\x60\xe2\x60\x54\xcf\x50\x24\x1a\x76\xb5\x28\x05\x05\x62\x99\x5a\xbc\xa5\xc1\x6a\x24\xa9\x28\x9c\x7a\x16\x02\x21\x07\xec\x4a\x18\x11\xd7\xd1\x6f\xcf\x1d\x8c\x8e\x85\x2e\x98\x1c\xf9\xd2\x2d\x2c\xd3\x46\x18\x92\x3b\xac\x98\xe6\xba\x80\x74\x85\x01\x3b\x37\x3e\x9e\x0d\xe6\x04\xdd\x2a\x3d\x37\x2b\x4a\x0e\xdc\x2c\xa8\xed\xab\x60\x80\xfe\x79\x6e\xe5\x7b\x1d\x65\xca\x26\x7e\x1f\x72\x9c\x45\x97\x7d\xee\xed\x6c\x79\x92\xb6\x15\x4e\x4f\xb9\x98\x6a\x75\x46\x81\xf3\xcb\xfc\x8d\xb5\x86\x95\x14\xd3\x56\x27\x9b\xdc\x3f\xf8\x49\x88\xca\xef\x20\xbf\x74\xf0\x4b\x5c\x56\xee\x04\xff\xd2\x8e\xe5\xbd\x68\x1b\x66\x9b\xdb\xde\x71\x43\x77\x62\x45\x3e\xd5\x0f\xea\x81\x17\xe9\xf1\xe5\x79\x27\xd8\xc5\xab\xca\xf9\x96\xd2\xa7\xec\xf8\xf2\x1c\xb6\x02\xed\xec\xd4\x8b\x53\x1b\x16\xe0\x31\xae\x86\x29\x4c\xab\x59\x3d\x33\x50\xa1\x47\x05\xaf\xc0\xdf\x23\x0a\x61\xc0\x04\xc4\x68\xec\x36\x12\x63\x6e\x8c\x77\x6e\x88\xa8\xb3\x6e\x3e\xe5\x6d\x15\x8b\xf6\x69\x2c\xb9\x97\x6d\xed\x63\xff\x6c\x03\xeb\x18\x31\xc2\xaa\x38\xca\x08\x6c\xdf\x27\x3b\x40\x92\xf1\xea\xbd\x84\x66\x57\x40\xdd\xcd\x58\x33\xd6\xb5\x79\xe7\xba\x09\x65\x2b\x96\xf1\x67\xca\x78\x49\xdf\xb2\xaa\x84\x45\x0d\x40\x2b\xd7\xe9\x5b\x06\x75\x9e\x40\x1a\x84\x35\x9b\x1e\x03\x24\x36\xd3\xc3\xf4\x43\xae\x52\x56\xc1\xf5\xa2\x88\x91\x63\x6e\xfd\x02\x41\x76\xba\x2d\x2c\x1b\x95\x4a\xcb\x44\xaf\xee\x1c\x5d\x80\xc3\xd6\x1e\x19\x43\x57\x30\x82\x8a\xab\x05\xc4\xfc\xf9\xe0\xd6\xf2\xd5\x41\xc2\xd5\x81\x80\xf8\x4d\x69\x18\xcd\x95\x00\xbe\x00\xc3\x2b\x46\x95\xf6\x91\xc3\x43\xe1\xb1\xf2\xc8\x1d\x49\xba\x03\x1f\x1a\x9d\x95\x56\x38\xe1\xa7\x15\x11\xac\xf2\x5e\x96\x76\xd4\xff\x0b\x13\x2a\xd1\xa9\x07\x5a\xc1\x08\x72\xc7\x87\x2a\xa4\xad\x78\x26\xa1\x2c\x5b\x03\x53\x6c\x73\xc8\xe7\x77\xdb\x5e\xc1\xab\xb8\xa3\x4e\x97\xb0\xba\x7a\xa1\x72\x41\x53\xe1\xa5\x3b\x18\x52\xbd\x30\xd2\xd4\x04\xf0\x64\xa8\x48\x70\x80\x7f\x1c\x24\x79\xd9\xa3\x06\x83\xa9\x98\xea\x62\xd6\x0b\x8d\xdc\x8f\xb5\xaf\xa8\x05\xc2\xeb\x54\x7a\x4b\xeb\x0d\xee\xf8\x82\xe7\x11\xf8\xda\x2e\x5e\xf0\x8e\xd8\x9a\x0b\xbe\xa8\x07\xd6\xd0\x9d\x8f\x58\xf4\xdc\x7b\x3f\x08\x6f\x23\xab\x1e\xea\x3d\x4e\xe5\x1e\xa7\x72\x6d\x19\x2b\x9d\x3f\x47\x7f\x5e\x29\xeb\x6c\x9a\xdb\xd9\xa9\x2c\x3a\xde\xd6\x48\xe2\xe6\x8a\x02\xef\x43\x2c\x2b\x88\xdc\x9c\xe2\x75\x1a\x3f\x3d\xed\x7d\x9c\x8a\x54\x96\xab\xf0\x8c\x20\x96\xcc\x91\x07\x40\x8d\xac\x2e\xf8\x58\x30\xfc\x32\xe4\x4e\xf0\xe4\x0e\x2f\x45\x14\xa0\x7b\x13\x49\xf7\xd2\xb0\xdb\x17\xb7\x2f\x7c\xd0\xad\xe0\x2a\x5c\x67\x9f\xad\x12\x05\xea\x62\xe7\xd1\x65\xf6\x24\x23\x9c\xb2\x03\x6a\x78\xe8\x9e\xd9\x8f\xc0\xd1\xd7\xb6\xea\xd2\x42\x8e\x88\xc0\xdf\xc0\x00\xa9\xdc\xc8\xdb\xf6\xbb\xf8\xe0\xde\x9f\xad\xfd\x58\x03\xff\xe2\x0d\xfe\xb3\xe4\xca\x4a\x3b\x5b\xee\xcb\x82\xf4\x1d\x8e\x81\xe8\x7a\xc4\x32\x9d\x40\x02\x11\xee\x50\xc8\xd1\x46\xf7\x80\x34\xcc\x9f\xd9\xa0\xc2\x85\x58\x54\x78\x3e\xe1\x36\x67\x46\x7b\x50\x49\x80\x63\xd0\x05\xc3\x27\x33\x6c\xca\x0d\x20\xb7\x3c\xca\x69\x39\x65\xa5\xcf\x66\xa9\xb5\xa9\x06\x7a\xf0\x99\x35\x00\xf7\x22\x15\x7c\x54\x67\xcc\x90\x0f\xea\x29\x18\xa1\x84\x00\x42\x85\xe7\x81\xa6\x04\x89\x88\x46\x21\x69\x00\xaa\xe5\xd6\x92\x94\x02\xbc\x65\xf3\xec\x29\x99\xd5\x8f\x9e\xcf\x25\x0e\x0b\x2f\x95\x37\x30\x35\x0f\x52\xfb\x39\x2a\x8d\x28\xfa\xe3\x52\xa6\x2d\x27\x68\x87\x5c\x86\x4c\x12\xc7\x18\x86\xba\x84\xc1\x34\x5a\x52\xa0\x45\x99\x67\xa4\xa3\xa7\x14\xed\x6d\xbc\x6d\x25\x0a\x6e\x5d\xcd\x27\x26\xda\xd8\x4e\xe6\x78\x01\x41\x98\x95\xc4\x0c\xb5\x80\xc9\x34\xb4\xbe\xd7\x24\xef\x30\xde\xf9\xe5\xdc\x48\x03\xf6\x91\x40\x79\x87\x82\x65\x5a\xe7\xc0\x9e\x0e\x5e\x7f\xfb\x23\x82\x92\x1c\xfd\xe5\xd0\x3d\xb6\xea\xae\x8f\x37\xe6\xe0\xf5\x9b\xbf\x0e\xbe\xfd\xe1\x7b\xf8\xed\xf5\x9b\x43\x30\x5d\x46\xbf\x43\x1a\x69\x02\x11\x36\x07\xdf\x7e\xfb\x3d\x75\xf2\xed\xf7\x87\x03\x76\x7e\x79\xff\xa6\xba\x37\x90\xc6\xe9\x24\x84\x12\xc5\x74\x4c\x4d\x0f\xc2\xa5\xbb\x28\xee\xc4\xe6\x19\xb7\xee\x95\x36\x03\x76\x9c\x19\xdd\x63\x89\x28\x40\x53\xa8\xce\x19\x24\xa3\x43\xf5\x7c\x43\x72\x81\xfb\xad\x9f\x17\xfa\x71\xd6\x0b\x22\x09\x8c\x0e\x26\xc0\x4d\x8a\xd6\xe8\x54\x5c\xac\xde\xd3\x4a\x10\xbb\x70\x42\x87\x3b\x09\xa1\x7a\x77\x45\xf0\xb6\x74\xf6\x54\xa0\xb7\x27\x86\xd5\x40\x82\x82\x79\x48\xd5\x0c\x3e\x9d\xa7\x8d\xd0\xf0\xdb\x5b\x0d\xae\x3c\x0c\xe5\x0a\x8b\x81\xc7\xcb\xb4\xda\xd7\x56\xc3\x34\x7d\x6f\xef\xa8\xac\x86\x6b\x6b\x0e\x32\xdf\x5a\x6f\xf0\xd7\x7e\x45\xec\x7d\xdc\x6c\x09\x6b\x08\x86\x57\x88\xb3\xed\x52\x1e\x31\xbf\xec\x16\xc5\xeb\x6e\x6a\x8c\x55\x9c\xc7\x51\xbd\x88\xae\x00\xa1\xbd\x11\x46\xdd\x48\x67\x99\x7e\x00\x97\x01\x56\x25\xfe\xa5\xba\x1d\x20\xe2\x10\x16\xe9\x80\x7d\x56\xfd\xbc\x10\x23\xf9\x28\xc8\x32\x03\x17\xc4\xc9\x5b\xc5\x3d\xbd\x7f\xe7\xc7\x17\xc7\x55\x4f\x1e\xee\x05\x1b\x1f\x70\xc3\x72\x51\xb0\xab\x77\x27\xfd\x37\xdf\x7d\xf7\x03\xbc\x3a\xc4\xf9\x1f\x1e\x1e\x06\x92\x2b\x3e\xd0\xc5\xf8\x88\x1b\x23\xc7\x80\xdd\x68\x8e\xa8\x8b\x3e\x74\x71\x38\x60\x17\x5a\xf5\x43\xff\x7e\x75\xa1\x84\xa3\x93\x73\x1a\x53\xf4\xf9\xbd\xd3\x99\xbb\xea\x5c\xcd\x06\x89\x9e\x1e\x4d\x67\xfd\xa4\x34\x56\x4f\xfb\xbe\x8f\x01\x7b\x17\x17\x0e\xf7\x48\x0a\xa0\x59\x5c\xe3\x24\x8e\xab\x6d\xe8\x52\xf4\x7b\xcb\xca\x5b\xe0\x23\x8c\x19\x3c\xee\x5c\x94\x21\x81\x31\xf6\x60\xf6\x70\x0d\x5f\x7a\xd0\x41\xef\x2e\xf2\x45\xc6\xdc\x15\xa2\x25\x5c\xd6\x02\xbb\x6b\x9e\x5c\xcf\x80\xd0\x26\x20\x47\x10\x82\x9c\xd3\x41\x5e\xee\x15\x5a\x05\xfa\xd5\x61\xa5\xf9\xbc\xb7\x60\xb7\x7e\x82\xf5\x23\xe2\xe9\xd5\x5b\x74\x85\x56\x47\xc7\x3b\xc2\xdd\x9c\x5c\xee\x38\x30\x3e\xdf\x85\x27\xc3\x33\xaa\xeb\x72\x68\x44\x17\x8e\x86\x0d\x91\xa7\x41\xa5\x41\x10\x0b\x51\xb0\x21\x65\x1e\x62\x9c\xa6\x53\xad\x00\xe5\xc1\x63\xb8\xa1\x8c\x18\x10\x96\xe9\xa7\x08\x00\x0a\x3d\xdf\x27\xbc\xb0\xc2\x48\x0e\x2c\x2b\x2d\x13\x68\x75\x1c\xfa\x7f\x64\x97\xd8\xd9\x3b\x5d\x30\xf1\xc8\xa7\x79\x26\x7a\xe8\x4f\x7a\x7b\xab\x18\xfb\x6f\xf7\x3f\xac\xfa\xe0\x2d\xfb\xfb\x7f\xdf\xbe\x90\xf9\xed\x8b\xb7\xec\xf6\xc5\xeb\x57\x03\xf7\xff\x07\xaf\x6f\x5f\xfc\x4f\x8f\xcd\xfd\xf0\xed\xe0\xdb\xdb\x17\xff\xf3\x8f\x1e\xf6\x01\x03\xbd\x05\x62\xb8\x3e\xdc\xcd\xc2\xc6\x1c\x53\xe4\xdc\xaa\xdc\x1f\xfe\xf2\xe6\xc7\x1f\xb0\xb7\xaa\xc9\xb0\xde\xe4\xbb\x57\x7f\xfd\x9f\x7f\xb8\x5e\xff\x07\xcb\xaf\xa0\x89\x01\xe2\xc2\x9a\x64\x20\xb6\x73\x2f\xc5\x03\xf8\x91\xdf\xe2\x64\xf8\x5b\xf6\x77\x16\xa6\xff\xd6\x8d\xd9\x63\x61\xd6\xf0\x6f\xe6\x27\x3e\xac\xb7\xfd\xee\xd5\x5f\xe3\xa6\xdf\xbd\xfa\x2b\xfb\x47\x87\xa7\xc6\x53\x70\x95\x5d\xe2\x32\xde\x7d\x10\xf9\xf5\x68\x44\xae\x73\xb0\xa6\x52\x26\x8c\xb7\xc4\x14\xc2\x97\x7b\xe0\x86\x64\x29\x77\x32\x4c\x2c\xb5\x54\x08\x01\xb1\x6f\x9c\x8f\x50\x3f\x02\x28\x9d\x21\xcf\xb8\x4a\x20\xe8\x40\xa5\x84\xdc\x81\x2a\xae\x95\x99\xfc\xbd\xc9\x8b\xb7\x47\xa3\xad\x2b\x06\x6b\xdb\x3f\x6a\x82\xa0\xbd\x72\xeb\x3e\xde\x3d\x89\x9d\x20\xec\x85\xd5\xca\xda\xda\xa0\x37\x1b\x8a\x84\x93\x25\x60\x56\x0f\x0b\xf1\xe1\xc9\x01\x92\xb8\x87\xbf\x17\x22\xc1\xae\x10\x4e\x09\x6c\xc9\x3e\x4e\x26\x99\x88\xe4\x0e\x98\xde\x82\xa6\x1e\x90\x09\x5b\x7e\xc5\x1b\xd3\x05\x97\x32\xf2\x66\x1b\xc6\xef\xb9\xcc\x40\x6f\xa7\x10\x1c\xbf\x1b\xf1\x96\x3d\xd1\x82\xd7\x41\x4f\xdc\xbd\x82\xdc\x45\x35\x26\xa5\xb8\x8a\xfe\xa9\x73\x3a\x60\x07\xd2\x31\x70\x84\x3b\x76\x12\x6b\x62\x4b\x9e\x79\x71\x71\xc0\xce\x90\xc1\x03\x0f\x74\xaa\x93\x63\xad\xd3\x99\xb9\x4f\x6e\x5f\x00\xaf\xc3\xc7\xc8\x31\x79\xe4\x7c\xc4\xfd\x77\xc3\xff\xc3\x0b\xb0\x33\xee\xef\x28\xbb\xce\x44\xbf\x1b\x7c\xb7\xf6\x7c\xfe\xfa\xdd\x8a\xd9\xfc\xf8\xa6\x36\x99\x2e\x4f\xc1\xbe\x28\xfb\x17\x2b\xca\xbe\x2f\x5e\xfe\x67\x29\x5e\x8e\x56\x90\x95\xe5\xcb\xaf\xbd\x4e\x8b\x7b\xf3\xd2\x54\x15\x71\x9f\x9a\x62\x2d\xa5\xcd\x63\xab\x3b\xf2\xda\x2e\x68\x0b\x28\xd3\xf2\x2c\x9b\x17\xef\x4b\xe5\x6f\x7a\x96\x31\xea\x72\x10\xc9\xf7\x4e\x78\xc9\x33\x9e\x78\x9c\x2f\x6a\xc2\x78\x92\x68\x4a\x29\xc2\xdb\x7e\x7e\x69\x50\x7e\x31\x13\x5e\x88\x01\xab\x2a\x34\x91\x41\x16\x34\x91\x00\x48\x07\x4f\x7b\x8f\x19\x8d\x7a\x34\x4a\x51\x68\xb5\x70\x12\x91\x63\x12\xf3\xbf\xb9\xf3\x7b\x50\x13\x96\x12\xd7\x06\x03\x62\x03\x66\x64\x65\x0f\x3f\xf4\xc0\x78\x1e\x26\x10\xde\x34\x9a\x0f\x82\x3b\xa7\xd2\xe4\x19\x9f\x21\xe8\x49\xd5\x87\x5f\xa6\xcf\x2c\x88\x10\x29\x51\xdd\xb9\xd0\xd1\xc2\xb2\x8c\xf1\x3c\x17\x1c\xc2\xac\x01\xd7\x2a\x22\xa0\x4a\xd9\x45\x53\xc0\xf4\x73\x31\x7c\x2a\x68\x2c\x77\xd3\xc9\xa6\x5f\xfb\x36\x12\xd5\x13\x3d\xcd\x0b\x69\x84\xe3\x2c\xf4\x22\x3f\x8d\x28\x43\xca\xe7\xce\x85\x99\xf0\xf7\xa7\xaa\xa5\x5f\x49\x43\xb5\x9f\xb7\xad\xa3\x1f\xba\x85\x12\xfd\x1d\x04\x2d\x00\x4b\xaf\xf9\x86\xc3\xc5\xeb\x64\x55\xdc\xbf\xef\x5f\xea\x7d\xef\xe2\xfa\xff\xb0\x78\x4f\x77\x7a\x0d\xb7\x53\x9e\xf6\x92\xca\x9f\x45\x52\x71\xe7\xad\xbb\x9c\x02\x1c\xe7\xd9\x64\x94\x98\x56\xeb\xfb\x7f\xe0\xa2\xac\x32\x99\x3e\xdf\xab\x01\xec\x7d\xc7\x2f\x47\x5c\x34\x69\xd9\xcb\x11\xb5\x8b\x43\xd8\x40\x4a\x08\x41\x82\xdc\xcb\x72\xa1\x60\xa7\xe9\x94\xd2\x88\x6d\xb7\xf1\x19\x86\x01\xcf\xd4\x3d\xad\x66\x69\x64\x46\xad\xa8\x28\x94\x55\xcb\x1c\xbf\x70\xcc\x60\x91\xed\x5f\x8c\xe4\xe3\xaa\x07\x4f\x55\x65\x9b\x30\xd8\x7e\x24\x1d\x9f\xd1\x2c\x2f\x44\x2e\x14\xb8\x5d\x7d\xc5\xe0\xb9\x02\xb8\xb1\x7f\xa5\x56\x34\x6c\x83\x90\x17\x91\x14\xdb\x39\x61\xaf\xa1\x87\xee\xd4\xc4\xf6\x8b\x49\xb9\xbd\x21\x09\x2a\xd0\x2d\x3d\xa2\xbf\xf2\xa2\x16\x5e\xa9\x5a\xcb\xb9\xc5\x05\x88\x79\x05\x94\xd3\x41\xf0\x59\xb3\xb6\x4e\xdb\xe0\x3b\xdc\x63\x78\x0c\x57\x4c\x67\xc3\x22\x96\x21\xed\xde\x57\x7c\xeb\x56\x16\x0f\xb1\xb2\xd5\x2c\x2a\xd7\xd1\xf2\xd9\xbf\x7b\x29\xcc\x3a\x04\x56\x77\xfc\xab\xe6\xd6\xb7\x55\x3a\x5c\xb3\xa0\x63\x87\xbb\x4d\x2c\xdf\x2b\x9a\x6d\x3b\xfa\xd2\xf8\x72\xe3\x91\x64\x44\xb5\x55\x51\x62\xa3\x2c\x7e\x08\xc0\xda\x34\xa9\x6e\xd5\x33\xdc\x8d\x81\x74\x79\xe9\x42\xb3\x7a\xac\xb6\xa9\x53\x02\x57\x86\x3a\x0a\x7e\xd4\x2d\x7d\x1f\x79\xfd\x2f\x62\xb6\x93\xe7\xee\x17\x31\x5b\x33\xa8\xdf\xbd\x3c\xf0\x54\x57\xef\xce\x22\xe8\x99\x67\xce\xfe\x59\x96\xf3\x43\x31\x5a\x91\x75\xcb\x1d\x8a\x5e\xfd\x9f\x90\xf1\x13\xfd\xcd\xa7\x05\x85\x3f\xd4\x92\x86\x4c\x2e\x92\x81\x0f\xb2\xa2\x7f\x12\xe3\x3a\x4e\x12\x5d\x2a\x4b\x3f\x00\x5a\xc3\x00\x61\x1d\xc3\x3f\x73\x9d\x36\xff\x65\x16\x10\xf2\x4f\x9e\xcb\x41\xff\x14\xf9\x44\x4c\x45\xc1\xb3\x3e\x05\xb8\xd6\xb3\x3c\x7a\xcd\x14\x8f\x7a\xda\xc7\xdc\xd7\x9d\x32\x40\xe6\x24\x9e\x2d\xaf\xd5\xb5\xef\x64\xd3\x3b\x85\xb3\x60\x32\x46\x29\x0d\x27\x73\x97\xd2\x90\x27\x57\xa7\x62\xf4\x8a\xcd\xb7\xf7\xbe\xb6\x5a\x49\x7a\x02\x1e\xe4\x29\x94\x3e\xa8\x92\xc0\x21\x20\x50\xe1\x43\xe6\x1e\x5f\xc8\x21\xd4\x50\xe1\xae\xe8\x63\x65\x1f\xa8\x5c\x9b\x58\x79\x2f\x1d\xd7\x0b\xd1\x53\xa9\x18\x96\xe3\x31\x64\x61\x84\x39\xc4\x11\xc1\xe4\x4d\x8e\x8e\x67\x01\x76\x9c\xb4\xcc\xdc\x40\xe3\x92\x17\x5c\x59\x21\x4c\xc8\xb7\xa0\xfa\xb2\x95\xc8\x40\x15\x19\x7d\xba\x3b\x54\xc2\x85\x12\xa8\x0f\x58\x1c\xd7\x4d\x16\x8c\x4b\x58\x4f\x4c\x17\x8d\xda\x1a\x6e\x61\xf3\x53\x63\x60\xc5\x35\xf4\x3d\x80\xa3\x26\x22\x60\x3e\xd0\x64\x09\x91\x5e\x6a\xd5\x0b\xb9\x95\x44\x43\x71\x2f\x13\x18\xa1\x75\xd9\xd3\x2a\xfe\x15\x89\x3d\xf4\x39\x05\xd9\x8c\xf9\x82\xa1\x55\x6d\x2a\xc7\x9a\x9c\x78\x33\xab\xd2\x0b\xe1\xab\x7b\xc9\xa3\x83\x16\x56\x11\x0d\x64\xca\xa1\x9f\x6d\x93\x82\x95\x49\x38\x1e\x87\x69\x27\x71\x41\xf7\x51\xb5\x20\xc5\x78\x96\x4f\x16\xd6\x0b\x9a\x3f\x5e\xa6\x5e\x36\xa8\x83\x51\xb1\x18\xaf\xb2\x6b\x1d\x53\x75\xef\x60\xe1\x13\xa1\x20\x7c\x6b\xb5\xf7\x93\x8f\xa7\xfb\x32\xef\xfb\x32\xef\xcf\x5f\xe6\x9d\x66\xb0\x0a\x60\x30\x9c\x5e\x06\x7d\x61\x29\xd0\x50\xf8\xac\x2a\x28\xee\x96\xd0\x7a\xc0\xcf\x2e\x6e\xae\xfe\xeb\xf2\xd3\xf9\xc5\xcd\xfe\x9c\xef\xcf\xf9\xf3\x9f\x73\xa1\xee\x3b\xbb\x22\xda\xec\x07\x60\x2c\xb2\x2d\xd5\xf5\x9f\xa1\x56\xfc\xaf\xbc\x78\x92\x72\x1c\x0d\x00\x98\xad\x2a\x71\x08\xb4\xba\x76\xa4\xb1\x97\xdf\xe3\x22\x47\xdd\xec\x36\x78\xed\xee\xc4\xac\x32\xf8\x54\xdc\x07\x25\x9d\x69\xbb\xd5\x8a\x1d\x67\x19\x93\x0a\x71\xe0\xa1\x83\xaa\xde\x22\xe5\xd4\x60\x89\x2c\xac\x5f\xdc\x0e\x49\xe4\x63\x07\xa9\x96\x1c\x8a\xd3\x74\xe1\xa4\xaa\x7c\xf2\xb4\xc0\x5e\xa4\x7e\x73\x63\x74\x82\xc2\x27\xf0\x84\x80\x93\x19\x80\x4c\xb2\x0c\xcb\x2b\xe6\x85\x48\x44\xea\xf8\x80\xe3\x85\x59\x29\xaa\xb5\x0e\x67\xa4\xc3\x07\xbe\x52\xe2\x95\x04\x9a\x2c\xe8\xe3\x19\x8e\x68\x64\x99\xdf\xe6\x96\x76\x41\xe5\x3b\x8d\x1e\x16\xc2\x5b\xfb\x42\x20\x7c\x97\x65\x96\x75\x2b\x1d\x06\x73\xcd\xcb\x2c\x63\x58\x7b\x75\xc0\x3e\x21\x42\xfa\x31\xa0\x55\xf5\xd8\x85\xe3\xf4\xbd\x5a\xad\xff\xba\xf5\x0d\x1b\xba\x37\xf3\x2d\x39\x8b\x2d\x56\xd8\x8b\x90\x39\x74\x51\xeb\x00\xf3\xbb\x1f\xa4\x69\x3d\x02\x5b\x13\xed\x1b\x2f\xfb\xf7\x37\x25\x62\xa8\xae\xb9\xb1\x12\xfc\x21\xf4\xb0\x4c\xf9\x0d\xad\xbc\xa8\xe1\x74\xa1\x07\xca\xe6\x69\xd1\xa7\x16\x19\x47\x9e\xad\xe4\x7f\x55\x5b\x76\x8b\xd9\xae\xeb\x01\x68\xd1\x2b\x17\xd7\xd9\x07\x6d\x0b\x32\x77\x3c\xb7\x25\x00\x44\x3e\xd5\x6a\xdc\xc8\xa5\xed\x41\x45\xdd\x1a\x98\x9e\x4a\x17\x2c\x65\xa3\xdc\x9b\x2e\x81\xcd\xeb\xd0\x73\xa7\xdc\x71\xa3\x9a\xf0\x0b\x8c\x73\xcf\x55\x10\x7d\x27\x07\xf0\x0b\x54\x17\xaf\xaa\x8a\x77\x9e\x7b\xbb\xd1\xa3\x34\x82\x99\x9c\x52\xff\x7c\x97\x19\x05\xd4\x51\x6d\xbf\xd4\xeb\xf6\xb9\x5e\x62\xe9\xfb\x62\x65\xc3\xa9\xed\x96\x3c\xef\x99\xea\x74\xef\xe6\xc4\xed\xcb\x2f\x37\x89\xb1\x2f\xbf\xbc\x2f\xbf\xfc\x55\x95\x5f\x86\x8c\xfb\xf0\x24\x76\xc0\x0c\x70\xdb\xeb\xee\x93\xad\xa5\x0a\xc7\x24\x80\xc9\x5f\xea\xf4\x3a\x17\x49\x04\x22\xd9\x26\xd0\xe0\xf0\x3e\x5f\xb3\xa5\x41\x50\x09\xcb\x70\x61\x83\x4f\xc4\xb0\x83\xf3\xcb\x93\x1e\xbb\x3c\x3f\xed\x31\x61\x93\xc3\x16\x54\xf4\x80\x97\x27\x2c\x1e\x90\x45\xa2\x15\x62\x88\xbb\x31\x1e\x26\xdc\x02\xb9\xa3\x81\x00\x09\x70\xc2\x2b\xc4\x15\xaa\xc0\x15\xe3\x64\xb6\xdd\x56\x10\xc6\x3c\xbc\x0f\x9e\x04\x34\x6d\xef\xa6\x4c\xf2\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\x76\x30\x81\xdf\x8b\xa5\x80\xf5\xf0\x3b\x95\x0c\x14\x08\xbe\x38\xaa\x7c\x0d\x46\x4f\xc5\x03\x80\xd4\x79\x22\x64\xa5\xb1\x9d\xe2\x7c\x79\x13\x9f\xbd\x6d\x74\x40\x5d\xc4\x96\x50\xe1\xcf\xf2\x3b\xa1\x8e\x08\xc4\x20\xaa\x68\x86\x77\xea\x2a\xfc\x81\xf2\x99\xd6\x7f\x14\xf6\x69\x57\x5f\x2e\xed\x2a\xd9\xb8\x36\x8b\x13\x4e\xe0\x3c\x3a\x65\x5e\x27\x10\xd0\xd6\xbc\x6d\xdb\x23\x13\xc1\x10\x50\x5b\x6d\x77\x69\x3d\x1f\x65\x52\xe8\x6e\xf5\xda\xc8\xaf\x27\x0d\xc3\x3b\xe9\xee\x03\xaa\xfb\x7a\x88\x20\x5f\x0b\x63\x4c\x0b\x03\xf3\x36\x96\x4f\xe7\xd0\x04\x9f\xb4\xce\x9c\x93\x28\xe7\xca\x1c\x8a\xc6\xf4\xdd\x21\x2d\x20\x7e\xe2\x00\x16\xaa\x47\x10\xdb\xee\xf5\xf8\xdc\xa2\x0a\xc4\x6e\x66\xb9\xf8\xe8\x86\x3e\x5c\xe0\xda\x52\xf7\x10\x15\x81\x21\xb1\xcf\x82\x8c\xe7\x16\x48\x59\x70\x91\xfe\x1e\x58\xe6\x50\x97\x76\xc1\xa6\xec\x33\xf3\xbe\x48\x66\x9e\xd3\x84\xbe\xa2\xab\x30\xd5\x78\xfe\xc1\xe9\x89\x7c\x4b\x25\x11\x6a\x68\xb8\x29\xe1\x8e\x6c\x53\x0a\xf4\x98\x4d\xca\x29\x57\xfd\x42\xf0\x14\x02\x6e\xa2\xdf\xbd\x75\xaa\x51\x36\xcf\xbd\xdd\xf0\x62\x6d\xf0\x96\xee\xf1\x1a\xe6\x48\xd2\xa9\x56\x23\xb8\x28\x2b\x2b\x03\x77\xff\x5d\xd8\x1e\x23\xba\x00\x4a\x6f\x81\x30\x8b\x58\xf4\xbc\x40\x4e\xc0\x2d\x60\xae\x19\x0a\x0a\xc3\x02\xab\x64\x84\xb3\x05\x57\x06\x28\x5d\xa9\x20\x81\x38\xf5\x92\x89\x1b\x95\x7c\xcb\xb6\x2a\x12\xbe\x0e\xcb\x0d\x48\x88\x46\x24\xda\xed\xf2\xcc\x73\x3b\x80\x69\x76\xbb\x9b\xe8\x69\x9e\x89\x47\x12\x1c\x17\x7b\xf9\x9c\x38\x2b\xd5\xf8\xc4\xa3\xcc\xae\xe1\x74\x86\xd3\xa1\xb3\xcc\x07\x75\x8b\xa9\xb4\x60\xdb\x08\xef\x73\x8f\x89\xc1\x78\xc0\xfe\x77\x3d\x34\x81\x0a\x81\xfd\xef\x8d\x88\x4c\xf3\x3d\x57\x6e\xf3\x57\xba\x47\xea\x35\x14\x69\xb2\x92\xbe\x8d\x67\x97\x09\xdb\x7f\x9c\xfd\x3e\xda\x64\x52\x46\x14\x4d\xc9\x7e\xad\x00\x1c\x47\xa9\x6b\xec\x63\xd9\xa6\x9f\x72\xcb\xa3\x82\x62\x28\x00\xe1\xd8\x31\xa7\x8c\x52\x89\x74\x01\x78\xd7\x72\xc4\xa4\x3b\xe2\xde\xa5\x63\xb5\xc2\xaf\x17\x39\xe2\x9a\xa9\x4b\x9b\xac\xa7\x5b\x32\x67\x00\x37\x66\x61\x67\xa3\xb5\x0c\xd8\x75\x93\x03\x2c\x67\x00\x0b\x16\x44\x9b\xb8\x94\xdf\x10\xaa\x7d\x44\xc8\x83\x0b\x27\x2d\x67\x3d\xf6\x1b\x2f\x94\x54\xe3\xc3\x1e\x53\xe2\x01\xf0\xef\x0d\x4b\xc2\xbc\x20\x3e\xde\x17\x3d\x2d\x1d\x4b\xdc\xad\x86\x1b\x98\xe9\x62\x29\x6f\x95\xfe\x1b\xfe\xfe\x64\x89\xe3\xa0\x40\xd7\x7e\xda\x3a\x61\xdc\x75\xb9\x0a\x66\xc4\xb7\x69\x40\x8c\xdc\x8b\x3d\xbe\xc8\xd7\xae\xe8\xae\x85\x2f\x72\x3f\x1f\x3b\xb2\x75\xd8\x23\x1c\xd9\x8e\xd6\xbf\xbd\xf6\xf2\xf5\x68\x2f\x7b\x5c\x91\x3f\x1e\xae\x48\xe0\xe5\xbb\x7f\x22\xae\x9b\xc2\x57\xeb\x23\x81\xad\x42\x21\xb6\xb8\x90\x21\xa0\x41\xc3\xaf\x81\xd3\xf4\x98\x1c\x88\x81\xbb\x5d\x5e\xa7\x78\xe0\xe6\x48\x1a\x36\xe1\x79\x2e\xa0\x7a\x96\xeb\x49\xaa\x52\x97\x26\xc3\xaa\x3d\x00\xd2\x06\x01\x45\x5d\x92\xb3\x57\x1b\xf9\x2e\x82\x81\xaf\xd2\x89\x29\xa0\x1e\xc2\x64\x60\xc6\x65\x5e\xbd\x11\xc6\xb2\x89\xe0\x85\x1d\x0a\x6e\x61\x22\xbb\x36\xfd\xb9\x21\x3e\x91\x95\xed\xcb\x59\x00\x49\x9c\x87\xf5\xc6\xd6\x02\x9a\xd8\x1a\x75\x7f\xe7\xef\xb7\xad\x44\x40\x3c\x30\x6f\xd9\x27\x35\xd6\x60\x4c\x2f\xd8\x3b\x0f\x41\x7c\xea\x78\x72\x82\x7c\xf3\x32\xe3\x4a\x81\x1d\x7e\xaa\xef\x39\x42\xb0\xbf\x1e\xbc\xfe\xcb\xa6\x32\xe0\x26\x9e\x8b\xd5\x50\x03\x55\xab\xf6\x6a\xbb\x50\x76\x8a\xfc\x19\x9d\xce\x6f\x37\x65\x31\x28\x95\xf8\x46\x35\xad\x9f\xd2\xb0\xb1\x50\xa2\xd8\xd0\x77\x3d\xd1\x66\xe5\x25\xd2\xa9\x8f\x3b\x52\x3b\x19\x7e\xeb\xfd\x7a\x14\xc9\xf1\xaa\xa2\xbc\x55\xa3\x5a\x45\x8e\xdb\x17\x14\x73\x14\x9c\x6c\xb7\x2f\x48\xbd\xef\xb6\x67\x1d\x52\x05\x4f\xb0\x95\x77\x8e\xd3\x47\x10\x99\x80\xa9\xc9\x90\x33\xe8\x34\x68\x99\x36\xe2\x35\xd0\x97\x38\xe7\x74\x0c\xd6\x17\xdf\x17\x04\x4f\x69\x6d\xd9\xc1\xcb\xa3\x97\x87\x73\x8e\xc3\x86\x2b\xf8\x26\xfa\xd2\xf1\x3d\x39\xcd\xb3\x19\xcc\xe3\x65\xda\x63\x32\x04\xc8\x22\x69\x60\x56\x94\xc8\xd8\x63\x46\x33\x5b\x70\xac\xb0\xcd\x33\xfc\x2b\x28\xff\x45\x89\x46\x11\x76\xf0\xf2\xff\x7b\x49\xd1\x60\x0f\x5a\xbd\xb4\x30\xfd\x01\xbb\xc1\x7a\x64\xa1\xa3\x99\x2e\x99\x12\x82\xb2\xb3\xf3\x4c\x26\xd2\x66\x33\x96\xf0\x2c\x63\xa0\x8e\x6b\x7c\x25\x28\x81\xf2\xec\x51\xda\xc8\x86\xf8\x0a\xe3\x25\xb1\x4e\x21\x37\x80\x3a\x7e\x34\x11\x3c\xb3\x13\x8c\x24\x51\x5a\xf5\x7f\x17\x85\xc6\xea\x53\xf4\x4b\x37\x97\xf7\xb6\x39\x76\xdb\x9e\xe7\x77\x27\x1b\x94\xbd\x63\xef\xe4\xb0\x10\xec\x84\xa2\x50\x7d\x0d\xb2\xb6\xbf\x62\xd9\x01\xc0\x8d\x18\x8a\x10\x3e\x46\x78\xf1\x47\x0f\x85\x74\x2c\x1b\xd2\xa4\xda\xbf\x7e\x9a\x62\x79\x23\x73\xb3\xda\xa2\xf0\x2e\x9c\x62\x2c\x99\xe7\xc3\x1f\x62\x60\xa6\x51\xa3\x4d\x55\x20\x8a\xa2\x4e\x1c\x8f\xf3\xf6\x67\x35\x66\xfe\x56\x9c\x3d\x0e\xd8\xed\x0b\xf1\x68\xbf\x47\x08\xed\xc7\x91\xc1\xff\x50\xd6\xfd\xd7\x80\x9d\x4f\xc3\x29\x05\x4d\xa1\x08\x71\x73\xfe\x33\x26\x47\xac\x54\x21\x12\x60\x03\xfe\x9b\x95\xab\xd4\xe6\x2a\x9e\xf0\xdd\x09\x45\x6f\xb2\xac\x54\xe4\xbc\xdc\xb5\x7c\xe2\x8e\xc4\x27\x95\xad\x0a\x68\xaa\x26\x15\x87\x54\x41\x00\x12\x3b\xa8\x8e\xd5\xe1\x80\x5d\x51\x87\x58\x81\x0e\x22\x21\x46\x1a\x15\x34\x51\xfd\x48\xc5\x3f\x1d\x23\x8b\xe2\x4a\x16\x59\x90\x3b\xc4\xd7\xfe\xf6\xdb\xc5\x2a\xc5\xb8\x8d\xb0\x0f\xba\xc8\xd2\x07\x99\x86\x62\x46\xae\x9f\xc3\xe7\xce\xd4\x7d\x78\x90\xe9\x5a\xb3\xa7\xf2\xa0\x30\x7b\x06\xd3\xaf\xf0\xec\x0c\x3b\x80\xfe\x0e\xd9\x99\x84\x20\x34\xf8\x17\x56\x54\x9e\x0e\x7d\x88\x9e\x13\xd9\x02\xe1\xe0\x52\xbb\x33\xe6\x33\x9b\x20\xfc\xd8\x97\x61\xc3\x00\x42\x39\x2d\x33\xcb\x95\x00\xe1\xfd\x0f\xc2\x67\x33\xf1\x78\xe9\xd4\x25\x63\x85\xb2\x1d\x79\xee\xe2\x8f\xea\x78\x53\x20\x05\xc9\x84\xe5\xa1\xad\xdf\x95\xc8\x24\xc1\xe1\xa9\x85\x34\x7f\xb4\x79\x1d\x51\x64\xbd\x4f\xe2\x07\xd8\x16\x91\xb0\x21\x37\x22\x65\x79\x56\x8e\x65\x17\xb9\x24\x2d\xe4\xbd\x58\x15\xd6\x74\x0a\x8d\xbc\x54\x12\x07\x92\xe3\xe7\xbe\x82\x68\x28\x80\x44\x6f\xca\xfa\x4c\xed\xeb\x67\xed\x71\x41\xcb\x68\x90\x14\x60\x1f\x8d\x13\x74\xdd\xbe\xe3\x6e\x33\x9c\xf6\x06\x74\xa0\x22\xc5\x4d\x42\xf0\xd4\x8b\x53\x97\xed\xfb\xb9\xd6\x6d\x59\xc8\x17\xce\x1e\x6d\xc1\x83\xdc\xe7\x0b\x26\xcb\x11\xe3\x6a\x51\x81\x43\x5d\x33\x85\xff\xd9\x5e\x86\x5d\xc1\x6c\xae\xe7\x5e\x7c\xcb\xc2\x57\x98\xaa\x12\x95\x40\x04\x3f\x39\x82\x50\x91\xa9\x32\xaa\x2d\x6e\x04\x38\x5a\xef\x45\x4d\xcb\xb4\x9a\xe5\xdc\x04\xb3\x36\xb2\x08\x3a\xa2\xc6\x17\xcf\x26\x50\x23\x08\xb3\x96\x23\xa6\x74\x63\x94\x38\x69\x9a\x52\x66\x16\x4c\xc4\xa0\x23\x14\xa2\xf8\xb5\xf2\x8d\x7a\x08\xf0\x0f\xff\x4d\xa8\xfe\xdc\x98\x28\x1d\xb0\x3e\xab\xf5\x6d\x6e\xc4\xd0\x56\x19\xdd\xba\x70\xfc\x35\xf8\xfc\xaf\x9e\x61\xb7\xf0\xf5\x3d\x33\xdf\x33\xf3\x3d\x33\xff\x33\x31\xf3\x0f\x3a\xe1\xd9\x26\x01\x23\x7b\x8e\xfe\x25\x39\x3a\x60\x9f\x6c\x64\x30\xc1\x4f\x3d\x27\xf7\x76\x10\x62\x3e\xfe\x57\x3e\x86\x98\x89\x4f\x0a\xcb\xa5\x83\xd5\x44\x23\x52\x49\xca\x2d\x37\x02\x70\x46\xe1\x37\xfa\xf7\xe7\xcf\xe7\xa7\x51\x94\x15\x54\x5f\xa9\x8f\x65\x58\xaa\x31\x67\x60\x99\x25\x45\x17\x9b\x19\x52\xa2\x69\xad\x11\x77\x44\x5f\x41\x7d\x7b\xb4\x06\x79\x6f\x1c\xeb\xdf\x96\xaf\x5e\x7d\x57\xd9\x7c\xe3\xe6\xee\x3d\xf1\x8b\x6b\xad\xe3\x08\x28\x92\xde\xb4\xbf\x3e\x97\x8d\x68\xba\x62\x31\x40\xf6\xfa\x62\x2a\x08\x44\x82\xe2\x88\x50\xdd\x01\xf0\xd3\xcf\x9c\xda\x3f\x93\xbd\xfa\xfd\xc9\x59\xa5\x41\x9e\x4a\x73\xb7\xc9\xe9\xad\x7a\x60\xae\x8b\x4a\x10\x91\x8a\xbd\xd7\x7a\x9c\x09\x76\xa2\xa7\x79\x69\x05\x3b\x53\x63\xa9\xc4\xe0\x56\xdd\xaa\x63\xf6\xfe\xe4\x8c\x5d\x9e\xa2\x26\x0f\x28\x4d\x6c\x28\x46\x8e\x01\xc0\xf9\xa7\x9c\x07\xde\x44\x97\x4a\xdd\x10\xf0\x0d\x64\xa0\x0d\x45\xad\xc6\x90\xeb\x33\x2f\x34\x70\x15\x77\x11\x7e\x77\x17\x84\xa3\x28\x42\x71\x60\x03\x16\x86\xee\x66\x7c\x44\xa4\x4f\x9e\xf6\xa1\xe9\x94\xab\x19\x06\xe5\x0f\xa8\x9b\xaf\xca\x0c\x49\xc7\x8e\x38\x09\x88\x82\x33\x5d\xb2\x07\xae\x6c\x24\xfa\xdc\xc8\xfc\x2d\x3b\x53\xa6\x2c\xa2\x8c\xe5\xa6\x14\x24\xcd\x1a\x82\x10\xd4\x4b\x34\x6f\x77\x6d\xb6\x5c\x17\x08\x89\x40\x7f\x8f\x88\xbb\x7d\x33\x4e\x44\x65\xf6\x70\x47\x67\x03\x0c\x1b\x5e\x58\xd9\x21\x8f\x07\x8a\x48\xfb\xb6\xfe\x50\xae\xd8\x87\xf3\x11\xd3\x18\x55\x89\xee\x95\xb4\x4a\x99\x0c\xe9\x74\xc3\x99\xef\x05\xf1\xb4\x2a\x5a\xbf\xd3\xe1\xc9\x80\x34\x63\x93\xf2\xd7\xe8\xcd\x40\x02\xe2\x96\x55\x73\xe2\x86\xdd\xbe\x78\xed\x36\xe2\x5a\x4e\x65\xc6\x8b\x6c\xd6\x8b\x67\x59\xb5\x74\xbc\xd4\x77\xe9\x26\x73\xfb\xe2\xd5\xed\x0b\x76\xa0\x0b\xe8\xdd\x5d\x9b\x4c\xf0\x7b\x41\x18\xff\x70\x7c\x67\x28\x02\x1c\x3e\xf5\x96\xed\xa0\xfa\x76\xda\xe1\x41\xfa\x8c\x6c\x3a\x56\x5f\x2e\x4f\xeb\xac\xed\xe4\x6c\xc0\x3e\x93\x20\x42\xec\x1c\x29\x0e\x2c\xca\xb7\xf8\xf2\x07\xb8\xa3\x44\xbd\x9d\x9c\x3c\x2f\x86\x3f\xd7\xd2\xe7\x65\xf1\x8e\x72\x1f\x9d\x83\x6d\xe5\xbe\xf7\xd2\x5e\x89\x5c\x6f\xf2\x72\xc6\xdc\x01\xca\xba\x53\xae\x7d\x85\x41\x18\x67\xd8\x73\x36\x96\x18\x48\x6b\x24\xe6\x7b\xbe\xa7\x7f\xaf\x23\xcc\xb5\x7c\xe5\x9b\xb7\xbc\x52\xee\xa5\x3e\x3d\xbb\xbc\x3a\x3b\x39\xbe\x39\x3b\x7d\xcb\x68\xb1\x58\x91\xbf\x0a\x93\xb8\xd1\x95\xb5\xa1\x06\x68\x42\x40\x88\x7e\xe2\x3d\xe2\x69\x5c\xb1\x33\xc7\x2d\x4e\x65\x81\xb1\xfa\x5c\xb1\x73\x25\x2b\xec\x11\x2a\x04\x98\x69\x15\x62\xfd\x73\x4d\xc6\x8b\xb1\x44\xc4\x11\x45\x9d\x41\xb4\x74\xad\x37\xb8\xad\x00\x65\xdd\x92\xd6\xbd\x58\x5a\xf5\x3e\xed\x55\x8c\x1e\x1d\x32\x95\x0b\x9c\x70\x0e\x9d\x4c\x02\xf5\xaf\x29\x0a\x49\x13\x88\x0d\x12\xe1\xe5\x60\xf0\x72\xc0\x1c\xc7\x7f\x39\x78\xe9\xdf\xd6\x2c\x24\xe9\xd2\x51\xa8\x3a\xf5\x99\xb9\xee\xc7\xe6\xbe\xb3\x4f\x1e\x3c\xb0\xe7\x1e\xcc\x46\xbe\xaf\x77\xb9\xc8\x0a\xae\xa2\xa5\x97\x20\x36\x95\xc3\x78\x50\x3a\x77\x50\xd8\x1e\x17\xb6\x59\x14\x3f\x0e\xb2\x92\xe5\x84\xd9\x7c\xbe\xfa\xb0\xc9\x40\x78\xe4\x3a\x44\x3d\x20\x0a\xd2\x24\x84\x2b\x54\xe8\x79\xbe\x93\x1d\x67\x2e\x47\x44\xd8\x9a\xc3\x60\xc2\xf1\xc8\xac\xed\x22\xaa\x71\x9b\xd0\x4d\xb8\x37\xdc\x42\xa0\x95\x47\x4a\x18\x09\x4b\x21\x58\x1c\x11\x6d\xaa\x2f\x9e\x43\x5b\x14\x2d\x25\xbe\xdb\x16\x15\xca\x98\x81\xd2\x48\x76\xc6\x10\x1c\x0b\x2f\x36\x2c\x2d\x15\x96\xcb\xcc\x44\xab\xb0\x3a\xd7\x99\x1e\xcf\x5a\x9f\x26\x41\x72\x95\x0f\xed\xa4\x25\x1f\x8d\xfd\xe7\x47\x57\x67\xc7\xa7\x1f\xcf\x06\xd3\xf4\x9b\x04\xc2\x3d\xfa\xbc\x9f\xeb\x0d\x34\x49\x11\x2f\x00\x2b\x3a\xac\xb1\x62\xf8\x20\x36\xaf\xe2\x1f\xa8\x72\x2a\x19\x52\xaa\x35\xfb\xc1\x22\xfc\x29\x28\x8a\xe2\xc1\x4e\x90\x67\xf8\x11\xaa\x01\xd2\xe8\x3d\x0f\xea\x55\x35\x1c\xe9\x54\x43\x5d\xaa\x94\x5d\xfe\x7a\xf2\x85\x49\x9a\xaf\x46\x3f\x02\x38\x1a\x22\x5b\xf3\x60\x33\xf7\xfd\x17\x5e\xc2\x2e\xc4\xb4\xb9\x75\xa1\x76\xe5\x75\x5b\x60\xef\x95\x2a\x9b\x8b\x62\x2a\x3d\x52\x5b\x37\xf9\x6d\xb7\xe4\xd8\x58\x74\x13\x2d\xf5\x6f\xf1\x0c\xec\x8c\xd7\xee\x39\xec\x1f\x98\xc3\xee\xd9\xc1\x9e\x1d\xec\x84\x1d\xfc\x7c\x73\x73\xf9\x5e\xd8\x95\x31\xbd\xb5\x76\x71\x58\xaf\xf2\xd0\x2e\xe8\x6a\xd5\x8a\xb9\xa6\xec\xbd\xb0\x55\xcd\xaa\xd5\x17\xb7\x43\x2c\xf4\xcf\xda\xf8\xab\xa9\x19\xe1\x58\x32\xab\x7b\x73\x0f\x79\xae\x53\x76\x7e\x39\x60\xff\xa5\x4b\xa7\xb4\x0d\xf9\x30\x9b\x05\xbb\x94\x11\x96\xdd\x42\x5f\xb7\x2f\x9c\x86\xe0\x36\xfa\x67\xc1\x53\x51\x18\x08\xad\x15\x7c\xa3\x50\xee\xaa\x97\x55\xa2\x7a\x69\xac\x9e\xb2\x09\x0d\x59\x2f\xec\x40\x04\x1b\x20\x09\x01\x86\x16\x72\xf1\x30\xf4\x96\xbe\xd9\x31\x96\x94\x1b\x0a\xa7\xbe\x55\xdc\x5c\x57\x86\xe4\x54\x61\xc4\xbf\x23\xef\x06\x2c\x15\xa1\x42\x36\xc4\xdf\xde\x2e\x8f\xa3\xb4\x32\x1b\xb8\xab\x65\x8b\xc1\xb9\xb2\x9f\x8a\x6b\x1c\x6e\x99\x37\x12\x9d\x39\x45\x0c\x62\x03\xe7\xae\xb0\xf3\xeb\x8b\xac\xfb\x94\x12\xe3\x23\xfb\xfc\xa6\x73\x35\x16\xec\xb5\xfb\xf2\xcd\x0f\x3f\x7c\xf7\xc3\x80\x5d\xc4\xc8\xe6\x5c\xb1\xf3\xe3\x8b\xe3\x7f\x5e\xff\x7a\x02\x05\x5b\x16\xe5\x3c\x27\x13\xb1\xd2\xe6\x77\x0d\x8d\xe2\xf8\x04\xba\x47\x11\xfe\x92\xbb\x89\x75\xee\xe8\x76\x68\xc7\xba\x63\x1e\x81\x91\x6f\xc5\xba\xe8\xe4\x2e\xe7\x5b\xd8\xa8\x96\x8b\x90\xc4\xd7\x30\x46\xcb\x93\xc4\xbf\x72\x80\x84\x5e\xcd\xb8\x3a\xe0\xdc\xdf\x38\xaa\xe2\x40\xa8\x99\xcc\x57\x3e\xd9\x55\x15\xdb\xb9\xa1\xf0\xa3\x9d\xee\x5d\x63\xf6\x34\xaf\xad\x37\x93\xab\x34\x5b\xbe\x93\xd8\x22\x24\x30\x73\x6f\xe2\x48\xfc\x0b\x44\x39\x0c\xde\x33\x0a\x38\x63\x1d\x64\xc6\x47\x91\x6c\x8e\x15\x50\xe5\xc3\x2c\x0d\x5f\x68\x71\x69\x83\x47\x4a\x3b\x1e\x0f\x8e\xa6\xca\x89\x5d\xf9\x86\x5c\xef\xe1\xdf\x28\xc9\xf9\xa5\x6a\x58\xde\x02\x66\xe0\x9e\xa3\xf7\x62\x73\xf4\xa4\xba\x50\xb0\x6c\x61\xd4\xb2\x31\x49\x37\xbe\x7f\xcc\x20\xc6\x42\x14\x23\x5d\x4c\x17\xa1\x1b\x24\xf9\xb5\x4e\xee\xb6\x98\xef\xcd\xc9\x25\xf6\xd0\x61\xc6\xa1\x6d\x34\xe7\x4a\x88\x41\x60\x02\x88\x20\x63\x37\x27\x97\xc0\xd3\x07\xf0\x5f\x13\xad\xef\x30\x55\x67\x26\x6c\xe5\x37\xdc\xa1\xaf\xda\x09\x25\xc7\x99\xe4\xcb\x92\x41\x43\x1b\x36\xd1\x59\x8a\xd4\x9e\xf2\x3c\x77\x33\x1e\x0a\xfb\x20\x84\x62\xe7\x97\x70\xd6\x1c\x23\xc7\x48\x7a\xcc\x00\x25\x73\x2b\x56\xd4\xaa\xca\x0d\x29\x5b\x99\x4a\xb1\x3a\xa2\xfb\x10\x93\x98\x3a\x0a\x6e\x30\x4a\x07\xe9\x0d\x67\xe3\x0d\x94\x7c\xa8\xef\x05\x4c\x36\x4d\x0b\x61\x3a\xca\x35\x3b\x0c\xf5\x97\x73\xd8\x51\x4d\xf0\x95\x30\x37\x7f\x5f\xc1\x3b\x0c\x50\xba\x40\xb7\xe7\xca\xba\x73\xc4\x73\xd2\xd3\x26\x2a\x3b\x4c\xd9\x49\x67\x70\x4e\x3c\x76\x35\x69\xe7\x3f\x87\x1f\x9f\x43\x3b\xef\x2a\x23\xfa\xc8\x92\x60\xb5\x27\x51\x0a\x45\x13\x0a\xb0\xca\x49\xbd\xe5\xcc\xcc\xa6\x99\x54\x77\x90\x4d\x47\xfa\xa1\xe3\xaa\x64\x91\x50\x77\x5e\xb2\x29\x04\xcf\x16\x2b\xbe\xeb\x38\xee\xdc\x44\xf2\x39\x78\xd4\x4e\x78\xc5\x1d\x91\x5c\xdc\x25\xf1\xbb\x4e\x7e\xc8\xb9\x72\xe8\xcf\xbc\x8a\xae\xa2\xdd\x2e\xb4\xd2\xf3\xeb\x93\xeb\xf3\xb5\x9d\x01\x4b\xbe\xaa\x05\x16\x2b\x06\x2d\xc1\x8d\x3d\xa0\xff\x5e\x37\x5d\xaf\xfe\xd5\xd3\xc4\xc7\x24\x13\x9e\x1f\x97\x76\x72\x2a\x4d\xa2\xef\xc5\x4a\x6f\x93\xaf\xc7\xe8\x67\x23\x61\x8e\xe1\x6b\x76\xf2\xf3\xf1\x25\xe3\xa5\x9d\x08\x65\xa9\x90\xe2\x06\xd1\x9f\x7e\x56\xd7\x58\x03\x63\xa3\x39\xd1\xb7\x3b\x9a\xd1\x3e\x8e\x68\xfb\x38\x22\x69\x12\x23\x37\x40\xc1\xc1\x92\xd6\xba\x4b\x2d\x0d\x32\x7d\xe0\x09\x38\xf7\x1f\x82\xb6\x0b\x5c\xbd\xd6\x57\x2d\xaa\x16\x0d\x79\x30\xc5\x73\x65\x45\x31\xe2\x89\x68\xa4\xc1\x21\xb6\x15\xf6\x2d\x43\x1b\x88\xa6\x4c\x28\xc1\xd0\x6d\x10\xcf\x30\xc0\xf2\x2d\xfe\x12\xc5\x1d\x51\xe0\xa5\x17\x93\x12\xca\x77\xae\xb2\xbf\x51\x51\xde\x08\x44\x51\xfe\x6b\x65\x6c\x15\x4e\x11\xe7\xff\x9f\x25\xcf\x70\xdd\x17\x9b\xf9\xa7\xeb\x94\x5a\x31\xb4\xdf\x0f\x4f\xb3\x8b\x60\xfd\xc6\xb2\xde\x8a\x66\x05\xe8\x83\x28\x0f\xc7\x2f\xd1\x4b\x32\xbf\xbd\x64\x07\x36\xc9\x0f\x9f\x24\x0f\x17\x27\x40\x34\xfa\x10\x12\x70\x77\x0e\x0e\x8c\x27\x64\x95\x28\x5b\x9b\xcd\x25\x7c\xc2\x3e\x48\x43\xa5\xb5\xe9\x0f\xd2\x30\x81\x39\x9f\x1c\x24\x72\x5d\x30\x99\xff\xd3\x89\x93\x6f\x91\x0f\x46\x36\x23\x69\xb0\x58\x22\x06\x86\xfb\x10\xb9\x03\x3b\xcb\x65\xc2\xb3\x6c\x16\x34\x11\xc3\xfe\xf2\xe6\x15\xbc\x27\xdf\x7d\xfb\xe6\x55\x93\xd6\x4f\x2f\x31\x7f\xa9\x40\xab\xaf\x3e\xe1\x0c\xde\x31\xfc\x00\x6b\x48\xe0\x8d\xc1\x23\x02\xd0\x0f\x81\xdd\x35\x5e\xbb\x76\x29\x11\x3e\xc4\x93\xb4\xfe\x61\xfc\xd2\xe7\x70\x5b\x09\xb2\xb6\xfa\x06\x17\x6d\xb0\x8d\x9d\xc8\x99\x1b\x68\x55\x7b\x09\x72\x2f\x41\xee\x25\xc8\xbd\x04\xb9\x97\x20\xf7\x12\xe4\xce\x25\xc8\x7c\x2f\x41\xfe\x39\x24\xc8\xb5\xb3\x5c\xf7\x62\x64\x87\x53\xf7\x15\x8a\x91\xbf\x88\xd9\x8d\x6e\xd4\xa7\x6c\x52\xf8\x23\xcf\x23\x1c\xdd\x3b\x31\xc3\xe4\x3f\x30\x63\xbb\xc7\x49\xaa\x90\x2f\xd1\x41\xb0\xc3\x42\x5d\xab\x5c\xc1\x34\x0a\xe5\x0b\x6e\x52\xfd\x41\xa7\xab\x98\x7f\x95\x99\xed\x1a\xb3\xa1\xc4\x6b\x57\x1a\xca\x5f\x95\xe8\x4a\xea\x55\x01\x0d\x04\x22\xec\xdd\x55\x78\x02\x5e\xfd\xf8\xe3\x8f\x8b\xea\x7b\xf9\xd4\x01\x3c\x49\x1f\xdd\x30\x71\x59\x2f\x9f\xa7\xed\xab\x7a\x21\xc2\xe0\x28\x93\x09\x65\x26\xe0\x69\xf4\x89\xfb\xf0\x30\xf1\xd1\x08\xeb\xbd\x50\x65\x44\x37\xf7\x1e\xcb\xe4\x9d\x60\x23\xf3\xbe\xd0\x65\x1e\xca\xec\xfa\xea\xc8\x4e\xae\x1f\x0a\xea\xac\x5a\xab\x11\x4d\xc2\xee\xe0\x15\x59\xed\x28\xb9\x81\x89\x65\x1c\x52\xda\xf3\xc8\x6b\xe2\xeb\x9c\x4e\x79\x8e\x49\xa1\x70\x06\x06\xec\x23\x9f\x31\x02\x4d\xe6\x8a\xf1\xa1\xd1\x59\x69\x43\x20\x20\xfd\x18\x67\x53\x40\xa7\x22\x43\x0d\x04\x93\x3b\x7c\xb3\x28\xeb\x03\xcb\x8d\xc0\x99\x86\x36\xbb\xbd\xc3\xee\x98\xef\x3a\xe2\xed\x83\x1c\x89\x64\x96\x64\xcb\x74\xbd\xd0\x26\x0e\x1a\x49\xa2\xf3\x83\x7e\xd7\xa0\xa0\x91\x2c\x4f\x4e\x7c\xcb\xef\xe0\x14\x16\xc2\xe4\x5a\x19\x1f\xb0\xe6\xeb\x75\x86\xbe\x09\xe7\x1d\xd2\x1c\x31\xa3\xc7\xd8\x6b\x20\xad\x3b\x7a\x97\x85\xb8\xb6\x3a\x8f\xda\x4f\x30\x02\xc2\xf4\x6a\xce\xb8\x66\x41\x62\x28\x04\x69\xa2\x72\xcd\xde\xb5\x6d\xa8\xa6\x86\x15\x3d\x56\xaa\x4c\x18\xd3\xf8\x92\x8a\x33\x43\x55\x52\xd3\xc3\xea\xc0\x32\x99\xb0\x84\x53\x09\x52\x9a\x00\x95\x45\x2a\x6a\xb8\xa3\x8b\xbd\x7e\x7e\x55\x9b\x87\x23\x50\x6c\xc8\xb2\xa7\xb3\xa2\x9d\x5b\x27\xcf\x32\x91\x32\x39\x9d\x8a\x54\x72\x2b\xb2\x19\x95\x0a\xe7\xf5\x1a\xc8\x24\xa2\x07\x9f\xa2\x5f\x1f\x11\xc0\x36\x6b\x5d\xfb\xc2\xaa\xa1\x40\x36\x95\xbe\x66\x3c\x49\x74\xa8\x62\x87\x70\xe5\x78\x47\x72\xa8\x58\x3b\xc0\x7c\xa6\xf5\xb6\x6d\xa2\xf5\x5d\xd8\xb1\x76\x28\xfc\x65\xea\x59\x55\xc7\xb7\xfa\xcf\x7e\x38\x4b\x7d\x08\x67\x38\xfa\xa6\xfa\x09\xfe\xb0\x80\x1d\xe1\x49\x7c\xda\xfd\xa3\xd3\xde\xbe\x7b\x94\x37\xcf\x17\x6e\x47\x5a\xc2\x2d\xe3\x8a\x1d\x5f\x9e\x87\xd0\x13\x5d\x23\x39\x55\x3b\xa4\x1a\xcb\x99\xbc\x17\x4a\x18\xa7\xc7\xf2\xc2\x96\x39\x46\x7c\xf9\x8a\xbc\x3d\x96\x17\x42\x4c\x61\x7a\xbd\x2a\x2b\x96\xb2\x15\xe1\x8f\xc2\x26\x28\x22\x45\xb7\x02\x78\x28\x4d\xbf\xb9\xc1\x49\xc1\xcd\x04\x6b\xe5\x8a\x47\xe9\xcb\x80\xc7\x25\x7e\xa2\xb2\xbd\xd2\x34\x40\x40\x68\x10\x2f\x94\xa5\x8d\x9a\xd5\xe3\xc2\x29\x5e\xb9\x28\xa4\x4e\x19\xc0\x73\xa7\xfa\xc1\xbd\x57\x63\xa9\x8c\x27\x1f\xf0\x18\xa2\xb3\xdb\x6e\x81\x49\x32\x88\x89\x9b\x0e\xa8\xf4\x62\x16\xc5\x3b\xe8\xd2\x26\xba\x4a\x10\xa6\x49\x34\x6f\x06\x3c\xc6\x40\xdd\x12\xe4\xbb\xb0\x2f\x5e\xb0\xb1\x2b\xe7\xbc\x83\x1b\xe2\x08\x5b\xfd\xb6\x90\x38\x80\x1a\x03\x50\x51\xcf\x7e\xa5\xe6\x1e\xbd\xb5\x5f\xae\xa9\xb4\x57\x5c\x8d\x97\x3f\x5d\xbe\x91\x13\x4d\x4c\x75\x76\x4b\x2c\xf8\x2d\xa1\x9c\x82\x3b\x6f\x8e\x0a\xec\x4e\xaa\xd4\x91\x3a\x4e\xfc\xe6\x2c\x64\x49\xed\x8b\x90\x7c\xd5\x45\x48\xf6\x25\x3c\xfe\x2c\x25\x3c\xfe\xe8\x45\xf1\x9c\xca\xb6\xb9\xa1\x24\xf0\xac\x6b\xd7\xcd\x52\x02\xe4\x22\xa9\xb1\x0f\x62\x68\x42\x81\x81\xa8\x9d\xa9\xef\x92\x0c\x6e\xa1\x7d\xae\xd2\x3e\x02\xa4\xaf\xc1\xde\xc3\xdf\x9f\xaa\x4c\x49\xf4\x3e\xd4\x7e\xdf\xb6\x4e\x49\xd5\xef\xb9\x15\xd3\x4e\x6f\xcf\x39\xa2\x00\xfa\x48\xed\xa9\x54\x47\x53\xfe\x18\xbf\x41\x54\xb3\x61\xd6\x80\x75\x9c\x72\x9b\x80\x94\xa4\xe0\x69\xea\x82\x6a\x80\x66\x81\xcd\xc0\x01\xd7\xbe\xb1\x03\x3f\xdd\xc1\x7f\x96\x5c\x59\x69\x67\x9d\x11\x05\xc9\x2a\x59\x2d\x98\x74\x5e\x90\x76\x90\x26\x64\x19\x89\x88\x02\x09\x4f\x32\x7a\x9f\xb1\xa1\xe3\xce\x88\xab\xb3\x01\x02\x21\x51\xec\x0a\xf9\xf1\x1f\x86\x70\x34\x5f\x9f\xd3\x98\x2e\x23\xa7\xd7\x00\x3a\x10\xb4\xa8\xba\xdd\x9c\xa4\x53\xfe\xf8\xf5\xd3\xf1\x63\xb8\x81\x89\x56\xc6\x16\x5c\x02\xf0\x0a\x59\xe9\x40\x12\x6c\x52\x6a\x33\x52\x20\x1f\x40\xba\x5e\x39\xe9\xed\x0f\x41\x9b\xb9\x59\xb7\x40\x8f\x38\x9a\xa4\x15\x89\xc0\xa6\x39\xe1\xf7\x02\x2a\xeb\xe3\x39\xc2\x7a\x23\xee\x92\xa2\xa5\xb1\x10\x08\xdb\x1e\xaa\x64\x60\xad\x7d\x6c\x92\xca\x7b\x99\x0a\xa2\x7b\x38\x87\x64\x9b\xe1\x00\xb1\x22\xfe\x55\xf2\xcc\x4b\xb1\x42\x95\x53\xac\xf8\x82\x47\xfb\x6f\x0d\x51\xd9\x67\x04\x3c\xb2\x61\x59\x18\x1b\x9c\x8f\xf5\x79\x6f\xb2\xab\x72\x4e\xbc\xff\x0a\x37\x51\xaa\x67\x38\xe0\x6b\x54\xe3\xac\xbf\x6d\x30\x0b\xdc\x77\x0e\xd0\x38\x20\x0a\xef\xd8\xeb\xe1\xbe\xdf\xde\x44\xea\xdf\xf1\x15\x05\x2c\xeb\x0d\xeb\x55\x2c\x23\x45\x14\xfc\x8a\x7b\x55\xf2\xab\x56\x25\xbb\xd4\xb3\x74\x52\x9d\x59\xb8\xcb\x48\xcf\x8d\x2c\x95\x23\x39\x2e\xb1\x44\xf9\x11\x5a\x80\xfa\x09\x02\x6a\xf6\xc3\x8a\xfa\xc1\xae\x72\xb4\xdb\x04\xe8\x48\x6a\x5e\xc8\x67\xf6\xd5\x34\xff\x8d\x54\xf1\x7d\x35\x4d\xfc\xfb\xd3\xab\xa9\xbb\x2f\xa9\xd9\xb0\x24\x74\x79\xb9\x6a\x16\x85\xc5\xaa\x6a\x60\x44\x91\x9e\xba\x86\x96\x8a\x66\x8a\x15\x0c\xe2\x03\xda\x32\xa4\xb7\x6c\x34\x59\x2c\x68\xd5\xc4\x66\x2b\xe9\x32\x98\x3e\x9e\x8a\x2f\x82\xd6\xbf\x36\x6f\xec\x78\x28\x89\x30\x5b\x8b\x2c\x9a\xa7\x3f\xf1\x8c\xab\x44\x14\xe7\x6a\x5c\x08\xb3\x2c\x8d\xb6\xa5\x75\x53\x86\xae\xea\xdf\x71\x96\x69\x9e\xf6\x87\xd4\x9e\x49\xfa\x00\xb8\xeb\x5b\x66\x0b\x3e\x1a\xc9\x04\xc4\x01\x95\x46\x01\x7f\x46\x14\xf7\x32\x11\x35\x7c\x72\x0c\x0d\xe5\xaa\xde\xc9\x1a\x79\xb6\x1d\xd3\x6c\x21\xf8\x91\xa2\x88\x96\xcc\x3e\x3a\x45\xa7\x17\xd7\x04\xe1\x12\x45\xea\x1c\xff\x76\x5d\xff\xbc\x59\x90\xab\x93\x64\xd1\x21\xcf\x76\xed\xe9\x9e\x5f\xce\xcf\xf6\xfd\xc9\x99\x53\x98\x3e\xe5\x42\x5d\x5b\x9e\xdc\x6d\x38\xf5\x55\x76\xbc\x75\x8e\xe2\x35\x1a\x09\xbb\x9d\x44\x6c\xdc\xf9\x20\x76\x38\x35\x72\xee\x26\xb4\xd2\x9f\x68\x5c\x09\x76\x51\xe1\x84\xc6\x06\xf8\xc3\x5d\x9f\x09\xbb\x59\xff\x12\xd8\x89\x30\xa2\xd1\xfd\xae\x59\x58\x0b\x53\xd8\x9e\x8f\xad\x7d\x1c\x5a\xa2\x00\x97\x1d\x88\xf9\xe6\x15\xec\xa1\x50\xba\x1c\x4f\x9a\x35\x2c\x32\x81\xa1\xe7\x99\x4e\xb8\x15\x14\xb4\x44\xdf\xa6\xa1\x4c\x45\x55\xf3\xb4\x0e\x75\xd8\xe1\x1c\x75\xe0\x3c\x71\x81\x03\x1a\xdc\xae\xad\x0a\xe8\x7b\x77\x5c\xc4\xc3\x11\x95\x61\xed\x3f\x48\x3b\xe9\xd3\x8b\x77\x04\x33\x3e\xfa\x06\xe1\x06\x9e\xeb\x2e\x27\x3c\xeb\x98\x20\x02\x6d\xe3\xdb\x8b\x09\xec\xd9\xac\x1f\x8a\x13\x51\xcc\x3c\x86\x4e\x29\x9d\x0a\xe6\xae\x8d\x13\x08\xd9\xc1\x4f\xc2\x72\x36\x12\xdc\x89\x7e\x87\x4f\x04\x9e\x1f\x01\xb3\x57\x36\x08\x48\x56\x79\x98\x08\xf2\xd3\x87\xbc\x7a\xf0\xb7\xb3\x54\xb8\xfb\xfb\xec\xc5\x84\x50\x35\x42\x98\x78\x5e\x5a\xdd\x37\x22\x83\x9a\x07\x30\x3c\x8e\xbe\x75\x05\xd0\x8e\x71\x76\xa3\x32\x43\xe0\x00\x6f\x00\xa0\x80\x44\x82\x25\x70\xfb\x08\x04\xa5\x08\x41\x1f\x28\x1b\x03\x18\x14\x35\x6a\xb2\x83\x54\x9a\xbb\x5e\x85\x47\xdf\x63\x83\xc1\x60\xd7\x01\xb0\x3b\x89\x96\xbb\x78\x77\xbd\x51\x7e\xd4\xc5\xbb\xeb\xce\x18\x91\xae\xed\xd7\x84\x3f\xe1\xe1\xca\xc5\x63\xfd\x5c\xbb\x79\x12\x52\xd9\xb6\xc9\x32\x6a\xb4\x81\xae\xbb\x8b\xe0\x79\xb7\x06\x5c\xd7\xce\xb1\x12\x77\xb2\xfe\x15\x21\xf9\xc5\xea\xf2\x6c\x68\x17\xf1\x4a\x94\x97\x9b\xdd\xa1\x99\xc7\x73\xf9\x22\x3b\xda\xf1\xfa\xd2\x62\x77\x1d\xfe\xda\x06\xc9\xdc\xf6\x96\x23\x0a\x32\x80\xde\xa7\x88\xb6\x95\x68\x02\x26\x81\x9f\xa1\x34\x84\xa3\xe3\xb4\xcc\xac\xcc\xb3\x48\xa0\x00\x49\x52\x53\x5c\xf8\xde\xec\xfb\x55\x9b\x7d\xf7\x66\xcb\x3f\x8b\xd9\xf2\xdf\x3a\x82\x28\x70\xac\xf5\x03\x88\x86\x62\xc2\xef\xa5\x0e\x30\x9e\x55\xec\xe3\x97\x0b\x25\x8a\xc9\xd2\xb4\x20\x6c\x4a\x18\xec\x67\xc5\xd1\xb0\xa5\x89\x52\x1e\xe0\x0a\x96\x45\x01\x77\x30\x32\x43\x7c\x0d\x24\x5a\xa5\xd9\x3d\xb9\x19\xbb\x7a\x48\x77\x6a\xc1\x0e\xdd\x9e\x68\x95\x36\xcb\x72\x2d\x7c\xa8\x43\xe3\xca\x54\xe0\xb1\xcb\xf9\x50\x97\xb8\x7d\xf0\x5c\xaf\xa3\xf6\x3b\xa9\xfd\xa6\xe0\x50\x39\x53\xab\x1b\x39\x6f\x04\xd8\x82\x5f\x41\x77\x0b\x98\xa3\x31\x7c\x3c\x37\x56\x47\x11\xd9\xcc\x8b\x11\x5d\xbe\x6c\xbf\x67\xed\x37\xa4\x0a\x4d\x4f\x49\x7d\x23\x4c\xcf\x9b\xc2\x49\x04\xef\x9c\x88\xdc\x63\x9f\xd5\x9d\xd2\x0f\x9b\x64\x7b\xaf\x11\x61\x50\x15\xac\x80\x1b\xa6\xb3\x4c\x14\xd5\xc4\x9e\x22\xb8\x60\x9e\x66\x3b\x13\x49\x57\x44\x1b\xd4\xda\xd5\xdd\xd0\xe1\xa7\x7d\x98\xc1\xd7\x2d\x6f\xae\x15\x66\x10\x7b\xc1\x2a\x9d\xc4\x3b\xc0\x28\xb1\x24\x83\xc4\xf9\xdd\x1b\x1a\xe1\x34\xed\x38\xd6\xa0\x7a\x33\xd6\x36\x43\xef\x65\xf6\x3f\xa1\xcc\xbe\x0f\x35\xc0\xbf\x3f\xb9\x8c\xb6\xfb\x48\x83\xba\xc6\xd1\xe1\xd1\x22\xc5\x23\x96\xad\xb9\xc5\x8d\xc1\x78\xf7\xf5\xd2\xae\x46\x52\xf1\x4c\xfe\xbe\xba\xe2\xc4\xbb\xd0\x10\x18\x82\x62\x3a\xe7\xff\x2a\x2b\xc6\x8a\x6f\x06\x45\x35\x90\x91\x1f\x8b\x9d\x23\x72\xf7\x94\x2b\xa1\x6c\xe6\x1e\x9c\xa9\xbe\xf7\xec\x17\x2f\x3f\x19\xc1\xba\xb2\x5f\xcb\xcd\x9d\x39\xe2\xe9\x54\x2a\x69\xac\x28\xfa\x09\x96\x51\x59\x9b\xe1\x6e\x8b\x48\xb2\x4a\x79\xe8\xbe\xf9\xab\xfc\xbb\x8d\x96\x6e\x0b\x62\xe7\x1d\x0a\xe7\xab\xf5\xac\x0e\x50\x5f\x5e\xe6\x5b\x75\x1e\xae\xea\xee\x65\x92\x32\xf8\x3d\x97\x19\x1f\x66\x6e\x7f\x8d\x28\xee\x39\x26\xbb\xc3\x34\xc2\xee\xbc\x34\xb5\x69\x36\x83\x67\x77\xf6\x3a\x56\xaa\x4f\xc7\x9d\xad\xfd\x54\x63\x26\x39\xb7\xc9\xa4\x3f\x15\xc5\x58\xf4\x11\x34\xa3\x29\xc5\xb6\x7f\x61\x6c\xc1\xad\x18\xc3\x07\xf0\xf5\x02\x0f\xd2\x84\x9b\x55\xa2\xfa\xa5\x6b\xe3\xc5\x19\x4f\xbf\x2a\xab\x1f\xba\xf0\x2a\x85\x5a\xaa\x59\xef\xe4\x4a\x3d\x99\xaf\xf4\xa2\x0e\x16\x32\x77\x13\x74\x2a\x50\x24\x71\x32\x97\x28\xd0\xff\x29\x15\xfb\xa5\x5a\x15\x3b\xe3\x09\x39\x46\xc1\x6f\x41\xa1\xf5\xf3\x25\xe5\x49\xf6\x4b\x78\x32\x11\xec\x40\x0e\xc4\xc0\xfd\x49\xd8\x24\x3d\xdc\x2b\x00\x5f\xb5\x02\xb0\x17\x5e\xff\x2c\xc2\xeb\xbf\xb7\xc1\x59\xa7\x5b\xda\x9a\x39\x05\x0e\xfc\x61\x2d\xcb\x8e\x02\xab\x8d\xca\x1f\xb5\x01\x1e\x87\x32\x24\x0a\x17\x10\x09\x13\x5b\xd2\x90\x12\x97\xa1\x3c\x38\x39\xdc\x7d\xe4\xc8\x95\x77\x4b\xff\x5b\xdb\x9b\xdd\xf3\xba\x5b\x15\x46\xa7\xe2\x18\x1d\xe2\x2b\xde\x6d\x6a\x55\x19\x97\x63\x19\x36\xe4\x98\xe9\xd4\x49\x88\x73\xe5\x5c\x16\x3f\xc3\x73\x63\xb7\x8d\x7f\x43\x5d\x2f\xa8\x13\xb3\x23\x7b\xea\x45\x34\x02\x84\x35\x05\x9b\xae\x0f\xa9\xed\xb1\xb3\x47\x7c\x88\x11\xff\xee\x5c\xf9\x7f\x3d\xb1\x95\xd5\x93\x69\x6b\x33\xab\xdb\x48\x0a\x37\x5b\x25\xa7\x85\xb0\x34\x78\x86\xe1\x64\x82\xb5\xb9\xf6\x9b\x13\x57\xd2\x32\x73\xcf\x71\x51\x66\x9d\x4c\xaf\x39\x84\x06\x16\x22\x3d\x2d\x1d\x71\xae\x43\x0f\xe7\x63\xa5\xc3\x9f\xcf\x00\x92\x66\xb5\x78\xe6\x8e\x06\x4d\xc2\xc3\xd0\xe0\x00\x50\x57\x91\x7e\x60\xb9\x4e\x41\xa4\x72\x93\x27\x3d\xd7\x70\x2b\xcd\x08\x99\x4c\x58\x8e\x78\x74\x42\x03\x84\xbc\x44\xc0\xb1\xc0\x8a\x7c\x51\xe9\x1e\x1b\x96\x96\x49\x0b\xc2\x44\x32\xd1\xda\x08\xe2\xe3\xd8\xef\xbd\xd4\x20\xb4\xe1\xd9\x29\xd8\xd4\x71\x2b\xe2\x71\x51\xf7\x18\xea\x56\x7d\x26\x0d\x9b\x42\x25\x1e\x4f\x1d\xaf\x2d\xb8\x6e\xaa\x92\xf5\x80\x56\x65\x9c\x74\x32\x75\x9d\x3e\x08\x39\x9e\x58\xd3\x63\x20\xfe\x06\x44\x97\xaa\xdb\xa9\x10\xd6\x30\x9e\x65\x7e\x0a\xf1\x86\x55\xc9\xd2\x86\x1d\x34\x93\xa1\x7b\xfe\xf7\xb9\x7d\x6a\x25\x17\x82\x21\x1d\xf6\x18\x65\x6d\x39\xc9\xad\x9c\x3a\xd2\x49\xeb\xa3\x00\xed\xa4\x80\xd0\x55\x20\x45\x46\x03\xeb\x5a\xc5\x6e\x27\xd8\xf2\x14\x60\xb4\x6e\x5f\xe0\xea\x6e\x5f\x84\xf2\xdc\xe5\xd4\x63\x2a\xc1\x0a\x3d\x50\x00\x3a\x62\x0a\xc4\x5a\x83\x6f\xe1\x97\xb3\x6a\x76\x7f\x0b\x1f\x1d\x98\xc3\x8a\x9c\x13\x39\x9e\x78\x6a\x72\x42\x47\xaa\xef\xc2\x8e\xd5\xdb\x4b\xdf\x6f\x45\xcd\x1b\x51\x6c\x90\x59\x51\xf3\x77\xb5\x6f\x53\xb7\xeb\xb4\xde\x5b\x0f\x01\x98\x7a\x39\x8c\x17\x01\xa9\x85\x43\x52\x3b\x66\x0b\x2e\x15\x50\xdf\x49\xd6\x53\x61\x99\xbb\x9c\xd5\x61\xb3\xd2\xf1\x5d\x2a\x4d\x86\x17\x9c\x44\x70\x7f\xbb\x53\xa6\x15\x9d\x10\x8a\xc3\xdc\x64\x06\x89\xe0\x26\x14\x0f\xa6\x59\xe8\xa9\xc0\xa8\x74\x96\x02\x15\x61\x0a\xc2\x93\x92\x1d\x88\xc1\x78\x10\xe1\x8e\xa1\x4e\x70\xd8\x8b\x04\x17\xe0\x12\x80\x41\x86\xb0\x89\xb6\x00\x9b\x5a\x84\x94\x25\xee\x25\xa1\x50\xba\xce\x41\x25\x71\x6a\x07\xac\x64\xc7\x9a\x79\x27\x77\x72\xdc\xae\x7a\xec\x83\x69\x69\xee\xd9\x27\x19\xb6\x9b\x27\xf9\x67\xc1\x0b\x3b\x14\xdc\x3e\x85\x23\x79\xd9\xa1\xfc\xc0\x8d\x85\xa3\xc4\x1e\x04\x1b\x6b\x5b\x6d\x17\x9a\x5d\xc7\xf2\x5e\xa8\xd8\x69\xda\x7a\xd5\x9e\xde\x19\xde\x6d\x0d\x35\xcf\x33\x62\x6a\x4b\x32\xc7\xba\xe7\x82\x04\x6b\x38\x94\x80\x55\xba\x60\x39\x0b\x9c\xec\xcd\x7c\xa2\x72\xca\x15\x84\x85\x82\x6d\x90\x3e\x62\x52\xa5\x80\x3c\xac\xc6\x8d\x30\x83\x0c\xa6\x19\xa8\xb4\x81\xac\xd6\xee\xc1\x6f\x4c\xeb\x60\x58\x48\x31\x3a\xac\xa1\xe7\xc5\x64\x79\x69\x76\x30\x93\x3f\x6a\x44\x80\x7b\x1d\xff\x68\x11\x00\xc8\x78\x46\x72\xbc\x32\xcc\xbc\xd9\x34\x2e\xe3\xc9\x48\x8a\x89\xa8\x50\x65\x96\x43\xe9\x84\xc4\x52\x01\x56\x53\x0e\x91\xf5\x1f\x88\xc7\x24\x2b\x51\x70\x20\x73\xc1\x61\xf0\x83\x28\xad\xfa\x4a\x76\x89\x61\xc5\xa1\x3e\xf2\xcd\x51\x32\x4f\x7c\x0f\x73\xc4\x58\xc6\x17\xc2\x57\x28\xa9\x87\xb4\x1f\x44\x97\xbe\x40\x95\x2c\x34\xda\xfd\x9b\xe2\x66\xb9\xd2\x07\xd2\x68\xda\xf0\x82\x99\xe6\x15\x1a\xc9\x31\xe3\xc6\xc8\xb1\xc2\x87\xda\x7d\x3f\xb8\xce\x45\x32\x88\xc9\xd2\x45\xc1\x4c\xac\xbc\x5f\x9b\x4d\x2f\x3e\x95\xcb\x36\xe2\x18\xc6\x62\x85\x40\x64\x73\x58\xca\x44\x24\x77\x20\x42\x88\xd4\xaf\x2b\xc8\xaf\x12\x11\x85\xef\x45\x36\x63\xa5\x91\x6a\x3c\x60\xd4\x05\x88\x39\xc1\x82\xe9\xd3\x49\x62\xe7\x01\x29\xfe\x9e\x64\xc7\x9e\x56\x38\x46\x8f\xe9\x7a\x73\xf7\x76\xfc\xe2\x18\xcf\x7b\xad\xab\x46\xa9\xc8\x05\x0a\xcc\x5a\x31\x5f\x64\x85\x5b\x0b\xa8\xa7\x88\x64\x5b\x12\xee\x6f\x63\x00\x42\xc4\x86\x08\x0c\xae\x98\x28\x0a\xbd\xe8\x95\xf1\xdb\xf8\x4c\x7b\xe0\xe7\xd9\x79\x17\x80\xd6\x24\x97\x95\x46\x0c\xd8\x6f\x13\xa1\x16\x1c\x38\xb7\x65\x64\xf9\xed\x55\x3d\x54\xdd\x93\x4f\xd7\x18\x9d\x48\x1e\x0d\x96\xf3\x59\xa6\x39\x20\xb9\x66\x90\x22\x86\xc9\x3f\x3c\xd3\x6a\x8c\xea\x08\x07\x27\x40\x91\xc6\xef\x6a\xc8\xa4\xc4\x5e\x22\x95\x11\xee\x38\x39\x09\xc0\xe7\x00\x9f\x5a\xed\x15\x52\x27\x41\xd2\xd0\xd5\xe4\x7a\x84\x58\xec\xe9\x52\x7d\x28\x55\xd8\xdf\x41\xb5\xd3\x90\x04\x82\xab\x0d\x91\x36\x74\x51\x11\x4a\x19\xf3\xfc\xa0\x87\x09\x37\x6c\x28\x9c\x08\x15\x93\xda\x6a\x2a\x8f\xf4\x9b\x4f\x2d\xfb\xa5\x1c\x8a\x4c\x58\x84\x60\x25\xe8\x64\xa8\xda\x6a\x0b\xc4\xc2\x61\x53\x7e\xd7\x7e\xe2\xe0\x6f\x78\x3d\xe8\x2f\xc3\x19\xe4\xa0\x82\x4a\xaa\xc0\xf1\x21\x53\x1e\x5c\x03\xb5\x99\xf8\x0d\x08\xfe\x23\xe0\x2a\x61\xd1\xed\x27\x17\x4e\xf5\x8a\x27\xf7\xcc\xb5\x89\x21\xc2\xd5\x0c\x60\x84\x33\x31\x45\xf2\xaa\x44\x66\x7e\x4a\xf3\xe7\x89\xf4\x96\xda\xba\x06\x0c\x3a\x45\x77\x85\x4e\x92\xb2\xe8\xa1\x6a\x8f\x65\x7f\x7a\x8d\x1b\x5a\xad\x73\x71\xff\x78\xe8\xa2\xbb\xe1\x36\x6d\x49\x47\xa0\x8e\x10\xc9\xa2\xd3\x0c\x27\x75\x6e\x90\x66\x3f\xf0\x95\x2e\xfc\x7e\xb4\xee\x26\x61\x27\x37\x17\xea\xb4\xae\x54\x8e\x30\x75\xd4\xe7\x1b\x3f\x4c\x64\xe6\xf4\x29\x95\xb8\x01\x02\x8d\x78\x91\x49\x51\x20\xeb\x31\x5e\x17\xd3\x0f\xca\x0f\x5f\x2d\xc7\x7d\x86\xcd\x0e\x2b\x05\x92\x20\xfd\x01\xeb\xb6\xd0\x59\x36\xe4\x09\x94\x09\xae\x71\xca\xd8\xd3\x66\x74\x76\x2f\x18\x4f\x0a\x6d\x4c\x38\xc7\x85\x80\x83\x3b\x60\x1f\xb8\x6d\x4e\xc6\x9f\xcd\x8a\x14\x58\x54\xbc\x85\x1b\x1d\x7a\x8e\xdf\x61\x4e\xe0\x72\x22\xdf\xa0\x1b\x33\xe1\x4e\xae\x44\x40\xc0\xd2\xa0\x52\x99\x6b\x63\xe4\x10\xab\x00\xf8\x99\x83\xd5\x05\x4e\xeb\x70\xc6\x46\xf2\x31\xdc\x93\xc6\x6b\x2b\xd5\xfc\x16\x0f\xd8\x7f\xe9\x12\x92\x1b\x47\x92\x2c\x34\x98\xda\x33\xa7\x0e\xa6\x62\x58\x8e\xc7\x50\x8b\x7c\xc6\x8c\x00\x63\x3b\x0d\x84\x83\x57\xfa\x43\x8d\x21\x64\xda\x9f\x7b\x94\x62\x26\x4e\xeb\xe8\x07\xad\x23\xba\x75\xc1\x98\x06\x8d\x21\x08\xe1\x6f\x8c\xf4\x2a\x2c\xbd\x06\x04\x0e\xef\x99\x2e\x60\xbf\x43\xdf\x10\xd8\x82\x56\x3c\x72\xc3\xe2\x71\xc8\x42\x91\x69\x63\xf9\x50\x66\xd2\xce\xfc\x50\xf8\xad\x15\x8f\xb6\xb9\xff\xf4\x0c\x6f\x62\x91\xce\xe2\x4d\x7d\x9e\xc7\xb1\x2e\x05\xac\xf7\x42\x8e\x78\x96\x31\x7f\x20\x21\x55\x58\x5a\x26\x14\x00\x8d\xbb\xb7\xc8\x4b\x01\xdd\xe4\x07\x7c\xcb\x9a\x2c\x7e\x28\x12\x3d\x25\x91\xb0\x4d\x62\xa9\x52\x94\x61\x5e\xa9\x40\x88\x6f\x11\x55\x64\x68\x76\x29\x0d\x6c\x67\x26\xe0\x26\x83\x95\x30\xb1\x54\x2e\x44\x86\x58\x96\x6c\xc6\xa4\xe3\xad\x53\xe1\x6b\xf5\x71\xf6\xfa\x55\x7f\x2a\x55\x69\x05\x33\x9a\xdf\x79\xec\x70\x78\xb3\xdc\xda\xc2\x54\x32\xca\xf9\x86\x77\x50\x8f\xda\x66\x50\x39\x8b\x5b\xa5\x35\xd7\x84\x5e\x00\x5a\x85\x40\x44\x6e\x78\xa3\x71\x60\xb8\xe1\x0b\xe9\x33\x60\x17\xda\x7a\x4b\xf2\xa8\xe5\x1d\xc0\xf7\x56\x40\xc6\xa7\x92\x19\x3b\x70\xfb\x42\xa2\x08\x65\x76\x92\xdd\xaa\x4e\x77\x77\x17\x33\xa3\x6b\x48\xfc\x71\x47\x3d\x37\x27\xee\x37\xb9\xd6\x61\xb4\x38\x9e\x3d\xf0\x99\x71\x2c\xa6\x9c\x8a\x94\x8d\x61\xc6\x8e\xa3\x44\x17\x10\xde\x7d\x68\x41\x45\x5a\xaa\xb8\x28\xf2\x2a\x4d\x85\x9d\x68\xa0\x8b\xdf\xf8\xea\x3d\x88\xee\x6c\xb4\xcf\x4a\x18\xd3\x73\xbb\x09\x84\x44\x83\x3d\xe2\x94\x15\x44\xcb\x4a\x3f\x74\x47\x84\x78\xd2\xa8\xb4\x65\xb1\x73\xeb\xdb\x29\x17\x53\xad\xce\x28\xd4\x60\x95\xb2\xd4\x68\x0d\xa1\x7a\x86\x4a\x26\xe9\x5c\x90\x5a\x94\x42\x2b\xc3\x8a\x52\x29\x12\xe3\x21\x7f\xa9\x9b\x45\xee\x0e\x99\x98\x1f\x64\x63\x1e\x54\x9f\xeb\x52\x0e\xe4\x1b\xa1\xc2\x21\x93\x49\x2c\x11\x66\x50\xb4\x1d\x12\xb9\x77\x4b\xfa\x55\x49\x05\xd4\xc4\xbb\x5c\x1e\x26\x3a\xab\x82\x23\x1d\xdf\xbb\x00\xbf\x11\x4e\x18\x02\x92\x40\xd6\x2d\xc4\x18\x02\xae\xbc\x64\x34\xe5\xee\x5f\xfb\xe0\xa3\xaf\x3a\xf8\xa8\x4b\xf6\xc1\x07\xda\x7a\x70\x17\xee\x38\xc0\x51\xa7\xfb\xc8\xff\x7d\xf0\xd4\x3e\xf2\xff\x79\xa2\x65\x9e\x20\xe8\x3f\xf6\x83\x2e\x7e\x53\x8e\x51\x44\x35\xd4\xb2\x89\xe8\x55\xaa\x48\x93\xf1\xb6\x34\x3d\xaa\x05\x0d\x00\xac\x09\xfb\x57\x29\xc0\x34\xa2\xef\x01\x50\xc6\x89\x5e\x9e\x33\xfd\xcd\x87\x0e\x80\x70\xd8\x18\xe1\xd3\x55\x70\xf9\xd3\x1c\xa2\xe7\xa1\x8a\xaf\xaa\xcf\xd2\x89\x55\x5d\x62\x38\x54\x44\x84\x1b\xf7\xcd\xca\x80\x73\x3c\x27\x03\x76\x1c\xde\xd5\xb6\x91\x41\x2b\x80\xff\x04\x8f\xf0\xa7\xab\x9d\x7b\xe0\x2f\x1a\x33\x7f\x32\x50\xc3\x79\x12\xed\xc2\x43\xe2\x7b\xbc\xaa\x5c\xda\x6b\x1d\xc2\x0a\x1e\x1f\xdf\x87\x40\x7e\x77\x90\x82\xb7\x17\x5f\xf1\x1e\xe3\xec\x4e\xcc\xf0\xc1\x87\xa4\x11\x51\xf0\xd0\x18\x2a\x0f\x92\x3c\x72\x27\x66\xde\x02\x57\x76\x8a\x01\xea\x56\xbb\x12\x2f\x00\x54\x2f\xf4\xea\x5d\x98\xf0\xfa\xe8\xd9\x11\x33\xf7\x2b\xe9\x9e\x26\x01\x94\x78\x69\xa8\xde\xa2\x56\x80\x47\x04\xfe\x15\xba\x90\x5e\xf0\xf9\x95\x67\x32\x0d\xa4\xc2\x63\x7c\xae\x7a\x4e\x3f\x73\xff\xe7\xec\xd1\xc9\xf1\x3d\x76\xaa\x85\xb9\xd0\x16\xfe\x39\x60\xef\xc9\x36\xfb\x61\x93\x02\x9d\x38\xf2\x2a\x41\x52\x31\x38\xc7\x6e\xaa\xb1\x50\x60\x82\x4e\x1a\x76\x57\x1a\xf7\x2c\xeb\xc2\x4f\x19\x04\x4e\x4c\x10\xc2\x2e\x62\xcf\x18\x18\x53\x5a\xfb\xc0\x95\xba\x7e\xe2\xb5\x2e\xe9\x6e\x71\x57\xef\x01\xef\xe9\xc3\xc2\x8f\x29\x45\xc0\x48\x35\xce\x42\x64\x51\x8f\xc4\x75\x5f\x26\x14\xa4\xd8\xbc\x10\x5e\xbf\x57\x8c\xea\x6f\x92\x31\x00\xfb\x43\x19\x3a\xe3\x09\x14\x94\x2b\xd0\x60\x47\x89\x20\x32\x61\x90\x06\xc2\x20\x3d\xe4\x79\xea\x26\x77\x64\x36\x8d\x22\x99\xe1\x7c\xef\x92\xe5\x00\xb7\x5c\xca\x6b\xca\x2c\x83\x6a\x05\x90\x39\x36\xcf\xde\x43\xbc\x96\xd2\x15\x50\x38\x16\xc0\x8b\xe2\x73\xf0\xd1\xc2\x78\xac\xe3\x8b\x53\xac\xed\x2a\xd8\x8d\xce\x75\xa6\xc7\xb3\x78\x36\x54\x38\xdf\x1b\x6e\x80\xa1\x95\x43\xba\x90\x5e\x0f\x8e\x3f\xe8\xc0\x99\x9a\x91\x63\xab\xee\xd5\x82\xe7\xac\xb6\xa4\xe1\xcc\x9b\x30\x80\xa3\xed\x1a\xe2\x72\xd1\xbb\xb0\x8d\x96\x01\x64\x78\x27\x45\x96\xee\x98\x02\xe0\x71\xff\x6a\x29\xb0\x0b\x63\xc3\xaa\x64\x50\x6a\xb2\x38\x0f\x14\x01\x6e\x83\x8b\x98\x2a\x94\x82\x89\xa1\x73\x14\xc2\x5c\x0c\xc5\xfa\x04\xed\x6c\x55\x3e\x9f\x2b\x91\x62\x82\xf3\x69\x2c\x6c\x4b\x1c\x06\x2a\x8f\xee\x5a\x9f\xce\x14\x9f\xca\x84\x8c\x40\x38\xa4\x47\xc0\x64\x63\x6e\x45\xf5\x3c\x28\x3e\xcc\x22\x54\x59\x6f\x37\x0a\x36\x66\x1f\xc9\xb7\xc0\x97\xe7\x03\xb7\x4f\x57\x9c\xe7\x53\xf7\xe8\x27\xa8\x9e\x5e\x68\x0b\xe6\x1f\x32\x94\x19\x7c\x4c\xc0\xfa\x19\x86\x1b\xb0\x2b\x4c\x8a\xa5\x40\x46\xf0\x8c\xbe\x1e\xbc\xfe\x6e\xc0\x8c\x10\x95\x76\x26\x8d\x71\xcf\x2d\x29\x68\x6f\x5e\xff\xf5\xcd\x9b\x0d\xd0\x2a\x75\x7a\x72\x7e\x7a\xb5\x2a\xdb\x10\x5b\x35\x35\x82\x5c\xa7\xec\xfc\x92\x15\x60\x01\x0d\xee\x9e\x38\x72\x72\xe3\x09\xad\x62\x12\xbe\x59\x73\x4a\x7e\x3a\xa6\x75\x3e\xb0\xd7\x08\xc2\x3e\x9c\xb1\x4b\x9d\x52\x21\x17\x6e\xe3\x40\xcf\x10\xc1\x29\x4d\xf3\x1c\xbe\xb2\x13\x26\x94\x2d\x48\x4e\x40\xc0\x76\x22\x05\x50\x88\x76\xf0\x9c\xa2\xb9\xa9\xf4\x35\xb7\x18\x05\xfc\x9a\x0c\x27\x21\xae\x5a\x8f\xd8\xf9\xe5\xfd\xf7\x20\xab\x9d\x5f\xde\xbf\x79\x4a\x19\x60\x57\xd9\xa9\x88\xde\x57\xac\x3c\xf7\xe7\xa7\x71\x26\x4e\x2d\xf8\x06\x0d\x3b\xba\x4c\x3d\x16\x60\x48\xbe\x44\xdf\xdf\x5b\x76\x5b\xbe\x7a\xf5\x5d\x72\x49\xbf\x5e\xf0\xa9\x80\xbf\x88\xb7\x47\x47\xf5\x9f\xae\x71\x83\x12\xc7\x60\xce\x4f\xb1\xd1\x06\xa1\x70\xbc\x61\x41\x6f\x5d\xd0\x7c\xe5\x26\x7c\x82\xf0\xeb\x1d\x3f\x41\x37\xae\xd3\xad\x9e\xdc\x52\x51\x40\xb3\xe3\x73\x2b\xd6\xf6\x39\x6e\xeb\x61\x7f\x0c\xbd\xc0\xfe\x97\xe0\xc2\x54\xe2\x01\x32\x20\x06\xec\xa7\x99\xf7\xce\xf4\xc2\xfb\x12\xf5\xb4\x36\x86\x0a\x98\x21\xe0\x7f\x8f\xbe\x99\x72\x55\xf2\xac\xef\xfe\xd1\xf7\xc9\xc8\xc8\xee\xbb\xc2\x7c\xee\xe4\xf5\xed\x12\x89\xb6\x49\x22\x7e\xc7\x28\x67\xca\xd4\x59\xa9\x90\x79\x13\x73\x68\x8f\x25\x89\x39\x39\xed\xab\x60\xf6\xff\x04\xfb\x0f\x45\x86\xd7\x6f\x61\x8f\xc9\x51\x95\xb5\xbf\xd5\xe6\x55\xd3\xb8\xd0\x56\xbc\x45\x95\x28\xb0\xd5\x54\x24\x19\x2f\x50\x71\x02\x5e\xe3\xc6\x43\x17\x3a\xa4\x4c\x80\x56\xe4\xf4\x74\xaa\x7f\x6d\xca\xd1\x48\x26\x12\x1d\xab\x98\xb9\xdd\x0b\x85\xe4\x15\x43\x87\x61\xca\x2d\x07\x47\x5d\x89\x6e\x7d\xef\x53\x96\x34\x46\x3a\x60\x27\x3c\xcb\x22\x8f\x85\x54\xc6\x0a\x9e\xc2\x7b\xcf\x01\x92\xb9\x4f\xca\x1a\x58\x34\x50\x2d\x63\xd7\x42\xc0\xf2\xdf\x1e\x1d\xe5\x85\x7f\x6f\x7f\xfc\xeb\x77\x7f\x7d\x4d\xf5\x26\x7d\x20\xcd\x13\x08\xa1\xc7\xf5\x3c\xad\x55\x7c\x60\x15\x8f\x7f\x32\xcc\x02\x9e\x01\x4e\x7c\x1b\xa7\xf9\xfa\x4a\xba\x1d\x57\x93\x6d\xca\x0f\x55\x45\x96\x70\x47\xab\xfa\x10\x15\x9e\x85\xdb\xf7\x2a\xa5\xa4\x0e\x66\x7c\xc2\x73\x9e\x48\x3b\xdb\xa0\x0a\x5c\x42\x9f\x7e\xfd\x24\xf4\x8b\x6c\xd2\xcf\x6a\x0b\xb1\x0b\x73\x54\xdc\x18\x0b\x39\x17\x85\x01\x37\xae\xed\x7b\x58\xe4\x40\xa6\xf5\x09\xdc\x15\xd0\x24\x64\xac\x78\x80\x9b\x60\xec\xf2\xac\x3c\x64\x1d\xd7\x63\xe3\xd7\x2f\x55\x16\x73\xcd\xd0\xcd\xee\x39\xc9\x1f\x07\xff\x04\x35\xbb\x5d\xa8\x9a\x9d\xe1\x49\x17\xc4\x89\xc7\xaa\xc3\xbd\xe4\xf0\x8f\x14\x15\xcc\xa0\x2e\x26\x35\x15\x73\x41\xe0\x67\xba\x30\x54\x63\xfd\xb5\x35\xc3\x3e\xba\x44\x47\xc0\x0a\x97\xc6\x76\xb4\x4e\x5b\x4e\xf9\xb8\xb3\xe0\x11\x6a\xe9\x31\xfc\x2c\xd4\xc8\x54\x73\x49\xe6\xdb\x9e\xe7\x13\x3f\xd4\xb9\x1b\x69\x2b\x21\xd9\x4d\xee\x5c\x8d\xe6\xaa\xc9\xae\x67\x2a\x82\xd4\x3c\xe8\x66\xe9\x61\x43\x43\xa2\x4c\xcd\x51\x59\x4a\x4c\x20\x46\x61\x26\x9b\xf9\x40\xe2\x59\x24\xa9\x6d\xc1\x48\xdc\x57\x9b\xa3\x0b\xb9\x35\xd5\x10\x86\xe6\xb1\x16\x16\x61\x0d\x6d\x3b\x71\xec\x0d\x2a\x64\x78\x61\x51\x89\x7b\x51\xb0\xdc\x03\x39\xa0\x67\x43\xe9\x07\x14\x24\x83\x71\x65\x03\x47\x07\xbe\x27\xc7\x54\x49\xa5\xe3\x39\xf7\x55\x25\x2a\xb1\xc0\x57\x62\x59\x6c\xf9\xd8\xf6\xc0\xfb\x29\x62\xd9\x8c\xad\x0e\x3c\x4d\xff\x5c\x7d\x5e\x79\x0c\x82\x4a\x01\xa3\x83\xe0\xe3\x17\x0f\x45\x71\x05\x3b\xa0\x4a\x0f\x87\xb1\xf7\xf7\x0b\x39\x32\x36\xd1\xed\xaa\x7b\xbb\x42\xbf\x0b\x0d\xbd\x9b\x73\xad\x9b\xdc\x41\xcb\x8b\xc2\x27\x3a\x38\x32\x8f\xa3\xe6\x14\x76\x5b\xf7\xc0\xaf\x7f\x19\x86\x5a\xdb\x95\x36\x9d\x9f\xb4\xb6\xec\xfc\xb4\x75\xc8\x0d\x2e\x60\x78\x32\xae\x4a\x65\xe5\x54\x74\x8b\x61\x3b\x69\x7c\xc5\x7c\x44\x5b\xdb\xac\x02\x46\x40\x41\x8d\x0b\x31\xd5\x56\xb0\xe3\xcb\xf3\x10\xe2\x9f\xdc\x89\xe2\xed\xd1\xd1\xeb\xc1\x0f\x83\x57\x9d\x0b\xe6\xc4\x11\x54\x8e\xb3\x65\xdd\x26\xff\x0b\xb4\x5d\x3e\x65\xd0\xcc\x5f\x96\x50\x62\xa4\x5f\xbc\xa4\x79\x7e\x37\x78\xfd\x66\xf0\xaa\xff\x6a\x30\xcc\xf5\xe0\xfb\x3e\x9f\xa6\x6f\xbe\xdf\x68\xb6\xe5\x50\x5c\x16\xfa\x71\xd6\x71\xc2\xbe\xf9\xd2\x39\x6f\x38\x8f\x4c\xd8\xee\xb3\x70\xd2\xd6\x8e\xe7\x40\x2a\xd1\xca\x73\xff\xd1\xb7\x6b\x1f\x98\xbd\xd3\x85\x07\x94\xa3\x2e\x43\x62\x50\xc2\x29\xcb\x9d\xac\x9e\x80\xa4\xd7\xb0\x32\x57\xe8\x10\xec\x83\xe0\x85\xc2\x70\x1d\x38\x06\x53\xae\x0e\x7e\x38\xf4\xbd\xf6\x65\xfa\xd6\xdb\x22\xa6\x5c\xfd\x38\xd0\xc5\xf8\x28\x93\xaa\x7c\x74\xff\xec\xe7\x4e\xee\x72\xff\xf5\xc3\x51\xf5\xc1\xe0\x87\xc1\xc4\x4e\xb3\x4d\x83\x1a\xa4\x1a\x23\xf7\xeb\xc0\x96\x3e\x85\xfa\x5c\xf8\xc9\x8e\x58\x93\x36\x28\xe7\x2d\x9f\xc0\xa7\x6b\x06\xcd\x96\xdc\xa9\x23\x61\x93\x23\x6d\xfa\x85\xc8\x00\x9c\x01\x2f\xd6\xa9\x18\x4a\xae\xd8\xfb\x8b\xcf\x47\x58\x00\xea\x47\x76\xf0\x30\x11\xe2\xf7\xd9\xe1\x26\xf7\x0b\x71\x1a\x3e\x7f\x5e\x79\xa8\xae\x43\xc3\x8d\x4f\x55\x75\x2e\xeb\xa7\xe8\xa6\xcd\x89\x91\xb8\x57\xea\x4a\xa4\xec\x67\x6e\xa1\x86\x91\x09\xd2\x19\x4f\x12\x61\xcc\xa0\x10\xe9\x84\xdb\x41\xa2\xa7\x4e\x42\x2b\xa7\x3e\xee\xf7\x48\xa8\xfe\xe7\xeb\xa3\x2b\x91\xfe\xf3\x67\x6e\xff\x79\x5d\x0e\xc3\x42\xfe\xf9\x31\xd4\xd0\x3a\x7a\x7d\xe4\x0e\xda\xd1\xd5\xcf\xd7\x1f\x8f\xc6\xc2\xba\x83\xd0\x47\x6a\xf4\xdd\x2b\xb9\xce\x31\x9c\x7b\xdd\xdb\xc3\x14\xaa\xfb\xdb\xbe\x01\xf3\xef\xdb\x42\xb6\xdd\x72\xde\x3a\xbc\x54\x8b\xf9\xd9\x32\x8e\xbb\xe4\x92\xf5\x16\xc8\x04\xf4\xe7\x8d\x03\x2f\x10\x58\x0f\x1c\xf0\x1d\x82\x0d\x5b\x5a\x93\x23\x1e\x8c\x21\x55\x14\xb9\x48\xe9\x98\xd5\x22\xc3\x77\x18\xb0\xfe\x6b\x3d\x2d\x99\xc2\xd3\xdd\x7f\xc2\xec\x7c\x65\xc1\x87\x42\x5a\x2b\x90\xcd\x42\xb4\x9f\x1e\xf5\x42\x22\x8a\x3b\xf7\xb7\x2f\xee\x5f\xdf\xbe\xd8\xe0\x3a\x8f\xfc\x30\xab\x7c\xa4\x6e\x26\x34\x4b\x24\x89\xd5\x44\xb3\x90\xeb\x1a\x90\x62\x9c\xf4\x41\x71\xa3\x3b\x06\x53\xa8\xa6\xbb\x9b\x13\xd3\xa5\xbc\xe8\x86\x95\x45\x25\xd4\x59\xb4\x18\x9e\x9a\x7a\x81\x39\xc0\x55\xed\xfe\x2c\x45\x54\x9f\xab\x2a\xfa\x74\x07\xe3\x7c\x44\x6b\xa2\x04\x36\xce\x72\x29\x10\x50\x22\xdc\x98\xe0\x89\xc0\x3f\x3a\x1e\x5f\x78\x54\xec\x1e\x0a\x0b\x14\x64\x57\xe5\x5a\xa0\x67\x19\x33\x41\xd9\xff\x7b\xfd\xe9\xe2\xe8\xbd\xf6\x31\x03\xc0\xce\x31\x95\x11\x43\xd7\x4c\x99\x4c\x18\x07\x94\x04\x77\x66\xae\x01\x69\x79\xca\x95\x1c\x09\xe3\x18\x3e\x71\x37\xf3\xf7\x6f\xff\x81\xef\x4e\xc8\x0d\x26\x7c\xac\x10\xc7\xef\x37\x99\xca\x68\x46\x66\x9f\x07\x69\x27\x30\xa5\x5c\xa7\x34\xe9\x07\x98\xac\xe5\x77\x84\x8a\x83\xee\xef\x4c\xde\x89\xb7\xec\x16\xc0\x32\xa3\xb1\xff\xdb\x09\xbc\xff\x73\xfb\x02\x5e\xdf\x42\xb0\x5b\x28\x11\x7b\xfb\xa2\x96\x9c\x8e\x70\xc6\x91\xc1\x8e\x06\xc7\x80\xce\x42\x8e\xc7\x90\x3e\x03\x79\x04\xf7\x42\xd9\x43\x77\xbc\xe4\x88\x29\x1d\x35\x0e\xd5\xac\xc3\x85\x9c\x9b\xcc\xdf\xbf\xfd\x87\x9b\x49\x7d\x75\x4c\xaa\x54\x3c\xb2\x6f\xf1\x42\xbb\x27\x57\xa7\x87\xf4\xda\x9a\x99\xb2\xfc\x11\xe2\x6b\x26\xda\x08\x85\xd9\xee\x56\x63\x30\x21\x20\x3f\x3d\x88\x2c\xeb\x63\xda\x4d\xca\x1e\xd0\x9c\xec\x09\x8a\x81\x81\x39\x2f\xec\x02\x56\xda\xf9\x5c\x76\xcd\xe7\xe8\x52\x57\xf7\xab\xc9\x96\xf8\xc3\x16\x0b\x6e\xac\xa1\x59\x25\x71\xd1\x42\xa8\x2a\xc9\xd3\xaf\x66\x2d\x34\xef\x68\x31\xde\xc5\xd3\x8d\xf3\xfa\x28\x0d\xd6\xf8\x0c\x53\x7f\x25\x04\xd1\x40\xa4\x6c\xc4\x5d\xa6\x3c\x45\xf6\xc3\xd5\xd3\x63\xb4\x3a\x92\x81\x63\x27\x99\xf5\x29\xfa\x01\x20\x5b\x13\xad\xd0\xfb\x94\x2c\xf0\x36\x2d\xa3\x51\x29\x57\x5d\xc4\xcf\x55\x90\xcc\xd3\x1e\xd9\x52\x76\xbe\x75\xdb\x1a\xd6\x2e\x83\xc3\x8e\xac\x95\x8b\x05\x87\x66\x53\x76\x70\xf9\xeb\xa1\x4f\x34\xc3\xaa\xd6\x21\x9b\x0c\x62\x14\x48\xe4\x1c\xce\xc0\x25\x57\xc5\x84\xe8\x02\x62\xae\xc0\x55\xc7\x33\x3d\xd6\x84\x56\xb6\x6b\xd7\xe3\x3e\x13\xf3\x6b\xce\xc4\xdc\x67\x32\xfe\x59\x32\x19\xff\xad\x61\xe0\x9b\x5c\x71\x3d\x48\x78\x1e\xcc\x3d\x15\xa3\x60\x15\x27\x0b\x75\xe6\x1f\x6a\xb1\x98\x60\x95\x1c\xb0\xcb\x55\x4c\x76\x77\x41\x1c\x2d\xcc\xb5\x9d\x94\xdb\x21\xca\xcf\x11\xb3\x73\x4c\x40\x23\xb2\xc5\xc7\x7d\x44\xca\xec\x11\x85\xf3\xf9\x08\xf2\x39\x2a\x6f\x0c\x3f\xff\x14\x34\x5d\xf5\xae\x87\xbf\x3f\x55\xfa\xec\x9c\x60\x50\x6b\xb5\x6d\x1a\x6d\xb3\xf7\x93\x8c\xcb\x65\xe9\x45\xad\xed\xf1\x69\x28\x8d\x28\x5e\x06\x0e\x4d\x41\x7e\x29\x4b\xa0\x05\x6a\xf0\xcd\x9d\xde\x0b\x06\x7b\xc1\x60\x2f\x18\xec\x05\x83\x67\x15\x0c\x80\x65\xad\x5f\x30\x86\x6c\x80\x2c\x99\xf0\x82\x27\x56\x14\xd2\x58\x99\x50\xac\x26\x89\x07\x74\x08\x49\x0c\x80\x4c\x1f\x5e\xda\xc9\x53\x89\x00\xf8\x17\x60\xb0\xcf\x23\x06\x20\xe9\x9e\x40\x16\x58\x20\x6e\xc1\xd2\x9e\xfc\xd5\x5f\x40\xc6\xaf\xee\xe5\xc7\xb7\xf9\xe9\x9f\xff\x2e\xf8\xf4\xcb\x3f\x24\xa3\x71\xb6\xb0\xf4\x79\x7e\x9f\x74\x43\xaa\xbf\x2c\xf4\x50\x7c\x51\x94\xfa\xdc\xcd\x20\xf5\x76\xf3\x3f\x2e\x2e\x3d\xb9\x1d\x9f\x10\x9c\xbe\xff\xd5\x81\xd3\x7f\xa6\x9c\x17\x74\x05\xa1\x30\x37\x04\x8c\x82\x89\x2e\x6c\x2f\xc4\x07\x94\x2a\x15\x85\x81\xd7\xcf\x4d\x9f\x64\x19\x70\x8e\x8c\xe5\xbd\xf0\xd1\x9c\x01\xe1\x7e\x19\xba\x3d\x3b\x1f\x11\x0c\x0c\x80\xc4\xdd\xbe\xb8\x12\x46\xfe\xee\x34\xa8\xc2\x8a\xf4\xf6\x85\x2f\x08\xc3\x95\x87\xa0\x49\x45\x91\xcd\xa0\xac\xc5\x1c\x03\x94\x86\x0d\x05\x16\x89\x71\x9d\x6c\x12\xae\xd9\xfe\x04\x6c\x8a\x74\xff\x95\xa2\xd6\xb7\xb2\xa3\x15\x70\x73\x0b\xbf\xa9\xd7\xb3\x5f\xa0\xf1\x58\xd1\x09\xa1\x67\xaf\xbf\x7c\xdd\x10\x73\x15\x6c\xc2\x02\xe9\x63\xfd\xcc\x94\xf5\x65\x8e\x9d\x06\x3d\xb7\x4b\x0d\x51\x67\x7b\xa8\xbb\x7f\x5b\x3d\x70\x0f\x75\x87\x7f\x7f\x56\x89\x7d\xf7\xd8\x77\x8b\x35\xda\x35\x5f\xbb\x16\x00\x14\xb7\x8f\x5a\xd5\xea\xe1\x8f\x82\x5b\x31\x15\xf7\x32\x01\x74\xfd\x94\xf1\x2c\xd3\x0f\xee\xc6\x13\xb4\xb1\x93\x8b\x7c\x46\x74\x3f\xc4\x4e\x56\xfd\x74\xa9\x11\x92\x08\x63\x3e\x02\xd8\xe7\x0a\xae\x5d\xb5\xac\xc2\xa6\x62\x25\x9d\x42\x79\xa6\x54\x67\xd0\x67\x60\xf8\x07\x71\xc2\xef\x77\x9a\x5a\x89\xc3\xf5\x61\xb8\xfe\xeb\x67\x49\xe4\x88\x18\x85\xbb\x9e\x5b\x02\xcd\xdc\xcc\x72\x91\x7e\xd0\x09\xcf\x9a\xf1\x6b\xcb\x38\x45\x14\x2f\x9b\x70\x05\x6c\xd6\x60\x42\x0f\xee\xff\x8c\x2a\xa6\xbc\x65\xff\x0f\x3b\x56\x4c\x3c\x4a\x03\x2f\x01\xf9\x14\x14\xcf\xcd\x44\x5b\xff\x02\x1c\x18\xfa\xc3\x80\x28\xed\x59\x4b\xa3\x79\x9f\xfd\x24\x2c\x3f\x6c\xf4\x79\xf9\xeb\x09\x3b\x68\x3d\xe4\xcd\x96\x49\x69\xac\x9e\x86\x57\xe8\x88\x86\x47\x0c\xc7\x0a\xc4\x0a\xf2\xe2\x29\x7d\x0a\xaa\xcc\x1d\x67\xf9\x84\x1f\x22\x28\x5b\x8a\x85\x2d\x4b\x23\x16\x2c\x06\xb8\x19\xc2\x5d\xf0\xdc\x1d\xf8\x42\x3a\xd5\x77\x29\xa4\xce\x41\xbd\xab\xd3\xb0\xad\x4c\x17\xec\x58\xcd\xf0\xe7\xea\xcf\x87\x1e\xa4\xad\x72\xf2\x03\xcc\x3e\xa4\xd6\x93\x20\x47\x51\x19\x19\x14\x28\x50\xcc\x94\xb9\x53\x4b\x1a\x71\x95\xb0\x54\x43\x45\x24\xa4\x45\x78\x1d\xc4\x3b\x62\x1c\x60\x2b\xe8\xfa\x0c\xb9\x81\x82\x24\x21\x8a\x2c\x82\x0a\x6b\xef\x2f\x00\xc9\xb5\xfe\x5a\x01\x15\xe4\x18\xc9\xdd\x8b\x2f\x6b\x5c\x64\xd0\xa3\x2f\x39\xce\x03\xb1\xa2\x5c\x66\x8e\x90\x1e\x56\x2e\x84\x82\x23\xa6\x1c\x04\xb1\x85\x0a\x0d\x08\x24\xde\x03\x6d\x3e\xe3\x10\x3e\xe3\x09\x01\x29\x03\xf1\x8c\x60\xe3\xc2\x30\x71\x95\xe8\x26\xa5\x2b\x1c\xf3\x05\xaa\x73\x25\xba\x6e\x7a\x2d\xaf\xa8\x87\x08\x4c\x6b\xb9\xe1\xed\x2a\xa4\x90\x37\x6c\x6f\x53\xa9\xe4\xb4\x9c\x46\x39\xe6\x4f\xcf\x15\xab\xf5\xb7\x2b\xa6\xf3\x01\xd5\x9d\xa8\xb3\x4c\xbe\xe1\x43\x91\x75\xaa\x8e\x79\x1c\xc1\xba\xce\x10\xd4\x35\x64\x28\x42\xcc\xa3\x01\x7c\x1d\xf7\xa8\x0d\x25\xd4\x66\x5a\xb0\xc9\xb4\xfe\x93\x8c\x1b\x73\xb1\x5e\xb8\xdd\x75\xf4\x69\xa8\xf2\x5a\x39\x97\xc1\xf4\xb9\xc3\xf4\x7f\x37\x4c\xf3\x71\xea\x9e\xef\xe9\x1e\xdb\x15\x6b\xab\x1a\x06\x15\xf6\x01\xe2\x4b\xa9\x1c\x5e\x65\xd3\x58\xb0\xd8\x5f\x41\x69\xd0\x23\xf6\x4e\x66\x82\x0a\x77\x4a\x03\x4c\xd9\x31\x0e\x40\x26\x71\xfc\x40\xaa\x24\x2b\x53\xac\x91\x82\xee\x45\x08\x43\xdd\x74\x69\x1d\xb6\xed\xd7\xd0\xd0\xe7\xf6\xd2\xa9\xa8\x97\x79\x73\x3f\xcc\x45\x67\x0d\x79\x72\x87\xfa\x8f\x34\xb4\xd2\x2f\x14\x53\x16\x9b\xef\xd7\x95\x14\x03\x54\xcf\x22\x60\x9e\x45\xd6\xfb\x67\x91\xfb\x78\x62\x4b\x9e\x2d\x14\xfb\xaa\x2d\x10\x20\x28\x4c\xf8\x4e\xd5\xfa\x2f\x2b\xfe\xfd\x71\xe0\x4f\xae\xea\x6f\x12\x6d\x5a\x0d\xf6\xa4\x61\x11\xa5\x80\x90\xa7\x84\x2c\xa1\xa3\x5c\xf9\x2e\x16\xdb\x82\x40\x98\x59\xcb\x5e\xeb\xd6\x83\x32\x48\xd5\xbf\x17\x59\xa8\x7a\xcb\xcb\x9a\x7d\xf8\xe5\xae\x2b\x5d\x2f\x77\xf0\x74\x3c\x77\xb5\x9f\x9e\x13\xd4\xa4\x0b\xec\x02\x42\x2e\x2c\xf0\x35\x06\x98\x85\x56\x42\x7c\x51\x46\x4c\xd2\xfe\xaa\x2a\xab\x2b\xbf\xad\x9e\x20\x72\x28\x60\x1c\x8e\xe3\x73\x3e\x83\xca\xbd\x5b\x21\x6e\x9d\x32\x2f\xe8\xc4\x8e\xa4\x4a\xe9\x45\xd3\xa5\x4a\xd9\xe5\xaf\x68\xf5\xd5\x25\x92\x92\x87\xb3\x1d\xe2\xb5\x34\xe0\xc7\xaf\x9e\x97\x34\x3d\x26\x0c\x98\xff\x78\x96\xcd\x7a\x8c\xb3\x87\x82\xe7\xb9\x28\x18\x2f\x60\x30\x72\x3d\x35\x25\x04\x5f\x89\x3f\x44\xdb\x19\x3d\x15\x5a\x09\x26\x32\x23\xd8\x41\x15\x10\x76\xd8\x05\x88\xd5\xcd\xab\xc3\x13\x7f\xe2\xdb\xf9\x47\xce\x67\xcc\xf0\x45\x2e\x80\x36\xe2\x62\x95\x23\x04\xf9\x84\x5a\xa2\xf8\xec\xfb\xc0\xb6\xe7\x35\x25\x77\xf4\xa3\xa5\x9f\x54\xb6\x0a\x07\xfe\x37\xa8\x3d\xa6\xd1\x6a\x2b\xc0\x23\xef\xbe\x72\x4c\x8c\x6a\x64\x92\x22\xfc\x11\x0e\x4e\xc0\xf6\x62\x23\x9e\x99\x45\x0c\xbc\x03\xf4\x60\xbb\xb9\xaf\xda\xd3\x5d\x3b\x8e\xd6\xf4\x19\xad\x76\x17\xed\x3d\x45\x7f\x12\x4f\xd1\x87\x45\x7e\xa2\x5d\x8a\x92\x4f\xfb\xf8\xef\xbd\x40\x7b\x2f\xd0\xde\x0b\xf4\xec\x5e\xa0\xa7\x77\x00\xad\xe9\xfb\x01\xb7\x0f\x49\x39\x5d\xd2\x1e\x9e\x5e\x87\xe7\x59\xc6\xa0\x36\x65\xa4\xb4\x93\x4b\x81\xb0\xb2\x9e\x4a\x5f\x7f\x6e\x6d\x9d\x3f\x98\xb3\x8c\x1b\x2b\x93\x9f\x32\x9d\xdc\x5d\x5b\x3d\x0f\x5d\xd5\x1d\xe0\xec\xb7\xeb\xb9\xce\x6a\x6a\xc5\x52\x13\x68\xcb\xc7\xb1\x1a\xc5\x15\x3b\xfe\xed\x9a\x9d\x4a\x73\x17\x33\x6b\x14\xcd\x63\xf4\x36\xee\x81\xf9\x5f\x1a\x00\x48\x09\x61\x55\x64\x45\x57\x4c\x3c\xe6\xda\x54\x50\x6f\xa0\x41\x6c\xb8\x9d\x61\x0f\x1f\x8c\xc0\xd9\x0f\xdd\xec\x0d\xd0\xb1\x9d\xe2\xbf\x97\x85\x70\xab\xd8\x9c\xcc\xbe\x87\xee\xb4\xf5\x5f\x34\x09\xea\xfe\xce\x4e\xb9\xe5\x48\x57\x38\xdc\xde\xa1\x02\xb4\x73\x34\x1b\x4a\xaf\x81\xc5\x14\x5b\xb2\xba\x77\x72\x1e\x40\x78\xbd\xd5\xb9\x1e\xe6\xd8\x44\xc7\x75\xba\x6f\x5b\xd7\x09\x3f\xb8\x67\x5c\x26\x62\x07\x4b\xfd\xe3\x18\xba\x8e\xdb\x0a\x65\xcf\xb1\x55\x48\x96\xf1\xb6\x2f\x48\x95\xf1\x18\xc8\x5f\x07\xea\xaf\xc8\x27\xa3\xcd\x7d\x57\x27\x22\x9f\xbc\xbb\xde\xe0\x4c\xe1\x87\xb5\x03\xc5\xdc\xdf\xd8\xbb\xeb\x96\x43\x04\x0c\xc9\x4c\x78\x01\x49\x7c\xb9\x4e\x5f\x1a\x40\xd9\xb4\x72\xba\x08\x28\x57\xaa\x54\xac\xed\x75\xaa\xd6\x05\x9f\x6f\xb2\x2e\xf8\xb0\xbe\x2e\x9c\x8b\x7f\xf1\x02\x53\x0d\x16\x18\xf4\xb6\x86\xba\x27\x31\x77\x6d\x3d\x24\x84\x3f\x12\xea\x9b\x4c\x67\xe6\x5f\x59\x1f\x47\xe9\xe7\xe9\xd1\xd5\xd9\xf1\xe9\xc7\xb3\xc1\x74\x41\x75\x16\xd0\xab\xaf\x80\x10\x9b\x11\x67\x9d\xe8\x81\x13\x1a\x0c\x40\xb8\x3c\x82\x07\x1b\xca\x7e\x2a\x0b\x91\xe0\x85\x0e\x6e\x96\xa1\xb0\x0f\x42\xa8\x79\xf5\xda\x91\xaa\xdd\xb6\xc7\xce\x1e\x73\x91\x58\x7c\x76\xa8\x4e\x9a\x92\x19\xba\x91\xc0\xd8\x35\x20\xb3\xee\xbc\x77\x07\xb3\x36\xa4\x53\x99\xef\xd1\xd7\x53\xcd\x00\x0d\x64\x97\xbf\x9e\xec\xf2\x9a\xd2\x3a\x17\x6c\x8b\x91\x9b\x1f\xd7\xeb\xf3\x4d\xce\xea\xf5\x79\x7c\x50\x7d\xfc\x8f\x7f\xfd\x27\x5c\xa5\x59\x48\x76\x0d\xc1\x06\xee\xab\xb4\x90\xf7\xa2\x60\x07\x3f\x09\xcb\x7d\xb8\xc3\xe1\x02\x86\x3e\xda\x3c\xa9\xe7\xdd\x49\xe7\xb5\xbc\x3b\xa9\xdf\xb9\x77\x72\x58\x08\x76\x32\xe1\x4a\x89\xec\x09\x24\x9b\x05\x6b\xcd\xc4\xe3\x1c\xb2\xc3\x9a\x6b\xce\xc4\xe3\x06\x7b\xf9\x2e\x8c\x5c\xa7\xc3\x58\x28\x51\xc8\xa4\xca\x5d\x6a\x10\x22\x82\x8e\x38\x0a\x44\x41\x9b\x26\x6c\xba\x48\x28\x1e\x24\xcf\xca\xb1\x5c\x94\x13\x31\xca\x00\x28\x74\x8b\x45\xc3\xf7\x6b\xac\x16\xda\x37\xb6\x9c\xfe\xd8\xe4\xb3\xab\xb6\x78\x7e\x77\xc1\x0a\x2e\xad\xc1\x7a\x48\x64\x4a\x4f\x45\x2e\x94\xaf\x8a\x24\xc2\x68\x14\x7b\xc3\x0c\x49\x40\xe4\x19\x42\x1c\xf1\x76\x6a\x8d\x93\x48\x0a\xdb\x4a\x66\x7d\x7f\x72\x56\xef\xa9\x33\x05\xe7\xbe\xac\xd3\xf2\xfd\xc9\xd9\x93\xe9\x04\x0b\x12\xe9\xb7\x56\x16\xc6\x89\xa8\x78\x6e\xea\xc8\xda\x4e\x7d\x4c\xe8\xdf\x42\xe8\x79\xef\x7b\xd8\xe0\x9e\x86\x6f\x1b\xf4\x0e\x7f\x6e\x78\x47\xea\xe4\x0e\x12\xf5\xb6\x74\x6d\x8a\x10\x44\xc3\xa3\x40\x9c\x55\x42\x84\x9b\x49\x1b\xc0\x5b\x67\x22\xfe\x4c\x1d\x74\xa6\x9c\xff\xa0\x4e\x38\x14\x23\x74\x31\x8b\xe5\xc5\x79\x5a\x30\x30\x4e\x39\xbd\x81\x41\x81\x4c\x84\x74\x80\x7b\x2d\xdd\x35\x17\xa3\x32\xc3\xca\x25\x50\xd7\x14\x0a\x2b\xf9\x6f\xa0\xde\x0d\x9c\x68\x81\xb1\x85\x5a\x65\xb3\xff\x9b\x7d\x52\x7d\xd8\x0e\xff\x6c\x36\xa3\xdc\x98\x54\x8c\xab\x19\x80\x99\xb9\xaf\x7f\x3b\xff\xf0\x81\x5d\x7c\xba\x61\xbf\x7d\xba\xfa\x05\x7e\x64\xd3\x32\xb3\x12\xc7\x0a\x30\x13\x5b\x5e\x02\x37\xa5\x3c\x82\x38\x6c\x98\xc0\xcd\x36\x52\xc6\xf9\xf5\x66\x72\x06\x7c\xd7\xd0\x1d\xf1\x6f\xcf\xcd\x62\x16\x64\xf4\xe9\x84\x67\x1b\x53\x05\x02\x6a\x3b\xd3\x02\x5a\xc7\xb4\xc0\x03\x9c\xcd\xfa\x61\xd5\xfe\x40\x01\xaa\x1e\xd6\x87\x1b\xc1\x0c\x16\x95\x0f\x75\x3a\xc4\xa7\xbc\x4b\x1c\x44\x95\x08\x43\x3a\x16\x7e\xd5\x63\x00\xf6\xfb\xf7\xdb\x17\x85\xbe\x7d\xd1\x63\xb7\x2f\x8c\x1e\xd9\xdb\x17\xff\xc0\xaa\x8c\x00\xa3\x08\x81\x99\x7d\xfa\x0e\x4b\x33\xca\x69\x9e\xcd\x20\x48\x93\x49\xac\xa6\x0e\x45\xbe\xa0\xf9\x0e\xc5\xe6\xa3\x6f\x60\xd0\x3e\x4d\xf6\xb9\x6d\x79\x6a\x8b\x97\xe2\xe2\xdd\x75\xe7\x93\x71\xd1\x50\x87\x15\xbb\x68\xd3\x85\x9f\xee\xfd\x74\x0b\x6d\xa7\x80\x4e\xc5\xb1\x3f\x82\x9b\x92\x82\xd4\xaf\xb8\xab\xa5\xd4\x88\x1a\x06\x0f\x68\xa2\x95\xb1\x05\x54\x14\x44\x66\x91\xc9\xa9\xb4\x18\x7f\xa8\x28\x1c\xac\x0a\x7a\x20\xd3\x32\xda\x81\x29\x2b\xb6\x0e\xff\xac\x46\x59\x59\x85\x54\x54\x45\xab\xc0\x03\xa8\x53\x1a\x24\x54\x3c\xf5\x76\xf2\x56\x22\xe5\x0d\xbe\x78\x85\xce\xfa\x4b\x9d\xc9\x64\xa5\xdf\xdd\x0d\x33\xe1\x79\x2e\x94\x59\x00\xa2\x82\x0a\x2d\x81\x73\x53\x86\xaf\x93\x50\xab\xa0\x4a\xa8\x84\x0e\xe4\x87\xca\x1b\x57\x02\x40\x50\x0f\x52\xef\xa2\xd7\x05\xc3\xaa\x81\xd9\x2c\x04\x5a\x37\x99\xb9\x39\xec\xb1\x53\xc7\x6d\x45\xfd\x43\x2a\xec\x03\xdf\xc6\x60\x73\x6d\xdf\x3b\xc6\x7c\x45\xf5\x4f\x0e\xaa\x1a\x24\x87\x83\xf0\x57\x1f\x12\x5f\x3d\x95\x14\x21\x4a\x4b\x45\x55\x23\x8e\xc1\x02\xf2\x37\x07\xdb\x6d\x14\x33\x10\xd2\xf1\x8a\xb5\x9d\x77\xf9\x44\x5b\xad\x76\x24\xd1\x5f\xb6\x74\xd6\x99\x85\xb4\x7d\x5c\x17\x97\xb0\xc5\x49\x95\x2f\x10\x1d\x34\x27\x32\xaf\x67\x9d\x5a\x40\x0f\x5d\xd8\x07\x5d\x6c\xab\x08\x5f\xd6\xba\xe9\xb2\xfa\xda\x07\xf5\x75\xfb\x39\x6d\x64\x84\x6b\x5f\xe6\xbf\x4a\x3d\x9c\xd9\xcd\xd7\xf7\x9f\xf8\x7d\xe7\xe5\x51\xfb\xfa\xba\xfc\x1f\x77\x61\x32\x2d\x86\x73\xae\xff\xee\x39\x0c\x3f\x9d\x6e\x20\x18\x5e\xfd\x74\x5a\x5f\xce\x15\x4f\xb5\x61\xe0\xa9\x62\xa7\x62\x81\x47\x61\xd9\xca\xd6\x52\x76\x8a\xe1\x4a\x5b\xa9\x49\x78\x26\xce\x3f\x6d\x4c\x97\x6b\xfc\x7e\x03\xda\xd0\x97\x75\xfa\xf8\x3f\xce\x3f\x0f\x8b\x0e\xf4\x2f\x81\x1f\xe2\x0b\xb9\xdb\x04\x87\x5a\x72\x43\x1d\xaf\x76\x7e\x8a\x43\x91\x69\x35\x36\x03\x76\x36\xcd\xed\x8c\xc2\x46\x3c\x44\x02\xb7\xb5\xb7\x3b\xd5\xc2\x50\x56\x90\xfb\x08\x11\x2c\x66\xb5\xf1\x36\x42\x49\x80\xcf\xf5\xe6\x02\x1d\x4d\xe0\xd3\x26\x2e\x8f\xf0\x6d\x63\x4f\xc3\x9f\x97\xa8\xfe\xee\xf0\x2f\x51\x84\xfc\x86\x4b\x15\x19\xb1\xd6\xb8\x09\x81\x30\xab\xee\xc3\x36\x69\x22\x32\xc2\x50\x02\x45\xc1\x0a\x95\x06\xc3\x3d\x24\x15\x82\xca\xc3\xa9\xd2\xb5\x85\x02\x0a\x21\x47\x44\x43\x32\x5e\x21\xa6\x4e\xac\x91\x8a\x15\xfc\x81\x81\x57\x18\x01\x67\x36\x4b\x2c\xd9\x34\xa5\xc4\xe4\x13\xe1\xbd\xf0\x9b\x8b\xc4\xd4\x8b\x2c\x6c\xc9\xb3\xb5\x5e\xfa\x5f\xe3\x09\xd4\xcf\xd3\xfd\x35\xfc\xb4\xed\x4b\xf7\x7f\x35\x56\xbd\x6d\xcc\xe5\xda\x19\x29\x1b\x24\xa3\x74\x08\x61\xe9\x86\x74\x73\xcc\x26\x6b\x62\xdd\x3c\x4c\x6a\x22\x2c\x9c\x6f\x5f\x9c\xc0\x9d\xce\x4d\xc4\xca\xae\x51\xf1\x34\xa9\xf9\x2b\x16\x8a\xf2\xf6\x28\xee\x1b\xab\x12\x38\x49\xb7\xe7\xee\x53\x50\x27\xc0\x44\xb6\xf3\x64\x34\x5c\xc1\x26\xc1\xca\xab\x41\x7f\xae\x10\xa7\x07\xe2\x10\x87\x85\x14\xa3\x2a\xd4\xaf\x86\xec\x53\xe5\xbd\xbb\xf7\xc3\x27\x94\x72\x0c\x61\x74\x8f\x8f\xd7\x8c\x90\x99\xe6\xbc\x20\xdf\x47\xca\xac\x4c\x67\x4e\x28\xce\x33\x88\x4d\xc4\x04\x8f\x0f\xe7\xcf\x96\x4e\xb0\x4a\x13\x58\x7c\x95\xae\xe6\x45\x7e\xb6\x44\xe6\x0f\x21\x10\xab\xaf\xcf\xc8\xdc\xb4\xe0\x05\x35\xbd\x33\x15\xff\x85\x98\x7f\xab\x91\xf1\x0c\xd8\x47\xd2\xfc\x78\xcc\xd8\xa1\xcd\x9c\x2e\x08\x6c\x29\x54\x00\x0a\xd8\xb0\x67\x8f\x03\x76\xfb\x42\x3c\xda\xef\xd1\x50\xf5\x38\x32\xf8\x1f\xca\xba\xff\x1a\xb0\x73\xc7\xee\x13\x69\x33\x8a\x27\x2d\xc2\x0b\xe3\x3f\x73\xb7\xa4\x54\x21\x55\x79\x93\xab\x99\xae\x2c\x60\x75\x7e\x4a\xef\x38\x15\xa5\x12\x66\xf5\x46\xec\xb6\xda\x0d\x4c\x92\xfe\xb9\x79\xe4\xbc\x4e\x97\xb1\x6c\x4d\x91\xc0\x89\x5b\x4f\xe2\xe3\x60\xaa\x4a\x21\x48\x83\x84\x2b\x56\x94\x0a\xcb\x9c\xa0\x0d\xeb\x06\x63\xd6\xab\x04\x71\x6f\x91\x18\xce\x28\xca\x17\x83\x65\xc8\x26\x03\x4f\x96\xd5\x58\x99\x6b\x1f\x66\xff\x55\x87\xd9\xef\x43\xc8\xff\x2c\x21\xe4\xff\xde\x80\xb2\x3a\xed\x04\x1f\x5b\x0b\xab\x8e\xd1\x69\xe6\x50\x25\x16\xc4\xc3\xee\x92\x1e\x6e\xc5\x50\x9b\xa5\x8e\xb8\xb7\x5b\xb8\x58\x9d\x76\x00\x87\xfd\xe8\x9e\xef\xf9\xd2\xd8\xa6\x56\x53\x1e\x48\x82\xc1\x15\xdc\x72\xb8\xc0\xe1\x02\x3a\x1e\x99\x82\x5e\xb7\x21\x4e\xfc\xf3\xd0\x75\x95\x94\xf7\xf4\x79\x08\x3a\xdd\x71\xda\x81\x4e\x5b\x9c\x3d\x6d\x4f\xbf\x77\x4b\x22\x2b\x87\x79\x42\xe5\x67\xf7\x9c\x21\x2c\xb2\x6f\x10\xb9\x56\x8a\x32\x13\x5d\x9e\xf0\x50\xb1\xf3\xb4\x74\x4c\xef\x3a\xf4\x70\x3e\x56\x3a\xfc\xf9\xec\x51\x24\xa5\x5d\xfd\xce\xdf\x54\xfe\x1d\xa8\x57\x96\x65\x54\x12\x14\x60\x62\xe8\x07\xf2\xf9\xe8\xe0\x4b\xe2\x96\x19\x6e\xa5\xa1\xf2\x7b\x61\x39\xe2\xd1\xbd\x3e\x06\x7c\x2d\x15\xe4\x0d\x9c\x4e\xef\x5c\xea\xb1\x61\x69\x99\xb4\x04\x20\xa3\xb5\x11\x54\x72\x87\xd2\x6d\xa5\x86\xd7\x1f\xdc\xa6\x50\xe5\xaf\x08\x90\x21\x51\xf7\x03\x28\xf7\x5e\x7d\xe6\x94\x16\x77\xb3\x02\x75\xbc\x7e\xec\xba\x01\xeb\x89\xfb\xc7\x18\x84\x29\xe3\x9e\xb9\xa9\xeb\xf4\x41\xc8\xf1\xc4\x9a\x1e\x93\x03\x31\x00\x7d\x47\xf0\x64\x12\x75\x3b\x15\xc2\x62\x7e\x46\x54\x4b\xd2\x6f\x58\x04\x4b\xc3\x0e\xc2\x6b\x4c\x2f\x67\x2f\xc0\x7c\x34\xf7\xa9\x95\x5c\x3d\x26\x6c\x32\x38\xec\xb1\x44\x4f\xf3\x12\x90\x87\xdc\x1c\x87\x33\x26\xad\x17\xf5\x7d\x55\x6a\x20\x85\x07\x6a\xf2\x02\x18\x15\xf1\x53\x29\xe3\x29\xc4\x8c\xde\xbe\xc0\xd5\xdd\xbe\xf0\x52\x95\xeb\x50\x56\x25\xf7\xd9\x84\x1b\xdc\x59\xb4\x4e\x4e\xb9\x4d\x26\x01\x07\xad\x28\x84\xc9\x35\x86\x9f\xe6\xd5\xc9\xbf\x11\xc5\xf4\x6f\xa1\x8b\x03\x73\x58\x11\x77\x22\xc7\x13\x4f\x5b\x5e\x60\xa6\x6c\x7d\x4f\x76\x9c\xdd\xff\x1b\xac\x4f\xa4\x97\xf5\xe9\x6d\xe5\xd4\x5e\xb4\x69\x1b\x5d\x2e\x02\x7f\x0a\xfb\x5d\x3b\x31\x0b\xee\x07\x90\xce\x31\xfb\xa9\xb0\xcc\xdd\xb3\xea\xdc\x58\x39\x15\xbd\x60\xc5\x8c\xf1\xa1\x1a\xda\x80\x0d\xd5\x80\x37\x9a\x41\x02\x75\x8e\x51\x37\xf4\xb3\xd0\x53\x37\xaa\x13\x16\x53\x20\x01\x4c\x41\x78\x3a\xf8\xaa\xe8\xa5\x20\x2f\xad\x4e\x09\x61\x08\x05\xc6\xc3\x5e\xf4\x3e\xc1\xcd\xd7\x45\x78\xd5\x6c\x01\x25\x0f\x01\xb4\x0a\xbd\xb0\xe2\x5e\x26\xb6\x8a\x39\xf4\x2e\x5d\x5c\xd2\x6f\x84\x29\x51\x08\x20\x15\x84\x0a\xe5\x59\x75\x23\x70\xa8\x4c\x1a\xbc\x1c\x8a\x52\xad\xe2\xf3\xec\x46\x73\xf7\xbc\x71\xae\xa1\x3f\x60\xd2\x06\x22\xa7\x89\x2d\xb8\xdb\x8f\xf5\x61\x83\x7f\x16\x78\xdf\xbc\x8a\xbc\x75\xc6\xea\xb6\x07\x79\x6b\xd3\x4a\x63\x02\x8b\x9f\xb9\xd3\xaa\x72\x90\xb0\x21\x2c\xe0\x40\x39\x9d\xc0\x1d\x26\xc7\xd6\x81\xa1\x78\x95\x25\x8b\xc1\xa9\x58\x21\x32\x0c\x2e\xa7\xd3\x3a\x96\xf7\x42\x55\x38\x02\x07\xe6\xf0\x30\xf2\x7d\xb8\x53\x50\xe1\x57\x27\xba\x9f\x69\x70\x9d\xb3\x03\x7f\xb0\xa1\x62\xa7\x3b\x4c\xb5\x1f\x95\x95\xfd\xaa\x85\x63\x54\x3d\x86\x65\x42\xa3\x66\x10\xc1\x8a\xe5\x35\xb9\xf1\xf1\xa9\xa8\x92\x03\x97\x7c\x80\xb5\xdc\x7b\x1b\x7a\x58\x0b\x32\xbe\x3b\x31\x63\xb7\xe5\xab\x57\xdf\x25\x56\xe7\x3a\xd3\xe3\xd9\x2f\x62\x06\x7f\x10\x11\x43\xe5\x54\xa0\x73\x86\x5d\x6a\x45\x2c\x17\x6f\x8a\x7f\x5a\x22\x42\xca\x30\x93\x2e\x40\xf1\x31\xec\xd7\x57\x02\x27\x16\xce\x45\x50\x98\x7b\xc1\xf0\x9b\x38\xf6\xe2\x96\xb9\xc0\xe7\x56\xd5\x98\x5c\xc1\x5f\xab\x86\x81\x97\xf9\xc7\x2c\xfa\x69\xfe\xf4\xf1\x3c\xcf\x24\x62\x9d\x1d\xf8\x4d\xe2\x63\x2e\x95\xb1\x87\x7f\x63\xaa\x74\xcf\x7d\xc1\x04\x78\xe3\x28\x01\x98\x2b\xc3\x6e\x5f\xf8\xd3\xf8\xd2\x54\x03\xdc\xbe\x78\xee\xc0\xab\xe8\xa4\xad\x94\xee\x76\x7a\x7b\x3c\x4b\x36\xcb\xae\xf6\x5c\xdd\xea\x6a\x2b\x9e\xe4\xf6\x45\xd4\xe8\x72\xe3\xd4\xac\xba\x6f\x19\x26\xc8\x34\x6e\x9c\xf7\xc3\xc6\x1d\x53\x0c\x2b\xa0\xbe\x76\xb7\x8c\x76\x34\x48\xc6\xfb\xb9\x03\xbb\xe4\xb1\xb2\xb2\xab\xa2\xa2\xac\xec\xa0\xad\xd4\x5a\xfd\x49\x54\x96\xf8\x74\xef\xf5\x96\x6e\x7a\xcb\x22\x9a\xed\x95\x97\xf0\xe7\x3f\x9f\xf2\x52\xdb\xf4\x2f\xa7\xc1\xac\x3f\x8d\xbd\x1a\xf3\x6f\xac\xc6\x74\xaa\xe2\x14\x35\xab\xc0\x38\x7c\xf8\x82\x07\x7c\xf3\x01\x16\x49\x0c\x91\xe8\x05\xc1\x0e\x8f\xdf\xbe\x8e\xd3\xbe\x8e\xd3\x6e\xea\x38\x69\x25\xfa\x0f\xba\x48\x7b\x51\x48\x47\x54\x96\xa9\x46\xaf\x96\xd2\x4c\xbb\x2a\x9e\xd4\x5e\xed\xce\x03\xea\xd4\xfc\x18\xd5\x51\x63\x27\x98\x74\x70\x53\xb8\x95\xbc\xe3\x99\x11\x3d\xf6\x59\xdd\x29\xfd\xb0\x7e\x82\xc6\x83\x2e\xee\x32\xcd\x53\x73\xe4\x24\x00\xf7\x3f\xfd\x4c\x8e\x30\x88\xfe\x1b\xf7\xaf\x08\xff\x74\xed\x45\xb7\xd5\x7d\x6a\x4a\xa0\xb3\x3c\xe4\xca\x7b\xf0\xc6\xc6\x72\xbf\xf8\x8a\xba\xea\x1e\x4f\x54\x91\x4a\xa7\xa7\x17\xd7\x27\x5a\x8d\xe4\x78\x39\x07\x0e\xcd\x6a\x71\x06\xa7\x17\xd7\x2c\xe7\x05\x9f\x0a\xf7\x8c\x51\x54\x9b\xc6\xd4\xc1\xd4\x73\x04\x4d\x76\x26\x48\xe5\x06\x6d\x12\xf8\xc2\xe9\xc5\x35\x26\x97\x74\x60\xce\xa0\x9b\xa2\x9b\xbc\x73\x86\x98\x9b\x1b\xa0\x63\xe2\x87\xec\xfc\xd2\xcd\xc9\xc9\xc2\xc2\x90\xd7\xce\x83\xdc\x42\xe6\x4a\x5a\x45\xaa\x0e\xdd\x95\x8d\xc6\x5c\x3c\x75\x76\x5a\xe6\x99\x44\x1d\x39\xfe\xa0\x42\xfc\x9f\xea\xfb\xae\x2f\xf7\x0e\x6d\x0f\x7a\xcd\x74\x3a\x47\x2c\xa7\x62\x64\x8e\x52\xf4\x71\x83\x48\x00\x80\x9b\x56\xa2\x38\x10\xc9\x67\xec\x74\x22\x90\x50\xb6\x00\xd3\x4f\x83\x38\xec\xca\x8d\x8c\xa2\x5d\xe8\x10\x2c\x8d\x52\x31\x4a\x0c\xc4\x8f\xf4\xbd\x28\x0a\x09\xda\x93\x36\xa4\x43\xb9\xcd\xe3\xc1\x9e\x01\xb3\x6a\x39\x5a\xcb\xe8\xbe\x8e\xc4\x14\xee\x01\xce\x6b\xab\x4d\x32\x82\x17\x4e\x1b\x5a\x6b\x97\xf0\x23\x96\xea\x29\x88\x41\xee\x45\x99\x68\x63\xfb\x70\xd4\x33\xad\xef\xca\xbc\xcb\xe9\xa6\x6e\x72\x6e\x27\x1d\x77\xaf\xf6\xc5\x17\x39\xdf\x3b\x90\x37\x9b\xdb\xd7\x8d\xe7\x61\xe3\xc0\xf9\xda\x2e\x4b\xe0\x7d\x1d\xb9\xd9\xca\xf0\x50\x7c\x05\x36\x89\xed\xe6\x59\xb9\x45\x45\xc4\xf5\x69\x7a\x7e\xb9\x84\x8c\x15\xd7\x8d\x2b\xea\xa2\x2d\x84\xd8\x01\xdd\xdc\x83\x3c\x2b\x0b\x9e\x1d\x32\xe8\x92\xb4\xc3\x01\x3b\x73\xaa\x93\x6b\x3a\xf3\x81\xef\xe6\xed\xad\x62\x8c\x9d\x5f\xbe\x65\xc7\x2a\x62\xeb\x60\xf6\xc3\xb3\x1a\xe7\x52\x5f\xe9\xd2\x82\x9c\xc8\x2d\xcb\x84\x13\xb6\x1c\x0b\xa3\x41\x7d\xda\xfa\xea\x4d\x93\xf9\x8a\x2d\x93\x39\x58\xe6\x6a\x33\x3a\x38\xbf\xbc\xff\xde\x69\x9f\xe7\x97\xf7\x6f\x0e\x19\x37\x46\x8e\x55\x6d\x7e\xcf\x15\x8c\xab\xd3\x55\xa0\xc1\xd8\xa2\x81\x13\x0c\xd6\xff\x7d\xb8\xe2\x57\x1c\xae\xb8\x16\x2a\xb0\xdb\xce\x27\x5e\xcb\xce\x5f\xdc\x3d\x1e\xf0\x3e\x98\x73\x8f\x07\xfc\x1c\x71\x78\x4f\x00\x01\xac\xd3\x2b\xc1\x53\xc7\xe8\xcd\x7b\x6e\x97\x56\x90\x68\x34\xad\x97\xce\xa9\x15\x30\x42\x1d\x33\xa8\xda\x1d\xaa\x2b\xf8\xa6\x1d\x92\x3f\x4e\xe2\xb6\x38\x2e\x61\x1a\x54\x46\x2e\x12\x1e\xd0\xc3\x5c\xfd\x19\x0e\x1d\xe8\x47\x95\xdf\x75\x96\x77\xce\x9d\xea\x78\x5e\xea\x8b\xd9\x81\x05\xe0\x5a\x24\x65\x21\xed\xec\x44\x2b\x2b\x1e\x57\xc8\x08\x8d\xc6\x6c\xa2\xb3\x14\x4c\xac\xfd\xcc\x5d\x17\x66\xe8\xf7\xb8\x36\x27\xa0\x86\x62\xc5\xce\x90\x5a\xe1\x6b\x32\x38\x96\xa9\xa1\xc2\x87\x70\x1d\xf1\x42\x30\x9e\x19\xcd\x88\xa3\x42\xf1\x2c\xff\xcd\xc0\xd4\x07\x1f\x30\xf6\x0e\x5c\x08\xf8\x4a\xd7\x52\x37\x9a\x6d\x99\xe5\x77\xc2\xf5\x9a\x88\x14\xce\x11\x84\x3f\x8c\x1a\x9f\xcf\x2f\xb0\x53\x4e\xd1\x7b\xba\x5a\xcb\xb5\x38\x70\x80\xf0\x0c\x52\x85\xd0\x7b\xc0\x33\xf2\xe3\x7a\x45\xd6\x87\x3b\xf0\x2c\x8b\xb3\x50\x00\x6c\x09\x84\x59\xa0\x95\xcf\xb3\xc5\x22\x80\x59\xa6\x1f\xe0\x38\xfe\x82\x19\x91\x50\x1a\x0e\x2a\xfe\xa1\x83\xf2\xc1\x75\x31\x91\x39\x0a\x55\x55\xa5\x14\xf4\xb8\x84\xea\x25\x74\xa0\xdf\xde\xaa\x5b\xf5\x1a\xdd\x9f\xfa\x01\xbc\xfc\xef\xcf\x4f\x83\xbe\x07\xc8\x71\xd7\xb0\x5e\xf6\x2d\xb6\x32\xc2\x8e\x65\xca\x86\x12\x64\x47\x23\x2c\x3b\x50\xe2\x01\x13\xa4\x42\x5a\x0c\xdd\x98\xb8\x66\x62\x3c\x38\x75\x79\xc8\xbe\xc3\x3e\x73\x51\x4c\x25\x38\x2d\x5d\xbf\x78\x2c\x3e\x5d\xbd\x24\xeb\x43\xf1\xd0\x2f\x1e\xfa\xfd\x7e\xdf\xcd\x15\x8a\x1d\x19\x61\x7b\x35\x1a\x04\x9f\xd5\x54\xa7\x92\x7c\xc9\x15\x25\xdc\x81\xac\x86\x30\x3e\x04\xa1\xb5\x8e\x13\xea\x2c\x20\xe0\x2b\xfb\xe6\xfb\xf6\xbb\xec\x44\xca\xb1\x28\x16\x80\x0b\xe2\xf9\x38\x81\x3d\xe9\x84\xa7\xd2\xf2\x45\x90\x97\xe3\xb0\x7c\xd8\x66\x08\xc4\x58\xb0\x34\x6f\xf1\x0c\x19\xec\x23\xf7\x10\x22\xc4\x9f\xc7\x9d\x92\x50\x45\xd0\x1d\xfd\x1a\xb8\x0c\xda\x5b\x54\x36\x83\x73\x09\x3e\xb3\xda\xb9\x43\x7f\xae\xaf\x50\x49\x33\xf6\xb5\x37\xfd\x74\x0e\x1a\x94\x3e\x1c\xb0\x73\xda\x9c\x09\xbf\x17\x4c\x69\x26\x46\x23\x27\x43\x69\xc5\x44\x3e\x11\x53\x51\x38\xc1\x3c\x1e\xc8\x94\xc9\x84\x71\xf3\xd6\xb1\x96\xc2\xed\x73\x02\x3a\xf9\x94\xe7\xc8\x59\x20\xfe\x27\x95\x85\x07\x91\xa1\xdb\xec\x8e\xcc\xed\x8b\x4f\xea\x4a\x6b\xfb\x51\x1a\xe0\xc8\xb7\x2f\xe0\x8b\xdb\x17\xc7\xd9\x03\x9f\x61\xba\xdd\x08\x51\xcf\xaa\xc2\x9f\x08\x1b\x03\xd7\x30\x6a\xb8\x81\xcf\xa0\x54\xc7\x9d\x38\x83\x3b\xf0\xee\x8e\x59\x0d\x59\x66\x28\x25\xda\x62\x86\x72\x62\x65\xb3\x26\xc6\x99\x17\x3a\x11\xc6\x0c\xd8\x67\x23\x20\x18\x06\xbc\x30\x1e\xed\x46\xd2\x75\x18\xb0\x8f\x7c\x86\xac\x94\xaa\x78\x49\xc5\x9a\xbc\x8d\xb9\xe5\xd3\x6f\x43\x6d\x27\xcd\x06\x88\x21\x3b\xc7\x13\xa9\xfe\x29\x88\xc9\x15\xe1\xe6\xfb\x07\x9e\x6b\x62\xa6\x8b\xfe\x0f\x6e\x23\x3e\xbd\xeb\xdb\x06\x64\xbf\xd0\xb0\xef\xab\x5c\xe7\x21\xef\x98\x62\x18\x63\x32\x83\xf7\xd5\xed\x07\x37\x10\x40\xa2\xfa\x85\xd6\x00\xa6\x54\xa0\xb7\x1b\x3c\x24\x73\x3c\xc7\x63\x8d\xc1\x2f\x72\xca\xc7\x60\x77\xf0\xbb\x64\x35\x13\xca\x94\x85\x8f\x2a\xb1\x15\x50\x04\x0d\xf5\xf9\xfc\x94\xbd\x62\x07\x6e\xac\x43\x20\x3f\xc0\x93\x59\xcd\x8c\xe5\x45\x73\x8e\x72\xe4\xbb\xa0\xa2\x6f\x10\xcc\x57\x60\x39\xa3\x9e\xbb\x5d\x70\x79\x68\x4e\x71\x59\xb7\x5c\x14\x8e\xd4\x50\xb1\xe0\xeb\x3b\x27\x9d\x2b\x31\x35\xf7\xfd\xb3\x99\x07\x71\x6d\xb9\x6d\x9f\x37\xb8\x6d\xa7\x11\x5f\x70\x87\xa0\xbe\x22\xdc\x69\xaf\x70\x34\x33\x74\xbf\x46\x1a\x3f\xc7\x5d\x34\xe2\x83\x54\xe5\xe3\x02\x6c\xbf\xee\xa0\x25\x67\xb5\x6e\x96\x29\x80\x6e\x77\xa9\x39\x96\x7e\x7e\xb4\x24\xe8\xa0\x74\x95\xce\x4b\x57\xfe\xea\x78\xe2\xf5\x1a\x27\xc0\xdf\x5d\xb8\x3a\xde\xc4\xc8\x38\x2b\xb8\x4a\xf5\x74\x6e\xb4\x10\xe5\x55\x91\x95\xfd\x61\xf6\xbf\x7d\x17\x23\x79\x15\xde\xb3\xee\x0e\x0b\x90\x6e\x4d\x4c\x7b\x37\xdb\x91\x2c\x20\x62\x0b\x6e\x16\xdc\x42\xa9\x1a\x34\xeb\xcd\xbb\x10\xa3\x3d\x79\xe9\x16\x22\xa7\xbc\x98\xb9\x87\x13\x49\x57\xdb\x41\xa5\xfd\xd0\xc1\x09\x92\x92\x07\xc4\x09\x7a\x8b\x4e\xfc\x02\x6b\xd5\xb2\x8b\xb0\xec\x2a\x6c\xe2\x12\x9a\x99\xc4\x66\x2b\x7d\xf9\xd8\x0a\x94\xaf\xc8\x5a\x1b\x22\x78\x53\x46\xfd\x20\x2a\x4d\xad\x26\xe2\x25\x04\xe3\x39\x31\xba\x54\x15\x68\x81\x6f\x7f\xe0\x6b\x1d\x37\x8f\xff\x21\x9b\xca\xf1\xc4\x86\xe7\x28\xe3\xa5\x4a\x26\x3b\xf6\xaf\xe1\xba\xb6\x22\xe0\x83\x54\xa9\x7e\x30\xdb\xb2\x9c\xdf\xb0\x9b\xc6\x25\xea\xca\x81\xe8\xeb\x50\xb6\x28\x28\xbb\xeb\x72\x21\x1d\x9c\x9f\xe0\xb1\xe0\xb5\x2b\xd0\xbc\xe1\xfe\xa8\xbb\x3d\x1f\x3c\xfb\x8b\xbd\x53\x5f\xc5\xaa\x52\x51\xd8\x02\xad\xb6\x8d\x22\x26\x5d\x9d\x70\x3c\xb1\xf2\x5e\x9c\x0a\x9e\x66\x52\x89\x6b\x91\x68\x95\xae\xba\x77\xb8\xff\x3c\x63\x69\x59\x70\x6f\x09\x32\xf8\x69\x08\x20\x9c\xf2\x19\xc2\x76\x42\xe2\x0c\x01\xbf\x41\x2c\x6c\x9c\x4d\x03\x95\x74\x6f\x64\xa5\x94\x45\x11\x8b\xf8\xd2\xc0\xf7\x4e\xf1\xc2\x80\xc5\x29\x2f\xee\x9c\xb4\xe7\x2e\x20\xa1\x21\xdd\x41\x3b\x63\x74\x22\x41\xc9\x8e\x4f\x13\x82\x49\x4d\x03\x5e\x49\xae\x8d\x84\xb1\x89\x4b\xed\xfc\xad\xe7\xdb\x02\xac\x76\x82\x55\x75\xa7\xba\x7e\x45\xd0\x08\x17\x05\xaf\x46\x20\xab\x0b\x66\x5a\x5a\x0d\x78\x2e\x54\xf4\xe7\x38\x49\xdc\xbf\x6e\xf4\x9d\x58\xe9\xbf\x5a\xf2\x69\x04\x63\xf4\x30\x11\x50\x31\x96\x07\x54\x7d\x8e\x0d\x99\x85\x96\x55\x9a\x07\xcc\x85\x5b\x82\x26\xf5\x55\xc4\x36\x10\x7f\xab\xbd\xef\xe8\x0b\x8a\xcc\x4b\x88\x51\x47\xa1\xaa\xe1\xa1\x38\xa9\x1a\x24\xe8\x8b\xa0\x10\xcb\x6c\x56\x3d\xa8\x90\x23\x46\x51\x1c\x37\x10\x25\x1b\x8e\x9c\xf7\xb6\x6a\x55\x53\x59\x1c\x17\x03\x5b\xc3\xbc\x83\x63\xb7\x8f\x49\x98\xff\x93\xd4\x8f\x06\x1f\xfe\xaa\x2f\x3a\xd6\x8f\x4e\x95\x99\x0b\xc1\x5a\x6f\xad\xb5\x38\xae\xa5\x0e\x92\x90\x7f\xb5\x24\x7c\x6b\xc0\x2e\xab\x3f\x56\xcf\x00\x6c\x6f\x23\x1a\xc8\xe7\x05\x86\x00\x12\xd7\x25\x1a\x68\x3c\x8b\x24\x93\x90\x8a\xa3\x72\x16\x91\xa1\x93\x75\xec\x5a\x58\x9c\x39\x1a\xc6\x6a\xd2\xcd\x69\xcd\x7a\x73\x82\xde\xfd\x77\x4e\xde\xbc\x7d\xd1\x62\x20\x7a\x19\xb7\xf8\x4d\xda\xc9\xcf\xda\xd8\x0b\x61\x5f\xf6\xea\x3f\xb9\x7f\x53\xd7\x2f\xdd\x99\x7f\x79\xa1\x95\x78\x39\x68\x12\x30\x04\x2d\x55\xd1\x72\x8b\xa2\xa7\x68\xf2\x21\xb9\x09\x7e\x88\x02\x6f\x6e\x34\x5a\xc8\xdc\x08\x5e\x0a\x70\xef\x39\x07\x38\x49\x68\x3d\xc1\xb9\x3e\xe8\xe2\xae\xc7\x66\xba\xc4\x0f\xac\xa6\x2d\x9b\xc5\x44\x12\x8f\x01\x55\xca\xea\xc5\xcb\xde\xc0\xcc\x25\x14\x1f\x66\x82\xf8\xe1\x07\xa9\xee\x56\x31\xa0\xb3\xb9\x0f\x5a\x38\x67\x1c\x2b\x82\x41\xbc\xc4\x49\x4d\xc4\x3c\xa5\xfa\x3f\x48\x3c\x80\x8d\xc4\x87\x40\xa8\x7b\x59\x68\x05\x35\x0f\xee\x79\x21\xdd\x58\xa6\x57\x4f\x84\x33\x33\x65\xf9\x23\x04\x54\x61\x0d\x94\xcc\xcd\x62\xc0\xfc\xf3\xfe\xb6\x76\x8c\x6c\x51\x6e\x64\x90\x08\xe6\xcc\x93\x75\x59\x73\x65\x08\x8d\x98\x34\xa9\x49\x21\xa2\x9d\x9d\xb5\xb5\x22\xe1\x83\x1a\x43\x05\x1c\x89\x45\x1f\x9c\x68\xe2\xa8\x84\x86\x1f\x30\x61\xf4\x81\xa5\xc0\xb5\xe5\x09\x1d\x31\x34\xb6\xb2\x54\x0c\xcb\xf1\x18\xb2\xec\xc0\x26\x0c\x2a\x46\x12\x38\x76\xc5\x14\x00\x95\x12\xac\xfc\x90\x7a\xe4\x86\xc1\x88\x0a\x19\xb7\x07\x2b\x3c\xa5\x7e\x00\xb7\xf7\x5b\x01\x49\x8f\xb9\x48\xc0\xb9\xad\x8b\x14\xb3\xc3\x78\x9a\xc2\xdc\xe7\x57\x88\x1a\x5c\x6d\x55\x3d\x02\x38\xf7\xa2\x40\xf8\x2a\x22\x8b\x29\x87\x01\x24\xae\x86\xa0\x6e\x18\xcf\xf2\x09\x27\xe7\x15\xc1\xea\x81\xd5\x7b\xa2\x21\x19\x07\x0a\xbb\x93\x4f\x1f\xb4\x65\x3c\xef\x30\xde\xd9\xfc\x0e\xfb\x62\x52\x3b\x7e\xcb\xe6\x47\xfa\xea\x1f\x35\xc7\x9d\x8e\x33\xc9\xcd\xca\xf8\xc6\x9f\xab\x96\x14\x41\xa5\xbd\x9c\xed\x35\x5b\xc0\x4d\x83\xed\x39\xbf\xa4\x7d\xf0\x8c\xb5\xce\x04\xaa\x63\x80\x9f\x8c\x64\x26\x98\x8c\x84\xc6\xaa\x68\x0a\xec\x32\x98\x46\xe1\x09\x51\x1a\xeb\xa1\x10\x47\xa5\xc4\xe7\x9d\xee\x62\x58\xe8\x93\x6c\x9e\xcc\x77\xb9\x75\xe7\x97\x27\xab\xd2\x1d\xe8\xd6\xb9\xd6\x2f\x0d\x93\x79\x52\x19\x20\x5a\x78\xa9\xbb\xb9\xeb\x95\xd9\x6f\xcc\x88\x36\xa6\xc3\x61\x62\x0a\x9b\xfa\x2c\x4a\x61\x6c\xb0\x82\x78\xee\xd9\x98\x3d\x7d\x11\xaf\xe0\x9c\x62\xd0\xf0\x30\x92\x6f\xd3\xeb\x1c\x85\x6d\x1c\x43\x30\xb4\x84\x8c\xad\xea\xb4\xed\x6a\xf5\x97\x2b\x11\x1b\x1b\x2b\xca\x65\xfa\xb4\xfb\xd1\x21\x8a\xb5\x2e\x6d\xfa\x8f\xbc\x91\xfd\x52\xa7\x73\xee\xb7\x5e\xe3\x06\x43\x7b\x4f\x63\x83\xce\x6d\x4e\x7a\x72\xdf\x67\xa4\x83\x40\xb7\x81\xe8\x02\x46\xfb\xcb\x32\xcb\xae\xc1\xb3\xb8\x8a\x4f\x9d\x37\x9a\x2f\x62\x56\x21\x56\x05\xc4\x07\xe3\x1b\x53\xbe\xbd\x5b\x50\xd8\x17\x72\x26\xc0\xd9\xcc\xcb\x8c\xd2\x77\x43\xea\x3b\x4c\x90\x8c\x78\x3e\x69\x92\x6c\x1f\x68\xe0\xa9\x91\x0d\xa2\xba\x71\xb0\xe0\xe6\xe1\x86\x4a\x0b\x39\x11\xeb\x5e\xa6\x25\xcf\x60\x20\x27\x62\x4d\xbd\x55\x17\x9f\x7e\x92\xa3\xa7\x34\xa7\x01\x7b\xa7\x0b\x46\x80\xdb\x3d\x3f\x7d\xc0\x84\xd0\x23\x96\x82\xe0\xd4\x43\x26\x8a\x52\x14\x09\xbc\x88\x86\x4a\xf3\x70\x32\x36\x3d\xa4\x6b\xe7\xda\x54\xcf\xf7\x11\xd2\xe1\x1b\x92\x6b\xa5\x1a\xf7\xe1\x2f\x6e\x21\x34\x52\x5f\xab\x3e\xef\xcf\xc5\xd3\x6e\xcb\xb1\xa1\xda\x51\xb3\x5c\xe8\xd7\xfe\xf2\xba\x05\xad\x2d\x73\xa2\x28\x98\xc9\xdf\x79\x9c\x66\xb9\xd8\x3a\x70\xae\xa4\x8d\x5b\xb9\x9d\xc6\x04\x5d\x34\x18\xa2\x2c\x97\x17\x12\x61\xcf\x6b\xfd\x01\x1e\xae\xe5\x85\x25\x3b\xa5\x3b\xf1\xb2\xd6\x1f\x58\xb9\x4c\x95\x82\x2c\xb1\x76\x8e\x4c\x05\xc1\xe1\x82\xaa\x13\x99\xc2\xa2\x72\x9f\x3c\x49\x74\xe1\x13\x6f\x31\xac\x12\x06\x0b\x9a\xd5\x04\x2f\x20\x1c\x78\xae\x9a\x23\x83\x28\x50\x4c\x6b\x42\xa7\xe7\xeb\x25\x64\xf8\x31\x3e\x75\x3a\xd8\x9c\xfd\xb6\x41\x11\x9f\x70\x0c\x53\xfd\xe0\xb3\xc4\xbc\xa4\xdd\x63\x21\xda\x0d\x93\x3e\x4d\x8f\x7d\x70\xea\x63\xfc\x07\x5d\xa0\x9d\xb0\xcc\xe9\x4f\x38\x7b\x2f\xca\x5e\xc5\xe9\xd5\x18\x1b\xdd\x58\x0c\xa4\xc8\x73\x34\x4e\x39\xce\x49\x56\x28\x4a\xaa\x8e\x8c\x66\xc3\x19\x1b\x51\x11\xdb\x38\xcd\x9e\x5e\xcf\x23\xac\x53\x14\x5c\x5b\x55\x14\xec\x2c\xa7\x00\x6a\x28\x65\x86\x75\x37\x21\x27\x1f\xf5\xab\x10\x72\x84\xc0\x20\x45\x80\x08\xd0\x1e\x22\xa0\x4e\x69\x33\x60\x1f\xe4\xd4\x47\xfc\x44\xc6\x72\xd9\x20\x2e\x98\x91\x8c\x9c\xca\x8c\xbb\xc3\x62\x26\x90\xcd\xd7\xdc\x82\x6e\x76\xab\x96\x48\xdb\xed\xd2\x02\xdd\x64\xfb\x11\xfb\xfa\x77\xb5\x6b\x29\x9d\x8a\x2e\xc5\x38\xa8\x19\x9a\xf3\xe9\xc8\xd5\x40\x42\x02\xba\x14\x80\x0e\xf0\xca\xaf\x12\xb0\x07\x30\xf8\xcc\xc9\xf0\x10\x0e\xd4\x8b\xc1\x34\x44\xe1\x4b\xbd\xf9\x3f\x98\x46\x8f\xd6\x17\xe0\xea\x31\x6e\x4c\x39\x0d\xe8\xeb\xee\xd0\x13\x0b\xa9\xd0\x37\xfc\x95\xdb\x40\xe2\x70\x63\x2c\x82\x80\xea\x56\x20\xbe\x6b\x0e\x55\x0b\x8d\x2b\xe8\x1f\xc4\x03\xa3\x7f\x11\x30\x07\xb1\x38\x5b\x94\x22\x36\xa9\x81\x98\x28\x6d\x05\xf5\x33\x60\xd7\x2d\x5f\x82\x7d\x85\x5a\x40\x4e\xf3\x50\x44\xb9\xf9\xd4\x4f\x03\x3f\xa2\x22\xfb\x26\xb2\x41\x65\x61\x3c\xc2\xb4\x1a\xf7\xfa\x43\x2d\xca\xa3\xf5\xab\xc8\xeb\x7b\x51\x4c\x04\x9f\x4b\x15\xf8\xfa\x8a\xf6\x7f\xa2\x99\xc6\x35\x33\x6c\xf4\x26\x30\xbf\x94\xd8\x31\x84\x51\x93\x04\xda\xc4\x43\x85\x60\x4e\x06\xcb\x2b\x74\xf1\x62\x55\x9a\xb9\x18\x40\xf2\x52\xe4\x01\xc5\x96\x5b\x28\xd8\x87\x01\x86\x10\x1a\x41\x4e\xe3\xb8\x9f\xa8\x49\x12\x00\xe3\x03\x4c\xc8\xca\x96\xee\x8c\xa2\xa5\x25\xed\x55\x4b\x82\xa3\xe6\x4d\x50\xe8\xdc\x74\x4a\x04\x06\x99\x86\xf4\x09\x7c\x24\x57\x0f\x01\xab\xa3\xa4\x9f\x96\x6e\xe8\x78\xa3\x51\x75\x12\x13\x36\x2b\x04\x4f\x67\x0c\xa2\xec\xce\x47\xf5\x91\x50\x52\x81\xc3\x49\xa2\x49\x30\xf1\x92\x08\x4d\x02\x7c\x8f\x85\xad\x6c\xe8\x37\x95\x0b\xd6\x2b\x38\x5e\xf8\xae\xc1\x8a\xc4\xc3\xf6\x18\xa0\x2a\x3c\x48\x23\x1c\xcf\xa2\x95\x41\xa5\x19\x0c\x0a\x83\x27\x9a\x62\x71\xb9\x61\xbf\x8b\x42\xaf\xca\x8a\x10\x6a\xc2\x55\x82\xac\xee\xe8\x4e\xe4\x06\x52\x21\xe0\x82\x7d\xfb\xea\xf5\x5f\x5f\x7d\xfb\xed\x1b\xb8\x72\x9e\x2e\x83\x69\xba\xcc\xb4\x06\x12\x4a\x54\xcd\xe9\xfe\xf5\xe0\xf5\x9b\xde\xba\x26\xb7\x4b\x9d\x06\xb2\xb5\x9b\xda\xba\x5c\xf7\xbc\x10\xee\x99\x90\x5a\x75\x72\x38\x5c\x36\x9a\x7b\x4c\x81\xcb\xca\x01\xe1\x7b\x44\x93\x24\x05\x58\x64\xfa\xc1\xcb\xc0\xd2\xce\x06\xec\x93\x02\xdd\xe9\x42\xdc\x3b\xd5\x89\x7a\xfd\xe0\x1a\x5d\x86\x36\xb1\xe5\xb9\xad\x45\x14\xe0\xb9\x33\x3b\xe6\x85\x56\x97\x61\xfe\x61\xa0\xe5\xe4\x5d\x5a\x5e\x82\xba\xe8\x10\x89\xe7\x9b\x92\x0e\xcf\x7e\xe5\x85\xd4\xa5\xf1\x9e\xf0\x44\x4f\x73\xad\x80\xc9\x85\x2a\x96\xb8\x62\x78\x96\x50\xee\xac\x3a\x89\x61\xb9\x01\xb8\x27\x2c\xe6\x38\x30\x80\x93\x76\x1e\x23\x01\x42\xea\xde\x0f\x55\x50\xca\x16\x05\x6e\x44\x23\x23\x77\x69\x65\x28\x9e\x45\x9a\x78\xa2\xd0\x8d\x9f\x47\xa8\x4f\x86\xbd\x80\x98\x5d\x54\x17\xbe\x57\x09\xdf\x45\x6d\x65\xcb\xbc\xf5\xdf\x7d\xbb\x81\xb7\x3e\x6f\x4e\x68\x35\xca\x54\x64\x6c\x90\x51\xe0\xac\xb7\xd6\x54\xc7\xfc\xf6\x05\xd9\x67\x1c\xaf\xe8\x27\x85\x04\xf7\x76\x88\xbd\xa6\x1f\x29\xf3\xb6\xf6\xbb\xd3\x56\x1e\x74\x48\x94\xb8\x13\xb3\x07\x5d\x04\xec\x30\x3f\x6a\x4d\x43\xa1\x61\x11\x56\x80\x7c\x6b\x10\xd9\x5a\x90\xa2\xd9\xd2\x78\x36\x60\xc7\x6a\x86\x2c\x13\x55\x41\x2f\xfd\x78\x86\x3b\x9c\xc5\x3e\x8d\xda\xee\xf9\xa4\x3f\x1a\xcd\x49\x30\xb0\x9f\x0b\x2d\x59\xd5\xf1\xf4\x7c\xde\xc7\x6a\xeb\x02\x18\x31\xe1\xa5\x15\x54\x82\xdb\xff\xbc\x19\x4c\x4d\x95\x40\xb5\xd2\x9c\x55\xdb\x52\x0e\x2f\x86\xd7\x48\xc7\xe8\x8c\xa3\xf9\x0a\x77\x38\xb9\xb7\xa1\xba\x25\x85\x96\x03\x76\xec\x15\x74\x7c\x14\xc1\x1f\xe4\x3a\x83\xe2\xae\x75\xfb\x00\xb6\x38\xbe\x38\xf5\xba\x33\x41\xa5\xd4\x43\x8d\x50\x9a\xa9\xcf\x04\x1e\x61\xc2\xac\x11\xff\x2a\x79\x86\xfe\xdd\x9b\xa2\x14\xb7\x2f\x36\x7b\xc7\xd0\xe0\x7b\xf4\xea\xd5\xab\x1f\xe1\x19\x83\xc9\xfd\xaf\x6f\x7f\xfa\x5f\xdf\xfe\xf4\x14\x59\xac\xf5\x34\xb8\x8e\x9a\xdb\x82\x4d\x8e\xcc\x19\x2b\x61\x04\x30\x6c\x3c\x72\x95\x37\x52\x8b\xa2\x5c\x78\x60\x9b\xf4\x46\x61\xde\x43\x8f\x7d\x52\xef\xb0\xe4\x54\x0f\x9f\xad\x9a\x41\x1b\x1b\xed\x14\x44\xe7\xe8\x1b\x5a\x5e\x1f\xa7\xbc\x51\xda\x45\x10\x8b\x3a\x30\xb6\xab\x46\xf3\x5a\xc6\x5f\x4d\xb2\xa3\x7b\x2f\xab\x80\x2e\x3a\x61\x18\x6a\xda\xf3\x19\x31\xc1\x3d\x5d\x92\xe9\x15\xc3\xcc\xbd\xe3\x01\x19\x45\xbd\xeb\x20\xbc\xc7\xf0\x88\x8e\xad\xa4\x2c\x41\xf1\xae\x0d\x8b\xaf\x28\x55\x3d\xec\x3f\x52\x7d\x6f\x5f\x64\x62\xcc\x93\xd9\xed\x8b\xfa\x48\xb1\xbb\xc2\xcf\x18\xcd\xd8\x92\xea\x4e\xe1\x88\x54\xc9\x50\x11\xba\x6e\x75\xbe\x43\x49\x69\x9c\xa4\x67\x65\x3e\x48\x1a\x8d\x70\xc5\x16\xb2\x25\xf5\xd4\x87\x69\x04\x99\x12\xeb\xa4\x09\xcb\xbd\x58\xd2\x2e\x50\x7e\xbf\x09\x7a\x96\xb7\x12\xac\xfd\x0c\xd6\x36\xc5\xf1\x75\x69\xc0\x3e\x42\xd2\x56\x60\x6a\x61\x84\x65\xaf\x44\x7b\x27\x9e\xbe\x55\x17\x1b\x2c\x70\x61\x7e\xe7\xda\x5c\xac\x99\x2a\xba\x34\xd4\x68\xf7\x99\xa2\xed\x01\x1a\x70\x44\x07\x8c\x5d\x0b\x82\xf9\x8a\x23\x42\xa1\xfa\x37\x11\xb1\xca\xf3\x04\x2b\x26\x8a\x73\x8b\x68\x16\xc7\xf7\xad\x38\x15\xa7\xa1\x48\x78\x3d\x2c\xd0\xc7\xa7\xba\x5f\x29\xcc\x22\x93\x1c\xcd\x22\xf5\x96\x28\x12\x56\xfd\xbc\x05\xff\xa4\x99\x6b\xc3\xa4\x32\xd6\xe9\x5a\x9b\x9c\x82\x66\x67\x2b\xc3\xac\xe6\x47\xaf\x38\x93\x97\xb5\x1b\x2b\x26\x7f\xd6\x1c\xd7\xeb\xf6\x44\x58\x6e\xee\x2a\xe3\x8e\xe8\x13\xa2\x1a\x9e\x83\xe8\xef\xb4\x96\x3e\xd9\xb3\x17\x18\x7c\x96\x52\x63\xc2\x0b\x71\x89\x19\x08\x17\xde\x1b\xb7\x8a\x20\x13\x30\x4a\x33\x23\xd5\x38\x13\x21\x7f\xa1\x72\xe6\x0d\x85\x7d\x10\x24\xfe\x34\x13\x89\xe2\x24\x5e\xc2\x14\x45\xb6\xe6\x78\x77\xed\x3d\x26\x93\x0b\x28\x67\x9a\xdd\x4b\xf1\x80\x66\x04\x39\x56\x3c\xf3\xa3\x0a\xd2\x4f\x50\x86\xad\x8f\x12\xdc\x8c\x21\x16\x67\x3e\xe9\x62\x2e\xe1\xa2\xf6\xb2\x04\x9c\x9a\xcb\xf3\x53\xf6\x7a\xc0\x7e\x46\x07\x34\xf4\x75\xdd\x46\xb9\x10\xea\xa3\xed\x84\x2c\x19\xbb\x76\x39\x9b\x72\x88\x98\x57\x6b\xb3\xe8\x51\x99\x65\x33\xe6\xa4\x46\x64\xc7\x97\x3a\x9d\xf7\x2d\xdf\xbe\xc0\xf2\x00\xfe\x07\xac\x0d\x30\xc0\x3f\x86\xb1\x6b\x7f\x75\x5c\xbb\x82\x97\xc7\x5f\xcc\x7d\x42\xbf\x92\x7e\xc3\xe2\x0f\xdb\x12\x4e\x5b\xde\x76\x90\x76\x39\x7d\x09\xb3\xe4\x80\x69\xbe\xc1\xad\xb7\xa2\x98\x4a\x05\x66\xd2\xf7\x05\x4f\xc4\xa5\x28\x24\xb0\xf1\x5d\x45\xbb\x2b\x21\x10\xc0\xdb\x8f\x24\xd8\xd8\x0d\x04\x44\xc7\xc4\x37\xd0\x78\x9c\x3a\x85\xd9\xc6\x2c\x15\x99\xa8\xec\x6c\xcd\x50\x75\xa5\x55\x5f\x89\x31\xaf\x05\xab\x83\xb6\x8c\x36\x31\xd4\x98\x82\x02\x4a\x9d\xc9\xe9\x54\xa4\x8e\xc7\xba\x41\x7d\xe4\x06\x7e\xe0\x94\x2a\x99\xf5\x6a\xe2\x0a\x4c\x91\xe5\x40\x8c\x7a\x08\x87\x67\xb0\x30\x62\xad\x19\x31\xbf\x36\x62\xf0\x91\x0d\x0a\xbb\xbf\x9e\xde\xdc\x5a\x09\xd7\xa0\x03\x01\xa8\x01\x67\xd1\xbe\xf8\x9b\xed\x2f\x2a\x26\x9b\x11\xec\x70\xd4\xa1\xfb\x7a\xa4\x8b\x44\x0e\xb3\x19\x9b\xf0\xcc\x56\xf5\xa6\x21\x11\x00\xbb\x19\xb0\x6b\x61\xe3\xe5\x67\x5a\x8d\x61\x72\x9c\x92\x1d\x1f\x73\x34\x47\x26\xee\xae\x95\x39\x8e\xe7\x9e\xa4\x99\x2e\x17\xe4\x3b\x7e\xf7\xca\x2f\x75\xe7\x69\x03\x56\x67\x02\x09\xba\x9e\xbe\x5a\x19\x1e\xa2\x1e\x76\x1c\xaf\x75\x13\x7a\xde\x49\x1d\x88\xeb\xdc\xe9\x98\x27\x51\x7a\xc2\x0a\xfb\xd8\xa2\xef\xa2\xa2\xc0\x13\xfd\x10\x17\x03\x00\xdb\xa3\x2e\xc7\x13\xf4\x9f\xc1\x87\x8c\x27\x85\x86\xf2\xf6\xd8\x9d\x87\x0e\x1c\xb0\xeb\x3a\x3a\x7f\x1d\x93\x1f\x9e\xab\x07\xfe\xff\xb3\xf7\xee\xbd\x8d\x1b\xd9\xbe\xe8\xff\xe7\x53\x14\x3c\xf7\xc2\x76\x20\xc9\xed\x74\x26\x7b\x76\x6f\x6c\x1c\x38\xb6\x7b\x62\x4c\xda\xad\xb1\x9d\x04\xe7\x1e\x6f\x4c\x4a\x64\x49\xaa\x6d\xaa\x4a\x61\x91\xb6\x35\xd8\x1f\xfe\xa2\xd6\x5a\xf5\x20\x45\x49\xd4\xc3\x6e\xa7\x47\x18\x60\xe2\xa6\x8a\xc5\x7a\xae\xf7\xfa\xad\x99\x2b\xc8\x30\x90\xa9\x30\x2c\xa4\x87\xb9\xc1\xd4\xed\x90\x75\xa3\x23\xd1\xc1\x86\xe8\xc9\x47\xa1\xfa\x3a\x35\x38\x3d\x6f\x6e\x64\x67\x59\xc6\x16\x2e\x19\xdc\x82\xb3\xeb\x8b\x9d\x67\x0b\x2c\x5a\xec\xed\x9d\xac\x99\x34\x45\x77\xc2\xa7\xdd\x07\x31\x33\x15\x28\x97\xca\xe9\xf8\x9b\x98\xd5\x13\x0b\x2d\x11\xf8\x59\x11\xfc\xb7\x5d\xb7\x78\x30\xff\xb5\xe2\x8b\x6e\x78\x13\xbe\x3a\x2e\xb0\xe2\x01\x5e\x34\xa0\x2d\x1c\xc1\x54\x50\xbb\x65\x28\x0a\xb5\x0e\xb5\x77\x21\x80\x18\x0b\xbf\x0f\x66\xab\x43\x53\x36\x2c\x00\xee\x06\xb9\xd3\x63\x45\x15\xf6\xdf\x8e\xa7\xbe\x93\x0b\xbb\x7a\x7f\xb3\x67\x31\xec\xd5\xff\xaa\x8d\x6d\x31\xf4\x90\x8b\x2a\xfa\x5f\xb5\x53\xb8\x49\x92\xdf\xca\x8a\xfa\xae\x4d\xec\xec\x9c\xcf\x0c\xa8\xe2\x59\x3b\xa0\x1c\x7c\x30\xe1\x33\x66\x2f\x72\x06\xad\x78\x52\x94\x3c\xc3\x8a\xf6\xd8\x16\x8d\xd1\x1d\x26\xc8\xe6\x9c\xcd\x2a\xd5\x2b\xe0\x08\x62\x24\xb1\x63\xe2\x2e\xa6\xc4\x2e\x45\x12\x00\x19\x72\x9d\xb1\x69\xc6\x55\x9b\x22\xe4\x11\x48\xf4\x0a\x2c\x2a\xc2\xb4\x77\x59\x64\x7e\xe0\x9b\x9c\xf3\x8d\xb1\xab\x77\x60\xfd\x0c\x30\xff\x2f\x71\x13\x6a\xe0\xd8\x5b\x91\x2a\x7f\xc4\xf1\x00\xad\x24\x5a\x77\x54\xfd\x01\x0a\x9d\x68\x45\x60\x12\x56\x66\xac\x26\xbd\x61\x50\x94\x92\x43\x10\x79\x63\x50\x53\x13\xc5\x27\x81\x9f\xb9\x2c\xa6\x25\x10\xc2\xdf\x30\xca\xd2\xca\xa4\x56\x66\xfb\x6d\xf7\x5b\xce\x55\xa4\x60\xbb\xe2\xb0\x2f\x13\xad\x74\x5b\xab\x3c\xbb\x81\x20\x35\x9f\x51\xd3\x72\x93\x88\x18\x60\xc0\xdf\xac\x39\xbf\x06\xaf\xba\xd5\xbc\xe6\x32\x6d\xda\x39\x5a\xa7\x71\x99\xdf\x2f\x9f\x32\xb2\xcb\x85\xc7\x84\x80\x55\xf2\x79\x80\xbd\x25\xe3\x87\x7d\xcd\x72\x66\x94\x20\xa3\x58\x4e\x67\x5f\x70\x25\xbc\x24\xea\xc4\x33\x11\x0c\x9d\x9b\x98\xb8\x2a\x81\xaf\xdb\xdf\xdf\x5a\x2c\xe5\xdc\x25\xbe\x73\xb5\x87\xb0\x4c\x34\x33\x65\x62\x55\xa7\x61\x99\xd5\x5f\x0d\x80\x57\xe8\x02\xfb\xcf\x08\x3d\x68\x52\x29\x34\x4d\x61\xb1\x8d\xef\x1a\x9f\x32\x8e\xf8\x4e\xff\xd2\xb4\xa0\x5d\xa5\x90\x33\x36\x2e\x27\x5c\xb1\xf6\xb5\x42\x9e\xc6\xb3\xf8\xa4\xfa\x5a\x88\xa1\x18\xcb\x06\x41\x7f\x68\x18\x49\xaf\xdb\xc5\x43\xce\xb5\x77\x66\x42\x20\x33\x4f\xde\x78\x88\xbe\x65\x88\xdb\x30\x64\x08\x44\xfd\x2f\x78\xa8\x7c\x35\xb4\x28\x75\xcf\x47\xe0\xe5\x00\xe8\xc1\xad\x8e\xc7\x0d\x0b\x31\x31\xec\x51\x26\x85\x9c\x18\x38\x95\x12\xa3\x9f\x64\xee\xcd\x3a\x15\xdb\x05\xda\x46\xaa\x4a\xa0\x87\xb4\x1a\x95\x3c\xe7\xaa\x10\x22\xe0\x6b\xc5\x9e\x8e\x5a\x2c\xa0\x74\x25\x97\x82\x5a\x6a\xa5\xb7\x54\x24\x00\xf8\xaf\xad\x78\x95\xf8\x44\x3f\x26\x32\x23\xb0\x4c\xa1\x1c\x3a\x57\x3e\x14\x5f\x1a\x88\x44\x4f\x04\xe3\x8f\x5c\x66\xb0\xe7\x46\x6b\x40\xe1\xa9\xf6\x0b\x70\x3c\xa1\xf3\x11\x4d\x34\x14\xc2\xac\x8c\x0a\xfd\x81\x14\x99\xe1\x1d\xfa\x10\xd7\x48\xe5\xe1\x1c\xd2\x21\xda\x82\xc2\x6a\xf6\xd8\x19\x86\xb5\x9a\x32\x83\xf4\x21\xbf\x4e\x94\xab\x99\xca\x21\x64\x16\x14\x68\xa3\x71\xf9\x1d\x2e\x78\x36\x32\x05\xe1\x91\xdc\x86\x42\x4e\xc7\xdc\xac\xac\x9a\x62\x3f\x35\xa6\x3c\x0f\xc8\xd5\xa7\x80\x51\x89\x99\x20\x76\x11\x9c\x0b\xa7\x9c\x00\x08\x8f\x1e\x52\xc5\x48\x97\xd6\x83\x37\x47\x16\x86\x79\x1a\x83\xf4\x32\x72\xfa\xc3\xe5\xee\x38\x77\xbf\xb1\xe2\xbc\x4a\xfd\x05\x45\x3c\xd0\x60\xbe\x8e\xf2\x57\x22\xcf\x10\xf2\x75\xe8\xc9\x47\x1b\x60\x49\x3f\xbc\xd5\x91\x86\x40\x38\x11\xf0\x86\xc3\x2a\x00\x93\x9a\xdd\xf8\xa9\x36\x46\xda\xb3\x82\x13\x47\x47\x11\x40\x61\xf6\x05\x44\xdb\x7d\x40\x58\x4a\x9d\x02\x9f\x18\x80\x95\x3f\xb1\x84\x35\x80\x67\x46\xae\x48\xa7\x55\xd8\xcb\xd7\x50\x67\x30\xe2\x29\x98\xe0\x63\xfb\xc4\xeb\xe9\x92\x69\x43\xa2\x22\x61\xde\x53\xa0\x65\x0c\xe0\x18\xee\x0f\x37\xec\x49\x00\x16\x08\x36\x33\x53\x7b\x9c\x52\xfd\xa4\x2c\xc5\x07\x2b\x24\x7e\x08\x40\x4f\x81\x38\xb8\xbc\x71\xe4\xcd\x09\xf8\xac\x01\x22\x95\xdb\x47\x76\xbb\x6e\xd0\x80\xd9\x30\xf3\x81\x2e\x15\x42\xd8\xb8\xa0\x69\x95\x2e\x70\x7a\x00\xe3\xaa\x4e\xeb\x6c\x01\x30\x84\xdd\x1c\x88\x5b\xc4\xef\x42\xf6\x83\xf4\x0e\x0d\xe7\xb8\xd0\x43\xe4\x83\x80\x7a\x99\xbb\xdc\x0e\x48\x54\xbe\xb5\xfc\x57\xa4\x22\xfd\x00\x36\xa4\x79\xa7\x08\x4e\xc2\xde\x73\x67\xab\x06\x7b\x34\xf1\x6d\x9c\x46\xc5\xc1\x2e\x7c\x96\xca\x47\x48\x35\x59\xa3\x63\x5a\x94\xe6\xb9\xda\x95\xac\x8e\x61\x88\x51\x16\xfe\x92\x50\x43\x21\x81\xb0\x89\x67\xe9\xad\xbd\x4a\xab\x2e\xd8\xc0\x9d\xca\x9b\xb3\xa7\x6a\x77\x74\x1e\xf1\x10\xf6\x5c\xf5\xa6\x0f\x90\xcf\x05\x95\xf5\xe8\xba\x39\xbd\x59\x44\x71\x73\x74\x12\x68\x01\xf4\x00\xc6\x91\x76\x58\x31\x9b\x12\x46\x89\xab\xba\xa7\x98\xc8\x73\xac\x23\x4b\xf8\xd9\xc4\x4f\x43\xad\x46\x6d\x8a\x38\x24\xcf\x5e\xa7\x5d\x0b\x2d\x48\xd0\xd6\xa7\x83\xb5\xaa\x15\x4d\x74\x70\x37\x85\x25\xe6\x25\x5c\xdf\xd9\x26\xf4\x1b\x4a\x63\xac\x18\x38\x36\x22\x7f\xbb\x1d\x4b\x5c\xf9\x68\xc1\x5c\xae\x2a\x15\x3e\xa5\xa9\x9b\xda\xdf\x15\x4e\x5f\x8d\xc2\xfd\xe9\xed\xab\xbe\x8b\x8c\xec\x63\xcd\x61\xcc\xb3\xf1\xdf\xe1\x05\x0a\xb9\xa7\xe4\x91\xf0\x69\x44\x7a\xc8\xa0\x3e\x06\xe6\x75\x3f\x7e\x1f\x63\x0d\x48\x43\xa1\x27\xb0\x72\x90\xf6\x1d\x68\x49\xe8\x7b\x26\xea\x71\x72\x3b\xb0\x56\x5c\xf5\xdf\x78\x82\xf6\xef\xda\x40\x38\x4f\x0b\x4e\xfe\xf7\x92\x67\x14\x1a\x4b\xae\x7a\x76\xf4\xf7\xcf\xb7\xc7\x18\xe6\x23\x87\x70\x6b\x2d\xef\x9d\x2f\x4d\x12\x90\x5b\x1a\xd3\x5f\x20\xde\xa2\xaf\xd3\xbf\x7f\xbe\xc5\xd8\x22\x88\xbd\x00\x1d\xdb\x8b\x5e\x7f\xff\x7c\x8b\x1f\x12\x66\x53\x0c\x7e\x4c\xed\xc8\xf5\x54\x1b\x9e\x99\x13\x8c\x11\xa2\xf1\x74\x7f\xd7\xf3\x25\x27\x76\x56\xcf\xef\x8c\x0d\x72\x29\x86\x51\x15\xbf\x4d\xb5\x07\xa0\xb2\x3d\x06\x55\x4b\x0f\x2f\xad\x78\x2d\xd2\xc3\x8d\xea\xfc\xa1\x02\xf8\x9a\x85\x1e\x6f\x3e\x9e\xb3\xf7\xef\xdf\xff\x3b\x03\x54\x5b\x10\xc7\x24\x7a\xa4\x83\x5a\xef\x42\x62\xb9\x61\x3c\xb1\xdc\x26\x13\xe9\xa8\x2a\x19\x65\x3e\x62\x5d\x9a\x18\xf2\xcc\x81\xe7\x42\x52\x72\xda\x24\x1e\x1d\x99\xe3\x0a\xc6\xcf\x6e\x91\xe6\xee\xc4\x64\x9a\xad\xac\x4c\xe0\x5a\x45\x9e\x37\xce\x0a\xf7\xd0\x8e\xce\x87\x0b\x27\x7a\x2a\x85\xb3\x44\xe7\xc2\x45\x14\xb7\x04\xa5\xdb\x17\xd2\xf9\x62\x85\x74\xf6\xa5\x62\xbe\x96\x52\x31\x98\xb0\xdf\xbe\x58\x0c\xee\xcd\xa1\x79\xbd\x82\x31\x7e\xd2\xcd\x01\x03\xf3\x34\xa9\xd5\x92\x34\xd1\x35\x40\xd2\x5c\xb6\x0a\x11\x69\x0b\x74\x04\xab\xf2\xc7\xf8\x26\xce\xbc\x41\xa7\x93\xcc\x4f\x6e\xa4\xbd\x17\x59\x25\x2b\x83\x82\x59\xd2\xd4\xec\x85\x2b\x09\xbf\x7f\xfe\x82\xd5\x72\x3c\xe7\xa8\x34\xd8\x41\xc5\x1c\xd7\xf1\xea\x82\x6d\x71\xcb\xb9\xc2\x6d\xee\xc7\x7d\x01\xb7\xb7\xcd\x77\xd6\x2c\xe0\xe6\xef\xdc\xee\xbd\xb4\xfe\x44\x6f\x63\x98\xdf\xb3\xd1\xaf\x85\x8d\xee\x2b\xae\xe1\xf3\x57\xe0\x21\x2f\x52\x79\xad\x22\x02\xb4\xe2\x23\x00\xaa\x1d\x54\x1c\x08\x77\xe5\x05\x27\xc8\x00\x22\xd3\x60\x86\x09\xb0\x8f\x4e\x26\x08\xfa\xd0\x6a\x76\xb3\x97\xf9\xe6\xee\xaf\xa9\x6e\x52\xab\xe5\x98\x43\x4c\x5f\x3a\x73\xc2\x4c\xf1\x8c\x18\xe3\xa1\x8d\x84\x38\xcd\xa8\xa8\xd4\xb2\x38\xba\xb7\x21\xdd\xad\x3e\xfb\x79\xf1\xa4\xf3\x67\x0c\xbe\xbb\x05\xf6\xb1\xf4\x02\xcc\x37\x8f\x23\xce\x38\x73\x2d\x5c\x61\x2a\x0f\xdf\xd1\xa6\x38\x5c\x8b\x9a\x83\x1f\x6f\xa9\xd8\x60\x05\xd2\x03\x2a\xa8\x61\x1e\x3c\x98\xd6\x0a\x8d\x61\x90\xec\x93\x47\x75\xaf\x37\x09\x05\x1d\xc8\xf4\x82\x36\xf8\x29\x84\x31\xab\x91\xf7\x09\x5c\x3e\xf7\xd8\xfd\x81\x78\x2e\xbe\xbb\x3f\xe8\xb0\xfb\x83\xe7\x21\x16\xc3\x9a\x78\x94\x60\xe0\xa4\x04\xb6\x05\xe9\x11\xd8\xb8\x5e\xd9\x66\xb3\x1c\xe5\xcf\x2a\x5b\x95\xb9\x1a\x87\x9f\x43\xce\x08\x3b\xb2\x6f\x9e\x3c\xe5\xb2\x10\xc7\x3d\x40\xcf\xfa\x0c\xa1\xc6\x1e\x95\x7a\xa8\x73\xf2\x0f\xfb\x1f\x5d\xfa\xbe\x54\x0c\x77\xf7\x93\x5d\xc0\x45\xc8\x3d\x4b\xf3\x4f\x70\xeb\x57\xa2\x30\xfe\x42\xcd\x08\x2b\xcc\xae\x64\x6a\x0f\x3d\xa0\x20\xce\x9d\xa4\xdd\x56\x86\xf4\x43\x5c\xc5\xda\x56\x5e\x20\x48\x82\xcd\x45\x7a\xeb\x11\xc2\xee\x44\x3e\x59\x72\x87\xce\x5c\xa6\xe8\xd4\xbd\x1a\xa3\x8b\x15\x22\x9f\xf8\xdc\x56\x70\x14\xc2\x38\x28\xcb\xd4\x67\x9e\x3e\x09\x88\x48\x78\xc7\x8e\x64\x4f\xf4\x98\xb4\xe4\x99\x33\xa5\xbb\x7a\x7a\xdc\x63\x67\x4c\x95\x59\xd6\xe2\x03\x4a\xfb\xfe\xa9\x23\x83\xde\x7e\xdf\xd7\xea\x6b\x3b\xf5\x20\x8e\x1b\x13\xe5\x18\x72\x09\x56\x6f\x19\x75\x3e\xc3\x28\x03\x0f\xca\x64\x27\xd4\x99\x83\xf0\x99\x07\x81\xc1\x25\x5b\x90\xc4\x88\x3f\xae\x38\xb0\xbf\xe2\xa2\xd7\x3f\x55\x01\xcc\xae\x7e\x53\xd5\x26\xe6\xc1\x21\x73\x28\x3a\x79\xda\x3d\x7d\xf7\x6e\x37\x80\x15\x2d\xcf\x3d\xcd\xb3\xd3\xb8\x7d\xdb\xdf\x05\x3d\x58\xca\x3d\xec\xef\x15\xbb\xf0\x58\xf0\xac\x18\xb3\x64\x2c\x92\x07\x22\x9f\xbe\xdc\x1a\xe3\x23\x2e\x95\x29\xe2\x52\x2e\xb6\x4d\x2a\xd0\x81\x2b\x02\x02\x3a\x6a\xf4\x19\x14\x11\xc9\x29\x70\xac\xd0\x21\x28\x27\xe7\xc3\xa1\x4c\x5a\x9c\x65\xf1\xbc\x85\x68\x71\xf9\x2c\x92\x33\x80\x2c\x5c\x7a\x7e\x3f\x2b\xf4\x0d\x40\x88\x92\x56\xde\xa5\x3c\xd4\x59\xa6\x9f\x80\xf5\xf8\xbc\xf8\x08\x1d\xd7\xf6\xee\xff\x6d\x5c\x8c\xb6\x2b\xf9\xc4\x1f\xc4\x82\x93\x4d\xee\xf2\xbb\x71\x2e\xcc\x58\x67\xab\x14\xce\x4f\x52\xc9\x49\x39\x81\xb4\x15\x91\x94\x90\x5a\x46\x5d\x44\x20\x65\xb0\x91\xb8\x5f\x11\xd8\xa4\x03\x99\x84\xb0\x1e\x2b\x25\xd9\xb9\xb8\x48\x83\x5a\x9a\x54\x8f\xb9\x2f\xf9\xd4\xb3\xd3\x9d\x43\xb7\x58\x59\xec\xaf\x62\xf3\x34\xee\x1f\xef\xee\xfa\x7f\x15\x45\x8b\x4d\xa5\x96\xb5\x0d\xb2\xdf\x8f\x51\xfa\xe8\x6c\x2f\xd8\x29\xc2\x15\xbd\x10\x19\x9f\xb5\x4b\x3b\xbc\x2e\x27\x03\x01\x92\xe8\x7c\x7a\x5d\x35\x84\xc2\x05\x4b\x92\x3b\x29\xab\xc2\x67\x42\x74\x8f\x47\xb8\xdf\x6d\xbc\x64\x88\x93\xc4\x6f\xed\x1c\x9e\x67\x8d\x34\xcd\x1f\xf5\x13\xd3\xc3\x42\x28\x76\x14\x52\x12\x8f\x63\xac\x7f\x7f\xba\x2b\xe8\x1d\xa7\x21\xa9\xef\x35\x8e\x2d\x45\xd9\x6c\x73\x65\xa9\x8b\xd5\x77\x36\x8a\xc4\xad\xdc\x5b\xbc\xcb\xd5\x4b\x7b\xda\xf3\xf2\xf4\x29\xf4\xeb\x8f\x11\x64\x5d\x23\xfc\xea\xab\xac\x50\x91\x4c\x6f\x75\xf2\xb0\xc5\xd5\xbe\x3b\xef\x63\x0f\x2d\x2e\xb7\x6f\x1b\x5d\x6f\xae\x1c\xf9\x95\xea\x51\x67\x8f\x08\x7f\x74\x77\xde\x07\xc4\xf3\x1e\xfc\x35\xd6\xfa\xc1\x84\x70\x6d\xa7\x70\x2c\x98\x92\x9c\x08\x5d\x16\xdb\x5d\xfc\x28\x7c\x1c\xb7\x5b\x4e\x84\x61\xba\x2c\x6a\x1b\x49\xaf\x35\xee\xd5\xdb\xbf\xfd\x5b\x2b\xbd\xb9\xc6\x42\x08\x2d\xb5\xde\x9b\x58\xc1\x9d\xba\x97\x9d\x86\x8b\xfa\xed\x6a\xd9\x82\x12\xaa\x3f\xe9\x74\x95\x8e\x6b\x9b\x60\x31\x6f\xc2\x88\xd0\x91\x01\x09\x6a\x85\x07\xb8\x93\x5e\xa4\xe2\xe2\x26\x3a\x68\x85\x77\x70\x2b\xdf\xfd\xdb\xbf\xfd\x5b\x8f\x5d\xc8\x1c\x64\x50\x87\xfd\xe5\x82\xf1\x78\x31\x06\xda\x6f\xcf\x28\x87\xea\xd2\x11\x7c\x3a\x69\x84\x14\x8b\x80\x35\x0d\xa1\x8a\x04\xc0\x36\x66\xd2\x21\x7b\x61\x44\xb1\xab\xbc\x83\xf5\xd9\xb1\x52\xb5\x53\xcd\xd9\x04\x62\x1f\x33\xf9\x20\x5c\xf9\xeb\x10\xae\x8a\xe1\xbe\x2e\x7b\x11\x3b\x9b\xf8\x15\x30\x73\x51\x4b\x3b\xa0\xaf\xe4\x7f\x58\xbe\x0b\x59\x25\xc7\xd2\xed\xfb\xee\x73\xbe\xf0\x10\xf6\x7d\xf7\xeb\xbb\x14\x5a\xca\xfe\x6e\xda\xdb\x8a\xf9\x7f\x2f\xf5\x60\x56\x88\x4d\x2e\x0f\xbd\x4a\xc6\x19\x38\x2a\x19\x77\x29\x83\x96\x6a\x40\xc0\x4c\x48\x4d\x74\xed\x5d\x9e\x6b\xaa\x11\x11\x82\x4a\xa9\x87\x5a\xee\x13\xae\xf8\x08\x82\xad\x00\x09\x9c\x0a\xcd\xe6\x02\xd0\x75\xed\x21\x5e\x7d\x3f\x47\x2d\xea\x8f\x63\xe5\x76\x28\x31\x38\x75\x07\x83\x03\x03\xb5\x0f\x9d\xc4\x80\xd8\x74\xd8\xdf\x4b\x19\x7d\x96\x1a\x75\xaa\xcb\x46\x4c\xdf\xe5\x05\x23\xc2\xad\xe0\x69\x17\x73\xb1\x42\xc9\xf9\x2a\x93\xd8\x18\x7e\x24\x17\x23\x69\x8a\x7c\xf5\x0c\xb0\x59\xd5\x7e\x48\x88\x31\x3a\x67\x93\x32\x2b\xe4\x34\x0b\xb3\xf1\x2f\x84\xfa\x56\x1e\x37\x8a\x47\x2e\x32\x8e\xf5\x30\x3e\xc0\x11\x99\x72\x99\xb3\x23\xdf\x97\x50\x05\x10\x41\xc4\x97\x98\xf2\x3c\xa8\xf1\x89\x9e\x4c\xb8\x39\x76\x49\xfc\x89\x1d\x0e\x1e\xcc\xc4\xbe\xc5\x33\xe6\x26\x06\xb2\x4f\x63\x0e\x74\x3b\x9c\x11\xc5\x57\xe2\x24\xdd\x41\x23\x7b\xc0\x9d\x61\x01\xf1\x87\x6b\x3b\x4b\x74\xfc\x07\x9e\x3c\x08\x95\xb2\x9f\x8d\x9b\x4c\x3a\x53\x7c\x42\x61\xc8\xd3\x5c\x3f\x4a\xf2\x39\xd7\x2e\x54\x27\x30\x7e\x23\x0a\x67\x09\x9d\x66\xe5\x48\xaa\xf5\x67\x56\xae\x2e\x29\xfe\xb3\x41\x25\x7e\xd9\xfd\xa1\x5a\x20\xb9\x7c\x4c\x84\x83\xe1\x87\xae\xd7\x1e\x10\x59\x0e\xdb\x98\x21\x2b\x4e\x56\x20\x4c\x51\x6d\x12\x2b\xec\x11\x92\xb1\xe3\xc3\xb5\x8d\x18\xcc\x10\xdb\x72\xb7\x56\x4a\x7f\x93\xe6\xe7\xb4\x2d\x11\xbf\xf9\xe1\xa2\x2f\x72\x23\x4d\x21\x54\xb1\x09\x29\xbf\xe1\xa9\x36\xec\x87\x4c\x27\x0f\xec\x42\x40\xb4\x6c\x5b\xaa\x7e\xf3\xc3\x85\xa7\xe8\x4b\x49\x39\x80\x28\x6d\x42\xcb\xdb\xb9\x12\x6a\x1e\x01\xb2\xc3\x38\xa2\x69\xa7\x31\xd3\x25\x7b\xe2\x08\xd6\x05\xb3\xeb\xb1\x3b\x39\xfd\xc0\x2e\x95\x29\xf3\x28\x57\xab\xee\x5c\x90\x66\x0d\xff\x02\x94\x8d\x31\x1f\xe6\xbd\x0c\xf6\x0f\x55\x6c\xea\x6f\xd8\x12\xdc\xe1\x4f\xf9\x60\x83\x68\x61\x08\x43\x6d\x11\x6b\x9d\xc3\xe9\x81\xd6\x04\x0a\xdb\x30\x5a\xaa\xa8\x63\x9c\x1f\x8d\x46\x76\x92\x0f\xd2\x93\x9b\xcb\xb3\x8b\x4f\x97\xbd\x49\xfa\xa7\xb1\x7e\xea\x16\xba\x5b\x1a\xd1\x95\xc5\x06\xb1\x8c\x62\x06\x3f\xae\x88\xc3\xc0\x56\x0e\xd9\x08\x04\xe7\x42\xb3\x07\x31\x63\xf0\xdc\x72\x84\x9b\x1f\x2e\x2c\x79\xeb\xc5\x72\xc0\x89\x28\x92\x93\x44\x4c\xc7\x27\xf4\x9d\x2f\x37\xd1\x89\x56\xb2\xd0\x2b\xab\xdc\x9c\xb1\x44\x67\x19\x8a\xa2\xf6\x4a\x9c\x8b\xe9\x98\xb9\x77\x5f\x66\xf4\x0b\x24\xe8\xb6\xf5\x1b\x5a\x44\xda\x4c\xb5\xce\x5a\x9f\x4a\xdb\x98\x0e\x65\xb4\x93\xf9\xa0\xf9\x4a\xbd\xca\xde\xed\x42\x28\x5c\xe9\xe9\x6b\x90\xfe\x5e\x74\xc2\xcb\x31\xec\xa0\x58\xd5\x0d\xe8\x50\x9b\x59\x78\x6e\x5d\x0f\xe4\xdd\x58\xea\xf1\x77\x6d\x41\x76\x8f\x30\x1b\x79\x59\x8c\x85\x2a\x5c\x2c\x00\x8e\xaa\x7a\xdb\xaf\x86\x28\x61\x41\xad\x9c\x47\x91\xe7\x80\xfe\xe4\xaf\x7b\xac\x14\xc8\x6c\x67\x2b\xba\xa9\x00\x16\x8e\xb9\x6d\x3c\x7f\xcc\x79\x3a\x91\xea\x95\x0f\x7a\x4b\x69\xc8\x13\xb0\x39\x7e\xb3\x03\x61\x68\x2f\x02\xed\x45\xa0\xbd\x08\xb4\x17\x81\xf6\x22\xd0\x5e\x04\xfa\x6a\x44\xa0\xc6\x9a\x9c\x7b\x39\x68\x2f\x07\x2d\x92\x83\x84\xe5\xb0\xb0\xc5\xa1\xf6\xcf\x72\x69\x68\xbe\x7d\x3d\x36\xb3\x52\x80\x0e\x45\xa0\x3c\xbc\x17\x97\x3c\xdb\x27\xdf\xbc\xe5\xe4\x9b\x7d\xb6\xca\xd7\x92\xad\xd2\x32\x01\x80\x0a\x10\xfe\x84\x05\x2a\xe1\xe2\x36\x5f\x78\x28\x68\xec\x0b\xaa\xcc\xe0\xdf\xe4\x9e\xf6\x22\xba\x47\xda\xe7\xae\x20\x5c\x7a\x64\x8e\x83\xfa\xd0\x4c\x12\x48\x13\x32\x00\x52\xfa\x15\x66\x23\x34\xae\x67\xab\xfc\x84\x0a\x59\x33\xeb\x24\x2c\x2c\x20\xbe\x5f\x2e\x87\x21\x5e\xcc\x3a\xce\xed\x2e\x96\xb3\x01\x9e\xaf\x19\xf4\x92\x34\x9b\x2a\xcc\xa0\x1e\x00\x40\x65\x1a\xe1\xe6\x2e\x5b\x45\x88\x95\x80\x4c\x20\x02\x77\xd1\x08\x50\x0a\x90\x10\x83\x19\xa2\x0a\x3d\x49\x95\x42\x28\x1a\x04\xe8\xf4\x58\x3f\xc6\xc3\x8c\x01\x89\x6e\x9c\x9b\xf6\x0d\xa7\x98\xf8\xe7\x2f\x95\xfc\xd5\x2c\x95\x54\x9a\x6e\x9b\x02\xd6\xf8\x89\x80\xc4\xbb\xa6\x04\xe4\x5f\xac\x25\x88\x45\x60\xca\x0b\xc8\x1d\x87\x68\x67\x91\x03\x38\x1b\x30\xb7\x16\x42\x51\xc6\x4d\x71\x97\x73\x65\xe0\x9b\xaf\x0d\x7a\x02\xa8\xa0\xdc\x14\x88\x75\x52\xc4\xc0\x75\xac\xf0\xa3\x72\xa9\x6f\x5a\x79\x00\x6a\x40\xc6\x82\x70\x9f\x05\xf1\xb0\x2f\x85\x5b\x09\x95\x23\xfc\xc8\x36\xcb\xcb\x59\x0d\x89\x73\x17\xc0\xfa\x5c\x08\xa6\x5f\x18\x28\xfb\x6c\x97\x6c\x9b\x51\x34\xd3\xca\x66\xca\x16\xd0\xe6\x70\x00\x1d\x17\x78\x7e\x07\xe0\xaa\x1f\xad\xa6\xdb\x71\xf0\x67\x9b\xd4\x4e\x59\x6d\x6a\xbc\x23\xfb\xe2\x82\x93\xbf\x36\x6a\x68\x4b\x65\xa9\x06\x78\x7d\x50\x25\x6f\xbb\xd5\x94\x56\xa0\x10\x2c\x7c\x07\x45\xe6\xaa\xcd\xa9\x79\x99\xf6\x00\x05\x6f\x5b\x47\x5a\x07\xa0\x60\xd1\x0e\x6f\x1e\x7f\x1b\xf5\x72\x12\xf5\x9e\x2c\x60\x9a\xdb\x06\x2e\x36\xf3\xe5\x6d\x6c\x94\x7b\x15\xf3\x6b\x51\x31\xf7\x80\x08\xf8\xfc\x55\x65\xe2\xdd\x43\x23\x2c\xd6\x4f\xd7\x64\x73\xa0\xb2\xca\x05\xda\xea\x16\x06\xc1\x89\x54\x56\x47\x6a\x99\x2f\xe5\xb2\x1d\xd4\x5c\xfa\x84\x15\xd1\x28\xf0\x93\x29\xf1\x94\x85\x40\xbf\x08\xce\x61\xe0\x40\xe9\x9f\x64\x31\xb6\x92\x24\x57\x80\x16\x59\xa9\xdf\xcc\x92\x9c\x9b\x31\xa0\xf2\xda\x4e\x65\x31\x9f\x73\xe3\x41\x1f\xab\xfe\x86\x77\xec\x28\xc6\xfc\x6e\x7a\x81\x71\x03\x18\xdd\xf6\xbf\x98\xf5\x08\x03\x3a\xde\x75\x84\x3c\xed\xc7\xaa\xf5\xa4\xad\xf6\x9a\x73\x58\x57\x67\x7c\x70\x1d\xf5\xa2\xda\xb4\x40\x51\x29\x97\x53\x1a\x4b\xb1\x4b\x69\xc6\x3e\x6f\x41\x3c\x53\x8e\x33\x40\xf7\x5a\x79\xa0\xe2\xd2\xad\x27\x24\xbd\x18\xb3\xfc\xd3\xd3\x98\x17\x5d\x69\xba\xbc\xdb\x82\x99\xee\x20\x2b\x81\xf2\x84\xeb\x6b\xce\x53\x14\x8c\x79\xd6\x6f\xbe\x04\x6c\x1d\x4f\xe1\x9c\xc3\x87\xb2\xa8\x11\x12\x8b\x0f\x44\xc6\x7e\x2f\x45\x3e\x43\xfc\xeb\x00\x6e\x46\x57\x20\xa0\xd9\xfa\xbd\x4f\x30\x28\xe0\x6a\xc8\xe2\xce\xc8\x1e\x88\x87\xb4\x62\x0c\x44\xe1\x0f\x6c\x8a\xc4\x88\x1d\x0c\x7f\xbf\x02\x93\x06\x76\x47\xf6\x20\x66\x98\x5e\x46\x15\x69\x61\x30\x11\xb0\xae\x54\x4c\xe7\x29\x9e\xa6\x81\x08\xc4\x23\xa4\xb1\x34\xd3\x96\x0e\x93\xc3\x50\xb1\x39\x8c\x8e\x46\xa6\x55\x6d\x34\x6b\x9e\x33\xbb\x7a\x8f\x52\x3c\xc1\x81\x93\x6a\xd4\xb5\x24\xa3\x4b\xb9\xf6\x27\xf8\x91\x93\x3f\xc1\x7f\xbb\x6e\xe3\x17\x70\xee\x58\x23\xa9\x9f\x99\x2f\x03\x7f\x47\xb7\x9d\xe4\x29\xd8\x91\xaa\xa1\xc3\x83\xfd\xd7\x21\xf1\xe4\x90\x49\x65\xca\xe1\x50\x26\x20\x4b\x39\xf2\x40\x26\xe3\x02\x12\x90\x88\x56\x14\xfc\x41\xc0\x11\x49\x44\x2a\x54\x22\xf0\x44\x72\xe6\x86\x71\x23\x86\x2f\x7a\xfd\xa7\x3a\xed\x16\x73\x30\x5f\x5b\x27\x9f\x2d\xb3\x51\xae\xcb\x54\xe7\x2a\x7e\x81\x98\xea\x2a\x61\x45\x75\xbe\x36\x77\xb8\x39\xce\x73\xd3\x8e\x23\xdc\x55\xb8\x40\xe0\x5b\x7e\xa3\x8f\x90\x83\x02\xf6\xb1\xc3\x02\xaf\x31\x71\x87\x61\xbb\xf0\xee\xee\x3c\x21\xac\x75\x95\xb1\x9b\xea\x52\x93\x0e\x1b\xa6\x89\xc6\x62\xac\xb0\xb9\x6c\xe5\x0f\x4d\x65\x9b\x76\x5d\xd0\x68\x85\x39\xb3\xa5\x8a\x56\xf9\xe9\x35\x0b\x8b\x41\x41\x5c\x20\xff\x22\xdd\xe8\xdc\x05\xb6\x05\x08\x5c\x44\xd3\x2b\x38\x1d\x99\xf7\x6a\x79\x82\xe5\xc8\xdb\x72\x0b\xff\xae\xcf\x9e\xf3\x2f\xfc\x55\x28\x57\x41\x75\xf9\x54\x3f\xcf\xbd\xc0\x72\x31\xcc\x00\xc4\x05\x12\x85\xc2\x73\x9a\xc9\x02\x87\xc6\xfa\x13\xdc\xa8\x6c\x2d\x5c\xf8\x8d\xb6\x11\x49\x85\x27\x1d\xaf\x4d\x15\x36\x14\x82\xeb\xab\x8d\x8b\x1d\xcf\xca\x89\xc4\x7f\x70\xd9\xb5\xa5\xc6\xec\x97\x71\x7b\x9b\x2b\x5a\x73\x3e\x4a\x91\xa5\xb7\xf3\xd2\xf2\xfc\xc6\x34\xb4\x8f\xb9\x65\xd0\xd9\x42\x25\xa3\xa3\x64\x5a\x76\xd8\x44\x4c\x74\x3e\x3b\x76\x39\xca\x32\x77\xa5\x06\x69\xa9\x56\xf2\x4d\xdf\x75\x8b\x22\x56\xbe\xd6\x17\x44\x21\x7d\x70\x95\x03\xd2\x38\xcd\xb0\x43\xf9\xd5\x3c\xc3\x9a\x10\xea\x91\x3d\xf2\x45\x12\xe3\x32\x5b\x4f\x2a\x1f\xa5\x99\x57\x32\xd6\x36\xf5\xf4\x3c\xb0\xdb\xdf\x4b\xae\x0a\x59\xcc\xda\x40\xea\x91\x7c\x58\x59\x4c\x47\xa5\xc4\xf3\x54\x1b\x20\x4b\xb4\x17\x1d\x27\x99\x83\xae\x77\x7f\x70\x7a\x7f\xb0\xe8\xa2\x9a\x7a\xdc\x76\xf3\x79\xc0\x75\xfd\x10\xd9\x05\x35\xe1\x48\xed\x3a\x6f\x8f\x06\xb4\xab\x23\xff\xf7\x52\x57\xcc\x73\x8b\x8e\x3a\xb4\x63\x46\x14\x86\xf1\xd1\x28\x17\x23\xcb\xcf\x7e\x87\x87\xb9\xb0\xb3\xc1\x04\x76\x26\x14\x04\x45\xa6\x50\xbc\xcf\x17\xe6\xdf\xfb\x16\xde\xb2\x6f\x61\x6f\x1c\xff\x5a\x8c\xe3\xff\xd2\x00\xac\x15\x52\xb5\x7e\xa8\x93\x33\x2c\x02\x51\x7b\x6d\x2c\xfd\x5d\x46\x2a\xc5\xab\xd0\x3a\x42\x29\x5e\x09\xaa\xd0\xed\x49\x39\x92\x79\x28\xb3\x5b\x04\xf5\xb2\x34\x7c\xf4\xaf\x57\x73\xa0\xca\x37\x77\xec\x12\x89\xba\x5e\xe9\xf1\xaf\xb5\xad\x56\x1e\xa8\x72\x6d\x50\xfa\xf7\xfe\xfd\x37\xcd\x83\xdb\xf8\xf7\xaf\x6c\x9b\x65\x1b\x4d\x56\xe0\xb5\xf5\xbf\xa9\xce\x64\x32\x8b\x2a\x7a\xd9\xde\xcc\xc9\xae\x4d\x47\xf1\xcd\x69\x69\x29\xda\xcb\x2b\x5f\xb5\xbc\xb2\x77\xe6\xe3\xf3\x57\xe1\x56\x2f\xe1\xc4\xaf\x4b\x5c\x2d\x39\xd6\x42\xe1\x6b\x8c\xfb\x3c\x21\x88\x3a\x12\x41\xc0\x32\x01\x2f\xb6\xe0\x62\xb6\x8b\xcd\x3c\x9d\xbb\x30\x55\x2c\xa4\x6b\xb5\xe5\x80\x89\xba\xb0\x05\x51\xc4\x9e\xed\x78\x0d\x7c\x99\x4e\xab\x4a\x07\x0b\xc6\xcb\x50\xf8\x36\x7e\x41\x93\xe8\xa9\x68\x30\x91\xb5\x5a\xc0\x80\xa0\x50\xe9\x65\xd9\x3a\x55\xbe\x17\x81\x88\x57\x63\x1a\x87\x32\x2b\x2c\x81\x06\x1c\x40\x78\x65\xde\x9f\x8b\xd5\x4e\xc9\xb3\x98\xf3\xe4\x01\x3d\xb9\x9c\xc4\xdb\x41\x59\x30\xf1\x3c\x85\x02\xad\x29\x2b\x8d\xe5\x10\x95\x61\x7e\x86\xec\x72\x5f\x6c\x77\xe0\xaa\xaf\x03\x2a\x96\xaf\x5d\xed\x24\x8d\x8f\x3a\xc7\x82\xe3\xde\x1c\x04\xa3\xe8\xb0\x81\x2e\xc6\x6e\x88\x67\xd7\x17\xac\x3a\xc1\x23\x39\x8c\xb0\xc7\xa4\x82\x7f\x1c\x77\x70\x1e\x03\x41\xf0\xea\xe9\x82\xb8\x66\xec\x76\xcd\x1c\x64\xb7\x76\xeb\xad\x17\xb8\xe5\x01\x31\xaf\x5a\xa3\x16\x17\xb3\x01\x66\xbe\x9d\x23\x6a\xdb\xb4\xe4\x55\xfa\xc1\x7a\x14\x6d\xb5\xef\x74\xae\x75\x85\xaa\x79\x0d\x2a\xbe\xd2\x80\xd0\xed\x3c\x25\xa5\x69\x53\xbf\xe2\x8f\x41\xd2\x7e\x9c\x27\x69\x8d\x0b\xf0\xe6\x68\x5a\x69\xc4\x1f\x60\x79\x01\x82\x4f\x56\x3d\xf1\xfe\x1c\x15\xba\xe0\x19\xaa\xe4\xc1\xcb\x48\xb4\x87\xa0\xfc\xbc\x31\x76\x41\x1c\xfc\xdc\x0a\xed\xea\x2e\xdd\x44\xf5\x8a\x5b\x5c\xa6\xb8\x79\x2d\xfa\x23\xd1\x93\x69\x59\x88\xe6\x52\xc8\x6d\xf2\x59\xe0\x00\xbe\xfd\xad\xfe\x09\x2f\x4a\x75\xf2\x13\xfe\x0c\x21\x86\x1c\x91\x60\xf4\x70\x6e\x39\xb0\xae\xf8\xd3\x06\xf0\x24\x95\x4c\xea\x13\x4c\x8d\xec\x52\xf7\x5d\xdf\x7d\xd7\xfb\x9e\x36\xb8\x64\x4e\x0f\x7a\xfb\xab\x7f\xe3\x34\xb6\xda\xfa\x53\x88\xe7\xb2\xf5\x77\xca\x00\x70\x47\xdf\x8f\x55\x2a\x27\xb2\x28\xc8\xf1\x16\x55\x9d\x80\x30\xb6\xd8\x17\x45\x3b\x2f\x87\xc8\x8e\xa5\xf1\x41\x8b\xd9\x2c\x66\xb5\x90\xdd\xf4\x24\x8d\xc0\x64\x27\x28\xdf\x02\xd7\x00\x76\xb0\xeb\x0a\x1e\x83\x34\xf2\x66\x4e\xc3\xb6\x04\x85\xd0\x8a\x3e\x4f\xeb\x01\x35\x73\x1a\x63\xa5\x21\x84\x80\x45\x91\x19\x18\xcf\xc7\xa7\xd3\x4c\x86\xb8\x41\x3f\x99\x16\x54\xc4\xaa\x90\xab\x52\x31\x6c\x1b\xbb\x7d\x0e\x61\x09\x5e\xa2\x30\x48\x04\xb2\x86\xef\x9b\xb9\xef\x6f\x92\x35\xa6\xb3\x95\x1e\x4a\x9d\x11\x10\xa9\x87\x7c\xb2\x4f\x5e\x66\x3c\x6d\x73\xb6\x2a\xe3\x01\x68\xa7\x97\x19\x4f\x5b\xf4\xd8\xca\x78\x00\xbc\x63\x87\xe3\xd9\xfa\xf0\x27\x3c\x13\x57\x9f\xd7\x86\x56\x5d\xfa\x5e\x15\x21\x79\xea\xdb\x30\x7a\xab\x5e\x21\x6b\xb7\x98\x60\x01\xf7\xeb\x85\x8a\xa9\xc5\x18\x5f\x11\x02\x0b\xfd\xba\xfe\x41\x1a\xf1\x42\x3c\xf1\x55\x40\x41\x77\x6e\x94\x3c\x4d\xad\x3a\xe9\x04\x32\xb7\xa6\x67\xfd\x2b\xf6\x57\xec\x69\x83\xc3\x3c\xcd\x75\x81\xca\xdb\x85\x9e\x70\xd9\x26\x59\x34\x86\xdb\x71\x83\xe8\xfb\x6e\x18\xf6\x13\xe7\x92\x02\xf5\x87\xc4\x74\x40\x2d\xfb\x17\x2a\x30\xf7\xa5\xc0\x21\x23\x48\x68\x22\x30\x11\x10\x92\xdb\x33\x20\x49\xa0\x3e\x42\x29\x03\x23\x20\xc5\xf7\x11\x59\x7b\x3e\x01\x76\x0d\x92\x47\x41\x19\x11\x56\x3f\x77\xc8\x49\x1d\xf6\x93\x1e\x49\xe5\xae\x0e\x18\x2e\xec\x72\x72\x99\x2d\xb2\x26\x98\xec\x52\xf1\x41\x36\xaf\x1c\xd5\xef\x75\xc6\x47\x68\xad\xb3\xad\x4f\x52\x69\x20\x64\xf5\xf6\xf6\x27\x46\x56\xd8\x24\x32\x95\xd0\xd1\xf7\x31\x38\xb8\xf1\x9b\xec\x15\x9e\xce\x16\x65\x2f\xae\x30\x61\x5b\x18\x5f\xd8\x0b\x93\xe6\xe1\x7d\x92\xc9\x5c\xcd\x0d\x9f\x90\x73\x37\x96\xc9\x43\x3f\x42\x38\xd7\xb9\x7d\xa6\xa2\x47\x15\xaa\x52\xff\x6d\x93\xbc\x6b\x18\x50\xbf\x1d\x9e\x9a\x3b\x15\xb7\x34\x0d\xfb\x5a\x63\xb1\xba\x40\x31\x58\x0a\x57\x7d\x93\xa1\x01\x99\x5d\x93\xd6\xb8\x05\x26\x7a\x0e\x19\x1d\x9e\xb6\x48\xe5\x66\xb0\xc1\x70\x70\xb3\x5a\x44\xc0\xc5\x43\xf2\x7b\x5c\x47\x5c\x27\x05\xd9\x2d\xa8\x63\x3f\x24\x80\xcf\x2f\xa9\x34\xd5\x0a\x2d\x3b\x4e\x2c\x77\x5c\x66\x7e\xf9\x1b\x09\x15\x3d\xdb\x38\x12\x8c\xa6\xbd\x9e\x38\xb1\x17\x22\x5c\xbd\xd6\xbd\x14\xb1\x97\x22\xea\xe3\xfe\xa2\xf8\x8a\x7b\x51\x62\x2f\x4a\xec\x45\x89\xd6\xc3\xd9\x8b\x12\xbb\x14\x25\x9a\x9d\xc3\xf3\x2e\x48\xf0\x54\x86\x4a\xcb\xb5\x44\xc3\xb3\xeb\x0b\xbf\xf1\x2e\x85\x35\xb4\x89\xc0\xcc\x6c\x2f\xa9\x37\x49\xc6\xfd\xad\xe5\x17\x00\x77\xe5\x25\x3a\x7f\x5b\xe4\xea\x9d\xf9\xf0\xab\xb9\x69\x44\xae\x8b\xc1\x8c\x7e\xae\xf9\x63\x5a\x7a\x42\xd7\xf3\xa5\xa7\xce\x7b\xe2\x56\x3f\xf2\xa2\xbc\xbe\x17\x75\xf5\x90\x56\x9e\x8d\x15\xbb\x4a\xb1\x5d\xbe\x52\xb7\xbd\x60\x64\x92\x33\xe4\x83\xef\xd8\x06\xb0\x01\xf6\xd6\x62\x7c\x20\x77\x4c\xcb\xbd\x93\x0b\x88\x26\x0c\xa7\x09\xaf\x78\x48\x0b\x6f\x71\x7a\x5c\x8f\xed\x33\x3c\x69\x60\x87\x06\xbf\x6f\x77\x76\x2c\xa1\xfa\x1b\x77\x9e\x53\x17\x47\xf0\x0b\xcf\x64\xea\x07\x8d\xb6\xec\x2b\xd5\x61\xd7\xba\xb0\xff\xb9\x7c\x96\xa6\x30\x1d\x76\xa1\x85\xb9\xd6\x05\xfc\x73\x13\x9a\x6c\x87\xb3\x26\x0d\x0c\x4b\xe6\xa1\x36\xfd\x7e\x04\x63\xe9\x26\x14\x19\xa6\xbe\xea\x0e\x2a\x06\xa7\x16\x6e\x61\x14\xe2\x67\x48\x6a\x11\x61\xa3\xa5\x61\x57\xca\xb2\x5c\x5a\x33\x08\x55\xc5\x9c\x7f\xec\xc2\x05\x57\x28\xad\xba\x90\xb8\xdf\xd8\x07\x2e\xb5\xed\x27\x5e\xec\x25\xdd\x51\x57\x90\x72\x8e\xbf\x50\x86\x21\x4f\x44\xca\xd2\x12\x4b\xca\x31\x4a\x5d\x95\x09\x83\xc4\x55\x06\x09\xad\x5f\x28\x5a\x62\x41\x79\x47\x7f\x3a\x3a\x0d\xa7\x7e\x6b\xa6\x01\xec\x67\x99\xca\x89\xe2\xeb\x58\x67\xa9\x71\xb2\x2c\xe0\x60\x02\x23\x76\x98\x86\xf6\xab\x76\xb1\x05\xf9\xc2\x07\x33\x7b\xaf\x5d\xd9\x09\xdc\x1f\xe2\xce\x17\xf6\xe5\xa1\x14\x59\xea\xf7\x2a\x83\x42\x71\x63\xae\xd8\x27\xfe\x8c\x1f\xbc\x95\xff\x14\xd8\xcb\x3e\x74\xfa\x4d\x87\x4e\x37\xc5\xa4\xb6\xf3\x2a\x87\xf4\x54\xbb\xcf\x95\x2f\x6f\x0e\x7c\x02\xa7\xcb\xf3\xa2\x48\xff\xc2\xa8\xd5\x4b\x9e\x8c\xa1\xb4\x05\x1c\x3d\x80\xe2\x41\x59\x82\x67\xd3\x31\x57\xe5\x44\xe4\x32\x61\xc9\x98\xe7\x3c\x29\x44\x6e\x3a\xec\xb0\x7b\xd8\x61\x87\xff\x38\xb4\xa4\xe7\xb0\x77\x88\x87\xdc\x88\x5c\xf2\x0c\x76\x08\xca\x8b\x7b\x71\x29\x5c\x0f\x60\x91\x03\x6e\xc4\xf7\xdf\x31\xa1\x12\x9d\x82\x2e\x9e\x03\x80\xd0\x5c\x20\x34\xcf\x07\xb2\xc8\x79\x3e\x63\x47\x14\xcb\x36\x03\x7a\x88\x2f\x1c\x63\x8f\x18\x44\x6d\xb5\x68\xab\xae\xa0\x73\x1c\x64\x5e\x77\x22\x0a\xad\x33\xd3\x93\xa2\x18\xf6\x74\x3e\x3a\x19\x17\x93\xec\x24\x1f\x26\xdf\x7d\xff\xdd\x5f\xfe\x64\x50\x71\xe8\x2e\xc8\xf4\x5e\x16\x3b\x20\x27\x93\xb2\xb0\x8a\xe0\x2a\xe5\xcc\xb5\x03\x0c\x16\xcb\x49\xed\xb9\x07\x20\x4a\x01\x45\x65\x28\xca\x0d\x26\x63\x55\x8a\x48\x62\xc7\x85\x4b\xea\x01\xda\xec\x08\x6a\x99\x52\x1c\x9c\x0b\x3e\x76\x35\x85\x27\x3a\x05\x87\xfc\x71\x08\x87\x8b\x3f\x8a\xd5\x6b\x2c\x9d\xa9\xb5\x07\x38\x56\x35\x23\x90\xde\x8b\x18\x26\x06\x4a\x18\x78\x48\x23\x85\xc7\x82\x7a\x41\xad\x18\xc4\x5f\x3f\xd5\xcb\xe9\x58\x4c\x44\xce\xb3\x5f\xa8\xe8\xcf\x50\x70\x7b\xc9\xd8\x68\x1e\xfd\xa1\x95\x2e\xbc\x8f\xae\xff\x5a\xa2\xeb\xff\xf0\xd9\x80\xb0\x5c\x17\x1b\x93\xf7\x0d\x09\x78\xf8\x2c\xc6\x53\xb9\x6a\xc0\x33\x7b\xac\x2d\x4d\x1c\x48\xc5\xa1\x58\x70\x44\x6b\x95\xbb\x0a\x96\x1a\xf7\xd8\x15\x68\x28\xbe\x6a\x09\x14\x11\x06\x73\x24\x96\x46\xc6\x65\x90\x00\x3e\x34\x11\xc5\x58\xa7\x3d\x76\x96\xcd\x63\x52\x59\x69\x1f\xa4\x42\x4b\xa7\x88\x87\xa7\x41\x7a\xd1\x0a\x3b\xed\x00\x82\x91\xfd\x13\x44\x4a\x35\x63\xe2\x19\xf1\xcf\x82\x50\x8c\xf5\x51\xc4\xa3\xf0\x88\x03\x4f\x63\x81\xe0\xc6\x30\x6c\x77\xdb\xce\xfa\x57\x6d\x03\x04\xd7\x0b\xf9\x80\xf8\x45\xb0\xd0\x26\x32\x93\x00\x58\x3d\xcd\xf5\x28\xe7\x93\x09\x2f\x64\xc2\xc6\x5c\xa5\x99\x1d\x0a\x82\xe7\x79\x8e\xb9\xa3\xf8\x8a\x17\xcf\xb5\x20\x39\x76\xa7\x09\x16\xd8\xe7\xa5\x7a\x5c\xed\x97\xa9\xb6\x24\x55\x0c\x02\x5a\x70\x2d\x0b\xcd\xa6\x04\x06\x4f\x54\xf5\x51\xe6\x5a\x81\x32\xfd\xc8\x73\x69\x79\x09\x96\xf0\xef\xdd\xab\x7b\x75\x47\x31\x2e\xa0\xaf\x92\x70\x51\xf0\x7c\x24\x0a\xea\xf0\xd0\xc4\x72\x34\x18\x80\x3d\x51\x87\xd6\x0f\x62\xd6\x45\xbe\x30\xe5\x32\x87\x92\xd7\x8d\xdf\x6c\x21\x5d\xab\xd5\x9a\xe9\x75\xa4\x95\x92\x05\xbc\xd8\x31\xb6\x1a\x04\xd0\x9e\xfc\x09\xfe\xb3\x3e\x7d\x77\x28\x1b\xab\x60\xb5\x91\xd4\x54\xac\xcb\xb4\x83\x4e\x57\xa1\xe0\xbe\xb6\xac\x7d\x6b\x63\x0e\x7c\xfd\x6f\x62\xd6\xc2\xb0\x37\xd7\x36\x3a\x87\x56\xe6\x05\x8d\x0d\x1b\xb5\xd8\x76\x04\x80\x5a\x65\x8f\xa0\x7e\x23\xe9\xd7\x63\x6f\x00\x55\xeb\xb1\xc8\x33\xf8\x08\xe6\x14\x6a\xf7\x20\x36\x71\x9d\xed\x0f\xa3\x5d\x3b\x00\x20\x35\x41\x91\xd9\xc1\xb9\x6c\x36\x3e\xd8\x43\xb0\x1b\x13\xc3\x8a\x94\xea\xd0\xa8\x9a\x62\xdb\xfa\xb8\xee\x6d\x00\x7f\xb8\xf4\x69\x22\x04\x9b\xe6\x4d\x57\x03\xa5\x4d\x83\x00\xb0\xb5\x71\x1f\xfb\x5c\xdb\xb2\xb7\xd7\xe7\xbe\x42\x7d\x6e\x9f\x2d\x8d\xcf\x5f\x56\x82\xdf\x7d\x9a\x34\xf6\xdb\xcf\xf5\x7f\xa3\x09\x6c\x99\xf7\x2b\xe5\x53\x74\x10\x21\x65\x02\xad\x8f\x5b\x45\xe9\xbf\x01\xc1\x96\xbc\xc5\x1b\x8b\xe8\x03\xc1\x82\x17\x55\xaa\x86\xae\xad\x9c\x0e\xf1\x53\x94\x03\x4b\xa2\x7c\x93\xf1\x9c\x0a\xae\xd9\xd6\x98\x5d\xd6\x63\xd7\xba\xf0\xfe\x20\x34\x61\xc9\x14\xab\x7b\x66\xce\xbd\x05\xf3\xaa\x38\xbd\x3d\xea\x39\x66\x82\x63\x18\xc4\x44\xa7\x6d\x52\x23\x5b\x11\xfe\x4a\xed\xe6\x0e\x26\x1f\x56\xd5\x93\x86\xd9\x55\xe5\xb7\x44\xa4\x4e\xf4\x09\x0b\xe9\x56\xce\xeb\xe6\x61\x09\x31\x08\x8d\x3d\x8d\xb5\x21\x97\x19\xa5\xee\x59\x89\xc9\xf2\x5a\xda\x39\xf7\x98\x32\x75\xae\x86\xf5\x84\x5a\x7b\x8d\x45\x8a\x5b\xb0\xe4\xcb\x21\x69\x78\xca\x8b\xb1\xe9\x10\xbc\xf9\xdc\xdb\x44\x50\xe9\x10\xc0\x07\x51\x34\x97\x26\xea\x03\x01\xeb\x7d\xd8\x0f\x2a\x75\x15\x4b\x69\x27\x9e\xaf\x11\x45\x39\xc5\xfe\x45\x9e\xeb\xdc\x7e\x58\x18\x07\x24\x3f\xe1\xf9\x83\x48\x3d\xcc\x60\x8f\xf5\xed\x08\xbd\xd8\x88\x2e\xd0\x47\xe1\x25\x10\xfb\x4d\xb2\x9f\xc3\x47\x0e\x7b\xbd\x43\x2c\x0a\x6d\xf5\x89\x82\xe7\x05\x46\x4f\xd8\xe7\x3b\xf6\xa5\xff\x4d\xcc\xee\xb4\x1d\xde\x56\x1c\x77\xaf\x21\xbc\x90\x86\xb0\x91\xd8\x1f\xe2\xe7\x56\xc9\xfe\xbe\x65\x35\xa2\x95\xe6\xe3\x7f\x05\x63\xda\x18\xcc\x19\xba\x1c\x8d\xe3\x90\x39\x4b\xe3\x72\x51\xe4\x52\x3c\x8a\x40\xc2\xc1\x22\xb7\x06\x16\x62\xdb\xf3\x23\x0d\x2b\x95\xfc\xbd\x44\x02\x0a\xd4\xdc\x7f\x05\x47\xe2\xe6\xe3\xe9\xae\xcf\x8a\xdc\x4c\xef\xc5\x09\xac\x1e\x1a\x0e\xa1\x5a\x48\x92\x27\x7e\x9c\x48\x5e\x22\x8d\x1d\x08\xa4\x3b\x25\x38\xa7\x57\xcb\xab\x82\x11\xb4\x8c\x7e\xf6\xec\xf9\xb6\xc2\x9e\x77\xce\x94\x77\xc1\x8a\x6f\x63\x4e\x6b\x5c\x0c\x34\xd3\x4f\x4a\xe4\x10\x6e\x82\x89\x9d\x60\x8c\xb3\xa4\xd7\x27\x06\x0a\xc8\x7a\x93\x6a\xd4\x82\xfd\x12\xb7\x6e\x11\x38\xf9\x99\x08\xca\x07\xe0\xec\x6c\x40\x08\x2f\xa5\x11\x4c\x2b\x1f\x3f\x87\xd3\x1d\xf8\xd2\x09\xbd\xaa\xed\xa6\x14\xbe\x98\xc7\x3b\x18\xf4\xbb\x7f\xfb\xb7\x7f\xab\xd5\x3a\xf9\xfe\xbb\xef\x7a\xec\x42\xe6\x60\x7f\x92\x64\xd3\xa4\x15\x03\x2e\xc2\x73\x01\x3c\x86\x0f\x87\xc8\x44\x5d\x3d\x07\x8a\x00\x26\xf7\xdb\x44\x8e\xc6\xf0\x65\xc0\xfb\x50\xc3\x4c\x26\xc4\x78\x30\x66\x56\x53\x76\x29\x66\x07\x42\x5f\x61\x0f\xec\x1c\x3b\x08\x47\x32\x34\x7f\xb5\x62\x67\xc7\x41\xfe\xda\x3b\x68\x05\x1c\x72\x09\x62\x67\x61\x4d\x8c\xa8\x07\xf0\x6c\x8f\x37\xbd\x17\x92\xf6\x42\x12\x5b\x7a\x1a\x5e\x5f\x48\xda\xa5\x80\x61\x36\x95\x30\xe6\xa2\x60\x5b\xc4\xc0\xc5\xa2\x5b\x60\xf1\x05\x62\xfd\x1f\x9a\x2a\x0b\x2e\x17\x98\x29\x96\x89\x75\x14\xeb\xec\xca\xff\xff\xa9\xc9\xae\xf4\x92\xec\xb0\xcc\x65\x31\x3b\xb7\x37\xef\x79\x85\xbd\x34\x6e\x19\xe2\xb3\xe0\x69\xad\x38\x7f\xa5\x66\x4b\x94\x7a\x1f\x61\x21\xf4\xd8\xad\x9e\x50\xbc\x04\x7a\x3e\xa3\x3b\x05\xa8\x49\xf5\x2f\xda\xbb\xd0\xd7\x69\xed\x71\x8f\xb1\x5f\xc7\x82\x5e\xb1\xdd\x18\x51\x8d\xd2\x93\x6a\xae\xa7\x82\x3f\x88\xa8\x20\x4c\x1b\x63\x6f\x96\xe9\xa7\x7e\x2e\x1f\x65\x26\x46\xe2\xd2\x24\x3c\x6b\x53\x62\xe1\x6c\xc1\x6b\xae\xda\x40\x48\x2b\x00\xcd\x3c\xb1\x04\xc2\x32\x8a\x91\xbd\xe7\x13\x0d\x8b\x42\x2f\x53\xbc\x9a\xbd\x02\x53\x0e\x68\x30\xf4\x02\xf1\x2f\x7b\xda\x59\x0a\x7c\x10\x3d\xce\xd8\xbf\xc4\x93\xab\xf4\x3f\x94\x78\xfa\x87\xed\xcd\xb0\x61\xc6\x47\x7e\x77\x20\x00\x55\x55\x93\xdc\x43\xd7\x0b\x27\x60\x49\x74\x5e\x0a\xc6\xb3\x27\x3e\x33\xe8\x5c\xae\xf6\x21\xcd\x07\x76\x7a\xcc\xf2\x12\x8a\x8c\xf9\x3e\x52\xf6\xed\x31\x88\xd3\xe7\x67\xfd\x7f\xdc\xfe\x9f\xdb\x7f\x9c\x5d\x7c\xba\xba\xde\xe0\x06\x27\x7c\xca\x07\x32\x93\x0d\xc1\x00\xed\x89\xdb\x79\xdc\xc9\x32\x3b\x1b\x08\x7a\x51\x63\x38\xcd\x69\x7a\x92\xe6\x7a\x4a\xae\xf5\x52\x29\x2b\xb6\xf9\x15\x30\x55\x49\x25\xb6\x76\x50\xd4\x6f\xa5\xc3\x51\xce\xe3\x60\xf7\xa8\xa6\x40\xa9\x20\x70\x68\x51\x6a\x97\x5b\xd8\x55\x01\xc9\xa5\x8a\x77\x47\x85\xa3\x95\xa2\xf5\x85\xf5\x71\xd7\xf1\xce\x44\xbf\x86\x19\x61\x85\x7e\x03\x46\x62\x9e\x65\x33\x26\x7e\x2f\xe5\x23\xcf\xc0\x09\xac\x59\xae\xb5\x3f\x4c\x63\x6d\x8a\xea\x02\x40\xb6\xce\x26\x21\x4a\xf6\x34\x42\x76\xd6\x8a\x19\xfa\x76\x2c\x15\x4a\xbb\x38\xef\x82\xea\x05\xdb\x5f\x31\x77\xd0\x09\xa2\x51\xf2\x9a\xdf\xb1\xbb\x68\x97\xa4\x71\xe3\xef\xfb\x9e\x51\x0a\x28\x8d\x87\x28\xaa\xed\x52\x80\x77\x19\x42\x08\x3b\x4f\x21\x02\x04\x04\x10\xe2\xe6\xe6\xc1\x49\x24\x74\x75\xc9\x4a\x8a\x3d\xfa\x4f\x01\x66\x86\x8b\xee\x1a\x52\xa2\xd4\x40\xb8\xa8\xb0\x2d\xf2\xeb\x6e\xb4\x2e\x42\x5e\xe5\x8a\x45\xfd\xd5\x73\x62\x19\x17\xba\x18\x83\x3c\x97\xbb\xb2\xf2\xb8\xf5\x21\x11\xb3\x92\xdf\xb4\xf1\xc6\xe7\xa5\x3a\x43\x71\xba\x85\x63\xf8\xaf\x57\x17\x70\x06\x4b\x45\x6e\x87\x22\x9f\xa1\xe3\x21\x14\xad\xae\x93\xb7\x9f\xed\x3e\xd6\x76\xce\x92\xcc\x52\x59\xb9\x9c\x7d\xe2\x33\x04\x20\x24\x3a\x29\x55\x33\x03\xba\x1a\xba\x9f\xd7\x60\x5c\x11\x93\xaa\x62\x00\x36\x71\x2b\xd3\xc8\xae\xd8\x9c\xbe\xb0\x59\x61\x1d\xbb\xcc\xd7\x5a\xd9\x73\xd1\x3a\x1f\xce\x67\x01\x84\x65\x05\xa9\x8c\xe8\x3d\x87\xd0\x29\x38\x15\xa5\xb1\xdc\xfe\x6a\x18\x45\x49\xfe\xad\x1c\x88\xcc\xa9\x0d\xe0\xa4\x77\x71\x2a\x72\xc2\x47\x82\xf1\xc2\xef\x0a\x64\x07\x9a\x32\x27\x3b\xb3\x2c\x58\xaa\x05\x0a\xe1\xf4\xa9\x9f\xaf\x2e\xd8\x3b\x76\x64\xbf\x85\x85\x56\x86\x5c\x82\xf9\x19\xe5\xe2\x1a\x57\x1a\xba\x2e\x60\x48\xb0\xd1\x56\xb4\x1c\x62\xe5\x72\xa5\x99\x29\x93\xb1\x1b\x93\x4f\x76\xb4\xea\x81\xc8\xed\x52\x03\xdc\xd6\x1f\xe1\x5c\xb4\xbf\x61\x3f\xaf\x06\xcc\xb1\x17\xec\xe7\x0d\x2e\x58\x4c\xff\x21\x09\xb5\x32\x23\xdc\x6c\x1f\x65\x2b\x87\xd5\x0a\x9d\x7f\x88\x65\xde\xfe\xfa\x19\xb1\x00\xe7\x8a\xad\xe7\x3b\xae\xc2\x65\xad\x12\x66\x9c\xfd\x27\x71\xd3\x5c\x0a\x93\xe5\x2e\x4b\x55\x0f\x9f\xe7\x7e\x70\x59\xac\xb0\x6c\x89\x84\x65\x10\x5c\xa5\x7a\x32\xf7\x31\x8f\x09\x19\x7d\xe0\xcd\x6e\x77\xe3\xa6\x3d\x49\x95\xea\x27\xb3\xed\xa6\xfd\x8a\xdd\xd4\x06\xd1\x76\x0f\xe9\x6d\x5f\x08\xd9\x99\xb4\x4c\x45\xe7\xca\xb2\x8a\x84\xd3\xb4\x91\xce\xb8\xe5\x9d\xf6\xf3\x0b\xe8\xe9\x60\x69\x08\xf0\xee\x0b\x6d\xc2\xf6\x2a\x6f\xfe\x28\x57\xb8\x07\xa0\x05\x86\x48\x20\x6a\x29\x1f\x98\x22\xe7\x1e\x44\xd7\xe8\x61\xf1\x84\xca\x26\x36\x3d\x82\x13\xfd\xcc\x27\xd3\x4c\x74\xd8\x64\x66\x7e\xcf\x8e\x5d\xb6\x07\x05\xb9\xda\x3b\x91\x31\x30\xca\xc6\xad\xd9\xfb\xf7\xef\xbe\x3f\x0e\xec\x74\x9a\xeb\xe7\x19\x5a\xb8\x94\x61\x5a\x05\x43\x62\x35\xfd\x31\x15\x85\xc8\x27\x60\x70\x47\x99\x14\x6a\x15\xe2\xfd\x53\xe6\x49\xe4\x21\xb8\x82\x62\x34\x73\x70\x5f\xf8\x6f\xec\x43\x9c\xde\x74\x88\xd3\x3e\x8e\xe7\x6b\x89\xe3\xf9\xc3\xe7\x65\x6c\x53\xa5\x89\x68\xe9\xfa\xf5\x99\x06\x62\xcc\x1f\xa5\xc6\xf2\xbf\x8e\xce\xfe\x71\xeb\x34\xb9\x75\x58\x5d\xa1\xe9\x53\x73\x91\xd5\x50\x85\x19\x79\x01\xad\x47\x9f\x82\xfc\x03\x48\x02\xe9\xdf\x37\x4e\x35\x7f\xf1\xd3\xf3\x86\xcb\x37\x39\x5e\xbf\xe3\xf8\x2e\xe8\xf4\x2c\x49\x6a\x36\xa9\x05\x72\x04\x35\x64\x03\x4b\x91\x58\xa1\x47\x60\x50\xf9\xc0\xbe\x21\xe9\xa2\xc3\x4a\x95\x8a\xdc\x14\x5a\xc3\x2e\x5a\x3d\x89\x9c\x55\x53\x91\x8f\xf9\x14\x3c\xa4\x53\x91\xcb\xe9\x58\xe4\x3c\xa3\x2d\x36\x1d\xc4\x9f\x51\x14\x73\x55\xcc\xa0\xc7\x69\x2e\x55\x22\xa7\x9c\x70\x4c\xc9\xed\xc8\xcb\x62\x8c\x81\x59\xf6\xa8\x00\x36\x42\x59\x8c\x75\x0e\xcc\xf0\x9b\x80\x43\x80\xce\x07\xb3\x17\x0d\xde\xb2\x68\xc0\xcb\x42\x83\x21\xb3\x7a\xc0\xee\xf4\x83\x58\xb9\x1b\x4b\x5e\x65\x72\x0e\xec\x08\x64\x4a\x67\xd8\x86\xa0\x03\xf0\x9b\xa3\xcc\xcb\xe9\x5c\xd3\x66\x40\x85\x6c\xae\x00\xa9\xac\x80\xfe\x60\x9c\x1c\xa2\x01\xb3\x19\x9a\x5e\xad\x30\x70\x4e\x9e\xf0\x47\x91\xe7\x32\x4d\x6d\xc3\xc2\x39\xd4\x10\x38\x79\x13\x4b\x06\xd8\x12\xfa\x65\x96\xdd\xd2\x11\x5e\x95\x3b\x5c\x6d\x5e\x0d\x14\xaf\x82\x6a\x19\xd7\x04\x0d\x1f\x86\x4f\xc4\x9c\xdb\x0f\xee\xe2\xb4\xcc\x32\x97\x92\x07\xe3\x41\x4b\xba\x2f\x22\x1e\x22\x74\x60\x21\xab\x7b\xd0\x63\x73\x63\xb2\x1a\x46\x0a\x1a\x04\x25\xb7\x30\xf7\xcb\x40\x24\xdc\x7e\xd5\xfd\xdb\x27\x1c\x97\x2a\xc2\x25\x9a\xea\xb4\x03\x95\x4e\x1a\x7b\x06\xbb\x2d\x4f\x12\x2c\x81\x42\xec\xe3\x01\x2d\x73\x9b\xc4\xc6\x93\x86\x79\x82\x33\x3f\xf9\x53\x48\xa3\xec\xc2\x23\xbb\x3a\xb4\x94\x5d\xad\xba\xbc\x3b\xd5\xe9\x6e\x5d\xd5\x8d\x30\x6a\xdb\x78\xad\xf7\x42\xf8\x5e\x08\x7f\x23\x42\x78\x2b\xaa\x16\x11\x33\x17\x27\x13\x71\x75\x57\x2f\x82\x6c\x7d\x25\x5d\xfb\x0a\x91\x77\xa1\x67\x0d\xe4\xe9\xcd\x65\xcb\x6c\x78\xd3\x2b\x3f\x55\x24\x4f\xc0\xe2\xe9\x42\x06\x76\x17\xb3\x11\x31\x38\x73\xd5\x1b\x84\xe9\x03\x2f\xc0\xdb\x6f\x50\x06\x76\xe2\xea\x0b\x8a\xc2\x2b\x33\xee\xea\x8d\xeb\x99\x77\x15\x71\x99\x02\x9b\xf7\xa2\xe8\x5b\x16\x45\xdb\x84\x1a\xfe\xd4\xb8\xbf\xad\xd3\xef\x0a\x6e\x1e\x02\x35\x11\x56\x6a\x88\x6a\x91\x84\xe7\x24\x96\x76\x49\x2c\xdd\x71\x39\xd3\xda\x2d\xda\x0b\x15\x7b\xa1\x62\x9f\xa1\xf7\xba\xac\xeb\x25\x32\xf5\xe6\x94\xe0\x56\x69\x7b\x4b\xdf\xab\xe1\xa3\xfb\xb0\xe4\xba\xda\x8c\x3a\x32\xe5\x12\x60\x20\xd0\x34\x74\x42\x0a\x5d\x49\x28\x2a\x52\x19\xcb\x5d\xf8\x82\x5e\x7c\xc8\xb3\x93\xe5\xc0\x19\x1b\xe1\xa2\x5b\xed\xd4\xea\x8b\x7c\xc4\xa5\x32\x85\x55\xd2\x0d\x3b\xfa\x9b\xdf\x35\xd0\xda\x91\x4e\x30\x9d\x87\x7a\x53\xc7\x6d\xbc\x44\x65\x2a\x6b\x09\x37\x4d\x8b\x76\x46\xcd\x9c\x70\x6a\x19\xa1\x02\xb4\x1c\xf7\x83\xcb\x9f\xb0\x53\xea\xb1\x33\xcb\x4b\xe5\x14\xa8\x11\xd8\x80\x71\xaa\x10\x64\x82\x16\xaf\xe1\x8c\xc9\xc2\x88\x6c\x88\xb1\xcf\xde\x12\x36\x94\xf5\x40\x03\x80\x3c\x6b\xfa\x4c\x27\xa0\x62\x43\x79\x2d\xe2\xe6\xc4\x8c\xa3\xd1\xdc\xc5\x3d\xa4\xb5\xb0\xbe\xe8\xb3\xd4\xb9\x25\x13\xb0\x9a\x1b\x84\x69\x89\xe7\xa9\x44\xa9\xf9\x56\x24\xda\xde\xdf\xe5\x0b\x7b\x59\x6f\xef\x56\x98\x68\x37\xa2\x4f\x7a\x19\x06\x42\x5b\x64\x31\xab\x99\x92\xab\x27\xaa\xc7\xce\x4c\x98\x3e\xe3\xd3\x69\xae\x39\xd4\xf8\x0c\xa3\xeb\xc4\x06\x03\x17\xf6\x3e\xcd\xca\x91\xa4\xa0\x19\x78\xa7\x90\x8f\x02\xe2\xc3\x0a\x17\xe2\xb3\xe0\x83\x77\x51\x67\xf0\x3a\x85\xef\xe4\x00\xc4\x04\xd1\x85\xbe\x0b\x3a\xf5\xc3\xf8\x1f\x86\xe9\x2c\x05\xde\xc6\x15\xfb\xcb\x3b\x36\x15\x79\x42\x67\x07\x92\x4f\x28\x98\x28\x93\x8f\x02\x62\xc9\x17\xbf\xfc\xed\x77\x6c\xac\xcb\xdc\xf4\xe2\xe8\x95\x53\x78\x86\xe2\x9a\xcb\x51\x29\x58\x26\xb8\x29\xd8\xe9\x3b\x36\x91\xaa\x2c\xe6\xc0\x7e\xb7\x0f\x0e\x99\xf2\x62\xbc\x62\xff\xfb\xbc\x18\xbb\x2d\x87\x94\x00\x9f\x3d\x40\xc7\x13\x83\x1e\x2b\xa1\x3a\x90\x88\x51\x68\x47\x71\xe2\xa5\x50\xed\x51\x5c\x5b\x72\x93\x69\x94\x3c\xb0\x05\xa8\x07\x9c\x9a\x76\x3a\x06\x88\x9c\x18\xa1\x1e\xa3\x3f\xc0\x6f\x7b\x7c\xcf\xaf\x47\xa5\x70\x5b\xfa\x22\xb2\xfe\x5e\xc8\xdf\x0b\xf9\x7b\x21\xff\xb5\x84\xfc\x17\x93\xee\xfb\x3a\x6f\xc1\x31\x6c\xab\x00\xe3\x1b\xe7\x78\x6b\xe5\xc8\xcc\xa1\x81\xf0\xad\x56\xfc\x63\xda\xcf\x75\xa1\x93\x56\xf5\x38\x20\x58\x8f\x0a\x9d\x4c\xe9\x35\x4a\x4e\x90\xf4\x49\xd4\x0f\x30\x09\x73\xa8\x09\xa6\xd2\x9d\xb9\x48\x8c\xc7\x0a\x96\x66\xa6\x0a\xfe\xdc\x63\x3f\xab\xee\x34\x17\x43\xf9\x2c\x52\x74\x58\x81\xdf\xc7\x92\x0c\x08\x29\xb0\x9f\xb8\x3a\xbb\x3e\x0b\x3d\x39\xd1\x0c\x1b\x1f\x71\x63\xa5\x28\x76\xf3\xf1\xbc\xfb\xfd\xfb\xf7\x7f\x06\xc6\x62\x8f\xf1\x87\x93\x93\xa7\xa7\xa7\x9e\xe4\x8a\x03\xf0\x2f\x37\x46\x8e\x00\xe7\xcf\x9c\x38\x33\x0c\x74\x71\xdc\x63\xd7\x80\x2a\x4c\xfd\xbb\xd9\x79\x1e\x67\x75\x92\xda\x10\x21\xfe\x9a\x1b\x36\x99\x25\x7a\x32\xe5\x6a\xd6\x4b\xf4\xe4\x64\x32\xeb\x26\xa5\x29\xf4\xa4\xeb\xfa\xe8\xb1\x8f\x31\xd6\xae\x03\xcb\x05\x55\xc0\x29\x68\x61\x1b\xda\xe0\xe4\x6e\x09\x03\x57\x45\xcb\xa7\x9d\x8b\xd3\x91\x7d\xd0\x06\x26\x1c\xfb\x4c\xe7\x8b\xeb\xdb\x7f\xfc\x74\xf6\xc3\xe5\x4f\x88\x0a\x6a\x5f\x33\x21\xc7\x3f\x8a\xa0\xc1\x77\xc0\xd1\x4a\x48\x00\x94\xfc\x0d\x19\x70\x10\x6e\x98\x8a\xdc\xf1\x0d\x47\xf1\x0d\xd5\xa9\xa1\x8e\x3a\x38\xb8\xa8\xf4\x3f\x24\x94\xda\x9e\x0e\xe9\x84\xd1\x78\x2f\xa9\x83\x3e\x9c\x40\x97\xd1\x6d\x25\x67\x04\x49\x56\x82\xc5\xb7\x47\xba\x6a\xf8\x29\xe6\x00\x05\x57\xf1\x26\xeb\xad\xd3\xfa\xcd\x5d\xb4\xe6\x98\xe7\xae\xa8\xc8\xbc\x4e\x21\xc3\xdc\x61\x0e\x44\xfe\x6a\xac\xae\xac\x0d\xe4\xf2\x0a\x84\x90\xff\xcf\x6b\xfa\x8e\x55\x09\x7e\xd2\x3c\xfd\x81\x67\x5c\x25\x22\xef\xb1\x9f\x4d\x09\x7e\x6b\x3c\xdc\xf3\x01\x36\xd5\xb4\x64\x19\xe5\x3b\x52\xf8\x73\x1a\x0a\x32\xd1\x00\x86\xac\x54\xa0\xd1\xeb\x9c\x89\xcc\x08\xcc\x83\x27\x41\x30\x6e\x19\x0a\x2c\xc5\x79\x34\x85\x06\x97\x7a\x37\x8a\xaf\x86\xb9\x93\x2a\x43\x7b\x71\x37\x9b\x86\x23\xe8\x42\x59\x7d\x8a\x91\x56\x1b\x64\xa8\x92\x94\xd5\x55\xa2\x20\xec\x11\xf7\xec\x04\x58\x50\xd7\xae\xba\x1d\xca\xae\x33\xd9\xa7\x6b\x9c\x80\x4a\xce\xa9\xdb\xe8\x90\xeb\xdf\x74\x10\x77\x30\xc0\xf6\x54\xfe\xaa\xbf\x90\xb8\xdf\x22\x58\x83\x61\xf7\x07\x77\xe7\x7d\xac\x41\xf7\xf3\x05\xfc\x61\x49\xee\xfd\xc1\xed\xf9\x5d\xbf\x56\x90\xee\xee\xbc\xbf\x49\xad\x66\xc0\xa6\x68\xba\x58\xeb\x49\x48\x65\x21\xb3\x9e\xa5\x2d\x45\xde\xbb\x52\xc5\xe7\xfc\x16\x3f\xba\x4c\x46\xba\x2e\x27\x03\x34\x2f\xc5\x35\x45\x70\xef\x34\x05\x22\xb8\xec\x41\x8c\x99\x80\xc1\x46\x37\xcf\xd1\x4f\xea\xc9\x51\x50\x22\x57\x39\x57\x23\xc1\x4e\x6d\x67\xdf\xff\xf9\xcf\xef\xff\xdc\x63\xd7\x31\xce\x08\x57\xc0\xec\xfe\x71\xfb\xcb\xf9\x3f\xae\xcf\x3e\x5d\x56\xea\x9d\x71\x0f\x95\x1f\x5d\xe4\x4c\xeb\x07\x91\xb2\x72\x4a\x09\x4d\x10\x09\x8e\x37\x4e\xc5\x48\x1f\x7d\x48\x04\x8f\xb2\x5f\xec\x5e\xce\x95\x53\xab\x85\xdc\xa3\xb0\x4f\x8b\x70\x68\x5f\xf1\xd4\xd7\xa0\xd9\xef\x28\x0e\xed\x9a\xf0\xe9\x71\x45\x0a\xb0\x1d\x8f\x14\x60\xda\x0f\x01\x78\x15\xef\x28\xf2\xbf\x24\x2b\x4d\x21\xf2\xab\xfe\x7f\x5e\x6b\x45\x1a\x61\xa8\x4f\xe6\xaa\xd3\xc3\x6b\x05\x13\xbf\x97\x08\xd7\x55\x1f\xc9\x6e\x09\x05\x1e\x2b\x35\xea\x72\xe7\xaa\xd9\xc0\x92\x60\x0f\xee\x8e\x2c\x09\xb7\xd5\xb0\xd6\x05\x72\x21\xc5\xa5\x62\xf1\x03\x54\xee\x79\x81\xa2\xba\x4b\x82\xe3\x98\xd9\x84\x98\x26\x70\x82\xf9\x3c\xbd\x59\x28\x2a\xfa\xad\x5a\x41\x42\x7c\x3b\x67\xea\xb9\xea\xd7\x6b\x45\x7a\xc3\x9a\xa2\x43\x54\x63\x60\x98\x8c\x93\xcd\xdc\x7d\x9a\x70\xdb\x23\xe2\x5d\x28\xdf\x59\x05\xf4\x62\xc2\x15\x75\x82\x7d\xda\x83\x2c\x15\x88\x6d\x83\x19\xda\x4d\x4d\x2b\xe6\xf7\x1f\xc1\xc8\xda\x69\xc3\xf6\xa2\x93\x6e\x05\x3c\xd2\x48\x93\xb1\xbd\xe3\xa9\x4f\x66\x40\x0d\xd5\xd7\x4d\x8a\x60\xd4\xef\x0f\xec\xc9\xb7\x14\x14\xea\xf2\x38\x15\xfb\xe8\xfe\xe0\xfe\xe0\xb8\xc3\xb0\x70\x1f\xbc\x14\xd6\xb1\xe7\xdf\x72\x42\x65\x58\x08\x7b\xc7\xc6\x82\xa7\x80\xe1\x11\x2e\x9b\x95\x23\x20\x9b\x02\x4a\x49\x52\x5a\x22\x1d\xdd\x1e\x83\x42\x93\x71\x25\x79\xab\xae\xb1\x73\xb7\x93\x1d\xe6\xa4\x0f\xbc\xa1\x55\xf9\xe3\x8a\x6e\xb7\xe5\xee\x54\x3e\xff\xf2\x19\x0d\x3d\x96\xae\xed\xf6\x72\x3e\xca\xbc\x28\x79\xd6\x95\x53\x83\xa1\xbc\x24\xc5\xdb\xb9\xcd\xa5\xc6\xb7\x33\x62\xe3\x50\xaf\xfa\xab\x6c\x39\x51\xcb\x6a\x3c\x40\xd8\x18\x81\x22\x2c\xca\x74\x56\xd6\xf0\xb1\x78\x74\x2b\x5c\xde\x99\x41\x3e\x32\x2d\x58\x91\xf3\xe1\x50\x26\x81\xd3\x7a\xe6\xc1\xee\xc6\xc2\xd8\xeb\x63\x3c\x34\x10\x42\x23\x01\x9f\x09\xba\x14\xb6\xc4\xbb\x0d\x96\x3b\x33\xb5\x02\xf6\x20\xc3\x58\x3f\x48\x4a\x45\x51\x9b\x87\xcf\xf1\x3c\x97\x8f\xf6\x08\x16\x90\x01\x9b\x8a\xa8\xf2\xdf\x55\xbf\xc7\xd8\x19\x14\xb6\xb4\xd2\x2a\xa5\xff\x80\x54\x4a\xf6\xbb\x4c\xf3\xb4\x3b\xa0\x13\xe0\xa8\x0b\x8d\x71\xca\x73\x6f\xbd\x8d\x14\x3e\x92\x46\x5f\xa5\x7e\x54\xc3\xf6\xb6\x00\x50\x89\x9b\x3a\xda\xe5\x67\x1c\x47\x44\xf2\x02\xec\xff\xa9\x82\xaa\x5b\x11\xb2\x00\xa1\xcd\x17\x65\x4e\xa9\xc5\xe7\x96\x7f\x83\x5d\x34\x4f\x1b\x76\xf8\x5a\x87\x3b\xe9\xe8\x92\x54\x8f\x3a\x7b\x84\xac\xd2\x1a\x3a\xb8\xd5\x6e\x4f\x4f\xbf\x7d\x0f\x88\x05\x20\x99\x1c\xad\xa8\x6f\x63\x5b\x63\xa6\xb1\x17\xab\xef\xa8\x36\xf1\x40\x54\x2f\xe9\xe6\x17\xe7\x0e\x4f\x54\x5f\x67\x32\x59\x85\x8b\xde\xf8\x8e\x07\x41\x90\x35\x5d\x20\x15\x06\xd1\x06\x34\xcb\x75\x59\x44\xbb\xe1\x4e\x71\xa1\xe1\xec\x76\x31\x65\x4d\xe7\xee\x9a\x75\x9f\x64\x1a\xe9\x95\x96\x5e\x42\xc8\xe5\xfd\x01\x82\xb7\xe4\x8f\x0e\x16\x81\xec\x8b\x68\xb2\xb4\x17\x59\xa5\x8c\x3f\x6a\x99\x12\xd8\xa9\x56\x29\x1b\xeb\x29\x6c\x5e\x4c\xf6\xa0\xe1\x35\x69\x13\x54\xcd\x99\xe8\x16\x46\xb2\xe6\xd2\x3c\x58\xb1\xb9\xf0\x10\x14\x72\x42\x37\x26\xf5\xe3\x37\x53\xaa\x73\x61\x47\x48\xe4\xf6\xfe\x80\xe9\x81\x49\xca\x7c\xd9\x10\x27\x7c\xc6\x30\xb0\xb6\x32\x4a\x2b\x9e\x2a\x44\xee\x52\x80\xf4\x65\x47\x12\x87\x3d\x8f\xb4\x4e\x21\xa0\x99\x67\x74\x8b\xc3\x10\xd6\x3f\x02\x63\xc1\xb3\x62\x7c\x3e\x16\xc9\xc3\x75\x3b\x35\xb8\xe1\x0d\xcf\xbb\x70\xba\xd8\x22\xb1\x2d\x98\xd3\xad\x3d\x00\x86\xbf\x39\xae\xaa\x51\x10\x55\x7f\x6c\xe8\x59\x1a\x0f\xe0\x56\x95\xcc\x19\x9f\x4a\x36\xe0\xc9\x83\x50\x51\x15\xd9\x20\x12\xb8\x0f\xf7\xd8\xaf\xf6\x5a\xda\x75\xb6\xe4\xb5\x1b\xd8\xac\x1f\x1a\x8a\xc7\x32\xd2\xb1\x3d\x30\x0a\x6c\x1c\x31\x57\x01\x40\x6c\xc4\x88\xef\x88\x4d\x52\x51\xa6\xb9\x73\x75\xd9\x78\x4d\xe2\x17\x12\x5e\x8f\x3d\xdf\x01\x1a\xdb\xf4\x23\x9f\xc8\x95\x55\xad\x5d\xb3\x68\xdf\x9e\x62\xe8\x0d\x77\x7b\x11\x78\x63\x1a\x08\x27\x1a\x77\x2c\x7b\x90\x49\x99\xf1\xdc\x9e\xe5\x21\x76\x75\x24\x7a\xa3\x1e\xbb\xea\x3f\x7e\xc7\x1e\x0d\xfc\xf1\xfd\x31\x26\x50\xf3\x90\x33\x1c\x9a\x4b\x13\x5c\xc6\x9d\x98\xbd\xda\x26\x15\xfc\xc2\xb0\xa5\xe4\x5f\xe0\x05\x75\xd2\x21\x84\x05\xcb\xc9\x1f\xb9\xcc\xa0\x9e\x73\x95\x59\xe3\x08\x94\x6e\xf3\xe5\x43\xc3\xa6\xb9\x9c\xf0\x7c\x16\xb5\xae\x66\x22\x7f\x86\x35\x72\x43\x34\xec\x28\x8b\xf6\xdd\x0a\x59\xf1\xbf\x11\xf2\xf1\xc6\x4a\x91\xa6\xc3\x22\xd1\xe3\xd8\x03\xd0\xe5\x3a\xcb\x2c\xf7\x45\x69\xc3\xdb\x5a\x16\x31\xe9\xc8\x90\xe9\x93\x03\xfc\x50\x7b\xcc\x1b\xd1\x4c\x60\x54\xb7\xb1\xb8\x3b\x08\xc6\x1a\xff\x4e\x4d\xcd\x73\xb5\xbf\x18\x1f\x16\x4e\xd1\x80\x82\xdd\x67\x20\xd9\x63\x5d\x49\xea\xf4\xaa\x4f\xc7\x08\x20\x0f\x17\xec\x40\x38\x18\xdf\xdb\x5f\xe0\x80\x60\xa1\x22\xfc\xfd\x98\x8a\x91\x21\x70\x9d\x25\x83\x60\x0e\x80\x25\xf2\x32\xba\x2b\x69\x19\xce\x48\x30\x03\x6f\x40\xf4\xaa\xbb\xb6\x0a\x5d\xb2\x26\x58\xbb\x15\xb5\x14\xe0\x43\xf5\xe2\x57\xfe\x01\x83\xb7\x2a\xbb\xa3\x5f\x9e\x48\x5d\xf5\xeb\x11\x23\x6e\x0b\x9c\x2e\x42\xf6\xe3\x54\x4c\x85\x4a\x0d\xda\x18\x03\x48\x1d\xa4\x70\x65\x33\x5c\x10\x5d\xa6\x5d\x2a\x06\x95\x3b\x24\xce\x4a\x59\x29\x70\xde\x56\x26\x8c\x14\x8c\xc3\x53\xe6\x4e\x57\x44\x69\x2b\x1a\x91\x17\x6a\x22\x15\x01\x76\xb7\xf2\x61\x8f\x93\xe2\xb0\x40\xc1\xf1\x8f\xd3\xd8\x72\x83\xe2\x6b\xb4\x1a\x68\x32\x2c\x2c\xd8\x21\x70\x34\x81\xa0\x4f\x33\x5e\x58\x32\x4b\x86\x69\x92\xf6\xec\x50\x92\x20\x58\xc7\xe9\xeb\xb5\x79\x56\x2e\xa4\x5f\x1b\xd7\x43\xa4\x89\xfa\x61\x10\xef\xbf\xea\x9b\x5d\x2f\xeb\xfd\xc1\x5a\x51\xad\x68\xf4\xea\x46\x0e\xa0\x2e\x5d\xa7\x28\xb0\xb5\xfa\xfd\xee\x50\xe6\xe2\x89\x67\x59\xbb\x00\xd7\x1d\xca\xfc\x70\x8a\x5b\x18\x3a\x9d\xfe\x86\xa7\xde\x2b\x31\x8b\x4c\xb2\x5f\x4e\x8f\xdd\x51\x9c\x40\x3f\x32\x4a\xad\x5a\xd8\xc5\x99\x04\x76\xd5\xba\x13\x3e\xed\x3e\x88\x99\xa9\x58\xbd\xfc\xe2\xd7\x2b\x96\x7a\xe3\x73\xf4\xf8\xbf\x56\x7c\xc1\x0d\x67\xc2\xa7\xeb\x25\x42\xcc\x9b\xf7\xd7\x4c\x84\x88\x4f\x52\x39\xc8\xa4\x19\x5f\xeb\xe2\x46\xf0\x74\x76\xe6\xb4\xfc\x55\xf8\x6e\x0b\x5e\xeb\x20\xf1\xac\xd4\xe2\x94\x55\xa0\xaa\x8b\xeb\x5b\x26\xad\xbe\x3d\x71\xb1\x37\xe4\x01\xa3\x3e\x09\x24\xb1\xd6\x31\x84\x98\x94\x03\x23\x3c\xf7\x16\x11\x3f\x9f\x2f\xef\xef\x7d\x30\x55\x1c\x39\x92\x65\x1d\x10\x1a\xfc\xe6\xa4\x1a\x2b\x37\x24\x9c\xf2\x07\x09\xbe\x25\x62\x3e\xe4\xf6\x41\x8d\xe4\xb6\xe0\x85\x18\x96\xd9\x2d\xc0\x4a\xff\xe8\xac\x51\x8e\xf9\x61\x38\xd7\x94\x8f\xac\xb8\x72\x7b\xf3\x0b\x29\xc8\x38\x74\x59\x18\xd6\x47\x84\x10\x2c\xbe\x90\x0b\x4b\x0f\x0b\x22\x8e\x32\xa7\xd2\x80\xb6\x43\x4c\x65\xcc\xed\x75\x85\x7b\x2c\x2c\xd5\x93\x26\xb1\x0a\xce\xa2\x12\x5a\x2b\xc0\x56\xe7\x4a\x89\xc1\xf3\x17\xad\xeb\x78\x03\xba\xad\xd3\x4c\x22\xd5\x76\xea\x96\x81\xbc\xe5\xf5\x2a\x8c\xe0\x14\xf5\xdb\xe0\xc6\x0e\xca\x11\xda\x12\x75\x1e\x63\x00\x77\xaa\x3e\x3e\x38\x17\xe5\x04\xd9\x8e\xcb\x89\xf5\xc2\xa3\x03\xf9\x04\x8b\x13\xd8\x0c\x0b\x13\x14\xea\x0e\x09\x9d\x91\x7d\xc7\x03\x14\x43\x2d\xd9\xd9\x1f\xc8\xa6\xb8\x7e\x55\x49\x23\x8c\x91\x5a\x9d\x0d\x81\xea\xae\x52\x98\x22\xa7\xd9\x39\xf0\xf3\xab\xfe\xfd\x01\xf9\xcb\xd0\x8a\x0b\xf8\x7e\xb0\x0f\x13\x2e\x11\x3b\x99\x3e\xc1\x38\x7d\xa3\xc7\x2e\x21\x6e\x20\x88\x04\x50\x42\x39\x6d\x68\xe8\xec\x46\xee\x63\x58\x62\x5e\x89\x2a\xc8\xd9\xf5\xce\x1d\xac\x3b\x37\xcd\xd6\x96\xf9\x1c\x04\x8d\x2d\x80\x2d\x9a\x7a\x5b\x76\x31\x1b\xbf\x5f\x2d\xa1\x5d\xc9\x1d\x44\x32\x5c\xdf\x8f\x05\xfe\x4d\x3d\xd5\x99\x1e\xcd\xfe\x86\x4c\x74\xd9\xf9\x89\x9b\xa2\xe1\x39\x28\xd5\x5d\x9d\x83\x64\x49\x92\x8c\x6b\x4a\x98\xe1\x08\x04\x5e\xe3\x26\x51\x34\x62\x45\x27\xd4\xbe\x5b\xb2\x57\x19\x2b\x33\x86\xd8\x0c\x94\xfb\x41\x0e\xac\x67\x5e\x82\x63\x25\xf2\x7e\x80\x57\x90\x72\xe5\x41\xcf\x84\x98\x66\x1e\x0c\xc8\x15\xc3\xc6\x7f\xa2\x39\x83\xdd\x55\x06\xef\xbc\xa1\x68\xfb\xac\x11\x40\x6e\xc9\x8c\x29\xd8\xe9\xf7\xd4\x98\xcf\x2a\x5e\x90\x5e\xcc\xfd\x72\xc1\x92\xb1\x36\x42\xd1\x8d\x21\xcf\xed\x50\xe6\xa6\xa8\xac\x18\x45\xe7\x7b\x5d\x94\x0c\x44\x91\x87\xd4\xb3\xba\xaa\xa6\xc0\xb3\x0c\x50\x06\x2d\xa5\x03\x4a\xaa\xb4\x7f\x19\xd9\x7a\x88\x5f\xf1\x1f\x74\x58\x84\x70\x4b\xab\xb4\x79\xcc\x4d\xa5\x8b\xa1\xc3\xd2\xa2\xcb\x4f\x16\x00\x85\x29\x18\x7e\x1b\x9d\x43\x8a\x16\xc2\xc5\xd9\xb2\xfb\x83\x6f\xee\x0f\xdc\x1a\xb9\x44\x8d\x89\xe0\x8a\xdd\x1f\x40\xb5\x6f\x1a\x92\x25\x44\xa0\x65\x24\x20\x23\xf1\xcc\x07\xea\xca\x21\xbc\xd7\x41\xe5\x7b\x02\xa0\x67\x46\x28\x23\x5c\x81\x87\x8c\x1b\x2f\x3e\x28\x9f\xd2\xbb\xd8\xb5\x0c\x86\x73\xcb\xa3\x00\xc9\xd2\xaf\x49\xa2\x95\x95\xcc\xf0\xbc\x55\x51\xb9\x5f\xdd\x73\xd0\xa2\x74\x30\xb0\xa6\x08\xdf\x6c\xac\x9f\x62\xe1\x2a\x0a\xe4\xa9\xd2\x5e\xcf\x04\x9d\x3f\xd0\xc1\xda\xd9\xb3\x1a\xf3\xb9\x4e\x5b\x7e\x79\x7f\x10\xbf\x06\xbb\x3d\x35\xf3\xfa\xa4\xa8\xf0\x50\x6f\x72\x46\x86\x44\x06\x24\x4b\x60\x9c\x19\xdd\x07\x6c\x47\x3e\x5c\x7b\x18\x23\x4d\x96\x72\x1e\x22\x5b\x7b\xf5\xea\xf9\xe5\x89\x6c\xb0\x04\x0f\xe7\x92\x1b\x78\xd1\x10\x7a\x30\x98\x91\x4f\x97\x0e\x45\x99\x44\x81\xe8\xe1\x13\x2e\x24\xfd\x6a\xc8\x2a\x8e\xe7\xe0\x56\x55\x9a\x11\x67\x62\xf8\x53\xb0\x09\x3a\xc0\x3a\x51\x19\x31\x49\xda\xae\x3c\x36\x01\xce\x84\x36\x39\x27\x63\x0a\x07\x07\x3a\x5a\xbc\xec\x5e\xda\x6f\xe2\x16\xdd\x1f\xb0\x41\x29\x33\xb4\xbe\x9c\x07\xbb\x13\xd2\x0a\xbf\xcc\x3e\x20\xcc\xca\xab\xe4\x85\x03\x9a\x0d\xee\x0e\xbf\x7f\x49\x38\x2e\xf7\x07\xf1\xbe\x57\x3e\xe3\xad\xde\x40\x1d\xc8\xc7\x1f\x8b\x74\x55\xf3\xc3\x91\x1c\x46\x16\x0e\x67\x76\x2b\x73\x40\x6c\x07\x4d\xfe\x78\xd5\x60\x76\x29\x3c\xd0\xa2\x4b\x35\xea\xfa\x76\x4e\x80\x00\xc9\xf1\xd5\xea\x0c\xc4\xf0\x57\xab\xa3\x2e\x10\xec\x2a\xca\xa4\x8b\x97\x31\x40\x61\xad\x13\x68\x11\xdb\xaf\x36\x96\x76\xe2\x63\xd2\x02\xcb\xab\x62\x7c\xac\x4a\x38\x73\x73\x71\x36\x41\x7f\x96\x3a\x18\x69\x29\xb0\xb4\x3c\xd6\x26\xd9\xe9\x96\x2c\x17\x03\xe7\xb7\xa6\x49\x6c\xab\x6f\x51\x0b\xc1\xad\x45\x48\x0c\x4a\xd8\x9b\xa3\xfa\x53\x07\x2d\x84\x51\xf7\xad\x55\xf2\xe7\xf9\x2a\xfd\x60\x97\x3b\x83\x15\x41\x3e\xdf\xf6\x45\x6e\x00\x08\xb4\x6d\xc1\xaa\x9b\x4a\x21\x33\xd7\x0d\x9b\xfa\x7e\x5c\x9a\xde\x7c\x61\xb0\x85\xbb\x31\x34\x77\xab\x59\x76\x80\x93\x47\xc5\xd2\x4a\x42\x84\x1a\xe2\xdd\xed\xc3\x5a\x9b\x39\x43\xf0\xd8\xca\x9e\x76\x10\x1c\xac\x20\x2e\xd0\xf6\xf2\xd9\x12\x68\xf1\x5c\x7c\x87\x91\x91\xcf\x43\x83\x7f\xa8\xc2\xfe\xd5\x63\x57\x93\x69\x26\x13\x59\x64\x94\xf9\x92\x7b\x88\x13\xf7\x5a\x1d\x5a\x7a\x73\xec\xfc\x15\xeb\x30\x57\xef\x80\x1d\xd9\x37\x4f\x9e\x72\x59\x88\x63\x44\xe5\x03\x0d\x7e\x2c\x72\x17\xef\xa4\x31\xad\x47\x84\x1f\x9d\x1d\x48\x2a\x86\x1b\xff\x09\x11\x13\x36\xae\x73\x73\x03\x17\x67\xb3\xcb\x54\x47\x59\x59\x9a\x06\xe3\xbe\x56\xf3\x3e\x87\x4a\xed\x0e\x2a\x4b\x0f\xec\x6d\x73\xbe\x90\x70\x54\xcf\xfa\x57\x96\xcb\xa6\xa8\x2e\x19\xe7\x2b\xac\xc8\x30\x15\xbb\x5a\x24\xd1\x16\x85\x95\x7d\xed\xf6\x36\x2e\x05\x1e\xfd\x16\x11\x2b\xbf\xf8\x86\x2e\x5e\x65\x5c\x4e\xb8\xea\xda\x9d\x04\xa9\x24\x8e\x5f\x0d\x43\x77\xa9\xdc\xb4\x67\x51\xc6\x05\x88\xf7\x0b\x6b\xf7\x6d\x70\x1a\xc3\x54\xda\x94\xe8\xfb\xa5\xda\xba\xbe\x37\x89\x9e\xfa\xd9\x10\x79\xa0\x41\xfa\xb9\x79\x97\x6d\x80\x3d\xab\x68\x6b\x85\x2b\xff\xd2\xaf\xd5\x44\xaa\xba\x6a\x51\x0d\xe2\x98\xbe\x52\x0b\x64\x82\x35\xb5\x63\x21\xc9\x77\x20\xd8\x44\xe6\x39\x98\xab\xea\xc3\x41\xcd\x4d\x8e\xc6\x05\x54\x32\x29\xc4\x28\x27\x8f\xe8\xad\x28\x58\xb4\x7d\x10\xb8\x81\xc5\x18\xed\xdf\x04\x39\x87\xb7\xcd\x9d\x22\x02\x1a\x2d\x73\x7c\xbb\xd0\xec\xde\xd5\xb9\x43\xc2\x31\xd3\xa5\x8f\xc2\x42\x78\x24\x3f\x3f\xd3\xb0\x52\xd7\xe1\x47\x04\x6a\xd6\xce\x5a\xd8\x15\xcf\xd2\x14\xf3\xb3\x71\x8b\xe4\x5c\x7d\xaf\x25\x93\xb9\x01\xec\x99\xcb\x9e\xb9\x7c\x21\xe6\xd2\x88\xd8\xb7\xe7\x30\x7b\x0e\xb3\xe7\x30\x5f\x03\x87\x99\x99\xa4\xc8\x96\xe9\x94\xd0\xc0\x43\x27\x70\xf6\x60\x37\x2b\x63\x53\x9e\xf3\x89\xb0\x6b\x5f\xb8\x72\x20\xbb\xab\xa3\x0c\x76\x03\xea\x64\x86\xf8\xae\x6d\xcb\x2d\xc6\x17\xc4\x92\x86\x55\xd7\xc2\xe5\xf8\x6c\xfa\xbd\xb9\x0d\x68\x4e\x8b\xa9\x81\x14\xd2\xd8\xe8\xdf\x1b\xe7\xc9\xdc\x9d\xf7\x6f\x75\xf2\x20\x8a\xb3\x55\x78\x48\xb5\x96\x51\xbe\x0c\x57\x8c\xaa\x66\x78\x27\x81\x9e\x0a\x0a\x59\x33\xf0\xce\xea\x8d\xb5\xac\xbb\x75\xb9\xe1\x1f\x2d\x9f\x77\xd7\x91\xac\xf9\xac\xd0\x9d\x39\xd0\x9e\xa9\x4e\xd9\xd5\x26\x39\x74\x4d\x49\x89\x6f\x2b\x7b\x2e\xaa\xaa\xb3\x9b\x54\xb9\x2f\x94\xa9\x75\xc7\xe5\x52\x80\x75\xc8\xb8\xd6\x29\x81\x62\x40\x6b\xb0\x44\x17\x05\x4f\xc6\xce\x03\x8f\x7c\xe0\xfe\x00\x43\x85\xef\x0f\x20\x41\x4b\x01\xec\xa9\x23\x9f\x14\xd0\x55\xe8\xcc\x8a\x87\x48\xbc\xa1\xb7\x16\x12\x2c\x76\xbb\xaa\xf6\xa2\x4f\x09\xb2\x43\xc6\x57\x42\xb9\x70\xc0\xe5\x89\x71\xa2\x89\xa0\x57\xc6\x03\xcd\x9c\x63\xc3\x85\x3d\x5b\xa6\x71\xad\x6f\xed\x64\xcb\x4c\x74\x58\x1f\x5c\x8d\xe1\x09\x85\xd3\x5f\x3e\x8b\xa4\xdc\x28\xed\x1d\x83\x7f\xda\x4f\x0d\x27\xf3\x20\x66\xf3\xf5\xa4\x30\x1f\x66\x93\x9c\x55\x39\x11\x67\x69\x3a\x5f\xe0\x72\x0b\x50\x8f\x3b\x59\x87\x75\xad\x1f\x2d\xf7\xd1\xba\x85\x13\x7d\xae\x45\x54\xd4\x1e\xe7\xfc\xc4\x0d\xe3\xf6\x85\x1e\xbb\x82\x53\x08\x22\x99\x15\xcd\x0b\xa1\x40\x9c\xf0\xfb\x80\x6f\x98\x45\x42\x64\x0b\xc6\x12\x96\x1a\x9d\x83\x89\xce\x31\x3f\x29\x25\xd9\xa6\x88\xf7\x62\xc7\x70\x4e\xf6\x4c\x74\xe6\x2e\xc0\xd6\x77\x1d\x0f\xfb\x0a\x46\x43\x74\x1b\xef\xbb\x7f\xa3\x7e\xe9\xdd\xc5\x31\x70\xd1\x71\x1d\x82\xbf\xd8\xd5\x05\xcd\xe5\x34\x13\xec\xbe\x7c\xf7\xee\x7d\xf2\x20\x66\x1d\x74\xca\x12\x99\xb0\x4f\x45\x54\x88\xdf\x07\x05\xa1\x0a\xa9\x73\x7a\xd1\xfd\x13\x5f\xd8\x15\xbd\xb8\x44\x0a\x11\x07\xb1\xb9\xfd\x24\xe2\x01\x41\x2d\x45\x32\xee\xb1\x4b\x88\x49\x9a\x08\xae\x28\x74\x09\xfc\xe6\x71\x63\x07\x10\x11\x29\x38\x0e\x09\x3a\xca\x98\xfc\xc2\x74\xe4\x6f\x58\x6f\xbd\xa8\x12\x11\x57\x15\xab\x08\x7b\x1d\x62\x9f\x96\xcf\xfd\x41\xcc\x5c\x88\x81\x70\xd5\xdc\xc9\x37\xee\xf7\xd0\x31\xbc\x4b\x2b\x36\x9b\xff\x70\x45\x4e\x27\x03\xa9\xf0\x63\xd8\xb5\x5b\x6c\xe6\x7d\xf7\xc6\x07\x28\xc0\x67\xd6\x5f\x10\x37\x84\x95\x72\x0d\x8d\xb4\x02\x2a\xf9\x20\x66\x87\x86\x60\xde\xb4\x32\x63\x39\x75\x77\x9e\x4a\xe6\x3b\xf7\x37\xbe\xec\x1c\xe0\x76\x8e\x98\x08\xf3\x7b\xc9\xb3\xaa\xef\x9c\x1e\x51\x23\xbb\x54\x95\xca\xbe\x4f\x32\x4b\x13\x4e\xd9\x76\x14\xbd\x60\xb4\xcb\x7f\xb6\x57\x32\xe1\x2a\x30\x2c\xbf\x0b\xe4\xa5\x8b\xb2\x53\xec\x79\x1e\xe9\x85\x71\x84\x4b\x19\x81\x3f\x04\xed\x80\x11\xef\xea\xed\xeb\xb4\x7c\x2a\x72\xa9\x53\x60\xc4\x80\x0e\x58\x3d\x68\x47\x48\xe2\xdd\x19\xd1\x43\x77\xf7\xfc\x45\xe8\x44\xc8\x91\x45\x53\x6a\xfe\x71\x44\x8a\x22\x26\xfe\xc3\xcc\x49\xa3\x1d\xca\x95\x01\xfb\x83\x28\x5c\x00\xa0\x3b\x76\x75\xfe\x6f\x97\x5f\x3c\x8a\x9c\x1d\x91\x88\x20\x1e\x65\x52\x1c\xf7\xd8\xff\x27\x72\x0d\x5b\xab\xc4\x08\xb1\xff\x6a\xa6\x8b\x82\x12\x1e\xb8\x61\xef\xd8\x11\xbc\xc6\xe4\x64\x22\x52\xc9\x0b\x91\xcd\x8e\x6b\xe8\x26\xbb\x86\x31\x6c\xaf\x2d\x55\x68\x00\x72\xb7\xda\xbe\x78\x22\xae\xfd\xf5\xf6\x17\x1a\x02\x1a\xed\x11\xae\x94\x1a\xf4\xc8\x07\xee\xfe\xfb\x5d\xfb\x6f\xbb\xb9\x9c\xe5\x62\x04\x87\x13\x4f\xdf\x6b\xa9\xc7\x2e\x32\xeb\x96\x22\x37\x7e\xe2\x03\x91\x91\x3c\x35\x11\x4b\x25\xdf\xb3\x10\xdc\xe3\xe3\x3e\xf2\xf0\x26\x41\x5a\x54\x0a\x06\xba\x65\x1b\xc9\x47\xa1\x30\xf2\x8b\xe2\x92\x30\xd9\x87\x67\xd3\x31\xf7\x69\x2e\x3e\x1b\x12\x32\xee\x9d\xde\x30\x2c\xab\xc9\x23\x0b\xb9\xdc\x6a\x7a\x0f\x99\x02\x2e\xfc\x2c\x10\x7a\x3f\xe6\x88\xcc\x6f\xa8\x9c\xaf\x22\x0f\x67\x8a\x41\x9c\x12\x78\xa9\x23\x04\x3e\xd3\x63\x9f\x95\x3b\x3b\x35\x98\x24\x1c\xb1\x33\x4a\x64\x80\xec\xdb\x63\x97\x3c\x19\x63\x3d\x5c\xb0\xaa\xe2\xcd\x93\x86\x7d\xbe\x79\xad\x00\xab\xcd\x44\x37\x5a\xa6\xed\x45\xb7\xea\x39\xbe\x13\xf9\x64\xcd\xb3\x5b\x88\x7c\x52\xa7\xce\xb9\x30\x65\x06\x6a\x12\xae\xfa\xef\xa5\xc8\xa5\xdd\x9d\x33\xa6\xca\x2c\xf3\xb1\x6e\x8b\xba\x73\x07\x5e\x69\x57\x4b\x00\x75\x94\xe8\x9e\xb8\xc0\x8b\x09\x70\xc8\xb3\xeb\x0b\x12\xdf\x29\xd9\x06\x2e\x11\xc4\xff\xdb\x76\xc3\x52\x25\x68\x65\x90\xc5\xcc\x12\xd2\x6b\x9d\x8a\x78\xce\x2f\x77\x9d\x60\x2a\x40\x1e\x2e\x9f\xed\x1a\x99\xa6\xa2\xb3\x73\xcb\x3c\x17\xbe\xda\x44\x2a\xa0\xb8\x18\x2c\x70\x5d\x8c\xd9\x36\x3d\x66\x25\x79\xdb\xfe\x94\x6f\x7a\x50\x21\x39\xfb\xdc\x47\x45\x2e\xd3\x38\x16\xbc\x12\x99\xb8\x21\x3c\x51\x53\xd2\x79\x50\x14\x40\x9d\xe7\x13\x4d\x0a\x04\x92\x5d\xb7\x15\x6d\xe2\x95\xec\x72\xdd\x2e\xc8\x9c\xd8\x06\xcf\xb2\xd2\xef\xd2\xe8\xa5\xb8\xa5\x87\x25\x2a\x34\x1b\x4a\x55\x9b\x68\x0f\x93\x4b\x2a\x41\xb9\xd2\xc3\x11\x7a\x9a\x9e\x5b\x55\x15\x4b\x54\x15\x3a\xc4\x30\x62\xf6\x0d\x19\xb8\x86\xb8\x72\x78\x45\x64\x3e\xa7\xdb\xd2\x59\x4e\xf5\x84\x4b\xb5\x40\x87\x9e\xf0\xe7\xdb\x07\xf1\xb4\xe2\x86\x7c\xc2\x56\x35\x78\x9f\x54\x8c\x72\x01\xd6\xc3\xa8\xae\xae\x8b\xf2\x55\xe2\x51\x58\xbd\x3e\x95\x86\x40\x80\x80\x60\x1c\x1a\x52\x12\x9f\xe5\xa4\x9c\x58\xb9\x92\x20\x96\x52\x39\x74\x79\xda\x03\x51\x3c\x09\x72\x62\x84\xb9\x56\x8f\x8b\x44\xd3\x54\xf1\xa4\xeb\x13\x25\x41\xba\x7a\x8a\xc0\xd5\xd9\x63\x1f\xe3\xda\xc3\xe0\xf9\x79\xdf\xfd\xa7\x56\x3e\xa8\xb0\xc3\xdc\x4c\x43\xae\xfb\x29\x15\x18\xf4\xb9\x30\x3e\xa8\xbc\x72\xee\xdc\xa9\xe6\x86\x9d\x9e\x9c\x9e\xbc\xfb\xc0\xfe\x87\xd9\xae\x4f\xe9\xbf\xdf\xd2\x7f\xdf\xb3\xff\x61\xff\xc3\x18\xeb\x33\x56\xf9\x2f\x83\xff\x76\x99\x1c\xc6\x63\x38\xb5\xc3\x4c\xf4\x84\xe6\x0d\xba\x03\x98\x4b\x2c\x57\x25\x95\x13\x4e\x08\x76\x0d\xec\x36\xd1\x13\x01\x63\x38\xfd\x0f\xd7\x06\xf3\x67\x98\x56\xd4\xf2\xf4\x08\x86\x74\xcc\x9e\x40\xde\x9b\xf0\x07\x3c\x59\x67\x49\x51\xf2\xcc\x7e\xfc\xe8\xdb\xee\xbb\x63\xa6\x55\xb5\xf9\xa3\xd4\x99\x15\xb3\x69\x84\x47\xa7\xc7\xbd\xb9\x21\x7f\xdb\x30\xe4\xca\x68\x61\x14\x76\xf3\xfe\x09\x19\x20\x70\x26\xb8\xc7\x02\x72\xa9\xc4\x17\xf5\x94\xb0\x53\xd8\x86\x77\x4e\x07\x20\xbd\x7c\xe7\x20\x04\x51\xb2\xc3\x4a\xa5\xc9\xb7\x74\xb2\xb8\x15\xd0\xf4\x10\x2d\xad\xc4\x29\x80\xf7\xd1\x7d\xc7\x24\x27\xba\xeb\x01\xee\xc6\xbe\x05\xa8\x51\x29\x16\x9e\xcc\x62\x63\x83\xc3\xaa\xf4\xce\xf4\xb8\xb6\x9e\x27\x92\xec\xd7\xd0\x12\xe1\x1d\x83\xb5\x06\x7b\x23\x3b\x0d\x44\x14\xdf\x1f\x0c\xca\xe4\x41\x14\x0e\x36\xcf\x8a\x63\x85\x66\xd3\xb2\x60\x1e\x21\x64\x8e\xc8\x14\x1a\x3b\xc6\x57\x17\xed\xdb\xfa\x12\xe8\xd3\x58\xa8\x9f\x95\xe1\x85\x34\x43\xc9\x07\xd9\x2a\xe5\xe7\xd7\x7a\xfb\xc8\xf8\x43\x0c\x26\x15\x9c\xd6\x17\x35\x6e\x04\x5a\x48\xb5\x30\xea\xb0\x60\xf8\x2a\x29\x71\x78\x69\x43\xd8\xbf\x3d\xcf\x17\xfa\x5a\x17\xde\xa0\x73\x44\x0a\xe8\x31\x2b\x44\x96\x39\x3f\x2d\xfe\x98\x93\xf5\xd9\x3f\xb0\xdf\xe9\x32\xf7\xee\x99\x9a\x3d\xf1\x59\xe3\x7b\xf6\x9d\x02\xb0\xfb\xa3\x37\x61\x49\xa3\x0d\xe7\x86\xdd\x1f\x54\xe6\x8a\x5e\x50\xa8\xc4\x60\xa9\x80\x1c\xb2\x69\xc6\x13\x0c\x52\x88\xee\x1c\x19\xee\x3d\xf5\xa3\x7b\x6b\xbb\xa3\x9b\x7a\x7f\xf0\x5a\xd4\xf0\xbd\xa5\x44\xcb\xa9\x61\x1f\xfe\x37\x4f\x15\xaf\x86\xac\x61\xb7\xfd\x58\x2a\xfb\xb4\x0e\xa1\xfc\x16\xe8\xd9\xfb\xe3\x88\x5e\xbe\x3f\xf9\xf6\xe4\xf4\xc8\x8e\xf5\xdb\x63\x3b\xea\x0a\x25\x3c\xf5\x94\xd0\xbf\x49\x23\x12\xa6\x42\x0b\xaf\x14\x6a\xcc\xec\x49\xe7\xa9\xa9\xe0\x73\xc0\x88\x70\xcb\xed\x25\xf6\x50\x3c\x04\x91\xe3\x0f\xc6\x93\xb6\x67\x14\x28\xb2\x2c\xd8\x37\x13\x9d\x8b\x6f\xa2\xe6\x5b\xde\xbb\x96\xda\x8f\x93\x0a\x16\xd0\xc5\xa5\xb7\x77\x6b\x1d\x69\x36\x15\x69\x63\xb4\xcb\x12\xd9\x73\xd1\x3b\x21\x58\x59\x28\x40\x45\x88\xf1\xaa\x0b\xcd\x32\x51\x40\x4c\x01\x41\x97\x80\xfd\xc4\xf6\x15\xe0\xb6\x5c\x81\x43\x26\xe1\x5a\x86\xf3\xde\x10\x33\xb2\xac\x4a\xc2\x5f\x09\xdb\x7b\x45\x8d\x04\x68\xe6\xd8\x09\xe0\x81\xfb\x7c\x6a\x0f\x6c\x3f\x10\xf6\x94\x87\x11\x82\x71\x27\x7e\xb7\x01\x44\x33\xc4\x87\x00\x98\x7e\xcd\xcb\x69\xd7\x1e\xc2\x7d\xe0\x8b\x48\x19\x2c\x01\xd1\x0e\x55\x27\x4f\xbb\x53\x0e\x4e\xf9\xd9\x54\x98\x4e\xe5\x6b\x1e\xc5\xef\x45\x4b\xf7\xbb\xad\xc1\xa2\xb3\x0b\x56\xe2\x45\xd0\xaa\xe3\xe0\x23\xe7\x51\xde\x76\x04\x6d\xad\x10\x76\x7d\xea\xa3\xdd\xf6\x82\x61\x4c\xce\x92\xdb\xf4\x8b\x0b\x4e\x8c\x0c\xe9\x08\xe9\x4a\x21\x49\xc0\x2b\xbc\x57\x98\x24\xfe\xb8\x3e\xae\x3d\x3b\x01\xe5\x35\xd4\xd8\x6d\x73\x55\x9e\xcc\x65\xc6\x4d\x21\x93\x1f\x32\x9d\x3c\xdc\x16\x3a\x9f\xdb\xa0\xd6\x8a\xf5\xd9\xaf\xb7\x73\x9d\x55\x62\x38\x97\x29\x75\x4d\x2f\x57\x16\x45\xb1\xb3\x5f\x6f\xd9\x85\x34\x0f\x71\xd1\x09\x3e\xe7\x59\xe7\xae\x5a\xcf\xa1\xc1\xe0\x4a\xd2\x39\x5d\xfa\x97\xf2\x88\x1f\x21\xe0\x62\xfd\xe4\x26\x0c\x61\x3a\xc1\x2d\x32\x7f\xe2\x4f\x46\xe0\xe8\x07\x76\xf4\x06\xd6\xb1\xf1\x0a\xf0\x7f\x96\xb9\xb0\xb3\xd8\x7c\x99\x5d\x0f\xed\xd7\xd6\xbd\x51\x5f\x50\xfb\x9c\x5d\xf0\x82\xe3\xba\x62\x41\x1e\x0a\xd6\x80\xb5\xb3\x6b\x36\x00\x12\x46\x25\x91\xc2\xd9\x5a\x3c\xbb\x8f\x72\x5e\xac\x5c\x6f\x76\xb6\x87\xf5\x66\x67\xdf\x68\x9c\x1d\xfc\xe0\x32\x34\xb7\x9f\x60\x22\xa6\xe3\xe1\x9c\x89\xab\x7d\x06\x90\x98\x8e\x3f\xde\xb6\x9e\x1a\x36\xaf\xd2\x06\xfb\x8c\x7d\xbc\x6d\x98\x0b\xdc\x06\x33\xe6\x39\x65\x1b\xa6\x87\x86\x65\x72\x28\x0a\x39\x59\x70\x18\x13\xa9\xd2\x2d\xb2\xce\xce\xe1\xf5\xf6\xb3\x81\xe6\xd5\xd9\xe0\x08\x1c\xa9\xf3\xf7\x98\xbb\x1d\xc1\xd8\x2c\xba\xd1\xd5\x0b\xdd\x78\x69\x49\xc2\x36\xae\x94\xc9\x64\x66\x7e\xcf\xba\xf8\x95\xee\x34\x3d\xb9\xb9\x3c\xbb\xf8\x74\xd9\x9b\xa4\x0b\x16\x04\x12\xac\x3e\xf1\x39\xd9\xa1\xfd\x9a\xb8\x1e\xda\x2f\x8b\x7b\xa3\xb6\x32\xfe\x31\xed\x2b\x18\x0f\xa6\x7a\x5a\x66\x28\x3c\x49\x43\xcb\xb6\x60\x2a\x46\x6e\x3e\x89\xdb\xab\xf6\xc3\xbf\xbd\x62\x47\xe7\x9e\xfd\x50\x70\x27\xbb\x52\x85\xc8\x87\x3c\x11\xc7\xf1\xb4\x88\x6e\x7a\xc2\x3d\xe6\x2a\xcd\x1c\x17\x0b\xb9\xab\xb6\xcf\x34\x97\xe0\x51\x3c\x8b\x0d\xd6\xc7\x0b\xae\x65\xaa\x9f\xd4\x13\xcf\xd3\xb3\xfe\xd5\xc6\x93\xbe\x08\x7d\xb4\x9e\x7c\xf4\x4e\x3c\x4d\x37\x1c\x90\xf2\xf8\x40\x97\x85\x0f\xed\xdb\x6c\x33\xc1\xa1\x70\x21\x37\xbf\xaa\x97\xd4\x41\xeb\x99\xb9\x17\xaa\x87\xb2\x10\x93\xa9\xce\x79\x3e\x63\xa9\xcc\x41\xf7\x9c\x2d\x25\x3b\x5b\x33\x56\x98\x78\x2a\x17\x98\x8f\x86\xc9\xc6\x0b\xf2\xf1\xbc\xf5\x52\x7c\x3c\xaf\x2e\xc2\x47\x39\xc8\x05\x3b\x1f\x73\xa5\x44\xf6\x02\xc2\xc8\x82\xb9\x66\xe2\x79\x4e\x98\x5c\x73\xce\xbe\x8b\x36\xb3\xf6\x8d\xab\xb3\x1f\x09\x25\x72\x99\xd4\x93\x6a\xfc\xf4\xc1\x47\x85\x55\xe6\x4e\xfc\x52\x60\xc0\x12\x5c\x71\x91\x50\xcc\x2d\x96\x64\x5c\x38\x5b\x9d\x3c\x6c\xc1\x9a\x3e\xe2\xfb\x6b\xcc\x16\xda\xd7\x36\x9a\x1e\xd6\xb9\xd3\x92\x8d\x25\x5f\x5b\x84\xc6\x68\x77\xd5\x75\x44\x38\x9e\x1e\xf9\x83\xf4\x19\xac\x71\xdf\xbc\x10\xa3\x44\x84\x74\xdb\xad\xe4\xc6\xbf\x9e\x5f\x56\x7b\x6a\xbd\x38\x73\x6f\x56\x97\xe9\xaf\xe7\x97\x6f\x55\x2e\x1f\x25\x22\xe4\x81\xa5\x76\xf5\x9a\x17\x59\x16\x37\x62\xaa\x37\x5f\x5a\x7c\xbf\xfd\x82\x62\xfb\xda\xc5\x92\x50\x39\x4f\x1b\x09\x64\x15\x23\x98\x42\x80\x52\x2e\xf0\x5a\xf5\xd8\xc5\x65\xff\xe6\xf2\xfc\xec\xee\xf2\xe2\x03\x73\x3d\xe1\x99\xcb\x45\x42\xa0\x9c\x3a\xdc\x43\x94\x25\x88\x3d\x93\x9d\xd6\x7d\xab\x43\x62\x24\x57\xcc\x13\x7c\x89\x1e\x03\x76\xa5\x64\x11\xf8\x3a\x01\xd2\x68\x57\x4a\xd2\xbe\x4d\xd7\x7a\x24\x11\xd0\x46\x39\x21\x7a\x2c\x6a\xbd\x85\x04\x99\x10\x02\xbe\x60\x27\xd0\x7e\xb7\x85\x88\xfd\x57\xd7\x43\xfb\xdd\x70\x6f\xd4\x8e\xb5\x7f\xbc\x9e\xa8\xdd\x4a\x2e\xa5\x03\x7a\xe2\xe7\xbb\x4a\x32\xb5\x9f\xed\x37\x14\x5d\x6d\xbd\x2e\x3f\x52\x07\xad\x97\xc5\xbd\x50\x2f\x1c\x4d\xd9\x3c\x76\xe7\xa1\x5c\xab\xce\x23\x61\x20\x5e\x24\x77\xc1\x1d\x35\xc0\x56\xd9\xac\x7e\xd1\xa3\xb4\x00\x17\xa8\x00\x4c\x06\x60\xa9\xc0\xb7\x0b\x20\x84\x98\x45\xc9\x47\x18\x1f\x41\xc5\xa0\xd9\x34\x97\x8f\x32\x13\x58\x7d\x43\xaa\x51\x84\xec\xe9\x82\x49\x21\xb5\x45\xcc\x8d\xcb\xee\x93\x29\xc2\xd7\x29\x28\xed\xfa\xf3\x1d\x53\x02\xbb\x6b\x2e\x48\xba\x0e\x01\xb2\x1f\x8c\xeb\xcc\xd6\x30\xb8\xcd\x36\x52\xfa\xd5\xed\x3a\x72\x3a\xb4\xae\xa9\xc8\xf8\xec\x15\x69\xf7\xa2\x6b\x00\x0b\xb1\xea\x0a\xb4\xb0\x1e\xe2\x6a\x50\x22\x5e\x9c\x87\xeb\x6b\xd9\xc1\x90\xab\x19\x89\x9b\x32\x1b\xfd\x68\xd9\xb8\x78\x3a\x21\x78\x9b\xae\xed\xaf\x4b\x31\x3d\x27\x60\xb1\x3e\xf9\x13\xfc\x67\x03\x4b\xe9\x16\x14\xf0\x7a\x0d\x0b\xc3\x75\xcd\xbc\xa0\xd8\xf5\xda\xb6\x85\x6d\xef\x88\x9d\x6b\xe3\x22\x4c\x6b\x38\x23\xe7\x19\x97\x93\x8d\x97\xa5\x8e\x5a\x02\xbd\xb5\x5e\xa8\x95\x6f\x57\xc9\x64\x54\x40\xc4\x5e\x9f\xc6\xb7\x2b\xce\xe5\xe0\xe0\xd8\x74\x39\xc3\x6a\x75\xdd\xca\x86\x47\xf8\x24\xb1\x9f\x5d\xb4\xd8\x63\x5d\x68\xb5\x23\x59\xb3\xdf\xd0\x59\xfb\xa5\x6e\x78\xb9\xba\xba\xd8\xe2\xdc\xa3\xe2\xc7\xc9\xfe\x56\xca\x5b\xcf\x90\xb4\x38\x9d\xee\x49\xe7\xdb\xea\x5c\xfd\x4a\x37\x6d\x66\x5f\x79\xa1\xc6\x7c\xe9\xb7\x8d\xec\x65\x0b\x2b\x05\xfe\x37\x84\x8b\x6e\x3e\x43\xd7\x43\x7b\x56\x54\x88\x09\x55\xff\xcc\x32\x7b\x0b\xb4\x0a\x8a\xa4\xa1\x9c\x79\xd3\x21\x13\xd8\x84\x4f\x0d\xfa\xc1\x63\xb3\x4a\xf3\x6c\x7e\x2f\xf5\x60\x56\x6c\xbe\x5b\x7f\xc7\xf7\x5b\xcf\x84\xda\x57\x77\xc9\x3d\xdc\x85\x85\x36\x1f\x6c\xbe\x31\x37\x3f\x5c\xb4\x9e\xc8\xcd\x0f\x17\xd5\x49\xdc\xf0\x54\x1b\x06\xbe\x18\x76\x21\x16\x58\xcf\x77\x26\x06\xe7\x83\x95\xa6\x59\x93\xf0\x4c\x5c\x7d\xde\x1c\x10\x16\xdf\x6f\xbd\x22\xd4\xbe\xba\x2a\xee\xe1\x3c\xb8\xc8\xa2\xab\x18\x27\xfa\xeb\x54\x2c\xca\xae\xc3\x33\xbf\x05\xda\xad\x7d\xbd\xfd\xdc\x10\x95\xa2\x32\x35\x87\x54\xb1\xc2\x3e\xb9\xb5\x44\x4c\x33\x6d\x5e\x05\x6c\xab\x37\x97\x7d\x9a\xc1\x63\x96\xae\x85\x47\x23\xc8\x9b\x81\x64\x76\xb3\xc1\x8f\x66\x3a\x16\xce\x1f\xba\xf1\xf4\x7e\xa1\x5e\x10\xe1\x72\x2d\xae\xfa\x4b\x3c\x80\xea\x5c\x1f\x6f\xe1\xa7\x6d\xb9\x4a\x4b\x37\xfb\x0e\xdd\xea\x48\x98\x96\x38\xd7\x1f\xa3\x66\x71\xfa\x3f\x9b\xf0\x29\xe0\x6d\x40\xf4\x6a\xce\x9f\x18\xf8\x6d\x59\x2a\xa8\x02\x0e\x41\x95\x44\xe6\x8a\x95\xbe\x74\x7c\xb7\x49\x47\xaf\x0d\x2a\x34\x74\x81\x0e\x53\xf8\x1b\x43\x5e\x1c\x50\x70\xd5\xf2\x82\x11\xc0\x95\xf2\x3c\x76\x0a\xa0\x71\xbd\x4c\xd9\x70\xe5\x33\xef\x43\x9a\x89\x0a\x38\x15\xcb\x04\xda\xa9\xde\x71\x64\x46\x1d\x48\x22\x5a\xea\xdd\x1c\x24\xc0\x1a\x5a\x19\xa4\x01\xad\xaa\xc7\xc8\x3e\xf1\xe7\xe8\x97\x0a\x86\xcc\x7a\xa7\x07\x7a\x6a\x71\x78\xe0\xd8\x44\x8a\x6b\x38\x27\x95\xe4\x6f\xba\xca\x21\xc5\x8c\xee\x71\x8f\xa1\x52\xac\xb4\xb7\x7c\xb0\xc3\x0f\x87\x1b\x1c\x21\x1c\x30\x15\x76\xa8\xa6\x47\x37\x8d\xbb\xde\xbc\x0e\xa4\x0c\xbf\x13\x22\xaf\xab\x16\xe1\xcb\x78\x39\x71\x43\xc7\xd3\x25\x34\x5f\x0a\x01\xe4\x33\xc6\x73\x5d\xaa\x94\x92\x8a\x7d\xe6\xe2\xa7\xda\x87\xaf\x09\xba\x14\x81\x79\xaa\x25\xad\x06\xa2\xe0\xf6\x10\x9f\xf6\x4e\xdf\xbd\x54\x31\xfe\xf9\x1a\xf7\x01\xfd\x05\x0f\xd0\xcb\x21\x75\x7d\x22\x62\x6e\x9b\x77\x5d\x4c\x2b\x16\x26\x81\x47\x80\xd8\x15\xa5\x21\x1e\x21\x9c\x97\xce\x63\x20\xb1\xe3\x6a\x86\x2e\x16\x0f\xd9\x04\xa5\xab\x1c\x6c\x70\xde\xe9\x60\xc3\xc1\x08\xc7\xdd\x1f\x8b\x43\xb3\xe4\xe8\xc7\xc3\xbe\x3f\xb8\x3f\x60\x47\x8f\xce\x5e\x94\x6b\x5d\x1c\x6f\xb0\xf0\x34\x89\xcb\xe7\xe9\xaa\x94\xe9\xcb\xe7\x29\x57\xa9\x48\x91\xd8\xef\x68\x46\x3f\x88\x31\x7f\xb4\x2a\x93\x9c\xc8\x8c\xe7\x19\x44\x96\xdf\xe2\x98\x20\xd4\x55\xa8\x47\x99\x6b\x28\x7e\xc6\x1e\x79\x8e\x41\xbd\xde\x38\x61\xd8\xff\x73\xf4\xcb\xd9\x0d\x80\xa9\x1c\xbb\x6a\x48\x38\xca\x00\x31\x10\x8f\x24\xea\xae\xc5\x72\xba\x91\xd8\xd5\x81\xfb\xea\x46\x66\xbf\x34\x29\x0b\x2c\xe1\x2c\x9e\x93\xac\x34\xf2\xb1\xf5\xb9\xdf\x90\x69\x04\x0a\xbb\x1b\x9e\x71\xad\x53\xd1\x50\x13\x64\x01\x06\x59\xd4\xd8\xe3\x4a\xc5\xf8\xf7\xc0\xe5\x33\x39\x91\x96\x8a\xf3\x82\xca\x09\x47\x82\xb7\x4b\xed\xf0\x91\x7f\xf6\xc0\xb4\x60\x2c\xd1\xe2\x6c\x68\x4e\x8c\xd2\x09\x97\xeb\x90\x2e\x48\x3a\xca\x41\xb3\xda\x3a\x24\x68\xcc\xcd\xd5\x05\xc5\x4e\xc4\x4e\xe1\xa3\x71\xb9\xc9\x26\xb1\x1c\xb5\x23\x34\xaa\x84\x56\x7a\x8b\x08\xe3\x99\x86\x52\xbd\xc5\x98\xb8\x4c\x40\x6f\xa4\x3d\xa9\x62\x95\x2f\x46\x8e\xde\x5d\x58\x51\x34\xb3\x65\x7b\x11\x47\x5e\x87\x00\x94\x10\x53\x94\xf2\x82\x53\x65\xa6\xc5\x85\x6f\x76\x1c\x55\xb3\xd5\xd0\xa3\xb1\xb4\x1b\xfc\x4e\x34\xea\xad\x86\x4c\x1a\x75\xcb\xd1\x42\x44\xc0\x59\x02\x79\x88\x77\xfa\x41\xcc\x09\x54\xeb\xd6\x7f\x8b\xfb\xda\x72\x1e\x73\xfd\x2d\x99\xd4\xd6\x17\x78\xb9\x8a\xdb\x12\x07\xb6\xa6\xd2\xee\xa1\x5f\xa3\xb9\xb4\x92\x6b\xd0\xfc\x81\x25\x7b\xae\x2e\x56\xd5\xbc\xa2\xb0\x3e\x2a\x5d\xfc\x03\xc4\xf7\x7c\x82\xea\xf5\x20\x79\x1c\xdd\xf6\x7f\xf8\x74\x6c\x0f\x0b\x78\x8c\xaf\x2e\x9a\x8b\xd4\xc5\xdf\xdc\xb0\x4c\xb9\xa9\xf7\xb1\xdb\x91\xab\xcd\x46\x85\xa7\xb0\xad\xb4\x8b\x1e\x58\x48\x4f\x04\x26\x5a\x3b\xcb\x8f\x93\xf4\x61\xb7\x92\x52\x34\xbc\x6d\x45\xa3\x5f\x05\x80\x93\xa6\x7d\x9d\x3a\x71\x67\x05\xec\xc2\xdd\x58\xb0\x27\x78\x0b\x73\x89\xb3\xcc\x99\x40\x10\x28\x21\x65\x0b\xfa\x74\x85\x95\xc1\xd5\x0f\x90\x68\x53\x91\x77\x11\x77\x8f\x72\xc1\xa1\x17\x7b\xcb\xb0\xd6\x55\x4e\x95\xbc\x8f\xcc\xf1\x6a\x3a\x30\x5d\x38\x03\xb6\xa6\x03\xa8\xda\x4f\x1b\x09\xaa\xc7\xce\x20\x58\xd4\x55\x71\x00\xe0\x88\x4e\xe3\xa5\xa9\xa6\xa1\xe3\x42\x2e\x30\x41\xe2\x8f\x2b\x4e\x20\x36\x9a\xfb\x54\x54\x7c\xb0\xfe\xcd\xda\x42\x75\x6a\x60\x8e\xdd\xd3\x77\x75\x5d\x7a\xc3\xbc\xe1\x96\xa7\x99\xa6\xd9\x59\xbc\x95\x5b\x1f\x72\xa9\x52\xfd\x64\x6e\x45\x52\xe6\x58\x72\xa4\x10\xcf\x05\x62\x7d\x2e\xab\x22\xb3\xf4\x3d\x6f\x8e\xa1\x56\x5d\x5f\x09\xdd\x97\x8b\xc2\x4a\x3f\x1e\x21\x7a\xf5\x19\x1e\x4d\x0c\x3f\xf7\x6f\xdc\x4e\xc5\x5c\xbc\x6c\x3d\x14\xea\xd3\xed\x59\xf5\x05\x26\xa1\x16\x5c\x8e\xf1\x33\xf6\x77\xc6\xd3\x89\xc4\x2a\x23\x4f\x62\x30\xd6\xfa\x81\x1d\x39\x47\xc0\x48\x16\xe3\x72\xd0\x4b\xf4\x24\xf2\x09\x74\x8d\x1c\x99\x93\x27\x9a\x96\x1d\xd3\x31\x93\x2a\x93\x2e\x94\xcc\x4e\x3c\x02\x3d\xc1\x8f\x84\x89\x82\x3a\x41\x29\x51\xc4\x39\xe7\x87\x09\x36\x94\x4d\x93\xa2\xe7\x97\xa9\x05\xe7\x58\x30\x86\x5a\xea\xda\xc2\xf9\x20\x22\xf8\x26\xa6\x9e\x52\x9d\x99\x9f\x8d\xc8\x5b\x8c\xd1\xd2\x56\xd7\x94\x85\xa3\x65\x3f\x9e\x97\x78\x4b\x01\x1e\x08\x4a\x5d\xcd\x5b\x9e\xa9\x2a\x68\x55\xd3\xb7\x4d\x4a\x63\x95\xa1\xb8\x2e\xb9\x9c\x58\x2e\x3a\x11\x05\x07\xc9\xb0\x26\x7f\xb0\x4f\x7c\xc6\x78\x66\x1c\x68\xb2\x7d\xa3\xaf\xd3\xda\x45\x80\xcc\x4a\xfa\x75\xa0\x8b\x31\xab\xfd\x0e\x17\x60\xfe\xb5\x0a\xa4\x56\x3c\xa6\xfa\xeb\x05\x14\xb2\x9b\xe6\x22\xb1\x5b\xd1\x1e\x7e\x7c\x53\x89\x36\xd4\xa6\x7d\x3c\x1d\x88\x82\x9f\xf6\x5c\x21\xb3\x25\x34\xc2\x35\xa9\x39\xe7\xa4\x1a\x65\x82\x65\x7a\x04\x88\x05\xf7\x07\x54\x2c\xd0\x8a\x7a\xae\xe0\x23\x81\x17\xb7\x2e\x3c\xc5\x5b\x96\x37\xe6\x71\xd9\x61\x30\x48\xb8\xe2\x68\x88\x5b\x54\xbd\xbe\xde\x9c\xca\xc1\x4b\x58\x88\x7c\x9a\x0b\x50\xa6\x93\x44\xe7\x31\x0e\x68\x95\x8b\xb8\x79\xdf\x66\x32\x11\xae\xfa\x9c\x95\xc4\x1d\x44\xc5\xb9\x56\xa6\x9c\x88\x9c\xcc\xa7\x98\x39\xe2\x81\x4c\x0a\x2a\x38\x6b\x25\x08\x3f\xde\xc8\x44\x6e\xf7\x1f\xcf\xb7\xcc\x99\x7e\x52\x2c\xe1\x53\x3e\x90\x99\x2c\x00\xba\x29\x98\x65\x1d\x15\xe6\x05\xcb\x04\xb7\x02\xba\xf2\xc3\x01\x8b\x9a\xb2\xa2\x3e\x90\x43\xae\xd8\x3c\x6f\xdb\x29\x90\x56\xe5\xa7\xc5\x45\xb3\xcd\x22\x7f\x6a\x62\x17\xb7\xce\x95\x58\x2b\xf1\x65\xf1\xe1\x3d\x0f\x9d\x2e\x93\x65\xc2\xb7\x43\x5a\xf8\x02\xab\x44\x63\xcd\x31\x7f\xc8\x16\xc7\xc3\xb6\xb0\xb7\xbb\x66\x8d\x67\xd7\x9f\xd5\xb8\x58\xe6\x00\xeb\x52\xe2\x51\xab\x54\x02\x2c\x34\xe0\xeb\x48\x35\x2a\xa5\x19\x47\x3f\x80\xe9\x16\xe0\x3a\xd0\x4c\x74\x24\x7a\xa3\x9e\x3d\x7d\x17\xd7\xb7\x18\xd8\x75\x6c\x15\xc3\xac\x00\x64\xd7\xb8\xc6\xaa\x4c\xc6\x58\x8e\xd5\x85\x81\xf9\xf1\x06\x63\x6f\x04\x51\x31\x2c\xd5\x48\x0e\x32\x41\x5f\x98\xb8\x2e\xcf\x1c\x86\x09\x7e\xf3\x98\xd4\xd0\x29\x37\x06\xc6\x00\x88\x49\xec\xe8\xe6\xe3\x39\x3b\x3d\xfd\xf6\xfd\x31\x96\x59\xc5\xca\x01\x1b\xe0\x5d\xf2\x7c\xf4\x7a\xb5\x9b\xfc\xd7\x10\x3c\xb0\x16\x58\x17\x79\xdf\x09\x39\x00\xb4\xa7\x0a\x64\x5b\xbc\xeb\xcb\x61\x68\xea\x13\x7a\xd1\x42\xe0\x71\x19\x54\xbc\x1e\x3c\x1f\xc8\x02\xb2\xab\xfc\x6f\x95\x1b\xd3\x20\xfe\x57\x48\xb1\x01\x4c\x9c\x13\x64\x85\x53\x2e\xf3\x40\xd3\x6c\x2f\xe1\x2d\xc4\xc4\xc1\x9e\x7b\x3b\x88\x75\x45\xf4\x9d\x50\xd2\xd7\xde\x27\xa9\x92\xac\x4c\x05\xf8\xda\x11\x7e\x4a\x0f\xa9\x82\x6f\x3c\x42\x17\xf3\x8d\xad\x0d\x02\x74\x10\xaa\x02\x98\xc3\x43\x50\xf1\x50\x67\x99\x7e\x42\x35\x27\xcb\xd8\x83\xb2\x74\xfc\x41\xcc\xcc\x07\xf6\x0d\xab\x0e\xde\x5d\xa3\x0f\x91\x6c\x50\x45\x2d\xae\x12\x06\xc4\x6b\xbf\x57\x2c\x92\x75\xdd\xd2\xda\xd1\x50\x09\x51\x1a\x2c\xdd\xcd\xe0\xc1\xab\xb0\x32\xdb\x4b\xc0\x24\xea\xdd\xab\x6f\x02\x72\x50\x75\x94\xff\xd4\x6a\xc9\x08\x01\x1c\xc6\x0f\xc7\xf6\xba\xe9\x88\x5a\x0e\x27\x17\x23\xa9\xd5\xe2\x01\xe1\xef\xbb\x1f\x52\x33\x05\x9a\xab\xc8\xde\x52\xfd\x0b\x62\xcd\xa6\x6a\x5e\x2b\xd6\xb7\x5a\x82\x0b\x8d\x17\x15\x0c\xf5\x2c\x92\xea\xdc\x06\x2a\xd5\xc2\xab\xc3\xd3\x55\xde\x5e\x68\x53\xd9\x43\x08\x24\x89\xc8\x21\x95\xf0\x9c\x72\x32\x21\x5a\xd1\x58\x3e\x0a\x56\x60\xc1\xee\x4e\x55\x68\x7b\x1a\xf3\x02\x50\x7e\xc9\xaa\x69\x45\x26\xae\xf8\xc8\x99\x05\x02\x2d\x3a\x63\x4a\x66\x73\x67\x88\x2b\x56\x2a\xbc\xb5\x96\xd5\x0b\x40\xf0\x01\xf3\x4c\xc2\x0d\xb9\xc3\x90\xed\xd2\xd9\xf1\xe2\x23\x8e\xba\xf2\x32\xe3\x06\x7c\xd6\x8b\x00\x9b\xe7\x5d\xcf\xbb\x17\xe3\xfb\xd5\x8a\x1b\x8b\x0e\x02\x94\xe9\xad\xc6\x2f\xdb\x27\xa5\x87\xef\xa8\x0a\xbf\x6d\x00\x6e\xa6\xfd\x5c\x17\x3a\xd1\x59\x0b\x05\x10\x10\x6b\x13\x64\x21\x53\x7a\x8d\x60\x6e\xec\xf6\xeb\xbc\x2a\x0b\x21\x95\x35\x76\x95\x55\xca\xf3\x34\x66\xb1\x84\x9b\x38\x53\x05\x7f\xee\xb1\x9f\x55\x77\x9a\x8b\xa1\x7c\x16\x69\x54\xf2\xc9\xce\x32\x7f\xa4\xa4\x9d\xab\xb3\xeb\xb3\xd0\x93\x4b\x7b\xc4\xc6\x47\xdc\xb0\xa9\xc8\xd9\xcd\xc7\xf3\xee\xf7\xef\xdf\xff\x19\xd4\x3b\xcb\x8b\x3e\x9c\x9c\x3c\x3d\x3d\xf5\x24\x57\xbc\xa7\xf3\xd1\x09\x37\x46\x8e\xc0\xe7\xec\xab\x0a\x77\x9d\x54\x75\xad\x55\xd7\xf7\xef\x66\x57\xa9\x74\x5f\x1b\xa2\x29\x93\xb1\x3d\x3b\x93\x59\xa2\x27\x53\xae\x66\x60\xac\x98\xcc\xba\x49\x69\x0a\x3d\xe9\xba\x3e\x5e\x2a\xfc\x23\x36\x0d\xf8\xe5\x3f\xcb\x32\xf8\x8b\x90\x16\x6b\xca\x10\xe9\x3b\x80\x66\x47\x99\x2b\x98\xde\x42\x28\xd3\xd5\xd6\x90\x09\x68\x79\x35\x45\xcf\x54\x64\x24\xe3\x2a\xf8\x13\xa2\xbc\xa3\xc8\x5e\xb3\x27\xdf\x51\x0f\x46\xf3\x7f\xff\xab\x87\x1f\x0a\x55\x58\x84\x04\x09\x17\x8b\xb1\x20\xcc\x2d\x61\x14\xeb\xdc\xcb\x9b\x94\x69\x13\x84\x4c\xcb\xa0\x9d\xbf\xb7\xa2\x3f\x7d\xff\x9e\x25\x63\x9e\xf3\xa4\xb0\xd7\x3e\xd3\x6a\xd4\x73\x4d\x41\xec\x45\xa0\xd8\x4c\x3f\x01\xa4\x97\x11\x08\x5f\xab\x2c\x95\x90\x49\xfc\xaa\xce\xd9\x61\xf7\xd0\xbf\x6c\x0a\x4e\xa5\xb1\x85\x22\x69\xc9\x61\xdf\xce\xbd\x1c\xd0\x0f\x1d\x12\xff\x9a\x78\xdb\xb5\xa4\x81\x16\x47\x00\xca\xe3\x04\xcc\xbf\x2a\xf1\x5c\x54\x44\xbf\x43\x47\xc4\x55\xe4\xca\x85\x1d\x49\xe2\x2a\x9b\x07\x90\xa9\xa0\x73\x37\x2a\xc0\xcc\x1b\x16\x1d\xc1\xdd\x39\xac\xe3\xb4\x3d\x75\xba\xea\x2f\x24\x4a\xce\x95\xf6\xf3\x45\xbf\xc3\xee\xce\xfb\x1d\xbb\xcb\xb7\xe7\x77\xfd\xca\x8e\xdd\x9d\xb7\x2e\x96\xb4\x7b\x0e\x80\x04\x7b\x35\x0b\xc0\xab\x59\x35\xe9\x78\x00\xe7\xa2\x52\x93\x1e\xbd\x3f\xce\xa8\x13\x59\x74\x10\x27\x8c\xa0\x56\x1d\x29\x2d\x40\x18\x23\xfd\xd5\xeb\x83\xd5\xcf\x92\x94\xde\xf1\xc8\xe0\x01\x5a\xd9\x03\xfb\xd3\x52\xff\xb7\x86\xd2\xfd\xe8\xd8\x4d\x4b\xaa\xd1\x38\x2c\xb3\x6c\xae\x30\x7e\x7b\x0b\x53\x0b\x7f\x6a\x6c\xef\xa9\x16\xe9\x73\x28\x64\xce\x04\x93\xf0\x3c\x97\xce\x12\x2c\x4d\x75\xaa\x48\x49\x6b\x06\x20\x2b\x8b\x06\x3a\x3a\x88\x94\x6d\x84\xa9\xad\x86\x00\xca\xc9\xa4\xc4\x1a\xff\x7c\x08\x40\x82\xb9\xa0\x0a\x7b\x77\x15\x15\xc4\x8d\x07\xcd\x4e\x80\x1d\x8a\x52\x5d\x36\x0b\x9e\x5e\x4b\xf7\xae\xfa\x8f\xdf\x7d\x60\x37\xd5\xbc\xcb\xfe\xe3\x77\xec\x0c\x7b\xe8\x61\x9b\xef\x1b\xda\x7c\x1f\xb7\xf9\xf8\xf7\x8b\xeb\x6a\x1b\xf6\xb1\xcc\xb2\x19\xfb\x7b\xc9\x33\xb4\x79\x5e\x00\x24\x2f\xdb\xd0\x75\xca\xa7\xf2\x17\x91\x9b\xd5\xa1\x9c\x67\xfd\x2b\x6a\xe8\x23\x99\x40\x65\xc0\x67\x22\x05\x7c\xc5\x09\xf7\x3c\xce\x1f\x7b\x1e\xc9\xba\x78\x28\x7b\xc0\x70\x22\x91\x2f\xd1\xea\x51\x80\xb8\x94\xe8\x91\x92\xff\xf4\xbd\x79\x0e\x05\xd0\x9a\x05\x92\x39\xe5\xd0\x5b\x3b\x1e\xc9\x3c\x17\x60\x05\x28\x55\xd4\x83\x83\xcf\x6f\xc8\x5c\x18\xc9\xc2\xe5\xa2\x24\x7a\x32\x29\x95\x2c\x66\x27\x00\xd3\x20\x07\x65\xa1\x73\x73\x92\x8a\x47\x91\x9d\x18\x39\xea\xf2\x3c\x19\xcb\x42\x24\x45\x99\x8b\x13\x3e\x95\x5d\x18\xac\x02\x11\xbf\x37\x49\xff\xe4\x33\x98\xd6\x5f\x7b\x7f\xab\x56\x2c\x7d\x20\x13\x60\x0c\x71\x48\xea\x24\x15\x44\xbf\xc6\x07\x9f\x0a\x01\xd0\x25\x58\xa8\x9a\xbf\x7b\xf7\xae\xe9\x76\xb3\x25\x56\xcd\x2d\xac\x88\x3b\x36\x81\xf2\x42\x4f\x64\xb2\x35\xee\x21\xaf\x54\x5c\x08\x27\xd7\xa9\x38\x37\x97\xb7\x77\x71\xaa\xb4\xf4\x66\xa7\x40\xdb\xc3\x99\xc6\xb5\x1e\x0a\xe2\x6a\x3e\x98\xd9\xab\x5f\x88\x58\x0a\x15\xfc\x4d\x39\x98\xc8\x02\xf1\x1d\x85\x29\xb0\x8c\xc8\x39\x57\x96\xd3\x0f\x04\x2b\xa7\x29\xea\xd6\x57\x8a\x9d\xf3\x89\xc8\xce\xb9\x69\xce\xc5\xd9\xe5\x89\x06\xe2\xd6\xb5\xeb\xb7\xc1\x99\x76\xce\xa0\x1d\x62\xc4\xa3\xdd\xf0\x93\x28\xf8\x8a\x94\x1e\x52\x08\x70\x6f\x0e\x8d\x77\x4c\x2d\xb0\xff\x81\x60\xb5\xe2\x88\xa0\xf0\x55\x65\x4e\xee\xfe\x29\x51\x3c\xe9\xfc\x81\x04\x34\x97\x0b\x3f\x98\xa1\x51\x38\x68\xdb\x0d\xb7\x12\x44\xc1\x85\x12\x3e\x84\xb2\x93\x66\xe0\xcb\x44\xc9\x62\x5e\xa9\xb7\x52\x00\x0a\x86\x44\x93\x53\x7c\x8d\xba\xc0\xd4\x51\xd4\x0d\xf0\x57\x02\x02\xb1\x7a\x3a\xfc\x44\x64\xb4\xd2\xf7\xfd\x01\x77\x8a\xc9\xfd\x41\x6b\x2a\x42\x1f\x7e\x69\x02\xd2\x8f\x2a\x39\xbe\x14\x11\x59\xcf\xe4\x04\x72\x4e\x23\x51\x5f\x65\x89\xf2\xcf\x2b\x63\x03\x78\xd8\x2e\xb1\xd5\x2e\x51\xb1\xf0\xd9\xca\x61\x1d\x11\xe0\xed\x41\x58\x30\x24\x02\xd5\xb9\x53\x27\x07\xcd\x06\x07\x68\xf2\xe8\x65\x80\x03\x5a\xf2\xf9\x05\xf9\xaf\x0d\x25\xe5\x9f\xa4\x69\x63\x30\xf1\x6d\xab\x12\xb3\xbb\x6d\xfe\x3e\xc1\x59\x6c\x11\x7e\xbb\x97\x6c\xbe\x9c\x64\xd3\x74\xf1\xe7\x0a\x7a\xac\xd8\xd8\x85\x1d\x6d\x47\x41\xf0\xf0\xbf\x92\x2b\x76\x2f\x84\x7c\x2d\x42\x88\x3d\xad\xed\x45\x10\x20\x5a\x4d\xe2\x47\x4b\xde\x82\xc7\xfe\x6d\x33\x10\x20\xeb\xbb\x63\x22\xe2\x11\x4e\xb0\xbf\xae\x8f\xcb\x6b\xce\xc1\xef\xce\x39\x0c\xb2\x0c\x79\x53\xe0\xb9\xd1\x13\x81\x1e\x2b\x67\x0c\x43\xc4\x2d\xa8\xa7\x15\x60\xa6\x52\xa1\x34\x18\x48\xf5\x44\x90\x83\xa1\x5a\x13\xab\x5e\x80\x70\x31\xb3\xa9\xa7\x9d\x34\x8d\xf9\x57\xc0\xa8\xc2\xdc\x93\x27\xcb\x01\xf8\x83\x50\x27\x43\x2e\x33\xc8\xce\x1b\xf1\x4a\xa4\x4c\x78\x40\xbc\x65\xaf\xdc\xff\x91\x58\x60\x00\xe6\x3b\xaf\xa5\x19\x37\x6d\xc0\x85\x6f\xed\x02\xa9\x8c\x29\x81\x1d\x0c\x78\xf2\x00\xf0\x27\xe0\xb9\x28\x24\x84\x2f\xcd\x50\x92\xa7\xc8\x0a\x86\x97\xa1\xa8\x4a\xa2\x3b\xb1\xe9\x86\x59\x7c\x94\xb9\x29\xee\xe4\x44\x98\x82\x4f\xd6\x4e\x69\xda\xa6\xfa\xf5\xce\xd6\x66\xc5\x0c\x7f\xe2\x5f\xf9\x04\xe7\x92\x69\x5a\xcd\x2c\xa0\x09\xdb\x0f\xb5\x81\x47\x7e\xd1\xe9\x00\x81\x87\x25\xdd\xdd\x0e\x7d\x92\x49\xae\x57\x6e\x53\x54\x5c\x5e\x4e\x20\x48\x83\x34\x7b\x1c\xb2\xa5\xe8\x43\x7b\x49\x98\x1e\xa0\x33\x74\x81\xdd\x61\x2f\x14\x7e\x2d\x42\x61\x64\x99\x6a\xfc\xa4\x95\x2e\x56\xec\x34\xe6\x01\xf0\xac\xc7\xce\xd8\xb8\x9c\x70\xd5\xcd\x05\x4f\xc1\x15\x11\xb5\xf4\x4e\xbc\x28\x58\xd2\xee\xf5\x94\xca\x10\xf7\xd8\x27\xfe\x2c\x27\x3c\x63\x99\x50\xa3\x62\x1c\xe2\x9b\x0a\x2c\xec\xf6\xf0\x03\xc6\x58\x65\x72\x90\xf3\x5c\x0a\x13\x85\x1a\xc6\xb1\x20\x14\x60\x4b\x81\x85\x25\x94\xf2\xfe\xfe\xbb\x87\x1f\x36\x43\x27\x30\x2d\x44\x22\x8c\xed\xaf\x4b\x45\x1b\x7d\x8f\xe4\xa5\x57\x09\x50\xbc\x1b\x8b\x10\x7b\xe8\x69\x80\xbd\xb2\x03\x5d\x16\xf5\x20\x17\x09\x05\xa5\x14\xfb\xec\x2f\xa7\xce\xe1\x12\x27\x01\xcd\xce\x7b\xff\x4c\x8f\x5d\xf6\x46\x3d\x76\x23\x20\x84\xe3\x56\x14\xe7\x4d\xad\xa2\xdf\x0d\xe1\x62\x48\x43\xf2\x2f\x98\x0d\xb1\xe8\xe3\x40\x24\xbc\x34\x50\xe9\x8a\x27\x05\x80\x53\x83\xb8\x8b\x82\x2e\xc6\x1e\x44\x5d\x79\x61\x73\xc1\x1a\x5b\x59\x6d\xf3\xac\xf2\x75\x56\xd8\xdd\x0c\x66\xa0\x5e\x3a\xcf\x67\x6e\xc1\x87\x3a\xc7\x68\x02\xcb\x46\x32\xf1\x4c\xa7\xc7\xad\x1b\x10\xe6\xba\xf4\xcc\x8a\x5c\x8e\x46\x96\x0a\x72\xef\xdd\x03\x10\x5b\x91\x09\x77\xc3\x68\x76\xab\x96\x80\xf6\x2e\x6c\x4a\x9b\xe2\x46\x51\x9a\x05\xed\x24\xd8\x70\xdd\x2e\x85\x33\xd4\x61\x10\xe5\xfb\x5b\x35\x4a\x8f\x50\x98\x7e\xdb\xe8\x5e\xd0\x80\xaf\x94\x29\xb8\x9a\x17\x00\xea\x38\x7d\x17\x0d\x83\x95\xf4\x6e\x3c\xba\x4c\x14\xdd\xe7\xd9\x3f\x87\x9b\x0c\xca\x40\xf5\xe4\xb5\xcf\x51\x93\x92\x78\x8b\x5d\x2d\x95\x48\x78\xc1\xa3\xd0\x73\xbc\xab\x38\x84\xf8\xd6\x44\x76\x47\x9d\x83\x91\x1c\xaa\x1a\x1e\x86\x5c\x8c\x42\x2b\x7c\x7b\x51\x48\xf1\x6a\xa7\xf7\x1d\xb9\xb6\xa3\xef\x1e\x5d\x5b\x39\x3d\xeb\xb0\x5f\x79\xae\xa4\x1a\x1d\x77\x98\x12\x4f\xe4\x64\x4e\x1c\x99\xc6\x6c\xc7\x05\xc5\x9a\x97\x2f\x7c\x4b\xab\x43\x10\xad\x5e\xd1\xf2\x40\x5b\xba\xd4\xec\x00\xb6\x80\x97\x35\x35\xac\x32\x52\xbb\x36\x55\x17\x2c\x9e\x24\x57\xd0\x7b\x6f\x93\x7e\xcb\x0a\x79\x1b\x9b\x34\x62\x94\x56\xb6\xd8\x2d\x74\x7d\x8f\x17\xf6\xb9\x29\x1d\x6b\x6b\x93\xde\xeb\x14\x5f\xb5\x4e\xb1\x8d\xa1\xf9\xa5\xd7\xca\x4f\xf7\xed\x1b\xb4\xdb\xb2\x95\x57\xb0\x62\xdf\xd6\x65\x9d\x46\xe6\x82\xad\x7c\x26\x62\x9c\x02\xa4\x95\x13\x56\xf4\x10\x45\x06\xd3\x61\xb2\x27\x7a\x58\xfc\x00\x25\xc9\x27\x6e\x4e\xa0\xb6\xd6\x74\x2a\x94\x53\x2d\xa4\x2a\x75\x69\xb2\x19\xd6\x52\xb0\x62\x3f\x80\xf4\xb6\xc1\x2e\x5a\x6d\xb3\xbc\xf6\xa1\xac\x3a\xc1\x30\xb8\x24\x8e\xbe\xc3\x11\xa3\x0a\x89\x4c\xc5\x14\x6c\x2c\x78\x5e\x0c\x04\x2f\x60\x20\xbb\xb6\x56\xda\x4f\x7c\x26\xe3\xcb\x17\x31\x11\x05\xc3\x10\xcc\x16\xc5\x03\x4f\x13\x69\x49\xac\x92\x6b\x84\x50\x6c\x20\x86\xf6\xbe\x56\x17\x66\x11\x54\x70\xc1\x57\xda\x12\xae\xa2\x33\xf3\x34\x16\xae\xb0\xac\xdf\x0b\x4b\xc9\xd5\x48\x53\xdc\xb6\x5d\x00\x33\x46\x84\xbc\x50\x43\xa6\x9f\x71\xa5\xc0\x1d\x31\xd1\x8f\x1c\xa3\x73\x4f\x7b\xa7\x7f\xd9\xad\xa4\x89\xc7\x6b\xd9\xce\xcd\x4d\x7d\x15\xed\x58\x78\x23\x9f\x0b\xa1\x0c\x50\x30\x77\x2b\x7f\xbc\xbb\xeb\x5f\xa9\x51\x2e\x8c\xa9\xa1\xb3\xcc\x55\x43\xa9\xb6\x0c\xc9\x78\x80\x7c\xed\x20\xfd\x18\x67\x94\x99\x6d\x79\x17\x55\xc8\x2e\xf3\xcc\x54\x01\x34\xa6\x0e\x04\x6f\xa8\xf3\x27\x9e\xa7\x21\xc7\xcd\xbd\xbd\xfa\x5e\x52\xcb\xf5\x15\xa7\xf9\x55\xa0\x79\xfd\x40\x3d\x2e\x3b\xd6\xd4\xa6\x22\x8a\x46\xd5\x9b\x5d\x58\x72\xe0\xf9\x3a\xc2\x34\xa4\xb4\x22\x8f\x60\x1b\xcf\x7e\x51\x64\x56\x4b\xcc\x1c\x69\x3c\x5c\x0c\x1f\x71\xab\xa3\x86\x85\x46\x11\xd8\x17\x2c\x27\x99\xa3\xc7\xce\x7d\xc0\xae\x2c\x00\x5d\xcf\x51\xdc\x28\xaf\x20\x95\xc6\x95\x91\xf1\x97\x37\xb0\x42\x48\xc5\xb7\xdf\xb8\x3f\x80\x52\x4d\x88\xe2\xf9\xf3\xcd\x4f\x8c\x87\x48\xab\xc1\x8c\xdd\x7c\x3c\x67\xef\xff\xfd\x2f\xdf\xf7\x98\x1d\xac\x71\x91\xc8\x23\xa9\xdc\xa9\x39\x3c\x39\xa4\x50\xad\x08\x37\xa1\x03\x68\x38\x53\x78\x05\xbe\x5e\x9f\x03\x06\x1e\xd3\xc4\x37\x49\x57\xe0\xc5\xb8\x45\x74\x76\x9f\x9a\xc5\x98\xad\x76\x21\x7c\xaa\x01\x8f\x2d\x93\xb0\x1f\xee\xb8\xe3\x8c\xe1\x65\xc2\x2f\xd4\xca\x9b\x40\x42\x34\x35\xea\x0c\x1f\xd8\x37\xec\xf2\x99\x27\xc5\x07\xf6\x09\xe6\x84\x9f\xb1\xeb\x09\x1b\x29\xec\x6f\xd9\xac\xc7\xbe\x61\x7d\xc8\xea\x09\xed\xb0\xa4\x1c\x14\xbb\xf2\xcd\x31\xf3\x87\x99\x69\x26\x0b\xbb\x0b\xb0\xc6\x9f\xdc\x3d\x94\xe6\x5e\x31\x96\xc2\x70\x94\xbb\xc3\x82\xa2\xee\x07\xb3\xf0\x27\x37\xd2\x00\x20\x4f\xdc\x00\xce\xbc\x21\xb4\x0f\xdb\x91\x53\x12\x28\x15\xd6\x21\x21\xdb\x77\xfc\x00\xec\x93\xc3\x93\x43\x66\xc4\x94\xe7\xbc\xd0\xb9\xed\x96\xb6\x12\xe4\x71\xdb\x11\x26\x4c\x0e\x21\x9d\xc6\x4e\x82\x49\xe0\xf4\xf9\x8c\x41\xfd\x6f\xae\xdc\x18\xba\x00\xd1\x4a\x93\xd4\x43\x36\xa5\x65\xb5\x9d\xb8\x4e\x6d\x17\x3d\x76\xad\x0b\x57\xd7\x67\x18\x18\xb0\x9b\x0a\x6d\xc6\x94\xae\x11\x66\x26\xc0\xa1\xb1\x3d\xe9\x86\x37\xa4\xaa\x7c\x00\xa3\x06\x31\x5b\x85\xd3\xf8\x31\x41\xfd\x64\xa8\xf5\xc9\x80\xe7\x7e\x5e\xc2\xf8\x67\x27\x03\xfe\x4f\xb4\x44\xa7\x5a\xe0\xcb\xf8\xaa\x6b\x30\xe0\xff\x3c\x86\x74\xd5\x2b\x67\xe8\x84\x63\x76\x4b\xd9\x2b\x1f\xb0\xc4\xe8\xf2\xe3\x07\x40\xbf\x56\xee\xb0\x23\xb0\xbf\x12\xa9\x3b\xcf\xb8\x31\xbd\x5a\xcf\x06\x8e\x68\x91\x0b\x97\x26\xc9\x11\x17\x1f\x36\x4b\xf8\x83\x0c\xab\x92\x53\x3b\xe9\x90\xba\x12\x08\x23\x28\x34\x9d\x4c\xdb\x02\x8e\x32\xae\x2b\xa8\x16\xbd\x7b\x55\xff\x20\x26\xcc\x11\x6c\x66\xa1\x5d\xe6\x80\xbf\xf7\xf4\x62\x05\x80\xa5\x79\x39\x76\x6c\x00\x72\xdc\xe5\x65\x78\xed\x4d\x99\x89\x5f\xec\x95\x6f\xc7\x70\x7d\xf3\xaa\x3e\x6e\xf5\x1a\xca\x69\xd1\xb9\x61\xc0\x70\x28\x6a\x82\x86\x6f\x40\x83\x04\x25\x14\x0b\x4f\x7c\x70\x09\x86\xf7\xe5\xbb\x77\xef\x93\xb1\x36\x05\xfc\x25\xe8\x01\xd0\x72\x78\xf0\xbf\xf1\x81\x11\x56\x13\xb2\xb4\x1d\x1f\xb3\x2e\xfd\x97\xbe\x40\xd9\xd0\xf8\xff\xb6\x99\xc7\xaf\x28\xf3\x2c\x4a\xb0\xb3\x83\x72\x5c\xa0\xe3\x0c\x35\xa4\x58\x3b\x76\x58\x52\x01\x2d\xbc\x06\x8e\x8d\xc1\xdd\x47\xe9\x1e\x33\x52\xfc\x75\xb4\xa4\x04\xea\x57\xa3\xf0\x08\x14\x15\xbc\x8e\x87\xff\xfb\x10\x12\xe2\xfe\x74\xd8\x42\x8e\x00\xf6\xb2\xca\x06\xc5\x12\x9d\x65\x84\x95\x6a\x49\x0d\xb0\x24\x02\x4d\x9d\xc6\x5a\x7c\x58\xf9\x1d\x99\x47\x56\xcb\x6c\x6b\x1b\x4b\x5a\x5e\x01\x5c\x98\x1d\x5e\x00\x1a\xf4\x92\x33\x4f\x2d\xf0\x98\x57\x97\x3c\x2f\x33\x17\xed\x0d\x02\x09\x93\x6a\xa0\x4b\x05\x36\x3c\x85\xcd\x10\xd7\x09\x42\xce\xab\x29\x65\x91\x24\x12\xc9\xa7\x67\xca\x51\x43\xc7\x9a\x11\x1e\xb6\x24\x5a\x34\x92\x8f\x1e\xfb\xd3\xf8\xda\xcc\xd9\xac\x0b\x9f\x00\xbf\xa4\x95\x6c\x3b\x2c\xd3\x3c\x65\x03\x9e\x71\x40\xe5\x70\xa9\xe3\x28\x29\x58\xc2\x79\x7b\xfb\x53\x87\xe9\xe1\x50\xe4\x98\xfb\x8a\xbc\xfa\x11\x01\x3e\x01\x88\xc1\x1e\x6e\x51\x24\x71\x69\x4b\xd6\xc5\xc4\x2c\x50\xe3\x9d\xb5\xd3\x2e\x44\xb4\x46\x21\x9e\xc1\x4e\x8d\x82\xf0\xad\xd0\xe1\xaa\xcb\xe0\xc2\xbb\x57\x7a\xec\x96\xca\x00\xe6\x22\x13\xdc\xa0\x53\xd4\x04\x27\x52\xa4\x69\xef\x2d\xb8\x6f\xda\x82\xbb\x37\x72\x7e\x2d\x46\xce\xed\x53\x7a\xbe\x80\xa9\x33\x36\x49\x34\x80\x2a\x6e\xa1\x83\x03\x46\xe3\xd2\x85\x20\x4c\x46\x2c\x08\x63\x10\x6f\x1d\xe2\x55\x49\xee\xf0\xc4\xee\x85\x97\xc5\x4e\xbc\xcb\x55\xda\xc5\x48\x94\xc5\xb6\xaa\x72\x03\xe7\xee\xe2\xf5\xc1\x0e\x57\x1c\x95\xa2\x74\xaa\x59\x05\x5c\xec\x0d\xad\xd1\x9c\x0c\xf2\x82\xf6\x6f\xbf\x98\xcd\xc6\x6f\x27\x96\xec\xd0\xf4\xbd\xd2\xc4\xb4\x52\x04\x0a\x76\x26\x5f\x6c\x27\xcb\x62\xc8\xb5\x86\x5c\x78\xcb\xd2\x00\x39\xa0\x0d\x7c\x8e\xd9\x2e\x02\xd2\x2a\x82\xe9\x4f\x3a\xe1\xd9\x3a\x81\x2c\x37\x8e\xcd\xc8\x28\x06\xe8\x46\x0c\x01\xcb\x4c\x21\x78\x5c\x84\xd6\xe1\xb9\x12\x59\x13\x7c\x8d\xd0\xda\x39\xf6\xc2\xc1\xd5\x30\x7a\xc7\xc4\xd0\x11\xb4\x46\x10\x80\x62\xd7\x89\xfe\xdd\xf7\xd9\x87\xc4\x94\x22\xcc\xf0\xe6\x0b\x1d\xfa\x59\x85\xac\x5d\xc9\x94\x8c\xa1\xb6\xe6\xed\x85\x9b\x85\x8d\xb8\x09\x6c\xc7\x8d\xca\x42\x66\x3d\x7b\xa6\x8a\xbc\x77\xa5\x8a\xcf\xf9\x2d\x7e\x75\x15\x11\x0e\x73\x73\x39\x07\x8b\xe6\xd6\xfe\xd6\xaf\x7f\xa1\x56\x04\x2b\x44\xad\x9a\x94\x0a\x47\x07\xf7\xc2\xee\x5b\x16\x76\xd7\x0a\x57\x88\xd3\x92\xe7\xb6\x77\x61\x77\xdb\x31\xe5\x7d\xbc\xc2\x5e\x94\x5f\x3b\x5e\xe1\x4d\x08\xf2\x2d\x4d\x41\xaf\x1f\xb3\xd0\x4e\x66\xdb\x75\xc8\xc2\xc2\x1b\x7e\x53\x66\xcb\x6c\xb5\x51\xab\x3a\xd6\x21\xda\xad\x5c\xb9\x4d\xe7\x68\x30\xac\x54\xa9\xb0\x22\x5c\x40\xec\x76\x25\xfe\xc8\x40\x83\x66\x1d\x12\x03\x9d\x19\x2a\xf2\xaa\x56\x5c\x60\x68\xf7\x14\x96\x2e\x60\xb6\x09\x88\x87\x54\xa7\xb4\x48\xc6\x80\x11\xae\x58\xae\xcb\x62\xce\xd7\xda\x88\xab\xea\x1d\x08\x75\x13\x74\x0b\x5e\x69\x3f\xbb\x82\xa2\xfd\xa8\x91\x21\x3b\x74\xa5\x19\xfb\xdd\xa3\xf8\xa4\x88\xe2\x13\x6a\x6d\x3a\x74\x09\xdb\x6f\x67\xa1\x67\x91\x9c\x3c\xb1\x57\x2d\x15\x8f\x92\x1c\x0d\x9e\xba\xdd\xc3\xf0\x22\x7f\x25\x7a\xd8\xae\xe2\x7e\xa5\xf2\xfd\x7e\x60\xa7\x3d\x76\xd5\x0f\xa8\x63\xe4\x0d\x8d\xbd\xa7\x5c\xcd\xad\x12\x58\x14\xa1\xc0\x20\x9f\x4e\xc1\x2f\x72\xaf\x18\x79\x60\xfa\x4e\x9c\x05\x55\xd6\x7b\x9f\x40\x4b\x73\x1c\xeb\x5e\x7d\x8b\x80\x4b\xbf\x7d\xf8\x8d\xa5\x02\x81\x60\x73\xe7\x64\xca\x85\x3d\x35\x71\x48\x7b\x15\x19\xcd\x8d\xf1\x5e\xdd\x17\x2c\x1a\x68\x2c\xac\x85\x41\x23\xea\x93\x2f\xa9\xf3\xe1\x2f\xef\xe0\xf8\x80\x77\x81\xab\x14\x3b\xf9\xf0\xdd\x77\xef\xfd\x63\x3b\xbe\x1f\x34\x9e\x14\x83\x60\x18\xd5\x64\x51\x8a\xc9\x5d\x70\x58\x9b\x1c\xd5\x70\x54\x23\x43\xfe\xdc\xb1\x73\x60\x7f\x63\x3a\x39\x15\x37\x71\xac\x0b\xc0\x19\x47\x75\xc9\xf9\xdb\xbd\x73\x34\x42\x7f\x13\xe9\xfc\x37\xee\xd5\xbd\xfa\x11\x53\x15\x14\x96\x13\x9a\xe6\x22\x91\x46\xdc\x1f\x90\x17\x1f\x98\x70\x7c\x40\xed\x85\x71\xc1\xd4\xce\xe2\x0b\x47\x4f\x17\xf3\x87\x97\xbc\x82\xf7\x07\x43\xad\x7b\x03\x9e\xf7\x12\x3d\xb9\x3f\x38\x66\x3a\x67\xf7\x07\x4f\x32\x4b\x13\x9e\xa7\xf7\x07\x9d\x45\x1f\xf3\x50\x8e\xe4\x34\x27\x54\x7c\xf7\x26\xc1\x53\xba\x8f\x7c\xd3\xb3\x9f\xc1\x4f\xe0\x61\xf2\x0d\xbd\x83\x9f\x1d\x7e\x73\x88\xfa\x0f\x9f\x4e\x05\xcf\xed\x95\x92\x85\x11\xd9\xd0\xde\x87\xe0\x51\xb9\xb8\xbe\xa5\xde\x51\x94\x44\x57\x26\x1e\x70\x0f\xce\x0f\x60\xb6\xec\xff\xe8\xd2\xae\x9f\x3d\x87\x84\xe8\x52\x1b\x5f\xf8\x04\x8e\x14\x56\xfc\x3f\xff\xd3\x8e\x18\x46\x7a\xe3\xce\x4a\x28\xf4\x3b\x7f\x5e\xe0\x25\x02\x2d\x53\xb5\x6b\xff\xc4\x67\x78\x6d\x87\xcc\xd1\x19\xda\xc7\x0e\x11\x57\xf4\xdd\x4e\xbc\x8f\xdd\xca\xe1\x96\x76\x93\x7b\x18\x8e\x3e\x6c\xd8\x58\xf0\x14\xef\x9d\xb0\x04\xca\x52\x4e\xdb\x65\x8f\x7d\x5b\xe9\x3e\xcc\x91\x08\xed\xc6\x9f\x29\x74\xf8\x12\x9c\xd6\x72\x38\x94\xcf\xec\x08\x82\x90\x1c\x07\xc1\x3d\x81\xd5\x3c\x76\x04\xc4\x2f\xb2\xfd\xc2\x06\xfa\xa4\x1d\xcc\x2e\xec\x54\x8d\x5e\xce\x97\xd4\x00\x6b\x55\x5d\x16\xb0\x66\xa0\xb5\xc1\x98\x12\x13\x8c\xc2\x15\xf4\x78\x92\x06\xf6\x49\x33\xf1\x2c\x4d\x1b\x33\xca\x97\x89\x41\x3a\xb3\x8c\x0a\xe0\x1f\x1d\x07\x87\x62\x0e\x19\xb0\x4b\x94\x14\x2a\x34\x17\x9c\x66\xa9\x56\x87\x2e\xc2\x80\xab\x19\x1e\x13\x76\x16\x57\x79\xd0\x43\x76\x48\x3d\xa2\xff\x14\x64\x97\x43\x8f\x1b\x18\xd5\x33\xa9\x62\x06\x6a\x97\x9f\x54\x68\x72\xce\x81\x16\xa6\x79\x4a\x5e\xb1\x3c\x4e\xa0\x81\x54\x23\x18\xbf\x1d\x25\x94\xf4\x00\xd7\x3f\xf4\x6e\xe9\xc9\x28\xd3\x03\x9e\xb9\x46\x0b\x0c\x31\x32\x0a\x64\x68\x61\x8d\xb9\xaa\x35\x6f\xaa\x53\x13\xb7\x71\x30\x09\xa1\x72\x1e\x50\xd0\x48\x54\xaa\xb4\x76\xaa\x3e\x12\xee\x68\xb2\x40\xc3\x02\x9a\x25\xd2\x85\xd0\x23\x1a\x00\x32\x9e\x08\x67\xd1\xf6\x1e\xbd\x5a\xda\x13\xcd\xb7\x97\xd8\xef\xfd\xc6\x80\xc0\x52\xc2\xe3\x47\x9d\xfb\x7c\x62\x53\x4d\x28\xee\xb8\xdc\x5c\x5e\x44\xaf\x80\x6d\x4c\x14\x10\xb7\xe2\x36\x17\x4d\x89\xa1\x38\x0c\xd3\x8f\x5e\x33\xc4\x02\x24\x77\xd5\x3c\x28\xcb\xf5\xc5\x44\x16\x96\xf8\x61\xb2\x8e\xa3\x6b\x94\xea\x6c\x25\xcb\xf0\x49\xe0\x05\xa1\x5a\x89\xb3\x3a\xd4\x03\x42\x9c\x59\xe4\xac\x7f\xe5\x51\xb0\x47\xca\x4a\x05\xb4\xde\x76\x91\x89\xe7\x72\x06\x8b\x11\x9f\xcb\xe0\xd3\xc5\x7d\xf1\xca\xb0\x43\x08\xe5\xf9\x83\xe5\x24\xc6\x9d\x2e\xc7\x6b\x89\xe3\xbb\x10\x04\x23\x6c\xf7\xee\x9a\xa1\xba\xed\xd1\x59\x69\x3d\x3e\x36\xb8\x4d\x3b\x68\x00\x73\xd4\xbb\x7a\x46\x74\x52\xfa\x99\x6e\x54\xf8\x28\x5b\x59\xab\xe6\x2c\x04\x87\x58\xbe\x82\xca\x87\x9b\x94\x77\x6f\x57\x7d\x00\x57\xc3\xaa\x30\xa5\x73\xa6\x34\x32\x2a\x62\x5d\x9d\x8a\x34\x05\x87\x47\x79\x55\xa5\x46\x8b\x5e\xdc\xd8\x02\xaa\xd8\x36\x06\x97\x22\x5b\xb5\x8a\x77\x3f\xdd\xfa\xc5\xa2\x3b\x56\x15\xa2\xbd\xdd\x59\x05\xb4\xd3\xa8\x4c\x91\x7d\xdf\x3e\xea\xb0\xef\xbe\x7b\x0f\x0b\xec\x91\x69\x27\x62\x32\xa0\xc2\x2a\x70\x96\x60\xbb\x1c\xe9\x0b\xd7\xc3\xee\x9e\x01\x59\x62\x16\xc4\x20\xea\xe3\x39\x92\x65\x41\x2a\x84\x80\xa9\x7a\x75\xa1\x50\x48\xc5\xcb\xbb\xc5\x38\xd7\xe5\x88\x6a\x4d\x5e\x5f\xc1\x30\xfd\x3a\x77\xdc\xed\x95\x2e\x26\x22\x5c\xf5\x61\x99\x0d\x65\x96\x39\xf1\xc3\xb5\xf0\x13\xbf\xbd\xbe\x7a\xf1\x6d\xbf\xfb\xe9\x76\x07\x91\x2e\xdb\x4b\x1b\x75\x87\xde\x22\x79\x03\x9d\x70\x4e\xe2\x58\xed\x8a\x5b\x2d\x6c\x58\x7e\xfa\x03\xf1\xd3\x8d\xfd\x36\x3f\x45\x9d\xb4\xf0\x25\xc6\xcd\x43\x9d\x96\xfa\x64\x42\xd1\x22\x3b\xc6\xae\x63\xfa\x2f\x6b\xf9\xb7\x07\x62\xe5\x36\xd8\x23\x5e\x95\xfa\x8a\x9c\x2b\x03\x57\x26\xe3\x33\x91\x33\x43\x45\xd2\xe6\xac\x20\x41\x41\x6e\x69\xf2\x58\x45\x55\xac\xb2\x40\xd5\x3a\x2b\x54\xda\x17\x7f\xf1\xaa\x0c\xd0\x1f\xfb\x99\x21\x00\x51\x22\xeb\x0d\x15\x8e\x02\xe1\x00\xe6\x1d\x2a\x8c\xd8\xfb\x7e\x42\xf4\x9e\xba\x2a\x32\x83\x95\x9c\xe7\x8b\xd8\x79\x8d\x01\x58\x85\x11\x05\xc8\x63\xc8\xe5\x16\x4b\x6f\x15\x5a\x20\x8d\x5b\x23\x20\x1f\x99\x18\x16\x4b\xea\xee\xee\xb4\x34\xd8\x02\xa7\x98\x9d\x6a\x1b\xe7\x9c\x6f\xd8\x24\x08\x52\xe1\x6a\xc7\x37\x2b\x91\x5c\x9e\x0d\x6a\x85\xd4\xfd\xa3\x93\x82\x61\xf6\xf3\xa2\xb0\x7d\x27\xd7\x65\x81\xa8\x2f\x64\x88\xb0\xe4\xd7\x53\x68\x9e\x69\x15\x0c\x1c\xee\x27\x84\x23\xb0\xdb\x2c\x14\x6e\xc1\x30\x93\x49\x61\x82\x8d\xee\x1e\x8e\xd4\xfd\x81\x53\x1f\x51\xee\x8a\xca\x6a\x44\x1c\xb3\x53\xeb\x9b\x4e\x09\xec\xb6\x33\x5b\x68\x05\x42\x1b\x4a\x3b\xb4\x14\x3f\x56\xd5\x53\xff\x12\xcd\xe8\xa5\x91\xe7\xa3\x98\xb6\xc7\xd3\xde\x55\xff\x87\x4c\x27\x0f\xcb\xae\x3d\xb6\x88\xdd\xe6\x60\xe8\x93\x49\x99\xf1\x9c\x9d\x5f\x5d\xdc\xb0\x23\x2c\x30\x7d\xfa\xef\xdf\xf6\x4e\xbf\xff\x4b\xef\xb4\x77\x7a\xf2\xed\x77\xf7\x07\x9d\xfb\x83\x6f\xdf\xbd\x3b\xfd\x90\x0e\xfe\xfd\xc3\x87\x93\xef\xbf\xbb\x3f\x38\xa6\x98\x71\xe3\x0c\x6a\xee\xe6\x4c\x75\x1a\xd2\x2d\x20\xa8\xf0\x1a\xc7\x89\x55\x94\xad\xae\x79\x68\x6c\xab\x5b\x0a\xce\xc5\x1b\x2c\x9e\x13\x31\x2d\xb0\xe2\x64\x34\x42\x3b\x28\x52\xd2\x48\xe2\x25\xaf\x8a\x27\x0b\x76\xc7\xdd\xbd\xaf\xaa\xf7\x8b\xb3\xd6\x64\xba\x0a\x8c\x01\x16\x23\xf6\x2a\xcd\xf9\x93\xae\xfa\x0c\x97\xf3\x17\x9e\xc9\xd4\xc5\x10\x23\x0d\x9b\x5f\x40\x34\x63\xd5\xd6\x70\x03\x28\x70\x58\xa5\x15\x63\xbf\xc4\xa5\xc4\xd1\x23\xc8\xff\xb0\xfd\x42\x02\xba\xfc\xd6\x53\x63\x34\x08\x22\xcc\x4e\x4c\x43\x1f\xab\xa5\xc0\x43\x94\xdf\x6c\x97\xba\x2c\x8c\x4c\x51\x0c\x80\x75\x87\xe2\xc0\xaf\x42\x1e\x5b\xba\x78\xe0\xc0\xac\xf2\xf0\xb4\xbb\xa6\x95\xcb\xb0\xe4\xb2\x56\xda\x45\x17\xe2\xc9\xee\xa0\xb3\x9b\x46\x5a\x87\x4f\x44\x02\xe7\x06\xd5\x63\xe8\xeb\x74\x8f\x80\xfb\xa6\xdd\xf7\x7b\x07\xf7\xd7\xe2\xe0\xfe\x97\x8c\x55\x5d\x42\xdb\x5a\x05\xab\xa2\x10\x1f\x25\x68\xb9\xa8\xd5\x81\x18\xf3\x47\xa9\xf3\x60\x58\xaa\x74\xbe\x8e\xf6\xb4\x43\xcf\xfb\x5c\x16\x41\xb3\x03\xbe\x4a\xe3\x17\xbb\xe0\xd7\xf0\xbe\x2f\x59\xe8\xcb\x36\x4e\xf8\x05\x6f\x2c\x92\x05\x5d\xf1\x21\xe2\x2f\x75\x51\x4f\x97\xf0\xf3\x86\xa2\x9e\xeb\x35\x52\xd0\xa0\xa2\x37\x19\x8a\x20\x1f\x8a\xec\xbf\x50\xe0\x47\x1a\x66\x95\xdb\x6e\x66\x4f\xba\x95\xfc\x4f\x7b\x7f\x69\x91\xba\xd4\xa2\x6c\x83\xc3\x16\x4f\x85\x29\x9c\x94\x8f\xa3\xb0\xc7\x4e\x97\x05\x66\xc1\xd3\x80\xa9\xc8\x81\x84\xf2\x86\xb1\xa6\x09\xd5\xd2\x26\x03\x70\x8f\x97\x06\x4b\x6d\xbb\x6a\xdc\x9f\x6f\x42\xd1\x2e\xef\x13\xc0\x42\x62\x3a\x67\x50\x2b\x5f\x8d\x3a\x91\xff\xcb\x79\xc4\x7c\x75\x05\x76\xe4\x16\xac\x56\xd8\x6b\x30\x83\x06\xc7\x0d\x1f\x20\x7a\x0f\x8b\x19\x2a\xc8\xc6\xfe\x0c\x3b\x0b\xef\x8f\x73\xdf\xe6\x58\xdd\x2f\x68\x71\xd9\xcc\x59\xbe\xfc\xa6\xb9\xe1\xc5\x9d\x61\xfd\x08\xe5\xe3\xcb\x76\x64\xf0\x5a\x72\xe8\xd7\x29\xf0\xd0\x6c\xe8\xd4\xeb\x9f\x8d\xe6\x63\xe1\x6f\x82\xaf\xa0\xe5\x69\x16\xfa\x91\x28\xfc\x2e\x3e\x31\x1c\x51\xe9\x16\x1d\x99\x18\xb1\x71\xe3\xc3\x53\x19\xf8\x92\x33\x14\xb5\xdb\xee\x28\x6d\x7b\x8a\xc2\xc5\x82\xfa\xcd\xaf\x74\x90\x44\x8c\x12\xf2\xd2\xb6\xd3\x25\x03\x69\x17\x4c\xb5\xe8\x95\x0d\x09\xf9\x76\x3a\xfb\x6a\x42\x6e\xc5\xca\x16\x0a\xb9\x6d\xd6\xf2\x3a\x92\xa4\x4d\x9e\xa9\x80\x4e\x0a\x2e\xde\x42\x33\x9e\x24\xce\x6f\xfd\x16\x2f\xa5\x1b\xfe\x92\xfb\x88\x4d\xde\xce\x55\x04\xd5\xe0\x2d\x5f\xc6\xce\x66\x4c\x1f\x4f\x69\xfd\x1c\x4d\x78\x2a\xe8\x10\x41\x31\x7d\x72\x26\x2d\x3d\x4b\x7b\xb1\xe0\x8f\x2d\x16\xbc\x00\x35\x5f\x91\x7a\x31\xd7\xb6\x0a\x5e\x50\x35\xfe\xec\x71\x23\xff\x08\x96\x9c\xb7\x84\x1b\xb9\xcc\xe4\xb8\x0d\x79\xdd\x5b\xab\xbe\x16\x6b\xd5\x1e\x3e\xf2\x8b\x19\x84\x56\xe4\x65\xec\xc6\x28\x04\x92\x54\x4b\xfe\x63\xdb\x56\xf5\x07\x81\x51\x5a\x14\xae\x48\x2c\x1e\x64\x79\xf6\xd9\x32\xff\x44\xe4\x88\x85\x06\xe2\x4d\x88\x4e\x03\x41\x83\xdc\xf8\xa8\x61\xac\xe6\x59\x72\x5a\xf7\x5b\xb6\x3a\xdb\x0b\xbc\x9f\xcb\x8e\x73\xf0\x7f\x22\xc7\x9b\x12\x7b\x55\x55\x95\x89\x9a\x35\x88\x4f\x56\x99\x02\xd1\x48\x51\xa5\x7b\x32\x5a\x62\x6e\x2e\x4d\x1e\x83\xe5\x16\x04\x66\xfa\x24\x5d\xa7\x48\xed\xf2\x4a\xf3\x81\xc8\x7c\xbf\x4b\xef\x35\x34\x32\x50\x0b\x1a\x46\x63\x48\x3e\xa5\xb8\xce\xae\x49\xf4\x54\x50\x48\xba\xa9\x04\xb4\x62\x20\xb9\x61\xc6\x93\x06\x08\x5b\x77\x40\x4b\xcc\x88\x09\x57\x85\x4c\xcc\x7f\x58\x09\xd1\xc9\x9b\x83\xb2\x88\xea\x93\x1a\xfa\xbc\x15\x65\xfd\x82\x18\x48\x30\xb8\x02\x9f\x95\x9b\x04\x6a\xaa\x46\x63\x3c\xa6\x8f\x1d\x9f\x3f\xbc\x80\xc5\xf5\x34\xd6\x99\xf0\x9d\x03\xda\x97\x57\x6b\xed\xe4\x2a\x1d\x53\x4f\x61\x01\xe2\xf2\xe7\xd7\xf5\x5d\xea\xb1\xcf\x76\x8b\x01\x53\xad\x36\x01\xf8\xc6\xba\xdd\x2d\x52\x5e\xd2\x2f\x7a\x2c\x60\x9b\x51\x38\xa9\x6e\x2a\xe9\x48\x34\x6b\x3b\xe3\x17\x3d\x13\x56\xd7\x72\xa7\x61\x6e\xed\xde\xfa\x99\x68\xf5\x0d\xa4\x3c\x87\x86\xe9\x27\x15\x7a\xde\x45\x48\xd8\x2a\xdd\xa8\x2d\x4b\xb0\x9a\x5b\x85\x25\xd8\x07\x73\x2c\x41\xab\x76\x76\xf8\xd7\x4f\xc2\xbf\xf3\xd9\x5c\xb8\xe2\x2e\x82\x5b\x17\x3a\xd1\x19\x1d\x5f\x4b\xaa\x89\x92\x0f\x04\xe3\x4c\x95\x13\x91\x83\x7a\xae\x11\x8d\x2a\xf5\x7d\xd8\x15\x48\x1b\x58\x82\x15\x2a\xa7\xb9\x7e\x94\x29\xa6\x5a\x79\xa8\xd1\xa0\xa9\x23\x8d\x03\xed\x46\x01\x14\xb2\x59\x74\xff\x69\x74\xab\x02\x70\xed\xd4\xa8\x29\x3b\xba\x3b\xef\x77\xd8\xcf\x17\x7d\x08\x4d\xbe\x3d\xbf\xeb\x1f\x3b\x4c\xd5\x39\xe3\x1c\x0c\xdf\x0e\xb8\x92\x1c\xe6\x67\x93\x46\x21\x70\x77\xe7\xfd\xd7\x8d\x5e\x9a\x77\x1d\xb6\x3c\xa9\x90\xbb\x42\x3b\x60\xe2\x1c\xb6\xe0\x57\xac\x59\x33\x57\x1f\x59\x51\x87\x62\x6b\x1a\x85\xaf\x4b\x4b\x99\x75\x08\xc1\xa6\xe1\x24\x4d\xa7\x99\x0c\xd6\x55\x4f\x46\x80\xb0\xb1\xcf\x75\xff\x41\x64\x8f\x45\xab\x4a\x28\xd7\x1d\x0f\x5c\x7a\x8a\xe4\x93\x65\x75\xca\x8e\xc0\x96\x43\xf9\x18\x4e\xa2\xf1\x84\xc9\x59\x6e\x82\xa5\xe6\xb8\xc3\x3e\xdf\xb4\xb2\xde\x44\x13\x63\x3c\xc9\xb5\xc1\x23\x4d\x32\x4f\xa3\x89\xc2\xd2\x5b\x48\xb8\x0c\x14\x6f\x12\x61\xb5\x36\x5f\x21\xb4\x7a\x05\x93\x53\xb5\x67\xc8\xee\xa4\x2f\xd7\x17\xee\xc8\x81\x95\x40\x6d\xce\x4c\x20\xc6\xa6\x50\x06\xc3\xf8\x79\x11\x4c\x77\x31\x8b\xb1\xca\x8b\xd1\x19\xf7\xfe\x0f\x38\xf7\xc7\xf5\xc4\x9d\xc5\x3e\x47\xf6\x42\xba\xf9\xe5\x6e\x62\xf8\xe5\x1c\x94\xe0\xb2\xf3\xeb\x02\xd6\xdb\x1f\xe0\xbb\xf9\x73\x6b\x39\x03\x1c\xc7\x2f\x74\x80\x03\xac\x0d\x75\x7b\x68\x58\xa6\x2d\x25\x57\x3a\x15\xad\x8f\x7c\xbc\x16\x5f\xf0\xcc\x7b\xcc\x5b\xe4\xb6\x5c\xcd\x5e\xe8\xc8\xbf\xf8\x89\xde\x55\x5a\xca\x97\x16\x8d\x6f\x23\xe9\x0e\x16\x37\x82\x2e\x9f\xdb\x3e\xb2\x63\xe1\x25\x32\x94\x1b\x67\xe7\x36\x7f\xdd\xec\x15\x0a\x77\xcd\x6e\x74\xd5\xd1\x00\xb8\xd0\x21\xab\xea\x93\xcb\x94\x71\x01\x80\x53\x77\xaf\xac\x28\x83\x6f\x85\xdc\x17\xf2\xfd\xe1\xa5\xbd\xa2\x93\x96\x70\x97\xe9\x5b\x1d\xc9\x50\xe7\x0c\xd0\x41\x2b\x5e\x30\x9e\xa6\xb2\x90\x8f\x22\x9b\xd5\xa9\xe3\xf5\xe7\xbb\x10\xcf\x0d\xae\xbe\xb6\x5a\x00\x24\xa2\xe1\x05\x68\xba\x34\x4e\x03\xf0\xbe\x14\xd5\x24\x1f\x57\xce\x86\x5d\xf5\xbb\xd9\x74\x65\x02\x98\x23\x79\x70\xbd\xb1\x6c\x96\xbf\x32\xd5\x2d\x44\x88\x09\x34\x1d\x62\x10\x2c\xce\xd5\xc5\xc0\xd2\xb9\xbe\x3f\xe8\xb0\xfb\x83\x4b\xff\x37\x44\xc2\xba\xa0\x7f\xf7\x78\x81\xd4\x18\x09\x61\xb2\xc0\x00\xd9\x90\x2d\x16\xa5\xe4\x43\xba\x2d\x26\x1d\x06\x7c\x53\x9d\xb3\xcb\x68\xf7\xfe\x23\x1c\x04\x98\x90\xc3\xaa\xe7\xca\x35\x33\x84\xeb\x04\xa6\x19\x63\xca\x09\x9d\xb8\xe1\xd0\x1e\x99\x4b\x4a\x53\x80\xb4\x44\x58\x7f\xea\xed\xc8\xd5\x87\x80\xbc\xb7\x02\x63\x76\xa3\xde\xdd\x78\xa8\xfb\xe3\x05\xfd\xc7\xe9\x74\x33\x5d\xb2\x27\x4e\xe8\xff\xb9\x2c\x04\xa0\x96\xc3\xef\x5d\xf0\x2c\xe1\x7e\x76\xa0\x21\x08\xaf\xe2\xd9\xe3\x2f\xb8\x64\xb0\x68\xcf\xd9\xff\x8d\xb6\x80\xfd\x57\x8f\xfd\x24\x1f\xc4\x13\xe4\xb3\xcb\xc6\xaf\x39\x26\x83\xb1\xd0\x11\x58\x17\x2f\x2c\xc7\x12\x01\x65\x17\x99\x5b\x34\x92\x90\x86\x1b\x0f\x00\x2d\xdc\xe8\x5a\xc7\x60\xea\x78\x44\x47\x46\xda\xcd\x33\xa5\xbd\x5b\xee\xdb\x4f\x3e\x02\xdb\xbd\xd1\xb0\x55\x2a\xa5\x76\x81\x1d\xba\x13\x52\x68\xf6\xdf\x76\x40\xff\x37\x3e\x8b\xec\xbf\x76\x24\xc3\xbc\x52\x54\x75\x4c\xd4\x57\xd9\x6c\x5b\x69\x11\xff\xb2\x65\x3b\x1a\x56\x61\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\xa3\xc6\x5d\x5e\x86\xd7\xee\xcb\x76\xec\xcb\x76\x6c\x2c\xad\xfc\x31\xca\x76\x2c\x16\xb3\xf6\x65\x3b\x16\x96\xed\xd8\x47\xad\xbd\xe5\xa8\xb5\x7d\x44\xd7\xd7\x12\xd1\xb5\xcf\x3f\xdc\xd7\xca\x58\x67\x7d\xf6\xb5\x32\x5e\x28\xd8\x6f\xf7\x25\x33\x56\x9b\x77\xf6\x25\x33\xf6\x25\x33\xf6\x25\x33\x76\x20\xc8\x83\x11\x61\xf5\x75\x72\x00\x8a\x15\x34\x73\x04\x5c\xac\x1e\xa5\x4e\x3c\x83\x41\x15\x20\xcf\xce\x9a\x80\xac\xc9\x17\x07\x3d\xf4\x6a\xd8\x96\xa6\x4b\x56\xff\xee\x1c\xbc\x65\x1d\x99\x51\xaa\x14\x40\xb1\x1c\xa6\x65\x15\x63\x31\x24\x39\x25\x5a\x19\x99\x0a\xcb\xf2\x1c\x90\x28\x1a\x2a\x3d\x4a\x5f\x33\x50\xe4\x98\x13\x52\x6f\x34\x04\x08\x8a\xd5\xac\xc8\xad\x30\xac\xc4\x53\xc0\x9a\x16\x3e\x57\x6f\x11\x26\xa5\x57\x93\xb9\x31\x72\xa4\x00\x86\x4f\x7a\xf8\x49\x6c\xbd\x57\x20\xf6\x0a\xc4\x5e\x81\xa8\x2f\xfb\x5e\x81\x98\xe7\x60\xbb\x55\x20\x80\xf4\xed\x4c\x8b\x20\xe3\xf4\x5e\x4c\xae\x8b\xc9\xc8\x70\x5f\x43\x56\x86\x2f\xb5\x2b\x89\xe5\x9b\x2e\xa9\x8b\x05\x6d\xc4\x9e\x3d\xbd\x6d\xf6\xb4\x6d\x79\xac\xb9\x5d\x5e\xd8\xeb\x0e\xa8\x4d\x5b\xb3\x77\xe5\xa7\xca\x85\xb5\xa3\xef\xfa\x75\x11\xc5\x9e\x67\x7f\xdd\x3c\x7b\x9b\x34\xce\xaf\x27\xbd\x72\x8e\xc0\xbf\x1a\x3b\x69\x57\x5f\xc3\x37\x0d\x89\x0a\x11\x2c\x3e\xe3\x03\x57\x24\xc7\x6b\x90\x6b\xe1\x2b\x07\x00\xe2\x55\xa0\xa6\x01\xa9\x98\x62\x1d\x88\xf4\xc7\xd6\x84\x08\xce\x38\x46\x0b\x1d\x73\x95\x66\x74\xc3\x51\x2f\xc3\x50\x33\x0a\xd0\x1e\xea\x3c\x42\x68\xbf\x3f\x18\x66\xfc\x51\xe7\xe6\xfe\x80\x54\xd1\x3c\xea\xd8\x2b\xc2\x10\xa5\x1a\xbe\x87\x55\x03\xc8\xab\x4b\x51\x77\x7c\x56\x2f\x8e\xd0\xe7\x39\x9f\x08\x08\xe4\x71\x70\xcc\xd0\x8f\xaf\x23\x01\x89\x8c\x51\xa7\x30\xcc\xa0\xfb\x06\xe5\x93\x87\x12\x42\x5d\x5f\x3d\x08\x3c\xf4\x4a\x63\xf1\x82\x62\xcc\x15\xfb\xf6\xcf\xef\xe2\xe8\x21\xa9\x58\x26\xd4\xa8\x18\x77\x18\xd5\x12\xe2\xc9\x44\x44\x55\x28\xba\xe1\xe3\xf7\x07\xf5\x80\x3c\x39\x99\x94\x05\x1f\x6c\x54\x85\x66\xea\x67\xfe\xca\x66\xb6\x68\xc9\xc9\x59\xaf\x1e\x30\xe4\x3f\x29\x4d\xa1\x27\x81\x01\x50\xb4\x15\x38\xb6\x21\x74\x18\xe2\xa9\x2a\xe5\x02\xfc\xae\xcd\xed\x51\x5c\x2c\x45\xce\x1d\x46\x1f\x51\x42\xb4\x89\x89\xe7\x22\x87\xc4\x5d\x1a\xdb\xcb\x1a\x86\xf6\xb5\x54\xf7\xc2\xe2\x2a\x61\xf1\xc5\xa5\xc4\x3d\x78\xc7\x5e\xea\xdb\xd7\x52\xfd\x72\x12\xe6\xab\x09\x97\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\x6b\x47\xa0\xbf\xa4\x22\xf8\x47\x2c\xa9\xba\x5d\x7e\xd8\xbe\xa4\xea\xbe\xa4\xea\xbe\xa4\xea\xbe\xa4\x6a\x23\x69\xf8\x4a\x4a\xaa\xae\x50\xc5\xb6\xb1\xbb\xec\x4b\xaa\xbe\xdd\x92\xaa\x8b\xb7\xfd\x55\x4b\xaa\xae\x0c\xd3\xde\x97\x54\x7d\xa5\x92\xaa\xcb\x0f\xc4\xbe\xa4\xea\xbe\xa4\xea\x6b\x96\x54\xb5\x1b\x13\x95\x54\x85\x63\xd4\xaa\xae\xaa\x7d\x71\x5f\x57\x75\x53\x1a\xa0\x53\xe1\x6f\xff\xe7\x47\x91\xdb\xa1\x2c\xb9\xfb\xae\x09\x33\x45\x5e\x82\x51\x7c\xce\x28\xeb\xc4\x42\xed\x9a\xd6\x6f\x7f\x5e\x2a\xf4\x9a\x02\x60\x58\x1b\x54\xcd\xf4\xa3\x7c\x16\x73\xaa\x60\xf0\xba\xf6\x9b\xdf\x64\x1b\xf9\x1e\x7a\x5e\x89\xf8\x7b\xc9\x55\x21\x8b\x25\x38\xf2\x75\xe7\x31\x8d\xb4\xbe\x26\x43\x7a\xb8\xe1\xca\x2c\xdc\xd0\xdd\x6d\xfd\x4d\xa9\x0a\x39\x11\xab\x52\x02\xe2\x66\x5e\x31\xe3\x21\x96\x83\xd8\x98\xd5\xed\xb0\xa5\x13\x64\x02\xd5\x24\xe5\x0f\x09\x6f\xa5\x3f\x19\xc4\x69\x0f\xd4\x11\x69\x7d\xd5\x7e\xa3\xc6\x79\xa9\x40\x88\xf6\x8d\x0c\x5e\x6d\x80\xa3\x8b\xbf\x40\x65\x5d\x8f\x12\x27\x70\x1e\xb3\x09\x57\x25\x20\x1f\x54\x72\x8c\xc1\x64\xa1\xf3\x00\xd5\x97\xeb\x47\x09\xae\xe6\x1c\xfd\xbe\x51\xa2\x03\x4d\xab\xaf\xd3\x90\xe3\xf0\xb7\x72\x20\x32\x01\x54\x00\xf3\xe7\xb1\xbe\x0a\xdc\x6b\x61\x74\xe6\xad\x4d\xf1\xe8\x80\x62\xfa\x8e\x9d\xc1\xd6\x1d\x89\xc2\xe1\xeb\x05\xdd\x28\x15\x05\x97\x99\xe9\x30\x23\x44\x93\x6f\x4b\xa8\xb1\x65\x31\x56\x2f\x32\x27\x0f\x62\x6a\xc0\xa1\x65\xb7\xfd\x84\x56\x11\xb3\x2c\x7a\x93\x16\xd0\xe5\x7b\x5f\xfd\x97\xf3\xd5\x63\x3c\xd2\xaa\x88\xa7\x1f\xb1\x55\x05\xe6\x4b\xa0\x2f\x2c\x9b\x81\xd1\x8a\xae\x0e\x55\xc4\x89\xc2\x54\x3c\x32\xdc\xf9\xcd\x55\xb0\xa8\xe0\x6f\xa0\x22\x95\x06\x0a\x4e\x51\x60\x14\x40\xd6\xb9\xfd\xf3\x01\x52\xf6\x39\x15\x12\x22\x79\xca\x5e\x36\x87\x50\xeb\xc3\xaf\x74\x2a\xd8\x7d\xf9\xee\xdd\xb7\xdf\xc3\xd7\x6a\xba\x20\xbb\x42\xa3\xaf\x83\x55\x23\xbc\x00\xfa\x72\x4e\x32\xde\x23\x97\x19\xa7\x8a\x45\x88\x2d\x83\xd0\x97\x76\x66\xbe\xa5\x13\x38\xec\xb5\x42\x31\x20\x17\x4c\xfc\x5e\xca\x47\x9e\x01\x6e\x4c\xfc\x6e\x2d\x1e\x8b\xbb\x6e\x58\xc2\x21\x8a\xeb\xfe\x20\x2f\x55\x72\x7f\xc0\x26\x72\x34\x0e\x5a\xa5\x5f\x38\xfb\x2b\xfb\x7c\x7e\xe5\x17\xf9\x08\x51\xe6\x2d\xdb\x7f\x14\xec\x27\xa9\xca\xe7\x88\x40\x1d\xcf\x81\x66\x58\x22\xe6\xa2\x80\xe6\x88\x98\x5d\x5c\xb7\xbd\x20\x97\xda\x55\xd3\xf9\xc4\x2d\xea\xc5\xf5\x2d\xfb\x09\x1d\x14\x37\x1f\xcf\xd9\xe9\xe9\xb7\xef\x8f\x5d\xec\x10\x5c\x7f\x5c\x9a\x2d\x63\xb2\xf6\x41\x15\x5f\x4b\x50\x45\xcb\xf4\x97\x2f\x9a\xe2\xa2\xe7\x85\xd1\x56\xd3\x5e\x20\xd2\x2e\x9b\xa7\x17\x6a\xb7\x13\x65\x2b\x89\xc5\x31\x67\xef\xed\x84\x67\x7f\xfb\xee\xf4\xdf\xdf\x7d\xfb\xed\xf7\xdd\xa9\x4e\xbb\x6e\x44\xbd\x49\x5a\x73\x18\xf0\x6c\x3a\x76\x38\x88\x1c\xa8\x60\x94\x15\xfc\x78\xda\x3b\xfd\xb3\x27\x06\x60\x62\x1b\x6b\xa5\x73\xaa\xc6\x47\xf7\x0d\xa8\x9a\x50\x58\x66\x10\x65\x1b\xbf\x44\x43\xc1\xc1\xff\xbc\x40\x49\x4c\xc6\x22\x2d\xad\x06\xbb\xdd\xb6\xdd\x86\x7e\x96\xc6\xfd\xf8\x66\x6c\xac\xb3\x94\x30\xd1\xc3\xc3\x44\x2b\x53\xe4\x1c\xb2\xbe\x6b\xd0\xc1\xc0\xc3\xdc\xf6\x91\xc6\x27\x4d\x55\x20\x05\xfe\x85\xbd\x21\x91\xb6\x63\xa4\xe5\x71\x48\x57\x12\x53\xa7\xa3\x8f\x4a\xc3\x94\xcc\x3a\x0d\xfd\xc5\x8c\x0d\xb0\xa7\x83\x70\x6c\xc5\xce\x0c\x11\x9c\x97\x07\x77\x36\xc7\x12\x39\x09\xe1\x35\xa3\x89\xec\x7e\x2d\x8b\x23\xaa\xa8\x14\x3b\x0c\x24\x5a\xa4\xb6\xac\x88\x5a\xad\x37\xad\x62\x71\x55\xf6\x69\x5f\x84\xee\x8f\x20\x15\xbf\xa9\x22\x74\x0b\x75\xe9\x6d\x4c\x6e\x7b\x81\xeb\x6b\x11\xb8\xf6\x25\xe8\x5e\x9f\xe7\xec\x3a\x80\x75\x81\x7c\xb2\x98\xe3\x44\xd2\x49\x55\x27\x5f\x20\xa1\x0c\xc1\x3b\x6c\x25\x0c\x92\x0b\x50\xb2\xac\x48\x92\xab\x59\x92\xed\x61\x51\xfd\x80\x76\x16\xd3\xb6\x4e\x83\xda\x74\xe3\x0f\xc3\x11\x36\x0e\x4c\x16\x81\x16\x29\x18\xc2\xd5\xc4\xd2\xaa\x49\x9c\x9a\x13\x9a\x7a\x58\x61\x0a\xb5\xe9\x79\x91\xca\xc7\x82\x0e\x6a\xa2\x1a\x47\x4b\x43\x54\xe8\x1b\x5e\x36\x95\xa2\xde\x95\xae\x2a\xe3\x97\x86\x4d\x44\x3e\x0a\xf1\x80\x58\x67\x03\x82\x97\x40\xaf\x8f\x1a\xf7\xd8\x99\x9a\x55\xfc\x07\x59\xc6\x30\x76\x94\xac\x76\x24\xee\x21\x9f\x45\x9b\x21\x4f\xa1\xf0\xf1\xc2\x68\x85\x39\x33\x6f\xec\x65\xd7\x19\x55\xe7\x5e\xc5\xff\xa2\x96\x68\x39\x99\x4e\x85\x4a\x45\xca\x8e\xc4\x73\x92\x95\xe0\xd4\x4e\xcb\x69\x06\xbe\x30\x73\x6c\xc7\xd9\x46\x30\x4e\xcb\x1c\xd3\x9e\x68\x0e\x1d\x26\x00\xfc\x1e\xaa\x27\xb0\x52\x49\xed\x6d\x96\x54\x98\x81\xb6\x1a\x87\x13\xb2\xe2\xec\xda\x58\x29\xa4\x6e\x0b\xdd\x11\x5b\xf6\xa9\x60\x7e\x19\x76\x9c\x76\xcc\x0b\x3d\x91\xc9\x0e\x8c\xf1\x88\x95\xef\xe9\xcb\x19\x46\x19\x9f\xdf\x5e\x5d\xe4\xf2\x71\x69\x79\xcb\x7a\xd3\x58\x89\xf5\x51\x13\x52\x65\x52\x09\x76\x7e\x7b\xc5\xa8\x55\x43\x75\x7c\xb2\x46\xb5\xa1\x31\xab\xbd\x80\xb1\xff\x2f\x17\x23\x69\x0a\x80\xe0\x89\x5d\x81\x76\x34\x29\x4e\x6f\x43\x27\x57\x33\x5b\x82\xd1\xad\xe2\x4a\xeb\x6d\xc4\xc7\x4c\x3c\xff\xa2\xb3\x72\xb2\x2c\x53\x61\xae\x6d\xe3\x56\xd8\x9f\x1f\xf1\xe7\xad\xf6\x20\xad\x1f\x8c\xa6\x21\x61\xa3\x26\x3f\x6c\x34\x0c\x6c\xb4\x63\x00\x66\x1a\xde\x6e\xb7\xe1\x47\x6d\x8a\x15\x75\x0e\x6a\x2d\x2b\xda\x16\x78\x66\x69\xd2\x89\x56\xc8\x0b\x89\x01\x39\x7b\x2c\x9a\x3d\xc8\x0f\x44\x15\x2c\x00\xcc\x9c\x2a\xe1\x94\x56\x7a\xbd\xf2\x99\x99\xc6\xa7\x9d\x38\x24\x73\xdc\x44\x72\x27\xb5\xc4\x2f\x46\xcc\xed\x15\x7b\x19\x1a\xfa\xda\x4f\xf1\x67\x9d\x25\x3a\x9e\x64\xa5\x1e\x5e\x04\x54\xee\xb8\xed\x6f\xdf\xfc\x06\x25\xae\x24\x0a\x29\x19\x87\x20\x5d\xcb\x28\x8a\x5c\x4e\x26\x22\xc5\x10\xc7\x47\x9e\xc9\x94\x17\x95\xea\x0f\xf4\x59\xe2\x8e\xf0\x51\x00\x6b\xbf\x57\xf7\xea\x12\xcd\xe8\xe6\x03\xfb\xed\x64\xa8\xf5\x6f\x54\xda\x03\xdd\xf5\xf8\xa8\x83\xff\x3d\xf9\x0d\xc8\xff\x6f\x0e\x33\xfd\xb7\xea\x1b\xa1\x2e\x14\x3c\x4e\x7f\x63\x3a\x67\xbf\x9d\x88\x22\x81\x56\x1b\xc4\xf9\x09\x9e\x7e\x56\xd9\x6c\xc5\x52\xc3\xac\x2b\x60\x5f\x70\x3c\x70\x28\xd1\x02\x37\x94\xc5\x70\xf0\xe9\x56\x26\x91\x43\x30\xea\xb8\xcd\xd0\xa5\x2a\x1c\x64\x3a\x0e\x63\xc1\x9d\x1b\x68\x9d\x09\xae\x76\xcf\x56\x2e\x1f\x65\x52\x54\x8d\x15\xf5\xa9\xbb\x26\x4c\x3c\x82\x30\x43\x96\x4d\xa8\xde\x50\xa0\x90\x64\x55\x3e\x50\x1d\x0b\xed\xab\x23\xfb\x2a\x3a\x00\x10\xc8\x87\xa2\x98\xc5\xb2\x6d\xc8\x7a\x06\x78\xfe\x60\x58\x85\x1a\xb8\x3d\x16\xd5\x11\xb0\x9d\x82\xec\x84\x55\x64\x68\x20\x14\x59\x9b\xe4\xc2\x89\x0f\xfd\xcf\xb7\x77\x14\x93\xd7\xeb\xf5\x4e\xec\xfd\x74\x20\xe8\x1a\xf9\x0c\x21\xa3\xbb\xf7\xf7\xf6\x9c\xb7\x6d\xcf\x49\x45\x26\x0a\xf1\x79\xda\x28\xd7\x6e\xa1\x7b\x5f\x54\xfa\x5d\xa6\xc1\x54\x5a\xba\xb0\x66\x57\xf1\x74\x6f\xa2\xf9\xba\x4d\x34\x2d\x7d\x62\xa1\x59\x2d\xf8\x11\xd4\x3c\x12\xe8\x06\x02\x10\xe1\x2d\xe1\xa9\xa2\xa1\xae\xa2\xe3\x3b\xb4\x95\x4c\xab\x05\x60\xe3\xd3\xea\x89\xfc\x0e\xcd\x23\x35\x4e\xf3\xf1\xf6\xaf\x76\x20\xb7\x85\x55\xf7\x46\xb3\xf9\x5b\x5d\x5f\xd7\xe6\x17\x2a\xc4\xd5\xd0\x6f\x50\x54\x04\x88\x9d\x2b\x54\xe7\xa3\xf0\x81\x3d\x54\x1a\xb7\x01\xf4\xe5\x6a\xb4\x32\xfa\x1f\x1b\xa1\x6c\x34\xf6\x25\xff\x19\x3d\xd6\x43\x36\x34\x0c\xd6\xde\xf4\x98\x2f\xfd\x06\xe4\x3c\x93\x0f\x10\x3c\x31\xd4\xf6\x5e\x7b\x3d\xc0\xb5\xc7\xa4\x36\x2b\x91\xc5\x09\x7f\xd0\x6f\x88\x44\xc4\x1a\x87\x05\xcf\x0b\x98\x37\xd4\x3f\xb8\x71\x75\x57\xac\x78\xfa\xa9\x34\xc5\x4d\xa9\xce\x76\xa5\x39\xd7\xb6\xf3\xea\xe2\xc6\x0e\x68\x2b\x6b\x76\x5e\xcd\xf3\x6e\x5c\x64\xc8\xe0\xab\xef\xb6\x17\xcf\x53\x99\x40\x78\xf7\x93\x7d\x42\x07\xc6\x07\x82\xb9\xc4\x5f\x8a\x39\x3e\xd7\xaa\x10\xcf\xc5\x4b\xc7\x4f\xd6\xd6\x09\xd4\x0e\x9d\x17\xb8\x5a\x4b\x8a\xc3\xc4\xed\xa2\x40\x3a\xdc\x76\x97\x62\x82\x19\x00\xeb\xab\x27\x15\xfd\x64\xa0\xdd\x19\x8a\x8f\xcf\xda\x6a\xca\x84\xaf\xd2\x4f\x26\xdc\x2b\x26\xf6\x03\x0e\xd4\xd8\xce\xa8\x83\x61\xd8\x46\x3e\xd6\xe3\x4e\x30\xbb\xc7\xbe\x2e\x55\xf1\xfe\xdb\xe6\xdd\xb2\x72\xce\x28\x28\x93\x35\x56\x20\x57\xc9\x6a\x13\xa9\xc2\xa1\x8a\x32\xd3\x5f\x66\x68\x2d\xf5\x63\x3b\xec\x4e\x75\x79\x77\xa4\x2b\xbb\xbb\xba\x24\x80\x1f\x5b\x04\x84\x2e\xce\x26\x52\x9d\xd8\x0d\x44\xc1\xb4\x42\xdd\x00\xf4\xe5\xa2\x8d\xf4\xfc\x1a\x67\xe4\xfb\xef\xde\xec\x19\x69\x3f\xb4\x2f\x7e\x46\xfa\x3a\xbd\x90\x26\x2f\x61\xfe\x3f\x94\xe9\x48\x2c\x73\x9d\x37\xb4\x26\x14\x7a\xed\x15\x41\xa4\x24\x84\x6f\xf1\xcc\x52\xdf\x9e\xaa\xb4\x52\x85\x1e\xee\x58\x75\x1d\x35\xca\x12\xb0\xbd\x7e\xf6\x96\xf5\xb3\xbd\xaa\xf3\x15\xaa\x3a\x8d\x9f\xdc\x08\x5d\x7a\x35\x85\x69\x05\x30\x8d\x79\x59\x51\x3d\x44\x87\x34\x3d\x10\x63\xfe\x28\x75\xee\xeb\x24\xce\x7f\x60\x51\x50\xda\x66\xf5\x64\x5a\x4c\x68\x75\x92\xdf\x27\x48\x15\x16\x09\xe6\xb7\xea\x01\x84\xd8\xa5\xb5\xcc\xbe\x15\x53\x79\x23\x4a\x63\x13\xcf\x78\x31\xfd\xb1\xe1\x63\x2b\xe2\xbb\x16\xbc\xd1\x84\x50\xd8\xd0\x74\x6f\x1c\x7c\xdb\xcc\xa7\x31\xd8\x6b\x47\xca\x6d\xd3\xc1\xde\x46\xd1\xdd\x33\xca\xaf\x85\x51\xfa\xb0\xad\xb5\x45\xf7\x57\x0f\x8d\x5a\x93\x72\xef\x38\x38\xaa\x25\xf3\x5f\x8b\x7a\xbb\x72\x13\xce\xd0\x3a\xf5\xc4\xb1\x99\x61\xb6\x51\x4f\x7f\x56\x3e\x77\xe8\xf5\x2b\x3f\x9d\x55\x7d\x59\x4e\xc9\x96\x43\xc6\x0b\x36\xb1\x82\xc2\x7d\x6d\x8c\xf7\x07\x68\xd8\xc1\xa8\x25\x34\xfb\xdc\x1f\xb8\x18\xa6\xfb\x03\x30\x47\x96\xa1\x7d\x54\x61\xd7\x7d\xa9\xc3\x64\x4f\xf4\x98\x78\x14\x0a\xc2\x8e\x06\x06\x11\x68\x86\xa1\x95\x48\x31\xcb\xa8\x92\x01\xa5\x15\x02\xed\x4d\x73\xfb\x6a\xe1\x1d\x99\xaa\xe0\xf9\xcc\xf7\x6e\x20\x6d\x00\x93\xa1\x2c\xcd\x7a\x17\x3b\xfa\x26\x65\x81\xb9\x95\x10\x6b\x64\xb0\x1c\x2b\x66\xc2\x83\x61\xf3\xde\x2a\xb8\x67\x61\xae\x0b\xc4\xb7\xb8\xd1\x1b\xdb\x34\xc4\x77\xaa\xcf\x63\xc5\x9e\x81\x29\xcf\x14\xae\x1a\x54\xfb\xbd\x03\xbb\xf3\x92\xfd\x63\xb7\x60\x64\x76\x7b\x08\x26\xe8\xf5\xb7\xf0\xfe\xe0\xf4\xdd\xbb\xff\x77\xe1\x6e\x98\x05\xa1\x85\xdb\x50\x59\x3e\x10\x99\x0f\x59\x5c\xb6\x19\x98\xe3\xf6\x7b\x29\xf2\x19\x62\x28\xc1\x4a\x3f\x8d\xb5\x11\xd1\x7c\x10\x07\x51\xf1\x51\x88\x33\x8b\xcc\x11\x83\xb5\xe5\xeb\x2d\x88\xde\x2a\x44\x93\x85\xef\xc4\xa1\x43\xcd\xf8\xf9\x41\x85\x68\xa6\x87\x8c\x3a\xb2\x42\x41\x91\x73\x99\xe1\xf9\x49\xa0\x68\xb1\x87\x49\xe1\xcc\xcc\x4c\x21\x26\x6d\xa0\xf7\x31\x6b\xfa\x47\xc1\xb3\x62\xbc\x2a\x82\xc2\x41\x98\xa8\x72\x32\x10\xa0\xb3\x8d\xf1\xbd\xaa\xa1\x87\xed\xc6\x06\x4c\x3a\x62\xbb\xa1\x4d\xa4\x92\x93\x72\xe2\x15\xcb\x57\x1a\x22\xee\x8f\x48\xfb\xb6\xf3\xd7\x41\x32\x08\x57\xec\x4e\x4e\x96\x38\x6f\xea\x6e\xf0\x78\xa8\x01\x99\x66\xfe\x18\x36\xdc\x3e\xf6\xc4\x0d\x9b\xe6\x3a\x11\xc6\x84\xeb\x07\x88\x63\x20\xa4\x86\x86\x71\x18\x88\x4b\xb6\x1d\x94\x05\xd4\xdd\xb3\x42\xe8\x4c\x58\x41\x54\xa8\xa0\x34\x53\x67\x4d\xd6\xc8\x18\x5f\xff\x0c\x5c\xb1\xce\x61\xe2\x30\x5d\x26\x7c\x1a\x04\x62\xc8\xd0\x7d\x72\x60\x92\xd1\xe8\xc2\xc8\x63\x3a\x1c\xc7\xa6\xcc\xbf\x6e\xbf\x06\x91\xc5\x42\x41\x5c\xca\xc5\x0f\x31\xa6\x0b\x37\x6c\xcc\x21\xdf\x1f\x26\x43\x20\x69\x50\x42\x42\x64\x02\x7a\x3f\xd2\x39\x11\x7f\x0e\x5d\xeb\xb2\x20\x50\xd1\x07\x31\x73\x84\xdf\x8e\xbf\x21\x8c\x2f\x0e\xa0\x45\x1d\x82\x1a\x6d\x38\x45\x8f\x92\xe2\x47\x97\xca\x54\x1d\x16\x4c\x27\x49\x99\x23\xf0\x9c\x9f\x31\xf0\xb0\x62\x2c\xac\x4e\x10\x5c\x54\x00\xa7\x29\xd2\xb0\xda\x90\xce\xc0\xcb\x42\xdb\xc3\x93\x80\x44\x60\xd7\x69\xe9\x36\xd2\x82\x18\x3d\xc1\xa9\xc0\xb8\x20\x5d\xbb\x80\x70\xab\x91\x16\x86\x99\x89\xd6\x2e\x3e\xd9\xae\x4f\x28\x7c\x21\x26\xd3\x62\xf6\xff\xb3\xf7\xef\xcb\x6d\x1c\x49\xbe\x38\xfe\xff\x3e\x45\x05\x3d\x11\x22\xe7\x07\x80\x37\x49\x33\xe6\xc4\x86\x0f\x47\x92\x3d\x3c\xb6\x25\xfe\x48\xca\x7b\x76\x0d\x6f\xb0\xd0\x5d\x00\x6a\xd4\xe8\xc2\x74\x75\x83\xc2\xac\x1c\xb1\x0f\x72\xce\xcb\xed\x93\x7c\xa3\x32\xb3\xaa\xab\x6f\x40\x03\x04\x29\x5a\xee\x89\x18\x99\x00\xaa\xab\xeb\x9a\xf7\xfc\xa4\xc3\xdb\x01\xd9\x8a\x16\x0c\x3b\xfb\x81\x27\x13\xe1\xdd\x7c\x61\xd4\x15\x8b\x00\x84\x8b\x8d\xca\x14\xd5\x98\x9c\x27\x6a\x14\x89\x19\x61\xc3\x98\xf9\xdb\xf5\x29\x3b\x5c\xdb\xc4\x6f\xe7\xdc\x48\x53\xb8\xe2\xba\x60\x5a\x37\x50\x78\x75\xfe\xb8\x57\x71\x24\x87\x4c\x26\x84\xe2\x5d\x53\x30\xf1\x11\x81\x91\xeb\x08\x58\x25\xec\x3c\xe5\x91\xb7\xbc\x73\x24\x24\x59\x9c\x7a\xa1\xf8\x15\x9e\xbc\xeb\x01\x5b\xc2\xf1\x9d\x88\x6d\xf4\xf7\xea\x61\x7b\xc6\x3a\x36\x71\x0f\xe5\x04\x08\xae\x13\x68\xc6\x2e\x19\xc1\xdc\x76\xe4\xc4\x03\xf6\xba\xb2\xad\x18\xa4\x00\xa5\x79\x89\x5d\xfb\x44\x54\x6a\x8c\xac\x74\xc1\x82\xd5\x01\x23\x60\x2d\x98\x76\x2e\x5f\xff\xf5\x99\xd3\xfe\xf3\xd1\x3d\xaa\x43\xaa\xe6\xe0\xf6\x1a\x05\x84\x66\xfe\xdc\x74\xa8\x76\xe7\xdc\xb2\x51\x00\x97\xa8\x15\xaf\x14\xc0\x8a\x6d\xd9\xc4\x08\x96\x04\xc4\xc6\x11\xe9\xd3\x2c\xff\x8c\x7f\x10\x25\xd8\x57\x0e\x39\x0f\x85\xa8\x03\x46\x61\x07\x45\xa7\x3d\x9f\xcf\x23\x69\xdd\x5e\x96\x62\x3b\xa0\x87\xce\xf2\xf8\xa4\x2d\x8f\x9d\x35\xef\x4b\xb1\xe6\xfd\x2e\x8b\xbe\xae\xa3\x8d\x6b\x9d\x72\x1a\xd1\xbd\x73\x62\x42\x51\x47\x22\x86\x80\xb6\xa7\x18\xde\x58\x65\x00\x0f\x69\xe9\x2c\xbe\x6a\xbd\x97\xaa\xda\xbe\x98\xa0\x5e\x65\x49\x1d\x1e\xc1\x6f\x81\x51\xb4\xc1\x23\x90\x8f\x84\x47\xb0\x56\x22\xea\xfc\x5b\x1d\x47\xec\x60\x09\xd8\x67\xe0\x45\x0f\xee\x79\xab\xe1\xef\x1b\xf0\xa3\xeb\xb5\xec\x7e\x3d\x13\x32\xaa\xe1\x65\x22\x17\x32\x12\x13\xf1\x46\x07\x3c\x6a\xa3\x7d\x37\x3d\x96\x83\x81\x6a\x70\xbb\x80\x06\x15\xf0\x82\x55\x0e\x33\xf3\xe6\xf6\x61\x26\xdc\xd3\x55\x0c\xfe\xd0\xc7\x6a\x4e\xb2\x26\x24\xbc\x6a\x12\x5e\xaf\x34\x45\x2f\xe9\x7a\x6d\xed\x80\x72\x7b\xaa\x6c\x63\x6e\x80\x65\x04\x5e\x8e\x76\x48\x8d\x0a\xc0\x09\xe2\xa3\xab\x23\x45\xa9\x89\x60\xe8\x1a\x89\x30\x24\x98\x02\x0b\x18\x08\xee\x1c\x28\xd8\x80\x76\x30\x32\x0c\x92\x31\xcb\x6a\xaf\xf1\xd2\x7b\x57\xa1\x48\xc3\x58\x25\x76\x34\x62\x3e\x15\x33\x91\x70\x9b\xc5\xe8\x67\xf2\xc5\x88\x35\x86\xd0\x63\xf5\xa0\x62\x84\x7b\xef\xdb\x7f\x21\x80\x5d\xdb\x04\xf0\x0b\x78\x0d\xa5\x4b\x13\xb6\x18\x9b\xf0\xb4\xbc\x2b\x3b\x62\x84\x95\xbc\xfa\xfb\xf0\x41\x7b\x08\xf8\x1c\xed\x04\x55\xa3\x7d\xed\x11\x2f\x3e\x51\x14\x06\x02\xff\x17\x3f\x70\x96\xce\x3a\x19\x11\x42\x57\x67\x2e\xb7\x22\xb0\x62\xaf\xb1\x57\x4f\xc3\xa6\xb2\x71\x38\x29\x94\x27\x0c\x76\x88\x2c\x9d\xaa\xe4\x19\xd8\xe2\x82\x44\xe0\x7d\xf9\x77\x95\xe1\x99\x33\xac\x12\x6d\xb7\xf9\xb8\xc0\x1e\x0d\x29\x05\x75\x73\x41\x68\x5c\xa4\xc9\xaf\x13\x35\xf7\x7f\x7c\x74\xc0\x72\x5e\x4e\xc7\x6f\xb9\x3b\xde\x03\x35\xb7\xd4\x3a\x80\xf3\xfc\x79\x3d\x60\xec\x0d\xdc\x33\x95\xb0\x58\x46\x95\x8b\x16\x45\x7e\x6b\xbb\x19\x90\xe6\xcf\xf0\x36\xb9\xc2\xbe\x50\x0d\xcb\x42\x69\xe0\x55\x72\x36\xfc\x4c\xf3\x49\x4d\xfa\xbe\x2e\xb8\xa5\x63\x02\x2e\xa7\xdf\x86\x7b\x54\x51\xe5\x21\x6f\x93\x07\x8e\xb0\x83\xfd\xb2\x99\xfb\x2d\x77\xcb\x35\xf7\xf6\x8a\x95\x37\xcb\xa5\xa7\xeb\x01\x6d\x55\xcd\x1e\xe5\x8d\x0a\x5b\xf4\x90\x2b\xe7\xf0\x0c\x76\xb0\x6e\x97\x89\x0a\x7e\x54\x59\x9c\xde\x18\x21\xb3\x1d\x3f\x2a\x3e\xb3\xe2\xb4\x17\x1b\x0e\x56\x9e\x77\x38\xb5\x80\x4a\x8b\x8c\xb6\xf0\x6c\xf1\xf4\x53\x91\x26\x0f\x49\xa1\xd8\xd8\x32\x84\x71\xc4\x27\x96\xe1\x61\x02\xd4\xe7\xa2\x26\xef\x63\xcd\xc7\xe2\x7a\xa9\x83\xf5\xa5\x6e\xea\x1e\x29\x92\x7b\x8f\xa5\xdb\x95\xce\xa0\x35\xd3\xd8\xbc\x28\xad\xc4\x50\xc6\xe0\x0d\x0f\xa6\xe0\xb0\x5a\x02\xb5\x90\xe0\x5e\xe0\x6c\x1e\x71\x19\xd3\x73\xe4\x22\x34\xdc\x36\x04\x5e\x00\xf5\xff\xcc\x1f\xb6\x22\x93\x06\x97\x9d\x04\xf7\xae\x96\x21\x60\xb3\x40\x8d\x78\xc2\x75\xf0\xf6\x9e\x86\x32\x60\xd7\x98\x9a\xf8\x47\x36\x13\x3c\xc6\x2a\x90\xc5\xd1\x22\xc4\x90\x2d\xe2\x69\x41\xd0\xa7\xa8\xf7\xe7\xe7\x8a\x5b\x28\x85\xca\x74\xfd\x05\x31\x7c\x6e\xa1\x64\x48\xd6\x00\xc3\x9a\x8a\xd8\x12\x79\xbd\xc7\x43\x33\x39\x2a\xce\x8f\x5f\x8c\x78\x32\xdc\xeb\xb9\x0f\xff\x34\x1f\x44\x1a\x0c\xbc\x87\x06\xe5\x87\x06\xfe\x43\x03\xef\xa1\xc7\x3e\x6a\xb4\xe5\xe7\xe1\x26\xa2\x45\xfd\x43\xd6\x1b\x6c\x0b\x49\x11\x1a\x53\x55\xcc\x70\xae\x0a\x10\x11\xca\xc2\x05\xcb\xe2\xc8\x96\xf3\xb3\xf2\xa5\x43\xf6\x46\xf8\xfc\x44\xcd\xa9\x78\x8d\x13\x15\x06\x0c\x65\x09\xbe\x5c\x23\x4a\x34\x8c\x7d\xa5\x34\x51\x14\x77\x70\xd8\xe0\x89\x36\x67\xd0\x2b\xb9\x4a\x07\x0d\xc5\xd3\x58\x08\x04\x15\x81\xc0\x80\x62\x61\x98\x3a\x79\x26\x2a\x94\x2a\x7c\xe4\xed\xdf\x4e\x8b\x5a\xf3\xb4\x75\xb1\x57\x8e\x85\x2b\x50\x73\x37\x15\x96\xa2\x60\xa4\x00\x88\xa0\x13\x43\x5c\x00\xc1\xd8\x29\x59\x70\x72\x62\x40\x05\xa1\x0a\xbb\xf4\xc0\x36\x0a\xd5\x58\x25\x23\x19\x86\x22\x6e\x47\x5a\xcb\xcd\x1b\xc9\xaa\x6b\xf8\x14\x28\x6a\x65\x30\xb5\x34\xd5\x27\xa6\xee\x89\xd5\xb4\x0f\x9b\x6d\x4a\xfc\x0a\x4f\x3d\x19\xea\x37\xd6\xdf\x91\x5d\xe5\x5e\x8e\x8e\x06\x00\x82\x55\x86\x2e\x7a\x73\xdb\x04\x74\x97\xc0\x6f\x33\xd0\x29\x3e\xa9\x92\x81\x5e\x3b\x4d\x23\x6d\x5e\x5c\xbe\x5a\x73\xce\xa9\x55\xc9\x04\xe2\x99\x65\x88\x81\xa1\x7e\x00\xda\xc1\xdf\xe8\x11\x19\x17\xc8\xf5\x36\x97\xd2\xbc\xfd\x2d\x16\x09\x6b\x31\x4e\x6a\xb9\xe9\x58\xed\x63\x3b\x1a\xef\xe5\xc5\xeb\x16\x63\xbd\xbc\x78\xbd\xe9\x38\xcd\x23\xbb\x1a\xa3\x4a\xd6\x56\x34\x73\xed\xfc\x71\x22\xad\x71\xd8\x00\xcc\x03\xa5\x28\x62\xc8\x89\x8f\x73\xf5\x60\xca\x4b\x11\xe4\xe0\x3e\x77\xdd\xf1\x92\x75\xfe\x84\xbc\x61\x1b\x6b\xe0\x48\x60\x4d\x20\x9d\x33\xab\xa6\x6a\x4a\x2b\xf7\xca\xc2\x74\x5d\x29\x95\x7e\x2b\x23\x81\xa1\xb2\xeb\x30\x2c\x6a\x1f\x62\x65\x48\x31\x24\x28\x88\x09\xe2\xd5\xfc\xa0\x4a\x20\x04\xab\x66\xfa\x42\x7d\x2a\x51\x2a\x65\x63\x19\x09\x1b\xaf\xcb\x6c\xa0\x5e\x2e\xa4\x15\x04\x32\xcf\xef\xe1\xf7\x18\xab\xb8\xdf\xdc\x2b\xaa\x60\xd7\x97\xd6\x93\x17\x8a\xd8\xe1\x74\x22\xcc\x3d\x4e\x60\xcc\x23\x02\x37\xcd\xdf\x0e\x8e\xbb\x36\x43\x37\xdb\x06\xe1\x82\x00\x36\x37\xca\x52\x17\x3c\x48\x92\x19\x1a\x9a\x59\xaa\xb6\xdb\xb3\x7a\x81\x71\xed\xae\xd5\x3f\xe6\x00\x5f\x9a\x45\x66\x23\xfa\xce\xfd\x78\x47\xcf\x26\xc7\x6e\xa0\x8a\x3f\x62\xbe\x11\x5c\x0b\x21\x6f\xd0\x53\x10\x0a\xe4\xdc\x52\x20\xc7\x3e\x3a\xcb\x4d\xb2\xf8\x7c\x37\x5c\xf7\xca\xf5\xb4\x09\xe3\xcd\x9f\x6a\xc1\x7b\x9d\xac\x0e\x49\x13\xde\xa3\x54\x74\x08\x6d\xe6\x68\x65\xd0\xc2\x06\xb4\x16\x4a\x6a\xcf\x64\x9a\x0a\x2c\x27\x4f\xb8\xbe\x5e\x37\x86\x96\xa4\xfc\x83\x00\x03\x39\xf4\x59\x28\xc9\x5d\xb0\x56\x78\x8f\xf9\xb6\xeb\xb2\xa9\xa2\x79\xd1\xdf\xeb\x2d\xea\x8d\xd6\xad\xb9\xe9\x68\x93\x25\x77\x6f\xdf\x6e\xc5\xe1\xc9\x86\x05\x6f\x9c\x6e\x5d\x81\xb9\x6d\x67\xec\xfa\xda\x70\xd2\x85\x62\x1c\x9b\xce\xdb\x2f\x24\x87\xb5\x5e\x2c\x5d\x5c\x7b\xc0\x92\x72\xa1\x37\xd7\x38\x8b\x13\x61\xee\x30\x40\x85\xb1\x37\xe8\x66\x83\x82\xe6\xaa\xd0\x6f\x28\xe6\xa0\x7b\x50\x79\xe2\x02\x1e\x73\xe1\xf0\x11\xf8\xd8\xca\xc3\xa7\x05\x54\xa4\xba\xef\x46\x5c\xbf\x81\x6e\x36\xd9\x03\x7a\xf3\xc6\xcb\x5f\x80\x12\x5f\x77\xd8\x00\x4d\x0b\x6b\x98\x45\x70\x3d\xef\x7d\xe4\xae\x2b\x3d\x6e\x34\xe9\xca\xd3\x6d\x95\x0c\xff\x49\xc2\x17\xc3\xa4\xbf\x8d\x15\x8e\x45\x2b\x1f\xc8\xa2\xe2\xf8\xa8\x18\xd3\x09\xce\x74\x1e\x65\x13\x19\x37\x19\xd4\x63\xc5\x6a\xfd\x1d\x37\xd6\x57\x9b\x03\xa3\x6a\x48\x54\x33\xad\x8c\xb4\xfd\xec\x8f\xcf\x1e\x87\xff\xfd\x4b\xa9\x71\x43\x30\x81\xbd\x29\xb5\x94\x7b\xf5\x91\xab\x51\x6a\xe9\x9b\xfb\x46\x38\x37\xb3\xd9\x95\xf5\x6f\xea\x9f\x59\x83\xb1\x67\xd8\xe0\x53\xc2\xd9\x9b\xc8\xb0\x48\x06\xf0\x60\xb5\x81\xdc\x9b\xc8\xb0\x43\xdb\xdb\x18\x6d\x6f\x53\x81\x6b\xb7\x38\xe2\x30\x8f\x5d\x5e\x9b\x3a\x49\x69\xcd\xad\xa9\x79\xe4\x37\x76\x69\xb2\xed\x2f\x4d\xd6\x5d\x9a\xdd\x5c\x9a\x95\x32\xf3\x53\xbe\x33\x8d\xb2\xf6\xca\x6b\xd3\xf4\x94\x8f\x14\x77\x7f\xe1\xbb\x65\x34\x9a\x08\xcb\x95\x96\x5b\x3a\x6f\x2b\x8f\xd5\x38\xc9\x8b\x55\x64\xa0\x51\x61\x7f\x6d\xe8\x99\x11\xdd\x49\x65\x38\xcf\x8b\xc0\xa3\x23\x01\xcd\xff\x2e\x30\xab\xd2\xa5\x17\xe4\x41\x71\xd2\x14\x15\x66\xd6\x09\xf3\xc7\xc0\xb4\x12\xbb\x8c\x4b\x2f\xfe\x0b\x06\x5a\x56\x5c\xeb\xd4\x11\x2a\x40\x11\x57\x8f\xe4\xa3\xb9\xbd\xca\x23\x6b\xe7\xee\xaa\xcc\xa7\xe4\xf7\xac\xfc\x9e\x2a\xf4\x85\xc6\xb9\x79\xeb\xc6\x6b\xff\xe3\xfb\xeb\x1b\xb0\xc7\x10\x25\x25\x49\xbb\xf1\x50\xd0\x82\xe7\xbb\x1a\xcb\x28\x2f\xb7\x30\xcb\xdc\x91\xbe\x6c\xac\xeb\xbe\xed\x65\x6f\x3c\xdf\x3b\x22\x00\x0d\x3a\xde\x8a\xb2\x57\xb5\x0f\x3c\x1e\xc3\x7c\x20\x1a\xde\xa4\x80\x6e\x1c\xc7\x4d\x1a\xc5\x96\x40\xf7\xae\xa6\x11\x2d\xf3\x06\x3a\xb7\xdd\x09\xdf\x12\x89\x76\xf2\xbf\xe4\xdf\x15\x38\x75\x5d\x8c\x77\x1e\x2c\x3d\x90\xea\x30\x54\x81\x3e\x4c\xb9\xfe\xa0\x0f\x6d\x25\x6f\x01\x05\x6a\x9d\x11\xf4\x50\x93\x7a\x0a\x5f\x89\x8f\xe9\xe1\xe7\x65\x68\xeb\x35\xf9\x15\x47\x7b\xdd\xb3\xbf\x21\xbc\xf2\x1a\xcb\x42\x4b\xe4\xf2\xea\x93\x9d\x80\xb8\x1d\x86\x79\x9d\x75\xe7\xf3\xe2\x99\x27\x23\x1e\x18\xea\x72\x3e\x99\x24\x62\x02\x21\x23\x57\xc5\x39\x57\x42\x09\x8b\x2d\xbd\xaa\x08\x53\x75\x67\x4e\x4f\xa4\x00\x42\xe1\x55\x94\xe9\x54\x24\x57\x0a\xa2\xbf\x15\xe3\xf4\x9c\xa1\x2f\x14\x6f\xe4\x35\x69\x01\x47\x93\x37\xb6\xd8\x41\xeb\xee\xc4\xab\x9a\x47\xa8\x70\xb4\x97\x8f\xe5\x7e\x41\x6f\x6b\xb9\x50\xff\x58\xc6\x61\x71\x32\xe0\xc2\xc9\x6f\xb2\x39\x00\x1a\x74\x2b\x60\x6a\xe8\xa5\xcb\x7b\x85\x8a\x41\x3d\xbc\x31\xa5\x49\x3f\xd3\x6c\x2e\x12\xaa\xa9\xa7\x8b\x31\x59\x3b\xb9\x12\xad\x41\x98\xee\x6f\x4d\xdb\xf0\xbc\xf9\x5b\xdf\x7c\xd6\xbc\x56\x84\xeb\x89\x5f\x30\x28\x77\xde\x63\x91\x9a\xc8\xc0\x5e\x25\x19\x4f\x30\x9d\xd2\x50\x01\x73\x34\xcb\x11\xf5\x63\x91\x88\x38\xb0\x61\x3a\x59\x2c\x53\x84\xd5\x37\xdd\xff\x55\xc6\x50\x1c\x51\x25\xfe\x06\xd1\xb7\x6d\xb4\x8e\xc6\xfb\xd3\x6a\xa3\x1a\xef\xe1\x2a\x36\x5f\xbe\x89\x04\xd1\x0d\xbf\xf3\xc8\x8a\xf8\x66\x09\x2a\x77\x74\x94\xc9\xc8\x56\x61\x8c\x48\xc1\x02\xdf\x83\x37\x79\x38\xd2\x35\xef\xd0\x22\xf5\x8e\x33\x3e\x0f\x88\x24\x39\x98\x8b\x45\xe3\x32\x37\x25\x94\x89\x08\x52\x16\x4c\x91\x13\xa5\x8a\x1e\xb1\xa7\x5d\xa7\x6a\x36\xcf\x45\x6e\x0f\xd9\xa7\x21\x30\xb7\x4b\x79\xed\xb0\x11\xba\x4c\xd0\x7b\x92\xff\xfb\x63\x23\x34\x0b\x4c\xeb\xd8\x32\xde\x7f\xe2\xc3\x88\x28\x55\xa0\xda\x75\xc4\x68\x37\x12\xa2\xa5\xb2\xf9\xdb\x76\xcf\xf9\x76\x98\x67\x0a\xc3\xc5\x9c\x2d\xf9\x4f\xcc\x6e\x5c\x55\x0c\xbb\x71\xb9\x0a\x09\xa7\x1b\xe4\x9a\xd6\x30\x6b\xe2\x88\xed\x78\xb6\x65\xaa\x8e\xf5\x1a\xb2\xe0\xfd\xde\x83\x68\x20\x73\x2f\x49\x7b\x64\x32\xc5\x6a\x36\x18\xe0\x45\x4f\x15\x1f\xb2\x82\xf2\x24\x52\x23\x8e\x71\xba\x7a\xce\x03\xa2\xad\x3c\x44\x88\xba\x02\xf0\xd2\x42\x72\x76\x8d\x35\x0c\x3b\x4c\x85\x8e\xc1\x74\x0c\xa6\xbc\xec\xbf\x25\x06\xa3\x22\x71\x05\xa3\xda\x4e\xc0\xbe\xa2\xe7\x57\xc6\xa7\x61\x9b\xbc\xd8\xfc\x86\xa4\xc8\x81\x2a\x7a\x1d\xd1\xe1\x30\x07\x32\x5a\xd8\x58\xa1\x73\xa2\xed\x46\x64\xce\xc0\x66\x9f\x66\x49\x0c\x45\x50\x93\x44\x35\x49\xc0\x54\x8e\x75\x1d\x9b\x25\x8a\x67\x39\xad\x47\x84\x89\x82\x10\x04\x09\x2a\xb1\x66\x3a\x88\x5b\xa6\xab\x91\x98\xf7\xe5\xb7\x34\x94\x07\x0b\xda\xb0\x87\x62\x9d\xc9\xf0\x49\xf0\x66\xcb\x42\x1f\x98\x45\xaf\x01\x26\xaa\x7f\xa0\xae\x7a\x46\xb5\x65\x57\xb8\xe9\x49\x33\xd1\x36\xc0\x44\x17\x55\x60\xa2\x55\xfb\xdc\xd8\xef\x26\x54\xa0\xe6\x0e\xdc\xc7\x36\xdb\xc9\x0a\x5f\x8a\xac\xb0\x19\x2c\xd1\x4a\x49\xa1\x25\xc3\x78\x74\xc8\xa0\x7b\xb3\x8b\x35\x30\x42\xf7\x63\x19\xed\x79\x45\x0b\x26\xd1\x71\x87\x2f\x9c\x3b\x3c\x1c\x5b\xe8\xf8\x41\xc7\x0f\x3a\x7e\xe0\xb5\xaf\xe1\x07\xbb\x67\x04\x9e\x35\x74\x15\x70\x9c\x6d\x44\xfa\xa4\x6f\x60\x2b\x39\x99\x5c\xa5\xea\x24\xb3\x46\x3e\x17\x1b\xe5\x2c\x7d\x95\xea\x12\x77\x53\xe5\xfc\xa9\x9e\x2a\xca\x00\xa3\x40\x06\xd3\x5c\xbf\xae\x6b\xd6\xce\xb0\x57\x9f\x1c\x52\x65\x3a\xc5\xa4\x0d\xbf\x00\x83\xfd\x91\x7c\x8b\xb6\x58\x06\x8c\xc8\x12\x65\x8c\xab\x98\x65\x51\x2a\xe7\x11\xa2\xa1\x79\xa9\x1c\x1e\x34\x1d\x8f\x97\x8c\x17\xea\x31\x88\x90\xf1\x89\xe9\x31\x85\x8a\x4c\xb6\xec\x4f\x9c\xcd\x44\x62\x28\x43\xfe\x12\xa8\xee\x14\x2f\xf3\xde\x73\xff\x71\x6d\x41\x80\x87\x8f\xe8\x8b\x55\x7c\x45\xa3\x7b\x7f\xf5\xc3\xba\x55\x7e\x5b\x6c\x4d\x64\x19\xf1\x4a\xe6\x3c\x49\x25\x8f\x58\x96\xd8\x08\x2c\xce\x32\x2d\x12\xcb\xba\xa7\x7c\x21\x18\x0f\x00\xad\xc2\x10\x50\xf6\xc7\x42\x52\x34\x1e\x39\xb0\xdc\x70\xdc\x9a\x71\x16\x45\x3d\x36\x96\x31\xd4\xc2\x11\x73\x97\xd9\xcd\xd3\x29\xbb\x96\x71\x20\x28\x53\x96\x48\x3e\x8c\xc8\xf4\x68\x8e\xac\x3b\x77\x60\xb5\x29\x24\x7e\xc1\x2b\xcc\x19\x0c\x20\x66\x6c\x5c\x74\x1f\x6b\xdf\xe9\x0c\x6c\x81\xd7\x79\x97\xc9\x21\x1a\xf0\xd8\x61\x51\x40\x60\x4d\xaa\x60\x73\xf3\x1d\xdf\xd7\x59\x30\x35\x53\x1a\xee\xcd\x55\xa8\x87\x7b\xe6\x6e\x0c\xf7\xb4\x08\x12\x91\xea\xe1\xde\x01\x20\x34\x95\xe6\x41\x10\x57\xde\xb3\x86\x05\x0c\xf7\x0e\x7a\xcc\x99\xdf\x47\x2a\x9d\x3e\x7e\x16\x2a\x0d\xb2\x4d\x74\xee\x95\xdf\xb6\xec\xe8\x2e\xa6\x2d\x79\x01\xb9\x75\x64\x82\xe5\x61\xb2\xe6\xb0\x79\x71\xb8\x5e\xb5\x91\x3c\xf8\xf6\xb3\xad\x4a\xdb\x15\x29\x89\x69\xf9\x61\x41\x79\xb8\x32\x7b\xfb\xdc\x79\x14\xf9\x35\xa7\x38\x7c\xb4\xf4\xeb\xb1\x27\xbd\x10\xc9\x68\xdd\x84\x7f\x32\x6d\x8a\x93\xc5\xaf\x90\x3e\xb8\x1b\xf3\xc3\x0f\x28\xc2\xd1\x64\x8c\xc8\x87\x21\x3b\xe7\x29\xca\x46\xe2\x8a\xf2\x2f\x21\xe8\xc6\xc6\x2d\x86\x0e\x42\xd1\xac\xd9\x80\x41\xe7\x35\x8b\x04\x52\xd2\x93\xca\x58\xc3\xc5\x5b\x27\xbb\xac\x13\x02\xd6\x44\xe2\xe4\x21\x38\x3e\x35\xdc\x79\xfc\x4d\xe7\x9e\x7b\xd2\xba\x63\xa7\x62\x7d\x29\x2a\xd6\x6f\x22\xfe\xa3\x0b\xfc\x68\xa7\x1d\xee\x3e\xe2\xa3\x5d\xa8\x47\x63\x8c\x47\xa2\x9a\xf5\xbe\x86\x08\x0f\xdf\x9f\x0a\x91\xe3\xb9\xb6\x07\xc9\x5f\xed\xdc\xae\xe9\xda\x00\x10\x94\x05\xf2\xce\xfd\x66\xa3\x65\x45\xd3\x94\x29\x13\x1f\xa5\x86\xaa\x9c\x46\x7a\xf2\x9c\x23\xa0\x80\xb1\x89\x5c\x88\xd8\x1f\x2c\xc0\x61\x1b\xfd\x04\x71\x7d\x71\xb0\xdc\xd3\x22\x3a\x1e\xd7\xf1\xb8\x8e\xc7\x95\x97\xfd\xb7\xc4\xe3\x1e\x39\x04\xa5\x89\x4c\xba\x9a\xbb\xdb\x50\xca\x2e\x40\xa5\x0b\x50\x29\xcb\x10\x0f\x12\x99\xd2\x3e\x24\xa5\x45\x2c\x4a\x17\x84\xf2\x5b\x61\xa3\x5b\xba\x19\x1f\x2e\xfa\xa4\x0b\x3b\xe9\xe4\x83\xce\xcd\xd8\x9a\x09\xec\xde\xcd\xd8\x22\xd0\x64\x55\x84\x49\x17\x5a\xf2\x25\xd3\xfc\x07\x20\xf6\x1d\x95\xef\xa8\x7c\x47\xe5\xbd\xf6\x3e\x95\x7f\x18\xf2\x5e\xd4\x8a\x1b\x75\x5a\x1b\x34\x51\x09\x21\x81\x13\xee\x68\x24\xa8\x7c\x88\x6e\x9a\x69\x2f\x23\x7e\x6d\x80\x47\xcb\xf8\x0e\x1b\xde\x81\xd1\x13\x68\x75\xce\xa3\x38\xe8\xcd\xb9\xdb\xea\x41\x4d\x49\xe6\xcd\x00\x1b\xe2\xf9\x70\x77\x30\x82\x78\x3d\xa2\x92\x0f\x9f\x64\x03\x5d\xee\x3b\x82\x96\x17\xc5\xed\x57\x79\xcd\xca\x33\x58\x77\x97\xd6\x9d\x4d\xab\xde\xaf\x42\x7a\x41\x92\xec\xce\x26\xf7\xcc\x2e\x05\x73\x04\x53\x09\xc6\xa2\xc8\xd0\x50\x3d\x04\x0d\xa7\xb3\x4a\xb6\xf0\x82\xc3\x1d\xb0\xa4\xbd\xd8\x8e\xa9\x8a\x42\xc6\x6d\x5a\xfc\xf9\xe5\x45\xce\x0d\xe8\x7d\x3d\xb4\xe3\x20\x3b\x19\x53\x48\x87\xb5\x85\xd8\x30\x0e\x18\x82\x11\x17\xf0\xf4\x82\x69\x67\x83\x18\xa8\xb6\x57\x04\x4d\x33\x14\xf8\x44\xef\xa2\xa0\x24\xcf\xa1\x4b\x06\x9f\x81\x2d\x01\x06\x57\x78\xb8\x87\x35\x47\x80\xb5\xc9\x40\x9c\x07\x81\xca\x90\x6b\x61\xe9\xe3\x52\xeb\x46\x2a\x46\xdd\xbc\xb7\x33\xc6\x91\xb9\x6e\x1e\xee\x5e\xaa\xb1\xdd\x9b\xf2\x3d\x18\xb0\x9f\x10\xd8\x0f\x45\x47\x42\x2f\x90\xda\x5b\x25\x9e\x08\x36\xdc\x33\x83\xc6\x32\x2b\x30\x6a\xf3\xa7\x99\xc2\x70\xaf\xb8\x28\xc3\x3d\x67\x92\xf3\x4c\x6e\xce\x79\xe2\x49\x81\xa6\x89\x19\xbf\x95\x18\x4b\x8f\x90\x00\x9a\x08\xa8\x17\x91\xdb\xe9\x1e\x8c\x72\xd0\x61\x68\x5a\xa7\xed\x5e\x0c\x46\xca\x16\x6f\x27\xab\x67\xe5\x3c\x5a\xb1\xdc\xae\x29\x8d\xee\x03\x11\x5b\x73\x9f\xbc\xbc\xe1\x3c\x32\x0a\x77\x0b\xa3\xaa\x0a\xfb\x05\x7b\x4b\x65\x55\x71\x4b\x30\x84\x68\xa7\xab\xdf\x92\x6a\x3e\x04\x85\xa4\x2a\x85\x1d\x08\x50\x07\x02\x54\xbe\x90\x0f\x07\x02\x84\x87\xee\xb7\x85\x04\xc4\x5e\x1b\x9d\x2d\x80\x50\x5c\x19\xb3\xc5\xf1\xe0\xf8\x4f\xe6\x8f\x31\x5f\xa8\x04\x44\xa7\x26\x2e\x76\xb8\x38\x2e\x62\x1f\x98\x13\x44\x65\x50\x58\xa4\xe2\x89\x48\x10\x63\x30\x59\xb8\xbe\x4f\x8e\x1e\x0f\x7a\xa8\x9e\x04\xac\x52\x9a\x3a\xfc\xa1\xce\xc0\xd4\xf9\xe6\x3b\xab\xcc\x93\xf2\xcd\xff\x16\xf0\x87\x90\xd4\x7e\x99\xb1\x68\xed\x40\x88\x60\x05\x36\x37\x32\x55\x24\x86\xdf\x3c\x1c\xd1\xce\xe4\x09\x9a\xdc\x0e\xc5\x8a\x8e\xcf\x75\x7c\xae\xe3\x73\x4f\x95\xcf\xdd\x2f\x06\x8d\x6a\x3d\x74\x58\x48\x8f\x1e\x6a\x66\x41\xc9\x7f\xef\xf1\x66\x1b\x01\x22\xed\x58\x5c\x78\x48\x68\xa4\x9d\x73\x74\xf3\xee\x8e\xab\x7f\x09\x5c\xfd\x89\xe2\x32\x35\x0a\xd5\x1b\x13\xa7\x4e\x82\xf9\x02\x25\x98\x2e\x7e\xa2\x74\xa6\x37\x07\x67\xda\x15\xfb\xda\x2d\x4c\xd3\xee\x38\x95\xee\xf8\x53\xc7\x9f\x76\x1f\xc5\x57\xf5\x0f\x75\x1c\xa9\xe3\x48\x1d\x47\x62\xe5\x33\xbd\x01\x3c\xd4\xbd\x58\x51\x07\x14\xd5\x01\x45\x75\x40\x51\x1d\x50\xd4\x23\x1f\x97\x0e\x28\x6a\xd5\xaa\x3c\x14\x50\xd4\xb3\x3f\x3e\x6b\x04\x88\x72\x40\x0d\xae\xd4\xad\x23\x99\x03\xf6\xec\x8f\x87\x63\xa5\x0a\x0f\x43\xdb\x6c\xe4\x4e\xdb\x33\x68\x00\x55\x7d\xdb\x76\xdb\x41\x52\xfd\xde\x20\xa9\x72\x1f\xc5\x13\xc0\xa5\xba\x9f\xae\xbc\xe3\x80\xaf\x4e\x47\xee\x3c\xb3\x9d\x16\xf9\x54\x3d\xb3\x4f\x1a\x01\xeb\x4b\x0e\x3d\x7a\xc8\x98\xa3\x0e\x10\xeb\x01\x01\xb1\xee\xcf\x5c\xbb\xe8\xa7\x8e\xc7\x76\x3c\xf6\xf7\xc3\x63\x3f\x47\xf4\x53\x07\xc3\xd5\xc5\x46\x3d\x25\x2c\xae\x5d\xc9\x33\xbb\x45\xe5\xda\x19\x2f\xef\xe2\x9e\xbe\x14\x7e\xfe\xd4\xa0\xc0\xaa\x12\xfd\x7d\x0c\x85\x9d\xb4\xf2\xa5\x48\x2b\x9d\x5f\xb9\x74\xa6\x37\xc0\x03\xbb\x37\x33\xba\x2f\x32\xd8\xfd\xf9\x4e\xc7\x70\x3a\x86\xf3\x20\x11\x4c\x5d\xe8\x52\xc7\x62\x3a\x16\xb3\x3d\x18\xd9\xbd\x79\x4b\x07\x4b\xd6\xc1\x92\x3d\x41\x58\xb2\xa2\xb9\xa3\xc3\x26\xeb\xb0\xc9\x3a\x6c\xb2\x0e\x9b\xac\xc3\x26\xb3\x64\xd2\xa8\x2a\x61\x16\xc9\x78\x02\xa5\x9b\x12\xa9\x12\x99\x2e\x5f\x45\x5c\xeb\x55\xf1\xc7\x7e\x3b\xa7\x52\xcd\xf8\x1c\x02\x81\x28\xb8\x72\x4e\x8d\x58\x00\xad\x80\xc1\x10\x25\x75\x3f\x19\x9d\xc8\xa8\x7f\xb0\xb4\x03\x76\x63\x94\x32\x58\x65\x0a\x1c\xe2\xf1\xd2\x7c\x21\x43\xdb\xb2\xd3\x0a\x9f\xb4\x56\x58\x5c\xe1\x55\x8b\xef\x7d\xa4\x10\x52\x9e\x8c\x64\x9a\xf0\x64\x69\xd5\x2b\x90\x0b\x33\x9d\xf1\x28\x5a\xb2\x79\xa2\x16\x32\x14\x9a\x4d\x32\x19\x8a\x08\x76\x4b\xc5\xec\x0e\x31\xaa\xa4\x2e\x1f\x37\xda\x07\xc2\x97\xdb\x82\x0e\xa1\x23\x89\x58\xd4\x9a\xc9\x14\xda\xba\xd0\x4a\x6d\x46\x07\x3c\x1f\x06\x58\xbc\x34\xf9\xf8\x02\x15\x6b\x19\x8a\x04\x83\xe3\xcc\xd1\x08\xa9\x23\x37\x25\xc3\xfe\xe6\x2a\xa4\xa0\xba\x50\x01\x05\xc2\xb8\xeb\x78\x59\x9a\xf9\x80\xbd\x8b\xa3\x25\x04\xac\x17\xdf\x48\x57\x6a\xc6\x93\x0f\xf8\xaa\xdb\xc2\xb0\x6f\x07\xec\x6f\xea\x4e\x2c\x44\xd2\x63\x72\xcc\x66\xe6\x8c\xa5\x53\x40\x24\x28\xf5\x24\xb4\x0d\x4f\xb8\x93\xe9\xd4\x8c\x58\x26\xe5\xce\x28\x2c\x5b\x8b\x14\xce\x7b\x62\x59\x95\x9e\xf1\x28\x32\xe7\x1e\xaf\xb9\x1a\x23\xf5\x25\xaf\x9d\x9d\x78\xf9\x75\x05\xa8\xc0\x86\x45\x6a\xd8\xe2\x91\x52\x91\xe0\x71\xa7\xf4\x7f\xd9\x4a\xff\xfd\xbd\xe0\x0f\xbd\x62\x6e\xd2\xb5\x4b\x32\x4f\x84\x91\x28\xa4\x8a\x31\x6e\x6c\xcd\xa9\xbc\x2c\x35\xb7\x5a\x1c\x7d\x02\x7a\x41\x4d\xe2\x09\x92\x0e\xb8\xab\x91\xba\x13\x49\x7e\x65\xd8\x3b\x4c\x6b\x79\x8b\xd7\x9e\x7a\xfd\xc1\x34\xba\x74\x6d\x7c\x29\xbd\xae\x85\xa1\x16\x59\xac\x45\x3a\x40\x5d\xc7\x25\x64\xf0\x68\x3e\xe5\x7d\x00\x8f\x04\xb6\x66\x73\x34\xa6\x2a\x56\x09\xca\xcc\x9a\xee\x03\xc6\xfc\xc7\x90\xb7\x61\xe6\xf1\x56\xc5\x97\x6e\xfc\xee\x45\x63\xc1\xcd\xea\x6e\x41\xcc\xe1\xd2\xae\x59\xd3\x5c\xf8\xb0\x0c\xbf\x4c\x58\x61\x7a\xb4\xd2\x3c\x48\x33\x1e\xe5\x4d\xc8\x88\x01\xce\xfd\x40\xc8\x85\xb0\xac\x49\x50\x64\x56\x31\x77\xc9\xe8\x84\x40\x95\x31\x6c\x41\x02\x7d\x07\xce\x51\x9a\x1d\x9a\x49\xcc\xf8\x64\x9c\x9e\x9e\xd4\x4f\x9d\x84\xa3\x2d\x82\xc8\x61\x5d\x1e\xd1\x72\xe5\xc9\x9b\xab\x2c\x56\x45\x41\xb4\xd9\x6c\xb5\x81\xc5\x6a\x85\xa4\xbb\xc6\x2f\x52\x69\x5b\xe7\x20\x29\x9e\x95\xb6\xba\x78\x27\xa8\x3e\x61\xf7\x85\xb4\xee\x0b\x58\x05\x72\x60\x94\x44\x93\xdd\xb8\x32\x56\x69\x61\x5e\x57\x9d\x53\xe3\x77\x2b\xdf\x6c\xe6\xd4\x80\xc3\x6a\x47\xf1\x19\x04\x9b\x96\xdc\xe7\xd1\xfd\x26\xdb\x70\x9f\xdd\x55\x71\x29\xdc\x72\x4a\x12\x68\x69\x70\x79\xfd\xe6\xf2\xea\xcd\xab\xf3\x9b\x37\xaf\x59\x1f\xc5\x10\x34\x32\xd2\x50\x2a\x84\xc9\xdc\xe8\x30\x77\xd6\x1b\x49\xab\x3c\xf5\xc3\xc5\xf1\x61\xe1\x99\x01\xeb\xcc\x3a\x1d\xb7\xec\xcc\x3a\x9d\x59\xa7\x33\xeb\x74\x62\xcf\xd3\x10\x7b\x3a\xb3\x4e\x67\xd6\xe9\xcc\x3a\xbf\x3b\xb3\xce\xa6\xd1\x48\xeb\x24\xeb\xce\xc0\xf3\xbb\x13\x59\x9f\xb0\x81\xa7\x4e\xf5\xeb\xac\x3c\x9d\xb8\xd3\x59\x79\x9e\xac\x95\x67\x63\x86\x94\xaa\x84\x4f\x84\xd9\xd3\x57\xd7\x17\xaf\x13\xb9\x10\xc9\x2a\x54\x59\xdb\x86\x05\x7c\x6e\x76\x40\xd7\x40\xf2\x71\xf6\x8a\x40\x8b\x12\x76\x8d\xfd\xb3\x0b\x43\xb3\xc7\x3c\x10\x6c\xff\xd5\xf5\xc5\x01\x5b\xa8\x28\x9b\x09\x16\x62\x67\xa1\x98\x47\x6a\x29\x42\xa6\x28\x8b\x16\xd3\x65\x07\xec\x7b\xb7\xc2\x8c\xa7\x29\x0f\xa6\x2c\x14\xf0\x1f\xaf\xbe\x57\xa6\x2d\x6e\x15\x51\x80\x54\x99\x56\x22\x99\xc9\x58\x38\x15\x98\x1e\x97\x78\xb1\xcd\xe6\x63\xef\x91\x48\x5b\xf6\x60\x04\x24\x7f\xb2\xb1\x10\x21\xb0\xa6\x91\x60\x73\x43\x82\x61\xf8\x33\x95\xc5\xe9\x80\xe5\x0b\x65\xe3\x21\x11\x17\xce\x8b\xe7\x0a\x3b\xc6\xfc\xa4\x19\x73\xc7\xad\xbe\x14\x6e\xb5\x9d\x72\xee\xa9\xe6\xee\x2f\x0c\x44\x8f\x43\x19\x98\x13\x5f\x81\xf9\x7c\x75\x7d\x61\x49\x1a\x41\x09\xfa\x3b\x3d\x06\x4d\x53\xfd\x85\xc9\x94\xfd\xf8\xfe\xfa\xc6\x6c\x50\x01\xd0\x85\x52\xf9\xf3\xfa\x83\xa6\xbf\xef\x44\x7a\x19\x65\x13\x19\x9b\x77\xef\x1f\xb0\x80\x47\x11\x25\x02\xf0\x94\xde\x86\x96\x6b\x7a\x33\xf4\x04\xc8\x00\x23\xc1\x5e\x9e\xb2\x60\xca\x13\x1e\xa4\xe6\xe5\x2a\x61\x91\xd0\xba\xc7\x46\x62\x22\xe3\x18\x42\xc0\xe3\xd0\x1c\x2c\xf3\x27\x68\xe8\x3c\x46\xbd\x19\xb0\x43\x65\x90\x3f\xcd\xf6\x7f\xe6\xfd\x7f\x1e\xf5\xbf\x3e\xef\xff\xc7\x2f\x07\xd8\x38\xe4\x7a\x2a\x34\xdb\xef\x1f\xf4\x58\xa8\x52\xcd\xf6\x07\x07\x54\xeb\xca\xeb\x43\xb3\x91\x48\xef\x84\x88\x3f\xb3\x8d\xc3\x68\xb7\x1b\xa3\x44\xd4\x31\xc8\x6b\xd3\xd1\xca\x93\x84\x16\xd8\xc0\x11\x57\xbb\x99\xf8\xfc\x16\x99\x3b\x30\xf6\xc7\x14\x4d\x68\xda\x2b\x81\x86\x9d\xc0\xb0\x1b\xaf\x53\xcd\x4a\xaf\x03\xb9\xf7\xdb\xd5\x42\xdc\x97\xd9\x70\xc7\x73\x9f\x34\xcf\xdd\x5a\x19\x6e\x38\x8b\x5b\xab\xc1\x75\x62\x71\xa7\xfa\x76\xc2\x44\xa7\xfa\x7e\x06\xfe\xb2\xc3\xc8\x86\x26\x6e\xde\x82\xc7\x98\x76\x96\xec\xe8\x32\x83\xe7\x39\x05\x6a\xc3\x62\x40\x19\xbd\xca\xb7\x62\x15\x5d\x28\x36\x2e\x48\x9f\x52\x83\x54\x51\x54\xa6\x69\x87\xd1\xa7\x8d\x5a\xaf\x19\x05\x0e\x75\x7f\x24\x02\x9e\x69\x80\xee\x93\xb3\x79\x24\x66\x0e\x93\xd9\xf4\xf4\xca\xa9\xd5\x97\xd9\x28\x92\x7a\xfa\x13\x74\xbd\x7f\x60\xce\xf0\x54\x85\x07\x36\xcb\x88\x70\xb2\xdb\xe8\xe7\x96\xa3\x59\x6c\x4b\x6a\x48\x83\x96\xce\x30\x80\xe0\x82\xc1\x54\x04\x1f\x88\x91\x42\x0b\x6c\x3e\x03\xfa\x94\xf2\x34\x43\x88\xc2\x3b\x6e\x08\x55\x16\xa7\x32\xf2\xda\x02\xf9\x84\xf6\x46\x86\x16\x63\x73\xdd\xe6\x89\x0a\x84\x00\x01\x37\x55\xa8\x9e\x03\x86\xef\x0d\x4d\x59\x7c\x44\x06\xda\xa7\x07\x13\x16\x28\x95\x84\x32\x86\x35\x06\x31\xb7\xba\xc6\x66\x08\x48\x0e\x57\x0f\xd5\xfa\x60\xaa\x1b\x21\x35\x0b\x94\xd9\x80\x34\x47\xfe\x72\x47\xe8\x4a\x4c\xa4\x4e\x13\xe7\x71\x62\x13\x9e\xc2\xe4\xd0\x45\x15\xd2\x26\x88\x3c\xd3\x2b\x47\xc9\x4e\x15\x1b\xf3\x48\x93\xbf\xbb\xf2\x5e\x57\xe9\xfc\x83\x9c\xcf\x0d\x31\x7f\x97\x4e\x45\x72\x27\xb5\x58\xdd\xde\x6c\x5f\x63\x1c\xc3\x4a\x27\xf7\x5c\x85\x17\xf1\x58\xbd\x8b\x7f\x34\x6b\xbf\x0e\x89\x61\x5c\xf4\xd9\x17\x1f\xde\xe4\xf0\x87\x21\x50\x75\x1e\x55\x0c\x37\xfb\x91\xfc\x20\xcc\xb7\x46\xa3\x82\x57\xbc\xbf\x78\xdd\x63\x22\x0d\x06\x07\x2c\xcc\x80\xf7\xc2\x39\xc9\x97\x41\xc3\x1e\xd1\xc8\x68\x79\xcb\xdd\x12\x50\x48\x5a\x6b\x0f\xb2\xb1\x19\x86\x05\x9b\xc7\xf3\xf3\x47\x03\xcf\x83\x36\x4a\x53\xe6\x1a\x0a\x1b\x18\x22\x53\xb0\x96\x99\x63\x86\x27\x07\x16\xca\xda\xb2\x60\x14\xe6\xf5\x95\xf1\x71\xcd\xf0\x36\x9b\x4b\x2e\x3e\xa6\x16\x88\xce\x0c\xe2\xad\x0a\x45\xf9\xc6\x9b\x1d\xd7\x95\x71\x82\x1c\xab\xe7\x2a\xd6\xd2\xd6\x2e\x98\xf3\x44\x5b\x55\x12\x82\xa5\xb8\x93\x55\xfc\xf7\xd3\x9a\xc8\xea\x48\xf0\x25\x63\x15\x45\xea\xce\x3c\xe9\x7e\x34\xa3\xb4\x07\xd0\x3e\x3e\xae\x9c\x09\xed\x1f\x19\xf2\x92\x22\xdf\x95\x93\x69\xca\x26\x89\xba\x43\xb8\x55\x0c\xfd\x12\x63\xf9\xb1\x10\xd1\x31\x60\xc3\xbd\x40\xe7\xcc\x81\xd8\xf1\x5c\x85\x03\xa3\x4b\x0f\xf7\xce\xcc\x2b\x51\xf7\x5f\xd9\x12\xcc\x7a\x7e\x73\x4c\xfb\x6c\x7c\x26\x93\xa1\x69\x8d\x02\xcc\xbe\xf9\xe6\xfd\xc5\xeb\x83\xfa\xf6\x62\x3e\x15\x33\x91\xf0\xc8\x3c\x31\xdc\x33\x53\x1d\xee\x31\x39\x1e\x97\xc9\x5f\xcc\x5c\x53\x26\xe3\x48\xc6\xf6\xd7\x61\xcc\xd6\xfc\xcf\xcb\x11\x06\x7e\x86\xfb\x70\x0d\x82\x66\x8f\x29\x47\x28\x86\x7b\x70\x86\x87\x7b\xc3\x78\x18\xaf\x1b\x2d\x01\xb2\x8b\x3b\x47\xcc\x64\xec\xf3\x8d\xe3\xc1\xf1\x4b\xc0\xa6\xb5\xee\x79\x2b\xa1\xc0\xd9\xc2\x53\xa7\x89\x39\xe8\x6c\x0e\x09\xab\x23\x85\x71\x3f\x6c\xb8\x77\x69\x24\x01\x9d\x8a\x38\x1d\xee\x51\xc6\xf2\x1b\xef\xe5\x38\x85\x1f\xe4\x58\x04\xcb\x20\x12\x3f\xaa\x50\x10\xc9\x73\x5d\x07\x3c\x66\x91\xe0\x0b\xe1\x6e\x0c\x0b\xa5\x76\x74\xf6\x50\x25\x4c\x4e\x62\x0c\x47\xb2\xe1\x05\x03\x76\xae\x4b\x93\x78\x01\x59\xd0\xf1\xb3\xd4\x8d\x32\x6f\xde\x2b\xbc\x0c\x66\x69\x1b\xa9\x58\xb0\x99\x0a\xc9\x5d\xef\x1b\xc2\x31\xdb\xd7\xda\xc2\x1d\xc9\xcf\x6f\x7f\x6e\xa3\xb6\xeb\x03\x1d\x01\x73\x96\xba\x07\xeb\x27\x3e\x72\xc3\x64\x00\xe3\xd7\x28\xc7\xb3\x99\xe9\x07\x4e\xc5\x9c\x27\x7c\x66\x7a\xb0\x06\x8a\xb0\x24\xbe\xb4\x27\xf1\x8b\xea\x2a\xaf\xd3\xe2\xea\x1e\x71\x6a\xf4\x9d\x99\xc2\x07\xca\x6c\xc7\x96\x8d\x14\x9f\x16\x92\x28\x95\x8d\xca\x92\xe3\x5c\x3d\x34\x7c\x13\x92\xa0\xa5\x2e\x1d\x98\x1e\xad\x1b\x49\x75\x99\xe6\x13\x51\xcc\x94\x47\xda\x57\x14\xf7\x20\x96\xc4\xca\x4e\x48\xd1\xbc\xa3\x60\x56\x1a\x3b\xcb\x78\xc4\x2e\x7f\x3a\xbc\xfc\xe9\x15\x9b\x89\x60\xca\x63\xa9\x67\x38\x4a\xb8\x4a\xb8\x5b\x30\x26\xef\xc4\x82\x76\x05\x53\x35\x3f\xf7\xdc\xec\x79\x92\x8f\x8c\xae\xb5\x84\xb8\x3d\xa4\x6a\x14\xbc\xe1\xe4\x15\xff\xea\xda\xa3\x23\x13\x16\xd9\xf5\x86\x29\x93\xb8\x80\x0b\x65\x7f\x80\xc3\x80\xb1\x24\x03\x76\x6e\x57\x79\xca\xad\xab\x83\xdf\x99\xa1\x58\x9b\x86\x2f\x4e\xd2\xfd\x9d\x28\x92\xb5\x26\x22\x65\xbc\xca\x5a\x72\x0b\x26\x9d\x70\x9c\xe2\x80\x7d\xab\x12\x0c\xfb\xab\xba\x94\xdc\x72\x23\x63\x71\xab\xa3\x85\x70\x9a\x94\xa7\x92\x18\x8a\x34\x91\xe9\x34\x1b\x19\x62\x14\xaa\x40\xe7\x14\xa9\x1f\xa9\x80\x47\x7d\x5a\xd7\xc1\x34\x9d\x45\xf9\x34\xcd\xf5\xf4\x6f\xa6\x1d\x11\xde\x10\x8d\x57\x15\x25\x50\xf8\x1e\x3f\x1a\x1d\xdb\xac\x4c\x18\xda\x32\x1d\x82\x8d\x33\x08\x15\x2a\x85\x24\x8d\x8c\x12\xf9\x80\xc5\x39\x0a\x3f\x15\xb4\x34\x73\x13\xfa\xae\x53\x91\x6e\x00\xe2\xde\x4e\x99\x32\xfb\xbc\x5a\x8d\x32\x2d\x6a\xca\x80\x91\xd3\x30\x8a\x3c\x31\xc3\xb4\xd0\x29\x88\x9c\x86\x14\x72\x16\x03\xe1\xf6\x1b\x50\x14\x6a\x2c\xf0\x10\x07\x89\x30\x32\x32\xdd\x58\x78\x15\x59\x45\x10\xc0\x24\x5a\x02\xcd\x8e\x94\x11\x54\x34\xc6\x45\x65\x24\xf4\x9a\xce\xfb\xd8\x6f\x3f\x41\xd1\x9b\x27\xcc\x5c\xae\x80\x27\xae\x02\x4b\x82\x12\xf5\x07\x5f\xd0\xe2\x59\xaa\xcc\x34\x02\x8c\x11\x56\xf3\x2c\x6a\x18\x85\x85\xee\xf1\x44\x29\x4f\xb2\xb3\x9d\xce\xc1\xd2\xcf\xec\x20\x00\x5b\xc4\xf5\x34\xa5\xc8\xd3\xdc\x5f\x00\x35\x4a\x70\x69\x8a\x00\x12\xe6\x82\x48\xad\x01\x05\x5d\xda\x7a\x45\x84\xeb\x62\xfe\x11\xe4\x8e\xf4\x8c\xd2\x9a\xf1\x05\x97\x11\x84\xc0\x91\x1b\x36\x86\x3b\x46\x03\xb7\x02\xa6\x8d\xe4\x37\x42\x96\xba\x63\x22\x56\xd9\x64\x4a\x4c\x27\x75\x3c\xd0\x6d\x87\xb3\x4e\x15\xe7\xc1\x63\xf6\xee\x2e\x36\x9a\x8e\xc3\xae\xa9\x82\x2b\x05\x2a\x41\x59\x13\xb4\xb7\x38\x5f\xcd\xce\x8a\xfb\xa4\xad\xb8\x9d\xb1\xf3\x4b\x31\x76\xb6\xf4\x9c\x3a\xff\x68\xc1\xf7\x58\x32\x10\xc1\xfd\x35\x0d\x9a\x10\xca\xef\xef\x9e\x33\xe4\x65\xad\x73\x4e\xaf\xb2\xe3\x59\x46\xf6\xa5\x38\xe8\x60\x32\x0f\x60\x3a\x35\xfd\xb6\x89\x16\xca\xdb\x35\x72\xfe\xda\x7d\x30\xc2\x97\x6f\x75\xa8\x4a\x03\x2d\x58\x40\x64\x44\xbd\xd4\x70\xb4\xfb\x9c\x2b\x94\x5a\xcd\x44\xae\xea\x49\x62\xd9\x5e\x9b\xbf\xb6\x5c\xf6\x8e\x34\x97\xbc\xc6\x1d\x58\x8e\x63\xa7\xb5\x41\x35\x4a\xc7\x85\x41\x44\xce\x43\xc4\x6a\x45\xc9\xda\x9b\xd4\x02\x12\xcb\x0f\x25\xdf\x38\x82\x81\x86\xb2\xe3\x18\x86\x2d\x10\xb8\x54\x28\x2e\x5e\xaf\x99\x29\x36\xb2\xf3\x83\xb5\x76\x7c\x81\x66\x8a\xbc\xc1\xa8\x9a\x52\xdc\x15\xd6\x19\xed\xad\x05\x55\xdf\xc8\x9a\x48\xe6\x03\x23\xe1\x80\xc2\x45\xa7\x85\xe9\xa5\x06\xe7\xa4\x9f\x26\xa5\xa7\x3c\xf1\xd7\x48\xcd\x44\x1c\x44\x68\x09\x41\xcc\xbc\xd0\x70\xf3\x6f\x73\x65\xbd\xe7\xbf\x0e\xa5\x00\x60\x69\x2a\x2f\xa8\x63\x66\x01\x40\x60\xe6\xaf\x63\xa3\xc8\x5a\xfb\x56\x71\x28\xc5\xc7\xbd\x41\xf8\xcf\x9f\x1b\xad\xf3\xdf\xa6\xa2\xa0\xc6\x4a\xad\x33\xa1\x3d\x9b\x81\x7d\xbe\xd8\xbf\x19\x14\x9a\x8c\xad\x1e\x87\xe3\xb4\x17\x9a\x64\x48\x89\x25\x8d\x50\xe0\x76\xab\x9b\xaa\xe2\xd8\x1c\x87\x60\x99\xb6\x02\xc0\xc5\xeb\xdc\xdb\x50\x7a\x37\x48\xe0\x59\x1c\x8a\x44\xa7\x3c\x0e\x7b\x4c\x0c\x26\x83\x7c\x4e\x40\x34\x04\x07\x1b\x82\x5b\xa8\xf2\x2d\x72\xc1\x80\x9b\x9f\xbe\x54\xcd\x55\xa4\x26\xcb\xef\xc5\x72\x9d\xb1\xc3\x6f\x5a\xf6\x5c\x7f\x30\xdf\x91\xce\x99\xdf\x1a\x1b\xd7\x03\xdb\xc2\x3d\xe3\x2b\x10\x2b\x1e\x81\x24\x08\xb4\x90\xec\x43\xb0\xc6\x2e\x49\xd1\xd5\xc4\xb5\x6f\xc6\xd7\x58\x29\x3d\x5f\x34\xcd\xf6\x69\xd5\x02\x35\x9b\xf3\x78\x39\x08\xd4\xec\xf0\x9f\x2a\x16\x08\x06\xe8\x7f\x6b\xb4\x12\x15\x0f\xf7\x0e\xda\x0c\xcb\xed\xbb\x1b\x93\x3b\x7d\xc5\x31\x71\x50\xc9\xe0\x1a\x59\xc9\xb6\x60\xcb\x16\x1f\xe7\x0a\xf5\x34\x5d\x79\x54\xb3\x88\x8f\x44\x04\x99\x98\x46\x96\x53\x77\x71\x41\x4d\xa8\x9c\x6a\x00\x2a\x74\x9d\xa0\x29\x03\x06\x68\x58\xa2\xd5\x96\x0a\x27\x15\xb6\xa9\x14\x0f\x2a\x83\xa9\x7d\xb1\x4c\x73\x2c\xbd\x34\x91\x62\xe1\x51\x17\x6f\x24\x20\xd0\x83\x55\x7e\xc4\x83\x0f\xf6\xbc\xdb\x4d\x46\xe3\xe7\x5c\xe9\xdc\xa6\x1e\xca\x31\x28\x46\x29\xd2\x07\xf3\x84\x19\x52\xfe\x75\x61\x25\x06\x39\x78\xe7\x48\x58\x63\x57\xee\x2f\xb0\xe8\x8c\xce\x30\x49\xcf\x3e\xa9\x32\xa1\xc0\xb4\xaa\xc4\x7d\x9d\x48\xd5\x5e\x5c\x59\x1f\x4b\x64\x5b\x35\x44\x12\x79\xea\x7c\x17\x47\xf4\xb4\x35\xd0\xfb\xc4\x11\x55\x45\xe6\xdd\x44\x11\x15\xf5\x8a\x2e\x86\xe8\x77\xac\x56\x77\x31\x44\x8f\xac\x02\x3f\x54\x04\x91\x33\x38\xac\xe5\x2b\x10\x3d\xb4\x91\x0a\xdc\xc2\x22\xbe\x9e\x09\xd1\xc3\xeb\xc0\x30\xec\x2b\xfc\x0a\x18\xfe\x30\xbd\xe1\x58\x6b\x31\x40\x30\x40\x39\xed\xd8\x37\x42\x9b\x66\xf9\x88\x73\xda\x6a\x24\xad\x2c\x76\x73\xe8\x51\x0e\x32\x48\x2c\x81\x9a\x91\xd4\xb2\xa3\x12\x72\x8d\xb6\x8a\x7b\xbb\x51\xe6\x3c\x0d\xa6\xfd\x99\x48\x26\xa2\xff\x41\x2c\x41\xc1\x2c\x0a\x2e\xf5\x4f\x80\x35\x5f\x4c\x96\x68\x2d\x4b\x26\x5b\x58\x98\xec\x56\xee\x40\x22\xa2\xac\xac\x75\x60\x3e\x7e\x33\x86\xbf\x8d\x48\x38\x71\xce\x63\xac\x4f\xcc\x29\x9b\x5c\x8d\x9d\x92\x66\xbe\x46\x51\x39\xf7\xb8\xfe\x44\xce\x4c\x12\x54\xc3\x65\xcc\x67\xd6\x77\x62\xa5\x70\x11\x0e\x86\xf1\x30\xf6\xdf\x2d\xea\xb2\xa7\xfe\x52\xb1\x5d\xd8\x37\xe3\x50\x78\x10\x40\x18\x17\xb8\x22\x45\x1a\x84\xa8\xa6\xb0\xdc\xa4\x09\x21\x1a\x6d\x04\xb9\x28\x52\x77\x38\xf4\x37\x1f\xe7\x3c\x6e\x23\xd2\xd5\x3c\x62\x44\xb2\x3b\x1f\x93\xa5\x32\x62\xf3\x90\xd5\xa2\x85\x79\xac\xa1\x96\xc1\x4a\x5f\x3c\xf4\x22\xc2\x1b\x94\xf1\xcb\x93\xa9\xa9\x78\x21\x0c\xf3\x0b\xd2\x5c\x65\x49\xdd\xa3\x66\xb0\x89\x70\x3e\xe8\x35\xdb\xc6\xde\x78\x71\x7d\xe4\xc9\xb2\x02\xad\xd5\xce\x72\x45\xd7\x29\x30\x05\xc2\xa7\x07\xec\x3c\x26\x0d\x86\xa6\xb0\xbc\x16\x46\x0e\x57\xc9\x8d\x48\x66\x96\x19\xf2\x58\x93\x23\x0b\x60\xce\xf3\xde\x12\x9a\x0e\x78\xce\x8a\xba\x7e\x5b\xf0\x07\xf2\x9d\x3b\xcb\x5b\x03\xee\xc3\xb6\xc4\x29\x50\x09\x5c\xc2\xba\xe9\xdd\x4b\x3e\xec\x14\x8e\xce\xe5\xd5\xc9\xe6\xad\x2e\xe1\x17\x8c\xe4\x03\x01\xa7\xef\x60\x9c\xeb\x48\xff\xeb\x7a\x42\x5e\xc3\xb0\x2d\x25\x28\x31\xac\x44\x90\xa3\x3f\x74\x50\x5c\x10\x23\x93\x8f\x80\x8c\xb2\x3f\x0f\xf7\x12\x85\x16\x45\xad\xc6\xe9\x70\xef\x97\x01\x7b\xab\x52\x1b\x2e\x2a\x42\xd6\xb7\x21\xb7\xc8\xcb\x2f\x7f\x22\xd4\x2d\x2d\x67\xf3\x68\xc9\xc6\x5c\x46\x4c\xa2\x5f\x08\xf8\x38\x3c\xf9\x38\x06\x2c\x3f\x96\xd9\x89\x3d\xe5\xa5\xcd\xe3\x8d\x2f\xeb\xc5\x88\x8d\x86\x52\xc6\x7d\xc9\xa5\xad\xbc\xce\x4d\x49\x04\xc3\xe0\x56\xbb\x89\xe4\x5a\xb1\x44\x19\xa3\x31\x16\xab\x76\xb3\xc1\x02\xae\x4a\xf5\x97\x8b\xa0\x51\xee\x75\x6b\xf1\xa2\xf2\x81\x15\xd3\x67\x6d\x41\xa9\xd2\xf0\xb7\xb0\xc7\x27\x22\x88\xb8\x9c\xb5\xc2\xaf\x7a\x80\x93\x0f\x7c\xd2\x1b\x41\x11\xb8\xea\xb5\x80\x48\xff\x2d\x90\xa3\x60\x1c\x54\x77\xf3\xc7\x62\x8c\x55\xdd\xcc\x7e\x2a\xb7\xf7\xd6\x7b\xaa\xee\x2a\x33\x7c\x65\x46\xec\xc3\x01\xfa\xcb\x61\x78\xf2\x48\x65\x71\x38\x60\x68\x4a\x07\x9c\xad\x1e\x2b\xbc\xe4\x62\x36\x13\xa1\xa4\x04\x05\x8c\xa7\x7e\x50\xb9\xeb\xbe\x65\x69\xfc\x53\xfb\xc4\xac\x15\x05\xbd\x6c\xd7\xe6\x0a\xbf\xf3\x35\xb6\xf0\x72\xd3\x3a\x83\x78\xe1\x42\x74\x28\x53\x4f\x5c\x3e\xdd\xa8\x0a\xaa\x6f\x10\x2f\xea\xe1\x3b\x37\xcf\x14\x4e\x7c\x67\x1c\xef\x04\xf0\xce\x38\xfe\x79\xd8\xcd\x83\x58\xc8\x91\xa3\x9f\xbb\xb4\xc8\x15\x2c\xa7\xdc\x34\x07\x98\xc2\x3c\xb2\x14\x9d\xde\x2e\x41\x31\xb1\x99\xa6\x9e\xed\xdc\x50\x62\x1b\x83\x72\xe8\x2e\x62\xfe\x23\x18\xa9\x87\xf1\x30\xae\xbc\xac\x03\x69\xfa\x8d\xf2\xb5\x8e\xec\x7f\x29\x64\xff\xde\x20\x4d\xbf\x69\x6c\xa1\x32\x45\xda\x0e\x62\x28\x14\x1a\x32\x27\x91\x48\x1e\x12\x85\x24\x9a\x38\x12\x53\xbe\x90\x2a\x19\xb0\x4b\xca\x53\x71\xd1\x66\x5e\x84\x14\xc6\xd6\x35\x85\x68\x43\x56\xfb\x4e\xe7\x89\x3d\xae\xd9\xf1\x34\xd3\x76\x8a\x15\xd2\x4d\x97\xaa\x66\x56\x50\xf5\x78\x69\xd3\xec\xed\x35\xaf\x30\x10\x97\xe4\xdd\x63\x72\x20\x06\xf8\x68\x19\x14\xe0\x0b\x81\x6c\xaa\x30\xe4\x87\xe6\xf8\x6b\x14\xcd\xba\xe6\x75\xca\x66\x13\xc3\xee\xb8\xf3\x93\xe6\xce\x5b\x6b\x9d\xe5\xfd\xde\xbd\xe2\x59\xb9\x09\x9d\xf2\xd9\x49\x21\x9d\xf2\xf9\xf9\x58\xd1\xa3\x28\xa0\x98\x10\xbf\x01\x43\xa2\x0c\x7a\x2f\x8f\x27\xcf\x73\xf0\x1c\x2c\x23\xe1\x70\x87\x06\xec\x0a\x60\x47\x62\x75\x87\x96\x6f\x67\x71\x2f\x45\xbf\x38\xa0\xa2\x85\xe4\x4e\xe0\xb0\xdf\x26\x3d\x26\x63\x4a\x22\x67\x77\x02\x2e\x3a\xc6\x87\xf0\x48\xab\x22\xb0\x07\x84\xb5\xcc\x55\xa8\x07\xec\xcd\x47\x1e\xa4\x54\x7d\x67\x26\x66\x23\x4a\x69\x1f\x09\xa6\x45\x9b\xac\x59\xec\x97\x0c\xf1\xdb\x88\xb4\x36\xb8\xa1\xec\x66\x58\x2b\xcf\x96\xdf\x6c\xd3\xae\x21\x2c\xa6\x82\x25\x13\x8b\x40\x68\xcd\x93\x65\x21\x01\x65\xee\x5e\xea\x30\x22\x7c\x44\x93\xb9\x0a\x9f\x69\xbb\x74\x3e\x40\x42\xd9\x61\x31\x77\x92\x24\x6c\xa0\x97\xba\xfd\xa3\x9c\x10\x2e\x92\xf5\x4d\xb0\x8b\x34\x1f\x6a\x9a\xf0\x58\xe3\x93\xd0\x99\x76\xb5\xc8\x9a\x5e\x8d\xd9\x32\x75\xab\xb5\x9b\x6a\x26\x61\xf3\xc8\x1b\x7c\x7a\xa5\xa1\xbc\x5d\x9f\x4b\xf6\xd6\x8b\xc1\xaa\x6e\x81\xdb\xa0\xad\xdd\x38\x9b\xc7\xb7\xd5\x6a\x53\x1b\x5c\xfa\xd5\x48\x6f\x8d\x2a\x48\x5b\xe0\xb7\xb5\xee\xd2\x73\x0b\x45\xd6\x0c\x35\x5c\x04\x41\x81\x1d\x87\x7c\xbc\x29\x8f\xc3\x48\x58\x09\x95\x54\xa3\x4a\xb6\x9f\x9f\xa4\x57\x4a\xce\xdb\x32\x0f\xaf\xc5\x39\xb9\x71\x01\x66\x36\xa1\x8b\x26\x51\x25\xa2\x46\x36\xd9\x7c\x1c\xba\x4c\xdd\xdb\xd1\xac\xf5\xfc\x62\xa5\x30\x50\xe1\x10\xde\xcc\x9a\x78\xc4\xe6\x3c\xdc\x9d\x9c\xea\x7c\xeb\x76\x62\x1d\xb3\xdf\xe6\x12\x95\x95\xff\xb5\xd7\x08\x15\x77\x7b\x91\x9c\x1a\xbf\x83\x1b\xf4\x26\x49\x54\xe5\x12\x6d\xbe\xd1\xd8\xcd\xaa\xdd\xbd\x01\xd5\x4c\xa7\x4c\x98\xa6\x4c\xc4\x81\xca\x8c\x8a\x26\x42\x8b\x14\x57\x46\xcc\x83\xea\x75\x3c\x5e\x16\xe8\x37\xa4\xc4\x03\xb9\x46\x56\xdc\xce\x44\xb1\xa9\x61\xa2\x57\x39\x2e\xeb\xb4\x92\x8b\x02\x7d\xc9\x51\xc4\x74\x16\x18\x06\x3b\xce\xa2\x68\xe9\x49\x36\x8f\x34\xa3\x2d\x82\x5e\xdd\x51\xfa\xb1\x41\x27\x78\xd0\xf8\x9c\xf7\x73\xc4\xeb\xa2\x35\xa3\xe9\xf6\xfc\x5c\xd7\x82\x58\x41\x48\xeb\xcb\x82\x4c\x53\x4e\x9c\xae\x40\x31\x02\x31\xb1\xe0\x0a\x0e\x4d\x2f\x55\x46\xb3\xd3\xe6\x02\xc5\x29\xfb\x37\x2e\xd3\x6f\x55\x72\xee\x8c\x5c\x88\x91\xe7\xb0\xfc\x3e\xdf\xfe\xad\x0a\x24\x42\x4b\xdc\x13\xba\xd4\x35\xa6\xc1\xfb\x5e\xea\x07\xb6\x36\xba\x0b\xbf\x33\xca\x5f\xde\x8e\x7a\x72\x0f\xad\x72\x67\x1d\x8f\x57\x50\x4a\x4b\x60\xdc\x1a\xb4\xa0\xf7\x33\x23\xe7\x4f\xd6\x89\x16\xd7\xa9\xdb\x36\x19\xd9\x15\x6f\x1c\x48\x7e\x3b\x5e\x97\x36\x85\xf6\x97\x4c\x34\x84\xeb\x15\xa9\xc9\x44\x84\x3d\x66\xf4\x2e\xc7\xcd\x63\xe5\xe4\x7e\xa6\x45\xac\x65\x2a\x17\x05\x1d\x65\x9b\x8c\x72\x59\x95\xa1\xee\x61\xcb\xb8\x91\xe5\xc4\x94\xf2\x3d\x90\x33\xe1\xad\xd4\x1d\xd7\xfe\x6a\xad\x3c\x84\xdb\x1e\xaa\x22\x8c\xc6\xba\xc3\x55\x68\x4d\xd6\x33\xcc\x6b\x77\x16\xb2\x48\x82\x51\xab\x88\x95\xe1\xc1\x06\xb6\x38\x62\x41\x0b\x5c\xda\x1f\xf9\x47\x39\xcb\x66\x2c\xce\x40\xa9\x56\x63\x96\xc5\xf2\x1f\x59\xae\x82\xcf\x78\xcc\x27\x45\xd4\x0b\x5f\x36\x27\x2d\x3c\xd3\x45\x40\xb3\xf3\x82\xa0\x28\x35\x22\x5b\x3a\x29\x18\x71\xe6\xb2\x38\xf5\x9f\x42\xe8\x60\x57\xb3\x17\x51\xf9\xa8\xe3\x40\xf4\xe0\x64\xa6\x77\x32\x20\x8c\x59\x48\xb9\x4f\xb2\x48\x30\x3e\x9f\x47\x52\xd8\x84\x9d\xc2\xf8\xdd\xfb\x01\xad\x22\x64\x7c\xa6\xcc\xf9\xcf\xa2\x54\xce\x23\x81\x75\x25\x09\x14\xcc\x01\x48\x10\xe6\x98\xcf\xe1\x20\xc9\xdc\xba\xdb\x01\x2e\x8d\x9e\x71\x59\x1f\xf9\xfa\xb9\x60\x54\x82\x3b\xb4\x53\xcb\x62\x88\x38\xac\x40\x32\xec\xaa\x10\xe5\xc6\x27\x17\xab\xe0\x3d\xc5\xea\x58\xad\xe1\xf0\x0a\x35\x30\x3c\x40\xbc\x0b\x42\xc8\x00\x34\x3c\x43\xed\x2c\x22\x1e\xbd\xa2\x05\x28\x1e\x61\x2c\xb8\x31\xa2\x68\x53\xc0\xee\x49\x4b\x30\x79\x38\x36\xed\x63\xa6\x57\x6c\xdc\x8e\x6b\x12\x44\x42\x57\x08\xac\xf3\x62\x75\x31\x26\x9d\x77\xa7\x2b\x04\xd6\x15\x02\xfb\xdc\xc1\x3a\x25\x81\xa0\xab\x06\xd6\xba\x1a\xd8\xf6\xd5\x49\x4b\x6b\xde\xd5\x05\xfb\x7d\xb1\xe0\xa7\x57\x17\xac\xac\x15\x34\x9a\x0a\xbb\xf0\x91\xdf\x91\x80\xd1\x85\x8f\x3c\xb5\xe2\x60\x3b\x63\x39\x5d\x99\xb0\xae\x4c\x58\x57\x26\xac\x2b\x13\xd6\x95\x09\xeb\xca\x84\x75\x65\xc2\xba\x32\x61\x5d\x99\xb0\x8d\x49\xfc\x16\x65\xc2\x6a\x36\xa6\x2b\x13\xd6\x95\x09\xfb\xd2\xca\x84\x7d\x1e\x20\xee\xed\x5d\xa1\x6b\x8a\x7d\xbd\x7e\x73\x79\xf5\xe6\xd5\xf9\xcd\x9b\xd7\xac\x8f\x8c\x16\x74\x3b\x57\x3b\xca\xc3\xd3\x96\xe6\x3a\xcf\x13\x11\xd8\xcc\x3d\x7a\xdb\xe1\xe2\xf8\x90\xda\x0c\xd8\xb5\xc0\xf3\x9b\x88\x48\x70\x2d\x8c\xf8\x44\x7e\xec\xf2\x41\xf0\xaa\x4c\x75\x85\xc6\xba\x42\x63\x5d\xa1\xb1\x2f\xda\x2c\xdc\x19\x4e\xbf\x14\xc3\xe9\x6f\xa8\xd0\x58\x81\x09\x76\xd5\xc6\x36\xa8\x36\xb6\x03\x5b\xec\xef\xa7\xee\x18\x4e\xf9\xa9\x14\x1f\xeb\x0a\x8d\x75\x85\xc6\xba\x42\x63\x5d\xa1\xb1\xae\xd0\x58\x57\x68\xac\x2b\x34\xd6\x42\x48\xe9\xaa\x8d\xfd\x7e\xd4\xd0\xa7\x56\x6d\xac\x68\xa6\xeb\x22\x93\x3a\x05\xbb\x8b\x4c\x7a\x74\x3d\xf8\xe1\xe3\x92\xba\xe2\x63\x4f\xbc\xf8\x58\x9d\xd5\xa2\x25\x35\x2e\xfc\xf4\xe5\x55\x20\xc3\x95\xe9\xca\x90\x75\x65\xc8\xd2\xae\x0c\x59\x57\x86\xac\xd3\x44\x3a\x87\x58\x27\xaf\x77\x65\xc8\xba\x32\x64\x5d\x19\xb2\xae\x0c\x59\x57\x86\xac\x2b\x43\xf6\x64\xea\xc2\x3c\xa0\x09\xa3\x2b\x48\xf6\x3b\x96\x54\x9f\x68\x41\xb2\x1a\xc3\x44\x67\x3f\xef\xe4\xf1\xce\x7e\xfe\x79\xb8\xcf\x03\x1b\xd1\xbb\xfa\x64\x1d\x9b\xeb\x0c\x32\x1d\x03\xe8\xea\x93\x6d\x10\x8c\xfa\xc5\x17\x29\x6b\x98\x6c\x57\xa9\x0c\xbf\x7f\x72\x95\xca\x76\x2d\x05\x74\x35\xcb\x7e\xcf\x1c\xfb\xe9\xd6\x2c\x6b\x90\x59\x3b\xfd\xb4\x13\x4f\x3a\xfd\xf4\xf3\x71\xa6\x47\xd6\x51\xbb\x12\x66\x38\xeb\xae\x84\x59\x57\xc2\xec\xcb\x2d\x61\xb6\x42\xe1\xea\xea\x98\xe5\x9d\x74\x75\xcc\x36\xe7\x1c\x2b\x05\x84\x2f\xb4\x98\xd9\x4a\x95\xfe\x8b\xa8\x68\xe6\xcf\xb0\x2b\x6b\xd6\x95\x35\x63\xac\xe6\x65\x5d\x59\xb3\xdf\x60\x59\xb3\x5d\xdf\xec\xdf\x75\x6d\xb3\xea\x62\x76\x05\xce\xba\x02\x67\xbb\x96\xd8\xbb\x2a\x67\x5f\x74\x95\x33\x19\xfd\xa6\x6b\x9b\x19\x92\x0c\xa9\x40\xba\x6f\xae\x13\x68\xdc\xf9\xe5\x2a\x34\x30\xb7\xec\x55\xa6\x53\x35\xb3\x07\xf4\x95\x99\x5a\xfc\xda\x5d\xd5\x55\xc9\x87\x2b\x1f\xf4\xa0\x8c\xc1\x73\x92\xcd\x62\x3c\xdf\x30\x1e\x00\xc5\x63\xf3\x44\x22\x0c\x77\x8b\x5c\xc3\xc2\xbb\x57\xe6\x1b\xe6\x1f\xf1\xb2\x4d\xb3\x19\x37\x72\x0a\x0f\x21\x06\xd4\xff\xdd\xfa\x4d\x70\x7c\x5b\x50\x3c\xb7\xb3\xab\x46\x84\x8d\x08\x96\x57\xcd\x51\x9e\x63\xef\xe6\x22\x3e\xbf\xbc\xc0\xd0\xe4\x9c\x36\x92\x2d\x27\x1f\x14\x9c\xff\x67\x46\x1d\x7e\xc6\xbc\x9e\xe0\x1a\x38\x34\x95\x79\x22\x67\x3c\x59\x32\x19\x1a\x0e\x3e\x96\x80\x5f\x0e\x6b\x9e\x2a\xc6\xb5\x06\x1f\x56\x4c\x16\x77\x6d\x9b\x2d\x0d\x95\xa1\x76\xa4\xf4\x38\x92\x04\x00\x5b\x80\xcc\xe8\xd9\x8c\xa7\xd9\x08\x10\x3c\xde\x9d\x5f\x1c\xd2\xf8\xfb\x05\x27\xf0\xe1\x28\x52\xa3\xc3\x19\xd7\xa9\x48\x0e\xc9\x4e\xaa\x0f\x4f\x06\x47\x83\x59\xf8\x95\x11\x70\xfb\x60\x58\x47\x68\x0a\x60\x76\x4d\x11\xe1\xab\x56\xfd\xef\x5a\xc5\x97\x3c\x9d\xae\x59\x77\xdb\x8c\x68\x2e\xa0\x87\xb2\xff\x7d\xfd\xee\x2d\x9b\x9b\x6f\xf7\x41\x88\x41\xa1\x36\x49\xf8\xd2\xd0\x1c\x98\xc4\x41\x8e\x07\x2b\x16\x3c\xca\x40\xf8\xe5\x13\x2e\x63\x23\x77\x01\xae\x3d\x1c\x7d\xcf\x1d\xa2\xd8\x3c\x51\x61\x16\x20\x3b\x42\x17\x4a\x79\x23\xb7\x30\x58\xac\x37\x56\x80\x99\xa4\xee\x98\xc3\x0f\xd6\x2e\xb8\xf5\x08\xe6\x89\x54\x89\x4c\xd7\x05\xba\xdb\x66\x74\xc6\x89\x94\xd1\xa9\x26\x69\x26\x11\x11\x47\x19\x63\x66\x08\x2a\x8f\x03\x51\xba\x7f\x20\x76\x72\x62\x07\x00\x8e\xab\x07\xec\x07\x75\x27\x12\xa2\xbd\x14\x11\x9f\xb3\x8d\xa9\x9c\x40\xc5\x3e\x7a\xfd\x80\x21\x15\x22\xfb\x22\x89\x3f\x6a\x26\x53\x02\xe8\x05\x3e\x2b\x42\x86\x88\xdc\x3a\x10\x31\x4f\xa4\xf2\xe3\xd2\x11\x17\x89\xbb\x2e\xd9\x04\xe2\xef\x81\x01\xc6\xec\x68\x37\x84\xdd\x17\x99\xb0\xd1\x4a\xd0\x1f\x43\x20\x70\x61\x5b\xd3\x8c\x27\x74\x6f\x5b\x2a\x01\x65\xd8\x16\xe8\xaf\xee\xce\x6f\xa9\x24\xdc\x93\x2b\xc6\x8b\x8a\xc3\x7e\x1d\x3f\xb4\x8f\x78\x39\xcd\x53\x75\x87\xb8\x5f\xe8\x7a\xcf\x51\x78\xec\x92\x53\x11\x91\xab\x16\x1c\xd1\x4b\xf8\x5e\x75\x7a\x6c\x33\x8f\x1f\x9b\x51\x94\x28\x98\xbb\x59\x66\x5c\x50\x35\x03\x0a\xb9\xb9\x71\x0d\xd8\x39\x26\xfc\x92\x87\xdf\x34\x3f\x63\x7d\x76\xfb\x56\xc5\xe2\xf6\x0c\x78\x94\x7d\x3a\x41\xc5\x32\x98\xf2\x78\x42\xe5\x24\x5c\xbc\x03\x56\xed\x70\x0a\x48\xaa\x00\xfb\x39\x5e\x12\x16\x36\xc9\x60\x54\x07\xb5\x38\xc4\x81\x79\xdd\xbf\x89\xd1\x54\xa9\x0f\xb7\x67\xcc\x5c\x03\xf4\x36\x63\x06\x17\x16\x16\x51\xa0\xc0\x59\x4f\xd5\x1d\xb6\x06\xd8\x25\x8b\x04\x6b\x77\x65\xc0\xce\xf3\xda\x10\x9e\xda\x33\x8c\x19\x08\x81\x42\x84\x04\x3e\x8f\xbe\xee\xb9\xa7\x5e\xb9\xf2\x12\x66\x4d\x07\x60\x4b\x4d\x16\xe2\x7d\xfc\x21\x56\x77\xf1\xb7\xe8\x56\x41\x89\x96\x8a\x44\x98\x59\x43\x5b\xef\xfd\xde\xe0\xca\xce\xaf\xd6\xe4\x99\xfa\xd8\x54\xe7\xda\xf0\x2e\xd0\xa2\x7b\x97\x60\x95\x52\x66\xe7\x55\x3d\xf5\xd6\x4d\x96\x2f\x82\xdd\xa1\x01\x73\x85\x6d\x00\x00\xff\xd6\x9e\xda\x5b\xaf\xae\x83\xdb\xfc\x6d\x42\xa0\xec\x65\xf9\x1c\xd4\x63\x0b\x69\xda\x93\xa3\x0b\x8e\x5d\x2f\x00\xa3\x60\xac\x47\x70\x33\x57\x42\xd8\x5c\x0e\x1a\x24\x63\x17\xa9\x46\x69\xc0\xe2\x2c\x5a\x6c\x72\x14\x26\x87\xd9\xd1\xd1\x69\x30\x80\xe3\x09\x85\x2e\xcc\x67\x31\xf0\xbf\x06\xff\x39\x7d\xdf\x45\x37\x3d\xe5\xe8\xa6\x2e\xe0\xe7\x4b\x09\xf8\xf1\xe2\x91\x6b\x5f\xb9\x4d\xc4\xef\x8e\xa8\x58\x3b\x50\xe4\x12\xfd\x87\x5a\x18\x86\x59\x73\xeb\x76\xcc\x65\x0f\xc3\xb6\xe7\x73\xc1\x1b\x64\xe4\xed\x22\x7e\x77\x35\xd9\xf5\x71\xc1\xe4\x28\x2c\x3a\xc1\x79\x90\x66\x3c\x02\x27\x62\x0e\x8a\xdb\xc4\x16\x36\xe7\x67\x8f\x1c\xd2\x5b\x5c\xae\x95\xf0\x58\x4d\x73\x6c\x0e\xa1\x6a\x1f\x3d\xb5\xa3\x3d\x7d\xa5\xe2\x70\x5b\x7e\xec\x9e\xcd\x63\x6a\x48\x21\xca\xb5\xed\x2c\x01\xa1\x3e\x70\x4d\x2d\x07\x9b\xab\x36\x09\x3d\x11\xd7\xe9\x4d\xc2\xc1\x26\xaf\xe2\x9b\x47\x36\xaa\x57\xdf\x8e\x0e\xa7\xd4\x1a\xdb\xf3\x69\xa5\xae\x99\x11\x95\x0d\xc9\x57\xb1\xf3\x9b\x83\x2c\x0e\x62\x7d\x83\xb3\xb7\x9d\x67\x84\x5a\x79\x36\x8e\xbe\xb3\x71\xb8\xdf\xf0\xe6\xe5\x1e\x14\x4d\xd8\x67\x38\x70\x37\xca\xad\xd2\xfd\xb9\x5e\x2b\xc8\x60\x23\x1c\x22\x5a\xa4\x7b\x66\x25\xfa\x77\x2a\x09\x7b\x39\x0f\x63\xd4\x2e\xb7\xca\xd0\x42\x3e\xd3\x3b\x18\x69\x3d\x95\x6c\x20\x55\xe5\x08\x87\xc2\x70\x80\x19\x1b\x4e\x7c\x03\x35\xe5\xbe\x45\x1d\x86\xd4\x9b\x6d\xdc\x42\xed\x6d\x1c\x65\xac\x06\x6f\x4c\x37\x60\x80\x90\x71\x10\x65\xa1\x60\x6f\x74\xca\xa1\x9a\x90\x08\x7b\x0c\x8a\xac\x9d\x07\x81\x98\xa7\xe4\x6f\xb8\x01\x8c\x5d\x5e\x34\x2e\xaf\x1e\x70\x4b\xca\x5b\xb6\x4b\xd0\xb2\x7f\x5e\xbd\x62\x1d\x1a\xed\x8a\xc7\x8a\xb8\x7c\x8d\x5a\x48\x97\xdc\xf0\x5b\x10\xff\xdb\x23\xd5\x62\x49\xb4\x38\x94\x0b\x19\x1a\x39\x65\xdd\xc6\xef\x24\xd9\x61\x57\x5a\xb4\xf7\xd6\x2e\x25\xe2\x77\xab\x21\xb9\x94\x88\x8d\x69\xf8\xa3\xe7\x1d\xdc\x5f\x7c\x5e\x93\x85\xf0\xe8\x22\x34\xb0\xdc\x2d\x58\x0e\x3c\x57\x13\x2f\x0c\x74\x19\x46\x43\x15\x1e\xd7\xa9\x11\xcd\x81\x10\x3c\x15\x13\x95\xac\x87\xa4\xcc\x1b\x16\x79\x20\xec\x9a\x08\x7d\xfd\x14\x5c\x2b\x25\x9f\xdf\x48\x44\x2a\x9e\xc0\xb8\xb1\xf4\xc1\x33\x1e\x45\xcf\x0e\xf2\x28\xe6\x79\x46\x02\x0a\x93\x31\x58\xe4\x42\xa9\x03\xb5\x10\xc9\x92\x85\x2a\xc8\x20\x87\x0c\x19\x0e\xc4\x3d\x8c\x96\xce\x3d\x0b\xc1\x71\x08\xb1\x2f\xe3\x85\x22\xcc\x4a\x06\x05\x8b\x6f\xcd\x59\x0c\xd2\x08\xeb\x2a\x46\xd1\xed\xa3\xa3\x93\xb5\xa0\xa0\x1f\x88\x82\x82\x90\x29\x12\x5b\xd0\xc1\xd6\xf2\xf4\xb5\x7f\x5b\xb5\x20\x56\xc9\x0c\x80\xb2\x72\x71\x19\xac\xe6\x32\x9e\x64\x11\x4f\x06\x74\x22\xf2\xf5\x07\xb8\xdf\x38\x10\x84\xe0\xe6\x0a\x2d\x20\xb1\xa6\x12\x77\xb7\xe6\x95\xb7\x8c\xa7\x48\xf0\x84\xdd\x0a\x8c\x2c\xdc\x9c\x8c\x99\x33\xf2\xfd\xfa\xf9\xdb\x66\x6b\xd6\x00\x4e\x9c\x73\x31\xe4\x2b\xe2\x43\x7a\x0d\xf7\x70\x0e\x86\x00\x0c\xf7\xb6\x71\xe1\x46\x59\xc2\xa3\x75\x0e\x5c\x68\x64\x87\x4b\x9f\xfc\x38\x7e\xdf\xd5\x0d\xd7\x14\xe3\x12\x6a\xdd\x48\xf0\x7b\x88\xc5\x41\xd8\xad\x61\x25\xfa\x10\xcd\xc9\x9e\x21\x99\xbe\x21\x2a\x46\xdf\x0d\x06\x03\xfa\x1e\x87\x80\x5f\xdf\x0e\xd8\x8f\x99\x4e\xd9\x8c\xa7\x04\xb8\x51\xa8\x34\xd4\x24\xb9\xec\x7b\x76\x6e\x76\x8b\xdd\x02\xa9\x19\xf8\x9d\x0f\x2a\x23\xbb\x3d\xa0\xf7\x8d\x04\x64\xf6\x44\xea\x4e\x24\x81\xe1\xb0\x5b\x28\x65\x53\x95\xa4\x65\x5a\x59\xb7\x01\x79\x43\x5c\x42\xf3\x91\x08\xa3\x55\x17\xed\x22\xf7\x9c\xb5\xff\xc1\xe8\x0a\xae\x09\x0c\x22\x77\x09\xdc\xc2\x55\x9d\xb5\x58\x99\x87\xa7\x41\x96\x2c\xac\x5b\x55\x6a\xe6\xee\xa1\xfd\x5c\x77\xb4\x57\x4c\xaf\x70\x23\xdd\xd7\x21\x91\x97\x5d\x23\xc7\xe1\x85\x2d\x53\xdc\xcf\xab\x61\xae\x03\xa2\x5f\xf1\x58\xc9\x12\xcc\x4b\x76\x60\x99\x14\x88\x0b\x19\x82\x5b\xc4\x3b\xd6\xb8\xe4\xd9\x83\x6b\x21\x2d\x9d\xa0\x81\xef\xfd\x47\xdd\xd6\xfb\x4a\x8b\xd4\x28\x11\xf9\xd5\x7e\x75\xf5\xba\xc1\x48\x66\x45\xc8\x55\xa7\x1c\x8b\xef\xd2\x11\x37\x04\x01\xbf\x70\x78\x1c\x98\x60\x58\x71\xa7\xdf\x93\x7e\x0f\x06\x83\xc7\x27\xcc\xdb\xc5\x50\x7d\x2e\xdf\x01\x12\xfe\x55\xe7\x04\x29\x3c\x86\x66\x2c\x8b\x8c\xd6\x10\x70\x10\x16\x8a\x5c\xa0\xbc\x8d\x4d\x71\x5b\x35\x31\x09\x6b\x83\xb8\xea\xe2\x18\x7c\x51\x9d\xa7\xae\x0a\x31\xfe\x88\x71\x72\x88\x5a\x95\x7a\x48\x57\xb4\xc1\x36\x5c\x89\x0c\x39\x3e\xfa\xa7\xa0\x43\x06\xee\x7e\x4a\xc9\x24\x14\x7d\x1b\x73\xed\x85\x8d\xf4\x60\x25\x7a\x79\x4a\x3b\x2c\x8e\x19\xa5\x1d\x09\x55\x41\xcf\x1b\x24\x86\x86\xdf\xf1\xa5\xce\x5f\x56\xce\x57\xf5\x0a\x53\xcb\x98\x8d\xf9\x42\x41\x74\x2f\xdd\x4e\x76\xfb\xb1\x6f\x1f\xed\x67\xb8\x26\x7d\x7c\xdb\x2d\x18\x91\x92\x0c\xc4\xc9\x5b\x70\x91\xdb\x40\x99\x9f\xff\xf8\xcb\x00\xa7\x3b\x50\x38\xfb\x9f\x4e\xaf\xe1\xf3\x6d\x31\x2a\x2b\x57\x29\x5d\x71\xf2\x94\xeb\x0f\xfa\x90\x43\x3e\x8e\xaf\x72\xf2\xb9\x3c\xc4\x6d\xef\xbb\x8b\x5a\xfe\xa2\xef\x1f\xe4\xaf\xe6\x49\x16\xcb\x78\x02\x6a\x6a\xa6\xed\x34\xcc\x37\xc5\x89\xb4\x88\xe7\x5a\x99\xc0\xa4\x03\xb5\xd6\xb4\x0b\x6d\xbc\x63\xe4\x57\x26\x68\xa0\x4d\x10\x1c\x8e\xe5\xe8\xfa\x4c\x21\xb7\x86\x90\xbd\x3e\x74\x16\xd6\x45\x23\xb1\xdb\x57\xf8\xc4\x2d\x1c\x8e\xdb\xb7\x0e\x42\xad\x35\x7f\xf6\x26\x66\xb7\x73\xcd\xdc\x5c\xd8\x56\x09\x2b\xc4\x48\x0f\xe6\xe0\xfb\x61\x5d\x2b\x69\xb1\x35\x84\xc6\x4e\x02\x04\xd9\x0d\x6b\x44\xce\x33\x2a\x05\xae\x92\x10\x92\x6d\xe9\xde\xd1\x15\x72\x2f\x31\x8f\x99\x11\xd4\x48\x86\xae\xae\xb7\x63\x41\x68\xd9\x92\x9a\x0d\xf7\xcc\x51\xeb\x1b\x21\x70\xb8\x07\x75\xeb\x10\x11\xdb\x48\x89\x7c\xa4\x16\x80\x48\x57\x6c\x55\xea\x45\xf7\x3c\x42\x00\x63\x14\x21\x8b\xc4\x47\x19\xa8\x49\xc2\xe7\x53\x44\x40\x1e\xb0\xe1\xde\xf7\xd5\x3e\x34\xd3\x29\x4f\x52\x8a\xc3\x65\xc3\xbd\x85\x19\x05\x84\xdf\x73\xa8\x6c\x49\x3b\x0d\xf9\xf1\x14\x82\xbf\x6f\x66\x32\xe3\x7f\x57\x89\xed\xe5\x80\x1e\xb1\xd1\xd5\xd1\x92\x1c\x1c\x30\xcb\xe1\x1e\xa4\xa6\x0f\xf7\xcc\x61\x1a\xee\x8d\x44\x6a\xfe\x36\xc7\x84\x3c\x54\xc5\x8e\x65\xec\x75\x0c\x7c\x52\x63\x9d\x73\x8d\x89\x00\x63\x99\x68\xc8\x98\xfa\xee\x1c\x25\x65\xc1\x4c\x97\xf6\x6f\x78\x17\xdb\xc7\xa2\x16\xdf\x9d\xa3\x71\xc1\x05\x3c\x99\x69\xc6\x46\x0e\x1f\x8f\xe5\x47\xa6\x21\xfe\x4d\xe3\xf3\x2a\xc1\x67\x0f\x50\x7a\x87\x09\x8d\x96\x14\x15\x8b\xf9\x3c\xde\x94\x69\xc6\x85\xd1\x62\x59\x0b\xac\xfe\x69\x47\x6b\xcf\xa4\x5d\xef\x33\xb6\x38\x3e\xea\xb1\xc5\x49\x8f\x2d\x8e\xcd\xff\x21\xb5\x05\x3e\x1d\x99\xbf\x4e\x7b\x6c\x71\x0a\xd9\x2e\xe6\xab\x13\x18\x11\xb6\x83\x3f\x4f\x7a\x6c\xac\xd4\x31\xfe\x5b\x8e\x87\xfd\xbc\x76\x61\xeb\x76\xd8\x58\xb1\x68\x29\x98\xa3\x2c\x56\x91\x2d\x2a\xf4\xb0\x8e\x8e\x7c\x66\xe9\x7d\x5d\x26\xf4\xea\x07\x4b\xf6\xba\x76\x31\x0d\xeb\x1d\x45\xe4\xb0\xab\x55\x8f\x9f\x8c\x84\x56\x18\x25\xb3\x25\x78\xc9\x64\xe9\xea\x2a\x43\xb0\x07\x64\x53\x9a\x7b\x6a\x69\x37\xda\x33\x3d\x22\x7c\x33\x15\x4b\x1b\x96\xee\x95\xe0\x9c\xf2\xd8\xeb\x55\x62\xee\x4c\x83\x64\xe7\x3c\xa2\x6b\xcd\x9b\xae\xa1\xdb\x3e\xda\x39\xc3\xf4\xe7\x3c\x49\x65\x00\xba\x30\x37\x6f\x4b\x6d\xe8\x71\xab\xf0\x8d\xcf\x7b\xcf\xf3\xf0\x8d\x7b\x99\x10\x52\x95\x88\xf0\xa7\x76\x8c\xbe\xd8\x18\x68\x2a\xc2\xbe\xf8\x1c\xbe\x38\x5e\x3a\x1e\x77\x86\x0b\x08\xa8\x0e\x4d\xc0\x23\x46\x0e\x4d\x78\xf0\x81\xdc\x48\x5a\x78\x1c\xdc\x30\x3b\xc3\x2e\x66\x0e\x0b\x05\x52\x55\x20\x71\x0a\x86\x90\xb7\x95\x31\xd4\x9b\x42\x3d\xce\xc9\xb4\xb3\x0c\x8b\x83\x6b\x55\xe8\x05\x5c\x3e\x2a\x8a\x08\x6d\xc7\xac\xa4\x9e\x16\x5a\xe4\xe1\x1a\x8e\x57\xed\x8b\x58\x63\xc2\x69\xac\x98\x8a\xc2\x02\x4c\x6d\x24\xc6\x90\x52\x44\xd2\xba\xcf\xb3\x12\x31\x53\x0b\x61\xb5\x19\x57\x6c\xc3\x8d\x9c\x5c\x5f\x54\x14\xd7\x09\x3f\xe8\x22\x23\x17\x17\xf6\x41\x51\x25\x45\x11\xfb\xd6\x48\x1b\x08\xe6\xbf\xc4\x4a\x71\xa8\x6f\xd8\xfe\x1e\xc5\x16\x55\x61\x19\x8f\x4a\xcf\xab\x0e\xf6\xb6\x04\xfd\xa7\x4a\x4e\x42\x2e\x9b\x98\x53\x06\x96\x88\xf5\xa4\xdb\x83\x25\x00\x0f\x3a\xe5\xdd\xac\xb9\x45\x4d\x8f\xf9\xb9\x82\x79\x50\x7e\x40\x3f\x3a\x84\x01\x19\xb3\x1b\x38\xdc\x2a\x4b\xe7\x59\xba\x56\x9f\x82\x9a\xe0\x22\x0e\xc4\x21\x94\x01\x07\x3d\x8a\xfc\x9a\x86\xa6\xeb\xc3\xaf\x12\x11\x08\x09\x7a\x91\x53\xac\xfa\x5c\xf7\x53\x2c\xd6\xee\x2b\x47\x46\x7e\x8e\x95\x1b\x13\x48\x83\x56\xdd\xed\x41\x76\x59\x3c\x89\x6c\xa2\x95\x21\xf9\xf3\x88\x2f\x1d\x0e\xc1\x24\x0f\x68\xa9\x6a\x3a\x50\xcc\xe2\xf3\xd3\xd7\x4a\xe6\xe7\x7d\x88\xeb\x06\x99\x6b\xbe\x56\x62\xbe\xa3\x5a\x3e\xff\xf3\xdf\xff\x77\x71\xfc\x3f\xff\xfd\xff\x7a\xf0\xd7\x09\x08\xa4\xf0\x51\xa4\x41\x5b\xdb\x15\xfa\x83\x6c\xe6\x49\xba\xb1\x2f\xe2\x96\xc9\x31\xbb\xc5\x2e\x21\x13\xc1\xe8\xfc\xdb\x78\x01\xc0\x00\xf0\xa8\x22\xce\x4f\x58\xf2\x68\x9d\x9d\x92\x2c\x33\xc5\xaa\x8b\xf4\x25\x48\x31\xe6\x0e\x2c\x5c\x5f\x3d\x46\x96\x05\xa4\xf6\x21\x5a\xc5\x29\x57\xbd\xb0\xda\xf5\xc7\xbd\x09\xd2\x17\x56\x78\x1d\x0b\xc6\x9d\x05\x6d\x6a\x1c\xf1\x09\xc2\x87\xc9\x78\x72\x18\x4a\x8d\x7f\x15\x87\x00\xac\x03\x05\x32\xab\x29\x4b\x8e\x41\x1b\xe7\x97\x17\x0d\x31\x0c\xab\xcd\x1d\xc8\xeb\x5a\xc8\x0a\x5e\x54\xa2\xf5\x1f\x3b\x9d\xd9\x59\xc1\x60\x81\xcb\x06\xb0\xca\xa9\xf6\x2d\x62\x37\xa0\x53\x5a\x1f\x85\xf0\xa0\xf4\x0a\xfa\x25\xb5\xff\xd7\x15\xc7\x75\xf5\x3c\xb3\x51\x52\x03\x6f\xf0\xf0\xa7\xf6\xda\x7f\xf1\xca\x73\xeb\x35\x74\xe6\xd3\x3b\xc8\x89\xf1\x7f\xa9\x3b\x92\x4d\x36\xa7\x29\x5f\x88\x2d\x32\x8b\xca\x79\x8b\x74\x96\x6b\x4e\xcd\xe7\x50\x01\xbd\x05\xbd\x0e\x78\xb4\x0a\x57\x72\xf5\x83\xce\x8d\x41\xc9\x5c\x36\x54\xc3\x50\x0b\xf3\xb3\xb7\xec\x28\x47\x14\x65\xe1\x56\x51\xcf\x23\x11\xd9\x2a\x95\x2d\xb2\xbb\x2b\xed\x0b\x51\x84\x79\x9a\x37\x59\x86\x41\xbb\xa9\xe4\x6d\x03\xaa\x85\x4a\x12\xa1\xe7\x2a\xc6\xac\x3d\x9c\xee\x2d\xc6\x75\x0e\x34\xbd\xe0\x76\xc0\xde\xc5\xd1\x32\xef\x57\xc3\x55\xb3\x05\x96\x8b\x09\xe4\x64\x7d\x06\xc3\x95\xe7\x4b\xc6\x87\x61\xa8\xe4\x5b\x19\xe0\x5b\x6e\x99\x82\x0f\x73\x11\xdc\xe6\xed\x29\xed\xed\x4e\x25\x1f\xf0\x5a\xff\x4d\x25\xf2\x9f\x2a\x4e\x79\x74\xa9\xc2\xf3\x2c\x55\xb0\xf4\x89\xaf\x01\x40\x24\x99\x05\xf0\x90\xda\x5b\x06\xe7\xd8\xb4\x46\x31\x7c\x60\xdf\xc8\xdb\x9c\x00\x7f\x3e\x32\x3b\x5d\xd3\x28\x0b\x52\x9b\x09\x9f\x23\x5d\xfa\xa1\x0c\xb0\x03\xf9\x23\xd2\x59\x15\xc7\x2a\x99\xd5\x86\xa3\x3d\xa0\xd1\xfb\x2b\x58\x8c\xbe\x7f\x0e\xd1\xe4\xe9\x8a\xb7\x62\x60\x88\x95\x0c\x6c\xaa\x37\x9d\x91\x3a\x6e\xd5\xc3\x10\x92\xf2\x49\xa0\x8e\xe8\x99\xdb\x43\x78\xf1\x6d\xe1\x06\x80\x05\x95\xb8\xa3\x0d\x38\xc5\x6a\xb3\xb8\x42\xdb\xc8\x10\x73\x11\x5c\x89\x79\x24\x03\xae\x5b\xdc\x8e\x72\xf3\x1d\x5f\x0e\xa3\x8f\x25\xd4\xfd\x43\x5d\x0d\xbc\x0d\x3b\xda\xc4\xc6\x5d\x42\xed\x22\xc7\x7d\x52\x31\xfb\xee\xcd\xcd\xd6\xf1\xf7\x9b\x6c\x51\xe5\x81\x07\xa1\x60\x0f\xbd\x4d\x48\xc1\x76\xb6\x51\xe5\x51\x6f\x71\xdb\xca\x56\xe9\xfb\x06\x64\x54\xae\xde\xea\x5d\xff\xdc\x7c\x7e\x33\x5b\x6f\xe5\xc9\x15\x9c\x1e\x7f\x5f\xc7\xea\x59\x0e\xa3\xe9\xe2\xa0\x73\x4c\xa9\x9c\xe7\xd5\x1f\xf0\x62\x6f\x03\x2c\x08\x09\xe5\x20\xff\x48\x71\x4f\x86\x0b\x1d\x36\x8c\xa5\x4e\xc5\xfe\x23\xbb\x7c\x7f\xe3\x87\x52\x43\xab\xba\x1e\x52\xfe\x41\xd4\xdc\x31\xdc\x37\x54\x79\xe4\x24\x36\x6c\x0d\xc1\x0d\x28\xc9\x69\x99\x4e\x0d\xd7\x13\x1f\x03\x31\x4f\x0b\x2b\x95\xf2\xf8\x9f\x1c\x07\x70\x78\xf9\xee\xfa\xe6\xf0\xf2\xfc\xe6\xd5\xdf\x2a\x63\xa9\x18\x05\x2a\x2f\xa9\x74\xba\xf7\x99\x4e\xd7\x56\x07\x4b\x17\x08\x1b\xcd\x03\xa2\x3b\xcb\xb2\xa3\xde\x52\x78\xd4\x25\xe1\x96\x3d\xa6\xaa\x82\x92\xf5\x6a\x35\xdb\xcc\xb3\xe8\x45\x29\x6f\x3a\xe9\x85\x78\xdd\x78\x3d\xa5\x03\x6a\x8f\x1c\x0b\xf0\x60\x6e\x39\x49\x81\x46\x0d\x5e\x1c\xdf\x12\xe9\xa7\xa4\x98\x27\x93\x4d\x5b\xa5\x4e\x1b\xa7\xd3\xae\x5f\x2d\xa2\x2a\xde\x72\x11\xf1\x20\x98\xf1\x33\x76\x3c\x58\x7b\xf3\x2c\x8e\x96\x4b\xca\xa8\xbf\x8a\xb7\xee\x6d\x78\xc3\x49\xb5\xb4\xc9\x48\x27\xeb\x5f\x54\x3b\xe0\x55\xd4\x45\x51\xd0\x04\xb9\x8a\x56\x8f\xe0\x33\x1b\xaa\x3d\xe3\x53\x5b\x6a\x91\x3f\x52\x0c\xc6\xcf\x6d\x4f\x6c\x26\xd2\xa9\x0a\xb7\xa5\x10\xa5\x68\x9c\x07\x3e\xff\x86\xb7\xe1\x8b\x2e\x13\x35\x5f\x7d\xde\x4b\x23\xb3\x36\x51\x1b\x3c\xb5\x38\xb5\x06\xb9\x54\x41\x94\x7b\xd1\x24\x07\x74\x94\xac\x72\x8f\xbf\xef\x6f\x08\x6a\xe7\x35\x05\x1e\xaf\xdb\xf4\xda\xf6\xd6\xed\x65\xed\xf5\x80\xb5\xea\xc1\xf8\x14\x38\x3c\xbc\x3f\x14\xa1\x8b\x75\x6e\x0b\xc4\xba\x02\x41\xb0\x8d\x78\x9f\x25\x95\x18\xfa\x5d\xd7\x07\xd8\xe2\x8c\xad\x58\x6a\x10\xaf\x7c\xf0\x98\x78\x89\xc7\x06\x05\x2f\x10\xab\x6d\x70\x0b\x82\x7b\x81\xfd\xdc\xc2\x5d\x9e\xb1\x91\x52\x51\x8f\xc9\x38\x7d\xf9\xbc\xc7\xc6\x91\xe2\xf0\x07\x4e\xb6\xc7\x7e\xfe\x05\x3c\x38\x63\x1e\x88\xff\xfa\xb5\xc7\x66\x7c\xfe\x33\xfe\xe4\x7f\x0f\x87\x33\x96\xd1\x60\x87\x53\xf6\xaf\xd5\xea\xd9\x7b\x2d\x91\xa8\x98\x2f\xfb\x74\xcb\x30\xb0\xc8\x1c\xb5\x62\x15\xbb\xd7\x09\x1f\xa7\xec\x39\xdb\x9f\xa6\xe9\xfc\xec\xf0\xf0\xef\x5a\xc5\x7d\x1b\xd1\x97\x4c\x0e\x0f\x5a\x1c\x35\x22\x26\x1b\x9f\xb1\x3f\xd4\x3b\x0a\xda\x3c\x9a\xfb\xcd\x2e\xea\x72\x40\x1f\x96\xbc\xbd\x4b\xfe\xaa\x54\xb4\x6e\x60\x8d\x08\xe6\x9f\x73\x74\x51\xf4\xae\xb2\x55\x8f\xe3\x7d\x2b\x9f\xe5\xfb\xb8\xdb\x78\xbc\xfc\x12\xa6\x41\x3a\xfc\x23\x1c\x8f\x95\x0c\xd9\x9a\x12\x80\x66\xd8\x0f\x39\xa6\x67\x16\x5b\x17\x42\x21\x18\xda\x25\x89\x50\x5c\x25\xc7\xa0\x3e\xaa\x65\xe3\x59\x42\x2a\xae\x79\xfb\x90\x6d\x3a\xe1\xa9\x28\xf4\xb6\x21\xde\x5c\x83\xe0\xef\x2d\xde\x76\x65\x06\x3e\xf7\xc9\x59\x8d\xc5\x3f\x37\x62\x41\x1c\xd4\x90\x97\xa7\x30\xbb\x77\x09\x42\xbc\x9f\x17\x4f\xff\x76\x53\xbd\x97\x20\x23\xe2\x6c\xf6\xf9\x48\xc5\xbd\xe8\x03\x45\xb6\x3e\x06\x7d\x68\x78\x7f\x10\x65\x5a\x2e\x04\x01\xa9\x37\x2d\xff\x4a\xe7\x6a\xde\x89\x8c\xef\xd1\x89\x93\xa3\x1f\x9a\x9b\xd6\x8b\xf8\xb5\xa3\xda\x1c\x0d\xdb\x53\x72\xe8\x7b\x72\x90\x58\xb8\x19\xfa\x1a\x85\x53\x54\x8f\x6d\xc8\x9b\x13\xe0\xfc\x26\xa4\x18\x89\xf0\x6c\x18\x0f\xe3\x3e\x1b\x69\x15\xe3\x65\x92\xe1\x99\xa1\xc9\xda\x61\x5a\xb0\x8b\xd7\x54\xc8\x82\xb3\x93\xe7\x46\xe9\x4e\x78\x90\x8a\x44\xb3\xa9\xf8\x68\x5d\x59\x7d\x96\x25\xf2\xcc\x0c\xf5\xfd\xd5\x05\xe3\x9a\xcd\x79\x42\x59\x95\xdf\xa9\x88\xc7\x13\x16\x8b\xf4\x30\x4b\xa2\xc1\xa5\xf9\xe1\x0a\xd5\x7e\xd3\xb6\xcf\xc4\x8c\xcb\x08\x9e\x85\xbf\x18\x0f\xc3\x44\x68\xdd\xd8\x8b\x69\x84\xdd\x9c\x53\xcb\x3e\x9b\x2a\x0d\x29\x98\x66\xec\x28\xbd\x97\x60\x50\x00\x07\x3f\x66\x17\x80\x63\x22\x52\x78\x80\xe2\x68\xb8\xf6\xab\xcb\x5d\x7d\xfb\x8a\x1d\x1f\x9d\x1a\x11\x9e\x8a\xd8\x9e\x0e\x8e\xd9\xcf\x57\xdf\xbe\x32\xdf\xfe\x32\x60\x7d\x26\xe7\x8b\xe7\x30\xde\x8b\xcb\xc5\x73\x76\x71\xd9\x34\x52\x1c\xe4\xc5\x25\x3e\xf2\xd2\x3e\xf2\xb2\xdd\x23\x81\x0c\x13\x33\x9d\x57\x17\xaf\xaf\x56\x37\x87\x16\x7d\x36\xe3\x81\x69\xff\xe3\xf9\xab\x75\x4b\x88\x8f\x99\x86\x7d\x96\x65\xb0\xe3\x31\x7b\xff\xfe\xe2\x35\x85\xea\xa2\x9e\x99\xcd\xe7\x98\xc0\xe9\x2f\x0f\x46\x2b\x4e\xc4\x47\xb6\xff\x8d\x3c\xf8\xcf\x9f\x8f\xfa\x5f\xf3\xfe\xf8\x97\xff\xfa\xf3\xaf\xfd\x6f\xdc\x87\xe7\xed\x3e\x1c\x9f\xfc\xfa\x07\x1a\xc1\xa9\x1b\xc2\xe9\x0e\xc7\x70\xea\x3e\x9d\xb6\x19\xc4\x73\x37\x88\xe7\x3b\x1c\xc4\xf3\xe2\x20\xfe\xfc\x35\x1f\xfd\x52\x3f\x2e\x6f\x28\x2f\xdc\x50\x5e\xec\x70\x28\x2f\x36\x1d\x8a\xd4\xa3\x18\x8f\xed\xf5\x5f\xdf\x1e\x1f\x31\x95\xe0\x5f\xa7\x36\x13\x84\xae\x3f\xa4\x46\x0f\xf7\x8e\x4e\x4f\x8e\xff\xf4\xe2\xf8\xe8\xf9\xa9\xcd\x21\xf9\xfa\x4f\x7f\xee\xbb\x6f\x8f\x87\x7b\xd4\xe7\xf1\x91\xdf\xeb\xfa\xbe\xe8\xa9\xd3\xfc\xa9\x86\x11\xd4\xbc\x2f\x48\x44\x28\xd3\x80\x27\x40\xd8\xf0\x13\x33\x1f\x6d\x0f\xb5\x2b\xf9\x9f\xfb\xdf\x9c\xc1\xce\xc1\x5a\xec\x7f\x73\x86\x7f\x9f\xfe\x7a\xf0\xcd\xa7\x17\x3f\x1f\xf7\x5f\xfc\x42\x3f\x3e\xff\xf5\xd3\xcb\xfd\x6f\xce\x8e\x8e\x8f\x3f\xc1\xf2\xe2\xf7\x07\xee\xd1\x4f\xa7\x3f\x3f\xff\x93\x6d\x7c\xfa\xeb\xa7\x53\xd3\xf8\xe7\xa3\xfe\x8b\x5f\x3e\xfd\xfc\xf2\xcf\xc5\xd6\xc7\xbf\x7e\xda\xff\xe6\xec\xe4\xf8\xf4\xf8\xd3\xf1\x9f\x8f\x8e\x3e\x9d\xbe\x18\x0e\x43\xf3\x4e\xf3\x9f\xe3\xe3\x5f\x0f\xfe\x90\x17\x97\x8a\x55\xcc\x42\x39\x31\x73\xc9\x29\xf2\x4c\x7e\xc4\x00\xd0\x3e\xd3\xda\xec\x1c\x7b\x3f\xb8\x1e\x30\xad\x02\xc9\x23\x43\xd0\x32\x00\x6b\xa7\x89\xe7\xac\xc1\x9b\x37\xbe\xf1\xe7\x3e\xfb\xe5\x1b\xf3\xe7\x49\xfe\xe7\x73\x38\x12\x53\xf1\x31\x50\x91\x4a\x60\x2b\xa6\xe2\x23\x0f\x45\x20\x67\x18\x87\xaa\x12\x16\xa8\x50\xd8\xcd\xf8\xea\x5b\xf8\xdf\x59\xfd\x8b\xbe\xfa\x66\x9f\x8e\xdb\x79\xff\x5b\xb3\xb2\x9f\xfc\x8f\x2f\xcd\x64\xfb\x2c\x99\x8c\xf2\xb7\x5d\x7d\xf7\xd7\xca\x5b\x92\xc9\xc8\xbe\x2e\x99\x8c\xf6\x4f\x5e\xbc\xe8\xd1\xff\xbf\x86\xdd\x1f\x2d\x53\x71\xc6\x46\x5c\x8b\x97\xcf\xa1\xea\x4d\x68\x76\x5a\xc6\x3c\x59\x32\xc8\x80\xec\x43\xb1\xad\x3b\x05\xc7\x23\x5e\x3a\xe0\x09\xc7\xd8\x0c\x9b\x34\x2b\x19\x62\x66\x80\x7f\xda\x4e\x8e\x8e\x5e\xf6\x8f\x8e\xfb\x47\x27\xc3\xbd\x12\x1b\x19\x67\x51\xd4\x87\x47\x64\x6c\x78\xca\xe9\xe9\xe9\xd7\xa6\xb3\x0c\xe3\xc8\xa1\x43\xfa\xbb\xdc\xe9\x09\x8b\x35\xf6\x57\xa1\xdd\xa9\x9c\x09\x24\xde\xaf\xed\xc3\xb0\x1a\xb3\x39\x4f\xe5\x28\x12\x78\x3c\xae\x03\x1e\x79\xdd\x93\xc4\x80\x33\x31\x3d\xb8\xd9\x00\x56\x61\x79\x4a\xc7\xcf\xfb\xc7\x27\xfd\xe3\x17\x37\xc7\x5f\x9f\x9d\x1e\x9d\x9d\x1c\x0d\x8e\x8e\x8e\xfe\xa3\x32\x41\xd3\x41\x1f\x3a\xc8\x27\xb8\x45\x38\x80\xac\xc4\x33\x6e\x0d\xe0\xf5\xd0\x9a\xc9\x79\xb3\xc4\x3d\xe3\x1f\x6b\xed\x49\x85\xc2\x07\x2f\x9f\x6f\x51\xf8\x60\xc6\x3f\xfe\x20\xe2\x49\x35\x4a\x62\x27\x5d\x37\xdb\x9a\x76\xd2\x7d\x9d\xdc\x9e\x77\x1c\xaa\x6c\x54\x76\x08\xda\x9e\x91\x42\x35\x74\x2c\xe3\x87\x5a\x6c\x19\x3f\xd8\x62\xcb\xf8\x41\x17\xbb\x5e\x49\xda\xc1\x62\x53\x59\xa8\xaa\xdd\xec\xfe\x7d\xc7\xea\x31\x6c\x58\xb5\xb6\x93\xc2\x30\xb2\x28\xe2\xa3\xaa\xbe\xdc\x4a\xc3\x54\x71\xcd\xd2\xfc\xf6\x4c\x8a\x73\x9e\x1a\xc5\x68\x1b\x5a\x4c\x8f\x36\x9f\xee\xa7\x60\x57\xba\x9f\x29\xa9\xc1\x81\xf1\x45\xcc\xcd\x8b\xe5\x6a\x73\x86\x77\x08\x4e\x94\xca\xb4\xf9\xd2\x6d\x0a\x94\xdb\xca\x37\x09\x98\xc3\xb5\xbc\xa3\xd5\x5d\x2f\x00\x1c\x8a\xd9\x48\x84\xa1\x08\x5d\x94\xed\x1a\x7b\xce\xea\x87\xbd\xc8\x1f\x5b\x4c\x1b\xe3\xf9\xb0\xd4\x26\x35\x67\xdf\xbb\x2e\x58\x92\xc5\x20\x0d\xbe\xa3\xa8\x2b\x90\xfc\x6e\x96\x73\xf1\xa3\x20\xe0\x8f\x1c\x1a\x1f\x2d\x41\x00\x18\x6c\xe3\x9b\x6d\x0c\x06\xa2\xca\x51\x08\x23\x4b\x15\x1b\x67\x09\x84\x50\x24\xc2\x2c\x65\x90\x52\x50\x2e\x0d\xc0\x3e\x86\x38\x23\xa5\x82\x35\x05\x54\x11\x67\x61\x62\x3c\x4b\xd5\x8c\xa7\x16\xde\xa0\xb0\x10\x0d\xc8\x21\xa5\x31\x8d\x04\xa4\x14\xf5\xd8\x28\x4b\x59\xa8\x84\x86\xf4\xc7\x29\x5f\x08\xfa\x55\xfa\x61\x1d\xe6\x61\xac\x6d\x9c\x23\xad\xec\x67\x73\xd3\xb4\x3c\xec\x1c\x2a\xa5\x09\x33\xa7\xfd\x81\x90\x71\xda\x57\x49\x9f\x0e\xe0\x06\x87\xa1\xf0\xa0\x97\xe3\x47\x47\xc1\x61\xf5\x49\xcd\x84\x84\xbd\xf1\x6a\x87\x41\x79\x47\x6b\x0c\xb4\x35\x1a\x29\x05\xab\x87\x67\x67\x9e\x2e\x99\x2b\x8e\x45\x8b\x0a\x49\xa8\xe6\x3b\xae\x59\x30\x95\x51\x88\x38\xc1\xcb\x77\x63\x80\x64\x14\x89\x2d\x06\x36\xf6\x94\x37\x15\xbb\xfc\xbc\xfc\x4b\x22\xff\x1a\x0c\x89\xc7\x07\xd8\xc9\xd9\x30\x66\x8c\xf5\xe1\x15\x67\x76\xac\x85\xef\x70\xc8\xc3\xf8\xe4\x80\x81\x73\xd1\x3e\xe1\x3d\x5e\xdf\x41\xb5\x0b\xf8\x6a\x30\x18\xb0\x7f\x8a\x44\x99\x05\x99\xa9\xa4\x41\x1a\x69\xbf\x9b\x91\xd4\x69\x7f\xc6\xe7\xfd\x0f\x62\xb9\x2e\x5f\xb3\xf9\x41\x06\x58\xb4\x10\x9d\xc5\x63\x8a\x1d\x86\x8b\x6a\xd6\xb0\xfa\x18\xec\xc8\xed\x8c\xcf\x6f\x8d\x86\x45\xf9\x3a\x56\x6d\x86\xfe\x20\x17\x8a\x40\x1b\x65\x1c\x8a\x8f\x76\x43\x66\x7c\x3e\x30\x3b\x00\xd0\x3d\x29\x9f\x60\x15\x1b\x5b\xba\xd8\x96\x22\xc5\x84\x6c\x38\x58\x78\x7b\xa6\x46\xe7\xab\x1f\xc8\x70\x8f\x39\xb6\x63\x93\x2c\x86\x7b\x33\x3e\x1f\xee\x0d\xd8\x79\xa4\x55\x2f\xa7\x53\xda\xbb\x6a\x0e\xa8\x31\x47\x93\xf4\x92\x2a\x8c\x6a\x9a\xc0\x06\x86\x94\x5a\x61\x53\xe0\xe0\x14\x62\x3e\x45\x96\x08\xb6\x1f\x2b\x16\x0b\x6d\xdd\x84\x2e\xe0\xe2\x80\xa6\x29\x58\xce\x95\xbd\xb7\xc3\xab\xe8\x9a\x40\x7e\x34\xd5\x4b\x52\x09\xce\xb8\xe4\xa9\xec\x99\x59\x41\xfe\xb6\x59\x0c\xa5\x0b\xbd\x1a\x32\x46\x46\x64\xb4\x1f\x47\x11\x01\x42\x1b\x16\xf2\xe8\x60\x7e\xf5\xdb\xb4\xf1\xd9\xc4\x6b\x5f\x3d\x97\x1e\xed\xb7\x79\x8e\x4c\x42\x64\xde\x5c\x45\x6a\x62\x0b\x63\xe7\x67\xa2\x50\x1c\xbb\x78\xc2\x2c\x3c\x38\x2c\xf9\x29\x9b\x2b\xad\xc1\x3c\x81\x87\xc5\x92\x8a\x5b\x9e\xaa\x99\x0c\x6e\xcf\x72\x50\x20\xa0\x5c\x02\xd9\x86\xce\xf3\x85\xb1\xde\x76\x0f\x8d\x14\xf6\x14\x0d\x88\x1e\x9c\x43\x2f\xf4\x66\x08\x72\x1f\xe1\x13\x89\x88\x96\x2c\x11\xf3\x88\x07\x36\x83\xd0\x41\x42\x17\xe7\x42\x3d\x11\xe4\x84\x2b\xdc\x1b\x2f\x1d\xca\x3e\x8c\x6e\x1f\x8f\x67\x8f\x06\xd0\x33\x54\xc7\x9c\xc7\x93\x03\x76\xab\x45\x7a\x6b\xe9\xd6\xb5\x48\x73\x98\x21\xed\x95\x76\x77\x6c\xcb\x55\xdb\x45\x98\x71\x47\x13\xa0\xe0\x2e\xc5\x1c\xbd\xe1\xc1\x94\x3a\x44\x06\x50\xbe\x46\xbd\x1c\xd9\x1d\x7b\x28\x6c\xb6\xa1\x41\x48\x50\x68\x99\x81\x57\xd8\xa9\x7a\xb4\xa8\x89\x0e\xd1\x63\x83\x61\x7c\x7a\x80\x54\xc9\xce\x0f\xa3\xa1\x68\xab\x13\xb2\xc4\xcd\xf8\x5c\x63\xfe\x01\x4a\x30\x32\x61\x22\x12\x00\xb3\x69\xaf\x5e\xac\xe2\x3e\x52\xad\x0f\x62\x49\x7d\x59\x10\x10\x5b\x6b\xd5\x3c\x3a\x1b\xb0\x77\x88\xe1\xe4\xc1\x92\xb1\x6c\x0e\xd1\x8d\x09\x65\x78\x9a\x17\x1a\x4a\x67\xf7\xae\xee\x34\x52\x80\x24\x4c\xd3\x0d\xc6\x10\x1c\xd8\x55\x94\x65\x86\xb1\x8f\x5a\x89\x93\xc6\xeb\x6e\x96\x68\x1b\xf4\xdb\xda\x6d\xd8\xe4\x9e\xba\xad\x2b\x5c\x53\xda\xe9\x1d\xdc\x53\xb8\x0a\x56\x24\xa0\x6e\x0b\x57\xf6\xa4\xf1\xca\x4e\x12\x1e\x67\x11\x4f\x4a\x67\x01\x36\x3f\x87\x78\xc1\xcf\xfb\x1f\xc4\xb2\x8f\x47\x77\xce\x65\xa2\x0f\xe0\x25\x50\x19\x96\xc4\x3c\xf0\x56\xc6\x36\x28\x21\xa5\x2e\x21\x23\x19\x9a\x61\x34\xef\x3e\x40\x58\x04\x46\x98\x31\x5f\x8e\xcc\xeb\x62\x39\xcf\x22\x4e\x09\x13\x5a\xcc\x79\xc2\x53\x78\xbb\x4a\x74\x0e\x2e\x4d\x1d\x52\x3e\x2b\x90\xfd\x91\x98\xf2\x85\x54\x59\xe2\x48\xba\x19\x2b\x5d\xe2\x9d\x12\x24\x58\x83\x96\xf4\xe8\x9e\x87\xac\x41\x8c\xde\xe4\xcc\x35\x49\xe2\x3a\x55\xf3\x1c\x32\x93\xca\x52\x87\x22\x50\x21\x48\xab\xa9\x98\xe3\x7e\x51\x6c\x6d\x4b\xc8\x43\x2f\x30\x97\x82\x06\x71\xcb\xf8\x78\x0c\xd0\x29\xd4\x4b\x22\x82\x2c\xd1\x72\x21\xa2\x25\x0a\xff\xfa\x4e\xa6\xc1\x54\x68\x36\xe2\x01\xd4\x84\x44\x3c\x6c\xf7\xf6\x7c\x77\xe5\x18\xc4\x07\x11\xfa\x1c\xdd\xec\x78\x8d\xc6\x5e\xc4\xa9\xb0\x63\x2c\x0c\x0c\x4e\x9f\x13\x2b\x00\xd4\xd0\x8f\x71\x1a\x60\xf9\x17\x50\x3d\x54\x32\x92\x61\x28\x9a\x4a\xc0\x54\x65\xd0\x7f\x29\xed\xee\xc3\xc5\xc1\xd6\xd8\xb3\x5b\xc7\x86\xd2\x03\xc5\x42\x8b\x78\xbb\x5d\xd5\xfb\x7c\x85\x30\x8a\xd4\x0f\x2d\x45\x07\x3c\xf2\x1d\x35\x2e\xff\x3c\x60\x3f\x72\x69\x68\x14\xe4\xc6\x51\x05\x74\xc8\xa0\x25\x7c\x9f\x2c\x81\xa4\xa6\x07\x0a\x91\xa5\xe0\xc7\x0d\x16\xc3\xb4\xf7\xd7\xa2\x6e\xba\x8c\xf6\xda\x72\x74\x9f\xd1\xc0\x11\xb2\xb9\x58\xb6\x1d\x1d\xd5\xe5\x83\xcd\xd2\x8f\xae\xda\x60\xb2\xde\x63\xc5\xfd\xaf\x9d\x35\x69\xb2\xb0\xd5\xbb\x9a\xc9\xb5\x48\x16\x32\x10\x57\x16\xab\x66\xc5\xe8\xcb\x4d\xd9\x54\x01\xaf\x71\x81\xf3\x60\x35\xa0\x56\x83\x48\x4c\x78\xb0\x2c\x17\x9b\x68\x8c\x59\xde\x10\xb1\xc5\x07\xfa\xd5\xf4\x46\x57\xc4\x75\x4b\x94\xde\x39\x5f\x6b\x6c\x72\xed\xfc\x71\xe0\x17\xbb\x1b\xcc\x7c\x7d\xee\xee\xdc\x96\x95\xf7\x0a\xfa\xbf\xbf\xfa\x01\xd3\x19\x79\x4a\x5c\xc2\x8c\xc7\x96\xc3\xb5\xfc\x12\x52\xe9\x83\xed\x58\xa3\x51\x14\xd7\x0d\x0c\xc0\xdd\x8b\x03\xa3\x25\x61\xf0\x5b\xcb\xc1\xb1\x5b\xd3\xfa\xd6\x43\x2b\xb1\xf1\x47\xd0\x8b\xc5\xcb\x3c\xee\xbf\x7c\xf1\xe2\xf4\x45\x0f\xeb\x72\x19\x86\x76\x50\xa4\x06\xcf\x9f\x43\x64\x17\xb0\xb5\x3b\x9e\x84\xce\xa7\x2b\x23\x69\xc8\x41\xaf\xd1\x5d\xd4\xbe\x9c\x7a\x85\xcd\x34\x23\x75\xe0\x19\x2b\x03\x15\xd1\xc7\x07\xce\xd8\xb5\x65\x94\x01\x8c\xff\x95\x8a\xc7\x72\xb2\xe2\xb2\xd7\xb4\xce\x61\x18\xd0\x4a\xe2\x6a\x56\x9b\x85\x9e\x61\xee\xea\xcd\x0f\xd7\xa6\x59\x4c\x21\x5e\x4e\xff\xb2\x85\x96\xdb\xd4\x4f\xf9\x6b\x16\x87\x55\x03\x76\xa5\x7a\x0a\x36\xc3\x50\xe7\xcb\x37\x3f\xba\x20\x84\x57\xe7\x6c\x84\x3f\xe1\x41\xb3\x87\xcb\x2a\x44\xd6\x80\xea\x8f\xeb\x99\xb6\x12\x58\x60\xc6\x04\xd9\x18\x02\xec\x7e\x59\xec\xe1\x6c\xe9\xa5\x4e\xc5\xcc\xb0\x18\x9d\xb2\x44\x29\xa3\xf4\xa0\x4c\xe3\x36\xc0\x81\xe7\x36\x9e\xad\xd1\x32\x6d\xb0\xa2\xad\x4c\xef\xc7\x4b\xf4\xc0\x7e\xbd\x0a\x37\x58\x99\x28\x49\xf7\x5a\x56\x78\x80\x47\x08\x73\xb3\x95\xab\xb5\xfd\x06\x85\x19\xdb\xc0\x88\x7b\x49\xe4\x94\x70\xb7\xdc\x60\x8f\x22\xd8\x60\x4b\x28\x24\xd8\xe7\x41\x22\x35\x47\xcb\x66\xf2\x23\xf2\x32\x21\xd2\x2e\x55\x66\xc9\x46\xa6\x05\xe2\x67\xc9\x40\xdc\x36\x84\xa5\xd7\x24\x56\x95\xe6\x69\x46\x37\x91\x0b\xca\x04\x8d\xa8\x6e\x85\x25\xf8\x34\xb4\x1e\xe2\x8f\xf0\x38\x34\x54\xc6\xd0\x62\x80\x97\xdf\xbf\x05\x69\x57\x9c\x1d\x1e\x4e\x95\x4e\xcf\x0c\xf5\x3a\x34\x54\xfa\xf6\x60\xc0\xde\x78\x00\x4a\x6a\xcc\x6e\xb3\x24\x42\x28\x16\x3b\xe4\x86\x45\x31\x4a\xfa\xad\xe9\xce\xd1\x47\xa3\x0b\xc0\x0e\x80\xaa\xed\x96\xd6\xae\x55\x71\x9d\xfe\x42\xc5\x6a\xbc\xb5\x71\x95\xef\x75\x2a\x38\x05\xb8\x42\x24\xe7\x4c\x4e\xa6\x04\x88\xa8\x55\x64\x41\xac\x5c\x6a\xdc\xeb\xb7\xd7\x30\x6f\x35\xf3\xae\x80\xc6\x82\x44\x3d\xac\xe9\x91\x9f\xbb\x5b\x23\xca\xe2\x48\xa1\x2f\x26\xe3\x3e\x0d\x09\x3a\xe2\x16\xb2\x32\x27\xf9\x11\x5f\x0a\x2c\x81\x26\x55\x04\xcb\x7e\x30\xb0\x53\x37\x4a\x35\x8f\x34\xf8\x29\x20\x00\xd4\x46\x67\xc2\x1a\x5d\x46\x82\x6b\x50\x92\x48\x8c\x06\x0c\x3e\x76\x6b\xb6\x2f\xc2\x0e\xcc\x4a\x1f\x9f\xfc\x69\x70\x34\x38\x1a\x1c\xdf\xa2\x1a\x4a\x7d\x9b\x73\x26\xf5\x87\x25\xcb\xe2\x48\x68\x0d\x67\x0a\xb2\xf3\x27\x46\x67\x65\x01\xe0\xb0\x2a\xb3\xbe\x85\xb3\xcd\x30\x99\x10\x96\xce\xaa\x6a\xa6\x8d\x91\xcf\x1d\x81\xc0\xaf\x71\x61\x63\x81\x34\x09\xa8\x27\x14\x05\xc2\xeb\xe3\x5f\x97\xeb\x2c\x98\x62\xb5\x21\xf3\xb3\x35\x0b\x45\x4b\x72\xd1\xc4\x2a\xee\x9b\x53\xc5\x47\x91\xc0\x78\xe2\x1e\x1c\x07\xc1\x35\x34\x01\x78\x91\x6c\x6e\xb6\x89\xb3\x58\xdc\xd9\x53\xe0\x4e\x12\x1e\x50\x77\xd4\x86\x7b\x80\x96\x33\xdc\xfb\x0b\x1c\x11\x73\x92\xe9\xa7\x89\x24\x82\x4e\x4d\xce\x0e\x0f\x87\x7b\xd0\xcd\x39\xb3\x02\x89\x65\xfa\x84\x56\x30\x76\x76\x5e\x32\x01\xf2\xd8\x62\xd0\xa0\x33\x84\x8c\x21\x30\xb8\xf7\x57\x3f\x0c\xd8\xbf\xab\x0c\xda\xda\x23\x0a\x1d\xa7\x0a\x82\xc9\x50\xcf\x19\xc9\x34\xe1\x89\xeb\x86\xc8\x8d\xbb\x86\x98\xa4\x09\x81\xfa\x3d\xc6\xed\x6c\xad\x19\x4c\xd2\xc4\xcf\xd3\x54\xcc\xe6\x16\xf2\xdf\xbc\x8c\xea\x82\x80\xac\xa0\x65\xc0\x78\x96\x4e\x11\x0a\x70\xb8\x67\x7e\x39\xb3\xe1\x6c\xff\x6b\xb8\x87\x18\x23\x69\x8e\x50\xf2\x6d\xc2\x27\x68\x04\xdb\x1f\xee\x7d\x35\x18\x0c\x86\x7b\x68\x94\xf9\x47\x26\x92\x25\x9b\xf3\x84\xcf\x04\x44\x12\xee\x0f\xf7\xbe\xb1\xbf\x93\x12\x4f\xbd\xf4\x48\xcb\xdb\x1a\x3d\xe4\x41\xa5\x86\xba\x72\x27\x4d\x32\x83\x5f\x7c\xa4\x50\x84\x5b\xc1\x19\x07\xbc\x27\xd7\x84\x36\xae\x85\x60\x50\x2f\xb8\x3c\x04\x1b\xac\x13\x95\x56\x71\x42\x7f\x68\x56\x33\x30\x37\x36\xc9\x02\x44\x40\x36\x87\xd2\x5f\x81\x02\x4f\x83\x98\x48\x9e\x8a\xc9\xd2\x3c\x7b\x4b\x2f\x6f\xe2\x57\xf9\xd2\x5d\x89\x85\x14\x77\x2d\x11\x84\x9b\x1e\xb3\xc2\xba\x85\xcd\xa7\xbc\xf7\x39\x70\x13\xf3\xcd\xed\xab\xd2\x93\xb7\x39\x92\xae\x99\x06\x0d\x97\x89\x8f\x00\xe3\x8c\xbc\xc3\x33\x69\x79\xd5\xd1\x04\x41\xd7\xdb\xad\x27\xb6\x84\xa6\x64\xa0\x8a\x32\xb5\x0e\x29\x0b\x79\x9a\xbb\x46\x73\xc0\xfe\xa2\x41\x89\x70\x77\x8b\xe9\xc3\x6c\xb4\xf4\x06\xd1\x2b\x1c\x38\x33\xa0\x31\x97\x51\x63\x4d\x13\xf3\x66\x9e\xe3\x25\xbb\x29\x06\xb0\xc1\x2e\xba\x34\x07\x8d\xb5\xd5\x20\x1c\x8e\x72\x1c\xe6\xee\x74\x5b\x32\x18\x12\xa0\x6d\x0b\x4c\x2e\x21\xda\x65\x06\x7a\x6d\x07\x9a\x33\x81\x92\x7e\x64\x86\xfc\x99\xc0\x85\xeb\x15\x9a\xc6\x93\xf8\x28\xfa\x0c\x20\xb2\xae\xc3\x90\x6d\x0b\xff\x50\x7e\xd0\xdf\x5c\x0b\xaa\x4b\xb6\x33\x73\xa6\x01\x2e\x68\x9e\xc8\xb8\x58\xe0\xb9\x91\x74\xfd\xef\xeb\x77\x6f\x5b\x20\x72\xd9\x66\x54\xfc\x55\x42\x19\x85\x1c\xa6\x68\x1f\x92\x85\x30\x50\xbd\x80\x96\x65\x61\xf2\xa4\x66\x62\xc1\xa3\x0c\xad\xea\x13\xa3\xaa\xa5\x68\xda\xaf\xc0\x76\x29\x36\x4f\x54\x98\x05\xc2\x8b\x89\x71\x92\x3a\x4e\x78\x0b\x03\xc1\x8a\xd4\xc0\x4a\x8e\xab\xfb\xe8\x95\x56\x67\xae\xb4\xba\xff\xbb\xc5\x76\xdd\x7a\x58\x9b\xe7\x85\x39\xdb\x85\x4d\x10\x03\xa7\x4e\xce\x5b\x2a\x6b\x05\x54\xef\x99\xd1\xe6\x9f\x31\xaf\xa7\xf9\x3c\x92\x28\xe1\x81\x2c\x43\xe8\x2e\xb9\x2c\x62\xcf\x96\x91\xda\xb5\x26\x28\x71\x5b\x2e\xcf\x7a\xee\x00\x96\x15\xdb\x11\x6f\x71\xfb\x68\x5e\x58\xc4\xa1\x9e\xc8\x74\x9a\x8d\x06\x81\x9a\x1d\xbe\x3b\xbf\x38\xa4\xf1\xf7\x0b\x20\x03\x87\xa3\x48\x8d\x0e\x67\xdc\x08\x46\x87\x96\x24\x1d\x9e\x0c\x8e\x06\xb3\xf0\xab\x90\xa7\xbc\x8f\x80\x0c\xeb\xab\xf3\xac\xb3\xa9\xb5\xb4\xe8\x55\xb6\x1f\x7e\xc8\xeb\xd4\x6f\xb9\xef\xf3\x44\xaa\x44\xa6\xcb\xb5\x85\xa7\xb0\x19\xed\xbd\x8d\x00\xc2\xdd\x76\xb9\x15\x46\xfd\x30\x3a\xcb\x0c\x84\xed\xd8\x5a\xfc\xdc\x11\xa0\x3a\x29\xb8\xdb\xe0\x5f\xd3\x03\xf6\x83\xba\x73\xd5\x5d\x50\x76\x0f\x14\x80\x8d\x99\x76\x53\x39\x31\x7a\xb0\x7d\xfd\x80\x59\x38\x72\xf4\x6b\xa3\xc0\xac\x6c\xc0\x50\xcc\x22\x39\x93\xe6\x4f\xb4\x37\xea\x40\xc4\x3c\x91\x4a\x7b\x36\x32\x04\xb9\xe3\xae\x4b\x54\x57\x2c\x6e\x4f\x19\x97\x6e\x4b\x73\xd7\x9a\x80\xc1\x86\xca\xfa\x5e\xb2\xe5\xda\xbb\xf4\x84\xce\xf3\x06\xb6\xbd\xbd\xf2\xc2\xf4\x6a\x18\xc0\x67\x64\x8d\x2d\x04\xf8\xa6\x47\x6a\xe4\x78\x2a\x70\x9f\x57\x11\xf1\x2b\x51\x70\xf6\xea\xaa\x8d\xa9\xaf\x13\x65\x7f\xc7\xa2\x6c\xc1\x4e\x7f\xfb\xf3\x70\x8f\x0e\xee\x70\xef\x97\xc7\x2f\x2a\x6d\x35\xb0\xb5\x98\xa9\xa4\xa8\xe5\x2b\x66\x2e\x44\x6d\x29\x00\xba\x22\x66\x03\x45\x7a\x27\x44\xec\x96\xac\xae\x7e\xdc\x19\xeb\xb3\xdb\xb7\x2a\x16\xb7\x67\x58\x5d\x80\x9e\x4e\x30\xc2\x04\x21\xd9\xac\xa9\xd9\x0f\x0e\xbe\x73\x06\xc0\x54\x41\x35\xaf\x78\x49\xe1\x1d\xd6\xa6\x57\x7f\x30\xfa\xb9\xa6\x79\xe6\x6d\x1b\x6e\x10\x2a\xa9\xaa\x00\x83\x65\x77\x30\x55\x2c\x24\x50\x39\x77\x12\x07\xec\x3c\x2f\x9c\xe1\x79\x06\x86\x31\x03\x5b\x89\x10\xa1\x1f\xc1\x88\xe2\x15\x45\x00\x6c\x88\x2e\x82\x96\x25\x68\xeb\xbd\xff\xae\xc6\x5d\x81\x0f\x69\x51\x2e\xc9\xd2\x46\x74\xa8\xe9\xef\x61\x6d\x0e\x48\xb3\x37\x35\x3c\xd4\x4d\x7b\x67\xf6\x07\xe7\xc2\xc4\x90\x9a\x5b\xdb\x0a\xcc\xa3\x14\xb8\x5a\x6b\xad\x68\xc9\x34\xdd\x9d\xfb\x6c\x4c\x71\x0b\x4d\xd1\xd3\x11\x0b\x0e\xfb\x22\x46\x66\x2e\x92\xd9\x5a\xd9\xe4\x27\xca\x09\xf9\x80\xb1\x8b\x54\xa3\xa4\x0b\x31\xc5\x23\x87\x32\x4c\x0a\x04\x56\x05\x01\x20\xea\x41\x5e\x06\x7b\xe0\x7f\xed\x15\x11\x31\xf4\xd4\xaf\x27\xba\x38\x1e\x1c\xbf\xec\xb1\x79\xc4\xe3\x98\xee\x1e\x14\x35\x82\x0b\x0a\xbf\x7e\x3d\x60\xef\x35\xd0\x13\x6f\xa1\xd0\x5f\x7f\xb8\x38\x6e\xae\x9f\x6b\xbd\x04\x2d\xea\xf4\x38\x52\xb5\x86\xae\x9e\x5f\x5e\xfc\x54\xaa\x57\xec\xf1\x49\x23\xf3\x22\x6a\x9a\x15\xb9\x4b\x20\x14\x10\x63\xef\x72\x28\xae\xc9\x0b\x41\x9b\x60\x45\x95\x44\x04\x6a\x12\x03\x72\x3c\xf6\xe6\x78\x53\xc4\x53\x01\xaa\x17\x51\x3a\x8a\x60\xb6\x91\x7b\x89\x80\x40\xbe\x2c\xf6\x7a\x40\xc2\x5d\x0b\x32\x3f\x91\xa9\x5d\xc5\x40\xcd\x66\x59\x2c\xd3\xe5\x21\x14\xc0\x92\xa3\x2c\x55\x89\x3e\x0c\xc5\x42\x44\x87\x5a\x4e\xfa\x3c\x09\xa6\x32\x15\x10\x99\x6d\x6b\x03\x2d\x8c\xd6\x67\xb6\x62\x16\x7e\xd5\x50\x8d\xa2\x0d\x05\x83\xa2\xdd\xab\x57\xfd\x7b\x19\x53\x41\x13\xb2\xa5\xa3\x1d\xc0\x2d\xae\x55\x7e\xa0\x66\x89\x77\xc0\xf3\xe0\xc6\xfc\x0a\xe4\xcb\x6e\x96\x4c\xc6\x63\x5b\xff\x86\xaa\x6d\x89\x1c\xd3\x14\x5d\x51\x86\x62\x31\x9d\x8d\x66\x32\xd5\x3e\x5c\xe9\x80\xbd\x42\x2f\xd1\x48\xe4\x51\xc5\x17\x31\x7b\xc5\x67\x22\x7a\x05\xd5\xd0\x1f\x78\xd1\x41\x59\xe8\x9b\xf5\xdb\x62\xd9\x6d\xde\xcb\xa6\xdc\x62\xc6\x83\xa9\x8c\x45\xb2\xcc\x29\x98\xe9\x6a\xb0\x38\x1e\xe4\xf9\x46\xcd\xd0\xfc\x8f\xc1\x9c\x56\xd6\x66\x5f\xe9\x28\xae\x56\x61\x37\x67\xa0\x58\x87\xbd\x58\x72\x86\xca\xb0\x37\xc8\x6a\x0f\x8f\x20\xbc\x66\xc6\x5b\xa2\x08\x53\x10\x6f\xbb\x02\x96\x9b\xf3\x53\xb3\x0f\xeb\x78\xa9\xfb\xbe\x10\xa4\x0a\x7c\xa4\x4f\xe4\xb6\x4f\xa4\x23\xef\xba\xb0\xd0\xb6\x24\xfc\x5e\x1d\xe3\x28\xae\x09\x75\xd4\xc8\x42\x8b\xad\x73\xfd\xd4\xaa\x02\xd5\x35\xf8\xe5\x11\x64\x81\xbc\xbe\xe3\xe6\x42\x81\x7b\x36\x0f\x96\x21\x8b\x83\xa7\xa2\x25\xa0\x30\xbb\x02\x99\x8e\xab\xcd\x55\x1b\xa6\x1a\x71\x9d\xde\x24\x3c\xd6\xf0\xf0\x8d\xac\x5a\xd9\xee\x41\x6b\xa0\xbb\x55\xe7\xba\xfa\x76\x66\xbe\x42\xc8\x0b\x52\x0a\x68\x5a\xa9\x6b\x66\x0b\x29\x1a\x15\x98\x2e\x46\x5e\xef\xb1\xc1\xcf\x35\x13\x5a\xaf\x2f\x76\x45\xad\x3c\x23\x62\xdf\x19\x11\xdd\x6f\x78\x07\x0d\x37\xb3\x7b\xc1\x47\x2a\x4b\x69\xe0\x6e\x94\x5b\xa8\x09\x89\xe0\x7a\xad\x70\x83\x8d\x70\x88\x98\x2a\xdb\x33\x2b\xd1\xbf\x53\x49\xd8\xcb\xf9\x1a\xa3\x76\xb9\xd9\x93\x16\xf2\x99\xde\xc1\x48\xeb\x89\x66\x03\xd1\x2a\x00\xe5\xdb\x3c\x32\x3b\x1c\x60\xd0\x86\x3b\xdf\x40\x2a\xe4\xb7\xa8\x94\x91\xbe\xb6\xc5\xc8\x36\x30\x22\xa6\x36\xdb\xb6\x3a\xa6\x1b\xb0\xf0\x59\x03\xc5\x1b\x9d\xf2\x51\x24\xf5\x54\x84\x3d\x06\xa5\x73\xcf\xa9\x8e\x2e\x48\x75\x37\x22\x99\xc9\x98\xa7\x1b\x94\xc2\x69\x49\x83\xcb\x86\x3f\x5a\xf6\x27\xa0\xe1\xfc\x20\x75\xba\x05\x41\xfb\x81\x92\x35\x72\x48\xf4\x46\xbd\x80\xca\xb3\x76\x7a\xc1\x93\xd6\x0b\x6a\x21\x7e\x4a\xcb\x8e\xc9\x73\x98\xa7\x13\x87\x72\x21\x43\x23\xb6\xac\xdb\xf8\xcf\x50\x43\x74\x8d\x52\x7f\x1f\x8b\x60\xa7\x3f\x7d\x29\xfa\x93\x21\x61\x25\xed\xa9\x25\x35\xc7\x33\xfc\x9b\x12\xa9\x81\xcc\x3f\x49\xb1\xba\x5c\x67\xbf\x2d\x07\x7a\x4b\x55\xe9\x7d\x45\x8a\xea\xdf\xe7\xd5\xa1\xa4\x5e\x5f\x3a\x7e\x45\xc8\x79\x2a\x26\x2a\xa9\x81\xa1\xa9\x04\x9d\xdb\x86\x45\x96\x08\xfb\x27\x42\x56\xaa\xfc\x59\x8e\xba\x18\x89\x48\xc5\x13\x18\x37\x44\xc8\xb2\x67\x3c\x8a\x9e\xe5\x59\x95\x6c\x9e\x91\xd0\xc2\x64\x0c\xa6\x42\x57\xbb\xdf\x95\x9b\xd0\xc8\x7f\x32\xc2\xaf\xb3\xb1\x02\x66\x29\xd0\x61\xc4\x64\xbc\xa0\x10\x65\x8d\x69\x94\x10\x86\x1b\xa4\x11\x9b\x08\x08\x36\x7c\x7c\xef\x4a\x0b\x5a\xfa\x81\x68\x29\x85\x8e\xdb\x1a\x8f\x16\x35\xd0\x37\x10\x58\x70\x15\x4c\x51\x8c\x96\x9e\x08\x0d\xae\x01\x19\x4f\xb2\x88\x27\x03\x3a\x11\x5e\x5d\xab\x58\x83\xe7\x5e\xfb\x9e\x3c\x07\x03\x42\xe8\x0f\xb7\xe6\x95\xb7\x1e\xc8\x02\x6d\x05\x78\xb3\xb6\x10\x6f\xcd\x19\xf9\x7e\xfd\xfc\x6d\xb3\x35\x6b\x00\x27\xce\xf9\x51\xf2\x15\xf1\x7d\x69\xc3\x3d\x9c\x83\x21\x05\xc3\xbd\x6d\xe2\x26\xa2\x2c\xe1\xeb\xa2\xe2\xb1\x91\x1d\x2e\x7d\xf2\xd3\xb2\xfc\x60\x23\xb8\xa6\x6d\xcb\x66\x6f\x5a\x26\x9b\xbe\xc7\x21\xe0\xd7\xb6\x8c\xe9\x8c\xa7\x94\x6a\xe4\x8f\xac\x51\x90\xd9\xf7\x0c\xf0\xec\x16\xbb\x05\x52\x33\xf0\x3b\x1f\x54\x46\x76\x7b\xe0\x15\x29\x8c\x22\x16\xa9\x3b\x44\x93\xdd\x46\x51\x9b\xaa\x24\x2d\xd3\xca\xba\x0d\xc8\x1b\xe2\x12\x4e\x21\x31\x0a\x3e\x5b\x15\x32\xaf\x6d\x68\xdd\x10\x0f\x46\x57\x70\x4d\x60\x10\xb9\xaf\xe2\x16\xae\xea\xac\xc5\xca\x3c\x82\x87\x97\xc8\xc2\xba\x55\xa5\x66\xee\x1e\xda\xcf\x75\x47\x7b\xc5\xf4\x0a\x37\xd2\x7d\x1d\x12\x79\xd9\xb1\xd6\x49\x17\xb6\x4c\x71\x9f\x80\xd6\x79\x5d\xb4\x4d\xb7\xe5\xf9\xd7\x55\x8b\x31\x2f\xd9\x8b\x65\x52\xa0\x30\x64\x30\x5e\xaf\x7a\x7a\x69\xea\xa0\xd8\x51\xd0\xd5\x9a\x63\xd1\xf4\x98\x1f\x3a\x91\x7b\xc0\x03\xfa\x11\x4b\xe5\xe1\xb5\xbb\x01\x9b\x94\xca\xd2\x79\x96\x16\x43\x9c\x6a\xaa\x12\xbb\x6c\xaa\x43\x48\x5b\x81\x6a\xc4\x24\x69\x07\x62\x9e\xea\xc3\xaf\x12\x11\x08\xb9\x30\xbf\x39\x4a\xda\xe7\xba\x0f\x69\x20\xc5\x48\x27\x76\xe1\xb2\x30\x7a\xa4\x52\x40\x60\x80\x0d\x01\x11\xda\x8d\xd7\x22\x37\xe4\x81\x0a\x37\x6a\xde\x8f\x8c\xe4\x8f\x75\xbe\x44\x62\x25\x5a\xf7\x0c\x87\x8a\xf0\x69\x06\x9c\xd8\x15\x17\xa0\x90\x17\x96\xba\xe7\x55\xd2\xf8\xb8\x97\x61\xe7\x80\x20\x28\xa8\x2e\x94\x7a\x1e\x71\x87\xd5\xc4\x27\xa2\xa1\xb4\xbf\xb9\xaf\x35\x69\x77\x9f\x4d\x0b\xad\x84\x22\xdf\x87\x76\x05\x75\xc1\x5b\x8f\x36\x11\xf7\xee\x95\x29\x10\x7e\xb0\x18\x5a\x6a\xbc\xaf\xb4\x48\x8d\x36\x9c\x73\xa6\x57\x57\xaf\x1b\xec\xbe\x56\x17\x5a\x75\x1b\xa1\x8d\xa5\xd0\x86\x9f\xe1\x17\xab\x2b\xec\xdf\x5b\xfc\x18\x0c\x06\x8f\x2f\x57\x6c\x99\xcb\xfe\x39\xbd\x63\x28\xbc\xac\x3a\x2c\x28\xa5\x10\x0e\x5b\x51\x58\x34\x64\x06\x04\xde\xa2\x24\x53\xde\xcb\xa6\x80\xdf\x9a\xe0\xa1\xb5\xd1\xbf\x75\x01\x47\xbe\xba\xc9\xd3\x62\xa5\xa5\x75\x18\x2c\x36\xce\x95\x6c\x93\x79\x2c\x48\x0e\xb9\x04\x01\x35\x14\x95\x47\x39\x68\x3a\x55\x09\x9f\x88\x41\x01\x45\x11\x71\x15\x73\xfc\x47\xb3\x38\x58\x96\xc4\x0e\x13\x52\x11\x0a\x00\x91\x3c\xba\xe3\x4b\x0f\xdf\x09\x48\x31\x85\x4e\x59\x03\xa7\x95\x59\xec\x55\xa9\x12\xfe\x0a\xa4\x06\x04\x8d\x60\x49\x29\x2f\x9f\x5e\x97\x12\xea\xbd\x20\x94\x33\x97\x79\xed\xc0\xe2\xbc\x30\x2e\x0a\x42\x61\x97\x38\x4c\x67\xaf\xcd\xe2\xc2\x04\x03\x74\x35\xac\xc7\xb9\xa1\xfc\x4e\xd0\xe0\xda\xe0\xef\x9c\xc1\xac\x6e\x73\x38\xa7\xb5\x3c\x39\xe5\xfa\x83\x3e\xe4\x41\x20\xb4\xf6\x5f\x60\x78\x33\x1e\xcf\x9c\x15\x97\xbf\xe8\xfb\xb7\xee\x2b\x02\xd5\x01\x5e\x98\xb9\x11\x9a\x6f\x4a\x18\x41\xeb\x03\x96\x57\x02\x2f\xea\x40\xad\x75\xad\x40\x1b\xef\xb8\xdf\x4d\x05\x55\x7a\x6d\x24\xa4\x86\xf0\x52\x5a\x65\xdf\xb0\x75\x07\x6c\xd0\x87\xce\xc2\xba\xf0\x46\x76\xfb\x0a\x9f\xb8\x85\x43\x7c\xfb\xd6\x3e\x13\xde\xba\xb3\x06\xd1\x67\xfe\x0f\x5b\x28\x4f\xf5\x95\xa2\x1f\x89\x04\x16\xea\x54\xaf\x0c\x0e\xf0\x2b\x4e\x5b\x32\x78\x07\x81\x63\xfe\x2f\xab\xf6\x60\xca\x5b\x49\x76\x95\xda\xd6\x6d\xc5\xbb\xc2\x83\x0d\x32\x5e\xfd\x1e\x2c\xea\xaa\xef\x3e\xd2\x0e\x78\x95\x7f\x57\xad\xbf\x47\x3d\x72\x25\x23\x87\xa6\x42\x2d\xb8\xb9\xce\x6d\x83\x08\x5a\xb3\x1f\x55\x32\x45\x62\x6a\x01\x88\xa2\xf5\x9e\x10\xf5\xde\x6c\x3b\x5a\x39\xda\x5c\x1c\x7b\x2e\x53\xd9\xaf\x1e\x58\xaa\x6a\x30\xea\xac\x96\xb4\x30\xf8\xde\x08\xf7\x96\x21\xdc\xda\x05\xbc\x25\xbf\xd5\xd8\x7d\x45\x24\x27\x6f\x60\x06\x37\x52\xe9\xd4\x83\x55\x60\xef\x6c\xc6\x97\xf7\xa0\xc6\x48\xd7\xbc\x91\xcf\xdc\x00\x5b\xc2\x6b\x58\x0e\x8a\x6c\x4d\xb3\x16\xed\xb2\x1e\x16\x5e\x96\x83\xb3\x04\xaa\x31\x1c\x1e\x6f\xbb\xf4\xda\xfd\xaa\x9b\x69\x79\xa2\x37\x1b\xaf\xf7\xac\xb8\x59\x79\xc7\x14\x85\xbe\xe1\x76\x58\xaf\x6f\xec\xec\x5b\xf6\xd6\x18\x79\x23\x23\xf4\x16\x85\x60\x96\x31\x49\x64\x74\xe0\xf2\xdc\x05\x42\x0a\xad\xb1\x7b\x11\xa6\xb3\x73\x25\x5b\x0f\x9e\xd4\x6c\xb8\x07\xb0\x15\x91\xfc\x20\x86\x7b\x3d\x26\x53\x94\x63\x34\xa0\x17\x8d\xd4\x02\x20\x17\x8a\xad\x4a\xbd\xe8\x9e\x27\x22\xba\x74\x14\xf1\x51\x06\x6a\x92\xf0\xf9\xd4\x22\x76\x0f\xf7\xbe\xaf\xf6\xa1\x99\x4e\x79\x42\xd8\x9a\x9c\x0d\xf7\x16\x66\x14\x80\x6c\xc2\x13\x0b\x10\x8d\x46\x3a\xee\x70\x90\x10\xa9\xf8\xef\x86\x62\x61\x2f\x07\xf4\x88\x4d\x64\x8c\x96\x14\xd2\x01\xb3\x1c\xee\xf1\x68\x3e\xe5\xb6\x98\x94\xa1\xa4\xc3\x3d\xd8\x16\x8a\xc9\x29\x76\x2c\x63\xaf\x63\x5b\xb3\x19\x6e\x38\x26\xa8\xe0\xe9\x18\x2d\xd9\x77\xe7\x68\x07\x14\x58\x7b\x94\xfe\x86\x77\xb1\xfd\x3b\x40\xa0\xfb\xee\x1c\x5d\x27\x79\x0a\x4b\x3a\x65\xb1\x62\x3a\x1b\x8f\xe5\x47\xa6\x21\x85\x41\xe3\xf3\xc0\xae\xe6\x53\x7e\x80\xb6\x49\x98\xd0\x68\x49\x89\x76\x66\x1e\x85\x29\xd3\x8c\x0b\xa3\x1d\xb0\xf3\xd8\xa2\x41\xd8\xd1\xba\xd2\xee\xb4\xde\x67\x6c\x71\x7c\xd4\x63\x8b\x93\x1e\x5b\x1c\x9b\xff\x03\x67\x81\x4f\x47\xe6\xaf\xd3\x1e\x5b\x9c\x02\xb3\x31\x5f\x9d\xc0\x88\xb0\x1d\xfc\x79\xd2\x63\x63\xa5\x8e\xf1\xdf\x72\x8a\xdd\x13\x70\x82\xdb\x40\x8b\x8d\xed\x0f\x2d\x6d\x8f\xa8\xaf\x57\xf4\xcf\x8a\x18\xfa\x14\x8c\x91\xe5\x18\xa8\xd6\xe6\xc8\xba\x60\xce\x76\x51\x9c\xeb\x0d\x92\x14\x98\x54\x6b\xf2\x7f\x5a\x6a\x7b\x61\xa8\x40\x00\x3c\x5f\x2c\x14\xd3\x73\x40\xb5\x00\x8a\x6b\xae\xa8\x25\xdb\xe8\xa8\xf5\xe8\xef\xcd\x54\x2c\x6d\x92\x6b\x9e\x45\x08\x89\xaa\x79\xaf\x12\x73\xd3\x9a\xa1\x30\xc2\xfa\x82\xc2\x55\xe3\x14\x35\x74\x7b\x48\xdb\x67\x84\xbc\x39\x4f\x52\x19\x80\x91\x9f\x6b\xc8\xfc\xa3\x1c\xc6\x56\x51\xab\x4f\xe0\x8a\xe7\x01\xab\xf7\x72\x90\xa4\x2a\x11\x61\xcb\x1c\xcc\x62\x63\x0b\x59\xed\xc9\xb1\xd5\x48\x31\x8b\xee\x64\xb8\x80\x58\x88\x24\xcf\x4a\x1c\xb0\x9b\x84\x07\x1f\x48\x7f\xd7\x5e\x7e\x24\x55\x67\xe4\x6c\x26\x27\x94\xab\x08\x50\x08\x80\xc5\x00\x43\xc8\xdb\xca\x98\x89\x34\xb0\xd5\x59\x51\xea\xd0\x46\x4e\x06\xc3\xbb\x56\x85\x5e\x20\xb4\x45\x45\x91\x48\xc0\xc4\x60\x56\x52\x4f\x0b\x2d\xf2\x00\x55\xc7\xab\xf6\x01\xd0\xde\x0c\x33\x56\x4c\x45\xb6\x6a\x07\x09\x1a\x62\x9c\x22\x06\x18\xd8\x71\x7c\x9e\x05\x79\x37\xc2\xda\xb9\xd2\x4a\x16\x28\x85\xf8\x50\xf6\xa7\x13\x7e\x30\x14\x88\x42\x79\xb0\x0f\x8a\xa3\xbd\x85\x4b\x91\x4b\x50\x77\x53\x19\x41\xff\x46\x1d\x20\x14\x81\xbc\xbf\xcf\x83\x19\xf2\xf8\xe4\xbd\x1a\x52\xd8\x96\xbe\xff\x54\x49\x73\xce\x05\x14\x73\xd4\xc0\x5a\xdd\xb9\x96\xaa\xae\xa5\xed\xdd\x43\x97\x35\x6d\x1d\x94\x3f\x47\xbb\x21\xe5\x18\x22\x0e\x46\x60\x03\x30\x35\xdb\xcf\xbd\x4a\xf6\xd1\xdc\xc8\x9a\xa1\x9b\x1b\xb4\xb1\x83\xce\x0d\xb5\x4b\x37\xd4\x86\x18\xbd\x0b\x4f\x87\xeb\x21\x94\xda\xff\xfc\xf7\xff\x5d\x1c\xff\xcf\x7f\xff\xbf\x1e\xfc\x75\x02\x23\x86\x8f\x22\x0d\xda\x5a\x12\xd0\xb0\x62\x33\xa0\xd3\xcd\x2d\x0b\xa0\x8c\x62\x97\xb7\xb6\xa4\xcf\x36\xb6\x46\xb0\xc6\x3c\x59\x1b\x17\xd9\x9b\xb6\xb7\x6f\x79\xab\xdc\x64\xef\xda\xda\x54\x55\xb8\xfe\x05\xa7\xc4\x66\xd7\xbf\x6a\x5f\x6b\x22\x04\xcd\xa8\xaa\xd5\x12\x6d\x35\x38\xa7\x82\x02\x7d\xc7\x11\x9f\x30\x11\xf3\x51\x24\xe3\xc9\x61\x28\x35\xfe\x55\x5c\x2e\xe0\xd1\x28\xfe\x5a\x93\x84\xe4\x18\x05\x7c\x7e\x79\xd1\x10\x14\xbb\xda\x92\x8f\x42\x45\x0b\xa1\xcc\x4b\x78\xb1\x61\x88\x6e\x9d\x8b\x4b\x53\xf6\x41\x55\x6e\x9e\xef\x94\xba\x01\xe5\xdd\xba\x8d\x84\x07\x5c\x5a\x50\xe4\xa9\xfd\xbf\xae\xb8\x52\xab\xe7\xf9\x85\xd9\xef\xab\x77\xa8\xd9\x9e\xbf\x58\x7d\xa1\x5a\xd8\xe3\x8b\xb7\xca\x7f\x60\x8b\xab\x55\x9c\xe3\xfa\x5b\xd5\xd2\x5c\x50\x46\xca\xa1\x1b\x58\x73\xd6\x3f\x9b\xc1\xc0\x3b\x06\xd7\x01\x8f\x56\x41\xe2\xaf\x7e\xd0\x45\x42\x10\xf4\x82\x0d\x56\x16\x50\xd7\x44\xf8\x4b\x8c\x62\x66\x51\x5f\x6a\x95\x0b\x38\x12\xd1\xb5\x88\x44\x90\xaa\xa4\x05\xc2\x5c\xa5\x7d\x21\xad\x26\x87\x9a\x23\xbf\x32\xa8\xc1\x15\xec\x38\x28\x4a\xa1\x92\x44\xe8\xb9\x8a\x11\x9c\x03\xa7\x7b\x8b\xd9\x4e\x03\x4d\x2f\xb8\x1d\xb0\x77\x71\xb4\xcc\xfb\xc5\x82\x4c\x2a\xc3\x1c\x86\x22\x88\x1d\xf9\xae\x09\x50\xd5\x45\x53\xe2\xc3\x30\x54\x72\x24\x0c\xf0\x2d\x88\xdf\x0b\x30\x08\xb7\x79\x7b\x3a\xd8\x77\x2a\xf9\x80\x14\xe9\x6f\x2a\x91\xff\x54\x71\xca\xa3\x4b\x15\x9e\x67\xa9\x82\xa5\x4f\x7c\x2d\x11\xb2\x2a\x6c\x9d\x7a\xa9\xbd\x65\xf0\x0a\x43\xa1\xe1\x14\x1f\xd8\x87\x9b\x04\x76\xc8\x48\x7c\x64\x76\xba\x54\x64\xcd\xa2\xf1\xb9\x04\x50\xee\x07\xf3\xc2\x0e\xe4\x8f\x48\x67\x79\x1e\xab\x64\x56\x9b\x9a\xf1\x80\xae\xe8\xaf\x60\x31\xfa\xfe\x39\x44\xb3\x78\x22\x30\xc0\x9a\x42\xa3\xad\xe0\x65\x11\xc6\xe8\x8c\xd4\x09\x05\x3d\x02\x96\x2e\x9d\x04\x5b\x6a\x91\x9c\x07\x87\xf0\xe2\xdb\xc2\x0d\x00\x2b\xbb\xad\x26\x44\x19\x58\x58\x64\x91\xca\x30\x6e\x21\xa2\xcd\x45\x70\x25\xe6\x91\x0c\xb8\x6e\x71\x3b\xca\xcd\x77\x7c\x39\x8c\xce\x9e\x50\xf7\x0f\x75\x35\xf0\x36\xec\x68\x13\x1b\x77\x09\x95\x4f\x40\x07\x4a\x12\x95\x30\x15\xb3\xef\xde\xdc\x6c\x9d\x95\xba\xc9\x16\x55\x1e\x78\x10\x0a\xf6\xd0\xdb\x84\x14\x6c\x67\x1b\x55\x1e\xf5\x16\xb7\xad\xec\xb9\xb8\x6f\x48\x72\xe5\xea\xad\xde\xf5\x27\xc1\xec\x37\x73\x0f\x54\x9e\x5c\xc1\xee\xf1\xf7\x75\xfc\x9e\x5d\xbb\xfc\x6b\x97\x18\x68\xf9\x92\xf0\x18\x5f\xfd\x29\x2f\xf6\x36\x60\xff\x66\xe4\x7b\x2d\xd2\x1e\xfb\x23\x85\xff\x1b\x56\x74\xd8\x30\x96\x3a\x5b\xc6\x1f\xd9\xe5\xfb\x1b\x3f\xb7\x10\x5a\xd5\xf5\x90\x62\xf5\x8f\x72\x07\x8a\x6a\x28\x03\x16\xfc\x24\x36\xbc\x0d\x81\xcc\x28\xff\x7f\x99\x4e\x0d\xeb\x13\x1f\x03\x31\x4f\x0b\x2b\x95\xf2\xf8\x9f\x1c\x07\x70\x78\xf9\xee\xfa\xe6\xf0\xf2\xfc\xe6\xd5\xdf\x2a\x63\xa9\x58\x5f\x2a\x2f\xa9\x74\xba\xf7\x39\x8f\xd8\x56\xa7\x4b\x17\x48\x1c\x4d\x06\x32\x9d\xca\x52\xa4\xde\x52\x8c\xd4\x25\x31\x97\x3d\xba\xbe\x85\x82\xf6\x6a\x7b\x06\x8f\x44\xc9\x05\x57\xde\x7e\x52\x53\xf0\xe2\xf1\x7a\xc2\x07\xc4\x1f\x19\x18\xc0\x45\xde\x72\x12\x0a\x8d\x42\xbf\x38\xbe\x25\x4e\x40\x49\xe3\x4f\x0b\x81\xa6\x4a\xac\x36\x86\xa0\x59\xbf\x64\x44\x64\xbc\x35\x23\x5a\x02\x66\x0f\x11\x9e\xb1\xe3\xc1\xda\x8b\x68\xa1\x8e\x5d\xd2\x72\xfd\xcd\xbc\x75\x6f\xc3\x0b\xaf\xfc\x7a\xe3\x03\x76\xb2\xfe\x45\xb5\x03\x5e\x45\x6c\x14\x85\x37\x92\x9f\x71\xf5\x08\x9e\x82\x83\xe3\xa7\xba\x78\xba\xd5\xc4\x23\x7f\xa4\x98\xa7\xea\x99\xcb\x66\x22\x9d\xaa\x70\x5b\x82\xa1\x30\xc4\xf9\xa7\xd3\xeb\x47\x33\x82\x96\x2a\xe2\xad\x3c\xf9\xa5\xe1\x59\x83\xb4\x0d\xcc\x5e\x9c\x5a\x6b\x21\xd5\xfe\x68\x36\x85\x7e\xa6\x13\xf0\x86\x40\x37\x5f\x53\x76\xde\xba\xed\xaf\x6d\x6f\xbd\xa7\xd6\xe3\x03\xb5\x03\x3d\x40\xcf\x02\xff\x87\x41\x84\x22\x74\x09\x81\xd0\x45\x8b\xa3\xb0\x02\xf3\xbd\x8d\x06\x50\x53\x7e\xe9\xf3\x56\x3c\xc9\x4f\xdb\x9a\x42\x8e\x05\xfc\xc7\x78\x49\xe5\xe9\xe0\x17\x2a\x4b\x89\x81\x52\x88\x3d\x5d\x80\xf4\x3d\x83\xc2\x94\x3d\x26\xe3\xf4\xe5\xf3\x1e\x1b\x47\x8a\xc3\x1f\x38\xe3\x1e\xfb\xf9\x17\x70\x04\x8e\x79\x20\xfe\xeb\xd7\x1e\x9b\xf1\xf9\xcf\xf8\x93\xff\x3d\x1c\xd3\x58\x46\x3b\xaa\x04\x59\x7f\xcb\x5a\xd7\xb2\x44\x42\x63\xbe\xec\xd3\xa5\xc3\x48\x35\x73\xe8\x0a\x60\xdd\xec\x75\xc2\xc7\x29\x7b\xce\xf6\xa7\x69\x3a\x3f\x3b\x3c\xfc\xbb\x56\x71\x9f\x6a\xc2\xaa\x64\x72\x78\xd0\xe2\xd0\x11\x81\xd9\xf8\xb4\xfd\xa1\xde\x69\xd3\xe6\xd1\xdc\x07\x7b\x51\x87\xa0\xf2\x08\x24\x8f\x6a\xa9\xae\x19\xdd\x65\xfd\x92\x3d\x81\x21\x46\xd1\xbb\xca\xa6\x3d\xa2\x63\xb4\x7c\xb4\xef\xe3\x09\xe5\xf1\xf2\x8b\x99\x0b\x19\x01\x1e\xeb\xb4\xac\x64\xdc\x61\x9e\x09\xc2\x9d\x75\x22\xaf\x4e\xe2\xca\x42\x17\x13\xb2\x5c\x06\x09\x45\xf0\x72\x0c\x1f\x1d\x0b\x9e\x66\x89\x6f\x4f\xa9\xc4\x7f\xd8\x87\x6c\xd3\x09\x94\x7d\x6c\x0a\x13\x41\xe3\x8f\x1d\x57\x9e\x45\x15\x50\x21\xf3\x3c\x05\x69\x71\xcc\xf6\x55\xc2\x62\x71\x27\x92\x83\xe6\xbc\xc0\xf3\xcb\x8b\x06\x0d\xc3\x5b\xf3\xf2\xc6\xb4\xb8\xea\x4f\xe5\xd4\xf9\x7c\xb9\x3a\x43\x2c\x4e\x1f\xd4\x50\xaa\x27\x33\xc5\x62\x61\xe7\x7b\xce\xf7\x5e\x72\x92\x88\xb3\xd9\x67\x26\x38\xf7\xa2\x32\x14\x84\xfd\x68\x54\xa6\x61\x10\xe4\x2a\xfd\x91\x7f\x94\xb3\xea\x82\xb6\xf2\x51\xe7\x9d\xc8\xf8\x1e\x9d\x38\x81\xfd\x51\xf8\x74\xbd\x42\x51\x3b\xb4\xcd\xab\x25\x79\x7a\x15\x7d\x4f\x1e\x1b\x8b\x0a\x49\x5f\xa3\x14\x8c\xba\xb9\x8d\xd3\x74\x42\xa2\xdf\xc4\x66\x46\x85\x67\xc3\x78\x18\xf7\xd9\x48\xab\x18\xef\x96\x0c\xcf\x0c\x79\xd7\x0e\x75\x8e\x5d\xbc\xc6\xaa\x97\x8c\xb3\x93\xe7\x46\xe3\x4f\x78\x00\x95\x16\xa7\xe2\xa3\xf5\xad\xf5\x59\x96\xc8\x33\x33\xd4\xf7\x57\x17\x8c\x6b\x36\xe7\x09\x01\x9d\x7c\xa7\x22\x1e\x4f\x58\x2c\xd2\xc3\x2c\x89\x06\x97\xe6\x87\x2b\xb4\x39\x98\xb6\x7d\x26\x66\x5c\x46\xf0\x2c\xfc\x65\x8b\x8c\x36\xf6\x62\x1a\x61\x37\xe7\xd4\xb2\x0f\xf5\x40\x63\x3e\x13\x67\xae\x8a\x75\x09\xa8\x70\x8c\x45\xfc\x2f\x00\x69\x50\xa4\x58\x7b\x15\xe3\xa6\xb8\x76\x31\x03\xa3\x25\xbb\xfa\xf6\x15\x3b\x3e\x3a\x35\xba\x02\x95\x58\x3e\x1d\x1c\xb3\x9f\xaf\xbe\x7d\x65\xbe\xfd\x65\xc0\xfa\x4c\xce\x17\xcf\xcf\xb0\x22\xea\xe2\x39\x94\x45\xad\x1f\x29\x0e\xf2\xe2\x12\x1f\x79\x69\x1f\x79\xd9\xee\x91\x40\x86\x89\x99\xce\xab\x8b\xd7\x57\xab\x9b\x43\x8b\x3e\x9b\xf1\xc0\xb4\xff\xf1\xfc\xd5\xba\x25\xc4\xc7\x4c\xc3\x3e\xcb\x32\xd8\xf1\x98\xbd\x7f\x7f\xf1\x9a\x82\xcc\x51\xab\xcd\xe6\x73\xc4\x54\xf1\x97\x07\x43\x6c\x27\xe2\x23\xdb\xff\x46\x1e\xfc\xe7\xcf\x47\xfd\xaf\x79\x7f\xfc\xcb\x7f\xfd\xf9\xd7\xfe\x37\xee\xc3\xf3\x76\x1f\x8e\x4f\x7e\xfd\x03\x8d\xe0\xd4\x0d\xe1\x74\x87\x63\x38\x75\x9f\x4e\xdb\x0c\xe2\xb9\x1b\xc4\xf3\x1d\x0e\xe2\x79\x71\x10\x7f\xfe\x9a\x8f\x7e\xa9\x1f\x97\x37\x94\x17\x6e\x28\x2f\x76\x38\x94\x17\x9b\x0e\x45\xea\x51\x8c\xc7\xf6\xfa\xaf\x6f\x8f\x8f\x98\x4a\xf0\xaf\x53\x9b\xbe\x44\xd7\x1f\xd0\x8a\x86\x7b\x47\xa7\x27\xc7\x7f\x7a\x71\x7c\xf4\xfc\xd4\x26\x3e\x7d\xfd\xa7\x3f\xf7\xdd\xb7\xc7\xc3\x3d\xea\xf3\xf8\xc8\xef\x75\x7d\x5f\xf4\xd4\x69\xfe\x54\xc3\x08\x6a\xde\x17\x24\x22\x94\x69\xc0\x13\x20\x6c\xf8\x89\x99\x8f\xb6\x87\xda\x95\xfc\xcf\xfd\x6f\xce\x60\xe7\x60\x2d\xf6\xbf\x39\xc3\xbf\x4f\x7f\x3d\xf8\xe6\xd3\x8b\x9f\x8f\xfb\x2f\x7e\xa1\x1f\x9f\xff\xfa\xe9\xe5\xfe\x37\x67\x47\xc7\xc7\x9f\x60\x79\xf1\xfb\x03\xf7\xe8\xa7\xd3\x9f\x9f\xff\xc9\x36\x3e\xfd\xf5\xd3\xa9\x69\xfc\xf3\x51\xff\xc5\x2f\x9f\x7e\x7e\xf9\xe7\x62\xeb\xe3\x5f\x3f\xed\x7f\x73\x76\x72\x7c\x7a\xfc\xe9\xf8\xcf\x47\x47\x9f\x4e\x5f\x0c\x87\xa1\x79\xa7\xf9\xcf\xf1\xf1\xaf\x07\x7f\xa0\xa4\xb5\x78\x09\x29\x72\xa1\x9c\x98\xb9\xe4\x14\x79\x26\x3f\x62\xc0\x72\x9f\x69\x6d\x76\x8e\xbd\x1f\x5c\x0f\x98\x56\x81\xe4\x91\x21\x68\x19\x14\x2d\xa3\x89\xe7\xac\xc1\x9b\x37\xbe\xf1\xe7\x3e\xfb\xe5\x1b\xf3\xe7\x49\xfe\xe7\x73\x38\x12\x53\xf1\x31\x50\x91\x4a\x60\x2b\xa6\xe2\x23\x0f\x45\x20\x67\x18\x37\xad\x12\x16\xa8\x50\xd8\xcd\xf8\xea\x5b\xf8\xdf\x59\xfd\x8b\xbe\xfa\x66\x9f\x8e\xdb\x79\xff\x5b\xb3\xb2\x9f\xfc\x8f\x2f\xcd\x64\xfb\x2c\x99\x8c\xf2\xb7\x5d\x7d\xf7\xd7\xca\x5b\x92\xc9\xc8\xbe\x2e\x99\x8c\xf6\x4f\x5e\xbc\xe8\xd1\xff\xbf\x86\xdd\x1f\x2d\x53\x71\xc6\x46\x5c\x8b\x97\xcf\x5d\x01\xfb\x91\x8c\x79\xb2\x64\x00\xe8\xd0\x67\xb6\xec\xf0\x19\xac\xab\xc5\x82\x73\x8c\xcd\xb0\x49\xb3\x92\x21\xe6\xb4\xf8\xa7\xed\xe4\xe8\xe8\x65\xff\xe8\xb8\x7f\x74\x32\xdc\x2b\xb1\x91\x71\x16\x45\x7d\x78\x44\xc6\x86\xa7\x9c\x9e\x9e\x7e\x6d\x3a\xa3\x82\x50\xd0\xa1\x2b\x0e\x55\xec\xf4\x84\xc5\x1a\xfb\xab\xd0\xee\x54\xce\x04\x12\xef\xd7\xf6\x61\x58\x0d\x04\x88\x88\x04\x1e\x8f\xeb\x80\x47\x5e\xf7\x24\x31\xe0\x4c\x4c\x0f\x6e\x36\x00\x29\x5e\x9e\xd2\xf1\xf3\xfe\xf1\x49\xff\xf8\xc5\xcd\xf1\xd7\x67\xa7\x47\x67\x27\x47\x83\xa3\xa3\xa3\xff\xa8\x4c\xd0\x74\xd0\x87\x0e\xf2\x09\x6e\x11\x9f\x20\x2b\xb1\xa1\x5b\x43\xec\x3e\x8a\xb6\x72\xde\x2c\x80\xcf\xf8\xc7\x5a\xc3\x55\xa1\x0a\xe0\xcb\xe7\x5b\x54\x01\x9c\xf1\x8f\x3f\x88\x78\x52\x8d\xdd\xd8\x49\xd7\xcd\xf6\xac\x9d\x74\x5f\x27\xc1\xe7\x1d\x87\x2a\x1b\x95\xfd\x92\xb6\x67\x24\x53\x0d\x1d\xcb\xf8\xa1\x16\x5b\xc6\x0f\xb6\xd8\x32\x7e\xd0\xc5\xae\x57\x97\x76\xb0\xd8\x59\x94\xca\x79\x24\xaa\x16\xb9\xfb\xf7\x1d\xab\x47\x33\x8c\xd5\x5a\x56\x0a\x63\xc9\xa2\x88\x8f\xaa\x3a\x74\x2b\x85\x53\xc5\x35\xeb\xf3\x1b\xb5\x58\xce\x79\x6a\xf4\xa4\x6d\x48\x33\x3d\xda\x7c\xce\x9f\x8c\xe9\xe9\x7e\xd6\xa6\x06\xc7\xc9\x97\x33\x41\x2f\xea\xac\xcd\x91\xde\x21\x90\x68\x2a\xd3\xe6\x3b\xb8\x69\xa1\x8b\x56\x2e\x52\xa8\x19\x52\xcb\x4f\x5a\x5d\xfd\x02\x1c\x96\x98\x8d\x44\x18\x8a\xd0\xc5\x03\xaf\x31\xf4\xac\x7e\xd8\x8b\x4c\xe2\xa9\x05\xe6\xca\x6c\xc1\x5f\xdb\x9c\x7d\xef\xba\x60\x49\x16\x83\x98\xf8\x8e\x42\xc3\x40\x24\xbc\x59\xce\xc5\x8f\x82\x00\xce\xf2\x72\x57\x68\x22\x82\x82\x1f\xd6\xd4\x6e\x23\x43\x10\x01\xda\x56\x2b\x4d\x15\x1b\x67\x09\x04\x76\x24\xc2\x2c\x65\x90\x52\xf8\x30\x0d\xc0\x3e\x86\x78\x6a\xa5\x0a\x9a\x05\xf4\x34\x67\x7a\x62\x3c\x4b\xd5\x8c\xa7\x16\xac\xa3\x0d\xa8\x58\x69\x4c\x23\x01\xb9\x65\x3d\x36\xca\xd2\xbc\x88\xea\x94\x2f\x04\xfd\x2a\xfd\x60\x13\xf3\xb0\x91\xcb\x97\x1e\xda\xd9\x7e\x36\x37\x4d\xcb\xc3\xce\x21\xe1\x9a\x00\x02\xdb\x1f\x08\x19\xa7\x7d\x95\xf4\xe9\x00\x6e\x70\x18\x0a\x0f\x7a\xc9\xaa\x74\x14\x1c\xae\xb6\xd4\x4c\x48\xd8\x1b\xaf\xb8\xb6\x4a\x5c\x50\x3d\x45\xc1\x22\x02\x3a\xae\x17\x9c\x9d\x79\xba\x64\xae\x7a\x34\x2d\x2a\xa4\x54\x9b\xef\xb8\x66\xc1\x54\x46\x21\x96\xf8\x58\xbe\x1b\x03\x7c\xba\x48\x6c\xb5\xec\xb1\xa7\xd5\x79\x85\x77\xf3\x2f\x89\x11\x68\xb0\x30\x1e\x1f\x60\x27\x67\xc3\x98\x31\xd6\x87\x57\x9c\xd9\xb1\x16\xbe\xc3\x21\x0f\xe3\x93\x03\x06\xfe\x4c\xfb\x84\xf7\x78\x7d\x07\xd5\x2e\xe0\xab\xc1\x60\xc0\xfe\x29\x12\x65\x16\x64\xa6\x92\x06\x09\xa5\xfd\x6e\x46\x52\xa7\xfd\x19\x9f\xf7\x3f\x88\xe5\xba\xc4\xe3\xe6\x07\x19\x54\x90\x80\x98\x31\x1e\x53\x94\x33\x5c\x54\xb3\x86\xd5\xc7\x60\x47\x6e\x67\x7c\x7e\x6b\x54\x2f\xca\x87\xb2\xfa\x34\xf4\x07\x59\x43\xdc\x16\x26\x0d\xc5\x47\xbb\x21\x33\x3e\x1f\x98\x1d\x00\x04\xfc\x94\x4f\xb0\x14\x26\x94\xbc\xb5\xc9\x46\x2a\x26\x78\x01\x38\x58\x78\x7b\xa6\x46\x19\xac\x1f\xc8\x70\x2f\xc7\xf4\xb3\xe9\x20\xc3\xbd\x19\x9f\x0f\xf7\x06\xec\x3c\xd2\xaa\x97\xd3\x29\xbf\x00\xb3\x03\x55\xcf\x91\xdf\xbd\xf4\x0f\xa3\xb3\x26\xb0\x81\x21\x25\x81\xd8\x9c\x48\x38\x85\x98\xf9\x91\x25\x82\xed\xc7\x8a\xc5\x42\x5b\x57\xa4\x0b\xf9\x38\xa0\x69\x0a\x96\xb3\x66\xef\xed\xf0\x2a\xba\x26\x3e\x62\xa2\x4a\x70\xc6\x25\x6f\x68\xcf\xcc\x0a\xd0\x08\xcc\x62\x28\x5d\xe8\xd5\x90\x31\xb2\x2e\x3b\xc8\x37\xc4\xc4\x32\x2c\xe4\xd1\x81\xb7\xeb\xb7\x69\xe3\xb3\x89\xd7\xbe\x7a\x2e\x3d\xda\x6f\x73\x5d\x99\x84\x78\xc1\xb9\x8a\xd4\x64\x49\xd5\x15\xf2\x33\x01\x4b\x5d\x7f\xc2\x6c\x65\x1f\x58\xf2\x53\x36\x57\x5a\x83\xdd\x02\x0f\x8b\x25\x15\xb7\x3c\x55\x33\x19\xdc\x9e\xe5\x38\x5c\x40\xb9\xd0\x09\xcc\x75\x9e\x3d\x2e\xe2\x54\xa6\xcb\x1e\x5a\x2f\xec\x29\x1a\x10\x3d\x38\x87\x5e\xe8\xcd\x16\x2a\xd3\x3c\x91\x88\x68\xc9\x12\x31\x8f\x78\x60\xd3\x34\x5d\x21\x97\xe2\x5c\xa8\x27\x42\x51\xb1\x73\xe1\xf1\xd2\x55\xc9\x82\xd1\xed\xe3\xf1\xec\xd1\x00\x7a\x86\xea\x98\xf3\x78\x72\xc0\x6e\xb5\x48\x6f\x2d\xdd\xba\x16\x69\x0e\x9a\x45\xf7\xcd\x65\x0e\xc2\x9a\x58\x55\x0b\x8f\x52\x4e\x13\x34\x9f\x09\x1b\xf5\xf4\x86\x07\x53\xea\x10\x19\x40\xf9\x1a\xf5\xf2\xa2\x4c\xd8\x43\x61\xb3\x0d\x0d\x42\x82\x42\xcb\x0c\xbc\xc2\x4e\xd5\xa3\x45\x4d\x74\x88\x1e\x1b\x0c\xe3\xd3\x03\xa4\x4a\x76\x7e\x18\x8f\x45\x5b\x9d\x90\x89\x6e\xc6\xe7\x1a\x33\x25\x50\x82\x91\x09\x13\x91\x00\x48\x7c\x7b\xf5\x62\x15\xf7\x91\x6a\x7d\x10\x4b\xea\xcb\xe2\xda\x60\x0a\x25\xa2\xd8\xce\x06\xec\x1d\x22\x92\x79\xf0\xab\x2c\x9b\x43\xb8\x65\x42\x69\xb4\xe6\x85\x86\xd2\xd9\xbd\xab\x3b\x8d\x14\xb1\x09\xd3\x74\x83\x31\x04\x07\x76\x15\x65\x99\x61\xec\x43\xb4\xe2\xa4\xf1\xba\x9b\x25\xda\xa6\x52\x45\xed\x36\x6c\x72\x4f\xdd\xd6\x15\xae\x29\xed\xf4\x0e\xee\x29\x5c\x05\x2b\x12\x50\xb7\x85\x2b\x7b\xd2\x78\x65\x27\x09\x8f\xb3\x88\x27\xa5\xb3\x00\x9b\x9f\xa3\x16\xe1\xe7\xfd\x0f\x62\xd9\xc7\xa3\x3b\xe7\x32\xd1\x07\xf0\x12\xc1\x83\xa9\x45\xa5\x05\x37\x66\x6c\x23\x18\x52\xea\x12\xd2\xbe\xa1\x19\xc6\x18\xef\x03\x20\x4b\x60\x84\x19\xf3\xe5\xc8\xbc\x2e\x96\xf3\x2c\xe2\x94\xd5\xa1\xc5\x9c\x27\x00\x00\x19\xa4\x2a\xd1\x79\x21\x18\xea\x90\xf2\x85\x81\xec\x8f\xc4\x94\x2f\xa4\xca\x12\x47\xd2\xcd\x58\xe9\x12\xef\x94\x20\xc1\x1a\xb4\xa4\x47\xf7\x3c\x64\x0d\x62\xf4\x26\x67\xae\x49\x12\xd7\xa9\x9a\xe7\x58\x96\xa8\xa0\xb2\x50\x04\x2a\x04\x69\x35\x15\x73\xdc\x2f\x0b\x79\xd0\x0e\xda\xb9\x82\x37\x40\x5b\xc6\xc7\x63\x00\x02\xa2\x5e\x12\x11\x64\x89\x96\x0b\x11\x2d\x51\xf8\xd7\x77\x32\x0d\xa6\x42\x03\x6e\xb2\xb9\x0a\x58\xbb\xc6\xbd\x3d\xdf\x5d\x39\x06\xf1\x41\x84\x3e\x47\x37\x3b\x5e\xa3\xb6\x17\x51\x4b\xec\x18\x0b\x03\x83\xd3\xe7\xc4\x0a\x00\x72\xf6\xe3\xa8\x06\x58\xbe\x11\x54\x0f\x95\x8c\x64\x18\x8a\xa6\x12\x8e\x55\x19\xf4\x5f\x4a\xbb\xfb\xc0\xe1\xb8\x35\x86\xee\xd6\xd1\xa9\xf4\x40\xb1\x64\x3b\x5e\x71\x4c\x06\x2c\x2c\x13\xc6\xb1\xfa\xc1\xad\xe8\x9e\x47\xe6\xa3\xc6\xe5\x9f\x07\xec\x47\x2e\x0d\xa1\x82\x54\x3e\xc0\xa6\xa2\x84\x5f\x82\xac\xca\x12\x48\xbf\x7a\xc8\x48\x5d\x8a\xbc\xdc\x60\x45\x4c\x7b\x7f\x41\xea\xe6\xcc\x68\xd7\x2d\x6f\xaf\xa0\x82\xdb\xd4\x31\xdb\x8e\x0e\xed\xf2\x61\xa7\xea\x07\x65\x6d\x30\x63\xef\xb1\xe2\x49\xa8\x9d\x3a\x29\xb6\xb0\xe9\x3b\x9d\xce\xb5\x48\x16\x32\x10\x57\x16\x88\x69\xc5\x14\xca\x4d\xd9\x54\x01\xff\x71\x31\xfd\x60\x49\xa0\x56\x83\x48\x4c\x78\xb0\x2c\x97\x8d\x6b\x0c\xa2\xde\x10\xce\xc7\xc7\x83\xd5\xf4\x46\x76\x65\xcd\x70\x1b\x33\x02\x87\x1a\xde\x62\x08\xd0\xce\x1f\x07\x7e\xb1\xbb\xc1\xcc\xd7\x67\x1e\x63\xbe\x25\x4a\x34\x16\x41\xf7\xfd\xd5\x0f\x98\x87\xc9\x53\xe2\x1c\x66\x3c\x77\x62\x34\x55\xea\x83\xe3\xa1\x00\x04\x10\x6c\xc7\x2e\x8d\xf2\xb8\x6e\x60\x50\x9c\xa9\x38\x30\x5a\x12\x06\xbf\xb5\x1c\x1c\xbb\x35\xad\x6f\x3d\xac\x0f\x1b\xac\x04\xbd\x58\x44\xd8\xe3\xfe\xcb\x17\x2f\x4e\x5f\xf4\xb0\xd6\xae\x61\x72\x07\x45\xba\xf0\xfc\xf9\x69\xa1\x44\x40\xa9\x42\x40\x71\x0d\x0a\x6e\xa5\xd3\x93\xb6\x6e\xa5\x0a\xeb\x69\x06\x1b\xc1\x33\x56\x46\xb1\xa2\x8f\x8f\x91\x6f\xfc\x6f\xb8\xe2\xaf\xa0\xa2\xd6\x2b\x80\x66\x5f\x71\xe3\x6b\x5a\xe7\x48\x12\x68\x3e\xc1\x35\x23\x8c\xc2\x19\x66\xde\xde\xfc\x70\x6d\x9a\xc5\x14\x14\xe6\x14\x33\xda\xee\x16\x29\x15\x01\xff\x6b\x16\x87\x55\xcb\x76\xa5\x04\x22\x36\xc3\x38\xeb\xcb\x37\x3f\xba\xb0\x85\x57\xe7\x6c\x84\x3f\xe1\x69\xb3\x27\xac\x02\x77\xee\x8d\xeb\x99\xb6\xa2\x59\x60\xc6\x04\x39\x22\x88\xa3\x9e\xc5\x1e\x1c\x9b\x5e\xea\x54\xcc\x0c\xc7\xd1\x29\x4b\x94\x32\xda\x10\x0a\x3b\x6e\x17\x1c\x46\x74\xe3\x01\x1b\x2d\xd3\x06\xf3\xda\x4a\x84\x02\xbc\x49\x8f\xe1\x04\xac\xf0\x85\x95\xc9\x9d\x74\xc3\x65\x85\x1b\x78\x24\x31\x37\x6a\xd9\x73\xc0\xde\xa0\x94\x63\x1b\x18\x61\x30\x89\x9c\x8a\x9e\x23\x70\x1b\xc5\x89\x20\xb2\x2d\xc9\x90\x60\xbd\x07\x79\xd5\x9c\x2f\x8b\x48\x80\x75\x1d\x08\x7d\x79\xa9\x32\x4b\x40\x00\x20\x9d\xde\x73\xdb\x10\xe6\x5e\x93\xfd\x55\x9a\xa7\x19\xdd\x44\x2e\x28\x7b\x35\xa2\x0a\x74\x96\xf4\xd3\xd0\x7a\x88\xa3\xc2\xe3\xd0\xd0\x1b\x43\x95\xa1\xd2\xce\xfe\x2d\xc8\xc2\xe2\xec\xf0\x70\xaa\x74\x7a\x66\xe8\xd8\xa1\xa1\xd7\xb7\x07\x03\xf6\xc6\xc3\xb0\x52\x63\x76\x9b\x25\x11\x42\xca\xd8\x21\x37\x2c\x8a\x51\xe1\x6f\x4d\x77\x8e\x52\x1a\x4d\x01\x76\x00\x14\x71\xb7\xb4\x76\xad\x8a\xeb\xf4\x17\x2a\x3b\xe9\xad\x8d\x05\x2b\x25\x04\x79\x30\x12\x40\x00\xe8\x4c\x4e\xa6\x04\xfe\xa9\x55\x64\x71\xc4\x5c\xfe\xde\xeb\xb7\xd7\x30\x6f\x35\xf3\xee\x81\xc6\xd2\xa2\x3d\xac\xce\x97\x1f\xbe\x5b\x23\xe3\xe2\x48\xa1\x2f\x26\xe3\x3e\x0d\x09\x3a\xe2\x16\x9e\x35\x27\xfe\x11\x5f\x0a\x2c\x6b\x2c\x55\x04\xcb\x7e\x30\xb0\x53\x37\x2a\x37\x8f\x34\x78\x31\x20\x6e\xd4\x06\x75\xc2\x1a\x5d\x46\x82\x6b\x50\xa1\x48\xbe\xc6\xcc\x88\x5b\xb3\x7d\x11\x76\x60\x56\xfa\xf8\xe4\x4f\x83\xa3\xc1\xd1\xe0\xf8\x16\x95\x54\xea\xdb\x9c\x33\xa9\x3f\x2c\x59\x16\x47\x42\x6b\x38\x53\x00\x30\x30\x31\x1a\x2d\x0b\x00\x78\x58\x99\xf5\x2d\x9c\x6d\x86\x19\x8f\xb0\x74\x56\x91\x33\x6d\x8c\xe0\xee\xa8\x04\x7e\x8d\x0b\x1b\x0b\x24\x4c\x40\x42\xa1\xbc\x27\x5e\x1f\xff\xba\x5c\x67\xc1\x14\xeb\x86\x9a\x9f\xad\xd1\x28\x5a\x92\x03\x27\x56\x71\xdf\x9c\x2a\x3e\x8a\x04\x86\x21\xf7\xe0\x38\x08\xae\xa1\x09\xc0\xa4\x64\x73\xb3\x4d\x9c\xc5\xe2\xce\x9e\x02\x77\x92\xf0\x80\xba\xa3\x36\xdc\x03\xd4\x9f\xe1\xde\x5f\xe0\x88\x98\x93\x4c\x3f\x4d\x24\x51\x75\x6a\x72\x76\x78\x38\xdc\x83\x6e\xce\x99\x15\x4d\x2c\xfb\x27\xc0\x05\x57\x8c\xc2\x1a\x08\x79\x6c\xb1\x74\xd0\x55\x42\xa6\x12\x18\xdc\xfb\xab\x1f\x06\xec\xdf\x55\x06\x6d\xed\x11\x85\x8e\x53\x05\x31\x68\xa8\x00\x8d\x64\x9a\xf0\xc4\x75\x43\xe4\xc6\x5d\x43\xcc\x24\x85\x48\xff\x1e\xe3\x76\xb6\xd6\x48\x26\x69\xe2\xe7\x69\x2a\x66\x73\x5b\xf8\xc8\xbc\x8c\x8a\xfb\x81\xd4\xa0\x65\xc0\x78\x96\x4e\x11\x31\x72\xb8\x67\x7e\x39\xb3\x51\x70\xff\x6b\xb8\x87\x58\x29\x69\x8e\xb4\xf2\x6d\xc2\x27\x68\x22\xdb\x1f\xee\x7d\x35\x18\x0c\x86\x7b\x68\xb2\xf9\x47\x26\x92\x25\x9b\xf3\x84\xcf\x04\x04\x20\xee\x0f\xf7\xbe\xb1\xbf\x93\x8a\x4f\xbd\xf4\x48\xfd\xdb\x1a\x05\xa5\x9d\xfc\x50\xa9\x52\x3d\x70\x39\xf6\xff\xff\x8c\x83\x71\x66\x85\x6c\x60\x9b\x10\x14\xa1\xfc\x28\xc2\x3e\x66\xd7\xd7\xd4\xbd\x27\x81\x0d\x5c\xa5\xf3\x44\x2d\x64\x68\x4b\xb2\xc5\x12\xcf\x44\xa2\xa7\x88\x7a\x90\xc5\xf9\x07\x73\x1a\x20\x87\xd5\x2c\xe0\xbf\x9f\xff\xf8\x03\xd0\x56\x6b\x7d\x00\x6d\x03\xd6\x62\x1f\x97\xf8\x5c\x5f\xc4\xe9\xcb\xe7\xe6\x13\xa0\x51\xa9\x44\xe7\x67\xbb\xa0\x04\xbb\x8c\x01\xb0\xc9\x21\x36\xe7\x3f\x68\x42\x54\x28\x80\xfe\x77\x76\xf6\xaf\xb6\x9c\xa8\x9c\xc4\x22\x7c\x0b\x13\xc1\x36\xf4\x3d\x14\x0b\xa0\x6f\x62\xc6\xf6\xdf\x3a\x4a\x53\x6d\x60\x4f\x3f\x78\x14\x7b\x79\x3d\xf5\xe1\xde\x70\x8f\x41\xb0\xb2\x8c\xe9\x31\x0a\x16\xbd\xbe\xa0\x82\x6c\x07\x76\xa0\x10\xca\x5a\x1c\x25\x0d\xf4\x88\x7d\x62\xc7\xec\x13\x38\xf2\x3e\xb1\xaf\x99\xd7\x5e\x97\x1f\xc8\x27\xe6\xf7\xf7\xa9\xfa\x5d\x4d\x27\x54\x34\xce\x5b\x8a\xc6\x7e\x75\x5d\xc7\xba\x50\x63\x6e\x7d\x3b\x33\xa5\xc6\x61\x98\x7d\xa9\xac\x06\x0e\x63\xef\xff\x37\xdc\x33\x3d\xee\xf5\x87\x7b\x8d\xbb\x58\x1c\x74\x61\x52\x9f\x2a\xaf\xa8\x69\x54\xb3\xc9\x35\x8b\x81\x71\xb4\x76\x33\xf3\x69\xe2\x26\xbf\xf9\x38\x57\xb1\x88\x2b\xbb\x50\x3c\x02\xf5\x5d\x79\xaf\xfa\x5e\xb2\x4f\xec\x47\xf3\xcf\x77\xe6\x9f\x1b\xf3\xcf\xa5\xf9\xe7\x8d\x84\x93\x89\x29\x1d\x9c\xf4\xb2\x6b\x14\x64\xa1\xce\x99\x4c\xf5\x5f\xd8\xb5\x10\x88\xf4\x76\x76\x78\x38\x9f\x2e\xb5\x0c\xf4\x20\x96\x3a\x1d\x4c\xd4\xe2\x30\xc8\xb2\xc3\xf7\xa6\xdd\x21\xbe\x7f\x30\x4d\x67\x51\x7e\x26\x4b\x23\xcd\xc7\x34\x83\x0d\x80\x7d\xf8\x60\x46\x67\x06\x67\xc6\x66\x86\x66\x46\x56\xba\x32\xc7\x47\x27\xcf\xd9\xbf\xb2\xe3\xef\x25\xd8\x2a\x8f\x8f\x8e\x8e\xcc\xc7\x0f\x7f\x61\x17\x2c\x94\x61\xfc\x2c\x65\xc1\x54\x29\xe2\x09\x01\x9f\xcb\xd4\x5d\xeb\x41\x79\x38\xa5\x65\xc5\x33\x21\x56\x9d\x05\x33\xd6\x37\x2b\x1a\x18\x72\xf1\xd6\x70\xe9\x34\x75\x0c\x9c\xc4\xbf\x74\x9a\x08\x01\xe0\x46\x31\x39\x3b\x67\xda\x22\x30\x1b\x46\xcc\x2c\x81\x01\x1a\xe0\x88\x64\x5e\x38\x05\x24\x0a\x0b\x07\x72\xf2\x9f\x2f\x4f\xfb\xc7\x86\x1a\xcc\xf8\x24\x96\x69\x16\x0a\xd3\x49\x02\x0f\x4b\xeb\x01\x53\xe0\x72\xe5\x31\x3b\x65\x36\xb6\x1c\x2c\xe3\x7a\xc0\x70\xd4\x9a\x45\x3c\xa1\x18\x07\x68\x3d\x4f\x44\x20\xb5\xc8\x55\x6e\x3e\x9f\xa3\x6b\x37\x51\x19\x60\x2e\x64\xf3\x01\xdb\x7f\x33\x98\x0c\xce\xd8\xd1\xe0\x78\x46\x20\x6b\xee\x47\x43\x75\x8f\x67\x83\x03\x34\xe9\x5a\x72\x66\x01\x1b\x6c\x6d\xc9\x0c\xfc\xcf\x72\xcc\xee\x9c\xff\xd8\x1b\x89\x9e\x71\x40\xbb\xa7\x15\x91\x02\xe9\x34\x00\xbb\x70\xe6\x73\x16\x0a\xeb\x06\x3a\xc9\x1d\x24\x81\x2d\x83\x93\x88\x99\x80\xa5\x4b\x6d\x68\x8e\x1a\xdb\xe2\x2d\xb0\x46\x21\x4a\x1f\x5e\x85\x75\x72\x0f\xa2\x67\x68\xc2\xa1\x5c\x8f\x88\x4d\x6b\xa9\x3d\x68\x44\x18\xcf\x5f\xc5\x58\x25\x39\xeb\x80\x57\xbb\xc1\xd9\x05\x9c\x67\x80\x70\x3f\xdc\x0b\x78\xac\x62\xc0\x2f\x35\x5b\x3f\xdc\x23\xa3\xf7\x4c\xf0\x98\xc4\x59\x7b\x1c\x0f\x69\x88\xb6\x0b\x1e\xfe\x3d\x03\x2b\x7b\x36\x37\xab\x13\xaa\xbb\x98\xed\x53\xc9\x9d\x1c\x19\x0e\xf9\x61\x90\x80\x34\x0b\xb8\xe7\xf4\xb7\x8c\xd9\x8f\x66\x50\x5a\xf3\x03\xac\x59\x63\xde\x06\xbe\x25\x3e\x60\x6f\x15\xed\x39\x01\xb0\x44\x4a\x83\x8f\x68\x04\x3f\x8d\x13\x1e\x10\x39\x40\xd2\x9a\x3b\x5b\x30\x7a\xc5\x34\x25\x34\x6c\x77\xb4\xf7\xcd\x16\xc2\x14\x0e\x80\xfb\xd3\x21\x83\x30\x7c\x72\x79\x0d\x88\xeb\xca\x49\xec\x7a\x54\x14\x0f\x43\x92\x34\x98\xcf\xf0\xe4\x1b\x21\x4a\x4c\x78\x2a\x17\x02\x16\xfe\x0d\x4a\x6d\x1a\xe6\x70\x3c\x78\xe1\xba\xf0\xb0\x2b\xb9\x66\xc3\xbd\xe3\x17\x47\x47\xb3\xe1\x1e\x35\xfb\x4e\xae\x68\x78\xfa\xf2\x47\x69\x5a\x9a\xfb\x6b\x89\x8d\x19\xc2\x3f\x0a\x1b\xfa\xf6\xcd\x4f\x6f\xae\x20\x1a\x0a\x49\x65\x14\x2d\xcb\xf0\x67\x1c\x21\x32\x40\x70\x05\x79\xc7\xca\x36\x37\x53\x4c\x42\x04\x21\x74\xaa\x22\x41\xbf\x5b\x00\x6b\xf1\x51\x24\xe6\xee\x0d\x70\x10\x71\x3f\x3f\x31\x14\x00\x82\xb5\x9d\x52\xf3\x2f\x1c\x7c\x58\x5a\x15\x4f\x28\x5a\x65\x09\x82\xe2\x9d\x88\xf0\x88\x19\xb2\x62\x68\x64\x5e\xd9\xb2\x2f\x6c\xc8\x51\x4c\xde\xe3\xe2\xa1\x1c\xb0\xfd\x6b\x65\x6b\x72\x9a\xfb\x50\xfc\xb9\x87\xa7\xcf\xd0\xd8\x50\x8e\xc7\x40\x4e\x31\x18\x26\xcf\xb0\x34\xeb\x02\x37\xdd\xea\x2a\x12\x1b\xcb\x80\xb0\xfb\xe8\x9a\x69\xbb\xb9\x39\x48\xe1\x5d\x22\x61\xd5\x40\x47\x84\x0a\x56\xe6\xb6\x1a\x7d\x96\x47\x6c\xca\xe3\x10\x44\x3e\xc8\x57\x21\x32\x32\x55\xf3\x3c\x86\x8b\xd3\x4c\x03\x6e\x5e\x21\xcd\x01\x31\x82\xb6\x4a\xd0\xe7\x6c\xf4\x3f\x94\xde\x41\x16\xa5\xb5\x77\xcd\xca\x08\x32\x75\xc2\x74\x0b\x11\x59\x0f\x66\x22\xe5\x83\xc5\xf1\xe0\xfc\xf2\xe2\xbb\x52\x75\xe0\xb2\x88\x6c\x9b\x14\x6d\x66\x98\x49\x09\x94\xc8\xc6\xe3\xb8\xea\x1b\xae\x4e\x87\xb9\xb3\x63\x91\x78\x35\x45\x50\x8e\x06\x48\xf9\x36\xe5\x1f\x5c\x78\xde\x1a\x93\xc6\xf9\xe5\xc5\x4f\xa5\x52\xc9\x1e\x5c\xbe\x08\x2d\x38\x91\x3d\xc4\x35\xc2\x7d\xec\x22\x1a\xaf\x49\xeb\x27\x5b\x04\xd6\x5c\x36\x0a\x41\xa0\x26\x31\x5c\x46\x0b\xaf\x4e\xba\x5a\xc4\x53\x01\x15\x42\xc8\x8a\x40\xf1\x44\xd6\x8f\x9e\x08\x70\xab\x67\xb1\xd7\x03\x5e\x95\x5a\x70\xda\x89\x4c\xc9\xdf\x70\x18\xa8\xd9\xcc\x48\x35\xcb\x43\x28\xae\x22\x47\x99\x39\x28\x87\xa1\x58\x88\xe8\x50\xcb\x49\x9f\x27\xc1\x54\xa6\x02\xe2\xa4\x6c\xc9\x89\x85\x51\x0c\x55\xac\x07\xb3\xf0\xab\x06\xec\xed\x36\x56\x3a\x28\x77\xbf\x7a\xd5\xbf\x97\x31\x61\xb8\x93\xee\x8a\xee\x3f\xb7\xb8\x36\x5e\x0d\x60\xda\x3d\xb4\xb8\x3c\xd4\x20\x77\x19\xe5\xcb\x0e\xa2\x41\x3c\xb6\x65\x09\x9c\x72\xe1\x70\xcf\xd0\xf4\x03\x1a\x97\xce\x46\x33\x43\xee\x3d\x48\xb3\x01\x7b\x85\x56\x99\x91\xc8\x63\x7c\x2e\x62\xf6\x8a\xcf\x44\xf4\x8a\x6b\xf1\xe0\x8b\x0e\xe8\x44\x7d\xb3\x7e\x5b\x2c\xfb\x3d\x3c\x48\xa5\x5b\xd5\xfa\x95\xee\x92\x36\xdc\xb5\x75\x86\xd9\x15\xe4\x05\x08\x07\x75\xfb\xad\x4a\x5e\xdb\x5a\x55\x2b\xed\xb0\xe5\xf1\x94\x8b\x5f\xe4\x44\x85\x12\x38\xf3\x70\x04\x5b\x25\x70\x9e\xa8\x11\x1f\x45\x4b\xfb\xa8\x85\xf1\xb7\x35\xec\x56\x94\x2e\x48\x28\xc7\xfc\xaf\x4b\x72\x18\x5c\xbc\xbe\x5a\x5b\x6f\x06\x22\x90\xd4\xd8\x1e\x4b\xc8\xcf\xb6\x70\xa5\x89\x4b\xce\x4e\x89\xb5\x52\x69\x62\x3c\xdf\xb8\x6b\x36\x4c\xc5\x3c\x35\x15\xd1\x9c\x7a\x32\x27\x9b\xdb\x32\x8c\x89\xb6\x1c\x65\x06\xb9\xec\x22\xbd\x53\xc9\x87\xbe\x30\x6c\x0b\x5e\x7b\xc7\x97\xb9\xe8\xc2\x5e\x51\x0f\x01\x8f\x9d\xd4\xc8\xe7\x86\xd4\x26\x12\x32\x1b\x8b\x83\xe3\x10\xec\x8b\x98\x2e\x30\x7c\x12\x2d\x96\x58\x82\x12\xee\x10\xa8\xf6\x6a\x9c\xc7\xac\xc1\x4f\x42\xf7\xdc\x70\x3d\x43\x35\x1a\x97\xe3\x89\xb0\x55\x2c\xcd\x94\x4d\xd7\x28\x87\xd1\xeb\x2d\x6c\x24\x44\x25\x61\xdc\x25\xac\x38\x2d\x16\x84\x3d\xc7\x1f\xbc\x68\x78\x5a\x62\x33\x2b\x1a\xd8\xb7\xb9\x85\xec\x8c\x22\x60\xc1\x44\x56\xc2\x55\x76\xe4\xf9\xe2\x12\x67\x68\x5e\xd9\xb3\x01\xe3\xd4\x2d\x2c\xb7\x85\x05\xc5\x11\xa2\xa1\xb5\xd8\x81\xa5\x56\x2c\x52\xea\x83\x66\x3c\x65\xff\xa7\xff\xad\x4a\xee\x78\x12\x8a\xd0\xfc\xc5\xa6\x82\x87\xa8\x26\xfc\x9f\xfe\x95\xe0\x51\xff\x62\xee\x7d\x47\xf4\x6a\x70\x25\x66\x2a\x05\x54\x03\x2a\x68\xcf\x53\xac\x6e\x79\x60\x0e\xc2\x44\x14\xa6\x7c\x71\xb9\x9b\x12\x38\x2b\xee\xeb\x75\xd3\x0d\xb8\x57\xb8\xea\xa6\xe5\x58\x6d\x19\xbc\xbc\x7c\xa7\x13\x31\x6c\x15\xae\x3a\x5a\xb7\xfb\xe5\x68\x24\x5f\x1b\xaf\xc6\x06\xde\xd5\xbd\xba\x95\x5b\xe7\x5c\x75\xdf\x17\x22\xb9\x60\x95\x6c\xf9\x8a\x3e\x71\xf4\xfc\x75\x85\xcd\x98\x90\x18\xb8\x57\x5c\x54\x7a\xc8\x49\x81\xc5\x5f\xf3\x4a\xc8\x7b\x8b\xe3\xea\x74\x7f\xd9\x5e\x20\xfd\x41\xea\xb4\x85\x50\xfa\x03\x45\xe6\xe5\x80\x9c\xf6\x97\x1e\xca\xd3\x91\xba\x73\xc4\x29\x55\xae\x5a\xa2\xe3\x1b\x3c\x65\x50\xec\xa8\x93\x46\x9f\xb4\x34\x0a\xa7\x73\x1d\x01\xc1\x46\xf5\xc7\xe1\xc1\x69\x85\xbb\x20\xf7\xa1\x94\x9d\xd0\xfd\x78\x42\x77\x4b\x92\x4c\x27\xef\xc9\x10\x60\x20\x8c\x0f\x4f\x84\xaf\xaa\xb9\x8c\x35\x64\xee\xca\x61\x5e\x7b\xb9\x6a\xb9\x56\xc2\xf3\x03\x08\x06\xcc\xa9\x80\x48\x09\x34\x53\xba\x48\xa2\xb0\x55\x28\x4d\x2a\x26\x2a\xa9\x49\xbe\xad\x04\xd3\xd8\x86\x45\x3a\xe0\x14\x24\x11\xb2\x52\x39\x29\x37\xc6\x91\x30\xf2\x2a\x10\x52\xf0\xf8\xb3\x67\x3c\x8a\x9e\x1d\x3c\x76\x76\xcf\xa4\x64\x90\xa9\x9b\x26\xb4\xb1\xda\x4d\xae\x10\xe1\xd7\x34\xdd\x1c\x6b\x9c\xbd\x81\xd4\x3f\x39\x9b\x47\x76\x8b\x0a\x2d\xc9\xb2\x63\x48\x87\x5b\x0c\xac\x9b\xfa\x2d\x18\x49\x73\x34\xfc\x1e\x2e\x99\x4b\x0f\xe0\x5e\xa1\x61\x62\x34\x63\x5f\x1c\x07\xe4\xf7\xe1\xde\x16\x5a\x69\x0b\x52\xf8\x81\x48\x21\xe4\xc4\x99\xbf\x6d\xe8\xac\x9b\x04\x6d\xe3\xb7\x4a\x3d\xab\x34\xf4\x0e\xe7\xb3\xb1\x52\xe5\x7d\x7e\x00\x65\x7d\x1e\x65\x09\x8f\x0a\x3a\xbb\xdb\xa3\x7b\x44\x7b\xae\x5b\xa6\xbc\xa1\x07\x5c\x2f\x0b\xb7\xb3\x70\x1d\x8d\x82\x12\xab\x72\x91\xdb\x76\xc5\xe6\xa6\x2a\x49\x6b\xcb\x6e\x97\x63\xad\x5c\xc3\xe2\x35\xd5\xd9\x64\x82\xb1\xfa\xd0\x82\x6a\x56\xaf\x5e\xac\x87\xbf\x91\x46\x03\xcc\x22\x9e\xbc\x5d\xbf\xdf\x7e\x53\x67\x7d\xa0\xef\xea\x77\x9e\x51\xbe\x03\xe2\x7d\x79\xb2\x2a\x18\x93\xdd\xa9\x81\xea\x14\xb6\x23\x35\xe7\xff\xc8\x44\xb4\x24\x55\xba\xf4\x4e\x70\x91\x81\xcb\x25\xc0\x74\xc5\x44\x18\xf5\x09\xb3\x34\xa0\x80\x01\x24\x44\x51\x02\x8b\x59\x3e\xe8\x7d\xa4\xd2\x69\xfe\x0a\x40\x6c\xa7\x57\xe7\x45\x78\x72\xc9\xc0\x70\xb9\x20\x8d\xd8\xab\x1f\x2e\x98\x83\xd0\xde\xaa\x5e\x11\x98\x66\x48\x60\xfe\x1b\xd7\xeb\xa2\x86\x21\x96\x8b\xeb\x29\x09\x3e\x36\x62\xb9\x68\xe1\xe9\x15\x2c\x46\x45\x32\x2f\xb5\x95\xa2\xd1\x01\x00\xae\xb3\xbb\x44\xa6\xa9\x88\xad\x10\x0d\xc9\xeb\x50\x0e\x7b\xc0\x7e\x2a\xa4\xdc\x79\x39\x40\xb8\x0b\x6c\xb4\xb4\xbb\x46\xa5\x8d\xc4\x3f\x32\x1e\xc9\x74\x89\x61\xba\x89\x04\x68\xc5\xb8\x98\xcb\x0f\xa1\x9b\xb9\xd9\x87\xc7\x8c\x47\xf3\x69\x8e\xb0\x6b\xc5\x75\xac\xb7\x00\x61\x3c\x79\xc5\xea\x82\x7f\xb2\x54\x9d\x7b\xae\xbc\x74\xa8\x62\x3c\x27\xd8\x58\xc8\xde\x71\x5d\x59\xf6\x02\x62\x2f\xa4\x98\x63\x71\x0a\x1a\x24\xbe\xc0\x3a\x2c\xb9\xf4\x42\xa3\xc5\x42\xc4\xa6\x5f\x99\xb2\x49\xc2\xc3\xcc\x10\x98\x2d\x4e\xc2\x42\x24\xa3\x16\x36\x82\x51\x85\x64\x58\xe3\x80\x39\x92\x0c\x5b\xec\x63\xf6\x7b\x1c\x44\x59\x28\x34\x9b\x88\xb4\x07\x0f\xf4\xd8\x1d\x4f\x83\x69\x8f\x00\x86\x7b\x24\xad\xf6\xd8\x1c\xbf\x0e\x45\x24\xcc\x47\xfc\x6f\xa0\xa2\x08\xc3\x7f\x7b\x54\xc1\x40\x7d\x5c\x3e\xba\x3c\xb0\x68\xa5\x74\x2e\x8a\xc6\xd2\x5a\xcf\xcb\x5a\xa9\xa0\x5c\x9d\xb6\x41\x2e\xb8\xb7\x58\xb0\x38\x66\xfb\x58\x61\x9d\xca\x2d\x71\x46\x21\xbb\xd5\x21\x24\xf9\x98\x9f\x91\xe1\xe7\xa0\xbd\x44\xb1\xa5\xe1\xa5\x40\xf1\xeb\x99\x6e\x59\x56\xa9\x9c\xe4\x75\x2a\xc3\xbd\xe4\xf2\xf5\xf6\x11\xbf\x65\x45\x27\xbe\x72\xd5\xce\x50\x18\xb7\x11\xe5\x58\xd5\xaa\xe2\x5a\xf0\xca\x96\xfa\xa6\x38\x6e\xe5\xfe\x80\xe4\x49\x73\x49\x1c\x05\xa6\x88\xc9\x82\x40\xb6\xa9\xdc\xdf\xd9\x5c\x3e\xb3\xcd\xa5\xdd\xea\xfb\x4d\x2d\x05\xaa\x9c\x08\x5c\xf8\x9a\x93\x39\x56\xad\x83\x44\x3b\x5b\xc9\xe7\x76\x50\x36\x16\x93\x2e\xad\x7d\x4e\x32\x2a\x71\x03\x55\xaa\x92\x93\x0a\x8c\x0e\xa9\xa3\x11\xec\xc1\xec\x76\xce\xd6\xb1\x31\x97\xde\xc4\x86\x64\x6f\x52\xed\x5a\x3e\x05\xf3\x52\x81\xb5\x3c\xbc\x85\xe9\xa7\xaa\x57\xa8\x99\xa8\x6b\x07\xa0\xe1\xb9\x85\x10\x27\xd9\x08\xcb\x0b\x2e\x23\x4c\x18\xd8\xc4\xe8\x6f\xbd\xc5\x44\xb0\x12\xa5\x52\x8c\xcf\xa7\xf3\x89\xc9\x9f\x46\x58\x81\xaa\x12\x1d\xb3\x7a\xc2\xcc\xaa\xe3\x06\x9f\x85\x1b\x74\x21\x13\x5d\xc8\x44\x17\x32\xf1\x74\x42\x26\xf8\x5c\xae\xe2\x8f\x8f\x63\x39\x6d\x29\x15\xb9\x39\xb6\xa3\x27\x4f\x41\x44\xfa\xa9\x3a\xe4\x07\x11\x8f\x5e\x83\xf9\xe9\xdd\xbc\x5c\xad\xaa\xbc\xff\x85\x76\x36\x8d\x81\x52\xd3\x08\x57\x08\x2c\x59\x74\x1d\x8d\xec\x63\xcb\xb0\x76\xd2\xcc\x13\x96\x66\xc2\x64\x79\x95\xad\x5b\x77\x48\x34\xa1\xa5\xec\x15\x6a\x12\xf3\x94\xcd\x54\xe8\xea\x43\x6a\x3f\xad\xda\x1c\x10\xb3\x33\x1a\x24\x8d\x73\x43\xa3\x11\x92\x02\x40\x8c\xbc\x55\xc2\x31\xb0\x50\x26\x22\x48\xe5\x42\x58\xe6\xa0\xa1\x9a\x1c\xf0\x07\x91\x24\x40\x99\xf5\x5c\xc5\x1a\x6d\xd6\x71\x8e\x49\x36\x4f\x54\x20\x34\xb0\x02\xa7\xf0\x21\x0d\x67\x50\x4d\xd7\xe6\x0b\xf0\x44\x9c\xb1\x3e\x3b\x8f\xa2\x33\xc8\x36\x0e\x93\x25\x64\x19\xeb\x94\x4f\x44\x9e\xca\x41\xdd\x95\xb1\x48\x1e\xc3\x1f\xcb\x03\x71\x29\x12\xf9\xff\xb1\xf7\xee\xcd\x8d\xe3\x58\x9e\xe8\xff\xf5\x29\x10\xde\x3f\x9c\xd9\x2b\x2b\x1f\xd5\x73\xb7\x37\x2b\x26\x36\x5c\x99\x59\xdd\xb9\x95\x55\xe9\x9b\x76\x75\xc5\xc4\xf5\xc4\x34\x4c\x42\x12\xc6\x14\xa0\x26\x40\x3b\xd5\x1d\xfd\xdd\x6f\xe0\x1c\x00\x24\x25\x4a\xa2\x64\xea\xe9\x33\x11\xbb\x9d\x65\x91\x20\xde\xe7\xfd\xfb\xe9\xf4\x5a\x24\x5a\xad\x44\xd3\x72\xb2\x3a\x92\x31\x48\xc5\x0c\xbe\xc5\xee\xb0\x12\xc7\x96\xf8\xb4\x25\x30\x08\x3a\x9c\xd3\xd9\x68\x83\xd2\xea\x22\x14\x95\x04\xf0\x53\x54\x06\x50\x79\x05\xa0\xd3\x72\xe9\xb1\x15\x26\xc7\x63\x91\x3a\x8d\x25\x9b\x96\x50\xb0\x31\xf4\xa0\x64\x86\xe1\x91\x00\x84\x06\x03\x74\xbb\x42\xea\x32\x86\x5a\x82\x60\x41\x95\x51\x15\x7a\xa2\x0e\x4e\xc2\x41\x09\xf2\x03\xf2\x1f\x19\xd4\xb1\xbe\x3c\x20\x2b\x16\x11\x35\xf4\x71\x09\x80\xc9\x46\xb8\xf8\x64\x0c\xec\xc5\x18\xd0\xf9\x64\xc4\xd5\x87\x80\xe1\xb7\xea\x98\x7c\x70\x13\x98\x00\x27\x19\x9b\x20\xbc\x41\x50\x82\xaf\x72\x3d\xe1\x43\x38\x40\x57\x3a\x93\xc9\xd4\x07\x18\x2a\x41\x28\x38\x33\xa1\x01\x77\xca\xde\xf4\xff\x57\x9f\x5d\xe3\x81\xc2\xdd\xed\xfb\xe1\x17\xcc\x40\xf5\x16\x74\x11\xa6\x75\x00\x70\x5b\xaf\x06\x3c\x33\xbe\x92\xe5\xd6\x8f\xe0\xf6\x8c\x0d\xa4\x82\xc2\xab\xbc\x52\xde\x86\xf5\x42\xaf\x42\x10\x2e\x2e\x2e\x36\x7f\x6e\xca\x97\x8c\xcf\x9e\xf0\xc8\x20\x95\xae\xeb\x7c\x7e\x6c\x41\x6e\x1b\x61\xb1\x14\x0a\x76\x80\xb6\xa3\x4d\x22\xf0\x6e\x46\xb4\x4a\x9b\x79\x2e\x9f\xa0\xe6\x5e\xd5\xda\x5d\x96\xbe\xff\x8b\xbf\xba\x06\x45\x36\x90\x59\x26\xd2\x70\xef\x71\xaf\x8b\xa0\x8b\x38\xe1\x79\xee\x6e\x17\x5d\x58\x58\x0c\x37\xe8\x60\x89\xf5\x18\x67\x7f\x7c\xfd\xbf\xd9\x7b\xad\x06\x99\x74\xf7\x24\x86\xad\xcb\x1a\x31\x67\xa1\x88\x74\x41\x1e\xff\x64\x76\x86\x57\x0b\x52\x0f\xa6\x9d\xb2\x91\x7e\x64\x43\x9e\xdf\xf1\xa1\x60\x65\xf8\xaf\x14\x42\x22\xc7\xa2\xb5\x05\x8b\xfb\x65\xe6\x08\x2c\x5e\x5b\xb8\xc4\xc3\x0d\x3c\xc1\x8d\x20\x0d\x14\xc0\xa6\x65\xf0\x56\x7c\x93\x08\x7c\x5c\x6e\x48\x23\x6c\x34\x6a\x3d\x64\x79\xbf\xb2\xf3\x42\xe9\x55\xb8\xb3\x2e\x62\x88\xa6\xfe\xb1\x3e\xbb\x4c\x12\x31\x01\x9c\x8d\x9a\x24\x3e\xc7\x31\x9c\xb3\x0b\x7f\x5a\xea\xa7\xc9\xfc\xc0\xce\x7f\xe4\xc9\xfd\x10\x8a\x69\xdd\x53\xe8\x6f\x03\x97\x7f\x7d\xe2\x34\xc0\xb7\xf8\xfb\xbe\xde\x48\x18\xc1\x5d\x6c\xe9\x07\x76\xfe\x93\xce\x45\xa5\x59\x67\x3b\x27\x3c\xc5\x12\x45\x98\x1f\xd0\x6c\xb0\x3d\x83\xaa\xc2\x5c\x83\x83\xd8\x46\x57\xb8\x13\x5b\xb7\x2b\xea\xca\x7e\x2b\xcb\xa2\xb7\xe2\x43\x3c\x05\x28\x12\xad\x66\x91\xeb\x8e\xeb\xc3\x10\x11\xde\xe4\xeb\xb9\x18\x4a\x63\x51\x03\xdb\xdb\x14\x74\xde\x89\xb5\xa7\xa3\x86\x89\xb5\xeb\x69\xe8\xfc\xe3\x1b\x0c\x7f\xaf\xfb\x60\x0b\x9f\x5f\x7f\x0a\x26\x66\x87\x03\x7e\xea\xc7\x76\x3f\x3c\xf7\xc5\xb7\xeb\x7c\xb1\x48\xa5\xed\x7c\x59\x21\xf5\x6b\xad\x81\x17\x76\xe4\xb4\xf6\x64\x3f\x3b\xbb\xfb\xaf\xaf\xbd\xf2\x85\x1d\xe9\x3c\x20\xa6\xec\x61\xfc\xdd\x7e\x7c\x83\xe1\x6b\x93\x00\xba\xd4\x2e\x47\xdd\xc9\x37\xdf\xee\x6b\xb0\x6f\xd7\x3d\xec\x77\xdc\x26\xa3\x9d\xcd\x6f\x07\x5f\x5b\x77\x66\x9f\xfe\xc9\xb7\x6b\x5f\x5d\x15\x54\xd2\xfd\xa8\x05\x89\xd6\x79\x2a\xd5\x5e\x6e\x8e\xce\xbf\xbd\xee\xe0\x43\x2a\xc4\x1c\xa4\xf5\x46\x5f\x5f\x7b\xf1\xbb\xfd\xfc\xba\x83\x17\x0f\xe0\xad\xdb\xcb\xa7\xa3\x2a\xbc\xdb\xef\x0e\x32\xfd\x08\xae\x40\x9d\xf5\x4b\xd4\xdc\xbd\xac\xbd\x1c\xf3\xa1\xf0\xbe\x87\xbd\x74\xc0\x47\xff\xa5\x1a\xee\xfa\xd8\x77\xfc\xe5\x75\x37\x81\xd2\xa9\xd8\xd3\x94\x77\xf5\xe5\x75\x87\x8c\xfb\x6c\xb7\xdf\xcc\xef\x78\xd2\xdf\xab\x62\xba\xa5\x1e\xac\xbd\xec\x5b\xea\xc7\xba\x0b\x62\x92\x91\x48\x8b\x6c\x0f\x07\xbe\xe3\x2f\xaf\xbd\x00\x1d\x7f\x7f\xed\x89\x17\xd6\x4a\x35\xec\x46\xd4\xae\x3f\x78\x2c\x6d\xda\xf9\x9a\x77\xf8\xd9\xbd\x8e\x79\x76\xb5\xfd\xbf\x36\x48\x63\xf9\x09\xb8\x9b\xfe\xfa\x66\x49\x06\x4b\x78\x04\x8b\xed\x20\x1e\x2b\xa0\x48\x25\xd0\xbf\x2a\xc6\x43\x35\x5e\x20\x84\xf4\x54\x5b\x37\xb9\x14\xbd\x08\xae\x8c\x51\x63\x04\x5e\xe4\xc9\x88\xdd\x8b\x69\x95\x27\x95\x9d\xf7\xcf\xe7\xa3\xbb\xbe\x6a\xce\x1a\x91\x0d\x2a\x20\x9b\x1e\x5b\x10\x68\xe5\x74\x49\x9d\x0a\x41\x9c\x2a\x91\x4d\xad\x3d\xce\x4c\x71\x77\x11\x23\x41\xd2\x8a\xb1\x4f\xdb\xc3\x87\xa1\x65\x64\x4b\xad\xf0\xa7\x1a\xc1\x06\x9e\x82\x6c\xcc\xad\x79\xc7\xce\x07\xef\x3c\x3c\x2f\x1f\x23\x50\xaf\x38\xef\xb1\x47\xe0\x41\x9a\xfd\x61\x16\x05\x8c\x47\xdc\x7b\x16\xe6\x0b\x3a\x0c\x73\xe1\xfe\xe6\x46\x74\xfe\xe0\x3f\x00\x41\x9f\xc6\x2f\x54\x7e\x09\x9f\x10\xdf\x78\x62\xd9\x7f\x9b\x08\x3b\x6d\x43\x22\x0d\x7e\x38\xb2\x61\xb2\x73\xe9\xdb\x07\x7e\xbf\xc6\xf6\x2b\xbf\x60\xc9\xa2\x91\x31\x15\x08\x1b\x91\x91\xb1\xef\xfc\xde\x37\x77\x2f\xa6\xa6\xb1\xb5\xf2\x07\x0c\xe8\xfb\xc4\xd2\x6a\xa7\xce\x0d\xcc\x81\xdf\x53\x98\x39\x24\x73\x86\x34\xd0\x21\xfa\xf5\xc9\x7d\xfd\x1e\xb2\x37\x27\xa6\xb6\xf0\xb8\x49\x23\x4f\x68\xdc\x38\x10\x8f\x72\x6f\x54\xa8\x8f\x10\xee\xd5\x96\x4c\x3a\x36\xa2\x77\xe3\x1c\x96\x28\x94\x9e\x31\x0c\x52\x44\x64\xbc\x2d\x5f\xc5\x8d\x9e\x5e\x00\xc7\xe1\x45\x2a\x07\x83\x32\x0c\xf5\xe4\x2a\xb2\x85\xa8\x46\x8b\x4f\x69\xf5\x95\x7a\x3d\xc7\x2d\xde\x41\xaf\xfc\x0d\x72\x7b\x06\xa7\xe8\xf6\xac\xfc\x6f\xbf\xfd\x61\x6d\x03\xfe\x9a\x27\x9b\x1e\x73\x28\xfd\xc3\x01\x03\x2b\xb3\x10\x93\xc0\x57\x38\x4b\x6e\xb3\x30\x51\x6d\xd3\x3a\xa5\x3a\x66\xc5\xe5\xd5\xa7\x86\x92\xa5\x32\xaa\x38\x9e\x1f\xea\xfa\x19\x12\xeb\x95\x72\xd6\x3b\xd8\xd4\x25\x3d\xa8\x4e\x75\x2d\x25\xda\x04\x56\xdf\x58\x08\x31\x12\xcc\xe6\xba\xb8\xcb\x10\x60\x78\x92\x49\x1b\x2f\xc2\xea\x02\x77\x5c\x5a\xb9\xa8\xf8\x25\xcc\x45\x10\x2f\xdd\x6d\xf0\xcf\xfc\x4e\x64\xd7\x02\x43\xd0\xcb\xca\x4b\x58\xe6\x9e\x64\xc6\x3f\xea\xab\x24\xe1\x6f\x48\x74\x00\x55\x23\x51\x24\xc5\x84\x3e\xbc\xd7\x7d\x2a\x9c\x1e\x60\x56\x35\x7c\x35\x10\xde\xda\x64\xf4\xf1\x9b\xbb\x13\xca\xf4\xdc\xcb\x5f\x3f\xf8\x8c\x3b\xbc\x54\x66\xbe\xed\xf3\xc2\x21\xac\xed\x13\x56\xfa\xec\x92\xa9\x22\xcb\x16\x3d\xaa\x74\x7c\x72\xf5\x29\x99\xed\xd3\x8a\x3d\x38\x37\x84\x5a\x05\xe9\x4c\x87\xfc\xc2\x8f\x31\x19\xea\x66\x24\x6a\x7f\xa9\x8c\x7e\xdb\xc9\xd8\xb5\x95\xff\x5a\xf6\xe1\x49\xf9\x7f\x95\xd5\x9d\x9d\xb4\x26\x0a\xc9\xcd\x73\x11\x9b\x96\xc0\xef\xaa\xaa\x60\xfb\xe7\xbd\x98\xf6\x40\x16\xfd\x0b\xd9\x54\xdd\x3e\xf1\x60\x0e\xd5\xdf\x42\x92\x48\xa5\x19\xd7\x82\x53\x8a\xfe\x5e\xc8\x07\x9e\x09\x65\x83\x98\x43\x78\xe1\xb8\x97\x2b\x0b\xef\x64\xad\x36\xa2\x94\x9f\xae\x81\xdb\xb3\x7b\x31\xbd\x3d\x43\x59\xe8\x06\xce\xfd\xf1\xb9\x3d\xfb\xa4\xdc\xdf\x43\x16\x4a\x4c\x2c\xc9\xf9\xb4\x14\x1c\x50\xb9\x70\x7b\x86\x6a\xc6\xd9\x1a\x3b\xa6\xe9\x6a\x68\xbe\x8b\xba\xbd\x44\xaa\x5b\x69\x8d\xfb\xa4\x32\x26\x9f\x6b\x18\x7e\x41\x8a\xcc\x30\x1f\x38\x4b\x3d\x54\x3f\x70\xf2\x80\x7a\xce\xcf\x2b\x3c\x9c\x8b\xcc\x67\xf7\xe2\x5a\x80\x94\xc2\x44\xe6\xd5\x87\xff\x5e\xac\xca\x81\xf2\xea\x32\x66\x54\xbb\x41\xb8\x3f\xc4\x0a\x92\xd8\x6f\x3e\xf1\x60\x01\x7a\xb9\x94\xa8\xfd\x56\x67\x97\x75\xfb\xcb\x2b\x36\xd8\x2d\xe8\xdd\xaa\x17\x20\xde\x2a\x86\xf0\x3c\xbc\xbc\x20\x05\xd1\xcf\xd9\x8a\xd1\xc6\xa9\xad\x71\x56\xde\x8b\xe9\xb9\xc1\x89\x76\x3b\x7f\x24\x27\x81\x7e\x0a\x4e\x46\x48\x1b\xc7\xe4\xe5\xd0\x04\x6e\xd6\x4f\xaa\xc7\x7e\xd5\xd6\xfd\xcf\xc7\x6f\x91\xf8\xfc\x83\x16\xe6\x57\x6d\xe1\x2f\x9b\x00\x62\xc0\x07\x57\x29\x0b\x78\xc2\xa4\xa9\xd1\xa9\x56\x93\x5a\x8d\xcf\x01\xae\x9f\xd4\x4f\xca\x59\x06\xbe\xcf\x73\x47\xb5\x9a\x7f\x0c\xe2\xaa\xb1\x0d\x3f\x54\x9d\xd7\x46\xba\xa4\x39\xdf\x14\x02\xde\xc0\x2f\x58\x0f\x80\x3c\xc8\x69\x91\x7b\x43\x0a\x17\x5b\x26\x48\xf2\x8d\xe0\x1c\x07\x55\xbb\x52\xdf\xb2\xe5\xb6\xdb\x82\x32\x23\x8d\xfd\x45\x58\xbe\xe4\xde\x09\x8f\x44\x16\x70\x13\x33\x03\xf1\x08\x9b\xa9\xb2\x23\x61\x65\x52\x29\xb9\x86\x25\x19\xf1\x07\xe1\x69\x27\x21\xcf\xae\xe4\xec\x7f\xe0\xb9\xd4\x85\x89\x80\x41\xa5\x46\x12\x93\xa1\x23\xda\x07\x5c\xe7\xde\xa4\xfd\xe7\x17\x78\xd2\x75\xa7\xc7\x42\xc7\xfe\xd5\x06\xe1\x4d\x3b\x33\xba\x58\x49\x96\xe8\x1f\xab\x24\x56\x86\x7a\x34\xe0\xbb\x72\xff\xed\xf4\x94\xb1\xb4\x01\x73\xc7\xd3\x33\xe8\x81\xa7\xd8\x0f\xd9\xa3\x1e\xa1\xa2\x5e\x37\x51\xa9\x62\x1b\x71\x0f\xa5\x04\x13\x59\xd6\x50\x55\xd2\xef\x65\x04\x01\x0a\xf5\x26\x15\x76\x46\x69\x0c\xfc\x80\xd4\xe5\x3e\xcd\x3b\x94\xad\x54\x32\xc2\xdd\x02\x21\xaf\x3d\xe4\x92\x82\x8e\x65\xb5\xeb\x66\x2e\x85\x57\xe2\x95\xf8\x66\xc3\x3d\x14\x7b\x52\xae\xca\x7b\x9c\x15\x3c\x3d\x89\x56\x50\xde\xa1\x2c\xb6\xe5\xba\x15\x2a\x3f\x02\x97\xbb\x1c\x54\x47\x9a\x00\x29\x66\xa8\x58\x70\xe3\x46\xd8\xa1\x34\x12\xae\x00\x3d\x0b\x67\x03\xf1\xc8\xc6\x52\x15\x6e\xba\x60\xe9\x27\xdc\x18\x91\x46\x7d\x18\x36\x46\xb0\xaf\x50\x5b\x08\xb3\xed\x59\xce\x4d\xac\xe2\x8c\x2b\x89\x53\x19\x32\x6c\x91\xd8\x2c\xe1\x59\x98\x29\x3f\xd3\xde\xea\x91\xb9\xb1\xb1\xe2\xa4\x57\xe5\xb3\x83\xfe\xe4\x22\x11\x32\x4e\xa5\xd5\xf7\x42\x79\xda\x95\x50\xad\x32\x16\xc6\xf0\xe1\x26\x48\x55\x08\x7b\x24\xd5\xf0\x93\x15\xe3\xf7\xba\x50\xab\x68\x64\xe7\x5f\x88\x0e\x9b\xb8\x25\x4d\x71\x67\xdc\xce\x50\xd6\xef\x4e\x3f\x50\x58\xb9\x3a\x75\xba\x47\x33\x2a\x41\x90\xe1\x99\x30\x17\xf1\x82\xf6\x7f\xc5\xdd\xe6\x55\x0c\x91\x7a\xa9\xae\x73\xbf\x2c\x41\xa2\x1b\xcf\x32\x59\xef\x55\xec\x79\xe8\x94\x61\x9e\x0c\x3e\x6a\x76\xf5\x54\xfc\x4c\x0c\x2c\x2b\x14\x9c\x3e\x95\x46\x92\x14\x7f\xa3\xd7\x68\xcb\xea\x1d\x85\x8d\x30\x9e\x40\x8a\xf0\x8b\xc8\x17\xee\xd9\x31\x6c\x20\xa6\x4b\x46\x85\xba\x07\x2f\x42\xf9\xab\x0d\xb6\x2e\xa8\x2c\xc6\x3f\xf4\xb2\x1c\x4f\x2e\xfc\xd4\xe1\x16\x9e\x1d\x13\x0e\x64\xae\xa8\x60\xad\x91\x84\xba\x0f\x9d\xa5\x81\xf2\xe8\xe1\x4d\xff\xcd\xbf\xb1\x54\x63\x05\x0c\x94\xa3\x86\x6f\xe0\x31\x89\xdc\x23\x85\xa9\x20\x61\x34\xed\x94\x3f\x08\x63\xe5\x18\x48\x5a\xfe\xe0\x81\xe4\xfe\xe1\xdd\x6d\x65\x6a\x7a\x59\xb5\x5c\xe3\xce\x84\x1b\x79\x51\xdb\xc8\xb4\x08\xd7\x49\xee\xff\x03\x7c\x53\x9d\x17\xe2\xcc\x5c\x09\x2b\xce\xcb\xb5\x67\x40\x84\x32\xe6\xc0\x6f\x58\x2d\x2c\x3e\x37\x95\x3a\xbf\x2a\x4e\x54\x59\x95\x13\xb9\xe7\xc3\x45\x5c\xa2\xb3\x61\x32\xba\x15\xf9\x58\x2a\x81\xd7\x51\xa8\x0c\x81\xbb\xc3\xdf\x79\xeb\x00\xbe\x21\x2a\x18\xdc\x81\xac\x50\x58\x73\xe7\xbe\xc9\x93\xfb\x2a\x6f\xac\xc8\xfb\xec\x6a\x16\x97\x0d\x19\x78\xfb\xec\xab\xe0\xe9\x85\x13\xa1\x5b\x2f\xee\x49\xb4\x4a\x8a\x3c\x17\x2a\x99\x5e\xf8\xa4\x80\x0b\xae\xd2\x8b\x28\x30\x66\x23\xa6\xed\x10\x00\xb2\xc1\x67\xa9\xee\x57\xe1\x22\xfa\xc7\xd0\x0e\xfa\xed\xeb\xe7\x59\x67\x7c\x5c\xc2\x56\x53\x75\xab\x6e\xd5\x87\x8f\x57\x5f\x3f\xbe\xbf\xbc\xf9\xf8\x81\xfd\x1c\xcd\x85\xc0\x3e\xa4\x27\x2c\x96\x81\x84\xf6\xa3\x73\xfc\x4d\xff\xed\x6b\x77\x46\xa0\xe6\xa8\x7e\xa1\x49\xc3\x26\x19\x57\x0a\x45\x78\x1d\x73\xef\x4d\xff\xed\x9b\xf0\xda\xae\x59\x2d\x4b\x85\xf0\x17\xae\xf8\x50\xa4\xe8\x93\xfe\xa8\xec\x52\xc7\xed\xfc\xc3\xb8\x00\x8f\x3a\xbf\x1f\x64\xfa\xf1\x42\x3a\x35\x08\x1d\xdc\xd7\xfe\xca\x2b\xc1\x9b\x16\x40\xc7\x95\x9a\x12\x3a\xd4\xdd\x7b\x0d\x76\xe1\xb6\x2b\x8b\x2b\x05\xc5\xf5\x7e\xc5\xa5\x9e\xe9\x19\x02\x25\x46\xf7\xfb\xbc\xeb\xfa\xbf\xdd\x91\x87\xe8\x12\x38\x4b\xf5\xe4\x22\x73\x87\x8b\x55\xfa\xe1\x2f\x72\xf4\x5f\x2b\x91\x38\x6d\x22\x47\x62\xda\x1c\x4e\x7d\xbd\x7f\xbc\xd2\x93\x8a\x58\x4b\x62\x99\x1f\x2f\xac\x76\x57\x7c\x02\x24\x5d\x11\x97\x72\x03\xf5\x04\xd7\xe2\x06\x9f\x5c\x36\xab\x3f\xc5\x07\x83\xf8\x4c\xa5\x7b\x60\x2c\x15\x18\x76\xa1\x02\xb4\x84\xf0\xf3\x71\x13\x3f\x75\x15\xff\x38\x4c\x69\x8e\x90\x9a\x70\xb3\x20\xfd\xb3\x37\x07\xa2\xb6\x09\x2a\xdc\x3b\x76\x1b\xa3\x7d\x9b\xf8\xce\x07\xf3\xc1\x44\xf6\x44\x77\x61\x8c\x4f\x2e\x73\xc3\xc5\x08\xe5\x48\x43\xf0\x28\x6a\xa1\x10\x76\x0c\x6b\x1d\xe6\xc6\x44\x23\x2c\xc2\x74\x56\x87\x0d\xc5\xb4\x0b\xca\xd6\xc6\x70\x56\x57\xb9\x2e\xf0\x44\xe7\xde\xe0\x2f\x69\x80\x23\x7f\xb7\x3f\xd9\x0c\x9a\xf3\xfe\x7d\x13\x8e\xea\x06\xfb\x0a\x6d\xdb\xd5\x87\xf5\x4b\x78\x2e\xec\xaa\x40\x65\x18\x1b\xf0\xfa\x6c\x26\x78\x1a\x69\xa1\x1b\x2e\xa8\x3b\x01\x0c\x6a\x28\x76\xf1\xd0\xc2\x96\x7a\xa8\x16\x8d\x47\x1a\x76\x3c\x5f\x4e\xd1\x3b\xbf\x9c\x4c\xb2\xe9\x39\xec\xcf\xf3\xdf\xa0\x7c\xf6\x7c\x83\xf1\x5a\x39\x0f\xf2\xfb\x84\x3d\x76\x23\xc7\xcb\x69\xe7\xdd\x03\x30\x65\x72\x2c\x8c\xe5\x63\xf0\xf1\x3e\x7a\x1d\x36\x2e\x1c\x7b\x14\x39\x46\x13\xdd\xdd\xe3\x55\x3d\x1f\xa7\x0e\x8e\x15\x67\xd5\xd5\x56\xc1\xcf\xc8\x76\xc5\x91\x4c\x72\x7d\x53\x9f\xb3\xb9\x3d\x1b\x9e\x01\xe4\xdb\xf2\x76\x84\x3f\x01\x45\xe4\xd8\x3d\x81\x75\xf2\x0c\xef\xdc\x48\xf7\x58\x11\x28\xa5\x42\xea\x16\xf7\xc2\x56\xa7\xf6\xe9\x5c\x78\xa5\xe7\x62\xc9\x50\xca\x87\x20\x80\x59\x73\xb3\xf0\x2c\x2b\xb1\x15\x9a\x5d\x2d\x1e\x70\x2c\xe0\xd2\x56\x82\x3d\xe0\xbe\xf0\xcf\xe2\xde\x6f\x23\x49\x9d\x18\xe1\x8d\xb5\xbe\x5b\x0d\x4d\x5c\x96\xdf\xf5\x17\x51\xa1\xca\xb0\x35\xf8\x8e\xd1\x6c\x1f\xf3\x09\x66\x76\xa4\xcc\x53\x81\xd6\x85\x75\xc5\x8b\x73\x37\x2d\x79\xf8\xad\xd6\x48\x1d\x0f\xef\xc2\x89\x8e\xee\x90\x92\x31\x3d\x96\xbf\xba\x3b\x62\x1a\xed\x64\x08\xdd\x81\x7f\x04\x30\xb3\x23\xc4\x02\xa8\x9b\xe0\x67\x81\xd3\x05\xda\xfa\x14\x8c\xca\xe0\x46\x99\xd1\xbf\xdf\xbd\x7a\x55\xfa\xa1\x9d\x06\x9e\xea\xc4\xbc\x72\xeb\x74\x31\x2c\x64\x2a\x5e\x55\xa7\xbf\x5d\x9c\xa2\x72\xcf\x78\x26\xf7\x16\x98\xe2\x37\x33\xb8\x89\x81\x03\x1e\x37\x53\x05\x4e\xa2\x24\x30\x28\x43\xc1\xc1\x1b\x95\x62\x21\x71\x21\xcd\xa8\xb2\x35\x61\x51\x80\x4b\x16\x3e\x00\x08\x1e\x01\x7b\xd1\xc9\xaf\x52\x07\xf0\x1f\x35\x35\x38\x68\x6f\x9e\xa3\xb1\x3c\xc5\xa4\x8c\x5c\x0e\x47\x96\x29\xfd\x88\x71\x8c\x88\x3e\x2d\x0d\x1b\x6a\x4f\x50\x2f\x87\x0a\xa6\x1a\x7c\x77\xbe\xa0\x19\x37\x3d\xc0\x90\xc0\xdd\x1d\xd1\x42\xd6\xbf\xc2\xa1\x29\xa9\xd5\x4d\xb8\x52\x77\x79\x9f\xbf\x9f\xfd\x38\x6a\xdc\xe5\xf5\x3e\x97\x85\xe4\x27\xc8\xc2\x6d\x88\x17\x7f\x69\xd0\x3e\x72\x53\xca\xc2\x4f\xd1\x23\x32\x2c\x78\xce\x95\x15\xd1\x4e\xf1\xb3\x38\xe2\x93\x89\x50\xe6\xc2\xd7\xdc\x03\x32\x16\xe3\xee\x72\x35\xcc\x88\x09\xcf\x61\x8e\x83\x90\x30\xa5\xf7\x20\x78\x09\xa3\xcb\x02\x0e\x70\xf8\x64\x95\x3d\x56\x2a\xf6\xf5\xa7\xf7\xdf\x7f\xff\xfd\xff\xc6\x24\x04\x8e\x48\x1a\x52\xb1\xdf\x6e\xde\x83\x65\xd6\xc6\xd6\xfd\xb5\x40\x02\x58\xf4\x39\x6f\xdd\xf6\x0d\x77\xc5\x02\xbc\x1d\x0f\x4c\xf0\xe7\x75\xa1\x5e\x7e\x2d\x1d\x79\x1e\xe4\x25\x02\xe5\x07\x05\x25\x38\x26\x34\xe2\xac\x0c\x0a\xa7\xe8\xa3\x17\xc2\xad\x85\x5f\x28\x59\x65\xc0\x9d\x01\x98\x08\xb3\x07\xe0\xf2\x6e\x7d\x2a\xc0\x4e\xb3\xfb\x2c\x33\x1a\xb5\x84\x5f\xb8\xd7\xc4\xdd\xde\x18\xe9\xdc\x0a\x80\xbd\x28\x57\xa0\x6b\x5f\xcf\x5c\x7f\x76\x79\xe8\x3e\x34\x4d\xc6\xd7\x9f\xde\x33\xd8\xa6\x70\x9d\x80\x69\xeb\x8e\x18\xb7\xf1\xe6\xac\x1a\x8f\x25\xaa\x88\x47\xe2\xa9\xdf\x73\x5e\x44\x55\xce\xeb\x23\x12\x7d\x87\x55\xad\xa1\x5b\xf8\xbb\xab\x3c\x01\x4e\x6a\xf4\xc2\x51\x71\xe7\x0c\x71\x95\x70\x41\x11\x84\x01\x58\x99\xd1\xb1\x54\x77\xa8\x43\xc8\xfe\xdb\x44\x24\x36\x9e\x76\xdf\x49\xf6\x42\x69\x44\x0c\xcc\xd9\x83\x44\x63\x0b\xb6\x4d\x0d\xae\xdd\x13\xf2\xa2\x63\x90\x27\xa3\xf0\x35\x77\xd3\xbf\x64\x7c\x60\x03\xf7\x38\x68\x68\xaa\xa2\x57\xf7\x98\x56\x89\xf0\x36\x4f\x0d\xdc\x04\xfa\x84\xd1\xbc\xcb\x1a\xbd\xf3\xdc\x83\x31\xca\x0d\x6e\xd7\x5e\x6d\x9a\xee\x32\x9d\xdc\xbb\xb9\xfe\x12\x3e\xd3\xb8\xab\x21\xf1\xb2\x02\x62\x54\x89\x68\xa0\xa7\x16\xe9\x11\xdc\xbf\x02\xf8\x94\x54\xde\xff\x86\x24\x09\x3d\xc6\x33\x3b\xd2\xc5\x70\xe4\x4e\x5a\xd0\x3a\xc2\xb1\x60\xb3\xbc\x31\xfe\x81\x30\xcb\x93\x5c\xa2\xa3\x14\xa3\x0a\x72\x2c\x6a\x10\x8a\x3d\xc6\x31\xf8\x84\x80\x63\x3e\xce\x03\x1a\x21\x9b\xe8\x14\x53\xfd\xb0\x25\xa9\xd8\xf7\xaf\xc3\x5d\x81\xab\xfc\x73\x71\xe7\x7e\x0c\xf0\x5a\x3c\x81\x7d\x66\x04\x72\xa5\x57\xf6\x57\xb8\x33\x20\x35\x4c\x0e\x55\x19\x22\x09\x5e\xfe\x12\xee\x72\xa2\xd3\x3e\xbb\xf4\x2b\xcb\x6d\xe5\xa3\x18\x9d\xad\x7d\xd4\x7d\x8b\x71\x36\xe2\x79\xda\xf4\x91\x17\xd7\x9f\xfe\xfc\xf3\xa7\xcf\x9f\x5f\xce\x7d\x0e\x25\x3c\x7c\x25\xc9\x04\x57\xc5\xa4\xe7\x6f\xaf\xd0\x89\xf2\x12\xbb\xbc\xfa\x04\x58\x46\x76\xe4\x35\x31\xb7\xe2\x7a\x10\x30\x39\x21\x69\x12\xaf\x84\x5e\xed\xde\x74\x73\x8a\x64\xe2\x80\x85\x12\xb7\x6b\xd5\x62\xea\xb1\x42\x59\x99\x41\x04\x3c\x1d\x4b\x85\xd5\xd9\x1a\x70\x23\xbd\x83\x05\x56\x11\x00\xc4\xc0\x3b\x5c\xfa\x81\x67\xe1\xe9\x67\xee\xe7\x34\x82\xd3\xc0\x26\x9c\x3f\xec\x5e\x27\xf3\xbd\x1d\x71\xe3\x77\xa6\x50\xe5\x25\xb0\x4c\x28\xb6\xbb\x46\x76\xe9\x26\x5e\x2e\x2a\xcb\xe3\xbd\xca\x51\x51\x8d\xf9\x37\x60\x9f\x55\x4e\x45\xdc\x24\xbe\xb2\x7e\xda\x67\x90\xc3\x2d\xa2\xc3\xb2\xe6\xe9\xa8\xd0\x3c\x4d\xb4\xc2\x5b\x2f\xd1\x63\xcf\xeb\x5f\x72\xac\x57\xb6\x22\xb6\x14\xbf\x83\xf0\x4c\x3e\x0e\x35\x7f\xe5\xd4\xd7\x14\x2e\x6c\x75\x01\xb0\x69\xae\x1d\xe0\x16\xab\x86\xe0\xdc\x86\x0a\xa2\xd6\x0b\xef\x3e\xfb\xa9\xbc\x06\x4b\x5c\x46\x04\xb0\xf3\xf6\x4c\xf4\x2b\x73\x35\x45\x45\xad\xcf\xd8\x17\x50\xd8\xa4\x61\xbf\x7e\xb9\x61\x42\x0d\x74\x9e\x00\x82\x52\x19\x11\x53\x36\xd7\x69\x01\x5c\x0c\x72\xa8\xa0\x94\x56\x59\x96\x4b\x73\x8f\x89\x1f\x45\x72\x5f\xb9\x83\xfb\xd5\xfb\x18\x73\x90\x46\xdc\x99\x63\xfe\x7e\x77\xdf\xe6\x90\xda\x03\xa6\xc0\xc4\xed\x7b\x83\x69\xbe\xdc\xed\x60\x54\x20\x65\x39\x5b\x25\x10\x51\x10\x03\xe5\xb8\xa4\xc2\x71\xc4\x18\x9c\xc4\xd3\x16\x3c\x3e\x9c\x19\x69\x8b\x88\x8b\x57\xda\x2f\xe5\xea\x55\xd7\x34\xac\x33\xba\xdb\xca\x0f\x57\x43\xa4\xd2\xb0\x47\x8e\x8c\xfc\x48\xea\x15\x2e\x2d\x14\xdc\x3e\x65\x3b\x1a\x96\x78\xe6\x20\x29\x1e\xc2\xf2\x2f\x5d\xef\xdd\x6c\xa6\x5e\xfc\x2e\xec\x08\xaf\x8e\x9c\xdb\x7a\x37\x7a\x3e\x19\x14\xa2\x8b\x50\xb1\x20\x78\xea\x64\x5b\x9f\xfd\x2e\x9d\xdc\xb1\xe5\x5a\xc2\x0c\xd5\x20\x9d\x30\x85\x68\x90\x0b\xe1\x26\xc9\xab\xec\x63\x67\xc9\x81\x97\x7d\x6c\x44\xf6\xe0\x41\xf2\x83\x8d\xfb\x50\x64\x4a\xe4\x20\xc8\xc3\x2b\xe0\x34\x83\x10\x56\x2d\x88\xbc\xcd\xb4\x99\x8e\x92\xb6\x86\xc2\x8d\xc5\x8a\x16\xa6\xf0\x9f\x2b\x8f\xfa\x8b\x21\xd2\x10\x4d\x72\x31\x90\xdf\x7a\x31\xec\x57\xaa\x6a\x3d\x84\x06\xc6\x57\x9d\xb0\xc6\xbc\x7f\x30\x79\xbf\xfc\xfa\xf9\x3f\xd8\xa7\x9f\xe0\x69\x68\x15\x37\x4e\xed\x22\x0f\x88\xaa\x25\x98\x62\x54\x0b\xdd\xc7\x7a\x65\x11\x46\xcc\x76\x08\xa2\x12\xb1\xfe\xa2\x6e\x19\xcd\x69\x1b\x80\xb5\xe0\xb5\x32\x8d\x22\xea\x38\xbe\x10\xc5\x80\xba\x97\xe8\xf1\x1d\x44\xf1\xbd\x13\xc5\x0f\xc0\x14\x83\x81\xfc\x86\x6a\x44\x44\x7d\xc5\xd7\x47\x5e\x1b\x03\xdb\x1e\x3c\xa7\x78\xec\xf2\x22\x13\x26\xa8\x6a\xe5\x78\x7b\xd5\x04\x16\x9b\x17\x2a\xa9\x4a\xaa\x4c\xa8\x61\x09\x8b\x8f\x5f\x0d\xc9\x8d\x30\xd4\x31\xf7\x31\x13\xfc\xb8\xef\x9e\x0f\x40\xfb\x08\xa8\x93\x81\x73\xd3\x57\xa2\x4c\xc6\xc8\x93\x5f\x26\x74\x44\xa0\xd0\xf7\x4a\x4b\xd0\xbb\xdd\xcc\xb8\xeb\x31\x00\x55\x03\x56\xdc\x05\x93\xca\x58\xc1\xd3\x5e\xb4\xa5\x7c\x3a\x81\x7f\xec\xed\xeb\x37\xec\xbd\x8f\xe5\xea\x9c\xfd\xdb\xeb\xd7\x38\x9b\x5f\x05\x37\x5a\xf9\x50\xbe\x93\x01\xee\xb4\xfa\xac\x20\xd4\xc0\xaa\xdb\x25\xa9\x02\xa9\x0e\x74\xa1\xa2\x9b\x1f\x6d\x8b\x2c\xd3\xd6\x86\xdc\xa2\x2a\xda\x23\xba\xa1\x72\xe1\xe4\xd0\x8b\xb0\x67\xb3\xe9\xbc\xfa\x8d\xe9\x48\xb1\xd9\xaf\xee\x8d\x0b\x54\xe5\x10\x0d\xfb\x25\x4c\xe5\x25\xc4\xb5\xd2\x48\xea\x15\x4e\xc4\x0c\xf0\xe6\x96\x75\x05\x99\x8a\xf1\x44\x6f\x18\x3a\xf6\x4b\xdd\x22\x0e\xc8\x30\x47\x26\x89\x39\x2a\xb3\x95\x57\x91\x86\x28\x36\x19\x76\x6b\x2a\x0c\xec\x52\x63\xb9\x15\xad\x62\xcb\x5d\x1b\xc6\xd9\xee\x53\xc7\x7f\xc1\x4c\x71\x9f\x05\x7a\x2f\xa6\xa6\x92\x2f\x3c\x9f\x23\x01\x22\x64\xc8\x95\xfc\x07\x9a\xc9\x81\x44\xf5\x1f\x82\xbd\x30\x89\x9e\x78\x4f\x2a\xa4\x0c\xbd\xac\xb8\x4b\xb9\x47\xba\x2f\xb3\x89\x30\x79\x68\x92\x79\x6c\x20\xe6\xd3\x0c\xb2\x80\x4c\x08\x38\xfe\x49\x03\xf8\xf2\x4a\x5f\xab\x9f\xc5\xb5\xdd\xac\xe3\x6a\x80\xa9\x55\x6c\xcd\x3f\x8b\x65\x60\x95\x40\x79\x9d\xcb\x28\x64\x77\x54\x8b\x15\x23\xe0\xba\xff\x28\xee\x31\xa7\x8e\xfa\x56\x4a\xb7\xec\x58\x1b\x67\xfc\x3b\xcd\x22\xa6\xb4\x8c\x74\x61\xc4\xbd\x10\x13\xa9\x86\x78\x81\x60\x4c\xc0\x4e\x27\x3e\x3e\x8c\xb7\x88\x3a\xb7\x4c\x79\xcf\x9f\xb7\x7e\x0b\x95\x8a\xdc\xd8\x7a\x4e\x53\x9f\x5d\x96\xe1\x40\xbf\xde\xc1\x17\x71\x8e\x44\x5c\x3d\xcc\x17\xf4\x6b\x14\xff\xe8\x15\xaf\xb2\xae\x30\x1e\x30\x3e\x99\x64\x53\x64\x49\x81\x40\xf9\xed\x59\x22\x2f\x92\x34\x64\xf1\xcf\x14\x6f\x9a\x10\xa2\xf2\x97\x59\xc9\x04\xe5\x13\x08\x62\xf7\x60\x1f\xce\xf8\xe5\x4b\x1d\x7c\xeb\x85\x23\x0d\x49\x15\x6b\xa7\x0e\x57\x36\x5d\x0b\x62\x58\xb8\xaf\x43\x8e\x91\x97\x30\x4e\x1e\x81\xfa\x18\x7d\xf0\x7d\xf6\xc9\x94\x92\x16\xe6\x07\x9d\xdb\x15\x4a\x3e\x53\x71\x6e\x18\x3d\xae\xf2\x2a\x39\x81\x8e\xf0\x9c\xc1\xb3\x84\x99\xa5\xc1\x45\x21\x66\x2e\x4c\x67\x40\x57\xf8\x2e\x30\x26\x50\xcd\x50\xe8\x47\x39\x33\xc9\xe5\x98\xe7\xd2\x09\x9f\x90\xd0\xe6\x36\x73\x70\xbd\xb3\x52\x32\xf8\x3b\xa5\x96\x63\x5a\x2e\x50\x23\xe6\xf1\xba\x97\x43\x69\x1c\x9a\xff\x01\x73\xb7\xbe\x30\x8a\x53\xde\x62\xdd\x30\x3c\x52\x4d\x49\xc1\xbf\xf8\xf5\x03\xfe\x11\x35\xbf\xbe\x95\xe2\xaf\x4a\x90\x65\xb6\x1c\x07\x53\x06\x3c\x58\xeb\xed\x59\xf9\x28\x02\xc8\x56\x7f\xf2\x81\xf6\x84\x2b\xad\x20\x65\xb6\x0e\xad\xdf\x67\xbf\x6a\x5b\x8b\x31\xf2\x5c\xd4\xf4\xb6\x3b\xc1\xe0\x7e\xf7\xd6\x59\xd9\xab\x8b\x8a\x36\xa7\x6b\x4a\x1b\x1a\x65\xda\xc4\xec\xe3\xa8\xdc\xa2\x3b\xd0\xe9\x26\xc1\xf4\xe7\xec\xc3\xaf\xd7\xff\xf5\xf9\xf2\xc7\x8f\x9f\x3b\x59\xe6\xd8\xbf\x4d\xc0\xa9\x1f\x95\xc8\xbf\x0a\x50\xbf\x57\xb3\x97\x7d\xf6\x85\x6e\x61\x8c\x1e\x68\xd6\xdf\xe8\x95\x5c\xb5\x4f\x03\x76\xf9\xf9\x73\x7c\xae\x6a\x9a\x42\x52\x21\xd8\x0f\xde\xcf\x51\x77\x6c\x85\x69\x9b\x01\xcd\xad\x5a\x19\xa5\x03\xa2\x22\x50\xaa\x17\xb6\x37\xb4\xb9\x0a\xae\x92\xaa\x5b\x02\x3e\xe0\x93\xcc\x75\x99\x73\x1d\xde\x04\xe5\x37\xb8\xf3\xf0\x8f\x95\x64\x25\x48\x68\x2a\x44\x48\xf0\x29\x13\x96\xca\x74\x70\xad\x44\x99\x64\x52\x36\xb2\xf5\xbb\xfa\x4b\x6d\x25\xbb\xb2\x55\x6b\x15\x49\x85\x4c\xbb\x32\x6e\xd7\x4b\x81\xbd\x54\x21\xc9\x14\xcf\x9e\x2f\xfd\x8a\x45\x4a\xd6\x27\x10\x6f\x3b\x05\xf6\x97\x4a\x29\x83\x3b\xf1\xce\x60\x19\x4b\x63\x65\xc2\x2a\x59\xa4\xbd\x40\x4f\xec\xda\xac\xf0\xe4\x82\x64\x07\xc5\xb0\xcc\xfd\x01\xca\xe9\xe8\x68\xd5\x79\x43\x51\x6d\x0c\x45\xba\xeb\x03\xd2\x6e\x7d\x0a\x4c\xa8\x25\xaa\x55\x5b\xb4\x4b\xbb\xbd\x41\x3a\xa6\x32\x16\x86\x59\x44\xe8\xd1\x01\x9f\x73\x02\x74\xd7\x4b\x7b\xd6\x36\xa6\xb9\x66\xe2\xf0\x49\x27\xfc\x5e\x3f\xd3\x84\xdf\xca\x4c\xb9\x5b\x64\xf9\x24\xfd\xf6\xe9\x43\x10\xe2\x5e\x05\x74\x37\xb8\xf4\x99\x18\x28\x8a\xf1\x22\x98\x09\x27\x87\xb8\x7c\x69\x1a\x94\x7e\x93\x7a\x94\x52\x2b\x66\x8a\x24\x11\xc6\x0c\x8a\xac\x54\xcf\x74\x8d\xff\xbf\x12\x97\x0c\xf1\x6b\xab\x23\xf7\xb8\x62\x57\xbf\xdd\x54\x93\x06\xda\x9e\x87\xa7\xa8\x71\x85\x6c\x4d\x41\xd1\x7d\x52\xdb\x8c\x88\x59\x92\x0e\x56\x7b\xb0\x8c\x75\x0a\x85\xb1\x46\x85\xee\x03\x6f\x31\x66\xc2\x42\xa9\x92\x1f\xe7\x14\xdc\x97\x8f\xaa\xcc\x41\x02\x0d\xb1\xf6\x97\x78\x9b\x78\xcd\x22\xe6\xea\xe0\xe6\xf0\x8e\xbc\x88\x83\xdf\xf3\xa1\x50\x9f\xad\x73\x81\xda\x5d\x8f\x19\xed\x2b\x62\x60\x95\x2b\x0d\xa0\xa1\xd8\x6d\xce\xf6\x7c\xde\x38\x3a\x3d\x37\x38\x42\x10\x20\x86\x49\x0e\x11\xfe\x15\x9f\xf7\xb4\x1e\x3d\x76\xf9\xeb\x87\x50\xe5\x06\xaa\x5f\xf4\x88\xde\x9e\x95\x1c\x01\xa1\xd1\x2a\xe3\x47\xa5\x20\x0a\x5f\x2c\x75\x9f\xb9\x78\xd5\xbd\x98\x5e\xe0\xf9\xc4\x44\x35\x0c\x43\xfa\xbc\x82\xb0\x29\xe0\x3f\x7c\x54\xa8\x4a\x9c\x03\xcc\x23\x7d\x76\xa3\x67\xca\x84\x62\x38\xd9\xd9\xf8\x06\x14\x7e\xf7\xd9\xdb\xb3\x6a\x74\x46\x57\x86\xd6\xc3\x58\xc6\xa3\x34\x82\xfd\xf1\xed\x5b\xf6\xe2\x37\xe5\x63\x32\x10\x20\xf8\xa8\xac\xb4\xd3\x97\x0d\xec\x19\x8d\xcb\xb1\x94\x5e\xa4\x54\xf3\xda\xae\xc3\xcc\x64\x80\x3e\x1a\xc9\xbb\x56\xab\x8f\xad\x7a\xd5\x96\xef\x67\x76\x3f\x1e\x34\x9b\x4e\x5b\x1f\xc2\xaa\x41\xed\xc2\x78\x6e\x27\xe9\x3a\xed\xe9\x53\xe4\x43\x73\x4d\x77\xe5\x8a\x9b\xdd\x5b\xb3\xcb\x32\x33\x74\xff\x5f\x1d\x56\x7d\x5f\x01\x32\xf3\x62\xb9\x03\xbf\xfb\xe0\x2b\x86\x7d\xac\x66\x43\xf9\x20\xd0\x3c\x4c\x72\x61\x2b\x29\x9d\x90\x89\xef\x8f\x5c\x45\x73\xba\xba\xbc\x79\xff\x97\xe8\x0d\xba\xd3\x69\x15\x6d\xe9\xe9\x43\x58\xc0\x44\x34\x37\x94\xea\x73\x51\xdc\xcd\xb3\x07\xa9\x8a\x31\xf1\x02\x5d\x08\x3e\x99\x48\xf4\x98\xb0\x49\xff\xe5\x2c\xad\xd0\x6a\xa9\xb6\x66\x7d\x62\x0d\x8f\xc9\xf2\x7c\x28\x2c\xfb\x3a\xd3\xc4\x16\xce\x4e\xe3\x77\x7f\xfb\xf4\x61\x7f\x35\x68\x8b\x49\x4f\x17\xaf\xf3\xc2\x77\x80\xbd\xd7\x54\x83\x65\x35\x2b\xb5\xa2\xcb\xd6\x58\x81\x81\x68\xb7\x24\xcf\xed\x79\x25\x08\x54\x27\x55\x69\xad\x91\x9a\xb7\x05\x1e\x41\xd3\x98\x9a\xc6\x75\x13\xe8\x7f\xc1\xa1\x82\x39\x0d\x49\x85\x48\x18\x23\x24\x08\x38\xf7\xe9\x0a\x04\xbf\x1c\x16\xb9\x70\x5b\xb4\xed\xe0\x36\xd0\x9c\x6a\x4c\xaa\xab\x74\x36\xff\xe9\xe0\x48\x08\x51\x73\x53\x48\x4c\x4d\x44\x73\x39\xac\x0e\x26\xee\xdb\xc8\xfa\xcb\xef\xf4\x83\x88\x3c\xc5\x3e\xe7\x03\xdc\x7f\x23\x6d\x2c\x46\x14\xc2\xbf\xde\x4d\x74\x6e\x7b\x6e\x22\xb4\x9b\x0e\xf8\xcf\x8e\x01\xc7\x2a\x2b\xb7\x70\x3e\xba\xbf\xb1\xaf\x01\x28\x63\xd9\xfe\x47\x24\x0d\x30\x87\x7d\x48\xba\x34\xed\x9c\x0d\xe7\x97\x3e\xd5\xea\xdc\x86\x27\x10\x3b\xa2\x3d\xca\x17\x91\xb6\xee\x8f\xb4\x35\xd1\xe9\x2a\x85\xed\xba\x18\x0e\x31\x2d\xf8\x2f\x37\x37\x57\x61\x91\xdd\x8b\xa5\x81\x8f\x88\x2b\x3d\xf6\x3a\xd2\x68\x8a\xa5\x85\xf9\xdf\xbf\xdd\x28\x59\xdb\x72\x39\x1f\x94\x7e\x0a\x0f\x36\x74\xfb\x83\x6f\x77\x59\x70\xfa\xe3\x37\x1f\x2f\x42\x5c\x15\x63\x74\x22\xc1\x91\x10\x3d\xd2\x39\xa4\x64\xf4\x19\x66\x01\xe2\x7f\xc1\xc6\xc0\xad\xca\xa4\x35\xce\xf2\x41\xa4\x48\x68\x09\x3f\x3b\x9b\xb3\x1d\x53\x83\x82\xcb\x07\xbe\x18\x73\x74\x1a\x4b\x29\x12\x0d\x36\x3b\x02\xa3\x4d\xc3\x31\x10\xdf\x12\x31\xb1\x81\x80\x0e\x61\x3b\xbd\xdf\xc3\x77\x6f\x49\x61\x27\xd1\x91\xee\xc5\x80\xf2\x48\x2f\x2b\x73\x4b\x46\xc5\x98\xab\x8b\x5c\xf0\x14\x64\x5d\xe5\xf7\x98\xf1\xe4\x41\x90\x82\x9f\x3d\xe8\xa1\x1b\x88\xe5\x98\x5c\xdb\xdd\xc9\x8b\x08\x51\xcb\x0e\xdd\xb5\xe5\x2a\xe5\x79\xea\x21\x81\x62\xe5\xdc\x0e\x17\x70\x41\x78\xc4\x9d\x9e\x95\x6b\xe4\x87\xbf\x70\x95\x1e\x47\xd3\x99\xb5\xf1\x25\x49\xbe\x00\x9b\xcb\xac\xc8\x05\xa0\xd1\xba\xa5\x6c\x60\x45\xc6\xb8\x6c\xd5\x49\x56\x75\xde\x55\xd0\x9f\x2e\x43\xc6\x58\x92\xf1\x1c\xd5\x72\xae\xf0\x3e\xf7\xfb\x04\xee\xf3\xbb\xc2\x89\x72\x81\x57\x8c\x7e\x10\x79\x2e\x53\x77\x73\x6d\xa2\xca\xcd\xaa\x16\x0b\x16\x38\xee\xd1\x4a\x85\x57\x9f\x7d\x01\x60\xae\x77\xec\xf6\xec\x1a\xfd\xc0\xb7\x67\x4e\xf7\xaa\x4c\xca\xd6\x77\x81\x99\x88\x04\x02\x0f\x7e\x24\xdd\x98\x2d\xf1\xef\xdb\x22\xe6\xbc\x6e\xe8\x6d\xf7\x5c\xff\xf8\x95\xf7\xbc\x30\xcb\x1c\xcd\x95\xa7\x82\xcd\xef\xd1\xc9\x6a\xdb\xf4\xce\x19\x15\x90\xc5\x21\x7d\xc3\x6c\x80\xcb\x5c\x85\x79\x4b\xb8\x11\xc6\x67\xdb\x14\x99\x95\x93\x4c\x20\x3a\x16\x66\x08\x08\x95\xe8\xc2\xa9\x66\xa2\x8d\x67\x18\xa4\x6d\x0b\x1b\xc9\x23\xa3\x37\x41\x89\x00\xe2\x18\xc7\x54\x34\x77\x28\xa1\x2f\x3d\xc6\x31\x1d\x09\x24\xad\x13\x4d\x00\xb8\x30\x83\xc0\xf4\x0b\x88\x38\x28\xa7\x66\xa9\x46\x70\x8a\x89\x36\x76\x20\xbf\xb1\x50\x9c\x0b\xba\x95\x42\xbd\x8b\x5b\xdc\xc0\x4e\x95\xbc\xcc\x73\x3e\xc5\x21\xff\x43\xe4\xfa\x02\x60\xc9\x9d\x8c\x63\x31\x03\x6c\xca\xf8\x64\x22\x78\x5e\x0b\x7b\x63\x69\x6c\x15\x6e\x11\x3a\x6f\x58\x5a\x08\xb4\xef\xe0\xed\x11\x7f\x70\x93\x3d\x33\xc3\x7d\xf6\xc5\x6b\x25\x88\x55\x8f\x25\x44\xe6\xdd\xad\x62\xec\x16\xbc\x4b\xb7\x67\x3e\xfd\x02\x67\x2c\xfe\x31\x58\xb5\x08\xb4\x11\xa7\x10\x5f\x84\x30\xfb\xff\xf7\xfa\x3f\xfb\x2d\x5a\xc0\x7c\x7a\xec\x7c\xcc\x1b\xf0\x4d\x6c\x82\xcc\xd1\x9d\xa0\xc5\x2a\x07\xff\x1f\x30\x5f\x7d\x56\xd5\xe9\x62\x25\x45\xa8\x45\xe5\xe6\x42\x7a\x16\xfa\x1c\x92\x63\x37\xc2\x75\xeb\x44\x04\x2d\xea\xff\xc6\x92\x66\x7f\xde\x9d\x9a\x2a\xbf\xea\x4e\xf2\xcf\x05\x80\x5b\x84\x28\x8c\xc9\xad\xac\xbc\x36\xf0\xac\xff\x72\xf9\x1f\x95\x8a\xff\x6a\xf9\xb3\x0e\x17\x5b\xf5\xf5\x86\xdb\xad\x02\x79\x77\x03\x09\xd2\x20\x8d\xe3\xf5\xc2\xd9\x75\x15\xb3\x32\x9a\xb7\x8f\x90\x9c\x19\x8f\x7f\x0c\x87\x40\xb5\x6c\x2d\xf5\xc0\x57\xa7\x57\x93\x3a\x3d\x9e\x5b\xf4\xe5\x44\x23\x20\x80\x9c\x40\xce\x57\x6c\xbd\x57\x85\x1e\xe0\xc6\x14\x63\x7f\xd3\x41\xb9\x4d\x78\x2a\x6c\x67\xd8\x10\xee\x7e\x86\xdc\x84\x5e\xcc\xe7\x0c\x1f\x69\xe3\xad\x82\x0b\xa8\x8d\xa7\x0a\x6f\x2a\x0f\xbe\x1a\x70\x28\x10\xe6\xd2\x2f\x64\x93\x45\x86\x53\x1a\xa6\x1a\x25\x4a\x99\x5e\x56\xfd\x15\x6f\xcd\xb0\x92\xd8\xa6\x48\xfd\x0d\xb9\xf5\xdc\xa0\xaa\x30\xad\x34\xba\x76\x02\x67\xd0\x0c\x56\x4d\xa7\x67\x0c\x88\x2b\x3a\x2b\xde\x9a\xe6\xd2\x6b\x89\xd5\x49\xdb\xe0\xd6\x6a\x61\x54\xba\x0e\xba\xc7\x3a\xe8\x1f\xfb\xa2\x30\xb7\xb4\xcc\x02\x40\x83\x1c\x0a\x5a\xaa\x05\x7c\xa1\xee\x39\x7e\xc2\x99\xb6\x87\x6d\x28\xb6\x88\xb4\x45\x08\x8e\x27\x4f\x25\x7b\xf1\x58\xe2\x53\xe2\x9d\x89\xd0\xed\xd0\xbc\x77\x1f\xa3\xff\x34\x22\x49\xbd\xdc\x48\xaa\xd9\x7c\x0a\x65\x23\xed\x90\x0c\x3e\x0d\xca\xb2\x91\x5e\xb5\x1e\x25\x22\x1b\x54\x4b\x38\xa3\x95\x55\xc2\xab\x20\x40\x4b\xda\x67\xd7\x6e\x9f\x78\x75\x12\x3d\x10\x58\xd2\x52\xf5\x36\x60\x8a\x17\xbf\x87\xb8\x0e\xcf\xc0\x0d\x68\x05\xe3\x90\x44\xc6\x2e\x2a\x59\xa6\xbe\x21\x5b\x57\x02\x62\x9b\x23\xfd\x88\xd5\xe7\x56\x43\x21\x60\xec\x25\xbf\x0f\x3e\x93\xd9\xe6\x3b\x77\xa6\xad\x19\xfd\xc4\xfd\xd2\x5f\xb8\x11\x4a\x44\x82\x05\x9b\xe1\x78\xf3\x6a\x56\xe0\x44\x05\x88\x28\xce\x1e\x73\xa7\x77\xe7\x8c\x43\x9a\x06\x96\xdc\x23\x5a\x14\xcc\x89\x29\x26\x13\x9d\x5b\x67\x6a\xe7\x39\x56\x89\xe7\x66\x04\x14\xc1\x6e\x23\xfc\xc7\xe5\x2f\x9f\x41\x02\x3b\x8b\xa1\xcf\xd8\xef\xd8\x1a\xaa\xfa\x31\x62\x3a\x00\x2a\x0d\x35\x0d\x2b\x33\x80\x3a\x58\x80\x15\x1a\xe9\xb4\x82\x07\x0d\x07\x61\xc2\x93\x7b\x3e\x74\xc7\x7e\x20\x72\xb3\x33\x50\xaa\xdf\x81\x8e\xe1\x61\x39\xf1\x00\xfc\x5e\xc7\xb2\xf7\x7b\x09\x28\x4f\x51\x3f\x86\x84\xcc\xca\xc5\xdc\x42\xab\xf0\xeb\xfc\x24\x57\x55\x5e\x28\x58\xbd\xaf\xfc\xf1\x63\x20\x41\x5d\xea\xa9\xfa\x12\x92\x9e\x9d\x49\xf4\x07\xa7\x3e\x07\xa8\xc2\xcb\x34\xc5\xda\xbd\x5f\x7c\xc6\xe7\x3b\xac\x52\x11\x8f\x58\xdd\x55\xaf\xdb\xee\xcf\xbe\x8e\xfc\x67\xfe\xa5\x86\x17\x98\x1c\x8f\x45\xea\x6e\xf0\x2c\xd6\xab\x87\xda\xf0\xb9\xc6\x3e\xba\x6b\xe9\x1d\xfb\x43\x19\xd5\xc9\x85\x93\x62\xe0\x8f\xfe\xc1\xc7\x6d\x40\x2a\xc1\x7d\x05\x05\x92\x46\x28\x03\xe6\x5a\x3d\x54\xe9\x44\x9e\xf8\x66\x17\x38\x8f\x6d\x03\xa0\xe3\x53\x23\x64\xf0\x7e\x6f\x6e\x9d\x57\x05\xc5\xb6\xee\x70\xa9\x6c\xf6\x56\x4e\x97\xde\x8a\xaf\xf0\xd4\xa7\x4b\x2d\xe5\xc5\x3b\xe0\xaf\xae\x4d\x95\x1e\x3e\xed\x81\x14\x56\x73\x6f\x6e\x6d\xf0\xdd\xf6\x60\xed\x89\x98\xc8\x92\x72\x79\xb7\x13\xd0\xed\x97\x37\x18\xf8\xfe\xd6\xbe\xeb\x6f\xaf\x3f\xf8\xc9\x02\x7e\xed\xee\x87\xfa\xa4\x2f\xed\x78\x60\xee\x73\x6f\xd7\xf9\x5c\x91\x4a\xdb\xed\x52\xae\xcd\x68\xca\x0b\x3b\x42\x26\x88\xdd\xef\xe3\x8e\x3f\xbd\xf6\x6a\xb7\x66\x4e\xde\xc6\xc8\x3b\xfc\xf2\x06\x03\xd7\x26\x01\x35\x7e\x67\xe3\x7d\xfa\x07\xdf\xee\x65\x98\x6f\xd7\x3d\xd4\x77\x90\x52\xba\x93\x69\x7d\xea\xa7\xd6\x9d\xd0\x27\x7e\xef\xed\xda\x97\x53\xe2\xac\xa5\x01\xf2\x06\xed\xfe\x98\x24\x5a\xe7\xa9\x07\x69\xdb\xe9\xf5\xd0\xed\x87\xd7\x1d\x76\x1a\x88\x6a\xf7\x20\x8d\x3a\xfc\xf6\xba\xc3\x06\x13\x7e\x0f\xbb\xac\xd4\x62\x77\xf8\xd1\x41\xa6\x1f\x7d\x2d\x48\x3f\x42\x07\xef\x61\xbd\xe5\x98\x0f\xc5\x44\x67\x32\xd9\xc7\x6e\xf3\x98\x88\xab\xe8\xfb\xbb\x3e\xde\x5d\x7e\x76\xdd\x85\x57\x3a\x5d\xce\x5e\xbf\xa5\x99\xee\xe4\xb3\xeb\x0e\x16\x37\xd6\x0e\x3f\x98\xdf\xf1\xa4\xbf\x3f\xb5\x72\x1b\x9f\x5f\x7b\xa9\xb7\xd1\x89\x75\xd7\xc1\x24\x23\x91\x16\xd9\xae\x0f\x76\x97\x9f\x5d\x7b\xde\xbb\xfc\xf8\xda\xf3\x2d\x80\xe2\xbc\x03\xe9\xb9\xfe\xb0\xad\xce\xf9\xb0\x83\xcb\x65\x1f\xdf\xdc\xdf\x68\x67\x57\xd8\xff\xab\x5d\x5e\x5d\x63\xac\x61\x71\xd8\xa4\xfa\x58\x95\x2a\x61\xa4\xb3\x94\x95\xea\x0f\x93\xaa\x04\x10\xf5\x9d\xc5\x1a\xf8\x1b\xcd\x02\x13\x61\x0f\x5d\xfc\x81\xef\x09\xc3\x54\x23\x6e\x58\xed\x23\xdc\x40\x22\x1b\x24\x8d\x48\xc5\xa6\xba\xc8\x63\xd3\xbd\x6a\xf1\x05\x70\x69\x60\x16\x49\x88\x87\xf8\xc7\x63\xcd\x04\x3e\xd3\x67\xff\xa1\x0b\xc4\x89\x0c\x90\x60\xe8\xb8\x11\x39\x3e\x1f\x88\x5c\x27\x59\x31\x94\x98\xa6\x8e\x9d\x7f\xf5\x8a\x7d\x0a\x6d\xf9\xe0\xd6\x3b\xec\xd9\x2f\xd3\xcb\xab\x4f\xfe\xb3\xf8\x15\xf6\xcf\x5b\x75\x6b\xc3\xf4\xde\x4c\x27\x02\x18\x50\xfe\xf6\xdf\x46\xab\x77\xb7\x67\x3d\xa9\x32\xa9\xc4\xed\xd9\xdf\xdc\x63\xbf\x4c\xaf\xf0\x5b\xe1\x79\xdf\x54\x78\x7a\xec\x7f\x87\xc7\xff\x85\x9f\xc4\xbf\x5c\xd6\x3e\x77\x89\x89\x72\x21\x23\x3e\xbc\xce\xf1\xcf\xf8\xb6\x1f\xc8\xc7\x6f\x3b\x19\x48\x6d\x2d\xb7\x38\x9c\x2f\x98\xa7\xf7\x28\x73\x81\xa1\x78\xc8\x7c\x84\x84\xa5\x4c\xeb\x7b\xc8\xc4\xb0\x23\x24\xec\xbd\xc7\xfd\xf7\x0e\x3f\x72\x0b\xa7\xed\xf6\xec\xdd\xed\x59\x65\xf0\xb7\x67\x3d\xfc\xb1\x2c\x0f\x82\x47\x1e\xde\xc4\x5f\xca\x51\x84\x96\xaa\x6d\xf9\xf1\x84\xa7\x6d\xa5\xdb\xef\x6e\xcf\x06\x5a\xfb\x5f\xfe\xd5\xf3\x83\xb8\xd6\x98\x6f\xe5\xe9\x28\xfe\x0f\xfb\x20\xb0\xca\x05\x52\x0f\x21\x05\xc9\x8d\x9f\xe9\x9c\x4d\xf9\x18\x80\xcc\x0b\xe5\x83\xb8\x21\x29\x0c\xd2\x3c\x43\x99\x08\xe0\xb9\xd7\xce\x4b\x75\x75\xfb\xec\x06\x41\x6f\xa0\x65\x08\xb3\xf3\x47\x9c\x35\x8f\x72\x05\x1c\x34\x88\xa0\xa5\xb4\x65\x85\x72\x3b\x25\xd0\x4b\x21\xbb\xae\x15\x00\x36\x0f\x35\x20\x93\x29\x7b\x81\x5c\xb5\x93\xfb\xe1\x2b\x2c\x68\x72\xd3\xf6\xb2\x04\x96\x9f\x3b\x88\x00\xd9\x8f\x3b\x25\xec\xc3\x73\x13\x2a\xfe\xaf\x93\x91\x18\x23\x2c\x6b\xd9\x1a\x1b\x14\x2a\xb1\xfe\x8e\x31\x96\x43\xbd\x2b\x5e\x1d\xb0\xd8\xd8\xcb\x72\x07\x78\x26\x1d\xa9\x6a\xb7\x4a\x8f\xd9\x22\xf7\xc4\xa6\x65\xf7\x42\x64\x3c\x80\x02\x4d\x27\x21\x2b\xcd\xea\x3c\x3e\x0c\x8f\x86\x39\x7c\x71\xf3\xe5\xc3\x97\x77\x01\xa4\x3d\xe1\x06\x20\x82\xe6\x50\xbb\xb1\xf6\x2b\xf0\xc1\xfa\x86\xe3\x19\xf9\xcd\xff\x7d\x06\xe5\x2a\x09\x60\x38\xbe\x07\x22\xed\xbf\x9c\x0f\x93\xaf\x93\x58\x50\x58\x99\xf5\xa5\xb2\xc6\xe6\xfd\x4f\xca\x7e\xc9\x91\x3e\x74\xc9\x7d\x5f\x79\xca\x73\xb2\x40\x5d\x74\x80\x4b\x82\x6b\x9f\x2b\x06\x69\x20\x0c\xc1\xa4\xe1\xe1\x3e\x63\xbf\x23\x79\x31\x4e\x3e\xac\x85\xce\x31\xcd\xc0\x6f\x5a\x48\x3d\x00\xc8\x46\x55\xf9\x0b\x60\xd1\x4e\x02\x5e\xb7\x06\xa6\x65\x53\x8c\x45\x00\x72\x52\x3e\x48\x1c\xb2\x5c\x01\x7c\x05\xe9\x8c\x9d\x1c\x02\xca\xa8\x41\x9d\x68\x00\x3e\x8e\x42\x26\xf6\x9c\x27\x50\x9d\xc4\x3d\x60\x63\xee\x51\x52\x1b\x93\x14\xa4\xb2\x17\x3a\xbf\x98\xe1\xe9\xdf\x28\x51\x21\x90\x00\x7e\x52\x03\xbd\x74\xda\x07\xba\x44\x46\xf1\x2f\x21\x52\x76\xcc\xed\xec\x43\x22\xcf\xa3\x38\xcf\x32\xf6\xc8\x7d\x09\xb0\x34\x21\xd7\x0a\x29\x61\x2b\x8f\xaf\xce\x5d\xb8\x2b\x64\x96\x7e\xe0\xb6\x7d\xf0\xbc\x54\x4a\xce\x12\x3d\x9e\xc8\x06\x90\x8b\x56\xa8\xb6\xd2\xbe\xd7\xe3\xb1\x9c\xcb\x9b\x68\xf9\xf2\x4d\x2e\xc4\xb5\xdd\xb0\xe3\x43\x69\x17\xd4\x7f\xb6\x7a\x5b\x3f\xe1\xe5\x31\xff\x6f\xbd\xd1\x84\x8d\xa5\xda\xec\xc5\x49\xc6\xad\xdb\x12\x5d\xa7\x47\xe0\x48\xe6\x7a\xd8\x3c\xcd\x8d\x2b\xbf\x68\x45\x7b\x4d\xfb\xb3\x71\x01\x9a\x36\x63\xd3\xd0\x83\x7e\xbc\xce\x55\x7a\x5f\xdc\x89\x0b\x3e\x1c\xe6\x62\xc8\xad\xce\xcb\xa4\xa3\xd9\x00\xee\xc3\x9b\xfe\xe5\xd5\xa7\x6b\xc4\xec\x5d\x72\xc2\xcb\x87\x66\x92\x90\x30\xb3\x7b\x0e\x6c\xed\xcf\xce\x6c\xf8\x6b\xa0\x10\xad\x21\xa1\xde\x06\x73\xa0\x0f\xb6\xc5\xed\x19\x15\x3d\x1f\x74\xd1\x33\xd5\xb6\xee\xa9\xb6\xb5\xf3\x32\xd2\x0a\xfd\x65\xe3\x27\xcd\x44\x24\x6b\x7d\x6e\xb3\x6b\xe6\xda\x7d\xa6\xb7\x64\x3b\xb9\x07\x2a\xa4\x52\x95\xfa\x10\x60\x93\xd3\x01\xb6\x1f\x30\x87\x61\x8d\xfc\x5f\x3c\x77\x02\x5e\x4a\xeb\x54\x5a\x6e\x63\x94\x0d\xa5\x85\xcd\x05\x9d\x71\xa4\xa9\xc8\x25\xe2\x12\x36\xd4\xfb\x5d\x5e\x7d\x9a\x1f\xd8\x9c\xb8\xdb\x5e\x3e\xdf\x3a\xa9\x3f\x15\x91\xd2\xca\xeb\xb5\xcc\x05\xb4\xd9\xec\xbf\x0f\x78\x43\xad\x64\x5a\x7c\x3a\xe6\x60\x9b\x7a\x0a\x29\xce\x7f\x90\x80\x48\xfb\x55\x0a\x3b\xb8\x8d\x56\x0b\xb1\x8c\x1b\x7b\x93\x73\x65\xe0\x53\x37\x3b\x26\x21\xfe\xcc\x8d\xc5\x3c\x67\x8f\x08\xec\x47\x6c\x63\x8f\x02\xec\x9d\x56\xb1\xac\x01\x20\x12\x20\xd3\x75\x11\xa3\x75\xab\xc2\xc0\xbf\xd4\xcb\x02\xfd\x4b\x55\x0a\x8e\x58\x99\x04\xdb\x3d\x83\xbe\xc6\x8e\x6d\xab\xe2\xef\x37\x00\xe4\xec\xb9\x01\x5f\x3c\xea\x3c\xed\x95\xb2\x21\x60\x3e\x04\x82\xa2\x38\x5f\xe7\xa6\x83\xde\xad\x53\xee\x2d\xcd\x1c\x40\x41\xa5\x3b\x20\xe4\x9c\x84\xbb\x01\x28\xbe\x9f\x78\x66\x44\x8f\x79\x0b\x7d\x13\x6a\xec\xd5\xe4\xf2\x55\x5a\xf9\x50\x1b\x57\xef\xd3\xa6\xc5\x07\xed\x52\x99\xfd\xe4\xed\x4e\x2d\xfe\x2c\xcd\xb2\xd4\xfc\xfa\x83\xa8\x06\x65\x1e\x5c\xbc\x72\x69\x10\xc2\xcf\x31\x28\xbb\x4d\xf5\x8a\x1b\x15\x31\x6e\x68\x81\x55\xbe\xb0\x76\x45\x23\x29\xea\xa7\xa2\xa8\x47\xbc\x97\xb5\x2f\x4b\xdc\xaa\xab\xee\xc6\xbd\xab\x85\x70\xa5\xee\x49\x35\xbc\xae\x5b\x39\x8b\xaf\xf3\x6e\xcc\x10\x4f\xea\x0c\xdb\x16\xf8\xd0\xb0\xb0\x0d\x4b\x30\x01\x42\x7a\xaa\x0b\x28\x5b\x0b\x5c\x7f\xa9\x44\x54\xdf\x4a\x0a\xa2\xbb\xd3\xf1\x9f\xed\x5c\xa3\x09\xff\xb1\x50\x69\xb6\x4a\x94\xbf\xbf\xc4\xc7\xf0\x4a\xb8\xfa\xf8\x0b\x00\x83\xa4\x22\x65\xef\x2f\xd9\x1d\xfe\x54\x09\x56\x54\xc8\xa4\x3c\xdf\x9c\xa8\x5b\x26\xe7\x08\x2c\x08\x00\x24\x65\xe7\x01\x20\xa1\x50\x95\xda\x53\xcf\x8b\x6a\xf3\xc2\x58\x96\x6b\x6d\x4d\x00\xae\x28\xc9\xe4\xdd\x8c\xb8\xaf\x2d\xac\xe5\xbc\x9b\x5a\xb1\xfe\x69\x6d\x53\xf6\x0d\xce\xab\xa0\xe2\xb8\xd1\x61\x0d\x38\xb8\xde\x2b\xe8\x89\x80\x78\xb8\xc1\x85\x01\xad\x5d\xe5\x52\xe7\xd2\x4e\x7f\x91\x4a\x8e\x8b\x39\x07\x67\x53\x8f\xaa\xaf\xa8\x62\x1c\x3a\x38\xf1\x7f\xc6\xae\x61\x57\xbd\x10\x07\xc6\x07\x6e\x59\x26\xb8\xb1\x7d\xf6\x17\x39\x1c\x89\xbc\x7c\x61\x2c\xb8\xaa\x14\x41\x0e\xc3\xb0\x27\x80\xdf\x9b\xd7\x79\x25\xb4\x1b\x71\xa6\x1f\xab\x0d\x68\xe5\xa4\xf9\xaf\x3a\xf8\xef\xb1\x26\x2e\x04\xd0\xa3\xde\x81\x0d\x8f\xe5\x70\x14\x88\xeb\xa6\x50\xb6\xc8\x46\xd8\xa1\xc6\xd1\x79\x46\x08\x53\x00\x1c\x43\x20\x93\x1a\xe9\x2c\x74\x74\x28\xc0\x03\x39\xaa\x0f\x2a\x50\x25\xca\x31\xcf\xa7\xcc\xe8\x1c\x34\xb2\x3b\x6e\x80\x48\x6f\xfe\x53\xe3\x02\xb8\x42\x53\xe1\x86\x0b\x6d\x19\x1b\x28\xe8\xac\x86\x01\x1b\xcb\x5e\xbc\x7d\x1d\xea\x05\xdf\xbc\x7e\x19\x88\xb0\x9c\xc6\xdb\xf8\x15\xac\x49\x9e\x8c\xf8\x9d\x00\x56\x25\x20\x1d\xe5\xb9\x34\x25\x8e\x88\xaa\x00\x3b\x07\x15\x8c\xbd\x78\x78\xd3\xbf\xe3\x79\xf8\xd4\xc3\x9b\xfe\x40\xeb\x97\xec\x77\x71\x9e\x96\xc5\x87\x33\xb1\xe1\x77\xec\x0f\xfe\xd2\x65\x2f\x3c\x86\x5d\x99\xd8\xf0\xd2\xad\xfe\x9b\x3f\xbd\x7e\xfd\x1a\xae\xa9\x2b\xce\xaf\x85\x61\x2f\xbe\x4c\x84\xba\x1e\xc9\x81\xed\xb1\x0f\x42\xba\xa7\x80\x35\x28\x56\x37\xfa\x90\xaa\x0f\x1e\xbe\x7d\xfd\xfa\xb5\x59\x74\x0a\x37\xad\xa8\x96\xca\x88\xa4\xc8\xc5\xf5\xbd\x9c\xdc\x7c\xbe\xfe\xab\xbb\xdf\xa6\xab\x0a\xd8\x9b\xde\x09\xd7\xa5\x61\x37\x9f\xaf\x17\xde\x99\x9e\x58\x6b\xfe\x9a\xae\x9c\xe7\x92\xba\xcd\xd8\x5c\xab\x61\x06\x6d\x27\xba\xc8\x39\x30\xa6\x40\x1e\x46\x89\xd8\x0a\x73\x53\xde\xa0\x48\x4d\xb9\x09\xb6\xb9\x99\xf3\xbe\xb3\x4e\xd5\x4b\x2f\xce\x4a\xb2\x83\xa5\x3e\x29\x6f\xae\x78\x10\xd3\x00\xea\x5e\xe1\x5c\x71\xbf\x46\x28\xcb\xf2\xee\xef\x33\xf6\xc9\x57\xfd\x97\xd3\x0c\xd4\x12\x4e\xdc\xb1\x3f\xfe\xf1\xfb\xc0\x2f\x5c\xf9\x04\x30\x2e\x23\xda\xac\xbf\x8b\x04\x1b\x71\x95\x66\x81\xed\xb7\x76\x03\x87\x98\xba\x34\xf8\x90\x48\x41\x0a\x67\xd9\x14\x0f\x5d\x6d\x25\x05\x20\xae\x7a\xee\x10\x39\x9e\xb8\xd5\x14\x99\x9b\xae\x38\x1a\xe5\x76\x71\xe6\xdb\xca\x59\x32\xe2\x52\xf9\xad\x1f\xc1\xa9\x17\xf8\x3d\x1e\x5a\x19\x68\x7f\x2d\x3b\x1c\x06\x52\xf2\xe3\xcd\xc8\x91\x3e\xab\x13\xce\x63\xee\xc6\xfa\xd2\xc5\x7f\x20\xdc\x71\xed\x7a\x18\x9e\x0e\x28\xfd\xd8\xdf\x48\x3a\x1c\x2e\xf2\xea\x00\xa4\x32\x32\x85\x2b\xcc\xa9\xf3\xb0\x3e\x7d\xc6\x02\x2f\xd8\x10\x92\x01\x72\xc4\xd3\xfa\x87\xc8\xf5\x8a\x7b\x79\xa6\x1f\xf3\x57\xf2\xe2\xbb\xf8\x5a\x02\x5c\x97\x3d\x37\x95\x3e\x71\xec\x91\xe7\xed\xc5\xeb\xdc\xc3\x2c\x98\x31\xcf\xb2\x1e\x9b\xe4\xfa\x8e\xdf\x65\xd3\x70\xcb\xbd\x79\x6d\xc0\xea\x80\xa4\x08\x3d\x60\xe2\xef\x45\x85\x80\xc9\x8b\x17\x29\x3c\x51\x6d\xf8\xbb\x37\xa3\x66\xd5\x23\x77\xdf\x17\x1e\x0f\xc3\xf3\x6b\x63\xd7\x78\x98\x29\x7f\x16\x66\xda\x91\x86\xdd\x9e\xc1\xd9\x76\x57\xfb\xed\x59\xc9\x74\x0b\x33\x86\x30\xcc\x4a\xab\xfa\x53\x33\xad\x98\x9e\x57\xda\xdc\xad\x1e\xe6\x31\x13\xdf\x64\xa2\x87\x39\x9f\x8c\x02\xcf\xdf\xed\xd9\xcf\xf3\x6d\x00\x3a\x6d\x6e\x83\x0e\x7b\x7b\xf6\xe0\x7a\x81\x1c\x64\xb9\x3b\xf8\x9e\x3c\x06\x68\xca\xfc\xc4\xbe\x40\xa2\x87\xff\xd6\x51\xf6\xbf\xf4\xaf\x54\x58\x70\xd1\x89\x05\xa3\xbc\x3d\x03\xe1\x18\x50\x0a\xef\x84\x75\xff\x06\xf2\x6b\x74\x36\xd6\x1b\x96\xaa\xd2\x30\xec\x23\x23\xa0\x33\x06\xf4\x68\x9f\x71\x74\x37\x65\x7f\xbe\x64\xb7\xc5\xeb\xd7\xdf\x0b\xe6\x9a\x0c\xff\x86\x6f\x01\x14\x47\x2e\xdc\x23\x70\xb3\x85\x19\x83\x61\x2a\x1d\x18\x8f\x41\xdb\xe0\x06\xdf\xd7\x39\xbe\xfb\x32\x52\x5e\x29\x50\x88\x50\x96\xab\x61\x7d\xc8\x7e\xc4\xb5\xde\x22\x1d\x20\x9e\xe8\xd0\xdb\xe0\x1a\x0a\xf3\xfd\x8e\x3d\xbc\x79\xdd\x63\x0f\x6f\x7b\xec\xe1\x8d\xfb\x7f\x58\xcb\xe9\xfe\xf5\xda\xfd\xeb\xfb\x1e\x7b\xf8\x1e\x72\x26\xdd\x9f\x7c\x21\x13\x3c\x07\xff\x7c\xdb\x63\x03\xad\xdf\xe0\xff\xff\xba\x1b\xe0\x93\x96\xb6\x66\xa3\x1e\xbb\xe4\x26\xda\x9d\xc7\x6e\x25\x52\xf7\xec\xa3\xeb\xc7\x60\x56\x9b\x60\x4d\xcc\x08\x4d\x7d\x79\xef\xd1\xfe\x82\x6c\x2d\x83\x0e\x13\xe9\x3b\xd9\x01\xa8\xd6\x53\xc3\x28\x2d\x1d\x53\xb5\x9f\x56\x71\xf0\xcd\x78\x76\xd7\x27\xe1\x5b\x15\xfe\x7a\xea\x8e\x9a\xd3\x9c\x96\x73\x1f\x54\x1f\x85\x5c\xb3\x39\x1d\x2a\xac\xa7\xd3\x43\xe6\xeb\x8e\x16\xee\xa5\xb6\x44\x31\x5e\xcf\xa8\xda\x16\xa6\x29\x0e\xb7\x1d\xb6\xd4\xca\xd7\xf1\x0f\x4f\xed\x82\x53\x1c\xd7\xc6\xb4\x02\x6d\xb3\xc2\x4b\x2f\x23\x04\xa9\x36\xa8\xf6\x8b\xbb\x91\xd6\xf7\x91\xa9\xc9\xad\x8b\xd3\x4e\x9d\xba\x79\xc7\x93\xfb\x47\x9e\xa7\x78\xc9\x5b\x79\x27\x33\xb0\x29\xff\xe6\x5a\xfd\x5b\x05\x0a\x8b\x7b\x96\x41\xf8\x5a\x90\x56\x6f\x2e\xfe\x9f\x7f\xfb\xb7\xef\xff\xcd\xe3\xb0\x1a\xf9\x20\x66\x61\xbd\xba\xba\x90\xbb\xdd\xe7\x20\x5d\x28\x0f\x88\x42\x23\x94\x07\xf4\x2c\xc2\x0b\xfb\xcc\x03\x9a\xbd\x6b\x4e\x38\x19\x68\x6e\xa8\x94\x11\xb4\x3c\x23\x68\x9d\xca\xb0\x27\xac\x03\xe5\x06\x51\x6e\x10\xe5\x06\x51\x6e\x50\x67\x17\x0a\x25\x08\x3d\x1f\x2d\x78\x1f\x09\x42\x73\xf6\x59\x4b\x67\x0c\xa9\xf1\x27\xad\xc6\x3f\xf7\x2c\xa1\x1d\xa9\x8b\x94\x2f\x44\xf9\x42\x94\x2f\x44\xf9\x42\x94\x2f\x44\xf9\x42\xcf\x21\x5f\x08\xe5\x1f\x25\x0d\x51\xd2\xd0\x8a\x1e\x52\xd2\x10\x25\x0d\x51\xd2\x10\x25\x0d\xe1\x6d\xd2\xd2\xf4\x3c\xb0\xa4\xa1\x05\x31\x1a\xca\x1c\xea\xc4\x51\xf5\xbc\xd3\x87\x16\x28\x52\x94\x43\x44\x39\x44\x07\x9b\x43\xf4\x9d\x7f\xe2\x4c\x56\x11\xbf\xce\xac\xb4\xe0\x1c\x02\xe1\x8f\xe7\xcb\x7f\xb7\xee\x92\xeb\xbf\xf9\x53\xff\x8f\x67\xb1\x91\x09\xb7\xa3\x72\x1b\x9e\xbd\xe2\x13\xf9\xaa\xba\xff\x87\xc2\xce\x5d\x7d\x00\x9e\x56\x93\x19\x10\xf1\x98\x64\xde\x32\x7b\xf5\xdf\x66\x96\x5e\xac\xfa\xeb\x94\x8f\xb3\xc5\xbf\x3e\xa8\xb4\x5f\x21\xd2\x9b\xe4\xda\xea\xbb\x62\x50\x4e\xd3\x7f\x56\xb6\xce\xcc\x36\x19\x0a\x5b\x52\xf7\x56\xb5\xda\xaa\xad\x7b\x16\x79\x13\x3f\xa5\xfe\xa5\xf7\x3a\x17\x65\x20\xa6\xf6\x70\xc0\x8d\x3b\x88\xe1\x06\xce\xdd\x39\xa9\xf3\xf6\xf5\xeb\x79\x91\x31\x4b\xe9\xf6\x73\xad\x17\x0c\x41\x81\xc7\xb3\xee\x6e\xf6\x44\x97\x77\x75\x1e\x6b\xcd\xfe\x6b\xa1\x80\xf9\xe3\xeb\x37\x2b\x7b\xff\x9b\x0a\xa8\xd1\x22\xad\x89\xaa\x66\xfb\x1b\x80\x1e\xe7\x16\x0d\x3c\xb6\xcd\x53\x6b\xf9\x70\xee\xf1\x44\xe7\x15\x59\xf4\x9f\xdf\x55\xbf\x18\x64\x0e\x1c\x98\x87\x37\xa7\x72\x66\x9a\xc2\x6e\x0b\x0e\xcc\x5f\xdf\x5c\x5e\x7d\xfa\xda\xf4\x3c\x9d\x99\xf5\xcf\x4c\x98\x48\x08\xa8\x9c\xc0\xb9\xf9\xaf\x6a\x89\xf8\xf2\xa3\xe3\x84\xb0\x56\x42\x59\x4c\x0d\xa8\xad\x54\xfb\xb3\xf4\x87\x57\x7f\x68\xb5\xdf\xd1\x4e\xc3\x40\xbe\x53\x5d\x80\x9b\xf9\x7d\xe8\xc2\x5c\x02\xd8\xec\xe6\x77\xaf\xe3\xee\x5f\xf2\xce\xbe\x0e\xc0\xc2\x17\xdc\xc7\x7e\x30\x36\x17\x7c\xfc\xef\x8f\xf3\x3c\x3d\x2d\xda\xae\xbf\x7d\xd8\x27\xad\xef\x36\xa0\x3b\x57\x33\x4b\x74\x9a\x67\xab\xf2\x42\xcd\xb8\x42\x9e\xe5\xb0\x67\xcf\x16\x3d\xd6\x18\x2c\x6e\x0e\x11\x37\x07\x83\x17\x9f\x83\xd5\x98\x11\xa5\xaa\x3b\xe1\x39\x1f\x0b\x2b\x72\xb3\x38\x56\x3d\x33\xfd\x80\xd3\x0b\x78\xf6\x3f\x6a\x7d\x3f\xe6\xf9\x7d\x25\x1b\x01\xf6\x29\x32\xef\x1a\x1f\x16\x98\x4e\x04\xbb\x3d\xfb\xf1\xcb\x97\x9f\x7f\xb9\xfc\xfa\xf3\xed\x59\x99\xf7\x00\x86\x43\xaa\x01\x94\x5a\x8e\x27\x99\x18\x3b\x9b\xfd\x2e\xb6\x0a\x79\x11\x43\x85\xc4\xdb\xd2\xb0\x41\xc6\x31\x48\x5c\x3e\x02\x7e\x2b\xf7\x96\x0f\x6b\xc5\xe8\x69\x2a\x4d\x92\x0b\x9f\xec\xe5\x03\x6f\xde\xc0\x70\x9f\xe3\xc6\xdd\x66\x33\x0d\xe5\xc2\x16\xb9\x12\x29\xa4\x2a\xaa\x69\xb0\x7d\x12\x4c\xd4\x79\xe0\x59\x8f\x29\xe0\x4d\x06\xf7\xdb\x34\x34\x52\x7e\xd7\xfb\x16\x05\xb8\xde\xa6\x2c\x8c\xd9\x33\x11\xa7\x05\xb8\xb9\x38\x33\x02\x29\x52\xd1\x6b\x89\x81\x12\xe8\x14\x4e\x5f\xaf\x4a\xf8\xed\x7e\x85\x29\x48\xa3\x93\x73\x20\xb8\x2d\x72\xc1\xc0\xf7\x3e\xb3\x10\xbe\x25\xa1\x9c\x5a\x01\x80\xcd\x31\x0e\xbc\xa8\xd9\x19\x3f\x08\xac\xf1\xdf\x0b\x91\xcf\xf8\x1c\xbc\x95\xdc\xb4\xfc\xcb\x23\x35\xb5\x1f\x0b\x48\x1e\xfc\xe4\x9d\x2d\x36\x2f\x44\xd3\xa1\x5d\x9a\x48\x87\x49\x73\x56\xaa\x42\x78\x87\x68\xc5\x72\x34\xc2\x62\x80\x0a\x19\xd9\x21\x80\x3e\xd6\xb0\xb6\xa6\xc8\x6c\x25\xb9\x26\x84\x36\xd0\xdf\x0d\x53\x83\xc9\x3c\x65\x20\x01\x33\xc3\xd2\x5e\x8c\xdc\xba\x95\xd7\x2a\x9b\xc6\xa0\x55\xec\x08\xbe\x0a\x8d\x73\x36\xc9\xc5\x03\xf0\x0e\xc0\x34\xfa\x4f\xe3\x69\x40\x36\xf2\x84\x67\xfe\xb7\xf2\xfc\xc5\x98\x63\x88\xd3\x60\x93\x7a\x10\x3f\xf2\x32\xf8\x4d\x43\xff\x2a\xb9\x62\x7c\xb6\x2b\xd2\x9d\x2c\x81\xbb\x21\xa6\x91\xc5\x2d\x14\xad\xfa\xb9\xd7\xdc\x1b\x40\x2a\x2f\x72\x6f\x84\x3f\x8e\x04\x38\x91\xd3\x02\x9c\x2c\xe2\xdb\x44\x7a\xfe\xfb\x17\x43\xa1\x44\x0e\xee\xe8\x81\x7c\x80\x5f\x07\x72\x60\x05\xfa\x6d\x0b\x2b\xcc\x4b\x84\x12\x4f\xb4\x1a\xc8\x61\xe1\x5f\x4b\x46\x5c\x0d\x45\xd5\x8b\x80\x9b\xb3\x7e\x8a\x50\xac\xa5\xc1\x73\xfe\xc7\x37\xaf\x59\x50\xd6\x3e\xba\x2e\x88\x14\xe9\xf1\x99\xd5\x43\xec\xa0\x7f\x32\x8e\xc8\xea\x7b\xa1\xe2\x90\x7d\xfe\x94\x12\x02\x1c\x47\x4e\x9f\x91\xc6\xba\x3f\xb9\x7b\x1a\x22\x03\x10\x6d\xcb\x05\x7a\xec\xed\x48\xc8\x1c\xdd\xcb\xae\x61\x5d\xd8\xfa\x8a\xc3\x39\xea\xb3\x2f\xee\xd3\x8f\xd2\x78\xb2\x82\x40\xf1\xcf\xa7\xe1\x1a\x40\x0f\x3c\xb4\xe3\x6f\xc9\x10\x2e\xf5\x3d\x74\xcb\x23\xc0\x3f\x1a\xff\xee\x06\x0b\x83\x5b\x39\x2d\xd0\x2e\x74\x18\x42\x7c\x61\x73\x03\xa8\xff\xbd\x98\x22\xe8\x7f\xfc\xb3\xcf\x3b\x34\x8a\x4f\xcc\x48\xdb\x10\xd8\x70\x97\x81\xaa\x4c\x48\x7c\x3e\x6e\x64\xdf\x7d\x3c\x42\x17\x51\x8f\x83\x0b\xdc\xdd\x9c\x1e\xe1\xbe\xc7\xc6\x9e\x9d\xbc\xe7\x16\x3e\x45\xd2\x71\xc6\x07\x18\xbb\x0a\x14\x08\x33\x93\x81\xb1\x1e\xf0\xea\xa4\x78\x67\x01\x89\x81\x57\x6b\x7a\x8c\x1b\xd8\x90\xee\x7f\x71\x51\xee\xc5\x14\x2f\xec\xb2\xe1\xdb\xb3\x30\xe4\xdb\x33\xa4\x27\xa9\xdd\x75\xee\x14\xc4\x74\x21\xbc\x20\x50\x52\x49\x03\x97\x50\x29\x23\x60\xe5\x60\x03\xf8\xdb\xb8\x3a\x7b\x38\x09\xb0\x07\x43\x2c\x32\x24\x00\x7a\xc9\x71\x37\xad\xae\x98\x3b\xaf\xee\xd3\x63\x69\x0c\x48\x04\x9c\x1e\x54\xf9\xcc\xba\x37\x6f\xd8\x7a\x4b\x5d\x7d\x1d\xdf\xb6\x97\xcc\x88\x4c\x24\x16\xce\x19\x9c\x8d\x5c\x26\x78\x12\x42\xe4\x25\x8e\x3d\xec\x0a\x9c\x03\x99\xe3\xf4\x9b\xe8\x0a\x84\xf4\x57\xf1\x20\xf2\x29\xe4\x5c\xac\x3b\x7c\x68\xed\xda\xf7\xe6\x68\xe6\x20\xe3\x77\x22\xeb\x6c\x0e\xa0\xb5\x7d\xcc\x41\x26\xc7\xd2\x27\x68\x8f\xf9\x37\x39\x2e\xc6\xc1\x2f\x0b\xa3\xf7\x16\x08\xce\x8f\x9b\x0a\x5f\xef\x08\xf3\x93\xf0\x2c\x83\x6b\x18\x04\x31\x04\x5a\x98\xf8\x06\x97\xee\xbc\xea\x84\xf3\xfa\xb7\xb0\xd7\xff\xe6\xcf\xb0\x17\x16\xd0\x5e\x48\x18\x85\x3a\x0b\x7f\x00\x23\x1d\x44\x88\x1a\xc7\xbb\xd4\x80\xeb\xde\x59\x2b\x51\xe8\x62\x2f\x9d\x7a\x20\xca\xdb\xd2\x7d\x1a\xc7\xe2\x96\xc9\x29\xa9\x16\x93\x12\x19\x8e\x1d\x85\x2d\x8e\x4d\x3c\x86\x58\x3c\xde\x54\x70\x93\xb9\x8b\x6e\xac\x0b\x65\x31\x88\xef\x46\xf9\xa2\x98\xb8\x8f\xfd\x43\xe4\x1a\xff\xf2\x32\xdc\x6e\xa8\x11\x72\xb8\xd0\xc3\xdb\x61\xef\x40\x60\x58\x66\x16\x02\xcd\x18\x25\x4b\xa3\x0a\xe2\x55\x9d\x9a\x16\x82\x19\xc5\x49\xb5\xa6\xa0\x22\xa3\x20\x11\xd2\xa9\x18\x63\xa9\x44\x94\xe6\x35\xa5\x08\xee\xd2\xe0\x8c\xaa\xe7\x25\x27\x23\xad\x8d\x80\x5b\xcc\xea\x70\x87\xfa\xb5\x70\xd3\xc2\xf3\x61\x01\x6a\x3b\x07\xa1\x04\x03\x82\x49\x72\x63\xf3\xfd\xa9\xf9\xb9\x70\x76\x3f\x0d\x58\xdc\x52\xa5\x32\x12\xf4\x9b\x99\x01\x48\xc3\xc4\x78\x62\xa7\x75\x45\x2c\x6a\xdf\xdc\x3a\x9d\x65\xd9\x80\x96\x09\x03\x39\x98\x11\x05\x28\x3d\xe2\xbe\x1c\x16\x3c\xe7\xca\x0a\x51\xc9\xef\x0b\x2b\x15\x8f\xfd\x23\x52\xa4\x40\xba\x66\xe8\x7b\x14\x6c\x51\xe5\xb3\x9a\x49\x63\x0a\x6f\x04\x48\x35\xcc\x44\x79\x42\xa2\x96\x11\x36\xdc\x85\x67\xfe\x30\xce\xea\x88\x9f\x5c\x4f\xd2\x06\x21\x0b\x36\x86\x29\x44\xda\x28\x6e\xc1\xd6\x29\xee\x8c\x7b\x58\xd9\x38\x82\x34\x9a\x75\x95\x7c\x2e\x3d\x16\x56\x8e\x85\x61\x31\xb3\xd1\x9d\xc2\x19\x8d\xaa\x54\x30\xdc\x8a\x0a\x65\x8a\x3c\x4c\x1f\x0f\x2a\x92\x1f\x9c\x9f\x35\x1c\x32\x1c\x4c\x50\x86\x30\xad\x04\xb2\x88\x0a\x75\x8f\xbc\x3b\xcc\x5d\x9b\x2c\xe3\xf9\x30\x2c\x34\x9c\x78\x6c\x1e\x2d\x32\x23\x04\x6c\xbc\x89\x36\x46\xba\x0d\x17\x4a\x47\xdc\x86\xab\x9e\x2f\x9f\x27\x5f\xda\x64\xf0\x9d\x90\x4f\x50\x4d\x25\xa9\x65\x16\x62\xaf\x1f\xb9\xf1\x67\x2e\xda\x9d\xb1\x44\xac\xa6\xe1\xa0\xde\xcf\x8d\x5b\xe0\xa4\xc8\xe0\x8b\xb2\xdc\x36\x6b\xdf\xfe\xb2\xce\xaf\xd1\x10\xd5\xea\xf8\xda\xff\x34\x60\xe7\xee\xbd\x73\x9f\x8e\x01\x33\x51\xd8\x49\x61\x7d\x76\xab\xb5\x53\x36\xc9\xdd\xd7\xd7\x1e\x0d\xbe\xbd\x4b\x21\x06\x44\x46\xe5\x6d\xe3\x55\x68\x3c\xfd\x09\x64\x31\x99\x91\x7e\x34\xde\x40\xf1\x1b\x56\x27\x49\x91\xc7\x83\xc5\x6d\xb5\x84\xb1\xb2\x47\x78\xd4\x0c\xeb\xb2\x3e\xb4\x15\xb5\xc8\x3b\x31\x94\x4a\xf9\x34\xb0\x91\x34\x56\xe7\xd3\x3e\x9b\xe9\x1a\xa4\xc5\x4b\x63\xdf\xb1\x0b\x77\x41\x15\xca\x08\x5b\x59\x02\xbf\xb3\x2a\x5b\x09\xdb\xcf\xc5\x58\x5b\x24\xfc\xe2\x43\x51\xa6\x83\xfd\xbd\xd0\x79\x31\x86\x52\x42\x70\xa2\xfc\x80\xcd\x42\x92\xd7\x6b\xdf\xee\xa3\x08\x79\x7d\xfe\x02\x07\x0e\xb3\x47\xc1\x12\xcc\xa5\xc8\xa6\x98\x04\x2d\x15\x4b\x78\x32\x12\x70\x2b\xc5\xcb\xd1\xb7\x08\xf2\x5b\x43\x4a\x95\x13\x7a\x8d\x5d\x0e\x59\xd4\xee\xd6\x18\xe4\xc2\x40\x86\xd0\x50\x3e\x38\x4b\xe8\x61\xdd\x4d\x34\xa3\x8e\xef\x72\x37\xdd\xc8\xb1\x70\xf7\x75\xb0\xd7\xdd\x7a\xbd\x2a\x37\x93\xbf\x33\xe1\xcc\x62\xe8\x3e\x0d\x06\x70\x10\xd3\xb0\xe5\x72\x31\xe4\x79\x9a\x09\xe3\xc9\xc5\xa6\x8c\x27\x56\x3e\x40\x52\x78\xce\xa4\x0a\xff\xb5\xee\xcc\x58\xec\xde\x35\xe4\x56\x2f\x70\xd1\x6c\xe9\xd6\xf8\x1d\xed\x26\x9d\x97\x27\x09\x33\x44\x43\x9d\x70\x5a\x06\xbc\x40\x42\xf8\x1d\x67\x47\x62\x8c\xb2\x04\xbd\xde\x30\x21\x69\xda\xf3\xb7\x75\xcf\x3f\x3b\xc6\xac\x3d\x5b\xb1\xa4\xd8\xb5\x4f\x86\x9f\xd9\x0f\xeb\x4e\x5a\x83\x93\x7e\x63\x77\x96\xff\xd7\x7f\xb6\x0b\xbe\xbc\xfa\xa7\xeb\xc3\xbf\xb6\x1a\x83\x81\xf3\x5f\x77\xff\xb4\x8f\xc0\xb8\x97\x0f\x36\x02\x73\x9c\x81\x91\xe7\x18\x14\x71\x9b\xfa\xf4\x62\x22\xd5\x9c\xb0\xa5\x9d\xc0\x1b\x68\xc2\xed\xa8\xf9\x02\x82\xff\xad\xfd\x52\x49\x16\x75\xf7\xcb\x0e\x05\xdc\xb1\x28\x7f\x2b\x2e\x5a\x35\x90\xc3\x31\x9f\xec\x22\xbc\x9d\x7b\x65\x72\x3e\xce\xed\x3a\xf1\x0b\x9f\xb4\x8c\x70\xfb\xa7\x7f\xd2\xf9\x65\x96\xc5\x14\xc0\x83\xb8\x69\x29\xd6\x3d\x7b\xa5\xfb\xc5\xa2\x28\x77\xc3\x63\x1d\xdc\xe8\xf3\x27\x87\xe2\xdb\x14\xdf\xa6\xf8\x36\xc5\xb7\x29\xbe\x4d\xf1\x6d\x8a\x6f\x53\x7c\x9b\xe2\xdb\x14\xdf\xa6\xf8\x36\xc5\xb7\x29\xbe\x4d\xf1\x6d\x8a\x6f\x53\x7c\x7b\x8d\x6b\xff\x58\x5c\x9c\x14\xdf\xa6\xf8\x36\xc5\xb7\x19\xc5\xb7\x8f\x25\xbe\x1d\xa0\x4b\xf7\x19\x75\xf9\x18\xfb\xd0\x26\xea\x12\x9f\xa6\xa8\xcb\xec\xac\x1f\x5e\xd4\x25\x2e\x16\x45\x5d\x1a\x1e\x7b\x72\xd4\xa5\xe9\xe4\x50\xd4\x85\xa2\x2e\x14\x75\xa1\xa8\x0b\x45\x5d\x28\xea\x42\x51\x17\x8a\xba\x50\xd4\x85\xa2\x2e\x14\x75\xa1\xa8\x0b\x45\x5d\x28\xea\x42\x51\x17\x8a\xba\xac\x71\xed\x53\xd4\x85\xa2\x2e\x14\x75\x69\xde\x4d\x14\x75\x59\x78\xce\x28\xea\xb2\x32\xea\x02\x1e\xd2\x7d\x86\x5c\x5c\x07\xda\x85\x5b\xdc\x93\x14\x6a\x99\x9d\xed\x03\x0c\xb5\xb8\x85\xa2\x30\x4b\xc3\x63\x4f\x0f\xb3\xcc\x9c\x16\x0a\xb1\x50\x88\x85\x42\x2c\x14\x62\xa1\x10\x0b\x85\x58\x28\xc4\x42\x21\x16\x0a\xb1\x50\x88\x85\x42\x2c\x14\x62\xa1\x10\x0b\x85\x58\x28\xc4\x42\x21\x96\x35\xae\x7d\x0a\xb1\x50\x88\x85\x42\x2c\xcd\xbb\x89\x42\x2c\x0b\xcf\x19\x85\x58\x56\x85\x58\x60\x5b\xe4\x30\x39\x7b\x8c\xb3\x7c\x76\xbd\xf8\xea\x7a\xd1\x2a\xd8\x52\x3e\x4e\x11\x97\xd9\x79\x3f\xbc\x88\x4b\xb9\x5a\x14\x76\x69\x78\xec\xc9\x61\x97\xc6\xc3\x43\xb1\x17\x8a\xbd\x50\xec\x85\x62\x2f\x14\x7b\xa1\xd8\x0b\xc5\x5e\x28\xf6\x42\xb1\x17\x8a\xbd\x50\xec\x85\x62\x2f\x14\x7b\xa1\xd8\x0b\xc5\x5e\x28\xf6\xb2\xc6\xb5\x4f\xb1\x17\x8a\xbd\x50\xec\xa5\x79\x37\x51\xec\x65\xe1\x39\xa3\xd8\xcb\xaa\xd8\x8b\x2a\xc3\x16\xfb\x0b\xbd\xc4\xd8\x49\xab\xc8\x4b\xe3\xd3\x0b\xfc\xc7\x6c\x85\xf7\x9e\x7c\xc8\x27\xec\x43\x5e\x72\xd0\xd6\xf0\x23\xaf\x38\x7a\xcb\x0f\xdf\x4c\x44\x69\xf9\x66\x24\x8f\x32\x79\x94\xc9\xa3\x4c\x1e\xe5\x53\xf3\x28\xb7\xbb\x87\x1b\xbd\xca\xcb\x95\xe7\x0e\xef\xde\x9d\xf9\x97\xdb\x4d\xc6\x62\x1f\xf3\x71\xcc\xc8\x3a\xde\xe6\x76\x33\xb2\xd8\xe3\xbc\xb3\x19\x21\xdf\x33\xf9\x9e\xc9\xf7\x4c\xbe\x67\xf2\x3d\x6f\xcd\xf7\xdc\x52\x16\xcc\xf9\x9f\x57\xf8\x92\x3a\x14\x02\xe4\xbb\x3d\x32\xdf\x6d\xbb\x2d\xb5\xcc\x7f\xbb\x33\x05\x63\xaf\x9e\xdc\x76\xf3\xb4\xc4\x9b\xbb\xc3\x33\x78\xa0\x7e\xdd\x76\x53\x38\xef\xdb\x7d\xaa\x8b\xa9\xd1\x03\x4b\xa9\xe7\x87\x91\x7a\x1e\xdd\xd5\x94\x79\xde\xf0\xd8\x93\x33\xcf\x9b\xa2\x01\x5b\x4e\x3c\x3f\x96\x60\xf4\x77\x33\x4b\x74\x36\xd1\xa6\xe3\xb8\x0e\x6a\xe2\x8c\xb7\x0a\xe1\xe0\xc3\x1d\x04\x71\x70\x16\xef\x74\xba\xf0\x8e\x6d\xfa\xcd\x29\xf2\x32\x17\xa9\x9f\xa7\x2d\x9e\xf4\x96\xa7\xbc\x85\xa2\xe9\x35\xec\x1e\x93\x2a\x75\x97\x63\x50\x28\x6b\xde\xb6\x6a\x2c\xe8\x4e\xb0\x89\xdb\xfa\xce\x98\xee\xb3\x4b\xc5\xa4\x42\x5f\xb7\xce\x59\xa1\xa2\xbb\x3c\x65\x69\x3e\xfd\x5a\x28\x96\xca\x5c\x38\x75\x40\x44\x1f\x2c\x68\x58\xce\x1e\xf2\x4e\xe8\x70\xa3\x7a\x97\x1f\x1b\x14\x39\x18\xcf\x93\x5c\x27\xc2\x18\xaf\x84\x56\x7c\x00\x7d\xf6\x57\xf8\x22\x38\x25\xc0\xd2\x70\x1a\xe8\x65\x96\xbd\x03\xb3\x24\xcd\xa7\x2c\x2f\x14\x33\x96\x3b\xc9\x1d\x6c\x31\xdf\x9c\x48\x37\x90\xa8\x38\x96\xfd\xe8\x6c\x60\x51\xff\xc2\x15\x1f\x8a\x1c\x7d\x43\xae\x57\xce\x30\xd7\x89\x04\x63\x27\x7a\x61\x38\x38\xd3\x74\xce\x9c\x2d\x6c\xa7\xd1\xfa\x1b\xf3\x7b\x37\x8b\x76\x24\x8c\x08\x1a\x8d\xd3\xf5\x42\xe4\x02\x9c\xf7\x77\x82\x81\x46\x07\x1e\x17\x9d\xb3\x37\x6f\xff\xe4\x9e\xcd\x79\x02\x21\x96\x4c\xab\x21\xea\x2f\xe0\x15\x71\xe6\x2b\x97\x0a\x6f\x21\xf0\x3a\x94\xcf\x82\xdb\xd9\x07\x80\xd8\xdd\x94\x81\x08\x78\xf7\xea\xd5\x50\x67\x5c\x0d\xfb\x3a\x1f\xbe\x9a\xdc\x0f\x5f\x15\x4a\x26\x3a\x15\xaf\xfe\xc7\x27\x73\xe5\x5a\xd9\xd8\x8d\xe9\x27\xa7\xcb\xe5\x39\x28\x85\xe7\xd8\xf4\x90\xb6\x3a\xc8\xdb\x16\x3a\xc8\x7b\xf4\xc4\x1c\x46\x77\xdf\xae\xec\xee\x65\x92\x88\xc9\x81\xf4\xf7\x94\x54\x3c\x50\x2c\x0e\x4d\xc5\xfb\x8e\x2d\xcd\x77\x79\xf5\xcf\xf8\xef\x7f\xbd\xba\x73\xf2\x55\x0d\x6b\x49\x30\x1b\x68\x86\x24\xb3\x5b\x29\xb9\x0d\xf2\x7a\xcb\x39\x72\xcf\x54\x4a\xb7\x2c\x66\x69\x92\xd0\x5b\x5e\x10\xef\x4a\xc6\x55\x50\x29\x73\xf7\x1c\x33\x89\x9e\x88\x1e\x33\x45\x02\xfe\x3c\x70\x83\x09\x3e\x46\x1f\xce\x24\xd7\xe0\xba\x6e\x1a\xe0\x84\xdb\x51\xf3\xf8\x54\xf3\xdd\xb1\xc4\x16\xd8\xf2\xc0\xc9\x78\x9c\x37\x1e\x7f\xc4\xdb\x77\x5d\xd3\x31\x6d\x78\xef\xc8\x4d\xc8\x30\xa2\xc5\x3a\x04\xa9\xbe\xdb\x98\xd5\x03\x52\x7c\xd7\xee\xec\x5e\xd5\xde\x35\x7b\x4b\x4a\x6f\x7c\x7c\x85\xd2\x3b\x7f\xb7\x75\xac\xf2\x62\xe6\xe2\x98\x4f\x6a\x4a\x2f\x06\xd1\xbb\xbd\xe7\xb1\x4d\x96\xe8\x2c\x13\x49\x08\x57\xbd\x87\xcf\xff\xc2\x27\x4b\x6e\x7d\x7c\x11\x6f\xfd\xf7\xf1\xed\xf2\xfe\x6f\x6c\x83\x32\xc1\x29\x13\xfc\xe8\x32\xc1\x37\x53\x47\x36\xbf\xbf\xc7\x3c\x19\x49\x25\xf2\x69\x7f\x72\x3f\x74\x7f\x30\xfd\xb1\xb0\xdc\xdd\xe8\x1f\xe0\xd0\x7d\x81\x83\x61\x3a\xf1\x64\x53\x5e\x3b\xe5\xb5\x53\x5e\x3b\xe5\xb5\x53\x5e\x7b\x93\x28\xd9\x6e\x78\x8a\x3c\x92\xad\x17\x6a\x9f\x51\x44\x2a\x3f\x68\x52\x1a\x62\x7a\x9b\x54\xcc\x60\xc6\x19\xbb\x13\x03\xd4\x9c\x63\x3a\x6a\xa9\x4a\xf8\xdb\x0b\xb6\x4e\xc5\x23\xab\xb4\xba\x50\x62\xc8\x61\x83\xfa\xd4\xb4\xaa\xe7\x16\x53\xd3\xe3\xd1\xf0\xe6\x8a\x1c\x8f\x45\x2a\xb9\x15\xd9\xb4\x54\x69\x4b\x91\x2b\xb3\x9e\x4f\x39\x83\x49\x67\xc3\x9c\x27\x70\x6a\xa4\x4e\xa3\x42\x50\x0a\x6d\xb0\x17\xc2\x2e\x2d\x8c\xeb\x64\x75\xb9\xb8\x7b\x33\x0c\xc8\x7f\x64\x80\x77\x60\x68\xa2\x8f\xfd\x1c\x0b\xae\x1a\xfb\xb8\xc1\x32\x43\x9f\xaf\xa0\xcb\xfb\x4d\xe8\xa3\x5a\x13\xaa\x35\xa1\x5a\x13\xaa\x35\xa1\x5a\x13\xaa\x35\xa1\x5a\x93\x28\x04\x3e\x88\x49\x2e\x9c\x52\x92\xbe\x63\x93\x4c\x70\x23\xe2\x15\x74\x95\xeb\x09\x1f\x82\x76\x74\xa5\x33\x99\x4c\x6b\x7e\xb0\xb0\xe9\xd2\xd8\x80\xdb\x76\x6f\xfa\xff\xab\xcf\xae\xf1\x3e\x43\xd5\x65\x22\x94\x3b\x2c\xa5\x4c\x15\x4c\xe7\x93\x11\x57\xc1\x2f\x97\x17\xe2\xd5\x80\x67\xc1\x56\xbe\x3d\xc3\x9f\x6f\xcf\xd8\x40\x2a\x9e\xc9\x7f\x04\x41\x72\x27\x18\x4f\x53\xd8\x9d\xaf\x30\x83\x3e\x2d\xcd\x30\x6c\xfe\xdc\x94\x2f\xa1\x7d\xda\x67\x1f\x25\x5c\x8e\x95\xae\xeb\x7c\x7e\x6c\x70\xfd\xa0\xab\x08\xcd\x63\xb0\x51\xb4\x1d\x6d\xb2\xa0\x38\x82\x0f\x61\xec\xfb\x02\x7b\xf8\xdd\xcb\x05\x77\x60\x47\xfa\x91\x0d\x79\x7e\xc7\x87\x35\x2f\x79\x34\x6a\x44\x3e\xd0\xf9\xd8\xad\x49\xe3\x7c\x7d\x99\x19\xd1\xe2\xe9\x02\xa5\x37\x68\xac\x13\x9c\x5b\xe9\xb4\xc9\x44\xa6\xa5\x29\x0c\xba\x02\x38\x27\xe2\x1a\x3b\x61\xed\x25\x69\xd0\x06\xfa\x95\xc5\x0c\x72\x24\x98\xda\x17\xd1\xc7\x5c\xff\x58\x9f\x61\x28\x0a\x64\x53\xd5\xb2\x3b\xc7\x31\x9c\xb3\x0b\xbf\x01\xeb\x1b\xd4\xfc\xc0\xce\x7f\xe4\xc9\xfd\x30\xd7\x85\x4a\xdd\x53\xe0\xab\x85\x87\x66\x26\x0e\x55\x48\xaf\x1f\xd7\x1b\x09\x23\xb8\x8b\x2d\xfd\xc0\xce\x7f\xd2\xb9\xa8\x34\xcb\x12\x6e\x12\x9e\xba\xd1\xfb\xf9\x41\x77\x3e\xb4\x67\xd0\xf4\x9c\x6b\x70\x10\xdb\xd8\x64\x43\x4e\x66\xb7\xfb\x1e\x3d\x05\x54\xd8\x46\x85\x6d\x5b\xd8\x5b\x54\xd8\xd6\xf2\x0c\x52\x61\x1b\xe5\x79\x77\x1e\xd1\xbb\xb6\xdc\x16\x6d\x43\x79\x27\x95\xa2\x81\x62\xbb\x54\xa9\xb6\x97\xae\xd1\x94\x8a\xb0\x4e\x19\xda\x8e\x11\xf7\xda\x64\x5f\x34\x20\xee\x51\xc6\x05\x65\x5c\x9c\x48\xc6\x05\xe5\x28\x50\x8e\x02\xe5\x28\x50\x8e\x02\xe5\x28\xec\x3d\x47\x81\x82\xdf\x14\x0f\xa5\x78\x28\xc5\x43\x29\x1e\x4a\xf1\x50\x8a\x87\x52\x3c\x74\xa1\x10\xa0\x10\x05\x85\x28\x28\x44\x41\x21\x0a\x0a\x51\x10\xf6\x5e\xab\xea\xd4\xe8\xae\x26\xec\xbd\x86\xc7\xf6\x1e\xf4\xd8\x00\x61\x85\x70\x23\x08\x37\x22\xe2\x46\xb4\x89\x62\x35\x23\x47\x3c\x29\x8e\x75\xa0\xd8\x11\xe5\x98\xda\x5d\x74\x54\x38\x74\x02\x85\x43\xcf\x14\xd8\x88\xe0\x07\x8f\x24\x2d\x65\xe3\xdb\x69\xcf\x28\x2c\x1b\x74\x77\xaf\x38\x2c\x6b\xf7\xf7\x94\xb4\xdc\xed\x22\xb1\x6c\xa8\xe5\x7e\xc7\x36\xc1\x62\xc1\x3f\xff\x6b\x47\x90\x2c\xed\x54\xa8\x2a\x0c\xcb\x5e\x55\xa8\x23\xc1\xbb\x20\xd5\xa9\xba\xc8\x07\xab\x3a\x51\x85\xf1\x33\xaa\x30\xa6\x52\x2a\x2a\xa5\xa2\x52\x2a\x2a\xa5\x22\xab\x6f\xd1\x29\x3a\xc8\x62\x84\xfd\x58\x55\x54\x4b\xb1\xb0\x96\xe2\xe0\xcc\xac\xe8\x67\xee\xbc\x82\x02\xa2\xed\x75\x1d\xab\x8d\xb5\xe4\x5e\xdb\x66\xd9\x44\x45\xeb\x10\xdf\x20\x19\xea\xce\xfd\x8b\x27\xb6\xcf\xd8\x47\xf7\xbf\xe1\xef\x63\x2e\xc1\x0d\x67\x58\x92\x15\xc6\x8a\xbc\x94\x25\x98\x35\xc9\x32\x79\x2f\xd8\x79\xec\xe7\xb9\x53\x19\x83\x9a\xd3\x67\x57\x19\x57\xca\x27\x33\x80\x22\xc2\x33\xd4\x7d\xde\xfc\x69\x93\xcb\x19\xfa\xb8\x27\x15\x21\x4e\x5a\xd4\xb0\xef\xc2\xf4\xb9\x91\xb2\x8f\x38\x63\x4e\x2c\x4c\x4c\x98\x1d\x9f\x2f\x54\x18\x91\x43\xa2\x4f\xa9\x2c\x4f\xb7\x3c\x51\xae\x33\xa7\x1b\xa5\x3e\x6c\xd9\x45\x2e\x35\x30\xdc\xc4\xe1\x79\xd4\x9e\x12\x37\x86\xa8\x88\xf7\x76\x2c\xf8\x7c\x9b\x90\xf0\xa1\x44\x83\x29\x0c\x7e\x74\x61\x70\xc8\x9b\x69\xa5\xa0\xcc\xde\xbf\x17\xf0\xee\xff\x5c\x7e\x15\x8f\x45\x3e\x14\xad\x9e\x34\x36\xe7\x56\x0c\x65\x72\xd1\xfe\x1d\xf7\xef\xa9\x7f\x12\x2e\xfd\x36\x0a\x14\x24\x5a\x42\x1d\x17\xe6\x78\x6d\xa0\x4c\xc1\x17\x0f\xc0\xf3\xbc\xad\xe0\xfd\x12\x4b\xe3\xaa\x9e\x68\xc5\xc8\x1f\x7d\xe2\xfe\xe8\xe7\x13\xca\x9f\xa9\x87\x08\x87\x0b\x6b\x76\x26\x98\xc2\xec\xeb\xc0\x5f\x2c\xb8\x85\x5e\x82\x37\x0e\x0b\x75\x79\x06\x6f\x2a\xad\x2e\xf0\x6d\x78\x02\x1c\xe2\x86\xbd\xf8\xbf\x46\xab\x2b\x2c\x87\xfe\xc5\xdd\x77\xfe\xdf\xd7\xe1\x16\x2c\xff\xf8\xf2\x90\x72\x0c\xda\xef\x9b\x9f\x74\x9e\x40\xc4\x60\xa8\x61\xf1\x35\xbb\x3d\x1b\xb8\xbf\xdd\x9e\xb1\xcb\xda\x6c\xf6\xd9\x27\xeb\xdd\xfb\x60\xd4\xf8\x83\x7a\xc1\x13\x58\x00\x28\xa8\xcd\x64\xe2\x1d\x96\x60\x03\xe9\x47\xbf\xb6\x58\x70\x3a\x11\x7a\x92\x89\x3e\xc3\x6f\x42\x1d\x7d\xd8\x53\x90\xe3\xde\xb8\x10\xf1\xf3\x9b\x4c\xaf\xfb\x10\x99\x42\xf8\x03\x99\x42\x7b\xc9\x2e\x98\xc9\x97\x3e\x34\x63\xa8\xe8\xdc\xef\x35\xc9\x78\xb2\x89\xb6\xe6\xdf\x3c\x61\x7d\x8d\x92\x2d\x49\x43\x7b\x0e\x1a\xda\x01\x29\x42\x24\xaf\xe3\x2f\x94\x6c\xe9\x5b\x3e\x29\xf5\xa2\x38\x3c\x4f\xeb\x77\xac\x7d\xee\xa2\x50\xe9\x44\x4b\x65\xf7\x43\x23\xf7\x31\x7e\x7d\xb1\x5a\xb2\x8a\x46\xae\xb1\x0d\x02\x35\x23\x50\xb3\xa3\x03\x35\x3b\xe9\xb4\x5a\x82\x68\x23\x88\x36\x82\x68\x23\x88\x36\x82\x68\x6b\x12\x25\x44\x23\x47\x0e\x0a\x42\xd2\xa3\x22\x8f\xe7\x5c\xe4\x41\xb0\x89\x04\x9b\x48\xb0\x89\x04\x9b\x48\xb0\x89\x04\x9b\x48\xb0\x89\x54\xfb\x48\xb5\x8f\x54\xfb\x48\xb5\x8f\xb3\x3b\x92\x68\xe4\x08\xa3\x75\xed\xdd\x45\x18\xad\x84\xd1\x4a\x18\xad\xa7\x9f\x42\x42\xa5\xcf\x7b\xa5\x91\x6b\x4a\x45\x38\x60\x1a\xb9\x36\xd9\x17\x4d\x34\x72\x94\x71\x41\x19\x17\xa7\x91\x71\x41\x39\x0a\x94\xa3\x40\x39\x0a\x94\xa3\x40\x39\x0a\x7b\xcf\x51\xa0\xe0\x37\xc5\x43\x29\x1e\x4a\xf1\x50\x8a\x87\x52\x3c\x94\xe2\xa1\x14\x0f\x5d\x28\x04\x28\x44\x41\x21\x0a\x0a\x51\x50\x88\x82\x42\x14\x44\x23\xd7\xaa\x3e\x35\xba\xab\x89\x46\xae\xe1\xb1\xbd\x07\x3d\x88\x46\xee\x39\xe0\xe7\x6d\x8b\x46\xae\x4d\x0c\xab\x99\x44\xee\x49\x51\xac\x03\xc5\x35\x29\xc7\xd4\xee\x9a\xa3\xb2\xa1\x13\x28\x1b\x22\x5c\x13\xc2\x35\x69\xe8\xcc\x01\x2b\x62\xc7\x81\x6b\xb2\x41\x77\xf7\x4a\x22\xb7\x76\x7f\x4f\x49\xc7\xdd\x2e\x89\xdc\x86\x3a\xee\x77\x6c\x03\x20\x96\xdd\x72\xc8\xad\x8b\xc0\xb2\x57\xfd\xe9\x48\xa0\x2e\x48\x6f\xaa\x2e\xf2\xc1\xea\x4d\x54\x5c\xfc\x8c\x8a\x8b\xa9\x8a\x8a\xaa\xa8\xa8\x8a\x8a\xaa\xa8\xc8\xe4\x5b\x74\x8a\x0e\xb2\x0e\x81\x18\xe4\x0e\xc6\xc2\xda\x36\x83\xdc\xc1\x15\x4f\x34\x30\xc8\xb5\xb1\x96\x9a\x18\xe4\xba\xac\x98\x20\x06\xb9\xb8\x07\xda\xab\x08\xc4\x20\xe7\xff\x8f\x64\x17\xf9\xd3\xf6\xce\x20\xb7\x87\x90\x71\x95\x41\x6e\xc1\xe7\x89\x41\xae\x79\xcc\x14\x01\x27\x06\xb9\x6d\x30\xc8\xb5\x51\xa6\x1a\x19\xe4\x4e\x28\x72\x4f\x0c\x72\xe4\x8f\x7e\x7e\x71\x7c\x62\x90\xeb\x72\xdf\x10\x83\x1c\x99\x42\x64\x0a\xcd\x4f\xe3\x91\x30\xc8\x3d\xd9\x18\xda\x0d\x83\x5c\x3b\xd7\x57\x23\x83\xdc\x09\xe9\x6b\x94\x69\x49\x1a\xda\x73\xd0\xd0\x0e\x48\x11\x22\x79\x1d\x7f\xa1\x4c\x4b\xdf\xf2\x49\xa9\x17\xdb\x64\x90\xdb\x45\xe2\x22\xc0\x73\xed\x87\x3e\xce\x7d\xba\x65\xe2\x62\x23\x75\xdc\xec\xfb\x04\x62\x46\x20\x66\x47\x07\x62\x76\xd2\xb9\xb4\x04\xc9\x46\x90\x6c\x04\xc9\x46\x90\x6c\x04\xc9\xd6\x24\x4a\x88\x36\x8e\xbc\x12\x84\x9c\x47\x95\x1d\xcf\xb9\xb2\x83\x60\x12\x09\x26\x91\x60\x12\x09\x26\x91\x60\x12\x09\x26\x91\x60\x12\xa9\xe0\x91\x0a\x1e\xa9\xe0\x91\x0a\x1e\x67\x77\x24\xd1\xc6\x11\x26\xeb\xda\xbb\x8b\x30\x59\x09\x93\x95\x30\x59\x4f\x3f\x6f\x84\xea\x9d\xf7\x4b\x1b\x37\x93\x86\x70\xc8\x94\x71\x2b\x32\x2e\x1a\xe9\xe2\x28\xcb\x82\xb2\x2c\x8e\x3e\xcb\x82\xf2\x12\x28\x2f\x81\xf2\x12\x28\x2f\x81\xf2\x12\xf6\x9e\x97\x40\x01\x6f\x8a\x81\x52\x0c\x94\x62\xa0\x14\x03\xa5\x18\x28\xc5\x40\x29\x06\xba\x50\x08\x50\x58\x82\xc2\x12\x14\x96\xa0\xb0\x04\x85\x25\x88\x2a\xae\x5d\x21\xaa\xd3\x72\x89\x26\xae\xe1\xb1\xbd\x06\x39\x88\x22\xee\x39\x00\xe4\x6d\x8b\x22\x8e\xab\x95\x61\xab\x05\x0c\x71\x9b\x06\xae\x0e\x15\xb3\x04\xc6\xd3\xee\x66\xa3\xca\xa0\x13\xa8\x0c\x22\xbc\x12\xc2\x2b\x69\xe8\xcc\x81\xea\x5d\x47\x82\x55\xb2\x5e\x57\xf7\xcb\x08\xb7\x4e\x5f\x4f\x49\x95\xdd\x32\x1b\xdc\xfa\xaa\xec\x77\x6c\x5d\x40\x95\xdd\xd2\xc0\xb5\xd0\x91\x16\xb0\xc0\xed\x56\x47\x3a\x12\xd4\x0a\xd2\x8f\xaa\x8b\x7c\xb0\xfa\x11\xd5\x09\x3f\xa3\x3a\x61\x2a\x88\xa2\x82\x28\x2a\x88\xa2\x82\x28\x32\xed\x16\x9d\xa2\x83\x2c\x29\x20\x06\xb8\x83\xb1\xaa\xb6\xce\x00\x77\x48\x75\x10\x4d\xec\x6f\x2b\x2c\xa4\x46\xe6\xb7\x8e\x8a\x1f\x88\xf5\x2d\xae\x7d\x7b\xb5\x80\x58\xdf\xfc\xff\x91\xbc\x22\x9f\x59\xfc\x71\x2f\x8c\x6f\xbb\x8d\xfe\xd6\xd8\xde\xe6\x3f\x4d\x4c\x6f\xcd\x63\xa6\x40\x36\x31\xbd\x6d\x85\xe9\x6d\x85\xe2\xd4\xcc\xf2\x76\x1a\xd1\x77\x62\x78\x23\x7f\xf3\xf3\x8b\xc7\x13\xc3\x5b\x97\xfb\x86\x18\xde\xc8\xec\x21\xb3\xe7\x38\xd9\xdd\x9e\x62\xf8\xec\x88\xd9\x6d\xa5\x5b\xab\x99\xd5\xed\x34\xf4\x33\xca\x8e\x24\x6d\xec\xd4\xb5\xb1\x03\x52\x7a\x48\x36\xc7\x5f\x9e\x7d\x76\xe4\x49\xa9\x11\x5b\x65\x71\xdb\x6e\xc2\x21\x14\x29\xe6\x70\x79\xed\x85\xc6\xed\xb3\xfb\xfe\x57\xf7\xfd\x96\xe9\x87\x4d\x5c\x6e\xcd\x8d\x10\xd4\x18\x41\x8d\x1d\x1d\xd4\xd8\x49\xa7\xc6\x12\x70\x1a\x01\xa7\x11\x70\x1a\x01\xa7\x11\x70\x5a\x93\x28\x21\x42\x37\x72\x4c\x10\xbe\x1d\x15\x6a\x3c\xe7\x42\x0d\x02\x33\x24\x30\x43\x02\x33\x24\x30\x43\x02\x33\x24\x30\x43\x02\x33\xa4\xfa\x45\xaa\x5f\xa4\xfa\x45\xaa\x5f\x9c\xdd\x91\x44\xe8\x46\xc8\xa9\x6b\xef\x2e\x42\x4e\x25\xe4\x54\x42\x4e\x3d\xfd\xd4\x11\x2a\x5f\xde\x2b\xa1\x5b\x63\x2e\xc2\x01\xb3\xba\xb5\x4a\xc0\x68\xa2\x76\xa3\xa4\x0b\x4a\xba\x38\x91\xa4\x0b\x4a\x53\xa0\x34\x05\x4a\x53\xa0\x34\x05\x4a\x53\xd8\x7b\x9a\x02\xc5\xbf\x29\x24\x4a\x21\x51\x0a\x89\x52\x48\x94\x42\xa2\x14\x12\xa5\x90\xe8\x42\x21\x40\x51\x0a\x8a\x52\x50\x94\x82\xa2\x14\x14\xa5\x20\x7e\xb7\x56\xe5\xa9\xa5\xbf\x9a\x48\xde\x1a\x1e\xdb\x7f\xe0\x83\x98\xde\x9e\x03\x40\xde\xd6\x98\xde\xda\x45\xb2\x9a\xd9\xde\x9e\x16\xcb\x3a\x50\x50\x93\xca\xa0\xda\x5d\x76\x54\x40\x74\x02\x05\x44\x84\x6c\x42\xc8\x26\x0d\x9d\x39\x64\x7d\xec\x38\xe0\x4d\x36\xe9\xef\x5e\x19\xe0\xd6\xef\xf0\x29\x29\xbb\xdb\xa5\x81\xdb\x54\xd9\xfd\x8e\x6d\x04\xcd\xb2\x63\x42\xb8\xf5\x51\x59\xf6\xab\x4a\x1d\x09\xfc\x05\x69\x50\xd5\x45\x3e\x58\x0d\x8a\x0a\x8e\x9f\x51\xc1\x31\x55\x56\x51\x65\x15\x55\x56\x51\x65\x15\x19\x7f\x8b\x4e\xd1\x41\xd6\x26\x10\x33\xdc\xc1\x18\x5a\xdb\x66\x86\x3b\xbc\x82\x8a\x06\x7a\xb8\x56\x06\x53\x13\x47\x5c\xa7\x55\x14\x44\x14\x17\x77\x41\x7b\x2d\x81\x88\xe2\xfc\xff\x91\xf8\x22\xd7\xda\xfe\xd9\xe2\xf6\x11\x46\xae\x52\xc6\x2d\xfa\x3e\xf1\xc6\x35\x8f\x99\xc2\xe2\xc4\x1b\xb7\x0d\xde\xb8\x56\x1a\x55\x23\x79\xdc\x29\x05\xf3\x89\x41\x8e\xfc\xd2\xcf\x2f\xb2\x4f\x0c\x72\x5d\xee\x1b\x62\x90\x23\x7b\x88\xec\xa1\x86\x79\x3c\x12\x1a\xb9\xa7\x5b\x44\xbb\xe1\x92\x6b\xe9\x03\x6b\x24\x94\x3b\x25\x9d\x8d\x12\x30\x49\x4d\x7b\x16\x6a\xda\x01\x69\x43\x24\xb4\xe3\x2f\x94\x80\x19\x9b\x3e\x29\x25\x63\x9b\x24\x73\xbb\x48\x67\x0c\x52\x48\xd9\x07\x9d\x15\x63\x91\x64\x5c\x8e\xf7\x43\x3a\x77\x15\xbb\xf2\x57\xe8\xca\x7b\xd7\x95\x96\x99\x8e\x4d\xfc\x73\x2b\xdb\x23\x54\x34\x42\x45\x3b\x3a\x54\xb4\x93\xce\xc5\x25\x8c\x37\xc2\x78\x23\x8c\x37\xc2\x78\x23\x8c\xb7\x26\x51\x42\x54\x74\xe4\xc8\x20\x28\x3e\xaa\x0c\x79\xce\x95\x21\x84\xbb\x48\xb8\x8b\x84\xbb\x48\xb8\x8b\x84\xbb\x48\xb8\x8b\x84\xbb\x48\x05\x93\x54\x30\x49\x05\x93\x54\x30\x39\xbb\x23\x89\x8a\x8e\x40\x5e\xd7\xde\x5d\x04\xf2\x4a\x20\xaf\x04\xf2\x7a\xfa\xa9\x26\x54\x2f\xbd\x57\x2a\xba\x55\x69\x09\x07\xcc\x4a\xb7\x6e\x86\x46\x13\x41\x1d\x65\x65\x50\x56\xc6\xe9\x65\x65\x50\x1e\x03\xe5\x31\x50\x1e\x03\xe5\x31\x50\x1e\xc3\xde\xf3\x18\x28\x40\x4e\x31\x53\x8a\x99\x52\xcc\x94\x62\xa6\x14\x33\xa5\x98\x29\xc5\x4c\x17\x0a\x01\x0a\x63\x50\x18\x83\xc2\x18\x14\xc6\xa0\x30\x06\x71\xd5\xb5\x2a\x75\x6d\x74\x5d\x13\x6d\x5d\xc3\x63\x07\x15\x24\x21\x06\xbb\xe7\x00\xd5\xb7\x3d\x06\xbb\x75\xa3\x5e\xcd\x64\x76\x9d\xc5\xbd\x0e\x14\x56\xa5\x79\x7c\xed\x2e\x46\x2a\x4c\x3a\x81\xc2\x24\x42\x58\x21\x84\x95\x86\xce\x1c\x89\x1a\x77\x1c\x60\x2b\x4f\xec\xfa\x5e\x89\xef\x9e\xd4\xf7\x53\xd2\x9c\xb7\xcb\x81\xd7\x81\xe6\xfc\x1d\x7b\x2a\x7e\xcc\xae\x99\xf1\x9e\x02\x1d\x73\x30\x2a\xda\x91\x60\x74\x90\x3a\x56\x5d\xe4\x83\x55\xc7\xa8\x2a\xfa\x19\x55\x45\x53\xf9\x17\x95\x7f\x51\xf9\x17\x95\x7f\x91\x25\xb9\xe8\x14\x1d\xa2\x25\x49\xe6\xd8\x21\x98\x63\xdb\x66\xca\x3b\xe8\x7a\x8f\x06\xd2\xbc\x75\x6d\xa9\x26\xfe\xbc\x6d\x15\x79\x10\x95\x5e\xdc\x1b\xed\x15\x08\xa2\xd2\xf3\xff\x47\x92\x8d\xa4\xc3\x41\xb1\xea\xed\x39\xca\x5d\x25\xd8\x6b\xd1\x15\xe2\xda\x6b\x1e\x33\x05\xf0\x89\x6b\x6f\x1b\x5c\x7b\xeb\x2a\x62\x8d\xb4\x7b\x27\x9a\x76\x40\x0c\x7c\xe4\xe9\x7e\x7e\x89\x07\xc4\xc0\xd7\xe5\xbe\x21\x06\x3e\x32\xa3\xc8\x8c\x3a\x09\x32\xbe\x4e\x0d\xa9\xdd\xf0\xf2\xad\xef\x66\x6b\xa4\xe8\x3b\x51\xfd\x8e\xd2\x4a\x49\xbb\x7b\x6e\xda\xdd\x01\x29\x51\x24\xeb\xe3\x2f\x94\x56\xba\xa2\xeb\x27\xa5\xa6\x6c\x93\xce\xef\x90\x32\x33\x5f\x19\x44\xfa\xab\x24\x68\x6e\x27\xb6\x88\xdf\x09\x12\x6c\x07\x51\x46\x0f\x61\x48\xf7\x16\x1d\x7e\x0a\xf5\x50\xa8\x87\x42\x3d\x14\xea\x39\xc4\x50\x4f\x57\x72\xb1\x7d\xd0\xa7\x41\x30\x1e\xa5\x6b\x80\x42\x3f\xe4\x1c\x78\x7e\xce\x01\x0a\xfd\x74\xb9\x6f\x28\xf4\x43\xee\x20\x32\xab\x28\xf4\x53\x9f\xa6\xed\x85\x7e\xba\xf3\x82\xb4\x0f\x02\x9d\x8a\xbe\x47\xa1\x20\xd2\xf6\x9e\x9b\xb6\x77\x40\x4a\x15\xc9\xfe\xf8\x0b\x85\x82\x56\x74\xfd\xa4\xd4\x96\x53\x0a\x05\xe9\xd4\xec\x08\x8b\xa3\x52\x95\xac\x07\xec\x4a\xa7\x4b\xb4\x99\x2a\x0a\xc7\xfb\xf8\x5e\x45\xad\xa9\xbf\x4d\xc4\x40\x44\x0c\x74\x74\xc4\x40\x27\x0d\x05\x43\x34\x47\x44\x73\x44\x34\x47\x44\x73\x44\x34\x47\x4d\xa2\x64\x07\x24\xcc\xe4\xb3\x38\x74\x9f\x05\xb1\x51\x11\x30\xd9\x33\x06\x26\x23\xea\x31\xa2\x1e\x23\xea\x31\xa2\x1e\x23\xea\x31\xa2\x1e\x23\xea\x31\xc2\xeb\x24\xbc\x4e\xc2\xeb\x24\xbc\xce\xd9\x1d\xb9\x03\x4f\x01\xf1\x1c\x12\xcf\xe1\x16\xf6\x16\xf1\x1c\xb6\x3c\x83\xc4\x73\x48\x59\x25\x9d\x47\xf4\x7c\x8a\x5f\xbb\x50\xde\x49\x65\x67\xa0\xd8\x2e\x55\xaa\x2d\xa6\x6a\xe8\x74\xc3\x6c\xd2\xce\x0b\x6a\xd1\x63\x96\x7b\xd1\x1d\x54\x7b\x3d\x60\xae\xaf\x2b\x72\x2d\xdc\xbb\x73\x69\xa3\x94\x5f\x41\xf9\x15\x47\x9e\x5f\x41\x19\x09\x94\x91\x40\x19\x09\x94\x91\x40\x19\x09\x7b\xcf\x48\xa0\x50\x37\x45\x3f\x29\xfa\x49\xd1\x4f\x8a\x7e\x52\xf4\x93\xa2\x9f\x14\xfd\x5c\x28\x04\x28\x20\x41\x01\x09\x0a\x48\x50\x40\x82\x02\x12\x0b\x02\x12\x0b\x5f\x70\x1f\xfb\x01\x27\xfe\xdf\xe7\xe7\xa0\x4d\xdb\xf5\xb7\x0f\x3b\xf2\x51\x16\xa5\xea\xf4\xb3\x34\xf6\x39\x06\x3a\xdc\xfd\x75\x88\xc1\x8d\x0d\x30\x08\x09\xa8\xef\xe8\x80\xfa\xb4\xe9\x38\x84\x85\x66\x07\xe3\x2b\xa2\x55\xf8\x58\x47\xf1\xaa\x43\x85\x33\xd1\x29\x81\x97\x3c\x9f\x42\x20\x02\x2f\x21\xf0\x92\x86\xce\x1c\xa4\xb2\x75\x24\x50\x25\xeb\x74\x74\xbf\x5c\xdb\xed\x7b\x7a\x4a\xba\x2b\xa8\x0f\x87\xa3\xbb\x7e\xc7\xd6\x43\x4c\xf1\x50\xf9\x3b\x02\x4e\x59\xa5\x12\x55\xc1\x52\xf6\xa4\x12\x1d\x09\x2a\x05\x29\x44\xd5\x45\x3e\x58\x85\x88\xea\x80\x9f\x51\x1d\x30\x15\x3c\x51\xc1\x13\x15\x3c\x51\xc1\x13\xd9\x72\x8b\x4e\xd1\xfe\x6d\x39\x32\x91\xf6\x55\xc7\x70\x40\x46\x52\xf4\xfd\x6e\x87\x0e\xac\xae\x33\x2d\xb7\x78\x1a\x29\xbf\x3a\x29\x59\xa8\x68\x0e\xe2\x1b\x24\x22\xdd\xb9\x7f\xf1\xc4\xf6\x19\xfb\xe8\xfe\x37\xfc\x7d\xcc\x25\x38\xc8\x0c\x4b\xb2\xc2\x58\x91\x97\xf2\xc0\xa3\xfd\x67\xf2\x5e\xb0\xf3\xd8\xc3\x73\xa7\xf6\x05\x55\xa5\xcf\xae\x32\xae\x94\x4f\x24\x00\x65\x82\x67\xa8\xbf\xbc\xf9\xd3\x26\x17\x2c\xf4\x71\x4f\x62\x3e\x4e\x5a\xd4\x92\xef\xc2\xf4\xb9\x91\xb2\x8f\x38\x63\xee\x6a\x9f\x98\x30\x3b\x3e\x57\x07\xa8\x13\x12\xae\x2a\x0a\xef\x74\xcb\x13\xe5\x3a\x73\xba\x11\xe2\xd3\x93\x3f\xa7\x74\xab\x6f\x97\x49\x6e\x97\x31\xdb\x1a\x6f\xdc\xec\x87\x89\x25\xae\x79\xcc\x14\x7c\x26\x96\xb8\x6e\x58\xe2\xd6\x51\x97\x9a\x99\xe0\x4e\x21\x64\x4e\x8c\x6f\xe4\x35\x7e\x7e\x61\x74\x62\x7c\xeb\x72\xdf\x10\xe3\x1b\x19\x3b\x64\xec\x1c\x23\xbf\xdb\xe6\xe6\xce\xb6\xd8\xdc\xd6\x73\x62\x35\x33\xb6\x9d\x82\x5e\x46\xa9\x8c\xa4\x83\x9d\xb6\x0e\x76\x40\xaa\x0e\x49\xe4\xf8\xcb\xb3\x4e\x65\x3c\x29\xd5\x61\xab\x1c\x6b\x3b\xca\x0f\x7c\xc5\xad\xe5\x35\x4f\x55\xf7\xb1\xb3\x44\x2b\x25\x12\xcb\xfe\xfc\xf1\xa6\xb4\xfa\xac\x66\xf8\xe9\xd5\x4c\x6b\xfe\x7d\xd4\x42\xfe\x2c\x6c\x4d\x11\xb9\xc4\xfe\xb7\xb8\x56\x16\x76\x77\x67\x47\x7f\xe6\x06\x7d\x86\x67\xc6\x2f\xe5\x56\xcf\x0d\xee\x88\x90\x93\xb9\xb3\x60\x43\x00\xef\xe2\x52\x39\xc5\x42\x79\x00\x22\x80\x95\x12\x49\x61\x03\xaa\xd6\x78\xcc\xd5\x4c\x7a\x5d\x55\x03\x70\xef\x82\x76\x96\x83\xc1\x0f\x3f\x69\x35\xd3\x34\xe0\x5d\xe8\xb5\x3d\xde\xb1\x8d\x6e\x9c\xde\xed\x5c\xf8\x33\x41\x98\x25\xab\x43\x11\x99\xe6\x31\x1f\x54\x44\xe6\xda\xa6\x22\xc7\x3d\x9a\x17\x62\xd6\xcc\x31\xfe\x57\xd8\xd6\x77\xce\xc2\x40\x7b\x45\x94\x49\xa7\xfe\xd6\xc7\x7a\xf6\xea\x29\x00\xdc\x91\x35\x77\x34\x7e\xaf\x79\x3b\x37\xb9\x8e\xba\x99\x00\xa9\xc2\xf8\x7b\x71\x84\x58\x8f\x6f\x2c\x57\x29\xcf\x53\x26\xd5\xa4\xb0\x95\x2a\x73\x7f\x62\xfd\x2c\x48\xd3\x30\x7e\xc8\xef\xdc\x60\x02\xa4\xda\xf5\xf8\x75\x61\x97\x6c\x00\x8d\xc1\xb9\x9d\x6d\x00\x5d\xd8\x9d\x4e\xc0\xcd\xcd\x7f\x2c\x1a\x3d\x67\xd6\x4e\xcb\x44\xdc\x2c\xd3\x98\xf4\xdb\x38\xf4\x80\x26\x33\xe1\xce\x8a\x66\x76\x94\xeb\x62\x38\x8a\xd0\x3f\x78\xd9\xe7\x85\x02\x54\x15\x83\xf8\x06\xae\x79\x69\x2a\x2d\x7b\x48\xa8\x47\x9d\xdf\x8b\x9c\x29\x9d\x8a\x90\x3d\x3a\xd7\x46\x07\xbb\x6d\x61\xbc\x74\xed\xa9\xf6\xff\xda\x6a\xb5\xae\x57\x3b\xaf\xbe\x5c\x77\xa0\x77\x5e\x69\x43\x8a\x27\x29\x9e\x5b\x52\x3c\x37\xb5\xde\xee\xdc\x05\xa4\x86\x55\xf3\x6d\x03\xd5\x95\x3c\x97\xad\x6e\xbf\x06\xaf\xe5\x96\x95\xad\x67\xea\xab\x5c\xbd\x14\x0b\xfd\x94\x3b\x34\x66\x7e\xf4\x67\x8f\x6c\x98\x63\xb3\x61\x8e\x37\xab\x6c\x5b\x90\x26\x5e\x8e\x20\x06\xdd\x86\xe8\x26\xf3\xe7\xe1\xd8\x23\x83\x61\x44\x8b\xf5\xa5\xc6\x29\xa6\xb8\xc6\x13\x67\xf5\x80\x62\x1b\x6b\x77\x76\xaf\x75\x48\x6b\xf6\xf6\x94\x14\xfc\xed\xc2\x35\x34\xca\xfa\x6d\x29\xf5\xe2\x41\x86\x61\x91\x56\x4f\x5a\x3d\x69\xf5\xbb\xd4\xea\x3f\x86\xc3\x47\x6a\x3d\xa9\xf5\xc7\xae\xd6\x07\x49\xf2\x24\xbd\xbe\xe1\x44\x1c\xab\x62\xef\xd1\x0f\x1e\xde\xdc\x09\xcb\xdf\xf4\xe3\xc8\x48\xc1\xdf\xcf\xec\x1e\x80\xa2\xff\xe4\x4e\xef\x45\xe1\x7f\x62\xaf\x49\xf1\x8f\x8f\x47\xc5\x7f\x32\x8f\xf9\x11\xd5\xff\x66\xa5\xa0\xa6\xff\xc3\x42\x74\x69\x04\x7c\x13\xc9\x5e\xb2\xb2\xdc\x87\x9f\x98\x93\xf5\xd1\xf5\x9d\x02\x63\x47\x71\x7c\x76\x11\x18\x73\xfb\x61\xe7\xf9\x58\xef\x31\xd3\x0a\x52\x11\xc0\xb6\x04\x56\x0b\x9f\x7f\x55\x49\xcb\xea\x33\x9e\x0f\x1f\x18\xcf\x73\x3e\xed\xb3\x5f\xb5\x0d\x3f\xa0\x19\xe6\x2c\x59\x66\x46\x22\xcb\xd6\xcf\xb6\x82\x4f\xed\xd2\x90\x79\x4f\xf9\x67\xab\xf2\xcf\x16\xee\x45\x32\xf1\x9a\xc7\x7c\x50\x26\xde\x57\x9f\x4e\x54\x4f\xb6\x42\x3f\xd3\x5a\xc9\x56\x47\x92\x6c\xd6\x3c\xde\xd3\x4d\x2e\x6b\x1e\xaf\x37\xe2\x77\xb1\xc0\x47\x94\x4c\x06\x8a\x5a\x47\x2b\x7d\x1a\x89\x5d\x1b\xa8\xae\x73\x69\x5d\xa4\xbb\x92\xee\xda\x89\xee\xba\xa9\xe1\x97\xe9\xe1\x56\xed\x3e\x40\xb2\xcb\x74\x0c\xba\x3c\x11\xd0\xee\xb3\x1e\xb6\x39\x2e\x56\x7c\xb3\xaf\x26\x19\x9f\x95\x27\xa7\xed\x32\xa3\x23\x7a\x3a\x60\x62\xf5\xfa\x1e\x27\x84\xa3\x81\xe5\x15\x93\x4c\x0f\xcd\x1a\x86\xd5\x11\xdb\x54\x3f\xe9\x08\xfb\xeb\x6e\x92\x39\xc5\xac\x03\x8d\x64\x00\x9f\xd8\xa9\x2e\x26\x95\x11\x49\x91\x8b\xeb\x7b\x39\xb9\xf9\x7c\xfd\x57\x91\xcb\xc1\xf4\x47\x9e\xdc\x0b\x95\xce\x2a\x67\x10\x9c\x9d\x48\x4f\x8f\x5b\x89\x9f\x27\x5a\x0d\x64\x8e\x78\xdb\x10\x38\x07\xd6\xc5\x41\x24\x79\x06\x76\x5c\x91\x7b\x6e\xc1\x68\x99\xde\x85\xcf\x40\xac\xca\x0b\x36\xc4\x7a\xe9\x33\x2c\x15\x00\x4d\x70\xcc\xef\xd1\x90\xff\xcb\xcd\xcd\xd5\x75\x7c\x50\x2b\x76\x27\xec\xa3\xf0\x51\xaf\xb2\x67\x01\x11\x3a\xb6\xef\xc7\xe8\xcb\x0f\x10\x29\xa6\xfe\x4a\xc2\x95\x1b\xc8\x03\x0c\x3f\xae\x31\x70\x4d\x4b\x4f\x17\x9a\x08\x89\x03\x71\x06\x68\x84\x17\xcf\x05\xcf\x98\x3b\xdf\x99\xb0\x7d\x86\xa0\xf4\x22\xfc\xc1\x0f\x6b\x20\x87\x85\xe7\xcb\xad\x7c\x20\x7e\xfc\xdc\xb0\x9b\xcf\xd7\x2c\xc9\x05\xf0\x05\xf3\xcc\xf4\xdc\x47\x53\x2d\x90\xb1\xd8\xf5\x37\x54\x37\x84\x81\x7b\xea\xc7\xea\xd7\xdd\xc7\x1e\x8a\x4c\x89\x1c\x02\xd9\x80\x60\x3f\xe6\x2a\x42\x67\xcb\x34\xcd\x7c\x35\xc6\x3d\x7b\x21\xfa\xc3\x3e\xe3\xca\xff\xb7\x9b\x81\xb8\x9a\x52\x59\x91\x27\x62\x62\x43\x34\xbe\xe0\x59\x39\x1d\x89\x1e\x03\x8e\x4e\xd3\x04\xbc\x5c\x77\xc3\x2f\xdb\x7d\x3b\x3d\x06\x9f\x06\x2c\x10\xc5\x56\xe8\xcd\xef\xa6\x36\x50\x9b\xf3\x0a\xa4\xbc\xdf\x33\x81\xf6\x00\xf8\xb5\xb9\xf5\xb9\x09\xa8\x66\x80\xf1\x16\xf6\x1b\x9f\xc2\xbc\xa6\xd2\x4c\x32\x3e\x05\xc2\xe4\xf1\x04\x30\xc2\x01\xc6\x9c\x65\x52\xc1\x99\xc8\xf4\x70\x28\x43\x7e\x42\x85\x75\xdc\x64\x72\x38\xb2\xd9\x14\x99\xae\x9d\xd5\x1f\xfe\x50\xa6\x3a\xd4\xb5\x1a\x60\x4b\x5d\x77\x31\xe0\xa5\x1f\xdd\x90\x9b\xa7\xbe\x89\x70\xa0\x7b\x5f\x15\x39\xa8\x8e\xce\x41\x75\x2c\x39\x08\x6d\xdd\x31\x70\xe8\x26\xb9\x78\x90\xba\x30\xf1\x7c\x8b\xb4\xa2\xbb\xcc\xab\x3d\x1b\x09\xfc\xf0\x91\x9d\xde\x75\x97\x2c\x17\x19\x32\xaf\x40\x99\x5d\x33\x93\x8b\x27\xaf\xc6\x47\xe0\xea\x2b\x55\xbf\x91\x7e\xf4\x33\x50\x27\x61\x99\x38\x29\x99\x0a\x53\x12\xa3\x73\x70\x59\x3d\x72\xc3\x8c\xe5\x39\xd0\xd7\x83\x7e\xe8\xde\x66\x46\x2a\x8f\xcd\xe4\x1e\x82\x07\xa2\xeb\x27\x32\xa5\xcf\xf3\xbc\x04\xe2\x83\xc2\x16\x39\x92\x69\x43\x6b\xf3\x6f\x7e\x09\x7e\x7c\x3d\xc0\x6f\x79\x46\x15\xb8\x42\xdd\x7f\xdf\xb8\x2e\x06\xc2\x8a\x48\xea\xb2\xae\x03\xad\xd2\xf2\x4e\x2f\xce\x66\x99\xe5\x84\x49\x85\x34\xdd\xe9\x3f\xfe\x72\x85\x59\xf2\xcb\x07\xd3\x5a\xe3\xb2\xe9\xe1\xef\x3c\x17\xf0\x80\x2a\x9b\x80\x24\x99\x2a\xdf\x76\x3c\x05\x61\x1e\x9b\xe6\x75\x5d\x67\x1c\x97\xd9\x67\xd7\xf5\x5d\x4f\x21\x56\x34\xf3\x34\x75\xda\xd0\xd7\x9f\xde\x7f\xff\xfd\xf7\xff\xdb\x0d\xc4\xff\xf3\x57\xae\x34\x6c\x65\x63\xf9\x78\x12\x48\xff\x6b\x54\xf4\xe2\x41\xe4\xd3\xaa\x10\x8f\xe2\xff\xe9\x2e\xca\xf0\xe1\xae\x6e\x08\xff\xaf\xff\xdc\xd4\x51\x33\xd1\xb9\x1d\xe8\xfc\x91\xe7\xe9\x5e\x02\xf5\x95\xef\x3f\x31\x5e\x7f\x55\x19\x09\xb9\x3e\x8f\xc2\xaf\xb2\x0b\xd7\xa7\xdb\x16\x3f\xe1\xb6\xd8\x79\xf4\x7e\x46\x13\x5e\xd5\x15\xd2\x8d\x9b\xc7\x7c\x50\xba\xf1\x67\x69\xac\x5b\x53\x77\x71\xa1\x1c\xf0\xb7\xd7\xd7\x80\x0e\xfc\xe8\x54\xe6\x02\x4a\x02\x7e\x17\x77\xd7\x3a\xb9\x17\xcd\xa3\x5e\xa6\x47\xba\xd6\x3b\x92\x9c\x41\x44\xec\x23\x98\xb5\xf9\xf5\x3e\x17\xd3\xa2\xfb\x9d\xee\xf7\xf0\xe7\x0e\xef\xf7\x8d\x15\xa7\x5c\x7f\x9b\x6e\x9b\x98\x36\x9c\xab\x0f\x1f\x3f\x7f\xbc\xf9\x58\x3f\x59\xee\xfb\x6b\x9e\x29\x24\x7a\xad\x9f\x2a\x18\x06\x9d\x27\x3a\x4f\xe1\x3c\xb9\x0d\xf1\x34\x4d\x69\x77\xc6\xc3\x06\x67\x60\xce\x6c\xa0\x03\x40\x07\xa0\xe3\x03\x30\x12\x3c\xdd\xce\x09\xf8\xcb\xc7\xcb\x0f\x4f\x3e\x02\x7f\x11\x3c\xa5\x33\x40\x67\x60\xab\x67\x40\xfb\xb7\xb7\x72\x0c\xbe\x5c\xdd\x7c\xfa\xf2\xeb\xf5\x93\x4f\x82\x1f\x22\x1d\x06\x3a\x0c\x5b\x3d\x0c\x1d\xf8\x8e\x16\x76\x82\xbc\x46\xcd\x63\x3e\x28\xaf\xd1\x15\xb7\xa3\x50\xc4\xf3\xdb\xd7\xcf\xcc\x75\xdd\x5d\x5a\x85\x11\x31\x15\x3a\x04\xe8\xf0\x22\xf3\x57\x1b\x3a\x51\xd6\x8f\xb2\xce\x4d\xcd\x3e\x48\x01\xd7\x76\x1f\x5d\xde\xbc\xff\xcb\x93\x2f\x75\xe0\xc8\xa2\x2b\x9d\xae\xf4\xed\x5e\xe9\x3b\x74\xa2\x6e\x72\x08\xe6\xdc\xa7\x74\x06\xe8\x0c\x74\x7d\x06\xba\xa6\xf7\x8a\x47\xe0\xb7\x0e\x4e\x40\x41\x07\x80\x0e\xc0\x56\x0e\xc0\x77\xec\x09\x31\x83\x57\xff\x74\xca\xd9\xbf\x4e\x24\x74\xf0\xbb\xb4\xa3\xab\xba\xb2\x49\x07\x8b\x0e\xd6\xf3\x0b\x21\xd0\x41\xa0\x83\xc0\xba\x3f\x08\x47\x19\x4a\xa0\xb3\x40\x67\x81\x75\x7f\x16\x8e\x3b\xa4\x40\x87\x82\x0e\x05\xdb\x82\x0d\x4e\xa1\x85\xe7\x1d\x5a\x08\xa1\x04\xac\xdd\x34\xba\xc8\x67\xfb\xb6\x6a\x48\xf3\xbf\x50\xa0\xe4\x19\x07\x4a\x48\x50\x91\xa0\x62\x5b\x10\x54\xc7\x18\x30\xa1\xb3\x40\x67\x81\x6d\xe1\x2c\x1c\x5d\xe0\x84\x0e\x02\x1d\x04\xd6\xd9\x41\xf8\x8e\x6d\x16\x40\x31\x96\xdb\xc2\x6c\x1f\x59\x0c\xbf\xd3\x11\xb8\xd8\x35\x76\xba\xc5\xc1\x39\x6d\x1c\xb1\xd6\x04\x50\x6e\x96\x9f\xe1\x91\x3d\x1d\x94\x31\x42\x80\x39\x76\xa7\xc2\xb1\x20\xc0\xf8\x7f\x6d\x64\x74\xcf\xde\xb6\x17\xf0\xee\xff\x5c\x7e\xf1\x8e\x45\x3e\x14\xad\x9e\x34\x36\xe7\x56\x0c\x65\x72\xd1\xfe\x1d\xf7\xef\xa9\x7f\x12\xae\xf8\x36\x12\x6b\xc2\x73\x2b\x79\x96\x4d\x59\x31\x49\xb9\x15\x1b\x4a\x2f\xf8\x6a\x3b\xf1\x75\x94\xbc\x39\x63\x9e\x8c\xa4\x12\xf9\xb4\x3f\xb9\x1f\xba\x3f\x98\xfe\x58\x58\x0e\x02\x07\x36\x4d\x3b\x91\xb3\x5c\xd6\x10\x5d\x5d\x75\xe9\xe7\x2f\x81\xe5\x94\x75\xcb\x2f\x82\xe5\x57\xc1\x5a\xcb\xf4\x7c\xc8\xeb\x10\xb1\x0e\xc6\x8b\xa8\x87\x1e\xa4\xc0\x49\x2d\xb8\x6d\x4a\x73\xf1\xc5\x82\x9b\xe8\x25\xbb\x2b\x2c\xc3\xe0\x1b\xcf\xe0\x4d\xa5\xd5\x05\xbe\x0d\x4f\x30\xb7\x6a\x86\xbd\xf8\xbf\x46\x2b\x38\x4b\x3d\xf6\x8b\xbb\xf3\xfc\xbf\xaf\xc3\x4d\x58\xfe\x71\x06\x58\xb0\xdd\x8e\x59\xc8\xac\xb7\xb3\x7d\xf3\x93\xce\x13\x80\xac\x1a\x6a\x84\xb5\x64\xb7\x67\x03\xf7\xb7\xdb\x33\x76\x59\x9b\xcd\x3e\xfb\x64\x3d\x30\x65\x61\x44\x1e\x0e\xea\x05\x4f\x60\x01\x00\x45\x32\x93\x88\x8e\x09\xe3\x32\x4c\x3f\xfa\xb5\xd5\x78\x54\x85\x9e\x64\xa2\xcf\xf0\x9b\x83\x8c\x0f\xe3\x9e\x2a\x94\x11\xb6\x71\x21\xe2\xe7\x37\x99\x5e\x3d\x1b\x39\x58\x01\x4c\xb4\x72\x62\x1b\xa5\x17\x19\x3f\x64\xfc\x34\x10\x60\x81\x08\x3e\x44\xf3\xa7\x6b\x57\x5d\x2e\x26\x19\x4f\x36\xd5\xd2\xfc\xdb\x27\xac\xa7\x6d\x70\x12\x48\x27\x23\x9d\xec\x88\x74\xb2\x03\x52\x7d\x48\x42\xc7\x5f\xb6\x21\xa1\xf7\x4b\xfb\xff\x5c\x55\x89\xe2\x90\xfc\xa8\xdf\xb1\xb5\x42\x1d\x56\x8c\x27\x99\x13\x4f\xdb\xae\x0f\xc1\x36\x59\xa2\xb3\x4c\x44\x7a\xe5\x2b\x9d\xde\xf8\x0e\x2c\xd1\x41\xf0\x55\x54\x41\xde\xc7\xf7\x6b\xca\x48\x53\x2b\x6d\xd5\x91\x99\x8e\xf2\x2c\xd3\x8f\xbf\x3b\xf5\xf0\x47\xad\xef\xc7\x3c\xbf\x37\xa5\xcd\xfa\x08\x56\x8f\x78\x10\xca\xfd\x07\xc8\x87\xe9\x44\xb0\xdb\xb3\x1f\xbf\x7c\xf9\xf9\x97\xcb\xaf\x3f\xdf\x9e\xf5\xd9\x35\xc0\xbb\x7b\x81\x9f\x6a\xc4\xc4\x1f\x4f\x32\x31\x16\xca\xb2\xbb\xd8\xea\x98\x4f\x99\x1c\x2a\x04\x4c\x76\x56\xb3\xb3\xb9\x9c\x24\x28\x1f\x01\x34\x5d\xf7\x96\xc7\x8d\x8d\x80\xff\xa9\x34\x49\x2e\x5c\x9f\xfb\xec\x7d\x26\xa1\x3f\x15\x6d\x82\x1b\xb7\x58\x33\x0d\x05\x60\x63\xd7\x18\x57\xd3\xa0\x03\x26\x08\xd8\xff\xc0\xb3\x1e\x53\x3a\x87\x6e\xd9\x91\x98\x86\x46\x2a\x88\xf5\x20\xf3\x8d\x50\x29\xbc\x1f\xc6\x8c\xf3\xc1\xd2\xc2\xc9\x03\xc6\x99\x71\xda\x85\xeb\x58\x40\x5e\x96\xc8\x43\xc0\x71\xfa\x7a\x7e\xb4\xc1\x47\x80\x53\x10\x80\x9a\x05\x1b\x08\x6e\x8b\x5c\xb0\x21\xb7\x82\xcd\x2c\x84\x6f\x49\x28\x27\x1a\x53\x50\x77\x02\x0b\xc2\xa2\x66\x37\x90\x7e\x0d\x5b\xa0\x53\x3b\x75\x89\x92\xb2\x99\x6e\xbc\x15\x2f\x25\x96\x60\x85\x78\x6b\x17\x9a\x71\x60\x83\x91\xaa\x10\xde\xc1\x13\x36\xed\x9d\xdb\x63\x16\xb1\x2c\x73\x61\x73\x29\x80\x2b\x03\x08\x0b\x50\xb7\x35\xb3\xfc\x09\x7d\x76\xed\xf1\xbf\xab\xe0\xde\x7e\xa7\x7a\x35\xa9\xc7\x12\x7f\x38\xdc\xae\x06\x0d\xab\x30\x22\xa2\x50\x43\x47\xf0\x55\x68\x9c\x97\xa8\xed\xb0\x41\x82\x5a\x0d\x27\x5d\x02\xbb\x46\xc2\x33\xff\x5b\x79\xbf\xb0\x17\xe2\x1b\xf0\x5d\x84\x8c\x41\x6c\x52\x0f\xe2\x47\x5e\x46\x4e\x11\xdf\x3f\x64\x67\x80\x68\x0f\x9f\xed\x4a\x95\xbb\x23\x2a\xfe\xf1\x78\x94\x96\xdb\xec\x6b\x06\xa1\xcc\x95\x53\x68\xd1\x76\x78\x1c\x09\x50\xf9\xd3\x42\x20\xd5\xdb\x44\xe2\xc5\xca\x5e\x0c\x85\x12\x39\x78\xf1\x07\x00\xe4\xae\xd9\x40\x0e\xac\x10\x8a\x8d\xa5\x2a\xac\x30\x2f\x9d\xb2\xca\x23\xfd\x08\xbe\x86\x4a\x2e\xd3\xaa\x32\x96\xde\xdc\x0d\x81\x3a\x94\x57\xa0\x39\xfb\xe3\x9b\xd7\xec\xab\xcf\x14\xfd\xe8\xba\x20\x02\xfb\xa4\xd5\x43\xec\xa0\x7f\x32\x8e\xc8\xea\x7b\xa1\xe2\x90\x71\x0d\x99\x12\x22\x35\xf8\x14\xd8\x49\xca\xb2\x4c\x1a\x0b\x64\x27\xa0\x6a\xe7\x02\x31\xe0\xed\x48\xc8\x1c\x7e\x83\x86\x75\x61\xeb\x2b\x0e\x77\x44\x9f\x7d\x71\x9f\x7e\x94\x46\xf4\xaa\x5f\x71\x2b\xe3\xaf\x38\x74\x8c\x41\x3b\x21\xeb\x33\xda\x04\xd0\x43\xcf\xea\x52\xb5\x15\xdc\x60\x61\x70\x2b\xa7\x05\xda\x85\x0e\xd7\xf8\x50\x94\xf8\x66\xd9\xbd\x98\xf6\xc0\x0d\x1a\xff\x0c\x42\xda\x32\xa3\xf8\xc4\x8c\xb4\xed\x79\x34\x7d\x80\xb3\xaf\x4c\x48\x7c\x3e\x6e\x64\xdf\x7d\x3c\x42\x17\x0c\x43\x8c\x81\x2d\x31\xf7\xe8\xec\xee\xa4\xa0\x69\x0a\x08\xfb\xee\xfc\xb8\xc3\x9f\x32\x3e\xb0\x02\xf7\xf4\x40\xe6\xc6\xce\x4e\x06\x9a\x80\x52\x25\x59\x91\xe2\x7d\xec\xd3\x82\x41\x87\x06\x83\xc5\x6d\x48\xf7\xbf\xb8\x28\xf7\x62\x8a\xc2\xa8\x6c\xf8\xf6\x2c\x0c\xf9\xf6\xac\x7f\xab\x6e\x55\xdd\x85\x0c\x20\xf3\xc5\x64\xa2\x73\x1b\xc0\x6e\x51\x0a\x4b\x83\x7c\x95\x51\xfe\xc1\xca\xc1\x06\xf0\x92\xa6\x3a\x7b\x38\x09\xb0\x07\xff\x8a\x2a\x94\x3f\x36\x51\x2a\xde\x4d\xab\x2b\x86\x46\xb3\x65\x63\x69\x0c\x48\xbb\x9a\xe5\xbe\x89\x54\x09\xdb\x6f\x3f\xe6\x2e\x79\x25\x5a\x2f\xd4\x3e\xbd\x12\x97\xcc\x08\xa7\xe0\xc2\xe5\x08\x17\x5a\x2e\x3d\xb3\x6b\xe6\x91\xa0\xe3\x86\x0d\x47\x19\x37\xae\xcc\xbd\x63\xbf\x4e\x1b\x00\xe4\x02\x76\x24\xd5\x70\x63\x3f\xc0\xb5\xef\xd1\x7e\x66\xc4\x29\x0d\x69\x90\x3f\xcd\x54\x23\x3e\x6d\xa2\x54\x25\xfc\xed\x05\x5b\xa7\xe2\x87\x51\x5a\x5d\x28\x31\x44\xea\x12\x8f\x6b\x5d\xf5\xd7\xfc\x43\xe4\xba\x72\x34\xbc\xc9\x22\xc7\x63\x91\x4a\x6e\x45\x36\x6d\x20\x13\x51\x32\xc3\x9b\x3e\xc5\x49\x67\xc3\x9c\x27\x70\x6a\xa4\x2e\x69\x67\x4b\xa1\x0d\xf6\x42\xd8\xa5\x85\x11\x33\xb4\x6f\xdc\xbd\x19\x06\xe4\x3f\x32\x43\xb4\xd1\xc7\x7e\x62\xb0\xa7\xa1\x8f\x1b\x2c\x33\xf4\xf9\x0a\xba\xdc\x44\x44\xb2\x02\x0d\xfc\x50\xb6\x7f\xc6\xef\x44\xd6\xe9\xf6\x87\x16\xf7\xbb\xfd\x81\x54\x0b\xfd\x93\x63\xfe\x4d\x8e\x8b\x71\x85\xab\x25\x3a\xab\x70\xb6\x80\x77\x08\x22\xad\x38\x5b\xc8\x73\xfc\x69\x80\x6a\xb4\x74\x7d\x61\xe2\x1b\xa8\x4c\xf3\x46\x1d\xce\xf2\xdf\x82\x94\xfa\x9b\x97\xc0\x5e\xd5\x83\xf6\x9c\x65\x00\x1c\x6e\xb0\x51\x71\x77\x82\xfc\x48\xb8\x0a\xdb\xb9\xd4\x84\x0c\x07\x6e\x20\x69\x65\x54\x99\xb1\x97\x4e\xb9\x17\xa5\xae\xe3\x3e\x8d\x63\x71\x8b\xe6\xcc\x67\x6b\xd1\x90\xc4\xb1\x57\x88\xcc\x06\xe2\x11\x94\x06\xae\xaa\x12\xc2\xa9\x29\x63\x5d\x28\x68\x06\x47\xf9\xa2\x98\xb8\x8f\xe1\x81\x76\x7f\x79\x19\x74\x13\xb4\x55\x39\x08\xa7\xf0\x76\xd8\x49\x4e\x2f\x19\xc8\xcc\x0a\xa7\xa1\x3a\xad\xd1\xc9\xa8\xa4\x6e\x5d\xd7\x6c\x08\x94\xa7\x89\xa8\x32\xdb\x94\x1a\xa6\xeb\x41\x2a\x90\xfe\x49\x44\x5d\xbc\x66\xd2\x80\x26\xf4\xc0\x65\xe6\xec\xd9\xd2\x73\xe0\x86\x9c\x8c\xb4\x36\x02\x8e\xbe\xd5\x41\x03\xf2\x6b\xe1\xa6\x85\xe7\xc3\x02\x1c\x0a\x1c\x54\x4a\x18\x10\x4c\x92\x1b\x9b\xef\x4f\x6c\xba\x9c\xdd\x4f\x03\x16\xb7\x54\x79\x2b\x05\xeb\x64\x66\x00\xd2\x30\x31\x9e\xd8\x69\xdd\x8c\x8a\x7e\x01\x6e\x9d\x04\x5f\x36\xa0\x65\xaa\x9c\x1c\xcc\x28\x72\xa8\xfb\xc5\x7d\x39\x2c\x78\xce\x95\x15\x55\xf6\xc8\xb0\x52\xf1\x12\xa8\x90\x1f\xc4\xbe\x47\xb5\x34\x1a\x6c\x56\x33\x69\x4c\xe1\xdd\x13\x52\x0d\x33\x51\x9e\x90\x68\x23\x84\x0d\x77\x11\x1c\xfc\xc0\x0d\x15\x3e\xb9\x9e\x9e\x1c\x54\x64\xf0\x7e\x98\x42\xa4\x8d\xca\x32\x78\x61\x8a\x3b\xe3\x1e\x56\x36\x8e\x20\xad\x84\xf5\x6f\xbc\x03\xc5\xe8\xb1\x00\x36\x1f\x96\x8b\x81\xc8\x3d\x1d\x24\x9f\xb1\x87\x4a\xf3\xc0\xad\xa8\x50\xa6\xc8\x4b\x66\x74\x6f\xe0\x84\xe8\x05\xce\x1a\x0e\x19\x0e\x26\x98\x32\xcc\x8c\x79\x96\x89\x9c\x25\xa3\x42\xdd\x43\xbc\x90\x33\x24\x28\xe2\xf9\x30\x2c\x34\x9c\x78\x6c\x1e\x7d\x45\x46\x00\xdb\x3a\x9b\x68\x63\xa4\xdb\x70\x7e\xda\x60\xc3\x55\xcf\x17\xe6\x8c\xa5\xa5\xb7\x08\xbe\x03\x94\x83\x06\xd7\xd8\x7b\x38\xc3\x1e\xf6\xb2\x10\x7a\xfd\xc8\x4d\xd0\x61\x83\x47\x0c\x58\xc2\xe6\xec\x13\xb4\xda\x39\x70\xdc\x27\x45\x06\x5f\x94\xe5\xb6\xd9\x48\x16\xb8\x89\xda\x93\x58\xfc\x20\x26\xb9\x00\x22\xfb\x77\x6c\x92\x09\x6e\x44\xbc\x82\xae\x72\x3d\xe1\x43\xd0\x8e\xae\x74\x26\x93\x69\xcd\x0f\x16\x36\x5d\x1a\x1b\x70\xdb\xee\x4d\xff\x7f\xf5\xd9\x35\xde\x67\xa8\xba\x4c\x84\x72\x87\xa5\x94\xa9\x82\xe9\x7c\x32\xe2\x91\x40\x2d\x2f\xc4\x2b\x60\xa0\xea\x79\x9b\x0d\x7f\xbe\x3d\x43\x0a\x4a\xf9\x8f\x20\x48\xee\x04\xe3\x69\x0a\xbb\xf3\x55\x2e\xc6\xda\x19\xc7\xd1\x0c\xc3\xe6\xcf\x4d\xf9\x12\xda\xa7\x7d\xf6\x51\xc2\xe5\x58\xe9\xba\xce\xe7\xc7\x16\xb9\xd6\x84\x45\xf3\x18\x6c\x14\x6d\x47\x9b\x2c\x28\x8e\xe0\x43\x18\xfb\xce\x5c\x7c\xf3\x86\x19\x0c\xdd\x1d\xd8\x91\x7e\x64\x43\x9e\xdf\xf1\x61\xcd\x53\x1e\x8d\x1a\x91\x0f\x74\x3e\x76\x6b\xd2\x38\x5f\x5f\x66\x46\xb4\x78\xba\x40\xe9\x0d\x1a\xeb\x04\xe7\x56\x3a\x6d\x32\x91\x69\x69\x0a\x83\xae\x80\x19\x43\x61\x8d\x9d\xb0\x0e\x84\xb0\x5e\x1b\xe8\x57\x16\x33\xc8\x91\x60\x6a\x5f\x44\x1f\x73\xfd\x63\x7d\x76\x99\x24\x62\x82\x11\xce\xaa\x65\x77\x8e\x63\x38\x67\x17\x7e\x03\xd6\x37\xa8\xf9\x81\x9d\xff\xc8\x93\xfb\x61\xae\x0b\x95\xba\xa7\x78\x24\x55\x9e\x99\x38\x54\x21\xbd\x7e\x5c\x6f\x24\x8c\xe0\x2e\xb6\xf4\x03\x3b\xff\x49\xe7\xa2\xd2\x2c\x4b\xb8\x49\x78\xea\x46\xef\xe7\x07\xdd\xf9\xd0\x9e\x41\xd3\x73\xae\xc1\x41\x6c\x63\x93\x0d\x39\x99\xdd\xee\x7b\xf4\x14\x94\xaa\x81\xf7\x56\xa1\xa8\x76\xf2\xb2\x07\xfc\x7e\x26\x04\xbc\x71\x5e\x74\x92\x14\x79\x94\x82\xdc\x32\xc8\x12\x76\x57\x6f\x5e\xbd\xd0\x79\xdc\x19\x75\x35\x3d\xb4\x15\x6f\x8a\x1a\x41\xde\x48\x1a\xab\xf3\x69\x9f\xcd\x74\xcd\xa9\xba\xee\xfa\x78\xc7\x2e\x9c\x36\x01\x69\x6a\x95\x04\xf2\xe0\x7d\xa8\xa8\x0b\xd0\xbe\xbb\x96\x20\x6d\x59\xe7\x6e\xbf\xdc\x71\xa7\xb6\x6a\xc5\xfe\x5e\xe8\xbc\x18\x5f\x20\x57\x6f\xc6\x87\x3f\x60\xb3\xd2\x5d\x58\xaf\x7d\xbb\x8f\x82\x19\x39\xc6\xcc\x3b\xd0\xb6\x1e\x41\x2e\xc5\x22\xf1\x6c\xca\x46\x1c\xac\x4b\x96\xf0\x64\x84\xf4\x92\x51\x93\xf1\x2d\x82\xb2\xad\x9d\x39\x0a\x1a\x6a\x63\x97\xb9\x65\xee\xa2\xb7\x90\xf2\x9f\x0b\x03\xb9\xff\x43\xf9\x20\x14\xcb\x1f\x36\xd9\x5d\x33\xde\xaf\x3d\x19\xf3\x72\x2c\x9c\xaa\x15\xec\x62\xb7\x7a\xaf\xca\xad\xe5\xd5\x1d\x10\xb5\x58\x93\x1f\x2d\xff\xa0\x61\xc3\x06\xcc\xc5\x90\xe7\x29\xa4\x55\xb8\x4d\xa5\xa6\x8c\x27\x56\x3e\x00\x6b\x78\xce\xa4\x0a\xff\xb5\xc9\x3c\x59\xec\xe2\x7e\xed\xe0\xdf\xd1\x7d\xa9\xf3\xf2\x94\x69\x7f\x89\xb9\xe7\xee\x40\x45\xc4\xf5\xc4\x4b\xd7\xef\x46\x3b\x12\x63\x54\x0a\x4b\x7a\x79\x9e\xa6\x3d\xaf\x76\xf5\xfc\xb3\x4e\x2c\x3b\x61\x50\x71\x68\xb2\x6b\x38\x56\xd3\x59\x2f\xe9\x26\x53\xf8\x38\x93\x5c\xc7\x9e\x2c\x4e\x1b\x23\xcc\x94\x37\xb2\x66\x44\xcf\xa7\xec\xb5\x0b\xe5\x9d\x54\x8e\x06\x8a\xed\x52\xa5\xda\x6a\xc2\x46\x43\x32\xc2\x5e\xb1\x08\xd1\x73\x96\x7b\x11\x1e\x54\x7c\x3d\x60\xae\xcf\x2d\x73\x30\x5c\x1b\x0d\x49\xa0\x94\x77\x41\x79\x17\x27\x91\x77\x41\x99\x0a\x94\xa9\x40\x99\x0a\x94\xa9\x40\x99\x0a\x7b\xcf\x54\xa0\x10\x38\x45\x45\x29\x2a\x4a\x51\x51\x8a\x8a\x52\x54\x94\xa2\xa2\x14\x15\x5d\x28\x04\x28\x50\x41\x81\x0a\x0a\x54\x50\xa0\x82\x02\x15\x0b\x02\x15\x0b\x5f\x70\x1f\xfb\x01\x27\xfe\xdf\xe7\xe7\xa0\x4d\xdb\xf5\xb7\x0f\x3b\x22\x52\x2d\x50\x0d\x0e\xeb\xcf\xd2\xd8\xe7\x18\x08\x71\xf7\xd8\x21\x07\x3f\x36\x40\xff\x23\xd0\xbc\xa3\x03\xcd\xeb\x1e\x9a\x1b\xcc\x10\xc6\x5b\x46\xb3\xf0\xf1\x8e\xe3\x59\x87\x0b\x6b\x12\x47\xd5\xee\xc2\xa3\x42\xa2\x13\x28\x24\x22\x78\x13\x82\x37\x69\xe8\xcc\x41\x2b\x65\x47\x03\x73\xb2\x7e\x87\xdf\xae\xec\x30\x26\xc4\x1e\x4a\x8f\x4f\x49\xe7\x05\x75\xe3\xf0\x74\xde\xef\xd8\x66\x48\x2d\x1e\x9c\x7e\x47\x80\x2d\x6d\x55\xaa\x2a\x48\xcb\x9e\x55\xaa\x23\x41\xc3\x20\x45\xaa\xba\xc8\x07\xab\x48\x51\xfd\xf1\x33\xaa\x3f\xa6\x42\x2b\x2a\xb4\xa2\x42\x2b\x2a\xb4\x22\x1b\x70\xd1\x29\x3a\x1c\x1b\x90\x4c\xaa\x7d\xd7\x53\x1c\xa0\x51\x15\x7d\xcc\xdb\x21\xea\xb2\xb3\xd0\xd9\x2d\x2c\xa3\x05\x34\x5d\x1d\x96\x4e\x54\x34\x0c\xf1\x0d\x12\xa2\xee\xdc\xbf\x78\x62\xfb\x8c\x7d\x74\xff\x1b\xfe\x3e\xe6\x12\x1c\x70\x86\x25\x59\x61\xac\xc8\x4b\xb9\xe1\x59\x01\x32\x79\x2f\xd8\x79\xec\xe9\xb9\x53\x0f\x83\x4a\xd3\x67\x57\x19\x57\xca\x27\x34\x80\xd2\xc1\x33\xd4\x73\xde\xfc\x69\x93\x8b\x18\xfa\xb8\x27\x75\x20\x4e\x5a\xd4\xa6\xef\xc2\xf4\xb9\x91\xb2\x8f\x38\x63\x4e\x04\x4c\x4c\x98\x1d\x9f\x33\x04\x14\x0b\x09\x57\x15\xc5\x78\xba\xe5\x89\x72\x9d\x39\xdd\x48\xf5\xe9\xca\xa9\x53\xba\xf5\xb7\xcd\x18\xb7\xfb\xd8\xf1\x0c\x73\x5c\x73\x07\x88\x41\xae\x79\xcc\x14\x0c\x27\x06\xb9\x6e\x18\xe4\x36\x51\xab\x16\xf1\xc7\x9d\x4e\x08\x9f\x18\xe4\xc8\x0b\xfd\xfc\xc2\xf9\xc4\x20\xd7\xe5\xbe\x21\x06\x39\x32\x8a\xc8\x28\x6a\x9a\xc8\xe3\x61\x92\x7b\xaa\x59\xb4\x2d\x46\xb9\xcd\x9c\x61\x8b\xf8\xe4\x4e\x47\x6f\xa3\xd4\x4b\xd2\xd5\x9e\x87\xae\x76\x40\x2a\x11\x49\xee\xf8\x0b\xa5\x5e\x56\xda\x3e\x29\x55\x63\xcb\x4c\x73\xdb\xcf\x63\x74\xe2\xdf\x1f\x1e\x77\x1f\xe5\x3a\xcb\x50\xb8\xef\x9e\x7b\xee\x6b\xd9\x95\xf7\xb1\x2b\x2d\x13\x1c\x9b\x58\xe8\x56\xb6\x47\xb8\x68\x84\x8b\x76\x74\xb8\x68\x27\x9d\x81\x4b\x28\x6f\x84\xf2\x46\x28\x6f\x84\xf2\x46\x28\x6f\x4d\xa2\x84\xf8\xe8\xc8\x97\x41\x60\x7c\x54\x0f\xf2\x9c\xeb\x41\x08\x79\x91\x90\x17\x09\x79\x91\x90\x17\x09\x79\x91\x90\x17\x09\x79\x91\xca\x24\xa9\x4c\x92\xca\x24\xa9\x4c\x72\x76\x47\x12\x1f\x1d\xc1\xbc\xae\xbd\xbb\x08\xe6\x95\x60\x5e\x09\xe6\xf5\xf4\xb3\x4d\x88\x8f\x6e\xaf\x7c\x74\xab\xd2\x12\x0e\x98\x99\x6e\xdd\x0c\x8d\x26\x8e\x3a\xca\xca\xa0\xac\x8c\xd3\xcb\xca\xa0\x3c\x06\xca\x63\xa0\x3c\x06\xca\x63\xa0\x3c\x86\xbd\xe7\x31\x50\x80\x9c\x62\xa6\x14\x33\xa5\x98\x29\xc5\x4c\x29\x66\x4a\x31\x53\x8a\x99\x2e\x14\x02\x14\xc6\xa0\x30\x06\x85\x31\x28\x8c\x41\x61\x0c\x62\xab\x6b\x55\xec\xda\xe8\xba\x26\xde\xba\x86\xc7\x0e\x2a\x48\x42\x0c\x76\xcf\x01\xb4\x6f\x7b\x0c\x76\xeb\x46\xbd\x9a\xb9\xec\x3a\x8b\x7b\x1d\x28\xb4\x4a\xf3\xf8\xda\x5d\x8c\x54\x98\x74\x02\x85\x49\x04\xb2\x42\x20\x2b\x0d\x9d\x39\x12\x35\xee\x38\xe0\x56\x9e\xd8\xf5\xbd\x12\x34\x3c\xa9\xef\xa7\xa4\x39\x6f\x97\xfd\xae\x03\xcd\xf9\x3b\xf6\x54\xfc\x98\x5d\x33\xe2\x3d\x05\x3a\xe6\x60\x54\xb4\x23\xc1\xe8\x20\x75\xac\xba\xc8\x07\xab\x8e\x51\x55\xf4\x33\xaa\x8a\xa6\xf2\x2f\x2a\xff\xa2\xf2\x2f\x2a\xff\x22\x4b\x72\xd1\x29\x3a\xc8\x02\x8a\xfd\x58\x64\x54\xff\xb1\x07\xfe\xbc\x83\xae\xfa\x68\x60\xd2\x5b\xd7\xa2\x6a\xe2\xd4\xdb\x56\xa9\x07\xb1\xeb\xc5\xbd\xd1\x5e\x8d\x20\x76\x3d\xff\x7f\x24\xdf\xc8\x65\x77\x50\x3c\x7b\x7b\x8e\x75\x57\x19\xf7\x5a\x74\x85\xb8\xf7\x9a\xc7\x4c\x61\x7c\xe2\xde\xdb\x06\xf7\xde\xba\x8a\x58\x23\x0b\xdf\x89\x26\x1f\x10\x1f\x1f\xf9\xbb\x9f\x5f\xfa\x01\xf1\xf1\x75\xb9\x6f\x88\x8f\x8f\xcc\x28\x32\xa3\x4e\x82\x99\xaf\x53\x43\x6a\x37\x1c\x7d\xeb\xbb\xd9\x1a\xd9\xfa\x4e\x54\xbf\xa3\xe4\x52\xd2\xee\x9e\x9b\x76\x77\x40\x4a\x14\xc9\xfa\xf8\x0b\x25\x97\xae\xe8\xfa\x49\xa9\x29\xdb\x64\xf5\x3b\xa4\xfc\xcc\x57\x26\xe1\x59\x35\x27\x73\x4b\xa1\x45\xf8\x4c\x90\x5f\x3b\x88\x31\x5e\xc3\xb0\xe8\xd2\x5a\x75\xf2\x79\x61\xb5\x5b\x1b\xa9\x86\x10\xfd\x87\x69\x7b\x86\x07\xbe\xa3\xf0\x4e\x65\x3a\x9b\xcf\xfe\xec\xbe\xdc\x61\x64\xa7\xe1\xd3\x14\xc9\x69\x1e\x33\x45\x72\x28\x92\xd3\x4d\x24\xa7\x23\xb9\xd7\x3e\xa4\x33\x2f\xf8\x8e\xd2\xee\xa7\xb8\x0e\x59\xfe\xcf\xcf\xf2\xa7\xb8\x4e\x97\xfb\x86\xe2\x3a\xe4\xeb\x21\xb3\x69\xab\x66\x53\x67\xe1\x9c\xed\x1a\x4e\xdb\x8a\xe4\x74\xe6\xd5\x68\x1f\xd2\x39\x11\xfd\xee\x29\x27\x88\x94\x3a\x52\xea\x8e\x48\xa9\x3b\x20\xdd\x89\x44\x7c\xfc\x65\xab\x22\x7e\x3f\x51\x1c\x52\x4a\x3a\x0d\xde\x6c\x43\x25\xf9\x8e\x75\x16\xb7\xc1\x3a\xbd\xed\x07\x6e\xe0\x3b\xbb\x8c\xdc\xe0\xc0\xe8\x82\xa2\xa0\x2d\x95\xe8\x50\x89\x0e\x05\x76\x28\xb0\x73\x90\x81\x9d\x8e\xe4\xe2\x1a\x91\x9d\x79\xc1\x78\x94\xa6\x3f\x85\x76\xc8\x0b\xf0\xfc\xbc\x00\x14\xda\xe9\x72\xdf\x50\x68\x87\xfc\x3e\x64\x56\x1d\x59\x8c\xe7\x88\x4b\x76\xba\xf3\x82\xac\x11\xe9\x39\x11\x7d\x8f\x4a\x78\x48\xdb\x7b\x6e\xda\xde\x01\x29\x55\x24\xfb\xe3\x2f\x54\xc2\xb3\xa2\xeb\x27\xa5\xb6\x9c\x54\x09\x0f\x62\xa5\xfe\xbd\xd0\x96\x9b\x1d\x61\xaa\x57\xd0\x65\xf5\x20\x92\x9a\xff\xbf\xae\x0b\x4b\x34\x9c\x2a\xae\xfa\xfb\xd8\x42\x55\xd5\x59\xd0\xce\x86\x48\x80\x0d\x8c\xff\xa5\x25\x8d\x74\x7b\x40\x4d\x6b\xbc\x6c\x99\x4e\x04\xbb\x3d\xfb\xf1\xcb\x97\x9f\x7f\xb9\xfc\xfa\xf3\xed\x59\x49\x0e\x8b\xe0\xad\x1a\x54\x03\x39\x9e\x64\x02\x58\x60\xef\x62\xab\x63\x3e\x65\x72\xa8\x10\x3a\xdb\xd9\xf2\xce\x12\x74\x52\xa4\x7c\x84\xe7\x82\x55\x49\x34\x91\x71\xf5\xdc\xb0\x54\x9a\x24\x17\xae\xcf\x25\x85\x77\x45\x13\xf1\xcc\xaf\xf5\x86\x22\x93\x23\xb7\x48\x68\x1a\x70\x0b\xa5\xb2\x22\x7f\xe0\x59\x8f\x29\x8d\xec\xfa\x40\x15\x1a\xe9\x63\x67\x19\x88\x81\xdf\x7d\xca\xc2\x98\x3d\x55\x6f\x24\x0a\x35\x4e\x33\xd1\xaa\x44\xe8\xf6\x8c\xb2\x9e\x08\xb3\x06\x16\xed\x7e\x85\x29\x48\x23\x61\xfd\x40\x70\x5b\xe4\x82\x0d\xb9\x15\x6c\x66\x21\x7c\x4b\x42\x39\xb1\x8a\xcc\xac\x13\x59\x32\xe9\x37\x35\xbb\x81\xe4\x6c\xd8\x02\x9d\x5a\xcf\x4b\x14\x9c\x93\x86\xf9\xbf\xa9\x12\x17\xa3\xdb\xa9\x82\x14\x6f\x84\x45\x96\x60\xcf\x3c\xed\x36\x53\x8d\xb2\x38\x42\x7a\xe3\x82\xf7\xd9\xb5\x54\x89\x98\x01\x81\xf7\x3b\xd5\xab\x58\x75\x3e\xe4\x1a\x25\x74\xec\x08\xbe\x0a\x8d\xf3\x92\xf9\x1f\x79\xb0\x03\x41\xad\x3b\xe9\x25\x4b\x31\xfe\x56\xde\x2f\xec\x85\xf8\x96\x88\x49\x49\xcd\x89\x4d\xea\x41\xfc\xc8\xcb\x88\x52\xed\xfb\x87\x5c\xd9\x10\xa7\xe2\xb3\x5d\x91\xee\xd6\x10\xb8\xd3\xa3\xd1\x10\x8f\x47\x69\x2b\xce\xbe\xe6\xde\x00\x5d\x54\xe4\x0c\xed\x8e\x40\x65\x9d\x16\x02\x38\xd6\xbf\x4d\xa4\x47\xef\x7f\x31\x14\x4a\xe4\x10\x7f\x18\x38\x03\xc4\x6a\x36\x90\x03\x2b\x84\x62\x63\xa9\x0a\x2b\xcc\x4b\x06\xfc\xe4\x89\x56\x03\x39\x0c\xa0\xff\xa8\x20\x07\xae\xf1\xf2\xe0\xd5\x6f\x08\xd4\xbf\x22\xfd\xed\x1f\xdf\xbc\x8e\xb7\xfd\x47\xd7\x05\x91\x7a\xf3\xc6\xea\x21\x76\xd0\x3f\x19\x47\x64\xf5\xbd\x50\x71\xc8\x9e\x0f\x59\x09\x91\xce\xd0\x28\x67\xc0\x91\x2e\x2d\xaa\xe9\xb9\x30\x96\x23\xf7\xb6\x44\x76\xdb\x48\x19\x3d\xcf\x99\xdd\x67\x5f\xdc\xa7\x1f\x65\xc0\x97\xf7\x5f\x71\x2b\xe3\xaf\x38\x74\xd7\x79\xa6\x62\xa4\x89\x8e\xf6\x04\xf4\x30\x70\x31\x57\xec\x0c\x37\x58\x18\xdc\xca\x69\x81\x76\xa1\xc3\xe0\x2a\x0c\x9b\x1b\xa8\xd6\xef\xc5\x14\xd1\xd3\xe3\x9f\x33\x67\x7f\x56\x79\xa3\x1f\x47\x12\x29\xb9\xa5\xaa\x4c\x48\x7c\x3e\x6e\xe4\x0a\xd1\xb2\x61\x17\x11\x6d\x1f\x61\x58\x73\xb1\x26\x5d\xf6\xcc\x64\xcc\x33\x65\x7b\x24\x76\xd0\xbf\xc1\xd8\x71\x1b\xd2\xfd\x2f\x2e\xca\xbd\x98\x7a\xee\xf1\xd8\xf0\xed\x59\x18\xf2\xed\x99\xa7\x16\x5f\xcc\x45\x0e\x17\x44\x9d\x8d\x3c\xca\x3f\x58\x39\xd8\x00\x81\x72\xb9\x32\x7b\x38\x09\x55\x76\x56\x7f\x6c\xa2\x54\xf4\x00\xf4\x7e\xc5\xd0\xe0\xb6\x6c\x2c\x8d\x01\x69\x57\xb3\xfa\x37\x91\x2a\x61\xfb\xed\xc7\x54\x26\x8f\x46\xeb\x85\xda\xa7\x47\xe3\x92\x19\x51\x32\x09\xb8\x0b\x2d\x97\x89\x8d\x7c\xcf\x6e\x6e\xe2\x86\x8d\xc4\x19\x53\x7f\xb8\x30\xdc\x50\x67\x31\x11\x0f\x22\x9f\xda\x91\x54\xc3\x8d\x7d\x08\xd7\xbe\x47\xfb\x99\x11\x22\x9d\x79\x46\xa4\x33\x4f\xda\xfe\x19\xbf\x13\x59\xa7\xdb\x1f\x5a\xdc\xef\xf6\x07\x3e\x77\xf4\x6d\x8e\xf9\x37\x39\x2e\xc6\x4c\x15\xe3\x3b\xb7\x49\x06\xf1\x32\x35\x38\x5b\x40\x63\x0e\xf1\x5f\x9c\x2d\xa4\x85\xff\x34\x40\x35\x5a\xba\xbe\x20\xbf\xca\xbc\x6e\x02\xb4\xfa\x23\xc1\xfe\x16\xa4\xd4\xdf\x02\xc5\x8b\x2a\x67\x3f\xb0\xaf\xe0\x46\xc5\xdd\x09\xf2\x23\xe1\x2a\x6c\xe7\x52\x13\x32\x7c\xec\x4e\x99\xb4\x32\xaa\xcc\xd8\x4b\xa7\xdc\x8b\x52\xd7\x71\x9f\xc6\xb1\xb8\x45\x73\xe6\xb3\xb5\x68\x48\xe2\xd8\x51\x55\xc6\xb1\x89\x47\x50\x1a\xb8\xaa\x4a\x08\xa7\xa6\x8c\x75\xa1\xa0\x19\x1c\xe5\x8b\x62\xe2\x3e\x86\x07\xda\xfd\xe5\x65\xd0\x4d\xd0\x56\xe5\x20\x9c\xc2\xdb\x61\x27\x39\xbd\x64\x20\x33\x2b\x9c\x86\xea\xb4\x46\x27\xa3\x92\xba\x75\x5d\xb3\x21\x50\x9e\x26\x31\x91\xae\xae\x61\x22\x17\x8c\x15\xf9\x58\x2a\x11\x75\xf1\x9a\x49\x03\x9a\xd0\x03\x97\x99\xb3\x67\x4b\xcf\x81\x1b\x72\x32\xd2\xda\x00\xd3\xbc\x6b\xc7\x6b\x40\x7e\x2d\xdc\xb4\xf0\x7c\x58\x80\x43\x81\xab\x34\x48\x5b\x98\x24\x37\x36\xdf\x9f\xd8\x74\x39\xbb\x9f\x06\x2c\x6e\xa9\xf2\x56\x0a\xd6\xc9\xcc\x00\xa4\x61\x62\x3c\xb1\xd3\xba\x19\x15\xfd\x02\xdc\x3a\x09\xbe\x6c\x40\xcb\x54\x39\x39\x98\x51\xe4\x50\xf7\x8b\xfb\x72\x58\xf0\x9c\x2b\x2b\x82\x92\x52\xde\xf4\xa6\xbc\x04\x40\x1f\x2c\x40\x6d\x88\x7d\x8f\x6a\x69\x34\xd8\xac\x66\xd2\x98\xc2\xbb\x27\xa4\x1a\x66\xa2\x3c\x21\xd1\x46\x08\x1b\xee\x22\x04\x07\x7a\x6e\x78\xe1\x93\xeb\xe9\xc9\x41\x45\x06\xef\x87\x29\x44\xda\xa8\x2c\x83\x17\xa6\xb8\x33\xee\x61\x65\xe3\x08\xd2\x4a\xb2\xc1\x8d\x77\xa0\x18\x3d\x16\x56\x8e\x85\x1b\xfb\x40\xe4\x39\xb0\x5d\x39\xbd\xba\x66\x0f\x95\xe6\x81\x5b\x51\xa1\x4c\x91\x8b\x48\xb9\xe0\x0d\x9c\x10\xf9\xc0\x59\xc3\x21\xc3\xc1\x04\x53\x86\x99\x31\xcf\x32\x91\xb3\x64\x54\xa8\x7b\x88\x50\x72\xe6\x2e\x51\x96\xf1\x7c\x18\x16\x1a\x4e\x3c\x36\x8f\xbe\x22\x23\x04\x6c\xbc\x89\x36\x46\xba\x0d\xe7\xa7\x0d\x36\x5c\xf5\x7c\x61\xb6\x5b\x5a\x7a\x8b\xe0\x3b\x22\xc5\xf5\x00\xe3\xd9\xab\xe7\x7e\x0f\x7b\x59\x08\xbd\x7e\xe4\x26\xe8\xb0\xc1\x23\xe6\xe6\x64\xde\x3e\x41\xab\x9d\x1b\xb7\xc0\x49\x91\x21\x09\x59\xb9\x6d\x36\x92\x05\x6e\xa2\xf6\x24\x16\x89\x8b\x8d\xb8\xd8\x88\x8b\x8d\xb8\xd8\x76\xe7\x29\x28\x55\x03\xef\xad\x42\x51\xed\xe4\x65\xcf\xa9\x42\x8f\x26\x04\xcb\x71\x5e\x74\x92\x14\x79\x94\x82\xdc\x32\xc8\x6f\x76\x57\x6f\x5e\xbd\xd0\x79\xdc\x19\x75\x35\x3d\xb4\x15\x6f\x8a\x3b\x31\x94\x4a\x79\x6f\xc0\x48\x1a\xab\xf3\x69\x9f\xcd\x74\xcd\xa9\xba\xee\xfa\x78\xc7\x2e\x9c\x36\x01\xc9\x73\x95\xd4\xf7\xe0\x7d\xa8\xa8\x0b\xd0\xbe\xbb\x96\x20\xe1\x5a\xe7\x6e\xbf\xdc\x71\xa7\xb6\x6a\xc5\xfe\x5e\xe8\xbc\x18\x5f\x40\x95\xd2\x20\xe3\xc3\x1f\xb0\x59\xe9\x2e\xac\xd7\xbe\xdd\x47\xc1\x8c\x1c\x63\x3e\x20\x68\x5b\x8f\x20\x97\x04\x4b\x8a\x3c\x17\xca\x66\x53\x36\xe2\x60\x5d\xb2\x84\x27\x23\x01\x2a\x44\xd4\x64\x7c\x8b\xa0\x6c\x6b\x67\x8e\x82\x86\xda\xd8\x65\x6e\x99\xbb\xe8\x2d\x14\x2b\xe4\xc2\x40\xd5\xc2\x50\x3e\x08\xc5\xf2\x87\x4d\x76\xd7\x8c\xf7\x6b\x4f\xc6\xbc\x1c\x0b\xa7\x6a\x05\xbb\xd8\xad\xde\xab\x72\x6b\x79\x75\x07\x44\xad\xc1\x43\x1b\x2c\xff\xa0\x61\xc3\x06\xcc\xc5\x90\xe7\x29\xa4\x64\xb8\x4d\xa5\xa6\x8c\x27\x56\x3e\x48\x3b\x75\xd7\xa0\x54\xe1\xbf\x36\x99\x27\x8b\x5d\xdc\xaf\x1d\xfc\x3b\xba\x2f\x75\x5e\x9e\x32\xed\x2f\x31\xf7\xdc\x1d\xa8\x88\xb8\x9e\x78\xe9\xfa\xdd\x68\x47\x62\x8c\x4a\xa1\xb1\xb9\xe0\x63\x98\x9e\x34\xed\x79\xb5\xab\xe7\x9f\x75\x62\xd9\x09\x83\x8a\x43\x93\x5d\x23\x07\xd7\xac\x97\x74\x93\x29\x7c\x9c\x49\xf0\x63\x4f\x16\xa7\x8d\x51\x66\xca\x39\x21\x2a\xc6\xd9\x17\x96\x52\x31\x96\x2a\xd5\x36\x13\x39\x9a\xd3\x11\xf6\x4a\xc6\x88\xbe\xb3\xdc\x0b\xf1\xa0\xe4\xeb\x01\x73\xbd\x6e\x9d\x89\xe1\x5a\x99\x4f\x34\xa5\xec\x0b\xca\xbe\x38\x95\xec\x0b\xca\x57\xa0\x7c\x05\xca\x57\xa0\x7c\x05\xca\x57\xd8\x7b\xbe\x02\x05\xc2\x29\x36\x4a\xb1\x51\x8a\x8d\x52\x6c\x94\x62\xa3\x14\x1b\xa5\xd8\xe8\x42\x21\x40\xe1\x0a\x0a\x57\x50\xb8\x82\xc2\x15\x14\xae\x58\x10\xae\x58\xf8\x82\xfb\xd8\x0f\x38\xf1\xff\x3e\x3f\x07\x6d\xda\xae\xbf\x7d\xd8\x71\x91\x4a\x41\x6b\xc5\x65\xfd\x59\x1a\xfb\x1c\x03\x22\xee\x26\x3b\xec\x20\xc8\x06\x98\x86\x04\xfc\x77\x74\xc0\x7f\xda\x74\x1c\xea\x42\x53\x84\xf1\xd6\x51\x2d\x7c\xa1\xf3\xb8\xd6\xc1\x42\xa6\x54\xc7\xd5\xee\xe2\xa3\xc2\xa2\x13\x28\x2c\x22\xa8\x14\x82\x4a\x69\xe8\xcc\x81\xab\x67\xc7\x02\x91\xb2\x51\x97\xdf\xae\xec\x32\x26\xc9\x1e\x4e\x9f\x4f\x49\x03\x06\xd5\xe3\x10\x35\xe0\xef\xd8\xa6\x38\x2e\x1e\xca\x7f\x47\x70\x2e\xed\x55\xac\x2a\x84\xcb\xde\x55\xac\x23\xc1\xca\x20\xb5\xaa\xba\xc8\x07\xab\x56\x51\x75\xf2\x33\xaa\x4e\xa6\x32\x2c\x2a\xc3\xa2\x32\x2c\x2a\xc3\x22\x8b\x70\xd1\x29\x3a\x24\x8b\x90\xcc\xab\xfd\x57\x5c\x1c\xa4\x81\x15\xbd\xcf\xdb\x21\x38\xb3\x33\x80\xde\xed\x6c\xa4\x66\x3a\xb3\x6e\x8b\x2b\x2a\xba\x86\xf8\x06\x29\x53\x77\xee\x5f\x3c\xb1\x7d\xc6\x3e\xba\xff\x0d\x7f\x1f\x73\x09\x8e\x39\xc3\x92\xac\x30\x56\xe4\xa5\x04\xf1\x9c\x06\x99\xbc\x17\xec\x3c\xf6\xf5\xdc\x29\x8a\x41\xb9\xe9\xb3\xab\x8c\x2b\xe5\x53\x1e\x40\xfd\xe0\x19\x6a\x3c\x6f\xfe\xb4\xc9\x95\x0c\x7d\xdc\x93\x62\x10\x27\x2d\xea\xd5\x77\x61\xfa\xdc\x48\xd9\x47\x9c\x31\x27\x0c\x26\x26\xcc\x8e\xcf\x2a\x02\x82\x88\x84\xab\x8a\x8a\x3c\xdd\xf2\x44\xb9\xce\x9c\x6e\x2c\xfb\x94\x25\xd6\x29\xdd\xfe\x5b\x66\xce\xdb\x4b\x74\xb9\xce\x98\xb7\xb0\x0b\xc4\x94\xd7\x3c\x66\x0a\x98\x13\x53\x5e\x37\x4c\x79\x9b\x29\x58\x0b\x78\xf1\x4e\x2a\xcc\x4f\x4c\x78\xe4\x99\x7e\x7e\x01\x7f\x62\xc2\xeb\x72\xdf\x10\x13\x1e\x99\x47\x64\x1e\x1d\x39\x03\x5e\x07\x06\xd2\xb6\x98\xef\x36\x75\x8f\x2d\xe0\xb9\x3b\x29\xfd\x8d\xd2\x34\x49\x6b\x7b\x2e\x5a\xdb\x01\x29\x47\x24\xc3\xe3\x2f\x94\xa6\x79\xca\x6a\xc7\x76\x19\xec\xf6\x97\xf1\xf8\x0a\xe9\x74\xab\x89\x8f\xdb\x89\xed\x2d\xa6\xed\xed\x28\xca\xd7\xc0\xd1\x4b\xf7\x10\x1d\xea\x25\x87\x9a\x42\x2d\x14\x6a\xa1\x50\xcb\xd3\x47\xe3\xff\x45\xa1\x96\x6a\xa8\xe5\xa9\xf2\x6e\x75\xd0\xe5\x54\x48\xe9\x29\xf4\x42\x46\xfc\xf3\x33\xe2\x29\xf4\xd2\xe5\xbe\xa1\xd0\x0b\xb9\x6d\xc8\x5c\xa2\xd0\xcb\xb6\x42\x2f\x4f\xf7\x5e\xac\x0e\xc2\x9c\x8a\x3e\x47\xa1\x18\xd2\xe2\x9e\x8b\x16\x77\x40\xca\x12\xc9\xf4\xf8\x0b\x85\x62\x4e\x59\x0d\x39\x81\x50\x8c\x11\x49\x2e\xac\xd9\x11\xdc\x44\xa5\x10\x57\x0f\xd8\x35\x7c\x7b\x89\xae\x52\xc5\x9c\x78\x1f\x5f\x2d\x95\x96\xf9\x06\x88\xb1\x86\x18\x6b\x8e\x8e\xb1\xe6\xa4\x31\x50\x88\x7f\x87\xf8\x77\x88\x7f\x87\xf8\x77\x88\x7f\xa7\x49\x94\xec\x80\x05\x98\x9c\x14\x87\xee\xa4\x20\x9a\x24\x42\xe4\x7a\xc6\x88\x5c\xc4\x89\x45\x9c\x58\xc4\x89\x45\x9c\x58\xc4\x89\x45\x9c\x58\xc4\x89\x45\x40\x95\x04\x54\x49\x40\x95\x04\x54\x39\xbb\x23\x77\xe0\x29\x20\x02\x3e\x22\xe0\xdb\xc2\xde\x22\x02\xbe\x96\x67\x90\x08\xf8\x28\x8d\xa4\xf3\x88\x9e\xcf\xe5\x6b\x17\xca\x3b\xa9\xf4\x0c\x14\xdb\xa5\x4a\xb5\xbd\x5c\x8d\xb9\x3c\x84\xbd\x02\xd8\xa2\xd3\x2c\xf7\xd2\x3b\x68\xf7\x7a\xc0\x5c\x77\x57\x27\x5d\xb8\xd7\x67\xb3\x43\x29\xd1\x82\x12\x2d\x4e\x20\xd1\x82\x52\x13\x28\x35\x81\x52\x13\x28\x35\x81\x52\x13\xf6\x9e\x9a\x40\x31\x6f\x0a\x83\x52\x18\x94\xc2\xa0\x14\x06\xa5\x30\x28\x85\x41\x29\x0c\xba\x50\x08\x50\x64\x82\x22\x13\x14\x99\xa0\xc8\x04\x45\x26\x16\x44\x26\x16\xbe\xe0\x3e\xf6\x03\x4e\xfc\xbf\xcf\xcf\x41\x9b\xb6\xeb\x6f\x1f\x76\x08\x24\x96\xa5\xa2\xaf\xfa\xb3\x34\xf6\x39\x06\x3d\xdc\x15\x76\xa0\x81\x8e\x0d\x30\x04\x09\x70\xef\xe8\x00\xf7\xb4\xe9\x38\x9c\x85\xc6\x07\xe3\xab\x23\x57\xf8\x64\x77\xb1\xab\x03\x05\x33\xf1\x03\x6a\x77\xb9\x51\x81\xd0\x09\x14\x08\x11\x8a\x09\xa1\x98\x34\x74\xe6\x50\x75\xaf\xe3\x80\x2f\x59\xb7\xaf\x7b\xa5\xa2\x5e\xaf\xb3\xa7\xa4\xd0\x82\x42\x71\x50\x0a\xed\x77\x6c\x6d\x78\x15\x0f\x71\xbf\x23\x94\x95\x16\xaa\x52\x15\x59\x65\x7f\xaa\xd2\x91\x40\x58\x90\x96\x54\x5d\xe4\x83\xd5\x92\xa8\x68\xf8\x19\x15\x0d\x53\x75\x14\x55\x47\x51\x75\x14\x55\x47\x91\x81\xb7\xe8\x14\x1d\x64\x7d\xc1\x7e\xcc\x28\x2a\x8f\x58\x58\x1e\x71\x58\xa6\x55\x74\x23\x6f\x87\xf9\xab\xae\x60\xad\x34\x92\x9a\x88\xbe\x3a\xab\x84\xa8\x28\x1b\xe2\x1b\xe4\x37\xdd\xb9\x7f\xf1\xc4\xf6\x19\xfb\xe8\xfe\x37\xfc\x7d\xcc\x25\x38\xda\x0c\x4b\xb2\xc2\x58\x91\x97\x22\xc4\xd3\x02\x64\xf2\x5e\xb0\xf3\xd8\xc9\x73\xa7\x29\x06\xed\xa6\xcf\xae\x32\xae\x94\xcf\x4f\x00\xfd\x83\x67\xa8\xf2\xbc\xf9\xd3\x26\x77\x32\xf4\x71\x4f\x9a\x41\x9c\xb4\xa8\x58\xdf\x85\xe9\x73\x23\x65\x1f\x71\xc6\x9c\x34\x98\x98\x30\x3b\x3e\x05\x08\x38\x16\x12\xae\x2a\x3a\xf2\x74\xcb\x13\xe5\x3a\x73\xba\x81\xe7\xc3\x16\x59\xe4\x3a\xdb\x2e\xab\xdc\xae\x43\xc1\x55\x3a\xb9\xa6\x6f\x13\x8f\x5c\xf3\x98\x29\xac\x4d\x3c\x72\xdd\xf0\xc8\xad\xa9\x3d\x35\xd2\xc6\x9d\x4a\x30\x9e\x98\xe2\xc8\xef\xfc\xfc\xa2\xf3\xc4\x14\xd7\xe5\xbe\x21\xa6\x38\xb2\x7d\xc8\xf6\x39\x4e\x8a\xb8\xa7\x59\x3f\xdb\xe2\x86\x5b\xdb\xbf\xd5\x48\x05\x77\x2a\x3a\x1a\x25\x4c\x92\x4a\x76\xf2\x2a\xd9\x01\x69\x3e\x24\xa0\xe3\x2f\x94\x30\x79\x5a\xca\xc4\x36\x89\xde\xb6\x9f\x82\x98\x3f\xc8\x44\xf0\x24\xd1\x85\xda\x1b\xd3\x1b\xf4\xe1\x12\xfb\xd0\x32\x2f\xb1\x99\xf1\x6d\x51\x43\x04\x48\x46\x80\x64\x47\x07\x48\x76\xd2\x69\xb3\x04\xaf\x46\xf0\x6a\x04\xaf\x46\xf0\x6a\x04\xaf\xd6\x24\x4a\x88\xf9\x8d\xfc\x14\x84\x82\x47\x45\x1c\xcf\xb9\x88\x83\x20\x0f\x09\xf2\x90\x20\x0f\x09\xf2\x90\x20\x0f\x09\xf2\x90\x20\x0f\xa9\xb6\x91\x6a\x1b\xa9\xb6\x91\x6a\x1b\x67\x77\x24\x31\xbf\x11\xbe\xea\xda\xbb\x8b\xf0\x55\x09\x5f\x95\xf0\x55\x4f\x3f\x93\x84\x4a\x9b\xf7\xcc\xfc\xb6\x20\x1f\xe1\xa0\x19\xe0\x5a\x26\x63\x34\x33\xc1\x51\x02\x06\x25\x60\x9c\x4c\x02\x06\xa5\x2c\x50\xca\x02\xa5\x2c\x50\xca\x02\xa5\x2c\xec\x3d\x65\x81\x62\xe1\x14\x1e\xa5\xf0\x28\x85\x47\x29\x3c\x4a\xe1\x51\x0a\x8f\x52\x78\x74\xa1\x10\xa0\x88\x05\x45\x2c\x28\x62\x41\x11\x0b\x8a\x58\x10\x23\x5c\xcb\xc2\xd5\xaa\xcf\x9a\x98\xe1\x1a\x1e\x3b\x8c\x40\x08\x31\xc4\x3d\x07\x28\xbd\x6d\x32\xc4\xb5\x8c\x6c\x2d\x62\x8a\x7b\x6a\x6c\xeb\x60\x01\x50\x6a\x03\x6b\x77\xf9\x51\x81\xd1\x09\x14\x18\x11\x10\x0a\x01\xa1\x34\x74\xe6\xd0\x75\xb4\x63\x01\x44\xd9\xac\xcf\x7b\x66\x92\xdb\xa4\xd3\xa7\xa4\x08\x6f\x9b\x51\x6e\x73\x45\xf8\x3b\xb6\x31\xac\xcb\xee\x19\xe6\x36\x40\x74\xd9\xbf\xaa\x75\x24\xd0\x19\xa4\x5d\x55\x17\xf9\x60\xb5\x2b\x2a\x56\x7e\x46\xc5\xca\x54\x95\x45\x55\x59\x54\x95\x45\x55\x59\x64\x18\x2e\x3a\x45\x07\x65\x18\x92\x91\x75\x00\x25\x18\x87\x69\x66\x45\x57\xf4\x6e\x58\xe6\x5a\x1a\x4a\xcd\x6c\x73\x1d\x57\x5b\x10\xeb\x5c\xdc\x0d\xed\xb5\x03\x62\x9d\xf3\xff\x47\x62\x8b\x24\xc0\xfc\x0b\xfb\x61\x9f\xdb\x4f\xb8\xb9\xce\x42\xb7\xb8\x0f\xc4\x46\xd7\x3c\x66\x0a\xa1\x13\x1b\xdd\x76\xd8\xe8\x5a\x6a\x59\x0b\x58\xe9\x4e\x2b\xf0\x4f\xec\x74\xe4\xa3\x7e\x7e\x19\x00\xc4\x4e\xd7\xe5\xbe\x21\x76\x3a\xb2\x91\xc8\x46\x3a\x76\x96\xba\x2e\xac\xa4\x5d\xb1\xd5\xb5\xf6\x93\x2d\x60\xad\x3b\x2d\x1d\x8e\x92\x37\x49\x75\x7b\x36\xaa\xdb\x01\x69\x48\x24\xc8\xe3\x2f\x94\xbc\x79\xda\xca\xc7\x76\x59\xed\x76\x9a\x06\x59\xa3\xb5\xdb\x0f\x9e\xda\x12\x95\x65\x09\x90\x5a\x07\x31\x3d\x42\x50\x23\x04\x35\x42\x50\x23\x04\x35\x42\x50\x23\x04\x35\x42\x50\x23\x04\x35\x42\x50\x23\x04\xb5\x85\x33\x42\x08\x6a\x84\xa0\x46\x08\x6a\x84\xa0\x46\x08\x6a\x84\xa0\x46\x08\x6a\x84\xa0\xd6\xf9\xde\x22\x04\xb5\x96\x67\x90\x10\xd4\x0e\x37\xee\xb2\xf0\x85\xe7\x8d\xa0\x46\xd0\x69\x0d\x8f\x75\x15\x2a\xd9\x5d\x12\x3b\x25\x7c\x1f\x5d\xc2\xf7\xd6\x31\xd3\x96\x44\xaf\x96\x82\xa5\x9d\x5e\xa2\x0d\x65\xd8\x50\x86\x0d\x65\xd8\x50\x86\xcd\x21\x2a\x60\x47\x95\x5a\x73\x5c\xb5\xfa\xcf\x51\xaf\xdd\x09\x12\xda\xf6\x73\x7f\xf6\x84\x7d\xb6\x44\x65\x5a\x0a\x7a\xb6\x3b\x95\x89\xd0\xce\x48\x59\x22\xb4\x33\x42\x3b\xdb\x60\xb1\x09\xed\x8c\xd0\xce\x08\xed\x8c\xd0\xce\xc8\xce\x5b\x74\x8a\x0e\x92\xc5\x7d\x3f\xb6\x14\x91\xd0\xef\x0f\x01\x6d\xc3\xb0\xc1\x0e\xa1\xcf\x96\xd6\x72\x2e\xc4\x3c\xeb\xa0\x30\x82\xc0\xce\xe2\xfa\xb7\x57\x0e\x08\xec\xcc\xff\x1f\x49\x2d\x72\xa1\xad\xbe\xe5\x77\x81\x72\xb6\xbb\xc8\x70\x03\xbc\xd9\xfa\x21\xdf\x43\x89\xf6\x52\x98\xfb\xe8\xc2\xdc\x84\x6b\xb6\xb6\x0a\xb5\x0c\xd0\xec\xf8\x83\xf3\x84\x64\x46\xfe\xe7\xe7\x17\xac\x27\x24\xb3\x2e\xf7\x0d\x21\x99\x91\x01\x44\x06\xd0\xec\x24\x1e\x17\x84\xd9\xa6\x26\xd0\x4e\xb1\xcb\x96\x3a\xba\x96\x81\x96\x1d\xbf\x9e\x46\x49\x94\xa4\x97\x9d\xbe\x5e\x76\x40\xea\x0f\x49\xe9\xf8\x0b\x25\x51\x9e\x9a\x4a\xb1\x03\x60\xb2\x9d\x65\x25\xbe\x9a\xe4\xfa\xdb\x74\xdb\xb9\x89\x89\x56\x4a\x24\x96\x7d\xf8\xf8\xf9\xe3\xcd\xc7\xd2\x3c\xb4\x9a\xc1\xf7\x9d\x80\x6a\x51\xe9\x81\xad\xa0\x96\x82\x79\x7e\x73\xba\xca\x15\x0c\xa7\xc5\xa5\xb3\xb0\xeb\x3b\xbb\x18\x66\xee\xd7\x67\x78\x92\xfc\x82\x6e\xfd\x34\xc1\xa6\x08\x29\xa1\x07\x12\x90\x0e\x47\xe2\xcf\x1f\x6f\x3a\x39\x0f\x7f\x16\x96\x0e\x43\x53\x2f\xe8\x30\x74\x7e\x18\x46\x82\xa7\xdb\x39\x0d\x7f\xf9\x78\xf9\xa1\x93\xe3\xf0\x17\xc1\x53\x3a\x0f\x4d\xbd\xa0\xf3\xd0\xf9\x79\xd0\xfe\xed\xad\x1c\x89\x2f\x57\x37\x9f\xbe\xfc\x7a\xdd\xc9\xa9\xf0\xc3\xa4\x83\xd1\xd4\x0b\x3a\x18\x9d\x1f\x8c\x6e\x72\x3c\x16\x77\x84\xf2\x3d\x9a\xc7\x7c\x50\xf9\x1e\x57\xdc\x22\xea\xd9\x48\x00\x28\x93\x5b\xdd\xdf\xbe\x7e\xf6\x8e\x52\x0f\x10\xc6\xbc\x5d\xca\x84\x4a\x27\x5a\x2a\x6b\xdc\xac\x0c\x06\xf2\x9b\x30\xe8\x36\xab\x80\xdd\x5a\x0d\xd5\x1e\xa1\x68\xc6\x23\x1f\xf9\x5b\x31\x60\x91\x59\x1d\xda\x84\x78\x17\x13\xdf\xf8\x78\x92\xf9\x72\x8d\xc7\x91\xce\xa2\x3f\xd4\xf5\xc6\x75\xd0\x9d\xdd\x77\xaf\x5e\x65\x3a\xe1\xd9\x48\x1b\xdb\x60\x49\xbb\x63\x76\x61\xa6\xc6\x8a\x71\x69\x49\x8b\x8c\x1b\x2b\x13\x23\x78\x9e\x8c\x2e\x32\x3d\x1c\x4a\x35\x7c\xf5\x5f\xf8\xdf\xff\xe7\xef\xff\x5e\x18\x91\xbf\xbb\x97\xe3\x64\x34\xed\xb3\x30\x1b\xcd\x3f\xaf\x9b\xee\x32\xb7\x0b\xf6\x91\xec\xb2\xae\x44\xbb\xba\xbc\x79\xff\x97\x4e\xe4\x19\xc4\x7d\x49\x9a\x35\xf5\x82\xa4\x59\xf7\xd2\xac\x7b\x98\x93\x70\x22\xbe\x5c\x77\xe3\x05\xb8\xd2\x86\xdc\x00\x8d\xbd\xa0\xf3\xd0\xfd\x79\xe8\x3a\x7c\x1d\x8f\xc3\x6f\x1d\x9d\x86\x82\x0e\x43\x63\x2f\xe8\x30\x74\x75\x18\xbe\x63\x4f\x0c\xbd\xbc\xfa\xa7\x53\xe2\xb6\x8e\x0e\xb1\xe3\x08\xcc\xef\xd2\x8e\xae\xea\xca\x29\x1d\x34\x3a\x68\xcf\x3b\x12\x43\x87\x82\x0e\x05\xdb\xce\xa1\x38\xea\x88\x0c\x9d\x0b\x3a\x17\x6c\x3b\xe7\xe2\x34\x22\x33\x74\x40\xe8\x80\xb0\x2d\xd9\xf0\x14\xa1\xa1\x08\x8d\xeb\x6a\xc0\xf7\x0f\x40\x45\xeb\x0d\x69\xfe\x17\x8a\x37\x51\xbc\xe9\x39\xc5\x9b\x48\x46\x93\x8c\x66\x5b\x92\xd1\xc7\x1c\x77\xa2\x73\x41\xe7\x82\x6d\xe9\x5c\x1c\x6d\xfc\x89\x0e\x05\x1d\x0a\xd6\xe9\xa1\xf8\x8e\x6d\x1e\x87\x32\x08\x82\x58\x89\x40\x6d\x07\x7e\x0f\xbf\x13\x4c\xc7\x8e\x80\xf8\x3c\x82\x63\x8b\x83\x44\x65\x86\xcf\xbd\x72\x8f\xd0\xd0\x18\xf9\x5e\x0e\xcc\xf7\x42\x68\x68\x0b\x1e\x3c\x06\x34\xb4\xcd\x25\xda\x32\x5c\xb4\x06\x91\x76\x94\xa8\x1b\x84\x8e\x46\x28\x1c\xcf\x0f\x85\x83\xd0\xd1\xba\xdc\x37\x84\x8e\xb6\xd6\xc4\x36\x4a\x31\x32\x88\xc8\x20\x22\x74\xb4\x12\x1d\xed\x29\x7e\x88\x65\x38\x69\xa7\xa2\xb7\x11\x5a\x1a\xe9\x69\xa7\xaf\xa7\x1d\x90\x3a\x44\x52\x3b\xfe\x42\x68\x69\xa7\xa6\x62\x1c\x27\x5a\xda\xee\xe8\x5a\x7f\x6d\xf0\x48\xb6\x22\x6c\xdd\x9d\xa2\x41\x44\xad\xa4\x62\x10\x51\x2b\x11\xb5\x6e\xb0\xd8\x44\xd4\x4a\x44\xad\x44\xd4\x4a\x44\xad\x64\x1d\x2d\x3a\x45\x44\xd4\x4a\x44\xad\x6c\x89\x01\xb5\x6d\xa2\xd6\x26\x7b\xe2\xd0\xa8\x5a\xdb\xd8\x48\x0d\x39\x62\x9b\x58\x48\x44\xd2\x4a\x24\xad\x14\x85\xdb\x99\xc4\x8a\x2e\xb2\xf2\xd0\x3e\xc3\x3b\x7e\xab\x89\x89\x4f\xbd\xe0\x9f\x98\x9a\xb8\xe0\xf3\xc7\x94\x9c\x48\x39\x7a\x0b\x1e\x3c\x86\x1c\xbd\xf5\x35\x89\xa6\xdc\xbc\xe3\x8f\xea\x52\x36\x1e\xb9\x60\x9f\x5f\x94\x97\xb2\xf1\xba\xdc\x37\x94\x8d\x47\x76\x00\xd9\x01\xf3\xd3\x78\x24\xf9\x78\x4f\xb6\x04\x76\xc3\x57\xda\xce\xdb\xd3\x94\x89\x77\xfc\x5a\xda\xc6\xe7\x80\xf4\x32\xd2\xcb\x8e\x48\x2f\x3b\x20\xf5\x87\xa4\x74\xfc\x65\x7b\x52\x7a\xbf\xf9\x77\xcf\x5b\xa9\xd8\x66\x06\xde\x86\x2a\xc5\x77\xac\x4d\x0e\xde\xab\x10\x9f\xaf\x26\xe3\x6d\xe0\x8e\x24\xe9\xd7\xca\x15\xd9\x20\xf9\xb6\xec\x58\x7d\xa6\xf2\x6e\xf5\x52\x2c\x94\x75\x5b\x5e\x10\x72\xdc\xb7\x5e\xa2\xed\x3a\xee\xb7\x65\x69\x85\x1b\x75\xbe\xfa\x69\x73\xab\xeb\xa7\x70\x4b\x3f\x2f\xeb\x8b\xf4\xc6\xed\xcc\x2b\xe9\x8d\xa4\x37\x3e\x51\x6f\xdc\x37\xa2\xd5\x86\xf9\x4a\x84\x65\x85\xbf\xd0\xf9\xa4\xa4\x11\xd2\x3d\x29\x69\xe4\xf0\x80\x9d\x36\x4d\x1f\x39\x15\x68\x00\x4a\x22\xa1\x60\xc5\xf3\x73\xde\x50\x12\x49\x97\xfb\x86\x92\x48\x28\x3c\x45\x76\xc1\xfc\x34\x52\x12\xc9\x76\x60\x9d\x36\x77\x6c\x9e\x8a\xd6\x46\x49\x25\xa4\xa7\x3d\x07\x3d\xed\x80\xd4\x21\x92\xda\xf1\x17\x0a\x0e\xf8\x96\x4f\x4a\xc9\x38\x9a\xe0\x80\x4e\x6b\x5b\x7c\x9b\x60\x4e\x15\xe0\x0b\x3d\x60\xbf\xea\xb4\x2d\xa6\xd3\xfb\xf8\xe2\xec\x4b\x1b\x96\x2d\x03\xb6\xc4\xef\x4e\x11\xfc\x51\xeb\xfb\x31\xcf\xef\x4d\x69\xa3\x3e\x82\x95\x23\x1e\x00\xff\x01\xef\xfe\xe9\x44\xb0\xdb\xb3\x1f\xbf\x7c\xf9\xf9\x97\xcb\xaf\x3f\xdf\x9e\xf5\x01\x0c\x13\xb8\xef\x00\x3b\x42\x83\xe8\x96\xe3\x49\x26\xc6\x42\x59\x76\x17\x5b\x1d\xf3\x29\x93\x43\x85\xc8\x3d\xce\x4a\x76\x36\x96\xbb\xe5\xcb\x47\x78\x2e\x98\xd3\x11\x18\xb7\xa8\x9a\x41\xd3\xe7\x86\xa5\xd2\x24\xb9\x70\x7d\xee\xb3\xf7\x99\x84\xfe\x54\x34\x05\x6e\xdc\xa2\xcc\x34\x94\x0b\x5b\xe4\x4e\x2e\x70\xcb\xb8\x9a\xb2\x58\x64\x2d\x95\x15\xf9\x03\xcf\x7a\x4c\xe9\x1c\xba\x65\x47\x62\x1a\x1a\x29\xbf\x8b\xf2\xdc\x08\x95\xc2\xfb\x61\xcc\x38\x1f\x2c\x2d\xdc\x5d\xcf\x38\x33\x4e\x73\x70\x1d\x0b\x00\x41\xd2\x60\xa7\x70\xfa\x6a\x58\x35\xee\x57\x98\x02\x0f\x39\x33\x12\x6c\x20\xb8\x2d\x72\xc1\x86\xdc\x0a\x36\xb3\x10\xbe\x25\xa1\x9c\xd8\x03\x58\x1b\x3e\x91\xd8\xb9\x45\xcd\x6e\x20\xd9\x1a\xb6\x40\xa7\x76\xe9\x12\x05\xe4\xa4\x51\xc6\x9c\xd6\xe3\x94\x17\xa9\x0a\xe1\x1d\x3a\x15\xa0\x2a\x23\x2c\x7b\x74\x7a\x71\x2e\x6c\x2e\xc5\x83\xdb\x4c\x63\x0d\xfb\xd6\x00\x24\x54\x44\x14\xc2\x05\xef\xb3\x6b\xa9\x12\x31\x83\x41\xe5\x77\xaa\x57\x81\x7a\x2c\xf1\x87\xc3\xed\x6a\xd0\x9e\x02\x86\x52\xec\x08\xbe\x0a\x8d\x73\xa7\x93\x3f\x48\x5d\x18\x06\x1b\x24\xa8\xcc\x70\xd2\x65\xea\x54\xbb\x84\x67\xfe\xb7\x0a\xcb\xe5\x0b\xf1\x2d\x11\x13\x1b\x21\xae\xb0\x49\x3d\x88\x1f\x79\x19\x41\x72\x7c\xff\x5c\x77\x72\x01\xc8\x56\x7c\xb6\x2b\xd2\xdd\x1a\x02\x77\x7a\x54\xea\xe3\xf1\x28\xad\xb3\xd9\xd7\xdc\x1b\xa0\x2b\x8a\x9c\xa1\x5d\xf0\xe8\x61\x86\xd2\x42\x30\xab\x99\xf8\x36\x91\x1e\x3c\xec\xc5\x50\x28\x91\x83\xdf\x7e\xe0\x0c\x04\xab\xd9\x40\x0e\xac\x10\x8a\x8d\xa5\x2a\xac\x30\x2f\x9d\x22\x0a\x7d\x1b\xc8\x61\xc0\x1c\x43\x05\x96\x69\x55\x19\x4b\x6f\xee\x86\x40\xfd\xc8\x2b\xc7\x9c\xfd\xf1\xcd\x6b\xf6\xd5\x63\x03\x7d\x74\x5d\x10\xa9\x37\x3f\xac\x1e\x62\x07\xfd\x93\x71\x44\x56\xdf\x0b\x15\x87\x8c\x6b\xc8\x94\x10\xa9\xc1\xa7\xc0\x06\x52\x16\x70\xa4\x7a\x6e\xc2\x40\x8d\xce\x85\xb1\x3c\x87\x9b\x52\xe6\xf0\x1b\x34\xac\x0b\x5b\x5f\x71\xb8\x23\xfa\xec\x8b\xfb\xf4\xa3\x0c\xf0\x56\xfe\x2b\x6e\x65\xfc\x15\x87\x8e\x30\x68\x27\xf0\x8f\x46\x7d\x1f\x7a\xe8\x96\x47\xc8\x87\xaa\x1d\xe0\x06\x0b\x83\x5b\x39\x2d\xd0\x2e\x74\x18\x9c\x70\x61\x73\x2b\xf1\xcd\xb2\x7b\x31\x45\xf0\xa6\xf8\xe7\xcc\xd9\x87\x96\x19\xc5\x27\x66\xa4\x6d\x8f\x3d\x8e\x64\x02\xf4\xa4\x52\x55\x26\x24\x3e\x1f\x37\xb2\xef\x3e\x1e\xa1\x8b\x08\xf6\x85\x98\x11\xb9\x60\x09\x6a\x79\x3d\x6f\x76\xba\x7f\xe9\x3c\xa0\xc6\x31\x3e\xb0\x02\xf7\xf4\x40\xe6\xc6\xce\x4e\x06\x9a\x77\x9e\x18\x36\x0d\x88\x48\x41\x3f\x06\x63\xc4\x6d\x48\xf7\xbf\xb8\x28\xf7\x62\x8a\xc2\xa8\x6c\xf8\xf6\x2c\x0c\xf9\xf6\xac\x7f\xab\x6e\x55\xdd\x65\x0c\x60\x16\xc5\x04\x11\x30\xf0\x82\x40\x29\x2c\x0d\x5c\xac\xa5\xfc\x83\x95\x83\x0d\xe0\x25\x4d\x75\xf6\x70\x12\x60\x0f\xfe\x15\x95\x21\x7f\x6c\xa2\x54\xf4\xf8\x57\x7e\xc5\xd0\x20\xb6\x6c\x2c\x8d\x01\x69\x57\xb3\xca\x37\x91\x2a\x61\xfb\xed\xc7\x94\x25\x8f\x43\xeb\x85\xda\xa7\xc7\xe1\x92\x19\x51\x02\x99\xb9\x0b\x2d\x97\x09\x5e\x5f\x70\xf4\xf4\xa0\xdc\xb0\x11\xb7\x6f\xea\x0f\x17\x3a\xf2\xeb\x20\x8a\xe2\x41\xe4\x53\x3b\x92\x6a\xb8\xb1\x8d\x7f\xed\x7b\xb4\x9f\x19\x21\xcc\xcb\x67\x84\x79\xf9\xa4\xed\x9f\xf1\x3b\x91\x75\xba\xfd\xa1\xc5\xfd\x6e\xff\x4c\x8e\xa5\x45\xdf\xe3\x98\x7f\x93\xe3\x62\xcc\x54\x31\xbe\x73\x9b\x64\x10\x2f\x53\x83\xb3\xe5\x26\x06\x23\xab\x38\x5b\x09\xcf\x32\xd8\xb2\xa0\x46\x4b\xd7\x17\x84\x77\x9c\xd7\x4d\x9c\xf2\xed\xfe\xf6\xb7\x20\xa5\xfe\x16\x10\x26\x55\x39\xfb\x01\xfc\x11\x37\x2a\xee\x4e\x90\x1f\x09\x57\x61\x3b\x97\x9a\x90\xe1\x63\x77\xca\xa4\x95\x51\x65\xc6\x5e\x3a\xe5\x5e\x94\xba\x8e\xfb\x34\x8e\xc5\x2d\x9a\x33\x9f\xad\x45\x43\x12\xc7\x8e\xaa\x32\x8e\x4d\x3c\x82\xd2\xc0\x55\x55\x42\x38\x35\x65\xac\x0b\x05\xcd\xe0\x28\x5f\x14\x13\xf7\x31\x3c\xd0\xee\x2f\x2f\x83\x6e\x82\xb6\x2a\x07\xe1\x14\xde\x0e\x3b\xc9\xe9\x25\x03\x99\x59\xe1\x34\x54\xa7\x35\x3a\x19\x95\xd4\xad\xeb\x9a\x0d\x81\xf2\x34\x89\xb9\x57\x75\x0d\x13\xa1\x28\xad\xc8\xc7\x52\x89\xa8\x8b\xd7\x4c\x1a\xd0\x84\x1e\xb8\xcc\x9c\x3d\x5b\x7a\x0e\xdc\x90\x93\x91\xd6\x46\xc0\xd1\xb7\x3a\x68\x40\x7e\x2d\xdc\xb4\xf0\x7c\x58\x80\x43\x81\xab\x34\x48\x5b\x98\x24\x37\x36\xdf\x9f\xd8\x74\x39\xbb\x9f\x06\x2c\x6e\xa9\xf2\x56\x0a\xd6\xc9\xcc\x00\xa4\x61\x62\x3c\xb1\xd3\xba\x19\x15\xfd\x02\xdc\x3a\x09\xbe\x6c\x40\xcb\x54\x39\x39\x98\x51\xe4\x50\xf7\x8b\xfb\x72\x58\xf0\x9c\x2b\x2b\x82\x92\x52\xde\xf4\xa6\xbc\x04\x40\x1f\x2c\x40\x6d\x88\x7d\x8f\x6a\x69\x34\xd8\xac\x66\xd2\x98\xc2\xbb\x27\xa4\x1a\x66\xa2\x3c\x21\xd1\x46\x08\x1b\xee\x22\x38\xef\x7b\x6e\x78\xe1\x93\xeb\xe9\xc9\x41\x45\x06\xef\x87\x29\x44\xda\xa8\x2c\x83\x17\xa6\xb8\x33\xee\x61\x65\xe3\x08\xd2\x4a\x18\xff\xc6\x3b\x50\x8c\x1e\x0b\x2b\xc7\xc2\x8d\x7d\x20\xf2\x1c\xc0\x76\x9d\x5e\x5d\xb3\x87\x4a\xf3\xc0\xad\xa8\x50\xa6\xc8\x45\xc4\x87\xf3\x06\x4e\x88\x4c\xe0\xac\xe1\x90\xe1\x60\x82\x29\xc3\xcc\x98\x67\x99\xc8\x59\x32\x2a\xd4\x3d\xc4\x04\x39\x73\x97\x28\xcb\x78\x3e\x0c\x0b\x0d\x27\x1e\x9b\x47\x5f\x91\x11\x02\x36\xde\x44\x1b\x23\xdd\x86\xf3\xd3\x06\x1b\xae\x7a\xbe\x30\x4b\x2c\x2d\xbd\x45\xf0\x1d\x91\xe2\x7a\x80\xf1\xec\xd5\x73\xbf\x87\xbd\x2c\x84\x5e\x3f\x72\x13\x74\xd8\xe0\x11\x73\x73\x32\x6f\x9f\xa0\xd5\xce\x8d\x5b\xe0\xa4\xc8\x10\x03\xb9\xdc\x36\x1b\xc9\x02\x37\x51\x7b\x12\x8b\x04\x05\x4d\x50\xd0\x04\x05\x4d\x50\xd0\xbb\xf3\x14\x94\xaa\x81\xf7\x56\xa1\xa8\x76\xf2\xb2\xf7\xff\xb3\xf7\x6e\xcd\x6d\x23\xd7\xde\xf7\xbd\x3f\x45\x97\xf6\x05\xed\x8a\x45\x45\x53\x4f\x55\xa6\xec\xda\x17\x8a\xad\xc9\xe3\xbc\x33\xb1\xb6\xed\x67\x72\xe3\xd4\x4e\x13\x68\x52\x28\x81\x00\x82\x83\x64\x65\xd7\xfe\xee\x6f\xf5\xea\x03\x00\x12\x24\x41\x08\x20\x0e\xfc\xcf\x8d\x35\x12\x09\xf4\xb9\xd7\x5a\xbf\x75\x90\xa2\xd0\x53\x62\x60\xb6\x1a\x97\xd0\x71\xb2\xd8\xde\x82\x3c\x65\xe4\x17\x2c\x8f\xde\xb8\x78\xa0\x73\xbb\x32\xca\x62\xba\x79\x96\x3d\x29\x16\x62\xe5\x05\x81\xb6\x06\xdc\x7b\x49\x1a\xc6\xcf\x73\xb6\xd1\x34\x29\xea\xca\xe3\xe3\x1d\xbb\x94\xd2\x04\xb9\xa5\x15\x5c\xc6\x8d\xf5\xa1\x20\x2e\xd0\xf3\xe5\xb1\x44\x8e\xca\x61\x2c\xd7\xcb\x82\x4b\xb1\x35\x0c\xd8\xbf\xb2\x30\xce\xd6\x97\x14\x9e\xb2\xf4\xf9\xea\xbd\x7a\xac\x27\x0f\xac\x3f\xea\xe7\x3e\x09\x96\x78\x6b\xe5\x69\x47\xd2\xd6\x13\xdd\x4b\x82\x39\x59\x1c\x8b\x20\xf5\x9f\xd9\x3d\x27\xed\x92\x39\xdc\xb9\x17\x24\x42\x58\x49\x46\x3f\x91\x84\xed\x50\xaa\xa3\x24\xa1\x56\x36\x99\xa7\x4c\x1e\xf4\x29\x55\x6f\x8e\x45\x42\x65\x9c\x57\xde\xa3\x08\x58\xfc\xd8\x64\x75\x6d\x58\xbf\x7a\x52\xe6\xbd\xb5\x90\xa2\x96\xd1\x8b\xe5\xec\x5d\xe5\x4b\x4b\x8b\x3b\x74\xd5\x26\x6a\xd3\x1a\xcd\xdf\x48\xd8\xb4\x00\x63\xb1\xe2\xb1\x4b\x2e\x13\x72\x51\x05\xcf\x8c\x3b\xa9\xf7\xe8\xa5\xcf\xf2\x18\xf4\x02\xf3\x7f\x4d\xc6\x29\x55\x4d\xec\x57\x0f\xfe\xbb\x32\x5f\x86\x71\xbe\xcb\x42\x7d\x88\xc9\xcf\x2d\x48\x44\x54\xf3\xa9\x0e\x5d\xbd\x1a\xd3\x7b\xb1\x56\x42\x61\x92\xc6\x82\xaf\x69\x78\x5c\xf7\xad\x16\xbb\xde\xea\xcf\xca\x6b\x59\x5e\x06\x05\x83\x26\xfb\xaa\x12\x06\x6f\x5a\x49\x9b\x0c\xe1\xd3\x86\x1b\x1d\x7b\xf1\x75\x5a\x49\x92\xe1\x13\x82\x4c\xf0\x9b\x5f\xd8\x9b\x09\x3e\x17\xa9\x3a\x74\xc0\x28\x7b\x21\xf4\x9a\x0e\x5e\x99\xcc\x62\x7d\x77\x1b\xd9\x3e\x5c\x32\xd9\xd8\x43\x4e\x16\xf2\xcb\xda\xa9\x13\x8e\x15\x70\xac\x18\xbb\x63\x05\x5c\x11\xe0\x8a\x00\x57\x04\xb8\x22\xc0\x15\xa1\x77\x57\x04\x30\x6e\x60\x4f\x60\x4f\x60\x4f\x60\x4f\x60\x4f\x60\x4f\x60\xcf\x9d\x97\x00\x48\x04\x48\x04\x48\x04\x48\x04\x48\xc4\x0e\x12\xb1\xf3\x0b\xf2\x65\xef\xd5\xc0\xff\xe7\xf6\x18\xd4\x79\x76\xf9\xdb\xc3\x46\x1e\x79\x5c\x69\xe8\x8a\x5f\xbd\x24\x3d\x47\xc4\x21\x0f\xb0\x41\x62\x8d\x06\xf9\xec\xc6\x9b\x00\x2e\x4c\x5a\x66\x38\x4a\xfe\x66\xfc\x10\xae\x51\x9f\x7b\x19\xb0\x19\x6a\xea\x0d\xd9\x9d\x7a\x3b\x1a\x31\x30\x13\x88\x81\x41\xd6\x0d\x64\xdd\xa8\x68\xcc\x30\xc5\x8d\x91\x24\xdc\x38\xaa\xa5\x3f\x1d\x6c\xa9\xf2\xde\xec\xbd\xa9\x53\x92\xdf\x48\x74\x18\x90\xfc\xf6\x8a\xed\x4a\x09\xa2\x53\x85\x9f\x28\x33\xc8\x41\xc9\xa7\x98\x0d\xe4\xb4\x92\xcf\x48\xd2\x2e\x40\xec\x29\x4e\xf2\x60\xc5\x1e\x04\xba\x9e\x51\xa0\x2b\x22\x7a\x10\xd1\x83\x88\x1e\x44\xf4\x40\x63\xdb\xb5\x8b\x06\xe9\x13\xdf\x8f\x6e\x04\x97\xfe\x9d\x2e\xfd\x43\xd2\x98\xac\x15\xb8\x9b\x8a\x49\x65\xf1\xea\x80\x52\x54\x28\x91\xd4\x8e\xf7\x7e\x41\xb8\x10\x3f\xc8\x27\x67\x21\x7f\xe2\x4e\x3a\x67\xec\x56\xfe\x6b\x7e\xbf\xe6\x1e\x59\xca\x12\xe6\xf8\x59\x92\x8a\x38\xbf\x32\x74\xa6\x79\xdf\x7b\x10\x6c\x66\x53\x55\xce\xa4\x64\x68\xa4\x99\x39\xbb\xf3\x79\x10\x68\xa6\x4e\xf2\x06\xf7\x95\x88\x73\xfd\x73\x93\x33\x98\xda\xd8\x93\x24\x60\x07\xcd\x0a\xd2\x0b\x33\x7c\xb2\xa7\xec\x56\x8d\x98\x3c\xfd\xa3\xc4\x8c\x8e\x76\x5b\xa1\xb4\xfd\x0e\x0f\x0a\x32\xf1\x73\xc7\x03\x25\x1b\x33\x5d\x58\x3a\xec\x2b\xea\xec\xed\x5f\xdd\xd6\xe4\x3a\x29\xbe\x2c\x95\xe3\xda\x7a\x33\x2a\x71\xa1\x12\xd7\x49\x2a\x71\x1d\x25\x30\x14\x4b\x6f\x4d\x02\x1f\xa3\xde\x16\x4c\xab\xe7\x47\x94\x51\x6f\xab\xcd\x75\x83\x7a\x5b\x10\xf7\x21\xee\x8f\xb2\xd4\xd6\x0b\x04\xfe\xae\xaa\x6c\x1d\x69\xc0\x29\x96\xd5\x9a\x84\x44\x06\x87\x3e\x88\x5f\x13\x17\xbf\x06\x24\xe5\xe0\x32\xb6\x7f\x39\x73\x87\xbe\x49\x89\x0d\x9d\x16\xcf\x6a\xdf\x49\xee\x2a\x8a\xc3\x1f\xcf\x5d\xbb\xca\x39\x61\x10\x08\x27\x65\x1f\x6f\x7f\xbd\xfd\x76\x9b\xab\x78\x69\xc8\xe8\xfd\x35\x6a\x6a\xe9\x47\x28\x79\x43\xf9\xa0\xc9\x6f\xdc\x51\xf3\x6b\x9c\x20\x3b\x9b\x7a\xb2\x5d\xbe\x71\x58\x9e\xe1\xe6\xd0\x73\xd8\xed\x06\xa1\x15\x61\xdc\x13\x07\xc2\x47\xcd\xfa\xff\xcb\xed\xb7\x97\x2f\xfe\xbf\x88\x14\x2b\x1f\x2b\x5f\xfd\xba\xe5\x95\x7f\x2f\xb8\xdb\xcd\xd2\xff\xbf\xb7\x37\x1f\x5f\xbe\xf6\xff\xaf\xe0\x2e\x16\x3f\x16\xbf\xfa\x75\xcb\x8b\x3f\xd4\xdf\xee\x64\xfd\x7f\xbe\xfb\xf6\xe9\xf3\xdf\xbe\xbe\x7c\x0b\xe8\x3e\x62\x17\x60\x17\xa8\x5f\xb7\xbc\x0b\x5a\xf0\x27\xd8\xdd\x8a\x31\xf9\x16\xdc\xf1\x54\x25\x41\xba\x17\xec\xff\x7d\xf9\x95\xc9\x56\xcb\x5d\x9b\x25\xc2\x86\x13\xe8\x5c\x26\x7a\x27\x9b\xec\x42\x94\xb1\xc4\x15\x47\x3b\x1c\x6c\x0d\x4b\x1f\xee\x06\xc7\x1e\x6c\x77\x37\xdf\x3e\xfc\xdf\x97\x1f\x6b\x84\xe1\x70\xa8\xe1\x50\x53\xbf\x6e\xfb\x50\x6b\x3f\xef\x81\x59\xfe\x9f\xbf\xb6\xa0\xd3\xdd\x85\x09\x94\x3a\x2c\x7e\xfd\xeb\xb6\x17\x7f\xdb\xc0\xd0\xae\xfd\xff\xd7\xc6\xd2\xcf\xb0\xf2\xb1\xf2\xf5\xaf\xdb\x59\xf9\xaf\x58\x2d\xab\xf7\xd5\xff\x48\x89\xab\xf3\x38\xf1\x8e\x8d\xdf\x7f\xf7\xd2\xfb\xbb\xb2\xe4\x88\xbd\x83\xbd\x73\x46\x46\x70\xec\x00\xec\x00\xd6\xc1\x0e\x18\x95\x31\x1c\x9b\x00\x9b\x80\x75\xb0\x09\xc6\x69\x14\xc7\x6e\xc0\x6e\x60\x5d\xa8\xd2\x30\x8e\x5b\xf7\xe8\x7b\x93\x69\xd9\xa4\xde\x38\xae\x37\xdb\x7f\x81\xa9\xff\x1c\x4d\xfd\x38\xaa\x71\x54\xb3\x2e\x8e\xea\x31\x99\xfc\xb1\x09\xb0\x09\x58\x17\x9b\x60\x34\xa6\x7f\xec\x00\xec\x00\xd6\xde\x0e\x78\xc5\x0e\x21\x80\x44\x65\xa6\x2a\x18\xff\xbb\x49\x8b\xa4\xde\x63\x34\x80\x86\x09\x92\x74\x1a\xad\x1a\x7b\x03\x91\x32\x67\x1d\x7f\x82\x2c\x35\x03\x54\x96\x91\xa5\x66\xc7\x07\xc7\x90\xa5\xa6\xe1\xf9\xbd\x91\xaf\xa6\xe2\x00\x1f\x65\x8c\x34\xb2\xd6\x20\x6c\xfa\xfc\xc2\xa6\x91\xb5\xa6\xcd\x75\x83\xac\x35\x47\x0d\x6c\xe5\xad\x05\xf1\x1f\xe2\x3f\xb2\xd6\x70\xa7\xb1\x7c\xb6\x95\xbf\x66\x2a\x12\x1a\xb2\xd8\x40\x1c\x9b\xb8\x38\x36\x20\xa9\x07\x97\xb3\xfd\x0b\xb2\xd8\x4c\x47\x8c\x18\x41\x16\x1b\x73\xb9\x04\xe9\x63\xe8\x67\x6b\xe1\xf8\xdc\x5b\x77\x6b\xcf\xf7\xbd\x24\x95\x27\x9e\x2a\xc3\x6e\x2a\x17\x85\x4b\x26\xbb\xc6\xee\x6c\x83\x7e\xa7\x06\x7d\x90\x0d\xda\x23\x81\xc8\xa7\x69\x0e\x56\xf5\xcd\x5f\xc2\xf8\xc6\xf7\x6d\x11\x82\x41\x18\xff\x77\x7e\xe1\x4c\xeb\x79\x57\x4e\x1c\x0a\x7c\x57\x7c\xec\xc5\xa7\xc6\xa1\xdd\xd5\x31\x8c\xa0\xa2\x4f\x7f\x97\x6b\xf3\xcf\x61\xf8\xb0\xe6\xf1\x43\x92\xdb\x7c\xd4\x79\x20\x1e\xa9\x30\x93\x12\xb2\x9e\x23\xc1\xbe\x5f\xfc\xf9\xf3\xe7\xff\xef\xb7\x9b\x2f\xff\xdf\xf7\x8b\x39\xfb\x2a\x62\xd9\x40\x5d\xd4\x29\x24\x19\xd9\x5b\x47\xbe\x58\x8b\x20\x65\x0b\xfb\xd4\x35\x7f\x66\xde\x2a\x50\x25\xf5\xbc\x44\xd9\x2c\xa4\x38\x95\x7f\x84\xc7\x82\x49\x61\x9c\xf1\x54\x29\x3d\xf4\xe8\x59\xc2\x5c\x2f\x71\x62\x21\xdb\x3c\x67\x1f\x7c\x8f\xda\x53\x10\xc9\x79\x22\x8f\xbf\x8d\x07\xc5\x22\xcd\x62\x29\x80\xf1\x94\xf1\xe0\x99\xd9\x62\x28\x5e\x90\x8a\xf8\x91\xfb\x6f\x59\x10\xc6\xd4\xac\xf4\x5e\x3c\x9b\x87\xe4\xef\x55\x82\x73\x22\x02\x97\xbe\x6f\xfa\xac\xc6\x83\xb9\x99\x14\xaa\x18\x67\x89\x14\xd1\x65\xc3\x4c\xe5\x3e\x2f\x51\x8d\x52\xc3\x57\x2a\x22\x27\xff\x4a\x43\xa0\x6b\xc1\xdd\x0b\xb6\x14\x3c\xcd\x62\xc1\x56\x3c\x15\x6c\x63\x22\xf4\x93\x44\x20\xe5\x4b\xaa\x37\xc7\x23\x4f\x35\x6e\xd7\x63\x8f\xa4\x2c\x15\xd3\x5f\x8d\x5c\xaa\x2c\x3c\x2d\x10\x24\x29\x82\x4b\x49\xda\x0b\x32\xa1\x8d\x88\x85\x2a\x8b\x89\x48\xd9\x93\x54\xd2\x62\x91\xc6\x9e\x78\x94\x03\xbe\x0e\x69\x6e\x13\xaa\x67\x68\xcb\xe1\xa9\x41\x99\xb3\xaf\x5e\xe0\x88\x8d\x02\x8a\x7a\x36\xb5\x3c\xfe\x96\x39\x7a\x01\xc9\x99\x27\x51\xde\x14\x00\xb4\x0d\x51\x5f\xa5\x87\x73\xa9\x20\x3e\x7a\x61\x96\x30\x1a\x46\xa3\xbf\xd1\x6e\xf0\x5c\xa9\x67\x38\xdc\xd7\x7f\xcb\xf7\x1f\x7b\x2d\x7e\x38\x22\x4a\xad\x97\xa5\x7a\x64\xb8\xb4\x2f\x79\x63\x2b\xbc\xe9\xf6\xc9\xe6\xc4\x82\xca\x32\xf2\xcd\xa6\x78\x72\x67\x09\xb5\x1a\xac\x86\x69\x97\x50\x6e\x1b\xd8\xfc\x9a\xfc\x06\x29\x2e\x22\x66\x4a\x49\x7d\xd2\x35\xf2\xdc\x4c\xb0\x34\x64\xe2\x47\xe4\xe9\xca\x97\xaf\x57\x22\x10\x31\x11\xa2\xa5\xd4\x56\xd3\x90\x2d\xbd\x65\x2a\x44\xc0\xd6\x5e\x90\xa5\x22\x79\x23\x65\x04\x6a\xdb\xd2\x5b\x99\x82\x99\x4a\x9b\x62\x61\x50\xe8\xcb\xdb\xad\x5d\xa4\xae\x38\xad\xa9\x71\xf6\x7f\xae\xff\xc8\xbe\x68\xef\xda\x5b\xd9\x04\xe1\x6a\x5d\x38\x0d\x57\xaa\x81\xfa\x93\xb6\x47\x69\xf8\x20\x02\xdb\x65\x35\x87\x2c\x10\xc2\x4d\xd4\xa7\xf4\x21\x4a\x45\x10\xdf\xca\x01\x23\x9d\x2e\x16\x49\xca\x63\x3a\x4d\xbc\x98\xfe\x46\x0f\x0e\xb3\xb4\x3c\xe3\xb4\x8f\xe6\xec\xb3\x7c\xf5\x93\x67\x6a\x33\xea\xb7\xc8\x99\xd1\xc7\x80\x32\xbe\xd2\x73\x8c\xa7\xac\x55\x3e\xa9\x85\x72\x7a\x84\xf7\x58\x54\x4a\x65\x67\xa9\x73\x07\x87\x85\x9e\x4b\x0d\x26\xc3\xaf\x59\xdc\x81\xf8\x91\xb2\x07\xf1\xac\x2a\x0f\xda\x5f\xfb\x3c\x95\xef\x4f\x02\x1e\x25\xf7\x61\xfa\x96\x3d\xdd\x7b\x0e\xb9\xfb\x7a\x41\x61\x40\xec\xe7\xed\x42\xd6\xcd\x57\x5b\xe8\xd2\xca\x7b\xaa\xfe\x51\x2c\x98\xa3\xf4\x8e\xb7\xda\x06\x22\x7f\x0a\x63\x53\xf2\x94\xf1\x65\x2a\xd4\x9a\x5e\x7a\x71\x92\x6e\x0e\x86\xb2\x35\x78\x81\xe3\x67\xae\x3a\xb3\xb4\x2b\x35\x89\x38\xa4\x19\xcb\x05\x29\xff\x55\x93\xf2\x20\x9e\xd5\x81\x9d\x3f\xf8\xfb\x85\xe9\xf2\xf7\x8b\xf9\xf7\xe0\x7b\x50\xc6\x14\x54\x98\x29\x8b\x54\x35\x27\x75\x40\xa8\x9b\xca\x4b\xe8\x10\xca\xef\x08\x9a\x39\x5a\x00\xfa\x34\x2e\x8e\x9e\x1a\x04\x5a\x83\xbf\xab\x1b\x56\x6f\x1b\x7b\x73\xe8\xe2\x8d\x7a\xc6\x94\x75\x26\x65\x6b\x2f\x49\xe8\x46\x28\x99\x88\x8e\x3d\x79\xcd\xd2\x6b\x87\x70\xd7\x3b\x6d\x6f\x58\x22\xf2\x82\x8e\x72\x6f\xc4\x9e\xa3\x76\x82\x52\x01\x96\x79\xdf\x6d\xfd\xd2\x67\x3d\x4f\x8a\x43\x94\x8b\xc9\x8a\x47\x11\x3f\xa7\xf7\x5e\xb0\x3a\xb6\xfb\xf4\xb4\xaf\xba\x35\xa3\x19\x03\x9f\x2f\x84\xdf\xda\x18\xd0\xd3\xfa\x18\x03\xdf\x5b\x7b\xa9\x32\xa5\xad\xf9\x0f\x6f\x9d\xad\x59\x90\xad\x17\x22\x56\xbd\xd7\xda\x88\x1a\x1f\x39\x14\x8a\x07\xaa\xf1\x71\xb8\xef\xd3\x31\x4c\x17\xb1\x27\x5b\xa1\xaa\x9b\x6e\x9f\x6e\xf2\xfa\x96\xbf\xfb\xa7\x59\xeb\xff\x34\x05\x56\x83\x7c\xbc\x4d\xed\x53\x55\x9b\x58\x6d\x40\x3a\x89\x1c\x1e\x98\x0a\xc6\xf9\x59\x9a\xf0\xb5\x3c\x5c\xbc\xd4\xb3\x97\xae\x6a\xa5\x14\x0f\x44\x7e\x5a\xca\x57\xab\xbe\xc8\x69\x92\x42\x6a\x9a\x2a\x71\x4d\xf5\x5d\x5d\xb6\xaa\x6f\xe2\x89\x8e\x1d\x1e\x14\x4d\xac\xf2\xa0\x5b\x87\x59\x40\x8f\x51\xbd\x7c\x9d\x45\xf2\x65\xaa\x86\xb3\xfc\xcd\x1b\x73\xba\x29\x89\x90\xd3\x81\x6e\xbe\x6d\xd6\x8e\x3c\xd9\x96\x9e\x9f\x0a\x79\xc7\xc9\x7b\x47\x1e\x23\x4e\x59\x86\x2d\x49\x21\xca\x20\xed\x58\x17\xa1\xf2\x1d\xa5\x2a\xb1\xa6\x22\x5e\x7b\x81\xb0\xb7\x79\x49\x28\xa2\xb3\xf4\x91\x7b\xbe\x94\x1a\x73\xf9\x5c\x76\xd9\xb9\x0f\xc3\x44\xd0\x29\x96\x86\xe6\x0c\xd5\x73\x21\x87\x85\xc7\xab\x8c\xc4\x76\x1e\xb8\xe6\x86\xa2\x41\x92\x7d\xd3\xed\xb1\x8f\xce\x47\xf7\xd3\x92\xd9\x25\x95\x0b\x23\x46\xbe\xd9\xe8\x80\x97\x30\xb1\x8e\xd2\xe7\xb2\x20\x66\xa5\x6f\x9e\x4a\x99\x65\x5f\x87\xf6\x5d\x06\xde\x72\xe3\x2a\x50\xb7\x87\x5d\x97\xab\x8c\xc7\x3c\x48\x85\xb1\xf2\xe7\xa5\x94\x93\x7c\xdb\xd3\x8d\x92\x91\xdd\xdd\xb6\xdd\x5e\x6c\x56\xe4\x4b\x43\xe6\x25\x49\xa6\x95\x00\x2f\x58\xf9\x22\xdf\x21\x56\xca\x30\x0b\xee\xd2\xd8\xa2\xa5\xd6\x61\x5f\x79\xdc\x4d\x6b\x2e\x59\xd2\x31\x92\x4c\xb8\x95\xd7\x2d\xe9\x3a\xd9\x22\x91\x1f\x0e\x52\xdb\x03\xb7\x00\x9f\xbf\x69\x35\x25\x09\xd7\x22\xf5\xd6\x42\xf6\x7d\x29\xe2\x98\x6a\x4d\xcb\x9b\xb9\x24\x51\xe5\x02\x86\x9c\x51\x11\x24\x59\x2c\x6c\xb5\x44\x2d\x22\x19\x43\xbb\x1a\x35\xd5\x65\xda\x98\x24\x0c\xb1\x64\xcd\x7d\x5f\xc4\xcc\xb9\xcf\x82\x07\xb2\x2c\x71\x26\x8f\x4d\xe6\xf3\x78\x65\x26\x9a\x76\xbc\x7a\xbc\xd2\xc8\x12\x21\x68\xe1\x45\x61\x92\x78\x72\xc1\xe9\x61\xa3\x05\x57\xdc\x5f\xca\xa3\xc9\xcd\x75\x32\x7a\x8f\x70\xd5\x7c\x90\xf8\xad\x2f\x78\xbd\x86\x75\xf9\x73\x6a\xf5\x13\x4f\x0c\x04\x32\x7a\xa7\x1c\x93\x6d\x09\x47\xc9\xfd\x3c\x91\x13\xec\x64\xbe\x2a\x01\x9e\x2f\x9b\xa3\x4f\x7f\x39\x48\xd5\xa7\x7e\x55\x0d\xf4\x33\x72\xd7\xab\xd7\x1b\xa2\x77\xf9\x69\xa3\x45\x68\xb5\xfb\xe5\x16\x7c\x2b\x4f\xd7\xa7\xc4\xe0\x1e\x35\xd9\xa1\xe3\x64\xb1\xdd\x58\x3c\x65\xe4\x16\x27\x67\x33\x2e\xae\x11\x6e\x25\xc3\xf2\x5d\x6f\x9e\x65\xa5\xc8\x85\x58\x79\x41\xa0\x09\xdd\xbd\x97\xa4\x61\xfc\x3c\x67\x1b\x4d\x93\xb7\xa7\x5c\x43\xef\xd8\xa5\x3c\xa0\xc8\x3f\xa3\x30\x05\x86\x08\x16\x4e\x20\x7a\x7e\x2c\xd6\x21\xf9\xe9\x85\x31\x5f\x09\xb6\xe0\xf2\x26\x0c\x03\xf6\xaf\x2c\x8c\xb3\xf5\x25\x39\x61\x2f\x7d\xbe\x7a\xaf\x1e\xeb\xa5\xb3\x84\xfd\x51\x3f\xf7\x49\xb0\xc4\x5b\x2b\x97\x13\x3a\xc0\x9f\x68\xa9\xdb\x68\x3f\xff\x99\xdd\xf3\x47\x79\x70\x30\x87\x3b\xf7\x82\x4e\x25\x7b\x38\xea\x27\xd2\xfd\x1d\xb2\x20\x0c\xe8\xd2\xab\x6c\x32\x4f\x99\x2f\xa4\x28\xcd\xe5\xa8\x88\xe4\x5e\xfe\xb0\xf2\x1e\xa5\x26\xf4\x78\xec\x22\xda\x10\xc7\x4f\xb9\x9a\xbe\x79\x6b\x21\xcf\x6b\xa3\xaf\xcb\xf9\xba\xca\x17\x93\x3e\x33\x69\xcf\xaa\x70\x4a\xd7\x28\xc0\xe6\x9a\xa6\x25\x17\x8b\x15\x8f\x5d\xc2\x88\x72\x19\x05\xcf\x8c\x3b\xa9\xf7\xe8\xa5\xcf\xf2\x60\xf7\x02\xf3\x7f\xc7\x8e\x4c\xaa\x9a\xf7\x55\x38\x61\xe0\xee\x30\xd1\x74\x74\x6a\xfc\x5d\xe9\x4d\x61\x9c\xef\xa4\x50\x57\x81\x97\x9f\x5b\xd0\xcd\xa2\xe6\x4d\x55\xad\xd7\x2b\x2e\xbd\x17\x6b\x75\x97\x28\x0b\x38\x0d\x88\xeb\xbe\xd5\xa7\xf5\x5b\xfd\xd9\x75\xf8\x48\x02\x49\x41\x93\x62\x5f\x55\xd5\xdd\x4d\xf5\xec\xd8\x41\xab\x30\xd8\x37\x36\x67\xe9\x9f\xfe\x51\x0b\xd9\x24\x5d\xa7\x5e\xd2\xb5\xf8\x75\x7d\x7e\xbd\x0a\x37\x2d\xc9\x7b\x10\x8d\xfa\xbe\x82\x34\x1f\xec\x43\xf6\x3d\xa0\x61\xf5\x6a\x98\x97\x27\x6c\x5e\xae\xe7\xa1\x70\xc8\xc4\xdc\x61\x55\xf0\x66\x0e\x4c\x9d\x38\x91\xab\xe4\x66\x26\xe4\xab\x1e\x45\xdb\xbf\xb5\x60\x3a\x87\xe9\x1c\xa6\x73\x98\xce\xa7\x66\x3a\xaf\x77\xab\x54\x9a\xcf\x4f\xe6\x92\x08\xcf\xd1\xda\x13\xd5\xa7\xe7\xe8\xc9\x78\xc7\x11\xbe\x9a\x95\xf6\xfe\x93\x8d\xc8\xb7\xa2\xe6\xea\x05\x2c\x51\x0a\x25\x5b\x88\xa5\x92\x9c\xad\x6d\x2c\x17\x25\xf4\xe9\x45\x4b\xa7\xe0\x2b\x1b\x84\xc1\x65\x20\x56\x9c\x16\xa8\xd6\x3d\x8b\x3e\xb5\xca\x4e\x6e\xb7\x86\x56\x59\xbc\xf5\x5a\xb8\x1e\x4f\x85\xff\x9c\x8b\xb4\xf9\x95\xeb\xf9\x6f\xb5\x6e\x49\x83\xce\x56\x31\x77\x68\xd7\x78\xa1\x6b\x05\x82\xfc\xd2\x26\x7d\xc1\xac\xd2\x2c\x91\x8d\x2c\x4e\x17\x97\xdf\x34\x1d\xd2\x2f\x59\xaa\x33\xd0\x3c\x62\xae\xda\xa9\x62\x71\x2a\xda\xd8\x60\x9a\xa9\xcd\x77\xd4\xe4\x2a\x7d\xfd\x80\xc6\x3e\x94\xe5\x7f\x0c\xea\xaa\x37\x2e\xbb\x71\xd7\xc9\x96\x3f\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x57\x67\xe0\xab\xe6\x5d\xb0\x05\xbf\x4e\x77\x2d\x7e\x14\x51\x2c\xa4\x50\xe2\xbe\x63\x91\x2f\x78\x22\xec\x11\x74\x17\x87\x11\x5f\x91\x74\x74\x17\xfa\x9e\xf3\x5c\xb2\x83\x99\x45\xe7\xda\x07\xc8\x65\x77\x3d\xff\xd3\x9c\x7d\x55\xe7\x99\x12\x5d\x22\x11\xc8\xcd\x92\xdf\xa9\x82\x85\x71\x74\xcf\x03\x63\x97\x8b\x33\x71\xb5\xe4\xbe\xd1\x95\xbf\x5f\xa8\x3f\x7f\xbf\x60\x4b\x2f\xe0\xbe\xf7\x6f\x73\x91\x2c\x04\xe3\xae\x4b\xab\xf3\x4a\x99\xca\xdd\x5c\x0d\x53\x8f\x9f\x25\xf9\x97\x94\x7e\x3a\x67\xb7\x1e\x1d\x8e\x85\xa6\x87\xf1\x76\xdf\xe8\xf8\x51\xa6\x22\xa5\x1e\x93\x8e\x12\xa6\xf7\x4d\x26\x54\xf5\xe0\xa3\xe9\xfb\xc9\x4c\x7c\xdb\x8a\x19\x75\x5d\x6e\xd8\xfb\xf0\x89\xad\x78\xbc\xe0\xab\x92\xa5\xdc\x2a\x35\x22\x5e\x86\xf1\x5a\xce\x49\xe5\x78\x7d\xde\xe8\xd1\xee\xe1\x22\xa1\xd7\x48\xac\x91\x1a\x5b\x4f\x4a\x93\x8e\xe7\xe6\xaa\x30\xc9\x0a\x2a\xa0\xdb\xcc\xb1\xbc\xac\xf5\x4d\x6a\xa4\x81\x79\x61\x32\xcd\x3d\x62\x54\xed\x4b\x6b\x63\x2e\xbf\x6c\xce\x6e\x1c\x47\x44\x2a\x0a\xad\xa8\xd9\xcd\x54\x1f\x66\xec\x52\x2f\xc0\xf2\x02\x4d\xde\xb3\xd9\x9f\xb9\xf3\xb0\x8a\xc3\x2c\x70\xe5\xa7\xc8\x56\x4b\x1f\xda\x18\x38\x25\x42\x6a\xf9\xb8\xfc\x10\xd3\x83\x85\x7d\xd2\x7b\x36\xfb\x25\x8c\x45\xe1\xb1\xcc\xe1\x89\xc3\x5d\xd9\x7b\x3d\x3e\xca\x9c\x4f\xcf\x4b\x94\xea\xb9\xf5\xc0\xa5\x7d\x46\x93\x05\x19\x6d\x2e\xf7\x1e\x2d\x05\xa0\xd4\xe3\xa1\xd4\xf5\x56\xd7\x3e\x52\x7d\x3a\x65\xbe\x4f\x66\x5d\x6f\x9c\xf6\x70\xeb\xd3\x5d\xf8\x43\x25\xd8\xf5\x86\x70\x9b\x62\x23\xf1\xc6\xde\xe9\x6e\x33\x22\x6e\x0f\xd1\xd3\x79\x15\xea\xa1\xbc\x49\x05\xc4\xa9\x6b\x3b\x17\xa9\x4e\x17\x1c\xd7\x30\x2e\xae\xe7\x80\xd9\x46\xb1\xb2\x70\xbe\x80\xf3\xc5\xa8\x9d\x2f\xe0\xae\x00\x77\x05\xb8\x2b\xc0\x5d\x01\xee\x0a\xbd\xbb\x2b\x80\x83\x03\x8d\x02\x8d\x02\x8d\x02\x8d\x02\x8d\x02\x8d\x02\x8d\xee\xbc\x04\x40\x2b\x40\x2b\x40\x2b\x40\x2b\x40\x2b\x90\x28\x70\x1f\x16\xd9\x99\x28\x10\x39\x02\x2b\x3e\x36\x14\x0c\xd2\x20\x3d\xe0\x58\x52\x06\xbc\xda\x98\xa9\x2e\xaa\x64\x92\x5c\xce\xf8\x31\x78\x47\x7d\xa7\x3d\xc0\x33\xd0\x8c\xec\x5b\x5d\xab\x77\x02\x20\xc6\x66\x02\x31\x36\xc8\xce\x8e\xec\xec\x15\x8d\x19\xbe\xa8\x32\x8e\x4c\xed\xcd\x5b\xfd\xd3\xc1\x56\x2b\xaf\xd1\x41\x35\x7b\x4a\x32\x21\x89\x20\x03\x95\x09\x5f\xb1\x3a\x69\x4c\x74\x49\xd9\x13\x65\x33\x39\x4a\xb2\x2a\x66\x30\xe9\x4f\xb2\x1a\x49\xaa\x08\x88\x52\xc5\x49\x1e\xac\x28\x85\xe0\xdc\x33\x0a\xce\x45\x14\x12\xa2\x90\x10\x85\x84\x28\x24\x68\x81\xbb\x76\xd1\xc0\xb4\x40\xe8\x53\xac\x5f\x7d\x4a\xab\x1e\x03\xd5\xa8\xac\xe5\xb9\xf5\x60\x03\x82\xd2\x65\xd1\xea\x08\x45\x49\x7e\xbb\xb3\x08\x83\x82\xc0\x21\x7e\x90\xdf\xd0\x42\xfe\xc4\x9d\x74\xce\xd8\xad\xfc\xd7\xfc\x7e\xcd\x3d\xb2\xc8\x25\xcc\xf1\xb3\x24\x15\x71\x7e\x8d\xe8\x02\xc7\xbe\xf7\x20\xd8\xcc\xd6\x05\x9b\x49\x69\xd1\x48\x38\x73\x76\xe7\xf3\x20\xd0\xdc\x9f\x64\x10\xee\x2b\xb1\xe7\xfa\xe7\x26\xe7\x32\xb5\xb1\x27\xe9\xc0\x0e\x9a\x15\xae\x17\x66\xf8\x64\x4f\xd9\xad\x1a\x31\x79\x23\x44\x89\x19\x1d\xed\x5a\x43\xd5\xa2\x1d\x1e\x14\xe4\xe4\xe7\x8e\x07\x4a\x36\x66\xba\x40\x77\xe2\xd7\xd6\x94\xce\x7f\x79\xb0\x0e\xfd\xf0\x6f\x80\x58\x09\x97\x68\xb3\xc7\xfe\x56\x78\xa6\x14\xf6\x7d\x35\x50\xa5\x7f\x4b\x7f\xd9\x43\xfe\x3a\xce\xa7\x3d\x5e\x70\x4c\xee\x17\xb5\x2e\xf0\xcd\xb3\xe9\x92\xbe\xfb\x87\xfd\xc7\xd4\x5a\xc4\x2b\x51\xeb\x93\x49\x1a\xf3\x54\xac\x3c\xe7\xb2\xfe\x77\xa8\xda\xbf\xfe\x24\x1d\x88\x75\x04\x0c\xf2\xd7\xa3\x70\x20\xe5\x2a\xd4\x5c\xd8\xa0\x17\xf7\x6d\x94\xed\x0a\x77\xef\x31\xd9\xde\x95\x7d\x76\x18\x4c\xb5\x13\x37\xd5\x9e\x0f\xf5\xde\x70\xad\x37\x9b\x4b\x85\x7f\x44\xca\x1b\x56\x87\x14\xbf\xde\x71\x12\xbd\x21\x43\x95\x8a\xf9\xe4\x3e\x7d\x33\x08\x83\x4b\xf5\x6d\xfa\x04\xd9\x8a\x13\xf6\xfa\xaf\x49\x18\xdc\xa9\xc8\xda\xdf\xe4\x99\xa7\x7f\xfe\x6a\x4e\xc2\xfc\x97\x6f\x86\x84\xe3\xeb\xaf\x9b\x5f\xc2\xd8\x21\x63\xfa\x2a\xa4\xc9\x0f\xd9\xf7\x8b\xa5\xfc\xdd\xf7\x0b\x76\x53\x1a\xcd\x39\xfb\x94\x6a\xcb\x37\x09\xfd\x7a\xa3\x5e\x72\x87\x26\x80\x62\x33\x7d\xcf\xd1\xb6\x3c\xd2\x11\xc2\x27\x3d\xb7\x2a\x76\x31\x12\x61\xe4\x8b\x39\x53\xef\xa4\x90\x6c\xb3\xa6\xc8\x5d\xba\x72\x22\xec\xeb\x9b\x0c\xaf\x7c\x11\x54\x05\xf5\x07\xa8\x0a\x7d\xa2\xf7\x0d\x0f\xdc\x81\x2a\x0b\x59\xeb\x96\xa2\xc8\xe7\xce\x0b\xe4\x37\xfd\x80\xa9\x4a\x70\x70\x58\x84\xe8\x76\x46\xa2\xdb\x80\x24\x24\x5c\xe4\xf6\x2f\x70\x58\xac\x6c\xf5\xa4\xc4\x8f\x6c\xb0\x96\xca\x57\xec\x08\xc7\xbf\xab\x44\xe5\x38\x2b\xf8\xff\x75\x43\xb7\xd4\x7b\xcc\xb5\xd4\x32\xe7\xd2\x89\xda\x70\xf0\x60\x0b\x57\x7c\x01\xb0\x01\xb0\x01\xb0\xa1\x47\xd8\xd0\xc2\xd9\xbf\x07\x3b\x54\x1c\xfe\xa3\x54\x5d\x01\x1f\xa0\xc1\x9e\x9f\x06\x0b\xf8\xd0\xe6\xba\x01\x7c\x80\xcd\x02\xaa\x03\xe0\x03\x7d\xb0\x33\xf8\xd0\x8a\x2e\xbf\x07\x43\x4c\x45\xa2\x03\x8c\x80\x28\x77\x46\xa2\xdc\x80\x24\x26\x5c\xec\xf6\x2f\x80\x11\x95\xad\x9e\x94\x38\x32\x36\x18\x11\xba\xdd\x12\x87\x03\xc5\x3b\x42\x77\x8f\x64\x52\xa8\xd7\x11\xba\xbf\x84\xf1\x8d\xef\xdb\x88\x95\x41\x20\x86\x9d\x5f\x38\xd7\x04\x75\xa1\x8b\x9c\x74\x15\x1f\x7b\xf9\xce\x0f\xdd\xd3\x61\x0b\x54\xb2\x99\x70\x25\x9b\xc3\x0c\xe6\x50\x15\x9b\xbd\x76\x9e\x16\xf8\x12\x6a\xd7\xa0\x76\x0d\x6a\xd7\xa0\x76\xcd\xd4\x6a\xd7\x1c\x3e\x79\x2b\xeb\xd6\x74\x4c\xf3\x4f\x56\xad\xe6\x70\xf7\x77\x57\xaa\x19\xf2\x18\x1c\x53\x9f\xe6\xf0\x18\xec\xae\x4d\xd3\xf1\x18\xa0\x22\x0d\x2a\xd2\xa0\x22\x0d\x2a\xd2\xa0\x22\x4d\x67\x15\x69\x6a\x9c\xfe\x5b\xd5\x68\xf6\x26\xc8\x3b\x23\x67\xbe\x7a\xbd\x41\x45\x9d\x91\x55\xd4\x39\xbc\x88\xf6\x55\xd3\xe9\x78\x35\xf5\x5a\x43\xe7\xf0\xc8\xec\xa9\x9f\xd3\xf5\xa9\x31\xd4\xaa\x39\x87\x07\xad\xc2\x18\xdf\xd8\x9c\xa5\x7f\xfa\xc7\x2e\xb0\x92\x8a\x75\x44\x0a\x79\xbf\x80\xe5\x9b\x6e\x46\x5d\xd0\x62\x3e\x0f\xe0\xb2\x39\xf2\x83\x04\x2e\x66\xba\x00\x5e\x2a\x3e\xd6\x06\x78\xa9\xd8\x3f\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x47\x1c\xfb\x00\x30\x00\x30\x00\x30\xd5\xab\x09\x00\x66\xe7\x3e\x03\x80\x39\x04\x60\x62\x61\x4d\xfe\xf2\xba\x8d\x43\x79\xd9\xf5\x89\x62\xbe\xe4\x0d\xfa\x60\x1b\x54\x0b\xca\x54\x7e\x13\x78\x66\x73\x36\x86\x87\x67\x2a\x27\x0e\xa0\xa6\xe2\x63\x2f\x06\x35\x87\x76\x17\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\xcd\x11\xc7\x3e\x90\x0d\x90\x0d\x90\x4d\xf5\x6a\x02\xb2\xd9\xb9\xcf\x80\x6c\x0e\x23\x1b\xd5\xce\x7f\x65\x61\xca\xfb\x45\x35\xaa\x21\xff\x25\x1b\x52\x13\xd1\x14\xbe\x01\x34\xb3\x39\xfa\x43\x44\x33\x85\x09\x03\x92\xa9\xf8\x58\x0b\x48\xa6\x7a\x17\x01\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x1c\x71\xec\x03\xc5\x00\xc5\x00\xc5\x54\xaf\x26\xa0\x98\x9d\xfb\x0c\x28\xe6\x10\x8a\x49\x84\x13\x8b\xb4\x4f\x06\xf3\x95\x5a\x50\x0b\xbe\xa8\x8f\x82\xba\x6c\x8e\xf7\xf0\xa8\x8b\x9a\x29\xe0\x96\x8a\x8f\xbd\x18\xb7\x6c\x6d\x18\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x96\x23\x8e\x7d\x70\x16\x70\x16\x70\x96\xea\xd5\x04\xce\xb2\x73\x9f\x81\xb3\x1c\xe6\x2c\xf1\xa3\xe7\x08\xee\x38\x52\x62\xec\x97\xb7\x50\x4b\x6e\x54\x4b\x6a\x72\x97\xe2\x57\xc0\x5f\x36\xc7\x7f\x88\xfc\xa5\x38\x63\xe0\x30\x15\x1f\x6b\x81\xc3\xec\xd8\x48\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\x47\x1c\xfb\xe0\x31\xe0\x31\xe0\x31\xd5\xab\x09\x3c\x66\xe7\x3e\x03\x8f\xa9\xc9\x63\x06\x00\x62\x8e\x21\x30\x40\x2f\x9b\x23\x3e\x58\xf4\x02\xe6\x52\xf1\xb1\xb6\x98\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x4b\x4b\xa7\x2d\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\xcb\xc1\xb1\xda\x0b\x5b\xe8\x45\x57\xca\x2e\xb2\xe6\x51\xb7\xd0\x45\xcb\x37\x81\xeb\x3d\x7a\x6e\xc6\xfd\xe2\xb4\x70\xab\xc3\x7c\xa0\xc6\xfc\xc6\xa3\x39\x73\x45\x14\x0b\x47\x5e\x57\xef\xac\x90\x39\xa3\xa7\xcc\x72\x8b\x55\xc9\x04\x61\x31\x0d\xf3\x82\x24\x15\xbc\x74\x1b\x6c\x42\x1c\x7a\x92\xa2\x38\xf6\xa5\xbf\x7a\x09\xc2\x68\xb6\x26\x72\x30\x2c\x67\xcd\x9d\x7b\x2f\x10\xf1\xf3\x3c\x7a\x58\xc9\x5f\x24\x73\xa9\x86\xcd\x1f\xaf\xe7\xb4\xdb\x6f\xa5\x3e\x73\x8e\x70\x87\x26\xaf\x5b\xc2\x63\xf7\x08\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x4f\x4b\xa7\x2d\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\xcf\xc1\xb1\xaa\xc1\x78\x44\xe0\x46\xa1\xd7\x75\x82\xb3\x7a\x88\xe7\xd6\xb4\xe5\x94\x88\xc7\xbe\x14\x88\xa7\x6a\x22\x81\x78\x80\x78\x2e\xec\x1e\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x69\xe9\xb4\x05\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x39\x38\x56\x75\x10\x0f\xd9\x49\x87\xc0\x77\x64\x43\x4e\xca\x76\xe4\x0b\xc1\x75\xaa\x26\x10\x5c\x07\x5c\xe7\x42\x8d\x2d\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\xce\x00\x78\x06\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x4e\xb9\x37\x60\x3a\x60\x3a\x60\x3a\x60\x3a\x67\xcc\x74\x68\x71\xc4\x34\x44\x03\x00\x3b\xbf\xca\xd6\x7c\x91\x7f\x38\x25\xdd\xc9\xdf\x0a\xc4\x53\x35\x95\x40\x3c\x40\x3c\x17\xf9\x26\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x69\xe9\xb4\x05\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x39\x38\x56\x35\x38\x4f\x90\xf3\x8c\xfe\x31\x8f\x85\x2b\xa7\xa4\x3c\xf6\xa5\xbf\x6e\xd8\xc9\x01\x75\x00\x75\xd8\x79\x42\x1d\xbb\x27\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\x5a\x3a\x6d\xc1\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\x0e\x8e\xd5\x51\x4c\xe7\xea\x7f\xec\xcf\xff\x7b\xa5\xcc\x25\x6b\x1e\x0d\x01\xf5\xd8\xa2\xee\xbd\xa0\x1e\xd7\xbe\x1e\xd0\x07\xd0\x07\xd0\x87\x36\x8a\xdd\x13\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x2d\x9d\xb6\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x67\x07\x7d\x74\xaf\x65\x03\x68\x2a\x79\x96\xde\xb3\xc4\x09\x23\xf1\x96\x25\x99\x43\xf6\x7a\xd2\x57\x04\x5f\x2b\xfb\x6d\x14\x87\x34\xca\x55\x5d\x8b\x78\x7a\x5f\xdd\xb3\xa0\xda\x77\x55\xae\x3f\x29\xe9\xeb\xd6\x9f\xf0\xbe\x03\xed\x02\xed\x02\xed\xaa\x5e\x4d\xa0\x5d\x3b\xf7\x19\x68\x57\x4b\xb4\x4b\xfd\xfa\x7f\x4f\x00\xbd\x8a\xa4\x2b\x30\xd7\x7c\xb8\x64\x0f\x5e\xe0\xb6\x4c\xbc\xde\xe6\x62\x3d\xa9\x2e\x5a\x04\x94\x9a\x41\xae\xaf\xcc\x4a\x7a\x6e\xe1\xd9\xcd\x79\x19\x58\x19\x58\xd9\x28\x58\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x59\xdd\xd3\xff\xe4\x9c\x8c\x00\x99\x1e\x81\x1d\xa6\x86\x3a\x08\x6c\x28\xf4\x0b\xd8\x0f\xd8\x0f\xd8\x0f\xd8\x0f\xd8\x0f\xd8\xef\x04\xd8\x4f\x04\x6e\x14\x7a\x41\x3a\x84\x18\xb7\x5b\xd3\x96\x7e\x62\xdc\xec\xeb\x11\xe3\x06\x6e\x37\x1a\x6e\xd7\x6d\x8c\x9b\xdd\x13\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x2d\x9d\xb6\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x67\xc7\xee\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x4e\x09\xbb\x06\x12\xe2\xd6\x2e\xf0\x3a\x71\x88\x5b\x15\x1a\x00\x2a\x03\x2a\xdb\x78\xea\x80\x50\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x59\xdd\xd3\xbf\xd7\x10\xb7\x1d\xa6\x06\x84\xb8\x55\xf7\x19\xd4\x0f\xd4\x0f\xd4\xaf\xee\x22\x02\xf5\x03\xf5\x9b\x1e\xf5\x23\x33\xf8\x10\xe2\xdb\x64\x43\x7a\x8a\x6d\x93\xaf\x46\x5c\x1b\x60\xdd\x68\x60\x5d\xc7\x71\x6d\x34\xb6\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x03\x00\x55\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x63\x84\x75\xa0\x5b\xa0\x5b\xa0\x5b\xa0\x5b\xa0\x5b\xa0\x5b\x27\xa3\x5b\x43\x09\x68\x6b\x8d\x70\x9d\x3a\x98\x6d\x83\x07\x80\x8d\x81\x8d\x6d\x3c\x75\x40\x6c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x6c\x90\x5c\xac\x14\xc4\xb6\x6d\x66\x40\x00\x5b\x75\x9f\x81\xf8\x80\xf8\x80\xf8\xea\x2e\x22\x20\x3e\x20\xbe\xc9\x21\x3e\x5a\x33\x31\x8d\xdc\x00\xa2\xd8\x7e\x95\xad\xf9\x22\xff\xd0\x4f\x28\x5b\xfe\x7e\xc4\xb3\x81\xd9\x8d\x86\xd9\x75\x1b\xcf\x96\x6f\x0a\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\xbb\x96\x4e\x5b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\xbb\xb3\x83\x77\x20\x5e\x20\x5e\x20\x5e\x20\x5e\x20\x5e\x20\x5e\xa7\x25\x5e\x03\x89\x6c\x6b\x99\x7a\x9d\x38\xbc\xad\x12\x0f\x80\x97\x81\x97\x6d\x3c\x75\x40\xbc\x0c\xac\x0c\xac\x0c\xac\x8c\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\xd5\x3d\xfd\x7b\x0d\x74\xdb\x65\x6b\x40\xb4\x5b\x75\x9f\xc1\xfe\xc0\xfe\xc0\xfe\xea\x2e\x22\xb0\x3f\xb0\xbf\xc9\xb1\xbf\x48\x36\x9e\x44\xa2\xc7\xd0\xcf\xd6\xc2\xf1\xb9\xb7\x1e\x42\xe0\xdb\x9d\x6d\xd8\xef\xd4\xb0\x0f\xb2\x61\xfd\xc4\xc0\x55\x36\x05\xe1\x70\xc0\x7b\xa3\xc1\x7b\xdd\x86\xc3\x55\xee\x0f\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\xbe\x96\x4e\x5b\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\xbe\xb3\xa3\x7d\xa0\x63\xa0\x63\xa0\x63\xa0\x63\xa0\x63\xa0\x63\xbd\xd1\xb1\x81\x04\xc9\x75\x47\xc8\x4e\x1c\x2f\x77\x88\x1f\x80\xad\x81\xad\x6d\x3c\x75\x40\x6c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x6d\x14\x5c\xad\x18\x45\x57\xc3\xec\x80\x80\xba\xea\x3e\x03\x19\x02\x19\x02\x19\xd6\x5d\x44\x40\x86\x40\x86\xd3\x43\x86\xa1\x3b\x88\xf0\xb9\xd0\xed\x29\x58\x2e\x74\x11\x1a\x07\x7c\x37\x1a\x7c\xd7\x71\x68\x5c\xe8\x02\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\xb5\x74\xda\x02\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x9d\x1d\xb0\x03\xd5\x02\xd5\x02\xd5\x02\xd5\x02\xd5\x02\xd5\x3a\x11\xd5\x1a\x4a\xd8\x5b\x4b\x64\xeb\xd4\x41\x6e\x25\x12\x00\x26\x06\x26\xb6\xf1\xd4\x01\x31\x31\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\xb0\x01\xf2\xb0\x52\x00\xdb\xa6\x91\x01\xe1\x6a\xd5\x7d\x06\xd8\x03\xd8\x03\xd8\xab\xbb\x88\x00\xf6\x00\xf6\xa6\x08\xf6\x52\xb1\x8e\xc8\xde\x32\x8c\xb0\xb5\x6f\xba\x39\xbd\x85\xaf\x99\x06\x20\x8c\x0d\xc8\x6e\x34\xc8\xae\xf3\x30\x36\xb3\x2b\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x5a\x3a\x6d\x81\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\xce\x0e\xdf\x81\x7a\x81\x7a\x81\x7a\x81\x7a\x81\x7a\x81\x7a\x9d\x98\x7a\x0d\x27\xac\xad\x55\xf2\x75\xfa\xf0\xb6\x0a\x42\x00\x66\x06\x66\xb6\xf1\xd4\x01\x31\x33\xf0\x32\xf0\x32\xf0\x32\xf5\x47\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\xb2\x41\xf2\xb2\x8d\x70\xb7\x6a\x63\x03\xc2\xde\xaa\xfb\x0c\x00\x08\x00\x08\x00\x58\x77\x11\x01\x00\x02\x00\x4e\x0e\x00\xc6\xc2\x72\x1e\x29\x55\xc5\xa1\x94\x69\x86\x10\x00\xf7\x25\x6f\xd8\x07\xdb\xb0\x7e\x42\xe1\x2a\x9b\x82\xa0\x38\x00\xbe\xd1\x00\xbe\x6e\x83\xe2\x2a\xf7\x07\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x5f\x4b\xa7\x2d\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\xdf\xd9\xe1\x3e\xd0\x31\xd0\x31\xd0\x31\xd0\x31\xd0\x31\xd0\xb1\xde\xe8\xd8\x40\x02\xe5\xba\x23\x64\x27\x0e\x99\x3b\xc4\x0f\xc0\xd6\xc0\xd6\x36\x9e\x3a\x20\xb6\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x36\x0a\xae\x56\x0c\xa3\xab\x61\x76\x40\x40\x5d\x75\x9f\x81\x0c\x81\x0c\x81\x0c\xeb\x2e\x22\x20\x43\x20\xc3\x09\x22\x43\xd5\x89\x7f\x65\x61\xca\x87\x11\x48\xa7\x1a\xf4\x5f\xb2\x41\x7d\x05\xd0\x15\x9a\x80\xc0\x39\xc0\xbd\xd1\xc0\xbd\xae\x03\xe7\x0a\xfb\x02\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\xaf\xa5\xd3\x16\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\xef\xec\xc0\x1e\xe8\x17\xe8\x17\xe8\x17\xe8\x17\xe8\x17\xe8\xd7\xc9\xe9\xd7\x60\x02\xe5\xda\x26\x60\x27\x0f\x90\xab\xe6\x04\x60\x67\x60\x67\x1b\x4f\x1d\x10\x3b\x03\x37\x03\x37\x03\x37\x33\x7f\x04\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x1b\x24\x37\x2b\x07\xc4\xed\x34\x37\x20\x10\xae\xba\xcf\x40\x81\x40\x81\x40\x81\x75\x17\x11\x50\x20\x50\xe0\xe4\x50\x60\x22\x9c\x58\xa4\x43\x88\x80\xfb\x4a\x2d\xe9\x27\xf4\x4d\xbd\x1b\x31\x6f\xe0\x76\xa3\xe1\x76\xdd\xc6\xbc\xa9\x0d\x01\x68\x07\x68\x07\x68\x07\x68\x07\x68\x07\x68\x07\x68\x07\x68\xd7\xd2\x69\x0b\x68\x07\x68\x07\x68\x07\x68\x07\x68\x07\x68\x07\x68\x77\x76\xd0\x0e\x84\x0b\x84\x0b\x84\x0b\x84\x0b\x84\x0b\x84\xeb\x74\x84\x6b\x20\x51\x6e\x2d\x52\xae\x13\x87\xb7\x6d\x21\x01\xf0\x31\xf0\xb1\x8d\xa7\x0e\x88\x8f\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x0d\x93\x8d\x15\x03\xda\xaa\xec\x0c\x88\x64\xab\xee\x33\x38\x1f\x38\x1f\x38\x5f\xdd\x45\x04\xce\x07\xce\x37\x41\xce\x17\x3f\x7a\x8e\xe0\x8e\x23\x75\x82\x61\x44\xb4\x51\x8b\x6e\x54\x8b\xfa\x8a\x6c\x2b\xb6\x01\x11\x6e\x20\x78\xa3\x21\x78\x5d\x47\xb8\x15\x37\x06\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x5e\x4b\xa7\x2d\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\xde\xd9\xd1\x3c\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\xb0\xd3\x13\xb0\xc1\x44\xbc\xb5\x4e\xc1\x4e\x1e\xf9\xb6\x03\x15\x80\x9f\x81\x9f\x6d\x3c\x75\x40\xfc\x0c\xec\x0c\xec\x0c\xec\xcc\xfe\x11\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x6c\x90\xec\xac\x1c\x09\xb7\xdb\xde\x80\x88\xb8\xea\x3e\x83\x07\x82\x07\x82\x07\xd6\x5d\x44\xe0\x81\xe0\x81\x53\xe5\x81\x03\x0a\x85\xeb\x35\x06\x0e\xc1\x6f\x80\x77\xa3\x81\x77\x27\x09\x7e\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x6b\xe9\xb4\x05\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x3b\x3b\x72\x07\xca\x05\xca\x05\xca\x05\xca\x05\xca\x05\xca\x75\x42\xca\x35\xac\x70\xb7\x11\xc7\xb9\x81\x91\x81\x91\x8d\x82\x91\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x0d\x94\x8f\x55\x44\xb6\x21\xa4\x0d\xb0\x0f\xb0\x0f\xb0\x0f\xb0\x0f\xb0\x0f\xb0\xaf\x0a\xf6\xf5\xce\xf5\x2c\x26\x1b\x21\xd9\x03\xd1\x03\xd1\x3b\x73\xa2\x57\xb5\x17\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\x8e\x38\xf6\x8b\x4c\x6f\x87\xa9\x61\x4c\x54\x0f\x70\x0b\x70\x0b\x70\xab\x7a\x35\x01\x6e\xed\xdc\x67\x80\x5b\x35\xe1\x56\xe8\x0e\x22\x2b\xe3\xdf\x42\xf7\xb4\x29\x19\x43\x17\x59\x18\x19\x78\xd4\x68\x78\x54\xb7\x59\x18\xe5\x76\x00\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x6a\xe9\xb4\x05\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x3a\x3b\x1c\x05\x7e\x03\x7e\x03\x7e\x53\xbd\x9a\xc0\x6f\x76\xee\x33\xf0\x9b\x23\xf8\xcd\x50\xe2\x92\xda\x62\x38\xa7\x09\x49\x2a\x9b\xbc\x41\x7f\x40\x7f\x36\x9e\x3a\x20\xfa\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x33\x44\xf2\x53\x0a\x44\xda\xb2\x32\x20\x06\x09\x0c\x0b\x0c\x0b\x0c\x0b\x0c\xeb\xec\x19\x56\x24\x5b\x49\x97\xff\x63\xe8\x67\x6b\xe1\xf8\xdc\x5b\x0f\x21\x28\xe9\xce\x36\xec\x77\x6a\xd8\x07\xd9\xb0\x53\x46\x29\x55\x36\xe0\x57\x2f\x49\x7f\x09\xe3\x1b\xdf\xb7\xe1\xbd\x09\x40\x16\x40\xd6\x28\x40\x56\xb7\x61\x4c\x95\xfb\x05\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\xab\xa5\xd3\x16\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\xeb\xec\xe8\x16\x98\x10\x98\x10\x98\x50\xf5\x6a\x02\x13\xda\xb9\xcf\xc0\x84\x9a\x31\xa1\x21\xe2\xa0\x3e\x49\x10\x72\xd7\x01\xfa\x00\xfa\x54\x42\x1f\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x9e\x96\x4e\x5b\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x9e\x83\x63\xd5\x84\xf7\x0c\x24\xa7\x5d\x27\xcc\xe7\x24\xf9\xed\xf6\x98\xc5\x41\x8b\x40\x8b\x36\x9e\x3a\x20\x5a\x04\x52\x04\x52\x04\x52\x54\xf8\x23\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\xd1\x20\x49\x51\x31\xef\xdd\x7e\x8b\x03\x72\xe0\x81\x7f\x81\x7f\x81\x7f\x81\x7f\x81\x7f\x85\xee\x20\x42\x9c\x42\xf7\xa4\x51\x4d\xa1\x8b\x6c\x76\x55\x93\x07\x54\x35\x0a\x54\xd5\x71\x60\x53\xe8\x82\x50\x81\x50\x81\x50\x81\x50\x81\x50\x81\x50\x81\x50\x81\x50\xb5\x74\xda\x82\x50\x81\x50\x81\x50\x81\x50\x81\x50\x81\x50\x81\x50\x9d\x1d\xa1\x02\xcb\x01\xcb\x01\xcb\xa9\x5e\x4d\x60\x39\x3b\xf7\x19\x58\x4e\x6d\x96\x93\x8a\x75\x44\x6a\xf9\x30\x98\xce\x37\xdd\x9c\x13\xb3\x1d\xf3\x5a\x30\x9e\xaa\xc9\x04\xe3\x01\xe3\xb9\x28\xec\x12\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x9e\x96\x4e\x5b\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x9e\x83\x63\x55\x83\xf5\xc4\xc2\xa2\x00\x79\xe9\xc6\xa1\xbc\xf2\x86\x40\x7d\xbe\xe4\x0d\xfb\x60\x1b\x76\x4a\xfe\x53\xd9\x00\x90\xa0\xaa\x09\x06\x09\x02\x09\xba\xa8\xdc\x2f\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x2d\x9d\xb6\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x07\xc7\xaa\x16\x13\x52\xad\xfd\x57\x16\xa6\x7c\x18\x2c\x48\x35\xe8\xbf\x64\x83\x4e\xcb\x80\x0a\x2f\x06\xfb\xa9\x9a\x50\xb0\x1f\xb0\x9f\x8b\xd2\x3e\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x69\xe9\xb4\x05\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x39\x38\x56\x35\x98\x4f\x22\x9c\x58\xa4\x43\x80\x3d\x5f\xa9\x25\xa7\xa4\x3c\xea\x8d\xc0\x3b\x55\x53\x08\xbc\x03\xbc\x73\xa1\x36\x08\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x4e\x4b\xa7\x2d\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\xce\xc1\xb1\xaa\xc5\x75\xe2\x47\xcf\x11\xdc\x71\xa4\xdc\x38\x0c\xbe\x43\x2d\xba\x51\x2d\x3a\x2d\xe7\x29\xbe\x19\xbc\xa7\x6a\x4a\xc1\x7b\xc0\x7b\x2e\xca\x1b\x05\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\xa7\xa5\xd3\x16\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\xe7\xe0\x58\xd5\xe7\x3e\x03\x02\x3e\x3d\x90\x1e\x20\x9e\xaa\x49\x04\xe2\x01\xe2\x31\x88\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\xa7\xa5\xd3\x16\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\xe7\xe0\x58\xed\x64\x3b\xc9\x55\x23\x96\xd3\x35\xcb\xa8\xc3\x89\x56\x22\x2d\x48\x73\x37\x77\x9f\xcc\x11\x98\xec\xc1\x39\x2b\x91\xde\xdc\x7d\xfa\xbd\xe2\x83\x7d\x61\x9b\xd1\xd2\x94\x9b\xbb\x4f\x7f\x89\xc3\x2c\xfa\xd5\x4b\x46\xcf\x53\x64\xc7\x0a\x9f\x7e\x55\x7c\x63\x79\xbb\x70\x77\xed\x91\xc5\x3c\x16\x2b\x2f\x49\xd5\xda\xa2\xd1\xf2\xc2\x71\xef\x25\x2f\x58\x86\xf1\xda\xde\x0a\x9c\x29\xd8\xb3\x7f\x2f\x55\x8d\x86\x59\x18\xd8\x5d\x2d\xec\xae\xd1\xef\xac\xaa\x15\xd2\xc2\x56\x7b\xbc\x1e\xf7\x6e\x2b\xd9\x21\x94\xf8\xd1\x60\xab\xfd\x7e\x7d\x73\xf7\xe9\x4b\xd5\x03\xb0\xe1\x8e\xdf\x70\x66\x20\x27\x71\xa3\x55\x2d\x97\xb2\xcb\xc0\x0b\xb6\xde\x3a\x4b\x79\xea\x05\xab\x27\xb1\xb8\x0f\xc3\x87\x12\x53\x2b\x79\x07\x29\x63\x50\xbb\x0e\x42\xea\x99\xcc\x09\x7d\x5f\x38\xe6\xba\xfa\x4d\xb7\xe8\xef\xaa\x45\x1f\x8a\x2d\xda\xb3\xb1\xd4\xb3\x76\xec\xad\x0f\xf6\x0d\x75\x9f\xbe\xc3\x85\x81\x1d\x58\x20\x70\x63\x98\xb0\x1b\xc3\x1e\x5d\xef\x08\x57\x86\x03\xda\xdf\x7e\xfd\x6f\xe3\xd0\xfa\x9f\xaa\xd6\x2d\x42\x77\x67\xe3\xaa\xfe\xd6\xc9\x21\xfc\x91\xb6\xe3\xe7\x48\x9d\x23\xf5\x8e\xe0\xfd\x5b\x0b\x2e\x1a\x70\xd1\x80\x8b\x06\x5c\x34\xa6\xe6\xa2\x51\xef\x56\xa9\x74\xd3\xd8\x6f\x8d\x7e\xc9\x4d\x52\xc5\x38\x34\x9c\x7a\x4b\x1e\xdd\x8e\x5c\x51\x6a\x1d\x94\xfa\x56\x94\x23\x16\x82\x45\x72\xb4\x92\x54\x5e\xd0\x37\x01\xf3\x02\x75\xb2\x84\x31\xcb\x02\x7b\x38\xb9\xcc\x8d\x9f\xbf\x64\x01\x73\xbd\x58\x0a\x69\x8f\xc2\xae\x78\x32\xee\x07\x8c\x07\x7a\xcb\x9b\xb5\xa1\x07\x98\x2d\xb3\x98\x76\x59\x14\x87\x8e\x94\x1b\x14\xff\x28\xe0\xf3\x39\xfb\x9d\xde\x48\xb3\x45\x6b\xe7\x1d\xbb\x64\x37\xbe\xff\x8e\x88\x9e\x2b\x4f\xe9\x2c\x90\x13\xbf\x12\x89\x5d\x92\xfa\x71\xc2\x6d\x30\x51\xaa\x2f\xfd\x4c\xd3\xc9\xfc\x6a\xea\x0d\xc5\x6e\xdf\x9a\x93\x8d\xc8\xb7\x22\x21\xf1\x02\x96\x28\x70\xc1\x16\x62\xa9\x24\x67\xcb\x60\x73\x51\x42\x9f\x5e\xb4\x74\x32\xa1\x2e\x87\x85\x60\x41\x18\x5c\x06\x62\xc5\x69\x81\x6a\xc6\x31\x67\xdf\xec\x85\xad\xfc\x31\xec\xd6\xd0\xba\x8d\xb7\x5e\x0b\xd7\xe3\xa9\xf0\x9f\x73\x91\x36\xbf\x72\x3d\xff\xad\x66\x18\x34\xe8\x6c\x15\x73\x87\x76\x8d\x17\xba\x56\x20\xc8\x2f\x6d\xd2\x17\xcc\x2a\xcd\x12\xd9\xc8\xe2\x74\x71\xf9\x4d\xd3\x21\xfd\x92\xa5\x3a\x03\xcd\x23\xe6\xaa\x9d\x6b\xc1\x83\xca\x36\x36\x98\x66\x6a\xf3\x1d\x35\xb9\x8a\x0b\x1d\x20\x43\x43\x59\xfe\xc7\xb8\x54\xd5\x1b\x97\xdd\x6e\x55\x27\x5b\xfe\x70\xb0\x82\x83\x15\x1c\xac\xe0\x60\x05\x07\xab\xce\x1c\xac\x6a\xde\x05\x5b\x4e\x56\xa7\xbb\x16\x3f\x16\xe2\x2a\x23\x5f\xf0\x44\xd8\x23\xe8\x2e\x0e\x23\xbe\x22\xe9\xe8\x2e\xf4\x3d\xe7\xb9\x64\x07\x33\x8b\x2e\x0f\xcc\x94\xcb\xee\x7a\xfe\xa7\x39\xfb\xaa\xce\x33\x25\xba\x44\x22\x90\x9b\x25\xbf\x53\x05\x0b\xe3\xe8\x9e\x07\xc6\x2e\x17\x67\xe2\x6a\xc9\x7d\xa3\x2b\x7f\xbf\x50\x7f\xfe\x7e\xc1\x96\x5e\xc0\x7d\xef\xdf\xe6\x22\x59\x08\xc6\x5d\x97\x56\xe7\x95\x72\xc9\x70\x73\x35\x4c\x3d\x7e\x96\xe4\x5f\x52\xfa\xe9\x9c\xdd\x7a\x74\x38\x16\x9a\x1e\xc6\xdb\x7d\xa3\xe3\x47\x99\x8a\x94\x7a\x4c\x3a\x4a\x98\xde\x37\x99\x50\xd5\x83\x8f\xa6\xef\x27\x33\xf1\x6d\x2b\x66\xd4\x75\xb9\x61\xef\xc3\x27\xb6\xe2\xf1\x82\xaf\x4a\x26\x75\xab\xd4\x88\x78\x19\xc6\x6b\x39\x27\x95\xe3\xf5\x79\xa3\x47\xbb\x87\x8b\x84\x5e\x23\xb1\x46\x6a\x6c\x3d\x29\x4d\x3a\x9e\x9b\xab\xc2\x24\x2b\x90\x71\xc2\xce\x71\x42\x70\x9a\xfe\x6a\xa4\x81\x79\x61\x32\xcd\x3d\x62\x54\xed\x4b\x6b\x63\x2e\xbf\x6c\xce\x6e\x1c\x47\x44\x29\xdd\x4d\x45\xcd\x6e\xa6\xfa\x30\x63\x97\x7a\x01\x96\x17\x68\xf2\x9e\xcd\xfe\xcc\x9d\x87\x55\x1c\x66\x81\x2b\x3f\x45\xb6\x5a\xfa\xd0\xc6\xc0\x29\x11\x52\xcb\xc7\xe5\x87\x98\x1e\x2c\xec\x93\xde\xb3\xd9\x2f\x61\x2c\x0a\x8f\x65\x0e\x4f\x1c\xee\xca\xde\xeb\xf1\x51\xe6\x7c\x7a\x5e\xa2\x54\xcf\xad\x07\x2e\xed\x33\x9a\x2c\xc8\x68\x73\xb9\xf7\x68\x29\x80\x37\xe4\x78\xbc\x21\xeb\xad\xae\x7d\x1e\x91\xa7\x53\xe6\xfb\xf4\x8d\xac\x37\x4e\x7b\xfc\x23\x4f\x77\xe1\x0f\xd5\x53\xb2\xde\x10\x6e\x7b\x4b\xbe\xf4\x3a\xad\x44\xd1\x70\xab\x38\x92\xe8\x7d\x4d\x79\x9a\xd5\x45\x79\x63\xf6\xa6\x28\x3c\x61\x47\x02\x06\x75\x8f\xe7\x32\x56\x1b\x79\x18\xf6\x39\x6a\x54\xe7\x68\xa8\xe9\xca\x70\x4c\xe2\x86\xd6\x53\xc0\x28\xbb\x5b\xac\x05\x00\xa3\x20\x84\x4b\x26\x3b\xd1\xd4\xd5\x43\x3e\x74\x87\xa3\x07\xdc\x3b\xe0\xde\x31\x59\xf7\x0e\x38\x44\xc0\x21\x02\x0e\x11\x70\x88\x80\x43\x44\xef\x0e\x11\x20\xed\x80\xaf\x80\xaf\x80\xaf\x80\xaf\x80\xaf\x80\xaf\x80\xaf\x3b\x2f\x01\xf0\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x10\x24\xbb\xde\x07\x5e\xe6\xd5\xf6\xff\xc7\xeb\xf9\x3e\x93\xf6\x99\xc4\xb7\x1e\x26\x32\x6d\x65\xc3\x1e\x04\x85\x69\x90\x3e\x7b\x2c\x29\xb5\x5e\x6d\xcc\xe8\x45\x14\x26\x2d\x23\x27\x25\xed\x33\xde\x94\x2e\xa9\xef\x9f\x88\x2f\x35\x8b\xd8\x94\x3a\x86\x17\x0b\x57\x0f\x6f\xcf\x87\x50\x2b\xd1\x9d\x88\x30\x2a\x2e\x88\xc1\x46\x18\x91\x41\xe0\x37\x1e\xf0\x95\x88\x95\x69\x4b\xb6\x8a\xf1\x24\x09\x1d\x8f\x74\x35\x6b\x44\xe2\x64\x0b\x0c\x63\x26\x55\xf9\xf4\xd9\x2a\xaf\x6b\xfe\x20\x47\x31\xbd\x17\x89\x30\x02\x59\x31\x8e\xc6\xc4\xdb\x90\x40\x4a\x06\xa3\x30\x66\xd7\x3f\xfd\x2c\x3f\x1b\x73\x87\x08\x91\x1f\x06\x2b\x25\x7e\x91\x51\x47\x6a\xdf\xdc\x0b\xd4\x01\x47\x46\x93\xfc\xb3\x64\x35\xd7\xfc\x8a\x2d\x9e\x19\xdd\x4e\xef\xae\xae\x56\xa1\xcf\x83\xd5\x3c\x8c\x57\x57\xd1\xc3\xea\x2a\x0b\x3c\x27\x74\xc5\xd5\x7f\x7c\x4a\xee\xe4\x53\x1a\x5b\x61\xf5\xe0\xb4\x39\x3d\x83\x92\xd7\xa6\x28\x46\xd5\x15\xa1\x7e\xaa\x21\x42\x7d\x50\xc6\xa6\xf1\x74\xe9\xa7\x83\x5d\x52\xde\xb6\xe3\xe9\xd3\xa4\x25\x5d\x12\x98\x46\x2e\xe9\xbe\x62\xed\xe6\xa9\xb9\xfa\x1f\x79\x04\xff\xef\x89\xd2\xd5\x34\x96\x2c\xf7\xa6\xa8\x19\x86\x64\x39\x92\x5c\x20\x90\x16\x8b\x93\x3c\x58\x69\x11\xd1\xd7\x67\x14\x7d\x8d\x30\x33\x84\x99\x21\xcc\x0c\x61\x66\x50\x74\x77\xed\xa2\x41\x06\x6a\xf4\xa3\x00\x22\xce\xa4\x7e\x9c\xc9\xd8\xb5\x3d\x6b\xeb\x6f\x3d\xba\x84\x9c\x0b\xca\x32\x5a\x43\xd5\x4c\x3e\xa9\x9f\x90\x92\x82\x88\x23\x7e\x90\xa3\xd8\x42\xfe\xc4\x9d\x74\xce\xd8\xad\xfc\xd7\xfc\x7e\xcd\x3d\x32\x73\x26\xcc\xf1\xb3\x24\x15\x71\x7e\x71\x29\x8f\x52\xe6\x7b\x0f\x82\xcd\x6c\x31\xe3\x99\x94\x4f\x8d\x4c\x35\x67\x77\x3e\x0f\x02\xed\xe8\x41\x52\x0f\xf7\x95\xa0\x75\xfd\x73\x93\x9b\x80\xda\xd8\x93\x3c\x62\x07\xcd\x8a\xf3\x0b\x33\x7c\xb2\xa7\xec\x56\x8d\x98\xbc\x83\xa2\xc4\x8c\x8e\xf6\xa5\xca\x12\x11\x93\x13\x54\x2e\x99\x3f\x77\x3c\x50\xb2\x31\xd3\x25\xf8\xc3\xbe\x28\x61\x6a\x6c\x7c\xfd\xc8\xf3\x7a\x2a\x77\x4f\x03\xa6\x4e\x64\x4b\x9b\x6f\xea\xb7\x48\x1d\x08\x11\x4f\xef\xab\x69\x3a\xfd\x5b\xfa\xcb\x1e\x9a\xdb\x71\xb1\xa1\xf1\x7a\x0d\x90\x47\x4f\xa3\x32\x01\x97\xf4\xdd\x3f\xec\x3f\x08\xd7\x22\x5e\x89\x5a\x9f\xa4\xf5\x2c\x56\x9e\x73\x59\xff\x3b\xf2\xe7\x67\xfd\x49\x3a\x72\xeb\xc8\x3a\xe4\x02\x4a\x11\x66\xca\xfb\xac\x1d\xb9\x87\x1a\x31\x68\x8b\x74\x57\xbe\x0e\x7b\x34\x90\xbb\xb2\xbf\x18\x83\x9d\x7a\xe2\x76\xea\xf3\xf1\x6a\xd8\x08\xeb\x30\x9b\x4b\x85\x1e\x45\xca\x13\x5b\x87\xb3\xbf\xde\x71\x64\xbd\x21\x2b\x9d\x8a\x37\xe6\x3e\x7d\x33\x08\x83\x4b\xf5\x6d\xfa\x04\x19\xca\x13\xf6\xfa\xaf\x49\x18\xdc\xa9\xa8\xee\xdf\xe4\xe1\xa8\x7f\xfe\x6a\x8e\xcc\xfc\x97\x6f\x86\xe4\x6e\x51\x7f\xdd\xfc\x12\xc6\x0e\x91\x84\x55\x48\x93\x1f\xb2\xef\x17\x4b\xf9\xbb\xef\x17\xec\xa6\x34\x9a\x73\xf6\x29\xd5\x66\x7f\xd2\x3f\xf4\x46\xbd\xe4\x0e\x4d\x00\xc5\x05\xfb\x9e\xa3\x0d\x99\xa4\xae\x84\x4f\x7a\x6e\x55\xdc\x6c\x24\xc2\xc8\x17\x73\xa6\xde\x49\xe9\x00\xcc\x9a\x22\x57\xfd\xca\x89\xb0\xaf\x6f\x32\xbc\xf2\x45\xd0\x5a\xd4\x1f\xa0\xb5\x6c\x3f\x75\xa0\x5a\x4b\xb4\xe1\x2b\x3e\x72\xbd\x25\x6b\xdd\x66\x16\xf9\xdc\x69\x49\x7c\xd4\x0f\x3b\x4b\x01\x12\xce\xb2\x10\x2b\x21\x56\xc2\x59\x16\x42\x86\xfd\x79\x03\x2c\x4e\xce\x59\x76\xda\x72\x53\x36\x7a\x6b\xef\x2b\x76\xb4\x5f\x29\xdd\x80\x03\xab\x80\xf8\xbb\x6d\x53\x37\x35\x10\xeb\x3f\x1f\x69\xf2\x90\x26\x6f\x74\x69\xf2\x26\xed\xf9\x8c\xa4\x7f\x48\xfa\x87\xa4\x7f\x48\xfa\x87\xa4\x7f\x55\x57\x09\xaa\x20\xc2\xec\x82\xdc\x8c\x88\xc3\x39\xe7\x38\x1c\x24\xe2\x44\x22\x4e\x24\xe2\x44\x22\x4e\x24\xe2\x44\x22\x4e\x24\xe2\x44\x78\x2a\xc2\x53\x11\x9e\x8a\xf0\xd4\xcd\x15\x89\x2a\x88\xc8\xfa\x7b\xf4\xea\x42\xd6\x5f\x64\xfd\x45\xd6\xdf\xe9\x3b\xc6\x20\x3a\x7d\x3c\x55\x10\x6b\x3b\x33\x0c\xb8\x0e\x62\x63\x87\x8f\x3d\x95\x10\xe1\xe4\x01\x27\x8f\x09\x3b\x79\xc0\x2d\x02\x6e\x11\x70\x8b\x80\x5b\x04\xdc\x22\x7a\x77\x8b\x00\x6f\x07\x82\x05\x82\x05\x82\x05\x82\x05\x82\x05\x82\x05\x82\xdd\x79\x09\x80\x8a\x80\x8a\x80\x8a\x80\x8a\x80\x8a\xa0\x16\x62\xb3\x20\xde\xfd\x46\x6d\x54\x43\xec\xbd\x1a\x62\x27\x34\x06\xf5\x10\x5b\xa9\x87\xd8\x98\x32\xed\xad\x88\xd8\x3e\x67\x1a\x4b\x9a\x97\x03\x3d\xaf\x77\x10\x21\xe2\x68\x02\x11\x47\x48\xf4\x82\x44\x2f\x15\x8d\x19\xbd\x40\x35\xd2\x54\x2f\x6d\x75\x6a\x58\x95\x11\xdb\xe9\xd5\xa4\xe5\xde\xfe\x6a\x23\xb6\x29\xf7\xbe\x62\x6d\x67\xb1\x39\x75\x7d\xc4\x6e\x12\xd8\x0c\x45\xd2\x1c\x49\xa6\x10\xc8\x8e\xc5\x49\x1e\xac\xec\x88\xd8\xec\x33\x8a\xcd\x46\x10\x1a\x82\xd0\x10\x84\x86\x20\x34\xa8\xbd\xbb\x76\xd1\x20\xc3\x38\x50\x23\x71\xb8\x3a\x5f\x9f\x35\x12\xc7\x11\x7b\x52\x51\x25\xb1\xb1\x82\xb6\xa7\x4e\x62\xe7\x01\x27\xa8\x94\x68\x17\x4d\x7d\xa9\x04\x95\x12\xf5\x7f\xb8\x2e\x61\x7a\x9c\x62\xad\xc4\xa1\x10\xf7\x62\xb5\xc4\x63\xda\x84\x7a\x89\xa8\x97\xd8\x43\xbd\xc4\xc6\x12\xd0\xbe\x8a\x89\x43\xb1\x50\xa3\x66\x22\xec\xd6\xf0\x79\x40\xcd\xc4\xed\x15\x83\x9a\x89\xa8\x99\x08\xfd\x05\xfa\xcb\x90\xaa\x26\x76\xa3\xc1\x9c\xa6\x6e\xe2\x0b\x0c\x69\xfb\x2a\x27\x4e\x5d\x90\x84\x53\x2d\x04\x4c\x08\x98\x70\xaa\x85\xb8\x71\x66\x4e\xb5\xd3\x96\xa1\xfa\xaa\xa0\xd8\xb3\xf7\x29\xc5\x14\x5e\xad\x75\x19\xc7\x83\x75\x14\x5b\x07\x9c\x3a\xff\x42\xe0\x7a\x8f\x9e\x9b\x71\xbf\x18\xda\xca\x6d\xc6\x95\x7d\x65\x26\xe7\x05\xc7\xaa\x77\xd6\x25\x6b\x46\x0f\x9e\xe5\xe9\xb8\x4a\xf9\x95\xac\x40\xc7\xbc\x20\x49\x05\x2f\x59\x7c\x37\xc5\xbd\xa7\x3d\x56\xc3\x7d\x0d\xfb\x75\x23\x92\x0f\x91\xa9\x43\xf5\x28\xa1\xc0\xea\xdb\x47\x11\x20\x04\xd5\x2e\xf8\xfe\xe2\x50\xdb\xab\x29\xfb\x12\x26\x86\x14\x99\x13\x4e\x91\x79\x18\xe9\x1d\x4a\x8f\xb9\xd7\x32\xd8\x02\xae\x44\x52\x4c\x24\xc5\x44\x52\x4c\x24\xc5\x9c\x5a\x52\xcc\xc3\x27\x6f\x65\x42\xcc\x8e\x9d\x43\x4e\x96\x06\xf3\x70\xf7\x77\xa7\xc0\x1c\xf2\x18\x1c\x93\xf8\xf2\xf0\x18\xec\x4e\x7a\xd9\xf1\x18\x20\xd5\x25\x52\x5d\x22\xd5\x25\x52\x5d\x22\xd5\x65\x67\xa9\x2e\x6b\x9c\xfe\x5b\x69\x2e\xf7\x86\x78\x9e\x91\x6f\x68\xbd\xde\x20\x55\xe7\xc8\x52\x75\x1e\x5e\x44\xfb\xd2\x74\x76\xbc\x9a\x7a\x4d\xce\x79\x78\x64\xf6\x24\xe6\xec\xfa\xd4\x18\x6a\x3a\xce\xc3\x83\x56\x61\xec\x6f\x6c\xce\xd2\x3f\xfd\xa3\x1b\xf6\x54\x91\xfd\xa4\x23\x04\x55\xe4\x4e\x81\xb9\x07\x4d\x91\xa7\xce\xf9\xd3\xdb\x5c\x14\x26\x71\x5f\x8b\x4d\x52\x9a\xce\x65\xfc\x59\x49\x37\x2c\x3c\xbb\x0b\x7a\x05\x72\x05\x72\x35\x4e\x72\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x35\x15\x6a\x55\xcc\xda\x52\xdf\xfa\x80\x9c\x2d\xe0\x72\xe0\x72\xe0\x72\xe0\x72\xe0\x72\x7b\xb9\xdc\x81\xba\x04\x03\x88\x0a\xdb\x1f\x3a\xd7\x6b\x5c\x58\x8d\x62\x77\xe0\x6b\xe0\x6b\xa3\xe4\x6b\xa8\x50\x08\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x36\x2d\xca\x06\x06\x05\x06\x05\x06\x55\xbd\x9a\xc0\xa0\x76\xee\x33\x30\xa8\x13\x30\xa8\x81\x44\x87\x9d\x80\x43\xf5\x13\x1f\x76\x44\x2a\x6b\x10\x2c\x10\xac\xd1\x10\x2c\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\xab\xe9\xd0\x2b\x54\xf6\x06\xa1\x03\xa1\x03\xa1\x03\xa1\x03\xa1\x6b\x97\xd0\x2d\x44\xca\xaf\xaf\x1a\xa1\xb7\x5e\x6a\x0f\x6e\x4c\xff\x4a\xa4\x65\xb1\x56\xcd\xf4\x1e\x50\xb6\x12\xe9\x0e\x4c\x46\x43\x71\x73\xf7\xe9\x4b\xd5\x53\x50\x80\xf1\x48\x60\x55\x18\x48\x8a\x93\x9b\x28\xb5\xa2\x45\x53\x78\xcc\xab\x62\x53\x1a\xec\xc4\xda\x25\xfc\x94\xaa\xd1\x2e\x24\x57\xcf\x64\x4e\xe8\xfb\xc2\x31\xd7\x47\xdd\xec\xa2\x1b\xfb\x4c\x3d\x6b\xdf\x56\xfb\x60\x5f\x53\x3b\x81\x69\xcd\x4a\xcb\x20\x65\xe7\x43\xca\xea\x15\xeb\x3d\x44\xcb\x0e\x5c\xbe\x2f\xa9\xa9\xdc\xac\xec\x77\x27\x67\xf2\x47\xda\x93\x9f\x23\x75\x98\xd4\x3b\x91\xf7\x6f\x2d\x50\x40\x50\x40\x50\x40\x50\xc0\xa9\x51\xc0\x7a\xb7\x4a\x25\x09\x3c\x59\x75\x7e\xb2\xe3\x68\xfb\xe7\x5b\xca\xb2\xe1\xc8\x15\xa5\xd6\x41\xa9\x6f\x45\x39\x62\x21\x58\x24\x47\x2b\x49\xe5\x05\x7d\x13\x30\x2f\x50\x27\x4b\x18\xb3\x2c\xb0\x87\x93\xcb\xdc\xf8\xf9\x4b\x16\x30\xd7\x8b\xa5\x90\xf6\x28\xec\x8a\x27\xdb\x4a\xc0\x78\xa0\xb7\xbc\x59\x1b\x7a\x80\xd9\x32\x8b\x69\x97\x45\x71\xe8\x48\xb9\x41\x99\x9f\x0a\x84\x66\xae\x6c\x98\x6a\xb6\x68\xed\xbc\x63\x97\xec\xc6\xf7\xdf\x91\xd1\xd8\x95\xa7\x74\x16\xc8\x89\x97\xfa\xbc\x59\x92\xfa\x71\xdb\xa5\xd6\x6b\x4c\x94\xea\x4b\x3f\xd3\x74\x32\x74\x5b\x6f\x28\x76\xe3\xdb\x93\x8d\xc8\xb7\xa2\x81\xca\x0b\x58\xa2\xec\x46\x6c\x21\x96\x4a\x72\xb6\x66\xfe\x5c\x94\xd0\xa7\x17\x2d\x9d\x4c\xa8\xcb\x61\x21\x58\x10\x06\x97\x81\x58\x71\x5a\xa0\xda\xc4\x34\x67\xdf\xec\x85\xad\x90\x9f\xdd\x1a\x5a\xc1\xf1\xd6\x6b\xe1\x7a\x3c\x15\xfe\x73\x2e\xd2\xe6\x57\xae\xe7\xbf\xd5\x26\x24\x1a\x74\xb6\x8a\xb9\x43\xbb\xc6\x0b\x5d\x2b\x10\xe4\x97\x36\xe9\x0b\x66\x95\x66\x89\x6c\x64\x71\xba\xb8\xfc\xa6\xe9\x90\x7e\xc9\x52\x9d\x81\xe6\x11\x73\xd5\xce\xb5\xe0\x41\x65\x1b\x1b\x4c\x33\xb5\xf9\x8e\x9a\x5c\x65\x96\x3b\x60\x98\x1b\xca\xf2\x3f\x86\xda\xd7\x1b\x97\xdd\xe4\xfe\x64\xcb\x1f\x0c\x1f\x0c\x1f\x0c\x1f\x0c\x1f\x0c\xbf\x33\x86\x5f\xf3\x2e\xd8\xe2\xf8\xa7\xbb\x16\x3f\x16\x82\x89\x22\x5f\xf0\x44\xd8\x23\xe8\x2e\x0e\x23\xbe\x22\xe9\xe8\x2e\xf4\x3d\xe7\xb9\x64\x07\x33\x8b\x2e\x8f\x46\x92\xcb\xee\x7a\xfe\xa7\x39\xfb\xaa\xce\x33\x25\xba\x44\x22\x90\x9b\x25\xbf\x53\x05\x0b\xe3\xe8\x9e\x07\xc6\x2e\x17\x67\xe2\x6a\xc9\x7d\xa3\x2b\x7f\xbf\x50\x7f\xfe\x7e\xc1\x96\x5e\xc0\x7d\xef\xdf\xe6\x22\x59\x08\xc6\x5d\x97\x56\xe7\x95\x22\x62\x6e\xae\x86\xa9\xc7\xcf\x92\xfc\x4b\x4a\x3f\x9d\xb3\x5b\x8f\x0e\xc7\x42\xd3\xc3\x78\xbb\x6f\x74\xfc\x28\x53\x91\x52\x8f\x49\x47\x09\xd3\xfb\x26\x13\xaa\x7a\xf0\xd1\xf4\xfd\x64\x26\xbe\x6d\xc5\x8c\xba\x2e\x37\xec\x7d\xf8\xc4\x56\x3c\x5e\xf0\x55\xc9\xae\x6e\x95\x1a\x11\x2f\xc3\x78\x2d\xe7\xa4\x72\xbc\x3e\x6f\xf4\x68\xf7\x70\x91\xd0\x6b\x24\xd6\x48\x8d\xad\x27\xa5\x49\xc7\x73\x73\x55\x98\x64\x05\x32\x4e\xd8\x39\x96\x97\xb5\xbe\x49\x8d\x34\x30\x2f\x4c\xa6\xb9\x47\x8c\xaa\x7d\x69\x6d\xcc\xe5\x97\xcd\xd9\x8d\xe3\x88\x28\xa5\xbb\xa9\xa8\xd9\xcd\x54\x1f\x66\xec\x52\x2f\xc0\xf2\x02\x4d\xde\xb3\xd9\x9f\xb9\xf3\xb0\x8a\xc3\x2c\x70\xe5\xa7\xc8\x56\x4b\x1f\xda\x18\x38\x25\x42\x6a\xf9\xb8\xfc\x10\xd3\x83\x85\x7d\xd2\x7b\x36\xfb\x25\x8c\x45\xe1\xb1\xcc\xe1\x89\xc3\x5d\xd9\x7b\x3d\x3e\xca\x9c\x4f\xcf\x4b\x94\xea\xb9\xf5\xc0\xa5\x7d\x46\x93\x05\x19\x6d\x2e\xf7\x1e\x2d\x05\x70\x46\x19\x8f\x33\x4a\xbd\xd5\xb5\xcf\x21\xe5\x74\xca\x7c\x9f\xae\x29\xf5\xc6\x69\x8f\x7b\xca\xe9\x2e\xfc\xa1\x3a\xaa\xd4\x1b\xc2\x6d\x67\x95\x97\x5e\xa7\x95\x3c\x1a\x5e\x16\x47\x12\xbd\xaf\x29\x4f\xb3\xba\x28\x6f\xf4\xce\x15\x85\xc7\xec\x88\x0b\x56\x97\x79\x2e\x68\xf5\x13\x22\xdc\xb0\x88\xe4\x46\x77\xb7\xa3\x84\x5b\xcf\x8a\xa0\x2c\x70\xb1\x16\x05\x8c\xaa\x50\xa7\x5c\xee\x1e\xcf\x0f\xf9\xd0\x7d\x7e\x1f\xf0\xf6\x80\xb7\xc7\x64\xbd\x3d\xe0\x1f\x01\xff\x08\xf8\x47\xc0\x3f\x02\xfe\x11\xbd\xfb\x47\x00\xbc\x83\xc5\x82\xc5\x82\xc5\x82\xc5\x82\xc5\x82\xc5\x82\xc5\xee\xbc\x04\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x90\x9e\x75\x1f\x87\x99\x57\x93\x00\x6d\xb8\x9f\xef\xb3\x6b\x9f\x53\x08\xec\x61\x4a\xd3\x5f\xe9\xc1\xae\xc8\x4c\x83\xfc\xad\x63\xc9\x77\xf2\x6a\x63\x5a\x2f\xa2\x30\x69\x19\x43\x29\xe1\x9f\xf1\xa6\xc4\x49\x7d\xff\x94\xcc\xa9\x59\x50\xe7\x9e\xe4\x3a\x7d\x1d\x4c\xad\x44\x81\x22\x12\xa9\xb8\x2a\x06\x1b\x89\x44\x96\x82\xdf\x78\xc0\x57\x22\x56\x36\x2f\xca\x2b\xc5\x93\x24\x74\x3c\x52\xe2\xac\x75\x89\x93\x91\x30\x8c\x99\xd4\xf1\xd3\x67\xab\xd5\xae\xf9\x83\x1c\xc5\xf4\x5e\x24\xc2\x48\x6a\xc5\x78\x1b\x13\x97\x43\x92\x2a\x59\x92\xc2\x98\x5d\xff\xf4\xb3\xfc\x6c\xcc\x1d\x42\x47\x7e\x18\xac\x94\x5c\x46\xd6\x1e\xa9\x96\x73\x2f\x50\x47\x1d\x59\x53\xf2\xcf\x92\x39\x5d\x83\x2d\xb6\x78\x66\x74\x63\xbd\xbb\xba\x5a\x85\x3e\x0f\x56\xf3\x30\x5e\x5d\x45\x0f\xab\xab\x2c\xf0\x9c\xd0\x15\x57\xff\xf1\x29\xb9\x93\x4f\x69\x6c\x9e\xd5\x83\xd3\xe6\xf4\x0c\x4a\x90\x9b\xac\x7c\x55\x57\xb6\xfa\xa9\x86\x6c\xf5\x41\x99\xa2\x46\xd6\xaf\x9f\x0e\xf6\x4b\xf9\xe7\x8e\xac\x63\xd3\x17\x86\x49\x9c\x9a\x82\x30\xfc\x8a\x75\x90\xf2\xa6\xa2\x36\x4c\x87\x99\x6f\x1a\x4b\xa0\x87\xb3\xdd\x0c\x43\x02\x1d\x49\x5a\x11\x08\x94\xc5\x49\x1e\xac\x40\x89\x40\xee\x33\x0a\xe4\x46\xc4\x1a\x22\xd6\x10\xb1\x86\x88\x35\xe8\xc2\xbb\x76\xd1\x20\x63\x3e\xfa\xd1\x0c\x11\xb2\xb2\xfd\x98\xbd\x21\x2b\x93\xd0\x00\x2d\x22\x68\x3d\x50\x85\x5c\x14\xca\xd2\x5a\x43\x4d\x4d\x3e\xa9\xc7\xe8\x94\x82\xc4\x23\x7e\x90\xcf\xd9\x42\xfe\xc4\x9d\x74\xce\xd8\xad\xfc\xd7\xfc\x7e\xcd\x3d\x32\x8c\x26\xcc\xf1\xb3\x24\x15\x71\x7e\x8f\x29\xe7\x54\xe6\x7b\x0f\x82\xcd\xfe\xc6\xd7\x22\x89\xb8\x23\x66\x52\x5c\x35\x22\xd6\x9c\xdd\xf9\x3c\x08\xb4\xcf\x08\x09\x41\xdc\x57\x72\xd7\xf5\xcf\x4d\x2e\x06\x6a\x63\x4f\xe2\x89\x1d\x34\x2b\xdd\x2f\xcc\xf0\xc9\x9e\xb2\x5b\x35\x62\xf2\x4a\x8a\x12\x33\x3a\xda\x2d\x2b\x4b\x44\x4c\xfe\x54\xb9\xa0\xfe\xdc\xf1\x40\xc9\xc6\x4c\xd7\x19\x60\xd8\xf7\x26\x4c\x92\x2d\x5c\x49\xf2\xf8\x9e\xd4\x7d\xd4\x00\xcf\x17\x4b\xae\xd4\x6f\x16\x0a\xae\x9c\xc2\x01\x81\x7c\x85\x1a\xd5\x28\xb8\xa4\xef\xfe\x61\xff\xb9\xb8\x16\xf1\x4a\xd4\xfa\x24\x2d\x6a\xb1\xf2\x9c\xcb\xfa\xdf\x91\x3f\x3f\xeb\x4f\xd2\x09\x5c\x47\xfe\x21\xe7\x52\x8a\x5d\x53\x7e\x6d\xed\xc8\x42\xd1\x9e\xa2\xe1\x03\x32\x5a\x77\xe5\x36\xb1\x47\x49\xb9\x2b\xbb\xa3\x31\x98\xb2\x27\x6e\xca\x3e\x1f\xdf\x88\x8d\xa8\x11\xb3\xb9\x54\x64\x53\xa4\x1c\xbd\x75\xb4\xfc\xeb\x1d\xe7\xd6\x1b\x32\xe4\xa9\x70\x66\xee\xd3\x37\x83\x30\xb8\x54\xdf\xa6\x4f\x90\x2d\x3d\x61\xaf\xff\x9a\x84\xc1\x9d\x0a\x1a\xff\x4d\x9e\x90\xfa\xe7\xaf\xe6\xdc\xcc\x7f\xf9\x66\x48\x4e\x1b\xf5\xd7\xcd\x2f\x61\xec\x10\x6c\x58\x85\x34\xf9\x21\xfb\x7e\xb1\x94\xbf\xfb\x7e\xc1\x6e\x4a\xa3\x39\x67\x9f\x52\x4d\x06\x48\x27\xd1\x1b\xf5\x92\x3b\x34\x01\x14\x76\xec\x7b\x8e\xb6\x75\x92\x0a\x13\x3e\xe9\xb9\x55\x61\xb9\x91\x08\x23\x5f\xcc\x99\x7a\x27\x65\x1b\x30\x6b\x8a\x22\x01\x2a\x27\xc2\xbe\xbe\xc9\xf0\xca\x17\x41\x93\x51\x7f\x80\x26\x33\x42\x4d\x26\xda\x70\x4a\x9f\x82\x2e\x93\xb5\x6e\x5b\x8b\x7c\xee\xb4\x24\x52\xea\x87\x9d\xaf\x50\x09\x5f\x5c\xc8\x9b\x35\xa6\xe9\x7c\xe4\xcd\x01\x89\x75\x90\x3e\xec\x5f\xfa\x3f\xc6\x26\xeb\x8b\x7b\x06\x52\x55\x36\x0d\xfb\xf0\x2b\xd6\xcc\x63\xf5\xd1\x96\xe0\x1e\x4e\x99\xc6\xda\x65\xc1\x5f\x52\xa8\xb1\xfe\x4b\x90\xbc\x0f\xc9\xfb\x46\x97\xbc\x6f\xd2\x3e\xd5\x48\x45\x88\x54\x84\x48\x45\x88\x54\x84\x48\x45\x58\x75\x95\xa0\x54\x23\x8c\x32\xc8\x18\x89\x08\x9f\x73\x8e\xf0\x41\x7a\x50\xa4\x07\x45\x7a\x50\xa4\x07\x45\x7a\x50\xa4\x07\x45\x7a\x50\x04\xbe\x22\xf0\x15\x81\xaf\x08\x7c\xdd\x5c\x91\x28\xd5\x88\x5c\xc4\x47\xaf\x2e\xe4\x22\x46\x2e\x62\xe4\x22\x9e\xbe\xdb\x0c\xe2\xde\xb7\x1f\x33\xe8\x52\x8d\xb5\x3d\x1a\xfa\x8f\x81\xdf\x5f\xac\xb1\xb1\xff\xc7\xa1\x72\x8d\xf0\xf9\x80\xcf\xc7\x84\x7d\x3e\xe0\x25\x01\x2f\x09\x78\x49\xc0\x4b\x02\x5e\x12\xbd\x7b\x49\x00\xbf\x83\xc8\x82\xc8\x82\xc8\x82\xc8\x82\xc8\x82\xc8\x82\xc8\xee\xbc\x04\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x50\xb0\xf1\x05\xc1\xbe\xfb\x2d\xdb\x28\xd9\x38\x8c\x92\x8d\xdd\x11\x1a\x14\x6d\x6c\xa5\x68\x63\x63\xf2\x74\xb8\x6c\x63\xfb\xec\x69\x54\xc9\x62\x0e\x74\xbf\xde\xe1\x84\xc8\xa4\x09\x44\x26\x21\x5d\x0c\xd2\xc5\x54\x34\x66\x1a\x92\xd6\x98\x13\xc6\xb4\xd5\xb3\x01\x96\x6f\x6c\xa7\x6b\xd3\x17\x8d\xfb\x2b\xe0\xd8\xba\x68\xfc\x8a\x75\x92\x10\xe7\xd4\x45\x1c\x3b\xcc\x85\x33\x14\x89\x74\x24\x49\x47\x20\x5e\x16\x27\x79\xb0\xe2\x25\xc2\xbc\xcf\x28\xcc\x1b\xf1\x6c\x88\x67\x43\x3c\x1b\xe2\xd9\xa0\x19\xef\xda\x45\x83\x8c\x08\x41\x21\xc7\x81\xeb\x81\x7d\x16\x72\x1c\x51\x18\x4b\x45\x29\xc7\xc6\xfa\xda\xa1\x62\x8e\x9d\xc7\xae\xa0\x9c\xa3\x5d\x39\xf5\x85\x14\x94\x73\xd4\xff\xe1\xf6\x84\x89\x52\xff\x69\xa2\x05\x1d\x07\x05\xef\x8b\x25\x1d\x8f\x69\x18\x8a\x3a\xa2\xa8\x63\x0f\x45\x1d\x1b\x4b\x45\x07\xcb\x3a\x0e\xc5\x88\x8d\xc2\x8e\x30\x6d\xc3\x73\x02\x85\x1d\xb7\x57\x0c\x0a\x3b\xa2\xb0\x23\x74\x1a\xe8\x34\x7b\x74\x9a\x1e\x4b\x3b\x76\xa8\xd5\x9c\xa6\xb8\xe3\x0b\x0c\x6e\x07\xcb\x3b\x4e\x5d\xb8\x84\xcf\x2e\x24\xcf\x5a\xd3\x74\x3e\x92\xe7\x80\x04\x3c\xc8\x21\xf6\x2f\x43\x38\xc8\x26\xec\xb3\x7b\x06\x12\x56\x5f\x65\x1e\x07\xe3\xd7\x4a\x41\x8e\x57\x6b\x5d\x75\xf2\x60\xb1\xc7\xd6\x59\xa9\x4e\x08\x11\xb8\xde\xa3\xe7\x66\xdc\x2f\xc6\xda\x72\x9b\x02\x66\x5f\x55\xcc\x79\xc1\x5b\xeb\x9d\xf5\xf3\x9a\xd1\x83\x67\x79\x7e\xb0\x52\xc2\x27\x2b\xf3\x31\x2f\x48\x52\xc1\x4b\x86\xe2\x4d\x89\xf0\xe9\x90\xb1\x71\x5f\xeb\x7e\xdd\x88\x2a\x44\xbc\xec\x50\x7d\x55\x28\xdc\xfb\xf6\x51\x04\x88\x89\x75\x4a\xbb\xb3\xbf\xc0\xd8\x96\x8b\xe1\xbe\x84\xac\x21\x85\xe7\x84\x53\x78\x1e\x06\x83\x87\xd2\x77\xee\x35\x2d\xb6\x00\x3d\x91\xb4\x13\x49\x3b\x91\xb4\x13\x49\x3b\xa7\x96\xb4\xf3\xf0\xc9\x5b\x99\xb0\xb3\x63\x17\x93\x93\xa5\xe9\x3c\xdc\xfd\xdd\x29\x3a\x87\x3c\x06\xc7\x24\xe6\x3c\x3c\x06\xbb\x93\x72\x76\x3c\x06\x48\xc5\x89\x54\x9c\x48\xc5\x89\x54\x9c\x48\xc5\xd9\x59\x2a\xce\x1a\xa7\xff\x56\x1a\xce\xbd\x61\xa4\x67\xe4\x61\x5a\xaf\x37\x48\x25\x3a\xb2\x54\xa2\x87\x17\xd1\xbe\x34\xa2\x1d\xaf\xa6\x5e\x93\x87\x1e\x1e\x99\x3d\x89\x43\xbb\x3e\x35\x86\x9a\x2e\xf4\xf0\xa0\x55\x98\xfd\x1b\x9b\xb3\xf4\x4f\xff\xe8\x90\x47\x55\xe4\x5a\xe9\x08\x4b\x15\x59\x54\x60\x2e\x43\x53\x8e\xaa\x73\x26\xf5\x36\x97\x87\x49\xe6\xd7\xb2\x93\x14\xa9\x73\x41\x7f\x56\x52\x10\x0b\xcf\xee\x8c\x68\x81\x66\x81\x66\x8d\x98\x66\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x4d\x8a\x64\x15\xf3\xc1\xd4\x37\x41\x20\x1b\x0c\x58\x1d\x58\x1d\x58\x1d\x58\x1d\x58\xdd\x61\x56\x77\xa0\x32\xc2\x00\xa2\xc7\xf6\x07\xdb\xf5\x1f\x3f\x56\xa3\x4a\x1f\x98\x1b\x98\xdb\x78\x99\x1b\x4a\x2b\x82\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x4d\x90\xbc\x81\x4b\x81\x4b\x81\x4b\x55\xaf\x26\x70\xa9\x9d\xfb\x0c\x5c\xea\x54\x5c\x6a\x20\x51\x64\x27\x60\x53\x3d\xc6\x91\x1d\x91\x29\x1b\x54\x0b\x54\x6b\x5c\x54\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x6b\x62\x44\x0b\xb5\xc5\x41\xed\x40\xed\x40\xed\x40\xed\x40\xed\x8e\xa5\x76\x91\x27\x7e\xa4\x22\x48\xa8\xf1\x9a\xd6\x35\x22\x6f\xbd\xd4\x33\xdc\x98\xee\x95\x48\x99\x17\x2c\xc3\x78\x6d\x97\x37\x67\xca\xa2\xbf\x1b\x95\xad\x44\x7a\x53\x1c\x85\x9b\xbb\x4f\x7f\xd9\xfc\x0a\x8a\x38\x1e\x89\xa6\xec\x20\x8e\x1d\x4c\x15\x57\x46\xe1\x6b\xaf\x8a\xaf\xae\xb1\xa5\x1e\xaf\xc7\xbd\xab\x4a\xca\xa1\x3a\x2f\x8f\xd8\x52\xbf\x5f\xdf\xdc\x7d\xfa\x52\xf5\x45\x6c\xac\xe3\x37\x96\x19\x48\x0a\x3f\x9d\xd2\xfe\xfa\xef\xc7\xeb\x97\x6d\x31\x27\x4b\xd2\x70\x6d\x56\x68\x61\x6c\x8b\x7b\x4f\x69\xe1\xed\xba\x93\xa8\x67\x32\x27\xf4\x7d\xe1\x98\xab\xe7\x03\xb5\xc6\xcc\xd6\x47\xdb\x9a\x3d\x1b\x47\x3d\x67\x63\xef\x7c\xb0\x4f\xad\xf3\xc4\xba\x85\xcd\xc1\x8b\xcf\x87\x17\xd7\x2b\x8b\x7d\x88\x19\x1f\x10\x41\x5f\x52\xbd\xbc\x59\x95\xfd\x4e\x0e\xd8\x8f\xb4\x05\x3f\x47\x69\xf9\xc6\x67\xcd\x4b\xe6\x83\x85\x83\x85\x83\x85\x83\x85\x4f\x8d\x85\xd7\xbb\x55\x2a\x79\xf8\x7e\x93\xd8\x4b\x6e\x92\x2a\x43\xab\xa6\x00\x6f\x29\x1d\x8d\x23\x57\x94\x5a\x07\xa5\xbe\x15\xe5\x88\x85\x60\x91\x1c\xad\x24\x95\x17\xf4\x4d\xc0\xbc\x40\x9d\x2c\x61\xcc\xb2\xc0\x1e\x4e\x2e\x73\xe3\xe7\x2f\x59\xc0\x5c\x2f\x96\x02\xda\xa3\xb0\x2b\x9e\x2c\x8c\x01\xe3\x81\xde\xf2\x66\x6d\xe8\x01\x66\xcb\x2c\xa6\x5d\x16\xc5\xa1\x23\xe5\x06\x65\x84\x2d\x70\xca\xb9\xb2\xe4\xab\xd9\xa2\xb5\xf3\x8e\x5d\xb2\x1b\xdf\x7f\x47\xe8\xc4\x95\xa7\x74\x16\xc8\x89\x5f\x89\xc4\x2e\x49\xfd\x38\xe1\x36\x98\x28\xd5\x97\x7e\xa6\xe9\x64\x0e\x0c\xf5\x86\x62\xb7\x13\xc3\xc9\x46\xe4\x5b\xd1\x4c\xeb\x05\x2c\x51\xd6\x53\xb6\x10\x4b\x25\x39\x5b\xd8\x95\x8b\x12\xfa\xf4\xa2\xa5\x93\x09\x75\x39\x2c\x04\x0b\xc2\xe0\x32\x10\x2b\x4e\x0b\x54\x1b\x5a\xe7\xec\x9b\xbd\xb0\x15\xf8\xb6\x5b\x43\xeb\x32\xde\x7a\x2d\x5c\x8f\xa7\xc2\x7f\xce\x45\xda\xfc\xca\xf5\xfc\xb7\xda\x90\x4a\x83\xce\x56\x31\x77\x68\xd7\x78\xa1\x6b\x05\x82\xfc\xd2\x26\x7d\xc1\xac\xd2\x2c\x91\x8d\x2c\x4e\x17\x97\xdf\x34\x1d\xd2\x2f\x59\xaa\x33\xd0\x3c\x62\xae\xda\xb9\x16\x3c\xa8\x6c\x63\x83\x69\xa6\x36\xdf\x51\x93\xab\x8c\xd3\x07\xcc\xd3\x43\x59\xfe\xc7\xf8\xae\xd4\x1b\x97\xdd\xfe\x2b\x27\x5b\xfe\xf0\x64\x81\x27\x0b\x3c\x59\xe0\xc9\x02\x4f\x96\xce\x3c\x59\x6a\xde\x05\x5b\xde\x2c\xa7\xbb\x16\x3f\x16\x22\xec\x22\x5f\xf0\x44\xd8\x23\xe8\x2e\x0e\x23\xbe\x22\xe9\xe8\x2e\xf4\x3d\xe7\xb9\x64\x07\x33\x8b\x2e\x0f\xd1\x93\xcb\xee\x7a\xfe\xa7\x39\xfb\xaa\xce\x33\x25\xba\x44\x22\x90\x9b\x25\xbf\x53\x05\x0b\xe3\xe8\x9e\x07\xc6\x2e\x17\x67\xe2\x6a\xc9\x7d\xa3\x2b\x7f\xbf\x50\x7f\xfe\x7e\xc1\x96\x5e\xc0\x7d\xef\xdf\xe6\x22\x59\x08\xc6\x5d\x97\x56\xe7\x95\xe2\xc2\x6e\xae\x86\xa9\xc7\xcf\x92\xfc\x4b\x4a\x3f\x9d\xb3\x5b\x8f\x0e\xc7\x42\xd3\xc3\x78\xbb\x6f\x74\xfc\x28\x53\x91\x52\x8f\x49\x47\x09\xd3\xfb\x26\x13\xaa\x7a\xf0\xd1\xf4\xfd\x64\x26\xbe\x6d\xc5\x8c\xba\x2e\x37\xec\x7d\xf8\xc4\x56\x3c\x5e\xf0\x55\xc9\x84\x6e\x95\x1a\x11\x2f\xc3\x78\x2d\xe7\xa4\x72\xbc\x3e\x6f\xf4\x68\xf7\x70\x91\xd0\x6b\x24\xd6\x48\x8d\xad\x27\xa5\x49\xc7\x73\x73\x55\x98\x64\x05\x32\x4e\xd8\x39\x4e\x08\x2c\xd3\x5f\x8d\x34\x30\x2f\x4c\xa6\xb9\x47\x8c\xaa\x7d\x69\x6d\xcc\xe5\x97\xcd\xd9\x8d\xe3\x88\x28\xa5\xbb\xa9\xa8\xd9\xcd\x54\x1f\x66\xec\x52\x2f\xc0\xf2\x02\x4d\xde\xb3\xd9\x9f\xb9\xf3\xb0\x8a\xc3\x2c\x70\xe5\xa7\xc8\x56\x4b\x1f\xda\x18\x38\x25\x42\x6a\xf9\xb8\xfc\x10\xd3\x83\x85\x7d\xd2\x7b\x36\xfb\x25\x8c\x45\xe1\xb1\xcc\xe1\x89\xc3\x5d\xd9\x7b\x3d\x3e\xca\x9c\x4f\xcf\x4b\x94\xea\xb9\xf5\xc0\xa5\x7d\x46\x93\x05\x19\x6d\x2e\xf7\x1e\x2d\x05\x70\xc9\x1a\x8f\x4b\x56\xbd\xd5\xb5\xcf\x2d\xeb\x74\xca\x7c\x9f\x0e\x5a\xf5\xc6\x69\x8f\x93\xd6\xe9\x2e\xfc\xa1\xba\x6b\xd5\x1b\xc2\x6d\x97\xad\x97\x5e\xa7\x95\xe8\x19\x2e\x13\x47\x12\xbd\xaf\x29\x4f\xb3\xba\x28\x6f\x8c\x9e\x12\x85\x6f\xee\x88\x8a\x57\xf7\x77\x2e\x5b\xb5\x12\x20\x5f\xe1\x84\x51\x1d\x18\x5f\xc3\x6d\x61\x33\x24\x7e\x5f\x34\x7c\xeb\xc9\x40\x94\x8d\x2d\xd6\x97\xbd\x51\x06\x4c\x1e\x90\x06\x6e\x1c\xf2\x81\x9b\x4e\x1c\x70\xdd\x80\xeb\xc6\x14\x5d\x37\xe0\xec\x00\x67\x07\x38\x3b\xc0\xd9\x01\xce\x0e\xbd\x3b\x3b\x80\xa2\x03\xac\x02\xac\x02\xac\x02\xac\x02\xac\x02\xac\x02\xac\xee\xbc\x04\xc0\x3a\xc0\x3a\xc0\x3a\xc0\x3a\xc0\x3a\x90\x7b\x78\x1f\x54\xc9\x0d\xd8\x97\xd6\x6a\x99\xf3\x95\x32\x00\x78\xbc\x9e\xef\xb2\x71\x4f\x3c\x50\xf5\x30\x7e\x69\xad\xca\x66\x5f\xc8\xa5\x41\x02\xe2\xb1\x24\xec\x79\xb5\x31\x8b\x17\x51\x98\xb4\xcc\x97\x94\xa8\xcf\x78\x13\x94\xa4\xbe\xdb\x21\x4c\x6a\x16\x7a\xb9\x27\x11\xd4\x10\x4e\x9c\x56\xe2\x36\x11\x3b\x54\x5c\x21\x83\x8d\x1d\x22\x73\xc0\x6f\x3c\xe0\x2b\x11\x2b\xc3\x16\xe5\x43\xe3\x49\x12\x3a\x1e\x69\x6a\xd6\x84\xc4\xc9\x12\x18\xc6\x4c\x2a\xf2\xe9\xb3\x55\x5d\xd7\xfc\x41\x8e\x62\x7a\x2f\x12\x61\xc4\xb1\x62\x84\x8c\x89\xa4\x21\x71\x94\xcc\x45\x61\xcc\xae\x7f\xfa\x59\x7e\x36\xe6\x0e\xf1\x21\x3f\x0c\x56\x4a\xf8\x22\x93\x8e\xd4\xbd\xb9\x17\xa8\x13\x8e\x4c\x26\xf9\x67\xc9\x66\xae\xe9\x15\x5b\x3c\x33\xba\x8a\xde\x5d\x5d\xad\x42\x9f\x07\xab\x79\x18\xaf\xae\xa2\x87\xd5\x55\x16\x78\x4e\xe8\x8a\xab\xff\xf8\x94\xdc\xc9\xa7\x34\xb6\xc1\xea\xc1\x69\x73\x7a\x06\x25\xad\x9d\x85\x10\x55\x57\x80\xfa\xa9\x86\x00\xf5\x41\xd9\x9e\x46\xdc\xc7\x9f\x0e\xf6\x51\x79\xda\x8e\xb8\x93\x93\x94\x84\x49\xb8\x1a\xa1\x24\xfc\x8a\xbd\x3c\x09\x4d\x45\x5d\xa3\x0e\x73\xd1\x34\x92\x36\xab\xf3\xcf\xf4\x2e\x6d\x8e\x24\xd1\x07\x04\xc6\xe2\x24\x0f\x56\x60\x44\x68\xf5\x19\x85\x56\x23\x86\x0c\x31\x64\x88\x21\x43\x0c\x19\x74\xdd\x5d\xbb\x68\x90\x51\x18\xfd\x68\x78\x08\x22\x61\x7b\x74\x37\xad\xac\x8c\x50\x7b\xb3\xb6\xfd\xd6\x43\x47\xc8\x93\xa0\x2c\x8f\x35\x50\xbb\xe4\x53\x4e\x17\x2f\x52\x10\x5f\xc4\x0f\xf2\x02\x5b\xc8\x9f\xb8\x93\xce\x19\xbb\x95\xff\x9a\xdf\xaf\xb9\x47\x56\xcc\x84\x39\x7e\x96\xa4\x22\xce\x2f\x25\xe5\x2e\xca\x7c\xef\x41\xb0\xd9\xdf\xf8\x5a\x24\x11\x77\xc4\x4c\xca\x9e\x46\x5e\x9a\xb3\x3b\x9f\x07\x81\xf6\xe2\x20\x89\x86\xfb\x4a\x88\xba\xfe\xb9\xc9\x29\x4f\x6d\xec\x49\xd6\xb0\x83\x66\x45\xf5\x85\x19\x3e\xd9\x53\x76\xab\x46\x4c\xde\x2f\x51\x62\x46\x47\x3b\x4a\x65\x89\x88\xc9\xc3\x29\x97\xba\x9f\x3b\x1e\x28\xd9\x98\xe9\xe2\xf9\x61\x5f\x82\xb0\x13\xb2\x17\xdf\x35\xf2\xa0\x1e\xf3\x45\xd3\x00\x98\x17\xab\xf8\xd4\x6b\x0d\xea\xf7\x9c\xc2\x1d\x80\xfc\x74\x1a\x25\xeb\xbf\xa4\xef\xfe\x61\xff\x09\xb8\x16\xf1\x4a\xd4\xfa\x24\x15\xa1\x16\x2b\xcf\xb9\xac\xff\x1d\xf9\xf3\xb3\xfe\x24\x9d\xb5\x75\x84\x1a\x72\xec\xa4\xb8\x31\xe5\x53\xf6\x72\x01\x87\x1a\x30\x38\xb3\x72\x57\x4e\x0c\x7b\xd4\x88\xbb\xb2\xd7\x17\x83\xb1\x79\xe2\xc6\xe6\xf3\xf1\x4e\xd8\x08\xce\x30\x9b\x4b\x05\x10\x45\xca\x9f\x5a\x07\xa5\xbf\xde\x71\x44\xbd\x21\x53\x9b\x8a\x1a\xe6\x3e\x7d\x33\x08\x83\x4b\xf5\x6d\xfa\x04\x59\xbb\x13\xf6\xfa\xaf\x49\x18\xdc\xa9\xd8\xec\xdf\xe4\x61\xa8\x7f\xfe\x6a\x8e\xc8\xfc\x97\x6f\x86\xe4\x36\x51\x7f\xdd\xfc\x12\xc6\x0e\xe1\x80\x55\x48\x93\x1f\xb2\xef\x17\x4b\xf9\xbb\xef\x17\xec\xa6\x34\x9a\x73\xf6\x29\xd5\xb6\x7b\x52\x34\xf4\x46\xbd\xe4\x0e\x4d\x00\x45\xf7\xfa\x9e\xa3\xad\x91\xa4\x97\x84\x4f\x7a\x6e\x55\xf4\x6b\x24\xc2\xc8\x17\x73\xa6\xde\x49\x41\xfd\x66\x4d\x91\xc3\x7d\xe5\x44\xd8\xd7\x37\x19\x5e\xf9\x22\xa8\x27\xea\x0f\x50\x4f\xc6\xa7\x9e\x44\x1b\xae\xdf\x23\x54\x50\xb2\xd6\x2d\x61\x91\xcf\x9d\x16\x64\x45\xfd\xa0\xb3\x91\x16\xe1\xf2\x0a\xa1\xf2\xc8\x69\x3a\x1f\xa1\x72\x40\xb2\x1b\x44\x0c\xfb\x97\x61\x1d\x69\x67\xe1\xf2\x3a\x4d\x31\x2a\x1b\xa5\x95\xf7\x15\x6b\xcd\x19\xf4\x2a\x51\x5c\xb9\x49\x6d\xd0\xa3\x18\xa5\x7a\x8f\xb9\x35\x4f\x45\x2b\x35\x35\xc7\x81\x89\xc3\x64\x73\xec\x81\x8c\xca\x83\x08\x64\x04\x64\x34\x21\x64\xd4\xe2\x7d\x73\x0c\x3c\xaa\xb8\x70\x46\x69\x14\x00\x42\x82\xb6\x7f\x7e\xda\x3e\x10\x52\x9b\xeb\x06\x08\x09\xf6\x1d\xa8\x2b\x43\x55\x57\x80\x90\x76\x22\xa4\x56\x6d\x15\xc7\xc0\xa4\xa9\x48\x8f\x40\x4a\x10\x32\x8f\x9c\xa6\xf3\x11\x32\x07\x24\xcb\x41\xe4\xb0\x7f\x19\xd6\x91\x06\xa4\x34\x5a\xb1\x6a\xf2\x48\x89\x12\x47\xee\x06\x4b\x9d\xa2\x24\x9d\x60\x3b\x70\xbd\x47\xcf\xcd\xb8\x5f\xcc\x5d\xca\x6d\x4a\xfd\x5d\x43\x32\x2f\x04\xd3\xbf\xb3\x61\xf8\x33\x7a\xe8\x2c\xaf\xb5\x52\x2a\x9e\x61\xe5\x39\xe6\x05\x49\x2a\x78\xc9\xd2\xbb\x29\xed\x3d\x1d\x61\x29\xfc\x75\x23\x27\x23\x52\x8d\x0e\x35\x72\x98\x32\xe5\xde\x3e\x8a\xe0\xbc\x93\x88\xd2\x2c\x9e\x63\x26\x51\xd4\x37\x9b\x70\x7d\xb3\xc3\xa8\xee\x50\x6d\xb3\xbd\x56\xbf\x16\x30\x24\x2a\x9a\xa1\xa2\x19\x2a\x9a\xa1\xa2\xd9\xd4\x2a\x9a\x1d\x3e\x79\x2b\xab\x99\x75\xec\xf4\x71\xb2\x1a\x66\x87\xbb\xbf\xbb\x7e\xd9\x90\xc7\xe0\x98\xaa\x65\x87\xc7\x60\x77\xc5\xb2\x8e\xc7\x00\x75\xca\x50\xa7\x0c\x75\xca\x50\xa7\x0c\x75\xca\x3a\xab\x53\x56\xe3\xf4\xdf\xaa\x51\xb6\x37\x6d\xe7\x19\xf9\x7c\xd6\xeb\x0d\xea\xac\x8d\xac\xce\xda\xe1\x45\xb4\xaf\xc6\x5a\xc7\xab\xa9\xd7\xca\x6a\x87\x47\x66\x4f\x55\xb5\xae\x4f\x8d\xa1\xd6\x52\x3b\x3c\x68\x15\x86\xfd\xc6\xe6\x2c\xfd\xd3\x3f\xda\x63\x49\x15\x19\xeb\x3b\x42\x4a\x45\x8e\x14\x98\xbb\x2f\x5c\xb2\x07\x2f\xd8\xed\xf7\xd3\x0a\x4f\x7a\x9b\x8b\xbe\x24\xde\x6b\x31\x49\x4a\xcf\xb9\x4c\x3f\x2b\xe9\x82\x85\x67\xb7\x45\xa3\x40\xa2\x40\xa2\xc6\x45\xa2\x40\xa1\x40\xa1\x40\xa1\xf2\x0f\x82\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x8d\x8f\x42\x21\xaf\x0a\x18\x1b\x18\x1b\x18\x1b\x18\x1b\x18\xdb\x4b\x19\xdb\x42\xa4\xfc\xfa\xaa\x11\x42\xeb\x25\xe2\x73\x63\xda\x57\x22\x2d\x0b\xb2\x6a\x86\xf7\x60\xaf\x95\x48\x37\xa0\x17\x0d\xc1\xcd\xdd\xa7\x2f\x55\xdf\x46\xb8\xeb\x91\x10\xaa\x30\x90\x14\xc3\x36\x31\x12\x45\x8b\xa5\xf0\xf5\x57\xc5\x26\x1c\xb1\xe3\x6a\x05\x48\x76\x58\x7f\xbd\x50\x84\x76\x4f\x48\xe4\x9e\x7d\x54\x59\x8b\x9d\xfa\xf6\xc1\x3e\xba\xc3\x2a\x81\xe0\x5d\x13\xe6\x5d\xf5\xd2\x1e\x1c\x62\x5e\x1d\x56\x5f\x6c\x96\x4f\xa5\x93\xf3\xf6\x23\xed\xc3\xcf\x91\x3a\x3c\xea\x9d\xb6\x87\x0b\xd0\x83\xe5\x81\xe5\x81\xe5\x81\xe5\x4d\x89\xe5\xd5\xbb\x55\x2a\x79\xde\xc9\xf2\x1c\x21\x1d\x55\xed\x89\xea\x33\x1d\xd5\xc9\x00\xec\x11\x09\xa0\x2a\x01\xe4\xc9\x46\xe4\x5b\xd1\xd8\xe4\x05\x2c\x51\x36\x20\xb6\x10\x4b\x25\x39\x5b\x63\x7d\x2e\x4a\xe8\xd3\x8b\x96\x4e\x21\x01\x57\x10\x06\x97\x81\x58\x71\x5a\xa0\xda\x5c\x54\x4c\xd4\xa5\xc0\x9d\xdd\x1a\x5a\xa1\xf1\xd6\x6b\xe1\x7a\x3c\x15\xfe\x73\x2e\xd2\xe6\x57\xae\xe7\xbf\xd5\xe6\x20\x1a\x74\xb6\x8a\xb9\x43\xbb\xc6\x0b\x5d\x2b\x10\xe4\x97\x36\xe9\x0b\x66\x95\x66\x89\x6c\x64\x71\xba\xb8\xfc\xa6\xe9\x90\x7e\xc9\xb2\x50\x3f\xdb\x93\x5f\xa0\x76\xaa\xb4\xa5\x15\x6d\x6c\x30\xcd\xd4\xe6\x3b\x6a\x72\x95\x89\xed\x80\x91\x6d\x28\xcb\xff\x18\xf6\x5e\x6f\x5c\x76\xf3\xf7\x93\x2d\x7f\x90\x78\x90\x78\x90\x78\x90\x78\x90\xf8\xce\x48\x7c\xcd\xbb\x60\x8b\xc6\x9f\xee\x5a\xfc\x58\x08\xf7\x89\x7c\xc1\x13\x61\x8f\xa0\xbb\x38\x8c\xf8\x8a\xa4\xa3\xbb\xd0\xf7\x9c\xe7\x92\x1d\xcc\x2c\xba\x3c\x5e\x48\x2e\xbb\xeb\xf9\x9f\xe6\xec\xab\x3a\xcf\x94\xe8\x12\x89\x40\x6e\x96\xfc\x4e\x15\x2c\x8c\xa3\x7b\x1e\x18\xbb\x5c\x9c\x89\xab\x25\xf7\x8d\xae\xfc\xfd\x42\xfd\xf9\xfb\x05\x5b\x7a\x01\xf7\xbd\x7f\x9b\x8b\x64\x21\x18\x77\x5d\x5a\x9d\x57\x8a\x6e\xb9\xb9\x1a\xa6\x1e\x3f\x4b\xf2\x2f\x29\xfd\x74\xce\x6e\x3d\x3a\x1c\x0b\x4d\x0f\xe3\xed\xbe\xd1\xf1\xa3\x4c\x45\x4a\x3d\x26\x1d\x25\x4c\xef\x9b\x4c\xa8\xea\xc1\x47\xd3\xf7\x93\x99\xf8\xb6\x15\x33\xea\xba\xdc\xb0\xf7\xe1\x13\x5b\xf1\x78\xc1\x57\x25\x3b\xba\x55\x6a\x44\xbc\x0c\xe3\xb5\x9c\x93\xca\xf1\xfa\xbc\xd1\xa3\xdd\xc3\x45\x42\xaf\x91\x58\x23\x35\xb6\x9e\x94\x26\x1d\xcf\xcd\x55\x61\x92\x15\x54\xee\x7b\x33\xc7\xf2\xb2\xd6\x37\xa9\x91\x06\xe6\x85\xc9\x34\xf7\x88\x51\xb5\x2f\xad\x8d\xb9\xfc\xb2\x39\xbb\x71\x1c\x11\xa9\xd4\xb6\x45\xcd\x6e\xa6\xfa\x30\x63\x97\x7a\x01\x96\x17\x68\xf2\x9e\xcd\xfe\xcc\x9d\x87\x55\x1c\x66\x81\x2b\x3f\x45\xb6\x5a\xfa\xd0\xc6\xc0\x29\x11\x52\xcb\xc7\xe5\x87\x98\x1e\x2c\xec\x93\xde\xb3\xd9\x2f\x61\x2c\x0a\x8f\x65\x0e\x4f\x1c\xee\xca\xde\xeb\xf1\x51\xe6\x7c\x7a\x5e\xa2\x54\xcf\xad\x07\x2e\xed\x33\x9a\x2c\xc8\x68\x73\xb9\xf7\x68\x29\x80\x63\xc9\x78\x1c\x4b\xea\xad\xae\x7d\xce\x25\xa7\x53\xe6\xfb\x74\x33\xa9\x37\x4e\x7b\x5c\x4d\x4e\x77\xe1\x0f\xd5\xe9\xa4\xde\x10\x6e\x3b\x9e\xa0\x46\xc9\x10\x3c\x28\x74\x99\x87\x89\x3b\x4e\x14\xbe\xbe\x23\x8e\x57\x5d\xe2\xb9\x80\x35\xf8\x90\xde\x8d\x2e\x6e\xc7\xf5\xb6\x9e\x9d\x40\x59\xdb\x62\x7d\xed\x1b\xb5\xe0\x50\x62\x82\x3d\x5e\x1d\xf2\x81\x95\x3e\x1d\xf0\xe4\x80\x27\xc7\x14\x3d\x39\xe0\xfb\x00\xdf\x07\xf8\x3e\xc0\xf7\x01\xbe\x0f\xbd\xfb\x3e\x00\xaa\x83\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\xee\xbc\x04\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x90\x2a\x75\x1f\x63\x39\xae\x60\x29\xd9\xb9\x77\x56\x2d\x3d\x87\x58\xd6\xc3\x48\x66\x14\xf5\xfd\x0e\x62\x98\x06\xe9\x55\xc7\x92\x94\xe4\xd5\xc6\x54\x5e\x44\x61\xd2\x32\x73\x52\x92\x3f\xe3\x4d\xf0\x92\xfa\x6e\xd7\x80\x69\xcc\xd5\xee\xf7\x9f\x42\x28\x79\x7f\x3e\x31\x46\x28\x79\x8f\x92\xf7\x15\x8d\x99\xa4\x74\x35\xa1\xba\xf7\x6d\x75\xf4\xa7\x83\x1d\x55\xbe\xb9\x63\xef\xe9\x74\x85\x65\x12\xbd\xc6\x2a\x2c\xbf\x62\x2d\xe5\xb3\xa9\x28\xd2\xd2\x61\x5a\x9b\x46\x52\xe9\x9e\x54\x36\xbd\x4b\xa5\x23\xc9\x19\x02\x99\xb2\x38\xc9\x83\x95\x29\x11\xa5\x7d\x46\x51\xda\x08\x47\x43\x38\x1a\xc2\xd1\x10\x8e\x06\x75\x78\xd7\x2e\x1a\x64\x40\x47\x3f\xaa\x1f\xe2\x51\x0e\xea\x73\x5a\x6d\x19\xab\x46\x67\x91\x40\xeb\x51\x28\xe4\x8f\x50\x96\xcc\x1a\x68\x61\xf2\x29\x27\x0e\x3d\x29\x48\x33\xe2\x07\x39\x94\x2d\xe4\x4f\xdc\x49\xe7\x8c\xdd\xca\x7f\xcd\xef\xd7\xdc\x23\xbb\x67\xc2\x1c\x3f\x4b\x52\x11\xe7\x77\x94\xf2\x3c\x65\xbe\xf7\x20\xd8\xec\x6f\x7c\x2d\x92\x88\x3b\x62\x26\x45\x51\x23\x3e\xcd\xd9\x9d\xcf\x83\x40\x3b\x84\x90\x80\xc3\x7d\x25\x53\x5d\xff\xdc\xe4\xd0\xa7\x36\xf6\x24\x7a\xd8\x41\xb3\x92\xfb\xc2\x0c\x9f\xec\x29\xbb\x55\x23\x26\xaf\x9b\x28\x31\xa3\xa3\x7d\xae\xb2\x44\xc4\xe4\x2c\x95\x0b\xe1\xcf\x1d\x0f\x94\x6c\xcc\x74\x49\xff\xb0\xef\x44\xd8\x13\x8b\xb3\xf9\xd2\xfb\x47\x9e\xdb\xa3\xbf\x7c\x1a\xb0\x77\x94\x3b\x19\xa6\x67\x01\x79\x00\x35\xaa\x14\x70\x49\xdf\xfd\xc3\xfe\x03\x71\x2d\xe2\x95\xa8\xf5\xc9\x24\x8d\x79\x2a\x56\x9e\x73\x59\xff\x3b\xf2\xe7\x67\xfd\x49\x3a\x7a\xeb\x08\x3a\xe4\x32\x4a\x11\x69\xca\x5b\xed\xe5\x42\x4f\x54\x51\x84\x7b\x20\x96\xe7\xae\xfc\x21\xf6\x68\x1a\x77\x65\xa7\x32\x06\x7b\xf4\xc4\xed\xd1\xe7\xe3\xe3\xb0\x11\xfb\x61\x36\x97\x8a\x4f\x8a\x94\xbb\xb6\x8e\x79\x7f\xbd\xe3\x9c\x7a\x43\xd6\x38\x15\x94\xcc\x7d\xfa\x66\x10\x06\x97\xea\xdb\xf4\x09\x32\x88\x27\xec\xf5\x5f\x93\x30\xb8\x53\xa1\xdf\xbf\xc9\x13\x51\xff\xfc\xd5\x9c\x93\xf9\x2f\xdf\x0c\xc9\xf9\xa2\xfe\xba\xf9\x25\x8c\x1d\x22\x06\xab\x90\x26\x3f\x64\xdf\x2f\x96\xf2\x77\xdf\x2f\xd8\x4d\x69\x34\xe7\xec\x53\xaa\xcd\xfb\xa4\x7c\xe8\x8d\x7a\xc9\x1d\x9a\x00\x0a\x1e\xf6\x3d\x47\x1b\x2c\x49\x57\x09\x9f\xf4\xdc\xaa\xe0\xda\x48\x84\x91\x2f\xe6\x4c\xbd\x93\x72\x06\x98\x35\x45\xfe\xfc\x95\x13\x61\x5f\xdf\x64\x78\xe5\x8b\xa0\xb2\xa8\x3f\x40\x65\x19\xb3\xca\x12\x6d\xf8\x98\x8f\x55\x69\xc9\x5a\xb7\x98\x45\x3e\x77\x5a\x90\x1f\xf5\x83\xce\x4b\x82\x84\x47\x2d\xa4\xcd\x26\xd3\x74\x3e\xd2\xe6\x80\x84\x3a\xc8\x1e\xf6\x2f\x03\x3c\xd7\xce\xc7\xa3\x76\xc2\x42\x56\x36\x5e\xbb\xf0\x2b\xd6\xae\x9b\xe9\x55\xa2\x60\x75\x93\x7a\xa6\x47\xe1\x4e\xf5\x1e\x73\x9d\x9e\x14\x7c\x6a\x1e\x8f\xe3\x14\xa7\xcc\x09\x4f\x19\xd0\x27\xd0\x27\xd0\xa7\x8a\x4f\xf6\x47\x9f\x5a\xbc\x83\x8e\xe6\x50\x15\x97\xd0\x28\x6d\x09\xa0\x51\xb0\x0f\x9c\x9f\x7d\x00\x34\xaa\xcd\x75\x03\x1a\x05\x8b\x10\x54\x18\x36\x78\x15\x06\x34\xaa\x7a\x36\x0d\x8d\x6a\xd5\xa6\x71\x34\x97\x9a\x8a\x44\x09\x3a\x05\xe9\xb3\xc9\x34\x9d\x8f\xf4\x39\x20\x21\x0f\xb2\x88\xfd\xcb\x00\xcf\x35\xd0\xa9\x09\x08\x5d\x67\x44\xa7\x28\x29\xe6\x6e\x46\xd5\x29\x95\xd2\xc9\xc3\x03\xd7\x7b\xf4\xdc\x8c\xfb\xc5\xbc\xac\xdc\x96\x0b\xd8\x35\x38\xf3\x42\xb0\xff\x3b\x9b\x26\x60\x46\x0f\x9d\xe5\x75\x64\x4a\x85\x41\xac\xc8\xc7\xbc\x20\x49\x05\x2f\x19\x88\x37\x05\xc2\xa7\x63\x0d\x8c\xbf\x6e\xa4\x9a\x44\x2e\xd5\xa1\x86\x37\x53\x2a\xe0\xdb\x47\x11\x20\x41\xaa\x5a\xe6\x67\x9b\x25\x15\xa5\xdc\x26\x5c\xca\xed\x30\xf0\x3b\x54\xc6\x6d\xaf\xd9\xb0\x05\x98\x89\xe2\x6d\x28\xde\x86\xe2\x6d\x28\xde\x36\xb5\xe2\x6d\x87\x4f\xde\xca\xc2\x6d\x1d\xbb\x8e\x9c\xac\x5c\xdb\xe1\xee\xef\x2e\xd5\x36\xe4\x31\x38\xa6\x40\xdb\xe1\x31\xd8\x5d\x9c\xad\xe3\x31\x40\x49\x36\x94\x64\x43\x49\x36\x94\x64\x43\x49\xb6\xce\x4a\xb2\xd5\x38\xfd\xb7\xca\xb1\xed\xcd\x32\x7a\x46\x9e\xa3\xf5\x7a\x83\x92\x72\x23\x2b\x29\x77\x78\x11\xed\x2b\x27\xd7\xf1\x6a\xea\xb5\x88\xdc\xe1\x91\xd9\x53\x40\xae\xeb\x53\x63\xa8\x65\xe3\x0e\x0f\x5a\x85\x89\xbf\xb1\x39\x4b\xff\xf4\x8f\x96\xf9\x52\x45\xaa\xfd\x8e\x30\x53\x91\x2d\x05\xe6\x02\x0c\x97\xec\xc1\x0b\x76\xbb\x0b\xb5\xc2\x98\xde\xe6\xf2\x2f\xc9\xf8\x5a\x56\x92\x22\x74\x2e\xd8\xcf\x4a\x0a\x61\xe1\xd9\xad\x12\x2a\xd0\x29\xd0\xa9\x11\xd2\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\xa9\xd1\x93\x29\x64\x6c\x01\x77\x03\x77\x03\x77\x03\x77\x03\x77\x3b\x86\xbb\xc5\x62\xe5\x51\x32\x27\xd9\x4a\x4d\xde\x1a\xb1\xb4\x5e\xe2\x44\x37\x26\x7c\x45\x25\x37\x97\x61\xbc\xb6\x0b\x9c\x33\x65\xbf\xdf\x8d\xc0\x56\x22\xbd\x29\x8f\xc3\xcd\xdd\xa7\xbf\x6c\x7e\x09\xe1\xb1\x47\x22\x28\x3b\x88\xe3\x07\x50\xc5\xb5\x51\xf8\xe2\xab\xe2\xcb\x6b\x6d\xac\xc7\xeb\x71\xef\xad\x92\x7a\xa8\xce\xcd\xa3\x36\xd6\xef\xd7\x37\x77\x9f\xbe\x54\x7d\x15\xdb\xeb\xf8\xed\x65\x06\x92\x82\x46\xa7\xb5\xcb\xfe\xfb\xf1\xfa\xa5\x1b\x4d\xd3\x34\xcf\x29\x4d\xa3\xa9\x67\xda\xaa\x7b\x88\xae\x9c\x5c\x28\x43\x1d\x2e\xd9\xcd\xdd\xa7\xaf\xea\xfd\x7b\xb6\x88\xfa\xe6\xd6\x2e\xf9\x60\x9f\x54\xfd\x94\x86\x95\x3f\xc1\x83\x27\xcc\x83\xeb\xa5\x14\x39\xc4\x84\x3b\xac\xa8\xda\x2c\x61\x51\x27\x87\xe7\x47\xda\x76\x9f\x23\x95\xa0\xa0\xde\xd1\xb9\x7f\x6b\x81\x75\x83\x75\x83\x75\x83\x75\x4f\x8d\x75\xd7\xbb\x55\x2a\x79\xf7\xc9\x72\x88\x21\xd5\x5b\xed\x89\xea\x33\xd5\xdb\xc9\x1c\x14\x8e\x48\xae\x56\x09\xe8\x4f\x36\x22\xdf\x8a\xc6\x58\x2f\x60\x89\xb2\x91\xb2\x85\x58\x2a\xc9\xd9\xc2\xac\x5c\x94\xd0\xa7\x17\x2d\x9d\x42\x72\xbb\x20\x0c\x2e\x03\xb1\xe2\xb4\x40\xb5\x39\xb5\x98\x04\x4f\x81\x6d\xbb\x35\xb4\xc6\xe2\xad\xd7\xc2\xf5\x78\x2a\xfc\xe7\x5c\xa4\xcd\xaf\x5c\xcf\x7f\xab\xcd\xa5\x34\xe8\x6c\x15\x73\x87\x76\x8d\x17\xba\x56\x20\xc8\x2f\x6d\xd2\x17\xcc\x2a\xcd\x12\xd9\xc8\xe2\x74\x71\xf9\x4d\xd3\x21\xfd\x92\x65\xa1\x26\xbe\x27\xbf\x40\xed\x54\xb9\x82\x2b\xda\xd8\x60\x9a\xa9\xcd\x77\xd4\xe4\x2a\x13\xf4\x01\x23\xf4\x50\x96\xff\x31\xbe\x29\xf5\xc6\x65\xb7\x7f\xca\xc9\x96\x3f\x3c\x55\xe0\xa9\x02\x4f\x15\x78\xaa\xc0\x53\xa5\x33\x4f\x95\x9a\x77\xc1\x96\xb7\xca\xe9\xae\xc5\x8f\x85\xe8\xb8\xc8\x17\x3c\x11\xf6\x08\xba\x8b\xc3\x88\xaf\x48\x3a\xba\x0b\x7d\xcf\x79\x2e\xd9\xc1\xcc\xa2\xcb\xc3\xeb\xe4\xb2\xbb\x9e\xff\x69\xce\xbe\xaa\xf3\x4c\x89\x2e\x91\x08\xe4\x66\xc9\xef\x54\xc1\xc2\x38\xba\xe7\x81\xb1\xcb\xc5\x99\xb8\x5a\x72\xdf\xe8\xca\xdf\x2f\xd4\x9f\xbf\x5f\xb0\xa5\x17\x70\xdf\xfb\xb7\xb9\x48\x16\x82\x71\xd7\xa5\xd5\x79\xa5\xe8\xaf\x9b\xab\x61\xea\xf1\xb3\x24\xff\x92\xd2\x4f\xe7\xec\xd6\xa3\xc3\xb1\xd0\xf4\x30\xde\xee\x1b\x1d\x3f\xca\x54\xa4\xd4\x63\xd2\x51\xc2\xf4\xbe\xc9\x84\xaa\x1e\x7c\x34\x7d\x3f\x99\x89\x6f\x5b\x31\xa3\xae\xcb\x0d\x7b\x1f\x3e\xb1\x15\x8f\x17\x7c\x55\x32\x94\x5b\xa5\x46\xc4\xcb\x30\x5e\xcb\x39\xa9\x1c\xaf\xcf\x1b\x3d\xda\x3d\x5c\x24\xf4\x1a\x89\x35\x52\x63\xeb\x49\x69\xd2\xf1\xdc\x5c\x15\x26\x59\x41\x15\x9c\x30\x73\x9c\x10\x3c\xa6\xbf\x1a\x69\x60\x5e\x98\x4c\x73\x8f\x18\x55\xfb\xd2\xda\x98\xcb\x2f\x9b\xb3\x1b\xc7\x11\x91\x4a\x1b\x5d\xd4\xec\x66\xaa\x0f\x33\x76\xa9\x17\x60\x79\x81\x26\xef\xd9\xec\xcf\xdc\x79\x58\xc5\x61\x16\xb8\xf2\x53\x64\xab\xa5\x0f\x6d\x0c\x9c\x12\x21\xb5\x7c\x5c\x7e\x88\xe9\xc1\xc2\x3e\xe9\x3d\x9b\xfd\x12\xc6\xa2\xf0\x58\xe6\xf0\xc4\xe1\xae\xec\xbd\x1e\x1f\x65\xce\xa7\xe7\x25\x4a\xf5\xdc\x7a\xe0\xd2\x3e\xa3\xc9\x82\x8c\x36\x97\x7b\x8f\x96\x02\x38\x5e\x8d\xc7\xf1\xaa\xde\xea\xda\xe7\x7c\x75\x3a\x65\xbe\x4f\x37\xac\x7a\xe3\xb4\xc7\x15\xeb\x74\x17\xfe\x50\x9d\xb2\xea\x0d\xe1\xb6\x63\x16\x0a\x03\x0d\xc1\x1d\x42\xd7\x51\x99\xb2\x17\x44\xe1\xbb\x3b\x22\xdd\xd5\x0d\x9e\x4b\x57\x2d\x05\xbd\x57\x38\x58\x54\x87\xbd\x57\x3a\x2b\x6c\x06\xba\xef\x8b\x71\x6f\x3d\x71\x87\xb2\xac\xc5\xfa\x8a\x37\x2a\x80\xc9\xd9\x51\xcb\x45\x43\x3e\xa2\xca\x8d\x09\x6e\x19\x70\xcb\x98\x82\x5b\x06\x1c\x19\xe0\xc8\x00\x47\x06\x38\x32\xc0\x91\xa1\x77\x47\x06\x10\x72\x40\x53\x40\x53\x40\x53\x40\x53\x40\x53\x40\x53\x40\xd3\x9d\x97\x00\x38\x06\x38\x06\x38\x06\x38\x06\x38\x06\x32\x04\xef\x04\x26\xb2\xed\x97\x7c\xb5\x92\x3b\x31\x0d\xcb\xc5\x7c\x4b\x26\x7d\x15\x4d\xaa\xed\xd9\x93\x0f\x26\x3d\x8c\x51\x5a\xac\x64\x79\x3a\x74\xd2\x20\x3d\xf0\x58\x92\xea\xbc\xda\x98\xb9\x8b\x28\x4c\x5a\xe6\x44\x4a\x98\x67\x3c\xa8\xc7\x84\xd4\xc7\x5b\xa6\x42\xcd\xe2\x23\xf7\xe4\x64\x3a\xf5\xd1\xd1\x4a\x20\x25\x82\x79\x8a\xab\x61\xb0\xc1\x3c\xa4\xc3\xff\xc6\x03\xbe\x12\xb1\xb2\x46\x51\x02\x32\x9e\x24\xa1\xe3\x91\x7a\x65\xed\x3e\x9c\xcc\x77\x61\xcc\xa4\xf6\x9d\x3e\x5b\x7d\x73\xcd\x1f\xe4\x28\xa6\xf7\x22\x11\x46\x86\x2a\x86\xac\x98\xd0\x16\x92\x21\xc9\xc6\x13\xc6\xec\xfa\xa7\x9f\xe5\x67\x63\xee\x10\xd4\xf1\xc3\x60\xa5\x24\x26\xb2\xc3\x48\x85\x99\x7b\x81\x3a\xb4\xc8\xce\x91\x7f\x96\x0c\xdd\x1a\x39\xb1\xc5\x33\xa3\x3b\xe5\xdd\xd5\xd5\x2a\xf4\x79\xb0\x9a\x87\xf1\xea\x2a\x7a\x58\x5d\x65\x81\xe7\x84\xae\xb8\xfa\x8f\x4f\xc9\x9d\x7c\x4a\x63\xc3\xa9\x1e\x9c\x36\xa7\x67\x50\x22\xd6\xe4\x24\x9f\xba\x52\xcf\x4f\x35\xa4\x9e\x0f\xca\x38\x34\x92\xfe\xfc\x74\xb0\x3f\xca\xa5\x75\x24\x1d\x9a\xa8\x58\x4a\x52\xcf\x48\xc4\xd2\x57\xac\x59\xa6\x96\x8a\x62\x3e\x1d\x26\x6c\xa9\x2b\xee\xed\xc8\xd2\xd2\x87\xb8\x37\x92\x74\x18\x90\xe2\x8a\x93\x3c\x58\x29\x0e\x01\xc8\x67\x14\x80\x8c\x48\x2b\x44\x5a\x21\xd2\x0a\x91\x56\x50\x40\x77\xed\xa2\x41\xc6\x2a\xf4\xa0\x9e\x21\xd4\xe2\xa0\x32\xa6\xb5\x92\x91\xa8\x63\xd6\x72\xde\x7a\x80\x05\x91\xf8\xb2\x14\x56\x4b\xa5\x92\xdf\xeb\x36\xaa\xa2\x20\x9a\x88\x1f\xe4\x2b\xb5\x90\x3f\x71\x27\x9d\x33\x76\x2b\xff\x35\xbf\x5f\x73\x8f\xcc\x86\x09\x73\xfc\x2c\x49\x45\x9c\x5f\x38\xca\xa9\x92\xf9\xde\x83\x60\xb3\xbf\xf1\xb5\x48\x22\xee\x88\x99\x94\x2b\x8d\x2c\x34\x67\x77\x3e\x0f\x02\xed\xeb\x40\xd2\x0a\xf7\x95\x80\x74\xfd\x73\x93\x13\x9c\xda\xd8\x93\x1c\x61\x07\xcd\x8a\xe1\x0b\x33\x7c\xb2\xa7\xec\x56\x8d\x98\xbc\x3b\xa2\xc4\x8c\x8e\x76\x27\xca\x12\x11\x93\x1f\x50\x2e\x51\x3f\x77\x3c\x50\xb2\x31\xd3\x85\xd8\x03\xbe\xe0\x60\xc0\x6b\x70\x67\xc8\xc3\x77\x6c\x17\x46\x03\xac\x5c\xac\x44\xb3\xeb\xfd\xa8\x3d\x73\x0a\x4c\x4e\x1e\x2a\x8d\x12\xcc\x5f\xd2\x77\xff\xb0\xff\x54\x5b\x8b\x78\x25\x6a\x7d\x92\xd6\xaa\x58\x79\xce\x65\xfd\xef\xc8\x9f\x9f\xf5\x27\xe9\xfc\xac\x23\x8e\x90\x4b\x23\x45\x4c\x29\x6f\xaa\x26\xa2\x49\xa4\x4b\xa2\xf7\x6f\xec\xed\x84\xed\xef\x17\xee\xef\xca\x5e\x4d\x0c\x26\xe0\x89\x9b\x80\xcf\x07\xe4\x6f\x04\x1f\x98\xcd\xa5\x02\x64\x22\xe5\x2f\xac\x83\xae\x5f\xef\x38\x88\xde\x90\x01\x4c\x45\xc5\x72\x9f\xbe\x19\x84\xc1\xa5\xfa\x36\x7d\x82\x6c\xd0\x09\x7b\xfd\xd7\x24\x0c\xee\x54\xec\xf1\x6f\xf2\xc8\xd3\x3f\x7f\x35\x07\x61\xfe\xcb\x37\x43\xf2\x30\xa8\xbf\x6e\x7e\x09\x63\x87\x8c\xf4\xab\x90\x26\x3f\x64\xdf\x2f\x96\xf2\x77\xdf\x2f\xd8\x4d\x69\x34\xe7\xec\x53\xaa\x2d\xea\xa4\x22\xe8\x8d\x7a\xc9\x1d\x9a\x00\x8a\x5e\xf5\x3d\x47\xdb\x08\x49\xa3\x08\x9f\xf4\xdc\xaa\xe8\xce\x48\x84\x91\x2f\xe6\x4c\xbd\x93\x82\xd6\xcd\x9a\x22\x87\xf2\xca\x89\xb0\xaf\x6f\x32\xbc\xf2\x45\x50\x2c\xd4\x1f\xa0\x58\x6c\x3c\x75\x70\x8a\x45\xb4\xe1\xc8\x3c\x12\xd5\x22\x6b\xdd\x16\x15\xf9\xdc\x69\x24\xf3\xe9\xaf\x4e\x57\xea\x83\x47\x27\x04\x41\x08\x82\xf0\xe8\x84\x58\xa0\x7e\xde\x40\x6c\xd3\xf2\xe8\x9c\xaa\x98\x93\x8d\xc6\x7e\xfa\x8a\xbd\xc8\xff\xf1\x2a\x51\x8c\xb5\x49\xad\xc8\xa3\xc8\x9d\x7a\x8f\xb9\xf7\xda\x65\x78\x9a\x13\xe3\x60\xc3\x41\x00\x90\x02\x90\x02\x90\x32\x6a\x90\xf2\xa2\x9b\xe2\x10\x52\xa9\xb8\x2a\xc6\xa7\x62\x03\xac\x40\x9f\x3e\x4b\x7d\x1a\x60\xa5\xcd\x75\x03\xb0\x02\x0b\x0a\x14\x8d\x61\x28\x1a\x00\x2b\x25\xb0\xf2\x42\x6b\xc1\x21\xc4\x32\x09\x29\x10\xa0\x05\x82\x21\x04\x43\x80\x16\x88\x09\xea\x67\x80\x96\x11\x8a\x3d\x13\x05\x2d\x94\xb2\xaf\x88\x5b\x3a\x05\x2c\x3a\x99\x71\xe0\x7a\x8f\x9e\x9b\x71\xbf\x98\x27\x92\xdb\xf4\xe5\x79\xc7\xe7\x85\x00\xeb\x77\x36\x34\x7b\x46\x8f\x99\xe5\x95\x2c\x4a\xa5\x09\xac\x8c\xc5\xbc\x20\x49\x05\x2f\xd9\x4d\x37\x25\xb0\xa7\x03\x56\xb8\x5f\x37\xf2\xde\x21\x79\xe3\x50\x23\x48\x29\xf7\xe8\xed\xa3\x08\xce\x3d\x55\x23\xcd\xe3\xb9\xe4\x6b\x44\x9d\xa8\x09\xd7\x89\x3a\x8c\xb8\x0e\xd5\x88\xda\x6b\x47\x6b\x01\xdf\xa1\x32\x14\x2a\x43\xa1\x32\x14\x2a\x43\x4d\xad\x32\xd4\xe1\x93\xb7\xb2\x2a\x54\xc7\xce\x12\x27\xab\x05\x75\xb8\xfb\xbb\xeb\x40\x0d\x79\x0c\x8e\xa9\xfe\x74\x78\x0c\x76\x57\x7e\xea\x78\x0c\x50\xef\x09\xf5\x9e\x50\xef\x09\xf5\x9e\x50\xef\xa9\xb3\x7a\x4f\x35\x4e\xff\xad\x5a\x4f\x7b\x93\x36\x9e\x91\xaf\x64\xbd\xde\xa0\x5e\xd5\xc8\xea\x55\x1d\x5e\x44\xfb\x6a\x55\x75\xbc\x9a\x7a\xad\x50\x75\x78\x64\xf6\x54\xa7\xea\xfa\xd4\x18\x6a\x4d\xaa\xc3\x83\x56\x61\xce\x6f\x6c\xce\xd2\x3f\xfd\xe3\x65\x6c\xa8\x22\x15\x79\x47\x88\xa8\xc8\x85\x02\x73\xdf\x85\x4b\xf6\xe0\x05\x6e\xdb\x7c\xe8\x6d\x2e\xe0\x92\x10\xaf\x85\x21\x29\x23\xe7\x92\xfb\xac\xa4\xf1\x15\x9e\xfd\x12\xba\x04\xb2\x04\xb2\x34\x36\xb2\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x34\x36\xaa\x84\x8c\x22\xf5\x67\x07\x94\x0c\x94\x0c\x94\x0c\x94\x0c\x94\x2c\xa7\x64\x0b\x91\xf2\xeb\xab\x46\x48\xac\x97\x98\xca\x8d\x89\x5f\x89\xb4\x2c\xbc\xaa\x39\xde\x03\xb5\x56\x22\xdd\x42\x5a\x34\x08\x37\x77\x9f\xbe\x54\x7d\x1f\x21\xa5\x47\x02\xa7\xc2\x40\x52\xfc\xd9\xe4\xa8\x13\x2d\x97\xc2\x03\x5e\x15\x1b\x71\xd4\xbe\xdb\x11\xb8\xd8\x61\x81\xec\x42\xf9\xd0\x52\xa8\xe2\x9e\x1d\xb3\xa3\x56\x36\xf5\xe0\x83\x7d\x5c\xab\x95\xde\x40\xb0\x26\x4c\xb0\xea\xa5\x0d\x38\x44\xb1\x3a\xac\xa0\x37\xe9\x3a\xee\xa0\x73\xa0\x73\xa0\x73\xa0\x73\x53\xa3\x73\xf5\x6e\x95\x4a\x42\x77\xb2\x3c\x41\x48\xe7\x54\x7b\xa2\xfa\x4c\xe7\x74\x32\xa4\x7a\x44\x02\xa5\x4a\xa4\x78\xb2\x11\xf9\x56\x34\x26\x79\x01\x4b\x94\x8d\x87\x2d\xc4\x52\x49\xce\xd6\xfc\x9e\x8b\x12\xfa\xf4\xa2\xa5\x53\x48\x60\x15\x84\xc1\x65\x20\x56\x9c\x16\xa8\x36\x07\x15\x13\x5d\x29\x14\x67\xb7\x86\x56\x5b\xbc\xf5\x5a\xb8\x1e\x4f\x85\xff\x9c\x8b\xb4\xf9\x95\xeb\xf9\x6f\xb5\xb9\x87\x06\x9d\xad\x62\xee\xd0\xae\xf1\x42\xd7\x0a\x04\xf9\xa5\x4d\xfa\x82\x59\xa5\x59\x22\x1b\x59\x9c\x2e\x2e\xbf\x69\x3a\xa4\x5f\xb2\x2c\xd4\x40\xf6\xe4\x17\xa8\x9d\x2a\x55\x67\x45\x1b\x1b\x4c\x33\xb5\xf9\x8e\x9a\x5c\x65\x42\x3b\x60\x44\x1b\xca\xf2\x3f\x86\xa6\xd7\x1b\x97\xdd\x44\xfd\x64\xcb\x1f\x6c\x1d\x6c\x1d\x6c\x1d\x6c\x1d\x6c\xbd\x33\xb6\x5e\xf3\x2e\xd8\xe2\xeb\xa7\xbb\x16\x3f\x16\x42\x75\x22\x5f\xf0\x44\xd8\x23\xe8\x2e\x0e\x23\xbe\x22\xe9\xe8\x2e\xf4\x3d\xe7\xb9\x64\x07\x33\x8b\x2e\x8f\xf5\x91\xcb\xee\x7a\xfe\xa7\x39\xfb\xaa\xce\x33\x25\xba\x44\x22\x90\x9b\x25\xbf\x53\x05\x0b\xe3\xe8\x9e\x07\xc6\x2e\x17\x67\xe2\x6a\xc9\x7d\xa3\x2b\x7f\xbf\x50\x7f\xfe\x7e\xc1\x96\x5e\xc0\x7d\xef\xdf\xe6\x22\x59\x08\xc6\x5d\x97\x56\xe7\x95\xa2\x57\x6e\xae\x86\xa9\xc7\xcf\x92\xfc\x4b\x4a\x3f\x9d\xb3\x5b\x8f\x0e\xc7\x42\xd3\xc3\x78\xbb\x6f\x74\xfc\x28\x53\x91\x52\x8f\x49\x47\x09\xd3\xfb\x26\x13\xaa\x7a\xf0\xd1\xf4\xfd\x64\x26\xbe\x6d\xc5\x8c\xba\x2e\x37\xec\x7d\xf8\xc4\x56\x3c\x5e\xf0\x55\xc9\x5a\x6e\x95\x1a\x11\x2f\xc3\x78\x2d\xe7\xa4\x72\xbc\x3e\x6f\xf4\x68\xf7\x70\x91\xd0\x6b\x24\xd6\x48\x8d\xad\x27\xa5\x49\xc7\x73\x73\x55\x98\x64\x05\x95\xef\xdd\xcc\xb1\xbc\xac\xf5\x4d\x6a\xa4\x81\x79\x61\x32\xcd\x3d\x62\x54\xed\x4b\x6b\x63\x2e\xbf\x6c\xce\x6e\x1c\x47\x44\x2a\x35\x6c\x51\xb3\x9b\xa9\x3e\xcc\xd8\xa5\x5e\x80\xe5\x05\x9a\xbc\x67\xb3\x3f\x73\xe7\x61\x15\x87\x59\xe0\xca\x4f\x91\xad\x96\x3e\xb4\x31\x70\x4a\x84\xd4\xf2\x71\xf9\x21\xa6\x07\x0b\xfb\xa4\xf7\x6c\xf6\x4b\x18\x8b\xc2\x63\x99\xc3\x13\x87\xbb\xb2\xf7\x7a\x7c\x94\x39\x9f\x9e\x97\x28\xd5\x73\xeb\x81\x4b\xfb\x8c\x26\x0b\x32\xda\x5c\xee\x3d\x5a\x0a\xe0\x38\x32\x1e\xc7\x91\x7a\xab\x6b\x9f\xf3\xc8\xe9\x94\xf9\x3e\xdd\x48\xea\x8d\xd3\x1e\x57\x92\xd3\x5d\xf8\x43\x75\x2a\xa9\x37\x84\xdb\x8e\x25\xa8\xcb\x31\x04\xef\x08\x5d\x12\x61\xf2\x4e\x11\x85\x07\xec\x88\xc7\x55\xd7\x78\x2e\x62\x0d\x32\x34\x77\xa3\x5b\xdb\xf1\xb9\xad\x67\x10\x50\x36\xb6\x58\x5f\xf6\x46\x19\xd8\x4e\x1e\xb0\xc7\x63\x43\x3e\x62\xa7\x93\x13\xbc\x34\xe0\xa5\x31\x05\x2f\x0d\xf8\x35\xc0\xaf\x01\x7e\x0d\xf0\x6b\x80\x5f\x43\xef\x7e\x0d\x00\xe6\x60\xa8\x60\xa8\x60\xa8\x60\xa8\x60\xa8\x60\xa8\x60\xa8\x3b\x2f\x01\x60\x0d\x60\x0d\x60\x0d\x60\x0d\x60\x0d\xa4\x33\xdd\xc9\x4f\x8e\x28\xf0\x49\x36\xed\xf9\x46\xbd\x43\xa0\x95\x8b\xc1\xd6\xcf\x3b\x88\x53\x1a\xa4\x3b\x1d\x4b\xca\x90\x57\x1b\xd3\x77\x11\x85\x49\xcb\xec\x48\xc9\xf6\x8c\x07\xf5\x38\x91\xfa\x78\x17\xa4\x68\x9c\xe5\xdb\x37\x8f\x13\xd4\x70\x3f\x9f\xa0\x1f\xd4\x70\x47\x0d\xf7\x8a\xc6\x8c\x5e\x24\x9a\x44\x21\xf7\xe6\x9d\xfa\xe9\x60\xa7\x94\x13\xec\x98\x7a\x35\x65\xc9\x95\x64\xa2\x31\x49\xae\xaf\xd8\x0b\x92\xbe\x54\x54\x24\xe9\x30\xf7\x4b\x5d\xb1\x70\x5f\xc2\x97\x3e\xc4\xc2\x91\x64\xd6\x80\xa0\x57\x9c\xe4\xc1\x0a\x7a\x88\x65\x3e\xa3\x58\x66\x04\x6d\x21\x68\x0b\x41\x5b\x08\xda\x82\x8e\xba\x6b\x17\x0d\x32\xec\xa1\x07\xbd\x0d\x51\x1b\xc7\x44\x6d\x8c\x4a\x45\xb3\x06\xf7\xd6\x63\x35\x88\xe7\x97\xe5\xb1\x5a\x1a\x96\xfc\xde\x09\x02\x34\x0a\x92\x8a\xf8\x41\x6e\x57\x0b\xf9\x13\x77\xd2\x39\x63\xb7\xf2\x5f\xf3\xfb\x35\xf7\xc8\xd0\x98\x30\xc7\xcf\x92\x54\xc4\xf9\xfd\xa3\xfc\x33\x99\xef\x3d\x08\x36\xfb\x1b\x5f\x8b\x24\xe2\x8e\x98\x49\x31\xd3\x88\x46\x73\x76\xe7\xf3\x20\xd0\x6e\x13\x24\xbc\x70\x5f\xc9\x4b\xd7\x3f\x37\x39\xd0\xa9\x8d\x3d\x89\x15\x76\xd0\xac\x54\xbe\x30\xc3\x27\x7b\xca\x6e\xd5\x88\xc9\xab\x24\x4a\xcc\xe8\x68\xcf\xa4\x2c\x11\x31\xb9\x14\xe5\x02\xf6\x73\xc7\x03\x25\x1b\x33\x5d\x1e\x3e\xe0\xfb\x0e\x86\xbe\x17\xdd\x23\xf2\x2c\x1e\xe5\x25\xd2\x80\x50\xa3\x48\xc7\x46\x37\x7b\x23\xee\xe4\xfb\xd2\x28\xbb\xfd\x25\x7d\xf7\x0f\xfb\x0f\xb9\xb5\x88\x57\xa2\xd6\x27\x69\xc1\x8a\x95\xe7\x5c\xd6\xff\x8e\xfc\xf9\x59\x7f\x92\x8e\xd3\x3a\x22\x0a\x39\x4b\x52\x2c\x96\xf2\xd3\x6a\x22\xae\x44\x95\x85\xa0\xa7\xe5\x26\xb0\x5f\xfe\xbf\x2b\x3b\x4d\x31\x58\x89\x27\x6e\x25\x3e\x1f\x77\x80\x8d\xd8\x06\xb3\xb9\x54\xfc\x4d\xa4\xdc\x91\x75\x4c\xf7\xeb\x1d\xa7\xd1\x1b\xb2\x91\xa9\xa0\x5b\xee\xd3\x37\x83\x30\xb8\x54\xdf\xa6\x4f\x90\x99\x3a\x61\xaf\xff\x9a\x84\xc1\x9d\x0a\x6d\xfe\x4d\x9e\x7b\xfa\xe7\xaf\xe6\x34\xcc\x7f\xf9\x66\x48\x7e\x0a\xf5\xd7\xcd\x2f\x61\xec\x90\x1d\x7f\x15\xd2\xe4\x87\xec\xfb\xc5\x52\xfe\xee\xfb\x05\xbb\x29\x8d\xe6\x9c\x7d\x4a\xb5\xd1\x9d\xd4\x06\xbd\x51\x2f\xb9\x43\x13\x40\xc1\xb1\xbe\xe7\x68\x33\x22\x69\x19\xe1\x93\x9e\x5b\x15\x3c\x1a\x89\x30\xf2\xc5\x9c\xa9\x77\x52\x4c\xbc\x59\x53\xe4\xaf\x5e\x39\x11\xf6\xf5\x4d\x86\x57\xbe\x08\xca\x86\xfa\x03\x94\x8d\xaa\xa7\x0e\x53\xd9\x88\x06\x5b\xfa\xff\xb0\xba\x91\xb5\x6e\xb3\x8a\x7c\xee\x34\x92\x03\xf5\x57\x27\x2e\x09\xc2\x61\x14\x12\x62\x8d\x69\x3a\x1f\x09\x71\x40\x82\x18\xe4\x05\xfb\x97\xbe\xe5\x85\x49\x3a\x8c\x4e\x5a\x08\xca\xc6\x65\x71\x7d\xc5\x5e\xee\x59\x79\x95\x28\x70\xdb\xa4\xbe\xe5\x51\x10\x50\xbd\xc7\x5c\x88\x1d\xe0\x40\x4d\xa0\x71\xec\xe1\x84\x00\x93\xd9\x18\x44\x30\x19\x30\x99\x51\x33\x99\x17\xdd\x1e\xb5\xe8\x4c\xc5\xf5\x31\x3e\xcd\x1c\x8c\x06\x1a\xf8\x59\x6a\xe0\x60\x34\x6d\xae\x1b\x30\x1a\xd8\x5c\xa0\x7c\x14\xfa\x3a\x08\xe5\x03\x8c\x66\x9b\xd1\xbc\xd0\xaa\x50\x8b\xd6\x4c\x42\x32\x04\xb3\x81\xc4\x58\x63\x9a\xce\x47\x62\x1c\x90\x60\x06\xf9\xc1\xfe\xa5\x6f\xf9\x01\xcc\x66\x6c\x42\xd1\xe4\x99\x0d\xa5\x23\x2c\x92\x9b\x4e\x59\x8d\x4e\xd4\x1c\xb8\xde\xa3\xe7\x66\xdc\x2f\xe6\xc0\xe4\x36\x35\x7b\x3e\x04\xf3\x42\x00\xf8\x3b\x1b\x3a\x3e\xa3\xc7\xcc\xf2\x2a\x1d\xa5\xb2\x0b\x56\x0c\x63\x5e\x90\xa4\x82\x97\xcc\xad\x9b\x42\xda\x53\x1d\xe3\xdd\xaf\x1b\xe9\xfc\x90\x9d\x72\xa8\x61\xae\x94\x5c\xf5\xf6\x51\x04\x48\x43\x69\x16\xf7\x59\xe5\xa2\x44\x49\xac\x09\x97\xc4\x3a\x0c\xca\x0e\x95\xc3\xda\x6b\x88\x6b\x01\x02\xa2\x08\x16\x8a\x60\xa1\x08\x16\x8a\x60\x4d\xad\x08\xd6\xe1\x93\xb7\xb2\x00\x56\xc7\x2e\x17\x27\x2b\x7b\x75\xb8\xfb\xbb\x4b\x5e\x0d\x79\x0c\x8e\x29\x74\x75\x78\x0c\x76\x17\xb9\xea\x78\x0c\x50\xda\x0a\xa5\xad\x50\xda\x0a\xa5\xad\x50\xda\xaa\xb3\xd2\x56\x35\x4e\xff\xad\xb2\x56\x7b\x73\x4c\x9e\x91\xc7\x65\xbd\xde\xa0\x34\xd7\xc8\x4a\x73\x1d\x5e\x44\xfb\xca\x72\x75\xbc\x9a\x7a\x2d\xc6\x75\x78\x64\xf6\x14\xe2\xea\xfa\xd4\x18\x6a\xf9\xad\xc3\x83\x56\x61\xd8\x6f\x6c\xce\xd2\x3f\xfd\xa3\x05\x5e\x54\x91\x43\xbd\x23\x6c\x54\x64\x45\x81\xb9\xf4\xc2\x25\x7b\xf0\x02\xb7\x6d\x66\xf4\x36\x97\x72\x49\x92\xd7\x12\x91\x14\x94\x73\xf1\x7d\x56\x52\xfb\x0a\xcf\x7e\x31\x71\x02\x6d\x02\x6d\x1a\x25\x6d\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x1a\x25\x69\x42\xae\x92\xfa\xb3\x03\x72\x06\x72\x06\x72\x06\x72\x76\x96\xe4\x2c\x4a\xae\x1a\x71\xb0\x5e\xa2\x2e\x37\xa6\x77\x45\x05\x12\x97\x61\xbc\xb6\xcb\x99\x33\x65\x93\xdf\x0d\xb3\x56\x22\xbd\x89\xa2\xe4\xe6\xee\xd3\x5f\x36\x3f\x89\x08\xd3\x23\x69\x92\x1d\xc4\xd1\xb3\xa4\xd2\xa7\x5f\x15\xdf\x58\xb1\x61\x1e\xaf\xc7\xbd\x67\x4a\x6a\x9d\x3a\xfd\x0e\x6f\x98\xdf\xaf\x6f\xee\x3e\x7d\xa9\xfa\x3c\xb6\xcd\xf1\xdb\xc6\x0c\x24\xc5\x69\x4e\x60\xf7\xfc\xf7\xe3\xf5\x71\x1b\x48\xea\xaa\x71\x28\x35\xc5\x58\x3c\x7a\x09\x95\x54\xef\xd2\x1f\x43\x19\xfc\x62\x2d\x64\x1b\x8d\xd2\xb8\x62\x7c\xb0\xad\xf9\xa2\x5b\xb3\x67\x43\xc8\x47\xa9\x1d\xb1\xfd\xb5\x5f\xc2\xf8\xc6\xf7\x6d\xcd\xc3\x41\xec\x13\x78\x45\xd0\x86\x9c\xcb\xa5\x27\xb7\xdf\xf6\xac\x4d\x73\x17\x1e\xf6\x7f\x68\x2f\xd0\x36\x4a\xaa\x9d\x1d\xf6\x6e\xac\x4d\xa7\x07\xf8\x3b\xc0\xdf\x01\xfe\x0e\xf0\x77\x80\xbf\x03\xfc\x1d\xe0\xef\x00\x7f\x87\x63\x4e\x5b\xf8\x3b\xc0\xdf\x01\xfe\x0e\xf0\x77\x80\xbf\x03\xfc\x1d\xe0\xef\x70\x76\xfe\x0e\xf0\x0f\x80\x7f\x00\xfc\x03\xaa\x57\x13\xfc\x03\x76\xee\x33\xf8\x07\xd4\xf0\x0f\x78\xbc\xbe\x72\xb9\x58\x4b\xc1\x39\xed\x13\xd2\x7c\xa4\x46\x7c\x2d\x57\x1c\xdb\xc9\x66\xec\xa7\x81\x64\x36\x47\x7d\x78\x48\xc6\x4e\x16\x48\x4c\xc5\xc7\x5a\x21\x31\x55\xbb\x07\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\xe6\x88\x63\x1f\x00\x06\x00\x06\x00\xa6\x7a\x35\x01\xc0\xec\xdc\x67\x00\x30\x35\x01\x8c\x88\xfc\xf0\x59\x8a\x4f\xbd\x12\x18\xdb\x8a\x7a\x08\xc6\x7e\x1c\x0c\x66\x73\xdc\x07\xc8\x60\xec\x6c\x01\xc2\x54\x7c\xac\x1d\x08\x53\xb5\x81\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x8e\x38\xf6\x41\x61\x40\x61\x40\x61\xaa\x57\x13\x28\xcc\xce\x7d\x06\x0a\x53\x8f\xc2\x04\x16\x60\xa8\x12\x72\xf4\xf3\xff\x1e\xca\x65\xa6\x2e\xfb\x76\x39\x8d\x7a\x26\x73\xe4\x5b\x1d\xb3\x48\x8f\xca\x62\xa6\x9e\x60\xf2\x98\x99\xc7\x58\x44\xe3\xee\x7f\xd8\x0e\x3b\x34\x3b\x40\x02\x60\x8b\x9e\xb0\x2d\x7a\xcf\x86\x3d\xc2\x1e\x7d\x60\x0b\xef\xdf\xc4\x1b\x74\xea\x7f\xaa\x5a\xb7\x08\xdd\x9d\x8d\xab\xfa\x5b\x27\x29\x20\x3f\xd2\xee\xfb\x4c\x1b\x23\xa9\xc9\xda\xf6\x6f\x2d\xd8\xd9\x61\x67\x87\x9d\x1d\x76\xf6\xa9\xd9\xd9\xeb\xdd\x2a\x95\xb6\xf6\xfd\x2a\xc5\x4b\x6e\x92\x2a\x45\x55\x5b\x18\xde\x32\x2f\x70\x65\x57\x8c\x42\x5a\xea\x5b\x51\x8e\x58\x08\x16\xc9\xd1\x4a\xa4\x32\xce\x6e\x02\xe6\x05\xea\x64\x09\x63\x96\x05\xf6\x70\x72\x99\x1b\x3f\x7f\xc9\x02\xe6\x7a\xb1\x14\xd2\x1e\x85\x5d\xf1\xa4\xa1\x05\x8c\x07\x7a\xcb\x9b\xb5\xa1\x07\x98\x2d\xb3\x98\x76\x59\x14\x87\x8e\x94\x1b\x94\x12\x5b\xb0\x81\xce\xd9\xef\xf4\x46\x9a\x2d\x5a\x3b\x52\x83\xbd\xf1\xfd\x77\x64\x96\x71\xe5\x29\x9d\x05\x72\xe2\xa5\x56\x60\x96\xa4\x7e\x9c\x70\x1b\x4c\x94\xea\x4b\x3f\xd3\x74\x32\x38\x52\x6f\x28\x76\x03\x92\x93\x8d\xc8\xb7\xa2\x9a\xeb\x05\x2c\x51\xda\x27\x5b\x88\xa5\x92\x9c\xad\x21\x2d\x17\x25\xf4\xe9\x45\x4b\x27\x13\xea\x72\x58\x48\x05\x2f\xb8\x0c\xc4\x8a\xd3\x02\xd5\x8a\xaa\xd4\xa9\xcd\x0d\xaa\x8c\xea\x76\x6b\x68\x05\xc6\x5b\xaf\x85\xeb\xf1\x54\xf8\xcf\xb9\x48\x9b\x5f\xb9\x9e\xff\x56\x2b\xa2\x34\xe8\x6c\x15\x73\x87\x76\x8d\x17\xba\x56\x20\xc8\x2f\x6d\xd2\x17\xcc\x2a\xcd\x12\xd9\xc8\xe2\x74\x71\xf9\x4d\xd3\x21\xfd\x92\xa5\x3a\x03\xcd\x23\xe6\xaa\x9d\x6b\xc1\x83\xca\x36\x36\x98\x66\x6a\xf3\x1d\x35\xb9\x4a\xb9\x3f\xa0\xde\x0f\x65\xf9\x1f\xc3\xc5\xea\x8d\xcb\x6e\x36\x76\xb2\xe5\x0f\x4a\x06\x4a\x06\x4a\x06\x4a\x06\x4a\xd6\x19\x25\xab\x79\x17\x6c\x91\xb2\xd3\x5d\x8b\x1f\x45\x14\x0b\x29\x94\xb8\xef\x58\xe4\x0b\x9e\x08\x7b\x04\xdd\xc5\x61\xc4\x57\x24\x1d\xdd\x85\xbe\xe7\x3c\x97\xec\x60\x66\xd1\xb9\xf6\x01\x72\xd9\x5d\xcf\xff\x34\x67\x5f\xd5\x79\xa6\x44\x97\x48\x04\x72\xb3\xe4\x77\xaa\x60\x61\x1c\xdd\xf3\xc0\xd8\xe5\xe2\x4c\x5c\x2d\xb9\x6f\x74\xe5\xef\x17\xea\xcf\xdf\x2f\xd8\xd2\x0b\xb8\xef\xfd\xdb\x5c\x24\x0b\xc1\xb8\xeb\xd2\xea\xbc\x52\x76\x75\x37\x57\xc3\xd4\xe3\x67\x49\xfe\x25\xa5\x9f\xce\xd9\xad\x47\x87\x63\xa1\xe9\x61\xbc\xdd\x37\x3a\x7e\x94\xa9\x48\xa9\xc7\xa4\xa3\x84\xe9\x7d\x93\x09\x55\x3d\xf8\x68\xfa\x7e\x32\x13\xdf\xb6\x62\x46\x5d\x97\x1b\xf6\x3e\x7c\x62\x2b\x1e\x2f\xf8\xaa\x64\x37\xb7\x4a\x8d\x88\x97\x61\xbc\x96\x73\x52\x39\x5e\x9f\x37\x7a\xb4\x7b\xb8\x48\xe8\x35\x12\x6b\xa4\xc6\xd6\x93\xd2\xa4\xe3\xb9\xb9\x2a\x4c\xb2\x02\x19\x27\xec\x1c\x27\x54\xcf\x8a\xfe\x6a\xa4\x81\x79\x61\x32\xcd\x3d\x62\x54\xed\x4b\x6b\x63\x2e\xbf\x6c\xce\x6e\x1c\x47\x44\x29\xdd\x4d\x45\xcd\x6e\xa6\xfa\x30\x63\x97\x7a\x01\x96\x17\x68\xf2\x9e\xcd\xfe\xcc\x9d\x87\x55\x1c\x66\x81\x2b\x3f\x45\xb6\x5a\xfa\xd0\xc6\xc0\x29\x11\x52\xcb\xc7\xe5\x87\x98\x1e\x2c\xec\x93\xde\xb3\xd9\x2f\x61\x2c\x0a\x8f\x65\x0e\x4f\x1c\xee\xca\xde\xeb\xf1\x51\xe6\x7c\x7a\x5e\xa2\x54\xcf\xad\x07\x2e\xed\x33\x9a\x2c\xc8\x68\x73\xb9\xf7\x68\x29\x00\xd2\x1e\x0f\xd2\xae\xb7\xba\xf6\x61\xed\xd3\x29\xf3\x7d\x02\xee\x7a\xe3\xb4\x07\x72\x9f\xee\xc2\x1f\x2a\xee\xae\x37\x84\xdb\xc8\xfb\xa5\xd7\x69\x25\x6f\x46\x51\xb7\x23\x89\xde\xd7\x94\xa7\x59\x5d\x94\x37\xa9\xb0\x39\x75\x6d\xe7\x22\x55\xb7\x21\x74\xad\x55\x94\x1a\x47\x89\x39\x38\x64\xc0\x21\x63\xb2\x0e\x19\x70\x61\x80\x0b\x03\x5c\x18\xe0\xc2\x00\x17\x86\xde\x5d\x18\xc0\xc6\x81\x4b\x81\x4b\x81\x4b\x81\x4b\x81\x4b\x81\x4b\x81\x4b\x77\x5e\x02\x20\x18\x20\x18\x20\x18\x20\x18\x20\x18\xc8\x2b\xb8\x0f\x95\xd8\xbc\x82\xdb\x76\x6b\xe4\x17\xac\xf8\xd8\xb0\xe0\x48\x83\x3c\x83\x5a\x38\x92\xbb\x9c\xce\x11\x39\x27\x2c\x71\xc2\x48\xbc\x65\x49\xe6\xd0\x0d\x45\x07\xbb\xe0\x6b\x75\x2a\x45\x71\x48\xc2\x58\x55\xd0\x6f\xc4\xd3\xfb\xea\x98\x5f\x1b\x78\x5b\xfe\xb3\x14\x53\xbd\x58\xb8\xfa\x78\x28\xfd\xad\xdb\xc0\xf2\xb1\x24\x5d\xd0\x3f\xfd\x23\x9f\xe4\x30\x69\x19\x81\x29\xc5\x84\xf1\xe3\x68\x97\xfa\x56\x37\xbc\xab\x59\xcc\xe7\x9e\xc5\xd4\xd5\xa1\xd8\x4a\x10\x28\x02\x91\x8a\xb3\x3e\xd8\x40\x24\xb2\x42\xfc\xc6\x03\xbe\x12\xb1\xb2\xa7\xa9\x53\x33\x49\x42\xc7\x23\x05\xd1\x5a\xae\x38\x19\x20\xc3\x98\x89\x20\x95\x02\xac\xd1\x98\xd7\xfc\x41\x8e\x62\x7a\x2f\x12\x61\xa4\xc0\x62\xb8\x8d\x09\xcb\x21\x29\x98\xac\x54\x61\xcc\xae\x7f\xfa\x59\x7e\x36\xe6\x0e\x61\x29\x3f\x0c\x56\x4a\xe6\x23\x4b\x92\x54\xf9\xb9\x17\xa8\xa3\x8a\x2c\x35\xf9\x67\xc9\x54\xaf\xa1\x19\x5b\x3c\x33\xba\x2d\xdf\x5d\x5d\xad\x42\x9f\x07\xab\x79\x18\xaf\xae\xa2\x87\xd5\x55\x16\x78\x4e\xe8\x8a\xab\xff\xf8\x94\xdc\xc9\xa7\x34\x36\xfd\xea\xc1\x69\x73\x7a\x06\x25\x24\x8e\x56\x76\xab\x2b\xb7\xfd\x54\x43\x6e\xfb\xa0\xcc\x58\x03\x6b\xf7\x4f\x07\xdb\xad\xdc\x6b\x07\xd6\xf0\x29\x09\xca\x24\x98\x0c\x5a\x50\x7e\xc5\x5a\x48\x12\xa3\xfe\xfe\xbf\x27\xca\x15\x73\xa4\x50\x56\xcc\x0f\x33\x0c\xa1\x6c\x24\x89\x38\x20\x83\x15\x27\x79\xb0\x32\x18\x42\x9f\xcf\x28\xf4\x19\x31\x5e\x88\xf1\x42\x8c\x17\x62\xbc\xa0\x3e\xee\xda\x45\x83\x8c\x92\xe8\x47\x19\x43\x90\xc7\xce\x20\x8f\x61\x2b\x65\xd6\xb0\xdd\x7a\x68\x07\x41\xff\xb2\xc0\x75\x94\x32\x25\xbf\x7f\x92\x78\x8e\x82\x50\x22\x7e\x90\x97\xd6\x42\xfe\xc4\x9d\x74\xce\xd8\xad\xfc\xd7\xfc\x7e\xcd\x3d\x32\xf7\x25\xcc\xf1\xb3\x24\x15\x71\x7e\xd5\x28\x77\x4e\xe6\x7b\x0f\x82\xcd\x6c\x83\x67\x52\xa2\x34\x52\xd0\x9c\xdd\xf9\x3c\x08\xb4\x97\x05\xc9\x29\xdc\x57\xa2\xd1\xf5\xcf\x4d\xce\x6e\x6a\x63\x4f\x12\x84\x1d\x34\x2b\x80\x2f\xcc\xf0\xc9\x9e\xb2\x5b\x35\x62\xf2\xd6\x88\x12\x33\x3a\xda\x91\x29\x4b\x44\x4c\x1e\x48\xb9\x2c\xfd\xdc\xf1\x40\xc9\xc6\x4c\x17\x9f\x0f\xfb\x6a\x83\xa1\xae\x74\x2b\xc8\x83\x76\x1c\x57\x42\x03\xa0\x4d\x4c\x46\x9b\x48\x0e\xb5\xa3\x0e\xb4\x1e\x0a\xaf\x06\xa8\x1f\x1d\xa8\x27\x7f\x9f\x5a\x12\xcd\xe6\xf1\x7c\x49\xdf\xfd\xc3\xfe\x93\x7a\x2d\xe2\x95\xa8\xf5\xc9\x24\x8d\x79\x2a\x56\x9e\x73\x59\xff\x3b\xf2\xe7\x67\xfd\x49\xba\x13\xea\x48\x5c\xe4\x20\x4a\xf1\x67\xca\x37\xed\x25\xd2\x17\xbd\x7a\x48\x96\xec\xae\xdc\x0b\xf6\x68\x2e\x77\x65\x97\x31\x06\xfb\xf6\xc4\xed\xdb\xe7\xe3\x63\xb0\x11\xd9\x61\x36\x97\x8a\x3e\x8a\x94\x33\xb6\x8e\x68\x7f\xbd\xe3\x5c\x7a\x43\xd6\x3d\x15\x72\xcc\x7d\xfa\x66\x10\x06\x97\xea\xdb\xf4\x09\x32\xb0\x27\xec\xf5\x5f\x93\x30\xb8\x53\x81\xdd\xbf\xc9\x13\x50\xff\xfc\xd5\x9c\x8b\xf9\x2f\xdf\x0c\xc9\xf9\xa1\xfe\xba\xf9\x25\x8c\x1d\x22\x10\xab\x90\x26\x3f\x64\xdf\x2f\x96\xf2\x77\xdf\x2f\xd8\x4d\x69\x34\xe7\xec\x53\xaa\x71\x01\x69\x41\x7a\xa3\x5e\x72\x87\x26\x80\x42\x83\x7d\xcf\xd1\x06\x50\x52\x9a\xc2\x27\x3d\xb7\x2a\x74\x36\x12\x61\xe4\x8b\x39\x53\xef\xa4\x8c\x00\x66\x4d\x91\xb7\x7e\xe5\x44\xd8\xd7\x37\x19\x5e\xf9\x22\xe8\x4e\xea\x0f\xd0\x9d\xfa\x75\x72\xd8\x70\x01\x1f\xb4\xf6\x94\xb5\x6e\x50\x8b\x7c\xee\xbc\x48\xaa\xd3\x8f\x38\x07\xb9\x0e\x6e\xa3\x10\xe9\xce\x4a\xa4\x1b\x90\xe4\x84\x0b\xde\xfe\x05\x6e\xa3\xe7\x21\x98\x64\x03\x37\xea\xbe\x62\xc7\x3a\x5f\xba\x5c\xac\xe5\x16\x49\xfb\x29\xcc\xf7\x91\x5e\xff\xb5\x6c\x2c\x3f\xb2\x1e\x5f\xe5\x33\x90\xf5\x0d\x59\xdf\x46\x97\xf5\x6d\xd2\xde\xbf\xc8\x61\x87\x1c\x76\xc8\x61\x87\x1c\x76\xc8\x61\x57\x75\x95\xa0\x0c\x1f\xcc\x18\x48\x35\x88\x58\x94\x73\x8e\x45\x41\x5e\x49\xe4\x95\x44\x5e\x49\xe4\x95\x44\x5e\x49\xe4\x95\x44\x5e\x49\x84\x68\x22\x44\x13\x21\x9a\x08\xd1\xdc\x5c\x91\x28\xc3\x87\x24\xb6\x47\xaf\x2e\x24\xb1\x45\x12\x5b\x24\xb1\x9d\xbe\xa3\x09\x22\xb4\x7b\x2f\xc3\x57\xe5\x8e\x30\xe0\xea\x7b\x75\x3c\x30\xaa\x8a\xee\xc1\xeb\x02\x5e\x17\xd3\xf0\xba\x80\x9f\x02\xfc\x14\xe0\xa7\x00\x3f\x05\xf8\x29\xf4\xee\xa7\x00\x00\x0e\x26\x0a\x26\x0a\x26\x0a\x26\x0a\x26\x0a\x26\x0a\x26\xba\xf3\x12\x00\xa6\x00\xa6\x00\xa6\x00\xa6\x00\xa6\x40\xad\xbd\x5a\x01\xac\xd6\x5c\x8d\x12\x7b\x15\x1f\x1b\x04\xf8\x40\x65\xbd\x73\x48\xd8\xd7\x5d\x65\xbd\x3a\x24\xab\xba\xa0\xde\x8b\x58\xd6\x40\x13\xa2\xe4\x7d\xaa\x77\xd8\x21\x80\x68\x02\x01\x44\xc8\x83\x82\x3c\x28\x15\x8d\x19\xb0\x38\x36\x8e\xf4\x27\x0d\x9a\xdb\x6b\xb1\xbc\xa3\xdb\x3b\x25\x49\xb7\xfb\x1a\x79\x0d\x25\xdd\x57\xac\x79\x76\x96\x53\x57\xc4\x3b\x36\x31\x4b\xaf\xc2\xd4\x48\x32\x60\x40\x88\x2a\x4e\xf2\x60\x85\x28\xc4\x1c\x9f\x51\xcc\x31\x82\xab\x10\x5c\x85\xe0\x2a\x04\x57\x41\xff\xdb\xb5\x8b\x06\x19\x9e\x80\xfa\x77\x83\x51\xb7\x4e\x51\xff\x6e\x70\x31\x15\x15\x65\xef\xea\x68\x4c\x55\xd5\xee\xda\x0c\xa4\x40\x91\x3b\xbb\x06\xea\x8b\x09\x28\x72\xa7\xff\xc3\xfd\x05\x03\xdb\x20\x6a\xdb\xf5\x40\x92\x8b\x25\xed\x76\xbc\x1e\x95\xec\xaa\xfb\x0c\x30\x8e\x4a\x76\x5d\x54\xb2\xab\x23\x50\x55\x16\xb0\x9b\x10\xce\x47\xdd\x3a\xd8\xa5\xcf\x0f\xee\xa3\x6e\x5d\x9b\xeb\x06\x75\xeb\xa0\x0e\x41\x1d\xda\x1e\xc6\x11\x95\xab\x7b\xb1\x42\x74\x9a\x2a\x75\xf5\x4c\x60\x95\xc5\xe9\x26\x24\xb3\xc1\x05\x13\x52\xda\x39\x48\x69\x03\x12\x86\x70\x67\xdb\xbf\xc0\x05\x53\x3f\x79\x52\x22\x46\xd7\x85\xe7\xfa\xf3\x68\xbc\x4a\x14\x39\x2d\x38\x36\x76\x43\xeb\xd4\x7b\xcc\xdd\xd4\x22\xb7\xd3\xe8\x17\x27\x0f\xb6\x32\xe0\x09\xe0\xc9\x71\x7d\x06\x3c\x01\x3c\x69\x07\x9e\xbc\xe4\x7e\xdb\x8f\x51\x2a\x2e\xb8\x51\x2a\xe6\x80\x29\x50\xd3\xcf\x4f\x4d\x07\x4c\x69\x73\xdd\x00\xa6\xc0\x30\x03\xf5\x68\x7b\x18\x01\x53\x5e\x0e\x53\x5e\x66\xa1\xd8\x8f\x55\xa6\x22\xc3\x01\xae\x40\x6a\x3b\x07\xa9\x6d\x40\xc2\x11\xee\x70\xfb\x17\xc0\x15\xfd\xe4\x49\x89\x1c\xd3\x81\x2b\x22\xf2\xc3\xe7\x35\x85\xdc\x9e\x26\x51\x44\x21\x94\x36\x5c\xb2\x8f\xf6\xfd\x7b\x24\x95\x62\xd6\x88\x0f\xf6\xeb\x05\x91\xa5\xf2\x21\xa8\x2c\x83\xca\x32\xa3\xab\x2c\x33\xe9\x6c\x26\xa8\x93\x83\x3a\x39\xa8\x93\x83\x3a\x39\xa8\x93\x53\x75\x95\x9c\xa0\x4a\x2f\xcc\x15\x43\x37\x57\xa0\x9c\x11\x72\x6b\x9d\x71\x6e\x2d\xd4\xae\x42\xed\x2a\xd4\xae\x42\xed\x2a\xd4\xae\x42\xed\x2a\xd4\xae\x42\xca\x49\xa4\x9c\x44\xca\x49\xa4\x9c\xdc\x5c\x91\x27\xb0\x14\xa0\x50\x1e\x0a\xe5\x75\xb0\xb6\x50\x28\xaf\xe6\x1e\x44\xa1\x3c\x38\x94\x20\xe3\x6c\xcb\x19\x67\x73\x91\xaa\x63\xef\x8d\x2a\x7f\x84\x5e\x93\xcf\x2a\xe3\x59\xac\x6f\x71\x23\xe5\x87\x4b\x26\x9b\x5c\xcf\x09\x43\x3e\x62\xcb\x57\x14\x8e\x17\x70\xbc\x98\x86\xe3\x05\x5c\x15\xe0\xaa\x00\x57\x05\xb8\x2a\xc0\x55\xa1\x77\x57\x05\x30\x70\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\xd1\x9d\x97\x00\x48\x05\x48\x05\x48\x05\x48\x05\x48\xc5\x0e\x52\xb1\xf3\x0b\xf2\x65\xef\xd5\xc0\xff\xe7\xf6\x18\xd4\x79\x76\xf9\xdb\xc3\x46\x22\x79\xd0\xaa\xb5\x57\xff\xea\x25\x67\x19\xb9\x2a\x8f\xb1\x81\xc3\x8f\x06\xd9\x04\x91\x7e\x6f\x74\xe9\xf7\xc2\xa4\x65\xc4\xa5\x14\x11\xc6\xeb\xd1\x2c\xf5\xe9\x76\x79\xd6\x50\xd3\x9e\xe4\x9d\xaa\x77\xe0\x21\x90\x68\x02\x81\x44\xc8\x7b\x82\xbc\x27\x15\x8d\x19\xb2\x4c\x36\x92\xc4\x27\x0d\xda\xdb\x47\xe5\xe9\x17\x34\x78\x4a\x02\x2f\x09\x1a\x83\x14\x78\x5f\xb1\x17\x24\x6b\xd1\xa9\xf0\x4f\x94\xb3\xa5\xa6\x50\x55\xcc\xd3\xd2\xaf\x50\x35\x92\x84\x18\x90\xa5\x8a\x93\x3c\x58\x59\x0a\x21\xc8\x67\x14\x82\x8c\x58\x2b\xc4\x5a\x21\xd6\x0a\xb1\x56\x50\x03\x77\xed\xa2\x41\x46\x2b\xf4\xa3\x64\x21\xd8\x62\x67\xb0\xc5\x30\x95\x2e\x6b\x80\xee\xa6\x62\x58\x59\xd0\xaa\xa5\x34\x55\x16\x0a\x6b\x33\xae\xa2\x20\x7c\x88\x1f\xe4\x2d\xb5\x90\x3f\x71\x27\x9d\x33\x76\x2b\xff\x35\xbf\x5f\x73\x8f\xcc\x73\x09\x73\xfc\x2c\x49\x45\x9c\x5f\x29\xba\xdc\x80\xef\x3d\x08\x36\xb3\x0d\x9d\x49\xc9\xd1\x48\x3b\x73\x76\xe7\xf3\x20\xd0\xde\x0e\x24\x8f\x70\x5f\x89\x40\xd7\x3f\x37\x39\xa3\xa9\x8d\x3d\x49\x0a\x76\xd0\xac\xa0\xbd\x30\xc3\x27\x7b\xca\x6e\xd5\x88\xc9\xdb\x21\x4a\xcc\xe8\x68\x87\x22\xaa\xdd\xe0\xf0\xa0\x20\x33\x3f\x77\x3c\x50\xb2\x31\xd3\xc5\xd8\xc3\xbe\xc2\x60\x68\x3b\x51\x95\xba\x1e\xc0\x72\xa9\x4c\xdd\x8e\xf7\xa3\x4e\x5d\x75\x9f\x01\xca\x51\xa7\xae\x9d\x3a\x75\x0d\xa4\xaa\xea\xf2\x74\x13\xc2\xfb\xa8\x4c\x07\xfb\xf4\xf9\xb1\x7e\x54\xa6\x6b\x73\xdd\xa0\x32\x1d\x74\x22\xe8\x44\x15\xe3\x38\xa6\xd2\x74\x2f\xd6\x8a\xba\xaa\x4d\xd7\xc8\x16\x56\x5d\x92\x6e\x42\x72\x1b\xdc\x32\x21\xaa\x9d\x85\xa8\x36\x20\x89\x08\x17\xb7\xfd\x0b\xdc\x32\xed\xa3\x27\x25\x68\x74\x5e\x90\xae\x47\x27\xc7\xab\xc4\xe1\x7e\xd1\xb1\xb1\x23\x78\x47\xaf\xa9\xa8\xa5\xfb\x72\x8a\xf7\x95\x3a\x80\xc3\xe7\xe0\x66\xce\xd2\x50\xce\x82\x17\xac\x08\xa1\xd3\xb0\x9d\xe1\x76\x6e\x8b\xa5\xe4\xc3\x59\xbd\xab\x37\xd7\xe5\x09\x69\x4a\xc5\xab\x01\x52\xaa\xfb\x0c\x90\x02\x90\xd2\x0e\x48\x79\xc9\x0d\x77\x80\xa8\x6c\x5f\x71\xa3\x54\xcf\x81\x55\xa0\xab\x9f\x9f\xae\x0e\xac\xd2\xe6\xba\x01\x56\x81\x75\x06\x0a\x52\xa7\x0a\x52\x7b\x60\xa5\x53\x15\xa9\x2b\xb4\xf2\x32\x4b\xc5\x01\xc6\x32\x11\x49\xee\x25\x7b\x05\xe2\x1b\xc4\xb7\x11\x89\x6f\x03\x92\x92\x70\x99\xdb\xbf\x74\x7a\x99\xf7\x04\x5b\x20\x7e\xb4\x8a\x5b\x3a\x10\x3e\x5e\xb1\x36\x80\x8b\x8a\x5d\xeb\x9e\xb8\xd0\x7b\xba\x41\x2e\xaa\x0b\x38\x85\x00\x50\x11\xbd\x82\xe8\x15\x40\x17\x40\x97\xbe\xa0\xcb\x4b\x2e\xb9\x43\xd4\x65\xfb\x96\x1b\xa5\xb2\x0e\xec\x02\xbd\xfd\xfc\xf4\x76\x60\x97\x36\xd7\x0d\xb0\x0b\x2c\x35\xd0\x91\x2a\xc6\x71\x78\xd0\x65\x84\xd1\x2c\x2f\x34\x55\x1c\x62\x2e\x13\x91\xe3\x10\xdd\x02\xd1\xed\x2c\x44\xb7\x01\x49\x48\xb8\xc8\xed\x5f\x10\xdd\x62\x1f\x3d\x29\xc1\x63\x3a\xd1\x2d\x52\x12\xf0\x1c\x9e\x88\x34\x39\x51\xee\xee\x42\x6e\xd3\x70\xc9\xbe\xa8\xf7\x7f\x15\x75\xf3\x78\x7f\xb0\x5f\xcf\xe5\x96\xea\x87\xa0\xec\x3f\xca\xfe\x8f\xae\xec\xff\xa4\xd3\xcb\x7f\x2b\x96\xae\x55\x36\xa2\x42\x86\xf2\x44\xa4\xaa\x4e\xac\xae\x3d\x2c\x17\x53\xa9\x68\xad\x4d\x25\xad\x26\x7c\xce\xbe\x7a\x81\x23\x36\x92\x8f\xeb\x95\xaa\x45\xa8\x72\x45\xdc\x52\x51\x60\xdb\x10\xf5\x55\x7a\x38\xcf\x6b\xbf\xab\x4a\xc8\xa6\x44\xa9\xdc\xe9\x79\x9d\x5a\xf5\xb7\xfc\x7c\x61\xaf\xc5\x0f\x47\x44\x79\x71\x46\xf5\xc8\x70\x69\x5f\xf2\xc6\x66\x47\xd6\xed\x53\xd5\x92\x09\x1f\xf1\xcd\xa6\x78\xf2\xd4\x10\x6a\xa5\x5b\xa5\xc0\x6e\x8f\x5c\xd5\xdb\xfc\x9a\xfc\x06\xc9\x9a\x22\x66\x4a\xaf\x30\xc5\x8c\xdd\x4c\x50\x95\xed\x1f\x91\xa7\xb3\xc6\xbf\x5e\x89\x40\xc4\x84\x05\x96\x52\xc1\x48\x43\xb6\xf4\x96\xa9\x10\x01\x5b\x7b\x41\x96\x8a\xe4\x0d\xa3\x0a\xd5\x4e\x18\x2c\xbd\x95\x49\x36\xaf\x04\x60\x53\x6d\x3a\xdf\x78\x7b\xab\xf5\xff\x9f\xeb\x3f\xb2\x2f\x3a\x29\xf4\xad\x6c\x82\x70\xb5\xfa\x92\x86\x2b\xd5\x40\xfd\x49\xdb\xa3\x34\x7c\x10\x81\xed\xb2\xae\x88\x1b\x08\xe1\x6e\x14\xd2\xf5\xa9\x4a\xb6\x97\x2a\x31\x3c\x16\xaa\x86\xbd\xae\x33\xee\x25\xa9\x2d\x1a\xbc\x5d\x35\x79\xce\x3e\xcb\x57\x3f\x79\x26\xaf\xb9\x7e\x0b\x95\xc2\x57\x47\x9c\xb2\xad\x6d\xd4\xed\xd7\xfa\x02\xb5\xd0\x54\xe3\x2d\xe8\x11\xb2\xb3\xd4\xb9\x83\xc3\x42\xcf\xa5\x06\x93\x5d\xcf\x2c\x6e\x53\xd1\x5f\x65\xed\x2e\x94\xe1\x4f\xe5\xfb\xf3\xca\xc1\x4f\xf7\x9e\x2a\xca\xec\x05\x85\x01\xb1\x9f\xb7\x0b\xb9\x50\x6a\x37\x61\x97\x36\xcb\xbb\xca\x0d\x1a\x8b\x23\x0b\x26\x6f\x0c\xc6\x76\xad\x64\x9d\x01\x9c\xe4\x6b\x52\x66\xe4\x82\x94\xff\xaa\x49\x79\x10\xcf\xba\xfa\xb4\x7d\xf0\xf7\x0b\xd3\xe5\xef\x17\xba\xb8\xf4\xee\x6a\xd4\x74\x40\x94\xeb\x51\xdb\xfb\x8f\x66\x8e\x16\x80\x29\xba\x5b\x18\x3d\x35\x08\xc5\xfa\x9c\x7a\xdb\xd8\x5b\x51\x27\x3e\xd7\x33\xa6\x14\xea\x94\xad\xbd\x24\xa1\xdb\xae\xa4\xd5\x37\xb9\x55\xcc\xf2\xeb\x47\x15\x86\xc5\xa2\xf6\x44\xf5\x69\xb1\xb8\x61\x89\xc8\x33\xd8\xcb\x03\x2d\xf6\x9c\x34\xaf\xed\x4f\x15\xf8\xf5\x82\xb5\x05\x1b\x9e\xf5\xe6\x52\x6c\xa0\x5c\x3d\x43\x3c\x8a\xf8\x39\xbd\xf7\x82\x55\x63\x1b\xc1\x57\xdd\xa2\x7e\x46\x04\xc5\x4e\xce\xa8\xd8\xc9\x8b\x96\xbf\xcf\x17\xc2\x6f\x75\xf9\xd3\x13\xfb\x5d\xfe\xaa\xf0\x3f\xd9\x2e\xd7\xfc\x87\xb7\xce\xd6\x2c\xc8\xd6\x0b\xb9\x48\x96\xf6\x30\x4d\xd4\x68\x51\x21\x6b\x82\xb5\x6a\xb4\x54\x61\xf0\x4f\x4b\x25\x46\x7b\xb2\x2d\xaa\xae\xc7\xb6\x6c\x42\x85\xd5\xef\x05\xfb\xa7\xb9\xa5\xfe\x69\x4a\x8b\x04\xf9\xe8\x9b\xaa\x1f\x6a\xa1\xaa\xd5\x49\xf7\x87\xc3\x03\xb3\x9c\x73\x49\x28\xe1\x6b\xb9\xcb\xbc\xd4\xb3\x22\xb3\x6a\xa5\x14\xee\x45\x2e\xeb\xc8\x57\xab\xbe\xc8\x49\x93\xea\x73\x9a\x2a\x45\x52\xf5\x5d\x89\xca\xaa\x6f\xe2\x49\x55\xc9\x0f\x8a\x37\x84\x14\x53\xd6\x61\x16\xd0\x63\x54\x2f\x5f\x67\x91\x7c\x99\xda\xd0\xf2\x37\x6f\x8c\x6c\xa2\x74\x55\x4e\x97\x93\xf9\xb6\x59\x49\x52\x2e\x59\x7a\x7e\x2a\xa4\x84\x2a\xa5\x46\x79\x47\x39\x65\xed\xba\xa4\x43\xa8\xfb\xd4\xb1\x4e\x6d\x65\x09\x53\xd5\x20\x49\x45\xbc\xf6\x02\x61\x65\xf1\x92\x4a\x43\x92\xd0\x23\xf7\x7c\xa9\xcf\xe6\x96\x03\xd9\x65\xe7\x3e\x0c\x13\xaa\x35\x2e\x9f\xa3\x25\x20\x3d\x17\x72\x58\x78\xbc\xca\xc8\xa0\xc0\x03\xd7\xdc\xb6\x34\x48\xb2\x6f\xba\x3d\xf6\xd1\xf9\xe8\x7e\x5a\x32\xbb\xa4\xf2\x53\xc9\x68\x27\x1b\x1d\xf0\x12\x26\xd6\x51\xfa\x5c\x56\xa3\xac\x5d\x80\xa7\xf2\x06\xdf\xd7\xa1\x7d\xa2\x9c\xb7\xdc\x10\xe4\x94\xec\x67\xd7\xa5\xad\xfd\xaf\x85\x94\xfc\xa4\x4f\xf2\x43\x80\xe4\xc1\x8c\xc4\x06\xdb\x76\x2b\x96\x5a\x85\x2d\x0d\x99\x97\x24\x99\x36\x4f\x78\xc1\xca\x17\xf9\x0e\xb1\x3a\x82\x59\x70\x97\xc6\xf8\xff\x56\x76\xcf\xbc\xf2\x38\x39\xd9\x88\xc8\x64\xfd\x48\x32\xe1\x56\x0a\xcb\x64\x85\xc9\x16\x89\xfc\x70\x90\xda\x1e\xb8\x05\xcf\x80\x6f\xda\x80\x92\x84\x6b\x91\x7a\x6b\x21\xfb\xbe\x14\x71\x4c\x55\x96\x54\xc1\xfa\x82\xf8\x9f\xab\x07\x72\x46\x45\x90\x64\xb1\xb0\x75\x00\xb4\x82\x63\xc8\x86\x1a\x35\xd5\x65\xda\x98\xa4\xca\xb0\x64\xcd\x7d\x5f\xc4\xcc\xb9\xcf\x82\x07\x02\x8c\x9c\xc9\x43\x94\xf9\x3c\x5e\x99\x89\xa6\x1d\xaf\x1e\xaf\x6c\x45\x89\x10\xb4\xf0\xa2\x30\x49\x3c\xb9\xe0\xf4\xb0\xd1\x82\x2b\xee\x2f\xe5\x84\xe6\xe6\xd6\x22\x7a\x8f\x70\xd5\x7c\x90\xf2\xac\xc5\x73\xbd\x86\xf5\x5d\x48\xad\x7e\xe2\x89\x91\x61\x8d\x45\x4c\x8e\xc9\xb6\x7e\xa2\xb4\x76\x9e\xc8\x09\x76\x32\x5f\x15\xbf\xca\x97\x4d\xa3\xbb\x40\x0e\x54\x4f\xd7\x22\x6a\x80\xa1\x06\x18\x6a\x80\xa1\x06\xd8\xe9\x2c\x05\xb9\x68\xa0\xad\x55\xea\xaa\x96\xf7\xe5\x5b\x29\x0a\x3d\x25\x06\x86\xab\x71\x09\x1d\x27\x8b\xed\x2d\xc8\x53\x46\x6e\xc7\xf2\xe8\x8d\x8b\x07\x3a\xb7\x2b\xa3\x2c\xa6\x9b\x67\xd9\x93\x62\x21\x56\x5e\x10\x68\x6b\xc0\xbd\x97\xa4\x61\xfc\x3c\x67\x1b\x4d\x93\xa2\xae\x3c\x3e\xde\xb1\x4b\x29\x4d\x90\xa7\x5b\xc1\x23\xdd\x58\x1f\x0a\xe2\x02\x3d\x5f\x1e\x4b\xe4\x07\x1d\xc6\x72\xbd\x2c\xb8\x14\x5b\xc3\x80\xfd\x2b\x0b\xe3\x6c\x7d\x49\x91\x40\x4b\x9f\xaf\xde\xab\xc7\x7a\xf2\xc0\xfa\xa3\x7e\xee\x93\x60\x89\xb7\x56\xce\x7b\x24\x6d\x3d\xd1\xbd\x24\x98\x93\xc5\xb1\x08\x52\xff\x99\xdd\x73\xd2\x2e\x99\xc3\x9d\x7b\x41\x22\x84\x95\x64\xf4\x13\x49\xd8\x0e\xa5\x3a\x4a\x12\x6a\x65\x93\x79\xca\xe4\x41\x9f\x52\x0c\x41\x2c\x12\x0a\x26\x58\x79\x8f\x22\x60\xf1\x63\x93\xd5\xb5\x61\xfd\xea\x49\x99\xf7\xd6\x42\x8a\x5a\x46\x2f\x96\xb3\x77\x95\x2f\x2d\x2d\xee\xd0\x55\x9b\xa8\x4d\x6b\x34\x7f\x23\x61\xd3\x02\x8c\xc5\x8a\xc7\x2e\xb9\x5c\xc8\x45\x15\x3c\x33\xee\xa4\xde\xa3\x97\x3e\xcb\x63\xd0\x0b\xcc\xff\x35\x19\xa7\x54\x35\xb1\x5f\x3d\xf8\xef\xca\x7c\x19\xc6\xf9\x2e\x0b\xf5\x21\x26\x3f\xb7\x20\x11\x51\xcd\xa7\x3a\x74\xf5\x6a\x4c\xef\xc5\x5a\x09\x85\x49\x1a\x0b\xbe\xa6\xe1\x71\xdd\xb7\x5a\xec\x7a\xab\x3f\x2b\xaf\x65\x79\x19\x14\x0c\x9a\xec\xab\x2a\x0c\xb5\x69\x25\x6d\x32\x84\x4f\x1b\x8e\x79\xec\xc5\xd7\x69\x25\x5f\x86\x4f\x09\x4a\x00\x6e\x7e\x61\x6f\x09\xc0\x5c\xa4\xea\xd6\x7d\xa3\xd2\x1f\xa1\xd7\x62\x80\xca\x78\x16\xeb\x5b\xdc\x48\xf9\xe1\x92\xc9\x26\xd7\x73\xc2\x90\x8f\xd8\x74\x18\x85\xe3\x05\x1c\x2f\x26\xe2\x78\x01\x57\x05\xb8\x2a\xc0\x55\x01\xae\x0a\x70\x55\xe8\xdd\x55\x01\x0c\x1c\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x74\xe7\x25\x00\x52\x01\x52\x01\x52\x01\x52\x01\x52\xb1\x83\x54\xec\xfc\x82\x7c\xd9\x7b\x35\xf0\xff\xb9\x3d\x06\x75\x9e\x5d\xfe\xf6\xb0\x91\x88\x0d\x5b\xcd\xed\xd5\xbf\x7a\xc9\x59\x86\xae\xca\x63\x6c\xe0\xf0\xa3\x41\x62\x41\x24\xe2\x1b\x5d\x22\xbe\x30\x69\x19\x71\x29\x45\x84\xf1\x7a\x34\x4b\x7d\xba\x5d\x9e\x35\xd0\xd4\x27\x85\x4e\xd5\x3b\xf0\x10\x48\x34\x81\x40\x22\xa4\x3e\x41\xea\x93\x8a\xc6\x0c\x59\x26\x1b\x47\xea\x93\x26\xed\xfd\xe9\x60\x7b\x95\x3b\xec\x40\x1a\x3c\x25\x81\x97\x04\x8d\x41\x0a\xbc\xaf\xd8\x0b\x92\xb5\xe8\xcc\xf8\x27\xca\xd9\x52\x53\xa8\x2a\xe6\x69\xe9\x57\xa8\x1a\x49\x42\x0c\xc8\x52\xc5\x49\x1e\xac\x2c\x85\x10\xe4\x33\x0a\x41\x46\xac\x15\x62\xad\x10\x6b\x85\x58\x2b\xa8\x81\xbb\x76\xd1\x20\xa3\x15\xfa\x51\xb2\x10\x6c\xb1\x33\xd8\x62\x98\x4a\x97\x35\x40\x77\x53\x40\xac\x2c\x68\xd5\x52\x9a\xaa\xca\x86\xb5\x1a\x57\x51\x10\x3e\xc4\x0f\xf2\x96\x5a\xc8\x9f\xb8\x93\xce\x19\xbb\x95\xff\x9a\xdf\xaf\xb9\x47\xe6\xb9\x84\x39\x7e\x96\xa4\x22\xce\xaf\x14\x5d\x76\xc0\xf7\x1e\x04\x9b\xd9\x86\xce\xa4\xe4\x68\xa4\x9d\x39\xbb\xf3\x79\x10\x68\x6f\x07\x92\x47\xb8\xaf\x44\xa0\xeb\x9f\x9b\x9c\xd1\xd4\xc6\x9e\x24\x05\x3b\x68\x56\xd0\x5e\x98\xe1\x93\x3d\x65\xb7\x6a\xc4\xe4\xed\x10\x25\x66\x74\xb4\x43\x11\xd5\x70\x70\x78\x50\x90\x99\x9f\x3b\x1e\x28\xd9\x98\xe9\x62\xec\x61\x5f\x61\x30\xb4\x9d\xa6\x62\x5d\x1f\x60\xb9\x58\xb1\x6e\xd7\xfb\x51\xb1\xae\xba\xcf\x00\xe5\xa8\x58\xd7\x4e\xc5\xba\x06\x52\x55\x65\x9d\xba\x29\xe1\x7d\x54\xa8\x83\x7d\xfa\xfc\x58\x3f\x2a\xd4\xb5\xb9\x6e\x50\xa1\x0e\x3a\x11\x74\xa2\x8a\x71\x1c\x51\x85\xba\x97\x6b\x45\x5d\x55\xa8\x6b\x64\x0b\xab\xac\x4b\x37\x25\xb9\x0d\x6e\x99\x10\xd5\xce\x42\x54\x1b\x90\x44\x84\x8b\xdb\xfe\x05\x6e\x99\xf6\xd1\x93\x12\x34\xba\xae\x48\xd7\xa7\x93\xe3\x55\xe2\x70\xbf\xe8\xd8\xd8\x11\xbc\xa3\xd7\x6c\x57\xd4\x6d\x81\xe2\x7d\xa5\x0e\xe0\xf0\x39\xb8\x99\xb3\x34\x94\xb3\xe0\x05\x2b\x42\xe8\x34\x6c\x67\xb8\x9d\xdb\x62\x29\xf9\x70\x56\xef\xea\xcd\x75\x79\x42\x9a\x52\xf1\x6a\x80\x94\xea\x3e\x03\xa4\x00\xa4\xb4\x03\x52\x5e\x72\xc3\x1d\x20\x2a\xdb\x57\xdc\x28\xd5\x73\x60\x15\xe8\xea\xe7\xa7\xab\x03\xab\xb4\xb9\x6e\x80\x55\x60\x9d\x81\x82\xd4\xa9\x82\xd4\x1e\x58\xe9\x54\x45\xea\x0a\xad\xbc\xcc\x52\x71\x80\xb1\x4c\x44\x92\x7b\xc9\x5e\x81\xf8\x06\xf1\x6d\x44\xe2\xdb\x80\xa4\x24\x5c\xe6\xf6\x2f\x9d\x5e\xe6\x3d\xc1\x16\x88\x1f\xad\xe2\x96\x0e\x84\x8f\x57\xac\x0d\xe0\xa2\x62\xd7\xba\x27\x2e\xf4\x9e\x6e\x90\x8b\xea\x02\x4e\x21\x00\x54\x44\xaf\x20\x7a\x05\xd0\x05\xd0\xa5\x2f\xe8\xf2\x92\x4b\xee\x10\x75\xd9\xbe\xe5\x46\xa9\xac\x03\xbb\x40\x6f\x3f\x3f\xbd\x1d\xd8\xa5\xcd\x75\x03\xec\x02\x4b\x0d\x74\xa4\x8a\x71\x1c\x1e\x74\x19\x61\x34\xcb\x0b\x4d\x15\x87\x98\xcb\x44\xe4\x38\x44\xb7\x40\x74\x3b\x0b\xd1\x6d\x40\x12\x12\x2e\x72\xfb\x17\x44\xb7\xd8\x47\x4f\x4a\xf0\x98\x4e\x74\x8b\x14\x23\xc4\x32\xf3\x13\x91\x26\x27\x4a\xde\x5d\x48\x6e\x1a\x2e\xd9\x57\xdd\x80\xfa\x99\xbc\x3f\xd8\xef\xe7\x92\xcb\x8e\xa7\xa0\xf2\x3f\x2a\xff\x8f\xae\xf2\xff\xa4\x33\xcc\x7f\x2b\x56\xaf\x55\x66\xa2\x42\x92\xf2\x44\xa4\xaa\x54\xac\x2e\x3f\x2c\x17\x53\xa9\x6e\xad\xcd\x26\xad\x26\x7c\xce\xbe\x7a\x81\x23\x36\xf2\x8f\xeb\x95\xaa\xa5\xa8\x72\x51\xdc\x52\x5d\x60\xdb\x10\xf5\x55\x7a\x38\xcf\xcb\xbf\xab\x62\xc8\xa6\x4a\xa9\xdc\xe9\x79\xa9\x5a\xf5\xb7\xfc\x7c\x61\xaf\xc5\x0f\x47\x44\x79\x7d\x46\xf5\xc8\x70\x69\x5f\xf2\xc6\x26\x48\xd6\xed\x53\x05\x93\x89\x20\xf1\xcd\xa6\x78\xf2\xd4\x10\x6a\xa5\x5b\xbd\xc0\x6e\x8f\x5c\xdb\xdb\xfc\x9a\xfc\x06\x89\x9b\x22\x66\x4a\xb5\x30\xf5\x8c\xdd\x4c\x50\xa1\xed\x1f\x91\xa7\x13\xc7\xbf\x5e\x89\x40\xc4\x44\x06\x96\x52\xc7\x48\x43\xb6\xf4\x96\xa9\x10\x01\x5b\x7b\x41\x96\x8a\xe4\x0d\xa3\x22\xd5\x4e\x18\x2c\xbd\x95\xc9\x37\xaf\x64\x60\x53\x70\x3a\xdf\x78\x7b\x0b\xf6\xff\x9f\xeb\x3f\xb2\x2f\x3a\x2f\xf4\xad\x6c\x82\x70\xb5\x06\x93\x86\x2b\xd5\x40\xfd\x49\xdb\xa3\x34\x7c\x10\x81\xed\xb2\x2e\x8a\x1b\x08\xe1\x6e\xd4\xd2\xf5\xa9\x50\xb6\x97\x2a\x49\x3c\x16\xaa\x8c\xbd\x2e\x35\xee\x25\xa9\xad\x1b\xbc\x5d\x38\x79\xce\x3e\xcb\x57\x3f\x79\x26\xb5\xb9\x7e\x0b\x55\xc3\x57\x47\x9c\x32\xaf\x6d\x94\xee\xd7\x2a\x03\xb5\xd0\x14\xe4\x2d\xa8\x12\xb2\xb3\xd4\xb9\x83\xc3\x42\xcf\xa5\x06\x93\x69\xcf\x2c\x6e\x53\xd4\x5f\x25\xee\x2e\x54\xe2\x4f\xe5\xfb\xf3\xe2\xc1\x4f\xf7\x9e\xaa\xcb\xec\x05\x85\x01\xb1\x9f\xb7\x0b\xb9\x50\x6d\x37\x61\x97\x36\xd1\xbb\x4a\x0f\x1a\x8b\x23\x6b\x26\x6f\x0c\xc6\x76\xb9\x64\x9d\x04\x9c\x44\x6c\xd2\x67\xe4\x82\x94\xff\xaa\x49\x79\x10\xcf\xba\x00\xb5\x7d\xf0\xf7\x0b\xd3\xe5\xef\x17\xba\xbe\xf4\xee\x82\xd4\x74\x40\x94\x4b\x52\xdb\xfb\x8f\x66\x8e\x16\x80\xa9\xbb\x5b\x18\x3d\x35\x08\xc5\x12\x9d\x7a\xdb\xd8\x5b\x51\xe7\x3e\xd7\x33\xa6\x74\xea\x94\xad\xbd\x24\xa1\xdb\xae\xa4\xd8\x37\xb9\x55\xcc\xf2\xeb\x47\x1b\x86\xd1\xa2\xf6\x44\xf5\x69\xb4\xb8\x61\x89\xc8\x93\xd8\xcb\x03\x2d\xf6\x9c\x34\x2f\xef\x4f\x45\xf8\xf5\x82\xb5\x35\x1b\x9e\xf5\xe6\x52\x78\xa0\x5c\x40\x43\x3c\x8a\xf8\x39\xbd\xf7\x82\x55\x63\x33\xc1\x57\xdd\xa2\x7e\x46\x04\xf5\x4e\xce\xa8\xde\xc9\x8b\x96\xbf\xcf\x17\xc2\x6f\x75\xf9\xd3\x13\xfb\x5d\xfe\xaa\xf6\x3f\x99\x2f\xd7\xfc\x87\xb7\xce\xd6\x2c\xc8\xd6\x0b\xb9\x48\x96\xf6\x30\x4d\xd4\x68\x51\x2d\x6b\xe2\xb5\x6a\xb4\x54\x6d\xf0\x4f\x4b\x25\x46\x7b\xb2\x2d\xaa\xb4\xc7\xb6\x6c\x42\xb5\xd5\xef\x05\xfb\xa7\xb9\xa5\xfe\x69\xaa\x8b\x04\xf9\xe8\x9b\xc2\x1f\x6a\xa1\xaa\xd5\x49\xf7\x87\xc3\x03\xb3\x9c\x73\x49\x28\xe1\x6b\xb9\xcb\xbc\xd4\xb3\x22\xb3\x6a\xa5\x14\xee\x45\x2e\xeb\xc8\x57\xab\xbe\xc8\x49\x93\xea\x73\x9a\x2a\x45\x52\xf5\x5d\x89\xca\xaa\x6f\xe2\x49\x15\xca\x0f\x8a\x37\x84\x14\x53\xd6\x61\x16\xd0\x63\x54\x2f\x5f\x67\x91\x7c\x99\xda\xd0\xf2\x37\x6f\x8c\x6c\xa2\x74\x55\x4e\x97\x93\xf9\xb6\x59\x49\x52\x2e\x59\x7a\x7e\x2a\xa4\x84\x2a\xa5\x46\x79\x47\x39\x65\xed\xba\xa4\x43\xa8\xfb\xd4\xb1\x7e\x6d\x65\x09\x53\x95\x21\x49\x45\xbc\xf6\x02\x61\x65\xf1\x92\x4a\x43\x92\xd0\x23\xf7\x7c\xa9\xcf\xe6\x96\x03\xd9\x65\xe7\x3e\x0c\x13\x2a\x37\x2e\x9f\xa3\x25\x20\x3d\x17\x72\x58\x78\xbc\xca\xc8\xa0\xc0\x03\xd7\xdc\xb6\x34\x48\xb2\x6f\xba\x3d\xf6\xd1\xf9\xe8\x7e\x5a\x32\xbb\xa4\xf2\x53\xc9\x68\x27\x1b\x1d\xf0\x12\x26\xd6\x51\xfa\x5c\x56\xa3\xac\x5d\x80\xa7\xf2\x06\xdf\xd7\xa1\x7d\xa2\x9c\xb7\xdc\x10\xe4\x94\xec\x67\xd7\xa5\x2d\xff\xaf\x85\x94\xfc\xa4\x4f\xf2\x43\x80\xe4\xc1\x8c\xc4\x06\xdb\x76\x2b\x96\x5a\x85\x2d\x0d\x99\x97\x24\x99\x36\x4f\x78\xc1\xca\x17\xf9\x0e\xb1\x3a\x82\x59\x70\x97\xc6\xfe\xff\x56\x76\xcf\xbc\xf2\x38\x39\xd9\x88\xc8\x64\xfd\x48\x32\xe1\x56\x0a\xcb\x64\x85\xc9\x16\x89\xfc\x70\x90\xda\x1e\xb8\x05\xe7\x80\x6f\xda\x80\x92\x84\x6b\x91\x7a\x6b\x21\xfb\xbe\x14\x71\x4c\x85\x96\x54\xcd\xfa\x82\xf8\x9f\xab\x07\x72\x46\x45\x90\x64\xb1\xb0\xa5\x00\xb4\x82\x63\xe0\x86\x1a\x35\xd5\x65\xda\x98\xa4\xca\xb0\x64\xcd\x7d\x5f\xc4\xcc\xb9\xcf\x82\x07\x62\x8c\x9c\xc9\x43\x94\xf9\x3c\x5e\x99\x89\xa6\x1d\xaf\x1e\xaf\x6c\x45\x89\x10\xb4\xf0\xa2\x30\x49\x3c\xb9\xe0\xf4\xb0\xd1\x82\x2b\xee\x2f\xe5\x87\xe6\xe6\xd6\x22\x7a\x8f\x70\xd5\x7c\x90\xf2\xac\xc5\x73\xbd\x86\xf5\x5d\x48\xad\x7e\xe2\x89\x91\x61\x8d\x45\x4c\x8e\xc9\xb6\x7e\xa2\xb4\x76\x9e\xc8\x09\x76\x32\x5f\xd5\xbf\xca\x97\x4d\xa3\xbb\x40\x0e\x54\x4f\xd7\x22\xca\x80\xa1\x0c\x18\xca\x80\xa1\x0c\xd8\xe9\x2c\x05\xb9\x68\xa0\xad\x55\xea\xaa\x96\xf7\xe5\x5b\x29\x0a\x3d\x25\x86\x87\xab\x71\x09\x1d\x27\x8b\xed\x2d\xc8\x53\x46\x9e\xc7\xf2\xe8\x8d\x8b\x07\x3a\xb7\x2b\xa3\x2c\xa6\x9b\x67\xd9\x93\x62\x21\x56\x5e\x10\x68\x6b\xc0\xbd\x97\xa4\x61\xfc\x3c\x67\x1b\x4d\x93\xa2\xae\x3c\x3e\xde\xb1\x4b\x29\x4d\x90\xb3\x5b\xc1\x29\xdd\x58\x1f\x0a\xe2\x02\x3d\x5f\x1e\x4b\xe4\x0a\x1d\xc6\x72\xbd\x2c\xb8\x14\x5b\xc3\x80\xfd\x2b\x0b\xe3\x6c\x7d\x49\xc1\x40\x4b\x9f\xaf\xde\xab\xc7\x7a\xf2\xc0\xfa\xa3\x7e\xee\x93\x60\x89\xb7\x56\xfe\x7b\x24\x6d\x3d\xd1\xbd\x24\x98\x93\xc5\xb1\x08\x52\xff\x99\xdd\x73\xd2\x2e\x99\xc3\x9d\x7b\x41\x22\x84\x95\x64\xf4\x13\x49\xd8\x0e\xa5\x3a\x4a\x12\x6a\x65\x93\x79\xca\xe4\x41\x9f\x52\x18\x41\x2c\x12\x8a\x27\x58\x79\x8f\x22\x60\xf1\x63\x93\xd5\xb5\x61\xfd\xea\x49\x99\xf7\xd6\x42\x8a\x5a\x46\x2f\x96\xb3\x77\x95\x2f\x2d\x2d\xee\xd0\x55\x9b\xa8\x4d\x6b\x34\x7f\x23\x61\xd3\x02\x8c\xc5\x8a\xc7\x2e\x79\x5d\xc8\x45\x15\x3c\x33\xee\xa4\xde\xa3\x97\x3e\xcb\x63\xd0\x0b\xcc\xff\x35\x19\xa7\x54\x35\xb1\x5f\x3d\xf8\xef\xca\x7c\x19\xc6\xf9\x2e\x0b\xf5\x21\x26\x3f\xb7\x20\x11\x51\xcd\xa7\x3a\x74\xf5\x6a\x4c\xef\xc5\x5a\x09\x85\x49\x1a\x0b\xbe\xa6\xe1\x71\xdd\xb7\x5a\xec\x7a\xab\x3f\x2b\xaf\x65\x79\x19\x14\x0c\x9a\xec\xab\xaa\x0d\xb5\x69\x25\x6d\x32\x84\x4f\x1b\xbe\x79\xec\xc5\xd7\x69\x25\x61\x86\x5b\x09\xaa\x00\x6e\x7e\x61\x6f\x15\xc0\x5c\xa4\xea\xd6\x83\xa3\xda\x21\xa1\xd7\x82\x80\xca\x7a\x16\xeb\x6b\xdc\x88\xf9\xe1\x92\xc9\x36\xd7\xf4\xc3\x90\xcf\xd8\xf4\x1a\x85\xef\x05\x7c\x2f\xa6\xe2\x7b\x01\x6f\x05\x78\x2b\xc0\x5b\x01\xde\x0a\xf0\x56\xe8\xdd\x5b\x01\x18\x1c\x64\x14\x64\x14\x64\x14\x64\x14\x64\x14\x64\x14\x64\x74\xe7\x25\x00\x58\x01\x58\x01\x58\x01\x58\x01\x58\xb1\x03\x56\xec\xfc\x82\x7c\xd9\x7b\x35\xf0\xff\xb9\x3d\x06\x75\x9e\x5d\xfe\xf6\xb0\xa9\x88\x0d\x5e\x2d\x18\xac\x7f\xf5\x92\xb3\x8c\x60\x95\xe7\xd8\xd0\x01\x48\x83\x04\x83\x48\xc8\x37\xba\x84\x7c\x61\xd2\x32\xe6\x52\xaa\x08\xe3\x35\x89\x96\xfa\x78\xcb\x4c\x6b\xa0\x49\x50\x8a\xbd\xaa\x77\xe8\x21\xa0\x68\x02\x01\x45\xc8\x82\x82\x2c\x28\x15\x8d\x19\xb4\x60\x36\x8e\x34\x28\x8d\x1a\xfc\xd3\xc1\x06\x2b\xc7\xd8\xa1\xb4\x78\x4a\x72\x2f\x89\x1b\xc3\x94\x7b\x5f\xb1\x97\xe4\x6e\xd1\x99\xf2\x4f\x94\xc2\xa5\xae\x70\x55\x4c\xdb\xd2\xb3\x70\x35\x92\xfc\x18\x10\xa9\x8a\x93\x3c\x58\x91\x0a\x11\xc9\x67\x14\x91\x8c\xd0\x2b\x84\x5e\x21\xf4\x0a\xa1\x57\xd0\x06\x77\xed\xa2\x41\x06\x2f\xf4\xa3\x69\x21\xf6\x62\x67\xec\xc5\x40\x15\x2f\x6b\x8b\xee\xa6\xa6\x58\x59\xd2\xaa\xa7\x37\x55\x95\x12\x6b\x37\xcc\xa2\x20\x7f\x88\x1f\xe4\x3c\xb5\x90\x3f\x71\x27\x9d\x33\x76\x2b\xff\x35\xbf\x5f\x73\x8f\x0c\x75\x09\x73\xfc\x2c\x49\x45\x9c\xdf\x2a\xba\x16\x81\xef\x3d\x08\x36\xb3\x2d\x9d\x49\xe1\xd1\x08\x3c\x73\x76\xe7\xf3\x20\xd0\xce\x0f\x24\x92\x70\x5f\x49\x41\xd7\x3f\x37\x39\xa6\xa9\x8d\x3d\x09\x0b\x76\xd0\xac\xac\xbd\x30\xc3\x27\x7b\xca\x6e\xd5\x88\xc9\x0b\x22\x4a\xcc\xe8\x68\xff\x22\x2a\xec\xe0\xf0\xa0\x20\x36\x3f\x77\x3c\x50\xb2\x31\xd3\xa5\xda\xc3\xbe\xc5\x60\x70\x3b\x51\x1d\xbb\x5e\x38\x73\xb1\x90\xdd\xce\x06\xa0\x92\x5d\x75\x9f\x01\xce\x51\xc9\xae\x9d\x4a\x76\x4d\x44\xab\xca\x02\x76\x93\xc2\xfd\xa8\x5d\x07\x3b\xf5\xf9\xa1\x7f\xd4\xae\x6b\x73\xdd\xa0\x76\x1d\x14\x23\x28\x46\x55\x03\x39\xa2\xe2\x75\x2d\xa8\x46\xff\x3f\x7b\xff\xd6\xdb\x38\x92\xec\x7d\xa3\xf7\xf5\x29\x12\x9e\x0b\x55\x61\x6c\x79\xb9\xf0\x02\xd3\xa8\xc6\xbe\x70\xd7\x61\x76\xf5\x9a\x46\x19\x55\x8d\x5e\x37\x6e\x3c\x2b\x45\xa6\x68\x6e\x53\x99\x7c\x78\xb0\xdb\xb3\x31\xdf\xfd\x45\x46\x1e\x48\x4a\x94\x44\xc9\x94\x44\x49\xff\xb9\x69\x4f\x89\x4c\xe6\x39\x23\xe2\x17\x91\xb1\xab\xec\x75\xdb\x19\xc5\x5a\x93\xd6\x9d\x94\xec\x06\x57\x4d\xc8\x6b\xe7\x21\xaf\x0d\x48\x2c\xc2\xe9\xed\x7f\x81\xab\x66\xad\xec\x93\x12\x37\x76\x9d\xb2\xee\xb0\x7e\x8f\xd7\x79\xc0\x93\xba\xaf\xe3\x8e\x60\x1e\x7d\x66\x31\xe9\x6e\x2f\x54\xef\x07\x35\x01\x5b\xd0\xda\x15\x5d\x16\x4a\x8f\x43\x2c\x23\x5a\xd8\xd4\x6d\x67\xb8\xa4\xfb\x42\x2b\x55\x77\x2e\x59\xd9\x73\xf3\x72\x9f\x6c\x65\xf1\xd3\xa0\x2a\xed\x6d\x06\x55\x01\x55\xe9\x87\xaa\xbc\xea\x8c\x5b\x87\x57\x16\x0f\xb9\xa3\xd4\xd3\xc1\x58\xa0\xb3\x9f\x9f\xce\x0e\xc6\xd2\xe7\xbc\x01\x63\x81\x95\x06\x2a\xd2\x4e\x55\xa4\xfe\x20\xcb\x4e\x95\xa4\x5d\x51\x96\x57\x5a\x2b\xd6\xe1\x96\x13\x91\xe5\x5e\xb3\x5a\x20\xc0\x41\x80\x3b\x22\x01\x6e\x40\x72\x12\x8e\x73\xff\xcb\x4e\x8f\xf3\x03\x51\x17\x08\x20\xbd\x62\x97\x1d\x88\x1f\x6f\x58\x2f\xdc\xc5\xc4\xb4\xed\x1e\xbc\xd0\x77\x76\x45\x5e\x4c\x23\xb0\x11\x01\xa6\x22\xa8\x05\x41\x2d\xc0\x2f\xc0\x2f\x07\xc4\x2f\xaf\x3a\xe9\xd6\xf2\x97\xc5\xa3\xee\x28\x95\x76\x00\x18\xe8\xef\xe7\xa7\xbf\x03\xc0\xf4\x39\x6f\x00\x60\x60\xb1\x81\xa2\xd4\xd6\x91\xc3\xe3\x2f\xc7\x18\xe4\xf2\x5a\x9b\xc5\x5a\xfe\x72\x22\xb2\x1c\x82\x5e\x20\xbf\x9d\x87\xfc\x36\x20\x31\x09\xa7\xb9\xff\x05\x41\x2f\xb5\xb2\x4f\x4a\xfc\x38\xc6\xa0\x17\x7d\xee\xc7\x01\xcf\x45\xb1\x5b\xac\x62\x52\xc6\x66\x36\x51\x9e\xbb\x7a\x56\x4d\x99\x6e\x1c\xfb\x6e\x6a\xb1\x5a\x44\xd1\x45\x18\xf9\xa4\x7a\xfc\x8b\xca\x6e\x93\xc4\xcb\x2b\x83\xa0\x2a\x4b\x5f\x38\xd3\x04\x58\xd5\x68\x21\xff\x55\xcb\x63\xbd\x6c\x0d\xad\x0b\x68\xc7\x04\x87\x6e\xe3\xa5\x54\x7c\xbf\x28\xf5\x38\xe3\xd9\x63\x5e\x19\x84\xcc\x3a\xa7\x0c\xbf\xb9\x15\xa8\x5e\x52\xc1\xee\x2f\x7e\xf9\xf6\xed\xbf\x7f\xbb\xfd\xfe\xdf\xf7\x17\x55\x8e\x5d\x73\xdb\xae\x22\x79\x38\x9e\xa5\x89\xa0\x64\xba\x13\x5f\xea\x8c\xbf\xb0\x38\x92\xe6\xae\xf3\x38\x37\x06\x0d\x2d\x3a\x55\x8f\xf0\x4c\xb0\x7a\x2e\x52\x93\xb8\x76\x94\xb3\x30\xce\x83\x4c\xe8\x3a\x57\x99\xd0\x6b\xe2\xb7\x4d\xa0\xdb\x2c\xc8\x27\xc4\xe4\x85\xc9\x0b\xeb\xae\xa0\x8c\x65\x21\xb2\x27\x9e\x5c\x32\xa9\x32\xaa\x16\x65\x5c\xf5\x59\x78\xe7\x13\x39\x53\x9a\xfc\x17\xe6\xda\x6c\x33\x1e\xfb\x7c\xab\xb9\x16\xc7\x95\xac\xae\x54\xb7\x89\x79\x6d\x3e\xd1\xc6\xed\xde\xfa\x57\xea\x82\xd0\xe7\xfd\x9f\x0a\x5e\x94\x99\x60\x11\x2f\x04\x9b\x1b\x08\x5b\x92\x90\x5a\x96\x34\x09\x6e\xd3\xd8\x54\x6e\x59\xb1\x1b\xa2\x99\x96\xe1\x6f\xe7\x34\x6d\xe6\x9f\x1e\xb0\xd3\xef\xf5\x1c\xc9\xc6\xc2\x58\xbb\xfe\x3e\x17\x85\x49\x48\x6c\x93\x5c\xeb\x0e\x6f\x64\x47\xf6\xf7\x94\x9b\x4e\x19\xb3\x1f\xb1\x0c\xc4\xdc\xcd\xf6\x76\x34\xad\xec\xdd\x4c\xbd\xdc\xc8\x3e\xed\x2b\x62\x5e\xa5\xc2\xb9\x56\x06\x9f\x62\x55\xe6\x36\xe5\xb6\xcb\x85\xab\x57\x43\x95\x10\xd9\xfc\x56\xad\x3f\xf6\x56\xfc\x15\x88\xb4\xca\x02\x6a\x8a\x54\x53\xff\x91\x77\xfe\xea\x6d\x5b\x3f\x93\x96\x9b\xf0\x23\x9f\xaf\x4a\xac\x57\x96\x30\xb3\xc1\x6b\x93\x7e\x0a\x55\x66\x82\xf9\xd7\xf4\x1b\xa4\xa4\x88\x8c\x19\x85\xd4\x65\xcd\x0e\x4b\x41\xe9\xdc\xff\x4a\x63\x9b\x92\xe0\x6d\x24\xa4\xc8\x08\x2b\x4d\xb5\x66\x5a\x28\x36\x8d\xa7\x85\x10\x92\xcd\x62\x59\x16\x22\x7f\xc7\x28\x15\x7a\xa0\xe4\x34\x8e\x5c\x26\x03\xa3\x39\xb9\xb4\xe6\xd5\xe4\x6c\xae\x22\x73\xa0\xf9\x4c\xbb\xff\xcf\xcd\x7f\xb1\xef\xf6\xc6\xf1\xcf\xba\x0a\x22\xb4\x7a\x6f\xa1\x22\x53\x41\xfb\xa4\x6f\x51\xa1\x1e\x85\xf4\x4d\xb6\xa9\x97\xa5\x10\xe1\x5c\xc6\xe6\x84\xd2\xb1\xc7\x85\xd1\xdf\x32\x91\x17\xdc\xa4\xf9\x8e\x4d\x22\x5d\x9f\x9d\x7a\x31\x3d\xf7\x98\x7d\xd3\x9f\x7e\x8e\xdd\xa5\xf9\xf6\x2b\x7a\x64\xec\x36\x60\x2c\xb3\x36\x29\xb2\xc9\x48\xed\x15\x4d\xaa\xa1\x4b\xfb\x5c\x53\x40\x75\x63\xa9\x71\x6b\xbb\x85\xca\xa5\x0a\x93\x55\xd8\x4d\x6e\xca\xea\xfe\x28\x5e\xcc\x95\xf0\xfe\x9f\x13\x5e\xe8\xef\x57\x29\xaa\x9f\x1f\x62\x93\xfd\x3b\x96\xb5\x0e\xf1\xcf\xfb\x89\x5c\xcb\xe9\x9c\xb3\x2b\x2f\xc7\x99\x5b\x67\x33\xb1\x61\x66\xee\xb9\xce\x58\x4c\xca\x6d\xaf\x97\x27\x81\x86\xb4\x60\x3d\x21\xf5\x7f\xcd\xa0\x3c\x8a\x17\x9b\xe6\xdc\x17\x7c\x7f\xe1\x9a\x7c\x7f\x61\xb3\x98\x2f\x4f\x7b\x4e\x1b\x44\x33\xf1\xb9\x3f\x23\x68\xe4\x68\x02\xb8\xec\xce\xb5\xde\x33\x9d\x50\x4f\x04\x6b\x97\x8d\x3f\x39\xec\xad\xfa\x76\xc4\x8c\x25\xa6\x60\xb3\x38\xcf\xe9\x44\x68\x98\x83\x36\xdd\x79\xdd\xd4\xeb\x07\x8b\x77\xdb\x6d\x6f\x59\x2e\xaa\x9b\xf6\xf5\xda\xc8\xe2\xa0\xf0\x59\x8a\xf5\xf6\xe4\xdb\xee\x13\x4b\xbc\xd8\x71\x32\x90\xa2\x99\xe5\x43\x3c\x89\xec\xa5\x78\x88\x65\xb4\x69\xf3\xa9\xb4\x1f\xb6\x36\x47\xd3\x07\x09\x9f\x88\xa4\xb7\x3e\xa0\xd2\x0e\xd1\x07\x26\x47\x3d\x99\xcd\x66\xfc\xaf\x78\x56\xce\x98\x2c\x67\x13\x91\x99\xd6\x5b\xdd\xc3\xf4\x0f\xe5\x5c\x26\x58\x58\x65\xf8\xa7\x6d\x98\x0e\xe2\x58\xd7\xc2\xa4\x9d\x58\xdc\xdd\x28\x07\xf8\x83\x60\xff\xeb\xe6\xfa\xff\xba\xcc\x17\xb2\xea\x6f\x97\x94\xc2\x24\x8d\x31\x0b\x90\x76\xa2\x80\x4b\x97\x5a\xa6\xda\x4b\x73\x3e\xd3\x9b\x4b\x5c\xc4\xfe\xd0\x35\xb5\xd4\xe2\x81\xa8\x76\x4b\xfd\x69\xd3\x16\x3d\x4c\x5a\x48\x2d\x0a\x23\xae\x99\xb6\x9b\xc3\xd6\xb4\x4d\x3c\x9b\x84\xee\xb2\x6e\x4e\xd5\x1b\xdd\x4c\x95\x92\x8a\x31\xad\x7c\x5b\xa6\xfa\x63\x26\xb9\x8e\xfe\x97\x77\x6e\x77\x33\x12\x21\xa7\x0d\xdd\xbd\x5d\xcf\xd1\x3f\x8d\x93\x42\xe8\x33\x4e\x9f\x3b\x7a\x1b\x09\x9a\x32\x6c\x43\x0a\x31\xc6\xe7\xc0\xfb\x55\x35\xcf\x28\x93\x22\xa3\x10\xd9\x2c\x96\xc2\x9f\xe6\x0d\xa1\x88\xf6\xd2\x27\x1e\x27\x5a\x6a\xac\xe4\x73\xdd\xe4\xe0\x41\xa9\x9c\xd2\x62\xeb\x72\xec\x1e\x6a\xc7\x42\x77\x0b\xcf\xa2\x92\xc4\x76\x2e\x43\x77\x42\x51\x27\xe9\xb6\xd9\xfa\xf8\xa2\xab\xde\xfd\x3a\x65\x7e\x4a\x55\xc2\x88\x93\x6f\xe6\x1a\x10\xe7\x4c\xcc\xd2\xe2\xa5\x29\x88\x79\xe9\x9b\x17\x5a\x66\x59\xd5\xa0\x55\x87\x41\x3c\x9d\x3b\x0a\xcc\xe9\xe1\xe7\xa5\x4f\x53\x6f\x8f\xbb\x2a\xc7\x4d\x2d\x83\x3e\x9d\x28\x25\xd9\xd8\x7d\xdd\xfd\xc1\xe6\x45\xbe\x42\xb1\x38\xcf\x4b\xab\x04\xc4\x32\x4a\x44\xb5\x42\xbc\x94\xe1\x26\xdc\x95\xb3\x3b\x53\xb6\x7c\xf7\xc9\xcd\x4e\x5a\x77\xc8\x92\x8e\x91\x97\x22\x6c\x3d\x6e\x49\xd7\x29\x27\xb9\x7e\x58\x16\xbe\x05\x61\x8d\x4c\xff\x6e\xd5\x94\x5c\xcd\x44\x11\xcf\x84\x6e\xfb\x54\x64\x19\x25\x01\x32\xb9\xd5\x6b\x02\x44\x25\x60\xe8\x11\x15\x32\x2f\x33\xe1\xef\xa8\xb7\x22\x92\x33\xaa\x9b\x5e\x33\x4d\xa6\x85\x49\xc2\x10\xcb\x67\x3c\x49\x44\xc6\x82\x87\x52\x3e\x9a\x84\xf6\x4c\x6f\x9b\x2c\xe1\x59\xe4\x06\x9a\x56\xbc\x29\xde\x68\x64\xb9\x10\x34\xf1\x52\x95\xe7\xb1\x9e\x70\xb6\xdb\x68\xc2\xd5\xd7\x97\x71\x83\x0a\x2b\x9d\x8c\xbe\x23\x42\x33\x1e\x24\x7e\xdb\x03\xde\xce\x61\xeb\xe6\x47\xb5\x7e\xe6\xb9\x03\x3e\x4e\xef\xd4\x7d\xb2\x28\xe1\x18\xb9\x9f\xe7\x7a\x80\x83\x32\x31\xb9\x99\xaa\x69\xb3\xf1\xee\xaf\x3b\xa9\x7d\xd7\x6f\x4b\x4e\x75\x46\x3e\x7e\xdd\x5a\x43\xa4\xae\xda\x6d\xac\x08\x6d\x56\xbf\x5e\x82\x97\x7a\x77\x7d\xce\x1d\xda\x31\x83\xad\x82\xa0\xcc\xfc\xc2\xe2\x05\x23\x5f\x3a\x3d\x9a\x59\x7d\x8e\x70\x2f\x19\x36\xcf\x7a\x57\x96\x97\x22\x27\x22\x8a\xa5\xb4\x34\xee\x21\xce\x0b\x95\xbd\x8c\xd9\x5c\xd5\xf4\xe9\xa9\xe7\xd0\x07\x76\xa5\x37\x28\x72\xde\xa8\x0d\x81\xa3\x7f\xb5\x1d\x88\xca\xcf\xc4\x4c\x91\x73\x9f\xca\x78\x24\xd8\x84\xeb\x93\x50\x49\xf6\x7f\x4b\x95\x95\xb3\x2b\xf2\x71\x9f\x26\x3c\xfa\xd9\x14\x1b\x17\xa3\x9c\xfd\x97\x2d\xf7\x59\xb0\x3c\x9e\x19\x7f\x14\xda\xc0\x9f\x69\xaa\x0b\x16\x94\x59\x26\x64\x91\xbc\xb0\x07\x4e\xc9\xe3\x58\xc0\x83\x07\x41\xbb\x92\xdf\x1c\x6d\x89\x74\x7e\x2b\x26\x95\xa4\x43\xaf\xb5\xca\xbc\x60\x89\xd0\xa2\x34\xd7\xbd\x22\x72\xf2\x90\x8d\xe2\x27\xad\x09\x3d\x6d\x3a\x89\xe6\xc4\xf1\x7d\xce\xa6\xdf\xe3\x99\xd0\xfb\xb5\xd3\xd7\xf5\x78\x5d\x57\x93\xc9\xee\x99\xb4\x66\x73\x93\x9c\xca\x29\xc0\xee\x98\xa6\x29\x97\x89\x88\x67\x21\x21\x43\x3d\x8d\xe4\x0b\xe3\x41\x11\x3f\xc5\xc5\x8b\xde\xd8\x63\xe9\xfe\xdf\xa6\x3d\x53\x98\xea\xb5\x25\xb5\xdb\xf5\xae\xf1\x3f\x46\x6f\x52\x59\xb5\x92\x94\x4d\xcf\xa5\x9f\x9b\xd0\xc9\x62\xc6\xcd\x78\x44\xdb\x19\x57\x3c\x88\x99\x39\x4b\x8c\xbd\x9b\x3a\x24\x0c\x2f\xed\x6e\x7d\x69\x9f\x9d\xa9\x27\x12\x48\x6a\x9a\x14\xfb\x61\x72\x9d\xcc\xab\x67\x9b\x76\x5a\x8b\x79\x7e\x6b\x73\x96\xfd\xeb\xcf\x15\x14\xa6\x1e\xeb\x72\x40\x0c\xd3\xcd\x55\xa4\xe2\x30\xb5\xe7\x01\x62\xe6\x7b\x7e\x78\x20\xa6\x36\x5c\x20\x31\x2d\x8f\x0d\xc5\x43\x0c\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\xa6\x6d\x36\x01\xc5\x2c\x5d\x67\x40\x31\xdd\x50\x0c\x7d\xee\x5a\x9f\xb7\x99\xd2\xa7\x9d\x56\xb7\x75\xb5\x77\xcb\x65\xac\xb8\x23\xc3\xf8\x29\x0e\x4b\x9e\xd4\x47\x89\x7b\x95\xe6\xa3\xaf\xd5\x77\x5b\xab\x31\x0b\x7d\x4e\xff\x0f\x5e\xf8\x1c\x51\x71\xa3\xca\x92\xd5\x30\x4d\x78\x9c\xc3\x62\x99\x17\x82\x37\x4e\x89\x79\xd8\xf3\x5c\xdd\xf0\xb2\xf8\xf5\x7f\xc5\x39\xc0\xcf\xc2\xd0\x0e\x06\xfc\xac\xb8\xb5\x86\xb6\x83\xcf\x5a\xe1\x39\x47\x0a\x44\x83\xb7\x7b\x14\xb4\xb8\x60\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x7a\xda\x6d\x41\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\xd6\xf6\x55\x67\x22\x14\x72\x31\xd3\xe2\xf3\x8e\x03\x74\xba\x81\xa0\x4f\x54\x99\x1f\xa2\xd8\x27\xff\xf1\x1f\x05\xf6\x69\x1b\x48\x60\x1f\x60\x1f\x5a\x32\x7e\x9d\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\xf4\xb4\xdb\x82\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\xac\xed\xab\xee\xb4\x47\xa4\x89\x7a\xd1\x42\xd4\x20\x70\x8f\xaf\xcd\x5e\x79\x8f\xff\x2a\x80\x4f\xdb\x50\x02\xf8\x00\xf8\x18\xe0\xe3\x17\x0a\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x4f\x4f\xbb\x2d\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\xcf\xda\xbe\xea\x4c\x7c\xa4\x27\x1b\xd7\xff\x7f\xff\xf7\x7f\x70\x11\x5c\x0b\x18\xf2\x10\x28\x6c\xbf\x12\x0e\x68\x08\x68\x08\x68\x08\x57\xc0\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x0d\x18\x8f\x00\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x1d\x23\x22\xb2\xad\xd6\x15\xa0\xa1\xe4\x65\xf1\xc0\xf2\x40\xa5\xe2\x92\xe5\x65\x40\xd6\x7d\xd2\x57\x04\x9f\x19\x6b\x6f\x9a\x29\xea\xe5\xb6\xa6\xa5\xbc\x78\x68\x6f\x99\xb7\x8c\x36\x7f\xd6\xf3\x4f\x4b\xfa\xb6\xf6\x7b\x3c\xef\xc0\xc6\xc0\xc6\xc0\xc6\xda\x67\x13\xd8\xd8\xd2\x75\x06\x36\xb6\x1b\x36\x66\x7e\xff\xcf\x1e\x10\x59\x9d\x8b\x49\x77\xea\xab\x29\x7b\x8c\x65\xb8\x2b\x3e\x76\x59\x89\xfb\xa4\xd2\x58\xd1\x50\x6b\x0c\x95\x1e\x33\x6a\xe8\xbf\xb5\xb2\x7b\xa0\x6b\x20\x6b\x20\x6b\x47\x41\xd6\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x8e\x83\xaa\x11\x4e\xb3\x3d\xb0\xce\xe6\xd0\x85\x9c\x0d\x05\x9a\x81\x16\x82\x16\x82\x16\x82\x16\x82\x16\x82\x16\xee\x8d\x16\x22\x81\x56\x45\xf6\x1a\xa9\xb4\x00\xf5\x00\xf5\x8e\x02\xea\x21\x75\x16\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\xde\xe0\x79\x1e\xb8\x17\xb8\x17\xb8\x17\xb8\x17\xb8\x17\xb8\xd7\x01\xb8\xd7\x40\x82\xe3\xfa\x65\x5f\x7b\x8e\x89\x6b\x23\x04\xa0\x66\xa0\x66\x73\xa5\x0e\x88\x9a\x81\x98\x81\x98\x81\x98\xb9\x1f\x41\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x06\x49\xcc\xea\x11\x70\x4b\x4c\x0d\x08\x7c\x6b\x6f\x33\x00\x20\x00\x20\x00\x60\xd7\x49\x04\x00\x08\x00\x78\xaa\x00\x50\xa4\x89\x7a\xd1\x32\xf2\x20\x22\xdf\x7c\x6d\x0e\x14\xfa\xe6\xbf\x8f\xd8\x37\x50\xbc\xa3\xa1\x78\x7b\x88\x7d\xf3\x0b\x03\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\xaf\xa7\xdd\x16\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\xef\xec\x50\x1e\xd8\x17\xd8\x17\xd8\x17\xd8\x17\xd8\x17\xd8\xd7\x21\xd8\xd7\x50\xa2\xdf\xfa\xe5\x5f\xfb\x0e\x7f\x6b\x83\x04\x20\x67\x20\x67\x73\xa5\x0e\x88\x9c\x81\x9a\x81\x9a\x81\x9a\xf9\x1f\x41\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x06\x49\xcd\x1a\x01\x70\x4b\x6c\x0d\x88\x80\x6b\x6f\x33\x28\x20\x28\x20\x28\x60\xd7\x49\x04\x0a\x08\x0a\x78\xa2\x14\x30\x13\xc4\x7b\x06\x92\xfb\xed\xbb\xa9\xcd\xc1\x92\xbf\x55\xdf\x47\x04\x1c\x38\xde\xd1\x70\xbc\xdd\x47\xc0\x55\x0b\x03\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\xaf\xa7\xdd\x16\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\xef\xec\x58\x1e\xd8\x17\xd8\x17\xd8\x17\xd8\x17\xd8\x17\xd8\xd7\x21\xd8\xd7\x40\x22\xe0\x7a\xe6\x5f\x7b\x8e\x80\x6b\x85\x04\x20\x67\x20\x67\x73\xa5\x0e\x88\x9c\x81\x9a\x81\x9a\x81\x9a\xf9\x1f\x41\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x06\x49\xcd\xea\x11\x70\xcb\x6c\x0d\x88\x80\x6b\x6f\x33\x28\x20\x28\x20\x28\x60\xd7\x49\x04\x0a\x08\x0a\x78\xa2\x14\x30\x2f\x78\x21\xa6\x65\x32\x90\x10\xb8\x1f\xb6\x3a\x07\x8b\x81\xab\x55\x00\x41\x70\x40\x79\x47\x83\xf2\x76\x1f\x04\x57\x5b\x19\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\x3d\xed\xb6\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\x67\xc7\xf3\xc0\xbf\xc0\xbf\xc0\xbf\xc0\xbf\xc0\xbf\xc0\xbf\x0e\xc2\xbf\x06\x12\x06\xd7\x37\x03\xdb\x73\x1c\x5c\x3b\x27\x00\x3d\x03\x3d\x9b\x2b\x75\x40\xf4\x0c\xe4\x0c\xe4\x0c\xe4\xac\xfa\x11\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x6c\x90\xe4\xac\x1e\x09\xb7\xd4\xd8\x80\x50\xb8\xf6\x36\x03\x05\x02\x05\x02\x05\x76\x9d\x44\x40\x81\x40\x81\xc7\x8e\x02\x91\xf5\xed\x8f\x9b\x66\xae\xb7\x2f\x2a\xbb\x4d\x12\xcf\xf0\x72\x80\x3b\x80\xbb\xa3\x00\x77\xc8\xfd\x06\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x37\x7c\x76\x07\xe2\x03\xe2\x03\xe2\xd3\x3e\x9b\x40\x7c\x96\xae\x33\x10\x9f\x4d\x88\x0f\x6e\x39\x4c\xf3\x3f\x6e\xe6\xee\x36\x04\xf4\x99\x1f\x4c\x40\x1f\x40\x1f\x44\x6c\x81\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x0c\x91\x78\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x34\x5b\x03\xea\x03\xea\x03\xea\x03\xea\x73\x8e\xd4\xa7\xd4\xeb\xa2\xb0\xd5\x27\x6b\x7a\xac\xae\xb7\x22\x3e\xbb\x26\x1d\x5d\x68\x52\x24\x0a\x16\xcb\xa9\xca\x66\x7e\x7e\x73\x66\xcc\xd7\xcb\x81\x4f\x24\x8a\xdb\x46\x37\xdc\xde\x7d\xfd\xe7\xfc\x3b\x87\xe2\x3b\x47\x8b\x5d\x7c\x27\x1e\x3b\x74\x69\x4c\x8d\xda\x7b\x6f\xea\xdf\xee\xb2\xaa\x9e\x6e\x8e\x7b\x61\x35\x94\x27\xb3\x67\x6e\xb2\xaa\xfe\xb8\xb9\xbd\xfb\xfa\xbd\xed\x4d\xac\xad\xcd\xd7\x96\xeb\x48\xca\xb9\x77\x52\x4b\xac\x49\x38\xb7\x59\x65\x64\xcc\xce\xc4\x53\x2c\x9e\x1b\xce\x0b\x5b\x20\x46\x92\x86\xad\x86\x75\x49\x6e\x0a\x01\x2f\x9c\x40\xde\xb0\xa1\xd6\x99\xde\x44\xb0\x54\x1f\xfb\xb9\x56\x46\xd8\xad\x64\xb1\x34\x04\x43\x65\xac\x94\x1e\x82\x84\x2c\xcc\x5e\xbe\x97\x92\x85\x71\x26\xb4\x70\x25\xbc\x65\x9d\x24\x54\xad\x0f\x5b\xb4\xe0\x66\xa5\x35\xe4\xb2\x69\x99\x91\xf1\x24\xcd\x54\x20\xf2\xdc\x0a\xf1\x35\x1b\xd0\x98\xfd\x41\x5f\x24\xa3\x14\x69\x9a\x5a\x82\xbf\x4d\x92\x0f\xa4\x96\x86\xd9\x0b\xcb\x4a\xc9\xf2\x82\x6b\xa9\xc8\xe9\xe2\xb6\x38\x11\x6e\x28\xad\x98\x76\xec\x53\xe6\x25\x1b\xca\x6f\x5c\xf2\x48\x64\xc6\x1a\x68\xee\xbe\xc8\x73\x15\xc4\xa4\xde\x7a\xbb\x1b\x27\x83\xa9\xca\x98\x9e\x2c\xc5\x8b\xd7\xf7\x67\xfc\x51\xf7\x5b\xf1\x20\x72\xe1\xe4\x43\x2d\x2b\x3b\x02\x45\x10\x66\x22\x18\x49\xc4\x64\x63\x53\x19\xbb\x79\xff\x93\x7e\x36\xe3\x01\xa1\xb2\x44\xc9\xc8\x48\x83\x64\x07\x0b\x94\x2c\x78\x2c\x8d\x22\x4a\x5b\x65\xf5\x2c\xe1\x03\x0b\xf2\xd8\xe4\x85\xd1\x22\xf9\x70\x7d\x1d\xa9\x84\xcb\x68\xac\xb2\xe8\x3a\x7d\x8c\xae\x4b\x19\x07\x2a\x14\xd7\x7f\xfb\x9a\xdf\xe9\x52\xb6\x32\x4e\xdb\x8e\xd9\xe7\x80\x1c\x8b\x82\xee\x84\xe1\xca\xf1\x40\xe5\x3d\xfb\x34\x19\xcb\x18\xe3\xec\x77\xbd\x11\x7d\xa7\x8d\x68\xc5\x49\x69\x1e\x9f\x3f\x2c\x97\xbc\xbb\x64\x0f\x63\xf3\xdb\xba\xe9\xd3\x89\x0a\x5f\xe6\x4f\x24\xd7\xa9\x6d\xbf\xad\xb8\xc7\xe5\x55\x67\xd9\x78\x6e\xaf\x7e\xba\x19\xd7\xdb\xb7\xfc\xfc\x6a\xed\x6e\xc8\x0b\xbd\xf6\xf1\x65\xb3\xd6\xeb\x65\x84\x8f\xc6\xf2\x3b\xbc\xaa\xbf\x5f\x5b\xf5\xdb\x20\x10\xe9\x00\xeb\x7e\x8c\xa2\xd9\x7a\xe7\x33\xda\x5a\xfb\xf0\x3b\x6b\x93\xf4\xda\x1d\xd1\xda\xb7\xcd\x0e\x8e\x68\x1b\x08\x98\x13\x51\xf0\x73\xd7\xe5\xa8\x0f\xa0\xd0\xd5\x7f\x81\x42\xe7\xc7\x6a\x7e\xd7\xa0\xd9\xf2\x3a\xad\xce\x2c\x3a\xa8\x76\x50\xed\xa0\xda\x41\xb5\x3b\x6a\xd5\x8e\xb6\xb2\x13\xd7\xef\xa8\x8d\x50\xf2\x76\xaf\xe4\x6d\xd2\xd1\x43\xd4\xf4\x5e\x51\xff\x61\xa8\x7b\x5b\x37\xe0\x68\xa5\xb7\x23\x56\xfc\xe6\x9a\xb2\x4e\xfb\xd3\x1d\x0f\x32\xee\x7b\x01\x60\xdc\xfd\x02\x30\x7e\xd1\x58\x1f\xdd\x75\xbb\x85\x25\x75\x96\x58\xdc\xf7\x02\xa8\x78\xe3\x7f\x30\xa2\x54\x63\x55\x9f\x26\x1b\x41\xf1\xb6\x25\xb6\x24\x9b\x6b\xa2\x02\x9e\xe4\x25\xb9\x14\xf3\x20\x10\x79\x0e\xe3\x0a\x8c\x2b\x30\xae\xec\x6f\x40\x90\xb9\x03\x56\x25\x6f\x55\xfa\x97\xde\x8e\x7f\x98\xed\xf8\x96\xb6\xe3\x0d\x4c\x4c\x35\x99\xa2\x4a\x2e\xdd\xa5\xc4\x23\xb6\x39\x55\x47\xdd\xd3\xcd\x78\x69\x5b\x97\x4b\x02\xad\xa3\x03\xc9\x6b\x67\xfd\x3d\x10\x0b\x54\xcf\xcd\x38\x98\x21\xaa\xd7\x76\x1c\xa1\x20\xbc\x5f\x4b\xd4\xbc\x5c\xdd\x6e\x88\xea\xb0\xe3\x6e\xef\x8e\xd0\x26\xda\xe7\x22\x99\x42\x84\x87\x08\x0f\x11\x1e\x7c\x74\x30\x92\xec\x0f\x91\x4c\x7b\x10\x64\x3b\x14\x73\x2a\xd2\xeb\xb2\xa6\x42\x78\x1d\x48\x77\x0f\x51\x76\x7d\x75\x2b\x86\x21\xba\xbe\xb2\x19\x90\x5c\x7b\x91\x5c\xd7\x6f\xb6\x3b\x13\x5c\xb3\x32\x11\x90\x5b\x21\xb7\x42\x6e\x85\xdc\x3a\x14\xb9\xf5\xbb\xde\x93\x5e\x2d\xb6\x2e\x29\xe5\x04\xa5\xd6\x7a\x4b\x21\xb4\x0e\xa3\xb7\x07\x2e\xb3\x6e\xd5\x88\xc1\x89\xac\x5b\xb4\x02\x12\x6b\xdf\x12\x6b\xfb\x3e\xdb\xb3\xc0\x0a\x2b\x2b\xa4\x55\x48\xab\x90\x56\x07\x23\xad\xf6\x60\x61\x3d\x13\xeb\x2a\x2c\xab\x7b\x13\x52\x8f\xdf\xaa\x7a\x02\x16\x55\x58\x53\x0f\x2d\x9b\xee\xcf\x92\x7a\xae\x17\x12\xd4\x8e\x31\xdc\x47\x00\x57\x7a\xd6\x75\xe7\xd8\xf0\x3a\x82\xa5\x2b\x0e\x4e\xf5\xd0\x15\xa1\x2b\x0e\x50\x57\x84\x53\x3d\x94\xe4\xde\x9d\xea\x69\xcf\x3f\x4b\xcf\x7a\x13\xe2\x0e\xf7\xfa\xbd\xea\xd1\x5b\x77\xfa\x00\x35\xea\xbe\xda\x32\x08\xdd\xba\x9f\xc6\x1c\xab\xac\x3c\x44\x55\x7b\x0b\x97\xfb\xd7\x5e\x04\xe1\x54\x00\x38\xdf\x43\xd4\x87\xa8\x0f\x2c\xb4\xb6\x35\xfb\x94\x78\x7b\x72\xbe\xa7\x1d\xee\x7c\x3c\xf0\xcd\xb9\x0e\x37\xfc\xfd\x0b\xb9\x27\xe1\x8b\xdf\x53\x53\x06\x24\xe2\x9e\x89\x57\xfe\x31\x48\xb8\x9b\xbb\xe6\xef\x40\xc0\x85\x93\x3e\xe4\x5b\xc8\xb7\x90\x6f\x87\x24\xdf\xbe\xc2\x49\x7f\x5e\xbc\x3d\x6d\x4f\xfd\x85\x23\x1d\xee\xfa\x7b\x17\x6e\x8f\xd6\x67\xbf\x9f\x96\x0c\x53\xb4\x3d\x61\xef\xfd\x23\x93\x6c\xbb\xb9\xf0\xf7\x26\xd8\xc2\x6a\x0b\xa9\x16\x52\x2d\xa4\xda\xc1\x48\xb5\x7d\x59\x6c\xcf\xc9\x5a\x0b\x4b\xed\x7e\x85\xd9\x13\xb1\xd2\x9e\x8a\x85\x16\xd6\xd9\x41\xc8\xb0\x3b\xb4\xcc\xaa\x3c\xe0\x49\x2c\xa3\xe3\x76\xef\xdf\x32\xf5\x84\x6b\x3c\x12\x4f\xb8\x5f\x90\x78\xe2\xa2\xb6\x28\x3a\xfb\xf0\xfb\x55\x74\x8e\xd9\x26\x5c\xe3\x91\x6b\xa2\xf1\x3f\x04\xc8\x54\x63\x55\x4d\x92\x4d\x32\x4d\xd4\x57\x15\xd5\x58\x2b\xb4\x49\xaa\x42\xf7\x9b\x51\x32\x36\x5f\x6d\x5d\x75\xa7\x24\xce\x0b\xad\x67\x3f\xf3\x22\x78\x60\xc6\xeb\x3f\xd7\x07\x8c\x3e\x99\xd9\xff\xd7\x57\xe9\x4e\x85\xb7\xbe\x4a\x2b\xd6\x8b\x2e\xaf\xb1\x60\x96\x14\xf1\x45\x65\xb7\x49\xe2\x7d\xc1\x07\xb1\x96\x96\xbe\xa0\x3f\xf6\x73\x5e\x64\x82\xcf\xfe\x3f\xd4\x51\x1b\x97\xdd\x7c\x7b\xd8\x8b\x76\x5c\x9b\x97\x7a\xa5\x2e\x19\xc1\x93\x5e\xb5\xeb\x65\x64\x3d\xd1\x7b\x92\x91\xfd\x59\xdc\x2a\x1a\xaf\x5f\x83\x1d\x22\x61\x2b\xeb\xcb\xe6\x36\x59\x9e\x24\xea\xf9\x7f\xf4\xc4\xfd\x45\xa9\xc7\x19\xcf\x1e\x73\x67\xf5\xcc\xed\xbe\x21\x9e\x84\xd4\xff\x87\x4c\x80\x2f\xa9\x60\xf7\x17\xbf\x7c\xfb\xf6\xdf\xbf\xdd\x7e\xff\xef\xfb\x8b\x31\xfb\x21\x32\x5d\x41\x63\x09\x0c\x15\xd9\x6c\xe3\x59\x9a\x88\x99\x90\x05\x9b\xf8\x52\x67\xfc\x85\xc5\x91\x54\x99\x60\xc5\x43\x9c\xb3\x69\xc2\x23\x32\xf6\x55\x8f\xf0\x4c\xb0\x5c\xbf\xc5\x0b\x32\x79\xe5\x54\xf4\x28\x67\x61\x9c\x07\x99\x20\x45\x83\x7d\x4c\x62\xaa\x4f\xcd\x44\xcc\x73\xbd\x4d\xce\x15\x94\x89\xa2\xcc\xa4\x08\x75\x61\x5c\xbe\xb0\x3c\x15\x41\x3c\x8d\x03\x16\xcb\x42\x64\x4f\x3c\xb9\x64\x52\x65\x54\xad\xe2\x41\xbc\xb8\x42\xaa\xef\x1a\x43\x6e\x2e\x64\x48\xef\xbb\x36\x9b\xfe\x60\x61\x99\xc5\x32\x62\x9c\xe5\x22\xcf\xa9\x62\x5f\xa7\xa6\x61\x71\x6e\x2a\x65\xba\xef\xd2\xb6\x36\x16\x49\xa8\x7f\x32\x5d\x10\xda\xc7\x05\x9b\x0a\x5e\x94\x99\x60\x11\x2f\x04\x9b\x1b\x08\x5b\x92\x90\x5a\xa2\x09\xc9\x86\x9d\xc6\xa6\x72\xcb\x8a\xdd\xd0\x18\xd8\x32\xfc\xed\x96\xc1\x89\x52\x89\xe0\xb2\x6f\x43\xe7\xef\x0f\x82\xec\xbc\xb1\x2c\x05\x53\xf4\xcf\x6e\x60\x27\x7a\x1c\x0a\xf6\xfc\x20\xa4\x1e\xcb\x2c\x16\x4f\xba\xc3\x67\x8a\xc6\x36\x2f\x93\x22\x67\xd3\x4c\xcd\x6a\x23\x36\x66\x3f\x62\x19\xd8\xf9\x65\xec\xce\x71\xee\x46\xd3\x5a\x8b\x2f\x59\x60\x27\x90\x1e\x79\x32\x34\x97\xb9\x19\x76\x5f\x11\xf3\x2a\x15\xce\x59\x9a\x89\xa7\x58\x95\x39\xa3\x6e\x74\x3c\x81\x56\x43\x1c\x9a\xec\x8b\x89\xfd\xad\x5a\x7f\xec\xad\xf8\x2b\x10\x69\x61\xc2\xe8\xbc\x15\x5c\x4d\xfd\x47\xde\xd1\xdc\xaf\xcd\x36\x5d\x9d\x4c\x50\x60\x1e\x9f\xaf\x4a\xac\x57\x96\x30\xb3\xc1\x13\x0f\x3f\x85\xec\xcc\x16\xe1\xc2\x6b\xfa\x0d\x32\xab\x8b\x8c\x19\x68\xf2\xfc\x20\x88\x75\x84\xa5\x60\x85\x62\xe2\xaf\x34\x36\x27\x3c\x7b\x1b\x09\x29\x32\x9e\x24\x2f\x6c\x1a\x3f\xd1\xaf\xd3\x78\x5a\x08\x21\xd9\x2c\x96\x65\x21\xf2\x77\x5a\x96\xa0\xba\x4d\xe3\xa8\xb4\xaf\x19\x5b\x3f\x53\xb2\xd6\x96\xcb\x85\x55\x64\xce\x3f\xcb\x11\x38\xfb\x7f\x6e\xfe\x8b\x39\x01\xf1\xb3\xae\x82\x08\x2d\x9b\x29\x54\x64\x2a\x68\x9f\xf4\x2d\xa2\xd4\xe6\xbe\xc9\x66\x0c\x99\x14\x22\xcc\xcd\x53\x04\x88\x64\xc1\xf4\xd6\x7d\xa9\x3b\x8c\x88\x43\x26\xf2\x82\x67\xb4\x9b\xc4\x19\xfd\x46\x05\xab\xb2\x68\x8e\x38\xad\xa3\x31\xfb\xa6\x3f\xfd\x1c\xe7\xe2\xb2\xfe\x15\x3d\x32\x76\x1b\x50\x54\x37\x2a\xc7\xee\x92\x15\x1a\xa1\x1a\xea\xe1\x11\xf1\x53\x1d\x99\xe8\xc6\x52\xe3\xd6\x76\x0b\x95\x4b\x15\xd6\x33\xdd\x4f\x6e\x29\xfe\x2a\xd8\xa3\x78\xb9\x64\x93\xb2\xa8\xfe\x39\xe1\x85\xfe\x7e\x2e\x79\x9a\x3f\xa8\xe2\x92\x3d\x3f\xc4\xc1\x03\x6d\x06\xb2\xd6\x21\xfe\x79\x3f\x91\x6d\xf5\xcd\x12\xba\xf2\x72\x21\x6d\xe0\x7a\xe7\x34\xb6\xf3\xf0\xd2\x32\x39\xfd\x97\xd2\xeb\x27\x11\x85\xde\x4e\xa7\x85\x30\x73\x7a\x1a\x67\x79\x31\xdf\x19\x86\x7d\xc5\x32\x48\xca\xd0\xec\x59\x06\xa4\x19\xf9\x87\xb8\x8d\x9e\x90\xfa\xbf\x66\x50\x1e\xc5\x8b\xd9\xb0\xab\x82\xef\x2f\x5c\x93\xef\x2f\xc6\xf7\xf2\x5e\xfe\xde\xd8\xeb\xf4\x2a\xc8\xcb\x34\x55\x19\xa1\x29\xbd\x41\x98\x93\x2a\xce\x69\x13\xaa\xce\x08\x1a\x39\x9a\x00\x76\x37\xae\xf7\x9e\xe9\x04\x9a\x83\x7f\x98\x13\xd6\x2e\x1b\x7f\x72\x4c\x5e\xea\x23\x66\x68\x61\xc1\x66\x71\x9e\xd3\x89\xd0\x40\x96\x9b\xee\xbc\x6e\xea\xed\x13\x2b\xdd\xb2\x5c\x24\x82\x08\x5e\xa1\x68\x6d\x64\x71\x60\x56\x82\x51\x15\xa6\x55\xdb\xdd\xac\x30\x7d\x10\x67\xa6\xfb\xf3\x31\xfb\x24\xa6\x9c\x66\x8e\xde\x3e\x9e\x44\xf6\x52\x3c\x68\x59\x72\x1b\xb2\xf6\xc3\xd6\xe6\x68\xfa\x20\xe1\x13\x91\xf4\xd6\x07\x54\xda\x21\xfa\x20\x89\x67\x71\x61\x40\xef\x8c\xff\x15\xcf\xca\x19\x93\xe5\x6c\x22\x32\xd3\x7a\xab\xaa\x98\xfe\xd1\x5d\x41\xa7\x98\xdd\x9e\x02\x9e\x24\xb4\x0d\xd3\x41\x1c\xeb\x5a\x30\xf1\x17\x6d\xba\x8b\xa2\x93\xe9\xd7\xff\x75\x73\xfd\x7f\xed\x1a\xb6\x87\x05\x95\x37\x13\x05\x0f\x79\xc1\xf5\xd7\xb8\x5d\x80\xb4\x13\x05\x5c\xea\x9d\xa4\xcc\xeb\x7b\x69\xce\x67\x7a\x73\x89\x8b\xd8\x1f\xba\xa6\x96\x5a\x3c\x10\xd5\x6e\xa9\x3f\x6d\xda\xa2\x87\x49\x0b\xa9\x45\x61\xc4\x35\xd3\x76\x73\xd8\x9a\xb6\x89\x67\xda\x76\xb8\xac\x23\x7f\xbd\xd1\xcd\x54\x29\xa9\x18\xd3\xca\xb7\x65\xaa\x3f\xf6\x6f\x91\x29\xf3\x2f\xef\xdc\xee\x66\x24\x42\x4e\x1b\xba\x7b\xdb\xcd\x1d\xbd\xb3\x4d\xe3\xa4\x10\xfa\x8c\xd3\xe7\x8e\xde\x46\x82\xa6\x0c\xdb\x90\x42\x8c\x83\x44\x20\x9c\x0f\x42\xf3\x8c\xd2\x35\x08\xb5\x88\x31\x8b\xa5\xf0\xa7\x79\x43\x28\xa2\xbd\xd4\xd9\xc1\x2a\xf9\x5c\x37\x39\x78\x50\x2a\x17\xb4\x8b\x15\xca\xed\xa1\x76\x2c\x74\xb7\xf0\x2c\x2a\x49\x6c\xe7\x74\x28\x51\x83\xa8\x93\x74\xdb\x6c\x7d\x1a\x26\x36\xd3\xbb\x5f\xa7\xcc\x4f\xa9\x4a\x18\x71\xf2\xcd\x5c\x03\xe2\x9c\x89\x59\x5a\xbc\x34\x05\x31\x2f\x7d\xf3\x42\xcb\x2c\xab\x1a\xb4\xea\x30\x88\xa7\x73\x47\x81\x39\x3d\xfc\xbc\x8c\x4a\x9e\x71\x59\x08\xe7\x75\x42\x60\xdd\x8e\x94\x5f\xf6\x74\xa2\x94\xe4\x07\xe2\xeb\xee\x0f\x36\x2f\xf2\x15\x8a\xc5\x79\x5e\x5a\x25\x20\x96\x51\x22\xaa\x15\xe2\xa5\x0c\x37\xe1\xae\x9c\xa7\x84\xd6\x3a\xfc\x27\x37\x3b\x69\xdd\x21\x4b\x3a\x46\x5e\x8a\xb0\xf5\xb8\x25\x5d\xa7\x9c\xe4\xfa\x61\x59\xf8\x16\x84\x5e\xad\xb3\x3d\xa8\xc7\x4a\xcd\x44\x11\xcf\x84\x6e\xfb\x54\x64\x7a\x86\xea\x55\x38\x27\x51\x55\x02\x86\x1e\x51\x21\xf3\x32\x73\xdd\xc7\x9d\x88\xe4\xdc\x40\x4c\xaf\x99\x26\xd3\xc2\x24\x61\x88\xe5\x33\x9e\x24\x22\x63\xc1\x43\x29\x1f\x73\x83\x38\xf4\xb6\xc9\x12\x9e\x45\x6e\xa0\x69\xc5\x9b\xe2\x8d\x46\x96\x0b\x41\x13\x2f\x55\x79\x1e\xeb\x09\x67\xbb\x8d\x26\x5c\x7d\x7d\x95\x69\x48\x5e\x2a\x5e\x27\xa3\xef\x88\xd0\x8c\x07\x89\xdf\xf6\x80\xb7\x73\xd8\x5e\x80\x41\xb5\x7e\xe6\xb9\x73\x4a\x72\x7a\xa7\xee\x93\x45\x09\xc7\xc8\xfd\x3c\xd7\x03\x1c\x94\x09\x7d\x31\xae\xa6\xcd\xc6\xbb\xbf\xee\xa4\xf6\x5d\x5f\x6b\xa8\x0b\x1e\x27\xe7\xe3\x55\xd2\xad\x35\xe4\x4d\x56\xed\x36\x56\x84\x36\xab\x5f\x2f\xc1\x4b\xbd\xbb\x3e\xe7\xce\x19\xc9\x0c\xb6\x0a\x82\x32\xf3\x0b\x8b\x17\x5a\x65\x2b\x62\x3d\x9a\x59\x7d\x8e\x70\x2f\x19\x36\xcf\x7a\x57\x96\x97\x22\x27\x22\x8a\xa5\xb4\x1e\x63\x0f\x71\x5e\xa8\xec\x65\xcc\xe6\xaa\xa6\x4f\x4f\x3d\x87\x3e\xb0\x2b\xbd\x41\x95\x32\x17\x45\x6d\x08\x9c\x87\x5a\x6d\x07\xa2\xf2\x33\x31\x53\x85\x60\xba\x4c\x1e\x09\x36\xe1\xfa\x24\x54\x92\xfd\xdf\x52\x65\xe5\xec\x2a\x13\x3c\x24\x23\xca\xcf\xa6\xd8\xb8\x18\xe5\xec\xbf\x6c\xb9\xcf\x82\xe5\xf1\x2c\x4d\xfc\x29\xf7\x4c\x53\x5d\xb0\xa0\xcc\x32\x21\x8b\xe4\x85\x3d\xf0\x27\xbd\x71\xb0\x80\x07\x0f\x82\x76\x25\xbf\x39\xda\x12\xe9\xfc\x56\x4c\x2a\x49\x87\x5e\x6b\x95\x79\xc1\x12\xa1\x45\x69\xae\x7b\x45\xe4\x74\x77\x4c\x14\x3f\x69\x4d\xe8\x69\xd3\x49\x34\x27\x8e\xef\x73\x36\xfd\x1e\xcf\x84\xde\xaf\x9d\xbe\xae\xc7\xeb\xba\x9a\x4c\x76\xcf\xa4\x35\x4b\x8a\x8b\xde\x6b\x3c\xaf\xa5\x53\x8e\xa6\x5c\x26\x22\x9e\x85\xe4\xe4\xa6\xa7\x91\x7c\x61\x3c\x28\xe2\xa7\xb8\x78\xd1\x1b\x7b\x2c\xdd\xff\xdb\xb4\x67\x0a\x53\xbd\x1f\x22\x50\x32\x5c\x62\xa2\xd9\xd1\xae\xf1\x3f\x46\x6f\x52\x59\xb5\x92\x94\xe9\x01\x7a\x6e\x42\x27\x8b\x85\x66\x74\x42\xd8\x19\x57\x3c\x88\x99\x39\x4b\x8c\x79\x9c\x3a\x24\x0c\x2f\xed\x6e\x7d\x69\x9f\x9d\xa9\x27\x12\x48\x6a\x9a\x14\xfb\x41\x4b\xe7\x65\x5e\x3d\xdb\xb4\xd3\x5a\xac\xf9\x5b\x9b\xb3\xec\x5f\x7f\xae\x27\x3d\x4b\x6e\x3d\xeb\x02\x80\xcc\xc1\xdf\x2f\x03\x32\x65\xb2\x40\x25\x5a\xcf\xb0\x13\x76\x73\xf4\x63\x8a\x69\xc0\x9f\x8f\xbe\xc8\xea\xd6\x9f\x0e\x05\x77\x75\xb0\x83\xa1\xfa\x7c\x0c\xd5\x2b\x56\xf3\x06\xc6\xea\x35\xeb\x7b\xf5\x0a\x9f\xa3\x5a\xbd\x78\x7b\xee\x84\xad\x7f\xa2\x95\xf8\x8d\x16\x46\xde\x91\xd1\xad\x5e\x5a\x30\xc2\xc3\x08\x0f\x23\x3c\x8c\xf0\xa7\x66\x84\xef\x76\xaa\xb4\x1a\xe2\x57\xeb\x1b\xaf\x39\x49\x10\x13\xb5\x18\x13\xd5\x6d\xa0\x5a\xe2\xa2\xf6\x36\x4c\x7b\x23\x27\xdd\xba\x62\x39\x3d\xd9\x5b\x8f\xfc\x5e\xd7\x81\x63\xc9\x72\xa3\x9a\xb2\x89\x98\x1a\xc9\xd9\x5b\xd9\x2a\x51\xc2\xee\x5e\x34\x75\x6a\x31\x61\x52\xc9\x2b\x29\x22\x4e\x13\xd4\x6a\xb1\xf5\xd8\x31\x63\x71\xf7\x4b\xc3\x6a\x34\xf1\x6c\x26\xc2\x98\x17\x22\x79\xa9\x44\xda\xea\xc8\x8d\x93\x4b\xab\xa5\x52\xa7\xb3\x28\xe3\x01\xad\x9a\x58\x85\x5e\x20\xa8\x0e\x6d\xd2\x17\xdc\x2c\x2d\x73\x5d\xc9\xfa\x70\x71\xfd\xa6\x6b\x90\xfd\xc8\xd4\xec\x81\xae\x88\xb1\xa9\xe7\x4c\x70\xd9\x5a\xc7\x2d\x86\x99\xea\x7c\x47\x55\x6e\xd3\xfc\xd7\xe8\xfe\x43\x99\xfe\x9b\x40\xb3\x6e\xfd\xb2\x1c\x9c\xed\x6d\xfa\x03\xa1\x01\xa1\x01\xa1\x01\xa1\x01\xa1\xed\x0c\xa1\x75\x3c\x0b\x16\x30\xda\xfe\x8e\xc5\x4f\x22\xcd\x84\x16\x4a\xc2\x0f\x2c\x4d\x04\xcf\x85\xdf\x82\xee\x32\x95\xf2\x88\xa4\xa3\x3b\x95\xc4\xc1\x4b\xc3\x0e\xe6\x26\x5d\xe8\x0b\xd0\xd3\xee\x66\xfc\x8f\x31\xfb\x61\xf6\x33\x23\xba\xa4\x42\xea\xc5\x52\x9d\xa9\x82\xa9\x2c\x7d\xe0\xd2\xd9\xe5\xb2\x52\x5c\x4f\x79\xe2\x74\xe5\xfb\x0b\xf3\xf3\xfd\x05\x9b\xc6\x92\x27\xf1\xbf\xdd\x41\x32\x11\x8c\x87\x21\xcd\xce\x6b\x63\x74\x0f\x2b\x35\xcc\x14\x3f\xca\xab\x97\x8c\x7e\x3a\x66\x9f\x63\xda\x1c\x6b\x55\x57\xd9\x62\xdb\x68\xfb\x31\xa6\x22\xa3\x1e\x93\x8e\xa2\x8a\x87\x6d\x06\xd4\xb4\xe0\x93\x6b\xfb\xde\x4c\x7c\x8b\x8a\x19\x35\x5d\x2f\xd8\x07\xf5\xcc\x22\x9e\x4d\x78\xd4\x30\xa4\x7b\xa5\x46\x64\x53\x95\xcd\xf4\x98\xb4\xf6\xd7\xb7\xb9\x16\x2d\xef\x2e\x12\x7a\x9d\xc4\x9a\x9a\xbe\x8d\xb5\x34\x19\xc4\x61\xa5\x0a\x93\xac\x40\xc6\x09\x3f\xc6\x39\x05\x11\xd2\xaf\x4e\x1a\x18\xd7\x06\xd3\x9d\x23\x4e\xd5\xbe\xf2\x36\xe6\xe6\xc7\xc6\xcc\xc4\xe6\xd2\xd9\x54\xd7\xec\x46\xa6\x0d\x23\x76\x65\x27\x60\x73\x82\xe6\x3f\xb3\xd1\x2f\x3c\x78\x8c\x32\x55\xca\x50\x3f\x45\xb6\x5a\x7a\x68\xae\xe3\x8c\x08\x69\xe5\xe3\x66\x21\xae\x05\x13\x5f\xd2\xcf\x6c\xf4\x45\x65\xa2\x56\x2c\x0b\x78\x1e\xf0\x50\xb7\xde\xf6\x8f\x31\xe7\x53\x79\xb9\x51\x3d\x17\x0a\x9c\xfa\x32\xb6\x99\x90\xe9\xfc\x74\x3f\xa0\xa5\x00\xbc\xfb\x78\x78\x77\xb7\xd9\xb5\x8a\x79\xef\x4f\x99\x3f\x24\xfd\xee\xd6\x4f\x2b\x08\xf8\xfe\x0e\xfc\xa1\xb2\xf0\x6e\x5d\xb8\xc8\xc3\x5f\x7b\x9c\xb6\x02\x68\x44\xcb\x6e\x48\xf4\x7e\x14\xbc\x28\xbb\xa2\xbc\x53\x0c\xb7\x33\xa7\x77\x25\x59\x1d\x61\xe8\xdd\xf1\xc5\xee\xc2\x69\x03\x4e\x1b\xa7\xed\xb4\x01\x37\x07\xb8\x39\xc0\xcd\x01\x6e\x0e\x70\x73\x38\xb8\x9b\x03\xf8\x39\x90\x2a\x90\x2a\x90\x2a\x90\x2a\x90\x2a\x90\x2a\x90\xea\xd2\x43\x00\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03\xf7\x18\xae\xc2\x29\xb8\xc7\x10\xf7\x18\xd6\x07\xc6\xca\x4e\x26\x6f\x89\x0c\x99\x1e\x26\x96\x07\x2a\x15\x97\x2c\x2f\x03\x3a\xc0\x68\xdf\x17\x7c\x66\x36\xad\x34\x53\x24\xab\xb5\x05\x15\xa7\xbc\x78\x68\x8f\x29\xf6\x11\xbd\xcd\x9f\x57\xe4\x75\x40\xaa\x10\xb6\xef\x54\x21\x9b\xd3\x31\x9f\x2e\x64\xc7\x7c\x6c\x78\x59\x43\x3a\x6c\xa2\xbd\x04\x99\x22\xd0\xa9\x3e\x03\x06\x1b\xe8\x74\xa6\xa9\xa0\x36\x30\x1b\xb7\xa5\x83\x7a\xe5\xf0\x0c\x4a\xc0\x3c\x09\xb9\x6f\xf0\x59\x77\x7a\x6d\xc3\xa1\x52\xee\xf4\xd8\x88\x13\x14\xbe\x7b\x4c\xb4\xb3\x07\xe1\xfb\x0d\xeb\xf9\x62\x1b\xf3\xd0\x7f\xf6\x74\xbf\xcd\x36\x42\x5f\xcb\x9d\x36\x03\x12\xfa\x8e\xe4\xf2\x10\xc8\x75\xf5\x41\x1e\xac\x5c\x87\x70\xed\x33\x0a\xd7\x46\x5c\x1a\xe2\xd2\x10\x97\x86\xb8\x34\xa8\xa4\xcb\x56\xd1\x20\x23\x3b\x0e\xa3\xc8\x21\x30\x65\x5d\x60\xca\xf1\x28\x71\xde\xb8\xde\x7b\x38\x0a\xf9\x25\x34\x65\xb0\xcd\x15\x2e\x5d\xc8\xde\x63\x50\x6a\x82\x8b\xf8\x8b\x3c\xcb\x26\xfa\x2f\x1e\x14\x63\xc6\x3e\xeb\xff\xba\x7f\x9f\xf1\x98\xcc\x8c\x39\x0b\x92\x32\x2f\x44\x56\x1d\x47\xc6\x05\x95\x25\xf1\xa3\x60\x23\x5f\xeb\x91\x96\x3a\x9d\xa4\x34\x66\x77\x09\x97\xd2\x7a\x86\x90\x2c\xc3\x13\x23\x3e\xdd\xfc\xb4\xcd\xfe\x4e\x75\x3c\x90\x94\xe1\x3b\xcd\x0b\xe9\x13\xd7\x7d\xba\xa5\xec\xb3\xe9\x31\x7d\xb2\xa4\xb9\xeb\x1d\xeb\x7c\x55\xe6\x22\x23\xaf\xa9\x4a\xde\x7e\xd9\x71\x47\xe9\xca\x9c\x2e\xf2\x1f\xf6\xf1\x07\x43\xa0\x7f\x66\xc9\x29\xa2\x37\xe3\xe3\x3b\x42\xb6\x80\xf0\x84\x8a\xac\x95\xa5\x53\x65\xba\xd0\xf6\xa1\x80\x76\x78\x18\x1c\x9d\x87\x01\xf9\x31\x6d\x95\xbf\xfa\x8a\xde\xfd\xfb\xea\xdd\x7c\x26\xb2\x48\x74\x7a\x32\x2f\x32\x5e\x88\x28\x0e\xae\xba\xbf\xa3\xff\x7e\xb1\x4f\xd2\xb9\xd1\x45\x4c\x23\xc7\x57\x8a\xab\x33\x3e\x77\xaf\x16\xd9\xe8\xfb\x43\x35\x91\xef\xca\x2f\x62\x85\x4a\x74\xd7\xf4\x8d\x63\x30\x9c\x9f\xb8\xe1\xfc\x7c\x1c\x22\xe6\x42\x58\xdc\xe2\x32\x61\x56\xa9\xf1\x3a\xb7\xa1\xfb\x6f\x97\x6c\x54\xef\xc8\x6c\x68\x62\xab\x79\x42\x6f\x4a\x25\xaf\xcc\xdb\xf4\x04\x59\xee\x73\xf6\xf6\xd7\x5c\xc9\x3b\x13\xc1\xfe\x9b\xde\x12\xed\xdf\x3f\xdc\x46\x59\xfd\xe3\xbb\x21\x79\x6a\x74\x9f\x37\x5f\x54\x16\x10\xda\x88\x14\x0d\xbe\x62\xf7\x17\x53\xfd\x6f\xf7\x17\xec\xb6\xd1\x9b\x63\xf6\xb5\xb0\x1c\x82\x54\x27\xbb\x50\xaf\x78\x40\x03\x40\x31\xd0\x49\x1c\x58\xcb\x2a\x69\x5a\xea\xd9\x8e\xad\x89\x11\x4e\x85\x4a\x13\x31\x66\xe6\x9b\x74\xf5\x81\x9b\x53\x14\x96\xd0\x3a\x10\xfe\xf3\xdb\x74\xaf\xfe\x10\x14\x2e\xf3\x03\x14\xae\xa1\x29\x5c\xe9\x9c\xfb\xfb\xd1\xa8\x5c\x65\xef\x56\xbb\x34\xe1\xc1\xeb\xa5\x40\x5b\xce\xb9\xc9\x81\xf0\x8f\x85\x38\x78\xb6\xe2\xe0\x80\xa4\x2e\x08\x07\xfe\x17\xf8\xc7\x42\xc0\x31\x82\xc2\xd1\x88\x37\x6f\xd8\x6e\x3c\x4b\xaf\x73\x83\xa7\x6b\x0e\xa6\xbb\xc1\x9e\xe6\x3b\xee\xd8\xdb\x2f\x00\xb5\x08\x1e\xfb\x1e\xf6\x8c\x57\xee\x19\xa0\x50\xa0\x50\x9b\xb5\x19\x14\x0a\x14\xaa\x1f\x0a\xd5\xdf\x09\xba\x05\x8f\x6a\x39\x42\x8f\xd2\x1a\x01\x2a\x05\x33\xc4\xf9\x99\x21\x40\xa5\xfa\x9c\x37\xa0\x52\x30\x3c\x41\x01\x3b\x8c\x02\x06\x2a\x35\x47\xa5\xfa\xb4\xab\x6c\xc1\xa7\x4e\x45\x2e\x04\xa5\x82\x78\x78\xb6\xe2\xe1\x80\xa4\x30\x08\x0b\xfe\x17\x50\x2a\x08\x3c\x27\x47\xa9\xe8\x5a\xcc\xa5\x50\x6a\xa7\x18\xca\xde\x1e\x2e\xc3\xf8\x29\x0e\x4b\x9e\xd4\x2f\x66\xe5\x3e\x5f\xc0\x92\x7e\x18\xd7\xc2\xf9\x3f\xf8\x8b\x00\x46\x54\xe6\xa8\xca\x23\xd3\x48\x0c\xe2\xe5\x2b\x16\xcb\xbc\x10\xbc\x61\x52\x9d\x97\xbe\x9e\x17\x6c\x72\x2b\x6e\xe3\xfc\xa2\xb2\xdb\x24\xf1\xc2\xd9\x20\xd0\xd6\xd2\x17\xce\xeb\x4e\xd5\x15\x06\x46\xba\x12\xf8\xf3\x93\x90\xe7\x7c\x9b\x2a\x8d\xe1\xf9\x5c\xa9\x8a\xe4\x6d\x27\x9c\xbc\x6d\x3d\x14\x5b\x97\xb8\x6d\xa5\x65\xad\x07\xe0\x87\x74\x6d\x48\xd7\x86\x74\x6d\x48\xd7\x76\x6a\xe9\xda\xd6\xef\xbc\xad\xa9\xda\x76\xec\x5e\xb1\xb7\x04\x6d\xeb\x9b\xbf\x3c\x39\xdb\x90\xfb\x60\x93\x94\x6c\xeb\xfb\x60\x79\x3a\xb6\x1d\xf7\x01\x92\xb0\x21\x09\x1b\x92\xb0\x21\x09\x1b\x92\xb0\xed\x2c\x09\x5b\x87\xdd\x7f\x21\x01\xdb\xca\x9b\x43\xcf\xc8\xbb\xb2\x5b\x6b\x90\x44\xee\xc8\x92\xc8\xad\x9f\x44\xab\x12\xc8\xed\x78\x36\x1d\x34\x6d\xdc\xfa\x9e\x59\x91\x32\x6e\xd7\xbb\xc6\x50\x13\xc5\xad\xef\xb4\x16\x63\xfe\xd6\xe6\x2c\xfb\xd7\x9f\x5d\x09\xd2\x86\xd1\x4e\x00\x4b\x9b\x38\xf5\xfc\x6b\xce\x3c\x0f\xa4\x04\xa4\xc4\x80\x94\x80\x94\x80\x94\x80\x94\x80\x94\x80\x94\x80\x94\x80\x94\x80\x94\x9a\xdb\xed\x00\x71\x0a\x90\x12\x90\x12\x90\x12\x90\x12\x90\x12\x90\x12\x90\xd2\x31\x22\x25\xdc\x54\x02\x96\x06\x96\x06\x96\x06\x96\x06\x96\x36\x14\x96\xd6\x92\x93\x7a\x47\x48\xad\xce\xd1\xa4\x93\x00\xd4\x94\x3d\xc6\x72\x69\x80\x7b\x2f\x3c\xed\xb2\x92\xff\x49\xc7\xb1\xb2\xa2\x56\x21\x2a\xc5\x66\xd4\x50\x88\x6b\x65\xf7\x4c\xe3\x40\xe2\x40\xe2\x8e\x89\xc4\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x1d\x1f\x85\x43\x32\x04\x20\x46\x20\x46\x20\x46\x20\x46\x20\x46\x20\xc6\x4d\x10\xe3\xfb\x89\x28\xf8\xcd\xf5\x56\xac\xf0\x20\xb7\xbb\xce\x8d\x76\x24\x8a\xa6\xdc\x6e\x06\x76\x05\xe0\x8b\x44\x51\xc7\x7b\xa6\x03\x6e\xef\xbe\x7e\x6f\x7b\x17\x17\xdb\x6e\x48\xd9\x6a\x1d\x49\x41\x8a\xa7\x84\xda\xcc\x54\xa9\xbd\xfc\xa6\x5e\x81\xf5\x8b\xec\x20\xb1\xaf\xc6\xf4\x93\x59\x41\xc3\xe9\x16\x6b\x18\xfd\x8a\xe5\xa3\xcb\x5b\x5c\x3f\x4b\xca\xc1\x35\xa8\xf3\xa3\x33\x98\x35\xdc\xbc\xd8\xd9\x8c\xe2\xb2\xdb\x9d\x4f\x7f\x25\xaf\x27\xe7\xc3\x0d\x5f\x9d\x6f\x0c\xe8\x39\xe8\x39\xe8\x39\xe8\x39\xe8\x39\xe8\x39\xe8\x39\xe8\xf9\xfa\xdd\x16\xf4\x1c\xf4\x1c\xf4\x1c\xf4\x1c\xf4\x1c\xf4\x1c\xf4\xfc\xec\xe8\x39\x38\x2b\x38\x2b\x38\x6b\xfb\x6c\x02\x67\x5d\xba\xce\xc0\x59\x37\xe7\xac\xaf\xb8\x15\xd5\x9c\xfe\xfd\xc2\x21\x53\x26\x0b\x54\xa2\x95\x0d\x3b\x6b\x37\x67\x42\xa6\x98\x45\x2a\xf4\xd1\x97\xbb\x59\x0c\x65\xc7\x04\xc5\x30\x59\x9f\x8f\xc9\xba\x5b\xd2\xdb\x75\x66\xeb\xd7\x66\xca\xbf\x5c\x3e\x19\xb7\xcb\x96\xbd\x13\x06\xff\x89\x96\xe3\x37\x5a\x18\x79\x2f\x09\xb1\x61\x8e\x87\x39\x1e\xe6\x78\x98\xe3\x4f\xcd\x1c\xdf\xed\x54\x69\x35\xc9\xef\x2d\xcb\x3d\x29\x8d\xd6\x10\x71\x49\x97\xd8\x07\x7a\x46\x99\x79\xd0\x68\x5b\x5d\x8e\x98\x08\x96\xea\xde\xca\xb5\xce\xce\x6e\x25\x8b\xa5\xd9\x59\x54\xc6\x4a\xe9\x37\xa7\x90\x99\x04\xfe\x2c\x8c\x33\x2d\xa9\x3d\x09\x3f\xe3\x49\x91\x93\x8c\x4b\xbb\xe4\xdd\xdc\xb0\x1d\xcc\xa6\x65\x46\xab\x2c\xcd\x54\xa0\xe5\x06\xa3\xeb\xd6\x4c\xa5\x63\xf6\x07\x7d\x91\x46\x8b\xe6\x8e\x56\x74\x6f\x93\xe4\x03\x59\x6f\x42\xbd\x4b\x97\x52\x0f\xbc\x56\x1e\xdc\x94\xb4\xc5\x2d\xe6\x30\xef\x30\x50\xa6\x2d\x87\x19\xa6\xbd\x31\x94\x0d\xd2\xff\xb7\x32\x84\xbd\xf5\xc8\xef\x75\x6d\x38\x96\x2c\x37\x4a\x2a\x9b\x88\xa9\x91\x9c\xbd\xbd\xad\x12\x25\xec\xee\x45\x53\xa7\x14\xe6\x70\x98\x68\x3d\x50\x5e\x49\x11\x71\x9a\xa0\x56\x9f\xd5\xaa\xb7\x3b\x41\x8d\xed\xdd\x2f\x0d\xab\xd6\xc4\xb3\x99\x08\x63\x5e\x88\xe4\xa5\x12\x69\xab\x23\x37\x4e\x2e\xad\xbe\x4a\x9d\xce\xa2\x8c\x07\xb4\x6a\x62\x15\x7a\x81\xa0\x3a\xb4\x49\x5f\x70\xb3\xb4\xcc\x75\x25\xeb\xc3\xc5\xf5\x9b\xae\x41\xf6\x23\x53\xb3\x07\xba\x22\xc6\xa6\x9e\x33\xc1\x65\x6b\x1d\xb7\x18\x66\xaa\xf3\x1d\x55\xb9\xcd\x06\xb0\xc6\x0a\x30\x94\xe9\xbf\x09\x3e\xeb\xd6\x2f\xcb\x11\xda\xde\xa6\x3f\x60\x1a\x60\x1a\x60\x1a\x60\x1a\x60\xda\xce\x60\x5a\xc7\xb3\x60\x01\xa8\xed\xef\x58\xfc\x54\xbb\xea\x2e\x4d\x04\xcf\x85\xdf\x82\xee\x32\x95\xf2\x88\xa4\xa3\x3b\x95\xc4\xc1\x4b\xc3\x0e\xe6\x26\x5d\x75\x57\x9e\x9e\x76\x37\xe3\x7f\x8c\xd9\x0f\xb3\x9f\x19\xd1\x25\x15\x52\x2f\x96\xea\x4c\x15\x4c\x65\xe9\x03\x97\xce\x2e\x97\x95\xe2\x7a\xca\x13\xa7\x2b\xdf\x5f\x98\x9f\xef\x2f\xd8\x34\x96\x3c\x89\xff\xed\x0e\x92\x89\x60\x3c\x0c\x69\x76\x5e\x1b\xf3\x7b\x58\xa9\x61\xa6\xf8\x51\x5e\xbd\x64\xf4\xd3\x31\xfb\x1c\xd3\xe6\x58\xab\xba\xca\x16\xdb\x46\xdb\x8f\x31\x15\x19\xf5\x98\x74\x14\x55\x3c\x6c\x33\xa0\xa6\x05\x9f\x5c\xdb\xf7\x66\xe2\x5b\x54\xcc\xa8\xe9\x7a\xc1\x3e\xa8\x67\x16\xf1\x6c\xc2\xa3\x86\x35\xdd\x2b\x35\x22\x9b\xaa\x6c\xa6\xc7\xa4\xb5\xbf\xbe\xcd\xb5\x68\x79\x77\x91\xd0\xeb\x24\xd6\xd4\xf4\x6d\xac\xa5\xc9\x20\x0e\x2b\x55\x98\x64\x05\x32\x4e\xf8\x31\xd6\x87\xb5\x3d\x49\x9d\x34\x30\xae\x0d\xa6\x3b\x47\x9c\xaa\x7d\xe5\x6d\xcc\xcd\x8f\x8d\xd9\x6d\x10\x88\xb4\xa0\xb3\xa9\xae\xd9\x8d\x4c\x1b\x46\xec\xca\x4e\xc0\xe6\x04\xcd\x7f\x66\xa3\x5f\x78\xf0\x18\x65\xaa\x94\xa1\x7e\x8a\x6c\xb5\xf4\xd0\x5c\xc7\x19\x11\xd2\xca\xc7\xcd\x42\x5c\x0b\x26\xbe\xa4\x9f\xd9\xe8\x8b\xca\x44\xad\x58\x16\xf0\x3c\xe0\xa1\x6e\xbd\xed\x1f\x63\xce\xa7\xf2\x72\xa3\x7a\x2e\x14\x38\xf5\x65\x6c\x33\x21\xd3\xf9\xe9\x7e\x40\x4b\x01\xc8\xf7\xf1\x90\xef\x6e\xb3\x6b\x15\xfd\xde\x9f\x32\x7f\x48\x0e\xde\xad\x9f\x56\xb0\xf0\xfd\x1d\xf8\x43\xa5\xe2\xdd\xba\x70\x91\x8c\xbf\xf6\x38\x6d\xa5\xd0\x88\xaa\xdd\x90\xe8\xfd\x28\x78\x51\x76\x45\x79\x27\x1b\x82\x67\x8e\xf0\x4a\xbc\x3a\xd6\x70\xbc\x23\x8d\xf1\x85\x0f\x07\x7c\x38\x4e\xdb\x87\x03\x5e\x0f\xf0\x7a\x80\xd7\x03\xbc\x1e\xe0\xf5\x70\x70\xaf\x07\xe0\x74\x10\x56\x10\x56\x10\x56\x10\x56\x10\x56\x10\x56\x10\xd6\xa5\x87\x00\xa0\x07\xa0\x07\xa0\x07\xa0\x07\xa0\x07\xee\x3b\x5c\x45\x57\x70\xdf\x21\xee\x3b\x7c\xb3\x7c\x88\x70\xc9\xfe\xc0\x2f\x7f\xb0\x7f\xfd\x59\x0d\xb2\xca\x7b\xc6\x68\x46\x8d\x61\x7c\x0b\x62\x66\x5e\xdd\x13\x33\xdb\x2e\xd4\x74\xc5\x14\xdb\xdb\xc6\xda\x4b\x30\x2a\x02\xa2\xea\xd3\x60\xb0\x01\x51\x64\xda\xf8\x8d\x4b\x1e\x89\xcc\x18\xe9\xcc\xe6\x9a\xe7\x2a\x88\x49\xeb\xf4\xe6\x30\x4e\x56\x4d\x95\x31\x21\x0b\x2d\x15\x3b\x35\x7c\xc6\x1f\x75\x2f\x16\x0f\x22\x17\x4e\xb4\xac\x87\xfd\xb8\xf0\x20\x12\xad\xc9\xf4\xa5\x32\x76\xf3\xfe\x27\xfd\x6c\xc6\x03\x62\x5d\x89\x92\x91\x11\x24\xc9\x3c\x15\xe8\x49\x19\x4b\xb3\xa3\x91\xf9\xa7\x7a\x96\xec\xff\x96\xc4\xb1\xc9\x0b\xa3\x13\xf7\xc3\xf5\x75\xa4\x12\x2e\xa3\xb1\xca\xa2\xeb\xf4\x31\xba\x2e\x65\x1c\xa8\x50\x5c\xff\xed\x6b\x7e\xa7\x4b\xd9\xda\x9e\x6c\x3b\xa7\xcf\xe1\x19\x94\xe4\x79\x3a\x02\x61\x57\x61\xf0\x7d\x07\x61\xf0\xa3\x31\x96\x0d\xbd\x21\xef\xd7\x36\xc4\x38\x02\x0f\xbd\x25\xa7\x2a\x9f\x93\xf8\x73\x5c\xf2\xf9\x1b\xb6\x8b\x3b\x72\xcc\x43\xff\xd9\xd3\x55\x39\xdb\x08\x87\xcb\xae\xc7\x19\x90\x70\x78\x24\xf7\x90\x40\xf4\xab\x0f\xf2\x60\x45\x3f\x44\x7e\x9f\x51\xe4\x37\x42\xdc\x10\xe2\x86\x10\x37\x84\xb8\x41\x6b\x5d\xb6\x8a\x06\x19\x24\x72\x18\x0d\x0f\x31\x2e\xee\xc1\x95\x31\x2e\x47\xa6\xd8\x79\x9b\x7c\xef\x91\x2d\xe4\xdd\xd0\x94\xc6\x36\xd7\xbf\x74\x21\x87\x09\x67\xa9\xc9\x31\xe2\x2f\x72\x52\x9b\xe8\xbf\x78\x50\x8c\x19\xfb\xac\xff\xeb\xfe\x7d\xc6\x63\x32\x4c\xe6\x2c\x48\xca\xbc\x10\x59\x75\x3a\x19\x6f\x56\x96\xc4\x8f\x82\x8d\x7c\xad\x47\x5a\x08\x75\x82\xd3\x98\xdd\x25\x5c\x4a\xeb\x64\x42\xa2\x0d\x4f\x8c\x34\x75\xf3\xd3\x36\xdb\x3d\xd5\xf1\x40\x42\x87\xef\x34\x2f\xb3\x4f\x5c\xf7\xe9\x96\xb2\xcf\xa6\xc7\xf4\x41\x93\xe6\xae\x77\xac\x1f\x57\x99\x8b\x8c\x1c\xb0\x2a\xf1\xfb\x65\xc7\x1d\xa5\x2b\x73\xba\xde\x03\xc3\x3e\x0d\x61\x30\x6c\x79\x79\xc9\xc9\xa2\xf7\xe6\x23\x3d\x56\xb6\xe0\xf9\xc4\x9a\xac\x0d\xa6\x53\x8d\xba\x80\xfb\xa1\x30\x7b\x38\x2b\x1c\x9d\xb3\x02\x79\x48\x6d\x95\x55\xfb\x8a\xde\xfd\xfb\xea\xcd\x7d\x26\xb2\x48\x74\x7a\x32\x2f\x32\x5e\x88\x28\x0e\xae\xba\xbf\xa3\xff\x7e\xb1\x4f\xd2\x31\xd2\x45\x74\x23\x97\x5a\x8a\xd8\x33\xde\x7c\xaf\x16\xe3\xe8\xfb\x83\xb6\xa2\xef\xca\xc5\x62\x85\xd6\x74\xd7\x74\xbd\x63\xb0\xad\x9f\xb8\x6d\xfd\x7c\xdc\x2a\xe6\x22\x64\xdc\xe2\x32\x51\x5c\xa9\x71\x6a\xb7\x37\x03\xbc\x5d\xb2\x5b\xbd\x23\xcb\xa2\x09\xdd\xe6\x09\xbd\x29\x95\xbc\x32\x6f\xd3\x13\x64\xdc\xcf\xd9\xdb\x5f\x73\x25\xef\x4c\x80\xfc\x6f\x7a\x5f\xb4\x7f\xff\x70\xbb\x65\xf5\x8f\xef\x86\xe4\xef\xd1\x7d\xde\x7c\x51\x59\x40\xf4\x23\x52\x34\xf8\x8a\xdd\x5f\x4c\xf5\xbf\xdd\x5f\xb0\xdb\x46\x6f\x8e\xd9\xd7\xc2\xa2\x0a\x52\xa7\xec\x42\xbd\xe2\x01\x0d\x00\x85\x58\x27\x71\x60\x8d\xaf\xa4\x7d\xa9\x67\x3b\xb6\x26\x04\x39\x15\x2a\x4d\xc4\x98\x99\x6f\xd2\xcd\x0a\x6e\x4e\x51\xd4\x43\xeb\x40\xf8\xcf\x6f\xd3\xbd\xfa\x43\x50\xc2\xcc\x0f\x50\xc2\x5a\xca\x1c\x88\x12\x96\xce\xf9\xd9\x1f\x97\x1a\x56\xf6\x6e\xdd\x4b\x13\x1e\xbc\x5e\x32\xb4\xe5\x9c\xa5\x6c\x08\xf7\x5b\xc8\x89\x6d\xc3\x74\x3e\x72\xe2\x80\xc4\x31\x48\x0d\xfe\x17\xb8\xdf\x42\xfc\x59\x14\x7f\xca\x63\xb3\x41\xbf\x61\x3b\xf4\x59\xbd\xce\x0d\xf3\xae\xb9\xae\xee\x86\xa0\x9a\xef\xb8\xf3\xf0\x00\x2c\xd5\xc2\x7d\xec\x8a\xd8\x4c\xaa\xd1\x02\xd0\x02\xd0\x02\xd0\x02\xd0\x6a\x7b\xf0\x18\x80\x56\x7f\xa7\xea\xb6\x68\xab\xe5\x58\x3d\x4a\x23\x06\x00\x17\x0c\x17\xe7\x67\xb8\x00\xe0\xea\x73\xde\x00\x70\xc1\x54\x05\xa5\xec\xd0\x4a\x19\x00\x57\x1b\xe0\xea\xd3\xfe\xb2\x2d\xea\x3a\x15\x59\x11\xc0\x0b\x72\x63\xdb\x30\x9d\x8f\xdc\x38\x20\xf1\x0c\x52\x84\xff\x05\xc0\x0b\xe2\xd0\xf9\x00\x2f\xba\xf2\x73\x29\xdf\xda\x29\xd1\xb2\x37\xa3\xcb\x30\x7e\x8a\xc3\x92\x27\xf5\x4b\x67\xb9\xcf\x85\xb0\xa4\x47\xc6\xb5\xeb\x06\x3e\xf8\x8b\x0a\x46\x54\xe6\xa8\xca\x91\xd3\x48\x7a\xe2\x45\x30\x16\xcb\xbc\x10\xbc\x61\x89\x9d\x17\xd0\x9e\xdb\x4d\x79\x2b\x6e\x1a\xfd\xa2\xb2\xdb\x24\xf1\xf2\xdb\x20\x28\xd9\xd2\x17\xce\xeb\xd2\xd8\x15\x76\x49\xba\xf3\xf8\xf3\x93\x90\x67\x7f\x53\x2c\x0d\xe4\x99\x5d\x17\x8b\x3c\x75\x27\x9c\xa7\x6e\x3d\x5a\x5b\x97\xa3\x6e\xa5\x69\xae\x07\x6c\x88\xcc\x74\xc8\x4c\x87\xcc\x74\xc8\x4c\x77\x6a\x99\xe9\xd6\xef\xbc\xad\x59\xe9\x76\xec\xa4\xb1\xb7\x5c\x74\xeb\x9b\xbf\x3c\x0f\xdd\x90\xfb\x60\x93\xec\x73\xeb\xfb\x60\x79\xe6\xb9\x1d\xf7\x01\xf2\xcd\x21\xdf\x1c\xf2\xcd\x21\xdf\x1c\xf2\xcd\xed\x2c\xdf\x5c\x87\xdd\x7f\x21\xd7\xdc\xca\x8b\x4e\xcf\xc8\x47\xb3\x5b\x6b\x90\x2f\xef\xc8\xf2\xe5\xad\x9f\x44\xab\x72\xe5\xed\x78\x36\x1d\x34\x43\xde\xfa\x9e\x59\x91\x1d\x6f\xd7\xbb\xc6\x50\x73\xe2\xad\xef\xb4\x16\xb3\xfe\xd6\xe6\x2c\xfb\xd7\x9f\x1b\x51\xa5\x0d\x83\xa9\x00\x9b\x36\xf6\x05\xfa\xd7\x9c\xb5\x1e\x98\x09\x98\x89\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\xed\xd4\x60\x8c\x3b\x50\xc0\xd7\xc0\xd7\xc0\xd7\xc0\xd7\xc0\xd7\x06\xc5\xd7\x5a\x12\x6c\xef\x08\xb3\xd5\xd9\x9a\x74\x62\x80\x9a\xb2\xc7\x58\x2e\x8d\x95\xef\x85\xb1\x5d\x56\x4a\x00\x29\x3a\x56\x60\xd4\x7a\x44\xa5\xdd\x8c\x1a\x5a\x71\xad\xec\x5d\x10\x3a\xd0\x39\xd0\xb9\xa3\xa3\x73\x20\x73\x20\x73\x20\x73\x0c\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\xee\x38\xc9\x1c\x52\x2f\x00\x3b\x02\x3b\x02\x3b\x02\x3b\x02\x3b\x02\x3b\x6e\x8c\x1d\xdf\x5f\x6f\x85\x0e\x0f\x72\x5b\xec\xdc\x68\x47\xa2\x68\xca\xed\x66\x60\x57\xf0\xbe\x48\x14\x0b\xb4\xef\xfd\xed\xdd\xd7\xef\x6d\xef\xe2\xa2\xdc\x0d\x79\x5b\xad\x23\x29\x84\xf1\xe4\xa0\xdb\xfb\xda\xcb\x6f\xea\x15\x58\xbf\xc8\x0e\x12\x1e\x6b\x4c\x3f\x99\x15\x34\x9c\x6e\xb1\x06\xd9\xaf\x58\x3e\xba\xbc\xc5\xf5\xb3\xa4\x1c\x5c\x9c\x3a\x3f\x3a\x83\x59\xc3\x2d\x77\x44\xbf\x5f\x76\x47\xf4\xe9\xaf\xe4\xf5\xf8\x7c\xe0\x71\xad\xef\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x37\xd9\x6d\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\xcf\x8e\x9e\x83\xb3\x82\xb3\x82\xb3\xb6\xcf\x26\x70\xd6\xa5\xeb\x0c\x9c\x75\x73\xce\xfa\x8a\x8b\x53\xcd\xe9\xdf\x2f\x1c\x32\x65\xb2\x40\x25\x5a\xd9\xb0\xb3\x76\x73\x26\x64\x8a\x59\xa4\x42\x1f\x7d\xb9\x9b\x45\x53\x76\xcc\x7a\x0c\x93\xf5\xf9\x98\xac\xbb\x25\xd1\x5d\x67\xb6\x7e\x6d\x4a\xfe\xcb\xe5\x93\x71\xbb\x14\xdc\x3b\x61\xf0\x9f\x68\x39\x7e\xa3\x85\x91\xf7\x92\x60\x1b\xe6\x78\x98\xe3\x61\x8e\x87\x39\xfe\xd4\xcc\xf1\xdd\x4e\x95\x56\x93\xfc\xde\xb2\xe6\x93\xd2\x68\x0d\x11\x97\x74\xcf\x7d\xa0\x67\x94\x99\x07\x8d\xb6\xd5\xe5\x88\x89\x60\xa9\xee\xad\x5c\xeb\xec\xec\x56\xb2\x58\x9a\x9d\x45\x65\xac\x94\x7e\x73\x0a\x59\x98\xbd\x7c\x2f\x25\x0b\xe3\x4c\x4b\x6a\x4f\xc2\xcf\x78\x52\xe4\x24\xe3\xd2\x2e\x79\x37\x37\x6c\x07\xb3\x69\x99\xd1\x2a\x4b\x33\x15\x68\xb9\xc1\xe8\xba\x35\x53\xe9\x98\xfd\x41\x5f\xa4\xd1\xa2\xb9\xa3\x15\xdd\xdb\x24\xf9\x40\xd6\x9b\x50\xef\xd2\xa5\xd4\x03\xaf\x95\x07\x37\x25\x6d\x71\x8b\xe9\xd0\x3b\x0c\x94\x69\xcb\x61\x86\x69\x6f\x0c\xa5\x5b\x57\x2c\xe7\x28\x7b\xeb\x91\xdf\xeb\xda\x70\x2c\x59\x6e\x94\x54\x36\x11\x53\x23\x39\x7b\x7b\x5b\x25\x4a\xd8\xdd\x8b\xa6\x4e\x29\xcc\xe1\x30\xd1\x7a\xa0\xbc\x92\x22\xe2\x34\x41\xad\x3e\xab\x55\x6f\x77\x82\x1a\xdb\xbb\x5f\x1a\x56\xad\x89\x67\x33\x11\xc6\xbc\x10\xc9\x4b\x25\xd2\x56\x47\x6e\x9c\x5c\x5a\x7d\x95\x3a\x9d\x45\x19\x0f\x68\xd5\xc4\x2a\xf4\x02\x41\x75\x68\x93\xbe\xe0\x66\x69\x99\xeb\x4a\xd6\x87\x8b\xeb\x37\x5d\x83\xec\x47\xa6\x66\x0f\x74\x45\x8c\x4d\x3d\x67\x82\xcb\xd6\x3a\x6e\x31\xcc\x54\xe7\x3b\xaa\x72\x9b\x0d\x60\x8d\x15\x60\x28\xd3\x7f\x13\x7c\xd6\xad\x5f\x96\x23\xb4\xbd\x4d\x7f\xc0\x34\xc0\x34\xc0\x34\xc0\x34\xc0\xb4\x9d\xc1\xb4\x8e\x67\xc1\x02\x50\xdb\xdf\xb1\xf8\xa9\x76\xf3\x5d\x9a\x08\x9e\x0b\xbf\x05\xdd\x65\x2a\xe5\x11\x49\x47\x77\x2a\x89\x83\x97\x86\x1d\xcc\x4d\xba\xea\xea\x3c\x3d\xed\x6e\xc6\xff\x18\xb3\x1f\x66\x3f\x33\xa2\x4b\x2a\xa4\x5e\x2c\xd5\x99\x2a\x98\xca\xd2\x07\x2e\x9d\x5d\x2e\x2b\xc5\xf5\x94\x27\x4e\x57\xbe\xbf\x30\x3f\xdf\x5f\xb0\x69\x2c\x79\x12\xff\xdb\x1d\x24\x13\xc1\x78\x18\xd2\xec\xbc\x36\xe6\xf7\xb0\x52\xc3\x4c\xf1\xa3\xbc\x7a\xc9\xe8\xa7\x63\xf6\x39\xa6\xcd\xb1\x56\x75\x95\x2d\xb6\x8d\xb6\x1f\x63\x2a\x32\xea\x31\xe9\x28\xaa\x78\xd8\x66\x40\x4d\x0b\x3e\xb9\xb6\xef\xcd\xc4\xb7\xa8\x98\x51\xd3\xf5\x82\x7d\x50\xcf\x2c\xe2\xd9\x84\x47\x0d\x6b\xba\x57\x6a\x44\x36\x55\xd9\x4c\x8f\x49\x6b\x7f\x7d\x9b\x6b\xd1\xf2\xee\x22\xa1\xd7\x49\xac\xa9\xe9\xdb\x58\x4b\x93\x41\x1c\x56\xaa\x30\xc9\x0a\x64\x9c\xf0\x63\xac\x0f\x6b\x7b\x92\x3a\x69\x60\x5c\x1b\x4c\x77\x8e\x38\x55\xfb\xca\xdb\x98\x9b\x1f\x1b\xb3\xdb\x20\x10\x69\x41\x67\x53\x5d\xb3\x1b\x99\x36\x8c\xd8\x95\x9d\x80\xcd\x09\x9a\xff\xcc\x46\xbf\xf0\xe0\x31\xca\x54\x29\x43\xfd\x14\xd9\x6a\xe9\xa1\xb9\x8e\x33\x22\xa4\x95\x8f\x9b\x85\xb8\x16\x4c\x7c\x49\x3f\xb3\xd1\x17\x95\x89\x5a\xb1\x2c\xe0\x79\xc0\x43\xdd\x7a\xdb\x3f\xc6\x9c\x4f\xe5\xe5\x46\xf5\x5c\x28\x70\xea\xcb\xd8\x66\x42\xa6\xf3\xd3\xfd\x80\x96\x02\x90\xef\xe3\x21\xdf\xdd\x66\xd7\x2a\xfa\xbd\x3f\x65\xfe\x90\x1c\xbc\x5b\x3f\xad\x60\xe1\xfb\x3b\xf0\x87\x4a\xc5\xbb\x75\xe1\x22\x19\x7f\xed\x71\xda\x4a\xa1\x11\x55\xbb\x21\xd1\xfb\x51\xf0\xa2\xec\x8a\xf2\x4e\x36\x04\xcf\x1c\xe1\x95\x78\x75\xac\xe1\x78\x47\x1a\xe3\x0b\x1f\x0e\xf8\x70\x9c\xb6\x0f\x07\xbc\x1e\xe0\xf5\x00\xaf\x07\x78\x3d\xc0\xeb\xe1\xe0\x5e\x0f\xc0\xe9\x20\xac\x20\xac\x20\xac\x20\xac\x20\xac\x20\xac\x20\xac\x4b\x0f\x01\x40\x0f\x40\x0f\x40\x0f\x40\x0f\x40\x0f\xdc\x77\xb8\x8a\xae\xe0\xbe\x43\xdc\x77\xf8\x66\xf9\x10\xe1\x92\xfd\x81\x5f\xfe\x60\xff\xfa\xb3\x1a\x64\x95\xf7\x8c\xd1\x8c\x1a\xc3\xf8\x16\xc4\xcc\xbc\xba\x27\x66\xb6\x5d\xa8\xe9\x8a\x29\xb6\xb7\x8d\xb5\x97\x60\x54\x04\x44\xd5\xa7\xc1\x60\x03\xa2\xc8\xb4\xf1\x1b\x97\x3c\x12\x99\x31\xd2\x99\xcd\x35\xcf\x55\x10\x93\xd6\xe9\xcd\x61\x9c\xac\x9a\x2a\x63\x42\x16\x5a\x2a\x76\x6a\xf8\x8c\x3f\xea\x5e\x2c\x1e\x44\x2e\x9c\x68\x59\x0f\xfb\x71\xe1\x41\x24\x5a\x93\xe9\x4b\x65\xec\xe6\xfd\x4f\xfa\xd9\x8c\x07\xc4\xba\x12\x25\x23\x23\x48\x92\x79\x2a\xd0\x93\x32\x96\x66\x47\x23\xf3\x4f\xf5\x2c\xd9\xff\x2d\x89\x63\x93\x17\x46\x27\xee\x87\xeb\xeb\x48\x25\x5c\x46\x63\x95\x45\xd7\xe9\x63\x74\x5d\xca\x38\x50\xa1\xb8\xfe\xdb\xd7\xfc\x4e\x97\xb2\xb5\x3d\xd9\x76\x4e\x9f\xc3\x33\x28\xc9\xf3\x74\x04\xc2\xae\xc2\xe0\xfb\x0e\xc2\xe0\x47\x63\x2c\x1b\x7a\x43\xde\xaf\x6d\x88\x71\x04\x1e\x7a\x4b\x4e\x55\x3e\x27\xf1\xe7\xb8\xe4\xf3\x37\x6c\x17\x77\xe4\x98\x87\xfe\xb3\xa7\xab\x72\xb6\x11\x0e\x97\x5d\x8f\x33\x20\xe1\xf0\x48\xee\x21\x81\xe8\x57\x1f\xe4\xc1\x8a\x7e\x88\xfc\x3e\xa3\xc8\x6f\x84\xb8\x21\xc4\x0d\x21\x6e\x08\x71\x83\xd6\xba\x6c\x15\x0d\x32\x48\xe4\x30\x1a\x1e\x62\x5c\xdc\x83\x2b\x63\x5c\x8e\x4c\xb1\xf3\x36\xf9\xde\x23\x5b\xc8\xbb\xa1\x29\x8d\x6d\xae\x7f\xe9\x42\x0e\x13\xce\x52\x93\x63\xc4\x5f\xe4\xa4\x36\xd1\x7f\xf1\xa0\x18\x33\xf6\x59\xff\xd7\xfd\xfb\x8c\xc7\x64\x98\xcc\x59\x90\x94\x79\x21\xb2\xea\x74\x32\xde\xac\x2c\x89\x1f\x05\x1b\xf9\x5a\x8f\xb4\x10\xea\x04\xa7\x31\xbb\x4b\xb8\x94\xd6\xc9\x84\x44\x1b\x9e\x18\x69\xea\xe6\xa7\x6d\xb6\x7b\xaa\xe3\x81\x84\x0e\xdf\x69\x5e\x66\x9f\xb8\xee\xd3\x2d\x65\x9f\x4d\x8f\xe9\x83\x26\xcd\x5d\xef\x58\x3f\xae\x32\x17\x19\x39\x60\x55\xe2\xf7\xcb\x8e\x3b\x4a\x57\xe6\x74\xbd\x07\x86\x7d\x1a\xc2\x60\xd8\xf2\xf2\x92\x93\x45\xef\xcd\x47\x7a\xac\x6c\xc1\xf3\x89\x35\x59\x1b\x4c\xa7\x1a\x75\x01\xf7\x43\x61\xf6\x70\x56\x38\x3a\x67\x05\xf2\x90\xda\x2a\xab\xf6\x15\xbd\xfb\xf7\xd5\x9b\xfb\x4c\x64\x91\xe8\xf4\x64\x5e\x64\xbc\x10\x51\x1c\x5c\x75\x7f\x47\xff\xfd\x62\x9f\xa4\x63\xa4\x8b\xe8\x46\x2e\xb5\x14\xb1\x67\xbc\xf9\x5e\x2d\xc6\xd1\xf7\x07\x6d\x45\xdf\x95\x8b\xc5\x0a\xad\xe9\xae\xe9\x7a\xc7\x60\x5b\x3f\x71\xdb\xfa\xf9\xb8\x55\xcc\x45\xc8\xb8\xc5\x65\xa2\xb8\x52\xe3\xd4\x6e\x6f\x06\x78\xbb\x64\xb7\x7a\x47\x96\x45\x13\xba\xcd\x13\x7a\x53\x2a\x79\x65\xde\xa6\x27\xc8\xb8\x9f\xb3\xb7\xbf\xe6\x4a\xde\x99\x00\xf9\xdf\xf4\xbe\x68\xff\xfe\xe1\x76\xcb\xea\x1f\xdf\x0d\xc9\xdf\xa3\xfb\xbc\xf9\xa2\xb2\x80\xe8\x47\xa4\x68\xf0\x15\xbb\xbf\x98\xea\x7f\xbb\xbf\x60\xb7\x8d\xde\x1c\xb3\xaf\x85\x45\x15\xa4\x4e\xd9\x85\x7a\xc5\x03\x1a\x00\x0a\xb1\x4e\xe2\xc0\x1a\x5f\x49\xfb\x52\xcf\x76\x6c\x4d\x08\x72\x2a\x54\x9a\x88\x31\x33\xdf\xa4\x9b\x15\xdc\x9c\xa2\xa8\x87\xd6\x81\xf0\x9f\xdf\xa6\x7b\xf5\x87\xa0\x84\x99\x1f\xa0\x84\xb5\x94\x39\x10\x25\x2c\x9d\xf3\xb3\x3f\x2e\x35\xac\xec\xdd\xba\x97\x26\x3c\x78\xbd\x64\x68\xcb\x39\x4b\xd9\x10\xee\xb7\x90\x13\xdb\x86\xe9\x7c\xe4\xc4\x01\x89\x63\x90\x1a\xfc\x2f\x70\xbf\x85\xf8\xb3\x28\xfe\x94\xc7\x66\x83\x7e\xc3\x76\xe8\xb3\x7a\x9d\x1b\xe6\x5d\x73\x5d\xdd\x0d\x41\x35\xdf\x71\xe7\xe1\x01\x58\xaa\x85\xfb\xd8\x15\xb1\x99\x54\xa3\x05\xa0\x05\xa0\x05\xa0\x05\xa0\xd5\xf6\xe0\x31\x00\xad\xfe\x4e\xd5\x6d\xd1\x56\xcb\xb1\x7a\x94\x46\x0c\x00\x2e\x18\x2e\xce\xcf\x70\x01\xc0\xd5\xe7\xbc\x01\xe0\x82\xa9\x0a\x4a\xd9\xa1\x95\x32\x00\xae\x36\xc0\xd5\xa7\xfd\x65\x5b\xd4\x75\x2a\xb2\x22\x80\x17\xe4\xc6\xb6\x61\x3a\x1f\xb9\x71\x40\xe2\x19\xa4\x08\xff\x0b\x80\x17\xc4\xa1\xf3\x01\x5e\x74\xe5\xe7\x52\xbe\xb5\x53\xa2\x65\x6f\x46\x97\x61\xfc\x14\x87\x25\x4f\xea\x97\xce\x72\x9f\x0b\x61\x49\x8f\x8c\x6b\xd7\x0d\x7c\xf0\x17\x15\x8c\xa8\xcc\x51\x95\x23\xa7\x91\xf4\xc4\x8b\x60\x2c\x96\x79\x21\x78\xc3\x12\x3b\x2f\xa0\x3d\xb7\x9b\xf2\x56\xdc\x34\xfa\x45\x65\xb7\x49\xe2\xe5\xb7\x41\x50\xb2\xa5\x2f\x9c\xd7\xa5\xb1\x2b\xec\x92\x74\xe7\xf1\xe7\x27\x21\xcf\xfe\xa6\x58\x1a\xc8\x33\xbb\x2e\x16\x79\xea\x4e\x38\x4f\xdd\x7a\xb4\xb6\x2e\x47\xdd\x4a\xd3\x5c\x0f\xd8\x10\x99\xe9\x90\x99\x0e\x99\xe9\x90\x99\xee\xd4\x32\xd3\xad\xdf\x79\x5b\xb3\xd2\xed\xd8\x49\x63\x6f\xb9\xe8\xd6\x37\x7f\x79\x1e\xba\x21\xf7\xc1\x26\xd9\xe7\xd6\xf7\xc1\xf2\xcc\x73\x3b\xee\x03\xe4\x9b\x43\xbe\x39\xe4\x9b\x43\xbe\x39\xe4\x9b\xdb\x59\xbe\xb9\x0e\xbb\xff\x42\xae\xb9\x95\x17\x9d\x9e\x91\x8f\x66\xb7\xd6\x20\x5f\xde\x91\xe5\xcb\x5b\x3f\x89\x56\xe5\xca\xdb\xf1\x6c\x3a\x68\x86\xbc\xf5\x3d\xb3\x22\x3b\xde\xae\x77\x8d\xa1\xe6\xc4\x5b\xdf\x69\x2d\x66\xfd\xad\xcd\x59\xf6\xaf\x3f\x37\xa2\x4a\x1b\x06\x53\x01\x36\x6d\xec\x0b\xf4\xaf\x39\x6b\x3d\x30\x13\x30\x13\x03\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\xda\xa9\xc1\x18\x77\xa0\x80\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x0d\x8a\xaf\xb5\x24\xd8\xde\x11\x66\xab\xb3\x35\xe9\xc4\x00\x35\x65\x8f\xb1\x5c\x1a\x2b\xdf\x0b\x63\xbb\xac\x94\x00\x52\x74\xac\xc0\xa8\xf5\x88\x4a\xbb\x19\x35\xb4\xe2\x5a\xd9\xbb\x20\x74\xa0\x73\xa0\x73\x47\x47\xe7\x40\xe6\x40\xe6\x40\xe6\x18\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\xdc\x71\x92\x39\xa4\x5e\x00\x76\x04\x76\x04\x76\x04\x76\x04\x76\x04\x76\x5c\x83\x1d\x27\x84\x18\xb7\x82\x85\x07\xb9\x1f\x76\x6e\x7c\x23\x51\xb0\x58\x4e\x55\x36\xf3\xf3\x99\x33\x03\x27\x96\x43\xbe\x48\x14\xbf\x10\xe7\xbb\xfb\xfa\xcf\xf9\x47\x71\x19\xee\x86\x4c\xcd\x77\xe2\x91\x13\xb5\xc9\x1c\xda\x7c\x53\xff\x64\xdb\x9a\x79\xba\x39\xee\x65\xd3\x50\x70\xcd\x0e\xd8\x61\xcd\xfc\x71\x73\x7b\xf7\xf5\x7b\xdb\x0b\x58\x39\x9b\xaf\x1c\xd7\x91\x14\xe0\x7b\x0a\x0b\xe8\xff\x3c\xdd\x6c\xb8\x86\xfe\x7f\x6a\xb2\xdb\x90\x70\x63\xee\xcc\xac\x70\xed\xf4\x69\xe7\xa6\xf2\xab\x9a\xac\x98\xf5\xfa\x5d\x3b\xed\x7f\x55\x13\xdc\xfc\x3b\xdf\xd5\x83\x59\x66\x63\x9a\x4f\x7a\x55\xfd\xaa\x26\x27\xba\x9a\xd6\x7b\x75\xf4\x15\x6e\x3d\x59\x9c\x2f\xce\x9d\xa3\xb9\x5e\xe6\x5c\x37\x6e\xe0\xb5\x01\xaf\x0d\x78\x6d\xc0\x6b\x03\x5e\x1b\xf0\xda\x80\xd7\x06\xbc\x36\x36\xd9\x6d\xe1\xb5\x01\xaf\x0d\x78\x6d\xc0\x6b\x03\x5e\x1b\xf0\xda\x80\xd7\xc6\xd9\x79\x6d\x80\xef\x83\xef\x83\xef\xb7\xcf\x26\xf0\xfd\xa5\xeb\x0c\x7c\xbf\x0b\xdf\x7f\xba\x59\x16\x45\x3c\x8f\x5f\xcc\xf1\xde\x2f\x81\x31\x65\xb2\x40\x25\x5a\x9b\xb0\xd3\x72\x35\x78\x31\xaf\x58\xf4\xf2\xd1\xbf\x58\xc5\xe1\xce\xbd\xde\x35\x37\x36\x0c\xcc\xe7\x63\x60\xee\x96\x6a\x79\x9d\x91\x79\xcd\xba\x7c\x4d\x46\xec\xed\x12\xb5\xef\x84\x45\x7f\xa2\xf5\xf6\x8d\x16\x46\xde\x4b\x1a\x76\x18\xcf\x61\x3c\x87\xf1\x1c\xc6\xf3\x53\x33\x9e\x77\x3b\x55\x5a\x0d\xe8\xaf\x4c\xde\xdf\x7d\xef\x25\x15\xcf\x9a\x0d\x2e\x29\x1b\x42\xa0\x67\x94\x99\x07\x8d\xb6\xd5\xe5\x88\x89\x60\xa9\xee\xad\x5c\x6b\xd8\xec\x56\xb2\x58\x9a\x9d\x45\x65\xac\x94\x7e\x73\x0a\x59\x98\xbd\x7c\x2f\x25\x0b\xe3\x4c\x4b\x65\x4f\xc2\xcf\x78\x52\xbb\x24\xe3\xd2\x2e\x79\x37\x37\x6c\x07\xb3\x69\x99\xd1\x2a\x4b\x33\x15\x68\xb9\xc1\x68\xa6\x35\xc3\xe6\x98\xfd\x41\x5f\xa4\xd1\xa2\xb9\xa3\xd5\xd2\xdb\x24\xf9\x40\xb6\x96\x50\xef\xd2\xa5\xd4\x03\xaf\x45\x7d\x37\x25\x6d\x71\x8b\x49\xf3\x3b\x0c\x94\x69\xcb\x61\x86\x69\x6f\xc4\xa3\x5b\x57\x2c\xa7\x1e\x7b\xeb\x91\xdf\xeb\xba\x6b\x2c\x59\x6e\x54\x4a\x36\x11\x53\x23\x39\x7b\xeb\x58\x25\x4a\xd8\xdd\x8b\xa6\x4e\x29\xcc\xe1\x30\xd1\x5a\x9b\xbc\x92\x22\xe2\x34\x41\xad\xf6\xa9\x15\x65\x77\x82\x1a\x4b\xb9\x5f\x1a\x56\x47\x89\x67\x33\x11\xc6\xbc\x10\xc9\x4b\x25\xd2\x56\x47\x6e\x9c\x5c\x5a\xed\x92\x3a\x9d\x45\x19\x0f\x68\xd5\xc4\x2a\xf4\x02\x41\x75\x68\x93\xbe\xe0\x66\x69\x99\xeb\x4a\xd6\x87\x8b\xeb\x37\x5d\x83\xec\x47\xa6\x66\x0f\x74\x45\x8c\x4d\x3d\x67\x82\xcb\xd6\x3a\x6e\x31\xcc\x54\xe7\x3b\xaa\x72\x9b\xc6\xbe\x46\x67\x1f\xca\xf4\xdf\x04\x76\x75\xeb\x97\xe5\xc0\x6b\x6f\xd3\x1f\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x6b\x67\xe8\xab\xe3\x59\xb0\x80\xbf\xf6\x77\x2c\x7e\xaa\xdd\x8f\x98\x26\x82\xe7\xc2\x6f\x41\x77\x99\x4a\x79\x44\xd2\xd1\x9d\x4a\xe2\xe0\xa5\x61\x07\x73\x93\xae\xba\x60\x51\x4f\xbb\x9b\xf1\x3f\xc6\xec\x87\xd9\xcf\x8c\xe8\x92\x0a\xa9\x17\x4b\x75\xa6\x0a\xa6\xb2\xf4\x81\x4b\x67\x97\xcb\x4a\x71\x3d\xe5\x89\xd3\x95\xef\x2f\xcc\xcf\xf7\x17\x6c\x1a\x4b\x9e\xc4\xff\x76\x07\xc9\x44\x30\x1e\x86\x34\x3b\xaf\x8d\xb1\x3c\xac\xd4\x30\x53\xfc\x28\xaf\x5e\x32\xfa\xe9\x98\x7d\x8e\x69\x73\xac\x55\x5d\x65\x8b\x6d\xa3\xed\xc7\x98\x8a\x8c\x7a\x4c\x3a\x8a\x2a\x1e\xb6\x19\x50\xd3\x82\x4f\xae\xed\x7b\x33\xf1\x2d\x2a\x66\xd4\x74\xbd\x60\x1f\xd4\x33\x8b\x78\x36\xe1\x51\xc3\x34\xee\x95\x1a\x91\x4d\x55\x36\xd3\x63\xd2\xda\x5f\xdf\xe6\x5a\xb4\xbc\xbb\x48\xe8\x75\x12\x6b\x6a\xfa\x36\xd6\xd2\x64\x10\x87\x95\x2a\x4c\xb2\x02\x19\x27\xfc\x18\xe7\x14\x5c\x47\xbf\x3a\x69\x60\x5c\x1b\x4c\x77\x8e\x38\x55\xfb\xca\xdb\x98\x9b\x1f\x1b\xb3\xdb\x20\x10\x69\x41\x67\x53\x5d\xb3\x1b\x99\x36\x8c\xd8\x95\x9d\x80\xcd\x09\x9a\xff\xcc\x46\xbf\xf0\xe0\x31\xca\x54\x29\x43\xfd\x14\xd9\x6a\xe9\xa1\xb9\x8e\x33\x22\xa4\x95\x8f\x9b\x85\xb8\x16\x4c\x7c\x49\x3f\xb3\xd1\x17\x95\x89\x5a\xb1\x2c\xe0\x79\xc0\x43\xdd\x7a\xdb\x3f\xc6\x9c\x4f\xe5\xe5\x46\xf5\x5c\x28\x70\xea\xcb\xd8\x66\x42\xa6\xf3\xd3\xfd\x80\x96\x02\x70\xea\xe3\xe1\xd4\xdd\x66\xd7\x2a\x56\xbd\x3f\x65\xfe\x90\xd4\xba\x5b\x3f\xad\x20\xd7\xfb\x3b\xf0\x87\xca\xb0\xbb\x75\xe1\x22\xc7\x7e\xed\x71\xda\x8a\x94\x11\x5d\xba\x21\xd1\xfb\x51\xf0\xa2\xec\x8a\xf2\x4e\x2b\x0c\xce\x9c\xdb\x95\x4c\x35\xd8\x90\xb8\xa1\xc6\xba\xc2\xcd\x02\x6e\x16\xa7\xe3\x66\x01\xc7\x04\x38\x26\xc0\x31\x01\x8e\x09\x70\x4c\x38\xb8\x63\x02\x88\x37\x20\x28\x20\x28\x20\x28\x20\x28\x20\x28\x20\x28\x20\xe8\xd2\x43\x00\x5c\x02\x5c\x02\x5c\x02\x5c\x02\x5c\x02\xf7\xfe\xad\x02\x20\xb8\xf7\xef\xe2\x04\xef\xfd\x43\x92\x83\x81\x5f\x82\x60\xff\xfa\xb3\x1a\x64\x95\xf7\x8c\xb2\x8c\xf6\xc1\xf8\x1a\x6a\x65\x1e\xeb\x8b\x5b\x6d\x17\x91\xb9\x62\xbe\xf4\xb7\xb9\xf5\x12\x94\x89\xc0\xa0\xfa\x38\x0f\x36\x30\x88\xec\x07\xbf\x71\xc9\x23\x91\x19\x4b\x98\xd9\x0a\xf3\x5c\x05\x31\xa9\x76\xde\xe6\xc4\xc9\x74\xa8\x32\xa6\x35\xff\xe2\xc5\xeb\xba\x33\xfe\xa8\x7b\xb1\x78\x10\xb9\x70\xf2\x5b\x3d\xfc\xc5\x85\xc9\x90\xfc\x4a\xf6\x25\x95\xb1\x9b\xf7\x3f\xe9\x67\x33\x1e\x10\x50\x4a\x94\x8c\x8c\xb4\x46\x36\x20\xad\xac\xf3\x58\x9a\xfd\x87\x6c\x2c\xd5\xb3\x64\x64\xb7\xb8\x8b\x4d\x5e\x18\x9d\x7a\x1f\xae\xaf\x23\x95\x70\x19\x8d\x55\x16\x5d\xa7\x8f\xd1\x75\x29\xe3\x40\x85\xe2\xfa\x6f\x5f\xf3\x3b\x5d\xca\xd6\x46\x5b\xdb\x39\x7d\x0e\xcf\xa0\xc4\xbb\x23\x92\xba\xba\x4a\x5c\xef\x3b\x48\x5c\x1f\x8d\xc9\xe9\xe0\x35\x7d\xbf\xb6\xa6\xc6\xa5\xf5\xe0\x55\x3d\x29\x31\x96\x84\x88\x81\x89\xb1\x6f\xd8\x56\x57\xaa\x98\x7f\xf8\xcf\x9e\x6e\x56\x59\x27\x24\x35\x6e\x53\x39\x90\x90\x74\x24\xd7\x56\x40\x42\xaa\x0f\xf2\x60\x25\x24\x04\x0a\x9f\x51\xa0\x30\x22\xa2\x10\x11\x85\x88\x28\x44\x44\x41\xb9\x5b\xb6\x8a\x06\x19\x53\x70\x18\x35\x0a\x21\x11\xcb\x43\x22\x86\xa6\x5c\x79\xf3\x71\xef\x81\x10\xc4\xcf\x9b\x32\xd6\x6a\x15\x49\xbf\xb0\xa3\xe8\x87\x9a\xa8\x21\xfe\x22\x9f\xa6\x89\xfe\x8b\x07\xc5\x98\xb1\xcf\xfa\xbf\xee\xdf\x67\x3c\x26\x13\x5b\xce\x82\xa4\xcc\x0b\x91\x55\x07\x88\x71\x7e\x64\x49\xfc\x28\xd8\xc8\xd7\x70\xa4\xe5\x44\x27\xdb\x8c\xd9\x5d\xc2\xa5\xb4\x3e\x09\x24\x7d\xf0\xc4\x08\x3c\x37\x3f\x6d\xb3\x23\x53\x1d\x0f\x24\x17\xf8\x4e\xf3\x62\xf5\xc4\x75\x9f\x6e\x29\xfb\x6c\x7a\x4c\x9f\x05\x69\xee\x7a\xc7\xba\xfd\x94\xb9\xc8\xc8\x5f\xa7\x92\x90\x5f\x76\xdc\x51\xba\x32\xa7\x0b\x9b\x87\x7d\x60\xc1\x70\xa6\xb7\xcf\xa1\x6e\xed\x5b\xe0\xdf\x7a\x02\xff\x85\x0f\x23\x59\x7f\x7b\x9b\xc1\xb1\x7b\xe1\xd8\xb4\x04\xb6\xca\xe3\x7b\x45\xef\xfe\x7d\xf5\xfe\x3b\x13\x59\x24\x3a\x3d\x99\x17\x19\x2f\x44\x14\x07\x57\xdd\xdf\xd1\x7f\xbf\xd8\x27\x69\xa7\xef\x22\x2a\x91\x93\x24\xc5\x60\x19\xff\xac\x8d\xc4\x26\xfa\xd6\x69\xd2\xf7\x15\x8a\xc4\x5d\xd3\x33\x8a\xc1\xdc\x7c\xe2\xe6\xe6\xf3\x01\xf2\x73\x01\x0c\x6e\x71\x99\x20\x9b\xd4\xf8\x1c\xdb\xc0\xed\xb7\x4b\xb6\x9e\x77\x64\x6c\x33\x91\xb5\x3c\xa1\x37\xa5\x92\x57\xe6\x6d\x7a\x82\xec\xdd\x39\x7b\xfb\x6b\xae\xe4\x9d\x89\x5f\xfe\x4d\x6f\x72\xf6\xef\x1f\x6e\xeb\xab\xfe\xf1\xdd\x90\x3c\x05\xba\xcf\x9b\x2f\x2a\x0b\x08\x08\x44\x8a\x06\x5f\xb1\xfb\x8b\xa9\xfe\xb7\xfb\x0b\x76\xdb\xe8\xcd\x31\xfb\x5a\x58\xeb\x3d\xa9\x2f\x76\xa1\x5e\xf1\x80\x06\x80\x22\x60\x93\x38\xb0\xf6\x48\xd2\x76\xd4\xb3\x1d\x5b\x13\x21\x9a\x0a\x95\x26\x62\xcc\xcc\x37\x29\xf0\xdd\xcd\x29\x72\x4a\x6f\x1d\x08\xff\xf9\x6d\xba\x57\x7f\x08\x4a\x8f\xf9\x01\x4a\xcf\xbe\x95\x9e\x74\x4e\x5b\x19\x98\xda\x53\xf6\x6e\xd1\x4a\x13\x1e\x6c\x26\x9d\xd9\x77\x4e\x53\x3e\x83\x77\x24\x84\xb1\x13\x17\xc6\x06\x24\xf3\xe0\x68\xf6\xbf\x9c\xb9\x77\xe4\x69\x09\x11\xe5\xe0\x2c\xa7\x6f\xd8\x6b\x3c\x0e\xaf\x73\x03\x39\x6b\x8e\x87\xbb\x81\x6b\xe6\x3b\xee\x20\x7a\x2d\x66\xb3\x68\x16\x7b\x0b\x56\xac\xfb\x15\xac\x03\xac\x63\x49\x9b\xc1\x3a\xc0\x3a\xfa\x61\x1d\xdb\x9d\x62\x4b\xa9\x47\xcb\x31\x76\x94\xba\x35\xd8\x07\xd4\xed\xf3\x53\xb7\xc1\x3e\xfa\x9c\x37\x60\x1f\x30\xb0\x40\x09\x02\xfb\xe8\x91\x7d\x6c\x6b\x73\x58\x4a\x41\x4e\x45\x5e\x03\x0b\x81\x70\x76\xe2\xc2\xd9\x80\x64\x20\x1c\xd5\xfe\x17\xb0\x90\x13\x12\x2a\x8e\x8b\x85\xd0\xf5\x74\x84\x3e\x76\x0a\x3b\xec\x8d\xbd\x32\x8c\x9f\xe2\xb0\xe4\x49\xfd\x32\x44\xee\xef\xe8\xfe\x55\x4d\xc6\xb5\x30\xe3\x0f\x3e\x40\x79\x44\xef\x8f\xaa\x3c\x0d\x8d\x8b\xf7\xbd\xa4\xc2\x62\x99\x17\x82\x37\x0c\x84\xf3\x72\xcc\x73\xcd\xea\x64\x6f\xbb\xfb\xa2\xb2\xdb\x24\xf1\x22\xcd\x20\x00\xca\xd2\x17\xce\xeb\x66\xc2\x15\x26\x34\xba\x58\xf3\xf3\x93\x90\xe7\x79\x5b\x21\x8d\xde\xa9\x5d\x59\x88\x14\x47\x27\x9c\xe2\x68\x3d\xa8\x59\x97\xde\x68\xa5\x6d\xa8\x07\x08\x85\xa4\x46\x48\x6a\x84\xa4\x46\x48\x6a\x74\x6a\x49\x8d\xd6\xef\xbc\xad\x09\x8d\x76\x8c\xfc\xf7\x96\xc6\x68\x7d\xf3\x97\xa7\x30\x1a\x72\x1f\x6c\x92\xb8\x68\x7d\x1f\x2c\x4f\x5a\xb4\xe3\x3e\x40\xaa\x22\xa4\x2a\x42\xaa\x22\xa4\x2a\x42\xaa\xa2\x9d\xa5\x2a\xea\xb0\xfb\x2f\xa4\x29\x5a\x79\x2f\xe1\x19\x79\xfc\x75\x6b\x0d\x52\x2d\x1d\x59\xaa\xa5\xf5\x93\x68\x55\x9a\xa5\x1d\xcf\xa6\x83\x26\x57\x5a\xdf\x33\x2b\x12\x2b\xed\x7a\xd7\x18\x6a\x3a\xa5\xf5\x9d\xd6\x62\xac\xdf\xda\x9c\x65\xff\xfa\x73\x3d\xd9\x59\x11\xeb\x72\x86\xc0\xa7\xe1\xb6\xf2\xaf\x39\xe3\x39\x50\x0f\x50\x0f\x03\xea\xa9\xfd\x00\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x83\x5b\x2d\xc0\xb8\xc0\xb8\xc0\xb8\xc0\xb8\xfa\x5d\x67\x60\x5c\x7d\x31\xae\x96\x0c\xb2\x3b\x42\x5d\x75\xbe\x25\xdd\x39\xaf\xa6\xec\x31\x96\x61\x6f\x9c\xeb\xb2\x92\xe8\x49\x6b\xb1\xd2\x9f\x56\x0a\x2a\x55\x65\xd4\x50\x71\x6b\x65\x6f\x45\xc9\x40\xc8\x40\xc8\x8e\x83\x90\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x75\xdc\xfd\xf7\x4e\xc7\x70\x79\x3d\x30\x1f\x30\x1f\x30\x1f\x30\x1f\x30\x1f\x30\x1f\x5b\xc4\x7c\x13\x51\xf0\x9b\xeb\xad\x18\xde\x41\xee\x0d\x9d\x1b\xe7\x48\x14\x4d\xe9\xdc\x0c\xe9\x0a\x18\x17\x89\xc2\xa2\x38\x6a\xfa\xed\xdd\xd7\xef\x6d\x6f\xe1\xb2\xd4\x0d\x29\x59\xad\x23\x29\xf8\xef\x44\x50\x19\x4d\x92\xda\x6b\x6f\xea\x9f\x5e\xb5\xa4\x82\x4c\xc9\x9d\x47\x82\x1a\xf3\x4d\x66\x05\x08\xa7\x1f\x38\x32\xfe\x31\x53\x72\xf5\xc5\xe3\xfa\xfd\xfa\x6a\xb0\x6f\xe0\xd2\xce\xf9\x7e\x1f\xcc\x0a\xf4\x97\x00\xd3\x78\x8d\xed\x80\x9d\xf2\x8a\x5b\x4f\xa8\xf7\x10\xbe\xb9\xb8\x94\xe6\x21\xf5\x5c\xb5\x41\xaa\x41\xaa\x41\xaa\x41\xaa\x41\xaa\x41\xaa\x41\xaa\x41\xaa\xd7\xef\xb6\x20\xd5\x20\xd5\x20\xd5\x20\xd5\x20\xd5\x20\xd5\x20\xd5\x67\x47\xaa\xc1\x39\xc1\x39\xc1\x39\xdb\x67\x13\x38\xe7\xd2\x75\x06\xce\xb9\x09\xe7\x5c\x12\xcd\xd8\xc6\x6a\xcc\x39\xdf\x2f\xae\x31\x65\xb2\x40\x25\x5a\xad\xb0\xf3\x73\x3d\xa5\x31\xaf\x35\x38\x8d\x2f\xa1\x8a\x27\x6c\x29\xa7\x6b\xaa\x58\x98\x9d\xcf\xc7\xec\xdc\x2d\x31\xe9\x3a\xd3\xf3\x6b\x73\x89\x5f\x2e\x9f\x8c\xdb\xe5\x2d\xde\x09\xd3\xfe\x44\x0b\xef\x1b\x2d\x8c\xbc\x97\xa4\xc5\x30\xa9\xc3\xa4\x0e\x93\x3a\x4c\xea\xa7\x66\x52\xef\x76\xaa\xb4\x9a\xd5\xf7\x96\x89\x1c\x09\xe3\x3b\x0f\xd4\x21\x13\xc6\xef\x8d\x83\x6c\x90\xa2\xbd\x95\x03\xec\xad\x47\x7e\xaf\x6b\xb4\xb1\x64\xb9\x51\x34\xd9\x44\x4c\x8d\xe4\xec\x6d\x66\x95\x28\x61\x77\x2f\x9a\x3a\xb5\x14\xf9\x52\xc9\x2b\x29\x22\x4e\x13\xd4\xea\xa4\xf5\x54\xfa\xc6\x7e\xee\x97\x86\x55\x58\xe2\xd9\x4c\x84\x31\x2f\x44\xf2\x52\x89\xb4\xd5\x91\x1b\x27\x97\x56\xe7\xa4\x4e\x67\x51\xc6\x03\x5a\x35\xb1\x0a\xbd\x40\x50\x1d\xda\xa4\x2f\xb8\x59\x5a\xe6\xba\x92\xf5\xe1\xe2\xfa\x4d\xd7\x20\xfb\x91\xa9\xd9\x03\x5d\x11\x63\x53\xcf\x99\xe0\xb2\xb5\x8e\x5b\x0c\x33\xd5\xf9\x8e\xaa\xdc\xa6\xc7\xaf\xd1\xe4\x87\x32\xfd\x37\x41\x60\xdd\xfa\x65\x39\x06\xdb\xdb\xf4\x07\x10\x03\x10\x03\x10\x03\x10\x03\x10\xdb\x19\x10\xeb\x78\x16\x2c\x40\xb1\xfd\x1d\x8b\x9f\x6a\x17\xbc\xa5\x89\xe0\xb9\xf0\x5b\xd0\x5d\xa6\x52\x1e\x91\x74\x74\xa7\x92\x38\x78\x69\xd8\xc1\xdc\xa4\xab\x6e\x88\xd3\xd3\xee\x66\xfc\x8f\x31\xfb\x61\xf6\x33\x23\xba\xa4\x42\xea\xc5\x52\x9d\xa9\x82\xa9\x2c\x7d\xe0\xd2\xd9\xe5\xb2\x52\x5c\x4f\x79\xe2\x74\xe5\xfb\x0b\xf3\xf3\xfd\x05\x9b\xc6\x92\x27\xf1\xbf\xdd\x41\x32\x11\x8c\x87\x21\xcd\xce\x6b\x63\x42\x0f\x2b\x35\xcc\x14\x3f\xca\xab\x97\x8c\x7e\x3a\x66\x9f\x63\xda\x1c\x6b\x55\x57\xd9\x62\xdb\x68\xfb\x31\xa6\x22\xa3\x1e\x93\x8e\xa2\x8a\x87\x6d\x06\xd4\xb4\xe0\x93\x6b\xfb\xde\x4c\x7c\x8b\x8a\x19\x35\x5d\x2f\xd8\x07\xf5\xcc\x22\x9e\x4d\x78\xd4\xb0\x93\x7b\xa5\x46\x64\x53\x95\xcd\xf4\x98\xb4\xf6\xd7\xb7\xb9\x16\x2d\xef\x2e\x12\x7a\x9d\xc4\x9a\x9a\xbe\x8d\xb5\x34\x19\xc4\x61\xa5\x0a\x93\xac\x40\xc6\x09\x3f\xc6\xfa\xb0\xb6\x27\xa9\x93\x06\xc6\xb5\xc1\x74\xe7\x88\x53\xb5\xaf\xbc\x8d\xb9\xf9\xb1\x31\xbb\x0d\x02\x91\x16\x74\x36\xd5\x35\xbb\x91\x69\xc3\x88\x5d\xd9\x09\xd8\x9c\xa0\xf9\xcf\x6c\xf4\x0b\x0f\x1e\xa3\x4c\x95\x32\xd4\x4f\x91\xad\x96\x1e\x9a\xeb\x38\x23\x42\x5a\xf9\xb8\x59\x88\x6b\xc1\xc4\x97\xf4\x33\x1b\x7d\x51\x99\xa8\x15\xcb\x02\x9e\x07\x3c\xd4\xad\xb7\xfd\x63\xcc\xf9\x54\x5e\x6e\x54\xcf\x85\x02\xa7\xbe\x8c\x6d\x26\x64\x3a\x3f\xdd\x0f\x68\x29\x00\xbd\x3e\x1e\x7a\xdd\x6d\x76\xad\x22\xd8\xfb\x53\xe6\x0f\xc9\xb2\xbb\xf5\xd3\x0a\x9e\xbd\xbf\x03\x7f\xa8\x64\xbb\x5b\x17\x2e\xd2\xed\xd7\x1e\xa7\xad\x7c\x19\x51\xaa\x1b\x12\xbd\x1f\x05\x2f\xca\xae\x28\xef\x04\x43\xe5\xcc\xe1\x5d\x09\x56\xc3\x0f\x9b\x1b\x7c\xcc\x2c\x3c\x30\xe0\x81\x71\x5a\x1e\x18\xf0\x59\x80\xcf\x02\x7c\x16\xe0\xb3\x00\x9f\x85\x83\xfb\x2c\x00\x86\x83\x8f\x82\x8f\x82\x8f\x82\x8f\x82\x8f\x82\x8f\x82\x8f\x2e\x3d\x04\x80\x2c\x80\x2c\x80\x2c\x80\x2c\x80\x2c\x70\x7f\xe0\x2a\x36\x82\xfb\x03\xcf\xe8\xfe\x40\x5c\x1a\x3f\xf0\xcb\x14\xec\x5f\x7f\x56\x83\xac\xf2\x9e\x71\x97\x51\x4a\x18\xef\x40\xb6\xcc\xa3\xbd\xb3\xad\xed\x02\x3a\x57\x4c\x9e\x1d\x6c\x80\xbd\x04\x77\x22\xc0\xa8\x3e\xe0\x83\x0d\x30\x22\x63\xc3\x6f\x5c\xf2\x48\x64\xc6\x6c\x66\x36\xc8\x3c\x57\x41\x4c\x7a\xa0\x37\x50\x71\xb2\x33\xaa\x8c\x09\x59\x68\x39\xd5\x29\xc6\x33\xfe\xa8\x7b\xb1\x78\x10\xb9\x70\xc2\x5e\x3d\x8c\xc6\x85\xdb\x90\xb0\x4b\xc6\x28\x95\xb1\x9b\xf7\x3f\xe9\x67\x33\x1e\x10\x7d\x4a\x94\x8c\x8c\x68\x47\x06\x23\xad\xd9\xf3\x58\x9a\x5d\x89\x0c\x32\xd5\xb3\x64\x91\xb7\x6c\x8c\x4d\x5e\x18\x9d\x8c\x1f\xae\xaf\x23\x95\x70\x19\x8d\x55\x16\x5d\xa7\x8f\xd1\x75\x29\xe3\x40\x85\xe2\xfa\x6f\x5f\xf3\x3b\x5d\xca\xd6\x16\x5e\xdb\x39\x7d\x0e\xcf\xa0\x64\xc1\x63\x14\xd1\xba\x8a\x67\xef\x3b\x88\x67\x1f\x8d\xa1\x6a\x38\x55\x7e\xbf\xb6\xca\xc6\x59\x76\x38\x75\x3e\x3d\x29\x98\x44\x8f\xa1\x4a\xc1\x6f\xd8\xeb\x6e\x76\x69\xc9\x55\xbf\xc3\x0b\x5e\xba\x08\x5b\x8b\x97\xba\x1c\x50\xd8\x3a\x92\xdb\x33\x20\x60\xd5\x07\x79\xb0\x02\x16\xe2\x95\xcf\x28\x5e\x19\x81\x59\x08\xcc\x42\x60\x16\x02\xb3\xa0\x1b\x2e\x5b\x45\x83\x0c\x6d\x38\x8c\xce\x85\xc8\x8c\x35\x91\x19\x83\x55\xc0\xbc\x85\xba\xf7\x78\x0c\x22\xf7\x4d\x89\x6b\xbd\xf6\xa4\x5f\xda\x75\x10\x46\x4d\x0a\x11\x7f\x91\x6b\xd5\x44\xff\xc5\x83\x62\xcc\xd8\x67\xfd\x5f\xf7\xef\x33\x1e\x93\xf1\x2e\x67\x41\x52\xe6\x85\xc8\xaa\xb3\xc5\xf8\x60\xb2\x24\x7e\x14\x6c\xe4\x6b\x39\xd2\x22\xa4\x13\x7b\xc6\xec\x2e\xe1\x52\x5a\xd7\x08\x12\x4c\x78\x62\x64\xa1\x9b\x9f\xb6\xd9\xac\xa9\x8e\x07\x12\x19\x7c\xa7\x79\x89\x7b\xe2\xba\x4f\xb7\x94\x7d\x36\x3d\xa6\x8f\x89\x34\x77\xbd\x63\xbd\x8f\xca\x5c\x64\xe4\x36\x54\x09\xcf\x2f\x3b\xee\x28\x5d\x99\xd3\x65\xde\xc3\x3e\xcb\x60\x80\x6b\x9e\x00\x7a\x67\x1d\xfc\xf6\xbf\x05\x85\xae\xe7\x60\x6f\xad\x01\xf2\xb0\xb7\xb7\x19\x48\xbd\x17\xa4\x4e\xeb\x61\xab\x8c\xc6\x57\xf4\xee\xdf\x57\x6f\xcd\x33\x91\x45\xa2\xd3\x93\x79\x91\xf1\x42\x44\x71\x70\xd5\xfd\x1d\xfd\xf7\x8b\x7d\x92\x0e\x81\x2e\x22\x15\xb9\x71\x52\x94\x98\xf1\x20\xdb\x58\xbc\xa2\xef\x0d\xc4\x36\xbd\x2b\x47\x80\x15\xba\xc8\x5d\xd3\x91\x8b\xc1\x62\x7d\xe2\x16\xeb\xf3\x71\x09\x98\x8b\xb7\x70\x8b\xcb\xc4\x04\xa5\xc6\x45\xda\xc6\x99\xbf\x5d\xb2\x0f\xbd\x23\x7b\x9d\x09\x04\xe6\x09\xbd\x29\x95\xbc\x32\x6f\xd3\x13\x64\x32\xcf\xd9\xdb\x5f\x73\x25\xef\x4c\xb8\xf5\x6f\x7a\xc7\xb3\x7f\xff\x70\xfb\x60\xf5\x8f\xef\x86\xe4\xab\xd0\x7d\xde\x7c\x51\x59\x40\x4c\x21\x52\x34\xf8\x8a\xdd\x5f\x4c\xf5\xbf\xdd\x5f\xb0\xdb\x46\x6f\x8e\xd9\xd7\xc2\x02\x00\x52\x73\xec\x42\xbd\xe2\x01\x0d\x00\x05\xec\x26\x71\x60\x4d\x9a\xa4\x15\xa9\x67\x3b\xb6\x26\xa0\x35\x15\x2a\x4d\xc4\x98\x99\x6f\x52\x9c\xbe\x9b\x53\xe4\x43\xdf\x3a\x10\xfe\xf3\xdb\x74\xaf\xfe\x10\x94\x23\xf3\x03\x94\xa3\x03\x7b\x27\xcc\x69\x35\x43\x55\x8f\xca\xde\xad\x63\x69\xc2\x83\xcd\x25\x38\xfb\xde\x89\xcb\x70\x70\xe6\x84\xe4\x76\x2e\x92\xdb\x80\x04\x24\x9c\xe3\xfe\x17\x38\x73\x9e\xbe\xe8\x51\x0e\xd7\x2e\xfb\x86\xf5\xe2\x17\x79\x9d\x1b\xfa\x5a\x73\x8f\xdc\x0d\xe7\x33\xdf\x71\x27\x56\xaf\xc4\xcf\x02\x64\xec\x48\x58\xde\xc0\x2e\xc0\x2e\xc0\x2e\xc0\x2e\x87\xc6\x2e\xdb\x9f\x76\xeb\x01\x4c\xcb\x71\x77\x94\x2a\x3c\x30\x0c\x94\xf9\xf3\x53\xe6\x81\x61\xfa\x9c\x37\xc0\x30\x30\xdf\x40\x59\x02\x86\xd9\x3d\x86\x79\x8d\xfd\x62\x3d\x90\x39\x15\x99\x0e\x58\x06\x92\xdc\xb9\x48\x72\x03\x12\x98\x70\xae\xfb\x5f\x80\x65\x4e\x5f\x14\x39\x66\x2c\x43\x57\x05\x7a\x0a\xb3\x53\xee\x62\x6f\x50\x96\x61\xfc\x14\x87\x25\x4f\xea\x97\x53\x72\x7f\x67\xba\x6d\xeb\xb8\x16\x8e\xfd\xc1\x07\x72\x8f\xa8\x8c\x51\x95\x3b\xa3\x91\x0c\xc1\x0b\x3a\x2c\x96\x79\x21\x78\xc3\x0e\x39\x2f\x06\x3d\xcf\x1b\xb6\x6a\x37\x10\x7e\x51\xd9\x6d\x92\x78\xa9\x68\x10\x2c\x67\xe9\x0b\xe7\x75\x6d\xe4\x0a\x2b\x1d\xdd\x7a\xfa\xf9\x49\xc8\x33\xbe\x41\x92\x86\xf0\x64\xaf\x91\x44\x36\xaa\x13\xce\x46\xb5\x1e\x13\xad\xcb\x44\xb5\xd2\x18\xd5\x03\x02\x43\xfe\x29\xe4\x9f\x42\xfe\x29\xe4\x9f\x3a\xb5\xfc\x53\xeb\x77\xde\xd6\xdc\x53\x3b\x76\x38\xd8\x5b\xc6\xa9\xf5\xcd\x5f\x9e\x6d\x6a\xc8\x7d\xb0\x49\x8e\xa9\xf5\x7d\xb0\x3c\xbf\xd4\x8e\xfb\x00\x59\xa5\x90\x55\x0a\x59\xa5\x90\x55\x0a\x59\xa5\x76\x96\x55\xaa\xc3\xee\xbf\x90\x51\x6a\xe5\xb5\x8e\x67\xe4\x6f\xd8\xad\x35\xc8\x8a\x75\x64\x59\xb1\xd6\x4f\xa2\x55\x19\xb1\x76\x3c\x9b\x0e\x9a\x07\x6b\x7d\xcf\xac\xc8\x81\xb5\xeb\x5d\x63\xa8\x99\xaf\xd6\x77\x5a\x8b\xe9\x7e\x6b\x73\x96\xfd\xeb\xcf\x8e\xf4\x67\x4d\x68\xce\x39\x43\xa1\x05\xcf\x98\x7f\xcd\xd9\xd6\x81\x83\x80\x83\x18\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\xd0\xc0\x50\x08\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\xd0\x31\xe2\x20\xdc\xbb\x01\x0e\x06\x0e\x06\x0e\x06\x0e\x06\x0e\x76\x20\x0e\xd6\x92\xba\x77\x47\x38\xac\xce\xc0\xa4\x3b\xf0\xd5\x94\x3d\xc6\x32\xec\x95\x85\x5d\x56\xe2\x3d\xa9\x30\x56\x14\xd4\x1a\x42\xa5\xb7\x8c\x1a\xfa\x6e\xad\xec\xd7\x91\x34\x50\x34\x50\xb4\x23\xa2\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x83\x27\x68\xb8\x86\x1f\x38\x10\x38\x10\x38\x10\x38\x10\x38\x10\x38\x70\x0e\x07\x06\x22\xb3\xb5\x17\x39\x51\x91\x58\x5d\x6f\x05\xfa\x0e\x72\x9b\xe9\xdc\x68\x47\xa2\x60\xb1\x9c\xaa\x6c\xe6\x67\x37\x67\x06\x42\x2c\x07\x76\x91\x28\x3e\xd6\x3a\xe1\xf6\xee\xeb\x3f\xe7\xdf\xc0\x0d\xae\x1b\xc2\x33\xdf\x89\x47\x8e\xce\xea\xab\xa3\xf6\xd6\x9b\xfa\x97\xd7\xaf\x27\x07\xdb\x8f\x7a\x5d\x35\xf4\x5f\xb3\x61\x76\x5f\x54\x16\x85\xdf\xde\x7d\xfd\xde\xf6\x32\xd6\xd7\xe6\xeb\xcb\x75\x24\xc5\xe5\x9e\xd0\x32\x6b\x01\xd5\x5b\x2e\xb7\xfa\x6f\x71\xa4\xe5\x5c\x67\x0a\xa8\x2f\x44\x63\x75\xe8\xd7\x99\xc5\x94\xc9\x02\x95\x24\x22\x70\x27\x51\x6d\x3d\xfc\x30\xd5\xf9\x6e\xaa\xb3\x62\x19\x99\x82\x5a\x56\xd2\x47\x5f\x74\xa7\x62\xbb\x26\x31\x00\x25\x3f\x1f\x4a\xde\xed\xa6\xfc\x75\xa4\xfc\xb5\x99\x70\x2e\x97\x4f\xc6\xed\x32\x6a\xec\x64\xbf\xfd\x44\xeb\xf0\x1b\x2d\x8c\xbc\x97\x2c\x1a\xf0\x00\x80\x07\x00\x3c\x00\xe0\x01\x70\x6a\x1e\x00\xdd\x4e\x95\x56\x2f\x80\xbd\xa5\xc6\x41\x06\xa3\xce\x03\x75\xc8\x0c\x46\x7b\x73\xdb\xd8\x20\x67\x50\xab\xdb\xc2\xde\x7a\xe4\xf7\xba\xe9\x36\x96\x2c\x37\x16\x55\x36\x11\x53\x23\x39\x7b\xc4\x57\x89\x12\x76\xf7\xa2\xa9\x53\xcb\xd9\x24\x95\xbc\x92\x22\xe2\x34\x41\xad\xf1\xb5\x9e\xdb\xc9\xe0\x7e\xbf\x34\xac\x46\x13\xcf\x66\x22\x8c\x79\x21\x92\x97\x4a\xa4\xad\x8e\xdc\x38\xb9\xb4\xc6\x55\xea\x74\x16\x65\x3c\xa0\x55\x13\xab\xd0\x0b\x04\xd5\xa1\x4d\xfa\x82\x9b\xa5\x65\xae\x2b\x59\x1f\x2e\xae\xdf\x74\x0d\xb2\x1f\x99\x9a\x3d\xd0\x15\x31\x36\xf5\x34\xe9\x24\x5b\xea\xb8\xc5\x30\x53\x9d\xef\xa8\xca\x6d\x06\xeb\x35\x26\xeb\xa1\x4c\xff\x4d\x3c\x76\xba\xf5\xcb\x72\xaf\x9d\xbd\x4d\x7f\xf8\xef\xc0\x7f\x07\xfe\x3b\xf0\xdf\x81\xff\xce\xce\xfc\x77\x3a\x9e\x05\x0b\x3e\x3c\xfb\x3b\x16\x3f\xd5\x82\xff\xd2\x44\xf0\x5c\xf8\x2d\xe8\x2e\x53\x29\x8f\x48\x3a\xba\x53\x49\x1c\xbc\x34\xec\x60\x6e\xd2\x55\xd1\x83\x7a\xda\xdd\x8c\xff\x31\x66\x3f\xcc\x7e\x66\x44\x97\x54\x48\xbd\x58\xaa\x33\x55\x30\x95\xa5\x0f\x5c\x3a\xbb\x5c\x56\x8a\xeb\x29\x4f\x9c\xae\x7c\x7f\x61\x7e\xbe\xbf\x60\xd3\x58\xf2\x24\xfe\xb7\x3b\x48\x26\x82\xf1\x30\xa4\xd9\x79\x6d\x58\x71\x58\xa9\x61\xa6\xf8\x51\x5e\xbd\x64\xf4\xd3\x31\xfb\x1c\xd3\xe6\x58\xab\xba\xca\x16\xdb\x46\xdb\x8f\x31\x15\x19\xf5\x98\x74\x14\x55\x3c\x6c\x33\xa0\xa6\x05\x9f\x5c\xdb\xf7\x66\xe2\x5b\x54\xcc\xa8\xe9\x7a\xc1\x3e\xa8\x67\x16\xf1\x6c\xc2\xa3\x86\x21\xdd\x2b\x35\x22\x9b\xaa\x6c\xa6\xc7\xa4\xb5\xbf\xbe\xcd\xb5\x68\x79\x77\x91\xd0\xeb\x24\xd6\xd4\xf4\x6d\xac\xa5\xc9\x20\x0e\x2b\x55\x98\x64\x05\x93\x93\xdc\x8d\x71\x4e\xb4\x99\x7e\x75\xd2\xc0\xb8\x36\x98\xee\x1c\x71\xaa\xf6\x95\xb7\x31\x37\x3f\x36\x66\xb7\x41\x20\x52\x93\x0d\xb5\xae\xd9\x8d\x4c\x1b\x46\xec\xca\x4e\xc0\xe6\x04\xcd\x7f\x66\xa3\x5f\x78\xf0\x18\x65\xaa\x94\xa1\x7e\x8a\x6c\xb5\xf4\xd0\x5c\xc7\x19\x11\xd2\xca\xc7\xcd\x42\x5c\x0b\x26\xbe\xa4\x9f\xd9\xe8\x8b\xca\x44\xad\x58\x16\xf0\x3c\xe0\xa1\x6e\xbd\xed\x1f\x63\xce\xa7\xf2\x72\xa3\x7a\x2e\x14\x38\xf5\x65\x6c\x33\x21\xd3\xf9\xe9\x7e\x40\x4b\x01\xdc\xb4\x8e\xc7\x4d\xab\xdb\xec\x5a\xe5\xaa\xb5\x3f\x65\xfe\x90\x4e\x5b\xdd\xfa\x69\x85\xe3\xd6\xfe\x0e\xfc\xa1\xba\x70\x75\xeb\xc2\x45\x37\xae\xd7\x1e\xa7\xad\x00\x1a\x1e\x14\x1b\x12\x3d\x9b\xe8\xff\xb4\x1d\x27\x6a\x6f\x2f\x89\xf0\x37\x67\x78\x25\x5f\xf5\x11\xec\xdf\xe2\x93\xb1\x24\xf4\xbf\x83\xeb\xc2\xc6\x97\x01\xf4\x7e\x33\x89\x31\xb6\x65\xf6\xd4\x77\x5a\x81\xbf\x94\x64\x0b\xaf\x0e\x5d\x62\x9b\x4f\x07\x3c\x39\xe0\xc9\x71\x92\x9e\x1c\xf0\x7d\x80\xef\x03\x7c\x1f\xe0\xfb\x00\xdf\x87\x83\xfb\x3e\x00\xaa\x83\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\x2e\x3d\x04\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x70\x85\xf2\x2a\xc6\x32\x6e\x98\xfb\xad\x81\x7e\xbc\xd4\x96\x7d\x06\xe1\xaa\xeb\xa9\x4b\x5f\x89\x49\x0f\x4b\x5a\xb6\xb8\x76\xf9\x58\x2e\xf1\x79\x33\x37\x94\x17\xa9\xca\x7b\xc6\x4a\x46\xb6\x67\x7c\x2b\x82\x64\x5e\xde\x35\x43\xda\x2e\x00\x73\xc5\x15\x51\xfb\xdc\x68\x7a\x89\xd2\x44\xa4\x50\x7d\x26\x0c\x36\x52\x88\xb4\xfd\xdf\xb8\xe4\x91\xc8\x8c\xdd\xca\xdc\x8f\x96\xe7\x2a\x88\x49\x11\xf3\x16\x22\x4e\x86\x3e\x95\x31\xad\xa7\x17\x2f\x5e\x33\x9d\xf1\x47\xdd\x8b\xc5\x83\xc8\x85\x93\xb6\xea\xf1\x30\x2e\x6e\x86\xa4\x4d\xb2\x06\xa9\x8c\xdd\xbc\xff\x49\x3f\x9b\xf1\x80\xf0\x4f\xa2\x64\x64\x64\x2b\xb2\xd8\x68\xd5\x9a\xc7\xd2\xec\x67\x64\x11\xa9\x9e\x25\x93\xb8\x85\x53\x6c\xf2\xc2\xe8\x04\xfa\x70\x7d\x1d\xa9\x84\xcb\x68\xac\xb2\xe8\x3a\x7d\x8c\xae\x4b\x19\x07\x2a\x14\xd7\x7f\xfb\x9a\xdf\xe9\x52\xb6\x36\xb1\xda\xce\xe9\x73\x78\x06\x25\x8c\x9d\x94\x8c\xd4\x55\x3e\x7a\xdf\x41\x3e\xfa\x68\x4c\x48\x47\xd0\x96\xf7\x6b\xdb\x62\xfc\x64\x8f\xa0\x31\x27\x2b\xb8\x92\x18\x74\xac\x82\xeb\x1b\xd6\xd3\xf5\x31\x2d\xf9\x90\x76\x78\x8b\xcc\x76\x12\xe2\xf2\x9b\x63\x0e\x2f\x21\x1e\xc9\x15\x1d\x10\xfe\xea\x83\x3c\x58\xe1\x0f\x41\xd1\x67\x14\x14\x8d\xe8\x2f\x44\x7f\x21\xfa\x0b\xd1\x5f\xd0\x5b\x97\xad\xa2\x41\xc6\x4f\x1c\x46\xbb\x43\xf8\x87\x7f\x72\x65\xf8\xc7\xd1\x6a\x74\xde\x3c\xdf\x7b\xd0\x07\xd1\xff\xa6\x60\xb6\x8d\x16\xa6\x8b\xd9\x73\xa4\x47\x4d\x9a\x11\x7f\x91\xff\xd6\x44\xff\xc5\x83\x62\xcc\xd8\x67\xfd\x5f\xf7\xef\x33\x1e\x93\x81\x32\x67\x41\x52\xe6\x85\xc8\xaa\x33\xca\x38\x7a\xb2\x24\x7e\x14\x6c\xe4\x13\xd8\x8e\xb4\x28\xea\xc4\xa7\x31\xbb\x4b\xb8\x94\xd6\xff\x82\x04\x1c\x9e\x18\x99\xea\xe6\xa7\x6d\x36\x7d\xaa\xe3\x81\x44\x0f\xdf\x69\x5e\x72\x9f\xb8\xee\xd3\x2d\x65\x9f\x4d\x8f\xe9\xe3\x26\xcd\x5d\xef\x58\x17\xa7\x32\x17\x19\xf9\x26\x55\x42\xf8\xcb\x8e\x3b\x4a\x57\xe6\x74\xc1\xfa\xb0\xcf\x44\x98\x0c\x37\x3b\x62\xf4\xd6\x7c\xf4\xe7\xcb\x16\xa8\xbb\x91\x75\xa8\x5b\x9d\x8e\x29\x0f\xd1\xf1\x92\x7c\xf2\xa9\xd9\xea\xea\xfd\x2b\x7a\xf7\xef\xab\xf7\xbc\x99\xc8\x22\xd1\xe9\xc9\xbc\xc8\x78\x21\xa2\x38\xb8\xea\xfe\x8e\xfe\xfb\xc5\x3e\x49\xbb\x6b\x17\x61\x86\x9c\x30\x29\xc6\xcb\xf8\x7f\xf5\x20\xd8\x50\x0d\x86\x69\x5d\xde\x95\xff\xc1\x0a\x6d\xe2\xae\xe9\xa7\xc5\x60\x73\x3e\x71\x9b\xf3\xf9\x38\x1c\xcc\x85\x53\xb8\xc5\x65\x42\x7e\x52\xe3\x01\x6d\xc3\xc8\xdf\x2e\xd9\xa8\xde\x91\xc5\xcd\xc4\xf9\xf2\x84\xde\x94\x4a\x5e\x99\xb7\xe9\x09\x32\x7a\xe7\xec\xed\xaf\xb9\x92\x77\x26\x9a\xfa\x37\xbd\x25\xda\xbf\x7f\xb8\x8d\xb2\xfa\xc7\x77\x43\xf2\x84\xe8\x3e\x6f\xbe\xa8\x2c\x20\x2a\x10\x29\x1a\x7c\xc5\xee\x2f\xa6\xfa\xdf\xee\x2f\xd8\x6d\xa3\x37\xc7\xec\x6b\x61\x4d\xf8\xa4\x60\xd8\x85\x7a\xc5\x03\x1a\x00\x8a\xc7\x4d\xe2\xc0\x1a\x25\x49\x1f\x51\xcf\x76\x6c\x4d\xbc\x6a\x2a\x54\x9a\x88\x31\x33\xdf\xa4\x30\x7c\x37\xa7\xc8\x45\xbe\x75\x20\xfc\xe7\xb7\xe9\x5e\xfd\x21\xa8\x25\xe6\x07\xa8\x25\xc3\x56\x4b\xd2\x39\xc7\xec\x63\x55\x4c\xca\xde\x0d\x5f\x69\xc2\x83\x3e\x44\x44\x5b\xd2\x79\x09\x89\x70\x52\x85\xcc\xb8\x64\x98\xce\x47\x66\x1c\x90\x68\x06\x09\xc2\xff\x02\x27\x55\x48\x43\x4b\xa5\xa1\xf2\x78\x8d\xb4\x6f\x58\xbf\x6e\x9d\x5a\x75\xcd\xd4\x13\x4f\xea\xfe\x9d\x5b\x18\x80\x71\x2c\x77\x32\xf6\xb6\x1c\xc9\x3b\x36\x5d\x9f\xe9\x41\xbc\x7e\x28\x96\x1e\xc2\x3b\x1e\x10\xa0\x92\x81\xa2\x92\x5d\x29\x97\x6e\x87\x75\x83\xbe\x77\x45\xf3\xd6\x6d\xf1\x50\x38\x17\xff\x86\xa8\x0c\x51\x19\xa2\x32\x44\xe5\x0e\xa2\x72\x6e\xdc\x28\xb7\xc9\x6b\xbf\x91\x27\x9e\xf9\x4e\x5f\xc7\xc5\x66\x3e\x79\xd6\x55\x14\x9b\x22\x36\x92\x5e\x37\x12\x38\x46\x41\xda\x1f\x94\xb4\x0f\xc7\xa8\x5e\xcf\x99\x8d\x5d\xa4\x5a\x0e\x9a\xa3\x54\x49\xe0\x28\x05\xe8\x75\x7e\xb6\x36\x38\x4a\xf5\x39\x6f\xe0\x28\x05\xcc\x09\x35\x65\x08\x6a\x0a\x1c\xa5\xda\x07\xd3\xd9\xb2\xfb\x35\x4d\x6c\x6c\xc9\x3e\x15\xa1\x11\x8e\x53\x90\x21\x97\x0c\xd3\xf9\xc8\x90\x03\x12\xd5\x20\x51\xf8\x5f\x40\x83\x20\x1d\x81\x06\x99\xfb\xf9\x57\x30\xa1\x9d\x52\x20\x9b\xb5\x45\x86\xf1\x53\x1c\x96\x3c\xa9\x5f\x88\xcf\x7d\x9e\xa6\xa5\xbd\x33\xae\xdd\xfb\xf4\xc1\xdf\x18\x35\xa2\x52\x47\x55\x06\xbf\x46\x4a\x36\x2f\x9b\xb1\x58\xe6\x85\xe0\x0d\x6b\xed\xbc\xe4\xf6\xbc\xa9\xb1\xef\x5f\x73\x57\x80\xe3\x16\xfb\xa1\xde\x74\x43\x49\x18\x3e\x3f\x09\x89\xdd\x8e\x46\xf2\x6c\x2f\xaf\x47\x0e\xdd\x13\xce\xa1\xbb\x1e\xbe\xad\xcb\x9f\xbb\xd2\x82\xd7\x03\x58\x44\xd6\x5c\x64\xcd\x45\xd6\x5c\x64\xcd\x3d\xb5\xac\xb9\xeb\x77\xde\xd6\x8c\xb9\x3b\x76\xe3\xd8\x5b\x9e\xdc\x8e\x6e\xf9\xad\x19\x61\x87\xdc\x07\x9b\x64\xc6\x5d\xdf\x07\xcb\xb3\xe2\xee\xb8\x0f\x90\x0b\x17\xb9\x70\x91\x0b\x17\xb9\x70\x91\x0b\x77\x67\xb9\x70\x3b\xec\xfe\x0b\x79\x70\x57\xde\x37\x7f\x46\x5e\x9c\xdd\x5a\x83\x5c\xbe\x47\x96\xcb\x77\xfd\x24\x5a\x95\xc7\x77\xc7\xb3\xe9\xa0\xd9\x7b\xd7\xf7\xcc\x8a\xcc\xbd\xbb\xde\x35\x86\x9a\xaf\x77\x7d\xa7\xb5\x58\xf8\xb7\x36\x67\xd9\xbf\xfe\xec\x99\x2f\xb5\x64\x5d\xda\x11\x66\xaa\xb3\x25\xe9\x0e\x40\x35\x65\x8f\xb1\x5c\xe1\xd7\xd3\x0b\x63\xba\xac\x04\x60\x12\xf2\xad\xb0\xa4\x65\xe8\x4a\xb2\x1f\x35\x34\xc2\x5a\xd9\xbd\x12\x2a\xd0\x29\xd0\xa9\xe3\xa3\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x47\x4f\xa6\x70\x7d\x0a\xc0\x1b\xc0\x1b\xc0\x1b\xc0\x1b\xc0\xdb\x06\xe0\x4d\xa9\x2c\x8c\x25\x55\xde\x81\xb7\xad\x48\xda\x41\x42\x3d\xe7\x46\x3b\xa2\xd4\xeb\x53\x95\xcd\xfc\xec\xe6\xcc\x58\xef\x97\xf3\xaf\x48\x14\x1f\x6b\x9d\x70\x7b\xf7\xf5\x9f\xf3\x6f\x20\xbc\x75\x43\xf8\xe4\x3b\xf1\xd8\xd1\x53\x6d\x62\xd4\xde\x7a\x53\xff\xf2\xfa\xf5\xf4\x74\x73\xdc\x4b\xaa\xa1\x13\x9a\xbd\xb2\xfb\x7a\xfa\xe3\xe6\xf6\xee\xeb\xf7\xb6\xf7\xb0\xaa\x36\x5f\x55\xae\x23\x29\x4a\xf4\x84\x16\xd7\xff\x79\xba\x79\xd5\xfa\xd2\x62\x9c\xd8\x6d\xa4\xb1\xb1\x1f\x66\x56\x48\x77\x0a\xaa\xf3\xfe\xf8\x97\xae\xc0\x8a\x55\xa1\xdf\x6e\x2e\x0b\x7a\xe3\x8b\xca\x6e\x93\xc4\x27\x52\x1f\xc4\xfa\x80\x6f\x85\xbd\xf1\xa0\x3e\xd5\x9e\x6e\xc6\x34\x60\xa7\xbd\xf0\xd6\xfb\x52\xf4\x16\xe4\xbb\xb8\x8e\xdb\x5d\x29\xe6\x17\xd6\xbc\xdb\x04\x3c\x26\xe0\x31\x01\x8f\x09\x78\x4c\xc0\x63\x02\x1e\x13\xf0\x98\x80\xc7\xc4\x26\xbb\x2d\x3c\x26\xe0\x31\x01\x8f\x09\x78\x4c\xc0\x63\x02\x1e\x13\xf0\x98\x38\x3b\x8f\x09\xb8\x14\xc0\xa5\x00\x2e\x05\xed\xb3\x09\x2e\x05\x4b\xd7\x19\x5c\x0a\x36\x77\x29\x78\xba\xb9\x96\x1e\x72\x98\x80\x5d\xfa\xfb\x3f\x2d\xe4\xc6\x1c\xf7\xfd\xc2\x1b\x53\x26\x0b\x54\xa2\xb5\x0b\x3b\x4d\xd7\x31\x1b\xf3\x52\x93\xda\x7c\xf4\x25\x78\x68\x13\x2e\x94\xd3\xf5\xa6\x7d\xd8\x9e\xcf\xc7\xf6\xdc\xed\xd6\xf6\x75\xf6\xe7\xd7\xe6\x83\xb9\x5c\x3e\x19\xb7\x4b\xfb\xb0\x13\xd0\xfd\x89\x16\xde\x37\x5a\x18\x79\x2f\x19\x1d\x60\x57\x87\x5d\x1d\x76\x75\xd8\xd5\x4f\xcd\xae\xde\xed\x54\x69\xb5\xad\xef\x2d\x4d\x0b\xb2\xe9\x74\x1e\xa8\x43\x66\xd3\xd9\x1b\x0c\xd9\x20\x7f\x4d\x2b\x0c\xd8\x5b\x8f\xfc\x5e\x57\x6b\x63\xc9\x72\xa3\x6d\xb2\x89\x98\x1a\xc9\xd9\x1b\xce\x2a\x51\xc2\xee\x5e\x34\x75\x6a\xf9\x83\xa4\x92\x57\x52\x44\x9c\x26\xa8\x55\x4c\xeb\x79\x86\x8c\x11\xdd\x2f\x0d\xab\xae\xc4\xb3\x99\x08\x63\x5e\x88\xe4\xa5\x12\x69\xab\x23\x37\x4e\x2e\xad\xe2\x49\x9d\xce\xa2\x8c\x07\xb4\x6a\x62\x15\x7a\x81\xa0\x3a\xb4\x49\x5f\x70\xb3\xb4\xcc\x75\x25\xeb\xc3\xc5\xf5\x9b\xae\x41\xf6\x23\x53\xb3\x07\xba\x22\xc6\xa6\x9e\x26\xa9\x62\x4b\x1d\xb7\x18\x66\xaa\xf3\x1d\x55\xb9\x4d\x99\x5f\xa3\xce\x0f\x65\xfa\x6f\xc2\xc1\xba\xf5\xcb\x72\x16\xb6\xb7\xe9\x0f\x2a\x06\x2a\x06\x2a\x06\x2a\x06\x2a\xb6\x33\x2a\xd6\xf1\x2c\x58\x20\x63\xfb\x3b\x16\x3f\xd5\xae\x2e\x4c\xc9\x56\xeb\xb7\xa0\xbb\x4c\xa5\x3c\x22\xe9\xe8\x4e\x25\x71\xf0\xd2\xb0\x83\xb9\x49\x57\xdd\x7d\xa8\xa7\xdd\xcd\xf8\x1f\x63\xf6\xc3\xec\x67\x46\x74\x49\x85\xd4\x8b\xa5\x3a\x53\x05\x53\x59\xfa\xc0\xa5\xb3\xcb\x65\xa5\xb8\x9e\xf2\xc4\xe9\xca\xf7\x17\xe6\xe7\xfb\x0b\x36\x8d\x25\x4f\xe2\x7f\xbb\x83\x64\x22\x18\x0f\x43\x9a\x9d\xd7\xc6\x8e\x1e\x56\x6a\x98\x29\x7e\x94\x57\x2f\x19\xfd\x74\xcc\x3e\xc7\xb4\x39\xd6\xaa\xae\xb2\xc5\xb6\xd1\xf6\x63\x4c\x45\x46\x3d\x26\x1d\x45\x15\x0f\xdb\x0c\xa8\x69\xc1\x27\xd7\xf6\xbd\x99\xf8\x16\x15\x33\x6a\xba\x5e\xb0\x0f\xea\x99\x45\x3c\x9b\xf0\xa8\x61\x25\xf7\x4a\x8d\xc8\xa6\x2a\x9b\xe9\x31\x69\xed\xaf\x6f\x73\x2d\x5a\xde\x5d\x24\xf4\x3a\x89\x35\x35\x7d\x1b\x6b\x69\x32\x88\xc3\x4a\x15\x26\x59\xc1\x64\xe6\x76\x63\x9c\x53\x70\x1f\xfd\xea\xa4\x81\x71\x6d\x30\xdd\x39\xe2\x54\xed\x2b\x6f\x63\x6e\x7e\x6c\xcc\x6e\x83\x40\xa4\x26\x33\x67\x5d\xb3\x1b\x99\x36\x8c\xd8\x95\x9d\x80\xcd\x09\x9a\xff\xcc\x46\xbf\xf0\xe0\x31\xca\x54\x29\x43\xfd\x14\xd9\x6a\xe9\xa1\xb9\x8e\x33\x22\xa4\x95\x8f\x9b\x85\xb8\x16\x4c\x7c\x49\x3f\xb3\xd1\x17\x95\x89\x5a\xb1\x2c\xe0\x79\xc0\x43\xdd\x7a\xdb\x3f\xc6\x9c\x4f\xe5\xe5\x46\xf5\x5c\x28\x70\xea\xcb\xd8\x66\x42\xa6\xf3\xd3\xfd\x80\x96\x02\x20\xec\xe3\x41\xd8\xdd\x66\xd7\x2a\x8c\xbd\x3f\x65\xfe\x90\x40\xbb\x5b\x3f\xad\x80\xda\xfb\x3b\xf0\x87\x8a\xb7\xbb\x75\xe1\x22\xe2\x7e\xed\x71\xda\x4a\x97\x11\xba\xba\x21\xd1\xb3\xd9\xe8\xbb\xa1\xbc\x93\x0c\x9c\x33\xc7\x77\x25\x5a\x1d\x4d\x10\xdd\xe0\x03\x69\xe1\x88\x01\x47\x8c\x53\x72\xc4\x80\xeb\x02\x5c\x17\xe0\xba\x00\xd7\x05\xb8\x2e\x1c\xdc\x75\x01\x4c\x1c\x98\x14\x98\x14\x98\x14\x98\x14\x98\x14\x98\x14\x98\x74\xe9\x21\x00\x72\x01\x72\x01\x72\x01\x72\x01\x72\x81\x4b\x05\x57\x21\x12\x5c\x2a\x78\x8e\x97\x0a\x5a\x09\x89\x32\x34\xe8\xcd\x44\x8f\x0e\xcb\x03\x95\x8a\x4b\x96\x97\x01\x1d\x53\xb4\xbb\x0b\x3e\x33\x5b\x53\x9a\x29\x92\xc8\xda\x22\x7c\x57\xe7\x6b\x20\x12\xd2\xfc\x19\x49\x1b\xd6\xb5\xc6\xfe\xf5\x67\x35\xc8\x2a\xef\x99\x7a\x19\xed\x84\xf1\xb5\x80\xcb\x3c\xd8\x3b\xe2\xda\x2e\xbc\x73\xc5\xd4\xd9\xc1\x3e\xd8\x4b\xa8\x27\xc2\x8d\xea\x03\x3e\xd8\x70\x23\xb2\x39\xfc\xc6\x25\x8f\x44\x66\xac\x67\x66\x7b\xcc\x73\x15\xc4\xa4\x0e\x7a\x3b\x15\x27\x73\xa3\xca\x98\x90\x85\x16\x57\x9d\x7e\x3c\xe3\x8f\xba\x17\x8b\x07\x91\x0b\x27\xf3\xd5\x83\x6a\x5c\xf0\x0d\xc9\xbc\x64\x93\x52\x19\xbb\x79\xff\x93\x7e\x36\xe3\x01\x41\xa8\x44\xc9\xc8\x48\x78\x64\x37\xd2\x0a\x3e\x8f\xa5\xd9\x93\xc8\x2e\x53\x3d\x4b\x86\x79\x8b\xc8\xd8\xe4\x85\xd1\x01\xf9\xe1\xfa\x3a\x52\x09\x97\xd1\x58\x65\xd1\x75\xfa\x18\x5d\x97\x32\x0e\x54\x28\xae\xff\xf6\x35\xbf\xd3\xa5\x6c\x6d\xe8\xb5\x9d\xd3\xe7\xf0\x0c\x4a\x24\x3c\x46\x49\xad\xab\x94\xf6\xbe\x83\x94\xf6\xd1\xd8\xab\x86\x53\xe5\xf7\x6b\xab\x6c\x5c\x67\x87\x53\xe7\x53\x14\x86\x49\xf4\x18\xb8\x30\xfc\x86\xf5\x72\xeb\x8b\xf9\xa7\xff\xec\xe9\xf2\x97\xf5\xa2\x57\xdb\x85\x2f\x07\x13\xbd\x8e\xe4\x66\x0d\x88\x5b\xf5\x41\x1e\xac\xb8\x85\x58\xe6\x33\x8a\x65\x46\xd0\x16\x82\xb6\x10\xb4\x85\xa0\x2d\x68\x8a\xcb\x56\xd1\x20\xc3\x1e\x0e\xa3\x81\x21\x6a\x63\x85\x32\x66\xd5\x91\x81\xab\x63\xde\x6c\xdd\x7b\xac\x06\x71\xfd\xa6\xe8\xb5\x4e\x89\xd2\xaf\xec\x3a\x40\xa3\x26\x8c\x88\xbf\xc8\xed\x6a\xa2\xff\xe2\x41\x31\x66\xec\xb3\xfe\xaf\xfb\xf7\x19\x8f\xc9\xa2\x97\xb3\x20\x29\xf3\x42\x64\xd5\x11\x63\xfc\x33\x59\x12\x3f\x0a\x36\xf2\x75\x1c\x69\x49\xd2\x49\x3f\x63\x76\x97\x70\x29\xad\xdb\x04\xc9\x27\x3c\x31\x22\xd1\xcd\x4f\xdb\xec\xd9\x54\xc7\x03\x49\x0e\xbe\xd3\xbc\xe0\x3d\x71\xdd\xa7\x5b\xca\x3e\x9b\x1e\xd3\xa7\x45\x9a\xbb\xde\xb1\x9e\x49\x65\x2e\x32\x72\x29\xaa\x64\xe8\x97\x1d\x77\x94\xae\xcc\xe9\xf2\xf0\x61\x1f\x69\xb0\xca\xcd\x1f\x04\x7a\x67\x3d\x96\x53\x60\x0b\x42\x4d\xec\xc5\xda\x47\x5a\x3e\xdd\x05\x3c\x0f\x85\x39\x03\xb6\x1f\x1d\x6c\x27\xc7\x9d\xad\x52\x22\x5f\xd1\xbb\x7f\x5f\xbd\x43\xcf\x44\x16\x89\x4e\x4f\xe6\x45\xc6\x0b\x11\xc5\xc1\x55\xf7\x77\xf4\xdf\x2f\xf6\x49\x3a\x0b\xba\xc8\x55\xe4\xe9\x49\x81\x64\xc6\xc9\x6c\x43\x19\x8b\xbe\x36\x10\x3b\xf5\xae\x5c\x04\x56\xe8\x25\x77\x4d\x4f\x2f\x06\xeb\xf5\x89\x5b\xaf\xcf\xc7\x59\x60\x2e\x20\xc3\x2d\x2e\x13\x34\x94\x1a\x1f\x6a\x1b\x88\xfe\x76\xc9\x2e\xf4\x8e\x6c\x77\x26\x52\x98\x27\xf4\xa6\x54\xf2\xca\xbc\x4d\x4f\x90\xf9\x3c\x67\x6f\x7f\xcd\x95\xbc\x33\xf1\xd8\xbf\xe9\xfd\xce\xfe\xfd\xc3\xed\x82\xd5\x3f\xbe\x1b\x92\x17\x43\xf7\x79\xf3\x45\x65\x01\xf1\x85\x48\xd1\xe0\x2b\x76\x7f\x31\xd5\xff\x76\x7f\xc1\x6e\x1b\xbd\x39\x66\x5f\x0b\x0b\x03\x48\xd7\xb1\x0b\xf5\x8a\x07\x34\x00\x14\xd1\x9b\xc4\x81\x35\x6f\x92\x6a\xa4\x9e\xed\xd8\x9a\x88\xd7\x54\xa8\x34\x11\x63\x66\xbe\x49\x81\xfc\x6e\x4e\x91\x93\x7d\xeb\x40\xf8\xcf\x6f\xd3\xbd\xfa\x43\xd0\x90\xcc\x0f\xd0\x90\x0e\xad\x21\xa5\x73\xce\xdb\x03\xd7\x91\xca\xde\x2d\x65\x69\xc2\x83\x4d\x05\x39\xfb\xd6\x89\x8b\x72\xf0\xf6\x84\x00\x77\x2e\x02\xdc\x80\xe4\x24\x1c\xe7\xfe\x17\x78\x7b\x9e\x83\x04\x52\x0e\xde\x46\xfb\x86\x75\x75\x9c\xa4\x68\xb6\x96\xec\x78\xbd\x23\x3e\x1b\xe2\x2f\xc3\xf8\x29\x0e\x4b\x9e\xd4\xa3\x27\xb9\xbf\xd4\x83\xda\x3a\xae\x39\x06\x7d\xf0\x2e\x45\x23\x2a\x61\x54\x5d\xed\xd4\xb8\xab\xc7\x0b\x3c\x2c\x96\x79\x21\x78\xc3\xf4\x38\x2f\x0e\x3d\x2f\xda\xb5\x7c\x80\xdc\x17\x95\xdd\x26\x89\x97\x8d\xf2\x8b\x01\x6c\x6a\x4b\x5f\x38\xaf\xa8\xc6\x15\xa6\x3a\x0a\xca\xfd\xfc\x24\xe4\x59\x07\x38\xd2\x20\x9e\x7a\x94\x23\x6e\x4d\x3c\xe1\x5b\x13\xd7\x23\xa2\x75\x37\x26\x6e\x9f\x6b\xb6\x1b\xfe\xc2\x3d\x89\xb8\x27\x11\xf7\x24\xe2\x9e\xc4\x53\xbb\x27\x71\xfd\xce\xdb\x7a\x47\xe2\x8e\x9d\x0d\xf6\x76\x33\xe2\xfa\xe6\x2f\xbf\x15\x71\xc8\x7d\xb0\xc9\x5d\x88\xeb\xfb\x60\xf9\x3d\x88\x3b\xee\x03\xdc\x7e\x88\xdb\x0f\x71\xfb\x21\x6e\x3f\xc4\xed\x87\x3b\xbb\xfd\xb0\xc3\xee\xbf\x70\xf3\xe1\xca\x48\xc3\x33\xf2\x35\xec\xd6\x1a\xdc\xde\x78\x64\xb7\x37\xae\x9f\x44\xab\x6e\x6e\xdc\xf1\x6c\x3a\xe8\x7d\x8d\xeb\x7b\x66\xc5\x5d\x8d\xbb\xde\x35\x86\x7a\x43\xe3\xfa\x4e\x6b\xb1\xe1\x6f\x6d\xce\xb2\x7f\xfd\xb9\x29\x0b\x5a\x79\x95\xc6\x39\x23\xa2\x39\x7f\x99\x7f\xcd\xd9\xd9\x01\x87\x00\x87\x18\xe0\x90\x7d\x12\x70\x08\x70\x08\x70\x08\x70\x08\x70\x08\x70\x08\x70\x08\x70\x68\x70\x60\x04\x70\x08\x70\x08\x70\x08\x70\x08\x70\x08\x70\x08\x70\xe8\x18\xe1\x10\x6e\xe0\x00\x15\x03\x15\x03\x15\x03\x15\x03\x15\x3b\x2c\x15\x6b\xb9\x60\x7e\x47\x70\xac\x4e\xc4\xa4\x3b\xf7\xd5\x94\x3d\xc6\x32\xec\x91\x8c\x5d\x56\x32\x3e\xe9\x31\x56\x1e\xd4\x6a\x42\xa5\xbc\x8c\x1a\x4a\x6f\xad\xec\xd7\x71\x35\x30\x35\x30\xb5\xa3\x62\x6a\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xc7\xc2\xd3\x70\x39\x3f\xd0\x20\xd0\x20\xd0\x20\xd0\x20\xd0\x20\xd0\x60\x07\x34\x38\x11\x05\xbf\xb9\xde\x8a\xfa\x1d\xe4\x1a\xd4\xb9\x51\x8f\x44\xd1\x94\xd6\xcd\x00\xaf\x80\x77\x91\x28\x9a\xe8\x8e\x7a\xe0\xf6\xee\xeb\xf7\xb6\x97\x71\x05\xec\x86\x4c\xad\xd6\x91\x14\x5c\x78\x5a\x60\x8d\xe6\x4a\xed\xed\x37\xf5\x1a\x74\x5f\x6e\x7b\x88\x43\x35\x86\x9e\xcc\x0a\x1a\x4e\x93\x68\x50\xf6\x15\x8b\x44\xbf\xdd\xb2\x4a\xe8\x35\x5c\x2e\x3a\xdf\xf5\x83\x59\x97\xf3\xf7\x1c\xd3\xa0\x8d\xab\x48\xdf\xd3\x5e\x8c\xeb\x51\xf7\xe0\x22\x47\xe7\x9a\x00\xdc\x0d\xdc\x0d\xdc\x0d\xdc\x0d\xdc\x0d\xdc\x0d\xdc\x0d\xdc\xbd\x7e\xb7\x05\xee\x06\xee\x06\xee\x06\xee\x06\xee\x06\xee\x06\xee\x3e\x3b\xdc\x0d\x54\x0a\x54\x0a\x54\xda\x3e\x9b\x80\x4a\x97\xae\x33\xa0\xd2\xed\x51\x69\xe7\xab\x45\xcd\x99\xdf\x2f\xd5\x31\x65\xb2\x40\x25\x5a\xc5\xb0\x73\x75\x1d\xcc\x31\x2f\xb5\xe0\x9c\x8f\xbe\x98\x1e\xd2\xe8\xc2\x0a\x7d\x3e\x56\xe8\x6e\xb9\x5a\xd7\x59\xa2\x5f\x9b\x82\xfd\x72\xf9\x64\xdc\x2e\xa7\xf3\x4e\x80\xf8\x27\x5a\x7d\xdf\x68\x61\xe4\xbd\xe4\x71\x86\x85\x1d\x16\x76\x58\xd8\x61\x61\x3f\x35\x0b\x7b\xb7\x53\xa5\xd5\xca\xbe\xb7\xe4\xec\xc8\xa1\xdf\x79\xa0\x0e\x99\x43\x7f\x6f\x58\x64\x83\xac\xf5\xad\x58\x60\x6f\x3d\xf2\x7b\x5d\xc1\x8d\x25\xcb\x8d\xde\xc9\x26\x62\x6a\x24\x67\x6f\x42\xab\x44\x09\xbb\x7b\xd1\xd4\x29\x85\x39\x1c\x26\x5a\xb5\x93\x57\x52\x44\x9c\x26\xa8\x55\x51\xb5\x36\xed\x4e\x50\x63\x4e\xf7\x4b\xc3\xea\x2c\xf1\x6c\x26\xc2\x98\x17\x22\x79\xa9\x44\xda\xea\xc8\x8d\x93\x4b\xab\x82\x52\xa7\xb3\x28\xe3\x01\xad\x9a\x58\x85\x5e\x20\xa8\x0e\x6d\xd2\x17\xdc\x2c\x2d\x73\x5d\xc9\xfa\x70\x71\xfd\xa6\x6b\x90\xfd\xc8\xd4\xec\x81\xae\x88\xb1\xa9\xe7\x4c\x70\xd9\x5a\xc7\x2d\x86\x99\xea\x7c\x47\x55\x6e\x53\xeb\xd7\x28\xf6\x43\x99\xfe\x9b\x10\xb1\x6e\xfd\xb2\x9c\x8a\xed\x6d\xfa\x83\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\xed\x8c\x8f\x75\x3c\x0b\x16\x18\xd9\xfe\x8e\xc5\x4f\xb5\x4b\xe5\x52\x32\xd8\xfa\x2d\xe8\x2e\x53\x29\x8f\x48\x3a\xba\x53\x49\x1c\xbc\x34\xec\x60\x6e\xd2\x55\xb7\xd2\xe9\x69\x77\x33\xfe\xc7\x98\xfd\x30\xfb\x99\x11\x5d\x52\x21\xf5\x62\xa9\xce\x54\xc1\x54\x96\x3e\x70\xe9\xec\x72\x59\x29\xae\xa7\x3c\x71\xba\xf2\xfd\x85\xf9\xf9\xfe\x82\x4d\x63\xc9\x93\xf8\xdf\xee\x20\x99\x08\xc6\xc3\x90\x66\xe7\xb5\xb1\xa8\x87\x95\x1a\x66\x8a\x1f\xe5\xd5\x4b\x46\x3f\x1d\xb3\xcf\x31\x6d\x8e\xb5\xaa\xab\x6c\xb1\x6d\xb4\xfd\x18\x53\x91\x51\x8f\x49\x47\x51\xc5\xc3\x36\x03\x6a\x5a\xf0\xc9\xb5\x7d\x6f\x26\xbe\x45\xc5\x8c\x9a\xae\x17\xec\x83\x7a\x66\x11\xcf\x26\x3c\x6a\x98\xca\xbd\x52\x23\xb2\xa9\xca\x66\x7a\x4c\x5a\xfb\xeb\xdb\x5c\x8b\x96\x77\x17\x09\xbd\x4e\x62\x4d\x4d\xdf\xc6\x5a\x9a\x0c\xe2\xb0\x52\x85\x49\x56\x20\xe3\x84\x1f\x63\x7d\x58\xdb\x93\xd4\x49\x03\xe3\xda\x60\xba\x73\xc4\xa9\xda\x57\xde\xc6\xdc\xfc\xd8\x98\xdd\x06\x81\x48\x0b\x3a\x9b\xea\x9a\xdd\xc8\xb4\x61\xc4\xae\xec\x04\x6c\x4e\xd0\xfc\x67\x36\xfa\x85\x07\x8f\x51\xa6\x4a\x19\xea\xa7\xc8\x56\x4b\x0f\xcd\x75\x9c\x11\x21\xad\x7c\xdc\x2c\xc4\xb5\x60\xe2\x4b\xfa\x99\x8d\xbe\xa8\x4c\xd4\x8a\x65\x01\xcf\x03\x1e\xea\xd6\xdb\xfe\x31\xe6\x7c\x2a\x2f\x37\xaa\xe7\x42\x81\x53\x5f\xc6\x36\x13\x32\x9d\x9f\xee\x07\xb4\x14\x00\x66\x1f\x0f\xcc\xee\x36\xbb\x56\x01\xed\xfd\x29\xf3\x87\x44\xdb\xdd\xfa\x69\x05\xde\xde\xdf\x81\x3f\x54\xd0\xdd\xad\x0b\x17\x61\xf7\x6b\x8f\xd3\x56\xc4\x8c\x10\xd7\x0d\x89\xde\x8f\x82\x17\x65\x57\x94\x77\xba\xc1\x74\xe6\x0c\xaf\xe4\xab\xe3\x0a\xac\x3b\x8e\x80\x5b\xf8\x65\xc0\x2f\xe3\x94\xfc\x32\xe0\xc9\x00\x4f\x06\x78\x32\xc0\x93\x01\x9e\x0c\x07\xf7\x64\x00\x22\x07\x35\x05\x35\x05\x35\x05\x35\x05\x35\x05\x35\x05\x35\x5d\x7a\x08\x00\x64\x00\x64\x00\x64\x00\x64\x00\x64\xe0\xf2\xc1\x55\xc4\x04\x97\x0f\xda\x27\xcf\xf9\xf2\x41\x5c\x5a\x3f\xf0\x9b\x18\xec\x5f\x7f\x56\x83\xac\xf2\x9e\x49\x98\x51\x56\x18\x5f\x0b\xbd\xcc\x83\xbb\xc1\x5e\xdb\x45\x80\xae\x98\x3f\xbb\xda\x1b\x7b\x09\x09\x45\x58\x52\x7d\xd4\x07\x1b\x96\x44\xc6\x88\xdf\xb8\xe4\x91\xc8\x8c\x59\xcd\x6c\x94\x79\xae\x82\x98\xf4\x44\x6f\xc0\xe2\x64\x87\x54\x19\x13\xb2\xd0\x72\xac\x53\x9c\x67\xfc\x51\xf7\x62\xf1\x20\x72\xe1\x84\xc1\x7a\xf0\x8d\x0b\xd2\x21\x61\x98\x8c\x55\x2a\x63\x37\xef\x7f\xd2\xcf\x66\x3c\x20\x3a\x95\x28\x19\x19\xd1\x8f\x0c\x4a\x5a\xf3\xe7\xb1\x34\xbb\x13\x19\x6c\xaa\x67\xc9\x62\x6f\xd9\x19\x9b\xbc\x30\x3a\x34\x3f\x5c\x5f\x47\x2a\xe1\x32\x1a\xab\x2c\xba\x4e\x1f\xa3\xeb\x52\xc6\x81\x0a\xc5\xf5\xdf\xbe\xe6\x77\xba\x94\xad\x2d\xc0\xb6\x73\xfa\x1c\x9e\x41\xc9\x8a\x47\x2b\xc2\x75\x15\xdf\xde\x77\x10\xdf\x3e\x1a\x6b\xd6\xc0\xea\xfd\x7e\x6d\xbd\x8d\xb3\xed\xc0\x2a\x7e\xb2\xf2\x32\x09\x26\xc7\x20\x2f\xbf\x61\xfd\x5d\x20\xd3\x92\x85\x7f\x87\xf7\xc8\xac\x17\xd1\x96\xde\x1d\x73\x30\x11\xed\x48\x2e\xe9\x80\x44\x56\x1f\xe4\xc1\x4a\x64\x08\x8b\x3e\xa3\xb0\x68\xc4\x7f\x21\xfe\x0b\xf1\x5f\x88\xff\x82\x32\xb9\x6c\x15\x0d\x32\x82\xe2\x30\xaa\x19\x02\x40\xfc\x93\x2b\x03\x40\x8e\x42\x45\xf3\xd6\xee\xde\xc3\x3e\xc8\x3b\xa0\x29\x84\xad\xd3\xa9\xf4\x2b\x7b\x89\xf5\xa8\xc9\x26\xe2\x2f\xf2\xe0\x9a\xe8\xbf\x78\x50\x8c\x19\xfb\xac\xff\xeb\xfe\x7d\xc6\x63\xb2\x01\xe6\x2c\x48\xca\xbc\x10\x59\x75\xe2\x18\x57\x4f\x96\xc4\x8f\x82\x8d\x7c\x1d\x47\x5a\xb0\x74\xc2\xd0\x98\xdd\x25\x5c\x4a\xeb\x81\x41\xe2\x0a\x4f\x8c\x84\x74\xf3\xd3\x36\x5b\x38\xd5\xf1\x40\x82\x84\xef\x34\x2f\x87\x4f\x5c\xf7\xe9\x96\xb2\xcf\xa6\xc7\xf4\xe1\x91\xe6\xae\x77\xac\x93\x53\x99\x8b\x8c\xbc\x93\x2a\x91\xfa\x65\xc7\x1d\xa5\x2b\x73\xba\x68\x7d\xd8\x27\x1c\xac\x77\xcb\x0f\x07\xbd\xd1\x1e\xd5\xc9\xb0\x05\xec\x46\xb2\x79\x70\xfb\xc3\x71\x7b\x72\x09\xda\x2a\x51\xf3\x15\xbd\xfb\xf7\xd5\x1b\xf6\x4c\x64\x91\xe8\xf4\x64\x5e\x64\xbc\x10\x51\x1c\x5c\x75\x7f\x47\xff\xfd\x62\x9f\xa4\xa3\xa1\x8b\xac\x45\x3e\xa4\x14\xa2\x66\xdc\xd7\x36\x94\xbb\xe8\x6b\x43\x32\x65\xef\xca\xdb\x60\x85\xea\x72\xd7\x74\x24\x63\x30\x70\x9f\xb8\x81\xfb\x7c\x5c\x0e\xe6\xe2\x3d\xdc\xe2\x32\x31\x49\xa9\x71\xd1\xb6\x71\xee\x6f\x97\x6c\x45\xef\xc8\xbc\x67\x02\x91\x79\x42\x6f\x4a\x25\xaf\xcc\xdb\xf4\x04\x59\xd8\x73\xf6\xf6\xd7\x5c\xc9\x3b\x13\xee\xfd\x9b\xde\xf4\xec\xdf\x3f\xdc\x56\x58\xfd\xe3\xbb\x21\xf9\x42\x74\x9f\x37\x5f\x54\x16\x10\x82\x88\x14\x0d\xbe\x62\xf7\x17\x53\xfd\x6f\xf7\x17\xec\xb6\xd1\x9b\x63\xf6\xb5\xb0\xbc\x80\xf4\x1f\xbb\x50\xaf\x78\x40\x03\x40\x01\xc3\x49\x1c\x58\x0b\x28\xa9\x4b\xea\xd9\x8e\xad\x09\xa8\x4d\x85\x4a\x13\x31\x66\xe6\x9b\x74\x4f\x80\x9b\x53\xe4\xc3\xdf\x3a\x10\xfe\xf3\xdb\x74\xaf\xfe\x10\xb4\x26\xf3\x03\xb4\xa6\xe1\x68\x4d\xe9\x9c\x97\xf8\x31\xe8\x4d\x65\xef\x16\xb5\x34\xe1\xc1\xa6\xc2\x9d\x7d\xeb\x1c\xc4\x3b\x38\x93\x42\xb2\x3b\x2b\xc9\x6e\x40\x02\x14\xce\x79\xff\x0b\x9c\x49\xcf\x50\x3e\x29\x8f\xc3\xaa\xfb\x86\x6d\xe4\x92\x49\xe1\x75\x2d\x29\xfc\x7a\xa7\x85\xf6\xce\x01\x19\xc6\x4f\x71\x58\xf2\xa4\x1e\xce\xc9\xfd\x2d\x23\xd4\xea\x71\xcd\xdb\xe8\x83\xf7\x53\x1a\x51\x09\xa3\xea\xae\xa9\xc6\xe5\x41\x5e\x26\x62\xb1\xcc\x0b\xc1\x1b\x16\xcb\x79\x89\xe9\x79\x89\x39\xcc\x47\xec\x7d\x51\xd9\x6d\x92\x78\xf1\x29\xbf\x18\xc0\x96\xb7\xf4\x85\xf3\x8a\xb5\x5c\x61\xe1\xa3\x50\xe1\xcf\x4f\x42\x22\xe2\x92\x46\xf2\x2c\xc2\x2e\x71\xab\xe3\x09\xdf\xea\xb8\x1e\x34\xad\xbb\xd1\x71\xfb\x24\xb9\xdd\x20\x1a\xee\x71\xc4\x3d\x8e\xb8\xc7\x11\xf7\x38\x9e\xda\x3d\x8e\xeb\x77\xde\xd6\x3b\x1c\x77\xec\xb2\xb0\xb7\x9b\x1b\xd7\x37\x7f\xf9\xad\x8d\x43\xee\x83\x4d\xee\x6a\x5c\xdf\x07\xcb\xef\x69\xdc\x71\x1f\xe0\x76\x46\xdc\xce\x88\xdb\x19\x71\x3b\x23\x6e\x67\xdc\xd9\xed\x8c\x1d\x76\xff\x85\x9b\x19\x57\x46\x33\x9e\x91\xc7\x62\xb7\xd6\xe0\x76\xc9\x23\xbb\x5d\x72\xfd\x24\x5a\x75\xb3\xe4\x8e\x67\xd3\x41\xef\x93\x5c\xdf\x33\x2b\xee\x92\xdc\xf5\xae\x31\xd4\x1b\x24\xd7\x77\x5a\x8b\x35\x7f\x6b\x73\x96\xfd\xeb\xcf\xad\xf8\xd0\xca\x8b\x3b\xce\x1e\x1b\xcd\xb9\xd9\xfc\x6b\xce\xec\x0e\x60\x04\x60\xc4\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\xe6\xb6\xdb\x01\xc2\x12\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\xa3\x63\x04\x46\xb8\xdb\x03\xa4\x0c\xa4\x0c\xa4\x0c\xa4\x0c\xa4\x6c\x00\xa4\xac\xe5\x8a\xfb\x1d\x01\xb3\x3a\x25\x93\xee\xf0\x57\x53\xf6\x18\xcb\xb0\x47\x5a\x76\x59\x09\xfa\xa4\xcc\x58\xa1\x50\xeb\x0a\x95\x06\x33\x6a\x68\xbe\xb5\xb2\x7b\x60\x6d\xe0\x6c\xe0\x6c\xc7\xc7\xd9\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\x8e\x8a\xb1\x21\x15\x00\x70\x21\x70\x21\x70\x21\x70\x21\x70\x21\x70\x61\x03\x17\x86\x71\x1e\x28\x2d\x91\x38\x56\xb8\x15\xf9\x3b\xc8\x5d\xaa\x73\x43\x1d\x51\xd6\xce\xa9\xca\x66\x7e\x6a\x73\x66\x58\xc4\x72\x86\x17\x89\xe2\x93\xeb\x81\xdb\xbb\xaf\xff\x9c\x7f\x1c\x97\xc7\x6e\xc8\xd1\x7c\x27\x1e\x39\x45\xf3\xeb\xa2\xf6\xca\x9b\xfa\x67\xd7\x2c\x23\x87\xdc\x8f\x7a\x39\x35\x34\x5e\xb3\x49\x76\x5c\x4b\x16\x85\xdf\xde\x7d\xfd\xde\xf6\x26\x96\xd5\xe6\xcb\xca\x75\x24\xc5\xee\x9e\xca\xea\x6a\x01\xd4\xdb\xac\x32\x21\xc3\x54\xc5\xb2\xc8\x93\x38\xd8\x71\xb4\xb7\xb1\x95\x66\x56\x56\x77\xca\xb8\xf3\x5b\xf9\x6c\x2b\xf2\x43\x57\x64\xc5\x5a\xd1\xa5\xcc\x2f\x96\xc6\xbb\xb8\xde\x77\x7e\x1c\x06\xb3\x4c\xc7\xd5\x34\x74\xf7\x8f\x37\x86\xee\xd4\x17\xe8\x7a\x0f\x92\xbe\x82\xb4\xe7\xd7\x7b\xbb\xf7\xc8\xb2\x35\x07\x2f\x12\x78\x91\xc0\x8b\x04\x5e\x24\xf0\x22\x81\x17\x09\xbc\x48\xe0\x45\x02\x2f\x92\x43\xf7\x01\xbc\x48\xe0\x45\x02\x2f\x12\x78\x91\xc0\x8b\x04\x5e\x24\xc7\xe7\x45\x02\x0f\x04\x78\x20\xc0\x03\xa1\x7d\x36\xc1\x03\x61\xe9\x3a\x83\x07\xc2\x86\x1e\x08\x0e\xea\x2c\x89\x53\x5e\xce\x7a\xcc\xc1\xdf\x2f\xee\x31\x65\xb2\x40\x25\x5a\xcf\xb0\x13\xb6\x2b\xe5\x31\x2f\xcf\x73\x9e\x8f\xbe\xac\x2a\x52\x78\x69\x89\x5d\x93\x60\xc3\x2e\x7d\x3e\x76\xe9\x6e\x49\x96\xd7\xd9\xa6\xd7\x2c\xe7\xd7\xe4\xc2\xde\x2e\x23\xfb\x4e\xc0\xf9\x27\x5a\x82\xdf\x68\x61\xe4\xbd\x24\x60\x87\xcd\x1d\x36\x77\xd8\xdc\x61\x73\x3f\x35\x9b\x7b\xb7\x53\xa5\xd5\xee\xfe\xca\xb4\xfd\xdd\xf7\x5e\xd2\x0c\xad\xb5\xe1\x92\x52\x2e\x04\x7a\x46\x99\x79\xd0\x68\x5b\x5d\x8e\x98\x08\x96\xea\xde\xca\xb5\x62\xce\x6e\x25\x8b\xa5\xd9\x59\x54\xc6\x4a\xe9\x37\xa7\x90\x85\xd9\xcb\xf7\x52\xb2\x30\xce\xb4\x7c\xf6\x24\xfc\x8c\x27\x6d\x4d\x32\x2e\xed\x92\x77\x73\xc3\x76\x30\x9b\x96\x19\xad\xb2\x34\x53\x81\x96\x1b\x8c\x42\x5b\xb3\x87\x8e\xd9\x1f\xf4\x45\x1a\x2d\x9a\x3b\x5a\x9b\xbd\x4d\x92\x0f\x64\xa2\x09\xf5\x2e\x5d\x4a\x3d\xf0\x5a\x43\x70\x53\xd2\x16\xb7\x98\x3f\xbf\xc3\x40\x99\xb6\x1c\x66\x98\xf6\x06\x4a\xba\x75\xc5\x72\x58\xb2\xb7\x1e\xf9\xbd\xae\xf2\xc6\x92\xe5\x46\x13\x65\x13\x31\x35\x92\xb3\x37\xaa\x55\xa2\x84\xdd\xbd\x68\xea\x94\xc2\x1c\x0e\x13\xad\xec\xc9\x2b\x29\x22\x4e\x13\xd4\x2a\xad\x5a\xbf\x76\x27\xa8\x31\xb0\xfb\xa5\x61\x15\x98\x78\x36\x13\x61\xcc\x0b\x91\xbc\x54\x22\x6d\x75\xe4\xc6\xc9\xa5\x55\x4a\xa9\xd3\x59\x94\xf1\x80\x56\x4d\xac\x42\x2f\x10\x54\x87\x36\xe9\x0b\x6e\x96\x96\xb9\xae\x64\x7d\xb8\xb8\x7e\xd3\x35\xc8\x7e\x64\x6a\xf6\x40\x57\xc4\xd8\xd4\x73\x26\xb8\x6c\xad\xe3\x16\xc3\x4c\x75\xbe\xa3\x2a\xb7\x29\xfa\x6b\x54\xfd\xa1\x4c\xff\x4d\x18\x59\xb7\x7e\x59\xce\xc9\xf6\x36\xfd\x41\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x76\x46\xcc\x3a\x9e\x05\x0b\xd4\x6c\x7f\xc7\xe2\xa7\xda\x65\x8e\x29\xdd\x36\xe9\xb7\xa0\xbb\x4c\xa5\x3c\x22\xe9\xe8\x4e\x25\x71\xf0\xd2\xb0\x83\xb9\x49\x57\xdd\x06\xa9\xa7\xdd\xcd\xf8\x1f\x63\xf6\xc3\xec\x67\x46\x74\x49\x85\xd4\x8b\xa5\x3a\x53\x05\x53\x59\xfa\xc0\xa5\xb3\xcb\x65\xa5\xb8\x9e\xf2\xc4\xe9\xca\xf7\x17\xe6\xe7\xfb\x0b\x36\x8d\x25\x4f\xe2\x7f\xbb\x83\x64\x22\x18\x0f\x43\x9a\x9d\xd7\xc6\xc6\x1e\x56\x6a\x98\x29\x7e\x94\x57\x2f\x19\xfd\x74\xcc\x3e\xc7\xb4\x39\xd6\xaa\xae\xb2\xc5\xb6\xd1\xf6\x63\x4c\x45\x46\x3d\x26\x1d\x45\x15\x0f\xdb\x0c\xa8\x69\xc1\x27\xd7\xf6\xbd\x99\xf8\x16\x15\x33\x6a\xba\x5e\xb0\x0f\xea\x99\x45\x3c\x9b\xf0\xa8\x61\x37\xf7\x4a\x8d\xc8\xa6\x2a\x9b\xe9\x31\x69\xed\xaf\x6f\x73\x2d\x5a\xde\x5d\x24\xf4\x3a\x89\x35\x35\x7d\x1b\x6b\x69\x32\x88\xc3\x4a\x15\x26\x59\x81\x8c\x13\x7e\x8c\x73\x0a\x15\xa4\x5f\x9d\x34\x30\xae\x0d\xa6\x3b\x47\x9c\xaa\x7d\xe5\x6d\xcc\xcd\x8f\x8d\xd9\x6d\x10\x88\xb4\xa0\xb3\xa9\xae\xd9\x8d\x4c\x1b\x46\xec\xca\x4e\xc0\xe6\x04\xcd\x7f\x66\xa3\x5f\x78\xf0\x18\x65\xaa\x94\xa1\x7e\x8a\x6c\xb5\xf4\xd0\x5c\xc7\x19\x11\xd2\xca\xc7\xcd\x42\x5c\x0b\x26\xbe\xa4\x9f\xd9\xe8\x8b\xca\x44\xad\x58\x16\xf0\x3c\xe0\xa1\x6e\xbd\xed\x1f\x63\xce\xa7\xf2\x72\xa3\x7a\x2e\x14\x38\xf5\x65\x6c\x33\x21\xd3\xf9\xe9\x7e\x40\x4b\x01\xf0\xf6\xf1\xe0\xed\x6e\xb3\x6b\x15\xe2\xde\x9f\x32\x7f\x48\xd8\xdd\xad\x9f\x56\x00\xef\xfd\x1d\xf8\x43\x45\xdf\xdd\xba\x70\x11\x7f\xbf\xf6\x38\x6d\xe5\xcd\x08\x85\xdd\x90\xe8\xfd\x28\x78\x51\x76\x45\x79\x27\x1a\x60\x67\x0e\xf0\x4a\xb8\x3a\xc2\x60\xbb\x23\x0a\xcc\x85\x9b\x06\xdc\x34\x4e\xd1\x4d\x03\x8e\x0d\x70\x6c\x80\x63\x03\x1c\x1b\xe0\xd8\x70\x70\xc7\x06\x10\x73\x40\x54\x40\x54\x40\x54\x40\x54\x40\x54\x40\x54\x40\xd4\xa5\x87\x00\xb8\x06\xb8\x06\xb8\x06\xb8\x06\xb8\x06\x2e\x29\x5c\x05\x50\x70\x49\xa1\x7f\xec\xec\x2f\x29\x44\xce\x88\x81\xdf\xd8\x60\xff\xfa\xb3\x1a\x64\x95\xf7\x4c\xc7\x8c\xce\xc2\xb8\xec\x4c\xc2\xcc\x1b\x3b\x64\x61\xdb\x45\x89\xae\x98\x4d\x3b\xdd\x30\x7b\x89\x1d\x45\xfc\x52\x7d\xe8\x07\x1b\xbf\x44\x66\x8a\xdf\xb8\xe4\x91\xc8\x8c\xc1\xcd\xec\x9d\x79\xae\x82\x98\x34\x48\x6f\xda\xe2\x64\xa1\x54\x19\x13\xb2\xd0\x12\xae\x53\xa9\x67\xfc\x51\xf7\x62\xf1\x20\x72\xe1\xc4\xc4\x7a\x94\x8e\x8b\xe6\x21\x31\x99\xcc\x58\x2a\x63\x37\xef\x7f\xd2\xcf\x66\x3c\x20\x6e\x95\x28\x19\x19\xa1\x90\x4c\x4d\x81\x92\x05\x8f\xa5\xd9\xb0\xc8\x94\x53\x3d\x4b\xb6\x7c\x4b\xd5\xd8\xe4\x85\xd1\x49\xfa\xe1\xfa\x3a\x52\x09\x97\xd1\x58\x65\xd1\x75\xfa\x18\x5d\x97\x32\x0e\x54\x28\xae\xff\xf6\x35\xbf\xd3\xa5\x6c\x6d\x1b\xb6\x9d\xd3\xe7\xf0\x0c\x4a\x8a\x3c\x6e\xe1\xae\xab\x60\xf7\xbe\x83\x60\xf7\xd1\x18\xbb\x86\x58\xf9\xf7\x6b\x2b\x6f\xfc\x73\x87\x58\xfb\xd3\x94\xa9\x49\x6e\x39\x1a\x99\xfa\x0d\xeb\xf9\x32\x1a\xf3\xd3\x7f\xf6\x74\x27\xcd\x06\xb2\x5c\xfb\x45\x34\x07\x97\xe5\x8e\xe4\xc6\x0f\x48\x6d\xf5\x41\x1e\xac\xd4\x86\x18\xeb\x33\x8a\xb1\x46\x30\x19\x82\xc9\x10\x4c\x86\x60\x32\x28\x9c\xcb\x56\xd1\x20\xc3\x31\x0e\xa3\xb4\x21\x9a\xc4\x3c\xb6\x32\x9a\xe4\x78\xf4\x36\x6f\x26\xef\x3d\x86\x84\xbc\x0b\x9a\x62\x58\x57\x15\x4b\xbf\xba\xbf\xc0\x91\x9a\xa8\x22\xfe\x22\x77\xb0\x89\xfe\x8b\x07\xc5\x98\xb1\xcf\xfa\xbf\xee\xdf\x67\x3c\x26\xb3\x61\xce\x82\xa4\xcc\x0b\x91\x55\x07\x90\xf1\x1b\x65\x49\xfc\x28\xd8\xc8\xd7\x75\xa4\xe5\x4c\x27\x1b\x8d\xd9\x5d\xc2\xa5\xb4\xee\x1c\x24\xbd\xf0\xc4\x08\x4c\x37\x3f\x6d\xb3\xa3\x53\x1d\x0f\x24\x57\xf8\x4e\xf3\x62\xf9\xc4\x75\x9f\x6e\x29\xfb\x6c\x7a\x4c\x9f\x25\x69\xee\x7a\xc7\x7a\x4c\x95\xb9\xc8\xc8\xd5\xa9\x92\xb0\x5f\x76\xdc\x51\xba\x32\xa7\xcb\xe9\x87\x7d\xe0\xc1\xcc\xc7\x56\x1c\x18\x7a\xdf\x3d\xbe\xd3\x62\x0b\x72\x4e\xd8\xc7\xda\x54\x56\xd4\xa3\x0b\x18\x1f\x0a\x13\x87\x33\xc0\xd1\x39\x03\x90\xbb\xd1\x56\x89\xa3\xaf\xe8\xdd\xbf\xaf\xde\xbf\x67\x22\x8b\x44\xa7\x27\xf3\x22\xe3\x85\x88\xe2\xe0\xaa\xfb\x3b\xfa\xef\x17\xfb\x24\x9d\x14\x5d\xe4\x30\xf2\x4f\xa5\xf0\x37\xe3\x1a\xb7\xa5\x4c\x46\x5f\x1d\x9c\xd5\x7b\x57\x1e\x0c\x2b\xb4\x9c\xbb\xa6\xc7\x1a\x83\x2d\xfc\xc4\x6d\xe1\xe7\xe3\xc1\x30\x17\x58\xe2\x16\x97\x09\x7e\x4a\x8d\x2f\xb8\x0d\xa8\x7f\xbb\x64\x5f\x7a\x47\x96\x40\x13\xf1\xcc\x13\x7a\x53\x2a\x79\x65\xde\xa6\x27\xc8\x18\x9f\xb3\xb7\xbf\xe6\x4a\xde\x99\xb8\xf2\xdf\xf4\x0e\x68\xff\xfe\xe1\xf6\xc5\xea\x1f\xdf\x0d\xc9\xb5\xa2\xfb\xbc\xf9\xa2\xb2\x80\x68\x45\xa4\x68\xf0\x15\xbb\xbf\x98\xea\x7f\xbb\xbf\x60\xb7\x8d\xde\x1c\xb3\xaf\x85\x45\x0b\xa4\x1b\xd9\x85\x7a\xc5\x03\x1a\x00\x8a\x4c\x4e\xe2\xc0\x1a\x4b\x49\x95\x52\xcf\x76\x6c\x4d\xe4\x6e\x2a\x54\x9a\x88\x31\x33\xdf\xa4\x0b\x09\xdc\x9c\xa2\x60\x81\xd6\x81\xf0\x9f\xdf\xa6\x7b\xf5\x87\xa0\x51\x99\x1f\xa0\x51\x35\xda\x74\x68\xc7\x89\x39\x87\xf4\xa3\xd1\xa9\xca\xde\x2d\x70\x69\xc2\x83\x6d\x05\x3e\xfb\xf6\xd9\x88\x7c\x70\x5a\x85\xc8\x77\x7e\x22\xdf\x80\x24\x2b\x08\x00\xfe\x17\x38\xad\x76\xa8\xfc\x89\x4a\x2f\xe5\x11\xd9\x83\xdf\xb0\xee\x5e\x9f\x14\xe9\xb7\x22\xe3\x60\xef\x00\xd2\x5e\x83\x20\xc3\xf8\x29\x0e\x4b\x9e\xd4\x23\x4c\xb9\xbf\xf8\xa4\xd1\x05\xe3\x9a\x2b\xd3\x07\xef\x04\x35\xa2\x92\x46\xd5\x35\x58\x8d\x7b\x8d\xbc\xd8\xc4\x62\x99\x17\x82\x37\x0c\x9e\xf3\x42\xd5\x73\x9b\x15\x6d\x21\x98\xf0\x8b\xca\x6e\x93\xc4\x4b\x5a\xf9\xc5\x00\x36\xc4\xa5\x2f\x9c\x57\x2c\xe8\x0a\xc3\x20\x85\x32\x7f\x7e\x12\xf2\xcc\x83\x41\x69\x18\xcf\x27\x22\x14\xf7\x4e\x9e\xf0\xbd\x93\xeb\x71\xd5\xba\x3b\x27\xb7\xcf\xf3\xdb\x0d\xc5\xe1\xa6\x49\xdc\x34\x89\x9b\x26\x71\xd3\xe4\xa9\xdd\x34\xb9\x7e\xe7\x6d\xbd\x65\x72\xc7\x8e\x0f\x7b\xbb\x5b\x72\x7d\xf3\x97\xdf\x2b\x39\xe4\x3e\xd8\xe4\x36\xc9\xf5\x7d\xb0\xfc\x26\xc9\x1d\xf7\x01\xee\x8f\xc4\xfd\x91\xb8\x3f\x12\xf7\x47\xe2\xfe\xc8\x9d\xdd\x1f\xd9\x61\xf7\x5f\xb8\x3b\x72\x65\xc4\xe4\x19\xf9\x3d\x76\x6b\x0d\xee\xbf\x3c\xb2\xfb\x2f\xd7\x4f\xa2\x55\x77\x5f\xee\x78\x36\x1d\xf4\xc6\xcb\xf5\x3d\xb3\xe2\xb6\xcb\x5d\xef\x1a\x43\xbd\xe3\x72\x7d\xa7\xb5\xd8\xf3\xb7\x36\x67\xd9\xbf\xfe\xdc\x9c\x19\x75\xba\x2f\x04\x28\x69\x85\x77\xce\xbf\xe6\xac\xf1\x80\x48\x80\x48\x0c\x10\xc9\x3c\x06\x88\x04\x88\x04\x88\x04\x88\x04\x88\x04\x88\x04\x88\x04\x88\x34\x6c\x80\x02\x88\x04\x88\x04\x88\x04\x88\x04\x88\x04\x88\x04\x88\x74\x8c\x10\x09\xb7\x86\x80\x9e\x81\x9e\x81\x9e\x81\x9e\x81\x9e\x0d\x85\x9e\xb5\xdc\xb6\xbf\x23\x88\x56\x27\x67\xd2\x49\x00\x6a\xca\x1e\x63\x19\xee\x80\xa0\x5d\x56\x52\x3f\x69\x36\x56\x42\xd4\x8a\x43\xa5\xce\x8c\x1a\x6a\x70\xad\xec\xbe\xf8\x1b\xd8\x1b\xd8\xdb\x91\xb1\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\xb7\xe3\xe3\x6e\x48\x40\x00\x94\x08\x94\x08\x94\x08\x94\x08\x94\x08\x94\xd8\x8a\x12\x8d\xad\xdb\x71\xc4\xad\x68\xe0\x41\x2e\x66\x9d\x1b\xe7\x88\xd2\x88\x4e\x55\x36\xf3\xf3\x9a\x33\x43\x25\x96\xf3\xbc\x48\x14\xc4\x7e\xf2\xdb\xbb\xaf\xff\x9c\x7f\x16\xd7\xd0\x6e\xc8\xd2\x7c\x27\x1e\x39\x49\x33\x2b\xa2\xf6\xfc\x9b\xfa\x37\x57\xad\x1e\x47\xe1\x8f\x7a\x15\x35\xb4\x5d\xb3\x31\x76\x59\x42\x96\x86\xdf\xde\x7d\xfd\xde\xf6\x1a\x56\xd3\xe6\xab\xc9\x75\x24\x85\xf2\x9e\xc4\xa2\x6a\x61\xd3\x1b\x2f\x2e\xbb\x3c\x77\xe9\xb6\x62\xcc\xa2\x99\x15\xc7\x9d\xde\xed\x3d\x56\xc8\x5d\x60\xf9\x92\xd0\x6f\x37\xd6\x04\xfd\x1f\x5c\xf0\x3b\xdf\xe9\x83\x59\x85\x63\x3b\xd1\xfc\xd5\xe4\xfa\xff\x9e\xf4\xa2\x5b\xef\x10\xd2\x57\x1c\x76\x63\x0d\x2f\x71\x06\x99\x5b\x4f\x70\x02\x81\x13\x08\x9c\x40\xe0\x04\x02\x27\x10\x38\x81\xc0\x09\x04\x4e\x20\x70\x02\x39\x74\x1f\xc0\x09\x04\x4e\x20\x70\x02\x81\x13\x08\x9c\x40\xe0\x04\x72\x7c\x4e\x20\x70\x1c\x80\xe3\x00\x1c\x07\xda\x67\x13\x1c\x07\x96\xae\x33\x38\x0e\x6c\xe2\x38\xe0\xe8\xcc\xb2\xd0\xe3\x05\x68\x63\x4e\xfb\x7e\xb9\x8d\x29\x93\x05\x2a\xd1\xca\x85\x9d\xa5\xeb\x70\x8d\x79\xa9\x01\x6c\x3e\xfa\x02\x6a\xc1\xbd\xf3\xc5\x74\x4d\x79\x0d\xcb\xf3\xf9\x58\x9e\xbb\x65\x53\x5e\x67\x7d\x5e\xb3\x60\x5f\x93\xf4\x7a\xbb\xfc\xeb\x3b\x01\xdc\x9f\x68\xdd\x7d\xa3\x85\x91\xf7\x92\x69\x1d\x56\x75\x58\xd5\x61\x55\x87\x55\xfd\xd4\xac\xea\xdd\x4e\x95\x56\xcb\xfa\x2b\xf3\xf3\x77\xdf\x7b\x49\xf7\xb3\xf6\x84\x4b\x4a\x9b\x10\xe8\x19\x65\xe6\x41\xa3\x6d\x75\x39\x62\x22\x58\xaa\x7b\x2b\xd7\xaa\x37\xbb\x95\x2c\x96\x66\x67\x51\x19\x2b\xa5\xdf\x9c\x42\x16\x66\x2f\xdf\x4b\xc9\xc2\x38\xd3\x72\xd9\x93\xf0\x33\x9e\xf4\x31\xc9\xb8\xb4\x4b\xde\xcd\x0d\xdb\xc1\x6c\x5a\x66\xb4\xca\xd2\x4c\x05\x5a\x6e\x30\x2a\x6b\xcd\xe2\x39\x66\x7f\xd0\x17\x69\xb4\x68\xee\x68\x7d\xf5\x36\x49\x3e\x90\x11\x26\xd4\xbb\x74\x29\xf5\xc0\x6b\x1d\xc0\x4d\x49\x5b\xdc\x62\x8e\xfc\x0e\x03\x65\xda\x72\x98\x61\xda\x1b\x0a\xe9\xd6\x15\xcb\x71\xc8\xde\x7a\xe4\xf7\xba\x52\x1b\x4b\x96\x1b\x5d\x93\x4d\xc4\xd4\x48\xce\xde\x6c\x56\x89\x12\x76\xf7\xa2\xa9\x53\x0a\x73\x38\x4c\xb4\x3a\x27\xaf\xa4\x88\x38\x4d\x50\xab\x96\x6a\x0d\xda\x9d\xa0\xc6\x84\xee\x97\x86\xd5\x56\xe2\xd9\x4c\x84\x31\x2f\x44\xf2\x52\x89\xb4\xd5\x91\x1b\x27\x97\x56\xed\xa4\x4e\x67\x51\xc6\x03\x5a\x35\xb1\x0a\xbd\x40\x50\x1d\xda\xa4\x2f\xb8\x59\x5a\xe6\xba\x92\xf5\xe1\xe2\xfa\x4d\xd7\x20\xfb\x91\xa9\xd9\x03\x5d\x11\x63\x53\xcf\x99\xe0\xb2\xb5\x8e\x5b\x0c\x33\xd5\xf9\x8e\xaa\xdc\xa6\xca\xaf\x51\xe6\x87\x32\xfd\x37\xa1\x60\xdd\xfa\x65\x39\x09\xdb\xdb\xf4\x07\x13\x03\x13\x03\x13\x03\x13\x03\x13\xdb\x19\x13\xeb\x78\x16\x2c\x70\xb1\xfd\x1d\x8b\x9f\x6a\x97\x2e\xa6\x89\xe0\xb9\xf0\x5b\xd0\x5d\xa6\x52\x1e\x91\x74\x74\xa7\x92\x38\x78\x69\xd8\xc1\xdc\xa4\xab\x6e\x6d\xd4\xd3\xee\x66\xfc\x8f\x31\xfb\x61\xf6\x33\x23\xba\xa4\x42\xea\xc5\x52\x9d\xa9\x82\xa9\x2c\x7d\xe0\xd2\xd9\xe5\xb2\x52\x5c\x4f\x79\xe2\x74\xe5\xfb\x0b\xf3\xf3\xfd\x05\x9b\xc6\x92\x27\xf1\xbf\xdd\x41\x32\x11\x8c\x87\x21\xcd\xce\x6b\x63\x45\x0f\x2b\x35\xcc\x14\x3f\xca\xab\x97\x8c\x7e\x3a\x66\x9f\x63\xda\x1c\x6b\x55\x57\xd9\x62\xdb\x68\xfb\x31\xa6\x22\xa3\x1e\x93\x8e\xa2\x8a\x87\x6d\x06\xd4\xb4\xe0\x93\x6b\xfb\xde\x4c\x7c\x8b\x8a\x19\x35\x5d\x2f\xd8\x07\xf5\xcc\x22\x9e\x4d\x78\xd4\x30\x92\x7b\xa5\x46\x64\x53\x95\xcd\xf4\x98\xb4\xf6\xd7\xb7\xb9\x16\x2d\xef\x2e\x12\x7a\x9d\xc4\x9a\x9a\xbe\x8d\xb5\x34\x19\xc4\x61\xa5\x0a\x93\xac\x40\xc6\x09\x3f\xc6\x39\x85\xf1\xd1\xaf\x4e\x1a\x18\xd7\x06\xd3\x9d\x23\x4e\xd5\xbe\xf2\x36\xe6\xe6\xc7\xc6\xec\x36\x08\x44\x5a\xd0\xd9\x54\xd7\xec\x46\xa6\x0d\x23\x76\x65\x27\x60\x73\x82\xe6\x3f\xb3\xd1\x2f\x3c\x78\x8c\x32\x55\xca\x50\x3f\x45\xb6\x5a\x7a\x68\xae\xe3\x8c\x08\x69\xe5\xe3\x66\x21\xae\x05\x13\x5f\xd2\xcf\x6c\xf4\x45\x65\xa2\x56\x2c\x0b\x78\x1e\xf0\x50\xb7\xde\xf6\x8f\x31\xe7\x53\x79\xb9\x51\x3d\x17\x0a\x9c\xfa\x32\xb6\x99\x90\xe9\xfc\x74\x3f\xa0\xa5\x00\x00\xfb\x78\x00\x76\xb7\xd9\xb5\x0a\x62\xef\x4f\x99\x3f\x24\xce\xee\xd6\x4f\x2b\x90\xf6\xfe\x0e\xfc\xa1\xc2\xed\x6e\x5d\xb8\x08\xb8\x5f\x7b\x9c\xb6\xc2\x65\x84\xac\x6e\x48\xf4\x7e\x14\xbc\x28\xbb\xa2\xbc\x53\x0c\x9a\x33\xa7\x77\x25\x59\x1d\x4b\x00\xdd\xd0\x03\x68\xe1\x85\x01\x2f\x8c\x53\xf2\xc2\x80\xdf\x02\xfc\x16\xe0\xb7\x00\xbf\x05\xf8\x2d\x1c\xdc\x6f\x01\x40\x1c\x8c\x14\x8c\x14\x8c\x14\x8c\x14\x8c\x14\x8c\x14\x8c\x74\xe9\x21\x00\x6c\x01\x6c\x01\x6c\x01\x6c\x01\x6c\x81\xcb\x04\x57\xf1\x11\x5c\x26\x78\x76\x97\x09\x22\x25\xc3\xc0\x6f\x56\xb0\x7f\xfd\x59\x0d\xb2\xca\x7b\x26\x5e\x46\x35\x61\x5c\xae\xa5\x5b\xe6\xc9\xbe\xf9\xd6\x76\x81\x9d\x2b\xa6\x4e\xff\x9b\x60\x2f\x31\x9e\x88\x33\xaa\x8f\xf7\x60\xe3\x8c\xc8\xde\xf0\x1b\x97\x3c\x12\x99\xb1\x9c\x99\xdd\x31\xcf\x55\x10\x93\x2a\xe8\x6d\x54\x9c\x4c\x8d\x2a\x63\x42\x16\x5a\x54\x75\xba\xf1\x8c\x3f\xea\x5e\x2c\x1e\x44\x2e\x9c\xbc\x57\x8f\xa6\x71\x51\x37\x24\xef\x92\x3d\x4a\x65\xec\xe6\xfd\x4f\xfa\xd9\x8c\x07\x04\xa0\x12\x25\x23\x23\xdd\x91\xcd\x48\x2b\xf7\x3c\x96\x66\x4b\x22\x9b\x4c\xf5\x2c\x19\xe5\x2d\x1e\x63\x93\x17\x46\xa7\xe3\x87\xeb\xeb\x48\x25\x5c\x46\x63\x95\x45\xd7\xe9\x63\x74\x5d\xca\x38\x50\xa1\xb8\xfe\xdb\xd7\xfc\x4e\x97\xb2\xb5\x91\xd7\x76\x4e\x9f\xc3\x33\x28\x71\xf0\x08\xa5\xb4\xae\x12\xda\xfb\x0e\x12\xda\x47\x63\xaa\x1a\x4c\x8d\xdf\xaf\xad\xb1\xf1\x98\x1d\x4c\x95\x4f\x50\x0c\x26\xa9\x63\xd8\x62\xf0\x1b\xd6\xc7\x3d\x2f\xe6\x9f\xfe\xb3\xa7\xeb\x5e\x3a\xc8\x5c\x2d\x77\xbc\x1c\x4c\xe6\x3a\x92\xcb\x34\x20\x68\xd5\x07\x79\xb0\x82\x16\xc2\x97\xcf\x28\x7c\x19\x71\x5a\x88\xd3\x42\x9c\x16\xe2\xb4\xa0\x23\x2e\x5b\x45\x83\x8c\x74\x38\x8c\xf6\x85\x40\x8d\x75\x81\x1a\x03\xd7\xc5\xbc\xb5\xba\xf7\xf0\x0c\x62\xf9\x4d\xc1\x6b\x9d\x06\xa5\x5f\xd9\x71\x4c\x46\x4d\x12\x11\x7f\x91\xa7\xd5\x44\xff\xc5\x83\x62\xcc\xd8\x67\xfd\x5f\xf7\xef\x33\x1e\x93\x21\x2f\x67\x41\x52\xe6\x85\xc8\xaa\xf3\xc5\xb8\x64\xb2\x24\x7e\x14\x6c\xe4\xeb\x38\xd2\x62\xa4\x13\x7d\xc6\xec\x2e\xe1\x52\x5a\x4f\x09\x12\x4e\x78\x62\xe4\xa1\x9b\x9f\xb6\xd9\xb0\xa9\x8e\x07\x12\x1b\x7c\xa7\x79\xa9\x7b\xe2\xba\x4f\xb7\x94\x7d\x36\x3d\xa6\x8f\x8a\x34\x77\xbd\x63\x9d\x91\xca\x5c\x64\xe4\x45\x54\x09\xd0\x2f\x3b\xee\x28\x5d\x99\xd3\x45\xe0\xc3\x3e\xcf\x60\x8e\x6b\x1e\x02\x7a\x5b\x3d\x92\x13\x60\x0b\x28\x4d\xbc\xc5\x5a\x46\x5a\xbe\xdf\x85\x35\x0f\x05\x33\x83\xaf\x1f\x1d\x5f\x27\x47\x9d\xad\xd2\x1e\x5f\xd1\xbb\x7f\x5f\xbd\x3d\xcf\x44\x16\x89\x4e\x4f\xe6\x45\xc6\x0b\x11\xc5\xc1\x55\xf7\x77\xf4\xdf\x2f\xf6\x49\x3a\x08\xba\xc8\x54\xe4\xd9\x49\x81\x63\xc6\xa9\x6c\x43\xf9\x8a\xbe\x36\x0c\x03\xf5\xae\x9c\x02\x56\x28\x24\x77\x4d\xc7\x2e\x06\xb3\xf5\x89\x9b\xad\xcf\xc7\x3f\x60\x2e\xfe\xc2\x2d\x2e\x13\x23\x94\x1a\x97\x69\x1b\x77\xfe\x76\xc9\x26\xf4\x8e\x8c\x76\x26\x30\x98\x27\xf4\xa6\x54\xf2\xca\xbc\x4d\x4f\x90\xdd\x3c\x67\x6f\x7f\xcd\x95\xbc\x33\xe1\xd7\xbf\xe9\xed\xce\xfe\xfd\xc3\x6d\x82\xd5\x3f\xbe\x1b\x92\xe3\x42\xf7\x79\xf3\x45\x65\x01\x81\x85\x48\xd1\xe0\x2b\x76\x7f\x31\xd5\xff\x76\x7f\xc1\x6e\x1b\xbd\x39\x66\x5f\x0b\x4b\x01\x48\xcf\xb1\x0b\xf5\x8a\x07\x34\x00\x14\xc0\x9b\xc4\x81\xb5\x6b\x92\x5a\xa4\x9e\xed\xd8\x9a\x00\xd7\x54\xa8\x34\x11\x63\x66\xbe\x49\x71\xfb\x6e\x4e\x91\x4f\x7d\xeb\x40\xf8\xcf\x6f\xd3\xbd\xfa\x43\xd0\x8e\xcc\x0f\xd0\x8e\x0e\xec\xac\x30\xe7\xa9\x3d\x6c\xfd\xa8\xec\xdd\x42\x96\x26\x3c\xd8\x54\x88\xb3\x6f\x9d\xb6\x18\x07\xdf\x4e\xc8\x6e\x67\x22\xbb\x0d\x48\x44\xc2\x49\xee\x7f\x81\x6f\xe7\xc9\xcb\x1e\xe5\xd0\x2d\xb3\x6f\x58\x47\x3f\x49\x0a\x59\x6b\x49\x7f\xd7\x3b\xd3\xb3\x71\xfc\x32\x8c\x9f\xe2\xb0\xe4\x49\x3d\x44\x92\xfb\x9b\x3b\xa8\xbd\xe3\x9a\x1f\xd0\x07\xef\x41\x34\xa2\x12\x46\xd5\xfd\x4d\x8d\x0b\x79\xbc\xa4\xc3\x62\x99\x17\x82\x37\xec\x8d\xf3\x72\xd0\xf3\x82\x31\xcb\x47\xc1\x7d\x51\xd9\x6d\x92\x78\xa1\x28\xbf\x18\xc0\x76\xb6\xf4\x85\xf3\x8a\x5c\x5c\x61\x9f\xfb\x1f\x3f\xa0\x67\xbc\x2b\xd1\x18\x9e\x78\x28\x23\xee\x45\x3c\xe1\x7b\x11\xd7\x43\xa1\x75\x77\x22\x6e\x9f\x48\xb6\x1b\xf0\xc2\x4d\x88\xb8\x09\x11\x37\x21\xe2\x26\xc4\x53\xbb\x09\x71\xfd\xce\xdb\x7a\x0b\xe2\x8e\xdd\x0b\xf6\x76\xf7\xe1\xfa\xe6\x2f\xbf\xf7\x70\xc8\x7d\xb0\xc9\x6d\x87\xeb\xfb\x60\xf9\x4d\x87\x3b\xee\x03\xdc\x6f\x88\xfb\x0d\x71\xbf\x21\xee\x37\xc4\xfd\x86\x3b\xbb\xdf\xb0\xc3\xee\xbf\x70\xb7\xe1\xca\xa8\xc2\x33\xf2\x2e\xec\xd6\x1a\xdc\xcf\x78\x64\xf7\x33\xae\x9f\x44\xab\xee\x66\xdc\xf1\x6c\x3a\xe8\x8d\x8c\xeb\x7b\x66\xc5\x6d\x8c\xbb\xde\x35\x86\x7a\x07\xe3\xfa\x4e\x6b\xb1\xe0\x6f\x6d\xce\xb2\x7f\xfd\xb9\x21\x07\x5a\x79\x6b\xc6\x19\xe3\xa1\x39\x27\x99\x7f\xcd\x19\xd9\x01\x86\x00\x86\x18\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\xd0\x30\xa1\x08\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\xd0\x31\x82\x21\xdc\xb7\x01\x22\x06\x22\x06\x22\x06\x22\x06\x22\x76\x50\x22\xd6\x72\x8f\xfc\x8e\xc0\x58\x9d\x86\x49\x77\xec\xab\x29\x7b\x8c\x65\xd8\x23\x15\xbb\xac\x44\x7c\x52\x63\xac\x38\xa8\xb5\x84\x4a\x77\x19\x35\x74\xde\x5a\xd9\xaf\x62\x6a\xe0\x69\xe0\x69\xc7\xc4\xd3\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\x8e\x84\xa5\xe1\x1a\x7e\x60\x41\x60\x41\x60\x41\x60\x41\x60\x41\x60\xc1\x26\x16\xfc\xab\x10\x32\x27\x36\xb2\x15\xe1\x3b\xc8\x2d\xa7\x73\x83\x1c\x51\x1e\xcc\xa9\xca\x66\x7e\x52\x73\x66\xf8\xc3\x72\x56\x17\x89\xe2\xb3\x6f\xfb\xed\xdd\xd7\x7f\xce\x3f\x8f\x7b\x5d\x37\xc4\x66\xbe\x13\x8f\x1d\x9a\xf9\x69\x51\x7b\xe7\x4d\xfd\xbb\x4b\x97\x90\xc3\xea\x47\xbd\x94\x1a\x7a\xae\xd9\x1a\xbb\xae\x23\x4b\xbd\x6f\xef\xbe\x7e\x6f\x7b\x15\x4b\x6a\xf3\x25\xe5\x3a\x92\xc2\x71\x4f\x66\x65\xb5\x20\xe9\xcd\x56\x58\x2c\xa3\x4c\xe4\xcd\xd1\xeb\xdf\x2f\xc5\x18\x46\x33\x2b\x98\x3b\xcd\xdb\xb9\xa4\x7c\x35\x75\x58\xb1\x38\xf4\xfb\x0b\xab\xc3\xbe\x86\x4b\x78\xe7\x3b\x7f\x30\x2b\x72\x5c\x4d\x38\x7f\x1d\xb8\x1d\xb5\x93\x5f\x86\xeb\x3d\x43\x7a\x0b\xb2\xae\xce\xd9\x56\xaf\x90\xc5\xe5\x05\xbf\x10\xf8\x85\xc0\x2f\x04\x7e\x21\xf0\x0b\x81\x5f\x08\xfc\x42\xe0\x17\x02\xbf\x90\x43\xf7\x01\xfc\x42\xe0\x17\x02\xbf\x10\xf8\x85\xc0\x2f\x04\x7e\x21\xc7\xe7\x17\x02\x9f\x02\xf8\x14\xc0\xa7\xa0\x7d\x36\xc1\xa7\x60\xe9\x3a\x83\x4f\x41\x67\x9f\x02\x87\x6b\x96\x44\x18\xb7\x52\x1c\x73\xda\xf7\x0b\x72\x4c\x99\x2c\x50\x89\x56\x2e\xec\x2c\x5d\xcf\x6f\xcc\x6b\x0b\x04\xe7\xa3\x2f\xa6\x8a\xef\x6d\x29\xac\x6b\x6a\x69\x58\xa0\xcf\xc7\x02\xdd\x2d\x81\xf1\x3a\x2b\xf4\x9a\x85\xfb\x9a\x3c\xd3\xdb\xe5\x39\xdf\x09\xfd\xfe\x44\xab\xef\x1b\x2d\x8c\xbc\x97\xe4\xe6\xb0\xae\xc3\xba\x0e\xeb\x3a\xac\xeb\xa7\x66\x5d\xef\x76\xaa\xb4\x5a\xd8\x5f\x99\x12\xbf\xfb\xde\x4b\x3a\xa0\xb5\x2b\x5c\x52\x12\x84\x40\xcf\x28\x33\x0f\x1a\x6d\xab\xcb\x11\x13\xc1\x52\xdd\x5b\xb9\x56\xc1\xd9\xad\x64\xb1\x34\x3b\x8b\xca\x58\x29\xfd\xe6\x14\xb2\x30\x7b\xf9\x5e\x4a\x16\xc6\x99\x96\xcc\x9e\x84\x9f\xf1\xa4\x97\x49\xc6\xa5\x5d\xf2\x6e\x6e\xd8\x0e\x66\xd3\x32\xa3\x55\x96\x66\x2a\xd0\x72\x83\x51\x5d\x6b\x96\xcf\x31\xfb\x83\xbe\x48\xa3\x45\x73\x47\xeb\xad\xb7\x49\xf2\x81\x8c\x31\xa1\xde\xa5\x4b\xa9\x07\x5e\xeb\x02\x6e\x4a\xda\xe2\x16\x33\xd4\x77\x18\x28\xd3\x96\xc3\x0c\xd3\xde\x90\x48\xb7\xae\x58\x8e\x45\xf6\xd6\x23\xbf\xd7\x95\xdb\x58\xb2\xdc\xe8\x9c\x6c\x22\xa6\x46\x72\xf6\xe6\xb3\x4a\x94\xb0\xbb\x17\x4d\x9d\x52\x98\xc3\x61\xa2\xd5\x3a\x79\x25\x45\xc4\x69\x82\x5a\xf5\x54\x6b\xd2\xee\x04\x35\xa6\x74\xbf\x34\xac\xd6\x12\xcf\x66\x22\x8c\x79\x21\x92\x97\x4a\xa4\xad\x8e\xdc\x38\xb9\xb4\xea\x27\x75\x3a\x8b\x32\x1e\xd0\xaa\x89\x55\xe8\x05\x82\xea\xd0\x26\x7d\xc1\xcd\xd2\x32\xd7\x95\xac\x0f\x17\xd7\x6f\xba\x06\xd9\x8f\x4c\xcd\x1e\xe8\x8a\x18\x9b\x7a\xce\x04\x97\xad\x75\xdc\x62\x98\xa9\xce\x77\x54\xe5\x36\x95\x7e\x8d\x52\x3f\x94\xe9\xbf\x09\x0d\xeb\xd6\x2f\xcb\x89\xd8\xde\xa6\x3f\xd8\x18\xd8\x18\xd8\x18\xd8\x18\xd8\xd8\xce\xd8\x58\xc7\xb3\x60\x81\x8f\xed\xef\x58\xfc\x54\xbb\x76\x31\x4d\x04\xcf\x85\xdf\x82\xee\x32\x95\xf2\x88\xa4\xa3\x3b\x95\xc4\xc1\x4b\xc3\x0e\xf6\xff\xb2\xf7\x37\x4d\x6e\x22\xd9\x1f\x36\xbc\xaf\x4f\x91\x51\xb3\x90\x1d\xe3\x52\x3d\xe5\xcd\x74\xb8\x57\x35\x7e\x99\xc7\x7d\xf7\x4b\x45\xbb\xa3\x37\xb7\x3b\xfe\x91\x85\xb2\x64\xc2\x14\x28\x40\xb2\xa7\x66\x62\xbe\xfb\x1d\x64\x02\x42\x12\x6f\xa2\x10\x24\xe8\xf2\xc6\x8a\x12\x20\xc8\x4c\x32\x4f\x9e\xeb\x9c\xdf\x49\x07\xdd\x56\xb7\x31\x1e\x76\x37\xf3\x7f\xcc\xc5\x27\x33\x9f\x19\xd3\x65\xa5\xfc\xf8\x65\xd9\xae\xa9\x4a\x04\xe1\xea\x8b\xf4\x53\xbf\x5c\xb8\x51\xd7\x0f\xd2\x4b\xf7\xca\x9f\x2f\xcd\xd7\x9f\x2f\xc5\x83\xeb\x4b\xcf\xfd\x4f\xba\x90\xdc\x2b\x21\x17\x0b\x3d\x3a\xaf\x8d\x37\x7d\xb1\xdd\x86\x99\xcb\xcf\xa2\xed\x49\x66\x7f\x3a\x17\xef\x5d\x3d\x39\xe6\x6e\x3d\x08\x0f\x9f\x4d\x4f\x3f\xc6\x55\x64\xb6\xc7\x7a\x8f\x12\xac\xbf\xb4\xe9\x50\xf3\x04\xef\xd2\x67\xef\xcd\xc5\x77\xb8\x31\xd3\x8f\x1e\xbf\xb0\x5f\x82\xef\x62\x29\xc3\x7b\xb9\xdc\x71\x96\x67\x9b\x1a\x15\x3e\x04\xe1\x63\xdc\x27\x85\xed\xf5\xdb\xde\x13\x95\x37\x97\x36\x7a\x53\x8b\x75\x65\xda\xd6\x8d\xad\x49\xc7\x5d\x6c\xb7\xc2\xda\x56\xd0\xce\x89\xac\x8f\x23\x9d\xec\xa7\xbf\x4d\xad\x81\x79\xae\x33\xd3\x75\x24\xdd\x6a\x5f\x65\x3e\xe6\xdd\x1f\x9b\x8b\x5b\xc7\x51\xab\xb5\x5e\x9b\xf2\x3b\xbb\x99\x79\x86\x99\xb8\x4a\x06\xe0\xee\x00\x8d\x7e\x14\xb3\x7f\x4a\xe7\xeb\x32\x0c\x36\xfe\x22\x3e\x4a\xfb\x6a\xf5\x41\x7b\x0d\x67\x4c\xc8\xc4\x3e\xde\xbd\x48\xfa\x04\xf7\xd9\x95\x7e\x14\xb3\x0f\x41\xa8\x72\x97\x15\x8e\x8c\x1c\xb9\x88\x9f\x3e\x69\x1f\xe3\xce\xd7\xd7\x8b\xcc\xd6\xf3\xe0\x82\x0f\xd9\x35\xda\x0c\xc8\xd5\xfe\x70\x1f\xd0\x53\x00\xc8\x1e\x0f\xc8\x6e\x36\xba\xaa\x60\x76\x7f\x9b\xf9\x21\xb1\x76\xb3\x76\xaa\x40\xdb\xfd\x2d\xf8\xb6\x42\xee\x66\x4d\x78\x08\xba\x9f\xbb\x9c\x16\x42\x66\xf2\x59\x8f\x24\x7a\x9f\xd6\x72\xbd\x69\x8a\xf2\xa6\x9a\x3f\x67\x56\xf0\xad\x75\x35\x92\x5c\xba\x71\x24\xd7\x12\x90\x41\x40\xc6\xb4\x02\x32\x08\x61\x20\x84\x81\x10\x06\x42\x18\x08\x61\x18\x3c\x84\x01\x36\x0e\x2e\x05\x97\x82\x4b\xc1\xa5\xe0\x52\x70\x29\xb8\xb4\x74\x11\x80\x60\x40\x30\x20\x18\x10\x0c\x08\x06\x42\x83\x55\xa8\x04\xa1\x41\x51\x01\x4a\xa6\x2d\x34\x48\x25\x07\xcb\x55\x17\x92\x4f\x7f\x6d\x3b\x39\x88\x3a\x46\x60\x66\x8f\x22\xa4\xdf\x00\x77\x99\x63\x4f\x03\xbc\xda\x25\x7d\x56\x0c\xa1\x53\xcd\x8a\x9d\x64\x81\x92\x89\x94\xef\x75\x6b\x33\x91\xb4\x1b\xe2\x17\xe9\xcb\xa5\x0a\x8d\x43\xcd\xcc\x95\x51\x14\x38\xae\xde\x21\x66\xae\x2b\xa9\x3d\x90\x41\x28\x94\xbf\x8e\x2d\xd8\x74\xcb\xfc\x28\xbf\xc6\xad\xb8\xfe\xa2\x22\x95\x9a\x81\xf9\x7c\x9b\x34\x2f\x47\x9b\xc1\xda\x4d\x15\x84\xe2\xe6\xf5\x0f\xf1\xb1\xa1\x74\x34\x97\xf2\x02\x7f\x69\x8c\x3e\xed\x4a\x8a\xf7\xfc\xd2\xf5\xcd\x04\xa5\x5d\x35\xdb\x63\xb5\xaf\x3e\xa1\x66\xe2\xfe\x49\xe8\xe5\xf2\xcd\xf5\xf5\x32\xf0\xa4\xbf\x9c\x07\xe1\xf2\x7a\xf5\x75\x79\xbd\xf1\x5d\x27\x58\xa8\xeb\xbf\x7d\x8c\xee\xe2\xab\xb4\xf6\xfd\x26\x8d\xd3\x65\xf7\x58\x65\x25\x8e\xd6\x78\x6b\x6a\xb8\xbd\x6e\x60\xb8\xbd\x35\x7e\x2c\xcb\xee\xfb\x75\xed\x7d\x9b\xf8\x5a\xcb\x6e\x7c\xa2\x96\xb2\xb6\x4c\xac\xb6\x94\x2f\x44\x17\x32\x31\xe6\xaf\xff\xeb\x49\x2d\xa6\x91\x59\x56\x22\x11\x33\xa0\x59\x36\x12\x2d\x0e\xac\xb0\x7c\x27\x5b\x6b\x85\x91\xfd\x7c\x46\xd9\xcf\xa4\x79\x91\xe6\x45\x9a\x17\x69\x5e\x6c\x20\xcb\xde\x22\x2b\x13\x25\x86\xd9\x8e\x91\xe7\x91\x1c\x57\x99\xe7\x61\xf7\xb6\x2c\xf3\x6d\x77\x9e\xdd\xa1\x43\x00\x76\x6d\xaf\xfa\xcd\x54\x7c\x52\x2f\x29\x1d\x39\xa3\x44\xfd\x5b\x07\x6a\xdd\xc7\x9f\xa4\xb3\x9e\x0b\xf1\x3e\xfe\x3f\xfd\xfb\xa3\x74\xb5\xc3\x2f\x12\x8e\xb7\x89\xd6\x2a\xdc\x2e\x35\x26\xa2\x53\x78\xee\x57\x25\x66\xd9\x5d\xce\x62\x8b\x32\xb5\x82\xe6\xe2\xce\x93\xbe\x9f\x04\x5a\x68\x3b\x45\x7a\xc6\x34\xba\xf9\xa1\xcd\xdc\xad\xef\x71\x20\x0b\x22\x6b\xb4\xcc\x00\xbf\x4f\x9b\x2f\x7e\x52\xf1\xde\xb4\x58\xbc\x6a\xac\xa2\xb4\x75\x92\x58\xa6\x4d\xa4\x42\x1d\x84\xb4\xb5\xa5\x9f\x4e\xdc\x50\xf1\xcd\x4c\x97\xa0\xdb\xbd\xb4\xe1\xaa\x2b\x5b\x15\xe2\x89\x76\x1c\x4b\x42\x0b\xa6\xad\x01\x4d\xe2\x2d\x29\xbc\x83\x26\xb0\xda\x16\x4e\x0d\xa0\x1f\x1d\xa0\xd7\x21\x3f\xad\x8a\x2d\x5f\xe9\x73\xff\x5e\x3d\x53\x3f\xaa\x70\xa9\x1a\x1d\x19\xad\x43\xb9\x56\x4b\xd7\xb9\x6a\x7e\x4e\xfc\xf9\x29\x39\x52\xaf\x09\x4d\xcc\x2c\x1d\x23\xaa\x53\xd0\x4c\x78\xda\xd1\x26\x97\xfe\x3d\x9b\xdc\xd7\xa7\x8a\x2a\xa8\xd8\xae\xdc\xed\x86\x8a\x09\x9c\xda\x13\x77\x6a\x9f\x4f\x68\xc1\x5e\x46\x47\xfa\x72\x99\xac\xa3\x95\x09\xc2\x4e\x32\xd9\x5f\x94\x4c\x46\x2f\xb5\x4b\xcf\xa4\x1a\x4b\x4f\x9f\xe9\x07\xfe\x95\x39\x5b\x1f\xa1\xbd\xea\x91\x78\xf1\x53\x14\xf8\x77\x26\xa1\xfb\x97\x78\xda\x4b\x3e\x7f\x4a\x27\xc3\xed\x1f\x5f\xda\x14\xf3\xd0\x7c\xdc\x7c\x08\x42\x47\x63\x87\x65\xa0\x3b\x3f\x10\x9f\x2f\x1f\xe2\xbf\x7d\xbe\x14\xb7\x3b\xad\x39\x17\x1f\xd7\x09\x23\xd0\x5b\x9f\xe4\x45\xbd\x92\x8e\xee\x00\x9d\x12\xec\xb9\x4e\xe2\xf5\xd4\x3b\xa5\xe0\x7b\xd2\xb7\x26\x65\x76\xa5\x82\x95\xa7\xe6\xc2\xfc\xa6\x56\x02\x48\xc7\x94\x8e\xd2\x2f\xec\x88\xec\xe7\xdb\x34\x6f\xfc\x43\x6c\x98\xcc\x17\x6c\x98\x6c\xd9\x30\xad\xf6\xa2\xc0\xad\xde\x32\x6d\x3a\xf7\xa2\xad\x3c\xe9\x1c\x6f\xd5\x25\xe7\x9d\x83\x5d\x47\xb4\x28\x26\xdd\x59\x99\x74\x16\x59\x4e\x2c\xf0\xd9\x37\x44\x8b\x9e\x9d\x61\xb2\xb1\xdc\x93\x7b\x21\x3a\x8c\xb9\xbc\x8e\x0c\xd3\xcd\x85\x5e\x9e\x86\x19\x9a\xdf\x49\xd7\xb2\xee\xe9\x61\xc2\xa6\x99\xb0\x78\xf1\x41\x38\x20\x1c\x10\x0e\x08\xa7\xf0\xc8\xe1\x10\x4e\xfb\x15\xb0\x21\xcc\x29\x58\x02\x47\xb9\xf5\x07\xe9\xb0\xff\x3f\xbf\xfd\x3f\x48\xa7\xcb\x71\x03\xd2\xc1\xe3\xc3\x06\x0a\xa4\xb3\xdb\x68\x3d\x20\x9d\xe7\xf8\x39\x1a\xc2\x9d\xa9\xd8\x79\x20\x1e\x4c\xbc\xb3\x32\xf1\x2c\xb2\xa4\x58\xf0\xb3\x6f\x40\x3c\x67\x67\xa8\x4c\x03\xf1\x68\x29\xc4\x2d\xd1\x39\x29\xc3\x49\x24\xa2\xfd\x85\xfb\xcd\x5d\x6c\xa4\x97\x57\xdf\x94\x99\x28\x7c\xf2\xc4\xf3\x5c\xc2\xf8\x9b\x2c\xd5\x7c\xa6\xaf\x31\xdb\x16\x07\xd9\xa9\xf6\x90\x19\x43\xc2\xf5\xa3\xb5\x92\x3b\xfe\xcb\x7d\x53\xe9\x7b\xa1\x43\x2c\x27\xb1\xf8\x21\x08\x6f\x3d\x2f\xb3\x9c\xac\xe0\x42\xa5\x27\x9c\x97\x38\x66\x85\x77\x4f\x6b\xbb\xbe\xff\xa6\xfc\x73\x97\xc8\xd4\xfd\x38\x6d\x9d\x4c\xaa\x6f\x4d\xb8\xfa\x56\x3d\x6d\xaa\xab\xbc\x55\xe9\xce\xea\x80\xa4\x51\x6f\x8b\x7a\x5b\xd4\xdb\xa2\xde\xd6\xd4\xea\x6d\xd5\xcf\xbc\x85\xb5\xb6\x4e\x1c\xb7\xd0\x5b\x85\xad\xfa\xc7\x2f\xaf\xae\x65\x73\x1b\x1c\x53\x53\xab\xbe\x0d\xca\xeb\x69\x9d\xb8\x0d\xa8\xa2\x45\x15\x2d\xaa\x68\x51\x45\x8b\x2a\x5a\x27\xab\xa2\xd5\x60\xf6\x3f\xa8\xa0\x55\xa9\x43\x79\x46\x61\x8b\xcd\x9e\x86\x2a\x60\x23\xab\x02\x56\x3f\x88\xaa\x2a\x80\x9d\x78\x34\x0d\x5a\xf7\xab\xbe\x65\x2a\x6a\x7e\x9d\x7a\xd6\xb0\xb5\xd2\x57\x7d\xa3\x15\x38\xf1\x5b\xbb\xb3\x92\x4f\x7f\x1d\x83\x84\xea\x72\x7f\xce\x9e\x14\x1d\x84\xd4\xfc\xbc\xe7\x6b\x87\x11\xc1\x88\x04\x8c\x08\x46\x04\x23\x82\x11\xc1\x88\x60\x44\x30\x22\x18\x11\x8c\xc8\x5a\x3e\x02\x23\x82\x11\xc1\x88\x60\x44\x30\x22\x18\x11\x8c\x68\x8c\x8c\x08\x4d\x0f\xe0\x18\x70\x0c\x38\x06\x1c\x03\x8e\x0d\x0a\xc7\x0a\x8a\x11\x9f\x88\x91\xe5\xc1\x98\x9f\x2e\xfb\xc1\x83\xf8\xea\xfa\x8b\x4e\x01\xd9\xab\xad\x91\xaf\x37\x32\x89\x41\x18\xef\x13\xb6\xbb\x97\xd9\xce\xae\x37\x77\xed\x0e\xf0\x1a\x68\x0d\xb4\x36\x36\xb4\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\x0d\xac\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\x0d\xac\x36\x0e\xac\x86\xee\x3f\x8c\x10\x46\x08\x23\x84\x11\xc2\x08\x61\x84\x7b\x8c\xd0\x57\xeb\xef\x41\xf8\x35\xde\xc6\x7d\xfd\x21\x9a\xbb\xc1\x75\x2b\xea\x37\x88\x3c\xea\x5e\x5f\x2f\xd5\x5a\xb8\xfe\x43\x10\x3e\x66\x63\x5b\x0a\xc3\x21\xca\xe9\xdd\x52\xad\x7f\xcd\x9a\xe0\xf6\xee\xe3\xbf\xf6\x8f\x47\x10\xf6\x48\x84\x96\x35\xe2\xc8\x01\xda\xf6\xcd\xc8\x9d\x73\x91\xff\xdd\xba\x37\xe9\xdb\xcd\xb8\x5f\xa6\x9d\x2d\xaf\x99\x23\x9b\xbe\x49\x7f\xde\xdc\xde\x7d\xfc\xbd\xe8\x2c\xde\xa7\xe3\xdf\xa7\xb4\x21\x75\x8a\xee\x64\x5e\xab\xff\xfb\x76\xf3\x8c\x37\xab\x24\x86\x25\x39\x76\x15\x78\xae\xe3\xee\xa6\x79\x1b\xff\x42\xb7\x51\x2c\xe6\x9a\xc2\x09\x3c\x4f\x39\xe9\xaa\x93\xbc\x06\x77\xf1\x3d\x3c\x55\xbc\x31\xe6\xe4\xfc\x4b\xf3\x36\xbb\xce\x36\x7e\xa4\xf4\x6a\x4d\x2b\x1e\x80\xbe\xcf\x07\x7d\x37\x53\xd4\xaf\xc3\xdf\xcf\x2d\xa5\xf3\xaa\x7c\x30\xb6\x2b\xbf\x71\x92\x89\xf5\x9d\x7e\xfd\x7e\xd3\x2f\x46\x37\xd5\x36\xc0\xfa\x60\x7d\xb0\x3e\x58\x7f\x6a\x58\xbf\xd9\xaa\x52\x88\xf6\x7b\x2b\xa1\x43\xa5\xa3\xc6\x1d\x35\x64\xa5\xa3\xde\x62\x31\x8e\xa8\x2d\x54\x18\x8b\xd0\x5b\x8b\xfc\x91\xf7\xc7\xba\xbe\x88\x8c\x9b\x54\xdc\xab\x07\x63\x39\x67\xdc\x6e\x6b\x4a\x24\xb3\x97\x1e\x3a\xb9\xda\x4e\x7e\xe0\x5f\xf9\x6a\x29\xf5\x00\x4d\x3c\xaa\xf9\x1a\x50\x86\xe1\x67\xaf\x46\xb2\x79\x71\x1f\x1f\xd5\xc2\x95\x6b\xe5\x3d\x6d\x4d\xda\xed\x92\xeb\x7a\xaf\x12\x8f\xa9\x6e\x74\xb1\x0c\xa5\xa3\xdf\x1a\x37\x58\x64\x06\xc1\x76\xd1\xd6\xfb\x85\x74\x94\x6e\xa2\xf8\x26\xf3\xdd\x25\xe3\x33\xd3\x07\x4a\x7e\xe4\xc1\xcc\x81\xe9\x25\xe6\xe6\x3e\x4d\x3d\xca\x82\x7b\x6c\xd1\xcd\xfa\x9e\xef\xf4\x2d\x17\x79\xa1\x6b\xfc\xd0\xb6\x0c\xff\x63\xc2\x70\x9a\xb5\x4b\x79\x28\x4e\x6f\xc3\x9f\xa0\x1c\x82\x72\x08\xca\x21\x28\x87\xa0\x9c\x93\x05\xe5\x34\x5c\x0b\x0e\x02\x73\xfa\x5b\x16\xdf\xe5\x12\xfc\x56\x9e\x92\x91\xca\xa6\xa0\xbb\x30\x58\xc9\xa5\xb6\x8e\x8c\x0b\x74\xc7\x0f\x96\x0e\xba\x6d\x86\x60\x3c\xec\x6e\xe6\xff\x98\x8b\x4f\x66\x3e\x33\xa6\xcb\x4a\xf9\xf1\xcb\xb2\x5d\x53\x95\x08\xc2\xd5\x17\xe9\xa7\x7e\xb9\x70\xa3\xae\x1f\xa4\x97\xee\x95\x3f\x5f\x9a\xaf\x3f\x5f\x8a\x07\xd7\x97\x9e\xfb\x9f\x74\x21\xb9\x57\x42\x2e\x16\x7a\x74\x5e\x1b\x00\xbc\xd8\x6e\xc3\xcc\xe5\x67\xd1\xf6\x24\xb3\x3f\x9d\x8b\xf7\xae\x9e\x1c\x73\xb7\x1e\x84\x87\xcf\xa6\xa7\x1f\xe3\x2a\x32\xdb\x63\xbd\x47\x09\xd6\x5f\xda\x74\xa8\x79\x82\x77\xe9\xb3\xf7\xe6\xe2\x3b\xdc\x98\xe9\x47\x8f\x5f\xd8\x2f\xc1\x77\xb1\x94\xe1\xbd\x5c\xee\xf8\xcc\xb3\x4d\x8d\x0a\x1f\x82\xf0\x31\xee\x93\xc2\xf6\xfa\x6d\xef\x89\xca\x9b\x4b\x1b\xbd\xa9\xc5\xba\x32\x6d\xeb\xc6\xd6\xa4\xe3\x2e\xb6\x5b\x61\x6d\x2b\x98\xa2\xe6\x69\x1f\x47\x1a\x22\xeb\x6f\x53\x6b\x60\x9e\xeb\xcc\x74\x1d\x49\xb7\xda\x57\x99\x8f\x79\xf7\xc7\xe6\xe2\xd6\x71\xd4\xca\x54\x4d\xcd\xef\xec\x66\xe6\x19\x66\xe2\x2a\x19\x80\xbb\x03\x34\xfa\x51\xcc\xfe\x29\x9d\xaf\xcb\x30\xd8\xf8\x8b\xf8\x28\xed\xab\xd5\x07\xed\x35\x9c\x31\x21\x13\xfb\x78\xf7\x22\xe9\x13\xdc\x67\x57\xfa\x51\xcc\x3e\x04\xa1\xca\x5d\x56\x38\x32\x72\xe4\x22\x7e\xfa\xa4\x7d\x8c\x3b\x5f\x5f\x2f\x32\x5b\xcf\x83\x0b\x3e\x64\xd7\x68\x33\x20\x57\xfb\xc3\x7d\x40\x4f\x01\xb1\x57\xe3\x89\xbd\x6a\x36\xba\xaa\xe2\xaf\xfa\xdb\xcc\x0f\x19\x89\xd5\xac\x9d\x2a\xa2\xb1\xfa\x5b\xf0\x6d\x8d\xcb\x6a\xd6\x84\x87\xb1\x59\xcf\x5d\x4e\x0b\x59\x33\xa1\x12\x47\x12\xbd\x4f\x6b\xb9\xde\x8c\xbe\xb2\x73\x59\x84\x44\xee\xb4\x92\xa4\x7d\xb3\x78\x6f\x0d\xab\x2e\xf2\xf7\x0f\x82\x2f\x8a\xd3\xf8\xcb\xa2\x14\xf6\x93\xf9\xab\xf2\xf8\x3b\xd7\x18\x31\x2e\xb5\x30\x59\xdb\x53\xdb\x3f\x95\x17\x69\x1a\xa6\x11\x5f\x25\x1f\xa4\x41\x68\x06\xa1\x19\x53\x0c\xcd\x20\x98\x81\x60\x06\x82\x19\x08\x66\x20\x98\x61\xf0\x60\x06\x28\x39\xe0\x14\x70\x0a\x38\x05\x9c\x02\x4e\x01\xa7\x80\xd3\xd2\x45\x00\x96\x01\xcb\x80\x65\xc0\x32\x60\x19\x48\x1e\x57\x41\x93\x79\xce\x8d\xff\xed\x66\xbe\xe3\xb8\x9e\x72\x56\x69\x3d\x33\xe9\xaa\x7c\x68\x8f\x9c\xa4\x85\xde\x31\xb2\x41\x96\xcb\x06\x25\x9f\xfe\xda\x76\x72\x10\x75\x4c\xc3\xcc\x3e\x45\xc8\xc6\xe0\xcb\x9c\x70\x22\xf4\xd5\x2e\x11\xb4\x62\x20\x9d\x6c\x7e\xec\x24\x35\x94\xf4\xa4\x7c\xb7\x5b\x9b\x9e\xa4\x3d\x12\xbf\x48\x5f\x2e\x55\x68\x7c\x6b\x66\xca\x8c\xa2\xc0\x71\xf5\x66\x31\xf3\x62\x49\xed\x8c\x0c\x42\xa1\xfc\x75\x6c\xcc\xa6\xbb\xe7\x47\x19\x8f\xa2\xf8\x90\x48\xa5\x16\x61\x3e\x09\x27\x4d\xd6\xd1\x16\xb1\xf6\x58\x05\xa1\xb8\x79\xfd\x43\x7c\x6c\x28\x1d\x8d\xa8\xbc\xc0\x5f\x1a\xfb\x4f\x7b\x95\xe2\xed\xbf\x74\x7d\x33\x4f\x69\xaf\xcd\xf6\x58\xed\xb6\x4f\x00\x9a\xb8\x7f\x12\x7a\xe1\x7c\x73\x7d\xbd\x0c\x3c\xe9\x2f\xe7\x41\xb8\xbc\x5e\x7d\x5d\x5e\x6f\x7c\xd7\x09\x16\xea\xfa\x6f\x1f\xa3\xbb\xf8\x2a\xad\xdd\xc0\x49\xe3\x74\xd9\x3d\x56\x19\x8c\xe3\xb5\xe3\x9a\xda\x70\xaf\x1b\xd8\x70\x6f\x8d\x4f\xcb\xb6\x1b\x7f\x5d\x7b\xe3\x26\xec\xd6\xb6\x3b\x9f\x9e\xd9\xac\xcd\x93\x51\x98\xcd\x17\xa2\x4b\x41\x99\x82\xd2\x48\x27\xd4\x95\x69\x6e\xab\x1d\x6a\xc9\x0c\x6e\xab\x8d\x44\xb4\x03\xcb\x2c\xdf\xc9\xd6\x5a\x66\xa4\x49\x9f\x51\x9a\x34\xf9\x60\xe4\x83\x91\x0f\x46\x3e\x18\x9b\xca\xb2\xb7\xc8\xca\x8c\x8a\x61\x36\x68\x24\x84\xd4\x24\x84\x8c\x63\x9f\x96\x79\xbe\x3b\x4f\x03\xd1\x41\x02\xbb\xe6\x57\xd3\x6d\x55\x7c\x6a\x3f\xb9\x1f\x39\xf3\x44\xfd\x5b\x47\x74\xdd\xc7\x9f\xa4\xb3\x9e\x0b\xf1\x3e\xfe\x3f\xfd\xfb\xa3\x74\xb5\x3b\x30\x12\x8e\xb7\x89\xd6\x2a\xdc\x2e\x3a\x26\xf4\x53\x78\xee\x57\x25\x66\xd9\xbd\xce\x62\xdb\x32\xb5\x87\xe6\xe2\xce\x93\xbe\x9f\x44\x64\x68\x8b\x45\x7a\xc6\x48\xba\xf9\xa1\xcd\x2c\xae\xef\x71\x20\x5b\x22\x6b\xb4\xcc\x14\xbf\x4f\x9b\x2f\x7e\x52\xf1\xde\xb4\x58\xbc\x7e\xac\xa2\xb4\x75\x92\xa0\xa7\x4d\xa4\x42\x1d\xad\xb4\xb5\xaa\x9f\x4e\xdc\x50\xf1\xcd\x4c\x17\xb5\xdb\xbd\xc8\xe1\xc6\x2b\x5a\x20\xe2\xb9\x76\x5c\xab\x43\x0b\xf8\x9d\x2f\x00\x54\x71\x0b\x94\x01\x2a\x7e\x66\x78\x7e\x27\x3c\x5f\x47\x09\xb5\xd2\xff\xbf\xd2\xe7\xfe\xbd\x7a\xce\x7e\x54\xe1\x52\x35\x3a\x32\x5a\x87\x72\xad\x96\xae\x73\xd5\xfc\x9c\xf8\xf3\x53\x72\xa4\x5e\x1d\x9a\xd8\x5d\x3a\xac\x54\x67\xad\x99\x88\xb6\x96\x36\x98\xfe\x55\xab\x3c\xdb\xa7\x8a\x42\xa8\xd8\xc9\xdc\xed\x06\x99\x09\xfc\xdd\x13\xf7\x77\x9f\x4f\x24\xc2\x5e\x2e\x48\xfa\x72\x99\x7c\xa5\x95\x09\xdf\x4e\x72\xe0\x5f\x94\xcc\x49\x2f\xb5\xb7\xcf\x24\x29\x4b\x4f\x9f\xe9\x07\xfe\x95\x39\x5b\x1f\xa1\x1d\xee\x91\x78\xf1\x53\x14\xf8\x77\x26\x15\xfc\x97\x78\xf6\x4b\x3e\x7f\x4a\xe7\xc4\xed\x1f\x5f\xda\x14\x22\xd1\x7c\xdc\x7c\x08\x42\x47\x13\x89\x65\xa0\x3b\x3f\x10\x9f\x2f\x1f\xe2\xbf\x7d\xbe\x14\xb7\x3b\xad\x39\x17\x1f\xd7\x09\x3e\xd0\x7b\xa1\xe4\x45\xbd\x92\x8e\xee\x00\x9d\x4c\xec\xb9\x4e\xe2\x10\xd5\x5b\xa7\xe0\x7b\xd2\xb7\x26\xd9\x76\xa5\x82\x95\xa7\xe6\xc2\xfc\xa6\xd6\x10\x48\xc7\x94\x8e\xef\x2f\xec\x88\xec\xe7\xdb\x34\x6f\xfc\x43\xec\xa0\xcc\x17\xec\xa0\x6c\xd8\x41\xad\xf6\x62\xc7\x47\xb1\x87\xda\x74\xee\x61\x5b\x79\xd2\x69\x6b\xe0\x25\x67\x9f\x85\x89\x47\xa0\x29\xe6\xdd\x79\x99\x77\x16\x59\x51\x2c\xf6\xd9\x37\x04\x9a\x9e\x97\x95\xb2\x19\x89\x9f\xf7\x42\x34\x8c\xd6\x2c\xaf\xf3\x37\x16\x19\xb9\xfc\x79\x1f\x82\xf0\xd6\xf3\x32\xab\xc7\x8a\x8a\x99\xa5\x27\x90\x3a\x49\xea\xe4\xe5\xd9\xa4\x4e\x22\xca\x38\x61\x51\xc6\x7a\x28\x54\x27\xc8\xd8\xbe\x2a\x7b\x33\xe0\x85\x0c\x23\x32\x8c\xc8\x30\x22\xc3\x38\x35\x19\xc6\xfa\x99\xb7\x50\x82\xf1\xc4\xe1\x05\xbd\x09\x2f\xd6\x3f\x7e\xb9\xe8\xa2\xcd\x6d\x70\x8c\xd4\x62\x7d\x1b\x94\xcb\x2c\x9e\xb8\x0d\x10\x57\x44\x5c\x11\x71\x45\xc4\x15\x11\x57\x3c\x99\xb8\x62\x83\xd9\xff\x40\x58\xb1\x32\xff\xf0\x8c\xa2\x0b\x9b\x3d\x0d\xe2\x90\x23\x13\x87\xac\x1f\x44\x55\xc2\x90\x27\x1e\x4d\x83\xca\x41\xd6\xb7\x4c\x85\x14\xe4\xa9\x67\x0d\x5b\x05\x20\xeb\x1b\xad\xc0\x7b\xdf\xda\x9d\x95\x7c\xfa\xab\x29\xc1\xd1\xbf\xdd\x50\x75\xe3\xa4\x78\x27\x31\x87\xfc\x85\xfb\xcd\x5d\x6c\xa4\x97\xef\x45\x99\x6d\x79\x76\xbc\xcf\xf3\x5c\x82\xf9\x9b\xcc\x2e\x9d\xe9\x2b\xcd\xb6\x4e\xae\x1d\xaf\x45\x86\x83\x84\xeb\x47\x6b\x25\x77\x16\x90\x7d\x58\xf4\xbd\x61\xcc\xf3\xcf\x7b\x2e\x78\x58\x91\xad\x99\xb4\x7a\x92\x78\x1f\x6f\x83\xce\x17\x18\xe9\x2e\x84\x1a\x41\x8d\xa0\x46\x50\x23\xa8\x11\xd4\x08\x6a\x04\x35\x82\x1a\x41\x8d\xa0\x46\x50\x23\xa8\x11\xd4\x08\x6a\x04\x35\x1a\x1f\x35\x42\x8c\x03\x5c\x06\x2e\x03\x97\x81\xcb\xc0\x65\x56\xe0\xb2\x02\x91\xfa\x13\x51\xb3\x3c\x2a\xf3\xd3\xe5\xbf\x30\x33\xaa\x13\x64\xf6\x6a\x6b\xf2\xeb\x6d\x4d\x62\x1e\xc6\xbb\x86\xed\x5e\x66\xb6\xb3\x07\xce\x5d\xbb\x0b\xe0\x06\x6c\x03\xb6\x8d\x08\xb6\x01\xda\x00\x6d\x80\x36\x40\x1b\xa0\x0d\xd0\x06\x68\x03\xb4\x01\xda\x00\x6d\x80\x36\x40\x1b\xa0\x0d\xd0\x06\x68\x03\xb4\x8d\x0b\xb4\x21\xe4\x0f\x3b\x84\x1d\xc2\x0e\x61\x87\xb0\x43\xd8\xe1\xd1\xec\x90\x9c\xba\x3d\xc4\xb7\x9f\x49\x87\x0a\xe3\x7e\xb7\x02\xfb\x46\x04\xfb\xc8\xac\x03\xf8\x01\xfc\x00\x7e\x00\x3f\x80\x1f\xc0\x0f\xe0\x07\xf0\x03\xf8\x01\xfc\x00\x7e\x00\x3f\x80\x1f\xc0\x0f\xe0\x37\x3e\xe0\x07\x24\x02\x12\x01\x89\x8a\x47\x13\x90\xa8\xf4\x3d\x03\x12\x1d\x0f\x89\xee\xd5\x5a\xde\x5c\xb7\x82\x42\x83\x54\xca\xdb\xeb\xf3\xa5\x5a\xef\xda\x79\xa6\x7b\x2b\x70\xd0\x52\xed\x94\xe3\xd2\xcf\x7f\x7b\xf7\xf1\xf7\xa2\x53\xa9\x11\x78\x24\x93\xc9\x35\xe4\xe4\x6a\x64\xe9\x91\x92\x3b\xf7\x22\xff\xfb\x4d\x5f\x34\xd7\x5f\x86\x2a\x8a\x1c\x4f\x46\xbb\x3d\x79\x69\x6c\xe9\x6e\x71\xac\xb9\xa6\x70\x02\x2f\xde\xba\x27\x6b\xc0\x47\x73\x0b\x6f\xe3\x5b\xa8\x78\x4f\xcc\xb9\x07\xaf\xca\xdb\xec\x5a\x65\xd7\x69\x5a\xa0\x17\xbe\x73\x3e\x7c\xa7\x59\xfd\xd7\x3a\xc6\xf3\xdc\xa2\xef\xaf\xca\x07\x63\xbb\x6a\xd1\x27\x99\x43\xdf\xe9\x17\xef\x37\xfd\x62\x44\x9d\xd4\x86\x86\x5d\xc1\xae\x60\x57\xb0\xab\xa9\xb1\xab\x66\xab\x4a\x21\xbf\xea\xad\xe0\x3b\x75\xf9\x1b\x77\xd4\x90\x75\xf9\x7b\x03\x8e\x47\x54\xc2\x2f\x04\x6e\xbd\xb5\xc8\x1f\x79\xd7\x91\xeb\x8b\xc8\x78\x74\xc4\xbd\x7a\x30\x96\x73\xe6\x9c\xde\x9a\x12\xc9\xec\xa5\x87\xce\x46\x99\xc5\xe1\x5e\x09\x3f\xf0\xaf\x7c\xb5\x94\x7a\x80\x26\xce\x9f\xb9\xf8\x23\x5b\xb0\x0d\xa8\xca\x5e\x8d\x64\xd7\xe2\x3e\x3e\xaa\x85\x2b\xd7\xca\x7b\xda\x9a\xb4\xdb\x25\xd7\xf5\x5e\x25\xce\x1d\xdd\xe8\x62\x19\x4a\x47\xbf\x35\x6e\xb0\xc8\x0c\x82\xed\xa2\xad\xf7\x0b\xe9\x28\xdd\x44\xf1\x4d\xe6\xbb\x4b\xc6\x67\xa6\x0f\x94\xfc\xc8\x83\x99\x03\xd3\x4b\xcc\xcd\x7d\x3e\x2a\xe9\x17\xde\x63\x8b\x6e\xd6\xf7\x7c\xa7\x6f\xb9\xc8\x61\x56\xe3\x32\xb3\x65\xf8\x1f\xc3\x9a\x9b\xb5\x4b\x39\x6f\xee\x6d\xf8\x43\x9e\x21\xcf\x90\x67\xc8\x33\xe4\xf9\x64\xe4\xb9\xe1\x5a\x70\x40\x9f\xfb\x5b\x16\xdf\xe5\x32\x53\x56\x9e\x92\x91\xca\xa6\xa0\xbb\x30\x58\xc9\xa5\xb6\x8e\x4c\x24\xfc\x8e\x1f\x2c\x1d\x74\xdb\xd4\x96\x78\xd8\xdd\xcc\xff\x31\x17\x9f\xcc\x7c\x66\x4c\x97\x95\xf2\xe3\x97\x65\xbb\xa6\x2a\x11\x84\xab\x2f\xd2\x4f\xfd\x72\xe1\x46\x5d\x3f\x48\x2f\xdd\x2b\x7f\xbe\x34\x5f\x7f\xbe\x14\x0f\xae\x2f\x3d\xf7\x3f\xe9\x42\x72\xaf\x84\x5c\x2c\xf4\xe8\xbc\x36\xac\x6a\xb1\xdd\x86\x99\xcb\xcf\xa2\xed\x49\x66\x7f\x3a\x17\xef\x5d\x3d\x39\xe6\x6e\x3d\x08\x0f\x9f\x4d\x4f\x3f\xc6\x55\x64\xb6\xc7\x7a\x8f\x12\xac\xbf\xb4\xe9\x50\xf3\x04\xef\xd2\x67\xef\xcd\xc5\x77\xb8\x31\xd3\x8f\x1e\xbf\xb0\x5f\x82\xef\x62\x29\xc3\x7b\xb9\xdc\x71\x96\x67\x9b\x1a\x15\x3e\x04\xe1\x63\xdc\x27\x85\xed\xf5\xdb\xde\x13\x95\x37\x97\x36\x7a\x53\x8b\x75\x65\xda\xd6\x8d\xad\x49\xc7\x5d\x6c\xb7\xc2\xda\x56\xd0\xce\x89\xac\x8f\xe3\xc5\x3a\x59\x49\x53\x6b\x60\x9e\xeb\xcc\x74\x1d\x49\xb7\xda\x57\x99\x8f\x79\xf7\xc7\xe6\xe2\xd6\x71\xd4\x6a\xad\xd7\xa6\xfc\xce\x6e\x66\x9e\x61\x26\xae\x92\x01\xb8\x3b\x40\xa3\x1f\xc5\xec\x9f\xd2\xf9\xba\x0c\x83\x8d\xbf\x88\x8f\xd2\xbe\x5a\x7d\xd0\x5e\xc3\x19\x13\x32\xb1\x8f\x77\x2f\x92\x3e\xc1\x7d\x76\xa5\x1f\xc5\xec\x43\x10\xaa\xdc\x65\x85\x23\x23\x47\x2e\xe2\xa7\x4f\xda\xc7\xb8\xf3\xf5\xf5\x22\xb3\xf5\x3c\xb8\xe0\x43\x76\x8d\x36\x03\x72\xb5\x3f\xdc\x07\xf4\x14\x10\x26\x32\x9e\x30\x91\x66\xa3\xab\x2a\x54\xa4\xbf\xcd\xfc\x90\x41\x23\xcd\xda\xa9\x22\x70\xa4\xbf\x05\xdf\xd6\x10\x92\x66\x4d\x78\x18\x46\xf2\xdc\xe5\xb4\x10\x32\x13\x15\x71\x24\xd1\xfb\xb4\x96\xeb\x4d\x53\x94\x37\xce\x60\x88\xdc\xb9\x25\xa9\xaa\x66\x05\xdf\x5a\x57\x3d\x66\xac\x96\x44\x2a\xec\x27\xac\xee\x3d\xd3\x61\xd6\x6a\xe7\xe9\xf2\xc6\xb7\x16\x26\x8b\x7c\xba\x09\x48\x75\xb4\x1b\x06\x6a\xc4\x17\x39\x08\xd3\x20\x38\x83\xe0\x8c\xc9\x04\x67\x10\xce\x40\x38\x03\xe1\x0c\x84\x33\x10\xce\x30\x78\x38\x03\x9c\x1c\x74\x0a\x3a\x05\x9d\x82\x4e\x41\xa7\xa0\x53\xd0\x69\xe9\x22\x00\xcd\x80\x66\x40\x33\xa0\x19\xd0\x0c\x04\x3e\xab\xb0\xc9\x3c\xe7\xc3\x4f\x5c\xf0\xf3\xbc\xf3\x7a\xf2\x69\xa4\xf5\xe4\xa4\x67\x7d\xcf\xae\x68\x49\x0b\x8d\xcf\xb1\xe8\x7e\x5c\xec\xf5\xdd\xe5\x2a\x88\x3a\x46\x43\xc6\x76\x17\xd2\x6f\x8a\x81\xcc\x09\x9d\x83\xa0\x76\x89\x91\x15\xf5\x05\x4e\x3a\x5b\x74\x92\x2e\x49\xca\x4e\xbe\xeb\xad\x4d\xd9\xd1\x7b\xf4\x5f\xa4\x2f\x97\x2a\x34\xde\x26\x53\x4d\x23\x8a\x02\xc7\xd5\xdb\xa7\xcc\xaf\x23\xb5\x7b\x2e\x08\x45\xbc\xbb\x5e\x3f\x65\xfb\xc9\x47\x19\x8f\xa4\xf8\x90\x48\xa5\x36\x52\x3e\x31\x25\x4d\x60\xd1\x36\xa2\xf6\xe1\x04\xa1\xb8\x79\xfd\x43\x7c\x6c\x28\x1d\x0d\x6d\xbc\xc0\x5f\x1a\x8b\x48\xfb\x59\xe2\x0d\xb1\x74\x7d\x33\x4b\x69\x3f\xc6\xf6\x58\xed\xc8\x4e\x90\x92\xb8\x7f\x12\x7a\x19\x79\x73\x7d\xbd\x0c\x3c\xe9\x2f\xe7\x41\xb8\xbc\x5e\x7d\x5d\x5e\x6f\x7c\xd7\x09\x16\xea\xfa\x6f\x1f\xa3\xbb\xf8\x2a\xad\x1d\xa3\x49\xe3\x74\xd9\x3d\x56\x99\x50\xe3\xb6\x6c\x9a\x5a\x35\xaf\x1b\x58\x35\x6f\x8d\xa7\xc7\xc6\x9b\x7f\x5d\x7b\xf3\x26\x24\xd5\xc6\xbb\x9f\xa8\x41\xa9\xad\x95\xd1\x18\x94\x17\xa2\xb5\xbe\x4a\x41\x41\xfc\x13\xca\xac\x34\xb7\xd5\x4a\xb4\x55\x86\xb1\xd5\x46\x22\x62\x81\x55\x96\xef\x64\x6b\xad\x32\xd2\x86\xcf\x28\x6d\x98\xfc\x28\xf2\xa3\xc8\x8f\x22\x3f\x8a\x0d\x65\xd9\x5b\x64\x65\x86\xc1\x30\x9b\x32\x12\x24\x92\xe3\x2a\x13\x24\xc6\xb3\x2f\xcb\x9c\xdf\x9d\xa7\x45\x68\x76\xbe\x6b\x87\x35\xdc\x58\xc5\x67\x9e\x3a\x17\x22\x67\xa0\xa8\x7f\xeb\x08\xa7\xfb\xf8\x93\x74\xd6\x73\x21\xde\xc7\xff\xa7\x7f\x7f\x94\xae\x76\x06\x46\xc2\xf1\x36\xd1\x5a\x85\xdb\x65\xc7\x84\x42\x0a\xcf\xfd\xaa\xc4\x2c\xab\x3c\x38\x8b\xad\xcb\xd4\x22\x9a\x8b\x3b\x4f\xfa\x7e\x12\xa1\xa0\x6d\x16\xe9\x19\x33\xe9\xe6\x87\x36\xf3\xb8\xbe\xc7\x81\xac\x89\xac\xd1\x32\x63\xfc\x3e\x6d\xbe\xf8\x49\xc5\x7b\xd3\x62\xf1\x0a\xb2\x8a\xd2\xd6\x49\x82\x80\x36\x91\x0a\x75\xf4\xce\xd6\xae\x7e\x3a\x71\x43\xc5\x37\x33\x5d\xf4\x6c\xf7\x32\x87\xf3\xce\x1c\x57\xb2\x4c\xc4\xb3\xed\xf8\xd6\x88\x16\x30\x38\x5f\xf5\xbd\xfc\x36\xc6\x54\xf4\x7d\xbc\x78\x5b\x07\x92\xb4\x12\x85\xbf\xd2\xe7\xfe\xbd\x7a\x1a\x7b\x54\xe1\x52\x35\x3a\x32\x5a\x87\x72\xad\x96\xae\x73\xd5\xfc\x9c\xf8\xf3\x53\x72\xa4\x9e\x30\x9b\xd8\x20\x3a\xf2\x50\x27\x36\x99\xa0\xa7\x76\xf6\xc8\x6a\xbf\xf6\xf0\x04\x99\x7c\x85\x5d\x7f\xb7\x1b\x80\x24\xf0\xfe\x4e\xdc\xfb\x7b\x3e\x4c\x7e\x2f\x4f\x20\x7d\xb9\x4c\x2e\xcb\xca\x84\xf6\x26\xf9\xd1\x2f\x4a\x26\xa3\x97\xda\xf7\x65\x12\x58\xa5\xa7\xcf\xf4\x03\xff\xca\x9c\xad\x8f\xd0\xee\xe7\x48\xbc\xf8\x29\x0a\xfc\x3b\x93\x26\xfc\x4b\x3c\xed\x25\x9f\x3f\xa5\x93\xe1\xf6\x8f\x2f\x6d\x0a\x16\x68\x3e\x6e\x3e\x04\xa1\xa3\xfd\xf3\xcb\x40\x77\x7e\x20\x3e\x5f\x3e\xc4\x7f\xfb\x7c\x29\x6e\x77\x5a\x73\x2e\x3e\xae\x13\x67\xba\xde\x17\x24\x2f\xea\x95\x74\x74\x07\xe8\x44\x53\xcf\x75\x12\xf7\xa0\xde\x46\x04\xdf\x93\xbe\x35\x89\x98\x2b\x15\xac\x3c\x35\x17\xe6\x37\x75\x7e\x79\x3a\xa6\x74\xec\x77\x61\x47\x64\x3f\xdf\xa6\x79\xe3\x1f\x62\x37\x61\xbe\x60\x37\xb1\xf3\x4c\x43\xef\x26\x56\x7b\x01\xc6\xa3\xd9\x4f\x6c\x3a\xf7\x39\xad\x3c\xe9\xb4\x34\xf3\x92\x93\x27\x6e\xe8\x11\x7c\x89\xa1\x77\x7e\x86\x9e\x45\xf6\x14\xcb\x7e\xf6\x0d\xc1\x97\x0d\x6e\x7e\xaa\x36\xcb\x66\x44\x1e\xd0\x0b\x71\x7c\xf4\xe2\x6e\x61\xb8\x61\x54\xc7\x2a\xac\x9d\x2a\xc1\xb1\x0f\x41\x78\xeb\x79\x19\xd0\xb2\xa2\x9a\x62\xe9\x09\x64\xda\x25\xbd\x46\x92\xdd\x40\x49\x76\x3d\x23\x15\x64\xfc\x26\x2c\xe3\x57\xcf\x88\xea\x24\xfc\xda\x17\x1d\x6e\xc6\xbf\x10\xee\x43\xb8\x0f\xe1\x3e\x84\xfb\xa6\x26\xdc\x57\x3f\xf3\x16\x8a\xf6\x9d\x38\xda\xa0\x37\xa9\xbe\xfa\xc7\x2f\x97\xe9\xb3\xb9\x0d\x8e\x11\xe7\xab\x6f\x83\x72\x61\xbe\x13\xb7\x01\x72\x7c\xc8\xf1\x21\xc7\x87\x1c\x1f\x72\x7c\x27\x93\xe3\x6b\x30\xfb\x1f\x48\xf1\x55\xe6\xe8\x9d\x51\xb0\x61\xb3\xa7\x41\x4e\x70\x64\x72\x82\xf5\x83\xa8\x4a\x4a\xf0\xc4\xa3\x69\x50\x01\xc1\xfa\x96\xa9\x10\x0f\x3c\xf5\xac\x61\xab\x64\x60\x7d\xa3\x15\x38\xf0\x5b\xbb\xb3\x92\x4f\x7f\x1d\x05\x6f\xfc\x0c\x7a\x18\xd9\x09\xfd\xf9\x7f\xc5\x4c\xe7\x84\x2a\x14\xb9\xfc\xdc\xe0\xa1\x01\xcd\x29\xd1\xa2\x78\x9b\x5d\x26\x83\x39\x8b\x82\x8b\x51\x4f\x06\x47\xf4\xe8\xea\xc9\x4c\x5a\x27\x05\x27\x3b\x4e\x76\x9c\xec\x38\xd9\xa7\xe6\x64\x1f\x43\x75\x1c\x82\x57\x1b\x77\xd4\x90\xc1\xab\x14\x31\x42\xb5\xeb\x8c\x55\xbb\xa8\x58\x05\x22\x03\x91\x81\xc8\x40\x64\x20\x32\x2a\x56\x21\x66\x89\x98\x25\x62\x96\x88\x59\xee\x8f\xc8\x1e\x3c\x05\xf0\xec\xf1\xf0\x6c\xca\xe3\x51\x1e\x8f\xf2\x78\xdb\x4b\x9d\x77\x7a\x31\x5a\xb6\xc9\x71\x95\x5a\xb6\x5b\xeb\x6a\x5c\x99\x75\xe3\xc8\xb8\x25\x2e\x83\xb8\x8c\x69\xc5\x65\x10\xc9\x40\x24\x03\x91\x0c\x44\x32\x10\xc9\x30\x78\x24\x03\x88\x1c\x6a\x0a\x35\x85\x9a\x42\x4d\xa1\xa6\x50\x53\xa8\x69\xe9\x22\x00\xc8\x00\x64\x00\x32\x00\x19\x80\x0c\xd4\x07\xab\x88\x09\xea\x83\xa2\x82\x97\x9c\x85\xfa\x60\x62\x2e\x19\xa1\x68\x7f\x21\xe2\x5e\x12\x91\x13\xac\xd4\x2b\x11\x6d\x1c\xbd\x66\xe9\xa9\x5e\xc9\x47\x33\x4f\xad\xc2\x40\x9b\x67\x45\xa9\xc0\xd5\x25\x9f\x34\x18\xd9\xfd\x9a\xba\x4f\x75\x4f\x93\x7c\xca\xd5\x7d\x0a\xa2\x8e\x49\x98\xd9\xaa\xe4\x4a\xe5\x57\x50\x2f\x73\xec\x69\xb8\xd7\x68\x94\xf5\x11\xd5\x3f\x9f\xbc\x24\x44\xf5\x11\xd5\x2f\xb8\x99\x31\xd8\x70\x63\xd5\xd3\xb7\xbb\x64\x76\x07\x37\x3e\x51\x83\x59\x5b\x26\x63\x30\x98\x2f\x44\x87\x12\x32\xe6\xaf\xff\xeb\x49\x49\xa6\x91\x91\x56\x22\x1f\x33\xa0\x91\x36\x12\x9d\x0e\x6c\xb2\x7c\x27\x5b\x6b\x93\x91\x19\x7d\x46\x99\xd1\xa4\x80\x91\x02\x46\x0a\x18\x29\x60\x6c\x27\xcb\xde\x22\x2b\x93\x28\x86\xd9\x9c\x91\x03\x92\x1c\x57\x99\x03\x32\x8a\x4d\x5a\xe6\xf0\xee\x3c\xf3\x43\x87\x07\xac\x8b\x6a\xca\x56\xec\xa9\xe2\x93\x7a\x49\xf7\xc8\xd9\x26\xea\xdf\x3a\x88\xeb\x3e\xfe\x24\x9d\xf5\x5c\x88\xf7\xf1\xff\xe9\xdf\x1f\xa5\xab\xbd\x80\x91\x70\xbc\x4d\xb4\x56\xe1\x76\xc5\x49\xaa\x6c\x7b\xee\x57\x25\x66\xd9\x5d\xce\x62\xc3\x32\x35\x86\xe6\xe2\xce\x93\xbe\x9f\x04\x61\x68\x73\x45\x7a\xc6\x42\xba\xf9\xa1\xcd\x14\xae\xef\x71\x20\x43\x22\x6b\xb4\xcc\x0e\xbf\x4f\x9b\x2f\x7e\x52\xf1\xde\xb4\x58\xbc\x78\xac\xa2\xb4\x75\x92\x38\x27\x5d\xb2\xdc\x91\x7e\xce\xa4\x7e\x3a\x71\x43\xc5\x37\x33\x5d\xba\x6e\xf7\x0a\x87\xff\xae\x6c\x71\x88\x27\xda\x51\xad\x0c\x2d\x78\xb7\x86\x37\x89\xef\xa4\xf0\x0e\x9a\x80\x6c\x5b\x18\x36\xf0\x7e\x74\xf0\x5e\x47\x05\x35\xb2\x66\xf6\x67\xe9\x2b\x7d\xee\xdf\xab\x27\xec\x47\x15\x2e\x55\xa3\x23\xa3\x75\x28\xd7\x6a\xe9\x3a\x57\xcd\xcf\x89\x3f\x3f\x25\x47\xea\xa5\xa1\x89\xb5\xa5\xc3\x48\x75\x96\x9a\x89\x60\x3b\xda\xf2\xd2\xbf\x67\x93\x33\xfb\x54\x11\x07\x15\x9b\x97\xbb\xdd\x68\x32\x81\x8b\x7b\xe2\x2e\xee\xf3\x09\x3b\xd8\x4b\xfa\x48\x5f\x2e\x93\x98\xb4\x32\x71\xda\x49\xb2\xfb\x8b\x92\xc9\xe8\xa5\x76\xf0\x99\x6c\x64\xe9\xe9\x33\xfd\xc0\xbf\x32\x67\xeb\x23\xb4\x8f\x3d\x12\x2f\x7e\x8a\x02\xff\xce\xe4\x7c\xff\x12\x4f\x7b\xc9\xe7\x4f\xe9\x64\xb8\xfd\xe3\x4b\x9b\xe2\x21\x9a\x8f\x9b\x0f\x41\xe8\x68\x08\xb1\x0c\x74\xe7\x07\xe2\xf3\xe5\x43\xfc\xb7\xcf\x97\xe2\x76\xa7\x35\xe7\xe2\xe3\x3a\x21\x06\x7a\x07\x94\xbc\xa8\x57\xd2\xd1\x1d\xa0\xb3\x86\x3d\xd7\x49\x7c\xa0\x7a\xc3\x14\x7c\x4f\xfa\xd6\x64\xd5\xae\x54\xb0\xf2\xd4\x5c\x98\xdf\xd4\x62\x01\xe9\x98\xd2\x81\xfc\x85\x1d\x91\xfd\x7c\x9b\xe6\x8d\x7f\x88\x7d\x93\xf9\x82\x7d\x93\x2d\xfb\xa6\xd5\x5e\xa0\xf8\x18\x76\x4e\x9b\xce\x7d\x6a\x2b\x4f\x3a\xc7\x1b\x77\xc9\x79\xe7\x60\xde\x11\x50\x8a\x65\x77\x56\x96\x9d\x45\x06\x14\xeb\x7c\xf6\x0d\x01\xa5\x67\x67\x9f\x6c\xc6\xe1\xd7\xbd\x10\xdd\x87\x65\x5e\x47\x06\xfb\xe6\xa2\x33\x4f\xc3\x13\xcd\xef\xa4\x2b\x5b\xf7\x64\x31\xc1\xd7\x4c\x5f\x4c\x03\xe0\x9d\xd2\x6e\x01\xef\x80\x77\xc0\x3b\x83\xe2\x9d\xf6\x0b\x61\x43\xd0\x53\xb0\x12\x8e\xd2\x1f\x00\xee\xc1\x29\x70\x7e\x4e\x01\x70\x4f\x97\xe3\x06\xdc\x83\x1b\x88\x7d\x14\xb8\x67\x28\xdc\xf3\x1c\xaf\x47\x43\xf0\x33\x15\x73\x0f\xfc\x83\xa5\x77\x56\x96\x9e\x45\x06\x15\xeb\x7e\xf6\x0d\xf8\xe7\xec\xec\x95\x29\xe2\x1f\x2d\xaf\x98\xd2\x1e\xc7\x93\xd1\xee\xab\xd3\x3d\xe4\x49\xb4\xa7\xfd\x85\xfb\xcd\x5d\x6c\xa4\x97\x97\xf5\x94\x99\xda\x7c\xf2\xf4\x6f\xe3\x1b\x9a\xe7\x32\xcf\xdf\x64\x39\xeb\x33\x7d\xa1\xd9\xb6\xf4\xc8\x4e\x2d\x89\xcc\x48\x12\xae\x1f\xad\x95\xdc\x71\x6f\xee\x9b\x50\xdf\x0b\xfd\x65\xf9\x5b\xf8\x79\x4f\xc2\x10\xbd\x4d\x5b\x93\x6b\xb5\x5c\xec\xfb\x6f\xca\x3f\x77\xd5\x4d\xdd\x8f\xc3\x48\x6f\xea\x57\xa6\x67\x60\x45\x71\xaf\x09\x17\xf7\xaa\xa7\x51\x75\x85\xbd\x2a\xdd\x5d\x1d\x90\x36\xca\x79\x51\xce\x8b\x72\x5e\x94\xf3\x9a\x5a\x39\xaf\xfa\x99\xb7\xb0\x94\xd7\x89\xe3\x1a\x7a\x2b\xe0\x55\xff\xf8\xe5\xc5\xbb\x6c\x6e\x83\x63\x4a\x76\xd5\xb7\x41\x79\xb9\xae\x13\xb7\x01\x45\xba\x28\xd2\x45\x91\x2e\x8a\x74\x51\xa4\xeb\x64\x45\xba\x1a\xcc\xfe\x07\x05\xba\x2a\x15\x2d\xcf\x28\xac\xb1\xd9\xd3\x50\x64\x6c\x64\x45\xc6\xea\x07\x51\x55\x81\xb1\x13\x8f\xa6\x41\xcb\x8a\xd5\xb7\x4c\x45\x49\xb1\x53\xcf\x1a\xb6\x16\x12\xab\x6f\xb4\x02\x87\x7e\x6b\x77\x56\xf2\xe9\xaf\x67\x43\xa2\x02\xb9\xf6\x13\xb1\xa2\x3c\x20\xf2\xd3\x25\x2f\x78\x10\x5f\x5d\x7f\xd1\x3d\x28\x7a\xb5\xb5\x72\xb5\x25\x9f\x58\x44\xb1\xa1\xbc\x35\xdf\x67\x3b\xdb\xbe\xdc\xb5\x9f\x87\x99\x40\x4c\x20\xa6\xb1\x21\x26\xf0\x12\x78\x09\xbc\x04\x5e\x02\x2f\x81\x97\xc0\x4b\xe0\x25\xf0\x12\x78\x09\xbc\x04\x5e\x02\x2f\x81\x97\xc0\x4b\xe0\xa5\xf1\xe1\xa5\x02\xed\x93\x02\x97\xc3\x98\x04\x50\x00\x66\x00\x33\x80\x59\xf1\x68\x02\x98\x95\xbe\x67\x00\xb3\x4e\x80\x99\x4d\x09\x55\xc3\xe6\x52\xfd\xec\x46\xeb\x0f\x41\x78\xeb\x79\x59\x76\x3a\xcc\x0b\xe6\x35\x3a\xe6\x35\x4c\x5a\x15\xc8\x0b\xe4\x05\xf2\x02\x79\x81\xbc\x40\x5e\x20\x2f\x90\x57\x97\xb3\x2d\xc8\x0b\xe4\x05\xf2\x02\x79\x81\xbc\x40\x5e\x20\xaf\xb3\x43\x5e\x00\x22\x00\x11\x80\xa8\x78\x34\x01\x88\x4a\xdf\x33\x00\xd1\xf3\x00\x51\x5d\xed\xa5\xb3\xe7\x46\x07\x22\xc6\x08\xf1\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x3d\xf8\x7e\xa9\xa9\x0c\x2a\x03\x95\x81\xca\x40\x65\xa0\x32\x1b\x50\x99\x5d\x72\x84\xa3\x54\x22\x3c\x80\x6d\x80\x36\x40\xdb\xd8\x40\x1b\x90\x0d\xc8\x06\x64\x03\xb2\x01\xd9\x80\x6c\x40\x36\x20\x1b\x90\x0d\xc8\x06\x64\x03\xb2\x01\xd9\x80\x6c\x40\x36\x20\xdb\xa8\x20\x5b\x81\x12\xe1\xf1\xf4\xcc\x16\x70\x06\x31\x84\x18\x42\x0c\x21\x86\x10\x43\x88\x61\x27\xc4\x30\x58\xa8\x94\x15\xb6\xc2\x7e\xa7\x46\x57\x4d\x90\xe2\x52\xad\x85\xeb\x3f\x04\xe1\x63\x36\xaa\xa5\x30\x20\xa2\x1c\xdf\x2d\xd5\xfa\xd7\x60\xa1\x6e\xef\x3e\xfe\x6b\xff\xc8\xa1\x30\xdd\x68\xe9\x59\xd6\x88\x63\x67\x67\xc1\x42\xe5\x8e\xbe\xc8\xff\x62\xf9\x7b\x93\x32\xf6\x51\xbf\x3f\x3b\xfb\x5b\x33\x21\xd6\xbf\x3c\x09\xf3\xbe\xbd\xfb\xf8\x7b\xd1\x49\xbc\x47\xc7\xbf\x47\x69\x43\xea\x1c\xdd\x09\xbc\x4e\x05\x10\xfa\xc8\xd7\x2a\xdc\xf8\xb1\x05\x91\x54\xcc\xcc\xbf\x64\xc6\x63\xd0\x6d\x78\x8a\xb9\xa6\x70\x02\xcf\x53\x4e\xba\x9a\xfc\x6e\x6e\xe1\xa0\xbc\xe4\xde\x5b\x61\xce\xcd\xbd\x18\x6f\xb3\xab\x94\x5d\xa1\x84\x5d\x8b\x9a\xde\x84\x5f\x4f\x98\x5f\x57\x98\x87\x47\x30\xec\x1a\x83\xb1\xda\x64\xdc\x9b\x61\xfe\x5b\x74\x77\xf7\xc1\xa2\xf4\xe6\x8a\xbe\x3b\xc9\x8c\xf9\x4e\xbf\x72\xbf\xe9\x17\x23\x6a\x38\x5f\x56\xbf\x5a\xb0\x79\xd8\x3c\x6c\x1e\x36\x3f\x35\x36\xdf\x6c\x55\x29\xe4\xf3\xd5\x0e\xac\xe7\xac\x24\x45\x6e\xd1\x84\x4a\xbc\xd2\xaa\x3a\x4e\x3c\xa2\xcc\x38\xd8\x79\xb6\xbc\x1d\x71\xaf\xc4\x2a\x6e\xad\x68\x1d\x2f\xd0\xb7\xbe\x70\x7d\x33\xb3\x04\xa1\xd8\xf8\xd9\xe4\xb4\x10\x8b\xf0\xe9\xf7\x8d\x2f\x16\x6e\x18\x1b\x65\xdf\x54\x36\xe2\xb5\x3f\xd0\x17\xd2\x4f\x5e\xf9\x74\x6c\x24\x0d\x2c\x1e\x36\xa1\x7e\xcb\x56\x61\xe0\xc4\x76\x83\x71\x99\xe6\xb8\xe9\x5c\xfc\xa9\x7f\x51\xf7\x96\x1e\x3b\x6f\xc4\x95\xb8\xf5\xbc\x37\x1a\xe5\x2c\xe2\x59\x7a\xe3\xc7\x1d\xbf\x54\x51\x36\x24\x93\xcb\xa9\x45\x8b\x8e\x32\xcf\x32\x4c\x37\xf5\x16\x50\xd1\xac\x29\xca\x83\x2a\x7a\x6b\x91\x3f\xf2\x4e\x55\xd7\x17\x91\xf1\x75\x8a\x7b\xf5\x60\x2c\xe7\x0c\xbe\x6d\x4d\x89\x64\xf6\xd2\x43\x67\xa3\xcc\xe2\x70\xaf\x84\x1f\xf8\x57\xbe\x5a\x4a\x3d\x40\x13\xb7\xe8\x5c\xfc\x91\x2d\xd8\x06\xc4\x67\xaf\x46\xb2\x5f\x71\x1f\x1f\xd5\xc2\x95\x6b\xe5\x3d\x6d\x4d\xda\xed\x92\xeb\x7a\xaf\x12\xb7\xa7\x6e\x74\xb1\x0c\xa5\xa3\xdf\x1a\x37\x58\x64\x06\xc1\x76\xd1\xd6\xfb\x85\x74\x94\x6e\xa2\xf8\x26\xf3\xdd\x25\xe3\x33\xd3\x07\x4a\x7e\xe4\xc1\xcc\x81\xe9\x25\xe6\xe6\x3e\x1f\x95\xf4\x0b\xef\xb1\x45\x37\xeb\x7b\xbe\xd3\xb7\x5c\xe4\x4a\xae\x71\x26\xdb\x32\xfc\x8f\x89\xa5\x69\xd6\x2e\xe5\xf1\x34\xbd\x0d\x7f\x22\x6b\x88\xac\x21\xb2\x86\xc8\x1a\x22\x6b\x4e\x16\x59\xd3\x70\x2d\x38\x88\xae\xe9\x6f\x59\x7c\x97\x4b\xd6\x5b\x79\x4a\x46\x2a\x9b\x82\xee\xc2\x60\x25\x97\xda\x3a\xba\x0b\x3c\xd7\x79\xda\xf1\x83\xa5\x83\x6e\x9b\xed\x17\x0f\xbb\x9b\xf9\x3f\xe6\xe2\x93\x99\xcf\x8c\xe9\xb2\x52\x7e\xfc\xb2\x6c\xd7\x54\x25\x82\x70\xf5\x45\xfa\xa9\x5f\x2e\xdc\xa8\xeb\x07\xe9\xa5\x7b\xe5\xcf\x97\xe6\xeb\xcf\x97\xe2\xc1\xf5\xa5\xe7\xfe\x27\x5d\x48\xee\x95\x90\x8b\x85\x1e\x9d\xd7\x86\xe2\x2e\xb6\xdb\x30\x73\xf9\x59\xb4\x3d\xc9\xec\x4f\xe7\xe2\xbd\xab\x27\xc7\xdc\xad\x07\xe1\xe1\xb3\xe9\xe9\xc7\xb8\x8a\xcc\xf6\x58\xef\x51\x82\xf5\x97\x36\x1d\x6a\x9e\xe0\x5d\xfa\xec\xbd\xb9\xf8\x0e\x37\x66\xfa\xd1\xe3\x17\xf6\x4b\xf0\x5d\x2c\x65\x78\x2f\x97\x3b\x6e\xf2\x6c\x53\xa3\xc2\x87\x20\x7c\x8c\xfb\xa4\xb0\xbd\x7e\xdb\x7b\xa2\xf2\xe6\xd2\x46\x6f\x6a\xb1\xae\x4c\xdb\xba\xb1\x35\xe9\xb8\x8b\xed\x56\x58\xdb\x0a\xda\x39\x91\xf5\x71\xa4\x79\xb0\xfe\x36\xb5\x06\xe6\xb9\xce\x4c\xd7\x91\x74\xab\x7d\x95\xf9\x98\x77\x7f\x6c\x2e\x6e\x1d\x47\xad\xd6\x7a\x6d\xca\xef\xec\x66\xe6\x19\x66\xe2\x2a\x19\x80\xbb\x03\x34\xfa\x51\xcc\xfe\x29\x9d\xaf\xcb\x30\xd8\xf8\x8b\xf8\x28\xed\xab\xd5\x07\xed\x35\x9c\x31\x21\x13\xfb\x78\xf7\x22\xe9\x13\xdc\x67\x57\xfa\x51\xcc\x3e\x04\xa1\xca\x5d\x56\x38\x32\x72\xe4\x22\x7e\xfa\xa4\x7d\x8c\x3b\x5f\x5f\x2f\x32\x5b\xcf\x83\x0b\x3e\x64\xd7\x68\x33\x20\x57\xfb\xc3\x7d\x40\x4f\x01\x01\x54\xe3\x09\xa0\x6a\x36\xba\xaa\x82\xa8\xfa\xdb\xcc\x0f\x19\x4e\xd5\xac\x9d\x2a\x42\xaa\xfa\x5b\xf0\x6d\x0d\xae\x6a\xd6\x84\x87\x01\x56\xcf\x5d\x4e\x0b\xf1\x32\x31\x10\x47\x12\xbd\x4f\x6b\xb9\xde\x34\x45\x79\x63\x0b\x7d\xc8\x9d\x55\x92\x7f\x6f\xd6\xee\xad\x5d\xd5\x49\x2a\xfe\x36\xaa\xa2\x38\x09\xbf\x24\x3a\xe1\xe8\x4c\xfc\xce\xc5\x42\x8c\x3f\x2d\x4c\x16\xf6\xd4\xf0\x4f\x75\x42\x1a\x86\x65\xc4\x17\xc9\x05\x65\x10\x8a\x41\x28\xc6\x64\x42\x31\x08\x5e\x20\x78\x81\xe0\x05\x82\x17\x08\x5e\x18\x3c\x78\x01\x2a\x0e\x28\x05\x94\x02\x4a\x01\xa5\x80\x52\x40\x29\xa0\xb4\x74\x11\x80\x5d\xc0\x2e\x60\x17\xb0\x0b\xd8\x05\x72\xc5\x55\x90\x64\xae\xfd\xf6\x89\xdb\x7d\x9e\x77\x5b\x4f\x38\x39\xb4\x9e\x90\x74\x56\x05\xb4\x2f\x2a\xd2\x42\x9f\x78\x2c\x6a\x37\x17\x7b\xbd\x76\xb9\x0a\xa2\x8e\x11\x90\xb1\xd4\x85\x6c\x4a\x7b\xcc\xf1\x1d\xf2\x9e\x76\xd9\x8e\x15\x4a\x49\x27\x9a\x14\x3a\xc9\x7e\x24\x03\x27\xdf\xe9\xd6\x66\xe0\xe8\x4d\xf8\x2f\xd2\x97\x4b\x15\x1a\x77\x92\x51\x04\x8b\xa2\xc0\x71\xf5\xfe\x28\x73\xdc\x48\xed\x7f\x0b\x42\x11\x6f\x9f\xd7\x4f\xd9\x86\xf1\x51\x7e\x8d\x5b\x71\xfd\x45\x45\x2a\x35\x82\xf2\x79\x26\x69\x3e\x8a\x36\x02\xb5\x93\x26\x08\xc5\xcd\xeb\x1f\xe2\x63\x43\xe9\x68\x2a\xe3\x05\xfe\xd2\x98\x3c\xda\x91\x12\xef\x78\xa5\xeb\x9b\x89\x49\x3b\x2a\xb6\xc7\x6a\x4f\x75\xc2\x8c\xc4\xfd\x93\xd0\xab\xc5\x9b\xeb\xeb\x65\xe0\x49\x7f\x39\x0f\xc2\xe5\xf5\xea\xeb\xf2\x7a\xe3\xbb\x4e\xb0\x50\xd7\x7f\xfb\x18\xdd\xc5\x57\x69\xed\xf9\x4c\x1a\xa7\xcb\xee\xb1\xca\x46\x1a\xab\xe9\xd2\xd4\x6c\x79\xdd\xc0\x6c\x79\x6b\x9c\x38\x76\xdd\xf6\xeb\xda\xdb\x36\x51\xa5\x76\xdd\xf7\xe4\xac\x44\x6d\x88\x8c\xc0\x4a\xbc\x10\x2d\x44\x50\x0a\xea\xf4\x9c\x50\x0b\xa5\xb1\xe9\x75\xa0\x7f\x32\x8c\xe9\x35\x12\xa1\x09\x4c\xad\x7c\x27\x5b\x6b\x6a\x91\xda\x7b\x46\xa9\xbd\xe4\x30\x91\xc3\x44\x0e\x13\x39\x4c\xec\x12\xcb\xde\x22\x2b\xb3\x00\x86\xd9\x75\x91\xc4\x50\x9d\xc4\x30\x86\xed\x57\xe6\xb8\xee\x3c\x75\x41\x53\xee\x5d\xdb\xab\xe1\x36\x2a\x3e\xf3\x74\xf9\x0a\x39\x73\x44\xfd\x5b\x47\x21\xdd\xc7\x9f\xa4\xb3\x9e\x0b\xf1\x3e\xfe\x3f\xfd\xfb\xa3\x74\xb5\x3f\x2f\x12\x8e\xb7\x89\xd6\x2a\xdc\x2e\x32\x26\x5c\x51\x78\xee\x57\x25\x66\x59\xc9\xd3\x59\x6c\x4b\xa6\xf6\xcf\x5c\xdc\x79\xd2\xf7\x93\x28\x02\x6d\xa1\x48\xcf\x18\x45\x37\x3f\xb4\x99\xb5\xf5\x3d\x0e\x64\x3b\x64\x8d\x96\x99\xde\xf7\x69\xf3\xc5\x4f\x2a\xde\x9b\x16\x8b\xd7\x8b\x55\x94\xb6\x4e\x12\xa8\xb3\x89\x54\xa8\x23\x6c\xb6\x56\xf4\xd3\x89\x1b\x2a\xbe\x99\xe9\xe2\x61\xbb\x17\x35\x7c\x71\x07\xcb\x41\x3c\xb7\x8e\x69\x2d\x68\x01\x6c\xf3\x45\x66\xca\x6f\x63\x4c\x95\x66\xc6\x8b\xa0\x75\x68\x47\x2b\xf1\xf5\x2b\x7d\xee\xdf\xab\x27\xad\x47\x15\x2e\x55\xa3\x23\xa3\x75\x28\xd7\x6a\xe9\x3a\x57\xcd\xcf\x89\x3f\x3f\x25\x47\xea\xe9\xb1\x89\xad\xa1\x63\x01\x75\xaa\x91\x09\x43\x6a\x67\x77\xe8\x1f\x1d\xdc\x7b\x7b\x2a\x70\x5e\x61\xad\xdf\xed\x06\x03\x09\x7c\xba\x13\xf7\xe9\x9e\x0f\x3e\xdf\x8b\xd9\x4f\x5f\x2e\x93\x57\xb2\x32\x61\xb6\x49\xae\xf2\x8b\x92\x69\xe8\xa5\xf6\x68\x99\x64\x52\xe9\xe9\x33\xfd\xc0\xbf\x32\x67\xeb\x23\xb4\x53\x39\x12\x2f\x7e\x8a\x02\xff\xce\xa4\xec\xfe\x12\x4f\x78\xc9\xe7\x4f\xe9\x34\xb8\xfd\xe3\x4b\x9b\xb8\x7e\xf3\x71\xf3\x21\x08\x1d\xed\x75\x5f\x06\xba\xf3\x03\xf1\xf9\xf2\x21\xfe\xdb\xe7\x4b\x71\xbb\xd3\x9a\x73\xf1\x71\x9d\xb8\xc8\xb5\xfd\x9f\xbc\xa8\x57\xd2\xd1\x1d\xa0\x93\x3e\x3d\xd7\x49\x9c\x7e\x7a\xbb\x10\x7c\x4f\xfa\xd6\x24\x45\xae\x54\xb0\xf2\xd4\x5c\x98\xdf\xd4\xb9\xde\xe9\x98\xd2\x71\xd8\x85\x1d\x91\xfd\x7c\x9b\xe6\x8d\x7f\x88\x5d\x83\xf9\x82\x5d\xc3\xe0\xbb\x86\xd5\x5e\x80\xef\x08\xf6\x0d\x9b\xce\x7d\x48\x2b\x4f\x3a\x2d\xcd\xb9\xe4\xe4\xc9\x1a\x74\x44\x42\x62\xca\x9d\x93\x29\x67\x91\xc5\xc4\xc2\x9e\x7d\x43\x24\x64\xc9\x6d\x4f\xcf\x1e\xd9\x8c\xc2\x8b\x79\x21\x1a\x05\x14\xea\x04\xa8\x8a\xda\x6a\x9d\xf3\xb0\x24\x3b\xdc\x5f\xb8\xdf\xdc\xc5\x46\x7a\xf9\xc4\x3b\x99\xe9\x41\xe4\x1f\x7e\x9e\x8b\xa6\x79\x93\xc5\xe1\xcc\xf4\x85\x66\x5b\x71\xa0\x1d\xb5\x97\xcc\x06\x12\xae\x1f\xad\x95\xdc\x71\x4d\xee\x5b\x48\xdf\x2b\x1c\x5e\x3f\xef\x65\x19\x91\x0b\x67\x6b\xa8\x80\x4e\xe5\x7c\xff\x4d\xf9\xe7\x9b\x12\xa7\x7b\xf0\x1c\xf2\xe2\x10\xdb\x9b\xb0\xd8\x5e\x3d\x37\xaa\x13\xda\x6b\x5f\x22\xbb\x19\x13\x43\x5e\x0f\x79\x3d\xe4\xf5\x90\xd7\x9b\x9a\xbc\x5e\xfd\xcc\x5b\x28\xad\x77\xe2\x08\x84\xde\x04\xf5\xea\x1f\xbf\x5c\x4c\xcf\xe6\x36\x38\x46\x42\xaf\xbe\x0d\xca\xe5\xf3\x4e\xdc\x06\x88\xe6\x21\x9a\x87\x68\x1e\xa2\x79\x88\xe6\x9d\x4c\x34\xaf\xc1\xec\x7f\x20\x98\x57\x99\x93\x77\x46\x01\x88\xcd\x9e\x06\xd1\xbf\x91\x89\xfe\xd5\x0f\xa2\x2a\xc1\xbf\x13\x8f\xa6\x41\x65\xfe\xea\x5b\xa6\x42\xe2\xef\xd4\xb3\x86\xad\xc2\x7e\xf5\x8d\x56\xe0\xc4\x6f\xed\xce\x4a\x3e\xfd\xf5\x0c\x18\x54\xa0\x31\x71\x22\x26\x94\x07\x41\x7e\xba\xd8\x15\xd5\x78\xe9\x04\x08\xbd\xda\xda\xb7\xda\x86\x4f\x6c\xa1\xd8\x44\xde\x1a\xee\xb3\x9d\x0d\x5f\xee\xda\x6d\x71\x12\x28\x09\x94\x34\x1e\x94\x04\x46\x02\x23\x81\x91\xc0\x48\x60\x24\x30\x12\x18\x09\x8c\x04\x46\x02\x23\x81\x91\xc0\x48\x60\x24\x30\x12\x18\x09\x8c\x34\x26\x8c\x84\x32\xc7\x31\xfd\x03\x18\x03\x8c\x01\xc6\x00\x63\x67\x08\xc6\x8c\xfa\xe8\x75\x2b\xe0\x35\x48\x8e\xe3\x5e\x07\x2f\xb5\x62\xec\x43\x10\x3e\x66\x03\x5a\x0a\xe3\x8e\x2f\x67\x56\x4b\xb5\x36\x12\xa8\xb7\x77\x1f\xff\xb5\x7f\x2c\x19\x9d\x47\xf2\xa3\xac\x11\x47\x4e\x8f\xcc\xab\x90\x3b\xfe\x22\xff\x9b\x85\xaf\x4d\x8a\x92\x47\xfd\xfa\xec\xec\xf2\xcc\x54\xd8\xe4\xdd\x49\x78\xef\xed\xdd\xc7\xdf\x8b\x4e\xe3\x35\x3a\xfe\x35\x4a\x1b\x72\x0a\x95\xee\xcc\x1b\x52\x40\x63\x9b\xbf\x55\x7e\x2a\xb1\x9a\x84\x65\xe8\xcf\xff\xbb\x5e\x05\x8b\x85\x1b\x85\x1b\xfd\x78\xf7\x9b\xc5\x52\xad\xa3\x9e\x8a\x82\xe4\x54\xd3\x83\x07\x71\x17\x2c\xde\x65\x37\xf2\x4f\x7d\x23\x15\x2f\x8e\xb9\xc4\xce\xbb\xf3\x36\xbb\x5c\xa6\x26\xbb\xa8\xb9\x68\x4b\xfd\x5b\xd8\xef\x84\xd9\x6f\x33\x59\x8c\x3a\xfe\x7b\x42\x5d\xe1\x49\x57\xb4\x81\x6b\xc3\xb5\xe1\xda\x70\xed\xa9\x71\xed\x66\xab\x4a\x21\xdb\xee\x4d\x07\x0b\xb9\xb2\xc6\x1d\x35\xa4\x5c\x59\x6f\xc1\x08\x47\x08\x84\x15\xc2\x78\xea\xab\x51\x5f\xcd\xb2\xe1\x7f\x4c\x1c\x4a\xb3\x76\x29\x8f\x45\xe9\x6d\xf8\x13\x95\x42\x54\x0a\x51\x29\x44\xa5\x10\x95\x72\xb2\xa8\x94\x86\x6b\xc1\x41\x64\x0a\x65\x47\x29\x3b\x4a\xd9\x51\xca\x8e\x8e\xa2\xec\xe8\x91\x9e\x02\x02\xae\xc6\x13\x70\xd5\x6c\x74\x55\x05\x5d\xf5\xb7\x99\x1f\x32\xfc\xaa\x59\x3b\x55\x84\x60\xf5\xb7\xe0\xdb\x1a\x8c\xd5\xac\x09\x0f\x03\xb2\xa8\x14\x63\x43\xdc\xc4\x34\xaa\x0e\x97\x86\x4b\xe4\xce\xab\xac\x3b\xbc\xb5\xac\xba\xc8\x63\x5f\x1d\x2e\xd5\x59\x0a\x7b\x75\x84\xc2\xf0\x35\x88\x8d\x4f\x2d\x4c\x16\xf7\xd4\xf8\x4f\xa5\x35\x8e\x0b\xda\x88\xaf\xb5\x13\xb2\x41\xa0\x06\x81\x1a\xd3\x0d\xd4\x20\xb4\x81\xd0\x06\x42\x1b\x08\x6d\x20\xb4\x61\xf0\xd0\x06\x98\x39\x18\x15\x8c\x0a\x46\x05\xa3\x82\x51\xc1\xa8\x60\xd4\xd2\x45\x00\xb2\x01\xd9\x80\x6c\x40\x36\x20\x1b\x28\x00\x57\x21\x94\x79\x12\xa4\x90\x96\xb7\x2d\xf0\x5f\x4f\x3a\xef\xb4\x1e\xa4\x74\x55\x4b\xb2\x47\x78\xd2\x42\x06\x38\xb1\x99\x4c\xc1\x70\x7f\x21\xe2\x2e\x12\x91\x13\xac\xd4\x2b\x11\x6d\x1c\xbd\x70\xe9\xf9\x5e\xc9\x47\x33\x59\xad\xc2\x40\xdb\x68\x45\x0a\x16\xd5\xe2\x41\x9a\x94\xec\x7e\x8d\x82\x50\xdd\xd3\x24\x9f\xfe\xda\x76\x72\x10\x75\x8c\xc8\xcc\x7e\x45\xc8\x23\x69\x98\x39\xed\xb4\x3c\xac\x5d\xae\x68\xc5\xa8\x3a\xf5\xa4\xd9\x49\x12\x29\x89\x4c\xf9\xde\xb7\x36\x91\x49\x7b\x2b\x7e\x91\xbe\x5c\xaa\xd0\xf8\xdd\xcc\x34\x1a\x45\x81\xe3\xea\x8d\x64\xe6\xe1\x92\xda\x51\x19\x84\x42\xf9\xeb\xd8\xd0\x4d\x77\xd6\x8f\xf2\x6b\xdc\x8a\xeb\x2f\x2a\x52\xa9\xb5\x98\x4f\xd7\x49\xd3\x7a\xb4\xb5\xac\xbd\x59\x41\x28\x6e\x5e\xff\x10\x1f\x1b\x4a\x47\xe3\x2b\x2f\xf0\x97\xc6\x36\xd4\x1e\x27\x27\xf0\xd7\xd2\xf5\xcd\xdc\xa5\x3d\x3a\xdb\x63\xb5\x4b\x3f\x81\x6b\xe2\xfe\x49\xe8\xd5\xf4\xcd\xf5\xf5\x32\xf0\xa4\xbf\x9c\x07\xe1\xf2\x7a\xf5\x75\x79\xbd\xf1\x5d\x27\x58\xa8\xeb\xbf\x7d\x8c\xee\xe2\xab\xb4\x76\x11\x27\x8d\xd3\x65\xf7\x58\x65\x4c\x8e\xde\xc6\x6b\x6a\xdf\xbd\x6e\x60\xdf\xbd\x35\x6e\x2f\x4b\xef\xff\x75\xed\xfd\x9b\x70\x5d\x4b\x1f\x60\x82\x06\xb6\x36\x64\x46\x61\x60\x5f\x88\x0e\xc5\x69\x0a\x8a\x0a\x9d\x50\xa3\xe6\x58\xa3\xae\x40\x97\xc6\x12\xa3\x6e\x24\x02\x20\xd8\x6e\xf9\x4e\xb6\xd6\x76\x23\xe5\xfa\x8c\x52\xae\xc9\x2d\x23\xb7\x8c\xdc\x32\x72\xcb\xd8\x76\x96\xbd\x45\x56\x66\x67\x0c\xb3\x69\x23\xb9\xa4\x2e\xb9\x64\x1c\x9b\xb6\xcc\x61\xde\x79\x4a\x89\x8e\x31\xd8\xb5\xbf\x8e\xdb\x64\xc5\x17\xe8\x35\x8f\x24\x67\xac\xa8\x7f\xeb\xe8\xb0\xfb\xf8\x93\x74\xd6\x73\x21\xde\xc7\xff\xa7\x7f\x7f\x94\xae\x76\x1f\x46\xc2\xf1\x36\xd1\x5a\x85\xdb\x25\xc8\x84\x91\x0a\xcf\xfd\xaa\xc4\x2c\xbb\xe3\x59\x6c\x69\xa6\xd6\xd1\x5c\xdc\x79\xd2\xf7\x93\xe8\x0e\x6d\xbf\x48\xcf\x98\x4c\x37\x3f\xb4\x99\xd3\xf5\x3d\x0e\x64\x59\x64\x8d\x96\x19\xe6\xf7\x69\xf3\xc5\x4f\x2a\xde\x9b\x16\x8b\x57\x93\x55\x94\xb6\x4e\x12\x40\xb5\x89\x54\xa8\x23\x9f\xb6\x36\xf6\xd3\x89\x1b\x2a\xbe\x99\xe9\x62\x7b\xbb\x97\x3c\x1c\x7d\xa2\x62\xd5\xd8\x9b\xc3\x46\xb0\x64\xb4\x00\xe9\xf9\x1a\x3b\xb5\x77\x33\xa6\x52\x3b\x44\x08\x8c\x2e\x42\x40\xc7\x1f\xb5\xaa\x3a\x70\xa5\xcf\xfd\x7b\xf5\x0c\xfe\xa8\xc2\xa5\x6a\x74\x64\xb4\x0e\xe5\x5a\x2d\x5d\xe7\xaa\xf9\x39\xf1\xe7\xa7\xe4\x48\xbd\x56\x34\x31\xc9\x74\xc0\xaa\xce\x87\x33\xb1\x72\xcf\x32\xcf\xf4\x6f\xdb\xe8\x02\x3f\x55\x5c\x43\xc5\x96\xe7\x6e\x37\x96\x4d\xe0\x18\x9f\xb8\x63\xfc\x7c\x82\x1a\xf6\x52\x4e\xd2\x97\xcb\xa4\x45\xad\x4c\x94\x78\x92\x6a\xff\xa2\x64\x82\x7a\xa9\xdd\x82\x26\x17\x5a\x7a\xfa\x4c\x3f\xf0\xaf\xcc\xd9\xfa\x08\xed\x99\x8f\xc4\x8b\x9f\xa2\xc0\xbf\x33\x19\xe7\xbf\xc4\x53\x61\xf2\xf9\x53\x3a\x41\x6e\xff\xf8\xd2\xa6\x68\x8b\xe6\xe3\xe6\x43\x10\x3a\x1a\x5d\x2c\x03\xdd\xf9\x81\xf8\x7c\xf9\x10\xff\xed\xf3\xa5\xb8\xdd\x69\xcd\xb9\xf8\xb8\x4e\x38\x83\xde\x26\x25\x2f\xea\x95\x74\x74\x07\xe8\x9c\x65\xcf\x75\x12\xcf\xa9\xde\x55\x05\xdf\x93\xbe\x35\x39\xbd\x2b\x15\xac\x3c\x35\x17\xe6\x37\xb5\x54\x41\x3a\xa6\x74\x1a\x41\x61\x47\x64\x3f\xdf\xa6\x79\xe3\x1f\x62\x73\x65\xbe\x60\x73\x65\xd3\xe6\x6a\xb5\x17\xaa\x3e\x8a\xed\xd5\xa6\x73\x8f\xdc\xca\x93\xce\xf3\xac\xbe\xe4\x1a\xe7\x64\xf7\x11\xcf\x8a\xe9\x77\x96\xa6\x9f\x45\x16\x16\x86\x40\xf6\x0d\xf1\xac\x67\x6d\xc8\x6c\x46\xe2\x25\xbe\x10\xdd\x47\x83\x5e\x47\x06\x2d\xb7\xa9\x1c\x7a\x14\xb6\x34\xbf\x93\x2e\x73\xfd\x00\xcc\x04\x9b\x33\xbf\x31\x3f\x40\x91\xa0\x48\x50\x24\x28\xd2\x48\x28\x52\x37\xab\xe5\x91\x3c\xa9\x60\xb9\x1c\xa5\x77\x01\xaa\x84\x6b\xe1\xfc\x5c\x0b\x50\xa5\x2e\xc7\x0d\x54\x09\x67\x12\x9b\xad\xf4\xcf\x50\xa5\x41\xa8\x52\x57\x3e\x93\x23\xf9\xd2\x54\xec\x40\x28\x13\xa6\xe0\x59\x9a\x82\x16\x59\x5c\x18\x06\xd9\x37\x50\xa6\xb3\x36\x6c\xa6\x43\x99\x8a\x70\xd2\x49\x01\xd2\x49\x4b\x29\x15\x9c\xfe\x21\x08\x6f\x3d\x2f\xb3\x91\xac\x20\x48\xa5\x27\x20\x1f\x8a\x7c\xe8\xf9\xc9\x87\x52\xa0\x6c\xc2\x05\xca\xea\x01\x54\x5d\x71\xb2\x4a\x6f\x56\x07\x70\x8d\x92\x64\x94\x24\xa3\x24\x19\x25\xc9\xa6\x56\x92\xac\x7e\xe6\x2d\x2c\x47\x76\xe2\x50\x86\xde\x8a\x90\xd5\x3f\x7e\x79\x01\x32\x9b\xdb\xe0\x98\xb2\x63\xf5\x6d\x50\x5e\x72\xec\xc4\x6d\x40\xa1\x31\x0a\x8d\x51\x68\x8c\x42\x63\x14\x1a\x3b\x59\xa1\xb1\x06\xb3\xff\x41\x91\xb1\x4a\x35\xcd\x33\x8a\x64\x6c\xf6\x34\x14\x4a\x1b\x59\xa1\xb4\xfa\x41\x54\x55\x24\xed\xc4\xa3\x69\xd0\xd2\x68\xf5\x2d\x53\x51\x16\xed\xd4\xb3\x86\xad\xc5\xd0\xea\x1b\xad\xc0\x8b\xdf\xda\x9d\x95\x7c\xfa\xab\x11\xd5\x89\x94\xb3\x09\xdd\xf5\x93\xfe\xc6\xdd\x71\xf6\x9f\x52\x2a\x3e\xa7\x98\x1b\x3c\x88\x3b\x2d\xda\xac\xef\xe3\x40\x4d\xb5\x81\x68\xfc\xdb\xec\x62\x95\x17\x6a\xa9\x67\x88\xdb\x79\xc2\x6e\xe7\x66\x91\x12\x75\xae\xe7\x13\xea\x44\x4e\xba\x7e\x01\x2e\x75\x5c\xea\xb8\xd4\x71\xa9\x4f\xcd\xa5\xde\x6c\x55\x29\x74\xab\xf7\x16\x1a\x49\x04\x6b\xe3\x8e\x1a\x32\x82\xb5\x37\x0e\x72\x44\xcc\x68\x21\x07\xa0\x9a\x0e\xd5\x74\x2c\x1b\xfe\xc7\x20\xb0\x66\xed\x52\x8e\xc1\x7a\x1b\xfe\x00\x31\x80\x18\x40\x0c\x20\x06\x10\x3b\x19\x10\x6b\xb8\x16\x1c\x40\x31\x8a\xcc\x51\x64\x8e\x22\x73\x14\x99\x1b\x45\x91\xb9\x23\x3d\x05\xd0\xeb\xf1\xd0\xeb\x66\xa3\xab\x8a\x60\xf7\xb7\x99\x1f\x92\x65\x37\x6b\xa7\x0a\x9e\xdd\xdf\x82\x6f\x2b\xd9\x6e\xd6\x84\x87\x74\x1b\xf1\x91\xca\xee\xb6\xb2\x44\xe6\x04\x13\xe7\xcc\xea\xbd\xb5\xac\x7a\x48\xa2\x2b\x8d\x4f\x18\xbe\xd6\x64\x6d\xce\x6d\xe3\x20\x8d\xa2\x8c\x5b\x02\x33\x08\xcc\x98\x50\x60\x06\xa1\x0c\x84\x32\x10\xca\x40\x28\x03\xa1\x0c\x83\x87\x32\xc0\xc8\xc1\xa6\x60\x53\xb0\x29\xd8\x14\x6c\x0a\x36\x05\x9b\x96\x2e\x02\x90\x0c\x48\x06\x24\x03\x92\x01\xc9\x40\x71\xb0\x0a\x99\x14\x28\x0e\xee\x7a\xaf\xd1\x1b\xec\x43\x6f\xb0\x3b\x54\xd2\x42\x6d\x70\x2c\x0a\x04\x17\x7b\xbd\x76\xb9\x0a\xa2\x8e\xb9\x90\x31\xd9\x85\x3c\x0a\x01\x99\x93\xba\x87\x40\xd6\xeb\xcd\xef\x3d\x62\xb3\x59\x82\x5c\x9d\x09\xe4\xea\xa0\x36\x8f\xda\x7c\xc1\xcd\x8c\xc7\xac\x19\x9b\xd6\x7c\xdb\xbb\x7f\x5d\x7b\xf7\x26\x1a\xd5\xca\xdb\x9f\xa0\x3d\xa9\x4d\x96\x11\xd8\x93\x17\xa2\x85\xa2\x4a\x52\x75\xb9\x27\x61\x95\xe3\x8c\xb4\x02\x31\x95\x01\x8d\xb4\x91\xa8\x56\x60\x8d\xe5\x3b\xd9\x5a\x6b\x8c\x3c\xe1\x33\xca\x13\x26\x21\x8a\x84\x28\x12\xa2\x48\x88\x62\x23\x59\xf6\x16\x59\xba\x91\x64\x2b\x66\xd7\x56\x2c\xd9\x9a\x8c\x60\x33\x96\x39\xbc\x3b\xcf\x83\xd0\x98\x7c\xbd\x5f\x7e\xb5\xf1\xa6\x2a\x3e\xfd\xe4\xc9\x0f\x39\xe3\x44\xfd\x5b\x87\x34\xdd\xc7\x9f\xa4\xb3\x9e\x0b\xf1\x3e\xfe\x3f\xfd\xfb\xa3\x74\xb5\x03\x30\x12\x8e\xb7\x89\xd6\x2a\xdc\x2e\x39\x49\x6d\x6a\xcf\xfd\xaa\xc4\x2c\xab\x7d\x36\x8b\x2d\xcb\xd4\x1a\x9a\x8b\x3b\x4f\xfa\x7e\x12\x92\xa0\xed\x15\xe9\x19\x13\xe9\xe6\x87\x36\x73\xb8\xbe\xc7\x81\x2c\x89\xac\xd1\x32\x43\xfc\x3e\x6d\xbe\xf8\x49\xc5\x7b\xd3\x62\xf1\xea\xb1\x8a\xd2\xd6\x49\xa2\x7e\x74\xa1\x6f\x47\xfa\x39\x9b\xfa\xe9\xc4\x0d\x15\xdf\xcc\x74\x59\xf3\x99\x2c\x71\x13\x5c\x23\xf6\xaa\x2d\x5a\xbf\x40\xb4\xa0\xbf\x1a\xdc\x24\xde\x93\x9a\x7b\x71\xd3\x22\xe6\x5f\x8a\x61\xaf\xfe\x7f\xe7\x9b\x0a\x18\x79\x62\xe9\xf0\xf1\x42\x6d\x1d\x35\xd2\x68\x95\xdf\x9f\xb7\xae\xf4\xb9\x7f\xaf\x9e\xc2\x1e\x55\xb8\x54\x8d\x8e\x8c\xd6\xa1\x5c\xab\xa5\xeb\x5c\x35\x3f\x27\xfe\xfc\x94\x1c\xa9\x27\xcb\x26\x56\x88\x0e\x33\xd4\x59\x4c\x26\xc2\xe9\x19\x16\x89\xfe\x65\x5b\xbc\xbc\xa7\x42\xf1\x15\x3e\xe0\xbb\xdd\x98\x23\x81\xef\x77\xe2\xbe\xdf\xf3\x21\xf1\x7b\xa9\x01\xe9\xcb\x65\xd2\x57\x56\x26\x9a\x37\x49\x89\x7e\x51\x32\x25\xbd\xd4\x9e\x2f\x93\xb3\x2a\x3d\x7d\xa6\x1f\xf8\x57\xe6\x6c\x7d\x84\x76\x3e\x47\xe2\xc5\x4f\x51\xe0\xdf\x99\xcc\xe0\x5f\xe2\xc9\x2f\xf9\xfc\x29\x9d\x12\xb7\x7f\x7c\x69\x53\x88\x40\xf3\x71\xf3\x21\x08\x1d\xed\x9d\x5f\x06\xba\xf3\x03\xf1\xf9\xf2\x21\xfe\xdb\xe7\x4b\x71\xbb\xd3\x9a\x73\xf1\x71\x9d\xb8\xd2\xf5\xce\x20\x79\x51\xaf\xa4\xa3\x3b\x40\xe7\x96\x7a\xae\x93\x38\x07\xf5\x46\x22\xf8\x9e\xf4\xad\xc9\xbd\x5c\xa9\x60\xe5\xa9\xb9\x30\xbf\xa9\x53\xca\xd3\x31\xa5\xc3\xbd\x0b\x3b\x22\xfb\xf9\x36\xcd\x1b\xff\x10\xfb\x09\xf3\x05\xfb\x89\xdd\x87\x1a\x14\xff\xef\x05\x14\x8f\x60\x47\xb1\xe9\xdc\xe5\xb4\xf2\xa4\xf3\x1c\x1b\x2f\xb9\xc2\xd4\xad\x3c\x02\x2e\x31\xf3\xce\xd0\xcc\xb3\xc8\x9a\x62\xd1\xcf\xbe\x21\xe0\xb2\xd1\xdd\x4f\xd1\x64\xd9\x8c\xc2\x05\x7a\x21\xea\x02\x16\x75\x3a\xd6\xb5\x9f\xb2\x9f\x24\x5a\x51\x7f\xfe\xdf\xf5\x2a\x58\x2c\xdc\x28\xdc\xe8\x5e\xba\xdf\x2c\x96\x6a\xbd\x53\x20\xae\x73\xf2\x96\x24\xb2\xfb\x0b\xf7\x9b\xbb\xd8\x48\x2f\x9f\x23\x28\x33\xe9\x8a\xbb\x60\xf1\x2e\xbb\xad\x7f\xea\xdb\x9a\xe7\x02\x78\xde\x64\xa1\x3f\x33\x7d\xbd\xd9\x56\xce\x68\x47\x9f\x26\x33\xa0\x84\xeb\x47\x6b\x25\x77\x3c\x9e\xfb\xe6\xd5\xf7\x03\x17\x5a\xc6\xcb\x16\x05\xf7\xf3\xf3\x5e\x86\x14\x09\x7d\xb6\x6a\x20\xea\x7c\xd4\xf7\xdf\x94\x7f\xce\x09\x7d\xba\x0f\x7b\xca\xea\xdb\x7f\x55\x7a\x26\x3b\xa8\x06\x4e\x58\x35\xb0\x9e\x52\xd5\x29\x06\xb6\x2f\xbb\xda\x8c\xc0\xa1\x13\x88\x4e\x20\x3a\x81\xe8\x04\x4e\x4d\x27\xb0\x7e\xe6\x2d\xd4\x08\x3c\x71\xbc\x43\x6f\xca\x80\xf5\x8f\x5f\xae\x0a\x68\x73\x1b\x1c\xa3\x05\x58\xdf\x06\xe5\x3a\x80\x27\x6e\x03\xd4\xff\x50\xff\x43\xfd\x0f\xf5\x3f\xd4\xff\x4e\xa6\xfe\xd7\x60\xf6\x3f\x50\xfe\xab\xcc\x0e\xec\x60\xda\x4f\x9e\xda\x40\xa1\xd8\x9c\xdd\xac\xbf\x88\xc8\x09\x56\xea\x95\x88\x36\x8e\x16\x9e\xd3\xfb\x15\x25\x1f\x4d\x6a\xd6\x2a\x0c\x74\x2b\x1f\x1f\xe2\xa9\x5d\x81\xc4\x79\x9e\xe2\x69\x90\x6d\x1c\x99\x6c\x63\xfd\x20\xaa\x92\x6c\x3c\xf1\x68\x1a\x54\xa8\xb1\xbe\x65\x2a\x44\x1a\x4f\x3d\x5d\xda\x2a\xcd\x58\xdf\x68\x05\x04\xa3\xb5\x1f\x2f\xf9\xf4\xd7\x09\xd8\x59\x81\x14\xc8\x89\x10\x5a\x9e\x9b\xf9\xe9\xea\x9f\xab\xe4\x73\x12\x7e\xf6\x6a\x6b\xf7\xeb\xbd\x4d\x62\x23\xc6\x5b\x87\xed\x86\x66\xb6\xb3\x11\xce\x5d\xbb\x43\xfa\x06\x79\x83\xbc\x8d\x89\xbc\x41\xdd\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x06\x75\x83\xba\x41\xdd\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x06\x75\x83\xba\x8d\x8b\xba\xed\x69\xa7\x54\x7b\x1e\xc6\xa4\x9e\x02\x4e\x04\x27\x82\x13\xc1\x89\xe0\x44\x70\xe2\xc9\x70\x22\x39\x77\x15\xd4\xaf\x24\xd3\xee\x43\x10\xde\x7a\x5e\x86\x04\x23\xf8\x1f\xfc\x6f\x4c\xfc\x8f\xcc\x3b\x18\x20\x0c\x10\x06\x08\x03\x84\x01\xc2\x00\x61\x80\x30\x40\x18\x20\x0c\x10\x06\x08\x03\x84\x01\xc2\x00\x61\x80\xe3\x63\x80\x10\x23\x88\x11\xc4\xa8\x78\x34\x41\x8c\x4a\xdf\x33\x88\x51\x3b\x62\xb4\x5f\x73\xda\x0e\x60\xb4\x2b\x5f\x39\x0c\x2e\xda\xbd\x07\x64\x19\x81\x43\xc0\xa1\xed\x97\xb6\x94\xdb\x02\x0d\x81\x86\x40\x43\xa0\x21\xd0\x10\x68\x08\x34\x04\x1a\x02\x0d\x81\x86\x40\x43\xa0\x21\xd0\x10\x68\x08\x34\x04\x1a\x6a\xfa\x34\xa0\x21\xd0\x10\x68\x08\x34\x04\x1a\x2a\x45\x43\xf6\x68\x10\x9e\x00\x0f\xf5\xa9\x40\x58\x5d\x5c\x15\xb0\x04\x58\xb2\x1c\x2c\x01\x95\x80\x4a\x40\x25\xa0\x12\x50\x09\xa8\x04\x54\x02\x2a\x01\x95\x80\x4a\x40\x25\xa0\x12\x50\x09\xa8\x04\x54\x02\x2a\x8d\x09\x2a\xed\x69\x0e\x56\xf9\x1d\xc6\xa4\x38\x08\x2b\x83\x95\xc1\xca\x8a\x47\x13\xac\xac\xf4\x3d\x83\x95\x55\xb3\xb2\xf0\x5e\x3a\xf3\xd4\x61\xaf\x1f\x41\x83\x03\x37\xb8\x6e\x85\xc5\x4e\x0d\x75\x9a\x20\xb7\xa5\x5a\x0b\xd7\x7f\x08\xc2\xc7\x6c\x8c\x4b\x61\xdc\xf4\xe5\x50\x6b\xa9\xd6\xbf\xdf\x4b\xe7\x36\xdf\x12\xb7\x77\x1f\xff\xb5\x7f\xda\x50\x34\x6b\xb4\x90\x29\x6b\xc4\x91\x23\xa6\x70\x7f\x74\xe4\x4e\xbd\xc8\xff\x7c\xd3\xf7\xeb\xdb\xcd\xb8\x5f\xb1\x9d\x1d\xa2\x99\x41\x8f\x7c\xbf\xfe\xbc\xb9\xbd\xfb\xf8\x7b\xd1\xc9\xbc\x65\xc7\xbf\x65\x69\x43\xea\xc4\xce\xa9\xbd\x6c\xff\xf7\xed\xa6\x83\xf7\xcd\xf1\x36\xd1\x5a\x85\x61\xe0\xa9\x7b\xd7\x5f\xb8\xfe\x72\x27\x3d\xd8\xec\xc8\xbb\x8d\xff\x30\xd7\x14\x4e\xe0\x79\xca\x49\x97\xa3\xb7\xe6\x3e\x7e\x0f\x3c\xf5\x4f\x73\x1f\x15\x6f\x8e\xb9\x42\xc1\xcb\xf3\x36\xbb\x66\xf5\xf5\x4a\x78\xb1\xa8\xe9\x77\x98\xf1\x84\x99\x71\x85\x05\x7a\x04\x37\xae\xb1\x49\xab\xad\xd2\xbd\xb9\xe8\xbf\x45\x77\x77\x1f\x2c\x4a\x6f\xae\xe8\xbb\x93\xcc\xad\xef\xf4\x0b\xf8\x9b\x7e\x31\xa2\x86\x33\x6b\xf5\xab\x05\x0f\x87\x87\xc3\xc3\xe1\xe1\x53\xe3\xe1\xcd\x56\x95\x42\x26\x5e\xed\x23\x7b\xce\x4a\x52\xe4\x79\x4d\x48\xc0\x2b\x2d\xdd\xe2\xc4\x23\xca\x8c\x83\x9d\x67\xcb\xdb\x11\xf7\x4a\xac\xe2\xd6\x8a\xd6\xf1\x02\x7d\xeb\x0b\xd7\x37\x33\x4b\x10\x8a\x8d\x9f\x4d\x4e\x0b\xb1\x08\x9f\x7e\xdf\xf8\x62\xe1\x86\xb1\x69\xf6\x4d\x65\x23\x5e\xbb\x1c\x7d\x21\xfd\xe4\x95\x4f\xc7\x46\xd2\xc0\xe2\x61\x13\xea\xb7\x6c\x15\x06\x4e\x6c\x37\x18\xaf\x6c\x8e\x55\xce\xc5\x9f\xfa\x17\x75\x6f\xe9\xb1\xf3\x46\x5c\x89\x5b\xcf\x7b\xa3\xf1\xc9\x22\x9e\xa5\x37\x7e\xdc\xf1\x4b\x15\x65\x43\x32\xb9\x9c\x5a\xb4\xe8\x28\xf3\x2c\xc3\x74\x53\x6f\x41\x0c\xcd\x9a\xa2\x3c\x90\xa1\xb7\x16\xf9\x23\xef\xb7\x75\x7d\x11\x19\x77\xaa\xb8\x57\x0f\xc6\x72\xce\x80\xd7\xd6\x94\x48\x66\x2f\x3d\x74\x36\xca\x2c\x0e\xf7\x4a\xf8\x81\x7f\xe5\xab\xa5\xd4\x03\x34\xf1\xbc\xce\xc5\x1f\xd9\x82\x6d\xe0\x77\xf6\x6a\x24\x7b\x18\xf7\xf1\x51\x2d\x5c\xb9\x56\xde\xd3\xd6\xa4\xdd\x2e\xb9\xae\xf7\x2a\xf1\xac\xea\x46\x17\xcb\x50\x3a\xfa\xad\x71\x83\x45\x66\x10\x6c\x17\x6d\xbd\x5f\x48\x47\xe9\x26\x8a\x6f\x32\xdf\x5d\x32\x3e\x33\x7d\xa0\xe4\x47\x1e\xcc\x1c\x98\x5e\x62\x6e\xee\xf3\x51\x49\xbf\xf0\x1e\x5b\x74\xb3\xbe\xe7\x3b\x7d\xcb\x45\xde\xea\x1a\x7f\xb5\x2d\xc3\xff\x98\xf8\x95\x66\xed\x52\x1e\xc3\xd2\xdb\xf0\x27\x9a\x85\x68\x16\xa2\x59\x88\x66\x21\x9a\xe5\x64\xd1\x2c\x0d\xd7\x82\x83\x88\x96\xfe\x96\xc5\x77\xb9\xbc\xb8\x95\xa7\x64\xa4\xb2\x29\xe8\x2e\x0c\x56\x72\xa9\xad\x23\x13\xea\xb2\xe3\x07\x4b\x07\xdd\x36\xb1\x2e\x1e\x76\x37\xf3\x7f\xcc\xc5\x27\x33\x9f\x19\xd3\x65\xa5\xfc\xf8\x65\xd9\xae\xa9\x4a\x04\xe1\xea\x8b\xf4\x53\xbf\x5c\xb8\x51\xd7\x0f\xd2\x4b\xf7\xca\x9f\x2f\xcd\xd7\x9f\x2f\xc5\x83\xeb\x4b\xcf\xfd\x4f\xba\x90\xdc\x2b\x21\x17\x0b\x3d\x3a\xaf\x0d\x28\x5e\x6c\xb7\x61\xe6\xf2\xb3\x68\x7b\x92\xd9\x9f\xce\xc5\x7b\x57\x4f\x8e\xb9\x5b\x0f\xc2\xc3\x67\xd3\xd3\x8f\x71\x15\x99\xed\xb1\xde\xa3\x04\xeb\x2f\x6d\x3a\xd4\x3c\xc1\xbb\xf4\xd9\x7b\x73\xf1\x1d\x6e\xcc\xf4\xa3\xc7\x2f\xec\x97\xe0\xbb\x58\xca\xf0\x5e\x2e\x77\x5c\xe7\xd9\xa6\x46\x85\x0f\x41\xf8\x18\xf7\x49\x61\x7b\xfd\xb6\xf7\x44\xe5\xcd\xa5\x8d\xde\xd4\x62\x35\x19\x5c\xf1\xfb\xb1\x50\x8e\xbb\xd8\x6e\x85\xb5\xad\xa0\x9d\x13\x59\x1f\x47\x1a\x32\xeb\x6f\x53\x6b\x60\x9e\xeb\xcc\x74\x1d\x49\xb7\xda\x57\x99\x8f\x79\xf7\xc7\xe6\xe2\xd6\x71\xd4\x6a\xad\xd7\xa6\xfc\xce\x6e\x66\x9e\x61\x26\xae\x92\x01\xb8\x3b\x40\xa3\x1f\xc5\xec\x9f\xd2\xf9\xba\x0c\x83\x8d\xbf\x88\x8f\xd2\xbe\x5a\x7d\xd0\x5e\xc3\x19\x13\x32\xb1\x8f\x77\x2f\x92\x3e\xc1\x7d\x76\xa5\x1f\xc5\xec\x43\x10\xaa\xdc\x65\x85\x23\x23\x47\x2e\xe2\xa7\x4f\xda\xc7\xb8\xf3\xf5\xf5\x22\xb3\xf5\x3c\xb8\xe0\x43\x76\x8d\x36\x03\x72\xb5\x3f\xdc\x07\xf4\x14\x10\xa3\x35\x9e\x18\xad\x66\xa3\xab\x2a\x4e\xab\xbf\xcd\xfc\x90\x11\x5b\xcd\xda\xa9\x22\x6a\xab\xbf\x05\xdf\xd6\xf8\xad\x66\x4d\x78\x18\xc3\xf5\xdc\xe5\xb4\x10\x39\x13\x2d\x71\x24\xd1\xfb\xb4\x96\xeb\x4d\x53\x94\x37\xd6\x20\x89\xdc\xd9\x25\xa9\xef\x66\x0d\xdf\xda\x57\x5d\x64\xc1\x97\xc6\x5f\x14\x27\xc6\x57\x46\x2e\xec\x67\xc6\x57\x25\xc5\x77\x2e\xdc\x61\xdc\x6c\x61\xb2\xde\xa7\xfb\x81\x54\xb3\xe3\xa8\x08\x8e\xf8\x52\x45\xf1\x1b\x44\x6d\x10\xb5\x31\xad\xa8\x0d\xe2\x1c\x88\x73\x20\xce\x81\x38\x07\xe2\x1c\x06\x8f\x73\x00\xa0\xc3\x54\x61\xaa\x30\x55\x98\x2a\x4c\x15\xa6\x0a\x53\x2d\x5d\x04\xc0\x1c\x60\x0e\x30\x07\x98\x03\xcc\x81\x90\x70\x15\x4f\x99\x6b\xd7\xfe\xb7\x9b\xf9\xa1\xdf\xfa\x0c\x52\x4e\xeb\x69\x4a\x57\xc5\x29\x87\x22\x28\x2d\x64\x85\xc7\xa2\xc9\x73\xb1\xd7\x89\x97\xab\x20\xea\x18\x17\x19\x0b\x5e\xc8\xe3\xc8\x90\x39\xeb\x64\x6c\xa8\x5d\x12\x65\x85\xc6\xd3\xa9\x26\x90\x4e\xb2\x2a\xc9\xec\xc9\xf7\xba\xb5\x99\x3d\x7a\xc7\xfe\x8b\xf4\xe5\x52\x85\xc6\xf7\xa4\x15\xcb\x64\x14\x05\x8e\xab\x37\x53\x99\x97\x47\x6a\x67\x5d\x10\x8a\x78\xaf\xbd\x7e\xca\x76\x97\x8f\xf2\x6b\xdc\x8a\xeb\x2f\x2a\x52\xa9\xc5\x94\xcf\x5f\x49\xf3\x5c\xb4\xc5\xa8\x3d\x3a\x41\x28\x6e\x5e\xff\x10\x1f\x1b\x4a\x47\x23\x1c\x2f\xf0\x97\xc6\x3e\xd2\x5e\x97\x78\x7b\x2c\x5d\xdf\xcc\x56\xda\xab\xb1\x3d\x56\xbb\xb5\x13\xc0\x24\xee\x9f\x84\x5e\x59\xde\x5c\x5f\x2f\x03\x4f\xfa\xcb\x79\x10\x2e\xaf\x57\x5f\x97\xd7\x1b\xdf\x75\x82\x85\xba\xfe\xdb\xc7\xe8\x2e\xbe\x4a\x6b\x37\x69\xd2\x38\x5d\x76\x8f\x55\x06\xd5\x68\xed\x9c\xa6\x36\xce\xeb\x06\x36\xce\x5b\xe3\xf2\xb1\xec\xbe\x5f\xd7\xde\xb7\x89\x57\xb5\xec\xc6\x27\x6b\x54\x6a\x43\x65\x7c\x46\xe5\x85\x78\xb6\x30\x4b\x41\x71\x9e\x13\xea\xb3\x1c\x69\xb7\x95\x6b\xb2\x0c\x68\xb7\x8d\x44\xfc\x02\x33\x2d\xdf\xc9\xd6\x9a\x69\xa4\x1b\x9f\x51\xba\x31\x79\x55\xe4\x55\x91\x57\x45\x5e\x15\x3b\xcc\xb2\xb7\xc8\xca\xcc\x84\x61\xf6\x6b\x24\x56\x64\x47\x56\x26\x56\x8c\x70\xdf\x96\x39\xc8\x3b\x4f\xa7\xd0\x94\x7d\xd7\x24\x3b\x6a\xc7\x15\x9f\x7f\xfc\x7e\x8b\xe9\x07\x7f\xcb\x51\x6f\x6e\x3c\xee\x47\xfc\xda\xb6\x60\x78\xf9\x72\x21\x75\xf7\x41\xbd\x90\x3e\xd8\xa4\x8e\x05\x68\x25\x05\x7e\xa5\xcf\xfd\x7b\xf5\x94\xf6\xa8\xc2\xa5\x6a\x74\x64\xb4\x0e\xe5\x5a\x2d\x5d\xe7\xaa\xf9\x39\xf1\xe7\xa7\xe4\x48\x3d\x79\x36\x59\x1c\x74\xf0\x98\xce\x4d\x31\x71\x2b\xcf\x59\x28\xf4\x4f\x5b\xe6\x99\x3b\x15\x51\xad\xb0\xc4\xee\x76\x23\x4a\x04\xfe\xba\x89\xfb\xeb\xce\x07\xab\xee\x05\x7e\xa7\x2f\x97\x49\x4e\x58\x99\x58\xcd\x24\xe1\xf5\x45\xc9\xd4\xf4\x52\x7b\x2b\x4c\x46\xa2\xf4\xf4\x99\x7e\xe0\x5f\x99\xb3\xf5\x11\xda\x61\x18\x89\x17\x3f\x45\x81\x7f\x67\xf2\x3e\x7f\x89\x27\xc1\xe4\xf3\xa7\x74\x6a\xdc\xfe\xf1\xa5\x4d\xbc\xb7\xf9\xb8\xf9\x10\x84\x8e\xf6\xa8\x2e\x03\xdd\xf9\x81\xf8\x7c\xf9\x10\xff\xed\xf3\xa5\xb8\xdd\x69\xcd\xb9\xf8\xb8\x4e\xdc\x9f\x9b\x68\x9b\xe3\x76\x25\x1d\xdd\x01\x3a\x73\xd0\x73\x9d\xc4\xa1\xa3\xbc\x45\x24\x82\xef\x49\xdf\x9a\xcc\xba\x95\x0a\x56\x9e\x9a\x0b\xf3\x9b\x3a\x61\x38\x1d\x53\x3a\x98\xb7\xb0\x23\xb2\x9f\x6f\xd3\xbc\xf1\x0f\x4d\x37\x32\x91\x7d\xc6\x58\xf7\x19\xab\xbd\x70\xd1\xf1\xed\x34\x36\x9d\x3b\x08\x56\x9e\x74\x9e\x65\xfa\x25\x97\x38\x13\xe3\x8f\x70\x3a\xec\xbe\xb3\xb2\xfb\x2c\x32\xaf\xb0\x02\xb2\x6f\x08\xa7\x3b\x43\xeb\x65\x33\x46\x2f\xe9\x85\x68\x1d\x94\x36\x78\x99\xb0\x56\xb1\x68\x45\xf5\xc1\xda\xd8\x3d\x48\x4c\x21\x31\x65\xbe\xb2\x40\x62\x6a\xd2\xb1\x91\x08\x66\x21\x98\x85\x60\x16\x82\x59\x08\x66\x15\x2d\x25\x14\x06\xc3\xdf\x81\xae\x19\x91\xfa\xe7\x1c\xa9\x8f\x88\x1d\x22\x76\x88\xd8\x21\x62\x87\x88\x1d\x22\x76\x88\xd8\x91\xc0\x46\x02\x1b\x09\x6c\x24\xb0\xed\x8f\x48\x0a\x83\xa1\x98\x79\xf4\xe8\x42\x31\x13\xc5\x4c\x14\x33\xa7\x1f\x91\x42\xfe\x6a\x76\xe4\x28\x0a\x83\xd9\x92\xc2\xda\xb8\x22\x58\x45\xb0\x46\x7d\x29\x30\x02\x34\x08\xd0\x18\x75\x80\x06\x21\x0d\x84\x34\x10\xd2\x40\x48\x03\x21\x0d\x83\x87\x34\xc0\xca\xc1\xa7\xe0\x53\xf0\x29\xf8\x14\x7c\x0a\x3e\x05\x9f\x96\x2e\x02\x10\x0d\x88\x06\x44\x03\xa2\x01\xd1\xa0\x06\xd8\xb1\x49\xb1\x14\xff\xb2\xa2\xf8\x57\x5b\x1d\x0f\xaa\x7e\x75\x5c\xf5\xab\x82\xfe\x34\x29\xf7\x35\x4d\x61\x12\x14\x49\xce\x27\x43\x07\x45\x12\x14\x49\x0a\x6e\xc6\x6a\x23\x66\x74\x52\x24\x76\x4b\xc4\x3f\xe7\x8e\x27\x6b\x23\x0e\x5f\xcb\xab\x3f\xbd\x94\x01\xab\x77\xb5\x92\x4a\x19\xc2\xfe\x1a\x89\x26\x05\x56\x57\xbe\x93\xad\xb5\xba\xc8\x02\x3e\xa3\x2c\x60\xd2\x9d\x48\x77\x22\xdd\x89\x74\x27\x36\x8c\x65\x6f\x91\x95\x09\x03\xd4\xeb\xb2\x73\x67\x66\x43\xbd\x2e\x5b\xb2\x1c\xaa\x0b\x75\x55\x6c\xae\xea\x2b\x74\x5d\x32\xd3\xe0\x37\x19\x61\x4d\xae\xfe\xd0\x5a\x49\x31\xae\x22\x88\x46\x15\x2e\xaa\x70\x95\x9e\x73\xe2\x2a\x5c\x15\xab\x40\x83\xf2\x5b\xe3\x27\x9c\xd4\xdd\xc2\xef\x76\x7e\xb4\x93\xba\x5b\x5d\x8e\x1b\xea\x6e\xe1\xae\x60\x13\x51\xd4\x90\x53\x2d\xb8\xd5\x76\x1b\xd1\x7b\xa5\xad\xca\x4d\x7e\x83\x12\x5b\xe3\x37\xf0\x08\x61\xc3\xa8\x3b\x0f\xa3\xce\x22\xdb\x89\x25\x3e\xfb\x86\x10\xb6\xdc\xb5\xa7\x6b\x93\x0c\x5d\x46\xeb\xb4\xf1\x60\xf1\x7c\x11\xad\xa4\x93\x46\x83\xe9\xcf\xff\xbb\x0e\x03\x4f\xdd\x9b\xfa\x5d\xc3\x94\xd5\x6a\x56\x4c\xb4\x41\x59\xad\x5f\xd3\x87\x5a\x3c\xb3\xb0\x28\xfa\x4d\xe8\x37\x99\xaf\x2c\xd0\x6f\x9a\x74\x30\x23\x6a\x54\xa8\x51\xa1\x46\x85\x1a\x15\x6a\x54\x45\x4b\x09\x05\xb6\xf0\x7d\x20\x1a\x46\x68\xfd\x39\x87\xd6\xa3\x10\x87\x42\x1c\x0a\x71\x28\xc4\xa1\x10\x87\x42\x1c\x0a\x71\x64\x9c\x91\x71\x46\xc6\x19\x19\x67\xfb\x23\x92\x02\x5b\xc8\x51\x1e\x3d\xba\x90\xa3\x44\x8e\x12\x39\xca\xe9\x47\xa7\x90\x70\x9a\x1d\x69\x6f\x81\xad\xe2\x90\x05\x8b\x0b\x6c\x35\x0b\xdb\x28\x29\xb0\x45\xa8\x06\xa1\x1a\xd3\x0b\xd5\x20\xb8\x81\xe0\x06\x82\x1b\x08\x6e\x20\xb8\x61\xf0\xe0\x06\xa8\x39\x20\x15\x90\x0a\x48\x05\xa4\x02\x52\x01\xa9\x80\xd4\xd2\x45\x00\xb6\x01\xdb\x80\x6d\xc0\x36\x60\x1b\x94\xda\x6a\x94\x31\x9b\x73\x58\x53\x6a\x6b\xb8\x52\x5b\xcf\xe7\x25\x2d\xf4\x00\x13\x83\xc9\x88\x0f\xf8\x0b\x11\xdf\xae\x88\x9c\x60\xa5\x5e\x89\x68\xe3\xe8\x55\x4b\x4f\xf6\x4a\x3e\x9a\x99\x6a\x15\x06\xda\x40\xdb\xbd\xc7\x26\x92\x81\x1a\x8f\xec\x7e\x8d\x6e\x60\xdd\xd3\x24\x9f\x7a\xa9\x31\xd6\x0c\x80\x95\xd6\x18\xeb\x0c\x81\x59\x2a\xd5\x92\x7f\xaa\x66\x73\x24\xe9\x4a\x13\x48\x57\x42\xaa\x05\xa9\x96\x82\x9b\xb1\xda\x8e\x1b\x87\x54\x4b\xab\x1b\x1e\xb4\xda\x58\x8b\x3b\x9e\xac\x99\x3c\x50\xb5\xb1\xd6\x66\xf2\x85\xe8\x5c\x5d\xa6\xef\x22\x64\xcf\x14\x96\x19\xd8\x40\x1b\x89\x82\x07\x66\x59\xbe\x93\xad\x35\xcb\xc8\x99\x3e\xa3\x9c\x69\x92\xc3\x48\x0e\x23\x39\x8c\xe4\x30\x76\x94\x65\x6f\x91\x95\xe9\x15\x94\x23\xb3\x73\xeb\x36\x58\x39\x32\x0b\x73\x42\x0a\xca\x91\x35\xdb\x66\x95\x94\x23\xab\xdf\x64\x31\xe7\xe0\x62\xb1\xb9\x30\xd9\x20\x20\x32\x5f\x98\xac\xf4\x06\xc6\x54\x98\x0c\xb2\x3a\x3a\xb2\x4a\x45\xb6\x56\x0b\x61\x59\x45\xb6\x89\xf2\x60\x6a\xb3\xe1\x84\x3c\x3f\x36\x4c\x6d\xb6\x2e\xc7\x0d\xb5\xd9\xf0\xdd\xb0\x8f\x2a\x6a\xc8\x49\xd5\x66\xeb\x60\x27\xd5\x4f\x6d\xb6\xa6\x1e\x8f\xb2\xda\x6c\x13\x35\xf5\x08\xfd\xc3\xbc\x3b\x0f\xf3\xce\x22\x2b\x8a\xc5\x3e\xfb\x86\xd0\xbf\xdc\xb5\xa7\x6b\x9d\x0c\x52\xa5\xcd\x86\x38\xba\xe1\xca\xb3\xb5\x09\x9f\x2b\xab\xcb\xd6\xc6\xce\x41\xe5\x0b\x95\x2f\xf3\x95\x05\x2a\x5f\x93\x0e\xe7\x44\xb3\x0c\xcd\x32\x34\xcb\xd0\x2c\x43\xb3\xac\x68\x29\xa1\x20\x1b\x6e\x0e\xa4\xe5\x48\x2e\x38\xe7\xe4\x02\x74\x04\xd1\x11\x44\x47\x10\x1d\x41\x74\x04\xd1\x11\x44\x47\x90\x9c\x3b\x72\xee\xc8\xb9\x23\xe7\x6e\x7f\x44\x52\x90\x0d\xd1\xd2\xa3\x47\x17\xa2\xa5\x88\x96\x22\x5a\x3a\xfd\x40\x14\x52\x6e\xb3\x23\xed\x2e\xc8\x66\x4b\xd6\x6d\x7d\x25\xb6\x8a\x08\x8d\x46\x25\xd8\x88\xca\x20\x2a\x63\xd4\x51\x19\xc4\x31\x10\xc7\x40\x1c\x03\x71\x0c\xc4\x31\x0c\x1e\xc7\x00\x20\x87\x99\xc2\x4c\x61\xa6\x30\x53\x98\x29\xcc\x14\x66\x5a\xba\x08\x80\x31\xc0\x18\x60\x0c\x30\x06\x18\x83\xda\x6b\x8d\xf3\x60\x29\xba\x36\x6c\xd1\xb5\xb6\xd2\x1c\x54\x5b\x3b\x03\x4d\xc0\xd3\x56\x5b\xab\x80\x5c\x0d\xcb\xac\x4d\x4c\x64\x05\x75\x95\xf3\x49\x3b\x42\x5d\x05\x75\x95\x82\x9b\xb1\xd3\x48\x1b\x8f\xac\x8a\xdd\xe2\xfc\xad\x6e\x75\xb2\x56\xef\x80\x35\xd4\x86\x13\x7d\x19\xa2\x6a\x5a\x1b\xbd\x97\xa1\x0c\xad\x91\x08\x6b\x60\x65\xe5\x3b\xd9\x5a\x2b\x8b\x54\xe6\x33\x4a\x65\x26\x67\x8b\x9c\x2d\x72\xb6\xc8\xd9\x62\x83\x58\xf6\x16\x59\x99\xf5\x40\x9d\x34\x3b\xb7\x67\x83\xd6\x49\xb3\x25\x55\xa3\xa4\x40\x5a\xc5\x8e\xaa\x51\x65\xb4\x4b\xa6\x17\x5c\x25\x45\x67\x5b\x57\x0b\xad\x3f\x3e\xb8\x5f\x04\xed\x78\xea\x67\x0b\xf0\x83\x74\x8e\x8e\x74\x52\xfd\xec\xb8\x55\xae\x59\xd9\xb3\xf1\xf3\x59\xea\x9d\xe1\x4c\x3c\x3f\x64\x4b\xbd\xb3\x2e\xc7\x0d\xf5\xce\xf0\xc1\xb0\x49\x9a\x76\xa1\xb3\xb6\xdb\xa4\xfe\x2a\x9c\x55\xba\x2c\x9a\x95\x36\x1b\xbf\x39\x47\xb8\x1d\xb6\xdb\xc4\x6d\x37\x8b\x4c\x24\x56\xf2\xec\x9b\x33\x0f\xb7\x9b\xae\xcd\x31\x58\xf9\xb2\xd3\x86\xb0\x85\x81\xa7\xee\x4d\x81\xb4\x9d\x3a\x65\x03\x68\x61\xd5\x97\x66\x2d\x91\xc4\xca\x9d\xfc\x21\x08\x6f\x3d\x2f\xb3\x66\x22\x1b\xf8\x4b\xe9\x09\x67\x9c\x0d\x96\x74\x17\x49\x61\xc3\x26\x85\x3d\xb3\x6c\xf3\xf1\xec\x07\xb1\xb9\x09\x8b\xcd\xd5\xb3\x9d\x3a\xa1\xb9\x4a\x87\x52\x07\xdc\x0a\x79\x39\xe4\xe5\x90\x97\x43\x5e\x6e\x6a\xf2\x72\xf5\x33\x6f\xa1\xb4\xdc\x89\xa3\x04\x7a\x13\x94\xab\x7f\xfc\x72\x31\x39\x9b\xdb\xe0\x18\x09\xb9\xfa\x36\x28\x97\x8f\x3b\x71\x1b\x20\x1a\x87\x68\x1c\xa2\x71\x88\xc6\x21\x1a\x77\x32\xd1\xb8\x06\xb3\xff\x81\x60\x5c\x65\xba\xd6\x19\x05\x09\x36\x7b\x1a\x44\xef\x46\x26\x7a\x57\x3f\x88\xaa\x04\xef\x4e\x3c\x9a\x06\x95\xb9\xab\x6f\x99\x0a\x89\xbb\x53\xcf\x1a\xb6\x0a\xdb\xd5\x37\x5a\x81\x0b\xbf\xb5\x3b\x2b\xf9\xf4\x57\x1b\x9c\x33\x34\xc7\x69\x07\x70\x20\x37\xfb\x0d\x6f\x27\xb9\x01\xd9\x9c\x8b\x8e\x1f\xac\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\x0d\xac\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\x4d\xd3\xa7\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\xcd\x2e\xab\xd1\xf7\x70\xed\x78\x9b\x68\xad\xc2\xde\xf2\x70\x12\x1b\xc8\x5f\xb8\xdf\xdc\xc5\x46\x7a\xf9\xae\x93\xd9\x3e\xe7\xad\xb9\xab\x5c\x8e\xc0\x3c\xa7\x9a\xfa\x26\xb3\x48\x67\xfa\x72\xb3\xad\x7b\x6b\xc7\x5f\x91\xd1\x1f\xe1\xfa\xd1\x5a\xc9\x9d\xa5\x63\x9f\x0d\x7d\x2f\x51\x9a\x39\xbc\x95\x9f\xf7\xbc\xef\xe0\x21\x5b\x05\x22\xf5\x04\xf1\x3e\xde\x02\x9d\x3d\x32\xd2\x3d\x39\x10\x37\x3a\x7c\x85\xa0\x48\x50\x24\x28\x12\x14\x09\x8a\x04\x45\x82\x22\x41\x91\x3a\x9a\x6d\xa1\x48\x50\x24\x28\x12\x14\x09\x8a\x04\x45\x82\x22\x41\x91\xa0\x48\x50\x24\x28\x12\x14\x09\x8a\x54\xdb\x56\x9d\x53\xa4\x82\x02\xa4\x27\x82\x49\x79\x82\xe4\xa7\x4b\x5f\x9a\x11\x74\x22\x92\xf4\x6a\x6b\xf3\x6a\xbb\x3e\xb1\x8f\x62\xb3\x79\x6b\xcc\xcf\x76\x36\x81\xb9\x6b\x77\xc3\xa1\x60\x50\x30\xa8\xf1\x31\x28\xf8\x13\xfc\x09\xfe\xb4\x7d\xd1\xe0\x4f\xf0\x27\xf8\x13\xfc\x09\xfe\x04\x7f\x82\x3f\xc1\x9f\xe0\x4f\xf0\x27\xf8\x13\xfc\x09\xfe\x34\x3a\xfe\x94\xaf\x2c\x5c\xe7\x73\x18\x53\x9d\x61\xb8\x1a\x5c\x0d\xae\x56\x3c\x9a\xe0\x6a\xa5\xef\x19\x5c\xad\x4b\xae\x66\x59\x5a\x96\x0d\xf9\x58\x24\x62\x01\xc1\xc6\x09\xc1\x86\x4f\xc4\x82\x80\x41\xc0\x20\x60\x10\x30\x08\x18\x04\x0c\x02\x06\x01\xeb\x68\xb6\x85\x80\x41\xc0\x20\x60\x10\x30\x08\x18\x04\x0c\x02\x76\x76\x04\x0c\x52\x04\x29\x82\x14\x15\x8f\x26\x48\x51\xe9\x7b\x06\x29\xea\x94\x14\xd9\x97\x7a\x35\xfe\x9c\x2b\x38\x13\x9c\x69\x7c\x9c\x09\xc6\x04\x63\x82\x31\xc1\x98\x60\x4c\x30\x26\x18\x13\x8c\x09\xc6\x04\x63\x82\x31\xc1\x98\x60\x4c\x30\x26\x18\x13\x8c\x69\x8c\x8c\xa9\x24\xcb\x8a\xf4\x2a\xa0\x19\xd0\x0c\x68\x06\x34\x03\x9a\x35\x85\x66\xf1\x1d\x45\x2b\xe9\xa4\xc8\x4c\x7f\xfe\xdf\xb5\x65\xc5\xb0\x6c\xa8\x82\xf5\x6b\xda\x3a\x0b\x0a\x61\xc1\xc5\x46\xcf\xc5\x06\xca\xbf\x42\x81\x10\x36\x06\x1b\x83\x8d\xc1\xc6\x60\x63\xb0\x31\xd8\x98\x65\x5c\x08\x36\x06\x1b\x83\x8d\xc1\xc6\x60\x63\xb0\x31\xd8\xd8\x18\xd9\x58\xf2\xd4\x1a\x91\xc5\x5d\x29\x37\xeb\x2f\x22\x72\x82\x95\x7a\x25\xa2\x8d\xa3\x29\x80\xde\xaf\x28\xf9\x68\xbc\xc2\xab\x30\xd0\xad\x7c\x3c\x3e\xd3\xee\x40\x18\x1a\x0c\x0d\x86\x06\x43\x83\xa1\xc1\xd0\x4a\x19\x9a\x25\xf9\x68\xe3\xaf\x01\x56\x48\xe1\x20\x70\x10\xb8\xf1\x11\x38\xe8\x1b\xf4\x0d\xfa\x06\x7d\x83\xbe\x41\xdf\xa0\x6f\xd0\x37\xe8\x1b\xf4\x0d\xfa\x06\x7d\x83\xbe\x41\xdf\xa0\x6f\xd0\xb7\x31\xd2\xb7\x7c\x66\xda\x24\x0a\x7f\x81\x13\xc1\x89\xe0\x44\x70\x22\x38\x11\x9c\x38\x3c\x4e\xb4\x25\x17\xcf\x92\x24\x3c\xb2\xef\x60\x7f\xe3\x64\x7f\x03\x66\xdf\x01\xfe\x00\x7f\x80\x3f\xc0\x1f\xe0\x0f\xf0\x07\xf8\x03\xfc\x75\x34\xdb\x02\xfe\x00\x7f\x80\x3f\xc0\x1f\xe0\x0f\xf0\x07\xf8\x3b\x3b\xf0\x07\x27\x83\x93\xc1\xc9\xe0\x64\x70\x32\x38\x99\x05\x9c\xcc\xa2\x7c\xbb\x49\x24\xda\x41\xd9\xa0\x6c\xe3\xa3\x6c\x10\x36\x08\x1b\x84\x0d\xc2\x06\x61\x83\xb0\x41\xd8\x20\x6c\x10\x36\x08\x1b\x84\x0d\xc2\x06\x61\x83\xb0\x41\xd8\x20\x6c\xa3\x22\x6c\xfb\xa9\x75\xe4\xd4\xc1\x0a\x61\x85\xb0\x42\x58\x21\xac\x10\x56\x58\xc3\x0a\xa9\x67\x77\x00\xf8\xf6\xaa\xd8\x7d\x08\xc2\x5b\xcf\xcb\xa8\x5f\x04\xf1\x83\xf8\x8d\x8f\xf8\x51\xd5\x0e\xf8\x07\xfc\x4b\xde\x32\xe0\x1f\xf0\x0f\xf8\x07\xfc\x03\xfe\x01\xff\x80\x7f\xc0\x3f\xe0\x1f\xf0\x0f\xf8\x07\xfc\x03\xfe\x8d\x0e\xfe\x41\x8e\x20\x47\x90\xa3\xe2\xd1\x04\x39\x2a\x7d\xcf\x20\x47\x9d\x90\x23\x5b\x90\xd1\xa0\xac\x08\x48\x54\xd4\x97\x40\x22\x20\x11\xa9\x61\xd0\x21\xe8\x10\x74\x08\x3a\x04\x1d\x82\x0e\x41\x87\xa0\x43\xd0\x21\xe8\x10\x74\x08\x3a\x04\x1d\x82\x0e\x41\x87\xa0\x43\x47\x3d\x0d\x74\x08\x3a\xd4\xdd\x68\x82\x0e\x95\xbe\x67\xd0\xa1\xf6\x74\xe8\x5e\xad\xe5\xcd\x75\x2b\x2e\x74\x6a\x20\xd2\x84\x39\x2d\xd5\x7a\xd7\xde\x33\xdd\x5c\x81\x86\x96\x6a\x5d\x00\x86\x74\x33\xdc\xde\x7d\xfc\xbd\xe8\x0a\x43\x11\xa1\xd1\x82\x9a\x5c\x43\xea\xd2\x66\x13\xa4\x35\x7a\xc0\xe4\x2e\x71\x91\xbf\x8d\x63\x5f\x3f\xc7\xdb\x44\x6b\x15\x96\x25\xf7\x19\x73\xbb\x5b\x58\x6b\xae\x29\x9c\xc0\x8b\x77\xf7\xc9\x32\xf1\xd6\xdc\x47\x71\x16\xd0\xfe\x8b\x64\xae\x50\xf6\x2e\xbd\xcd\x2e\x5c\x7d\xd1\x12\x22\x24\x6a\x86\x01\x54\x68\xc2\x54\xa8\x62\xe9\x3c\x82\x0c\xd5\x2c\xa6\xd5\xcb\xe9\xde\xd4\xf4\xdf\xa2\xbb\xbb\x0f\x16\xa5\x37\x57\xf4\xdd\x49\xa6\xda\x77\xfa\x2d\xfc\x4d\xbf\x18\x51\xc3\x89\xb6\xfa\xd5\x82\x78\x41\xbc\x20\x5e\x10\xaf\xa9\x11\xaf\x66\xab\x4a\x21\xf5\xaa\xde\xdc\x3f\x67\x25\x29\x72\x19\x25\xbe\xbe\x57\x3a\x94\xce\x89\x47\x94\x19\x07\x3b\xcf\x96\xb7\x23\xee\x95\x58\xc5\xad\x15\xad\xe3\x05\xfa\xd6\x17\xae\x6f\x66\x96\x20\x14\x1b\x3f\x9b\x9c\x16\x62\x11\x3e\xfd\xbe\xf1\xc5\xc2\x0d\x63\xd3\xec\x9b\xca\x46\xbc\xf6\x95\xf8\x42\xfa\xc9\x2b\x9f\x8e\x8d\xa4\x81\xc5\xc3\x26\xd4\x6f\xd9\x2a\x0c\x9c\xd8\x6e\x30\xee\xa4\x1c\x8d\x98\x8b\x3f\xf5\x2f\xea\xde\xd2\x63\xe7\x8d\xb8\x12\xb7\x9e\xf7\x46\x3b\x48\x17\xf1\x2c\xbd\xf1\xe3\x8e\x8f\xf7\xe7\xe9\x90\x4c\x2e\xa7\x16\x2d\x3a\xca\x3c\xcb\x30\xdd\xd4\x1b\xa6\x6c\xd6\x14\xe5\xa8\xb2\xb7\x16\xf9\x23\xef\x70\x72\x7d\x11\x19\x3f\x90\xb8\x57\x0f\xc6\x72\xce\x5c\xda\x5b\x53\x22\x99\xbd\xf4\xd0\xd9\x28\xb3\x38\xdc\x2b\xe1\x07\xfe\x95\xaf\x96\x52\x0f\xd0\xc4\x65\x34\x17\x7f\x64\x0b\xb6\xc1\x5b\xd9\xab\x91\x6c\x64\xdc\xc7\x47\xb5\x70\xe5\x5a\x79\x4f\x5b\x93\x76\xbb\xe4\xba\xde\xab\xc4\x25\xa4\x1b\x5d\x2c\x43\xe9\xe8\xb7\xc6\x0d\x16\x99\x41\xb0\x5d\xb4\xf5\x7e\x21\x1d\xa5\x9b\x28\xbe\xc9\x7c\x77\xc9\xf8\xcc\xf4\x81\x92\x1f\x79\x30\x73\x60\x7a\x89\xb9\xb9\xcf\x47\x25\xfd\xc2\x7b\x6c\xd1\xcd\xfa\x9e\xef\xf4\x2d\x17\xb9\xd9\x6a\x1c\x6d\xb6\x0c\xff\x63\x08\x75\xb3\x76\x29\xa7\xd4\xbd\x0d\x7f\x78\x35\xbc\x1a\x5e\x0d\xaf\x86\x57\x9f\x8c\x57\x37\x5c\x0b\x0e\x98\x75\x7f\xcb\xe2\xbb\x5c\x4e\xcb\xca\x53\x32\x52\xd9\x14\x74\x17\x06\x2b\xb9\xd4\xd6\xd1\x5d\xe0\xb9\xce\xd3\x8e\x1f\x2c\x1d\x74\xdb\xa4\x98\x78\xd8\xdd\xcc\xff\x31\x17\x9f\xcc\x7c\x66\x4c\x97\x95\xf2\xe3\x97\x65\xbb\xa6\x2a\x11\x84\xab\x2f\xd2\x4f\xfd\x72\xe1\x46\x5d\x3f\x48\x2f\xdd\x2b\x7f\xbe\x34\x5f\x7f\xbe\x14\x0f\xae\x2f\x3d\xf7\x3f\xe9\x42\x72\xaf\x84\x5c\x2c\xf4\xe8\xbc\x36\x84\x6b\xb1\xdd\x86\x99\xcb\xcf\xa2\xed\x49\x66\x7f\x3a\x17\xef\x5d\x3d\x39\xe6\x6e\x3d\x08\x0f\x9f\x4d\x4f\x3f\xc6\x55\x64\xb6\xc7\x7a\x8f\x12\xac\xbf\xb4\xe9\x50\xf3\x04\xef\xd2\x67\xef\xcd\xc5\x77\xb8\x31\xd3\x8f\x1e\xbf\xb0\x5f\x82\xef\x62\x29\xc3\x7b\xb9\xdc\xf1\x9f\x67\x9b\x1a\x15\x3e\x04\xe1\x63\xdc\x27\x85\xed\xf5\xdb\xde\x13\x95\x37\x97\x36\x7a\x53\x8b\x75\x65\xda\xd6\x8d\xad\x49\xc7\x5d\x6c\xb7\xc2\xda\x56\xd0\xce\x89\xac\x8f\xe3\xc5\x3a\x59\x49\x53\x6b\x60\x9e\xeb\xcc\x74\x1d\x49\xb7\xda\x57\x99\x8f\x79\xf7\xc7\xe6\xe2\xd6\x71\xd4\x6a\xad\xd7\xa6\xfc\xce\x6e\x66\x9e\x61\x26\xae\x92\x01\xb8\x3b\x40\xa3\x1f\xc5\xec\x9f\xd2\xf9\xba\x0c\x83\x8d\xbf\x88\x8f\xd2\xbe\x5a\x7d\xd0\x5e\xc3\x19\x13\x32\xb1\x8f\x77\x2f\x92\x3e\xc1\x7d\x76\xa5\x1f\xc5\xec\x43\x10\xaa\xdc\x65\x85\x23\x23\x47\x2e\xe2\xa7\x4f\xda\xc7\xb8\xf3\xf5\xf5\x22\xb3\xf5\x3c\xb8\xe0\x43\x76\x8d\x36\x03\x72\xb5\x3f\xdc\x07\xf4\x14\x10\x5c\x32\x9e\xe0\x92\x66\xa3\xab\x2a\xc0\xa4\xbf\xcd\xfc\x90\xa1\x26\xcd\xda\xa9\x22\xdc\xa4\xbf\x05\xdf\xd6\xc0\x93\x66\x4d\x78\x18\x7c\xf2\xdc\xe5\xb4\x90\x3b\x13\x3c\x71\x24\xd1\xfb\xb4\x96\xeb\x4d\x53\x94\x37\xea\x98\x89\xdc\x25\x4a\xd2\x5c\xcd\x42\xbe\x35\xb2\x06\xc8\x76\xad\x0c\x5f\xd8\xcf\x7d\xdd\x7b\xc2\xc3\x04\xd8\xce\x93\xee\x8d\xc3\x2d\x4c\x56\xfe\x74\x67\x90\xd6\x6d\x3d\x2a\xa0\x23\xbe\x54\x69\x38\x07\x41\x1c\x04\x71\x4c\x2b\x88\x83\xb0\x07\xc2\x1e\x08\x7b\x20\xec\x81\xb0\x87\xc1\xc3\x1e\xe0\xe9\x20\x56\x10\x2b\x88\x15\xc4\x0a\x62\x05\xb1\x82\x58\x4b\x17\x01\xa8\x07\xd4\x03\xea\x01\xf5\x80\x7a\x20\x22\x5a\x85\x57\xe6\xda\xc9\x9f\xf8\xe3\xe7\x87\xce\xeb\x73\xc9\x4a\xad\x27\x2c\x03\x69\x88\x76\x4b\x55\x5a\xc8\x8a\x8e\x45\x6a\xe4\x62\xaf\x27\x2f\x57\x41\xd4\x31\x42\x32\x06\xbd\x90\xc7\xd1\x22\x73\xd6\x69\x79\x51\xbb\x3c\xcb\x8a\xba\xd8\x27\x9d\x54\x3a\xc9\xbe\x24\x03\x28\xdf\xf5\xd6\x66\x00\xe9\xad\xfc\x2f\xd2\x97\x4b\x15\x1a\xa7\x94\xa9\x02\x1f\x45\x81\xe3\xea\x5d\x56\xe6\xfe\x91\xda\x8b\x17\x84\x22\xde\x84\xaf\x9f\xb2\x6d\xe7\xa3\xfc\x1a\xb7\xe2\xfa\x8b\x8a\x54\x6a\x4a\xe5\xf3\x5c\xd2\x7c\x18\x6d\x4a\x6a\x57\x4f\x10\x8a\x9b\xd7\x3f\xc4\xc7\x86\xd2\xd1\x6c\xc7\x0b\xfc\xa5\x31\x9c\xb4\x3b\x26\xde\x37\x4b\xd7\x37\xf3\x96\x76\x77\x6c\x8f\xd5\xfe\xee\x84\x3c\x89\xfb\x27\xa1\x57\x9b\x37\xd7\xd7\xcb\xc0\x93\xfe\x72\x1e\x84\xcb\xeb\xd5\xd7\xe5\xf5\xc6\x77\x9d\x60\xa1\xae\xff\xf6\x31\xba\x8b\xaf\xd2\xda\x7f\x9a\x34\x4e\x97\xdd\x63\x95\xa5\x35\x6e\x03\xa8\xa9\xf1\xf3\xba\x81\xf1\xf3\xd6\x38\x84\x6c\xbc\xf9\xd7\xb5\x37\x6f\x22\x5c\x6d\xbc\xfb\x69\xdb\x9d\xda\x8c\x19\xa9\xdd\x79\x21\xba\xd1\x78\xb9\xfe\x6f\x3c\x63\xfe\xaf\x27\xa9\x97\x23\xed\xbb\x1a\x79\x97\x01\xed\xbb\x91\xe8\x68\x60\xc9\xe5\x3b\xd9\x5a\x4b\x8e\xcc\xe5\x33\xca\x5c\x26\x45\x8b\x14\x2d\x52\xb4\x48\xd1\x62\x13\x5a\xf6\x16\x59\x99\xe4\x30\xcc\x46\x8e\x1c\x8d\x23\x72\x34\xc6\xba\x97\xcb\xfc\xea\x9d\x67\x66\x68\x56\xbf\x6b\x9c\x1d\xb5\x01\x8b\xcf\x6f\xb9\xfd\x62\x36\xc2\x2f\xd3\xf2\x6d\x8e\x5f\x83\xb1\xbf\xca\x2d\x70\xa0\xf6\xde\x27\xdb\xe0\xba\x9b\x31\x16\xc8\x4a\xae\xbf\x14\xe3\x3f\xfd\xff\xce\x37\x15\x44\xea\xc4\xaa\xf1\xe3\xc5\x9c\x3a\xca\xa0\x95\x0e\xf9\x95\x3e\xf7\xef\xd5\x33\xdc\xa3\x0a\x97\xaa\xd1\x91\xd1\x3a\x94\x6b\xb5\x74\x9d\xab\xe6\xe7\xc4\x9f\x9f\x92\x23\xf5\x5c\xda\x64\xc1\xd0\x61\x69\x3a\xeb\xc5\x44\xc4\x3c\x67\xf1\x58\x95\x14\xc0\x1d\xdc\x79\x77\x2a\x38\x5b\x61\xac\xdd\xed\x06\xac\x08\x5c\x7a\x13\x77\xe9\x9d\x0f\x9c\xdd\x8b\x2b\x4f\x5f\x2e\x93\xfb\xb0\x32\xa1\xa0\x49\x3e\xed\x8b\x92\xf9\xe9\xa5\x76\x68\x98\x84\x47\xe9\xe9\x33\xfd\xc0\xbf\x32\x67\xeb\x23\xb4\x4f\x31\x12\x2f\x7e\x8a\x02\xff\xce\xa4\x95\xfe\x12\xcf\x84\xc9\xe7\x4f\xe9\xfc\xb8\xfd\xe3\x4b\x9b\xa8\x71\xf3\x71\xf3\x21\x08\x1d\xed\x74\x5d\x06\xba\xf3\x03\xf1\xf9\xf2\x21\xfe\xdb\xe7\x4b\x71\xbb\xd3\x9a\x73\xf1\x71\x9d\x78\x48\x37\xd1\x36\x85\xee\x4a\x3a\xba\x03\x74\x62\xa2\xe7\x3a\x89\xcf\x47\x79\x8b\x48\x04\xdf\x93\xbe\x35\x89\x7b\x2b\x15\xac\x3c\x35\x17\xe6\x37\x75\x3e\x72\x3a\xa6\x74\xac\x70\x61\x47\x64\x3f\xdf\xa6\x79\xe3\x1f\x9a\x6e\xe0\x23\x7b\x8f\xf1\xef\x3d\x56\x7b\x71\xa9\x23\xdd\x7d\x6c\x3a\x77\x24\xac\x3c\xe9\x3c\xcb\x1c\x4c\x2e\x71\x4e\x06\x21\xd1\x7a\x18\x84\xe7\x67\x10\x5a\x64\x77\x61\x1e\x64\xdf\x10\xad\xd7\xe0\xe6\x27\x6e\xdb\x6c\x46\xeb\x57\xbd\x10\xcf\x0b\x77\x1b\xbc\x96\x59\xfb\x28\xb7\xa2\x22\x66\x6d\x4c\x23\x84\xaf\x10\xbe\x32\x5f\x59\x20\x7c\x35\xe9\xa8\x4b\x64\xbc\x90\xf1\x42\xc6\x0b\x19\x2f\x64\xbc\x8a\x96\x12\xaa\x97\xe1\x0d\x41\x6d\x8d\x1c\x80\x73\xce\x01\x40\x5a\x0f\x69\x3d\xa4\xf5\x90\xd6\x43\x5a\x0f\x69\x3d\xa4\xf5\x48\x8d\x23\x35\x8e\xd4\x38\x52\xe3\xf6\x47\x24\xd5\xcb\xd0\xf1\x3c\x7a\x74\xa1\xe3\x89\x8e\x27\x3a\x9e\xd3\x8f\x57\x21\x33\x76\x84\xd5\xcb\xac\x4a\x8e\x6d\x5c\xb6\xac\x22\x76\xa3\x61\xbd\x32\xe2\x35\x88\xd7\x18\x75\xbc\x06\x11\x0e\x44\x38\x10\xe1\x40\x84\x03\x11\x0e\x83\x47\x38\x80\xce\xa1\xa9\xd0\x54\x68\x2a\x34\x15\x9a\x0a\x4d\x85\xa6\x96\x2e\x02\x00\x0e\x00\x07\x80\x03\xc0\x01\xe0\xa0\x50\x59\xab\xe4\x59\x2a\x94\xad\xad\xa9\x50\xf6\x2c\x35\x10\x4a\x93\x75\x5c\x9a\xac\x82\x08\x35\xae\x49\x36\x61\x79\x13\x74\x4d\xce\x27\x93\x07\x5d\x13\x74\x4d\x0a\x6e\xc6\x7e\xeb\x66\x9c\x82\x26\x76\xcb\xd5\x3f\xfb\xb6\xa7\x6d\x46\x0e\x5f\x70\x6c\x08\xe9\x95\x01\x4b\x8c\xb5\x57\x5d\x19\xc2\x4e\x1b\x89\xbc\x05\x86\x59\xbe\x93\xad\x35\xcc\x48\x28\x3e\xa3\x84\x62\x32\xa7\xc8\x9c\x22\x73\x8a\xcc\x29\xf6\x94\x65\x6f\x91\x95\xb9\x07\x14\x15\xb3\x78\xb7\x66\x43\x51\x31\xab\x12\x26\xaa\xab\x89\x55\xec\xb5\x1a\x96\x11\xbb\x64\xe2\xc1\xbf\x32\xea\xc2\x61\x3d\x53\xba\x92\x8a\x61\x45\x3c\x8e\x52\x61\x94\x0a\x2b\x3d\xe7\xc4\xa5\xc2\x2a\x56\x86\xa6\x35\xc2\xc6\x0f\x4b\x29\x0e\x86\x6b\xee\xfc\x98\x29\xc5\xc1\xba\x1c\x37\x14\x07\xc3\xa3\xc1\xc6\xe2\x3c\xab\x82\x3d\x6b\x6b\xd1\x7b\x39\xb0\x4a\x67\x40\xd3\x3a\x60\xe3\x37\xfa\x88\x90\xc3\xda\x3b\x23\x6b\xcf\x22\xa3\x8a\xb5\x3f\xfb\x86\x08\xb9\xc2\xbb\x9e\xb8\xc5\x32\x74\xad\xaf\xbe\x22\xcd\xe2\x89\x24\x5a\x49\x27\x8d\x33\xd3\x9f\xff\x77\x1d\x06\x9e\xba\x37\xe5\xc6\x86\xa9\xfd\xd5\xac\x28\x6a\xd3\xda\x5f\xbf\xa6\x4f\xb6\x78\x66\x81\x54\x54\xa5\x50\x95\x32\x5f\x59\xa0\x2a\x35\xe9\x30\x49\x34\xb2\xd0\xc8\x42\x23\x0b\x8d\x2c\x34\xb2\x8a\x96\x12\xaa\x80\xe1\x19\x41\xca\x8c\xa0\xfd\x73\x0e\xda\x47\xb7\x0e\xdd\x3a\x74\xeb\xd0\xad\x43\xb7\x0e\xdd\x3a\x74\xeb\xc8\x65\x23\x97\x8d\x5c\x36\x72\xd9\xf6\x47\x24\x55\xc0\x10\xc9\x3c\x7a\x74\x21\x92\x89\x48\x26\x22\x99\xd3\x8f\x5d\x21\x95\x75\x2c\x55\xc0\x8a\xe3\x16\x86\x4f\x6a\xad\xae\x02\xd6\x2c\x8a\xa3\xaa\x0a\x18\x91\x1b\x44\x6e\x4c\x2f\x72\x83\x58\x07\x62\x1d\x88\x75\x20\xd6\x81\x58\x87\xc1\x63\x1d\x80\xe8\x70\x55\xb8\x2a\x5c\x15\xae\x0a\x57\x85\xab\xc2\x55\x4b\x17\x01\x50\x07\xa8\x03\xd4\x01\xea\x00\x75\x50\x0f\xac\x79\x66\x6d\xce\x6b\x4d\x3d\xb0\xf5\xb0\xf5\xc0\x3a\x62\x28\x2d\x94\x06\x13\xfb\xc9\x08\x17\xf8\x0b\x11\xdf\xb3\x88\x9c\x60\xa5\x5e\x89\x68\xe3\xe8\x45\x4c\xcf\xfd\x4a\x3e\x9a\x89\x6b\x15\x06\xda\x5e\xdb\xbd\xd1\x26\x62\x84\x9a\x96\xec\x7e\x8d\x22\x61\xdd\xd3\x24\x9f\x7a\x29\x84\xd6\x0c\x8a\x55\x17\x42\xeb\x0c\x8b\xd9\x2c\xf8\x92\x7f\xb4\x66\xf3\x26\x69\x4d\x13\x48\x6b\x42\xf0\x05\xc1\x97\x82\x9b\xb1\xdf\xc0\x1b\x91\xe0\x4b\xab\xbb\x1e\xbe\x24\x5a\x8b\xdb\x9e\xb6\x25\x3d\x50\x49\xb4\xe7\x59\xd2\x17\xe2\x34\x42\x35\x7d\x57\x4a\xeb\x42\xa3\x66\x60\x43\x6e\x24\x62\x20\x58\x6e\xf9\x4e\xb6\xd6\x72\x23\xfd\xfa\x8c\xd2\xaf\xc9\x33\x23\xcf\x8c\x3c\x33\xf2\xcc\xd8\x74\x96\xbd\x45\x56\x66\x6a\x50\x33\xcd\xe2\xed\xdc\x60\x35\xd3\x6c\x4d\x2f\x29\xa8\x99\xd6\x6c\xd7\x55\x55\x33\xad\x7e\xcf\xc5\x14\x84\x2b\x66\x1c\xd5\xd3\x86\x63\x9a\xf9\xea\x69\xa5\x77\x31\xa6\xea\x69\x40\xda\xd1\x41\x5a\xca\xc6\xb5\x5a\x1c\x2b\xcb\xc6\x4d\x14\x2d\x53\x40\x0e\x3f\xe5\xf9\x11\x66\x0a\xc8\x75\x39\x6e\x28\x20\x87\x7b\x87\xbd\xd5\x19\x15\x90\xeb\x6a\x77\xd5\x4f\x01\xb9\xa6\x9e\x91\xca\x02\x72\x13\x35\xff\x88\x2c\xc4\xee\x3b\x23\xbb\xcf\x22\xf3\x0a\x2b\x20\xfb\x86\xc8\xc2\xc2\xbb\x9e\xb8\xed\x32\x48\x29\x39\xbb\x22\xf4\x86\xab\x21\xd7\x3a\x30\xaf\xac\x78\x5c\x1b\x53\x08\xed\x31\xb4\xc7\xcc\x57\x16\x68\x8f\x4d\x3a\x50\x14\x25\x35\x94\xd4\x50\x52\x43\x49\x0d\x25\xb5\xa2\xa5\x84\xaa\x71\x38\x41\x10\xbc\x23\x6d\xe1\x9c\xd3\x16\x50\x37\x44\xdd\x10\x75\x43\xd4\x0d\x51\x37\x44\xdd\x10\x75\x43\xb2\xf9\xc8\xe6\x23\x9b\x8f\x6c\xbe\xfd\x11\x49\xd5\x38\xa4\x54\x8f\x1e\x5d\x48\xa9\x22\xa5\x8a\x94\xea\xf4\xc3\x54\x48\xe6\x1d\x53\xd5\x38\xab\xf2\x79\xeb\xcb\xc5\x55\x04\x6c\x34\xaf\x13\x47\x90\x06\x41\x1a\xa3\x0e\xd2\x20\xac\x81\xb0\x06\xc2\x1a\x08\x6b\x20\xac\x61\xf0\xb0\x06\x78\x39\x08\x15\x84\x0a\x42\x05\xa1\x82\x50\x41\xa8\x20\xd4\xd2\x45\x00\xaa\x01\xd5\x80\x6a\x40\x35\xa0\x1a\x14\x88\x3b\x2e\x5f\x96\xca\x70\xeb\xe1\x2b\xc3\x3d\x4b\xe0\x83\x92\x70\x67\xa0\x36\x78\xda\x92\x70\x15\xe0\xeb\x98\x5a\x70\x53\x94\x6a\x41\xa3\xe5\x7c\xd2\x93\xd0\x68\x41\xa3\xa5\xe0\x66\x2c\xb6\xde\x46\x26\xce\x62\x77\xa1\x80\xf6\xf7\x3b\x6d\xc3\x78\xc0\x42\x6f\x36\xe8\xc7\x0c\x51\xda\xad\xb5\x74\xcc\x50\x06\xd9\x48\x34\x3a\x30\xc4\xf2\x9d\x6c\xad\x21\x46\x56\xf4\x19\x65\x45\x93\xfe\x45\xfa\x17\xe9\x5f\xa4\x7f\xb1\x87\x2c\x7b\x8b\xac\x4c\xa0\xa0\x98\x9b\xc5\x5b\xb6\x41\x8b\xb9\x59\x95\xf5\x51\x52\xc5\xad\x62\x83\xd5\xbc\x7c\xdb\x25\xb3\x0d\x2e\x95\x91\x15\x6c\xeb\x19\x35\xee\x57\x6a\x3b\x1e\x20\xda\xc2\x0e\x81\xa6\xa3\x83\xa6\x94\x68\x3b\x6e\xe5\x3b\xa2\x36\xdb\xf8\x51\x2f\x45\xd9\xf0\x37\x9e\x1f\xf8\xa5\x28\x5b\x97\xe3\x86\xa2\x6c\xb8\x69\xd8\x38\x1d\x36\xe3\x34\xab\xb1\x3d\x6b\xeb\xd4\x5f\x19\xb6\x4a\xd7\xc6\x11\xf5\xd7\xc6\x6f\xe2\x11\xcd\x87\x51\x77\x0e\x46\x9d\x45\xb6\x13\x4b\x7c\xf6\x0d\xd1\x7c\xc9\x95\x27\x6e\x91\x0c\x56\x63\xad\xaf\xe0\xb8\x30\xf0\xd4\xbd\xa9\xe7\xb6\x53\x4c\x6d\x00\x85\xae\xfa\x12\xb3\x55\x42\x5d\xb9\x2b\x7c\x08\xc2\x5b\xcf\xcb\x0c\x9e\xc8\x06\x94\x53\x7a\xc2\xb9\xe7\xa8\x25\x7d\x46\xaa\x9a\x05\xa9\x6a\x5d\x94\xa4\x3e\x1e\x23\xa1\x88\x37\x61\x45\xbc\x7a\x4c\x54\xa7\x86\x57\xe9\x96\xea\x00\x81\xa1\x81\x87\x06\x1e\x1a\x78\x68\xe0\x4d\x4d\x03\xaf\x7e\xe6\x2d\xd4\xbf\x3b\x71\xc0\x41\x6f\xaa\x77\xf5\x8f\x5f\xae\x78\x67\x73\x1b\x1c\xa3\x73\x57\xdf\x06\xe5\x1a\x77\x27\x6e\x03\x94\xed\x50\xb6\x43\xd9\x0e\x65\x3b\x94\xed\x4e\xa6\x6c\xd7\x60\xf6\x3f\x50\xb5\xab\xcc\x0b\x3b\xa3\x78\xc3\x66\x4f\x83\x32\xdf\xc8\x94\xf9\xea\x07\x51\x95\x2a\xdf\x89\x47\xd3\xa0\x5a\x7c\xf5\x2d\x53\xa1\xc3\x77\xea\x59\xc3\x56\xf5\xbd\xfa\x46\x2b\xf0\xe8\xb7\x76\x67\x25\x9f\xfe\x6a\xcd\x79\x86\x06\x3c\xcf\x20\x3b\x20\x9d\xfd\xd6\xb7\x18\xe9\xc0\x72\x2c\x60\x39\x40\x1c\x20\x0e\x10\x07\x88\x03\xc4\x01\xe2\x00\x71\x80\x38\x5d\xce\xb6\x40\x1c\x20\x0e\x10\x07\x88\x03\xc4\x01\xe2\x00\x71\x80\x38\x40\x1c\x20\x0e\x10\x07\x88\x03\xc4\xa9\x6d\xab\x67\x41\x1c\x7d\x23\xd7\x8e\xb7\x89\xd6\x2a\xec\x2d\x73\x27\x31\x84\xfc\x85\xfb\xcd\x5d\x6c\xa4\x97\xef\x3f\x99\x6d\x76\xde\x9a\xbb\xca\xa5\x11\xcc\x73\xe2\xad\x6f\x32\xb3\x74\xa6\x2f\x37\xdb\xfa\xb8\x76\x9c\x16\x19\x16\x12\xae\x1f\xad\x95\xdc\x59\x3f\xf6\xa1\xd1\xf7\x2a\x49\x9b\xc3\xfb\xf9\x79\xcf\x19\x0f\x37\xb2\x55\xac\x52\x4f\x15\xef\xe3\xcd\x10\x18\x29\x1b\xe8\x03\xb1\xa4\xc3\xf7\x08\xb2\x04\x59\x82\x2c\x41\x96\x20\x4b\x90\x25\xc8\x12\x64\xa9\xcb\xd9\x16\xb2\x04\x59\x82\x2c\x41\x96\x20\x4b\x90\x25\xc8\x12\x64\x09\xb2\x04\x59\x82\x2c\x41\x96\x20\x4b\xb5\x6d\x75\x1a\xb2\x54\x50\x20\xf5\x44\x80\x29\x4f\x95\xfc\x74\xfd\x4b\xd3\x87\x4e\x44\x97\x5e\x6d\x0d\x5f\x6d\xdc\x27\x46\x52\x6c\x3b\x6f\x2d\xfa\xd9\xce\x4e\x30\x77\xed\x0e\xd9\x14\x5c\x0a\x2e\x35\x52\x2e\x05\x93\x82\x49\xc1\xa4\x60\x52\x30\x29\x98\x14\x4c\x0a\x26\x05\x93\x82\x49\xc1\xa4\x60\x52\x30\x29\x98\x14\x4c\x0a\x26\x35\x76\x26\x95\xaf\x72\x5c\xe7\x78\x18\x53\xcd\x63\x58\x1b\xac\x0d\xd6\x56\x3c\x9a\x60\x6d\xa5\xef\x19\xac\xad\x73\xd6\x66\x59\xfa\x96\x35\x79\x5b\x24\x6c\x01\xc6\x46\x0c\xc6\x86\x4f\xd8\x82\x8a\x41\xc5\xa0\x62\x50\x31\xa8\x18\x54\x0c\x2a\x06\x15\xeb\x72\xb6\x85\x8a\x41\xc5\xa0\x62\x50\x31\xa8\x18\x54\x0c\x2a\x76\x76\x54\x0c\x7a\x04\x3d\x82\x1e\x15\x8f\x26\xe8\x51\xe9\x7b\x06\x3d\xea\x9e\x1e\xd9\x97\xa2\x35\x91\xdc\x2c\xd8\x13\xec\x69\xa4\xec\x09\xee\x04\x77\x82\x3b\xa5\xef\x1a\xdc\x09\xee\x04\x77\x82\x3b\xc1\x9d\xe0\x4e\x70\x27\xb8\x13\xdc\x09\xee\x04\x77\x82\x3b\xc1\x9d\x46\xc7\x9d\x4a\xb2\xb1\x48\xc3\x02\xa4\x01\xd2\x00\x69\x80\x34\x40\xda\x51\x20\x2d\xbe\xad\x68\x25\x9d\x14\xa3\xe9\xcf\xff\xbb\xb6\xac\xb8\x96\x35\x55\xb5\x7e\x4d\x9b\x68\x41\x61\x2d\x58\xd9\x34\x58\xd9\x40\x79\x5a\xa8\x17\xc2\xcb\xe0\x65\xf0\x32\x78\x19\xbc\x0c\x5e\x06\x2f\xb3\x91\x15\xc1\xcb\xe0\x65\xf0\x32\x78\x19\xbc\x0c\x5e\x06\x2f\x1b\x23\x2f\x4b\x9e\x5a\x63\xb3\xb8\x2b\xe5\x66\xfd\x45\x44\x4e\xb0\x52\xaf\x44\xb4\x71\x34\x19\xd0\xfb\x15\x25\x1f\x8d\xa7\x78\x15\x06\xba\x95\x8f\x47\x6a\xda\x31\x08\x57\x83\xab\xc1\xd5\xe0\x6a\x70\x35\xb8\x5a\x35\x57\xb3\x24\x6f\x6d\x22\x35\xc5\x0a\xc9\x1c\x54\x0e\x2a\x37\x52\x2a\x07\x91\x83\xc8\x41\xe4\xd2\x77\x0d\x22\x07\x91\x83\xc8\x41\xe4\x20\x72\x10\x39\x88\x1c\x44\x0e\x22\x07\x91\x83\xc8\x41\xe4\x20\x72\xa3\x23\x72\xf9\x0c\xb6\x49\x14\x12\x03\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\xd1\x12\xc4\x68\x4b\xce\x9e\x4d\xc9\x7a\x64\xe9\xc1\x03\x47\xcc\x03\x07\xcc\xd2\x03\x06\x02\x03\x81\x81\xc0\x40\x60\x20\x30\x10\x18\x08\x0c\xec\x72\xb6\x05\x06\x02\x03\x81\x81\xc0\x40\x60\x20\x30\x10\x18\x78\x76\x30\x10\x76\x06\x3b\x83\x9d\xc1\xce\x60\x67\xb0\x33\x5b\xd8\x99\x45\x79\x79\xd3\x49\xc8\x83\xbc\x41\xde\x46\x4a\xde\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x06\x75\x83\xba\x41\xdd\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x06\x75\x83\xba\x41\xdd\xc6\x47\xdd\xf6\x53\xf0\xc8\xbd\x83\x1f\xc2\x0f\xe1\x87\xf0\x43\xf8\x21\xfc\xb0\x09\x3f\xa4\x3e\x5e\x31\xf4\xdb\xab\x8a\xf7\x21\x08\x6f\x3d\x2f\x23\x81\x11\x14\x10\x0a\x38\x52\x0a\x48\x95\x3c\x80\x20\x40\x30\x77\x20\x40\x10\x20\x08\x10\x04\x08\x02\x04\x01\x82\x00\x41\x80\x20\x40\x10\x20\x08\x10\x04\x08\x02\x04\xc7\x07\x04\xa1\x49\xd0\x24\x68\x52\xf1\x68\x82\x26\x95\xbe\x67\xd0\xa4\xee\x68\x92\x2d\x18\x69\x78\x7e\x04\x38\x2a\xea\x50\xc0\x11\xe0\x88\x14\x32\x88\x11\xc4\xa8\x6c\xf8\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x68\x77\xba\xb5\x90\x96\x40\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\xed\x3e\x0d\xc4\x08\x62\x04\x31\x82\x18\x9d\x21\x31\x8a\x9c\x2f\x6a\xb1\xf1\xe2\x0d\x40\x42\x8a\x5a\x61\xa1\x53\xa3\x90\x26\xc8\x69\xa9\xd6\xc2\xf5\x1f\x82\xf0\x31\x1b\xdb\x52\x18\x6f\x76\x39\x1c\x5a\xaa\xf5\xa7\xac\x09\x6e\xef\x3e\xfe\x6b\xff\xf8\xa1\xe0\xcf\x68\x99\x4c\xd6\x88\x23\x27\x32\xdb\x37\x23\x77\xce\x45\xfe\x77\xeb\xde\xa4\x6f\x37\xe3\x7e\x99\x76\x36\x4b\x66\x8e\x6c\xfa\x26\xfd\x79\x73\x7b\xf7\xf1\xf7\xa2\xb3\x78\x9f\x8e\x7f\x9f\xd2\x86\xd4\x15\x05\x27\xf3\x5a\xfd\xdf\xb7\x9b\x67\xbc\x59\xab\xd0\x0d\x42\x77\xfd\xe4\x78\x32\xda\xed\xc0\x4b\xb3\x05\xed\x36\x9e\xc1\x5c\x53\x38\x81\xe7\x29\x27\x5d\x5e\xee\x92\x7b\x78\x1b\xdf\x43\xc5\xab\x61\x4e\xce\xbf\x1d\x6f\xb3\xeb\x94\x5e\xa3\x84\x87\x8a\x9a\x3e\x85\x89\x4e\x98\x89\x56\x18\x8e\x47\x70\xd1\x1a\x53\xb2\xda\x98\xdc\x9b\x67\xfe\x5b\x74\x77\xf7\xc1\xa2\xf4\xe6\x8a\xbe\x3b\xc9\xbc\xf9\x4e\xbf\x74\xbf\xe9\x17\x23\x6a\x38\x6b\x56\xbf\x5a\xf0\x5e\x78\x2f\xbc\x17\xde\x3b\x35\xde\xdb\x6c\x55\x29\x64\xbe\xd5\xae\xad\xe7\xac\x24\x45\x0e\xd3\xc4\xd3\xfd\x4a\xc7\x95\x3a\xf1\x88\x32\xe3\x60\xe7\xd9\xf2\x76\xc4\xbd\x12\xab\xb8\xb5\xa2\x75\xbc\x40\xdf\xfa\xc2\xf5\xcd\xcc\x12\x84\x62\xe3\x67\x93\xd3\x42\x2c\xc2\xa7\xdf\x37\xbe\x58\xb8\x61\x6c\x95\x7d\x53\xd9\x88\xd7\x9e\x42\x5f\x48\x3f\x79\xe5\xd3\xb1\x91\x34\xb0\x78\xd8\x84\xfa\x2d\x5b\x85\x81\x13\xdb\x0d\xc6\x99\x9a\x63\x71\x73\xf1\xa7\xfe\x45\xdd\x5b\x7a\xec\xbc\x11\x57\xe2\xd6\xf3\xde\x68\x3c\xb0\x88\x67\xe9\x8d\x1f\x77\xfc\x52\x45\xd9\x90\x4c\x2e\xa7\x16\x2d\x3a\xca\x3c\xcb\x30\xdd\xd4\x1b\xa4\x6f\xd6\x14\xe5\xa0\xbe\xb7\x16\xf9\x23\xef\x6e\x75\x7d\x11\x19\x2f\xa8\xb8\x57\x0f\xc6\x72\xce\x80\xce\xd6\x94\x48\x66\x2f\x3d\x74\x36\xca\x2c\x0e\xf7\x4a\xf8\x81\x7f\xe5\xab\xa5\xd4\x03\x34\x71\x98\xce\xc5\x1f\xd9\x82\x6d\xe0\x6e\xf6\x6a\x24\x5b\x16\xf7\xf1\x51\x2d\x5c\xb9\x56\xde\xd3\xd6\xa4\xdd\x2e\xb9\xae\xf7\x2a\x71\x88\xea\x46\x17\xcb\x50\x3a\xfa\xad\x71\x83\x45\x66\x10\x6c\x17\x6d\xbd\x5f\x48\x47\xe9\x26\x8a\x6f\x32\xdf\x5d\x32\x3e\x33\x7d\xa0\xe4\x47\x1e\xcc\x1c\x98\x5e\x62\x6e\xee\xf3\x51\x49\xbf\xf0\x1e\x5b\x74\xb3\xbe\xe7\x3b\x7d\xcb\x45\x4e\xe6\x1a\x37\xb3\x2d\xc3\xff\x98\xf8\x8c\x66\xed\x52\x1e\xa3\xd1\xdb\xf0\x27\x5a\x83\x68\x0d\xa2\x35\x88\xd6\x20\x5a\xe3\x64\xd1\x1a\x0d\xd7\x82\x83\x88\x8d\xfe\x96\xc5\x77\xb9\x04\xaf\x95\xa7\x64\xa4\xb2\x29\xe8\x2e\x0c\x56\x72\xa9\xad\xa3\xbb\xc0\x73\x9d\xa7\x1d\x3f\x58\x3a\xe8\xb6\x19\x62\xf1\xb0\xbb\x99\xff\x63\x2e\x3e\x99\xf9\xcc\x98\x2e\x2b\xe5\xc7\x2f\xcb\x76\x4d\x55\x22\x08\x57\x5f\xa4\x9f\xfa\xe5\xc2\x8d\xba\x7e\x90\x5e\xba\x57\xfe\x7c\x69\xbe\xfe\x7c\x29\x1e\x5c\x5f\x7a\xee\x7f\xd2\x85\xe4\x5e\x09\xb9\x58\xe8\xd1\x79\x6d\xf8\xee\x62\xbb\x0d\x33\x97\x9f\x45\xdb\x93\xcc\xfe\x74\x2e\xde\xbb\x7a\x72\xcc\xdd\x7a\x10\x1e\x3e\x9b\x9e\x7e\x8c\xab\xc8\x6c\x8f\xf5\x1e\x25\x58\x7f\x69\xd3\xa1\xe6\x09\xde\xa5\xcf\xde\x9b\x8b\xef\x70\x63\xa6\x1f\x3d\x7e\x61\xbf\x04\xdf\xc5\x52\x86\xf7\x72\xb9\xe3\x29\xcf\x36\x35\x2a\x7c\x08\xc2\xc7\xb8\x4f\x0a\xdb\xeb\xb7\xbd\x27\x2a\x6f\x2e\x6d\xf4\xa6\x16\xeb\xca\xb4\xad\x1b\x5b\x93\x8e\xbb\xd8\x6e\x85\xb5\xad\xa0\x9d\x13\x59\x1f\x47\x9a\x11\xeb\x6f\x53\x6b\x60\x9e\xeb\xcc\x74\x1d\x49\xb7\xda\x57\x99\x8f\x79\xf7\xc7\xe6\xe2\xd6\x71\xd4\x6a\xad\xd7\xa6\xfc\xce\x6e\x66\x9e\x61\x26\xae\x92\x01\xb8\x3b\x40\xa3\x1f\xc5\xec\x9f\xd2\xf9\xba\x0c\x83\x8d\xbf\x88\x8f\xd2\xbe\x5a\x7d\xd0\x5e\xc3\x19\x13\x32\xb1\x8f\x77\x2f\x92\x3e\xc1\x7d\x76\xa5\x1f\xc5\xec\x43\x10\xaa\xdc\x65\x85\x23\x23\x47\x2e\xe2\xa7\x4f\xda\xc7\xb8\xf3\xf5\xf5\x22\xb3\xf5\x3c\xb8\xe0\x43\x76\x8d\x36\x03\x72\xb5\x3f\xdc\x07\xf4\x14\x10\x5a\x35\x9e\xd0\xaa\x66\xa3\xab\x2a\xbc\xaa\xbf\xcd\xfc\x90\x81\x56\xcd\xda\xa9\x22\xd8\xaa\xbf\x05\xdf\xd6\xb0\xab\x66\x4d\x78\x18\x7a\xf5\xdc\xe5\xb4\x90\x30\x13\x09\x71\x24\xd1\xfb\xb4\x96\xeb\x4d\x53\x94\x37\xba\x00\x88\xdc\x69\x25\xd9\xdd\x66\xf1\xde\x1a\x56\x5d\x24\x79\x1f\xc4\x56\x14\x27\x77\x97\x45\x29\xec\x67\x79\x57\x25\x78\x77\xae\x31\x61\x5c\x6a\x61\xb2\xb6\xa7\xb6\x7f\x5a\xce\xb8\x69\x70\x46\x7c\x95\x7c\x68\x06\x01\x19\x04\x64\x4c\x27\x20\x83\x10\x06\x42\x18\x08\x61\x20\x84\x81\x10\x86\xc1\x43\x18\x60\xe3\xe0\x52\x70\x29\xb8\x14\x5c\x0a\x2e\x05\x97\x82\x4b\x4b\x17\x01\x08\x06\x04\x03\x82\x01\xc1\x80\x60\x20\x8c\x5b\x85\x4a\xe6\x39\xe7\xfd\xb7\x9b\xf9\x8e\xe3\x7a\xca\xa9\xa2\xf5\xa4\xa4\x2b\x09\xdc\x1e\xe9\x48\x0b\xf9\xdb\xb1\x48\xe2\x5c\xec\xf5\xdb\xe5\x2a\x88\x3a\x46\x41\xc6\x5c\x17\xb2\x31\xf5\x31\x27\x74\xca\x7d\xda\xe5\x3e\x56\x54\x74\x3f\xd9\xe4\xd0\x49\x36\x24\x19\x39\xf9\x6e\xb7\x36\x23\x47\x6f\xc7\x7f\x91\xbe\x5c\xaa\xd0\x38\x96\xe2\xbb\x8a\x77\xf5\x81\xe3\xea\x9d\x52\xe6\xc2\x91\xda\x13\x17\x84\x22\xde\x48\xaf\x9f\xb2\xad\xe3\xa3\xfc\x1a\xb7\xe2\xfa\x8b\x8a\x54\x6a\x0e\xe5\xf3\x4e\xd2\xfc\x14\x6d\x0e\x6a\x77\x4d\x10\x8a\x9b\xd7\x3f\xc4\xc7\x86\xd2\xd1\x7c\xc6\x0b\xfc\xa5\x31\x7e\xb4\x4b\x25\xde\xfb\x4a\xd7\x37\xb3\x93\x76\x59\x6c\x8f\xd5\x3e\xeb\x84\x1e\x89\xfb\x27\xa1\x57\x8d\x37\xd7\xd7\xcb\xc0\x93\xfe\x72\x1e\x84\xcb\xeb\xd5\xd7\xe5\xf5\xc6\x77\x9d\x60\xa1\xae\xff\xf6\x31\xba\x8b\xaf\xd2\xda\x07\x9a\x34\x4e\x97\xdd\x63\x95\xb5\x34\x5e\x23\xa6\xa9\x01\xf3\xba\x81\x01\xf3\xd6\x38\x74\x6c\xbb\xf1\xd7\xb5\x37\x6e\x22\x4d\x6d\xbb\xf3\xe9\xd9\x8c\xda\x28\x19\x85\xcd\x78\x21\x5a\x49\xa4\x5c\xff\x37\x9e\xf6\xfe\xd7\x93\x52\x4a\x73\x53\xec\x50\x1d\x65\x20\x53\x6c\x24\x32\x14\x18\x5e\xf9\x4e\xb6\xd6\xf0\x22\xf1\xf7\x8c\x12\x7f\xc9\x70\x22\xc3\x89\x0c\x27\x32\x9c\xd8\x33\x96\xbd\x45\x56\xe6\x08\x0c\xb3\xff\x22\xc5\xa1\x26\xc5\x61\x1c\xdb\xb0\xcc\x9d\xdd\x79\x62\x83\x06\xe0\xbb\xe6\x57\xd3\xcd\x54\x7c\xea\x29\xb3\x19\x72\x46\x89\xfa\xb7\x8e\x51\xba\x8f\x3f\x49\x67\x3d\x17\xe2\x7d\xfc\x7f\xfa\xf7\x47\xe9\x6a\x1f\x5f\x24\x1c\x6f\x13\xad\x55\xb8\x5d\x6a\x4c\x30\xa3\xf0\xdc\xaf\x4a\xcc\xb2\x9a\x9b\xb3\xd8\xa2\x4c\xad\xa0\xb9\xb8\xf3\xa4\xef\x27\x31\x06\xda\x4e\x91\x9e\x31\x8d\x6e\x7e\x68\x33\x77\xeb\x7b\x1c\xc8\x82\xc8\x1a\x2d\x33\xc0\xef\xd3\xe6\x8b\x9f\x54\xbc\x37\x2d\x16\xaf\x1a\xab\x28\x6d\x9d\x24\x8c\x67\x13\xa9\x50\xc7\xdf\x6c\x6d\xe9\xa7\x13\x37\x54\x7c\x33\xd3\x85\xc7\x76\x2f\x6d\xf8\xe6\x8a\x96\x85\x78\x86\x1d\xd7\x9a\xd0\x02\xe7\x6a\x2e\x93\x78\x4c\x2a\x6e\xc1\xbc\xc2\x2b\xb9\xfe\x52\x4c\x6e\xf5\xff\x3b\xdf\x54\x20\xc6\x13\x17\xa6\x18\x2f\xa1\xd6\xe1\x1f\xad\xd4\xda\xaf\xf4\xb9\x7f\xaf\x9e\xba\x1e\x55\xb8\x54\x8d\x8e\x8c\xd6\xa1\x5c\xab\xa5\xeb\x5c\x35\x3f\x27\xfe\xfc\x94\x1c\xa9\x27\xc9\x26\x46\x87\x8e\x17\xd4\xe9\x48\x26\x54\xa9\xa5\x01\xa2\x7f\xd5\x02\x67\xee\xa9\xb8\x7a\x85\xf1\x7e\xb7\x1b\x33\x24\x70\xf1\x4e\xdc\xc5\x7b\x3e\x6c\x7d\x2f\xb4\x3f\x7d\xb9\x4c\xfa\xc9\xca\x44\xe3\x26\x29\xcd\x2f\x4a\x66\xa2\x97\xda\xc1\x65\x72\x4e\xa5\xa7\xcf\xf4\x03\xff\xca\x9c\xad\x8f\xd0\x3e\xe6\x48\xbc\xf8\x29\x0a\xfc\x3b\x93\xd9\xfb\x4b\x3c\xe7\x25\x9f\x3f\xa5\x33\xe1\xf6\x8f\x2f\x6d\x82\xfe\xcd\xc7\xcd\x87\x20\x74\xb4\x13\x7e\x19\xe8\xce\x0f\xc4\xe7\xcb\x87\xf8\x6f\x9f\x2f\xc5\xed\x4e\x6b\xce\xc5\xc7\x75\xe2\x31\xd7\x1b\x81\xe4\x45\xbd\x92\x8e\xee\x00\x9d\x1b\xea\xb9\x4e\xe2\x03\xd4\xfb\x86\xe0\x7b\xd2\xb7\x26\x77\x72\xa5\x82\x95\xa7\xe6\xc2\xfc\xa6\x4e\x09\x4f\xc7\x94\x0e\xd7\x2e\xec\x88\xec\xe7\xdb\x34\x6f\xfc\x43\x6c\x1f\xcc\x17\x6c\x1f\x6c\xd8\x3e\xac\xf6\x42\x81\x47\xb1\x81\xd8\x74\xee\x54\x5a\x79\xd2\x69\x6b\xd6\x25\x67\x4f\xd8\xb0\x23\x60\x12\xa3\xee\xbc\x8c\x3a\x8b\x6c\x27\x96\xf8\xec\x1b\x02\x26\xcf\xcb\x36\xd9\x8c\xc4\xb5\x79\x21\x9a\x45\x1d\xea\xcc\xa9\xaa\xf2\x6c\x9d\xe3\xb2\x24\xaf\xdc\x5f\xb8\xdf\xdc\xc5\x46\x7a\xf9\x94\x3d\x99\x29\x49\xec\x3c\xfa\x3c\x17\x70\xf3\x26\x0b\xd5\x99\xe9\x2b\xcd\xb6\xba\x42\x3b\x42\x31\x99\x45\x24\x5c\x3f\x5a\x2b\xb9\xe3\xb1\xdc\xb7\x97\xbe\x57\xba\xc1\x7e\xde\xcb\x4f\x22\x91\xce\xd6\x78\x02\x9d\x07\xfa\xfe\x9b\xf2\xcf\x38\x9b\x4e\x77\xe1\x79\xa4\xd4\x21\xd6\x37\x61\xb1\xbe\x7a\xa6\x54\x27\xd4\xd7\xbe\x04\x77\x33\x5e\x86\x3c\x1f\xf2\x7c\xc8\xf3\x21\xcf\x37\x35\x79\xbe\xfa\x99\xb7\x50\x9a\xef\xc4\xd1\x09\xbd\x09\xf2\xd5\x3f\x7e\xb9\x18\x9f\xcd\x6d\x70\x8c\x04\x5f\x7d\x1b\x94\xcb\xef\x9d\xb8\x0d\x10\xdd\x43\x74\x0f\xd1\x3d\x44\xf7\x10\xdd\x3b\x99\xe8\x5e\x83\xd9\xff\x40\x70\xaf\x32\x77\xef\x8c\x82\x13\x9b\x3d\x0d\xa2\x81\x23\x13\x0d\xac\x1f\x44\x55\x82\x81\x27\x1e\x4d\x83\xca\x04\xd6\xb7\x4c\x85\x44\xe0\xa9\x67\x0d\x5b\x85\x01\xeb\x1b\xad\xc0\x8f\xdf\xda\x9d\x95\x7c\xfa\xeb\x59\x50\xa8\x40\x90\xe2\x44\x6c\x28\x0f\x84\xfc\x74\xb9\x2b\x2c\x14\xd3\x09\x18\x7a\xb5\x35\x71\xb5\x19\x9f\x98\x43\xb1\x95\xbc\xb5\xdd\x67\x3b\x7b\xbe\xdc\xb5\xdb\x63\x25\x90\x12\x48\x69\x44\x48\x09\x9c\x04\x4e\x02\x27\x81\x93\xc0\x49\xe0\x24\x70\x12\x38\x09\x9c\x04\x4e\x02\x27\x81\x93\xc0\x49\xe0\x24\x70\x12\x38\x69\x5c\x38\x09\xf9\x0e\x08\x19\x84\x0c\x42\x06\x21\x83\x90\x1d\x4f\xc8\xee\xd5\x5a\xde\x5c\xb7\x42\x61\x83\xa4\x43\xee\xf5\xf9\x52\xad\x77\x4d\x57\xd3\xbd\x15\x24\x6b\xa9\xd6\x79\x8e\xa5\x9f\xff\xf6\xee\xe3\xef\x45\xa7\x92\x08\x7a\x24\x62\xca\x35\xe4\xe4\x0a\x81\xe9\x91\x92\x3b\xf7\x22\xff\xfb\x4d\x5f\xb4\x8a\xf4\xc4\x13\xd6\x44\xc8\x29\x46\xef\x27\x24\x56\xbc\x29\x87\xf5\x11\xf4\x33\xbc\xcd\x2e\xd6\xb5\xc6\x27\xd4\x6a\xc2\xd4\xaa\x59\x9e\x7f\x1d\xb9\x3a\xa1\x76\xea\xa4\x6b\x77\x40\xe4\x20\x72\x10\x39\x88\xdc\xd4\x88\x5c\xb3\x55\xa5\x90\xca\xf5\x26\xec\x83\xfe\x52\xe3\x8e\x1a\x52\x7f\xa9\x37\x8c\x7a\x84\xe2\x51\x21\x46\xa4\x92\x14\x95\xa4\x2c\x1b\xfe\xc7\x10\xf4\x66\xed\x52\x4e\xd1\x7b\x1b\xfe\xf0\x74\x78\x3a\x3c\x1d\x9e\x0e\x4f\x3f\x19\x4f\x6f\xb8\x16\x1c\x30\x75\x0a\x2c\x52\x60\x91\x02\x8b\x14\x58\x1c\x45\x81\xc5\x23\x3d\x05\x44\x8a\x8c\x27\x52\xa4\xd9\xe8\xaa\x8a\x16\xe9\x6f\x33\x3f\x64\xdc\x48\xb3\x76\xaa\x88\x1d\xe9\x6f\xc1\xb7\x35\x8a\xa4\x59\x13\x1e\x46\x92\x50\x04\xc3\x86\xc0\x88\x09\xd6\x57\xdd\x8f\x87\xc8\x9d\x5b\x59\x64\x75\x6b\x5d\x59\x98\x87\xbb\xf7\x50\x3d\xd4\x5c\x35\xce\xb5\x30\x59\xe5\xd3\x5d\x40\xa1\x46\x40\x45\xac\x46\x7c\x95\x83\x48\x0d\xe2\x33\x88\xcf\x98\x4e\x7c\x06\x11\x0d\x44\x34\x10\xd1\x40\x44\x03\x11\x0d\x83\x47\x34\x80\xca\xa1\xa7\xd0\x53\xe8\x29\xf4\x14\x7a\x0a\x3d\x85\x9e\x96\x2e\x02\x00\x0d\x80\x06\x40\x03\xa0\x01\xd0\x40\xb5\xb4\x8a\x9c\xec\x96\xe8\xd4\xce\xeb\xf9\x61\xe1\xc2\xf3\xa6\x27\x96\x16\xc2\xab\x25\x26\x2d\xe4\x4b\xc7\xa2\xff\x71\xb1\xd7\x79\x97\xab\x20\xea\x18\x0f\x19\xeb\x5d\xc8\xc6\x24\xc8\x9c\xd0\x3d\x0b\xb2\xb9\x68\x7a\xc1\x84\x41\xe5\xf4\xf3\xc9\xdc\xa1\x72\x3a\x95\xd3\x0b\x6e\x66\x3c\xd6\xcd\x88\xca\xa7\x3f\xeb\xee\x5f\xd7\xde\xbd\x89\x4d\xb5\xf2\xf6\x27\x6a\x56\x6a\x93\x65\x3c\x66\xe5\x85\x68\xaf\xb6\x52\x50\xf7\xe3\x84\xa2\x2b\xcd\x4d\xb6\x12\xa1\x95\x81\x4c\xb6\x91\x28\x5a\x60\x9b\xe5\x3b\xd9\x5a\xdb\x8c\x1c\xe2\x33\xca\x21\x26\x59\x8a\x64\x29\x92\xa5\x48\x96\x62\x5b\x59\xf6\x16\x59\x99\x6e\x30\xcc\xc6\x8c\x6c\x89\xe4\xb8\xca\x6c\x89\x11\x6d\xcd\x32\x2f\x78\xe7\x39\x12\x1a\xa3\xef\x1a\x62\x4d\xf7\x56\xf1\xa9\x27\x4f\x8c\xc8\xd9\x28\xea\xdf\x3a\xdc\xe9\x3e\xfe\x24\x9d\xf5\x5c\x88\xf7\xf1\xff\xe9\xdf\x1f\xa5\xab\xbd\x82\x91\x70\xbc\x4d\xb4\x56\xe1\x76\xe5\x31\x71\x91\xc2\x73\xbf\x2a\x31\xfb\x55\x3e\xaa\x68\x25\x1d\x35\x8b\x0d\xcc\xd4\x28\x9a\x8b\x3b\x4f\xfa\x7e\x12\xae\xa0\xcd\x16\xe9\x19\x4b\xe9\xe6\x87\x36\x53\xb9\xbe\xc7\x81\x0c\x8a\xac\xd1\x32\x7b\xfc\x3e\x6d\xbe\xf8\x49\xc5\x7b\xd3\x62\xf1\x22\xb2\x8a\xd2\xd6\x49\x22\x82\x36\x91\x0a\x75\x28\xcf\xd6\xb4\x7e\x3a\x71\x43\xc5\x37\x33\x5d\x0e\x6d\xf7\x4a\x87\x0f\x2f\x39\xae\x64\xa9\x88\x27\xdc\x11\xae\x13\x2d\xc8\x30\xc5\x2e\x0e\x1f\x73\x30\xd8\xad\x03\x4b\x5a\x49\xc5\x5f\xe9\x73\xff\x5e\x3d\x93\x3d\xaa\x70\xa9\x1a\x1d\x19\xad\x43\xb9\x56\x4b\xd7\xb9\x6a\x7e\x4e\xfc\xf9\x29\x39\x52\xcf\x99\x4d\x0c\x11\x1d\x89\xa8\x13\x9d\x4c\x10\x54\x4b\xa3\x64\xb5\x5f\x4d\x79\x8a\x88\xbe\xc2\xbe\xbf\xdb\x0d\x49\x12\x78\x81\x27\xee\x05\x3e\x1f\x42\xbf\x97\x39\x90\xbe\x5c\x26\xbb\x65\x65\x82\x7d\x93\x8c\xe9\x17\x25\xd3\xd1\x4b\xed\x03\x33\x29\xad\xd2\xd3\x67\xfa\x81\x7f\x65\xce\xd6\x47\x68\x37\x74\x24\x5e\xfc\x14\x05\xfe\x9d\x49\x1c\xfe\x25\x9e\xf8\x92\xcf\x9f\xd2\xe9\x70\xfb\xc7\x97\x36\x85\x0e\x34\x1f\x37\x1f\x82\xd0\xd1\x7e\xfa\x65\xa0\x3b\x3f\x10\x9f\x2f\x1f\xe2\xbf\x7d\xbe\x14\xb7\x3b\xad\x39\x17\x1f\xd7\x89\x53\x5d\x6f\x0e\x92\x17\xf5\x4a\x3a\xba\x03\x74\xea\xa9\xe7\x3a\x89\x9b\x50\xef\x25\x82\xef\x49\xdf\x9a\xd4\xcc\x95\x0a\x56\x9e\x9a\x0b\xf3\x9b\x3a\xe3\x3c\x1d\x53\x3a\x1a\xbc\xb0\x23\xb2\x9f\x6f\xd3\xbc\xf1\x0f\xb1\xa5\x30\x5f\xb0\xa5\xd8\x7d\xa8\xa1\xb7\x14\x2b\x4b\x0b\xe5\xd7\x6f\x2a\x36\x9d\x3b\x9f\x56\x9e\x74\xda\x9a\x7a\xc9\xd9\x53\x37\xf6\x88\xc7\xc4\xda\x3b\x43\x6b\xcf\x22\xa3\x8a\xb5\x3f\xfb\x86\x78\xcc\x46\x77\x3f\x55\xcb\x65\x33\x26\x67\xe8\x85\x38\x22\x9e\x51\xa7\x72\x55\xd5\x90\xeb\x9c\xbc\x25\x89\xee\xfe\xc2\xfd\xe6\x2e\x36\xd2\xcb\xe7\x10\xca\x4c\xda\x62\xa7\x11\xe6\xb9\x28\x9e\x37\x59\xfc\xcf\x4c\x5f\x69\xb6\x15\x3a\xda\x51\xae\xc9\x8c\x26\xe1\xfa\xd1\x5a\xc9\x1d\x47\xe7\xbe\x49\xf5\xbd\xde\x7b\xf6\xf3\x5e\xae\x14\xe9\x7d\xb6\x46\x2a\xe8\xec\xd4\xf7\xdf\x94\x7f\xee\xe9\x7d\xba\x1f\xcf\x28\xc7\x0f\x31\xc1\x09\x8b\x09\xd6\x93\xa9\x3a\x21\xc1\xf6\x05\x90\x9b\x51\x37\xe4\x03\x91\x0f\x44\x3e\x10\xf9\xc0\xa9\xc9\x07\xd6\xcf\xbc\x85\xd2\x81\x27\x8e\x71\xe8\x4d\x30\xb0\xfe\xf1\xcb\xc5\x02\x6d\x6e\x83\x63\x24\x02\xeb\xdb\xa0\x5c\x1e\xf0\xc4\x6d\x80\x28\x20\xa2\x80\x88\x02\x22\x0a\x88\x28\xe0\xc9\x44\x01\x1b\xcc\xfe\x07\x82\x80\x95\xf9\x81\x67\x14\xe2\xd8\xec\x69\x10\x35\x1c\x99\xa8\x61\xfd\x20\xaa\x12\x34\x3c\xf1\x68\x1a\x54\xc6\xb0\xbe\x65\x2a\x24\x0c\x4f\x3d\x6b\xd8\x2a\x5c\x58\xdf\x68\x05\x1e\xfd\xd6\xee\xac\xe4\xd3\x5f\xcf\x07\x45\x05\xf2\x17\x27\xe2\x45\x79\x48\xe4\xa7\x6b\x5e\x61\x49\x9b\x4e\x60\xd1\xab\xad\x9d\xab\x6d\xf9\xc4\x26\x8a\x4d\xe5\xad\x01\x3f\xdb\xd9\xf8\xe5\xae\xfd\x4c\xd4\x04\x66\x02\x33\x8d\x0d\x33\x81\x98\x40\x4c\x20\x26\x10\x13\x88\x09\xc4\x04\x62\x02\x31\x81\x98\x40\x4c\x20\x26\x10\x13\x88\x09\xc4\x04\x62\x02\x31\x8d\x10\x31\x21\x0c\x02\x35\x83\x9a\x41\xcd\xa0\x66\x50\xb3\x1a\x6a\x66\x5e\xd0\x14\x99\xb5\xc2\x61\x83\xe4\x4f\xee\x75\xf4\x52\x4b\xdc\x3e\x04\xe1\x63\x36\xb0\xa5\x30\xee\xf9\x72\xa0\xb5\x54\xeb\x4f\xe6\xf9\x6f\xef\x3e\xfe\x6b\xff\x60\xd2\x45\x8f\xc4\x4a\x59\x23\x8e\x1d\x2a\x99\x31\x91\x3b\xe1\x22\xff\xa3\x95\x2f\xd0\xb7\x9b\x71\xbf\x43\x3b\x7b\x3e\x33\x2f\x36\x7a\x81\xfe\xbc\xb9\xbd\xfb\xf8\x7b\xd1\x29\xbc\x46\xc7\xbf\x46\x69\x43\x4e\xa2\xd0\x9f\x19\x20\xff\xf7\xed\xa6\xed\x0b\xe5\x44\xee\x22\x74\xbf\x19\xd8\xd9\x47\xb1\x92\x9c\x8a\x7b\xf0\x20\xde\x7e\xfa\xf8\x4e\xff\x7c\xc5\x8b\x90\x14\x2d\x49\xdf\x85\xb7\xd9\x05\x0a\x4f\x6e\x29\xac\x0b\xc1\x9d\x30\xc1\x6d\xa6\x97\x51\x47\x71\x4f\x28\x58\x3c\xe9\xfa\x39\xd0\x69\xe8\x34\x74\x1a\x3a\x3d\x35\x3a\xdd\x6c\x55\x29\x24\xd4\xbd\x09\x64\xa1\x63\xd6\xb8\xa3\x86\xd4\x31\xeb\x2d\xa4\xe0\x08\xe5\xb0\x42\xa4\x4e\x35\x37\xaa\xb9\x59\x36\xfc\x8f\x89\x26\x69\xd6\x2e\xe5\x11\x25\xbd\x0d\x7f\x62\x4b\x88\x2d\x21\xb6\x84\xd8\x12\x62\x4b\x4e\x16\x5b\xd2\x70\x2d\x38\x88\x2f\xa1\xc8\x29\x45\x4e\x29\x72\x4a\x91\xd3\x51\x14\x39\x3d\xd2\x53\x40\xd4\xd4\x78\xa2\xa6\x9a\x8d\xae\xaa\xc8\xa9\xfe\x36\xf3\x43\xc6\x50\x35\x6b\xa7\x8a\x38\xaa\xfe\x16\x7c\x5b\x23\xaa\x9a\x35\xe1\x61\x54\x15\x55\x66\x6c\x88\x79\x98\x48\x8d\xe3\xa2\x50\x87\xdc\x39\x95\xb5\x8d\xb7\x56\x55\x27\x09\xe9\x3b\x51\x14\xc5\xd9\xe8\x45\xb1\x09\xfb\x99\xe8\xbd\x56\x36\x36\x8e\xb4\x30\x59\xd1\x53\x8b\x3f\x95\xca\x68\x12\x87\x11\x5f\x61\x1b\x85\x41\xec\x05\xb1\x17\x93\x88\xbd\x20\x5a\x81\x68\x05\xa2\x15\x88\x56\x20\x5a\x61\xf0\x68\x05\x30\x38\x64\x14\x32\x0a\x19\x85\x8c\x42\x46\x21\xa3\x90\xd1\xd2\x45\x00\x58\x01\xac\x00\x56\x00\x2b\x80\x15\xe8\xf4\x56\x51\x91\x79\xea\xaa\xff\x76\x33\xcf\x3c\xd6\x93\x4d\xfc\xac\xa7\x21\x9d\x55\x7d\xec\x81\x80\xb4\x90\xe1\x1d\x8b\x8e\xcd\xc5\x5e\x87\x5d\xae\x82\xa8\x63\xdc\x63\xac\x73\x21\x1b\x91\x1d\x73\x70\x37\x6c\xa7\x5d\x2a\x63\x85\xf6\x51\xf7\x13\x40\x27\x59\x8d\x64\xd6\xe4\xfb\xdb\xda\xcc\x9a\x7c\x11\x7c\xe3\x35\xd2\xfa\x5d\x32\x8a\x02\xc7\xd5\xdb\xa0\xcc\x3f\x23\xb5\x9b\x2d\x08\x45\xbc\x4b\x5e\x3f\x65\xfb\xc2\x47\xf9\x35\x6e\xc5\xf5\x17\x15\xa9\xd4\xd6\xc9\xe7\x8f\xa4\x79\x26\xda\xd6\xd3\xbe\x98\x20\x14\x37\xaf\x7f\xc8\x55\xfd\xd7\x0e\x66\x63\xd9\x68\x7f\x49\xbc\xb1\x95\xae\x6f\xe6\x22\xed\x8f\xd8\x1e\xab\x1d\xd2\x09\x1a\x12\xf7\x4f\x42\xaf\x0c\x6f\xae\xaf\x97\x81\x27\xfd\xe5\x3c\x08\x97\xd7\xab\xaf\xcb\xeb\x8d\xef\x3a\xc1\x42\x5d\xff\xed\x63\x74\x17\x5f\xa5\xb5\x83\x33\x69\x9c\x2e\xbb\xc7\x2a\x53\x68\x84\x16\x4a\x53\xeb\xe4\x75\x03\xeb\xe4\xad\x71\xd3\x58\x73\xc7\xaf\x6b\xef\xd8\xc4\x88\x5a\x73\xcb\x13\x33\x01\xb5\xa9\x61\xb7\x09\x78\x21\x8e\x12\x2e\x29\xa8\x36\x73\x42\xfd\x92\x66\x16\xd5\xbe\x66\x49\xff\x16\xd5\x48\xc4\x21\x30\xa3\xf2\x9d\x6c\xad\x19\x45\x3a\xee\x19\xa5\xe3\x92\x77\x44\xde\x11\x79\x47\xe4\x1d\xb1\x03\x2c\x7b\x8b\x2c\xda\x01\xb2\x9f\xb2\x21\xc1\xc0\xf2\x1d\x55\xe6\x68\xee\x3c\xad\x40\x93\xe8\x5d\xe3\xaa\xc9\xfe\x28\x3e\xed\x24\xb9\x04\x39\x3b\x43\xfd\x5b\x47\x08\xdd\xc7\x9f\xa4\xb3\x9e\x0b\xf1\x3e\xfe\x3f\xfd\xfb\xa3\x74\xb5\x13\x2e\x12\x8e\xb7\x89\xd6\x2a\xdc\xae\x1e\x26\x94\x50\x78\xee\x57\x25\x66\xbf\xca\x47\x15\xad\xa4\xa3\x66\xb1\x91\x98\x1a\x36\x73\x71\xe7\x49\xdf\x4f\x08\xbf\x36\x3d\xa4\x67\xac\x9d\x9b\x1f\xda\x4c\xc7\xfa\x1e\x07\x32\x0a\xb2\x46\xcb\x6c\xea\xfb\xb4\xf9\xe2\x27\x15\xef\x4d\x8b\xc5\x0b\xc1\x2a\x4a\x5b\x27\x09\xa2\xd9\x44\x2a\xd4\xd1\x2f\x5b\xf3\xf8\xe9\xc4\x0d\x15\xdf\xcc\x74\xd1\xed\x84\x57\xab\x89\x4d\xfd\xf1\x64\x3a\x92\x79\xbf\x05\x4c\xcd\xd7\x39\x29\xf9\x79\x6a\x9c\xf4\xc1\x86\x75\x9c\x45\x2b\xa1\xf3\x2b\x7d\xee\xdf\xab\x67\xa9\x47\x15\x2e\x55\xa3\x23\xa3\x75\x28\xd7\x6a\xe9\x3a\x57\xcd\xcf\x89\x3f\x3f\x25\x47\xea\xf9\xb0\x89\x51\xa1\x03\xf3\x74\xde\x8f\x89\x09\x6a\x61\x60\xe8\x5f\x9c\x22\xd1\xae\xf0\xce\xde\xed\x46\xe4\x08\xbc\xb2\x13\xf7\xca\x9e\x0f\xdc\xde\x0b\x9c\x4f\x5f\x2e\x93\xdc\xb1\x32\xb1\xae\x49\xc2\xf0\x8b\x92\xe9\xe7\xa5\xf6\x49\x99\x8c\x4e\xe9\xe9\x33\xfd\xc0\xbf\x32\x67\xeb\x23\xb4\x5b\x38\x12\x2f\x7e\x8a\x02\xff\xce\xe4\xcd\xfe\x12\x4f\x74\xc9\xe7\x4f\xe9\xf4\xb7\xfd\xe3\x4b\x9b\xa8\x7b\xf3\x71\xf3\x21\x08\x1d\xed\x37\x5f\x06\xba\xf3\x03\xf1\xf9\xf2\x21\xfe\xdb\xe7\x4b\x71\xbb\xd3\x9a\x73\xf1\x71\x9d\x38\xb9\xb5\xa1\x9f\xbc\xa8\x57\xd2\xd1\x1d\xa0\x33\x2f\x3d\xd7\x49\xdc\x76\x7a\x5f\x10\x7c\x4f\xfa\xd6\x64\x26\xae\x54\xb0\xf2\xd4\x5c\x98\xdf\xd4\x09\xd7\xe9\x98\xd2\xc1\xd0\x85\x1d\x91\xfd\x7c\x9b\xe6\x8d\x7f\x88\xed\x81\xf9\x82\xed\xc1\x80\xa4\x7d\x2f\xbc\xd6\xee\x0d\xc2\xa6\x73\xc7\xd0\xca\x93\x4e\x1b\xd3\x2d\x39\x73\x8a\xc6\x1b\xe1\x88\x58\x6c\x67\x62\xb1\x59\x64\x18\xb1\x7e\x67\xdf\x10\x8e\x38\x69\x8b\x63\x63\xbb\x43\xf2\x42\x34\x0b\xed\xf3\x83\x85\x1a\xac\x22\xd9\xaf\xc1\x42\x1d\x11\xdb\x97\xaf\x47\xb6\x7f\x2a\x8a\x58\x28\x62\x8d\x4e\x11\x6b\xd2\x01\xa7\xe8\x7b\xa1\xef\x85\xbe\x17\xfa\x5e\xe8\x7b\x15\x2d\x25\x54\x23\xc3\x49\x81\x0c\x1b\xe9\x0f\xe7\x9c\xfe\x80\xe6\x1e\x9a\x7b\x68\xee\xa1\xb9\x87\xe6\x1e\x9a\x7b\x68\xee\x91\x15\x48\x56\x20\x59\x81\x64\x05\xee\x8f\x48\xaa\x91\x21\xf0\x79\xf4\xe8\x42\xe0\x13\x81\x4f\x04\x3e\xa7\x1f\x46\x42\x35\x32\xeb\xaa\x91\xed\x45\x26\xd8\x5d\x8b\xac\x26\x02\x63\xbf\x12\x19\x51\x17\x44\x5d\x8c\x3e\xea\x82\x38\x05\xe2\x14\x88\x53\x20\x4e\x81\x38\x85\xc1\xe3\x14\x00\xe0\x30\x51\x98\x28\x4c\x14\x26\x0a\x13\x85\x89\xc2\x44\x4b\x17\x01\x30\x05\x98\x02\x4c\x01\xa6\x00\x53\x50\x87\xec\x88\x24\xd5\x5f\x83\x85\xa2\x0a\x59\xf1\x61\x56\x91\x0f\x6a\x90\x75\x55\x83\xac\x86\xe8\x1c\x56\x20\x6b\xcb\x74\xac\x16\xfc\xd0\x0f\xd5\xec\xa5\x27\x93\x66\x02\x99\x34\xc8\x7d\x20\xf7\x51\x70\x33\x36\xdb\x25\x63\x12\xfb\x38\xee\x7e\x2d\x50\xca\x3f\xe6\x86\x27\x66\xf4\xf5\x5c\x77\xec\x78\xa3\xef\x42\x1c\x21\x4d\x32\x40\xcd\xb1\x23\x55\x49\xfa\xb6\xa0\x46\x22\xff\x80\xe1\x94\xef\x64\x6b\x0d\x27\x12\x6e\xcf\x28\xe1\x96\xcc\x22\x32\x8b\xc8\x2c\x22\xb3\x88\x3d\x5f\xd9\x5b\x64\xcd\x9e\x8f\x3d\xd4\xf0\xe9\x03\x56\xef\xa2\x32\x77\x72\x4f\x95\xc6\x6a\x76\x45\xfb\x75\xc6\x3a\xca\x14\xa0\xca\x58\xd6\xf1\xcd\x4d\x01\xaa\x8c\x25\xff\x58\xa3\x98\xf2\x0f\xce\xb1\xa2\xc6\x58\xbf\xa8\x74\xaf\xc2\xd8\xe1\x8f\x53\x5f\x8c\xfa\x62\xc3\xd4\x17\xab\x31\x2b\x0e\xaa\x8b\x4d\x83\x56\x53\x5b\x0c\x0f\xec\xf9\xa1\x6b\x6a\x8b\x75\x39\x6e\xa8\x2d\xc6\xa6\x80\x4d\x41\x41\x3b\x8e\xb8\xb2\xd8\x73\xb6\x05\xbd\xd5\x15\xab\xf5\x04\x1d\x54\x15\x9b\x86\xd1\x46\x88\x21\x76\xda\x59\xd8\x69\x16\x99\x43\xac\xda\xd9\x37\x84\x18\x66\x97\x9e\x9a\x95\xd1\x6b\x35\xb1\x13\x05\xec\x25\x7f\x71\x3c\x19\x45\x03\x55\x14\x4b\x4c\x8e\xb7\xf1\x2d\x1c\x11\xc0\x97\x5d\xa3\xec\x7c\x54\xae\x50\xb9\x1a\x9d\xca\xd5\xa4\x83\x4b\xd1\xec\x42\xb3\x0b\xcd\x2e\x34\xbb\xd0\xec\x2a\x5a\x4a\xa8\x2d\x86\xbb\x02\x69\x35\x52\x1d\xce\x39\xd5\x01\x1d\x3d\x74\xf4\xd0\xd1\x43\x47\x0f\x1d\x3d\x74\xf4\xd0\xd1\x23\x03\x90\x0c\x40\x32\x00\xc9\x00\xdc\x1f\x91\xd4\x16\x43\xb4\xf3\xe8\xd1\x85\x68\x27\xa2\x9d\x88\x76\x4e\x3f\xa0\x84\xda\x62\x76\xd5\x16\x2b\x09\x4f\xb0\xb8\xc0\x58\xc3\x80\x8c\x9d\x2a\x63\x04\x61\x10\x84\x31\x99\x20\x0c\xc2\x16\x08\x5b\x20\x6c\x81\xb0\x05\xc2\x16\x06\x0f\x5b\x80\x87\x83\x48\x41\xa4\x20\x52\x10\x29\x88\x14\x44\x0a\x22\x2d\x5d\x04\xa0\x16\x50\x0b\xa8\x05\xd4\x02\x6a\x41\xa9\xb1\xa6\xf9\xab\x79\xa7\x35\xf5\xc6\x8a\x0f\xb3\x8f\x86\x50\x74\xac\x93\xa2\x63\x0d\x29\xcf\x5e\xe5\xb1\xe7\x72\x1e\x7b\xb5\x41\x76\x9e\xac\xd9\x44\x40\xc6\xcd\x04\x32\x6e\x10\x08\x41\x20\xa4\xe0\x66\xac\x37\x58\x46\xa3\x12\xd2\xee\xa6\x87\x56\xd2\x6f\x73\xd7\x13\xb3\x0b\xfb\x2c\x49\xd6\xde\x2e\xbc\x10\x47\xcb\x9c\xf4\x5d\x9d\xac\x9d\xc2\xc9\x30\xa6\xd6\x48\xa4\x24\x30\xae\xf2\x9d\x6c\xad\x71\x45\xf2\xee\x19\x25\xef\x92\xa5\x44\x96\x12\x59\x4a\x64\x29\xb1\x2f\x2c\x7b\x8b\xec\xda\x17\xb2\xc5\x1a\x7c\x8b\xd5\x6f\xc5\x32\x1b\x53\x11\x0a\xca\x96\x35\xdc\x2e\xed\xd4\x2e\xeb\x38\xff\x80\x02\x66\xd9\x10\x68\x6e\x23\x50\xc0\x2c\xf9\xc7\xe2\xc5\x32\x60\x6b\x15\xb3\x61\x00\x6c\xbe\x94\x59\xf9\x1d\x50\xcf\x8c\x7a\x66\x03\xd4\x33\x6b\x68\x6f\xec\x16\x35\x9b\x16\x08\xa7\xb2\x19\x3e\xdb\xf3\x03\xe2\x54\x36\xeb\x72\xdc\x50\xd9\x8c\xdd\x02\xbb\x85\xa9\x95\x37\xeb\x62\xbf\xd0\x4f\x8d\xb3\xc6\x6e\xa3\xdd\x42\x67\xd3\x32\xe4\x88\x68\xc4\x80\x3b\x1f\x03\xce\x22\x3b\x89\xe5\x3c\xfb\x86\x88\xc6\x82\x9b\x9e\x9a\x0d\xd2\x5f\xf1\xb3\x13\x87\x06\x7e\x0b\xbc\xcd\xa3\x92\xeb\xb5\x74\xbe\x3c\xea\x08\x8b\x21\x8a\xa0\xfd\xa9\xef\xe2\x36\xbb\x8b\xe6\x61\x82\xdb\x42\x68\x55\xd7\x40\x87\x0b\x1d\xae\xd1\xe9\x70\x4d\x3a\x82\x15\x55\x31\x54\xc5\x50\x15\x43\x55\x0c\x55\xb1\xa2\xa5\x84\x62\x68\x38\x32\x10\x7f\x23\x9f\xe2\x9c\xf3\x29\x50\xfa\x43\xe9\x0f\xa5\x3f\x94\xfe\x50\xfa\x43\xe9\x0f\xa5\x3f\xd2\x0c\x49\x33\x24\xcd\x90\x34\xc3\xfd\x11\x49\x31\x34\x64\x45\x8f\x1e\x5d\xc8\x8a\x22\x2b\x8a\xac\xe8\xf4\x43\x4d\x28\x86\x66\x57\x31\xb4\x8a\x10\x05\x8b\x0b\xa2\x1d\x11\x9c\xb1\x53\x14\x8d\x80\x0c\x02\x32\x26\x15\x90\x41\x08\x03\x21\x0c\x84\x30\x10\xc2\x40\x08\xc3\xe0\x21\x0c\xb0\x71\x70\x29\xb8\x14\x5c\x0a\x2e\x05\x97\x82\x4b\xc1\xa5\xa5\x8b\x00\x04\x03\x82\x01\xc1\x80\x60\x40\x30\x28\x8c\xd6\x34\xc1\x75\xdf\x71\x4d\x71\xb4\xe2\xc3\xec\xa4\x23\x14\x48\xeb\xa4\x40\xda\x11\xd4\x67\xaf\x48\x5a\x17\xdc\xc7\x5e\x59\x91\x83\xa7\x6b\x36\x31\x90\x91\x33\x81\x8c\x1c\xa4\x45\x90\x16\x29\xb8\x99\x51\x18\x31\xa3\x91\x17\x69\x7f\xe3\x43\x2b\xfa\xb7\xbd\xf3\x89\xd9\x8c\x7d\x16\x4e\x7b\x9e\xcd\x78\x21\xda\x28\xa4\xf4\x5d\x3f\xad\xbd\x38\xca\x70\x96\xd8\x48\x54\x28\xb0\xbb\xf2\x9d\x6c\xad\xdd\x45\xde\xef\x19\xe5\xfd\x92\xe0\x44\x82\x13\x09\x4e\x24\x38\xb1\x65\x2c\x7b\x8b\xec\xdb\x32\xb2\xf3\xda\x79\x9e\xf3\xa8\xa7\x66\x6b\x36\x43\x41\x4d\xb5\x23\xb6\x50\x3b\x75\xd5\x4e\x90\xc2\x40\x6d\xb5\x6c\x28\x34\xb7\x1b\xa8\xad\x96\xfc\x63\x41\x63\x59\xb0\xb9\xbe\xda\x70\x0c\x37\x5f\x63\xad\xfa\x2e\xa8\xb3\x46\x9d\xb5\x01\xea\xac\x1d\x61\x83\xec\xd6\x5a\x9b\x1e\x4f\xa7\xde\x1a\xbe\xdd\xf3\x63\xea\xd4\x5b\xeb\x72\xdc\x50\x6f\x8d\x1d\x04\x3b\x88\x29\xd6\x5c\xeb\x6a\x0f\xd1\x4f\xdd\xb5\xa3\x5c\x4b\xbb\xb5\xd7\xa6\x67\xd8\x11\x28\x89\x51\x77\x5e\x46\x9d\x45\xb6\x13\x4b\x7c\xf6\x0d\x81\x92\x67\x64\x9b\xf4\x57\x8b\x6d\xc0\x68\xc3\xeb\xc8\x08\xb6\xe5\x82\x0e\x4f\x03\xce\xcc\xef\xa4\xab\x57\xf7\x08\x2d\x11\x9e\x63\x8a\xe2\x4d\x87\x63\x14\xf4\x07\x1c\x03\x8e\x51\x78\xe4\x70\x1c\xa3\x83\x25\xa1\x9a\x68\x14\xac\x09\xa3\xdc\xfe\xc2\x35\xd8\x02\x9f\xdf\x16\x18\xae\xd1\xe5\xb8\x81\x6b\xe0\xf4\x60\x47\x01\xd7\xd8\x6b\xb4\x1e\xb8\x46\x27\x3b\xff\x6a\xc2\x31\x15\x43\x0f\xce\x81\x91\x77\x5e\x46\x9e\x45\xb6\x14\x4b\x7e\xf6\x0d\x9c\xe3\x8c\x6c\x95\x49\x71\x0e\xad\x09\x77\xed\x44\xee\x22\x74\xbf\x99\xd5\xff\x74\x60\x23\x11\xcb\xf5\x17\xee\x37\x77\xb1\x91\x5e\x5e\x87\x50\x66\xf2\xd8\x6f\x3f\x7d\x7c\xa7\x6f\x66\x9e\x4b\x21\x7e\x93\x25\x1f\xcf\xf4\x55\x66\xdb\x42\x09\x3b\xca\xf7\x99\x21\x24\x5c\x3f\x5a\x2b\xb9\xe3\xc5\xdc\x37\x93\xbe\xef\x78\xc3\xb2\xdf\xfd\x79\x4f\x6c\x0d\x49\x40\x5b\xab\x27\x69\x45\xcb\xf7\xdf\xce\x77\x32\xd2\xfd\xd7\xa7\x38\x60\xf6\x92\xf4\x47\x62\x28\x36\x34\xe1\x62\x43\xf5\x58\xa9\xae\xd0\x50\xa5\xdf\xaa\x03\x64\x46\x79\x21\xca\x0b\x51\x5e\x88\xf2\x42\x53\x2b\x2f\x54\x3f\xf3\x16\x96\x16\x3a\x71\x80\x42\x6f\x05\x85\xea\x1f\xbf\xbc\x98\x90\xcd\x6d\x70\x4c\x09\xa1\xfa\x36\x28\x2f\x1f\x74\xe2\x36\xa0\x68\x10\x45\x83\x28\x1a\x44\xd1\x20\x8a\x06\x9d\xac\x68\x50\x83\xd9\xff\xa0\x60\x50\xa5\xf8\xe0\x19\xc5\x27\x36\x7b\x1a\x8a\x1e\x8d\xac\xe8\x51\xfd\x20\xaa\x2a\x78\x74\xe2\xd1\x34\x68\x99\xa3\xfa\x96\xa9\x28\x71\x74\xea\x59\xc3\xd6\xc2\x46\xf5\x8d\x56\xe0\xbd\x6f\xed\xce\x4a\x3e\xfd\xd5\x8a\xfb\x14\x88\x69\x9f\x08\xff\xe4\x99\x8f\x9f\x2e\x73\x69\x8d\xfb\x6e\xd9\xcf\xab\xad\x59\xab\x4d\xf7\xc4\x04\x8a\x2d\xe3\xad\xbd\x3e\xdb\xd9\xe7\xe5\xae\xdd\x82\x1c\x41\x8d\xa0\x46\x63\xa1\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x23\x21\x46\x79\x9d\x8e\x12\x57\x03\x02\x1d\x00\x30\x00\x18\x00\x0c\x00\x06\x00\x3b\x04\x60\x7e\xb0\x50\x96\xa4\x3d\xfd\x1a\x2c\x54\xff\x49\x4f\xf1\xaf\x92\xf2\x04\xbc\x1a\x13\xbc\xea\x39\xe5\x29\x7e\x45\xc0\x57\xe0\x2b\xf0\x15\xf8\x0a\x7c\x05\xbe\x02\x5f\x81\xaf\x3a\x9a\x6d\xc1\x57\xe0\x2b\xf0\x15\xf8\x0a\x7c\x05\xbe\x02\x5f\x9d\x1d\xbe\x82\xf7\xc0\x7b\xe0\x3d\xc5\xa3\x09\xde\x53\xfa\x9e\xc1\x7b\x9e\xc7\x7b\xec\x49\x77\xea\x8c\xf9\xf4\x98\xec\xb4\xe7\x0e\x87\x16\x41\x8b\xf6\xae\x6a\x17\x2d\x82\x14\x41\x8a\x20\x45\x90\x22\x48\x11\xa4\x08\x52\x04\x29\x82\x14\x41\x8a\x20\x45\x90\x22\x48\x11\xa4\x08\x52\x04\x29\x1a\x05\x29\xda\x4b\x74\x3a\x74\x34\x90\xe6\x04\xf6\x02\x7b\x81\xbd\xc0\x5e\x60\xaf\x3d\xec\x95\xfc\xdd\xf1\x64\x14\x59\x91\xec\x94\xd0\xa4\xb7\xf1\x0d\xf5\x9c\xf1\x94\xff\x69\xd2\x9e\x00\x59\x63\x02\x59\x7d\xa6\x3d\xe5\xdf\x13\x88\x16\x44\x0b\xa2\x05\xd1\x82\x68\x41\xb4\x20\x5a\x10\xad\x8e\x66\x5b\x88\x16\x44\x0b\xa2\x05\xd1\x82\x68\x41\xb4\x20\x5a\x67\x47\xb4\x80\x40\x40\x20\x20\x50\xf1\x68\x02\x02\x95\xbe\x67\x40\xa0\x2e\x20\x90\x25\x19\x50\x9d\x83\xa0\xbe\xd2\xa0\x4a\xdc\xe3\x20\x24\x10\xd2\xde\x55\xed\x42\x48\xe0\x23\xf0\x11\xf8\x08\x7c\x04\x3e\x02\x1f\x81\x8f\xc0\x47\xe0\x23\xf0\x11\xf8\x08\x7c\x04\x3e\x02\x1f\x81\x8f\xc0\x47\xe3\xc1\x47\xf9\x84\xa8\x72\x6f\x03\x59\x51\x00\x31\x80\x18\x40\x0c\x20\x06\x10\xdb\x03\x62\xdf\x02\x6f\xf3\xa8\xe4\x7a\x2d\x9d\x2f\xb1\x99\x68\x43\x62\xd4\x9f\xfa\x9e\x6e\xb3\x7b\xea\x39\x39\x6a\xff\xe7\x49\x90\x82\x6e\x8d\x89\x6e\xf5\x99\x20\xb5\xff\xae\x40\xb9\xa0\x5c\x50\x2e\x28\x17\x94\x0b\xca\x05\xe5\x82\x72\x75\x34\xdb\x42\xb9\xa0\x5c\x50\x2e\x28\x17\x94\x0b\xca\x05\xe5\x3a\x3b\xca\x05\x13\x82\x09\xc1\x84\x8a\x47\x13\x4c\xa8\xf4\x3d\x83\x09\x75\xc4\x84\x2c\xc9\x93\x3a\x09\x17\xea\x2b\x57\xaa\xc2\x53\x0e\x51\x82\x28\xed\x5d\xd5\x2e\xa2\x04\x4d\x82\x26\x41\x93\xa0\x49\xd0\x24\x68\x12\x34\x09\x9a\x04\x4d\x82\x26\x41\x93\xa0\x49\xd0\x24\x68\x12\x34\x09\x9a\x34\x2e\x9a\x94\xcf\x99\xaa\xf6\x38\x90\x37\x05\x23\x83\x91\xc1\xc8\x60\x64\x30\xb2\x94\x91\xdd\xab\xb5\xbc\xb9\x6e\x85\xc2\x4e\x8d\x73\x9a\x60\xb6\xa5\x5a\xef\x9a\xae\xa6\x6f\x2b\x30\xd6\x52\xad\x33\x88\xa5\x1f\xfe\xf6\xee\xe3\xef\x45\xe7\x0d\x45\xb1\x46\x0b\x97\x72\x0d\xa9\x73\xcc\x26\x43\x98\xf4\x30\xc9\x9d\x78\x91\xff\xf1\x46\xef\x97\x13\xb9\x8b\xd0\xfd\x66\x10\x4e\xf6\xa6\x99\x1d\x41\xb7\xdc\xd9\x5c\x53\x38\x81\xe7\x29\x27\x9d\xf3\xdf\x7e\xfa\xf8\x4e\xff\x7c\xc5\x7b\x61\x4e\xdc\x7d\x35\xde\x66\x57\x29\xbc\x42\x09\x98\x12\x35\x9d\x09\x9c\x9a\x30\x9c\xaa\x58\xeb\x8e\x00\x54\x35\xab\x5f\xf5\xfa\xb7\x37\xc1\xfc\xb7\xe8\xee\xee\x83\x45\xe9\xcd\x15\x7d\x77\x92\x09\xf3\x9d\x7e\xe5\x7e\xd3\x2f\x46\xd4\x70\xba\xac\x7e\xb5\x00\x6f\x80\x37\xc0\x1b\xe0\x6d\x6a\xe0\xad\xd9\xaa\x52\x08\xdf\xaa\x77\xe3\xcf\x59\x49\x8a\x7c\x3c\x89\xcb\xf1\x95\x16\x85\x70\xe2\x11\x65\xc6\xc1\xce\xb3\xe5\xed\x88\x7b\x25\x56\x71\x6b\x45\xeb\x78\x81\xbe\xf5\x85\xeb\x9b\x99\x25\x08\xc5\xc6\xcf\x26\xa7\x85\x58\x84\x4f\xbf\x6f\x7c\xb1\x70\xc3\xd8\x22\xfb\xa6\xb2\x11\xaf\x9d\x1b\xbe\x90\x7e\xf2\xca\xa7\x63\x23\x69\x60\xf1\xb0\x09\xf5\x5b\xb6\x0a\x03\x27\xb6\x1b\x8c\xff\x27\x07\x45\xe6\xe2\x4f\xfd\x8b\xba\xb7\xf4\xd8\x79\x23\xae\xc4\xad\xe7\xbd\xd1\x7e\xda\x45\x3c\x4b\x6f\xfc\xb8\xe3\xe3\x0d\x75\x3a\x24\x93\xcb\xa9\x45\x8b\x8e\x32\xcf\x32\x4c\x37\xf5\x46\x4b\x9b\x35\x45\x39\x31\xed\xad\x45\xfe\xc8\x7b\x88\x5c\x5f\x44\xc6\x71\x23\xee\xd5\x83\xb1\x9c\x33\xcf\xfa\xd6\x94\x48\x66\x2f\x3d\x74\x36\xca\x2c\x0e\xf7\x4a\xf8\x81\x7f\xe5\xab\xa5\xd4\x03\x34\xf1\xf1\xcc\xc5\x1f\xd9\x82\x6d\x28\x5b\xf6\x6a\x24\x9b\x15\xf7\xf1\x51\x2d\x5c\xb9\x56\xde\xd3\xd6\xa4\xdd\x2e\xb9\xae\xf7\x2a\xf1\xe1\xe8\x46\x17\xcb\x50\x3a\xfa\xad\x71\x83\x45\x66\x10\x6c\x17\x6d\xbd\x5f\x48\x47\xe9\x26\x8a\x6f\x32\xdf\x5d\x32\x3e\x33\x7d\xa0\xe4\x47\x1e\xcc\x1c\x98\x5e\x62\x6e\xee\xf3\x51\x49\xbf\xf0\x1e\x5b\x74\xb3\xbe\xe7\x3b\x7d\xcb\x45\x7e\xb1\x1a\xcf\x98\x2d\xc3\xff\x18\x50\xde\xac\x5d\xca\x61\x79\x6f\xc3\x1f\x6c\x0e\x36\x07\x9b\x83\xcd\xc1\xe6\x27\xc3\xe6\x0d\xd7\x82\x03\x74\xde\xdf\xb2\xf8\x2e\x97\x79\xb3\xf2\x94\x8c\x54\x36\x05\xdd\x85\xc1\x4a\x2e\xb5\x75\x74\x17\x78\xae\xf3\xb4\xe3\x07\x4b\x07\xdd\x36\x75\x27\x1e\x76\x37\xf3\x7f\xcc\xc5\x27\x33\x9f\x19\xd3\x65\xa5\xfc\xf8\x65\xd9\xae\xa9\x4a\x04\xe1\xea\x8b\xf4\x53\xbf\x5c\xb8\x51\xd7\x0f\xd2\x4b\xf7\xca\x9f\x2f\xcd\xd7\x9f\x2f\xc5\x83\xeb\x4b\xcf\xfd\x4f\xba\x90\xdc\x2b\x21\x17\x0b\x3d\x3a\xaf\x0d\x92\x5a\x6c\xb7\x61\xe6\xf2\xb3\x68\x7b\x92\xd9\x9f\xce\xc5\x7b\x57\x4f\x8e\xb9\x5b\x0f\xc2\xc3\x67\xd3\xd3\x8f\x71\x15\x99\xed\xb1\xde\xa3\x04\xeb\x2f\x6d\x3a\xd4\x3c\xc1\xbb\xf4\xd9\x7b\x73\xf1\x1d\x6e\xcc\xf4\xa3\xc7\x2f\xec\x97\xe0\xbb\x58\xca\xf0\x5e\x2e\x77\x7c\xe4\xd9\xa6\x46\x85\x0f\x41\xf8\x18\xf7\x49\x61\x7b\xfd\xb6\xf7\x44\xe5\xcd\xa5\x8d\xde\xd4\x62\x5d\x99\xb6\x75\x63\x6b\xd2\x71\x17\xdb\xad\xb0\xb6\x15\xb4\x73\x22\xeb\xe3\x78\xb1\x4e\x56\xd2\xd4\x1a\x98\xe7\x3a\x33\x5d\x47\xd2\xad\xf6\x55\xe6\x63\xde\xfd\xb1\xb9\xb8\x75\x1c\xb5\x5a\xeb\xb5\x29\xbf\xb3\x9b\x99\x67\x98\x89\xab\x64\x00\xee\x0e\xd0\xe8\x47\x31\xfb\xa7\x74\xbe\x2e\xc3\x60\xe3\x2f\xe2\xa3\xb4\xaf\x56\x1f\xb4\xd7\x70\xc6\x84\x4c\xec\xe3\xdd\x8b\xa4\x4f\x70\x9f\x5d\xe9\x47\x31\xfb\x10\x84\x2a\x77\x59\xe1\xc8\xc8\x91\x8b\xf8\xe9\x93\xf6\x31\xee\x7c\x7d\xbd\xc8\x6c\x3d\x0f\x2e\xf8\x90\x5d\xa3\xcd\x80\x5c\xed\x0f\xf7\x01\x3d\x05\x44\x83\x8c\x27\x1a\xa4\xd9\xe8\xaa\x8a\x08\xe9\x6f\x33\x3f\x64\x6c\x48\xb3\x76\xaa\x88\x0f\xe9\x6f\xc1\xb7\x35\x52\xa4\x59\x13\x1e\x46\x8b\x3c\x77\x39\x2d\x64\xcb\x84\x40\x1c\x49\xf4\x3e\xad\xe5\x7a\xd3\x14\xe5\x8d\x30\xf2\x21\x77\x62\x49\x82\xad\x59\xbe\xb7\xa6\x55\x5f\xb9\xb6\x45\x01\x0a\xfb\x49\xb6\x7b\x4f\x73\x98\x69\xdb\xb9\x0a\x80\x71\xa9\x85\xc9\xda\x9e\xda\xfe\xa9\x00\x40\x93\xb0\x8c\xf8\x0a\x7b\x41\x19\x84\x62\x10\x8a\x31\x89\x50\x0c\x82\x17\x08\x5e\x20\x78\x81\xe0\x05\x82\x17\x06\x0f\x5e\x80\x8a\x03\x4a\x01\xa5\x80\x52\x40\x29\xa0\x14\x50\x0a\x28\x2d\x5d\x04\x60\x17\xb0\x0b\xd8\x05\xec\x02\x76\x81\x08\x69\x15\x24\x99\xa7\x4e\xfb\xc4\xed\x3e\xcf\xdc\xd6\xd3\xce\x0d\xad\x27\x24\x7d\xd6\xb3\xeb\x84\x8a\xb4\xd0\x1f\x1d\x8b\x7a\xc7\xc5\x5e\xaf\x5d\xae\x82\xa8\x63\x04\x64\x8c\x75\x21\x1b\xd1\x1e\x73\x70\x87\xbc\xa7\x5d\xb6\x63\x85\xec\xcb\x89\x26\x85\x4e\xb2\x1f\xc9\xc0\xc9\x77\xba\xb5\x19\x38\x7a\x13\xfe\x8b\xf4\xe5\x52\x85\xc6\x9d\xa4\x25\x8c\x64\x14\x05\x8e\xab\xf7\x47\x99\xe3\x46\x6a\xff\x5b\x10\x8a\x78\xfb\xbc\x7e\xca\x36\x8c\x8f\xf2\x6b\xdc\x8a\xeb\x2f\x2a\x52\xa9\x11\x94\xcf\x33\x49\xf3\x51\xb4\x11\xa8\x9d\x34\x41\x28\x6e\x5e\xff\x10\x1f\x1b\x4a\x47\x53\x19\x2f\xf0\x97\xc6\xe4\xd1\x8e\x94\x78\xc7\x2b\x5d\xdf\xcc\x4a\xda\x51\xb1\x3d\x56\x7b\xaa\x13\x66\x24\xee\x9f\x84\x5e\x2d\xde\x5c\x5f\x2f\x03\x4f\xfa\xcb\x79\x10\x2e\xaf\x57\x5f\x97\xd7\x1b\xdf\x75\x82\x85\xba\xfe\xdb\xc7\xe8\x2e\xbe\x4a\x6b\xcf\x67\xd2\x38\x5d\x76\x8f\x55\x36\xd2\x58\x4d\x97\xa6\x66\xcb\xeb\x06\x66\xcb\x5b\xe3\xc4\xb1\xeb\xb6\x5f\xd7\xde\xb6\x89\x2a\xb5\xeb\xbe\xa7\x68\x25\x6a\x43\x64\x04\x56\xe2\x85\x38\x5e\x03\xa5\xa0\xfe\xc6\x09\xa5\x50\x9a\x59\x5e\x85\xf2\x27\xfd\x5b\x5e\x23\xd1\x99\xc0\xd2\xca\x77\xb2\xb5\x96\x16\x99\xbd\x67\x94\xd9\x4b\x0a\x13\x29\x4c\xa4\x30\x91\xc2\xc4\x26\xb1\xec\x2d\xb2\x6d\x93\xc8\x6e\x2b\xf7\x34\x16\x64\x2d\x8c\x61\xbf\x95\x79\xaa\x3b\xcf\x55\xd0\x64\x7b\xd7\xe0\x6a\xb2\x71\x8a\x4f\x3b\x5d\x82\x42\xce\x00\x51\xff\xd6\x61\x47\xf7\xf1\x27\xe9\xac\xe7\x42\xbc\x8f\xff\x4f\xff\xfe\x28\x5d\xed\xc0\x8b\x84\xe3\x6d\xa2\xb5\x0a\xb7\xcb\x8a\x89\x4f\x14\x9e\xfb\x55\x89\xd9\xaf\xf2\x51\x45\x2b\xe9\xa8\x59\x6c\x3d\xa6\x16\xcf\x5c\xdc\x79\xd2\xf7\x93\xb0\x01\x6d\x93\x48\xcf\x98\x41\x37\x3f\xb4\x99\xa7\xf5\x3d\x0e\x64\x2d\x64\x8d\x96\x19\xdb\xf7\x69\xf3\xc5\x4f\x2a\xde\x9b\x16\x8b\x57\x88\x55\x94\xb6\x4e\x12\x99\xb3\x89\x54\xa8\x43\x6a\xb6\x76\xf3\xd3\x89\x1b\x2a\xbe\x99\xe9\xf2\xe0\xa9\x2f\x63\x53\x5c\x0e\xe2\xb9\x75\x4c\x6b\x41\x0b\x42\x9b\xaf\x1a\x51\x72\x0f\x94\x8b\xe8\x03\x38\xeb\x58\x8e\x56\x7a\xeb\x57\xfa\xdc\xbf\x57\x4f\x5a\x8f\x2a\x5c\xaa\x46\x47\x46\xeb\x50\xae\xd5\xd2\x75\xae\x9a\x9f\x13\x7f\x7e\x4a\x8e\xd4\xd3\x63\x13\x43\x43\x07\xff\xe9\xdc\x22\x13\x77\xd4\xc2\xe8\x58\xed\xd4\x22\x9e\x1a\x26\xaf\x70\xe5\xde\xed\x86\xfe\x08\x5c\xb8\x13\x77\xe1\x9e\x0f\x2c\xdf\x8b\xd0\x4f\x5f\x2e\x93\x45\xb2\x32\x41\xb5\x49\x66\xf2\x8b\x92\x39\xe8\xa5\x76\x60\x99\xd4\x51\xe9\xe9\x33\xfd\xc0\xbf\x32\x67\xeb\x23\xb4\x0f\x39\x12\x2f\x7e\x8a\x02\xff\xce\x24\xe8\xfe\x12\xcf\x76\xc9\xe7\x4f\xe9\x1c\xb8\xfd\xe3\x4b\x9b\x28\x7e\xf3\x71\xf3\x21\x08\x1d\xed\x64\x5f\x06\xba\xf3\x03\xf1\xf9\xf2\x21\xfe\xdb\xe7\x4b\x71\xbb\xd3\x9a\x73\xf1\x71\x9d\x78\xc4\xb5\xf1\x9f\xbc\xa8\x57\xd2\xd1\x1d\xa0\x53\x3c\x3d\xd7\x49\x7c\x7c\x7a\xaf\x10\x7c\x4f\xfa\xd6\xa4\x40\xae\x54\xb0\xf2\xd4\x5c\x98\xdf\xd4\x99\xdd\xe9\x98\xd2\x51\xd7\x85\x1d\x91\xfd\x7c\x9b\xe6\x8d\x7f\x88\x2d\x83\xf9\x82\x2d\x83\x0d\x5b\x86\x55\x9f\x85\xe5\xbb\xd9\x34\x6c\x3a\x77\x20\xad\x3c\xe9\xb4\x31\xe7\x92\x33\x27\x6b\xd0\x11\xf7\x88\x29\x77\x4e\xa6\x9c\x45\x16\x13\x0b\x7b\xf6\x0d\x71\x8f\x25\xb7\x3d\x49\x7b\x64\x33\x0a\x17\xe6\x85\x38\x22\x7c\xd0\x0f\x16\x6a\xb0\x02\x6a\xbf\x06\x0b\x75\x6c\xfc\x60\xbe\x7c\xda\xfe\xf9\x28\x76\xa1\xd8\x35\x3a\xc5\xae\x49\x07\xb5\xa2\x3f\x86\xfe\x18\xfa\x63\xe8\x8f\xa1\x3f\x56\xb4\x94\x50\x3c\x0d\x17\x06\x32\x71\xa4\x58\x9c\x73\x8a\x05\x9a\x80\x68\x02\xa2\x09\x88\x26\x20\x9a\x80\x68\x02\xa2\x09\x48\xe6\x21\x99\x87\x64\x1e\x92\x79\xb8\x3f\x22\x29\x9e\x86\x00\xe9\xd1\xa3\x0b\x01\x52\x04\x48\x11\x20\x9d\x7e\x90\x09\xc5\xd3\x2a\x82\x36\x06\x2c\x9e\xb6\x17\x9e\x30\x7c\x3a\x72\x6d\xe9\xb4\x9a\x80\x8c\xc2\xc2\x69\x04\x61\x10\x84\x31\xfa\x20\x0c\xc2\x16\x08\x5b\x20\x6c\x81\xb0\x05\xc2\x16\x06\x0f\x5b\x80\x87\x83\x48\x41\xa4\x20\x52\x10\x29\x88\x14\x44\x0a\x22\x2d\x5d\x04\xa0\x16\x50\x0b\xa8\x05\xd4\x02\x6a\x41\xd9\xb4\x63\x93\x59\x7f\x0d\x16\x8a\xa2\x69\xbd\x96\xc3\x78\x2e\x0d\xa1\x64\x5a\x57\x25\xd3\x6a\x28\x4f\x49\xc1\xb4\xb6\x9c\xc7\x7e\xd9\x10\xfd\x64\xcd\x26\x02\x32\x6e\x26\x90\x71\x83\x68\x08\xa2\x21\x05\x37\x63\xbd\xc1\x32\x3a\xc9\x90\xe3\x6e\xda\x16\xe9\xfe\x63\xee\x7a\x8a\x76\x61\xcf\x65\xd2\x5a\xda\x85\x17\xe2\x58\x95\x93\x01\x4a\xa4\xb5\x11\x38\xe9\xdb\xd2\x1a\x89\x92\x04\xb6\x55\xbe\x93\xad\xb5\xad\xc8\xdd\x3d\xa3\xdc\x5d\x92\x94\x48\x52\x22\x49\x89\x24\x25\xb6\x85\x65\x6f\x91\x5d\xdb\x42\x76\x58\x76\xec\xb0\x7a\x2f\x8d\x66\x5d\x26\x42\x71\x61\xb4\x9a\xed\x52\x61\x59\xb4\x8e\xd2\x0f\x28\x8a\x96\xf5\x7e\x73\x1b\x81\xa2\x68\xc9\x3f\x16\x2f\x96\x01\xdb\x4b\xa2\x0d\xc0\x5f\xf7\x0a\xa2\x1d\xde\x01\xe5\xd0\x28\x87\x36\x4c\x39\xb4\x1a\x53\xa3\xb8\x18\xda\x34\x10\x38\xa5\xd0\x70\xd7\x9e\x1f\x0a\xa7\x14\x5a\x97\xe3\x86\x52\x68\x6c\x14\xd8\x28\x4c\xb5\x10\xda\xb3\xb7\x0a\xbd\x95\x41\xab\xf5\x18\x15\x17\x41\x9b\x86\x21\x47\x2c\x23\x06\xdc\xf9\x18\x70\x16\xd9\x49\x2c\xe7\xd9\x37\xc4\x32\x16\xdc\xf4\x24\x6d\x90\x5e\x8b\x9f\x9d\x3c\x28\x30\xf9\xb3\xe3\xc9\x28\x1a\xa8\x00\x5a\x62\x95\xbc\x8d\x6f\xe1\xd8\x20\xc1\xec\x42\x65\x17\x41\x85\x0b\x15\xae\xd1\xa9\x70\x4d\x3a\x80\x15\x4d\x31\x34\xc5\xd0\x14\x43\x53\x0c\x4d\xb1\xa2\xa5\x84\x52\x68\x38\x33\x90\x7e\x23\x9d\xe2\x9c\xd3\x29\xd0\xf9\x43\xe7\x0f\x9d\x3f\x74\xfe\xd0\xf9\x43\xe7\x0f\x9d\x3f\xb2\x0c\xc9\x32\x24\xcb\x90\x2c\xc3\xfd\x11\x49\x29\x34\x44\x45\x8f\x1e\x5d\x88\x8a\x22\x2a\x8a\xa8\xe8\xf4\xc3\x4d\x28\x85\x56\x11\xc2\x31\x54\x29\xb4\x92\x18\x85\xe1\xb3\x90\xab\xeb\xa1\x35\x8c\xcf\x38\x2c\x8a\x46\x4c\x06\x31\x19\x93\x89\xc9\x20\x8a\x81\x28\x06\xa2\x18\x88\x62\x20\x8a\x61\xf0\x28\x06\xf0\x38\xc4\x14\x62\x0a\x31\x85\x98\x42\x4c\x21\xa6\x10\xd3\xd2\x45\x00\x88\x01\xc4\x00\x62\x00\x31\x80\x18\x54\x46\x3b\x2a\xcf\x35\xef\xb9\xa6\x3c\x5a\x7f\x65\x30\xba\x22\x24\xd4\x48\xeb\xa4\x46\x5a\x43\xf2\x53\x54\x28\xed\xb9\xec\xc7\x72\x85\x91\x9d\xc7\x6b\x36\x39\x90\x99\x33\x81\xcc\x1c\x64\x46\x90\x19\x29\xb8\x99\x71\x58\x32\xe3\xd2\x1a\x69\x77\xe7\x56\x48\xfb\xb7\xb9\xf5\x29\x9a\x8e\x7d\x56\x50\x7b\xa6\xe9\x78\x21\xda\x29\xa6\xf4\x5d\x4c\xed\x19\x62\x29\xc3\x98\x64\x23\x51\xa5\xc0\xfe\xca\x77\xb2\xb5\xf6\x17\x79\xc0\x67\x94\x07\x4c\xc2\x13\x09\x4f\x24\x3c\x91\xf0\xc4\xd6\xb1\xec\x2d\xb2\x70\xeb\xc8\x06\x6c\xf7\x81\x2c\xc8\x74\x18\xc9\x16\x2c\xf3\x68\xf7\x51\x65\xad\xe1\x3e\xea\xb0\xd4\x5a\xc7\x49\x0d\xd4\x5b\xcb\xc6\x41\x73\xe3\x81\x7a\x6b\xc9\x3f\x56\x35\x96\x06\xfb\x8b\xae\x0d\x48\x75\xf3\x95\xd7\xca\x6f\x83\xf2\x6b\x94\x5f\x1b\xa0\xfc\x5a\x43\x1b\xa4\xa0\x06\xdb\xb4\xe8\x3a\x85\xd8\x70\xf0\x9e\x1f\x60\xa7\x10\x5b\x97\xe3\x86\x42\x6c\xec\x20\xd8\x41\x4c\xb7\x1a\x5b\x67\x7b\x88\x7e\x4a\xb2\x35\x76\x2f\x15\xd4\x65\x9b\x96\x71\x47\xe8\x24\x96\xdd\x99\x59\x76\x16\x19\x50\xac\xf3\xd9\x37\x84\x4e\x9e\x9f\x85\xd2\x5f\xad\xb6\xde\xc2\x0f\xbf\x05\xde\xe6\x51\xc9\xf5\x5a\x3a\x5f\x1e\x75\x00\xc7\x10\x35\xdb\xfe\xd4\x77\x71\x9b\xdd\xc5\x91\xa1\x88\xdb\xba\x6d\x55\x17\x42\x27\x0c\x9d\xb0\xd1\xe9\x84\x4d\x3a\x4a\x16\xd5\x33\x54\xcf\x50\x3d\x43\xf5\x0c\xd5\xb3\xa2\xa5\x84\xda\x6d\xb8\x39\x10\xa7\x23\x67\xe3\x9c\x73\x36\x50\x22\x44\x89\x10\x25\x42\x94\x08\x51\x22\x44\x89\x10\x25\x42\x52\x19\x49\x65\x24\x95\x91\x54\xc6\xfd\x11\x49\xed\x36\x64\x4f\x8f\x1e\x5d\xc8\x9e\x22\x7b\x8a\xec\xe9\xf4\x03\x51\xa8\xdd\x56\x11\xd2\x31\x54\xed\xb6\x8a\x38\x85\xe1\xf3\x9b\xab\xeb\xb7\x1d\x11\xab\x71\x58\xc3\x8d\xf8\x0c\xe2\x33\x26\x15\x9f\x41\x44\x03\x11\x0d\x44\x34\x10\xd1\x40\x44\xc3\xe0\x11\x0d\xa0\x72\xe8\x29\xf4\x14\x7a\x0a\x3d\x85\x9e\x42\x4f\xa1\xa7\xa5\x8b\x00\x40\x03\xa0\x01\xd0\x00\x68\x00\x34\xa8\xe3\x76\x54\x22\xec\xbe\xf7\x9a\x5a\x6e\xfd\x15\xe4\xe8\x92\x98\x50\xcf\xad\x93\x7a\x6e\x47\x90\xa0\xa2\x9a\x6e\x5d\xb0\x20\xcb\xc5\x49\x0e\x1e\xb1\xd9\x64\x41\xe6\xce\x04\x32\x77\x10\x28\x41\xa0\xa4\xe0\x66\xc6\x63\xdd\x8c\x4b\xa4\xa4\xfd\xdd\x5b\x51\x62\xa0\xed\xed\x4f\xd1\xac\xec\xb3\xce\x5b\x07\x66\xe5\x85\x68\x2d\xb6\xd2\x77\xb9\xb7\x67\xea\xac\x0c\x67\xb1\x8d\x44\xd0\x02\xd3\x2c\xdf\xc9\xd6\x9a\x66\xa4\x10\x9f\x51\x0a\x31\xb9\x52\xe4\x4a\x91\x2b\x45\xae\x14\xbb\xca\xb2\xb7\xc8\xd2\x5d\x25\xfb\x32\xcb\xf6\x65\xfd\x96\x7f\xb3\x3a\x45\xa2\xa0\x04\xdc\x11\x7b\xab\xc3\x32\x70\x27\xc8\x8b\xa0\x14\x5c\x36\x1e\x9a\x1b\x14\x94\x82\x4b\xfe\xb1\xd2\xb1\x54\x8c\xa3\x1c\xdc\xc0\x60\x38\x5f\x12\xae\xfa\x56\x28\x0b\x47\x59\xb8\x01\xca\xc2\x1d\x61\x97\x14\x94\x86\x9b\x1e\xa4\xa7\x3c\x1c\x8e\xe0\xf3\x63\xf4\x94\x87\xeb\x72\xdc\x50\x1e\x8e\x5d\x05\xbb\x0a\xf3\xe7\xa9\x96\x88\xeb\x74\x5f\xd1\x4f\x99\xb8\xa3\x5c\x50\x05\xa5\xe2\xa6\x67\xec\x11\x91\x89\xb5\x77\x86\xd6\x9e\x45\x46\x15\x6b\x7f\xf6\x0d\x11\x99\x8d\xee\x7e\x92\x96\x4b\x7f\xa5\xe3\x7a\x8d\x68\xd4\x69\x5c\xd7\x4e\xe4\x2e\x42\xf7\x9b\xb1\x0d\xb2\x48\xc6\xce\xa1\x5b\x92\xdf\xee\x2f\xdc\x6f\xee\x62\x23\xbd\x7c\xea\xa0\xcc\x14\x2d\xde\x7e\xfa\xf8\x4e\xdf\xcc\x3c\x17\xb9\xf3\x26\x8b\xf9\x99\xe9\xab\xcc\xb6\xda\x46\x3b\x62\x35\x99\x95\x24\x5c\x3f\x5a\x2b\xb9\xe3\xdc\xdc\xb7\xa1\xbe\x1f\xba\xcb\xb2\x1f\xff\x79\x2f\x35\x8a\x54\x3e\x5b\x45\x10\x75\x26\xea\xfb\x6f\x67\x3e\x41\xe9\x4e\xec\x33\x9f\x2f\x7b\x53\x7a\xe6\x35\xc8\x05\x4e\x58\x2e\xb0\x1e\x3e\xd5\x49\x05\x56\x3a\xba\x3a\x00\x6b\x08\x04\x22\x10\x88\x40\x20\x02\x81\x53\x13\x08\xac\x9f\x79\x0b\xc5\x01\x4f\x1c\xc6\xd0\x9b\x24\x60\xfd\xe3\x97\xcb\x01\xda\xdc\x06\xc7\x88\x00\xd6\xb7\x41\xb9\x00\xe0\x89\xdb\x00\xd9\x3f\x64\xff\x90\xfd\x43\xf6\x0f\xd9\xbf\x93\xc9\xfe\x35\x98\xfd\x0f\x24\xff\x2a\x53\x00\xcf\x28\x8a\xb1\xd9\xd3\x20\x5b\x38\x32\xd9\xc2\xfa\x41\x54\x25\x59\x78\xe2\xd1\x34\xa8\x50\x61\x7d\xcb\x54\x88\x14\x9e\x7a\xd6\xb0\x55\x9a\xb0\xbe\xd1\x0a\xfc\xf8\xad\xdd\x59\xc9\xa7\xbf\xda\xb3\xa0\x02\x71\x8b\x13\x21\xa1\x3c\x07\xf2\xd3\xb5\x2e\xad\x57\xd3\x2d\x0f\x7a\xb5\xb5\x6d\xb5\xfd\x9e\xd8\x41\xb1\x79\xbc\x35\xda\x67\x3b\x9b\xbd\xdc\xb5\xdb\xd2\x24\x48\x12\x24\x69\x54\x24\x09\x8a\x04\x45\x82\x22\x41\x91\xa0\x48\x50\x24\x28\x12\x14\x09\x8a\x04\x45\x82\x22\x41\x91\xa0\x48\x50\x24\x28\x12\x14\x69\x4c\x14\x29\xaf\xf0\x51\xe2\x6f\x40\xda\x03\x28\x06\x14\x03\x8a\x01\xc5\x80\x62\x25\x50\xcc\x0f\x16\xca\x92\xf4\xa8\x5f\x83\x85\x1a\x28\x39\x2a\xfe\x69\x52\xa3\x00\x5a\xa3\x03\x5a\x3d\xa7\x46\xc5\xef\x09\x48\x0b\xa4\x05\xd2\x02\x69\x81\xb4\x40\x5a\x20\x2d\x90\x56\x97\xb3\x2d\x48\x0b\xa4\x05\xd2\x02\x69\x81\xb4\x40\x5a\x20\xad\xb3\x43\x5a\x30\x20\x18\x10\x0c\xa8\x78\x34\xc1\x80\x4a\xdf\x33\x18\x50\x07\x0c\xc8\x9e\xb4\xa8\xce\x38\x50\xdf\x49\x51\x7b\xde\x71\x08\x12\x04\x69\xef\xaa\x16\x12\x24\xe8\x11\xf4\x08\x7a\x04\x3d\x82\x1e\x41\x8f\xa0\x47\xd0\x23\xe8\x11\xf4\x08\x7a\x04\x3d\x82\x1e\x41\x8f\xa0\x47\xd0\xa3\xf1\xd0\xa3\xbd\x84\xa8\x43\x6f\x03\xe9\x50\xa0\x30\x50\x18\x28\x0c\x14\x06\x0a\x2b\x42\x61\xc9\x97\x8e\x27\xa3\xc8\x8a\xa4\xa8\x84\x30\xbd\x8d\x6f\x68\x88\xcc\xa8\xfc\xef\x93\x1e\x05\xdc\x1a\x1d\xdc\xea\x33\x3d\x2a\xff\xb2\x40\xb9\xa0\x5c\x50\x2e\x28\x17\x94\x0b\xca\x05\xe5\x82\x72\x75\x39\xdb\x42\xb9\xa0\x5c\x50\x2e\x28\x17\x94\x0b\xca\x05\xe5\x3a\x3b\xca\x05\x18\x02\x0c\x01\x86\x8a\x47\x13\x60\xa8\xf4\x3d\x03\x0c\x75\x06\x86\x2c\xc9\x94\xea\x1c\x0e\xf5\x9a\x2e\x55\xe2\x2d\x07\x2b\x81\x95\xf6\xae\x6a\x21\x56\x02\x29\x81\x94\x40\x4a\x20\x25\x90\x12\x48\x09\xa4\x04\x52\x02\x29\x81\x94\x40\x4a\x20\x25\x90\x12\x48\x09\xa4\x04\x52\x1a\x19\x52\xca\x27\x4e\x95\xbb\x1c\xc8\x9e\x02\x92\x01\xc9\x80\x64\x40\x32\x20\x59\x11\x24\xfb\x16\x78\x9b\x47\x25\xd7\x6b\xe9\x7c\x89\x6d\x45\x1b\x12\xa8\xfe\xd4\xf7\x74\x9b\xdd\xd3\x10\x49\x54\xfb\xf7\x40\x22\x15\xc4\x6b\x74\xc4\xab\xcf\x44\xaa\xfd\x17\x06\xf2\x05\xf9\x82\x7c\x41\xbe\x20\x5f\x90\x2f\xc8\x17\xe4\xab\xcb\xd9\x16\xf2\x05\xf9\x82\x7c\x41\xbe\x20\x5f\x90\x2f\xc8\xd7\xd9\x91\x2f\x38\x11\x9c\x08\x4e\x54\x3c\x9a\xe0\x44\xa5\xef\x19\x9c\xa8\x4b\x4e\x64\x49\x3e\xd5\x49\x58\x51\xaf\x39\x55\x15\x8e\x73\x28\x13\x94\x69\xef\xaa\x16\x52\x26\x08\x13\x84\x09\xc2\x04\x61\x82\x30\x41\x98\x20\x4c\x10\x26\x08\x13\x84\x09\xc2\x04\x61\x82\x30\x41\x98\x20\x4c\x10\xa6\x11\x12\xa6\x7c\x6e\x55\xb5\xdb\x81\xfc\x2a\xb8\x19\xdc\x0c\x6e\x06\x37\x3b\x47\x6e\xe6\x05\xcb\xe8\xba\x12\x81\xed\xf1\x1f\x2f\x58\x7e\x70\x3d\xf5\xb3\x1b\xad\xff\xff\xd2\x5f\x78\x3b\xdd\x55\x0e\x3e\x6c\x65\x07\xf1\xf3\xe7\x8e\xbe\xc8\xff\xe2\x6e\x23\xfd\xd7\x0b\x96\xf1\x2a\x59\x0d\x0c\x8b\x5b\x6b\xc2\x2d\xf5\x1c\x20\x11\x37\x67\xfa\x2e\x7a\xc1\xf2\x38\xbb\x24\xe9\x8e\xd3\x9b\x26\xc5\x2f\x4e\xb2\xd6\x56\xbf\x3b\x65\xf8\xf8\x80\x7e\x16\xf6\xc2\x5e\x6b\x2d\x55\xea\xc8\x5c\x64\x46\x6e\x05\xa8\x5d\xaa\xf5\xdb\x60\x51\xb0\x12\x35\x67\xb2\x85\x77\x65\x29\xdb\x4c\x1a\x64\xfe\xd1\x7f\x08\xc6\x0e\x34\xd3\xce\x2d\x9b\x97\x2e\x92\x1f\xbd\x8c\x94\xb3\x09\xdd\xf5\x53\x76\x81\x6c\x28\xfe\x53\xc9\x50\x85\x7f\x04\x5f\x55\xfc\x14\xff\xef\x5f\xd9\x89\x7f\xed\x9c\xf8\x6e\xdb\xb2\x59\x4b\xec\x9d\x9b\x5d\x72\xaf\x61\xcc\x51\x42\x1f\x26\xe2\x36\x32\x9b\xe5\x75\x7e\xb0\x25\x2f\xf1\x17\x25\x17\xb9\xd9\x6f\x4b\xa4\x92\x96\xdd\x3b\x29\x7d\x51\xe5\xca\xfd\x7f\xd4\xd3\xe5\xfe\x33\x7f\x97\xcb\xd8\x48\x78\x23\x2e\x5f\xcf\xff\x7f\x97\x17\xff\xbb\xf8\xff\x02\x00\x00\xff\xff\x5a\xbc\xb7\x34\x3e\x43\x42\x00") - -func kubernetesapiV1184SwaggerJsonBytes() ([]byte, error) { - return bindataRead( - _kubernetesapiV1184SwaggerJson, - "kubernetesapi/v1184/swagger.json", - ) -} - -func kubernetesapiV1184SwaggerJson() (*asset, error) { - bytes, err := kubernetesapiV1184SwaggerJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "kubernetesapi/v1184/swagger.json", size: 4342590, mode: os.FileMode(420), modTime: time.Unix(1605140972, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -// Asset loads and returns the asset for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func Asset(name string) ([]byte, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) - } - return a.bytes, nil - } - return nil, fmt.Errorf("Asset %s not found", name) -} - -// MustAsset is like Asset but panics when Asset would return an error. -// It simplifies safe initialization of global variables. -func MustAsset(name string) []byte { - a, err := Asset(name) - if err != nil { - panic("asset: Asset(" + name + "): " + err.Error()) - } - - return a -} - -// AssetInfo loads and returns the asset info for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func AssetInfo(name string) (os.FileInfo, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) - } - return a.info, nil - } - return nil, fmt.Errorf("AssetInfo %s not found", name) -} - -// AssetNames returns the names of the assets. -func AssetNames() []string { - names := make([]string, 0, len(_bindata)) - for name := range _bindata { - names = append(names, name) - } - return names -} - -// _bindata is a table, holding each asset generator, mapped to its name. -var _bindata = map[string]func() (*asset, error){ - "kubernetesapi/v1184/swagger.json": kubernetesapiV1184SwaggerJson, -} - -// AssetDir returns the file names below a certain -// directory embedded in the file by go-bindata. -// For example if you run go-bindata on data/... and data contains the -// following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png -// then AssetDir("data") would return []string{"foo.txt", "img"} -// AssetDir("data/img") would return []string{"a.png", "b.png"} -// AssetDir("foo.txt") and AssetDir("notexist") would return an error -// AssetDir("") will return []string{"data"}. -func AssetDir(name string) ([]string, error) { - node := _bintree - if len(name) != 0 { - cannonicalName := strings.Replace(name, "\\", "/", -1) - pathList := strings.Split(cannonicalName, "/") - for _, p := range pathList { - node = node.Children[p] - if node == nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - } - } - if node.Func != nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - rv := make([]string, 0, len(node.Children)) - for childName := range node.Children { - rv = append(rv, childName) - } - return rv, nil -} - -type bintree struct { - Func func() (*asset, error) - Children map[string]*bintree -} - -var _bintree = &bintree{nil, map[string]*bintree{ - "kubernetesapi": &bintree{nil, map[string]*bintree{ - "v1184": &bintree{nil, map[string]*bintree{ - "swagger.json": &bintree{kubernetesapiV1184SwaggerJson, map[string]*bintree{}}, - }}, - }}, -}} - -// RestoreAsset restores an asset under the given directory -func RestoreAsset(dir, name string) error { - data, err := Asset(name) - if err != nil { - return err - } - info, err := AssetInfo(name) - if err != nil { - return err - } - err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) - if err != nil { - return err - } - err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) - if err != nil { - return err - } - err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) - if err != nil { - return err - } - return nil -} - -// RestoreAssets restores an asset under the given directory recursively -func RestoreAssets(dir, name string) error { - children, err := AssetDir(name) - // File - if err != nil { - return RestoreAsset(dir, name) - } - // Dir - for _, child := range children { - err = RestoreAssets(dir, filepath.Join(name, child)) - if err != nil { - return err - } - } - return nil -} - -func _filePath(dir, name string) string { - cannonicalName := strings.Replace(name, "\\", "/", -1) - return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) -} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1184/swagger.json b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1184/swagger.json deleted file mode 100644 index f9aa01dd8b..0000000000 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1184/swagger.json +++ /dev/null @@ -1,85841 +0,0 @@ -{ - "definitions": { - "io.k8s.api.admissionregistration.v1.MutatingWebhook": { - "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "reinvocationPolicy": { - "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - "type": "string" - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig", - "sideEffects", - "admissionReviewVersions" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration": { - "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList": { - "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of MutatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfigurationList", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scope": { - "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "`name` is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "`namespace` is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "`path` is an optional URL path which will be sent in any request to this service.", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhook": { - "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig", - "sideEffects", - "admissionReviewVersions" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration": { - "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList": { - "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of ValidatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfigurationList", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "properties": { - "caBundle": { - "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ServiceReference", - "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhook": { - "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "reinvocationPolicy": { - "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - "type": "string" - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration": { - "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList": { - "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of MutatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scope": { - "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "`name` is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "`namespace` is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "`path` is an optional URL path which will be sent in any request to this service.", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook": { - "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration": { - "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList": { - "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of ValidatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "properties": { - "caBundle": { - "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ServiceReference", - "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.ControllerRevision": { - "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", - "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" - }, - "data": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", - "description": "Data is the serialized representation of the state." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "revision": { - "description": "Revision indicates the revision of the state represented by Data.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "revision" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ControllerRevisionList": { - "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", - "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" - }, - "items": { - "description": "Items is the list of ControllerRevisions", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevisionList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSet": { - "description": "DaemonSet represents the configuration of a daemon set.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec", - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus", - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetCondition": { - "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of DaemonSet condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetList": { - "description": "DaemonSetList is a collection of daemon sets.", - "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" - }, - "items": { - "description": "A list of daemon sets.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetSpec": { - "description": "DaemonSetSpec is the specification of a daemon set.", - "properties": { - "minReadySeconds": { - "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - }, - "updateStrategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy", - "description": "An update strategy to replace existing DaemonSet pods with new pods." - } - }, - "required": [ - "selector", - "template" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetStatus": { - "description": "DaemonSetStatus represents the current status of a daemon set.", - "properties": { - "collisionCount": { - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a DaemonSet's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentNumberScheduled": { - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "desiredNumberScheduled": { - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "numberAvailable": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "format": "int32", - "type": "integer" - }, - "numberMisscheduled": { - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "numberReady": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - "format": "int32", - "type": "integer" - }, - "numberUnavailable": { - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "The most recent generation observed by the daemon set controller.", - "format": "int64", - "type": "integer" - }, - "updatedNumberScheduled": { - "description": "The total number of nodes that are running updated daemon pod", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetUpdateStrategy": { - "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet", - "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." - }, - "type": { - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.Deployment": { - "description": "Deployment enables declarative updates for Pods and ReplicaSets.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentSpec", - "description": "Specification of the desired behavior of the Deployment." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStatus", - "description": "Most recently observed status of the Deployment." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentCondition": { - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time this condition was updated." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of deployment condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentList": { - "description": "DeploymentList is a list of Deployments.", - "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" - }, - "items": { - "description": "Items is the list of Deployments.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DeploymentList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentSpec": { - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "paused": { - "description": "Indicates that the deployment is paused.", - "type": "boolean" - }, - "progressDeadlineSeconds": { - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels." - }, - "strategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStrategy", - "description": "The deployment strategy to use to replace existing pods with new ones.", - "x-kubernetes-patch-strategy": "retainKeys" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template describes the pods that will be created." - } - }, - "required": [ - "selector", - "template" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentStatus": { - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "availableReplicas": { - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - "format": "int32", - "type": "integer" - }, - "collisionCount": { - "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a deployment's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "observedGeneration": { - "description": "The generation observed by the deployment controller.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "Total number of ready pods targeted by this deployment.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - "format": "int32", - "type": "integer" - }, - "unavailableReplicas": { - "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - "format": "int32", - "type": "integer" - }, - "updatedReplicas": { - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentStrategy": { - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment", - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." - }, - "type": { - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSet": { - "description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec", - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus", - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetCondition": { - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replica set condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSetList": { - "description": "ReplicaSetList is a collection of ReplicaSets.", - "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" - }, - "items": { - "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetSpec": { - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - } - }, - "required": [ - "selector" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSetStatus": { - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a replica set's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replica set.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateDaemonSet": { - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateDeployment": { - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxSurge": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods." - }, - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy": { - "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - "properties": { - "partition": { - "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSet": { - "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetSpec", - "description": "Spec defines the desired identities of pods in this set." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetStatus", - "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetCondition": { - "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of statefulset condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetList": { - "description": "StatefulSetList is a collection of StatefulSets.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetSpec": { - "description": "A StatefulSetSpec is the specification of a StatefulSet.", - "properties": { - "podManagementPolicy": { - "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - "type": "string" - }, - "replicas": { - "description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "serviceName": { - "description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - "type": "string" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet." - }, - "updateStrategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy", - "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template." - }, - "volumeClaimTemplates": { - "description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "type": "array" - } - }, - "required": [ - "selector", - "template", - "serviceName" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetStatus": { - "description": "StatefulSetStatus represents the current state of a StatefulSet.", - "properties": { - "collisionCount": { - "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a statefulset's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentReplicas": { - "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - "format": "int32", - "type": "integer" - }, - "currentRevision": { - "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - "type": "string" - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "replicas is the number of Pods created by the StatefulSet controller.", - "format": "int32", - "type": "integer" - }, - "updateRevision": { - "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", - "type": "string" - }, - "updatedReplicas": { - "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetUpdateStrategy": { - "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy", - "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType." - }, - "type": { - "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus", - "description": "Status is filled in by the server and indicates whether the request can be authenticated." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authentication.v1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - "items": { - "type": "string" - }, - "type": "array" - }, - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - "items": { - "type": "string" - }, - "type": "array" - }, - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", - "description": "User is the UserInfo associated with the provided token." - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Any additional information provided by the authenticator.", - "type": "object" - }, - "groups": { - "description": "The names of groups this user is a part of.", - "items": { - "type": "string" - }, - "type": "array" - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus", - "description": "Status is filled in by the server and indicates whether the request can be authenticated." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authentication.v1beta1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - "items": { - "type": "string" - }, - "type": "array" - }, - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - "items": { - "type": "string" - }, - "type": "array" - }, - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.UserInfo", - "description": "User is the UserInfo associated with the provided token." - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Any additional information provided by the authenticator.", - "type": "object" - }, - "groups": { - "description": "The names of groups this user is a part of.", - "items": { - "type": "string" - }, - "type": "array" - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "properties": { - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. user and groups must be empty" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec", - "description": "Spec holds information about the request being evaluated." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus", - "description": "Status is filled in by the server and indicates the set of actions a user can perform." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object" - }, - "groups": { - "description": "Groups is the groups you're testing for.", - "items": { - "type": "string" - }, - "type": "array" - }, - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - }, - "required": [ - "allowed" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceRule" - }, - "type": "array" - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceRule" - }, - "type": "array" - } - }, - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "properties": { - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. user and groups must be empty" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec", - "description": "Spec holds information about the request being evaluated." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus", - "description": "Status is filled in by the server and indicates the set of actions a user can perform." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object" - }, - "group": { - "description": "Groups is the groups you're testing for.", - "items": { - "type": "string" - }, - "type": "array" - }, - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - }, - "required": [ - "allowed" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceRule" - }, - "type": "array" - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceRule" - }, - "type": "array" - } - }, - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler": { - "description": "configuration of a horizontal pod autoscaler.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec", - "description": "behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus", - "description": "current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList": { - "description": "list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec": { - "description": "specification of a horizontal pod autoscaler.", - "properties": { - "maxReplicas": { - "description": "upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.", - "format": "int32", - "type": "integer" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference", - "description": "reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource." - }, - "targetCPUUtilizationPercentage": { - "description": "target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus": { - "description": "current status of a horizontal pod autoscaler", - "properties": { - "currentCPUUtilizationPercentage": { - "description": "current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.", - "format": "int32", - "type": "integer" - }, - "currentReplicas": { - "description": "current number of replicas of pods managed by this autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desired number of replicas of pods managed by this autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.Scale": { - "description": "Scale represents a scaling request for a resource.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec", - "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus", - "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.ScaleSpec": { - "description": "ScaleSpec describes the attributes of a scale subresource.", - "properties": { - "replicas": { - "description": "desired number of instances for the scaled object.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v1.ScaleStatus": { - "description": "ScaleStatus represents the current status of a scale subresource.", - "properties": { - "replicas": { - "description": "actual number of observed instances of the scaled object.", - "format": "int32", - "type": "integer" - }, - "selector": { - "description": "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors", - "type": "string" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricSource": { - "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one \"target\" type should be set.", - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "metricSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "metricSelector is used to identify a specific time series within a given metric." - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue." - }, - "targetValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue." - } - }, - "required": [ - "metricName" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus": { - "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - "properties": { - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of metric averaged over autoscaled pods." - }, - "currentValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentValue is the current value of the metric (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of a metric used for autoscaling in metric system.", - "type": "string" - }, - "metricSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "metricSelector is used to identify a specific time series within a given metric." - } - }, - "required": [ - "metricName", - "currentValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler": { - "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec", - "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus", - "description": "status is the current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition": { - "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the last time the condition transitioned from one status to another" - }, - "message": { - "description": "message is a human-readable explanation containing details about the transition", - "type": "string" - }, - "reason": { - "description": "reason is the reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition (True, False, Unknown)", - "type": "string" - }, - "type": { - "description": "type describes the current condition", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList": { - "description": "HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "items is the list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "metadata is the standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec": { - "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - "properties": { - "maxReplicas": { - "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - "format": "int32", - "type": "integer" - }, - "metrics": { - "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricSpec" - }, - "type": "array" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus": { - "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - "properties": { - "conditions": { - "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition" - }, - "type": "array" - }, - "currentMetrics": { - "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricStatus" - }, - "type": "array" - }, - "currentReplicas": { - "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas", - "conditions" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.MetricSpec": { - "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricSource", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricSource", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricSource", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricSource", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.MetricStatus": { - "description": "MetricStatus describes the last-read state of a single metric.", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricStatus", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricSource": { - "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "target is the described Kubernetes object." - }, - "targetValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetValue is the target value of the metric (as a quantity)." - } - }, - "required": [ - "target", - "metricName", - "targetValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus": { - "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "currentValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentValue is the current value of the metric (as a quantity)." - }, - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "target is the described Kubernetes object." - } - }, - "required": [ - "target", - "metricName", - "currentValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricSource": { - "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - } - }, - "required": [ - "metricName", - "targetAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricStatus": { - "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - "properties": { - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - } - }, - "required": [ - "metricName", - "currentAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricSource": { - "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "properties": { - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - }, - "targetAverageUtilization": { - "description": "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - "format": "int32", - "type": "integer" - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus": { - "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "properties": { - "currentAverageUtilization": { - "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", - "format": "int32", - "type": "integer" - }, - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification." - }, - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - } - }, - "required": [ - "name", - "currentAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ExternalMetricSource": { - "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - "properties": { - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "metric", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus": { - "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy": { - "description": "HPAScalingPolicy is a single policy which must hold true for a specified past interval.", - "properties": { - "periodSeconds": { - "description": "PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "Type is used to specify the scaling policy.", - "type": "string" - }, - "value": { - "description": "Value contains the amount of change which is permitted by the policy. It must be greater than zero", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "type", - "value", - "periodSeconds" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HPAScalingRules": { - "description": "HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.", - "properties": { - "policies": { - "description": "policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy" - }, - "type": "array" - }, - "selectPolicy": { - "description": "selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.", - "type": "string" - }, - "stabilizationWindowSeconds": { - "description": "StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler": { - "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec", - "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus", - "description": "status is the current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - ] - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior": { - "description": "HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).", - "properties": { - "scaleDown": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", - "description": "scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used)." - }, - "scaleUp": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", - "description": "scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\n * increase no more than 4 pods per 60 seconds\n * double the number of pods per 60 seconds\nNo stabilization is used." - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition": { - "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the last time the condition transitioned from one status to another" - }, - "message": { - "description": "message is a human-readable explanation containing details about the transition", - "type": "string" - }, - "reason": { - "description": "reason is the reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition (True, False, Unknown)", - "type": "string" - }, - "type": { - "description": "type describes the current condition", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList": { - "description": "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "items is the list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "metadata is the standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v2beta2" - } - ] - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec": { - "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - "properties": { - "behavior": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior", - "description": "behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used." - }, - "maxReplicas": { - "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - "format": "int32", - "type": "integer" - }, - "metrics": { - "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricSpec" - }, - "type": "array" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference", - "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus": { - "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - "properties": { - "conditions": { - "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition" - }, - "type": "array" - }, - "currentMetrics": { - "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricStatus" - }, - "type": "array" - }, - "currentReplicas": { - "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas", - "conditions" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricIdentifier": { - "description": "MetricIdentifier defines the name and optionally selector for a metric", - "properties": { - "name": { - "description": "name is the name of the given metric", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricSpec": { - "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricSource", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricSource", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricSource", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricSource", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricStatus": { - "description": "MetricStatus describes the last-read state of a single metric.", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricStatus", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricTarget": { - "description": "MetricTarget defines the target value, average value, or average utilization of a specific metric", - "properties": { - "averageUtilization": { - "description": "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type", - "format": "int32", - "type": "integer" - }, - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - }, - "type": { - "description": "type represents whether the metric type is Utilization, Value, or AverageValue", - "type": "string" - }, - "value": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "value is the target value of the metric (as a quantity)." - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricValueStatus": { - "description": "MetricValueStatus holds the current value for a metric", - "properties": { - "averageUtilization": { - "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - "format": "int32", - "type": "integer" - }, - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "value": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "value is the current value of the metric (as a quantity)." - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ObjectMetricSource": { - "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "describedObject": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "describedObject", - "target", - "metric" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus": { - "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "describedObject": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current", - "describedObject" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.PodsMetricSource": { - "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "properties": { - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "metric", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.PodsMetricStatus": { - "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ResourceMetricSource": { - "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "properties": { - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "name", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus": { - "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "name": { - "description": "Name is the name of the resource in question.", - "type": "string" - } - }, - "required": [ - "name", - "current" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.Job": { - "description": "Job represents the configuration of a single job.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", - "description": "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobStatus", - "description": "Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "Job", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobCondition": { - "description": "JobCondition describes current state of a job.", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition was checked." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transit from one status to another." - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of job condition, Complete or Failed.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.JobList": { - "description": "JobList is a collection of jobs.", - "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" - }, - "items": { - "description": "items is the list of Jobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "JobList", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobSpec": { - "description": "JobSpec describes how the job execution will look like.", - "properties": { - "activeDeadlineSeconds": { - "description": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", - "format": "int64", - "type": "integer" - }, - "backoffLimit": { - "description": "Specifies the number of retries before marking this job failed. Defaults to 6", - "format": "int32", - "type": "integer" - }, - "completions": { - "description": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "format": "int32", - "type": "integer" - }, - "manualSelector": { - "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", - "type": "boolean" - }, - "parallelism": { - "description": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) \u003c .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/" - }, - "ttlSecondsAfterFinished": { - "description": "ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "template" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.JobStatus": { - "description": "JobStatus represents the current state of a Job.", - "properties": { - "active": { - "description": "The number of actively running pods.", - "format": "int32", - "type": "integer" - }, - "completionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC." - }, - "conditions": { - "description": "The latest available observations of an object's current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "failed": { - "description": "The number of pods which reached phase Failed.", - "format": "int32", - "type": "integer" - }, - "startTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job was acknowledged by the job controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC." - }, - "succeeded": { - "description": "The number of pods which reached phase Succeeded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.batch.v1beta1.CronJob": { - "description": "CronJob represents the configuration of a single cron job.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobSpec", - "description": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobStatus", - "description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobList": { - "description": "CronJobList is a collection of cron jobs.", - "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" - }, - "items": { - "description": "items is the list of CronJobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJobList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobSpec": { - "description": "CronJobSpec describes how the job execution will look like and when it will actually run.", - "properties": { - "concurrencyPolicy": { - "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", - "type": "string" - }, - "failedJobsHistoryLimit": { - "description": "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "format": "int32", - "type": "integer" - }, - "jobTemplate": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.JobTemplateSpec", - "description": "Specifies the job that will be created when executing a CronJob." - }, - "schedule": { - "description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", - "type": "string" - }, - "startingDeadlineSeconds": { - "description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - "format": "int64", - "type": "integer" - }, - "successfulJobsHistoryLimit": { - "description": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.", - "format": "int32", - "type": "integer" - }, - "suspend": { - "description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", - "type": "boolean" - } - }, - "required": [ - "schedule", - "jobTemplate" - ], - "type": "object" - }, - "io.k8s.api.batch.v1beta1.CronJobStatus": { - "description": "CronJobStatus represents the current state of a cron job.", - "properties": { - "active": { - "description": "A list of pointers to currently running jobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array" - }, - "lastScheduleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Information when was the last time the job was successfully scheduled." - } - }, - "type": "object" - }, - "io.k8s.api.batch.v1beta1.JobTemplateSpec": { - "description": "JobTemplateSpec describes the data a Job should have when created from a template", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", - "description": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequest": { - "description": "Describes a certificate signing request", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec", - "description": "The certificate request itself and any additional information." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus", - "description": "Derived information about the request." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition": { - "properties": { - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "timestamp for the last update to this condition" - }, - "message": { - "description": "human readable message with details about the request state", - "type": "string" - }, - "reason": { - "description": "brief reason for the request state", - "type": "string" - }, - "type": { - "description": "request approval state, currently Approved or Denied.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestList": { - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequestList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec": { - "description": "This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra information about the requesting user. See user.Info interface for details.", - "type": "object" - }, - "groups": { - "description": "Group information about the requesting user. See user.Info interface for details.", - "items": { - "type": "string" - }, - "type": "array" - }, - "request": { - "description": "Base64-encoded PKCS#10 CSR data", - "format": "byte", - "type": "string" - }, - "signerName": { - "description": "Requested signer for the request. It is a qualified name in the form: `scope-hostname.io/name`. If empty, it will be defaulted:\n 1. If it's a kubelet client certificate, it is assigned\n \"kubernetes.io/kube-apiserver-client-kubelet\".\n 2. If it's a kubelet serving certificate, it is assigned\n \"kubernetes.io/kubelet-serving\".\n 3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\nDistribution of trust for signers happens out of band. You can select on this field using `spec.signerName`.", - "type": "string" - }, - "uid": { - "description": "UID information about the requesting user. See user.Info interface for details.", - "type": "string" - }, - "usages": { - "description": "allowedUsages specifies a set of usage contexts the key will be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3\n https://tools.ietf.org/html/rfc5280#section-4.2.1.12", - "items": { - "type": "string" - }, - "type": "array" - }, - "username": { - "description": "Information about the requesting user. See user.Info interface for details.", - "type": "string" - } - }, - "required": [ - "request" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus": { - "properties": { - "certificate": { - "description": "If request was approved, the controller will place the issued certificate here.", - "format": "byte", - "type": "string" - }, - "conditions": { - "description": "Conditions applied to the request, such as approval or denial.", - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.coordination.v1.Lease": { - "description": "Lease defines a lease concept.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseSpec", - "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - ] - }, - "io.k8s.api.coordination.v1.LeaseList": { - "description": "LeaseList is a list of Lease objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "LeaseList", - "version": "v1" - } - ] - }, - "io.k8s.api.coordination.v1.LeaseSpec": { - "description": "LeaseSpec is a specification of a Lease.", - "properties": { - "acquireTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "acquireTime is a time when the current lease was acquired." - }, - "holderIdentity": { - "description": "holderIdentity contains the identity of the holder of a current lease.", - "type": "string" - }, - "leaseDurationSeconds": { - "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - "format": "int32", - "type": "integer" - }, - "leaseTransitions": { - "description": "leaseTransitions is the number of transitions of a lease between holders.", - "format": "int32", - "type": "integer" - }, - "renewTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "renewTime is a time when the current holder of a lease has last updated the lease." - } - }, - "type": "object" - }, - "io.k8s.api.coordination.v1beta1.Lease": { - "description": "Lease defines a lease concept.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseSpec", - "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.coordination.v1beta1.LeaseList": { - "description": "LeaseList is a list of Lease objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "LeaseList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.coordination.v1beta1.LeaseSpec": { - "description": "LeaseSpec is a specification of a Lease.", - "properties": { - "acquireTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "acquireTime is a time when the current lease was acquired." - }, - "holderIdentity": { - "description": "holderIdentity contains the identity of the holder of a current lease.", - "type": "string" - }, - "leaseDurationSeconds": { - "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - "format": "int32", - "type": "integer" - }, - "leaseTransitions": { - "description": "leaseTransitions is the number of transitions of a lease between holders.", - "format": "int32", - "type": "integer" - }, - "renewTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "renewTime is a time when the current holder of a lease has last updated the lease." - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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).", - "format": "int32", - "type": "integer" - }, - "readOnly": { - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "boolean" - }, - "volumeID": { - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Affinity": { - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity", - "description": "Describes node affinity scheduling rules for the pod." - }, - "podAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity", - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." - }, - "podAntiAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity", - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.AttachedVolume": { - "description": "AttachedVolume describes a volume attached to a node", - "properties": { - "devicePath": { - "description": "DevicePath represents the device path where the volume should be available", - "type": "string" - }, - "name": { - "description": "Name of the attached volume", - "type": "string" - } - }, - "required": [ - "name", - "devicePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureDiskVolumeSource": { - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "properties": { - "cachingMode": { - "description": "Host Caching mode: None, Read Only, Read Write.", - "type": "string" - }, - "diskName": { - "description": "The Name of the data disk in the blob storage", - "type": "string" - }, - "diskURI": { - "description": "The URI the data disk in the blob storage", - "type": "string" - }, - "fsType": { - "description": "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": "Expected values 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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - } - }, - "required": [ - "diskName", - "diskURI" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "secretNamespace": { - "description": "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - }, - "required": [ - "secretName", - "shareName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureFileVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - }, - "required": [ - "secretName", - "shareName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Binding": { - "description": "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The target object that you want to bind to the standard object." - } - }, - "required": [ - "target" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Binding", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.CSIPersistentVolumeSource": { - "description": "Represents storage that is managed by an external CSI volume driver (Beta feature)", - "properties": { - "controllerExpandSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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 is an alpha field and requires enabling ExpandCSIVolumes feature gate. 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." - }, - "controllerPublishSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "driver": { - "description": "Driver is the name of the driver to use for this volume. Required.", - "type": "string" - }, - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".", - "type": "string" - }, - "nodePublishSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "nodeStageSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "readOnly": { - "description": "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "Attributes of the volume to publish.", - "type": "object" - }, - "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" - } - }, - "required": [ - "driver", - "volumeHandle" - ], - "type": "object" - }, - "io.k8s.api.core.v1.CSIVolumeSource": { - "description": "Represents a source location of a volume to mount, managed by an external CSI 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": "Filesystem type 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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "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." - }, - "readOnly": { - "description": "Specifies a read-only configuration for the volume. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - "type": "object" - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Capabilities": { - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "description": "Added capabilities", - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "description": "Removed capabilities", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "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" - }, - "user": { - "description": "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" - } - }, - "required": [ - "monitors" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "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" - }, - "user": { - "description": "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" - } - }, - "required": [ - "monitors" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ClientIPConfig": { - "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", - "properties": { - "timeoutSeconds": { - "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ComponentCondition": { - "description": "Information about the condition of a component.", - "properties": { - "error": { - "description": "Condition error code for a component. For example, a health check error code.", - "type": "string" - }, - "message": { - "description": "Message about the condition for a component. For example, information about a health check.", - "type": "string" - }, - "status": { - "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".", - "type": "string" - }, - "type": { - "description": "Type of condition for a component. Valid value: \"Healthy\"", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ComponentStatus": { - "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info.", - "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" - }, - "conditions": { - "description": "List of component conditions observed", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ComponentStatusList": { - "description": "Status of all the conditions for the component as a list of ComponentStatus objects.", - "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" - }, - "items": { - "description": "List of ComponentStatus objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatusList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMap": { - "description": "ConfigMap holds configuration data for pods to consume.", - "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" - }, - "binaryData": { - "additionalProperties": { - "format": "byte", - "type": "string" - }, - "description": "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.", - "type": "object" - }, - "data": { - "additionalProperties": { - "type": "string" - }, - "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.", - "type": "object" - }, - "immutable": { - "description": "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is an alpha field enabled by ImmutableEphemeralVolumes feature gate.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapEnvSource": { - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "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 must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ConfigMapKeySelector": { - "description": "Selects a key from a ConfigMap.", - "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" - } - }, - "required": [ - "key" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ConfigMapList": { - "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", - "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" - }, - "items": { - "description": "Items is the list of ConfigMaps.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMapList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapNodeConfigSource": { - "description": "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.", - "properties": { - "kubeletConfigKey": { - "description": "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.", - "type": "string" - }, - "name": { - "description": "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "resourceVersion": { - "description": "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - }, - "uid": { - "description": "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - } - }, - "required": [ - "namespace", - "name", - "kubeletConfigKey" - ], - "type": "object" - }, - "io.k8s.api.core.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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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 keys must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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 keys must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Container": { - "description": "A single application container that you want to run within a pod.", - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - }, - "type": "array" - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." - }, - "livenessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "name": { - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", - "type": "string" - }, - "ports": { - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "containerPort", - "protocol" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "containerPort", - "x-kubernetes-patch-strategy": "merge" - }, - "readinessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "startupProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeDevices": { - "description": "volumeDevices is the list of block devices to be used by the container.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerImage": { - "description": "Describe a container image", - "properties": { - "names": { - "description": "Names by which this image is known. e.g. [\"k8s.gcr.io/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]", - "items": { - "type": "string" - }, - "type": "array" - }, - "sizeBytes": { - "description": "The size of the image in bytes.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "names" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerPort": { - "description": "ContainerPort represents a network port in a single container.", - "properties": { - "containerPort": { - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536.", - "format": "int32", - "type": "integer" - }, - "hostIP": { - "description": "What host IP to bind the external port to.", - "type": "string" - }, - "hostPort": { - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", - "format": "int32", - "type": "integer" - }, - "name": { - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", - "type": "string" - }, - "protocol": { - "description": "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".", - "type": "string" - } - }, - "required": [ - "containerPort" - ], - "type": "object" - }, - "io.k8s.api.core.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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning", - "description": "Details about a running container" - }, - "terminated": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated", - "description": "Details about a terminated container" - }, - "waiting": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting", - "description": "Details about a waiting container" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStateRunning": { - "description": "ContainerStateRunning is a running state of a container.", - "properties": { - "startedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which the container was last (re-)started" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStateTerminated": { - "description": "ContainerStateTerminated is a terminated state of a container.", - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'", - "type": "string" - }, - "exitCode": { - "description": "Exit status from the last termination of the container", - "format": "int32", - "type": "integer" - }, - "finishedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which the container last terminated" - }, - "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", - "format": "int32", - "type": "integer" - }, - "startedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which previous execution of the container started" - } - }, - "required": [ - "exitCode" - ], - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStatus": { - "description": "ContainerStatus contains details for the current status of this container.", - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'.", - "type": "string" - }, - "image": { - "description": "The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images", - "type": "string" - }, - "imageID": { - "description": "ImageID of the container's image.", - "type": "string" - }, - "lastState": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", - "description": "Details about the container's last termination condition." - }, - "name": { - "description": "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.", - "type": "string" - }, - "ready": { - "description": "Specifies whether the container has passed its readiness probe.", - "type": "boolean" - }, - "restartCount": { - "description": "The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.", - "format": "int32", - "type": "integer" - }, - "started": { - "description": "Specifies whether the container has 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. Is always true when no startupProbe is defined.", - "type": "boolean" - }, - "state": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", - "description": "Details about the container's current condition." - } - }, - "required": [ - "name", - "ready", - "restartCount", - "image", - "imageID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.DaemonEndpoint": { - "description": "DaemonEndpoint contains information about a single Daemon endpoint.", - "properties": { - "Port": { - "description": "Port number of the given endpoint.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "Port" - ], - "type": "object" - }, - "io.k8s.api.core.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", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.DownwardAPIVolumeFile": { - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "properties": { - "fieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." - }, - "mode": { - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.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 value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "Items is a list of downward API volume file", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EmptyDirVolumeSource": { - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "description": "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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "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: http://kubernetes.io/docs/user-guide/volumes#emptydir" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EndpointAddress": { - "description": "EndpointAddress is a tuple that describes single IP address.", - "properties": { - "hostname": { - "description": "The Hostname of this endpoint", - "type": "string" - }, - "ip": { - "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.", - "type": "string" - }, - "nodeName": { - "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.", - "type": "string" - }, - "targetRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Reference to object providing the endpoint." - } - }, - "required": [ - "ip" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EndpointPort": { - "description": "EndpointPort is a tuple that describes a single port.", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. Field can be enabled with ServiceAppProtocol feature gate.", - "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.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - "type": "string" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EndpointSubset": { - "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309 ]", - "properties": { - "addresses": { - "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - }, - "type": "array" - }, - "notReadyAddresses": { - "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - }, - "type": "array" - }, - "ports": { - "description": "Port numbers available on the related IP addresses.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Endpoints": { - "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "subsets": { - "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EndpointsList": { - "description": "EndpointsList is a list of endpoints.", - "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" - }, - "items": { - "description": "List of endpoints.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EndpointsList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EnvFromSource": { - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "configMapRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource", - "description": "The ConfigMap to select from" - }, - "prefix": { - "description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - "type": "string" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource", - "description": "The Secret to select from" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EnvVar": { - "description": "EnvVar represents an environment variable present in a Container.", - "properties": { - "name": { - "description": "Name of the environment variable. Must be a C_IDENTIFIER.", - "type": "string" - }, - "value": { - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", - "type": "string" - }, - "valueFrom": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource", - "description": "Source for the environment variable's value. Cannot be used if value is not empty." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EnvVarSource": { - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "configMapKeyRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector", - "description": "Selects a key of a ConfigMap." - }, - "fieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", - "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." - }, - "resourceFieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", - "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." - }, - "secretKeyRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector", - "description": "Selects a key of a secret in the pod's namespace" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EphemeralContainer": { - "description": "An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag.", - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - }, - "type": "array" - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", - "description": "Lifecycle is not allowed for ephemeral containers." - }, - "livenessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "name": { - "description": "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.", - "type": "string" - }, - "ports": { - "description": "Ports are not allowed for ephemeral containers.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "type": "array" - }, - "readinessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", - "description": "SecurityContext is not allowed for ephemeral containers." - }, - "startupProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "targetContainerName": { - "description": "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container is run in whatever namespaces are shared for the pod. Note that the container runtime must support this feature.", - "type": "string" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeDevices": { - "description": "volumeDevices is the list of block devices to be used by the container.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Event": { - "description": "Event is a report of an event somewhere in the cluster.", - "properties": { - "action": { - "description": "What action was taken/failed regarding to the Regarding object.", - "type": "string" - }, - "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" - }, - "count": { - "description": "The number of times this event has occurred.", - "format": "int32", - "type": "integer" - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time when this Event was first observed." - }, - "firstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)" - }, - "involvedObject": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The object that this event is about." - }, - "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" - }, - "lastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The time at which the most recent occurrence of this event was recorded." - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "reason": { - "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", - "type": "string" - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Optional secondary object for more complex actions." - }, - "reportingComponent": { - "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", - "type": "string" - }, - "reportingInstance": { - "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSeries", - "description": "Data about the Event series this event represents or nil if it's a singleton Event." - }, - "source": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "The component reporting this event. Should be a short machine understandable string." - }, - "type": { - "description": "Type of this event (Normal, Warning), new types could be added in the future", - "type": "string" - } - }, - "required": [ - "metadata", - "involvedObject" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Event", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventList": { - "description": "EventList is a list of events.", - "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" - }, - "items": { - "description": "List of events", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EventList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "properties": { - "count": { - "description": "Number of occurrences in this series up to the last heartbeat time", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time of the last occurrence observed" - }, - "state": { - "description": "State of this Series: Ongoing or Finished Deprecated. Planned removal for 1.18", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EventSource": { - "description": "EventSource contains information for an event.", - "properties": { - "component": { - "description": "Component from which the event is generated.", - "type": "string" - }, - "host": { - "description": "Node name on which the event is generated.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "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": "Optional: FC target lun number", - "format": "int32", - "type": "integer" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "targetWWNs": { - "description": "Optional: FC target worldwide names (WWNs)", - "items": { - "type": "string" - }, - "type": "array" - }, - "wwids": { - "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.FlexPersistentVolumeSource": { - "description": "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.", - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional: Extra command options if any.", - "type": "object" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "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." - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.v1.FlexVolumeSource": { - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional: Extra command options if any.", - "type": "object" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "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." - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.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": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated", - "type": "string" - }, - "datasetUUID": { - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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", - "format": "int32", - "type": "integer" - }, - "pdName": { - "description": "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" - } - }, - "required": [ - "pdName" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "directory": { - "description": "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 URL", - "type": "string" - }, - "revision": { - "description": "Commit hash for the specified revision.", - "type": "string" - } - }, - "required": [ - "repository" - ], - "type": "object" - }, - "io.k8s.api.core.v1.GlusterfsPersistentVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "properties": { - "endpoints": { - "description": "EndpointsName 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" - } - }, - "required": [ - "endpoints", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.GlusterfsVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "properties": { - "endpoints": { - "description": "EndpointsName 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" - } - }, - "required": [ - "endpoints", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.HTTPGetAction": { - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" - }, - "type": "array" - }, - "path": { - "description": "Path to access on the HTTP server.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "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." - }, - "scheme": { - "description": "Scheme to use for connecting to the host. Defaults to HTTP.", - "type": "string" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.HTTPHeader": { - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "properties": { - "name": { - "description": "The header field name", - "type": "string" - }, - "value": { - "description": "The header field value", - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Handler": { - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.HostAlias": { - "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", - "properties": { - "hostnames": { - "description": "Hostnames for the above IP address.", - "items": { - "type": "string" - }, - "type": "array" - }, - "ip": { - "description": "IP address of the host file entry.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.HostPathVolumeSource": { - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "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": "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": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "format": "int32", - "type": "integer" - }, - "portals": { - "description": "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).", - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "CHAP Secret for iSCSI target and initiator authentication" - }, - "targetPortal": { - "description": "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" - } - }, - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "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": "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": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "format": "int32", - "type": "integer" - }, - "portals": { - "description": "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).", - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "CHAP Secret for iSCSI target and initiator authentication" - }, - "targetPortal": { - "description": "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" - } - }, - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "type": "object" - }, - "io.k8s.api.core.v1.KeyToPath": { - "description": "Maps a string key to a path within a volume.", - "properties": { - "key": { - "description": "The key to project.", - "type": "string" - }, - "mode": { - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "path": { - "description": "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" - } - }, - "required": [ - "key", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Lifecycle": { - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "$ref": "#/definitions/io.k8s.api.core.v1.Handler", - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - }, - "preStop": { - "$ref": "#/definitions/io.k8s.api.core.v1.Handler", - "description": "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LimitRange": { - "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec", - "description": "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeItem": { - "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", - "properties": { - "default": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Default resource requirement limit value by resource name if resource limit is omitted.", - "type": "object" - }, - "defaultRequest": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.", - "type": "object" - }, - "max": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Max usage constraints on this kind by resource name.", - "type": "object" - }, - "maxLimitRequestRatio": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.", - "type": "object" - }, - "min": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Min usage constraints on this kind by resource name.", - "type": "object" - }, - "type": { - "description": "Type of resource that this limit applies to.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.core.v1.LimitRangeList": { - "description": "LimitRangeList is a list of LimitRange items.", - "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" - }, - "items": { - "description": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRangeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeSpec": { - "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", - "properties": { - "limits": { - "description": "Limits is the list of LimitRangeItem objects that are enforced.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" - }, - "type": "array" - } - }, - "required": [ - "limits" - ], - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerIngress": { - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "hostname": { - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", - "type": "string" - }, - "ip": { - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerStatus": { - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LocalVolumeSource": { - "description": "Local represents directly-attached storage with node affinity (Beta feature)", - "properties": { - "fsType": { - "description": "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 fileystem if unspecified.", - "type": "string" - }, - "path": { - "description": "The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).", - "type": "string" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NFSVolumeSource": { - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "server", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Namespace": { - "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec", - "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus", - "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Namespace", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceCondition": { - "description": "NamespaceCondition contains details about state of namespace.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of namespace controller condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NamespaceList": { - "description": "NamespaceList is a list of Namespaces.", - "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" - }, - "items": { - "description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NamespaceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceSpec": { - "description": "NamespaceSpec describes the attributes on a Namespace.", - "properties": { - "finalizers": { - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NamespaceStatus": { - "description": "NamespaceStatus is information about the current status of a Namespace.", - "properties": { - "conditions": { - "description": "Represents the latest available observations of a namespace's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "phase": { - "description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Node": { - "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec", - "description": "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus", - "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Node", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeAddress": { - "description": "NodeAddress contains information for the node's address.", - "properties": { - "address": { - "description": "The node address.", - "type": "string" - }, - "type": { - "description": "Node address type, one of Hostname, ExternalIP or InternalIP.", - "type": "string" - } - }, - "required": [ - "type", - "address" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeAffinity": { - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeCondition": { - "description": "NodeCondition contains condition information for a node.", - "properties": { - "lastHeartbeatTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we got an update on a given condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transit from one status to another." - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of node condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeConfigSource": { - "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", - "properties": { - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource", - "description": "ConfigMap is a reference to a Node's ConfigMap" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeConfigStatus": { - "description": "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.", - "properties": { - "active": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error." - }, - "assigned": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned." - }, - "error": { - "description": "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.", - "type": "string" - }, - "lastKnownGood": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeDaemonEndpoints": { - "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", - "properties": { - "kubeletEndpoint": { - "$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint", - "description": "Endpoint on which Kubelet is listening." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeList": { - "description": "NodeList is the whole list of all Nodes which have been registered with master.", - "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" - }, - "items": { - "description": "List of nodes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NodeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeSelector": { - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "properties": { - "nodeSelectorTerms": { - "description": "Required. A list of node selector terms. The terms are ORed.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" - }, - "type": "array" - } - }, - "required": [ - "nodeSelectorTerms" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeSelectorRequirement": { - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "operator": { - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - "type": "string" - }, - "values": { - "description": "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "operator" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeSelectorTerm": { - "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.", - "properties": { - "matchExpressions": { - "description": "A list of node selector requirements by node's labels.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - }, - "type": "array" - }, - "matchFields": { - "description": "A list of node selector requirements by node's fields.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeSpec": { - "description": "NodeSpec describes the attributes that a node is created with.", - "properties": { - "configSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field" - }, - "externalID": { - "description": "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966", - "type": "string" - }, - "podCIDR": { - "description": "PodCIDR represents the pod IP range assigned to the node.", - "type": "string" - }, - "podCIDRs": { - "description": "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-patch-strategy": "merge" - }, - "providerID": { - "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e", - "type": "string" - }, - "taints": { - "description": "If specified, the node's taints.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Taint" - }, - "type": "array" - }, - "unschedulable": { - "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeStatus": { - "description": "NodeStatus is information about the current status of a node.", - "properties": { - "addresses": { - "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See http://pr.k8s.io/79391 for an example.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "allocatable": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.", - "type": "object" - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object" - }, - "conditions": { - "description": "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "config": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigStatus", - "description": "Status of the config assigned to the node via the dynamic Kubelet config feature." - }, - "daemonEndpoints": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints", - "description": "Endpoints of daemons running on the Node." - }, - "images": { - "description": "List of container images on this node", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" - }, - "type": "array" - }, - "nodeInfo": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo", - "description": "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info" - }, - "phase": { - "description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", - "type": "string" - }, - "volumesAttached": { - "description": "List of volumes that are attached to the node.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume" - }, - "type": "array" - }, - "volumesInUse": { - "description": "List of attachable volumes in use (mounted) by the node.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeSystemInfo": { - "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", - "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. docker://1.5.0).", - "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/getting-system-uuid.html", - "type": "string" - } - }, - "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion", - "operatingSystem", - "architecture" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ObjectFieldSelector": { - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "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" - } - }, - "required": [ - "fieldPath" - ], - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolume": { - "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus", - "description": "Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaim": { - "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", - "description": "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus", - "description": "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { - "description": "PersistentVolumeClaimCondition contails details about state of pvc", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized.", - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimList": { - "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", - "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" - }, - "items": { - "description": "A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaimList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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", - "items": { - "type": "string" - }, - "type": "array" - }, - "dataSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot - Beta) * An existing PVC (PersistentVolumeClaim) * An existing custom resource/object that implements data population (Alpha) In order to use VolumeSnapshot object types, the appropriate feature gate must be enabled (VolumeSnapshotDataSource or AnyVolumeDataSource) 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. If the specified data source is not supported, the volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change." - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over volumes to consider for binding." - }, - "storageClassName": { - "description": "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { - "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", - "properties": { - "accessModes": { - "description": "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - "items": { - "type": "string" - }, - "type": "array" - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Represents the actual resources of the underlying volume.", - "type": "object" - }, - "conditions": { - "description": "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "phase": { - "description": "Phase represents the current phase of PersistentVolumeClaim.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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).", - "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": "Will force the ReadOnly setting in VolumeMounts. Default false.", - "type": "boolean" - } - }, - "required": [ - "claimName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeList": { - "description": "PersistentVolumeList is a list of PersistentVolume items.", - "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" - }, - "items": { - "description": "List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeSpec": { - "description": "PersistentVolumeSpec is the specification of a persistent volume.", - "properties": { - "accessModes": { - "description": "AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", - "items": { - "type": "string" - }, - "type": "array" - }, - "awsElasticBlockStore": { - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", - "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" - }, - "azureDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "azureFile": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object" - }, - "cephfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "cinder": { - "$ref": "#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" - }, - "claimRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding" - }, - "csi": { - "$ref": "#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource", - "description": "CSI represents storage that is handled by an external CSI driver (Beta feature)." - }, - "fc": { - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flexVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." - }, - "flocker": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", - "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" - }, - "gcePersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", - "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" - }, - "glusterfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource", - "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" - }, - "hostPath": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", - "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" - }, - "iscsi": { - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource", - "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." - }, - "local": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalVolumeSource", - "description": "Local represents directly-attached storage with node affinity" - }, - "mountOptions": { - "description": "A list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", - "items": { - "type": "string" - }, - "type": "array" - }, - "nfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" - }, - "nodeAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity", - "description": "NodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume." - }, - "persistentVolumeReclaimPolicy": { - "description": "What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", - "type": "string" - }, - "photonPersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "rbd": { - "$ref": "#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource", - "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" - }, - "scaleIO": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "storageClassName": { - "description": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", - "type": "string" - }, - "storageos": { - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource", - "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" - }, - "volumeMode": { - "description": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.", - "type": "string" - }, - "vsphereVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeStatus": { - "description": "PersistentVolumeStatus is the current status of a persistent volume.", - "properties": { - "message": { - "description": "A human-readable message indicating details about why the volume is in this state.", - "type": "string" - }, - "phase": { - "description": "Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase", - "type": "string" - }, - "reason": { - "description": "Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { - "description": "Represents a Photon Controller persistent disk resource.", - "properties": { - "fsType": { - "description": "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": "ID that identifies Photon Controller persistent disk", - "type": "string" - } - }, - "required": [ - "pdID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Pod": { - "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodStatus", - "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Pod", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodAffinity": { - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodAffinityTerm": { - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over a set of resources, in this case pods." - }, - "namespaces": { - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - "type": "string" - } - }, - "required": [ - "topologyKey" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodAntiAffinity": { - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodCondition": { - "description": "PodCondition contains details for the current condition of this pod.", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodDNSConfig": { - "description": "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.", - "properties": { - "nameservers": { - "description": "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "options": { - "description": "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfigOption" - }, - "type": "array" - }, - "searches": { - "description": "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodDNSConfigOption": { - "description": "PodDNSConfigOption defines DNS resolver options of a pod.", - "properties": { - "name": { - "description": "Required.", - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodIP": { - "description": "IP address information for entries in the (plural) PodIPs field. Each entry includes:\n IP: An IP address allocated to the pod. Routable at least within the cluster.", - "properties": { - "ip": { - "description": "ip is an IP address (IPv4 or IPv6) assigned to the pod", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodList": { - "description": "PodList is a list of Pods.", - "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" - }, - "items": { - "description": "List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodReadinessGate": { - "description": "PodReadinessGate contains the reference to a pod condition", - "properties": { - "conditionType": { - "description": "ConditionType refers to a condition in the pod's condition list with matching type.", - "type": "string" - } - }, - "required": [ - "conditionType" - ], - "type": "object" - }, - "io.k8s.api.core.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----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.", - "format": "int64", - "type": "integer" - }, - "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 defaults to \"Always\".", - "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.", - "format": "int64", - "type": "integer" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "supplementalGroups": { - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", - "items": { - "format": "int64", - "type": "integer" - }, - "type": "array" - }, - "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Sysctl" - }, - "type": "array" - }, - "windowsOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodSpec": { - "description": "PodSpec is a description of a pod.", - "properties": { - "activeDeadlineSeconds": { - "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", - "format": "int64", - "type": "integer" - }, - "affinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.Affinity", - "description": "If specified, the pod's scheduling constraints" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", - "type": "boolean" - }, - "containers": { - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "dnsConfig": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig", - "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy." - }, - "dnsPolicy": { - "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", - "type": "string" - }, - "enableServiceLinks": { - "description": "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.", - "type": "boolean" - }, - "ephemeralContainers": { - "description": "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralContainer" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "hostAliases": { - "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "hostIPC": { - "description": "Use the host's ipc namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostNetwork": { - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.", - "type": "boolean" - }, - "hostPID": { - "description": "Use the host's pid namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostname": { - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", - "type": "string" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "initContainers": { - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "nodeName": { - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.", - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", - "type": "object" - }, - "overhead": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.", - "type": "object" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.", - "type": "string" - }, - "priority": { - "description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", - "format": "int32", - "type": "integer" - }, - "priorityClassName": { - "description": "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", - "type": "string" - }, - "readinessGates": { - "description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodReadinessGate" - }, - "type": "array" - }, - "restartPolicy": { - "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", - "type": "string" - }, - "runtimeClassName": { - "description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.", - "type": "string" - }, - "schedulerName": { - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", - "type": "string" - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext", - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." - }, - "serviceAccount": { - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", - "type": "string" - }, - "serviceAccountName": { - "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "type": "string" - }, - "shareProcessNamespace": { - "description": "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.", - "type": "boolean" - }, - "subdomain": { - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all.", - "type": "string" - }, - "terminationGracePeriodSeconds": { - "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. 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. Defaults to 30 seconds.", - "format": "int64", - "type": "integer" - }, - "tolerations": { - "description": "If specified, the pod's tolerations.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - }, - "type": "array" - }, - "topologySpreadConstraints": { - "description": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. This field is only honored by clusters that enable the EvenPodsSpread feature. All topologySpreadConstraints are ANDed.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "topologyKey", - "whenUnsatisfiable" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "topologyKey", - "x-kubernetes-patch-strategy": "merge" - }, - "volumes": { - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Volume" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge,retainKeys" - } - }, - "required": [ - "containers" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodStatus": { - "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.", - "properties": { - "conditions": { - "description": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "containerStatuses": { - "description": "The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "ephemeralContainerStatuses": { - "description": "Status for any ephemeral containers that have run in this pod. This field is alpha-level and is only populated by servers that enable the EphemeralContainers feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "hostIP": { - "description": "IP address of the host to which the pod is assigned. Empty if not yet scheduled.", - "type": "string" - }, - "initContainerStatuses": { - "description": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "message": { - "description": "A human readable message indicating details about why the pod is in this condition.", - "type": "string" - }, - "nominatedNodeName": { - "description": "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.", - "type": "string" - }, - "phase": { - "description": "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", - "type": "string" - }, - "podIP": { - "description": "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", - "type": "string" - }, - "podIPs": { - "description": "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodIP" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "qosClass": { - "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md", - "type": "string" - }, - "reason": { - "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", - "type": "string" - }, - "startTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodTemplate": { - "description": "PodTemplate describes a template for creating copies of a predefined pod.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateList": { - "description": "PodTemplateList is a list of PodTemplates.", - "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" - }, - "items": { - "description": "List of pod templates", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplateList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateSpec": { - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PortworxVolumeSource": { - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "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": "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" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PreferredSchedulingTerm": { - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "properties": { - "preference": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm", - "description": "A node selector term, associated with the corresponding weight." - }, - "weight": { - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "weight", - "preference" - ], - "type": "object" - }, - "io.k8s.api.core.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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "failureThreshold": { - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - "format": "int32", - "type": "integer" - }, - "httpGet": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "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", - "format": "int32", - "type": "integer" - }, - "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - "format": "int32", - "type": "integer" - }, - "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.", - "format": "int32", - "type": "integer" - }, - "tcpSocket": { - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - }, - "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", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ProjectedVolumeSource": { - "description": "Represents a projected volume source", - "properties": { - "defaultMode": { - "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "sources": { - "description": "list of volume projections", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" - }, - "type": "array" - } - }, - "required": [ - "sources" - ], - "type": "object" - }, - "io.k8s.api.core.v1.QuobyteVolumeSource": { - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "registry", - "volume" - ], - "type": "object" - }, - "io.k8s.api.core.v1.RBDPersistentVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - }, - "required": [ - "monitors", - "image" - ], - "type": "object" - }, - "io.k8s.api.core.v1.RBDVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "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" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - }, - "required": [ - "monitors", - "image" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationController": { - "description": "ReplicationController represents the configuration of a replication controller.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec", - "description": "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus", - "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerCondition": { - "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replication controller condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationControllerList": { - "description": "ReplicationControllerList is a collection of replication controllers.", - "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" - }, - "items": { - "description": "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationControllerList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerSpec": { - "description": "ReplicationControllerSpec is the specification of a replication controller.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "description": "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "type": "object" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationControllerStatus": { - "description": "ReplicationControllerStatus represents the current status of a replication controller.", - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a replication controller's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replication controller.", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed replication controller.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replication controller.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ResourceFieldSelector": { - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "properties": { - "containerName": { - "description": "Container name: required for volumes, optional for env vars", - "type": "string" - }, - "divisor": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "Specifies the output format of the exposed resources, defaults to \"1\"" - }, - "resource": { - "description": "Required: resource to select", - "type": "string" - } - }, - "required": [ - "resource" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ResourceQuota": { - "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec", - "description": "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus", - "description": "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaList": { - "description": "ResourceQuotaList is a list of ResourceQuota items.", - "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" - }, - "items": { - "description": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuotaList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaSpec": { - "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - "properties": { - "hard": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object" - }, - "scopeSelector": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScopeSelector", - "description": "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched." - }, - "scopes": { - "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ResourceQuotaStatus": { - "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", - "properties": { - "hard": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object" - }, - "used": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Used is the current observed total usage of the resource in the namespace.", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ResourceRequirements": { - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object" - }, - "requests": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { - "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", - "properties": { - "fsType": { - "description": "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": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - }, - "required": [ - "gateway", - "system", - "secretRef" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ScaleIOVolumeSource": { - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "properties": { - "fsType": { - "description": "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": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - }, - "required": [ - "gateway", - "system", - "secretRef" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ScopeSelector": { - "description": "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.", - "properties": { - "matchExpressions": { - "description": "A list of scope selector requirements by scope of the resources.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ScopedResourceSelectorRequirement": { - "description": "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.", - "properties": { - "operator": { - "description": "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.", - "type": "string" - }, - "scopeName": { - "description": "The name of the scope that the selector applies to.", - "type": "string" - }, - "values": { - "description": "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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "scopeName", - "operator" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Secret": { - "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", - "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" - }, - "data": { - "additionalProperties": { - "format": "byte", - "type": "string" - }, - "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", - "type": "object" - }, - "immutable": { - "description": "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is an alpha field enabled by ImmutableEphemeralVolumes feature gate.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "stringData": { - "additionalProperties": { - "type": "string" - }, - "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.", - "type": "object" - }, - "type": { - "description": "Used to facilitate programmatic handling of secret data.", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Secret", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.SecretEnvSource": { - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "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 must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SecretKeySelector": { - "description": "SecretKeySelector selects a key of a Secret.", - "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" - } - }, - "required": [ - "key" - ], - "type": "object" - }, - "io.k8s.api.core.v1.SecretList": { - "description": "SecretList is a list of Secret.", - "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" - }, - "items": { - "description": "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "SecretList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "optional": { - "description": "Specify whether the Secret or its keys must be defined", - "type": "boolean" - }, - "secretName": { - "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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", - "type": "boolean" - }, - "capabilities": { - "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities", - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." - }, - "privileged": { - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", - "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.", - "type": "string" - }, - "readOnlyRootFilesystem": { - "description": "Whether this container has a read-only root filesystem. Default is false.", - "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.", - "format": "int64", - "type": "integer" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "windowsOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Service": { - "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec", - "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus", - "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Service", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccount": { - "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", - "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" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.", - "type": "boolean" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "secrets": { - "description": "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccountList": { - "description": "ServiceAccountList is a list of ServiceAccount objects", - "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" - }, - "items": { - "description": "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccountList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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).", - "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.", - "format": "int64", - "type": "integer" - }, - "path": { - "description": "Path is the path relative to the mount point of the file to project the token into.", - "type": "string" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ServiceList": { - "description": "ServiceList holds a list of services.", - "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" - }, - "items": { - "description": "List of services", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServicePort": { - "description": "ServicePort contains information on service's port.", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. Field can be enabled with ServiceAppProtocol feature gate.", - "type": "string" - }, - "name": { - "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.", - "type": "string" - }, - "nodePort": { - "description": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", - "format": "int32", - "type": "integer" - }, - "port": { - "description": "The port that will be exposed by this service.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.", - "type": "string" - }, - "targetPort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ServiceSpec": { - "description": "ServiceSpec describes the attributes that a user creates on a service.", - "properties": { - "clusterIP": { - "description": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "externalIPs": { - "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", - "items": { - "type": "string" - }, - "type": "array" - }, - "externalName": { - "description": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.", - "type": "string" - }, - "externalTrafficPolicy": { - "description": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", - "type": "string" - }, - "healthCheckNodePort": { - "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.", - "format": "int32", - "type": "integer" - }, - "ipFamily": { - "description": "ipFamily specifies whether this Service has a preference for a particular IP family (e.g. IPv4 vs. IPv6). If a specific IP family is requested, the clusterIP field will be allocated from that family, if it is available in the cluster. If no IP family is requested, the cluster's primary IP family will be used. Other IP fields (loadBalancerIP, loadBalancerSourceRanges, externalIPs) and controllers which allocate external load-balancers should use the same IP family. Endpoints for this Service will be of this family. This field is immutable after creation. Assigning a ServiceIPFamily not available in the cluster (e.g. IPv6 in IPv4 only cluster) is an error condition and will fail during clusterIP assignment.", - "type": "string" - }, - "loadBalancerIP": { - "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.", - "type": "string" - }, - "loadBalancerSourceRanges": { - "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/", - "items": { - "type": "string" - }, - "type": "array" - }, - "ports": { - "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "port", - "protocol" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "port", - "x-kubernetes-patch-strategy": "merge" - }, - "publishNotReadyAddresses": { - "description": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery.", - "type": "boolean" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", - "type": "object" - }, - "sessionAffinity": { - "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "sessionAffinityConfig": { - "$ref": "#/definitions/io.k8s.api.core.v1.SessionAffinityConfig", - "description": "sessionAffinityConfig contains the configurations of session affinity." - }, - "topologyKeys": { - "description": "topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value \"*\" may be used to mean \"any topology\". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied.", - "items": { - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ServiceStatus": { - "description": "ServiceStatus represents the current status of a service.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer, if one is present." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SessionAffinityConfig": { - "description": "SessionAffinityConfig represents the configurations of session affinity.", - "properties": { - "clientIP": { - "$ref": "#/definitions/io.k8s.api.core.v1.ClientIPConfig", - "description": "clientIP contains the configurations of Client IP based session affinity." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.StorageOSVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Sysctl": { - "description": "Sysctl defines a kernel parameter to be set", - "properties": { - "name": { - "description": "Name of a property to set", - "type": "string" - }, - "value": { - "description": "Value of a property to set", - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TCPSocketAction": { - "description": "TCPSocketAction describes an action based on opening a socket", - "properties": { - "host": { - "description": "Optional: Host name to connect to, defaults to the pod IP.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "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." - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Taint": { - "description": "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", - "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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints." - }, - "value": { - "description": "The taint value corresponding to the taint key.", - "type": "string" - } - }, - "required": [ - "key", - "effect" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Toleration": { - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "effect": { - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - "type": "string" - }, - "key": { - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - "type": "string" - }, - "operator": { - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - "type": "string" - }, - "tolerationSeconds": { - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - "format": "int64", - "type": "integer" - }, - "value": { - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.TopologySelectorLabelRequirement": { - "description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.", - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "values": { - "description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "values" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TopologySelectorTerm": { - "description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.", - "properties": { - "matchLabelExpressions": { - "description": "A list of topology selector requirements by labels.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.TopologySpreadConstraint": { - "description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology.", - "properties": { - "labelSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain." - }, - "maxSkew": { - "description": "MaxSkew describes the degree to which pods may be unevenly distributed. It's the maximum permitted difference between the number of matching pods in any two topology domains of a given topology type. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. It's a required field. Default value is 1 and 0 is not allowed.", - "format": "int32", - "type": "integer" - }, - "topologyKey": { - "description": "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each \u003ckey, value\u003e as a \"bucket\", and try to put balanced number of pods into each bucket. It's a required field.", - "type": "string" - }, - "whenUnsatisfiable": { - "description": "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it - ScheduleAnyway tells the scheduler to still schedule it It's considered as \"Unsatisfiable\" if and only if placing incoming pod on any topology violates \"MaxSkew\". For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - "type": "string" - } - }, - "required": [ - "maxSkew", - "topologyKey", - "whenUnsatisfiable" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TypedLocalObjectReference": { - "description": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Volume": { - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "properties": { - "awsElasticBlockStore": { - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", - "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" - }, - "azureDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "azureFile": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "cephfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "cinder": { - "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" - }, - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource", - "description": "ConfigMap represents a configMap that should populate this volume" - }, - "csi": { - "$ref": "#/definitions/io.k8s.api.core.v1.CSIVolumeSource", - "description": "CSI (Container Storage Interface) represents storage that is handled by an external CSI driver (Alpha feature)." - }, - "downwardAPI": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource", - "description": "DownwardAPI represents downward API about the pod that should populate this volume" - }, - "emptyDir": { - "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource", - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" - }, - "fc": { - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flexVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." - }, - "flocker": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" - }, - "gcePersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", - "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" - }, - "gitRepo": { - "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource", - "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." - }, - "glusterfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource", - "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" - }, - "hostPath": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", - "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" - }, - "iscsi": { - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource", - "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" - }, - "name": { - "description": "Volume's name. 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": { - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", - "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" - }, - "persistentVolumeClaim": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "photonPersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "projected": { - "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource", - "description": "Items for all in one resources secrets, configmaps, and downward API" - }, - "quobyte": { - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "rbd": { - "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource", - "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" - }, - "scaleIO": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "secret": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource", - "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" - }, - "storageos": { - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource", - "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." - }, - "vsphereVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeDevice": { - "description": "volumeDevice describes a mapping of a raw block device within a container.", - "properties": { - "devicePath": { - "description": "devicePath is the path inside of the container that the device will be mapped to.", - "type": "string" - }, - "name": { - "description": "name must match the name of a persistentVolumeClaim in the pod", - "type": "string" - } - }, - "required": [ - "name", - "devicePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeMount": { - "description": "VolumeMount describes a mounting of a Volume within a container.", - "properties": { - "mountPath": { - "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", - "type": "string" - }, - "mountPropagation": { - "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - "type": "string" - }, - "name": { - "description": "This must match the Name of a Volume.", - "type": "string" - }, - "readOnly": { - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - "type": "boolean" - }, - "subPath": { - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", - "type": "string" - }, - "subPathExpr": { - "description": "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.", - "type": "string" - } - }, - "required": [ - "name", - "mountPath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeNodeAffinity": { - "description": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", - "properties": { - "required": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", - "description": "Required specifies hard node constraints that must be met." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VolumeProjection": { - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection", - "description": "information about the configMap data to project" - }, - "downwardAPI": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection", - "description": "information about the downwardAPI data to project" - }, - "secret": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection", - "description": "information about the secret data to project" - }, - "serviceAccountToken": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection", - "description": "information about the serviceAccountToken data to project" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { - "description": "Represents a vSphere volume resource.", - "properties": { - "fsType": { - "description": "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": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - "type": "string" - }, - "storagePolicyName": { - "description": "Storage Policy Based Management (SPBM) profile name.", - "type": "string" - }, - "volumePath": { - "description": "Path that identifies vSphere volume vmdk", - "type": "string" - } - }, - "required": [ - "volumePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.WeightedPodAffinityTerm": { - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "properties": { - "podAffinityTerm": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm", - "description": "Required. A pod affinity term, associated with the corresponding weight." - }, - "weight": { - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "weight", - "podAffinityTerm" - ], - "type": "object" - }, - "io.k8s.api.core.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" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.Endpoint": { - "description": "Endpoint represents a single logical \"backend\" implementing a service.", - "properties": { - "addresses": { - "description": "addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "conditions": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointConditions", - "description": "conditions contains information about the current status of the endpoint." - }, - "hostname": { - "description": "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must pass DNS Label (RFC 1123) validation.", - "type": "string" - }, - "targetRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "targetRef is a reference to a Kubernetes object that represents this endpoint." - }, - "topology": { - "additionalProperties": { - "type": "string" - }, - "description": "topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\n where the endpoint is located. This should match the corresponding\n node label.\n* topology.kubernetes.io/zone: the value indicates the zone where the\n endpoint is located. This should match the corresponding node label.\n* topology.kubernetes.io/region: the value indicates the region where the\n endpoint is located. This should match the corresponding node label.", - "type": "object" - } - }, - "required": [ - "addresses" - ], - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointConditions": { - "description": "EndpointConditions represents the current condition of an endpoint.", - "properties": { - "ready": { - "description": "ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointPort": { - "description": "EndpointPort represents a Port used by an EndpointSlice", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.", - "type": "string" - }, - "name": { - "description": "The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", - "type": "string" - }, - "port": { - "description": "The port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointSlice": { - "description": "EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.", - "properties": { - "addressType": { - "description": "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.", - "type": "string" - }, - "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" - }, - "endpoints": { - "description": "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.Endpoint" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "ports": { - "description": "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \"all ports\". Each slice may include a maximum of 100 ports.", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointPort" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "required": [ - "addressType", - "endpoints" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.discovery.v1beta1.EndpointSliceList": { - "description": "EndpointSliceList represents a list of endpoint slices", - "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" - }, - "items": { - "description": "List of endpoint slices", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "discovery.k8s.io", - "kind": "EndpointSliceList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.Event": { - "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", - "properties": { - "action": { - "description": "What action was taken/failed regarding to the regarding object.", - "type": "string" - }, - "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" - }, - "deprecatedCount": { - "description": "Deprecated field assuring backward compatibility with core.v1 Event type", - "format": "int32", - "type": "integer" - }, - "deprecatedFirstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Deprecated field assuring backward compatibility with core.v1 Event type" - }, - "deprecatedLastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Deprecated field assuring backward compatibility with core.v1 Event type" - }, - "deprecatedSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "Deprecated field assuring backward compatibility with core.v1 Event type" - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Required. Time when this Event was first observed." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "note": { - "description": "Optional. A human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", - "type": "string" - }, - "reason": { - "description": "Why the action was taken.", - "type": "string" - }, - "regarding": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The object this Event is about. In most cases it's an Object reporting controller implements. E.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object." - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object." - }, - "reportingController": { - "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", - "type": "string" - }, - "reportingInstance": { - "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventSeries", - "description": "Data about the Event series this event represents or nil if it's a singleton Event." - }, - "type": { - "description": "Type of this event (Normal, Warning), new types could be added in the future.", - "type": "string" - } - }, - "required": [ - "eventTime" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventList": { - "description": "EventList is a list of Event objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "EventList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "properties": { - "count": { - "description": "Number of occurrences in this series up to the last heartbeat time", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time when last Event from the series was seen before last heartbeat." - }, - "state": { - "description": "Information whether this series is ongoing or finished. Deprecated. Planned removal for 1.18", - "type": "string" - } - }, - "required": [ - "count", - "lastObservedTime", - "state" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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. Defaults to ImplementationSpecific.", - "type": "string" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath" - }, - "type": "array" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." - }, - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Specifies the port of the referenced service." - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "IngressList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.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/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressRule" - }, - "type": "array" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "secretName": { - "description": "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL 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" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IPBlock": { - "description": "IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\",\"2001:db9::/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.", - "properties": { - "cidr": { - "description": "CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\"", - "type": "string" - }, - "except": { - "description": "Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\" Except values will be rejected if they are outside the CIDR range", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "cidr" - ], - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicy": { - "description": "NetworkPolicy describes what network traffic is allowed for a set of Pods", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec", - "description": "Specification of the desired behavior for this NetworkPolicy." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.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": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - }, - "type": "array" - }, - "to": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.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": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - }, - "type": "array" - }, - "ports": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicyList": { - "description": "NetworkPolicyList is a list of NetworkPolicy objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicyList", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.NetworkPolicyPeer": { - "description": "NetworkPolicyPeer describes a peer to allow traffic from. Only certain combinations of fields are allowed", - "properties": { - "ipBlock": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPBlock", - "description": "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be." - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "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." - }, - "podSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "This 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." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicyPort": { - "description": "NetworkPolicyPort describes a port to allow traffic on", - "properties": { - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "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." - }, - "protocol": { - "description": "The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicySpec": { - "description": "NetworkPolicySpec provides the specification of a NetworkPolicy", - "properties": { - "egress": { - "description": "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule" - }, - "type": "array" - }, - "ingress": { - "description": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule" - }, - "type": "array" - }, - "podSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace." - }, - "policyTypes": { - "description": "List of rule types that the NetworkPolicy relates to. Valid options are \"Ingress\", \"Egress\", or \"Ingress,Egress\". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "podSelector" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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. Defaults to ImplementationSpecific.", - "type": "string" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.HTTPIngressPath" - }, - "type": "array" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." - }, - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Specifies the port of the referenced service." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressClass": { - "description": "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassSpec", - "description": "Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressClassList": { - "description": "IngressClassList is a collection of IngressClasses.", - "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" - }, - "items": { - "description": "Items is the list of IngressClasses.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressClassSpec": { - "description": "IngressClassSpec provides information about the class of an Ingress.", - "properties": { - "controller": { - "description": "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", - "type": "string" - }, - "parameters": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.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/io.k8s.api.networking.v1beta1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressRule" - }, - "type": "array" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressTLS" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.node.v1beta1.Overhead": { - "description": "Overhead structure represents the resource overhead associated with running a pod.", - "properties": { - "podFixed": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "PodFixed represents the fixed resource overhead associated with running a pod.", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.node.v1beta1.RuntimeClass": { - "description": "RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md", - "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" - }, - "handler": { - "description": "Handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node \u0026 CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must conform to the DNS Label (RFC 1123) requirements, and is immutable.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "overhead": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.Overhead", - "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.15, and is only honored by servers that enable the PodOverhead feature." - }, - "scheduling": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.Scheduling", - "description": "Scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes." - } - }, - "required": [ - "handler" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.node.v1beta1.RuntimeClassList": { - "description": "RuntimeClassList is a list of RuntimeClass objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "node.k8s.io", - "kind": "RuntimeClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.node.v1beta1.Scheduling": { - "description": "Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.", - "properties": { - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "description": "nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.", - "type": "object" - }, - "tolerations": { - "description": "tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedCSIDriver": { - "description": "AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.", - "properties": { - "name": { - "description": "Name is the registered name of the CSI driver", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedFlexVolume": { - "description": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", - "properties": { - "driver": { - "description": "driver is the name of the Flexvolume driver.", - "type": "string" - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedHostPath": { - "description": "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", - "properties": { - "pathPrefix": { - "description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", - "type": "string" - }, - "readOnly": { - "description": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.Eviction": { - "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/\u003cpod name\u003e/evictions.", - "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" - }, - "deleteOptions": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions", - "description": "DeleteOptions may be provided" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "ObjectMeta describes the pod that is being evicted." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.FSGroupStrategyOptions": { - "description": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.HostPortRange": { - "description": "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "format": "int32", - "type": "integer" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "min", - "max" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.IDRange": { - "description": "IDRange provides a min/max of an allowed range of IDs.", - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "format": "int64", - "type": "integer" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "min", - "max" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudget": { - "description": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec", - "description": "Specification of the desired behavior of the PodDisruptionBudget." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus", - "description": "Most recently observed status of the PodDisruptionBudget." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetList": { - "description": "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudgetList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec": { - "description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", - "properties": { - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\"." - }, - "minAvailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\"." - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Label query over pods whose evictions are managed by the disruption budget." - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus": { - "description": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.", - "properties": { - "currentHealthy": { - "description": "current number of healthy pods", - "format": "int32", - "type": "integer" - }, - "desiredHealthy": { - "description": "minimum desired number of healthy pods", - "format": "int32", - "type": "integer" - }, - "disruptedPods": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "description": "DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.", - "type": "object" - }, - "disruptionsAllowed": { - "description": "Number of pod disruptions that are currently allowed.", - "format": "int32", - "type": "integer" - }, - "expectedPods": { - "description": "total number of pods counted by this disruption budget", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "disruptionsAllowed", - "currentHealthy", - "desiredHealthy", - "expectedPods" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicy": { - "description": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicySpec", - "description": "spec defines the policy enforced." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicyList": { - "description": "PodSecurityPolicyList is a list of PodSecurityPolicy objects.", - "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" - }, - "items": { - "description": "items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicyList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicySpec": { - "description": "PodSecurityPolicySpec defines the policy enforced.", - "properties": { - "allowPrivilegeEscalation": { - "description": "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - "type": "boolean" - }, - "allowedCSIDrivers": { - "description": "AllowedCSIDrivers is a whitelist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes. This is an alpha field, and is only honored if the API server enables the CSIInlineVolume feature gate.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedCSIDriver" - }, - "type": "array" - }, - "allowedCapabilities": { - "description": "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedFlexVolumes": { - "description": "allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedFlexVolume" - }, - "type": "array" - }, - "allowedHostPaths": { - "description": "allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedHostPath" - }, - "type": "array" - }, - "allowedProcMountTypes": { - "description": "AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedUnsafeSysctls": { - "description": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultAddCapabilities": { - "description": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultAllowPrivilegeEscalation": { - "description": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - "type": "boolean" - }, - "forbiddenSysctls": { - "description": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.", - "items": { - "type": "string" - }, - "type": "array" - }, - "fsGroup": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.FSGroupStrategyOptions", - "description": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext." - }, - "hostIPC": { - "description": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", - "type": "boolean" - }, - "hostNetwork": { - "description": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", - "type": "boolean" - }, - "hostPID": { - "description": "hostPID determines if the policy allows the use of HostPID in the pod spec.", - "type": "boolean" - }, - "hostPorts": { - "description": "hostPorts determines which host port ranges are allowed to be exposed.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.HostPortRange" - }, - "type": "array" - }, - "privileged": { - "description": "privileged determines if a pod can request to be run as privileged.", - "type": "boolean" - }, - "readOnlyRootFilesystem": { - "description": "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - "type": "boolean" - }, - "requiredDropCapabilities": { - "description": "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - "items": { - "type": "string" - }, - "type": "array" - }, - "runAsGroup": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions", - "description": "RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled." - }, - "runAsUser": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions", - "description": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set." - }, - "runtimeClass": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions", - "description": "runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod. If this field is omitted, the pod's runtimeClassName field is unrestricted. Enforcement of this field depends on the RuntimeClass feature gate being enabled." - }, - "seLinux": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SELinuxStrategyOptions", - "description": "seLinux is the strategy that will dictate the allowable labels that may be set." - }, - "supplementalGroups": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions", - "description": "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext." - }, - "volumes": { - "description": "volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "seLinux", - "runAsUser", - "supplementalGroups", - "fsGroup" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions": { - "description": "RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsGroup values that may be set.", - "type": "string" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions": { - "description": "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", - "type": "string" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions": { - "description": "RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.", - "properties": { - "allowedRuntimeClassNames": { - "description": "allowedRuntimeClassNames is a whitelist of RuntimeClass names that may be specified on a pod. A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultRuntimeClassName": { - "description": "defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.", - "type": "string" - } - }, - "required": [ - "allowedRuntimeClassNames" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.SELinuxStrategyOptions": { - "description": "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "rule": { - "description": "rule is the strategy that will dictate the allowable labels that may be set.", - "type": "string" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", - "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions": { - "description": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - "properties": { - "aggregationRule": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.AggregationRule", - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.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.", - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings", - "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" - }, - "items": { - "description": "Items is a list of RoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleList": { - "description": "RoleList is a collection of Roles", - "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" - }, - "items": { - "description": "Items is a list of Roles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "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" - } - }, - "required": [ - "apiGroup", - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.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.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20.", - "properties": { - "aggregationRule": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.AggregationRule", - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.20.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.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.", - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.20.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of RoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleList": { - "description": "RoleList is a collection of Roles Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of Roles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "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" - } - }, - "required": [ - "apiGroup", - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.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.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.scheduling.v1.PriorityClass": { - "description": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "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" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.", - "type": "string" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "value" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - ] - }, - "io.k8s.api.scheduling.v1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "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" - }, - "items": { - "description": "items is the list of PriorityClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClass": { - "description": "DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "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" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.", - "type": "string" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "value" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "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" - }, - "items": { - "description": "items is the list of PriorityClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriver": { - "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverSpec", - "description": "Specification of the CSI Driver." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriverList": { - "description": "CSIDriverList is a collection of CSIDriver objects.", - "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" - }, - "items": { - "description": "items is the list of CSIDriver", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriverList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriverSpec": { - "description": "CSIDriverSpec is the specification of a CSIDriver.", - "properties": { - "attachRequired": { - "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "type": "boolean" - }, - "podInfoOnMount": { - "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "type": "boolean" - }, - "volumeLifecycleModes": { - "description": "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.CSINode": { - "description": "CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata.name must be the Kubernetes node name." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeSpec", - "description": "spec is the specification of CSINode" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSINodeDriver": { - "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - "properties": { - "allocatable": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeNodeResources", - "description": "allocatable represents the volume resources of a node that are available for scheduling. This field is beta." - }, - "name": { - "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - "type": "string" - }, - "nodeID": { - "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - "type": "string" - }, - "topologyKeys": { - "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "nodeID" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.CSINodeList": { - "description": "CSINodeList is a collection of CSINode objects.", - "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" - }, - "items": { - "description": "items is the list of CSINode", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINodeList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSINodeSpec": { - "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - "properties": { - "drivers": { - "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeDriver" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "required": [ - "drivers" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "allowedTopologies": { - "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "items": { - "type": "string" - }, - "type": "array" - }, - "parameters": { - "additionalProperties": { - "type": "string" - }, - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object" - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "required": [ - "provisioner" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "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" - }, - "items": { - "description": "Items is the list of StorageClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSpec", - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentStatus", - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "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" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "inlineVolumeSpec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." - }, - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSource", - "description": "Source represents the volume that should be attached." - } - }, - "required": [ - "attacher", - "source", - "nodeName" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "properties": { - "attachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object" - }, - "detachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." - } - }, - "required": [ - "attached" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time the error was encountered." - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeNodeResources": { - "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - "properties": { - "count": { - "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSIDriver": { - "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. CSI drivers do not need to create the CSIDriver object directly. Instead they may use the cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically creates a CSIDriver object representing the driver. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverSpec", - "description": "Specification of the CSI Driver." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSIDriverList": { - "description": "CSIDriverList is a collection of CSIDriver objects.", - "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" - }, - "items": { - "description": "items is the list of CSIDriver", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriverList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSIDriverSpec": { - "description": "CSIDriverSpec is the specification of a CSIDriver.", - "properties": { - "attachRequired": { - "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "type": "boolean" - }, - "podInfoOnMount": { - "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "type": "boolean" - }, - "volumeLifecycleModes": { - "description": "VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSINode": { - "description": "DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode. See the release notes for more information. CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata.name must be the Kubernetes node name." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeSpec", - "description": "spec is the specification of CSINode" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSINodeDriver": { - "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - "properties": { - "allocatable": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeNodeResources", - "description": "allocatable represents the volume resources of a node that are available for scheduling." - }, - "name": { - "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - "type": "string" - }, - "nodeID": { - "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - "type": "string" - }, - "topologyKeys": { - "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "nodeID" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSINodeList": { - "description": "CSINodeList is a collection of CSINode objects.", - "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" - }, - "items": { - "description": "items is the list of CSINode", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINodeList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSINodeSpec": { - "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - "properties": { - "drivers": { - "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeDriver" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "required": [ - "drivers" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "allowedTopologies": { - "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "items": { - "type": "string" - }, - "type": "array" - }, - "parameters": { - "additionalProperties": { - "type": "string" - }, - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object" - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "required": [ - "provisioner" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "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" - }, - "items": { - "description": "Items is the list of StorageClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSpec", - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentStatus", - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "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" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "inlineVolumeSpec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." - }, - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSource", - "description": "Source represents the volume that should be attached." - } - }, - "required": [ - "attacher", - "source", - "nodeName" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "properties": { - "attachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object" - }, - "detachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." - } - }, - "required": [ - "attached" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time the error was encountered." - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeNodeResources": { - "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - "properties": { - "count": { - "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is nil, then the supported number of volumes on this node is unbounded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition": { - "description": "CustomResourceColumnDefinition specifies a column for server side printing.", - "properties": { - "description": { - "description": "description is a human readable description of this column.", - "type": "string" - }, - "format": { - "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - }, - "jsonPath": { - "description": "jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - "type": "string" - }, - "name": { - "description": "name is a human readable name for the column.", - "type": "string" - }, - "priority": { - "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - } - }, - "required": [ - "name", - "type", - "jsonPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion": { - "description": "CustomResourceConversion describes how to convert different versions of a CR.", - "properties": { - "strategy": { - "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.", - "type": "string" - }, - "webhook": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion", - "description": "webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`." - } - }, - "required": [ - "strategy" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition": { - "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec", - "description": "spec describes how the user wants the resources to appear" - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus", - "description": "status indicates the actual state of the CustomResourceDefinition" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition": { - "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime last time the condition transitioned from one status to another." - }, - "message": { - "description": "message is a human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList": { - "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - "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" - }, - "items": { - "description": "items list individual CustomResourceDefinition objects", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinitionList", - "version": "v1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames": { - "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - "properties": { - "categories": { - "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - "type": "string" - }, - "listKind": { - "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - "type": "string" - }, - "plural": { - "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", - "type": "string" - }, - "shortNames": { - "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singular": { - "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - "type": "string" - } - }, - "required": [ - "plural", - "kind" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec": { - "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - "properties": { - "conversion": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion", - "description": "conversion defines conversion settings for the CRD." - }, - "group": { - "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", - "type": "string" - }, - "names": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", - "description": "names specify the resource and kind names for the custom resource." - }, - "preserveUnknownFields": { - "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting `x-preserve-unknown-fields` to true in `spec.versions[*].schema.openAPIV3Schema`. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - "type": "boolean" - }, - "scope": { - "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.", - "type": "string" - }, - "versions": { - "description": "versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion" - }, - "type": "array" - } - }, - "required": [ - "group", - "names", - "scope", - "versions" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus": { - "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - "properties": { - "acceptedNames": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", - "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." - }, - "conditions": { - "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition" - }, - "type": "array" - }, - "storedVersions": { - "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion": { - "description": "CustomResourceDefinitionVersion describes a version for CRD.", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "name": { - "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", - "type": "string" - }, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation", - "description": "schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource." - }, - "served": { - "description": "served is a flag enabling/disabling this version from being served via REST APIs", - "type": "boolean" - }, - "storage": { - "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - "type": "boolean" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources", - "description": "subresources specify what subresources this version of the defined custom resource have." - } - }, - "required": [ - "name", - "served", - "storage" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale": { - "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - "properties": { - "labelSelectorPath": { - "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - "type": "string" - }, - "specReplicasPath": { - "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - "type": "string" - }, - "statusReplicasPath": { - "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - "type": "string" - } - }, - "required": [ - "specReplicasPath", - "statusReplicasPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus": { - "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources": { - "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - "properties": { - "scale": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale", - "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus", - "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation": { - "description": "CustomResourceValidation is a list of validation methods for CustomResources.", - "properties": { - "openAPIV3Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps", - "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation": { - "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps": { - "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - "properties": { - "$ref": { - "type": "string" - }, - "$schema": { - "type": "string" - }, - "additionalItems": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" - }, - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" - }, - "allOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "anyOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "default": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON", - "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false." - }, - "definitions": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "dependencies": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray" - }, - "type": "object" - }, - "description": { - "type": "string" - }, - "enum": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" - }, - "type": "array" - }, - "example": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" - }, - "exclusiveMaximum": { - "type": "boolean" - }, - "exclusiveMinimum": { - "type": "boolean" - }, - "externalDocs": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation" - }, - "format": { - "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - "type": "string" - }, - "id": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray" - }, - "maxItems": { - "format": "int64", - "type": "integer" - }, - "maxLength": { - "format": "int64", - "type": "integer" - }, - "maxProperties": { - "format": "int64", - "type": "integer" - }, - "maximum": { - "format": "double", - "type": "number" - }, - "minItems": { - "format": "int64", - "type": "integer" - }, - "minLength": { - "format": "int64", - "type": "integer" - }, - "minProperties": { - "format": "int64", - "type": "integer" - }, - "minimum": { - "format": "double", - "type": "number" - }, - "multipleOf": { - "format": "double", - "type": "number" - }, - "not": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "nullable": { - "type": "boolean" - }, - "oneOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "patternProperties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "properties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uniqueItems": { - "type": "boolean" - }, - "x-kubernetes-embedded-resource": { - "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - "type": "boolean" - }, - "x-kubernetes-int-or-string": { - "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - "type": "boolean" - }, - "x-kubernetes-list-map-keys": { - "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - "items": { - "type": "string" - }, - "type": "array" - }, - "x-kubernetes-list-type": { - "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - "type": "string" - }, - "x-kubernetes-map-type": { - "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - "type": "string" - }, - "x-kubernetes-preserve-unknown-fields": { - "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "name is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "namespace is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "path is an optional URL path at which the webhook will be contacted.", - "type": "string" - }, - "port": { - "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - "properties": { - "caBundle": { - "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference", - "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion": { - "description": "WebhookConversion describes how to call a conversion webhook", - "properties": { - "clientConfig": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig", - "description": "clientConfig is the instructions for how to call the webhook if strategy is `Webhook`." - }, - "conversionReviewVersions": { - "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "conversionReviewVersions" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition": { - "description": "CustomResourceColumnDefinition specifies a column for server side printing.", - "properties": { - "JSONPath": { - "description": "JSONPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - "type": "string" - }, - "description": { - "description": "description is a human readable description of this column.", - "type": "string" - }, - "format": { - "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - }, - "name": { - "description": "name is a human readable name for the column.", - "type": "string" - }, - "priority": { - "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - } - }, - "required": [ - "name", - "type", - "JSONPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion": { - "description": "CustomResourceConversion describes how to convert different versions of a CR.", - "properties": { - "conversionReviewVersions": { - "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail. Defaults to `[\"v1beta1\"]`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "strategy": { - "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhookClientConfig to be set.", - "type": "string" - }, - "webhookClientConfig": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig", - "description": "webhookClientConfig is the instructions for how to call the webhook if strategy is `Webhook`. Required when `strategy` is set to `Webhook`." - } - }, - "required": [ - "strategy" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition": { - "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e. Deprecated in v1.16, planned for removal in v1.19. Use apiextensions.k8s.io/v1 CustomResourceDefinition instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec", - "description": "spec describes how the user wants the resources to appear" - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus", - "description": "status indicates the actual state of the CustomResourceDefinition" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition": { - "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime last time the condition transitioned from one status to another." - }, - "message": { - "description": "message is a human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList": { - "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - "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" - }, - "items": { - "description": "items list individual CustomResourceDefinition objects", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinitionList", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames": { - "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - "properties": { - "categories": { - "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - "type": "string" - }, - "listKind": { - "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - "type": "string" - }, - "plural": { - "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", - "type": "string" - }, - "shortNames": { - "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singular": { - "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - "type": "string" - } - }, - "required": [ - "plural", - "kind" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec": { - "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If present, this field configures columns for all versions. Top-level and per-version columns are mutually exclusive. If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "conversion": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion", - "description": "conversion defines conversion settings for the CRD." - }, - "group": { - "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", - "type": "string" - }, - "names": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", - "description": "names specify the resource and kind names for the custom resource." - }, - "preserveUnknownFields": { - "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. If false, schemas must be defined for all versions. Defaults to true in v1beta for backwards compatibility. Deprecated: will be required to be false in v1. Preservation of unknown fields can be specified in the validation schema using the `x-kubernetes-preserve-unknown-fields: true` extension. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - "type": "boolean" - }, - "scope": { - "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`.", - "type": "string" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", - "description": "subresources specify what subresources the defined custom resource has. If present, this field configures subresources for all versions. Top-level and per-version subresources are mutually exclusive." - }, - "validation": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", - "description": "validation describes the schema used for validation and pruning of the custom resource. If present, this validation schema is used to validate all versions. Top-level and per-version schemas are mutually exclusive." - }, - "version": { - "description": "version is the API version of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/...`. Must match the name of the first item in the `versions` list if `version` and `versions` are both specified. Optional if `versions` is specified. Deprecated: use `versions` instead.", - "type": "string" - }, - "versions": { - "description": "versions is the list of all API versions of the defined custom resource. Optional if `version` is specified. The name of the first item in the `versions` list must match the `version` field if `version` and `versions` are both specified. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion" - }, - "type": "array" - } - }, - "required": [ - "group", - "names", - "scope" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus": { - "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - "properties": { - "acceptedNames": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", - "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." - }, - "conditions": { - "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition" - }, - "type": "array" - }, - "storedVersions": { - "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion": { - "description": "CustomResourceDefinitionVersion describes a version for CRD.", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. Top-level and per-version columns are mutually exclusive. Per-version columns must not all be set to identical values (top-level columns should be used instead). If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "name": { - "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", - "type": "string" - }, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", - "description": "schema describes the schema used for validation and pruning of this version of the custom resource. Top-level and per-version schemas are mutually exclusive. Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)." - }, - "served": { - "description": "served is a flag enabling/disabling this version from being served via REST APIs", - "type": "boolean" - }, - "storage": { - "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - "type": "boolean" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", - "description": "subresources specify what subresources this version of the defined custom resource have. Top-level and per-version subresources are mutually exclusive. Per-version subresources must not all be set to identical values (top-level subresources should be used instead)." - } - }, - "required": [ - "name", - "served", - "storage" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale": { - "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - "properties": { - "labelSelectorPath": { - "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - "type": "string" - }, - "specReplicasPath": { - "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - "type": "string" - }, - "statusReplicasPath": { - "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - "type": "string" - } - }, - "required": [ - "specReplicasPath", - "statusReplicasPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus": { - "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources": { - "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - "properties": { - "scale": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale", - "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus", - "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation": { - "description": "CustomResourceValidation is a list of validation methods for CustomResources.", - "properties": { - "openAPIV3Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps", - "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation": { - "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps": { - "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - "properties": { - "$ref": { - "type": "string" - }, - "$schema": { - "type": "string" - }, - "additionalItems": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "allOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "anyOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "default": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON", - "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. CustomResourceDefinitions with defaults must be created using the v1 (or newer) CustomResourceDefinition API." - }, - "definitions": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "dependencies": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray" - }, - "type": "object" - }, - "description": { - "type": "string" - }, - "enum": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "type": "array" - }, - "example": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "exclusiveMaximum": { - "type": "boolean" - }, - "exclusiveMinimum": { - "type": "boolean" - }, - "externalDocs": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation" - }, - "format": { - "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - "type": "string" - }, - "id": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray" - }, - "maxItems": { - "format": "int64", - "type": "integer" - }, - "maxLength": { - "format": "int64", - "type": "integer" - }, - "maxProperties": { - "format": "int64", - "type": "integer" - }, - "maximum": { - "format": "double", - "type": "number" - }, - "minItems": { - "format": "int64", - "type": "integer" - }, - "minLength": { - "format": "int64", - "type": "integer" - }, - "minProperties": { - "format": "int64", - "type": "integer" - }, - "minimum": { - "format": "double", - "type": "number" - }, - "multipleOf": { - "format": "double", - "type": "number" - }, - "not": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "nullable": { - "type": "boolean" - }, - "oneOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "patternProperties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "properties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uniqueItems": { - "type": "boolean" - }, - "x-kubernetes-embedded-resource": { - "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - "type": "boolean" - }, - "x-kubernetes-int-or-string": { - "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - "type": "boolean" - }, - "x-kubernetes-list-map-keys": { - "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - "items": { - "type": "string" - }, - "type": "array" - }, - "x-kubernetes-list-type": { - "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - "type": "string" - }, - "x-kubernetes-map-type": { - "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - "type": "string" - }, - "x-kubernetes-preserve-unknown-fields": { - "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "name is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "namespace is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "path is an optional URL path at which the webhook will be contacted.", - "type": "string" - }, - "port": { - "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - "properties": { - "caBundle": { - "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference", - "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.api.resource.Quantity": { - "description": "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n (Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\u003cdigit\u003e ::= 0 | 1 | ... | 9 \u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e \u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e \u003csign\u003e ::= \"+\" | \"-\" \u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e \u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e \u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup": { - "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", - "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" - }, - "name": { - "description": "name is the name of the group.", - "type": "string" - }, - "preferredVersion": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery", - "description": "preferredVersion is the version preferred by the API server, which probably is the storage version." - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - }, - "type": "array" - }, - "versions": { - "description": "versions are the versions supported in this group.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" - }, - "type": "array" - } - }, - "required": [ - "name", - "versions" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroup", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList": { - "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", - "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" - }, - "groups": { - "description": "groups is a list of APIGroup.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - }, - "type": "array" - }, - "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" - } - }, - "required": [ - "groups" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroupList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": { - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "properties": { - "categories": { - "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')", - "items": { - "type": "string" - }, - "type": "array" - }, - "group": { - "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".", - "type": "string" - }, - "kind": { - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')", - "type": "string" - }, - "name": { - "description": "name is the plural name of the resource.", - "type": "string" - }, - "namespaced": { - "description": "namespaced indicates if a resource is namespaced or not.", - "type": "boolean" - }, - "shortNames": { - "description": "shortNames is a list of suggested short names of the resource.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singularName": { - "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", - "type": "string" - }, - "storageVersionHash": { - "description": "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.", - "type": "string" - }, - "verbs": { - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)", - "items": { - "type": "string" - }, - "type": "array" - }, - "version": { - "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".", - "type": "string" - } - }, - "required": [ - "name", - "singularName", - "namespaced", - "kind", - "verbs" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList": { - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "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" - }, - "groupVersion": { - "description": "groupVersion is the group and version this APIResourceList is for.", - "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" - }, - "resources": { - "description": "resources contains the name of the resources and if they are namespaced.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" - }, - "type": "array" - } - }, - "required": [ - "groupVersion", - "resources" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIResourceList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions": { - "description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", - "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" - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - }, - "type": "array" - }, - "versions": { - "description": "versions are the api versions that are available.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "versions", - "serverAddressByClientCIDRs" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIVersions", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions": { - "description": "DeleteOptions may be provided when deleting an API object.", - "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" - }, - "dryRun": { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "items": { - "type": "string" - }, - "type": "array" - }, - "gracePeriodSeconds": { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "format": "int64", - "type": "integer" - }, - "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" - }, - "orphanDependents": { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "type": "boolean" - }, - "preconditions": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." - }, - "propagationPolicy": { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta2" - }, - { - "group": "auditregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v2beta1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v2beta2" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "coordination.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "coordination.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "discovery.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "discovery.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "flowcontrol.apiserver.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "networking.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "node.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "node.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "policy", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": { - "description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:\u003cname\u003e', where \u003cname\u003e is the name of a field in a struct, or key in a map 'v:\u003cvalue\u003e', where \u003cvalue\u003e is the exact json formatted value of a list item 'i:\u003cindex\u003e', where \u003cindex\u003e is position of a item in a list 'k:\u003ckeys\u003e', where \u003ckeys\u003e is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff", - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery": { - "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", - "properties": { - "groupVersion": { - "description": "groupVersion specifies the API group and version in the form \"group/version\"", - "type": "string" - }, - "version": { - "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.", - "type": "string" - } - }, - "required": [ - "groupVersion", - "version" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "properties": { - "key": { - "description": "key is the label key that the selector applies to.", - "type": "string", - "x-kubernetes-patch-merge-key": "key", - "x-kubernetes-patch-strategy": "merge" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "operator" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": { - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "continue": { - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", - "type": "string" - }, - "remainingItemCount": { - "description": "remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.", - "format": "int64", - "type": "integer" - }, - "resourceVersion": { - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - "type": "string" - }, - "selfLink": { - "description": "selfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1", - "description": "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type." - }, - "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" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": { - "description": "MicroTime is version of Time with microsecond level precision.", - "format": "date-time", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "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: http://kubernetes.io/docs/user-guide/annotations", - "type": "object" - }, - "clusterName": { - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", - "type": "string" - }, - "creationTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "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" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "deletionTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "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" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-patch-strategy": "merge" - }, - "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 NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\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.", - "format": "int64", - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "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: http://kubernetes.io/docs/user-guide/labels", - "type": "object" - }, - "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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry" - }, - "type": "array" - }, - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "namespace": { - "description": "Namespace defines the space within 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: http://kubernetes.io/docs/user-guide/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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "uid", - "x-kubernetes-patch-strategy": "merge" - }, - "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": "SelfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - "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: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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.", - "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. 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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "uid": { - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Patch": { - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions": { - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "resourceVersion": { - "description": "Specifies the target ResourceVersion", - "type": "string" - }, - "uid": { - "description": "Specifies the target UID.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR": { - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "properties": { - "clientCIDR": { - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.", - "type": "string" - }, - "serverAddress": { - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", - "type": "string" - } - }, - "required": [ - "clientCIDR", - "serverAddress" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Status": { - "description": "Status is a return value for calls that don't return other objects.", - "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" - }, - "code": { - "description": "Suggested HTTP return code for this status, 0 if not set.", - "format": "int32", - "type": "integer" - }, - "details": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." - }, - "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" - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - }, - "reason": { - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", - "type": "string" - }, - "status": { - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Status", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause": { - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "field": { - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", - "type": "string" - }, - "message": { - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", - "type": "string" - }, - "reason": { - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails": { - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "causes": { - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" - }, - "type": "array" - }, - "group": { - "description": "The group attribute of the resource associated with the status StatusReason.", - "type": "string" - }, - "kind": { - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", - "type": "string" - }, - "retryAfterSeconds": { - "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", - "format": "int32", - "type": "integer" - }, - "uid": { - "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { - "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", - "format": "date-time", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent": { - "description": "Event represents a single event to a watched resource.", - "properties": { - "object": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", - "description": "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context." - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "object" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta2" - }, - { - "group": "auditregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v2beta1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v2beta2" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "coordination.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "coordination.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "discovery.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "discovery.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "flowcontrol.apiserver.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "networking.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "node.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "node.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "policy", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.runtime.RawExtension": { - "description": "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.Object `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// External package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// On the wire, the JSON will look something like this: {\n\t\"kind\":\"MyAPIObject\",\n\t\"apiVersion\":\"v1\",\n\t\"myPlugin\": {\n\t\t\"kind\":\"PluginA\",\n\t\t\"aOption\":\"foo\",\n\t},\n}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)", - "type": "object" - }, - "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { - "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.", - "format": "int-or-string", - "type": "string" - }, - "io.k8s.apimachinery.pkg.version.Info": { - "description": "Info contains versioning information. how we'll want to distribute that information.", - "properties": { - "buildDate": { - "type": "string" - }, - "compiler": { - "type": "string" - }, - "gitCommit": { - "type": "string" - }, - "gitTreeState": { - "type": "string" - }, - "gitVersion": { - "type": "string" - }, - "goVersion": { - "type": "string" - }, - "major": { - "type": "string" - }, - "minor": { - "type": "string" - }, - "platform": { - "type": "string" - } - }, - "required": [ - "major", - "minor", - "gitVersion", - "gitCommit", - "gitTreeState", - "buildDate", - "goVersion", - "compiler", - "platform" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec", - "description": "Spec contains information for locating and communicating with a server" - }, - "status": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus", - "description": "Status contains derived information about an API server" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition": { - "description": "APIServiceCondition describes the state of an APIService at a particular point", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "format": "int32", - "type": "integer" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference", - "description": "Service is a reference to the service for this API server. It must communicate on port 443 If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "groupPriorityMinimum", - "versionPriority" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec", - "description": "Spec contains information for locating and communicating with a server" - }, - "status": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus", - "description": "Status contains derived information about an API server" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition": { - "description": "APIServiceCondition describes the state of an APIService at a particular point", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "format": "int32", - "type": "integer" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference", - "description": "Service is a reference to the service for this API server. It must communicate on port 443 If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "groupPriorityMinimum", - "versionPriority" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - } - }, - "info": { - "title": "Kubernetes", - "version": "v1.18.4" - }, - "paths": { - "/api/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available API versions", - "operationId": "getCoreAPIVersions", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core" - ] - } - }, - "/api/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoreV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ] - } - }, - "/api/v1/componentstatuses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list objects of kind ComponentStatus", - "operationId": "listCoreV1ComponentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatusList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/componentstatuses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ComponentStatus", - "operationId": "readCoreV1ComponentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ComponentStatus", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ] - }, - "/api/v1/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ConfigMap", - "operationId": "listCoreV1ConfigMapForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Endpoints", - "operationId": "listCoreV1EndpointsForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listCoreV1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind LimitRange", - "operationId": "listCoreV1LimitRangeForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/namespaces": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Namespace", - "operationId": "listCoreV1Namespace", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Namespace", - "operationId": "createCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/bindings": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Binding", - "operationId": "createCoreV1NamespacedBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/configmaps": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ConfigMap", - "operationId": "deleteCoreV1CollectionNamespacedConfigMap", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ConfigMap", - "operationId": "listCoreV1NamespacedConfigMap", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ConfigMap", - "operationId": "createCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/configmaps/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ConfigMap", - "operationId": "deleteCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ConfigMap", - "operationId": "readCoreV1NamespacedConfigMap", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ConfigMap", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ConfigMap", - "operationId": "patchCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ConfigMap", - "operationId": "replaceCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/endpoints": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Endpoints", - "operationId": "deleteCoreV1CollectionNamespacedEndpoints", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Endpoints", - "operationId": "listCoreV1NamespacedEndpoints", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create Endpoints", - "operationId": "createCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/endpoints/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete Endpoints", - "operationId": "deleteCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Endpoints", - "operationId": "readCoreV1NamespacedEndpoints", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Endpoints", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Endpoints", - "operationId": "patchCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Endpoints", - "operationId": "replaceCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteCoreV1CollectionNamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listCoreV1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readCoreV1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/limitranges": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of LimitRange", - "operationId": "deleteCoreV1CollectionNamespacedLimitRange", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind LimitRange", - "operationId": "listCoreV1NamespacedLimitRange", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LimitRange", - "operationId": "createCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/limitranges/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a LimitRange", - "operationId": "deleteCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified LimitRange", - "operationId": "readCoreV1NamespacedLimitRange", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the LimitRange", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified LimitRange", - "operationId": "patchCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified LimitRange", - "operationId": "replaceCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PersistentVolumeClaim", - "operationId": "deleteCoreV1CollectionNamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolumeClaim", - "operationId": "listCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PersistentVolumeClaim", - "operationId": "createCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PersistentVolumeClaim", - "operationId": "deleteCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PersistentVolumeClaim", - "operationId": "readCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PersistentVolumeClaim", - "operationId": "patchCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PersistentVolumeClaim", - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PersistentVolumeClaim", - "operationId": "readCoreV1NamespacedPersistentVolumeClaimStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PersistentVolumeClaim", - "operationId": "patchCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PersistentVolumeClaim", - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Pod", - "operationId": "deleteCoreV1CollectionNamespacedPod", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Pod", - "operationId": "listCoreV1NamespacedPod", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Pod", - "operationId": "createCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Pod", - "operationId": "deleteCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Pod", - "operationId": "readCoreV1NamespacedPod", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Pod", - "operationId": "patchCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Pod", - "operationId": "replaceCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/attach": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to attach of Pod", - "operationId": "connectCoreV1GetNamespacedPodAttach", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodAttachOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the PodAttachOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", - "in": "query", - "name": "stderr", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", - "in": "query", - "name": "stdin", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", - "in": "query", - "name": "stdout", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", - "in": "query", - "name": "tty", - "type": "boolean", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to attach of Pod", - "operationId": "connectCoreV1PostNamespacedPodAttach", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodAttachOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/binding": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Binding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create binding of a Pod", - "operationId": "createCoreV1NamespacedPodBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/eviction": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Eviction", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create eviction of a Pod", - "operationId": "createCoreV1NamespacedPodEviction", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/exec": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to exec of Pod", - "operationId": "connectCoreV1GetNamespacedPodExec", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodExecOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "Command is the remote command to execute. argv array. Not executed within a shell.", - "in": "query", - "name": "command", - "type": "string", - "uniqueItems": true - }, - { - "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the PodExecOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Redirect the standard error stream of the pod for this call. Defaults to true.", - "in": "query", - "name": "stderr", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", - "in": "query", - "name": "stdin", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Redirect the standard output stream of the pod for this call. Defaults to true.", - "in": "query", - "name": "stdout", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", - "in": "query", - "name": "tty", - "type": "boolean", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to exec of Pod", - "operationId": "connectCoreV1PostNamespacedPodExec", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodExecOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/log": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read log of the specified Pod", - "operationId": "readCoreV1NamespacedPodLog", - "produces": [ - "text/plain", - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "The container for which to stream logs. Defaults to only container if there is one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "Follow the log stream of the pod. Defaults to false.", - "in": "query", - "name": "follow", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).", - "in": "query", - "name": "insecureSkipTLSVerifyBackend", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", - "in": "query", - "name": "limitBytes", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "Return previous terminated container logs. Defaults to false.", - "in": "query", - "name": "previous", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "in": "query", - "name": "sinceSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", - "in": "query", - "name": "tailLines", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", - "in": "query", - "name": "timestamps", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/portforward": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to portforward of Pod", - "operationId": "connectCoreV1GetNamespacedPodPortforward", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodPortForwardOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodPortForwardOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "List of ports to forward Required when using WebSockets", - "in": "query", - "name": "ports", - "type": "integer", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to portforward of Pod", - "operationId": "connectCoreV1PostNamespacedPodPortforward", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodPortForwardOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Pod", - "operationId": "connectCoreV1DeleteNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Pod", - "operationId": "connectCoreV1GetNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Pod", - "operationId": "connectCoreV1HeadNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Pod", - "operationId": "connectCoreV1OptionsNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to pod.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Pod", - "operationId": "connectCoreV1PatchNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Pod", - "operationId": "connectCoreV1PostNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Pod", - "operationId": "connectCoreV1PutNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Pod", - "operationId": "connectCoreV1DeleteNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Pod", - "operationId": "connectCoreV1GetNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Pod", - "operationId": "connectCoreV1HeadNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Pod", - "operationId": "connectCoreV1OptionsNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to pod.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Pod", - "operationId": "connectCoreV1PatchNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Pod", - "operationId": "connectCoreV1PostNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Pod", - "operationId": "connectCoreV1PutNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Pod", - "operationId": "readCoreV1NamespacedPodStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Pod", - "operationId": "patchCoreV1NamespacedPodStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Pod", - "operationId": "replaceCoreV1NamespacedPodStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/podtemplates": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodTemplate", - "operationId": "deleteCoreV1CollectionNamespacedPodTemplate", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodTemplate", - "operationId": "listCoreV1NamespacedPodTemplate", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodTemplate", - "operationId": "createCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/podtemplates/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodTemplate", - "operationId": "deleteCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodTemplate", - "operationId": "readCoreV1NamespacedPodTemplate", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodTemplate", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodTemplate", - "operationId": "patchCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodTemplate", - "operationId": "replaceCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ReplicationController", - "operationId": "deleteCoreV1CollectionNamespacedReplicationController", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicationController", - "operationId": "listCoreV1NamespacedReplicationController", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ReplicationController", - "operationId": "createCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ReplicationController", - "operationId": "deleteCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationController", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationControllerScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationControllerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ResourceQuota", - "operationId": "deleteCoreV1CollectionNamespacedResourceQuota", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ResourceQuota", - "operationId": "listCoreV1NamespacedResourceQuota", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ResourceQuota", - "operationId": "createCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ResourceQuota", - "operationId": "deleteCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ResourceQuota", - "operationId": "readCoreV1NamespacedResourceQuota", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ResourceQuota", - "operationId": "patchCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ResourceQuota", - "operationId": "replaceCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ResourceQuota", - "operationId": "readCoreV1NamespacedResourceQuotaStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ResourceQuota", - "operationId": "patchCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ResourceQuota", - "operationId": "replaceCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/secrets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Secret", - "operationId": "deleteCoreV1CollectionNamespacedSecret", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Secret", - "operationId": "listCoreV1NamespacedSecret", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Secret", - "operationId": "createCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/secrets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Secret", - "operationId": "deleteCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Secret", - "operationId": "readCoreV1NamespacedSecret", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Secret", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Secret", - "operationId": "patchCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Secret", - "operationId": "replaceCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/serviceaccounts": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ServiceAccount", - "operationId": "deleteCoreV1CollectionNamespacedServiceAccount", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ServiceAccount", - "operationId": "listCoreV1NamespacedServiceAccount", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ServiceAccount", - "operationId": "createCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/serviceaccounts/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ServiceAccount", - "operationId": "deleteCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ServiceAccount", - "operationId": "readCoreV1NamespacedServiceAccount", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceAccount", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ServiceAccount", - "operationId": "patchCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ServiceAccount", - "operationId": "replaceCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Service", - "operationId": "listCoreV1NamespacedService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Service", - "operationId": "createCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Service", - "operationId": "deleteCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Service", - "operationId": "readCoreV1NamespacedService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Service", - "operationId": "patchCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Service", - "operationId": "replaceCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Service", - "operationId": "connectCoreV1DeleteNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Service", - "operationId": "connectCoreV1GetNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Service", - "operationId": "connectCoreV1HeadNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Service", - "operationId": "connectCoreV1OptionsNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Service", - "operationId": "connectCoreV1PatchNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Service", - "operationId": "connectCoreV1PostNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Service", - "operationId": "connectCoreV1PutNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Service", - "operationId": "connectCoreV1DeleteNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Service", - "operationId": "connectCoreV1GetNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Service", - "operationId": "connectCoreV1HeadNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Service", - "operationId": "connectCoreV1OptionsNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Service", - "operationId": "connectCoreV1PatchNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Service", - "operationId": "connectCoreV1PostNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Service", - "operationId": "connectCoreV1PutNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Service", - "operationId": "readCoreV1NamespacedServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Service", - "operationId": "patchCoreV1NamespacedServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Service", - "operationId": "replaceCoreV1NamespacedServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Namespace", - "operationId": "deleteCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Namespace", - "operationId": "readCoreV1Namespace", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Namespace", - "operationId": "patchCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Namespace", - "operationId": "replaceCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}/finalize": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "put": { - "consumes": [ - "*/*" - ], - "description": "replace finalize of the specified Namespace", - "operationId": "replaceCoreV1NamespaceFinalize", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Namespace", - "operationId": "readCoreV1NamespaceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Namespace", - "operationId": "patchCoreV1NamespaceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Namespace", - "operationId": "replaceCoreV1NamespaceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/nodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Node", - "operationId": "deleteCoreV1CollectionNode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Node", - "operationId": "listCoreV1Node", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Node", - "operationId": "createCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Node", - "operationId": "deleteCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Node", - "operationId": "readCoreV1Node", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Node", - "operationId": "patchCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Node", - "operationId": "replaceCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Node", - "operationId": "connectCoreV1DeleteNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Node", - "operationId": "connectCoreV1GetNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Node", - "operationId": "connectCoreV1HeadNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Node", - "operationId": "connectCoreV1OptionsNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NodeProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to node.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Node", - "operationId": "connectCoreV1PatchNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Node", - "operationId": "connectCoreV1PostNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Node", - "operationId": "connectCoreV1PutNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Node", - "operationId": "connectCoreV1DeleteNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Node", - "operationId": "connectCoreV1GetNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Node", - "operationId": "connectCoreV1HeadNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Node", - "operationId": "connectCoreV1OptionsNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NodeProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to node.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Node", - "operationId": "connectCoreV1PatchNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Node", - "operationId": "connectCoreV1PostNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Node", - "operationId": "connectCoreV1PutNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Node", - "operationId": "readCoreV1NodeStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Node", - "operationId": "patchCoreV1NodeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Node", - "operationId": "replaceCoreV1NodeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolumeClaim", - "operationId": "listCoreV1PersistentVolumeClaimForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/persistentvolumes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PersistentVolume", - "operationId": "deleteCoreV1CollectionPersistentVolume", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolume", - "operationId": "listCoreV1PersistentVolume", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PersistentVolume", - "operationId": "createCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PersistentVolume", - "operationId": "deleteCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PersistentVolume", - "operationId": "readCoreV1PersistentVolume", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PersistentVolume", - "operationId": "patchCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PersistentVolume", - "operationId": "replaceCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumes/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PersistentVolume", - "operationId": "readCoreV1PersistentVolumeStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PersistentVolume", - "operationId": "patchCoreV1PersistentVolumeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PersistentVolume", - "operationId": "replaceCoreV1PersistentVolumeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Pod", - "operationId": "listCoreV1PodForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodTemplate", - "operationId": "listCoreV1PodTemplateForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicationController", - "operationId": "listCoreV1ReplicationControllerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ResourceQuota", - "operationId": "listCoreV1ResourceQuotaForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Secret", - "operationId": "listCoreV1SecretForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ServiceAccount", - "operationId": "listCoreV1ServiceAccountForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Service", - "operationId": "listCoreV1ServiceForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ConfigMapListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1EndpointsListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1LimitRangeListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespaceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedConfigMapList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ConfigMap. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedConfigMap", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ConfigMap", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedEndpointsList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Endpoints. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedEndpoints", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Endpoints", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedLimitRangeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind LimitRange. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedLimitRange", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the LimitRange", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPersistentVolumeClaimList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPersistentVolumeClaim", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPodList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Pod. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPod", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPodTemplateList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodTemplate. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPodTemplate", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodTemplate", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedReplicationControllerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ReplicationController. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedReplicationController", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedResourceQuotaList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedResourceQuota", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedSecretList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Secret. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedSecret", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Secret", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedServiceAccountList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedServiceAccount", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ServiceAccount", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Service. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Namespace. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1Namespace", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/nodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/nodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Node. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1Node", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PersistentVolumeClaimListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PersistentVolumeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1PersistentVolume", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PodListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PodTemplateListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ReplicationControllerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ResourceQuotaListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1SecretListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ServiceAccountListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ServiceListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available API versions", - "operationId": "getAPIVersions", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apis" - ] - } - }, - "/apis/admissionregistration.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAdmissionregistrationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAdmissionregistrationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1CollectionMutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind MutatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a MutatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified MutatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified MutatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified MutatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1CollectionValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ValidatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ValidatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ValidatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ValidatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ValidatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1MutatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1MutatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAdmissionregistrationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1CollectionMutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind MutatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a MutatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified MutatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified MutatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified MutatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1CollectionValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ValidatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ValidatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ValidatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ValidatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ValidatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getApiextensionsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions" - ] - } - }, - "/apis/apiextensions.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiextensionsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ] - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CustomResourceDefinition", - "operationId": "deleteApiextensionsV1CollectionCustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CustomResourceDefinition", - "operationId": "listApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CustomResourceDefinition", - "operationId": "createApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CustomResourceDefinition", - "operationId": "deleteApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1CustomResourceDefinitionStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiextensionsV1CustomResourceDefinitionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiextensionsV1CustomResourceDefinition", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiextensionsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ] - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CustomResourceDefinition", - "operationId": "deleteApiextensionsV1beta1CollectionCustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CustomResourceDefinition", - "operationId": "listApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CustomResourceDefinition", - "operationId": "createApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CustomResourceDefinition", - "operationId": "deleteApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1beta1CustomResourceDefinitionStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiextensionsV1beta1CustomResourceDefinitionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiextensionsV1beta1CustomResourceDefinition", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getApiregistrationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration" - ] - } - }, - "/apis/apiregistration.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiregistrationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ] - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of APIService", - "operationId": "deleteApiregistrationV1CollectionAPIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind APIService", - "operationId": "listApiregistrationV1APIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an APIService", - "operationId": "createApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an APIService", - "operationId": "deleteApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified APIService", - "operationId": "readApiregistrationV1APIService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified APIService", - "operationId": "patchApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified APIService", - "operationId": "replaceApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified APIService", - "operationId": "readApiregistrationV1APIServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified APIService", - "operationId": "patchApiregistrationV1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified APIService", - "operationId": "replaceApiregistrationV1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiregistrationV1APIServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiregistrationV1APIService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiregistrationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ] - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of APIService", - "operationId": "deleteApiregistrationV1beta1CollectionAPIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind APIService", - "operationId": "listApiregistrationV1beta1APIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an APIService", - "operationId": "createApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an APIService", - "operationId": "deleteApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified APIService", - "operationId": "readApiregistrationV1beta1APIService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified APIService", - "operationId": "patchApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified APIService", - "operationId": "replaceApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified APIService", - "operationId": "readApiregistrationV1beta1APIServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified APIService", - "operationId": "patchApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified APIService", - "operationId": "replaceApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiregistrationV1beta1APIServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiregistrationV1beta1APIService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAppsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps" - ] - } - }, - "/apis/apps/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAppsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ] - } - }, - "/apis/apps/v1/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ControllerRevision", - "operationId": "listAppsV1ControllerRevisionForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind DaemonSet", - "operationId": "listAppsV1DaemonSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Deployment", - "operationId": "listAppsV1DeploymentForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ControllerRevision", - "operationId": "deleteAppsV1CollectionNamespacedControllerRevision", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ControllerRevision", - "operationId": "listAppsV1NamespacedControllerRevision", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ControllerRevision", - "operationId": "createAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ControllerRevision", - "operationId": "deleteAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ControllerRevision", - "operationId": "readAppsV1NamespacedControllerRevision", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ControllerRevision", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ControllerRevision", - "operationId": "patchAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ControllerRevision", - "operationId": "replaceAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of DaemonSet", - "operationId": "deleteAppsV1CollectionNamespacedDaemonSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind DaemonSet", - "operationId": "listAppsV1NamespacedDaemonSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a DaemonSet", - "operationId": "createAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a DaemonSet", - "operationId": "deleteAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified DaemonSet", - "operationId": "readAppsV1NamespacedDaemonSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified DaemonSet", - "operationId": "patchAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified DaemonSet", - "operationId": "replaceAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified DaemonSet", - "operationId": "readAppsV1NamespacedDaemonSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified DaemonSet", - "operationId": "patchAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified DaemonSet", - "operationId": "replaceAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Deployment", - "operationId": "deleteAppsV1CollectionNamespacedDeployment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Deployment", - "operationId": "listAppsV1NamespacedDeployment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Deployment", - "operationId": "createAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Deployment", - "operationId": "deleteAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Deployment", - "operationId": "readAppsV1NamespacedDeployment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Deployment", - "operationId": "patchAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified Deployment", - "operationId": "readAppsV1NamespacedDeploymentScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified Deployment", - "operationId": "patchAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Deployment", - "operationId": "readAppsV1NamespacedDeploymentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Deployment", - "operationId": "patchAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ReplicaSet", - "operationId": "deleteAppsV1CollectionNamespacedReplicaSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicaSet", - "operationId": "listAppsV1NamespacedReplicaSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ReplicaSet", - "operationId": "createAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ReplicaSet", - "operationId": "deleteAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSetScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StatefulSet", - "operationId": "deleteAppsV1CollectionNamespacedStatefulSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StatefulSet", - "operationId": "listAppsV1NamespacedStatefulSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StatefulSet", - "operationId": "createAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StatefulSet", - "operationId": "deleteAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSetScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicaSet", - "operationId": "listAppsV1ReplicaSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StatefulSet", - "operationId": "listAppsV1StatefulSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1ControllerRevisionListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1DaemonSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1DeploymentListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedControllerRevisionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedControllerRevision", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ControllerRevision", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedDaemonSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind DaemonSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedDaemonSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedDeploymentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Deployment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedDeployment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedReplicaSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedReplicaSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedStatefulSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StatefulSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedStatefulSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1ReplicaSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1StatefulSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/authentication.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAuthenticationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication" - ] - } - }, - "/apis/authentication.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthenticationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ] - } - }, - "/apis/authentication.k8s.io/v1/tokenreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a TokenReview", - "operationId": "createAuthenticationV1TokenReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - } - }, - "/apis/authentication.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthenticationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ] - } - }, - "/apis/authentication.k8s.io/v1beta1/tokenreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a TokenReview", - "operationId": "createAuthenticationV1beta1TokenReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAuthorizationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization" - ] - } - }, - "/apis/authorization.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthorizationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ] - } - }, - "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LocalSubjectAccessReview", - "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectAccessReview", - "operationId": "createAuthorizationV1SelfSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectRulesReview", - "operationId": "createAuthorizationV1SelfSubjectRulesReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/subjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SubjectAccessReview", - "operationId": "createAuthorizationV1SubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthorizationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ] - } - }, - "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LocalSubjectAccessReview", - "operationId": "createAuthorizationV1beta1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectAccessReview", - "operationId": "createAuthorizationV1beta1SelfSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectRulesReview", - "operationId": "createAuthorizationV1beta1SelfSubjectRulesReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SubjectAccessReview", - "operationId": "createAuthorizationV1beta1SubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/autoscaling/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAutoscalingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling" - ] - } - }, - "/apis/autoscaling/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ] - } - }, - "/apis/autoscaling/v1/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV2beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ] - } - }, - "/apis/autoscaling/v2beta1/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV2beta2APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ] - } - }, - "/apis/autoscaling/v2beta2/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta2HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta2CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta2HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getBatchAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch" - ] - } - }, - "/apis/batch/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getBatchV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ] - } - }, - "/apis/batch/v1/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Job", - "operationId": "listBatchV1JobForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/namespaces/{namespace}/jobs": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Job", - "operationId": "deleteBatchV1CollectionNamespacedJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Job", - "operationId": "listBatchV1NamespacedJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Job", - "operationId": "createBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Job", - "operationId": "deleteBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Job", - "operationId": "readBatchV1NamespacedJob", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Job", - "operationId": "patchBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Job", - "operationId": "replaceBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Job", - "operationId": "readBatchV1NamespacedJobStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Job", - "operationId": "patchBatchV1NamespacedJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Job", - "operationId": "replaceBatchV1NamespacedJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/watch/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1JobListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1NamespacedJobList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Job. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchBatchV1NamespacedJob", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getBatchV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ] - } - }, - "/apis/batch/v1beta1/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CronJob", - "operationId": "listBatchV1beta1CronJobForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CronJob", - "operationId": "deleteBatchV1beta1CollectionNamespacedCronJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CronJob", - "operationId": "listBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CronJob", - "operationId": "createBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CronJob", - "operationId": "deleteBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CronJob", - "operationId": "readBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CronJob", - "operationId": "patchBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CronJob", - "operationId": "replaceBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CronJob", - "operationId": "readBatchV1beta1NamespacedCronJobStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CronJob", - "operationId": "patchBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CronJob", - "operationId": "replaceBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/watch/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1beta1CronJobListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1beta1NamespacedCronJobList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CronJob. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchBatchV1beta1NamespacedCronJob", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getCertificatesAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates" - ] - } - }, - "/apis/certificates.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCertificatesV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ] - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CertificateSigningRequest", - "operationId": "deleteCertificatesV1beta1CollectionCertificateSigningRequest", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CertificateSigningRequest", - "operationId": "listCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CertificateSigningRequest", - "operationId": "createCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CertificateSigningRequest", - "operationId": "deleteCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "put": { - "consumes": [ - "*/*" - ], - "description": "replace approval of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestApproval", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequestStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCertificatesV1beta1CertificateSigningRequestList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCertificatesV1beta1CertificateSigningRequest", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getCoordinationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination" - ] - } - }, - "/apis/coordination.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoordinationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ] - } - }, - "/apis/coordination.k8s.io/v1/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1LeaseForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Lease", - "operationId": "deleteCoordinationV1CollectionNamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1NamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Lease", - "operationId": "createCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - } - }, - "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Lease", - "operationId": "deleteCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Lease", - "operationId": "readCoordinationV1NamespacedLease", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Lease", - "operationId": "patchCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Lease", - "operationId": "replaceCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - } - }, - "/apis/coordination.k8s.io/v1/watch/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1LeaseListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1NamespacedLeaseList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoordinationV1NamespacedLease", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoordinationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ] - } - }, - "/apis/coordination.k8s.io/v1beta1/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1beta1LeaseForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Lease", - "operationId": "deleteCoordinationV1beta1CollectionNamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Lease", - "operationId": "createCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - } - }, - "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Lease", - "operationId": "deleteCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Lease", - "operationId": "readCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Lease", - "operationId": "patchCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Lease", - "operationId": "replaceCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - } - }, - "/apis/coordination.k8s.io/v1beta1/watch/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1beta1LeaseListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1beta1NamespacedLeaseList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoordinationV1beta1NamespacedLease", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getDiscoveryAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery" - ] - } - }, - "/apis/discovery.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getDiscoveryV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ] - } - }, - "/apis/discovery.k8s.io/v1beta1/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind EndpointSlice", - "operationId": "listDiscoveryV1beta1EndpointSliceForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of EndpointSlice", - "operationId": "deleteDiscoveryV1beta1CollectionNamespacedEndpointSlice", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind EndpointSlice", - "operationId": "listDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an EndpointSlice", - "operationId": "createDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - } - }, - "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an EndpointSlice", - "operationId": "deleteDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified EndpointSlice", - "operationId": "readDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the EndpointSlice", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified EndpointSlice", - "operationId": "patchDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified EndpointSlice", - "operationId": "replaceDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - } - }, - "/apis/discovery.k8s.io/v1beta1/watch/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchDiscoveryV1beta1EndpointSliceListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchDiscoveryV1beta1NamespacedEndpointSliceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchDiscoveryV1beta1NamespacedEndpointSlice", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the EndpointSlice", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getEventsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events" - ] - } - }, - "/apis/events.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getEventsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ] - } - }, - "/apis/events.k8s.io/v1beta1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1beta1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteEventsV1beta1CollectionNamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1beta1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - } - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readEventsV1beta1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - } - }, - "/apis/events.k8s.io/v1beta1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1beta1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1beta1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchEventsV1beta1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getExtensionsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions" - ] - } - }, - "/apis/extensions/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getExtensionsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ] - } - }, - "/apis/extensions/v1beta1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listExtensionsV1beta1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteExtensionsV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readExtensionsV1beta1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchExtensionsV1beta1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchExtensionsV1beta1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchExtensionsV1beta1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getNetworkingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking" - ] - } - }, - "/apis/networking.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNetworkingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ] - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of NetworkPolicy", - "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind NetworkPolicy", - "operationId": "listNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a NetworkPolicy", - "operationId": "createNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a NetworkPolicy", - "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified NetworkPolicy", - "operationId": "readNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NetworkPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified NetworkPolicy", - "operationId": "patchNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified NetworkPolicy", - "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind NetworkPolicy", - "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1NamespacedNetworkPolicy", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the NetworkPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNetworkingV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ] - } - }, - "/apis/networking.k8s.io/v1beta1/ingressclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of IngressClass", - "operationId": "deleteNetworkingV1beta1CollectionIngressClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind IngressClass", - "operationId": "listNetworkingV1beta1IngressClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an IngressClass", - "operationId": "createNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/ingressclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an IngressClass", - "operationId": "deleteNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified IngressClass", - "operationId": "readNetworkingV1beta1IngressClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified IngressClass", - "operationId": "patchNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified IngressClass", - "operationId": "replaceNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1beta1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteNetworkingV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readNetworkingV1beta1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchNetworkingV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceNetworkingV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/watch/ingressclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1IngressClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/ingressclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1beta1IngressClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1beta1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/node.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getNodeAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node" - ] - } - }, - "/apis/node.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNodeV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ] - } - }, - "/apis/node.k8s.io/v1beta1/runtimeclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RuntimeClass", - "operationId": "deleteNodeV1beta1CollectionRuntimeClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RuntimeClass", - "operationId": "listNodeV1beta1RuntimeClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RuntimeClass", - "operationId": "createNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - } - }, - "/apis/node.k8s.io/v1beta1/runtimeclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RuntimeClass", - "operationId": "deleteNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RuntimeClass", - "operationId": "readNodeV1beta1RuntimeClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the RuntimeClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RuntimeClass", - "operationId": "patchNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RuntimeClass", - "operationId": "replaceNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - } - }, - "/apis/node.k8s.io/v1beta1/watch/runtimeclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNodeV1beta1RuntimeClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/node.k8s.io/v1beta1/watch/runtimeclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNodeV1beta1RuntimeClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RuntimeClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getPolicyAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy" - ] - } - }, - "/apis/policy/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getPolicyV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ] - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodDisruptionBudget", - "operationId": "deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodDisruptionBudget", - "operationId": "listPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodDisruptionBudget", - "operationId": "createPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodDisruptionBudget", - "operationId": "deletePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodDisruptionBudget", - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodDisruptionBudget", - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodDisruptionBudget", - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PodDisruptionBudget", - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PodDisruptionBudget", - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PodDisruptionBudget", - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodDisruptionBudget", - "operationId": "listPolicyV1beta1PodDisruptionBudgetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/podsecuritypolicies": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodSecurityPolicy", - "operationId": "deletePolicyV1beta1CollectionPodSecurityPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodSecurityPolicy", - "operationId": "listPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodSecurityPolicy", - "operationId": "createPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/podsecuritypolicies/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodSecurityPolicy", - "operationId": "deletePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodSecurityPolicy", - "operationId": "readPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodSecurityPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodSecurityPolicy", - "operationId": "patchPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodSecurityPolicy", - "operationId": "replacePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudgetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudget", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1PodSecurityPolicyList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchPolicyV1beta1PodSecurityPolicy", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodSecurityPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getRbacAuthorizationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getRbacAuthorizationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1CollectionClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRoleBinding", - "operationId": "listRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRoleBinding", - "operationId": "createRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRoleBinding", - "operationId": "readRbacAuthorizationV1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRoleBinding", - "operationId": "patchRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRoleBinding", - "operationId": "replaceRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRole", - "operationId": "deleteRbacAuthorizationV1CollectionClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRole", - "operationId": "listRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRole", - "operationId": "createRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRole", - "operationId": "deleteRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRole", - "operationId": "readRbacAuthorizationV1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRole", - "operationId": "patchRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRole", - "operationId": "replaceRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RoleBinding", - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RoleBinding", - "operationId": "createRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RoleBinding", - "operationId": "deleteRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RoleBinding", - "operationId": "readRbacAuthorizationV1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RoleBinding", - "operationId": "patchRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RoleBinding", - "operationId": "replaceRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Role", - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Role", - "operationId": "createRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Role", - "operationId": "deleteRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Role", - "operationId": "readRbacAuthorizationV1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Role", - "operationId": "patchRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Role", - "operationId": "replaceRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1ClusterRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1ClusterRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1RoleBindingListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1RoleListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getRbacAuthorizationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRoleBinding", - "operationId": "listRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRoleBinding", - "operationId": "createRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRoleBinding", - "operationId": "readRbacAuthorizationV1beta1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRoleBinding", - "operationId": "patchRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRoleBinding", - "operationId": "replaceRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRole", - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRole", - "operationId": "listRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRole", - "operationId": "createRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRole", - "operationId": "deleteRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRole", - "operationId": "readRbacAuthorizationV1beta1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRole", - "operationId": "patchRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRole", - "operationId": "replaceRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RoleBinding", - "operationId": "createRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RoleBinding", - "operationId": "readRbacAuthorizationV1beta1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RoleBinding", - "operationId": "patchRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RoleBinding", - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Role", - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Role", - "operationId": "createRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Role", - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Role", - "operationId": "readRbacAuthorizationV1beta1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Role", - "operationId": "patchRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Role", - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1beta1RoleBindingForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1beta1RoleForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1RoleListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getSchedulingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling" - ] - } - }, - "/apis/scheduling.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getSchedulingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ] - } - }, - "/apis/scheduling.k8s.io/v1/priorityclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PriorityClass", - "operationId": "deleteSchedulingV1CollectionPriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PriorityClass", - "operationId": "listSchedulingV1PriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PriorityClass", - "operationId": "createSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - } - }, - "/apis/scheduling.k8s.io/v1/priorityclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PriorityClass", - "operationId": "deleteSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PriorityClass", - "operationId": "readSchedulingV1PriorityClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PriorityClass", - "operationId": "patchSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PriorityClass", - "operationId": "replaceSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - } - }, - "/apis/scheduling.k8s.io/v1/watch/priorityclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchSchedulingV1PriorityClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1/watch/priorityclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchSchedulingV1PriorityClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getSchedulingV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ] - } - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PriorityClass", - "operationId": "deleteSchedulingV1beta1CollectionPriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PriorityClass", - "operationId": "listSchedulingV1beta1PriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PriorityClass", - "operationId": "createSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - } - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PriorityClass", - "operationId": "deleteSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PriorityClass", - "operationId": "readSchedulingV1beta1PriorityClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PriorityClass", - "operationId": "patchSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PriorityClass", - "operationId": "replaceSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - } - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchSchedulingV1beta1PriorityClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchSchedulingV1beta1PriorityClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getStorageAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage" - ] - } - }, - "/apis/storage.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getStorageV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ] - } - }, - "/apis/storage.k8s.io/v1/csidrivers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSIDriver", - "operationId": "deleteStorageV1CollectionCSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSIDriver", - "operationId": "listStorageV1CSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSIDriver", - "operationId": "createStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csidrivers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSIDriver", - "operationId": "deleteStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSIDriver", - "operationId": "readStorageV1CSIDriver", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSIDriver", - "operationId": "patchStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSIDriver", - "operationId": "replaceStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csinodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSINode", - "operationId": "deleteStorageV1CollectionCSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSINode", - "operationId": "listStorageV1CSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSINode", - "operationId": "createStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csinodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSINode", - "operationId": "deleteStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSINode", - "operationId": "readStorageV1CSINode", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSINode", - "operationId": "patchStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSINode", - "operationId": "replaceStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/storageclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StorageClass", - "operationId": "deleteStorageV1CollectionStorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StorageClass", - "operationId": "listStorageV1StorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StorageClass", - "operationId": "createStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/storageclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StorageClass", - "operationId": "deleteStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StorageClass", - "operationId": "readStorageV1StorageClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StorageClass", - "operationId": "patchStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StorageClass", - "operationId": "replaceStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of VolumeAttachment", - "operationId": "deleteStorageV1CollectionVolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind VolumeAttachment", - "operationId": "listStorageV1VolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a VolumeAttachment", - "operationId": "createStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a VolumeAttachment", - "operationId": "deleteStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified VolumeAttachment", - "operationId": "readStorageV1VolumeAttachment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified VolumeAttachment", - "operationId": "patchStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified VolumeAttachment", - "operationId": "replaceStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified VolumeAttachment", - "operationId": "readStorageV1VolumeAttachmentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified VolumeAttachment", - "operationId": "patchStorageV1VolumeAttachmentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified VolumeAttachment", - "operationId": "replaceStorageV1VolumeAttachmentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/watch/csidrivers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1CSIDriverList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csidrivers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1CSIDriver", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csinodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1CSINodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csinodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1CSINode", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1StorageClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1StorageClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/volumeattachments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1VolumeAttachmentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/volumeattachments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1VolumeAttachment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getStorageV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ] - } - }, - "/apis/storage.k8s.io/v1beta1/csidrivers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSIDriver", - "operationId": "deleteStorageV1beta1CollectionCSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSIDriver", - "operationId": "listStorageV1beta1CSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSIDriver", - "operationId": "createStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csidrivers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSIDriver", - "operationId": "deleteStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSIDriver", - "operationId": "readStorageV1beta1CSIDriver", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSIDriver", - "operationId": "patchStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSIDriver", - "operationId": "replaceStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csinodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSINode", - "operationId": "deleteStorageV1beta1CollectionCSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSINode", - "operationId": "listStorageV1beta1CSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSINode", - "operationId": "createStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csinodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSINode", - "operationId": "deleteStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSINode", - "operationId": "readStorageV1beta1CSINode", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSINode", - "operationId": "patchStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSINode", - "operationId": "replaceStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StorageClass", - "operationId": "deleteStorageV1beta1CollectionStorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StorageClass", - "operationId": "listStorageV1beta1StorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StorageClass", - "operationId": "createStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StorageClass", - "operationId": "deleteStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StorageClass", - "operationId": "readStorageV1beta1StorageClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StorageClass", - "operationId": "patchStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StorageClass", - "operationId": "replaceStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of VolumeAttachment", - "operationId": "deleteStorageV1beta1CollectionVolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind VolumeAttachment", - "operationId": "listStorageV1beta1VolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a VolumeAttachment", - "operationId": "createStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a VolumeAttachment", - "operationId": "deleteStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified VolumeAttachment", - "operationId": "readStorageV1beta1VolumeAttachment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified VolumeAttachment", - "operationId": "patchStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified VolumeAttachment", - "operationId": "replaceStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/watch/csidrivers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1CSIDriverList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csidrivers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1CSIDriver", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csinodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1CSINodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csinodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1CSINode", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1StorageClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1StorageClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1VolumeAttachmentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1VolumeAttachment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/logs/": { - "get": { - "operationId": "logFileListHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "logs" - ] - } - }, - "/logs/{logpath}": { - "get": { - "operationId": "logFileHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "logs" - ] - }, - "parameters": [ - { - "description": "path to the log", - "in": "path", - "name": "logpath", - "required": true, - "type": "string", - "uniqueItems": true - } - ] - }, - "/version/": { - "get": { - "consumes": [ - "application/json" - ], - "description": "get the code version", - "operationId": "getCodeVersion", - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "version" - ] - } - } - }, - "security": [ - { - "BearerToken": [] - } - ], - "securityDefinitions": { - "BearerToken": { - "description": "Bearer Token authentication", - "in": "header", - "name": "authorization", - "type": "apiKey" - } - }, - "swagger": "2.0" -} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1186/swagger.go b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1186/swagger.go deleted file mode 100644 index 5eff158d0f..0000000000 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1186/swagger.go +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright 2019 The Kubernetes Authors. -// SPDX-License-Identifier: Apache-2.0 - -// Code generated for package v1186 by go-bindata DO NOT EDIT. (@generated) -// sources: -// kubernetesapi/v1186/swagger.json -package v1186 - -import ( - "bytes" - "compress/gzip" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - "time" -) - -func bindataRead(data []byte, name string) ([]byte, error) { - gz, err := gzip.NewReader(bytes.NewBuffer(data)) - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - - var buf bytes.Buffer - _, err = io.Copy(&buf, gz) - clErr := gz.Close() - - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - if clErr != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -type asset struct { - bytes []byte - info os.FileInfo -} - -type bindataFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} - -// Name return file name -func (fi bindataFileInfo) Name() string { - return fi.name -} - -// Size return file size -func (fi bindataFileInfo) Size() int64 { - return fi.size -} - -// Mode return file mode -func (fi bindataFileInfo) Mode() os.FileMode { - return fi.mode -} - -// Mode return file modify time -func (fi bindataFileInfo) ModTime() time.Time { - return fi.modTime -} - -// IsDir return file whether a directory -func (fi bindataFileInfo) IsDir() bool { - return fi.mode&os.ModeDir != 0 -} - -// Sys return file is sys mode -func (fi bindataFileInfo) Sys() interface{} { - return nil -} - -var _kubernetesapiV1186SwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x6d\x73\xdb\x38\xd6\x28\xf8\xfd\xfe\x0a\x94\x7b\xa7\x92\xf4\xca\x72\xd2\x3d\x6f\x37\x5d\x53\xbb\x9e\x24\x3d\xed\x99\x24\xed\x6b\x3b\x3d\x7b\x77\x3c\xf5\x04\x22\x21\x09\x8f\x29\x80\x0d\x80\x76\xd4\x5b\x4f\xd5\xfe\x8d\xfd\x7b\xfb\x4b\x6e\xe1\x1c\x00\x04\x29\x52\xa4\x64\xc9\x6f\xe1\x7c\x98\x8e\x45\x10\x04\x0e\x0e\xce\xfb\xcb\xff\xf3\xdf\x08\x39\x48\xd9\x94\x0b\x6e\xb8\x14\xfa\xe0\x35\xb1\x3f\x11\x72\xc0\xe5\xf8\xea\xcf\x7a\x4c\x73\x3e\xa6\xe9\x82\x6b\xcd\xa5\x50\x6c\xc6\xb5\x51\xd4\x0e\x1d\x5f\xbf\x1a\x7f\x28\x0c\x35\x5c\xcc\xfe\xc9\x26\x73\x29\xaf\xc2\xcb\x30\xa7\x4e\x14\xcf\xed\xc8\x83\xd7\xe4\xa0\x36\x92\xe0\xe3\x09\xd3\x84\x0a\x12\xe6\x27\x37\xee\x31\x15\x29\x31\x73\x46\x14\xd3\xb2\x50\x09\x0c\x4b\x89\xcc\x19\x7e\x5b\x13\x6e\x08\xcd\xf3\x8c\x33\x4d\x8c\x1c\x1f\x8c\xfc\x67\x73\x65\x07\x19\xce\x74\xb4\x18\x42\x0e\xc2\x27\xce\xd8\x35\x67\x37\xbf\x30\xa5\x2b\xdb\x6d\x5e\xf5\x71\xf3\x5b\x84\xc3\xb2\xa5\x4a\x99\x62\x29\xc9\xb8\x36\x44\x4e\x49\xae\xd8\x94\x29\xfb\xcb\xe7\xda\x8b\x9f\xc9\xb5\x7f\xd5\xee\xca\x03\x81\x7d\xc9\x59\x62\xf4\x98\x1c\x9f\x9e\x10\xcd\xd4\x35\x53\xe4\x86\x67\x19\x31\x6a\x49\x8c\x24\x85\x66\x64\xca\x95\x36\xfe\x75\xc2\x05\x4c\x00\x5f\xbc\x99\xf3\x64\x6e\x01\xa1\x8b\x3c\x97\xca\xce\x73\x32\x25\x42\x0a\x66\x17\x63\x87\x85\x8f\xea\x9c\x25\x7c\xca\x59\x8a\x13\x70\x8d\x33\xb8\x17\x59\x4a\x26\xcb\x68\x0d\x23\x72\x4d\x33\x9e\x02\xa4\x71\x3d\x53\xca\x33\x32\x95\x0a\xdf\x95\x93\xff\x64\x89\x81\xaf\x51\x92\xdb\x6f\x68\x3b\x87\x3f\xbb\x44\x8a\x29\x9f\x15\x78\x52\xe1\xd3\x9a\xd0\x2c\x93\x37\x2c\x2d\x57\x65\x8f\x34\x95\x4c\x13\x21\x0d\xe1\x22\xc9\x8a\x94\x11\x2a\x96\xe5\x88\x2b\x21\x6f\x84\x85\x84\xdd\x8d\x5d\xe0\xb9\x5b\x60\x42\xb3\x4c\xfb\x07\xfe\xc3\xe5\x52\xed\xcc\x13\x46\x74\x01\x2b\xf5\xe3\xec\xa3\x42\x31\x92\xcb\x8c\x27\xcb\x12\x69\x10\xdd\x0d\x5b\xd4\xd1\x81\x90\x03\xb3\xcc\x99\xc5\x04\x6d\x14\x17\xb3\x83\xe8\xe1\x7f\x55\x5e\xf7\xe3\xa8\x52\x74\x59\x0e\x8b\x06\x1d\x24\x19\x67\xc2\xbc\x01\xe8\xd4\xf1\xee\x7f\x53\x6c\x6a\x5f\xff\xe6\x28\xba\x8b\x47\x7d\xae\xa0\xc3\xa5\x37\xf1\xe4\xa3\x35\x28\x1d\x0f\x24\xf0\x31\xa6\xc9\x5c\xde\x58\x20\x25\x72\xb1\x28\x04\x4f\xa8\x61\xe4\x86\x9b\x39\x40\xcd\xce\x3e\x26\x67\xec\xd7\x82\x2b\x96\x36\x6f\xcd\x41\xf6\x14\x00\xdb\x71\xa7\x7e\x8c\xc7\x56\x56\x50\x08\xc5\x12\x39\x13\xfc\x37\x96\x12\xa6\x94\x54\x9a\x4c\x95\x5c\xc0\x32\x4a\x1a\xc1\x44\x9a\x4b\x2e\x0c\xa1\x8a\x91\x39\x15\x69\xc6\x52\x72\x58\xa2\x17\xcd\x0a\x8b\x6d\x8a\x91\x93\x99\x90\x8a\x11\xa9\x88\xfd\xe8\x98\xbc\x65\x53\x5a\x64\x06\x10\x07\x7e\x39\x68\x3c\xc3\xfa\x59\xc7\x3b\x5d\x50\x93\xcc\x7b\xed\x33\x1a\x59\x85\xf3\x9c\x91\xcb\x03\x55\x64\x4c\x5f\x1e\xe0\x3d\xe4\xda\x5e\xf5\xd4\x2e\x0b\xde\xb2\x97\x41\x2e\xb8\x98\x11\xc5\x7e\x2d\x98\x06\x12\xb1\xba\xbd\xcb\x83\x77\x5f\x68\x62\x2e\x0f\xec\x0e\x2f\x0f\xde\xfd\x5a\xf0\x6b\x9a\x31\x61\x2e\x0f\xc6\x97\xe2\x52\x1c\x12\x78\xfe\xda\x4d\x4a\xfd\x6c\x44\x8a\x6c\x49\xf8\xd4\xd2\x0e\x66\x47\x64\x4b\x1c\x62\xe7\x8d\x68\x85\x5d\xe3\x98\xfc\x28\x95\x1d\xb5\xc8\x33\x36\xb2\x2f\xa5\x2c\xcf\xe4\x72\xc1\x84\xd1\x24\xa1\xc2\xde\xb3\x85\x4c\xf1\x8d\x6b\x4e\x2d\x59\xd6\x47\xd7\xaf\x46\xfe\x1f\x13\x66\xa8\xfd\x4b\xa4\x84\x7d\x31\x4c\xc0\xcd\x2e\x7f\x9f\x14\x26\x02\x07\xae\x0c\x49\x41\x4a\x3e\xd3\x9c\xff\x4d\xc9\x22\xd7\xaf\xff\x75\x79\x60\xe7\xbb\x3c\xf8\xb7\x9d\x98\x7b\x4a\x6c\x7f\xbf\x7e\x05\xbf\x06\x56\xf1\x9a\xfc\xeb\xf2\x20\x5a\xe5\xe5\xc1\xbf\x3f\x8f\xa2\xdd\x1b\x59\x59\x1a\x81\xfd\xd5\x17\x46\x6e\x64\x91\xa5\x40\x99\x2c\x21\x61\xc2\xd4\xa8\x8d\x87\x70\x00\xfa\x2a\x98\xf9\xd4\x43\x46\xc3\xaf\xb8\x3e\x38\x72\xa4\xc4\xb0\xeb\x11\x61\xd7\x4c\x20\xe8\x84\x34\x73\xa6\x80\xd2\xcd\xec\xbe\xed\xda\x1c\x31\xdc\xfb\x41\xd8\xdf\x1f\xee\x41\x4c\x98\xe5\x2b\xd7\x0c\xb8\x55\xf9\x22\xac\xba\xed\x74\xe2\xeb\x5e\xbd\x1e\x9b\xdf\x7b\x41\x17\xac\xe3\xc2\x5f\xcc\x19\xb1\xc3\x3c\xf7\x5d\x91\x6a\xc6\xe4\xa3\x7d\xac\xe7\x7e\x47\xd3\x22\xcb\x96\xe4\xd7\x82\x66\x70\x6a\x23\xc2\xc6\xb3\xf1\x88\xf0\x05\x9d\x31\xc7\xa4\xae\x8a\x09\x53\x82\x19\xa6\xc7\x5c\x8e\xc8\xcd\x9c\xc1\xc5\x8f\x86\x5c\x1e\x58\xfa\x61\x6a\x1f\x77\x9f\xc4\x63\xad\x4c\xd2\x34\x5a\xaa\x19\x15\xfc\x37\x64\x2a\x81\xd6\x6f\x41\x1e\xed\xa4\x3a\xa7\x09\x3b\x67\x19\x4b\x8c\x54\x9b\x32\xba\x05\x4d\xe6\x5c\x30\xb5\x1c\xe7\x57\x33\xfb\x83\x1e\x2f\x98\xa1\x96\xd3\xbd\xa7\x13\x96\x85\x79\xd7\xf1\xb8\x8f\xf5\x55\x90\x94\x25\x3c\x65\xda\xc2\x0f\x6e\x98\x91\x44\x15\xa2\x22\x3d\x48\x01\x32\x1d\x4a\x0c\x13\x6a\xe9\xb1\x3d\x3a\xff\x82\x83\x18\x4c\xeb\x44\x21\x6a\xfc\x70\x4f\x3d\xed\x28\xed\xbe\x09\xf2\x11\x00\x17\xc7\x70\xa3\x59\x36\x05\xd1\xb1\x9c\x69\x04\x23\xe0\x75\x4b\xee\xb9\xb6\xf2\xd4\x54\xaa\x05\x7e\xdd\x49\x5a\x16\x02\x29\x35\x74\x9c\x59\x10\xe8\x95\x99\x75\xa0\x1c\x49\x56\x68\xc3\x14\xd1\x89\xcc\x2d\x05\x77\x57\x71\x64\x49\xbd\x60\x56\xbe\xd4\x57\x3c\xd7\x2b\x57\xa5\x42\x5b\xda\x80\xb3\x74\x1f\xb4\x60\x94\x3a\x86\x07\x47\x19\x8e\x6a\x2d\x13\x4e\x41\x18\xb4\xe2\x83\x25\x27\x22\x63\xd7\x2c\xb3\x14\x65\x4a\x2e\x0f\x5e\x7a\x66\xf5\xea\xf2\xe0\x07\x42\x96\xb2\x40\xa9\x4d\x33\x53\x01\x1e\xa1\x9a\x4c\xa5\x65\x79\xfa\x35\xb9\x5c\x45\xab\x4b\x8b\x57\x97\x82\x90\x4b\xe4\xb3\xef\xbe\xe4\x8a\xc1\x65\xd3\xf6\xd1\xbf\xec\x23\x82\x23\xec\xff\x2e\x0f\xae\xd8\xd2\x3e\x88\x57\x34\x2a\x9f\xa2\x62\x81\xd3\x5e\x1e\x7c\x94\xe6\x44\x54\x9e\x23\xd3\x8d\x66\xc6\x9f\x5f\x46\x83\x08\x6e\xca\xff\xf9\x6f\xfc\xc7\x7f\xd9\xff\xfc\xfb\x52\xfc\x97\x05\xf2\xc9\x94\x70\xa1\x0d\xa3\x29\x6e\x9c\x22\xd9\x02\x52\xbb\x39\xc0\xeb\xc0\x46\xb9\x82\x89\x6b\xae\xa4\x58\x00\x99\x43\x98\xe7\x4a\xa6\x1e\xec\xda\xd0\x19\x17\x33\x0b\xfc\x7b\x80\x7d\x65\x71\xad\xe0\xef\x07\x7b\xdc\x55\x05\xfc\x61\x73\xeb\x0e\xe1\x9c\x31\x32\x37\x26\xd7\xaf\x8f\x8e\x2a\x74\xf1\x28\x95\x89\x3e\x4a\xa4\x48\x58\x6e\xf4\x91\xbc\x66\xca\xaa\x6e\x47\x37\x52\x5d\x71\x31\x3b\xb4\x40\x3e\x74\xe7\x71\x84\x17\xf1\x08\x08\xc1\xc2\xca\x98\xee\xf2\x68\x0b\x72\x78\x18\xc0\xa9\x63\x5e\xe4\xd9\x14\x5b\xe4\x66\x49\x2a\x14\x6d\xe4\x14\x3a\x4f\x4b\xec\x6d\x5d\x1a\x4b\x16\xc6\xcd\xb4\x16\xd7\x72\xaf\x84\xf6\xe7\xca\x12\xfa\x50\xd9\x40\x58\x79\x85\x84\xcd\xa9\x2e\xa9\xa0\xa7\x72\xd5\x0d\x5a\x9c\x67\x16\x19\x00\xe5\xe9\x8c\xda\xbb\x44\x26\xd2\xa1\xbe\xcc\x52\x5c\x0d\x70\x3c\xc1\x6e\xdc\x5f\x40\xa6\x83\x0c\xd1\x20\x2a\x20\x8b\xe4\xda\xca\x17\x9a\xa3\x46\x5f\x0a\xe2\x53\xc2\x38\xec\x65\x2d\xa5\x3f\x26\xa2\xc8\x32\x3f\xe6\x79\xb9\x16\xa7\xaf\x27\x54\x03\xaf\x4d\x14\xa3\x86\x8d\xec\x5d\x2c\x57\x58\x1b\x93\xb2\x8c\x19\xf6\xc2\x8e\x29\xf9\x11\xec\x22\xa1\xc2\x52\xd9\x39\xbd\x66\x0e\x46\xe4\x79\xc6\xaf\x18\xa1\xe4\x6d\x90\xb2\xce\x64\x96\x4d\x68\x72\x05\xef\x93\x53\x99\x9e\x2a\xf9\x65\xf9\x73\x8e\x66\x13\x9c\xee\x85\x27\xd8\x0d\x5b\x1e\x93\x4f\x9a\xc5\x47\x13\xc8\x82\xd7\x1a\xe2\xe3\xe4\x9a\xc8\xdc\x1c\x72\x31\x22\x13\x96\xd0\x42\x33\xab\x9e\x59\x6d\x46\xd9\x03\x5d\x02\xbb\x69\x96\x86\xc8\x64\x69\x49\x8f\xb1\x27\x0e\x36\x0d\x77\xea\x7b\xb8\x29\x8a\x71\x71\x2d\x13\x10\x6f\x7a\xe9\x6e\xab\x2f\x10\x2e\x52\x50\x8c\x23\xec\x9e\x73\x1d\x36\x53\x0a\x75\x09\xcd\xac\x42\xba\x28\x32\xc3\xf3\x8c\x11\xc3\x17\x56\xfe\xd7\x24\xa7\x0a\xcc\x44\x94\x68\x2e\x66\x59\x45\xa5\x45\xbc\x06\xe9\xab\x51\xd1\xfb\x68\xf7\x78\x79\xe0\x84\xf4\x93\xe9\x47\xc6\x52\x96\x3a\x3d\x0f\x1e\xbe\x5e\x35\x85\x38\xe5\xc5\x2f\xc8\x92\x29\x33\xb7\x38\x25\x2c\x07\x11\x1d\x0b\x41\x8e\x85\x1f\x6a\x98\xbc\x9c\x98\x1a\x92\x31\x0a\x6a\xa5\x9d\x2a\x05\x52\x43\x33\xd8\x78\xbc\xef\x9a\x16\x1f\xbe\x54\x23\x05\x13\x66\x31\xc2\x0e\x34\xa0\x26\xe9\x52\xab\x99\x2c\x09\x8a\x39\xe5\x34\x79\x56\xcc\xb8\xd0\x84\x4e\x8d\x93\xd2\x80\xd6\xd1\xac\x34\x47\xd1\x2c\x1b\x7b\x93\x9b\xc6\x9b\x84\x3a\xee\xd2\x99\xb3\xe0\xd8\xc9\xb7\x8b\x42\x9b\x6f\xed\xbe\x78\xca\x16\xb9\x34\x4c\x98\x11\xa1\x13\x7b\x84\x92\xe4\x4a\x26\x4c\xeb\xc0\x90\xcd\x9c\x2d\x49\xae\xd8\x35\x97\x85\xce\x96\x61\xbd\x63\xf2\x51\x1a\xf6\x9a\x7c\x8b\x12\x63\xb1\x98\x58\xda\x31\x8d\xe1\x52\xa2\x96\xf6\xf7\x70\x56\x50\x45\x85\x61\x78\x0f\x27\x2c\xa8\xe5\x52\xb0\x31\xf9\xd6\x42\xa8\x65\x02\xc5\xb4\xbd\x2c\x5c\x90\x69\xa1\x00\x36\x08\x2d\xff\xdc\xdd\x22\x5c\xf6\xc8\x03\x05\xd1\xaa\xf1\xcb\x76\xf2\x2b\x4f\x60\xed\xb7\x6f\x2a\x90\x2b\x80\x38\x94\x50\xb3\x77\x7c\xc2\x88\x62\xde\x18\x6a\xe9\x08\x17\x7c\xc1\x7f\x63\xbd\x40\x60\x3f\x61\xa4\xb7\x38\xb2\x88\xe6\xe1\x91\xd2\x2c\x23\x0b\x30\x1e\x83\xc9\x50\xb1\x78\xc9\x89\xb4\x4c\xd7\x52\x54\xbb\x2e\x1a\xec\x96\x0e\x81\xaa\xf4\xc6\xc9\x5e\x0d\xaa\xa1\xbb\x5d\x5b\xe8\x3b\xa0\x2e\x77\x10\x93\x33\x3b\x26\x32\x78\xdf\x80\xe2\x50\x9a\xb2\x41\xcb\xa0\xa6\xd4\x9b\x8f\x74\x31\x29\x0d\xdf\xf1\xcd\x4b\xa8\xb2\x24\x61\x22\x0b\x33\x26\x17\xcd\x0f\x00\x82\x7e\x76\x67\xe5\xf1\x94\xf2\x3f\xa8\x58\xfe\x07\x39\x03\xbb\xce\x4f\xf2\x86\x81\x2d\x95\x3b\x4b\x36\xa2\x39\xbb\xb6\x2c\xf2\x97\x00\xc8\x60\xc9\x0e\x37\xc8\xd2\x20\x6f\xce\x5f\x7d\x0a\x06\xbb\xbc\x28\xe9\xba\x57\x49\x90\xe0\x18\xb0\x2d\x02\xf9\x76\xec\x0c\xb0\x27\xb1\xe2\x16\x4b\xf1\x6d\x2b\x69\xd9\x8d\xf8\xd3\xcd\x96\x24\xe5\x9a\x4e\x32\x3f\x25\x5e\xfa\xd1\x2d\x56\x09\xe8\x0f\xfa\x90\x23\x62\x32\xf6\x42\x78\xab\x1b\x88\x77\xe5\x47\xbc\xa9\xb5\x62\xdf\x8e\xbf\xd3\x38\xc0\x51\x8c\x7e\xe6\xe6\xed\xed\xc0\xf6\x50\xff\xc9\xcd\xfc\xe7\x80\x58\xb7\x32\x56\x5b\xb1\xe0\xdd\x74\x6a\x57\xde\x81\xde\xe7\xe5\x48\x3c\xde\x16\x0e\x69\x45\x3c\x3b\x2b\x61\x38\x78\x4c\x8e\x13\x2b\x6a\x03\x85\x2d\x99\xdd\x6b\xf2\x51\x0a\x36\x82\xff\xff\x59\xbc\x55\xcb\xb3\x42\x90\xe7\x81\x08\xa1\x04\x85\x06\x2e\x6f\x21\xb2\x34\x88\x66\x5a\x06\xb2\x7e\x2e\x17\x60\xf5\xfd\x24\xc0\x81\xf0\x22\x22\xff\xa0\x2a\xc5\xcb\x20\x1f\x3e\x9d\x5f\x10\x6e\x31\xcd\x8a\x4f\x60\x9e\xb2\x4a\x00\xcf\xb8\x73\x60\x2c\xb5\x61\x8b\x91\xe5\x95\x09\x8b\xac\x57\x81\xf2\xd9\xe3\x45\xe6\x44\xc9\xb4\x30\x85\x62\x44\x1b\x96\x7b\xb9\xae\x44\xab\x64\x4e\xc5\x8c\x05\xdf\x56\x65\x15\x16\x5e\x6c\x2a\x01\x2d\x03\x2d\x2e\x44\x0a\x0c\xe0\xcc\xe3\x63\x50\xf4\x52\x84\x0b\x35\x46\xf1\x49\x01\xe6\x7a\xe4\xc9\xb4\x30\xf2\x30\xac\x09\x39\xeb\x32\x58\x26\x4b\x0e\xee\xa0\xe0\x0f\xee\x2f\x7f\xf1\xc0\xb2\x70\xb3\xf0\xdb\x82\x18\x5a\x86\x2f\x0b\x73\x6e\xe1\x97\x76\xa1\xcd\x45\x65\x70\xe4\x26\xb2\xdb\x73\x33\x95\x2e\xa7\x60\x41\x3b\x0e\x7c\xde\x8f\xc9\xa9\xd6\x4c\x8f\x6a\x74\x32\xcb\x02\x48\x38\x78\x01\x52\x22\x55\x70\x23\x95\xcf\xc1\x5d\x14\x94\x92\x06\x2f\x11\x90\x59\xff\x2d\x40\x53\x62\x05\x05\x3b\xf1\x84\x99\x1b\xc6\x04\x41\x2b\xe4\xf7\x2f\x89\xc6\xcd\x54\x64\xd8\x57\xe5\xcf\x55\x88\x4e\xa5\x5a\x50\x63\x41\xc1\x85\xf9\xfe\xbb\x66\x70\x73\x61\xd8\x8c\xa9\x08\xde\xff\xad\x06\xf7\x03\xe5\x3d\x33\xaf\xc9\xbf\x6a\xf6\xca\x36\xe7\x53\xcb\x3d\x1f\x75\xbb\x4b\xdd\x88\x7f\x87\xaf\xfb\x85\x22\x95\xc3\xe7\x6e\x6d\xdb\x78\x90\x2b\xa4\xb3\xbf\x3b\xb9\x4a\x71\x4b\x56\x0b\xfc\xa7\x4a\x8d\xa7\x70\x58\xab\xd2\x01\x48\x37\x14\x28\x92\xc5\x14\xbc\x42\x30\xd6\x5e\x74\x77\x75\x4b\x51\xaa\x8f\xcb\x39\x58\xc7\xbb\xbc\xcc\xa7\x27\x6e\x60\x70\x14\x45\xde\x5b\x96\x12\x9d\xcc\xd9\x82\xa2\x0c\xcd\xad\xcc\x97\x2b\x66\x35\xd9\x68\x4b\xc1\x29\x8b\x1e\x52\xed\x15\x12\x67\x34\x27\x91\x67\x0d\x67\x0b\xa2\x61\x66\x49\xb6\x95\x20\x0d\x53\x56\x36\x03\x1c\x1f\x85\x9d\x3b\x40\x54\x7c\x73\x48\xad\xc7\xe4\x83\xa5\x57\x5c\x4c\xe5\xeb\x60\x52\x99\x71\x03\x87\xce\xe5\x91\xf3\x26\x9a\xe5\x51\x22\x05\xd2\x29\xa9\xf4\x51\xca\xae\x59\x76\xa4\xf9\xec\x90\xaa\x64\xce\x0d\x4b\x2c\xc9\x3c\xa2\x39\x3f\x84\xc5\x0a\x14\x0b\x17\xe9\x37\x41\x06\xda\x9c\x14\x5d\x71\x91\x76\x40\xfd\x1f\x1c\xd5\x7e\x2b\x94\xd8\x89\xdc\xe5\x0e\xc0\xf5\xc2\xc6\xd9\xbb\xf3\x8b\xd2\x79\x13\x39\xc0\xcb\xa1\xba\x04\xbb\x05\x19\x17\x53\xcf\xfc\x82\xfb\x32\x38\x2d\x51\x24\xb2\x97\x91\xe8\x62\xb2\xe0\x46\x97\xe2\x86\x91\x63\xf2\x26\x48\x45\x45\x6e\x05\xe2\x74\x4c\x4e\x04\x79\x43\x17\x2c\x7b\x43\x35\xdb\x3b\xd0\x2d\x74\xf5\xa1\x85\xdf\x16\x60\xf7\x86\xea\x1d\x1a\xa3\xd0\x48\xf2\x81\x19\xba\xd6\x12\x75\x6e\xa8\x48\xa9\x4a\x83\x9d\xc6\xad\xe4\x87\x7d\xc3\x2b\xd8\xe6\x9b\x21\xe2\x05\x97\x0e\x64\x0c\xf2\x09\x20\xa4\x0f\x28\xb9\x89\x85\x59\x90\x25\x80\x52\x47\x86\xfd\x7a\x5c\xcc\xbe\xa5\xcc\x7a\xc0\x4f\x4f\x11\xb3\xf2\xe8\xcb\x61\x69\x77\x3d\xcc\xad\x64\x72\xb8\x60\x6a\xc6\x0e\xaf\xd8\xd2\xbe\x52\x63\x5d\xcd\x6f\xc0\xa2\xd8\x0c\x5e\x80\xb7\xd7\xb1\xc8\x1a\x93\x0a\xbf\x57\xe6\x05\x87\xeb\xa1\x23\xba\x87\x8e\x80\x94\x1c\xb5\x72\x7a\x30\x16\xb6\xd7\x08\x28\xc4\xad\xea\x1e\xdc\x84\x6b\x39\x57\xf5\x8d\xeb\xc0\x3c\x0e\xae\x5f\xad\x6e\xef\xdf\x3b\xe5\xb5\xef\xb9\x36\x5b\xf2\xdb\xf7\x2e\x84\xa1\xc4\xdb\x75\xa3\x07\xc6\xf9\xa0\x19\x67\x13\xc5\xa8\x83\xfd\xfd\x46\xc7\xdc\x3a\xed\x2e\x09\x51\xf5\x1a\xdd\x46\xf1\x1d\x24\x87\xa7\x22\x39\x58\x34\xed\x2f\x37\x00\xed\x0a\xcc\xfc\x2e\x61\xb5\xb1\x6e\x87\x97\xa9\x4b\x15\x7b\xb0\x5c\x0e\x58\xcd\x7e\x39\x5d\x83\x31\xac\x9d\xb7\xad\x0e\xc6\xcb\x6d\x8a\x3c\x03\x8f\x5c\xf4\xc0\x12\xf7\x33\x4f\x5d\xc7\xe4\x04\x18\x9f\x25\xf0\x8b\x05\x13\xa9\x77\xa3\x5d\x31\xa2\x0b\xf4\xb6\x18\x30\x60\x83\xbd\x02\xa6\x63\x5f\x72\x2a\x74\xb0\x65\x83\xc1\xba\x1f\x4b\xc4\xf8\xab\x6e\x8e\x88\xe3\x7c\x94\x4f\x08\x25\xd3\xb5\x78\xea\x09\xcb\xa4\xa5\x53\x72\x4c\x9e\x7d\xfb\x0c\x76\x9c\x65\x6e\x28\x04\x98\xb8\x5f\x1d\xa1\x42\xfb\x4a\xc6\xc4\xcc\xcc\xbd\x33\x47\x67\x3c\x29\xad\x21\xc1\x52\xd5\x10\x3a\xb4\xff\xe0\xda\x28\x14\xad\xb7\xd0\x50\x01\x52\x25\x40\xbb\x0b\x4c\x7e\xf0\x23\x04\x94\x6c\xba\x12\x4d\x70\xaa\x5e\x07\xb0\x7c\x94\xbf\x54\x0d\x9b\x2b\x2e\x88\x43\xf2\xe6\xec\xdd\xf1\xc5\xbb\x11\xf9\x74\xfa\x16\xfe\x2b\x15\xf9\x16\xcc\x79\x16\x7c\x91\xbe\xf2\xf8\x00\x58\x0a\x57\x1d\x6e\x9f\x80\x43\x15\xd9\x38\x76\xec\x58\xda\x51\x64\x2c\xce\x64\xa8\x05\x63\xbd\x26\xcf\x72\x99\xea\x67\x64\xc1\xa8\xd0\xc4\xfe\x7b\x8c\x3f\x1d\x65\x72\xe6\x7f\x06\x80\xc9\x19\x89\xfc\x46\x90\x8f\x80\xa3\xbf\xf5\xc3\x2c\xe8\xc3\xe7\x31\xf2\xd6\x0a\x0c\xb1\xb7\xc9\x4f\x5e\x79\xa7\xe2\x8e\x8a\xe6\x3d\xd2\x09\xcd\x58\x65\xa4\xfd\xa1\x3e\xe1\xb7\x47\xcd\x2b\xf0\x5a\x2d\x57\xd5\x37\x5c\xa8\xd4\x0d\xcf\xd2\xc4\x72\xe6\x3a\x6a\x44\xc9\x09\x00\x3d\xb0\xe3\x32\x01\x14\xb7\x9c\x3c\x95\xb0\x39\x79\xcd\x54\x46\x73\xb4\x78\x33\x9a\xcc\xd1\x83\xec\x9c\x80\x39\x13\xa9\x95\xd6\x9c\xe9\x97\x89\x24\x93\x1a\x7e\x70\xfe\xd2\xca\xd6\x17\x7c\x36\x37\xde\xab\xee\xc2\xcd\xef\x11\x11\x21\xc6\xaf\x03\x09\x61\x4c\xcd\xb8\x8e\xbf\x05\x9d\x08\x9c\x81\xe0\xe4\xaa\x86\x1c\xbc\x41\xbf\xdd\xe5\xc1\x88\x5c\x96\x11\x95\xa9\xfd\x1b\xa3\x10\xbe\xbd\x3c\x88\x87\x05\x5c\xa4\x2e\xc0\xdc\x39\xfe\x0e\x6b\xb1\x88\x1a\x0f\x0c\x5d\x12\xd1\x12\xc2\x27\x80\x1c\x7b\x3f\xbb\x5d\x4b\x75\xa2\x71\x6d\x39\x2b\xdf\x0d\x01\x6b\xdd\xdf\xc4\x4d\x44\x13\x80\x1b\xc6\x39\xc7\x1d\xa0\x14\xb3\x67\x95\x38\x72\x75\x5e\x41\x08\x37\x5f\x05\xa6\x16\x9f\x73\xaa\xac\x98\xee\x47\x96\x0e\x01\xae\xf1\x9b\x7d\xbd\x2b\x5d\xa6\x8c\x8d\x25\x23\xab\x6d\xf0\x84\x9d\xb1\x29\x53\x4c\x24\x6c\x8d\x5c\x54\x1f\x4a\xe6\x32\x4b\x31\x92\xdd\xff\x62\x24\x71\xa3\xc6\x19\x9b\xd1\x64\x59\x17\x0a\x5b\x05\x9a\x1e\xf1\xd4\x9f\xed\x98\xcf\x4d\xe1\xca\xda\x7d\xb3\xcc\x4a\xd9\x3e\x50\xb9\xcf\x22\x60\x60\x65\x25\x88\xa8\xbb\x5b\x4e\x4e\xcd\xbc\x6b\x25\x76\xcc\x67\x9f\x7a\x96\xbb\x48\x8a\x4f\x67\xef\x89\x7d\xe0\x7c\xea\xde\xe7\x05\x71\x6e\x1c\x63\x48\xa3\x70\x7b\x40\x7d\xbf\xdc\x2d\x56\x29\x95\xe9\x58\xe5\xc9\xb4\x4c\x20\x41\x72\x6d\x5f\xf2\x04\xd6\x7d\x1a\xef\xda\x5c\x6a\x50\x95\x83\x6f\x2f\xf2\x9a\xfd\xfe\xf7\xdf\x83\xb4\x30\xa1\xc9\xd5\x8d\x65\x02\x89\x5c\xe4\xd4\xf0\x09\xcf\xb8\x59\x8e\xc9\x67\x3b\xeb\xe7\x28\xea\xca\xc5\x7e\xe0\xd7\x5c\xcc\xc9\xf3\x57\x87\x7f\xfc\xc3\x1f\xbe\xff\xc3\x08\x13\x19\x34\xbf\x66\x2f\xee\xdc\x09\x87\x48\x56\xcf\x24\xe8\x52\xde\x36\xbe\xd7\x2b\x51\x0a\x6b\x2e\xf6\xca\xd8\x21\x1b\x73\xc8\xc6\x1c\xb2\x31\xcb\xd7\x87\x6c\xcc\x21\x1b\x73\xc8\xc6\x7c\x78\x49\x80\x43\x36\xe6\x03\x39\x88\x21\x1b\x73\xc8\xc6\x1c\xb2\x31\x87\x6c\xcc\x21\x1b\x73\xc8\xc6\x7c\x30\xd9\x98\x43\x32\xe6\x90\x8c\x39\x24\x63\x3e\xfc\x64\xcc\x21\x65\x6a\x48\x99\x1a\x52\xa6\x86\x94\xa9\x21\x65\x6a\x48\x99\x1a\x52\xa6\x76\xe0\xea\xe9\x9b\x34\xd5\x41\x96\x77\x9c\x36\xe5\x24\x96\xc0\x99\xec\x4d\x06\xad\x7a\xc8\x9d\x7a\xd8\x21\xe0\x43\x04\xf4\x53\x89\x80\x1e\x72\xa7\x1e\x52\xee\xd4\xaa\x8b\xbe\xa7\xb4\x39\x64\x4f\x85\xb8\xf2\x0e\xde\xb7\xdf\xa8\xf2\xf5\x1f\xef\xc8\xa0\xea\x7e\xb9\x8a\xbf\xeb\xc7\x0f\x2c\xf4\x41\xb3\xd0\x4d\xb2\xa8\xfa\x1e\x74\xeb\xc4\xbb\x25\x4a\x43\x26\xd5\x20\x47\x0c\x99\x54\x8f\x85\xe3\xdd\x41\x2e\x55\x53\x48\x53\x3b\x9b\x6b\x18\x6d\x99\x80\xa1\xdc\x45\xdb\x59\x4c\xb0\x5a\xbc\x65\x1d\x3e\x59\x8a\x92\x8b\xf7\xe7\x76\x98\x60\x89\x0b\x73\x73\x46\x1b\x27\xc5\x75\x73\xbb\x84\xfe\xb5\x10\x69\xd6\x19\xce\xeb\xc7\x61\x20\x2d\x39\x7d\xf7\x81\x30\x91\xc8\x94\xa5\xe4\xcd\x31\x99\xc0\xb3\x5a\x2c\xad\x0f\x06\x0a\x25\xca\xa2\x85\x3d\xd3\x3e\x52\x30\xb1\xab\x82\xba\x6b\x0c\x3c\xc2\x85\x88\xe2\x60\xd1\x20\x46\x8c\x2a\xb4\x21\x4a\x4a\xa3\xbd\xe9\xc4\xde\x33\x9c\x80\x2a\xfc\x54\xab\xcd\x63\xb2\x34\x6c\x73\x72\xe0\x42\x6e\x77\x17\xe2\xb6\x12\x41\xbe\x8e\x28\x7c\x76\x9f\x77\xe0\xae\x44\x8e\xc7\x01\xc1\xab\x56\xab\x77\xe8\xe9\x29\x27\x90\x8a\x7c\x2e\x54\xf6\x39\xd8\x92\x02\x7c\x7d\xc6\x48\xcd\x17\xa2\x0a\x21\x20\xbe\x98\x9b\xb9\x77\xeb\xa0\x61\x1d\x2c\x5f\x02\x7c\xae\x4e\x4e\x29\x34\x2b\x3f\xd5\xa2\x8e\x14\x2a\xeb\xc2\x2e\x58\xdf\x8c\x5f\x33\x9f\x93\x93\x04\x19\xa9\xe2\xe4\xe2\x82\x68\x4f\x2e\x3f\x9d\xbd\xb7\xdb\x5f\x90\xe7\x9f\x41\x34\x62\xaf\x8f\x8e\xe6\x52\x9b\xd7\xb9\x54\xe6\x08\x82\xbe\x5f\x8c\x31\x76\x0c\x0b\x02\xda\xd9\xf0\x4b\x32\x86\x4f\x33\x58\x2e\xe6\x8c\x7c\xb6\xd3\x85\x60\x69\xcb\xd9\xe0\x1c\x20\x70\x27\x9c\x80\x87\x56\x15\x52\x3f\xb8\x82\x7f\x11\x74\xc8\x94\xb3\x2c\x0d\xd5\xf4\xc0\xd8\x67\x3f\xe0\xd2\x63\x26\x18\x26\x9c\x5d\x3b\x8b\x33\xfb\xe2\x04\xbb\xb7\x1f\xcf\x61\xdf\x72\x11\x61\xbd\x26\xcf\x31\xca\xe6\xb3\xa5\xac\x87\xe1\xf7\xcf\xde\xd5\xe1\xe6\x22\x5c\x1c\x7a\xaf\x88\x9d\x88\xea\x9a\x2f\x91\x92\x8c\x2e\x19\xca\x10\x5c\x66\x00\xf6\x17\x63\xbf\xf5\x60\xee\x9e\x40\x81\xc1\x93\x53\x42\xd3\x54\x31\x8d\xee\xe0\xd3\x8c\x51\x0d\xe5\x10\x99\x2f\x72\x68\xe7\xf9\x6c\x8f\x2f\xc3\x09\x2c\xa4\x5f\x7d\xf7\xa7\xf1\xcb\xf1\xcb\xf1\xab\xcf\xf6\xf3\xd4\xcf\x6d\x31\x8d\xeb\xab\x25\x29\x44\xc6\xb4\x06\xac\x32\x96\xaa\xcd\x14\x03\x3f\xa1\x62\xa5\xef\x35\x32\xee\x4b\x01\xe9\x50\x76\x12\xed\x28\x8e\x1d\x43\x45\x44\x13\x9c\x6b\x0d\xf3\x8e\x58\x94\x5e\x1a\x45\xdc\xc6\x97\xe6\xbc\x80\x70\x45\x6d\xe0\xb1\xfd\x72\xc6\xaf\x58\xb6\x74\xc6\x71\x21\xc5\xa1\xc5\x2a\x3a\x81\xa0\xb5\x31\x1b\x8f\x00\x1d\x18\xd5\x30\xc4\x14\x4a\x90\x22\x47\xbf\x93\x60\x37\x1e\x0b\x02\x26\x21\x82\x06\x54\xbb\x3c\x00\x8e\x7e\x79\xf0\x03\xa0\x88\xc5\x64\xf7\x68\xc6\x85\x0f\x3a\xf1\x4c\xdf\x85\x41\x1e\x63\xba\x42\xa8\x20\x49\x33\xe7\xf3\x9d\xfa\x2c\x2f\xef\x26\xa0\x62\xe9\xc5\xc2\x9c\x29\xa0\x46\x93\xcc\x15\x2e\xfd\x74\xf6\x7e\x4c\xfe\xa7\x2c\x60\xac\x47\x51\x98\xd8\x48\x30\x6f\x03\x1c\xd5\x84\x1b\x45\x55\x98\xa6\xee\x6b\x9e\xc6\x71\x36\xb4\x74\xbb\xa5\x56\xbe\x98\x72\xb7\xf1\x63\x63\xd8\x22\x37\x6e\x02\x2c\x34\x59\x68\xa6\x08\xe4\x27\x68\x9e\x10\x5a\x98\x39\x44\x8b\x91\xcb\x03\xfb\xe4\xb5\x5d\xc1\x8d\x54\xe9\xff\x89\xe1\x60\x10\x8d\xe3\xf3\xc5\x7e\x54\x74\x86\x61\x82\xcf\x2f\x0f\xbe\x19\x8f\xc7\x97\x07\x2f\x00\x02\xbf\x16\x4c\x2d\x49\x4e\x15\x5d\x30\x03\x57\xe3\xf2\xe0\xff\xf0\xcf\x5d\xb9\x4e\x37\xcb\xc8\x39\xc2\xef\x2b\x8d\x08\x9c\x48\x43\xf7\xa7\x21\xdf\xe0\xf1\xe6\x1b\xc4\x0e\xa7\xcf\xff\x7a\xe6\x70\xfa\xd9\xbf\x3f\x3f\x8d\x4c\x04\xbc\xa1\x43\x3a\xc2\x76\xe9\x08\xf8\x6c\x48\x48\x18\x12\x12\x86\x84\x84\xaf\x25\x21\x01\xef\xca\x90\x8b\x30\xe4\x22\x0c\xb9\x08\x43\x2e\x82\x7f\x3a\xe4\x22\x0c\xb9\x08\x43\x67\xa8\x21\x19\x61\x48\x46\x78\x9a\xc9\x08\x43\x67\xa8\xa1\x33\xd4\xd0\x19\x6a\xe8\x0c\x35\x74\x86\x1a\xd2\x9c\x9e\x66\x9a\x13\x5a\x82\x9f\x4e\xae\x93\x4b\xba\x19\xb9\xa4\xa7\x73\xb9\xa8\xa7\x3e\x0d\x99\x4b\x1b\x67\x2e\x55\xac\xdf\xee\xe1\x90\xce\xb4\x9b\x74\xa6\xef\x1f\x60\x3a\x53\x57\xc8\xdb\x4e\x1c\xc2\x8f\xa7\x99\x93\xd5\x92\x14\x4b\xa8\x33\xbc\x5f\xbf\x1a\xbf\xfa\xe3\x88\xe4\x19\x15\xc2\xb2\x1e\x98\x62\x21\xaf\x41\x3e\x81\xa7\xff\x1d\x95\xa1\x75\xe1\x7c\x47\xd7\xaf\xd6\x93\x7f\x2f\x75\x0c\xa1\xdc\x0f\x39\x94\x7b\x88\x62\x7e\x2a\x51\xcc\x43\x36\xd4\x03\xca\x86\x6a\x8e\x20\xea\x29\x92\x0e\x09\x51\xb7\x6d\x27\x05\xe0\xdf\x41\x74\x78\x37\xdf\x1f\x1a\x4b\x0d\x7c\x74\xd3\x94\xa8\x7b\x6c\x2c\xd5\x43\x90\xbd\x8d\xde\x3c\x48\x13\x4f\x45\x9a\x18\x72\xa2\xf0\xf7\x87\xc6\xf4\x3a\x32\xa2\x76\xcb\xf8\x86\x3e\x53\x43\x9f\xa9\x35\x20\x1a\xfa\x4c\x0d\x7d\xa6\xb6\x06\xe0\xd0\x67\x6a\xe8\x33\x35\xf4\x99\x1a\xfa\x4c\x3d\xca\x3e\x53\x28\x1e\x0d\xcd\xa6\xca\xef\x0f\xcd\xa6\x36\x5d\xe5\xd0\x6c\xaa\xe5\x6e\xde\x77\xb3\x29\xbc\xdc\x43\xc7\xa9\x21\x03\x74\xc8\x00\x1d\x32\x40\x87\x0c\xd0\x21\x03\x74\xc8\x00\x1d\x32\x40\x87\x0c\xd0\x35\x77\x7d\xc8\x00\x1d\x32\x40\x87\x0c\xd0\x21\x03\x14\xfe\x37\x64\x80\x7e\x05\x19\xa0\x43\x02\xe8\x90\x00\x3a\x24\x80\x3e\xfc\x04\xd0\x21\x4d\x6b\x48\xd3\x1a\xd2\xb4\x86\x34\xad\x21\x4d\xab\x05\x33\x86\x34\xad\xa7\x96\xa6\xf5\xf8\x1b\x48\xed\x2b\x5f\xab\x63\x83\x43\xc6\xd6\x63\x88\x34\x1f\x62\xac\x9f\x4a\x8c\xf5\x90\xb1\xf5\xe0\x32\xb6\x86\x26\x56\xee\xc5\xfb\x68\x62\xb5\xdb\xe0\xf5\xa1\x9d\xd5\xc0\x51\x9f\x58\x3b\xab\x5e\xf2\xed\x6d\x14\xea\x41\xb6\x78\x2a\xb2\xc5\x90\xbf\x85\xbf\x3f\x3c\x06\x78\xa7\x19\x5c\x43\x77\xab\xa1\xbb\x55\x77\xdc\xfa\x3a\x1a\x31\xb4\xb8\x32\x43\x8b\xab\xa1\xc5\xd5\xd0\xe2\x6a\x68\x71\xf5\x28\x5b\x5c\xe5\xb9\xb6\xf2\xe0\x1b\x2b\xaa\xc9\x2c\x63\xea\x8c\x5d\x73\xbd\xde\x10\xbe\x3a\xb8\xf4\x56\xc1\xb9\xf0\xc5\xa2\x40\x9f\x98\x16\x34\xd7\x73\x09\xba\x11\x3a\x4f\x51\x84\x44\x19\x02\x31\x58\x31\x9d\x4b\x81\x67\x6f\x0f\x4c\x33\xc5\x69\xc6\x7f\x83\x6a\xa5\x22\x25\x29\x8b\x7f\x29\x1d\xf0\x8e\x42\x38\x09\xc4\xe5\x84\x05\xd5\x13\xbe\x36\x26\x3f\xa3\x8b\xac\x61\xc9\x73\xaa\xc9\x84\x31\x41\x74\x91\x24\x4c\x6b\x0c\x39\xc4\x40\x84\x14\xc2\xc2\x12\x2a\x48\x5d\x6b\xb8\xa8\x84\xe2\x47\xce\x99\x28\x69\xc0\x2a\xd1\x90\x82\xe9\x15\x10\x30\xf2\x23\x92\xc1\x05\x2f\x8c\x17\x35\xde\x52\x43\x91\xde\x8e\x1b\xd6\x08\x8a\xcf\x88\xcc\xbd\xab\x7b\xc2\x5c\x10\x84\x2b\xa7\x0b\x33\x8f\x48\x5a\x00\x01\xb2\x4a\x8f\x45\xde\xc9\xb2\x0c\xfe\x78\x4b\xd9\x42\x8a\x73\x86\x3e\x85\x73\xfb\xdd\x69\x91\xd9\xbf\x93\xf0\x35\xf4\x13\xe3\x0e\x61\x98\x72\x91\x12\xa3\x8a\x5e\xc6\x2d\xb8\xec\xd9\x95\x9e\xf7\x70\x93\xa3\x54\x03\x08\x9e\x84\x59\xaa\x96\x05\x74\x35\x6a\xac\xc8\x6b\x30\x8b\x14\xc8\xb2\x46\xf2\x90\x38\x8c\x88\x98\x58\x0a\x99\xa3\x10\x13\x83\x7e\x59\x9f\x92\x84\x05\x01\x72\xc5\x17\x54\xf1\x6c\x09\xeb\x0f\x07\xef\x40\x10\xed\x6f\xb0\xaf\x3c\x68\xfb\xca\xed\x55\x5b\x55\x08\xc3\x17\x6c\x7c\x46\x6f\xde\xf9\x08\xe9\xb5\x52\x2b\x5c\x3b\xee\x83\x95\x90\xb8\xb0\x15\x94\xf5\x39\x87\x40\x49\x06\x8b\xc8\xd3\xb6\x88\x6c\xe7\x6d\x79\xa6\xef\xce\x2e\x12\x36\xdd\x08\x12\xb5\xca\xb7\x9b\xd6\x5f\x72\xec\x50\xb7\x1f\x33\x0d\xdd\xcf\x31\xce\x97\x88\x87\xc1\x24\x6f\xc1\xd9\xd3\x1e\x1d\xf0\xc7\xdf\xef\x38\x3a\x20\xec\xe9\x2e\xed\x39\x79\xae\x9b\xed\x36\x0d\x32\x52\xbb\x9d\x66\x13\x13\x4d\xab\x0c\xd6\xe1\x85\x68\x7e\xc1\x2b\xe2\x8e\x90\x38\xf1\x08\x84\xa9\xe0\x8f\x68\x10\x87\x56\xe2\xbc\x06\x5e\xf9\x00\x79\x65\x1f\x5f\xc4\x89\x1d\xe3\xb9\x5b\xfb\x89\xeb\x1d\x39\x23\xda\x35\x88\xc1\xd5\x30\x30\xd6\x9e\xae\x86\xbb\x67\x9d\x0f\xd6\x9f\xb0\x01\xff\xe9\xf0\x15\x6c\xc1\x83\x82\xbe\xb8\x86\xed\x94\x3a\x65\x79\x7f\x5a\x62\xde\x48\x0a\x63\x89\x66\x66\x60\x2c\x0f\x9a\xb1\x0c\xf4\xf6\xa9\xd0\xdb\xc7\xae\xc8\xe8\x9c\x25\x9b\x7b\xb4\xea\xf4\xeb\xdc\xce\xb2\x6e\xff\x17\x73\x46\x52\xa6\x2d\xc5\x27\x13\x36\xa7\xd7\x5c\xaa\x40\x30\x22\xb2\xb5\x6f\x60\xd8\xed\x1e\x52\x91\x1e\x5a\x95\xab\xd0\x2d\x30\xc1\x67\xb7\x87\x0a\xce\xd3\x05\x97\xa4\x50\x50\x59\x0b\x3f\xdb\x08\x95\x0b\xfc\xc1\x50\x6f\x02\x94\x05\xc8\x99\x60\x44\x9c\x2c\xd1\x0b\x74\xc3\x45\x2a\x6f\xe0\x7d\xbe\x60\x63\x72\x2a\xf3\x22\xa3\x4e\x9b\x04\x35\x13\x7c\xa7\x63\x72\xc6\x68\x7a\x28\x45\xb6\xbc\x47\x70\x77\x99\xd0\xef\x84\xc7\x97\xfc\x77\x3f\x6c\xfd\x8d\x14\xd8\x6c\xac\x0f\x7f\x0f\x83\x6b\xb1\xed\x68\x1c\x00\xfe\x1e\xd9\x97\x0d\xa1\xe0\x28\xa7\x5c\x10\xa0\xdc\x3d\x38\x7e\x46\xb5\xb9\x50\x54\x68\xf8\xcc\x05\x5f\xad\x24\x70\x0b\x42\x08\xd3\xad\x43\xf5\xf7\x54\x1b\xec\xc6\xe7\xa4\x17\xb7\x5b\x13\x56\xe4\x53\xba\xa4\x60\xfe\x32\x18\xe9\x53\xca\x5b\x4c\x82\x0b\xa6\x35\x9d\x75\x05\x2b\x1c\x93\x79\xb1\xa0\x82\x28\x46\x53\xf0\x94\xb8\xd7\xbc\x5d\xc6\x32\xd3\x94\x19\xca\x33\x9f\x17\x07\xc9\x24\x61\x65\xdb\xf4\x64\x63\x54\x77\x8a\x56\x17\x60\x0c\xb2\x03\x9d\xcb\x3e\x02\xcc\x33\x4d\x32\x00\xd9\x6d\x56\xd1\x4c\xca\x56\x99\x53\x20\x3c\xd1\x02\x46\xde\x3b\x7e\xa1\xac\xc4\xf5\x23\xcd\x34\x1b\xdd\x26\x13\x68\xd9\x59\xda\xf1\x62\x89\x15\x07\x4b\x44\x0f\xab\xd9\xda\x37\xd7\xac\x69\xc0\xfb\xab\x80\xea\x52\x3d\x7a\x5f\xfd\x0e\x63\x52\x65\x1c\x8a\x79\x89\x55\x36\x12\x2f\x32\x97\xd4\x7f\x30\x12\x3d\x6c\x59\xbe\x8f\x91\xe8\x38\x58\x86\x1a\xcf\xb5\x75\x9e\xad\xc4\x8e\xc1\x12\x34\x68\x26\x0f\x3c\xe8\xf4\x49\x58\x88\xaa\xb4\x7e\x3f\x12\xe4\x79\x55\x3d\x6b\x65\x23\x76\x5c\x70\xb1\x62\xc4\x5a\xb2\xad\x61\x68\xc1\x85\xd5\x10\x96\x3d\x53\x76\xe7\x0c\x5b\xed\x16\x8b\xa8\xcb\xae\xcb\x6e\x05\xa9\x06\xa3\xae\x20\x02\xaa\x0c\xf9\x88\x58\x7c\x2e\xd3\xa8\x16\x95\x15\xd1\x96\x21\x11\x13\x6a\xcf\x4c\x21\x22\xc1\xb9\x56\x98\x22\x89\xa2\x7a\xce\xc5\x0c\x23\x8e\xb8\x71\xe1\x58\x51\x15\x09\x7a\x4d\x79\x66\x05\xbd\x6a\x16\xf3\x4b\xf2\xdc\x7e\x2c\x74\x8e\x6e\x78\x81\x50\x4d\xb4\x94\xc2\xfe\x97\xbb\x4e\x08\x34\x5d\xee\xa8\xbc\x6a\x83\x07\xf1\x27\xae\x8d\x54\xcb\xf7\x7c\xc1\xbb\x4a\xd0\x5e\x54\x1a\x19\xcb\x2c\x25\x73\x7c\x19\x02\xe2\x18\xc6\xe5\x48\x0c\x6a\x0a\x61\x25\x4e\x79\x04\x7a\x0d\x84\x14\x23\x15\x53\x0e\x35\x6a\x0b\xae\xe7\x21\x65\x99\x7d\xc9\x33\x9e\x70\x43\x7e\x63\x4a\x62\xfd\x12\x69\xa2\x00\xc8\x0a\x2c\x5f\xbd\xdc\x39\x48\xf4\x7d\xd6\x90\x39\x76\xf5\x72\x30\x6c\x4c\x5e\x33\x05\x35\xe1\x5d\x38\x91\x62\x64\x41\x05\x9d\x95\xca\x74\xc5\x68\x51\x68\x13\x8a\x25\x96\xf5\x31\x10\xc5\xd0\x8a\x9c\x42\x1c\xcd\xa2\x1c\x88\x15\x84\x53\x62\xd8\x22\xb7\x72\x11\x88\xfb\x58\x7a\xa4\x81\xf8\xde\xb6\x42\xd0\xd1\x37\xf0\xdf\xc3\x50\x0d\xa8\x45\x44\x77\x8b\xd9\xd8\xf6\x91\x48\xc5\x2c\xbc\x4f\x65\x7a\xe1\xe6\xe8\xb4\x09\x1d\x57\xcb\xca\x54\xb5\x5e\x00\x0d\x84\xa4\xfa\xcb\x8a\x74\x03\x63\xc2\x4a\xe2\x01\x8f\xf1\x59\xdc\xae\x9c\x24\x32\x5f\x06\x29\xd6\x4e\x06\xcd\xde\xed\xd1\x0a\x99\xba\xb8\xd4\xb8\x88\x4e\x74\x0c\x30\x20\x94\x9b\x79\x0e\x25\x67\xe2\x77\xf9\x94\x08\x59\x1b\xc5\xa3\xba\xb7\x2f\x36\x3e\x41\x7b\x70\x99\xa4\xa9\x3e\x8a\xe2\xa8\x8e\x14\xb3\xd7\x11\xa8\x78\xf9\xf3\x37\xb9\x4c\x0f\xc3\x31\x35\x1e\x22\x8a\x3f\xe7\x65\xc6\xe2\x2d\xcd\x58\x9f\xaa\xf3\x75\x1c\xa9\x8b\x6c\xf3\x09\x93\x48\x9a\xf2\x8c\x26\xf6\x7c\x90\xe8\x54\x69\xbf\xab\x6a\x21\xd8\x0d\x36\x61\xd8\x5c\x26\xd0\xab\xf7\xfb\xa0\x0e\xa2\xdb\x6b\x74\xe7\x75\x55\xba\x9d\x19\xa3\x3e\x5d\xf7\xd7\xac\x98\xf9\x36\xe4\xcb\x56\x41\x04\x96\xf1\x46\x16\xa2\x8b\x57\xc0\x18\xfb\x91\x39\xd5\x73\x12\x5e\xd5\xc1\xce\x10\x56\x5b\xbf\x51\x25\xae\x91\x42\xfb\x96\x1e\x18\xa4\x4e\xbd\x9e\x8a\x41\x0c\xf4\x5a\xf2\x94\x8a\x84\x91\x05\x4b\xe6\x54\x70\xbd\x20\x37\x73\x26\xb0\xc8\x1f\x4b\x81\x4f\xb8\xbb\x19\x2a\x3d\xfa\xef\x0b\x76\x63\x75\xc1\x55\x37\xdb\xce\xd9\x4a\x30\x21\x74\x77\x37\xa9\x1c\x98\xd3\x56\x4b\xd1\x40\x4e\x34\x53\xd7\xbe\x10\x53\xc5\x20\xf7\x4c\x57\xce\xb7\x5e\xcc\x77\x67\xba\x5d\x69\x51\xec\xa9\xe4\x75\x25\x36\x57\x52\xa1\x6b\x46\x91\xcd\x53\xa1\x63\xa8\x23\x38\x3e\x82\xbc\x72\x9e\xcc\x59\x5a\x64\xac\x4b\xb5\xac\x4a\x38\x96\xc4\x46\x0c\xd8\xa7\x54\x50\x43\x32\x46\xb5\x21\xaf\xfc\xfd\xb1\xf4\x1d\x2a\x7e\x28\x86\x75\xc6\x5d\x9e\x91\xaf\xfa\x56\x0e\xdb\x11\x69\xc6\x09\x35\x33\x47\xbb\x46\x56\xe7\x24\xd9\x1c\x6c\x46\x1a\x9a\x35\x03\x2f\x12\xae\x1d\x08\xab\x40\x21\xcf\xb1\xb6\xae\x7d\x82\xaf\x25\x52\x29\x06\xbc\xb4\xf9\x8d\x5d\xb1\xb8\xfd\xc1\x11\x01\x71\xec\xef\xee\xb6\x78\xd7\x09\x3a\x8b\x76\x50\x09\x0f\x6c\xa5\xae\x0a\xa3\xb3\xa4\x46\xc3\x02\xee\x8a\x58\xd7\x78\x8e\xca\x0e\xb4\x90\xf2\x48\x6d\xc5\x88\x71\x4d\x05\x7b\xb1\x1f\xe8\x7c\xe0\x5a\xef\xf2\x62\x56\xf7\x8c\xd5\xb4\x7d\xa6\xc5\x23\xbf\x96\xb8\x77\x38\x93\x87\x84\x4a\x80\x3f\x3b\x67\x98\xb8\xfc\x4f\x82\xde\xdd\xed\x89\x3b\x49\x3c\xdc\x6b\x83\x02\x00\x4b\xff\xc6\x04\x5b\x29\x60\xd5\x06\x99\x85\xd4\x60\x13\xb7\xb2\xc1\x2c\xbc\x48\xfc\x5c\xab\xfa\x64\x24\x81\xed\x26\xfe\x77\x45\x37\xd8\x2d\x7b\x89\x49\x80\x9b\x3f\x3a\xc3\xbb\xac\x6f\xd6\x22\x73\xac\x27\x7c\xdd\xcc\xb7\x85\x0e\xec\x4c\xb3\xf8\xd4\xa6\xb0\xb5\x6a\x18\xd5\x37\x82\x31\xbe\x48\x4c\xc8\xb1\x76\x48\x04\xb8\x55\xd7\xc9\xe0\xe6\x44\x1a\x40\xb7\xee\x61\xd1\x91\x8b\x19\x7e\x77\x6b\x95\xf2\x2c\x9e\xa5\xc5\xf9\x5e\x97\xc9\xf1\x15\xbf\x05\x0c\x7a\xc3\xac\x3e\x3d\x26\xa7\x2e\xc5\x31\xd4\x84\x5d\xe6\x8c\xfc\x85\x5c\x1e\x54\xbe\x74\x79\xd0\xe2\x3c\xde\xc0\x23\x19\x5d\x4f\x5c\x0a\x38\x1c\x30\x6b\xb3\xf6\x31\xac\x70\xfd\xb3\x78\x0b\xc9\x63\x97\x07\x95\x4e\x69\x95\xb1\x77\x95\x6f\x58\x96\xe5\x5d\x87\x5c\x61\x10\x61\xc2\xd2\x59\x4d\x52\x96\x64\xd4\xd2\xab\x6b\x8f\x43\xa8\x3f\x9e\x5a\xad\x1d\xdb\xc6\x82\x89\xe2\x7c\xf0\x52\x3e\x74\x2f\xe5\xe0\xd7\x7b\x2a\x7e\xbd\x5b\x16\xaa\x6b\x21\x85\xb7\x8b\x03\x0c\xa4\xa3\xd3\xe8\x7b\x5e\x77\x4e\x99\xd6\xc8\x40\x16\x95\x13\x6f\x5b\xf5\x2d\x23\xf5\xca\x75\x77\x87\xea\x7d\x28\xe5\xb8\x6c\x59\x8a\x6f\xba\x12\x3c\xd3\xbc\xe2\x2e\xfa\x7d\x37\xee\xca\x92\x09\xec\xd6\x57\x19\xe6\xed\x15\xee\xb6\x3a\xba\x3d\xde\xad\x6c\xd7\x33\x04\xbc\xc5\x7b\x42\xe9\xe1\xae\xf7\x73\x01\xbc\xb1\xdc\x13\xf6\x2a\x70\x9b\xba\xa1\x3a\xd0\xe7\x21\x52\xef\xeb\x89\xd4\x8b\xae\xe8\x63\x0b\xd5\x0b\x2b\xef\x8a\xd5\xab\x0c\xac\x96\x9a\x2c\x9f\x0d\x02\xf0\xc3\x16\x80\xb7\xce\xe5\x6c\x3c\xe2\xd6\x29\xb7\x13\x3f\x86\x90\xbd\x41\xb4\xbf\x65\xc8\xde\xe3\x0e\xa5\xab\xd2\xe2\x3d\xc9\xa7\x5d\xc1\x74\x95\x81\xad\xd1\x74\x7d\x15\x96\x1d\xc7\xd9\x7d\xd8\x22\xc6\xee\x51\x44\xd6\xed\xda\x48\x9f\xd3\x42\x77\x9a\xb4\x4f\xa2\x7a\x1c\xd4\xb8\x33\x0d\x92\x0c\xd7\x04\x67\x69\x91\x64\x26\x52\x66\x8c\x8a\x96\xef\x2b\x39\x53\x4c\xeb\xb7\x8c\xa6\x19\x17\x6c\x83\x30\x4a\xfa\x05\x8e\x18\xe4\x6b\x2e\x2a\x07\x5c\x51\x86\x7c\xd9\x3a\xff\x29\x32\xc1\xd6\x31\x08\xd6\x6a\x37\xad\x09\x36\x2f\xf1\x91\x53\x55\x79\xcd\x07\x7a\x60\x14\x95\xb4\x8c\x00\xab\x5b\xe5\x4a\x26\x76\x62\x7c\xb5\xd2\xdd\x15\x7c\x31\xb1\xe4\xcf\x8d\xc5\xbc\xd3\xda\xb6\xdf\x7d\x49\x18\x4b\xa1\xcc\x0f\x48\xcd\xa1\x81\x7f\xa1\xa6\x34\xf1\xdd\xc1\x2b\x0b\x42\xc1\x2e\x2a\xb6\x55\x6e\x10\xde\x76\xbc\x82\x69\xc3\x17\xe8\x65\x28\x94\xe7\x5c\x00\x33\xda\x7c\x88\x15\x4c\xfd\xe3\xcb\x97\x3b\x6a\xba\x52\x51\x21\xc0\x0e\xda\x75\xc8\x1f\xc3\xdd\xf5\x04\x04\x22\x9e\xf6\x15\xa1\xf9\x30\x63\x56\x23\x9b\xf1\x10\xb7\x7a\xfb\xb8\xd5\xf7\x95\x2e\x8f\x40\x2b\x10\xa9\xde\xf9\x68\xbb\x18\xe0\xd8\xbf\x13\xa2\xee\x20\x58\x06\x5e\xf3\x4e\x48\xae\xc3\x2d\x85\xba\x7f\x56\xed\x08\x9d\x20\xfc\x88\xf2\x86\xf5\x8f\x68\x6d\xd3\x78\x6f\x1b\xa1\x18\x99\xef\x7a\x04\x27\x5e\xd4\xa9\x4d\x19\xa1\x08\x25\x2f\x1b\x02\x15\xab\xe1\x89\x16\x20\xe3\x8d\xe2\xa3\x10\xb9\xff\xc1\x96\x0f\x21\xde\xd6\x0f\x5c\x8d\xb4\xd5\xcd\xa1\xb6\x0f\x2d\x12\xb3\x6e\xad\xed\x25\xca\xa1\xc5\xc4\x09\x73\x8b\x4d\x6d\xb8\xdd\x2a\xbd\x17\x6f\xce\xfa\xb1\x80\x8b\x9a\x1f\xbd\x14\x8f\xe0\x1c\x9a\x42\x1b\xea\x51\x0d\xc4\x50\x35\x63\x2d\x77\x72\xf7\xc1\x93\x3b\x0d\x3a\x8d\x88\xc7\x45\xe5\xef\x3b\x0e\x3b\x2d\x69\xe2\x63\x0a\x37\x2d\xcf\x79\xdf\xf1\xa6\x0d\x36\xfd\x9e\x26\x8a\x7b\x0b\x38\xdd\x2a\x38\x67\x5d\x40\x4e\x13\x6e\xee\x3c\x20\x07\xee\xfb\x96\xb4\x03\x69\x05\xd2\xef\x3b\x24\x09\x3d\x85\xdd\xfa\x6a\x85\x14\x87\x86\xa9\x05\x17\x5e\x37\x5d\xbb\x6c\xf2\x1c\x4b\x0c\xbb\x0e\xc3\xa5\x88\xe1\x79\xcc\xee\x53\xb2\x0a\x71\x5b\x6a\x1e\xcd\xd0\x7d\x2e\x41\xc0\x35\x0d\xf1\x55\xd5\xdc\x23\x6d\xb8\x2b\x71\x0c\x5a\x83\x27\x66\x55\x95\x10\x02\xe9\x5e\xbd\x7c\xf9\xbb\x88\x86\x24\x34\xa7\x09\x54\xf1\xbd\xc0\x3e\xa0\x4b\xdf\x48\x7a\xc2\x6a\xdf\xf0\x21\x5c\x93\xc2\x80\xfc\xbc\x64\x15\x62\x14\xa7\x43\xe1\x72\x5c\xe0\x9e\xc1\xba\xce\x41\x68\xd8\xf5\xa1\xa0\x65\x70\xcb\x03\xd9\x14\xe9\x60\x7b\xb0\xb1\xd8\xcc\xe3\x45\x18\x8c\x32\xdc\x4f\x44\xdb\x2d\x84\xa1\xee\xb8\xb1\x95\xc1\x91\x0c\x38\x97\x37\x1b\xcb\xbe\x77\x1a\x27\xd6\xe2\xb7\xbe\x55\xa0\xd8\x2a\x44\x2e\x30\x74\xac\x16\x9f\xd5\x2c\xb5\x6f\xe3\x1e\x8b\xe3\xc5\x18\x5e\x16\x1f\x2a\x56\x0f\x56\xbb\xf7\x78\xb1\x52\x3a\x5a\x83\x54\xe5\x20\xc2\x84\x2e\x54\x08\x07\x2d\x35\xef\x2a\x3d\x23\x9e\x71\xd4\xb3\x39\xa8\x58\x42\x97\x0f\x81\x85\x8b\x06\x3f\xda\x43\xf6\xa3\x0d\xde\xa6\xa7\xe2\x6d\xea\x19\x48\xe6\x3a\x01\xbd\x47\x39\x0c\xf4\x90\xe8\xea\xdb\xab\xcc\x16\xb9\x59\x42\x13\xa0\x25\xfc\x9d\x22\xf9\x0a\xf6\x67\x90\xda\xa0\x51\x01\x5e\xbf\x53\x99\x3e\xb7\x6a\xac\xb7\xbc\x47\xd3\x61\x92\xb5\x3d\xf5\x27\x59\x30\xaf\xdc\x69\xaf\x40\xb9\x0a\xd1\xda\xc8\x11\x15\xe9\xb7\x4f\xa1\xa4\x5e\x04\xb7\xee\x40\xbd\x2d\x4c\x3e\x31\xb8\x86\x5a\x7b\x7b\x71\xf1\x46\x32\xc5\x4e\xdd\xbb\xe5\xbc\x7d\xc2\x0f\x1b\x46\xb7\x87\x1f\x3a\x79\x05\x82\xfe\x1f\x61\xfc\x61\x3d\x5e\x6f\x28\xba\x37\x84\xf2\x35\xc2\xc3\xe9\x2a\x31\xba\x3f\xb2\x58\xbe\xf2\x5a\x77\xc4\xf2\x55\x07\x36\x15\xde\x1b\x52\x5a\x1e\x8b\x26\xb2\x49\xa7\xe8\xf8\x54\xf7\x58\x9d\x65\xb7\x56\xf8\x88\x65\xf6\x34\xbe\x0f\x1a\xdb\x93\xd6\xd8\x1e\x72\x49\xbf\x47\xd6\x47\xba\x87\x9c\xba\xfb\x50\xc4\x9a\xfa\xd7\x87\x4d\x75\x14\xf6\x6b\xf2\x63\x0e\x01\x87\x77\x1b\x70\xd8\xd3\x1f\xe6\x3d\x18\xfe\x34\xc5\x4a\x30\x98\x9f\xe8\x56\xa1\x4f\x51\xb7\xec\x7a\x38\xd8\x1e\x19\xdf\xd1\x37\x37\x73\x6a\x0e\xb9\x3e\xa4\x87\x3d\x38\xe3\x23\x8f\xb9\x3a\x8f\xca\xbe\xd1\x75\x75\x03\xdd\x5d\x28\x9d\x97\x5e\xc6\x4e\x64\x21\xcc\x18\x8d\x6a\xe4\x8a\x2d\x31\xac\x12\x65\x2e\x57\x9c\xae\x47\x4d\xc1\xe0\xc1\x8a\x44\xf7\xa1\xce\x60\x6b\xdc\x93\xbb\x78\x9b\x17\x1d\x24\x7c\x4a\xb8\xd0\xc5\x74\xca\x13\x90\x56\x2a\x9e\x8c\x94\x19\x08\x91\xbb\x8f\xb2\x7f\x3d\xf9\x6b\xb8\x2d\xbb\x53\xb4\x3a\x63\xb0\xea\x43\xfb\xd4\xc3\xdb\x88\x9d\x6d\xec\xac\xaf\x10\xdd\x92\x4d\x84\xc3\xec\x15\x7c\x15\x5a\xeb\xc7\x77\xee\x11\xc5\x10\x45\xcb\xde\x73\x10\x51\x93\x65\xae\xa7\x1e\x73\x6f\x41\x44\xd0\x96\x1a\xa8\x72\xff\x90\x83\x0a\x5a\x95\xb4\x1f\xa2\x08\xe2\xe8\x15\xaf\x44\x65\xc1\x93\x52\xa7\xcd\xfe\x37\x8f\x91\x7b\xc0\xac\x8d\xa3\xa4\x7e\x5e\x79\x81\x28\x36\xcd\x5c\x47\xf0\x6a\x04\xd5\x74\x9d\xc5\xbd\x5f\xc8\xdd\xfe\x83\xa8\x2a\xc7\x85\x37\x3e\x50\x80\x3b\xb9\xdc\x5b\xca\x8b\x75\xb0\x22\x54\xe3\xad\x78\xe9\xf1\xb1\x8b\x79\x3d\x99\x5a\x80\xe3\xad\x99\x5a\x73\x59\xa2\x76\xd6\x06\x4a\x59\xad\xc6\x52\x93\x27\x2e\x2a\x1a\xa4\x2a\xe1\x29\x7d\x94\x35\xfa\x65\x4d\x05\xb6\xcd\xc4\xdc\xc2\xf0\x6c\xcc\x85\xd1\x46\x8d\x4f\x84\xf9\x59\x9d\xa3\xdd\xa2\xcb\x7b\xe0\x13\x92\x4a\x24\xab\x55\xee\x05\x42\x97\x60\x5c\x4b\x1c\xfb\x16\x25\xe6\xf8\x6a\x49\xbf\x80\x45\xc9\x8d\xa5\x82\xd0\x89\x96\x59\x61\xc2\x65\x7c\xce\xbe\xbc\x26\x7f\x78\x41\x20\xd7\x29\x67\xca\xe2\x39\x9d\x21\x49\xac\x05\x75\xd5\x16\xe1\xbc\xc8\xda\x50\x65\x3c\x0d\x72\x51\x40\x30\xe9\xab\x97\xbf\x7b\x31\x26\xc7\xb5\xef\x71\x4d\x12\x9a\x25\xce\x6b\x07\xb6\xa9\xe8\xab\x93\x25\x51\xb2\x10\x29\x1e\x99\x53\xc8\x92\x60\x8e\x7a\x59\xc6\xe8\xa0\xa5\x8c\x6b\xab\x5f\xbd\xfb\x42\x17\x79\xc6\x5e\x63\x38\xb2\x71\x4a\x9c\x3d\x7e\x23\xc9\xf7\x2f\x7f\x37\xb2\x6b\x85\x7b\xfc\xfd\xcb\xdf\xf9\xa5\xde\xae\x70\xe7\x98\x8d\x7d\xde\x54\x73\xf5\xb2\x17\x00\x73\x1f\xd2\xc6\x9d\x76\xa2\x8d\xcc\x73\x17\x49\x48\x43\xd1\xe6\xd5\x58\x1c\x88\xd2\x0e\xe5\xc3\xa8\x32\x1a\x5c\xa0\xf6\x6d\x17\xbc\x53\xdd\x8e\xd4\x6c\xe5\x78\x84\x15\xaa\x99\x20\x13\x8b\x13\x9a\x14\x39\x04\x94\xd5\x46\x61\x36\x98\x5d\x5e\x46\x13\x36\x26\x3f\x8b\x84\xf9\x80\xed\x32\x5f\x25\x60\xd8\x08\x6c\x05\x76\x56\xc8\x54\x63\xa9\x26\x52\x18\x49\xc0\x6b\x55\x9b\x7b\x44\xcc\xbc\xd0\x18\xa4\x84\x30\xa4\xa6\x14\xf0\xfe\x84\x4b\x97\x8a\xcf\xb8\x58\x8b\x66\xf1\xf7\x01\x54\x59\x06\x40\xd2\x0d\xe8\xbe\xcb\x60\xac\x96\x60\xb8\xdb\x93\xa7\x6d\x68\xd2\x79\xa1\x56\x1d\x7f\xf7\x45\x8d\x56\x68\x50\xa8\xea\x47\xe8\x44\xd6\x82\x38\xab\xaf\xdd\x8a\x20\xc5\xd9\x7b\x31\x8d\xf1\x54\xc2\x67\x2a\xbe\xb4\x8a\xe3\x87\x0a\x21\xb7\x04\xe1\xe5\x6d\xa9\x51\x6c\xd6\xf9\xee\x0f\xbf\xeb\x43\x78\xfc\x55\x8a\x62\x6d\x02\xcc\xa8\x05\x58\x91\x13\xbe\x58\xb0\x94\x53\xc3\xb2\xa5\x9f\x88\xd5\x90\xc4\x11\x81\x11\xd1\x05\xd8\x16\x1c\xed\xad\xd3\x30\x99\x61\x6d\xcf\x70\x79\x53\x09\x30\x61\x90\x14\x4a\x5e\x39\x7a\x51\xcd\x82\x84\x2b\x6f\xdf\x84\x37\x80\x62\x41\x64\xf1\x15\xcf\x32\x96\x8e\x3a\x97\x3f\x2d\x94\xbd\xfd\xa3\xda\x4d\x6f\x8c\xac\xae\x45\x1f\x82\x87\x7c\xe5\x16\x83\x79\xc7\x51\xb8\xc6\x25\xb7\x18\xfe\x1f\x24\xe7\xbe\x43\x7e\xdd\x76\x3d\xb6\x47\xfa\x54\xde\x88\xf6\xeb\x05\x34\xc9\x5d\xac\x2d\xaf\x46\x35\x31\xb5\x86\x5b\xf6\xeb\x76\xf4\x9f\x56\x51\x60\x83\x3b\xe3\x10\xbc\xc2\xcf\x40\xfd\x18\xf5\xf8\x7a\xc0\xed\xa9\xcc\x32\x79\x83\xa6\x3f\x3b\x00\x3f\xd3\x70\xbd\x57\xae\x41\x5b\x92\x41\x5f\x9e\xe6\x6e\x43\x85\x6b\xb6\xdd\x86\x9d\xf2\xbc\x73\x43\x0d\x9b\x16\x19\x58\x92\x3a\x63\xdd\xbb\x5e\xb5\xdb\x28\x6b\xa4\x82\xd3\x2b\xb1\xbb\x83\x48\x71\x66\x18\xa6\xd0\x76\xcd\x72\xb1\xcc\xfb\x30\xcc\x9c\x2a\x53\x0f\x49\x6a\x5a\xf4\xa9\x1f\xe7\x63\x63\x9c\x41\x52\xaa\x14\x84\x12\x6a\x9c\xc3\xc5\xfe\x18\x2d\x27\x92\x10\xc3\xa7\x22\xbb\x7f\x29\x9c\xee\x28\xe9\xf9\xb6\xe7\x1a\x2d\x7d\x9d\xfc\x12\x6d\x30\x32\x1a\x62\x64\x8a\x47\x5b\xc8\x4c\x00\xb7\x8f\x36\x90\xee\x9f\x32\x61\x01\xc0\xf4\x98\x9c\x84\x7f\xfb\x78\x54\x2e\xac\x4c\xa0\x5f\x5f\x0a\x72\x48\x3e\x32\x63\x75\xde\xd7\xe4\x98\x68\x2e\x66\x19\xdc\x50\x7b\x01\xde\x7e\x3c\xc7\x92\xd4\x52\x1b\x41\x17\x6c\x0c\xc3\xcf\x8d\x54\x74\xc6\x5e\x93\x63\x4d\x16\x96\x5b\xfc\x22\xb3\x62\xc1\xde\x64\x94\x2f\x34\xa1\xc1\x67\xcd\xd2\xf1\xa5\xb8\xa8\x1d\xd0\xac\xa0\x8a\x0a\xc3\xca\xe8\x78\x94\xae\x05\xae\xc1\x2f\x7b\x89\x26\x67\x9a\xdd\xd0\xa5\xfd\x4a\xee\x23\x37\x20\x6e\x56\xe3\x0a\xc2\xe0\x21\x30\xe5\x41\x07\xa6\x0c\x01\x17\x4f\x25\xe0\x22\x0a\x91\x6f\xf6\x42\xde\x26\x18\x3c\x66\x2b\x1b\x47\x83\x7b\xce\x5b\x92\xbd\x40\x19\xb9\x13\x73\xc0\x76\xd9\xbc\xec\xdb\x45\x63\x57\xf8\xe1\x86\xe1\xd8\xab\x5e\x9f\xd3\x78\xcd\xd1\xd4\xdb\x45\x62\x3f\xb4\xb0\xe7\x98\xe3\xed\x34\x96\x24\x9a\xb8\x4f\xe0\x73\xd3\xf0\xf6\xc8\x67\xed\x46\x3f\xd2\xc8\xe7\xa1\xd5\xf8\x10\xf5\xdc\x37\xea\x39\x46\xf5\x47\x16\xf5\x1c\xdd\xe9\x8e\xb0\xe7\xda\xc8\xa6\xb8\xe7\x68\xc8\x10\xf8\xfc\xb0\xe5\xcb\xc6\xc0\xe7\xdb\x7a\xeb\x63\x46\x15\x4d\x31\x44\x1b\x7f\xb5\xc2\x6f\x88\x36\xde\x98\xde\x3d\xa0\x70\xde\x3a\x8d\xdc\x97\x0c\xd6\x11\xd0\x7b\x4c\x6a\x63\xd7\xc4\xf4\xc6\x32\x70\x0f\x13\x93\x4c\x3f\x40\xd2\xec\x82\x09\x73\x2a\x33\x9e\x74\x75\x28\x6b\x78\xc3\xbb\x8a\xb0\x1a\x44\x30\x4f\xfa\xf0\x37\x67\x0b\x04\xf4\xa1\x19\x1a\x26\x49\x91\x8f\xd0\xe2\x89\x95\x23\x42\xc9\x08\x29\xd0\x85\x39\x22\x10\x26\xcc\x44\xb0\x53\x7a\x2b\x6e\xc8\x10\x26\x39\x7e\x9d\x6b\xf2\xf9\x67\x05\xe1\xbb\x10\x6c\xf5\x19\x66\x56\x6c\x75\x25\x5c\x10\x2e\xec\x1f\xda\x4e\x88\x51\x91\xcf\x73\x99\x1e\xbe\x1c\x39\x77\xa0\x4c\x0f\x5f\x8d\x08\x33\xc9\x0b\xef\x79\x5c\x29\x74\x79\x43\xb9\xa5\xf9\x86\x67\x84\xd1\x64\x0e\x9e\x54\x1f\x1d\xec\x4b\x69\xba\x62\x98\x5c\xcc\xc6\xe4\x9f\xf5\x4d\x8c\xca\xc2\x69\x68\xc5\x5d\xc8\xeb\xb2\xa2\xa5\xcc\x73\xa9\xb9\x61\xb8\x3c\xdc\x30\xcd\x80\x01\x41\x27\x9d\x68\xd3\xa7\x54\xd1\x2c\x63\xd9\x67\x67\xde\x8b\xbb\x19\x7b\x5d\x2e\x77\x63\xb0\xea\xa7\x0f\xe9\xf4\xfa\x1f\x9e\x85\x8f\xb1\xb6\x3b\x83\x68\x6a\xbb\x75\x29\xdc\x53\xb0\x20\xc3\xd4\x29\xb4\x24\x02\x2b\xaf\x77\x9d\x4b\x91\xf4\xae\x2b\xb1\x79\x10\x8b\xaa\x05\xb1\xac\x3a\xe3\xc2\x08\x27\x13\xa2\x79\xcc\xc7\x6c\x02\xf4\x34\x73\x60\xf6\x73\x09\x57\x08\x48\x68\x16\x8c\xdb\x98\x7a\xce\x85\x36\x54\x18\x5e\x46\xbc\x05\x23\x9a\x9f\x12\xfb\x12\x5a\x69\xfc\x9a\xa7\x05\xcd\xa2\x60\xce\x4c\xbb\x2a\x3a\xb4\xc1\xb2\xb8\x1c\x93\x93\x69\x1c\x5e\x3d\xf2\x68\xfc\x70\xaa\x6d\x36\xbd\x12\xe2\x87\x56\x5c\x42\x7e\x74\xad\xfc\xdf\x82\x72\x0c\xcf\x0f\x18\x1d\x51\xa4\x67\x3a\xbc\xe6\xbb\xcf\x23\x86\xd7\x7f\xf5\x10\xc4\xb0\x43\xa8\x5e\xe4\xbf\x66\xb9\x6c\xe0\xe0\xe8\xca\xa0\xde\x30\x90\x2d\x09\xcd\xf3\x8c\xb3\x74\x85\x62\x3a\x6a\x5d\xa5\x20\x65\xf8\xc5\x13\xab\xeb\xa9\x77\x15\x63\xfe\x08\xc2\xc1\xb5\x9d\x29\x61\x1f\xe9\xaa\x99\x60\x05\x2a\x61\x64\xc8\xa3\xb0\xff\xf6\x17\x1d\x1f\x23\x60\x66\x76\x85\x42\xb7\x19\x96\xfc\x58\x00\x0e\x54\x3d\xf2\xb4\xbf\x86\xf2\x48\x4d\x81\x41\xe8\xdc\x22\xb5\xd5\xea\xcb\x7a\x82\x35\x3b\x7e\x58\x89\x19\xa3\x69\x6b\xc6\x0c\x79\xfb\xf1\xfc\xc8\x3b\x15\xdc\xb1\xa1\x23\x0f\xcf\x83\x1a\xcb\x1d\x5e\x03\xf3\xf2\x02\xc1\x21\x52\xdf\x71\xb4\xe3\xb1\x43\xfa\xb1\xbe\x4e\xc6\x49\x56\x68\xc3\xd4\x38\x93\x09\xcd\x1c\xbb\xbc\x3c\x68\x98\xe1\xf2\xc0\xae\x1d\x0b\x6b\x84\xf2\x04\xb1\x8b\xa2\xb5\xba\x5d\x2f\x4d\xfb\x2e\x23\xf9\xcd\x9d\x45\xf2\xbf\xf3\x72\x81\x36\x74\x91\xb3\x14\x4c\x8f\x0d\xb0\x83\xe9\xa7\x45\x36\xb5\xff\x05\x44\xab\xb2\x19\xc7\x4d\x0a\xc1\x7f\x2d\x4a\xff\x4d\xa9\x9c\x28\xa6\x43\xcc\x5a\x45\xee\x6b\x04\xf6\x8e\x3a\xfb\x47\x1f\xda\xa0\xb7\x7f\x51\xeb\x39\x59\x71\x54\xb6\x4e\x59\x3d\x05\x0b\x1b\xb9\x44\xe7\xab\xf3\x2a\x97\xe6\xdf\x1a\x64\xad\xd0\x45\x4b\xb6\x02\x38\x9c\x42\x99\xde\x20\x1c\x34\x43\xe9\xba\x74\xcf\xf9\x91\x5d\x62\x4a\xd3\x2b\xd5\x46\x2f\x09\x7a\xfb\xb0\x2a\x79\x08\x07\x73\xbe\x78\x28\x9f\x36\x65\x8a\x59\x59\x8a\xd4\x5d\x80\x91\xf8\xd9\x40\x44\x16\x14\x43\xe9\x6a\x84\x84\x33\x2c\x63\x8a\x9f\xe5\x16\x14\x37\xd4\x41\xd3\x33\x68\x04\x7d\x4c\x79\x28\x36\x53\x7e\x77\x6d\xf9\x04\xbc\x1b\x2c\xeb\x98\x0d\x6a\x69\x1d\xe2\xa4\xf7\xe4\x4b\xc1\xca\xf0\xf4\xe7\x93\x25\xd0\xd3\x17\x04\x21\xf2\x01\x0a\xba\x72\x01\xa3\xca\xac\x3d\x77\x5c\x26\x08\x69\xc7\x4d\x1f\x33\xf4\x8a\x69\x92\x2b\x96\xb0\x94\x41\x6c\x8f\x65\x5c\x54\x2c\xdd\xe4\xba\x3e\xcf\x08\x9d\xba\x41\x62\x03\x17\xec\x6e\x72\x12\x02\xb5\xb1\x32\x04\x88\x75\x91\x13\x77\x73\x7b\x47\x4f\x3d\x78\x6d\x39\xe4\x16\xfe\xb7\x43\xa3\x60\x67\x8a\xce\xca\xd8\x75\x39\x3a\x6c\x1b\xed\x74\xa3\xf2\xc1\xd5\xc1\xc1\x63\xd4\x55\x54\xb8\xc6\xda\x5b\x2f\xdf\x1d\x94\x15\x7e\x13\xbe\x76\xe6\xe8\xd6\x63\x4a\x0d\x8a\x4c\xe1\x7b\x4e\x0d\x6a\x74\x5e\xf5\xbc\x85\xf7\x96\x1b\xe4\x00\xd2\x33\xcf\xa4\x36\x7a\x35\xeb\x17\x18\x9f\x17\x4b\xd6\x8a\x65\xa5\xb8\x10\x3f\x77\xea\x50\x60\xc4\x30\x49\xf8\xea\xbe\xb0\xaf\x3a\x7f\x5f\x18\xe0\xe8\x91\x95\xbe\x20\x0c\x14\x0b\xc6\x55\x45\x08\xbf\x9f\x55\x69\x28\xc4\x6b\xb9\x5c\xa3\xaa\xd0\xa0\xd9\xaf\x05\xb0\x97\x7f\xbd\x1c\xd5\x80\x5e\x2f\x11\xdc\x47\xa0\xdd\x38\x41\x6a\xf5\x85\x86\x8c\x9d\xc6\x42\xd3\x21\xdb\xa8\x42\xc1\x4e\xec\xd1\x2b\x14\x13\xd2\xe0\xc8\xa8\xaa\xe0\xe5\x6c\x23\x67\x39\xe2\xa1\xfd\x22\x91\x82\x2c\x0a\xe7\x3e\x71\x78\x75\x7c\x7a\xe2\xec\xe4\xf7\x9a\x7b\x55\x19\x7b\xab\x1b\x51\x66\xd8\x51\x28\xb1\xb6\x24\x6f\x5a\x7c\x77\x77\x96\xaf\x55\x37\x75\x6d\xb3\xaf\x3d\x55\x4f\xee\x79\x5d\xab\x83\xf7\x7d\x5b\x3d\xbc\x0e\x6b\x15\x9e\x47\xfe\xc1\x8b\xcd\x2f\xef\x66\xc5\xa2\x6b\xa3\xef\x88\x44\x57\xa1\xbc\xa7\xb8\xcc\x3d\x67\xcc\xb5\x6b\x90\xbd\x84\xcd\x4f\xeb\x54\x49\x5d\xd1\x1c\xd7\x80\x1c\x94\x4a\xd7\xb9\x25\x67\xca\x82\xce\x77\xa9\x07\x2a\xca\x45\x92\x15\x29\xd3\xa0\x72\xd0\x14\xa9\x03\xcd\xca\x48\x5f\x4d\x04\x4b\x98\xd6\x54\x2d\xe3\x39\xa2\x90\x67\x2f\xde\x95\x07\xe8\x57\x77\x3f\xb5\xb0\x9b\x42\xa1\xd7\xe9\xec\x95\x97\x3b\x23\x9f\x35\xca\xbb\x10\x19\x51\x2f\x3d\xdd\x1a\x03\xdd\x6c\x15\xea\x19\x7f\x51\x3d\x79\xe3\x42\x32\xd6\x1a\x14\xee\xb1\x3a\x76\x61\xe6\x56\xd5\x46\x5f\x1d\x04\x22\xc9\x2b\x26\xec\x4d\x66\x37\x6b\x10\x3f\x1a\x45\xa8\xb1\xfa\x1f\x7a\x0c\xa2\xf9\x2c\x1b\x33\x76\x18\xfc\x4e\x20\xec\xc5\x9e\x95\xc2\x66\x68\xaf\x49\x3c\x47\x70\x5a\xbb\xa8\xb8\x84\x26\xf3\x92\x3e\xdd\xb0\xc9\x5c\xca\x2b\x37\x5d\xf4\x0d\xa9\x48\x9e\x15\x33\xf0\xa0\xc1\x48\x2b\x07\x1f\xd2\x9c\xeb\x9a\x60\x30\xc4\x7c\x3c\xc0\x98\x8f\x21\xac\xe2\xa9\x84\x55\xec\x27\xa6\x78\x1d\x6d\xea\x17\x5d\x3c\x97\x19\x88\x69\x28\x82\x80\x45\x24\x84\x27\xba\x03\x25\x13\x66\x91\x88\x59\xc4\xb2\x27\xb9\xdb\xe8\xe2\xb5\x5b\xd8\x24\xce\x78\x0a\x09\x83\x96\xcc\xf9\x62\xcc\x80\xcb\xe8\xc6\x09\x1c\xe7\x66\xce\x20\x59\x38\xde\x9f\x4f\x77\x8b\x28\xf3\x56\x6d\xd0\x2c\xc0\xbb\x64\xac\x5d\x86\xbf\x54\x41\x87\x37\xa7\x39\x1e\x26\x66\x59\xbb\x89\x85\xe9\xc4\xbc\x5e\x9c\xd1\xc7\xc4\x50\x12\x8d\x29\x53\xe4\x6b\xbc\x0c\xab\x90\xc0\x99\xf5\xe1\x5b\x45\xca\xad\xce\xd1\xa5\x0f\x1c\xfb\x71\x55\xd3\x7f\x69\x64\x9f\x72\x4b\x11\x83\x5c\x1a\x68\xa8\xc3\xaf\xd2\xa3\x1d\xec\xd8\xb8\xf2\xf0\xb6\x26\x54\x8f\x89\xff\xce\x21\xbd\xa1\xaa\x61\x77\x52\xb9\x46\x8c\xd7\x4c\xf1\xe9\x32\xce\xdf\xb3\x23\x6f\x20\x04\xc2\x30\x91\xfa\x04\xfe\xd8\x96\xef\x16\x4c\xcb\xbd\x44\x36\x79\x08\x61\x10\x32\x7a\x6a\x17\x90\x2b\x79\xcd\x53\x96\x8e\x2a\x6f\xfa\x88\x11\x14\xb6\x1c\x6f\x0d\x0f\xdd\x67\xfe\x11\x30\x97\x34\x48\x12\x64\x8d\xad\xb0\x8d\xfa\x6e\x11\x72\x08\x60\xe9\x6c\x0c\x04\x07\xe1\xfc\x86\x39\xfd\xb5\x60\x64\xc2\xa8\x82\xaa\x6a\x57\x6c\xfb\x88\xdf\x5d\x08\x8f\x9d\x86\xfa\x95\xb1\x7e\x27\x8a\x69\x7b\x3a\xf7\x75\x4f\xc0\x09\xe6\x51\x22\xbe\x23\xc9\x5c\x6a\x16\xe8\x6f\x55\x0a\x0d\x1d\xa7\x12\xb9\xc8\xa9\x01\x4f\x18\x5c\x98\x89\x74\xb7\xa6\x22\x31\x8b\xd4\x9d\x10\x39\x8e\x6e\x12\xc6\x45\x88\x65\xe5\x17\xe1\x94\x35\xab\xcb\x94\x91\xcd\xb5\x19\x81\xd2\x44\x17\xc0\x05\x89\xc1\x37\x9e\xe9\xf2\x09\x7a\xb5\x40\xae\x59\x9d\x04\x2c\x6a\x18\x7e\xc1\x4c\x19\xc9\x37\x2e\xe7\x45\x1f\x83\x13\x5a\xaf\x69\xc6\x53\xea\xbb\x1a\xd3\x78\xe7\x0d\xe0\x43\x37\xa1\x29\x54\x14\x82\xe3\x6a\x7c\xd4\xe7\x37\xd2\x35\xdf\x29\x89\x44\xbc\x4a\x47\x98\x78\xb9\x2d\x02\x34\x07\xe8\x00\xad\x69\x15\xf6\x83\x16\x1e\x68\xf0\xa9\x7f\xd1\x7d\x10\x03\x0d\xc2\xb3\x88\x4f\xda\xaf\x5c\x1e\x18\x55\xb0\xcb\x83\x51\x4c\xfc\x34\x6e\x9f\xd0\x19\xe5\x42\x9b\x2e\x3a\x62\x21\x7b\x4f\x84\xa4\xb2\x9f\xce\x4b\x50\xd9\xfb\x6a\x3f\xf1\x92\x58\x53\xad\x65\xc2\x69\x60\x0c\x15\x05\xaf\x99\xee\xac\xed\x30\xce\x94\x5a\x0d\x4a\xaa\x2d\xef\x9d\x1d\xd3\xbe\xac\xc4\xa2\xa5\x78\x06\x62\x79\x32\x67\xc9\x15\x4b\xb7\xb0\xb6\x69\xb6\x71\x6c\x54\x03\x21\xfc\xa4\x99\x3a\x11\x53\xb9\x56\xba\xb3\x83\x3c\xd1\xf3\x2f\xac\x00\x16\x22\x3f\x1c\x33\xf3\x64\x7d\x1f\xa4\x3b\xac\xb8\x9d\x62\x87\x35\xa2\x58\x8d\x74\xa9\x49\xb4\xb6\x40\x04\xff\x22\x1a\x66\xf8\x22\xcf\x98\x6b\x45\x87\x0f\xc7\x30\x0d\x10\xb5\x29\x4d\xfa\x64\x9d\xb3\x2f\x46\xad\x68\x2c\xa5\x01\xec\xb4\xf9\x35\xd2\x7e\xc7\xd6\xde\xb2\xda\x3d\x6b\xbf\x69\xf5\x0b\x59\xbf\x50\x55\x2b\x5d\x0c\xad\x70\xa6\x4d\xfc\xa4\xe5\x06\xc5\x87\x5a\x47\x5c\x10\x9c\x7b\x15\x8a\x83\x78\x2d\x39\x25\xf8\x06\x0a\x52\x85\x43\x45\x0a\x39\xf7\x44\x4e\xef\x9c\x4e\x15\xbc\x93\x3a\xf9\x90\x23\xb4\x01\xc0\xed\x8f\xa4\xd0\x72\x1f\x34\x51\x52\x6b\x57\xec\xe9\x64\x5a\xdd\x21\x86\x0b\x63\x29\x17\x97\x1b\x87\xcf\xbc\x5e\xe5\xa3\x34\x00\x1c\xa9\x17\x21\x5d\x32\x3b\xb8\x67\x52\x3e\x85\xc0\x18\x43\x3e\x9d\xbc\xad\x77\xcf\xee\x4b\x64\x44\x77\x60\xa0\x3f\x2d\xdc\x2a\x6e\x3e\x5b\xb6\xec\x79\x21\xc5\x0c\x62\x52\x69\x02\x11\xd9\xf6\xd7\xde\x6b\xdb\x19\x19\x99\x30\x43\x07\x1b\x62\x2b\x06\x0f\x36\xc4\xc1\x86\x38\xd8\x10\xef\xd3\x86\xb8\x42\xa0\x1e\xa9\x21\x71\x75\x1f\x83\x35\x11\xfe\x77\x47\xd6\x44\x80\xff\x6d\x4c\x8a\xcd\x88\x38\xd8\x15\x07\xbb\xe2\x60\x57\xec\x4b\xec\x06\xe3\xe2\x60\x5c\x1c\x8c\x8b\x83\x71\xf1\xeb\x32\x2e\x22\x35\x7c\x74\x16\xc6\xda\xb2\x07\x33\x23\x19\xcc\x8c\x83\x99\x71\x30\x33\xf6\xa4\x25\x52\xf1\xdf\x82\xb3\xe2\xbd\x4c\x68\x76\x5e\xc0\x5b\xc7\x49\xc2\xb4\xee\xb4\x36\xb6\xbd\x82\xd4\xbc\x54\x76\xa5\x82\x00\x71\x8a\xfb\x95\x0a\xf1\x17\xf4\x5e\x1f\x4c\x4b\x05\xec\x1e\x82\xa0\xcb\xe2\xa7\x16\xdf\x73\xa8\xf3\xff\x13\xbd\x86\x3a\xdc\xe5\x6f\x44\x27\x32\x87\x6e\x78\x4e\x0b\x5a\x40\x1e\x21\x37\x64\x51\x24\x73\xc2\xa8\xe6\xd8\x0a\x6d\xa6\xa8\x30\xab\xef\xb9\xf2\x1a\x88\x8b\x3e\x04\x38\x67\x6a\xc1\x35\xe6\x8d\xc1\x26\xb8\x98\x0d\xd6\xca\xc1\x5a\x39\x58\x2b\xeb\x60\x7f\x4c\xd6\xca\x0a\x9d\x6b\xa0\x57\x7b\xb3\x57\x8e\x09\x6a\x64\x25\xf1\x81\xcc\xea\x09\x23\xec\xd7\x82\x66\xfe\x5e\x96\x8f\x97\xb2\x70\xe9\xeb\xd1\xa4\x4e\x67\x19\x13\xcb\x11\x7d\x96\x8d\x41\x8e\x08\xd6\x91\xaa\xb9\x70\x37\x96\xd1\x4e\x98\xdd\x8d\x6d\xd4\xde\x5a\x97\x3d\x8f\x5c\xe4\x71\xd8\x45\x4b\xe8\xad\x33\x8b\xb6\xb2\xdc\x9d\x45\x5c\x56\x4e\xf1\xa3\x14\x67\x8e\xb8\x1d\x1b\x24\x18\x6c\x9d\xc1\xa7\x71\x7c\xc9\x2b\xbd\xe8\x1b\xbe\x41\x68\x39\xaa\xcc\x1f\x9e\xc2\xb9\x89\xc3\x40\x57\x23\x1a\x88\x49\x87\x6e\x0e\x30\x9e\x38\xb5\xa2\x4f\xc9\x7c\x33\xef\xac\x96\x6f\xe6\x41\x53\x3b\x7b\x4f\xec\x2b\x65\xeb\x3c\x58\xc4\xe6\x74\xef\x9a\xa9\x49\xc7\x77\x7f\x61\x6a\x12\xea\xb6\xf9\x2e\xdb\x3f\x5d\x5c\x9c\x12\x78\xf9\x8e\xe5\xba\xe8\x14\xcf\x8a\x4a\x9f\x91\x35\xe7\x6d\x47\x36\x10\xbc\x5a\x05\x15\x4a\x54\x11\xd7\xb8\x89\x4e\xb9\xfb\x00\x45\xf9\xb5\x4f\x67\xef\xbb\xd4\x9f\x8f\xd5\xd1\x8e\x9b\xbb\x3a\xff\x54\x41\xbd\xb9\x42\x65\xa1\x7a\x3e\x48\x9a\x4e\x30\xc2\xfc\x4f\xb8\x5f\xc0\x77\xc9\xb7\x95\xb2\x1c\x58\x81\x45\x8a\x6c\x49\x28\x1e\xda\xb4\xc8\xb2\x11\x99\x42\x4b\x05\x6d\x58\xee\xed\x5f\x16\x81\xc6\x84\x5c\x1e\x7c\x7b\x79\x40\x16\x8c\x0a\x20\x4e\x77\xae\x6f\x59\x2c\xea\x82\x97\xc7\xc1\xd2\x8d\x50\x92\xb5\xea\x75\x3c\x3e\x3d\x01\xbc\xd4\x23\x92\xf1\x2b\xf6\x9a\xcc\x98\x19\x91\x5c\x6a\xfb\xff\x85\x19\x39\xb5\x6b\x44\x20\x09\x7e\x44\xe6\x8c\xa6\x23\x22\x73\x14\x23\xee\x09\x1a\x3d\x49\x3f\x42\xaa\x8b\xf6\xf7\xbe\x4a\x1b\x51\xcf\x1d\x91\xce\x1d\x93\x4d\xcf\xa5\xd6\xe1\xce\xdf\x40\x3b\x73\x04\xcc\xa2\x07\xfe\xe0\x28\xa7\xdf\x57\xe7\xd1\xf7\xa1\xa6\x3d\x54\xe9\xb6\x1a\x5e\x01\x30\x28\x73\x85\xe6\x1a\xe8\x92\x22\x97\x07\x33\x66\x2e\x0f\xac\xd4\xe0\xed\x06\xfe\x01\xfe\x7d\x79\x30\x26\x97\x07\x97\x07\xe4\x39\x88\x54\x2f\x6e\xbd\x0f\x90\xe0\x7a\x6c\x06\x25\xbd\x68\x47\xf8\x83\x77\x9c\xa1\x16\x5c\xdb\xd4\x98\x90\x37\xbe\xf0\x1d\x18\x35\x14\xcc\x20\x7c\xb7\x77\xff\x12\x76\x7b\x17\x32\x9a\x17\xac\x25\x59\x56\xfe\xa2\xab\xdb\x8e\xc5\x48\x00\x51\x9b\x54\xb2\xfa\x1e\xda\xe8\xed\x3b\xae\xca\xd8\x61\x4d\x27\xd7\x4d\x10\xbe\x3c\xa0\x59\x76\x79\x80\x82\x41\x9b\x36\xef\xf4\x29\x4a\x9a\xcc\x0b\x52\x91\x73\x96\x4d\x3b\x25\xa7\x7e\x05\x2a\x1d\xc3\xea\xaa\x92\xe2\xb0\xcd\xea\x84\xa5\x9b\x13\xea\xc1\xe1\x49\x79\xad\xd1\x2a\x55\x3b\xb9\x1b\xba\x98\xf4\x5c\xdc\x79\x39\x72\x83\xf5\x85\xe5\x09\x29\xb6\x29\xed\xb9\x81\x24\x44\x63\xee\xb3\xc2\x79\x2a\x8c\xc7\xb2\xab\x11\xb9\x41\x5e\x83\x39\xf5\x23\xa7\x1f\x47\xac\x48\xc9\x2f\xcb\x9d\x00\xf9\xba\x97\xd9\xc6\xdb\x6c\x22\x9a\xf8\x4b\xb5\xb0\xc1\xed\xa9\xe2\xce\x04\xbe\x9e\xd2\x5e\x45\xd4\x73\x1b\xf3\xb2\x02\x12\x21\x27\xc1\xe2\x2d\x8b\x35\xb1\x28\x09\x1e\x7c\xbb\xee\xca\x62\x55\x25\x9c\x43\xa5\x0c\x6b\x01\x6b\xf1\xcc\x10\xcd\x67\x02\xaa\x17\x0b\x33\x02\xbb\x89\xab\x11\x46\xd2\x02\x9b\x03\x33\x8d\x66\xa8\x5c\x6a\xcd\x27\x19\xc4\x1a\x72\x91\xc8\x45\x6e\x0f\xbc\x9f\x05\xee\x6f\x7d\xcc\xe8\xc7\xa7\x27\x38\xae\x89\xa5\xf8\x87\xae\xff\x9d\x8c\xaa\xa7\x45\x9b\xb4\x5a\xf8\xa2\xc8\x0c\xcf\x33\x44\x05\x67\x8d\xb7\x22\x65\x54\xf4\x15\xaa\x09\x24\xb1\xf7\x9b\x95\xee\xc7\xf8\x8a\x8a\x62\x01\xf5\x2f\x62\xe2\xc7\x05\xbc\x1f\x66\x0f\x95\xf1\xdc\x11\x3c\x00\x29\xd4\x2f\x16\x58\x5a\x4f\xea\x09\x63\xd1\x69\xee\x24\x48\xa8\x49\xc9\x4d\x89\x7a\x51\xe9\x4b\x80\xbb\xc5\x4e\xac\xf4\xea\x84\xf7\xe3\xe0\x1b\x66\xc6\x6d\x1f\x46\xb3\x6b\xa6\x96\x66\x8e\x48\xf7\x00\xe1\xd4\x17\x46\xb5\xe8\x9f\x12\x27\xd0\x20\xbc\x02\x8f\xda\xfe\x82\xaf\xde\x63\x22\x09\x57\x63\x7c\x29\xec\xe8\xa3\xa9\x94\x97\x07\xf5\x12\x6e\x11\xb7\x21\xcf\xa6\x52\x3e\x43\x71\x09\x0a\xf2\x46\x58\xd9\x36\xf5\xa3\xd3\x81\x3a\xf4\x9f\x1d\xb2\xa1\x27\xa5\x02\xb5\xc9\x5d\x6b\xea\xb9\x34\xbf\xd1\xe0\x23\x32\x51\x25\x41\xd0\xdf\x1b\x1d\x44\x63\x42\x3e\x4a\x03\x26\x45\x2c\x36\x4f\xe8\x8a\x91\xd5\xc9\x99\xf6\x59\x45\xf2\xb5\x32\x3f\x88\x8e\xce\x7e\x60\x11\x99\x66\x24\xa1\x9a\x8d\xc8\x84\x25\xb4\xd0\xce\xfd\xe6\x6d\x07\xae\xd3\x9e\xa5\xbc\x56\x23\x33\x12\xd7\x1d\xdb\x2a\x97\xcd\xeb\x1c\xbc\x46\x83\xd7\x68\xf0\x1a\x3d\x19\xaf\x51\x33\x15\xdb\xa7\xe7\x08\x83\x03\x44\xea\xe5\xcb\xe0\x3a\xb2\xd2\xcf\xe0\xef\x79\x84\xfe\x9e\x5e\x46\x8b\x9d\xb9\x7b\xd6\xa1\xec\xc6\xec\x7a\x6d\x7c\xbc\xb3\xad\xfb\x20\x5f\x42\xde\x7d\xa1\x89\xc9\x96\x5e\xcd\x09\xa6\xd0\x78\x89\x91\x5d\xd4\xa2\x45\xec\x6c\x6a\x19\xe6\x2f\x80\x8e\x7a\x24\xf6\x71\x2f\x34\x9a\x6b\xb7\xbc\x19\xcd\x3e\xb4\x75\xb7\xa2\xd9\x8b\x56\x3a\x51\x62\xb2\x80\x16\xca\x8a\x79\xbe\x0a\xdb\xf5\x2a\xc6\x2e\x37\xba\xe1\x2e\xbb\xce\x6e\xdd\x7e\xbb\xf7\xba\x33\xdb\x48\x84\xdd\x67\x45\xc6\x36\x92\x5e\xa3\x17\x4a\xa5\xdd\x29\x4f\x6c\xc5\x6c\xd2\x2a\xc8\xde\x70\xab\xa4\xc6\x91\x4c\xbe\x31\x8a\x0b\xb6\xae\x1b\x61\x5c\xea\x65\x69\x0e\x21\x29\xcb\x19\x36\xbc\x97\x22\x22\xaf\x10\x38\x1e\x3b\x15\x16\x32\x75\x82\x1a\x15\x4b\x02\x11\xbb\x9a\xb0\x2f\x39\x53\x10\xf7\x9c\xc6\xcd\xdb\x1d\xe7\x01\x01\xbb\x65\xd3\x65\x13\x71\x28\x0f\x38\x59\x92\x4f\x27\x20\x25\xea\xb9\xbc\x39\x9a\xf3\xd4\x5b\xaf\xb1\xa7\x93\x91\xe4\xd7\x82\x27\x57\xd9\x92\x64\xcc\x40\x4c\xb7\x48\x11\x1e\xae\xc1\x64\xe0\x82\x5c\xc5\x91\x57\x50\x95\xd1\x7d\xec\xe3\xcf\x17\xe4\xaf\xe5\x07\xd9\x17\x27\x84\xea\xa5\xb6\x6a\x95\xfd\x48\xaa\xf8\x75\xdd\x9d\x92\xb2\xc4\x55\xff\xa6\x5e\x71\xa6\x5c\x33\x6d\xc5\xdd\x29\x4c\x96\xb2\xbc\x30\xcb\x11\x66\xb4\x92\x8c\x4f\x99\xe1\x0b\x76\xa4\xd8\xb5\x4c\x5c\xc5\x5c\x0b\x38\x28\xb1\x9b\x18\x61\xf1\x12\x5a\x9a\x28\xbb\xbe\x06\x02\x89\xc3\xc1\x76\x5e\x51\x73\xa8\xf2\xdd\x45\x61\x22\xac\xce\x2f\xad\x1c\x6f\xf9\x61\xcb\xa2\xbd\x8b\xa7\x21\x0a\x7d\xd0\x26\x06\x6d\x62\xd0\x26\x70\xcc\x53\xd0\x26\x22\x02\xbb\x3f\x65\xe2\x4e\xb4\x85\x78\x27\xbb\x57\x16\x1a\xd8\x2c\x5d\x61\xae\x8f\x24\x6b\x76\x63\x6d\x21\x96\x55\xf6\xae\x2c\xd4\x31\x32\x12\x8e\x5a\x85\xed\x8d\xdd\xdf\x46\x06\xf4\x04\x9b\x36\xb4\xe9\x18\x93\x33\x77\x46\x77\xee\x34\xdb\xd0\xa6\xb9\xdb\x98\xf7\x81\xbb\x0f\xdc\x7d\xe0\xee\x75\xb0\x3f\x5e\xee\x7e\x87\x76\xc2\xc1\x0e\xf8\x18\x39\xfb\xdd\xd9\x00\x37\xb7\xff\x3d\x01\xdb\xdf\xe3\xcc\x38\x7d\x67\x57\xdd\xd4\xd3\x27\xa4\xdd\x8e\xff\xc6\x0c\x8c\x7a\xfe\x82\x2c\x98\x99\xcb\xb4\xe4\x09\xd5\x24\x54\x42\xce\xb9\xf0\x0d\x4e\xb9\xa5\x29\x79\x11\x15\xd1\x28\x23\x47\x7d\xcf\x32\x4a\x14\x9b\x66\xae\x5e\xc1\x9c\xa9\xb6\x80\xb0\x5b\xe7\xb1\x56\xa3\x6f\x9c\x6b\x63\x29\x8b\x67\x8a\x11\x2b\x3b\x58\xea\x36\x5d\x49\xa3\xdd\x7f\x40\xc1\x60\x2f\x7e\x42\xf6\xe2\x68\xaf\xdd\xc9\xc9\x9f\x4e\xde\xae\xe7\xb9\x16\x25\xd7\x94\x49\xd8\xb4\x3a\xc1\x9a\x7a\x02\xa0\x2b\x34\x5c\x06\x72\x32\x85\xd4\x30\x8c\xbc\x59\x92\x4b\x78\xeb\xf2\x00\x32\x17\xac\x84\x77\xe9\xee\x95\xab\x7a\x01\x91\x8a\xdc\xc9\xe1\xb9\xc2\xac\x69\x4d\x2e\x0f\xfe\x09\xf4\x60\x0a\x85\x0b\xc8\x0d\x53\xcc\x29\x29\x0b\xe6\x7b\x19\x51\xb1\x74\xb7\xf2\x01\xa8\x60\xdd\x9d\x29\x3b\x05\x94\x76\x8d\x0a\xc5\x8b\x2e\x75\xca\x09\x21\x1c\xd1\x0c\x74\x53\x72\xa1\x0a\x66\xa1\x18\xc5\x6b\xdf\x78\xd3\x78\x48\x2a\x99\xd2\x4c\x33\x02\x59\xea\x37\x5c\xb7\xd1\xd3\xb5\x35\x36\x52\x26\x78\xe7\x0a\xdf\xc2\x20\x88\xfb\x75\x11\x75\xeb\x17\x88\x93\x8e\xca\x95\xe1\x4a\x01\xc7\xa0\xf8\x0d\x2d\xb7\x8c\x7b\xb0\x2c\x3a\x0d\x5f\x81\xdf\x1c\x96\xd5\xb8\xc9\x9c\x42\x48\xba\xcc\xb9\x00\x09\x41\x94\xa2\x9d\x2c\xc7\x45\xab\x1a\x13\xb7\x7a\xab\xe9\x38\x4d\xc5\xb8\xb5\x47\x90\xb7\x3f\x6d\x55\xa3\x24\xf8\x34\xde\xf5\xa9\x56\x52\x1d\xed\xc2\x14\x9d\x98\x1a\xb2\x9f\xb4\x5c\x30\x74\xa5\x10\x99\x80\x93\xa7\xe2\x46\xa9\x5a\xf4\xc1\x26\x80\x4d\xa6\x34\xb1\xdc\x59\xb1\x6c\xe9\x83\x5c\x19\x36\x3f\x43\xcf\x08\x4c\x68\x01\x1d\x47\x1a\x49\xab\x38\x16\xd8\x6f\x5a\x2d\xb8\xa8\x4f\xaf\x9d\xa0\x2d\x88\xce\x39\x36\x5e\xe5\x66\x4c\x7e\x84\xa2\x2b\xda\x50\x91\xb0\x11\x39\xfb\xeb\xf1\x1b\x5f\x62\x0e\x3c\x2c\x90\x46\xaf\x64\xe6\x5a\x4f\x33\x21\x8b\xd9\x1c\x7e\x70\x31\xac\x86\x67\x99\x2f\x26\x86\x6b\x92\x85\x70\xdd\x8b\xab\x7e\x9b\xd5\xba\x4e\xbd\x29\x23\x4e\xd5\x19\x13\x09\xdf\xab\xe0\x36\xb6\xec\x2a\x75\x87\x25\x70\x04\xd4\x1a\xa0\xd0\x4d\xa9\x36\x20\xd2\x6e\x6d\x4b\x6a\x56\x2b\x3c\xdd\xe8\xd2\x2c\x36\xa5\x7b\xab\xe6\xd3\x4e\xb2\xb7\xf2\xca\x4a\xcc\xb2\xab\xcb\x45\x9d\x8d\xcd\xe1\x23\xf4\xb5\xc7\x38\x36\x87\x18\xeb\x9d\x8b\x38\x47\xb8\xe7\x3a\x56\xe5\x38\xfa\xd4\xf8\xac\x50\xa1\xb4\x50\xa7\xc3\x31\x76\x36\xfe\xd5\x85\xdd\x55\x51\x1b\xd7\x0b\x59\x7a\x20\xb7\x5f\x33\xe8\x33\x48\x43\x00\x2c\xa3\xca\xf5\xbb\x06\x7f\x29\x37\xcf\x34\xd1\x74\x0a\x17\x87\x6a\x5d\x2c\x58\x25\x7a\x7d\x4e\x7d\x53\xee\xe0\x67\x1c\x11\x76\x6d\x39\xe5\x14\x1f\xe0\x34\x7a\xb3\xb0\xf3\xdb\x51\x18\x0b\x7c\xdc\x8a\xdd\x49\x22\x17\x13\x2e\x70\xfb\x00\x47\x38\xde\x71\x15\xdf\x03\xad\xa8\x13\x1f\x80\x4b\xb9\x9c\x11\xd1\x45\x32\x87\xde\xc5\x22\x26\xd1\x98\xc1\x29\x19\x86\xe5\x17\x79\x2e\x95\x59\x7d\x17\xeb\x91\x51\x43\xe2\x24\x01\xd0\xd5\x8e\xa4\x22\xb5\x3c\xd1\x06\x0f\xf5\x16\xf4\xa0\x7c\xb9\x03\x88\x27\x25\xaa\x3a\xd6\x80\xed\xe8\x7c\xb4\x78\x54\xb6\x0c\x8c\x0e\x16\x41\xa1\xb8\x8a\xaa\xac\x10\x2f\x01\xd7\xd8\x7d\x35\x91\x8b\x05\x64\x80\x32\x01\x7d\xa4\x19\x20\x33\xb4\x96\x8f\xc1\x57\x81\x6a\xf0\x45\xc7\xcf\x9b\x40\xab\x63\x7c\xdf\x82\x8d\x89\x1a\xbc\xfb\xa7\xca\xe2\xf1\xdc\x26\xb9\x23\xd6\x2d\xee\x22\xc1\x83\xac\xd1\xf6\x6e\xa5\x7d\x41\x36\xcc\x6d\x14\x44\xb5\xc1\x11\xec\x0e\xfe\x8f\x17\xf6\xb7\x03\x7c\x4f\x66\x5c\x3d\x94\x75\x77\xa6\x99\xd4\xec\x8a\x89\x63\x21\xb6\xa1\x84\xd2\x50\x42\x69\x70\x70\x0d\x0e\xae\x27\xee\xe0\x42\x62\x37\xd4\x51\xda\x21\xe0\x06\xa7\xda\x7d\x14\x53\xda\xa6\xe0\xfc\xea\x79\x0e\x65\x95\xbe\xc2\xb2\x4a\x2b\x47\x3f\xd4\x56\x1a\x6a\x2b\x0d\xb5\x95\x6e\x79\x9f\x86\x02\x4b\x43\x81\xa5\xa1\xc0\xd2\x50\x60\x69\x28\xb0\xb4\xa1\x4c\x34\x14\x58\xea\x5e\xd4\x6e\x45\xbf\xa1\xca\xd2\x7a\x1b\xdd\x50\x65\x69\xa8\xb2\x74\x0f\x70\x1a\xaa\x2c\x3d\x28\x6d\x68\xa8\xb2\xb4\x3d\x87\x19\x4a\x2d\x0d\xa5\x96\x06\xef\xd2\xe0\x5d\xfa\x3a\xbd\x4b\x5f\x53\xbd\xa5\xc1\x2f\xf4\xa0\x8a\x2e\xed\xc6\x2d\x34\x94\x5f\xda\x7d\x96\xc9\x3a\x87\xdb\xd3\xcb\xa9\x69\xb5\x89\xdf\x5f\x62\xcd\x6e\x6d\x28\x43\x35\xa6\xa1\x1a\xd3\x50\x8d\x69\x50\x38\x06\x85\x63\x50\x38\x1e\x90\xc2\xf1\xf8\x4b\x32\x55\x14\x8a\xa1\x2e\xd3\x3d\xd7\x65\xda\xb9\x3e\xf1\x35\x56\x68\x6a\xd5\x91\x87\x32\x4d\x03\xdb\x27\x03\xdb\x1f\xd8\xfe\x83\x8f\x62\x1f\x6c\x88\x8f\x96\xe5\xdf\x87\xfd\x70\x28\xdd\xe4\x7f\x1c\x4a\x37\xdd\x49\xe9\xa6\xa1\x72\xd3\x60\x6a\x7e\x38\xa6\xe6\x68\xc3\x5f\x55\x0d\xa7\x47\x5c\xc2\xa9\x4b\x06\x19\xea\x38\xad\x59\xe1\x50\xc7\x69\xa8\xe3\x34\xd4\x71\x7a\xbc\x75\x9c\x3a\x6c\xae\x43\x31\xa7\xa1\x98\xd3\x50\xcc\x69\x28\xe6\x34\x14\x73\xc2\x9f\x6f\xaf\x90\x0d\x15\x9d\xee\xe3\x00\x9e\x7a\x59\x27\xa9\x13\x9a\x71\x31\x1b\x5f\xbf\x1a\xbf\x51\x52\x6b\xe7\xa6\x41\x9b\xf4\x19\x9b\x32\x65\xb9\xdf\x1a\x7e\xbe\xe6\xad\x92\xa5\x3b\x69\xad\x52\x00\x40\x42\x64\x8e\xd5\x11\x79\x6a\x85\xcc\xe9\xd2\x71\xfe\x29\x03\xe6\xe0\xa1\xb2\x63\x3f\x94\x77\x3a\x95\x79\xbf\xb0\xda\x2d\x8a\x38\xf4\xf5\xc0\xd4\x3e\xf4\xc3\x1d\xfa\x37\x2e\x0f\xf6\x97\x43\xdd\xb5\xad\xd7\x47\x47\xa5\xc9\xda\x6e\x2c\x95\x89\x3e\x2a\x34\x53\x87\xb3\x82\xa7\xec\xc8\x1d\x3b\x67\x4a\x7f\x03\x0e\xdb\xdd\x4a\xbc\x70\x3c\xf5\x7d\xed\xe8\xaa\xfc\x64\x29\x85\x45\xee\xec\x54\xa6\xc7\xee\x59\xc5\x6e\x52\x07\x99\x17\x34\x4b\x87\x26\x99\x87\x49\x48\x2e\x53\x42\xc3\x34\x83\xe7\x75\xf0\xbc\x0e\x9e\xd7\x3a\xd8\xf7\xeb\x79\xed\x70\x18\x62\xf9\x1d\x77\x36\x7e\x25\x7b\x87\x57\xd8\x72\x23\x40\xb6\xf5\x0b\xf7\x20\x64\x9d\x4e\xe1\x09\x9b\xd3\x6b\x2e\x0b\xe5\xd4\x6b\x4f\xb9\xf6\x0d\x11\xbb\xe7\x43\x2a\xd2\x43\x34\x22\xed\x3c\xae\xac\x0f\x6c\xba\x3d\xcc\x3e\xfe\xba\xd9\x46\x1f\x13\xfa\xfe\x56\xe9\xdd\x7a\x82\xfd\x3e\x9b\x1d\xc0\x6d\xec\xad\xdd\x09\xbc\x99\xff\xb7\x07\x94\xdf\x73\x6d\xd6\xb0\x53\xaf\x8b\xb4\xf2\x50\x77\x57\xf5\xc0\x4b\x1f\x34\x2f\x6d\xd2\xd6\x76\x70\xd6\xad\x73\xef\x8e\x0c\xdc\x4a\x17\x1f\x44\x88\xa7\x22\x42\x58\x3a\xd5\x5f\x80\x00\x54\x0e\xe2\xc3\xe6\x3a\x0d\xa2\x74\x97\x12\xf3\x00\x58\x05\x90\xef\x3b\x64\x17\x1d\xb1\x42\xae\xba\x44\xb2\x23\xed\x6b\x41\xbf\x9c\x31\xb0\x4d\x75\xd1\xae\x22\xcf\x99\x22\x19\x5f\x70\x53\x16\x37\x2c\xbc\xeb\x3a\x97\xa9\x33\xed\x3b\x5f\x86\x66\xc6\x87\xa2\x95\x0b\xfa\xc1\x3e\x75\x97\x4e\x2f\x68\x96\xa1\x2d\x5c\x90\x0f\x5c\xf8\x65\xd4\x48\x1f\x8a\x1d\x76\x01\x5c\x98\xef\xbf\x6b\xbe\x29\x96\x93\xcc\x62\x42\x56\xb9\x2a\xe5\xdc\x1d\x5b\x8c\x46\x06\x4b\xa1\xbc\x59\xb3\x6b\xe5\x47\x1b\x49\x6e\xe6\x3c\x99\xd7\xf6\x0b\xc0\x80\x7f\x92\x54\xde\x08\xf4\x9d\xb9\x9a\x62\xf0\xd2\x2b\x0b\xb8\x31\x21\xb5\x2f\x47\x06\xc8\x09\x23\x2f\x83\x27\x39\xcb\xe7\x94\x4c\x19\xb5\x24\x85\xcc\xa8\x61\xe4\xa7\xd3\xe3\x73\x3b\xff\x85\xfc\xbf\x99\x92\xe8\xe5\xa4\x93\x8c\xa5\xe8\xff\x31\x24\x63\xd4\x15\xd4\x41\x15\x81\x48\x45\xde\x79\x9b\xf9\x82\x19\xc5\x93\xaa\xf7\x68\x4c\xc8\x39\x22\x29\xac\x24\x31\x90\x16\xa6\x49\x26\xc5\x0c\x6c\xee\xf1\x9c\x6e\x02\x24\xe8\x3c\xaa\xd0\xb7\xf3\x53\x04\x28\x5e\x50\x35\x63\xe6\x0c\x48\xdc\xad\x04\xe2\x75\x06\xc2\x75\xe4\x4f\x05\x83\xa0\x91\x78\xb0\xa5\x75\xef\x87\x35\x6c\x1d\xea\x13\x65\x8c\x2a\x51\xc9\x6a\x0c\xcc\x2e\x91\x42\x17\x0b\x0c\xf2\xb3\x07\x07\xe3\xed\x15\xb2\xa3\x53\xa6\x2d\xfd\xac\xdf\xb6\xc9\x92\x14\xe0\x4c\xb6\x9c\x0d\x90\x20\xae\x52\xd3\xa2\x4f\x18\x80\xe0\x9b\xd3\x4f\x9f\x0c\xcf\x9c\x89\xf8\x94\xa9\xc4\x8a\x76\xb3\x2e\x63\x19\xbe\x4c\xe8\x35\x53\x74\xc6\xc8\x9b\xd3\x4f\xa4\x28\xa7\x21\xcf\x03\x9b\xc6\x90\x17\x4a\xf2\x30\x33\xde\x16\x5f\xe7\xe9\xcd\xe9\xa7\x17\x44\x42\x7c\x6a\x96\x61\x15\x51\x99\xea\x1f\x2c\x9e\x5b\xea\x50\x56\xd0\xc1\xed\xc3\x7d\x21\xd1\x11\xfa\x02\xf6\xbe\xec\x53\xa1\x57\xbc\xcc\x5b\x62\x5c\x4f\xee\x55\xc3\xc6\x51\x33\x41\xdd\xaf\x89\xae\xd3\x3f\xed\xb1\xcc\x45\x29\xac\xe7\x15\xdd\xac\xc2\x4d\xb7\x25\xee\xf8\xc5\xb4\x21\x4f\xc0\x06\x8b\x09\x23\xb2\x09\x2a\x8d\x08\x1b\xcf\xc6\xe4\x4f\x2f\xe3\x7a\x57\x54\x84\x4f\xd9\x8d\x72\xed\x2e\x8b\x90\x37\xe4\x4f\x2f\x7f\x87\xa1\x1a\xba\x3a\xd1\xce\x89\x96\xdb\x74\x4f\xf6\xe3\x41\xd4\xc0\x5f\xfc\x9d\x5f\x50\x41\x67\x91\x4f\xb5\x89\xd7\xef\x68\xed\x8e\xea\xf4\x5c\xfb\x2a\x8d\xba\xcf\xb5\x67\x54\x1b\x64\x8b\x7c\xd5\x03\x70\x0b\x11\x19\xa6\x5b\xc7\x1f\xec\x87\x89\xe1\x2e\xec\xa1\xe5\xe2\x7a\xc6\xb1\x2a\x41\xfd\x10\x32\xb4\x6b\x72\x84\x0b\x46\x52\x32\x23\x73\x79\x43\xe4\xd4\x38\x5f\x7b\x8d\x27\x40\x44\x09\x15\xb3\xd6\x3c\x45\x39\x81\x88\x91\xf4\x6f\x4c\x30\xb4\xe0\x77\xc9\x44\x52\x83\x2a\x6f\x11\x73\x16\x5e\x22\x7e\x9e\x0d\x4f\xf3\x8f\xbf\xdf\x31\x21\xae\xdf\xb0\x35\x08\xbc\x23\x6a\x0c\x78\xb5\x2e\x2a\x08\x38\x71\x54\x3e\x8e\x12\xcf\xb5\x7c\x94\x54\x35\x92\x76\xb0\xeb\x3c\x68\xbb\xce\x60\xe0\x78\x2a\x06\x8e\x5b\xfa\x48\xf6\xee\xed\x6e\xb2\xa6\xec\xd8\x49\x02\xc4\xa9\xd3\x25\x12\x93\x0e\xe7\x1e\x51\xde\x49\x0e\x34\xfe\x49\x39\x47\x10\x26\xfd\x5d\x21\xa5\x38\x7d\x7f\xf0\x20\x67\x8c\xa6\x87\x52\x64\xcb\x87\xea\x78\x41\x36\xb9\x0f\xbb\x59\x89\xc3\x1d\x4c\x18\x72\xe8\xca\x5c\x16\x10\xa9\xca\x24\x17\x50\x87\xf4\xaa\xda\xdc\xc9\x8c\xd5\xb6\x12\xb1\x0f\x09\xd7\xc1\x92\xe4\x04\x41\xc7\x70\xf7\xa3\xc0\xde\x42\xca\xe9\x8e\x80\x2e\x47\xd5\x0b\xe6\x36\x29\x9f\x7b\x84\x36\x4d\x4c\x41\xb3\x08\xd8\x41\x40\x2d\xa1\x1e\xdf\xd8\xdd\x02\x3d\xa6\x49\x2c\x63\x89\xe9\x0c\x42\xce\xe8\x84\x65\xe4\xd7\x82\xa9\x25\xaa\xbe\xa5\x01\xd5\x89\x5b\x0b\x6a\x9c\x3d\x31\x68\x52\x10\x14\x5b\xc6\xcc\x6a\xba\x60\xbe\x3b\x0b\xce\xe7\x3f\x0e\x79\x05\xbe\x1c\x31\x8a\x24\xb8\x33\x88\xcb\xbe\x96\xdc\x82\xc5\x28\x69\xc9\x0a\x08\x7e\x93\xa5\x93\x24\x5c\x70\xa3\x7b\xc9\xdb\x57\xfc\x54\xf6\x83\x6e\x22\xf7\x5d\xd8\xc1\x61\x4e\x15\x5d\x10\xbd\x14\x86\x7e\x89\x68\xa1\xf3\x14\x57\xd7\xa6\x7b\xc6\x54\xc1\x5b\xfa\x1b\xf8\xcf\x61\x78\x79\xb7\x81\x55\x6a\xa7\xba\xc1\x77\x18\x68\x39\x04\x1f\xf6\x38\xa0\x21\xf8\x70\x08\x3e\x74\xf7\xc5\x7b\x23\x3e\x80\x2f\xe1\xbc\xde\xd6\xa3\x21\x65\x7b\x65\x78\x94\x9a\x31\x97\x37\xc1\x36\x4f\xa4\x80\xfc\x4a\xf0\x51\x40\xb2\xa5\xd6\x32\xe1\xd0\x4c\xc0\xe5\xc8\x2c\xc9\x3f\xca\xa2\xe7\x4e\xe0\x7f\x6e\xd9\x33\xfb\x42\x17\x79\xc6\x48\xc6\xc4\x0c\xdb\xa4\xfd\x5a\xb0\x02\x48\x61\x92\xc9\x22\x25\x0b\xa6\x35\x9d\x59\x2a\x69\x19\x0d\x4f\x18\x54\xeb\xfb\x1f\xa7\xe7\xa8\xa9\x65\x92\xa6\x13\x9a\x59\xce\xa3\x88\x2a\x84\x80\x5c\x9e\xc2\x68\x9e\xc2\x99\xbb\xbe\x30\x2f\xc6\x95\xe4\xfd\x4b\x67\x63\xbf\x3c\x80\x76\x24\x51\xad\x40\xcd\x4c\x1f\x77\x1e\xec\xf5\x63\x37\xea\x95\x03\x9b\x3a\x3d\x78\xbf\x90\x20\x98\x83\xdb\x9a\x31\xd1\xa1\xc1\xd9\x03\x6a\xe1\x87\xb7\x71\x54\x5b\x96\x10\xe6\x5d\x27\xb2\x57\x97\x80\x46\x60\x74\xab\x05\x5a\x49\xbd\xb7\x21\x41\xbb\x9d\x66\x8a\x33\x5d\x96\x97\xc4\x6e\xbc\x38\xd1\x5a\x9f\xca\x31\x5a\x9b\x7f\xb1\xaa\xff\xad\x37\x3b\x0e\x54\xfb\x7f\x14\x54\x18\x6e\x96\x6b\xf7\xb9\xba\x02\x7f\xaa\xce\x65\x93\x33\x75\x98\x4b\x67\x6e\xb1\xa7\x3c\xcb\xe4\xa4\x74\x00\x3e\x07\x13\xfb\xaf\xee\x53\x2f\xc6\xe4\x43\x61\xc5\xa9\x6c\x49\xd8\x17\x8b\xa8\xfc\x9a\xe1\x85\x41\x97\x07\x7c\x61\x2d\x30\xee\x11\x0a\x4d\xdb\x0f\xdb\x8e\x90\x7b\xc3\x3d\xc7\xc0\xdd\x22\xdc\x21\xba\x98\x7b\xa4\x9d\x5d\xf2\x7a\xd3\xf0\x5a\x49\x38\x2f\xb7\x07\x90\xd1\x1a\xae\xf4\xa6\xa3\x3d\xc8\x95\xfb\xd8\x7d\x5e\x9d\x86\x25\x78\xe4\x59\x01\x85\x83\x80\xf3\x2b\xa5\xce\x67\xe5\x0d\xdf\x29\xc8\xf0\x2d\xd7\xc2\xcd\x75\x9f\x5b\x5c\xbf\xb7\xf6\x9b\xb1\x8e\xba\xdf\x8a\xd3\x04\xd6\x0c\x44\x19\x8c\xe2\x91\x8b\x97\x7b\xaa\xeb\x8a\xd4\x0e\x1c\xa8\xc6\x81\x36\xa7\x3c\x6d\xf8\xb8\x4b\x8a\xb4\x79\x3e\x49\x9b\x97\xcc\x63\x6a\x25\xdd\x04\x5d\x27\xad\x5e\xec\x91\x0b\xc3\xb1\xbf\x58\x05\x29\x01\x82\x8e\x9e\x47\x1d\x2b\xd3\xa8\x4b\xfb\xa2\x1b\x65\x8f\x38\x2b\xf3\x2d\x22\x93\xfd\x8a\xc9\x82\x4c\xa8\x3d\x40\x97\x95\x8d\xc0\xd5\x65\xc4\xc2\xe0\xcc\x19\x9c\x39\x83\x33\xa7\x81\x10\xdf\x93\x33\xc7\x7f\x79\xa5\xff\xf4\x53\x4b\x80\x59\x4f\x7e\x3b\x5d\x3e\xda\xd5\x9b\x8b\x1a\x98\x25\x25\xc5\x8d\x1c\x41\x45\xf0\x04\x3d\xc9\x5c\x99\x0e\x30\x76\x7b\x89\x74\x28\xc9\x18\x8b\x59\x5f\x4d\xfa\xcc\x77\x5b\xd4\x50\xec\x0b\xfd\x37\x52\x60\x39\xc1\xcd\x85\x89\xf0\x6a\xcd\x1f\x64\x4f\xcb\xc9\xa2\x6d\x62\x08\x74\x4e\x4f\x98\x82\x3c\x7e\xa0\xd5\x3d\x78\x7c\x46\xb5\xb9\x50\x54\x68\xf8\xe8\x7d\x44\x21\x55\xbf\x1e\xc2\x99\x2b\xf1\x49\x49\x80\x8a\x09\xa3\x99\xab\x6f\x28\x05\xf3\xbe\x1b\x23\x09\x15\x50\xad\xaa\x8d\xba\x6b\xdd\x1d\x00\xe8\x46\x21\x6b\x9d\x17\x0b\x2a\x0e\x15\xa3\x29\xd4\x5a\x62\x5f\xf2\x8c\xba\xa2\x2b\xce\xd8\x6d\xd9\x6c\xca\x0c\xe5\x99\x8e\x6e\x4c\xb9\xce\x3d\x15\x3c\x52\xa1\xe0\x11\x0a\x8b\xf0\x97\x27\x81\x01\x5e\xcf\xb4\x83\x64\x58\xce\x36\x5d\x8c\x1b\xc9\xd5\x5a\x72\x52\x75\x3d\x97\xc7\xf7\xfc\x42\x59\xd9\xec\x47\xac\x0c\xf6\x49\x5c\x09\x79\x23\x5e\x6c\xbe\x24\x37\x66\x6d\x0c\xf0\x32\x67\xb5\x4b\xe4\x89\x5c\x58\xcf\x6e\x0d\xd0\xf0\xfe\x2a\xdc\xee\x40\x69\xe9\xc8\xdc\x5b\xa3\xb8\x94\x3d\x35\x87\xb4\xbe\xc7\xad\x31\xf4\x49\xeb\x83\x31\xf5\xda\x32\xf7\x92\xe3\xd7\xa1\x84\x47\x53\x0f\x89\x7e\x5f\xad\xea\xd4\x2b\xd1\xaf\x55\x71\x1a\x12\xff\xf6\x2e\xe8\x76\x04\x37\xad\x79\xab\xc6\x99\x7d\x0c\xd2\xb4\x10\x10\xe7\x41\x33\x6e\x96\x5e\x7c\x68\x99\x66\xa7\x49\x83\xd1\xc8\x50\x66\x77\x6d\x1e\xe1\x06\x19\x75\x45\x0e\x55\xf9\xca\x8c\xc2\x8c\x69\x17\x42\xb3\xd8\x67\x3a\x21\x9a\xfc\x7a\x59\xbd\x6b\xa5\x20\x2b\x8a\x35\x46\x81\xb9\x3d\x4a\x52\x68\x2c\x39\x4a\xb3\xa4\xb0\x8c\xb4\x72\x7e\x55\xa3\xe5\x73\xb0\x3c\xd2\x2f\x7c\x51\x2c\x6a\x8f\x68\xa2\xa4\xc6\x46\xe7\x7e\x05\x71\x8e\xd4\x8b\x31\x81\xf0\x9e\xe6\x79\xb1\x46\x1f\x7e\x3e\xf5\x3d\xfc\x97\x9e\x68\x83\x01\x96\x4c\x98\xb9\x61\x2e\xf7\xa0\xe2\x5c\xc3\x62\x85\x75\xc7\x82\xcb\x64\x58\xcd\x6c\x01\x57\x09\x21\xef\xd4\x4c\x8e\xc2\x52\xc1\x34\x0e\x55\xe7\x53\x96\x58\xd9\x3b\x84\x37\x59\x0e\x1a\x16\xc9\x05\x3e\x4c\x51\xb6\xb8\xe6\x09\x03\x9a\x40\xa1\x71\x35\x42\x8e\x8b\x94\x5f\xf3\xb4\x28\xfd\x56\x9e\xdb\x58\x62\x0c\xa0\x5f\x78\xaa\x5f\x55\xcc\xe7\xf2\x86\x30\x6a\x0f\xc5\x4a\xba\xa5\xd7\x07\xd6\xe5\xca\xc4\xef\x91\x75\x3b\xd7\x5c\xd4\x51\x81\x6c\xc3\xad\x87\xa4\xd7\x21\xe9\x75\xe3\xe8\xb4\xb5\x76\xad\xca\x52\xd0\x10\x12\x24\x7f\x47\x09\x4a\x91\xce\x05\xe0\xe0\x05\x8d\x9c\x5e\x3e\xd5\x33\xa2\x7d\xc1\x85\x12\x42\x5d\x12\x99\x65\x2c\x31\x70\xbf\x35\xb9\x61\x59\x46\x10\xdb\x30\xc8\x33\x5b\xba\x1c\xa7\x55\x7f\xce\x36\xed\xca\xee\x2e\x93\xb3\x97\x6d\x71\x73\xb6\x8f\x36\x81\x66\x95\xbc\x57\xea\x67\x1f\x47\xbd\x57\xed\x3b\x73\x18\xc3\xc0\x20\x38\x62\xe1\xe2\xe8\x81\x3f\x08\x47\x5b\x2a\xc9\x63\x65\xec\x96\x15\xe3\x11\xaf\x46\x2d\x5d\x6c\x5c\x0b\x30\x33\x97\x9a\xc5\xf3\x53\x05\x77\xf4\xee\xf5\xab\xd2\x40\x79\x1b\xd2\xed\xce\xee\x43\x2f\x39\xa3\x3a\xb8\x62\xe6\x53\x8c\xa6\xa5\x81\x33\xf6\x56\x96\x49\x86\xeb\x12\xf7\xf6\xc0\xd5\x2a\x96\x9b\xdb\x00\x67\xb3\x8c\xda\x98\xcb\xdc\x2a\xc9\x16\x08\x12\x00\x57\x5b\x21\x68\x25\x4f\xf3\x61\x24\xe1\xd6\xd9\xf9\xad\x72\x73\xcb\x2d\x47\xb2\xe1\xfe\x37\x7e\xaf\x19\xbc\xe1\xc3\xcd\x66\xf3\x8d\xd3\x7a\x47\x0f\x2f\xad\x77\xf5\x05\xbf\xd7\xa7\x93\xf0\x3b\x6a\xe4\x5f\xbb\x64\xe5\x91\xb0\xde\xce\xb7\xcb\x41\x21\x4c\xa4\x16\xa6\x1c\x42\x4a\x28\xd1\x5c\xcc\xb2\x32\x12\x0b\xaa\xa1\x7f\xb6\x2b\xfc\x0c\x4c\x10\x1a\x7c\x01\xf3\x83\xf4\x10\x48\xec\xe0\x2c\x4b\xab\x81\xc2\x56\x5c\x95\x22\x61\x2f\xfa\xd4\xce\x77\x62\xf1\x4e\x84\xcb\xc6\x50\xee\x75\xb7\x2d\x54\x6f\x87\xf0\x77\x14\xf2\x6a\xf1\x86\xbe\x9d\x56\xff\xb8\x43\xab\x6f\x80\x32\xa1\x2b\x01\x65\x01\xca\xb1\xce\x97\xc8\x05\x00\x51\xc9\x85\xfd\x77\x2e\x05\x64\x30\xb5\x07\x6c\xdf\x71\x74\x78\xdb\x75\x07\x54\xdd\xc5\x91\x85\x38\x8a\x7e\x07\x16\xec\xb4\xe5\x71\xb9\x73\x72\x02\x28\x76\x37\x71\x68\x7c\xb5\x36\xb6\x7e\x44\xe6\xdc\xe8\xc3\x9c\xa9\x43\xcd\xec\x0d\x85\x2b\x20\xc8\x89\x98\x29\xa6\xfd\x2b\x6d\x30\xb0\x84\x71\x27\x10\x38\x95\xa9\xee\xbd\x7f\x20\xc7\xeb\x77\x0f\xc6\x03\xa8\x39\x52\x2d\xf6\x83\x77\xdd\xa9\x4a\x55\x38\x80\x1f\xd1\x15\xa3\x3f\xcc\x95\x4c\x98\xd6\x2c\x8d\x20\xe3\x0d\x37\xe8\x2f\x09\x36\x9d\x10\x89\x6a\xe4\x0c\x65\xe2\x09\x9b\x4a\xc5\x5c\x03\x4b\x8b\xd0\x54\x95\x9a\x57\x6c\xb0\x69\x81\xaa\x57\xe1\x76\x02\x59\x5f\xf1\xbd\x37\x74\x83\x02\x19\x43\x38\xfc\xe8\x89\xa2\xef\xfe\x80\x82\x7f\x59\x2c\x88\x8b\xd2\xee\x6f\x89\x25\x18\x30\xf4\x0b\x02\xde\x50\x3b\x57\x44\x2a\x36\x3e\x2f\x28\x31\xf3\xe6\xf4\x93\xbd\xc6\x0b\xb6\x90\x6a\xf9\x62\x4c\xce\x8b\x48\x81\xb5\x6a\xc7\xa4\xe0\x19\x66\xde\xc5\x5f\x43\x05\x66\x4e\xaf\xdd\x6a\x69\x16\x4a\x42\x60\x5b\x1d\x0d\xf1\x84\x32\x47\x41\xdd\xee\x2a\xd8\x14\xec\x4c\xc2\x92\xab\x2c\x04\xf1\x97\x62\xbc\xb7\xcd\x5d\x02\x5e\x5e\x1e\x90\xf5\xb5\x9f\x7a\x7a\x77\x7d\xec\x7c\xd5\xfe\xe5\xa6\x06\x6b\x4e\xc9\x6d\x5c\xc7\xc9\xcb\x03\xa4\x23\x97\x07\x23\x72\x79\x70\x8a\x8b\x91\x8a\x5c\x86\xfe\x0b\xf6\x09\x40\x7a\x41\xf3\x1c\xd6\x0d\xb7\xa7\xca\xc5\xdc\x09\x34\xa6\x66\xee\xc4\x8d\xbc\x07\xe6\xdf\xa5\xb6\x57\x62\xed\xab\x5a\xba\x15\x2b\x0f\xab\x6a\x5a\x4d\x02\xb8\x67\x06\xde\x1d\xee\x34\x30\xf0\x07\xc5\xc0\xbb\x0f\xec\x69\x33\xf0\xee\xfd\x0f\x0c\x7c\x7b\x06\xde\x0d\xdd\x81\x81\x3f\x0e\x06\xee\xf1\x6f\x73\xf6\x5d\xeb\x95\xfc\xb8\x59\x78\x83\xf2\xd3\xce\xc8\x57\x07\xf7\x49\x3b\xae\x50\xd5\x1d\x91\xd3\xee\x80\xb1\x7b\x4c\xa8\xa3\xed\x59\xa8\x95\x64\x33\x5f\x9d\xb1\x9a\x7b\x16\x39\xb0\x15\xcb\xd8\x35\x15\x06\x4d\x60\x77\x95\x94\xb6\xb3\xf4\xe7\xb6\x42\x20\x77\x92\x76\xa6\xa3\x84\xb3\xb2\x08\xc8\x21\x13\x89\x4c\xd1\xf1\xb2\x70\xd2\xa6\x0f\xeb\x89\x50\xb3\x56\x4b\xc4\x7b\x80\xe3\x3c\x34\xf2\xcf\x39\x13\x44\x33\x33\x82\x56\xc7\x9a\xe4\xd4\x32\x3c\xdf\xe9\x30\xb4\x7d\x27\x50\x19\x84\x19\xb4\x75\x56\x32\xa6\xb0\x71\x65\x70\xc4\x87\x1c\xb8\x30\x20\x91\xa0\x27\xc0\x97\x0a\x01\xdf\xfa\xcf\x42\x9b\x68\x16\x38\xbf\x38\xbe\x01\x1a\xba\x52\xb4\x8f\xe1\x34\x6b\xb3\x94\xef\xd5\xa1\xea\xee\x44\x69\xa3\x07\xc5\x20\x6d\xca\xa3\x5d\xb3\x85\x47\x98\x68\xbd\x05\xdd\xc7\xd3\x6a\xbe\xe8\x2d\x20\xd9\x1b\x9b\xe8\xd2\xf7\x56\x07\x77\x67\x58\x0f\xbc\xa2\x23\x33\x79\x1f\xcc\xe2\x11\xa7\x64\xb7\x90\x84\x81\xfd\xdd\x35\xfb\xf3\xe2\xee\xaa\x6c\xb8\x77\xc6\x38\x1e\x38\xe3\x1e\x59\xc9\xde\xf2\xe3\x57\xbc\x0d\xed\x9c\xa4\x3e\x74\x43\x75\x63\x4f\x66\x8c\x5d\x5b\x31\xba\xa3\x8d\xf7\x45\xd5\x06\xa2\xf6\x04\x65\xfa\x07\x5d\x86\x69\x3f\x32\x4d\x4f\xd2\xb7\x4e\x66\xae\x40\x6d\x4f\xe4\xae\x4b\x70\xae\x0f\xdd\x46\x6c\xde\x0f\xcd\x7b\x72\x85\x8c\x1e\x9d\xfd\x65\x20\xd5\xeb\xe5\xcf\xba\xa8\xf0\xa8\xa4\xcf\x5b\xd1\xaf\xa6\x9b\xb7\x4b\x02\xd6\x18\xc3\xd0\x4e\xc4\x9a\x86\xaf\x95\xdb\xea\xce\x91\x06\x5f\x07\x84\x60\x76\x79\x49\x46\x3b\xf2\x88\xec\x4c\xbe\x1b\x93\x07\xeb\x5d\x21\xe4\x67\xb1\xa3\x82\x9b\x3d\xaa\xbc\x8a\x16\x2a\x57\x16\x9d\xba\x95\xa2\x5d\x61\xe0\x51\x67\xa6\x5e\xbd\xbc\x56\x5f\xdb\x40\x62\xa9\xa3\x6e\x1b\xef\xe8\xec\xe6\x84\x93\xf9\x46\x4c\x95\x4f\x86\x6f\x78\x32\x88\x35\xf6\x76\x1c\x6d\xfc\xc8\x45\xc7\xfe\x07\x01\xc0\x57\xf4\xc6\x4d\xf7\x9c\x0b\x6d\x18\x85\xda\xca\xeb\xcf\xe5\xc5\x88\x68\xbe\xe0\x19\x0d\x1c\x23\x5c\xaa\xd5\xfc\xba\x2d\x88\xfb\xce\xab\x0a\x37\xba\xae\x7b\xd3\xed\x9e\x02\xe8\x83\x23\xde\x0f\x95\xe2\x6e\x2a\x41\xf7\xa7\x63\xad\xef\x6d\x22\xfc\xde\x1f\x25\x2b\xbd\xf1\x10\xea\x3d\x61\xc4\xcd\x4f\xf8\x94\x7c\x5e\xa5\x0a\x9f\xc9\x8d\xc5\xa7\x52\xf2\x2b\xfd\xf1\x16\xf6\xfe\x2e\xc6\x89\xc6\xfb\xea\x6a\xf7\x88\x95\x9d\x07\x47\x30\x03\x16\xd0\xec\x86\x2e\xb5\x93\x3f\x2c\xba\xcd\xa8\x4a\x21\xb1\x3d\x14\xfd\xe9\x3e\xef\xc6\x53\xbb\x27\x49\x65\x13\xfa\x7f\x67\x62\xfd\x77\x43\x93\x86\x3e\x67\x17\x9d\xc7\xd0\xa4\x61\xed\xb6\x9e\x78\x93\x86\xef\xbe\xf6\x26\x0d\x7d\xbd\x14\x3b\xf0\x9b\x7d\xe7\x02\xcb\x4f\x02\xc6\xf4\x28\x30\x4d\x02\x7e\x55\x94\x06\xf7\x70\xb2\x44\x72\x6e\x85\xbe\x60\x17\x5b\xa3\x08\xed\x70\x17\x17\x75\x7f\x5b\xab\xbb\xaf\xcc\x8d\x5b\xd1\x7a\x9a\x4c\x60\xdb\xda\x8f\x56\x6d\xdf\xfb\xbc\x27\x8f\xb4\x20\xff\x0e\x11\x00\x58\xf7\x06\xdd\xf5\x2a\x05\x73\xaa\x7b\xef\x40\x83\x15\x3b\xf4\xa3\xbc\x8c\x5b\x23\xb3\x3f\xba\x5d\x62\xb3\x2b\xb4\xc2\xc5\xec\x14\x1a\xae\xaf\xab\x4e\x51\x1b\xea\xea\xc0\x61\x1a\x81\x6f\xd7\x8e\x05\x3f\x0a\x6d\xc8\x5c\x66\x29\x31\xca\x9d\x2a\x8d\x34\xe4\x9c\xfa\x1a\x82\xd7\x34\xeb\x81\xb2\x39\x53\x5c\xa6\xe7\xe0\xaa\xe9\x4a\x90\x3f\x8d\xc7\xd6\x28\xce\x0d\x17\x29\xe4\x60\x63\xa2\x77\x54\x9c\x69\x1e\x36\xe0\xac\x83\x61\xf1\x63\x52\x9d\x11\xb6\x36\x61\x64\xa6\x18\x05\xe3\xfa\x9c\x0a\xf2\x1b\x53\x12\x75\x7d\x57\x9f\x4a\x58\x1e\xc4\x7e\x2d\x68\x06\xd5\x70\xfe\xfc\xf2\x25\x79\xfe\xfd\x4b\xb2\xe0\xe2\xc5\xee\x2d\x5b\xdd\x21\xe3\x17\x2e\x64\xdc\x1b\xea\x11\x2c\x28\xa0\xea\x4a\xbf\xfd\x2d\xac\x93\xd7\x4d\xda\x61\x6d\x01\xa8\xbe\x55\x2e\x3e\x5d\xf8\xf2\xfc\xae\xd4\x0b\x1e\x05\xd7\x56\xe1\x5a\x70\x13\x15\x21\x70\x4b\xb3\x1a\x54\x2b\xf8\x77\x02\xd5\x9e\x37\xb3\x5e\xae\x14\x21\x30\x6a\x43\xd8\xfd\x5c\xd7\xb3\x22\x63\x6b\x6b\xc9\x54\x47\x96\x95\x90\x74\xe5\xd8\x43\xf3\x57\x7b\x1b\xa4\x60\x24\xe5\x0a\x3b\x06\x42\x1c\x88\x66\x04\x5f\xa7\x8a\x11\x9a\xe7\x99\xbd\xbf\x74\x6a\xa0\x06\x14\x16\x8b\xb0\xb3\xbc\xad\x95\xa5\x00\xd1\xcb\xdb\x8c\x3c\x51\xff\xe9\xf4\x18\xe6\x5c\x42\xf9\x28\xac\x3d\x15\x2f\xe5\x9a\x65\x32\xe1\x66\x69\x8f\xdd\x61\x28\x88\x75\x31\x82\x72\xa6\xa3\x39\x72\xc5\xac\xa6\x40\xa6\x99\xcb\x38\xac\xbe\x89\x7e\x39\x3a\x29\x0d\x46\x48\x01\x46\x44\x4b\xcc\x59\x33\xcd\x65\xaf\x5c\x2a\x1b\xda\x60\xb4\xa1\xc2\x64\xcb\x11\x71\x86\x81\x11\xce\x4b\xa7\x4c\x07\xb6\xe5\x0b\x56\x36\x7d\x0d\x4b\x3b\x48\xcd\x44\x1f\x52\xe7\x36\xd9\x71\x9f\xfc\xb0\x6a\x21\xda\x5c\x1a\xcb\x95\x22\x53\x1f\x8c\x83\x7a\x3a\xf6\x6e\x59\x90\x79\x77\x5d\x5a\xa8\x08\xb8\x63\x72\x1c\x97\xbf\x72\xb4\xd0\x5f\xb6\x40\xb9\x47\x58\x99\xe0\x86\x6b\xe6\x4f\xb4\x82\x63\xde\x9b\x94\x72\x9d\x50\x95\xa2\x01\x8d\x8b\x6b\x9a\xf1\x74\x5f\x95\x67\x1a\x58\x58\x34\xe7\xc6\xd5\x67\x90\x5f\xaf\xf0\xc2\xa6\x43\x88\x87\x36\x51\x57\x04\x7a\x95\xaf\x38\xf0\x8f\xc9\xc9\xd4\xa3\xd8\xc8\xc5\xc0\x41\xf5\x34\x87\x50\x1f\xe8\x17\x9c\x17\x7d\xd1\x7e\xf6\xed\x4a\x50\x97\x18\xf9\x4f\x40\xc8\x7e\x8c\xf4\xbc\xf5\xc5\x60\x3f\x0a\x17\x47\xbb\x07\x25\x47\xcd\xb1\x3c\x91\x55\xfe\x99\x48\x5d\x35\xc4\xb8\xfe\x97\xb0\x0a\x98\xb2\xc2\xec\x9c\x67\x25\x0d\x28\x72\xcb\x39\xfd\x5f\x58\x5c\x6e\xcd\x4a\x1a\xd9\x41\xcc\x7a\x3b\x38\xf3\xf7\x7f\xb4\x9c\xd9\xa2\xfc\x5c\x16\xea\x45\xf5\x58\x0a\xcd\x56\x8f\x46\xbf\x26\x87\xe4\x47\xb7\x46\x46\x8a\xfc\x35\x79\x49\x9e\xf3\x31\x1b\x13\x21\x6b\xf7\x9f\x6b\x92\x4a\xc1\x5e\x8c\x2b\xaf\xd8\x4d\xbd\x26\xdf\xbf\xf4\xaf\xad\xa3\x1b\x76\x94\x07\x6e\x26\xc5\x6c\x47\xd2\xc3\x0a\x9f\xbb\x0d\x47\x1a\xba\x01\x75\xd0\xf4\xa1\xb6\xf7\xd0\x0d\x68\x28\x69\x4d\x6e\x19\x9a\x35\x74\x03\xda\x84\xfc\x0e\xdd\x80\x76\x03\xc6\xa1\x1b\x50\x9f\x6e\x40\xdf\xdd\xaa\x48\x7a\x2b\xf4\xff\xea\x74\xd3\xcd\x65\x09\xff\x66\xa7\xd6\xeb\x50\xdb\xe7\xa3\x08\x32\x91\x66\x4e\x3e\xe5\xc0\xf6\xde\xca\x1b\x51\xea\xc3\x9a\x3c\x87\xc9\xdd\x43\xf8\x37\x8c\x80\xac\x78\x0d\x85\xa3\x19\x94\x15\xce\x96\x7d\xdc\x09\x61\x82\xdd\x20\x70\xcd\x30\xb0\x16\x65\xc3\xd2\xb9\xae\xd9\x7f\xe0\xf6\xfb\x9f\xde\x82\xf8\xbd\x5e\x53\xe1\x58\x23\x20\xcb\x62\x7f\x4f\xea\x62\x64\xe2\xf2\xcf\xe8\x6c\x47\xd3\x75\x24\xd7\x36\x8b\xbe\x20\x19\xe3\xe7\xe6\x7c\x36\x67\x2b\xca\x44\xa0\x52\x50\xb7\xf1\xfb\x97\x2f\x35\x92\x33\x2c\x81\xbe\xa6\xd4\xf2\xa7\xfc\x7e\xc0\xfd\x29\xef\x00\xf6\xa7\xbc\x0f\xa8\x3d\x40\x2c\xe6\xbe\xbe\x14\x84\x7c\x1b\x6a\xa5\x5b\xfd\x03\x02\x7a\x41\xcb\xf9\x3d\xc6\x74\xe7\x4c\x91\x3f\x06\x1d\x02\x5f\x48\x65\x01\x41\x3e\xab\x45\x28\xeb\xa3\x3f\x36\x68\x34\xa8\x87\xde\xa9\x2e\x31\x74\x05\x1b\xba\x82\x0d\x5d\xc1\x86\xae\x60\xbb\xee\x0a\xd6\x4a\x70\xb6\xeb\x0a\x66\xdf\x1a\x3a\x83\x3d\x25\xeb\xc1\x23\xec\x0c\xd6\x6e\x90\xbb\x8d\x55\x7c\x30\xa3\x3c\x15\x33\xca\xd0\x19\xac\x82\xd1\xb7\xe8\x0c\xb6\x27\xa5\xf7\xa1\x77\x06\x9b\xac\x2a\xe5\xbd\x70\x72\x2b\xc5\x7f\x1d\x92\x4e\xee\x5d\xc7\x6f\xd5\xd7\xea\x7e\xd1\x69\xe4\x2f\x2a\x27\x46\x35\x99\x2a\xb6\xa2\x53\xc5\x24\x60\x68\xc4\x36\x34\x62\xfb\xaa\x1b\xb1\xb5\xde\x32\x37\xd8\x03\x5d\x33\x63\x4f\xf5\xcf\x2f\x7f\x17\x72\x41\xde\x9c\x7e\x22\x45\x99\x2f\xb4\x47\xa1\x6b\xe8\xe9\x36\xf4\x74\x0b\x83\xf4\xae\x7b\xba\xad\x4f\x66\xe9\xb4\x3d\x0e\x3d\xdd\xf6\x67\x2a\x18\x7a\xba\x3d\x96\x9e\x6e\x3d\xcc\xcb\xb7\x21\xdd\x4f\xaf\xa7\xdb\x77\x43\x4f\xb7\xa1\xa7\xdb\x66\x1b\x1f\x7a\xba\x0d\x3d\xdd\x1e\x7a\x4f\xb7\x86\x84\x9f\xae\xd6\x2e\xe5\xd0\x8a\x69\x3d\x24\xf9\x60\x45\x05\x90\x71\x2a\x45\x9d\x7c\xd2\xe3\x5e\x8b\xcc\x54\x72\xa5\x36\x77\x46\x7d\x15\x45\xb4\x9e\x62\xb1\xac\x9d\x27\x00\x0f\xad\x0e\x7b\x24\x44\xaf\x43\xe7\xa1\x53\xd2\xfd\x76\x4a\xfa\xee\xab\x6f\x75\xf8\xdd\xd0\xea\x70\x4f\x9d\x92\xbe\x1b\x5a\x1d\x3e\xd5\x4e\x49\x43\xab\xc3\xba\xaa\xff\x24\x5a\x1d\xb6\x54\x6a\x18\x18\xf8\xa3\x61\xe0\x5f\x61\xab\xc3\xef\x86\x56\x87\x77\xc5\xc0\x87\x56\x87\x4f\x85\x81\x0f\xad\x0e\x57\xcb\x31\x75\xb1\x70\x1c\x56\x31\x67\xc5\xf7\x71\x14\x7c\xe8\xee\x4f\xa9\xc2\x2f\x91\x47\xdd\x31\xf9\xaa\x51\xa4\x77\x43\xaa\xfe\x25\x40\x57\x5f\x78\x14\x45\x8c\xc9\x1b\xbc\xbc\x50\x89\x3a\x5b\x12\x28\x84\x00\x43\xce\x6a\x6b\x8a\x22\x26\x76\x6d\x93\x7f\x68\xdd\xbf\xee\xaa\x53\x64\x5f\xfa\x52\x86\x9d\x06\x17\x65\xb4\x06\x4f\x82\x22\xd4\x1b\x91\x5f\xc2\x9d\xa8\x54\xaf\xdc\xd8\xf8\xda\x58\x3a\x67\xdf\x67\x72\x7d\x77\x4d\xfd\xf6\x43\xe1\xe2\x7a\x63\x5d\x64\x2e\x1a\x0b\x35\x9d\xda\x8a\x8e\xf5\xb7\xd4\x6f\x4c\xbb\x1e\x79\xf9\xe2\xa7\x4e\x8e\xee\xac\x73\xca\xfd\x5f\xf6\x2d\xdb\x0f\xae\xdc\xf6\x5b\xdc\xe0\xa7\xda\x8e\x39\xb4\xb0\xfb\x79\x77\xba\xf0\xba\x98\xaf\x46\x0c\x7b\xc4\x35\x11\x63\xbe\xfd\x84\x0b\x94\xd6\xd1\x64\x75\xdb\xab\xc7\xb9\x4b\x06\xfa\xa4\xdb\xdc\x3e\x91\xca\xa6\x03\x29\xb9\xe7\xf2\xaa\x6b\xce\x62\x97\x77\x71\x68\x13\xba\x5d\x9b\xd0\x47\x89\x94\x5f\x09\x7f\xbb\x93\x02\xdc\x5f\x57\xc3\xc9\xc7\xce\xce\x1e\xf1\xa5\xbd\x35\x27\xd9\x25\xd6\x0f\x5d\x0a\x87\x2e\x85\x8f\xa0\x4b\xe1\xd3\xe4\x6b\xf5\xde\x45\x7b\xe0\x6a\x43\x37\xbb\x87\x74\x33\xbf\x1a\xf6\xdc\xb7\x3d\xd2\x83\xea\x19\xb6\xf5\xc5\x9b\x50\x93\xcc\xc7\xd7\xaf\xc6\x7f\x97\x93\x35\x97\xeb\xef\x72\x12\xbb\x85\xcc\x4a\x55\xe2\x38\xb6\xe9\x3f\xe5\x64\x28\xe3\xf3\xa0\xcb\xf8\x0c\xd5\x6b\x9e\x4a\xf5\x9a\x9e\x45\x80\xcf\xab\x45\x7f\x9f\xe9\x47\x5d\xf6\x37\x26\x5a\x9d\x75\x7d\xcf\x2b\xb5\x7c\x1d\xa5\xf6\xa9\x84\x71\x49\x14\x0a\x84\xeb\x8e\x0b\xf9\xee\xb4\x8e\x6f\x05\x2e\xdd\x6c\xf3\x4d\x43\x72\xf5\xfd\x82\x60\x85\x09\xee\xaf\x0e\x12\xc0\xaa\xb9\x02\x92\x65\x85\x95\x07\x71\xa5\xa3\x57\x1b\x14\x39\x8a\xcf\xa3\x4f\xc9\xce\x78\x58\x14\x4b\x1c\x27\xc1\xb3\xf2\x98\xfa\xd5\xde\x3c\x55\x72\x72\xe7\xc9\xa7\xef\x5b\x8a\x6b\xde\x50\x4d\x92\x39\x4b\xae\x5a\x13\x40\xef\xb7\x5c\x68\xdb\xba\x5d\x75\xcb\x35\xf5\x40\xdb\x8a\x15\xf5\x2a\x08\xfa\x53\xb1\xa0\x82\x84\x1a\xa0\xa1\x3e\x28\x2a\x2f\xab\xf5\x3f\x6f\x5f\x71\xb3\x57\x05\xd0\xe7\x13\xc5\xd9\xf4\xc5\x03\xa8\xfd\x79\xde\x5c\xed\x73\xe4\x03\x1c\x9b\x8a\x7e\x6e\xa3\xb0\xf7\x6c\x1c\x26\xa7\xf6\x02\xc6\xeb\x78\x23\x17\x79\xc6\xec\xed\x54\xe4\x47\xca\xb3\xfe\x9d\x69\x7a\xca\xfd\x3b\x2e\xfd\x19\x53\xa6\x8e\xda\x9e\x6e\x04\xca\x82\xae\xa4\x89\xe3\xa4\xff\x29\x27\x43\xc1\xce\x87\x2d\xe9\x6f\x5d\xb0\xf3\xef\x95\xb3\x6d\x9d\x6b\x53\xb1\x64\x28\xba\x39\xa8\x2d\x7d\x8b\x6e\x9e\x37\x17\xd9\xbc\x07\x85\xa5\x27\x91\xbe\xf3\x62\x9e\xeb\x85\xd8\xf5\x25\x3b\xb7\x15\x64\x3b\xd2\xe1\xdd\x88\x48\x7c\x05\xcf\xca\x1c\xcc\x42\x84\x7d\x61\x49\x81\xa2\x20\xcf\x32\x92\x49\x79\x45\x32\x7e\xd5\xab\x07\x3c\x14\x33\x7b\xcb\x68\x9a\x71\xc1\x7a\xb6\x6c\xab\x98\xc1\x53\x6f\xac\xe2\x22\xf4\x10\x53\x2c\xa3\x50\x24\xcd\x31\x01\x6d\xa8\x32\x17\x28\x01\xba\x76\x88\x76\xdd\x96\x00\x4c\x98\x2f\xa8\xe6\x7c\x2c\x30\x7e\xa9\x0d\x5b\x10\xa3\xe0\x23\x92\x18\xa6\x16\x5c\x58\x39\x9d\x9b\x1f\x1c\xf1\xf1\x3d\xd9\x72\x69\xa5\xa4\x6b\x46\x7c\x38\x68\x7b\x20\x69\xff\x72\x23\xd1\x3d\x9d\xd0\xe4\x4a\x4e\xa7\xef\xf9\x82\xaf\x58\x61\xd7\x02\x26\x2e\xa8\x83\x3b\x71\x3b\x5c\x50\x75\x85\x14\x93\x6b\x80\xc3\x14\x65\x1b\xf2\x36\x2a\x83\xf7\xc7\x5d\x07\xc4\x26\x28\x4c\xf5\xa8\xd2\x55\x3b\xdf\x95\xfa\x40\xba\x48\x12\xa6\xf5\xb4\xc8\xb2\x25\xb1\x24\x4a\xcf\x59\x8a\x11\xaa\xfe\x64\x4b\xb7\x92\x2a\x04\x64\x2d\x42\x21\x47\x63\x5c\x12\xab\xe0\x19\x59\x30\x2a\x74\x89\x10\x6e\x56\xdf\x3a\x2d\x97\x29\xd1\x7c\x26\x68\xa6\x57\x1e\x67\x99\x0b\x42\x86\x82\x7e\x98\xf3\x98\x53\x45\xb3\x8c\x65\x5c\x2f\xec\x07\xc0\x86\x8f\xf3\x38\xf4\xc0\xe8\x8f\xca\x2a\x5e\xc5\x6b\x88\x27\xe0\x1a\x1d\x10\xe8\xe3\x7b\x15\x2a\x61\x46\x8b\xc0\x77\xda\x17\xe9\x20\xd1\x48\x57\x1b\x1a\xfc\x27\x52\x24\x2c\x37\xfa\xe8\x46\xaa\xab\x4c\xd2\x54\x1f\xb9\xda\x3f\x19\x53\xfa\xc8\xca\x84\x87\xaa\x10\x87\x46\x1e\x96\x07\x79\xb4\xf3\x42\xa8\x54\x14\xb4\xac\xa9\xd2\x55\x08\x36\x1e\xec\x4b\x15\xe9\x4a\x59\x20\xa8\x50\x84\x25\x54\xd0\xaf\x03\x10\x73\xaf\xe8\x31\x79\xcf\xec\x39\x7d\xae\x4e\xf5\x19\xeb\x9b\x90\x42\x40\xf9\xd7\xa5\x2c\xc0\x65\xe3\x7b\x64\xdc\x58\xc8\xfb\x1f\x53\x59\x56\x45\x99\x5a\x4d\xc5\xea\x0a\xae\x3c\x4a\x44\x49\x72\x9e\x5c\xf9\x65\x14\x82\xff\x5a\x38\xd2\xe4\x2e\x20\xe0\x51\x9e\x33\xc8\xcf\x02\xb7\x8e\x1b\x5b\x16\x25\x24\x86\x2d\x72\x2b\xcc\x8e\x09\x7e\xcd\x80\x76\x64\x9f\x16\x1a\xbb\x0a\x62\x8a\x97\xe6\x56\xdb\xb4\x6a\x9d\xfd\x28\x34\x9b\xc4\x0f\x46\x50\xa8\x37\x8f\x75\x1b\x1f\x13\x50\x73\x0a\x05\xab\x83\x35\xd3\xca\xdb\x40\x31\x13\x8a\x1d\x23\x39\xce\x85\x95\x4d\x2c\x82\xa0\x07\xca\x84\x4a\xcc\x98\x76\x96\x98\x6c\x39\x26\xe4\x27\x79\xc3\xae\x99\x1a\x91\xff\x29\x0b\x98\x46\xb3\x15\xc0\xff\xc5\xee\xe9\xb3\x25\xe4\x38\x9d\x05\xf4\x0d\xb3\xa0\x87\xbe\x97\x2e\xfd\x18\x32\xd5\xb2\x94\x7c\x66\x5f\x0c\x13\x1a\xc4\x93\xeb\x57\x13\x66\xe8\xab\xcf\xe4\xf8\xf4\x64\xbf\x28\xff\x4d\x09\xbb\xc3\xa5\x2c\xd4\xa1\xbc\x11\x87\xb9\x4c\x0f\x75\x63\x25\x20\x8f\xf6\x13\x29\x33\x46\x45\x4b\x52\x6d\x79\xf5\x37\x22\x8d\xbe\x60\xef\x2a\x89\x6c\x22\x86\x96\x12\x52\x03\x44\x09\xfd\x65\x86\x2f\x18\x86\xb7\x61\xe9\xca\xfa\xfb\x3e\x43\xda\x32\x56\xc3\x68\xba\x74\xb6\x2a\x1f\xa6\x50\xf6\x1a\x05\x64\x70\x6f\xdf\x58\xe4\x7c\xfe\x7c\x6c\xe1\x34\x8e\x88\x3e\x39\x24\x63\xd7\xe6\xac\x24\xe0\x2f\xc8\x65\xf1\xf2\xe5\xf7\x09\xc1\xe1\x11\x20\x5e\x8c\x08\xb4\x0d\x85\xe9\xec\x4e\xec\x29\x91\x8c\x4d\xa1\xfa\x6d\x0a\x75\x55\xcb\x05\x2c\xe8\x97\x98\x80\x3e\x2e\xaa\x77\xaf\xb5\xa9\x8e\xdd\xcd\xfe\xb5\x60\x6a\x49\xe4\x35\x53\x1e\x79\x68\x28\x19\x01\xd9\xa2\x81\x10\x61\x2d\x53\xf2\x11\x7c\xcd\xd9\xb2\x42\xe7\x34\x03\x3f\xa2\xd5\xa6\x20\xb1\xd4\x92\xa1\xa5\x2c\x36\x3e\x0f\xbb\x8e\x6b\xce\x6e\xe0\x60\xec\x55\xb3\x37\xff\xd0\x35\x95\x38\x42\x4a\x76\xf4\x0d\xfc\x37\x5c\xbc\x16\xab\xbb\xa7\x9b\x1b\xdb\xdd\x13\xa9\x98\x85\xe5\xa9\x4c\x2f\xdc\x1c\x9d\x6e\x89\xb7\x95\x52\x11\x40\xb6\x81\x88\xb9\x1b\x13\xe8\x98\x45\x6a\x27\x35\x43\xec\xf8\xfe\x39\x75\x33\x6c\x4c\xe6\x44\xee\xe3\xa9\x61\xea\x47\x27\x4b\x75\xa5\x13\x36\xbf\xe5\x62\x26\x9c\xbd\x61\xca\xc0\xe2\x0a\x76\xed\xbf\xcb\x09\xc2\x61\x4e\x75\x29\xb0\x95\x5a\xc3\x73\xc6\x81\x89\xac\xda\xdb\xb0\xf8\x7c\x84\x50\x5c\xbb\x02\xd9\x2d\x6b\xc0\x9e\xed\x76\x09\xf6\xa3\xee\x5b\xda\xd7\x45\x63\x19\x9f\x71\x17\x2b\x31\x61\xb5\x6e\xba\x29\xb3\xdf\x4e\x1d\x33\xf7\x53\x70\xed\xa2\xae\xdc\xe3\x11\x94\x7e\xb5\xfb\x4b\x96\x49\xc6\xc8\xac\xa0\x8a\x0a\xc3\x98\x76\xb1\x1f\x53\x2e\x68\xc6\x7f\x63\x4a\xbf\x08\xe7\x3e\x97\x42\x2a\xd7\x0e\xbb\xba\x99\x48\x54\xb0\x5f\xbb\x91\xe2\x99\x59\xb3\xb4\x26\x60\xf8\xfe\xcf\xe5\x2c\x13\x96\xc8\x05\x5b\xd9\xae\x9b\x85\xf0\xc5\x82\xa5\x9c\x1a\x96\x2d\x1d\xbc\xb8\x09\xa0\xb2\x0c\x21\xfe\x00\x14\xb8\x3e\xcc\xac\x9e\xed\xcb\x25\x43\x8e\xaf\xdb\x12\xb4\xa2\x77\xf6\x14\x38\x62\xac\x75\x0d\x4b\xb9\xb8\x78\x5f\x3d\x1c\x57\x26\x7b\x4f\xcd\x9d\x5b\x4c\xac\xfe\xfa\xef\xc2\xa8\xda\x19\xae\x14\xc6\xac\xc4\x55\xac\x7a\x7b\xfe\xde\x2f\xa0\x02\x94\xd3\x2e\xfb\x75\x45\xdd\xa3\xae\x73\x43\x60\xe0\x7b\x49\x70\x2c\x89\xcb\x5d\xfb\x73\xce\x22\xd0\x5a\x1a\x13\x44\x04\x2b\xec\x80\x33\xca\xd1\x91\x14\x8a\xd2\xb8\x2a\x36\xe1\xa2\xfa\x1a\xee\x1a\xbb\x64\xcc\x41\xf0\xd6\x87\x4e\x39\x96\x2a\x65\xca\xa7\x40\x6a\x66\x85\x0a\x7b\x60\xb9\x53\x29\xb4\x9f\x32\xce\x3f\xe5\x82\x9c\xfd\xf8\xe6\xfb\xef\xbf\xff\xef\x58\xcb\xd1\xdd\x13\x2e\xc8\xa7\x8b\x37\x2d\x3e\xa4\xde\x35\xab\x2f\x4a\x23\x76\x19\xeb\x85\xf5\x4e\x5d\xd3\x87\xd8\x42\xfe\xac\xe6\x58\xbc\x4b\x49\x68\x17\x96\xe4\x8d\x8b\x54\x57\x1e\x55\x6c\x6f\xb9\x9d\xf6\x70\xc1\xd4\x8c\x1d\x5e\xb1\xa5\x4f\x84\xef\x7c\x43\x1b\x7b\xe4\xb3\x25\x46\x57\xab\x59\x4b\xea\x10\x1a\x4d\x36\xba\x98\x20\x58\x61\x5d\x79\xc5\x68\x02\x56\x8b\x39\xd5\xac\xd9\xb9\xb4\x03\xc1\xd2\x9b\xbd\x1e\xd4\xed\xa4\xc9\x95\x90\x37\x19\x4b\x67\x65\xd5\x61\xe7\x78\x73\xf8\xf6\x80\xaf\x2d\xa8\x2e\x2c\xdd\xd5\xc1\x9f\xfb\xe9\xf6\xc4\x13\x37\xe4\x71\xa0\x44\x8f\xdf\x28\x29\xd6\x07\x0e\xba\x11\xfd\x83\x07\x13\x25\xc5\x10\x41\xf8\xe0\xfd\x8a\x83\x2b\xee\xa9\xb8\xe2\xbe\xea\x08\xc2\x0a\x19\xdb\x65\x28\xa1\x27\x63\x23\xc2\x45\x92\x15\x69\x30\xa0\x5a\x92\x5e\x64\xfb\x47\xb3\xbb\x88\x33\xac\x42\x6f\xbb\x80\xc3\x40\xef\xbf\xf6\xa8\x43\xcf\x4b\xdb\x1d\xb6\x00\xee\x2d\xbc\xb6\x95\x63\xea\x88\xf6\x89\x46\x35\x45\xfc\xf8\xd3\x1a\xc2\x7e\x1e\x36\x7b\xde\x3a\xec\xc7\x9d\xff\xae\x43\x7f\xaa\xe2\x62\x4f\x85\x6d\x10\x3c\x9e\xb4\xe0\x31\xc4\x00\xdd\x11\x4b\xe9\x88\x03\xda\x09\x5b\xe9\x88\x0a\x8a\x46\x6d\x18\x19\x04\x84\x18\x2c\x03\xdc\x79\x47\x42\xf7\x3c\x55\x88\x7e\x2d\xdf\xd0\xce\x95\x2c\x4f\x65\xc6\x93\x65\x6f\xc7\xa9\x4b\x09\x37\x8a\x51\xc8\x2d\xf4\xe6\xb2\xb0\x54\x5d\x9a\x67\xc9\x2f\x50\xc9\xd2\xa5\x67\x53\xc5\x5e\x93\x43\x72\x79\x70\x9c\x65\xf2\xe6\xf2\x80\x3c\x77\x7d\x23\x5f\xbc\xf6\x51\x20\x9e\xd0\xda\x2f\xa8\x42\x44\xf3\x67\xcb\x1f\xe0\xdd\x1f\xa5\x9a\xf0\xf4\xf2\xe0\x35\x99\xc2\xbf\x74\xbc\x06\x55\x08\x3d\x22\xfa\x8a\x63\xb5\x75\xc1\xbe\xc0\x6f\x84\x4f\x49\xae\xd8\x35\x97\x05\x78\x65\xc9\x9c\x6a\xf1\xcc\x94\xae\x94\x25\x33\x38\xfb\x19\xcb\x33\x9a\x30\x3b\x7d\x42\x45\xc2\xb2\x60\x0e\x8c\xcc\xc1\x3e\xe2\x40\xe1\x60\x8d\x67\x60\xe6\x84\x12\xc1\x6e\x88\x14\x5b\x94\x78\x44\x6b\x98\xdd\xfa\x4f\x5c\x1b\xa9\x96\x7d\xe2\x95\xaa\x46\x12\x9c\xa2\xdc\x94\x0f\x29\x50\xcc\x50\x2e\x9c\x5f\x02\x18\x00\x50\x66\x6c\x62\x93\x72\x6d\x29\x7f\xc1\xf5\x3c\x34\x92\x65\x5f\xf2\x8c\x27\xdc\x80\x57\x04\x76\x0a\x7d\x55\x7d\xae\x6f\x35\xce\xe9\xd5\xce\xad\x6e\xff\x29\x27\x17\xdb\xfa\x1c\xab\xb7\xf0\xef\xe5\x4c\x7d\xb5\x18\x56\xba\xfd\xfb\x79\x1e\x1d\xc6\xb6\x99\xbb\x9c\x62\xd3\xe3\x20\xfd\x50\xc2\x05\x4c\x4a\x10\x92\x23\x08\xf4\xf0\xd4\x9c\x89\xf1\x0d\xbf\xe2\x39\x4b\x39\x1d\x4b\x35\x3b\xb2\x7f\x1d\xd9\xe1\xdb\x25\x19\x28\xbb\x8b\xcd\xa2\x07\x7f\x76\x4d\xac\x48\xea\x5e\x8b\x03\x07\xa1\x83\xb5\x9b\x36\x00\x92\x4f\xed\x0d\x59\x70\xad\x99\x0e\xdb\x4c\xd1\xba\x09\x45\x35\xc5\xd2\x65\x53\x8c\x09\xf9\xc0\xa1\xf5\x12\x20\x6f\x44\x52\xc2\x39\xc8\xc2\x97\xac\x74\xf8\x2e\x05\x5b\xeb\x9c\xd9\x2a\x68\xb0\x8c\xb0\xb8\xd5\x95\x2c\xa7\xb9\xeb\x6b\xf9\xfd\xee\x8d\xe1\x85\xce\x59\xa7\x94\x89\xce\xcf\x8c\xce\x88\x61\x59\x16\xcc\x9a\xce\x30\x0d\xb5\x44\x70\x1e\x2b\x0d\x6a\x2b\x08\x56\x58\x07\x38\x9a\x53\xc9\x5c\xe3\x84\x3c\xcf\x96\x90\x4e\x94\x29\x1f\x3f\xa3\x4c\xec\xfa\xd6\x63\x52\xd9\x36\x84\x90\xb5\x5c\x85\xd5\x10\xa2\x9e\xc2\x4b\xb8\xc4\x2d\x44\xaa\x4b\xac\xd9\x4c\x64\xe8\x72\x91\x56\xc6\xf5\x70\x93\x6e\x62\x3a\xee\xe3\x2b\x3d\x0e\x5a\x91\xc3\x57\x00\x7c\x23\x97\xdc\x95\xbe\xe4\x23\x49\x5a\x4b\xd2\x6d\xa1\x31\x61\x27\x48\x3c\xd8\xbb\x76\xf1\x9c\x44\xad\x3c\x80\xa1\xdc\xd0\xa6\x4e\x94\xde\xe1\x53\x89\xd7\x0d\xf4\x73\x17\xa5\x57\xd7\xb3\xcb\xb5\x6e\xfa\x78\x64\xad\xc3\x8b\x55\x11\x5c\xd4\x8a\xb3\x37\x40\x34\x2f\xec\xd4\xf3\x51\x50\x14\x69\x08\xca\xec\x55\xd4\xed\xc1\xd9\x78\xa3\x38\x61\x5d\xdd\x19\x28\xc3\x65\xc4\xe9\xe3\x35\x05\xef\x36\x99\x7c\x5d\x50\xf5\xc3\xb0\x6a\xb6\xdd\x94\xc4\xe2\xe4\x14\xab\xe6\x94\x24\xbb\xfc\xf1\x9c\xcf\x2c\xd5\x3b\x43\xd3\xc6\x9a\xab\x53\x46\xb8\x51\x12\x4d\x0a\x61\xe8\x96\x6c\x3a\xe3\xc8\x60\x48\x7c\xc8\x86\xc4\xc1\xdc\xf6\x54\xcc\x6d\x11\x0f\xd8\x1d\xf1\xdc\x8c\x58\x74\x92\x57\xab\x53\xc4\xa4\xc2\x1d\x28\xe1\x46\xb3\x6c\x8a\xc9\x0f\x62\x19\xf7\xa9\x8d\x7a\x85\xb5\x29\xa6\xdb\xf9\xb8\x36\xdc\x59\xb7\xf3\xeb\x2d\x53\xfc\x1a\x62\x49\x4a\x91\x08\xd3\xf9\xa3\x0e\x04\x9b\x88\x3a\x3b\xb4\x21\x56\x36\x8b\x17\xa0\xc5\xa2\xd8\xca\x07\x76\x67\x5f\xdc\x0c\xf2\x8d\x75\x35\xd6\x15\xc4\xf8\x04\xd4\xe0\xae\x05\x61\x2b\xea\x6a\x43\x17\x79\x28\xa3\x00\x12\x30\x92\xa6\x90\xe1\x93\xac\xc6\xb4\x6d\x5e\x4d\x62\xde\x5c\x4d\x02\xec\x76\xd5\x3a\x12\x11\xe2\xa1\x1e\xb5\xa7\x42\x12\x50\x47\xa2\x5e\x46\xe2\x96\x1f\xee\x51\xab\xc1\x7f\x81\xe6\xb9\x92\xd7\x34\xc3\x4f\x8d\x22\x0d\xee\x18\x9e\xb0\x94\x48\x45\xde\x32\xc1\xf7\x53\xb6\x61\x5b\xad\x79\xb3\x8b\x50\x77\xec\x0e\xd2\xd4\xc3\x93\xa6\x1a\xdd\xb2\x5b\xdb\x0a\x36\x13\xd4\x6f\x63\x42\x18\xa4\xc0\xa7\x22\x05\x06\xa7\xeb\xc6\xa4\xec\xce\x1d\x9b\xb7\x17\x4a\x76\xec\xf8\xdc\x42\xd8\x6d\xd7\x8e\xd1\x18\x1e\xc9\x82\xf6\xcf\xc5\xa2\x30\xc0\xb4\xcb\xe4\xa4\x20\x02\x07\xbb\xcb\x18\x6b\x24\xc3\x65\xf2\x1c\x4e\xa4\xe4\x93\xe5\xf2\x2e\x1d\x47\x93\x84\x0a\x1f\x02\x2d\x9d\x2d\x0a\x0b\x26\x41\xfa\x94\x1b\x04\x69\xc9\x4e\x2c\x9d\x54\x3a\xf5\xda\x09\x93\x70\x75\x16\x32\xc5\xda\xb7\x93\x25\xa4\x10\xf7\x89\xfe\x61\x5f\x8c\x5a\x41\xdc\x52\x70\x3f\x6d\x7e\x8d\xb4\x13\xc4\x35\x77\x86\xd4\x69\x5a\x3b\x55\xab\x13\xbf\xda\xa9\xbc\xb3\xab\x5e\x2f\xa2\x43\x9e\xb4\x66\xca\x12\x29\xcc\xa8\x1e\x9f\x88\xa9\x44\x4e\x35\xa5\xae\x5b\x98\x13\xb4\x5a\xc4\x09\x59\x69\x9e\x51\xbd\xf4\x80\xff\x5d\xae\xa9\xbf\xd9\x41\xfb\x5b\x67\x0b\x4b\x6a\x87\xff\xc6\x1c\x45\xad\x98\x8f\x9a\xb6\xf9\x57\xaa\xd9\x1f\x7f\x7f\xc8\x44\x22\x53\x96\x92\xd3\x7f\xbc\x39\xff\xe6\xd5\x4b\xf2\xe6\xfc\x0c\x4c\xaf\x6d\x8e\x9f\xc9\x72\x1b\x89\x52\xf3\x99\x60\xea\x63\x77\xf9\xdf\xb3\xd0\x2d\x0e\x5f\xa9\x8b\xb4\x3e\x83\x00\xba\x87\x65\x78\x73\xb0\xd4\x38\xa6\x37\xd8\x85\xbe\x26\x9f\x75\x22\x73\x76\x38\x97\xda\xd8\x87\x96\xdb\xd8\xff\x7e\x86\xd4\x3d\xb6\xc8\xcd\x72\x14\x42\x1e\x20\x25\x0f\x7c\x3f\x2c\x7d\x7d\x29\xc8\x2b\x18\xc4\xcd\x33\xed\xba\x09\x65\xcc\x78\x36\x18\x51\x29\x9f\xcc\x48\x35\x2c\x34\xbd\x14\x76\x3b\x97\x07\xd5\xac\x1e\xfb\xd7\xa1\x65\x12\xc0\x73\x0f\x71\x9a\x43\x37\xeb\xe5\xc1\xf8\x52\x90\xef\x9a\xbe\x07\x8d\xb3\xc5\x6c\xbb\x0f\x66\xcc\x1c\xba\x09\xf0\x13\xdf\x8f\xc9\xcf\x96\x36\xdd\x70\xbd\x32\xcd\xca\x0c\x19\x9b\xd1\x64\x79\x58\x60\xa5\x37\x98\xe0\x2d\xd7\xc8\x9f\xbd\x61\x56\x15\xda\xa0\x97\x16\x0e\x49\xfb\x3c\x10\x62\xef\x89\x9c\x92\x09\x15\xe9\x18\x6a\x0c\x58\x5a\x89\xa9\xc1\x50\x33\xbb\x4c\x6a\xc4\x6a\xd8\x9f\x21\xe1\xbc\xc4\x8e\xcf\x5b\x38\xa0\x0b\xde\x25\x3f\x7d\x3a\x79\xbb\x7f\xba\xb3\x76\x89\xc0\x3f\x3a\x56\x09\xc1\x2b\x2c\x75\xbc\xa6\xac\x32\x4f\x91\xd3\x4c\x09\xcc\x02\x7e\x50\xf6\xc5\x79\xea\xae\xd8\x32\x60\x71\xe8\xf7\x0a\xbb\x28\x45\x2e\x23\x65\xa6\xc7\x9c\x99\x29\xf8\xfa\xe7\x66\x91\x1d\xa9\x69\xf2\x87\xef\xfe\xfc\xf2\x1b\x8d\xe1\xa7\x87\xbf\x1f\x7f\x37\x7e\x35\xfe\x1e\x71\x6a\x8b\x37\x5f\x7d\x77\xd7\x44\xce\x1e\x52\x8f\x72\xe2\x27\x77\x7e\xec\x3d\x45\x3e\x55\x55\x1d\xf6\xac\xc0\xae\xfa\x83\x5b\x43\xba\xca\x29\xba\x40\x3b\x0d\x02\x14\x24\x94\x39\x7d\x7f\x54\xf7\xd6\x03\x7e\x42\x8c\x13\x3c\xe1\x5a\x17\x2c\xad\x98\x22\xe7\x6c\x4d\x3a\xf2\x76\x0c\xa7\x77\x62\x67\xb0\x71\xc1\x0e\x32\x5e\x36\xf4\x70\x9b\x1b\x11\xdf\x73\x3d\xd8\x3a\x00\x29\x04\xa7\xd9\xae\x3c\xd3\x5b\x5a\xe5\x36\xbe\x3f\x2b\xb8\xd9\x17\xd9\xa4\x54\x29\x17\x68\x0a\xb6\x9a\x0e\xa3\x7a\x5d\x3f\x18\x78\x1e\x2c\x1b\x94\x64\xf0\xb7\xcb\x6e\x1d\xc2\xdb\x1f\xb4\x1d\x65\xb0\x47\x3c\x15\x7b\x44\xcf\xc8\x84\xc7\x17\x56\xd0\x48\x8e\xb6\x8b\x2f\x80\x57\x1f\x70\x24\xc1\x2e\x6d\x3e\x31\xd4\xd6\xd9\x7c\x90\xba\xb7\xdb\x76\x36\x31\xeb\x34\x9d\x54\x47\x9a\x54\x18\x83\x24\xc6\xc7\x89\x21\x4f\x71\xc5\x87\x06\x1e\xf2\xa0\x79\x48\x9f\x14\xa9\x13\x9f\x22\x55\x1e\xb1\x07\x74\xfd\x8c\x5b\xe7\xdc\x9a\x58\x0c\x16\xfb\x81\x43\x0e\x69\x52\xf8\xfb\x5d\x73\x96\xdd\x95\x4e\x6e\x97\x03\x3a\xb8\x0b\x84\x9b\xe2\xf5\xac\x0b\x05\xd4\x89\x04\x7d\xe2\x9c\x01\xf8\x3b\x8e\x76\xf8\xc0\x13\x25\x3b\x43\x1e\xa2\x6f\xe3\x3e\xaa\x45\x5e\x7c\x00\x37\xea\x5d\x58\xee\x05\x31\xa5\x25\x90\x67\x2e\xb3\x94\x29\x6c\x76\x6a\xba\xb2\xb8\xaa\x83\xab\x9d\xe1\xb8\xff\xd5\xc9\x57\x38\xd6\xc5\x90\xc7\xab\xda\xc2\x8a\x06\xef\xbd\x75\x85\x4d\xfa\xa5\x99\x34\xbd\x82\x00\x0b\x05\xab\x21\x41\x27\xa1\x22\xe5\x29\x34\x33\x84\x5c\x12\x07\x39\xe1\x0a\xde\xdc\x50\x0e\x05\xde\xa6\xd2\x92\x69\x07\x4b\xc2\x4d\x99\x77\xb1\x60\x54\x17\x8a\x11\x3a\xb3\xa0\x70\xe1\xd7\x72\x8a\x91\x28\x58\x27\x8a\xa5\xe4\x8c\x09\x76\x63\x0f\x6d\xe7\x79\x15\xb0\xde\xb2\xb9\x4b\x2f\xb8\x44\xc3\x43\xc7\xbd\x90\x74\x62\xa2\x87\x70\x7a\x08\x11\x9f\x46\x82\xe7\xba\xfb\x7a\x66\xca\x43\xe8\xce\xaf\x54\xf8\xf2\xba\x0b\x15\xa3\x33\x02\x64\x4e\x75\x1c\x6e\x84\x15\xa2\x1d\x86\xef\xdc\xf0\x82\x96\xa1\xc1\xfa\xf2\x74\x25\xe7\x41\xb6\x7c\x2a\xb2\xe5\xd7\x62\x7d\x89\x68\xd2\x60\x82\xb9\x2b\x13\xcc\xc6\xe1\x35\xad\x67\x36\x18\x63\x9e\x3a\x4b\x79\xc0\xc6\x98\x58\x9e\x19\x2c\x32\x03\xd7\x1c\x2c\x32\xe4\x01\x5a\x64\x76\xc7\x6c\x06\xdb\xcc\x60\x9b\x19\x6c\x33\x83\x6d\xe6\x89\xd8\x66\xb0\x9e\xc4\xf1\x3f\xcf\xdf\xd9\xaf\xf0\xe4\xaf\x99\x4c\xae\xce\x8d\x54\xec\x17\x99\x15\x0b\x76\x0e\x42\xc4\x1a\x82\x17\x55\xe9\xa6\xe4\xd4\xd2\x5c\x6d\xec\x56\xde\x72\x7d\x55\x0a\x21\x5c\x90\xe3\x7f\x9e\x8f\x2f\xc5\xa5\x38\x86\x7f\x92\x77\x7f\x3d\x27\xa9\x1d\x03\xed\xef\xd8\x17\x0e\x4d\xf0\xb0\xad\x9c\x2c\x84\xef\x6c\x46\xfd\xfd\x67\x0a\x3b\x0c\x95\xef\xd0\x4c\x43\x1d\x6f\x17\x36\xab\xe9\x82\xc1\xcc\xbf\x49\xc1\x88\xab\x23\xe1\x62\x49\xc7\xa4\xfe\xd5\xc4\xca\xd8\x22\x5b\x62\xfc\x7a\x28\xa5\xa3\x18\x4d\x8f\x6e\x14\x37\x8c\x48\x91\xb0\x71\x78\xe9\x1a\xa0\xa1\x89\x2e\xf2\x5c\x2a\x43\xe4\x8d\x60\x4a\xcf\x79\x4e\x16\x54\xd0\x19\x5b\xd8\x3d\x5b\x21\xfb\xfc\xdd\x7b\x2e\x8a\x2f\xd0\x39\x70\xc2\x32\x2e\x66\x3d\x68\xfd\x54\x5f\x74\xe7\xab\xfd\xc8\x33\xe6\xfb\x09\xba\x36\xc3\xa0\x57\xc0\xca\x90\xce\x2c\x65\x41\x6e\xa8\x00\x62\xb2\xc0\xee\x3a\x17\x3c\x7f\x4d\xde\x09\xa0\x1e\xa1\x45\xdd\xb4\x36\x15\x0f\x1b\x2b\x2b\xa9\xcf\xa5\x25\x2d\x58\xf7\x5c\xcc\x5c\x5f\x9e\x31\x79\xf7\x85\x2e\xf2\x8c\xe9\xd7\xe4\xf2\x80\x7d\x31\xbf\xbf\x3c\x18\x91\xcb\x83\x2f\x53\x8d\xff\x10\xc6\xfe\x6b\x4c\x4e\x16\x58\xa3\x27\x73\xc2\xa5\x0a\x65\xd7\xfd\x6b\x84\x4f\x49\x21\xa2\xaa\x3d\x1b\xf6\x17\xd0\x46\x2a\x3a\x63\x47\xee\x64\xbe\xa1\x37\x9a\x21\x0e\x4f\x2c\x0e\xdb\xc7\x5b\x04\xdd\xe5\x54\x99\x7a\xbe\x68\xd3\x61\x58\x54\x0c\x63\x3d\x0a\x76\x1c\xc5\xc9\x94\xc8\x05\x37\xc6\x07\x18\xba\x98\x6d\x20\x8e\x6e\x90\x05\xbe\x9b\x05\xa2\xbe\x23\x70\xff\x28\x95\x7f\x64\x05\xbe\x23\x9d\xd2\x57\x23\xf8\x8c\x6b\x24\x86\x9d\x82\xc2\x9a\xa8\x26\x97\x07\xaf\xec\x59\x9c\xf3\x05\xcf\xa8\xf2\x1d\x96\xdc\x24\xe5\x48\xcb\x92\xfc\x94\x76\x31\x97\x07\x2f\x2f\x0f\xc8\x73\xec\xb8\x04\x37\x25\x83\xee\x76\x30\x3f\x62\xf0\x12\x43\xd0\x5f\xec\x81\x40\xd3\xf4\x67\x91\xf5\xab\xc2\xb7\x24\x97\x07\x46\x15\xec\xf2\x20\xe2\x9e\x22\xc5\x5e\x36\x90\xff\x82\x93\x95\xab\xe6\x82\x20\x5d\xfb\x60\xa1\x0d\x70\xf7\x53\xac\x3d\x9f\xcb\x03\x28\xa8\x64\x47\xdd\x19\x9a\xae\xed\xf4\x86\xd3\x9d\xbc\xed\x0a\x1b\xc7\x9e\x7b\x27\x6f\x3d\xb5\xc8\x4b\x0a\x9d\x36\x50\x68\xf2\xfc\x78\x41\x7f\x93\x22\xa2\x79\x2f\xee\xf3\x66\xf6\x54\x4e\x02\x34\xba\xf4\x93\x4e\x46\x38\x05\xe6\xbf\x5c\xc3\xf0\xfc\x10\xe4\xe3\xa0\xae\x00\xc3\xf6\x3f\xbb\xba\x44\x50\xc2\xa4\xc8\x58\x1f\xd3\x92\x90\x29\x6b\xf8\x32\xe9\x69\x8f\xc0\xa5\x7f\x8c\x27\x59\x27\x89\x94\x85\x57\xec\x77\xdb\x17\x1e\xf2\x56\x72\xd9\x26\xd7\xe7\x32\xbd\xf5\xba\x4f\xa3\x39\xfa\x2d\x3b\x97\xe9\x9a\x55\x63\xf3\xac\x44\x1e\x66\x12\x22\xb3\xc1\xaa\x61\x5f\x89\xe5\x04\xbb\xf3\x11\x48\x0a\x23\xc2\x4c\x32\xb6\xd4\x52\x4b\x2b\x53\x43\x02\x5c\x2e\xd3\xe7\xfa\xc5\x8b\x35\xbb\x16\x86\xef\x64\xe7\xf1\x3c\x1b\xec\x5e\x18\x7e\xd8\x05\x02\x7a\x2d\x79\x4a\xf2\xc2\x75\x89\xdd\x0d\x18\x6e\x2d\x69\x1a\x03\x6d\x4b\x90\x0a\xaf\xbb\x66\x95\x81\x51\x61\x2d\xea\x19\x18\x75\x23\x50\x4c\xb4\x5b\xe9\xbe\x69\x29\xbb\xe6\x09\x3b\xa5\x66\xde\x41\x38\xdf\x86\x81\xf5\xca\x72\x38\x05\xc9\xed\xa3\x9b\x39\x73\x8d\x9e\xdd\x9a\xca\x76\xc1\xa1\xc5\xd2\xe6\x32\x48\x8f\x9c\x90\x8f\x74\x11\x04\xc0\x00\x07\x5c\xc3\x6e\x29\x2b\xac\x65\xd4\x08\xc0\x5b\xd3\xda\xdf\x0a\xc5\xac\x9a\xd0\x53\xd3\x08\xe3\xe3\x13\xa1\x82\xc0\xef\xe4\x2d\x35\x14\x95\x0e\x14\xa4\xa4\x28\xa5\x58\x2b\x13\x4c\xb8\x48\xdd\xa3\xb2\x17\x6e\x9f\xfa\xc0\xa0\xf8\xcd\x3e\x58\xf4\x5a\x7f\x26\x3f\xd9\x4f\xbd\xc1\xe1\x64\x21\x53\xf6\x9a\x7c\x84\x9b\x65\xc5\x10\x48\xca\x75\xff\xfc\xa7\xd5\x2f\xb6\x30\x50\x58\x86\xdd\x23\xff\xd0\x8a\xa6\x31\x7e\x40\x81\x36\x60\xf6\xee\xea\x4f\x32\x39\x21\x8e\x49\x6f\xb7\x8a\x4f\x67\x27\x3d\x16\xf1\xe9\xec\x64\x1f\x0b\xd8\x4a\x59\x2a\xa5\xf0\x0f\xae\xdd\x3a\x5d\xd1\x82\xfa\xab\x40\xe3\x5d\x2b\x3f\x7b\xf1\xb2\xbf\xfb\x92\xb3\xc4\x04\x07\x0f\x39\x9f\x53\xc5\xd2\xd7\x64\x51\x64\x86\xe7\x99\x3b\x07\x7b\x30\xda\xca\x85\xfe\x44\x08\x4d\xa0\xb8\x2c\x21\x6f\x59\x0a\xc9\x3b\xe9\x6b\xdf\x7e\x29\xbc\xd1\xfc\xc2\x07\xd0\x85\xd3\xd7\x84\xc2\x9d\x44\xd5\x38\x8d\x10\xe0\x39\xe8\xdc\x5c\x84\x47\x8e\x4c\xf2\x0c\x18\x19\x33\x2f\xc6\x5e\xec\x06\xe1\x5c\xc3\x92\xb7\xaa\x3b\xd3\x47\x8d\x58\xa9\x98\x4a\x9e\x97\x16\x80\x17\xe3\x52\x81\x00\x3a\x0f\x59\x60\xa8\x65\x54\xb4\x0b\xed\x1a\xb1\xd7\x94\x8b\x5d\x57\x5f\x0d\xd7\xbf\xe1\x32\xee\x84\x16\xdb\x3b\x53\x5a\x70\x36\xa1\xca\xf6\xcd\x46\xaa\x0c\x0f\xce\x99\x02\x96\xb9\x5b\xc2\xfc\xa8\x8e\x38\x0e\x58\x60\x89\x62\xa6\x07\x1d\x07\x83\xa9\xa3\xe3\xf8\x92\x33\x26\x7b\x83\x38\x82\xf8\xdc\x5d\xc2\x63\x77\x09\x81\xf4\x5b\xc0\xfe\x83\x2d\xb7\xc8\x72\x0f\xab\xd3\x39\x4d\xfa\x2e\x11\xc6\x7a\x7e\xb3\xe5\x5a\x2b\xe6\x10\x2f\xa0\x3a\x33\xde\xa9\xdc\x82\x06\x00\xed\xe8\x01\x67\x20\x8b\xa4\x76\xb3\x76\x20\x3a\x45\x07\xdd\xb8\xaa\x9d\xdd\xd9\xe1\xa6\x7e\x95\x37\xf5\x89\xa3\xf7\x5f\xb9\x48\xed\xc2\xda\x11\xda\x8d\x20\x16\xe3\x88\x14\x3e\x98\x07\xf4\x41\x01\x1a\xec\x0f\x60\xc3\x60\x68\x43\x1d\x41\x65\x79\x88\xa0\x98\xc8\x42\x44\x7a\xa3\x95\xf7\x68\x28\x28\xad\xc6\xe4\xad\xbd\x20\x20\xf9\x58\x3c\x7a\x35\xfe\xd3\x88\xe4\xe8\x8f\x29\x34\xe2\xdb\x04\xbf\xad\x89\x2e\x26\xc1\x86\xe6\x1b\x74\x72\xa1\x0d\xa3\x7d\xae\xc6\x10\x54\x34\xc4\xa9\x0e\x11\x37\xe4\x96\x1e\xd8\xc7\xde\xa3\xd2\x50\x35\x63\x2b\xc5\x8e\xb6\xee\x06\xb0\x0e\x06\x56\x2f\xc7\xcf\x05\x6a\x59\xf7\x56\x01\x9b\x77\x17\x5f\x57\x41\xb6\xd6\x12\xd8\x52\xe2\x12\xf7\xd6\xc5\x0d\x76\x18\x38\xd4\x1c\x25\xe4\xd9\x49\x7b\x8c\xd0\x46\xe1\x41\x08\xf9\x37\xe7\x27\x1b\x2b\x4c\x91\xc3\xdc\xeb\xcf\x70\x04\x5c\x07\xa5\xd8\xb2\x23\x41\xd8\x17\x47\x6d\xdf\x9c\x9f\x78\xfb\x62\xaa\xf8\x35\x53\xe4\xf9\x5f\x99\xa1\x64\xca\xa8\xc5\xb7\x17\x3d\x8c\x58\xa1\x94\xc9\xbb\x2f\x39\x15\xe9\x39\xf0\xee\x33\xc0\xaf\xed\x70\x2e\xcc\xd0\x03\xe7\xde\xb4\x7d\x1d\x49\xab\xf2\x93\x04\xa4\x43\x11\xca\xe1\xa7\x13\xa2\xc0\x00\xc3\x20\x66\xe4\x9a\x55\x4a\x21\x19\x49\x72\xaa\x03\xaf\xb2\xd0\x72\x60\x32\x32\x74\xf0\x0f\x8f\xea\x8b\x71\xf6\xe5\x84\x66\x59\xd4\x82\x46\x10\x9a\xe5\x73\xea\x0a\x3d\x61\x8f\x2b\xc0\x6e\x4d\x98\xa0\x13\xb0\xb5\xe3\xfb\x6f\xce\x4f\x7e\x71\xb1\x01\xee\x3c\xc8\x0c\x5a\x1d\x5c\x94\x85\xa2\x2c\x3b\x70\xcd\x82\x4a\xa6\x39\x61\xe8\x43\x25\x7c\x4a\x84\xf4\x9b\xe6\xda\x7f\x29\x05\x87\x64\x2b\x3c\x34\x59\x48\x74\xe9\x0b\x90\x7d\x70\xd0\x88\xd0\x2c\x73\xff\xc6\x02\x7e\x16\x34\xad\x71\x59\x25\x5e\x9c\x16\x93\x8c\xeb\xf9\x7d\x21\x46\xfd\xf3\xf7\x8b\x19\x6e\x35\x0e\x35\xec\x81\x95\xcf\x3e\x89\xbc\xf2\xd4\x22\x8e\x7e\x1c\xa7\x8d\x7b\xef\xd2\xc2\x10\x40\x3e\x60\x2b\xb6\x23\x07\xd0\x59\x21\x18\x9d\x83\x5c\x3b\xca\x34\x86\x62\x93\x18\x02\xf8\xf4\x2c\xba\x5b\xf8\x70\x64\xca\xee\xe5\x4e\x7d\x6c\xf8\xf0\x7d\xdc\xa6\x68\x1d\xd1\x3d\xb2\xbf\x3e\xe2\x1b\x64\x4f\xf5\xdc\xd0\x19\xbb\xfb\x33\xad\x7e\xf6\xbe\x4e\x14\x56\x51\x3b\xcf\xa6\xdf\x3e\x09\x1d\xfd\xfa\x88\x4e\xb8\xa7\xad\xca\xf7\xfe\x7b\x0d\x31\x89\xa8\x15\x46\xd0\x6c\x61\x25\x67\xbe\x00\x68\x87\xa9\x6b\xeb\x78\xa0\x63\x83\xca\xc9\x6a\xa1\xc6\x7e\xa5\x75\xfb\x16\x37\x5c\xf5\xd5\xbb\xcf\xd6\x83\x12\x25\x71\x77\x7d\x8b\x4a\xb7\x38\xc7\x4f\x54\xa4\x9d\x6d\x23\x7f\x89\x86\x7a\xd6\x55\x60\xe8\x53\x14\x4d\x47\x14\x33\x85\x12\x25\x37\x88\x04\xeb\x3c\x2b\x66\x5c\xfc\xff\xff\xef\xff\xa7\xc9\x1b\xa8\xa3\xfc\x4b\xd8\x01\xdc\x32\x7f\x47\xdc\x70\x29\x10\xad\xca\xd6\x7d\x0e\xc7\x37\xe5\x82\x3d\xb5\x28\xc7\xba\xdb\xa0\x73\x5b\x5b\x5b\x10\x62\x37\x0b\xf7\x75\xf6\x0e\x08\xb4\x09\xf9\x0d\xe5\xd1\x03\x7b\x1e\xad\xd3\x6a\x6a\xdb\x6a\x0f\xdb\xb8\x9d\xe4\x12\x13\x36\xab\x6a\xcd\x01\x6a\xba\x2a\xbf\xbc\x91\x42\x17\x99\x6b\x60\xbb\x94\x85\x22\x34\x5d\xf0\xb2\x21\x45\x22\x95\xb2\xd4\x46\x38\xbf\x84\x62\x33\xab\xf7\x29\x16\x42\x6a\x92\xac\xb0\x3f\xdc\xbd\x00\xd4\xed\x90\x9e\x42\x1b\xc9\x5c\xc9\x6b\x9e\xfa\xf0\x46\xa4\xb5\x48\xbb\xb8\x76\x64\xd1\xe3\x39\xd5\x5a\x26\x1c\x2c\xa0\x11\xf4\x6e\xe6\x3c\x99\xa3\xe9\x3d\x65\x86\xa9\x05\x17\xac\x12\x2a\x19\x0b\x60\x12\xdb\x56\xde\xb7\xf0\xf4\x5e\x26\x34\xdb\xc4\x44\xf2\x24\x25\xa8\xbb\x61\xb0\x25\x84\x76\xc7\x6a\xcf\xa3\x2a\xc2\xf6\x95\x43\x08\x21\x48\xa4\x98\xf2\x99\x4f\xb2\xf1\x77\xd4\xdf\xe5\x27\xc6\x5f\x7f\xa9\x7d\x1c\x0c\x47\x4c\x3b\xe4\x39\xf4\x49\x66\xa4\x24\x9f\x48\xe7\xca\x23\x58\x45\xb9\x92\xe0\x01\xad\xc3\x1f\x9f\x69\x92\xca\xa4\x58\x04\xbf\x01\x14\xc8\x0e\x4a\x94\xb3\xe9\xf7\x64\xe5\x9b\xb1\xb6\x5b\xb3\x30\x9a\x63\x18\x49\x15\xf0\x2b\xa2\x4a\x9a\x6a\x67\xcf\x59\xc8\x6b\xa6\xc9\xe9\xcf\xe7\x27\xff\x17\x49\xa2\xb7\xd1\x20\xef\xbb\xb7\x86\xf4\x93\x5e\x39\xe2\x69\x97\x47\xe1\x38\x4d\x59\x5a\xf9\xdc\x5d\x57\x9d\x4e\x95\xcc\x3b\x2b\xd8\x2f\xa0\xed\xd1\x9d\x2f\x73\x05\x65\x36\x45\x02\x96\xcf\x7f\x3c\xbf\x8d\x49\x96\x12\x3b\x07\x89\x78\xad\x73\x78\xdb\xfb\x94\x51\xed\x82\x40\x33\x3e\x65\x3e\x07\x0f\xbd\x8a\xf6\xb5\xa9\x0e\x79\x42\xa9\xc4\xa6\xd4\xeb\xd2\x85\xa4\xda\x2e\x5b\x68\x21\x05\x37\x52\x75\x25\xe1\x79\x51\xf4\x35\xf9\xe0\x5e\x40\x2e\x96\x58\xc5\x24\xf1\x02\x1b\x6c\xd7\xcf\xd8\xe4\x06\x71\xde\x53\xdf\x63\xc5\x47\xf5\x1f\x25\xb0\xe1\xa3\xb3\x77\xc7\x6f\x3f\xbc\x1b\x2f\xd2\x6f\xe6\xf2\xe6\xd0\xc8\xc3\x42\xb3\x43\x6e\xee\x1a\xab\xf3\xee\x90\xde\x52\x67\xfb\xa4\x31\xdb\xcb\x9e\xa4\x4f\xfe\x52\x52\x9a\x11\x51\x14\x02\x9f\x81\xc5\x41\xa2\x54\x91\x65\x08\x22\xa3\x18\x1b\xc5\x31\x2a\x47\x7b\x8b\x4a\x2b\x17\xba\xdf\x90\x88\x7d\x9d\xf6\x06\xc1\x15\xf6\x9e\xf5\x86\xc6\x79\x78\xc5\x0b\xf9\x10\x84\x6d\x24\xf4\x10\x00\xff\xac\xe5\x57\x9f\x34\x53\xd5\x93\x62\x26\x81\x0d\x1c\x41\x7d\x7c\x27\xaa\xec\x79\xf3\xdd\x41\x56\x77\x65\x3d\xaa\x03\xd0\x89\xb3\x2b\xc2\x2c\x2d\xcc\x9c\x09\xe3\x93\xd5\x1d\x98\x1a\x21\x0a\x52\xe4\x2e\xf1\xa7\x11\x4c\xf6\xb4\x36\xb9\xd3\x41\xf7\x53\x34\x95\x1a\x9a\x21\x80\xb6\x56\x59\x3a\x2a\x75\x77\x7d\xf8\x3d\x65\xa1\x40\xd9\x6f\x2d\x0d\x01\x23\x1c\xd8\xdf\xc0\xfe\x06\xf6\x37\xb0\xbf\x27\xc7\xfe\x36\xb6\xe9\x0c\x3c\xf0\x2b\xe4\x81\x5c\xa4\x4c\xdd\x4e\x19\x4c\x60\x0e\x6f\xd3\x8e\x93\xa5\x7f\xce\x99\xd0\x86\x26\x57\x63\x72\x4c\xde\x54\x86\x6d\x58\xd1\x22\x7e\xab\xa9\xa6\x85\x62\x33\x97\xcf\x5f\xa9\x68\x51\xf9\xe6\x83\x2a\x4c\xb1\x5b\xcf\xfc\x1d\x96\x9b\xa8\xa3\xff\x62\xa9\x7f\xcd\x0e\x11\x07\x0e\xf3\xb4\xc4\xff\xaf\x82\xf7\x6d\xb8\xfb\x1e\xec\xee\xee\x35\x1e\x88\xa7\xd5\x78\xed\x5a\x8d\xf5\x39\x55\x74\xc1\x0c\x53\x40\x2f\x53\x34\xc6\x0b\xe1\x42\xc9\xed\x45\x3f\x87\x8b\x7e\xab\x4a\x0c\xee\x96\xf3\x34\x7c\x03\x6b\x59\xb9\xba\x1d\xfe\xb1\x70\x24\xe7\x4e\xf0\xb3\x27\x45\xde\x59\x75\x05\x24\x59\x03\x1d\x1e\xe8\xf0\x40\x87\x1f\x2b\x1d\xbe\x85\xe8\x3d\x10\xe3\x07\x45\x8c\x21\xc1\xe4\xe4\xf4\x0d\x78\x52\xd7\x10\xe2\xea\xc0\x7a\x39\x8c\x8a\x23\x16\xe2\x7f\x70\x3c\x39\x39\x25\x13\x6a\xa1\xab\x99\x86\xbc\x25\x5f\xaf\xa4\x07\xb9\x33\x7c\xc1\x64\x61\xfa\x15\x61\xac\x0e\x8e\xba\xce\x3a\x47\x36\xfc\x1a\xd6\x75\x72\xea\x08\x9f\x5b\x95\x36\x3c\xb9\x5a\x42\x3d\xbe\x71\x14\xcc\xb5\x70\x14\xf3\xb2\x78\xf9\xf2\x7b\xf6\x12\xfe\xfb\xdd\x1f\xf1\xff\xf1\xc7\xe4\x2f\x7f\xfe\xe3\xef\x5f\xbe\x7c\x6e\x95\xc3\x57\x24\xa5\xcb\x17\x96\xb4\xb9\x0c\xca\x50\x24\xe8\x2f\x7f\x21\x97\x01\x82\x96\x42\x3a\x7a\x52\xc6\x5d\xbc\x7a\xf9\x67\x37\xcb\xf7\x64\x2e\x0b\xa5\x77\x54\x54\x6b\x05\x9f\x36\xc5\x0f\xb9\xc8\xa5\x60\x22\x6a\xd6\xd9\x8e\x23\xcd\x3d\x6a\x43\x07\x53\x57\xa0\xd3\xcf\xd8\xa7\x3f\xbc\x52\xb2\x4b\xf1\x0d\x0b\x23\x30\x9a\x24\x32\x65\xae\xbe\x66\xf9\x29\xa8\x9b\x16\x65\x00\xce\x19\xcd\xcc\x9c\x24\x73\x96\x5c\x45\xef\x6d\x11\xa5\xb2\x60\x5a\xd3\x59\x17\x53\xfe\x80\xa3\x1a\xa1\xb2\x7e\xad\xab\xed\x9e\xab\xab\xdf\x62\xc9\xba\xde\x43\xb7\x69\xc5\xd8\x68\xd7\xc7\x4e\xad\x59\xed\x2f\xd0\xad\xd9\x15\x97\xb0\x4f\x2f\x0f\x7e\x82\xf5\x2d\x2f\x0f\xac\x9c\x70\x01\x75\xd5\xac\x78\xf0\x23\x16\x4f\x1b\x11\x18\xf4\x29\xf4\xe5\xde\x7c\x07\xa6\x5b\x0c\xba\x70\xc5\x11\xfb\xad\xfc\x75\xbc\xea\xdd\x92\x6a\x78\x7f\x15\xfa\xb7\x26\xdc\x7e\x1f\xab\x1d\x91\x57\x2e\x48\x65\x24\x79\x8e\xa9\x0c\x95\x1f\xdf\x73\x6d\x5e\x40\xe1\x51\x1d\x07\xb1\x61\x2b\x6e\x44\x3e\x8b\x88\x43\x2e\xeb\x83\xce\x65\xed\xdd\x2b\xfa\xbd\x2b\x8d\x1f\x2e\x43\x79\x4d\x74\x28\x24\xbc\xab\x42\xf9\xad\x8c\xa4\xa7\xab\xa3\xf2\xa8\x92\x18\x98\x53\x93\xcc\x0f\x17\x4c\xcd\xd8\xe1\x15\x5b\x82\x18\x50\xbd\x6d\xcd\x6f\x68\xa3\xa8\x61\x33\x78\x01\xde\x1e\x52\x83\x87\xd4\xe0\x07\x97\x1a\xdc\x25\xba\x85\xdf\xf7\x95\x2c\x5b\x67\x31\x95\x41\xb7\x4e\x9a\x5d\x65\x40\x6b\x78\x58\x29\x8d\xd0\x2c\xab\x4a\x24\x3a\x8a\xcd\xf6\xd4\x8c\xc6\xfd\x3f\xea\xfc\x6f\x68\xf6\xf2\x18\x78\x59\x9f\x66\x2f\xef\xfb\x9e\x70\xeb\x8c\x5b\x71\xb0\xf3\x5a\xe3\xa5\xa1\xcf\xcb\x57\xcc\x5a\x1e\x72\x9f\x97\x18\x56\x1b\xeb\x2d\x77\xde\xea\xa5\x17\x13\xda\x65\xcf\x5d\x7f\xad\xc5\x94\xcf\x3e\xd0\x7c\xad\x0a\xe5\xc6\x38\x15\xa9\x9a\x77\x00\x85\x0d\x2d\x13\x82\xb2\x3f\x68\xaa\xd4\xc5\xa2\x57\x7b\x97\x81\xc3\xdc\x1b\x87\x99\x70\x41\xd5\xf2\x6d\x03\x39\xe8\x97\xc6\x51\x5a\xe4\x26\x4b\x53\x55\x3a\xb6\x4f\xf2\xf8\x6b\x58\x54\xb5\xe5\x0d\x2e\x96\x20\xd9\x78\x47\x93\x39\x84\xfb\x80\x7d\xd2\x62\x9b\x63\x84\x50\xae\x42\x14\x0b\xa6\x78\x42\x92\x39\x55\x34\x31\x4c\xe9\x11\x79\x76\xf8\x6c\x44\x9e\xfd\xc7\x33\x22\x15\x79\x36\x7e\x36\x26\xf1\x77\xa8\xf0\xdf\x22\x76\x27\x04\x93\x19\x93\x38\x7f\xc4\x92\x7c\xe7\x05\xfb\x74\xf1\xe3\xe1\x9f\x89\xa2\x62\xe6\x4c\xa5\x57\x6c\xe9\x72\x51\x20\x07\x2e\x9a\x19\x96\x67\x5f\x95\xd7\x4c\x65\x34\xc7\xac\x3a\x3b\x89\xb4\x08\xec\x26\x84\xa1\x90\xb0\x34\x42\xdc\xe5\x9a\x30\x01\xee\x93\x94\xa4\x85\xe7\x7d\xde\x0e\x91\x2b\x99\x30\xad\xc7\xe4\x93\x0e\x15\xad\x31\xdd\x09\xdc\x2e\x8e\x98\x91\x57\xe3\x57\x2f\xff\x77\x62\x49\x35\x20\x3b\xe0\xaa\xf7\xd6\x6d\x9e\x85\xda\xc4\x34\xf6\x9a\xec\xb3\x8a\x01\xab\x34\x67\x27\x88\xf0\x0b\x1a\xee\xe0\x64\x84\x14\x87\x78\xbc\x35\x3c\x80\xe9\x7d\xd1\xb3\xff\xc5\xde\xbb\x37\xb7\x91\x23\xfb\x82\xff\xef\xa7\xc0\xba\xcf\x0d\x4b\x1b\x24\x65\xf7\xc3\x3d\xe3\xf9\x4b\x2d\xc9\x6e\x6d\xdb\xb2\x8e\x24\x77\xc7\x89\xd1\xc4\x5c\xb0\x0a\x24\x71\x55\x04\x6a\x0a\x28\x49\xec\xb3\xe7\xbb\x6f\x20\x33\x81\x42\x15\x8b\x64\xf1\x21\xd9\xdd\xc3\xb8\x37\xe6\xb4\x45\x14\x1e\x09\x20\x91\xcf\x5f\x46\x1b\x0c\x74\x6f\x3d\x05\x2b\xf6\x1f\x5a\xd3\xfe\x37\xfb\x5b\xeb\x14\xac\xbf\x95\x72\x3a\x2d\x2d\x40\x72\x2f\xe7\xb8\xe7\xbe\x5d\x8f\xc9\x11\x16\x93\xd0\xcc\x16\x8e\xef\x09\x28\xa4\x42\xd7\x03\xb8\x7f\xb5\x70\xc8\xaf\x0a\xcf\x45\xd2\x94\x96\x08\xfb\x96\x24\x34\x2f\x09\xc0\x1d\x84\x1a\x34\x29\xf8\x43\x0f\x43\xb2\x66\x6d\x5c\x08\xc6\x84\xa3\xde\x68\xcf\xdc\x35\x55\xde\x7f\x41\xce\x05\x74\x69\x29\xb9\x18\xd1\x06\x40\x6c\xd0\xe9\x1b\x56\x7b\x96\x4f\xc4\x54\x14\x3c\x6b\xc5\xb3\xd9\xc0\xd9\xb8\x17\x75\xff\x2c\xa2\xee\xde\x8a\xe2\x7b\x5d\x4f\x80\xf5\xf2\xe5\xd3\x88\xad\x67\xea\x7e\x65\x14\xcd\x7c\x63\x66\x44\xe6\x74\x64\xc6\x23\x6e\x65\x35\xcb\x75\x5e\x66\x9c\xf2\x8f\x85\xba\x97\x85\x56\x10\xb4\x72\xcf\x0b\xe9\xf8\x03\x3e\x15\x50\xc3\xeb\x06\x5f\x25\x0b\x5e\x60\x72\x14\x11\xaa\x5c\xe8\xf3\xa5\x89\xde\x77\xff\x42\xd3\x5d\xf5\x2f\x41\x1f\xaf\x7b\xce\x65\x61\x18\x37\xed\xc3\x76\x29\xa0\xb2\x5e\xc5\x04\x0a\xfb\xb5\x6b\x57\xb6\x71\xaf\xd9\xbd\x14\x0f\x47\x0f\xba\xb8\x93\x6a\xdc\x77\x14\xe9\x93\xd1\xe1\x08\x90\x90\x8f\xbe\x81\xff\xb3\xfe\xb5\xf5\xf9\xda\x1d\x2b\x1f\x3d\x4c\x04\xc5\xea\xc7\xaf\x8e\x77\x5b\xa3\xa6\xd0\x39\x42\x64\xd5\x55\xe9\x7c\x24\x7f\x11\xb3\x6b\x38\x5e\x35\xe7\xed\xdc\x1a\xc2\x09\x74\x12\x0c\xb0\xe7\xe8\x30\x76\xd8\x6f\x34\xf9\xaf\xaa\x3f\xe0\x3a\xb7\x9a\xce\xfb\x26\x30\x04\xfb\x53\x85\xa7\x4a\x17\xcc\x3d\x91\x41\xdc\xdc\xc1\x01\x6b\xb7\x3c\xb8\x7d\x5d\x65\x77\xe8\x7c\x16\x57\x18\x96\x6b\xed\x3c\xbe\x03\x09\x18\x51\x3c\x52\x6c\x4d\x0e\xf4\xd8\xdb\x91\xff\x00\x5a\xfe\x5a\x45\xc3\x31\xab\xad\xb1\xd1\xbb\xb7\x23\x7b\x81\x60\x6f\x41\xde\x8b\xd5\x1d\x2d\xc8\x5f\x81\xe0\xfc\x95\x9b\x89\x63\x7e\xff\x34\x92\xf6\x85\x4e\x05\xfe\xa3\xbb\xc0\xdd\xfc\xa6\x51\xc8\xba\x0e\x0b\x54\x25\xa2\xc5\x52\x39\xc7\x7c\x55\x08\xbb\xa4\x3b\xea\x3d\x9e\x17\xb5\x98\xb5\xc5\x82\x12\xda\xbd\xb0\xcb\x5f\x56\x4a\x4d\xbf\x34\x9a\xb3\x54\x24\x19\x2f\x9c\xe8\x0f\xc8\x4f\x4e\x02\xa8\x4b\x3b\x89\x48\x63\xa3\x87\x2e\x0a\x61\x72\x88\xb8\xa4\xa7\xa5\xd6\xa5\xb7\x61\x19\x5b\x94\x70\x22\x1b\x98\x45\xfe\xa0\x31\x89\xf8\x6a\x09\x37\x0b\xf1\x66\x76\x21\xb9\x11\xe3\x0f\x5a\xaa\x9a\x17\xe7\x6a\x0b\x6c\x62\x2c\xed\x72\xbe\x5d\xea\xad\x84\xba\x2c\xad\x33\xaf\x55\x61\x79\xce\xe9\xfb\x17\xa4\x9b\xa8\x73\x55\x6f\x3d\xb7\x94\xe6\xef\x6b\x2c\x68\xa4\x8b\xa1\x4c\x53\x01\x15\x79\xe1\x8a\x38\xc1\xb6\x17\x03\x38\xa7\xd5\x4f\xe0\x56\xda\x60\xb9\xa5\x5c\xf5\xfe\x7e\x3e\x3f\x9d\x5b\xd6\xe7\xaa\x08\xeb\x17\x5e\x4a\x47\xfe\x5e\x1d\xca\xe6\xcd\xea\x2d\x61\x30\x3b\x13\xdf\x2f\x0b\xfd\x7f\x30\x4f\x7f\x29\x9c\x13\xcf\x1b\xa6\x0c\xa9\x20\xc1\x20\xc7\xcf\x43\x59\xc4\x6d\xec\x16\x43\xc1\x48\x1a\xa2\xbb\x32\xd7\xbb\x63\xd5\x90\x5a\xc3\x4a\xe3\x85\xab\xd8\xd2\x1d\xf5\x48\xf9\x43\xae\x35\xd6\x4e\xea\xb1\x52\x65\xc2\xd0\xbb\x00\x02\xa9\xc8\x30\x5f\x08\x4a\x76\xa2\x59\x26\x45\x13\x7a\xc0\xfa\x9a\xf2\x3c\x87\x02\x24\x7a\x84\x23\x01\xb8\x9c\x9d\x98\x01\xbb\xd0\x36\xd4\xfa\x46\xeb\x2f\x66\x37\x24\x3c\x0b\x89\x4f\x23\x39\x9e\xf2\x3c\x94\xad\xc4\xc7\xc5\x8d\xe0\xa3\x94\x7d\xba\xf0\xb4\xdb\x43\xd3\x49\xd8\xae\x65\xfe\xf4\x98\x20\x1f\x46\x64\x05\x6a\xa1\xd7\xb2\xf7\xa6\xda\x1d\xbf\x1d\xb0\xfb\x51\x0e\x07\x3c\xa1\x40\xeb\x87\x89\x36\x04\x0b\x49\x57\xd3\xbd\x66\xee\x3a\xd1\x89\xf0\x7f\x86\xd9\x80\x19\x3e\x9a\xab\xd7\x0f\x44\x8a\xd4\x5e\x32\x72\xf8\x0a\xf7\x03\xaf\x6c\xa9\xe6\xbe\x26\x51\x98\x4e\x16\x0c\x88\x06\x11\x69\xa2\x3e\xf0\xe1\x95\x86\x00\x1c\xd1\x7c\xd6\xf4\x36\xd4\x0a\x7b\x1b\x61\x4b\x22\x0d\xc6\xb7\xd3\xf1\x92\x54\x63\xa0\xb8\x13\x69\x40\x07\x1c\xb0\x4b\x37\xc9\xa0\xd7\x17\x22\xe3\x80\x5b\xe8\x75\x3f\x37\xac\xf7\x11\xba\x41\x5e\x0e\x06\x2f\x11\x78\x40\x17\xcc\x58\x5e\x10\x62\xa6\xfb\xfb\x8e\xd5\xa5\x5f\xc4\xec\x46\xc7\xa5\x46\xd9\x26\xea\xd2\xde\x8a\x33\x67\xc5\x31\x5f\xdc\x4e\xd8\xb5\x64\xd9\x42\xf6\xfe\x14\x4c\xfd\x2b\x64\xe5\xd5\xba\x9f\x36\xbf\x94\xb8\x7d\x87\x2a\xb7\x55\x3a\xdf\x14\x2a\x67\x49\xcc\xe8\x2b\x0d\x80\x22\x27\x80\x9d\x9c\x12\x01\x87\xa1\xa8\x5f\x9c\x82\x8a\xdc\x7e\x28\xec\x83\x10\x8a\xbd\x82\x49\xbf\xfa\xf1\xc7\x1f\xeb\xb0\x9d\xaf\xde\x7c\xff\xfd\x80\x9d\xca\x02\x8c\xc9\x92\xbc\x0f\xb4\x07\xc0\x7f\x7c\x74\x02\x1f\x8d\x90\x03\x43\x06\xab\x63\x9e\x98\x6c\x49\x12\xd5\x54\x8e\x27\x96\x72\x79\xdd\xc3\x97\xc9\x84\x58\x16\x16\xb9\xc6\xbb\xe5\x23\x1e\xa0\xaf\x6a\x57\xa7\x50\x20\x3b\x93\x77\x82\x8d\xcc\x7b\xa7\x88\x22\x3b\x47\x4e\x01\xf0\x99\xe4\x90\xc5\xce\x2a\x9a\x98\xb9\x68\x83\x0d\xf3\xb8\xd6\xb5\x68\xed\x1f\xd9\xfd\x23\xbb\x7f\x64\xff\xbd\x1f\x59\x84\x35\x58\xf6\xb0\xfa\x82\xce\x3c\xcf\x33\x8f\x76\x14\xf0\x10\xe6\x6b\x82\x15\xa5\xf2\xfc\x97\x77\xac\xfa\xc9\x8b\xf1\x2a\x5e\x75\x5c\x8c\x01\x6b\x38\x18\x8b\x84\xb2\xc5\x0c\x6c\xc9\x18\x5a\x94\xea\xe4\x4e\x14\x4c\x4e\xf9\x58\xbc\x34\xec\xe4\x23\xa8\xd5\x90\xb3\x2d\x47\x41\xbb\x89\xa1\xcd\x07\xec\x57\xf2\x1b\xc7\x58\xd4\xff\x71\xf0\xeb\xf1\xd5\x3f\x2f\x8e\x3f\x9e\x1d\xc2\xb3\x21\xa0\x74\x93\x48\xa3\x27\x3e\x2c\xfe\x65\xcd\x0d\x4d\x1c\xc3\x3b\xa3\xa3\xb0\x9e\x42\x18\x9d\xdd\x7b\xb6\x55\x19\xf0\xe8\x0a\x4b\x95\x97\xd6\x9b\xdf\x3d\x23\x2b\x55\x32\xe1\x6a\x2c\x28\x72\x2a\x9e\x96\x99\x29\xcb\x1f\xfd\x6b\x22\x4c\xc2\x73\x2f\x28\x70\x96\xea\xd2\x0d\xfe\x1f\xff\xd1\x63\x52\xbc\x65\xff\x11\x7d\x38\x60\x67\xd4\x36\x5a\x2f\xb2\x3e\x71\x2f\x0a\xe8\x8c\x56\xdb\x63\x85\x18\xf3\x22\x05\x46\xa5\x47\xb5\x13\x1c\x16\x08\x78\x19\xc6\x9d\x63\xa5\x6d\xab\xc9\xbe\xdb\x95\xb5\xdc\xdc\x99\x23\xa9\xdc\x91\xed\xa7\xdc\xf2\x7e\x74\xd4\x90\x29\x89\x7e\xa2\xa7\x53\xae\xd2\x3e\xa7\x83\xd0\x0f\xbb\x70\xf4\x0d\x01\x30\xf7\x79\x68\x25\x55\x9f\xf7\xcd\x44\x64\xd9\x73\xc3\xeb\xd1\x0c\x56\x1c\xe7\xb3\x70\x7a\x19\xf4\x05\x9a\x38\x13\x8f\x22\x29\xbd\xd0\x07\xf7\x07\x96\xd0\x7a\xc0\xcf\x2e\x6e\xae\xfe\xeb\xf2\xd3\xf9\xc5\xcd\xfe\x9c\xef\xcf\xf9\xf3\x9f\x73\xa1\xee\x3b\x26\xde\xb4\x07\x08\x41\xb4\x45\x90\x9c\x22\x7c\x9d\x79\xf2\xee\x56\x8a\x39\x53\xf7\xbf\xf2\xe2\x49\xf2\x4a\xd5\x5c\xe5\xe4\xcd\xf3\x4a\x85\xba\x7f\x57\xe8\x69\x47\x1a\x93\xe7\xbb\x16\x9c\xd5\x4e\xf7\x79\x82\x87\xc0\x5c\x12\x3e\x22\xee\x83\xb6\xbe\x69\xd0\xc7\x4e\xfe\x79\x7e\x7a\x76\x71\x73\xfe\xee\xfc\xec\x6a\xc0\x8e\xb3\x8c\x49\x05\xf1\xb6\x75\x21\xbc\x10\x04\x14\xc4\x21\x9a\x54\xdc\xbb\x29\x3c\x4c\x44\x63\x68\x10\xac\x9d\xc4\x0a\x1a\xd8\x6f\xee\x77\x14\xb8\xe9\xc2\x49\xc5\xa6\x65\x66\x65\x9e\x79\xb3\xa3\xe9\x55\x1a\x41\x5c\x77\x24\x84\x0c\x67\xdc\xd8\xca\x44\x99\x65\xcc\xf2\x3b\x10\xe9\x13\x91\x3a\x3e\x10\x42\x99\xfd\x5a\xb1\xd2\xcc\x99\xba\x0f\x7c\xa5\xc4\x2b\x89\xea\x48\x7b\x1f\xcf\x70\x44\xdd\xde\x93\xcd\x63\x9b\x5b\x0a\xaf\xc5\xaa\x62\x38\xd1\xc3\x02\xfa\xd8\xda\xa2\x76\x55\xf8\xe0\x08\x7a\x31\x0b\xea\x8b\x80\x49\x39\xcb\xf4\x03\x9b\xc8\xb1\x63\xb3\x99\xb8\x17\x99\x77\x5b\x46\xc6\x09\xab\x83\x51\x59\x17\x10\x18\x5e\xc8\xb4\x76\x72\x70\x18\xa9\x98\x93\xee\x33\xcd\x51\x6b\xc4\x42\x5a\x06\xb5\xf0\x53\x91\x67\x7a\x36\xa5\xda\xf5\x29\xbb\xb6\xdc\x8a\x51\x99\x5d\x8b\x85\x35\xde\x97\xc6\x88\xb8\x21\x2f\xcb\x2c\xbb\xd4\x99\x4c\x56\xb9\x47\xcf\x81\x9a\x79\x99\x65\x2c\x87\xf6\x03\xf6\x49\x81\x52\x73\x9c\x3d\xf0\x99\xe9\xb1\x0b\xf7\x16\xf5\xd8\xf9\xe8\x42\xdb\x4b\xaf\x73\xc6\x66\x0d\x6c\xe8\x5e\xf5\xb7\x14\x74\x63\xf9\xb8\xa6\x8c\x02\x48\x46\xdc\x01\x9a\x16\x1e\xa4\x69\x3d\xa4\x5b\x6f\xeb\x37\xd0\x93\x7b\x81\xf0\xdf\xeb\x13\x31\x93\x23\x91\xcc\x92\xf9\xb8\xfa\xee\xa0\x52\xa1\x87\x65\x91\x10\xc7\x49\x64\xa9\x01\xdf\x5a\x75\xb8\x08\xd3\x8c\x22\x9e\xe0\x72\x4b\xc5\xd0\x19\x6d\x04\xa5\x66\xd1\x39\x0b\xf3\x45\x26\x66\x5a\xef\xfe\x82\x95\xde\x0b\x25\x8c\xb9\x2c\xf4\x70\xf3\xd5\xe2\xd7\xcb\x56\x7a\x29\x0a\xa9\x53\xac\xe8\x32\xf4\x60\x26\x61\xf6\x38\x07\x30\x0e\xd2\xdf\x2a\x1e\x0d\xac\xd7\x8b\x8d\x82\xbe\x1f\x71\x99\xb5\xae\x72\xdd\xc3\xe3\xef\xa5\x39\xca\x35\xfe\x4f\x3f\x10\xf3\x9b\x30\xc5\x3e\x8c\x6a\x76\x62\x29\xa8\xd6\x5d\x59\x6b\xc0\xdc\x74\x7a\x71\xfd\xcf\x0f\xc7\x3f\x9d\x7d\xa0\x5c\x98\x88\x8d\x90\x8e\x8a\x4f\xdc\x84\xdf\xbb\x47\x8e\xaa\xc1\x81\x65\xea\x20\x7c\x7b\xb8\x9a\xed\x77\xb9\x00\xee\x61\xec\x9a\xb1\x0c\x6d\xdd\x79\x14\x8f\xb9\x36\xa2\x8a\xa2\x8a\x1e\xef\x33\xf7\x13\x06\x1f\x82\xad\x17\xa0\xe5\xc6\xf2\xde\x63\x5a\xe1\x59\xaf\xb2\x90\x5a\xa0\x82\x5c\x3b\x25\xac\xdb\x30\x8f\x9f\x06\x77\x27\x42\x3d\x74\xfa\x85\xe9\xb1\x61\x89\xc6\xe9\x42\x4e\x79\x21\x11\xb8\xcf\x77\xc6\x33\xd4\x61\x90\xf6\xb3\xe6\x94\x4e\x3f\x9d\x5d\xb3\x8b\x4f\x37\xee\x1d\xbd\x17\x1e\x26\x1e\x7e\x87\x65\x0d\x85\xfb\x02\x17\x9a\x0e\xd8\xb1\x9a\xe1\x8f\xc1\xdc\x06\xe6\x3a\x08\xb3\xd4\xaa\xe6\x75\xbc\x7d\xf1\x6a\x00\xff\xef\xf6\x85\x5b\x67\x01\xa6\x35\x65\xdc\x7b\x11\xaf\xc0\x9f\x7b\x9e\x24\xc2\x18\xe9\xe4\xfa\x40\x4f\x5a\xfd\xd3\x3f\xec\xe1\x1a\x5e\xea\xc2\x6e\x2f\x82\x3a\x9a\xf4\xa7\x3c\x77\xf2\xa7\xa9\x79\xe4\x19\xa3\x92\xcd\xd5\x68\x8d\xd4\xc3\xbc\xd0\x56\x27\x3a\x8b\x67\xf1\x8f\x15\x43\xf9\x79\x4d\x9b\x79\x0a\xab\x04\xe3\xc5\x33\xd9\x42\x42\x2e\x04\x4f\xe5\x97\x66\xb1\x06\x41\xdc\x58\x98\x4c\x3b\xaf\xc5\x22\x49\x70\xe0\xfc\x17\x3e\x14\xd2\x7c\xbd\x0c\xb8\x8a\xa8\xdd\x94\xb8\x3e\x40\x87\x2a\x2c\x80\x30\xb6\x94\xd6\x27\x7a\x9a\x97\x56\x30\xff\x61\x14\x79\xe4\x7d\x36\x4b\x75\xc5\x0d\x64\x9c\x2a\xd8\xec\x08\xa5\x04\xa7\x5d\xbb\x49\xf4\xc3\xfa\x23\x25\x7c\x21\x58\x66\x59\x48\x3b\x73\x7b\x2f\x1e\xed\x36\xd0\xc5\xb5\x7e\x96\xa6\x50\x51\xdb\xc8\x2d\x25\xe0\x31\x23\xc9\xc6\x1b\x62\xd7\xa6\x09\x0a\xac\x47\x7e\x4d\xb0\x78\xf1\x68\x8f\xd6\x32\x73\x78\xc2\x8a\xbe\x3b\x79\x15\xfd\xe6\x7a\x5d\x08\x3f\x57\xd8\x32\x7f\xea\xab\x7d\x1d\x0d\xc3\xa4\x4a\x41\xf3\x8b\xc4\xc6\x4b\x9d\xb2\x09\x37\xcc\x94\xf0\x6c\x8c\xca\x0c\x5e\x3d\x69\x25\xcf\xe4\xef\x54\x05\x31\x92\xc7\x95\x26\xef\x1e\x5e\x2b\xb2\xac\x91\x55\xaf\x54\x56\x66\xfe\x0c\x63\x05\xc7\x7a\xcf\x54\x53\x11\x9e\xd8\xc0\x0b\x7a\x61\x22\x73\xa2\x5b\x8f\xfd\x1f\x40\x20\x0e\x2c\xa4\x26\x74\xc2\xe7\x68\x57\x73\x23\xa2\x15\xcd\x83\x98\x92\x71\x90\xa5\x72\x84\xfe\x15\x1a\x32\xc2\x54\x25\x12\x0c\xc5\x58\x62\x7d\x3b\x40\x66\xbc\xd4\xe9\x4b\x53\xc9\xc5\x3d\xd4\xeb\xa5\x25\xe7\x29\x88\xd3\x9c\x65\x5a\x8d\x21\xd1\xd4\x8d\x05\xea\x19\x64\xb0\xea\x82\x3d\xf0\x62\xea\x1e\x66\x9e\x4c\x20\x59\x95\x2b\x9f\xb8\x6b\xac\xe0\xe9\xac\x6f\x9c\x9a\xe6\x61\x85\xb5\xaa\xa6\xdf\xbc\xe9\x21\x5f\x95\x0d\x85\xe5\x21\x05\x35\xca\x57\x75\xd3\xaf\xed\xb0\x6f\x33\xca\xf8\xf8\x4b\x30\x54\x63\x53\xb9\x2a\xe6\xf1\xb7\x60\x82\x8c\x79\x9d\xbf\xd4\x4e\x7d\x06\xeb\x04\x67\xc3\xd2\x6d\x1d\xd6\x5d\x74\xfd\xce\x99\x76\x1c\x07\xc0\x64\xdf\xf3\xba\x65\xd8\x08\xdb\x83\x17\x8b\x22\xf3\x17\x7c\x0e\xe7\x8d\xa3\x16\x4a\x1e\x6c\xa9\xd8\xd9\xa7\x77\x15\x34\xa9\xd3\xf2\x79\x66\x36\xca\xf9\x85\x51\x3f\xa9\x95\x91\xac\xbf\x45\x36\xd9\xb9\xb5\x85\xc4\x95\x4c\x53\xe6\x39\x2e\x26\x99\x70\xa5\x44\xc6\xf8\xc8\x3a\x39\xdf\xc2\x2d\x1e\x0a\xa1\xdc\xc9\xf2\x86\x9f\xe0\xd9\xb2\x96\x27\x13\x32\x41\x11\x31\x0c\xa4\x53\x47\x3d\x1a\x5b\x08\x3e\xf5\xd9\x89\x53\x2e\xb1\x2b\xc6\x93\x42\x1b\x53\x59\xaa\xb0\x33\x0f\x1a\x6b\x90\x43\xf8\xa5\x32\x8c\x39\xa8\xb2\xb5\xc3\x68\x34\xad\x9a\x6f\x0d\xae\x79\x2f\x54\x10\x09\x0c\x44\xb0\x91\x2c\x8c\xf5\x09\x14\x38\x22\xd9\x54\x5d\x7f\x21\xf0\x40\xd1\x4c\x0d\x4d\x55\xa5\x20\xff\xe6\xd6\xe0\x7d\xac\x3a\xa4\xae\x52\x69\x48\x05\x30\x3d\xc7\x00\x50\xfc\x46\x42\xfb\x99\x02\xa9\x53\x5f\x19\x13\x7a\xa7\x3f\x45\xdd\xc5\x36\xbe\xc0\xaf\xaa\x83\xe8\x2e\x60\x38\x3c\xbd\x9a\xa0\x4e\x49\xfb\x9e\x0b\xcf\x1d\xd3\xc8\x90\x5f\x88\x44\xa0\x6f\xbc\xfd\x54\x6e\x70\x28\xb1\x52\x31\x70\x1e\x82\x63\xbd\x5c\xa7\x5e\xd2\x25\x44\x9b\x04\xba\xf9\xd8\x10\xab\xa3\xbf\xc4\x6e\x95\x68\x38\x46\x20\xb1\x81\xcd\x3f\x14\xd2\x5a\x01\x24\xf7\xa5\x97\x42\x4c\x43\xdc\x47\x85\xd3\x3e\x60\x1e\x42\x36\xfa\x56\x2a\x2b\xc0\xb1\x83\xe0\xea\xc3\x42\x8a\x11\x1b\x49\xa7\x0b\x22\xca\x68\xcf\xbd\x41\x13\xb2\xd5\x72\x63\x44\x01\xd3\x71\xaf\x87\xe3\x95\x34\xad\x01\xfb\x8d\xe6\x65\x8b\x52\x25\x3c\xc2\x81\x57\x3a\x15\xee\x05\x1a\x43\x44\x0f\xd5\x84\xfa\xfe\xd5\x5f\xdf\x00\x42\x84\x41\x0b\xb3\xd5\x96\x67\x61\x8d\x99\x50\x63\x47\x29\xbc\x3b\x10\x50\x1e\x8c\x4d\x81\x00\x99\x9c\x4a\x02\x28\x78\xfd\xed\xdd\xb0\x6e\x1d\x3b\x4a\xc5\xfd\x51\x44\xbe\x7e\xa6\xc7\xbb\x51\xd1\x5b\x8e\x40\x27\x8b\x1f\x49\x0f\x6c\xa2\x1f\x30\xb0\xac\x65\x6f\x89\x5b\xb9\x87\xd6\x47\x78\x0d\xa0\x84\x1a\x2e\xda\xa3\x67\xd4\x62\xd4\x5a\x4f\xe4\x5c\x1a\x76\x8d\x6b\xd8\xd2\x84\x21\xb5\x62\x43\x6d\x27\x5e\xd0\x80\x7b\x4b\x7b\x3b\x60\xef\x78\x96\x0d\x79\x72\x77\xa3\x3f\xe8\xb1\xf9\xa4\xce\x20\x40\xa5\x36\x17\x30\xa9\x27\x93\x52\xdd\x35\x8c\x4b\x7a\xcc\x74\x69\xf3\xd2\x7a\xe9\xa3\x6d\xc1\x23\xaa\x41\x85\x0c\xcc\xc7\x43\x55\xbd\x88\x47\x19\x0c\xf8\x9c\xd0\x99\xf1\xc0\xc4\xfd\x9b\xf8\x2c\x7c\xfb\xea\x7b\xc4\x1e\x01\x97\xdc\x5f\x5e\xb1\xcc\x29\x5e\x3d\xbc\x61\x82\xea\xba\x9b\x29\xcf\x32\xa7\x22\xc4\x67\xc6\x11\x7a\x47\x67\xc4\xae\x3a\x0e\x9d\x9f\xf1\x9b\x9b\xff\x82\x37\x5c\x5a\x23\xb2\x51\x0f\xeb\x49\x90\xd2\x63\xd8\x4b\x60\x7a\x2f\xe9\xf2\xba\x37\x63\x37\x8f\x2f\xc6\x26\x9d\x0a\xa7\x8a\xae\xb2\x47\xd5\xda\x36\x33\x20\x87\x99\x4e\xee\x58\x4a\x3f\xe2\x34\x41\xc8\x24\xe6\x50\x69\x6b\xbb\x35\xa5\xfc\x1a\x4d\xea\x49\x9c\x79\xb8\x24\xe0\xfe\x3b\x32\x58\xdc\x47\xe5\x1c\x56\x90\xdc\x89\xfb\x3e\x8c\xd3\xd7\xe6\x58\xcd\xfd\x9f\xda\x7c\x15\xd5\xa3\x78\x12\x92\xc3\x32\x77\x49\x71\x0a\xfd\x3a\x95\x1d\xf0\xe1\x03\x45\xe9\x23\x96\x52\x40\xe9\xac\xc2\xd9\xa9\xc7\x1f\xce\x09\xa3\x2f\x4d\xb0\x4a\x86\xf0\x06\xe3\x5a\xe3\xe3\x1f\xc2\x4b\x83\x6e\x9c\xce\x0b\xdd\xe0\x59\xd9\x82\x49\xcd\x85\x84\x2d\xce\xd8\xd9\x45\x02\x0e\xce\xfa\xbc\xe1\x66\x9c\x73\x31\xc2\x3f\x87\x75\x8b\x2c\xfa\x26\x57\x06\x87\x61\x88\x5e\x87\x64\x37\xc7\x71\xbc\x94\xe5\xe4\x1e\xf0\xc0\x49\xc3\x00\x41\x7e\xc0\xc4\x60\x3c\x60\x7f\xbf\x7d\xe1\x16\x31\x4e\x0a\xa7\xdf\x4d\x66\xb9\x28\xdc\xd9\x7a\x7b\xff\x7a\xf0\x6a\xf0\x23\x22\xd0\x63\xa0\xcd\xa4\x1c\xba\x26\x63\xad\xc7\x99\xf8\x67\xe4\x0a\x9b\xff\xe8\x1f\xcf\x1d\x7b\x61\xe4\xef\xe2\x27\xf7\x00\x76\x40\xb6\x70\x6d\xbd\x87\x84\x48\xa2\x48\x2e\x5b\x12\x73\xfc\xe6\xfb\x8d\x6b\x47\x2c\xc9\x10\xdb\xdd\x81\x03\x3b\xf2\xd2\xcc\xda\xaa\x5d\x5c\x86\x84\x07\x4f\x07\x78\x17\x30\xca\x01\x95\xc0\x96\x87\x6a\xe1\x99\x4c\x16\xcc\xa3\xf5\x6c\x96\xd3\xa1\x28\xbc\x3f\x27\x72\xe7\x90\x1f\x23\x07\x83\xca\xf9\xa5\x77\x5e\xf8\x58\xf4\x38\x08\x5e\xa6\xf8\xb1\x82\xbe\x7a\xec\x15\xd5\x15\x61\x8f\xfe\x3f\xde\xfc\xf0\xc3\x77\x6f\x76\x1e\x45\x3e\xd1\xc6\x9e\x5f\xae\x94\x74\xb8\xc5\x5a\x50\xe7\x97\x20\x00\x48\x92\xf2\xc4\x23\x61\x44\xd0\xc2\x37\x90\xb3\x5c\xb7\x3b\xa0\xb1\xeb\x66\x3e\x82\x7c\x53\x2a\xbb\x8e\x7e\xd6\xc6\x5e\xd0\x51\xaa\xbb\xe4\xab\x7e\xa7\xee\xa9\x62\xb5\xb3\x38\x60\x1f\xb5\xb1\xb1\xb2\x43\xe5\x8f\x95\x70\xc2\xed\x44\x2e\xbd\x95\x1b\xed\x61\x07\x2f\xea\x32\xc2\x28\x76\x7e\x7c\x71\xfc\xcf\xeb\x5f\x4f\x20\xb8\x8e\x82\xe7\xc1\x43\x1a\x67\x59\xe8\x94\x9c\xab\x6e\xb8\x34\xba\x5d\x4b\xbc\xab\x03\x06\xee\x5b\x9f\xa7\x8e\x5b\xe7\x0e\x13\xd9\x2a\x21\x7a\xcf\x97\x05\x9b\x79\xc7\xc9\x26\xb1\x1b\xc1\xd9\xb5\x42\xea\xa2\x66\x84\xd3\x5a\x44\xb9\x28\x9f\x4f\x2f\x7b\xec\xe6\xe4\x12\x42\x2e\xae\x4f\x6e\x2e\xeb\x9a\xc5\xed\x8b\x9b\x93\xcb\xee\x55\x4a\x3a\x32\xcd\xa4\xcd\x5d\xb8\x3d\xf3\x84\x40\x98\x2e\xdc\x13\x1a\x12\x9a\xad\xdb\x49\xf2\x9b\x92\x85\x76\x14\x7b\x62\xa0\x74\x99\xc6\x08\x17\x69\x9d\xf6\xe9\xee\x10\x02\x81\x0c\xa3\x1c\x0c\x92\xa5\x94\x7f\x93\xa6\x73\xb7\xa7\xf2\xec\xba\x56\xd2\xb0\xfa\x74\x7e\xe3\xd2\x76\x4b\x54\xa2\x68\xc9\x8d\xbd\x07\xf5\x71\xaf\xa8\xb7\x65\xde\x84\x53\x61\xb9\xcc\x4c\x28\xc1\x43\x33\xa8\xe8\xb4\xdc\xe0\x20\xe6\xa2\x86\x37\x9c\xeb\x4d\xd5\xe1\x3a\xd3\xad\xe6\xb1\x6a\xc6\x0f\xb8\x09\x3b\x9a\x2e\x6d\xe9\x5a\x73\xa5\x19\xb4\x4e\x74\xee\x76\x6d\x75\x51\xae\xe6\x8e\xd1\xf2\xfb\x42\xed\x09\x26\x8a\xfe\x11\xae\x0c\x5f\x4b\xce\x20\xbb\xe9\xf1\xda\x0e\xc5\x25\x48\x32\x37\xb2\x19\xa4\xda\x94\x1a\xe5\x54\xd4\x6d\x98\x91\x4b\x80\x1b\x34\x08\x1d\x14\xa2\x7f\x48\xd3\x7b\x32\xd2\xdf\xb4\x5d\x8c\xe5\xd4\xaf\x3e\xc1\x0d\x88\xce\xf4\x86\x7b\x10\xda\xae\x2c\x15\x18\x2b\x91\xe7\xa7\x5e\xb5\xc3\x17\x9c\xbd\x44\xb5\xe2\xed\xd1\x11\xca\x12\xa1\xdb\x7f\xca\x14\x2b\xc7\xbd\x5c\xff\x5d\x13\x8f\xd2\x9e\xac\x4e\xc4\x3c\x7b\x94\xd6\x9b\x05\x43\xd0\x0b\x6c\x63\x6c\xb2\x6b\x86\x51\xed\x5a\x10\x71\xe7\xd4\x4c\xbe\xa6\xd3\x5c\x23\x41\xed\x1c\x47\xd3\x5e\xaf\x76\x1b\xa6\x13\xf8\x0c\x8a\x35\x69\xdc\xb1\x2a\xa9\x59\x89\x9b\x72\x00\x56\xfe\x43\x86\x8d\x37\xde\xf3\x4e\x75\xe2\xe4\xb8\x43\x22\x1c\x34\xfa\x82\x67\xef\x2b\x60\xa4\x79\x21\xee\xa5\x2e\x0d\xc5\x03\xb4\xad\x9a\x75\x60\xa8\xed\x92\x62\x60\x04\xbb\x15\x12\x7f\x9b\x7b\xe7\x97\x73\x5f\x6a\x8f\xac\xd7\x3f\xd1\x1b\xf2\xdd\x4d\xef\xdd\xc3\x64\x36\xef\x82\x74\x2a\xd6\x4c\x58\xff\x1e\x6f\x04\x5c\xb4\xfe\xbd\xdb\xd5\x34\x76\xfa\xaa\xae\x28\x03\x58\x6b\x59\x01\x91\xa5\x24\x7f\x85\x32\x4a\x65\x01\x51\x23\x26\xaa\x00\x59\x8b\xcd\xfa\x9a\x1e\xd6\x4d\xa3\xfd\x3b\x98\xd7\xd0\xa4\x36\xef\xf2\xa6\x0d\xde\x3a\xe4\x7e\xc3\x99\xaf\x24\xe9\x39\xb6\x9a\x63\x41\x2f\xc9\x70\xba\x01\xc9\x1c\x53\x6f\xaa\x96\x6c\x0b\xb5\x60\x0d\x7d\xa0\xb9\x84\xb9\xf7\x25\x14\x02\x5b\x10\xad\xdf\xc1\x48\xd2\xb0\xca\x6d\x1e\x54\xbe\x1b\x0f\x64\x21\x78\xba\xca\x07\x79\x1d\xea\x1b\x3f\xb4\xc6\xd0\x4c\xb8\x61\x39\x37\x90\x3b\x0a\x00\x9c\x14\xc3\x8a\xb1\x60\x9b\xb8\x15\x29\xd4\xe3\x04\x5c\x44\xab\x6f\x8f\x0a\x76\x3b\x2b\xa7\xc2\xb4\x4c\x0f\x42\x76\xa2\x80\x37\xe2\x3b\xd9\x8c\x2a\x46\x13\x97\xad\x3a\x4a\x05\x4f\x63\xfb\x1a\x18\x94\x60\x13\x3c\xf3\xa5\x2e\x21\x24\xb7\x0d\x01\x2b\xe1\x59\x42\xe0\x2b\x20\xb0\x34\x7a\x1c\xb0\x9f\xe0\xc4\x69\x23\xe2\x71\x78\x21\x98\x29\x11\x11\xd5\x6a\x36\xe6\xc5\xd0\x71\x86\x44\x67\x19\x06\xd4\x93\x5d\x17\x73\xd7\xc0\x3d\x34\x16\x96\x25\x3c\xcf\xb1\x34\xc3\x0f\x6c\x38\x63\xef\x4f\x76\x6e\xff\xf3\x32\xc5\x4e\x8f\x0a\x85\x67\xd2\x41\x61\xe7\x55\x44\x24\x60\xe2\x60\x54\xcf\x50\x24\x1a\x76\xb5\x28\x05\x05\x62\x99\x5a\xbc\xa5\xc1\x6a\x24\xa9\x28\x9c\x7a\x16\x02\x21\x07\xec\x4a\x18\x11\xd7\xd1\x6f\xcf\x1d\x8c\x8e\x85\x2e\x98\x1c\xf9\xd2\x2d\x2c\xd3\x46\x18\x92\x3b\xac\x98\xe6\xba\x80\x74\x85\x01\x3b\x37\x3e\x9e\x0d\xe6\x04\xdd\x2a\x3d\x37\x2b\x4a\x0e\xdc\x2c\xa8\xed\xab\x60\x80\xfe\x79\x6e\xe5\x7b\x1d\x65\xca\x26\x7e\x1f\x72\x9c\x45\x97\x7d\xee\xed\x6c\x79\x92\xb6\x15\x4e\x4f\xb9\x98\x6a\x75\x46\x81\xf3\xcb\xfc\x8d\xb5\x86\x95\x14\xd3\x56\x27\x9b\xdc\x3f\xf8\x49\x88\xca\xef\x20\xbf\x74\xf0\x4b\x5c\x56\xee\x04\xff\xd2\x8e\xe5\xbd\x68\x1b\x66\x9b\xdb\xde\x71\x43\x77\x62\x45\x3e\xd5\x0f\xea\x81\x17\xe9\xf1\xe5\x79\x27\xd8\xc5\xab\xca\xf9\x96\xd2\xa7\xec\xf8\xf2\x1c\xb6\x02\xed\xec\xd4\x8b\x53\x1b\x16\xe0\x31\xae\x86\x29\x4c\xab\x59\x3d\x33\x50\xa1\x47\x05\xaf\xc0\xdf\x23\x0a\x61\xc0\x04\xc4\x68\xec\x36\x12\x63\x6e\x8c\x77\x6e\x88\xa8\xb3\x6e\x3e\xe5\x6d\x15\x8b\xf6\x69\x2c\xb9\x97\x6d\xed\x63\xff\x6c\x03\xeb\x18\x31\xc2\xaa\x38\xca\x08\x6c\xdf\x27\x3b\x40\x92\xf1\xea\xbd\x84\x66\x57\x40\xdd\xcd\x58\x33\xd6\xb5\x79\xe7\xba\x09\x65\x2b\x96\xf1\x67\xca\x78\x49\xdf\xb2\xaa\x84\x45\x0d\x40\x2b\xd7\xe9\x5b\x06\x75\x9e\x40\x1a\x84\x35\x9b\x1e\x03\x24\x36\xd3\xc3\xf4\x43\xae\x52\x56\xc1\xf5\xa2\x88\x91\x63\x6e\xfd\x02\x41\x76\xba\x2d\x2c\x1b\x95\x4a\xcb\x44\xaf\xee\x1c\x5d\x80\xc3\xd6\x1e\x19\x43\x57\x30\x82\x8a\xab\x05\xc4\xfc\xf9\xe0\xd6\xf2\xd5\x41\xc2\xd5\x81\x80\xf8\x4d\x69\x18\xcd\x95\x00\xbe\x00\xc3\x2b\x46\x95\xf6\x91\xc3\x43\xe1\xb1\xf2\xc8\x1d\x49\xba\x03\x1f\x1a\x9d\x95\x56\x38\xe1\xa7\x15\x11\xac\xf2\x5e\x96\x76\xd4\xff\x0b\x13\x2a\xd1\xa9\x07\x5a\xc1\x08\x72\xc7\x87\x2a\xa4\xad\x78\x26\xa1\x2c\x5b\x03\x53\x6c\x73\xc8\xe7\x77\xdb\x5e\xc1\xab\xb8\xa3\x4e\x97\xb0\xba\x7a\xa1\x72\x41\x53\xe1\xa5\x3b\x18\x52\xbd\x30\xd2\xd4\x04\xf0\x64\xa8\x48\x70\x80\x7f\x1c\x24\x79\xd9\xa3\x06\x83\xa9\x98\xea\x62\xd6\x0b\x8d\xdc\x8f\xb5\xaf\xa8\x05\xc2\xeb\x54\x7a\x4b\xeb\x0d\xee\xf8\x82\xe7\x11\xf8\xda\x2e\x5e\xf0\x8e\xd8\x9a\x0b\xbe\xa8\x07\xd6\xd0\x9d\x8f\x58\xf4\xdc\x7b\x3f\x08\x6f\x23\xab\x1e\xea\x3d\x4e\xe5\x1e\xa7\x72\x6d\x19\x2b\x9d\x3f\x47\x7f\x5e\x29\xeb\x6c\x9a\xdb\xd9\xa9\x2c\x3a\xde\xd6\x48\xe2\xe6\x8a\x02\xef\x43\x2c\x2b\x88\xdc\x9c\xe2\x75\x1a\x3f\x3d\xed\x7d\x9c\x8a\x54\x96\xab\xf0\x8c\x20\x96\xcc\x91\x07\x40\x8d\xac\x2e\xf8\x58\x30\xfc\x32\xe4\x4e\xf0\xe4\x0e\x2f\x45\x14\xa0\x7b\x13\x49\xf7\xd2\xb0\xdb\x17\xb7\x2f\x7c\xd0\xad\xe0\x2a\x5c\x67\x9f\xad\x12\x05\xea\x62\xe7\xd1\x65\xf6\x24\x23\x9c\xb2\x03\x6a\x78\xe8\x9e\xd9\x8f\xc0\xd1\xd7\xb6\xea\xd2\x42\x8e\x88\xc0\xdf\xc0\x00\xa9\xdc\xc8\xdb\xf6\xbb\xf8\xe0\xde\x9f\xad\xfd\x58\x03\xff\xe2\x0d\xfe\xb3\xe4\xca\x4a\x3b\x5b\xee\xcb\x82\xf4\x1d\x8e\x81\xe8\x7a\xc4\x32\x9d\x40\x02\x11\xee\x50\xc8\xd1\x46\xf7\x80\x34\xcc\x9f\xd9\xa0\xc2\x85\x58\x54\x78\x3e\xe1\x36\x67\x46\x7b\x50\x49\x80\x63\xd0\x05\xc3\x27\x33\x6c\xca\x0d\x20\xb7\x3c\xca\x69\x39\x65\xa5\xcf\x66\xa9\xb5\xa9\x06\x7a\xf0\x99\x35\x00\xf7\x22\x15\x7c\x54\x67\xcc\x90\x0f\xea\x29\x18\xa1\x84\x00\x42\x85\xe7\x81\xa6\x04\x89\x88\x46\x21\x69\x00\xaa\xe5\xd6\x92\x94\x02\xbc\x65\xf3\xec\x29\x99\xd5\x8f\x9e\xcf\x25\x0e\x0b\x2f\x95\x37\x30\x35\x0f\x52\xfb\x39\x2a\x8d\x28\xfa\xe3\x52\xa6\x2d\x27\x68\x87\x5c\x86\x4c\x12\xc7\x18\x86\xba\x84\xc1\x34\x5a\x52\xa0\x45\x99\x67\xa4\xa3\xa7\x14\xed\x6d\xbc\x6d\x25\x0a\x6e\x5d\xcd\x27\x26\xda\xd8\x4e\xe6\x78\x01\x41\x98\x95\xc4\x0c\xb5\x80\xc9\x34\xb4\xbe\xd7\x24\xef\x30\xde\xf9\xe5\xdc\x48\x03\xf6\x91\x40\x79\x87\x82\x65\x5a\xe7\xc0\x9e\x0e\x5e\x7f\xfb\x23\x82\x92\x1c\xfd\xe5\xd0\x3d\xb6\xea\xae\x8f\x37\xe6\xe0\xf5\x9b\xbf\x0e\xbe\xfd\xe1\x7b\xf8\xed\xf5\x9b\x43\x30\x5d\x46\xbf\x43\x1a\x69\x02\x11\x36\x07\xdf\x7e\xfb\x3d\x75\xf2\xed\xf7\x87\x03\x76\x7e\x79\xff\xa6\xba\x37\x90\xc6\xe9\x24\x84\x12\xc5\x74\x4c\x4d\x0f\xc2\xa5\xbb\x28\xee\xc4\xe6\x19\xb7\xee\x95\x36\x03\x76\x9c\x19\xdd\x63\x89\x28\x40\x53\xa8\xce\x19\x24\xa3\x43\xf5\x7c\x43\x72\x81\xfb\xad\x9f\x17\xfa\x71\xd6\x0b\x22\x09\x8c\x0e\x26\xc0\x4d\x8a\xd6\xe8\x54\x5c\xac\xde\xd3\x4a\x10\xbb\x70\x42\x87\x3b\x09\xa1\x7a\x77\x45\xf0\xb6\x74\xf6\x54\xa0\xb7\x27\x86\xd5\x40\x82\x82\x79\x48\xd5\x0c\x3e\x9d\xa7\x8d\xd0\xf0\xdb\x5b\x0d\xae\x3c\x0c\xe5\x0a\x8b\x81\xc7\xcb\xb4\xda\xd7\x56\xc3\x34\x7d\x6f\xef\xa8\xac\x86\x6b\x6b\x0e\x32\xdf\x5a\x6f\xf0\xd7\x7e\x45\xec\x7d\xdc\x6c\x09\x6b\x08\x86\x57\x88\xb3\xed\x52\x1e\x31\xbf\xec\x16\xc5\xeb\x6e\x6a\x8c\x55\x9c\xc7\x51\xbd\x88\xae\x00\xa1\xbd\x11\x46\xdd\x48\x67\x99\x7e\x00\x97\x01\x56\x25\xfe\xa5\xba\x1d\x20\xe2\x10\x16\xe9\x80\x7d\x56\xfd\xbc\x10\x23\xf9\x28\xc8\x32\x03\x17\xc4\xc9\x5b\xc5\x3d\xbd\x7f\xe7\xc7\x17\xc7\x55\x4f\x1e\xee\x05\x1b\x1f\x70\xc3\x72\x51\xb0\xab\x77\x27\xfd\x37\xdf\x7d\xf7\x03\xbc\x3a\xc4\xf9\x1f\x1e\x1e\x06\x92\x2b\x3e\xd0\xc5\xf8\x88\x1b\x23\xc7\x80\xdd\x68\x8e\xa8\x8b\x3e\x74\x71\x38\x60\x17\x5a\xf5\x43\xff\x7e\x75\xa1\x84\xa3\x93\x73\x1a\x53\xf4\xf9\xbd\xd3\x99\xbb\xea\x5c\xcd\x06\x89\x9e\x1e\x4d\x67\xfd\xa4\x34\x56\x4f\xfb\xbe\x8f\x01\x7b\x17\x17\x0e\xf7\x48\x0a\xa0\x59\x5c\xe3\x24\x8e\xab\x6d\xe8\x52\xf4\x7b\xcb\xca\x5b\xe0\x23\x8c\x19\x3c\xee\x5c\x94\x21\x81\x31\xf6\x60\xf6\x70\x0d\x5f\x7a\xd0\x41\xef\x2e\xf2\x45\xc6\xdc\x15\xa2\x25\x5c\xd6\x02\xbb\x6b\x9e\x5c\xcf\x80\xd0\x26\x20\x47\x10\x82\x9c\xd3\x41\x5e\xee\x15\x5a\x05\xfa\xd5\x61\xa5\xf9\xbc\xb7\x60\xb7\x7e\x82\xf5\x23\xe2\xe9\xd5\x5b\x74\x85\x56\x47\xc7\x3b\xc2\xdd\x9c\x5c\xee\x38\x30\x3e\xdf\x85\x27\xc3\x33\xaa\xeb\x72\x68\x44\x17\x8e\x86\x0d\x91\xa7\x41\xa5\x41\x10\x0b\x51\xb0\x21\x65\x1e\x62\x9c\xa6\x53\xad\x00\xe5\xc1\x63\xb8\xa1\x8c\x18\x10\x96\xe9\xa7\x08\x00\x0a\x3d\xdf\x27\xbc\xb0\xc2\x48\x0e\x2c\x2b\x2d\x13\x68\x75\x1c\xfa\x7f\x64\x97\xd8\xd9\x3b\x5d\x30\xf1\xc8\xa7\x79\x26\x7a\xe8\x4f\x7a\x7b\xab\x18\xfb\x6f\xf7\x3f\xac\xfa\xe0\x2d\xfb\xfb\x7f\xdf\xbe\x90\xf9\xed\x8b\xb7\xec\xf6\xc5\xeb\x57\x03\xf7\xff\x07\xaf\x6f\x5f\xfc\x4f\x8f\xcd\xfd\xf0\xed\xe0\xdb\xdb\x17\xff\xf3\x8f\x1e\xf6\x01\x03\xbd\x05\x62\xb8\x3e\xdc\xcd\xc2\xc6\x1c\x53\xe4\xdc\xaa\xdc\x1f\xfe\xf2\xe6\xc7\x1f\xb0\xb7\xaa\xc9\xb0\xde\xe4\xbb\x57\x7f\xfd\x9f\x7f\xb8\x5e\xff\x07\xcb\xaf\xa0\x89\x01\xe2\xc2\x9a\x64\x20\xb6\x73\x2f\xc5\x03\xf8\x91\xdf\xe2\x64\xf8\x5b\xf6\x77\x16\xa6\xff\xd6\x8d\xd9\x63\x61\xd6\xf0\x6f\xe6\x27\x3e\xac\xb7\xfd\xee\xd5\x5f\xe3\xa6\xdf\xbd\xfa\x2b\xfb\x47\x87\xa7\xc6\x53\x70\x95\x5d\xe2\x32\xde\x7d\x10\xf9\xf5\x68\x44\xae\x73\xb0\xa6\x52\x26\x8c\xb7\xc4\x14\xc2\x97\x7b\xe0\x86\x64\x29\x77\x32\x4c\x2c\xb5\x54\x08\x01\xb1\x6f\x9c\x8f\x50\x3f\x02\x28\x9d\x21\xcf\xb8\x4a\x20\xe8\x40\xa5\x84\xdc\x81\x2a\xae\x95\x99\xfc\xbd\xc9\x8b\xb7\x47\xa3\xad\x2b\x06\x6b\xdb\x3f\x6a\x82\xa0\xbd\x72\xeb\x3e\xde\x3d\x89\x9d\x20\xec\x85\xd5\xca\xda\xda\xa0\x37\x1b\x8a\x84\x93\x25\x60\x56\x0f\x0b\xf1\xe1\xc9\x01\x92\xb8\x87\xbf\x17\x22\xc1\xae\x10\x4e\x09\x6c\xc9\x3e\x4e\x26\x99\x88\xe4\x0e\x98\xde\x82\xa6\x1e\x90\x09\x5b\x7e\xc5\x1b\xd3\x05\x97\x32\xf2\x66\x1b\xc6\xef\xb9\xcc\x40\x6f\xa7\x10\x1c\xbf\x1b\xf1\x96\x3d\xd1\x82\xd7\x41\x4f\xdc\xbd\x82\xdc\x45\x35\x26\xa5\xb8\x8a\xfe\xa9\x73\x3a\x60\x07\xd2\x31\x70\x84\x3b\x76\x12\x6b\x62\x4b\x9e\x79\x71\x71\xc0\xce\x90\xc1\x03\x0f\x74\xaa\x93\x63\xad\xd3\x99\xb9\x4f\x6e\x5f\x00\xaf\xc3\xc7\xc8\x31\x79\xe4\x7c\xc4\xfd\x77\xc3\xff\xc3\x0b\xb0\x33\xee\xef\x28\xbb\xce\x44\xbf\x1b\x7c\xb7\xf6\x7c\xfe\xfa\xdd\x8a\xd9\xfc\xf8\xa6\x36\x99\x2e\x4f\xc1\xbe\x28\xfb\x17\x2b\xca\xbe\x2f\x5e\xfe\x67\x29\x5e\x8e\x56\x90\x95\xe5\xcb\xaf\xbd\x4e\x8b\x7b\xf3\xd2\x54\x15\x71\x9f\x9a\x62\x2d\xa5\xcd\x63\xab\x3b\xf2\xda\x2e\x68\x0b\x28\xd3\xf2\x2c\x9b\x17\xef\x4b\xe5\x6f\x7a\x96\x31\xea\x72\x10\xc9\xf7\x4e\x78\xc9\x33\x9e\x78\x9c\x2f\x6a\xc2\x78\x92\x68\x4a\x29\xc2\xdb\x7e\x7e\x69\x50\x7e\x31\x13\x5e\x88\x01\xab\x2a\x34\x91\x41\x16\x34\x91\x00\x48\x07\x4f\x7b\x8f\x19\x8d\x7a\x34\x4a\x51\x68\xb5\x70\x12\x91\x63\x12\xf3\xbf\xb9\xf3\x7b\x50\x13\x96\x12\xd7\x06\x03\x62\x03\x66\x64\x65\x0f\x3f\xf4\xc0\x78\x1e\x26\x10\xde\x34\x9a\x0f\x82\x3b\xa7\xd2\xe4\x19\x9f\x21\xe8\x49\xd5\x87\x5f\xa6\xcf\x2c\x88\x10\x29\x51\xdd\xb9\xd0\xd1\xc2\xb2\x8c\xf1\x3c\x17\x1c\xc2\xac\x01\xd7\x2a\x22\xa0\x4a\xd9\x45\x53\xc0\xf4\x73\x31\x7c\x2a\x68\x2c\x77\xd3\xc9\xa6\x5f\xfb\x36\x12\xd5\x13\x3d\xcd\x0b\x69\x84\xe3\x2c\xf4\x22\x3f\x8d\x28\x43\xca\xe7\xce\x85\x99\xf0\xf7\xa7\xaa\xa5\x5f\x49\x43\xb5\x9f\xb7\xad\xa3\x1f\xba\x85\x12\xfd\x1d\x04\x2d\x00\x4b\xaf\xf9\x86\xc3\xc5\xeb\x64\x55\xdc\xbf\xef\x5f\xea\x7d\xef\xe2\xfa\xff\xb0\x78\x4f\x77\x7a\x0d\xb7\x53\x9e\xf6\x92\xca\x9f\x45\x52\x71\xe7\xad\xbb\x9c\x02\x1c\xe7\xd9\x64\x94\x98\x56\xeb\xfb\x7f\xe0\xa2\xac\x32\x99\x3e\xdf\xab\x01\xec\x7d\xc7\x2f\x47\x5c\x34\x69\xd9\xcb\x11\xb5\x8b\x43\xd8\x40\x4a\x08\x41\x82\xdc\xcb\x72\xa1\x60\xa7\xe9\x94\xd2\x88\x6d\xb7\xf1\x19\x86\x01\xcf\xd4\x3d\xad\x66\x69\x64\x46\xad\xa8\x28\x94\x55\xcb\x1c\xbf\x70\xcc\x60\x91\xed\x5f\x8c\xe4\xe3\xaa\x07\x4f\x55\x65\x9b\x30\xd8\x7e\x24\x1d\x9f\xd1\x2c\x2f\x44\x2e\x14\xb8\x5d\x7d\xc5\xe0\xb9\x02\xb8\xb1\x7f\xa5\x56\x34\x6c\x83\x90\x17\x91\x14\xdb\x39\x61\xaf\xa1\x87\xee\xd4\xc4\xf6\x8b\x49\xb9\xbd\x21\x09\x2a\xd0\x2d\x3d\xa2\xbf\xf2\xa2\x16\x5e\xa9\x5a\xcb\xb9\xc5\x05\x88\x79\x05\x94\xd3\x41\xf0\x59\xb3\xb6\x4e\xdb\xe0\x3b\xdc\x63\x78\x0c\x57\x4c\x67\xc3\x22\x96\x21\xed\xde\x57\x7c\xeb\x56\x16\x0f\xb1\xb2\xd5\x2c\x2a\xd7\xd1\xf2\xd9\xbf\x7b\x29\xcc\x3a\x04\x56\x77\xfc\xab\xe6\xd6\xb7\x55\x3a\x5c\xb3\xa0\x63\x87\xbb\x4d\x2c\xdf\x2b\x9a\x6d\x3b\xfa\xd2\xf8\x72\xe3\x91\x64\x44\xb5\x55\x51\x62\xa3\x2c\x7e\x08\xc0\xda\x34\xa9\x6e\xd5\x33\xdc\x8d\x81\x74\x79\xe9\x42\xb3\x7a\xac\xb6\xa9\x53\x02\x57\x86\x3a\x0a\x7e\xd4\x2d\x7d\x1f\x79\xfd\x2f\x62\xb6\x93\xe7\xee\x17\x31\x5b\x33\xa8\xdf\xbd\x3c\xf0\x54\x57\xef\xce\x22\xe8\x99\x67\xce\xfe\x59\x96\xf3\x43\x31\x5a\x91\x75\xcb\x1d\x8a\x5e\xfd\x9f\x90\xf1\x13\xfd\xcd\xa7\x05\x85\x3f\xd4\x92\x86\x4c\x2e\x92\x81\x0f\xb2\xa2\x7f\x12\xe3\x3a\x4e\x12\x5d\x2a\x4b\x3f\x00\x5a\xc3\x00\x61\x1d\xc3\x3f\x73\x9d\x36\xff\x65\x16\x10\xf2\x4f\x9e\xcb\x41\xff\x14\xf9\x44\x4c\x45\xc1\xb3\x3e\x05\xb8\xd6\xb3\x3c\x7a\xcd\x14\x8f\x7a\xda\xc7\xdc\xd7\x9d\x32\x40\xe6\x24\x9e\x2d\xaf\xd5\xb5\xef\x64\xd3\x3b\x85\xb3\x60\x32\x46\x29\x0d\x27\x73\x97\xd2\x90\x27\x57\xa7\x62\xf4\x8a\xcd\xb7\xf7\xbe\xb6\x5a\x49\x7a\x02\x1e\xe4\x29\x94\x3e\xa8\x92\xc0\x21\x20\x50\xe1\x43\xe6\x1e\x5f\xc8\x21\xd4\x50\xe1\xae\xe8\x63\x65\x1f\xa8\x5c\x9b\x58\x79\x2f\x1d\xd7\x0b\xd1\x53\xa9\x18\x96\xe3\x31\x64\x61\x84\x39\xc4\x11\xc1\xe4\x4d\x8e\x8e\x67\x01\x76\x9c\xb4\xcc\xdc\x40\xe3\x92\x17\x5c\x59\x21\x4c\xc8\xb7\xa0\xfa\xb2\x95\xc8\x40\x15\x19\x7d\xba\x3b\x54\xc2\x85\x12\xa8\x0f\x58\x1c\xd7\x4d\x16\x8c\x4b\x58\x4f\x4c\x17\x8d\xda\x1a\x6e\x61\xf3\x53\x63\x60\xc5\x35\xf4\x3d\x80\xa3\x26\x22\x60\x3e\xd0\x64\x09\x91\x5e\x6a\xd5\x0b\xb9\x95\x44\x43\x71\x2f\x13\x18\xa1\x75\xd9\xd3\x2a\xfe\x15\x89\x3d\xf4\x39\x05\xd9\x8c\xf9\x82\xa1\x55\x6d\x2a\xc7\x9a\x9c\x78\x33\xab\xd2\x0b\xe1\xab\x7b\xc9\xa3\x83\x16\x56\x11\x0d\x64\xca\xa1\x9f\x6d\x93\x82\x95\x49\x38\x1e\x87\x69\x27\x71\x41\xf7\x51\xb5\x20\xc5\x78\x96\x4f\x16\xd6\x0b\x9a\x3f\x5e\xa6\x5e\x36\xa8\x83\x51\xb1\x18\xaf\xb2\x6b\x1d\x53\x75\xef\x60\xe1\x13\xa1\x20\x7c\x6b\xb5\xf7\x93\x8f\xa7\xfb\x32\xef\xfb\x32\xef\xcf\x5f\xe6\x9d\x66\xb0\x0a\x60\x30\x9c\x5e\x06\x7d\x61\x29\xd0\x50\xf8\xac\x2a\x28\xee\x96\xd0\x7a\xc0\xcf\x2e\x6e\xae\xfe\xeb\xf2\xd3\xf9\xc5\xcd\xfe\x9c\xef\xcf\xf9\xf3\x9f\x73\xa1\xee\x3b\xbb\x22\xda\xec\x07\x60\x2c\xb2\x2d\xd5\xf5\x9f\xa1\x56\xfc\xaf\xbc\x78\x92\x72\x1c\x0d\x00\x98\xad\x2a\x71\x08\xb4\xba\x76\xa4\xb1\x97\xdf\xe3\x22\x47\xdd\xec\x36\x78\xed\xee\xc4\xac\x32\xf8\x54\xdc\x07\x25\x9d\x69\xbb\xd5\x8a\x1d\x67\x19\x93\x0a\x71\xe0\xa1\x83\xaa\xde\x22\xe5\xd4\x60\x89\x2c\xac\x5f\xdc\x0e\x49\xe4\x63\x07\xa9\x96\x1c\x8a\xd3\x74\xe1\xa4\xaa\x7c\xf2\xb4\xc0\x5e\xa4\x7e\x73\x63\x74\x82\xc2\x27\xf0\x84\x80\x93\x19\x80\x4c\xb2\x0c\xcb\x2b\xe6\x85\x48\x44\xea\xf8\x80\xe3\x85\x59\x29\xaa\xb5\x0e\x67\xa4\xc3\x07\xbe\x52\xe2\x95\x04\x9a\x2c\xe8\xe3\x19\x8e\x68\x64\x99\xdf\xe6\x96\x76\x41\xe5\x3b\x8d\x1e\x16\xc2\x5b\xfb\x42\x20\x7c\x97\x65\x96\x75\x2b\x1d\x06\x73\xcd\xcb\x2c\x63\x58\x7b\x75\xc0\x3e\x21\x42\xfa\x31\xa0\x55\xf5\xd8\x85\xe3\xf4\xbd\x5a\xad\xff\xba\xf5\x0d\x1b\xba\x37\xf3\x2d\x39\x8b\x2d\x56\xd8\x8b\x90\x39\x74\x51\xeb\x00\xf3\xbb\x1f\xa4\x69\x3d\x02\x5b\x13\xed\x1b\x2f\xfb\xf7\x37\x25\x62\xa8\xae\xb9\xb1\x12\xfc\x21\xf4\xb0\x4c\xf9\x0d\xad\xbc\xa8\xe1\x74\xa1\x07\xca\xe6\x69\xd1\xa7\x16\x19\x47\x9e\xad\xe4\x7f\x55\x5b\x76\x8b\xd9\xae\xeb\x01\x68\xd1\x2b\x17\xd7\xd9\x07\x6d\x0b\x32\x77\x3c\xb7\x25\x00\x44\x3e\xd5\x6a\xdc\xc8\xa5\xed\x41\x45\xdd\x1a\x98\x9e\x4a\x17\x2c\x65\xa3\xdc\x9b\x2e\x81\xcd\xeb\xd0\x73\xa7\xdc\x71\xa3\x9a\xf0\x0b\x8c\x73\xcf\x55\x10\x7d\x27\x07\xf0\x0b\x54\x17\xaf\xaa\x8a\x77\x9e\x7b\xbb\xd1\xa3\x34\x82\x99\x9c\x52\xff\x7c\x97\x19\x05\xd4\x51\x6d\xbf\xd4\xeb\xf6\xb9\x5e\x62\xe9\xfb\x62\x65\xc3\xa9\xed\x96\x3c\xef\x99\xea\x74\xef\xe6\xc4\xed\xcb\x2f\x37\x89\xb1\x2f\xbf\xbc\x2f\xbf\xfc\x55\x95\x5f\x86\x8c\xfb\xf0\x24\x76\xc0\x0c\x70\xdb\xeb\xee\x93\xad\xa5\x0a\xc7\x24\x80\xc9\x5f\xea\xf4\x3a\x17\x49\x04\x22\xd9\x26\xd0\xe0\xf0\x3e\x5f\xb3\xa5\x41\x50\x09\xcb\x70\x61\x83\x4f\xc4\xb0\x83\xf3\xcb\x93\x1e\xbb\x3c\x3f\xed\x31\x61\x93\xc3\x16\x54\xf4\x80\x97\x27\x2c\x1e\x90\x45\xa2\x15\x62\x88\xbb\x31\x1e\x26\xdc\x02\xb9\xa3\x81\x00\x09\x70\xc2\x2b\xc4\x15\xaa\xc0\x15\xe3\x64\xb6\xdd\x56\x10\xc6\x3c\xbc\x0f\x9e\x04\x34\x6d\xef\xa6\x4c\xf2\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\x76\x30\x81\xdf\x8b\xa5\x80\xf5\xf0\x3b\x95\x0c\x14\x08\xbe\x38\xaa\x7c\x0d\x46\x4f\xc5\x03\x80\xd4\x79\x22\x64\xa5\xb1\x9d\xe2\x7c\x79\x13\x9f\xbd\x6d\x74\x40\x5d\xc4\x96\x50\xe1\xcf\xf2\x3b\xa1\x8e\x08\xc4\x20\xaa\x68\x86\x77\xea\x2a\xfc\x81\xf2\x99\xd6\x7f\x14\xf6\x69\x57\x5f\x2e\xed\x2a\xd9\xb8\x36\x8b\x13\x4e\xe0\x3c\x3a\x65\x5e\x27\x10\xd0\xd6\xbc\x6d\xdb\x23\x13\xc1\x10\x50\x5b\x6d\x77\x69\x3d\x1f\x65\x52\xe8\x6e\xf5\xda\xc8\xaf\x27\x0d\xc3\x3b\xe9\xee\x03\xaa\xfb\x7a\x88\x20\x5f\x0b\x63\x4c\x0b\x03\xf3\x36\x96\x4f\xe7\xd0\x04\x9f\xb4\xce\x9c\x93\x28\xe7\xca\x1c\x8a\xc6\xf4\xdd\x21\x2d\x20\x7e\xe2\x00\x16\xaa\x47\x10\xdb\xee\xf5\xf8\xdc\xa2\x0a\xc4\x6e\x66\xb9\xf8\xe8\x86\x3e\x5c\xe0\xda\x52\xf7\x10\x15\x81\x21\xb1\xcf\x82\x8c\xe7\x16\x48\x59\x70\x91\xfe\x1e\x58\xe6\x50\x97\x76\xc1\xa6\xec\x33\xf3\xbe\x48\x66\x9e\xd3\x84\xbe\xa2\xab\x30\xd5\x78\xfe\xc1\xe9\x89\x7c\x4b\x25\x11\x6a\x68\xb8\x29\xe1\x8e\x6c\x53\x0a\xf4\x98\x4d\xca\x29\x57\xfd\x42\xf0\x14\x02\x6e\xa2\xdf\xbd\x75\xaa\x51\x36\xcf\xbd\xdd\xf0\x62\x6d\xf0\x96\xee\xf1\x1a\xe6\x48\xd2\xa9\x56\x23\xb8\x28\x2b\x2b\x03\x77\xff\x5d\xd8\x1e\x23\xba\x00\x4a\x6f\x81\x30\x8b\x58\xf4\xbc\x40\x4e\xc0\x2d\x60\xae\x19\x0a\x0a\xc3\x02\xab\x64\x84\xb3\x05\x57\x06\x28\x5d\xa9\x20\x81\x38\xf5\x92\x89\x1b\x95\x7c\xcb\xb6\x2a\x12\xbe\x0e\xcb\x0d\x48\x88\x46\x24\xda\xed\xf2\xcc\x73\x3b\x80\x69\x76\xbb\x9b\xe8\x69\x9e\x89\x47\x12\x1c\x17\x7b\xf9\x9c\x38\x2b\xd5\xf8\xc4\xa3\xcc\xae\xe1\x74\x86\xd3\xa1\xb3\xcc\x07\x75\x8b\xa9\xb4\x60\xdb\x08\xef\x73\x8f\x89\xc1\x78\xc0\xfe\x77\x3d\x34\x81\x0a\x81\xfd\xef\x8d\x88\x4c\xf3\x3d\x57\x6e\xf3\x57\xba\x47\xea\x35\x14\x69\xb2\x92\xbe\x8d\x67\x97\x09\xdb\x7f\x9c\xfd\x3e\xda\x64\x52\x46\x14\x4d\xc9\x7e\xad\x00\x1c\x47\xa9\x6b\xec\x63\xd9\xa6\x9f\x72\xcb\xa3\x82\x62\x28\x00\xe1\xd8\x31\xa7\x8c\x52\x89\x74\x01\x78\xd7\x72\xc4\xa4\x3b\xe2\xde\xa5\x63\xb5\xc2\xaf\x17\x39\xe2\x9a\xa9\x4b\x9b\xac\xa7\x5b\x32\x67\x00\x37\x66\x61\x67\xa3\xb5\x0c\xd8\x75\x93\x03\x2c\x67\x00\x0b\x16\x44\x9b\xb8\x94\xdf\x10\xaa\x7d\x44\xc8\x83\x0b\x27\x2d\x67\x3d\xf6\x1b\x2f\x94\x54\xe3\xc3\x1e\x53\xe2\x01\xf0\xef\x0d\x4b\xc2\xbc\x20\x3e\xde\x17\x3d\x2d\x1d\x4b\xdc\xad\x86\x1b\x98\xe9\x62\x29\x6f\x95\xfe\x1b\xfe\xfe\x64\x89\xe3\xa0\x40\xd7\x7e\xda\x3a\x61\xdc\x75\xb9\x0a\x66\xc4\xb7\x69\x40\x8c\xdc\x8b\x3d\xbe\xc8\xd7\xae\xe8\xae\x85\x2f\x72\x3f\x1f\x3b\xb2\x75\xd8\x23\x1c\xd9\x8e\xd6\xbf\xbd\xf6\xf2\xf5\x68\x2f\x7b\x5c\x91\x3f\x1e\xae\x48\xe0\xe5\xbb\x7f\x22\xae\x9b\xc2\x57\xeb\x23\x81\xad\x42\x21\xb6\xb8\x90\x21\xa0\x41\xc3\xaf\x81\xd3\xf4\x98\x1c\x88\x81\xbb\x5d\x5e\xa7\x78\xe0\xe6\x48\x1a\x36\xe1\x79\x2e\xa0\x7a\x96\xeb\x49\xaa\x52\x97\x26\xc3\xaa\x3d\x00\xd2\x06\x01\x45\x5d\x92\xb3\x57\x1b\xf9\x2e\x82\x81\xaf\xd2\x89\x29\xa0\x1e\xc2\x64\x60\xc6\x65\x5e\xbd\x11\xc6\xb2\x89\xe0\x85\x1d\x0a\x6e\x61\x22\xbb\x36\xfd\xb9\x21\x3e\x91\x95\xed\xcb\x59\x00\x49\x9c\x87\xf5\xc6\xd6\x02\x9a\xd8\x1a\x75\x7f\xe7\xef\xb7\xad\x44\x40\x3c\x30\x6f\xd9\x27\x35\xd6\x60\x4c\x2f\xd8\x3b\x0f\x41\x7c\xea\x78\x72\x82\x7c\xf3\x32\xe3\x4a\x81\x1d\x7e\xaa\xef\x39\x42\xb0\xbf\x1e\xbc\xfe\xcb\xa6\x32\xe0\x26\x9e\x8b\xd5\x50\x03\x55\xab\xf6\x6a\xbb\x50\x76\x8a\xfc\x19\x9d\xce\x6f\x37\x65\x31\x28\x95\xf8\x46\x35\xad\x9f\xd2\xb0\xb1\x50\xa2\xd8\xd0\x77\x3d\xd1\x66\xe5\x25\xd2\xa9\x8f\x3b\x52\x3b\x19\x7e\xeb\xfd\x7a\x14\xc9\xf1\xaa\xa2\xbc\x55\xa3\x5a\x45\x8e\xdb\x17\x14\x73\x14\x9c\x6c\xb7\x2f\x48\xbd\xef\xb6\x67\x1d\x52\x05\x4f\xb0\x95\x77\x8e\xd3\x47\x10\x99\x80\xa9\xc9\x90\x33\xe8\x34\x68\x99\x36\xe2\x35\xd0\x97\x38\xe7\x74\x0c\xd6\x17\xdf\x17\x04\x4f\x69\x6d\xd9\xc1\xcb\xa3\x97\x87\x73\x8e\xc3\x86\x2b\xf8\x26\xfa\xd2\xf1\x3d\x39\xcd\xb3\x19\xcc\xe3\x65\xda\x63\x32\x04\xc8\x22\x69\x60\x56\x94\xc8\xd8\x63\x46\x33\x5b\x70\xac\xb0\xcd\x33\xfc\x2b\x28\xff\x45\x89\x46\x11\x76\xf0\xf2\xff\x7b\x49\xd1\x60\x0f\x5a\xbd\xb4\x30\xfd\x01\xbb\xc1\x7a\x64\xa1\xa3\x99\x2e\x99\x12\x82\xb2\xb3\xf3\x4c\x26\xd2\x66\x33\x96\xf0\x2c\x63\xa0\x8e\x6b\x7c\x25\x28\x81\xf2\xec\x51\xda\xc8\x86\xf8\x0a\xe3\x25\xb1\x4e\x21\x37\x80\x3a\x7e\x34\x11\x3c\xb3\x13\x8c\x24\x51\x5a\xf5\x7f\x17\x85\xc6\xea\x53\xf4\x4b\x37\x97\xf7\xb6\x39\x76\xdb\x9e\xe7\x77\x27\x1b\x94\xbd\x63\xef\xe4\xb0\x10\xec\x84\xa2\x50\x7d\x0d\xb2\xb6\xbf\x62\xd9\x01\xc0\x8d\x18\x8a\x10\x3e\x46\x78\xf1\x47\x0f\x85\x74\x2c\x1b\xd2\xa4\xda\xbf\x7e\x9a\x62\x79\x23\x73\xb3\xda\xa2\xf0\x2e\x9c\x62\x2c\x99\xe7\xc3\x1f\x62\x60\xa6\x51\xa3\x4d\x55\x20\x8a\xa2\x4e\x1c\x8f\xf3\xf6\x67\x35\x66\xfe\x56\x9c\x3d\x0e\xd8\xed\x0b\xf1\x68\xbf\x47\x08\xed\xc7\x91\xc1\xff\x50\xd6\xfd\xd7\x80\x9d\x4f\xc3\x29\x05\x4d\xa1\x08\x71\x73\xfe\x33\x26\x47\xac\x54\x21\x12\x60\x03\xfe\x9b\x95\xab\xd4\xe6\x2a\x9e\xf0\xdd\x09\x45\x6f\xb2\xac\x54\xe4\xbc\xdc\xb5\x7c\xe2\x8e\xc4\x27\x95\xad\x0a\x68\xaa\x26\x15\x87\x54\x41\x00\x12\x3b\xa8\x8e\xd5\xe1\x80\x5d\x51\x87\x58\x81\x0e\x22\x21\x46\x1a\x15\x34\x51\xfd\x48\xc5\x3f\x1d\x23\x8b\xe2\x4a\x16\x59\x90\x3b\xc4\xd7\xfe\xf6\xdb\xc5\x2a\xc5\xb8\x8d\xb0\x0f\xba\xc8\xd2\x07\x99\x86\x62\x46\xae\x9f\xc3\xe7\xce\xd4\x7d\x78\x90\xe9\x5a\xb3\xa7\xf2\xa0\x30\x7b\x06\xd3\xaf\xf0\xec\x0c\x3b\x80\xfe\x0e\xd9\x99\x84\x20\x34\xf8\x17\x56\x54\x9e\x0e\x7d\x88\x9e\x13\xd9\x02\xe1\xe0\x52\xbb\x33\xe6\x33\x9b\x20\xfc\xd8\x97\x61\xc3\x00\x42\x39\x2d\x33\xcb\x95\x00\xe1\xfd\x0f\xc2\x67\x33\xf1\x78\xe9\xd4\x25\x63\x85\xb2\x1d\x79\xee\xe2\x8f\xea\x78\x53\x20\x05\xc9\x84\xe5\xa1\xad\xdf\x95\xc8\x24\xc1\xe1\xa9\x85\x34\x7f\xb4\x79\x1d\x51\x64\xbd\x4f\xe2\x07\xd8\x16\x91\xb0\x21\x37\x22\x65\x79\x56\x8e\x65\x17\xb9\x24\x2d\xe4\xbd\x58\x15\xd6\x74\x0a\x8d\xbc\x54\x12\x07\x92\xe3\xe7\xbe\x82\x68\x28\x80\x44\x6f\xca\xfa\x4c\xed\xeb\x67\xed\x71\x41\xcb\x68\x90\x14\x60\x1f\x8d\x13\x74\xdd\xbe\xe3\x6e\x33\x9c\xf6\x06\x74\xa0\x22\xc5\x4d\x42\xf0\xd4\x8b\x53\x97\xed\xfb\xb9\xd6\x6d\x59\xc8\x17\xce\x1e\x6d\xc1\x83\xdc\xe7\x0b\x26\xcb\x11\xe3\x6a\x51\x81\x43\x5d\x33\x85\xff\xd9\x5e\x86\x5d\xc1\x6c\xae\xe7\x5e\x7c\xcb\xc2\x57\x98\xaa\x12\x95\x40\x04\x3f\x39\x82\x50\x91\xa9\x32\xaa\x2d\x6e\x04\x38\x5a\xef\x45\x4d\xcb\xb4\x9a\xe5\xdc\x04\xb3\x36\xb2\x08\x3a\xa2\xc6\x17\xcf\x26\x50\x23\x08\xb3\x96\x23\xa6\x74\x63\x94\x38\x69\x9a\x52\x66\x16\x4c\xc4\xa0\x23\x14\xa2\xf8\xb5\xf2\x8d\x7a\x08\xf0\x0f\xff\x4d\xa8\xfe\xdc\x98\x28\x1d\xb0\x3e\xab\xf5\x6d\x6e\xc4\xd0\x56\x19\xdd\xba\x70\xfc\x35\xf8\xfc\xaf\x9e\x61\xb7\xf0\xf5\x3d\x33\xdf\x33\xf3\x3d\x33\xff\x33\x31\xf3\x0f\x3a\xe1\xd9\x26\x01\x23\x7b\x8e\xfe\x25\x39\x3a\x60\x9f\x6c\x64\x30\xc1\x4f\x3d\x27\xf7\x76\x10\x62\x3e\xfe\x57\x3e\x86\x98\x89\x4f\x0a\xcb\xa5\x83\xd5\x44\x23\x52\x49\xca\x2d\x37\x02\x70\x46\xe1\x37\xfa\xf7\xe7\xcf\xe7\xa7\x51\x94\x15\x54\x5f\xa9\x8f\x65\x58\xaa\x31\x67\x60\x99\x25\x45\x17\x9b\x19\x52\xa2\x69\xad\x11\x77\x44\x5f\x41\x7d\x7b\xb4\x06\x79\x6f\x1c\xeb\xdf\x96\xaf\x5e\x7d\x57\xd9\x7c\xe3\xe6\xee\x3d\xf1\x8b\x6b\xad\xe3\x08\x28\x92\xde\xb4\xbf\x3e\x97\x8d\x68\xba\x62\x31\x40\xf6\xfa\x62\x2a\x08\x44\x82\xe2\x88\x50\xdd\x01\xf0\xd3\xcf\x9c\xda\x3f\x93\xbd\xfa\xfd\xc9\x59\xa5\x41\x9e\x4a\x73\xb7\xc9\xe9\xad\x7a\x60\xae\x8b\x4a\x10\x91\x8a\xbd\xd7\x7a\x9c\x09\x76\xa2\xa7\x79\x69\x05\x3b\x53\x63\xa9\xc4\xe0\x56\xdd\xaa\x63\xf6\xfe\xe4\x8c\x5d\x9e\xa2\x26\x0f\x28\x4d\x6c\x28\x46\x8e\x01\xc0\xf9\xa7\x9c\x07\xde\x44\x97\x4a\xdd\x10\xf0\x0d\x64\xa0\x0d\x45\xad\xc6\x90\xeb\x33\x2f\x34\x70\x15\x77\x11\x7e\x77\x17\x84\xa3\x28\x42\x71\x60\x03\x16\x86\xee\x66\x7c\x44\xa4\x4f\x9e\xf6\xa1\xe9\x94\xab\x19\x06\xe5\x0f\xa8\x9b\xaf\xca\x0c\x49\xc7\x8e\x38\x09\x88\x82\x33\x5d\xb2\x07\xae\x6c\x24\xfa\xdc\xc8\xfc\x2d\x3b\x53\xa6\x2c\xa2\x8c\xe5\xa6\x14\x24\xcd\x1a\x82\x10\xd4\x4b\x34\x6f\x77\x6d\xb6\x5c\x17\x08\x89\x40\x7f\x8f\x88\xbb\x7d\x33\x4e\x44\x65\xf6\x70\x47\x67\x03\x0c\x1b\x5e\x58\xd9\x21\x8f\x07\x8a\x48\xfb\xb6\xfe\x50\xae\xd8\x87\xf3\x11\xd3\x18\x55\x89\xee\x95\xb4\x4a\x99\x0c\xe9\x74\xc3\x99\xef\x05\xf1\xb4\x2a\x5a\xbf\xd3\xe1\xc9\x80\x34\x63\x93\xf2\xd7\xe8\xcd\x40\x02\xe2\x96\x55\x73\xe2\x86\xdd\xbe\x78\xed\x36\xe2\x5a\x4e\x65\xc6\x8b\x6c\xd6\x8b\x67\x59\xb5\x74\xbc\xd4\x77\xe9\x26\x73\xfb\xe2\xd5\xed\x0b\x76\xa0\x0b\xe8\xdd\x5d\x9b\x4c\xf0\x7b\x41\x18\xff\x70\x7c\x67\x28\x02\x1c\x3e\xf5\x96\xed\xa0\xfa\x76\xda\xe1\x41\xfa\x8c\x6c\x3a\x56\x5f\x2e\x4f\xeb\xac\xed\xe4\x6c\xc0\x3e\x93\x20\x42\xec\x1c\x29\x0e\x2c\xca\xb7\xf8\xf2\x07\xb8\xa3\x44\xbd\x9d\x9c\x3c\x2f\x86\x3f\xd7\xd2\xe7\x65\xf1\x8e\x72\x1f\x9d\x83\x6d\xe5\xbe\xf7\xd2\x5e\x89\x5c\x6f\xf2\x72\xc6\xdc\x01\xca\xba\x53\xae\x7d\x85\x41\x18\x67\xd8\x73\x36\x96\x18\x48\x6b\x24\xe6\x7b\xbe\xa7\x7f\xaf\x23\xcc\xb5\x7c\xe5\x9b\xb7\xbc\x52\xee\xa5\x3e\x3d\xbb\xbc\x3a\x3b\x39\xbe\x39\x3b\x7d\xcb\x68\xb1\x58\x91\xbf\x0a\x93\xb8\xd1\x95\xb5\xa1\x06\x68\x42\x40\x88\x7e\xe2\x3d\xe2\x69\x5c\xb1\x33\xc7\x2d\x4e\x65\x81\xb1\xfa\x5c\xb1\x73\x25\x2b\xec\x11\x2a\x04\x98\x69\x15\x62\xfd\x73\x4d\xc6\x8b\xb1\x44\xc4\x11\x45\x9d\x41\xb4\x74\xad\x37\xb8\xad\x00\x65\xdd\x92\xd6\xbd\x58\x5a\xf5\x3e\xed\x55\x8c\x1e\x1d\x32\x95\x0b\x9c\x70\x0e\x9d\x4c\x02\xf5\xaf\x29\x0a\x49\x13\x88\x0d\x12\xe1\xe5\x60\xf0\x72\xc0\x1c\xc7\x7f\x39\x78\xe9\xdf\xd6\x2c\x24\xe9\xd2\x51\xa8\x3a\xf5\x99\xb9\xee\xc7\xe6\xbe\xb3\x4f\x1e\x3c\xb0\xe7\x1e\xcc\x46\xbe\xaf\x77\xb9\xc8\x0a\xae\xa2\xa5\x97\x20\x36\x95\xc3\x78\x50\x3a\x77\x50\xd8\x1e\x17\xb6\x59\x14\x3f\x0e\xb2\x92\xe5\x84\xd9\x7c\xbe\xfa\xb0\xc9\x40\x78\xe4\x3a\x44\x3d\x20\x0a\xd2\x24\x84\x2b\x54\xe8\x79\xbe\x93\x1d\x67\x2e\x47\x44\xd8\x9a\xc3\x60\xc2\xf1\xc8\xac\xed\x22\xaa\x71\x9b\xd0\x4d\xb8\x37\xdc\x42\xa0\x95\x47\x4a\x18\x09\x4b\x21\x58\x1c\x11\x6d\xaa\x2f\x9e\x43\x5b\x14\x2d\x25\xbe\xdb\x16\x15\xca\x98\x81\xd2\x48\x76\xc6\x10\x1c\x0b\x2f\x36\x2c\x2d\x15\x96\xcb\xcc\x44\xab\xb0\x3a\xd7\x99\x1e\xcf\x5a\x9f\x26\x41\x72\x95\x0f\xed\xa4\x25\x1f\x8d\xfd\xe7\x47\x57\x67\xc7\xa7\x1f\xcf\x06\xd3\xf4\x9b\x04\xc2\x3d\xfa\xbc\x9f\xeb\x0d\x34\x49\x11\x2f\x00\x2b\x3a\xac\xb1\x62\xf8\x20\x36\xaf\xe2\x1f\xa8\x72\x2a\x19\x52\xaa\x35\xfb\xc1\x22\xfc\x29\x28\x8a\xe2\xc1\x4e\x90\x67\xf8\x11\xaa\x01\xd2\xe8\x3d\x0f\xea\x55\x35\x1c\xe9\x54\x43\x5d\xaa\x94\x5d\xfe\x7a\xf2\x85\x49\x9a\xaf\x46\x3f\x02\x38\x1a\x22\x5b\xf3\x60\x33\xf7\xfd\x17\x5e\xc2\x2e\xc4\xb4\xb9\x75\xa1\x76\xe5\x75\x5b\x60\xef\x95\x2a\x9b\x8b\x62\x2a\x3d\x52\x5b\x37\xf9\x6d\xb7\xe4\xd8\x58\x74\x13\x2d\xf5\x6f\xf1\x0c\xec\x8c\xd7\xee\x39\xec\x1f\x98\xc3\xee\xd9\xc1\x9e\x1d\xec\x84\x1d\xfc\x7c\x73\x73\xf9\x5e\xd8\x95\x31\xbd\xb5\x76\x71\x58\xaf\xf2\xd0\x2e\xe8\x6a\xd5\x8a\xb9\xa6\xec\xbd\xb0\x55\xcd\xaa\xd5\x17\xb7\x43\x2c\xf4\xcf\xda\xf8\xab\xa9\x19\xe1\x58\x32\xab\x7b\x73\x0f\x79\xae\x53\x76\x7e\x39\x60\xff\xa5\x4b\xa7\xb4\x0d\xf9\x30\x9b\x05\xbb\x94\x11\x96\xdd\x42\x5f\xb7\x2f\x9c\x86\xe0\x36\xfa\x67\xc1\x53\x51\x18\x08\xad\x15\x7c\xa3\x50\xee\xaa\x97\x55\xa2\x7a\x69\xac\x9e\xb2\x09\x0d\x59\x2f\xec\x40\x04\x1b\x20\x09\x01\x86\x16\x72\xf1\x30\xf4\x96\xbe\xd9\x31\x96\x94\x1b\x0a\xa7\xbe\x55\xdc\x5c\x57\x86\xe4\x54\x61\xc4\xbf\x23\xef\x06\x2c\x15\xa1\x42\x36\xc4\xdf\xde\x2e\x8f\xa3\xb4\x32\x1b\xb8\xab\x65\x8b\xc1\xb9\xb2\x9f\x8a\x6b\x1c\x6e\x99\x37\x12\x9d\x39\x45\x0c\x62\x03\xe7\xae\xb0\xf3\xeb\x8b\xac\xfb\x94\x12\xe3\x23\xfb\xfc\xa6\x73\x35\x16\xec\xb5\xfb\xf2\xcd\x0f\x3f\x7c\xf7\xc3\x80\x5d\xc4\xc8\xe6\x5c\xb1\xf3\xe3\x8b\xe3\x7f\x5e\xff\x7a\x02\x05\x5b\x16\xe5\x3c\x27\x13\xb1\xd2\xe6\x77\x0d\x8d\xe2\xf8\x04\xba\x47\x11\xfe\x92\xbb\x89\x75\xee\xe8\x76\x68\xc7\xba\x63\x1e\x81\x91\x6f\xc5\xba\xe8\xe4\x2e\xe7\x5b\xd8\xa8\x96\x8b\x90\xc4\xd7\x30\x46\xcb\x93\xc4\xbf\x72\x80\x84\x5e\xcd\xb8\x3a\xe0\xdc\xdf\x38\xaa\xe2\x40\xa8\x99\xcc\x57\x3e\xd9\x55\x15\xdb\xb9\xa1\xf0\xa3\x9d\xee\x5d\x63\xf6\x34\xaf\xad\x37\x93\xab\x34\x5b\xbe\x93\xd8\x22\x24\x30\x73\x6f\xe2\x48\xfc\x0b\x44\x39\x0c\xde\x33\x0a\x38\x63\x1d\x64\xc6\x47\x91\x6c\x8e\x15\x50\xe5\xc3\x2c\x0d\x5f\x68\x71\x69\x83\x47\x4a\x3b\x1e\x0f\x8e\xa6\xca\x89\x5d\xf9\x86\x5c\xef\xe1\xdf\x28\xc9\xf9\xa5\x6a\x58\xde\x02\x66\xe0\x9e\xa3\xf7\x62\x73\xf4\xa4\xba\x50\xb0\x6c\x61\xd4\xb2\x31\x49\x37\xbe\x7f\xcc\x20\xc6\x42\x14\x23\x5d\x4c\x17\xa1\x1b\x24\xf9\xb5\x4e\xee\xb6\x98\xef\xcd\xc9\x25\xf6\xd0\x61\xc6\xa1\x6d\x34\xe7\x4a\x88\x41\x60\x02\x88\x20\x63\x37\x27\x97\xc0\xd3\x07\xf0\x5f\x13\xad\xef\x30\x55\x67\x26\x6c\xe5\x37\xdc\xa1\xaf\xda\x09\x25\xc7\x99\xe4\xcb\x92\x41\x43\x1b\x36\xd1\x59\x8a\xd4\x9e\xf2\x3c\x77\x33\x1e\x0a\xfb\x20\x84\x62\xe7\x97\x70\xd6\x1c\x23\xc7\x48\x7a\xcc\x00\x25\x73\x2b\x56\xd4\xaa\xca\x0d\x29\x5b\x99\x4a\xb1\x3a\xa2\xfb\x10\x93\x98\x3a\x0a\x6e\x30\x4a\x07\xe9\x0d\x67\xe3\x0d\x94\x7c\xa8\xef\x05\x4c\x36\x4d\x0b\x61\x3a\xca\x35\x3b\x0c\xf5\x97\x73\xd8\x51\x4d\xf0\x95\x30\x37\x7f\x5f\xc1\x3b\x0c\x50\xba\x40\xb7\xe7\xca\xba\x73\xc4\x73\xd2\xd3\x26\x2a\x3b\x4c\xd9\x49\x67\x70\x4e\x3c\x76\x35\x69\xe7\x3f\x87\x1f\x9f\x43\x3b\xef\x2a\x23\xfa\xc8\x92\x60\xb5\x27\x51\x0a\x45\x13\x0a\xb0\xca\x49\xbd\xe5\xcc\xcc\xa6\x99\x54\x77\x90\x4d\x47\xfa\xa1\xe3\xaa\x64\x91\x50\x77\x5e\xb2\x29\x04\xcf\x16\x2b\xbe\xeb\x38\xee\xdc\x44\xf2\x39\x78\xd4\x4e\x78\xc5\x1d\x91\x5c\xdc\x25\xf1\xbb\x4e\x7e\xc8\xb9\x72\xe8\xcf\xbc\x8a\xae\xa2\xdd\x2e\xb4\xd2\xf3\xeb\x93\xeb\xf3\xb5\x9d\x01\x4b\xbe\xaa\x05\x16\x2b\x06\x2d\xc1\x8d\x3d\xa0\xff\x5e\x37\x5d\xaf\xfe\xd5\xd3\xc4\xc7\x24\x13\x9e\x1f\x97\x76\x72\x2a\x4d\xa2\xef\xc5\x4a\x6f\x93\xaf\xc7\xe8\x67\x23\x61\x8e\xe1\x6b\x76\xf2\xf3\xf1\x25\xe3\xa5\x9d\x08\x65\xa9\x90\xe2\x06\xd1\x9f\x7e\x56\xd7\x58\x03\x63\xa3\x39\xd1\xb7\x3b\x9a\xd1\x3e\x8e\x68\xfb\x38\x22\x69\x12\x23\x37\x40\xc1\xc1\x92\xd6\xba\x4b\x2d\x0d\x32\x7d\xe0\x09\x38\xf7\x1f\x82\xb6\x0b\x5c\xbd\xd6\x57\x2d\xaa\x16\x0d\x79\x30\xc5\x73\x65\x45\x31\xe2\x89\x68\xa4\xc1\x21\xb6\x15\xf6\x2d\x43\x1b\x88\xa6\x4c\x28\xc1\xd0\x6d\x10\xcf\x30\xc0\xf2\x2d\xfe\x12\xc5\x1d\x51\xe0\xa5\x17\x93\x12\xca\x77\xae\xb2\xbf\x51\x51\xde\x08\x44\x51\xfe\x6b\x65\x6c\x15\x4e\x11\xe7\xff\x9f\x25\xcf\x70\xdd\x17\x9b\xf9\xa7\xeb\x94\x5a\x31\xb4\xdf\x0f\x4f\xb3\x8b\x60\xfd\xc6\xb2\xde\x8a\x66\x05\xe8\x83\x28\x0f\xc7\x2f\xd1\x4b\x32\xbf\xbd\x64\x07\x36\xc9\x0f\x9f\x24\x0f\x17\x27\x40\x34\xfa\x10\x12\x70\x77\x0e\x0e\x8c\x27\x64\x95\x28\x5b\x9b\xcd\x25\x7c\xc2\x3e\x48\x43\xa5\xb5\xe9\x0f\xd2\x30\x81\x39\x9f\x1c\x24\x72\x5d\x30\x99\xff\xd3\x89\x93\x6f\x91\x0f\x46\x36\x23\x69\xb0\x58\x22\x06\x86\xfb\x10\xb9\x03\x3b\xcb\x65\xc2\xb3\x6c\x16\x34\x11\xc3\xfe\xf2\xe6\x15\xbc\x27\xdf\x7d\xfb\xe6\x55\x93\xd6\x4f\x2f\x31\x7f\xa9\x40\xab\xaf\x3e\xe1\x0c\xde\x31\xfc\x00\x6b\x48\xe0\x8d\xc1\x23\x02\xd0\x0f\x81\xdd\x35\x5e\xbb\x76\x29\x11\x3e\xc4\x93\xb4\xfe\x61\xfc\xd2\xe7\x70\x5b\x09\xb2\xb6\xfa\x06\x17\x6d\xb0\x8d\x9d\xc8\x99\x1b\x68\x55\x7b\x09\x72\x2f\x41\xee\x25\xc8\xbd\x04\xb9\x97\x20\xf7\x12\xe4\xce\x25\xc8\x7c\x2f\x41\xfe\x39\x24\xc8\xb5\xb3\x5c\xf7\x62\x64\x87\x53\xf7\x15\x8a\x91\xbf\x88\xd9\x8d\x6e\xd4\xa7\x6c\x52\xf8\x23\xcf\x23\x1c\xdd\x3b\x31\xc3\xe4\x3f\x30\x63\xbb\xc7\x49\xaa\x90\x2f\xd1\x41\xb0\xc3\x42\x5d\xab\x5c\xc1\x34\x0a\xe5\x0b\x6e\x52\xfd\x41\xa7\xab\x98\x7f\x95\x99\xed\x1a\xb3\xa1\xc4\x6b\x57\x1a\xca\x5f\x95\xe8\x4a\xea\x55\x01\x0d\x04\x22\xec\xdd\x55\x78\x02\x5e\xfd\xf8\xe3\x8f\x8b\xea\x7b\xf9\xd4\x01\x3c\x49\x1f\xdd\x30\x71\x59\x2f\x9f\xa7\xed\xab\x7a\x21\xc2\xe0\x28\x93\x09\x65\x26\xe0\x69\xf4\x89\xfb\xf0\x30\xf1\xd1\x08\xeb\xbd\x50\x65\x44\x37\xf7\x1e\xcb\xe4\x9d\x60\x23\xf3\xbe\xd0\x65\x1e\xca\xec\xfa\xea\xc8\x4e\xae\x1f\x0a\xea\xac\x5a\xab\x11\x4d\xc2\xee\xe0\x15\x59\xed\x28\xb9\x81\x89\x65\x1c\x52\xda\xf3\xc8\x6b\xe2\xeb\x9c\x4e\x79\x8e\x49\xa1\x70\x06\x06\xec\x23\x9f\x31\x02\x4d\xe6\x8a\xf1\xa1\xd1\x59\x69\x43\x20\x20\xfd\x18\x67\x53\x40\xa7\x22\x43\x0d\x04\x93\x3b\x7c\xb3\x28\xeb\x03\xcb\x8d\xc0\x99\x86\x36\xbb\xbd\xc3\xee\x98\xef\x3a\xe2\xed\x83\x1c\x89\x64\x96\x64\xcb\x74\xbd\xd0\x26\x0e\x1a\x49\xa2\xf3\x83\x7e\xd7\xa0\xa0\x91\x2c\x4f\x4e\x7c\xcb\xef\xe0\x14\x16\xc2\xe4\x5a\x19\x1f\xb0\xe6\xeb\x75\x86\xbe\x09\xe7\x1d\xd2\x1c\x31\xa3\xc7\xd8\x6b\x20\xad\x3b\x7a\x97\x85\xb8\xb6\x3a\x8f\xda\x4f\x30\x02\xc2\xf4\x6a\xce\xb8\x66\x41\x62\x28\x04\x69\xa2\x72\xcd\xde\xb5\x6d\xa8\xa6\x86\x15\x3d\x56\xaa\x4c\x18\xd3\xf8\x92\x8a\x33\x43\x55\x52\xd3\xc3\xea\xc0\x32\x99\xb0\x84\x53\x09\x52\x9a\x00\x95\x45\x2a\x6a\xb8\xa3\x8b\xbd\x7e\x7e\x55\x9b\x87\x23\x50\x6c\xc8\xb2\xa7\xb3\xa2\x9d\x5b\x27\xcf\x32\x91\x32\x39\x9d\x8a\x54\x72\x2b\xb2\x19\x95\x0a\xe7\xf5\x1a\xc8\x24\xa2\x07\x9f\xa2\x5f\x1f\x11\xc0\x36\x6b\x5d\xfb\xc2\xaa\xa1\x40\x36\x95\xbe\x66\x3c\x49\x74\xa8\x62\x87\x70\xe5\x78\x47\x72\xa8\x58\x3b\xc0\x7c\xa6\xf5\xb6\x6d\xa2\xf5\x5d\xd8\xb1\x76\x28\xfc\x65\xea\x59\x55\xc7\xb7\xfa\xcf\x7e\x38\x4b\x7d\x08\x67\x38\xfa\xa6\xfa\x09\xfe\xb0\x80\x1d\xe1\x49\x7c\xda\xfd\xa3\xd3\xde\xbe\x7b\x94\x37\xcf\x17\x6e\x47\x5a\xc2\x2d\xe3\x8a\x1d\x5f\x9e\x87\xd0\x13\x5d\x23\x39\x55\x3b\xa4\x1a\xcb\x99\xbc\x17\x4a\x18\xa7\xc7\xf2\xc2\x96\x39\x46\x7c\xf9\x8a\xbc\x3d\x96\x17\x42\x4c\x61\x7a\xbd\x2a\x2b\x96\xb2\x15\xe1\x8f\xc2\x26\x28\x22\x45\xb7\x02\x78\x28\x4d\xbf\xb9\xc1\x49\xc1\xcd\x04\x6b\xe5\x8a\x47\xe9\xcb\x80\xc7\x25\x7e\xa2\xb2\xbd\xd2\x34\x40\x40\x68\x10\x2f\x94\xa5\x8d\x9a\xd5\xe3\xc2\x29\x5e\xb9\x28\xa4\x4e\x19\xc0\x73\xa7\xfa\xc1\xbd\x57\x63\xa9\x8c\x27\x1f\xf0\x18\xa2\xb3\xdb\x6e\x81\x49\x32\x88\x89\x9b\x0e\xa8\xf4\x62\x16\xc5\x3b\xe8\xd2\x26\xba\x4a\x10\xa6\x49\x34\x6f\x06\x3c\xc6\x40\xdd\x12\xe4\xbb\xb0\x2f\x5e\xb0\xb1\x2b\xe7\xbc\x83\x1b\xe2\x08\x5b\xfd\xb6\x90\x38\x80\x1a\x03\x50\x51\xcf\x7e\xa5\xe6\x1e\xbd\xb5\x5f\xae\xa9\xb4\x57\x5c\x8d\x97\x3f\x5d\xbe\x91\x13\x4d\x4c\x75\x76\x4b\x2c\xf8\x2d\xa1\x9c\x82\x3b\x6f\x8e\x0a\xec\x4e\xaa\xd4\x91\x3a\x4e\xfc\xe6\x2c\x64\x49\xed\x8b\x90\x7c\xd5\x45\x48\xf6\x25\x3c\xfe\x2c\x25\x3c\xfe\xe8\x45\xf1\x9c\xca\xb6\xb9\xa1\x24\xf0\xac\x6b\xd7\xcd\x52\x02\xe4\x22\xa9\xb1\x0f\x62\x68\x42\x81\x81\xa8\x9d\xa9\xef\x92\x0c\x6e\xa1\x7d\xae\xd2\x3e\x02\xa4\xaf\xc1\xde\xc3\xdf\x9f\xaa\x4c\x49\xf4\x3e\xd4\x7e\xdf\xb6\x4e\x49\xd5\xef\xb9\x15\xd3\x4e\x6f\xcf\x39\xa2\x00\xfa\x48\xed\xa9\x54\x47\x53\xfe\x18\xbf\x41\x54\xb3\x61\xd6\x80\x75\x9c\x72\x9b\x80\x94\xa4\xe0\x69\xea\x82\x6a\x80\x66\x81\xcd\xc0\x01\xd7\xbe\xb1\x03\x3f\xdd\xc1\x7f\x96\x5c\x59\x69\x67\x9d\x11\x05\xc9\x2a\x59\x2d\x98\x74\x5e\x90\x76\x90\x26\x64\x19\x89\x88\x02\x09\x4f\x32\x7a\x9f\xb1\xa1\xe3\xce\x88\xab\xb3\x01\x02\x21\x51\xec\x0a\xf9\xf1\x1f\x86\x70\x34\x5f\x9f\xd3\x98\x2e\x23\xa7\xd7\x00\x3a\x10\xb4\xa8\xba\xdd\x9c\xa4\x53\xfe\xf8\xf5\xd3\xf1\x63\xb8\x81\x89\x56\xc6\x16\x5c\x02\xf0\x0a\x59\xe9\x40\x12\x6c\x52\x6a\x33\x52\x20\x1f\x40\xba\x5e\x39\xe9\xed\x0f\x41\x9b\xb9\x59\xb7\x40\x8f\x38\x9a\xa4\x15\x89\xc0\xa6\x39\xe1\xf7\x02\x2a\xeb\xe3\x39\xc2\x7a\x23\xee\x92\xa2\xa5\xb1\x10\x08\xdb\x1e\xaa\x64\x60\xad\x7d\x6c\x92\xca\x7b\x99\x0a\xa2\x7b\x38\x87\x64\x9b\xe1\x00\xb1\x22\xfe\x55\xf2\xcc\x4b\xb1\x42\x95\x53\xac\xf8\x82\x47\xfb\x6f\x0d\x51\xd9\x67\x04\x3c\xb2\x61\x59\x18\x1b\x9c\x8f\xf5\x79\x6f\xb2\xab\x72\x4e\xbc\xff\x0a\x37\x51\xaa\x67\x38\xe0\x6b\x54\xe3\xac\xbf\x6d\x30\x0b\xdc\x77\x0e\xd0\x38\x20\x0a\xef\xd8\xeb\xe1\xbe\xdf\xde\x44\xea\xdf\xf1\x15\x05\x2c\xeb\x0d\xeb\x55\x2c\x23\x45\x14\xfc\x8a\x7b\x55\xf2\xab\x56\x25\xbb\xd4\xb3\x74\x52\x9d\x59\xb8\xcb\x48\xcf\x8d\x2c\x95\x23\x39\x2e\xb1\x44\xf9\x11\x5a\x80\xfa\x09\x02\x6a\xf6\xc3\x8a\xfa\xc1\xae\x72\xb4\xdb\x04\xe8\x48\x6a\x5e\xc8\x67\xf6\xd5\x34\xff\x8d\x54\xf1\x7d\x35\x4d\xfc\xfb\xd3\xab\xa9\xbb\x2f\xa9\xd9\xb0\x24\x74\x79\xb9\x6a\x16\x85\xc5\xaa\x6a\x60\x44\x91\x9e\xba\x86\x96\x8a\x66\x8a\x15\x0c\xe2\x03\xda\x32\xa4\xb7\x6c\x34\x59\x2c\x68\xd5\xc4\x66\x2b\xe9\x32\x98\x3e\x9e\x8a\x2f\x82\xd6\xbf\x36\x6f\xec\x78\x28\x89\x30\x5b\x8b\x2c\x9a\xa7\x3f\xf1\x8c\xab\x44\x14\xe7\x6a\x5c\x08\xb3\x2c\x8d\xb6\xa5\x75\x53\x86\xae\xea\xdf\x71\x96\x69\x9e\xf6\x87\xd4\x9e\x49\xfa\x00\xb8\xeb\x5b\x66\x0b\x3e\x1a\xc9\x04\xc4\x01\x95\x46\x01\x7f\x46\x14\xf7\x32\x11\x35\x7c\x72\x0c\x0d\xe5\xaa\xde\xc9\x1a\x79\xb6\x1d\xd3\x6c\x21\xf8\x91\xa2\x88\x96\xcc\x3e\x3a\x45\xa7\x17\xd7\x04\xe1\x12\x45\xea\x1c\xff\x76\x5d\xff\xbc\x59\x90\xab\x93\x64\xd1\x21\xcf\x76\xed\xe9\x9e\x5f\xce\xcf\xf6\xfd\xc9\x99\x53\x98\x3e\xe5\x42\x5d\x5b\x9e\xdc\x6d\x38\xf5\x55\x76\xbc\x75\x8e\xe2\x35\x1a\x09\xbb\x9d\x44\x6c\xdc\xf9\x20\x76\x38\x35\x72\xee\x26\xb4\xd2\x9f\x68\x5c\x09\x76\x51\xe1\x84\xc6\x06\xf8\xc3\x5d\x9f\x09\xbb\x59\xff\x12\xd8\x89\x30\xa2\xd1\xfd\xae\x59\x58\x0b\x53\xd8\x9e\x8f\xad\x7d\x1c\x5a\xa2\x00\x97\x1d\x88\xf9\xe6\x15\xec\xa1\x50\xba\x1c\x4f\x9a\x35\x2c\x32\x81\xa1\xe7\x99\x4e\xb8\x15\x14\xb4\x44\xdf\xa6\xa1\x4c\x45\x55\xf3\xb4\x0e\x75\xd8\xe1\x1c\x75\xe0\x3c\x71\x81\x03\x1a\xdc\xae\xad\x0a\xe8\x7b\x77\x5c\xc4\xc3\x11\x95\x61\xed\x3f\x48\x3b\xe9\xd3\x8b\x77\x04\x33\x3e\xfa\x06\xe1\x06\x9e\xeb\x2e\x27\x3c\xeb\x98\x20\x02\x6d\xe3\xdb\x8b\x09\xec\xd9\xac\x1f\x8a\x13\x51\xcc\x3c\x86\x4e\x29\x9d\x0a\xe6\xae\x8d\x13\x08\xd9\xc1\x4f\xc2\x72\x36\x12\xdc\x89\x7e\x87\x4f\x04\x9e\x1f\x01\xb3\x57\x36\x08\x48\x56\x79\x98\x08\xf2\xd3\x87\xbc\x7a\xf0\xb7\xb3\x54\xb8\xfb\xfb\xec\xc5\x84\x50\x35\x42\x98\x78\x5e\x5a\xdd\x37\x22\x83\x9a\x07\x30\x3c\x8e\xbe\x75\x05\xd0\x8e\x71\x76\xa3\x32\x43\xe0\x00\x6f\x00\xa0\x80\x44\x82\x25\x70\xfb\x08\x04\xa5\x08\x41\x1f\x28\x1b\x03\x18\x14\x35\x6a\xb2\x83\x54\x9a\xbb\x5e\x85\x47\xdf\x63\x83\xc1\x60\xd7\x01\xb0\x3b\x89\x96\xbb\x78\x77\xbd\x51\x7e\xd4\xc5\xbb\xeb\xce\x18\x91\xae\xed\xd7\x84\x3f\xe1\xe1\xca\xc5\x63\xfd\x5c\xbb\x79\x12\x52\xd9\xb6\xc9\x32\x6a\xb4\x81\xae\xbb\x8b\xe0\x79\xb7\x06\x5c\xd7\xce\xb1\x12\x77\xb2\xfe\x15\x21\xf9\xc5\xea\xf2\x6c\x68\x17\xf1\x4a\x94\x97\x9b\xdd\xa1\x99\xc7\x73\xf9\x22\x3b\xda\xf1\xfa\xd2\x62\x77\x1d\xfe\xda\x06\xc9\xdc\xf6\x96\x23\x0a\x32\x80\xde\xa7\x88\xb6\x95\x68\x02\x26\x81\x9f\xa1\x34\x84\xa3\xe3\xb4\xcc\xac\xcc\xb3\x48\xa0\x00\x49\x52\x53\x5c\xf8\xde\xec\xfb\x55\x9b\x7d\xf7\x66\xcb\x3f\x8b\xd9\xf2\xdf\x3a\x82\x28\x70\xac\xf5\x03\x88\x86\x62\xc2\xef\xa5\x0e\x30\x9e\x55\xec\xe3\x97\x0b\x25\x8a\xc9\xd2\xb4\x20\x6c\x4a\x18\xec\x67\xc5\xd1\xb0\xa5\x89\x52\x1e\xe0\x0a\x96\x45\x01\x77\x30\x32\x43\x7c\x0d\x24\x5a\xa5\xd9\x3d\xb9\x19\xbb\x7a\x48\x77\x6a\xc1\x0e\xdd\x9e\x68\x95\x36\xcb\x72\x2d\x7c\xa8\x43\xe3\xca\x54\xe0\xb1\xcb\xf9\x50\x97\xb8\x7d\xf0\x5c\xaf\xa3\xf6\x3b\xa9\xfd\xa6\xe0\x50\x39\x53\xab\x1b\x39\x6f\x04\xd8\x82\x5f\x41\x77\x0b\x98\xa3\x31\x7c\x3c\x37\x56\x47\x11\xd9\xcc\x8b\x11\x5d\xbe\x6c\xbf\x67\xed\x37\xa4\x0a\x4d\x4f\x49\x7d\x23\x4c\xcf\x9b\xc2\x49\x04\xef\x9c\x88\xdc\x63\x9f\xd5\x9d\xd2\x0f\x9b\x64\x7b\xaf\x11\x61\x50\x15\xac\x80\x1b\xa6\xb3\x4c\x14\xd5\xc4\x9e\x22\xb8\x60\x9e\x66\x3b\x13\x49\x57\x44\x1b\xd4\xda\xd5\xdd\xd0\xe1\xa7\x7d\x98\xc1\xd7\x2d\x6f\xae\x15\x66\x10\x7b\xc1\x2a\x9d\xc4\x3b\xc0\x28\xb1\x24\x83\xc4\xf9\xdd\x1b\x1a\xe1\x34\xed\x38\xd6\xa0\x7a\x33\xd6\x36\x43\xef\x65\xf6\x3f\xa1\xcc\xbe\x0f\x35\xc0\xbf\x3f\xb9\x8c\xb6\xfb\x48\x83\xba\xc6\xd1\xe1\xd1\x22\xc5\x23\x96\xad\xb9\xc5\x8d\xc1\x78\xf7\xf5\xd2\xae\x46\x52\xf1\x4c\xfe\xbe\xba\xe2\xc4\xbb\xd0\x10\x18\x82\x62\x3a\xe7\xff\x2a\x2b\xc6\x8a\x6f\x06\x45\x35\x90\x91\x1f\x8b\x9d\x23\x72\xf7\x94\x2b\xa1\x6c\xe6\x1e\x9c\xa9\xbe\xf7\xec\x17\x2f\x3f\x19\xc1\xba\xb2\x5f\xcb\xcd\x9d\x39\xe2\xe9\x54\x2a\x69\xac\x28\xfa\x09\x96\x51\x59\x9b\xe1\x6e\x8b\x48\xb2\x4a\x79\xe8\xbe\xf9\xab\xfc\xbb\x8d\x96\x6e\x0b\x62\xe7\x1d\x0a\xe7\xab\xf5\xac\x0e\x50\x5f\x5e\xe6\x5b\x75\x1e\xae\xea\xee\x65\x92\x32\xf8\x3d\x97\x19\x1f\x66\x6e\x7f\x8d\x28\xee\x39\x26\xbb\xc3\x34\xc2\xee\xbc\x34\xb5\x69\x36\x83\x67\x77\xf6\x3a\x56\xaa\x4f\xc7\x9d\xad\xfd\x54\x63\x26\x39\xb7\xc9\xa4\x3f\x15\xc5\x58\xf4\x11\x34\xa3\x29\xc5\xb6\x7f\x61\x6c\xc1\xad\x18\xc3\x07\xf0\xf5\x02\x0f\xd2\x84\x9b\x55\xa2\xfa\xa5\x6b\xe3\xc5\x19\x4f\xbf\x2a\xab\x1f\xba\xf0\x2a\x85\x5a\xaa\x59\xef\xe4\x4a\x3d\x99\xaf\xf4\xa2\x0e\x16\x32\x77\x13\x74\x2a\x50\x24\x71\x32\x97\x28\xd0\xff\x29\x15\xfb\xa5\x5a\x15\x3b\xe3\x09\x39\x46\xc1\x6f\x41\xa1\xf5\xf3\x25\xe5\x49\xf6\x4b\x78\x32\x11\xec\x40\x0e\xc4\xc0\xfd\x49\xd8\x24\x3d\xdc\x2b\x00\x5f\xb5\x02\xb0\x17\x5e\xff\x2c\xc2\xeb\xbf\xb7\xc1\x59\xa7\x5b\xda\x9a\x39\x05\x0e\xfc\x61\x2d\xcb\x8e\x02\xab\x8d\xca\x1f\xb5\x01\x1e\x87\x32\x24\x0a\x17\x10\x09\x13\x5b\xd2\x90\x12\x97\xa1\x3c\x38\x39\xdc\x7d\xe4\xc8\x95\x77\x4b\xff\x5b\xdb\x9b\xdd\xf3\xba\x5b\x15\x46\xa7\xe2\x18\x1d\xe2\x2b\xde\x6d\x6a\x55\x19\x97\x63\x19\x36\xe4\x98\xe9\xd4\x49\x88\x73\xe5\x5c\x16\x3f\xc3\x73\x63\xb7\x8d\x7f\x43\x5d\x2f\xa8\x13\xb3\x23\x7b\xea\x45\x34\x02\x84\x35\x05\x9b\xae\x0f\xa9\xed\xb1\xb3\x47\x7c\x88\x11\xff\xee\x5c\xf9\x7f\x3d\xb1\x95\xd5\x93\x69\x6b\x33\xab\xdb\x48\x0a\x37\x5b\x25\xa7\x85\xb0\x34\x78\x86\xe1\x64\x82\xb5\xb9\xf6\x9b\x13\x57\xd2\x32\x73\xcf\x71\x51\x66\x9d\x4c\xaf\x39\x84\x06\x16\x22\x3d\x2d\x1d\x71\xae\x43\x0f\xe7\x63\xa5\xc3\x9f\xcf\x00\x92\x66\xb5\x78\xe6\x8e\x06\x4d\xc2\xc3\xd0\xe0\x00\x50\x57\x91\x7e\x60\xb9\x4e\x41\xa4\x72\x93\x27\x3d\xd7\x70\x2b\xcd\x08\x99\x4c\x58\x8e\x78\x74\x42\x03\x84\xbc\x44\xc0\xb1\xc0\x8a\x7c\x51\xe9\x1e\x1b\x96\x96\x49\x0b\xc2\x44\x32\xd1\xda\x08\xe2\xe3\xd8\xef\xbd\xd4\x20\xb4\xe1\xd9\x29\xd8\xd4\x71\x2b\xe2\x71\x51\xf7\x18\xea\x56\x7d\x26\x0d\x9b\x42\x25\x1e\x4f\x1d\xaf\x2d\xb8\x6e\xaa\x92\xf5\x80\x56\x65\x9c\x74\x32\x75\x9d\x3e\x08\x39\x9e\x58\xd3\x63\x20\xfe\x06\x44\x97\xaa\xdb\xa9\x10\xd6\x30\x9e\x65\x7e\x0a\xf1\x86\x55\xc9\xd2\x86\x1d\x34\x93\xa1\x7b\xfe\xf7\xb9\x7d\x6a\x25\x17\x82\x21\x1d\xf6\x18\x65\x6d\x39\xc9\xad\x9c\x3a\xd2\x49\xeb\xa3\x00\xed\xa4\x80\xd0\x55\x20\x45\x46\x03\xeb\x5a\xc5\x6e\x27\xd8\xf2\x14\x60\xb4\x6e\x5f\xe0\xea\x6e\x5f\x84\xf2\xdc\xe5\xd4\x63\x2a\xc1\x0a\x3d\x50\x00\x3a\x62\x0a\xc4\x5a\x83\x6f\xe1\x97\xb3\x6a\x76\x7f\x0b\x1f\x1d\x98\xc3\x8a\x9c\x13\x39\x9e\x78\x6a\x72\x42\x47\xaa\xef\xc2\x8e\xd5\xdb\x4b\xdf\x6f\x45\xcd\x1b\x51\x6c\x90\x59\x51\xf3\x77\xb5\x6f\x53\xb7\xeb\xb4\xde\x5b\x0f\x01\x98\x7a\x39\x8c\x17\x01\xa9\x85\x43\x52\x3b\x66\x0b\x2e\x15\x50\xdf\x49\xd6\x53\x61\x99\xbb\x9c\xd5\x61\xb3\xd2\xf1\x5d\x2a\x4d\x86\x17\x9c\x44\x70\x7f\xbb\x53\xa6\x15\x9d\x10\x8a\xc3\xdc\x64\x06\x89\xe0\x26\x14\x0f\xa6\x59\xe8\xa9\xc0\xa8\x74\x96\x02\x15\x61\x0a\xc2\x93\x92\x1d\x88\xc1\x78\x10\xe1\x8e\xa1\x4e\x70\xd8\x8b\x04\x17\xe0\x12\x80\x41\x86\xb0\x89\xb6\x00\x9b\x5a\x84\x94\x25\xee\x25\xa1\x50\xba\xce\x41\x25\x71\x6a\x07\xac\x64\xc7\x9a\x79\x27\x77\x72\xdc\xae\x7a\xec\x83\x69\x69\xee\xd9\x27\x19\xb6\x9b\x27\xf9\x67\xc1\x0b\x3b\x14\xdc\x3e\x85\x23\x79\xd9\xa1\xfc\xc0\x8d\x85\xa3\xc4\x1e\x04\x1b\x6b\x5b\x6d\x17\x9a\x5d\xc7\xf2\x5e\xa8\xd8\x69\xda\x7a\xd5\x9e\xde\x19\xde\x6d\x0d\x35\xcf\x33\x62\x6a\x4b\x32\xc7\xba\xe7\x82\x04\x6b\x38\x94\x80\x55\xba\x60\x39\x0b\x9c\xec\xcd\x7c\xa2\x72\xca\x15\x84\x85\x82\x6d\x90\x3e\x62\x52\xa5\x80\x3c\xac\xc6\x8d\x30\x83\x0c\xa6\x19\xa8\xb4\x81\xac\xd6\xee\xc1\x6f\x4c\xeb\x60\x58\x48\x31\x3a\xac\xa1\xe7\xc5\x64\x79\x69\x76\x30\x93\x3f\x6a\x44\x80\x7b\x1d\xff\x68\x11\x00\xc8\x78\x46\x72\xbc\x32\xcc\xbc\xd9\x34\x2e\xe3\xc9\x48\x8a\x89\xa8\x50\x65\x96\x43\xe9\x84\xc4\x52\x01\x56\x53\x0e\x91\xf5\x1f\x88\xc7\x24\x2b\x51\x70\x20\x73\xc1\x61\xf0\x83\x28\xad\xfa\x4a\x76\x89\x61\xc5\xa1\x3e\xf2\xcd\x51\x32\x4f\x7c\x0f\x73\xc4\x58\xc6\x17\xc2\x57\x28\xa9\x87\xb4\x1f\x44\x97\xbe\x40\x95\x2c\x34\xda\xfd\x9b\xe2\x66\xb9\xd2\x07\xd2\x68\xda\xf0\x82\x99\xe6\x15\x1a\xc9\x31\xe3\xc6\xc8\xb1\xc2\x87\xda\x7d\x3f\xb8\xce\x45\x32\x88\xc9\xd2\x45\xc1\x4c\xac\xbc\x5f\x9b\x4d\x2f\x3e\x95\xcb\x36\xe2\x18\xc6\x62\x85\x40\x64\x73\x58\xca\x44\x24\x77\x20\x42\x88\xd4\xaf\x2b\xc8\xaf\x12\x11\x85\xef\x45\x36\x63\xa5\x91\x6a\x3c\x60\xd4\x05\x88\x39\xc1\x82\xe9\xd3\x49\x62\xe7\x01\x29\xfe\x9e\x64\xc7\x9e\x56\x38\x46\x8f\xe9\x7a\x73\xf7\x76\xfc\xe2\x18\xcf\x7b\xad\xab\x46\xa9\xc8\x05\x0a\xcc\x5a\x31\x5f\x64\x85\x5b\x0b\xa8\xa7\x88\x64\x5b\x12\xee\x6f\x63\x00\x42\xc4\x86\x08\x0c\xae\x98\x28\x0a\xbd\xe8\x95\xf1\xdb\xf8\x4c\x7b\xe0\xe7\xd9\x79\x17\x80\xd6\x24\x97\x95\x46\x0c\xd8\x6f\x13\xa1\x16\x1c\x38\xb7\x65\x64\xf9\xed\x55\x3d\x54\xdd\x93\x4f\xd7\x18\x9d\x48\x1e\x0d\x96\xf3\x59\xa6\x39\x20\xb9\x66\x90\x22\x86\xc9\x3f\x3c\xd3\x6a\x8c\xea\x08\x07\x27\x40\x91\xc6\xef\x6a\xc8\xa4\xc4\x5e\x22\x95\x11\xee\x38\x39\x09\xc0\xe7\x00\x9f\x5a\xed\x15\x52\x27\x41\xd2\xd0\xd5\xe4\x7a\x84\x58\xec\xe9\x52\x7d\x28\x55\xd8\xdf\x41\xb5\xd3\x90\x04\x82\xab\x0d\x91\x36\x74\x51\x11\x4a\x19\xf3\xfc\xa0\x87\x09\x37\x6c\x28\x9c\x08\x15\x93\xda\x6a\x2a\x8f\xf4\x9b\x4f\x2d\xfb\xa5\x1c\x8a\x4c\x58\x84\x60\x25\xe8\x64\xa8\xda\x6a\x0b\xc4\xc2\x61\x53\x7e\xd7\x7e\xe2\xe0\x6f\x78\x3d\xe8\x2f\xc3\x19\xe4\xa0\x82\x4a\xaa\xc0\xf1\x21\x53\x1e\x5c\x03\xb5\x99\xf8\x0d\x08\xfe\x23\xe0\x2a\x61\xd1\xed\x27\x17\x4e\xf5\x8a\x27\xf7\xcc\xb5\x89\x21\xc2\xd5\x0c\x60\x84\x33\x31\x45\xf2\xaa\x44\x66\x7e\x4a\xf3\xe7\x89\xf4\x96\xda\xba\x06\x0c\x3a\x45\x77\x85\x4e\x92\xb2\xe8\xa1\x6a\x8f\x65\x7f\x7a\x8d\x1b\x5a\xad\x73\x71\xff\x78\xe8\xa2\xbb\xe1\x36\x6d\x49\x47\xa0\x8e\x10\xc9\xa2\xd3\x0c\x27\x75\x6e\x90\x66\x3f\xf0\x95\x2e\xfc\x7e\xb4\xee\x26\x61\x27\x37\x17\xea\xb4\xae\x54\x8e\x30\x75\xd4\xe7\x1b\x3f\x4c\x64\xe6\xf4\x29\x95\xb8\x01\x02\x8d\x78\x91\x49\x51\x20\xeb\x31\x5e\x17\xd3\x0f\xca\x0f\x5f\x2d\xc7\x7d\x86\xcd\x0e\x2b\x05\x92\x20\xfd\x01\xeb\xb6\xd0\x59\x36\xe4\x09\x94\x09\xae\x71\xca\xd8\xd3\x66\x74\x76\x2f\x18\x4f\x0a\x6d\x4c\x38\xc7\x85\x80\x83\x3b\x60\x1f\xb8\x6d\x4e\xc6\x9f\xcd\x8a\x14\x58\x54\xbc\x85\x1b\x1d\x7a\x8e\xdf\x61\x4e\xe0\x72\x22\xdf\xa0\x1b\x33\xe1\x4e\xae\x44\x40\xc0\xd2\xa0\x52\x99\x6b\x63\xe4\x10\xab\x00\xf8\x99\x83\xd5\x05\x4e\xeb\x70\xc6\x46\xf2\x31\xdc\x93\xc6\x6b\x2b\xd5\xfc\x16\x0f\xd8\x7f\xe9\x12\x92\x1b\x47\x92\x2c\x34\x98\xda\x33\xa7\x0e\xa6\x62\x58\x8e\xc7\x50\x8b\x7c\xc6\x8c\x00\x63\x3b\x0d\x84\x83\x57\xfa\x43\x8d\x21\x64\xda\x9f\x7b\x94\x62\x26\x4e\xeb\xe8\x07\xad\x23\xba\x75\xc1\x98\x06\x8d\x21\x08\xe1\x6f\x8c\xf4\x2a\x2c\xbd\x06\x04\x0e\xef\x99\x2e\x60\xbf\x43\xdf\x10\xd8\x82\x56\x3c\x72\xc3\xe2\x71\xc8\x42\x91\x69\x63\xf9\x50\x66\xd2\xce\xfc\x50\xf8\xad\x15\x8f\xb6\xb9\xff\xf4\x0c\x6f\x62\x91\xce\xe2\x4d\x7d\x9e\xc7\xb1\x2e\x05\xac\xf7\x42\x8e\x78\x96\x31\x7f\x20\x21\x55\x58\x5a\x26\x14\x00\x8d\xbb\xb7\xc8\x4b\x01\xdd\xe4\x07\x7c\xcb\x9a\x2c\x7e\x28\x12\x3d\x25\x91\xb0\x4d\x62\xa9\x52\x94\x61\x5e\xa9\x40\x88\x6f\x11\x55\x64\x68\x76\x29\x0d\x6c\x67\x26\xe0\x26\x83\x95\x30\xb1\x54\x2e\x44\x86\x58\x96\x6c\xc6\xa4\xe3\xad\x53\xe1\x6b\xf5\x71\xf6\xfa\x55\x7f\x2a\x55\x69\x05\x33\x9a\xdf\x79\xec\x70\x78\xb3\xdc\xda\xc2\x54\x32\xca\xf9\x86\x77\x50\x8f\xda\x66\x50\x39\x8b\x5b\xa5\x35\xd7\x84\x5e\x00\x5a\x85\x40\x44\x6e\x78\xa3\x71\x60\xb8\xe1\x0b\xe9\x33\x60\x17\xda\x7a\x4b\xf2\xa8\xe5\x1d\xc0\xf7\x56\x40\xc6\xa7\x92\x19\x3b\x70\xfb\x42\xa2\x08\x65\x76\x92\xdd\xaa\x4e\x77\x77\x17\x33\xa3\x6b\x48\xfc\x71\x47\x3d\x37\x27\xee\x37\xb9\xd6\x61\xb4\x38\x9e\x3d\xf0\x99\x71\x2c\xa6\x9c\x8a\x94\x8d\x61\xc6\x8e\xa3\x44\x17\x10\xde\x7d\x68\x41\x45\x5a\xaa\xb8\x28\xf2\x2a\x4d\x85\x9d\x68\xa0\x8b\xdf\xf8\xea\x3d\x88\xee\x6c\xb4\xcf\x4a\x18\xd3\x73\xbb\x09\x84\x44\x83\x3d\xe2\x94\x15\x44\xcb\x4a\x3f\x74\x47\x84\x78\xd2\xa8\xb4\x65\xb1\x73\xeb\xdb\x29\x17\x53\xad\xce\x28\xd4\x60\x95\xb2\xd4\x68\x0d\xa1\x7a\x86\x4a\x26\xe9\x5c\x90\x5a\x94\x42\x2b\xc3\x8a\x52\x29\x12\xe3\x21\x7f\xa9\x9b\x45\xee\x0e\x99\x98\x1f\x64\x63\x1e\x54\x9f\xeb\x52\x0e\xe4\x1b\xa1\xc2\x21\x93\x49\x2c\x11\x66\x50\xb4\x1d\x12\xb9\x77\x4b\xfa\x55\x49\x05\xd4\xc4\xbb\x5c\x1e\x26\x3a\xab\x82\x23\x1d\xdf\xbb\x00\xbf\x11\x4e\x18\x02\x92\x40\xd6\x2d\xc4\x18\x02\xae\xbc\x64\x34\xe5\xee\x5f\xfb\xe0\xa3\xaf\x3a\xf8\xa8\x4b\xf6\xc1\x07\xda\x7a\x70\x17\xee\x38\xc0\x51\xa7\xfb\xc8\xff\x7d\xf0\xd4\x3e\xf2\xff\x79\xa2\x65\x9e\x20\xe8\x3f\xf6\x83\x2e\x7e\x53\x8e\x51\x44\x35\xd4\xb2\x89\xe8\x55\xaa\x48\x93\xf1\xb6\x34\x3d\xaa\x05\x0d\x00\xac\x09\xfb\x57\x29\xc0\x34\xa2\xef\x01\x50\xc6\x89\x5e\x9e\x33\xfd\xcd\x87\x0e\x80\x70\xd8\x18\xe1\xd3\x55\x70\xf9\xd3\x1c\xa2\xe7\xa1\x8a\xaf\xaa\xcf\xd2\x89\x55\x5d\x62\x38\x54\x44\x84\x1b\xf7\xcd\xca\x80\x73\x3c\x27\x03\x76\x1c\xde\xd5\xb6\x91\x41\x2b\x80\xff\x04\x8f\xf0\xa7\xab\x9d\x7b\xe0\x2f\x1a\x33\x7f\x32\x50\xc3\x79\x12\xed\xc2\x43\xe2\x7b\xbc\xaa\x5c\xda\x6b\x1d\xc2\x0a\x1e\x1f\xdf\x87\x40\x7e\x77\x90\x82\xb7\x17\x5f\xf1\x1e\xe3\xec\x4e\xcc\xf0\xc1\x87\xa4\x11\x51\xf0\xd0\x18\x2a\x0f\x92\x3c\x72\x27\x66\xde\x02\x57\x76\x8a\x01\xea\x56\xbb\x12\x2f\x00\x54\x2f\xf4\xea\x5d\x98\xf0\xfa\xe8\xd9\x11\x33\xf7\x2b\xe9\x9e\x26\x01\x94\x78\x69\xa8\xde\xa2\x56\x80\x47\x04\xfe\x15\xba\x90\x5e\xf0\xf9\x95\x67\x32\x0d\xa4\xc2\x63\x7c\xae\x7a\x4e\x3f\x73\xff\xe7\xec\xd1\xc9\xf1\x3d\x76\xaa\x85\xb9\xd0\x16\xfe\x39\x60\xef\xc9\x36\xfb\x61\x93\x02\x9d\x38\xf2\x2a\x41\x52\x31\x38\xc7\x6e\xaa\xb1\x50\x60\x82\x4e\x1a\x76\x57\x1a\xf7\x2c\xeb\xc2\x4f\x19\x04\x4e\x4c\x10\xc2\x2e\x62\xcf\x18\x18\x53\x5a\xfb\xc0\x95\xba\x7e\xe2\xb5\x2e\xe9\x6e\x71\x57\xef\x01\xef\xe9\xc3\xc2\x8f\x29\x45\xc0\x48\x35\xce\x42\x64\x51\x8f\xc4\x75\x5f\x26\x14\xa4\xd8\xbc\x10\x5e\xbf\x57\x8c\xea\x6f\x92\x31\x00\xfb\x43\x19\x3a\xe3\x09\x14\x94\x2b\xd0\x60\x47\x89\x20\x32\x61\x90\x06\xc2\x20\x3d\xe4\x79\xea\x26\x77\x64\x36\x8d\x22\x99\xe1\x7c\xef\x92\xe5\x00\xb7\x5c\xca\x6b\xca\x2c\x83\x6a\x05\x90\x39\x36\xcf\xde\x43\xbc\x96\xd2\x15\x50\x38\x16\xc0\x8b\xe2\x73\xf0\xd1\xc2\x78\xac\xe3\x8b\x53\xac\xed\x2a\xd8\x8d\xce\x75\xa6\xc7\xb3\x78\x36\x54\x38\xdf\x1b\x6e\x80\xa1\x95\x43\xba\x90\x5e\x0f\x8e\x3f\xe8\xc0\x99\x9a\x91\x63\xab\xee\xd5\x82\xe7\xac\xb6\xa4\xe1\xcc\x9b\x30\x80\xa3\xed\x1a\xe2\x72\xd1\xbb\xb0\x8d\x96\x01\x64\x78\x27\x45\x96\xee\x98\x02\xe0\x71\xff\x6a\x29\xb0\x0b\x63\xc3\xaa\x64\x50\x6a\xb2\x38\x0f\x14\x01\x6e\x83\x8b\x98\x2a\x94\x82\x89\xa1\x73\x14\xc2\x5c\x0c\xc5\xfa\x04\xed\x6c\x55\x3e\x9f\x2b\x91\x62\x82\xf3\x69\x2c\x6c\x4b\x1c\x06\x2a\x8f\xee\x5a\x9f\xce\x14\x9f\xca\x84\x8c\x40\x38\xa4\x47\xc0\x64\x63\x6e\x45\xf5\x3c\x28\x3e\xcc\x22\x54\x59\x6f\x37\x0a\x36\x66\x1f\xc9\xb7\xc0\x97\xe7\x03\xb7\x4f\x57\x9c\xe7\x53\xf7\xe8\x27\xa8\x9e\x5e\x68\x0b\xe6\x1f\x32\x94\x19\x7c\x4c\xc0\xfa\x19\x86\x1b\xb0\x2b\x4c\x8a\xa5\x40\x46\xf0\x8c\xbe\x1e\xbc\xfe\x6e\xc0\x8c\x10\x95\x76\x26\x8d\x71\xcf\x2d\x29\x68\x6f\x5e\xff\xf5\xcd\x9b\x0d\xd0\x2a\x75\x7a\x72\x7e\x7a\xb5\x2a\xdb\x10\x5b\x35\x35\x82\x5c\xa7\xec\xfc\x92\x15\x60\x01\x0d\xee\x9e\x38\x72\x72\xe3\x09\xad\x62\x12\xbe\x59\x73\x4a\x7e\x3a\xa6\x75\x3e\xb0\xd7\x08\xc2\x3e\x9c\xb1\x4b\x9d\x52\x21\x17\x6e\xe3\x40\xcf\x10\xc1\x29\x4d\xf3\x1c\xbe\xb2\x13\x26\x94\x2d\x48\x4e\x40\xc0\x76\x22\x05\x50\x88\x76\xf0\x9c\xa2\xb9\xa9\xf4\x35\xb7\x18\x05\xfc\x9a\x0c\x27\x21\xae\x5a\x8f\xd8\xf9\xe5\xfd\xf7\x20\xab\x9d\x5f\xde\xbf\x79\x4a\x19\x60\x57\xd9\xa9\x88\xde\x57\xac\x3c\xf7\xe7\xa7\x71\x26\x4e\x2d\xf8\x06\x0d\x3b\xba\x4c\x3d\x16\x60\x48\xbe\x44\xdf\xdf\x5b\x76\x5b\xbe\x7a\xf5\x5d\x72\x49\xbf\x5e\xf0\xa9\x80\xbf\x88\xb7\x47\x47\xf5\x9f\xae\x71\x83\x12\xc7\x60\xce\x4f\xb1\xd1\x06\xa1\x70\xbc\x61\x41\x6f\x5d\xd0\x7c\xe5\x26\x7c\x82\xf0\xeb\x1d\x3f\x41\x37\xae\xd3\xad\x9e\xdc\x52\x51\x40\xb3\xe3\x73\x2b\xd6\xf6\x39\x6e\xeb\x61\x7f\x0c\xbd\xc0\xfe\x97\xe0\xc2\x54\xe2\x01\x32\x20\x06\xec\xa7\x99\xf7\xce\xf4\xc2\xfb\x12\xf5\xb4\x36\x86\x0a\x98\x21\xe0\x7f\x8f\xbe\x99\x72\x55\xf2\xac\xef\xfe\xd1\xf7\xc9\xc8\xc8\xee\xbb\xc2\x7c\xee\xe4\xf5\xed\x12\x89\xb6\x49\x22\x7e\xc7\x28\x67\xca\xd4\x59\xa9\x90\x79\x13\x73\x68\x8f\x25\x89\x39\x39\xed\xab\x60\xf6\xff\x04\xfb\x0f\x45\x86\xd7\x6f\x61\x8f\xc9\x51\x95\xb5\xbf\xd5\xe6\x55\xd3\xb8\xd0\x56\xbc\x45\x95\x28\xb0\xd5\x54\x24\x19\x2f\x50\x71\x02\x5e\xe3\xc6\x43\x17\x3a\xa4\x4c\x80\x56\xe4\xf4\x74\xaa\x7f\x6d\xca\xd1\x48\x26\x12\x1d\xab\x98\xb9\xdd\x0b\x85\xe4\x15\x43\x87\x61\xca\x2d\x07\x47\x5d\x89\x6e\x7d\xef\x53\x96\x34\x46\x3a\x60\x27\x3c\xcb\x22\x8f\x85\x54\xc6\x0a\x9e\xc2\x7b\xcf\x01\x92\xb9\x4f\xca\x1a\x58\x34\x50\x2d\x63\xd7\x42\xc0\xf2\xdf\x1e\x1d\xe5\x85\x7f\x6f\x7f\xfc\xeb\x77\x7f\x7d\x4d\xf5\x26\x7d\x20\xcd\x13\x08\xa1\xc7\xf5\x3c\xad\x55\x7c\x60\x15\x8f\x7f\x32\xcc\x02\x9e\x01\x4e\x7c\x1b\xa7\xf9\xfa\x4a\xba\x1d\x57\x93\x6d\xca\x0f\x55\x45\x96\x70\x47\xab\xfa\x10\x15\x9e\x85\xdb\xf7\x2a\xa5\xa4\x0e\x66\x7c\xc2\x73\x9e\x48\x3b\xdb\xa0\x0a\x5c\x42\x9f\x7e\xfd\x24\xf4\x8b\x6c\xd2\xcf\x6a\x0b\xb1\x0b\x73\x54\xdc\x18\x0b\x39\x17\x85\x01\x37\xae\xed\x7b\x58\xe4\x40\xa6\xf5\x09\xdc\x15\xd0\x24\x64\xac\x78\x80\x9b\x60\xec\xf2\xac\x3c\x64\x1d\xd7\x63\xe3\xd7\x2f\x55\x16\x73\xcd\xd0\xcd\xee\x39\xc9\x1f\x07\xff\x04\x35\xbb\x5d\xa8\x9a\x9d\xe1\x49\x17\xc4\x89\xc7\xaa\xc3\xbd\xe4\xf0\x8f\x14\x15\xcc\xa0\x2e\x26\x35\x15\x73\x41\xe0\x67\xba\x30\x54\x63\xfd\xb5\x35\xc3\x3e\xba\x44\x47\xc0\x0a\x97\xc6\x76\xb4\x4e\x5b\x4e\xf9\xb8\xb3\xe0\x11\x6a\xe9\x31\xfc\x2c\xd4\xc8\x54\x73\x49\xe6\xdb\x9e\xe7\x13\x3f\xd4\xb9\x1b\x69\x2b\x21\xd9\x4d\xee\x5c\x8d\xe6\xaa\xc9\xae\x67\x2a\x82\xd4\x3c\xe8\x66\xe9\x61\x43\x43\xa2\x4c\xcd\x51\x59\x4a\x4c\x20\x46\x61\x26\x9b\xf9\x40\xe2\x59\x24\xa9\x6d\xc1\x48\xdc\x57\x9b\xa3\x0b\xb9\x35\xd5\x10\x86\xe6\xb1\x16\x16\x61\x0d\x6d\x3b\x71\xec\x0d\x2a\x64\x78\x61\x51\x89\x7b\x51\xb0\xdc\x03\x39\xa0\x67\x43\xe9\x07\x14\x24\x83\x71\x65\x03\x47\x07\xbe\x27\xc7\x54\x49\xa5\xe3\x39\xf7\x55\x25\x2a\xb1\xc0\x57\x62\x59\x6c\xf9\xd8\xf6\xc0\xfb\x29\x62\xd9\x8c\xad\x0e\x3c\x4d\xff\x5c\x7d\x5e\x79\x0c\x82\x4a\x01\xa3\x83\xe0\xe3\x17\x0f\x45\x71\x05\x3b\xa0\x4a\x0f\x87\xb1\xf7\xf7\x0b\x39\x32\x36\xd1\xed\xaa\x7b\xbb\x42\xbf\x0b\x0d\xbd\x9b\x73\xad\x9b\xdc\x41\xcb\x8b\xc2\x27\x3a\x38\x32\x8f\xa3\xe6\x14\x76\x5b\xf7\xc0\xaf\x7f\x19\x86\x5a\xdb\x95\x36\x9d\x9f\xb4\xb6\xec\xfc\xb4\x75\xc8\x0d\x2e\x60\x78\x32\xae\x4a\x65\xe5\x54\x74\x8b\x61\x3b\x69\x7c\xc5\x7c\x44\x5b\xdb\xac\x02\x46\x40\x41\x8d\x0b\x31\xd5\x56\xb0\xe3\xcb\xf3\x10\xe2\x9f\xdc\x89\xe2\xed\xd1\xd1\xeb\xc1\x0f\x83\x57\x9d\x0b\xe6\xc4\x11\x54\x8e\xb3\x65\xdd\x26\xff\x0b\xb4\x5d\x3e\x65\xd0\xcc\x5f\x96\x50\x62\xa4\x5f\xbc\xa4\x79\x7e\x37\x78\xfd\x66\xf0\xaa\xff\x6a\x30\xcc\xf5\xe0\xfb\x3e\x9f\xa6\x6f\xbe\xdf\x68\xb6\xe5\x50\x5c\x16\xfa\x71\xd6\x71\xc2\xbe\xf9\xd2\x39\x6f\x38\x8f\x4c\xd8\xee\xb3\x70\xd2\xd6\x8e\xe7\x40\x2a\xd1\xca\x73\xff\xd1\xb7\x6b\x1f\x98\xbd\xd3\x85\x07\x94\xa3\x2e\x43\x62\x50\xc2\x29\xcb\x9d\xac\x9e\x80\xa4\xd7\xb0\x32\x57\xe8\x10\xec\x83\xe0\x85\xc2\x70\x1d\x38\x06\x53\xae\x0e\x7e\x38\xf4\xbd\xf6\x65\xfa\xd6\xdb\x22\xa6\x5c\xfd\x38\xd0\xc5\xf8\x28\x93\xaa\x7c\x74\xff\xec\xe7\x4e\xee\x72\xff\xf5\xc3\x51\xf5\xc1\xe0\x87\xc1\xc4\x4e\xb3\x4d\x83\x1a\xa4\x1a\x23\xf7\xeb\xc0\x96\x3e\x85\xfa\x5c\xf8\xc9\x8e\x58\x93\x36\x28\xe7\x2d\x9f\xc0\xa7\x6b\x06\xcd\x96\xdc\xa9\x23\x61\x93\x23\x6d\xfa\x85\xc8\x00\x9c\x01\x2f\xd6\xa9\x18\x4a\xae\xd8\xfb\x8b\xcf\x47\x58\x00\xea\x47\x76\xf0\x30\x11\xe2\xf7\xd9\xe1\x26\xf7\x0b\x71\x1a\x3e\x7f\x5e\x79\xa8\xae\x43\xc3\x8d\x4f\x55\x75\x2e\xeb\xa7\xe8\xa6\xcd\x89\x91\xb8\x57\xea\x4a\xa4\xec\x67\x6e\xa1\x86\x91\x09\xd2\x19\x4f\x12\x61\xcc\xa0\x10\xe9\x84\xdb\x41\xa2\xa7\x4e\x42\x2b\xa7\x3e\xee\xf7\x48\xa8\xfe\xe7\xeb\xa3\x2b\x91\xfe\xf3\x67\x6e\xff\x79\x5d\x0e\xc3\x42\xfe\xf9\x31\xd4\xd0\x3a\x7a\x7d\xe4\x0e\xda\xd1\xd5\xcf\xd7\x1f\x8f\xc6\xc2\xba\x83\xd0\x47\x6a\xf4\xdd\x2b\xb9\xce\x31\x9c\x7b\xdd\xdb\xc3\x14\xaa\xfb\xdb\xbe\x01\xf3\xef\xdb\x42\xb6\xdd\x72\xde\x3a\xbc\x54\x8b\xf9\xd9\x32\x8e\xbb\xe4\x92\xf5\x16\xc8\x04\xf4\xe7\x8d\x03\x2f\x10\x58\x0f\x1c\xf0\x1d\x82\x0d\x5b\x5a\x93\x23\x1e\x8c\x21\x55\x14\xb9\x48\xe9\x98\xd5\x22\xc3\x77\x18\xb0\xfe\x6b\x3d\x2d\x99\xc2\xd3\xdd\x7f\xc2\xec\x7c\x65\xc1\x87\x42\x5a\x2b\x90\xcd\x42\xb4\x9f\x1e\xf5\x42\x22\x8a\x3b\xf7\xb7\x2f\xee\x5f\xdf\xbe\xd8\xe0\x3a\x8f\xfc\x30\xab\x7c\xa4\x6e\x26\x34\x4b\x24\x89\xd5\x44\xb3\x90\xeb\x1a\x90\x62\x9c\xf4\x41\x71\xa3\x3b\x06\x53\xa8\xa6\xbb\x9b\x13\xd3\xa5\xbc\xe8\x86\x95\x45\x25\xd4\x59\xb4\x18\x9e\x9a\x7a\x81\x39\xc0\x55\xed\xfe\x2c\x45\x54\x9f\xab\x2a\xfa\x74\x07\xe3\x7c\x44\x6b\xa2\x04\x36\xce\x72\x29\x10\x50\x22\xdc\x98\xe0\x89\xc0\x3f\x3a\x1e\x5f\x78\x54\xec\x1e\x0a\x0b\x14\x64\x57\xe5\x5a\xa0\x67\x19\x33\x41\xd9\xff\x7b\xfd\xe9\xe2\xe8\xbd\xf6\x31\x03\xc0\xce\x31\x95\x11\x43\xd7\x4c\x99\x4c\x18\x07\x94\x04\x77\x66\xae\x01\x69\x79\xca\x95\x1c\x09\xe3\x18\x3e\x71\x37\xf3\xf7\x6f\xff\x81\xef\x4e\xc8\x0d\x26\x7c\xac\x10\xc7\xef\x37\x99\xca\x68\x46\x66\x9f\x07\x69\x27\x30\xa5\x5c\xa7\x34\xe9\x07\x98\xac\xe5\x77\x84\x8a\x83\xee\xef\x4c\xde\x89\xb7\xec\x16\xc0\x32\xa3\xb1\xff\xdb\x09\xbc\xff\x73\xfb\x02\x5e\xdf\x42\xb0\x5b\x28\x11\x7b\xfb\xa2\x96\x9c\x8e\x70\xc6\x91\xc1\x8e\x06\xc7\x80\xce\x42\x8e\xc7\x90\x3e\x03\x79\x04\xf7\x42\xd9\x43\x77\xbc\xe4\x88\x29\x1d\x35\x0e\xd5\xac\xc3\x85\x9c\x9b\xcc\xdf\xbf\xfd\x87\x9b\x49\x7d\x75\x4c\xaa\x54\x3c\xb2\x6f\xf1\x42\xbb\x27\x57\xa7\x87\xf4\xda\x9a\x99\xb2\xfc\x11\xe2\x6b\x26\xda\x08\x85\xd9\xee\x56\x63\x30\x21\x20\x3f\x3d\x88\x2c\xeb\x63\xda\x4d\xca\x1e\xd0\x9c\xec\x09\x8a\x81\x81\x39\x2f\xec\x02\x56\xda\xf9\x5c\x76\xcd\xe7\xe8\x52\x57\xf7\xab\xc9\x96\xf8\xc3\x16\x0b\x6e\xac\xa1\x59\x25\x71\xd1\x42\xa8\x2a\xc9\xd3\xaf\x66\x2d\x34\xef\x68\x31\xde\xc5\xd3\x8d\xf3\xfa\x28\x0d\xd6\xf8\x0c\x53\x7f\x25\x04\xd1\x40\xa4\x6c\xc4\x5d\xa6\x3c\x45\xf6\xc3\xd5\xd3\x63\xb4\x3a\x92\x81\x63\x27\x99\xf5\x29\xfa\x01\x20\x5b\x13\xad\xd0\xfb\x94\x2c\xf0\x36\x2d\xa3\x51\x29\x57\x5d\xc4\xcf\x55\x90\xcc\xd3\x1e\xd9\x52\x76\xbe\x75\xdb\x1a\xd6\x2e\x83\xc3\x8e\xac\x95\x8b\x05\x87\x66\x53\x76\x70\xf9\xeb\xa1\x4f\x34\xc3\xaa\xd6\x21\x9b\x0c\x62\x14\x48\xe4\x1c\xce\xc0\x25\x57\xc5\x84\xe8\x02\x62\xae\xc0\x55\xc7\x33\x3d\xd6\x84\x56\xb6\x6b\xd7\xe3\x3e\x13\xf3\x6b\xce\xc4\xdc\x67\x32\xfe\x59\x32\x19\xff\xad\x61\xe0\x9b\x5c\x71\x3d\x48\x78\x1e\xcc\x3d\x15\xa3\x60\x15\x27\x0b\x75\xe6\x1f\x6a\xb1\x98\x60\x95\x1c\xb0\xcb\x55\x4c\x76\x77\x41\x1c\x2d\xcc\xb5\x9d\x94\xdb\x21\xca\xcf\x11\xb3\x73\x4c\x40\x23\xb2\xc5\xc7\x7d\x44\xca\xec\x11\x85\xf3\xf9\x08\xf2\x39\x2a\x6f\x0c\x3f\xff\x14\x34\x5d\xf5\xae\x87\xbf\x3f\x55\xfa\xec\x9c\x60\x50\x6b\xb5\x6d\x1a\x6d\xb3\xf7\x93\x8c\xcb\x65\xe9\x45\xad\xed\xf1\x69\x28\x8d\x28\x5e\x06\x0e\x4d\x41\x7e\x29\x4b\xa0\x05\x6a\xf0\xcd\x9d\xde\x0b\x06\x7b\xc1\x60\x2f\x18\xec\x05\x83\x67\x15\x0c\x80\x65\xad\x5f\x30\x86\x6c\x80\x2c\x99\xf0\x82\x27\x56\x14\xd2\x58\x99\x50\xac\x26\x89\x07\x74\x08\x49\x0c\x80\x4c\x1f\x5e\xda\xc9\x53\x89\x00\xf8\x17\x60\xb0\xcf\x23\x06\x20\xe9\x9e\x40\x16\x58\x20\x6e\xc1\xd2\x9e\xfc\xd5\x5f\x40\xc6\xaf\xee\xe5\xc7\xb7\xf9\xe9\x9f\xff\x2e\xf8\xf4\xcb\x3f\x24\xa3\x71\xb6\xb0\xf4\x79\x7e\x9f\x74\x43\xaa\xbf\x2c\xf4\x50\x7c\x51\x94\xfa\xdc\xcd\x20\xf5\x76\xf3\x3f\x2e\x2e\x3d\xb9\x1d\x9f\x10\x9c\xbe\xff\xd5\x81\xd3\x7f\xa6\x9c\x17\x74\x05\xa1\x30\x37\x04\x8c\x82\x89\x2e\x6c\x2f\xc4\x07\x94\x2a\x15\x85\x81\xd7\xcf\x4d\x9f\x64\x19\x70\x8e\x8c\xe5\xbd\xf0\xd1\x9c\x01\xe1\x7e\x19\xba\x3d\x3b\x1f\x11\x0c\x0c\x80\xc4\xdd\xbe\xb8\x12\x46\xfe\xee\x34\xa8\xc2\x8a\xf4\xf6\x85\x2f\x08\xc3\x95\x87\xa0\x49\x45\x91\xcd\xa0\xac\xc5\x1c\x03\x94\x86\x0d\x05\x16\x89\x71\x9d\x6c\x12\xae\xd9\xfe\x04\x6c\x8a\x74\xff\x95\xa2\xd6\xb7\xb2\xa3\x15\x70\x73\x0b\xbf\xa9\xd7\xb3\x5f\xa0\xf1\x58\xd1\x09\xa1\x67\xaf\xbf\x7c\xdd\x10\x73\x15\x6c\xc2\x02\xe9\x63\xfd\xcc\x94\xf5\x65\x8e\x9d\x06\x3d\xb7\x4b\x0d\x51\x67\x7b\xa8\xbb\x7f\x5b\x3d\x70\x0f\x75\x87\x7f\x7f\x56\x89\x7d\xf7\xd8\x77\x8b\x35\xda\x35\x5f\xbb\x16\x00\x14\xb7\x8f\x5a\xd5\xea\xe1\x8f\x82\x5b\x31\x15\xf7\x32\x01\x74\xfd\x94\xf1\x2c\xd3\x0f\xee\xc6\x13\xb4\xb1\x93\x8b\x7c\x46\x74\x3f\xc4\x4e\x56\xfd\x74\xa9\x11\x92\x08\x63\x3e\x02\xd8\xe7\x0a\xae\x5d\xb5\xac\xc2\xa6\x62\x25\x9d\x42\x79\xa6\x54\x67\xd0\x67\x60\xf8\x07\x71\xc2\xef\x77\x9a\x5a\x89\xc3\xf5\x61\xb8\xfe\xeb\x67\x49\xe4\x88\x18\x85\xbb\x9e\x5b\x02\xcd\xdc\xcc\x72\x91\x7e\xd0\x09\xcf\x9a\xf1\x6b\xcb\x38\x45\x14\x2f\x9b\x70\x05\x6c\xd6\x60\x42\x0f\xee\xff\x8c\x2a\xa6\xbc\x65\xff\x0f\x3b\x56\x4c\x3c\x4a\x03\x2f\x01\xf9\x14\x14\xcf\xcd\x44\x5b\xff\x02\x1c\x18\xfa\xc3\x80\x28\xed\x59\x4b\xa3\x79\x9f\xfd\x24\x2c\x3f\x6c\xf4\x79\xf9\xeb\x09\x3b\x68\x3d\xe4\xcd\x96\x49\x69\xac\x9e\x86\x57\xe8\x88\x86\x47\x0c\xc7\x0a\xc4\x0a\xf2\xe2\x29\x7d\x0a\xaa\xcc\x1d\x67\xf9\x84\x1f\x22\x28\x5b\x8a\x85\x2d\x4b\x23\x16\x2c\x06\xb8\x19\xc2\x5d\xf0\xdc\x1d\xf8\x42\x3a\xd5\x77\x29\xa4\xce\x41\xbd\xab\xd3\xb0\xad\x4c\x17\xec\x58\xcd\xf0\xe7\xea\xcf\x87\x1e\xa4\xad\x72\xf2\x03\xcc\x3e\xa4\xd6\x93\x20\x47\x51\x19\x19\x14\x28\x50\xcc\x94\xb9\x53\x4b\x1a\x71\x95\xb0\x54\x43\x45\x24\xa4\x45\x78\x1d\xc4\x3b\x62\x1c\x60\x2b\xe8\xfa\x0c\xb9\x81\x82\x24\x21\x8a\x2c\x82\x0a\x6b\xef\x2f\x00\xc9\xb5\xfe\x5a\x01\x15\xe4\x18\xc9\xdd\x8b\x2f\x6b\x5c\x64\xd0\xa3\x2f\x39\xce\x03\xb1\xa2\x5c\x66\x8e\x90\x1e\x56\x2e\x84\x82\x23\xa6\x1c\x04\xb1\x85\x0a\x0d\x08\x24\xde\x03\x6d\x3e\xe3\x10\x3e\xe3\x09\x01\x29\x03\xf1\x8c\x60\xe3\xc2\x30\x71\x95\xe8\x26\xa5\x2b\x1c\xf3\x05\xaa\x73\x25\xba\x6e\x7a\x2d\xaf\xa8\x87\x08\x4c\x6b\xb9\xe1\xed\x2a\xa4\x90\x37\x6c\x6f\x53\xa9\xe4\xb4\x9c\x46\x39\xe6\x4f\xcf\x15\xab\xf5\xb7\x2b\xa6\xf3\x01\xd5\x9d\xa8\xb3\x4c\xbe\xe1\x43\x91\x75\xaa\x8e\x79\x1c\xc1\xba\xce\x10\xd4\x35\x64\x28\x42\xcc\xa3\x01\x7c\x1d\xf7\xa8\x0d\x25\xd4\x66\x5a\xb0\xc9\xb4\xfe\x93\x8c\x1b\x73\xb1\x5e\xb8\xdd\x75\xf4\x69\xa8\xf2\x5a\x39\x97\xc1\xf4\xb9\xc3\xf4\x7f\x37\x4c\xf3\x71\xea\x9e\xef\xe9\x1e\xdb\x15\x6b\xab\x1a\x06\x15\xf6\x01\xe2\x4b\xa9\x1c\x5e\x65\xd3\x58\xb0\xd8\x5f\x41\x69\xd0\x23\xf6\x4e\x66\x82\x0a\x77\x4a\x03\x4c\xd9\x31\x0e\x40\x26\x71\xfc\x40\xaa\x24\x2b\x53\xac\x91\x82\xee\x45\x08\x43\xdd\x74\x69\x1d\xb6\xed\xd7\xd0\xd0\xe7\xf6\xd2\xa9\xa8\x97\x79\x73\x3f\xcc\x45\x67\x0d\x79\x72\x87\xfa\x8f\x34\xb4\xd2\x2f\x14\x53\x16\x9b\xef\xd7\x95\x14\x03\x54\xcf\x22\x60\x9e\x45\xd6\xfb\x67\x91\xfb\x78\x62\x4b\x9e\x2d\x14\xfb\xaa\x2d\x10\x20\x28\x4c\xf8\x4e\xd5\xfa\x2f\x2b\xfe\xfd\x71\xe0\x4f\xae\xea\x6f\x12\x6d\x5a\x0d\xf6\xa4\x61\x11\xa5\x80\x90\xa7\x84\x2c\xa1\xa3\x5c\xf9\x2e\x16\xdb\x82\x40\x98\x59\xcb\x5e\xeb\xd6\x83\x32\x48\xd5\xbf\x17\x59\xa8\x7a\xcb\xcb\x9a\x7d\xf8\xe5\xae\x2b\x5d\x2f\x77\xf0\x74\x3c\x77\xb5\x9f\x9e\x13\xd4\xa4\x0b\xec\x02\x42\x2e\x2c\xf0\x35\x06\x98\x85\x56\x42\x7c\x51\x46\x4c\xd2\xfe\xaa\x2a\xab\x2b\xbf\xad\x9e\x20\x72\x28\x60\x1c\x8e\xe3\x73\x3e\x83\xca\xbd\x5b\x21\x6e\x9d\x32\x2f\xe8\xc4\x8e\xa4\x4a\xe9\x45\xd3\xa5\x4a\xd9\xe5\xaf\x68\xf5\xd5\x25\x92\x92\x87\xb3\x1d\xe2\xb5\x34\xe0\xc7\xaf\x9e\x97\x34\x3d\x26\x0c\x98\xff\x78\x96\xcd\x7a\x8c\xb3\x87\x82\xe7\xb9\x28\x18\x2f\x60\x30\x72\x3d\x35\x25\x04\x5f\x89\x3f\x44\xdb\x19\x3d\x15\x5a\x09\x26\x32\x23\xd8\x41\x15\x10\x76\xd8\x05\x88\xd5\xcd\xab\xc3\x13\x7f\xe2\xdb\xf9\x47\xce\x67\xcc\xf0\x45\x2e\x80\x36\xe2\x62\x95\x23\x04\xf9\x84\x5a\xa2\xf8\xec\xfb\xc0\xb6\xe7\x35\x25\x77\xf4\xa3\xa5\x9f\x54\xb6\x0a\x07\xfe\x37\xa8\x3d\xa6\xd1\x6a\x2b\xc0\x23\xef\xbe\x72\x4c\x8c\x6a\x64\x92\x22\xfc\x11\x0e\x4e\xc0\xf6\x62\x23\x9e\x99\x45\x0c\xbc\x03\xf4\x60\xbb\xb9\xaf\xda\xd3\x5d\x3b\x8e\xd6\xf4\x19\xad\x76\x17\xed\x3d\x45\x7f\x12\x4f\xd1\x87\x45\x7e\xa2\x5d\x8a\x92\x4f\xfb\xf8\xef\xbd\x40\x7b\x2f\xd0\xde\x0b\xf4\xec\x5e\xa0\xa7\x77\x00\xad\xe9\xfb\x01\xb7\x0f\x49\x39\x5d\xd2\x1e\x9e\x5e\x87\xe7\x59\xc6\xa0\x36\x65\xa4\xb4\x93\x4b\x81\xb0\xb2\x9e\x4a\x5f\x7f\x6e\x6d\x9d\x3f\x98\xb3\x8c\x1b\x2b\x93\x9f\x32\x9d\xdc\x5d\x5b\x3d\x0f\x5d\xd5\x1d\xe0\xec\xb7\xeb\xb9\xce\x6a\x6a\xc5\x52\x13\x68\xcb\xc7\xb1\x1a\xc5\x15\x3b\xfe\xed\x9a\x9d\x4a\x73\x17\x33\x6b\x14\xcd\x63\xf4\x36\xee\x81\xf9\x5f\x1a\x00\x48\x09\x61\x55\x64\x45\x57\x4c\x3c\xe6\xda\x54\x50\x6f\xa0\x41\x6c\xb8\x9d\x61\x0f\x1f\x8c\xc0\xd9\x0f\xdd\xec\x0d\xd0\xb1\x9d\xe2\xbf\x97\x85\x70\xab\xd8\x9c\xcc\xbe\x87\xee\xb4\xf5\x5f\x34\x09\xea\xfe\xce\x4e\xb9\xe5\x48\x57\x38\xdc\xde\xa1\x02\xb4\x73\x34\x1b\x4a\xaf\x81\xc5\x14\x5b\xb2\xba\x77\x72\x1e\x40\x78\xbd\xd5\xb9\x1e\xe6\xd8\x44\xc7\x75\xba\x6f\x5b\xd7\x09\x3f\xb8\x67\x5c\x26\x62\x07\x4b\xfd\xe3\x18\xba\x8e\xdb\x0a\x65\xcf\xb1\x55\x48\x96\xf1\xb6\x2f\x48\x95\xf1\x18\xc8\x5f\x07\xea\xaf\xc8\x27\xa3\xcd\x7d\x57\x27\x22\x9f\xbc\xbb\xde\xe0\x4c\xe1\x87\xb5\x03\xc5\xdc\xdf\xd8\xbb\xeb\x96\x43\x04\x0c\xc9\x4c\x78\x01\x49\x7c\xb9\x4e\x5f\x1a\x40\xd9\xb4\x72\xba\x08\x28\x57\xaa\x54\xac\xed\x75\xaa\xd6\x05\x9f\x6f\xb2\x2e\xf8\xb0\xbe\x2e\x9c\x8b\x7f\xf1\x02\x53\x0d\x16\x18\xf4\xb6\x86\xba\x27\x31\x77\x6d\x3d\x24\x84\x3f\x12\xea\x9b\x4c\x67\xe6\x5f\x59\x1f\x47\xe9\xe7\xe9\xd1\xd5\xd9\xf1\xe9\xc7\xb3\xc1\x74\x41\x75\x16\xd0\xab\xaf\x80\x10\x9b\x11\x67\x9d\xe8\x81\x13\x1a\x0c\x40\xb8\x3c\x82\x07\x1b\xca\x7e\x2a\x0b\x91\xe0\x85\x0e\x6e\x96\xa1\xb0\x0f\x42\xa8\x79\xf5\xda\x91\xaa\xdd\xb6\xc7\xce\x1e\x73\x91\x58\x7c\x76\xa8\x4e\x9a\x92\x19\xba\x91\xc0\xd8\x35\x20\xb3\xee\xbc\x77\x07\xb3\x36\xa4\x53\x99\xef\xd1\xd7\x53\xcd\x00\x0d\x64\x97\xbf\x9e\xec\xf2\x9a\xd2\x3a\x17\x6c\x8b\x91\x9b\x1f\xd7\xeb\xf3\x4d\xce\xea\xf5\x79\x7c\x50\x7d\xfc\x8f\x7f\xfd\x27\x5c\xa5\x59\x48\x76\x0d\xc1\x06\xee\xab\xb4\x90\xf7\xa2\x60\x07\x3f\x09\xcb\x7d\xb8\xc3\xe1\x02\x86\x3e\xda\x3c\xa9\xe7\xdd\x49\xe7\xb5\xbc\x3b\xa9\xdf\xb9\x77\x72\x58\x08\x76\x32\xe1\x4a\x89\xec\x09\x24\x9b\x05\x6b\xcd\xc4\xe3\x1c\xb2\xc3\x9a\x6b\xce\xc4\xe3\x06\x7b\xf9\x2e\x8c\x5c\xa7\xc3\x58\x28\x51\xc8\xa4\xca\x5d\x6a\x10\x22\x82\x8e\x38\x0a\x44\x41\x9b\x26\x6c\xba\x48\x28\x1e\x24\xcf\xca\xb1\x5c\x94\x13\x31\xca\x00\x28\x74\x8b\x45\xc3\xf7\x6b\xac\x16\xda\x37\xb6\x9c\xfe\xd8\xe4\xb3\xab\xb6\x78\x7e\x77\xc1\x0a\x2e\xad\xc1\x7a\x48\x64\x4a\x4f\x45\x2e\x94\xaf\x8a\x24\xc2\x68\x14\x7b\xc3\x0c\x49\x40\xe4\x19\x42\x1c\xf1\x76\x6a\x8d\x93\x48\x0a\xdb\x4a\x66\x7d\x7f\x72\x56\xef\xa9\x33\x05\xe7\xbe\xac\xd3\xf2\xfd\xc9\xd9\x93\xe9\x04\x0b\x12\xe9\xb7\x56\x16\xc6\x89\xa8\x78\x6e\xea\xc8\xda\x4e\x7d\x4c\xe8\xdf\x42\xe8\x79\xef\x7b\xd8\xe0\x9e\x86\x6f\x1b\xf4\x0e\x7f\x6e\x78\x47\xea\xe4\x0e\x12\xf5\xb6\x74\x6d\x8a\x10\x44\xc3\xa3\x40\x9c\x55\x42\x84\x9b\x49\x1b\xc0\x5b\x67\x22\xfe\x4c\x1d\x74\xa6\x9c\xff\xa0\x4e\x38\x14\x23\x74\x31\x8b\xe5\xc5\x79\x5a\x30\x30\x4e\x39\xbd\x81\x41\x81\x4c\x84\x74\x80\x7b\x2d\xdd\x35\x17\xa3\x32\xc3\xca\x25\x50\xd7\x14\x0a\x2b\xf9\x6f\xa0\xde\x0d\x9c\x68\x81\xb1\x85\x5a\x65\xb3\xff\x9b\x7d\x52\x7d\xd8\x0e\xff\x6c\x36\xa3\xdc\x98\x54\x8c\xab\x19\x80\x99\xb9\xaf\x7f\x3b\xff\xf0\x81\x5d\x7c\xba\x61\xbf\x7d\xba\xfa\x05\x7e\x64\xd3\x32\xb3\x12\xc7\x0a\x30\x13\x5b\x5e\x02\x37\xa5\x3c\x82\x38\x6c\x98\xc0\xcd\x36\x52\xc6\xf9\xf5\x66\x72\x06\x7c\xd7\xd0\x1d\xf1\x6f\xcf\xcd\x62\x16\x64\xf4\xe9\x84\x67\x1b\x53\x05\x02\x6a\x3b\xd3\x02\x5a\xc7\xb4\xc0\x03\x9c\xcd\xfa\x61\xd5\xfe\x40\x01\xaa\x1e\xd6\x87\x1b\xc1\x0c\x16\x95\x0f\x75\x3a\xc4\xa7\xbc\x4b\x1c\x44\x95\x08\x43\x3a\x16\x7e\xd5\x63\x00\xf6\xfb\xf7\xdb\x17\x85\xbe\x7d\xd1\x63\xb7\x2f\x8c\x1e\xd9\xdb\x17\xff\xc0\xaa\x8c\x00\xa3\x08\x81\x99\x7d\xfa\x0e\x4b\x33\xca\x69\x9e\xcd\x20\x48\x93\x49\xac\xa6\x0e\x45\xbe\xa0\xf9\x0e\xc5\xe6\xa3\x6f\x60\xd0\x3e\x4d\xf6\xb9\x6d\x79\x6a\x8b\x97\xe2\xe2\xdd\x75\xe7\x93\x71\xd1\x50\x87\x15\xbb\x68\xd3\x85\x9f\xee\xfd\x74\x0b\x6d\xa7\x80\x4e\xc5\xb1\x3f\x82\x9b\x92\x82\xd4\xaf\xb8\xab\xa5\xd4\x88\x1a\x06\x0f\x68\xa2\x95\xb1\x05\x54\x14\x44\x66\x91\xc9\xa9\xb4\x18\x7f\xa8\x28\x1c\xac\x0a\x7a\x20\xd3\x32\xda\x81\x29\x2b\xb6\x0e\xff\xac\x46\x59\x59\x85\x54\x54\x45\xab\xc0\x03\xa8\x53\x1a\x24\x54\x3c\xf5\x76\xf2\x56\x22\xe5\x0d\xbe\x78\x85\xce\xfa\x4b\x9d\xc9\x64\xa5\xdf\xdd\x0d\x33\xe1\x79\x2e\x94\x59\x00\xa2\x82\x0a\x2d\x81\x73\x53\x86\xaf\x93\x50\xab\xa0\x4a\xa8\x84\x0e\xe4\x87\xca\x1b\x57\x02\x40\x50\x0f\x52\xef\xa2\xd7\x05\xc3\xaa\x81\xd9\x2c\x04\x5a\x37\x99\xb9\x39\xec\xb1\x53\xc7\x6d\x45\xfd\x43\x2a\xec\x03\xdf\xc6\x60\x73\x6d\xdf\x3b\xc6\x7c\x45\xf5\x4f\x0e\xaa\x1a\x24\x87\x83\xf0\x57\x1f\x12\x5f\x3d\x95\x14\x21\x4a\x4b\x45\x55\x23\x8e\xc1\x02\xf2\x37\x07\xdb\x6d\x14\x33\x10\xd2\xf1\x8a\xb5\x9d\x77\xf9\x44\x5b\xad\x76\x24\xd1\x5f\xb6\x74\xd6\x99\x85\xb4\x7d\x5c\x17\x97\xb0\xc5\x49\x95\x2f\x10\x1d\x34\x27\x32\xaf\x67\x9d\x5a\x40\x0f\x5d\xd8\x07\x5d\x6c\xab\x08\x5f\xd6\xba\xe9\xb2\xfa\xda\x07\xf5\x75\xfb\x39\x6d\x64\x84\x6b\x5f\xe6\xbf\x4a\x3d\x9c\xd9\xcd\xd7\xf7\x9f\xf8\x7d\xe7\xe5\x51\xfb\xfa\xba\xfc\x1f\x77\x61\x32\x2d\x86\x73\xae\xff\xee\x39\x0c\x3f\x9d\x6e\x20\x18\x5e\xfd\x74\x5a\x5f\xce\x15\x4f\xb5\x61\xe0\xa9\x62\xa7\x62\x81\x47\x61\xd9\xca\xd6\x52\x76\x8a\xe1\x4a\x5b\xa9\x49\x78\x26\xce\x3f\x6d\x4c\x97\x6b\xfc\x7e\x03\xda\xd0\x97\x75\xfa\xf8\x3f\xce\x3f\x0f\x8b\x0e\xf4\x2f\x81\x1f\xe2\x0b\xb9\xdb\x04\x87\x5a\x72\x43\x1d\xaf\x76\x7e\x8a\x43\x91\x69\x35\x36\x03\x76\x36\xcd\xed\x8c\xc2\x46\x3c\x44\x02\xb7\xb5\xb7\x3b\xd5\xc2\x50\x56\x90\xfb\x08\x11\x2c\x66\xb5\xf1\x36\x42\x49\x80\xcf\xf5\xe6\x02\x1d\x4d\xe0\xd3\x26\x2e\x8f\xf0\x6d\x63\x4f\xc3\x9f\x97\xa8\xfe\xee\xf0\x2f\x51\x84\xfc\x86\x4b\x15\x19\xb1\xd6\xb8\x09\x81\x30\xab\xee\xc3\x36\x69\x22\x32\xc2\x50\x02\x45\xc1\x0a\x95\x06\xc3\x3d\x24\x15\x82\xca\xc3\xa9\xd2\xb5\x85\x02\x0a\x21\x47\x44\x43\x32\x5e\x21\xa6\x4e\xac\x91\x8a\x15\xfc\x81\x81\x57\x18\x01\x67\x36\x4b\x2c\xd9\x34\xa5\xc4\xe4\x13\xe1\xbd\xf0\x9b\x8b\xc4\xd4\x8b\x2c\x6c\xc9\xb3\xb5\x5e\xfa\x5f\xe3\x09\xd4\xcf\xd3\xfd\x35\xfc\xb4\xed\x4b\xf7\x7f\x35\x56\xbd\x6d\xcc\xe5\xda\x19\x29\x1b\x24\xa3\x74\x08\x61\xe9\x86\x74\x73\xcc\x26\x6b\x62\xdd\x3c\x4c\x6a\x22\x2c\x9c\x6f\x5f\x9c\xc0\x9d\xce\x4d\xc4\xca\xae\x51\xf1\x34\xa9\xf9\x2b\x16\x8a\xf2\xf6\x28\xee\x1b\xab\x12\x38\x49\xb7\xe7\xee\x53\x50\x27\xc0\x44\xb6\xf3\x64\x34\x5c\xc1\x26\xc1\xca\xab\x41\x7f\xae\x10\xa7\x07\xe2\x10\x87\x85\x14\xa3\x2a\xd4\xaf\x86\xec\x53\xe5\xbd\xbb\xf7\xc3\x27\x94\x72\x0c\x61\x74\x8f\x8f\xd7\x8c\x90\x99\xe6\xbc\x20\xdf\x47\xca\xac\x4c\x67\x4e\x28\xce\x33\x88\x4d\xc4\x04\x8f\x0f\xe7\xcf\x96\x4e\xb0\x4a\x13\x58\x7c\x95\xae\xe6\x45\x7e\xb6\x44\xe6\x0f\x21\x10\xab\xaf\xcf\xc8\xdc\xb4\xe0\x05\x35\xbd\x33\x15\xff\x85\x98\x7f\xab\x91\xf1\x0c\xd8\x47\xd2\xfc\x78\xcc\xd8\xa1\xcd\x9c\x2e\x08\x6c\x29\x54\x00\x0a\xd8\xb0\x67\x8f\x03\x76\xfb\x42\x3c\xda\xef\xd1\x50\xf5\x38\x32\xf8\x1f\xca\xba\xff\x1a\xb0\x73\xc7\xee\x13\x69\x33\x8a\x27\x2d\xc2\x0b\xe3\x3f\x73\xb7\xa4\x54\x21\x55\x79\x93\xab\x99\xae\x2c\x60\x75\x7e\x4a\xef\x38\x15\xa5\x12\x66\xf5\x46\xec\xb6\xda\x0d\x4c\x92\xfe\xb9\x79\xe4\xbc\x4e\x97\xb1\x6c\x4d\x91\xc0\x89\x5b\x4f\xe2\xe3\x60\xaa\x4a\x21\x48\x83\x84\x2b\x56\x94\x0a\xcb\x9c\xa0\x0d\xeb\x06\x63\xd6\xab\x04\x71\x6f\x91\x18\xce\x28\xca\x17\x83\x65\xc8\x26\x03\x4f\x96\xd5\x58\x99\x6b\x1f\x66\xff\x55\x87\xd9\xef\x43\xc8\xff\x2c\x21\xe4\xff\xde\x80\xb2\x3a\xed\x04\x1f\x5b\x0b\xab\x8e\xd1\x69\xe6\x50\x25\x16\xc4\xc3\xee\x92\x1e\x6e\xc5\x50\x9b\xa5\x8e\xb8\xb7\x5b\xb8\x58\x9d\x76\x00\x87\xfd\xe8\x9e\xef\xf9\xd2\xd8\xa6\x56\x53\x1e\x48\x82\xc1\x15\xdc\x72\xb8\xc0\xe1\x02\x3a\x1e\x99\x82\x5e\xb7\x21\x4e\xfc\xf3\xd0\x75\x95\x94\xf7\xf4\x79\x08\x3a\xdd\x71\xda\x81\x4e\x5b\x9c\x3d\x6d\x4f\xbf\x77\x4b\x22\x2b\x87\x79\x42\xe5\x67\xf7\x9c\x21\x2c\xb2\x6f\x10\xb9\x56\x8a\x32\x13\x5d\x9e\xf0\x50\xb1\xf3\xb4\x74\x4c\xef\x3a\xf4\x70\x3e\x56\x3a\xfc\xf9\xec\x51\x24\xa5\x5d\xfd\xce\xdf\x54\xfe\x1d\xa8\x57\x96\x65\x54\x12\x14\x60\x62\xe8\x07\xf2\xf9\xe8\xe0\x4b\xe2\x96\x19\x6e\xa5\xa1\xf2\x7b\x61\x39\xe2\xd1\xbd\x3e\x06\x7c\x2d\x15\xe4\x0d\x9c\x4e\xef\x5c\xea\xb1\x61\x69\x99\xb4\x04\x20\xa3\xb5\x11\x54\x72\x87\xd2\x6d\xa5\x86\xd7\x1f\xdc\xa6\x50\xe5\xaf\x08\x90\x21\x51\xf7\x03\x28\xf7\x5e\x7d\xe6\x94\x16\x77\xb3\x02\x75\xbc\x7e\xec\xba\x01\xeb\x89\xfb\xc7\x18\x84\x29\xe3\x9e\xb9\xa9\xeb\xf4\x41\xc8\xf1\xc4\x9a\x1e\x93\x03\x31\x00\x7d\x47\xf0\x64\x12\x75\x3b\x15\xc2\x62\x7e\x46\x54\x4b\xd2\x6f\x58\x04\x4b\xc3\x0e\xc2\x6b\x4c\x2f\x67\x2f\xc0\x7c\x34\xf7\xa9\x95\x5c\x3d\x26\x6c\x32\x38\xec\xb1\x44\x4f\xf3\x12\x90\x87\xdc\x1c\x87\x33\x26\xad\x17\xf5\x7d\x55\x6a\x20\x85\x07\x6a\xf2\x02\x18\x15\xf1\x53\x29\xe3\x29\xc4\x8c\xde\xbe\xc0\xd5\xdd\xbe\xf0\x52\x95\xeb\x50\x56\x25\xf7\xd9\x84\x1b\xdc\x59\xb4\x4e\x4e\xb9\x4d\x26\x01\x07\xad\x28\x84\xc9\x35\x86\x9f\xe6\xd5\xc9\xbf\x11\xc5\xf4\x6f\xa1\x8b\x03\x73\x58\x11\x77\x22\xc7\x13\x4f\x5b\x5e\x60\xa6\x6c\x7d\x4f\x76\x9c\xdd\xff\x1b\xac\x4f\xa4\x97\xf5\xe9\x6d\xe5\xd4\x5e\xb4\x69\x1b\x5d\x2e\x02\x7f\x0a\xfb\x5d\x3b\x31\x0b\xee\x07\x90\xce\x31\xfb\xa9\xb0\xcc\xdd\xb3\xea\xdc\x58\x39\x15\xbd\x60\xc5\x8c\xf1\xa1\x1a\xda\x80\x0d\xd5\x80\x37\x9a\x41\x02\x75\x8e\x51\x37\xf4\xb3\xd0\x53\x37\xaa\x13\x16\x53\x20\x01\x4c\x41\x78\x3a\xf8\xaa\xe8\xa5\x20\x2f\xad\x4e\x09\x61\x08\x05\xc6\xc3\x5e\xf4\x3e\xc1\xcd\xd7\x45\x78\xd5\x6c\x01\x25\x0f\x01\xb4\x0a\xbd\xb0\xe2\x5e\x26\xb6\x8a\x39\xf4\x2e\x5d\x5c\xd2\x6f\x84\x29\x51\x08\x20\x15\x84\x0a\xe5\x59\x75\x23\x70\xa8\x4c\x1a\xbc\x1c\x8a\x52\xad\xe2\xf3\xec\x46\x73\xf7\xbc\x71\xae\xa1\x3f\x60\xd2\x06\x22\xa7\x89\x2d\xb8\xdb\x8f\xf5\x61\x83\x7f\x16\x78\xdf\xbc\x8a\xbc\x75\xc6\xea\xb6\x07\x79\x6b\xd3\x4a\x63\x02\x8b\x9f\xb9\xd3\xaa\x72\x90\xb0\x21\x2c\xe0\x40\x39\x9d\xc0\x1d\x26\xc7\xd6\x81\xa1\x78\x95\x25\x8b\xc1\xa9\x58\x21\x32\x0c\x2e\xa7\xd3\x3a\x96\xf7\x42\x55\x38\x02\x07\xe6\xf0\x30\xf2\x7d\xb8\x53\x50\xe1\x57\x27\xba\x9f\x69\x70\x9d\xb3\x03\x7f\xb0\xa1\x62\xa7\x3b\x4c\xb5\x1f\x95\x95\xfd\xaa\x85\x63\x54\x3d\x86\x65\x42\xa3\x66\x10\xc1\x8a\xe5\x35\xb9\xf1\xf1\xa9\xa8\x92\x03\x97\x7c\x80\xb5\xdc\x7b\x1b\x7a\x58\x0b\x32\xbe\x3b\x31\x63\xb7\xe5\xab\x57\xdf\x25\x56\xe7\x3a\xd3\xe3\xd9\x2f\x62\x06\x7f\x10\x11\x43\xe5\x54\xa0\x73\x86\x5d\x6a\x45\x2c\x17\x6f\x8a\x7f\x5a\x22\x42\xca\x30\x93\x2e\x40\xf1\x31\xec\xd7\x57\x02\x27\x16\xce\x45\x50\x98\x7b\xc1\xf0\x9b\x38\xf6\xe2\x96\xb9\xc0\xe7\x56\xd5\x98\x5c\xc1\x5f\xab\x86\x81\x97\xf9\xc7\x2c\xfa\x69\xfe\xf4\xf1\x3c\xcf\x24\x62\x9d\x1d\xf8\x4d\xe2\x63\x2e\x95\xb1\x87\x7f\x63\xaa\x74\xcf\x7d\xc1\x04\x78\xe3\x28\x01\x98\x2b\xc3\x6e\x5f\xf8\xd3\xf8\xd2\x54\x03\xdc\xbe\x78\xee\xc0\xab\xe8\xa4\xad\x94\xee\x76\x7a\x7b\x3c\x4b\x36\xcb\xae\xf6\x5c\xdd\xea\x6a\x2b\x9e\xe4\xf6\x45\xd4\xe8\x72\xe3\xd4\xac\xba\x6f\x19\x26\xc8\x34\x6e\x9c\xf7\xc3\xc6\x1d\x53\x0c\x2b\xa0\xbe\x76\xb7\x8c\x76\x34\x48\xc6\xfb\xb9\x03\xbb\xe4\xb1\xb2\xb2\xab\xa2\xa2\xac\xec\xa0\xad\xd4\x5a\xfd\x49\x54\x96\xf8\x74\xef\xf5\x96\x6e\x7a\xcb\x22\x9a\xed\x95\x97\xf0\xe7\x3f\x9f\xf2\x52\xdb\xf4\x2f\xa7\xc1\xac\x3f\x8d\xbd\x1a\xf3\x6f\xac\xc6\x74\xaa\xe2\x14\x35\xab\xc0\x38\x7c\xf8\x82\x07\x7c\xf3\x01\x16\x49\x0c\x91\xe8\x05\xc1\x0e\x8f\xdf\xbe\x8e\xd3\xbe\x8e\xd3\x6e\xea\x38\x69\x25\xfa\x0f\xba\x48\x7b\x51\x48\x47\x54\x96\xa9\x46\xaf\x96\xd2\x4c\xbb\x2a\x9e\xd4\x5e\xed\xce\x03\xea\xd4\xfc\x18\xd5\x51\x63\x27\x98\x74\x70\x53\xb8\x95\xbc\xe3\x99\x11\x3d\xf6\x59\xdd\x29\xfd\xb0\x7e\x82\xc6\x83\x2e\xee\x32\xcd\x53\x73\xe4\x24\x00\xf7\x3f\xfd\x4c\x8e\x30\x88\xfe\x1b\xf7\xaf\x08\xff\x74\xed\x45\xb7\xd5\x7d\x6a\x4a\xa0\xb3\x3c\xe4\xca\x7b\xf0\xc6\xc6\x72\xbf\xf8\x8a\xba\xea\x1e\x4f\x54\x91\x4a\xa7\xa7\x17\xd7\x27\x5a\x8d\xe4\x78\x39\x07\x0e\xcd\x6a\x71\x06\xa7\x17\xd7\x2c\xe7\x05\x9f\x0a\xf7\x8c\x51\x54\x9b\xc6\xd4\xc1\xd4\x73\x04\x4d\x76\x26\x48\xe5\x06\x6d\x12\xf8\xc2\xe9\xc5\x35\x26\x97\x74\x60\xce\xa0\x9b\xa2\x9b\xbc\x73\x86\x98\x9b\x1b\xa0\x63\xe2\x87\xec\xfc\xd2\xcd\xc9\xc9\xc2\xc2\x90\xd7\xce\x83\xdc\x42\xe6\x4a\x5a\x45\xaa\x0e\xdd\x95\x8d\xc6\x5c\x3c\x75\x76\x5a\xe6\x99\x44\x1d\x39\xfe\xa0\x42\xfc\x9f\xea\xfb\xae\x2f\xf7\x0e\x6d\x0f\x7a\xcd\x74\x3a\x47\x2c\xa7\x62\x64\x8e\x52\xf4\x71\x83\x48\x00\x80\x9b\x56\xa2\x38\x10\xc9\x67\xec\x74\x22\x90\x50\xb6\x00\xd3\x4f\x83\x38\xec\xca\x8d\x8c\xa2\x5d\xe8\x10\x2c\x8d\x52\x31\x4a\x0c\xc4\x8f\xf4\xbd\x28\x0a\x09\xda\x93\x36\xa4\x43\xb9\xcd\xe3\xc1\x9e\x01\xb3\x6a\x39\x5a\xcb\xe8\xbe\x8e\xc4\x14\xee\x01\xce\x6b\xab\x4d\x32\x82\x17\x4e\x1b\x5a\x6b\x97\xf0\x23\x96\xea\x29\x88\x41\xee\x45\x99\x68\x63\xfb\x70\xd4\x33\xad\xef\xca\xbc\xcb\xe9\xa6\x6e\x72\x6e\x27\x1d\x77\xaf\xf6\xc5\x17\x39\xdf\x3b\x90\x37\x9b\xdb\xd7\x8d\xe7\x61\xe3\xc0\xf9\xda\x2e\x4b\xe0\x7d\x1d\xb9\xd9\xca\xf0\x50\x7c\x05\x36\x89\xed\xe6\x59\xb9\x45\x45\xc4\xf5\x69\x7a\x7e\xb9\x84\x8c\x15\xd7\x8d\x2b\xea\xa2\x2d\x84\xd8\x01\xdd\xdc\x83\x3c\x2b\x0b\x9e\x1d\x32\xe8\x92\xb4\xc3\x01\x3b\x73\xaa\x93\x6b\x3a\xf3\x81\xef\xe6\xed\xad\x62\x8c\x9d\x5f\xbe\x65\xc7\x2a\x62\xeb\x60\xf6\xc3\xb3\x1a\xe7\x52\x5f\xe9\xd2\x82\x9c\xc8\x2d\xcb\x84\x13\xb6\x1c\x0b\xa3\x41\x7d\xda\xfa\xea\x4d\x93\xf9\x8a\x2d\x93\x39\x58\xe6\x6a\x33\x3a\x38\xbf\xbc\xff\xde\x69\x9f\xe7\x97\xf7\x6f\x0e\x19\x37\x46\x8e\x55\x6d\x7e\xcf\x15\x8c\xab\xd3\x55\xa0\xc1\xd8\xa2\x81\x13\x0c\xd6\xff\x7d\xb8\xe2\x57\x1c\xae\xb8\x16\x2a\xb0\xdb\xce\x27\x5e\xcb\xce\x5f\xdc\x3d\x1e\xf0\x3e\x98\x73\x8f\x07\xfc\x1c\x71\x78\x4f\x00\x01\xac\xd3\x2b\xc1\x53\xc7\xe8\xcd\x7b\x6e\x97\x56\x90\x68\x34\xad\x97\xce\xa9\x15\x30\x42\x1d\x33\xa8\xda\x1d\xaa\x2b\xf8\xa6\x1d\x92\x3f\x4e\xe2\xb6\x38\x2e\x61\x1a\x54\x46\x2e\x12\x1e\xd0\xc3\x5c\xfd\x19\x0e\x1d\xe8\x47\x95\xdf\x75\x96\x77\xce\x9d\xea\x78\x5e\xea\x8b\xd9\x81\x05\xe0\x5a\x24\x65\x21\xed\xec\x44\x2b\x2b\x1e\x57\xc8\x08\x8d\xc6\x6c\xa2\xb3\x14\x4c\xac\xfd\xcc\x5d\x17\x66\xe8\xf7\xb8\x36\x27\xa0\x86\x62\xc5\xce\x90\x5a\xe1\x6b\x32\x38\x96\xa9\xa1\xc2\x87\x70\x1d\xf1\x42\x30\x9e\x19\xcd\x88\xa3\x42\xf1\x2c\xff\xcd\xc0\xd4\x07\x1f\x30\xf6\x0e\x5c\x08\xf8\x4a\xd7\x52\x37\x9a\x6d\x99\xe5\x77\xc2\xf5\x9a\x88\x14\xce\x11\x84\x3f\x8c\x1a\x9f\xcf\x2f\xb0\x53\x4e\xd1\x7b\xba\x5a\xcb\xb5\x38\x70\x80\xf0\x0c\x52\x85\xd0\x7b\xc0\x33\xf2\xe3\x7a\x45\xd6\x87\x3b\xf0\x2c\x8b\xb3\x50\x00\x6c\x09\x84\x59\xa0\x95\xcf\xb3\xc5\x22\x80\x59\xa6\x1f\xe0\x38\xfe\x82\x19\x91\x50\x1a\x0e\x2a\xfe\xa1\x83\xf2\xc1\x75\x31\x91\x39\x0a\x55\x55\xa5\x14\xf4\xb8\x84\xea\x25\x74\xa0\xdf\xde\xaa\x5b\xf5\x1a\xdd\x9f\xfa\x01\xbc\xfc\xef\xcf\x4f\x83\xbe\x07\xc8\x71\xd7\xb0\x5e\xf6\x2d\xb6\x32\xc2\x8e\x65\xca\x86\x12\x64\x47\x23\x2c\x3b\x50\xe2\x01\x13\xa4\x42\x5a\x0c\xdd\x98\xb8\x66\x62\x3c\x38\x75\x79\xc8\xbe\xc3\x3e\x73\x51\x4c\x25\x38\x2d\x5d\xbf\x78\x2c\x3e\x5d\xbd\x24\xeb\x43\xf1\xd0\x2f\x1e\xfa\xfd\x7e\xdf\xcd\x15\x8a\x1d\x19\x61\x7b\x35\x1a\x04\x9f\xd5\x54\xa7\x92\x7c\xc9\x15\x25\xdc\x81\xac\x86\x30\x3e\x04\xa1\xb5\x8e\x13\xea\x2c\x20\xe0\x2b\xfb\xe6\xfb\xf6\xbb\xec\x44\xca\xb1\x28\x16\x80\x0b\xe2\xf9\x38\x81\x3d\xe9\x84\xa7\xd2\xf2\x45\x90\x97\xe3\xb0\x7c\xd8\x66\x08\xc4\x58\xb0\x34\x6f\xf1\x0c\x19\xec\x23\xf7\x10\x22\xc4\x9f\xc7\x9d\x92\x50\x45\xd0\x1d\xfd\x1a\xb8\x0c\xda\x5b\x54\x36\x83\x73\x09\x3e\xb3\xda\xb9\x43\x7f\xae\xaf\x50\x49\x33\xf6\xb5\x37\xfd\x74\x0e\x1a\x94\x3e\x1c\xb0\x73\xda\x9c\x09\xbf\x17\x4c\x69\x26\x46\x23\x27\x43\x69\xc5\x44\x3e\x11\x53\x51\x38\xc1\x3c\x1e\xc8\x94\xc9\x84\x71\xf3\xd6\xb1\x96\xc2\xed\x73\x02\x3a\xf9\x94\xe7\xc8\x59\x20\xfe\x27\x95\x85\x07\x91\xa1\xdb\xec\x8e\xcc\xed\x8b\x4f\xea\x4a\x6b\xfb\x51\x1a\xe0\xc8\xb7\x2f\xe0\x8b\xdb\x17\xc7\xd9\x03\x9f\x61\xba\xdd\x08\x51\xcf\xaa\xc2\x9f\x08\x1b\x03\xd7\x30\x6a\xb8\x81\xcf\xa0\x54\xc7\x9d\x38\x83\x3b\xf0\xee\x8e\x59\x0d\x59\x66\x28\x25\xda\x62\x86\x72\x62\x65\xb3\x26\xc6\x99\x17\x3a\x11\xc6\x0c\xd8\x67\x23\x20\x18\x06\xbc\x30\x1e\xed\x46\xd2\x75\x18\xb0\x8f\x7c\x86\xac\x94\xaa\x78\x49\xc5\x9a\xbc\x8d\xb9\xe5\xd3\x6f\x43\x6d\x27\xcd\x06\x88\x21\x3b\xc7\x13\xa9\xfe\x29\x88\xc9\x15\xe1\xe6\xfb\x07\x9e\x6b\x62\xa6\x8b\xfe\x0f\x6e\x23\x3e\xbd\xeb\xdb\x06\x64\xbf\xd0\xb0\xef\xab\x5c\xe7\x21\xef\x98\x62\x18\x63\x32\x83\xf7\xd5\xed\x07\x37\x10\x40\xa2\xfa\x85\xd6\x00\xa6\x54\xa0\xb7\x1b\x3c\x24\x73\x3c\xc7\x63\x8d\xc1\x2f\x72\xca\xc7\x60\x77\xf0\xbb\x64\x35\x13\xca\x94\x85\x8f\x2a\xb1\x15\x50\x04\x0d\xf5\xf9\xfc\x94\xbd\x62\x07\x6e\xac\x43\x20\x3f\xc0\x93\x59\xcd\x8c\xe5\x45\x73\x8e\x72\xe4\xbb\xa0\xa2\x6f\x10\xcc\x57\x60\x39\xa3\x9e\xbb\x5d\x70\x79\x68\x4e\x71\x59\xb7\x5c\x14\x8e\xd4\x50\xb1\xe0\xeb\x3b\x27\x9d\x2b\x31\x35\xf7\xfd\xb3\x99\x07\x71\x6d\xb9\x6d\x9f\x37\xb8\x6d\xa7\x11\x5f\x70\x87\xa0\xbe\x22\xdc\x69\xaf\x70\x34\x33\x74\xbf\x46\x1a\x3f\xc7\x5d\x34\xe2\x83\x54\xe5\xe3\x02\x6c\xbf\xee\xa0\x25\x67\xb5\x6e\x96\x29\x80\x6e\x77\xa9\x39\x96\x7e\x7e\xb4\x24\xe8\xa0\x74\x95\xce\x4b\x57\xfe\xea\x78\xe2\xf5\x1a\x27\xc0\xdf\x5d\xb8\x3a\xde\xc4\xc8\x38\x2b\xb8\x4a\xf5\x74\x6e\xb4\x10\xe5\x55\x91\x95\xfd\x61\xf6\xbf\x7d\x17\x23\x79\x15\xde\xb3\xee\x0e\x0b\x90\x6e\x4d\x4c\x7b\x37\xdb\x91\x2c\x20\x62\x0b\x6e\x16\xdc\x42\xa9\x1a\x34\xeb\xcd\xbb\x10\xa3\x3d\x79\xe9\x16\x22\xa7\xbc\x98\xb9\x87\x13\x49\x57\xdb\x41\xa5\xfd\xd0\xc1\x09\x92\x92\x07\xc4\x09\x7a\x8b\x4e\xfc\x02\x6b\xd5\xb2\x8b\xb0\xec\x2a\x6c\xe2\x12\x9a\x99\xc4\x66\x2b\x7d\xf9\xd8\x0a\x94\xaf\xc8\x5a\x1b\x22\x78\x53\x46\xfd\x20\x2a\x4d\xad\x26\xe2\x25\x04\xe3\x39\x31\xba\x54\x15\x68\x81\x6f\x7f\xe0\x6b\x1d\x37\x8f\xff\x21\x9b\xca\xf1\xc4\x86\xe7\x28\xe3\xa5\x4a\x26\x3b\xf6\xaf\xe1\xba\xb6\x22\xe0\x83\x54\xa9\x7e\x30\xdb\xb2\x9c\xdf\xb0\x9b\xc6\x25\xea\xca\x81\xe8\xeb\x50\xb6\x28\x28\xbb\xeb\x72\x21\x1d\x9c\x9f\xe0\xb1\xe0\xb5\x2b\xd0\xbc\xe1\xfe\xa8\xbb\x3d\x1f\x3c\xfb\x8b\xbd\x53\x5f\xc5\xaa\x52\x51\xd8\x02\xad\xb6\x8d\x22\x26\x5d\x9d\x70\x3c\xb1\xf2\x5e\x9c\x0a\x9e\x66\x52\x89\x6b\x91\x68\x95\xae\xba\x77\xb8\xff\x3c\x63\x69\x59\x70\x6f\x09\x32\xf8\x69\x08\x20\x9c\xf2\x19\xc2\x76\x42\xe2\x0c\x01\xbf\x41\x2c\x6c\x9c\x4d\x03\x95\x74\x6f\x64\xa5\x94\x45\x11\x8b\xf8\xd2\xc0\xf7\x4e\xf1\xc2\x80\xc5\x29\x2f\xee\x9c\xb4\xe7\x2e\x20\xa1\x21\xdd\x41\x3b\x63\x74\x22\x41\xc9\x8e\x4f\x13\x82\x49\x4d\x03\x5e\x49\xae\x8d\x84\xb1\x89\x4b\xed\xfc\xad\xe7\xdb\x02\xac\x76\x82\x55\x75\xa7\xba\x7e\x45\xd0\x08\x17\x05\xaf\x46\x20\xab\x0b\x66\x5a\x5a\x0d\x78\x2e\x54\xf4\xe7\x38\x49\xdc\xbf\x6e\xf4\x9d\x58\xe9\xbf\x5a\xf2\x69\x04\x63\xf4\x30\x11\x50\x31\x96\x07\x54\x7d\x8e\x0d\x99\x85\x96\x55\x9a\x07\xcc\x85\x5b\x82\x26\xf5\x55\xc4\x36\x10\x7f\xab\xbd\xef\xe8\x0b\x8a\xcc\x4b\x88\x51\x47\xa1\xaa\xe1\xa1\x38\xa9\x1a\x24\xe8\x8b\xa0\x10\xcb\x6c\x56\x3d\xa8\x90\x23\x46\x51\x1c\x37\x10\x25\x1b\x8e\x9c\xf7\xb6\x6a\x55\x53\x59\x1c\x17\x03\x5b\xc3\xbc\x83\x63\xb7\x8f\x49\x98\xff\x93\xd4\x8f\x06\x1f\xfe\xaa\x2f\x3a\xd6\x8f\x4e\x95\x99\x0b\xc1\x5a\x6f\xad\xb5\x38\xae\xa5\x0e\x92\x90\x7f\xb5\x24\x7c\x6b\xc0\x2e\xab\x3f\x56\xcf\x00\x6c\x6f\x23\x1a\xc8\xe7\x05\x86\x00\x12\xd7\x25\x1a\x68\x3c\x8b\x24\x93\x90\x8a\xa3\x72\x16\x91\xa1\x93\x75\xec\x5a\x58\x9c\x39\x1a\xc6\x6a\xd2\xcd\x69\xcd\x7a\x73\x82\xde\xfd\x77\x4e\xde\xbc\x7d\xd1\x62\x20\x7a\x19\xb7\xf8\x4d\xda\xc9\xcf\xda\xd8\x0b\x61\x5f\xf6\xea\x3f\xb9\x7f\x53\xd7\x2f\xdd\x99\x7f\x79\xa1\x95\x78\x39\x68\x12\x30\x04\x2d\x55\xd1\x72\x8b\xa2\xa7\x68\xf2\x21\xb9\x09\x7e\x88\x02\x6f\x6e\x34\x5a\xc8\xdc\x08\x5e\x0a\x70\xef\x39\x07\x38\x49\x68\x3d\xc1\xb9\x3e\xe8\xe2\xae\xc7\x66\xba\xc4\x0f\xac\xa6\x2d\x9b\xc5\x44\x12\x8f\x01\x55\xca\xea\xc5\xcb\xde\xc0\xcc\x25\x14\x1f\x66\x82\xf8\xe1\x07\xa9\xee\x56\x31\xa0\xb3\xb9\x0f\x5a\x38\x67\x1c\x2b\x82\x41\xbc\xc4\x49\x4d\xc4\x3c\xa5\xfa\x3f\x48\x3c\x80\x8d\xc4\x87\x40\xa8\x7b\x59\x68\x05\x35\x0f\xee\x79\x21\xdd\x58\xa6\x57\x4f\x84\x33\x33\x65\xf9\x23\x04\x54\x61\x0d\x94\xcc\xcd\x62\xc0\xfc\xf3\xfe\xb6\x76\x8c\x6c\x51\x6e\x64\x90\x08\xe6\xcc\x93\x75\x59\x73\x65\x08\x8d\x98\x34\xa9\x49\x21\xa2\x9d\x9d\xb5\xb5\x22\xe1\x83\x1a\x43\x05\x1c\x89\x45\x1f\x9c\x68\xe2\xa8\x84\x86\x1f\x30\x61\xf4\x81\xa5\xc0\xb5\xe5\x09\x1d\x31\x34\xb6\xb2\x54\x0c\xcb\xf1\x18\xb2\xec\xc0\x26\x0c\x2a\x46\x12\x38\x76\xc5\x14\x00\x95\x12\xac\xfc\x90\x7a\xe4\x86\xc1\x88\x0a\x19\xb7\x07\x2b\x3c\xa5\x7e\x00\xb7\xf7\x5b\x01\x49\x8f\xb9\x48\xc0\xb9\xad\x8b\x14\xb3\xc3\x78\x9a\xc2\xdc\xe7\x57\x88\x1a\x5c\x6d\x55\x3d\x02\x38\xf7\xa2\x40\xf8\x2a\x22\x8b\x29\x87\x01\x24\xae\x86\xa0\x6e\x18\xcf\xf2\x09\x27\xe7\x15\xc1\xea\x81\xd5\x7b\xa2\x21\x19\x07\x0a\xbb\x93\x4f\x1f\xb4\x65\x3c\xef\x30\xde\xd9\xfc\x0e\xfb\x62\x52\x3b\x7e\xcb\xe6\x47\xfa\xea\x1f\x35\xc7\x9d\x8e\x33\xc9\xcd\xca\xf8\xc6\x9f\xab\x96\x14\x41\xa5\xbd\x9c\xed\x35\x5b\xc0\x4d\x83\xed\x39\xbf\xa4\x7d\xf0\x8c\xb5\xce\x04\xaa\x63\x80\x9f\x8c\x64\x26\x98\x8c\x84\xc6\xaa\x68\x0a\xec\x32\x98\x46\xe1\x09\x51\x1a\xeb\xa1\x10\x47\xa5\xc4\xe7\x9d\xee\x62\x58\xe8\x93\x6c\x9e\xcc\x77\xb9\x75\xe7\x97\x27\xab\xd2\x1d\xe8\xd6\xb9\xd6\x2f\x0d\x93\x79\x52\x19\x20\x5a\x78\xa9\xbb\xb9\xeb\x95\xd9\x6f\xcc\x88\x36\xa6\xc3\x61\x62\x0a\x9b\xfa\x2c\x4a\x61\x6c\xb0\x82\x78\xee\xd9\x98\x3d\x7d\x11\xaf\xe0\x9c\x62\xd0\xf0\x30\x92\x6f\xd3\xeb\x1c\x85\x6d\x1c\x43\x30\xb4\x84\x8c\xad\xea\xb4\xed\x6a\xf5\x97\x2b\x11\x1b\x1b\x2b\xca\x65\xfa\xb4\xfb\xd1\x21\x8a\xb5\x2e\x6d\xfa\x8f\xbc\x91\xfd\x52\xa7\x73\xee\xb7\x5e\xe3\x06\x43\x7b\x4f\x63\x83\xce\x6d\x4e\x7a\x72\xdf\x67\xa4\x83\x40\xb7\x81\xe8\x02\x46\xfb\xcb\x32\xcb\xae\xc1\xb3\xb8\x8a\x4f\x9d\x37\x9a\x2f\x62\x56\x21\x56\x05\xc4\x07\xe3\x1b\x53\xbe\xbd\x5b\x50\xd8\x17\x72\x26\xc0\xd9\xcc\xcb\x8c\xd2\x77\x43\xea\x3b\x4c\x90\x8c\x78\x3e\x69\x92\x6c\x1f\x68\xe0\xa9\x91\x0d\xa2\xba\x71\xb0\xe0\xe6\xe1\x86\x4a\x0b\x39\x11\xeb\x5e\xa6\x25\xcf\x60\x20\x27\x62\x4d\xbd\x55\x17\x9f\x7e\x92\xa3\xa7\x34\xa7\x01\x7b\xa7\x0b\x46\x80\xdb\x3d\x3f\x7d\xc0\x84\xd0\x23\x96\x82\xe0\xd4\x43\x26\x8a\x52\x14\x09\xbc\x88\x86\x4a\xf3\x70\x32\x36\x3d\xa4\x6b\xe7\xda\x54\xcf\xf7\x11\xd2\xe1\x1b\x92\x6b\xa5\x1a\xf7\xe1\x2f\x6e\x21\x34\x52\x5f\xab\x3e\xef\xcf\xc5\xd3\x6e\xcb\xb1\xa1\xda\x51\xb3\x5c\xe8\xd7\xfe\xf2\xba\x05\xad\x2d\x73\xa2\x28\x98\xc9\xdf\x79\x9c\x66\xb9\xd8\x3a\x70\xae\xa4\x8d\x5b\xb9\x9d\xc6\x04\x5d\x34\x18\xa2\x2c\x97\x17\x12\x61\xcf\x6b\xfd\x01\x1e\xae\xe5\x85\x25\x3b\xa5\x3b\xf1\xb2\xd6\x1f\x58\xb9\x4c\x95\x82\x2c\xb1\x76\x8e\x4c\x05\xc1\xe1\x82\xaa\x13\x99\xc2\xa2\x72\x9f\x3c\x49\x74\xe1\x13\x6f\x31\xac\x12\x06\x0b\x9a\xd5\x04\x2f\x20\x1c\x78\xae\x9a\x23\x83\x28\x50\x4c\x6b\x42\xa7\xe7\xeb\x25\x64\xf8\x31\x3e\x75\x3a\xd8\x9c\xfd\xb6\x41\x11\x9f\x70\x0c\x53\xfd\xe0\xb3\xc4\xbc\xa4\xdd\x63\x21\xda\x0d\x93\x3e\x4d\x8f\x7d\x70\xea\x63\xfc\x07\x5d\xa0\x9d\xb0\xcc\xe9\x4f\x38\x7b\x2f\xca\x5e\xc5\xe9\xd5\x18\x1b\xdd\x58\x0c\xa4\xc8\x73\x34\x4e\x39\xce\x49\x56\x28\x4a\xaa\x8e\x8c\x66\xc3\x19\x1b\x51\x11\xdb\x38\xcd\x9e\x5e\xcf\x23\xac\x53\x14\x5c\x5b\x55\x14\xec\x2c\xa7\x00\x6a\x28\x65\x86\x75\x37\x21\x27\x1f\xf5\xab\x10\x72\x84\xc0\x20\x45\x80\x08\xd0\x1e\x22\xa0\x4e\x69\x33\x60\x1f\xe4\xd4\x47\xfc\x44\xc6\x72\xd9\x20\x2e\x98\x91\x8c\x9c\xca\x8c\xbb\xc3\x62\x26\x90\xcd\xd7\xdc\x82\x6e\x76\xab\x96\x48\xdb\xed\xd2\x02\xdd\x64\xfb\x11\xfb\xfa\x77\xb5\x6b\x29\x9d\x8a\x2e\xc5\x38\xa8\x19\x9a\xf3\xe9\xc8\xd5\x40\x42\x02\xba\x14\x80\x0e\xf0\xca\xaf\x12\xb0\x07\x30\xf8\xcc\xc9\xf0\x10\x0e\xd4\x8b\xc1\x34\x44\xe1\x4b\xbd\xf9\x3f\x98\x46\x8f\xd6\x17\xe0\xea\x31\x6e\x4c\x39\x0d\xe8\xeb\xee\xd0\x13\x0b\xa9\xd0\x37\xfc\x95\xdb\x40\xe2\x70\x63\x2c\x82\x80\xea\x56\x20\xbe\x6b\x0e\x55\x0b\x8d\x2b\xe8\x1f\xc4\x03\xa3\x7f\x11\x30\x07\xb1\x38\x5b\x94\x22\x36\xa9\x81\x98\x28\x6d\x05\xf5\x33\x60\xd7\x2d\x5f\x82\x7d\x85\x5a\x40\x4e\xf3\x50\x44\xb9\xf9\xd4\x4f\x03\x3f\xa2\x22\xfb\x26\xb2\x41\x65\x61\x3c\xc2\xb4\x1a\xf7\xfa\x43\x2d\xca\xa3\xf5\xab\xc8\xeb\x7b\x51\x4c\x04\x9f\x4b\x15\xf8\xfa\x8a\xf6\x7f\xa2\x99\xc6\x35\x33\x6c\xf4\x26\x30\xbf\x94\xd8\x31\x84\x51\x93\x04\xda\xc4\x43\x85\x60\x4e\x06\xcb\x2b\x74\xf1\x62\x55\x9a\xb9\x18\x40\xf2\x52\xe4\x01\xc5\x96\x5b\x28\xd8\x87\x01\x86\x10\x1a\x41\x4e\xe3\xb8\x9f\xa8\x49\x12\x00\xe3\x03\x4c\xc8\xca\x96\xee\x8c\xa2\xa5\x25\xed\x55\x4b\x82\xa3\xe6\x4d\x50\xe8\xdc\x74\x4a\x04\x06\x99\x86\xf4\x09\x7c\x24\x57\x0f\x01\xab\xa3\xa4\x9f\x96\x6e\xe8\x78\xa3\x51\x75\x12\x13\x36\x2b\x04\x4f\x67\x0c\xa2\xec\xce\x47\xf5\x91\x50\x52\x81\xc3\x49\xa2\x49\x30\xf1\x92\x08\x4d\x02\x7c\x8f\x85\xad\x6c\xe8\x37\x95\x0b\xd6\x2b\x38\x5e\xf8\xae\xc1\x8a\xc4\xc3\xf6\x18\xa0\x2a\x3c\x48\x23\x1c\xcf\xa2\x95\x41\xa5\x19\x0c\x0a\x83\x27\x9a\x62\x71\xb9\x61\xbf\x8b\x42\xaf\xca\x8a\x10\x6a\xc2\x55\x82\xac\xee\xe8\x4e\xe4\x06\x52\x21\xe0\x82\x7d\xfb\xea\xf5\x5f\x5f\x7d\xfb\xed\x1b\xb8\x72\x9e\x2e\x83\x69\xba\xcc\xb4\x06\x12\x4a\x54\xcd\xe9\xfe\xf5\xe0\xf5\x9b\xde\xba\x26\xb7\x4b\x9d\x06\xb2\xb5\x9b\xda\xba\x5c\xf7\xbc\x10\xee\x99\x90\x5a\x75\x72\x38\x5c\x36\x9a\x7b\x4c\x81\xcb\xca\x01\xe1\x7b\x44\x93\x24\x05\x58\x64\xfa\xc1\xcb\xc0\xd2\xce\x06\xec\x93\x02\xdd\xe9\x42\xdc\x3b\xd5\x89\x7a\xfd\xe0\x1a\x5d\x86\x36\xb1\xe5\xb9\xad\x45\x14\xe0\xb9\x33\x3b\xe6\x85\x56\x97\x61\xfe\x61\xa0\xe5\xe4\x5d\x5a\x5e\x82\xba\xe8\x10\x89\xe7\x9b\x92\x0e\xcf\x7e\xe5\x85\xd4\xa5\xf1\x9e\xf0\x44\x4f\x73\xad\x80\xc9\x85\x2a\x96\xb8\x62\x78\x96\x50\xee\xac\x3a\x89\x61\xb9\x01\xb8\x27\x2c\xe6\x38\x30\x80\x93\x76\x1e\x23\x01\x42\xea\xde\x0f\x55\x50\xca\x16\x05\x6e\x44\x23\x23\x77\x69\x65\x28\x9e\x45\x9a\x78\xa2\xd0\x8d\x9f\x47\xa8\x4f\x86\xbd\x80\x98\x5d\x54\x17\xbe\x57\x09\xdf\x45\x6d\x65\xcb\xbc\xf5\xdf\x7d\xbb\x81\xb7\x3e\x6f\x4e\x68\x35\xca\x54\x64\x6c\x90\x51\xe0\xac\xb7\xd6\x54\xc7\xfc\xf6\x05\xd9\x67\x1c\xaf\xe8\x27\x85\x04\xf7\x76\x88\xbd\xa6\x1f\x29\xf3\xb6\xf6\xbb\xd3\x56\x1e\x74\x48\x94\xb8\x13\xb3\x07\x5d\x04\xec\x30\x3f\x6a\x4d\x43\xa1\x61\x11\x56\x80\x7c\x6b\x10\xd9\x5a\x90\xa2\xd9\xd2\x78\x36\x60\xc7\x6a\x86\x2c\x13\x55\x41\x2f\xfd\x78\x86\x3b\x9c\xc5\x3e\x8d\xda\xee\xf9\xa4\x3f\x1a\xcd\x49\x30\xb0\x9f\x0b\x2d\x59\xd5\xf1\xf4\x7c\xde\xc7\x6a\xeb\x02\x18\x31\xe1\xa5\x15\x54\x82\xdb\xff\xbc\x19\x4c\x4d\x95\x40\xb5\xd2\x9c\x55\xdb\x52\x0e\x2f\x86\xd7\x48\xc7\xe8\x8c\xa3\xf9\x0a\x77\x38\xb9\xb7\xa1\xba\x25\x85\x96\x03\x76\xec\x15\x74\x7c\x14\xc1\x1f\xe4\x3a\x83\xe2\xae\x75\xfb\x00\xb6\x38\xbe\x38\xf5\xba\x33\x41\xa5\xd4\x43\x8d\x50\x9a\xa9\xcf\x04\x1e\x61\xc2\xac\x11\xff\x2a\x79\x86\xfe\xdd\x9b\xa2\x14\xb7\x2f\x36\x7b\xc7\xd0\xe0\x7b\xf4\xea\xd5\xab\x1f\xe1\x19\x83\xc9\xfd\xaf\x6f\x7f\xfa\x5f\xdf\xfe\xf4\x14\x59\xac\xf5\x34\xb8\x8e\x9a\xdb\x82\x4d\x8e\xcc\x19\x2b\x61\x04\x30\x6c\x3c\x72\x95\x37\x52\x8b\xa2\x5c\x78\x60\x9b\xf4\x46\x61\xde\x43\x8f\x7d\x52\xef\xb0\xe4\x54\x0f\x9f\xad\x9a\x41\x1b\x1b\xed\x14\x44\xe7\xe8\x1b\x5a\x5e\x1f\xa7\xbc\x51\xda\x45\x10\x8b\x3a\x30\xb6\xab\x46\xf3\x5a\xc6\x5f\x4d\xb2\xa3\x7b\x2f\xab\x80\x2e\x3a\x61\x18\x6a\xda\xf3\x19\x31\xc1\x3d\x5d\x92\xe9\x15\xc3\xcc\xbd\xe3\x01\x19\x45\xbd\xeb\x20\xbc\xc7\xf0\x88\x8e\xad\xa4\x2c\x41\xf1\xae\x0d\x8b\xaf\x28\x55\x3d\xec\x3f\x52\x7d\x6f\x5f\x64\x62\xcc\x93\xd9\xed\x8b\xfa\x48\xb1\xbb\xc2\xcf\x18\xcd\xd8\x92\xea\x4e\xe1\x88\x54\xc9\x50\x11\xba\x6e\x75\xbe\x43\x49\x69\x9c\xa4\x67\x65\x3e\x48\x1a\x8d\x70\xc5\x16\xb2\x25\xf5\xd4\x87\x69\x04\x99\x12\xeb\xa4\x09\xcb\xbd\x58\xd2\x2e\x50\x7e\xbf\x09\x7a\x96\xb7\x12\xac\xfd\x0c\xd6\x36\xc5\xf1\x75\x69\xc0\x3e\x42\xd2\x56\x60\x6a\x61\x84\x65\xaf\x44\x7b\x27\x9e\xbe\x55\x17\x1b\x2c\x70\x61\x7e\xe7\xda\x5c\xac\x99\x2a\xba\x34\xd4\x68\xf7\x99\xa2\xed\x01\x1a\x70\x44\x07\x8c\x5d\x0b\x82\xf9\x8a\x23\x42\xa1\xfa\x37\x11\xb1\xca\xf3\x04\x2b\x26\x8a\x73\x8b\x68\x16\xc7\xf7\xad\x38\x15\xa7\xa1\x48\x78\x3d\x2c\xd0\xc7\xa7\xba\x5f\x29\xcc\x22\x93\x1c\xcd\x22\xf5\x96\x28\x12\x56\xfd\xbc\x05\xff\xa4\x99\x6b\xc3\xa4\x32\xd6\xe9\x5a\x9b\x9c\x82\x66\x67\x2b\xc3\xac\xe6\x47\xaf\x38\x93\x97\xb5\x1b\x2b\x26\x7f\xd6\x1c\xd7\xeb\xf6\x44\x58\x6e\xee\x2a\xe3\x8e\xe8\x13\xa2\x1a\x9e\x83\xe8\xef\xb4\x96\x3e\xd9\xb3\x17\x18\x7c\x96\x52\x63\xc2\x0b\x71\x89\x19\x08\x17\xde\x1b\xb7\x8a\x20\x13\x30\x4a\x33\x23\xd5\x38\x13\x21\x7f\xa1\x72\xe6\x0d\x85\x7d\x10\x24\xfe\x34\x13\x89\xe2\x24\x5e\xc2\x14\x45\xb6\xe6\x78\x77\xed\x3d\x26\x93\x0b\x28\x67\x9a\xdd\x4b\xf1\x80\x66\x04\x39\x56\x3c\xf3\xa3\x0a\xd2\x4f\x50\x86\xad\x8f\x12\xdc\x8c\x21\x16\x67\x3e\xe9\x62\x2e\xe1\xa2\xf6\xb2\x04\x9c\x9a\xcb\xf3\x53\xf6\x7a\xc0\x7e\x46\x07\x34\xf4\x75\xdd\x46\xb9\x10\xea\xa3\xed\x84\x2c\x19\xbb\x76\x39\x9b\x72\x88\x98\x57\x6b\xb3\xe8\x51\x99\x65\x33\xe6\xa4\x46\x64\xc7\x97\x3a\x9d\xf7\x2d\xdf\xbe\xc0\xf2\x00\xfe\x07\xac\x0d\x30\xc0\x3f\x86\xb1\x6b\x7f\x75\x5c\xbb\x82\x97\xc7\x5f\xcc\x7d\x42\xbf\x92\x7e\xc3\xe2\x0f\xdb\x12\x4e\x5b\xde\x76\x90\x76\x39\x7d\x09\xb3\xe4\x80\x69\xbe\xc1\xad\xb7\xa2\x98\x4a\x05\x66\xd2\xf7\x05\x4f\xc4\xa5\x28\x24\xb0\xf1\x5d\x45\xbb\x2b\x21\x10\xc0\xdb\x8f\x24\xd8\xd8\x0d\x04\x44\xc7\xc4\x37\xd0\x78\x9c\x3a\x85\xd9\xc6\x2c\x15\x99\xa8\xec\x6c\xcd\x50\x75\xa5\x55\x5f\x89\x31\xaf\x05\xab\x83\xb6\x8c\x36\x31\xd4\x98\x82\x02\x4a\x9d\xc9\xe9\x54\xa4\x8e\xc7\xba\x41\x7d\xe4\x06\x7e\xe0\x94\x2a\x99\xf5\x6a\xe2\x0a\x4c\x91\xe5\x40\x8c\x7a\x08\x87\x67\xb0\x30\x62\xad\x19\x31\xbf\x36\x62\xf0\x91\x0d\x0a\xbb\xbf\x9e\xde\xdc\x5a\x09\xd7\xa0\x03\x01\xa8\x01\x67\xd1\xbe\xf8\x9b\xed\x2f\x2a\x26\x9b\x11\xec\x70\xd4\xa1\xfb\x7a\xa4\x8b\x44\x0e\xb3\x19\x9b\xf0\xcc\x56\xf5\xa6\x21\x11\x00\xbb\x19\xb0\x6b\x61\xe3\xe5\x67\x5a\x8d\x61\x72\x9c\x92\x1d\x1f\x73\x34\x47\x26\xee\xae\x95\x39\x8e\xe7\x9e\xa4\x99\x2e\x17\xe4\x3b\x7e\xf7\xca\x2f\x75\xe7\x69\x03\x56\x67\x02\x09\xba\x9e\xbe\x5a\x19\x1e\xa2\x1e\x76\x1c\xaf\x75\x13\x7a\xde\x49\x1d\x88\xeb\xdc\xe9\x98\x27\x51\x7a\xc2\x0a\xfb\xd8\xa2\xef\xa2\xa2\xc0\x13\xfd\x10\x17\x03\x00\xdb\xa3\x2e\xc7\x13\xf4\x9f\xc1\x87\x8c\x27\x85\x86\xf2\xf6\xd8\x9d\x87\x0e\x1c\xb0\xeb\x3a\x3a\x7f\x1d\x93\x1f\x9e\xab\x07\xfe\xff\xb3\xf7\xee\xbd\x8d\x1b\xd9\xbe\xe8\xff\xe7\x53\x14\x3c\xf7\xc2\x76\x20\xc9\xed\x74\x26\x7b\x76\x6f\x6c\x1c\x38\xb6\x7b\x62\x4c\xda\xad\xb1\x9d\x04\xe7\x1e\x6f\x4c\x4a\x64\x49\xaa\x6d\xaa\x4a\x61\x91\xb6\x35\xd8\x1f\xfe\xa2\xd6\x5a\xf5\x20\x45\x49\xd4\xc3\x6e\xa7\x47\x18\x60\xe2\xa6\x8a\xc5\x7a\xae\xf7\xfa\xad\x99\x2b\xc8\x30\x90\xa9\x30\x2c\xa4\x87\xb9\xc1\xd4\xed\x90\x75\xa3\x23\xd1\xc1\x86\xe8\xc9\x47\xa1\xfa\x3a\x35\x38\x3d\x6f\x6e\x64\x67\x59\xc6\x16\x2e\x19\xdc\x82\xb3\xeb\x8b\x9d\x67\x0b\x2c\x5a\xec\xed\x9d\xac\x99\x34\x45\x77\xc2\xa7\xdd\x07\x31\x33\x15\x28\x97\xca\xe9\xf8\x9b\x98\xd5\x13\x0b\x2d\x11\xf8\x59\x11\xfc\xb7\x5d\xb7\x78\x30\xff\xb5\xe2\x8b\x6e\x78\x13\xbe\x3a\x2e\xb0\xe2\x01\x5e\x34\xa0\x2d\x1c\xc1\x54\x50\xbb\x65\x28\x0a\xb5\x0e\xb5\x77\x21\x80\x18\x0b\xbf\x0f\x66\xab\x43\x53\x36\x2c\x00\xee\x06\xb9\xd3\x63\x45\x15\xf6\xdf\x8e\xa7\xbe\x93\x0b\xbb\x7a\x7f\xb3\x67\x31\xec\xd5\xff\xaa\x8d\x6d\x31\xf4\x90\x8b\x2a\xfa\x5f\xb5\x53\xb8\x49\x92\xdf\xca\x8a\xfa\xae\x4d\xec\xec\x9c\xcf\x0c\xa8\xe2\x59\x3b\xa0\x1c\x7c\x30\xe1\x33\x66\x2f\x72\x06\xad\x78\x52\x94\x3c\xc3\x8a\xf6\xd8\x16\x8d\xd1\x1d\x26\xc8\xe6\x9c\xcd\x2a\xd5\x2b\xe0\x08\x62\x24\xb1\x63\xe2\x2e\xa6\xc4\x2e\x45\x12\x00\x19\x72\x9d\xb1\x69\xc6\x55\x9b\x22\xe4\x11\x48\xf4\x0a\x2c\x2a\xc2\xb4\x77\x59\x64\x7e\xe0\x9b\x9c\xf3\x8d\xb1\xab\x77\x60\xfd\x0c\x30\xff\x2f\x71\x13\x6a\xe0\xd8\x5b\x91\x2a\x7f\xc4\xf1\x00\xad\x24\x5a\x77\x54\xfd\x01\x0a\x9d\x68\x45\x60\x12\x56\x66\xac\x26\xbd\x61\x50\x94\x92\x43\x10\x79\x63\x50\x53\x13\xc5\x27\x81\x9f\xb9\x2c\xa6\x25\x10\xc2\xdf\x30\xca\xd2\xca\xa4\x56\x66\xfb\x6d\xf7\x5b\xce\x55\xa4\x60\xbb\xe2\xb0\x2f\x13\xad\x74\x5b\xab\x3c\xbb\x81\x20\x35\x9f\x51\xd3\x72\x93\x88\x18\x60\xc0\xdf\xac\x39\xbf\x06\xaf\xba\xd5\xbc\xe6\x32\x6d\xda\x39\x5a\xa7\x71\x99\xdf\x2f\x9f\x32\xb2\xcb\x85\xc7\x84\x80\x55\xf2\x79\x80\xbd\x25\xe3\x87\x7d\xcd\x72\x66\x94\x20\xa3\x58\x4e\x67\x5f\x70\x25\xbc\x24\xea\xc4\x33\x11\x0c\x9d\x9b\x98\xb8\x2a\x81\xaf\xdb\xdf\xdf\x5a\x2c\xe5\xdc\x25\xbe\x73\xb5\x87\xb0\x4c\x34\x33\x65\x62\x55\xa7\x61\x99\xd5\x5f\x0d\x80\x57\xe8\x02\xfb\xcf\x08\x3d\x68\x52\x29\x34\x4d\x61\xb1\x8d\xef\x1a\x9f\x32\x8e\xf8\x4e\xff\xd2\xb4\xa0\x5d\xa5\x90\x33\x36\x2e\x27\x5c\xb1\xf6\xb5\x42\x9e\xc6\xb3\xf8\xa4\xfa\x5a\x88\xa1\x18\xcb\x06\x41\x7f\x68\x18\x49\xaf\xdb\xc5\x43\xce\xb5\x77\x66\x42\x20\x33\x4f\xde\x78\x88\xbe\x65\x88\xdb\x30\x64\x08\x44\xfd\x2f\x78\xa8\x7c\x35\xb4\x28\x75\xcf\x47\xe0\xe5\x00\xe8\xc1\xad\x8e\xc7\x0d\x0b\x31\x31\xec\x51\x26\x85\x9c\x18\x38\x95\x12\xa3\x9f\x64\xee\xcd\x3a\x15\xdb\x05\xda\x46\xaa\x4a\xa0\x87\xb4\x1a\x95\x3c\xe7\xaa\x10\x22\xe0\x6b\xc5\x9e\x8e\x5a\x2c\xa0\x74\x25\x97\x82\x5a\x6a\xa5\xb7\x54\x24\x00\xf8\xaf\xad\x78\x95\xf8\x44\x3f\x26\x32\x23\xb0\x4c\xa1\x1c\x3a\x57\x3e\x14\x5f\x1a\x88\x44\x4f\x04\xe3\x8f\x5c\x66\xb0\xe7\x46\x6b\x40\xe1\xa9\xf6\x0b\x70\x3c\xa1\xf3\x11\x4d\x34\x14\xc2\xac\x8c\x0a\xfd\x81\x14\x99\xe1\x1d\xfa\x10\xd7\x48\xe5\xe1\x1c\xd2\x21\xda\x82\xc2\x6a\xf6\xd8\x19\x86\xb5\x9a\x32\x83\xf4\x21\xbf\x4e\x94\xab\x99\xca\x21\x64\x16\x14\x68\xa3\x71\xf9\x1d\x2e\x78\x36\x32\x05\xe1\x91\xdc\x86\x42\x4e\xc7\xdc\xac\xac\x9a\x62\x3f\x35\xa6\x3c\x0f\xc8\xd5\xa7\x80\x51\x89\x99\x20\x76\x11\x9c\x0b\xa7\x9c\x00\x08\x8f\x1e\x52\xc5\x48\x97\xd6\x83\x37\x47\x16\x86\x79\x1a\x83\xf4\x32\x72\xfa\xc3\xe5\xee\x38\x77\xbf\xb1\xe2\xbc\x4a\xfd\x05\x45\x3c\xd0\x60\xbe\x8e\xf2\x57\x22\xcf\x10\xf2\x75\xe8\xc9\x47\x1b\x60\x49\x3f\xbc\xd5\x91\x86\x40\x38\x11\xf0\x86\xc3\x2a\x00\x93\x9a\xdd\xf8\xa9\x36\x46\xda\xb3\x82\x13\x47\x47\x11\x40\x61\xf6\x05\x44\xdb\x7d\x40\x58\x4a\x9d\x02\x9f\x18\x80\x95\x3f\xb1\x84\x35\x80\x67\x46\xae\x48\xa7\x55\xd8\xcb\xd7\x50\x67\x30\xe2\x29\x98\xe0\x63\xfb\xc4\xeb\xe9\x92\x69\x43\xa2\x22\x61\xde\x53\xa0\x65\x0c\xe0\x18\xee\x0f\x37\xec\x49\x00\x16\x08\x36\x33\x53\x7b\x9c\x52\xfd\xa4\x2c\xc5\x07\x2b\x24\x7e\x08\x40\x4f\x81\x38\xb8\xbc\x71\xe4\xcd\x09\xf8\xac\x01\x22\x95\xdb\x47\x76\xbb\x6e\xd0\x80\xd9\x30\xf3\x81\x2e\x15\x42\xd8\xb8\xa0\x69\x95\x2e\x70\x7a\x00\xe3\xaa\x4e\xeb\x6c\x01\x30\x84\xdd\x1c\x88\x5b\xc4\xef\x42\xf6\x83\xf4\x0e\x0d\xe7\xb8\xd0\x43\xe4\x83\x80\x7a\x99\xbb\xdc\x0e\x48\x54\xbe\xb5\xfc\x57\xa4\x22\xfd\x00\x36\xa4\x79\xa7\x08\x4e\xc2\xde\x73\x67\xab\x06\x7b\x34\xf1\x6d\x9c\x46\xc5\xc1\x2e\x7c\x96\xca\x47\x48\x35\x59\xa3\x63\x5a\x94\xe6\xb9\xda\x95\xac\x8e\x61\x88\x51\x16\xfe\x92\x50\x43\x21\x81\xb0\x89\x67\xe9\xad\xbd\x4a\xab\x2e\xd8\xc0\x9d\xca\x9b\xb3\xa7\x6a\x77\x74\x1e\xf1\x10\xf6\x5c\xf5\xa6\x0f\x90\xcf\x05\x95\xf5\xe8\xba\x39\xbd\x59\x44\x71\x73\x74\x12\x68\x01\xf4\x00\xc6\x91\x76\x58\x31\x9b\x12\x46\x89\xab\xba\xa7\x98\xc8\x73\xac\x23\x4b\xf8\xd9\xc4\x4f\x43\xad\x46\x6d\x8a\x38\x24\xcf\x5e\xa7\x5d\x0b\x2d\x48\xd0\xd6\xa7\x83\xb5\xaa\x15\x4d\x74\x70\x37\x85\x25\xe6\x25\x5c\xdf\xd9\x26\xf4\x1b\x4a\x63\xac\x18\x38\x36\x22\x7f\xbb\x1d\x4b\x5c\xf9\x68\xc1\x5c\xae\x2a\x15\x3e\xa5\xa9\x9b\xda\xdf\x15\x4e\x5f\x8d\xc2\xfd\xe9\xed\xab\xbe\x8b\x8c\xec\x63\xcd\x61\xcc\xb3\xf1\xdf\xe1\x05\x0a\xb9\xa7\xe4\x91\xf0\x69\x44\x7a\xc8\xa0\x3e\x06\xe6\x75\x3f\x7e\x1f\x63\x0d\x48\x43\xa1\x27\xb0\x72\x90\xf6\x1d\x68\x49\xe8\x7b\x26\xea\x71\x72\x3b\xb0\x56\x5c\xf5\xdf\x78\x82\xf6\xef\xda\x40\x38\x4f\x0b\x4e\xfe\xf7\x92\x67\x14\x1a\x4b\xae\x7a\x76\xf4\xf7\xcf\xb7\xc7\x18\xe6\x23\x87\x70\x6b\x2d\xef\x9d\x2f\x4d\x12\x90\x5b\x1a\xd3\x5f\x20\xde\xa2\xaf\xd3\xbf\x7f\xbe\xc5\xd8\x22\x88\xbd\x00\x1d\xdb\x8b\x5e\x7f\xff\x7c\x8b\x1f\x12\x66\x53\x0c\x7e\x4c\xed\xc8\xf5\x54\x1b\x9e\x99\x13\x8c\x11\xa2\xf1\x74\x7f\xd7\xf3\x25\x27\x76\x56\xcf\xef\x8c\x0d\x72\x29\x86\x51\x15\xbf\x4d\xb5\x07\xa0\xb2\x3d\x06\x55\x4b\x0f\x2f\xad\x78\x2d\xd2\xc3\x8d\xea\xfc\xa1\x02\xf8\x9a\x85\x1e\x6f\x3e\x9e\xb3\xf7\xef\xdf\xff\x3b\x03\x54\x5b\x10\xc7\x24\x7a\xa4\x83\x5a\xef\x42\x62\xb9\x61\x3c\xb1\xdc\x26\x13\xe9\xa8\x2a\x19\x65\x3e\x62\x5d\x9a\x18\xf2\xcc\x81\xe7\x42\x52\x72\xda\x24\x1e\x1d\x99\xe3\x0a\xc6\xcf\x6e\x91\xe6\xee\xc4\x64\x9a\xad\xac\x4c\xe0\x5a\x45\x9e\x37\xce\x0a\xf7\xd0\x8e\xce\x87\x0b\x27\x7a\x2a\x85\xb3\x44\xe7\xc2\x45\x14\xb7\x04\xa5\xdb\x17\xd2\xf9\x62\x85\x74\xf6\xa5\x62\xbe\x96\x52\x31\x98\xb0\xdf\xbe\x58\x0c\xee\xcd\xa1\x79\xbd\x82\x31\x7e\xd2\xcd\x01\x03\xf3\x34\xa9\xd5\x92\x34\xd1\x35\x40\xd2\x5c\xb6\x0a\x11\x69\x0b\x74\x04\xab\xf2\xc7\xf8\x26\xce\xbc\x41\xa7\x93\xcc\x4f\x6e\xa4\xbd\x17\x59\x25\x2b\x83\x82\x59\xd2\xd4\xec\x85\x2b\x09\xbf\x7f\xfe\x82\xd5\x72\x3c\xe7\xa8\x34\xd8\x41\xc5\x1c\xd7\xf1\xea\x82\x6d\x71\xcb\xb9\xc2\x6d\xee\xc7\x7d\x01\xb7\xb7\xcd\x77\xd6\x2c\xe0\xe6\xef\xdc\xee\xbd\xb4\xfe\x44\x6f\x63\x98\xdf\xb3\xd1\xaf\x85\x8d\xee\x2b\xae\xe1\xf3\x57\xe0\x21\x2f\x52\x79\xad\x22\x02\xb4\xe2\x23\x00\xaa\x1d\x54\x1c\x08\x77\xe5\x05\x27\xc8\x00\x22\xd3\x60\x86\x09\xb0\x8f\x4e\x26\x08\xfa\xd0\x6a\x76\xb3\x97\xf9\xe6\xee\xaf\xa9\x6e\x52\xab\xe5\x98\x43\x4c\x5f\x3a\x73\xc2\x4c\xf1\x8c\x18\xe3\xa1\x8d\x84\x38\xcd\xa8\xa8\xd4\xb2\x38\xba\xb7\x21\xdd\xad\x3e\xfb\x79\xf1\xa4\xf3\x67\x0c\xbe\xbb\x05\xf6\xb1\xf4\x02\xcc\x37\x8f\x23\xce\x38\x73\x2d\x5c\x61\x2a\x0f\xdf\xd1\xa6\x38\x5c\x8b\x9a\x83\x1f\x6f\xa9\xd8\x60\x05\xd2\x03\x2a\xa8\x61\x1e\x3c\x98\xd6\x0a\x8d\x61\x90\xec\x93\x47\x75\xaf\x37\x09\x05\x1d\xc8\xf4\x82\x36\xf8\x29\x84\x31\xab\x91\xf7\x09\x5c\x3e\xf7\xd8\xfd\x81\x78\x2e\xbe\xbb\x3f\xe8\xb0\xfb\x83\xe7\x21\x16\xc3\x9a\x78\x94\x60\xe0\xa4\x04\xb6\x05\xe9\x11\xd8\xb8\x5e\xd9\x66\xb3\x1c\xe5\xcf\x2a\x5b\x95\xb9\x1a\x87\x9f\x43\xce\x08\x3b\xb2\x6f\x9e\x3c\xe5\xb2\x10\xc7\x3d\x40\xcf\xfa\x0c\xa1\xc6\x1e\x95\x7a\xa8\x73\xf2\x0f\xfb\x1f\x5d\xfa\xbe\x54\x0c\x77\xf7\x93\x5d\xc0\x45\xc8\x3d\x4b\xf3\x4f\x70\xeb\x57\xa2\x30\xfe\x42\xcd\x08\x2b\xcc\xae\x64\x6a\x0f\x3d\xa0\x20\xce\x9d\xa4\xdd\x56\x86\xf4\x43\x5c\xc5\xda\x56\x5e\x20\x48\x82\xcd\x45\x7a\xeb\x11\xc2\xee\x44\x3e\x59\x72\x87\xce\x5c\xa6\xe8\xd4\xbd\x1a\xa3\x8b\x15\x22\x9f\xf8\xdc\x56\x70\x14\xc2\x38\x28\xcb\xd4\x67\x9e\x3e\x09\x88\x48\x78\xc7\x8e\x64\x4f\xf4\x98\xb4\xe4\x99\x33\xa5\xbb\x7a\x7a\xdc\x63\x67\x4c\x95\x59\xd6\xe2\x03\x4a\xfb\xfe\xa9\x23\x83\xde\x7e\xdf\xd7\xea\x6b\x3b\xf5\x20\x8e\x1b\x13\xe5\x18\x72\x09\x56\x6f\x19\x75\x3e\xc3\x28\x03\x0f\xca\x64\x27\xd4\x99\x83\xf0\x99\x07\x81\xc1\x25\x5b\x90\xc4\x88\x3f\xae\x38\xb0\xbf\xe2\xa2\xd7\x3f\x55\x01\xcc\xae\x7e\x53\xd5\x26\xe6\xc1\x21\x73\x28\x3a\x79\xda\x3d\x7d\xf7\x6e\x37\x80\x15\x2d\xcf\x3d\xcd\xb3\xd3\xb8\x7d\xdb\xdf\x05\x3d\x58\xca\x3d\xec\xef\x15\xbb\xf0\x58\xf0\xac\x18\xb3\x64\x2c\x92\x07\x22\x9f\xbe\xdc\x1a\xe3\x23\x2e\x95\x29\xe2\x52\x2e\xb6\x4d\x2a\xd0\x81\x2b\x02\x02\x3a\x6a\xf4\x19\x14\x11\xc9\x29\x70\xac\xd0\x21\x28\x27\xe7\xc3\xa1\x4c\x5a\x9c\x65\xf1\xbc\x85\x68\x71\xf9\x2c\x92\x33\x80\x2c\x5c\x7a\x7e\x3f\x2b\xf4\x0d\x40\x88\x92\x56\xde\xa5\x3c\xd4\x59\xa6\x9f\x80\xf5\xf8\xbc\xf8\x08\x1d\xd7\xf6\xee\xff\x6d\x5c\x8c\xb6\x2b\xf9\xc4\x1f\xc4\x82\x93\x4d\xee\xf2\xbb\x71\x2e\xcc\x58\x67\xab\x14\xce\x4f\x52\xc9\x49\x39\x81\xb4\x15\x91\x94\x90\x5a\x46\x5d\x44\x20\x65\xb0\x91\xb8\x5f\x11\xd8\xa4\x03\x99\x84\xb0\x1e\x2b\x25\xd9\xb9\xb8\x48\x83\x5a\x9a\x54\x8f\xb9\x2f\xf9\xd4\xb3\xd3\x9d\x43\xb7\x58\x59\xec\xaf\x62\xf3\x34\xee\x1f\xef\xee\xfa\x7f\x15\x45\x8b\x4d\xa5\x96\xb5\x0d\xb2\xdf\x8f\x51\xfa\xe8\x6c\x2f\xd8\x29\xc2\x15\xbd\x10\x19\x9f\xb5\x4b\x3b\xbc\x2e\x27\x03\x01\x92\xe8\x7c\x7a\x5d\x35\x84\xc2\x05\x4b\x92\x3b\x29\xab\xc2\x67\x42\x74\x8f\x47\xb8\xdf\x6d\xbc\x64\x88\x93\xc4\x6f\xed\x1c\x9e\x67\x8d\x34\xcd\x1f\xf5\x13\xd3\xc3\x42\x28\x76\x14\x52\x12\x8f\x63\xac\x7f\x7f\xba\x2b\xe8\x1d\xa7\x21\xa9\xef\x35\x8e\x2d\x45\xd9\x6c\x73\x65\xa9\x8b\xd5\x77\x36\x8a\xc4\xad\xdc\x5b\xbc\xcb\xd5\x4b\x7b\xda\xf3\xf2\xf4\x29\xf4\xeb\x8f\x11\x64\x5d\x23\xfc\xea\xab\xac\x50\x91\x4c\x6f\x75\xf2\xb0\xc5\xd5\xbe\x3b\xef\x63\x0f\x2d\x2e\xb7\x6f\x1b\x5d\x6f\xae\x1c\xf9\x95\xea\x51\x67\x8f\x08\x7f\x74\x77\xde\x07\xc4\xf3\x1e\xfc\x35\xd6\xfa\xc1\x84\x70\x6d\xa7\x70\x2c\x98\x92\x9c\x08\x5d\x16\xdb\x5d\xfc\x28\x7c\x1c\xb7\x5b\x4e\x84\x61\xba\x2c\x6a\x1b\x49\xaf\x35\xee\xd5\xdb\xbf\xfd\x5b\x2b\xbd\xb9\xc6\x42\x08\x2d\xb5\xde\x9b\x58\xc1\x9d\xba\x97\x9d\x86\x8b\xfa\xed\x6a\xd9\x82\x12\xaa\x3f\xe9\x74\x95\x8e\x6b\x9b\x60\x31\x6f\xc2\x88\xd0\x91\x01\x09\x6a\x85\x07\xb8\x93\x5e\xa4\xe2\xe2\x26\x3a\x68\x85\x77\x70\x2b\xdf\xfd\xdb\xbf\xfd\x5b\x8f\x5d\xc8\x1c\x64\x50\x87\xfd\xe5\x82\xf1\x78\x31\x06\xda\x6f\xcf\x28\x87\xea\xd2\x11\x7c\x3a\x69\x84\x14\x8b\x80\x35\x0d\xa1\x8a\x04\xc0\x36\x66\xd2\x21\x7b\x61\x44\xb1\xab\xbc\x83\xf5\xd9\xb1\x52\xb5\x53\xcd\xd9\x04\x62\x1f\x33\xf9\x20\x5c\xf9\xeb\x10\xae\x8a\xe1\xbe\x2e\x7b\x11\x3b\x9b\xf8\x15\x30\x73\x51\x4b\x3b\xa0\xaf\xe4\x7f\x58\xbe\x0b\x59\x25\xc7\xd2\xed\xfb\xee\x73\xbe\xf0\x10\xf6\x7d\xf7\xeb\xbb\x14\x5a\xca\xfe\x6e\xda\xdb\x8a\xf9\x7f\x2f\xf5\x60\x56\x88\x4d\x2e\x0f\xbd\x4a\xc6\x19\x38\x2a\x19\x77\x29\x83\x96\x6a\x40\xc0\x4c\x48\x4d\x74\xed\x5d\x9e\x6b\xaa\x11\x11\x82\x4a\xa9\x87\x5a\xee\x13\xae\xf8\x08\x82\xad\x00\x09\x9c\x0a\xcd\xe6\x02\xd0\x75\xed\x21\x5e\x7d\x3f\x47\x2d\xea\x8f\x63\xe5\x76\x28\x31\x38\x75\x07\x83\x03\x03\xb5\x0f\x9d\xc4\x80\xd8\x74\xd8\xdf\x4b\x19\x7d\x96\x1a\x75\xaa\xcb\x46\x4c\xdf\xe5\x05\x23\xc2\xad\xe0\x69\x17\x73\xb1\x42\xc9\xf9\x2a\x93\xd8\x18\x7e\x24\x17\x23\x69\x8a\x7c\xf5\x0c\xb0\x59\xd5\x7e\x48\x88\x31\x3a\x67\x93\x32\x2b\xe4\x34\x0b\xb3\xf1\x2f\x84\xfa\x56\x1e\x37\x8a\x47\x2e\x32\x8e\xf5\x30\x3e\xc0\x11\x99\x72\x99\xb3\x23\xdf\x97\x50\x05\x10\x41\xc4\x97\x98\xf2\x3c\xa8\xf1\x89\x9e\x4c\xb8\x39\x76\x49\xfc\x89\x1d\x0e\x1e\xcc\xc4\xbe\xc5\x33\xe6\x26\x06\xb2\x4f\x63\x0e\x74\x3b\x9c\x11\xc5\x57\xe2\x24\xdd\x41\x23\x7b\xc0\x9d\x61\x01\xf1\x87\x6b\x3b\x4b\x74\xfc\x07\x9e\x3c\x08\x95\xb2\x9f\x8d\x9b\x4c\x3a\x53\x7c\x42\x61\xc8\xd3\x5c\x3f\x4a\xf2\x39\xd7\x2e\x54\x27\x30\x7e\x23\x0a\x67\x09\x9d\x66\xe5\x48\xaa\xf5\x67\x56\xae\x2e\x29\xfe\xb3\x41\x25\x7e\xd9\xfd\xa1\x5a\x20\xb9\x7c\x4c\x84\x83\xe1\x87\xae\xd7\x1e\x10\x59\x0e\xdb\x98\x21\x2b\x4e\x56\x20\x4c\x51\x6d\x12\x2b\xec\x11\x92\xb1\xe3\xc3\xb5\x8d\x18\xcc\x10\xdb\x72\xb7\x56\x4a\x7f\x93\xe6\xe7\xb4\x2d\x11\xbf\xf9\xe1\xa2\x2f\x72\x23\x4d\x21\x54\xb1\x09\x29\xbf\xe1\xa9\x36\xec\x87\x4c\x27\x0f\xec\x42\x40\xb4\x6c\x5b\xaa\x7e\xf3\xc3\x85\xa7\xe8\x4b\x49\x39\x80\x28\x6d\x42\xcb\xdb\xb9\x12\x6a\x1e\x01\xb2\xc3\x38\xa2\x69\xa7\x31\xd3\x25\x7b\xe2\x08\xd6\x05\xb3\xeb\xb1\x3b\x39\xfd\xc0\x2e\x95\x29\xf3\x28\x57\xab\xee\x5c\x90\x66\x0d\xff\x02\x94\x8d\x31\x1f\xe6\xbd\x0c\xf6\x0f\x55\x6c\xea\x6f\xd8\x12\xdc\xe1\x4f\xf9\x60\x83\x68\x61\x08\x43\x6d\x11\x6b\x9d\xc3\xe9\x81\xd6\x04\x0a\xdb\x30\x5a\xaa\xa8\x63\x9c\x1f\x8d\x46\x76\x92\x0f\xd2\x93\x9b\xcb\xb3\x8b\x4f\x97\xbd\x49\xfa\xa7\xb1\x7e\xea\x16\xba\x5b\x1a\xd1\x95\xc5\x06\xb1\x8c\x62\x06\x3f\xae\x88\xc3\xc0\x56\x0e\xd9\x08\x04\xe7\x42\xb3\x07\x31\x63\xf0\xdc\x72\x84\x9b\x1f\x2e\x2c\x79\xeb\xc5\x72\xc0\x89\x28\x92\x93\x44\x4c\xc7\x27\xf4\x9d\x2f\x37\xd1\x89\x56\xb2\xd0\x2b\xab\xdc\x9c\xb1\x44\x67\x19\x8a\xa2\xf6\x4a\x9c\x8b\xe9\x98\xb9\x77\x5f\x66\xf4\x0b\x24\xe8\xb6\xf5\x1b\x5a\x44\xda\x4c\xb5\xce\x5a\x9f\x4a\xdb\x98\x0e\x65\xb4\x93\xf9\xa0\xf9\x4a\xbd\xca\xde\xed\x42\x28\x5c\xe9\xe9\x6b\x90\xfe\x5e\x74\xc2\xcb\x31\xec\xa0\x58\xd5\x0d\xe8\x50\x9b\x59\x78\x6e\x5d\x0f\xe4\xdd\x58\xea\xf1\x77\x6d\x41\x76\x8f\x30\x1b\x79\x59\x8c\x85\x2a\x5c\x2c\x00\x8e\xaa\x7a\xdb\xaf\x86\x28\x61\x41\xad\x9c\x47\x91\xe7\x80\xfe\xe4\xaf\x7b\xac\x14\xc8\x6c\x67\x2b\xba\xa9\x00\x16\x8e\xb9\x6d\x3c\x7f\xcc\x79\x3a\x91\xea\x95\x0f\x7a\x4b\x69\xc8\x13\xb0\x39\x7e\xb3\x03\x61\x68\x2f\x02\xed\x45\xa0\xbd\x08\xb4\x17\x81\xf6\x22\xd0\x5e\x04\xfa\x6a\x44\xa0\xc6\x9a\x9c\x7b\x39\x68\x2f\x07\x2d\x92\x83\x84\xe5\xb0\xb0\xc5\xa1\xf6\xcf\x72\x69\x68\xbe\x7d\x3d\x36\xb3\x52\x80\x0e\x45\xa0\x3c\xbc\x17\x97\x3c\xdb\x27\xdf\xbc\xe5\xe4\x9b\x7d\xb6\xca\xd7\x92\xad\xd2\x32\x01\x80\x0a\x10\xfe\x84\x05\x2a\xe1\xe2\x36\x5f\x78\x28\x68\xec\x0b\xaa\xcc\xe0\xdf\xe4\x9e\xf6\x22\xba\x47\xda\xe7\xae\x20\x5c\x7a\x64\x8e\x83\xfa\xd0\x4c\x12\x48\x13\x32\x00\x52\xfa\x15\x66\x23\x34\xae\x67\xab\xfc\x84\x0a\x59\x33\xeb\x24\x2c\x2c\x20\xbe\x5f\x2e\x87\x21\x5e\xcc\x3a\xce\xed\x2e\x96\xb3\x01\x9e\xaf\x19\xf4\x92\x34\x9b\x2a\xcc\xa0\x1e\x00\x40\x65\x1a\xe1\xe6\x2e\x5b\x45\x88\x95\x80\x4c\x20\x02\x77\xd1\x08\x50\x0a\x90\x10\x83\x19\xa2\x0a\x3d\x49\x95\x42\x28\x1a\x04\xe8\xf4\x58\x3f\xc6\xc3\x8c\x01\x89\x6e\x9c\x9b\xf6\x0d\xa7\x98\xf8\xe7\x2f\x95\xfc\xd5\x2c\x95\x54\x9a\x6e\x9b\x02\xd6\xf8\x89\x80\xc4\xbb\xa6\x04\xe4\x5f\xac\x25\x88\x45\x60\xca\x0b\xc8\x1d\x87\x68\x67\x91\x03\x38\x1b\x30\xb7\x16\x42\x51\xc6\x4d\x71\x97\x73\x65\xe0\x9b\xaf\x0d\x7a\x02\xa8\xa0\xdc\x14\x88\x75\x52\xc4\xc0\x75\xac\xf0\xa3\x72\xa9\x6f\x5a\x79\x00\x6a\x40\xc6\x82\x70\x9f\x05\xf1\xb0\x2f\x85\x5b\x09\x95\x23\xfc\xc8\x36\xcb\xcb\x59\x0d\x89\x73\x17\xc0\xfa\x5c\x08\xa6\x5f\x18\x28\xfb\x6c\x97\x6c\x9b\x51\x34\xd3\xca\x66\xca\x16\xd0\xe6\x70\x00\x1d\x17\x78\x7e\x07\xe0\xaa\x1f\xad\xa6\xdb\x71\xf0\x67\x9b\xd4\x4e\x59\x6d\x6a\xbc\x23\xfb\xe2\x82\x93\xbf\x36\x6a\x68\x4b\x65\xa9\x06\x78\x7d\x50\x25\x6f\xbb\xd5\x94\x56\xa0\x10\x2c\x7c\x07\x45\xe6\xaa\xcd\xa9\x79\x99\xf6\x00\x05\x6f\x5b\x47\x5a\x07\xa0\x60\xd1\x0e\x6f\x1e\x7f\x1b\xf5\x72\x12\xf5\x9e\x2c\x60\x9a\xdb\x06\x2e\x36\xf3\xe5\x6d\x6c\x94\x7b\x15\xf3\x6b\x51\x31\xf7\x80\x08\xf8\xfc\x55\x65\xe2\xdd\x43\x23\x2c\xd6\x4f\xd7\x64\x73\xa0\xb2\xca\x05\xda\xea\x16\x06\xc1\x89\x54\x56\x47\x6a\x99\x2f\xe5\xb2\x1d\xd4\x5c\xfa\x84\x15\xd1\x28\xf0\x93\x29\xf1\x94\x85\x40\xbf\x08\xce\x61\xe0\x40\xe9\x9f\x64\x31\xb6\x92\x24\x57\x80\x16\x59\xa9\xdf\xcc\x92\x9c\x9b\x31\xa0\xf2\xda\x4e\x65\x31\x9f\x73\xe3\x41\x1f\xab\xfe\x86\x77\xec\x28\xc6\xfc\x6e\x7a\x81\x71\x03\x18\xdd\xf6\xbf\x98\xf5\x08\x03\x3a\xde\x75\x84\x3c\xed\xc7\xaa\xf5\xa4\xad\xf6\x9a\x73\x58\x57\x67\x7c\x70\x1d\xf5\xa2\xda\xb4\x40\x51\x29\x97\x53\x1a\x4b\xb1\x4b\x69\xc6\x3e\x6f\x41\x3c\x53\x8e\x33\x40\xf7\x5a\x79\xa0\xe2\xd2\xad\x27\x24\xbd\x18\xb3\xfc\xd3\xd3\x98\x17\x5d\x69\xba\xbc\xdb\x82\x99\xee\x20\x2b\x81\xf2\x84\xeb\x6b\xce\x53\x14\x8c\x79\xd6\x6f\xbe\x04\x6c\x1d\x4f\xe1\x9c\xc3\x87\xb2\xa8\x11\x12\x8b\x0f\x44\xc6\x7e\x2f\x45\x3e\x43\xfc\xeb\x00\x6e\x46\x57\x20\xa0\xd9\xfa\xbd\x4f\x30\x28\xe0\x6a\xc8\xe2\xce\xc8\x1e\x88\x87\xb4\x62\x0c\x44\xe1\x0f\x6c\x8a\xc4\x88\x1d\x0c\x7f\xbf\x02\x93\x06\x76\x47\xf6\x20\x66\x98\x5e\x46\x15\x69\x61\x30\x11\xb0\xae\x54\x4c\xe7\x29\x9e\xa6\x81\x08\xc4\x23\xa4\xb1\x34\xd3\x96\x0e\x93\xc3\x50\xb1\x39\x8c\x8e\x46\xa6\x55\x6d\x34\x6b\x9e\x33\xbb\x7a\x8f\x52\x3c\xc1\x81\x93\x6a\xd4\xb5\x24\xa3\x4b\xb9\xf6\x27\xf8\x91\x93\x3f\xc1\x7f\xbb\x6e\xe3\x17\x70\xee\x58\x23\xa9\x9f\x99\x2f\x03\x7f\x47\xb7\x9d\xe4\x29\xd8\x91\xaa\xa1\xc3\x83\xfd\xd7\x21\xf1\xe4\x90\x49\x65\xca\xe1\x50\x26\x20\x4b\x39\xf2\x40\x26\xe3\x02\x12\x90\x88\x56\x14\xfc\x41\xc0\x11\x49\x44\x2a\x54\x22\xf0\x44\x72\xe6\x86\x71\x23\x86\x2f\x7a\xfd\xa7\x3a\xed\x16\x73\x30\x5f\x5b\x27\x9f\x2d\xb3\x51\xae\xcb\x54\xe7\x2a\x7e\x81\x98\xea\x2a\x61\x45\x75\xbe\x36\x77\xb8\x39\xce\x73\xd3\x8e\x23\xdc\x55\xb8\x40\xe0\x5b\x7e\xa3\x8f\x90\x83\x02\xf6\xb1\xc3\x02\xaf\x31\x71\x87\x61\xbb\xf0\xee\xee\x3c\x21\xac\x75\x95\xb1\x9b\xea\x52\x93\x0e\x1b\xa6\x89\xc6\x62\xac\xb0\xb9\x6c\xe5\x0f\x4d\x65\x9b\x76\x5d\xd0\x68\x85\x39\xb3\xa5\x8a\x56\xf9\xe9\x35\x0b\x8b\x41\x41\x5c\x20\xff\x22\xdd\xe8\xdc\x05\xb6\x05\x08\x5c\x44\xd3\x2b\x38\x1d\x99\xf7\x6a\x79\x82\xe5\xc8\xdb\x72\x0b\xff\xae\xcf\x9e\xf3\x2f\xfc\x55\x28\x57\x41\x75\xf9\x54\x3f\xcf\xbd\xc0\x72\x31\xcc\x00\xc4\x05\x12\x85\xc2\x73\x9a\xc9\x02\x87\xc6\xfa\x13\xdc\xa8\x6c\x2d\x5c\xf8\x8d\xb6\x11\x49\x85\x27\x1d\xaf\x4d\x15\x36\x14\x82\xeb\xab\x8d\x8b\x1d\xcf\xca\x89\xc4\x7f\x70\xd9\xb5\xa5\xc6\xec\x97\x71\x7b\x9b\x2b\x5a\x73\x3e\x4a\x91\xa5\xb7\xf3\xd2\xf2\xfc\xc6\x34\xb4\x8f\xb9\x65\xd0\xd9\x42\x25\xa3\xa3\x64\x5a\x76\xd8\x44\x4c\x74\x3e\x3b\x76\x39\xca\x32\x77\xa5\x06\x69\xa9\x56\xf2\x4d\xdf\x75\x8b\x22\x56\xbe\xd6\x17\x44\x21\x7d\x70\x95\x03\xd2\x38\xcd\xb0\x43\xf9\xd5\x3c\xc3\x9a\x10\xea\x91\x3d\xf2\x45\x12\xe3\x32\x5b\x4f\x2a\x1f\xa5\x99\x57\x32\xd6\x36\xf5\xf4\x3c\xb0\xdb\xdf\x4b\xae\x0a\x59\xcc\xda\x40\xea\x91\x7c\x58\x59\x4c\x47\xa5\xc4\xf3\x54\x1b\x20\x4b\xb4\x17\x1d\x27\x99\x83\xae\x77\x7f\x70\x7a\x7f\xb0\xe8\xa2\x9a\x7a\xdc\x76\xf3\x79\xc0\x75\xfd\x10\xd9\x05\x35\xe1\x48\xed\x3a\x6f\x8f\x06\xb4\xab\x23\xff\xf7\x52\x57\xcc\x73\x8b\x8e\x3a\xb4\x63\x46\x14\x86\xf1\xd1\x28\x17\x23\xcb\xcf\x7e\x87\x87\xb9\xb0\xb3\xc1\x04\x76\x26\x14\x04\x45\xa6\x50\xbc\xcf\x17\xe6\xdf\xfb\x16\xde\xb2\x6f\x61\x6f\x1c\xff\x5a\x8c\xe3\xff\xd2\x00\xac\x15\x52\xb5\x7e\xa8\x93\x33\x2c\x02\x51\x7b\x6d\x2c\xfd\x5d\x46\x2a\xc5\xab\xd0\x3a\x42\x29\x5e\x09\xaa\xd0\xed\x49\x39\x92\x79\x28\xb3\x5b\x04\xf5\xb2\x34\x7c\xf4\xaf\x57\x73\xa0\xca\x37\x77\xec\x12\x89\xba\x5e\xe9\xf1\xaf\xb5\xad\x56\x1e\xa8\x72\x6d\x50\xfa\xf7\xfe\xfd\x37\xcd\x83\xdb\xf8\xf7\xaf\x6c\x9b\x65\x1b\x4d\x56\xe0\xb5\xf5\xbf\xa9\xce\x64\x32\x8b\x2a\x7a\xd9\xde\xcc\xc9\xae\x4d\x47\xf1\xcd\x69\x69\x29\xda\xcb\x2b\x5f\xb5\xbc\xb2\x77\xe6\xe3\xf3\x57\xe1\x56\x2f\xe1\xc4\xaf\x4b\x5c\x2d\x39\xd6\x42\xe1\x6b\x8c\xfb\x3c\x21\x88\x3a\x12\x41\xc0\x32\x01\x2f\xb6\xe0\x62\xb6\x8b\xcd\x3c\x9d\xbb\x30\x55\x2c\xa4\x6b\xb5\xe5\x80\x89\xba\xb0\x05\x51\xc4\x9e\xed\x78\x0d\x7c\x99\x4e\xab\x4a\x07\x0b\xc6\xcb\x50\xf8\x36\x7e\x41\x93\xe8\xa9\x68\x30\x91\xb5\x5a\xc0\x80\xa0\x50\xe9\x65\xd9\x3a\x55\xbe\x17\x81\x88\x57\x63\x1a\x87\x32\x2b\x2c\x81\x06\x1c\x40\x78\x65\xde\x9f\x8b\xd5\x4e\xc9\xb3\x98\xf3\xe4\x01\x3d\xb9\x9c\xc4\xdb\x41\x59\x30\xf1\x3c\x85\x02\xad\x29\x2b\x8d\xe5\x10\x95\x61\x7e\x86\xec\x72\x5f\x6c\x77\xe0\xaa\xaf\x03\x2a\x96\xaf\x5d\xed\x24\x8d\x8f\x3a\xc7\x82\xe3\xde\x1c\x04\xa3\xe8\xb0\x81\x2e\xc6\x6e\x88\x67\xd7\x17\xac\x3a\xc1\x23\x39\x8c\xb0\xc7\xa4\x82\x7f\x1c\x77\x70\x1e\x03\x41\xf0\xea\xe9\x82\xb8\x66\xec\x76\xcd\x1c\x64\xb7\x76\xeb\xad\x17\xb8\xe5\x01\x31\xaf\x5a\xa3\x16\x17\xb3\x01\x66\xbe\x9d\x23\x6a\xdb\xb4\xe4\x55\xfa\xc1\x7a\x14\x6d\xb5\xef\x74\xae\x75\x85\xaa\x79\x0d\x2a\xbe\xd2\x80\xd0\xed\x3c\x25\xa5\x69\x53\xbf\xe2\x8f\x41\xd2\x7e\x9c\x27\x69\x8d\x0b\xf0\xe6\x68\x5a\x69\xc4\x1f\x60\x79\x01\x82\x4f\x56\x3d\xf1\xfe\x1c\x15\xba\xe0\x19\xaa\xe4\xc1\xcb\x48\xb4\x87\xa0\xfc\xbc\x31\x76\x41\x1c\xfc\xdc\x0a\xed\xea\x2e\xdd\x44\xf5\x8a\x5b\x5c\xa6\xb8\x79\x2d\xfa\x23\xd1\x93\x69\x59\x88\xe6\x52\xc8\x6d\xf2\x59\xe0\x00\xbe\xfd\xad\xfe\x09\x2f\x4a\x75\xf2\x13\xfe\x0c\x21\x86\x1c\x91\x60\xf4\x70\x6e\x39\xb0\xae\xf8\xd3\x06\xf0\x24\x95\x4c\xea\x13\x4c\x8d\xec\x52\xf7\x5d\xdf\x7d\xd7\xfb\x9e\x36\xb8\x64\x4e\x0f\x7a\xfb\xab\x7f\xe3\x34\xb6\xda\xfa\x53\x88\xe7\xb2\xf5\x77\xca\x00\x70\x47\xdf\x8f\x55\x2a\x27\xb2\x28\xc8\xf1\x16\x55\x9d\x80\x30\xb6\xd8\x17\x45\x3b\x2f\x87\xc8\x8e\xa5\xf1\x41\x8b\xd9\x2c\x66\xb5\x90\xdd\xf4\x24\x8d\xc0\x64\x27\x28\xdf\x02\xd7\x00\x76\xb0\xeb\x0a\x1e\x83\x34\xf2\x66\x4e\xc3\xb6\x04\x85\xd0\x8a\x3e\x4f\xeb\x01\x35\x73\x1a\x63\xa5\x21\x84\x80\x45\x91\x19\x18\xcf\xc7\xa7\xd3\x4c\x86\xb8\x41\x3f\x99\x16\x54\xc4\xaa\x90\xab\x52\x31\x6c\x1b\xbb\x7d\x0e\x61\x09\x5e\xa2\x30\x48\x04\xb2\x86\xef\x9b\xb9\xef\x6f\x92\x35\xa6\xb3\x95\x1e\x4a\x9d\x11\x10\xa9\x87\x7c\xb2\x4f\x5e\x66\x3c\x6d\x73\xb6\x2a\xe3\x01\x68\xa7\x97\x19\x4f\x5b\xf4\xd8\xca\x78\x00\xbc\x63\x87\xe3\xd9\xfa\xf0\x27\x3c\x13\x57\x9f\xd7\x86\x56\x5d\xfa\x5e\x15\x21\x79\xea\xdb\x30\x7a\xab\x5e\x21\x6b\xb7\x98\x60\x01\xf7\xeb\x85\x8a\xa9\xc5\x18\x5f\x11\x02\x0b\xfd\xba\xfe\x41\x1a\xf1\x42\x3c\xf1\x55\x40\x41\x77\x6e\x94\x3c\x4d\xad\x3a\xe9\x04\x32\xb7\xa6\x67\xfd\x2b\xf6\x57\xec\x69\x83\xc3\x3c\xcd\x75\x81\xca\xdb\x85\x9e\x70\xd9\x26\x59\x34\x86\xdb\x71\x83\xe8\xfb\x6e\x18\xf6\x13\xe7\x92\x02\xf5\x87\xc4\x74\x40\x2d\xfb\x17\x2a\x30\xf7\xa5\xc0\x21\x23\x48\x68\x22\x30\x11\x10\x92\xdb\x33\x20\x49\xa0\x3e\x42\x29\x03\x23\x20\xc5\xf7\x11\x59\x7b\x3e\x01\x76\x0d\x92\x47\x41\x19\x11\x56\x3f\x77\xc8\x49\x1d\xf6\x93\x1e\x49\xe5\xae\x0e\x18\x2e\xec\x72\x72\x99\x2d\xb2\x26\x98\xec\x52\xf1\x41\x36\xaf\x1c\xd5\xef\x75\xc6\x47\x68\xad\xb3\xad\x4f\x52\x69\x20\x64\xf5\xf6\xf6\x27\x46\x56\xd8\x24\x32\x95\xd0\xd1\xf7\x31\x38\xb8\xf1\x9b\xec\x15\x9e\xce\x16\x65\x2f\xae\x30\x61\x5b\x18\x5f\xd8\x0b\x93\xe6\xe1\x7d\x92\xc9\x5c\xcd\x0d\x9f\x90\x73\x37\x96\xc9\x43\x3f\x42\x38\xd7\xb9\x7d\xa6\xa2\x47\x15\xaa\x52\xff\x6d\x93\xbc\x6b\x18\x50\xbf\x1d\x9e\x9a\x3b\x15\xb7\x34\x0d\xfb\x5a\x63\xb1\xba\x40\x31\x58\x0a\x57\x7d\x93\xa1\x01\x99\x5d\x93\xd6\xb8\x05\x26\x7a\x0e\x19\x1d\x9e\xb6\x48\xe5\x66\xb0\xc1\x70\x70\xb3\x5a\x44\xc0\xc5\x43\xf2\x7b\x5c\x47\x5c\x27\x05\xd9\x2d\xa8\x63\x3f\x24\x80\xcf\x2f\xa9\x34\xd5\x0a\x2d\x3b\x4e\x2c\x77\x5c\x66\x7e\xf9\x1b\x09\x15\x3d\xdb\x38\x12\x8c\xa6\xbd\x9e\x38\xb1\x17\x22\x5c\xbd\xd6\xbd\x14\xb1\x97\x22\xea\xe3\xfe\xa2\xf8\x8a\x7b\x51\x62\x2f\x4a\xec\x45\x89\xd6\xc3\xd9\x8b\x12\xbb\x14\x25\x9a\x9d\xc3\xf3\x2e\x48\xf0\x54\x86\x4a\xcb\xb5\x44\xc3\xb3\xeb\x0b\xbf\xf1\x2e\x85\x35\xb4\x89\xc0\xcc\x6c\x2f\xa9\x37\x49\xc6\xfd\xad\xe5\x17\x00\x77\xe5\x25\x3a\x7f\x5b\xe4\xea\x9d\xf9\xf0\xab\xb9\x69\x44\xae\x8b\xc1\x8c\x7e\xae\xf9\x63\x5a\x7a\x42\xd7\xf3\xa5\xa7\xce\x7b\xe2\x56\x3f\xf2\xa2\xbc\xbe\x17\x75\xf5\x90\x56\x9e\x8d\x15\xbb\x4a\xb1\x5d\xbe\x52\xb7\xbd\x60\x64\x92\x33\xe4\x83\xef\xd8\x06\xb0\x01\xf6\xd6\x62\x7c\x20\x77\x4c\xcb\xbd\x93\x0b\x88\x26\x0c\xa7\x09\xaf\x78\x48\x0b\x6f\x71\x7a\x5c\x8f\xed\x33\x3c\x69\x60\x87\x06\xbf\x6f\x77\x76\x2c\xa1\xfa\x1b\x77\x9e\x53\x17\x47\xf0\x0b\xcf\x64\xea\x07\x8d\xb6\xec\x2b\xd5\x61\xd7\xba\xb0\xff\xb9\x7c\x96\xa6\x30\x1d\x76\xa1\x85\xb9\xd6\x05\xfc\x73\x13\x9a\x6c\x87\xb3\x26\x0d\x0c\x4b\xe6\xa1\x36\xfd\x7e\x04\x63\xe9\x26\x14\x19\xa6\xbe\xea\x0e\x2a\x06\xa7\x16\x6e\x61\x14\xe2\x67\x48\x6a\x11\x61\xa3\xa5\x61\x57\xca\xb2\x5c\x5a\x33\x08\x55\xc5\x9c\x7f\xec\xc2\x05\x57\x28\xad\xba\x90\xb8\xdf\xd8\x07\x2e\xb5\xed\x27\x5e\xec\x25\xdd\x51\x57\x90\x72\x8e\xbf\x50\x86\x21\x4f\x44\xca\xd2\x12\x4b\xca\x31\x4a\x5d\x95\x09\x83\xc4\x55\x06\x09\xad\x5f\x28\x5a\x62\x41\x79\x47\x7f\x3a\x3a\x0d\xa7\x7e\x6b\xa6\x01\xec\x67\x99\xca\x89\xe2\xeb\x58\x67\xa9\x71\xb2\x2c\xe0\x60\x02\x23\x76\x98\x86\xf6\xab\x76\xb1\x05\xf9\xc2\x07\x33\x7b\xaf\x5d\xd9\x09\xdc\x1f\xe2\xce\x17\xf6\xe5\xa1\x14\x59\xea\xf7\x2a\x83\x42\x71\x63\xae\xd8\x27\xfe\x8c\x1f\xbc\x95\xff\x14\xd8\xcb\x3e\x74\xfa\x4d\x87\x4e\x37\xc5\xa4\xb6\xf3\x2a\x87\xf4\x54\xbb\xcf\x95\x2f\x6f\x0e\x7c\x02\xa7\xcb\xf3\xa2\x48\xff\xc2\xa8\xd5\x4b\x9e\x8c\xa1\xb4\x05\x1c\x3d\x80\xe2\x41\x59\x82\x67\xd3\x31\x57\xe5\x44\xe4\x32\x61\xc9\x98\xe7\x3c\x29\x44\x6e\x3a\xec\xb0\x7b\xd8\x61\x87\xff\x38\xb4\xa4\xe7\xb0\x77\x88\x87\xdc\x88\x5c\xf2\x0c\x76\x08\xca\x8b\x7b\x71\x29\x5c\x0f\x60\x91\x03\x6e\xc4\xf7\xdf\x31\xa1\x12\x9d\x82\x2e\x9e\x03\x80\xd0\x5c\x20\x34\xcf\x07\xb2\xc8\x79\x3e\x63\x47\x14\xcb\x36\x03\x7a\x88\x2f\x1c\x63\x8f\x18\x44\x6d\xb5\x68\xab\xae\xa0\x73\x1c\x64\x5e\x77\x22\x0a\xad\x33\xd3\x93\xa2\x18\xf6\x74\x3e\x3a\x19\x17\x93\xec\x24\x1f\x26\xdf\x7d\xff\xdd\x5f\xfe\x64\x50\x71\xe8\x2e\xc8\xf4\x5e\x16\x3b\x20\x27\x93\xb2\xb0\x8a\xe0\x2a\xe5\xcc\xb5\x03\x0c\x16\xcb\x49\xed\xb9\x07\x20\x4a\x01\x45\x65\x28\xca\x0d\x26\x63\x55\x8a\x48\x62\xc7\x85\x4b\xea\x01\xda\xec\x08\x6a\x99\x52\x1c\x9c\x0b\x3e\x76\x35\x85\x27\x3a\x05\x87\xfc\x71\x08\x87\x8b\x3f\x8a\xd5\x6b\x2c\x9d\xa9\xb5\x07\x38\x56\x35\x23\x90\xde\x8b\x18\x26\x06\x4a\x18\x78\x48\x23\x85\xc7\x82\x7a\x41\xad\x18\xc4\x5f\x3f\xd5\xcb\xe9\x58\x4c\x44\xce\xb3\x5f\xa8\xe8\xcf\x50\x70\x7b\xc9\xd8\x68\x1e\xfd\xa1\x95\x2e\xbc\x8f\xae\xff\x5a\xa2\xeb\xff\xf0\xd9\x80\xb0\x5c\x17\x1b\x93\xf7\x0d\x09\x78\xf8\x2c\xc6\x53\xb9\x6a\xc0\x33\x7b\xac\x2d\x4d\x1c\x48\xc5\xa1\x58\x70\x44\x6b\x95\xbb\x0a\x96\x1a\xf7\xd8\x15\x68\x28\xbe\x6a\x09\x14\x11\x06\x73\x24\x96\x46\xc6\x65\x90\x00\x3e\x34\x11\xc5\x58\xa7\x3d\x76\x96\xcd\x63\x52\x59\x69\x1f\xa4\x42\x4b\xa7\x88\x87\xa7\x41\x7a\xd1\x0a\x3b\xed\x00\x82\x91\xfd\x13\x44\x4a\x35\x63\xe2\x19\xf1\xcf\x82\x50\x8c\xf5\x51\xc4\xa3\xf0\x88\x03\x4f\x63\x81\xe0\xc6\x30\x6c\x77\xdb\xce\xfa\x57\x6d\x03\x04\xd7\x0b\xf9\x80\xf8\x45\xb0\xd0\x26\x32\x93\x00\x58\x3d\xcd\xf5\x28\xe7\x93\x09\x2f\x64\xc2\xc6\x5c\xa5\x99\x1d\x0a\x82\xe7\x79\x8e\xb9\xa3\xf8\x8a\x17\xcf\xb5\x20\x39\x76\xa7\x09\x16\xd8\xe7\xa5\x7a\x5c\xed\x97\xa9\xb6\x24\x55\x0c\x02\x5a\x70\x2d\x0b\xcd\xa6\x04\x06\x4f\x54\xf5\x51\xe6\x5a\x81\x32\xfd\xc8\x73\x69\x79\x09\x96\xf0\xef\xdd\xab\x7b\x75\x47\x31\x2e\xa0\xaf\x92\x70\x51\xf0\x7c\x24\x0a\xea\xf0\xd0\xc4\x72\x34\x18\x80\x3d\x51\x87\xd6\x0f\x62\xd6\x45\xbe\x30\xe5\x32\x87\x92\xd7\x8d\xdf\x6c\x21\x5d\xab\xd5\x9a\xe9\x75\xa4\x95\x92\x05\xbc\xd8\x31\xb6\x1a\x04\xd0\x9e\xfc\x09\xfe\xb3\x3e\x7d\x77\x28\x1b\xab\x60\xb5\x91\xd4\x54\xac\xcb\xb4\x83\x4e\x57\xa1\xe0\xbe\xb6\xac\x7d\x6b\x63\x0e\x7c\xfd\x6f\x62\xd6\xc2\xb0\x37\xd7\x36\x3a\x87\x56\xe6\x05\x8d\x0d\x1b\xb5\xd8\x76\x04\x80\x5a\x65\x8f\xa0\x7e\x23\xe9\xd7\x63\x6f\x00\x55\xeb\xb1\xc8\x33\xf8\x08\xe6\x14\x6a\xf7\x20\x36\x71\x9d\xed\x0f\xa3\x5d\x3b\x00\x20\x35\x41\x91\xd9\xc1\xb9\x6c\x36\x3e\xd8\x43\xb0\x1b\x13\xc3\x8a\x94\xea\xd0\xa8\x9a\x62\xdb\xfa\xb8\xee\x6d\x00\x7f\xb8\xf4\x69\x22\x04\x9b\xe6\x4d\x57\x03\xa5\x4d\x83\x00\xb0\xb5\x71\x1f\xfb\x5c\xdb\xb2\xb7\xd7\xe7\xbe\x42\x7d\x6e\x9f\x2d\x8d\xcf\x5f\x56\x82\xdf\x7d\x9a\x34\xf6\xdb\xcf\xf5\x7f\xa3\x09\x6c\x99\xf7\x2b\xe5\x53\x74\x10\x21\x65\x02\xad\x8f\x5b\x45\xe9\xbf\x01\xc1\x96\xbc\xc5\x1b\x8b\xe8\x03\xc1\x82\x17\x55\xaa\x86\xae\xad\x9c\x0e\xf1\x53\x94\x03\x4b\xa2\x7c\x93\xf1\x9c\x0a\xae\xd9\xd6\x98\x5d\xd6\x63\xd7\xba\xf0\xfe\x20\x34\x61\xc9\x14\xab\x7b\x66\xce\xbd\x05\xf3\xaa\x38\xbd\x3d\xea\x39\x66\x82\x63\x18\xc4\x44\xa7\x6d\x52\x23\x5b\x11\xfe\x4a\xed\xe6\x0e\x26\x1f\x56\xd5\x93\x86\xd9\x55\xe5\xb7\x44\xa4\x4e\xf4\x09\x0b\xe9\x56\xce\xeb\xe6\x61\x09\x31\x08\x8d\x3d\x8d\xb5\x21\x97\x19\xa5\xee\x59\x89\xc9\xf2\x5a\xda\x39\xf7\x98\x32\x75\xae\x86\xf5\x84\x5a\x7b\x8d\x45\x8a\x5b\xb0\xe4\xcb\x21\x69\x78\xca\x8b\xb1\xe9\x10\xbc\xf9\xdc\xdb\x44\x50\xe9\x10\xc0\x07\x51\x34\x97\x26\xea\x03\x01\xeb\x7d\xd8\x0f\x2a\x75\x15\x4b\x69\x27\x9e\xaf\x11\x45\x39\xc5\xfe\x45\x9e\xeb\xdc\x7e\x58\x18\x07\x24\x3f\xe1\xf9\x83\x48\x3d\xcc\x60\x8f\xf5\xed\x08\xbd\xd8\x88\x2e\xd0\x47\xe1\x25\x10\xfb\x4d\xb2\x9f\xc3\x47\x0e\x7b\xbd\x43\x2c\x0a\x6d\xf5\x89\x82\xe7\x05\x46\x4f\xd8\xe7\x3b\xf6\xa5\xff\x4d\xcc\xee\xb4\x1d\xde\x56\x1c\x77\xaf\x21\xbc\x90\x86\xb0\x91\xd8\x1f\xe2\xe7\x56\xc9\xfe\xbe\x65\x35\xa2\x95\xe6\xe3\x7f\x05\x63\xda\x18\xcc\x19\xba\x1c\x8d\xe3\x90\x39\x4b\xe3\x72\x51\xe4\x52\x3c\x8a\x40\xc2\xc1\x22\xb7\x06\x16\x62\xdb\xf3\x23\x0d\x2b\x95\xfc\xbd\x44\x02\x0a\xd4\xdc\x7f\x05\x47\xe2\xe6\xe3\xe9\xae\xcf\x8a\xdc\x4c\xef\xc5\x09\xac\x1e\x1a\x0e\xa1\x5a\x48\x92\x27\x7e\x9c\x48\x5e\x22\x8d\x1d\x08\xa4\x3b\x25\x38\xa7\x57\xcb\xab\x82\x11\xb4\x8c\x7e\xf6\xec\xf9\xb6\xc2\x9e\x77\xce\x94\x77\xc1\x8a\x6f\x63\x4e\x6b\x5c\x0c\x34\xd3\x4f\x4a\xe4\x10\x6e\x82\x89\x9d\x60\x8c\xb3\xa4\xd7\x27\x06\x0a\xc8\x7a\x93\x6a\xd4\x82\xfd\x12\xb7\x6e\x11\x38\xf9\x99\x08\xca\x07\xe0\xec\x6c\x40\x08\x2f\xa5\x11\x4c\x2b\x1f\x3f\x87\xd3\x1d\xf8\xd2\x09\xbd\xaa\xed\xa6\x14\xbe\x98\xc7\x3b\x18\xf4\xbb\x7f\xfb\xb7\x7f\xab\xd5\x3a\xf9\xfe\xbb\xef\x7a\xec\x42\xe6\x60\x7f\x92\x64\xd3\xa4\x15\x03\x2e\xc2\x73\x01\x3c\x86\x0f\x87\xc8\x44\x5d\x3d\x07\x8a\x00\x26\xf7\xdb\x44\x8e\xc6\xf0\x65\xc0\xfb\x50\xc3\x4c\x26\xc4\x78\x30\x66\x56\x53\x76\x29\x66\x07\x42\x5f\x61\x0f\xec\x1c\x3b\x08\x47\x32\x34\x7f\xb5\x62\x67\xc7\x41\xfe\xda\x3b\x68\x05\x1c\x72\x09\x62\x67\x61\x4d\x8c\xa8\x07\xf0\x6c\x8f\x37\xbd\x17\x92\xf6\x42\x12\x5b\x7a\x1a\x5e\x5f\x48\xda\xa5\x80\x61\x36\x95\x30\xe6\xa2\x60\x5b\xc4\xc0\xc5\xa2\x5b\x60\xf1\x05\x62\xfd\x1f\x9a\x2a\x0b\x2e\x17\x98\x29\x96\x89\x75\x14\xeb\xec\xca\xff\xff\xa9\xc9\xae\xf4\x92\xec\xb0\xcc\x65\x31\x3b\xb7\x37\xef\x79\x85\xbd\x34\x6e\x19\xe2\xb3\xe0\x69\xad\x38\x7f\xa5\x66\x4b\x94\x7a\x1f\x61\x21\xf4\xd8\xad\x9e\x50\xbc\x04\x7a\x3e\xa3\x3b\x05\xa8\x49\xf5\x2f\xda\xbb\xd0\xd7\x69\xed\x71\x8f\xb1\x5f\xc7\x82\x5e\xb1\xdd\x18\x51\x8d\xd2\x93\x6a\xae\xa7\x82\x3f\x88\xa8\x20\x4c\x1b\x63\x6f\x96\xe9\xa7\x7e\x2e\x1f\x65\x26\x46\xe2\xd2\x24\x3c\x6b\x53\x62\xe1\x6c\xc1\x6b\xae\xda\x40\x48\x2b\x00\xcd\x3c\xb1\x04\xc2\x32\x8a\x91\xbd\xe7\x13\x0d\x8b\x42\x2f\x53\xbc\x9a\xbd\x02\x53\x0e\x68\x30\xf4\x02\xf1\x2f\x7b\xda\x59\x0a\x7c\x10\x3d\xce\xd8\xbf\xc4\x93\xab\xf4\x3f\x94\x78\xfa\x87\xed\xcd\xb0\x61\xc6\x47\x7e\x77\x20\x00\x55\x55\x93\xdc\x43\xd7\x0b\x27\x60\x49\x74\x5e\x0a\xc6\xb3\x27\x3e\x33\xe8\x5c\xae\xf6\x21\xcd\x07\x76\x7a\xcc\xf2\x12\x8a\x8c\xf9\x3e\x52\xf6\xed\x31\x88\xd3\xe7\x67\xfd\x7f\xdc\xfe\x9f\xdb\x7f\x9c\x5d\x7c\xba\xba\xde\xe0\x06\x27\x7c\xca\x07\x32\x93\x0d\xc1\x00\xed\x89\xdb\x79\xdc\xc9\x32\x3b\x1b\x08\x7a\x51\x63\x38\xcd\x69\x7a\x92\xe6\x7a\x4a\xae\xf5\x52\x29\x2b\xb6\xf9\x15\x30\x55\x49\x25\xb6\x76\x50\xd4\x6f\xa5\xc3\x51\xce\xe3\x60\xf7\xa8\xa6\x40\xa9\x20\x70\x68\x51\x6a\x97\x5b\xd8\x55\x01\xc9\xa5\x8a\x77\x47\x85\xa3\x95\xa2\xf5\x85\xf5\x71\xd7\xf1\xce\x44\xbf\x86\x19\x61\x85\x7e\x03\x46\x62\x9e\x65\x33\x26\x7e\x2f\xe5\x23\xcf\xc0\x09\xac\x59\xae\xb5\x3f\x4c\x63\x6d\x8a\xea\x02\x40\xb6\xce\x26\x21\x4a\xf6\x34\x42\x76\xd6\x8a\x19\xfa\x76\x2c\x15\x4a\xbb\x38\xef\x82\xea\x05\xdb\x5f\x31\x77\xd0\x09\xa2\x51\xf2\x9a\xdf\xb1\xbb\x68\x97\xa4\x71\xe3\xef\xfb\x9e\x51\x0a\x28\x8d\x87\x28\xaa\xed\x52\x80\x77\x19\x42\x08\x3b\x4f\x21\x02\x04\x04\x10\xe2\xe6\xe6\xc1\x49\x24\x74\x75\xc9\x4a\x8a\x3d\xfa\x4f\x01\x66\x86\x8b\xee\x1a\x52\xa2\xd4\x40\xb8\xa8\xb0\x2d\xf2\xeb\x6e\xb4\x2e\x42\x5e\xe5\x8a\x45\xfd\xd5\x73\x62\x19\x17\xba\x18\x83\x3c\x97\xbb\xb2\xf2\xb8\xf5\x21\x11\xb3\x92\xdf\xb4\xf1\xc6\xe7\xa5\x3a\x43\x71\xba\x85\x63\xf8\xaf\x57\x17\x70\x06\x4b\x45\x6e\x87\x22\x9f\xa1\xe3\x21\x14\xad\xae\x93\xb7\x9f\xed\x3e\xd6\x76\xce\x92\xcc\x52\x59\xb9\x9c\x7d\xe2\x33\x04\x20\x24\x3a\x29\x55\x33\x03\xba\x1a\xba\x9f\xd7\x60\x5c\x11\x93\xaa\x62\x00\x36\x71\x2b\xd3\xc8\xae\xd8\x9c\xbe\xb0\x59\x61\x1d\xbb\xcc\xd7\x5a\xd9\x73\xd1\x3a\x1f\xce\x67\x01\x84\x65\x05\xa9\x8c\xe8\x3d\x87\xd0\x29\x38\x15\xa5\xb1\xdc\xfe\x6a\x18\x45\x49\xfe\xad\x1c\x88\xcc\xa9\x0d\xe0\xa4\x77\x71\x2a\x72\xc2\x47\x82\xf1\xc2\xef\x0a\x64\x07\x9a\x32\x27\x3b\xb3\x2c\x58\xaa\x05\x0a\xe1\xf4\xa9\x9f\xaf\x2e\xd8\x3b\x76\x64\xbf\x85\x85\x56\x86\x5c\x82\xf9\x19\xe5\xe2\x1a\x57\x1a\xba\x2e\x60\x48\xb0\xd1\x56\xb4\x1c\x62\xe5\x72\xa5\x99\x29\x93\xb1\x1b\x93\x4f\x76\xb4\xea\x81\xc8\xed\x52\x03\xdc\xd6\x1f\xe1\x5c\xb4\xbf\x61\x3f\xaf\x06\xcc\xb1\x17\xec\xe7\x0d\x2e\x58\x4c\xff\x21\x09\xb5\x32\x23\xdc\x6c\x1f\x65\x2b\x87\xd5\x0a\x9d\x7f\x88\x65\xde\xfe\xfa\x19\xb1\x00\xe7\x8a\xad\xe7\x3b\xae\xc2\x65\xad\x12\x66\x9c\xfd\x27\x71\xd3\x5c\x0a\x93\xe5\x2e\x4b\x55\x0f\x9f\xe7\x7e\x70\x59\xac\xb0\x6c\x89\x84\x65\x10\x5c\xa5\x7a\x32\xf7\x31\x8f\x09\x19\x7d\xe0\xcd\x6e\x77\xe3\xa6\x3d\x49\x95\xea\x27\xb3\xed\xa6\xfd\x8a\xdd\xd4\x06\xd1\x76\x0f\xe9\x6d\x5f\x08\xd9\x99\xb4\x4c\x45\xe7\xca\xb2\x8a\x84\xd3\xb4\x91\xce\xb8\xe5\x9d\xf6\xf3\x0b\xe8\xe9\x60\x69\x08\xf0\xee\x0b\x6d\xc2\xf6\x2a\x6f\xfe\x28\x57\xb8\x07\xa0\x05\x86\x48\x20\x6a\x29\x1f\x98\x22\xe7\x1e\x44\xd7\xe8\x61\xf1\x84\xca\x26\x36\x3d\x82\x13\xfd\xcc\x27\xd3\x4c\x74\xd8\x64\x66\x7e\xcf\x8e\x5d\xb6\x07\x05\xb9\xda\x3b\x91\x31\x30\xca\xc6\xad\xd9\xfb\xf7\xef\xbe\x3f\x0e\xec\x74\x9a\xeb\xe7\x19\x5a\xb8\x94\x61\x5a\x05\x43\x62\x35\xfd\x31\x15\x85\xc8\x27\x60\x70\x47\x99\x14\x6a\x15\xe2\xfd\x53\xe6\x49\xe4\x21\xb8\x82\x62\x34\x73\x70\x5f\xf8\x6f\xec\x43\x9c\xde\x74\x88\xd3\x3e\x8e\xe7\x6b\x89\xe3\xf9\xc3\xe7\x65\x6c\x53\xa5\x89\x68\xe9\xfa\xf5\x99\x06\x62\xcc\x1f\xa5\xc6\xf2\xbf\x8e\xce\xfe\x71\xeb\x34\xb9\x75\x58\x5d\xa1\xe9\x53\x73\x91\xd5\x50\x85\x19\x79\x01\xad\x47\x9f\x82\xfc\x03\x48\x02\xe9\xdf\x37\x4e\x35\x7f\xf1\xd3\xf3\x86\xcb\x37\x39\x5e\xbf\xe3\xf8\x2e\xe8\xf4\x2c\x49\x6a\x36\xa9\x05\x72\x04\x35\x64\x03\x4b\x91\x58\xa1\x47\x60\x50\xf9\xc0\xbe\x21\xe9\xa2\xc3\x4a\x95\x8a\xdc\x14\x5a\xc3\x2e\x5a\x3d\x89\x9c\x55\x53\x91\x8f\xf9\x14\x3c\xa4\x53\x91\xcb\xe9\x58\xe4\x3c\xa3\x2d\x36\x1d\xc4\x9f\x51\x14\x73\x55\xcc\xa0\xc7\x69\x2e\x55\x22\xa7\x9c\x70\x4c\xc9\xed\xc8\xcb\x62\x8c\x81\x59\xf6\xa8\x00\x36\x42\x59\x8c\x75\x0e\xcc\xf0\x9b\x80\x43\x80\xce\x07\xb3\x17\x0d\xde\xb2\x68\xc0\xcb\x42\x83\x21\xb3\x7a\xc0\xee\xf4\x83\x58\xb9\x1b\x4b\x5e\x65\x72\x0e\xec\x08\x64\x4a\x67\xd8\x86\xa0\x03\xf0\x9b\xa3\xcc\xcb\xe9\x5c\xd3\x66\x40\x85\x6c\xae\x00\xa9\xac\x80\xfe\x60\x9c\x1c\xa2\x01\xb3\x19\x9a\x5e\xad\x30\x70\x4e\x9e\xf0\x47\x91\xe7\x32\x4d\x6d\xc3\xc2\x39\xd4\x10\x38\x79\x13\x4b\x06\xd8\x12\xfa\x65\x96\xdd\xd2\x11\x5e\x95\x3b\x5c\x6d\x5e\x0d\x14\xaf\x82\x6a\x19\xd7\x04\x0d\x1f\x86\x4f\xc4\x9c\xdb\x0f\xee\xe2\xb4\xcc\x32\x97\x92\x07\xe3\x41\x4b\xba\x2f\x22\x1e\x22\x74\x60\x21\xab\x7b\xd0\x63\x73\x63\xb2\x1a\x46\x0a\x1a\x04\x25\xb7\x30\xf7\xcb\x40\x24\xdc\x7e\xd5\xfd\xdb\x27\x1c\x97\x2a\xc2\x25\x9a\xea\xb4\x03\x95\x4e\x1a\x7b\x06\xbb\x2d\x4f\x12\x2c\x81\x42\xec\xe3\x01\x2d\x73\x9b\xc4\xc6\x93\x86\x79\x82\x33\x3f\xf9\x53\x48\xa3\xec\xc2\x23\xbb\x3a\xb4\x94\x5d\xad\xba\xbc\x3b\xd5\xe9\x6e\x5d\xd5\x8d\x30\x6a\xdb\x78\xad\xf7\x42\xf8\x5e\x08\x7f\x23\x42\x78\x2b\xaa\x16\x11\x33\x17\x27\x13\x71\x75\x57\x2f\x82\x6c\x7d\x25\x5d\xfb\x0a\x91\x77\xa1\x67\x0d\xe4\xe9\xcd\x65\xcb\x6c\x78\xd3\x2b\x3f\x55\x24\x4f\xc0\xe2\xe9\x42\x06\x76\x17\xb3\x11\x31\x38\x73\xd5\x1b\x84\xe9\x03\x2f\xc0\xdb\x6f\x50\x06\x76\xe2\xea\x0b\x8a\xc2\x2b\x33\xee\xea\x8d\xeb\x99\x77\x15\x71\x99\x02\x9b\xf7\xa2\xe8\x5b\x16\x45\xdb\x84\x1a\xfe\xd4\xb8\xbf\xad\xd3\xef\x0a\x6e\x1e\x02\x35\x11\x56\x6a\x88\x6a\x91\x84\xe7\x24\x96\x76\x49\x2c\xdd\x71\x39\xd3\xda\x2d\xda\x0b\x15\x7b\xa1\x62\x9f\xa1\xf7\xba\xac\xeb\x25\x32\xf5\xe6\x94\xe0\x56\x69\x7b\x4b\xdf\xab\xe1\xa3\xfb\xb0\xe4\xba\xda\x8c\x3a\x32\xe5\x12\x60\x20\xd0\x34\x74\x42\x0a\x5d\x49\x28\x2a\x52\x19\xcb\x5d\xf8\x82\x5e\x7c\xc8\xb3\x93\xe5\xc0\x19\x1b\xe1\xa2\x5b\xed\xd4\xea\x8b\x7c\xc4\xa5\x32\x85\x55\xd2\x0d\x3b\xfa\x9b\xdf\x35\xd0\xda\x91\x4e\x30\x9d\x87\x7a\x53\xc7\x6d\xbc\x44\x65\x2a\x6b\x09\x37\x4d\x8b\x76\x46\xcd\x9c\x70\x6a\x19\xa1\x02\xb4\x1c\xf7\x83\xcb\x9f\xb0\x53\xea\xb1\x33\xcb\x4b\xe5\x14\xa8\x11\xd8\x80\x71\xaa\x10\x64\x82\x16\xaf\xe1\x8c\xc9\xc2\x88\x6c\x88\xb1\xcf\xde\x12\x36\x94\xf5\x40\x03\x80\x3c\x6b\xfa\x4c\x27\xa0\x62\x43\x79\x2d\xe2\xe6\xc4\x8c\xa3\xd1\xdc\xc5\x3d\xa4\xb5\xb0\xbe\xe8\xb3\xd4\xb9\x25\x13\xb0\x9a\x1b\x84\x69\x89\xe7\xa9\x44\xa9\xf9\x56\x24\xda\xde\xdf\xe5\x0b\x7b\x59\x6f\xef\x56\x98\x68\x37\xa2\x4f\x7a\x19\x06\x42\x5b\x64\x31\xab\x99\x92\xab\x27\xaa\xc7\xce\x4c\x98\x3e\xe3\xd3\x69\xae\x39\xd4\xf8\x0c\xa3\xeb\xc4\x06\x03\x17\xf6\x3e\xcd\xca\x91\xa4\xa0\x19\x78\xa7\x90\x8f\x02\xe2\xc3\x0a\x17\xe2\xb3\xe0\x83\x77\x51\x67\xf0\x3a\x85\xef\xe4\x00\xc4\x04\xd1\x85\xbe\x0b\x3a\xf5\xc3\xf8\x1f\x86\xe9\x2c\x05\xde\xc6\x15\xfb\xcb\x3b\x36\x15\x79\x42\x67\x07\x92\x4f\x28\x98\x28\x93\x8f\x02\x62\xc9\x17\xbf\xfc\xed\x77\x6c\xac\xcb\xdc\xf4\xe2\xe8\x95\x53\x78\x86\xe2\x9a\xcb\x51\x29\x58\x26\xb8\x29\xd8\xe9\x3b\x36\x91\xaa\x2c\xe6\xc0\x7e\xb7\x0f\x0e\x99\xf2\x62\xbc\x62\xff\xfb\xbc\x18\xbb\x2d\x87\x94\x00\x9f\x3d\x40\xc7\x13\x83\x1e\x2b\xa1\x3a\x90\x88\x51\x68\x47\x71\xe2\xa5\x50\xed\x51\x5c\x5b\x72\x93\x69\x94\x3c\xb0\x05\xa8\x07\x9c\x9a\x76\x3a\x06\x88\x9c\x18\xa1\x1e\xa3\x3f\xc0\x6f\x7b\x7c\xcf\xaf\x47\xa5\x70\x5b\xfa\x22\xb2\xfe\x5e\xc8\xdf\x0b\xf9\x7b\x21\xff\xb5\x84\xfc\x17\x93\xee\xfb\x3a\x6f\xc1\x31\x6c\xab\x00\xe3\x1b\xe7\x78\x6b\xe5\xc8\xcc\xa1\x81\xf0\xad\x56\xfc\x63\xda\xcf\x75\xa1\x93\x56\xf5\x38\x20\x58\x8f\x0a\x9d\x4c\xe9\x35\x4a\x4e\x90\xf4\x49\xd4\x0f\x30\x09\x73\xa8\x09\xa6\xd2\x9d\xb9\x48\x8c\xc7\x0a\x96\x66\xa6\x0a\xfe\xdc\x63\x3f\xab\xee\x34\x17\x43\xf9\x2c\x52\x74\x58\x81\xdf\xc7\x92\x0c\x08\x29\xb0\x9f\xb8\x3a\xbb\x3e\x0b\x3d\x39\xd1\x0c\x1b\x1f\x71\x63\xa5\x28\x76\xf3\xf1\xbc\xfb\xfd\xfb\xf7\x7f\x06\xc6\x62\x8f\xf1\x87\x93\x93\xa7\xa7\xa7\x9e\xe4\x8a\x03\xf0\x2f\x37\x46\x8e\x00\xe7\xcf\x9c\x38\x33\x0c\x74\x71\xdc\x63\xd7\x80\x2a\x4c\xfd\xbb\xd9\x79\x1e\x67\x75\x92\xda\x10\x21\xfe\x9a\x1b\x36\x99\x25\x7a\x32\xe5\x6a\xd6\x4b\xf4\xe4\x64\x32\xeb\x26\xa5\x29\xf4\xa4\xeb\xfa\xe8\xb1\x8f\x31\xd6\xae\x03\xcb\x05\x55\xc0\x29\x68\x61\x1b\xda\xe0\xe4\x6e\x09\x03\x57\x45\xcb\xa7\x9d\x8b\xd3\x91\x7d\xd0\x06\x26\x1c\xfb\x4c\xe7\x8b\xeb\xdb\x7f\xfc\x74\xf6\xc3\xe5\x4f\x88\x0a\x6a\x5f\x33\x21\xc7\x3f\x8a\xa0\xc1\x77\xc0\xd1\x4a\x48\x00\x94\xfc\x0d\x19\x70\x10\x6e\x98\x8a\xdc\xf1\x0d\x47\xf1\x0d\xd5\xa9\xa1\x8e\x3a\x38\xb8\xa8\xf4\x3f\x24\x94\xda\x9e\x0e\xe9\x84\xd1\x78\x2f\xa9\x83\x3e\x9c\x40\x97\xd1\x6d\x25\x67\x04\x49\x56\x82\xc5\xb7\x47\xba\x6a\xf8\x29\xe6\x00\x05\x57\xf1\x26\xeb\xad\xd3\xfa\xcd\x5d\xb4\xe6\x98\xe7\xae\xa8\xc8\xbc\x4e\x21\xc3\xdc\x61\x0e\x44\xfe\x6a\xac\xae\xac\x0d\xe4\xf2\x0a\x84\x90\xff\xcf\x6b\xfa\x8e\x55\x09\x7e\xd2\x3c\xfd\x81\x67\x5c\x25\x22\xef\xb1\x9f\x4d\x09\x7e\x6b\x3c\xdc\xf3\x01\x36\xd5\xb4\x64\x19\xe5\x3b\x52\xf8\x73\x1a\x0a\x32\xd1\x00\x86\xac\x54\xa0\xd1\xeb\x9c\x89\xcc\x08\xcc\x83\x27\x41\x30\x6e\x19\x0a\x2c\xc5\x79\x34\x85\x06\x97\x7a\x37\x8a\xaf\x86\xb9\x93\x2a\x43\x7b\x71\x37\x9b\x86\x23\xe8\x42\x59\x7d\x8a\x91\x56\x1b\x64\xa8\x92\x94\xd5\x55\xa2\x20\xec\x11\xf7\xec\x04\x58\x50\xd7\xae\xba\x1d\xca\xae\x33\xd9\xa7\x6b\x9c\x80\x4a\xce\xa9\xdb\xe8\x90\xeb\xdf\x74\x10\x77\x30\xc0\xf6\x54\xfe\xaa\xbf\x90\xb8\xdf\x22\x58\x83\x61\xf7\x07\x77\xe7\x7d\xac\x41\xf7\xf3\x05\xfc\x61\x49\xee\xfd\xc1\xed\xf9\x5d\xbf\x56\x90\xee\xee\xbc\xbf\x49\xad\x66\xc0\xa6\x68\xba\x58\xeb\x49\x48\x65\x21\xb3\x9e\xa5\x2d\x45\xde\xbb\x52\xc5\xe7\xfc\x16\x3f\xba\x4c\x46\xba\x2e\x27\x03\x34\x2f\xc5\x35\x45\x70\xef\x34\x05\x22\xb8\xec\x41\x8c\x99\x80\xc1\x46\x37\xcf\xd1\x4f\xea\xc9\x51\x50\x22\x57\x39\x57\x23\xc1\x4e\x6d\x67\xdf\xff\xf9\xcf\xef\xff\xdc\x63\xd7\x31\xce\x08\x57\xc0\xec\xfe\x71\xfb\xcb\xf9\x3f\xae\xcf\x3e\x5d\x56\xea\x9d\x71\x0f\x95\x1f\x5d\xe4\x4c\xeb\x07\x91\xb2\x72\x4a\x09\x4d\x10\x09\x8e\x37\x4e\xc5\x48\x1f\x7d\x48\x04\x8f\xb2\x5f\xec\x5e\xce\x95\x53\xab\x85\xdc\xa3\xb0\x4f\x8b\x70\x68\x5f\xf1\xd4\xd7\xa0\xd9\xef\x28\x0e\xed\x9a\xf0\xe9\x71\x45\x0a\xb0\x1d\x8f\x14\x60\xda\x0f\x01\x78\x15\xef\x28\xf2\xbf\x24\x2b\x4d\x21\xf2\xab\xfe\x7f\x5e\x6b\x45\x1a\x61\xa8\x4f\xe6\xaa\xd3\xc3\x6b\x05\x13\xbf\x97\x08\xd7\x55\x1f\xc9\x6e\x09\x05\x1e\x2b\x35\xea\x72\xe7\xaa\xd9\xc0\x92\x60\x0f\xee\x8e\x2c\x09\xb7\xd5\xb0\xd6\x05\x72\x21\xc5\xa5\x62\xf1\x03\x54\xee\x79\x81\xa2\xba\x4b\x82\xe3\x98\xd9\x84\x98\x26\x70\x82\xf9\x3c\xbd\x59\x28\x2a\xfa\xad\x5a\x41\x42\x7c\x3b\x67\xea\xb9\xea\xd7\x6b\x45\x7a\xc3\x9a\xa2\x43\x54\x63\x60\x98\x8c\x93\xcd\xdc\x7d\x9a\x70\xdb\x23\xe2\x5d\x28\xdf\x59\x05\xf4\x62\xc2\x15\x75\x82\x7d\xda\x83\x2c\x15\x88\x6d\x83\x19\xda\x4d\x4d\x2b\xe6\xf7\x1f\xc1\xc8\xda\x69\xc3\xf6\xa2\x93\x6e\x05\x3c\xd2\x48\x93\xb1\xbd\xe3\xa9\x4f\x66\x40\x0d\xd5\xd7\x4d\x8a\x60\xd4\xef\x0f\xec\xc9\xb7\x14\x14\xea\xf2\x38\x15\xfb\xe8\xfe\xe0\xfe\xe0\xb8\xc3\xb0\x70\x1f\xbc\x14\xd6\xb1\xe7\xdf\x72\x42\x65\x58\x08\x7b\xc7\xc6\x82\xa7\x80\xe1\x11\x2e\x9b\x95\x23\x20\x9b\x02\x4a\x49\x52\x5a\x22\x1d\xdd\x1e\x83\x42\x93\x71\x25\x79\xab\xae\xb1\x73\xb7\x93\x1d\xe6\xa4\x0f\xbc\xa1\x55\xf9\xe3\x8a\x6e\xb7\xe5\xee\x54\x3e\xff\xf2\x19\x0d\x3d\x96\xae\xed\xf6\x72\x3e\xca\xbc\x28\x79\xd6\x95\x53\x83\xa1\xbc\x24\xc5\xdb\xb9\xcd\xa5\xc6\xb7\x33\x62\xe3\x50\xaf\xfa\xab\x6c\x39\x51\xcb\x6a\x3c\x40\xd8\x18\x81\x22\x2c\xca\x74\x56\xd6\xf0\xb1\x78\x74\x2b\x5c\xde\x99\x41\x3e\x32\x2d\x58\x91\xf3\xe1\x50\x26\x81\xd3\x7a\xe6\xc1\xee\xc6\xc2\xd8\xeb\x63\x3c\x34\x10\x42\x23\x01\x9f\x09\xba\x14\xb6\xc4\xbb\x0d\x96\x3b\x33\xb5\x02\xf6\x20\xc3\x58\x3f\x48\x4a\x45\x51\x9b\x87\xcf\xf1\x3c\x97\x8f\xf6\x08\x16\x90\x01\x9b\x8a\xa8\xf2\xdf\x55\xbf\xc7\xd8\x19\x14\xb6\xb4\xd2\x2a\xa5\xff\x80\x54\x4a\xf6\xbb\x4c\xf3\xb4\x3b\xa0\x13\xe0\xa8\x0b\x8d\x71\xca\x73\x6f\xbd\x8d\x14\x3e\x92\x46\x5f\xa5\x7e\x54\xc3\xf6\xb6\x00\x50\x89\x9b\x3a\xda\xe5\x67\x1c\x47\x44\xf2\x02\xec\xff\xa9\x82\xaa\x5b\x11\xb2\x00\xa1\xcd\x17\x65\x4e\xa9\xc5\xe7\x96\x7f\x83\x5d\x34\x4f\x1b\x76\xf8\x5a\x87\x3b\xe9\xe8\x92\x54\x8f\x3a\x7b\x84\xac\xd2\x1a\x3a\xb8\xd5\x6e\x4f\x4f\xbf\x7d\x0f\x88\x05\x20\x99\x1c\xad\xa8\x6f\x63\x5b\x63\xa6\xb1\x17\xab\xef\xa8\x36\xf1\x40\x54\x2f\xe9\xe6\x17\xe7\x0e\x4f\x54\x5f\x67\x32\x59\x85\x8b\xde\xf8\x8e\x07\x41\x90\x35\x5d\x20\x15\x06\xd1\x06\x34\xcb\x75\x59\x44\xbb\xe1\x4e\x71\xa1\xe1\xec\x76\x31\x65\x4d\xe7\xee\x9a\x75\x9f\x64\x1a\xe9\x95\x96\x5e\x42\xc8\xe5\xfd\x01\x82\xb7\xe4\x8f\x0e\x16\x81\xec\x8b\x68\xb2\xb4\x17\x59\xa5\x8c\x3f\x6a\x99\x12\xd8\xa9\x56\x29\x1b\xeb\x29\x6c\x5e\x4c\xf6\xa0\xe1\x35\x69\x13\x54\xcd\x99\xe8\x16\x46\xb2\xe6\xd2\x3c\x58\xb1\xb9\xf0\x10\x14\x72\x42\x37\x26\xf5\xe3\x37\x53\xaa\x73\x61\x47\x48\xe4\xf6\xfe\x80\xe9\x81\x49\xca\x7c\xd9\x10\x27\x7c\xc6\x30\xb0\xb6\x32\x4a\x2b\x9e\x2a\x44\xee\x52\x80\xf4\x65\x47\x12\x87\x3d\x8f\xb4\x4e\x21\xa0\x99\x67\x74\x8b\xc3\x10\xd6\x3f\x02\x63\xc1\xb3\x62\x7c\x3e\x16\xc9\xc3\x75\x3b\x35\xb8\xe1\x0d\xcf\xbb\x70\xba\xd8\x22\xb1\x2d\x98\xd3\xad\x3d\x00\x86\xbf\x39\xae\xaa\x51\x10\x55\x7f\x6c\xe8\x59\x1a\x0f\xe0\x56\x95\xcc\x19\x9f\x4a\x36\xe0\xc9\x83\x50\x51\x15\xd9\x20\x12\xb8\x0f\xf7\xd8\xaf\xf6\x5a\xda\x75\xb6\xe4\xb5\x1b\xd8\xac\x1f\x1a\x8a\xc7\x32\xd2\xb1\x3d\x30\x0a\x6c\x1c\x31\x57\x01\x40\x6c\xc4\x88\xef\x88\x4d\x52\x51\xa6\xb9\x73\x75\xd9\x78\x4d\xe2\x17\x12\x5e\x8f\x3d\xdf\x01\x1a\xdb\xf4\x23\x9f\xc8\x95\x55\xad\x5d\xb3\x68\xdf\x9e\x62\xe8\x0d\x77\x7b\x11\x78\x63\x1a\x08\x27\x1a\x77\x2c\x7b\x90\x49\x99\xf1\xdc\x9e\xe5\x21\x76\x75\x24\x7a\xa3\x1e\xbb\xea\x3f\x7e\xc7\x1e\x0d\xfc\xf1\xfd\x31\x26\x50\xf3\x90\x33\x1c\x9a\x4b\x13\x5c\xc6\x9d\x98\xbd\xda\x26\x15\xfc\xc2\xb0\xa5\xe4\x5f\xe0\x05\x75\xd2\x21\x84\x05\xcb\xc9\x1f\xb9\xcc\xa0\x9e\x73\x95\x59\xe3\x08\x94\x6e\xf3\xe5\x43\xc3\xa6\xb9\x9c\xf0\x7c\x16\xb5\xae\x66\x22\x7f\x86\x35\x72\x43\x34\xec\x28\x8b\xf6\xdd\x0a\x59\xf1\xbf\x11\xf2\xf1\xc6\x4a\x91\xa6\xc3\x22\xd1\xe3\xd8\x03\xd0\xe5\x3a\xcb\x2c\xf7\x45\x69\xc3\xdb\x5a\x16\x31\xe9\xc8\x90\xe9\x93\x03\xfc\x50\x7b\xcc\x1b\xd1\x4c\x60\x54\xb7\xb1\xb8\x3b\x08\xc6\x1a\xff\x4e\x4d\xcd\x73\xb5\xbf\x18\x1f\x16\x4e\xd1\x80\x82\xdd\x67\x20\xd9\x63\x5d\x49\xea\xf4\xaa\x4f\xc7\x08\x20\x0f\x17\xec\x40\x38\x18\xdf\xdb\x5f\xe0\x80\x60\xa1\x22\xfc\xfd\x98\x8a\x91\x21\x70\x9d\x25\x83\x60\x0e\x80\x25\xf2\x32\xba\x2b\x69\x19\xce\x48\x30\x03\x6f\x40\xf4\xaa\xbb\xb6\x0a\x5d\xb2\x26\x58\xbb\x15\xb5\x14\xe0\x43\xf5\xe2\x57\xfe\x01\x83\xb7\x2a\xbb\xa3\x5f\x9e\x48\x5d\xf5\xeb\x11\x23\x6e\x0b\x9c\x2e\x42\xf6\xe3\x54\x4c\x85\x4a\x0d\xda\x18\x03\x48\x1d\xa4\x70\x65\x33\x5c\x10\x5d\xa6\x5d\x2a\x06\x95\x3b\x24\xce\x4a\x59\x29\x70\xde\x56\x26\x8c\x14\x8c\xc3\x53\xe6\x4e\x57\x44\x69\x2b\x1a\x91\x17\x6a\x22\x15\x01\x76\xb7\xf2\x61\x8f\x93\xe2\xb0\x40\xc1\xf1\x8f\xd3\xd8\x72\x83\xe2\x6b\xb4\x1a\x68\x32\x2c\x2c\xd8\x21\x70\x34\x81\xa0\x4f\x33\x5e\x58\x32\x4b\x86\x69\x92\xf6\xec\x50\x92\x20\x58\xc7\xe9\xeb\xb5\x79\x56\x2e\xa4\x5f\x1b\xd7\x43\xa4\x89\xfa\x61\x10\xef\xbf\xea\x9b\x5d\x2f\xeb\xfd\xc1\x5a\x51\xad\x68\xf4\xea\x46\x0e\xa0\x2e\x5d\xa7\x28\xb0\xb5\xfa\xfd\xee\x50\xe6\xe2\x89\x67\x59\xbb\x00\xd7\x1d\xca\xfc\x70\x8a\x5b\x18\x3a\x9d\xfe\x86\xa7\xde\x2b\x31\x8b\x4c\xb2\x5f\x4e\x8f\xdd\x51\x9c\x40\x3f\x32\x4a\xad\x5a\xd8\xc5\x99\x04\x76\xd5\xba\x13\x3e\xed\x3e\x88\x99\xa9\x58\xbd\xfc\xe2\xd7\x2b\x96\x7a\xe3\x73\xf4\xf8\xbf\x56\x7c\xc1\x0d\x67\xc2\xa7\xeb\x25\x42\xcc\x9b\xf7\xd7\x4c\x84\x88\x4f\x52\x39\xc8\xa4\x19\x5f\xeb\xe2\x46\xf0\x74\x76\xe6\xb4\xfc\x55\xf8\x6e\x0b\x5e\xeb\x20\xf1\xac\xd4\xe2\x94\x55\xa0\xaa\x8b\xeb\x5b\x26\xad\xbe\x3d\x71\xb1\x37\xe4\x01\xa3\x3e\x09\x24\xb1\xd6\x31\x84\x98\x94\x03\x23\x3c\xf7\x16\x11\x3f\x9f\x2f\xef\xef\x7d\x30\x55\x1c\x39\x92\x65\x1d\x10\x1a\xfc\xe6\xa4\x1a\x2b\x37\x24\x9c\xf2\x07\x09\xbe\x25\x62\x3e\xe4\xf6\x41\x8d\xe4\xb6\xe0\x85\x18\x96\xd9\x2d\xc0\x4a\xff\xe8\xac\x51\x8e\xf9\x61\x38\xd7\x94\x8f\xac\xb8\x72\x7b\xf3\x0b\x29\xc8\x38\x74\x59\x18\xd6\x47\x84\x10\x2c\xbe\x90\x0b\x4b\x0f\x0b\x22\x8e\x32\xa7\xd2\x80\xb6\x43\x4c\x65\xcc\xed\x75\x85\x7b\x2c\x2c\xd5\x93\x26\xb1\x0a\xce\xa2\x12\x5a\x2b\xc0\x56\xe7\x4a\x89\xc1\xf3\x17\xad\xeb\x78\x03\xba\xad\xd3\x4c\x22\xd5\x76\xea\x96\x81\xbc\xe5\xf5\x2a\x8c\xe0\x14\xf5\xdb\xe0\xc6\x0e\xca\x11\xda\x12\x75\x1e\x63\x00\x77\xaa\x3e\x3e\x38\x17\xe5\x04\xd9\x8e\xcb\x89\xf5\xc2\xa3\x03\xf9\x04\x8b\x13\xd8\x0c\x0b\x13\x14\xea\x0e\x09\x9d\x91\x7d\xc7\x03\x14\x43\x2d\xd9\xd9\x1f\xc8\xa6\xb8\x7e\x55\x49\x23\x8c\x91\x5a\x9d\x0d\x81\xea\xae\x52\x98\x22\xa7\xd9\x39\xf0\xf3\xab\xfe\xfd\x01\xf9\xcb\xd0\x8a\x0b\xf8\x7e\xb0\x0f\x13\x2e\x11\x3b\x99\x3e\xc1\x38\x7d\xa3\xc7\x2e\x21\x6e\x20\x88\x04\x50\x42\x39\x6d\x68\xe8\xec\x46\xee\x63\x58\x62\x5e\x89\x2a\xc8\xd9\xf5\xce\x1d\xac\x3b\x37\xcd\xd6\x96\xf9\x1c\x04\x8d\x2d\x80\x2d\x9a\x7a\x5b\x76\x31\x1b\xbf\x5f\x2d\xa1\x5d\xc9\x1d\x44\x32\x5c\xdf\x8f\x05\xfe\x4d\x3d\xd5\x99\x1e\xcd\xfe\x86\x4c\x74\xd9\xf9\x89\x9b\xa2\xe1\x39\x28\xd5\x5d\x9d\x83\x64\x49\x92\x8c\x6b\x4a\x98\xe1\x08\x04\x5e\xe3\x26\x51\x34\x62\x45\x27\xd4\xbe\x5b\xb2\x57\x19\x2b\x33\x86\xd8\x0c\x94\xfb\x41\x0e\xac\x67\x5e\x82\x63\x25\xf2\x7e\x80\x57\x90\x72\xe5\x41\xcf\x84\x98\x66\x1e\x0c\xc8\x15\xc3\xc6\x7f\xa2\x39\x83\xdd\x55\x06\xef\xbc\xa1\x68\xfb\xac\x11\x40\x6e\xc9\x8c\x29\xd8\xe9\xf7\xd4\x98\xcf\x2a\x5e\x90\x5e\xcc\xfd\x72\xc1\x92\xb1\x36\x42\xd1\x8d\x21\xcf\xed\x50\xe6\xa6\xa8\xac\x18\x45\xe7\x7b\x5d\x94\x0c\x44\x91\x87\xd4\xb3\xba\xaa\xa6\xc0\xb3\x0c\x50\x06\x2d\xa5\x03\x4a\xaa\xb4\x7f\x19\xd9\x7a\x88\x5f\xf1\x1f\x74\x58\x84\x70\x4b\xab\xb4\x79\xcc\x4d\xa5\x8b\xa1\xc3\xd2\xa2\xcb\x4f\x16\x00\x85\x29\x18\x7e\x1b\x9d\x43\x8a\x16\xc2\xc5\xd9\xb2\xfb\x83\x6f\xee\x0f\xdc\x1a\xb9\x44\x8d\x89\xe0\x8a\xdd\x1f\x40\xb5\x6f\x1a\x92\x25\x44\xa0\x65\x24\x20\x23\xf1\xcc\x07\xea\xca\x21\xbc\xd7\x41\xe5\x7b\x02\xa0\x67\x46\x28\x23\x5c\x81\x87\x8c\x1b\x2f\x3e\x28\x9f\xd2\xbb\xd8\xb5\x0c\x86\x73\xcb\xa3\x00\xc9\xd2\xaf\x49\xa2\x95\x95\xcc\xf0\xbc\x55\x51\xb9\x5f\xdd\x73\xd0\xa2\x74\x30\xb0\xa6\x08\xdf\x6c\xac\x9f\x62\xe1\x2a\x0a\xe4\xa9\xd2\x5e\xcf\x04\x9d\x3f\xd0\xc1\xda\xd9\xb3\x1a\xf3\xb9\x4e\x5b\x7e\x79\x7f\x10\xbf\x06\xbb\x3d\x35\xf3\xfa\xa4\xa8\xf0\x50\x6f\x72\x46\x86\x44\x06\x24\x4b\x60\x9c\x19\xdd\x07\x6c\x47\x3e\x5c\x7b\x18\x23\x4d\x96\x72\x1e\x22\x5b\x7b\xf5\xea\xf9\xe5\x89\x6c\xb0\x04\x0f\xe7\x92\x1b\x78\xd1\x10\x7a\x30\x98\x91\x4f\x97\x0e\x45\x99\x44\x81\xe8\xe1\x13\x2e\x24\xfd\x6a\xc8\x2a\x8e\xe7\xe0\x56\x55\x9a\x11\x67\x62\xf8\x53\xb0\x09\x3a\xc0\x3a\x51\x19\x31\x49\xda\xae\x3c\x36\x01\xce\x84\x36\x39\x27\x63\x0a\x07\x07\x3a\x5a\xbc\xec\x5e\xda\x6f\xe2\x16\xdd\x1f\xb0\x41\x29\x33\xb4\xbe\x9c\x07\xbb\x13\xd2\x0a\xbf\xcc\x3e\x20\xcc\xca\xab\xe4\x85\x03\x9a\x0d\xee\x0e\xbf\x7f\x49\x38\x2e\xf7\x07\xf1\xbe\x57\x3e\xe3\xad\xde\x40\x1d\xc8\xc7\x1f\x8b\x74\x55\xf3\xc3\x91\x1c\x46\x16\x0e\x67\x76\x2b\x73\x40\x6c\x07\x4d\xfe\x78\xd5\x60\x76\x29\x3c\xd0\xa2\x4b\x35\xea\xfa\x76\x4e\x80\x00\xc9\xf1\xd5\xea\x0c\xc4\xf0\x57\xab\xa3\x2e\x10\xec\x2a\xca\xa4\x8b\x97\x31\x40\x61\xad\x13\x68\x11\xdb\xaf\x36\x96\x76\xe2\x63\xd2\x02\xcb\xab\x62\x7c\xac\x4a\x38\x73\x73\x71\x36\x41\x7f\x96\x3a\x18\x69\x29\xb0\xb4\x3c\xd6\x26\xd9\xe9\x96\x2c\x17\x03\xe7\xb7\xa6\x49\x6c\xab\x6f\x51\x0b\xc1\xad\x45\x48\x0c\x4a\xd8\x9b\xa3\xfa\x53\x07\x2d\x84\x51\xf7\xad\x55\xf2\xe7\xf9\x2a\xfd\x60\x97\x3b\x83\x15\x41\x3e\xdf\xf6\x45\x6e\x00\x08\xb4\x6d\xc1\xaa\x9b\x4a\x21\x33\xd7\x0d\x9b\xfa\x7e\x5c\x9a\xde\x7c\x61\xb0\x85\xbb\x31\x34\x77\xab\x59\x76\x80\x93\x47\xc5\xd2\x4a\x42\x84\x1a\xe2\xdd\xed\xc3\x5a\x9b\x39\x43\xf0\xd8\xca\x9e\x76\x10\x1c\xac\x20\x2e\xd0\xf6\xf2\xd9\x12\x68\xf1\x5c\x7c\x87\x91\x91\xcf\x43\x83\x7f\xa8\xc2\xfe\xd5\x63\x57\x93\x69\x26\x13\x59\x64\x94\xf9\x92\x7b\x88\x13\xf7\x5a\x1d\x5a\x7a\x73\xec\xfc\x15\xeb\x30\x57\xef\x80\x1d\xd9\x37\x4f\x9e\x72\x59\x88\x63\x44\xe5\x03\x0d\x7e\x2c\x72\x17\xef\xa4\x31\xad\x47\x84\x1f\x9d\x1d\x48\x2a\x86\x1b\xff\x09\x11\x13\x36\xae\x73\x73\x03\x17\x67\xb3\xcb\x54\x47\x59\x59\x9a\x06\xe3\xbe\x56\xf3\x3e\x87\x4a\xed\x0e\x2a\x4b\x0f\xec\x6d\x73\xbe\x90\x70\x54\xcf\xfa\x57\x96\xcb\xa6\xa8\x2e\x19\xe7\x2b\xac\xc8\x30\x15\xbb\x5a\x24\xd1\x16\x85\x95\x7d\xed\xf6\x36\x2e\x05\x1e\xfd\x16\x11\x2b\xbf\xf8\x86\x2e\x5e\x65\x5c\x4e\xb8\xea\xda\x9d\x04\xa9\x24\x8e\x5f\x0d\x43\x77\xa9\xdc\xb4\x67\x51\xc6\x05\x88\xf7\x0b\x6b\xf7\x6d\x70\x1a\xc3\x54\xda\x94\xe8\xfb\xa5\xda\xba\xbe\x37\x89\x9e\xfa\xd9\x10\x79\xa0\x41\xfa\xb9\x79\x97\x6d\x80\x3d\xab\x68\x6b\x85\x2b\xff\xd2\xaf\xd5\x44\xaa\xba\x6a\x51\x0d\xe2\x98\xbe\x52\x0b\x64\x82\x35\xb5\x63\x21\xc9\x77\x20\xd8\x44\xe6\x39\x98\xab\xea\xc3\x41\xcd\x4d\x8e\xc6\x05\x54\x32\x29\xc4\x28\x27\x8f\xe8\xad\x28\x58\xb4\x7d\x10\xb8\x81\xc5\x18\xed\xdf\x04\x39\x87\xb7\xcd\x9d\x22\x02\x1a\x2d\x73\x7c\xbb\xd0\xec\xde\xd5\xb9\x43\xc2\x31\xd3\xa5\x8f\xc2\x42\x78\x24\x3f\x3f\xd3\xb0\x52\xd7\xe1\x47\x04\x6a\xd6\xce\x5a\xd8\x15\xcf\xd2\x14\xf3\xb3\x71\x8b\xe4\x5c\x7d\xaf\x25\x93\xb9\x01\xec\x99\xcb\x9e\xb9\x7c\x21\xe6\xd2\x88\xd8\xb7\xe7\x30\x7b\x0e\xb3\xe7\x30\x5f\x03\x87\x99\x99\xa4\xc8\x96\xe9\x94\xd0\xc0\x43\x27\x70\xf6\x60\x37\x2b\x63\x53\x9e\xf3\x89\xb0\x6b\x5f\xb8\x72\x20\xbb\xab\xa3\x0c\x76\x03\xea\x64\x86\xf8\xae\x6d\xcb\x2d\xc6\x17\xc4\x92\x86\x55\xd7\xc2\xe5\xf8\x6c\xfa\xbd\xb9\x0d\x68\x4e\x8b\xa9\x81\x14\xd2\xd8\xe8\xdf\x1b\xe7\xc9\xdc\x9d\xf7\x6f\x75\xf2\x20\x8a\xb3\x55\x78\x48\xb5\x96\x51\xbe\x0c\x57\x8c\xaa\x66\x78\x27\x81\x9e\x0a\x0a\x59\x33\xf0\xce\xea\x8d\xb5\xac\xbb\x75\xb9\xe1\x1f\x2d\x9f\x77\xd7\x91\xac\xf9\xac\xd0\x9d\x39\xd0\x9e\xa9\x4e\xd9\xd5\x26\x39\x74\x4d\x49\x89\x6f\x2b\x7b\x2e\xaa\xaa\xb3\x9b\x54\xb9\x2f\x94\xa9\x75\xc7\xe5\x52\x80\x75\xc8\xb8\xd6\x29\x81\x62\x40\x6b\xb0\x44\x17\x05\x4f\xc6\xce\x03\x8f\x7c\xe0\xfe\x00\x43\x85\xef\x0f\x20\x41\x4b\x01\xec\xa9\x23\x9f\x14\xd0\x55\xe8\xcc\x8a\x87\x48\xbc\xa1\xb7\x16\x12\x2c\x76\xbb\xaa\xf6\xa2\x4f\x09\xb2\x43\xc6\x57\x42\xb9\x70\xc0\xe5\x89\x71\xa2\x89\xa0\x57\xc6\x03\xcd\x9c\x63\xc3\x85\x3d\x5b\xa6\x71\xad\x6f\xed\x64\xcb\x4c\x74\x58\x1f\x5c\x8d\xe1\x09\x85\xd3\x5f\x3e\x8b\xa4\xdc\x28\xed\x1d\x83\x7f\xda\x4f\x0d\x27\xf3\x20\x66\xf3\xf5\xa4\x30\x1f\x66\x93\x9c\x55\x39\x11\x67\x69\x3a\x5f\xe0\x72\x0b\x50\x8f\x3b\x59\x87\x75\xad\x1f\x2d\xf7\xd1\xba\x85\x13\x7d\xae\x45\x54\xd4\x1e\xe7\xfc\xc4\x0d\xe3\xf6\x85\x1e\xbb\x82\x53\x08\x22\x99\x15\xcd\x0b\xa1\x40\x9c\xf0\xfb\x80\x6f\x98\x45\x42\x64\x0b\xc6\x12\x96\x1a\x9d\x83\x89\xce\x31\x3f\x29\x25\xd9\xa6\x88\xf7\x62\xc7\x70\x4e\xf6\x4c\x74\xe6\x2e\xc0\xd6\x77\x1d\x0f\xfb\x0a\x46\x43\x74\x1b\xef\xbb\x7f\xa3\x7e\xe9\xdd\xc5\x31\x70\xd1\x71\x1d\x82\xbf\xd8\xd5\x05\xcd\xe5\x34\x13\xec\xbe\x7c\xf7\xee\x7d\xf2\x20\x66\x1d\x74\xca\x12\x99\xb0\x4f\x45\x54\x88\xdf\x07\x05\xa1\x0a\xa9\x73\x7a\xd1\xfd\x13\x5f\xd8\x15\xbd\xb8\x44\x0a\x11\x07\xb1\xb9\xfd\x24\xe2\x01\x41\x2d\x45\x32\xee\xb1\x4b\x88\x49\x9a\x08\xae\x28\x74\x09\xfc\xe6\x71\x63\x07\x10\x11\x29\x38\x0e\x09\x3a\xca\x98\xfc\xc2\x74\xe4\x6f\x58\x6f\xbd\xa8\x12\x11\x57\x15\xab\x08\x7b\x1d\x62\x9f\x96\xcf\xfd\x41\xcc\x5c\x88\x81\x70\xd5\xdc\xc9\x37\xee\xf7\xd0\x31\xbc\x4b\x2b\x36\x9b\xff\x70\x45\x4e\x27\x03\xa9\xf0\x63\xd8\xb5\x5b\x6c\xe6\x7d\xf7\xc6\x07\x28\xc0\x67\xd6\x5f\x10\x37\x84\x95\x72\x0d\x8d\xb4\x02\x2a\xf9\x20\x66\x87\x86\x60\xde\xb4\x32\x63\x39\x75\x77\x9e\x4a\xe6\x3b\xf7\x37\xbe\xec\x1c\xe0\x76\x8e\x98\x08\xf3\x7b\xc9\xb3\xaa\xef\x9c\x1e\x51\x23\xbb\x54\x95\xca\xbe\x4f\x32\x4b\x13\x4e\xd9\x76\x14\xbd\x60\xb4\xcb\x7f\xb6\x57\x32\xe1\x2a\x30\x2c\xbf\x0b\xe4\xa5\x8b\xb2\x53\xec\x79\x1e\xe9\x85\x71\x84\x4b\x19\x81\x3f\x04\xed\x80\x11\xef\xea\xed\xeb\xb4\x7c\x2a\x72\xa9\x53\x60\xc4\x80\x0e\x58\x3d\x68\x47\x48\xe2\xdd\x19\xd1\x43\x77\xf7\xfc\x45\xe8\x44\xc8\x91\x45\x53\x6a\xfe\x71\x44\x8a\x22\x26\xfe\xc3\xcc\x49\xa3\x1d\xca\x95\x01\xfb\x83\x28\x5c\x00\xa0\x3b\x76\x75\xfe\x6f\x97\x5f\x3c\x8a\x9c\x1d\x91\x88\x20\x1e\x65\x52\x1c\xf7\xd8\xff\x27\x72\x0d\x5b\xab\xc4\x08\xb1\xff\x6a\xa6\x8b\x82\x12\x1e\xb8\x61\xef\xd8\x11\xbc\xc6\xe4\x64\x22\x52\xc9\x0b\x91\xcd\x8e\x6b\xe8\x26\xbb\x86\x31\x6c\xaf\x2d\x55\x68\x00\x72\xb7\xda\xbe\x78\x22\xae\xfd\xf5\xf6\x17\x1a\x02\x1a\xed\x11\xae\x94\x1a\xf4\xc8\x07\xee\xfe\xfb\x5d\xfb\x6f\xbb\xb9\x9c\xe5\x62\x04\x87\x13\x4f\xdf\x6b\xa9\xc7\x2e\x32\xeb\x96\x22\x37\x7e\xe2\x03\x91\x91\x3c\x35\x11\x4b\x25\xdf\xb3\x10\xdc\xe3\xe3\x3e\xf2\xf0\x26\x41\x5a\x54\x0a\x06\xba\x65\x1b\xc9\x47\xa1\x30\xf2\x8b\xe2\x92\x30\xd9\x87\x67\xd3\x31\xf7\x69\x2e\x3e\x1b\x12\x32\xee\x9d\xde\x30\x2c\xab\xc9\x23\x0b\xb9\xdc\x6a\x7a\x0f\x99\x02\x2e\xfc\x2c\x10\x7a\x3f\xe6\x88\xcc\x6f\xa8\x9c\xaf\x22\x0f\x67\x8a\x41\x9c\x12\x78\xa9\x23\x04\x3e\xd3\x63\x9f\x95\x3b\x3b\x35\x98\x24\x1c\xb1\x33\x4a\x64\x80\xec\xdb\x63\x97\x3c\x19\x63\x3d\x5c\xb0\xaa\xe2\xcd\x93\x86\x7d\xbe\x79\xad\x00\xab\xcd\x44\x37\x5a\xa6\xed\x45\xb7\xea\x39\xbe\x13\xf9\x64\xcd\xb3\x5b\x88\x7c\x52\xa7\xce\xb9\x30\x65\x06\x6a\x12\xae\xfa\xef\xa5\xc8\xa5\xdd\x9d\x33\xa6\xca\x2c\xf3\xb1\x6e\x8b\xba\x73\x07\x5e\x69\x57\x4b\x00\x75\x94\xe8\x9e\xb8\xc0\x8b\x09\x70\xc8\xb3\xeb\x0b\x12\xdf\x29\xd9\x06\x2e\x11\xc4\xff\xdb\x76\xc3\x52\x25\x68\x65\x90\xc5\xcc\x12\xd2\x6b\x9d\x8a\x78\xce\x2f\x77\x9d\x60\x2a\x40\x1e\x2e\x9f\xed\x1a\x99\xa6\xa2\xb3\x73\xcb\x3c\x17\xbe\xda\x44\x2a\xa0\xb8\x18\x2c\x70\x5d\x8c\xd9\x36\x3d\x66\x25\x79\xdb\xfe\x94\x6f\x7a\x50\x21\x39\xfb\xdc\x47\x45\x2e\xd3\x38\x16\xbc\x12\x99\xb8\x21\x3c\x51\x53\xd2\x79\x50\x14\x40\x9d\xe7\x13\x4d\x0a\x04\x92\x5d\xb7\x15\x6d\xe2\x95\xec\x72\xdd\x2e\xc8\x9c\xd8\x06\xcf\xb2\xd2\xef\xd2\xe8\xa5\xb8\xa5\x87\x25\x2a\x34\x1b\x4a\x55\x9b\x68\x0f\x93\x4b\x2a\x41\xb9\xd2\xc3\x11\x7a\x9a\x9e\x5b\x55\x15\x4b\x54\x15\x3a\xc4\x30\x62\xf6\x0d\x19\xb8\x86\xb8\x72\x78\x45\x64\x3e\xa7\xdb\xd2\x59\x4e\xf5\x84\x4b\xb5\x40\x87\x9e\xf0\xe7\xdb\x07\xf1\xb4\xe2\x86\x7c\xc2\x56\x35\x78\x9f\x54\x8c\x72\x01\xd6\xc3\xa8\xae\xae\x8b\xf2\x55\xe2\x51\x58\xbd\x3e\x95\x86\x40\x80\x80\x60\x1c\x1a\x52\x12\x9f\xe5\xa4\x9c\x58\xb9\x92\x20\x96\x52\x39\x74\x79\xda\x03\x51\x3c\x09\x72\x62\x84\xb9\x56\x8f\x8b\x44\xd3\x54\xf1\xa4\xeb\x13\x25\x41\xba\x7a\x8a\xc0\xd5\xd9\x63\x1f\xe3\xda\xc3\xe0\xf9\x79\xdf\xfd\xa7\x56\x3e\xa8\xb0\xc3\xdc\x4c\x43\xae\xfb\x29\x15\x18\xf4\xb9\x30\x3e\xa8\xbc\x72\xee\xdc\xa9\xe6\x86\x9d\x9e\x9c\x9e\xbc\xfb\xc0\xfe\x87\xd9\xae\x4f\xe9\xbf\xdf\xd2\x7f\xdf\xb3\xff\x61\xff\xc3\x18\xeb\x33\x56\xf9\x2f\x83\xff\x76\x99\x1c\xc6\x63\x38\xb5\xc3\x4c\xf4\x84\xe6\x0d\xba\x03\x98\x4b\x2c\x57\x25\x95\x13\x4e\x08\x76\x0d\xec\x36\xd1\x13\x01\x63\x38\xfd\x0f\xd7\x06\xf3\x67\x98\x56\xd4\xf2\xf4\x08\x86\x74\xcc\x9e\x40\xde\x9b\xf0\x07\x3c\x59\x67\x49\x51\xf2\xcc\x7e\xfc\xe8\xdb\xee\xbb\x63\xa6\x55\xb5\xf9\xa3\xd4\x99\x15\xb3\x69\x84\x47\xa7\xc7\xbd\xb9\x21\x7f\xdb\x30\xe4\xca\x68\x61\x14\x76\xf3\xfe\x09\x19\x20\x70\x26\xb8\xc7\x02\x72\xa9\xc4\x17\xf5\x94\xb0\x53\xd8\x86\x77\x4e\x07\x20\xbd\x7c\xe7\x20\x04\x51\xb2\xc3\x4a\xa5\xc9\xb7\x74\xb2\xb8\x15\xd0\xf4\x10\x2d\xad\xc4\x29\x80\xf7\xd1\x7d\xc7\x24\x27\xba\xeb\x01\xee\xc6\xbe\x05\xa8\x51\x29\x16\x9e\xcc\x62\x63\x83\xc3\xaa\xf4\xce\xf4\xb8\xb6\x9e\x27\x92\xec\xd7\xd0\x12\xe1\x1d\x83\xb5\x06\x7b\x23\x3b\x0d\x44\x14\xdf\x1f\x0c\xca\xe4\x41\x14\x0e\x36\xcf\x8a\x63\x85\x66\xd3\xb2\x60\x1e\x21\x64\x8e\xc8\x14\x1a\x3b\xc6\x57\x17\xed\xdb\xfa\x12\xe8\xd3\x58\xa8\x9f\x95\xe1\x85\x34\x43\xc9\x07\xd9\x2a\xe5\xe7\xd7\x7a\xfb\xc8\xf8\x43\x0c\x26\x15\x9c\xd6\x17\x35\x6e\x04\x5a\x48\xb5\x30\xea\xb0\x60\xf8\x2a\x29\x71\x78\x69\x43\xd8\xbf\x3d\xcf\x17\xfa\x5a\x17\xde\xa0\x73\x44\x0a\xe8\x31\x2b\x44\x96\x39\x3f\x2d\xfe\x98\x93\xf5\xd9\x3f\xb0\xdf\xe9\x32\xf7\xee\x99\x9a\x3d\xf1\x59\xe3\x7b\xf6\x9d\x02\xb0\xfb\xa3\x37\x61\x49\xa3\x0d\xe7\x86\xdd\x1f\x54\xe6\x8a\x5e\x50\xa8\xc4\x60\xa9\x80\x1c\xb2\x69\xc6\x13\x0c\x52\x88\xee\x1c\x19\xee\x3d\xf5\xa3\x7b\x6b\xbb\xa3\x9b\x7a\x7f\xf0\x5a\xd4\xf0\xbd\xa5\x44\xcb\xa9\x61\x1f\xfe\x37\x4f\x15\xaf\x86\xac\x61\xb7\xfd\x58\x2a\xfb\xb4\x0e\xa1\xfc\x16\xe8\xd9\xfb\xe3\x88\x5e\xbe\x3f\xf9\xf6\xe4\xf4\xc8\x8e\xf5\xdb\x63\x3b\xea\x0a\x25\x3c\xf5\x94\xd0\xbf\x49\x23\x12\xa6\x42\x0b\xaf\x14\x6a\xcc\xec\x49\xe7\xa9\xa9\xe0\x73\xc0\x88\x70\xcb\xed\x25\xf6\x50\x3c\x04\x91\xe3\x0f\xc6\x93\xb6\x67\x14\x28\xb2\x2c\xd8\x37\x13\x9d\x8b\x6f\xa2\xe6\x5b\xde\xbb\x96\xda\x8f\x93\x0a\x16\xd0\xc5\xa5\xb7\x77\x6b\x1d\x69\x36\x15\x69\x63\xb4\xcb\x12\xd9\x73\xd1\x3b\x21\x58\x59\x28\x40\x45\x88\xf1\xaa\x0b\xcd\x32\x51\x40\x4c\x01\x41\x97\x80\xfd\xc4\xf6\x15\xe0\xb6\x5c\x81\x43\x26\xe1\x5a\x86\xf3\xde\x10\x33\xb2\xac\x4a\xc2\x5f\x09\xdb\x7b\x45\x8d\x04\x68\xe6\xd8\x09\xe0\x81\xfb\x7c\x6a\x0f\x6c\x3f\x10\xf6\x94\x87\x11\x82\x71\x27\x7e\xb7\x01\x44\x33\xc4\x87\x00\x98\x7e\xcd\xcb\x69\xd7\x1e\xc2\x7d\xe0\x8b\x48\x19\x2c\x01\xd1\x0e\x55\x27\x4f\xbb\x53\x0e\x4e\xf9\xd9\x54\x98\x4e\xe5\x6b\x1e\xc5\xef\x45\x4b\xf7\xbb\xad\xc1\xa2\xb3\x0b\x56\xe2\x45\xd0\xaa\xe3\xe0\x23\xe7\x51\xde\x76\x04\x6d\xad\x10\x76\x7d\xea\xa3\xdd\xf6\x82\x61\x4c\xce\x92\xdb\xf4\x8b\x0b\x4e\x8c\x0c\xe9\x08\xe9\x4a\x21\x49\xc0\x2b\xbc\x57\x98\x24\xfe\xb8\x3e\xae\x3d\x3b\x01\xe5\x35\xd4\xd8\x6d\x73\x55\x9e\xcc\x65\xc6\x4d\x21\x93\x1f\x32\x9d\x3c\xdc\x16\x3a\x9f\xdb\xa0\xd6\x8a\xf5\xd9\xaf\xb7\x73\x9d\x55\x62\x38\x97\x29\x75\x4d\x2f\x57\x16\x45\xb1\xb3\x5f\x6f\xd9\x85\x34\x0f\x71\xd1\x09\x3e\xe7\x59\xe7\xae\x5a\xcf\xa1\xc1\xe0\x4a\xd2\x39\x5d\xfa\x97\xf2\x88\x1f\x21\xe0\x62\xfd\xe4\x26\x0c\x61\x3a\xc1\x2d\x32\x7f\xe2\x4f\x46\xe0\xe8\x07\x76\xf4\x06\xd6\xb1\xf1\x0a\xf0\x7f\x96\xb9\xb0\xb3\xd8\x7c\x99\x5d\x0f\xed\xd7\xd6\xbd\x51\x5f\x50\xfb\x9c\x5d\xf0\x82\xe3\xba\x62\x41\x1e\x0a\xd6\x80\xb5\xb3\x6b\x36\x00\x12\x46\x25\x91\xc2\xd9\x5a\x3c\xbb\x8f\x72\x5e\xac\x5c\x6f\x76\xb6\x87\xf5\x66\x67\xdf\x68\x9c\x1d\xfc\xe0\x32\x34\xb7\x9f\x60\x22\xa6\xe3\xe1\x9c\x89\xab\x7d\x06\x90\x98\x8e\x3f\xde\xb6\x9e\x1a\x36\xaf\xd2\x06\xfb\x8c\x7d\xbc\x6d\x98\x0b\xdc\x06\x33\xe6\x39\x65\x1b\xa6\x87\x86\x65\x72\x28\x0a\x39\x59\x70\x18\x13\xa9\xd2\x2d\xb2\xce\xce\xe1\xf5\xf6\xb3\x81\xe6\xd5\xd9\xe0\x08\x1c\xa9\xf3\xf7\x98\xbb\x1d\xc1\xd8\x2c\xba\xd1\xd5\x0b\xdd\x78\x69\x49\xc2\x36\xae\x94\xc9\x64\x66\x7e\xcf\xba\xf8\x95\xee\x34\x3d\xb9\xb9\x3c\xbb\xf8\x74\xd9\x9b\xa4\x0b\x16\x04\x12\xac\x3e\xf1\x39\xd9\xa1\xfd\x9a\xb8\x1e\xda\x2f\x8b\x7b\xa3\xb6\x32\xfe\x31\xed\x2b\x18\x0f\xa6\x7a\x5a\x66\x28\x3c\x49\x43\xcb\xb6\x60\x2a\x46\x6e\x3e\x89\xdb\xab\xf6\xc3\xbf\xbd\x62\x47\xe7\x9e\xfd\x50\x70\x27\xbb\x52\x85\xc8\x87\x3c\x11\xc7\xf1\xb4\x88\x6e\x7a\xc2\x3d\xe6\x2a\xcd\x1c\x17\x0b\xb9\xab\xb6\xcf\x34\x97\xe0\x51\x3c\x8b\x0d\xd6\xc7\x0b\xae\x65\xaa\x9f\xd4\x13\xcf\xd3\xb3\xfe\xd5\xc6\x93\xbe\x08\x7d\xb4\x9e\x7c\xf4\x4e\x3c\x4d\x37\x1c\x90\xf2\xf8\x40\x97\x85\x0f\xed\xdb\x6c\x33\xc1\xa1\x70\x21\x37\xbf\xaa\x97\xd4\x41\xeb\x99\xb9\x17\xaa\x87\xb2\x10\x93\xa9\xce\x79\x3e\x63\xa9\xcc\x41\xf7\x9c\x2d\x25\x3b\x5b\x33\x56\x98\x78\x2a\x17\x98\x8f\x86\xc9\xc6\x0b\xf2\xf1\xbc\xf5\x52\x7c\x3c\xaf\x2e\xc2\x47\x39\xc8\x05\x3b\x1f\x73\xa5\x44\xf6\x02\xc2\xc8\x82\xb9\x66\xe2\x79\x4e\x98\x5c\x73\xce\xbe\x8b\x36\xb3\xf6\x8d\xab\xb3\x1f\x09\x25\x72\x99\xd4\x93\x6a\xfc\xf4\xc1\x47\x85\x55\xe6\x4e\xfc\x52\x60\xc0\x12\x5c\x71\x91\x50\xcc\x2d\x96\x64\x5c\x38\x5b\x9d\x3c\x6c\xc1\x9a\x3e\xe2\xfb\x6b\xcc\x16\xda\xd7\x36\x9a\x1e\xd6\xb9\xd3\x92\x8d\x25\x5f\x5b\x84\xc6\x68\x77\xd5\x75\x44\x38\x9e\x1e\xf9\x83\xf4\x19\xac\x71\xdf\xbc\x10\xa3\x44\x84\x74\xdb\xad\xe4\xc6\xbf\x9e\x5f\x56\x7b\x6a\xbd\x38\x73\x6f\x56\x97\xe9\xaf\xe7\x97\x6f\x55\x2e\x1f\x25\x22\xe4\x81\xa5\x76\xf5\x9a\x17\x59\x16\x37\x62\xaa\x37\x5f\x5a\x7c\xbf\xfd\x82\x62\xfb\xda\xc5\x92\x50\x39\x4f\x1b\x09\x64\x15\x23\x98\x42\x80\x52\x2e\xf0\x5a\xf5\xd8\xc5\x65\xff\xe6\xf2\xfc\xec\xee\xf2\xe2\x03\x73\x3d\xe1\x99\xcb\x45\x42\xa0\x9c\x3a\xdc\x43\x94\x25\x88\x3d\x93\x9d\xd6\x7d\xab\x43\x62\x24\x57\xcc\x13\x7c\x89\x1e\x03\x76\xa5\x64\x11\xf8\x3a\x01\xd2\x68\x57\x4a\xd2\xbe\x4d\xd7\x7a\x24\x11\xd0\x46\x39\x21\x7a\x2c\x6a\xbd\x85\x04\x99\x10\x02\xbe\x60\x27\xd0\x7e\xb7\x85\x88\xfd\x57\xd7\x43\xfb\xdd\x70\x6f\xd4\x8e\xb5\x7f\xbc\x9e\xa8\xdd\x4a\x2e\xa5\x03\x7a\xe2\xe7\xbb\x4a\x32\xb5\x9f\xed\x37\x14\x5d\x6d\xbd\x2e\x3f\x52\x07\xad\x97\xc5\xbd\x50\x2f\x1c\x4d\xd9\x3c\x76\xe7\xa1\x5c\xab\xce\x23\x61\x20\x5e\x24\x77\xc1\x1d\x35\xc0\x56\xd9\xac\x7e\xd1\xa3\xb4\x00\x17\xa8\x00\x4c\x06\x60\xa9\xc0\xb7\x0b\x20\x84\x98\x45\xc9\x47\x18\x1f\x41\xc5\xa0\xd9\x34\x97\x8f\x32\x13\x58\x7d\x43\xaa\x51\x84\xec\xe9\x82\x49\x21\xb5\x45\xcc\x8d\xcb\xee\x93\x29\xc2\xd7\x29\x28\xed\xfa\xf3\x1d\x53\x02\xbb\x6b\x2e\x48\xba\x0e\x01\xb2\x1f\x8c\xeb\xcc\xd6\x30\xb8\xcd\x36\x52\xfa\xd5\xed\x3a\x72\x3a\xb4\xae\xa9\xc8\xf8\xec\x15\x69\xf7\xa2\x6b\x00\x0b\xb1\xea\x0a\xb4\xb0\x1e\xe2\x6a\x50\x22\x5e\x9c\x87\xeb\x6b\xd9\xc1\x90\xab\x19\x89\x9b\x32\x1b\xfd\x68\xd9\xb8\x78\x3a\x21\x78\x9b\xae\xed\xaf\x4b\x31\x3d\x27\x60\xb1\x3e\xf9\x13\xfc\x67\x03\x4b\xe9\x16\x14\xf0\x7a\x0d\x0b\xc3\x75\xcd\xbc\xa0\xd8\xf5\xda\xb6\x85\x6d\xef\x88\x9d\x6b\xe3\x22\x4c\x6b\x38\x23\xe7\x19\x97\x93\x8d\x97\xa5\x8e\x5a\x02\xbd\xb5\x5e\xa8\x95\x6f\x57\xc9\x64\x54\x40\xc4\x5e\x9f\xc6\xb7\x2b\xce\xe5\xe0\xe0\xd8\x74\x39\xc3\x6a\x75\xdd\xca\x86\x47\xf8\x24\xb1\x9f\x5d\xb4\xd8\x63\x5d\x68\xb5\x23\x59\xb3\xdf\xd0\x59\xfb\xa5\x6e\x78\xb9\xba\xba\xd8\xe2\xdc\xa3\xe2\xc7\xc9\xfe\x56\xca\x5b\xcf\x90\xb4\x38\x9d\xee\x49\xe7\xdb\xea\x5c\xfd\x4a\x37\x6d\x66\x5f\x79\xa1\xc6\x7c\xe9\xb7\x8d\xec\x65\x0b\x2b\x05\xfe\x37\x84\x8b\x6e\x3e\x43\xd7\x43\x7b\x56\x54\x88\x09\x55\xff\xcc\x32\x7b\x0b\xb4\x0a\x8a\xa4\xa1\x9c\x79\xd3\x21\x13\xd8\x84\x4f\x0d\xfa\xc1\x63\xb3\x4a\xf3\x6c\x7e\x2f\xf5\x60\x56\x6c\xbe\x5b\x7f\xc7\xf7\x5b\xcf\x84\xda\x57\x77\xc9\x3d\xdc\x85\x85\x36\x1f\x6c\xbe\x31\x37\x3f\x5c\xb4\x9e\xc8\xcd\x0f\x17\xd5\x49\xdc\xf0\x54\x1b\x06\xbe\x18\x76\x21\x16\x58\xcf\x77\x26\x06\xe7\x83\x95\xa6\x59\x93\xf0\x4c\x5c\x7d\xde\x1c\x10\x16\xdf\x6f\xbd\x22\xd4\xbe\xba\x2a\xee\xe1\x3c\xb8\xc8\xa2\xab\x18\x27\xfa\xeb\x54\x2c\xca\xae\xc3\x33\xbf\x05\xda\xad\x7d\xbd\xfd\xdc\x10\x95\xa2\x32\x35\x87\x54\xb1\xc2\x3e\xb9\xb5\x44\x4c\x33\x6d\x5e\x05\x6c\xab\x37\x97\x7d\x9a\xc1\x63\x96\xae\x85\x47\x23\xc8\x9b\x81\x64\x76\xb3\xc1\x8f\x66\x3a\x16\xce\x1f\xba\xf1\xf4\x7e\xa1\x5e\x10\xe1\x72\x2d\xae\xfa\x4b\x3c\x80\xea\x5c\x1f\x6f\xe1\xa7\x6d\xb9\x4a\x4b\x37\xfb\x0e\xdd\xea\x48\x98\x96\x38\xd7\x1f\xa3\x66\x71\xfa\x3f\x9b\xf0\x29\xe0\x6d\x40\xf4\x6a\xce\x9f\x18\xf8\x6d\x59\x2a\xa8\x02\x0e\x41\x95\x44\xe6\x8a\x95\xbe\x74\x7c\xb7\x49\x47\xaf\x0d\x2a\x34\x74\x81\x0e\x53\xf8\x1b\x43\x5e\x1c\x50\x70\xd5\xf2\x82\x11\xc0\x95\xf2\x3c\x76\x0a\xa0\x71\xbd\x4c\xd9\x70\xe5\x33\xef\x43\x9a\x89\x0a\x38\x15\xcb\x04\xda\xa9\xde\x71\x64\x46\x1d\x48\x22\x5a\xea\xdd\x1c\x24\xc0\x1a\x5a\x19\xa4\x01\xad\xaa\xc7\xc8\x3e\xf1\xe7\xe8\x97\x0a\x86\xcc\x7a\xa7\x07\x7a\x6a\x71\x78\xe0\xd8\x44\x8a\x6b\x38\x27\x95\xe4\x6f\xba\xca\x21\xc5\x8c\xee\x71\x8f\xa1\x52\xac\xb4\xb7\x7c\xb0\xc3\x0f\x87\x1b\x1c\x21\x1c\x30\x15\x76\xa8\xa6\x47\x37\x8d\xbb\xde\xbc\x0e\xa4\x0c\xbf\x13\x22\xaf\xab\x16\xe1\xcb\x78\x39\x71\x43\xc7\xd3\x25\x34\x5f\x0a\x01\xe4\x33\xc6\x73\x5d\xaa\x94\x92\x8a\x7d\xe6\xe2\xa7\xda\x87\xaf\x09\xba\x14\x81\x79\xaa\x25\xad\x06\xa2\xe0\xf6\x10\x9f\xf6\x4e\xdf\xbd\x54\x31\xfe\xf9\x1a\xf7\x01\xfd\x05\x0f\xd0\xcb\x21\x75\x7d\x22\x62\x6e\x9b\x77\x5d\x4c\x2b\x16\x26\x81\x47\x80\xd8\x15\xa5\x21\x1e\x21\x9c\x97\xce\x63\x20\xb1\xe3\x6a\x86\x2e\x16\x0f\xd9\x04\xa5\xab\x1c\x6c\x70\xde\xe9\x60\xc3\xc1\x08\xc7\xdd\x1f\x8b\x43\xb3\xe4\xe8\xc7\xc3\xbe\x3f\xb8\x3f\x60\x47\x8f\xce\x5e\x94\x6b\x5d\x1c\x6f\xb0\xf0\x34\x89\xcb\xe7\xe9\xaa\x94\xe9\xcb\xe7\x29\x57\xa9\x48\x91\xd8\xef\x68\x46\x3f\x88\x31\x7f\xb4\x2a\x93\x9c\xc8\x8c\xe7\x19\x44\x96\xdf\xe2\x98\x20\xd4\x55\xa8\x47\x99\x6b\x28\x7e\xc6\x1e\x79\x8e\x41\xbd\xde\x38\x61\xd8\xff\x73\xf4\xcb\xd9\x0d\x80\xa9\x1c\xbb\x6a\x48\x38\xca\x00\x31\x10\x8f\x24\xea\xae\xc5\x72\xba\x91\xd8\xd5\x81\xfb\xea\x46\x66\xbf\x34\x29\x0b\x2c\xe1\x2c\x9e\x93\xac\x34\xf2\xb1\xf5\xb9\xdf\x90\x69\x04\x0a\xbb\x1b\x9e\x71\xad\x53\xd1\x50\x13\x64\x01\x06\x59\xd4\xd8\xe3\x4a\xc5\xf8\xf7\xc0\xe5\x33\x39\x91\x96\x8a\xf3\x82\xca\x09\x47\x82\xb7\x4b\xed\xf0\x91\x7f\xf6\xc0\xb4\x60\x2c\xd1\xe2\x6c\x68\x4e\x8c\xd2\x09\x97\xeb\x90\x2e\x48\x3a\xca\x41\xb3\xda\x3a\x24\x68\xcc\xcd\xd5\x05\xc5\x4e\xc4\x4e\xe1\xa3\x71\xb9\xc9\x26\xb1\x1c\xb5\x23\x34\xaa\x84\x56\x7a\x8b\x08\xe3\x99\x86\x52\xbd\xc5\x98\xb8\x4c\x40\x6f\xa4\x3d\xa9\x62\x95\x2f\x46\x8e\xde\x5d\x58\x51\x34\xb3\x65\x7b\x11\x47\x5e\x87\x00\x94\x10\x53\x94\xf2\x82\x53\x65\xa6\xc5\x85\x6f\x76\x1c\x55\xb3\xd5\xd0\xa3\xb1\xb4\x1b\xfc\x4e\x34\xea\xad\x86\x4c\x1a\x75\xcb\xd1\x42\x44\xc0\x59\x02\x79\x88\x77\xfa\x41\xcc\x09\x54\xeb\xd6\x7f\x8b\xfb\xda\x72\x1e\x73\xfd\x2d\x99\xd4\xd6\x17\x78\xb9\x8a\xdb\x12\x07\xb6\xa6\xd2\xee\xa1\x5f\xa3\xb9\xb4\x92\x6b\xd0\xfc\x81\x25\x7b\xae\x2e\x56\xd5\xbc\xa2\xb0\x3e\x2a\x5d\xfc\x03\xc4\xf7\x7c\x82\xea\xf5\x20\x79\x1c\xdd\xf6\x7f\xf8\x74\x6c\x0f\x0b\x78\x8c\xaf\x2e\x9a\x8b\xd4\xc5\xdf\xdc\xb0\x4c\xb9\xa9\xf7\xb1\xdb\x91\xab\xcd\x46\x85\xa7\xb0\xad\xb4\x8b\x1e\x58\x48\x4f\x04\x26\x5a\x3b\xcb\x8f\x93\xf4\x61\xb7\x92\x52\x34\xbc\x6d\x45\xa3\x5f\x05\x80\x93\xa6\x7d\x9d\x3a\x71\x67\x05\xec\xc2\xdd\x58\xb0\x27\x78\x0b\x73\x89\xb3\xcc\x99\x40\x10\x28\x21\x65\x0b\xfa\x74\x85\x95\xc1\xd5\x0f\x90\x68\x53\x91\x77\x11\x77\x8f\x72\xc1\xa1\x17\x7b\xcb\xb0\xd6\x55\x4e\x95\xbc\x8f\xcc\xf1\x6a\x3a\x30\x5d\x38\x03\xb6\xa6\x03\xa8\xda\x4f\x1b\x09\xaa\xc7\xce\x20\x58\xd4\x55\x71\x00\xe0\x88\x4e\xe3\xa5\xa9\xa6\xa1\xe3\x42\x2e\x30\x41\xe2\x8f\x2b\x4e\x20\x36\x9a\xfb\x54\x54\x7c\xb0\xfe\xcd\xda\x42\x75\x6a\x60\x8e\xdd\xd3\x77\x75\x5d\x7a\xc3\xbc\xe1\x96\xa7\x99\xa6\xd9\x59\xbc\x95\x5b\x1f\x72\xa9\x52\xfd\x64\x6e\x45\x52\xe6\x58\x72\xa4\x10\xcf\x05\x62\x7d\x2e\xab\x22\xb3\xf4\x3d\x6f\x8e\xa1\x56\x5d\x5f\x09\xdd\x97\x8b\xc2\x4a\x3f\x1e\x21\x7a\xf5\x19\x1e\x4d\x0c\x3f\xf7\x6f\xdc\x4e\xc5\x5c\xbc\x6c\x3d\x14\xea\xd3\xed\x59\xf5\x05\x26\xa1\x16\x5c\x8e\xf1\x33\xf6\x77\xc6\xd3\x89\xc4\x2a\x23\x4f\x62\x30\xd6\xfa\x81\x1d\x39\x47\xc0\x48\x16\xe3\x72\xd0\x4b\xf4\x24\xf2\x09\x74\x8d\x1c\x99\x93\x27\x9a\x96\x1d\xd3\x31\x93\x2a\x93\x2e\x94\xcc\x4e\x3c\x02\x3d\xc1\x8f\x84\x89\x82\x3a\x41\x29\x51\xc4\x39\xe7\x87\x09\x36\x94\x4d\x93\xa2\xe7\x97\xa9\x05\xe7\x58\x30\x86\x5a\xea\xda\xc2\xf9\x20\x22\xf8\x26\xa6\x9e\x52\x9d\x99\x9f\x8d\xc8\x5b\x8c\xd1\xd2\x56\xd7\x94\x85\xa3\x65\x3f\x9e\x97\x78\x4b\x01\x1e\x08\x4a\x5d\xcd\x5b\x9e\xa9\x2a\x68\x55\xd3\xb7\x4d\x4a\x63\x95\xa1\xb8\x2e\xb9\x9c\x58\x2e\x3a\x11\x05\x07\xc9\xb0\x26\x7f\xb0\x4f\x7c\xc6\x78\x66\x1c\x68\xb2\x7d\xa3\xaf\xd3\xda\x45\x80\xcc\x4a\xfa\x75\xa0\x8b\x31\xab\xfd\x0e\x17\x60\xfe\xb5\x0a\xa4\x56\x3c\xa6\xfa\xeb\x05\x14\xb2\x9b\xe6\x22\xb1\x5b\xd1\x1e\x7e\x7c\x53\x89\x36\xd4\xa6\x7d\x3c\x1d\x88\x82\x9f\xf6\x5c\x21\xb3\x25\x34\xc2\x35\xa9\x39\xe7\xa4\x1a\x65\x82\x65\x7a\x04\x88\x05\xf7\x07\x54\x2c\xd0\x8a\x7a\xae\xe0\x23\x81\x17\xb7\x2e\x3c\xc5\x5b\x96\x37\xe6\x71\xd9\x61\x30\x48\xb8\xe2\x68\x88\x5b\x54\xbd\xbe\xde\x9c\xca\xc1\x4b\x58\x88\x7c\x9a\x0b\x50\xa6\x93\x44\xe7\x31\x0e\x68\x95\x8b\xb8\x79\xdf\x66\x32\x11\xae\xfa\x9c\x95\xc4\x1d\x44\xc5\xb9\x56\xa6\x9c\x88\x9c\xcc\xa7\x98\x39\xe2\x81\x4c\x0a\x2a\x38\x6b\x25\x08\x3f\xde\xc8\x44\x6e\xf7\x1f\xcf\xb7\xcc\x99\x7e\x52\x2c\xe1\x53\x3e\x90\x99\x2c\x00\xba\x29\x98\x65\x1d\x15\xe6\x05\xcb\x04\xb7\x02\xba\xf2\xc3\x01\x8b\x9a\xb2\xa2\x3e\x90\x43\xae\xd8\x3c\x6f\xdb\x29\x90\x56\xe5\xa7\xc5\x45\xb3\xcd\x22\x7f\x6a\x62\x17\xb7\xce\x95\x58\x2b\xf1\x65\xf1\xe1\x3d\x0f\x9d\x2e\x93\x65\xc2\xb7\x43\x5a\xf8\x02\xab\x44\x63\xcd\x31\x7f\xc8\x16\xc7\xc3\xb6\xb0\xb7\xbb\x66\x8d\x67\xd7\x9f\xd5\xb8\x58\xe6\x00\xeb\x52\xe2\x51\xab\x54\x02\x2c\x34\xe0\xeb\x48\x35\x2a\xa5\x19\x47\x3f\x80\xe9\x16\xe0\x3a\xd0\x4c\x74\x24\x7a\xa3\x9e\x3d\x7d\x17\xd7\xb7\x18\xd8\x75\x6c\x15\xc3\xac\x00\x64\xd7\xb8\xc6\xaa\x4c\xc6\x58\x8e\xd5\x85\x81\xf9\xf1\x06\x63\x6f\x04\x51\x31\x2c\xd5\x48\x0e\x32\x41\x5f\x98\xb8\x2e\xcf\x1c\x86\x09\x7e\xf3\x98\xd4\xd0\x29\x37\x06\xc6\x00\x88\x49\xec\xe8\xe6\xe3\x39\x3b\x3d\xfd\xf6\xfd\x31\x96\x59\xc5\xca\x01\x1b\xe0\x5d\xf2\x7c\xf4\x7a\xb5\x9b\xfc\xd7\x10\x3c\xb0\x16\x58\x17\x79\xdf\x09\x39\x00\xb4\xa7\x0a\x64\x5b\xbc\xeb\xcb\x61\x68\xea\x13\x7a\xd1\x42\xe0\x71\x19\x54\xbc\x1e\x3c\x1f\xc8\x02\xb2\xab\xfc\x6f\x95\x1b\xd3\x20\xfe\x57\x48\xb1\x01\x4c\x9c\x13\x64\x85\x53\x2e\xf3\x40\xd3\x6c\x2f\xe1\x2d\xc4\xc4\xc1\x9e\x7b\x3b\x88\x75\x45\xf4\x9d\x50\xd2\xd7\xde\x27\xa9\x92\xac\x4c\x05\xf8\xda\x11\x7e\x4a\x0f\xa9\x82\x6f\x3c\x42\x17\xf3\x8d\xad\x0d\x02\x74\x10\xaa\x02\x98\xc3\x43\x50\xf1\x50\x67\x99\x7e\x42\x35\x27\xcb\xd8\x83\xb2\x74\xfc\x41\xcc\xcc\x07\xf6\x0d\xab\x0e\xde\x5d\xa3\x0f\x91\x6c\x50\x45\x2d\xae\x12\x06\xc4\x6b\xbf\x57\x2c\x92\x75\xdd\xd2\xda\xd1\x50\x09\x51\x1a\x2c\xdd\xcd\xe0\xc1\xab\xb0\x32\xdb\x4b\xc0\x24\xea\xdd\xab\x6f\x02\x72\x50\x75\x94\xff\xd4\x6a\xc9\x08\x01\x1c\xc6\x0f\xc7\xf6\xba\xe9\x88\x5a\x0e\x27\x17\x23\xa9\xd5\xe2\x01\xe1\xef\xbb\x1f\x52\x33\x05\x9a\xab\xc8\xde\x52\xfd\x0b\x62\xcd\xa6\x6a\x5e\x2b\xd6\xb7\x5a\x82\x0b\x8d\x17\x15\x0c\xf5\x2c\x92\xea\xdc\x06\x2a\xd5\xc2\xab\xc3\xd3\x55\xde\x5e\x68\x53\xd9\x43\x08\x24\x89\xc8\x21\x95\xf0\x9c\x72\x32\x21\x5a\xd1\x58\x3e\x0a\x56\x60\xc1\xee\x4e\x55\x68\x7b\x1a\xf3\x02\x50\x7e\xc9\xaa\x69\x45\x26\xae\xf8\xc8\x99\x05\x02\x2d\x3a\x63\x4a\x66\x73\x67\x88\x2b\x56\x2a\xbc\xb5\x96\xd5\x0b\x40\xf0\x01\xf3\x4c\xc2\x0d\xb9\xc3\x90\xed\xd2\xd9\xf1\xe2\x23\x8e\xba\xf2\x32\xe3\x06\x7c\xd6\x8b\x00\x9b\xe7\x5d\xcf\xbb\x17\xe3\xfb\xd5\x8a\x1b\x8b\x0e\x02\x94\xe9\xad\xc6\x2f\xdb\x27\xa5\x87\xef\xa8\x0a\xbf\x6d\x00\x6e\xa6\xfd\x5c\x17\x3a\xd1\x59\x0b\x05\x10\x10\x6b\x13\x64\x21\x53\x7a\x8d\x60\x6e\xec\xf6\xeb\xbc\x2a\x0b\x21\x95\x35\x76\x95\x55\xca\xf3\x34\x66\xb1\x84\x9b\x38\x53\x05\x7f\xee\xb1\x9f\x55\x77\x9a\x8b\xa1\x7c\x16\x69\x54\xf2\xc9\xce\x32\x7f\xa4\xa4\x9d\xab\xb3\xeb\xb3\xd0\x93\x4b\x7b\xc4\xc6\x47\xdc\xb0\xa9\xc8\xd9\xcd\xc7\xf3\xee\xf7\xef\xdf\xff\x19\xd4\x3b\xcb\x8b\x3e\x9c\x9c\x3c\x3d\x3d\xf5\x24\x57\xbc\xa7\xf3\xd1\x09\x37\x46\x8e\xc0\xe7\xec\xab\x0a\x77\x9d\x54\x75\xad\x55\xd7\xf7\xef\x66\x57\xa9\x74\x5f\x1b\xa2\x29\x93\xb1\x3d\x3b\x93\x59\xa2\x27\x53\xae\x66\x60\xac\x98\xcc\xba\x49\x69\x0a\x3d\xe9\xba\x3e\x5e\x2a\xfc\x23\x36\x0d\xf8\xe5\x3f\xcb\x32\xf8\x8b\x90\x16\x6b\xca\x10\xe9\x3b\x80\x66\x47\x99\x2b\x98\xde\x42\x28\xd3\xd5\xd6\x90\x09\x68\x79\x35\x45\xcf\x54\x64\x24\xe3\x2a\xf8\x13\xa2\xbc\xa3\xc8\x5e\xb3\x27\xdf\x51\x0f\x46\xf3\x7f\xff\xab\x87\x1f\x0a\x55\x58\x84\x04\x09\x17\x8b\xb1\x20\xcc\x2d\x61\x14\xeb\xdc\xcb\x9b\x94\x69\x13\x84\x4c\xcb\xa0\x9d\xbf\xb7\xa2\x3f\x7d\xff\x9e\x25\x63\x9e\xf3\xa4\xb0\xd7\x3e\xd3\x6a\xd4\x73\x4d\x41\xec\x45\xa0\xd8\x4c\x3f\x01\xa4\x97\x11\x08\x5f\xab\x2c\x95\x90\x49\xfc\xaa\xce\xd9\x61\xf7\xd0\xbf\x6c\x0a\x4e\xa5\xb1\x85\x22\x69\xc9\x61\xdf\xce\xbd\x1c\xd0\x0f\x1d\x12\xff\x9a\x78\xdb\xb5\xa4\x81\x16\x47\x00\xca\xe3\x04\xcc\xbf\x2a\xf1\x5c\x54\x44\xbf\x43\x47\xc4\x55\xe4\xca\x85\x1d\x49\xe2\x2a\x9b\x07\x90\xa9\xa0\x73\x37\x2a\xc0\xcc\x1b\x16\x1d\xc1\xdd\x39\xac\xe3\xb4\x3d\x75\xba\xea\x2f\x24\x4a\xce\x95\xf6\xf3\x45\xbf\xc3\xee\xce\xfb\x1d\xbb\xcb\xb7\xe7\x77\xfd\xca\x8e\xdd\x9d\xb7\x2e\x96\xb4\x7b\x0e\x80\x04\x7b\x35\x0b\xc0\xab\x59\x35\xe9\x78\x00\xe7\xa2\x52\x93\x1e\xbd\x3f\xce\xa8\x13\x59\x74\x10\x27\x8c\xa0\x56\x1d\x29\x2d\x40\x18\x23\xfd\xd5\xeb\x83\xd5\xcf\x92\x94\xde\xf1\xc8\xe0\x01\x5a\xd9\x03\xfb\xd3\x52\xff\xb7\x86\xd2\xfd\xe8\xd8\x4d\x4b\xaa\xd1\x38\x2c\xb3\x6c\xae\x30\x7e\x7b\x0b\x53\x0b\x7f\x6a\x6c\xef\xa9\x16\xe9\x73\x28\x64\xce\x04\x93\xf0\x3c\x97\xce\x12\x2c\x4d\x75\xaa\x48\x49\x6b\x06\x20\x2b\x8b\x06\x3a\x3a\x88\x94\x6d\x84\xa9\xad\x86\x00\xca\xc9\xa4\xc4\x1a\xff\x7c\x08\x40\x82\xb9\xa0\x0a\x7b\x77\x15\x15\xc4\x8d\x07\xcd\x4e\x80\x1d\x8a\x52\x5d\x36\x0b\x9e\x5e\x4b\xf7\xae\xfa\x8f\xdf\x7d\x60\x37\xd5\xbc\xcb\xfe\xe3\x77\xec\x0c\x7b\xe8\x61\x9b\xef\x1b\xda\x7c\x1f\xb7\xf9\xf8\xf7\x8b\xeb\x6a\x1b\xf6\xb1\xcc\xb2\x19\xfb\x7b\xc9\x33\xb4\x79\x5e\x00\x24\x2f\xdb\xd0\x75\xca\xa7\xf2\x17\x91\x9b\xd5\xa1\x9c\x67\xfd\x2b\x6a\xe8\x23\x99\x40\x65\xc0\x67\x22\x05\x7c\xc5\x09\xf7\x3c\xce\x1f\x7b\x1e\xc9\xba\x78\x28\x7b\xc0\x70\x22\x91\x2f\xd1\xea\x51\x80\xb8\x94\xe8\x91\x92\xff\xf4\xbd\x79\x0e\x05\xd0\x9a\x05\x92\x39\xe5\xd0\x5b\x3b\x1e\xc9\x3c\x17\x60\x05\x28\x55\xd4\x83\x83\xcf\x6f\xc8\x5c\x18\xc9\xc2\xe5\xa2\x24\x7a\x32\x29\x95\x2c\x66\x27\x00\xd3\x20\x07\x65\xa1\x73\x73\x92\x8a\x47\x91\x9d\x18\x39\xea\xf2\x3c\x19\xcb\x42\x24\x45\x99\x8b\x13\x3e\x95\x5d\x18\xac\x02\x11\xbf\x37\x49\xff\xe4\x33\x98\xd6\x5f\x7b\x7f\xab\x56\x2c\x7d\x20\x13\x60\x0c\x71\x48\xea\x24\x15\x44\xbf\xc6\x07\x9f\x0a\x01\xd0\x25\x58\xa8\x9a\xbf\x7b\xf7\xae\xe9\x76\xb3\x25\x56\xcd\x2d\xac\x88\x3b\x36\x81\xf2\x42\x4f\x64\xb2\x35\xee\x21\xaf\x54\x5c\x08\x27\xd7\xa9\x38\x37\x97\xb7\x77\x71\xaa\xb4\xf4\x66\xa7\x40\xdb\xc3\x99\xc6\xb5\x1e\x0a\xe2\x6a\x3e\x98\xd9\xab\x5f\x88\x58\x0a\x15\xfc\x4d\x39\x98\xc8\x02\xf1\x1d\x85\x29\xb0\x8c\xc8\x39\x57\x96\xd3\x0f\x04\x2b\xa7\x29\xea\xd6\x57\x8a\x9d\xf3\x89\xc8\xce\xb9\x69\xce\xc5\xd9\xe5\x89\x06\xe2\xd6\xb5\xeb\xb7\xc1\x99\x76\xce\xa0\x1d\x62\xc4\xa3\xdd\xf0\x93\x28\xf8\x8a\x94\x1e\x52\x08\x70\x6f\x0e\x8d\x77\x4c\x2d\xb0\xff\x81\x60\xb5\xe2\x88\xa0\xf0\x55\x65\x4e\xee\xfe\x29\x51\x3c\xe9\xfc\x81\x04\x34\x97\x0b\x3f\x98\xa1\x51\x38\x68\xdb\x0d\xb7\x12\x44\xc1\x85\x12\x3e\x84\xb2\x93\x66\xe0\xcb\x44\xc9\x62\x5e\xa9\xb7\x52\x00\x0a\x86\x44\x93\x53\x7c\x8d\xba\xc0\xd4\x51\xd4\x0d\xf0\x57\x02\x02\xb1\x7a\x3a\xfc\x44\x64\xb4\xd2\xf7\xfd\x01\x77\x8a\xc9\xfd\x41\x6b\x2a\x42\x1f\x7e\x69\x02\xd2\x8f\x2a\x39\xbe\x14\x11\x59\xcf\xe4\x04\x72\x4e\x23\x51\x5f\x65\x89\xf2\xcf\x2b\x63\x03\x78\xd8\x2e\xb1\xd5\x2e\x51\xb1\xf0\xd9\xca\x61\x1d\x11\xe0\xed\x41\x58\x30\x24\x02\xd5\xb9\x53\x27\x07\xcd\x06\x07\x68\xf2\xe8\x65\x80\x03\x5a\xf2\xf9\x05\xf9\xaf\x0d\x25\xe5\x9f\xa4\x69\x63\x30\xf1\x6d\xab\x12\xb3\xbb\x6d\xfe\x3e\xc1\x59\x6c\x11\x7e\xbb\x97\x6c\xbe\x9c\x64\xd3\x74\xf1\xe7\x0a\x7a\xac\xd8\xd8\x85\x1d\x6d\x47\x41\xf0\xf0\xbf\x92\x2b\x76\x2f\x84\x7c\x2d\x42\x88\x3d\xad\xed\x45\x10\x20\x5a\x4d\xe2\x47\x4b\xde\x82\xc7\xfe\x6d\x33\x10\x20\xeb\xbb\x63\x22\xe2\x11\x4e\xb0\xbf\xae\x8f\xcb\x6b\xce\xc1\xef\xce\x39\x0c\xb2\x0c\x79\x53\xe0\xb9\xd1\x13\x81\x1e\x2b\x67\x0c\x43\xc4\x2d\xa8\xa7\x15\x60\xa6\x52\xa1\x34\x18\x48\xf5\x44\x90\x83\xa1\x5a\x13\xab\x5e\x80\x70\x31\xb3\xa9\xa7\x9d\x34\x8d\xf9\x57\xc0\xa8\xc2\xdc\x93\x27\xcb\x01\xf8\x83\x50\x27\x43\x2e\x33\xc8\xce\x1b\xf1\x4a\xa4\x4c\x78\x40\xbc\x65\xaf\xdc\xff\x91\x58\x60\x00\xe6\x3b\xaf\xa5\x19\x37\x6d\xc0\x85\x6f\xed\x02\xa9\x8c\x29\x81\x1d\x0c\x78\xf2\x00\xf0\x27\xe0\xb9\x28\x24\x84\x2f\xcd\x50\x92\xa7\xc8\x0a\x86\x97\xa1\xa8\x4a\xa2\x3b\xb1\xe9\x86\x59\x7c\x94\xb9\x29\xee\xe4\x44\x98\x82\x4f\xd6\x4e\x69\xda\xa6\xfa\xf5\xce\xd6\x66\xc5\x0c\x7f\xe2\x5f\xf9\x04\xe7\x92\x69\x5a\xcd\x2c\xa0\x09\xdb\x0f\xb5\x81\x47\x7e\xd1\xe9\x00\x81\x87\x25\xdd\xdd\x0e\x7d\x92\x49\xae\x57\x6e\x53\x54\x5c\x5e\x4e\x20\x48\x83\x34\x7b\x1c\xb2\xa5\xe8\x43\x7b\x49\x98\x1e\xa0\x33\x74\x81\xdd\x61\x2f\x14\x7e\x2d\x42\x61\x64\x99\x6a\xfc\xa4\x95\x2e\x56\xec\x34\xe6\x01\xf0\xac\xc7\xce\xd8\xb8\x9c\x70\xd5\xcd\x05\x4f\xc1\x15\x11\xb5\xf4\x4e\xbc\x28\x58\xd2\xee\xf5\x94\xca\x10\xf7\xd8\x27\xfe\x2c\x27\x3c\x63\x99\x50\xa3\x62\x1c\xe2\x9b\x0a\x2c\xec\xf6\xf0\x03\xc6\x58\x65\x72\x90\xf3\x5c\x0a\x13\x85\x1a\xc6\xb1\x20\x14\x60\x4b\x81\x85\x25\x94\xf2\xfe\xfe\xbb\x87\x1f\x36\x43\x27\x30\x2d\x44\x22\x8c\xed\xaf\x4b\x45\x1b\x7d\x8f\xe4\xa5\x57\x09\x50\xbc\x1b\x8b\x10\x7b\xe8\x69\x80\xbd\xb2\x03\x5d\x16\xf5\x20\x17\x09\x05\xa5\x14\xfb\xec\x2f\xa7\xce\xe1\x12\x27\x01\xcd\xce\x7b\xff\x4c\x8f\x5d\xf6\x46\x3d\x76\x23\x20\x84\xe3\x56\x14\xe7\x4d\xad\xa2\xdf\x0d\xe1\x62\x48\x43\xf2\x2f\x98\x0d\xb1\xe8\xe3\x40\x24\xbc\x34\x50\xe9\x8a\x27\x05\x80\x53\x83\xb8\x8b\x82\x2e\xc6\x1e\x44\x5d\x79\x61\x73\xc1\x1a\x5b\x59\x6d\xf3\xac\xf2\x75\x56\xd8\xdd\x0c\x66\xa0\x5e\x3a\xcf\x67\x6e\xc1\x87\x3a\xc7\x68\x02\xcb\x46\x32\xf1\x4c\xa7\xc7\xad\x1b\x10\xe6\xba\xf4\xcc\x8a\x5c\x8e\x46\x96\x0a\x72\xef\xdd\x03\x10\x5b\x91\x09\x77\xc3\x68\x76\xab\x96\x80\xf6\x2e\x6c\x4a\x9b\xe2\x46\x51\x9a\x05\xed\x24\xd8\x70\xdd\x2e\x85\x33\xd4\x61\x10\xe5\xfb\x5b\x35\x4a\x8f\x50\x98\x7e\xdb\xe8\x5e\xd0\x80\xaf\x94\x29\xb8\x9a\x17\x00\xea\x38\x7d\x17\x0d\x83\x95\xf4\x6e\x3c\xba\x4c\x14\xdd\xe7\xd9\x3f\x87\x9b\x0c\xca\x40\xf5\xe4\xb5\xcf\x51\x93\x92\x78\x8b\x5d\x2d\x95\x48\x78\xc1\xa3\xd0\x73\xbc\xab\x38\x84\xf8\xd6\x44\x76\x47\x9d\x83\x91\x1c\xaa\x1a\x1e\x86\x5c\x8c\x42\x2b\x7c\x7b\x51\x48\xf1\x6a\xa7\xf7\x1d\xb9\xb6\xa3\xef\x1e\x5d\x5b\x39\x3d\xeb\xb0\x5f\x79\xae\xa4\x1a\x1d\x77\x98\x12\x4f\xe4\x64\x4e\x1c\x99\xc6\x6c\xc7\x05\xc5\x9a\x97\x2f\x7c\x4b\xab\x43\x10\xad\x5e\xd1\xf2\x40\x5b\xba\xd4\xec\x00\xb6\x80\x97\x35\x35\xac\x32\x52\xbb\x36\x55\x17\x2c\x9e\x24\x57\xd0\x7b\x6f\x93\x7e\xcb\x0a\x79\x1b\x9b\x34\x62\x94\x56\xb6\xd8\x2d\x74\x7d\x8f\x17\xf6\xb9\x29\x1d\x6b\x6b\x93\xde\xeb\x14\x5f\xb5\x4e\xb1\x8d\xa1\xf9\xa5\xd7\xca\x4f\xf7\xed\x1b\xb4\xdb\xb2\x95\x57\xb0\x62\xdf\xd6\x65\x9d\x46\xe6\x82\xad\x7c\x26\x62\x9c\x02\xa4\x95\x13\x56\xf4\x10\x45\x06\xd3\x61\xb2\x27\x7a\x58\xfc\x00\x25\xc9\x27\x6e\x4e\xa0\xb6\xd6\x74\x2a\x94\x53\x2d\xa4\x2a\x75\x69\xb2\x19\xd6\x52\xb0\x62\x3f\x80\xf4\xb6\xc1\x2e\x5a\x6d\xb3\xbc\xf6\xa1\xac\x3a\xc1\x30\xb8\x24\x8e\xbe\xc3\x11\xa3\x0a\x89\x4c\xc5\x14\x6c\x2c\x78\x5e\x0c\x04\x2f\x60\x20\xbb\xb6\x56\xda\x4f\x7c\x26\xe3\xcb\x17\x31\x11\x05\xc3\x10\xcc\x16\xc5\x03\x4f\x13\x69\x49\xac\x92\x6b\x84\x50\x6c\x20\x86\xf6\xbe\x56\x17\x66\x11\x54\x70\xc1\x57\xda\x12\xae\xa2\x33\xf3\x34\x16\xae\xb0\xac\xdf\x0b\x4b\xc9\xd5\x48\x53\xdc\xb6\x5d\x00\x33\x46\x84\xbc\x50\x43\xa6\x9f\x71\xa5\xc0\x1d\x31\xd1\x8f\x1c\xa3\x73\x4f\x7b\xa7\x7f\xd9\xad\xa4\x89\xc7\x6b\xd9\xce\xcd\x4d\x7d\x15\xed\x58\x78\x23\x9f\x0b\xa1\x0c\x50\x30\x77\x2b\x7f\xbc\xbb\xeb\x5f\xa9\x51\x2e\x8c\xa9\xa1\xb3\xcc\x55\x43\xa9\xb6\x0c\xc9\x78\x80\x7c\xed\x20\xfd\x18\x67\x94\x99\x6d\x79\x17\x55\xc8\x2e\xf3\xcc\x54\x01\x34\xa6\x0e\x04\x6f\xa8\xf3\x27\x9e\xa7\x21\xc7\xcd\xbd\xbd\xfa\x5e\x52\xcb\xf5\x15\xa7\xf9\x55\xa0\x79\xfd\x40\x3d\x2e\x3b\xd6\xd4\xa6\x22\x8a\x46\xd5\x9b\x5d\x58\x72\xe0\xf9\x3a\xc2\x34\xa4\xb4\x22\x8f\x60\x1b\xcf\x7e\x51\x64\x56\x4b\xcc\x1c\x69\x3c\x5c\x0c\x1f\x71\xab\xa3\x86\x85\x46\x11\xd8\x17\x2c\x27\x99\xa3\xc7\xce\x7d\xc0\xae\x2c\x00\x5d\xcf\x51\xdc\x28\xaf\x20\x95\xc6\x95\x91\xf1\x97\x37\xb0\x42\x48\xc5\xb7\xdf\xb8\x3f\x80\x52\x4d\x88\xe2\xf9\xf3\xcd\x4f\x8c\x87\x48\xab\xc1\x8c\xdd\x7c\x3c\x67\xef\xff\xfd\x2f\xdf\xf7\x98\x1d\xac\x71\x91\xc8\x23\xa9\xdc\xa9\x39\x3c\x39\xa4\x50\xad\x08\x37\xa1\x03\x68\x38\x53\x78\x05\xbe\x5e\x9f\x03\x06\x1e\xd3\xc4\x37\x49\x57\xe0\xc5\xb8\x45\x74\x76\x9f\x9a\xc5\x98\xad\x76\x21\x7c\xaa\x01\x8f\x2d\x93\xb0\x1f\xee\xb8\xe3\x8c\xe1\x65\xc2\x2f\xd4\xca\x9b\x40\x42\x34\x35\xea\x0c\x1f\xd8\x37\xec\xf2\x99\x27\xc5\x07\xf6\x09\xe6\x84\x9f\xb1\xeb\x09\x1b\x29\xec\x6f\xd9\xac\xc7\xbe\x61\x7d\xc8\xea\x09\xed\xb0\xa4\x1c\x14\xbb\xf2\xcd\x31\xf3\x87\x99\x69\x26\x0b\xbb\x0b\xb0\xc6\x9f\xdc\x3d\x94\xe6\x5e\x31\x96\xc2\x70\x94\xbb\xc3\x82\xa2\xee\x07\xb3\xf0\x27\x37\xd2\x00\x20\x4f\xdc\x00\xce\xbc\x21\xb4\x0f\xdb\x91\x53\x12\x28\x15\xd6\x21\x21\xdb\x77\xfc\x00\xec\x93\xc3\x93\x43\x66\xc4\x94\xe7\xbc\xd0\xb9\xed\x96\xb6\x12\xe4\x71\xdb\x11\x26\x4c\x0e\x21\x9d\xc6\x4e\x82\x49\xe0\xf4\xf9\x8c\x41\xfd\x6f\xae\xdc\x18\xba\x00\xd1\x4a\x93\xd4\x43\x36\xa5\x65\xb5\x9d\xb8\x4e\x6d\x17\x3d\x76\xad\x0b\x57\xd7\x67\x18\x18\xb0\x9b\x0a\x6d\xc6\x94\xae\x11\x66\x26\xc0\xa1\xb1\x3d\xe9\x86\x37\xa4\xaa\x7c\x00\xa3\x06\x31\x5b\x85\xd3\xf8\x31\x41\xfd\x64\xa8\xf5\xc9\x80\xe7\x7e\x5e\xc2\xf8\x67\x27\x03\xfe\x4f\xb4\x44\xa7\x5a\xe0\xcb\xf8\xaa\x6b\x30\xe0\xff\x3c\x86\x74\xd5\x2b\x67\xe8\x84\x63\x76\x4b\xd9\x2b\x1f\xb0\xc4\xe8\xf2\xe3\x07\x40\xbf\x56\xee\xb0\x23\xb0\xbf\x12\xa9\x3b\xcf\xb8\x31\xbd\x5a\xcf\x06\x8e\x68\x91\x0b\x97\x26\xc9\x11\x17\x1f\x36\x4b\xf8\x83\x0c\xab\x92\x53\x3b\xe9\x90\xba\x12\x08\x23\x28\x34\x9d\x4c\xdb\x02\x8e\x32\xae\x2b\xa8\x16\xbd\x7b\x55\xff\x20\x26\xcc\x11\x6c\x66\xa1\x5d\xe6\x80\xbf\xf7\xf4\x62\x05\x80\xa5\x79\x39\x76\x6c\x00\x72\xdc\xe5\x65\x78\xed\x4d\x99\x89\x5f\xec\x95\x6f\xc7\x70\x7d\xf3\xaa\x3e\x6e\xf5\x1a\xca\x69\xd1\xb9\x61\xc0\x70\x28\x6a\x82\x86\x6f\x40\x83\x04\x25\x14\x0b\x4f\x7c\x70\x09\x86\xf7\xe5\xbb\x77\xef\x93\xb1\x36\x05\xfc\x25\xe8\x01\xd0\x72\x78\xf0\xbf\xf1\x81\x11\x56\x13\xb2\xb4\x1d\x1f\xb3\x2e\xfd\x97\xbe\x40\xd9\xd0\xf8\xff\xb6\x99\xc7\xaf\x28\xf3\x2c\x4a\xb0\xb3\x83\x72\x5c\xa0\xe3\x0c\x35\xa4\x58\x3b\x76\x58\x52\x01\x2d\xbc\x06\x8e\x8d\xc1\xdd\x47\xe9\x1e\x33\x52\xfc\x75\xb4\xa4\x04\xea\x57\xa3\xf0\x08\x14\x15\xbc\x8e\x87\xff\xfb\x10\x12\xe2\xfe\x74\xd8\x42\x8e\x00\xf6\xb2\xca\x06\xc5\x12\x9d\x65\x84\x95\x6a\x49\x0d\xb0\x24\x02\x4d\x9d\xc6\x5a\x7c\x58\xf9\x1d\x99\x47\x56\xcb\x6c\x6b\x1b\x4b\x5a\x5e\x01\x5c\x98\x1d\x5e\x00\x1a\xf4\x92\x33\x4f\x2d\xf0\x98\x57\x97\x3c\x2f\x33\x17\xed\x0d\x02\x09\x93\x6a\xa0\x4b\x05\x36\x3c\x85\xcd\x10\xd7\x09\x42\xce\xab\x29\x65\x91\x24\x12\xc9\xa7\x67\xca\x51\x43\xc7\x9a\x11\x1e\xb6\x24\x5a\x34\x92\x8f\x1e\xfb\xd3\xf8\xda\xcc\xd9\xac\x0b\x9f\x00\xbf\xa4\x95\x6c\x3b\x2c\xd3\x3c\x65\x03\x9e\x71\x40\xe5\x70\xa9\xe3\x28\x29\x58\xc2\x79\x7b\xfb\x53\x87\xe9\xe1\x50\xe4\x98\xfb\x8a\xbc\xfa\x11\x01\x3e\x01\x88\xc1\x1e\x6e\x51\x24\x71\x69\x4b\xd6\xc5\xc4\x2c\x50\xe3\x9d\xb5\xd3\x2e\x44\xb4\x46\x21\x9e\xc1\x4e\x8d\x82\xf0\xad\xd0\xe1\xaa\xcb\xe0\xc2\xbb\x57\x7a\xec\x96\xca\x00\xe6\x22\x13\xdc\xa0\x53\xd4\x04\x27\x52\xa4\x69\xef\x2d\xb8\x6f\xda\x82\xbb\x37\x72\x7e\x2d\x46\xce\xed\x53\x7a\xbe\x80\xa9\x33\x36\x49\x34\x80\x2a\x6e\xa1\x83\x03\x46\xe3\xd2\x85\x20\x4c\x46\x2c\x08\x63\x10\x6f\x1d\xe2\x55\x49\xee\xf0\xc4\xee\x85\x97\xc5\x4e\xbc\xcb\x55\xda\xc5\x48\x94\xc5\xb6\xaa\x72\x03\xe7\xee\xe2\xf5\xc1\x0e\x57\x1c\x95\xa2\x74\xaa\x59\x05\x5c\xec\x0d\xad\xd1\x9c\x0c\xf2\x82\xf6\x6f\xbf\x98\xcd\xc6\x6f\x27\x96\xec\xd0\xf4\xbd\xd2\xc4\xb4\x52\x04\x0a\x76\x26\x5f\x6c\x27\xcb\x62\xc8\xb5\x86\x5c\x78\xcb\xd2\x00\x39\xa0\x0d\x7c\x8e\xd9\x2e\x02\xd2\x2a\x82\xe9\x4f\x3a\xe1\xd9\x3a\x81\x2c\x37\x8e\xcd\xc8\x28\x06\xe8\x46\x0c\x01\xcb\x4c\x21\x78\x5c\x84\xd6\xe1\xb9\x12\x59\x13\x7c\x8d\xd0\xda\x39\xf6\xc2\xc1\xd5\x30\x7a\xc7\xc4\xd0\x11\xb4\x46\x10\x80\x62\xd7\x89\xfe\xdd\xf7\xd9\x87\xc4\x94\x22\xcc\xf0\xe6\x0b\x1d\xfa\x59\x85\xac\x5d\xc9\x94\x8c\xa1\xb6\xe6\xed\x85\x9b\x85\x8d\xb8\x09\x6c\xc7\x8d\xca\x42\x66\x3d\x7b\xa6\x8a\xbc\x77\xa5\x8a\xcf\xf9\x2d\x7e\x75\x15\x11\x0e\x73\x73\x39\x07\x8b\xe6\xd6\xfe\xd6\xaf\x7f\xa1\x56\x04\x2b\x44\xad\x9a\x94\x0a\x47\x07\xf7\xc2\xee\x5b\x16\x76\xd7\x0a\x57\x88\xd3\x92\xe7\xb6\x77\x61\x77\xdb\x31\xe5\x7d\xbc\xc2\x5e\x94\x5f\x3b\x5e\xe1\x4d\x08\xf2\x2d\x4d\x41\xaf\x1f\xb3\xd0\x4e\x66\xdb\x75\xc8\xc2\xc2\x1b\x7e\x53\x66\xcb\x6c\xb5\x51\xab\x3a\xd6\x21\xda\xad\x5c\xb9\x4d\xe7\x68\x30\xac\x54\xa9\xb0\x22\x5c\x40\xec\x76\x25\xfe\xc8\x40\x83\x66\x1d\x12\x03\x9d\x19\x2a\xf2\xaa\x56\x5c\x60\x68\xf7\x14\x96\x2e\x60\xb6\x09\x88\x87\x54\xa7\xb4\x48\xc6\x80\x11\xae\x58\xae\xcb\x62\xce\xd7\xda\x88\xab\xea\x1d\x08\x75\x13\x74\x0b\x5e\x69\x3f\xbb\x82\xa2\xfd\xa8\x91\x21\x3b\x74\xa5\x19\xfb\xdd\xa3\xf8\xa4\x88\xe2\x13\x6a\x6d\x3a\x74\x09\xdb\x6f\x67\xa1\x67\x91\x9c\x3c\xb1\x57\x2d\x15\x8f\x92\x1c\x0d\x9e\xba\xdd\xc3\xf0\x22\x7f\x25\x7a\xd8\xae\xe2\x7e\xa5\xf2\xfd\x7e\x60\xa7\x3d\x76\xd5\x0f\xa8\x63\xe4\x0d\x8d\xbd\xa7\x5c\xcd\xad\x12\x58\x14\xa1\xc0\x20\x9f\x4e\xc1\x2f\x72\xaf\x18\x79\x60\xfa\x4e\x9c\x05\x55\xd6\x7b\x9f\x40\x4b\x73\x1c\xeb\x5e\x7d\x8b\x80\x4b\xbf\x7d\xf8\x8d\xa5\x02\x81\x60\x73\xe7\x64\xca\x85\x3d\x35\x71\x48\x7b\x15\x19\xcd\x8d\xf1\x5e\xdd\x17\x2c\x1a\x68\x2c\xac\x85\x41\x23\xea\x93\x2f\xa9\xf3\xe1\x2f\xef\xe0\xf8\x80\x77\x81\xab\x14\x3b\xf9\xf0\xdd\x77\xef\xfd\x63\x3b\xbe\x1f\x34\x9e\x14\x83\x60\x18\xd5\x64\x51\x8a\xc9\x5d\x70\x58\x9b\x1c\xd5\x70\x54\x23\x43\xfe\xdc\xb1\x73\x60\x7f\x63\x3a\x39\x15\x37\x71\xac\x0b\xc0\x19\x47\x75\xc9\xf9\xdb\xbd\x73\x34\x42\x7f\x13\xe9\xfc\x37\xee\xd5\xbd\xfa\x11\x53\x15\x14\x96\x13\x9a\xe6\x22\x91\x46\xdc\x1f\x90\x17\x1f\x98\x70\x7c\x40\xed\x85\x71\xc1\xd4\xce\xe2\x0b\x47\x4f\x17\xf3\x87\x97\xbc\x82\xf7\x07\x43\xad\x7b\x03\x9e\xf7\x12\x3d\xb9\x3f\x38\x66\x3a\x67\xf7\x07\x4f\x32\x4b\x13\x9e\xa7\xf7\x07\x9d\x45\x1f\xf3\x50\x8e\xe4\x34\x27\x54\x7c\xf7\x26\xc1\x53\xba\x8f\x7c\xd3\xb3\x9f\xc1\x4f\xe0\x61\xf2\x0d\xbd\x83\x9f\x1d\x7e\x73\x88\xfa\x0f\x9f\x4e\x05\xcf\xed\x95\x92\x85\x11\xd9\xd0\xde\x87\xe0\x51\xb9\xb8\xbe\xa5\xde\x51\x94\x44\x57\x26\x1e\x70\x0f\xce\x0f\x60\xb6\xec\xff\xe8\xd2\xae\x9f\x3d\x87\x84\xe8\x52\x1b\x5f\xf8\x04\x8e\x14\x56\xfc\x3f\xff\xd3\x8e\x18\x46\x7a\xe3\xce\x4a\x28\xf4\x3b\x7f\x5e\xe0\x25\x02\x2d\x53\xb5\x6b\xff\xc4\x67\x78\x6d\x87\xcc\xd1\x19\xda\xc7\x0e\x11\x57\xf4\xdd\x4e\xbc\x8f\xdd\xca\xe1\x96\x76\x93\x7b\x18\x8e\x3e\x6c\xd8\x58\xf0\x14\xef\x9d\xb0\x04\xca\x52\x4e\xdb\x65\x8f\x7d\x5b\xe9\x3e\xcc\x91\x08\xed\xc6\x9f\x29\x74\xf8\x12\x9c\xd6\x72\x38\x94\xcf\xec\x08\x82\x90\x1c\x07\xc1\x3d\x81\xd5\x3c\x76\x04\xc4\x2f\xb2\xfd\xc2\x06\xfa\xa4\x1d\xcc\x2e\xec\x54\x8d\x5e\xce\x97\xd4\x00\x6b\x55\x5d\x16\xb0\x66\xa0\xb5\xc1\x98\x12\x13\x8c\xc2\x15\xf4\x78\x92\x06\xf6\x49\x33\xf1\x2c\x4d\x1b\x33\xca\x97\x89\x41\x3a\xb3\x8c\x0a\xe0\x1f\x1d\x07\x87\x62\x0e\x19\xb0\x4b\x94\x14\x2a\x34\x17\x9c\x66\xa9\x56\x87\x2e\xc2\x80\xab\x19\x1e\x13\x76\x16\x57\x79\xd0\x43\x76\x48\x3d\xa2\xff\x14\x64\x97\x43\x8f\x1b\x18\xd5\x33\xa9\x62\x06\x6a\x97\x9f\x54\x68\x72\xce\x81\x16\xa6\x79\x4a\x5e\xb1\x3c\x4e\xa0\x81\x54\x23\x18\xbf\x1d\x25\x94\xf4\x00\xd7\x3f\xf4\x6e\xe9\xc9\x28\xd3\x03\x9e\xb9\x46\x0b\x0c\x31\x32\x0a\x64\x68\x61\x8d\xb9\xaa\x35\x6f\xaa\x53\x13\xb7\x71\x30\x09\xa1\x72\x1e\x50\xd0\x48\x54\xaa\xb4\x76\xaa\x3e\x12\xee\x68\xb2\x40\xc3\x02\x9a\x25\xd2\x85\xd0\x23\x1a\x00\x32\x9e\x08\x67\xd1\xf6\x1e\xbd\x5a\xda\x13\xcd\xb7\x97\xd8\xef\xfd\xc6\x80\xc0\x52\xc2\xe3\x47\x9d\xfb\x7c\x62\x53\x4d\x28\xee\xb8\xdc\x5c\x5e\x44\xaf\x80\x6d\x4c\x14\x10\xb7\xe2\x36\x17\x4d\x89\xa1\x38\x0c\xd3\x8f\x5e\x33\xc4\x02\x24\x77\xd5\x3c\x28\xcb\xf5\xc5\x44\x16\x96\xf8\x61\xb2\x8e\xa3\x6b\x94\xea\x6c\x25\xcb\xf0\x49\xe0\x05\xa1\x5a\x89\xb3\x3a\xd4\x03\x42\x9c\x59\xe4\xac\x7f\xe5\x51\xb0\x47\xca\x4a\x05\xb4\xde\x76\x91\x89\xe7\x72\x06\x8b\x11\x9f\xcb\xe0\xd3\xc5\x7d\xf1\xca\xb0\x43\x08\xe5\xf9\x83\xe5\x24\xc6\x9d\x2e\xc7\x6b\x89\xe3\xbb\x10\x04\x23\x6c\xf7\xee\x9a\xa1\xba\xed\xd1\x59\x69\x3d\x3e\x36\xb8\x4d\x3b\x68\x00\x73\xd4\xbb\x7a\x46\x74\x52\xfa\x99\x6e\x54\xf8\x28\x5b\x59\xab\xe6\x2c\x04\x87\x58\xbe\x82\xca\x87\x9b\x94\x77\x6f\x57\x7d\x00\x57\xc3\xaa\x30\xa5\x73\xa6\x34\x32\x2a\x62\x5d\x9d\x8a\x34\x05\x87\x47\x79\x55\xa5\x46\x8b\x5e\xdc\xd8\x02\xaa\xd8\x36\x06\x97\x22\x5b\xb5\x8a\x77\x3f\xdd\xfa\xc5\xa2\x3b\x56\x15\xa2\xbd\xdd\x59\x05\xb4\xd3\xa8\x4c\x91\x7d\xdf\x3e\xea\xb0\xef\xbe\x7b\x0f\x0b\xec\x91\x69\x27\x62\x32\xa0\xc2\x2a\x70\x96\x60\xbb\x1c\xe9\x0b\xd7\xc3\xee\x9e\x01\x59\x62\x16\xc4\x20\xea\xe3\x39\x92\x65\x41\x2a\x84\x80\xa9\x7a\x75\xa1\x50\x48\xc5\xcb\xbb\xc5\x38\xd7\xe5\x88\x6a\x4d\x5e\x5f\xc1\x30\xfd\x3a\x77\xdc\xed\x95\x2e\x26\x22\x5c\xf5\x61\x99\x0d\x65\x96\x39\xf1\xc3\xb5\xf0\x13\xbf\xbd\xbe\x7a\xf1\x6d\xbf\xfb\xe9\x76\x07\x91\x2e\xdb\x4b\x1b\x75\x87\xde\x22\x79\x03\x9d\x70\x4e\xe2\x58\xed\x8a\x5b\x2d\x6c\x58\x7e\xfa\x03\xf1\xd3\x8d\xfd\x36\x3f\x45\x9d\xb4\xf0\x25\xc6\xcd\x43\x9d\x96\xfa\x64\x42\xd1\x22\x3b\xc6\xae\x63\xfa\x2f\x6b\xf9\xb7\x07\x62\xe5\x36\xd8\x23\x5e\x95\xfa\x8a\x9c\x2b\x03\x57\x26\xe3\x33\x91\x33\x43\x45\xd2\xe6\xac\x20\x41\x41\x6e\x69\xf2\x58\x45\x55\xac\xb2\x40\xd5\x3a\x2b\x54\xda\x17\x7f\xf1\xaa\x0c\xd0\x1f\xfb\x99\x21\x00\x51\x22\xeb\x0d\x15\x8e\x02\xe1\x00\xe6\x1d\x2a\x8c\xd8\xfb\x7e\x42\xf4\x9e\xba\x2a\x32\x83\x95\x9c\xe7\x8b\xd8\x79\x8d\x01\x58\x85\x11\x05\xc8\x63\xc8\xe5\x16\x4b\x6f\x15\x5a\x20\x8d\x5b\x23\x20\x1f\x99\x18\x16\x4b\xea\xee\xee\xb4\x34\xd8\x02\xa7\x98\x9d\x6a\x1b\xe7\x9c\x6f\xd8\x24\x08\x52\xe1\x6a\xc7\x37\x2b\x91\x5c\x9e\x0d\x6a\x85\xd4\xfd\xa3\x93\x82\x61\xf6\xf3\xa2\xb0\x7d\x27\xd7\x65\x81\xa8\x2f\x64\x88\xb0\xe4\xd7\x53\x68\x9e\x69\x15\x0c\x1c\xee\x27\x84\x23\xb0\xdb\x2c\x14\x6e\xc1\x30\x93\x49\x61\x82\x8d\xee\x1e\x8e\xd4\xfd\x81\x53\x1f\x51\xee\x8a\xca\x6a\x44\x1c\xb3\x53\xeb\x9b\x4e\x09\xec\xb6\x33\x5b\x68\x05\x42\x1b\x4a\x3b\xb4\x14\x3f\x56\xd5\x53\xff\x12\xcd\xe8\xa5\x91\xe7\xa3\x98\xb6\xc7\xd3\xde\x55\xff\x87\x4c\x27\x0f\xcb\xae\x3d\xb6\x88\xdd\xe6\x60\xe8\x93\x49\x99\xf1\x9c\x9d\x5f\x5d\xdc\xb0\x23\x2c\x30\x7d\xfa\xef\xdf\xf6\x4e\xbf\xff\x4b\xef\xb4\x77\x7a\xf2\xed\x77\xf7\x07\x9d\xfb\x83\x6f\xdf\xbd\x3b\xfd\x90\x0e\xfe\xfd\xc3\x87\x93\xef\xbf\xbb\x3f\x38\xa6\x98\x71\xe3\x0c\x6a\xee\xe6\x4c\x75\x1a\xd2\x2d\x20\xa8\xf0\x1a\xc7\x89\x55\x94\xad\xae\x79\x68\x6c\xab\x5b\x0a\xce\xc5\x1b\x2c\x9e\x13\x31\x2d\xb0\xe2\x64\x34\x42\x3b\x28\x52\xd2\x48\xe2\x25\xaf\x8a\x27\x0b\x76\xc7\xdd\xbd\xaf\xaa\xf7\x8b\xb3\xd6\x64\xba\x0a\x8c\x01\x16\x23\xf6\x2a\xcd\xf9\x93\xae\xfa\x0c\x97\xf3\x17\x9e\xc9\xd4\xc5\x10\x23\x0d\x9b\x5f\x40\x34\x63\xd5\xd6\x70\x03\x28\x70\x58\xa5\x15\x63\xbf\xc4\xa5\xc4\xd1\x23\xc8\xff\xb0\xfd\x42\x02\xba\xfc\xd6\x53\x63\x34\x08\x22\xcc\x4e\x4c\x43\x1f\xab\xa5\xc0\x43\x94\xdf\x6c\x97\xba\x2c\x8c\x4c\x51\x0c\x80\x75\x87\xe2\xc0\xaf\x42\x1e\x5b\xba\x78\xe0\xc0\xac\xf2\xf0\xb4\xbb\xa6\x95\xcb\xb0\xe4\xb2\x56\xda\x45\x17\xe2\xc9\xee\xa0\xb3\x9b\x46\x5a\x87\x4f\x44\x02\xe7\x06\xd5\x63\xe8\xeb\x74\x8f\x80\xfb\xa6\xdd\xf7\x7b\x07\xf7\xd7\xe2\xe0\xfe\x97\x8c\x55\x5d\x42\xdb\x5a\x05\xab\xa2\x10\x1f\x25\x68\xb9\xa8\xd5\x81\x18\xf3\x47\xa9\xf3\x60\x58\xaa\x74\xbe\x8e\xf6\xb4\x43\xcf\xfb\x5c\x16\x41\xb3\x03\xbe\x4a\xe3\x17\xbb\xe0\xd7\xf0\xbe\x2f\x59\xe8\xcb\x36\x4e\xf8\x05\x6f\x2c\x92\x05\x5d\xf1\x21\xe2\x2f\x75\x51\x4f\x97\xf0\xf3\x86\xa2\x9e\xeb\x35\x52\xd0\xa0\xa2\x37\x19\x8a\x20\x1f\x8a\xec\xbf\x50\xe0\x47\x1a\x66\x95\xdb\x6e\x66\x4f\xba\x95\xfc\x4f\x7b\x7f\x69\x91\xba\xd4\xa2\x6c\x83\xc3\x16\x4f\x85\x29\x9c\x94\x8f\xa3\xb0\xc7\x4e\x97\x05\x66\xc1\xd3\x80\xa9\xc8\x81\x84\xf2\x86\xb1\xa6\x09\xd5\xd2\x26\x03\x70\x8f\x97\x06\x4b\x6d\xbb\x6a\xdc\x9f\x6f\x42\xd1\x2e\xef\x13\xc0\x42\x62\x3a\x67\x50\x2b\x5f\x8d\x3a\x91\xff\xcb\x79\xc4\x7c\x75\x05\x76\xe4\x16\xac\x56\xd8\x6b\x30\x83\x06\xc7\x0d\x1f\x20\x7a\x0f\x8b\x19\x2a\xc8\xc6\xfe\x0c\x3b\x0b\xef\x8f\x73\xdf\xe6\x58\xdd\x2f\x68\x71\xd9\xcc\x59\xbe\xfc\xa6\xb9\xe1\xc5\x9d\x61\xfd\x08\xe5\xe3\xcb\x76\x64\xf0\x5a\x72\xe8\xd7\x29\xf0\xd0\x6c\xe8\xd4\xeb\x9f\x8d\xe6\x63\xe1\x6f\x82\xaf\xa0\xe5\x69\x16\xfa\x91\x28\xfc\x2e\x3e\x31\x1c\x51\xe9\x16\x1d\x99\x18\xb1\x71\xe3\xc3\x53\x19\xf8\x92\x33\x14\xb5\xdb\xee\x28\x6d\x7b\x8a\xc2\xc5\x82\xfa\xcd\xaf\x74\x90\x44\x8c\x12\xf2\xd2\xb6\xd3\x25\x03\x69\x17\x4c\xb5\xe8\x95\x0d\x09\xf9\x76\x3a\xfb\x6a\x42\x6e\xc5\xca\x16\x0a\xb9\x6d\xd6\xf2\x3a\x92\xa4\x4d\x9e\xa9\x80\x4e\x0a\x2e\xde\x42\x33\x9e\x24\xce\x6f\xfd\x16\x2f\xa5\x1b\xfe\x92\xfb\x88\x4d\xde\xce\x55\x04\xd5\xe0\x2d\x5f\xc6\xce\x66\x4c\x1f\x4f\x69\xfd\x1c\x4d\x78\x2a\xe8\x10\x41\x31\x7d\x72\x26\x2d\x3d\x4b\x7b\xb1\xe0\x8f\x2d\x16\xbc\x00\x35\x5f\x91\x7a\x31\xd7\xb6\x0a\x5e\x50\x35\xfe\xec\x71\x23\xff\x08\x96\x9c\xb7\x84\x1b\xb9\xcc\xe4\xb8\x0d\x79\xdd\x5b\xab\xbe\x16\x6b\xd5\x1e\x3e\xf2\x8b\x19\x84\x56\xe4\x65\xec\xc6\x28\x04\x92\x54\x4b\xfe\x63\xdb\x56\xf5\x07\x81\x51\x5a\x14\xae\x48\x2c\x1e\x64\x79\xf6\xd9\x32\xff\x44\xe4\x88\x85\x06\xe2\x4d\x88\x4e\x03\x41\x83\xdc\xf8\xa8\x61\xac\xe6\x59\x72\x5a\xf7\x5b\xb6\x3a\xdb\x0b\xbc\x9f\xcb\x8e\x73\xf0\x7f\x22\xc7\x9b\x12\x7b\x55\x55\x95\x89\x9a\x35\x88\x4f\x56\x99\x02\xd1\x48\x51\xa5\x7b\x32\x5a\x62\x6e\x2e\x4d\x1e\x83\xe5\x16\x04\x66\xfa\x24\x5d\xa7\x48\xed\xf2\x4a\xf3\x81\xc8\x7c\xbf\x4b\xef\x35\x34\x32\x50\x0b\x1a\x46\x63\x48\x3e\xa5\xb8\xce\xae\x49\xf4\x54\x50\x48\xba\xa9\x04\xb4\x62\x20\xb9\x61\xc6\x93\x06\x08\x5b\x77\x40\x4b\xcc\x88\x09\x57\x85\x4c\xcc\x7f\x58\x09\xd1\xc9\x9b\x83\xb2\x88\xea\x93\x1a\xfa\xbc\x15\x65\xfd\x82\x18\x48\x30\xb8\x02\x9f\x95\x9b\x04\x6a\xaa\x46\x63\x3c\xa6\x8f\x1d\x9f\x3f\xbc\x80\xc5\xf5\x34\xd6\x99\xf0\x9d\x03\xda\x97\x57\x6b\xed\xe4\x2a\x1d\x53\x4f\x61\x01\xe2\xf2\xe7\xd7\xf5\x5d\xea\xb1\xcf\x76\x8b\x01\x53\xad\x36\x01\xf8\xc6\xba\xdd\x2d\x52\x5e\xd2\x2f\x7a\x2c\x60\x9b\x51\x38\xa9\x6e\x2a\xe9\x48\x34\x6b\x3b\xe3\x17\x3d\x13\x56\xd7\x72\xa7\x61\x6e\xed\xde\xfa\x99\x68\xf5\x0d\xa4\x3c\x87\x86\xe9\x27\x15\x7a\xde\x45\x48\xd8\x2a\xdd\xa8\x2d\x4b\xb0\x9a\x5b\x85\x25\xd8\x07\x73\x2c\x41\xab\x76\x76\xf8\xd7\x4f\xc2\xbf\xf3\xd9\x5c\xb8\xe2\x2e\x82\x5b\x17\x3a\xd1\x19\x1d\x5f\x4b\xaa\x89\x92\x0f\x04\xe3\x4c\x95\x13\x91\x83\x7a\xae\x11\x8d\x2a\xf5\x7d\xd8\x15\x48\x1b\x58\x82\x15\x2a\xa7\xb9\x7e\x94\x29\xa6\x5a\x79\xa8\xd1\xa0\xa9\x23\x8d\x03\xed\x46\x01\x14\xb2\x59\x74\xff\x69\x74\xab\x02\x70\xed\xd4\xa8\x29\x3b\xba\x3b\xef\x77\xd8\xcf\x17\x7d\x08\x4d\xbe\x3d\xbf\xeb\x1f\x3b\x4c\xd5\x39\xe3\x1c\x0c\xdf\x0e\xb8\x92\x1c\xe6\x67\x93\x46\x21\x70\x77\xe7\xfd\xd7\x8d\x5e\x9a\x77\x1d\xb6\x3c\xa9\x90\xbb\x42\x3b\x60\xe2\x1c\xb6\xe0\x57\xac\x59\x33\x57\x1f\x59\x51\x87\x62\x6b\x1a\x85\xaf\x4b\x4b\x99\x75\x08\xc1\xa6\xe1\x24\x4d\xa7\x99\x0c\xd6\x55\x4f\x46\x80\xb0\xb1\xcf\x75\xff\x41\x64\x8f\x45\xab\x4a\x28\xd7\x1d\x0f\x5c\x7a\x8a\xe4\x93\x65\x75\xca\x8e\xc0\x96\x43\xf9\x18\x4e\xa2\xf1\x84\xc9\x59\x6e\x82\xa5\xe6\xb8\xc3\x3e\xdf\xb4\xb2\xde\x44\x13\x63\x3c\xc9\xb5\xc1\x23\x4d\x32\x4f\xa3\x89\xc2\xd2\x5b\x48\xb8\x0c\x14\x6f\x12\x61\xb5\x36\x5f\x21\xb4\x7a\x05\x93\x53\xb5\x67\xc8\xee\xa4\x2f\xd7\x17\xee\xc8\x81\x95\x40\x6d\xce\x4c\x20\xc6\xa6\x50\x06\xc3\xf8\x79\x11\x4c\x77\x31\x8b\xb1\xca\x8b\xd1\x19\xf7\xfe\x0f\x38\xf7\xc7\xf5\xc4\x9d\xc5\x3e\x47\xf6\x42\xba\xf9\xe5\x6e\x62\xf8\xe5\x1c\x94\xe0\xb2\xf3\xeb\x02\xd6\xdb\x1f\xe0\xbb\xf9\x73\x6b\x39\x03\x1c\xc7\x2f\x74\x80\x03\xac\x0d\x75\x7b\x68\x58\xa6\x2d\x25\x57\x3a\x15\xad\x8f\x7c\xbc\x16\x5f\xf0\xcc\x7b\xcc\x5b\xe4\xb6\x5c\xcd\x5e\xe8\xc8\xbf\xf8\x89\xde\x55\x5a\xca\x97\x16\x8d\x6f\x23\xe9\x0e\x16\x37\x82\x2e\x9f\xdb\x3e\xb2\x63\xe1\x25\x32\x94\x1b\x67\xe7\x36\x7f\xdd\xec\x15\x0a\x77\xcd\x6e\x74\xd5\xd1\x00\xb8\xd0\x21\xab\xea\x93\xcb\x94\x71\x01\x80\x53\x77\xaf\xac\x28\x83\x6f\x85\xdc\x17\xf2\xfd\xe1\xa5\xbd\xa2\x93\x96\x70\x97\xe9\x5b\x1d\xc9\x50\xe7\x0c\xd0\x41\x2b\x5e\x30\x9e\xa6\xb2\x90\x8f\x22\x9b\xd5\xa9\xe3\xf5\xe7\xbb\x10\xcf\x0d\xae\xbe\xb6\x5a\x00\x24\xa2\xe1\x05\x68\xba\x34\x4e\x03\xf0\xbe\x14\xd5\x24\x1f\x57\xce\x86\x5d\xf5\xbb\xd9\x74\x65\x02\x98\x23\x79\x70\xbd\xb1\x6c\x96\xbf\x32\xd5\x2d\x44\x88\x09\x34\x1d\x62\x10\x2c\xce\xd5\xc5\xc0\xd2\xb9\xbe\x3f\xe8\xb0\xfb\x83\x4b\xff\x37\x44\xc2\xba\xa0\x7f\xf7\x78\x81\xd4\x18\x09\x61\xb2\xc0\x00\xd9\x90\x2d\x16\xa5\xe4\x43\xba\x2d\x26\x1d\x06\x7c\x53\x9d\xb3\xcb\x68\xf7\xfe\x23\x1c\x04\x98\x90\xc3\xaa\xe7\xca\x35\x33\x84\xeb\x04\xa6\x19\x63\xca\x09\x9d\xb8\xe1\xd0\x1e\x99\x4b\x4a\x53\x80\xb4\x44\x58\x7f\xea\xed\xc8\xd5\x87\x80\xbc\xb7\x02\x63\x76\xa3\xde\xdd\x78\xa8\xfb\xe3\x05\xfd\xc7\xe9\x74\x33\x5d\xb2\x27\x4e\xe8\xff\xb9\x2c\x04\xa0\x96\xc3\xef\x5d\xf0\x2c\xe1\x7e\x76\xa0\x21\x08\xaf\xe2\xd9\xe3\x2f\xb8\x64\xb0\x68\xcf\xd9\xff\x8d\xb6\x80\xfd\x57\x8f\xfd\x24\x1f\xc4\x13\xe4\xb3\xcb\xc6\xaf\x39\x26\x83\xb1\xd0\x11\x58\x17\x2f\x2c\xc7\x12\x01\x65\x17\x99\x5b\x34\x92\x90\x86\x1b\x0f\x00\x2d\xdc\xe8\x5a\xc7\x60\xea\x78\x44\x47\x46\xda\xcd\x33\xa5\xbd\x5b\xee\xdb\x4f\x3e\x02\xdb\xbd\xd1\xb0\x55\x2a\xa5\x76\x81\x1d\xba\x13\x52\x68\xf6\xdf\x76\x40\xff\x37\x3e\x8b\xec\xbf\x76\x24\xc3\xbc\x52\x54\x75\x4c\xd4\x57\xd9\x6c\x5b\x69\x11\xff\xb2\x65\x3b\x1a\x56\x61\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\xa3\xc6\x5d\x5e\x86\xd7\xee\xcb\x76\xec\xcb\x76\x6c\x2c\xad\xfc\x31\xca\x76\x2c\x16\xb3\xf6\x65\x3b\x16\x96\xed\xd8\x47\xad\xbd\xe5\xa8\xb5\x7d\x44\xd7\xd7\x12\xd1\xb5\xcf\x3f\xdc\xd7\xca\x58\x67\x7d\xf6\xb5\x32\x5e\x28\xd8\x6f\xf7\x25\x33\x56\x9b\x77\xf6\x25\x33\xf6\x25\x33\xf6\x25\x33\x76\x20\xc8\x83\x11\x61\xf5\x75\x72\x00\x8a\x15\x34\x73\x04\x5c\xac\x1e\xa5\x4e\x3c\x83\x41\x15\x20\xcf\xce\x9a\x80\xac\xc9\x17\x07\x3d\xf4\x6a\xd8\x96\xa6\x4b\x56\xff\xee\x1c\xbc\x65\x1d\x99\x51\xaa\x14\x40\xb1\x1c\xa6\x65\x15\x63\x31\x24\x39\x25\x5a\x19\x99\x0a\xcb\xf2\x1c\x90\x28\x1a\x2a\x3d\x4a\x5f\x33\x50\xe4\x98\x13\x52\x6f\x34\x04\x08\x8a\xd5\xac\xc8\xad\x30\xac\xc4\x53\xc0\x9a\x16\x3e\x57\x6f\x11\x26\xa5\x57\x93\xb9\x31\x72\xa4\x00\x86\x4f\x7a\xf8\x49\x6c\xbd\x57\x20\xf6\x0a\xc4\x5e\x81\xa8\x2f\xfb\x5e\x81\x98\xe7\x60\xbb\x55\x20\x80\xf4\xed\x4c\x8b\x20\xe3\xf4\x5e\x4c\xae\x8b\xc9\xc8\x70\x5f\x43\x56\x86\x2f\xb5\x2b\x89\xe5\x9b\x2e\xa9\x8b\x05\x6d\xc4\x9e\x3d\xbd\x6d\xf6\xb4\x6d\x79\xac\xb9\x5d\x5e\xd8\xeb\x0e\xa8\x4d\x5b\xb3\x77\xe5\xa7\xca\x85\xb5\xa3\xef\xfa\x75\x11\xc5\x9e\x67\x7f\xdd\x3c\x7b\x9b\x34\xce\xaf\x27\xbd\x72\x8e\xc0\xbf\x1a\x3b\x69\x57\x5f\xc3\x37\x0d\x89\x0a\x11\x2c\x3e\xe3\x03\x57\x24\xc7\x6b\x90\x6b\xe1\x2b\x07\x00\xe2\x55\xa0\xa6\x01\xa9\x98\x62\x1d\x88\xf4\xc7\xd6\x84\x08\xce\x38\x46\x0b\x1d\x73\x95\x66\x74\xc3\x51\x2f\xc3\x50\x33\x0a\xd0\x1e\xea\x3c\x42\x68\xbf\x3f\x18\x66\xfc\x51\xe7\xe6\xfe\x80\x54\xd1\x3c\xea\xd8\x2b\xc2\x10\xa5\x1a\xbe\x87\x55\x03\xc8\xab\x4b\x51\x77\x7c\x56\x2f\x8e\xd0\xe7\x39\x9f\x08\x08\xe4\x71\x70\xcc\xd0\x8f\xaf\x23\x01\x89\x8c\x51\xa7\x30\xcc\xa0\xfb\x06\xe5\x93\x87\x12\x42\x5d\x5f\x3d\x08\x3c\xf4\x4a\x63\xf1\x82\x62\xcc\x15\xfb\xf6\xcf\xef\xe2\xe8\x21\xa9\x58\x26\xd4\xa8\x18\x77\x18\xd5\x12\xe2\xc9\x44\x44\x55\x28\xba\xe1\xe3\xf7\x07\xf5\x80\x3c\x39\x99\x94\x05\x1f\x6c\x54\x85\x66\xea\x67\xfe\xca\x66\xb6\x68\xc9\xc9\x59\xaf\x1e\x30\xe4\x3f\x29\x4d\xa1\x27\x81\x01\x50\xb4\x15\x38\xb6\x21\x74\x18\xe2\xa9\x2a\xe5\x02\xfc\xae\xcd\xed\x51\x5c\x2c\x45\xce\x1d\x46\x1f\x51\x42\xb4\x89\x89\xe7\x22\x87\xc4\x5d\x1a\xdb\xcb\x1a\x86\xf6\xb5\x54\xf7\xc2\xe2\x2a\x61\xf1\xc5\xa5\xc4\x3d\x78\xc7\x5e\xea\xdb\xd7\x52\xfd\x72\x12\xe6\xab\x09\x97\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\x6b\x47\xa0\xbf\xa4\x22\xf8\x47\x2c\xa9\xba\x5d\x7e\xd8\xbe\xa4\xea\xbe\xa4\xea\xbe\xa4\xea\xbe\xa4\x6a\x23\x69\xf8\x4a\x4a\xaa\xae\x50\xc5\xb6\xb1\xbb\xec\x4b\xaa\xbe\xdd\x92\xaa\x8b\xb7\xfd\x55\x4b\xaa\xae\x0c\xd3\xde\x97\x54\x7d\xa5\x92\xaa\xcb\x0f\xc4\xbe\xa4\xea\xbe\xa4\xea\x6b\x96\x54\xb5\x1b\x13\x95\x54\x85\x63\xd4\xaa\xae\xaa\x7d\x71\x5f\x57\x75\x53\x1a\xa0\x53\xe1\x6f\xff\xe7\x47\x91\xdb\xa1\x2c\xb9\xfb\xae\x09\x33\x45\x5e\x82\x51\x7c\xce\x28\xeb\xc4\x42\xed\x9a\xd6\x6f\x7f\x5e\x2a\xf4\x9a\x02\x60\x58\x1b\x54\xcd\xf4\xa3\x7c\x16\x73\xaa\x60\xf0\xba\xf6\x9b\xdf\x64\x1b\xf9\x1e\x7a\x5e\x89\xf8\x7b\xc9\x55\x21\x8b\x25\x38\xf2\x75\xe7\x31\x8d\xb4\xbe\x26\x43\x7a\xb8\xe1\xca\x2c\xdc\xd0\xdd\x6d\xfd\x4d\xa9\x0a\x39\x11\xab\x52\x02\xe2\x66\x5e\x31\xe3\x21\x96\x83\xd8\x98\xd5\xed\xb0\xa5\x13\x64\x02\xd5\x24\xe5\x0f\x09\x6f\xa5\x3f\x19\xc4\x69\x0f\xd4\x11\x69\x7d\xd5\x7e\xa3\xc6\x79\xa9\x40\x88\xf6\x8d\x0c\x5e\x6d\x80\xa3\x8b\xbf\x40\x65\x5d\x8f\x12\x27\x70\x1e\xb3\x09\x57\x25\x20\x1f\x54\x72\x8c\xc1\x64\xa1\xf3\x00\xd5\x97\xeb\x47\x09\xae\xe6\x1c\xfd\xbe\x51\xa2\x03\x4d\xab\xaf\xd3\x90\xe3\xf0\xb7\x72\x20\x32\x01\x54\x00\xf3\xe7\xb1\xbe\x0a\xdc\x6b\x61\x74\xe6\xad\x4d\xf1\xe8\x80\x62\xfa\x8e\x9d\xc1\xd6\x1d\x89\xc2\xe1\xeb\x05\xdd\x28\x15\x05\x97\x99\xe9\x30\x23\x44\x93\x6f\x4b\xa8\xb1\x65\x31\x56\x2f\x32\x27\x0f\x62\x6a\xc0\xa1\x65\xb7\xfd\x84\x56\x11\xb3\x2c\x7a\x93\x16\xd0\xe5\x7b\x5f\xfd\x97\xf3\xd5\x63\x3c\xd2\xaa\x88\xa7\x1f\xb1\x55\x05\xe6\x4b\xa0\x2f\x2c\x9b\x81\xd1\x8a\xae\x0e\x55\xc4\x89\xc2\x54\x3c\x32\xdc\xf9\xcd\x55\xb0\xa8\xe0\x6f\xa0\x22\x95\x06\x0a\x4e\x51\x60\x14\x40\xd6\xb9\xfd\xf3\x01\x52\xf6\x39\x15\x12\x22\x79\xca\x5e\x36\x87\x50\xeb\xc3\xaf\x74\x2a\xd8\x7d\xf9\xee\xdd\xb7\xdf\xc3\xd7\x6a\xba\x20\xbb\x42\xa3\xaf\x83\x55\x23\xbc\x00\xfa\x72\x4e\x32\xde\x23\x97\x19\xa7\x8a\x45\x88\x2d\x83\xd0\x97\x76\x66\xbe\xa5\x13\x38\xec\xb5\x42\x31\x20\x17\x4c\xfc\x5e\xca\x47\x9e\x01\x6e\x4c\xfc\x6e\x2d\x1e\x8b\xbb\x6e\x58\xc2\x21\x8a\xeb\xfe\x20\x2f\x55\x72\x7f\xc0\x26\x72\x34\x0e\x5a\xa5\x5f\x38\xfb\x2b\xfb\x7c\x7e\xe5\x17\xf9\x08\x51\xe6\x2d\xdb\x7f\x14\xec\x27\xa9\xca\xe7\x88\x40\x1d\xcf\x81\x66\x58\x22\xe6\xa2\x80\xe6\x88\x98\x5d\x5c\xb7\xbd\x20\x97\xda\x55\xd3\xf9\xc4\x2d\xea\xc5\xf5\x2d\xfb\x09\x1d\x14\x37\x1f\xcf\xd9\xe9\xe9\xb7\xef\x8f\x5d\xec\x10\x5c\x7f\x5c\x9a\x2d\x63\xb2\xf6\x41\x15\x5f\x4b\x50\x45\xcb\xf4\x97\x2f\x9a\xe2\xa2\xe7\x85\xd1\x56\xd3\x5e\x20\xd2\x2e\x9b\xa7\x17\x6a\xb7\x13\x65\x2b\x89\xc5\x31\x67\xef\xed\x84\x67\x7f\xfb\xee\xf4\xdf\xdf\x7d\xfb\xed\xf7\xdd\xa9\x4e\xbb\x6e\x44\xbd\x49\x5a\x73\x18\xf0\x6c\x3a\x76\x38\x88\x1c\xa8\x60\x94\x15\xfc\x78\xda\x3b\xfd\xb3\x27\x06\x60\x62\x1b\x6b\xa5\x73\xaa\xc6\x47\xf7\x0d\xa8\x9a\x50\x58\x66\x10\x65\x1b\xbf\x44\x43\xc1\xc1\xff\xbc\x40\x49\x4c\xc6\x22\x2d\xad\x06\xbb\xdd\xb6\xdd\x86\x7e\x96\xc6\xfd\xf8\x66\x6c\xac\xb3\x94\x30\xd1\xc3\xc3\x44\x2b\x53\xe4\x1c\xb2\xbe\x6b\xd0\xc1\xc0\xc3\xdc\xf6\x91\xc6\x27\x4d\x55\x20\x05\xfe\x85\xbd\x21\x91\xb6\x63\xa4\xe5\x71\x48\x57\x12\x53\xa7\xa3\x8f\x4a\xc3\x94\xcc\x3a\x0d\xfd\xc5\x8c\x0d\xb0\xa7\x83\x70\x6c\xc5\xce\x0c\x11\x9c\x97\x07\x77\x36\xc7\x12\x39\x09\xe1\x35\xa3\x89\xec\x7e\x2d\x8b\x23\xaa\xa8\x14\x3b\x0c\x24\x5a\xa4\xb6\xac\x88\x5a\xad\x37\xad\x62\x71\x55\xf6\x69\x5f\x84\xee\x8f\x20\x15\xbf\xa9\x22\x74\x0b\x75\xe9\x6d\x4c\x6e\x7b\x81\xeb\x6b\x11\xb8\xf6\x25\xe8\x5e\x9f\xe7\xec\x3a\x80\x75\x81\x7c\xb2\x98\xe3\x44\xd2\x49\x55\x27\x5f\x20\xa1\x0c\xc1\x3b\x6c\x25\x0c\x92\x0b\x50\xb2\xac\x48\x92\xab\x59\x92\xed\x61\x51\xfd\x80\x76\x16\xd3\xb6\x4e\x83\xda\x74\xe3\x0f\xc3\x11\x36\x0e\x4c\x16\x81\x16\x29\x18\xc2\xd5\xc4\xd2\xaa\x49\x9c\x9a\x13\x9a\x7a\x58\x61\x0a\xb5\xe9\x79\x91\xca\xc7\x82\x0e\x6a\xa2\x1a\x47\x4b\x43\x54\xe8\x1b\x5e\x36\x95\xa2\xde\x95\xae\x2a\xe3\x97\x86\x4d\x44\x3e\x0a\xf1\x80\x58\x67\x03\x82\x97\x40\xaf\x8f\x1a\xf7\xd8\x99\x9a\x55\xfc\x07\x59\xc6\x30\x76\x94\xac\x76\x24\xee\x21\x9f\x45\x9b\x21\x4f\xa1\xf0\xf1\xc2\x68\x85\x39\x33\x6f\xec\x65\xd7\x19\x55\xe7\x5e\xc5\xff\xa2\x96\x68\x39\x99\x4e\x85\x4a\x45\xca\x8e\xc4\x73\x92\x95\xe0\xd4\x4e\xcb\x69\x06\xbe\x30\x73\x6c\xc7\xd9\x46\x30\x4e\xcb\x1c\xd3\x9e\x68\x0e\x1d\x26\x00\xfc\x1e\xaa\x27\xb0\x52\x49\xed\x6d\x96\x54\x98\x81\xb6\x1a\x87\x13\xb2\xe2\xec\xda\x58\x29\xa4\x6e\x0b\xdd\x11\x5b\xf6\xa9\x60\x7e\x19\x76\x9c\x76\xcc\x0b\x3d\x91\xc9\x0e\x8c\xf1\x88\x95\xef\xe9\xcb\x19\x46\x19\x9f\xdf\x5e\x5d\xe4\xf2\x71\x69\x79\xcb\x7a\xd3\x58\x89\xf5\x51\x13\x52\x65\x52\x09\x76\x7e\x7b\xc5\xa8\x55\x43\x75\x7c\xb2\x46\xb5\xa1\x31\xab\xbd\x80\xb1\xff\x2f\x17\x23\x69\x0a\x80\xe0\x89\x5d\x81\x76\x34\x29\x4e\x6f\x43\x27\x57\x33\x5b\x82\xd1\xad\xe2\x4a\xeb\x6d\xc4\xc7\x4c\x3c\xff\xa2\xb3\x72\xb2\x2c\x53\x61\xae\x6d\xe3\x56\xd8\x9f\x1f\xf1\xe7\xad\xf6\x20\xad\x1f\x8c\xa6\x21\x61\xa3\x26\x3f\x6c\x34\x0c\x6c\xb4\x63\x00\x66\x1a\xde\x6e\xb7\xe1\x47\x6d\x8a\x15\x75\x0e\x6a\x2d\x2b\xda\x16\x78\x66\x69\xd2\x89\x56\xc8\x0b\x89\x01\x39\x7b\x2c\x9a\x3d\xc8\x0f\x44\x15\x2c\x00\xcc\x9c\x2a\xe1\x94\x56\x7a\xbd\xf2\x99\x99\xc6\xa7\x9d\x38\x24\x73\xdc\x44\x72\x27\xb5\xc4\x2f\x46\xcc\xed\x15\x7b\x19\x1a\xfa\xda\x4f\xf1\x67\x9d\x25\x3a\x9e\x64\xa5\x1e\x5e\x04\x54\xee\xb8\xed\x6f\xdf\xfc\x06\x25\xae\x24\x0a\x29\x19\x87\x20\x5d\xcb\x28\x8a\x5c\x4e\x26\x22\xc5\x10\xc7\x47\x9e\xc9\x94\x17\x95\xea\x0f\xf4\x59\xe2\x8e\xf0\x51\x00\x6b\xbf\x57\xf7\xea\x12\xcd\xe8\xe6\x03\xfb\xed\x64\xa8\xf5\x6f\x54\xda\x03\xdd\xf5\xf8\xa8\x83\xff\x3d\xf9\x0d\xc8\xff\x6f\x0e\x33\xfd\xb7\xea\x1b\xa1\x2e\x14\x3c\x4e\x7f\x63\x3a\x67\xbf\x9d\x88\x22\x81\x56\x1b\xc4\xf9\x09\x9e\x7e\x56\xd9\x6c\xc5\x52\xc3\xac\x2b\x60\x5f\x70\x3c\x70\x28\xd1\x02\x37\x94\xc5\x70\xf0\xe9\x56\x26\x91\x43\x30\xea\xb8\xcd\xd0\xa5\x2a\x1c\x64\x3a\x0e\x63\xc1\x9d\x1b\x68\x9d\x09\xae\x76\xcf\x56\x2e\x1f\x65\x52\x54\x8d\x15\xf5\xa9\xbb\x26\x4c\x3c\x82\x30\x43\x96\x4d\xa8\xde\x50\xa0\x90\x64\x55\x3e\x50\x1d\x0b\xed\xab\x23\xfb\x2a\x3a\x00\x10\xc8\x87\xa2\x98\xc5\xb2\x6d\xc8\x7a\x06\x78\xfe\x60\x58\x85\x1a\xb8\x3d\x16\xd5\x11\xb0\x9d\x82\xec\x84\x55\x64\x68\x20\x14\x59\x9b\xe4\xc2\x89\x0f\xfd\xcf\xb7\x77\x14\x93\xd7\xeb\xf5\x4e\xec\xfd\x74\x20\xe8\x1a\xf9\x0c\x21\xa3\xbb\xf7\xf7\xf6\x9c\xb7\x6d\xcf\x49\x45\x26\x0a\xf1\x79\xda\x28\xd7\x6e\xa1\x7b\x5f\x54\xfa\x5d\xa6\xc1\x54\x5a\xba\xb0\x66\x57\xf1\x74\x6f\xa2\xf9\xba\x4d\x34\x2d\x7d\x62\xa1\x59\x2d\xf8\x11\xd4\x3c\x12\xe8\x06\x02\x10\xe1\x2d\xe1\xa9\xa2\xa1\xae\xa2\xe3\x3b\xb4\x95\x4c\xab\x05\x60\xe3\xd3\xea\x89\xfc\x0e\xcd\x23\x35\x4e\xf3\xf1\xf6\xaf\x76\x20\xb7\x85\x55\xf7\x46\xb3\xf9\x5b\x5d\x5f\xd7\xe6\x17\x2a\xc4\xd5\xd0\x6f\x50\x54\x04\x88\x9d\x2b\x54\xe7\xa3\xf0\x81\x3d\x54\x1a\xb7\x01\xf4\xe5\x6a\xb4\x32\xfa\x1f\x1b\xa1\x6c\x34\xf6\x25\xff\x19\x3d\xd6\x43\x36\x34\x0c\xd6\xde\xf4\x98\x2f\xfd\x06\xe4\x3c\x93\x0f\x10\x3c\x31\xd4\xf6\x5e\x7b\x3d\xc0\xb5\xc7\xa4\x36\x2b\x91\xc5\x09\x7f\xd0\x6f\x88\x44\xc4\x1a\x87\x05\xcf\x0b\x98\x37\xd4\x3f\xb8\x71\x75\x57\xac\x78\xfa\xa9\x34\xc5\x4d\xa9\xce\x76\xa5\x39\xd7\xb6\xf3\xea\xe2\xc6\x0e\x68\x2b\x6b\x76\x5e\xcd\xf3\x6e\x5c\x64\xc8\xe0\xab\xef\xb6\x17\xcf\x53\x99\x40\x78\xf7\x93\x7d\x42\x07\xc6\x07\x82\xb9\xc4\x5f\x8a\x39\x3e\xd7\xaa\x10\xcf\xc5\x4b\xc7\x4f\xd6\xd6\x09\xd4\x0e\x9d\x17\xb8\x5a\x4b\x8a\xc3\xc4\xed\xa2\x40\x3a\xdc\x76\x97\x62\x82\x19\x00\xeb\xab\x27\x15\xfd\x64\xa0\xdd\x19\x8a\x8f\xcf\xda\x6a\xca\x84\xaf\xd2\x4f\x26\xdc\x2b\x26\xf6\x03\x0e\xd4\xd8\xce\xa8\x83\x61\xd8\x46\x3e\xd6\xe3\x4e\x30\xbb\xc7\xbe\x2e\x55\xf1\xfe\xdb\xe6\xdd\xb2\x72\xce\x28\x28\x93\x35\x56\x20\x57\xc9\x6a\x13\xa9\xc2\xa1\x8a\x32\xd3\x5f\x66\x68\x2d\xf5\x63\x3b\xec\x4e\x75\x79\x77\xa4\x2b\xbb\xbb\xba\x24\x80\x1f\x5b\x04\x84\x2e\xce\x26\x52\x9d\xd8\x0d\x44\xc1\xb4\x42\xdd\x00\xf4\xe5\xa2\x8d\xf4\xfc\x1a\x67\xe4\xfb\xef\xde\xec\x19\x69\x3f\xb4\x2f\x7e\x46\xfa\x3a\xbd\x90\x26\x2f\x61\xfe\x3f\x94\xe9\x48\x2c\x73\x9d\x37\xb4\x26\x14\x7a\xed\x15\x41\xa4\x24\x84\x6f\xf1\xcc\x52\xdf\x9e\xaa\xb4\x52\x85\x1e\xee\x58\x75\x1d\x35\xca\x12\xb0\xbd\x7e\xf6\x96\xf5\xb3\xbd\xaa\xf3\x15\xaa\x3a\x8d\x9f\xdc\x08\x5d\x7a\x35\x85\x69\x05\x30\x8d\x79\x59\x51\x3d\x44\x87\x34\x3d\x10\x63\xfe\x28\x75\xee\xeb\x24\xce\x7f\x60\x51\x50\xda\x66\xf5\x64\x5a\x4c\x68\x75\x92\xdf\x27\x48\x15\x16\x09\xe6\xb7\xea\x01\x84\xd8\xa5\xb5\xcc\xbe\x15\x53\x79\x23\x4a\x63\x13\xcf\x78\x31\xfd\xb1\xe1\x63\x2b\xe2\xbb\x16\xbc\xd1\x84\x50\xd8\xd0\x74\x6f\x1c\x7c\xdb\xcc\xa7\x31\xd8\x6b\x47\xca\x6d\xd3\xc1\xde\x46\xd1\xdd\x33\xca\xaf\x85\x51\xfa\xb0\xad\xb5\x45\xf7\x57\x0f\x8d\x5a\x93\x72\xef\x38\x38\xaa\x25\xf3\x5f\x8b\x7a\xbb\x72\x13\xce\xd0\x3a\xf5\xc4\xb1\x99\x61\xb6\x51\x4f\x7f\x56\x3e\x77\xe8\xf5\x2b\x3f\x9d\x55\x7d\x59\x4e\xc9\x96\x43\xc6\x0b\x36\xb1\x82\xc2\x7d\x6d\x8c\xf7\x07\x68\xd8\xc1\xa8\x25\x34\xfb\xdc\x1f\xb8\x18\xa6\xfb\x03\x30\x47\x96\xa1\x7d\x54\x61\xd7\x7d\xa9\xc3\x64\x4f\xf4\x98\x78\x14\x0a\xc2\x8e\x06\x06\x11\x68\x86\xa1\x95\x48\x31\xcb\xa8\x92\x01\xa5\x15\x02\xed\x4d\x73\xfb\x6a\xe1\x1d\x99\xaa\xe0\xf9\xcc\xf7\x6e\x20\x6d\x00\x93\xa1\x2c\xcd\x7a\x17\x3b\xfa\x26\x65\x81\xb9\x95\x10\x6b\x64\xb0\x1c\x2b\x66\xc2\x83\x61\xf3\xde\x2a\xb8\x67\x61\xae\x0b\xc4\xb7\xb8\xd1\x1b\xdb\x34\xc4\x77\xaa\xcf\x63\xc5\x9e\x81\x29\xcf\x14\xae\x1a\x54\xfb\xbd\x03\xbb\xf3\x92\xfd\x63\xb7\x60\x64\x76\x7b\x08\x26\xe8\xf5\xb7\xf0\xfe\xe0\xf4\xdd\xbb\xff\x77\xe1\x6e\x98\x05\xa1\x85\xdb\x50\x59\x3e\x10\x99\x0f\x59\x5c\xb6\x19\x98\xe3\xf6\x7b\x29\xf2\x19\x62\x28\xc1\x4a\x3f\x8d\xb5\x11\xd1\x7c\x10\x07\x51\xf1\x51\x88\x33\x8b\xcc\x11\x83\xb5\xe5\xeb\x2d\x88\xde\x2a\x44\x93\x85\xef\xc4\xa1\x43\xcd\xf8\xf9\x41\x85\x68\xa6\x87\x8c\x3a\xb2\x42\x41\x91\x73\x99\xe1\xf9\x49\xa0\x68\xb1\x87\x49\xe1\xcc\xcc\x4c\x21\x26\x6d\xa0\xf7\x31\x6b\xfa\x47\xc1\xb3\x62\xbc\x2a\x82\xc2\x41\x98\xa8\x72\x32\x10\xa0\xb3\x8d\xf1\xbd\xaa\xa1\x87\xed\xc6\x06\x4c\x3a\x62\xbb\xa1\x4d\xa4\x92\x93\x72\xe2\x15\xcb\x57\x1a\x22\xee\x8f\x48\xfb\xb6\xf3\xd7\x41\x32\x08\x57\xec\x4e\x4e\x96\x38\x6f\xea\x6e\xf0\x78\xa8\x01\x99\x66\xfe\x18\x36\xdc\x3e\xf6\xc4\x0d\x9b\xe6\x3a\x11\xc6\x84\xeb\x07\x88\x63\x20\xa4\x86\x86\x71\x18\x88\x4b\xb6\x1d\x94\x05\xd4\xdd\xb3\x42\xe8\x4c\x58\x41\x54\xa8\xa0\x34\x53\x67\x4d\xd6\xc8\x18\x5f\xff\x0c\x5c\xb1\xce\x61\xe2\x30\x5d\x26\x7c\x1a\x04\x62\xc8\xd0\x7d\x72\x60\x92\xd1\xe8\xc2\xc8\x63\x3a\x1c\xc7\xa6\xcc\xbf\x6e\xbf\x06\x91\xc5\x42\x41\x5c\xca\xc5\x0f\x31\xa6\x0b\x37\x6c\xcc\x21\xdf\x1f\x26\x43\x20\x69\x50\x42\x42\x64\x02\x7a\x3f\xd2\x39\x11\x7f\x0e\x5d\xeb\xb2\x20\x50\xd1\x07\x31\x73\x84\xdf\x8e\xbf\x21\x8c\x2f\x0e\xa0\x45\x1d\x82\x1a\x6d\x38\x45\x8f\x92\xe2\x47\x97\xca\x54\x1d\x16\x4c\x27\x49\x99\x23\xf0\x9c\x9f\x31\xf0\xb0\x62\x2c\xac\x4e\x10\x5c\x54\x00\xa7\x29\xd2\xb0\xda\x90\xce\xc0\xcb\x42\xdb\xc3\x93\x80\x44\x60\xd7\x69\xe9\x36\xd2\x82\x18\x3d\xc1\xa9\xc0\xb8\x20\x5d\xbb\x80\x70\xab\x91\x16\x86\x99\x89\xd6\x2e\x3e\xd9\xae\x4f\x28\x7c\x21\x26\xd3\x62\xf6\xff\xb3\xf7\xef\xcb\x6d\x1c\x49\xbe\x38\xfe\xff\x3e\x45\x05\x3d\x11\x22\xe7\x07\x80\x37\x49\x33\xe6\xc4\x86\x0f\x47\x92\x3d\x3c\xb6\x25\xfe\x48\xca\x7b\x76\x0d\x6f\xb0\xd0\x5d\x00\x6a\xd4\xe8\xc2\x74\x75\x83\xc2\xac\x1c\xb1\x0f\x72\xce\xcb\xed\x93\x7c\xa3\x32\xb3\xaa\xab\x6f\x40\x03\x04\x29\x5a\xee\x89\x18\x99\x00\xaa\xab\xeb\x9a\xf7\xfc\xa4\xc3\xdb\x01\xd9\x8a\x16\x0c\x3b\xfb\x81\x27\x13\xe1\xdd\x7c\x61\xd4\x15\x8b\x00\x84\x8b\x8d\xca\x14\xd5\x98\x9c\x27\x6a\x14\x89\x19\x61\xc3\x98\xf9\xdb\xf5\x29\x3b\x5c\xdb\xc4\x6f\xe7\xdc\x48\x53\xb8\xe2\xba\x60\x5a\x37\x50\x78\x75\xfe\xb8\x57\x71\x24\x87\x4c\x26\x84\xe2\x5d\x53\x30\xf1\x11\x81\x91\xeb\x08\x58\x25\xec\x3c\xe5\x91\xb7\xbc\x73\x24\x24\x59\x9c\x7a\xa1\xf8\x15\x9e\xbc\xeb\x01\x5b\xc2\xf1\x9d\x88\x6d\xf4\xf7\xea\x61\x7b\xc6\x3a\x36\x71\x0f\xe5\x04\x08\xae\x13\x68\xc6\x2e\x19\xc1\xdc\x76\xe4\xc4\x03\xf6\xba\xb2\xad\x18\xa4\x00\xa5\x79\x89\x5d\xfb\x44\x54\x6a\x8c\xac\x74\xc1\x82\xd5\x01\x23\x60\x2d\x98\x76\x2e\x5f\xff\xf5\x99\xd3\xfe\xf3\xd1\x3d\xaa\x43\xaa\xe6\xe0\xf6\x1a\x05\x84\x66\xfe\xdc\x74\xa8\x76\xe7\xdc\xb2\x51\x00\x97\xa8\x15\xaf\x14\xc0\x8a\x6d\xd9\xc4\x08\x96\x04\xc4\xc6\x11\xe9\xd3\x2c\xff\x8c\x7f\x10\x25\xd8\x57\x0e\x39\x0f\x85\xa8\x03\x46\x61\x07\x45\xa7\x3d\x9f\xcf\x23\x69\xdd\x5e\x96\x62\x3b\xa0\x87\xce\xf2\xf8\xa4\x2d\x8f\x9d\x35\xef\x4b\xb1\xe6\xfd\x2e\x8b\xbe\xae\xa3\x8d\x6b\x9d\x72\x1a\xd1\xbd\x73\x62\x42\x51\x47\x22\x86\x80\xb6\xa7\x18\xde\x58\x65\x00\x0f\x69\xe9\x2c\xbe\x6a\xbd\x97\xaa\xda\xbe\x98\xa0\x5e\x65\x49\x1d\x1e\xc1\x6f\x81\x51\xb4\xc1\x23\x90\x8f\x84\x47\xb0\x56\x22\xea\xfc\x5b\x1d\x47\xec\x60\x09\xd8\x67\xe0\x45\x0f\xee\x79\xab\xe1\xef\x1b\xf0\xa3\xeb\xb5\xec\x7e\x3d\x13\x32\xaa\xe1\x65\x22\x17\x32\x12\x13\xf1\x46\x07\x3c\x6a\xa3\x7d\x37\x3d\x96\x83\x81\x6a\x70\xbb\x80\x06\x15\xf0\x82\x55\x0e\x33\xf3\xe6\xf6\x61\x26\xdc\xd3\x55\x0c\xfe\xd0\xc7\x6a\x4e\xb2\x26\x24\xbc\x6a\x12\x5e\xaf\x34\x45\x2f\xe9\x7a\x6d\xed\x80\x72\x7b\xaa\x6c\x63\x6e\x80\x65\x04\x5e\x8e\x76\x48\x8d\x0a\xc0\x09\xe2\xa3\xab\x23\x45\xa9\x89\x60\xe8\x1a\x89\x30\x24\x98\x02\x0b\x18\x08\xee\x1c\x28\xd8\x80\x76\x30\x32\x0c\x92\x31\xcb\x6a\xaf\xf1\xd2\x7b\x57\xa1\x48\xc3\x58\x25\x76\x34\x62\x3e\x15\x33\x91\x70\x9b\xc5\xe8\x67\xf2\xc5\x88\x35\x86\xd0\x63\xf5\xa0\x62\x84\x7b\xef\xdb\x7f\x21\x80\x5d\xdb\x04\xf0\x0b\x78\x0d\xa5\x4b\x13\xb6\x18\x9b\xf0\xb4\xbc\x2b\x3b\x62\x84\x95\xbc\xfa\xfb\xf0\x41\x7b\x08\xf8\x1c\xed\x04\x55\xa3\x7d\xed\x11\x2f\x3e\x51\x14\x06\x02\xff\x17\x3f\x70\x96\xce\x3a\x19\x11\x42\x57\x67\x2e\xb7\x22\xb0\x62\xaf\xb1\x57\x4f\xc3\xa6\xb2\x71\x38\x29\x94\x27\x0c\x76\x88\x2c\x9d\xaa\xe4\x19\xd8\xe2\x82\x44\xe0\x7d\xf9\x77\x95\xe1\x99\x33\xac\x12\x6d\xb7\xf9\xb8\xc0\x1e\x0d\x29\x05\x75\x73\x41\x68\x5c\xa4\xc9\xaf\x13\x35\xf7\x7f\x7c\x74\xc0\x72\x5e\x4e\xc7\x6f\xb9\x3b\xde\x03\x35\xb7\xd4\x3a\x80\xf3\xfc\x79\x3d\x60\xec\x0d\xdc\x33\x95\xb0\x58\x46\x95\x8b\x16\x45\x7e\x6b\xbb\x19\x90\xe6\xcf\xf0\x36\xb9\xc2\xbe\x50\x0d\xcb\x42\x69\xe0\x55\x72\x36\xfc\x4c\xf3\x49\x4d\xfa\xbe\x2e\xb8\xa5\x63\x02\x2e\xa7\xdf\x86\x7b\x54\x51\xe5\x21\x6f\x93\x07\x8e\xb0\x83\xfd\xb2\x99\xfb\x2d\x77\xcb\x35\xf7\xf6\x8a\x95\x37\xcb\xa5\xa7\xeb\x01\x6d\x55\xcd\x1e\xe5\x8d\x0a\x5b\xf4\x90\x2b\xe7\xf0\x0c\x76\xb0\x6e\x97\x89\x0a\x7e\x54\x59\x9c\xde\x18\x21\xb3\x1d\x3f\x2a\x3e\xb3\xe2\xb4\x17\x1b\x0e\x56\x9e\x77\x38\xb5\x80\x4a\x8b\x8c\xb6\xf0\x6c\xf1\xf4\x53\x91\x26\x0f\x49\xa1\xd8\xd8\x32\x84\x71\xc4\x27\x96\xe1\x61\x02\xd4\xe7\xa2\x26\xef\x63\xcd\xc7\xe2\x7a\xa9\x83\xf5\xa5\x6e\xea\x1e\x29\x92\x7b\x8f\xa5\xdb\x95\xce\xa0\x35\xd3\xd8\xbc\x28\xad\xc4\x50\xc6\xe0\x0d\x0f\xa6\xe0\xb0\x5a\x02\xb5\x90\xe0\x5e\xe0\x6c\x1e\x71\x19\xd3\x73\xe4\x22\x34\xdc\x36\x04\x5e\x00\xf5\xff\xcc\x1f\xb6\x22\x93\x06\x97\x9d\x04\xf7\xae\x96\x21\x60\xb3\x40\x8d\x78\xc2\x75\xf0\xf6\x9e\x86\x32\x60\xd7\x98\x9a\xf8\x47\x36\x13\x3c\xc6\x2a\x90\xc5\xd1\x22\xc4\x90\x2d\xe2\x69\x41\xd0\xa7\xa8\xf7\xe7\xe7\x8a\x5b\x28\x85\xca\x74\xfd\x05\x31\x7c\x6e\xa1\x64\x48\xd6\x00\xc3\x9a\x8a\xd8\x12\x79\xbd\xc7\x43\x33\x39\x2a\xce\x8f\x5f\x8c\x78\x32\xdc\xeb\xb9\x0f\xff\x34\x1f\x44\x1a\x0c\xbc\x87\x06\xe5\x87\x06\xfe\x43\x03\xef\xa1\xc7\x3e\x6a\xb4\xe5\xe7\xe1\x26\xa2\x45\xfd\x43\xd6\x1b\x6c\x0b\x49\x11\x1a\x53\x55\xcc\x70\xae\x0a\x10\x11\xca\xc2\x05\xcb\xe2\xc8\x96\xf3\xb3\xf2\xa5\x43\xf6\x46\xf8\xfc\x44\xcd\xa9\x78\x8d\x13\x15\x06\x0c\x65\x09\xbe\x5c\x23\x4a\x34\x8c\x7d\xa5\x34\x51\x14\x77\x70\xd8\xe0\x89\x36\x67\xd0\x2b\xb9\x4a\x07\x0d\xc5\xd3\x58\x08\x04\x15\x81\xc0\x80\x62\x61\x98\x3a\x79\x26\x2a\x94\x2a\x7c\xe4\xed\xdf\x4e\x8b\x5a\xf3\xb4\x75\xb1\x57\x8e\x85\x2b\x50\x73\x37\x15\x96\xa2\x60\xa4\x00\x88\xa0\x13\x43\x5c\x00\xc1\xd8\x29\x59\x70\x72\x62\x40\x05\xa1\x0a\xbb\xf4\xc0\x36\x0a\xd5\x58\x25\x23\x19\x86\x22\x6e\x47\x5a\xcb\xcd\x1b\xc9\xaa\x6b\xf8\x14\x28\x6a\x65\x30\xb5\x34\xd5\x27\xa6\xee\x89\xd5\xb4\x0f\x9b\x6d\x4a\xfc\x0a\x4f\x3d\x19\xea\x37\xd6\xdf\x91\x5d\xe5\x5e\x8e\x8e\x06\x00\x82\x55\x86\x2e\x7a\x73\xdb\x04\x74\x97\xc0\x6f\x33\xd0\x29\x3e\xa9\x92\x81\x5e\x3b\x4d\x23\x6d\x5e\x5c\xbe\x5a\x73\xce\xa9\x55\xc9\x04\xe2\x99\x65\x88\x81\xa1\x7e\x00\xda\xc1\xdf\xe8\x11\x19\x17\xc8\xf5\x36\x97\xd2\xbc\xfd\x2d\x16\x09\x6b\x31\x4e\x6a\xb9\xe9\x58\xed\x63\x3b\x1a\xef\xe5\xc5\xeb\x16\x63\xbd\xbc\x78\xbd\xe9\x38\xcd\x23\xbb\x1a\xa3\x4a\xd6\x56\x34\x73\xed\xfc\x71\x22\xad\x71\xd8\x00\xcc\x03\xa5\x28\x62\xc8\x89\x8f\x73\xf5\x60\xca\x4b\x11\xe4\xe0\x3e\x77\xdd\xf1\x92\x75\xfe\x84\xbc\x61\x1b\x6b\xe0\x48\x60\x4d\x20\x9d\x33\xab\xa6\x6a\x4a\x2b\xf7\xca\xc2\x74\x5d\x29\x95\x7e\x2b\x23\x81\xa1\xb2\xeb\x30\x2c\x6a\x1f\x62\x65\x48\x31\x24\x28\x88\x09\xe2\xd5\xfc\xa0\x4a\x20\x04\xab\x66\xfa\x42\x7d\x2a\x51\x2a\x65\x63\x19\x09\x1b\xaf\xcb\x6c\xa0\x5e\x2e\xa4\x15\x04\x32\xcf\xef\xe1\xf7\x18\xab\xb8\xdf\xdc\x2b\xaa\x60\xd7\x97\xd6\x93\x17\x8a\xd8\xe1\x74\x22\xcc\x3d\x4e\x60\xcc\x23\x02\x37\xcd\xdf\x0e\x8e\xbb\x36\x43\x37\xdb\x06\xe1\x82\x00\x36\x37\xca\x52\x17\x3c\x48\x92\x19\x1a\x9a\x59\xaa\xb6\xdb\xb3\x7a\x81\x71\xed\xae\xd5\x3f\xe6\x00\x5f\x9a\x45\x66\x23\xfa\xce\xfd\x78\x47\xcf\x26\xc7\x6e\xa0\x8a\x3f\x62\xbe\x11\x5c\x0b\x21\x6f\xd0\x53\x10\x0a\xe4\xdc\x52\x20\xc7\x3e\x3a\xcb\x4d\xb2\xf8\x7c\x37\x5c\xf7\xca\xf5\xb4\x09\xe3\xcd\x9f\x6a\xc1\x7b\x9d\xac\x0e\x49\x13\xde\xa3\x54\x74\x08\x6d\xe6\x68\x65\xd0\xc2\x06\xb4\x16\x4a\x6a\xcf\x64\x9a\x0a\x2c\x27\x4f\xb8\xbe\x5e\x37\x86\x96\xa4\xfc\x83\x00\x03\x39\xf4\x59\x28\xc9\x5d\xb0\x56\x78\x8f\xf9\xb6\xeb\xb2\xa9\xa2\x79\xd1\xdf\xeb\x2d\xea\x8d\xd6\xad\xb9\xe9\x68\x93\x25\x77\x6f\xdf\x6e\xc5\xe1\xc9\x86\x05\x6f\x9c\x6e\x5d\x81\xb9\x6d\x67\xec\xfa\xda\x70\xd2\x85\x62\x1c\x9b\xce\xdb\x2f\x24\x87\xb5\x5e\x2c\x5d\x5c\x7b\xc0\x92\x72\xa1\x37\xd7\x38\x8b\x13\x61\xee\x30\x40\x85\xb1\x37\xe8\x66\x83\x82\xe6\xaa\xd0\x6f\x28\xe6\xa0\x7b\x50\x79\xe2\x02\x1e\x73\xe1\xf0\x11\xf8\xd8\xca\xc3\xa7\x05\x54\xa4\xba\xef\x46\x5c\xbf\x81\x6e\x36\xd9\x03\x7a\xf3\xc6\xcb\x5f\x80\x12\x5f\x77\xd8\x00\x4d\x0b\x6b\x98\x45\x70\x3d\xef\x7d\xe4\xae\x2b\x3d\x6e\x34\xe9\xca\xd3\x6d\x95\x0c\xff\x49\xc2\x17\xc3\xa4\xbf\x8d\x15\x8e\x45\x2b\x1f\xc8\xa2\xe2\xf8\xa8\x18\xd3\x09\xce\x74\x1e\x65\x13\x19\x37\x19\xd4\x63\xc5\x6a\xfd\x1d\x37\xd6\x57\x9b\x03\xa3\x6a\x48\x54\x33\xad\x8c\xb4\xfd\xec\x8f\xcf\x1e\x87\xff\xfd\x4b\xa9\x71\x43\x30\x81\xbd\x29\xb5\x94\x7b\xf5\x91\xab\x51\x6a\xe9\x9b\xfb\x46\x38\x37\xb3\xd9\x95\xf5\x6f\xea\x9f\x59\x83\xb1\x67\xd8\xe0\x53\xc2\xd9\x9b\xc8\xb0\x48\x06\xf0\x60\xb5\x81\xdc\x9b\xc8\xb0\x43\xdb\xdb\x18\x6d\x6f\x53\x81\x6b\xb7\x38\xe2\x30\x8f\x5d\x5e\x9b\x3a\x49\x69\xcd\xad\xa9\x79\xe4\x37\x76\x69\xb2\xed\x2f\x4d\xd6\x5d\x9a\xdd\x5c\x9a\x95\x32\xf3\x53\xbe\x33\x8d\xb2\xf6\xca\x6b\xd3\xf4\x94\x8f\x14\x77\x7f\xe1\xbb\x65\x34\x9a\x08\xcb\x95\x96\x5b\x3a\x6f\x2b\x8f\xd5\x38\xc9\x8b\x55\x64\xa0\x51\x61\x7f\x6d\xe8\x99\x11\xdd\x49\x65\x38\xcf\x8b\xc0\xa3\x23\x01\xcd\xff\x2e\x30\xab\xd2\xa5\x17\xe4\x41\x71\xd2\x14\x15\x66\xd6\x09\xf3\xc7\xc0\xb4\x12\xbb\x8c\x4b\x2f\xfe\x0b\x06\x5a\x56\x5c\xeb\xd4\x11\x2a\x40\x11\x57\x8f\xe4\xa3\xb9\xbd\xca\x23\x6b\xe7\xee\xaa\xcc\xa7\xe4\xf7\xac\xfc\x9e\x2a\xf4\x85\xc6\xb9\x79\xeb\xc6\x6b\xff\xe3\xfb\xeb\x1b\xb0\xc7\x10\x25\x25\x49\xbb\xf1\x50\xd0\x82\xe7\xbb\x1a\xcb\x28\x2f\xb7\x30\xcb\xdc\x91\xbe\x6c\xac\xeb\xbe\xed\x65\x6f\x3c\xdf\x3b\x22\x00\x0d\x3a\xde\x8a\xb2\x57\xb5\x0f\x3c\x1e\xc3\x7c\x20\x1a\xde\xa4\x80\x6e\x1c\xc7\x4d\x1a\xc5\x96\x40\xf7\xae\xa6\x11\x2d\xf3\x06\x3a\xb7\xdd\x09\xdf\x12\x89\x76\xf2\xbf\xe4\xdf\x15\x38\x75\x5d\x8c\x77\x1e\x2c\x3d\x90\xea\x30\x54\x81\x3e\x4c\xb9\xfe\xa0\x0f\x6d\x25\x6f\x01\x05\x6a\x9d\x11\xf4\x50\x93\x7a\x0a\x5f\x89\x8f\xe9\xe1\xe7\x65\x68\xeb\x35\xf9\x15\x47\x7b\xdd\xb3\xbf\x21\xbc\xf2\x1a\xcb\x42\x4b\xe4\xf2\xea\x93\x9d\x80\xb8\x1d\x86\x79\x9d\x75\xe7\xf3\xe2\x99\x27\x23\x1e\x18\xea\x72\x3e\x99\x24\x62\x02\x21\x23\x57\xc5\x39\x57\x42\x09\x8b\x2d\xbd\xaa\x08\x53\x75\x67\x4e\x4f\xa4\x00\x42\xe1\x55\x94\xe9\x54\x24\x57\x0a\xa2\xbf\x15\xe3\xf4\x9c\xa1\x2f\x14\x6f\xe4\x35\x69\x01\x47\x93\x37\xb6\xd8\x41\xeb\xee\xc4\xab\x9a\x47\xa8\x70\xb4\x97\x8f\xe5\x7e\x41\x6f\x6b\xb9\x50\xff\x58\xc6\x61\x71\x32\xe0\xc2\xc9\x6f\xb2\x39\x00\x1a\x74\x2b\x60\x6a\xe8\xa5\xcb\x7b\x85\x8a\x41\x3d\xbc\x31\xa5\x49\x3f\xd3\x6c\x2e\x12\xaa\xa9\xa7\x8b\x31\x59\x3b\xb9\x12\xad\x41\x98\xee\x6f\x4d\xdb\xf0\xbc\xf9\x5b\xdf\x7c\xd6\xbc\x56\x84\xeb\x89\x5f\x30\x28\x77\xde\x63\x91\x9a\xc8\xc0\x5e\x25\x19\x4f\x30\x9d\xd2\x50\x01\x73\x34\xcb\x11\xf5\x63\x91\x88\x38\xb0\x61\x3a\x59\x2c\x53\x84\xd5\x37\xdd\xff\x55\xc6\x50\x1c\x51\x25\xfe\x06\xd1\xb7\x6d\xb4\x8e\xc6\xfb\xd3\x6a\xa3\x1a\xef\xe1\x2a\x36\x5f\xbe\x89\x04\xd1\x0d\xbf\xf3\xc8\x8a\xf8\x66\x09\x2a\x77\x74\x94\xc9\xc8\x56\x61\x8c\x48\xc1\x02\xdf\x83\x37\x79\x38\xd2\x35\xef\xd0\x22\xf5\x8e\x33\x3e\x0f\x88\x24\x39\x98\x8b\x45\xe3\x32\x37\x25\x94\x89\x08\x52\x16\x4c\x91\x13\xa5\x8a\x1e\xb1\xa7\x5d\xa7\x6a\x36\xcf\x45\x6e\x0f\xd9\xa7\x21\x30\xb7\x4b\x79\xed\xb0\x11\xba\x4c\xd0\x7b\x92\xff\xfb\x63\x23\x34\x0b\x4c\xeb\xd8\x32\xde\x7f\xe2\xc3\x88\x28\x55\xa0\xda\x75\xc4\x68\x37\x12\xa2\xa5\xb2\xf9\xdb\x76\xcf\xf9\x76\x98\x67\x0a\xc3\xc5\x9c\x2d\xf9\x4f\xcc\x6e\x5c\x55\x0c\xbb\x71\xb9\x0a\x09\xa7\x1b\xe4\x9a\xd6\x30\x6b\xe2\x88\xed\x78\xb6\x65\xaa\x8e\xf5\x1a\xb2\xe0\xfd\xde\x83\x68\x20\x73\x2f\x49\x7b\x64\x32\xc5\x6a\x36\x18\xe0\x45\x4f\x15\x1f\xb2\x82\xf2\x24\x52\x23\x8e\x71\xba\x7a\xce\x03\xa2\xad\x3c\x44\x88\xba\x02\xf0\xd2\x42\x72\x76\x8d\x35\x0c\x3b\x4c\x85\x8e\xc1\x74\x0c\xa6\xbc\xec\xbf\x25\x06\xa3\x22\x71\x05\xa3\xda\x4e\xc0\xbe\xa2\xe7\x57\xc6\xa7\x61\x9b\xbc\xd8\xfc\x86\xa4\xc8\x81\x2a\x7a\x1d\xd1\xe1\x30\x07\x32\x5a\xd8\x58\xa1\x73\xa2\xed\x46\x64\xce\xc0\x66\x9f\x66\x49\x0c\x45\x50\x93\x44\x35\x49\xc0\x54\x8e\x75\x1d\x9b\x25\x8a\x67\x39\xad\x47\x84\x89\x82\x10\x04\x09\x2a\xb1\x66\x3a\x88\x5b\xa6\xab\x91\x98\xf7\xe5\xb7\x34\x94\x07\x0b\xda\xb0\x87\x62\x9d\xc9\xf0\x49\xf0\x66\xcb\x42\x1f\x98\x45\xaf\x01\x26\xaa\x7f\xa0\xae\x7a\x46\xb5\x65\x57\xb8\xe9\x49\x33\xd1\x36\xc0\x44\x17\x55\x60\xa2\x55\xfb\xdc\xd8\xef\x26\x54\xa0\xe6\x0e\xdc\xc7\x36\xdb\xc9\x0a\x5f\x8a\xac\xb0\x19\x2c\xd1\x4a\x49\xa1\x25\xc3\x78\x74\xc8\xa0\x7b\xb3\x8b\x35\x30\x42\xf7\x63\x19\xed\x79\x45\x0b\x26\xd1\x71\x87\x2f\x9c\x3b\x3c\x1c\x5b\xe8\xf8\x41\xc7\x0f\x3a\x7e\xe0\xb5\xaf\xe1\x07\xbb\x67\x04\x9e\x35\x74\x15\x70\x9c\x6d\x44\xfa\xa4\x6f\x60\x2b\x39\x99\x5c\xa5\xea\x24\xb3\x46\x3e\x17\x1b\xe5\x2c\x7d\x95\xea\x12\x77\x53\xe5\xfc\xa9\x9e\x2a\xca\x00\xa3\x40\x06\xd3\x5c\xbf\xae\x6b\xd6\xce\xb0\x57\x9f\x1c\x52\x65\x3a\xc5\xa4\x0d\xbf\x00\x83\xfd\x91\x7c\x8b\xb6\x58\x06\x8c\xc8\x12\x65\x8c\xab\x98\x65\x51\x2a\xe7\x11\xa2\xa1\x79\xa9\x1c\x1e\x34\x1d\x8f\x97\x8c\x17\xea\x31\x88\x90\xf1\x89\xe9\x31\x85\x8a\x4c\xb6\xec\x4f\x9c\xcd\x44\x62\x28\x43\xfe\x12\xa8\xee\x14\x2f\xf3\xde\x73\xff\x71\x6d\x41\x80\x87\x8f\xe8\x8b\x55\x7c\x45\xa3\x7b\x7f\xf5\xc3\xba\x55\x7e\x5b\x6c\x4d\x64\x19\xf1\x4a\xe6\x3c\x49\x25\x8f\x58\x96\xd8\x08\x2c\xce\x32\x2d\x12\xcb\xba\xa7\x7c\x21\x18\x0f\x00\xad\xc2\x10\x50\xf6\xc7\x42\x52\x34\x1e\x39\xb0\xdc\x70\xdc\x9a\x71\x16\x45\x3d\x36\x96\x31\xd4\xc2\x11\x73\x97\xd9\xcd\xd3\x29\xbb\x96\x71\x20\x28\x53\x96\x48\x3e\x8c\xc8\xf4\x68\x8e\xac\x3b\x77\x60\xb5\x29\x24\x7e\xc1\x2b\xcc\x19\x0c\x20\x66\x6c\x5c\x74\x1f\x6b\xdf\xe9\x0c\x6c\x81\xd7\x79\x97\xc9\x21\x1a\xf0\xd8\x61\x51\x40\x60\x4d\xaa\x60\x73\xf3\x1d\xdf\xd7\x59\x30\x35\x53\x1a\xee\xcd\x55\xa8\x87\x7b\xe6\x6e\x0c\xf7\xb4\x08\x12\x91\xea\xe1\xde\x01\x20\x34\x95\xe6\x41\x10\x57\xde\xb3\x86\x05\x0c\xf7\x0e\x7a\xcc\x99\xdf\x47\x2a\x9d\x3e\x7e\x16\x2a\x0d\xb2\x4d\x74\xee\x95\xdf\xb6\xec\xe8\x2e\xa6\x2d\x79\x01\xb9\x75\x64\x82\xe5\x61\xb2\xe6\xb0\x79\x71\xb8\x5e\xb5\x91\x3c\xf8\xf6\xb3\xad\x4a\xdb\x15\x29\x89\x69\xf9\x61\x41\x79\xb8\x32\x7b\xfb\xdc\x79\x14\xf9\x35\xa7\x38\x7c\xb4\xf4\xeb\xb1\x27\xbd\x10\xc9\x68\xdd\x84\x7f\x32\x6d\x8a\x93\xc5\xaf\x90\x3e\xb8\x1b\xf3\xc3\x0f\x28\xc2\xd1\x64\x8c\xc8\x87\x21\x3b\xe7\x29\xca\x46\xe2\x8a\xf2\x2f\x21\xe8\xc6\xc6\x2d\x86\x0e\x42\xd1\xac\xd9\x80\x41\xe7\x35\x8b\x04\x52\xd2\x93\xca\x58\xc3\xc5\x5b\x27\xbb\xac\x13\x02\xd6\x44\xe2\xe4\x21\x38\x3e\x35\xdc\x79\xfc\x4d\xe7\x9e\x7b\xd2\xba\x63\xa7\x62\x7d\x29\x2a\xd6\x6f\x22\xfe\xa3\x0b\xfc\x68\xa7\x1d\xee\x3e\xe2\xa3\x5d\xa8\x47\x63\x8c\x47\xa2\x9a\xf5\xbe\x86\x08\x0f\xdf\x9f\x0a\x91\xe3\xb9\xb6\x07\xc9\x5f\xed\xdc\xae\xe9\xda\x00\x10\x94\x05\xf2\xce\xfd\x66\xa3\x65\x45\xd3\x94\x29\x13\x1f\xa5\x86\xaa\x9c\x46\x7a\xf2\x9c\x23\xa0\x80\xb1\x89\x5c\x88\xd8\x1f\x2c\xc0\x61\x1b\xfd\x04\x71\x7d\x71\xb0\xdc\xd3\x22\x3a\x1e\xd7\xf1\xb8\x8e\xc7\x95\x97\xfd\xb7\xc4\xe3\x1e\x39\x04\xa5\x89\x4c\xba\x9a\xbb\xdb\x50\xca\x2e\x40\xa5\x0b\x50\x29\xcb\x10\x0f\x12\x99\xd2\x3e\x24\xa5\x45\x2c\x4a\x17\x84\xf2\x5b\x61\xa3\x5b\xba\x19\x1f\x2e\xfa\xa4\x0b\x3b\xe9\xe4\x83\xce\xcd\xd8\x9a\x09\xec\xde\xcd\xd8\x22\xd0\x64\x55\x84\x49\x17\x5a\xf2\x25\xd3\xfc\x07\x20\xf6\x1d\x95\xef\xa8\x7c\x47\xe5\xbd\xf6\x3e\x95\x7f\x18\xf2\x5e\xd4\x8a\x1b\x75\x5a\x1b\x34\x51\x09\x21\x81\x13\xee\x68\x24\xa8\x7c\x88\x6e\x9a\x69\x2f\x23\x7e\x6d\x80\x47\xcb\xf8\x0e\x1b\xde\x81\xd1\x13\x68\x75\xce\xa3\x38\xe8\xcd\xb9\xdb\xea\x41\x4d\x49\xe6\xcd\x00\x1b\xe2\xf9\x70\x77\x30\x82\x78\x3d\xa2\x92\x0f\x9f\x64\x03\x5d\xee\x3b\x82\x96\x17\xc5\xed\x57\x79\xcd\xca\x33\x58\x77\x97\xd6\x9d\x4d\xab\xde\xaf\x42\x7a\x41\x92\xec\xce\x26\xf7\xcc\x2e\x05\x73\x04\x53\x09\xc6\xa2\xc8\xd0\x50\x3d\x04\x0d\xa7\xb3\x4a\xb6\xf0\x82\xc3\x1d\xb0\xa4\xbd\xd8\x8e\xa9\x8a\x42\xc6\x6d\x5a\xfc\xf9\xe5\x45\xce\x0d\xe8\x7d\x3d\xb4\xe3\x20\x3b\x19\x53\x48\x87\xb5\x85\xd8\x30\x0e\x18\x82\x11\x17\xf0\xf4\x82\x69\x67\x83\x18\xa8\xb6\x57\x04\x4d\x33\x14\xf8\x44\xef\xa2\xa0\x24\xcf\xa1\x4b\x06\x9f\x81\x2d\x01\x06\x57\x78\xb8\x87\x35\x47\x80\xb5\xc9\x40\x9c\x07\x81\xca\x90\x6b\x61\xe9\xe3\x52\xeb\x46\x2a\x46\xdd\xbc\xb7\x33\xc6\x91\xb9\x6e\x1e\xee\x5e\xaa\xb1\xdd\x9b\xf2\x3d\x18\xb0\x9f\x10\xd8\x0f\x45\x47\x42\x2f\x90\xda\x5b\x25\x9e\x08\x36\xdc\x33\x83\xc6\x32\x2b\x30\x6a\xf3\xa7\x99\xc2\x70\xaf\xb8\x28\xc3\x3d\x67\x92\xf3\x4c\x6e\xce\x79\xe2\x49\x81\xa6\x89\x19\xbf\x95\x18\x4b\x8f\x90\x00\x9a\x08\xa8\x17\x91\xdb\xe9\x1e\x8c\x72\xd0\x61\x68\x5a\xa7\xed\x5e\x0c\x46\xca\x16\x6f\x27\xab\x67\xe5\x3c\x5a\xb1\xdc\xae\x29\x8d\xee\x03\x11\x5b\x73\x9f\xbc\xbc\xe1\x3c\x32\x0a\x77\x0b\xa3\xaa\x0a\xfb\x05\x7b\x4b\x65\x55\x71\x4b\x30\x84\x68\xa7\xab\xdf\x92\x6a\x3e\x04\x85\xa4\x2a\x85\x1d\x08\x50\x07\x02\x54\xbe\x90\x0f\x07\x02\x84\x87\xee\xb7\x85\x04\xc4\x5e\x1b\x9d\x2d\x80\x50\x5c\x19\xb3\xc5\xf1\xe0\xf8\x4f\xe6\x8f\x31\x5f\xa8\x04\x44\xa7\x26\x2e\x76\xb8\x38\x2e\x62\x1f\x98\x13\x44\x65\x50\x58\xa4\xe2\x89\x48\x10\x63\x30\x59\xb8\xbe\x4f\x8e\x1e\x0f\x7a\xa8\x9e\x04\xac\x52\x9a\x3a\xfc\xa1\xce\xc0\xd4\xf9\xe6\x3b\xab\xcc\x93\xf2\xcd\xff\x16\xf0\x87\x90\xd4\x7e\x99\xb1\x68\xed\x40\x88\x60\x05\x36\x37\x32\x55\x24\x86\xdf\x3c\x1c\xd1\xce\xe4\x09\x9a\xdc\x0e\xc5\x8a\x8e\xcf\x75\x7c\xae\xe3\x73\x4f\x95\xcf\xdd\x2f\x06\x8d\x6a\x3d\x74\x58\x48\x8f\x1e\x6a\x66\x41\xc9\x7f\xef\xf1\x66\x1b\x01\x22\xed\x58\x5c\x78\x48\x68\xa4\x9d\x73\x74\xf3\xee\x8e\xab\x7f\x09\x5c\xfd\x89\xe2\x32\x35\x0a\xd5\x1b\x13\xa7\x4e\x82\xf9\x02\x25\x98\x2e\x7e\xa2\x74\xa6\x37\x07\x67\xda\x15\xfb\xda\x2d\x4c\xd3\xee\x38\x95\xee\xf8\x53\xc7\x9f\x76\x1f\xc5\x57\xf5\x0f\x75\x1c\xa9\xe3\x48\x1d\x47\x62\xe5\x33\xbd\x01\x3c\xd4\xbd\x58\x51\x07\x14\xd5\x01\x45\x75\x40\x51\x1d\x50\xd4\x23\x1f\x97\x0e\x28\x6a\xd5\xaa\x3c\x14\x50\xd4\xb3\x3f\x3e\x6b\x04\x88\x72\x40\x0d\xae\xd4\xad\x23\x99\x03\xf6\xec\x8f\x87\x63\xa5\x0a\x0f\x43\xdb\x6c\xe4\x4e\xdb\x33\x68\x00\x55\x7d\xdb\x76\xdb\x41\x52\xfd\xde\x20\xa9\x72\x1f\xc5\x13\xc0\xa5\xba\x9f\xae\xbc\xe3\x80\xaf\x4e\x47\xee\x3c\xb3\x9d\x16\xf9\x54\x3d\xb3\x4f\x1a\x01\xeb\x4b\x0e\x3d\x7a\xc8\x98\xa3\x0e\x10\xeb\x01\x01\xb1\xee\xcf\x5c\xbb\xe8\xa7\x8e\xc7\x76\x3c\xf6\xf7\xc3\x63\x3f\x47\xf4\x53\x07\xc3\xd5\xc5\x46\x3d\x25\x2c\xae\x5d\xc9\x33\xbb\x45\xe5\xda\x19\x2f\xef\xe2\x9e\xbe\x14\x7e\xfe\xd4\xa0\xc0\xaa\x12\xfd\x7d\x0c\x85\x9d\xb4\xf2\xa5\x48\x2b\x9d\x5f\xb9\x74\xa6\x37\xc0\x03\xbb\x37\x33\xba\x2f\x32\xd8\xfd\xf9\x4e\xc7\x70\x3a\x86\xf3\x20\x11\x4c\x5d\xe8\x52\xc7\x62\x3a\x16\xb3\x3d\x18\xd9\xbd\x79\x4b\x07\x4b\xd6\xc1\x92\x3d\x41\x58\xb2\xa2\xb9\xa3\xc3\x26\xeb\xb0\xc9\x3a\x6c\xb2\x0e\x9b\xac\xc3\x26\xb3\x64\xd2\xa8\x2a\x61\x16\xc9\x78\x02\xa5\x9b\x12\xa9\x12\x99\x2e\x5f\x45\x5c\xeb\x55\xf1\xc7\x7e\x3b\xa7\x52\xcd\xf8\x1c\x02\x81\x28\xb8\x72\x4e\x8d\x58\x00\xad\x80\xc1\x10\x25\x75\x3f\x19\x9d\xc8\xa8\x7f\xb0\xb4\x03\x76\x63\x94\x32\x58\x65\x0a\x1c\xe2\xf1\xd2\x7c\x21\x43\xdb\xb2\xd3\x0a\x9f\xb4\x56\x58\x5c\xe1\x55\x8b\xef\x7d\xa4\x10\x52\x9e\x8c\x64\x9a\xf0\x64\x69\xd5\x2b\x90\x0b\x33\x9d\xf1\x28\x5a\xb2\x79\xa2\x16\x32\x14\x9a\x4d\x32\x19\x8a\x08\x76\x4b\xc5\xec\x0e\x31\xaa\xa4\x2e\x1f\x37\xda\x07\xc2\x97\xdb\x82\x0e\xa1\x23\x89\x58\xd4\x9a\xc9\x14\xda\xba\xd0\x4a\x6d\x46\x07\x3c\x1f\x06\x58\xbc\x34\xf9\xf8\x02\x15\x6b\x19\x8a\x04\x83\xe3\xcc\xd1\x08\xa9\x23\x37\x25\xc3\xfe\xe6\x2a\xa4\xa0\xba\x50\x01\x05\xc2\xb8\xeb\x78\x59\x9a\xf9\x80\xbd\x8b\xa3\x25\x04\xac\x17\xdf\x48\x57\x6a\xc6\x93\x0f\xf8\xaa\xdb\xc2\xb0\x6f\x07\xec\x6f\xea\x4e\x2c\x44\xd2\x63\x72\xcc\x66\xe6\x8c\xa5\x53\x40\x24\x28\xf5\x24\xb4\x0d\x4f\xb8\x93\xe9\xd4\x8c\x58\x26\xe5\xce\x28\x2c\x5b\x8b\x14\xce\x7b\x62\x59\x95\x9e\xf1\x28\x32\xe7\x1e\xaf\xb9\x1a\x23\xf5\x25\xaf\x9d\x9d\x78\xf9\x75\x05\xa8\xc0\x86\x45\x6a\xd8\xe2\x91\x52\x91\xe0\x71\xa7\xf4\x7f\xd9\x4a\xff\xfd\xbd\xe0\x0f\xbd\x62\x6e\xd2\xb5\x4b\x32\x4f\x84\x91\x28\xa4\x8a\x31\x6e\x6c\xcd\xa9\xbc\x2c\x35\xb7\x5a\x1c\x7d\x02\x7a\x41\x4d\xe2\x09\x92\x0e\xb8\xab\x91\xba\x13\x49\x7e\x65\xd8\x3b\x4c\x6b\x79\x8b\xd7\x9e\x7a\xfd\xc1\x34\xba\x74\x6d\x7c\x29\xbd\xae\x85\xa1\x16\x59\xac\x45\x3a\x40\x5d\xc7\x25\x64\xf0\x68\x3e\xe5\x7d\x00\x8f\x04\xb6\x66\x73\x34\xa6\x2a\x56\x09\xca\xcc\x9a\xee\x03\xc6\xfc\xc7\x90\xb7\x61\xe6\xf1\x56\xc5\x97\x6e\xfc\xee\x45\x63\xc1\xcd\xea\x6e\x41\xcc\xe1\xd2\xae\x59\xd3\x5c\xf8\xb0\x0c\xbf\x4c\x58\x61\x7a\xb4\xd2\x3c\x48\x33\x1e\xe5\x4d\xc8\x88\x01\xce\xfd\x40\xc8\x85\xb0\xac\x49\x50\x64\x56\x31\x77\xc9\xe8\x84\x40\x95\x31\x6c\x41\x02\x7d\x07\xce\x51\x9a\x1d\x9a\x49\xcc\xf8\x64\x9c\x9e\x9e\xd4\x4f\x9d\x84\xa3\x2d\x82\xc8\x61\x5d\x1e\xd1\x72\xe5\xc9\x9b\xab\x2c\x56\x45\x41\xb4\xd9\x6c\xb5\x81\xc5\x6a\x85\xa4\xbb\xc6\x2f\x52\x69\x5b\xe7\x20\x29\x9e\x95\xb6\xba\x78\x27\xa8\x3e\x61\xf7\x85\xb4\xee\x0b\x58\x05\x72\x60\x94\x44\x93\xdd\xb8\x32\x56\x69\x61\x5e\x57\x9d\x53\xe3\x77\x2b\xdf\x6c\xe6\xd4\x80\xc3\x6a\x47\xf1\x19\x04\x9b\x96\xdc\xe7\xd1\xfd\x26\xdb\x70\x9f\xdd\x55\x71\x29\xdc\x72\x4a\x12\x68\x69\x70\x79\xfd\xe6\xf2\xea\xcd\xab\xf3\x9b\x37\xaf\x59\x1f\xc5\x10\x34\x32\xd2\x50\x2a\x84\xc9\xdc\xe8\x30\x77\xd6\x1b\x49\xab\x3c\xf5\xc3\xc5\xf1\x61\xe1\x99\x01\xeb\xcc\x3a\x1d\xb7\xec\xcc\x3a\x9d\x59\xa7\x33\xeb\x74\x62\xcf\xd3\x10\x7b\x3a\xb3\x4e\x67\xd6\xe9\xcc\x3a\xbf\x3b\xb3\xce\xa6\xd1\x48\xeb\x24\xeb\xce\xc0\xf3\xbb\x13\x59\x9f\xb0\x81\xa7\x4e\xf5\xeb\xac\x3c\x9d\xb8\xd3\x59\x79\x9e\xac\x95\x67\x63\x86\x94\xaa\x84\x4f\x84\xd9\xd3\x57\xd7\x17\xaf\x13\xb9\x10\xc9\x2a\x54\x59\xdb\x86\x05\x7c\x6e\x76\x40\xd7\x40\xf2\x71\xf6\x8a\x40\x8b\x12\x76\x8d\xfd\xb3\x0b\x43\xb3\xc7\x3c\x10\x6c\xff\xd5\xf5\xc5\x01\x5b\xa8\x28\x9b\x09\x16\x62\x67\xa1\x98\x47\x6a\x29\x42\xa6\x28\x8b\x16\xd3\x65\x07\xec\x7b\xb7\xc2\x8c\xa7\x29\x0f\xa6\x2c\x14\xf0\x1f\xaf\xbe\x57\xa6\x2d\x6e\x15\x51\x80\x54\x99\x56\x22\x99\xc9\x58\x38\x15\x98\x1e\x97\x78\xb1\xcd\xe6\x63\xef\x91\x48\x5b\xf6\x60\x04\x24\x7f\xb2\xb1\x10\x21\xb0\xa6\x91\x60\x73\x43\x82\x61\xf8\x33\x95\xc5\xe9\x80\xe5\x0b\x65\xe3\x21\x11\x17\xce\x8b\xe7\x0a\x3b\xc6\xfc\xa4\x19\x73\xc7\xad\xbe\x14\x6e\xb5\x9d\x72\xee\xa9\xe6\xee\x2f\x0c\x44\x8f\x43\x19\x98\x13\x5f\x81\xf9\x7c\x75\x7d\x61\x49\x1a\x41\x09\xfa\x3b\x3d\x06\x4d\x53\xfd\x85\xc9\x94\xfd\xf8\xfe\xfa\xc6\x6c\x50\x01\xd0\x85\x52\xf9\xf3\xfa\x83\xa6\xbf\xef\x44\x7a\x19\x65\x13\x19\x9b\x77\xef\x1f\xb0\x80\x47\x11\x25\x02\xf0\x94\xde\x86\x96\x6b\x7a\x33\xf4\x04\xc8\x00\x23\xc1\x5e\x9e\xb2\x60\xca\x13\x1e\xa4\xe6\xe5\x2a\x61\x91\xd0\xba\xc7\x46\x62\x22\xe3\x18\x42\xc0\xe3\xd0\x1c\x2c\xf3\x27\x68\xe8\x3c\x46\xbd\x19\xb0\x43\x65\x90\x3f\xcd\xf6\x7f\xe6\xfd\x7f\x1e\xf5\xbf\x3e\xef\xff\xc7\x2f\x07\xd8\x38\xe4\x7a\x2a\x34\xdb\xef\x1f\xf4\x58\xa8\x52\xcd\xf6\x07\x07\x54\xeb\xca\xeb\x43\xb3\x91\x48\xef\x84\x88\x3f\xb3\x8d\xc3\x68\xb7\x1b\xa3\x44\xd4\x31\xc8\x6b\xd3\xd1\xca\x93\x84\x16\xd8\xc0\x11\x57\xbb\x99\xf8\xfc\x16\x99\x3b\x30\xf6\xc7\x14\x4d\x68\xda\x2b\x81\x86\x9d\xc0\xb0\x1b\xaf\x53\xcd\x4a\xaf\x03\xb9\xf7\xdb\xd5\x42\xdc\x97\xd9\x70\xc7\x73\x9f\x34\xcf\xdd\x5a\x19\x6e\x38\x8b\x5b\xab\xc1\x75\x62\x71\xa7\xfa\x76\xc2\x44\xa7\xfa\x7e\x06\xfe\xb2\xc3\xc8\x86\x26\x6e\xde\x82\xc7\x98\x76\x96\xec\xe8\x32\x83\xe7\x39\x05\x6a\xc3\x62\x40\x19\xbd\xca\xb7\x62\x15\x5d\x28\x36\x2e\x48\x9f\x52\x83\x54\x51\x54\xa6\x69\x87\xd1\xa7\x8d\x5a\xaf\x19\x05\x0e\x75\x7f\x24\x02\x9e\x69\x80\xee\x93\xb3\x79\x24\x66\x0e\x93\xd9\xf4\xf4\xca\xa9\xd5\x97\xd9\x28\x92\x7a\xfa\x13\x74\xbd\x7f\x60\xce\xf0\x54\x85\x07\x36\xcb\x88\x70\xb2\xdb\xe8\xe7\x96\xa3\x59\x6c\x4b\x6a\x48\x83\x96\xce\x30\x80\xe0\x82\xc1\x54\x04\x1f\x88\x91\x42\x0b\x6c\x3e\x03\xfa\x94\xf2\x34\x43\x88\xc2\x3b\x6e\x08\x55\x16\xa7\x32\xf2\xda\x02\xf9\x84\xf6\x46\x86\x16\x63\x73\xdd\xe6\x89\x0a\x84\x00\x01\x37\x55\xa8\x9e\x03\x86\xef\x0d\x4d\x59\x7c\x44\x06\xda\xa7\x07\x13\x16\x28\x95\x84\x32\x86\x35\x06\x31\xb7\xba\xc6\x66\x08\x48\x0e\x57\x0f\xd5\xfa\x60\xaa\x1b\x21\x35\x0b\x94\xd9\x80\x34\x47\xfe\x72\x47\xe8\x4a\x4c\xa4\x4e\x13\xe7\x71\x62\x13\x9e\xc2\xe4\xd0\x45\x15\xd2\x26\x88\x3c\xd3\x2b\x47\xc9\x4e\x15\x1b\xf3\x48\x93\xbf\xbb\xf2\x5e\x57\xe9\xfc\x83\x9c\xcf\x0d\x31\x7f\x97\x4e\x45\x72\x27\xb5\x58\xdd\xde\x6c\x5f\x63\x1c\xc3\x4a\x27\xf7\x5c\x85\x17\xf1\x58\xbd\x8b\x7f\x34\x6b\xbf\x0e\x89\x61\x5c\xf4\xd9\x17\x1f\xde\xe4\xf0\x87\x21\x50\x75\x1e\x55\x0c\x37\xfb\x91\xfc\x20\xcc\xb7\x46\xa3\x82\x57\xbc\xbf\x78\xdd\x63\x22\x0d\x06\x07\x2c\xcc\x80\xf7\xc2\x39\xc9\x97\x41\xc3\x1e\xd1\xc8\x68\x79\xcb\xdd\x12\x50\x48\x5a\x6b\x0f\xb2\xb1\x19\x86\x05\x9b\xc7\xf3\xf3\x47\x03\xcf\x83\x36\x4a\x53\xe6\x1a\x0a\x1b\x18\x22\x53\xb0\x96\x99\x63\x86\x27\x07\x16\xca\xda\xb2\x60\x14\xe6\xf5\x95\xf1\x71\xcd\xf0\x36\x9b\x4b\x2e\x3e\xa6\x16\x88\xce\x0c\xe2\xad\x0a\x45\xf9\xc6\x9b\x1d\xd7\x95\x71\x82\x1c\xab\xe7\x2a\xd6\xd2\xd6\x2e\x98\xf3\x44\x5b\x55\x12\x82\xa5\xb8\x93\x55\xfc\xf7\xd3\x9a\xc8\xea\x48\xf0\x25\x63\x15\x45\xea\xce\x3c\xe9\x7e\x34\xa3\xb4\x07\xd0\x3e\x3e\xae\x9c\x09\xed\x1f\x19\xf2\x92\x22\xdf\x95\x93\x69\xca\x26\x89\xba\x43\xb8\x55\x0c\xfd\x12\x63\xf9\xb1\x10\xd1\x31\x60\xc3\xbd\x40\xe7\xcc\x81\xd8\xf1\x5c\x85\x03\xa3\x4b\x0f\xf7\xce\xcc\x2b\x51\xf7\x5f\xd9\x12\xcc\x7a\x7e\x73\x4c\xfb\x6c\x7c\x26\x93\xa1\x69\x8d\x02\xcc\xbe\xf9\xe6\xfd\xc5\xeb\x83\xfa\xf6\x62\x3e\x15\x33\x91\xf0\xc8\x3c\x31\xdc\x33\x53\x1d\xee\x31\x39\x1e\x97\xc9\x5f\xcc\x5c\x53\x26\xe3\x48\xc6\xf6\xd7\x61\xcc\xd6\xfc\xcf\xcb\x11\x06\x7e\x86\xfb\x70\x0d\x82\x66\x8f\x29\x47\x28\x86\x7b\x70\x86\x87\x7b\xc3\x78\x18\xaf\x1b\x2d\x01\xb2\x8b\x3b\x47\xcc\x64\xec\xf3\x8d\xe3\xc1\xf1\x4b\xc0\xa6\xb5\xee\x79\x2b\xa1\xc0\xd9\xc2\x53\xa7\x89\x39\xe8\x6c\x0e\x09\xab\x23\x85\x71\x3f\x6c\xb8\x77\x69\x24\x01\x9d\x8a\x38\x1d\xee\x51\xc6\xf2\x1b\xef\xe5\x38\x85\x1f\xe4\x58\x04\xcb\x20\x12\x3f\xaa\x50\x10\xc9\x73\x5d\x07\x3c\x66\x91\xe0\x0b\xe1\x6e\x0c\x0b\xa5\x76\x74\xf6\x50\x25\x4c\x4e\x62\x0c\x47\xb2\xe1\x05\x03\x76\xae\x4b\x93\x78\x01\x59\xd0\xf1\xb3\xd4\x8d\x32\x6f\xde\x2b\xbc\x0c\x66\x69\x1b\xa9\x58\xb0\x99\x0a\xc9\x5d\xef\x1b\xc2\x31\xdb\xd7\xda\xc2\x1d\xc9\xcf\x6f\x7f\x6e\xa3\xb6\xeb\x03\x1d\x01\x73\x96\xba\x07\xeb\x27\x3e\x72\xc3\x64\x00\xe3\xd7\x28\xc7\xb3\x99\xe9\x07\x4e\xc5\x9c\x27\x7c\x66\x7a\xb0\x06\x8a\xb0\x24\xbe\xb4\x27\xf1\x8b\xea\x2a\xaf\xd3\xe2\xea\x1e\x71\x6a\xf4\x9d\x99\xc2\x07\xca\x6c\xc7\x96\x8d\x14\x9f\x16\x92\x28\x95\x8d\xca\x92\xe3\x5c\x3d\x34\x7c\x13\x92\xa0\xa5\x2e\x1d\x98\x1e\xad\x1b\x49\x75\x99\xe6\x13\x51\xcc\x94\x47\xda\x57\x14\xf7\x20\x96\xc4\xca\x4e\x48\xd1\xbc\xa3\x60\x56\x1a\x3b\xcb\x78\xc4\x2e\x7f\x3a\xbc\xfc\xe9\x15\x9b\x89\x60\xca\x63\xa9\x67\x38\x4a\xb8\x4a\xb8\x5b\x30\x26\xef\xc4\x82\x76\x05\x53\x35\x3f\xf7\xdc\xec\x79\x92\x8f\x8c\xae\xb5\x84\xb8\x3d\xa4\x6a\x14\xbc\xe1\xe4\x15\xff\xea\xda\xa3\x23\x13\x16\xd9\xf5\x86\x29\x93\xb8\x80\x0b\x65\x7f\x80\xc3\x80\xb1\x24\x03\x76\x6e\x57\x79\xca\xad\xab\x83\xdf\x99\xa1\x58\x9b\x86\x2f\x4e\xd2\xfd\x9d\x28\x92\xb5\x26\x22\x65\xbc\xca\x5a\x72\x0b\x26\x9d\x70\x9c\xe2\x80\x7d\xab\x12\x0c\xfb\xab\xba\x94\xdc\x72\x23\x63\x71\xab\xa3\x85\x70\x9a\x94\xa7\x92\x18\x8a\x34\x91\xe9\x34\x1b\x19\x62\x14\xaa\x40\xe7\x14\xa9\x1f\xa9\x80\x47\x7d\x5a\xd7\xc1\x34\x9d\x45\xf9\x34\xcd\xf5\xf4\x6f\xa6\x1d\x11\xde\x10\x8d\x57\x15\x25\x50\xf8\x1e\x3f\x1a\x1d\xdb\xac\x4c\x18\xda\x32\x1d\x82\x8d\x33\x08\x15\x2a\x85\x24\x8d\x8c\x12\xf9\x80\xc5\x39\x0a\x3f\x15\xb4\x34\x73\x13\xfa\xae\x53\x91\x6e\x00\xe2\xde\x4e\x99\x32\xfb\xbc\x5a\x8d\x32\x2d\x6a\xca\x80\x91\xd3\x30\x8a\x3c\x31\xc3\xb4\xd0\x29\x88\x9c\x86\x14\x72\x16\x03\xe1\xf6\x1b\x50\x14\x6a\x2c\xf0\x10\x07\x89\x30\x32\x32\xdd\x58\x78\x15\x59\x45\x10\xc0\x24\x5a\x02\xcd\x8e\x94\x11\x54\x34\xc6\x45\x65\x24\xf4\x9a\xce\xfb\xd8\x6f\x3f\x41\xd1\x9b\x27\xcc\x5c\xae\x80\x27\xae\x02\x4b\x82\x12\xf5\x07\x5f\xd0\xe2\x59\xaa\xcc\x34\x02\x8c\x11\x56\xf3\x2c\x6a\x18\x85\x85\xee\xf1\x44\x29\x4f\xb2\xb3\x9d\xce\xc1\xd2\xcf\xec\x20\x00\x5b\xc4\xf5\x34\xa5\xc8\xd3\xdc\x5f\x00\x35\x4a\x70\x69\x8a\x00\x12\xe6\x82\x48\xad\x01\x05\x5d\xda\x7a\x45\x84\xeb\x62\xfe\x11\xe4\x8e\xf4\x8c\xd2\x9a\xf1\x05\x97\x11\x84\xc0\x91\x1b\x36\x86\x3b\x46\x03\xb7\x02\xa6\x8d\xe4\x37\x42\x96\xba\x63\x22\x56\xd9\x64\x4a\x4c\x27\x75\x3c\xd0\x6d\x87\xb3\x4e\x15\xe7\xc1\x63\xf6\xee\x2e\x36\x9a\x8e\xc3\xae\xa9\x82\x2b\x05\x2a\x41\x59\x13\xb4\xb7\x38\x5f\xcd\xce\x8a\xfb\xa4\xad\xb8\x9d\xb1\xf3\x4b\x31\x76\xb6\xf4\x9c\x3a\xff\x68\xc1\xf7\x58\x32\x10\xc1\xfd\x35\x0d\x9a\x10\xca\xef\xef\x9e\x33\xe4\x65\xad\x73\x4e\xaf\xb2\xe3\x59\x46\xf6\xa5\x38\xe8\x60\x32\x0f\x60\x3a\x35\xfd\xb6\x89\x16\xca\xdb\x35\x72\xfe\xda\x7d\x30\xc2\x97\x6f\x75\xa8\x4a\x03\x2d\x58\x40\x64\x44\xbd\xd4\x70\xb4\xfb\x9c\x2b\x94\x5a\xcd\x44\xae\xea\x49\x62\xd9\x5e\x9b\xbf\xb6\x5c\xf6\x8e\x34\x97\xbc\xc6\x1d\x58\x8e\x63\xa7\xb5\x41\x35\x4a\xc7\x85\x41\x44\xce\x43\xc4\x6a\x45\xc9\xda\x9b\xd4\x02\x12\xcb\x0f\x25\xdf\x38\x82\x81\x86\xb2\xe3\x18\x86\x2d\x10\xb8\x54\x28\x2e\x5e\xaf\x99\x29\x36\xb2\xf3\x83\xb5\x76\x7c\x81\x66\x8a\xbc\xc1\xa8\x9a\x52\xdc\x15\xd6\x19\xed\xad\x05\x55\xdf\xc8\x9a\x48\xe6\x03\x23\xe1\x80\xc2\x45\xa7\x85\xe9\xa5\x06\xe7\xa4\x9f\x26\xa5\xa7\x3c\xf1\xd7\x48\xcd\x44\x1c\x44\x68\x09\x41\xcc\xbc\xd0\x70\xf3\x6f\x73\x65\xbd\xe7\xbf\x0e\xa5\x00\x60\x69\x2a\x2f\xa8\x63\x66\x01\x40\x60\xe6\xaf\x63\xa3\xc8\x5a\xfb\x56\x71\x28\xc5\xc7\xbd\x41\xf8\xcf\x9f\x1b\xad\xf3\xdf\xa6\xa2\xa0\xc6\x4a\xad\x33\xa1\x3d\x9b\x81\x7d\xbe\xd8\xbf\x19\x14\x9a\x8c\xad\x1e\x87\xe3\xb4\x17\x9a\x64\x48\x89\x25\x8d\x50\xe0\x76\xab\x9b\xaa\xe2\xd8\x1c\x87\x60\x99\xb6\x02\xc0\xc5\xeb\xdc\xdb\x50\x7a\x37\x48\xe0\x59\x1c\x8a\x44\xa7\x3c\x0e\x7b\x4c\x0c\x26\x83\x7c\x4e\x40\x34\x04\x07\x1b\x82\x5b\xa8\xf2\x2d\x72\xc1\x80\x9b\x9f\xbe\x54\xcd\x55\xa4\x26\xcb\xef\xc5\x72\x9d\xb1\xc3\x6f\x5a\xf6\x5c\x7f\x30\xdf\x91\xce\x99\xdf\x1a\x1b\xd7\x03\xdb\xc2\x3d\xe3\x2b\x10\x2b\x1e\x81\x24\x08\xb4\x90\xec\x43\xb0\xc6\x2e\x49\xd1\xd5\xc4\xb5\x6f\xc6\xd7\x58\x29\x3d\x5f\x34\xcd\xf6\x69\xd5\x02\x35\x9b\xf3\x78\x39\x08\xd4\xec\xf0\x9f\x2a\x16\x08\x06\xe8\x7f\x6b\xb4\x12\x15\x0f\xf7\x0e\xda\x0c\xcb\xed\xbb\x1b\x93\x3b\x7d\xc5\x31\x71\x50\xc9\xe0\x1a\x59\xc9\xb6\x60\xcb\x16\x1f\xe7\x0a\xf5\x34\x5d\x79\x54\xb3\x88\x8f\x44\x04\x99\x98\x46\x96\x53\x77\x71\x41\x4d\xa8\x9c\x6a\x00\x2a\x74\x9d\xa0\x29\x03\x06\x68\x58\xa2\xd5\x96\x0a\x27\x15\xb6\xa9\x14\x0f\x2a\x83\xa9\x7d\xb1\x4c\x73\x2c\xbd\x34\x91\x62\xe1\x51\x17\x6f\x24\x20\xd0\x83\x55\x7e\xc4\x83\x0f\xf6\xbc\xdb\x4d\x46\xe3\xe7\x5c\xe9\xdc\xa6\x1e\xca\x31\x28\x46\x29\xd2\x07\xf3\x84\x19\x52\xfe\x75\x61\x25\x06\x39\x78\xe7\x48\x58\x63\x57\xee\x2f\xb0\xe8\x8c\xce\x30\x49\xcf\x3e\xa9\x32\xa1\xc0\xb4\xaa\xc4\x7d\x9d\x48\xd5\x5e\x5c\x59\x1f\x4b\x64\x5b\x35\x44\x12\x79\xea\x7c\x17\x47\xf4\xb4\x35\xd0\xfb\xc4\x11\x55\x45\xe6\xdd\x44\x11\x15\xf5\x8a\x2e\x86\xe8\x77\xac\x56\x77\x31\x44\x8f\xac\x02\x3f\x54\x04\x91\x33\x38\xac\xe5\x2b\x10\x3d\xb4\x91\x0a\xdc\xc2\x22\xbe\x9e\x09\xd1\xc3\xeb\xc0\x30\xec\x2b\xfc\x0a\x18\xfe\x30\xbd\xe1\x58\x6b\x31\x40\x30\x40\x39\xed\xd8\x37\x42\x9b\x66\xf9\x88\x73\xda\x6a\x24\xad\x2c\x76\x73\xe8\x51\x0e\x32\x48\x2c\x81\x9a\x91\xd4\xb2\xa3\x12\x72\x8d\xb6\x8a\x7b\xbb\x51\xe6\x3c\x0d\xa6\xfd\x99\x48\x26\xa2\xff\x41\x2c\x41\xc1\x2c\x0a\x2e\xf5\x4f\x80\x35\x5f\x4c\x96\x68\x2d\x4b\x26\x5b\x58\x98\xec\x56\xee\x40\x22\xa2\xac\xac\x75\x60\x3e\x7e\x33\x86\xbf\x8d\x48\x38\x71\xce\x63\xac\x4f\xcc\x29\x9b\x5c\x8d\x9d\x92\x66\xbe\x46\x51\x39\xf7\xb8\xfe\x44\xce\x4c\x12\x54\xc3\x65\xcc\x67\xd6\x77\x62\xa5\x70\x11\x0e\x86\xf1\x30\xf6\xdf\x2d\xea\xb2\xa7\xfe\x52\xb1\x5d\xd8\x37\xe3\x50\x78\x10\x40\x18\x17\xb8\x22\x45\x1a\x84\xa8\xa6\xb0\xdc\xa4\x09\x21\x1a\x6d\x04\xb9\x28\x52\x77\x38\xf4\x37\x1f\xe7\x3c\x6e\x23\xd2\xd5\x3c\x62\x44\xb2\x3b\x1f\x93\xa5\x32\x62\xf3\x90\xd5\xa2\x85\x79\xac\xa1\x96\xc1\x4a\x5f\x3c\xf4\x22\xc2\x1b\x94\xf1\xcb\x93\xa9\xa9\x78\x21\x0c\xf3\x0b\xd2\x5c\x65\x49\xdd\xa3\x66\xb0\x89\x70\x3e\xe8\x35\xdb\xc6\xde\x78\x71\x7d\xe4\xc9\xb2\x02\xad\xd5\xce\x72\x45\xd7\x29\x30\x05\xc2\xa7\x07\xec\x3c\x26\x0d\x86\xa6\xb0\xbc\x16\x46\x0e\x57\xc9\x8d\x48\x66\x96\x19\xf2\x58\x93\x23\x0b\x60\xce\xf3\xde\x12\x9a\x0e\x78\xce\x8a\xba\x7e\x5b\xf0\x07\xf2\x9d\x3b\xcb\x5b\x03\xee\xc3\xb6\xc4\x29\x50\x09\x5c\xc2\xba\xe9\xdd\x4b\x3e\xec\x14\x8e\xce\xe5\xd5\xc9\xe6\xad\x2e\xe1\x17\x8c\xe4\x03\x01\xa7\xef\x60\x9c\xeb\x48\xff\xeb\x7a\x42\x5e\xc3\xb0\x2d\x25\x28\x31\xac\x44\x90\xa3\x3f\x74\x50\x5c\x10\x23\x93\x8f\x80\x8c\xb2\x3f\x0f\xf7\x12\x85\x16\x45\xad\xc6\xe9\x70\xef\x97\x01\x7b\xab\x52\x1b\x2e\x2a\x42\xd6\xb7\x21\xb7\xc8\xcb\x2f\x7f\x22\xd4\x2d\x2d\x67\xf3\x68\xc9\xc6\x5c\x46\x4c\xa2\x5f\x08\xf8\x38\x3c\xf9\x38\x06\x2c\x3f\x96\xd9\x89\x3d\xe5\xa5\xcd\xe3\x8d\x2f\xeb\xc5\x88\x8d\x86\x52\xc6\x7d\xc9\xa5\xad\xbc\xce\x4d\x49\x04\xc3\xe0\x56\xbb\x89\xe4\x5a\xb1\x44\x19\xa3\x31\x16\xab\x76\xb3\xc1\x02\xae\x4a\xf5\x97\x8b\xa0\x51\xee\x75\x6b\xf1\xa2\xf2\x81\x15\xd3\x67\x6d\x41\xa9\xd2\xf0\xb7\xb0\xc7\x27\x22\x88\xb8\x9c\xb5\xc2\xaf\x7a\x80\x93\x0f\x7c\xd2\x1b\x41\x11\xb8\xea\xb5\x80\x48\xff\x2d\x90\xa3\x60\x1c\x54\x77\xf3\xc7\x62\x8c\x55\xdd\xcc\x7e\x2a\xb7\xf7\xd6\x7b\xaa\xee\x2a\x33\x7c\x65\x46\xec\xc3\x01\xfa\xcb\x61\x78\xf2\x48\x65\x71\x38\x60\x68\x4a\x07\x9c\xad\x1e\x2b\xbc\xe4\x62\x36\x13\xa1\xa4\x04\x05\x8c\xa7\x7e\x50\xb9\xeb\xbe\x65\x69\xfc\x53\xfb\xc4\xac\x15\x05\xbd\x6c\xd7\xe6\x0a\xbf\xf3\x35\xb6\xf0\x72\xd3\x3a\x83\x78\xe1\x42\x74\x28\x53\x4f\x5c\x3e\xdd\xa8\x0a\xaa\x6f\x10\x2f\xea\xe1\x3b\x37\xcf\x14\x4e\x7c\x67\x1c\xef\x04\xf0\xce\x38\xfe\x79\xd8\xcd\x83\x58\xc8\x91\xa3\x9f\xbb\xb4\xc8\x15\x2c\xa7\xdc\x34\x07\x98\xc2\x3c\xb2\x14\x9d\xde\x2e\x41\x31\xb1\x99\xa6\x9e\xed\xdc\x50\x62\x1b\x83\x72\xe8\x2e\x62\xfe\x23\x18\xa9\x87\xf1\x30\xae\xbc\xac\x03\x69\xfa\x8d\xf2\xb5\x8e\xec\x7f\x29\x64\xff\xde\x20\x4d\xbf\x69\x6c\xa1\x32\x45\xda\x0e\x62\x28\x14\x1a\x32\x27\x91\x48\x1e\x12\x85\x24\x9a\x38\x12\x53\xbe\x90\x2a\x19\xb0\x4b\xca\x53\x71\xd1\x66\x5e\x84\x14\xc6\xd6\x35\x85\x68\x43\x56\xfb\x4e\xe7\x89\x3d\xae\xd9\xf1\x34\xd3\x76\x8a\x15\xd2\x4d\x97\xaa\x66\x56\x50\xf5\x78\x69\xd3\xec\xed\x35\xaf\x30\x10\x97\xe4\xdd\x63\x72\x20\x06\xf8\x68\x19\x14\xe0\x0b\x81\x6c\xaa\x30\xe4\x87\xe6\xf8\x6b\x14\xcd\xba\xe6\x75\xca\x66\x13\xc3\xee\xb8\xf3\x93\xe6\xce\x5b\x6b\x9d\xe5\xfd\xde\xbd\xe2\x59\xb9\x09\x9d\xf2\xd9\x49\x21\x9d\xf2\xf9\xf9\x58\xd1\xa3\x28\xa0\x98\x10\xbf\x01\x43\xa2\x0c\x7a\x2f\x8f\x27\xcf\x73\xf0\x1c\x2c\x23\xe1\x70\x87\x06\xec\x0a\x60\x47\x62\x75\x87\x96\x6f\x67\x71\x2f\x45\xbf\x38\xa0\xa2\x85\xe4\x4e\xe0\xb0\xdf\x26\x3d\x26\x63\x4a\x22\x67\x77\x02\x2e\x3a\xc6\x87\xf0\x48\xab\x22\xb0\x07\x84\xb5\xcc\x55\xa8\x07\xec\xcd\x47\x1e\xa4\x54\x7d\x67\x26\x66\x23\x4a\x69\x1f\x09\xa6\x45\x9b\xac\x59\xec\x97\x0c\xf1\xdb\x88\xb4\x36\xb8\xa1\xec\x66\x58\x2b\xcf\x96\xdf\x6c\xd3\xae\x21\x2c\xa6\x82\x25\x13\x8b\x40\x68\xcd\x93\x65\x21\x01\x65\xee\x5e\xea\x30\x22\x7c\x44\x93\xb9\x0a\x9f\x69\xbb\x74\x3e\x40\x42\xd9\x61\x31\x77\x92\x24\x6c\xa0\x97\xba\xfd\xa3\x9c\x10\x2e\x92\xf5\x4d\xb0\x8b\x34\x1f\x6a\x9a\xf0\x58\xe3\x93\xd0\x99\x76\xb5\xc8\x9a\x5e\x8d\xd9\x32\x75\xab\xb5\x9b\x6a\x26\x61\xf3\xc8\x1b\x7c\x7a\xa5\xa1\xbc\x5d\x9f\x4b\xf6\xd6\x8b\xc1\xaa\x6e\x81\xdb\xa0\xad\xdd\x38\x9b\xc7\xb7\xd5\x6a\x53\x1b\x5c\xfa\xd5\x48\x6f\x8d\x2a\x48\x5b\xe0\xb7\xb5\xee\xd2\x73\x0b\x45\xd6\x0c\x35\x5c\x04\x41\x81\x1d\x87\x7c\xbc\x29\x8f\xc3\x48\x58\x09\x95\x54\xa3\x4a\xb6\x9f\x9f\xa4\x57\x4a\xce\xdb\x32\x0f\xaf\xc5\x39\xb9\x71\x01\x66\x36\xa1\x8b\x26\x51\x25\xa2\x46\x36\xd9\x7c\x1c\xba\x4c\xdd\xdb\xd1\xac\xf5\xfc\x62\xa5\x30\x50\xe1\x10\xde\xcc\x9a\x78\xc4\xe6\x3c\xdc\x9d\x9c\xea\x7c\xeb\x76\x62\x1d\xb3\xdf\xe6\x12\x95\x95\xff\xb5\xd7\x08\x15\x77\x7b\x91\x9c\x1a\xbf\x83\x1b\xf4\x26\x49\x54\xe5\x12\x6d\xbe\xd1\xd8\xcd\xaa\xdd\xbd\x01\xd5\x4c\xa7\x4c\x98\xa6\x4c\xc4\x81\xca\x8c\x8a\x26\x42\x8b\x14\x57\x46\xcc\x83\xea\x75\x3c\x5e\x16\xe8\x37\xa4\xc4\x03\xb9\x46\x56\xdc\xce\x44\xb1\xa9\x61\xa2\x57\x39\x2e\xeb\xb4\x92\x8b\x02\x7d\xc9\x51\xc4\x74\x16\x18\x06\x3b\xce\xa2\x68\xe9\x49\x36\x8f\x34\xa3\x2d\x82\x5e\xdd\x51\xfa\xb1\x41\x27\x78\xd0\xf8\x9c\xf7\x73\xc4\xeb\xa2\x35\xa3\xe9\xf6\xfc\x5c\xd7\x82\x58\x41\x48\xeb\xcb\x82\x4c\x53\x4e\x9c\xae\x40\x31\x02\x31\xb1\xe0\x0a\x0e\x4d\x2f\x55\x46\xb3\xd3\xe6\x02\xc5\x29\xfb\x37\x2e\xd3\x6f\x55\x72\xee\x8c\x5c\x88\x91\xe7\xb0\xfc\x3e\xdf\xfe\xad\x0a\x24\x42\x4b\xdc\x13\xba\xd4\x35\xa6\xc1\xfb\x5e\xea\x07\xb6\x36\xba\x0b\xbf\x33\xca\x5f\xde\x8e\x7a\x72\x0f\xad\x72\x67\x1d\x8f\x57\x50\x4a\x4b\x60\xdc\x1a\xb4\xa0\xf7\x33\x23\xe7\x4f\xd6\x89\x16\xd7\xa9\xdb\x36\x19\xd9\x15\x6f\x1c\x48\x7e\x3b\x5e\x97\x36\x85\xf6\x97\x4c\x34\x84\xeb\x15\xa9\xc9\x44\x84\x3d\x66\xf4\x2e\xc7\xcd\x63\xe5\xe4\x7e\xa6\x45\xac\x65\x2a\x17\x05\x1d\x65\x9b\x8c\x72\x59\x95\xa1\xee\x61\xcb\xb8\x91\xe5\xc4\x94\xf2\x3d\x90\x33\xe1\xad\xd4\x1d\xd7\xfe\x6a\xad\x3c\x84\xdb\x1e\xaa\x22\x8c\xc6\xba\xc3\x55\x68\x4d\xd6\x33\xcc\x6b\x77\x16\xb2\x48\x82\x51\xab\x88\x95\xe1\xc1\x06\xb6\x38\x62\x41\x0b\x5c\xda\x1f\xf9\x47\x39\xcb\x66\x2c\xce\x40\xa9\x56\x63\x96\xc5\xf2\x1f\x59\xae\x82\xcf\x78\xcc\x27\x45\xd4\x0b\x5f\x36\x27\x2d\x3c\xd3\x45\x40\xb3\xf3\x82\xa0\x28\x35\x22\x5b\x3a\x29\x18\x71\xe6\xb2\x38\xf5\x9f\x42\xe8\x60\x57\xb3\x17\x51\xf9\xa8\xe3\x40\xf4\xe0\x64\xa6\x77\x32\x20\x8c\x59\x48\xb9\x4f\xb2\x48\x30\x3e\x9f\x47\x52\xd8\x84\x9d\xc2\xf8\xdd\xfb\x01\xad\x22\x64\x7c\xa6\xcc\xf9\xcf\xa2\x54\xce\x23\x81\x75\x25\x09\x14\xcc\x01\x48\x10\xe6\x98\xcf\xe1\x20\xc9\xdc\xba\xdb\x01\x2e\x8d\x9e\x71\x59\x1f\xf9\xfa\xb9\x60\x54\x82\x3b\xb4\x53\xcb\x62\x88\x38\xac\x40\x32\xec\xaa\x10\xe5\xc6\x27\x17\xab\xe0\x3d\xc5\xea\x58\xad\xe1\xf0\x0a\x35\x30\x3c\x40\xbc\x0b\x42\xc8\x00\x34\x3c\x43\xed\x2c\x22\x1e\xbd\xa2\x05\x28\x1e\x61\x2c\xb8\x31\xa2\x68\x53\xc0\xee\x49\x4b\x30\x79\x38\x36\xed\x63\xa6\x57\x6c\xdc\x8e\x6b\x12\x44\x42\x57\x08\xac\xf3\x62\x75\x31\x26\x9d\x77\xa7\x2b\x04\xd6\x15\x02\xfb\xdc\xc1\x3a\x25\x81\xa0\xab\x06\xd6\xba\x1a\xd8\xf6\xd5\x49\x4b\x6b\xde\xd5\x05\xfb\x7d\xb1\xe0\xa7\x57\x17\xac\xac\x15\x34\x9a\x0a\xbb\xf0\x91\xdf\x91\x80\xd1\x85\x8f\x3c\xb5\xe2\x60\x3b\x63\x39\x5d\x99\xb0\xae\x4c\x58\x57\x26\xac\x2b\x13\xd6\x95\x09\xeb\xca\x84\x75\x65\xc2\xba\x32\x61\x5d\x99\xb0\x8d\x49\xfc\x16\x65\xc2\x6a\x36\xa6\x2b\x13\xd6\x95\x09\xfb\xd2\xca\x84\x7d\x1e\x20\xee\xed\x5d\xa1\x6b\x8a\x7d\xbd\x7e\x73\x79\xf5\xe6\xd5\xf9\xcd\x9b\xd7\xac\x8f\x8c\x16\x74\x3b\x57\x3b\xca\xc3\xd3\x96\xe6\x3a\xcf\x13\x11\xd8\xcc\x3d\x7a\xdb\xe1\xe2\xf8\x90\xda\x0c\xd8\xb5\xc0\xf3\x9b\x88\x48\x70\x2d\x8c\xf8\x44\x7e\xec\xf2\x41\xf0\xaa\x4c\x75\x85\xc6\xba\x42\x63\x5d\xa1\xb1\x2f\xda\x2c\xdc\x19\x4e\xbf\x14\xc3\xe9\x6f\xa8\xd0\x58\x81\x09\x76\xd5\xc6\x36\xa8\x36\xb6\x03\x5b\xec\xef\xa7\xee\x18\x4e\xf9\xa9\x14\x1f\xeb\x0a\x8d\x75\x85\xc6\xba\x42\x63\x5d\xa1\xb1\xae\xd0\x58\x57\x68\xac\x2b\x34\xd6\x42\x48\xe9\xaa\x8d\xfd\x7e\xd4\xd0\xa7\x56\x6d\xac\x68\xa6\xeb\x22\x93\x3a\x05\xbb\x8b\x4c\x7a\x74\x3d\xf8\xe1\xe3\x92\xba\xe2\x63\x4f\xbc\xf8\x58\x9d\xd5\xa2\x25\x35\x2e\xfc\xf4\xe5\x55\x20\xc3\x95\xe9\xca\x90\x75\x65\xc8\xd2\xae\x0c\x59\x57\x86\xac\xd3\x44\x3a\x87\x58\x27\xaf\x77\x65\xc8\xba\x32\x64\x5d\x19\xb2\xae\x0c\x59\x57\x86\xac\x2b\x43\xf6\x64\xea\xc2\x3c\xa0\x09\xa3\x2b\x48\xf6\x3b\x96\x54\x9f\x68\x41\xb2\x1a\xc3\x44\x67\x3f\xef\xe4\xf1\xce\x7e\xfe\x79\xb8\xcf\x03\x1b\xd1\xbb\xfa\x64\x1d\x9b\xeb\x0c\x32\x1d\x03\xe8\xea\x93\x6d\x10\x8c\xfa\xc5\x17\x29\x6b\x98\x6c\x57\xa9\x0c\xbf\x7f\x72\x95\xca\x76\x2d\x05\x74\x35\xcb\x7e\xcf\x1c\xfb\xe9\xd6\x2c\x6b\x90\x59\x3b\xfd\xb4\x13\x4f\x3a\xfd\xf4\xf3\x71\xa6\x47\xd6\x51\xbb\x12\x66\x38\xeb\xae\x84\x59\x57\xc2\xec\xcb\x2d\x61\xb6\x42\xe1\xea\xea\x98\xe5\x9d\x74\x75\xcc\x36\xe7\x1c\x2b\x05\x84\x2f\xb4\x98\xd9\x4a\x95\xfe\x8b\xa8\x68\xe6\xcf\xb0\x2b\x6b\xd6\x95\x35\x63\xac\xe6\x65\x5d\x59\xb3\xdf\x60\x59\xb3\x5d\xdf\xec\xdf\x75\x6d\xb3\xea\x62\x76\x05\xce\xba\x02\x67\xbb\x96\xd8\xbb\x2a\x67\x5f\x74\x95\x33\x19\xfd\xa6\x6b\x9b\x19\x92\x0c\xa9\x40\xba\x6f\xae\x13\x68\xdc\xf9\xe5\x2a\x34\x30\xb7\xec\x55\xa6\x53\x35\xb3\x07\xf4\x95\x99\x5a\xfc\xda\x5d\xd5\x55\xc9\x87\x2b\x1f\xf4\xa0\x8c\xc1\x73\x92\xcd\x62\x3c\xdf\x30\x1e\x00\xc5\x63\xf3\x44\x22\x0c\x77\x8b\x5c\xc3\xc2\xbb\x57\xe6\x1b\xe6\x1f\xf1\xb2\x4d\xb3\x19\x37\x72\x0a\x0f\x21\x06\xd4\xff\xdd\xfa\x4d\x70\x7c\x5b\x50\x3c\xb7\xb3\xab\x46\x84\x8d\x08\x96\x57\xcd\x51\x9e\x63\xef\xe6\x22\x3e\xbf\xbc\xc0\xd0\xe4\x9c\x36\x92\x2d\x27\x1f\x14\x9c\xff\x67\x46\x1d\x7e\xc6\xbc\x9e\xe0\x1a\x38\x34\x95\x79\x22\x67\x3c\x59\x32\x19\x1a\x0e\x3e\x96\x80\x5f\x0e\x6b\x9e\x2a\xc6\xb5\x06\x1f\x56\x4c\x16\x77\x6d\x9b\x2d\x0d\x95\xa1\x76\xa4\xf4\x38\x92\x04\x00\x5b\x80\xcc\xe8\xd9\x8c\xa7\xd9\x08\x10\x3c\xde\x9d\x5f\x1c\xd2\xf8\xfb\x05\x27\xf0\xe1\x28\x52\xa3\xc3\x19\xd7\xa9\x48\x0e\xc9\x4e\xaa\x0f\x4f\x06\x47\x83\x59\xf8\x95\x11\x70\xfb\x60\x58\x47\x68\x0a\x60\x76\x4d\x11\xe1\xab\x56\xfd\xef\x5a\xc5\x97\x3c\x9d\xae\x59\x77\xdb\x8c\x68\x2e\xa0\x87\xb2\xff\x7d\xfd\xee\x2d\x9b\x9b\x6f\xf7\x41\x88\x41\xa1\x36\x49\xf8\xd2\xd0\x1c\x98\xc4\x41\x8e\x07\x2b\x16\x3c\xca\x40\xf8\xe5\x13\x2e\x63\x23\x77\x01\xae\x3d\x1c\x7d\xcf\x1d\xa2\xd8\x3c\x51\x61\x16\x20\x3b\x42\x17\x4a\x79\x23\xb7\x30\x58\xac\x37\x56\x80\x99\xa4\xee\x98\xc3\x0f\xd6\x2e\xb8\xf5\x08\xe6\x89\x54\x89\x4c\xd7\x05\xba\xdb\x66\x74\xc6\x89\x94\xd1\xa9\x26\x69\x26\x11\x11\x47\x19\x63\x66\x08\x2a\x8f\x03\x51\xba\x7f\x20\x76\x72\x62\x07\x00\x8e\xab\x07\xec\x07\x75\x27\x12\xa2\xbd\x14\x11\x9f\xb3\x8d\xa9\x9c\x40\xc5\x3e\x7a\xfd\x80\x21\x15\x22\xfb\x22\x89\x3f\x6a\x26\x53\x02\xe8\x05\x3e\x2b\x42\x86\x88\xdc\x3a\x10\x31\x4f\xa4\xf2\xe3\xd2\x11\x17\x89\xbb\x2e\xd9\x04\xe2\xef\x81\x01\xc6\xec\x68\x37\x84\xdd\x17\x99\xb0\xd1\x4a\xd0\x1f\x43\x20\x70\x61\x5b\xd3\x8c\x27\x74\x6f\x5b\x2a\x01\x65\xd8\x16\xe8\xaf\xee\xce\x6f\xa9\x24\xdc\x93\x2b\xc6\x8b\x8a\xc3\x7e\x1d\x3f\xb4\x8f\x78\x39\xcd\x53\x75\x87\xb8\x5f\xe8\x7a\xcf\x51\x78\xec\x92\x53\x11\x91\xab\x16\x1c\xd1\x4b\xf8\x5e\x75\x7a\x6c\x33\x8f\x1f\x9b\x51\x94\x28\x98\xbb\x59\x66\x5c\x50\x35\x03\x0a\xb9\xb9\x71\x0d\xd8\x39\x26\xfc\x92\x87\xdf\x34\x3f\x63\x7d\x76\xfb\x56\xc5\xe2\xf6\x0c\x78\x94\x7d\x3a\x41\xc5\x32\x98\xf2\x78\x42\xe5\x24\x5c\xbc\x03\x56\xed\x70\x0a\x48\xaa\x00\xfb\x39\x5e\x12\x16\x36\xc9\x60\x54\x07\xb5\x38\xc4\x81\x79\xdd\xbf\x89\xd1\x54\xa9\x0f\xb7\x67\xcc\x5c\x03\xf4\x36\x63\x06\x17\x16\x16\x51\xa0\xc0\x59\x4f\xd5\x1d\xb6\x06\xd8\x25\x8b\x04\x6b\x77\x65\xc0\xce\xf3\xda\x10\x9e\xda\x33\x8c\x19\x08\x81\x42\x84\x04\x3e\x8f\xbe\xee\xb9\xa7\x5e\xb9\xf2\x12\x66\x4d\x07\x60\x4b\x4d\x16\xe2\x7d\xfc\x21\x56\x77\xf1\xb7\xe8\x56\x41\x89\x96\x8a\x44\x98\x59\x43\x5b\xef\xfd\xde\xe0\xca\xce\xaf\xd6\xe4\x99\xfa\xd8\x54\xe7\xda\xf0\x2e\xd0\xa2\x7b\x97\x60\x95\x52\x66\xe7\x55\x3d\xf5\xd6\x4d\x96\x2f\x82\xdd\xa1\x01\x73\x85\x6d\x00\x00\xff\xd6\x9e\xda\x5b\xaf\xae\x83\xdb\xfc\x6d\x42\xa0\xec\x65\xf9\x1c\xd4\x63\x0b\x69\xda\x93\xa3\x0b\x8e\x5d\x2f\x00\xa3\x60\xac\x47\x70\x33\x57\x42\xd8\x5c\x0e\x1a\x24\x63\x17\xa9\x46\x69\xc0\xe2\x2c\x5a\x6c\x72\x14\x26\x87\xd9\xd1\xd1\x69\x30\x80\xe3\x09\x85\x2e\xcc\x67\x31\xf0\xbf\x06\xff\x39\x7d\xdf\x45\x37\x3d\xe5\xe8\xa6\x2e\xe0\xe7\x4b\x09\xf8\xf1\xe2\x91\x6b\x5f\xb9\x4d\xc4\xef\x8e\xa8\x58\x3b\x50\xe4\x12\xfd\x87\x5a\x18\x86\x59\x73\xeb\x76\xcc\x65\x0f\xc3\xb6\xe7\x73\xc1\x1b\x64\xe4\xed\x22\x7e\x77\x35\xd9\xf5\x71\xc1\xe4\x28\x2c\x3a\xc1\x79\x90\x66\x3c\x02\x27\x62\x0e\x8a\xdb\xc4\x16\x36\xe7\x67\x8f\x1c\xd2\x5b\x5c\xae\x95\xf0\x58\x4d\x73\x6c\x0e\xa1\x6a\x1f\x3d\xb5\xa3\x3d\x7d\xa5\xe2\x70\x5b\x7e\xec\x9e\xcd\x63\x6a\x48\x21\xca\xb5\xed\x2c\x01\xa1\x3e\x70\x4d\x2d\x07\x9b\xab\x36\x09\x3d\x11\xd7\xe9\x4d\xc2\xc1\x26\xaf\xe2\x9b\x47\x36\xaa\x57\xdf\x8e\x0e\xa7\xd4\x1a\xdb\xf3\x69\xa5\xae\x99\x11\x95\x0d\xc9\x57\xb1\xf3\x9b\x83\x2c\x0e\x62\x7d\x83\xb3\xb7\x9d\x67\x84\x5a\x79\x36\x8e\xbe\xb3\x71\xb8\xdf\xf0\xe6\xe5\x1e\x14\x4d\xd8\x67\x38\x70\x37\xca\xad\xd2\xfd\xb9\x5e\x2b\xc8\x60\x23\x1c\x22\x5a\xa4\x7b\x66\x25\xfa\x77\x2a\x09\x7b\x39\x0f\x63\xd4\x2e\xb7\xca\xd0\x42\x3e\xd3\x3b\x18\x69\x3d\x95\x6c\x20\x55\xe5\x08\x87\xc2\x70\x80\x19\x1b\x4e\x7c\x03\x35\xe5\xbe\x45\x1d\x86\xd4\x9b\x6d\xdc\x42\xed\x6d\x1c\x65\xac\x06\x6f\x4c\x37\x60\x80\x90\x71\x10\x65\xa1\x60\x6f\x74\xca\xa1\x9a\x90\x08\x7b\x0c\x8a\xac\x9d\x07\x81\x98\xa7\xe4\x6f\xb8\x01\x8c\x5d\x5e\x34\x2e\xaf\x1e\x70\x4b\xca\x5b\xb6\x4b\xd0\xb2\x7f\x5e\xbd\x62\x1d\x1a\xed\x8a\xc7\x8a\xb8\x7c\x8d\x5a\x48\x97\xdc\xf0\x5b\x10\xff\xdb\x23\xd5\x62\x49\xb4\x38\x94\x0b\x19\x1a\x39\x65\xdd\xc6\xef\x24\xd9\x61\x57\x5a\xb4\xf7\xd6\x2e\x25\xe2\x77\xab\x21\xb9\x94\x88\x8d\x69\xf8\xa3\xe7\x1d\xdc\x5f\x7c\x5e\x93\x85\xf0\xe8\x22\x34\xb0\xdc\x2d\x58\x0e\x3c\x57\x13\x2f\x0c\x74\x19\x46\x43\x15\x1e\xd7\xa9\x11\xcd\x81\x10\x3c\x15\x13\x95\xac\x87\xa4\xcc\x1b\x16\x79\x20\xec\x9a\x08\x7d\xfd\x14\x5c\x2b\x25\x9f\xdf\x48\x44\x2a\x9e\xc0\xb8\xb1\xf4\xc1\x33\x1e\x45\xcf\x0e\xf2\x28\xe6\x79\x46\x02\x0a\x93\x31\x58\xe4\x42\xa9\x03\xb5\x10\xc9\x92\x85\x2a\xc8\x20\x87\x0c\x19\x0e\xc4\x3d\x8c\x96\xce\x3d\x0b\xc1\x71\x08\xb1\x2f\xe3\x85\x22\xcc\x4a\x06\x05\x8b\x6f\xcd\x59\x0c\xd2\x08\xeb\x2a\x46\xd1\xed\xa3\xa3\x93\xb5\xa0\xa0\x1f\x88\x82\x82\x90\x29\x12\x5b\xd0\xc1\xd6\xf2\xf4\xb5\x7f\x5b\xb5\x20\x56\xc9\x0c\x80\xb2\x72\x71\x19\xac\xe6\x32\x9e\x64\x11\x4f\x06\x74\x22\xf2\xf5\x07\xb8\xdf\x38\x10\x84\xe0\xe6\x0a\x2d\x20\xb1\xa6\x12\x77\xb7\xe6\x95\xb7\x8c\xa7\x48\xf0\x84\xdd\x0a\x8c\x2c\xdc\x9c\x8c\x99\x33\xf2\xfd\xfa\xf9\xdb\x66\x6b\xd6\x00\x4e\x9c\x73\x31\xe4\x2b\xe2\x43\x7a\x0d\xf7\x70\x0e\x86\x00\x0c\xf7\xb6\x71\xe1\x46\x59\xc2\xa3\x75\x0e\x5c\x68\x64\x87\x4b\x9f\xfc\x38\x7e\xdf\xd5\x0d\xd7\x14\xe3\x12\x6a\xdd\x48\xf0\x7b\x88\xc5\x41\xd8\xad\x61\x25\xfa\x10\xcd\xc9\x9e\x21\x99\xbe\x21\x2a\x46\xdf\x0d\x06\x03\xfa\x1e\x87\x80\x5f\xdf\x0e\xd8\x8f\x99\x4e\xd9\x8c\xa7\x04\xb8\x51\xa8\x34\xd4\x24\xb9\xec\x7b\x76\x6e\x76\x8b\xdd\x02\xa9\x19\xf8\x9d\x0f\x2a\x23\xbb\x3d\xa0\xf7\x8d\x04\x64\xf6\x44\xea\x4e\x24\x81\xe1\xb0\x5b\x28\x65\x53\x95\xa4\x65\x5a\x59\xb7\x01\x79\x43\x5c\x42\xf3\x91\x08\xa3\x55\x17\xed\x22\xf7\x9c\xb5\xff\xc1\xe8\x0a\xae\x09\x0c\x22\x77\x09\xdc\xc2\x55\x9d\xb5\x58\x99\x87\xa7\x41\x96\x2c\xac\x5b\x55\x6a\xe6\xee\xa1\xfd\x5c\x77\xb4\x57\x4c\xaf\x70\x23\xdd\xd7\x21\x91\x97\x5d\x23\xc7\xe1\x85\x2d\x53\xdc\xcf\xab\x61\xae\x03\xa2\x5f\xf1\x58\xc9\x12\xcc\x4b\x76\x60\x99\x14\x88\x0b\x19\x82\x5b\xc4\x3b\xd6\xb8\xe4\xd9\x83\x6b\x21\x2d\x9d\xa0\x81\xef\xfd\x47\xdd\xd6\xfb\x4a\x8b\xd4\x28\x11\xf9\xd5\x7e\x75\xf5\xba\xc1\x48\x66\x45\xc8\x55\xa7\x1c\x8b\xef\xd2\x11\x37\x04\x01\xbf\x70\x78\x1c\x98\x60\x58\x71\xa7\xdf\x93\x7e\x0f\x06\x83\xc7\x27\xcc\xdb\xc5\x50\x7d\x2e\xdf\x01\x12\xfe\x55\xe7\x04\x29\x3c\x86\x66\x2c\x8b\x8c\xd6\x10\x70\x10\x16\x8a\x5c\xa0\xbc\x8d\x4d\x71\x5b\x35\x31\x09\x6b\x83\xb8\xea\xe2\x18\x7c\x51\x9d\xa7\xae\x0a\x31\xfe\x88\x71\x72\x88\x5a\x95\x7a\x48\x57\xb4\xc1\x36\x5c\x89\x0c\x39\x3e\xfa\xa7\xa0\x43\x06\xee\x7e\x4a\xc9\x24\x14\x7d\x1b\x73\xed\x85\x8d\xf4\x60\x25\x7a\x79\x4a\x3b\x2c\x8e\x19\xa5\x1d\x09\x55\x41\xcf\x1b\x24\x86\x86\xdf\xf1\xa5\xce\x5f\x56\xce\x57\xf5\x0a\x53\xcb\x98\x8d\xf9\x42\x41\x74\x2f\xdd\x4e\x76\xfb\xb1\x6f\x1f\xed\x67\xb8\x26\x7d\x7c\xdb\x2d\x18\x91\x92\x0c\xc4\xc9\x5b\x70\x91\xdb\x40\x99\x9f\xff\xf8\xcb\x00\xa7\x3b\x50\x38\xfb\x9f\x4e\xaf\xe1\xf3\x6d\x31\x2a\x2b\x57\x29\x5d\x71\xf2\x94\xeb\x0f\xfa\x90\x43\x3e\x8e\xaf\x72\xf2\xb9\x3c\xc4\x6d\xef\xbb\x8b\x5a\xfe\xa2\xef\x1f\xe4\xaf\xe6\x49\x16\xcb\x78\x02\x6a\x6a\xa6\xed\x34\xcc\x37\xc5\x89\xb4\x88\xe7\x5a\x99\xc0\xa4\x03\xb5\xd6\xb4\x0b\x6d\xbc\x63\xe4\x57\x26\x68\xa0\x4d\x10\x1c\x8e\xe5\xe8\xfa\x4c\x21\xb7\x86\x90\xbd\x3e\x74\x16\xd6\x45\x23\xb1\xdb\x57\xf8\xc4\x2d\x1c\x8e\xdb\xb7\x0e\x42\xad\x35\x7f\xf6\x26\x66\xb7\x73\xcd\xdc\x5c\xd8\x56\x09\x2b\xc4\x48\x0f\xe6\xe0\xfb\x61\x5d\x2b\x69\xb1\x35\x84\xc6\x4e\x02\x04\xd9\x0d\x6b\x44\xce\x33\x2a\x05\xae\x92\x10\x92\x6d\xe9\xde\xd1\x15\x72\x2f\x31\x8f\x99\x11\xd4\x48\x86\xae\xae\xb7\x63\x41\x68\xd9\x92\x9a\x0d\xf7\xcc\x51\xeb\x1b\x21\x70\xb8\x07\x75\xeb\x10\x11\xdb\x48\x89\x7c\xa4\x16\x80\x48\x57\x6c\x55\xea\x45\xf7\x3c\x42\x00\x63\x14\x21\x8b\xc4\x47\x19\xa8\x49\xc2\xe7\x53\x44\x40\x1e\xb0\xe1\xde\xf7\xd5\x3e\x34\xd3\x29\x4f\x52\x8a\xc3\x65\xc3\xbd\x85\x19\x05\x84\xdf\x73\xa8\x6c\x49\x3b\x0d\xf9\xf1\x14\x82\xbf\x6f\x66\x32\xe3\x7f\x57\x89\xed\xe5\x80\x1e\xb1\xd1\xd5\xd1\x92\x1c\x1c\x30\xcb\xe1\x1e\xa4\xa6\x0f\xf7\xcc\x61\x1a\xee\x8d\x44\x6a\xfe\x36\xc7\x84\x3c\x54\xc5\x8e\x65\xec\x75\x0c\x7c\x52\x63\x9d\x73\x8d\x89\x00\x63\x99\x68\xc8\x98\xfa\xee\x1c\x25\x65\xc1\x4c\x97\xf6\x6f\x78\x17\xdb\xc7\xa2\x16\xdf\x9d\xa3\x71\xc1\x05\x3c\x99\x69\xc6\x46\x0e\x1f\x8f\xe5\x47\xa6\x21\xfe\x4d\xe3\xf3\x2a\xc1\x67\x0f\x50\x7a\x87\x09\x8d\x96\x14\x15\x8b\xf9\x3c\xde\x94\x69\xc6\x85\xd1\x62\x59\x0b\xac\xfe\x69\x47\x6b\xcf\xa4\x5d\xef\x33\xb6\x38\x3e\xea\xb1\xc5\x49\x8f\x2d\x8e\xcd\xff\x21\xb5\x05\x3e\x1d\x99\xbf\x4e\x7b\x6c\x71\x0a\xd9\x2e\xe6\xab\x13\x18\x11\xb6\x83\x3f\x4f\x7a\x6c\xac\xd4\x31\xfe\x5b\x8e\x87\xfd\xbc\x76\x61\xeb\x76\xd8\x58\xb1\x68\x29\x98\xa3\x2c\x56\x91\x2d\x2a\xf4\xb0\x8e\x8e\x7c\x66\xe9\x7d\x5d\x26\xf4\xea\x07\x4b\xf6\xba\x76\x31\x0d\xeb\x1d\x45\xe4\xb0\xab\x55\x8f\x9f\x8c\x84\x56\x18\x25\xb3\x25\x78\xc9\x64\xe9\xea\x2a\x43\xb0\x07\x64\x53\x9a\x7b\x6a\x69\x37\xda\x33\x3d\x22\x7c\x33\x15\x4b\x1b\x96\xee\x95\xe0\x9c\xf2\xd8\xeb\x55\x62\xee\x4c\x83\x64\xe7\x3c\xa2\x6b\xcd\x9b\xae\xa1\xdb\x3e\xda\x39\xc3\xf4\xe7\x3c\x49\x65\x00\xba\x30\x37\x6f\x4b\x6d\xe8\x71\xab\xf0\x8d\xcf\x7b\xcf\xf3\xf0\x8d\x7b\x99\x10\x52\x95\x88\xf0\xa7\x76\x8c\xbe\xd8\x18\x68\x2a\xc2\xbe\xf8\x1c\xbe\x38\x5e\x3a\x1e\x77\x86\x0b\x08\xa8\x0e\x4d\xc0\x23\x46\x0e\x4d\x78\xf0\x81\xdc\x48\x5a\x78\x1c\xdc\x30\x3b\xc3\x2e\x66\x0e\x0b\x05\x52\x55\x20\x71\x0a\x86\x90\xb7\x95\x31\xd4\x9b\x42\x3d\xce\xc9\xb4\xb3\x0c\x8b\x83\x6b\x55\xe8\x05\x5c\x3e\x2a\x8a\x08\x6d\xc7\xac\xa4\x9e\x16\x5a\xe4\xe1\x1a\x8e\x57\xed\x8b\x58\x63\xc2\x69\xac\x98\x8a\xc2\x02\x4c\x6d\x24\xc6\x90\x52\x44\xd2\xba\xcf\xb3\x12\x31\x53\x0b\x61\xb5\x19\x57\x6c\xc3\x8d\x9c\x5c\x5f\x54\x14\xd7\x09\x3f\xe8\x22\x23\x17\x17\xf6\x41\x51\x25\x45\x11\xfb\xd6\x48\x1b\x08\xe6\xbf\xc4\x4a\x71\xa8\x6f\xd8\xfe\x1e\xc5\x16\x55\x61\x19\x8f\x4a\xcf\xab\x0e\xf6\xb6\x04\xfd\xa7\x4a\x4e\x42\x2e\x9b\x98\x53\x06\x96\x88\xf5\xa4\xdb\x83\x25\x00\x0f\x3a\xe5\xdd\xac\xb9\x45\x4d\x8f\xf9\xb9\x82\x79\x50\x7e\x40\x3f\x3a\x84\x01\x19\xb3\x1b\x38\xdc\x2a\x4b\xe7\x59\xba\x56\x9f\x82\x9a\xe0\x22\x0e\xc4\x21\x94\x01\x07\x3d\x8a\xfc\x9a\x86\xa6\xeb\xc3\xaf\x12\x11\x08\x09\x7a\x91\x53\xac\xfa\x5c\xf7\x53\x2c\xd6\xee\x2b\x47\x46\x7e\x8e\x95\x1b\x13\x48\x83\x56\xdd\xed\x41\x76\x59\x3c\x89\x6c\xa2\x95\x21\xf9\xf3\x88\x2f\x1d\x0e\xc1\x24\x0f\x68\xa9\x6a\x3a\x50\xcc\xe2\xf3\xd3\xd7\x4a\xe6\xe7\x7d\x88\xeb\x06\x99\x6b\xbe\x56\x62\xbe\xa3\x5a\x3e\xff\xf3\xdf\xff\x77\x71\xfc\x3f\xff\xfd\xff\x7a\xf0\xd7\x09\x08\xa4\xf0\x51\xa4\x41\x5b\xdb\x15\xfa\x83\x6c\xe6\x49\xba\xb1\x2f\xe2\x96\xc9\x31\xbb\xc5\x2e\x21\x13\xc1\xe8\xfc\xdb\x78\x01\xc0\x00\xf0\xa8\x22\xce\x4f\x58\xf2\x68\x9d\x9d\x92\x2c\x33\xc5\xaa\x8b\xf4\x25\x48\x31\xe6\x0e\x2c\x5c\x5f\x3d\x46\x96\x05\xa4\xf6\x21\x5a\xc5\x29\x57\xbd\xb0\xda\xf5\xc7\xbd\x09\xd2\x17\x56\x78\x1d\x0b\xc6\x9d\x05\x6d\x6a\x1c\xf1\x09\xc2\x87\xc9\x78\x72\x18\x4a\x8d\x7f\x15\x87\x00\xac\x03\x05\x32\xab\x29\x4b\x8e\x41\x1b\xe7\x97\x17\x0d\x31\x0c\xab\xcd\x1d\xc8\xeb\x5a\xc8\x0a\x5e\x54\xa2\xf5\x1f\x3b\x9d\xd9\x59\xc1\x60\x81\xcb\x06\xb0\xca\xa9\xf6\x2d\x62\x37\xa0\x53\x5a\x1f\x85\xf0\xa0\xf4\x0a\xfa\x25\xb5\xff\xd7\x15\xc7\x75\xf5\x3c\xb3\x51\x52\x03\x6f\xf0\xf0\xa7\xf6\xda\x7f\xf1\xca\x73\xeb\x35\x74\xe6\xd3\x3b\xc8\x89\xf1\x7f\xa9\x3b\x92\x4d\x36\xa7\x29\x5f\x88\x2d\x32\x8b\xca\x79\x8b\x74\x96\x6b\x4e\xcd\xe7\x50\x01\xbd\x05\xbd\x0e\x78\xb4\x0a\x57\x72\xf5\x83\xce\x8d\x41\xc9\x5c\x36\x54\xc3\x50\x0b\xf3\xb3\xb7\xec\x28\x47\x14\x65\xe1\x56\x51\xcf\x23\x11\xd9\x2a\x95\x2d\xb2\xbb\x2b\xed\x0b\x51\x84\x79\x9a\x37\x59\x86\x41\xbb\xa9\xe4\x6d\x03\xaa\x85\x4a\x12\xa1\xe7\x2a\xc6\xac\x3d\x9c\xee\x2d\xc6\x75\x0e\x34\xbd\xe0\x76\xc0\xde\xc5\xd1\x32\xef\x57\xc3\x55\xb3\x05\x96\x8b\x09\xe4\x64\x7d\x06\xc3\x95\xe7\x4b\xc6\x87\x61\xa8\xe4\x5b\x19\xe0\x5b\x6e\x99\x82\x0f\x73\x11\xdc\xe6\xed\x29\xed\xed\x4e\x25\x1f\xf0\x5a\xff\x4d\x25\xf2\x9f\x2a\x4e\x79\x74\xa9\xc2\xf3\x2c\x55\xb0\xf4\x89\xaf\x01\x40\x24\x99\x05\xf0\x90\xda\x5b\x06\xe7\xd8\xb4\x46\x31\x7c\x60\xdf\xc8\xdb\x9c\x00\x7f\x3e\x32\x3b\x5d\xd3\x28\x0b\x52\x9b\x09\x9f\x23\x5d\xfa\xa1\x0c\xb0\x03\xf9\x23\xd2\x59\x15\xc7\x2a\x99\xd5\x86\xa3\x3d\xa0\xd1\xfb\x2b\x58\x8c\xbe\x7f\x0e\xd1\xe4\xe9\x8a\xb7\x62\x60\x88\x95\x0c\x6c\xaa\x37\x9d\x91\x3a\x6e\xd5\xc3\x10\x92\xf2\x49\xa0\x8e\xe8\x99\xdb\x43\x78\xf1\x6d\xe1\x06\x80\x05\x95\xb8\xa3\x0d\x38\xc5\x6a\xb3\xb8\x42\xdb\xc8\x10\x73\x11\x5c\x89\x79\x24\x03\xae\x5b\xdc\x8e\x72\xf3\x1d\x5f\x0e\xa3\x8f\x25\xd4\xfd\x43\x5d\x0d\xbc\x0d\x3b\xda\xc4\xc6\x5d\x42\xed\x22\xc7\x7d\x52\x31\xfb\xee\xcd\xcd\xd6\xf1\xf7\x9b\x6c\x51\xe5\x81\x07\xa1\x60\x0f\xbd\x4d\x48\xc1\x76\xb6\x51\xe5\x51\x6f\x71\xdb\xca\x56\xe9\xfb\x06\x64\x54\xae\xde\xea\x5d\xff\xdc\x7c\x7e\x33\x5b\x6f\xe5\xc9\x15\x9c\x1e\x7f\x5f\xc7\xea\x59\x0e\xa3\xe9\xe2\xa0\x73\x4c\xa9\x9c\xe7\xd5\x1f\xf0\x62\x6f\x03\x2c\x08\x09\xe5\x20\xff\x48\x71\x4f\x86\x0b\x1d\x36\x8c\xa5\x4e\xc5\xfe\x23\xbb\x7c\x7f\xe3\x87\x52\x43\xab\xba\x1e\x52\xfe\x41\xd4\xdc\x31\xdc\x37\x54\x79\xe4\x24\x36\x6c\x0d\xc1\x0d\x28\xc9\x69\x99\x4e\x0d\xd7\x13\x1f\x03\x31\x4f\x0b\x2b\x95\xf2\xf8\x9f\x1c\x07\x70\x78\xf9\xee\xfa\xe6\xf0\xf2\xfc\xe6\xd5\xdf\x2a\x63\xa9\x18\x05\x2a\x2f\xa9\x74\xba\xf7\x99\x4e\xd7\x56\x07\x4b\x17\x08\x1b\xcd\x03\xa2\x3b\xcb\xb2\xa3\xde\x52\x78\xd4\x25\xe1\x96\x3d\xa6\xaa\x82\x92\xf5\x6a\x35\xdb\xcc\xb3\xe8\x45\x29\x6f\x3a\xe9\x85\x78\xdd\x78\x3d\xa5\x03\x6a\x8f\x1c\x0b\xf0\x60\x6e\x39\x49\x81\x46\x0d\x5e\x1c\xdf\x12\xe9\xa7\xa4\x98\x27\x93\x4d\x5b\xa5\x4e\x1b\xa7\xd3\xae\x5f\x2d\xa2\x2a\xde\x72\x11\xf1\x20\x98\xf1\x33\x76\x3c\x58\x7b\xf3\x2c\x8e\x96\x4b\xca\xa8\xbf\x8a\xb7\xee\x6d\x78\xc3\x49\xb5\xb4\xc9\x48\x27\xeb\x5f\x54\x3b\xe0\x55\xd4\x45\x51\xd0\x04\xb9\x8a\x56\x8f\xe0\x33\x1b\xaa\x3d\xe3\x53\x5b\x6a\x91\x3f\x52\x0c\xc6\xcf\x6d\x4f\x6c\x26\xd2\xa9\x0a\xb7\xa5\x10\xa5\x68\x9c\x07\x3e\xff\x86\xb7\xe1\x8b\x2e\x13\x35\x5f\x7d\xde\x4b\x23\xb3\x36\x51\x1b\x3c\xb5\x38\xb5\x06\xb9\x54\x41\x94\x7b\xd1\x24\x07\x74\x94\xac\x72\x8f\xbf\xef\x6f\x08\x6a\xe7\x35\x05\x1e\xaf\xdb\xf4\xda\xf6\xd6\xed\x65\xed\xf5\x80\xb5\xea\xc1\xf8\x14\x38\x3c\xbc\x3f\x14\xa1\x8b\x75\x6e\x0b\xc4\xba\x02\x41\xb0\x8d\x78\x9f\x25\x95\x18\xfa\x5d\xd7\x07\xd8\xe2\x8c\xad\x58\x6a\x10\xaf\x7c\xf0\x98\x78\x89\xc7\x06\x05\x2f\x10\xab\x6d\x70\x0b\x82\x7b\x81\xfd\xdc\xc2\x5d\x9e\xb1\x91\x52\x51\x8f\xc9\x38\x7d\xf9\xbc\xc7\xc6\x91\xe2\xf0\x07\x4e\xb6\xc7\x7e\xfe\x05\x3c\x38\x63\x1e\x88\xff\xfa\xb5\xc7\x66\x7c\xfe\x33\xfe\xe4\x7f\x0f\x87\x33\x96\xd1\x60\x87\x53\xf6\xaf\xd5\xea\xd9\x7b\x2d\x91\xa8\x98\x2f\xfb\x74\xcb\x30\xb0\xc8\x1c\xb5\x62\x15\xbb\xd7\x09\x1f\xa7\xec\x39\xdb\x9f\xa6\xe9\xfc\xec\xf0\xf0\xef\x5a\xc5\x7d\x1b\xd1\x97\x4c\x0e\x0f\x5a\x1c\x35\x22\x26\x1b\x9f\xb1\x3f\xd4\x3b\x0a\xda\x3c\x9a\xfb\xcd\x2e\xea\x72\x40\x1f\x96\xbc\xbd\x4b\xfe\xaa\x54\xb4\x6e\x60\x8d\x08\xe6\x9f\x73\x74\x51\xf4\xae\xb2\x55\x8f\xe3\x7d\x2b\x9f\xe5\xfb\xb8\xdb\x78\xbc\xfc\x12\xa6\x41\x3a\xfc\x23\x1c\x8f\x95\x0c\xd9\x9a\x12\x80\x66\xd8\x0f\x39\xa6\x67\x16\x5b\x17\x42\x21\x18\xda\x25\x89\x50\x5c\x25\xc7\xa0\x3e\xaa\x65\xe3\x59\x42\x2a\xae\x79\xfb\x90\x6d\x3a\xe1\xa9\x28\xf4\xb6\x21\xde\x5c\x83\xe0\xef\x2d\xde\x76\x65\x06\x3e\xf7\xc9\x59\x8d\xc5\x3f\x37\x62\x41\x1c\xd4\x90\x97\xa7\x30\xbb\x77\x09\x42\xbc\x9f\x17\x4f\xff\x76\x53\xbd\x97\x20\x23\xe2\x6c\xf6\xf9\x48\xc5\xbd\xe8\x03\x45\xb6\x3e\x06\x7d\x68\x78\x7f\x10\x65\x5a\x2e\x04\x01\xa9\x37\x2d\xff\x4a\xe7\x6a\xde\x89\x8c\xef\xd1\x89\x93\xa3\x1f\x9a\x9b\xd6\x8b\xf8\xb5\xa3\xda\x1c\x0d\xdb\x53\x72\xe8\x7b\x72\x90\x58\xb8\x19\xfa\x1a\x85\x53\x54\x8f\x6d\xc8\x9b\x13\xe0\xfc\x26\xa4\x18\x89\xf0\x6c\x18\x0f\xe3\x3e\x1b\x69\x15\xe3\x65\x92\xe1\x99\xa1\xc9\xda\x61\x5a\xb0\x8b\xd7\x54\xc8\x82\xb3\x93\xe7\x46\xe9\x4e\x78\x90\x8a\x44\xb3\xa9\xf8\x68\x5d\x59\x7d\x96\x25\xf2\xcc\x0c\xf5\xfd\xd5\x05\xe3\x9a\xcd\x79\x42\x59\x95\xdf\xa9\x88\xc7\x13\x16\x8b\xf4\x30\x4b\xa2\xc1\xa5\xf9\xe1\x0a\xd5\x7e\xd3\xb6\xcf\xc4\x8c\xcb\x08\x9e\x85\xbf\x18\x0f\xc3\x44\x68\xdd\xd8\x8b\x69\x84\xdd\x9c\x53\xcb\x3e\x9b\x2a\x0d\x29\x98\x66\xec\x28\xbd\x97\x60\x50\x00\x07\x3f\x66\x17\x80\x63\x22\x52\x78\x80\xe2\x68\xb8\xf6\xab\xcb\x5d\x7d\xfb\x8a\x1d\x1f\x9d\x1a\x11\x9e\x8a\xd8\x9e\x0e\x8e\xd9\xcf\x57\xdf\xbe\x32\xdf\xfe\x32\x60\x7d\x26\xe7\x8b\xe7\x30\xde\x8b\xcb\xc5\x73\x76\x71\xd9\x34\x52\x1c\xe4\xc5\x25\x3e\xf2\xd2\x3e\xf2\xb2\xdd\x23\x81\x0c\x13\x33\x9d\x57\x17\xaf\xaf\x56\x37\x87\x16\x7d\x36\xe3\x81\x69\xff\xe3\xf9\xab\x75\x4b\x88\x8f\x99\x86\x7d\x96\x65\xb0\xe3\x31\x7b\xff\xfe\xe2\x35\x85\xea\xa2\x9e\x99\xcd\xe7\x98\xc0\xe9\x2f\x0f\x46\x2b\x4e\xc4\x47\xb6\xff\x8d\x3c\xf8\xcf\x9f\x8f\xfa\x5f\xf3\xfe\xf8\x97\xff\xfa\xf3\xaf\xfd\x6f\xdc\x87\xe7\xed\x3e\x1c\x9f\xfc\xfa\x07\x1a\xc1\xa9\x1b\xc2\xe9\x0e\xc7\x70\xea\x3e\x9d\xb6\x19\xc4\x73\x37\x88\xe7\x3b\x1c\xc4\xf3\xe2\x20\xfe\xfc\x35\x1f\xfd\x52\x3f\x2e\x6f\x28\x2f\xdc\x50\x5e\xec\x70\x28\x2f\x36\x1d\x8a\xd4\xa3\x18\x8f\xed\xf5\x5f\xdf\x1e\x1f\x31\x95\xe0\x5f\xa7\x36\x13\x84\xae\x3f\xa4\x46\x0f\xf7\x8e\x4e\x4f\x8e\xff\xf4\xe2\xf8\xe8\xf9\xa9\xcd\x21\xf9\xfa\x4f\x7f\xee\xbb\x6f\x8f\x87\x7b\xd4\xe7\xf1\x91\xdf\xeb\xfa\xbe\xe8\xa9\xd3\xfc\xa9\x86\x11\xd4\xbc\x2f\x48\x44\x28\xd3\x80\x27\x40\xd8\xf0\x13\x33\x1f\x6d\x0f\xb5\x2b\xf9\x9f\xfb\xdf\x9c\xc1\xce\xc1\x5a\xec\x7f\x73\x86\x7f\x9f\xfe\x7a\xf0\xcd\xa7\x17\x3f\x1f\xf7\x5f\xfc\x42\x3f\x3e\xff\xf5\xd3\xcb\xfd\x6f\xce\x8e\x8e\x8f\x3f\xc1\xf2\xe2\xf7\x07\xee\xd1\x4f\xa7\x3f\x3f\xff\x93\x6d\x7c\xfa\xeb\xa7\x53\xd3\xf8\xe7\xa3\xfe\x8b\x5f\x3e\xfd\xfc\xf2\xcf\xc5\xd6\xc7\xbf\x7e\xda\xff\xe6\xec\xe4\xf8\xf4\xf8\xd3\xf1\x9f\x8f\x8e\x3e\x9d\xbe\x18\x0e\x43\xf3\x4e\xf3\x9f\xe3\xe3\x5f\x0f\xfe\x90\x17\x97\x8a\x55\xcc\x42\x39\x31\x73\xc9\x29\xf2\x4c\x7e\xc4\x00\xd0\x3e\xd3\xda\xec\x1c\x7b\x3f\xb8\x1e\x30\xad\x02\xc9\x23\x43\xd0\x32\x00\x6b\xa7\x89\xe7\xac\xc1\x9b\x37\xbe\xf1\xe7\x3e\xfb\xe5\x1b\xf3\xe7\x49\xfe\xe7\x73\x38\x12\x53\xf1\x31\x50\x91\x4a\x60\x2b\xa6\xe2\x23\x0f\x45\x20\x67\x18\x87\xaa\x12\x16\xa8\x50\xd8\xcd\xf8\xea\x5b\xf8\xdf\x59\xfd\x8b\xbe\xfa\x66\x9f\x8e\xdb\x79\xff\x5b\xb3\xb2\x9f\xfc\x8f\x2f\xcd\x64\xfb\x2c\x99\x8c\xf2\xb7\x5d\x7d\xf7\xd7\xca\x5b\x92\xc9\xc8\xbe\x2e\x99\x8c\xf6\x4f\x5e\xbc\xe8\xd1\xff\xbf\x86\xdd\x1f\x2d\x53\x71\xc6\x46\x5c\x8b\x97\xcf\xa1\xea\x4d\x68\x76\x5a\xc6\x3c\x59\x32\xc8\x80\xec\x43\xb1\xad\x3b\x05\xc7\x23\x5e\x3a\xe0\x09\xc7\xd8\x0c\x9b\x34\x2b\x19\x62\x66\x80\x7f\xda\x4e\x8e\x8e\x5e\xf6\x8f\x8e\xfb\x47\x27\xc3\xbd\x12\x1b\x19\x67\x51\xd4\x87\x47\x64\x6c\x78\xca\xe9\xe9\xe9\xd7\xa6\xb3\x0c\xe3\xc8\xa1\x43\xfa\xbb\xdc\xe9\x09\x8b\x35\xf6\x57\xa1\xdd\xa9\x9c\x09\x24\xde\xaf\xed\xc3\xb0\x1a\xb3\x39\x4f\xe5\x28\x12\x78\x3c\xae\x03\x1e\x79\xdd\x93\xc4\x80\x33\x31\x3d\xb8\xd9\x00\x56\x61\x79\x4a\xc7\xcf\xfb\xc7\x27\xfd\xe3\x17\x37\xc7\x5f\x9f\x9d\x1e\x9d\x9d\x1c\x0d\x8e\x8e\x8e\xfe\xa3\x32\x41\xd3\x41\x1f\x3a\xc8\x27\xb8\x45\x38\x80\xac\xc4\x33\x6e\x0d\xe0\xf5\xd0\x9a\xc9\x79\xb3\xc4\x3d\xe3\x1f\x6b\xed\x49\x85\xc2\x07\x2f\x9f\x6f\x51\xf8\x60\xc6\x3f\xfe\x20\xe2\x49\x35\x4a\x62\x27\x5d\x37\xdb\x9a\x76\xd2\x7d\x9d\xdc\x9e\x77\x1c\xaa\x6c\x54\x76\x08\xda\x9e\x91\x42\x35\x74\x2c\xe3\x87\x5a\x6c\x19\x3f\xd8\x62\xcb\xf8\x41\x17\xbb\x5e\x49\xda\xc1\x62\x53\x59\xa8\xaa\xdd\xec\xfe\x7d\xc7\xea\x31\x6c\x58\xb5\xb6\x93\xc2\x30\xb2\x28\xe2\xa3\xaa\xbe\xdc\x4a\xc3\x54\x71\xcd\xd2\xfc\xf6\x4c\x8a\x73\x9e\x1a\xc5\x68\x1b\x5a\x4c\x8f\x36\x9f\xee\xa7\x60\x57\xba\x9f\x29\xa9\xc1\x81\xf1\x45\xcc\xcd\x8b\xe5\x6a\x73\x86\x77\x08\x4e\x94\xca\xb4\xf9\xd2\x6d\x0a\x94\xdb\xca\x37\x09\x98\xc3\xb5\xbc\xa3\xd5\x5d\x2f\x00\x1c\x8a\xd9\x48\x84\xa1\x08\x5d\x94\xed\x1a\x7b\xce\xea\x87\xbd\xc8\x1f\x5b\x4c\x1b\xe3\xf9\xb0\xd4\x26\x35\x67\xdf\xbb\x2e\x58\x92\xc5\x20\x0d\xbe\xa3\xa8\x2b\x90\xfc\x6e\x96\x73\xf1\xa3\x20\xe0\x8f\x1c\x1a\x1f\x2d\x41\x00\x18\x6c\xe3\x9b\x6d\x0c\x06\xa2\xca\x51\x08\x23\x4b\x15\x1b\x67\x09\x84\x50\x24\xc2\x2c\x65\x90\x52\x50\x2e\x0d\xc0\x3e\x86\x38\x23\xa5\x82\x35\x05\x54\x11\x67\x61\x62\x3c\x4b\xd5\x8c\xa7\x16\xde\xa0\xb0\x10\x0d\xc8\x21\xa5\x31\x8d\x04\xa4\x14\xf5\xd8\x28\x4b\x59\xa8\x84\x86\xf4\xc7\x29\x5f\x08\xfa\x55\xfa\x61\x1d\xe6\x61\xac\x6d\x9c\x23\xad\xec\x67\x73\xd3\xb4\x3c\xec\x1c\x2a\xa5\x09\x33\xa7\xfd\x81\x90\x71\xda\x57\x49\x9f\x0e\xe0\x06\x87\xa1\xf0\xa0\x97\xe3\x47\x47\xc1\x61\xf5\x49\xcd\x84\x84\xbd\xf1\x6a\x87\x41\x79\x47\x6b\x0c\xb4\x35\x1a\x29\x05\xab\x87\x67\x67\x9e\x2e\x99\x2b\x8e\x45\x8b\x0a\x49\xa8\xe6\x3b\xae\x59\x30\x95\x51\x88\x38\xc1\xcb\x77\x63\x80\x64\x14\x89\x2d\x06\x36\xf6\x94\x37\x15\xbb\xfc\xbc\xfc\x4b\x22\xff\x1a\x0c\x89\xc7\x07\xd8\xc9\xd9\x30\x66\x8c\xf5\xe1\x15\x67\x76\xac\x85\xef\x70\xc8\xc3\xf8\xe4\x80\x81\x73\xd1\x3e\xe1\x3d\x5e\xdf\x41\xb5\x0b\xf8\x6a\x30\x18\xb0\x7f\x8a\x44\x99\x05\x99\xa9\xa4\x41\x1a\x69\xbf\x9b\x91\xd4\x69\x7f\xc6\xe7\xfd\x0f\x62\xb9\x2e\x5f\xb3\xf9\x41\x06\x58\xb4\x10\x9d\xc5\x63\x8a\x1d\x86\x8b\x6a\xd6\xb0\xfa\x18\xec\xc8\xed\x8c\xcf\x6f\x8d\x86\x45\xf9\x3a\x56\x6d\x86\xfe\x20\x17\x8a\x40\x1b\x65\x1c\x8a\x8f\x76\x43\x66\x7c\x3e\x30\x3b\x00\xd0\x3d\x29\x9f\x60\x15\x1b\x5b\xba\xd8\x96\x22\xc5\x84\x6c\x38\x58\x78\x7b\xa6\x46\xe7\xab\x1f\xc8\x70\x8f\x39\xb6\x63\x93\x2c\x86\x7b\x33\x3e\x1f\xee\x0d\xd8\x79\xa4\x55\x2f\xa7\x53\xda\xbb\x6a\x0e\xa8\x31\x47\x93\xf4\x92\x2a\x8c\x6a\x9a\xc0\x06\x86\x94\x5a\x61\x53\xe0\xe0\x14\x62\x3e\x45\x96\x08\xb6\x1f\x2b\x16\x0b\x6d\xdd\x84\x2e\xe0\xe2\x80\xa6\x29\x58\xce\x95\xbd\xb7\xc3\xab\xe8\x9a\x40\x7e\x34\xd5\x4b\x52\x09\xce\xb8\xe4\xa9\xec\x99\x59\x41\xfe\xb6\x59\x0c\xa5\x0b\xbd\x1a\x32\x46\x46\x64\xb4\x1f\x47\x11\x01\x42\x1b\x16\xf2\xe8\x60\x7e\xf5\xdb\xb4\xf1\xd9\xc4\x6b\x5f\x3d\x97\x1e\xed\xb7\x79\x8e\x4c\x42\x64\xde\x5c\x45\x6a\x62\x0b\x63\xe7\x67\xa2\x50\x1c\xbb\x78\xc2\x2c\x3c\x38\x2c\xf9\x29\x9b\x2b\xad\xc1\x3c\x81\x87\xc5\x92\x8a\x5b\x9e\xaa\x99\x0c\x6e\xcf\x72\x50\x20\xa0\x5c\x02\xd9\x86\xce\xf3\x85\xb1\xde\x76\x0f\x8d\x14\xf6\x14\x0d\x88\x1e\x9c\x43\x2f\xf4\x66\x08\x72\x1f\xe1\x13\x89\x88\x96\x2c\x11\xf3\x88\x07\x36\x83\xd0\x41\x42\x17\xe7\x42\x3d\x11\xe4\x84\x2b\xdc\x1b\x2f\x1d\xca\x3e\x8c\x6e\x1f\x8f\x67\x8f\x06\xd0\x33\x54\xc7\x9c\xc7\x93\x03\x76\xab\x45\x7a\x6b\xe9\xd6\xb5\x48\x73\x98\x21\xed\x95\x76\x77\x6c\xcb\x55\xdb\x45\x98\x71\x47\x13\xa0\xe0\x2e\xc5\x1c\xbd\xe1\xc1\x94\x3a\x44\x06\x50\xbe\x46\xbd\x1c\xd9\x1d\x7b\x28\x6c\xb6\xa1\x41\x48\x50\x68\x99\x81\x57\xd8\xa9\x7a\xb4\xa8\x89\x0e\xd1\x63\x83\x61\x7c\x7a\x80\x54\xc9\xce\x0f\xa3\xa1\x68\xab\x13\xb2\xc4\xcd\xf8\x5c\x63\xfe\x01\x4a\x30\x32\x61\x22\x12\x00\xb3\x69\xaf\x5e\xac\xe2\x3e\x52\xad\x0f\x62\x49\x7d\x59\x10\x10\x5b\x6b\xd5\x3c\x3a\x1b\xb0\x77\x88\xe1\xe4\xc1\x92\xb1\x6c\x0e\xd1\x8d\x09\x65\x78\x9a\x17\x1a\x4a\x67\xf7\xae\xee\x34\x52\x80\x24\x4c\xd3\x0d\xc6\x10\x1c\xd8\x55\x94\x65\x86\xb1\x8f\x5a\x89\x93\xc6\xeb\x6e\x96\x68\x1b\xf4\xdb\xda\x6d\xd8\xe4\x9e\xba\xad\x2b\x5c\x53\xda\xe9\x1d\xdc\x53\xb8\x0a\x56\x24\xa0\x6e\x0b\x57\xf6\xa4\xf1\xca\x4e\x12\x1e\x67\x11\x4f\x4a\x67\x01\x36\x3f\x87\x78\xc1\xcf\xfb\x1f\xc4\xb2\x8f\x47\x77\xce\x65\xa2\x0f\xe0\x25\x50\x19\x96\xc4\x3c\xf0\x56\xc6\x36\x28\x21\xa5\x2e\x21\x23\x19\x9a\x61\x34\xef\x3e\x40\x58\x04\x46\x98\x31\x5f\x8e\xcc\xeb\x62\x39\xcf\x22\x4e\x09\x13\x5a\xcc\x79\xc2\x53\x78\xbb\x4a\x74\x0e\x2e\x4d\x1d\x52\x3e\x2b\x90\xfd\x91\x98\xf2\x85\x54\x59\xe2\x48\xba\x19\x2b\x5d\xe2\x9d\x12\x24\x58\x83\x96\xf4\xe8\x9e\x87\xac\x41\x8c\xde\xe4\xcc\x35\x49\xe2\x3a\x55\xf3\x1c\x32\x93\xca\x52\x87\x22\x50\x21\x48\xab\xa9\x98\xe3\x7e\x51\x6c\x6d\x4b\xc8\x43\x2f\x30\x97\x82\x06\x71\xcb\xf8\x78\x0c\xd0\x29\xd4\x4b\x22\x82\x2c\xd1\x72\x21\xa2\x25\x0a\xff\xfa\x4e\xa6\xc1\x54\x68\x36\xe2\x01\xd4\x84\x44\x3c\x6c\xf7\xf6\x7c\x77\xe5\x18\xc4\x07\x11\xfa\x1c\xdd\xec\x78\x8d\xc6\x5e\xc4\xa9\xb0\x63\x2c\x0c\x0c\x4e\x9f\x13\x2b\x00\xd4\xd0\x8f\x71\x1a\x60\xf9\x17\x50\x3d\x54\x32\x92\x61\x28\x9a\x4a\xc0\x54\x65\xd0\x7f\x29\xed\xee\xc3\xc5\xc1\xd6\xd8\xb3\x5b\xc7\x86\xd2\x03\xc5\x42\x8b\x78\xbb\x5d\xd5\xfb\x7c\x85\x30\x8a\xd4\x0f\x2d\x45\x07\x3c\xf2\x1d\x35\x2e\xff\x3c\x60\x3f\x72\x69\x68\x14\xe4\xc6\x51\x05\x74\xc8\xa0\x25\x7c\x9f\x2c\x81\xa4\xa6\x07\x0a\x91\xa5\xe0\xc7\x0d\x16\xc3\xb4\xf7\xd7\xa2\x6e\xba\x8c\xf6\xda\x72\x74\x9f\xd1\xc0\x11\xb2\xb9\x58\xb6\x1d\x1d\xd5\xe5\x83\xcd\xd2\x8f\xae\xda\x60\xb2\xde\x63\xc5\xfd\xaf\x9d\x35\x69\xb2\xb0\xd5\xbb\x9a\xc9\xb5\x48\x16\x32\x10\x57\x16\xab\x66\xc5\xe8\xcb\x4d\xd9\x54\x01\xaf\x71\x81\xf3\x60\x35\xa0\x56\x83\x48\x4c\x78\xb0\x2c\x17\x9b\x68\x8c\x59\xde\x10\xb1\xc5\x07\xfa\xd5\xf4\x46\x57\xc4\x75\x4b\x94\xde\x39\x5f\x6b\x6c\x72\xed\xfc\x71\xe0\x17\xbb\x1b\xcc\x7c\x7d\xee\xee\xdc\x96\x95\xf7\x0a\xfa\xbf\xbf\xfa\x01\xd3\x19\x79\x4a\x5c\xc2\x8c\xc7\x96\xc3\xb5\xfc\x12\x52\xe9\x83\xed\x58\xa3\x51\x14\xd7\x0d\x0c\xc0\xdd\x8b\x03\xa3\x25\x61\xf0\x5b\xcb\xc1\xb1\x5b\xd3\xfa\xd6\x43\x2b\xb1\xf1\x47\xd0\x8b\xc5\xcb\x3c\xee\xbf\x7c\xf1\xe2\xf4\x45\x0f\xeb\x72\x19\x86\x76\x50\xa4\x06\xcf\x9f\x43\x64\x17\xb0\xb5\x3b\x9e\x84\xce\xa7\x2b\x23\x69\xc8\x41\xaf\xd1\x5d\xd4\xbe\x9c\x7a\x85\xcd\x34\x23\x75\xe0\x19\x2b\x03\x15\xd1\xc7\x07\xce\xd8\xb5\x65\x94\x01\x8c\xff\x95\x8a\xc7\x72\xb2\xe2\xb2\xd7\xb4\xce\x61\x18\xd0\x4a\xe2\x6a\x56\x9b\x85\x9e\x61\xee\xea\xcd\x0f\xd7\xa6\x59\x4c\x21\x5e\x4e\xff\xb2\x85\x96\xdb\xd4\x4f\xf9\x6b\x16\x87\x55\x03\x76\xa5\x7a\x0a\x36\xc3\x50\xe7\xcb\x37\x3f\xba\x20\x84\x57\xe7\x6c\x84\x3f\xe1\x41\xb3\x87\xcb\x2a\x44\xd6\x80\xea\x8f\xeb\x99\xb6\x12\x58\x60\xc6\x04\xd9\x18\x02\xec\x7e\x59\xec\xe1\x6c\xe9\xa5\x4e\xc5\xcc\xb0\x18\x9d\xb2\x44\x29\xa3\xf4\xa0\x4c\xe3\x36\xc0\x81\xe7\x36\x9e\xad\xd1\x32\x6d\xb0\xa2\xad\x4c\xef\xc7\x4b\xf4\xc0\x7e\xbd\x0a\x37\x58\x99\x28\x49\xf7\x5a\x56\x78\x80\x47\x08\x73\xb3\x95\xab\xb5\xfd\x06\x85\x19\xdb\xc0\x88\x7b\x49\xe4\x94\x70\xb7\xdc\x60\x8f\x22\xd8\x60\x4b\x28\x24\xd8\xe7\x41\x22\x35\x47\xcb\x66\xf2\x23\xf2\x32\x21\xd2\x2e\x55\x66\xc9\x46\xa6\x05\xe2\x67\xc9\x40\xdc\x36\x84\xa5\xd7\x24\x56\x95\xe6\x69\x46\x37\x91\x0b\xca\x04\x8d\xa8\x6e\x85\x25\xf8\x34\xb4\x1e\xe2\x8f\xf0\x38\x34\x54\xc6\xd0\x62\x80\x97\xdf\xbf\x05\x69\x57\x9c\x1d\x1e\x4e\x95\x4e\xcf\x0c\xf5\x3a\x34\x54\xfa\xf6\x60\xc0\xde\x78\x00\x4a\x6a\xcc\x6e\xb3\x24\x42\x28\x16\x3b\xe4\x86\x45\x31\x4a\xfa\xad\xe9\xce\xd1\x47\xa3\x0b\xc0\x0e\x80\xaa\xed\x96\xd6\xae\x55\x71\x9d\xfe\x42\xc5\x6a\xbc\xb5\x71\x95\xef\x75\x2a\x38\x05\xb8\x42\x24\xe7\x4c\x4e\xa6\x04\x88\xa8\x55\x64\x41\xac\x5c\x6a\xdc\xeb\xb7\xd7\x30\x6f\x35\xf3\xae\x80\xc6\x82\x44\x3d\xac\xe9\x91\x9f\xbb\x5b\x23\xca\xe2\x48\xa1\x2f\x26\xe3\x3e\x0d\x09\x3a\xe2\x16\xb2\x32\x27\xf9\x11\x5f\x0a\x2c\x81\x26\x55\x04\xcb\x7e\x30\xb0\x53\x37\x4a\x35\x8f\x34\xf8\x29\x20\x00\xd4\x46\x67\xc2\x1a\x5d\x46\x82\x6b\x50\x92\x48\x8c\x06\x0c\x3e\x76\x6b\xb6\x2f\xc2\x0e\xcc\x4a\x1f\x9f\xfc\x69\x70\x34\x38\x1a\x1c\xdf\xa2\x1a\x4a\x7d\x9b\x73\x26\xf5\x87\x25\xcb\xe2\x48\x68\x0d\x67\x0a\xb2\xf3\x27\x46\x67\x65\x01\xe0\xb0\x2a\xb3\xbe\x85\xb3\xcd\x30\x99\x10\x96\xce\xaa\x6a\xa6\x8d\x91\xcf\x1d\x81\xc0\xaf\x71\x61\x63\x81\x34\x09\xa8\x27\x14\x05\xc2\xeb\xe3\x5f\x97\xeb\x2c\x98\x62\xb5\x21\xf3\xb3\x35\x0b\x45\x4b\x72\xd1\xc4\x2a\xee\x9b\x53\xc5\x47\x91\xc0\x78\xe2\x1e\x1c\x07\xc1\x35\x34\x01\x78\x91\x6c\x6e\xb6\x89\xb3\x58\xdc\xd9\x53\xe0\x4e\x12\x1e\x50\x77\xd4\x86\x7b\x80\x96\x33\xdc\xfb\x0b\x1c\x11\x73\x92\xe9\xa7\x89\x24\x82\x4e\x4d\xce\x0e\x0f\x87\x7b\xd0\xcd\x39\xb3\x02\x89\x65\xfa\x84\x56\x30\x76\x76\x5e\x32\x01\xf2\xd8\x62\xd0\xa0\x33\x84\x8c\x21\x30\xb8\xf7\x57\x3f\x0c\xd8\xbf\xab\x0c\xda\xda\x23\x0a\x1d\xa7\x0a\x82\xc9\x50\xcf\x19\xc9\x34\xe1\x89\xeb\x86\xc8\x8d\xbb\x86\x98\xa4\x09\x81\xfa\x3d\xc6\xed\x6c\xad\x19\x4c\xd2\xc4\xcf\xd3\x54\xcc\xe6\x16\xf2\xdf\xbc\x8c\xea\x82\x80\xac\xa0\x65\xc0\x78\x96\x4e\x11\x0a\x70\xb8\x67\x7e\x39\xb3\xe1\x6c\xff\x6b\xb8\x87\x18\x23\x69\x8e\x50\xf2\x6d\xc2\x27\x68\x04\xdb\x1f\xee\x7d\x35\x18\x0c\x86\x7b\x68\x94\xf9\x47\x26\x92\x25\x9b\xf3\x84\xcf\x04\x44\x12\xee\x0f\xf7\xbe\xb1\xbf\x93\x12\x4f\xbd\xf4\x48\xcb\xdb\x1a\x3d\xe4\x41\xa5\x86\xba\x72\x27\x4d\x32\x83\x5f\x7c\xa4\x50\x84\x5b\xc1\x19\x07\xbc\x27\xd7\x84\x36\xae\x85\x60\x50\x2f\xb8\x3c\x04\x1b\xac\x13\x95\x56\x71\x42\x7f\x68\x56\x33\x30\x37\x36\xc9\x02\x44\x40\x36\x87\xd2\x5f\x81\x02\x4f\x83\x98\x48\x9e\x8a\xc9\xd2\x3c\x7b\x4b\x2f\x6f\xe2\x57\xf9\xd2\x5d\x89\x85\x14\x77\x2d\x11\x84\x9b\x1e\xb3\xc2\xba\x85\xcd\xa7\xbc\xf7\x39\x70\x13\xf3\xcd\xed\xab\xd2\x93\xb7\x39\x92\xae\x99\x06\x0d\x97\x89\x8f\x00\xe3\x8c\xbc\xc3\x33\x69\x79\xd5\xd1\x04\x41\xd7\xdb\xad\x27\xb6\x84\xa6\x64\xa0\x8a\x32\xb5\x0e\x29\x0b\x79\x9a\xbb\x46\x73\xc0\xfe\xa2\x41\x89\x70\x77\x8b\xe9\xc3\x6c\xb4\xf4\x06\xd1\x2b\x1c\x38\x33\xa0\x31\x97\x51\x63\x4d\x13\xf3\x66\x9e\xe3\x25\xbb\x29\x06\xb0\xc1\x2e\xba\x34\x07\x8d\xb5\xd5\x20\x1c\x8e\x72\x1c\xe6\xee\x74\x5b\x32\x18\x12\xa0\x6d\x0b\x4c\x2e\x21\xda\x65\x06\x7a\x6d\x07\x9a\x33\x81\x92\x7e\x64\x86\xfc\x99\xc0\x85\xeb\x15\x9a\xc6\x93\xf8\x28\xfa\x0c\x20\xb2\xae\xc3\x90\x6d\x0b\xff\x50\x7e\xd0\xdf\x5c\x0b\xaa\x4b\xb6\x33\x73\xa6\x01\x2e\x68\x9e\xc8\xb8\x58\xe0\xb9\x91\x74\xfd\xef\xeb\x77\x6f\x5b\x20\x72\xd9\x66\x54\xfc\x55\x42\x19\x85\x1c\xa6\x68\x1f\x92\x85\x30\x50\xbd\x80\x96\x65\x61\xf2\xa4\x66\x62\xc1\xa3\x0c\xad\xea\x13\xa3\xaa\xa5\x68\xda\xaf\xc0\x76\x29\x36\x4f\x54\x98\x05\xc2\x8b\x89\x71\x92\x3a\x4e\x78\x0b\x03\xc1\x8a\xd4\xc0\x4a\x8e\xab\xfb\xe8\x95\x56\x67\xae\xb4\xba\xff\xbb\xc5\x76\xdd\x7a\x58\x9b\xe7\x85\x39\xdb\x85\x4d\x10\x03\xa7\x4e\xce\x5b\x2a\x6b\x05\x54\xef\x99\xd1\xe6\x9f\x31\xaf\xa7\xf9\x3c\x92\x28\xe1\x81\x2c\x43\xe8\x2e\xb9\x2c\x62\xcf\x96\x91\xda\xb5\x26\x28\x71\x5b\x2e\xcf\x7a\xee\x00\x96\x15\xdb\x11\x6f\x71\xfb\x68\x5e\x58\xc4\xa1\x9e\xc8\x74\x9a\x8d\x06\x81\x9a\x1d\xbe\x3b\xbf\x38\xa4\xf1\xf7\x0b\x20\x03\x87\xa3\x48\x8d\x0e\x67\xdc\x08\x46\x87\x96\x24\x1d\x9e\x0c\x8e\x06\xb3\xf0\xab\x90\xa7\xbc\x8f\x80\x0c\xeb\xab\xf3\xac\xb3\xa9\xb5\xb4\xe8\x55\xb6\x1f\x7e\xc8\xeb\xd4\x6f\xb9\xef\xf3\x44\xaa\x44\xa6\xcb\xb5\x85\xa7\xb0\x19\xed\xbd\x8d\x00\xc2\xdd\x76\xb9\x15\x46\xfd\x30\x3a\xcb\x0c\x84\xed\xd8\x5a\xfc\xdc\x11\xa0\x3a\x29\xb8\xdb\xe0\x5f\xd3\x03\xf6\x83\xba\x73\xd5\x5d\x50\x76\x0f\x14\x80\x8d\x99\x76\x53\x39\x31\x7a\xb0\x7d\xfd\x80\x59\x38\x72\xf4\x6b\xa3\xc0\xac\x6c\xc0\x50\xcc\x22\x39\x93\xe6\x4f\xb4\x37\xea\x40\xc4\x3c\x91\x4a\x7b\x36\x32\x04\xb9\xe3\xae\x4b\x54\x57\x2c\x6e\x4f\x19\x97\x6e\x4b\x73\xd7\x9a\x80\xc1\x86\xca\xfa\x5e\xb2\xe5\xda\xbb\xf4\x84\xce\xf3\x06\xb6\xbd\xbd\xf2\xc2\xf4\x6a\x18\xc0\x67\x64\x8d\x2d\x04\xf8\xa6\x47\x6a\xe4\x78\x2a\x70\x9f\x57\x11\xf1\x2b\x51\x70\xf6\xea\xaa\x8d\xa9\xaf\x13\x65\x7f\xc7\xa2\x6c\xc1\x4e\x7f\xfb\xf3\x70\x8f\x0e\xee\x70\xef\x97\xc7\x2f\x2a\x6d\x35\xb0\xb5\x98\xa9\xa4\xa8\xe5\x2b\x66\x2e\x44\x6d\x29\x00\xba\x22\x66\x03\x45\x7a\x27\x44\xec\x96\xac\xae\x7e\xdc\x19\xeb\xb3\xdb\xb7\x2a\x16\xb7\x67\x58\x5d\x80\x9e\x4e\x30\xc2\x04\x21\xd9\xac\xa9\xd9\x0f\x0e\xbe\x73\x06\xc0\x54\x41\x35\xaf\x78\x49\xe1\x1d\xd6\xa6\x57\x7f\x30\xfa\xb9\xa6\x79\xe6\x6d\x1b\x6e\x10\x2a\xa9\xaa\x00\x83\x65\x77\x30\x55\x2c\x24\x50\x39\x77\x12\x07\xec\x3c\x2f\x9c\xe1\x79\x06\x86\x31\x03\x5b\x89\x10\xa1\x1f\xc1\x88\xe2\x15\x45\x00\x6c\x88\x2e\x82\x96\x25\x68\xeb\xbd\xff\xae\xc6\x5d\x81\x0f\x69\x51\x2e\xc9\xd2\x46\x74\xa8\xe9\xef\x61\x6d\x0e\x48\xb3\x37\x35\x3c\xd4\x4d\x7b\x67\xf6\x07\xe7\xc2\xc4\x90\x9a\x5b\xdb\x0a\xcc\xa3\x14\xb8\x5a\x6b\xad\x68\xc9\x34\xdd\x9d\xfb\x6c\x4c\x71\x0b\x4d\xd1\xd3\x11\x0b\x0e\xfb\x22\x46\x66\x2e\x92\xd9\x5a\xd9\xe4\x27\xca\x09\xf9\x80\xb1\x8b\x54\xa3\xa4\x0b\x31\xc5\x23\x87\x32\x4c\x0a\x04\x56\x05\x01\x20\xea\x41\x5e\x06\x7b\xe0\x7f\xed\x15\x11\x31\xf4\xd4\xaf\x27\xba\x38\x1e\x1c\xbf\xec\xb1\x79\xc4\xe3\x98\xee\x1e\x14\x35\x82\x0b\x0a\xbf\x7e\x3d\x60\xef\x35\xd0\x13\x6f\xa1\xd0\x5f\x7f\xb8\x38\x6e\xae\x9f\x6b\xbd\x04\x2d\xea\xf4\x38\x52\xb5\x86\xae\x9e\x5f\x5e\xfc\x54\xaa\x57\xec\xf1\x49\x23\xf3\x22\x6a\x9a\x15\xb9\x4b\x20\x14\x10\x63\xef\x72\x28\xae\xc9\x0b\x41\x9b\x60\x45\x95\x44\x04\x6a\x12\x03\x72\x3c\xf6\xe6\x78\x53\xc4\x53\x01\xaa\x17\x51\x3a\x8a\x60\xb6\x91\x7b\x89\x80\x40\xbe\x2c\xf6\x7a\x40\xc2\x5d\x0b\x32\x3f\x91\xa9\x5d\xc5\x40\xcd\x66\x59\x2c\xd3\xe5\x21\x14\xc0\x92\xa3\x2c\x55\x89\x3e\x0c\xc5\x42\x44\x87\x5a\x4e\xfa\x3c\x09\xa6\x32\x15\x10\x99\x6d\x6b\x03\x2d\x8c\xd6\x67\xb6\x62\x16\x7e\xd5\x50\x8d\xa2\x0d\x05\x83\xa2\xdd\xab\x57\xfd\x7b\x19\x53\x41\x13\xb2\xa5\xa3\x1d\xc0\x2d\xae\x55\x7e\xa0\x66\x89\x77\xc0\xf3\xe0\xc6\xfc\x0a\xe4\xcb\x6e\x96\x4c\xc6\x63\x5b\xff\x86\xaa\x6d\x89\x1c\xd3\x14\x5d\x51\x86\x62\x31\x9d\x8d\x66\x32\xd5\x3e\x5c\xe9\x80\xbd\x42\x2f\xd1\x48\xe4\x51\xc5\x17\x31\x7b\xc5\x67\x22\x7a\x05\xd5\xd0\x1f\x78\xd1\x41\x59\xe8\x9b\xf5\xdb\x62\xd9\x6d\xde\xcb\xa6\xdc\x62\xc6\x83\xa9\x8c\x45\xb2\xcc\x29\x98\xe9\x6a\xb0\x38\x1e\xe4\xf9\x46\xcd\xd0\xfc\x8f\xc1\x9c\x56\xd6\x66\x5f\xe9\x28\xae\x56\x61\x37\x67\xa0\x58\x87\xbd\x58\x72\x86\xca\xb0\x37\xc8\x6a\x0f\x8f\x20\xbc\x66\xc6\x5b\xa2\x08\x53\x10\x6f\xbb\x02\x96\x9b\xf3\x53\xb3\x0f\xeb\x78\xa9\xfb\xbe\x10\xa4\x0a\x7c\xa4\x4f\xe4\xb6\x4f\xa4\x23\xef\xba\xb0\xd0\xb6\x24\xfc\x5e\x1d\xe3\x28\xae\x09\x75\xd4\xc8\x42\x8b\xad\x73\xfd\xd4\xaa\x02\xd5\x35\xf8\xe5\x11\x64\x81\xbc\xbe\xe3\xe6\x42\x81\x7b\x36\x0f\x96\x21\x8b\x83\xa7\xa2\x25\xa0\x30\xbb\x02\x99\x8e\xab\xcd\x55\x1b\xa6\x1a\x71\x9d\xde\x24\x3c\xd6\xf0\xf0\x8d\xac\x5a\xd9\xee\x41\x6b\xa0\xbb\x55\xe7\xba\xfa\x76\x66\xbe\x42\xc8\x0b\x52\x0a\x68\x5a\xa9\x6b\x66\x0b\x29\x1a\x15\x98\x2e\x46\x5e\xef\xb1\xc1\xcf\x35\x13\x5a\xaf\x2f\x76\x45\xad\x3c\x23\x62\xdf\x19\x11\xdd\x6f\x78\x07\x0d\x37\xb3\x7b\xc1\x47\x2a\x4b\x69\xe0\x6e\x94\x5b\xa8\x09\x89\xe0\x7a\xad\x70\x83\x8d\x70\x88\x98\x2a\xdb\x33\x2b\xd1\xbf\x53\x49\xd8\xcb\xf9\x1a\xa3\x76\xb9\xd9\x93\x16\xf2\x99\xde\xc1\x48\xeb\x89\x66\x03\xd1\x2a\x00\xe5\xdb\x3c\x32\x3b\x1c\x60\xd0\x86\x3b\xdf\x40\x2a\xe4\xb7\xa8\x94\x91\xbe\xb6\xc5\xc8\x36\x30\x22\xa6\x36\xdb\xb6\x3a\xa6\x1b\xb0\xf0\x59\x03\xc5\x1b\x9d\xf2\x51\x24\xf5\x54\x84\x3d\x06\xa5\x73\xcf\xa9\x8e\x2e\x48\x75\x37\x22\x99\xc9\x98\xa7\x1b\x94\xc2\x69\x49\x83\xcb\x86\x3f\x5a\xf6\x27\xa0\xe1\xfc\x20\x75\xba\x05\x41\xfb\x81\x92\x35\x72\x48\xf4\x46\xbd\x80\xca\xb3\x76\x7a\xc1\x93\xd6\x0b\x6a\x21\x7e\x4a\xcb\x8e\xc9\x73\x98\xa7\x13\x87\x72\x21\x43\x23\xb6\xac\xdb\xf8\xcf\x50\x43\x74\x8d\x52\x7f\x1f\x8b\x60\xa7\x3f\x7d\x29\xfa\x93\x21\x61\x25\xed\xa9\x25\x35\xc7\x33\xfc\x9b\x12\xa9\x81\xcc\x3f\x49\xb1\xba\x5c\x67\xbf\x2d\x07\x7a\x4b\x55\xe9\x7d\x45\x8a\xea\xdf\xe7\xd5\xa1\xa4\x5e\x5f\x3a\x7e\x45\xc8\x79\x2a\x26\x2a\xa9\x81\xa1\xa9\x04\x9d\xdb\x86\x45\x96\x08\xfb\x27\x42\x56\xaa\xfc\x59\x8e\xba\x18\x89\x48\xc5\x13\x18\x37\x44\xc8\xb2\x67\x3c\x8a\x9e\xe5\x59\x95\x6c\x9e\x91\xd0\xc2\x64\x0c\xa6\x42\x57\xbb\xdf\x95\x9b\xd0\xc8\x7f\x32\xc2\xaf\xb3\xb1\x02\x66\x29\xd0\x61\xc4\x64\xbc\xa0\x10\x65\x8d\x69\x94\x10\x86\x1b\xa4\x11\x9b\x08\x08\x36\x7c\x7c\xef\x4a\x0b\x5a\xfa\x81\x68\x29\x85\x8e\xdb\x1a\x8f\x16\x35\xd0\x37\x10\x58\x70\x15\x4c\x51\x8c\x96\x9e\x08\x0d\xae\x01\x19\x4f\xb2\x88\x27\x03\x3a\x11\x5e\x5d\xab\x58\x83\xe7\x5e\xfb\x9e\x3c\x07\x03\x42\xe8\x0f\xb7\xe6\x95\xb7\x1e\xc8\x02\x6d\x05\x78\xb3\xb6\x10\x6f\xcd\x19\xf9\x7e\xfd\xfc\x6d\xb3\x35\x6b\x00\x27\xce\xf9\x51\xf2\x15\xf1\x7d\x69\xc3\x3d\x9c\x83\x21\x05\xc3\xbd\x6d\xe2\x26\xa2\x2c\xe1\xeb\xa2\xe2\xb1\x91\x1d\x2e\x7d\xf2\xd3\xb2\xfc\x60\x23\xb8\xa6\x6d\xcb\x66\x6f\x5a\x26\x9b\xbe\xc7\x21\xe0\xd7\xb6\x8c\xe9\x8c\xa7\x94\x6a\xe4\x8f\xac\x51\x90\xd9\xf7\x0c\xf0\xec\x16\xbb\x05\x52\x33\xf0\x3b\x1f\x54\x46\x76\x7b\xe0\x15\x29\x8c\x22\x16\xa9\x3b\x44\x93\xdd\x46\x51\x9b\xaa\x24\x2d\xd3\xca\xba\x0d\xc8\x1b\xe2\x12\x4e\x21\x31\x0a\x3e\x5b\x15\x32\xaf\x6d\x68\xdd\x10\x0f\x46\x57\x70\x4d\x60\x10\xb9\xaf\xe2\x16\xae\xea\xac\xc5\xca\x3c\x82\x87\x97\xc8\xc2\xba\x55\xa5\x66\xee\x1e\xda\xcf\x75\x47\x7b\xc5\xf4\x0a\x37\xd2\x7d\x1d\x12\x79\xd9\xb1\xd6\x49\x17\xb6\x4c\x71\x9f\x80\xd6\x79\x5d\xb4\x4d\xb7\xe5\xf9\xd7\x55\x8b\x31\x2f\xd9\x8b\x65\x52\xa0\x30\x64\x30\x5e\xaf\x7a\x7a\x69\xea\xa0\xd8\x51\xd0\xd5\x9a\x63\xd1\xf4\x98\x1f\x3a\x91\x7b\xc0\x03\xfa\x11\x4b\xe5\xe1\xb5\xbb\x01\x9b\x94\xca\xd2\x79\x96\x16\x43\x9c\x6a\xaa\x12\xbb\x6c\xaa\x43\x48\x5b\x81\x6a\xc4\x24\x69\x07\x62\x9e\xea\xc3\xaf\x12\x11\x08\xb9\x30\xbf\x39\x4a\xda\xe7\xba\x0f\x69\x20\xc5\x48\x27\x76\xe1\xb2\x30\x7a\xa4\x52\x40\x60\x80\x0d\x01\x11\xda\x8d\xd7\x22\x37\xe4\x81\x0a\x37\x6a\xde\x8f\x8c\xe4\x8f\x75\xbe\x44\x62\x25\x5a\xf7\x0c\x87\x8a\xf0\x69\x06\x9c\xd8\x15\x17\xa0\x90\x17\x96\xba\xe7\x55\xd2\xf8\xb8\x97\x61\xe7\x80\x20\x28\xa8\x2e\x94\x7a\x1e\x71\x87\xd5\xc4\x27\xa2\xa1\xb4\xbf\xb9\xaf\x35\x69\x77\x9f\x4d\x0b\xad\x84\x22\xdf\x87\x76\x05\x75\xc1\x5b\x8f\x36\x11\xf7\xee\x95\x29\x10\x7e\xb0\x18\x5a\x6a\xbc\xaf\xb4\x48\x8d\x36\x9c\x73\xa6\x57\x57\xaf\x1b\xec\xbe\x56\x17\x5a\x75\x1b\xa1\x8d\xa5\xd0\x86\x9f\xe1\x17\xab\x2b\xec\xdf\x5b\xfc\x18\x0c\x06\x8f\x2f\x57\x6c\x99\xcb\xfe\x39\xbd\x63\x28\xbc\xac\x3a\x2c\x28\xa5\x10\x0e\x5b\x51\x58\x34\x64\x06\x04\xde\xa2\x24\x53\xde\xcb\xa6\x80\xdf\x9a\xe0\xa1\xb5\xd1\xbf\x75\x01\x47\xbe\xba\xc9\xd3\x62\xa5\xa5\x75\x18\x2c\x36\xce\x95\x6c\x93\x79\x2c\x48\x0e\xb9\x04\x01\x35\x14\x95\x47\x39\x68\x3a\x55\x09\x9f\x88\x41\x01\x45\x11\x71\x15\x73\xfc\x47\xb3\x38\x58\x96\xc4\x0e\x13\x52\x11\x0a\x00\x91\x3c\xba\xe3\x4b\x0f\xdf\x09\x48\x31\x85\x4e\x59\x03\xa7\x95\x59\xec\x55\xa9\x12\xfe\x0a\xa4\x06\x04\x8d\x60\x49\x29\x2f\x9f\x5e\x97\x12\xea\xbd\x20\x94\x33\x97\x79\xed\xc0\xe2\xbc\x30\x2e\x0a\x42\x61\x97\x38\x4c\x67\xaf\xcd\xe2\xc2\x04\x03\x74\x35\xac\xc7\xb9\xa1\xfc\x4e\xd0\xe0\xda\xe0\xef\x9c\xc1\xac\x6e\x73\x38\xa7\xb5\x3c\x39\xe5\xfa\x83\x3e\xe4\x41\x20\xb4\xf6\x5f\x60\x78\x33\x1e\xcf\x9c\x15\x97\xbf\xe8\xfb\xb7\xee\x2b\x02\xd5\x01\x5e\x98\xb9\x11\x9a\x6f\x4a\x18\x41\xeb\x03\x96\x57\x02\x2f\xea\x40\xad\x75\xad\x40\x1b\xef\xb8\xdf\x4d\x05\x55\x7a\x6d\x24\xa4\x86\xf0\x52\x5a\x65\xdf\xb0\x75\x07\x6c\xd0\x87\xce\xc2\xba\xf0\x46\x76\xfb\x0a\x9f\xb8\x85\x43\x7c\xfb\xd6\x3e\x13\xde\xba\xb3\x06\xd1\x67\xfe\x0f\x5b\x28\x4f\xf5\x95\xa2\x1f\x89\x04\x16\xea\x54\xaf\x0c\x0e\xf0\x2b\x4e\x5b\x32\x78\x07\x81\x63\xfe\x2f\xab\xf6\x60\xca\x5b\x49\x76\x95\xda\xd6\x6d\xc5\xbb\xc2\x83\x0d\x32\x5e\xfd\x1e\x2c\xea\xaa\xef\x3e\xd2\x0e\x78\x95\x7f\x57\xad\xbf\x47\x3d\x72\x25\x23\x87\xa6\x42\x2d\xb8\xb9\xce\x6d\x83\x08\x5a\xb3\x1f\x55\x32\x45\x62\x6a\x01\x88\xa2\xf5\x9e\x10\xf5\xde\x6c\x3b\x5a\x39\xda\x5c\x1c\x7b\x2e\x53\xd9\xaf\x1e\x58\xaa\x6a\x30\xea\xac\x96\xb4\x30\xf8\xde\x08\xf7\x96\x21\xdc\xda\x05\xbc\x25\xbf\xd5\xd8\x7d\x45\x24\x27\x6f\x60\x06\x37\x52\xe9\xd4\x83\x55\x60\xef\x6c\xc6\x97\xf7\xa0\xc6\x48\xd7\xbc\x91\xcf\xdc\x00\x5b\xc2\x6b\x58\x0e\x8a\x6c\x4d\xb3\x16\xed\xb2\x1e\x16\x5e\x96\x83\xb3\x04\xaa\x31\x1c\x1e\x6f\xbb\xf4\xda\xfd\xaa\x9b\x69\x79\xa2\x37\x1b\xaf\xf7\xac\xb8\x59\x79\xc7\x14\x85\xbe\xe1\x76\x58\xaf\x6f\xec\xec\x5b\xf6\xd6\x18\x79\x23\x23\xf4\x16\x85\x60\x96\x31\x49\x64\x74\xe0\xf2\xdc\x05\x42\x0a\xad\xb1\x7b\x11\xa6\xb3\x73\x25\x5b\x0f\x9e\xd4\x6c\xb8\x07\xb0\x15\x91\xfc\x20\x86\x7b\x3d\x26\x53\x94\x63\x34\xa0\x17\x8d\xd4\x02\x20\x17\x8a\xad\x4a\xbd\xe8\x9e\x27\x22\xba\x74\x14\xf1\x51\x06\x6a\x92\xf0\xf9\xd4\x22\x76\x0f\xf7\xbe\xaf\xf6\xa1\x99\x4e\x79\x42\xd8\x9a\x9c\x0d\xf7\x16\x66\x14\x80\x6c\xc2\x13\x0b\x10\x8d\x46\x3a\xee\x70\x90\x10\xa9\xf8\xef\x86\x62\x61\x2f\x07\xf4\x88\x4d\x64\x8c\x96\x14\xd2\x01\xb3\x1c\xee\xf1\x68\x3e\xe5\xb6\x98\x94\xa1\xa4\xc3\x3d\xd8\x16\x8a\xc9\x29\x76\x2c\x63\xaf\x63\x5b\xb3\x19\x6e\x38\x26\xa8\xe0\xe9\x18\x2d\xd9\x77\xe7\x68\x07\x14\x58\x7b\x94\xfe\x86\x77\xb1\xfd\x3b\x40\xa0\xfb\xee\x1c\x5d\x27\x79\x0a\x4b\x3a\x65\xb1\x62\x3a\x1b\x8f\xe5\x47\xa6\x21\x85\x41\xe3\xf3\xc0\xae\xe6\x53\x7e\x80\xb6\x49\x98\xd0\x68\x49\x89\x76\x66\x1e\x85\x29\xd3\x8c\x0b\xa3\x1d\xb0\xf3\xd8\xa2\x41\xd8\xd1\xba\xd2\xee\xb4\xde\x67\x6c\x71\x7c\xd4\x63\x8b\x93\x1e\x5b\x1c\x9b\xff\x03\x67\x81\x4f\x47\xe6\xaf\xd3\x1e\x5b\x9c\x02\xb3\x31\x5f\x9d\xc0\x88\xb0\x1d\xfc\x79\xd2\x63\x63\xa5\x8e\xf1\xdf\x72\x8a\xdd\x13\x70\x82\xdb\x40\x8b\x8d\xed\x0f\x2d\x6d\x8f\xa8\xaf\x57\xf4\xcf\x8a\x18\xfa\x14\x8c\x91\xe5\x18\xa8\xd6\xe6\xc8\xba\x60\xce\x76\x51\x9c\xeb\x0d\x92\x14\x98\x54\x6b\xf2\x7f\x5a\x6a\x7b\x61\xa8\x40\x00\x3c\x5f\x2c\x14\xd3\x73\x40\xb5\x00\x8a\x6b\xae\xa8\x25\xdb\xe8\xa8\xf5\xe8\xef\xcd\x54\x2c\x6d\x92\x6b\x9e\x45\x08\x89\xaa\x79\xaf\x12\x73\xd3\x9a\xa1\x30\xc2\xfa\x82\xc2\x55\xe3\x14\x35\x74\x7b\x48\xdb\x67\x84\xbc\x39\x4f\x52\x19\x80\x91\x9f\x6b\xc8\xfc\xa3\x1c\xc6\x56\x51\xab\x4f\xe0\x8a\xe7\x01\xab\xf7\x72\x90\xa4\x2a\x11\x61\xcb\x1c\xcc\x62\x63\x0b\x59\xed\xc9\xb1\xd5\x48\x31\x8b\xee\x64\xb8\x80\x58\x88\x24\xcf\x4a\x1c\xb0\x9b\x84\x07\x1f\x48\x7f\xd7\x5e\x7e\x24\x55\x67\xe4\x6c\x26\x27\x94\xab\x08\x50\x08\x80\xc5\x00\x43\xc8\xdb\xca\x98\x89\x34\xb0\xd5\x59\x51\xea\xd0\x46\x4e\x06\xc3\xbb\x56\x85\x5e\x20\xb4\x45\x45\x91\x48\xc0\xc4\x60\x56\x52\x4f\x0b\x2d\xf2\x00\x55\xc7\xab\xf6\x01\xd0\xde\x0c\x33\x56\x4c\x45\xb6\x6a\x07\x09\x1a\x62\x9c\x22\x06\x18\xd8\x71\x7c\x9e\x05\x79\x37\xc2\xda\xb9\xd2\x4a\x16\x28\x85\xf8\x50\xf6\xa7\x13\x7e\x30\x14\x88\x42\x79\xb0\x0f\x8a\xa3\xbd\x85\x4b\x91\x4b\x50\x77\x53\x19\x41\xff\x46\x1d\x20\x14\x81\xbc\xbf\xcf\x83\x19\xf2\xf8\xe4\xbd\x1a\x52\xd8\x96\xbe\xff\x54\x49\x73\xce\x05\x14\x73\xd4\xc0\x5a\xdd\xb9\x96\xaa\xae\xa5\xed\xdd\x43\x97\x35\x6d\x1d\x94\x3f\x47\xbb\x21\xe5\x18\x22\x0e\x46\x60\x03\x30\x35\xdb\xcf\xbd\x4a\xf6\xd1\xdc\xc8\x9a\xa1\x9b\x1b\xb4\xb1\x83\xce\x0d\xb5\x4b\x37\xd4\x86\x18\xbd\x0b\x4f\x87\xeb\x21\x94\xda\xff\xfc\xf7\xff\x5d\x1c\xff\xcf\x7f\xff\xbf\x1e\xfc\x75\x02\x23\x86\x8f\x22\x0d\xda\x5a\x12\xd0\xb0\x62\x33\xa0\xd3\xcd\x2d\x0b\xa0\x8c\x62\x97\xb7\xb6\xa4\xcf\x36\xb6\x46\xb0\xc6\x3c\x59\x1b\x17\xd9\x9b\xb6\xb7\x6f\x79\xab\xdc\x64\xef\xda\xda\x54\x55\xb8\xfe\x05\xa7\xc4\x66\xd7\xbf\x6a\x5f\x6b\x22\x04\xcd\xa8\xaa\xd5\x12\x6d\x35\x38\xa7\x82\x02\x7d\xc7\x11\x9f\x30\x11\xf3\x51\x24\xe3\xc9\x61\x28\x35\xfe\x55\x5c\x2e\xe0\xd1\x28\xfe\x5a\x93\x84\xe4\x18\x05\x7c\x7e\x79\xd1\x10\x14\xbb\xda\x92\x8f\x42\x45\x0b\xa1\xcc\x4b\x78\xb1\x61\x88\x6e\x9d\x8b\x4b\x53\xf6\x41\x55\x6e\x9e\xef\x94\xba\x01\xe5\xdd\xba\x8d\x84\x07\x5c\x5a\x50\xe4\xa9\xfd\xbf\xae\xb8\x52\xab\xe7\xf9\x85\xd9\xef\xab\x77\xa8\xd9\x9e\xbf\x58\x7d\xa1\x5a\xd8\xe3\x8b\xb7\xca\x7f\x60\x8b\xab\x55\x9c\xe3\xfa\x5b\xd5\xd2\x5c\x50\x46\xca\xa1\x1b\x58\x73\xd6\x3f\x9b\xc1\xc0\x3b\x06\xd7\x01\x8f\x56\x41\xe2\xaf\x7e\xd0\x45\x42\x10\xf4\x82\x0d\x56\x16\x50\xd7\x44\xf8\x4b\x8c\x62\x66\x51\x5f\x6a\x95\x0b\x38\x12\xd1\xb5\x88\x44\x90\xaa\xa4\x05\xc2\x5c\xa5\x7d\x21\xad\x26\x87\x9a\x23\xbf\x32\xa8\xc1\x15\xec\x38\x28\x4a\xa1\x92\x44\xe8\xb9\x8a\x11\x9c\x03\xa7\x7b\x8b\xd9\x4e\x03\x4d\x2f\xb8\x1d\xb0\x77\x71\xb4\xcc\xfb\xc5\x82\x4c\x2a\xc3\x1c\x86\x22\x88\x1d\xf9\xae\x09\x50\xd5\x45\x53\xe2\xc3\x30\x54\x72\x24\x0c\xf0\x2d\x88\xdf\x0b\x30\x08\xb7\x79\x7b\x3a\xd8\x77\x2a\xf9\x80\x14\xe9\x6f\x2a\x91\xff\x54\x71\xca\xa3\x4b\x15\x9e\x67\xa9\x82\xa5\x4f\x7c\x2d\x11\xb2\x2a\x6c\x9d\x7a\xa9\xbd\x65\xf0\x0a\x43\xa1\xe1\x14\x1f\xd8\x87\x9b\x04\x76\xc8\x48\x7c\x64\x76\xba\x54\x64\xcd\xa2\xf1\xb9\x04\x50\xee\x07\xf3\xc2\x0e\xe4\x8f\x48\x67\x79\x1e\xab\x64\x56\x9b\x9a\xf1\x80\xae\xe8\xaf\x60\x31\xfa\xfe\x39\x44\xb3\x78\x22\x30\xc0\x9a\x42\xa3\xad\xe0\x65\x11\xc6\xe8\x8c\xd4\x09\x05\x3d\x02\x96\x2e\x9d\x04\x5b\x6a\x91\x9c\x07\x87\xf0\xe2\xdb\xc2\x0d\x00\x2b\xbb\xad\x26\x44\x19\x58\x58\x64\x91\xca\x30\x6e\x21\xa2\xcd\x45\x70\x25\xe6\x91\x0c\xb8\x6e\x71\x3b\xca\xcd\x77\x7c\x39\x8c\xce\x9e\x50\xf7\x0f\x75\x35\xf0\x36\xec\x68\x13\x1b\x77\x09\x95\x4f\x40\x07\x4a\x12\x95\x30\x15\xb3\xef\xde\xdc\x6c\x9d\x95\xba\xc9\x16\x55\x1e\x78\x10\x0a\xf6\xd0\xdb\x84\x14\x6c\x67\x1b\x55\x1e\xf5\x16\xb7\xad\xec\xb9\xb8\x6f\x48\x72\xe5\xea\xad\xde\xf5\x27\xc1\xec\x37\x73\x0f\x54\x9e\x5c\xc1\xee\xf1\xf7\x75\xfc\x9e\x5d\xbb\xfc\x6b\x97\x18\x68\xf9\x92\xf0\x18\x5f\xfd\x29\x2f\xf6\x36\x60\xff\x66\xe4\x7b\x2d\xd2\x1e\xfb\x23\x85\xff\x1b\x56\x74\xd8\x30\x96\x3a\x5b\xc6\x1f\xd9\xe5\xfb\x1b\x3f\xb7\x10\x5a\xd5\xf5\x90\x62\xf5\x8f\x72\x07\x8a\x6a\x28\x03\x16\xfc\x24\x36\xbc\x0d\x81\xcc\x28\xff\x7f\x99\x4e\x0d\xeb\x13\x1f\x03\x31\x4f\x0b\x2b\x95\xf2\xf8\x9f\x1c\x07\x70\x78\xf9\xee\xfa\xe6\xf0\xf2\xfc\xe6\xd5\xdf\x2a\x63\xa9\x58\x5f\x2a\x2f\xa9\x74\xba\xf7\x39\x8f\xd8\x56\xa7\x4b\x17\x48\x1c\x4d\x06\x32\x9d\xca\x52\xa4\xde\x52\x8c\xd4\x25\x31\x97\x3d\xba\xbe\x85\x82\xf6\x6a\x7b\x06\x8f\x44\xc9\x05\x57\xde\x7e\x52\x53\xf0\xe2\xf1\x7a\xc2\x07\xc4\x1f\x19\x18\xc0\x45\xde\x72\x12\x0a\x8d\x42\xbf\x38\xbe\x25\x4e\x40\x49\xe3\x4f\x0b\x81\xa6\x4a\xac\x36\x86\xa0\x59\xbf\x64\x44\x64\xbc\x35\x23\x5a\x02\x66\x0f\x11\x9e\xb1\xe3\xc1\xda\x8b\x68\xa1\x8e\x5d\xd2\x72\xfd\xcd\xbc\x75\x6f\xc3\x0b\xaf\xfc\x7a\xe3\x03\x76\xb2\xfe\x45\xb5\x03\x5e\x45\x6c\x14\x85\x37\x92\x9f\x71\xf5\x08\x9e\x82\x83\xe3\xa7\xba\x78\xba\xd5\xc4\x23\x7f\xa4\x98\xa7\xea\x99\xcb\x66\x22\x9d\xaa\x70\x5b\x82\xa1\x30\xc4\xf9\xa7\xd3\xeb\x47\x33\x82\x96\x2a\xe2\xad\x3c\xf9\xa5\xe1\x59\x83\xb4\x0d\xcc\x5e\x9c\x5a\x6b\x21\xd5\xfe\x68\x36\x85\x7e\xa6\x13\xf0\x86\x40\x37\x5f\x53\x76\xde\xba\xed\xaf\x6d\x6f\xbd\xa7\xd6\xe3\x03\xb5\x03\x3d\x40\xcf\x02\xff\x87\x41\x84\x22\x74\x09\x81\xd0\x45\x8b\xa3\xb0\x02\xf3\xbd\x8d\x06\x50\x53\x7e\xe9\xf3\x56\x3c\xc9\x4f\xdb\x9a\x42\x8e\x05\xfc\xc7\x78\x49\xe5\xe9\xe0\x17\x2a\x4b\x89\x81\x52\x88\x3d\x5d\x80\xf4\x3d\x83\xc2\x94\x3d\x26\xe3\xf4\xe5\xf3\x1e\x1b\x47\x8a\xc3\x1f\x38\xe3\x1e\xfb\xf9\x17\x70\x04\x8e\x79\x20\xfe\xeb\xd7\x1e\x9b\xf1\xf9\xcf\xf8\x93\xff\x3d\x1c\xd3\x58\x46\x3b\xaa\x04\x59\x7f\xcb\x5a\xd7\xb2\x44\x42\x63\xbe\xec\xd3\xa5\xc3\x48\x35\x73\xe8\x0a\x60\xdd\xec\x75\xc2\xc7\x29\x7b\xce\xf6\xa7\x69\x3a\x3f\x3b\x3c\xfc\xbb\x56\x71\x9f\x6a\xc2\xaa\x64\x72\x78\xd0\xe2\xd0\x11\x81\xd9\xf8\xb4\xfd\xa1\xde\x69\xd3\xe6\xd1\xdc\x07\x7b\x51\x87\xa0\xf2\x08\x24\x8f\x6a\xa9\xae\x19\xdd\x65\xfd\x92\x3d\x81\x21\x46\xd1\xbb\xca\xa6\x3d\xa2\x63\xb4\x7c\xb4\xef\xe3\x09\xe5\xf1\xf2\x8b\x99\x0b\x19\x01\x1e\xeb\xb4\xac\x64\xdc\x61\x9e\x09\xc2\x9d\x75\x22\xaf\x4e\xe2\xca\x42\x17\x13\xb2\x5c\x06\x09\x45\xf0\x72\x0c\x1f\x1d\x0b\x9e\x66\x89\x6f\x4f\xa9\xc4\x7f\xd8\x87\x6c\xd3\x09\x94\x7d\x6c\x0a\x13\x41\xe3\x8f\x1d\x57\x9e\x45\x15\x50\x21\xf3\x3c\x05\x69\x71\xcc\xf6\x55\xc2\x62\x71\x27\x92\x83\xe6\xbc\xc0\xf3\xcb\x8b\x06\x0d\xc3\x5b\xf3\xf2\xc6\xb4\xb8\xea\x4f\xe5\xd4\xf9\x7c\xb9\x3a\x43\x2c\x4e\x1f\xd4\x50\xaa\x27\x33\xc5\x62\x61\xe7\x7b\xce\xf7\x5e\x72\x92\x88\xb3\xd9\x67\x26\x38\xf7\xa2\x32\x14\x84\xfd\x68\x54\xa6\x61\x10\xe4\x2a\xfd\x91\x7f\x94\xb3\xea\x82\xb6\xf2\x51\xe7\x9d\xc8\xf8\x1e\x9d\x38\x81\xfd\x51\xf8\x74\xbd\x42\x51\x3b\xb4\xcd\xab\x25\x79\x7a\x15\x7d\x4f\x1e\x1b\x8b\x0a\x49\x5f\xa3\x14\x8c\xba\xb9\x8d\xd3\x74\x42\xa2\xdf\xc4\x66\x46\x85\x67\xc3\x78\x18\xf7\xd9\x48\xab\x18\xef\x96\x0c\xcf\x0c\x79\xd7\x0e\x75\x8e\x5d\xbc\xc6\xaa\x97\x8c\xb3\x93\xe7\x46\xe3\x4f\x78\x00\x95\x16\xa7\xe2\xa3\xf5\xad\xf5\x59\x96\xc8\x33\x33\xd4\xf7\x57\x17\x8c\x6b\x36\xe7\x09\x01\x9d\x7c\xa7\x22\x1e\x4f\x58\x2c\xd2\xc3\x2c\x89\x06\x97\xe6\x87\x2b\xb4\x39\x98\xb6\x7d\x26\x66\x5c\x46\xf0\x2c\xfc\x65\x8b\x8c\x36\xf6\x62\x1a\x61\x37\xe7\xd4\xb2\x0f\xf5\x40\x63\x3e\x13\x67\xae\x8a\x75\x09\xa8\x70\x8c\x45\xfc\x2f\x00\x69\x50\xa4\x58\x7b\x15\xe3\xa6\xb8\x76\x31\x03\xa3\x25\xbb\xfa\xf6\x15\x3b\x3e\x3a\x35\xba\x02\x95\x58\x3e\x1d\x1c\xb3\x9f\xaf\xbe\x7d\x65\xbe\xfd\x65\xc0\xfa\x4c\xce\x17\xcf\xcf\xb0\x22\xea\xe2\x39\x94\x45\xad\x1f\x29\x0e\xf2\xe2\x12\x1f\x79\x69\x1f\x79\xd9\xee\x91\x40\x86\x89\x99\xce\xab\x8b\xd7\x57\xab\x9b\x43\x8b\x3e\x9b\xf1\xc0\xb4\xff\xf1\xfc\xd5\xba\x25\xc4\xc7\x4c\xc3\x3e\xcb\x32\xd8\xf1\x98\xbd\x7f\x7f\xf1\x9a\x82\xcc\x51\xab\xcd\xe6\x73\xc4\x54\xf1\x97\x07\x43\x6c\x27\xe2\x23\xdb\xff\x46\x1e\xfc\xe7\xcf\x47\xfd\xaf\x79\x7f\xfc\xcb\x7f\xfd\xf9\xd7\xfe\x37\xee\xc3\xf3\x76\x1f\x8e\x4f\x7e\xfd\x03\x8d\xe0\xd4\x0d\xe1\x74\x87\x63\x38\x75\x9f\x4e\xdb\x0c\xe2\xb9\x1b\xc4\xf3\x1d\x0e\xe2\x79\x71\x10\x7f\xfe\x9a\x8f\x7e\xa9\x1f\x97\x37\x94\x17\x6e\x28\x2f\x76\x38\x94\x17\x9b\x0e\x45\xea\x51\x8c\xc7\xf6\xfa\xaf\x6f\x8f\x8f\x98\x4a\xf0\xaf\x53\x9b\xbe\x44\xd7\x1f\xd0\x8a\x86\x7b\x47\xa7\x27\xc7\x7f\x7a\x71\x7c\xf4\xfc\xd4\x26\x3e\x7d\xfd\xa7\x3f\xf7\xdd\xb7\xc7\xc3\x3d\xea\xf3\xf8\xc8\xef\x75\x7d\x5f\xf4\xd4\x69\xfe\x54\xc3\x08\x6a\xde\x17\x24\x22\x94\x69\xc0\x13\x20\x6c\xf8\x89\x99\x8f\xb6\x87\xda\x95\xfc\xcf\xfd\x6f\xce\x60\xe7\x60\x2d\xf6\xbf\x39\xc3\xbf\x4f\x7f\x3d\xf8\xe6\xd3\x8b\x9f\x8f\xfb\x2f\x7e\xa1\x1f\x9f\xff\xfa\xe9\xe5\xfe\x37\x67\x47\xc7\xc7\x9f\x60\x79\xf1\xfb\x03\xf7\xe8\xa7\xd3\x9f\x9f\xff\xc9\x36\x3e\xfd\xf5\xd3\xa9\x69\xfc\xf3\x51\xff\xc5\x2f\x9f\x7e\x7e\xf9\xe7\x62\xeb\xe3\x5f\x3f\xed\x7f\x73\x76\x72\x7c\x7a\xfc\xe9\xf8\xcf\x47\x47\x9f\x4e\x5f\x0c\x87\xa1\x79\xa7\xf9\xcf\xf1\xf1\xaf\x07\x7f\xa0\xa4\xb5\x78\x09\x29\x72\xa1\x9c\x98\xb9\xe4\x14\x79\x26\x3f\x62\xc0\x72\x9f\x69\x6d\x76\x8e\xbd\x1f\x5c\x0f\x98\x56\x81\xe4\x91\x21\x68\x19\x14\x2d\xa3\x89\xe7\xac\xc1\x9b\x37\xbe\xf1\xe7\x3e\xfb\xe5\x1b\xf3\xe7\x49\xfe\xe7\x73\x38\x12\x53\xf1\x31\x50\x91\x4a\x60\x2b\xa6\xe2\x23\x0f\x45\x20\x67\x18\x37\xad\x12\x16\xa8\x50\xd8\xcd\xf8\xea\x5b\xf8\xdf\x59\xfd\x8b\xbe\xfa\x66\x9f\x8e\xdb\x79\xff\x5b\xb3\xb2\x9f\xfc\x8f\x2f\xcd\x64\xfb\x2c\x99\x8c\xf2\xb7\x5d\x7d\xf7\xd7\xca\x5b\x92\xc9\xc8\xbe\x2e\x99\x8c\xf6\x4f\x5e\xbc\xe8\xd1\xff\xbf\x86\xdd\x1f\x2d\x53\x71\xc6\x46\x5c\x8b\x97\xcf\x5d\x01\xfb\x91\x8c\x79\xb2\x64\x00\xe8\xd0\x67\xb6\xec\xf0\x19\xac\xab\xc5\x82\x73\x8c\xcd\xb0\x49\xb3\x92\x21\xe6\xb4\xf8\xa7\xed\xe4\xe8\xe8\x65\xff\xe8\xb8\x7f\x74\x32\xdc\x2b\xb1\x91\x71\x16\x45\x7d\x78\x44\xc6\x86\xa7\x9c\x9e\x9e\x7e\x6d\x3a\xa3\x82\x50\xd0\xa1\x2b\x0e\x55\xec\xf4\x84\xc5\x1a\xfb\xab\xd0\xee\x54\xce\x04\x12\xef\xd7\xf6\x61\x58\x0d\x04\x88\x88\x04\x1e\x8f\xeb\x80\x47\x5e\xf7\x24\x31\xe0\x4c\x4c\x0f\x6e\x36\x00\x29\x5e\x9e\xd2\xf1\xf3\xfe\xf1\x49\xff\xf8\xc5\xcd\xf1\xd7\x67\xa7\x47\x67\x27\x47\x83\xa3\xa3\xa3\xff\xa8\x4c\xd0\x74\xd0\x87\x0e\xf2\x09\x6e\x11\x9f\x20\x2b\xb1\xa1\x5b\x43\xec\x3e\x8a\xb6\x72\xde\x2c\x80\xcf\xf8\xc7\x5a\xc3\x55\xa1\x0a\xe0\xcb\xe7\x5b\x54\x01\x9c\xf1\x8f\x3f\x88\x78\x52\x8d\xdd\xd8\x49\xd7\xcd\xf6\xac\x9d\x74\x5f\x27\xc1\xe7\x1d\x87\x2a\x1b\x95\xfd\x92\xb6\x67\x24\x53\x0d\x1d\xcb\xf8\xa1\x16\x5b\xc6\x0f\xb6\xd8\x32\x7e\xd0\xc5\xae\x57\x97\x76\xb0\xd8\x59\x94\xca\x79\x24\xaa\x16\xb9\xfb\xf7\x1d\xab\x47\x33\x8c\xd5\x5a\x56\x0a\x63\xc9\xa2\x88\x8f\xaa\x3a\x74\x2b\x85\x53\xc5\x35\xeb\xf3\x1b\xb5\x58\xce\x79\x6a\xf4\xa4\x6d\x48\x33\x3d\xda\x7c\xce\x9f\x8c\xe9\xe9\x7e\xd6\xa6\x06\xc7\xc9\x97\x33\x41\x2f\xea\xac\xcd\x91\xde\x21\x90\x68\x2a\xd3\xe6\x3b\xb8\x69\xa1\x8b\x56\x2e\x52\xa8\x19\x52\xcb\x4f\x5a\x5d\xfd\x02\x1c\x96\x98\x8d\x44\x18\x8a\xd0\xc5\x03\xaf\x31\xf4\xac\x7e\xd8\x8b\x4c\xe2\xa9\x05\xe6\xca\x6c\xc1\x5f\xdb\x9c\x7d\xef\xba\x60\x49\x16\x83\x98\xf8\x8e\x42\xc3\x40\x24\xbc\x59\xce\xc5\x8f\x82\x00\xce\xf2\x72\x57\x68\x22\x82\x82\x1f\xd6\xd4\x6e\x23\x43\x10\x01\xda\x56\x2b\x4d\x15\x1b\x67\x09\x04\x76\x24\xc2\x2c\x65\x90\x52\xf8\x30\x0d\xc0\x3e\x86\x78\x6a\xa5\x0a\x9a\x05\xf4\x34\x67\x7a\x62\x3c\x4b\xd5\x8c\xa7\x16\xac\xa3\x0d\xa8\x58\x69\x4c\x23\x01\xb9\x65\x3d\x36\xca\xd2\xbc\x88\xea\x94\x2f\x04\xfd\x2a\xfd\x60\x13\xf3\xb0\x91\xcb\x97\x1e\xda\xd9\x7e\x36\x37\x4d\xcb\xc3\xce\x21\xe1\x9a\x00\x02\xdb\x1f\x08\x19\xa7\x7d\x95\xf4\xe9\x00\x6e\x70\x18\x0a\x0f\x7a\xc9\xaa\x74\x14\x1c\xae\xb6\xd4\x4c\x48\xd8\x1b\xaf\xb8\xb6\x4a\x5c\x50\x3d\x45\xc1\x22\x02\x3a\xae\x17\x9c\x9d\x79\xba\x64\xae\x7a\x34\x2d\x2a\xa4\x54\x9b\xef\xb8\x66\xc1\x54\x46\x21\x96\xf8\x58\xbe\x1b\x03\x7c\xba\x48\x6c\xb5\xec\xb1\xa7\xd5\x79\x85\x77\xf3\x2f\x89\x11\x68\xb0\x30\x1e\x1f\x60\x27\x67\xc3\x98\x31\xd6\x87\x57\x9c\xd9\xb1\x16\xbe\xc3\x21\x0f\xe3\x93\x03\x06\xfe\x4c\xfb\x84\xf7\x78\x7d\x07\xd5\x2e\xe0\xab\xc1\x60\xc0\xfe\x29\x12\x65\x16\x64\xa6\x92\x06\x09\xa5\xfd\x6e\x46\x52\xa7\xfd\x19\x9f\xf7\x3f\x88\xe5\xba\xc4\xe3\xe6\x07\x19\x54\x90\x80\x98\x31\x1e\x53\x94\x33\x5c\x54\xb3\x86\xd5\xc7\x60\x47\x6e\x67\x7c\x7e\x6b\x54\x2f\xca\x87\xb2\xfa\x34\xf4\x07\x59\x43\xdc\x16\x26\x0d\xc5\x47\xbb\x21\x33\x3e\x1f\x98\x1d\x00\x04\xfc\x94\x4f\xb0\x14\x26\x94\xbc\xb5\xc9\x46\x2a\x26\x78\x01\x38\x58\x78\x7b\xa6\x46\x19\xac\x1f\xc8\x70\x2f\xc7\xf4\xb3\xe9\x20\xc3\xbd\x19\x9f\x0f\xf7\x06\xec\x3c\xd2\xaa\x97\xd3\x29\xbf\x00\xb3\x03\x55\xcf\x91\xdf\xbd\xf4\x0f\xa3\xb3\x26\xb0\x81\x21\x25\x81\xd8\x9c\x48\x38\x85\x98\xf9\x91\x25\x82\xed\xc7\x8a\xc5\x42\x5b\x57\xa4\x0b\xf9\x38\xa0\x69\x0a\x96\xb3\x66\xef\xed\xf0\x2a\xba\x26\x3e\x62\xa2\x4a\x70\xc6\x25\x6f\x68\xcf\xcc\x0a\xd0\x08\xcc\x62\x28\x5d\xe8\xd5\x90\x31\xb2\x2e\x3b\xc8\x37\xc4\xc4\x32\x2c\xe4\xd1\x81\xb7\xeb\xb7\x69\xe3\xb3\x89\xd7\xbe\x7a\x2e\x3d\xda\x6f\x73\x5d\x99\x84\x78\xc1\xb9\x8a\xd4\x64\x49\xd5\x15\xf2\x33\x01\x4b\x5d\x7f\xc2\x6c\x65\x1f\x58\xf2\x53\x36\x57\x5a\x83\xdd\x02\x0f\x8b\x25\x15\xb7\x3c\x55\x33\x19\xdc\x9e\xe5\x38\x5c\x40\xb9\xd0\x09\xcc\x75\x9e\x3d\x2e\xe2\x54\xa6\xcb\x1e\x5a\x2f\xec\x29\x1a\x10\x3d\x38\x87\x5e\xe8\xcd\x16\x2a\xd3\x3c\x91\x88\x68\xc9\x12\x31\x8f\x78\x60\xd3\x34\x5d\x21\x97\xe2\x5c\xa8\x27\x42\x51\xb1\x73\xe1\xf1\xd2\x55\xc9\x82\xd1\xed\xe3\xf1\xec\xd1\x00\x7a\x86\xea\x98\xf3\x78\x72\xc0\x6e\xb5\x48\x6f\x2d\xdd\xba\x16\x69\x0e\x9a\x45\xf7\xcd\x65\x0e\xc2\x9a\x58\x55\x0b\x8f\x52\x4e\x13\x34\x9f\x09\x1b\xf5\xf4\x86\x07\x53\xea\x10\x19\x40\xf9\x1a\xf5\xf2\xa2\x4c\xd8\x43\x61\xb3\x0d\x0d\x42\x82\x42\xcb\x0c\xbc\xc2\x4e\xd5\xa3\x45\x4d\x74\x88\x1e\x1b\x0c\xe3\xd3\x03\xa4\x4a\x76\x7e\x18\x8f\x45\x5b\x9d\x90\x89\x6e\xc6\xe7\x1a\x33\x25\x50\x82\x91\x09\x13\x91\x00\x48\x7c\x7b\xf5\x62\x15\xf7\x91\x6a\x7d\x10\x4b\xea\xcb\xe2\xda\x60\x0a\x25\xa2\xd8\xce\x06\xec\x1d\x22\x92\x79\xf0\xab\x2c\x9b\x43\xb8\x65\x42\x69\xb4\xe6\x85\x86\xd2\xd9\xbd\xab\x3b\x8d\x14\xb1\x09\xd3\x74\x83\x31\x04\x07\x76\x15\x65\x99\x61\xec\x43\xb4\xe2\xa4\xf1\xba\x9b\x25\xda\xa6\x52\x45\xed\x36\x6c\x72\x4f\xdd\xd6\x15\xae\x29\xed\xf4\x0e\xee\x29\x5c\x05\x2b\x12\x50\xb7\x85\x2b\x7b\xd2\x78\x65\x27\x09\x8f\xb3\x88\x27\xa5\xb3\x00\x9b\x9f\xa3\x16\xe1\xe7\xfd\x0f\x62\xd9\xc7\xa3\x3b\xe7\x32\xd1\x07\xf0\x12\xc1\x83\xa9\x45\xa5\x05\x37\x66\x6c\x23\x18\x52\xea\x12\xd2\xbe\xa1\x19\xc6\x18\xef\x03\x20\x4b\x60\x84\x19\xf3\xe5\xc8\xbc\x2e\x96\xf3\x2c\xe2\x94\xd5\xa1\xc5\x9c\x27\x00\x00\x19\xa4\x2a\xd1\x79\x21\x18\xea\x90\xf2\x85\x81\xec\x8f\xc4\x94\x2f\xa4\xca\x12\x47\xd2\xcd\x58\xe9\x12\xef\x94\x20\xc1\x1a\xb4\xa4\x47\xf7\x3c\x64\x0d\x62\xf4\x26\x67\xae\x49\x12\xd7\xa9\x9a\xe7\x58\x96\xa8\xa0\xb2\x50\x04\x2a\x04\x69\x35\x15\x73\xdc\x2f\x0b\x79\xd0\x0e\xda\xb9\x82\x37\x40\x5b\xc6\xc7\x63\x00\x02\xa2\x5e\x12\x11\x64\x89\x96\x0b\x11\x2d\x51\xf8\xd7\x77\x32\x0d\xa6\x42\x03\x6e\xb2\xb9\x0a\x58\xbb\xc6\xbd\x3d\xdf\x5d\x39\x06\xf1\x41\x84\x3e\x47\x37\x3b\x5e\xa3\xb6\x17\x51\x4b\xec\x18\x0b\x03\x83\xd3\xe7\xc4\x0a\x00\x72\xf6\xe3\xa8\x06\x58\xbe\x11\x54\x0f\x95\x8c\x64\x18\x8a\xa6\x12\x8e\x55\x19\xf4\x5f\x4a\xbb\xfb\xc0\xe1\xb8\x35\x86\xee\xd6\xd1\xa9\xf4\x40\xb1\x64\x3b\x5e\x71\x4c\x06\x2c\x2c\x13\xc6\xb1\xfa\xc1\xad\xe8\x9e\x47\xe6\xa3\xc6\xe5\x9f\x07\xec\x47\x2e\x0d\xa1\x82\x54\x3e\xc0\xa6\xa2\x84\x5f\x82\xac\xca\x12\x48\xbf\x7a\xc8\x48\x5d\x8a\xbc\xdc\x60\x45\x4c\x7b\x7f\x41\xea\xe6\xcc\x68\xd7\x2d\x6f\xaf\xa0\x82\xdb\xd4\x31\xdb\x8e\x0e\xed\xf2\x61\xa7\xea\x07\x65\x6d\x30\x63\xef\xb1\xe2\x49\xa8\x9d\x3a\x29\xb6\xb0\xe9\x3b\x9d\xce\xb5\x48\x16\x32\x10\x57\x16\x88\x69\xc5\x14\xca\x4d\xd9\x54\x01\xff\x71\x31\xfd\x60\x49\xa0\x56\x83\x48\x4c\x78\xb0\x2c\x97\x8d\x6b\x0c\xa2\xde\x10\xce\xc7\xc7\x83\xd5\xf4\x46\x76\x65\xcd\x70\x1b\x33\x02\x87\x1a\xde\x62\x08\xd0\xce\x1f\x07\x7e\xb1\xbb\xc1\xcc\xd7\x67\x1e\x63\xbe\x25\x4a\x34\x16\x41\xf7\xfd\xd5\x0f\x98\x87\xc9\x53\xe2\x1c\x66\x3c\x77\x62\x34\x55\xea\x83\xe3\xa1\x00\x04\x10\x6c\xc7\x2e\x8d\xf2\xb8\x6e\x60\x50\x9c\xa9\x38\x30\x5a\x12\x06\xbf\xb5\x1c\x1c\xbb\x35\xad\x6f\x3d\xac\x0f\x1b\xac\x04\xbd\x58\x44\xd8\xe3\xfe\xcb\x17\x2f\x4e\x5f\xf4\xb0\xd6\xae\x61\x72\x07\x45\xba\xf0\xfc\xf9\x69\xa1\x44\x40\xa9\x42\x40\x71\x0d\x0a\x6e\xa5\xd3\x93\xb6\x6e\xa5\x0a\xeb\x69\x06\x1b\xc1\x33\x56\x46\xb1\xa2\x8f\x8f\x91\x6f\xfc\x6f\xb8\xe2\xaf\xa0\xa2\xd6\x2b\x80\x66\x5f\x71\xe3\x6b\x5a\xe7\x48\x12\x68\x3e\xc1\x35\x23\x8c\xc2\x19\x66\xde\xde\xfc\x70\x6d\x9a\xc5\x14\x14\xe6\x14\x33\xda\xee\x16\x29\x15\x01\xff\x6b\x16\x87\x55\xcb\x76\xa5\x04\x22\x36\xc3\x38\xeb\xcb\x37\x3f\xba\xb0\x85\x57\xe7\x6c\x84\x3f\xe1\x69\xb3\x27\xac\x02\x77\xee\x8d\xeb\x99\xb6\xa2\x59\x60\xc6\x04\x39\x22\x88\xa3\x9e\xc5\x1e\x1c\x9b\x5e\xea\x54\xcc\x0c\xc7\xd1\x29\x4b\x94\x32\xda\x10\x0a\x3b\x6e\x17\x1c\x46\x74\xe3\x01\x1b\x2d\xd3\x06\xf3\xda\x4a\x84\x02\xbc\x49\x8f\xe1\x04\xac\xf0\x85\x95\xc9\x9d\x74\xc3\x65\x85\x1b\x78\x24\x31\x37\x6a\xd9\x73\xc0\xde\xa0\x94\x63\x1b\x18\x61\x30\x89\x9c\x8a\x9e\x23\x70\x1b\xc5\x89\x20\xb2\x2d\xc9\x90\x60\xbd\x07\x79\xd5\x9c\x2f\x8b\x48\x80\x75\x1d\x08\x7d\x79\xa9\x32\x4b\x40\x00\x20\x9d\xde\x73\xdb\x10\xe6\x5e\x93\xfd\x55\x9a\xa7\x19\xdd\x44\x2e\x28\x7b\x35\xa2\x0a\x74\x96\xf4\xd3\xd0\x7a\x88\xa3\xc2\xe3\xd0\xd0\x1b\x43\x95\xa1\xd2\xce\xfe\x2d\xc8\xc2\xe2\xec\xf0\x70\xaa\x74\x7a\x66\xe8\xd8\xa1\xa1\xd7\xb7\x07\x03\xf6\xc6\xc3\xb0\x52\x63\x76\x9b\x25\x11\x42\xca\xd8\x21\x37\x2c\x8a\x51\xe1\x6f\x4d\x77\x8e\x52\x1a\x4d\x01\x76\x00\x14\x71\xb7\xb4\x76\xad\x8a\xeb\xf4\x17\x2a\x3b\xe9\xad\x8d\x05\x2b\x25\x04\x79\x30\x12\x40\x00\xe8\x4c\x4e\xa6\x04\xfe\xa9\x55\x64\x71\xc4\x5c\xfe\xde\xeb\xb7\xd7\x30\x6f\x35\xf3\xee\x81\xc6\xd2\xa2\x3d\xac\xce\x97\x1f\xbe\x5b\x23\xe3\xe2\x48\xa1\x2f\x26\xe3\x3e\x0d\x09\x3a\xe2\x16\x9e\x35\x27\xfe\x11\x5f\x0a\x2c\x6b\x2c\x55\x04\xcb\x7e\x30\xb0\x53\x37\x2a\x37\x8f\x34\x78\x31\x20\x6e\xd4\x06\x75\xc2\x1a\x5d\x46\x82\x6b\x50\xa1\x48\xbe\xc6\xcc\x88\x5b\xb3\x7d\x11\x76\x60\x56\xfa\xf8\xe4\x4f\x83\xa3\xc1\xd1\xe0\xf8\x16\x95\x54\xea\xdb\x9c\x33\xa9\x3f\x2c\x59\x16\x47\x42\x6b\x38\x53\x00\x30\x30\x31\x1a\x2d\x0b\x00\x78\x58\x99\xf5\x2d\x9c\x6d\x86\x19\x8f\xb0\x74\x56\x91\x33\x6d\x8c\xe0\xee\xa8\x04\x7e\x8d\x0b\x1b\x0b\x24\x4c\x40\x42\xa1\xbc\x27\x5e\x1f\xff\xba\x5c\x67\xc1\x14\xeb\x86\x9a\x9f\xad\xd1\x28\x5a\x92\x03\x27\x56\x71\xdf\x9c\x2a\x3e\x8a\x04\x86\x21\xf7\xe0\x38\x08\xae\xa1\x09\xc0\xa4\x64\x73\xb3\x4d\x9c\xc5\xe2\xce\x9e\x02\x77\x92\xf0\x80\xba\xa3\x36\xdc\x03\xd4\x9f\xe1\xde\x5f\xe0\x88\x98\x93\x4c\x3f\x4d\x24\x51\x75\x6a\x72\x76\x78\x38\xdc\x83\x6e\xce\x99\x15\x4d\x2c\xfb\x27\xc0\x05\x57\x8c\xc2\x1a\x08\x79\x6c\xb1\x74\xd0\x55\x42\xa6\x12\x18\xdc\xfb\xab\x1f\x06\xec\xdf\x55\x06\x6d\xed\x11\x85\x8e\x53\x05\x31\x68\xa8\x00\x8d\x64\x9a\xf0\xc4\x75\x43\xe4\xc6\x5d\x43\xcc\x24\x85\x48\xff\x1e\xe3\x76\xb6\xd6\x48\x26\x69\xe2\xe7\x69\x2a\x66\x73\x5b\xf8\xc8\xbc\x8c\x8a\xfb\x81\xd4\xa0\x65\xc0\x78\x96\x4e\x11\x31\x72\xb8\x67\x7e\x39\xb3\x51\x70\xff\x6b\xb8\x87\x58\x29\x69\x8e\xb4\xf2\x6d\xc2\x27\x68\x22\xdb\x1f\xee\x7d\x35\x18\x0c\x86\x7b\x68\xb2\xf9\x47\x26\x92\x25\x9b\xf3\x84\xcf\x04\x04\x20\xee\x0f\xf7\xbe\xb1\xbf\x93\x8a\x4f\xbd\xf4\x48\xfd\xdb\x1a\x05\xa5\x9d\xfc\x50\xa9\x52\x3d\x70\x39\xf6\xff\xff\x8c\x83\x71\x66\x85\x6c\x60\x9b\x10\x14\xa1\xfc\x28\xc2\x3e\x66\xd7\xd7\xd4\xbd\x27\x81\x0d\x5c\xa5\xf3\x44\x2d\x64\x68\x4b\xb2\xc5\x12\xcf\x44\xa2\xa7\x88\x7a\x90\xc5\xf9\x07\x73\x1a\x20\x87\xd5\x2c\xe0\xbf\x9f\xff\xf8\x03\xd0\x56\x6b\x7d\x00\x6d\x03\xd6\x62\x1f\x97\xf8\x5c\x5f\xc4\xe9\xcb\xe7\xe6\x13\xa0\x51\xa9\x44\xe7\x67\xbb\xa0\x04\xbb\x8c\x01\xb0\xc9\x21\x36\xe7\x3f\x68\x42\x54\x28\x80\xfe\x77\x76\xf6\xaf\xb6\x9c\xa8\x9c\xc4\x22\x7c\x0b\x13\xc1\x36\xf4\x3d\x14\x0b\xa0\x6f\x62\xc6\xf6\xdf\x3a\x4a\x53\x6d\x60\x4f\x3f\x78\x14\x7b\x79\x3d\xf5\xe1\xde\x70\x8f\x41\xb0\xb2\x8c\xe9\x31\x0a\x16\xbd\xbe\xa0\x82\x6c\x07\x76\xa0\x10\xca\x5a\x1c\x25\x0d\xf4\x88\x7d\x62\xc7\xec\x13\x38\xf2\x3e\xb1\xaf\x99\xd7\x5e\x97\x1f\xc8\x27\xe6\xf7\xf7\xa9\xfa\x5d\x4d\x27\x54\x34\xce\x5b\x8a\xc6\x7e\x75\x5d\xc7\xba\x50\x63\x6e\x7d\x3b\x33\xa5\xc6\x61\x98\x7d\xa9\xac\x06\x0e\x63\xef\xff\x37\xdc\x33\x3d\xee\xf5\x87\x7b\x8d\xbb\x58\x1c\x74\x61\x52\x9f\x2a\xaf\xa8\x69\x54\xb3\xc9\x35\x8b\x81\x71\xb4\x76\x33\xf3\x69\xe2\x26\xbf\xf9\x38\x57\xb1\x88\x2b\xbb\x50\x3c\x02\xf5\x5d\x79\xaf\xfa\x5e\xb2\x4f\xec\x47\xf3\xcf\x77\xe6\x9f\x1b\xf3\xcf\xa5\xf9\xe7\x8d\x84\x93\x89\x29\x1d\x9c\xf4\xb2\x6b\x14\x64\xa1\xce\x99\x4c\xf5\x5f\xd8\xb5\x10\x88\xf4\x76\x76\x78\x38\x9f\x2e\xb5\x0c\xf4\x20\x96\x3a\x1d\x4c\xd4\xe2\x30\xc8\xb2\xc3\xf7\xa6\xdd\x21\xbe\x7f\x30\x4d\x67\x51\x7e\x26\x4b\x23\xcd\xc7\x34\x83\x0d\x80\x7d\xf8\x60\x46\x67\x06\x67\xc6\x66\x86\x66\x46\x56\xba\x32\xc7\x47\x27\xcf\xd9\xbf\xb2\xe3\xef\x25\xd8\x2a\x8f\x8f\x8e\x8e\xcc\xc7\x0f\x7f\x61\x17\x2c\x94\x61\xfc\x2c\x65\xc1\x54\x29\xe2\x09\x01\x9f\xcb\xd4\x5d\xeb\x41\x79\x38\xa5\x65\xc5\x33\x21\x56\x9d\x05\x33\xd6\x37\x2b\x1a\x18\x72\xf1\xd6\x70\xe9\x34\x75\x0c\x9c\xc4\xbf\x74\x9a\x08\x01\xe0\x46\x31\x39\x3b\x67\xda\x22\x30\x1b\x46\xcc\x2c\x81\x01\x1a\xe0\x88\x64\x5e\x38\x05\x24\x0a\x0b\x07\x72\xf2\x9f\x2f\x4f\xfb\xc7\x86\x1a\xcc\xf8\x24\x96\x69\x16\x0a\xd3\x49\x02\x0f\x4b\xeb\x01\x53\xe0\x72\xe5\x31\x3b\x65\x36\xb6\x1c\x2c\xe3\x7a\xc0\x70\xd4\x9a\x45\x3c\xa1\x18\x07\x68\x3d\x4f\x44\x20\xb5\xc8\x55\x6e\x3e\x9f\xa3\x6b\x37\x51\x19\x60\x2e\x64\xf3\x01\xdb\x7f\x33\x98\x0c\xce\xd8\xd1\xe0\x78\x46\x20\x6b\xee\x47\x43\x75\x8f\x67\x83\x03\x34\xe9\x5a\x72\x66\x01\x1b\x6c\x6d\xc9\x0c\xfc\xcf\x72\xcc\xee\x9c\xff\xd8\x1b\x89\x9e\x71\x40\xbb\xa7\x15\x91\x02\xe9\x34\x00\xbb\x70\xe6\x73\x16\x0a\xeb\x06\x3a\xc9\x1d\x24\x81\x2d\x83\x93\x88\x99\x80\xa5\x4b\x6d\x68\x8e\x1a\xdb\xe2\x2d\xb0\x46\x21\x4a\x1f\x5e\x85\x75\x72\x0f\xa2\x67\x68\xc2\xa1\x5c\x8f\x88\x4d\x6b\xa9\x3d\x68\x44\x18\xcf\x5f\xc5\x58\x25\x39\xeb\x80\x57\xbb\xc1\xd9\x05\x9c\x67\x80\x70\x3f\xdc\x0b\x78\xac\x62\xc0\x2f\x35\x5b\x3f\xdc\x23\xa3\xf7\x4c\xf0\x98\xc4\x59\x7b\x1c\x0f\x69\x88\xb6\x0b\x1e\xfe\x3d\x03\x2b\x7b\x36\x37\xab\x13\xaa\xbb\x98\xed\x53\xc9\x9d\x1c\x19\x0e\xf9\x61\x90\x80\x34\x0b\xb8\xe7\xf4\xb7\x8c\xd9\x8f\x66\x50\x5a\xf3\x03\xac\x59\x63\xde\x06\xbe\x25\x3e\x60\x6f\x15\xed\x39\x01\xb0\x44\x4a\x83\x8f\x68\x04\x3f\x8d\x13\x1e\x10\x39\x40\xd2\x9a\x3b\x5b\x30\x7a\xc5\x34\x25\x34\x6c\x77\xb4\xf7\xcd\x16\xc2\x14\x0e\x80\xfb\xd3\x21\x83\x30\x7c\x72\x79\x0d\x88\xeb\xca\x49\xec\x7a\x54\x14\x0f\x43\x92\x34\x98\xcf\xf0\xe4\x1b\x21\x4a\x4c\x78\x2a\x17\x02\x16\xfe\x0d\x4a\x6d\x1a\xe6\x70\x3c\x78\xe1\xba\xf0\xb0\x2b\xb9\x66\xc3\xbd\xe3\x17\x47\x47\xb3\xe1\x1e\x35\xfb\x4e\xae\x68\x78\xfa\xf2\x47\x69\x5a\x9a\xfb\x6b\x89\x8d\x19\xc2\x3f\x0a\x1b\xfa\xf6\xcd\x4f\x6f\xae\x20\x1a\x0a\x49\x65\x14\x2d\xcb\xf0\x67\x1c\x21\x32\x40\x70\x05\x79\xc7\xca\x36\x37\x53\x4c\x42\x04\x21\x74\xaa\x22\x41\xbf\x5b\x00\x6b\xf1\x51\x24\xe6\xee\x0d\x70\x10\x71\x3f\x3f\x31\x14\x00\x82\xb5\x9d\x52\xf3\x2f\x1c\x7c\x58\x5a\x15\x4f\x28\x5a\x65\x09\x82\xe2\x9d\x88\xf0\x88\x19\xb2\x62\x68\x64\x5e\xd9\xb2\x2f\x6c\xc8\x51\x4c\xde\xe3\xe2\xa1\x1c\xb0\xfd\x6b\x65\x6b\x72\x9a\xfb\x50\xfc\xb9\x87\xa7\xcf\xd0\xd8\x50\x8e\xc7\x40\x4e\x31\x18\x26\xcf\xb0\x34\xeb\x02\x37\xdd\xea\x2a\x12\x1b\xcb\x80\xb0\xfb\xe8\x9a\x69\xbb\xb9\x39\x48\xe1\x5d\x22\x61\xd5\x40\x47\x84\x0a\x56\xe6\xb6\x1a\x7d\x96\x47\x6c\xca\xe3\x10\x44\x3e\xc8\x57\x21\x32\x32\x55\xf3\x3c\x86\x8b\xd3\x4c\x03\x6e\x5e\x21\xcd\x01\x31\x82\xb6\x4a\xd0\xe7\x6c\xf4\x3f\x94\xde\x41\x16\xa5\xb5\x77\xcd\xca\x08\x32\x75\xc2\x74\x0b\x11\x59\x0f\x66\x22\xe5\x83\xc5\xf1\xe0\xfc\xf2\xe2\xbb\x52\x75\xe0\xb2\x88\x6c\x9b\x14\x6d\x66\x98\x49\x09\x94\xc8\xc6\xe3\xb8\xea\x1b\xae\x4e\x87\xb9\xb3\x63\x91\x78\x35\x45\x50\x8e\x06\x48\xf9\x36\xe5\x1f\x5c\x78\xde\x1a\x93\xc6\xf9\xe5\xc5\x4f\xa5\x52\xc9\x1e\x5c\xbe\x08\x2d\x38\x91\x3d\xc4\x35\xc2\x7d\xec\x22\x1a\xaf\x49\xeb\x27\x5b\x04\xd6\x5c\x36\x0a\x41\xa0\x26\x31\x5c\x46\x0b\xaf\x4e\xba\x5a\xc4\x53\x01\x15\x42\xc8\x8a\x40\xf1\x44\xd6\x8f\x9e\x08\x70\xab\x67\xb1\xd7\x03\x5e\x95\x5a\x70\xda\x89\x4c\xc9\xdf\x70\x18\xa8\xd9\xcc\x48\x35\xcb\x43\x28\xae\x22\x47\x99\x39\x28\x87\xa1\x58\x88\xe8\x50\xcb\x49\x9f\x27\xc1\x54\xa6\x02\xe2\xa4\x6c\xc9\x89\x85\x51\x0c\x55\xac\x07\xb3\xf0\xab\x06\xec\xed\x36\x56\x3a\x28\x77\xbf\x7a\xd5\xbf\x97\x31\x61\xb8\x93\xee\x8a\xee\x3f\xb7\xb8\x36\x5e\x0d\x60\xda\x3d\xb4\xb8\x3c\xd4\x20\x77\x19\xe5\xcb\x0e\xa2\x41\x3c\xb6\x65\x09\x9c\x72\xe1\x70\xcf\xd0\xf4\x03\x1a\x97\xce\x46\x33\x43\xee\x3d\x48\xb3\x01\x7b\x85\x56\x99\x91\xc8\x63\x7c\x2e\x62\xf6\x8a\xcf\x44\xf4\x8a\x6b\xf1\xe0\x8b\x0e\xe8\x44\x7d\xb3\x7e\x5b\x2c\xfb\x3d\x3c\x48\xa5\x5b\xd5\xfa\x95\xee\x92\x36\xdc\xb5\x75\x86\xd9\x15\xe4\x05\x08\x07\x75\xfb\xad\x4a\x5e\xdb\x5a\x55\x2b\xed\xb0\xe5\xf1\x94\x8b\x5f\xe4\x44\x85\x12\x38\xf3\x70\x04\x5b\x25\x70\x9e\xa8\x11\x1f\x45\x4b\xfb\xa8\x85\xf1\xb7\x35\xec\x56\x94\x2e\x48\x28\xc7\xfc\xaf\x4b\x72\x18\x5c\xbc\xbe\x5a\x5b\x6f\x06\x22\x90\xd4\xd8\x1e\x4b\xc8\xcf\xb6\x70\xa5\x89\x4b\xce\x4e\x89\xb5\x52\x69\x62\x3c\xdf\xb8\x6b\x36\x4c\xc5\x3c\x35\x15\xd1\x9c\x7a\x32\x27\x9b\xdb\x32\x8c\x89\xb6\x1c\x65\x06\xb9\xec\x22\xbd\x53\xc9\x87\xbe\x30\x6c\x0b\x5e\x7b\xc7\x97\xb9\xe8\xc2\x5e\x51\x0f\x01\x8f\x9d\xd4\xc8\xe7\x86\xd4\x26\x12\x32\x1b\x8b\x83\xe3\x10\xec\x8b\x98\x2e\x30\x7c\x12\x2d\x96\x58\x82\x12\xee\x10\xa8\xf6\x6a\x9c\xc7\xac\xc1\x4f\x42\xf7\xdc\x70\x3d\x43\x35\x1a\x97\xe3\x89\xb0\x55\x2c\xcd\x94\x4d\xd7\x28\x87\xd1\xeb\x2d\x6c\x24\x44\x25\x61\xdc\x25\xac\x38\x2d\x16\x84\x3d\xc7\x1f\xbc\x68\x78\x5a\x62\x33\x2b\x1a\xd8\xb7\xb9\x85\xec\x8c\x22\x60\xc1\x44\x56\xc2\x55\x76\xe4\xf9\xe2\x12\x67\x68\x5e\xd9\xb3\x01\xe3\xd4\x2d\x2c\xb7\x85\x05\xc5\x11\xa2\xa1\xb5\xd8\x81\xa5\x56\x2c\x52\xea\x83\x66\x3c\x65\xff\xa7\xff\xad\x4a\xee\x78\x12\x8a\xd0\xfc\xc5\xa6\x82\x87\xa8\x26\xfc\x9f\xfe\x95\xe0\x51\xff\x62\xee\x7d\x47\xf4\x6a\x70\x25\x66\x2a\x05\x54\x03\x2a\x68\xcf\x53\xac\x6e\x79\x60\x0e\xc2\x44\x14\xa6\x7c\x71\xb9\x9b\x12\x38\x2b\xee\xeb\x75\xd3\x0d\xb8\x57\xb8\xea\xa6\xe5\x58\x6d\x19\xbc\xbc\x7c\xa7\x13\x31\x6c\x15\xae\x3a\x5a\xb7\xfb\xe5\x68\x24\x5f\x1b\xaf\xc6\x06\xde\xd5\xbd\xba\x95\x5b\xe7\x5c\x75\xdf\x17\x22\xb9\x60\x95\x6c\xf9\x8a\x3e\x71\xf4\xfc\x75\x85\xcd\x98\x90\x18\xb8\x57\x5c\x54\x7a\xc8\x49\x81\xc5\x5f\xf3\x4a\xc8\x7b\x8b\xe3\xea\x74\x7f\xd9\x5e\x20\xfd\x41\xea\xb4\x85\x50\xfa\x03\x45\xe6\xe5\x80\x9c\xf6\x97\x1e\xca\xd3\x91\xba\x73\xc4\x29\x55\xae\x5a\xa2\xe3\x1b\x3c\x65\x50\xec\xa8\x93\x46\x9f\xb4\x34\x0a\xa7\x73\x1d\x01\xc1\x46\xf5\xc7\xe1\xc1\x69\x85\xbb\x20\xf7\xa1\x94\x9d\xd0\xfd\x78\x42\x77\x4b\x92\x4c\x27\xef\xc9\x10\x60\x20\x8c\x0f\x4f\x84\xaf\xaa\xb9\x8c\x35\x64\xee\xca\x61\x5e\x7b\xb9\x6a\xb9\x56\xc2\xf3\x03\x08\x06\xcc\xa9\x80\x48\x09\x34\x53\xba\x48\xa2\xb0\x55\x28\x4d\x2a\x26\x2a\xa9\x49\xbe\xad\x04\xd3\xd8\x86\x45\x3a\xe0\x14\x24\x11\xb2\x52\x39\x29\x37\xc6\x91\x30\xf2\x2a\x10\x52\xf0\xf8\xb3\x67\x3c\x8a\x9e\x1d\x3c\x76\x76\xcf\xa4\x64\x90\xa9\x9b\x26\xb4\xb1\xda\x4d\xae\x10\xe1\xd7\x34\xdd\x1c\x6b\x9c\xbd\x81\xd4\x3f\x39\x9b\x47\x76\x8b\x0a\x2d\xc9\xb2\x63\x48\x87\x5b\x0c\xac\x9b\xfa\x2d\x18\x49\x73\x34\xfc\x1e\x2e\x99\x4b\x0f\xe0\x5e\xa1\x61\x62\x34\x63\x5f\x1c\x07\xe4\xf7\xe1\xde\x16\x5a\x69\x0b\x52\xf8\x81\x48\x21\xe4\xc4\x99\xbf\x6d\xe8\xac\x9b\x04\x6d\xe3\xb7\x4a\x3d\xab\x34\xf4\x0e\xe7\xb3\xb1\x52\xe5\x7d\x7e\x00\x65\x7d\x1e\x65\x09\x8f\x0a\x3a\xbb\xdb\xa3\x7b\x44\x7b\xae\x5b\xa6\xbc\xa1\x07\x5c\x2f\x0b\xb7\xb3\x70\x1d\x8d\x82\x12\xab\x72\x91\xdb\x76\xc5\xe6\xa6\x2a\x49\x6b\xcb\x6e\x97\x63\xad\x5c\xc3\xe2\x35\xd5\xd9\x64\x82\xb1\xfa\xd0\x82\x6a\x56\xaf\x5e\xac\x87\xbf\x91\x46\x03\xcc\x22\x9e\xbc\x5d\xbf\xdf\x7e\x53\x67\x7d\xa0\xef\xea\x77\x9e\x51\xbe\x03\xe2\x7d\x79\xb2\x2a\x18\x93\xdd\xa9\x81\xea\x14\xb6\x23\x35\xe7\xff\xc8\x44\xb4\x24\x55\xba\xf4\x4e\x70\x91\x81\xcb\x25\xc0\x74\xc5\x44\x18\xf5\x09\xb3\x34\xa0\x80\x01\x24\x44\x51\x02\x8b\x59\x3e\xe8\x7d\xa4\xd2\x69\xfe\x0a\x40\x6c\xa7\x57\xe7\x45\x78\x72\xc9\xc0\x70\xb9\x20\x8d\xd8\xab\x1f\x2e\x98\x83\xd0\xde\xaa\x5e\x11\x98\x66\x48\x60\xfe\x1b\xd7\xeb\xa2\x86\x21\x96\x8b\xeb\x29\x09\x3e\x36\x62\xb9\x68\xe1\xe9\x15\x2c\x46\x45\x32\x2f\xb5\x95\xa2\xd1\x01\x00\xae\xb3\xbb\x44\xa6\xa9\x88\xad\x10\x0d\xc9\xeb\x50\x0e\x7b\xc0\x7e\x2a\xa4\xdc\x79\x39\x40\xb8\x0b\x6c\xb4\xb4\xbb\x46\xa5\x8d\xc4\x3f\x32\x1e\xc9\x74\x89\x61\xba\x89\x04\x68\xc5\xb8\x98\xcb\x0f\xa1\x9b\xb9\xd9\x87\xc7\x8c\x47\xf3\x69\x8e\xb0\x6b\xc5\x75\xac\xb7\x00\x61\x3c\x79\xc5\xea\x82\x7f\xb2\x54\x9d\x7b\xae\xbc\x74\xa8\x62\x3c\x27\xd8\x58\xc8\xde\x71\x5d\x59\xf6\x02\x62\x2f\xa4\x98\x63\x71\x0a\x1a\x24\xbe\xc0\x3a\x2c\xb9\xf4\x42\xa3\xc5\x42\xc4\xa6\x5f\x99\xb2\x49\xc2\xc3\xcc\x10\x98\x2d\x4e\xc2\x42\x24\xa3\x16\x36\x82\x51\x85\x64\x58\xe3\x80\x39\x92\x0c\x5b\xec\x63\xf6\x7b\x1c\x44\x59\x28\x34\x9b\x88\xb4\x07\x0f\xf4\xd8\x1d\x4f\x83\x69\x8f\x00\x86\x7b\x24\xad\xf6\xd8\x1c\xbf\x0e\x45\x24\xcc\x47\xfc\x6f\xa0\xa2\x08\xc3\x7f\x7b\x54\xc1\x40\x7d\x5c\x3e\xba\x3c\xb0\x68\xa5\x74\x2e\x8a\xc6\xd2\x5a\xcf\xcb\x5a\xa9\xa0\x5c\x9d\xb6\x41\x2e\xb8\xb7\x58\xb0\x38\x66\xfb\x58\x61\x9d\xca\x2d\x71\x46\x21\xbb\xd5\x21\x24\xf9\x98\x9f\x91\xe1\xe7\xa0\xbd\x44\xb1\xa5\xe1\xa5\x40\xf1\xeb\x99\x6e\x59\x56\xa9\x9c\xe4\x75\x2a\xc3\xbd\xe4\xf2\xf5\xf6\x11\xbf\x65\x45\x27\xbe\x72\xd5\xce\x50\x18\xb7\x11\xe5\x58\xd5\xaa\xe2\x5a\xf0\xca\x96\xfa\xa6\x38\x6e\xe5\xfe\x80\xe4\x49\x73\x49\x1c\x05\xa6\x88\xc9\x82\x40\xb6\xa9\xdc\xdf\xd9\x5c\x3e\xb3\xcd\xa5\xdd\xea\xfb\x4d\x2d\x05\xaa\x9c\x08\x5c\xf8\x9a\x93\x39\x56\xad\x83\x44\x3b\x5b\xc9\xe7\x76\x50\x36\x16\x93\x2e\xad\x7d\x4e\x32\x2a\x71\x03\x55\xaa\x92\x93\x0a\x8c\x0e\xa9\xa3\x11\xec\xc1\xec\x76\xce\xd6\xb1\x31\x97\xde\xc4\x86\x64\x6f\x52\xed\x5a\x3e\x05\xf3\x52\x81\xb5\x3c\xbc\x85\xe9\xa7\xaa\x57\xa8\x99\xa8\x6b\x07\xa0\xe1\xb9\x85\x10\x27\xd9\x08\xcb\x0b\x2e\x23\x4c\x18\xd8\xc4\xe8\x6f\xbd\xc5\x44\xb0\x12\xa5\x52\x8c\xcf\xa7\xf3\x89\xc9\x9f\x46\x58\x81\xaa\x12\x1d\xb3\x7a\xc2\xcc\xaa\xe3\x06\x9f\x85\x1b\x74\x21\x13\x5d\xc8\x44\x17\x32\xf1\x74\x42\x26\xf8\x5c\xae\xe2\x8f\x8f\x63\x39\x6d\x29\x15\xb9\x39\xb6\xa3\x27\x4f\x41\x44\xfa\xa9\x3a\xe4\x07\x11\x8f\x5e\x83\xf9\xe9\xdd\xbc\x5c\xad\xaa\xbc\xff\x85\x76\x36\x8d\x81\x52\xd3\x08\x57\x08\x2c\x59\x74\x1d\x8d\xec\x63\xcb\xb0\x76\xd2\xcc\x13\x96\x66\xc2\x64\x79\x95\xad\x5b\x77\x48\x34\xa1\xa5\xec\x15\x6a\x12\xf3\x94\xcd\x54\xe8\xea\x43\x6a\x3f\xad\xda\x1c\x10\xb3\x33\x1a\x24\x8d\x73\x43\xa3\x11\x92\x02\x40\x8c\xbc\x55\xc2\x31\xb0\x50\x26\x22\x48\xe5\x42\x58\xe6\xa0\xa1\x9a\x1c\xf0\x07\x91\x24\x40\x99\xf5\x5c\xc5\x1a\x6d\xd6\x71\x8e\x49\x36\x4f\x54\x20\x34\xb0\x02\xa7\xf0\x21\x0d\x67\x50\x4d\xd7\xe6\x0b\xf0\x44\x9c\xb1\x3e\x3b\x8f\xa2\x33\xc8\x36\x0e\x93\x25\x64\x19\xeb\x94\x4f\x44\x9e\xca\x41\xdd\x95\xb1\x48\x1e\xc3\x1f\xcb\x03\x71\x29\x12\xf9\xff\xb1\xf7\xaf\xcd\x8d\xe3\x58\x9e\x38\xfc\xbe\x3e\x05\xc2\xfb\xc2\x99\xbd\xb2\xf2\x52\x3d\xbb\xbd\x59\x31\xb1\xe1\xca\xcc\xea\xce\xad\xac\x4a\x3f\x69\x57\x57\x4c\x3c\x9e\x98\x86\x49\x48\xc2\x98\x02\xd4\x04\x68\xa7\xba\xa3\xbf\xfb\x3f\x70\x0e\x00\x92\x12\x25\x51\x32\x75\xf5\x99\x88\xdd\xce\xb2\x48\x10\xf7\x73\xff\xfd\x74\x7a\x2d\x12\xad\x56\xa2\x69\x39\x59\x1d\xc9\x18\xa4\x62\x06\xdf\x62\x77\x58\x89\x63\x4b\x7c\xda\x12\x18\x04\x1d\xce\xe9\x6c\xb4\x41\x69\x75\x11\x8a\x4a\x02\xf8\x29\x2a\x03\xa8\xbc\x02\xd0\x69\xb9\xf4\xd8\x0a\x93\xe3\xb1\x48\x9d\xc6\x92\x4d\x4b\x28\xd8\x18\x7a\x50\x32\xc3\xf0\x48\x00\x42\x83\x01\xba\x5d\x21\x75\x19\x43\x2d\x41\xb0\xa0\xca\xa8\x0a\x3d\x51\x07\x27\xe1\xa0\x04\xf9\x01\xf9\x8f\x0c\xea\x58\x5f\x1e\x90\x15\x8b\x88\x1a\xfa\xb8\x04\xc0\x64\x23\x5c\x7c\x32\x06\xf6\x62\x0c\xe8\x7c\x32\xe2\xea\x43\xc0\xf0\x5b\x75\x4c\x3e\xb8\x09\x4c\x80\x93\x8c\x4d\x10\xde\x20\x28\xc1\x57\xb9\x9e\xf0\x21\x1c\xa0\x2b\x9d\xc9\x64\xea\x03\x0c\x95\x20\x14\x9c\x99\xd0\x80\x3b\x65\x6f\xfa\xff\xbb\xcf\xae\xf1\x40\xe1\xee\xf6\xfd\xf0\x0b\x66\xa0\x7a\x0b\xba\x08\xd3\x3a\x00\xb8\xad\x57\x03\x9e\x19\x5f\xc9\x72\xeb\x47\x70\x7b\xc6\x06\x52\x41\xe1\x55\x5e\x29\x6f\xc3\x7a\xa1\x57\x21\x08\x17\x17\x17\x9b\x3f\x37\xe5\x4b\xc6\x67\x4f\x78\x64\x90\x4a\xd7\x75\x3e\x3f\xb6\x20\xb7\x8d\xb0\x58\x0a\x05\x3b\x40\xdb\xd1\x26\x11\x78\x37\x23\x5a\xa5\xcd\x3c\x97\x4f\x50\x73\xaf\x6a\xed\x2e\x4b\xdf\xff\xc5\x5f\x5d\x83\x22\x1b\xc8\x2c\x13\x69\xb8\xf7\xb8\xd7\x45\xd0\x45\x9c\xf0\x3c\x77\xb7\x8b\x2e\x2c\x2c\x86\x1b\x74\xb0\xc4\x7a\x8c\xb3\x3f\xbe\xfe\x3f\xec\xbd\x56\x83\x4c\xba\x7b\x12\xc3\xd6\x65\x8d\x98\xb3\x50\x44\xba\x20\x8f\x7f\x32\x3b\xc3\xab\x05\xa9\x07\xd3\x4e\xd9\x48\x3f\xb2\x21\xcf\xef\xf8\x50\xb0\x32\xfc\x57\x0a\x21\x91\x63\xd1\xda\x82\xc5\xfd\x32\x73\x04\x16\xaf\x2d\x5c\xe2\xe1\x06\x9e\xe0\x46\x90\x06\x0a\x60\xd3\x32\x78\x2b\xbe\x49\x04\x3e\x2e\x37\xa4\x11\x36\x1a\xb5\x1e\xb2\xbc\x5f\xd9\x79\xa1\xf4\x2a\xdc\x59\x17\x31\x44\x53\xff\x58\x9f\x5d\x26\x89\x98\x00\xce\x46\x4d\x12\x9f\xe3\x18\xce\xd9\x85\x3f\x2d\xf5\xd3\x64\x7e\x60\xe7\x3f\xf2\xe4\x7e\x08\xc5\xb4\xee\x29\xf4\xb7\x81\xcb\xbf\x3e\x71\x1a\xe0\x5b\xfc\x7d\x5f\x6f\x24\x8c\xe0\x2e\xb6\xf4\x03\x3b\xff\x49\xe7\xa2\xd2\xac\xb3\x9d\x13\x9e\x62\x89\x22\xcc\x0f\x68\x36\xd8\x9e\x41\x55\x61\xae\xc1\x41\x6c\xa3\x2b\xdc\x89\xad\xdb\x15\x75\x65\xbf\x95\x65\xd1\x5b\xf1\x21\x9e\x02\x14\x89\x56\xb3\xc8\x75\xc7\xf5\x61\x88\x08\x6f\xf2\xf5\x5c\x0c\xa5\xb1\xa8\x81\xed\x6d\x0a\x3a\xef\xc4\xda\xd3\x51\xc3\xc4\xda\xf5\x34\x74\xfe\xf1\x0d\x86\xbf\xd7\x7d\xb0\x85\xcf\xaf\x3f\x05\x13\xb3\xc3\x01\x3f\xf5\x63\xbb\x1f\x9e\xfb\xe2\xdb\x75\xbe\x58\xa4\xd2\x76\xbe\xac\x90\xfa\xb5\xd6\xc0\x0b\x3b\x72\x5a\x7b\xb2\x9f\x9d\xdd\xfd\xd7\xd7\x5e\xf9\xc2\x8e\x74\x1e\x10\x53\xf6\x30\xfe\x6e\x3f\xbe\xc1\xf0\xb5\x49\x00\x5d\x6a\x97\xa3\xee\xe4\x9b\x6f\xf7\x35\xd8\xb7\xeb\x1e\xf6\x3b\x6e\x93\xd1\xce\xe6\xb7\x83\xaf\xad\x3b\xb3\x4f\xff\xe4\xdb\xb5\xaf\xae\x0a\x2a\xe9\x7e\xd4\x82\x44\xeb\x3c\x95\x6a\x2f\x37\x47\xe7\xdf\x5e\x77\xf0\x21\x15\x62\x0e\xd2\x7a\xa3\xaf\xaf\xbd\xf8\xdd\x7e\x7e\xdd\xc1\x8b\x07\xf0\xd6\xed\xe5\xd3\x51\x15\xde\xed\x77\x07\x99\x7e\x04\x57\xa0\xce\xfa\x25\x6a\xee\x5e\xd6\x5e\x8e\xf9\x50\x78\xdf\xc3\x5e\x3a\xe0\xa3\xff\x52\x0d\x77\x7d\xec\x3b\xfe\xf2\xba\x9b\x40\xe9\x54\xec\x69\xca\xbb\xfa\xf2\xba\x43\xc6\x7d\xb6\xdb\x6f\xe6\x77\x3c\xe9\xef\x55\x31\xdd\x52\x0f\xd6\x5e\xf6\x2d\xf5\x63\xdd\x05\x31\xc9\x48\xa4\x45\xb6\x87\x03\xdf\xf1\x97\xd7\x5e\x80\x8e\xbf\xbf\xf6\xc4\x0b\x6b\xa5\x1a\x76\x23\x6a\xd7\x1f\x3c\x96\x36\xed\x7c\xcd\x3b\xfc\xec\x5e\xc7\x3c\xbb\xda\xfe\x5f\x1b\xa4\xb1\xfc\x04\xdc\x4d\x7f\x7d\xb3\x24\x83\x25\x3c\x82\xc5\x76\x10\x8f\x15\x50\xa4\x12\xe8\x5f\x15\xe3\xa1\x1a\x2f\x10\x42\x7a\xaa\xad\x9b\x5c\x8a\x5e\x04\x57\xc6\xa8\x31\x02\x2f\xf2\x64\xc4\xee\xc5\xb4\xca\x93\xca\xce\xfb\xe7\xf3\xd1\x5d\x5f\x35\x67\x8d\xc8\x06\x15\x90\x4d\x8f\x2d\x08\xb4\x72\xba\xa4\x4e\x85\x20\x4e\x95\xc8\xa6\xd6\x1e\x67\xa6\xb8\xbb\x88\x91\x20\x69\xc5\xd8\xa7\xed\xe1\xc3\xd0\x32\xb2\xa5\x56\xf8\x53\x8d\x60\x03\x4f\x41\x36\xe6\xd6\xbc\x63\xe7\x83\x77\x1e\x9e\x97\x8f\x11\xa8\x57\x9c\xf7\xd8\x23\xf0\x20\xcd\xfe\x30\x8b\x02\xc6\x23\xee\x3d\x0b\xf3\x05\x1d\x86\xb9\x70\x7f\x73\x23\x3a\x7f\xf0\x1f\x80\xa0\x4f\xe3\x17\x2a\xbf\x84\x4f\x88\x6f\x3c\xb1\xec\xbf\x4d\x84\x9d\xb6\x21\x91\x06\x3f\x1c\xd9\x30\xd9\xb9\xf4\xed\x03\xbf\x5f\x63\xfb\x95\x5f\xb0\x64\xd1\xc8\x98\x0a\x84\x8d\xc8\xc8\xd8\x77\x7e\xef\x9b\xbb\x17\x53\xd3\xd8\x5a\xf9\x03\x06\xf4\x7d\x62\x69\xb5\x53\xe7\x06\xe6\xc0\xef\x29\xcc\x1c\x92\x39\x43\x1a\xe8\x10\xfd\xfa\xe4\xbe\x7e\x0f\xd9\x9b\x13\x53\x5b\x78\xdc\xa4\x91\x27\x34\x6e\x1c\x88\x47\xb9\x37\x2a\xd4\x47\x08\xf7\x6a\x4b\x26\x1d\x1b\xd1\xbb\x71\x0e\x4b\x14\x4a\xcf\x18\x06\x29\x22\x32\xde\x96\xaf\xe2\x46\x4f\x2f\x80\xe3\xf0\x22\x95\x83\x41\x19\x86\x7a\x72\x15\xd9\x42\x54\xa3\xc5\xa7\xb4\xfa\x4a\xbd\x9e\xe3\x16\xef\xa0\x57\xfe\x06\xb9\x3d\x83\x53\x74\x7b\x56\xfe\xb7\xdf\xfe\xb0\xb6\x01\x7f\xcd\x93\x4d\x8f\x39\x94\xfe\xe1\x80\x81\x95\x59\x88\x49\xe0\x2b\x9c\x25\xb7\x59\x98\xa8\xb6\x69\x9d\x52\x1d\xb3\xe2\xf2\xea\x53\x43\xc9\x52\x19\x55\x1c\xcf\x0f\x75\xfd\x0c\x89\xf5\x4a\x39\xeb\x1d\x6c\xea\x92\x1e\x54\xa7\xba\x96\x12\x6d\x02\xab\x6f\x2c\x84\x18\x09\x66\x73\x5d\xdc\x65\x08\x30\x3c\xc9\xa4\x8d\x17\x61\x75\x81\x3b\x2e\xad\x5c\x54\xfc\x12\xe6\x22\x88\x97\xee\x36\xf8\x67\x7e\x27\xb2\x6b\x81\x21\xe8\x65\xe5\x25\x2c\x73\x4f\x32\xe3\x1f\xf5\x55\x92\xf0\x37\x24\x3a\x80\xaa\x91\x28\x92\x62\x42\x1f\xde\xeb\x3e\x15\x4e\x0f\x30\xab\x1a\xbe\x1a\x08\x6f\x6d\x32\xfa\xf8\xcd\xdd\x09\x65\x7a\xee\xe5\xaf\x1f\x7c\xc6\x1d\x5e\x2a\x33\xdf\xf6\x79\xe1\x10\xd6\xf6\x09\x2b\x7d\x76\xc9\x54\x91\x65\x8b\x1e\x55\x3a\x3e\xb9\xfa\x94\xcc\xf6\x69\xc5\x1e\x9c\x1b\x42\xad\x82\x74\xa6\x43\x7e\xe1\xc7\x98\x0c\x75\x33\x12\xb5\xbf\x54\x46\xbf\xed\x64\xec\xda\xca\x7f\x2d\xfb\xf0\xa4\xfc\xbf\xca\xea\xce\x4e\x5a\x13\x85\xe4\xe6\xb9\x88\x4d\x4b\xe0\x77\x55\x55\xb0\xfd\xf3\x5e\x4c\x7b\x20\x8b\xfe\x85\x6c\xaa\x6e\x9f\x78\x30\x87\xea\x6f\x21\x49\xa4\xd2\x8c\x6b\xc1\x29\x45\x7f\x2f\xe4\x03\xcf\x84\xb2\x41\xcc\x21\xbc\x70\xdc\xcb\x95\x85\x77\xb2\x56\x1b\x51\xca\x4f\xd7\xc0\xed\xd9\xbd\x98\xde\x9e\xa1\x2c\x74\x03\xe7\xfe\xf8\xdc\x9e\x7d\x52\xee\xef\x21\x0b\x25\x26\x96\xe4\x7c\x5a\x0a\x0e\xa8\x5c\xb8\x3d\x43\x35\xe3\x6c\x8d\x1d\xd3\x74\x35\x34\xdf\x45\xdd\x5e\x22\xd5\xad\xb4\xc6\x7d\x52\x19\x93\xcf\x35\x0c\xbf\x20\x45\x66\x98\x0f\x9c\xa5\x1e\xaa\x1f\x38\x79\x40\x3d\xe7\xe7\x15\x1e\xce\x45\xe6\xb3\x7b\x71\x2d\x40\x4a\x61\x22\xf3\xea\xc3\x7f\x2f\x56\xe5\x40\x79\x75\x19\x33\xaa\xdd\x20\xdc\x1f\x62\x05\x49\xec\x37\x9f\x78\xb0\x00\xbd\x5c\x4a\xd4\x7e\xab\xb3\xcb\xba\xfd\xe5\x15\x1b\xec\x16\xf4\x6e\xd5\x0b\x10\x6f\x15\x43\x78\x1e\x5e\x5e\x90\x82\xe8\xe7\x6c\xc5\x68\xe3\xd4\xd6\x38\x2b\xef\xc5\xf4\xdc\xe0\x44\xbb\x9d\x3f\x92\x93\x40\x3f\x05\x27\x23\xa4\x8d\x63\xf2\x72\x68\x02\x37\xeb\x27\xd5\x63\xbf\x6a\xeb\xfe\xe7\xe3\xb7\x48\x7c\xfe\x41\x0b\xf3\xab\xb6\xf0\x97\x4d\x00\x31\xe0\x83\xab\x94\x05\x3c\x61\xd2\xd4\xe8\x54\xab\x49\xad\xc6\xe7\x00\xd7\x4f\xea\x27\xe5\x2c\x03\xdf\xe7\xb9\xa3\x5a\xcd\x3f\x06\x71\xd5\xd8\x86\x1f\xaa\xce\x6b\x23\x5d\xd2\x9c\x6f\x0a\x01\x6f\xe0\x17\xac\x07\x40\x1e\xe4\xb4\xc8\xbd\x21\x85\x8b\x2d\x13\x24\xf9\x46\x70\x8e\x83\xaa\x5d\xa9\x6f\xd9\x72\xdb\x6d\x41\x99\x91\xc6\xfe\x22\x2c\x5f\x72\xef\x84\x47\x22\x0b\xb8\x89\x99\x81\x78\x84\xcd\x54\xd9\x91\xb0\x32\xa9\x94\x5c\xc3\x92\x8c\xf8\x83\xf0\xb4\x93\x90\x67\x57\x72\xf6\x3f\xf0\x5c\xea\xc2\x44\xc0\xa0\x52\x23\x89\xc9\xd0\x11\xed\x03\xae\x73\x6f\xd2\xfe\xf3\x0b\x3c\xe9\xba\xd3\x63\xa1\x63\xff\x6a\x83\xf0\xa6\x9d\x19\x5d\xac\x24\x4b\xf4\x8f\x55\x12\x2b\x43\x3d\x1a\xf0\x5d\xb9\xff\x76\x7a\xca\x58\xda\x80\xb9\xe3\xe9\x19\xf4\xc0\x53\xec\x87\xec\x51\x8f\x50\x51\xaf\x9b\xa8\x54\xb1\x8d\xb8\x87\x52\x82\x89\x2c\x6b\xa8\x2a\xe9\xf7\x32\x82\x00\x85\x7a\x93\x0a\x3b\xa3\x34\x06\x7e\x40\xea\x72\x9f\xe6\x1d\xca\x56\x2a\x19\xe1\x6e\x81\x90\xd7\x1e\x72\x49\x41\xc7\xb2\xda\x75\x33\x97\xc2\x2b\xf1\x4a\x7c\xb3\xe1\x1e\x8a\x3d\x29\x57\xe5\x3d\xce\x0a\x9e\x9e\x44\x2b\x28\xef\x50\x16\xdb\x72\xdd\x0a\x95\x1f\x81\xcb\x5d\x0e\xaa\x23\x4d\x80\x14\x33\x54\x2c\xb8\x71\x23\xec\x50\x1a\x09\x57\x80\x9e\x85\xb3\x81\x78\x64\x63\xa9\x0a\x37\x5d\xb0\xf4\x13\x6e\x8c\x48\xa3\x3e\x0c\x1b\x23\xd8\x57\xa8\x2d\x84\xd9\xf6\x2c\xe7\x26\x56\x71\xc6\x95\xc4\xa9\x0c\x19\xb6\x48\x6c\x96\xf0\x2c\xcc\x94\x9f\x69\x6f\xf5\xc8\xdc\xd8\x58\x71\xd2\xab\xf2\xd9\x41\x7f\x72\x91\x08\x19\xa7\xd2\xea\x7b\xa1\x3c\xed\x4a\xa8\x56\x19\x0b\x63\xf8\x70\x13\xa4\x2a\x84\x3d\x92\x6a\xf8\xc9\x8a\xf1\x7b\x5d\xa8\x55\x34\xb2\xf3\x2f\x44\x87\x4d\xdc\x92\xa6\xb8\x33\x6e\x67\x28\xeb\x77\xa7\x1f\x28\xac\x5c\x9d\x3a\xdd\xa3\x19\x95\x20\xc8\xf0\x4c\x98\x8b\x78\x41\xfb\xbf\xe2\x6e\xf3\x2a\x86\x48\xbd\x54\xd7\xb9\x5f\x96\x20\xd1\x8d\x67\x99\xac\xf7\x2a\xf6\x3c\x74\xca\x30\x4f\x06\x1f\x35\xbb\x7a\x2a\x7e\x26\x06\x96\x15\x0a\x4e\x9f\x4a\x23\x49\x8a\xbf\xd1\x6b\xb4\x65\xf5\x8e\xc2\x46\x18\x4f\x20\x45\xf8\x45\xe4\x0b\xf7\xec\x18\x36\x10\xd3\x25\xa3\x42\xdd\x83\x17\xa1\xfc\xd5\x06\x5b\x17\x54\x16\xe3\x1f\x7a\x59\x8e\x27\x17\x7e\xea\x70\x0b\xcf\x8e\x09\x07\x32\x57\x54\xb0\xd6\x48\x42\xdd\x87\xce\xd2\x40\x79\xf4\xf0\xa6\xff\xe6\xdf\x58\xaa\xb1\x02\x06\xca\x51\xc3\x37\xf0\x98\x44\xee\x91\xc2\x54\x90\x30\x9a\x76\xca\x1f\x84\xb1\x72\x0c\x24\x2d\x7f\xf0\x40\x72\xff\xf0\xee\xb6\x32\x35\xbd\xac\x5a\xae\x71\x67\xc2\x8d\xbc\xa8\x6d\x64\x5a\x84\xeb\x24\xf7\xff\x01\xbe\xa9\xce\x0b\x71\x66\xae\x84\x15\xe7\xe5\xda\x33\x20\x42\x19\x73\xe0\x37\xac\x16\x16\x9f\x9b\x4a\x9d\x5f\x15\x27\xaa\xac\xca\x89\xdc\xf3\xe1\x22\x2e\xd1\xd9\x30\x19\xdd\x8a\x7c\x2c\x95\xc0\xeb\x28\x54\x86\xc0\xdd\xe1\xef\xbc\x75\x00\xdf\x10\x15\x0c\xee\x40\x56\x28\xac\xb9\x73\xdf\xe4\xc9\x7d\x95\x37\x56\xe4\x7d\x76\x35\x8b\xcb\x86\x0c\xbc\x7d\xf6\x55\xf0\xf4\xc2\x89\xd0\xad\x17\xf7\x24\x5a\x25\x45\x9e\x0b\x95\x4c\x2f\x7c\x52\xc0\x05\x57\xe9\x45\x14\x18\xb3\x11\xd3\x76\x08\x00\xd9\xe0\xb3\x54\xf7\xab\x70\x11\xfd\x63\x68\x07\xfd\xf6\xf5\xf3\xac\x33\x3e\x2e\x61\xab\xa9\xba\x55\xb7\xea\xc3\xc7\xab\xaf\x1f\xdf\x5f\xde\x7c\xfc\xc0\x7e\x8e\xe6\x42\x60\x1f\xd2\x13\x16\xcb\x40\x42\xfb\xd1\x39\xfe\xa6\xff\xf6\xb5\x3b\x23\x50\x73\x54\xbf\xd0\xa4\x61\x93\x8c\x2b\x85\x22\xbc\x8e\xb9\xf7\xa6\xff\xf6\x4d\x78\x6d\xd7\xac\x96\xa5\x42\xf8\x0b\x57\x7c\x28\x52\xf4\x49\x7f\x54\x76\xa9\xe3\x76\xfe\x61\x5c\x80\x47\x9d\xdf\x0f\x32\xfd\x78\x21\x9d\x1a\x84\x0e\xee\x6b\x7f\xe5\x95\xe0\x4d\x0b\xa0\xe3\x4a\x4d\x09\x1d\xea\xee\xbd\x06\xbb\x70\xdb\x95\xc5\x95\x82\xe2\x7a\xbf\xe2\x52\xcf\xf4\x0c\x81\x12\xa3\xfb\x7d\xde\x75\xfd\xdf\xee\xc8\x43\x74\x09\x9c\xa5\x7a\x72\x91\xb9\xc3\xc5\x2a\xfd\xf0\x17\x39\xfa\xaf\x95\x48\x9c\x36\x91\x23\x31\x6d\x0e\xa7\xbe\xde\x3f\x5e\xe9\x49\x45\xac\x25\xb1\xcc\x8f\x17\x56\xbb\x2b\x3e\x01\x92\xae\x88\x4b\xb9\x81\x7a\x82\x6b\x71\x83\x4f\x2e\x9b\xd5\x9f\xe2\x83\x41\x7c\xa6\xd2\x3d\x30\x96\x0a\x0c\xbb\x50\x01\x5a\x42\xf8\xf9\xb8\x89\x9f\xba\x8a\x7f\x1c\xa6\x34\x47\x48\x4d\xb8\x59\x90\xfe\xd9\x9b\x03\x51\xdb\x04\x15\xee\x1d\xbb\x8d\xd1\xbe\x4d\x7c\xe7\x83\xf9\x60\x22\x7b\xa2\xbb\x30\xc6\x27\x97\xb9\xe1\x62\x84\x72\xa4\x21\x78\x14\xb5\x50\x08\x3b\x86\xb5\x0e\x73\x63\xa2\x11\x16\x61\x3a\xab\xc3\x86\x62\xda\x05\x65\x6b\x63\x38\xab\xab\x5c\x17\x78\xa2\x73\x6f\xf0\x97\x34\xc0\x91\xbf\xdb\x9f\x6c\x06\xcd\x79\xff\xbe\x09\x47\x75\x83\x7d\x85\xb6\xed\xea\xc3\xfa\x25\x3c\x17\x76\x55\xa0\x32\x8c\x0d\x78\x7d\x36\x13\x3c\x8d\xb4\xd0\x0d\x17\xd4\x9d\x00\x06\x35\x14\xbb\x78\x68\x61\x4b\x3d\x54\x8b\xc6\x23\x0d\x3b\x9e\x2f\xa7\xe8\x9d\x5f\x4e\x26\xd9\xf4\x1c\xf6\xe7\xf9\x6f\x50\x3e\x7b\xbe\xc1\x78\xad\x9c\x07\xf9\x7d\xc2\x1e\xbb\x91\xe3\xe5\xb4\xf3\xee\x01\x98\x32\x39\x16\xc6\xf2\x31\xf8\x78\x1f\xbd\x0e\x1b\x17\x8e\x3d\x8a\x1c\xa3\x89\xee\xee\xf1\xaa\x9e\x8f\x53\x07\xc7\x8a\xb3\xea\x6a\xab\xe0\x67\x64\xbb\xe2\x48\x26\xb9\xbe\xa9\xcf\xd9\xdc\x9e\x0d\xcf\x00\xf2\x6d\x79\x3b\xc2\x9f\x80\x22\x72\xec\x9e\xc0\x3a\x79\x86\x77\x6e\xa4\x7b\xac\x08\x94\x52\x21\x75\x8b\x7b\x61\xab\x53\xfb\x74\x2e\xbc\xd2\x73\xb1\x64\x28\xe5\x43\x10\xc0\xac\xb9\x59\x78\x96\x95\xd8\x0a\xcd\xae\x16\x0f\x38\x16\x70\x69\x2b\xc1\x1e\x70\x5f\xf8\x67\x71\xef\xb7\x91\xa4\x4e\x8c\xf0\xc6\x5a\xdf\xad\x86\x26\x2e\xcb\xef\xfa\x8b\xa8\x50\x65\xd8\x1a\x7c\xc7\x68\xb6\x8f\xf9\x04\x33\x3b\x52\xe6\xa9\x40\xeb\xc2\xba\xe2\xc5\xb9\x9b\x96\x3c\xfc\x56\x6b\xa4\x8e\x87\x77\xe1\x44\x47\x77\x48\xc9\x98\x1e\xcb\x5f\xdd\x1d\x31\x8d\x76\x32\x84\xee\xc0\x3f\x02\x98\xd9\x11\x62\x01\xd4\x4d\xf0\xb3\xc0\xe9\x02\x6d\x7d\x0a\x46\x65\x70\xa3\xcc\xe8\xdf\xef\x5e\xbd\x2a\xfd\xd0\x4e\x03\x4f\x75\x62\x5e\xb9\x75\xba\x18\x16\x32\x15\xaf\xaa\xd3\xdf\x2e\x4e\x51\xb9\x67\x3c\x93\x7b\x0b\x4c\xf1\x9b\x19\xdc\xc4\xc0\x01\x8f\x9b\xa9\x02\x27\x51\x12\x18\x94\xa1\xe0\xe0\x8d\x4a\xb1\x90\xb8\x90\x66\x54\xd9\x9a\xb0\x28\xc0\x25\x0b\x1f\x00\x04\x8f\x80\xbd\xe8\xe4\x57\xa9\x03\xf8\x8f\x9a\x1a\x1c\xb4\x37\xcf\xd1\x58\x9e\x62\x52\x46\x2e\x87\x23\xcb\x94\x7e\xc4\x38\x46\x44\x9f\x96\x86\x0d\xb5\x27\xa8\x97\x43\x05\x53\x0d\xbe\x3b\x5f\xd0\x8c\x9b\x1e\x60\x48\xe0\xee\x8e\x68\x21\xeb\x5f\xe1\xd0\x94\xd4\xea\x26\x5c\xa9\xbb\xbc\xcf\xdf\xcf\x7e\x1c\x35\xee\xf2\x7a\x9f\xcb\x42\xf2\x13\x64\xe1\x36\xc4\x8b\xbf\x34\x68\x1f\xb9\x29\x65\xe1\xa7\xe8\x11\x19\x16\x3c\xe7\xca\x8a\x68\xa7\xf8\x59\x1c\xf1\xc9\x44\x28\x73\xe1\x6b\xee\x01\x19\x8b\x71\x77\xb9\x1a\x66\xc4\x84\xe7\x30\xc7\x41\x48\x98\xd2\x7b\x10\xbc\x84\xd1\x65\x01\x07\x38\x7c\xb2\xca\x1e\x2b\x15\xfb\xfa\xd3\xfb\xef\xbf\xff\xfe\xff\x60\x12\x02\x47\x24\x0d\xa9\xd8\x6f\x37\xef\xc1\x32\x6b\x63\xeb\xfe\x5a\x20\x01\x2c\xfa\x9c\xb7\x6e\xfb\x86\xbb\x62\x01\xde\x8e\x07\x26\xf8\xf3\xba\x50\x2f\xbf\x96\x8e\x3c\x0f\xf2\x12\x81\xf2\x83\x82\x12\x1c\x13\x1a\x71\x56\x06\x85\x53\xf4\xd1\x0b\xe1\xd6\xc2\x2f\x94\xac\x32\xe0\xce\x00\x4c\x84\xd9\x03\x70\x79\xb7\x3e\x15\x60\xa7\xd9\x7d\x96\x19\x8d\x5a\xc2\x2f\xdc\x6b\xe2\x6e\x6f\x8c\x74\x6e\x05\xc0\x5e\x94\x2b\xd0\xb5\xaf\x67\xae\x3f\xbb\x3c\x74\x1f\x9a\x26\xe3\xeb\x4f\xef\x19\x6c\x53\xb8\x4e\xc0\xb4\x75\x47\x8c\xdb\x78\x73\x56\x8d\xc7\x12\x55\xc4\x23\xf1\xd4\xef\x39\x2f\xa2\x2a\xe7\xf5\x11\x89\xbe\xc3\xaa\xd6\xd0\x2d\xfc\xdd\x55\x9e\x00\x27\x35\x7a\xe1\xa8\xb8\x73\x86\xb8\x4a\xb8\xa0\x08\xc2\x00\xac\xcc\xe8\x58\xaa\x3b\xd4\x21\x64\xff\x6d\x22\x12\x1b\x4f\xbb\xef\x24\x7b\xa1\x34\x22\x06\xe6\xec\x41\xa2\xb1\x05\xdb\xa6\x06\xd7\xee\x09\x79\xd1\x31\xc8\x93\x51\xf8\x9a\xbb\xe9\x5f\x32\x3e\xb0\x81\x7b\x1c\x34\x34\x55\xd1\xab\x7b\x4c\xab\x44\x78\x9b\xa7\x06\x6e\x02\x7d\xc2\x68\xde\x65\x8d\xde\x79\xee\xc1\x18\xe5\x06\xb7\x6b\xaf\x36\x4d\x77\x99\x4e\xee\xdd\x5c\x7f\x09\x9f\x69\xdc\xd5\x90\x78\x59\x01\x31\xaa\x44\x34\xd0\x53\x8b\xf4\x08\xee\x5f\x01\x7c\x4a\x2a\xef\x7f\x43\x92\x84\x1e\xe3\x99\x1d\xe9\x62\x38\x72\x27\x2d\x68\x1d\xe1\x58\xb0\x59\xde\x18\xff\x40\x98\xe5\x49\x2e\xd1\x51\x8a\x51\x05\x39\x16\x35\x08\xc5\x1e\xe3\x18\x7c\x42\xc0\x31\x1f\xe7\x01\x8d\x90\x4d\x74\x8a\xa9\x7e\xd8\x92\x54\xec\xfb\xd7\xe1\xae\xc0\x55\xfe\xb9\xb8\x73\x3f\x06\x78\x2d\x9e\xc0\x3e\x33\x02\xb9\xd2\x2b\xfb\x2b\xdc\x19\x90\x1a\x26\x87\xaa\x0c\x91\x04\x2f\x7f\x09\x77\x39\xd1\x69\x9f\x5d\xfa\x95\xe5\xb6\xf2\x51\x8c\xce\xd6\x3e\xea\xbe\xc5\x38\x1b\xf1\x3c\x6d\xfa\xc8\x8b\xeb\x4f\x7f\xfe\xf9\xd3\xe7\xcf\x2f\xe7\x3e\x87\x12\x1e\xbe\x92\x64\x82\xab\x62\xd2\xf3\xb7\x57\xe8\x44\x79\x89\x5d\x5e\x7d\x02\x2c\x23\x3b\xf2\x9a\x98\x5b\x71\x3d\x08\x98\x9c\x90\x34\x89\x57\x42\xaf\x76\x6f\xba\x39\x45\x32\x71\xc0\x42\x89\xdb\xb5\x6a\x31\xf5\x58\xa1\xac\xcc\x20\x02\x9e\x8e\xa5\xc2\xea\x6c\x0d\xb8\x91\xde\xc1\x02\xab\x08\x00\x62\xe0\x1d\x2e\xfd\xc0\xb3\xf0\xf4\x33\xf7\x73\x1a\xc1\x69\x60\x13\xce\x1f\x76\xaf\x93\xf9\xde\x8e\xb8\xf1\x3b\x53\xa8\xf2\x12\x58\x26\x14\xdb\x5d\x23\xbb\x74\x13\x2f\x17\x95\xe5\xf1\x5e\xe5\xa8\xa8\xc6\xfc\x1b\xb0\xcf\x2a\xa7\x22\x6e\x12\x5f\x59\x3f\xed\x33\xc8\xe1\x16\xd1\x61\x59\xf3\x74\x54\x68\x9e\x26\x5a\xe1\xad\x97\xe8\xb1\xe7\xf5\x2f\x39\xd6\x2b\x5b\x11\x5b\x8a\xdf\x41\x78\x26\x1f\x87\x9a\xbf\x72\xea\x6b\x0a\x17\xb6\xba\x00\xd8\x34\xd7\x0e\x70\x8b\x55\x43\x70\x6e\x43\x05\x51\xeb\x85\x77\x9f\xfd\x54\x5e\x83\x25\x2e\x23\x02\xd8\x79\x7b\x26\xfa\x95\xb9\x9a\xa2\xa2\xd6\x67\xec\x0b\x28\x6c\xd2\xb0\x5f\xbf\xdc\x30\xa1\x06\x3a\x4f\x00\x41\xa9\x8c\x88\x29\x9b\xeb\xb4\x00\x2e\x06\x39\x54\x50\x4a\xab\x2c\xcb\xa5\xb9\xc7\xc4\x8f\x22\xb9\xaf\xdc\xc1\xfd\xea\x7d\x8c\x39\x48\x23\xee\xcc\x31\x7f\xbf\xbb\x6f\x73\x48\xed\x01\x53\x60\xe2\xf6\xbd\xc1\x34\x5f\xee\x76\x30\x2a\x90\xb2\x9c\xad\x12\x88\x28\x88\x81\x72\x5c\x52\xe1\x38\x62\x0c\x4e\xe2\x69\x0b\x1e\x1f\xce\x8c\xb4\x45\xc4\xc5\x2b\xed\x97\x72\xf5\xaa\x6b\x1a\xd6\x19\xdd\x6d\xe5\x87\xab\x21\x52\x69\xd8\x23\x47\x46\x7e\x24\xf5\x0a\x97\x16\x0a\x6e\x9f\xb2\x1d\x0d\x4b\x3c\x73\x90\x14\x0f\x61\xf9\x97\xae\xf7\x6e\x36\x53\x2f\x7e\x17\x76\x84\x57\x47\xce\x6d\xbd\x1b\x3d\x9f\x0c\x0a\xd1\x45\xa8\x58\x10\x3c\x75\xb2\xad\xcf\x7e\x97\x4e\xee\xd8\x72\x2d\x61\x86\x6a\x90\x4e\x98\x42\x34\xc8\x85\x70\x93\xe4\x55\xf6\xb1\xb3\xe4\xc0\xcb\x3e\x36\x22\x7b\xf0\x20\xf9\xc1\xc6\x7d\x28\x32\x25\x72\x10\xe4\xe1\x15\x70\x9a\x41\x08\xab\x16\x44\xde\x66\xda\x4c\x47\x49\x5b\x43\xe1\xc6\x62\x45\x0b\x53\xf8\xcf\x95\x47\xfd\xc5\x10\x69\x88\x26\xb9\x18\xc8\x6f\xbd\x18\xf6\x2b\x55\xb5\x1e\x42\x03\xe3\xab\x4e\x58\x63\xde\x3f\x98\xbc\x5f\x7e\xfd\xfc\x1f\xec\xd3\x4f\xf0\x34\xb4\x8a\x1b\xa7\x76\x91\x07\x44\xd5\x12\x4c\x31\xaa\x85\xee\x63\xbd\xb2\x08\x23\x66\x3b\x04\x51\x89\x58\x7f\x51\xb7\x8c\xe6\xb4\x0d\xc0\x5a\xf0\x5a\x99\x46\x11\x75\x1c\x5f\x88\x62\x40\xdd\x4b\xf4\xf8\x0e\xa2\xf8\xde\x89\xe2\x07\x60\x8a\xc1\x40\x7e\x43\x35\x22\xa2\xbe\xe2\xeb\x23\xaf\x8d\x81\x6d\x0f\x9e\x53\x3c\x76\x79\x91\x09\x13\x54\xb5\x72\xbc\xbd\x6a\x02\x8b\xcd\x0b\x95\x54\x25\x55\x26\xd4\xb0\x84\xc5\xc7\xaf\x86\xe4\x46\x18\xea\x98\xfb\x98\x09\x7e\xdc\x77\xcf\x07\xa0\x7d\x04\xd4\xc9\xc0\xb9\xe9\x2b\x51\x26\x63\xe4\xc9\x2f\x13\x3a\x22\x50\xe8\x7b\xa5\x25\xe8\xdd\x6e\x66\xdc\xf5\x18\x80\xaa\x01\x2b\xee\x82\x49\x65\xac\xe0\x69\x2f\xda\x52\x3e\x9d\xc0\x3f\xf6\xf6\xf5\x1b\xf6\xde\xc7\x72\x75\xce\xfe\xed\xf5\x6b\x9c\xcd\xaf\x82\x1b\xad\x7c\x28\xdf\xc9\x00\x77\x5a\x7d\x56\x10\x6a\x60\xd5\xed\x92\x54\x81\x54\x07\xba\x50\xd1\xcd\x8f\xb6\x45\x96\x69\x6b\x43\x6e\x51\x15\xed\x11\xdd\x50\xb9\x70\x72\xe8\x45\xd8\xb3\xd9\x74\x5e\xfd\xc6\x74\xa4\xd8\xec\x57\xf7\xc6\x05\xaa\x72\x88\x86\xfd\x12\xa6\xf2\x12\xe2\x5a\x69\x24\xf5\x0a\x27\x62\x06\x78\x73\xcb\xba\x82\x4c\xc5\x78\xa2\x37\x0c\x1d\xfb\xa5\x6e\x11\x07\x64\x98\x23\x93\xc4\x1c\x95\xd9\xca\xab\x48\x43\x14\x9b\x0c\xbb\x35\x15\x06\x76\xa9\xb1\xdc\x8a\x56\xb1\xe5\xae\x0d\xe3\x6c\xf7\xa9\xe3\xbf\x60\xa6\xb8\xcf\x02\xbd\x17\x53\x53\xc9\x17\x9e\xcf\x91\x00\x11\x32\xe4\x4a\xfe\x03\xcd\xe4\x40\xa2\xfa\x0f\xc1\x5e\x98\x44\x4f\xbc\x27\x15\x52\x86\x5e\x56\xdc\xa5\xdc\x23\xdd\x97\xd9\x44\x98\x3c\x34\xc9\x3c\x36\x10\xf3\x69\x06\x59\x40\x26\x04\x1c\xff\xa4\x01\x7c\x79\xa5\xaf\xd5\xcf\xe2\xda\x6e\xd6\x71\x35\xc0\xd4\x2a\xb6\xe6\x9f\xc5\x32\xb0\x4a\xa0\xbc\xce\x65\x14\xb2\x3b\xaa\xc5\x8a\x11\x70\xdd\x7f\x14\xf7\x98\x53\x47\x7d\x2b\xa5\x5b\x76\xac\x8d\x33\xfe\x9d\x66\x11\x53\x5a\x46\xba\x30\xe2\x5e\x88\x89\x54\x43\xbc\x40\x30\x26\x60\xa7\x13\x1f\x1f\xc6\x5b\x44\x9d\x5b\xa6\xbc\xe7\xcf\x5b\xbf\x85\x4a\x45\x6e\x6c\x3d\xa7\xa9\xcf\x2e\xcb\x70\xa0\x5f\xef\xe0\x8b\x38\x47\x22\xae\x1e\xe6\x0b\xfa\x35\x8a\x7f\xf4\x8a\x57\x59\x57\x18\x0f\x18\x9f\x4c\xb2\x29\xb2\xa4\x40\xa0\xfc\xf6\x2c\x91\x17\x49\x1a\xb2\xf8\x67\x8a\x37\x4d\x08\x51\xf9\xcb\xac\x64\x82\xf2\x09\x04\xb1\x7b\xb0\x0f\x67\xfc\xf2\xa5\x0e\xbe\xf5\xc2\x91\x86\xa4\x8a\xb5\x53\x87\x2b\x9b\xae\x05\x31\x2c\xdc\xd7\x21\xc7\xc8\x4b\x18\x27\x8f\x40\x7d\x8c\x3e\xf8\x3e\xfb\x64\x4a\x49\x0b\xf3\x83\xce\xed\x0a\x25\x9f\xa9\x38\x37\x8c\x1e\x57\x79\x95\x9c\x40\x47\x78\xce\xe0\x59\xc2\xcc\xd2\xe0\xa2\x10\x33\x17\xa6\x33\xa0\x2b\x7c\x17\x18\x13\xa8\x66\x28\xf4\xa3\x9c\x99\xe4\x72\xcc\x73\xe9\x84\x4f\x48\x68\x73\x9b\x39\xb8\xde\x59\x29\x19\xfc\x9d\x52\xcb\x31\x2d\x17\xa8\x11\xf3\x78\xdd\xcb\xa1\x34\x0e\xcd\xff\x80\xb9\x5b\x5f\x18\xc5\x29\x6f\xb1\x6e\x18\x1e\xa9\xa6\xa4\xe0\x5f\xfc\xfa\x01\xff\x88\x9a\x5f\xdf\x4a\xf1\x57\x25\xc8\x32\x5b\x8e\x83\x29\x03\x1e\xac\xf5\xf6\xac\x7c\x14\x01\x64\xab\x3f\xf9\x40\x7b\xc2\x95\x56\x90\x32\x5b\x87\xd6\xef\xb3\x5f\xb5\xad\xc5\x18\x79\x2e\x6a\x7a\xdb\x9d\x60\x70\xbf\x7b\xeb\xac\xec\xd5\x45\x45\x9b\xd3\x35\xa5\x0d\x8d\x32\x6d\x62\xf6\x71\x54\x6e\xd1\x1d\xe8\x74\x93\x60\xfa\x73\xf6\xe1\xd7\xeb\xff\xfa\x7c\xf9\xe3\xc7\xcf\x9d\x2c\x73\xec\xdf\x26\xe0\xd4\x8f\x4a\xe4\x5f\x05\xa8\xdf\xab\xd9\xcb\x3e\xfb\x42\xb7\x30\x46\x0f\x34\xeb\x6f\xf4\x4a\xae\xda\xa7\x01\xbb\xfc\xfc\x39\x3e\x57\x35\x4d\x21\xa9\x10\xec\x07\xef\xe7\xa8\x3b\xb6\xc2\xb4\xcd\x80\xe6\x56\xad\x8c\xd2\x01\x51\x11\x28\xd5\x0b\xdb\x1b\xda\x5c\x05\x57\x49\xd5\x2d\x01\x1f\xf0\x49\xe6\xba\xcc\xb9\x0e\x6f\x82\xf2\x1b\xdc\x79\xf8\xc7\x4a\xb2\x12\x24\x34\x15\x22\x24\xf8\x94\x09\x4b\x65\x3a\xb8\x56\xa2\x4c\x32\x29\x1b\xd9\xfa\x5d\xfd\xa5\xb6\x92\x5d\xd9\xaa\xb5\x8a\xa4\x42\xa6\x5d\x19\xb7\xeb\xa5\xc0\x5e\xaa\x90\x64\x8a\x67\xcf\x97\x7e\xc5\x22\x25\xeb\x13\x88\xb7\x9d\x02\xfb\x4b\xa5\x94\xc1\x9d\x78\x67\xb0\x8c\xa5\xb1\x32\x61\x95\x2c\xd2\x5e\xa0\x27\x76\x6d\x56\x78\x72\x41\xb2\x83\x62\x58\xe6\xfe\x00\xe5\x74\x74\xb4\xea\xbc\xa1\xa8\x36\x86\x22\xdd\xf5\x01\x69\xb7\x3e\x05\x26\xd4\x12\xd5\xaa\x2d\xda\xa5\xdd\xde\x20\x1d\x53\x19\x0b\xc3\x2c\x22\xf4\xe8\x80\xcf\x39\x01\xba\xeb\xa5\x3d\x6b\x1b\xd3\x5c\x33\x71\xf8\xa4\x13\x7e\xaf\x9f\x69\xc2\x6f\x65\xa6\xdc\x2d\xb2\x7c\x92\x7e\xfb\xf4\x21\x08\x71\xaf\x02\xba\x1b\x5c\xfa\x4c\x0c\x14\xc5\x78\x11\xcc\x84\x93\x43\x5c\xbe\x34\x0d\x4a\xbf\x49\x3d\x4a\xa9\x15\x33\x45\x92\x08\x63\x06\x45\x56\xaa\x67\xba\xc6\xff\x5f\x89\x4b\x86\xf8\xb5\xd5\x91\x7b\x5c\xb1\xab\xdf\x6e\xaa\x49\x03\x6d\xcf\xc3\x53\xd4\xb8\x42\xb6\xa6\xa0\xe8\x3e\xa9\x6d\x46\xc4\x2c\x49\x07\xab\x3d\x58\xc6\x3a\x85\xc2\x58\xa3\x42\xf7\x81\xb7\x18\x33\x61\xa1\x54\xc9\x8f\x73\x0a\xee\xcb\x47\x55\xe6\x20\x81\x86\x58\xfb\x4b\xbc\x4d\xbc\x66\x11\x73\x75\x70\x73\x78\x47\x5e\xc4\xc1\xef\xf9\x50\xa8\xcf\xd6\xb9\x40\xed\xae\xc7\x8c\xf6\x15\x31\xb0\xca\x95\x06\xd0\x50\xec\x36\x67\x7b\x3e\x6f\x1c\x9d\x9e\x1b\x1c\x21\x08\x10\xc3\x24\x87\x08\xff\x8a\xcf\x7b\x5a\x8f\x1e\xbb\xfc\xf5\x43\xa8\x72\x03\xd5\x2f\x7a\x44\x6f\xcf\x4a\x8e\x80\xd0\x68\x95\xf1\xa3\x52\x10\x85\x2f\x96\xba\xcf\x5c\xbc\xea\x5e\x4c\x2f\xf0\x7c\x62\xa2\x1a\x86\x21\x7d\x5e\x41\xd8\x14\xf0\x1f\x3e\x2a\x54\x25\xce\x01\xe6\x91\x3e\xbb\xd1\x33\x65\x42\x31\x9c\xec\x6c\x7c\x03\x0a\xbf\xfb\xec\xed\x59\x35\x3a\xa3\x2b\x43\xeb\x61\x2c\xe3\x51\x1a\xc1\xfe\xf8\xf6\x2d\x7b\xf1\x9b\xf2\x31\x19\x08\x10\x7c\x54\x56\xda\xe9\xcb\x06\xf6\x8c\xc6\xe5\x58\x4a\x2f\x52\xaa\x79\x6d\xd7\x61\x66\x32\x40\x1f\x8d\xe4\x5d\xab\xd5\xc7\x56\xbd\x6a\xcb\xf7\x33\xbb\x1f\x0f\x9a\x4d\xa7\xad\x0f\x61\xd5\xa0\x76\x61\x3c\xb7\x93\x74\x9d\xf6\xf4\x29\xf2\xa1\xb9\xa6\xbb\x72\xc5\xcd\xee\xad\xd9\x65\x99\x19\xba\xff\xaf\x0e\xab\xbe\xaf\x00\x99\x79\xb1\xdc\x81\xdf\x7d\xf0\x15\xc3\x3e\x56\xb3\xa1\x7c\x10\x68\x1e\x26\xb9\xb0\x95\x94\x4e\xc8\xc4\xf7\x47\xae\xa2\x39\x5d\x5d\xde\xbc\xff\x4b\xf4\x06\xdd\xe9\xb4\x8a\xb6\xf4\xf4\x21\x2c\x60\x22\x9a\x1b\x4a\xf5\xb9\x28\xee\xe6\xd9\x83\x54\xc5\x98\x78\x81\x2e\x04\x9f\x4c\x24\x7a\x4c\xd8\xa4\xff\x72\x96\x56\x68\xb5\x54\x5b\xb3\x3e\xb1\x86\xc7\x64\x79\x3e\x14\x96\x7d\x9d\x69\x62\x0b\x67\xa7\xf1\xbb\xbf\x7d\xfa\xb0\xbf\x1a\xb4\xc5\xa4\xa7\x8b\xd7\x79\xe1\x3b\xc0\xde\x6b\xaa\xc1\xb2\x9a\x95\x5a\xd1\x65\x6b\xac\xc0\x40\xb4\x5b\x92\xe7\xf6\xbc\x12\x04\xaa\x93\xaa\xb4\xd6\x48\xcd\xdb\x02\x8f\xa0\x69\x4c\x4d\xe3\xba\x09\xf4\xbf\xe0\x50\xc1\x9c\x86\xa4\x42\x24\x8c\x11\x12\x04\x9c\xfb\x74\x05\x82\x5f\x0e\x8b\x5c\xb8\x2d\xda\x76\x70\x1b\x68\x4e\x35\x26\xd5\x55\x3a\x9b\xff\x74\x70\x24\x84\xa8\xb9\x29\x24\xa6\x26\xa2\xb9\x1c\x56\x07\x13\xf7\x6d\x64\xfd\xe5\x77\xfa\x41\x44\x9e\x62\x9f\xf3\x01\xee\xbf\x91\x36\x16\x23\x0a\xe1\x5f\xef\x26\x3a\xb7\x3d\x37\x11\xda\x4d\x07\xfc\x67\xc7\x80\x63\x95\x95\x5b\x38\x1f\xdd\xdf\xd8\xd7\x00\x94\xb1\x6c\xff\x23\x92\x06\x98\xc3\x3e\x24\x5d\x9a\x76\xce\x86\xf3\x4b\x9f\x6a\x75\x6e\xc3\x13\x88\x1d\xd1\x1e\xe5\x8b\x48\x5b\xf7\x47\xda\x9a\xe8\x74\x95\xc2\x76\x5d\x0c\x87\x98\x16\xfc\x97\x9b\x9b\xab\xb0\xc8\xee\xc5\xd2\xc0\x47\xc4\x95\x1e\x7b\x1d\x69\x34\xc5\xd2\xc2\xfc\xef\xdf\x6e\x94\xac\x6d\xb9\x9c\x0f\x4a\x3f\x85\x07\x1b\xba\xfd\xc1\xb7\xbb\x2c\x38\xfd\xf1\x9b\x8f\x17\x21\xae\x8a\x31\x3a\x91\xe0\x48\x88\x1e\xe9\x1c\x52\x32\xfa\x0c\xb3\x00\xf1\xbf\x60\x63\xe0\x56\x65\xd2\x1a\x67\xf9\x20\x52\x24\xb4\x84\x9f\x9d\xcd\xd9\x8e\xa9\x41\xc1\xe5\x03\x5f\x8c\x39\x3a\x8d\xa5\x14\x89\x06\x9b\x1d\x81\xd1\xa6\xe1\x18\x88\x6f\x89\x98\xd8\x40\x40\x87\xb0\x9d\xde\xef\xe1\xbb\xb7\xa4\xb0\x93\xe8\x48\xf7\x62\x40\x79\xa4\x97\x95\xb9\x25\xa3\x62\xcc\xd5\x45\x2e\x78\x0a\xb2\xae\xf2\x7b\xcc\x78\xf2\x20\x48\xc1\xcf\x1e\xf4\xd0\x0d\xc4\x72\x4c\xae\xed\xee\xe4\x45\x84\xa8\x65\x87\xee\xda\x72\x95\xf2\x3c\xf5\x90\x40\xb1\x72\x6e\x87\x0b\xb8\x20\x3c\xe2\x4e\xcf\xca\x35\xf2\xc3\x5f\xb8\x4a\x8f\xa3\xe9\xcc\xda\xf8\x92\x24\x5f\x80\xcd\x65\x56\xe4\x02\xd0\x68\xdd\x52\x36\xb0\x22\x63\x5c\xb6\xea\x24\xab\x3a\xef\x2a\xe8\x4f\x97\x21\x63\x2c\xc9\x78\x8e\x6a\x39\x57\x78\x9f\xfb\x7d\x02\xf7\xf9\x5d\xe1\x44\xb9\xc0\x2b\x46\x3f\x88\x3c\x97\xa9\xbb\xb9\x36\x51\xe5\x66\x55\x8b\x05\x0b\x1c\xf7\x68\xa5\xc2\xab\xcf\xbe\x00\x30\xd7\x3b\x76\x7b\x76\x8d\x7e\xe0\xdb\x33\xa7\x7b\x55\x26\x65\xeb\xbb\xc0\x4c\x44\x02\x81\x07\x3f\x92\x6e\xcc\x96\xf8\xf7\x6d\x11\x73\x5e\x37\xf4\xb6\x7b\xae\x7f\xfc\xca\x7b\x5e\x98\x65\x8e\xe6\xca\x53\xc1\xe6\xf7\xe8\x64\xb5\x6d\x7a\xe7\x8c\x0a\xc8\xe2\x90\xbe\x61\x36\xc0\x65\xae\xc2\xbc\x25\xdc\x08\xe3\xb3\x6d\x8a\xcc\xca\x49\x26\x10\x1d\x0b\x33\x04\x84\x4a\x74\xe1\x54\x33\xd1\xc6\x33\x0c\xd2\xb6\x85\x8d\xe4\x91\xd1\x9b\xa0\x44\x00\x71\x8c\x63\x2a\x9a\x3b\x94\xd0\x97\x1e\xe3\x98\x8e\x04\x92\xd6\x89\x26\x00\x5c\x98\x41\x60\xfa\x05\x44\x1c\x94\x53\xb3\x54\x23\x38\xc5\x44\x1b\x3b\x90\xdf\x58\x28\xce\x05\xdd\x4a\xa1\xde\xc5\x2d\x6e\x60\xa7\x4a\x5e\xe6\x39\x9f\xe2\x90\xff\x21\x72\x7d\x01\xb0\xe4\x4e\xc6\xb1\x98\x01\x36\x65\x7c\x32\x11\x3c\xaf\x85\xbd\xb1\x34\xb6\x0a\xb7\x08\x9d\x37\x2c\x2d\x04\xda\x77\xf0\xf6\x88\x3f\xb8\xc9\x9e\x99\xe1\x3e\xfb\xe2\xb5\x12\xc4\xaa\xc7\x12\x22\xf3\xee\x56\x31\x76\x0b\xde\xa5\xdb\x33\x9f\x7e\x81\x33\x16\xff\x18\xac\x5a\x04\xda\x88\x53\x88\x2f\x42\x98\xfd\xff\xff\xfa\x3f\xfb\x2d\x5a\xc0\x7c\x7a\xec\x7c\xcc\x1b\xf0\x4d\x6c\x82\xcc\xd1\x9d\xa0\xc5\x2a\x07\xff\x1f\x30\x5f\x7d\x56\xd5\xe9\x62\x25\x45\xa8\x45\xe5\xe6\x42\x7a\x16\xfa\x1c\x92\x63\x37\xc2\x75\xeb\x44\x04\x2d\xea\xff\xc6\x92\x66\x7f\xde\x9d\x9a\x2a\xbf\xea\x4e\xf2\xcf\x05\x80\x5b\x84\x28\x8c\xc9\xad\xac\xbc\x36\xf0\xac\xff\x72\xf9\x1f\x95\x8a\xff\x6a\xf9\xb3\x0e\x17\x5b\xf5\xf5\x86\xdb\xad\x02\x79\x77\x03\x09\xd2\x20\x8d\xe3\xf5\xc2\xd9\x75\x15\xb3\x32\x9a\xb7\x8f\x90\x9c\x19\x8f\x7f\x0c\x87\x40\xb5\x6c\x2d\xf5\xc0\x57\xa7\x57\x93\x3a\x3d\x9e\x5b\xf4\xe5\x44\x23\x20\x80\x9c\x40\xce\x57\x6c\xbd\x57\x85\x1e\xe0\xc6\x14\x63\x7f\xd3\x41\xb9\x4d\x78\x2a\x6c\x67\xd8\x10\xee\x7e\x86\xdc\x84\x5e\xcc\xe7\x0c\x1f\x69\xe3\xad\x82\x0b\xa8\x8d\xa7\x0a\x6f\x2a\x0f\xbe\x1a\x70\x28\x10\xe6\xd2\x2f\x64\x93\x45\x86\x53\x1a\xa6\x1a\x25\x4a\x99\x5e\x56\xfd\x15\x6f\xcd\xb0\x92\xd8\xa6\x48\xfd\x0d\xb9\xf5\xdc\xa0\xaa\x30\xad\x34\xba\x76\x02\x67\xd0\x0c\x56\x4d\xa7\x67\x0c\x88\x2b\x3a\x2b\xde\x9a\xe6\xd2\x6b\x89\xd5\x49\xdb\xe0\xd6\x6a\x61\x54\xba\x0e\xba\xc7\x3a\xe8\x1f\xfb\xa2\x30\xb7\xb4\xcc\x02\x40\x83\x1c\x0a\x5a\xaa\x05\x7c\xa1\xee\x39\x7e\xc2\x99\xb6\x87\x6d\x28\xb6\x88\xb4\x45\x08\x8e\x27\x4f\x25\x7b\xf1\x58\xe2\x53\xe2\x9d\x89\xd0\xed\xd0\xbc\x77\x1f\xa3\xff\x34\x22\x49\xbd\xdc\x48\xaa\xd9\x7c\x0a\x65\x23\xed\x90\x0c\x3e\x0d\xca\xb2\x91\x5e\xb5\x1e\x25\x22\x1b\x54\x4b\x38\xa3\x95\x55\xc2\xab\x20\x40\x4b\xda\x67\xd7\x6e\x9f\x78\x75\x12\x3d\x10\x58\xd2\x52\xf5\x36\x60\x8a\x17\xbf\x87\xb8\x0e\xcf\xc0\x0d\x68\x05\xe3\x90\x44\xc6\x2e\x2a\x59\xa6\xbe\x21\x5b\x57\x02\x62\x9b\x23\xfd\x88\xd5\xe7\x56\x43\x21\x60\xec\x25\xbf\x0f\x3e\x93\xd9\xe6\x3b\x77\xa6\xad\x19\xfd\xc4\xfd\xd2\x5f\xb8\x11\x4a\x44\x82\x05\x9b\xe1\x78\xf3\x6a\x56\xe0\x44\x05\x88\x28\xce\x1e\x73\xa7\x77\xe7\x8c\x43\x9a\x06\x96\xdc\x23\x5a\x14\xcc\x89\x29\x26\x13\x9d\x5b\x67\x6a\xe7\x39\x56\x89\xe7\x66\x04\x14\xc1\x6e\x23\xfc\xc7\xe5\x2f\x9f\x41\x02\x3b\x8b\xa1\xcf\xd8\xef\xd8\x1a\xaa\xfa\x31\x62\x3a\x00\x2a\x0d\x35\x0d\x2b\x33\x80\x3a\x58\x80\x15\x1a\xe9\xb4\x82\x07\x0d\x07\x61\xc2\x93\x7b\x3e\x74\xc7\x7e\x20\x72\xb3\x33\x50\xaa\xdf\x81\x8e\xe1\x61\x39\xf1\x00\xfc\x5e\xc7\xb2\xf7\x7b\x09\x28\x4f\x51\x3f\x86\x84\xcc\xca\xc5\xdc\x42\xab\xf0\xeb\xfc\x24\x57\x55\x5e\x28\x58\xbd\xaf\xfc\xf1\x63\x20\x41\x5d\xea\xa9\xfa\x12\x92\x9e\x9d\x49\xf4\x07\xa7\x3e\x07\xa8\xc2\xcb\x34\xc5\xda\xbd\x5f\x7c\xc6\xe7\x3b\xac\x52\x11\x8f\x58\xdd\x55\xaf\xdb\xee\xcf\xbe\x8e\xfc\x67\xfe\xa5\x86\x17\x98\x1c\x8f\x45\xea\x6e\xf0\x2c\xd6\xab\x87\xda\xf0\xb9\xc6\x3e\xba\x6b\xe9\x1d\xfb\x43\x19\xd5\xc9\x85\x93\x62\xe0\x8f\xfe\xc1\xc7\x6d\x40\x2a\xc1\x7d\x05\x05\x92\x46\x28\x03\xe6\x5a\x3d\x54\xe9\x44\x9e\xf8\x66\x17\x38\x8f\x6d\x03\xa0\xe3\x53\x23\x64\xf0\x7e\x6f\x6e\x9d\x57\x05\xc5\xb6\xee\x70\xa9\x6c\xf6\x56\x4e\x97\xde\x8a\xaf\xf0\xd4\xa7\x4b\x2d\xe5\xc5\x3b\xe0\xaf\xae\x4d\x95\x1e\x3e\xed\x81\x14\x56\x73\x6f\x6e\x6d\xf0\xdd\xf6\x60\xed\x89\x98\xc8\x92\x72\x79\xb7\x13\xd0\xed\x97\x37\x18\xf8\xfe\xd6\xbe\xeb\x6f\xaf\x3f\xf8\xc9\x02\x7e\xed\xee\x87\xfa\xa4\x2f\xed\x78\x60\xee\x73\x6f\xd7\xf9\x5c\x91\x4a\xdb\xed\x52\xae\xcd\x68\xca\x0b\x3b\x42\x26\x88\xdd\xef\xe3\x8e\x3f\xbd\xf6\x6a\xb7\x66\x4e\xde\xc6\xc8\x3b\xfc\xf2\x06\x03\xd7\x26\x01\x35\x7e\x67\xe3\x7d\xfa\x07\xdf\xee\x65\x98\x6f\xd7\x3d\xd4\x77\x90\x52\xba\x93\x69\x7d\xea\xa7\xd6\x9d\xd0\x27\x7e\xef\xed\xda\x97\x53\xe2\xac\xa5\x01\xf2\x06\xed\xfe\x98\x24\x5a\xe7\xa9\x07\x69\xdb\xe9\xf5\xd0\xed\x87\xd7\x1d\x76\x1a\x88\x6a\xf7\x20\x8d\x3a\xfc\xf6\xba\xc3\x06\x13\x7e\x0f\xbb\xac\xd4\x62\x77\xf8\xd1\x41\xa6\x1f\x7d\x2d\x48\x3f\x42\x07\xef\x61\xbd\xe5\x98\x0f\xc5\x44\x67\x32\xd9\xc7\x6e\xf3\x98\x88\xab\xe8\xfb\xbb\x3e\xde\x5d\x7e\x76\xdd\x85\x57\x3a\x5d\xce\x5e\xbf\xa5\x99\xee\xe4\xb3\xeb\x0e\x16\x37\xd6\x0e\x3f\x98\xdf\xf1\xa4\xbf\x3f\xb5\x72\x1b\x9f\x5f\x7b\xa9\xb7\xd1\x89\x75\xd7\xc1\x24\x23\x91\x16\xd9\xae\x0f\x76\x97\x9f\x5d\x7b\xde\xbb\xfc\xf8\xda\xf3\x2d\x80\xe2\xbc\x03\xe9\xb9\xfe\xb0\xad\xce\xf9\xb0\x83\xcb\x65\x1f\xdf\xdc\xdf\x68\x67\x57\xd8\xff\xab\x5d\x5e\x5d\x63\xac\x61\x71\xd8\xa4\xfa\x58\x95\x2a\x61\xa4\xb3\x94\x95\xea\x0f\x93\xaa\x04\x10\xf5\x9d\xc5\x1a\xf8\x1b\xcd\x02\x13\x61\x0f\x5d\xfc\x81\xef\x09\xc3\x54\x23\x6e\x58\xed\x23\xdc\x40\x22\x1b\x24\x8d\x48\xc5\xa6\xba\xc8\x63\xd3\xbd\x6a\xf1\x05\x70\x69\x60\x16\x49\x88\x87\xf8\xc7\x63\xcd\x04\x3e\xd3\x67\xff\xa1\x0b\xc4\x89\x0c\x90\x60\xe8\xb8\x11\x39\x3e\x1f\x88\x5c\x27\x59\x31\x94\x98\xa6\x8e\x9d\x7f\xf5\x8a\x7d\x0a\x6d\xf9\xe0\xd6\x3b\xec\xd9\x2f\xd3\xcb\xab\x4f\xfe\xb3\xf8\x15\xf6\xcf\x5b\x75\x6b\xc3\xf4\xde\x4c\x27\x02\x18\x50\xfe\xf6\xdf\x46\xab\x77\xb7\x67\x3d\xa9\x32\xa9\xc4\xed\xd9\xdf\xdc\x63\xbf\x4c\xaf\xf0\x5b\xe1\x79\xdf\x54\x78\x7a\xec\x7f\x87\xc7\xff\x85\x9f\xc4\xbf\x5c\xd6\x3e\x77\x89\x89\x72\x21\x23\x3e\xbc\xce\xf1\xcf\xf8\xb6\x1f\xc8\xc7\x6f\x3b\x19\x48\x6d\x2d\xb7\x38\x9c\x2f\x98\xa7\xf7\x28\x73\x81\xa1\x78\xc8\x7c\x84\x84\xa5\x4c\xeb\x7b\xc8\xc4\xb0\x23\x24\xec\xbd\xc7\xfd\xf7\x0e\x3f\x72\x0b\xa7\xed\xf6\xec\xdd\xed\x59\x65\xf0\xb7\x67\x3d\xfc\xb1\x2c\x0f\x82\x47\x1e\xde\xc4\x5f\xca\x51\x84\x96\xaa\x6d\xf9\xf1\x84\xa7\x6d\xa5\xdb\xef\x6e\xcf\x06\x5a\xfb\x5f\xfe\xd5\xf3\x83\xb8\xd6\x98\x6f\xe5\xe9\x28\xfe\x2f\xfb\x20\xb0\xca\x05\x52\x0f\x21\x05\xc9\x8d\x9f\xe9\x9c\x4d\xf9\x18\x80\xcc\x0b\xe5\x83\xb8\x21\x29\x0c\xd2\x3c\x43\x99\x08\xe0\xb9\xd7\xce\x4b\x75\x75\xfb\xec\x06\x41\x6f\xa0\x65\x08\xb3\xf3\x47\x9c\x35\x8f\x72\x05\x1c\x34\x88\xa0\xa5\xb4\x65\x85\x72\x3b\x25\xd0\x4b\x21\xbb\xae\x15\x00\x36\x0f\x35\x20\x93\x29\x7b\x81\x5c\xb5\x93\xfb\xe1\x2b\x2c\x68\x72\xd3\xf6\xb2\x04\x96\x9f\x3b\x88\x00\xd9\x8f\x3b\x25\xec\xc3\x73\x13\x2a\xfe\xaf\x93\x91\x18\x23\x2c\x6b\xd9\x1a\x1b\x14\x2a\xb1\xfe\x8e\x31\x96\x43\xbd\x2b\x5e\x1d\xb0\xd8\xd8\xcb\x72\x07\x78\x26\x1d\xa9\x6a\xb7\x4a\x8f\xd9\x22\xf7\xc4\xa6\x65\xf7\x42\x64\x3c\x80\x02\x4d\x27\x21\x2b\xcd\xea\x3c\x3e\x0c\x8f\x86\x39\x7c\x71\xf3\xe5\xc3\x97\x77\x01\xa4\x3d\xe1\x06\x20\x82\xe6\x50\xbb\xb1\xf6\x2b\xf0\xc1\xfa\x86\xe3\x19\xf9\xcd\xff\x7d\x06\xe5\x2a\x09\x60\x38\xbe\x07\x22\xed\xbf\x9c\x0f\x93\xaf\x93\x58\x50\x58\x99\xf5\xa5\xb2\xc6\xe6\xfd\x4f\xca\x7e\xc9\x91\x3e\x74\xc9\x7d\x5f\x79\xca\x73\xb2\x40\x5d\x74\x80\x4b\x82\x6b\x9f\x2b\x06\x69\x20\x0c\xc1\xa4\xe1\xe1\x3e\x63\xbf\x23\x79\x31\x4e\x3e\xac\x85\xce\x31\xcd\xc0\x6f\x5a\x48\x3d\x00\xc8\x46\x55\xf9\x0b\x60\xd1\x4e\x02\x5e\xb7\x06\xa6\x65\x53\x8c\x45\x00\x72\x52\x3e\x48\x1c\xb2\x5c\x01\x7c\x05\xe9\x8c\x9d\x1c\x02\xca\xa8\x41\x9d\x68\x00\x3e\x8e\x42\x26\xf6\x9c\x27\x50\x9d\xc4\x3d\x60\x63\xee\x51\x52\x1b\x93\x14\xa4\xb2\x17\x3a\xbf\x98\xe1\xe9\xdf\x28\x51\x21\x90\x00\x7e\x52\x03\xbd\x74\xda\x07\xba\x44\x46\xf1\x2f\x21\x52\x76\xcc\xed\xec\x43\x22\xcf\xa3\x38\xcf\x32\xf6\xc8\x7d\x09\xb0\x34\x21\xd7\x0a\x29\x61\x2b\x8f\xaf\xce\x5d\xb8\x2b\x64\x96\x7e\xe0\xb6\x7d\xf0\xbc\x54\x4a\xce\x12\x3d\x9e\xc8\x06\x90\x8b\x56\xa8\xb6\xd2\xbe\xd7\xe3\xb1\x9c\xcb\x9b\x68\xf9\xf2\x4d\x2e\xc4\xb5\xdd\xb0\xe3\x43\x69\x17\xd4\x7f\xb6\x7a\x5b\x3f\xe1\xe5\x31\xff\x6f\xbd\xd1\x84\x8d\xa5\xda\xec\xc5\x49\xc6\xad\xdb\x12\x5d\xa7\x47\xe0\x48\xe6\x7a\xd8\x3c\xcd\x8d\x2b\xbf\x68\x45\x7b\x4d\xfb\xb3\x71\x01\x9a\x36\x63\xd3\xd0\x83\x7e\xbc\xce\x55\x7a\x5f\xdc\x89\x0b\x3e\x1c\xe6\x62\xc8\xad\xce\xcb\xa4\xa3\xd9\x00\xee\xc3\x9b\xfe\xe5\xd5\xa7\x6b\xc4\xec\x5d\x72\xc2\xcb\x87\x66\x92\x90\x30\xb3\x7b\x0e\x6c\xed\xcf\xce\x6c\xf8\x6b\xa0\x10\xad\x21\xa1\xde\x06\x73\xa0\x0f\xb6\xc5\xed\x19\x15\x3d\x1f\x74\xd1\x33\xd5\xb6\xee\xa9\xb6\xb5\xf3\x32\xd2\x0a\xfd\x65\xe3\x27\xcd\x44\x24\x6b\x7d\x6e\xb3\x6b\xe6\xda\x7d\xa6\xb7\x64\x3b\xb9\x07\x2a\xa4\x52\x95\xfa\x10\x60\x93\xd3\x01\xb6\x1f\x30\x87\x61\x8d\xfc\x5f\x3c\x77\x02\x5e\x4a\xeb\x54\x5a\x6e\x63\x94\x0d\xa5\x85\xcd\x05\x9d\x71\xa4\xa9\xc8\x25\xe2\x12\x36\xd4\xfb\x5d\x5e\x7d\x9a\x1f\xd8\x9c\xb8\xdb\x5e\x3e\xdf\x3a\xa9\x3f\x15\x91\xd2\xca\xeb\xb5\xcc\x05\xb4\xd9\xec\xbf\x0f\x78\x43\xad\x64\x5a\x7c\x3a\xe6\x60\x9b\x7a\x0a\x29\xce\x7f\x90\x80\x48\xfb\x55\x0a\x3b\xb8\x8d\x56\x0b\xb1\x8c\x1b\x7b\x93\x73\x65\xe0\x53\x37\x3b\x26\x21\xfe\xcc\x8d\xc5\x3c\x67\x8f\x08\xec\x47\x6c\x63\x8f\x02\xec\x9d\x56\xb1\xac\x01\x20\x12\x20\xd3\x75\x11\xa3\x75\xab\xc2\xc0\xbf\xd4\xcb\x02\xfd\x4b\x55\x0a\x8e\x58\x99\x04\xdb\x3d\x83\xbe\xc6\x8e\x6d\xab\xe2\xef\x37\x00\xe4\xec\xb9\x01\x5f\x3c\xea\x3c\xed\x95\xb2\x21\x60\x3e\x04\x82\xa2\x38\x5f\xe7\xa6\x83\xde\xad\x53\xee\x2d\xcd\x1c\x40\x41\xa5\x3b\x20\xe4\x9c\x84\xbb\x01\x28\xbe\x9f\x78\x66\x44\x8f\x79\x0b\x7d\x13\x6a\xec\xd5\xe4\xf2\x55\x5a\xf9\x50\x1b\x57\xef\xd3\xa6\xc5\x07\xed\x52\x99\xfd\xe4\xed\x4e\x2d\xfe\x2c\xcd\xb2\xd4\xfc\xfa\x83\xa8\x06\x65\x1e\x5c\xbc\x72\x69\x10\xc2\xcf\x31\x28\xbb\x4d\xf5\x8a\x1b\x15\x31\x6e\x68\x81\x55\xbe\xb0\x76\x45\x23\x29\xea\xa7\xa2\xa8\x47\xbc\x97\xb5\x2f\x4b\xdc\xaa\xab\xee\xc6\xbd\xab\x85\x70\xa5\xee\x49\x35\xbc\xae\x5b\x39\x8b\xaf\xf3\x6e\xcc\x10\x4f\xea\x0c\xdb\x16\xf8\xd0\xb0\xb0\x0d\x4b\x30\x01\x42\x7a\xaa\x0b\x28\x5b\x0b\x5c\x7f\xa9\x44\x54\xdf\x4a\x0a\xa2\xbb\xd3\xf1\x9f\xed\x5c\xa3\x09\xff\xb1\x50\x69\xb6\x4a\x94\xbf\xbf\xc4\xc7\xf0\x4a\xb8\xfa\xf8\x0b\x00\x83\xa4\x22\x65\xef\x2f\xd9\x1d\xfe\x54\x09\x56\x54\xc8\xa4\x3c\xdf\x9c\xa8\x5b\x26\xe7\x08\x2c\x08\x00\x24\x65\xe7\x01\x20\xa1\x50\x95\xda\x53\xcf\x8b\x6a\xf3\xc2\x58\x96\x6b\x6d\x4d\x00\xae\x28\xc9\xe4\xdd\x8c\xb8\xaf\x2d\xac\xe5\xbc\x9b\x5a\xb1\xfe\x69\x6d\x53\xf6\x0d\xce\xab\xa0\xe2\xb8\xd1\x61\x0d\x38\xb8\xde\x2b\xe8\x89\x80\x78\xb8\xc1\x85\x01\xad\x5d\xe5\x52\xe7\xd2\x4e\x7f\x91\x4a\x8e\x8b\x39\x07\x67\x53\x8f\xaa\xaf\xa8\x62\x1c\x3a\x38\xf1\x7f\xc6\xae\x61\x57\xbd\x10\x07\xc6\x07\x6e\x59\x26\xb8\xb1\x7d\xf6\x17\x39\x1c\x89\xbc\x7c\x61\x2c\xb8\xaa\x14\x41\x0e\xc3\xb0\x27\x80\xdf\x9b\xd7\x79\x25\xb4\x1b\x71\xa6\x1f\xab\x0d\x68\xe5\xa4\xf9\xaf\x3a\xf8\xef\xb1\x26\x2e\x04\xd0\xa3\xde\x81\x0d\x8f\xe5\x70\x14\x88\xeb\xa6\x50\xb6\xc8\x46\xd8\xa1\xc6\xd1\x79\x46\x08\x53\x00\x1c\x43\x20\x93\x1a\xe9\x2c\x74\x74\x28\xc0\x03\x39\xaa\x0f\x2a\x50\x25\xca\x31\xcf\xa7\xcc\xe8\x1c\x34\xb2\x3b\x6e\x80\x48\x6f\xfe\x53\xe3\x02\xb8\x42\x53\xe1\x86\x0b\x6d\x19\x1b\x28\xe8\xac\x86\x01\x1b\xcb\x5e\xbc\x7d\x1d\xea\x05\xdf\xbc\x7e\x19\x88\xb0\x9c\xc6\xdb\xf8\x15\xac\x49\x9e\x8c\xf8\x9d\x00\x56\x25\x20\x1d\xe5\xb9\x34\x25\x8e\x88\xaa\x00\x3b\x07\x15\x8c\xbd\x78\x78\xd3\xbf\xe3\x79\xf8\xd4\xc3\x9b\xfe\x40\xeb\x97\xec\x77\x71\x9e\x96\xc5\x87\x33\xb1\xe1\x77\xec\x0f\xfe\xd2\x65\x2f\x3c\x86\x5d\x99\xd8\xf0\xd2\xad\xfe\x9b\x3f\xbd\x7e\xfd\x1a\xae\xa9\x2b\xce\xaf\x85\x61\x2f\xbe\x4c\x84\xba\x1e\xc9\x81\xed\xb1\x0f\x42\xba\xa7\x80\x35\x28\x56\x37\xfa\x90\xaa\x0f\x1e\xbe\x7d\xfd\xfa\xb5\x59\x74\x0a\x37\xad\xa8\x96\xca\x88\xa4\xc8\xc5\xf5\xbd\x9c\xdc\x7c\xbe\xfe\xab\xbb\xdf\xa6\xab\x0a\xd8\x9b\xde\x09\xd7\xa5\x61\x37\x9f\xaf\x17\xde\x99\x9e\x58\x6b\xfe\x9a\xae\x9c\xe7\x92\xba\xcd\xd8\x5c\xab\x61\x06\x6d\x27\xba\xc8\x39\x30\xa6\x40\x1e\x46\x89\xd8\x0a\x73\x53\xde\xa0\x48\x4d\xb9\x09\xb6\xb9\x99\xf3\xbe\xb3\x4e\xd5\x4b\x2f\xce\x4a\xb2\x83\xa5\x3e\x29\x6f\xae\x78\x10\xd3\x00\xea\x5e\xe1\x5c\x71\xbf\x46\x28\xcb\xf2\xee\xef\x33\xf6\xc9\x57\xfd\x97\xd3\x0c\xd4\x12\x4e\xdc\xb1\x3f\xfe\xf1\xfb\xc0\x2f\x5c\xf9\x04\x30\x2e\x23\xda\xac\xbf\x8b\x04\x1b\x71\x95\x66\x81\xed\xb7\x76\x03\x87\x98\xba\x34\xf8\x90\x48\x41\x0a\x67\xd9\x14\x0f\x5d\x6d\x25\x05\x20\xae\x7a\xee\x10\x39\x9e\xb8\xd5\x14\x99\x9b\xae\x38\x1a\xe5\x76\x71\xe6\xdb\xca\x59\x32\xe2\x52\xf9\xad\x1f\xc1\xa9\x17\xf8\x3d\x1e\x5a\x19\x68\x7f\x2d\x3b\x1c\x06\x52\xf2\xe3\xcd\xc8\x91\x3e\xab\x13\xce\x63\xee\xc6\xfa\xd2\xc5\x7f\x20\xdc\x71\xed\x7a\x18\x9e\x0e\x28\xfd\xd8\xdf\x48\x3a\x1c\x2e\xf2\xea\x00\xa4\x32\x32\x85\x2b\xcc\xa9\xf3\xb0\x3e\x7d\xc6\x02\x2f\xd8\x10\x92\x01\x72\xc4\xd3\xfa\x87\xc8\xf5\x8a\x7b\x79\xa6\x1f\xf3\x57\xf2\xe2\xbb\xf8\x5a\x02\x5c\x97\x3d\x37\x95\x3e\x71\xec\x91\xe7\xed\xc5\xeb\xdc\xc3\x2c\x98\x31\xcf\xb2\x1e\x9b\xe4\xfa\x8e\xdf\x65\xd3\x70\xcb\xbd\x79\x6d\xc0\xea\x80\xa4\x08\x3d\x60\xe2\xef\x45\x85\x80\xc9\x8b\x17\x29\x3c\x51\x6d\xf8\xbb\x37\xa3\x66\xd5\x23\x77\xdf\x17\x1e\x0f\xc3\xf3\x6b\x63\xd7\x78\x98\x29\x7f\x16\x66\xda\x91\x86\xdd\x9e\xc1\xd9\x76\x57\xfb\xed\x59\xc9\x74\x0b\x33\x86\x30\xcc\x4a\xab\xfa\x53\x33\xad\x98\x9e\x57\xda\xdc\xad\x1e\xe6\x31\x13\xdf\x64\xa2\x87\x39\x9f\x8c\x02\xcf\xdf\xed\xd9\xcf\xf3\x6d\x00\x3a\x6d\x6e\x83\x0e\x7b\x7b\xf6\xe0\x7a\x81\x1c\x64\xb9\x3b\xf8\x9e\x3c\x06\x68\xca\xfc\xc4\xbe\x40\xa2\x87\xff\xd6\x51\xf6\xbf\xf4\xaf\x54\x58\x70\xd1\x89\x05\xa3\xbc\x3d\x03\xe1\x18\x50\x0a\xef\x84\x75\xff\x06\xf2\x6b\x74\x36\xd6\x1b\x96\xaa\xd2\x30\xec\x23\x23\xa0\x33\x06\xf4\x68\x9f\x71\x74\x37\x65\x7f\xbe\x64\xb7\xc5\xeb\xd7\xdf\x0b\xe6\x9a\x0c\xff\x86\x6f\x01\x14\x47\x2e\xdc\x23\x70\xb3\x85\x19\x83\x61\x2a\x1d\x18\x8f\x41\xdb\xe0\x06\xdf\xd7\x39\xbe\xfb\x32\x52\x5e\x29\x50\x88\x50\x96\xab\x61\x7d\xc8\x7e\xc4\xb5\xde\x22\x1d\x20\x9e\xe8\xd0\xdb\xe0\x1a\x0a\xf3\xfd\x8e\x3d\xbc\x79\xdd\x63\x0f\x6f\x7b\xec\xe1\x8d\xfb\x7f\x58\xcb\xe9\xfe\xf5\xda\xfd\xeb\xfb\x1e\x7b\xf8\x1e\x72\x26\xdd\x9f\x7c\x21\x13\x3c\x07\xff\x7c\xdb\x63\x03\xad\xdf\xe0\xff\xff\xba\x1b\xe0\x93\x96\xb6\x66\xa3\x1e\xbb\xe4\x26\xda\x9d\xc7\x6e\x25\x52\xf7\xec\xa3\xeb\xc7\x60\x56\x9b\x60\x4d\xcc\x08\x4d\x7d\x79\xef\xd1\xfe\x82\x6c\x2d\x83\x0e\x13\xe9\x3b\xd9\x01\xa8\xd6\x53\xc3\x28\x2d\x1d\x53\xb5\x9f\x56\x71\xf0\xcd\x78\x76\xd7\x27\xe1\x5b\x15\xfe\x7a\xea\x8e\x9a\xd3\x9c\x96\x73\x1f\x54\x1f\x85\x5c\xb3\x39\x1d\x2a\xac\xa7\xd3\x43\xe6\xeb\x8e\x16\xee\xa5\xb6\x44\x31\x5e\xcf\xa8\xda\x16\xa6\x29\x0e\xb7\x1d\xb6\xd4\xca\xd7\xf1\x0f\x4f\xed\x82\x53\x1c\xd7\xc6\xb4\x02\x6d\xb3\xc2\x4b\x2f\x23\x04\xa9\x36\xa8\xf6\x8b\xbb\x91\xd6\xf7\x91\xa9\xc9\xad\x8b\xd3\x4e\x9d\xba\x79\xc7\x93\xfb\x47\x9e\xa7\x78\xc9\x5b\x79\x27\x33\xb0\x29\xff\xe6\x5a\xfd\x5b\x05\x0a\x8b\x7b\x96\x41\xf8\x5a\x90\x56\x6f\x2e\xfe\xd7\xbf\xfd\xdb\xf7\xff\xe6\x71\x58\x8d\x7c\x10\xb3\xb0\x5e\x5d\x5d\xc8\xdd\xee\x73\x90\x2e\x94\x07\x44\xa1\x11\xca\x03\x7a\x16\xe1\x85\x7d\xe6\x01\xcd\xde\x35\x27\x9c\x0c\x34\x37\x54\xca\x08\x5a\x9e\x11\xb4\x4e\x65\xd8\x13\xd6\x81\x72\x83\x28\x37\x88\x72\x83\x28\x37\xa8\xb3\x0b\x85\x12\x84\x9e\x8f\x16\xbc\x8f\x04\xa1\x39\xfb\xac\xa5\x33\x86\xd4\xf8\x93\x56\xe3\x9f\x7b\x96\xd0\x8e\xd4\x45\xca\x17\xa2\x7c\x21\xca\x17\xa2\x7c\x21\xca\x17\xa2\x7c\xa1\xe7\x90\x2f\x84\xf2\x8f\x92\x86\x28\x69\x68\x45\x0f\x29\x69\x88\x92\x86\x28\x69\x88\x92\x86\xf0\x36\x69\x69\x7a\x1e\x58\xd2\xd0\x82\x18\x0d\x65\x0e\x75\xe2\xa8\x7a\xde\xe9\x43\x0b\x14\x29\xca\x21\xa2\x1c\xa2\x83\xcd\x21\xfa\xce\x3f\x71\x26\xab\x88\x5f\x67\x56\x5a\x70\x0e\x81\xf0\xc7\xf3\xe5\xbf\x5b\x77\xc9\xf5\xdf\xfc\xa9\xff\xbf\xce\x62\x23\x13\x6e\x47\xe5\x36\x3c\x7b\xc5\x27\xf2\x55\x75\xff\x0f\x85\x9d\xbb\xfa\x00\x3c\xad\x26\x33\x20\xe2\x31\xc9\xbc\x65\xf6\xea\xbf\xcd\x2c\xbd\x58\xf5\xd7\x29\x1f\x67\x8b\x7f\x7d\x50\x69\xbf\x42\xa4\x37\xc9\xb5\xd5\x77\xc5\xa0\x9c\xa6\xff\xac\x6c\x9d\x99\x6d\x32\x14\xb6\xa4\xee\xad\x6a\xb5\x55\x5b\xf7\x2c\xf2\x26\x7e\x4a\xfd\x4b\xef\x75\x2e\xca\x40\x4c\xed\xe1\x80\x1b\x77\x10\xc3\x0d\x9c\xbb\x73\x52\xe7\xed\xeb\xd7\xf3\x22\x63\x96\xd2\xed\xe7\x5a\x2f\x18\x82\x02\x8f\x67\xdd\xdd\xec\x89\x2e\xef\xea\x3c\xd6\x9a\xfd\xd7\x42\x01\xf3\xc7\xd7\x6f\x56\xf6\xfe\x37\x15\x50\xa3\x45\x5a\x13\x55\xcd\xf6\x37\x00\x3d\xce\x2d\x1a\x78\x6c\x9b\xa7\xd6\xf2\xe1\xdc\xe3\x89\xce\x2b\xb2\xe8\x3f\xbf\xab\x7e\x31\xc8\x1c\x38\x30\x0f\x6f\x4e\xe5\xcc\x34\x85\xdd\x16\x1c\x98\xbf\xbe\xb9\xbc\xfa\xf4\xb5\xe9\x79\x3a\x33\xeb\x9f\x99\x30\x91\x10\x50\x39\x81\x73\xf3\x5f\xd5\x12\xf1\xe5\x47\xc7\x09\x61\xad\x84\xb2\x98\x1a\x50\x5b\xa9\xf6\x67\xe9\x0f\xaf\xfe\xd0\x6a\xbf\xa3\x9d\x86\x81\x7c\xa7\xba\x00\x37\xf3\xfb\xd0\x85\xb9\x04\xb0\xd9\xcd\xef\x5e\xc7\xdd\xbf\xe4\x9d\x7d\x1d\x80\x85\x2f\xb8\x8f\xfd\x60\x6c\x2e\xf8\xf8\xdf\x1f\xe7\x79\x7a\x5a\xb4\x5d\x7f\xfb\xb0\x4f\x5a\xdf\x6d\x40\x77\xae\x66\x96\xe8\x34\xcf\x56\xe5\x85\x9a\x71\x85\x3c\xcb\x61\xcf\x9e\x2d\x7a\xac\x31\x58\xdc\x1c\x22\x6e\x0e\x06\x2f\x3e\x07\xab\x31\x23\x4a\x55\x77\xc2\x73\x3e\x16\x56\xe4\x66\x71\xac\x7a\x66\xfa\x01\xa7\x17\xf0\xec\x7f\xd4\xfa\x7e\xcc\xf3\xfb\x4a\x36\x02\xec\x53\x64\xde\x35\x3e\x2c\x30\x9d\x08\x76\x7b\xf6\xe3\x97\x2f\x3f\xff\x72\xf9\xf5\xe7\xdb\xb3\x32\xef\x01\x0c\x87\x54\x03\x28\xb5\x1c\x4f\x32\x31\x76\x36\xfb\x5d\x6c\x15\xf2\x22\x86\x0a\x89\xb7\xa5\x61\x83\x8c\x63\x90\xb8\x7c\x04\xfc\x56\xee\x2d\x1f\xd6\x8a\xd1\xd3\x54\x9a\x24\x17\x3e\xd9\xcb\x07\xde\xbc\x81\xe1\x3e\xc7\x8d\xbb\xcd\x66\x1a\xca\x85\x2d\x72\x25\x52\x48\x55\x54\xd3\x60\xfb\x24\x98\xa8\xf3\xc0\xb3\x1e\x53\xc0\x9b\x0c\xee\xb7\x69\x68\xa4\xfc\xae\xf7\x2d\x0a\x70\xbd\x4d\x59\x18\xb3\x67\x22\x4e\x0b\x70\x73\x71\x66\x04\x52\xa4\xa2\xd7\x12\x03\x25\xd0\x29\x9c\xbe\x5e\x95\xf0\xdb\xfd\x0a\x53\x90\x46\x27\xe7\x40\x70\x5b\xe4\x82\x81\xef\x7d\x66\x21\x7c\x4b\x42\x39\xb5\x02\x00\x9b\x63\x1c\x78\x51\xb3\x33\x7e\x10\x58\xe3\xbf\x17\x22\x9f\xf1\x39\x78\x2b\xb9\x69\xf9\x97\x47\x6a\x6a\x3f\x16\x90\x3c\xf8\xc9\x3b\x5b\x6c\x5e\x88\xa6\x43\xbb\x34\x91\x0e\x93\xe6\xac\x54\x85\xf0\x0e\xd1\x8a\xe5\x68\x84\xc5\x00\x15\x32\xb2\x43\x00\x7d\xac\x61\x6d\x4d\x91\xd9\x4a\x72\x4d\x08\x6d\xa0\xbf\x1b\xa6\x06\x93\x79\xca\x40\x02\x66\x86\xa5\xbd\x18\xb9\x75\x2b\xaf\x55\x36\x8d\x41\xab\xd8\x11\x7c\x15\x1a\xe7\x6c\x92\x8b\x07\xe0\x1d\x80\x69\xf4\x9f\xc6\xd3\x80\x6c\xe4\x09\xcf\xfc\x6f\xe5\xf9\x8b\x31\xc7\x10\xa7\xc1\x26\xf5\x20\x7e\xe4\x65\xf0\x9b\x86\xfe\x55\x72\xc5\xf8\x6c\x57\xa4\x3b\x59\x02\x77\x43\x4c\x23\x8b\x5b\x28\x5a\xf5\x73\xaf\xb9\x37\x80\x54\x5e\xe4\xde\x08\x7f\x1c\x09\x70\x22\xa7\x05\x38\x59\xc4\xb7\x89\xf4\xfc\xf7\x2f\x86\x42\x89\x1c\xdc\xd1\x03\xf9\x00\xbf\x0e\xe4\xc0\x0a\xf4\xdb\x16\x56\x98\x97\x08\x25\x9e\x68\x35\x90\xc3\xc2\xbf\x96\x8c\xb8\x1a\x8a\xaa\x17\x01\x37\x67\xfd\x14\xa1\x58\x4b\x83\xe7\xfc\x8f\x6f\x5e\xb3\xa0\xac\x7d\x74\x5d\x10\x29\xd2\xe3\x33\xab\x87\xd8\x41\xff\x64\x1c\x91\xd5\xf7\x42\xc5\x21\xfb\xfc\x29\x25\x04\x38\x8e\x9c\x3e\x23\x8d\x75\x7f\x72\xf7\x34\x44\x06\x20\xda\x96\x0b\xf4\xd8\xdb\x91\x90\x39\xba\x97\x5d\xc3\xba\xb0\xf5\x15\x87\x73\xd4\x67\x5f\xdc\xa7\x1f\xa5\xf1\x64\x05\x81\xe2\x9f\x4f\xc3\x35\x80\x1e\x78\x68\xc7\xdf\x92\x21\x5c\xea\x7b\xe8\x96\x47\x80\x7f\x34\xfe\xdd\x0d\x16\x06\xb7\x72\x5a\xa0\x5d\xe8\x30\x84\xf8\xc2\xe6\x06\x50\xff\x7b\x31\x45\xd0\xff\xf8\x67\x9f\x77\x68\x14\x9f\x98\x91\xb6\x21\xb0\xe1\x2e\x03\x55\x99\x90\xf8\x7c\xdc\xc8\xbe\xfb\x78\x84\x2e\xa2\x1e\x07\x17\xb8\xbb\x39\x3d\xc2\x7d\x8f\x8d\x3d\x3b\x79\xcf\x2d\x7c\x8a\xa4\xe3\x8c\x0f\x30\x76\x15\x28\x10\x66\x26\x03\x63\x3d\xe0\xd5\x49\xf1\xce\x02\x12\x03\xaf\xd6\xf4\x18\x37\xb0\x21\xdd\xff\xe2\xa2\xdc\x8b\x29\x5e\xd8\x65\xc3\xb7\x67\x61\xc8\xb7\x67\x48\x4f\x52\xbb\xeb\xdc\x29\x88\xe9\x42\x78\x41\xa0\xa4\x92\x06\x2e\xa1\x52\x46\xc0\xca\xc1\x06\xf0\xb7\x71\x75\xf6\x70\x12\x60\x0f\x86\x58\x64\x48\x00\xf4\x92\xe3\x6e\x5a\x5d\x31\x77\x5e\xdd\xa7\xc7\xd2\x18\x90\x08\x38\x3d\xa8\xf2\x99\x75\x6f\xde\xb0\xf5\x96\xba\xfa\x3a\xbe\x6d\x2f\x99\x11\x99\x48\x2c\x9c\x33\x38\x1b\xb9\x4c\xf0\x24\x84\xc8\x4b\x1c\x7b\xd8\x15\x38\x07\x32\xc7\xe9\x37\xd1\x15\x08\xe9\xaf\xe2\x41\xe4\x53\xc8\xb9\x58\x77\xf8\xd0\xda\xb5\xef\xcd\xd1\xcc\x41\xc6\xef\x44\xd6\xd9\x1c\x40\x6b\xfb\x98\x83\x4c\x8e\xa5\x4f\xd0\x1e\xf3\x6f\x72\x5c\x8c\x83\x5f\x16\x46\xef\x2d\x10\x9c\x1f\x37\x15\xbe\xde\x11\xe6\x27\xe1\x59\x06\xd7\x30\x08\x62\x08\xb4\x30\xf1\x0d\x2e\xdd\x79\xd5\x09\xe7\xf5\x6f\x61\xaf\xff\xcd\x9f\x61\x2f\x2c\xa0\xbd\x90\x30\x0a\x75\x16\xfe\x00\x46\x3a\x88\x10\x35\x8e\x77\xa9\x01\xd7\xbd\xb3\x56\xa2\xd0\xc5\x5e\x3a\xf5\x40\x94\xb7\xa5\xfb\x34\x8e\xc5\x2d\x93\x53\x52\x2d\x26\x25\x32\x1c\x3b\x0a\x5b\x1c\x9b\x78\x0c\xb1\x78\xbc\xa9\xe0\x26\x73\x17\xdd\x58\x17\xca\x62\x10\xdf\x8d\xf2\x45\x31\x71\x1f\xfb\x87\xc8\x35\xfe\xe5\x65\xb8\xdd\x50\x23\xe4\x70\xa1\x87\xb7\xc3\xde\x81\xc0\xb0\xcc\x2c\x04\x9a\x31\x4a\x96\x46\x15\xc4\xab\x3a\x35\x2d\x04\x33\x8a\x93\x6a\x4d\x41\x45\x46\x41\x22\xa4\x53\x31\xc6\x52\x89\x28\xcd\x6b\x4a\x11\xdc\xa5\xc1\x19\x55\xcf\x4b\x4e\x46\x5a\x1b\x01\xb7\x98\xd5\xe1\x0e\xf5\x6b\xe1\xa6\x85\xe7\xc3\x02\xd4\x76\x0e\x42\x09\x06\x04\x93\xe4\xc6\xe6\xfb\x53\xf3\x73\xe1\xec\x7e\x1a\xb0\xb8\xa5\x4a\x65\x24\xe8\x37\x33\x03\x90\x86\x89\xf1\xc4\x4e\xeb\x8a\x58\xd4\xbe\xb9\x75\x3a\xcb\xb2\x01\x2d\x13\x06\x72\x30\x23\x0a\x50\x7a\xc4\x7d\x39\x2c\x78\xce\x95\x15\xa2\x92\xdf\x17\x56\x2a\x1e\xfb\x47\xa4\x48\x81\x74\xcd\xd0\xf7\x28\xd8\xa2\xca\x67\x35\x93\xc6\x14\xde\x08\x90\x6a\x98\x89\xf2\x84\x44\x2d\x23\x6c\xb8\x0b\xcf\xfc\x61\x9c\xd5\x11\x3f\xb9\x9e\xa4\x0d\x42\x16\x6c\x0c\x53\x88\xb4\x51\xdc\x82\xad\x53\xdc\x19\xf7\xb0\xb2\x71\x04\x69\x34\xeb\x2a\xf9\x5c\x7a\x2c\xac\x1c\x0b\xc3\x62\x66\xa3\x3b\x85\x33\x1a\x55\xa9\x60\xb8\x15\x15\xca\x14\x79\x98\x3e\x1e\x54\x24\x3f\x38\x3f\x6b\x38\x64\x38\x98\xa0\x0c\x61\x5a\x09\x64\x11\x15\xea\x1e\x79\x77\x98\xbb\x36\x59\xc6\xf3\x61\x58\x68\x38\xf1\xd8\x3c\x5a\x64\x46\x08\xd8\x78\x13\x6d\x8c\x74\x1b\x2e\x94\x8e\xb8\x0d\x57\x3d\x5f\x3e\x4f\xbe\xb4\xc9\xe0\x3b\x21\x9f\xa0\x9a\x4a\x52\xcb\x2c\xc4\x5e\x3f\x72\xe3\xcf\x5c\xb4\x3b\x63\x89\x58\x4d\xc3\x41\xbd\x9f\x1b\xb7\xc0\x49\x91\xc1\x17\x65\xb9\x6d\xd6\xbe\xfd\x65\x9d\x5f\xa3\x21\xaa\xd5\xf1\xb5\xff\x69\xc0\xce\xdd\x7b\xe7\x3e\x1d\x03\x66\xa2\xb0\x93\xc2\xfa\xec\x56\x6b\xa7\x6c\x92\xbb\xaf\xaf\x3d\x1a\x7c\x7b\x97\x42\x0c\x88\x8c\xca\xdb\xc6\xab\xd0\x78\xfa\x13\xc8\x62\x32\x23\xfd\x68\xbc\x81\xe2\x37\xac\x4e\x92\x22\x8f\x07\x8b\xdb\x6a\x09\x63\x65\x8f\xf0\xa8\x19\xd6\x65\x7d\x68\x2b\x6a\x91\x77\x62\x28\x95\xf2\x69\x60\x23\x69\xac\xce\xa7\x7d\x36\xd3\x35\x48\x8b\x97\xc6\xbe\x63\x17\xee\x82\x2a\x94\x11\xb6\xb2\x04\x7e\x67\x55\xb6\x12\xb6\x9f\x8b\xb1\xb6\x48\xf8\xc5\x87\xa2\x4c\x07\xfb\x7b\xa1\xf3\x62\x0c\xa5\x84\xe0\x44\xf9\x01\x9b\x85\x24\xaf\xd7\xbe\xdd\x47\x11\xf2\xfa\xfc\x05\x0e\x1c\x66\x8f\x82\x25\x98\x4b\x91\x4d\x31\x09\x5a\x2a\x96\xf0\x64\x24\xe0\x56\x8a\x97\xa3\x6f\x11\xe4\xb7\x86\x94\x2a\x27\xf4\x1a\xbb\x1c\xb2\xa8\xdd\xad\x31\xc8\x85\x81\x0c\xa1\xa1\x7c\x70\x96\xd0\xc3\xba\x9b\x68\x46\x1d\xdf\xe5\x6e\xba\x91\x63\xe1\xee\xeb\x60\xaf\xbb\xf5\x7a\x55\x6e\x26\x7f\x67\xc2\x99\xc5\xd0\x7d\x1a\x0c\xe0\x20\xa6\x61\xcb\xe5\x62\xc8\xf3\x34\x13\xc6\x93\x8b\x4d\x19\x4f\xac\x7c\x80\xa4\xf0\x9c\x49\x15\xfe\x6b\xdd\x99\xb1\xd8\xbd\x6b\xc8\xad\x5e\xe0\xa2\xd9\xd2\xad\xf1\x3b\xda\x4d\x3a\x2f\x4f\x12\x66\x88\x86\x3a\xe1\xb4\x0c\x78\x81\x84\xf0\x3b\xce\x8e\xc4\x18\x65\x09\x7a\xbd\x61\x42\xd2\xb4\xe7\x6f\xeb\x9e\x7f\x76\x8c\x59\x7b\xb6\x62\x49\xb1\x6b\x9f\x0c\x3f\xb3\x1f\xd6\x9d\xb4\x06\x27\xfd\xc6\xee\x2c\xff\xaf\xff\x6c\x17\x7c\x79\xf5\x4f\xd7\x87\x7f\x6d\x35\x06\x03\xe7\xbf\xee\xfe\x69\x1f\x81\x71\x2f\x1f\x6c\x04\xe6\x38\x03\x23\xcf\x31\x28\xe2\x36\xf5\xe9\xc5\x44\xaa\x39\x61\x4b\x3b\x81\x37\xd0\x84\xdb\x51\xf3\x05\x04\xff\x5b\xfb\xa5\x92\x2c\xea\xee\x97\x1d\x0a\xb8\x63\x51\xfe\x56\x5c\xb4\x6a\x20\x87\x63\x3e\xd9\x45\x78\x3b\xf7\xca\xe4\x7c\x9c\xdb\x75\xe2\x17\x3e\x69\x19\xe1\xf6\x4f\xff\xa4\xf3\xcb\x2c\x8b\x29\x80\x07\x71\xd3\x52\xac\x7b\xf6\x4a\xf7\x8b\x45\x51\xee\x86\xc7\x3a\xb8\xd1\xe7\x4f\x0e\xc5\xb7\x29\xbe\x4d\xf1\x6d\x8a\x6f\x53\x7c\x9b\xe2\xdb\x14\xdf\xa6\xf8\x36\xc5\xb7\x29\xbe\x4d\xf1\x6d\x8a\x6f\x53\x7c\x9b\xe2\xdb\x14\xdf\xa6\xf8\xf6\x1a\xd7\xfe\xb1\xb8\x38\x29\xbe\x4d\xf1\x6d\x8a\x6f\x33\x8a\x6f\x1f\x4b\x7c\x3b\x40\x97\xee\x33\xea\xf2\x31\xf6\xa1\x4d\xd4\x25\x3e\x4d\x51\x97\xd9\x59\x3f\xbc\xa8\x4b\x5c\x2c\x8a\xba\x34\x3c\xf6\xe4\xa8\x4b\xd3\xc9\xa1\xa8\x0b\x45\x5d\x28\xea\x42\x51\x17\x8a\xba\x50\xd4\x85\xa2\x2e\x14\x75\xa1\xa8\x0b\x45\x5d\x28\xea\x42\x51\x17\x8a\xba\x50\xd4\x85\xa2\x2e\x14\x75\x59\xe3\xda\xa7\xa8\x0b\x45\x5d\x28\xea\xd2\xbc\x9b\x28\xea\xb2\xf0\x9c\x51\xd4\x65\x65\xd4\x05\x3c\xa4\xfb\x0c\xb9\xb8\x0e\xb4\x0b\xb7\xb8\x27\x29\xd4\x32\x3b\xdb\x07\x18\x6a\x71\x0b\x45\x61\x96\x86\xc7\x9e\x1e\x66\x99\x39\x2d\x14\x62\xa1\x10\x0b\x85\x58\x28\xc4\x42\x21\x16\x0a\xb1\x50\x88\x85\x42\x2c\x14\x62\xa1\x10\x0b\x85\x58\x28\xc4\x42\x21\x16\x0a\xb1\x50\x88\x85\x42\x2c\x6b\x5c\xfb\x14\x62\xa1\x10\x0b\x85\x58\x9a\x77\x13\x85\x58\x16\x9e\x33\x0a\xb1\xac\x0a\xb1\xc0\xb6\xc8\x61\x72\xf6\x18\x67\xf9\xec\x7a\xf1\xd5\xf5\xa2\x55\xb0\xa5\x7c\x9c\x22\x2e\xb3\xf3\x7e\x78\x11\x97\x72\xb5\x28\xec\xd2\xf0\xd8\x93\xc3\x2e\x8d\x87\x87\x62\x2f\x14\x7b\xa1\xd8\x0b\xc5\x5e\x28\xf6\x42\xb1\x17\x8a\xbd\x50\xec\x85\x62\x2f\x14\x7b\xa1\xd8\x0b\xc5\x5e\x28\xf6\x42\xb1\x17\x8a\xbd\x50\xec\x65\x8d\x6b\x9f\x62\x2f\x14\x7b\xa1\xd8\x4b\xf3\x6e\xa2\xd8\xcb\xc2\x73\x46\xb1\x97\x55\xb1\x17\x55\x86\x2d\xf6\x17\x7a\x89\xb1\x93\x56\x91\x97\xc6\xa7\x17\xf8\x8f\xd9\x0a\xef\x3d\xf9\x90\x4f\xd8\x87\xbc\xe4\xa0\xad\xe1\x47\x5e\x71\xf4\x96\x1f\xbe\x99\x88\xd2\xf2\xcd\x48\x1e\x65\xf2\x28\x93\x47\x99\x3c\xca\xa7\xe6\x51\x6e\x77\x0f\x37\x7a\x95\x97\x2b\xcf\x1d\xde\xbd\x3b\xf3\x2f\xb7\x9b\x8c\xc5\x3e\xe6\xe3\x98\x91\x75\xbc\xcd\xed\x66\x64\xb1\xc7\x79\x67\x33\x42\xbe\x67\xf2\x3d\x93\xef\x99\x7c\xcf\xe4\x7b\xde\x9a\xef\xb9\xa5\x2c\x98\xf3\x3f\xaf\xf0\x25\x75\x28\x04\xc8\x77\x7b\x64\xbe\xdb\x76\x5b\x6a\x99\xff\x76\x67\x0a\xc6\x5e\x3d\xb9\xed\xe6\x69\x89\x37\x77\x87\x67\xf0\x40\xfd\xba\xed\xa6\x70\xde\xb7\xfb\x54\x17\x53\xa3\x07\x96\x52\xcf\x0f\x23\xf5\x3c\xba\xab\x29\xf3\xbc\xe1\xb1\x27\x67\x9e\x37\x45\x03\xb6\x9c\x78\x7e\x2c\xc1\xe8\xef\x66\x96\xe8\x6c\xa2\x4d\xc7\x71\x1d\xd4\xc4\x19\x6f\x15\xc2\xc1\x87\x3b\x08\xe2\xe0\x2c\xde\xe9\x74\xe1\x1d\xdb\xf4\x9b\x53\xe4\x65\x2e\x52\x3f\x4f\x5b\x3c\xe9\x2d\x4f\x79\x0b\x45\xd3\x6b\xd8\x3d\x26\x55\xea\x2e\xc7\xa0\x50\xd6\xbc\x6d\xd5\x58\xd0\x9d\x60\x13\xb7\xf5\x9d\x31\xdd\x67\x97\x8a\x49\x85\xbe\x6e\x9d\xb3\x42\x45\x77\x79\xca\xd2\x7c\xfa\xb5\x50\x2c\x95\xb9\x70\xea\x80\x88\x3e\x58\xd0\xb0\x9c\x3d\xe4\x9d\xd0\xe1\x46\xf5\x2e\x3f\x36\x28\x72\x30\x9e\x27\xb9\x4e\x84\x31\x5e\x09\xad\xf8\x00\xfa\xec\xaf\xf0\x45\x70\x4a\x80\xa5\xe1\x34\xd0\xcb\x2c\x7b\x07\x66\x49\x9a\x4f\x59\x5e\x28\x66\x2c\x77\x92\x3b\xd8\x62\xbe\x39\x91\x6e\x20\x51\x71\x2c\xfb\xd1\xd9\xc0\xa2\xfe\x85\x2b\x3e\x14\x39\xfa\x86\x5c\xaf\x9c\x61\xae\x13\x09\xc6\x4e\xf4\xc2\x70\x70\xa6\xe9\x9c\x39\x5b\xd8\x4e\xa3\xf5\x37\xe6\xf7\x6e\x16\xed\x48\x18\x11\x34\x1a\xa7\xeb\x85\xc8\x05\x38\xef\xef\x04\x03\x8d\x0e\x3c\x2e\x3a\x67\x6f\xde\xfe\xc9\x3d\x9b\xf3\x04\x42\x2c\x99\x56\x43\xd4\x5f\xc0\x2b\xe2\xcc\x57\x2e\x15\xde\x42\xe0\x75\x28\x9f\x05\xb7\xb3\x0f\x00\xb1\xbb\x29\x03\x11\xf0\xee\xd5\xab\xa1\xce\xb8\x1a\xf6\x75\x3e\x7c\x35\xb9\x1f\xbe\x2a\x94\x4c\x74\x2a\x5e\xfd\x8f\x4f\xe6\xca\xb5\xb2\xb1\x1b\xd3\x4f\x4e\x97\xcb\x73\x50\x0a\xcf\xb1\xe9\x21\x6d\x75\x90\xb7\x2d\x74\x90\xf7\xe8\x89\x39\x8c\xee\xbe\x5d\xd9\xdd\xcb\x24\x11\x93\x03\xe9\xef\x29\xa9\x78\xa0\x58\x1c\x9a\x8a\xf7\x1d\x5b\x9a\xef\xf2\xea\x9f\xf1\xdf\xff\x7a\x75\xe7\xe4\xab\x1a\xd6\x92\x60\x36\xd0\x0c\x49\x66\xb7\x52\x72\x1b\xe4\xf5\x96\x73\xe4\x9e\xa9\x94\x6e\x59\xcc\xd2\x24\xa1\xb7\xbc\x20\xde\x95\x8c\xab\xa0\x52\xe6\xee\x39\x66\x12\x3d\x11\x3d\x66\x8a\x04\xfc\x79\xe0\x06\x13\x7c\x8c\x3e\x9c\x49\xae\xc1\x75\xdd\x34\xc0\x09\xb7\xa3\xe6\xf1\xa9\xe6\xbb\x63\x89\x2d\xb0\xe5\x81\x93\xf1\x38\x6f\x3c\xfe\x88\xb7\xef\xba\xa6\x63\xda\xf0\xde\x91\x9b\x90\x61\x44\x8b\x75\x08\x52\x7d\xb7\x31\xab\x07\xa4\xf8\xae\xdd\xd9\xbd\xaa\xbd\x6b\xf6\x96\x94\xde\xf8\xf8\x0a\xa5\x77\xfe\x6e\xeb\x58\xe5\xc5\xcc\xc5\x31\x9f\xd4\x94\x5e\x0c\xa2\x77\x7b\xcf\x63\x9b\x2c\xd1\x59\x26\x92\x10\xae\x7a\x0f\x9f\xff\x85\x4f\x96\xdc\xfa\xf8\x22\xde\xfa\xef\xe3\xdb\xe5\xfd\xdf\xd8\x06\x65\x82\x53\x26\xf8\xd1\x65\x82\x6f\xa6\x8e\x6c\x7e\x7f\x8f\x79\x32\x92\x4a\xe4\xd3\xfe\xe4\x7e\xe8\xfe\x60\xfa\x63\x61\xb9\xbb\xd1\x3f\xc0\xa1\xfb\x02\x07\xc3\x74\xe2\xc9\xa6\xbc\x76\xca\x6b\xa7\xbc\x76\xca\x6b\xa7\xbc\xf6\x26\x51\xb2\xdd\xf0\x14\x79\x24\x5b\x2f\xd4\x3e\xa3\x88\x54\x7e\xd0\xa4\x34\xc4\xf4\x36\xa9\x98\xc1\x8c\x33\x76\x27\x06\xa8\x39\xc7\x74\xd4\x52\x95\xf0\xb7\x17\x6c\x9d\x8a\x47\x56\x69\x75\xa1\xc4\x90\xc3\x06\xf5\xa9\x69\x55\xcf\x2d\xa6\xa6\xc7\xa3\xe1\xcd\x15\x39\x1e\x8b\x54\x72\x2b\xb2\x69\xa9\xd2\x96\x22\x57\x66\x3d\x9f\x72\x06\x93\xce\x86\x39\x4f\xe0\xd4\x48\x9d\x46\x85\xa0\x14\xda\x60\x2f\x84\x5d\x5a\x18\xd7\xc9\xea\x72\x71\xf7\x66\x18\x90\xff\xc8\x00\xef\xc0\xd0\x44\x1f\xfb\x39\x16\x5c\x35\xf6\x71\x83\x65\x86\x3e\x5f\x41\x97\xf7\x9b\xd0\x47\xb5\x26\x54\x6b\x42\xb5\x26\x54\x6b\x42\xb5\x26\x54\x6b\x42\xb5\x26\x51\x08\x7c\x10\x93\x5c\x38\xa5\x24\x7d\xc7\x26\x99\xe0\x46\xc4\x2b\xe8\x2a\xd7\x13\x3e\x04\xed\xe8\x4a\x67\x32\x99\xd6\xfc\x60\x61\xd3\xa5\xb1\x01\xb7\xed\xde\xf4\xff\x77\x9f\x5d\xe3\x7d\x86\xaa\xcb\x44\x28\x77\x58\x4a\x99\x2a\x98\xce\x27\x23\xae\x82\x5f\x2e\x2f\xc4\xab\x01\xcf\x82\xad\x7c\x7b\x86\x3f\xdf\x9e\xb1\x81\x54\x3c\x93\xff\x08\x82\xe4\x4e\x30\x9e\xa6\xb0\x3b\x5f\x61\x06\x7d\x5a\x9a\x61\xd8\xfc\xb9\x29\x5f\x42\xfb\xb4\xcf\x3e\x4a\xb8\x1c\x2b\x5d\xd7\xf9\xfc\xd8\xe0\xfa\x41\x57\x11\x9a\xc7\x60\xa3\x68\x3b\xda\x64\x41\x71\x04\x1f\xc2\xd8\xf7\x05\xf6\xf0\xbb\x97\x0b\xee\xc0\x8e\xf4\x23\x1b\xf2\xfc\x8e\x0f\x6b\x5e\xf2\x68\xd4\x88\x7c\xa0\xf3\xb1\x5b\x93\xc6\xf9\xfa\x32\x33\xa2\xc5\xd3\x05\x4a\x6f\xd0\x58\x27\x38\xb7\xd2\x69\x93\x89\x4c\x4b\x53\x18\x74\x05\x70\x4e\xc4\x35\x76\xc2\xda\x4b\xd2\xa0\x0d\xf4\x2b\x8b\x19\xe4\x48\x30\xb5\x2f\xa2\x8f\xb9\xfe\xb1\x3e\xc3\x50\x14\xc8\xa6\xaa\x65\x77\x8e\x63\x38\x67\x17\x7e\x03\xd6\x37\xa8\xf9\x81\x9d\xff\xc8\x93\xfb\x61\xae\x0b\x95\xba\xa7\xc0\x57\x0b\x0f\xcd\x4c\x1c\xaa\x90\x5e\x3f\xae\x37\x12\x46\x70\x17\x5b\xfa\x81\x9d\xff\xa4\x73\x51\x69\x96\x25\xdc\x24\x3c\x75\xa3\xf7\xf3\x83\xee\x7c\x68\xcf\xa0\xe9\x39\xd7\xe0\x20\xb6\xb1\xc9\x86\x9c\xcc\x6e\xf7\x3d\x7a\x0a\xa8\xb0\x8d\x0a\xdb\xb6\xb0\xb7\xa8\xb0\xad\xe5\x19\xa4\xc2\x36\xca\xf3\xee\x3c\xa2\x77\x6d\xb9\x2d\xda\x86\xf2\x4e\x2a\x45\x03\xc5\x76\xa9\x52\x6d\x2f\x5d\xa3\x29\x15\x61\x9d\x32\xb4\x1d\x23\xee\xb5\xc9\xbe\x68\x40\xdc\xa3\x8c\x0b\xca\xb8\x38\x91\x8c\x0b\xca\x51\xa0\x1c\x05\xca\x51\xa0\x1c\x05\xca\x51\xd8\x7b\x8e\x02\x05\xbf\x29\x1e\x4a\xf1\x50\x8a\x87\x52\x3c\x94\xe2\xa1\x14\x0f\xa5\x78\xe8\x42\x21\x40\x21\x0a\x0a\x51\x50\x88\x82\x42\x14\x14\xa2\x20\xec\xbd\x56\xd5\xa9\xd1\x5d\x4d\xd8\x7b\x0d\x8f\xed\x3d\xe8\xb1\x01\xc2\x0a\xe1\x46\x10\x6e\x44\xc4\x8d\x68\x13\xc5\x6a\x46\x8e\x78\x52\x1c\xeb\x40\xb1\x23\xca\x31\xb5\xbb\xe8\xa8\x70\xe8\x04\x0a\x87\x9e\x29\xb0\x11\xc1\x0f\x1e\x49\x5a\xca\xc6\xb7\xd3\x9e\x51\x58\x36\xe8\xee\x5e\x71\x58\xd6\xee\xef\x29\x69\xb9\xdb\x45\x62\xd9\x50\xcb\xfd\x8e\x6d\x82\xc5\x82\x7f\xfe\xd7\x8e\x20\x59\xda\xa9\x50\x55\x18\x96\xbd\xaa\x50\x47\x82\x77\x41\xaa\x53\x75\x91\x0f\x56\x75\xa2\x0a\xe3\x67\x54\x61\x4c\xa5\x54\x54\x4a\x45\xa5\x54\x54\x4a\x45\x56\xdf\xa2\x53\x74\x90\xc5\x08\xfb\xb1\xaa\xa8\x96\x62\x61\x2d\xc5\xc1\x99\x59\xd1\xcf\xdc\x79\x05\x05\x44\xdb\xeb\x3a\x56\x1b\x6b\xc9\xbd\xb6\xcd\xb2\x89\x8a\xd6\x21\xbe\x41\x32\xd4\x9d\xfb\x17\x4f\x6c\x9f\xb1\x8f\xee\x7f\xc3\xdf\xc7\x5c\x82\x1b\xce\xb0\x24\x2b\x8c\x15\x79\x29\x4b\x30\x6b\x92\x65\xf2\x5e\xb0\xf3\xd8\xcf\x73\xa7\x32\x06\x35\xa7\xcf\xae\x32\xae\x94\x4f\x66\x00\x45\x84\x67\xa8\xfb\xbc\xf9\xd3\x26\x97\x33\xf4\x71\x4f\x2a\x42\x9c\xb4\xa8\x61\xdf\x85\xe9\x73\x23\x65\x1f\x71\xc6\x9c\x58\x98\x98\x30\x3b\x3e\x5f\xa8\x30\x22\x87\x44\x9f\x52\x59\x9e\x6e\x79\xa2\x5c\x67\x4e\x37\x4a\x7d\xd8\xb2\x8b\x5c\x6a\x60\xb8\x89\xc3\xf3\xa8\x3d\x25\x6e\x0c\x51\x11\xef\xed\x58\xf0\xf9\x36\x21\xe1\x43\x89\x06\x53\x18\xfc\xe8\xc2\xe0\x90\x37\xd3\x4a\x41\x99\xbd\x7f\x2f\xe0\xdd\xff\xb9\xfc\x2a\x1e\x8b\x7c\x28\x5a\x3d\x69\x6c\xce\xad\x18\xca\xe4\xa2\xfd\x3b\xee\xdf\x53\xff\x24\x5c\xfa\x6d\x14\x28\x48\xb4\x84\x3a\x2e\xcc\xf1\xda\x40\x99\x82\x2f\x1e\x80\xe7\x79\x5b\xc1\xfb\x25\x96\xc6\x55\x3d\xd1\x8a\x91\x3f\xfa\xc4\xfd\xd1\xcf\x27\x94\x3f\x53\x0f\x11\x0e\x17\xd6\xec\x4c\x30\x85\xd9\xd7\x81\xbf\x58\x70\x0b\xbd\x04\x6f\x1c\x16\xea\xf2\x0c\xde\x54\x5a\x5d\xe0\xdb\xf0\x04\x38\xc4\x0d\x7b\xf1\xff\x8c\x56\x57\x58\x0e\xfd\x8b\xbb\xef\xfc\xbf\xaf\xc3\x2d\x58\xfe\xf1\xe5\x21\xe5\x18\xb4\xdf\x37\x3f\xe9\x3c\x81\x88\xc1\x50\xc3\xe2\x6b\x76\x7b\x36\x70\x7f\xbb\x3d\x63\x97\xb5\xd9\xec\xb3\x4f\xd6\xbb\xf7\xc1\xa8\xf1\x07\xf5\x82\x27\xb0\x00\x50\x50\x9b\xc9\xc4\x3b\x2c\xc1\x06\xd2\x8f\x7e\x6d\xb1\xe0\x74\x22\xf4\x24\x13\x7d\x86\xdf\x84\x3a\xfa\xb0\xa7\x20\xc7\xbd\x71\x21\xe2\xe7\x37\x99\x5e\xf7\x21\x32\x85\xf0\x07\x32\x85\xf6\x92\x5d\x30\x93\x2f\x7d\x68\xc6\x50\xd1\xb9\xdf\x6b\x92\xf1\x64\x13\x6d\xcd\xbf\x79\xc2\xfa\x1a\x25\x5b\x92\x86\xf6\x1c\x34\xb4\x03\x52\x84\x48\x5e\xc7\x5f\x28\xd9\xd2\xb7\x7c\x52\xea\x45\x71\x78\x9e\xd6\xef\x58\xfb\xdc\x45\xa1\xd2\x89\x96\xca\xee\x87\x46\xee\x63\xfc\xfa\x62\xb5\x64\x15\x8d\x5c\x63\x1b\x04\x6a\x46\xa0\x66\x47\x07\x6a\x76\xd2\x69\xb5\x04\xd1\x46\x10\x6d\x04\xd1\x46\x10\x6d\x04\xd1\xd6\x24\x4a\x88\x46\x8e\x1c\x14\x84\xa4\x47\x45\x1e\xcf\xb9\xc8\x83\x60\x13\x09\x36\x91\x60\x13\x09\x36\x91\x60\x13\x09\x36\x91\x60\x13\xa9\xf6\x91\x6a\x1f\xa9\xf6\x91\x6a\x1f\x67\x77\x24\xd1\xc8\x11\x46\xeb\xda\xbb\x8b\x30\x5a\x09\xa3\x95\x30\x5a\x4f\x3f\x85\x84\x4a\x9f\xf7\x4a\x23\xd7\x94\x8a\x70\xc0\x34\x72\x6d\xb2\x2f\x9a\x68\xe4\x28\xe3\x82\x32\x2e\x4e\x23\xe3\x82\x72\x14\x28\x47\x81\x72\x14\x28\x47\x81\x72\x14\xf6\x9e\xa3\x40\xc1\x6f\x8a\x87\x52\x3c\x94\xe2\xa1\x14\x0f\xa5\x78\x28\xc5\x43\x29\x1e\xba\x50\x08\x50\x88\x82\x42\x14\x14\xa2\xa0\x10\x05\x85\x28\x88\x46\xae\x55\x7d\x6a\x74\x57\x13\x8d\x5c\xc3\x63\x7b\x0f\x7a\x10\x8d\xdc\x73\xc0\xcf\xdb\x16\x8d\x5c\x9b\x18\x56\x33\x89\xdc\x93\xa2\x58\x07\x8a\x6b\x52\x8e\xa9\xdd\x35\x47\x65\x43\x27\x50\x36\x44\xb8\x26\x84\x6b\xd2\xd0\x99\x03\x56\xc4\x8e\x03\xd7\x64\x83\xee\xee\x95\x44\x6e\xed\xfe\x9e\x92\x8e\xbb\x5d\x12\xb9\x0d\x75\xdc\xef\xd8\x06\x40\x2c\xbb\xe5\x90\x5b\x17\x81\x65\xaf\xfa\xd3\x91\x40\x5d\x90\xde\x54\x5d\xe4\x83\xd5\x9b\xa8\xb8\xf8\x19\x15\x17\x53\x15\x15\x55\x51\x51\x15\x15\x55\x51\x91\xc9\xb7\xe8\x14\x1d\x64\x1d\x02\x31\xc8\x1d\x8c\x85\xb5\x6d\x06\xb9\x83\x2b\x9e\x68\x60\x90\x6b\x63\x2d\x35\x31\xc8\x75\x59\x31\x41\x0c\x72\x71\x0f\xb4\x57\x11\x88\x41\xce\xff\x1f\xc9\x2e\xf2\xa7\xed\x9d\x41\x6e\x0f\x21\xe3\x2a\x83\xdc\x82\xcf\x13\x83\x5c\xf3\x98\x29\x02\x4e\x0c\x72\xdb\x60\x90\x6b\xa3\x4c\x35\x32\xc8\x9d\x50\xe4\x9e\x18\xe4\xc8\x1f\xfd\xfc\xe2\xf8\xc4\x20\xd7\xe5\xbe\x21\x06\x39\x32\x85\xc8\x14\x9a\x9f\xc6\x23\x61\x90\x7b\xb2\x31\xb4\x1b\x06\xb9\x76\xae\xaf\x46\x06\xb9\x13\xd2\xd7\x28\xd3\x92\x34\xb4\xe7\xa0\xa1\x1d\x90\x22\x44\xf2\x3a\xfe\x42\x99\x96\xbe\xe5\x93\x52\x2f\xb6\xc9\x20\xb7\x8b\xc4\x45\x80\xe7\xda\x0f\x7d\x9c\xfb\x74\xcb\xc4\xc5\x46\xea\xb8\xd9\xf7\x09\xc4\x8c\x40\xcc\x8e\x0e\xc4\xec\xa4\x73\x69\x09\x92\x8d\x20\xd9\x08\x92\x8d\x20\xd9\x08\x92\xad\x49\x94\x10\x6d\x1c\x79\x25\x08\x39\x8f\x2a\x3b\x9e\x73\x65\x07\xc1\x24\x12\x4c\x22\xc1\x24\x12\x4c\x22\xc1\x24\x12\x4c\x22\xc1\x24\x52\xc1\x23\x15\x3c\x52\xc1\x23\x15\x3c\xce\xee\x48\xa2\x8d\x23\x4c\xd6\xb5\x77\x17\x61\xb2\x12\x26\x2b\x61\xb2\x9e\x7e\xde\x08\xd5\x3b\xef\x97\x36\x6e\x26\x0d\xe1\x90\x29\xe3\x56\x64\x5c\x34\xd2\xc5\x51\x96\x05\x65\x59\x1c\x7d\x96\x05\xe5\x25\x50\x5e\x02\xe5\x25\x50\x5e\x02\xe5\x25\xec\x3d\x2f\x81\x02\xde\x14\x03\xa5\x18\x28\xc5\x40\x29\x06\x4a\x31\x50\x8a\x81\x52\x0c\x74\xa1\x10\xa0\xb0\x04\x85\x25\x28\x2c\x41\x61\x09\x0a\x4b\x10\x55\x5c\xbb\x42\x54\xa7\xe5\x12\x4d\x5c\xc3\x63\x7b\x0d\x72\x10\x45\xdc\x73\x00\xc8\xdb\x16\x45\x1c\x57\x2b\xc3\x56\x0b\x18\xe2\x36\x0d\x5c\x1d\x2a\x66\x09\x8c\xa7\xdd\xcd\x46\x95\x41\x27\x50\x19\x44\x78\x25\x84\x57\xd2\xd0\x99\x03\xd5\xbb\x8e\x04\xab\x64\xbd\xae\xee\x97\x11\x6e\x9d\xbe\x9e\x92\x2a\xbb\x65\x36\xb8\xf5\x55\xd9\xef\xd8\xba\x80\x2a\xbb\xa5\x81\x6b\xa1\x23\x2d\x60\x81\xdb\xad\x8e\x74\x24\xa8\x15\xa4\x1f\x55\x17\xf9\x60\xf5\x23\xaa\x13\x7e\x46\x75\xc2\x54\x10\x45\x05\x51\x54\x10\x45\x05\x51\x64\xda\x2d\x3a\x45\x07\x59\x52\x40\x0c\x70\x07\x63\x55\x6d\x9d\x01\xee\x90\xea\x20\x9a\xd8\xdf\x56\x58\x48\x8d\xcc\x6f\x1d\x15\x3f\x10\xeb\x5b\x5c\xfb\xf6\x6a\x01\xb1\xbe\xf9\xff\x23\x79\x45\x3e\xb3\xf8\xe3\x5e\x18\xdf\x76\x1b\xfd\xad\xb1\xbd\xcd\x7f\x9a\x98\xde\x9a\xc7\x4c\x81\x6c\x62\x7a\xdb\x0a\xd3\xdb\x0a\xc5\xa9\x99\xe5\xed\x34\xa2\xef\xc4\xf0\x46\xfe\xe6\xe7\x17\x8f\x27\x86\xb7\x2e\xf7\x0d\x31\xbc\x91\xd9\x43\x66\xcf\x71\xb2\xbb\x3d\xc5\xf0\xd9\x11\xb3\xdb\x4a\xb7\x56\x33\xab\xdb\x69\xe8\x67\x94\x1d\x49\xda\xd8\xa9\x6b\x63\x07\xa4\xf4\x90\x6c\x8e\xbf\x3c\xfb\xec\xc8\x93\x52\x23\xb6\xca\xe2\xb6\xdd\x84\x43\x28\x52\xcc\xe1\xf2\xda\x0b\x8d\xdb\x67\xf7\xfd\xaf\xee\xfb\x2d\xd3\x0f\x9b\xb8\xdc\x9a\x1b\x21\xa8\x31\x82\x1a\x3b\x3a\xa8\xb1\x93\x4e\x8d\x25\xe0\x34\x02\x4e\x23\xe0\x34\x02\x4e\x23\xe0\xb4\x26\x51\x42\x84\x6e\xe4\x98\x20\x7c\x3b\x2a\xd4\x78\xce\x85\x1a\x04\x66\x48\x60\x86\x04\x66\x48\x60\x86\x04\x66\x48\x60\x86\x04\x66\x48\xf5\x8b\x54\xbf\x48\xf5\x8b\x54\xbf\x38\xbb\x23\x89\xd0\x8d\x90\x53\xd7\xde\x5d\x84\x9c\x4a\xc8\xa9\x84\x9c\x7a\xfa\xa9\x23\x54\xbe\xbc\x57\x42\xb7\xc6\x5c\x84\x03\x66\x75\x6b\x95\x80\xd1\x44\xed\x46\x49\x17\x94\x74\x71\x22\x49\x17\x94\xa6\x40\x69\x0a\x94\xa6\x40\x69\x0a\x94\xa6\xb0\xf7\x34\x05\x8a\x7f\x53\x48\x94\x42\xa2\x14\x12\xa5\x90\x28\x85\x44\x29\x24\x4a\x21\xd1\x85\x42\x80\xa2\x14\x14\xa5\xa0\x28\x05\x45\x29\x28\x4a\x41\xfc\x6e\xad\xca\x53\x4b\x7f\x35\x91\xbc\x35\x3c\xb6\xff\xc0\x07\x31\xbd\x3d\x07\x80\xbc\xad\x31\xbd\xb5\x8b\x64\x35\xb3\xbd\x3d\x2d\x96\x75\xa0\xa0\x26\x95\x41\xb5\xbb\xec\xa8\x80\xe8\x04\x0a\x88\x08\xd9\x84\x90\x4d\x1a\x3a\x73\xc8\xfa\xd8\x71\xc0\x9b\x6c\xd2\xdf\xbd\x32\xc0\xad\xdf\xe1\x53\x52\x76\xb7\x4b\x03\xb7\xa9\xb2\xfb\x1d\xdb\x08\x9a\x65\xc7\x84\x70\xeb\xa3\xb2\xec\x57\x95\x3a\x12\xf8\x0b\xd2\xa0\xaa\x8b\x7c\xb0\x1a\x14\x15\x1c\x3f\xa3\x82\x63\xaa\xac\xa2\xca\x2a\xaa\xac\xa2\xca\x2a\x32\xfe\x16\x9d\xa2\x83\xac\x4d\x20\x66\xb8\x83\x31\xb4\xb6\xcd\x0c\x77\x78\x05\x15\x0d\xf4\x70\xad\x0c\xa6\x26\x8e\xb8\x4e\xab\x28\x88\x28\x2e\xee\x82\xf6\x5a\x02\x11\xc5\xf9\xff\x23\xf1\x45\xae\xb5\xfd\xb3\xc5\xed\x23\x8c\x5c\xa5\x8c\x5b\xf4\x7d\xe2\x8d\x6b\x1e\x33\x85\xc5\x89\x37\x6e\x1b\xbc\x71\xad\x34\xaa\x46\xf2\xb8\x53\x0a\xe6\x13\x83\x1c\xf9\xa5\x9f\x5f\x64\x9f\x18\xe4\xba\xdc\x37\xc4\x20\x47\xf6\x10\xd9\x43\x0d\xf3\x78\x24\x34\x72\x4f\xb7\x88\x76\xc3\x25\xd7\xd2\x07\xd6\x48\x28\x77\x4a\x3a\x1b\x25\x60\x92\x9a\xf6\x2c\xd4\xb4\x03\xd2\x86\x48\x68\xc7\x5f\x28\x01\x33\x36\x7d\x52\x4a\xc6\x36\x49\xe6\x76\x91\xce\x18\xa4\x90\xb2\x0f\x3a\x2b\xc6\x22\xc9\xb8\x1c\xef\x87\x74\xee\x2a\x76\xe5\xaf\xd0\x95\xf7\xae\x2b\x2d\x33\x1d\x9b\xf8\xe7\x56\xb6\x47\xa8\x68\x84\x8a\x76\x74\xa8\x68\x27\x9d\x8b\x4b\x18\x6f\x84\xf1\x46\x18\x6f\x84\xf1\x46\x18\x6f\x4d\xa2\x84\xa8\xe8\xc8\x91\x41\x50\x7c\x54\x19\xf2\x9c\x2b\x43\x08\x77\x91\x70\x17\x09\x77\x91\x70\x17\x09\x77\x91\x70\x17\x09\x77\x91\x0a\x26\xa9\x60\x92\x0a\x26\xa9\x60\x72\x76\x47\x12\x15\x1d\x81\xbc\xae\xbd\xbb\x08\xe4\x95\x40\x5e\x09\xe4\xf5\xf4\x53\x4d\xa8\x5e\x7a\xaf\x54\x74\xab\xd2\x12\x0e\x98\x95\x6e\xdd\x0c\x8d\x26\x82\x3a\xca\xca\xa0\xac\x8c\xd3\xcb\xca\xa0\x3c\x06\xca\x63\xa0\x3c\x06\xca\x63\xa0\x3c\x86\xbd\xe7\x31\x50\x80\x9c\x62\xa6\x14\x33\xa5\x98\x29\xc5\x4c\x29\x66\x4a\x31\x53\x8a\x99\x2e\x14\x02\x14\xc6\xa0\x30\x06\x85\x31\x28\x8c\x41\x61\x0c\xe2\xaa\x6b\x55\xea\xda\xe8\xba\x26\xda\xba\x86\xc7\x0e\x2a\x48\x42\x0c\x76\xcf\x01\xaa\x6f\x7b\x0c\x76\xeb\x46\xbd\x9a\xc9\xec\x3a\x8b\x7b\x1d\x28\xac\x4a\xf3\xf8\xda\x5d\x8c\x54\x98\x74\x02\x85\x49\x84\xb0\x42\x08\x2b\x0d\x9d\x39\x12\x35\xee\x38\xc0\x56\x9e\xd8\xf5\xbd\x12\xdf\x3d\xa9\xef\xa7\xa4\x39\x6f\x97\x03\xaf\x03\xcd\xf9\x3b\xf6\x54\xfc\x98\x5d\x33\xe3\x3d\x05\x3a\xe6\x60\x54\xb4\x23\xc1\xe8\x20\x75\xac\xba\xc8\x07\xab\x8e\x51\x55\xf4\x33\xaa\x8a\xa6\xf2\x2f\x2a\xff\xa2\xf2\x2f\x2a\xff\x22\x4b\x72\xd1\x29\x3a\x44\x4b\x92\xcc\xb1\x43\x30\xc7\xb6\xcd\x94\x77\xd0\xf5\x1e\x0d\xa4\x79\xeb\xda\x52\x4d\xfc\x79\xdb\x2a\xf2\x20\x2a\xbd\xb8\x37\xda\x2b\x10\x44\xa5\xe7\xff\x8f\x24\x1b\x49\x87\x83\x62\xd5\xdb\x73\x94\xbb\x4a\xb0\xd7\xa2\x2b\xc4\xb5\xd7\x3c\x66\x0a\xe0\x13\xd7\xde\x36\xb8\xf6\xd6\x55\xc4\x1a\x69\xf7\x4e\x34\xed\x80\x18\xf8\xc8\xd3\xfd\xfc\x12\x0f\x88\x81\xaf\xcb\x7d\x43\x0c\x7c\x64\x46\x91\x19\x75\x12\x64\x7c\x9d\x1a\x52\xbb\xe1\xe5\x5b\xdf\xcd\xd6\x48\xd1\x77\xa2\xfa\x1d\xa5\x95\x92\x76\xf7\xdc\xb4\xbb\x03\x52\xa2\x48\xd6\xc7\x5f\x28\xad\x74\x45\xd7\x4f\x4a\x4d\xd9\x26\x9d\xdf\x21\x65\x66\xbe\x32\x88\xf4\x57\x49\xd0\xdc\x4e\x6c\x11\xbf\x13\x24\xd8\x0e\xa2\x8c\x1e\xc2\x90\xee\x2d\x3a\xfc\x14\xea\xa1\x50\x0f\x85\x7a\x28\xd4\x73\x88\xa1\x9e\xae\xe4\x62\xfb\xa0\x4f\x83\x60\x3c\x4a\xd7\x00\x85\x7e\xc8\x39\xf0\xfc\x9c\x03\x14\xfa\xe9\x72\xdf\x50\xe8\x87\xdc\x41\x64\x56\x51\xe8\xa7\x3e\x4d\xdb\x0b\xfd\x74\xe7\x05\x69\x1f\x04\x3a\x15\x7d\x8f\x42\x41\xa4\xed\x3d\x37\x6d\xef\x80\x94\x2a\x92\xfd\xf1\x17\x0a\x05\xad\xe8\xfa\x49\xa9\x2d\xa7\x14\x0a\xd2\xa9\xd9\x11\x16\x47\xa5\x2a\x59\x0f\xd8\x95\x4e\x97\x68\x33\x55\x14\x8e\xf7\xf1\xbd\x8a\x5a\x53\x7f\x9b\x88\x81\x88\x18\xe8\xe8\x88\x81\x4e\x1a\x0a\x86\x68\x8e\x88\xe6\x88\x68\x8e\x88\xe6\x88\x68\x8e\x9a\x44\xc9\x0e\x48\x98\xc9\x67\x71\xe8\x3e\x0b\x62\xa3\x22\x60\xb2\x67\x0c\x4c\x46\xd4\x63\x44\x3d\x46\xd4\x63\x44\x3d\x46\xd4\x63\x44\x3d\x46\xd4\x63\x84\xd7\x49\x78\x9d\x84\xd7\x49\x78\x9d\xb3\x3b\x72\x07\x9e\x02\xe2\x39\x24\x9e\xc3\x2d\xec\x2d\xe2\x39\x6c\x79\x06\x89\xe7\x90\xb2\x4a\x3a\x8f\xe8\xf9\x14\xbf\x76\xa1\xbc\x93\xca\xce\x40\xb1\x5d\xaa\x54\x5b\x4c\xd5\xd0\xe9\x86\xd9\xa4\x9d\x17\xd4\xa2\xc7\x2c\xf7\xa2\x3b\xa8\xf6\x7a\xc0\x5c\x5f\x57\xe4\x5a\xb8\x77\xe7\xd2\x46\x29\xbf\x82\xf2\x2b\x8e\x3c\xbf\x82\x32\x12\x28\x23\x81\x32\x12\x28\x23\x81\x32\x12\xf6\x9e\x91\x40\xa1\x6e\x8a\x7e\x52\xf4\x93\xa2\x9f\x14\xfd\xa4\xe8\x27\x45\x3f\x29\xfa\xb9\x50\x08\x50\x40\x82\x02\x12\x14\x90\xa0\x80\x04\x05\x24\x16\x04\x24\x16\xbe\xe0\x3e\xf6\x03\x4e\xfc\xbf\xcf\xcf\x41\x9b\xb6\xeb\x6f\x1f\x76\xe4\xa3\x2c\x4a\xd5\xe9\x67\x69\xec\x73\x0c\x74\xb8\xfb\xeb\x10\x83\x1b\x1b\x60\x10\x12\x50\xdf\xd1\x01\xf5\x69\xd3\x71\x08\x0b\xcd\x0e\xc6\x57\x44\xab\xf0\xb1\x8e\xe2\x55\x87\x0a\x67\xa2\x53\x02\x2f\x79\x3e\x85\x40\x04\x5e\x42\xe0\x25\x0d\x9d\x39\x48\x65\xeb\x48\xa0\x4a\xd6\xe9\xe8\x7e\xb9\xb6\xdb\xf7\xf4\x94\x74\x57\x50\x1f\x0e\x47\x77\xfd\x8e\xad\x87\x98\xe2\xa1\xf2\x77\x04\x9c\xb2\x4a\x25\xaa\x82\xa5\xec\x49\x25\x3a\x12\x54\x0a\x52\x88\xaa\x8b\x7c\xb0\x0a\x11\xd5\x01\x3f\xa3\x3a\x60\x2a\x78\xa2\x82\x27\x2a\x78\xa2\x82\x27\xb2\xe5\x16\x9d\xa2\xfd\xdb\x72\x64\x22\xed\xab\x8e\xe1\x80\x8c\xa4\xe8\xfb\xdd\x0e\x1d\x58\x5d\x67\x5a\x6e\xf1\x34\x52\x7e\x75\x52\xb2\x50\xd1\x1c\xc4\x37\x48\x44\xba\x73\xff\xe2\x89\xed\x33\xf6\xd1\xfd\x6f\xf8\xfb\x98\x4b\x70\x90\x19\x96\x64\x85\xb1\x22\x2f\xe5\x81\x47\xfb\xcf\xe4\xbd\x60\xe7\xb1\x87\xe7\x4e\xed\x0b\xaa\x4a\x9f\x5d\x65\x5c\x29\x9f\x48\x00\xca\x04\xcf\x50\x7f\x79\xf3\xa7\x4d\x2e\x58\xe8\xe3\x9e\xc4\x7c\x9c\xb4\xa8\x25\xdf\x85\xe9\x73\x23\x65\x1f\x71\xc6\xdc\xd5\x3e\x31\x61\x76\x7c\xae\x0e\x50\x27\x24\x5c\x55\x14\xde\xe9\x96\x27\xca\x75\xe6\x74\x23\xc4\xa7\x27\x7f\x4e\xe9\x56\xdf\x2e\x93\xdc\x2e\x63\xb6\x35\xde\xb8\xd9\x0f\x13\x4b\x5c\xf3\x98\x29\xf8\x4c\x2c\x71\xdd\xb0\xc4\xad\xa3\x2e\x35\x33\xc1\x9d\x42\xc8\x9c\x18\xdf\xc8\x6b\xfc\xfc\xc2\xe8\xc4\xf8\xd6\xe5\xbe\x21\xc6\x37\x32\x76\xc8\xd8\x39\x46\x7e\xb7\xcd\xcd\x9d\x6d\xb1\xb9\xad\xe7\xc4\x6a\x66\x6c\x3b\x05\xbd\x8c\x52\x19\x49\x07\x3b\x6d\x1d\xec\x80\x54\x1d\x92\xc8\xf1\x97\x67\x9d\xca\x78\x52\xaa\xc3\x56\x39\xd6\x76\x94\x1f\xf8\x8a\x5b\xcb\x6b\x9e\xaa\xee\x63\x67\x89\x56\x4a\x24\x96\xfd\xf9\xe3\x4d\x69\xf5\x59\xcd\xf0\xd3\xab\x99\xd6\xfc\xfb\xa8\x85\xfc\x59\xd8\x9a\x22\x72\x89\xfd\x6f\x71\xad\x2c\xec\xee\xce\x8e\xfe\xcc\x0d\xfa\x0c\xcf\x8c\x5f\xca\xad\x9e\x1b\xdc\x11\x21\x27\x73\x67\xc1\x86\x00\xde\xc5\xa5\x72\x8a\x85\xf2\x00\x44\x00\x2b\x25\x92\xc2\x06\x54\xad\xf1\x98\xab\x99\xf4\xba\xaa\x06\xe0\xde\x05\xed\x2c\x07\x83\x1f\x7e\xd2\x6a\xa6\x69\xc0\xbb\xd0\x6b\x7b\xbc\x63\x1b\xdd\x38\xbd\xdb\xb9\xf0\x67\x82\x30\x4b\x56\x87\x22\x32\xcd\x63\x3e\xa8\x88\xcc\xb5\x4d\x45\x8e\x7b\x34\x2f\xc4\xac\x99\x63\xfc\xaf\xb0\xad\xef\x9c\x85\x81\xf6\x8a\x28\x93\x4e\xfd\xad\x8f\xf5\xec\xd5\x53\x00\xb8\x23\x6b\xee\x68\xfc\x5e\xf3\x76\x6e\x72\x1d\x75\x33\x01\x52\x85\xf1\xf7\xe2\x08\xb1\x1e\xdf\x58\xae\x52\x9e\xa7\x4c\xaa\x49\x61\x2b\x55\xe6\xfe\xc4\xfa\x59\x90\xa6\x61\xfc\x90\xdf\xb9\xc1\x04\x48\xb5\xeb\xf1\xeb\xc2\x2e\xd9\x00\x1a\x83\x73\x3b\xdb\x00\xba\xb0\x3b\x9d\x80\x9b\x9b\xff\x58\x34\x7a\xce\xac\x9d\x96\x89\xb8\x59\xa6\x31\xe9\xb7\x71\xe8\x01\x4d\x66\xc2\x9d\x15\xcd\xec\x28\xd7\xc5\x70\x14\xa1\x7f\xf0\xb2\xcf\x0b\x05\xa8\x2a\x06\xf1\x0d\x5c\xf3\xd2\x54\x5a\xf6\x90\x50\x8f\x3a\xbf\x17\x39\x53\x3a\x15\x21\x7b\x74\xae\x8d\x0e\x76\xdb\xc2\x78\xe9\xda\x53\xed\xff\xb5\xd5\x6a\x5d\xaf\x76\x5e\x7d\xb9\xee\x40\xef\xbc\xd2\x86\x14\x4f\x52\x3c\xb7\xa4\x78\x6e\x6a\xbd\xdd\xb9\x0b\x48\x0d\xab\xe6\xdb\x06\xaa\x2b\x79\x2e\x5b\xdd\x7e\x0d\x5e\xcb\x2d\x2b\x5b\xcf\xd4\x57\xb9\x7a\x29\x16\xfa\x29\x77\x68\xcc\xfc\xe8\xcf\x1e\xd9\x30\xc7\x66\xc3\x1c\x6f\x56\xd9\xb6\x20\x4d\xbc\x1c\x41\x0c\xba\x0d\xd1\x4d\xe6\xcf\xc3\xb1\x47\x06\xc3\x88\x16\xeb\x4b\x8d\x53\x4c\x71\x8d\x27\xce\xea\x01\xc5\x36\xd6\xee\xec\x5e\xeb\x90\xd6\xec\xed\x29\x29\xf8\xdb\x85\x6b\x68\x94\xf5\xdb\x52\xea\xc5\x83\x0c\xc3\x22\xad\x9e\xb4\x7a\xd2\xea\x77\xa9\xd5\x7f\x0c\x87\x8f\xd4\x7a\x52\xeb\x8f\x5d\xad\x0f\x92\xe4\x49\x7a\x7d\xc3\x89\x38\x56\xc5\xde\xa3\x1f\x3c\xbc\xb9\x13\x96\xbf\xe9\xc7\x91\x91\x82\xbf\x9f\xd9\x3d\x00\x45\xff\xc9\x9d\xde\x8b\xc2\xff\xc4\x5e\x93\xe2\x1f\x1f\x8f\x8a\xff\x64\x1e\xf3\x23\xaa\xff\xcd\x4a\x41\x4d\xff\x87\x85\xe8\xd2\x08\xf8\x26\x92\xbd\x64\x65\xb9\x0f\x3f\x31\x27\xeb\xa3\xeb\x3b\x05\xc6\x8e\xe2\xf8\xec\x22\x30\xe6\xf6\xc3\xce\xf3\xb1\xde\x63\xa6\x15\xa4\x22\x80\x6d\x09\xac\x16\x3e\xff\xaa\x92\x96\xd5\x67\x3c\x1f\x3e\x30\x9e\xe7\x7c\xda\x67\xbf\x6a\x1b\x7e\x40\x33\xcc\x59\xb2\xcc\x8c\x44\x96\xad\x9f\x6d\x05\x9f\xda\xa5\x21\xf3\x9e\xf2\xcf\x56\xe5\x9f\x2d\xdc\x8b\x64\xe2\x35\x8f\xf9\xa0\x4c\xbc\xaf\x3e\x9d\xa8\x9e\x6c\x85\x7e\xa6\xb5\x92\xad\x8e\x24\xd9\xac\x79\xbc\xa7\x9b\x5c\xd6\x3c\x5e\x6f\xc4\xef\x62\x81\x8f\x28\x99\x0c\x14\xb5\x8e\x56\xfa\x34\x12\xbb\x36\x50\x5d\xe7\xd2\xba\x48\x77\x25\xdd\xb5\x13\xdd\x75\x53\xc3\x2f\xd3\xc3\xad\xda\x7d\x80\x64\x97\xe9\x18\x74\x79\x22\xa0\xdd\x67\x3d\x6c\x73\x5c\xac\xf8\x66\x5f\x4d\x32\x3e\x2b\x4f\x4e\xdb\x65\x46\x47\xf4\x74\xc0\xc4\xea\xf5\x3d\x4e\x08\x47\x03\xcb\x2b\x26\x99\x1e\x9a\x35\x0c\xab\x23\xb6\xa9\x7e\xd2\x11\xf6\xd7\xdd\x24\x73\x8a\x59\x07\x1a\xc9\x00\x3e\xb1\x53\x5d\x4c\x2a\x23\x92\x22\x17\xd7\xf7\x72\x72\xf3\xf9\xfa\xaf\x22\x97\x83\xe9\x8f\x3c\xb9\x17\x2a\x9d\x55\xce\x20\x38\x3b\x91\x9e\x1e\xb7\x12\x3f\x4f\xb4\x1a\xc8\x1c\xf1\xb6\x21\x70\x0e\xac\x8b\x83\x48\xf2\x0c\xec\xb8\x22\xf7\xdc\x82\xd1\x32\xbd\x0b\x9f\x81\x58\x95\x17\x6c\x88\xf5\xd2\x67\x58\x2a\x00\x9a\xe0\x98\xdf\xa3\x21\xff\x97\x9b\x9b\xab\xeb\xf8\xa0\x56\xec\x4e\xd8\x47\xe1\xa3\x5e\x65\xcf\x02\x22\x74\x6c\xdf\x8f\xd1\x97\x1f\x20\x52\x4c\xfd\x95\x84\x2b\x37\x90\x07\x18\x7e\x5c\x63\xe0\x9a\x96\x9e\x2e\x34\x11\x12\x07\xe2\x0c\xd0\x08\x2f\x9e\x0b\x9e\x31\x77\xbe\x33\x61\xfb\x0c\x41\xe9\x45\xf8\x83\x1f\xd6\x40\x0e\x0b\xcf\x97\x5b\xf9\x40\xfc\xf8\xb9\x61\x37\x9f\xaf\x59\x92\x0b\xe0\x0b\xe6\x99\xe9\xb9\x8f\xa6\x5a\x20\x63\xb1\xeb\x6f\xa8\x6e\x08\x03\xf7\xd4\x8f\xd5\xaf\xbb\x8f\x3d\x14\x99\x12\x39\x04\xb2\x01\xc1\x7e\xcc\x55\x84\xce\x96\x69\x9a\xf9\x6a\x8c\x7b\xf6\x42\xf4\x87\x7d\xc6\x95\xff\x6f\x37\x03\x71\x35\xa5\xb2\x22\x4f\xc4\xc4\x86\x68\x7c\xc1\xb3\x72\x3a\x12\x3d\x06\x1c\x9d\xa6\x09\x78\xb9\xee\x86\x5f\xb6\xfb\x76\x7a\x0c\x3e\x0d\x58\x20\x8a\xad\xd0\x9b\xdf\x4d\x6d\xa0\x36\xe7\x15\x48\x79\xbf\x67\x02\xed\x01\xf0\x6b\x73\xeb\x73\x13\x50\xcd\x00\xe3\x2d\xec\x37\x3e\x85\x79\x4d\xa5\x99\x64\x7c\x0a\x84\xc9\xe3\x09\x60\x84\x03\x8c\x39\xcb\xa4\x82\x33\x91\xe9\xe1\x50\x86\xfc\x84\x0a\xeb\xb8\xc9\xe4\x70\x64\xb3\x29\x32\x5d\x3b\xab\x3f\xfc\xa1\x4c\x75\xa8\x6b\x35\xc0\x96\xba\xee\x62\xc0\x4b\x3f\xba\x21\x37\x4f\x7d\x13\xe1\x40\xf7\xbe\x2a\x72\x50\x1d\x9d\x83\xea\x58\x72\x10\xda\xba\x63\xe0\xd0\x4d\x72\xf1\x20\x75\x61\xe2\xf9\x16\x69\x45\x77\x99\x57\x7b\x36\x12\xf8\xe1\x23\x3b\xbd\xeb\x2e\x59\x2e\x32\x64\x5e\x81\x32\xbb\x66\x26\x17\x4f\x5e\x8d\x8f\xc0\xd5\x57\xaa\x7e\x23\xfd\xe8\x67\xa0\x4e\xc2\x32\x71\x52\x32\x15\xa6\x24\x46\xe7\xe0\xb2\x7a\xe4\x86\x19\xcb\x73\xa0\xaf\x07\xfd\xd0\xbd\xcd\x8c\x54\x1e\x9b\xc9\x3d\x04\x0f\x44\xd7\x4f\x64\x4a\x9f\xe7\x79\x09\xc4\x07\x85\x2d\x72\x24\xd3\x86\xd6\xe6\xdf\xfc\x12\xfc\xf8\x7a\x80\xdf\xf2\x8c\x2a\x70\x85\xba\xff\xbe\x71\x5d\x0c\x84\x15\x91\xd4\x65\x5d\x07\x5a\xa5\xe5\x9d\x5e\x9c\xcd\x32\xcb\x09\x93\x0a\x69\xba\xd3\x7f\xfc\xe5\x0a\xb3\xe4\x97\x0f\xa6\xb5\xc6\x65\xd3\xc3\xdf\x79\x2e\xe0\x01\x55\x36\x01\x49\x32\x55\xbe\xed\x78\x0a\xc2\x3c\x36\xcd\xeb\xba\xce\x38\x2e\xb3\xcf\xae\xeb\xbb\x9e\x42\xac\x68\xe6\x69\xea\xb4\xa1\xaf\x3f\xbd\xff\xfe\xfb\xef\xff\x8f\x1b\x88\xff\xe7\xaf\x5c\x69\xd8\xca\xc6\xf2\xf1\x24\x90\xfe\xd7\xa8\xe8\xc5\x83\xc8\xa7\x55\x21\x1e\xc5\xff\xd3\x5d\x94\xe1\xc3\x5d\xdd\x10\xfe\x5f\xff\xb9\xa9\xa3\x66\xa2\x73\x3b\xd0\xf9\x23\xcf\xd3\xbd\x04\xea\x2b\xdf\x7f\x62\xbc\xfe\xaa\x32\x12\x72\x7d\x1e\x85\x5f\x65\x17\xae\x4f\xb7\x2d\x7e\xc2\x6d\xb1\xf3\xe8\xfd\x8c\x26\xbc\xaa\x2b\xa4\x1b\x37\x8f\xf9\xa0\x74\xe3\xcf\xd2\x58\xb7\xa6\xee\xe2\x42\x39\xe0\x6f\xaf\xaf\x01\x1d\xf8\xd1\xa9\xcc\x05\x94\x04\xfc\x2e\xee\xae\x75\x72\x2f\x9a\x47\xbd\x4c\x8f\x74\xad\x77\x24\x39\x83\x88\xd8\x47\x30\x6b\xf3\xeb\x7d\x2e\xa6\x45\xf7\x3b\xdd\xef\xe1\xcf\x1d\xde\xef\x1b\x2b\x4e\xb9\xfe\x36\xdd\x36\x31\x6d\x38\x57\x1f\x3e\x7e\xfe\x78\xf3\xb1\x7e\xb2\xdc\xf7\xd7\x3c\x53\x48\xf4\x5a\x3f\x55\x30\x0c\x3a\x4f\x74\x9e\xc2\x79\x72\x1b\xe2\x69\x9a\xd2\xee\x8c\x87\x0d\xce\xc0\x9c\xd9\x40\x07\x80\x0e\x40\xc7\x07\x60\x24\x78\xba\x9d\x13\xf0\x97\x8f\x97\x1f\x9e\x7c\x04\xfe\x22\x78\x4a\x67\x80\xce\xc0\x56\xcf\x80\xf6\x6f\x6f\xe5\x18\x7c\xb9\xba\xf9\xf4\xe5\xd7\xeb\x27\x9f\x04\x3f\x44\x3a\x0c\x74\x18\xb6\x7a\x18\x3a\xf0\x1d\x2d\xec\x04\x79\x8d\x9a\xc7\x7c\x50\x5e\xa3\x2b\x6e\x47\xa1\x88\xe7\xb7\xaf\x9f\x99\xeb\xba\xbb\xb4\x0a\x23\x62\x2a\x74\x08\xd0\xe1\x45\xe6\xaf\x36\x74\xa2\xac\x1f\x65\x9d\x9b\x9a\x7d\x90\x02\xae\xed\x3e\xba\xbc\x79\xff\x97\x27\x5f\xea\xc0\x91\x45\x57\x3a\x5d\xe9\xdb\xbd\xd2\x77\xe8\x44\xdd\xe4\x10\xcc\xb9\x4f\xe9\x0c\xd0\x19\xe8\xfa\x0c\x74\x4d\xef\x15\x8f\xc0\x6f\x1d\x9c\x80\x82\x0e\x00\x1d\x80\xad\x1c\x80\xef\xd8\x13\x62\x06\xaf\xfe\xe9\x94\xb3\x7f\x9d\x48\xe8\xe0\x77\x69\x47\x57\x75\x65\x93\x0e\x16\x1d\xac\xe7\x17\x42\xa0\x83\x40\x07\x81\x75\x7f\x10\x8e\x32\x94\x40\x67\x81\xce\x02\xeb\xfe\x2c\x1c\x77\x48\x81\x0e\x05\x1d\x0a\xb6\x05\x1b\x9c\x42\x0b\xcf\x3b\xb4\x10\x42\x09\x58\xbb\x69\x74\x91\xcf\xf6\x6d\xd5\x90\xe6\x7f\xa1\x40\xc9\x33\x0e\x94\x90\xa0\x22\x41\xc5\xb6\x20\xa8\x8e\x31\x60\x42\x67\x81\xce\x02\xdb\xc2\x59\x38\xba\xc0\x09\x1d\x04\x3a\x08\xac\xb3\x83\xf0\x1d\xdb\x2c\x80\x62\x2c\xb7\x85\xd9\x3e\xb2\x18\x7e\xa7\x23\x70\xb1\x6b\xec\x74\x8b\x83\x73\xda\x38\x62\xad\x09\xa0\xdc\x2c\x3f\xc3\x23\x7b\x3a\x28\x63\x84\x00\x73\xec\x4e\x85\x63\x41\x80\xf1\xff\xda\xc8\xe8\x9e\xbd\x6d\x2f\xe0\xdd\xff\xb9\xfc\xe2\x1d\x8b\x7c\x28\x5a\x3d\x69\x6c\xce\xad\x18\xca\xe4\xa2\xfd\x3b\xee\xdf\x53\xff\x24\x5c\xf1\x6d\x24\xd6\x84\xe7\x56\xf2\x2c\x9b\xb2\x62\x92\x72\x2b\x36\x94\x5e\xf0\xd5\x76\xe2\xeb\x28\x79\x73\xc6\x3c\x19\x49\x25\xf2\x69\x7f\x72\x3f\x74\x7f\x30\xfd\xb1\xb0\x1c\x04\x0e\x6c\x9a\x76\x22\x67\xb9\xac\x21\xba\xba\xea\xd2\xcf\x5f\x02\xcb\x29\xeb\x96\x5f\x04\xcb\xaf\x82\xb5\x96\xe9\xf9\x90\xd7\x21\x62\x1d\x8c\x17\x51\x0f\x3d\x48\x81\x93\x5a\x70\xdb\x94\xe6\xe2\x8b\x05\x37\xd1\x4b\x76\x57\x58\x86\xc1\x37\x9e\xc1\x9b\x4a\xab\x0b\x7c\x1b\x9e\x60\x6e\xd5\x0c\x7b\xf1\xff\x8c\x56\x70\x96\x7a\xec\x17\x77\xe7\xf9\x7f\x5f\x87\x9b\xb0\xfc\xe3\x0c\xb0\x60\xbb\x1d\xb3\x90\x59\x6f\x67\xfb\xe6\x27\x9d\x27\x00\x59\x35\xd4\x08\x6b\xc9\x6e\xcf\x06\xee\x6f\xb7\x67\xec\xb2\x36\x9b\x7d\xf6\xc9\x7a\x60\xca\xc2\x88\x3c\x1c\xd4\x0b\x9e\xc0\x02\x00\x8a\x64\x26\x11\x1d\x13\xc6\x65\x98\x7e\xf4\x6b\xab\xf1\xa8\x0a\x3d\xc9\x44\x9f\xe1\x37\x07\x19\x1f\xc6\x3d\x55\x28\x23\x6c\xe3\x42\xc4\xcf\x6f\x32\xbd\x7a\x36\x72\xb0\x02\x98\x68\xe5\xc4\x36\x4a\x2f\x32\x7e\xc8\xf8\x69\x20\xc0\x02\x11\x7c\x88\xe6\x4f\xd7\xae\xba\x5c\x4c\x32\x9e\x6c\xaa\xa5\xf9\xb7\x4f\x58\x4f\xdb\xe0\x24\x90\x4e\x46\x3a\xd9\x11\xe9\x64\x07\xa4\xfa\x90\x84\x8e\xbf\x6c\x43\x42\xef\x97\xf6\xff\xb9\xaa\x12\xc5\x21\xf9\x51\xbf\x63\x6b\x85\x3a\xac\x18\x4f\x32\x27\x9e\xb6\x5d\x1f\x82\x6d\xb2\x44\x67\x99\x88\xf4\xca\x57\x3a\xbd\xf1\x1d\x58\xa2\x83\xe0\xab\xa8\x82\xbc\x8f\xef\xd7\x94\x91\xa6\x56\xda\xaa\x23\x33\x1d\xe5\x59\xa6\x1f\x7f\x77\xea\xe1\x8f\x5a\xdf\x8f\x79\x7e\x6f\x4a\x9b\xf5\x11\xac\x1e\xf1\x20\x94\xfb\x0f\x90\x0f\xd3\x89\x60\xb7\x67\x3f\x7e\xf9\xf2\xf3\x2f\x97\x5f\x7f\xbe\x3d\xeb\xb3\x6b\x80\x77\xf7\x02\x3f\xd5\x88\x89\x3f\x9e\x64\x62\x2c\x94\x65\x77\xb1\xd5\x31\x9f\x32\x39\x54\x08\x98\xec\xac\x66\x67\x73\x39\x49\x50\x3e\x02\x68\xba\xee\x2d\x8f\x1b\x1b\x01\xff\x53\x69\x92\x5c\xb8\x3e\xf7\xd9\xfb\x4c\x42\x7f\x2a\xda\x04\x37\x6e\xb1\x66\x1a\x0a\xc0\xc6\xae\x31\xae\xa6\x41\x07\x4c\x10\xb0\xff\x81\x67\x3d\xa6\x74\x0e\xdd\xb2\x23\x31\x0d\x8d\x54\x10\xeb\x41\xe6\x1b\xa1\x52\x78\x3f\x8c\x19\xe7\x83\xa5\x85\x93\x07\x8c\x33\xe3\xb4\x0b\xd7\xb1\x80\xbc\x2c\x91\x87\x80\xe3\xf4\xf5\xfc\x68\x83\x8f\x00\xa7\x20\x00\x35\x0b\x36\x10\xdc\x16\xb9\x60\x43\x6e\x05\x9b\x59\x08\xdf\x92\x50\x4e\x34\xa6\xa0\xee\x04\x16\x84\x45\xcd\x6e\x20\xfd\x1a\xb6\x40\xa7\x76\xea\x12\x25\x65\x33\xdd\x78\x2b\x5e\x4a\x2c\xc1\x0a\xf1\xd6\x2e\x34\xe3\xc0\x06\x23\x55\x21\xbc\x83\x27\x6c\xda\x3b\xb7\xc7\x2c\x62\x59\xe6\xc2\xe6\x52\x00\x57\x06\x10\x16\xa0\x6e\x6b\x66\xf9\x13\xfa\xec\xda\xe3\x7f\x57\xc1\xbd\xfd\x4e\xf5\x6a\x52\x8f\x25\xfe\x70\xb8\x5d\x0d\x1a\x56\x61\x44\x44\xa1\x86\x8e\xe0\xab\xd0\x38\x2f\x51\xdb\x61\x83\x04\xb5\x1a\x4e\xba\x04\x76\x8d\x84\x67\xfe\xb7\xf2\x7e\x61\x2f\xc4\x37\xe0\xbb\x08\x19\x83\xd8\xa4\x1e\xc4\x8f\xbc\x8c\x9c\x22\xbe\x7f\xc8\xce\x00\xd1\x1e\x3e\xdb\x95\x2a\x77\x47\x54\xfc\xe3\xf1\x28\x2d\xb7\xd9\xd7\x0c\x42\x99\x2b\xa7\xd0\xa2\xed\xf0\x38\x12\xa0\xf2\xa7\x85\x40\xaa\xb7\x89\xc4\x8b\x95\xbd\x18\x0a\x25\x72\xf0\xe2\x0f\x00\xc8\x5d\xb3\x81\x1c\x58\x21\x14\x1b\x4b\x55\x58\x61\x5e\x3a\x65\x95\x47\xfa\x11\x7c\x0d\x95\x5c\xa6\x55\x65\x2c\xbd\xb9\x1b\x02\x75\x28\xaf\x40\x73\xf6\xc7\x37\xaf\xd9\x57\x9f\x29\xfa\xd1\x75\x41\x04\xf6\x49\xab\x87\xd8\x41\xff\x64\x1c\x91\xd5\xf7\x42\xc5\x21\xe3\x1a\x32\x25\x44\x6a\xf0\x29\xb0\x93\x94\x65\x99\x34\x16\xc8\x4e\x40\xd5\xce\x05\x62\xc0\xdb\x91\x90\x39\xfc\x06\x0d\xeb\xc2\xd6\x57\x1c\xee\x88\x3e\xfb\xe2\x3e\xfd\x28\x8d\xe8\x55\xbf\xe2\x56\xc6\x5f\x71\xe8\x18\x83\x76\x42\xd6\x67\xb4\x09\xa0\x87\x9e\xd5\xa5\x6a\x2b\xb8\xc1\xc2\xe0\x56\x4e\x0b\xb4\x0b\x1d\xae\xf1\xa1\x28\xf1\xcd\xb2\x7b\x31\xed\x81\x1b\x34\xfe\x19\x84\xb4\x65\x46\xf1\x89\x19\x69\xdb\xf3\x68\xfa\x00\x67\x5f\x99\x90\xf8\x7c\xdc\xc8\xbe\xfb\x78\x84\x2e\x18\x86\x18\x03\x5b\x62\xee\xd1\xd9\xdd\x49\x41\xd3\x14\x10\xf6\xdd\xf9\x71\x87\x3f\x65\x7c\x60\x05\xee\xe9\x81\xcc\x8d\x9d\x9d\x0c\x34\x01\xa5\x4a\xb2\x22\xc5\xfb\xd8\xa7\x05\x83\x0e\x0d\x06\x8b\xdb\x90\xee\x7f\x71\x51\xee\xc5\x14\x85\x51\xd9\xf0\xed\x59\x18\xf2\xed\x59\xff\x56\xdd\xaa\xba\x0b\x19\x40\xe6\x8b\xc9\x44\xe7\x36\x80\xdd\xa2\x14\x96\x06\xf9\x2a\xa3\xfc\x83\x95\x83\x0d\xe0\x25\x4d\x75\xf6\x70\x12\x60\x0f\xfe\x15\x55\x28\x7f\x6c\xa2\x54\xbc\x9b\x56\x57\x0c\x8d\x66\xcb\xc6\xd2\x18\x90\x76\x35\xcb\x7d\x13\xa9\x12\xb6\xdf\x7e\xcc\x5d\xf2\x4a\xb4\x5e\xa8\x7d\x7a\x25\x2e\x99\x11\x4e\xc1\x85\xcb\x11\x2e\xb4\x5c\x7a\x66\xd7\xcc\x23\x41\xc7\x0d\x1b\x8e\x32\x6e\x5c\x99\x7b\xc7\x7e\x9d\x36\x00\xc8\x05\xec\x48\xaa\xe1\xc6\x7e\x80\x6b\xdf\xa3\xfd\xcc\x88\x53\x1a\xd2\x20\x7f\x9a\xa9\x46\x7c\xda\x44\xa9\x4a\xf8\xdb\x0b\xb6\x4e\xc5\x0f\xa3\xb4\xba\x50\x62\x88\xd4\x25\x1e\xd7\xba\xea\xaf\xf9\x87\xc8\x75\xe5\x68\x78\x93\x45\x8e\xc7\x22\x95\xdc\x8a\x6c\xda\x40\x26\xa2\x64\x86\x37\x7d\x8a\x93\xce\x86\x39\x4f\xe0\xd4\x48\x5d\xd2\xce\x96\x42\x1b\xec\x85\xb0\x4b\x0b\x23\x66\x68\xdf\xb8\x7b\x33\x0c\xc8\x7f\x64\x86\x68\xa3\x8f\xfd\xc4\x60\x4f\x43\x1f\x37\x58\x66\xe8\xf3\x15\x74\xb9\x89\x88\x64\x05\x1a\xf8\xa1\x6c\xff\x8c\xdf\x89\xac\xd3\xed\x0f\x2d\xee\x77\xfb\x03\xa9\x16\xfa\x27\xc7\xfc\x9b\x1c\x17\xe3\x0a\x57\x4b\x74\x56\xe1\x6c\x01\xef\x10\x44\x5a\x71\xb6\x90\xe7\xf8\xd3\x00\xd5\x68\xe9\xfa\xc2\xc4\x37\x50\x99\xe6\x8d\x3a\x9c\xe5\xbf\x05\x29\xf5\x37\x2f\x81\xbd\xaa\x07\xed\x39\xcb\x00\x38\xdc\x60\xa3\xe2\xee\x04\xf9\x91\x70\x15\xb6\x73\xa9\x09\x19\x0e\xdc\x40\xd2\xca\xa8\x32\x63\x2f\x9d\x72\x2f\x4a\x5d\xc7\x7d\x1a\xc7\xe2\x16\xcd\x99\xcf\xd6\xa2\x21\x89\x63\xaf\x10\x99\x0d\xc4\x23\x28\x0d\x5c\x55\x25\x84\x53\x53\xc6\xba\x50\xd0\x0c\x8e\xf2\x45\x31\x71\x1f\xc3\x03\xed\xfe\xf2\x32\xe8\x26\x68\xab\x72\x10\x4e\xe1\xed\xb0\x93\x9c\x5e\x32\x90\x99\x15\x4e\x43\x75\x5a\xa3\x93\x51\x49\xdd\xba\xae\xd9\x10\x28\x4f\x13\x51\x65\xb6\x29\x35\x4c\xd7\x83\x54\x20\xfd\x93\x88\xba\x78\xcd\xa4\x01\x4d\xe8\x81\xcb\xcc\xd9\xb3\xa5\xe7\xc0\x0d\x39\x19\x69\x6d\x04\x1c\x7d\xab\x83\x06\xe4\xd7\xc2\x4d\x0b\xcf\x87\x05\x38\x14\x38\xa8\x94\x30\x20\x98\x24\x37\x36\xdf\x9f\xd8\x74\x39\xbb\x9f\x06\x2c\x6e\xa9\xf2\x56\x0a\xd6\xc9\xcc\x00\xa4\x61\x62\x3c\xb1\xd3\xba\x19\x15\xfd\x02\xdc\x3a\x09\xbe\x6c\x40\xcb\x54\x39\x39\x98\x51\xe4\x50\xf7\x8b\xfb\x72\x58\xf0\x9c\x2b\x2b\xaa\xec\x91\x61\xa5\xe2\x25\x50\x21\x3f\x88\x7d\x8f\x6a\x69\x34\xd8\xac\x66\xd2\x98\xc2\xbb\x27\xa4\x1a\x66\xa2\x3c\x21\xd1\x46\x08\x1b\xee\x22\x38\xf8\x81\x1b\x2a\x7c\x72\x3d\x3d\x39\xa8\xc8\xe0\xfd\x30\x85\x48\x1b\x95\x65\xf0\xc2\x14\x77\xc6\x3d\xac\x6c\x1c\x41\x5a\x09\xeb\xdf\x78\x07\x8a\xd1\x63\x01\x6c\x3e\x2c\x17\x03\x91\x7b\x3a\x48\x3e\x63\x0f\x95\xe6\x81\x5b\x51\xa1\x4c\x91\x97\xcc\xe8\xde\xc0\x09\xd1\x0b\x9c\x35\x1c\x32\x1c\x4c\x30\x65\x98\x19\xf3\x2c\x13\x39\x4b\x46\x85\xba\x87\x78\x21\x67\x48\x50\xc4\xf3\x61\x58\x68\x38\xf1\xd8\x3c\xfa\x8a\x8c\x00\xb6\x75\x36\xd1\xc6\x48\xb7\xe1\xfc\xb4\xc1\x86\xab\x9e\x2f\xcc\x19\x4b\x4b\x6f\x11\x7c\x07\x28\x07\x0d\xae\xb1\xf7\x70\x86\x3d\xec\x65\x21\xf4\xfa\x91\x9b\xa0\xc3\x06\x8f\x18\xb0\x84\xcd\xd9\x27\x68\xb5\x73\xe0\xb8\x4f\x8a\x0c\xbe\x28\xcb\x6d\xb3\x91\x2c\x70\x13\xb5\x27\xb1\xf8\x41\x4c\x72\x01\x44\xf6\xef\xd8\x24\x13\xdc\x88\x78\x05\x5d\xe5\x7a\xc2\x87\xa0\x1d\x5d\xe9\x4c\x26\xd3\x9a\x1f\x2c\x6c\xba\x34\x36\xe0\xb6\xdd\x9b\xfe\xff\xee\xb3\x6b\xbc\xcf\x50\x75\x99\x08\xe5\x0e\x4b\x29\x53\x05\xd3\xf9\x64\xc4\x23\x81\x5a\x5e\x88\x57\xc0\x40\xd5\xf3\x36\x1b\xfe\x7c\x7b\x86\x14\x94\xf2\x1f\x41\x90\xdc\x09\xc6\xd3\x14\x76\xe7\xab\x5c\x8c\xb5\x33\x8e\xa3\x19\x86\xcd\x9f\x9b\xf2\x25\xb4\x4f\xfb\xec\xa3\x84\xcb\xb1\xd2\x75\x9d\xcf\x8f\x2d\x72\xad\x09\x8b\xe6\x31\xd8\x28\xda\x8e\x36\x59\x50\x1c\xc1\x87\x30\xf6\x9d\xb9\xf8\xe6\x0d\x33\x18\xba\x3b\xb0\x23\xfd\xc8\x86\x3c\xbf\xe3\xc3\x9a\xa7\x3c\x1a\x35\x22\x1f\xe8\x7c\xec\xd6\xa4\x71\xbe\xbe\xcc\x8c\x68\xf1\x74\x81\xd2\x1b\x34\xd6\x09\xce\xad\x74\xda\x64\x22\xd3\xd2\x14\x06\x5d\x01\x33\x86\xc2\x1a\x3b\x61\x1d\x08\x61\xbd\x36\xd0\xaf\x2c\x66\x90\x23\xc1\xd4\xbe\x88\x3e\xe6\xfa\xc7\xfa\xec\x32\x49\xc4\x04\x23\x9c\x55\xcb\xee\x1c\xc7\x70\xce\x2e\xfc\x06\xac\x6f\x50\xf3\x03\x3b\xff\x91\x27\xf7\xc3\x5c\x17\x2a\x75\x4f\xf1\x48\xaa\x3c\x33\x71\xa8\x42\x7a\xfd\xb8\xde\x48\x18\xc1\x5d\x6c\xe9\x07\x76\xfe\x93\xce\x45\xa5\x59\x96\x70\x93\xf0\xd4\x8d\xde\xcf\x0f\xba\xf3\xa1\x3d\x83\xa6\xe7\x5c\x83\x83\xd8\xc6\x26\x1b\x72\x32\xbb\xdd\xf7\xe8\x29\x28\x55\x03\xef\xad\x42\x51\xed\xe4\x65\x0f\xf8\xfd\x4c\x08\x78\xe3\xbc\xe8\x24\x29\xf2\x28\x05\xb9\x65\x90\x25\xec\xae\xde\xbc\x7a\xa1\xf3\xb8\x33\xea\x6a\x7a\x68\x2b\xde\x14\x35\x82\xbc\x91\x34\x56\xe7\xd3\x3e\x9b\xe9\x9a\x53\x75\xdd\xf5\xf1\x8e\x5d\x38\x6d\x02\xd2\xd4\x2a\x09\xe4\xc1\xfb\x50\x51\x17\xa0\x7d\x77\x2d\x41\xda\xb2\xce\xdd\x7e\xb9\xe3\x4e\x6d\xd5\x8a\xfd\xbd\xd0\x79\x31\xbe\x40\xae\xde\x8c\x0f\x7f\xc0\x66\xa5\xbb\xb0\x5e\xfb\x76\x1f\x05\x33\x72\x8c\x99\x77\xa0\x6d\x3d\x82\x5c\x8a\x45\xe2\xd9\x94\x8d\x38\x58\x97\x2c\xe1\xc9\x08\xe9\x25\xa3\x26\xe3\x5b\x04\x65\x5b\x3b\x73\x14\x34\xd4\xc6\x2e\x73\xcb\xdc\x45\x6f\x21\xe5\x3f\x17\x06\x72\xff\x87\xf2\x41\x28\x96\x3f\x6c\xb2\xbb\x66\xbc\x5f\x7b\x32\xe6\xe5\x58\x38\x55\x2b\xd8\xc5\x6e\xf5\x5e\x95\x5b\xcb\xab\x3b\x20\x6a\xb1\x26\x3f\x5a\xfe\x41\xc3\x86\x0d\x98\x8b\x21\xcf\x53\x48\xab\x70\x9b\x4a\x4d\x19\x4f\xac\x7c\x00\xd6\xf0\x9c\x49\x15\xfe\x6b\x93\x79\xb2\xd8\xc5\xfd\xda\xc1\xbf\xa3\xfb\x52\xe7\xe5\x29\xd3\xfe\x12\x73\xcf\xdd\x81\x8a\x88\xeb\x89\x97\xae\xdf\x8d\x76\x24\xc6\xa8\x14\x96\xf4\xf2\x3c\x4d\x7b\x5e\xed\xea\xf9\x67\x9d\x58\x76\xc2\xa0\xe2\xd0\x64\xd7\x70\xac\xa6\xb3\x5e\xd2\x4d\xa6\xf0\x71\x26\xb9\x8e\x3d\x59\x9c\x36\x46\x98\x29\x6f\x64\xcd\x88\x9e\x4f\xd9\x6b\x17\xca\x3b\xa9\x1c\x0d\x14\xdb\xa5\x4a\xb5\xd5\x84\x8d\x86\x64\x84\xbd\x62\x11\xa2\xe7\x2c\xf7\x22\x3c\xa8\xf8\x7a\xc0\x5c\x9f\x5b\xe6\x60\xb8\x36\x1a\x92\x40\x29\xef\x82\xf2\x2e\x4e\x22\xef\x82\x32\x15\x28\x53\x81\x32\x15\x28\x53\x81\x32\x15\xf6\x9e\xa9\x40\x21\x70\x8a\x8a\x52\x54\x94\xa2\xa2\x14\x15\xa5\xa8\x28\x45\x45\x29\x2a\xba\x50\x08\x50\xa0\x82\x02\x15\x14\xa8\xa0\x40\x05\x05\x2a\x16\x04\x2a\x16\xbe\xe0\x3e\xf6\x03\x4e\xfc\xbf\xcf\xcf\x41\x9b\xb6\xeb\x6f\x1f\x76\x44\xa4\x5a\xa0\x1a\x1c\xd6\x9f\xa5\xb1\xcf\x31\x10\xe2\xee\xb1\x43\x0e\x7e\x6c\x80\xfe\x47\xa0\x79\x47\x07\x9a\xd7\x3d\x34\x37\x98\x21\x8c\xb7\x8c\x66\xe1\xe3\x1d\xc7\xb3\x0e\x17\xd6\x24\x8e\xaa\xdd\x85\x47\x85\x44\x27\x50\x48\x44\xf0\x26\x04\x6f\xd2\xd0\x99\x83\x56\xca\x8e\x06\xe6\x64\xfd\x0e\xbf\x5d\xd9\x61\x4c\x88\x3d\x94\x1e\x9f\x92\xce\x0b\xea\xc6\xe1\xe9\xbc\xdf\xb1\xcd\x90\x5a\x3c\x38\xfd\x8e\x00\x5b\xda\xaa\x54\x55\x90\x96\x3d\xab\x54\x47\x82\x86\x41\x8a\x54\x75\x91\x0f\x56\x91\xa2\xfa\xe3\x67\x54\x7f\x4c\x85\x56\x54\x68\x45\x85\x56\x54\x68\x45\x36\xe0\xa2\x53\x74\x38\x36\x20\x99\x54\xfb\xae\xa7\x38\x40\xa3\x2a\xfa\x98\xb7\x43\xd4\x65\x67\xa1\xb3\x5b\x58\x46\x0b\x68\xba\x3a\x2c\x9d\xa8\x68\x18\xe2\x1b\x24\x44\xdd\xb9\x7f\xf1\xc4\xf6\x19\xfb\xe8\xfe\x37\xfc\x7d\xcc\x25\x38\xe0\x0c\x4b\xb2\xc2\x58\x91\x97\x72\xc3\xb3\x02\x64\xf2\x5e\xb0\xf3\xd8\xd3\x73\xa7\x1e\x06\x95\xa6\xcf\xae\x32\xae\x94\x4f\x68\x00\xa5\x83\x67\xa8\xe7\xbc\xf9\xd3\x26\x17\x31\xf4\x71\x4f\xea\x40\x9c\xb4\xa8\x4d\xdf\x85\xe9\x73\x23\x65\x1f\x71\xc6\x9c\x08\x98\x98\x30\x3b\x3e\x67\x08\x28\x16\x12\xae\x2a\x8a\xf1\x74\xcb\x13\xe5\x3a\x73\xba\x91\xea\xd3\x95\x53\xa7\x74\xeb\x6f\x9b\x31\x6e\xf7\xb1\xe3\x19\xe6\xb8\xe6\x0e\x10\x83\x5c\xf3\x98\x29\x18\x4e\x0c\x72\xdd\x30\xc8\x6d\xa2\x56\x2d\xe2\x8f\x3b\x9d\x10\x3e\x31\xc8\x91\x17\xfa\xf9\x85\xf3\x89\x41\xae\xcb\x7d\x43\x0c\x72\x64\x14\x91\x51\xd4\x34\x91\xc7\xc3\x24\xf7\x54\xb3\x68\x5b\x8c\x72\x9b\x39\xc3\x16\xf1\xc9\x9d\x8e\xde\x46\xa9\x97\xa4\xab\x3d\x0f\x5d\xed\x80\x54\x22\x92\xdc\xf1\x17\x4a\xbd\xac\xb4\x7d\x52\xaa\xc6\x96\x99\xe6\xb6\x9f\xc7\xe8\xc4\xbf\x3f\x3c\xee\x3e\xca\x75\x96\xa1\x70\xdf\x3d\xf7\xdc\xd7\xb2\x2b\xef\x63\x57\x5a\x26\x38\x36\xb1\xd0\xad\x6c\x8f\x70\xd1\x08\x17\xed\xe8\x70\xd1\x4e\x3a\x03\x97\x50\xde\x08\xe5\x8d\x50\xde\x08\xe5\x8d\x50\xde\x9a\x44\x09\xf1\xd1\x91\x2f\x83\xc0\xf8\xa8\x1e\xe4\x39\xd7\x83\x10\xf2\x22\x21\x2f\x12\xf2\x22\x21\x2f\x12\xf2\x22\x21\x2f\x12\xf2\x22\x95\x49\x52\x99\x24\x95\x49\x52\x99\xe4\xec\x8e\x24\x3e\x3a\x82\x79\x5d\x7b\x77\x11\xcc\x2b\xc1\xbc\x12\xcc\xeb\xe9\x67\x9b\x10\x1f\xdd\x5e\xf9\xe8\x56\xa5\x25\x1c\x30\x33\xdd\xba\x19\x1a\x4d\x1c\x75\x94\x95\x41\x59\x19\xa7\x97\x95\x41\x79\x0c\x94\xc7\x40\x79\x0c\x94\xc7\x40\x79\x0c\x7b\xcf\x63\xa0\x00\x39\xc5\x4c\x29\x66\x4a\x31\x53\x8a\x99\x52\xcc\x94\x62\xa6\x14\x33\x5d\x28\x04\x28\x8c\x41\x61\x0c\x0a\x63\x50\x18\x83\xc2\x18\xc4\x56\xd7\xaa\xd8\xb5\xd1\x75\x4d\xbc\x75\x0d\x8f\x1d\x54\x90\x84\x18\xec\x9e\x03\x68\xdf\xf6\x18\xec\xd6\x8d\x7a\x35\x73\xd9\x75\x16\xf7\x3a\x50\x68\x95\xe6\xf1\xb5\xbb\x18\xa9\x30\xe9\x04\x0a\x93\x08\x64\x85\x40\x56\x1a\x3a\x73\x24\x6a\xdc\x71\xc0\xad\x3c\xb1\xeb\x7b\x25\x68\x78\x52\xdf\x4f\x49\x73\xde\x2e\xfb\x5d\x07\x9a\xf3\x77\xec\xa9\xf8\x31\xbb\x66\xc4\x7b\x0a\x74\xcc\xc1\xa8\x68\x47\x82\xd1\x41\xea\x58\x75\x91\x0f\x56\x1d\xa3\xaa\xe8\x67\x54\x15\x4d\xe5\x5f\x54\xfe\x45\xe5\x5f\x54\xfe\x45\x96\xe4\xa2\x53\x74\x90\x05\x14\xfb\xb1\xc8\xa8\xfe\x63\x0f\xfc\x79\x07\x5d\xf5\xd1\xc0\xa4\xb7\xae\x45\xd5\xc4\xa9\xb7\xad\x52\x0f\x62\xd7\x8b\x7b\xa3\xbd\x1a\x41\xec\x7a\xfe\xff\x48\xbe\x91\xcb\xee\xa0\x78\xf6\xf6\x1c\xeb\xae\x32\xee\xb5\xe8\x0a\x71\xef\x35\x8f\x99\xc2\xf8\xc4\xbd\xb7\x0d\xee\xbd\x75\x15\xb1\x46\x16\xbe\x13\x4d\x3e\x20\x3e\x3e\xf2\x77\x3f\xbf\xf4\x03\xe2\xe3\xeb\x72\xdf\x10\x1f\x1f\x99\x51\x64\x46\x9d\x04\x33\x5f\xa7\x86\xd4\x6e\x38\xfa\xd6\x77\xb3\x35\xb2\xf5\x9d\xa8\x7e\x47\xc9\xa5\xa4\xdd\x3d\x37\xed\xee\x80\x94\x28\x92\xf5\xf1\x17\x4a\x2e\x5d\xd1\xf5\x93\x52\x53\xb6\xc9\xea\x77\x48\xf9\x99\xaf\x4c\xc2\xb3\x6a\x4e\xe6\x96\x42\x8b\xf0\x99\x20\xbf\x76\x10\x63\xbc\x86\x61\xd1\xa5\xb5\xea\xe4\xf3\xc2\x6a\xb7\x36\x52\x0d\x21\xfa\x0f\xd3\xf6\x0c\x0f\x7c\x47\xe1\x9d\xca\x74\x36\x9f\xfd\xd9\x7d\xb9\xc3\xc8\x4e\xc3\xa7\x29\x92\xd3\x3c\x66\x8a\xe4\x50\x24\xa7\x9b\x48\x4e\x47\x72\xaf\x7d\x48\x67\x5e\xf0\x1d\xa5\xdd\x4f\x71\x1d\xb2\xfc\x9f\x9f\xe5\x4f\x71\x9d\x2e\xf7\x0d\xc5\x75\xc8\xd7\x43\x66\xd3\x56\xcd\xa6\xce\xc2\x39\xdb\x35\x9c\xb6\x15\xc9\xe9\xcc\xab\xd1\x3e\xa4\x73\x22\xfa\xdd\x53\x4e\x10\x29\x75\xa4\xd4\x1d\x91\x52\x77\x40\xba\x13\x89\xf8\xf8\xcb\x56\x45\xfc\x7e\xa2\x38\xa4\x94\x74\x1a\xbc\xd9\x86\x4a\xf2\x1d\xeb\x2c\x6e\x83\x75\x7a\xdb\x0f\xdc\xc0\x77\x76\x19\xb9\xc1\x81\xd1\x05\x45\x41\x5b\x2a\xd1\xa1\x12\x1d\x0a\xec\x50\x60\xe7\x20\x03\x3b\x1d\xc9\xc5\x35\x22\x3b\xf3\x82\xf1\x28\x4d\x7f\x0a\xed\x90\x17\xe0\xf9\x79\x01\x28\xb4\xd3\xe5\xbe\xa1\xd0\x0e\xf9\x7d\xc8\xac\x3a\xb2\x18\xcf\x11\x97\xec\x74\xe7\x05\x59\x23\xd2\x73\x22\xfa\x1e\x95\xf0\x90\xb6\xf7\xdc\xb4\xbd\x03\x52\xaa\x48\xf6\xc7\x5f\xa8\x84\x67\x45\xd7\x4f\x4a\x6d\x39\xa9\x12\x1e\xc4\x4a\xfd\x7b\xa1\x2d\x37\x3b\xc2\x54\xaf\xa0\xcb\xea\x41\x24\x35\xff\xff\xb9\x2e\x2c\xd1\x70\xaa\xb8\xea\xef\x63\x0b\x55\x55\x67\x41\x3b\x1b\x22\x01\x36\x30\xfe\x97\x96\x34\xd2\xed\x01\x35\xad\xf1\xb2\x65\x3a\x11\xec\xf6\xec\xc7\x2f\x5f\x7e\xfe\xe5\xf2\xeb\xcf\xb7\x67\x25\x39\x2c\x82\xb7\x6a\x50\x0d\xe4\x78\x92\x09\x60\x81\xbd\x8b\xad\x8e\xf9\x94\xc9\xa1\x42\xe8\x6c\x67\xcb\x3b\x4b\xd0\x49\x91\xf2\x11\x9e\x0b\x56\x25\xd1\x44\xc6\xd5\x73\xc3\x52\x69\x92\x5c\xb8\x3e\x97\x14\xde\x15\x4d\xc4\x33\xbf\xd6\x1b\x8a\x4c\x8e\xdc\x22\xa1\x69\xc0\x2d\x94\xca\x8a\xfc\x81\x67\x3d\xa6\x34\xb2\xeb\x03\x55\x68\xa4\x8f\x9d\x65\x20\x06\x7e\xf7\x29\x0b\x63\xf6\x54\xbd\x91\x28\xd4\x38\xcd\x44\xab\x12\xa1\xdb\x33\xca\x7a\x22\xcc\x1a\x58\xb4\xfb\x15\xa6\x20\x8d\x84\xf5\x03\xc1\x6d\x91\x0b\x36\xe4\x56\xb0\x99\x85\xf0\x2d\x09\xe5\xc4\x2a\x32\xb3\x4e\x64\xc9\xa4\xdf\xd4\xec\x06\x92\xb3\x61\x0b\x74\x6a\x3d\x2f\x51\x70\x4e\x1a\xe6\xff\xa6\x4a\x5c\x8c\x6e\xa7\x0a\x52\xbc\x11\x16\x59\x82\x3d\xf3\xb4\xdb\x4c\x35\xca\xe2\x08\xe9\x8d\x0b\xde\x67\xd7\x52\x25\x62\x06\x04\xde\xef\x54\xaf\x62\xd5\xf9\x90\x6b\x94\xd0\xb1\x23\xf8\x2a\x34\xce\x4b\xe6\x7f\xe4\xc1\x0e\x04\xb5\xee\xa4\x97\x2c\xc5\xf8\x5b\x79\xbf\xb0\x17\xe2\x5b\x22\x26\x25\x35\x27\x36\xa9\x07\xf1\x23\x2f\x23\x4a\xb5\xef\x1f\x72\x65\x43\x9c\x8a\xcf\x76\x45\xba\x5b\x43\xe0\x4e\x8f\x46\x43\x3c\x1e\xa5\xad\x38\xfb\x9a\x7b\x03\x74\x51\x91\x33\xb4\x3b\x02\x95\x75\x5a\x08\xe0\x58\xff\x36\x91\x1e\xbd\xff\xc5\x50\x28\x91\x43\xfc\x61\xe0\x0c\x10\xab\xd9\x40\x0e\xac\x10\x8a\x8d\xa5\x2a\xac\x30\x2f\x19\xf0\x93\x27\x5a\x0d\xe4\x30\x80\xfe\xa3\x82\x1c\xb8\xc6\xcb\x83\x57\xbf\x21\x50\xff\x8a\xf4\xb7\x7f\x7c\xf3\x3a\xde\xf6\x1f\x5d\x17\x44\xea\xcd\x1b\xab\x87\xd8\x41\xff\x64\x1c\x91\xd5\xf7\x42\xc5\x21\x7b\x3e\x64\x25\x44\x3a\x43\xa3\x9c\x01\x47\xba\xb4\xa8\xa6\xe7\xc2\x58\x8e\xdc\xdb\x12\xd9\x6d\x23\x65\xf4\x3c\x67\x76\x9f\x7d\x71\x9f\x7e\x94\x01\x5f\xde\x7f\xc5\xad\x8c\xbf\xe2\xd0\x5d\xe7\x99\x8a\x91\x26\x3a\xda\x13\xd0\xc3\xc0\xc5\x5c\xb1\x33\xdc\x60\x61\x70\x2b\xa7\x05\xda\x85\x0e\x83\xab\x30\x6c\x6e\xa0\x5a\xbf\x17\x53\x44\x4f\x8f\x7f\xce\x9c\xfd\x59\xe5\x8d\x7e\x1c\x49\xa4\xe4\x96\xaa\x32\x21\xf1\xf9\xb8\x91\x2b\x44\xcb\x86\x5d\x44\xb4\x7d\x84\x61\xcd\xc5\x9a\x74\xd9\x33\x93\x31\xcf\x94\xed\x91\xd8\x41\xff\x06\x63\xc7\x6d\x48\xf7\xbf\xb8\x28\xf7\x62\xea\xb9\xc7\x63\xc3\xb7\x67\x61\xc8\xb7\x67\x9e\x5a\x7c\x31\x17\x39\x5c\x10\x75\x36\xf2\x28\xff\x60\xe5\x60\x03\x04\xca\xe5\xca\xec\xe1\x24\x54\xd9\x59\xfd\xb1\x89\x52\xd1\x03\xd0\xfb\x15\x43\x83\xdb\xb2\xb1\x34\x06\xa4\x5d\xcd\xea\xdf\x44\xaa\x84\xed\xb7\x1f\x53\x99\x3c\x1a\xad\x17\x6a\x9f\x1e\x8d\x4b\x66\x44\xc9\x24\xe0\x2e\xb4\x5c\x26\x36\xf2\x3d\xbb\xb9\x89\x1b\x36\x12\x67\x4c\xfd\xe1\xc2\x70\x43\x9d\xc5\x44\x3c\x88\x7c\x6a\x47\x52\x0d\x37\xf6\x21\x5c\xfb\x1e\xed\x67\x46\x88\x74\xe6\x19\x91\xce\x3c\x69\xfb\x67\xfc\x4e\x64\x9d\x6e\x7f\x68\x71\xbf\xdb\x1f\xf8\xdc\xd1\xb7\x39\xe6\xdf\xe4\xb8\x18\x33\x55\x8c\xef\xdc\x26\x19\xc4\xcb\xd4\xe0\x6c\x01\x8d\x39\xc4\x7f\x71\xb6\x90\x16\xfe\xd3\x00\xd5\x68\xe9\xfa\x82\xfc\x2a\xf3\xba\x09\xd0\xea\x8f\x04\xfb\x5b\x90\x52\x7f\x0b\x14\x2f\xaa\x9c\xfd\xc0\xbe\x82\x1b\x15\x77\x27\xc8\x8f\x84\xab\xb0\x9d\x4b\x4d\xc8\xf0\xb1\x3b\x65\xd2\xca\xa8\x32\x63\x2f\x9d\x72\x2f\x4a\x5d\xc7\x7d\x1a\xc7\xe2\x16\xcd\x99\xcf\xd6\xa2\x21\x89\x63\x47\x55\x19\xc7\x26\x1e\x41\x69\xe0\xaa\x2a\x21\x9c\x9a\x32\xd6\x85\x82\x66\x70\x94\x2f\x8a\x89\xfb\x18\x1e\x68\xf7\x97\x97\x41\x37\x41\x5b\x95\x83\x70\x0a\x6f\x87\x9d\xe4\xf4\x92\x81\xcc\xac\x70\x1a\xaa\xd3\x1a\x9d\x8c\x4a\xea\xd6\x75\xcd\x86\x40\x79\x9a\xc4\x44\xba\xba\x86\x89\x5c\x30\x56\xe4\x63\xa9\x44\xd4\xc5\x6b\x26\x0d\x68\x42\x0f\x5c\x66\xce\x9e\x2d\x3d\x07\x6e\xc8\xc9\x48\x6b\x03\x4c\xf3\xae\x1d\xaf\x01\xf9\xb5\x70\xd3\xc2\xf3\x61\x01\x0e\x05\xae\xd2\x20\x6d\x61\x92\xdc\xd8\x7c\x7f\x62\xd3\xe5\xec\x7e\x1a\xb0\xb8\xa5\xca\x5b\x29\x58\x27\x33\x03\x90\x86\x89\xf1\xc4\x4e\xeb\x66\x54\xf4\x0b\x70\xeb\x24\xf8\xb2\x01\x2d\x53\xe5\xe4\x60\x46\x91\x43\xdd\x2f\xee\xcb\x61\xc1\x73\xae\xac\x08\x4a\x4a\x79\xd3\x9b\xf2\x12\x00\x7d\xb0\x00\xb5\x21\xf6\x3d\xaa\xa5\xd1\x60\xb3\x9a\x49\x63\x0a\xef\x9e\x90\x6a\x98\x89\xf2\x84\x44\x1b\x21\x6c\xb8\x8b\x10\x1c\xe8\xb9\xe1\x85\x4f\xae\xa7\x27\x07\x15\x19\xbc\x1f\xa6\x10\x69\xa3\xb2\x0c\x5e\x98\xe2\xce\xb8\x87\x95\x8d\x23\x48\x2b\xc9\x06\x37\xde\x81\x62\xf4\x58\x58\x39\x16\x6e\xec\x03\x91\xe7\xc0\x76\xe5\xf4\xea\x9a\x3d\x54\x9a\x07\x6e\x45\x85\x32\x45\x2e\x22\xe5\x82\x37\x70\x42\xe4\x03\x67\x0d\x87\x0c\x07\x13\x4c\x19\x66\xc6\x3c\xcb\x44\xce\x92\x51\xa1\xee\x21\x42\xc9\x99\xbb\x44\x59\xc6\xf3\x61\x58\x68\x38\xf1\xd8\x3c\xfa\x8a\x8c\x10\xb0\xf1\x26\xda\x18\xe9\x36\x9c\x9f\x36\xd8\x70\xd5\xf3\x85\xd9\x6e\x69\xe9\x2d\x82\xef\x88\x14\xd7\x03\x8c\x67\xaf\x9e\xfb\x3d\xec\x65\x21\xf4\xfa\x91\x9b\xa0\xc3\x06\x8f\x98\x9b\x93\x79\xfb\x04\xad\x76\x6e\xdc\x02\x27\x45\x86\x24\x64\xe5\xb6\xd9\x48\x16\xb8\x89\xda\x93\x58\x24\x2e\x36\xe2\x62\x23\x2e\x36\xe2\x62\xdb\x9d\xa7\xa0\x54\x0d\xbc\xb7\x0a\x45\xb5\x93\x97\x3d\xa7\x0a\x3d\x9a\x10\x2c\xc7\x79\xd1\x49\x52\xe4\x51\x0a\x72\xcb\x20\xbf\xd9\x5d\xbd\x79\xf5\x42\xe7\x71\x67\xd4\xd5\xf4\xd0\x56\xbc\x29\xee\xc4\x50\x2a\xe5\xbd\x01\x23\x69\xac\xce\xa7\x7d\x36\xd3\x35\xa7\xea\xba\xeb\xe3\x1d\xbb\x70\xda\x04\x24\xcf\x55\x52\xdf\x83\xf7\xa1\xa2\x2e\x40\xfb\xee\x5a\x82\x84\x6b\x9d\xbb\xfd\x72\xc7\x9d\xda\xaa\x15\xfb\x7b\xa1\xf3\x62\x7c\x01\x55\x4a\x83\x8c\x0f\x7f\xc0\x66\xa5\xbb\xb0\x5e\xfb\x76\x1f\x05\x33\x72\x8c\xf9\x80\xa0\x6d\x3d\x82\x5c\x12\x2c\x29\xf2\x5c\x28\x9b\x4d\xd9\x88\x83\x75\xc9\x12\x9e\x8c\x04\xa8\x10\x51\x93\xf1\x2d\x82\xb2\xad\x9d\x39\x0a\x1a\x6a\x63\x97\xb9\x65\xee\xa2\xb7\x50\xac\x90\x0b\x03\x55\x0b\x43\xf9\x20\x14\xcb\x1f\x36\xd9\x5d\x33\xde\xaf\x3d\x19\xf3\x72\x2c\x9c\xaa\x15\xec\x62\xb7\x7a\xaf\xca\xad\xe5\xd5\x1d\x10\xb5\x06\x0f\x6d\xb0\xfc\x83\x86\x0d\x1b\x30\x17\x43\x9e\xa7\x90\x92\xe1\x36\x95\x9a\x32\x9e\x58\xf9\x20\xed\xd4\x5d\x83\x52\x85\xff\xda\x64\x9e\x2c\x76\x71\xbf\x76\xf0\xef\xe8\xbe\xd4\x79\x79\xca\xb4\xbf\xc4\xdc\x73\x77\xa0\x22\xe2\x7a\xe2\xa5\xeb\x77\xa3\x1d\x89\x31\x2a\x85\xc6\xe6\x82\x8f\x61\x7a\xd2\xb4\xe7\xd5\xae\x9e\x7f\xd6\x89\x65\x27\x0c\x2a\x0e\x4d\x76\x8d\x1c\x5c\xb3\x5e\xd2\x4d\xa6\xf0\x71\x26\xc1\x8f\x3d\x59\x9c\x36\x46\x99\x29\xe7\x84\xa8\x18\x67\x5f\x58\x4a\xc5\x58\xaa\x54\xdb\x4c\xe4\x68\x4e\x47\xd8\x2b\x19\x23\xfa\xce\x72\x2f\xc4\x83\x92\xaf\x07\xcc\xf5\xba\x75\x26\x86\x6b\x65\x3e\xd1\x94\xb2\x2f\x28\xfb\xe2\x54\xb2\x2f\x28\x5f\x81\xf2\x15\x28\x5f\x81\xf2\x15\x28\x5f\x61\xef\xf9\x0a\x14\x08\xa7\xd8\x28\xc5\x46\x29\x36\x4a\xb1\x51\x8a\x8d\x52\x6c\x94\x62\xa3\x0b\x85\x00\x85\x2b\x28\x5c\x41\xe1\x0a\x0a\x57\x50\xb8\x62\x41\xb8\x62\xe1\x0b\xee\x63\x3f\xe0\xc4\xff\xfb\xfc\x1c\xb4\x69\xbb\xfe\xf6\x61\xc7\x45\x2a\x05\xad\x15\x97\xf5\x67\x69\xec\x73\x0c\x88\xb8\x9b\xec\xb0\x83\x20\x1b\x60\x1a\x12\xf0\xdf\xd1\x01\xff\x69\xd3\x71\xa8\x0b\x4d\x11\xc6\x5b\x47\xb5\xf0\x85\xce\xe3\x5a\x07\x0b\x99\x52\x1d\x57\xbb\x8b\x8f\x0a\x8b\x4e\xa0\xb0\x88\xa0\x52\x08\x2a\xa5\xa1\x33\x07\xae\x9e\x1d\x0b\x44\xca\x46\x5d\x7e\xbb\xb2\xcb\x98\x24\x7b\x38\x7d\x3e\x25\x0d\x18\x54\x8f\x43\xd4\x80\xbf\x63\x9b\xe2\xb8\x78\x28\xff\x1d\xc1\xb9\xb4\x57\xb1\xaa\x10\x2e\x7b\x57\xb1\x8e\x04\x2b\x83\xd4\xaa\xea\x22\x1f\xac\x5a\x45\xd5\xc9\xcf\xa8\x3a\x99\xca\xb0\xa8\x0c\x8b\xca\xb0\xa8\x0c\x8b\x2c\xc2\x45\xa7\xe8\x90\x2c\x42\x32\xaf\xf6\x5f\x71\x71\x90\x06\x56\xf4\x3e\x6f\x87\xe0\xcc\xce\x00\x7a\xb7\xb3\x91\x9a\xe9\xcc\xba\x2d\xae\xa8\xe8\x1a\xe2\x1b\xa4\x4c\xdd\xb9\x7f\xf1\xc4\xf6\x19\xfb\xe8\xfe\x37\xfc\x7d\xcc\x25\x38\xe6\x0c\x4b\xb2\xc2\x58\x91\x97\x12\xc4\x73\x1a\x64\xf2\x5e\xb0\xf3\xd8\xd7\x73\xa7\x28\x06\xe5\xa6\xcf\xae\x32\xae\x94\x4f\x79\x00\xf5\x83\x67\xa8\xf1\xbc\xf9\xd3\x26\x57\x32\xf4\x71\x4f\x8a\x41\x9c\xb4\xa8\x57\xdf\x85\xe9\x73\x23\x65\x1f\x71\xc6\x9c\x30\x98\x98\x30\x3b\x3e\xab\x08\x08\x22\x12\xae\x2a\x2a\xf2\x74\xcb\x13\xe5\x3a\x73\xba\xb1\xec\x53\x96\x58\xa7\x74\xfb\x6f\x99\x39\x6f\x2f\xd1\xe5\x3a\x63\xde\xc2\x2e\x10\x53\x5e\xf3\x98\x29\x60\x4e\x4c\x79\xdd\x30\xe5\x6d\xa6\x60\x2d\xe0\xc5\x3b\xa9\x30\x3f\x31\xe1\x91\x67\xfa\xf9\x05\xfc\x89\x09\xaf\xcb\x7d\x43\x4c\x78\x64\x1e\x91\x79\x74\xe4\x0c\x78\x1d\x18\x48\xdb\x62\xbe\xdb\xd4\x3d\xb6\x80\xe7\xee\xa4\xf4\x37\x4a\xd3\x24\xad\xed\xb9\x68\x6d\x07\xa4\x1c\x91\x0c\x8f\xbf\x50\x9a\xe6\x29\xab\x1d\xdb\x65\xb0\xdb\x5f\xc6\xe3\x2b\xa4\xd3\xad\x26\x3e\x6e\x27\xb6\xb7\x98\xb6\xb7\xa3\x28\x5f\x03\x47\x2f\xdd\x43\x74\xa8\x97\x1c\x6a\x0a\xb5\x50\xa8\x85\x42\x2d\x4f\x1f\x8d\xff\x17\x85\x5a\xaa\xa1\x96\xa7\xca\xbb\xd5\x41\x97\x53\x21\xa5\xa7\xd0\x0b\x19\xf1\xcf\xcf\x88\xa7\xd0\x4b\x97\xfb\x86\x42\x2f\xe4\xb6\x21\x73\x89\x42\x2f\xdb\x0a\xbd\x3c\xdd\x7b\xb1\x3a\x08\x73\x2a\xfa\x1c\x85\x62\x48\x8b\x7b\x2e\x5a\xdc\x01\x29\x4b\x24\xd3\xe3\x2f\x14\x8a\x39\x65\x35\xe4\x04\x42\x31\x46\x24\xb9\xb0\x66\x47\x70\x13\x95\x42\x5c\x3d\x60\xd7\xf0\xed\x25\xba\x4a\x15\x73\xe2\x7d\x7c\xb5\x54\x5a\xe6\x1b\x20\xc6\x1a\x62\xac\x39\x3a\xc6\x9a\x93\xc6\x40\x21\xfe\x1d\xe2\xdf\x21\xfe\x1d\xe2\xdf\x21\xfe\x9d\x26\x51\xb2\x03\x16\x60\x72\x52\x1c\xba\x93\x82\x68\x92\x08\x91\xeb\x19\x23\x72\x11\x27\x16\x71\x62\x11\x27\x16\x71\x62\x11\x27\x16\x71\x62\x11\x27\x16\x01\x55\x12\x50\x25\x01\x55\x12\x50\xe5\xec\x8e\xdc\x81\xa7\x80\x08\xf8\x88\x80\x6f\x0b\x7b\x8b\x08\xf8\x5a\x9e\x41\x22\xe0\xa3\x34\x92\xce\x23\x7a\x3e\x97\xaf\x5d\x28\xef\xa4\xd2\x33\x50\x6c\x97\x2a\xd5\xf6\x72\x35\xe6\xf2\x10\xf6\x0a\x60\x8b\x4e\xb3\xdc\x4b\xef\xa0\xdd\xeb\x01\x73\xdd\x5d\x9d\x74\xe1\x5e\x9f\xcd\x0e\xa5\x44\x0b\x4a\xb4\x38\x81\x44\x0b\x4a\x4d\xa0\xd4\x04\x4a\x4d\xa0\xd4\x04\x4a\x4d\xd8\x7b\x6a\x02\xc5\xbc\x29\x0c\x4a\x61\x50\x0a\x83\x52\x18\x94\xc2\xa0\x14\x06\xa5\x30\xe8\x42\x21\x40\x91\x09\x8a\x4c\x50\x64\x82\x22\x13\x14\x99\x58\x10\x99\x58\xf8\x82\xfb\xd8\x0f\x38\xf1\xff\x3e\x3f\x07\x6d\xda\xae\xbf\x7d\xd8\x21\x90\x58\x96\x8a\xbe\xea\xcf\xd2\xd8\xe7\x18\xf4\x70\x57\xd8\x81\x06\x3a\x36\xc0\x10\x24\xc0\xbd\xa3\x03\xdc\xd3\xa6\xe3\x70\x16\x1a\x1f\x8c\xaf\x8e\x5c\xe1\x93\xdd\xc5\xae\x0e\x14\xcc\xc4\x0f\xa8\xdd\xe5\x46\x05\x42\x27\x50\x20\x44\x28\x26\x84\x62\xd2\xd0\x99\x43\xd5\xbd\x8e\x03\xbe\x64\xdd\xbe\xee\x95\x8a\x7a\xbd\xce\x9e\x92\x42\x0b\x0a\xc5\x41\x29\xb4\xdf\xb1\xb5\xe1\x55\x3c\xc4\xfd\x8e\x50\x56\x5a\xa8\x4a\x55\x64\x95\xfd\xa9\x4a\x47\x02\x61\x41\x5a\x52\x75\x91\x0f\x56\x4b\xa2\xa2\xe1\x67\x54\x34\x4c\xd5\x51\x54\x1d\x45\xd5\x51\x54\x1d\x45\x06\xde\xa2\x53\x74\x90\xf5\x05\xfb\x31\xa3\xa8\x3c\x62\x61\x79\xc4\x61\x99\x56\xd1\x8d\xbc\x1d\xe6\xaf\xba\x82\xb5\xd2\x48\x6a\x22\xfa\xea\xac\x12\xa2\xa2\x6c\x88\x6f\x90\xdf\x74\xe7\xfe\xc5\x13\xdb\x67\xec\xa3\xfb\xdf\xf0\xf7\x31\x97\xe0\x68\x33\x2c\xc9\x0a\x63\x45\x5e\x8a\x10\x4f\x0b\x90\xc9\x7b\xc1\xce\x63\x27\xcf\x9d\xa6\x18\xb4\x9b\x3e\xbb\xca\xb8\x52\x3e\x3f\x01\xf4\x0f\x9e\xa1\xca\xf3\xe6\x4f\x9b\xdc\xc9\xd0\xc7\x3d\x69\x06\x71\xd2\xa2\x62\x7d\x17\xa6\xcf\x8d\x94\x7d\xc4\x19\x73\xd2\x60\x62\xc2\xec\xf8\x14\x20\xe0\x58\x48\xb8\xaa\xe8\xc8\xd3\x2d\x4f\x94\xeb\xcc\xe9\x06\x9e\x0f\x5b\x64\x91\xeb\x6c\xbb\xac\x72\xbb\x0e\x05\x57\xe9\xe4\x9a\xbe\x4d\x3c\x72\xcd\x63\xa6\xb0\x36\xf1\xc8\x75\xc3\x23\xb7\xa6\xf6\xd4\x48\x1b\x77\x2a\xc1\x78\x62\x8a\x23\xbf\xf3\xf3\x8b\xce\x13\x53\x5c\x97\xfb\x86\x98\xe2\xc8\xf6\x21\xdb\xe7\x38\x29\xe2\x9e\x66\xfd\x6c\x8b\x1b\x6e\x6d\xff\x56\x23\x15\xdc\xa9\xe8\x68\x94\x30\x49\x2a\xd9\xc9\xab\x64\x07\xa4\xf9\x90\x80\x8e\xbf\x50\xc2\xe4\x69\x29\x13\xdb\x24\x7a\xdb\x7e\x0a\x62\xfe\x20\x13\xc1\x93\x44\x17\x6a\x6f\x4c\x6f\xd0\x87\x4b\xec\x43\xcb\xbc\xc4\x66\xc6\xb7\x45\x0d\x11\x20\x19\x01\x92\x1d\x1d\x20\xd9\x49\xa7\xcd\x12\xbc\x1a\xc1\xab\x11\xbc\x1a\xc1\xab\x11\xbc\x5a\x93\x28\x21\xe6\x37\xf2\x53\x10\x0a\x1e\x15\x71\x3c\xe7\x22\x0e\x82\x3c\x24\xc8\x43\x82\x3c\x24\xc8\x43\x82\x3c\x24\xc8\x43\x82\x3c\xa4\xda\x46\xaa\x6d\xa4\xda\x46\xaa\x6d\x9c\xdd\x91\xc4\xfc\x46\xf8\xaa\x6b\xef\x2e\xc2\x57\x25\x7c\x55\xc2\x57\x3d\xfd\x4c\x12\x2a\x6d\xde\x33\xf3\xdb\x82\x7c\x84\x83\x66\x80\x6b\x99\x8c\xd1\xcc\x04\x47\x09\x18\x94\x80\x71\x32\x09\x18\x94\xb2\x40\x29\x0b\x94\xb2\x40\x29\x0b\x94\xb2\xb0\xf7\x94\x05\x8a\x85\x53\x78\x94\xc2\xa3\x14\x1e\xa5\xf0\x28\x85\x47\x29\x3c\x4a\xe1\xd1\x85\x42\x80\x22\x16\x14\xb1\xa0\x88\x05\x45\x2c\x28\x62\x41\x8c\x70\x2d\x0b\x57\xab\x3e\x6b\x62\x86\x6b\x78\xec\x30\x02\x21\xc4\x10\xf7\x1c\xa0\xf4\xb6\xc9\x10\xd7\x32\xb2\xb5\x88\x29\xee\xa9\xb1\xad\x83\x05\x40\xa9\x0d\xac\xdd\xe5\x47\x05\x46\x27\x50\x60\x44\x40\x28\x04\x84\xd2\xd0\x99\x43\xd7\xd1\x8e\x05\x10\x65\xb3\x3e\xef\x99\x49\x6e\x93\x4e\x9f\x92\x22\xbc\x6d\x46\xb9\xcd\x15\xe1\xef\xd8\xc6\xb0\x2e\xbb\x67\x98\xdb\x00\xd1\x65\xff\xaa\xd6\x91\x40\x67\x90\x76\x55\x5d\xe4\x83\xd5\xae\xa8\x58\xf9\x19\x15\x2b\x53\x55\x16\x55\x65\x51\x55\x16\x55\x65\x91\x61\xb8\xe8\x14\x1d\x94\x61\x48\x46\xd6\x01\x94\x60\x1c\xa6\x99\x15\x5d\xd1\xbb\x61\x99\x6b\x69\x28\x35\xb3\xcd\x75\x5c\x6d\x41\xac\x73\x71\x37\xb4\xd7\x0e\x88\x75\xce\xff\x1f\x89\x2d\x92\x00\xf3\x2f\xec\x87\x7d\x6e\x3f\xe1\xe6\x3a\x0b\xdd\xe2\x3e\x10\x1b\x5d\xf3\x98\x29\x84\x4e\x6c\x74\xdb\x61\xa3\x6b\xa9\x65\x2d\x60\xa5\x3b\xad\xc0\x3f\xb1\xd3\x91\x8f\xfa\xf9\x65\x00\x10\x3b\x5d\x97\xfb\x86\xd8\xe9\xc8\x46\x22\x1b\xe9\xd8\x59\xea\xba\xb0\x92\x76\xc5\x56\xd7\xda\x4f\xb6\x80\xb5\xee\xb4\x74\x38\x4a\xde\x24\xd5\xed\xd9\xa8\x6e\x07\xa4\x21\x91\x20\x8f\xbf\x50\xf2\xe6\x69\x2b\x1f\xdb\x65\xb5\xdb\x69\x1a\x64\x8d\xd6\x6e\x3f\x78\x6a\x4b\x54\x96\x25\x40\x6a\x1d\xc4\xf4\x08\x41\x8d\x10\xd4\x08\x41\x8d\x10\xd4\x08\x41\x8d\x10\xd4\x08\x41\x8d\x10\xd4\x08\x41\x8d\x10\xd4\x16\xce\x08\x21\xa8\x11\x82\x1a\x21\xa8\x11\x82\x1a\x21\xa8\x11\x82\x1a\x21\xa8\x11\x82\x5a\xe7\x7b\x8b\x10\xd4\x5a\x9e\x41\x42\x50\x3b\xdc\xb8\xcb\xc2\x17\x9e\x37\x82\x1a\x41\xa7\x35\x3c\xd6\x55\xa8\x64\x77\x49\xec\x94\xf0\x7d\x74\x09\xdf\x5b\xc7\x4c\x5b\x12\xbd\x5a\x0a\x96\x76\x7a\x89\x36\x94\x61\x43\x19\x36\x94\x61\x43\x19\x36\x87\xa8\x80\x1d\x55\x6a\xcd\x71\xd5\xea\x3f\x47\xbd\x76\x27\x48\x68\xdb\xcf\xfd\xd9\x13\xf6\xd9\x12\x95\x69\x29\xe8\xd9\xee\x54\x26\x42\x3b\x23\x65\x89\xd0\xce\x08\xed\x6c\x83\xc5\x26\xb4\x33\x42\x3b\x23\xb4\x33\x42\x3b\x23\x3b\x6f\xd1\x29\x3a\x48\x16\xf7\xfd\xd8\x52\x44\x42\xbf\x3f\x04\xb4\x0d\xc3\x06\x3b\x84\x3e\x5b\x5a\xcb\xb9\x10\xf3\xac\x83\xc2\x08\x02\x3b\x8b\xeb\xdf\x5e\x39\x20\xb0\x33\xff\x7f\x24\xb5\xc8\x85\xb6\xfa\x96\xdf\x05\xca\xd9\xee\x22\xc3\x0d\xf0\x66\xeb\x87\x7c\x0f\x25\xda\x4b\x61\xee\xa3\x0b\x73\x13\xae\xd9\xda\x2a\xd4\x32\x40\xb3\xe3\x0f\xce\x13\x92\x19\xf9\x9f\x9f\x5f\xb0\x9e\x90\xcc\xba\xdc\x37\x84\x64\x46\x06\x10\x19\x40\xb3\x93\x78\x5c\x10\x66\x9b\x9a\x40\x3b\xc5\x2e\x5b\xea\xe8\x5a\x06\x5a\x76\xfc\x7a\x1a\x25\x51\x92\x5e\x76\xfa\x7a\xd9\x01\xa9\x3f\x24\xa5\xe3\x2f\x94\x44\x79\x6a\x2a\xc5\x0e\x80\xc9\x76\x96\x95\xf8\x6a\x92\xeb\x6f\xd3\x6d\xe7\x26\x26\x5a\x29\x91\x58\xf6\xe1\xe3\xe7\x8f\x37\x1f\x4b\xf3\xd0\x6a\x06\xdf\x77\x02\xaa\x45\xa5\x07\xb6\x82\x5a\x0a\xe6\xf9\xcd\xe9\x2a\x57\x30\x9c\x16\x97\xce\xc2\xae\xef\xec\x62\x98\xb9\x5f\x9f\xe1\x49\xf2\x0b\xba\xf5\xd3\x04\x9b\x22\xa4\x84\x1e\x48\x40\x3a\x1c\x89\x3f\x7f\xbc\xe9\xe4\x3c\xfc\x59\x58\x3a\x0c\x4d\xbd\xa0\xc3\xd0\xf9\x61\x18\x09\x9e\x6e\xe7\x34\xfc\xe5\xe3\xe5\x87\x4e\x8e\xc3\x5f\x04\x4f\xe9\x3c\x34\xf5\x82\xce\x43\xe7\xe7\x41\xfb\xb7\xb7\x72\x24\xbe\x5c\xdd\x7c\xfa\xf2\xeb\x75\x27\xa7\xc2\x0f\x93\x0e\x46\x53\x2f\xe8\x60\x74\x7e\x30\xba\xc9\xf1\x58\xdc\x11\xca\xf7\x68\x1e\xf3\x41\xe5\x7b\x5c\x71\x8b\xa8\x67\x23\x01\xa0\x4c\x6e\x75\x7f\xfb\xfa\xd9\x3b\x4a\x3d\x40\x18\xf3\x76\x29\x13\x2a\x9d\x68\xa9\xac\x71\xb3\x32\x18\xc8\x6f\xc2\xa0\xdb\xac\x02\x76\x6b\x35\x54\x7b\x84\xa2\x19\x8f\x7c\xe4\x6f\xc5\x80\x45\x66\x75\x68\x13\xe2\x5d\x4c\x7c\xe3\xe3\x49\xe6\xcb\x35\x1e\x47\x3a\x8b\xfe\x50\xd7\x1b\xd7\x41\x77\x76\xdf\xbd\x7a\x95\xe9\x84\x67\x23\x6d\x6c\x83\x25\xed\x8e\xd9\x85\x99\x1a\x2b\xc6\xa5\x25\x2d\x32\x6e\xac\x4c\x8c\xe0\x79\x32\xba\xc8\xf4\x70\x28\xd5\xf0\xd5\x7f\xe1\x7f\xff\xdf\xbf\xff\x7b\x61\x44\xfe\xee\x5e\x8e\x93\xd1\xb4\xcf\xc2\x6c\x34\xff\xbc\x6e\xba\xcb\xdc\x2e\xd8\x47\xb2\xcb\xba\x12\xed\xea\xf2\xe6\xfd\x5f\x3a\x91\x67\x10\xf7\x25\x69\xd6\xd4\x0b\x92\x66\xdd\x4b\xb3\xee\x61\x4e\xc2\x89\xf8\x72\xdd\x8d\x17\xe0\x4a\x1b\x72\x03\x34\xf6\x82\xce\x43\xf7\xe7\xa1\xeb\xf0\x75\x3c\x0e\xbf\x75\x74\x1a\x0a\x3a\x0c\x8d\xbd\xa0\xc3\xd0\xd5\x61\xf8\x8e\x3d\x31\xf4\xf2\xea\x9f\x4e\x89\xdb\x3a\x3a\xc4\x8e\x23\x30\xbf\x4b\x3b\xba\xaa\x2b\xa7\x74\xd0\xe8\xa0\x3d\xef\x48\x0c\x1d\x0a\x3a\x14\x6c\x3b\x87\xe2\xa8\x23\x32\x74\x2e\xe8\x5c\xb0\xed\x9c\x8b\xd3\x88\xcc\xd0\x01\xa1\x03\xc2\xb6\x64\xc3\x53\x84\x86\x22\x34\xae\xab\x01\xdf\x3f\x00\x15\xad\x37\xa4\xf9\x5f\x28\xde\x44\xf1\xa6\xe7\x14\x6f\x22\x19\x4d\x32\x9a\x6d\x49\x46\x1f\x73\xdc\x89\xce\x05\x9d\x0b\xb6\xa5\x73\x71\xb4\xf1\x27\x3a\x14\x74\x28\x58\xa7\x87\xe2\x3b\xb6\x79\x1c\xca\x20\x08\x62\x25\x02\xb5\x1d\xf8\x3d\xfc\x4e\x30\x1d\x3b\x02\xe2\xf3\x08\x8e\x2d\x0e\x12\x95\x19\x3e\xf7\xca\x3d\x42\x43\x63\xe4\x7b\x39\x30\xdf\x0b\xa1\xa1\x2d\x78\xf0\x18\xd0\xd0\x36\x97\x68\xcb\x70\xd1\x1a\x44\xda\x51\xa2\x6e\x10\x3a\x1a\xa1\x70\x3c\x3f\x14\x0e\x42\x47\xeb\x72\xdf\x10\x3a\xda\x5a\x13\xdb\x28\xc5\xc8\x20\x22\x83\x88\xd0\xd1\x4a\x74\xb4\xa7\xf8\x21\x96\xe1\xa4\x9d\x8a\xde\x46\x68\x69\xa4\xa7\x9d\xbe\x9e\x76\x40\xea\x10\x49\xed\xf8\x0b\xa1\xa5\x9d\x9a\x8a\x71\x9c\x68\x69\xbb\xa3\x6b\xfd\xb5\xc1\x23\xd9\x8a\xb0\x75\x77\x8a\x06\x11\xb5\x92\x8a\x41\x44\xad\x44\xd4\xba\xc1\x62\x13\x51\x2b\x11\xb5\x12\x51\x2b\x11\xb5\x92\x75\xb4\xe8\x14\x11\x51\x2b\x11\xb5\xb2\x25\x06\xd4\xb6\x89\x5a\x9b\xec\x89\x43\xa3\x6a\x6d\x63\x23\x35\xe4\x88\x6d\x62\x21\x11\x49\x2b\x91\xb4\x52\x14\x6e\x67\x12\x2b\xba\xc8\xca\x43\xfb\x0c\xef\xf8\xad\x26\x26\x3e\xf5\x82\x7f\x62\x6a\xe2\x82\xcf\x1f\x53\x72\x22\xe5\xe8\x2d\x78\xf0\x18\x72\xf4\xd6\xd7\x24\x9a\x72\xf3\x8e\x3f\xaa\x4b\xd9\x78\xe4\x82\x7d\x7e\x51\x5e\xca\xc6\xeb\x72\xdf\x50\x36\x1e\xd9\x01\x64\x07\xcc\x4f\xe3\x91\xe4\xe3\x3d\xd9\x12\xd8\x0d\x5f\x69\x3b\x6f\x4f\x53\x26\xde\xf1\x6b\x69\x1b\x9f\x03\xd2\xcb\x48\x2f\x3b\x22\xbd\xec\x80\xd4\x1f\x92\xd2\xf1\x97\xed\x49\xe9\xfd\xe6\xdf\x3d\x6f\xa5\x62\x9b\x19\x78\x1b\xaa\x14\xdf\xb1\x36\x39\x78\xaf\x42\x7c\xbe\x9a\x8c\xb7\x81\x3b\x92\xa4\x5f\x2b\x57\x64\x83\xe4\xdb\xb2\x63\xf5\x99\xca\xbb\xd5\x4b\xb1\x50\xd6\x6d\x79\x41\xc8\x71\xdf\x7a\x89\xb6\xeb\xb8\xdf\x96\xa5\x15\x6e\xd4\xf9\xea\xa7\xcd\xad\xae\x9f\xc2\x2d\xfd\xbc\xac\x2f\xd2\x1b\xb7\x33\xaf\xa4\x37\x92\xde\xf8\x44\xbd\x71\xdf\x88\x56\x1b\xe6\x2b\x11\x96\x15\xfe\x42\xe7\x93\x92\x46\x48\xf7\xa4\xa4\x91\xc3\x03\x76\xda\x34\x7d\xe4\x54\xa0\x01\x28\x89\x84\x82\x15\xcf\xcf\x79\x43\x49\x24\x5d\xee\x1b\x4a\x22\xa1\xf0\x14\xd9\x05\xf3\xd3\x48\x49\x24\xdb\x81\x75\xda\xdc\xb1\x79\x2a\x5a\x1b\x25\x95\x90\x9e\xf6\x1c\xf4\xb4\x03\x52\x87\x48\x6a\xc7\x5f\x28\x38\xe0\x5b\x3e\x29\x25\xe3\x68\x82\x03\x3a\xad\x6d\xf1\x6d\x82\x39\x55\x80\x2f\xf4\x80\xfd\xaa\xd3\xb6\x98\x4e\xef\xe3\x8b\xb3\x2f\x6d\x58\xb6\x0c\xd8\x12\xbf\x3b\x45\xf0\x47\xad\xef\xc7\x3c\xbf\x37\xa5\x8d\xfa\x08\x56\x8e\x78\x00\xfc\x07\xbc\xfb\xa7\x13\xc1\x6e\xcf\x7e\xfc\xf2\xe5\xe7\x5f\x2e\xbf\xfe\x7c\x7b\xd6\x07\x30\x4c\xe0\xbe\x03\xec\x08\x0d\xa2\x5b\x8e\x27\x99\x18\x0b\x65\xd9\x5d\x6c\x75\xcc\xa7\x4c\x0e\x15\x22\xf7\x38\x2b\xd9\xd9\x58\xee\x96\x2f\x1f\xe1\xb9\x60\x4e\x47\x60\xdc\xa2\x6a\x06\x4d\x9f\x1b\x96\x4a\x93\xe4\xc2\xf5\xb9\xcf\xde\x67\x12\xfa\x53\xd1\x14\xb8\x71\x8b\x32\xd3\x50\x2e\x6c\x91\x3b\xb9\xc0\x2d\xe3\x6a\xca\x62\x91\xb5\x54\x56\xe4\x0f\x3c\xeb\x31\xa5\x73\xe8\x96\x1d\x89\x69\x68\xa4\xfc\x2e\xca\x73\x23\x54\x0a\xef\x87\x31\xe3\x7c\xb0\xb4\x70\x77\x3d\xe3\xcc\x38\xcd\xc1\x75\x2c\x00\x04\x49\x83\x9d\xc2\xe9\xab\x61\xd5\xb8\x5f\x61\x0a\x3c\xe4\xcc\x48\xb0\x81\xe0\xb6\xc8\x05\x1b\x72\x2b\xd8\xcc\x42\xf8\x96\x84\x72\x62\x0f\x60\x6d\xf8\x44\x62\xe7\x16\x35\xbb\x81\x64\x6b\xd8\x02\x9d\xda\xa5\x4b\x14\x90\x93\x46\x19\x73\x5a\x8f\x53\x5e\xa4\x2a\x84\x77\xe8\x54\x80\xaa\x8c\xb0\xec\xd1\xe9\xc5\xb9\xb0\xb9\x14\x0f\x6e\x33\x8d\x35\xec\x5b\x03\x90\x50\x11\x51\x08\x17\xbc\xcf\xae\xa5\x4a\xc4\x0c\x06\x95\xdf\xa9\x5e\x05\xea\xb1\xc4\x1f\x0e\xb7\xab\x41\x7b\x0a\x18\x4a\xb1\x23\xf8\x2a\x34\xce\x9d\x4e\xfe\x20\x75\x61\x18\x6c\x90\xa0\x32\xc3\x49\x97\xa9\x53\xed\x12\x9e\xf9\xdf\x2a\x2c\x97\x2f\xc4\xb7\x44\x4c\x6c\x84\xb8\xc2\x26\xf5\x20\x7e\xe4\x65\x04\xc9\xf1\xfd\x73\xdd\xc9\x05\x20\x5b\xf1\xd9\xae\x48\x77\x6b\x08\xdc\xe9\x51\xa9\x8f\xc7\xa3\xb4\xce\x66\x5f\x73\x6f\x80\xae\x28\x72\x86\x76\xc1\xa3\x87\x19\x4a\x0b\xc1\xac\x66\xe2\xdb\x44\x7a\xf0\xb0\x17\x43\xa1\x44\x0e\x7e\xfb\x81\x33\x10\xac\x66\x03\x39\xb0\x42\x28\x36\x96\xaa\xb0\xc2\xbc\x74\x8a\x28\xf4\x6d\x20\x87\x01\x73\x0c\x15\x58\xa6\x55\x65\x2c\xbd\xb9\x1b\x02\xf5\x23\xaf\x1c\x73\xf6\xc7\x37\xaf\xd9\x57\x8f\x0d\xf4\xd1\x75\x41\xa4\xde\xfc\xb0\x7a\x88\x1d\xf4\x4f\xc6\x11\x59\x7d\x2f\x54\x1c\x32\xae\x21\x53\x42\xa4\x06\x9f\x02\x1b\x48\x59\xc0\x91\xea\xb9\x09\x03\x35\x3a\x17\xc6\xf2\x1c\x6e\x4a\x99\xc3\x6f\xd0\xb0\x2e\x6c\x7d\xc5\xe1\x8e\xe8\xb3\x2f\xee\xd3\x8f\x32\xc0\x5b\xf9\xaf\xb8\x95\xf1\x57\x1c\x3a\xc2\xa0\x9d\xc0\x3f\x1a\xf5\x7d\xe8\xa1\x5b\x1e\x21\x1f\xaa\x76\x80\x1b\x2c\x0c\x6e\xe5\xb4\x40\xbb\xd0\x61\x70\xc2\x85\xcd\xad\xc4\x37\xcb\xee\xc5\x14\xc1\x9b\xe2\x9f\x33\x67\x1f\x5a\x66\x14\x9f\x98\x91\xb6\x3d\xf6\x38\x92\x09\xd0\x93\x4a\x55\x99\x90\xf8\x7c\xdc\xc8\xbe\xfb\x78\x84\x2e\x22\xd8\x17\x62\x46\xe4\x82\x25\xa8\xe5\xf5\xbc\xd9\xe9\xfe\xa5\xf3\x80\x1a\xc7\xf8\xc0\x0a\xdc\xd3\x03\x99\x1b\x3b\x3b\x19\x68\xde\x79\x62\xd8\x34\x20\x22\x05\xfd\x18\x8c\x11\xb7\x21\xdd\xff\xe2\xa2\xdc\x8b\x29\x0a\xa3\xb2\xe1\xdb\xb3\x30\xe4\xdb\xb3\xfe\xad\xba\x55\x75\x97\x31\x80\x59\x14\x13\x44\xc0\xc0\x0b\x02\xa5\xb0\x34\x70\xb1\x96\xf2\x0f\x56\x0e\x36\x80\x97\x34\xd5\xd9\xc3\x49\x80\x3d\xf8\x57\x54\x86\xfc\xb1\x89\x52\xd1\xe3\x5f\xf9\x15\x43\x83\xd8\xb2\xb1\x34\x06\xa4\x5d\xcd\x2a\xdf\x44\xaa\x84\xed\xb7\x1f\x53\x96\x3c\x0e\xad\x17\x6a\x9f\x1e\x87\x4b\x66\x44\x09\x64\xe6\x2e\xb4\x5c\x26\x78\x7d\xc1\xd1\xd3\x83\x72\xc3\x46\xdc\xbe\xa9\x3f\x5c\xe8\xc8\xaf\x83\x28\x8a\x07\x91\x4f\xed\x48\xaa\xe1\xc6\x36\xfe\xb5\xef\xd1\x7e\x66\x84\x30\x2f\x9f\x11\xe6\xe5\x93\xb6\x7f\xc6\xef\x44\xd6\xe9\xf6\x87\x16\xf7\xbb\xfd\x33\x39\x96\x16\x7d\x8f\x63\xfe\x4d\x8e\x8b\x31\x53\xc5\xf8\xce\x6d\x92\x41\xbc\x4c\x0d\xce\x96\x9b\x18\x8c\xac\xe2\x6c\x25\x3c\xcb\x60\xcb\x82\x1a\x2d\x5d\x5f\x10\xde\x71\x5e\x37\x71\xca\xb7\xfb\xdb\xdf\x82\x94\xfa\x5b\x40\x98\x54\xe5\xec\x07\xf0\x47\xdc\xa8\xb8\x3b\x41\x7e\x24\x5c\x85\xed\x5c\x6a\x42\x86\x8f\xdd\x29\x93\x56\x46\x95\x19\x7b\xe9\x94\x7b\x51\xea\x3a\xee\xd3\x38\x16\xb7\x68\xce\x7c\xb6\x16\x0d\x49\x1c\x3b\xaa\xca\x38\x36\xf1\x08\x4a\x03\x57\x55\x09\xe1\xd4\x94\xb1\x2e\x14\x34\x83\xa3\x7c\x51\x4c\xdc\xc7\xf0\x40\xbb\xbf\xbc\x0c\xba\x09\xda\xaa\x1c\x84\x53\x78\x3b\xec\x24\xa7\x97\x0c\x64\x66\x85\xd3\x50\x9d\xd6\xe8\x64\x54\x52\xb7\xae\x6b\x36\x04\xca\xd3\x24\xe6\x5e\xd5\x35\x4c\x84\xa2\xb4\x22\x1f\x4b\x25\xa2\x2e\x5e\x33\x69\x40\x13\x7a\xe0\x32\x73\xf6\x6c\xe9\x39\x70\x43\x4e\x46\x5a\x1b\x01\x47\xdf\xea\xa0\x01\xf9\xb5\x70\xd3\xc2\xf3\x61\x01\x0e\x05\xae\xd2\x20\x6d\x61\x92\xdc\xd8\x7c\x7f\x62\xd3\xe5\xec\x7e\x1a\xb0\xb8\xa5\xca\x5b\x29\x58\x27\x33\x03\x90\x86\x89\xf1\xc4\x4e\xeb\x66\x54\xf4\x0b\x70\xeb\x24\xf8\xb2\x01\x2d\x53\xe5\xe4\x60\x46\x91\x43\xdd\x2f\xee\xcb\x61\xc1\x73\xae\xac\x08\x4a\x4a\x79\xd3\x9b\xf2\x12\x00\x7d\xb0\x00\xb5\x21\xf6\x3d\xaa\xa5\xd1\x60\xb3\x9a\x49\x63\x0a\xef\x9e\x90\x6a\x98\x89\xf2\x84\x44\x1b\x21\x6c\xb8\x8b\xe0\xbc\xef\xb9\xe1\x85\x4f\xae\xa7\x27\x07\x15\x19\xbc\x1f\xa6\x10\x69\xa3\xb2\x0c\x5e\x98\xe2\xce\xb8\x87\x95\x8d\x23\x48\x2b\x61\xfc\x1b\xef\x40\x31\x7a\x2c\xac\x1c\x0b\x37\xf6\x81\xc8\x73\x00\xdb\x75\x7a\x75\xcd\x1e\x2a\xcd\x03\xb7\xa2\x42\x99\x22\x17\x11\x1f\xce\x1b\x38\x21\x32\x81\xb3\x86\x43\x86\x83\x09\xa6\x0c\x33\x63\x9e\x65\x22\x67\xc9\xa8\x50\xf7\x10\x13\xe4\xcc\x5d\xa2\x2c\xe3\xf9\x30\x2c\x34\x9c\x78\x6c\x1e\x7d\x45\x46\x08\xd8\x78\x13\x6d\x8c\x74\x1b\xce\x4f\x1b\x6c\xb8\xea\xf9\xc2\x2c\xb1\xb4\xf4\x16\xc1\x77\x44\x8a\xeb\x01\xc6\xb3\x57\xcf\xfd\x1e\xf6\xb2\x10\x7a\xfd\xc8\x4d\xd0\x61\x83\x47\xcc\xcd\xc9\xbc\x7d\x82\x56\x3b\x37\x6e\x81\x93\x22\x43\x0c\xe4\x72\xdb\x6c\x24\x0b\xdc\x44\xed\x49\x2c\x12\x14\x34\x41\x41\x13\x14\x34\x41\x41\xef\xce\x53\x50\xaa\x06\xde\x5b\x85\xa2\xda\xc9\xcb\xde\xff\xc7\xde\xbb\x35\xb7\x8d\x5c\x7b\xdf\xf7\xfe\x14\x5d\xda\x17\xb4\x2b\x16\x15\x4d\x3d\x55\x99\xb2\x6b\x5f\x28\xb6\x26\x8f\xf3\xce\xc4\xda\xb6\x9f\xc9\x8d\x53\x3b\x4d\xa0\x49\xa1\x04\x02\x08\x0e\x92\x95\x5d\xfb\xbb\xbf\xd5\xab\x0f\x00\x48\x90\x04\x21\x80\x38\xf0\x3f\x37\xd6\x48\x24\xd0\xe7\x5e\x6b\xfd\xd6\x41\x8a\x42\x4f\x89\x81\xd9\x6a\x5c\x42\xc7\xc9\x62\x7b\x0b\xf2\x94\x91\x5f\xb0\x3c\x7a\xe3\xe2\x81\xce\xed\xca\x28\x8b\xe9\xe6\x59\xf6\xa4\x58\x88\x95\x17\x04\xda\x1a\x70\xef\x25\x69\x18\x3f\xcf\xd9\x46\xd3\xa4\xa8\x2b\x8f\x8f\x77\xec\x52\x4a\x13\xe4\x96\x56\x70\x19\x37\xd6\x87\x82\xb8\x40\xcf\x97\xc7\x12\x39\x2a\x87\xb1\x5c\x2f\x0b\x2e\xc5\xd6\x30\x60\xff\xca\xc2\x38\x5b\x5f\x52\x78\xca\xd2\xe7\xab\xf7\xea\xb1\x9e\x3c\xb0\xfe\xa8\x9f\xfb\x24\x58\xe2\xad\x95\xa7\x1d\x49\x5b\x4f\x74\x2f\x09\xe6\x64\x71\x2c\x82\xd4\x7f\x66\xf7\x9c\xb4\x4b\xe6\x70\xe7\x5e\x90\x08\x61\x25\x19\xfd\x44\x12\xb6\x43\xa9\x8e\x92\x84\x5a\xd9\x64\x9e\x32\x79\xd0\xa7\x54\xbd\x39\x16\x09\x95\x71\x5e\x79\x8f\x22\x60\xf1\x63\x93\xd5\xb5\x61\xfd\xea\x49\x99\xf7\xd6\x42\x8a\x5a\x46\x2f\x96\xb3\x77\x95\x2f\x2d\x2d\xee\xd0\x55\x9b\xa8\x4d\x6b\x34\x7f\x23\x61\xd3\x02\x8c\xc5\x8a\xc7\x2e\xb9\x4c\xc8\x45\x15\x3c\x33\xee\xa4\xde\xa3\x97\x3e\xcb\x63\xd0\x0b\xcc\xff\x35\x19\xa7\x54\x35\xb1\x5f\x3d\xf8\xef\xca\x7c\x19\xc6\xf9\x2e\x0b\xf5\x21\x26\x3f\xb7\x20\x11\x51\xcd\xa7\x3a\x74\xf5\x6a\x4c\xef\xc5\x5a\x09\x85\x49\x1a\x0b\xbe\xa6\xe1\x71\xdd\xb7\x5a\xec\x7a\xab\x3f\x2b\xaf\x65\x79\x19\x14\x0c\x9a\xec\xab\x4a\x18\xbc\x69\x25\x6d\x32\x84\x4f\x1b\x6e\x74\xec\xc5\xd7\x69\x25\x49\x86\x4f\x08\x32\xc1\x6f\x7e\x61\x6f\x26\xf8\x5c\xa4\xea\xd0\x01\xa3\xec\x85\xd0\x6b\x3a\x78\x65\x32\x8b\xf5\xdd\x6d\x64\xfb\x70\xc9\x64\x63\x0f\x39\x59\xc8\x2f\x6b\xa7\x4e\x38\x56\xc0\xb1\x62\xec\x8e\x15\x70\x45\x80\x2b\x02\x5c\x11\xe0\x8a\x00\x57\x84\xde\x5d\x11\xc0\xb8\x81\x3d\x81\x3d\x81\x3d\x81\x3d\x81\x3d\x81\x3d\x81\x3d\x77\x5e\x02\x20\x11\x20\x11\x20\x11\x20\x11\x20\x11\x3b\x48\xc4\xce\x2f\xc8\x97\xbd\x57\x03\xff\x9f\xdb\x63\x50\xe7\xd9\xe5\x6f\x0f\x1b\x79\xe4\x71\xa5\xa1\x2b\x7e\xf5\x92\xf4\x1c\x11\x87\x3c\xc0\x06\x89\x35\x1a\xe4\xb3\x1b\x6f\x02\xb8\x30\x69\x99\xe1\x28\xf9\x9b\xf1\x43\xb8\x46\x7d\xee\x65\xc0\x66\xa8\xa9\x37\x64\x77\xea\xed\x68\xc4\xc0\x4c\x20\x06\x06\x59\x37\x90\x75\xa3\xa2\x31\xc3\x14\x37\x46\x92\x70\xe3\xa8\x96\xfe\x74\xb0\xa5\xca\x7b\xb3\xf7\xa6\x4e\x49\x7e\x23\xd1\x61\x40\xf2\xdb\x2b\xb6\x2b\x25\x88\x4e\x15\x7e\xa2\xcc\x20\x07\x25\x9f\x62\x36\x90\xd3\x4a\x3e\x23\x49\xbb\x00\xb1\xa7\x38\xc9\x83\x15\x7b\x10\xe8\x7a\x46\x81\xae\x88\xe8\x41\x44\x0f\x22\x7a\x10\xd1\x03\x8d\x6d\xd7\x2e\x1a\xa4\x4f\x7c\x3f\xba\x11\x5c\xfa\x77\xba\xf4\x0f\x49\x63\xb2\x56\xe0\x6e\x2a\x26\x95\xc5\xab\x03\x4a\x51\xa1\x44\x52\x3b\xde\xfb\x05\xe1\x42\xfc\x20\x9f\x9c\x85\xfc\x89\x3b\xe9\x9c\xb1\x5b\xf9\xaf\xf9\xfd\x9a\x7b\x64\x29\x4b\x98\xe3\x67\x49\x2a\xe2\xfc\xca\xd0\x99\xe6\x7d\xef\x41\xb0\x99\x4d\x55\x39\x93\x92\xa1\x91\x66\xe6\xec\xce\xe7\x41\xa0\x99\x3a\xc9\x1b\xdc\x57\x22\xce\xf5\xcf\x4d\xce\x60\x6a\x63\x4f\x92\x80\x1d\x34\x2b\x48\x2f\xcc\xf0\xc9\x9e\xb2\x5b\x35\x62\xf2\xf4\x8f\x12\x33\x3a\xda\x6d\x85\xd2\xf6\x3b\x3c\x28\xc8\xc4\xcf\x1d\x0f\x94\x6c\xcc\x74\x61\xe9\xb0\xaf\xa8\xb3\xb7\x7f\x75\x5b\x93\xeb\xa4\xf8\xb2\x54\x8e\x6b\xeb\xcd\xa8\xc4\x85\x4a\x5c\x27\xa9\xc4\x75\x94\xc0\x50\x2c\xbd\x35\x09\x7c\x8c\x7a\x5b\x30\xad\x9e\x1f\x51\x46\xbd\xad\x36\xd7\x0d\xea\x6d\x41\xdc\x87\xb8\x3f\xca\x52\x5b\x2f\x10\xf8\xbb\xaa\xb2\x75\xa4\x01\xa7\x58\x56\x6b\x12\x12\x19\x1c\xfa\x20\x7e\x4d\x5c\xfc\x1a\x90\x94\x83\xcb\xd8\xfe\xe5\xcc\x1d\xfa\x26\x25\x36\x74\x5a\x3c\xab\x7d\x27\xb9\xab\x28\x0e\x7f\x3c\x77\xed\x2a\xe7\x84\x41\x20\x9c\x94\x7d\xbc\xfd\xf5\xf6\xdb\x6d\xae\xe2\xa5\x21\xa3\xf7\xd7\xa8\xa9\xa5\x1f\xa1\xe4\x0d\xe5\x83\x26\xbf\x71\x47\xcd\xaf\x71\x82\xec\x6c\xea\xc9\x76\xf9\xc6\x61\x79\x86\x9b\x43\xcf\x61\xb7\x1b\x84\x56\x84\x71\x4f\x1c\x08\x1f\x35\xeb\xff\x2f\xb7\xdf\x5e\xbe\xf8\xff\x22\x52\xac\x7c\xac\x7c\xf5\xeb\x96\x57\xfe\xbd\xe0\x6e\x37\x4b\xff\xff\xde\xde\x7c\x7c\xf9\xda\xff\xbf\x82\xbb\x58\xfc\x58\xfc\xea\xd7\x2d\x2f\xfe\x50\x7f\xbb\x93\xf5\xff\xf9\xee\xdb\xa7\xcf\x7f\xfb\xfa\xf2\x2d\xa0\xfb\x88\x5d\x80\x5d\xa0\x7e\xdd\xf2\x2e\x68\xc1\x9f\x60\x77\x2b\xc6\xe4\x5b\x70\xc7\x53\x95\x04\xe9\x5e\xb0\xff\xf7\xe5\x57\x26\x5b\x2d\x77\x6d\x96\x08\x1b\x4e\xa0\x73\x99\xe8\x9d\x6c\xb2\x0b\x51\xc6\x12\x57\x1c\xed\x70\xb0\x35\x2c\x7d\xb8\x1b\x1c\x7b\xb0\xdd\xdd\x7c\xfb\xf0\x7f\x5f\x7e\xac\x11\x86\xc3\xa1\x86\x43\x4d\xfd\xba\xed\x43\xad\xfd\xbc\x07\x66\xf9\x7f\xfe\xda\x82\x4e\x77\x17\x26\x50\xea\xb0\xf8\xf5\xaf\xdb\x5e\xfc\x6d\x03\x43\xbb\xf6\xff\x5f\x1b\x4b\x3f\xc3\xca\xc7\xca\xd7\xbf\x6e\x67\xe5\xbf\x62\xb5\xac\xde\x57\xff\x23\x25\xae\xce\xe3\xc4\x3b\x36\x7e\xff\xdd\x4b\xef\xef\xca\x92\x23\xf6\x0e\xf6\xce\x19\x19\xc1\xb1\x03\xb0\x03\x58\x07\x3b\x60\x54\xc6\x70\x6c\x02\x6c\x02\xd6\xc1\x26\x18\xa7\x51\x1c\xbb\x01\xbb\x81\x75\xa1\x4a\xc3\x38\x6e\xdd\xa3\xef\x4d\xa6\x65\x93\x7a\xe3\xb8\xde\x6c\xff\x05\xa6\xfe\x73\x34\xf5\xe3\xa8\xc6\x51\xcd\xba\x38\xaa\xc7\x64\xf2\xc7\x26\xc0\x26\x60\x5d\x6c\x82\xd1\x98\xfe\xb1\x03\xb0\x03\x58\x7b\x3b\xe0\x15\x3b\x84\x00\x12\x95\x99\xaa\x60\xfc\xef\x26\x2d\x92\x7a\x8f\xd1\x00\x1a\x26\x48\xd2\x69\xb4\x6a\xec\x0d\x44\xca\x9c\x75\xfc\x09\xb2\xd4\x0c\x50\x59\x46\x96\x9a\x1d\x1f\x1c\x43\x96\x9a\x86\xe7\xf7\x46\xbe\x9a\x8a\x03\x7c\x94\x31\xd2\xc8\x5a\x83\xb0\xe9\xf3\x0b\x9b\x46\xd6\x9a\x36\xd7\x0d\xb2\xd6\x1c\x35\xb0\x95\xb7\x16\xc4\x7f\x88\xff\xc8\x5a\xc3\x9d\xc6\xf2\xd9\x56\xfe\x9a\xa9\x48\x68\xc8\x62\x03\x71\x6c\xe2\xe2\xd8\x80\xa4\x1e\x5c\xce\xf6\x2f\xc8\x62\x33\x1d\x31\x62\x04\x59\x6c\xcc\xe5\x12\xa4\x8f\xa1\x9f\xad\x85\xe3\x73\x6f\xdd\xad\x3d\xdf\xf7\x92\x54\x9e\x78\xaa\x0c\xbb\xa9\x5c\x14\x2e\x99\xec\x1a\xbb\xb3\x0d\xfa\x9d\x1a\xf4\x41\x36\x68\x8f\x04\x22\x9f\xa6\x39\x58\xd5\x37\x7f\x09\xe3\x1b\xdf\xb7\x45\x08\x06\x61\xfc\xdf\xf9\x85\x33\xad\xe7\x5d\x39\x71\x28\xf0\x5d\xf1\xb1\x17\x9f\x1a\x87\x76\x57\xc7\x30\x82\x8a\x3e\xfd\x5d\xae\xcd\x3f\x87\xe1\xc3\x9a\xc7\x0f\x49\x6e\xf3\x51\xe7\x81\x78\xa4\xc2\x4c\x4a\xc8\x7a\x8e\x04\xfb\x7e\xf1\xe7\xcf\x9f\xff\xbf\xdf\x6e\xbe\xfc\x7f\xdf\x2f\xe6\xec\xab\x88\x65\x03\x75\x51\xa7\x90\x64\x64\x6f\x1d\xf9\x62\x2d\x82\x94\x2d\xec\x53\xd7\xfc\x99\x79\xab\x40\x95\xd4\xf3\x12\x65\xb3\x90\xe2\x54\xfe\x11\x1e\x0b\x26\x85\x71\xc6\x53\xa5\xf4\xd0\xa3\x67\x09\x73\xbd\xc4\x89\x85\x6c\xf3\x9c\x7d\xf0\x3d\x6a\x4f\x41\x24\xe7\x89\x3c\xfe\x36\x1e\x14\x8b\x34\x8b\xa5\x00\xc6\x53\xc6\x83\x67\x66\x8b\xa1\x78\x41\x2a\xe2\x47\xee\xbf\x65\x41\x18\x53\xb3\xd2\x7b\xf1\x6c\x1e\x92\xbf\x57\x09\xce\x89\x08\x5c\xfa\xbe\xe9\xb3\x1a\x0f\xe6\x66\x52\xa8\x62\x9c\x25\x52\x44\x97\x0d\x33\x95\xfb\xbc\x44\x35\x4a\x0d\x5f\xa9\x88\x9c\xfc\x2b\x0d\x81\xae\x05\x77\x2f\xd8\x52\xf0\x34\x8b\x05\x5b\xf1\x54\xb0\x8d\x89\xd0\x4f\x12\x81\x94\x2f\xa9\xde\x1c\x8f\x3c\xd5\xb8\x5d\x8f\x3d\x92\xb2\x54\x4c\x7f\x35\x72\xa9\xb2\xf0\xb4\x40\x90\xa4\x08\x2e\x25\x69\x2f\xc8\x84\x36\x22\x16\xaa\x2c\x26\x22\x65\x4f\x52\x49\x8b\x45\x1a\x7b\xe2\x51\x0e\xf8\x3a\xa4\xb9\x4d\xa8\x9e\xa1\x2d\x87\xa7\x06\x65\xce\xbe\x7a\x81\x23\x36\x0a\x28\xea\xd9\xd4\xf2\xf8\x5b\xe6\xe8\x05\x24\x67\x9e\x44\x79\x53\x00\xd0\x36\x44\x7d\x95\x1e\xce\xa5\x82\xf8\xe8\x85\x59\xc2\x68\x18\x8d\xfe\x46\xbb\xc1\x73\xa5\x9e\xe1\x70\x5f\xff\x2d\xdf\x7f\xec\xb5\xf8\xe1\x88\x28\xb5\x5e\x96\xea\x91\xe1\xd2\xbe\xe4\x8d\xad\xf0\xa6\xdb\x27\x9b\x13\x0b\x2a\xcb\xc8\x37\x9b\xe2\xc9\x9d\x25\xd4\x6a\xb0\x1a\xa6\x5d\x42\xb9\x6d\x60\xf3\x6b\xf2\x1b\xa4\xb8\x88\x98\x29\x25\xf5\x49\xd7\xc8\x73\x33\xc1\xd2\x90\x89\x1f\x91\xa7\x2b\x5f\xbe\x5e\x89\x40\xc4\x44\x88\x96\x52\x5b\x4d\x43\xb6\xf4\x96\xa9\x10\x01\x5b\x7b\x41\x96\x8a\xe4\x8d\x94\x11\xa8\x6d\x4b\x6f\x65\x0a\x66\x2a\x6d\x8a\x85\x41\xa1\x2f\x6f\xb7\x76\x91\xba\xe2\xb4\xa6\xc6\xd9\xff\xb9\xfe\x23\xfb\xa2\xbd\x6b\x6f\x65\x13\x84\xab\x75\xe1\x34\x5c\xa9\x06\xea\x4f\xda\x1e\xa5\xe1\x83\x08\x6c\x97\xd5\x1c\xb2\x40\x08\x37\x51\x9f\xd2\x87\x28\x15\x41\x7c\x2b\x07\x8c\x74\xba\x58\x24\x29\x8f\xe9\x34\xf1\x62\xfa\x1b\x3d\x38\xcc\xd2\xf2\x8c\xd3\x3e\x9a\xb3\xcf\xf2\xd5\x4f\x9e\xa9\xcd\xa8\xdf\x22\x67\x46\x1f\x03\xca\xf8\x4a\xcf\x31\x9e\xb2\x56\xf9\xa4\x16\xca\xe9\x11\xde\x63\x51\x29\x95\x9d\xa5\xce\x1d\x1c\x16\x7a\x2e\x35\x98\x0c\xbf\x66\x71\x07\xe2\x47\xca\x1e\xc4\xb3\xaa\x3c\x68\x7f\xed\xf3\x54\xbe\x3f\x09\x78\x94\xdc\x87\xe9\x5b\xf6\x74\xef\x39\xe4\xee\xeb\x05\x85\x01\xb1\x9f\xb7\x0b\x59\x37\x5f\x6d\xa1\x4b\x2b\xef\xa9\xfa\x47\xb1\x60\x8e\xd2\x3b\xde\x6a\x1b\x88\xfc\x29\x8c\x4d\xc9\x53\xc6\x97\xa9\x50\x6b\x7a\xe9\xc5\x49\xba\x39\x18\xca\xd6\xe0\x05\x8e\x9f\xb9\xea\xcc\xd2\xae\xd4\x24\xe2\x90\x66\x2c\x17\xa4\xfc\x57\x4d\xca\x83\x78\x56\x07\x76\xfe\xe0\xef\x17\xa6\xcb\xdf\x2f\xe6\xdf\x83\xef\x41\x19\x53\x50\x61\xa6\x2c\x52\xd5\x9c\xd4\x01\xa1\x6e\x2a\x2f\xa1\x43\x28\xbf\x23\x68\xe6\x68\x01\xe8\xd3\xb8\x38\x7a\x6a\x10\x68\x0d\xfe\xae\x6e\x58\xbd\x6d\xec\xcd\xa1\x8b\x37\xea\x19\x53\xd6\x99\x94\xad\xbd\x24\xa1\x1b\xa1\x64\x22\x3a\xf6\xe4\x35\x4b\xaf\x1d\xc2\x5d\xef\xb4\xbd\x61\x89\xc8\x0b\x3a\xca\xbd\x11\x7b\x8e\xda\x09\x4a\x05\x58\xe6\x7d\xb7\xf5\x4b\x9f\xf5\x3c\x29\x0e\x51\x2e\x26\x2b\x1e\x45\xfc\x9c\xde\x7b\xc1\xea\xd8\xee\xd3\xd3\xbe\xea\xd6\x8c\x66\x0c\x7c\xbe\x10\x7e\x6b\x63\x40\x4f\xeb\x63\x0c\x7c\x6f\xed\xa5\xca\x94\xb6\xe6\x3f\xbc\x75\xb6\x66\x41\xb6\x5e\x88\x58\xf5\x5e\x6b\x23\x6a\x7c\xe4\x50\x28\x1e\xa8\xc6\xc7\xe1\xbe\x4f\xc7\x30\x5d\xc4\x9e\x6c\x85\xaa\x6e\xba\x7d\xba\xc9\xeb\x5b\xfe\xee\x9f\x66\xad\xff\xd3\x14\x58\x0d\xf2\xf1\x36\xb5\x4f\x55\x6d\x62\xb5\x01\xe9\x24\x72\x78\x60\x2a\x18\xe7\x67\x69\xc2\xd7\xf2\x70\xf1\x52\xcf\x5e\xba\xaa\x95\x52\x3c\x10\xf9\x69\x29\x5f\xad\xfa\x22\xa7\x49\x0a\xa9\x69\xaa\xc4\x35\xd5\x77\x75\xd9\xaa\xbe\x89\x27\x3a\x76\x78\x50\x34\xb1\xca\x83\x6e\x1d\x66\x01\x3d\x46\xf5\xf2\x75\x16\xc9\x97\xa9\x1a\xce\xf2\x37\x6f\xcc\xe9\xa6\x24\x42\x4e\x07\xba\xf9\xb6\x59\x3b\xf2\x64\x5b\x7a\x7e\x2a\xe4\x1d\x27\xef\x1d\x79\x8c\x38\x65\x19\xb6\x24\x85\x28\x83\xb4\x63\x5d\x84\xca\x77\x94\xaa\xc4\x9a\x8a\x78\xed\x05\xc2\xde\xe6\x25\xa1\x88\xce\xd2\x47\xee\xf9\x52\x6a\xcc\xe5\x73\xd9\x65\xe7\x3e\x0c\x13\x41\xa7\x58\x1a\x9a\x33\x54\xcf\x85\x1c\x16\x1e\xaf\x32\x12\xdb\x79\xe0\x9a\x1b\x8a\x06\x49\xf6\x4d\xb7\xc7\x3e\x3a\x1f\xdd\x4f\x4b\x66\x97\x54\x2e\x8c\x18\xf9\x66\xa3\x03\x5e\xc2\xc4\x3a\x4a\x9f\xcb\x82\x98\x95\xbe\x79\x2a\x65\x96\x7d\x1d\xda\x77\x19\x78\xcb\x8d\xab\x40\xdd\x1e\x76\x5d\xae\x32\x1e\xf3\x20\x15\xc6\xca\x9f\x97\x52\x4e\xf2\x6d\x4f\x37\x4a\x46\x76\x77\xdb\x76\x7b\xb1\x59\x91\x2f\x0d\x99\x97\x24\x99\x56\x02\xbc\x60\xe5\x8b\x7c\x87\x58\x29\xc3\x2c\xb8\x4b\x63\x8b\x96\x5a\x87\x7d\xe5\x71\x37\xad\xb9\x64\x49\xc7\x48\x32\xe1\x56\x5e\xb7\xa4\xeb\x64\x8b\x44\x7e\x38\x48\x6d\x0f\xdc\x02\x7c\xfe\xa6\xd5\x94\x24\x5c\x8b\xd4\x5b\x0b\xd9\xf7\xa5\x88\x63\xaa\x35\x2d\x6f\xe6\x92\x44\x95\x0b\x18\x72\x46\x45\x90\x64\xb1\xb0\xd5\x12\xb5\x88\x64\x0c\xed\x6a\xd4\x54\x97\x69\x63\x92\x30\xc4\x92\x35\xf7\x7d\x11\x33\xe7\x3e\x0b\x1e\xc8\xb2\xc4\x99\x3c\x36\x99\xcf\xe3\x95\x99\x68\xda\xf1\xea\xf1\x4a\x23\x4b\x84\xa0\x85\x17\x85\x49\xe2\xc9\x05\xa7\x87\x8d\x16\x5c\x71\x7f\x29\x8f\x26\x37\xd7\xc9\xe8\x3d\xc2\x55\xf3\x41\xe2\xb7\xbe\xe0\xf5\x1a\xd6\xe5\xcf\xa9\xd5\x4f\x3c\x31\x10\xc8\xe8\x9d\x72\x4c\xb6\x25\x1c\x25\xf7\xf3\x44\x4e\xb0\x93\xf9\xaa\x04\x78\xbe\x6c\x8e\x3e\xfd\xe5\x20\x55\x9f\xfa\x55\x35\xd0\xcf\xc8\x5d\xaf\x5e\x6f\x88\xde\xe5\xa7\x8d\x16\xa1\xd5\xee\x97\x5b\xf0\xad\x3c\x5d\x9f\x12\x83\x7b\xd4\x64\x87\x8e\x93\xc5\x76\x63\xf1\x94\x91\x5b\x9c\x9c\xcd\xb8\xb8\x46\xb8\x95\x0c\xcb\x77\xbd\x79\x96\x95\x22\x17\x62\xe5\x05\x81\x26\x74\xf7\x5e\x92\x86\xf1\xf3\x9c\x6d\x34\x4d\xde\x9e\x72\x0d\xbd\x63\x97\xf2\x80\x22\xff\x8c\xc2\x14\x18\x22\x58\x38\x81\xe8\xf9\xb1\x58\x87\xe4\xa7\x17\xc6\x7c\x25\xd8\x82\xcb\x9b\x30\x0c\xd8\xbf\xb2\x30\xce\xd6\x97\xe4\x84\xbd\xf4\xf9\xea\xbd\x7a\xac\x97\xce\x12\xf6\x47\xfd\xdc\x27\xc1\x12\x6f\xad\x5c\x4e\xe8\x00\x7f\xa2\xa5\x6e\xa3\xfd\xfc\x67\x76\xcf\x1f\xe5\xc1\xc1\x1c\xee\xdc\x0b\x3a\x95\xec\xe1\xa8\x9f\x48\xf7\x77\xc8\x82\x30\xa0\x4b\xaf\xb2\xc9\x3c\x65\xbe\x90\xa2\x34\x97\xa3\x22\x92\x7b\xf9\xc3\xca\x7b\x94\x9a\xd0\xe3\xb1\x8b\x68\x43\x1c\x3f\xe5\x6a\xfa\xe6\xad\x85\x3c\xaf\x8d\xbe\x2e\xe7\xeb\x2a\x5f\x4c\xfa\xcc\xa4\x3d\xab\xc2\x29\x5d\xa3\x00\x9b\x6b\x9a\x96\x5c\x2c\x56\x3c\x76\x09\x23\xca\x65\x14\x3c\x33\xee\xa4\xde\xa3\x97\x3e\xcb\x83\xdd\x0b\xcc\xff\x1d\x3b\x32\xa9\x6a\xde\x57\xe1\x84\x81\xbb\xc3\x44\xd3\xd1\xa9\xf1\x77\xa5\x37\x85\x71\xbe\x93\x42\x5d\x05\x5e\x7e\x6e\x41\x37\x8b\x9a\x37\x55\xb5\x5e\xaf\xb8\xf4\x5e\xac\xd5\x5d\xa2\x2c\xe0\x34\x20\xae\xfb\x56\x9f\xd6\x6f\xf5\x67\xd7\xe1\x23\x09\x24\x05\x4d\x8a\x7d\x55\x55\x77\x37\xd5\xb3\x63\x07\xad\xc2\x60\xdf\xd8\x9c\xa5\x7f\xfa\x47\x2d\x64\x93\x74\x9d\x7a\x49\xd7\xe2\xd7\xf5\xf9\xf5\x2a\xdc\xb4\x24\xef\x41\x34\xea\xfb\x0a\xd2\x7c\xb0\x0f\xd9\xf7\x80\x86\xd5\xab\x61\x5e\x9e\xb0\x79\xb9\x9e\x87\xc2\x21\x13\x73\x87\x55\xc1\x9b\x39\x30\x75\xe2\x44\xae\x92\x9b\x99\x90\xaf\x7a\x14\x6d\xff\xd6\x82\xe9\x1c\xa6\x73\x98\xce\x61\x3a\x9f\x9a\xe9\xbc\xde\xad\x52\x69\x3e\x3f\x99\x4b\x22\x3c\x47\x6b\x4f\x54\x9f\x9e\xa3\x27\xe3\x1d\x47\xf8\x6a\x56\xda\xfb\x4f\x36\x22\xdf\x8a\x9a\xab\x17\xb0\x44\x29\x94\x6c\x21\x96\x4a\x72\xb6\xb6\xb1\x5c\x94\xd0\xa7\x17\x2d\x9d\x82\xaf\x6c\x10\x06\x97\x81\x58\x71\x5a\xa0\x5a\xf7\x2c\xfa\xd4\x2a\x3b\xb9\xdd\x1a\x5a\x65\xf1\xd6\x6b\xe1\x7a\x3c\x15\xfe\x73\x2e\xd2\xe6\x57\xae\xe7\xbf\xd5\xba\x25\x0d\x3a\x5b\xc5\xdc\xa1\x5d\xe3\x85\xae\x15\x08\xf2\x4b\x9b\xf4\x05\xb3\x4a\xb3\x44\x36\xb2\x38\x5d\x5c\x7e\xd3\x74\x48\xbf\x64\xa9\xce\x40\xf3\x88\xb9\x6a\xa7\x8a\xc5\xa9\x68\x63\x83\x69\xa6\x36\xdf\x51\x93\xab\xf4\xf5\x03\x1a\xfb\x50\x96\xff\x31\xa8\xab\xde\xb8\xec\xc6\x5d\x27\x5b\xfe\x00\x5f\x00\x5f\x00\x5f\x00\x5f\x00\x5f\x9d\x81\xaf\x9a\x77\xc1\x16\xfc\x3a\xdd\xb5\xf8\x51\x44\xb1\x90\x42\x89\xfb\x8e\x45\xbe\xe0\x89\xb0\x47\xd0\x5d\x1c\x46\x7c\x45\xd2\xd1\x5d\xe8\x7b\xce\x73\xc9\x0e\x66\x16\x9d\x6b\x1f\x20\x97\xdd\xf5\xfc\x4f\x73\xf6\x55\x9d\x67\x4a\x74\x89\x44\x20\x37\x4b\x7e\xa7\x0a\x16\xc6\xd1\x3d\x0f\x8c\x5d\x2e\xce\xc4\xd5\x92\xfb\x46\x57\xfe\x7e\xa1\xfe\xfc\xfd\x82\x2d\xbd\x80\xfb\xde\xbf\xcd\x45\xb2\x10\x8c\xbb\x2e\xad\xce\x2b\x65\x2a\x77\x73\x35\x4c\x3d\x7e\x96\xe4\x5f\x52\xfa\xe9\x9c\xdd\x7a\x74\x38\x16\x9a\x1e\xc6\xdb\x7d\xa3\xe3\x47\x99\x8a\x94\x7a\x4c\x3a\x4a\x98\xde\x37\x99\x50\xd5\x83\x8f\xa6\xef\x27\x33\xf1\x6d\x2b\x66\xd4\x75\xb9\x61\xef\xc3\x27\xb6\xe2\xf1\x82\xaf\x4a\x96\x72\xab\xd4\x88\x78\x19\xc6\x6b\x39\x27\x95\xe3\xf5\x79\xa3\x47\xbb\x87\x8b\x84\x5e\x23\xb1\x46\x6a\x6c\x3d\x29\x4d\x3a\x9e\x9b\xab\xc2\x24\x2b\xa8\x80\x6e\x33\xc7\xf2\xb2\xd6\x37\xa9\x91\x06\xe6\x85\xc9\x34\xf7\x88\x51\xb5\x2f\xad\x8d\xb9\xfc\xb2\x39\xbb\x71\x1c\x11\xa9\x28\xb4\xa2\x66\x37\x53\x7d\x98\xb1\x4b\xbd\x00\xcb\x0b\x34\x79\xcf\x66\x7f\xe6\xce\xc3\x2a\x0e\xb3\xc0\x95\x9f\x22\x5b\x2d\x7d\x68\x63\xe0\x94\x08\xa9\xe5\xe3\xf2\x43\x4c\x0f\x16\xf6\x49\xef\xd9\xec\x97\x30\x16\x85\xc7\x32\x87\x27\x0e\x77\x65\xef\xf5\xf8\x28\x73\x3e\x3d\x2f\x51\xaa\xe7\xd6\x03\x97\xf6\x19\x4d\x16\x64\xb4\xb9\xdc\x7b\xb4\x14\x80\x52\x8f\x87\x52\xd7\x5b\x5d\xfb\x48\xf5\xe9\x94\xf9\x3e\x99\x75\xbd\x71\xda\xc3\xad\x4f\x77\xe1\x0f\x95\x60\xd7\x1b\xc2\x6d\x8a\x8d\xc4\x1b\x7b\xa7\xbb\xcd\x88\xb8\x3d\x44\x4f\xe7\x55\xa8\x87\xf2\x26\x15\x10\xa7\xae\xed\x5c\xa4\x3a\x5d\x70\x5c\xc3\xb8\xb8\x9e\x03\x66\x1b\xc5\xca\xc2\xf9\x02\xce\x17\xa3\x76\xbe\x80\xbb\x02\xdc\x15\xe0\xae\x00\x77\x05\xb8\x2b\xf4\xee\xae\x00\x0e\x0e\x34\x0a\x34\x0a\x34\x0a\x34\x0a\x34\x0a\x34\x0a\x34\xba\xf3\x12\x00\xad\x00\xad\x00\xad\x00\xad\x00\xad\x40\xa2\xc0\x7d\x58\x64\x67\xa2\x40\xe4\x08\xac\xf8\xd8\x50\x30\x48\x83\xf4\x80\x63\x49\x19\xf0\x6a\x63\xa6\xba\xa8\x92\x49\x72\x39\xe3\xc7\xe0\x1d\xf5\x9d\xf6\x00\xcf\x40\x33\xb2\x6f\x75\xad\xde\x09\x80\x18\x9b\x09\xc4\xd8\x20\x3b\x3b\xb2\xb3\x57\x34\x66\xf8\xa2\xca\x38\x32\xb5\x37\x6f\xf5\x4f\x07\x5b\xad\xbc\x46\x07\xd5\xec\x29\xc9\x84\x24\x82\x0c\x54\x26\x7c\xc5\xea\xa4\x31\xd1\x25\x65\x4f\x94\xcd\xe4\x28\xc9\xaa\x98\xc1\xa4\x3f\xc9\x6a\x24\xa9\x22\x20\x4a\x15\x27\x79\xb0\xa2\x14\x82\x73\xcf\x28\x38\x17\x51\x48\x88\x42\x42\x14\x12\xa2\x90\xa0\x05\xee\xda\x45\x03\xd3\x02\xa1\x4f\xb1\x7e\xf5\x29\xad\x7a\x0c\x54\xa3\xb2\x96\xe7\xd6\x83\x0d\x08\x4a\x97\x45\xab\x23\x14\x25\xf9\xed\xce\x22\x0c\x0a\x02\x87\xf8\x41\x7e\x43\x0b\xf9\x13\x77\xd2\x39\x63\xb7\xf2\x5f\xf3\xfb\x35\xf7\xc8\x22\x97\x30\xc7\xcf\x92\x54\xc4\xf9\x35\xa2\x0b\x1c\xfb\xde\x83\x60\x33\x5b\x17\x6c\x26\xa5\x45\x23\xe1\xcc\xd9\x9d\xcf\x83\x40\x73\x7f\x92\x41\xb8\xaf\xc4\x9e\xeb\x9f\x9b\x9c\xcb\xd4\xc6\x9e\xa4\x03\x3b\x68\x56\xb8\x5e\x98\xe1\x93\x3d\x65\xb7\x6a\xc4\xe4\x8d\x10\x25\x66\x74\xb4\x6b\x0d\x55\x8b\x76\x78\x50\x90\x93\x9f\x3b\x1e\x28\xd9\x98\xe9\x02\xdd\x89\x5f\x5b\x53\x3a\xff\xe5\xc1\x3a\xf4\xc3\xbf\x01\x62\x25\x5c\xa2\xcd\x1e\xfb\x5b\xe1\x99\x52\xd8\xf7\xd5\x40\x95\xfe\x2d\xfd\x65\x0f\xf9\xeb\x38\x9f\xf6\x78\xc1\x31\xb9\x5f\xd4\xba\xc0\x37\xcf\xa6\x4b\xfa\xee\x1f\xf6\x1f\x53\x6b\x11\xaf\x44\xad\x4f\x26\x69\xcc\x53\xb1\xf2\x9c\xcb\xfa\xdf\xa1\x6a\xff\xfa\x93\x74\x20\xd6\x11\x30\xc8\x5f\x8f\xc2\x81\x94\xab\x50\x73\x61\x83\x5e\xdc\xb7\x51\xb6\x2b\xdc\xbd\xc7\x64\x7b\x57\xf6\xd9\x61\x30\xd5\x4e\xdc\x54\x7b\x3e\xd4\x7b\xc3\xb5\xde\x6c\x2e\x15\xfe\x11\x29\x6f\x58\x1d\x52\xfc\x7a\xc7\x49\xf4\x86\x0c\x55\x2a\xe6\x93\xfb\xf4\xcd\x20\x0c\x2e\xd5\xb7\xe9\x13\x64\x2b\x4e\xd8\xeb\xbf\x26\x61\x70\xa7\x22\x6b\x7f\x93\x67\x9e\xfe\xf9\xab\x39\x09\xf3\x5f\xbe\x19\x12\x8e\xaf\xbf\x6e\x7e\x09\x63\x87\x8c\xe9\xab\x90\x26\x3f\x64\xdf\x2f\x96\xf2\x77\xdf\x2f\xd8\x4d\x69\x34\xe7\xec\x53\xaa\x2d\xdf\x24\xf4\xeb\x8d\x7a\xc9\x1d\x9a\x00\x8a\xcd\xf4\x3d\x47\xdb\xf2\x48\x47\x08\x9f\xf4\xdc\xaa\xd8\xc5\x48\x84\x91\x2f\xe6\x4c\xbd\x93\x42\xb2\xcd\x9a\x22\x77\xe9\xca\x89\xb0\xaf\x6f\x32\xbc\xf2\x45\x50\x15\xd4\x1f\xa0\x2a\xf4\x89\xde\x37\x3c\x70\x07\xaa\x2c\x64\xad\x5b\x8a\x22\x9f\x3b\x2f\x90\xdf\xf4\x03\xa6\x2a\xc1\xc1\x61\x11\xa2\xdb\x19\x89\x6e\x03\x92\x90\x70\x91\xdb\xbf\xc0\x61\xb1\xb2\xd5\x93\x12\x3f\xb2\xc1\x5a\x2a\x5f\xb1\x23\x1c\xff\xae\x12\x95\xe3\xac\xe0\xff\xd7\x0d\xdd\x52\xef\x31\xd7\x52\xcb\x9c\x4b\x27\x6a\xc3\xc1\x83\x2d\x5c\xf1\x05\xc0\x06\xc0\x06\xc0\x86\x1e\x61\x43\x0b\x67\xff\x1e\xec\x50\x71\xf8\x8f\x52\x75\x05\x7c\x80\x06\x7b\x7e\x1a\x2c\xe0\x43\x9b\xeb\x06\xf0\x01\x36\x0b\xa8\x0e\x80\x0f\xf4\xc1\xce\xe0\x43\x2b\xba\xfc\x1e\x0c\x31\x15\x89\x0e\x30\x02\xa2\xdc\x19\x89\x72\x03\x92\x98\x70\xb1\xdb\xbf\x00\x46\x54\xb6\x7a\x52\xe2\xc8\xd8\x60\x44\xe8\x76\x4b\x1c\x0e\x14\xef\x08\xdd\x3d\x92\x49\xa1\x5e\x47\xe8\xfe\x12\xc6\x37\xbe\x6f\x23\x56\x06\x81\x18\x76\x7e\xe1\x5c\x13\xd4\x85\x2e\x72\xd2\x55\x7c\xec\xe5\x3b\x3f\x74\x4f\x87\x2d\x50\xc9\x66\xc2\x95\x6c\x0e\x33\x98\x43\x55\x6c\xf6\xda\x79\x5a\xe0\x4b\xa8\x5d\x83\xda\x35\xa8\x5d\x83\xda\x35\x53\xab\x5d\x73\xf8\xe4\xad\xac\x5b\xd3\x31\xcd\x3f\x59\xb5\x9a\xc3\xdd\xdf\x5d\xa9\x66\xc8\x63\x70\x4c\x7d\x9a\xc3\x63\xb0\xbb\x36\x4d\xc7\x63\x80\x8a\x34\xa8\x48\x83\x8a\x34\xa8\x48\x83\x8a\x34\x9d\x55\xa4\xa9\x71\xfa\x6f\x55\xa3\xd9\x9b\x20\xef\x8c\x9c\xf9\xea\xf5\x06\x15\x75\x46\x56\x51\xe7\xf0\x22\xda\x57\x4d\xa7\xe3\xd5\xd4\x6b\x0d\x9d\xc3\x23\xb3\xa7\x7e\x4e\xd7\xa7\xc6\x50\xab\xe6\x1c\x1e\xb4\x0a\x63\x7c\x63\x73\x96\xfe\xe9\x1f\xbb\xc0\x4a\x2a\xd6\x11\x29\xe4\xfd\x02\x96\x6f\xba\x19\x75\x41\x8b\xf9\x3c\x80\xcb\xe6\xc8\x0f\x12\xb8\x98\xe9\x02\x78\xa9\xf8\x58\x1b\xe0\xa5\x62\xff\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x1c\x71\xec\x03\xc0\x00\xc0\x00\xc0\x54\xaf\x26\x00\x98\x9d\xfb\x0c\x00\xe6\x10\x80\x89\x85\x35\xf9\xcb\xeb\x36\x0e\xe5\x65\xd7\x27\x8a\xf9\x92\x37\xe8\x83\x6d\x50\x2d\x28\x53\xf9\x4d\xe0\x99\xcd\xd9\x18\x1e\x9e\xa9\x9c\x38\x80\x9a\x8a\x8f\xbd\x18\xd4\x1c\xda\x5d\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x40\x36\x47\x1c\xfb\x40\x36\x40\x36\x40\x36\xd5\xab\x09\xc8\x66\xe7\x3e\x03\xb2\x39\x8c\x6c\x54\x3b\xff\x95\x85\x29\xef\x17\xd5\xa8\x86\xfc\x97\x6c\x48\x4d\x44\x53\xf8\x06\xd0\xcc\xe6\xe8\x0f\x11\xcd\x14\x26\x0c\x48\xa6\xe2\x63\x2d\x20\x99\xea\x5d\x04\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x73\xc4\xb1\x0f\x14\x03\x14\x03\x14\x53\xbd\x9a\x80\x62\x76\xee\x33\xa0\x98\x43\x28\x26\x11\x4e\x2c\xd2\x3e\x19\xcc\x57\x6a\x41\x2d\xf8\xa2\x3e\x0a\xea\xb2\x39\xde\xc3\xa3\x2e\x6a\xa6\x80\x5b\x2a\x3e\xf6\x62\xdc\xb2\xb5\x61\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\xc0\x59\x8e\x38\xf6\xc1\x59\xc0\x59\xc0\x59\xaa\x57\x13\x38\xcb\xce\x7d\x06\xce\x72\x98\xb3\xc4\x8f\x9e\x23\xb8\xe3\x48\x89\xb1\x5f\xde\x42\x2d\xb9\x51\x2d\xa9\xc9\x5d\x8a\x5f\x01\x7f\xd9\x1c\xff\x21\xf2\x97\xe2\x8c\x81\xc3\x54\x7c\xac\x05\x0e\xb3\x63\x23\x81\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x80\xc7\x1c\x71\xec\x83\xc7\x80\xc7\x80\xc7\x54\xaf\x26\xf0\x98\x9d\xfb\x0c\x3c\xa6\x26\x8f\x19\x00\x88\x39\x86\xc0\x00\xbd\x6c\x8e\xf8\x60\xd1\x0b\x98\x4b\xc5\xc7\xda\x62\x2e\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x2d\x9d\xb6\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x07\xc7\x6a\x2f\x6c\xa1\x17\x5d\x29\xbb\xc8\x9a\x47\xdd\x42\x17\x2d\xdf\x04\xae\xf7\xe8\xb9\x19\xf7\x8b\xd3\xc2\xad\x0e\xf3\x81\x1a\xf3\x1b\x8f\xe6\xcc\x15\x51\x2c\x1c\x79\x5d\xbd\xb3\x42\xe6\x8c\x9e\x32\xcb\x2d\x56\x25\x13\x84\xc5\x34\xcc\x0b\x92\x54\xf0\xd2\x6d\xb0\x09\x71\xe8\x49\x8a\xe2\xd8\x97\xfe\xea\x25\x08\xa3\xd9\x9a\xc8\xc1\xb0\x9c\x35\x77\xee\xbd\x40\xc4\xcf\xf3\xe8\x61\x25\x7f\x91\xcc\xa5\x1a\x36\x7f\xbc\x9e\xd3\x6e\xbf\x95\xfa\xcc\x39\xc2\x1d\x9a\xbc\x6e\x09\x8f\xdd\x23\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x2d\x9d\xb6\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x60\x3c\x07\xc7\xaa\x06\xe3\x11\x81\x1b\x85\x5e\xd7\x09\xce\xea\x21\x9e\x5b\xd3\x96\x53\x22\x1e\xfb\x52\x20\x9e\xaa\x89\x04\xe2\x01\xe2\xb9\xb0\x7b\x04\x88\x07\x88\x07\x88\x07\x88\x07\x88\x07\x88\x07\x88\x07\x88\xa7\xa5\xd3\x16\x88\x07\x88\x07\x88\x07\x88\x07\x88\x07\x88\x07\x88\x07\x88\x07\x88\x07\x88\x07\x88\x07\x88\x07\x88\xe7\xe0\x58\xd5\x41\x3c\x64\x27\x1d\x02\xdf\x91\x0d\x39\x29\xdb\x91\x2f\x04\xd7\xa9\x9a\x40\x70\x1d\x70\x9d\x0b\x35\xb6\x60\x3a\x60\x3a\x60\x3a\x60\x3a\x60\x3a\x60\x3a\x60\x3a\x60\x3a\x03\xe0\x19\x60\x3a\x60\x3a\x60\x3a\x60\x3a\x60\x3a\x60\x3a\x60\x3a\x60\x3a\xe5\xde\x80\xe9\x80\xe9\x80\xe9\x80\xe9\x9c\x31\xd3\xa1\xc5\x11\xd3\x10\x0d\x00\xec\xfc\x2a\x5b\xf3\x45\xfe\xe1\x94\x74\x27\x7f\x2b\x10\x4f\xd5\x54\x02\xf1\x00\xf1\x5c\xe4\x9b\x04\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\xa7\xa5\xd3\x16\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\x07\x9c\xe7\xe0\x58\xd5\xe0\x3c\x41\xce\x33\xfa\xc7\x3c\x16\xae\x9c\x92\xf2\xd8\x97\xfe\xba\x61\x27\x07\xd4\x01\xd4\x61\xe7\x09\x75\xec\x9e\x00\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x69\xe9\xb4\x05\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x01\xd3\x39\x38\x56\x47\x31\x9d\xab\xff\xb1\x3f\xff\xef\x95\x32\x97\xac\x79\x34\x04\xd4\x63\x8b\xba\xf7\x82\x7a\x5c\xfb\x7a\x40\x1f\x40\x1f\x40\x1f\xda\x28\x76\x4f\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x00\xfa\xb4\x74\xda\x02\xfa\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x9c\x1d\xf4\xd1\xbd\x96\x0d\xa0\xa9\xe4\x59\x7a\xcf\x12\x27\x8c\xc4\x5b\x96\x64\x0e\xd9\xeb\x49\x5f\x11\x7c\xad\xec\xb7\x51\x1c\xd2\x28\x57\x75\x2d\xe2\xe9\x7d\x75\xcf\x82\x6a\xdf\x55\xb9\xfe\xa4\xa4\xaf\x5b\x7f\xc2\xfb\x0e\xb4\x0b\xb4\x0b\xb4\xab\x7a\x35\x81\x76\xed\xdc\x67\xa0\x5d\x2d\xd1\x2e\xf5\xeb\xff\x3d\x01\xf4\x2a\x92\xae\xc0\x5c\xf3\xe1\x92\x3d\x78\x81\xdb\x32\xf1\x7a\x9b\x8b\xf5\xa4\xba\x68\x11\x50\x6a\x06\xb9\xbe\x32\x2b\xe9\xb9\x85\x67\x37\xe7\x65\x60\x65\x60\x65\xa3\x60\x65\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\xe0\x64\x75\x4f\xff\x93\x73\x32\x02\x64\x7a\x04\x76\x98\x1a\xea\x20\xb0\xa1\xd0\x2f\x60\x3f\x60\x3f\x60\x3f\x60\x3f\x60\x3f\x60\xbf\x13\x60\x3f\x11\xb8\x51\xe8\x05\xe9\x10\x62\xdc\x6e\x4d\x5b\xfa\x89\x71\xb3\xaf\x47\x8c\x1b\xb8\xdd\x68\xb8\x5d\xb7\x31\x6e\x76\x4f\x80\xdd\x81\xdd\x81\xdd\x81\xdd\x81\xdd\x81\xdd\x81\xdd\x81\xdd\xb5\x74\xda\x82\xdd\x81\xdd\x81\xdd\x81\xdd\x81\xdd\x81\xdd\x81\xdd\x9d\x1d\xbb\x03\xec\x02\xec\x02\xec\x02\xec\x02\xec\x02\xec\x3a\x25\xec\x1a\x48\x88\x5b\xbb\xc0\xeb\xc4\x21\x6e\x55\x68\x00\xa8\x0c\xa8\x6c\xe3\xa9\x03\x42\x65\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\xc0\x64\x75\x4f\xff\x5e\x43\xdc\x76\x98\x1a\x10\xe2\x56\xdd\x67\x50\x3f\x50\x3f\x50\xbf\xba\x8b\x08\xd4\x0f\xd4\x6f\x7a\xd4\x8f\xcc\xe0\x43\x88\x6f\x93\x0d\xe9\x29\xb6\x4d\xbe\x1a\x71\x6d\x80\x75\xa3\x81\x75\x1d\xc7\xb5\xd1\xd8\x02\xd6\x01\xd6\x01\xd6\x01\xd6\x01\xd6\x01\xd6\x01\xd6\x01\xd6\x0d\x00\x54\x01\xd6\x01\xd6\x01\xd6\x01\xd6\x01\xd6\x01\xd6\x01\xd6\x8d\x11\xd6\x81\x6e\x81\x6e\x81\x6e\x81\x6e\x81\x6e\x81\x6e\x9d\x8c\x6e\x0d\x25\xa0\xad\x35\xc2\x75\xea\x60\xb6\x0d\x1e\x00\x36\x06\x36\xb6\xf1\xd4\x01\xb1\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\x31\x70\xb1\x41\x72\xb1\x52\x10\xdb\xb6\x99\x01\x01\x6c\xd5\x7d\x06\xe2\x03\xe2\x03\xe2\xab\xbb\x88\x80\xf8\x80\xf8\x26\x87\xf8\x68\xcd\xc4\x34\x72\x03\x88\x62\xfb\x55\xb6\xe6\x8b\xfc\x43\x3f\xa1\x6c\xf9\xfb\x11\xcf\x06\x66\x37\x1a\x66\xd7\x6d\x3c\x5b\xbe\x29\x00\xef\x00\xef\x00\xef\x00\xef\x00\xef\x00\xef\x00\xef\x00\xef\x5a\x3a\x6d\x01\xef\x00\xef\x00\xef\x00\xef\x00\xef\x00\xef\x00\xef\xce\x0e\xde\x81\x78\x81\x78\x81\x78\x81\x78\x81\x78\x81\x78\x9d\x96\x78\x0d\x24\xb2\xad\x65\xea\x75\xe2\xf0\xb6\x4a\x3c\x00\x5e\x06\x5e\xb6\xf1\xd4\x01\xf1\x32\xb0\x32\xb0\x32\xb0\x32\x06\x56\x06\x56\x06\x56\x06\x56\x06\x56\x06\x56\x06\x56\x06\x56\x06\x56\x06\x56\x06\x56\x06\x56\x06\x56\x56\xf7\xf4\xef\x35\xd0\x6d\x97\xad\x01\xd1\x6e\xd5\x7d\x06\xfb\x03\xfb\x03\xfb\xab\xbb\x88\xc0\xfe\xc0\xfe\x26\xc7\xfe\x22\xd9\x78\x12\x89\x1e\x43\x3f\x5b\x0b\xc7\xe7\xde\x7a\x08\x81\x6f\x77\xb6\x61\xbf\x53\xc3\x3e\xc8\x86\xf5\x13\x03\x57\xd9\x14\x84\xc3\x01\xef\x8d\x06\xef\x75\x1b\x0e\x57\xb9\x3f\x40\xfb\x40\xfb\x40\xfb\x40\xfb\x40\xfb\x40\xfb\x40\xfb\x40\xfb\x5a\x3a\x6d\x41\xfb\x40\xfb\x40\xfb\x40\xfb\x40\xfb\x40\xfb\x40\xfb\xce\x8e\xf6\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\xf5\x46\xc7\x06\x12\x24\xd7\x1d\x21\x3b\x71\xbc\xdc\x21\x7e\x00\xb6\x06\xb6\xb6\xf1\xd4\x01\xb1\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\x35\x70\xb5\x51\x70\xb5\x62\x14\x5d\x0d\xb3\x03\x02\xea\xaa\xfb\x0c\x64\x08\x64\x08\x64\x58\x77\x11\x01\x19\x02\x19\x4e\x0f\x19\x86\xee\x20\xc2\xe7\x42\xb7\xa7\x60\xb9\xd0\x45\x68\x1c\xf0\xdd\x68\xf0\x5d\xc7\xa1\x71\xa1\x0b\x60\x07\x60\x07\x60\x07\x60\x07\x60\x07\x60\x07\x60\x07\x60\xd7\xd2\x69\x0b\x60\x07\x60\x07\x60\x07\x60\x07\x60\x07\x60\x07\x60\x77\x76\xc0\x0e\x54\x0b\x54\x0b\x54\x0b\x54\x0b\x54\x0b\x54\xeb\x44\x54\x6b\x28\x61\x6f\x2d\x91\xad\x53\x07\xb9\x95\x48\x00\x98\x18\x98\xd8\xc6\x53\x07\xc4\xc4\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\xc0\xc3\x06\xc8\xc3\x4a\x01\x6c\x9b\x46\x06\x84\xab\x55\xf7\x19\x60\x0f\x60\x0f\x60\xaf\xee\x22\x02\xd8\x03\xd8\x9b\x22\xd8\x4b\xc5\x3a\x22\x7b\xcb\x30\xc2\xd6\xbe\xe9\xe6\xf4\x16\xbe\x66\x1a\x80\x30\x36\x20\xbb\xd1\x20\xbb\xce\xc3\xd8\xcc\xae\x00\xbe\x03\xbe\x03\xbe\x03\xbe\x03\xbe\x03\xbe\x03\xbe\x03\xbe\x6b\xe9\xb4\x05\xbe\x03\xbe\x03\xbe\x03\xbe\x03\xbe\x03\xbe\x03\xbe\x3b\x3b\x7c\x07\xea\x05\xea\x05\xea\x05\xea\x05\xea\x05\xea\x75\x62\xea\x35\x9c\xb0\xb6\x56\xc9\xd7\xe9\xc3\xdb\x2a\x08\x01\x98\x19\x98\xd9\xc6\x53\x07\xc4\xcc\xc0\xcb\xc0\xcb\xc0\xcb\xd4\x1f\xc1\xcb\xc0\xcb\xc0\xcb\xc0\xcb\xc0\xcb\xc0\xcb\xc0\xcb\xc0\xcb\xc0\xcb\xc0\xcb\xc0\xcb\xc0\xcb\xc0\xcb\x06\xc9\xcb\x36\xc2\xdd\xaa\x8d\x0d\x08\x7b\xab\xee\x33\x00\x20\x00\x20\x00\x60\xdd\x45\x04\x00\x08\x00\x38\x39\x00\x18\x0b\xcb\x79\xa4\x54\x15\x87\x52\xa6\x19\x42\x00\xdc\x97\xbc\x61\x1f\x6c\xc3\xfa\x09\x85\xab\x6c\x0a\x82\xe2\x00\xf8\x46\x03\xf8\xba\x0d\x8a\xab\xdc\x1f\xc0\x7d\xc0\x7d\xc0\x7d\xc0\x7d\xc0\x7d\xc0\x7d\xc0\x7d\xc0\x7d\x2d\x9d\xb6\xc0\x7d\xc0\x7d\xc0\x7d\xc0\x7d\xc0\x7d\xc0\x7d\xc0\x7d\x67\x87\xfb\x40\xc7\x40\xc7\x40\xc7\x40\xc7\x40\xc7\x40\xc7\x7a\xa3\x63\x03\x09\x94\xeb\x8e\x90\x9d\x38\x64\xee\x10\x3f\x00\x5b\x03\x5b\xdb\x78\xea\x80\xd8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\x1a\xb8\xda\x28\xb8\x5a\x31\x8c\xae\x86\xd9\x01\x01\x75\xd5\x7d\x06\x32\x04\x32\x04\x32\xac\xbb\x88\x80\x0c\x81\x0c\x27\x88\x0c\x55\x27\xfe\x95\x85\x29\x1f\x46\x20\x9d\x6a\xd0\x7f\xc9\x06\xf5\x15\x40\x57\x68\x02\x02\xe7\x00\xf7\x46\x03\xf7\xba\x0e\x9c\x2b\xec\x0b\x80\x3d\x80\x3d\x80\x3d\x80\x3d\x80\x3d\x80\x3d\x80\x3d\x80\xbd\x96\x4e\x5b\x80\x3d\x80\x3d\x80\x3d\x80\x3d\x80\x3d\x80\x3d\x80\xbd\xb3\x03\x7b\xa0\x5f\xa0\x5f\xa0\x5f\xa0\x5f\xa0\x5f\xa0\x5f\x27\xa7\x5f\x83\x09\x94\x6b\x9b\x80\x9d\x3c\x40\xae\x9a\x13\x80\x9d\x81\x9d\x6d\x3c\x75\x40\xec\x0c\xdc\x0c\xdc\x0c\xdc\xcc\xfc\x11\xdc\x0c\xdc\x0c\xdc\x0c\xdc\x0c\xdc\x0c\xdc\x0c\xdc\x0c\xdc\x0c\xdc\x0c\xdc\x0c\xdc\x0c\xdc\x0c\xdc\x6c\x90\xdc\xac\x1c\x10\xb7\xd3\xdc\x80\x40\xb8\xea\x3e\x03\x05\x02\x05\x02\x05\xd6\x5d\x44\x40\x81\x40\x81\x93\x43\x81\x89\x70\x62\x91\x0e\x21\x02\xee\x2b\xb5\xa4\x9f\xd0\x37\xf5\x6e\xc4\xbc\x81\xdb\x8d\x86\xdb\x75\x1b\xf3\xa6\x36\x04\xa0\x1d\xa0\x1d\xa0\x1d\xa0\x1d\xa0\x1d\xa0\x1d\xa0\x1d\xa0\x5d\x4b\xa7\x2d\xa0\x1d\xa0\x1d\xa0\x1d\xa0\x1d\xa0\x1d\xa0\x1d\xa0\xdd\xd9\x41\x3b\x10\x2e\x10\x2e\x10\x2e\x10\x2e\x10\x2e\x10\xae\xd3\x11\xae\x81\x44\xb9\xb5\x48\xb9\x4e\x1c\xde\xb6\x85\x04\xc0\xc7\xc0\xc7\x36\x9e\x3a\x20\x3e\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x36\x4c\x36\x56\x0c\x68\xab\xb2\x33\x20\x92\xad\xba\xcf\xe0\x7c\xe0\x7c\xe0\x7c\x75\x17\x11\x38\x1f\x38\xdf\x04\x39\x5f\xfc\xe8\x39\x82\x3b\x8e\xd4\x09\x86\x11\xd1\x46\x2d\xba\x51\x2d\xea\x2b\xb2\xad\xd8\x06\x44\xb8\x81\xe0\x8d\x86\xe0\x75\x1d\xe1\x56\xdc\x18\xa0\x79\xa0\x79\xa0\x79\xa0\x79\xa0\x79\xa0\x79\xa0\x79\xa0\x79\x2d\x9d\xb6\xa0\x79\xa0\x79\xa0\x79\xa0\x79\xa0\x79\xa0\x79\xa0\x79\x67\x47\xf3\x40\xc0\x40\xc0\x40\xc0\x40\xc0\x40\xc0\x40\xc0\x4e\x4f\xc0\x06\x13\xf1\xd6\x3a\x05\x3b\x79\xe4\xdb\x0e\x54\x00\x7e\x06\x7e\xb6\xf1\xd4\x01\xf1\x33\xb0\x33\xb0\x33\xb0\x33\xfb\x47\xb0\x33\xb0\x33\xb0\x33\xb0\x33\xb0\x33\xb0\x33\xb0\x33\xb0\x33\xb0\x33\xb0\x33\xb0\x33\xb0\x33\xb0\xb3\x41\xb2\xb3\x72\x24\xdc\x6e\x7b\x03\x22\xe2\xaa\xfb\x0c\x1e\x08\x1e\x08\x1e\x58\x77\x11\x81\x07\x82\x07\x4e\x95\x07\x0e\x28\x14\xae\xd7\x18\x38\x04\xbf\x01\xde\x8d\x06\xde\x9d\x24\xf8\x0d\xe4\x0e\xe4\x0e\xe4\x0e\xe4\x0e\xe4\x0e\xe4\x0e\xe4\x0e\xe4\xae\xa5\xd3\x16\xe4\x0e\xe4\x0e\xe4\x0e\xe4\x0e\xe4\x0e\xe4\x0e\xe4\xee\xec\xc8\x1d\x28\x17\x28\x17\x28\x17\x28\x17\x28\x17\x28\xd7\x09\x29\xd7\xb0\xc2\xdd\x46\x1c\xe7\x06\x46\x06\x46\x36\x0a\x46\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\x36\x50\x3e\x56\x11\xd9\x86\x90\x36\xc0\x3e\xc0\x3e\xc0\x3e\xc0\x3e\xc0\x3e\xc0\xbe\x2a\xd8\xd7\x3b\xd7\xb3\x98\x6c\x84\x64\x0f\x44\x0f\x44\xef\xcc\x89\x5e\xd5\x5e\x00\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x03\xd3\x3b\xe2\xd8\x2f\x32\xbd\x1d\xa6\x86\x31\x51\x3d\xc0\x2d\xc0\x2d\xc0\xad\xea\xd5\x04\xb8\xb5\x73\x9f\x01\x6e\xd5\x84\x5b\xa1\x3b\x88\xac\x8c\x7f\x0b\xdd\xd3\xa6\x64\x0c\x5d\x64\x61\x64\xe0\x51\xa3\xe1\x51\xdd\x66\x61\x94\xdb\x01\x38\x0a\x38\x0a\x38\x0a\x38\x0a\x38\x0a\x38\x0a\x38\x0a\x38\xaa\xa5\xd3\x16\x38\x0a\x38\x0a\x38\x0a\x38\x0a\x38\x0a\x38\x0a\x38\xea\xec\x70\x14\xf8\x0d\xf8\x0d\xf8\x4d\xf5\x6a\x02\xbf\xd9\xb9\xcf\xc0\x6f\x8e\xe0\x37\x43\x89\x4b\x6a\x8b\xe1\x9c\x26\x24\xa9\x6c\xf2\x06\xfd\x01\xfd\xd9\x78\xea\x80\xe8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\x0f\xc8\xcf\x10\xc9\x4f\x29\x10\x69\xcb\xca\x80\x18\x24\x30\x2c\x30\x2c\x30\x2c\x30\xac\xb3\x67\x58\x91\x6c\x25\x5d\xfe\x8f\xa1\x9f\xad\x85\xe3\x73\x6f\x3d\x84\xa0\xa4\x3b\xdb\xb0\xdf\xa9\x61\x1f\x64\xc3\x4e\x19\xa5\x54\xd9\x80\x5f\xbd\x24\xfd\x25\x8c\x6f\x7c\xdf\x86\xf7\x26\x00\x59\x00\x59\xa3\x00\x59\xdd\x86\x31\x55\xee\x17\xd0\x2d\xd0\x2d\xd0\x2d\xd0\x2d\xd0\x2d\xd0\x2d\xd0\x2d\xd0\xad\x96\x4e\x5b\xd0\x2d\xd0\x2d\xd0\x2d\xd0\x2d\xd0\x2d\xd0\x2d\xd0\xad\xb3\xa3\x5b\x60\x42\x60\x42\x60\x42\xd5\xab\x09\x4c\x68\xe7\x3e\x03\x13\x6a\xc6\x84\x86\x88\x83\xfa\x24\x41\xc8\x5d\x07\xe8\x03\xe8\x53\x09\x7d\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\x5a\x3a\x6d\xc1\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\x0e\x8e\x55\x13\xde\x33\x90\x9c\x76\x9d\x30\x9f\x93\xe4\xb7\xdb\x63\x16\x07\x2d\x02\x2d\xda\x78\xea\x80\x68\x11\x48\x11\x48\x11\x48\x51\xe1\x8f\x20\x45\x20\x45\x20\x45\x20\x45\x20\x45\x20\x45\x20\x45\x20\x45\x20\x45\x20\x45\x20\x45\x20\x45\x20\x45\x83\x24\x45\xc5\xbc\x77\xfb\x2d\x0e\xc8\x81\x07\xfe\x05\xfe\x05\xfe\x05\xfe\x05\xfe\x15\xba\x83\x08\x71\x0a\xdd\x93\x46\x35\x85\x2e\xb2\xd9\x55\x4d\x1e\x50\xd5\x28\x50\x55\xc7\x81\x4d\xa1\x0b\x42\x05\x42\x05\x42\x05\x42\x05\x42\x05\x42\x05\x42\x05\x42\xd5\xd2\x69\x0b\x42\x05\x42\x05\x42\x05\x42\x05\x42\x05\x42\x05\x42\x75\x76\x84\x0a\x2c\x07\x2c\x07\x2c\xa7\x7a\x35\x81\xe5\xec\xdc\x67\x60\x39\xb5\x59\x4e\x2a\xd6\x11\xa9\xe5\xc3\x60\x3a\xdf\x74\x73\x4e\xcc\x76\xcc\x6b\xc1\x78\xaa\x26\x13\x8c\x07\x8c\xe7\xa2\xb0\x4b\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\x5a\x3a\x6d\xc1\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\xc0\x7a\x0e\x8e\x55\x0d\xd6\x13\x0b\x8b\x02\xe4\xa5\x1b\x87\xf2\xca\x1b\x02\xf5\xf9\x92\x37\xec\x83\x6d\xd8\x29\xf9\x4f\x65\x03\x40\x82\xaa\x26\x18\x24\x08\x24\xe8\xa2\x72\xbf\x80\x09\x81\x09\x81\x09\x81\x09\x81\x09\x81\x09\x81\x09\x81\x09\xb5\x74\xda\x82\x09\x81\x09\x81\x09\x81\x09\x81\x09\x81\x09\x81\x09\x81\x09\x81\x09\x81\x09\x81\x09\x81\x09\x81\x09\x1d\x1c\xab\x5a\x4c\x48\xb5\xf6\x5f\x59\x98\xf2\x61\xb0\x20\xd5\xa0\xff\x92\x0d\x3a\x2d\x03\x2a\xbc\x18\xec\xa7\x6a\x42\xc1\x7e\xc0\x7e\x2e\x4a\xfb\x04\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\xa7\xa5\xd3\x16\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\x07\xcc\xe7\xe0\x58\xd5\x60\x3e\x89\x70\x62\x91\x0e\x01\xf6\x7c\xa5\x96\x9c\x92\xf2\xa8\x37\x02\xef\x54\x4d\x21\xf0\x0e\xf0\xce\x85\xda\x20\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\x2d\x9d\xb6\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\xe0\x3a\x07\xc7\xaa\x16\xd7\x89\x1f\x3d\x47\x70\xc7\x91\x72\xe3\x30\xf8\x0e\xb5\xe8\x46\xb5\xe8\xb4\x9c\xa7\xf8\x66\xf0\x9e\xaa\x29\x05\xef\x01\xef\xb9\x28\x6f\x14\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x9f\x96\x4e\x5b\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x9f\x83\x63\x55\x9f\xfb\x0c\x08\xf8\xf4\x40\x7a\x80\x78\xaa\x26\x11\x88\x07\x88\xc7\x20\x1e\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x9d\x96\x4e\x5b\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x1d\xb0\x9d\x83\x63\xb5\x93\xed\x24\x57\x8d\x58\x4e\xd7\x2c\xa3\x0e\x27\x5a\x89\xb4\x20\xcd\xdd\xdc\x7d\x32\x47\x60\xb2\x07\xe7\xac\x44\x7a\x73\xf7\xe9\xf7\x8a\x0f\xf6\x85\x6d\x46\x4b\x53\x6e\xee\x3e\xfd\x25\x0e\xb3\xe8\x57\x2f\x19\x3d\x4f\x91\x1d\x2b\x7c\xfa\x55\xf1\x8d\xe5\xed\xc2\xdd\xb5\x47\x16\xf3\x58\xac\xbc\x24\x55\x6b\x8b\x46\xcb\x0b\xc7\xbd\x97\xbc\x60\x19\xc6\x6b\x7b\x2b\x70\xa6\x60\xcf\xfe\xbd\x54\x35\x1a\x66\x61\x60\x77\xb5\xb0\xbb\x46\xbf\xb3\xaa\x56\x48\x0b\x5b\xed\xf1\x7a\xdc\xbb\xad\x64\x87\x50\xe2\x47\x83\xad\xf6\xfb\xf5\xcd\xdd\xa7\x2f\x55\x0f\xc0\x86\x3b\x7e\xc3\x99\x81\x9c\xc4\x8d\x56\xb5\x5c\xca\x2e\x03\x2f\xd8\x7a\xeb\x2c\xe5\xa9\x17\xac\x9e\xc4\xe2\x3e\x0c\x1f\x4a\x4c\xad\xe4\x1d\xa4\x8c\x41\xed\x3a\x08\xa9\x67\x32\x27\xf4\x7d\xe1\x98\xeb\xea\x37\xdd\xa2\xbf\xab\x16\x7d\x28\xb6\x68\xcf\xc6\x52\xcf\xda\xb1\xb7\x3e\xd8\x37\xd4\x7d\xfa\x0e\x17\x06\x76\x60\x81\xc0\x8d\x61\xc2\x6e\x0c\x7b\x74\xbd\x23\x5c\x19\x0e\x68\x7f\xfb\xf5\xbf\x8d\x43\xeb\x7f\xaa\x5a\xb7\x08\xdd\x9d\x8d\xab\xfa\x5b\x27\x87\xf0\x47\xda\x8e\x9f\x23\x75\x8e\xd4\x3b\x82\xf7\x6f\x2d\xb8\x68\xc0\x45\x03\x2e\x1a\x70\xd1\x98\x9a\x8b\x46\xbd\x5b\xa5\xd2\x4d\x63\xbf\x35\xfa\x25\x37\x49\x15\xe3\xd0\x70\xea\x2d\x79\x74\x3b\x72\x45\xa9\x75\x50\xea\x5b\x51\x8e\x58\x08\x16\xc9\xd1\x4a\x52\x79\x41\xdf\x04\xcc\x0b\xd4\xc9\x12\xc6\x2c\x0b\xec\xe1\xe4\x32\x37\x7e\xfe\x92\x05\xcc\xf5\x62\x29\xa4\x3d\x0a\xbb\xe2\xc9\xb8\x1f\x30\x1e\xe8\x2d\x6f\xd6\x86\x1e\x60\xb6\xcc\x62\xda\x65\x51\x1c\x3a\x52\x6e\x50\xfc\xa3\x80\xcf\xe7\xec\x77\x7a\x23\xcd\x16\xad\x9d\x77\xec\x92\xdd\xf8\xfe\x3b\x22\x7a\xae\x3c\xa5\xb3\x40\x4e\xfc\x4a\x24\x76\x49\xea\xc7\x09\xb7\xc1\x44\xa9\xbe\xf4\x33\x4d\x27\xf3\xab\xa9\x37\x14\xbb\x7d\x6b\x4e\x36\x22\xdf\x8a\x84\xc4\x0b\x58\xa2\xc0\x05\x5b\x88\xa5\x92\x9c\x2d\x83\xcd\x45\x09\x7d\x7a\xd1\xd2\xc9\x84\xba\x1c\x16\x82\x05\x61\x70\x19\x88\x15\xa7\x05\xaa\x19\xc7\x9c\x7d\xb3\x17\xb6\xf2\xc7\xb0\x5b\x43\xeb\x36\xde\x7a\x2d\x5c\x8f\xa7\xc2\x7f\xce\x45\xda\xfc\xca\xf5\xfc\xb7\x9a\x61\xd0\xa0\xb3\x55\xcc\x1d\xda\x35\x5e\xe8\x5a\x81\x20\xbf\xb4\x49\x5f\x30\xab\x34\x4b\x64\x23\x8b\xd3\xc5\xe5\x37\x4d\x87\xf4\x4b\x96\xea\x0c\x34\x8f\x98\xab\x76\xae\x05\x0f\x2a\xdb\xd8\x60\x9a\xa9\xcd\x77\xd4\xe4\x2a\x2e\x74\x80\x0c\x0d\x65\xf9\x1f\xe3\x52\x55\x6f\x5c\x76\xbb\x55\x9d\x6c\xf9\xc3\xc1\x0a\x0e\x56\x70\xb0\x82\x83\x15\x1c\xac\x3a\x73\xb0\xaa\x79\x17\x6c\x39\x59\x9d\xee\x5a\xfc\x58\x88\xab\x8c\x7c\xc1\x13\x61\x8f\xa0\xbb\x38\x8c\xf8\x8a\xa4\xa3\xbb\xd0\xf7\x9c\xe7\x92\x1d\xcc\x2c\xba\x3c\x30\x53\x2e\xbb\xeb\xf9\x9f\xe6\xec\xab\x3a\xcf\x94\xe8\x12\x89\x40\x6e\x96\xfc\x4e\x15\x2c\x8c\xa3\x7b\x1e\x18\xbb\x5c\x9c\x89\xab\x25\xf7\x8d\xae\xfc\xfd\x42\xfd\xf9\xfb\x05\x5b\x7a\x01\xf7\xbd\x7f\x9b\x8b\x64\x21\x18\x77\x5d\x5a\x9d\x57\xca\x25\xc3\xcd\xd5\x30\xf5\xf8\x59\x92\x7f\x49\xe9\xa7\x73\x76\xeb\xd1\xe1\x58\x68\x7a\x18\x6f\xf7\x8d\x8e\x1f\x65\x2a\x52\xea\x31\xe9\x28\x61\x7a\xdf\x64\x42\x55\x0f\x3e\x9a\xbe\x9f\xcc\xc4\xb7\xad\x98\x51\xd7\xe5\x86\xbd\x0f\x9f\xd8\x8a\xc7\x0b\xbe\x2a\x99\xd4\xad\x52\x23\xe2\x65\x18\xaf\xe5\x9c\x54\x8e\xd7\xe7\x8d\x1e\xed\x1e\x2e\x12\x7a\x8d\xc4\x1a\xa9\xb1\xf5\xa4\x34\xe9\x78\x6e\xae\x0a\x93\xac\x40\xc6\x09\x3b\xc7\x09\xc1\x69\xfa\xab\x91\x06\xe6\x85\xc9\x34\xf7\x88\x51\xb5\x2f\xad\x8d\xb9\xfc\xb2\x39\xbb\x71\x1c\x11\xa5\x74\x37\x15\x35\xbb\x99\xea\xc3\x8c\x5d\xea\x05\x58\x5e\xa0\xc9\x7b\x36\xfb\x33\x77\x1e\x56\x71\x98\x05\xae\xfc\x14\xd9\x6a\xe9\x43\x1b\x03\xa7\x44\x48\x2d\x1f\x97\x1f\x62\x7a\xb0\xb0\x4f\x7a\xcf\x66\xbf\x84\xb1\x28\x3c\x96\x39\x3c\x71\xb8\x2b\x7b\xaf\xc7\x47\x99\xf3\xe9\x79\x89\x52\x3d\xb7\x1e\xb8\xb4\xcf\x68\xb2\x20\xa3\xcd\xe5\xde\xa3\xa5\x00\xde\x90\xe3\xf1\x86\xac\xb7\xba\xf6\x79\x44\x9e\x4e\x99\xef\xd3\x37\xb2\xde\x38\xed\xf1\x8f\x3c\xdd\x85\x3f\x54\x4f\xc9\x7a\x43\xb8\xed\x2d\xf9\xd2\xeb\xb4\x12\x45\xc3\xad\xe2\x48\xa2\xf7\x35\xe5\x69\x56\x17\xe5\x8d\xd9\x9b\xa2\xf0\x84\x1d\x09\x18\xd4\x3d\x9e\xcb\x58\x6d\xe4\x61\xd8\xe7\xa8\x51\x9d\xa3\xa1\xa6\x2b\xc3\x31\x89\x1b\x5a\x4f\x01\xa3\xec\x6e\xb1\x16\x00\x8c\x82\x10\x2e\x99\xec\x44\x53\x57\x0f\xf9\xd0\x1d\x8e\x1e\x70\xef\x80\x7b\xc7\x64\xdd\x3b\xe0\x10\x01\x87\x08\x38\x44\xc0\x21\x02\x0e\x11\xbd\x3b\x44\x80\xb4\x03\xbe\x02\xbe\x02\xbe\x02\xbe\x02\xbe\x02\xbe\x02\xbe\xee\xbc\x04\xc0\x43\xc0\x43\xc0\x43\xc0\x43\xc0\x43\x90\xec\x7a\x1f\x78\x99\x57\xdb\xff\x1f\xaf\xe7\xfb\x4c\xda\x67\x12\xdf\x7a\x98\xc8\xb4\x95\x0d\x7b\x10\x14\xa6\x41\xfa\xec\xb1\xa4\xd4\x7a\xb5\x31\xa3\x17\x51\x98\xb4\x8c\x9c\x94\xb4\xcf\x78\x53\xba\xa4\xbe\x7f\x22\xbe\xd4\x2c\x62\x53\xea\x18\x5e\x2c\x5c\x3d\xbc\x3d\x1f\x42\xad\x44\x77\x22\xc2\xa8\xb8\x20\x06\x1b\x61\x44\x06\x81\xdf\x78\xc0\x57\x22\x56\xa6\x2d\xd9\x2a\xc6\x93\x24\x74\x3c\xd2\xd5\xac\x11\x89\x93\x2d\x30\x8c\x99\x54\xe5\xd3\x67\xab\xbc\xae\xf9\x83\x1c\xc5\xf4\x5e\x24\xc2\x08\x64\xc5\x38\x1a\x13\x6f\x43\x02\x29\x19\x8c\xc2\x98\x5d\xff\xf4\xb3\xfc\x6c\xcc\x1d\x22\x44\x7e\x18\xac\x94\xf8\x45\x46\x1d\xa9\x7d\x73\x2f\x50\x07\x1c\x19\x4d\xf2\xcf\x92\xd5\x5c\xf3\x2b\xb6\x78\x66\x74\x3b\xbd\xbb\xba\x5a\x85\x3e\x0f\x56\xf3\x30\x5e\x5d\x45\x0f\xab\xab\x2c\xf0\x9c\xd0\x15\x57\xff\xf1\x29\xb9\x93\x4f\x69\x6c\x85\xd5\x83\xd3\xe6\xf4\x0c\x4a\x5e\x9b\xa2\x18\x55\x57\x84\xfa\xa9\x86\x08\xf5\x41\x19\x9b\xc6\xd3\xa5\x9f\x0e\x76\x49\x79\xdb\x8e\xa7\x4f\x93\x96\x74\x49\x60\x1a\xb9\xa4\xfb\x8a\xb5\x9b\xa7\xe6\xea\x7f\xe4\x11\xfc\xbf\x27\x4a\x57\xd3\x58\xb2\xdc\x9b\xa2\x66\x18\x92\xe5\x48\x72\x81\x40\x5a\x2c\x4e\xf2\x60\xa5\x45\x44\x5f\x9f\x51\xf4\x35\xc2\xcc\x10\x66\x86\x30\x33\x84\x99\x41\xd1\xdd\xb5\x8b\x06\x19\xa8\xd1\x8f\x02\x88\x38\x93\xfa\x71\x26\x63\xd7\xf6\xac\xad\xbf\xf5\xe8\x12\x72\x2e\x28\xcb\x68\x0d\x55\x33\xf9\xa4\x7e\x42\x4a\x0a\x22\x8e\xf8\x41\x8e\x62\x0b\xf9\x13\x77\xd2\x39\x63\xb7\xf2\x5f\xf3\xfb\x35\xf7\xc8\xcc\x99\x30\xc7\xcf\x92\x54\xc4\xf9\xc5\xa5\x3c\x4a\x99\xef\x3d\x08\x36\xb3\xc5\x8c\x67\x52\x3e\x35\x32\xd5\x9c\xdd\xf9\x3c\x08\xb4\xa3\x07\x49\x3d\xdc\x57\x82\xd6\xf5\xcf\x4d\x6e\x02\x6a\x63\x4f\xf2\x88\x1d\x34\x2b\xce\x2f\xcc\xf0\xc9\x9e\xb2\x5b\x35\x62\xf2\x0e\x8a\x12\x33\x3a\xda\x97\x2a\x4b\x44\x4c\x4e\x50\xb9\x64\xfe\xdc\xf1\x40\xc9\xc6\x4c\x97\xe0\x0f\xfb\xa2\x84\xa9\xb1\xf1\xf5\x23\xcf\xeb\xa9\xdc\x3d\x0d\x98\x3a\x91\x2d\x6d\xbe\xa9\xdf\x22\x75\x20\x44\x3c\xbd\xaf\xa6\xe9\xf4\x6f\xe9\x2f\x7b\x68\x6e\xc7\xc5\x86\xc6\xeb\x35\x40\x1e\x3d\x8d\xca\x04\x5c\xd2\x77\xff\xb0\xff\x20\x5c\x8b\x78\x25\x6a\x7d\x92\xd6\xb3\x58\x79\xce\x65\xfd\xef\xc8\x9f\x9f\xf5\x27\xe9\xc8\xad\x23\xeb\x90\x0b\x28\x45\x98\x29\xef\xb3\x76\xe4\x1e\x6a\xc4\xa0\x2d\xd2\x5d\xf9\x3a\xec\xd1\x40\xee\xca\xfe\x62\x0c\x76\xea\x89\xdb\xa9\xcf\xc7\xab\x61\x23\xac\xc3\x6c\x2e\x15\x7a\x14\x29\x4f\x6c\x1d\xce\xfe\x7a\xc7\x91\xf5\x86\xac\x74\x2a\xde\x98\xfb\xf4\xcd\x20\x0c\x2e\xd5\xb7\xe9\x13\x64\x28\x4f\xd8\xeb\xbf\x26\x61\x70\xa7\xa2\xba\x7f\x93\x87\xa3\xfe\xf9\xab\x39\x32\xf3\x5f\xbe\x19\x92\xbb\x45\xfd\x75\xf3\x4b\x18\x3b\x44\x12\x56\x21\x4d\x7e\xc8\xbe\x5f\x2c\xe5\xef\xbe\x5f\xb0\x9b\xd2\x68\xce\xd9\xa7\x54\x9b\xfd\x49\xff\xd0\x1b\xf5\x92\x3b\x34\x01\x14\x17\xec\x7b\x8e\x36\x64\x92\xba\x12\x3e\xe9\xb9\x55\x71\xb3\x91\x08\x23\x5f\xcc\x99\x7a\x27\xa5\x03\x30\x6b\x8a\x5c\xf5\x2b\x27\xc2\xbe\xbe\xc9\xf0\xca\x17\x41\x6b\x51\x7f\x80\xd6\xb2\xfd\xd4\x81\x6a\x2d\xd1\x86\xaf\xf8\xc8\xf5\x96\xac\x75\x9b\x59\xe4\x73\xa7\x25\xf1\x51\x3f\xec\x2c\x05\x48\x38\xcb\x42\xac\x84\x58\x09\x67\x59\x08\x19\xf6\xe7\x0d\xb0\x38\x39\x67\xd9\x69\xcb\x4d\xd9\xe8\xad\xbd\xaf\xd8\xd1\x7e\xa5\x74\x03\x0e\xac\x02\xe2\xef\xb6\x4d\xdd\xd4\x40\xac\xff\x7c\xa4\xc9\x43\x9a\xbc\xd1\xa5\xc9\x9b\xb4\xe7\x33\x92\xfe\x21\xe9\x1f\x92\xfe\x21\xe9\x1f\x92\xfe\x55\x5d\x25\xa8\x82\x08\xb3\x0b\x72\x33\x22\x0e\xe7\x9c\xe3\x70\x90\x88\x13\x89\x38\x91\x88\x13\x89\x38\x91\x88\x13\x89\x38\x91\x88\x13\xe1\xa9\x08\x4f\x45\x78\x2a\xc2\x53\x37\x57\x24\xaa\x20\x22\xeb\xef\xd1\xab\x0b\x59\x7f\x91\xf5\x17\x59\x7f\xa7\xef\x18\x83\xe8\xf4\xf1\x54\x41\xac\xed\xcc\x30\xe0\x3a\x88\x8d\x1d\x3e\xf6\x54\x42\x84\x93\x07\x9c\x3c\x26\xec\xe4\x01\xb7\x08\xb8\x45\xc0\x2d\x02\x6e\x11\x70\x8b\xe8\xdd\x2d\x02\xbc\x1d\x08\x16\x08\x16\x08\x16\x08\x16\x08\x16\x08\x16\x08\x76\xe7\x25\x00\x2a\x02\x2a\x02\x2a\x02\x2a\x02\x2a\x82\x5a\x88\xcd\x82\x78\xf7\x1b\xb5\x51\x0d\xb1\xf7\x6a\x88\x9d\xd0\x18\xd4\x43\x6c\xa5\x1e\x62\x63\xca\xb4\xb7\x22\x62\xfb\x9c\x69\x2c\x69\x5e\x0e\xf4\xbc\xde\x41\x84\x88\xa3\x09\x44\x1c\x21\xd1\x0b\x12\xbd\x54\x34\x66\xf4\x02\xd5\x48\x53\xbd\xb4\xd5\xa9\x61\x55\x46\x6c\xa7\x57\x93\x96\x7b\xfb\xab\x8d\xd8\xa6\xdc\xfb\x8a\xb5\x9d\xc5\xe6\xd4\xf5\x11\xbb\x49\x60\x33\x14\x49\x73\x24\x99\x42\x20\x3b\x16\x27\x79\xb0\xb2\x23\x62\xb3\xcf\x28\x36\x1b\x41\x68\x08\x42\x43\x10\x1a\x82\xd0\xa0\xf6\xee\xda\x45\x83\x0c\xe3\x40\x8d\xc4\xe1\xea\x7c\x7d\xd6\x48\x1c\x47\xec\x49\x45\x95\xc4\xc6\x0a\xda\x9e\x3a\x89\x9d\x07\x9c\xa0\x52\xa2\x5d\x34\xf5\xa5\x12\x54\x4a\xd4\xff\xe1\xba\x84\xe9\x71\x8a\xb5\x12\x87\x42\xdc\x8b\xd5\x12\x8f\x69\x13\xea\x25\xa2\x5e\x62\x0f\xf5\x12\x1b\x4b\x40\xfb\x2a\x26\x0e\xc5\x42\x8d\x9a\x89\xb0\x5b\xc3\xe7\x01\x35\x13\xb7\x57\x0c\x6a\x26\xa2\x66\x22\xf4\x17\xe8\x2f\x43\xaa\x9a\xd8\x8d\x06\x73\x9a\xba\x89\x2f\x30\xa4\xed\xab\x9c\x38\x75\x41\x12\x4e\xb5\x10\x30\x21\x60\xc2\xa9\x16\xe2\xc6\x99\x39\xd5\x4e\x5b\x86\xea\xab\x82\x62\xcf\xde\xa7\x14\x53\x78\xb5\xd6\x65\x1c\x0f\xd6\x51\x6c\x1d\x70\xea\xfc\x0b\x81\xeb\x3d\x7a\x6e\xc6\xfd\x62\x68\x2b\xb7\x19\x57\xf6\x95\x99\x9c\x17\x1c\xab\xde\x59\x97\xac\x19\x3d\x78\x96\xa7\xe3\x2a\xe5\x57\xb2\x02\x1d\xf3\x82\x24\x15\xbc\x64\xf1\xdd\x14\xf7\x9e\xf6\x58\x0d\xf7\x35\xec\xd7\x8d\x48\x3e\x44\xa6\x0e\xd5\xa3\x84\x02\xab\x6f\x1f\x45\x80\x10\x54\xbb\xe0\xfb\x8b\x43\x6d\xaf\xa6\xec\x4b\x98\x18\x52\x64\x4e\x38\x45\xe6\x61\xa4\x77\x28\x3d\xe6\x5e\xcb\x60\x0b\xb8\x12\x49\x31\x91\x14\x13\x49\x31\x91\x14\x73\x6a\x49\x31\x0f\x9f\xbc\x95\x09\x31\x3b\x76\x0e\x39\x59\x1a\xcc\xc3\xdd\xdf\x9d\x02\x73\xc8\x63\x70\x4c\xe2\xcb\xc3\x63\xb0\x3b\xe9\x65\xc7\x63\x80\x54\x97\x48\x75\x89\x54\x97\x48\x75\x89\x54\x97\x9d\xa5\xba\xac\x71\xfa\x6f\xa5\xb9\xdc\x1b\xe2\x79\x46\xbe\xa1\xf5\x7a\x83\x54\x9d\x23\x4b\xd5\x79\x78\x11\xed\x4b\xd3\xd9\xf1\x6a\xea\x35\x39\xe7\xe1\x91\xd9\x93\x98\xb3\xeb\x53\x63\xa8\xe9\x38\x0f\x0f\x5a\x85\xb1\xbf\xb1\x39\x4b\xff\xf4\x8f\x6e\xd8\x53\x45\xf6\x93\x8e\x10\x54\x91\x3b\x05\xe6\x1e\x34\x45\x9e\x3a\xe7\x4f\x6f\x73\x51\x98\xc4\x7d\x2d\x36\x49\x69\x3a\x97\xf1\x67\x25\xdd\xb0\xf0\xec\x2e\xe8\x15\xc8\x15\xc8\xd5\x38\xc9\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\x15\xa8\xd5\x54\xa8\x55\x31\x6b\x4b\x7d\xeb\x03\x72\xb6\x80\xcb\x81\xcb\x81\xcb\x81\xcb\x81\xcb\xed\xe5\x72\x07\xea\x12\x0c\x20\x2a\x6c\x7f\xe8\x5c\xaf\x71\x61\x35\x8a\xdd\x81\xaf\x81\xaf\x8d\x92\xaf\xa1\x42\x21\x28\x1b\x28\x1b\x28\x1b\x28\x1b\x28\x1b\x28\x1b\x28\x1b\x28\x1b\x28\x1b\x28\x1b\x28\x1b\x28\x1b\x28\x1b\x28\x1b\x28\xdb\xb4\x28\x1b\x18\x14\x18\x14\x18\x54\xf5\x6a\x02\x83\xda\xb9\xcf\xc0\xa0\x4e\xc0\xa0\x06\x12\x1d\x76\x02\x0e\xd5\x4f\x7c\xd8\x11\xa9\xac\x41\xb0\x40\xb0\x46\x43\xb0\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\x40\xaf\xa6\x43\xaf\x50\xd9\x1b\x84\x0e\x84\x0e\x84\x0e\x84\x0e\x84\xae\x5d\x42\xb7\x10\x29\xbf\xbe\x6a\x84\xde\x7a\xa9\x3d\xb8\x31\xfd\x2b\x91\x96\xc5\x5a\x35\xd3\x7b\x40\xd9\x4a\xa4\x3b\x30\x19\x0d\xc5\xcd\xdd\xa7\x2f\x55\x4f\x41\x01\xc6\x23\x81\x55\x61\x20\x29\x4e\x6e\xa2\xd4\x8a\x16\x4d\xe1\x31\xaf\x8a\x4d\x69\xb0\x13\x6b\x97\xf0\x53\xaa\x46\xbb\x90\x5c\x3d\x93\x39\xa1\xef\x0b\xc7\x5c\x1f\x75\xb3\x8b\x6e\xec\x33\xf5\xac\x7d\x5b\xed\x83\x7d\x4d\xed\x04\xa6\x35\x2b\x2d\x83\x94\x9d\x0f\x29\xab\x57\xac\xf7\x10\x2d\x3b\x70\xf9\xbe\xa4\xa6\x72\xb3\xb2\xdf\x9d\x9c\xc9\x1f\x69\x4f\x7e\x8e\xd4\x61\x52\xef\x44\xde\xbf\xb5\x40\x01\x41\x01\x41\x01\x41\x01\xa7\x46\x01\xeb\xdd\x2a\x95\x24\xf0\x64\xd5\xf9\xc9\x8e\xa3\xed\x9f\x6f\x29\xcb\x86\x23\x57\x94\x5a\x07\xa5\xbe\x15\xe5\x88\x85\x60\x91\x1c\xad\x24\x95\x17\xf4\x4d\xc0\xbc\x40\x9d\x2c\x61\xcc\xb2\xc0\x1e\x4e\x2e\x73\xe3\xe7\x2f\x59\xc0\x5c\x2f\x96\x42\xda\xa3\xb0\x2b\x9e\x6c\x2b\x01\xe3\x81\xde\xf2\x66\x6d\xe8\x01\x66\xcb\x2c\xa6\x5d\x16\xc5\xa1\x23\xe5\x06\x65\x7e\x2a\x10\x9a\xb9\xb2\x61\xaa\xd9\xa2\xb5\xf3\x8e\x5d\xb2\x1b\xdf\x7f\x47\x46\x63\x57\x9e\xd2\x59\x20\x27\x5e\xea\xf3\x66\x49\xea\xc7\x6d\x97\x5a\xaf\x31\x51\xaa\x2f\xfd\x4c\xd3\xc9\xd0\x6d\xbd\xa1\xd8\x8d\x6f\x4f\x36\x22\xdf\x8a\x06\x2a\x2f\x60\x89\xb2\x1b\xb1\x85\x58\x2a\xc9\xd9\x9a\xf9\x73\x51\x42\x9f\x5e\xb4\x74\x32\xa1\x2e\x87\x85\x60\x41\x18\x5c\x06\x62\xc5\x69\x81\x6a\x13\xd3\x9c\x7d\xb3\x17\xb6\x42\x7e\x76\x6b\x68\x05\xc7\x5b\xaf\x85\xeb\xf1\x54\xf8\xcf\xb9\x48\x9b\x5f\xb9\x9e\xff\x56\x9b\x90\x68\xd0\xd9\x2a\xe6\x0e\xed\x1a\x2f\x74\xad\x40\x90\x5f\xda\xa4\x2f\x98\x55\x9a\x25\xb2\x91\xc5\xe9\xe2\xf2\x9b\xa6\x43\xfa\x25\x4b\x75\x06\x9a\x47\xcc\x55\x3b\xd7\x82\x07\x95\x6d\x6c\x30\xcd\xd4\xe6\x3b\x6a\x72\x95\x59\xee\x80\x61\x6e\x28\xcb\xff\x18\x6a\x5f\x6f\x5c\x76\x93\xfb\x93\x2d\x7f\x30\x7c\x30\x7c\x30\x7c\x30\x7c\x30\xfc\xce\x18\x7e\xcd\xbb\x60\x8b\xe3\x9f\xee\x5a\xfc\x58\x08\x26\x8a\x7c\xc1\x13\x61\x8f\xa0\xbb\x38\x8c\xf8\x8a\xa4\xa3\xbb\xd0\xf7\x9c\xe7\x92\x1d\xcc\x2c\xba\x3c\x1a\x49\x2e\xbb\xeb\xf9\x9f\xe6\xec\xab\x3a\xcf\x94\xe8\x12\x89\x40\x6e\x96\xfc\x4e\x15\x2c\x8c\xa3\x7b\x1e\x18\xbb\x5c\x9c\x89\xab\x25\xf7\x8d\xae\xfc\xfd\x42\xfd\xf9\xfb\x05\x5b\x7a\x01\xf7\xbd\x7f\x9b\x8b\x64\x21\x18\x77\x5d\x5a\x9d\x57\x8a\x88\xb9\xb9\x1a\xa6\x1e\x3f\x4b\xf2\x2f\x29\xfd\x74\xce\x6e\x3d\x3a\x1c\x0b\x4d\x0f\xe3\xed\xbe\xd1\xf1\xa3\x4c\x45\x4a\x3d\x26\x1d\x25\x4c\xef\x9b\x4c\xa8\xea\xc1\x47\xd3\xf7\x93\x99\xf8\xb6\x15\x33\xea\xba\xdc\xb0\xf7\xe1\x13\x5b\xf1\x78\xc1\x57\x25\xbb\xba\x55\x6a\x44\xbc\x0c\xe3\xb5\x9c\x93\xca\xf1\xfa\xbc\xd1\xa3\xdd\xc3\x45\x42\xaf\x91\x58\x23\x35\xb6\x9e\x94\x26\x1d\xcf\xcd\x55\x61\x92\x15\xc8\x38\x61\xe7\x58\x5e\xd6\xfa\x26\x35\xd2\xc0\xbc\x30\x99\xe6\x1e\x31\xaa\xf6\xa5\xb5\x31\x97\x5f\x36\x67\x37\x8e\x23\xa2\x94\xee\xa6\xa2\x66\x37\x53\x7d\x98\xb1\x4b\xbd\x00\xcb\x0b\x34\x79\xcf\x66\x7f\xe6\xce\xc3\x2a\x0e\xb3\xc0\x95\x9f\x22\x5b\x2d\x7d\x68\x63\xe0\x94\x08\xa9\xe5\xe3\xf2\x43\x4c\x0f\x16\xf6\x49\xef\xd9\xec\x97\x30\x16\x85\xc7\x32\x87\x27\x0e\x77\x65\xef\xf5\xf8\x28\x73\x3e\x3d\x2f\x51\xaa\xe7\xd6\x03\x97\xf6\x19\x4d\x16\x64\xb4\xb9\xdc\x7b\xb4\x14\xc0\x19\x65\x3c\xce\x28\xf5\x56\xd7\x3e\x87\x94\xd3\x29\xf3\x7d\xba\xa6\xd4\x1b\xa7\x3d\xee\x29\xa7\xbb\xf0\x87\xea\xa8\x52\x6f\x08\xb7\x9d\x55\x5e\x7a\x9d\x56\xf2\x68\x78\x59\x1c\x49\xf4\xbe\xa6\x3c\xcd\xea\xa2\xbc\xd1\x3b\x57\x14\x1e\xb3\x23\x2e\x58\x5d\xe6\xb9\xa0\xd5\x4f\x88\x70\xc3\x22\x92\x1b\xdd\xdd\x8e\x12\x6e\x3d\x2b\x82\xb2\xc0\xc5\x5a\x14\x30\xaa\x42\x9d\x72\xb9\x7b\x3c\x3f\xe4\x43\xf7\xf9\x7d\xc0\xdb\x03\xde\x1e\x93\xf5\xf6\x80\x7f\x04\xfc\x23\xe0\x1f\x01\xff\x08\xf8\x47\xf4\xee\x1f\x01\xf0\x0e\x16\x0b\x16\x0b\x16\x0b\x16\x0b\x16\x0b\x16\x0b\x16\xbb\xf3\x12\x00\x1e\x01\x1e\x01\x1e\x01\x1e\x01\x1e\x41\x7a\xd6\x7d\x1c\x66\x5e\x4d\x02\xb4\xe1\x7e\xbe\xcf\xae\x7d\x4e\x21\xb0\x87\x29\x4d\x7f\xa5\x07\xbb\x22\x33\x0d\xf2\xb7\x8e\x25\xdf\xc9\xab\x8d\x69\xbd\x88\xc2\xa4\x65\x0c\xa5\x84\x7f\xc6\x9b\x12\x27\xf5\xfd\x53\x32\xa7\x66\x41\x9d\x7b\x92\xeb\xf4\x75\x30\xb5\x12\x05\x8a\x48\xa4\xe2\xaa\x18\x6c\x24\x12\x59\x0a\x7e\xe3\x01\x5f\x89\x58\xd9\xbc\x28\xaf\x14\x4f\x92\xd0\xf1\x48\x89\xb3\xd6\x25\x4e\x46\xc2\x30\x66\x52\xc7\x4f\x9f\xad\x56\xbb\xe6\x0f\x72\x14\xd3\x7b\x91\x08\x23\xa9\x15\xe3\x6d\x4c\x5c\x0e\x49\xaa\x64\x49\x0a\x63\x76\xfd\xd3\xcf\xf2\xb3\x31\x77\x08\x1d\xf9\x61\xb0\x52\x72\x19\x59\x7b\xa4\x5a\xce\xbd\x40\x1d\x75\x64\x4d\xc9\x3f\x4b\xe6\x74\x0d\xb6\xd8\xe2\x99\xd1\x8d\xf5\xee\xea\x6a\x15\xfa\x3c\x58\xcd\xc3\x78\x75\x15\x3d\xac\xae\xb2\xc0\x73\x42\x57\x5c\xfd\xc7\xa7\xe4\x4e\x3e\xa5\xb1\x79\x56\x0f\x4e\x9b\xd3\x33\x28\x41\x6e\xb2\xf2\x55\x5d\xd9\xea\xa7\x1a\xb2\xd5\x07\x65\x8a\x1a\x59\xbf\x7e\x3a\xd8\x2f\xe5\x9f\x3b\xb2\x8e\x4d\x5f\x18\x26\x71\x6a\x0a\xc2\xf0\x2b\xd6\x41\xca\x9b\x8a\xda\x30\x1d\x66\xbe\x69\x2c\x81\x1e\xce\x76\x33\x0c\x09\x74\x24\x69\x45\x20\x50\x16\x27\x79\xb0\x02\x25\x02\xb9\xcf\x28\x90\x1b\x11\x6b\x88\x58\x43\xc4\x1a\x22\xd6\xa0\x0b\xef\xda\x45\x83\x8c\xf9\xe8\x47\x33\x44\xc8\xca\xf6\x63\xf6\x86\xac\x4c\x42\x03\xb4\x88\xa0\xf5\x40\x15\x72\x51\x28\x4b\x6b\x0d\x35\x35\xf9\xa4\x1e\xa3\x53\x0a\x12\x8f\xf8\x41\x3e\x67\x0b\xf9\x13\x77\xd2\x39\x63\xb7\xf2\x5f\xf3\xfb\x35\xf7\xc8\x30\x9a\x30\xc7\xcf\x92\x54\xc4\xf9\x3d\xa6\x9c\x53\x99\xef\x3d\x08\x36\xfb\x1b\x5f\x8b\x24\xe2\x8e\x98\x49\x71\xd5\x88\x58\x73\x76\xe7\xf3\x20\xd0\x3e\x23\x24\x04\x71\x5f\xc9\x5d\xd7\x3f\x37\xb9\x18\xa8\x8d\x3d\x89\x27\x76\xd0\xac\x74\xbf\x30\xc3\x27\x7b\xca\x6e\xd5\x88\xc9\x2b\x29\x4a\xcc\xe8\x68\xb7\xac\x2c\x11\x31\xf9\x53\xe5\x82\xfa\x73\xc7\x03\x25\x1b\x33\x5d\x67\x80\x61\xdf\x9b\x30\x49\xb6\x70\x25\xc9\xe3\x7b\x52\xf7\x51\x03\x3c\x5f\x2c\xb9\x52\xbf\x59\x28\xb8\x72\x0a\x07\x04\xf2\x15\x6a\x54\xa3\xe0\x92\xbe\xfb\x87\xfd\xe7\xe2\x5a\xc4\x2b\x51\xeb\x93\xb4\xa8\xc5\xca\x73\x2e\xeb\x7f\x47\xfe\xfc\xac\x3f\x49\x27\x70\x1d\xf9\x87\x9c\x4b\x29\x76\x4d\xf9\xb5\xb5\x23\x0b\x45\x7b\x8a\x86\x0f\xc8\x68\xdd\x95\xdb\xc4\x1e\x25\xe5\xae\xec\x8e\xc6\x60\xca\x9e\xb8\x29\xfb\x7c\x7c\x23\x36\xa2\x46\xcc\xe6\x52\x91\x4d\x91\x72\xf4\xd6\xd1\xf2\xaf\x77\x9c\x5b\x6f\xc8\x90\xa7\xc2\x99\xb9\x4f\xdf\x0c\xc2\xe0\x52\x7d\x9b\x3e\x41\xb6\xf4\x84\xbd\xfe\x6b\x12\x06\x77\x2a\x68\xfc\x37\x79\x42\xea\x9f\xbf\x9a\x73\x33\xff\xe5\x9b\x21\x39\x6d\xd4\x5f\x37\xbf\x84\xb1\x43\xb0\x61\x15\xd2\xe4\x87\xec\xfb\xc5\x52\xfe\xee\xfb\x05\xbb\x29\x8d\xe6\x9c\x7d\x4a\x35\x19\x20\x9d\x44\x6f\xd4\x4b\xee\xd0\x04\x50\xd8\xb1\xef\x39\xda\xd6\x49\x2a\x4c\xf8\xa4\xe7\x56\x85\xe5\x46\x22\x8c\x7c\x31\x67\xea\x9d\x94\x6d\xc0\xac\x29\x8a\x04\xa8\x9c\x08\xfb\xfa\x26\xc3\x2b\x5f\x04\x4d\x46\xfd\x01\x9a\xcc\x08\x35\x99\x68\xc3\x29\x7d\x0a\xba\x4c\xd6\xba\x6d\x2d\xf2\xb9\xd3\x92\x48\xa9\x1f\x76\xbe\x42\x25\x7c\x71\x21\x6f\xd6\x98\xa6\xf3\x91\x37\x07\x24\xd6\x41\xfa\xb0\x7f\xe9\xff\x18\x9b\xac\x2f\xee\x19\x48\x55\xd9\x34\xec\xc3\xaf\x58\x33\x8f\xd5\x47\x5b\x82\x7b\x38\x65\x1a\x6b\x97\x05\x7f\x49\xa1\xc6\xfa\x2f\x41\xf2\x3e\x24\xef\x1b\x5d\xf2\xbe\x49\xfb\x54\x23\x15\x21\x52\x11\x22\x15\x21\x52\x11\x22\x15\x61\xd5\x55\x82\x52\x8d\x30\xca\x20\x63\x24\x22\x7c\xce\x39\xc2\x07\xe9\x41\x91\x1e\x14\xe9\x41\x91\x1e\x14\xe9\x41\x91\x1e\x14\xe9\x41\x11\xf8\x8a\xc0\x57\x04\xbe\x22\xf0\x75\x73\x45\xa2\x54\x23\x72\x11\x1f\xbd\xba\x90\x8b\x18\xb9\x88\x91\x8b\x78\xfa\x6e\x33\x88\x7b\xdf\x7e\xcc\xa0\x4b\x35\xd6\xf6\x68\xe8\x3f\x06\x7e\x7f\xb1\xc6\xc6\xfe\x1f\x87\xca\x35\xc2\xe7\x03\x3e\x1f\x13\xf6\xf9\x80\x97\x04\xbc\x24\xe0\x25\x01\x2f\x09\x78\x49\xf4\xee\x25\x01\xfc\x0e\x22\x0b\x22\x0b\x22\x0b\x22\x0b\x22\x0b\x22\x0b\x22\xbb\xf3\x12\x00\x24\x01\x24\x01\x24\x01\x24\x01\x24\x41\xc1\xc6\x17\x04\xfb\xee\xb7\x6c\xa3\x64\xe3\x30\x4a\x36\x76\x47\x68\x50\xb4\xb1\x95\xa2\x8d\x8d\xc9\xd3\xe1\xb2\x8d\xed\xb3\xa7\x51\x25\x8b\x39\xd0\xfd\x7a\x87\x13\x22\x93\x26\x10\x99\x84\x74\x31\x48\x17\x53\xd1\x98\x69\x48\x5a\x63\x4e\x18\xd3\x56\xcf\x06\x58\xbe\xb1\x9d\xae\x4d\x5f\x34\xee\xaf\x80\x63\xeb\xa2\xf1\x2b\xd6\x49\x42\x9c\x53\x17\x71\xec\x30\x17\xce\x50\x24\xd2\x91\x24\x1d\x81\x78\x59\x9c\xe4\xc1\x8a\x97\x08\xf3\x3e\xa3\x30\x6f\xc4\xb3\x21\x9e\x0d\xf1\x6c\x88\x67\x83\x66\xbc\x6b\x17\x0d\x32\x22\x04\x85\x1c\x07\xae\x07\xf6\x59\xc8\x71\x44\x61\x2c\x15\xa5\x1c\x1b\xeb\x6b\x87\x8a\x39\x76\x1e\xbb\x82\x72\x8e\x76\xe5\xd4\x17\x52\x50\xce\x51\xff\x87\xdb\x13\x26\x4a\xfd\xa7\x89\x16\x74\x1c\x14\xbc\x2f\x96\x74\x3c\xa6\x61\x28\xea\x88\xa2\x8e\x3d\x14\x75\x6c\x2c\x15\x1d\x2c\xeb\x38\x14\x23\x36\x0a\x3b\xc2\xb4\x0d\xcf\x09\x14\x76\xdc\x5e\x31\x28\xec\x88\xc2\x8e\xd0\x69\xa0\xd3\xec\xd1\x69\x7a\x2c\xed\xd8\xa1\x56\x73\x9a\xe2\x8e\x2f\x30\xb8\x1d\x2c\xef\x38\x75\xe1\x12\x3e\xbb\x90\x3c\x6b\x4d\xd3\xf9\x48\x9e\x03\x12\xf0\x20\x87\xd8\xbf\x0c\xe1\x20\x9b\xb0\xcf\xee\x19\x48\x58\x7d\x95\x79\x1c\x8c\x5f\x2b\x05\x39\x5e\xad\x75\xd5\xc9\x83\xc5\x1e\x5b\x67\xa5\x3a\x21\x44\xe0\x7a\x8f\x9e\x9b\x71\xbf\x18\x6b\xcb\x6d\x0a\x98\x7d\x55\x31\xe7\x05\x6f\xad\x77\xd6\xcf\x6b\x46\x0f\x9e\xe5\xf9\xc1\x4a\x09\x9f\xac\xcc\xc7\xbc\x20\x49\x05\x2f\x19\x8a\x37\x25\xc2\xa7\x43\xc6\xc6\x7d\xad\xfb\x75\x23\xaa\x10\xf1\xb2\x43\xf5\x55\xa1\x70\xef\xdb\x47\x11\x20\x26\xd6\x29\xed\xce\xfe\x02\x63\x5b\x2e\x86\xfb\x12\xb2\x86\x14\x9e\x13\x4e\xe1\x79\x18\x0c\x1e\x4a\xdf\xb9\xd7\xb4\xd8\x02\xf4\x44\xd2\x4e\x24\xed\x44\xd2\x4e\x24\xed\x9c\x5a\xd2\xce\xc3\x27\x6f\x65\xc2\xce\x8e\x5d\x4c\x4e\x96\xa6\xf3\x70\xf7\x77\xa7\xe8\x1c\xf2\x18\x1c\x93\x98\xf3\xf0\x18\xec\x4e\xca\xd9\xf1\x18\x20\x15\x27\x52\x71\x22\x15\x27\x52\x71\x22\x15\x67\x67\xa9\x38\x6b\x9c\xfe\x5b\x69\x38\xf7\x86\x91\x9e\x91\x87\x69\xbd\xde\x20\x95\xe8\xc8\x52\x89\x1e\x5e\x44\xfb\xd2\x88\x76\xbc\x9a\x7a\x4d\x1e\x7a\x78\x64\xf6\x24\x0e\xed\xfa\xd4\x18\x6a\xba\xd0\xc3\x83\x56\x61\xf6\x6f\x6c\xce\xd2\x3f\xfd\xa3\x43\x1e\x55\x91\x6b\xa5\x23\x2c\x55\x64\x51\x81\xb9\x0c\x4d\x39\xaa\xce\x99\xd4\xdb\x5c\x1e\x26\x99\x5f\xcb\x4e\x52\xa4\xce\x05\xfd\x59\x49\x41\x2c\x3c\xbb\x33\xa2\x05\x9a\x05\x9a\x35\x62\x9a\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x05\x92\x35\x29\x92\x55\xcc\x07\x53\xdf\x04\x81\x6c\x30\x60\x75\x60\x75\x60\x75\x60\x75\x60\x75\x87\x59\xdd\x81\xca\x08\x03\x88\x1e\xdb\x1f\x6c\xd7\x7f\xfc\x58\x8d\x2a\x7d\x60\x6e\x60\x6e\xe3\x65\x6e\x28\xad\x08\xf2\x06\xf2\x06\xf2\x06\xf2\x06\xf2\x06\xf2\x06\xf2\x06\xf2\x06\xf2\x06\xf2\x06\xf2\x06\xf2\x06\xf2\x06\xf2\x06\xf2\x36\x41\xf2\x06\x2e\x05\x2e\x05\x2e\x55\xbd\x9a\xc0\xa5\x76\xee\x33\x70\xa9\x53\x71\xa9\x81\x44\x91\x9d\x80\x4d\xf5\x18\x47\x76\x44\xa6\x6c\x50\x2d\x50\xad\x71\x51\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\x2d\x10\xad\x89\x11\x2d\xd4\x16\x07\xb5\x03\xb5\x03\xb5\x03\xb5\x03\xb5\x3b\x96\xda\x45\x9e\xf8\x91\x8a\x20\xa1\xc6\x6b\x5a\xd7\x88\xbc\xf5\x52\xcf\x70\x63\xba\x57\x22\x65\x5e\xb0\x0c\xe3\xb5\x5d\xde\x9c\x29\x8b\xfe\x6e\x54\xb6\x12\xe9\x4d\x71\x14\x6e\xee\x3e\xfd\x65\xf3\x2b\x28\xe2\x78\x24\x9a\xb2\x83\x38\x76\x30\x55\x5c\x19\x85\xaf\xbd\x2a\xbe\xba\xc6\x96\x7a\xbc\x1e\xf7\xae\x2a\x29\x87\xea\xbc\x3c\x62\x4b\xfd\x7e\x7d\x73\xf7\xe9\x4b\xd5\x17\xb1\xb1\x8e\xdf\x58\x66\x20\x29\xfc\x74\x4a\xfb\xeb\xbf\x1f\xaf\x5f\xb6\xc5\x9c\x2c\x49\xc3\xb5\x59\xa1\x85\xb1\x2d\xee\x3d\xa5\x85\xb7\xeb\x4e\xa2\x9e\xc9\x9c\xd0\xf7\x85\x63\xae\x9e\x0f\xd4\x1a\x33\x5b\x1f\x6d\x6b\xf6\x6c\x1c\xf5\x9c\x8d\xbd\xf3\xc1\x3e\xb5\xce\x13\xeb\x16\x36\x07\x2f\x3e\x1f\x5e\x5c\xaf\x2c\xf6\x21\x66\x7c\x40\x04\x7d\x49\xf5\xf2\x66\x55\xf6\x3b\x39\x60\x3f\xd2\x16\xfc\x1c\xa5\xe5\x1b\x9f\x35\x2f\x99\x0f\x16\x0e\x16\x0e\x16\x0e\x16\x3e\x35\x16\x5e\xef\x56\xa9\xe4\xe1\xfb\x4d\x62\x2f\xb9\x49\xaa\x0c\xad\x9a\x02\xbc\xa5\x74\x34\x8e\x5c\x51\x6a\x1d\x94\xfa\x56\x94\x23\x16\x82\x45\x72\xb4\x92\x54\x5e\xd0\x37\x01\xf3\x02\x75\xb2\x84\x31\xcb\x02\x7b\x38\xb9\xcc\x8d\x9f\xbf\x64\x01\x73\xbd\x58\x0a\x68\x8f\xc2\xae\x78\xb2\x30\x06\x8c\x07\x7a\xcb\x9b\xb5\xa1\x07\x98\x2d\xb3\x98\x76\x59\x14\x87\x8e\x94\x1b\x94\x11\xb6\xc0\x29\xe7\xca\x92\xaf\x66\x8b\xd6\xce\x3b\x76\xc9\x6e\x7c\xff\x1d\xa1\x13\x57\x9e\xd2\x59\x20\x27\x7e\x25\x12\xbb\x24\xf5\xe3\x84\xdb\x60\xa2\x54\x5f\xfa\x99\xa6\x93\x39\x30\xd4\x1b\x8a\xdd\x4e\x0c\x27\x1b\x91\x6f\x45\x33\xad\x17\xb0\x44\x59\x4f\xd9\x42\x2c\x95\xe4\x6c\x61\x57\x2e\x4a\xe8\xd3\x8b\x96\x4e\x26\xd4\xe5\xb0\x10\x2c\x08\x83\xcb\x40\xac\x38\x2d\x50\x6d\x68\x9d\xb3\x6f\xf6\xc2\x56\xe0\xdb\x6e\x0d\xad\xcb\x78\xeb\xb5\x70\x3d\x9e\x0a\xff\x39\x17\x69\xf3\x2b\xd7\xf3\xdf\x6a\x43\x2a\x0d\x3a\x5b\xc5\xdc\xa1\x5d\xe3\x85\xae\x15\x08\xf2\x4b\x9b\xf4\x05\xb3\x4a\xb3\x44\x36\xb2\x38\x5d\x5c\x7e\xd3\x74\x48\xbf\x64\xa9\xce\x40\xf3\x88\xb9\x6a\xe7\x5a\xf0\xa0\xb2\x8d\x0d\xa6\x99\xda\x7c\x47\x4d\xae\x32\x4e\x1f\x30\x4f\x0f\x65\xf9\x1f\xe3\xbb\x52\x6f\x5c\x76\xfb\xaf\x9c\x6c\xf9\xc3\x93\x05\x9e\x2c\xf0\x64\x81\x27\x0b\x3c\x59\x3a\xf3\x64\xa9\x79\x17\x6c\x79\xb3\x9c\xee\x5a\xfc\x58\x88\xb0\x8b\x7c\xc1\x13\x61\x8f\xa0\xbb\x38\x8c\xf8\x8a\xa4\xa3\xbb\xd0\xf7\x9c\xe7\x92\x1d\xcc\x2c\xba\x3c\x44\x4f\x2e\xbb\xeb\xf9\x9f\xe6\xec\xab\x3a\xcf\x94\xe8\x12\x89\x40\x6e\x96\xfc\x4e\x15\x2c\x8c\xa3\x7b\x1e\x18\xbb\x5c\x9c\x89\xab\x25\xf7\x8d\xae\xfc\xfd\x42\xfd\xf9\xfb\x05\x5b\x7a\x01\xf7\xbd\x7f\x9b\x8b\x64\x21\x18\x77\x5d\x5a\x9d\x57\x8a\x0b\xbb\xb9\x1a\xa6\x1e\x3f\x4b\xf2\x2f\x29\xfd\x74\xce\x6e\x3d\x3a\x1c\x0b\x4d\x0f\xe3\xed\xbe\xd1\xf1\xa3\x4c\x45\x4a\x3d\x26\x1d\x25\x4c\xef\x9b\x4c\xa8\xea\xc1\x47\xd3\xf7\x93\x99\xf8\xb6\x15\x33\xea\xba\xdc\xb0\xf7\xe1\x13\x5b\xf1\x78\xc1\x57\x25\x13\xba\x55\x6a\x44\xbc\x0c\xe3\xb5\x9c\x93\xca\xf1\xfa\xbc\xd1\xa3\xdd\xc3\x45\x42\xaf\x91\x58\x23\x35\xb6\x9e\x94\x26\x1d\xcf\xcd\x55\x61\x92\x15\xc8\x38\x61\xe7\x38\x21\xb0\x4c\x7f\x35\xd2\xc0\xbc\x30\x99\xe6\x1e\x31\xaa\xf6\xa5\xb5\x31\x97\x5f\x36\x67\x37\x8e\x23\xa2\x94\xee\xa6\xa2\x66\x37\x53\x7d\x98\xb1\x4b\xbd\x00\xcb\x0b\x34\x79\xcf\x66\x7f\xe6\xce\xc3\x2a\x0e\xb3\xc0\x95\x9f\x22\x5b\x2d\x7d\x68\x63\xe0\x94\x08\xa9\xe5\xe3\xf2\x43\x4c\x0f\x16\xf6\x49\xef\xd9\xec\x97\x30\x16\x85\xc7\x32\x87\x27\x0e\x77\x65\xef\xf5\xf8\x28\x73\x3e\x3d\x2f\x51\xaa\xe7\xd6\x03\x97\xf6\x19\x4d\x16\x64\xb4\xb9\xdc\x7b\xb4\x14\xc0\x25\x6b\x3c\x2e\x59\xf5\x56\xd7\x3e\xb7\xac\xd3\x29\xf3\x7d\x3a\x68\xd5\x1b\xa7\x3d\x4e\x5a\xa7\xbb\xf0\x87\xea\xae\x55\x6f\x08\xb7\x5d\xb6\x5e\x7a\x9d\x56\xa2\x67\xb8\x4c\x1c\x49\xf4\xbe\xa6\x3c\xcd\xea\xa2\xbc\x31\x7a\x4a\x14\xbe\xb9\x23\x2a\x5e\xdd\xdf\xb9\x6c\xd5\x4a\x80\x7c\x85\x13\x46\x75\x60\x7c\x0d\xb7\x85\xcd\x90\xf8\x7d\xd1\xf0\xad\x27\x03\x51\x36\xb6\x58\x5f\xf6\x46\x19\x30\x79\x40\x1a\xb8\x71\xc8\x07\x6e\x3a\x71\xc0\x75\x03\xae\x1b\x53\x74\xdd\x80\xb3\x03\x9c\x1d\xe0\xec\x00\x67\x07\x38\x3b\xf4\xee\xec\x00\x8a\x0e\xb0\x0a\xb0\x0a\xb0\x0a\xb0\x0a\xb0\x0a\xb0\x0a\xb0\xba\xf3\x12\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x40\xee\xe1\x7d\x50\x25\x37\x60\x5f\x5a\xab\x65\xce\x57\xca\x00\xe0\xf1\x7a\xbe\xcb\xc6\x3d\xf1\x40\xd5\xc3\xf8\xa5\xb5\x2a\x9b\x7d\x21\x97\x06\x09\x88\xc7\x92\xb0\xe7\xd5\xc6\x2c\x5e\x44\x61\xd2\x32\x5f\x52\xa2\x3e\xe3\x4d\x50\x92\xfa\x6e\x87\x30\xa9\x59\xe8\xe5\x9e\x44\x50\x43\x38\x71\x5a\x89\xdb\x44\xec\x50\x71\x85\x0c\x36\x76\x88\xcc\x01\xbf\xf1\x80\xaf\x44\xac\x0c\x5b\x94\x0f\x8d\x27\x49\xe8\x78\xa4\xa9\x59\x13\x12\x27\x4b\x60\x18\x33\xa9\xc8\xa7\xcf\x56\x75\x5d\xf3\x07\x39\x8a\xe9\xbd\x48\x84\x11\xc7\x8a\x11\x32\x26\x92\x86\xc4\x51\x32\x17\x85\x31\xbb\xfe\xe9\x67\xf9\xd9\x98\x3b\xc4\x87\xfc\x30\x58\x29\xe1\x8b\x4c\x3a\x52\xf7\xe6\x5e\xa0\x4e\x38\x32\x99\xe4\x9f\x25\x9b\xb9\xa6\x57\x6c\xf1\xcc\xe8\x2a\x7a\x77\x75\xb5\x0a\x7d\x1e\xac\xe6\x61\xbc\xba\x8a\x1e\x56\x57\x59\xe0\x39\xa1\x2b\xae\xfe\xe3\x53\x72\x27\x9f\xd2\xd8\x06\xab\x07\xa7\xcd\xe9\x19\x94\xb4\x76\x16\x42\x54\x5d\x01\xea\xa7\x1a\x02\xd4\x07\x65\x7b\x1a\x71\x1f\x7f\x3a\xd8\x47\xe5\x69\x3b\xe2\x4e\x4e\x52\x12\x26\xe1\x6a\x84\x92\xf0\x2b\xf6\xf2\x24\x34\x15\x75\x8d\x3a\xcc\x45\xd3\x48\xda\xac\xce\x3f\xd3\xbb\xb4\x39\x92\x44\x1f\x10\x18\x8b\x93\x3c\x58\x81\x11\xa1\xd5\x67\x14\x5a\x8d\x18\x32\xc4\x90\x21\x86\x0c\x31\x64\xd0\x75\x77\xed\xa2\x41\x46\x61\xf4\xa3\xe1\x21\x88\x84\xed\xd1\xdd\xb4\xb2\x32\x42\xed\xcd\xda\xf6\x5b\x0f\x1d\x21\x4f\x82\xb2\x3c\xd6\x40\xed\x92\x4f\x39\x5d\xbc\x48\x41\x7c\x11\x3f\xc8\x0b\x6c\x21\x7f\xe2\x4e\x3a\x67\xec\x56\xfe\x6b\x7e\xbf\xe6\x1e\x59\x31\x13\xe6\xf8\x59\x92\x8a\x38\xbf\x94\x94\xbb\x28\xf3\xbd\x07\xc1\x66\x7f\xe3\x6b\x91\x44\xdc\x11\x33\x29\x7b\x1a\x79\x69\xce\xee\x7c\x1e\x04\xda\x8b\x83\x24\x1a\xee\x2b\x21\xea\xfa\xe7\x26\xa7\x3c\xb5\xb1\x27\x59\xc3\x0e\x9a\x15\xd5\x17\x66\xf8\x64\x4f\xd9\xad\x1a\x31\x79\xbf\x44\x89\x19\x1d\xed\x28\x95\x25\x22\x26\x0f\xa7\x5c\xea\x7e\xee\x78\xa0\x64\x63\xa6\x8b\xe7\x87\x7d\x09\xc2\x4e\xc8\x5e\x7c\xd7\xc8\x83\x7a\xcc\x17\x4d\x03\x60\x5e\xac\xe2\x53\xaf\x35\xa8\xdf\x73\x0a\x77\x00\xf2\xd3\x69\x94\xac\xff\x92\xbe\xfb\x87\xfd\x27\xe0\x5a\xc4\x2b\x51\xeb\x93\x54\x84\x5a\xac\x3c\xe7\xb2\xfe\x77\xe4\xcf\xcf\xfa\x93\x74\xd6\xd6\x11\x6a\xc8\xb1\x93\xe2\xc6\x94\x4f\xd9\xcb\x05\x1c\x6a\xc0\xe0\xcc\xca\x5d\x39\x31\xec\x51\x23\xee\xca\x5e\x5f\x0c\xc6\xe6\x89\x1b\x9b\xcf\xc7\x3b\x61\x23\x38\xc3\x6c\x2e\x15\x40\x14\x29\x7f\x6a\x1d\x94\xfe\x7a\xc7\x11\xf5\x86\x4c\x6d\x2a\x6a\x98\xfb\xf4\xcd\x20\x0c\x2e\xd5\xb7\xe9\x13\x64\xed\x4e\xd8\xeb\xbf\x26\x61\x70\xa7\x62\xb3\x7f\x93\x87\xa1\xfe\xf9\xab\x39\x22\xf3\x5f\xbe\x19\x92\xdb\x44\xfd\x75\xf3\x4b\x18\x3b\x84\x03\x56\x21\x4d\x7e\xc8\xbe\x5f\x2c\xe5\xef\xbe\x5f\xb0\x9b\xd2\x68\xce\xd9\xa7\x54\xdb\xee\x49\xd1\xd0\x1b\xf5\x92\x3b\x34\x01\x14\xdd\xeb\x7b\x8e\xb6\x46\x92\x5e\x12\x3e\xe9\xb9\x55\xd1\xaf\x91\x08\x23\x5f\xcc\x99\x7a\x27\x05\xf5\x9b\x35\x45\x0e\xf7\x95\x13\x61\x5f\xdf\x64\x78\xe5\x8b\xa0\x9e\xa8\x3f\x40\x3d\x19\x9f\x7a\x12\x6d\xb8\x7e\x8f\x50\x41\xc9\x5a\xb7\x84\x45\x3e\x77\x5a\x90\x15\xf5\x83\xce\x46\x5a\x84\xcb\x2b\x84\xca\x23\xa7\xe9\x7c\x84\xca\x01\xc9\x6e\x10\x31\xec\x5f\x86\x75\xa4\x9d\x85\xcb\xeb\x34\xc5\xa8\x6c\x94\x56\xde\x57\xac\x35\x67\xd0\xab\x44\x71\xe5\x26\xb5\x41\x8f\x62\x94\xea\x3d\xe6\xd6\x3c\x15\xad\xd4\xd4\x1c\x07\x26\x0e\x93\xcd\xb1\x07\x32\x2a\x0f\x22\x90\x11\x90\xd1\x84\x90\x51\x8b\xf7\xcd\x31\xf0\xa8\xe2\xc2\x19\xa5\x51\x00\x08\x09\xda\xfe\xf9\x69\xfb\x40\x48\x6d\xae\x1b\x20\x24\xd8\x77\xa0\xae\x0c\x55\x5d\x01\x42\xda\x89\x90\x5a\xb5\x55\x1c\x03\x93\xa6\x22\x3d\x02\x29\x41\xc8\x3c\x72\x9a\xce\x47\xc8\x1c\x90\x2c\x07\x91\xc3\xfe\x65\x58\x47\x1a\x90\xd2\x68\xc5\xaa\xc9\x23\x25\x4a\x1c\xb9\x1b\x2c\x75\x8a\x92\x74\x82\xed\xc0\xf5\x1e\x3d\x37\xe3\x7e\x31\x77\x29\xb7\x29\xf5\x77\x0d\xc9\xbc\x10\x4c\xff\xce\x86\xe1\xcf\xe8\xa1\xb3\xbc\xd6\x4a\xa9\x78\x86\x95\xe7\x98\x17\x24\xa9\xe0\x25\x4b\xef\xa6\xb4\xf7\x74\x84\xa5\xf0\xd7\x8d\x9c\x8c\x48\x35\x3a\xd4\xc8\x61\xca\x94\x7b\xfb\x28\x82\xf3\x4e\x22\x4a\xb3\x78\x8e\x99\x44\x51\xdf\x6c\xc2\xf5\xcd\x0e\xa3\xba\x43\xb5\xcd\xf6\x5a\xfd\x5a\xc0\x90\xa8\x68\x86\x8a\x66\xa8\x68\x86\x8a\x66\x53\xab\x68\x76\xf8\xe4\xad\xac\x66\xd6\xb1\xd3\xc7\xc9\x6a\x98\x1d\xee\xfe\xee\xfa\x65\x43\x1e\x83\x63\xaa\x96\x1d\x1e\x83\xdd\x15\xcb\x3a\x1e\x03\xd4\x29\x43\x9d\x32\xd4\x29\x43\x9d\x32\xd4\x29\xeb\xac\x4e\x59\x8d\xd3\x7f\xab\x46\xd9\xde\xb4\x9d\x67\xe4\xf3\x59\xaf\x37\xa8\xb3\x36\xb2\x3a\x6b\x87\x17\xd1\xbe\x1a\x6b\x1d\xaf\xa6\x5e\x2b\xab\x1d\x1e\x99\x3d\x55\xd5\xba\x3e\x35\x86\x5a\x4b\xed\xf0\xa0\x55\x18\xf6\x1b\x9b\xb3\xf4\x4f\xff\x68\x8f\x25\x55\x64\xac\xef\x08\x29\x15\x39\x52\x60\xee\xbe\x70\xc9\x1e\xbc\x60\xb7\xdf\x4f\x2b\x3c\xe9\x6d\x2e\xfa\x92\x78\xaf\xc5\x24\x29\x3d\xe7\x32\xfd\xac\xa4\x0b\x16\x9e\xdd\x16\x8d\x02\x89\x02\x89\x1a\x17\x89\x02\x85\x02\x85\x02\x85\xca\x3f\x08\x0a\x05\x0a\x05\x0a\x05\x0a\x05\x0a\x05\x0a\x05\x0a\x05\x0a\x05\x0a\x05\x0a\x05\x0a\x05\x0a\x05\x0a\x35\x3e\x0a\x85\xbc\x2a\x60\x6c\x60\x6c\x60\x6c\x60\x6c\x60\x6c\x2f\x65\x6c\x0b\x91\xf2\xeb\xab\x46\x08\xad\x97\x88\xcf\x8d\x69\x5f\x89\xb4\x2c\xc8\xaa\x19\xde\x83\xbd\x56\x22\xdd\x80\x5e\x34\x04\x37\x77\x9f\xbe\x54\x7d\x1b\xe1\xae\x47\x42\xa8\xc2\x40\x52\x0c\xdb\xc4\x48\x14\x2d\x96\xc2\xd7\x5f\x15\x9b\x70\xc4\x8e\xab\x15\x20\xd9\x61\xfd\xf5\x42\x11\xda\x3d\x21\x91\x7b\xf6\x51\x65\x2d\x76\xea\xdb\x07\xfb\xe8\x0e\xab\x04\x82\x77\x4d\x98\x77\xd5\x4b\x7b\x70\x88\x79\x75\x58\x7d\xb1\x59\x3e\x95\x4e\xce\xdb\x8f\xb4\x0f\x3f\x47\xea\xf0\xa8\x77\xda\x1e\x2e\x40\x0f\x96\x07\x96\x07\x96\x07\x96\x37\x25\x96\x57\xef\x56\xa9\xe4\x79\x27\xcb\x73\x84\x74\x54\xb5\x27\xaa\xcf\x74\x54\x27\x03\xb0\x47\x24\x80\xaa\x04\x90\x27\x1b\x91\x6f\x45\x63\x93\x17\xb0\x44\xd9\x80\xd8\x42\x2c\x95\xe4\x6c\x8d\xf5\xb9\x28\xa1\x4f\x2f\x5a\x3a\x85\x04\x5c\x41\x18\x5c\x06\x62\xc5\x69\x81\x6a\x73\x51\x31\x51\x97\x02\x77\x76\x6b\x68\x85\xc6\x5b\xaf\x85\xeb\xf1\x54\xf8\xcf\xb9\x48\x9b\x5f\xb9\x9e\xff\x56\x9b\x83\x68\xd0\xd9\x2a\xe6\x0e\xed\x1a\x2f\x74\xad\x40\x90\x5f\xda\xa4\x2f\x98\x55\x9a\x25\xb2\x91\xc5\xe9\xe2\xf2\x9b\xa6\x43\xfa\x25\xcb\x42\xfd\x6c\x4f\x7e\x81\xda\xa9\xd2\x96\x56\xb4\xb1\xc1\x34\x53\x9b\xef\xa8\xc9\x55\x26\xb6\x03\x46\xb6\xa1\x2c\xff\x63\xd8\x7b\xbd\x71\xd9\xcd\xdf\x4f\xb6\xfc\x41\xe2\x41\xe2\x41\xe2\x41\xe2\x41\xe2\x3b\x23\xf1\x35\xef\x82\x2d\x1a\x7f\xba\x6b\xf1\x63\x21\xdc\x27\xf2\x05\x4f\x84\x3d\x82\xee\xe2\x30\xe2\x2b\x92\x8e\xee\x42\xdf\x73\x9e\x4b\x76\x30\xb3\xe8\xf2\x78\x21\xb9\xec\xae\xe7\x7f\x9a\xb3\xaf\xea\x3c\x53\xa2\x4b\x24\x02\xb9\x59\xf2\x3b\x55\xb0\x30\x8e\xee\x79\x60\xec\x72\x71\x26\xae\x96\xdc\x37\xba\xf2\xf7\x0b\xf5\xe7\xef\x17\x6c\xe9\x05\xdc\xf7\xfe\x6d\x2e\x92\x85\x60\xdc\x75\x69\x75\x5e\x29\xba\xe5\xe6\x6a\x98\x7a\xfc\x2c\xc9\xbf\xa4\xf4\xd3\x39\xbb\xf5\xe8\x70\x2c\x34\x3d\x8c\xb7\xfb\x46\xc7\x8f\x32\x15\x29\xf5\x98\x74\x94\x30\xbd\x6f\x32\xa1\xaa\x07\x1f\x4d\xdf\x4f\x66\xe2\xdb\x56\xcc\xa8\xeb\x72\xc3\xde\x87\x4f\x6c\xc5\xe3\x05\x5f\x95\xec\xe8\x56\xa9\x11\xf1\x32\x8c\xd7\x72\x4e\x2a\xc7\xeb\xf3\x46\x8f\x76\x0f\x17\x09\xbd\x46\x62\x8d\xd4\xd8\x7a\x52\x9a\x74\x3c\x37\x57\x85\x49\x56\x50\xb9\xef\xcd\x1c\xcb\xcb\x5a\xdf\xa4\x46\x1a\x98\x17\x26\xd3\xdc\x23\x46\xd5\xbe\xb4\x36\xe6\xf2\xcb\xe6\xec\xc6\x71\x44\xa4\x52\xdb\x16\x35\xbb\x99\xea\xc3\x8c\x5d\xea\x05\x58\x5e\xa0\xc9\x7b\x36\xfb\x33\x77\x1e\x56\x71\x98\x05\xae\xfc\x14\xd9\x6a\xe9\x43\x1b\x03\xa7\x44\x48\x2d\x1f\x97\x1f\x62\x7a\xb0\xb0\x4f\x7a\xcf\x66\xbf\x84\xb1\x28\x3c\x96\x39\x3c\x71\xb8\x2b\x7b\xaf\xc7\x47\x99\xf3\xe9\x79\x89\x52\x3d\xb7\x1e\xb8\xb4\xcf\x68\xb2\x20\xa3\xcd\xe5\xde\xa3\xa5\x00\x8e\x25\xe3\x71\x2c\xa9\xb7\xba\xf6\x39\x97\x9c\x4e\x99\xef\xd3\xcd\xa4\xde\x38\xed\x71\x35\x39\xdd\x85\x3f\x54\xa7\x93\x7a\x43\xb8\xed\x78\x82\x1a\x25\x43\xf0\xa0\xd0\x65\x1e\x26\xee\x38\x51\xf8\xfa\x8e\x38\x5e\x75\x89\xe7\x02\xd6\xe0\x43\x7a\x37\xba\xb8\x1d\xd7\xdb\x7a\x76\x02\x65\x6d\x8b\xf5\xb5\x6f\xd4\x82\x43\x89\x09\xf6\x78\x75\xc8\x07\x56\xfa\x74\xc0\x93\x03\x9e\x1c\x53\xf4\xe4\x80\xef\x03\x7c\x1f\xe0\xfb\x00\xdf\x07\xf8\x3e\xf4\xee\xfb\x00\xa8\x0e\xce\x0a\xce\x0a\xce\x0a\xce\x0a\xce\x0a\xce\x0a\xce\xba\xf3\x12\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x40\xaa\xd4\x7d\x8c\xe5\xb8\x82\xa5\x64\xe7\xde\x59\xb5\xf4\x1c\x62\x59\x0f\x23\x99\x51\xd4\xf7\x3b\x88\x61\x1a\xa4\x57\x1d\x4b\x52\x92\x57\x1b\x53\x79\x11\x85\x49\xcb\xcc\x49\x49\xfe\x8c\x37\xc1\x4b\xea\xbb\x5d\x03\xa6\x31\x57\xbb\xdf\x7f\x0a\xa1\xe4\xfd\xf9\xc4\x18\xa1\xe4\x3d\x4a\xde\x57\x34\x66\x92\xd2\xd5\x84\xea\xde\xb7\xd5\xd1\x9f\x0e\x76\x54\xf9\xe6\x8e\xbd\xa7\xd3\x15\x96\x49\xf4\x1a\xab\xb0\xfc\x8a\xb5\x94\xcf\xa6\xa2\x48\x4b\x87\x69\x6d\x1a\x49\xa5\x7b\x52\xd9\xf4\x2e\x95\x8e\x24\x67\x08\x64\xca\xe2\x24\x0f\x56\xa6\x44\x94\xf6\x19\x45\x69\x23\x1c\x0d\xe1\x68\x08\x47\x43\x38\x1a\xd4\xe1\x5d\xbb\x68\x90\x01\x1d\xfd\xa8\x7e\x88\x47\x39\xa8\xcf\x69\xb5\x65\xac\x1a\x9d\x45\x02\xad\x47\xa1\x90\x3f\x42\x59\x32\x6b\xa0\x85\xc9\xa7\x9c\x38\xf4\xa4\x20\xcd\x88\x1f\xe4\x50\xb6\x90\x3f\x71\x27\x9d\x33\x76\x2b\xff\x35\xbf\x5f\x73\x8f\xec\x9e\x09\x73\xfc\x2c\x49\x45\x9c\xdf\x51\xca\xf3\x94\xf9\xde\x83\x60\xb3\xbf\xf1\xb5\x48\x22\xee\x88\x99\x14\x45\x8d\xf8\x34\x67\x77\x3e\x0f\x02\xed\x10\x42\x02\x0e\xf7\x95\x4c\x75\xfd\x73\x93\x43\x9f\xda\xd8\x93\xe8\x61\x07\xcd\x4a\xee\x0b\x33\x7c\xb2\xa7\xec\x56\x8d\x98\xbc\x6e\xa2\xc4\x8c\x8e\xf6\xb9\xca\x12\x11\x93\xb3\x54\x2e\x84\x3f\x77\x3c\x50\xb2\x31\xd3\x25\xfd\xc3\xbe\x13\x61\x4f\x2c\xce\xe6\x4b\xef\x1f\x79\x6e\x8f\xfe\xf2\x69\xc0\xde\x51\xee\x64\x98\x9e\x05\xe4\x01\xd4\xa8\x52\xc0\x25\x7d\xf7\x0f\xfb\x0f\xc4\xb5\x88\x57\xa2\xd6\x27\x93\x34\xe6\xa9\x58\x79\xce\x65\xfd\xef\xc8\x9f\x9f\xf5\x27\xe9\xe8\xad\x23\xe8\x90\xcb\x28\x45\xa4\x29\x6f\xb5\x97\x0b\x3d\x51\x45\x11\xee\x81\x58\x9e\xbb\xf2\x87\xd8\xa3\x69\xdc\x95\x9d\xca\x18\xec\xd1\x13\xb7\x47\x9f\x8f\x8f\xc3\x46\xec\x87\xd9\x5c\x2a\x3e\x29\x52\xee\xda\x3a\xe6\xfd\xf5\x8e\x73\xea\x0d\x59\xe3\x54\x50\x32\xf7\xe9\x9b\x41\x18\x5c\xaa\x6f\xd3\x27\xc8\x20\x9e\xb0\xd7\x7f\x4d\xc2\xe0\x4e\x85\x7e\xff\x26\x4f\x44\xfd\xf3\x57\x73\x4e\xe6\xbf\x7c\x33\x24\xe7\x8b\xfa\xeb\xe6\x97\x30\x76\x88\x18\xac\x42\x9a\xfc\x90\x7d\xbf\x58\xca\xdf\x7d\xbf\x60\x37\xa5\xd1\x9c\xb3\x4f\xa9\x36\xef\x93\xf2\xa1\x37\xea\x25\x77\x68\x02\x28\x78\xd8\xf7\x1c\x6d\xb0\x24\x5d\x25\x7c\xd2\x73\xab\x82\x6b\x23\x11\x46\xbe\x98\x33\xf5\x4e\xca\x19\x60\xd6\x14\xf9\xf3\x57\x4e\x84\x7d\x7d\x93\xe1\x95\x2f\x82\xca\xa2\xfe\x00\x95\x65\xcc\x2a\x4b\xb4\xe1\x63\x3e\x56\xa5\x25\x6b\xdd\x62\x16\xf9\xdc\x69\x41\x7e\xd4\x0f\x3a\x2f\x09\x12\x1e\xb5\x90\x36\x9b\x4c\xd3\xf9\x48\x9b\x03\x12\xea\x20\x7b\xd8\xbf\x0c\xf0\x5c\x3b\x1f\x8f\xda\x09\x0b\x59\xd9\x78\xed\xc2\xaf\x58\xbb\x6e\xa6\x57\x89\x82\xd5\x4d\xea\x99\x1e\x85\x3b\xd5\x7b\xcc\x75\x7a\x52\xf0\xa9\x79\x3c\x8e\x53\x9c\x32\x27\x3c\x65\x40\x9f\x40\x9f\x40\x9f\x2a\x3e\xd9\x1f\x7d\x6a\xf1\x0e\x3a\x9a\x43\x55\x5c\x42\xa3\xb4\x25\x80\x46\xc1\x3e\x70\x7e\xf6\x01\xd0\xa8\x36\xd7\x0d\x68\x14\x2c\x42\x50\x61\xd8\xe0\x55\x18\xd0\xa8\xea\xd9\x34\x34\xaa\x55\x9b\xc6\xd1\x5c\x6a\x2a\x12\x25\xe8\x14\xa4\xcf\x26\xd3\x74\x3e\xd2\xe7\x80\x84\x3c\xc8\x22\xf6\x2f\x03\x3c\xd7\x40\xa7\x26\x20\x74\x9d\x11\x9d\xa2\xa4\x98\xbb\x19\x55\xa7\x54\x4a\x27\x0f\x0f\x5c\xef\xd1\x73\x33\xee\x17\xf3\xb2\x72\x5b\x2e\x60\xd7\xe0\xcc\x0b\xc1\xfe\xef\x6c\x9a\x80\x19\x3d\x74\x96\xd7\x91\x29\x15\x06\xb1\x22\x1f\xf3\x82\x24\x15\xbc\x64\x20\xde\x14\x08\x9f\x8e\x35\x30\xfe\xba\x91\x6a\x12\xb9\x54\x87\x1a\xde\x4c\xa9\x80\x6f\x1f\x45\x80\x04\xa9\x6a\x99\x9f\x6d\x96\x54\x94\x72\x9b\x70\x29\xb7\xc3\xc0\xef\x50\x19\xb7\xbd\x66\xc3\x16\x60\x26\x8a\xb7\xa1\x78\x1b\x8a\xb7\xa1\x78\xdb\xd4\x8a\xb7\x1d\x3e\x79\x2b\x0b\xb7\x75\xec\x3a\x72\xb2\x72\x6d\x87\xbb\xbf\xbb\x54\xdb\x90\xc7\xe0\x98\x02\x6d\x87\xc7\x60\x77\x71\xb6\x8e\xc7\x00\x25\xd9\x50\x92\x0d\x25\xd9\x50\x92\x0d\x25\xd9\x3a\x2b\xc9\x56\xe3\xf4\xdf\x2a\xc7\xb6\x37\xcb\xe8\x19\x79\x8e\xd6\xeb\x0d\x4a\xca\x8d\xac\xa4\xdc\xe1\x45\xb4\xaf\x9c\x5c\xc7\xab\xa9\xd7\x22\x72\x87\x47\x66\x4f\x01\xb9\xae\x4f\x8d\xa1\x96\x8d\x3b\x3c\x68\x15\x26\xfe\xc6\xe6\x2c\xfd\xd3\x3f\x5a\xe6\x4b\x15\xa9\xf6\x3b\xc2\x4c\x45\xb6\x14\x98\x0b\x30\x5c\xb2\x07\x2f\xd8\xed\x2e\xd4\x0a\x63\x7a\x9b\xcb\xbf\x24\xe3\x6b\x59\x49\x8a\xd0\xb9\x60\x3f\x2b\x29\x84\x85\x67\xb7\x4a\xa8\x40\xa7\x40\xa7\x46\x48\xa7\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x46\x4f\xa6\x90\xb1\x05\xdc\x0d\xdc\x0d\xdc\x0d\xdc\x0d\xdc\xed\x18\xee\x16\x8b\x95\x47\xc9\x9c\x64\x2b\x35\x79\x6b\xc4\xd2\x7a\x89\x13\xdd\x98\xf0\x15\x95\xdc\x5c\x86\xf1\xda\x2e\x70\xce\x94\xfd\x7e\x37\x02\x5b\x89\xf4\xa6\x3c\x0e\x37\x77\x9f\xfe\xb2\xf9\x25\x84\xc7\x1e\x89\xa0\xec\x20\x8e\x1f\x40\x15\xd7\x46\xe1\x8b\xaf\x8a\x2f\xaf\xb5\xb1\x1e\xaf\xc7\xbd\xb7\x4a\xea\xa1\x3a\x37\x8f\xda\x58\xbf\x5f\xdf\xdc\x7d\xfa\x52\xf5\x55\x6c\xaf\xe3\xb7\x97\x19\x48\x0a\x1a\x9d\xd6\x2e\xfb\xef\xc7\xeb\x97\x6e\x34\x4d\xd3\x3c\xa7\x34\x8d\xa6\x9e\x69\xab\xee\x21\xba\x72\x72\xa1\x0c\x75\xb8\x64\x37\x77\x9f\xbe\xaa\xf7\xef\xd9\x22\xea\x9b\x5b\xbb\xe4\x83\x7d\x52\xf5\x53\x1a\x56\xfe\x04\x0f\x9e\x30\x0f\xae\x97\x52\xe4\x10\x13\xee\xb0\xa2\x6a\xb3\x84\x45\x9d\x1c\x9e\x1f\x69\xdb\x7d\x8e\x54\x82\x82\x7a\x47\xe7\xfe\xad\x05\xd6\x0d\xd6\x0d\xd6\x0d\xd6\x3d\x35\xd6\x5d\xef\x56\xa9\xe4\xdd\x27\xcb\x21\x86\x54\x6f\xb5\x27\xaa\xcf\x54\x6f\x27\x73\x50\x38\x22\xb9\x5a\x25\xa0\x3f\xd9\x88\x7c\x2b\x1a\x63\xbd\x80\x25\xca\x46\xca\x16\x62\xa9\x24\x67\x0b\xb3\x72\x51\x42\x9f\x5e\xb4\x74\x0a\xc9\xed\x82\x30\xb8\x0c\xc4\x8a\xd3\x02\xd5\xe6\xd4\x62\x12\x3c\x05\xb6\xed\xd6\xd0\x1a\x8b\xb7\x5e\x0b\xd7\xe3\xa9\xf0\x9f\x73\x91\x36\xbf\x72\x3d\xff\xad\x36\x97\xd2\xa0\xb3\x55\xcc\x1d\xda\x35\x5e\xe8\x5a\x81\x20\xbf\xb4\x49\x5f\x30\xab\x34\x4b\x64\x23\x8b\xd3\xc5\xe5\x37\x4d\x87\xf4\x4b\x96\x85\x9a\xf8\x9e\xfc\x02\xb5\x53\xe5\x0a\xae\x68\x63\x83\x69\xa6\x36\xdf\x51\x93\xab\x4c\xd0\x07\x8c\xd0\x43\x59\xfe\xc7\xf8\xa6\xd4\x1b\x97\xdd\xfe\x29\x27\x5b\xfe\xf0\x54\x81\xa7\x0a\x3c\x55\xe0\xa9\x02\x4f\x95\xce\x3c\x55\x6a\xde\x05\x5b\xde\x2a\xa7\xbb\x16\x3f\x16\xa2\xe3\x22\x5f\xf0\x44\xd8\x23\xe8\x2e\x0e\x23\xbe\x22\xe9\xe8\x2e\xf4\x3d\xe7\xb9\x64\x07\x33\x8b\x2e\x0f\xaf\x93\xcb\xee\x7a\xfe\xa7\x39\xfb\xaa\xce\x33\x25\xba\x44\x22\x90\x9b\x25\xbf\x53\x05\x0b\xe3\xe8\x9e\x07\xc6\x2e\x17\x67\xe2\x6a\xc9\x7d\xa3\x2b\x7f\xbf\x50\x7f\xfe\x7e\xc1\x96\x5e\xc0\x7d\xef\xdf\xe6\x22\x59\x08\xc6\x5d\x97\x56\xe7\x95\xa2\xbf\x6e\xae\x86\xa9\xc7\xcf\x92\xfc\x4b\x4a\x3f\x9d\xb3\x5b\x8f\x0e\xc7\x42\xd3\xc3\x78\xbb\x6f\x74\xfc\x28\x53\x91\x52\x8f\x49\x47\x09\xd3\xfb\x26\x13\xaa\x7a\xf0\xd1\xf4\xfd\x64\x26\xbe\x6d\xc5\x8c\xba\x2e\x37\xec\x7d\xf8\xc4\x56\x3c\x5e\xf0\x55\xc9\x50\x6e\x95\x1a\x11\x2f\xc3\x78\x2d\xe7\xa4\x72\xbc\x3e\x6f\xf4\x68\xf7\x70\x91\xd0\x6b\x24\xd6\x48\x8d\xad\x27\xa5\x49\xc7\x73\x73\x55\x98\x64\x05\x55\x70\xc2\xcc\x71\x42\xf0\x98\xfe\x6a\xa4\x81\x79\x61\x32\xcd\x3d\x62\x54\xed\x4b\x6b\x63\x2e\xbf\x6c\xce\x6e\x1c\x47\x44\x2a\x6d\x74\x51\xb3\x9b\xa9\x3e\xcc\xd8\xa5\x5e\x80\xe5\x05\x9a\xbc\x67\xb3\x3f\x73\xe7\x61\x15\x87\x59\xe0\xca\x4f\x91\xad\x96\x3e\xb4\x31\x70\x4a\x84\xd4\xf2\x71\xf9\x21\xa6\x07\x0b\xfb\xa4\xf7\x6c\xf6\x4b\x18\x8b\xc2\x63\x99\xc3\x13\x87\xbb\xb2\xf7\x7a\x7c\x94\x39\x9f\x9e\x97\x28\xd5\x73\xeb\x81\x4b\xfb\x8c\x26\x0b\x32\xda\x5c\xee\x3d\x5a\x0a\xe0\x78\x35\x1e\xc7\xab\x7a\xab\x6b\x9f\xf3\xd5\xe9\x94\xf9\x3e\xdd\xb0\xea\x8d\xd3\x1e\x57\xac\xd3\x5d\xf8\x43\x75\xca\xaa\x37\x84\xdb\x8e\x59\x28\x0c\x34\x04\x77\x08\x5d\x47\x65\xca\x5e\x10\x85\xef\xee\x88\x74\x57\x37\x78\x2e\x5d\xb5\x14\xf4\x5e\xe1\x60\x51\x1d\xf6\x5e\xe9\xac\xb0\x19\xe8\xbe\x2f\xc6\xbd\xf5\xc4\x1d\xca\xb2\x16\xeb\x2b\xde\xa8\x00\x26\x67\x47\x2d\x17\x0d\xf9\x88\x2a\x37\x26\xb8\x65\xc0\x2d\x63\x0a\x6e\x19\x70\x64\x80\x23\x03\x1c\x19\xe0\xc8\x00\x47\x86\xde\x1d\x19\x40\xc8\x01\x4d\x01\x4d\x01\x4d\x01\x4d\x01\x4d\x01\x4d\x01\x4d\x77\x5e\x02\xe0\x18\xe0\x18\xe0\x18\xe0\x18\xe0\x18\xc8\x10\xbc\x13\x98\xc8\xb6\x5f\xf2\xd5\x4a\xee\xc4\x34\x2c\x17\xf3\x2d\x99\xf4\x55\x34\xa9\xb6\x67\x4f\x3e\x98\xf4\x30\x46\x69\xb1\x92\xe5\xe9\xd0\x49\x83\xf4\xc0\x63\x49\xaa\xf3\x6a\x63\xe6\x2e\xa2\x30\x69\x99\x13\x29\x61\x9e\xf1\xa0\x1e\x13\x52\x1f\x6f\x99\x0a\x35\x8b\x8f\xdc\x93\x93\xe9\xd4\x47\x47\x2b\x81\x94\x08\xe6\x29\xae\x86\xc1\x06\xf3\x90\x0e\xff\x1b\x0f\xf8\x4a\xc4\xca\x1a\x45\x09\xc8\x78\x92\x84\x8e\x47\xea\x95\xb5\xfb\x70\x32\xdf\x85\x31\x93\xda\x77\xfa\x6c\xf5\xcd\x35\x7f\x90\xa3\x98\xde\x8b\x44\x18\x19\xaa\x18\xb2\x62\x42\x5b\x48\x86\x24\x1b\x4f\x18\xb3\xeb\x9f\x7e\x96\x9f\x8d\xb9\x43\x50\xc7\x0f\x83\x95\x92\x98\xc8\x0e\x23\x15\x66\xee\x05\xea\xd0\x22\x3b\x47\xfe\x59\x32\x74\x6b\xe4\xc4\x16\xcf\x8c\xee\x94\x77\x57\x57\xab\xd0\xe7\xc1\x6a\x1e\xc6\xab\xab\xe8\x61\x75\x95\x05\x9e\x13\xba\xe2\xea\x3f\x3e\x25\x77\xf2\x29\x8d\x0d\xa7\x7a\x70\xda\x9c\x9e\x41\x89\x58\x93\x93\x7c\xea\x4a\x3d\x3f\xd5\x90\x7a\x3e\x28\xe3\xd0\x48\xfa\xf3\xd3\xc1\xfe\x28\x97\xd6\x91\x74\x68\xa2\x62\x29\x49\x3d\x23\x11\x4b\x5f\xb1\x66\x99\x5a\x2a\x8a\xf9\x74\x98\xb0\xa5\xae\xb8\xb7\x23\x4b\x4b\x1f\xe2\xde\x48\xd2\x61\x40\x8a\x2b\x4e\xf2\x60\xa5\x38\x04\x20\x9f\x51\x00\x32\x22\xad\x10\x69\x85\x48\x2b\x44\x5a\x41\x01\xdd\xb5\x8b\x06\x19\xab\xd0\x83\x7a\x86\x50\x8b\x83\xca\x98\xd6\x4a\x46\xa2\x8e\x59\xcb\x79\xeb\x01\x16\x44\xe2\xcb\x52\x58\x2d\x95\x4a\x7e\xaf\xdb\xa8\x8a\x82\x68\x22\x7e\x90\xaf\xd4\x42\xfe\xc4\x9d\x74\xce\xd8\xad\xfc\xd7\xfc\x7e\xcd\x3d\x32\x1b\x26\xcc\xf1\xb3\x24\x15\x71\x7e\xe1\x28\xa7\x4a\xe6\x7b\x0f\x82\xcd\xfe\xc6\xd7\x22\x89\xb8\x23\x66\x52\xae\x34\xb2\xd0\x9c\xdd\xf9\x3c\x08\xb4\xaf\x03\x49\x2b\xdc\x57\x02\xd2\xf5\xcf\x4d\x4e\x70\x6a\x63\x4f\x72\x84\x1d\x34\x2b\x86\x2f\xcc\xf0\xc9\x9e\xb2\x5b\x35\x62\xf2\xee\x88\x12\x33\x3a\xda\x9d\x28\x4b\x44\x4c\x7e\x40\xb9\x44\xfd\xdc\xf1\x40\xc9\xc6\x4c\x17\x62\x0f\xf8\x82\x83\x01\xaf\xc1\x9d\x21\x0f\xdf\xb1\x5d\x18\x0d\xb0\x72\xb1\x12\xcd\xae\xf7\xa3\xf6\xcc\x29\x30\x39\x79\xa8\x34\x4a\x30\x7f\x49\xdf\xfd\xc3\xfe\x53\x6d\x2d\xe2\x95\xa8\xf5\x49\x5a\xab\x62\xe5\x39\x97\xf5\xbf\x23\x7f\x7e\xd6\x9f\xa4\xf3\xb3\x8e\x38\x42\x2e\x8d\x14\x31\xa5\xbc\xa9\x9a\x88\x26\x91\x2e\x89\xde\xbf\xb1\xb7\x13\xb6\xbf\x5f\xb8\xbf\x2b\x7b\x35\x31\x98\x80\x27\x6e\x02\x3e\x1f\x90\xbf\x11\x7c\x60\x36\x97\x0a\x90\x89\x94\xbf\xb0\x0e\xba\x7e\xbd\xe3\x20\x7a\x43\x06\x30\x15\x15\xcb\x7d\xfa\x66\x10\x06\x97\xea\xdb\xf4\x09\xb2\x41\x27\xec\xf5\x5f\x93\x30\xb8\x53\xb1\xc7\xbf\xc9\x23\x4f\xff\xfc\xd5\x1c\x84\xf9\x2f\xdf\x0c\xc9\xc3\xa0\xfe\xba\xf9\x25\x8c\x1d\x32\xd2\xaf\x42\x9a\xfc\x90\x7d\xbf\x58\xca\xdf\x7d\xbf\x60\x37\xa5\xd1\x9c\xb3\x4f\xa9\xb6\xa8\x93\x8a\xa0\x37\xea\x25\x77\x68\x02\x28\x7a\xd5\xf7\x1c\x6d\x23\x24\x8d\x22\x7c\xd2\x73\xab\xa2\x3b\x23\x11\x46\xbe\x98\x33\xf5\x4e\x0a\x5a\x37\x6b\x8a\x1c\xca\x2b\x27\xc2\xbe\xbe\xc9\xf0\xca\x17\x41\xb1\x50\x7f\x80\x62\xb1\xf1\xd4\xc1\x29\x16\xd1\x86\x23\xf3\x48\x54\x8b\xac\x75\x5b\x54\xe4\x73\xa7\x91\xcc\xa7\xbf\x3a\x5d\xa9\x0f\x1e\x9d\x10\x04\x21\x08\xc2\xa3\x13\x62\x81\xfa\x79\x03\xb1\x4d\xcb\xa3\x73\xaa\x62\x4e\x36\x1a\xfb\xe9\x2b\xf6\x22\xff\xc7\xab\x44\x31\xd6\x26\xb5\x22\x8f\x22\x77\xea\x3d\xe6\xde\x6b\x97\xe1\x69\x4e\x8c\x83\x0d\x07\x01\x40\x0a\x40\x0a\x40\xca\xa8\x41\xca\x8b\x6e\x8a\x43\x48\xa5\xe2\xaa\x18\x9f\x8a\x0d\xb0\x02\x7d\xfa\x2c\xf5\x69\x80\x95\x36\xd7\x0d\xc0\x0a\x2c\x28\x50\x34\x86\xa1\x68\x00\xac\x94\xc0\xca\x0b\xad\x05\x87\x10\xcb\x24\xa4\x40\x80\x16\x08\x86\x10\x0c\x01\x5a\x20\x26\xa8\x9f\x01\x5a\x46\x28\xf6\x4c\x14\xb4\x50\xca\xbe\x22\x6e\xe9\x14\xb0\xe8\x64\xc6\x81\xeb\x3d\x7a\x6e\xc6\xfd\x62\x9e\x48\x6e\xd3\x97\xe7\x1d\x9f\x17\x02\xac\xdf\xd9\xd0\xec\x19\x3d\x66\x96\x57\xb2\x28\x95\x26\xb0\x32\x16\xf3\x82\x24\x15\xbc\x64\x37\xdd\x94\xc0\x9e\x0e\x58\xe1\x7e\xdd\xc8\x7b\x87\xe4\x8d\x43\x8d\x20\xa5\xdc\xa3\xb7\x8f\x22\x38\xf7\x54\x8d\x34\x8f\xe7\x92\xaf\x11\x75\xa2\x26\x5c\x27\xea\x30\xe2\x3a\x54\x23\x6a\xaf\x1d\xad\x05\x7c\x87\xca\x50\xa8\x0c\x85\xca\x50\xa8\x0c\x35\xb5\xca\x50\x87\x4f\xde\xca\xaa\x50\x1d\x3b\x4b\x9c\xac\x16\xd4\xe1\xee\xef\xae\x03\x35\xe4\x31\x38\xa6\xfa\xd3\xe1\x31\xd8\x5d\xf9\xa9\xe3\x31\x40\xbd\x27\xd4\x7b\x42\xbd\x27\xd4\x7b\x42\xbd\xa7\xce\xea\x3d\xd5\x38\xfd\xb7\x6a\x3d\xed\x4d\xda\x78\x46\xbe\x92\xf5\x7a\x83\x7a\x55\x23\xab\x57\x75\x78\x11\xed\xab\x55\xd5\xf1\x6a\xea\xb5\x42\xd5\xe1\x91\xd9\x53\x9d\xaa\xeb\x53\x63\xa8\x35\xa9\x0e\x0f\x5a\x85\x39\xbf\xb1\x39\x4b\xff\xf4\x8f\x97\xb1\xa1\x8a\x54\xe4\x1d\x21\xa2\x22\x17\x0a\xcc\x7d\x17\x2e\xd9\x83\x17\xb8\x6d\xf3\xa1\xb7\xb9\x80\x4b\x42\xbc\x16\x86\xa4\x8c\x9c\x4b\xee\xb3\x92\xc6\x57\x78\xf6\x4b\xe8\x12\xc8\x12\xc8\xd2\xd8\xc8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\x12\xa8\xd2\xd8\xa8\x12\x32\x8a\xd4\x9f\x1d\x50\x32\x50\x32\x50\x32\x50\x32\x50\xb2\x9c\x92\x2d\x44\xca\xaf\xaf\x1a\x21\xb1\x5e\x62\x2a\x37\x26\x7e\x25\xd2\xb2\xf0\xaa\xe6\x78\x0f\xd4\x5a\x89\x74\x0b\x69\xd1\x20\xdc\xdc\x7d\xfa\x52\xf5\x7d\x84\x94\x1e\x09\x9c\x0a\x03\x49\xf1\x67\x93\xa3\x4e\xb4\x5c\x0a\x0f\x78\x55\x6c\xc4\x51\xfb\x6e\x47\xe0\x62\x87\x05\xb2\x0b\xe5\x43\x4b\xa1\x8a\x7b\x76\xcc\x8e\x5a\xd9\xd4\x83\x0f\xf6\x71\xad\x56\x7a\x03\xc1\x9a\x30\xc1\xaa\x97\x36\xe0\x10\xc5\xea\xb0\x82\xde\xa4\xeb\xb8\x83\xce\x81\xce\x81\xce\x81\xce\x4d\x8d\xce\xd5\xbb\x55\x2a\x09\xdd\xc9\xf2\x04\x21\x9d\x53\xed\x89\xea\x33\x9d\xd3\xc9\x90\xea\x11\x09\x94\x2a\x91\xe2\xc9\x46\xe4\x5b\xd1\x98\xe4\x05\x2c\x51\x36\x1e\xb6\x10\x4b\x25\x39\x5b\xf3\x7b\x2e\x4a\xe8\xd3\x8b\x96\x4e\x21\x81\x55\x10\x06\x97\x81\x58\x71\x5a\xa0\xda\x1c\x54\x4c\x74\xa5\x50\x9c\xdd\x1a\x5a\x6d\xf1\xd6\x6b\xe1\x7a\x3c\x15\xfe\x73\x2e\xd2\xe6\x57\xae\xe7\xbf\xd5\xe6\x1e\x1a\x74\xb6\x8a\xb9\x43\xbb\xc6\x0b\x5d\x2b\x10\xe4\x97\x36\xe9\x0b\x66\x95\x66\x89\x6c\x64\x71\xba\xb8\xfc\xa6\xe9\x90\x7e\xc9\xb2\x50\x03\xd9\x93\x5f\xa0\x76\xaa\x54\x9d\x15\x6d\x6c\x30\xcd\xd4\xe6\x3b\x6a\x72\x95\x09\xed\x80\x11\x6d\x28\xcb\xff\x18\x9a\x5e\x6f\x5c\x76\x13\xf5\x93\x2d\x7f\xb0\x75\xb0\x75\xb0\x75\xb0\x75\xb0\xf5\xce\xd8\x7a\xcd\xbb\x60\x8b\xaf\x9f\xee\x5a\xfc\x58\x08\xd5\x89\x7c\xc1\x13\x61\x8f\xa0\xbb\x38\x8c\xf8\x8a\xa4\xa3\xbb\xd0\xf7\x9c\xe7\x92\x1d\xcc\x2c\xba\x3c\xd6\x47\x2e\xbb\xeb\xf9\x9f\xe6\xec\xab\x3a\xcf\x94\xe8\x12\x89\x40\x6e\x96\xfc\x4e\x15\x2c\x8c\xa3\x7b\x1e\x18\xbb\x5c\x9c\x89\xab\x25\xf7\x8d\xae\xfc\xfd\x42\xfd\xf9\xfb\x05\x5b\x7a\x01\xf7\xbd\x7f\x9b\x8b\x64\x21\x18\x77\x5d\x5a\x9d\x57\x8a\x5e\xb9\xb9\x1a\xa6\x1e\x3f\x4b\xf2\x2f\x29\xfd\x74\xce\x6e\x3d\x3a\x1c\x0b\x4d\x0f\xe3\xed\xbe\xd1\xf1\xa3\x4c\x45\x4a\x3d\x26\x1d\x25\x4c\xef\x9b\x4c\xa8\xea\xc1\x47\xd3\xf7\x93\x99\xf8\xb6\x15\x33\xea\xba\xdc\xb0\xf7\xe1\x13\x5b\xf1\x78\xc1\x57\x25\x6b\xb9\x55\x6a\x44\xbc\x0c\xe3\xb5\x9c\x93\xca\xf1\xfa\xbc\xd1\xa3\xdd\xc3\x45\x42\xaf\x91\x58\x23\x35\xb6\x9e\x94\x26\x1d\xcf\xcd\x55\x61\x92\x15\x54\xbe\x77\x33\xc7\xf2\xb2\xd6\x37\xa9\x91\x06\xe6\x85\xc9\x34\xf7\x88\x51\xb5\x2f\xad\x8d\xb9\xfc\xb2\x39\xbb\x71\x1c\x11\xa9\xd4\xb0\x45\xcd\x6e\xa6\xfa\x30\x63\x97\x7a\x01\x96\x17\x68\xf2\x9e\xcd\xfe\xcc\x9d\x87\x55\x1c\x66\x81\x2b\x3f\x45\xb6\x5a\xfa\xd0\xc6\xc0\x29\x11\x52\xcb\xc7\xe5\x87\x98\x1e\x2c\xec\x93\xde\xb3\xd9\x2f\x61\x2c\x0a\x8f\x65\x0e\x4f\x1c\xee\xca\xde\xeb\xf1\x51\xe6\x7c\x7a\x5e\xa2\x54\xcf\xad\x07\x2e\xed\x33\x9a\x2c\xc8\x68\x73\xb9\xf7\x68\x29\x80\xe3\xc8\x78\x1c\x47\xea\xad\xae\x7d\xce\x23\xa7\x53\xe6\xfb\x74\x23\xa9\x37\x4e\x7b\x5c\x49\x4e\x77\xe1\x0f\xd5\xa9\xa4\xde\x10\x6e\x3b\x96\xa0\x2e\xc7\x10\xbc\x23\x74\x49\x84\xc9\x3b\x45\x14\x1e\xb0\x23\x1e\x57\x5d\xe3\xb9\x88\x35\xc8\xd0\xdc\x8d\x6e\x6d\xc7\xe7\xb6\x9e\x41\x40\xd9\xd8\x62\x7d\xd9\x1b\x65\x60\x3b\x79\xc0\x1e\x8f\x0d\xf9\x88\x9d\x4e\x4e\xf0\xd2\x80\x97\xc6\x14\xbc\x34\xe0\xd7\x00\xbf\x06\xf8\x35\xc0\xaf\x01\x7e\x0d\xbd\xfb\x35\x00\x98\x83\xa1\x82\xa1\x82\xa1\x82\xa1\x82\xa1\x82\xa1\x82\xa1\xee\xbc\x04\x80\x35\x80\x35\x80\x35\x80\x35\x80\x35\x90\xce\x74\x27\x3f\x39\xa2\xc0\x27\xd9\xb4\xe7\x1b\xf5\x0e\x81\x56\x2e\x06\x5b\x3f\xef\x20\x4e\x69\x90\xee\x74\x2c\x29\x43\x5e\x6d\x4c\xdf\x45\x14\x26\x2d\xb3\x23\x25\xdb\x33\x1e\xd4\xe3\x44\xea\xe3\x5d\x90\xa2\x71\x96\x6f\xdf\x3c\x4e\x50\xc3\xfd\x7c\x82\x7e\x50\xc3\x1d\x35\xdc\x2b\x1a\x33\x7a\x91\x68\x12\x85\xdc\x9b\x77\xea\xa7\x83\x9d\x52\x4e\xb0\x63\xea\xd5\x94\x25\x57\x92\x89\xc6\x24\xb9\xbe\x62\x2f\x48\xfa\x52\x51\x91\xa4\xc3\xdc\x2f\x75\xc5\xc2\x7d\x09\x5f\xfa\x10\x0b\x47\x92\x59\x03\x82\x5e\x71\x92\x07\x2b\xe8\x21\x96\xf9\x8c\x62\x99\x11\xb4\x85\xa0\x2d\x04\x6d\x21\x68\x0b\x3a\xea\xae\x5d\x34\xc8\xb0\x87\x1e\xf4\x36\x44\x6d\x1c\x13\xb5\x31\x2a\x15\xcd\x1a\xdc\x5b\x8f\xd5\x20\x9e\x5f\x96\xc7\x6a\x69\x58\xf2\x7b\x27\x08\xd0\x28\x48\x2a\xe2\x07\xb9\x5d\x2d\xe4\x4f\xdc\x49\xe7\x8c\xdd\xca\x7f\xcd\xef\xd7\xdc\x23\x43\x63\xc2\x1c\x3f\x4b\x52\x11\xe7\xf7\x8f\xf2\xcf\x64\xbe\xf7\x20\xd8\xec\x6f\x7c\x2d\x92\x88\x3b\x62\x26\xc5\x4c\x23\x1a\xcd\xd9\x9d\xcf\x83\x40\xbb\x4d\x90\xf0\xc2\x7d\x25\x2f\x5d\xff\xdc\xe4\x40\xa7\x36\xf6\x24\x56\xd8\x41\xb3\x52\xf9\xc2\x0c\x9f\xec\x29\xbb\x55\x23\x26\xaf\x92\x28\x31\xa3\xa3\x3d\x93\xb2\x44\xc4\xe4\x52\x94\x0b\xd8\xcf\x1d\x0f\x94\x6c\xcc\x74\x79\xf8\x80\xef\x3b\x18\xfa\x5e\x74\x8f\xc8\xb3\x78\x94\x97\x48\x03\x42\x8d\x22\x1d\x1b\xdd\xec\x8d\xb8\x93\xef\x4b\xa3\xec\xf6\x97\xf4\xdd\x3f\xec\x3f\xe4\xd6\x22\x5e\x89\x5a\x9f\xa4\x05\x2b\x56\x9e\x73\x59\xff\x3b\xf2\xe7\x67\xfd\x49\x3a\x4e\xeb\x88\x28\xe4\x2c\x49\xb1\x58\xca\x4f\xab\x89\xb8\x12\x55\x16\x82\x9e\x96\x9b\xc0\x7e\xf9\xff\xae\xec\x34\xc5\x60\x25\x9e\xb8\x95\xf8\x7c\xdc\x01\x36\x62\x1b\xcc\xe6\x52\xf1\x37\x91\x72\x47\xd6\x31\xdd\xaf\x77\x9c\x46\x6f\xc8\x46\xa6\x82\x6e\xb9\x4f\xdf\x0c\xc2\xe0\x52\x7d\x9b\x3e\x41\x66\xea\x84\xbd\xfe\x6b\x12\x06\x77\x2a\xb4\xf9\x37\x79\xee\xe9\x9f\xbf\x9a\xd3\x30\xff\xe5\x9b\x21\xf9\x29\xd4\x5f\x37\xbf\x84\xb1\x43\x76\xfc\x55\x48\x93\x1f\xb2\xef\x17\x4b\xf9\xbb\xef\x17\xec\xa6\x34\x9a\x73\xf6\x29\xd5\x46\x77\x52\x1b\xf4\x46\xbd\xe4\x0e\x4d\x00\x05\xc7\xfa\x9e\xa3\xcd\x88\xa4\x65\x84\x4f\x7a\x6e\x55\xf0\x68\x24\xc2\xc8\x17\x73\xa6\xde\x49\x31\xf1\x66\x4d\x91\xbf\x7a\xe5\x44\xd8\xd7\x37\x19\x5e\xf9\x22\x28\x1b\xea\x0f\x50\x36\xaa\x9e\x3a\x4c\x65\x23\x1a\x6c\xe9\xff\xc3\xea\x46\xd6\xba\xcd\x2a\xf2\xb9\xd3\x48\x0e\xd4\x5f\x9d\xb8\x24\x08\x87\x51\x48\x88\x35\xa6\xe9\x7c\x24\xc4\x01\x09\x62\x90\x17\xec\x5f\xfa\x96\x17\x26\xe9\x30\x3a\x69\x21\x28\x1b\x97\xc5\xf5\x15\x7b\xb9\x67\xe5\x55\xa2\xc0\x6d\x93\xfa\x96\x47\x41\x40\xf5\x1e\x73\x21\x76\x80\x03\x35\x81\xc6\xb1\x87\x13\x02\x4c\x66\x63\x10\xc1\x64\xc0\x64\x46\xcd\x64\x5e\x74\x7b\xd4\xa2\x33\x15\xd7\xc7\xf8\x34\x73\x30\x1a\x68\xe0\x67\xa9\x81\x83\xd1\xb4\xb9\x6e\xc0\x68\x60\x73\x81\xf2\x51\xe8\xeb\x20\x94\x0f\x30\x9a\x6d\x46\xf3\x42\xab\x42\x2d\x5a\x33\x09\xc9\x10\xcc\x06\x12\x63\x8d\x69\x3a\x1f\x89\x71\x40\x82\x19\xe4\x07\xfb\x97\xbe\xe5\x07\x30\x9b\xb1\x09\x45\x93\x67\x36\x94\x8e\xb0\x48\x6e\x3a\x65\x35\x3a\x51\x73\xe0\x7a\x8f\x9e\x9b\x71\xbf\x98\x03\x93\xdb\xd4\xec\xf9\x10\xcc\x0b\x01\xe0\xef\x6c\xe8\xf8\x8c\x1e\x33\xcb\xab\x74\x94\xca\x2e\x58\x31\x8c\x79\x41\x92\x0a\x5e\x32\xb7\x6e\x0a\x69\x4f\x75\x8c\x77\xbf\x6e\xa4\xf3\x43\x76\xca\xa1\x86\xb9\x52\x72\xd5\xdb\x47\x11\x20\x0d\xa5\x59\xdc\x67\x95\x8b\x12\x25\xb1\x26\x5c\x12\xeb\x30\x28\x3b\x54\x0e\x6b\xaf\x21\xae\x05\x08\x88\x22\x58\x28\x82\x85\x22\x58\x28\x82\x35\xb5\x22\x58\x87\x4f\xde\xca\x02\x58\x1d\xbb\x5c\x9c\xac\xec\xd5\xe1\xee\xef\x2e\x79\x35\xe4\x31\x38\xa6\xd0\xd5\xe1\x31\xd8\x5d\xe4\xaa\xe3\x31\x40\x69\x2b\x94\xb6\x42\x69\x2b\x94\xb6\x42\x69\xab\xce\x4a\x5b\xd5\x38\xfd\xb7\xca\x5a\xed\xcd\x31\x79\x46\x1e\x97\xf5\x7a\x83\xd2\x5c\x23\x2b\xcd\x75\x78\x11\xed\x2b\xcb\xd5\xf1\x6a\xea\xb5\x18\xd7\xe1\x91\xd9\x53\x88\xab\xeb\x53\x63\xa8\xe5\xb7\x0e\x0f\x5a\x85\x61\xbf\xb1\x39\x4b\xff\xf4\x8f\x16\x78\x51\x45\x0e\xf5\x8e\xb0\x51\x91\x15\x05\xe6\xd2\x0b\x97\xec\xc1\x0b\xdc\xb6\x99\xd1\xdb\x5c\xca\x25\x49\x5e\x4b\x44\x52\x50\xce\xc5\xf7\x59\x49\xed\x2b\x3c\xfb\xc5\xc4\x09\xb4\x09\xb4\x69\x94\xb4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x09\xa4\x69\x94\xa4\x09\xb9\x4a\xea\xcf\x0e\xc8\x19\xc8\x19\xc8\x19\xc8\xd9\x59\x92\xb3\x28\xb9\x6a\xc4\xc1\x7a\x89\xba\xdc\x98\xde\x15\x15\x48\x5c\x86\xf1\xda\x2e\x67\xce\x94\x4d\x7e\x37\xcc\x5a\x89\xf4\x26\x8a\x92\x9b\xbb\x4f\x7f\xd9\xfc\x24\x22\x4c\x8f\xa4\x49\x76\x10\x47\xcf\x92\x4a\x9f\x7e\x55\x7c\x63\xc5\x86\x79\xbc\x1e\xf7\x9e\x29\xa9\x75\xea\xf4\x3b\xbc\x61\x7e\xbf\xbe\xb9\xfb\xf4\xa5\xea\xf3\xd8\x36\xc7\x6f\x1b\x33\x90\x14\xa7\x39\x81\xdd\xf3\xdf\x8f\xd7\xc7\x6d\x20\xa9\xab\xc6\xa1\xd4\x14\x63\xf1\xe8\x25\x54\x52\xbd\x4b\x7f\x0c\x65\xf0\x8b\xb5\x90\x6d\x34\x4a\xe3\x8a\xf1\xc1\xb6\xe6\x8b\x6e\xcd\x9e\x0d\x21\x1f\xa5\x76\xc4\xf6\xd7\x7e\x09\xe3\x1b\xdf\xb7\x35\x0f\x07\xb1\x4f\xe0\x15\x41\x1b\x72\x2e\x97\x9e\xdc\x7e\xdb\xb3\x36\xcd\x5d\x78\xd8\xff\xa1\xbd\x40\xdb\x28\xa9\x76\x76\xd8\xbb\xb1\x36\x9d\x1e\xe0\xef\x00\x7f\x07\xf8\x3b\xc0\xdf\x01\xfe\x0e\xf0\x77\x80\xbf\x03\xfc\x1d\x8e\x39\x6d\xe1\xef\x00\x7f\x07\xf8\x3b\xc0\xdf\x01\xfe\x0e\xf0\x77\x80\xbf\xc3\xd9\xf9\x3b\xc0\x3f\x00\xfe\x01\xf0\x0f\xa8\x5e\x4d\xf0\x0f\xd8\xb9\xcf\xe0\x1f\x50\xc3\x3f\xe0\xf1\xfa\xca\xe5\x62\x2d\x05\xe7\xb4\x4f\x48\xf3\x91\x1a\xf1\xb5\x5c\x71\x6c\x27\x9b\xb1\x9f\x06\x92\xd9\x1c\xf5\xe1\x21\x19\x3b\x59\x20\x31\x15\x1f\x6b\x85\xc4\x54\xed\x1e\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x98\x23\x8e\x7d\x00\x18\x00\x18\x00\x98\xea\xd5\x04\x00\xb3\x73\x9f\x01\xc0\xd4\x04\x30\x22\xf2\xc3\x67\x29\x3e\xf5\x4a\x60\x6c\x2b\xea\x21\x18\xfb\x71\x30\x98\xcd\x71\x1f\x20\x83\xb1\xb3\x05\x08\x53\xf1\xb1\x76\x20\x4c\xd5\x06\x02\x85\x01\x85\x01\x85\x01\x85\x01\x85\x01\x85\x01\x85\x01\x85\x01\x85\x01\x85\x01\x85\x01\x85\x01\x85\x01\x85\x01\x85\x01\x85\x39\xe2\xd8\x07\x85\x01\x85\x01\x85\xa9\x5e\x4d\xa0\x30\x3b\xf7\x19\x28\x4c\x3d\x0a\x13\x58\x80\xa1\x4a\xc8\xd1\xcf\xff\x7b\x28\x97\x99\xba\xec\xdb\xe5\x34\xea\x99\xcc\x91\x6f\x75\xcc\x22\x3d\x2a\x8b\x99\x7a\x82\xc9\x63\x66\x1e\x63\x11\x8d\xbb\xff\x61\x3b\xec\xd0\xec\x00\x09\x80\x2d\x7a\xc2\xb6\xe8\x3d\x1b\xf6\x08\x7b\xf4\x81\x2d\xbc\x7f\x13\x6f\xd0\xa9\xff\xa9\x6a\xdd\x22\x74\x77\x36\xae\xea\x6f\x9d\xa4\x80\xfc\x48\xbb\xef\x33\x6d\x8c\xa4\x26\x6b\xdb\xbf\xb5\x60\x67\x87\x9d\x1d\x76\x76\xd8\xd9\xa7\x66\x67\xaf\x77\xab\x54\xda\xda\xf7\xab\x14\x2f\xb9\x49\xaa\x14\x55\x6d\x61\x78\xcb\xbc\xc0\x95\x5d\x31\x0a\x69\xa9\x6f\x45\x39\x62\x21\x58\x24\x47\x2b\x91\xca\x38\xbb\x09\x98\x17\xa8\x93\x25\x8c\x59\x16\xd8\xc3\xc9\x65\x6e\xfc\xfc\x25\x0b\x98\xeb\xc5\x52\x48\x7b\x14\x76\xc5\x93\x86\x16\x30\x1e\xe8\x2d\x6f\xd6\x86\x1e\x60\xb6\xcc\x62\xda\x65\x51\x1c\x3a\x52\x6e\x50\x4a\x6c\xc1\x06\x3a\x67\xbf\xd3\x1b\x69\xb6\x68\xed\x48\x0d\xf6\xc6\xf7\xdf\x91\x59\xc6\x95\xa7\x74\x16\xc8\x89\x97\x5a\x81\x59\x92\xfa\x71\xc2\x6d\x30\x51\xaa\x2f\xfd\x4c\xd3\xc9\xe0\x48\xbd\xa1\xd8\x0d\x48\x4e\x36\x22\xdf\x8a\x6a\xae\x17\xb0\x44\x69\x9f\x6c\x21\x96\x4a\x72\xb6\x86\xb4\x5c\x94\xd0\xa7\x17\x2d\x9d\x4c\xa8\xcb\x61\x21\x15\xbc\xe0\x32\x10\x2b\x4e\x0b\x54\x2b\xaa\x52\xa7\x36\x37\xa8\x32\xaa\xdb\xad\xa1\x15\x18\x6f\xbd\x16\xae\xc7\x53\xe1\x3f\xe7\x22\x6d\x7e\xe5\x7a\xfe\x5b\xad\x88\xd2\xa0\xb3\x55\xcc\x1d\xda\x35\x5e\xe8\x5a\x81\x20\xbf\xb4\x49\x5f\x30\xab\x34\x4b\x64\x23\x8b\xd3\xc5\xe5\x37\x4d\x87\xf4\x4b\x96\xea\x0c\x34\x8f\x98\xab\x76\xae\x05\x0f\x2a\xdb\xd8\x60\x9a\xa9\xcd\x77\xd4\xe4\x2a\xe5\xfe\x80\x7a\x3f\x94\xe5\x7f\x0c\x17\xab\x37\x2e\xbb\xd9\xd8\xc9\x96\x3f\x28\x19\x28\x19\x28\x19\x28\x19\x28\x59\x67\x94\xac\xe6\x5d\xb0\x45\xca\x4e\x77\x2d\x7e\x14\x51\x2c\xa4\x50\xe2\xbe\x63\x91\x2f\x78\x22\xec\x11\x74\x17\x87\x11\x5f\x91\x74\x74\x17\xfa\x9e\xf3\x5c\xb2\x83\x99\x45\xe7\xda\x07\xc8\x65\x77\x3d\xff\xd3\x9c\x7d\x55\xe7\x99\x12\x5d\x22\x11\xc8\xcd\x92\xdf\xa9\x82\x85\x71\x74\xcf\x03\x63\x97\x8b\x33\x71\xb5\xe4\xbe\xd1\x95\xbf\x5f\xa8\x3f\x7f\xbf\x60\x4b\x2f\xe0\xbe\xf7\x6f\x73\x91\x2c\x04\xe3\xae\x4b\xab\xf3\x4a\xd9\xd5\xdd\x5c\x0d\x53\x8f\x9f\x25\xf9\x97\x94\x7e\x3a\x67\xb7\x1e\x1d\x8e\x85\xa6\x87\xf1\x76\xdf\xe8\xf8\x51\xa6\x22\xa5\x1e\x93\x8e\x12\xa6\xf7\x4d\x26\x54\xf5\xe0\xa3\xe9\xfb\xc9\x4c\x7c\xdb\x8a\x19\x75\x5d\x6e\xd8\xfb\xf0\x89\xad\x78\xbc\xe0\xab\x92\xdd\xdc\x2a\x35\x22\x5e\x86\xf1\x5a\xce\x49\xe5\x78\x7d\xde\xe8\xd1\xee\xe1\x22\xa1\xd7\x48\xac\x91\x1a\x5b\x4f\x4a\x93\x8e\xe7\xe6\xaa\x30\xc9\x0a\x64\x9c\xb0\x73\x9c\x50\x3d\x2b\xfa\xab\x91\x06\xe6\x85\xc9\x34\xf7\x88\x51\xb5\x2f\xad\x8d\xb9\xfc\xb2\x39\xbb\x71\x1c\x11\xa5\x74\x37\x15\x35\xbb\x99\xea\xc3\x8c\x5d\xea\x05\x58\x5e\xa0\xc9\x7b\x36\xfb\x33\x77\x1e\x56\x71\x98\x05\xae\xfc\x14\xd9\x6a\xe9\x43\x1b\x03\xa7\x44\x48\x2d\x1f\x97\x1f\x62\x7a\xb0\xb0\x4f\x7a\xcf\x66\xbf\x84\xb1\x28\x3c\x96\x39\x3c\x71\xb8\x2b\x7b\xaf\xc7\x47\x99\xf3\xe9\x79\x89\x52\x3d\xb7\x1e\xb8\xb4\xcf\x68\xb2\x20\xa3\xcd\xe5\xde\xa3\xa5\x00\x48\x7b\x3c\x48\xbb\xde\xea\xda\x87\xb5\x4f\xa7\xcc\xf7\x09\xb8\xeb\x8d\xd3\x1e\xc8\x7d\xba\x0b\x7f\xa8\xb8\xbb\xde\x10\x6e\x23\xef\x97\x5e\xa7\x95\xbc\x19\x45\xdd\x8e\x24\x7a\x5f\x53\x9e\x66\x75\x51\xde\xa4\xc2\xe6\xd4\xb5\x9d\x8b\x54\xdd\x86\xd0\xb5\x56\x51\x6a\x1c\x25\xe6\xe0\x90\x01\x87\x8c\xc9\x3a\x64\xc0\x85\x01\x2e\x0c\x70\x61\x80\x0b\x03\x5c\x18\x7a\x77\x61\x00\x1b\x07\x2e\x05\x2e\x05\x2e\x05\x2e\x05\x2e\x05\x2e\x05\x2e\xdd\x79\x09\x80\x60\x80\x60\x80\x60\x80\x60\x80\x60\x20\xaf\xe0\x3e\x54\x62\xf3\x0a\x6e\xdb\xad\x91\x5f\xb0\xe2\x63\xc3\x82\x23\x0d\xf2\x0c\x6a\xe1\x48\xee\x72\x3a\x47\xe4\x9c\xb0\xc4\x09\x23\xf1\x96\x25\x99\x43\x37\x14\x1d\xec\x82\xaf\xd5\xa9\x14\xc5\x21\x09\x63\x55\x41\xbf\x11\x4f\xef\xab\x63\x7e\x6d\xe0\x6d\xf9\xcf\x52\x4c\xf5\x62\xe1\xea\xe3\xa1\xf4\xb7\x6e\x03\xcb\xc7\x92\x74\x41\xff\xf4\x8f\x7c\x92\xc3\xa4\x65\x04\xa6\x14\x13\xc6\x8f\xa3\x5d\xea\x5b\xdd\xf0\xae\x66\x31\x9f\x7b\x16\x53\x57\x87\x62\x2b\x41\xa0\x08\x44\x2a\xce\xfa\x60\x03\x91\xc8\x0a\xf1\x1b\x0f\xf8\x4a\xc4\xca\x9e\xa6\x4e\xcd\x24\x09\x1d\x8f\x14\x44\x6b\xb9\xe2\x64\x80\x0c\x63\x26\x82\x54\x0a\xb0\x46\x63\x5e\xf3\x07\x39\x8a\xe9\xbd\x48\x84\x91\x02\x8b\xe1\x36\x26\x2c\x87\xa4\x60\xb2\x52\x85\x31\xbb\xfe\xe9\x67\xf9\xd9\x98\x3b\x84\xa5\xfc\x30\x58\x29\x99\x8f\x2c\x49\x52\xe5\xe7\x5e\xa0\x8e\x2a\xb2\xd4\xe4\x9f\x25\x53\xbd\x86\x66\x6c\xf1\xcc\xe8\xb6\x7c\x77\x75\xb5\x0a\x7d\x1e\xac\xe6\x61\xbc\xba\x8a\x1e\x56\x57\x59\xe0\x39\xa1\x2b\xae\xfe\xe3\x53\x72\x27\x9f\xd2\xd8\xf4\xab\x07\xa7\xcd\xe9\x19\x94\x90\x38\x5a\xd9\xad\xae\xdc\xf6\x53\x0d\xb9\xed\x83\x32\x63\x0d\xac\xdd\x3f\x1d\x6c\xb7\x72\xaf\x1d\x58\xc3\xa7\x24\x28\x93\x60\x32\x68\x41\xf9\x15\x6b\x21\x49\x8c\xfa\xfb\xff\x9e\x28\x57\xcc\x91\x42\x59\x31\x3f\xcc\x30\x84\xb2\x91\x24\xe2\x80\x0c\x56\x9c\xe4\xc1\xca\x60\x08\x7d\x3e\xa3\xd0\x67\xc4\x78\x21\xc6\x0b\x31\x5e\x88\xf1\x82\xfa\xb8\x6b\x17\x0d\x32\x4a\xa2\x1f\x65\x0c\x41\x1e\x3b\x83\x3c\x86\xad\x94\x59\xc3\x76\xeb\xa1\x1d\x04\xfd\xcb\x02\xd7\x51\xca\x94\xfc\xfe\x49\xe2\x39\x0a\x42\x89\xf8\x41\x5e\x5a\x0b\xf9\x13\x77\xd2\x39\x63\xb7\xf2\x5f\xf3\xfb\x35\xf7\xc8\xdc\x97\x30\xc7\xcf\x92\x54\xc4\xf9\x55\xa3\xdc\x39\x99\xef\x3d\x08\x36\xb3\x0d\x9e\x49\x89\xd2\x48\x41\x73\x76\xe7\xf3\x20\xd0\x5e\x16\x24\xa7\x70\x5f\x89\x46\xd7\x3f\x37\x39\xbb\xa9\x8d\x3d\x49\x10\x76\xd0\xac\x00\xbe\x30\xc3\x27\x7b\xca\x6e\xd5\x88\xc9\x5b\x23\x4a\xcc\xe8\x68\x47\xa6\x2c\x11\x31\x79\x20\xe5\xb2\xf4\x73\xc7\x03\x25\x1b\x33\x5d\x7c\x3e\xec\xab\x0d\x86\xba\xd2\xad\x20\x0f\xda\x71\x5c\x09\x0d\x80\x36\x31\x19\x6d\x22\x39\xd4\x8e\x3a\xd0\x7a\x28\xbc\x1a\xa0\x7e\x74\xa0\x9e\xfc\x7d\x6a\x49\x34\x9b\xc7\xf3\x25\x7d\xf7\x0f\xfb\x4f\xea\xb5\x88\x57\xa2\xd6\x27\x93\x34\xe6\xa9\x58\x79\xce\x65\xfd\xef\xc8\x9f\x9f\xf5\x27\xe9\x4e\xa8\x23\x71\x91\x83\x28\xc5\x9f\x29\xdf\xb4\x97\x48\x5f\xf4\xea\x21\x59\xb2\xbb\x72\x2f\xd8\xa3\xb9\xdc\x95\x5d\xc6\x18\xec\xdb\x13\xb7\x6f\x9f\x8f\x8f\xc1\x46\x64\x87\xd9\x5c\x2a\xfa\x28\x52\xce\xd8\x3a\xa2\xfd\xf5\x8e\x73\xe9\x0d\x59\xf7\x54\xc8\x31\xf7\xe9\x9b\x41\x18\x5c\xaa\x6f\xd3\x27\xc8\xc0\x9e\xb0\xd7\x7f\x4d\xc2\xe0\x4e\x05\x76\xff\x26\x4f\x40\xfd\xf3\x57\x73\x2e\xe6\xbf\x7c\x33\x24\xe7\x87\xfa\xeb\xe6\x97\x30\x76\x88\x40\xac\x42\x9a\xfc\x90\x7d\xbf\x58\xca\xdf\x7d\xbf\x60\x37\xa5\xd1\x9c\xb3\x4f\xa9\xc6\x05\xa4\x05\xe9\x8d\x7a\xc9\x1d\x9a\x00\x0a\x0d\xf6\x3d\x47\x1b\x40\x49\x69\x0a\x9f\xf4\xdc\xaa\xd0\xd9\x48\x84\x91\x2f\xe6\x4c\xbd\x93\x32\x02\x98\x35\x45\xde\xfa\x95\x13\x61\x5f\xdf\x64\x78\xe5\x8b\xa0\x3b\xa9\x3f\x40\x77\xea\xd7\xc9\x61\xc3\x05\x7c\xd0\xda\x53\xd6\xba\x41\x2d\xf2\xb9\xf3\x22\xa9\x4e\x3f\xe2\x1c\xe4\x3a\xb8\x8d\x42\xa4\x3b\x2b\x91\x6e\x40\x92\x13\x2e\x78\xfb\x17\xb8\x8d\x9e\x87\x60\x92\x0d\xdc\xa8\xfb\x8a\x1d\xeb\x7c\xe9\x72\xb1\x96\x5b\x24\xed\xa7\x30\xdf\x47\x7a\xfd\xd7\xb2\xb1\xfc\xc8\x7a\x7c\x95\xcf\x40\xd6\x37\x64\x7d\x1b\x5d\xd6\xb7\x49\x7b\xff\x22\x87\x1d\x72\xd8\x21\x87\x1d\x72\xd8\x21\x87\x5d\xd5\x55\x82\x32\x7c\x30\x63\x20\xd5\x20\x62\x51\xce\x39\x16\x05\x79\x25\x91\x57\x12\x79\x25\x91\x57\x12\x79\x25\x91\x57\x12\x79\x25\x11\xa2\x89\x10\x4d\x84\x68\x22\x44\x73\x73\x45\xa2\x0c\x1f\x92\xd8\x1e\xbd\xba\x90\xc4\x16\x49\x6c\x91\xc4\x76\xfa\x8e\x26\x88\xd0\xee\xbd\x0c\x5f\x95\x3b\xc2\x80\xab\xef\xd5\xf1\xc0\xa8\x2a\xba\x07\xaf\x0b\x78\x5d\x4c\xc3\xeb\x02\x7e\x0a\xf0\x53\x80\x9f\x02\xfc\x14\xe0\xa7\xd0\xbb\x9f\x02\x00\x38\x98\x28\x98\x28\x98\x28\x98\x28\x98\x28\x98\x28\x98\xe8\xce\x4b\x00\x98\x02\x98\x02\x98\x02\x98\x02\x98\x02\xb5\xf6\x6a\x05\xb0\x5a\x73\x35\x4a\xec\x55\x7c\x6c\x10\xe0\x03\x95\xf5\xce\x21\x61\x5f\x77\x95\xf5\xea\x90\xac\xea\x82\x7a\x2f\x62\x59\x03\x4d\x88\x92\xf7\xa9\xde\x61\x87\x00\xa2\x09\x04\x10\x21\x0f\x0a\xf2\xa0\x54\x34\x66\xc0\xe2\xd8\x38\xd2\x9f\x34\x68\x6e\xaf\xc5\xf2\x8e\x6e\xef\x94\x24\xdd\xee\x6b\xe4\x35\x94\x74\x5f\xb1\xe6\xd9\x59\x4e\x5d\x11\xef\xd8\xc4\x2c\xbd\x0a\x53\x23\xc9\x80\x01\x21\xaa\x38\xc9\x83\x15\xa2\x10\x73\x7c\x46\x31\xc7\x08\xae\x42\x70\x15\x82\xab\x10\x5c\x05\xfd\x6f\xd7\x2e\x1a\x64\x78\x02\xea\xdf\x0d\x46\xdd\x3a\x45\xfd\xbb\xc1\xc5\x54\x54\x94\xbd\xab\xa3\x31\x55\x55\xbb\x6b\x33\x90\x02\x45\xee\xec\x1a\xa8\x2f\x26\xa0\xc8\x9d\xfe\x0f\xf7\x17\x0c\x6c\x83\xa8\x6d\xd7\x03\x49\x2e\x96\xb4\xdb\xf1\x7a\x54\xb2\xab\xee\x33\xc0\x38\x2a\xd9\x75\x51\xc9\xae\x8e\x40\x55\x59\xc0\x6e\x42\x38\x1f\x75\xeb\x60\x97\x3e\x3f\xb8\x8f\xba\x75\x6d\xae\x1b\xd4\xad\x83\x3a\x04\x75\x68\x7b\x18\x47\x54\xae\xee\xc5\x0a\xd1\x69\xaa\xd4\xd5\x33\x81\x55\x16\xa7\x9b\x90\xcc\x06\x17\x4c\x48\x69\xe7\x20\xa5\x0d\x48\x18\xc2\x9d\x6d\xff\x02\x17\x4c\xfd\xe4\x49\x89\x18\x5d\x17\x9e\xeb\xcf\xa3\xf1\x2a\x51\xe4\xb4\xe0\xd8\xd8\x0d\xad\x53\xef\x31\x77\x53\x8b\xdc\x4e\xa3\x5f\x9c\x3c\xd8\xca\x80\x27\x80\x27\xc7\xf5\x19\xf0\x04\xf0\xa4\x1d\x78\xf2\x92\xfb\x6d\x3f\x46\xa9\xb8\xe0\x46\xa9\x98\x03\xa6\x40\x4d\x3f\x3f\x35\x1d\x30\xa5\xcd\x75\x03\x98\x02\xc3\x0c\xd4\xa3\xed\x61\x04\x4c\x79\x39\x4c\x79\x99\x85\x62\x3f\x56\x99\x8a\x0c\x07\xb8\x02\xa9\xed\x1c\xa4\xb6\x01\x09\x47\xb8\xc3\xed\x5f\x00\x57\xf4\x93\x27\x25\x72\x4c\x07\xae\x88\xc8\x0f\x9f\xd7\x14\x72\x7b\x9a\x44\x11\x85\x50\xda\x70\xc9\x3e\xda\xf7\xef\x91\x54\x8a\x59\x23\x3e\xd8\xaf\x17\x44\x96\xca\x87\xa0\xb2\x0c\x2a\xcb\x8c\xae\xb2\xcc\xa4\xb3\x99\xa0\x4e\x0e\xea\xe4\xa0\x4e\x0e\xea\xe4\xa0\x4e\x4e\xd5\x55\x72\x82\x2a\xbd\x30\x57\x0c\xdd\x5c\x81\x72\x46\xc8\xad\x75\xc6\xb9\xb5\x50\xbb\x0a\xb5\xab\x50\xbb\x0a\xb5\xab\x50\xbb\x0a\xb5\xab\x50\xbb\x0a\x29\x27\x91\x72\x12\x29\x27\x91\x72\x72\x73\x45\x9e\xc0\x52\x80\x42\x79\x28\x94\xd7\xc1\xda\x42\xa1\xbc\x9a\x7b\x10\x85\xf2\xe0\x50\x82\x8c\xb3\x2d\x67\x9c\xcd\x45\xaa\x8e\xbd\x37\xaa\xfc\x11\x7a\x4d\x3e\xab\x8c\x67\xb1\xbe\xc5\x8d\x94\x1f\x2e\x99\x6c\x72\x3d\x27\x0c\xf9\x88\x2d\x5f\x51\x38\x5e\xc0\xf1\x62\x1a\x8e\x17\x70\x55\x80\xab\x02\x5c\x15\xe0\xaa\x00\x57\x85\xde\x5d\x15\xc0\xc0\x81\x45\x81\x45\x81\x45\x81\x45\x81\x45\x81\x45\x81\x45\x77\x5e\x02\x20\x15\x20\x15\x20\x15\x20\x15\x20\x15\x3b\x48\xc5\xce\x2f\xc8\x97\xbd\x57\x03\xff\x9f\xdb\x63\x50\xe7\xd9\xe5\x6f\x0f\x1b\x89\xe4\x41\xab\xd6\x5e\xfd\xab\x97\x9c\x65\xe4\xaa\x3c\xc6\x06\x0e\x3f\x1a\x64\x13\x44\xfa\xbd\xd1\xa5\xdf\x0b\x93\x96\x11\x97\x52\x44\x18\xaf\x47\xb3\xd4\xa7\xdb\xe5\x59\x43\x4d\x7b\x92\x77\xaa\xde\x81\x87\x40\xa2\x09\x04\x12\x21\xef\x09\xf2\x9e\x54\x34\x66\xc8\x32\xd9\x48\x12\x9f\x34\x68\x6f\x1f\x95\xa7\x5f\xd0\xe0\x29\x09\xbc\x24\x68\x0c\x52\xe0\x7d\xc5\x5e\x90\xac\x45\xa7\xc2\x3f\x51\xce\x96\x9a\x42\x55\x31\x4f\x4b\xbf\x42\xd5\x48\x12\x62\x40\x96\x2a\x4e\xf2\x60\x65\x29\x84\x20\x9f\x51\x08\x32\x62\xad\x10\x6b\x85\x58\x2b\xc4\x5a\x41\x0d\xdc\xb5\x8b\x06\x19\xad\xd0\x8f\x92\x85\x60\x8b\x9d\xc1\x16\xc3\x54\xba\xac\x01\xba\x9b\x8a\x61\x65\x41\xab\x96\xd2\x54\x59\x28\xac\xcd\xb8\x8a\x82\xf0\x21\x7e\x90\xb7\xd4\x42\xfe\xc4\x9d\x74\xce\xd8\xad\xfc\xd7\xfc\x7e\xcd\x3d\x32\xcf\x25\xcc\xf1\xb3\x24\x15\x71\x7e\xa5\xe8\x72\x03\xbe\xf7\x20\xd8\xcc\x36\x74\x26\x25\x47\x23\xed\xcc\xd9\x9d\xcf\x83\x40\x7b\x3b\x90\x3c\xc2\x7d\x25\x02\x5d\xff\xdc\xe4\x8c\xa6\x36\xf6\x24\x29\xd8\x41\xb3\x82\xf6\xc2\x0c\x9f\xec\x29\xbb\x55\x23\x26\x6f\x87\x28\x31\xa3\xa3\x1d\x8a\xa8\x76\x83\xc3\x83\x82\xcc\xfc\xdc\xf1\x40\xc9\xc6\x4c\x17\x63\x0f\xfb\x0a\x83\xa1\xed\x44\x55\xea\x7a\x00\xcb\xa5\x32\x75\x3b\xde\x8f\x3a\x75\xd5\x7d\x06\x28\x47\x9d\xba\x76\xea\xd4\x35\x90\xaa\xaa\xcb\xd3\x4d\x08\xef\xa3\x32\x1d\xec\xd3\xe7\xc7\xfa\x51\x99\xae\xcd\x75\x83\xca\x74\xd0\x89\xa0\x13\x55\x8c\xe3\x98\x4a\xd3\xbd\x58\x2b\xea\xaa\x36\x5d\x23\x5b\x58\x75\x49\xba\x09\xc9\x6d\x70\xcb\x84\xa8\x76\x16\xa2\xda\x80\x24\x22\x5c\xdc\xf6\x2f\x70\xcb\xb4\x8f\x9e\x94\xa0\xd1\x79\x41\xba\x1e\x9d\x1c\xaf\x12\x87\xfb\x45\xc7\xc6\x8e\xe0\x1d\xbd\xa6\xa2\x96\xee\xcb\x29\xde\x57\xea\x00\x0e\x9f\x83\x9b\x39\x4b\x43\x39\x0b\x5e\xb0\x22\x84\x4e\xc3\x76\x86\xdb\xb9\x2d\x96\x92\x0f\x67\xf5\xae\xde\x5c\x97\x27\xa4\x29\x15\xaf\x06\x48\xa9\xee\x33\x40\x0a\x40\x4a\x3b\x20\xe5\x25\x37\xdc\x01\xa2\xb2\x7d\xc5\x8d\x52\x3d\x07\x56\x81\xae\x7e\x7e\xba\x3a\xb0\x4a\x9b\xeb\x06\x58\x05\xd6\x19\x28\x48\x9d\x2a\x48\xed\x81\x95\x4e\x55\xa4\xae\xd0\xca\xcb\x2c\x15\x07\x18\xcb\x44\x24\xb9\x97\xec\x15\x88\x6f\x10\xdf\x46\x24\xbe\x0d\x48\x4a\xc2\x65\x6e\xff\xd2\xe9\x65\xde\x13\x6c\x81\xf8\xd1\x2a\x6e\xe9\x40\xf8\x78\xc5\xda\x00\x2e\x2a\x76\xad\x7b\xe2\x42\xef\xe9\x06\xb9\xa8\x2e\xe0\x14\x02\x40\x45\xf4\x0a\xa2\x57\x00\x5d\x00\x5d\xfa\x82\x2e\x2f\xb9\xe4\x0e\x51\x97\xed\x5b\x6e\x94\xca\x3a\xb0\x0b\xf4\xf6\xf3\xd3\xdb\x81\x5d\xda\x5c\x37\xc0\x2e\xb0\xd4\x40\x47\xaa\x18\xc7\xe1\x41\x97\x11\x46\xb3\xbc\xd0\x54\x71\x88\xb9\x4c\x44\x8e\x43\x74\x0b\x44\xb7\xb3\x10\xdd\x06\x24\x21\xe1\x22\xb7\x7f\x41\x74\x8b\x7d\xf4\xa4\x04\x8f\xe9\x44\xb7\x48\x49\xc0\x73\x78\x22\xd2\xe4\x44\xb9\xbb\x0b\xb9\x4d\xc3\x25\xfb\xa2\xde\xff\x55\xd4\xcd\xe3\xfd\xc1\x7e\x3d\x97\x5b\xaa\x1f\x82\xb2\xff\x28\xfb\x3f\xba\xb2\xff\x93\x4e\x2f\xff\xad\x58\xba\x56\xd9\x88\x0a\x19\xca\x13\x91\xaa\x3a\xb1\xba\xf6\xb0\x5c\x4c\xa5\xa2\xb5\x36\x95\xb4\x9a\xf0\x39\xfb\xea\x05\x8e\xd8\x48\x3e\xae\x57\xaa\x16\xa1\xca\x15\x71\x4b\x45\x81\x6d\x43\xd4\x57\xe9\xe1\x3c\xaf\xfd\xae\x2a\x21\x9b\x12\xa5\x72\xa7\xe7\x75\x6a\xd5\xdf\xf2\xf3\x85\xbd\x16\x3f\x1c\x11\xe5\xc5\x19\xd5\x23\xc3\xa5\x7d\xc9\x1b\x9b\x1d\x59\xb7\x4f\x55\x4b\x26\x7c\xc4\x37\x9b\xe2\xc9\x53\x43\xa8\x95\x6e\x95\x02\xbb\x3d\x72\x55\x6f\xf3\x6b\xf2\x1b\x24\x6b\x8a\x98\x29\xbd\xc2\x14\x33\x76\x33\x41\x55\xb6\x7f\x44\x9e\xce\x1a\xff\x7a\x25\x02\x11\x13\x16\x58\x4a\x05\x23\x0d\xd9\xd2\x5b\xa6\x42\x04\x6c\xed\x05\x59\x2a\x92\x37\x8c\x2a\x54\x3b\x61\xb0\xf4\x56\x26\xd9\xbc\x12\x80\x4d\xb5\xe9\x7c\xe3\xed\xad\xd6\xff\x7f\xae\xff\xc8\xbe\xe8\xa4\xd0\xb7\xb2\x09\xc2\xd5\xea\x4b\x1a\xae\x54\x03\xf5\x27\x6d\x8f\xd2\xf0\x41\x04\xb6\xcb\xba\x22\x6e\x20\x84\xbb\x51\x48\xd7\xa7\x2a\xd9\x5e\xaa\xc4\xf0\x58\xa8\x1a\xf6\xba\xce\xb8\x97\xa4\xb6\x68\xf0\x76\xd5\xe4\x39\xfb\x2c\x5f\xfd\xe4\x99\xbc\xe6\xfa\x2d\x54\x0a\x5f\x1d\x71\xca\xb6\xb6\x51\xb7\x5f\xeb\x0b\xd4\x42\x53\x8d\xb7\xa0\x47\xc8\xce\x52\xe7\x0e\x0e\x0b\x3d\x97\x1a\x4c\x76\x3d\xb3\xb8\x4d\x45\x7f\x95\xb5\xbb\x50\x86\x3f\x95\xef\xcf\x2b\x07\x3f\xdd\x7b\xaa\x28\xb3\x17\x14\x06\xc4\x7e\xde\x2e\xe4\x42\xa9\xdd\x84\x5d\xda\x2c\xef\x2a\x37\x68\x2c\x8e\x2c\x98\xbc\x31\x18\xdb\xb5\x92\x75\x06\x70\x92\xaf\x49\x99\x91\x0b\x52\xfe\xab\x26\xe5\x41\x3c\xeb\xea\xd3\xf6\xc1\xdf\x2f\x4c\x97\xbf\x5f\xe8\xe2\xd2\xbb\xab\x51\xd3\x01\x51\xae\x47\x6d\xef\x3f\x9a\x39\x5a\x00\xa6\xe8\x6e\x61\xf4\xd4\x20\x14\xeb\x73\xea\x6d\x63\x6f\x45\x9d\xf8\x5c\xcf\x98\x52\xa8\x53\xb6\xf6\x92\x84\x6e\xbb\x92\x56\xdf\xe4\x56\x31\xcb\xaf\x1f\x55\x18\x16\x8b\xda\x13\xd5\xa7\xc5\xe2\x86\x25\x22\xcf\x60\x2f\x0f\xb4\xd8\x73\xd2\xbc\xb6\x3f\x55\xe0\xd7\x0b\xd6\x16\x6c\x78\xd6\x9b\x4b\xb1\x81\x72\xf5\x0c\xf1\x28\xe2\xe7\xf4\xde\x0b\x56\x8d\x6d\x04\x5f\x75\x8b\xfa\x19\x11\x14\x3b\x39\xa3\x62\x27\x2f\x5a\xfe\x3e\x5f\x08\xbf\xd5\xe5\x4f\x4f\xec\x77\xf9\xab\xc2\xff\x64\xbb\x5c\xf3\x1f\xde\x3a\x5b\xb3\x20\x5b\x2f\xe4\x22\x59\xda\xc3\x34\x51\xa3\x45\x85\xac\x09\xd6\xaa\xd1\x52\x85\xc1\x3f\x2d\x95\x18\xed\xc9\xb6\xa8\xba\x1e\xdb\xb2\x09\x15\x56\xbf\x17\xec\x9f\xe6\x96\xfa\xa7\x29\x2d\x12\xe4\xa3\x6f\xaa\x7e\xa8\x85\xaa\x56\x27\xdd\x1f\x0e\x0f\xcc\x72\xce\x25\xa1\x84\xaf\xe5\x2e\xf3\x52\xcf\x8a\xcc\xaa\x95\x52\xb8\x17\xb9\xac\x23\x5f\xad\xfa\x22\x27\x4d\xaa\xcf\x69\xaa\x14\x49\xd5\x77\x25\x2a\xab\xbe\x89\x27\x55\x25\x3f\x28\xde\x10\x52\x4c\x59\x87\x59\x40\x8f\x51\xbd\x7c\x9d\x45\xf2\x65\x6a\x43\xcb\xdf\xbc\x31\xb2\x89\xd2\x55\x39\x5d\x4e\xe6\xdb\x66\x25\x49\xb9\x64\xe9\xf9\xa9\x90\x12\xaa\x94\x1a\xe5\x1d\xe5\x94\xb5\xeb\x92\x0e\xa1\xee\x53\xc7\x3a\xb5\x95\x25\x4c\x55\x83\x24\x15\xf1\xda\x0b\x84\x95\xc5\x4b\x2a\x0d\x49\x42\x8f\xdc\xf3\xa5\x3e\x9b\x5b\x0e\x64\x97\x9d\xfb\x30\x4c\xa8\xd6\xb8\x7c\x8e\x96\x80\xf4\x5c\xc8\x61\xe1\xf1\x2a\x23\x83\x02\x0f\x5c\x73\xdb\xd2\x20\xc9\xbe\xe9\xf6\xd8\x47\xe7\xa3\xfb\x69\xc9\xec\x92\xca\x4f\x25\xa3\x9d\x6c\x74\xc0\x4b\x98\x58\x47\xe9\x73\x59\x8d\xb2\x76\x01\x9e\xca\x1b\x7c\x5f\x87\xf6\x89\x72\xde\x72\x43\x90\x53\xb2\x9f\x5d\x97\xb6\xf6\xbf\x16\x52\xf2\x93\x3e\xc9\x0f\x01\x92\x07\x33\x12\x1b\x6c\xdb\xad\x58\x6a\x15\xb6\x34\x64\x5e\x92\x64\xda\x3c\xe1\x05\x2b\x5f\xe4\x3b\xc4\xea\x08\x66\xc1\x5d\x1a\xe3\xff\x5b\xd9\x3d\xf3\xca\xe3\xe4\x64\x23\x22\x93\xf5\x23\xc9\x84\x5b\x29\x2c\x93\x15\x26\x5b\x24\xf2\xc3\x41\x6a\x7b\xe0\x16\x3c\x03\xbe\x69\x03\x4a\x12\xae\x45\xea\xad\x85\xec\xfb\x52\xc4\x31\x55\x59\x52\x05\xeb\x0b\xe2\x7f\xae\x1e\xc8\x19\x15\x41\x92\xc5\xc2\xd6\x01\xd0\x0a\x8e\x21\x1b\x6a\xd4\x54\x97\x69\x63\x92\x2a\xc3\x92\x35\xf7\x7d\x11\x33\xe7\x3e\x0b\x1e\x08\x30\x72\x26\x0f\x51\xe6\xf3\x78\x65\x26\x9a\x76\xbc\x7a\xbc\xb2\x15\x25\x42\xd0\xc2\x8b\xc2\x24\xf1\xe4\x82\xd3\xc3\x46\x0b\xae\xb8\xbf\x94\x13\x9a\x9b\x5b\x8b\xe8\x3d\xc2\x55\xf3\x41\xca\xb3\x16\xcf\xf5\x1a\xd6\x77\x21\xb5\xfa\x89\x27\x46\x86\x35\x16\x31\x39\x26\xdb\xfa\x89\xd2\xda\x79\x22\x27\xd8\xc9\x7c\x55\xfc\x2a\x5f\x36\x8d\xee\x02\x39\x50\x3d\x5d\x8b\xa8\x01\x86\x1a\x60\xa8\x01\x86\x1a\x60\xa7\xb3\x14\xe4\xa2\x81\xb6\x56\xa9\xab\x5a\xde\x97\x6f\xa5\x28\xf4\x94\x18\x18\xae\xc6\x25\x74\x9c\x2c\xb6\xb7\x20\x4f\x19\xb9\x1d\xcb\xa3\x37\x2e\x1e\xe8\xdc\xae\x8c\xb2\x98\x6e\x9e\x65\x4f\x8a\x85\x58\x79\x41\xa0\xad\x01\xf7\x5e\x92\x86\xf1\xf3\x9c\x6d\x34\x4d\x8a\xba\xf2\xf8\x78\xc7\x2e\xa5\x34\x41\x9e\x6e\x05\x8f\x74\x63\x7d\x28\x88\x0b\xf4\x7c\x79\x2c\x91\x1f\x74\x18\xcb\xf5\xb2\xe0\x52\x6c\x0d\x03\xf6\xaf\x2c\x8c\xb3\xf5\x25\x45\x02\x2d\x7d\xbe\x7a\xaf\x1e\xeb\xc9\x03\xeb\x8f\xfa\xb9\x4f\x82\x25\xde\x5a\x39\xef\x91\xb4\xf5\x44\xf7\x92\x60\x4e\x16\xc7\x22\x48\xfd\x67\x76\xcf\x49\xbb\x64\x0e\x77\xee\x05\x89\x10\x56\x92\xd1\x4f\x24\x61\x3b\x94\xea\x28\x49\xa8\x95\x4d\xe6\x29\x93\x07\x7d\x4a\x31\x04\xb1\x48\x28\x98\x60\xe5\x3d\x8a\x80\xc5\x8f\x4d\x56\xd7\x86\xf5\xab\x27\x65\xde\x5b\x0b\x29\x6a\x19\xbd\x58\xce\xde\x55\xbe\xb4\xb4\xb8\x43\x57\x6d\xa2\x36\xad\xd1\xfc\x8d\x84\x4d\x0b\x30\x16\x2b\x1e\xbb\xe4\x72\x21\x17\x55\xf0\xcc\xb8\x93\x7a\x8f\x5e\xfa\x2c\x8f\x41\x2f\x30\xff\xd7\x64\x9c\x52\xd5\xc4\x7e\xf5\xe0\xbf\x2b\xf3\x65\x18\xe7\xbb\x2c\xd4\x87\x98\xfc\xdc\x82\x44\x44\x35\x9f\xea\xd0\xd5\xab\x31\xbd\x17\x6b\x25\x14\x26\x69\x2c\xf8\x9a\x86\xc7\x75\xdf\x6a\xb1\xeb\xad\xfe\xac\xbc\x96\xe5\x65\x50\x30\x68\xb2\xaf\xaa\x30\xd4\xa6\x95\xb4\xc9\x10\x3e\x6d\x38\xe6\xb1\x17\x5f\xa7\x95\x7c\x19\x3e\x25\x28\x01\xb8\xf9\x85\xbd\x25\x00\x73\x91\xaa\x5b\xf7\x8d\x4a\x7f\x84\x5e\x8b\x01\x2a\xe3\x59\xac\x6f\x71\x23\xe5\x87\x4b\x26\x9b\x5c\xcf\x09\x43\x3e\x62\xd3\x61\x14\x8e\x17\x70\xbc\x98\x88\xe3\x05\x5c\x15\xe0\xaa\x00\x57\x05\xb8\x2a\xc0\x55\xa1\x77\x57\x05\x30\x70\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\xd1\x9d\x97\x00\x48\x05\x48\x05\x48\x05\x48\x05\x48\xc5\x0e\x52\xb1\xf3\x0b\xf2\x65\xef\xd5\xc0\xff\xe7\xf6\x18\xd4\x79\x76\xf9\xdb\xc3\x46\x22\x36\x6c\x35\xb7\x57\xff\xea\x25\x67\x19\xba\x2a\x8f\xb1\x81\xc3\x8f\x06\x89\x05\x91\x88\x6f\x74\x89\xf8\xc2\xa4\x65\xc4\xa5\x14\x11\xc6\xeb\xd1\x2c\xf5\xe9\x76\x79\xd6\x40\x53\x9f\x14\x3a\x55\xef\xc0\x43\x20\xd1\x04\x02\x89\x90\xfa\x04\xa9\x4f\x2a\x1a\x33\x64\x99\x6c\x1c\xa9\x4f\x9a\xb4\xf7\xa7\x83\xed\x55\xee\xb0\x03\x69\xf0\x94\x04\x5e\x12\x34\x06\x29\xf0\xbe\x62\x2f\x48\xd6\xa2\x33\xe3\x9f\x28\x67\x4b\x4d\xa1\xaa\x98\xa7\xa5\x5f\xa1\x6a\x24\x09\x31\x20\x4b\x15\x27\x79\xb0\xb2\x14\x42\x90\xcf\x28\x04\x19\xb1\x56\x88\xb5\x42\xac\x15\x62\xad\xa0\x06\xee\xda\x45\x83\x8c\x56\xe8\x47\xc9\x42\xb0\xc5\xce\x60\x8b\x61\x2a\x5d\xd6\x00\xdd\x4d\x01\xb1\xb2\xa0\x55\x4b\x69\xaa\x2a\x1b\xd6\x6a\x5c\x45\x41\xf8\x10\x3f\xc8\x5b\x6a\x21\x7f\xe2\x4e\x3a\x67\xec\x56\xfe\x6b\x7e\xbf\xe6\x1e\x99\xe7\x12\xe6\xf8\x59\x92\x8a\x38\xbf\x52\x74\xd9\x01\xdf\x7b\x10\x6c\x66\x1b\x3a\x93\x92\xa3\x91\x76\xe6\xec\xce\xe7\x41\xa0\xbd\x1d\x48\x1e\xe1\xbe\x12\x81\xae\x7f\x6e\x72\x46\x53\x1b\x7b\x92\x14\xec\xa0\x59\x41\x7b\x61\x86\x4f\xf6\x94\xdd\xaa\x11\x93\xb7\x43\x94\x98\xd1\xd1\x0e\x45\x54\xc3\xc1\xe1\x41\x41\x66\x7e\xee\x78\xa0\x64\x63\xa6\x8b\xb1\x87\x7d\x85\xc1\xd0\x76\x9a\x8a\x75\x7d\x80\xe5\x62\xc5\xba\x5d\xef\x47\xc5\xba\xea\x3e\x03\x94\xa3\x62\x5d\x3b\x15\xeb\x1a\x48\x55\x95\x75\xea\xa6\x84\xf7\x51\xa1\x0e\xf6\xe9\xf3\x63\xfd\xa8\x50\xd7\xe6\xba\x41\x85\x3a\xe8\x44\xd0\x89\x2a\xc6\x71\x44\x15\xea\x5e\xae\x15\x75\x55\xa1\xae\x91\x2d\xac\xb2\x2e\xdd\x94\xe4\x36\xb8\x65\x42\x54\x3b\x0b\x51\x6d\x40\x12\x11\x2e\x6e\xfb\x17\xb8\x65\xda\x47\x4f\x4a\xd0\xe8\xba\x22\x5d\x9f\x4e\x8e\x57\x89\xc3\xfd\xa2\x63\x63\x47\xf0\x8e\x5e\xb3\x5d\x51\xb7\x05\x8a\xf7\x95\x3a\x80\xc3\xe7\xe0\x66\xce\xd2\x50\xce\x82\x17\xac\x08\xa1\xd3\xb0\x9d\xe1\x76\x6e\x8b\xa5\xe4\xc3\x59\xbd\xab\x37\xd7\xe5\x09\x69\x4a\xc5\xab\x01\x52\xaa\xfb\x0c\x90\x02\x90\xd2\x0e\x48\x79\xc9\x0d\x77\x80\xa8\x6c\x5f\x71\xa3\x54\xcf\x81\x55\xa0\xab\x9f\x9f\xae\x0e\xac\xd2\xe6\xba\x01\x56\x81\x75\x06\x0a\x52\xa7\x0a\x52\x7b\x60\xa5\x53\x15\xa9\x2b\xb4\xf2\x32\x4b\xc5\x01\xc6\x32\x11\x49\xee\x25\x7b\x05\xe2\x1b\xc4\xb7\x11\x89\x6f\x03\x92\x92\x70\x99\xdb\xbf\x74\x7a\x99\xf7\x04\x5b\x20\x7e\xb4\x8a\x5b\x3a\x10\x3e\x5e\xb1\x36\x80\x8b\x8a\x5d\xeb\x9e\xb8\xd0\x7b\xba\x41\x2e\xaa\x0b\x38\x85\x00\x50\x11\xbd\x82\xe8\x15\x40\x17\x40\x97\xbe\xa0\xcb\x4b\x2e\xb9\x43\xd4\x65\xfb\x96\x1b\xa5\xb2\x0e\xec\x02\xbd\xfd\xfc\xf4\x76\x60\x97\x36\xd7\x0d\xb0\x0b\x2c\x35\xd0\x91\x2a\xc6\x71\x78\xd0\x65\x84\xd1\x2c\x2f\x34\x55\x1c\x62\x2e\x13\x91\xe3\x10\xdd\x02\xd1\xed\x2c\x44\xb7\x01\x49\x48\xb8\xc8\xed\x5f\x10\xdd\x62\x1f\x3d\x29\xc1\x63\x3a\xd1\x2d\x52\x8c\x10\xcb\xcc\x4f\x44\x9a\x9c\x28\x79\x77\x21\xb9\x69\xb8\x64\x5f\x75\x03\xea\x67\xf2\xfe\x60\xbf\x9f\x4b\x2e\x3b\x9e\x82\xca\xff\xa8\xfc\x3f\xba\xca\xff\x93\xce\x30\xff\xad\x58\xbd\x56\x99\x89\x0a\x49\xca\x13\x91\xaa\x52\xb1\xba\xfc\xb0\x5c\x4c\xa5\xba\xb5\x36\x9b\xb4\x9a\xf0\x39\xfb\xea\x05\x8e\xd8\xc8\x3f\xae\x57\xaa\x96\xa2\xca\x45\x71\x4b\x75\x81\x6d\x43\xd4\x57\xe9\xe1\x3c\x2f\xff\xae\x8a\x21\x9b\x2a\xa5\x72\xa7\xe7\xa5\x6a\xd5\xdf\xf2\xf3\x85\xbd\x16\x3f\x1c\x11\xe5\xf5\x19\xd5\x23\xc3\xa5\x7d\xc9\x1b\x9b\x20\x59\xb7\x4f\x15\x4c\x26\x82\xc4\x37\x9b\xe2\xc9\x53\x43\xa8\x95\x6e\xf5\x02\xbb\x3d\x72\x6d\x6f\xf3\x6b\xf2\x1b\x24\x6e\x8a\x98\x29\xd5\xc2\xd4\x33\x76\x33\x41\x85\xb6\x7f\x44\x9e\x4e\x1c\xff\x7a\x25\x02\x11\x13\x19\x58\x4a\x1d\x23\x0d\xd9\xd2\x5b\xa6\x42\x04\x6c\xed\x05\x59\x2a\x92\x37\x8c\x8a\x54\x3b\x61\xb0\xf4\x56\x26\xdf\xbc\x92\x81\x4d\xc1\xe9\x7c\xe3\xed\x2d\xd8\xff\x7f\xae\xff\xc8\xbe\xe8\xbc\xd0\xb7\xb2\x09\xc2\xd5\x1a\x4c\x1a\xae\x54\x03\xf5\x27\x6d\x8f\xd2\xf0\x41\x04\xb6\xcb\xba\x28\x6e\x20\x84\xbb\x51\x4b\xd7\xa7\x42\xd9\x5e\xaa\x24\xf1\x58\xa8\x32\xf6\xba\xd4\xb8\x97\xa4\xb6\x6e\xf0\x76\xe1\xe4\x39\xfb\x2c\x5f\xfd\xe4\x99\xd4\xe6\xfa\x2d\x54\x0d\x5f\x1d\x71\xca\xbc\xb6\x51\xba\x5f\xab\x0c\xd4\x42\x53\x90\xb7\xa0\x4a\xc8\xce\x52\xe7\x0e\x0e\x0b\x3d\x97\x1a\x4c\xa6\x3d\xb3\xb8\x4d\x51\x7f\x95\xb8\xbb\x50\x89\x3f\x95\xef\xcf\x8b\x07\x3f\xdd\x7b\xaa\x2e\xb3\x17\x14\x06\xc4\x7e\xde\x2e\xe4\x42\xb5\xdd\x84\x5d\xda\x44\xef\x2a\x3d\x68\x2c\x8e\xac\x99\xbc\x31\x18\xdb\xe5\x92\x75\x12\x70\x12\xb1\x49\x9f\x91\x0b\x52\xfe\xab\x26\xe5\x41\x3c\xeb\x02\xd4\xf6\xc1\xdf\x2f\x4c\x97\xbf\x5f\xe8\xfa\xd2\xbb\x0b\x52\xd3\x01\x51\x2e\x49\x6d\xef\x3f\x9a\x39\x5a\x00\xa6\xee\x6e\x61\xf4\xd4\x20\x14\x4b\x74\xea\x6d\x63\x6f\x45\x9d\xfb\x5c\xcf\x98\xd2\xa9\x53\xb6\xf6\x92\x84\x6e\xbb\x92\x62\xdf\xe4\x56\x31\xcb\xaf\x1f\x6d\x18\x46\x8b\xda\x13\xd5\xa7\xd1\xe2\x86\x25\x22\x4f\x62\x2f\x0f\xb4\xd8\x73\xd2\xbc\xbc\x3f\x15\xe1\xd7\x0b\xd6\xd6\x6c\x78\xd6\x9b\x4b\xe1\x81\x72\x01\x0d\xf1\x28\xe2\xe7\xf4\xde\x0b\x56\x8d\xcd\x04\x5f\x75\x8b\xfa\x19\x11\xd4\x3b\x39\xa3\x7a\x27\x2f\x5a\xfe\x3e\x5f\x08\xbf\xd5\xe5\x4f\x4f\xec\x77\xf9\xab\xda\xff\x64\xbe\x5c\xf3\x1f\xde\x3a\x5b\xb3\x20\x5b\x2f\xe4\x22\x59\xda\xc3\x34\x51\xa3\x45\xb5\xac\x89\xd7\xaa\xd1\x52\xb5\xc1\x3f\x2d\x95\x18\xed\xc9\xb6\xa8\xd2\x1e\xdb\xb2\x09\xd5\x56\xbf\x17\xec\x9f\xe6\x96\xfa\xa7\xa9\x2e\x12\xe4\xa3\x6f\x0a\x7f\xa8\x85\xaa\x56\x27\xdd\x1f\x0e\x0f\xcc\x72\xce\x25\xa1\x84\xaf\xe5\x2e\xf3\x52\xcf\x8a\xcc\xaa\x95\x52\xb8\x17\xb9\xac\x23\x5f\xad\xfa\x22\x27\x4d\xaa\xcf\x69\xaa\x14\x49\xd5\x77\x25\x2a\xab\xbe\x89\x27\x55\x28\x3f\x28\xde\x10\x52\x4c\x59\x87\x59\x40\x8f\x51\xbd\x7c\x9d\x45\xf2\x65\x6a\x43\xcb\xdf\xbc\x31\xb2\x89\xd2\x55\x39\x5d\x4e\xe6\xdb\x66\x25\x49\xb9\x64\xe9\xf9\xa9\x90\x12\xaa\x94\x1a\xe5\x1d\xe5\x94\xb5\xeb\x92\x0e\xa1\xee\x53\xc7\xfa\xb5\x95\x25\x4c\x55\x86\x24\x15\xf1\xda\x0b\x84\x95\xc5\x4b\x2a\x0d\x49\x42\x8f\xdc\xf3\xa5\x3e\x9b\x5b\x0e\x64\x97\x9d\xfb\x30\x4c\xa8\xdc\xb8\x7c\x8e\x96\x80\xf4\x5c\xc8\x61\xe1\xf1\x2a\x23\x83\x02\x0f\x5c\x73\xdb\xd2\x20\xc9\xbe\xe9\xf6\xd8\x47\xe7\xa3\xfb\x69\xc9\xec\x92\xca\x4f\x25\xa3\x9d\x6c\x74\xc0\x4b\x98\x58\x47\xe9\x73\x59\x8d\xb2\x76\x01\x9e\xca\x1b\x7c\x5f\x87\xf6\x89\x72\xde\x72\x43\x90\x53\xb2\x9f\x5d\x97\xb6\xfc\xbf\x16\x52\xf2\x93\x3e\xc9\x0f\x01\x92\x07\x33\x12\x1b\x6c\xdb\xad\x58\x6a\x15\xb6\x34\x64\x5e\x92\x64\xda\x3c\xe1\x05\x2b\x5f\xe4\x3b\xc4\xea\x08\x66\xc1\x5d\x1a\xfb\xff\x5b\xd9\x3d\xf3\xca\xe3\xe4\x64\x23\x22\x93\xf5\x23\xc9\x84\x5b\x29\x2c\x93\x15\x26\x5b\x24\xf2\xc3\x41\x6a\x7b\xe0\x16\x9c\x03\xbe\x69\x03\x4a\x12\xae\x45\xea\xad\x85\xec\xfb\x52\xc4\x31\x15\x5a\x52\x35\xeb\x0b\xe2\x7f\xae\x1e\xc8\x19\x15\x41\x92\xc5\xc2\x96\x02\xd0\x0a\x8e\x81\x1b\x6a\xd4\x54\x97\x69\x63\x92\x2a\xc3\x92\x35\xf7\x7d\x11\x33\xe7\x3e\x0b\x1e\x88\x31\x72\x26\x0f\x51\xe6\xf3\x78\x65\x26\x9a\x76\xbc\x7a\xbc\xb2\x15\x25\x42\xd0\xc2\x8b\xc2\x24\xf1\xe4\x82\xd3\xc3\x46\x0b\xae\xb8\xbf\x94\x1f\x9a\x9b\x5b\x8b\xe8\x3d\xc2\x55\xf3\x41\xca\xb3\x16\xcf\xf5\x1a\xd6\x77\x21\xb5\xfa\x89\x27\x46\x86\x35\x16\x31\x39\x26\xdb\xfa\x89\xd2\xda\x79\x22\x27\xd8\xc9\x7c\x55\xff\x2a\x5f\x36\x8d\xee\x02\x39\x50\x3d\x5d\x8b\x28\x03\x86\x32\x60\x28\x03\x86\x32\x60\xa7\xb3\x14\xe4\xa2\x81\xb6\x56\xa9\xab\x5a\xde\x97\x6f\xa5\x28\xf4\x94\x18\x1e\xae\xc6\x25\x74\x9c\x2c\xb6\xb7\x20\x4f\x19\x79\x1e\xcb\xa3\x37\x2e\x1e\xe8\xdc\xae\x8c\xb2\x98\x6e\x9e\x65\x4f\x8a\x85\x58\x79\x41\xa0\xad\x01\xf7\x5e\x92\x86\xf1\xf3\x9c\x6d\x34\x4d\x8a\xba\xf2\xf8\x78\xc7\x2e\xa5\x34\x41\xce\x6e\x05\xa7\x74\x63\x7d\x28\x88\x0b\xf4\x7c\x79\x2c\x91\x2b\x74\x18\xcb\xf5\xb2\xe0\x52\x6c\x0d\x03\xf6\xaf\x2c\x8c\xb3\xf5\x25\x05\x03\x2d\x7d\xbe\x7a\xaf\x1e\xeb\xc9\x03\xeb\x8f\xfa\xb9\x4f\x82\x25\xde\x5a\xf9\xef\x91\xb4\xf5\x44\xf7\x92\x60\x4e\x16\xc7\x22\x48\xfd\x67\x76\xcf\x49\xbb\x64\x0e\x77\xee\x05\x89\x10\x56\x92\xd1\x4f\x24\x61\x3b\x94\xea\x28\x49\xa8\x95\x4d\xe6\x29\x93\x07\x7d\x4a\x61\x04\xb1\x48\x28\x9e\x60\xe5\x3d\x8a\x80\xc5\x8f\x4d\x56\xd7\x86\xf5\xab\x27\x65\xde\x5b\x0b\x29\x6a\x19\xbd\x58\xce\xde\x55\xbe\xb4\xb4\xb8\x43\x57\x6d\xa2\x36\xad\xd1\xfc\x8d\x84\x4d\x0b\x30\x16\x2b\x1e\xbb\xe4\x75\x21\x17\x55\xf0\xcc\xb8\x93\x7a\x8f\x5e\xfa\x2c\x8f\x41\x2f\x30\xff\xd7\x64\x9c\x52\xd5\xc4\x7e\xf5\xe0\xbf\x2b\xf3\x65\x18\xe7\xbb\x2c\xd4\x87\x98\xfc\xdc\x82\x44\x44\x35\x9f\xea\xd0\xd5\xab\x31\xbd\x17\x6b\x25\x14\x26\x69\x2c\xf8\x9a\x86\xc7\x75\xdf\x6a\xb1\xeb\xad\xfe\xac\xbc\x96\xe5\x65\x50\x30\x68\xb2\xaf\xaa\x36\xd4\xa6\x95\xb4\xc9\x10\x3e\x6d\xf8\xe6\xb1\x17\x5f\xa7\x95\x84\x19\x6e\x25\xa8\x02\xb8\xf9\x85\xbd\x55\x00\x73\x91\xaa\x5b\x0f\x8e\x6a\x87\x84\x5e\x0b\x02\x2a\xeb\x59\xac\xaf\x71\x23\xe6\x87\x4b\x26\xdb\x5c\xd3\x0f\x43\x3e\x63\xd3\x6b\x14\xbe\x17\xf0\xbd\x98\x8a\xef\x05\xbc\x15\xe0\xad\x00\x6f\x05\x78\x2b\xc0\x5b\xa1\x77\x6f\x05\x60\x70\x90\x51\x90\x51\x90\x51\x90\x51\x90\x51\x90\x51\x90\xd1\x9d\x97\x00\x60\x05\x60\x05\x60\x05\x60\x05\x60\xc5\x0e\x58\xb1\xf3\x0b\xf2\x65\xef\xd5\xc0\xff\xe7\xf6\x18\xd4\x79\x76\xf9\xdb\xc3\xa6\x22\x36\x78\xb5\x60\xb0\xfe\xd5\x4b\xce\x32\x82\x55\x9e\x63\x43\x07\x20\x0d\x12\x0c\x22\x21\xdf\xe8\x12\xf2\x85\x49\xcb\x98\x4b\xa9\x22\x8c\xd7\x24\x5a\xea\xe3\x2d\x33\xad\x81\x26\x41\x29\xf6\xaa\xde\xa1\x87\x80\xa2\x09\x04\x14\x21\x0b\x0a\xb2\xa0\x54\x34\x66\xd0\x82\xd9\x38\xd2\xa0\x34\x6a\xf0\x4f\x07\x1b\xac\x1c\x63\x87\xd2\xe2\x29\xc9\xbd\x24\x6e\x0c\x53\xee\x7d\xc5\x5e\x92\xbb\x45\x67\xca\x3f\x51\x0a\x97\xba\xc2\x55\x31\x6d\x4b\xcf\xc2\xd5\x48\xf2\x63\x40\xa4\x2a\x4e\xf2\x60\x45\x2a\x44\x24\x9f\x51\x44\x32\x42\xaf\x10\x7a\x85\xd0\x2b\x84\x5e\x41\x1b\xdc\xb5\x8b\x06\x19\xbc\xd0\x8f\xa6\x85\xd8\x8b\x9d\xb1\x17\x03\x55\xbc\xac\x2d\xba\x9b\x9a\x62\x65\x49\xab\x9e\xde\x54\x55\x4a\xac\xdd\x30\x8b\x82\xfc\x21\x7e\x90\xf3\xd4\x42\xfe\xc4\x9d\x74\xce\xd8\xad\xfc\xd7\xfc\x7e\xcd\x3d\x32\xd4\x25\xcc\xf1\xb3\x24\x15\x71\x7e\xab\xe8\x5a\x04\xbe\xf7\x20\xd8\xcc\xb6\x74\x26\x85\x47\x23\xf0\xcc\xd9\x9d\xcf\x83\x40\x3b\x3f\x90\x48\xc2\x7d\x25\x05\x5d\xff\xdc\xe4\x98\xa6\x36\xf6\x24\x2c\xd8\x41\xb3\xb2\xf6\xc2\x0c\x9f\xec\x29\xbb\x55\x23\x26\x2f\x88\x28\x31\xa3\xa3\xfd\x8b\xa8\xb0\x83\xc3\x83\x82\xd8\xfc\xdc\xf1\x40\xc9\xc6\x4c\x97\x6a\x0f\xfb\x16\x83\xc1\xed\x44\x75\xec\x7a\xe1\xcc\xc5\x42\x76\x3b\x1b\x80\x4a\x76\xd5\x7d\x06\x38\x47\x25\xbb\x76\x2a\xd9\x35\x11\xad\x2a\x0b\xd8\x4d\x0a\xf7\xa3\x76\x1d\xec\xd4\xe7\x87\xfe\x51\xbb\xae\xcd\x75\x83\xda\x75\x50\x8c\xa0\x18\x55\x0d\xe4\x88\x8a\xd7\xb5\xa0\x1a\xfd\xff\xec\xfd\x5b\x6f\xe3\x48\xb2\xf7\x8d\xde\xd7\xa7\x48\x78\x2e\x54\x85\xb1\xe5\xe5\xc2\x0b\x4c\xa3\x1a\xfb\xc2\x5d\x87\xd9\xd5\x6b\x1a\x65\x54\x35\x7a\xdd\xb8\xf1\xac\x14\x99\xa2\xb9\x4d\x65\xf2\xe1\xc1\x6e\xcf\xc6\x7c\xf7\x17\x19\x79\x20\x29\x51\x12\x25\x53\x12\x25\xfd\xe7\xa6\x3d\x25\x32\x99\xe7\x8c\x88\x5f\x44\xc6\xae\xb2\xd7\x6d\x67\x14\x6b\x4d\x5a\x77\x52\xb2\x1b\x5c\x35\x21\xaf\x9d\x87\xbc\x36\x20\xb1\x08\xa7\xb7\xff\x05\xae\x9a\xb5\xb2\x4f\x4a\xdc\xd8\x75\xca\xba\xc3\xfa\x3d\x5e\xe7\x01\x4f\xea\xbe\x8e\x3b\x82\x79\xf4\x99\xc5\xa4\xbb\xbd\x50\xbd\x1f\xd4\x04\x6c\x41\x6b\x57\x74\x59\x28\x3d\x0e\xb1\x8c\x68\x61\x53\xb7\x9d\xe1\x92\xee\x0b\xad\x54\xdd\xb9\x64\x65\xcf\xcd\xcb\x7d\xb2\x95\xc5\x4f\x83\xaa\xb4\xb7\x19\x54\x05\x54\xa5\x1f\xaa\xf2\xaa\x33\x6e\x1d\x5e\x59\x3c\xe4\x8e\x52\x4f\x07\x63\x81\xce\x7e\x7e\x3a\x3b\x18\x4b\x9f\xf3\x06\x8c\x05\x56\x1a\xa8\x48\x3b\x55\x91\xfa\x83\x2c\x3b\x55\x92\x76\x45\x59\x5e\x69\xad\x58\x87\x5b\x4e\x44\x96\x7b\xcd\x6a\x81\x00\x07\x01\xee\x88\x04\xb8\x01\xc9\x49\x38\xce\xfd\x2f\x3b\x3d\xce\x0f\x44\x5d\x20\x80\xf4\x8a\x5d\x76\x20\x7e\xbc\x61\xbd\x70\x17\x13\xd3\xb6\x7b\xf0\x42\xdf\xd9\x15\x79\x31\x8d\xc0\x46\x04\x98\x8a\xa0\x16\x04\xb5\x00\xbf\x00\xbf\x1c\x10\xbf\xbc\xea\xa4\x5b\xcb\x5f\x16\x8f\xba\xa3\x54\xda\x01\x60\xa0\xbf\x9f\x9f\xfe\x0e\x00\xd3\xe7\xbc\x01\x80\x81\xc5\x06\x8a\x52\x5b\x47\x0e\x8f\xbf\x1c\x63\x90\xcb\x6b\x6d\x16\x6b\xf9\xcb\x89\xc8\x72\x08\x7a\x81\xfc\x76\x1e\xf2\xdb\x80\xc4\x24\x9c\xe6\xfe\x17\x04\xbd\xd4\xca\x3e\x29\xf1\xe3\x18\x83\x5e\xf4\xb9\x1f\x07\x3c\x17\xc5\x6e\xb1\x8a\x49\x19\x9b\xd9\x44\x79\xee\xea\x59\x35\x65\xba\x71\xec\xbb\xa9\xc5\x6a\x11\x45\x17\x61\xe4\x93\xea\xf1\x2f\x2a\xbb\x4d\x12\x2f\xaf\x0c\x82\xaa\x2c\x7d\xe1\x4c\x13\x60\x55\xa3\x85\xfc\x57\x2d\x8f\xf5\xb2\x35\xb4\x2e\xa0\x1d\x13\x1c\xba\x8d\x97\x52\xf1\xfd\xa2\xd4\xe3\x8c\x67\x8f\x79\x65\x10\x32\xeb\x9c\x32\xfc\xe6\x56\xa0\x7a\x49\x05\xbb\xbf\xf8\xe5\xdb\xb7\xff\xfe\xed\xf6\xfb\x7f\xdf\x5f\x54\x39\x76\xcd\x6d\xbb\x8a\xe4\xe1\x78\x96\x26\x82\x92\xe9\x4e\x7c\xa9\x33\xfe\xc2\xe2\x48\x9a\xbb\xce\xe3\xdc\x18\x34\xb4\xe8\x54\x3d\xc2\x33\xc1\xea\xb9\x48\x4d\xe2\xda\x51\xce\xc2\x38\x0f\x32\xa1\xeb\x5c\x65\x42\xaf\x89\xdf\x36\x81\x6e\xb3\x20\x9f\x10\x93\x17\x26\x2f\xac\xbb\x82\x32\x96\x85\xc8\x9e\x78\x72\xc9\xa4\xca\xa8\x5a\x94\x71\xd5\x67\xe1\x9d\x4f\xe4\x4c\x69\xf2\x5f\x98\x6b\xb3\xcd\x78\xec\xf3\xad\xe6\x5a\x1c\x57\xb2\xba\x52\xdd\x26\xe6\xb5\xf9\x44\x1b\xb7\x7b\xeb\x5f\xa9\x0b\x42\x9f\xf7\x7f\x2a\x78\x51\x66\x82\x45\xbc\x10\x6c\x6e\x20\x6c\x49\x42\x6a\x59\xd2\x24\xb8\x4d\x63\x53\xb9\x65\xc5\x6e\x88\x66\x5a\x86\xbf\x9d\xd3\xb4\x99\x7f\x7a\xc0\x4e\xbf\xd7\x73\x24\x1b\x0b\x63\xed\xfa\xfb\x5c\x14\x26\x21\xb1\x4d\x72\xad\x3b\xbc\x91\x1d\xd9\xdf\x53\x6e\x3a\x65\xcc\x7e\xc4\x32\x10\x73\x37\xdb\xdb\xd1\xb4\xb2\x77\x33\xf5\x72\x23\xfb\xb4\xaf\x88\x79\x95\x0a\xe7\x5a\x19\x7c\x8a\x55\x99\xdb\x94\xdb\x2e\x17\xae\x5e\x0d\x55\x42\x64\xf3\x5b\xb5\xfe\xd8\x5b\xf1\x57\x20\xd2\x2a\x0b\xa8\x29\x52\x4d\xfd\x47\xde\xf9\xab\xb7\x6d\xfd\x4c\x5a\x6e\xc2\x8f\x7c\xbe\x2a\xb1\x5e\x59\xc2\xcc\x06\xaf\x4d\xfa\x29\x54\x99\x09\xe6\x5f\xd3\x6f\x90\x92\x22\x32\x66\x14\x52\x97\x35\x3b\x2c\x05\xa5\x73\xff\x2b\x8d\x6d\x4a\x82\xb7\x91\x90\x22\x23\xac\x34\xd5\x9a\x69\xa1\xd8\x34\x9e\x16\x42\x48\x36\x8b\x65\x59\x88\xfc\x1d\xa3\x54\xe8\x81\x92\xd3\x38\x72\x99\x0c\x8c\xe6\xe4\xd2\x9a\x57\x93\xb3\xb9\x8a\xcc\x81\xe6\x33\xed\xfe\x3f\x37\xff\xc5\xbe\xdb\x1b\xc7\x3f\xeb\x2a\x88\xd0\xea\xbd\x85\x8a\x4c\x05\xed\x93\xbe\x45\x85\x7a\x14\xd2\x37\xd9\xa6\x5e\x96\x42\x84\x73\x19\x9b\x13\x4a\xc7\x1e\x17\x46\x7f\xcb\x44\x5e\x70\x93\xe6\x3b\x36\x89\x74\x7d\x76\xea\xc5\xf4\xdc\x63\xf6\x4d\x7f\xfa\x39\x76\x97\xe6\xdb\xaf\xe8\x91\xb1\xdb\x80\xb1\xcc\xda\xa4\xc8\x26\x23\xb5\x57\x34\xa9\x86\x2e\xed\x73\x4d\x01\xd5\x8d\xa5\xc6\xad\xed\x16\x2a\x97\x2a\x4c\x56\x61\x37\xb9\x29\xab\xfb\xa3\x78\x31\x57\xc2\xfb\x7f\x4e\x78\xa1\xbf\x5f\xa5\xa8\x7e\x7e\x88\x4d\xf6\xef\x58\xd6\x3a\xc4\x3f\xef\x27\x72\x2d\xa7\x73\xce\xae\xbc\x1c\x67\x6e\x9d\xcd\xc4\x86\x99\xb9\xe7\x3a\x63\x31\x29\xb7\xbd\x5e\x9e\x04\x1a\xd2\x82\xf5\x84\xd4\xff\x35\x83\xf2\x28\x5e\x6c\x9a\x73\x5f\xf0\xfd\x85\x6b\xf2\xfd\x85\xcd\x62\xbe\x3c\xed\x39\x6d\x10\xcd\xc4\xe7\xfe\x8c\xa0\x91\xa3\x09\xe0\xb2\x3b\xd7\x7a\xcf\x74\x42\x3d\x11\xac\x5d\x36\xfe\xe4\xb0\xb7\xea\xdb\x11\x33\x96\x98\x82\xcd\xe2\x3c\xa7\x13\xa1\x61\x0e\xda\x74\xe7\x75\x53\xaf\x1f\x2c\xde\x6d\xb7\xbd\x65\xb9\xa8\x6e\xda\xd7\x6b\x23\x8b\x83\xc2\x67\x29\xd6\xdb\x93\x6f\xbb\x4f\x2c\xf1\x62\xc7\xc9\x40\x8a\x66\x96\x0f\xf1\x24\xb2\x97\xe2\x21\x96\xd1\xa6\xcd\xa7\xd2\x7e\xd8\xda\x1c\x4d\x1f\x24\x7c\x22\x92\xde\xfa\x80\x4a\x3b\x44\x1f\x98\x1c\xf5\x64\x36\x9b\xf1\xbf\xe2\x59\x39\x63\xb2\x9c\x4d\x44\x66\x5a\x6f\x75\x0f\xd3\x3f\x94\x73\x99\x60\x61\x95\xe1\x9f\xb6\x61\x3a\x88\x63\x5d\x0b\x93\x76\x62\x71\x77\xa3\x1c\xe0\x0f\x82\xfd\xaf\x9b\xeb\xff\xeb\x32\x5f\xc8\xaa\xbf\x5d\x52\x0a\x93\x34\xc6\x2c\x40\xda\x89\x02\x2e\x5d\x6a\x99\x6a\x2f\xcd\xf9\x4c\x6f\x2e\x71\x11\xfb\x43\xd7\xd4\x52\x8b\x07\xa2\xda\x2d\xf5\xa7\x4d\x5b\xf4\x30\x69\x21\xb5\x28\x8c\xb8\x66\xda\x6e\x0e\x5b\xd3\x36\xf1\x6c\x12\xba\xcb\xba\x39\x55\x6f\x74\x33\x55\x4a\x2a\xc6\xb4\xf2\x6d\x99\xea\x8f\x99\xe4\x3a\xfa\x5f\xde\xb9\xdd\xcd\x48\x84\x9c\x36\x74\xf7\x76\x3d\x47\xff\x34\x4e\x0a\xa1\xcf\x38\x7d\xee\xe8\x6d\x24\x68\xca\xb0\x0d\x29\xc4\x18\x9f\x03\xef\x57\xd5\x3c\xa3\x4c\x8a\x8c\x42\x64\xb3\x58\x0a\x7f\x9a\x37\x84\x22\xda\x4b\x9f\x78\x9c\x68\xa9\xb1\x92\xcf\x75\x93\x83\x07\xa5\x72\x4a\x8b\xad\xcb\xb1\x7b\xa8\x1d\x0b\xdd\x2d\x3c\x8b\x4a\x12\xdb\xb9\x0c\xdd\x09\x45\x9d\xa4\xdb\x66\xeb\xe3\x8b\xae\x7a\xf7\xeb\x94\xf9\x29\x55\x09\x23\x4e\xbe\x99\x6b\x40\x9c\x33\x31\x4b\x8b\x97\xa6\x20\xe6\xa5\x6f\x5e\x68\x99\x65\x55\x83\x56\x1d\x06\xf1\x74\xee\x28\x30\xa7\x87\x9f\x97\x3e\x4d\xbd\x3d\xee\xaa\x1c\x37\xb5\x0c\xfa\x74\xa2\x94\x64\x63\xf7\x75\xf7\x07\x9b\x17\xf9\x0a\xc5\xe2\x3c\x2f\xad\x12\x10\xcb\x28\x11\xd5\x0a\xf1\x52\x86\x9b\x70\x57\xce\xee\x4c\xd9\xf2\xdd\x27\x37\x3b\x69\xdd\x21\x4b\x3a\x46\x5e\x8a\xb0\xf5\xb8\x25\x5d\xa7\x9c\xe4\xfa\x61\x59\xf8\x16\x84\x35\x32\xfd\xbb\x55\x53\x72\x35\x13\x45\x3c\x13\xba\xed\x53\x91\x65\x94\x04\xc8\xe4\x56\xaf\x09\x10\x95\x80\xa1\x47\x54\xc8\xbc\xcc\x84\xbf\xa3\xde\x8a\x48\xce\xa8\x6e\x7a\xcd\x34\x99\x16\x26\x09\x43\x2c\x9f\xf1\x24\x11\x19\x0b\x1e\x4a\xf9\x68\x12\xda\x33\xbd\x6d\xb2\x84\x67\x91\x1b\x68\x5a\xf1\xa6\x78\xa3\x91\xe5\x42\xd0\xc4\x4b\x55\x9e\xc7\x7a\xc2\xd9\x6e\xa3\x09\x57\x5f\x5f\xc6\x0d\x2a\xac\x74\x32\xfa\x8e\x08\xcd\x78\x90\xf8\x6d\x0f\x78\x3b\x87\xad\x9b\x1f\xd5\xfa\x99\xe7\x0e\xf8\x38\xbd\x53\xf7\xc9\xa2\x84\x63\xe4\x7e\x9e\xeb\x01\x0e\xca\xc4\xe4\x66\xaa\xa6\xcd\xc6\xbb\xbf\xee\xa4\xf6\x5d\xbf\x2d\x39\xd5\x19\xf9\xf8\x75\x6b\x0d\x91\xba\x6a\xb7\xb1\x22\xb4\x59\xfd\x7a\x09\x5e\xea\xdd\xf5\x39\x77\x68\xc7\x0c\xb6\x0a\x82\x32\xf3\x0b\x8b\x17\x8c\x7c\xe9\xf4\x68\x66\xf5\x39\xc2\xbd\x64\xd8\x3c\xeb\x5d\x59\x5e\x8a\x9c\x88\x28\x96\xd2\xd2\xb8\x87\x38\x2f\x54\xf6\x32\x66\x73\x55\xd3\xa7\xa7\x9e\x43\x1f\xd8\x95\xde\xa0\xc8\x79\xa3\x36\x04\x8e\xfe\xd5\x76\x20\x2a\x3f\x13\x33\x45\xce\x7d\x2a\xe3\x91\x60\x13\xae\x4f\x42\x25\xd9\xff\x2d\x55\x56\xce\xae\xc8\xc7\x7d\x9a\xf0\xe8\x67\x53\x6c\x5c\x8c\x72\xf6\x5f\xb6\xdc\x67\xc1\xf2\x78\x66\xfc\x51\x68\x03\x7f\xa6\xa9\x2e\x58\x50\x66\x99\x90\x45\xf2\xc2\x1e\x38\x25\x8f\x63\x01\x0f\x1e\x04\xed\x4a\x7e\x73\xb4\x25\xd2\xf9\xad\x98\x54\x92\x0e\xbd\xd6\x2a\xf3\x82\x25\x42\x8b\xd2\x5c\xf7\x8a\xc8\xc9\x43\x36\x8a\x9f\xb4\x26\xf4\xb4\xe9\x24\x9a\x13\xc7\xf7\x39\x9b\x7e\x8f\x67\x42\xef\xd7\x4e\x5f\xd7\xe3\x75\x5d\x4d\x26\xbb\x67\xd2\x9a\xcd\x4d\x72\x2a\xa7\x00\xbb\x63\x9a\xa6\x5c\x26\x22\x9e\x85\x84\x0c\xf5\x34\x92\x2f\x8c\x07\x45\xfc\x14\x17\x2f\x7a\x63\x8f\xa5\xfb\x7f\x9b\xf6\x4c\x61\xaa\xd7\x96\xd4\x6e\xd7\xbb\xc6\xff\x18\xbd\x49\x65\xd5\x4a\x52\x36\x3d\x97\x7e\x6e\x42\x27\x8b\x19\x37\xe3\x11\x6d\x67\x5c\xf1\x20\x66\xe6\x2c\x31\xf6\x6e\xea\x90\x30\xbc\xb4\xbb\xf5\xa5\x7d\x76\xa6\x9e\x48\x20\xa9\x69\x52\xec\x87\xc9\x75\x32\xaf\x9e\x6d\xda\x69\x2d\xe6\xf9\xad\xcd\x59\xf6\xaf\x3f\x57\x50\x98\x7a\xac\xcb\x01\x31\x4c\x37\x57\x91\x8a\xc3\xd4\x9e\x07\x88\x99\xef\xf9\xe1\x81\x98\xda\x70\x81\xc4\xb4\x3c\x36\x14\x0f\x31\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x18\xa0\x98\xb6\xd9\x04\x14\xb3\x74\x9d\x01\xc5\x74\x43\x31\xf4\xb9\x6b\x7d\xde\x66\x4a\x9f\x76\x5a\xdd\xd6\xd5\xde\x2d\x97\xb1\xe2\x8e\x0c\xe3\xa7\x38\x2c\x79\x52\x1f\x25\xee\x55\x9a\x8f\xbe\x56\xdf\x6d\xad\xc6\x2c\xf4\x39\xfd\x3f\x78\xe1\x73\x44\xc5\x8d\x2a\x4b\x56\xc3\x34\xe1\x71\x0e\x8b\x65\x5e\x08\xde\x38\x25\xe6\x61\xcf\x73\x75\xc3\xcb\xe2\xd7\xff\x15\xe7\x00\x3f\x0b\x43\x3b\x18\xf0\xb3\xe2\xd6\x1a\xda\x0e\x3e\x6b\x85\xe7\x1c\x29\x10\x0d\xde\xee\x51\xd0\xe2\x82\x01\x11\x02\x11\x02\x11\x02\x11\x02\x11\x02\x11\x02\x11\x02\x11\xea\x69\xb7\x05\x11\x02\x11\x02\x11\x02\x11\x02\x11\x02\x11\x02\x11\x02\x11\x02\x11\x02\x11\x02\x11\x02\x11\x02\x11\x5a\xdb\x57\x9d\x89\x50\xc8\xc5\x4c\x8b\xcf\x3b\x0e\xd0\xe9\x06\x82\x3e\x51\x65\x7e\x88\x62\x9f\xfc\xc7\x7f\x14\xd8\xa7\x6d\x20\x81\x7d\x80\x7d\x68\xc9\xf8\x75\x02\xda\x03\xda\x03\xda\x03\xda\x03\xda\x03\xda\x03\xda\x03\xda\xd3\xd3\x6e\x0b\xda\x03\xda\x03\xda\x03\xda\x03\xda\x03\xda\x03\xda\x03\xda\x03\xda\x03\xda\x03\xda\x03\xda\x03\xda\xb3\xb6\xaf\xba\xd3\x1e\x91\x26\xea\x45\x0b\x51\x83\xc0\x3d\xbe\x36\x7b\xe5\x3d\xfe\xab\x00\x3e\x6d\x43\x09\xe0\x03\xe0\x63\x80\x8f\x5f\x28\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x3d\xed\xb6\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x20\x3e\x6b\xfb\xaa\x33\xf1\x91\x9e\x6c\x5c\xff\xff\xfd\xdf\xff\xc1\x45\x70\x2d\x60\xc8\x43\xa0\xb0\xfd\x4a\x38\xa0\x21\xa0\x21\xa0\x21\x5c\x01\x07\x44\x04\x44\x04\x44\x04\x44\x04\x44\x04\x44\x04\x44\x34\x60\x3c\x02\x44\x04\x44\x04\x44\x04\x44\x04\x44\x04\x44\x04\x44\x74\x8c\x88\xc8\xb6\x5a\x57\x80\x86\x92\x97\xc5\x03\xcb\x03\x95\x8a\x4b\x96\x97\x01\x59\xf7\x49\x5f\x11\x7c\x66\xac\xbd\x69\xa6\xa8\x97\xdb\x9a\x96\xf2\xe2\xa1\xbd\x65\xde\x32\xda\xfc\x59\xcf\x3f\x2d\xe9\xdb\xda\xef\xf1\xbc\x03\x1b\x03\x1b\x03\x1b\x6b\x9f\x4d\x60\x63\x4b\xd7\x19\xd8\xd8\x6e\xd8\x98\xf9\xfd\x3f\x7b\x40\x64\x75\x2e\x26\xdd\xa9\xaf\xa6\xec\x31\x96\xe1\xae\xf8\xd8\x65\x25\xee\x93\x4a\x63\x45\x43\xad\x31\x54\x7a\xcc\xa8\xa1\xff\xd6\xca\xee\x81\xae\x81\xac\x81\xac\x1d\x05\x59\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x03\x55\x3b\x0e\xaa\x46\x38\xcd\xf6\xc0\x3a\x9b\x43\x17\x72\x36\x14\x68\x06\x5a\x08\x5a\x08\x5a\x08\x5a\x08\x5a\x08\x5a\xb8\x37\x5a\x88\x04\x5a\x15\xd9\x6b\xa4\xd2\x02\xd4\x03\xd4\x3b\x0a\xa8\x87\xd4\x59\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\x83\xe7\x79\xe0\x5e\xe0\x5e\xe0\x5e\xe0\x5e\xe0\x5e\xe0\x5e\x07\xe0\x5e\x03\x09\x8e\xeb\x97\x7d\xed\x39\x26\xae\x8d\x10\x80\x9a\x81\x9a\xcd\x95\x3a\x20\x6a\x06\x62\x06\x62\x06\x62\xe6\x7e\x04\x31\x03\x31\x03\x31\x03\x31\x03\x31\x03\x31\x03\x31\x03\x31\x03\x31\x03\x31\x03\x31\x03\x31\x03\x31\x1b\x24\x31\xab\x47\xc0\x2d\x31\x35\x20\xf0\xad\xbd\xcd\x00\x80\x00\x80\x00\x80\x5d\x27\x11\x00\x20\x00\xe0\xa9\x02\x40\x91\x26\xea\x45\xcb\xc8\x83\x88\x7c\xf3\xb5\x39\x50\xe8\x9b\xff\x3e\x62\xdf\x40\xf1\x8e\x86\xe2\xed\x21\xf6\xcd\x2f\x0c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\xbc\x9e\x76\x5b\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\xbc\xb3\x43\x79\x60\x5f\x60\x5f\x60\x5f\x60\x5f\x60\x5f\x60\x5f\x87\x60\x5f\x43\x89\x7e\xeb\x97\x7f\xed\x3b\xfc\xad\x0d\x12\x80\x9c\x81\x9c\xcd\x95\x3a\x20\x72\x06\x6a\x06\x6a\x06\x6a\xe6\x7f\x04\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x1b\x24\x35\x6b\x04\xc0\x2d\xb1\x35\x20\x02\xae\xbd\xcd\xa0\x80\xa0\x80\xa0\x80\x5d\x27\x11\x28\x20\x28\xe0\x89\x52\xc0\x4c\x10\xef\x19\x48\xee\xb7\xef\xa6\x36\x07\x4b\xfe\x56\x7d\x1f\x11\x70\xe0\x78\x47\xc3\xf1\x76\x1f\x01\x57\x2d\x0c\xb0\x3c\xb0\x3c\xb0\x3c\xb0\x3c\xb0\x3c\xb0\x3c\xb0\x3c\xb0\xbc\x9e\x76\x5b\xb0\x3c\xb0\x3c\xb0\x3c\xb0\x3c\xb0\x3c\xb0\x3c\xb0\xbc\xb3\x63\x79\x60\x5f\x60\x5f\x60\x5f\x60\x5f\x60\x5f\x60\x5f\x87\x60\x5f\x03\x89\x80\xeb\x99\x7f\xed\x39\x02\xae\x15\x12\x80\x9c\x81\x9c\xcd\x95\x3a\x20\x72\x06\x6a\x06\x6a\x06\x6a\xe6\x7f\x04\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x03\x35\x1b\x24\x35\xab\x47\xc0\x2d\xb3\x35\x20\x02\xae\xbd\xcd\xa0\x80\xa0\x80\xa0\x80\x5d\x27\x11\x28\x20\x28\xe0\x89\x52\xc0\xbc\xe0\x85\x98\x96\xc9\x40\x42\xe0\x7e\xd8\xea\x1c\x2c\x06\xae\x56\x01\x04\xc1\x01\xe5\x1d\x0d\xca\xdb\x7d\x10\x5c\x6d\x65\x80\xe7\x81\xe7\x81\xe7\x81\xe7\x81\xe7\x81\xe7\x81\xe7\x81\xe7\xf5\xb4\xdb\x82\xe7\x81\xe7\x81\xe7\x81\xe7\x81\xe7\x81\xe7\x81\xe7\x9d\x1d\xcf\x03\xff\x02\xff\x02\xff\x02\xff\x02\xff\x02\xff\x3a\x08\xff\x1a\x48\x18\x5c\xdf\x0c\x6c\xcf\x71\x70\xed\x9c\x00\xf4\x0c\xf4\x6c\xae\xd4\x01\xd1\x33\x90\x33\x90\x33\x90\xb3\xea\x47\x90\x33\x90\x33\x90\x33\x90\x33\x90\x33\x90\x33\x90\x33\x90\x33\x90\x33\x90\x33\x90\x33\x90\x33\x90\xb3\x41\x92\xb3\x7a\x24\xdc\x52\x63\x03\x42\xe1\xda\xdb\x0c\x14\x08\x14\x08\x14\xd8\x75\x12\x01\x05\x02\x05\x1e\x3b\x0a\x44\xd6\xb7\x3f\x6e\x9a\xb9\xde\xbe\xa8\xec\x36\x49\x3c\xc3\xcb\x01\xee\x00\xee\x8e\x02\xdc\x21\xf7\x1b\xd8\x1d\xd8\x1d\xd8\x1d\xd8\x1d\xd8\x1d\xd8\x1d\xd8\x1d\xd8\x1d\xd8\x1d\xd8\x1d\xd8\x1d\xd8\x1d\xd8\x1d\xd8\x1d\xd8\xdd\xf0\xd9\x1d\x88\x0f\x88\x0f\x88\x4f\xfb\x6c\x02\xf1\x59\xba\xce\x40\x7c\x36\x21\x3e\xb8\xe5\x30\xcd\xff\xb8\x99\xbb\xdb\x10\xd0\x67\x7e\x30\x01\x7d\x00\x7d\x10\xb1\x05\xea\x03\xea\x03\xea\x03\xea\x03\xea\x03\xea\x03\xea\x33\x44\xe2\x01\xea\x03\xea\x03\xea\x03\xea\x03\xea\x03\xea\x03\xea\x03\xea\xd3\x6c\x0d\xa8\x0f\xa8\x0f\xa8\x0f\xa8\xcf\x39\x52\x9f\x52\xaf\x8b\xc2\x56\x9f\xac\xe9\xb1\xba\xde\x8a\xf8\xec\x9a\x74\x74\xa1\x49\x91\x28\x58\x2c\xa7\x2a\x9b\xf9\xf9\xcd\x99\x31\x5f\x2f\x07\x3e\x91\x28\x6e\x1b\xdd\x70\x7b\xf7\xf5\x9f\xf3\xef\x1c\x8a\xef\x1c\x2d\x76\xf1\x9d\x78\xec\xd0\xa5\x31\x35\x6a\xef\xbd\xa9\x7f\xbb\xcb\xaa\x7a\xba\x39\xee\x85\xd5\x50\x9e\xcc\x9e\xb9\xc9\xaa\xfa\xe3\xe6\xf6\xee\xeb\xf7\xb6\x37\xb1\xb6\x36\x5f\x5b\xae\x23\x29\xe7\xde\x49\x2d\xb1\x26\xe1\xdc\x66\x95\x91\x31\x3b\x13\x4f\xb1\x78\x6e\x38\x2f\x6c\x81\x18\x49\x1a\xb6\x1a\xd6\x25\xb9\x29\x04\xbc\x70\x02\x79\xc3\x86\x5a\x67\x7a\x13\xc1\x52\x7d\xec\xe7\x5a\x19\x61\xb7\x92\xc5\xd2\x10\x0c\x95\xb1\x52\x7a\x08\x12\xb2\x30\x7b\xf9\x5e\x4a\x16\xc6\x99\xd0\xc2\x95\xf0\x96\x75\x92\x50\xb5\x3e\x6c\xd1\x82\x9b\x95\xd6\x90\xcb\xa6\x65\x46\xc6\x93\x34\x53\x81\xc8\x73\x2b\xc4\xd7\x6c\x40\x63\xf6\x07\x7d\x91\x8c\x52\xa4\x69\x6a\x09\xfe\x36\x49\x3e\x90\x5a\x1a\x66\x2f\x2c\x2b\x25\xcb\x0b\xae\xa5\x22\xa7\x8b\xdb\xe2\x44\xb8\xa1\xb4\x62\xda\xb1\x4f\x99\x97\x6c\x28\xbf\x71\xc9\x23\x91\x19\x6b\xa0\xb9\xfb\x22\xcf\x55\x10\x93\x7a\xeb\xed\x6e\x9c\x0c\xa6\x2a\x63\x7a\xb2\x14\x2f\x5e\xdf\x9f\xf1\x47\xdd\x6f\xc5\x83\xc8\x85\x93\x0f\xb5\xac\xec\x08\x14\x41\x98\x89\x60\x24\x11\x93\x8d\x4d\x65\xec\xe6\xfd\x4f\xfa\xd9\x8c\x07\x84\xca\x12\x25\x23\x23\x0d\x92\x1d\x2c\x50\xb2\xe0\xb1\x34\x8a\x28\x6d\x95\xd5\xb3\x84\x0f\x2c\xc8\x63\x93\x17\x46\x8b\xe4\xc3\xf5\x75\xa4\x12\x2e\xa3\xb1\xca\xa2\xeb\xf4\x31\xba\x2e\x65\x1c\xa8\x50\x5c\xff\xed\x6b\x7e\xa7\x4b\xd9\xca\x38\x6d\x3b\x66\x9f\x03\x72\x2c\x0a\xba\x13\x86\x2b\xc7\x03\x95\xf7\xec\xd3\x64\x2c\x63\x8c\xb3\xdf\xf5\x46\xf4\x9d\x36\xa2\x15\x27\xa5\x79\x7c\xfe\xb0\x5c\xf2\xee\x92\x3d\x8c\xcd\x6f\xeb\xa6\x4f\x27\x2a\x7c\x99\x3f\x91\x5c\xa7\xb6\xfd\xb6\xe2\x1e\x97\x57\x9d\x65\xe3\xb9\xbd\xfa\xe9\x66\x5c\x6f\xdf\xf2\xf3\xab\xb5\xbb\x21\x2f\xf4\xda\xc7\x97\xcd\x5a\xaf\x97\x11\x3e\x1a\xcb\xef\xf0\xaa\xfe\x7e\x6d\xd5\x6f\x83\x40\xa4\x03\xac\xfb\x31\x8a\x66\xeb\x9d\xcf\x68\x6b\xed\xc3\xef\xac\x4d\xd2\x6b\x77\x44\x6b\xdf\x36\x3b\x38\xa2\x6d\x20\x60\x4e\x44\xc1\xcf\x5d\x97\xa3\x3e\x80\x42\x57\xff\x05\x0a\x9d\x1f\xab\xf9\x5d\x83\x66\xcb\xeb\xb4\x3a\xb3\xe8\xa0\xda\x41\xb5\x83\x6a\x07\xd5\xee\xa8\x55\x3b\xda\xca\x4e\x5c\xbf\xa3\x36\x42\xc9\xdb\xbd\x92\xb7\x49\x47\x0f\x51\xd3\x7b\x45\xfd\x87\xa1\xee\x6d\xdd\x80\xa3\x95\xde\x8e\x58\xf1\x9b\x6b\xca\x3a\xed\x4f\x77\x3c\xc8\xb8\xef\x05\x80\x71\xf7\x0b\xc0\xf8\x45\x63\x7d\x74\xd7\xed\x16\x96\xd4\x59\x62\x71\xdf\x0b\xa0\xe2\x8d\xff\xc1\x88\x52\x8d\x55\x7d\x9a\x6c\x04\xc5\xdb\x96\xd8\x92\x6c\xae\x89\x0a\x78\x92\x97\xe4\x52\xcc\x83\x40\xe4\x39\x8c\x2b\x30\xae\xc0\xb8\xb2\xbf\x01\x41\xe6\x0e\x58\x95\xbc\x55\xe9\x5f\x7a\x3b\xfe\x61\xb6\xe3\x5b\xda\x8e\x37\x30\x31\xd5\x64\x8a\x2a\xb9\x74\x97\x12\x8f\xd8\xe6\x54\x1d\x75\x4f\x37\xe3\xa5\x6d\x5d\x2e\x09\xb4\x8e\x0e\x24\xaf\x9d\xf5\xf7\x40\x2c\x50\x3d\x37\xe3\x60\x86\xa8\x5e\xdb\x71\x84\x82\xf0\x7e\x2d\x51\xf3\x72\x75\xbb\x21\xaa\xc3\x8e\xbb\xbd\x3b\x42\x9b\x68\x9f\x8b\x64\x0a\x11\x1e\x22\x3c\x44\x78\xf0\xd1\xc1\x48\xb2\x3f\x44\x32\xed\x41\x90\xed\x50\xcc\xa9\x48\xaf\xcb\x9a\x0a\xe1\x75\x20\xdd\x3d\x44\xd9\xf5\xd5\xad\x18\x86\xe8\xfa\xca\x66\x40\x72\xed\x45\x72\x5d\xbf\xd9\xee\x4c\x70\xcd\xca\x44\x40\x6e\x85\xdc\x0a\xb9\x15\x72\xeb\x50\xe4\xd6\xef\x7a\x4f\x7a\xb5\xd8\xba\xa4\x94\x13\x94\x5a\xeb\x2d\x85\xd0\x3a\x8c\xde\x1e\xb8\xcc\xba\x55\x23\x06\x27\xb2\x6e\xd1\x0a\x48\xac\x7d\x4b\xac\xed\xfb\x6c\xcf\x02\x2b\xac\xac\x90\x56\x21\xad\x42\x5a\x1d\x8c\xb4\xda\x83\x85\xf5\x4c\xac\xab\xb0\xac\xee\x4d\x48\x3d\x7e\xab\xea\x09\x58\x54\x61\x4d\x3d\xb4\x6c\xba\x3f\x4b\xea\xb9\x5e\x48\x50\x3b\xc6\x70\x1f\x01\x5c\xe9\x59\xd7\x9d\x63\xc3\xeb\x08\x96\xae\x38\x38\xd5\x43\x57\x84\xae\x38\x40\x5d\x11\x4e\xf5\x50\x92\x7b\x77\xaa\xa7\x3d\xff\x2c\x3d\xeb\x4d\x88\x3b\xdc\xeb\xf7\xaa\x47\x6f\xdd\xe9\x03\xd4\xa8\xfb\x6a\xcb\x20\x74\xeb\x7e\x1a\x73\xac\xb2\xf2\x10\x55\xed\x2d\x5c\xee\x5f\x7b\x11\x84\x53\x01\xe0\x7c\x0f\x51\x1f\xa2\x3e\xb0\xd0\xda\xd6\xec\x53\xe2\xed\xc9\xf9\x9e\x76\xb8\xf3\xf1\xc0\x37\xe7\x3a\xdc\xf0\xf7\x2f\xe4\x9e\x84\x2f\x7e\x4f\x4d\x19\x90\x88\x7b\x26\x5e\xf9\xc7\x20\xe1\x6e\xee\x9a\xbf\x03\x01\x17\x4e\xfa\x90\x6f\x21\xdf\x42\xbe\x1d\x92\x7c\xfb\x0a\x27\xfd\x79\xf1\xf6\xb4\x3d\xf5\x17\x8e\x74\xb8\xeb\xef\x5d\xb8\x3d\x5a\x9f\xfd\x7e\x5a\x32\x4c\xd1\xf6\x84\xbd\xf7\x8f\x4c\xb2\xed\xe6\xc2\xdf\x9b\x60\x0b\xab\x2d\xa4\x5a\x48\xb5\x90\x6a\x07\x23\xd5\xf6\x65\xb1\x3d\x27\x6b\x2d\x2c\xb5\xfb\x15\x66\x4f\xc4\x4a\x7b\x2a\x16\x5a\x58\x67\x07\x21\xc3\xee\xd0\x32\xab\xf2\x80\x27\xb1\x8c\x8e\xdb\xbd\x7f\xcb\xd4\x13\xae\xf1\x48\x3c\xe1\x7e\x41\xe2\x89\x8b\xda\xa2\xe8\xec\xc3\xef\x57\xd1\x39\x66\x9b\x70\x8d\x47\xae\x89\xc6\xff\x10\x20\x53\x8d\x55\x35\x49\x36\xc9\x34\x51\x5f\x55\x54\x63\xad\xd0\x26\xa9\x0a\xdd\x6f\x46\xc9\xd8\x7c\xb5\x75\xd5\x9d\x92\x38\x2f\xb4\x9e\xfd\xcc\x8b\xe0\x81\x19\xaf\xff\x5c\x1f\x30\xfa\x64\x66\xff\x5f\x5f\xa5\x3b\x15\xde\xfa\x2a\xad\x58\x2f\xba\xbc\xc6\x82\x59\x52\xc4\x17\x95\xdd\x26\x89\xf7\x05\x1f\xc4\x5a\x5a\xfa\x82\xfe\xd8\xcf\x79\x91\x09\x3e\xfb\xff\x50\x47\x6d\x5c\x76\xf3\xed\x61\x2f\xda\x71\x6d\x5e\xea\x95\xba\x64\x04\x4f\x7a\xd5\xae\x97\x91\xf5\x44\xef\x49\x46\xf6\x67\x71\xab\x68\xbc\x7e\x0d\x76\x88\x84\xad\xac\x2f\x9b\xdb\x64\x79\x92\xa8\xe7\xff\xd1\x13\xf7\x17\xa5\x1e\x67\x3c\x7b\xcc\x9d\xd5\x33\xb7\xfb\x86\x78\x12\x52\xff\x1f\x32\x01\xbe\xa4\x82\xdd\x5f\xfc\xf2\xed\xdb\x7f\xff\x76\xfb\xfd\xbf\xef\x2f\xc6\xec\x87\xc8\x74\x05\x8d\x25\x30\x54\x64\xb3\x8d\x67\x69\x22\x66\x42\x16\x6c\xe2\x4b\x9d\xf1\x17\x16\x47\x52\x65\x82\x15\x0f\x71\xce\xa6\x09\x8f\xc8\xd8\x57\x3d\xc2\x33\xc1\x72\xfd\x16\x2f\xc8\xe4\x95\x53\xd1\xa3\x9c\x85\x71\x1e\x64\x82\x14\x0d\xf6\x31\x89\xa9\x3e\x35\x13\x31\xcf\xf5\x36\x39\x57\x50\x26\x8a\x32\x93\x22\xd4\x85\x71\xf9\xc2\xf2\x54\x04\xf1\x34\x0e\x58\x2c\x0b\x91\x3d\xf1\xe4\x92\x49\x95\x51\xb5\x8a\x07\xf1\xe2\x0a\xa9\xbe\x6b\x0c\xb9\xb9\x90\x21\xbd\xef\xda\x6c\xfa\x83\x85\x65\x16\xcb\x88\x71\x96\x8b\x3c\xa7\x8a\x7d\x9d\x9a\x86\xc5\xb9\xa9\x94\xe9\xbe\x4b\xdb\xda\x58\x24\xa1\xfe\xc9\x74\x41\x68\x1f\x17\x6c\x2a\x78\x51\x66\x82\x45\xbc\x10\x6c\x6e\x20\x6c\x49\x42\x6a\x89\x26\x24\x1b\x76\x1a\x9b\xca\x2d\x2b\x76\x43\x63\x60\xcb\xf0\xb7\x5b\x06\x27\x4a\x25\x82\xcb\xbe\x0d\x9d\xbf\x3f\x08\xb2\xf3\xc6\xb2\x14\x4c\xd1\x3f\xbb\x81\x9d\xe8\x71\x28\xd8\xf3\x83\x90\x7a\x2c\xb3\x58\x3c\xe9\x0e\x9f\x29\x1a\xdb\xbc\x4c\x8a\x9c\x4d\x33\x35\xab\x8d\xd8\x98\xfd\x88\x65\x60\xe7\x97\xb1\x3b\xc7\xb9\x1b\x4d\x6b\x2d\xbe\x64\x81\x9d\x40\x7a\xe4\xc9\xd0\x5c\xe6\x66\xd8\x7d\x45\xcc\xab\x54\x38\x67\x69\x26\x9e\x62\x55\xe6\x8c\xba\xd1\xf1\x04\x5a\x0d\x71\x68\xb2\x2f\x26\xf6\xb7\x6a\xfd\xb1\xb7\xe2\xaf\x40\xa4\x85\x09\xa3\xf3\x56\x70\x35\xf5\x1f\x79\x47\x73\xbf\x36\xdb\x74\x75\x32\x41\x81\x79\x7c\xbe\x2a\xb1\x5e\x59\xc2\xcc\x06\x4f\x3c\xfc\x14\xb2\x33\x5b\x84\x0b\xaf\xe9\x37\xc8\xac\x2e\x32\x66\xa0\xc9\xf3\x83\x20\xd6\x11\x96\x82\x15\x8a\x89\xbf\xd2\xd8\x9c\xf0\xec\x6d\x24\xa4\xc8\x78\x92\xbc\xb0\x69\xfc\x44\xbf\x4e\xe3\x69\x21\x84\x64\xb3\x58\x96\x85\xc8\xdf\x69\x59\x82\xea\x36\x8d\xa3\xd2\xbe\x66\x6c\xfd\x4c\xc9\x5a\x5b\x2e\x17\x56\x91\x39\xff\x2c\x47\xe0\xec\xff\xb9\xf9\x2f\xe6\x04\xc4\xcf\xba\x0a\x22\xb4\x6c\xa6\x50\x91\xa9\xa0\x7d\xd2\xb7\x88\x52\x9b\xfb\x26\x9b\x31\x64\x52\x88\x30\x37\x4f\x11\x20\x92\x05\xd3\x5b\xf7\xa5\xee\x30\x22\x0e\x99\xc8\x0b\x9e\xd1\x6e\x12\x67\xf4\x1b\x15\xac\xca\xa2\x39\xe2\xb4\x8e\xc6\xec\x9b\xfe\xf4\x73\x9c\x8b\xcb\xfa\x57\xf4\xc8\xd8\x6d\x40\x51\xdd\xa8\x1c\xbb\x4b\x56\x68\x84\x6a\xa8\x87\x47\xc4\x4f\x75\x64\xa2\x1b\x4b\x8d\x5b\xdb\x2d\x54\x2e\x55\x58\xcf\x74\x3f\xb9\xa5\xf8\xab\x60\x8f\xe2\xe5\x92\x4d\xca\xa2\xfa\xe7\x84\x17\xfa\xfb\xb9\xe4\x69\xfe\xa0\x8a\x4b\xf6\xfc\x10\x07\x0f\xb4\x19\xc8\x5a\x87\xf8\xe7\xfd\x44\xb6\xd5\x37\x4b\xe8\xca\xcb\x85\xb4\x81\xeb\x9d\xd3\xd8\xce\xc3\x4b\xcb\xe4\xf4\x5f\x4a\xaf\x9f\x44\x14\x7a\x3b\x9d\x16\xc2\xcc\xe9\x69\x9c\xe5\xc5\x7c\x67\x18\xf6\x15\xcb\x20\x29\x43\xb3\x67\x19\x90\x66\xe4\x1f\xe2\x36\x7a\x42\xea\xff\x9a\x41\x79\x14\x2f\x66\xc3\xae\x0a\xbe\xbf\x70\x4d\xbe\xbf\x18\xdf\xcb\x7b\xf9\x7b\x63\xaf\xd3\xab\x20\x2f\xd3\x54\x65\x84\xa6\xf4\x06\x61\x4e\xaa\x38\xa7\x4d\xa8\x3a\x23\x68\xe4\x68\x02\xd8\xdd\xb8\xde\x7b\xa6\x13\x68\x0e\xfe\x61\x4e\x58\xbb\x6c\xfc\xc9\x31\x79\xa9\x8f\x98\xa1\x85\x05\x9b\xc5\x79\x4e\x27\x42\x03\x59\x6e\xba\xf3\xba\xa9\xb7\x4f\xac\x74\xcb\x72\x91\x08\x22\x78\x85\xa2\xb5\x91\xc5\x81\x59\x09\x46\x55\x98\x56\x6d\x77\xb3\xc2\xf4\x41\x9c\x99\xee\xcf\xc7\xec\x93\x98\x72\x9a\x39\x7a\xfb\x78\x12\xd9\x4b\xf1\xa0\x65\xc9\x6d\xc8\xda\x0f\x5b\x9b\xa3\xe9\x83\x84\x4f\x44\xd2\x5b\x1f\x50\x69\x87\xe8\x83\x24\x9e\xc5\x85\x01\xbd\x33\xfe\x57\x3c\x2b\x67\x4c\x96\xb3\x89\xc8\x4c\xeb\xad\xaa\x62\xfa\x47\x77\x05\x9d\x62\x76\x7b\x0a\x78\x92\xd0\x36\x4c\x07\x71\xac\x6b\xc1\xc4\x5f\xb4\xe9\x2e\x8a\x4e\xa6\x5f\xff\xd7\xcd\xf5\xff\xb5\x6b\xd8\x1e\x16\x54\xde\x4c\x14\x3c\xe4\x05\xd7\x5f\xe3\x76\x01\xd2\x4e\x14\x70\xa9\x77\x92\x32\xaf\xef\xa5\x39\x9f\xe9\xcd\x25\x2e\x62\x7f\xe8\x9a\x5a\x6a\xf1\x40\x54\xbb\xa5\xfe\xb4\x69\x8b\x1e\x26\x2d\xa4\x16\x85\x11\xd7\x4c\xdb\xcd\x61\x6b\xda\x26\x9e\x69\xdb\xe1\xb2\x8e\xfc\xf5\x46\x37\x53\xa5\xa4\x62\x4c\x2b\xdf\x96\xa9\xfe\xd8\xbf\x45\xa6\xcc\xbf\xbc\x73\xbb\x9b\x91\x08\x39\x6d\xe8\xee\x6d\x37\x77\xf4\xce\x36\x8d\x93\x42\xe8\x33\x4e\x9f\x3b\x7a\x1b\x09\x9a\x32\x6c\x43\x0a\x31\x0e\x12\x81\x70\x3e\x08\xcd\x33\x4a\xd7\x20\xd4\x22\xc6\x2c\x96\xc2\x9f\xe6\x0d\xa1\x88\xf6\x52\x67\x07\xab\xe4\x73\xdd\xe4\xe0\x41\xa9\x5c\xd0\x2e\x56\x28\xb7\x87\xda\xb1\xd0\xdd\xc2\xb3\xa8\x24\xb1\x9d\xd3\xa1\x44\x0d\xa2\x4e\xd2\x6d\xb3\xf5\x69\x98\xd8\x4c\xef\x7e\x9d\x32\x3f\xa5\x2a\x61\xc4\xc9\x37\x73\x0d\x88\x73\x26\x66\x69\xf1\xd2\x14\xc4\xbc\xf4\xcd\x0b\x2d\xb3\xac\x6a\xd0\xaa\xc3\x20\x9e\xce\x1d\x05\xe6\xf4\xf0\xf3\x32\x2a\x79\xc6\x65\x21\x9c\xd7\x09\x81\x75\x3b\x52\x7e\xd9\xd3\x89\x52\x92\x1f\x88\xaf\xbb\x3f\xd8\xbc\xc8\x57\x28\x16\xe7\x79\x69\x95\x80\x58\x46\x89\xa8\x56\x88\x97\x32\xdc\x84\xbb\x72\x9e\x12\x5a\xeb\xf0\x9f\xdc\xec\xa4\x75\x87\x2c\xe9\x18\x79\x29\xc2\xd6\xe3\x96\x74\x9d\x72\x92\xeb\x87\x65\xe1\x5b\x10\x7a\xb5\xce\xf6\xa0\x1e\x2b\x35\x13\x45\x3c\x13\xba\xed\x53\x91\xe9\x19\xaa\x57\xe1\x9c\x44\x55\x09\x18\x7a\x44\x85\xcc\xcb\xcc\x75\x1f\x77\x22\x92\x73\x03\x31\xbd\x66\x9a\x4c\x0b\x93\x84\x21\x96\xcf\x78\x92\x88\x8c\x05\x0f\xa5\x7c\xcc\x0d\xe2\xd0\xdb\x26\x4b\x78\x16\xb9\x81\xa6\x15\x6f\x8a\x37\x1a\x59\x2e\x04\x4d\xbc\x54\xe5\x79\xac\x27\x9c\xed\x36\x9a\x70\xf5\xf5\x55\xa6\x21\x79\xa9\x78\x9d\x8c\xbe\x23\x42\x33\x1e\x24\x7e\xdb\x03\xde\xce\x61\x7b\x01\x06\xd5\xfa\x99\xe7\xce\x29\xc9\xe9\x9d\xba\x4f\x16\x25\x1c\x23\xf7\xf3\x5c\x0f\x70\x50\x26\xf4\xc5\xb8\x9a\x36\x1b\xef\xfe\xba\x93\xda\x77\x7d\xad\xa1\x2e\x78\x9c\x9c\x8f\x57\x49\xb7\xd6\x90\x37\x59\xb5\xdb\x58\x11\xda\xac\x7e\xbd\x04\x2f\xf5\xee\xfa\x9c\x3b\x67\x24\x33\xd8\x2a\x08\xca\xcc\x2f\x2c\x5e\x68\x95\xad\x88\xf5\x68\x66\xf5\x39\xc2\xbd\x64\xd8\x3c\xeb\x5d\x59\x5e\x8a\x9c\x88\x28\x96\xd2\x7a\x8c\x3d\xc4\x79\xa1\xb2\x97\x31\x9b\xab\x9a\x3e\x3d\xf5\x1c\xfa\xc0\xae\xf4\x06\x55\xca\x5c\x14\xb5\x21\x70\x1e\x6a\xb5\x1d\x88\xca\xcf\xc4\x4c\x15\x82\xe9\x32\x79\x24\xd8\x84\xeb\x93\x50\x49\xf6\x7f\x4b\x95\x95\xb3\xab\x4c\xf0\x90\x8c\x28\x3f\x9b\x62\xe3\x62\x94\xb3\xff\xb2\xe5\x3e\x0b\x96\xc7\xb3\x34\xf1\xa7\xdc\x33\x4d\x75\xc1\x82\x32\xcb\x84\x2c\x92\x17\xf6\xc0\x9f\xf4\xc6\xc1\x02\x1e\x3c\x08\xda\x95\xfc\xe6\x68\x4b\xa4\xf3\x5b\x31\xa9\x24\x1d\x7a\xad\x55\xe6\x05\x4b\x84\x16\xa5\xb9\xee\x15\x91\xd3\xdd\x31\x51\xfc\xa4\x35\xa1\xa7\x4d\x27\xd1\x9c\x38\xbe\xcf\xd9\xf4\x7b\x3c\x13\x7a\xbf\x76\xfa\xba\x1e\xaf\xeb\x6a\x32\xd9\x3d\x93\xd6\x2c\x29\x2e\x7a\xaf\xf1\xbc\x96\x4e\x39\x9a\x72\x99\x88\x78\x16\x92\x93\x9b\x9e\x46\xf2\x85\xf1\xa0\x88\x9f\xe2\xe2\x45\x6f\xec\xb1\x74\xff\x6f\xd3\x9e\x29\x4c\xf5\x7e\x88\x40\xc9\x70\x89\x89\x66\x47\xbb\xc6\xff\x18\xbd\x49\x65\xd5\x4a\x52\xa6\x07\xe8\xb9\x09\x9d\x2c\x16\x9a\xd1\x09\x61\x67\x5c\xf1\x20\x66\xe6\x2c\x31\xe6\x71\xea\x90\x30\xbc\xb4\xbb\xf5\xa5\x7d\x76\xa6\x9e\x48\x20\xa9\x69\x52\xec\x07\x2d\x9d\x97\x79\xf5\x6c\xd3\x4e\x6b\xb1\xe6\x6f\x6d\xce\xb2\x7f\xfd\xb9\x9e\xf4\x2c\xb9\xf5\xac\x0b\x00\x32\x07\x7f\xbf\x0c\xc8\x94\xc9\x02\x95\x68\x3d\xc3\x4e\xd8\xcd\xd1\x8f\x29\xa6\x01\x7f\x3e\xfa\x22\xab\x5b\x7f\x3a\x14\xdc\xd5\xc1\x0e\x86\xea\xf3\x31\x54\xaf\x58\xcd\x1b\x18\xab\xd7\xac\xef\xd5\x2b\x7c\x8e\x6a\xf5\xe2\xed\xb9\x13\xb6\xfe\x89\x56\xe2\x37\x5a\x18\x79\x47\x46\xb7\x7a\x69\xc1\x08\x0f\x23\x3c\x8c\xf0\x30\xc2\x9f\x9a\x11\xbe\xdb\xa9\xd2\x6a\x88\x5f\xad\x6f\xbc\xe6\x24\x41\x4c\xd4\x62\x4c\x54\xb7\x81\x6a\x89\x8b\xda\xdb\x30\xed\x8d\x9c\x74\xeb\x8a\xe5\xf4\x64\x6f\x3d\xf2\x7b\x5d\x07\x8e\x25\xcb\x8d\x6a\xca\x26\x62\x6a\x24\x67\x6f\x65\xab\x44\x09\xbb\x7b\xd1\xd4\xa9\xc5\x84\x49\x25\xaf\xa4\x88\x38\x4d\x50\xab\xc5\xd6\x63\xc7\x8c\xc5\xdd\x2f\x0d\xab\xd1\xc4\xb3\x99\x08\x63\x5e\x88\xe4\xa5\x12\x69\xab\x23\x37\x4e\x2e\xad\x96\x4a\x9d\xce\xa2\x8c\x07\xb4\x6a\x62\x15\x7a\x81\xa0\x3a\xb4\x49\x5f\x70\xb3\xb4\xcc\x75\x25\xeb\xc3\xc5\xf5\x9b\xae\x41\xf6\x23\x53\xb3\x07\xba\x22\xc6\xa6\x9e\x33\xc1\x65\x6b\x1d\xb7\x18\x66\xaa\xf3\x1d\x55\xb9\x4d\xf3\x5f\xa3\xfb\x0f\x65\xfa\x6f\x02\xcd\xba\xf5\xcb\x72\x70\xb6\xb7\xe9\x0f\x84\x06\x84\x06\x84\x06\x84\x06\x84\xb6\x33\x84\xd6\xf1\x2c\x58\xc0\x68\xfb\x3b\x16\x3f\x89\x34\x13\x5a\x28\x09\x3f\xb0\x34\x11\x3c\x17\x7e\x0b\xba\xcb\x54\xca\x23\x92\x8e\xee\x54\x12\x07\x2f\x0d\x3b\x98\x9b\x74\xa1\x2f\x40\x4f\xbb\x9b\xf1\x3f\xc6\xec\x87\xd9\xcf\x8c\xe8\x92\x0a\xa9\x17\x4b\x75\xa6\x0a\xa6\xb2\xf4\x81\x4b\x67\x97\xcb\x4a\x71\x3d\xe5\x89\xd3\x95\xef\x2f\xcc\xcf\xf7\x17\x6c\x1a\x4b\x9e\xc4\xff\x76\x07\xc9\x44\x30\x1e\x86\x34\x3b\xaf\x8d\xd1\x3d\xac\xd4\x30\x53\xfc\x28\xaf\x5e\x32\xfa\xe9\x98\x7d\x8e\x69\x73\xac\x55\x5d\x65\x8b\x6d\xa3\xed\xc7\x98\x8a\x8c\x7a\x4c\x3a\x8a\x2a\x1e\xb6\x19\x50\xd3\x82\x4f\xae\xed\x7b\x33\xf1\x2d\x2a\x66\xd4\x74\xbd\x60\x1f\xd4\x33\x8b\x78\x36\xe1\x51\xc3\x90\xee\x95\x1a\x91\x4d\x55\x36\xd3\x63\xd2\xda\x5f\xdf\xe6\x5a\xb4\xbc\xbb\x48\xe8\x75\x12\x6b\x6a\xfa\x36\xd6\xd2\x64\x10\x87\x95\x2a\x4c\xb2\x02\x19\x27\xfc\x18\xe7\x14\x44\x48\xbf\x3a\x69\x60\x5c\x1b\x4c\x77\x8e\x38\x55\xfb\xca\xdb\x98\x9b\x1f\x1b\x33\x13\x9b\x4b\x67\x53\x5d\xb3\x1b\x99\x36\x8c\xd8\x95\x9d\x80\xcd\x09\x9a\xff\xcc\x46\xbf\xf0\xe0\x31\xca\x54\x29\x43\xfd\x14\xd9\x6a\xe9\xa1\xb9\x8e\x33\x22\xa4\x95\x8f\x9b\x85\xb8\x16\x4c\x7c\x49\x3f\xb3\xd1\x17\x95\x89\x5a\xb1\x2c\xe0\x79\xc0\x43\xdd\x7a\xdb\x3f\xc6\x9c\x4f\xe5\xe5\x46\xf5\x5c\x28\x70\xea\xcb\xd8\x66\x42\xa6\xf3\xd3\xfd\x80\x96\x02\xf0\xee\xe3\xe1\xdd\xdd\x66\xd7\x2a\xe6\xbd\x3f\x65\xfe\x90\xf4\xbb\x5b\x3f\xad\x20\xe0\xfb\x3b\xf0\x87\xca\xc2\xbb\x75\xe1\x22\x0f\x7f\xed\x71\xda\x0a\xa0\x11\x2d\xbb\x21\xd1\xfb\x51\xf0\xa2\xec\x8a\xf2\x4e\x31\xdc\xce\x9c\xde\x95\x64\x75\x84\xa1\x77\xc7\x17\xbb\x0b\xa7\x0d\x38\x6d\x9c\xb6\xd3\x06\xdc\x1c\xe0\xe6\x00\x37\x07\xb8\x39\xc0\xcd\xe1\xe0\x6e\x0e\xe0\xe7\x40\xaa\x40\xaa\x40\xaa\x40\xaa\x40\xaa\x40\xaa\x40\xaa\x4b\x0f\x01\x50\x0e\x50\x0e\x50\x0e\x50\x0e\x50\x0e\xdc\x63\xb8\x0a\xa7\xe0\x1e\x43\xdc\x63\x58\x1f\x18\x2b\x3b\x99\xbc\x25\x32\x64\x7a\x98\x58\x1e\xa8\x54\x5c\xb2\xbc\x0c\xe8\x00\xa3\x7d\x5f\xf0\x99\xd9\xb4\xd2\x4c\x91\xac\xd6\x16\x54\x9c\xf2\xe2\xa1\x3d\xa6\xd8\x47\xf4\x36\x7f\x5e\x91\xd7\x01\xa9\x42\xd8\xbe\x53\x85\x6c\x4e\xc7\x7c\xba\x90\x1d\xf3\xb1\xe1\x65\x0d\xe9\xb0\x89\xf6\x12\x64\x8a\x40\xa7\xfa\x0c\x18\x6c\xa0\xd3\x99\xa6\x82\xda\xc0\x6c\xdc\x96\x0e\xea\x95\xc3\x33\x28\x01\xf3\x24\xe4\xbe\xc1\x67\xdd\xe9\xb5\x0d\x87\x4a\xb9\xd3\x63\x23\x4e\x50\xf8\xee\x31\xd1\xce\x1e\x84\xef\x37\xac\xe7\x8b\x6d\xcc\x43\xff\xd9\xd3\xfd\x36\xdb\x08\x7d\x2d\x77\xda\x0c\x48\xe8\x3b\x92\xcb\x43\x20\xd7\xd5\x07\x79\xb0\x72\x1d\xc2\xb5\xcf\x28\x5c\x1b\x71\x69\x88\x4b\x43\x5c\x1a\xe2\xd2\xa0\x92\x2e\x5b\x45\x83\x8c\xec\x38\x8c\x22\x87\xc0\x94\x75\x81\x29\xc7\xa3\xc4\x79\xe3\x7a\xef\xe1\x28\xe4\x97\xd0\x94\xc1\x36\x57\xb8\x74\x21\x7b\x8f\x41\xa9\x09\x2e\xe2\x2f\xf2\x2c\x9b\xe8\xbf\x78\x50\x8c\x19\xfb\xac\xff\xeb\xfe\x7d\xc6\x63\x32\x33\xe6\x2c\x48\xca\xbc\x10\x59\x75\x1c\x19\x17\x54\x96\xc4\x8f\x82\x8d\x7c\xad\x47\x5a\xea\x74\x92\xd2\x98\xdd\x25\x5c\x4a\xeb\x19\x42\xb2\x0c\x4f\x8c\xf8\x74\xf3\xd3\x36\xfb\x3b\xd5\xf1\x40\x52\x86\xef\x34\x2f\xa4\x4f\x5c\xf7\xe9\x96\xb2\xcf\xa6\xc7\xf4\xc9\x92\xe6\xae\x77\xac\xf3\x55\x99\x8b\x8c\xbc\xa6\x2a\x79\xfb\x65\xc7\x1d\xa5\x2b\x73\xba\xc8\x7f\xd8\xc7\x1f\x0c\x81\xfe\x99\x25\xa7\x88\xde\x8c\x8f\xef\x08\xd9\x02\xc2\x13\x2a\xb2\x56\x96\x4e\x95\xe9\x42\xdb\x87\x02\xda\xe1\x61\x70\x74\x1e\x06\xe4\xc7\xb4\x55\xfe\xea\x2b\x7a\xf7\xef\xab\x77\xf3\x99\xc8\x22\xd1\xe9\xc9\xbc\xc8\x78\x21\xa2\x38\xb8\xea\xfe\x8e\xfe\xfb\xc5\x3e\x49\xe7\x46\x17\x31\x8d\x1c\x5f\x29\xae\xce\xf8\xdc\xbd\x5a\x64\xa3\xef\x0f\xd5\x44\xbe\x2b\xbf\x88\x15\x2a\xd1\x5d\xd3\x37\x8e\xc1\x70\x7e\xe2\x86\xf3\xf3\x71\x88\x98\x0b\x61\x71\x8b\xcb\x84\x59\xa5\xc6\xeb\xdc\x86\xee\xbf\x5d\xb2\x51\xbd\x23\xb3\xa1\x89\xad\xe6\x09\xbd\x29\x95\xbc\x32\x6f\xd3\x13\x64\xb9\xcf\xd9\xdb\x5f\x73\x25\xef\x4c\x04\xfb\x6f\x7a\x4b\xb4\x7f\xff\x70\x1b\x65\xf5\x8f\xef\x86\xe4\xa9\xd1\x7d\xde\x7c\x51\x59\x40\x68\x23\x52\x34\xf8\x8a\xdd\x5f\x4c\xf5\xbf\xdd\x5f\xb0\xdb\x46\x6f\x8e\xd9\xd7\xc2\x72\x08\x52\x9d\xec\x42\xbd\xe2\x01\x0d\x00\xc5\x40\x27\x71\x60\x2d\xab\xa4\x69\xa9\x67\x3b\xb6\x26\x46\x38\x15\x2a\x4d\xc4\x98\x99\x6f\xd2\xd5\x07\x6e\x4e\x51\x58\x42\xeb\x40\xf8\xcf\x6f\xd3\xbd\xfa\x43\x50\xb8\xcc\x0f\x50\xb8\x86\xa6\x70\xa5\x73\xee\xef\x47\xa3\x72\x95\xbd\x5b\xed\xd2\x84\x07\xaf\x97\x02\x6d\x39\xe7\x26\x07\xc2\x3f\x16\xe2\xe0\xd9\x8a\x83\x03\x92\xba\x20\x1c\xf8\x5f\xe0\x1f\x0b\x01\xc7\x08\x0a\x47\x23\xde\xbc\x61\xbb\xf1\x2c\xbd\xce\x0d\x9e\xae\x39\x98\xee\x06\x7b\x9a\xef\xb8\x63\x6f\xbf\x00\xd4\x22\x78\xec\x7b\xd8\x33\x5e\xb9\x67\x80\x42\x81\x42\x6d\xd6\x66\x50\x28\x50\xa8\x7e\x28\x54\x7f\x27\xe8\x16\x3c\xaa\xe5\x08\x3d\x4a\x6b\x04\xa8\x14\xcc\x10\xe7\x67\x86\x00\x95\xea\x73\xde\x80\x4a\xc1\xf0\x04\x05\xec\x30\x0a\x18\xa8\xd4\x1c\x95\xea\xd3\xae\xb2\x05\x9f\x3a\x15\xb9\x10\x94\x0a\xe2\xe1\xd9\x8a\x87\x03\x92\xc2\x20\x2c\xf8\x5f\x40\xa9\x20\xf0\x9c\x1c\xa5\xa2\x6b\x31\x97\x42\xa9\x9d\x62\x28\x7b\x7b\xb8\x0c\xe3\xa7\x38\x2c\x79\x52\xbf\x98\x95\xfb\x7c\x01\x4b\xfa\x61\x5c\x0b\xe7\xff\xe0\x2f\x02\x18\x51\x99\xa3\x2a\x8f\x4c\x23\x31\x88\x97\xaf\x58\x2c\xf3\x42\xf0\x86\x49\x75\x5e\xfa\x7a\x5e\xb0\xc9\xad\xb8\x8d\xf3\x8b\xca\x6e\x93\xc4\x0b\x67\x83\x40\x5b\x4b\x5f\x38\xaf\x3b\x55\x57\x18\x18\xe9\x4a\xe0\xcf\x4f\x42\x9e\xf3\x6d\xaa\x34\x86\xe7\x73\xa5\x2a\x92\xb7\x9d\x70\xf2\xb6\xf5\x50\x6c\x5d\xe2\xb6\x95\x96\xb5\x1e\x80\x1f\xd2\xb5\x21\x5d\x1b\xd2\xb5\x21\x5d\xdb\xa9\xa5\x6b\x5b\xbf\xf3\xb6\xa6\x6a\xdb\xb1\x7b\xc5\xde\x12\xb4\xad\x6f\xfe\xf2\xe4\x6c\x43\xee\x83\x4d\x52\xb2\xad\xef\x83\xe5\xe9\xd8\x76\xdc\x07\x48\xc2\x86\x24\x6c\x48\xc2\x86\x24\x6c\x48\xc2\xb6\xb3\x24\x6c\x1d\x76\xff\x85\x04\x6c\x2b\x6f\x0e\x3d\x23\xef\xca\x6e\xad\x41\x12\xb9\x23\x4b\x22\xb7\x7e\x12\xad\x4a\x20\xb7\xe3\xd9\x74\xd0\xb4\x71\xeb\x7b\x66\x45\xca\xb8\x5d\xef\x1a\x43\x4d\x14\xb7\xbe\xd3\x5a\x8c\xf9\x5b\x9b\xb3\xec\x5f\x7f\x76\x25\x48\x1b\x46\x3b\x01\x2c\x6d\xe2\xd4\xf3\xaf\x39\xf3\x3c\x90\x12\x90\x12\x03\x52\x02\x52\x02\x52\x02\x52\x02\x52\x02\x52\x02\x52\x02\x52\x02\x52\x6a\x6e\xb7\x03\xc4\x29\x40\x4a\x40\x4a\x40\x4a\x40\x4a\x40\x4a\x40\x4a\x40\x4a\xc7\x88\x94\x70\x53\x09\x58\x1a\x58\x1a\x58\x1a\x58\x1a\x58\xda\x50\x58\x5a\x4b\x4e\xea\x1d\x21\xb5\x3a\x47\x93\x4e\x02\x50\x53\xf6\x18\xcb\xa5\x01\xee\xbd\xf0\xb4\xcb\x4a\xfe\x27\x1d\xc7\xca\x8a\x5a\x85\xa8\x14\x9b\x51\x43\x21\xae\x95\xdd\x33\x8d\x03\x89\x03\x89\x3b\x26\x12\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x07\x0a\x77\x7c\x14\x0e\xc9\x10\x80\x18\x81\x18\x81\x18\x81\x18\x81\x18\x81\x18\x37\x41\x8c\xef\x27\xa2\xe0\x37\xd7\x5b\xb1\xc2\x83\xdc\xee\x3a\x37\xda\x91\x28\x9a\x72\xbb\x19\xd8\x15\x80\x2f\x12\x45\x1d\xef\x99\x0e\xb8\xbd\xfb\xfa\xbd\xed\x5d\x5c\x6c\xbb\x21\x65\xab\x75\x24\x05\x29\x9e\x12\x6a\x33\x53\xa5\xf6\xf2\x9b\x7a\x05\xd6\x2f\xb2\x83\xc4\xbe\x1a\xd3\x4f\x66\x05\x0d\xa7\x5b\xac\x61\xf4\x2b\x96\x8f\x2e\x6f\x71\xfd\x2c\x29\x07\xd7\xa0\xce\x8f\xce\x60\xd6\x70\xf3\x62\x67\x33\x8a\xcb\x6e\x77\x3e\xfd\x95\xbc\x9e\x9c\x0f\x37\x7c\x75\xbe\x31\xa0\xe7\xa0\xe7\xa0\xe7\xa0\xe7\xa0\xe7\xa0\xe7\xa0\xe7\xa0\xe7\xeb\x77\x5b\xd0\x73\xd0\x73\xd0\x73\xd0\x73\xd0\x73\xd0\x73\xd0\xf3\xb3\xa3\xe7\xe0\xac\xe0\xac\xe0\xac\xed\xb3\x09\x9c\x75\xe9\x3a\x03\x67\xdd\x9c\xb3\xbe\xe2\x56\x54\x73\xfa\xf7\x0b\x87\x4c\x99\x2c\x50\x89\x56\x36\xec\xac\xdd\x9c\x09\x99\x62\x16\xa9\xd0\x47\x5f\xee\x66\x31\x94\x1d\x13\x14\xc3\x64\x7d\x3e\x26\xeb\x6e\x49\x6f\xd7\x99\xad\x5f\x9b\x29\xff\x72\xf9\x64\xdc\x2e\x5b\xf6\x4e\x18\xfc\x27\x5a\x8e\xdf\x68\x61\xe4\xbd\x24\xc4\x86\x39\x1e\xe6\x78\x98\xe3\x61\x8e\x3f\x35\x73\x7c\xb7\x53\xa5\xd5\x24\xbf\xb7\x2c\xf7\xa4\x34\x5a\x43\xc4\x25\x5d\x62\x1f\xe8\x19\x65\xe6\x41\xa3\x6d\x75\x39\x62\x22\x58\xaa\x7b\x2b\xd7\x3a\x3b\xbb\x95\x2c\x96\x66\x67\x51\x19\x2b\xa5\xdf\x9c\x42\x66\x12\xf8\xb3\x30\xce\xb4\xa4\xf6\x24\xfc\x8c\x27\x45\x4e\x32\x2e\xed\x92\x77\x73\xc3\x76\x30\x9b\x96\x19\xad\xb2\x34\x53\x81\x96\x1b\x8c\xae\x5b\x33\x95\x8e\xd9\x1f\xf4\x45\x1a\x2d\x9a\x3b\x5a\xd1\xbd\x4d\x92\x0f\x64\xbd\x09\xf5\x2e\x5d\x4a\x3d\xf0\x5a\x79\x70\x53\xd2\x16\xb7\x98\xc3\xbc\xc3\x40\x99\xb6\x1c\x66\x98\xf6\xc6\x50\x36\x48\xff\xdf\xca\x10\xf6\xd6\x23\xbf\xd7\xb5\xe1\x58\xb2\xdc\x28\xa9\x6c\x22\xa6\x46\x72\xf6\xf6\xb6\x4a\x94\xb0\xbb\x17\x4d\x9d\x52\x98\xc3\x61\xa2\xf5\x40\x79\x25\x45\xc4\x69\x82\x5a\x7d\x56\xab\xde\xee\x04\x35\xb6\x77\xbf\x34\xac\x5a\x13\xcf\x66\x22\x8c\x79\x21\x92\x97\x4a\xa4\xad\x8e\xdc\x38\xb9\xb4\xfa\x2a\x75\x3a\x8b\x32\x1e\xd0\xaa\x89\x55\xe8\x05\x82\xea\xd0\x26\x7d\xc1\xcd\xd2\x32\xd7\x95\xac\x0f\x17\xd7\x6f\xba\x06\xd9\x8f\x4c\xcd\x1e\xe8\x8a\x18\x9b\x7a\xce\x04\x97\xad\x75\xdc\x62\x98\xa9\xce\x77\x54\xe5\x36\x1b\xc0\x1a\x2b\xc0\x50\xa6\xff\x26\xf8\xac\x5b\xbf\x2c\x47\x68\x7b\x9b\xfe\x80\x69\x80\x69\x80\x69\x80\x69\x80\x69\x3b\x83\x69\x1d\xcf\x82\x05\xa0\xb6\xbf\x63\xf1\x53\xed\xaa\xbb\x34\x11\x3c\x17\x7e\x0b\xba\xcb\x54\xca\x23\x92\x8e\xee\x54\x12\x07\x2f\x0d\x3b\x98\x9b\x74\xd5\x5d\x79\x7a\xda\xdd\x8c\xff\x31\x66\x3f\xcc\x7e\x66\x44\x97\x54\x48\xbd\x58\xaa\x33\x55\x30\x95\xa5\x0f\x5c\x3a\xbb\x5c\x56\x8a\xeb\x29\x4f\x9c\xae\x7c\x7f\x61\x7e\xbe\xbf\x60\xd3\x58\xf2\x24\xfe\xb7\x3b\x48\x26\x82\xf1\x30\xa4\xd9\x79\x6d\xcc\xef\x61\xa5\x86\x99\xe2\x47\x79\xf5\x92\xd1\x4f\xc7\xec\x73\x4c\x9b\x63\xad\xea\x2a\x5b\x6c\x1b\x6d\x3f\xc6\x54\x64\xd4\x63\xd2\x51\x54\xf1\xb0\xcd\x80\x9a\x16\x7c\x72\x6d\xdf\x9b\x89\x6f\x51\x31\xa3\xa6\xeb\x05\xfb\xa0\x9e\x59\xc4\xb3\x09\x8f\x1a\xd6\x74\xaf\xd4\x88\x6c\xaa\xb2\x99\x1e\x93\xd6\xfe\xfa\x36\xd7\xa2\xe5\xdd\x45\x42\xaf\x93\x58\x53\xd3\xb7\xb1\x96\x26\x83\x38\xac\x54\x61\x92\x15\xc8\x38\xe1\xc7\x58\x1f\xd6\xf6\x24\x75\xd2\xc0\xb8\x36\x98\xee\x1c\x71\xaa\xf6\x95\xb7\x31\x37\x3f\x36\x66\xb7\x41\x20\xd2\x82\xce\xa6\xba\x66\x37\x32\x6d\x18\xb1\x2b\x3b\x01\x9b\x13\x34\xff\x99\x8d\x7e\xe1\xc1\x63\x94\xa9\x52\x86\xfa\x29\xb2\xd5\xd2\x43\x73\x1d\x67\x44\x48\x2b\x1f\x37\x0b\x71\x2d\x98\xf8\x92\x7e\x66\xa3\x2f\x2a\x13\xb5\x62\x59\xc0\xf3\x80\x87\xba\xf5\xb6\x7f\x8c\x39\x9f\xca\xcb\x8d\xea\xb9\x50\xe0\xd4\x97\xb1\xcd\x84\x4c\xe7\xa7\xfb\x01\x2d\x05\x20\xdf\xc7\x43\xbe\xbb\xcd\xae\x55\xf4\x7b\x7f\xca\xfc\x21\x39\x78\xb7\x7e\x5a\xc1\xc2\xf7\x77\xe0\x0f\x95\x8a\x77\xeb\xc2\x45\x32\xfe\xda\xe3\xb4\x95\x42\x23\xaa\x76\x43\xa2\xf7\xa3\xe0\x45\xd9\x15\xe5\x9d\x6c\x08\x9e\x39\xc2\x2b\xf1\xea\x58\xc3\xf1\x8e\x34\xc6\x17\x3e\x1c\xf0\xe1\x38\x6d\x1f\x0e\x78\x3d\xc0\xeb\x01\x5e\x0f\xf0\x7a\x80\xd7\xc3\xc1\xbd\x1e\x80\xd3\x41\x58\x41\x58\x41\x58\x41\x58\x41\x58\x41\x58\x41\x58\x97\x1e\x02\x80\x1e\x80\x1e\x80\x1e\x80\x1e\x80\x1e\xb8\xef\x70\x15\x5d\xc1\x7d\x87\xb8\xef\xf0\xcd\xf2\x21\xc2\x25\xfb\x03\xbf\xfc\xc1\xfe\xf5\x67\x35\xc8\x2a\xef\x19\xa3\x19\x35\x86\xf1\x2d\x88\x99\x79\x75\x4f\xcc\x6c\xbb\x50\xd3\x15\x53\x6c\x6f\x1b\x6b\x2f\xc1\xa8\x08\x88\xaa\x4f\x83\xc1\x06\x44\x91\x69\xe3\x37\x2e\x79\x24\x32\x63\xa4\x33\x9b\x6b\x9e\xab\x20\x26\xad\xd3\x9b\xc3\x38\x59\x35\x55\xc6\x84\x2c\xb4\x54\xec\xd4\xf0\x19\x7f\xd4\xbd\x58\x3c\x88\x5c\x38\xd1\xb2\x1e\xf6\xe3\xc2\x83\x48\xb4\x26\xd3\x97\xca\xd8\xcd\xfb\x9f\xf4\xb3\x19\x0f\x88\x75\x25\x4a\x46\x46\x90\x24\xf3\x54\xa0\x27\x65\x2c\xcd\x8e\x46\xe6\x9f\xea\x59\xb2\xff\x5b\x12\xc7\x26\x2f\x8c\x4e\xdc\x0f\xd7\xd7\x91\x4a\xb8\x8c\xc6\x2a\x8b\xae\xd3\xc7\xe8\xba\x94\x71\xa0\x42\x71\xfd\xb7\xaf\xf9\x9d\x2e\x65\x6b\x7b\xb2\xed\x9c\x3e\x87\x67\x50\x92\xe7\xe9\x08\x84\x5d\x85\xc1\xf7\x1d\x84\xc1\x8f\xc6\x58\x36\xf4\x86\xbc\x5f\xdb\x10\xe3\x08\x3c\xf4\x96\x9c\xaa\x7c\x4e\xe2\xcf\x71\xc9\xe7\x6f\xd8\x2e\xee\xc8\x31\x0f\xfd\x67\x4f\x57\xe5\x6c\x23\x1c\x2e\xbb\x1e\x67\x40\xc2\xe1\x91\xdc\x43\x02\xd1\xaf\x3e\xc8\x83\x15\xfd\x10\xf9\x7d\x46\x91\xdf\x08\x71\x43\x88\x1b\x42\xdc\x10\xe2\x06\xad\x75\xd9\x2a\x1a\x64\x90\xc8\x61\x34\x3c\xc4\xb8\xb8\x07\x57\xc6\xb8\x1c\x99\x62\xe7\x6d\xf2\xbd\x47\xb6\x90\x77\x43\x53\x1a\xdb\x5c\xff\xd2\x85\x1c\x26\x9c\xa5\x26\xc7\x88\xbf\xc8\x49\x6d\xa2\xff\xe2\x41\x31\x66\xec\xb3\xfe\xaf\xfb\xf7\x19\x8f\xc9\x30\x99\xb3\x20\x29\xf3\x42\x64\xd5\xe9\x64\xbc\x59\x59\x12\x3f\x0a\x36\xf2\xb5\x1e\x69\x21\xd4\x09\x4e\x63\x76\x97\x70\x29\xad\x93\x09\x89\x36\x3c\x31\xd2\xd4\xcd\x4f\xdb\x6c\xf7\x54\xc7\x03\x09\x1d\xbe\xd3\xbc\xcc\x3e\x71\xdd\xa7\x5b\xca\x3e\x9b\x1e\xd3\x07\x4d\x9a\xbb\xde\xb1\x7e\x5c\x65\x2e\x32\x72\xc0\xaa\xc4\xef\x97\x1d\x77\x94\xae\xcc\xe9\x7a\x0f\x0c\xfb\x34\x84\xc1\xb0\xe5\xe5\x25\x27\x8b\xde\x9b\x8f\xf4\x58\xd9\x82\xe7\x13\x6b\xb2\x36\x98\x4e\x35\xea\x02\xee\x87\xc2\xec\xe1\xac\x70\x74\xce\x0a\xe4\x21\xb5\x55\x56\xed\x2b\x7a\xf7\xef\xab\x37\xf7\x99\xc8\x22\xd1\xe9\xc9\xbc\xc8\x78\x21\xa2\x38\xb8\xea\xfe\x8e\xfe\xfb\xc5\x3e\x49\xc7\x48\x17\xd1\x8d\x5c\x6a\x29\x62\xcf\x78\xf3\xbd\x5a\x8c\xa3\xef\x0f\xda\x8a\xbe\x2b\x17\x8b\x15\x5a\xd3\x5d\xd3\xf5\x8e\xc1\xb6\x7e\xe2\xb6\xf5\xf3\x71\xab\x98\x8b\x90\x71\x8b\xcb\x44\x71\xa5\xc6\xa9\xdd\xde\x0c\xf0\x76\xc9\x6e\xf5\x8e\x2c\x8b\x26\x74\x9b\x27\xf4\xa6\x54\xf2\xca\xbc\x4d\x4f\x90\x71\x3f\x67\x6f\x7f\xcd\x95\xbc\x33\x01\xf2\xbf\xe9\x7d\xd1\xfe\xfd\xc3\xed\x96\xd5\x3f\xbe\x1b\x92\xbf\x47\xf7\x79\xf3\x45\x65\x01\xd1\x8f\x48\xd1\xe0\x2b\x76\x7f\x31\xd5\xff\x76\x7f\xc1\x6e\x1b\xbd\x39\x66\x5f\x0b\x8b\x2a\x48\x9d\xb2\x0b\xf5\x8a\x07\x34\x00\x14\x62\x9d\xc4\x81\x35\xbe\x92\xf6\xa5\x9e\xed\xd8\x9a\x10\xe4\x54\xa8\x34\x11\x63\x66\xbe\x49\x37\x2b\xb8\x39\x45\x51\x0f\xad\x03\xe1\x3f\xbf\x4d\xf7\xea\x0f\x41\x09\x33\x3f\x40\x09\x6b\x29\x73\x20\x4a\x58\x3a\xe7\x67\x7f\x5c\x6a\x58\xd9\xbb\x75\x2f\x4d\x78\xf0\x7a\xc9\xd0\x96\x73\x96\xb2\x21\xdc\x6f\x21\x27\xb6\x0d\xd3\xf9\xc8\x89\x03\x12\xc7\x20\x35\xf8\x5f\xe0\x7e\x0b\xf1\x67\x51\xfc\x29\x8f\xcd\x06\xfd\x86\xed\xd0\x67\xf5\x3a\x37\xcc\xbb\xe6\xba\xba\x1b\x82\x6a\xbe\xe3\xce\xc3\x03\xb0\x54\x0b\xf7\xb1\x2b\x62\x33\xa9\x46\x0b\x40\x0b\x40\x0b\x40\x0b\x40\xab\xed\xc1\x63\x00\x5a\xfd\x9d\xaa\xdb\xa2\xad\x96\x63\xf5\x28\x8d\x18\x00\x5c\x30\x5c\x9c\x9f\xe1\x02\x80\xab\xcf\x79\x03\xc0\x05\x53\x15\x94\xb2\x43\x2b\x65\x00\x5c\x6d\x80\xab\x4f\xfb\xcb\xb6\xa8\xeb\x54\x64\x45\x00\x2f\xc8\x8d\x6d\xc3\x74\x3e\x72\xe3\x80\xc4\x33\x48\x11\xfe\x17\x00\x2f\x88\x43\xe7\x03\xbc\xe8\xca\xcf\xa5\x7c\x6b\xa7\x44\xcb\xde\x8c\x2e\xc3\xf8\x29\x0e\x4b\x9e\xd4\x2f\x9d\xe5\x3e\x17\xc2\x92\x1e\x19\xd7\xae\x1b\xf8\xe0\x2f\x2a\x18\x51\x99\xa3\x2a\x47\x4e\x23\xe9\x89\x17\xc1\x58\x2c\xf3\x42\xf0\x86\x25\x76\x5e\x40\x7b\x6e\x37\xe5\xad\xb8\x69\xf4\x8b\xca\x6e\x93\xc4\xcb\x6f\x83\xa0\x64\x4b\x5f\x38\xaf\x4b\x63\x57\xd8\x25\xe9\xce\xe3\xcf\x4f\x42\x9e\xfd\x4d\xb1\x34\x90\x67\x76\x5d\x2c\xf2\xd4\x9d\x70\x9e\xba\xf5\x68\x6d\x5d\x8e\xba\x95\xa6\xb9\x1e\xb0\x21\x32\xd3\x21\x33\x1d\x32\xd3\x21\x33\xdd\xa9\x65\xa6\x5b\xbf\xf3\xb6\x66\xa5\xdb\xb1\x93\xc6\xde\x72\xd1\xad\x6f\xfe\xf2\x3c\x74\x43\xee\x83\x4d\xb2\xcf\xad\xef\x83\xe5\x99\xe7\x76\xdc\x07\xc8\x37\x87\x7c\x73\xc8\x37\x87\x7c\x73\xc8\x37\xb7\xb3\x7c\x73\x1d\x76\xff\x85\x5c\x73\x2b\x2f\x3a\x3d\x23\x1f\xcd\x6e\xad\x41\xbe\xbc\x23\xcb\x97\xb7\x7e\x12\xad\xca\x95\xb7\xe3\xd9\x74\xd0\x0c\x79\xeb\x7b\x66\x45\x76\xbc\x5d\xef\x1a\x43\xcd\x89\xb7\xbe\xd3\x5a\xcc\xfa\x5b\x9b\xb3\xec\x5f\x7f\x6e\x44\x95\x36\x0c\xa6\x02\x6c\xda\xd8\x17\xe8\x5f\x73\xd6\x7a\x60\x26\x60\x26\x06\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\x04\xcc\xb4\x53\x83\x31\xee\x40\x01\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x1b\x14\x5f\x6b\x49\xb0\xbd\x23\xcc\x56\x67\x6b\xd2\x89\x01\x6a\xca\x1e\x63\xb9\x34\x56\xbe\x17\xc6\x76\x59\x29\x01\xa4\xe8\x58\x81\x51\xeb\x11\x95\x76\x33\x6a\x68\xc5\xb5\xb2\x77\x41\xe8\x40\xe7\x40\xe7\x8e\x8e\xce\x81\xcc\x81\xcc\x81\xcc\x31\x90\x39\x90\x39\x90\x39\x90\x39\x90\x39\x90\x39\x90\x39\x90\x39\x90\x39\x90\x39\x90\x39\x90\x39\x90\xb9\xe3\x24\x73\x48\xbd\x00\xec\x08\xec\x08\xec\x08\xec\x08\xec\x08\xec\xb8\x31\x76\x7c\x7f\xbd\x15\x3a\x3c\xc8\x6d\xb1\x73\xa3\x1d\x89\xa2\x29\xb7\x9b\x81\x5d\xc1\xfb\x22\x51\x2c\xd0\xbe\xf7\xb7\x77\x5f\xbf\xb7\xbd\x8b\x8b\x72\x37\xe4\x6d\xb5\x8e\xa4\x10\xc6\x93\x83\x6e\xef\x6b\x2f\xbf\xa9\x57\x60\xfd\x22\x3b\x48\x78\xac\x31\xfd\x64\x56\xd0\x70\xba\xc5\x1a\x64\xbf\x62\xf9\xe8\xf2\x16\xd7\xcf\x92\x72\x70\x71\xea\xfc\xe8\x0c\x66\x0d\xb7\xdc\x11\xfd\x7e\xd9\x1d\xd1\xa7\xbf\x92\xd7\xe3\xf3\x81\xc7\xb5\xbe\x07\x3d\x07\x3d\x07\x3d\x07\x3d\x07\x3d\x07\x3d\x07\x3d\x07\x3d\xdf\x64\xb7\x05\x3d\x07\x3d\x07\x3d\x07\x3d\x07\x3d\x07\x3d\x07\x3d\x3f\x3b\x7a\x0e\xce\x0a\xce\x0a\xce\xda\x3e\x9b\xc0\x59\x97\xae\x33\x70\xd6\xcd\x39\xeb\x2b\x2e\x4e\x35\xa7\x7f\xbf\x70\xc8\x94\xc9\x02\x95\x68\x65\xc3\xce\xda\xcd\x99\x90\x29\x66\x91\x0a\x7d\xf4\xe5\x6e\x16\x4d\xd9\x31\xeb\x31\x4c\xd6\xe7\x63\xb2\xee\x96\x44\x77\x9d\xd9\xfa\xb5\x29\xf9\x2f\x97\x4f\xc6\xed\x52\x70\xef\x84\xc1\x7f\xa2\xe5\xf8\x8d\x16\x46\xde\x4b\x82\x6d\x98\xe3\x61\x8e\x87\x39\x1e\xe6\xf8\x53\x33\xc7\x77\x3b\x55\x5a\x4d\xf2\x7b\xcb\x9a\x4f\x4a\xa3\x35\x44\x5c\xd2\x3d\xf7\x81\x9e\x51\x66\x1e\x34\xda\x56\x97\x23\x26\x82\xa5\xba\xb7\x72\xad\xb3\xb3\x5b\xc9\x62\x69\x76\x16\x95\xb1\x52\xfa\xcd\x29\x64\x61\xf6\xf2\xbd\x94\x2c\x8c\x33\x2d\xa9\x3d\x09\x3f\xe3\x49\x91\x93\x8c\x4b\xbb\xe4\xdd\xdc\xb0\x1d\xcc\xa6\x65\x46\xab\x2c\xcd\x54\xa0\xe5\x06\xa3\xeb\xd6\x4c\xa5\x63\xf6\x07\x7d\x91\x46\x8b\xe6\x8e\x56\x74\x6f\x93\xe4\x03\x59\x6f\x42\xbd\x4b\x97\x52\x0f\xbc\x56\x1e\xdc\x94\xb4\xc5\x2d\xa6\x43\xef\x30\x50\xa6\x2d\x87\x19\xa6\xbd\x31\x94\x6e\x5d\xb1\x9c\xa3\xec\xad\x47\x7e\xaf\x6b\xc3\xb1\x64\xb9\x51\x52\xd9\x44\x4c\x8d\xe4\xec\xed\x6d\x95\x28\x61\x77\x2f\x9a\x3a\xa5\x30\x87\xc3\x44\xeb\x81\xf2\x4a\x8a\x88\xd3\x04\xb5\xfa\xac\x56\xbd\xdd\x09\x6a\x6c\xef\x7e\x69\x58\xb5\x26\x9e\xcd\x44\x18\xf3\x42\x24\x2f\x95\x48\x5b\x1d\xb9\x71\x72\x69\xf5\x55\xea\x74\x16\x65\x3c\xa0\x55\x13\xab\xd0\x0b\x04\xd5\xa1\x4d\xfa\x82\x9b\xa5\x65\xae\x2b\x59\x1f\x2e\xae\xdf\x74\x0d\xb2\x1f\x99\x9a\x3d\xd0\x15\x31\x36\xf5\x9c\x09\x2e\x5b\xeb\xb8\xc5\x30\x53\x9d\xef\xa8\xca\x6d\x36\x80\x35\x56\x80\xa1\x4c\xff\x4d\xf0\x59\xb7\x7e\x59\x8e\xd0\xf6\x36\xfd\x01\xd3\x00\xd3\x00\xd3\x00\xd3\x00\xd3\x76\x06\xd3\x3a\x9e\x05\x0b\x40\x6d\x7f\xc7\xe2\xa7\xda\xcd\x77\x69\x22\x78\x2e\xfc\x16\x74\x97\xa9\x94\x47\x24\x1d\xdd\xa9\x24\x0e\x5e\x1a\x76\x30\x37\xe9\xaa\xab\xf3\xf4\xb4\xbb\x19\xff\x63\xcc\x7e\x98\xfd\xcc\x88\x2e\xa9\x90\x7a\xb1\x54\x67\xaa\x60\x2a\x4b\x1f\xb8\x74\x76\xb9\xac\x14\xd7\x53\x9e\x38\x5d\xf9\xfe\xc2\xfc\x7c\x7f\xc1\xa6\xb1\xe4\x49\xfc\x6f\x77\x90\x4c\x04\xe3\x61\x48\xb3\xf3\xda\x98\xdf\xc3\x4a\x0d\x33\xc5\x8f\xf2\xea\x25\xa3\x9f\x8e\xd9\xe7\x98\x36\xc7\x5a\xd5\x55\xb6\xd8\x36\xda\x7e\x8c\xa9\xc8\xa8\xc7\xa4\xa3\xa8\xe2\x61\x9b\x01\x35\x2d\xf8\xe4\xda\xbe\x37\x13\xdf\xa2\x62\x46\x4d\xd7\x0b\xf6\x41\x3d\xb3\x88\x67\x13\x1e\x35\xac\xe9\x5e\xa9\x11\xd9\x54\x65\x33\x3d\x26\xad\xfd\xf5\x6d\xae\x45\xcb\xbb\x8b\x84\x5e\x27\xb1\xa6\xa6\x6f\x63\x2d\x4d\x06\x71\x58\xa9\xc2\x24\x2b\x90\x71\xc2\x8f\xb1\x3e\xac\xed\x49\xea\xa4\x81\x71\x6d\x30\xdd\x39\xe2\x54\xed\x2b\x6f\x63\x6e\x7e\x6c\xcc\x6e\x83\x40\xa4\x05\x9d\x4d\x75\xcd\x6e\x64\xda\x30\x62\x57\x76\x02\x36\x27\x68\xfe\x33\x1b\xfd\xc2\x83\xc7\x28\x53\xa5\x0c\xf5\x53\x64\xab\xa5\x87\xe6\x3a\xce\x88\x90\x56\x3e\x6e\x16\xe2\x5a\x30\xf1\x25\xfd\xcc\x46\x5f\x54\x26\x6a\xc5\xb2\x80\xe7\x01\x0f\x75\xeb\x6d\xff\x18\x73\x3e\x95\x97\x1b\xd5\x73\xa1\xc0\xa9\x2f\x63\x9b\x09\x99\xce\x4f\xf7\x03\x5a\x0a\x40\xbe\x8f\x87\x7c\x77\x9b\x5d\xab\xe8\xf7\xfe\x94\xf9\x43\x72\xf0\x6e\xfd\xb4\x82\x85\xef\xef\xc0\x1f\x2a\x15\xef\xd6\x85\x8b\x64\xfc\xb5\xc7\x69\x2b\x85\x46\x54\xed\x86\x44\xef\x47\xc1\x8b\xb2\x2b\xca\x3b\xd9\x10\x3c\x73\x84\x57\xe2\xd5\xb1\x86\xe3\x1d\x69\x8c\x2f\x7c\x38\xe0\xc3\x71\xda\x3e\x1c\xf0\x7a\x80\xd7\x03\xbc\x1e\xe0\xf5\x00\xaf\x87\x83\x7b\x3d\x00\xa7\x83\xb0\x82\xb0\x82\xb0\x82\xb0\x82\xb0\x82\xb0\x82\xb0\x2e\x3d\x04\x00\x3d\x00\x3d\x00\x3d\x00\x3d\x00\x3d\x70\xdf\xe1\x2a\xba\x82\xfb\x0e\x71\xdf\xe1\x9b\xe5\x43\x84\x4b\xf6\x07\x7e\xf9\x83\xfd\xeb\xcf\x6a\x90\x55\xde\x33\x46\x33\x6a\x0c\xe3\x5b\x10\x33\xf3\xea\x9e\x98\xd9\x76\xa1\xa6\x2b\xa6\xd8\xde\x36\xd6\x5e\x82\x51\x11\x10\x55\x9f\x06\x83\x0d\x88\x22\xd3\xc6\x6f\x5c\xf2\x48\x64\xc6\x48\x67\x36\xd7\x3c\x57\x41\x4c\x5a\xa7\x37\x87\x71\xb2\x6a\xaa\x8c\x09\x59\x68\xa9\xd8\xa9\xe1\x33\xfe\xa8\x7b\xb1\x78\x10\xb9\x70\xa2\x65\x3d\xec\xc7\x85\x07\x91\x68\x4d\xa6\x2f\x95\xb1\x9b\xf7\x3f\xe9\x67\x33\x1e\x10\xeb\x4a\x94\x8c\x8c\x20\x49\xe6\xa9\x40\x4f\xca\x58\x9a\x1d\x8d\xcc\x3f\xd5\xb3\x64\xff\xb7\x24\x8e\x4d\x5e\x18\x9d\xb8\x1f\xae\xaf\x23\x95\x70\x19\x8d\x55\x16\x5d\xa7\x8f\xd1\x75\x29\xe3\x40\x85\xe2\xfa\x6f\x5f\xf3\x3b\x5d\xca\xd6\xf6\x64\xdb\x39\x7d\x0e\xcf\xa0\x24\xcf\xd3\x11\x08\xbb\x0a\x83\xef\x3b\x08\x83\x1f\x8d\xb1\x6c\xe8\x0d\x79\xbf\xb6\x21\xc6\x11\x78\xe8\x2d\x39\x55\xf9\x9c\xc4\x9f\xe3\x92\xcf\xdf\xb0\x5d\xdc\x91\x63\x1e\xfa\xcf\x9e\xae\xca\xd9\x46\x38\x5c\x76\x3d\xce\x80\x84\xc3\x23\xb9\x87\x04\xa2\x5f\x7d\x90\x07\x2b\xfa\x21\xf2\xfb\x8c\x22\xbf\x11\xe2\x86\x10\x37\x84\xb8\x21\xc4\x0d\x5a\xeb\xb2\x55\x34\xc8\x20\x91\xc3\x68\x78\x88\x71\x71\x0f\xae\x8c\x71\x39\x32\xc5\xce\xdb\xe4\x7b\x8f\x6c\x21\xef\x86\xa6\x34\xb6\xb9\xfe\xa5\x0b\x39\x4c\x38\x4b\x4d\x8e\x11\x7f\x91\x93\xda\x44\xff\xc5\x83\x62\xcc\xd8\x67\xfd\x5f\xf7\xef\x33\x1e\x93\x61\x32\x67\x41\x52\xe6\x85\xc8\xaa\xd3\xc9\x78\xb3\xb2\x24\x7e\x14\x6c\xe4\x6b\x3d\xd2\x42\xa8\x13\x9c\xc6\xec\x2e\xe1\x52\x5a\x27\x13\x12\x6d\x78\x62\xa4\xa9\x9b\x9f\xb6\xd9\xee\xa9\x8e\x07\x12\x3a\x7c\xa7\x79\x99\x7d\xe2\xba\x4f\xb7\x94\x7d\x36\x3d\xa6\x0f\x9a\x34\x77\xbd\x63\xfd\xb8\xca\x5c\x64\xe4\x80\x55\x89\xdf\x2f\x3b\xee\x28\x5d\x99\xd3\xf5\x1e\x18\xf6\x69\x08\x83\x61\xcb\xcb\x4b\x4e\x16\xbd\x37\x1f\xe9\xb1\xb2\x05\xcf\x27\xd6\x64\x6d\x30\x9d\x6a\xd4\x05\xdc\x0f\x85\xd9\xc3\x59\xe1\xe8\x9c\x15\xc8\x43\x6a\xab\xac\xda\x57\xf4\xee\xdf\x57\x6f\xee\x33\x91\x45\xa2\xd3\x93\x79\x91\xf1\x42\x44\x71\x70\xd5\xfd\x1d\xfd\xf7\x8b\x7d\x92\x8e\x91\x2e\xa2\x1b\xb9\xd4\x52\xc4\x9e\xf1\xe6\x7b\xb5\x18\x47\xdf\x1f\xb4\x15\x7d\x57\x2e\x16\x2b\xb4\xa6\xbb\xa6\xeb\x1d\x83\x6d\xfd\xc4\x6d\xeb\xe7\xe3\x56\x31\x17\x21\xe3\x16\x97\x89\xe2\x4a\x8d\x53\xbb\xbd\x19\xe0\xed\x92\xdd\xea\x1d\x59\x16\x4d\xe8\x36\x4f\xe8\x4d\xa9\xe4\x95\x79\x9b\x9e\x20\xe3\x7e\xce\xde\xfe\x9a\x2b\x79\x67\x02\xe4\x7f\xd3\xfb\xa2\xfd\xfb\x87\xdb\x2d\xab\x7f\x7c\x37\x24\x7f\x8f\xee\xf3\xe6\x8b\xca\x02\xa2\x1f\x91\xa2\xc1\x57\xec\xfe\x62\xaa\xff\xed\xfe\x82\xdd\x36\x7a\x73\xcc\xbe\x16\x16\x55\x90\x3a\x65\x17\xea\x15\x0f\x68\x00\x28\xc4\x3a\x89\x03\x6b\x7c\x25\xed\x4b\x3d\xdb\xb1\x35\x21\xc8\xa9\x50\x69\x22\xc6\xcc\x7c\x93\x6e\x56\x70\x73\x8a\xa2\x1e\x5a\x07\xc2\x7f\x7e\x9b\xee\xd5\x1f\x82\x12\x66\x7e\x80\x12\xd6\x52\xe6\x40\x94\xb0\x74\xce\xcf\xfe\xb8\xd4\xb0\xb2\x77\xeb\x5e\x9a\xf0\xe0\xf5\x92\xa1\x2d\xe7\x2c\x65\x43\xb8\xdf\x42\x4e\x6c\x1b\xa6\xf3\x91\x13\x07\x24\x8e\x41\x6a\xf0\xbf\xc0\xfd\x16\xe2\xcf\xa2\xf8\x53\x1e\x9b\x0d\xfa\x0d\xdb\xa1\xcf\xea\x75\x6e\x98\x77\xcd\x75\x75\x37\x04\xd5\x7c\xc7\x9d\x87\x07\x60\xa9\x16\xee\x63\x57\xc4\x66\x52\x8d\x16\x80\x16\x80\x16\x80\x16\x80\x56\xdb\x83\xc7\x00\xb4\xfa\x3b\x55\xb7\x45\x5b\x2d\xc7\xea\x51\x1a\x31\x00\xb8\x60\xb8\x38\x3f\xc3\x05\x00\x57\x9f\xf3\x06\x80\x0b\xa6\x2a\x28\x65\x87\x56\xca\x00\xb8\xda\x00\x57\x9f\xf6\x97\x6d\x51\xd7\xa9\xc8\x8a\x00\x5e\x90\x1b\xdb\x86\xe9\x7c\xe4\xc6\x01\x89\x67\x90\x22\xfc\x2f\x00\x5e\x10\x87\xce\x07\x78\xd1\x95\x9f\x4b\xf9\xd6\x4e\x89\x96\xbd\x19\x5d\x86\xf1\x53\x1c\x96\x3c\xa9\x5f\x3a\xcb\x7d\x2e\x84\x25\x3d\x32\xae\x5d\x37\xf0\xc1\x5f\x54\x30\xa2\x32\x47\x55\x8e\x9c\x46\xd2\x13\x2f\x82\xb1\x58\xe6\x85\xe0\x0d\x4b\xec\xbc\x80\xf6\xdc\x6e\xca\x5b\x71\xd3\xe8\x17\x95\xdd\x26\x89\x97\xdf\x06\x41\xc9\x96\xbe\x70\x5e\x97\xc6\xae\xb0\x4b\xd2\x9d\xc7\x9f\x9f\x84\x3c\xfb\x9b\x62\x69\x20\xcf\xec\xba\x58\xe4\xa9\x3b\xe1\x3c\x75\xeb\xd1\xda\xba\x1c\x75\x2b\x4d\x73\x3d\x60\x43\x64\xa6\x43\x66\x3a\x64\xa6\x43\x66\xba\x53\xcb\x4c\xb7\x7e\xe7\x6d\xcd\x4a\xb7\x63\x27\x8d\xbd\xe5\xa2\x5b\xdf\xfc\xe5\x79\xe8\x86\xdc\x07\x9b\x64\x9f\x5b\xdf\x07\xcb\x33\xcf\xed\xb8\x0f\x90\x6f\x0e\xf9\xe6\x90\x6f\x0e\xf9\xe6\x90\x6f\x6e\x67\xf9\xe6\x3a\xec\xfe\x0b\xb9\xe6\x56\x5e\x74\x7a\x46\x3e\x9a\xdd\x5a\x83\x7c\x79\x47\x96\x2f\x6f\xfd\x24\x5a\x95\x2b\x6f\xc7\xb3\xe9\xa0\x19\xf2\xd6\xf7\xcc\x8a\xec\x78\xbb\xde\x35\x86\x9a\x13\x6f\x7d\xa7\xb5\x98\xf5\xb7\x36\x67\xd9\xbf\xfe\xdc\x88\x2a\x6d\x18\x4c\x05\xd8\xb4\xb1\x2f\xd0\xbf\xe6\xac\xf5\xc0\x4c\xc0\x4c\x0c\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x09\x98\x69\xa7\x06\x63\xdc\x81\x02\xbe\x06\xbe\x06\xbe\x06\xbe\x06\xbe\x36\x28\xbe\xd6\x92\x60\x7b\x47\x98\xad\xce\xd6\xa4\x13\x03\xd4\x94\x3d\xc6\x72\x69\xac\x7c\x2f\x8c\xed\xb2\x52\x02\x48\xd1\xb1\x02\xa3\xd6\x23\x2a\xed\x66\xd4\xd0\x8a\x6b\x65\xef\x82\xd0\x81\xce\x81\xce\x1d\x1d\x9d\x03\x99\x03\x99\x03\x99\x63\x20\x73\x20\x73\x20\x73\x20\x73\x20\x73\x20\x73\x20\x73\x20\x73\x20\x73\x20\x73\x20\x73\x20\x73\x20\x73\xc7\x49\xe6\x90\x7a\x01\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x71\x0d\x76\x9c\x10\x62\xdc\x0a\x16\x1e\xe4\x7e\xd8\xb9\xf1\x8d\x44\xc1\x62\x39\x55\xd9\xcc\xcf\x67\xce\x0c\x9c\x58\x0e\xf9\x22\x51\xfc\x42\x9c\xef\xee\xeb\x3f\xe7\x1f\xc5\x65\xb8\x1b\x32\x35\xdf\x89\x47\x4e\xd4\x26\x73\x68\xf3\x4d\xfd\x93\x6d\x6b\xe6\xe9\xe6\xb8\x97\x4d\x43\xc1\x35\x3b\x60\x87\x35\xf3\xc7\xcd\xed\xdd\xd7\xef\x6d\x2f\x60\xe5\x6c\xbe\x72\x5c\x47\x52\x80\xef\x29\x2c\xa0\xff\xf3\x74\xb3\xe1\x1a\xfa\xff\xa9\xc9\x6e\x43\xc2\x8d\xb9\x33\xb3\xc2\xb5\xd3\xa7\x9d\x9b\xca\xaf\x6a\xb2\x62\xd6\xeb\x77\xed\xb4\xff\x55\x4d\x70\xf3\xef\x7c\x57\x0f\x66\x99\x8d\x69\x3e\xe9\x55\xf5\xab\x9a\x9c\xe8\x6a\x5a\xef\xd5\xd1\x57\xb8\xf5\x64\x71\xbe\x38\x77\x8e\xe6\x7a\x99\x73\xdd\xb8\x81\xd7\x06\xbc\x36\xe0\xb5\x01\xaf\x0d\x78\x6d\xc0\x6b\x03\x5e\x1b\xf0\xda\xd8\x64\xb7\x85\xd7\x06\xbc\x36\xe0\xb5\x01\xaf\x0d\x78\x6d\xc0\x6b\x03\x5e\x1b\x67\xe7\xb5\x01\xbe\x0f\xbe\x0f\xbe\xdf\x3e\x9b\xc0\xf7\x97\xae\x33\xf0\xfd\x2e\x7c\xff\xe9\x66\x59\x14\xf1\x3c\x7e\x31\xc7\x7b\xbf\x04\xc6\x94\xc9\x02\x95\x68\x6d\xc2\x4e\xcb\xd5\xe0\xc5\xbc\x62\xd1\xcb\x47\xff\x62\x15\x87\x3b\xf7\x7a\xd7\xdc\xd8\x30\x30\x9f\x8f\x81\xb9\x5b\xaa\xe5\x75\x46\xe6\x35\xeb\xf2\x35\x19\xb1\xb7\x4b\xd4\xbe\x13\x16\xfd\x89\xd6\xdb\x37\x5a\x18\x79\x2f\x69\xd8\x61\x3c\x87\xf1\x1c\xc6\x73\x18\xcf\x4f\xcd\x78\xde\xed\x54\x69\x35\xa0\xbf\x32\x79\x7f\xf7\xbd\x97\x54\x3c\x6b\x36\xb8\xa4\x6c\x08\x81\x9e\x51\x66\x1e\x34\xda\x56\x97\x23\x26\x82\xa5\xba\xb7\x72\xad\x61\xb3\x5b\xc9\x62\x69\x76\x16\x95\xb1\x52\xfa\xcd\x29\x64\x61\xf6\xf2\xbd\x94\x2c\x8c\x33\x2d\x95\x3d\x09\x3f\xe3\x49\xed\x92\x8c\x4b\xbb\xe4\xdd\xdc\xb0\x1d\xcc\xa6\x65\x46\xab\x2c\xcd\x54\xa0\xe5\x06\xa3\x99\xd6\x0c\x9b\x63\xf6\x07\x7d\x91\x46\x8b\xe6\x8e\x56\x4b\x6f\x93\xe4\x03\xd9\x5a\x42\xbd\x4b\x97\x52\x0f\xbc\x16\xf5\xdd\x94\xb4\xc5\x2d\x26\xcd\xef\x30\x50\xa6\x2d\x87\x19\xa6\xbd\x11\x8f\x6e\x5d\xb1\x9c\x7a\xec\xad\x47\x7e\xaf\xeb\xae\xb1\x64\xb9\x51\x29\xd9\x44\x4c\x8d\xe4\xec\xad\x63\x95\x28\x61\x77\x2f\x9a\x3a\xa5\x30\x87\xc3\x44\x6b\x6d\xf2\x4a\x8a\x88\xd3\x04\xb5\xda\xa7\x56\x94\xdd\x09\x6a\x2c\xe5\x7e\x69\x58\x1d\x25\x9e\xcd\x44\x18\xf3\x42\x24\x2f\x95\x48\x5b\x1d\xb9\x71\x72\x69\xb5\x4b\xea\x74\x16\x65\x3c\xa0\x55\x13\xab\xd0\x0b\x04\xd5\xa1\x4d\xfa\x82\x9b\xa5\x65\xae\x2b\x59\x1f\x2e\xae\xdf\x74\x0d\xb2\x1f\x99\x9a\x3d\xd0\x15\x31\x36\xf5\x9c\x09\x2e\x5b\xeb\xb8\xc5\x30\x53\x9d\xef\xa8\xca\x6d\x1a\xfb\x1a\x9d\x7d\x28\xd3\x7f\x13\xd8\xd5\xad\x5f\x96\x03\xaf\xbd\x4d\x7f\xa0\x2f\xa0\x2f\xa0\x2f\xa0\x2f\xa0\xaf\x9d\xa1\xaf\x8e\x67\xc1\x02\xfe\xda\xdf\xb1\xf8\xa9\x76\x3f\x62\x9a\x08\x9e\x0b\xbf\x05\xdd\x65\x2a\xe5\x11\x49\x47\x77\x2a\x89\x83\x97\x86\x1d\xcc\x4d\xba\xea\x82\x45\x3d\xed\x6e\xc6\xff\x18\xb3\x1f\x66\x3f\x33\xa2\x4b\x2a\xa4\x5e\x2c\xd5\x99\x2a\x98\xca\xd2\x07\x2e\x9d\x5d\x2e\x2b\xc5\xf5\x94\x27\x4e\x57\xbe\xbf\x30\x3f\xdf\x5f\xb0\x69\x2c\x79\x12\xff\xdb\x1d\x24\x13\xc1\x78\x18\xd2\xec\xbc\x36\xc6\xf2\xb0\x52\xc3\x4c\xf1\xa3\xbc\x7a\xc9\xe8\xa7\x63\xf6\x39\xa6\xcd\xb1\x56\x75\x95\x2d\xb6\x8d\xb6\x1f\x63\x2a\x32\xea\x31\xe9\x28\xaa\x78\xd8\x66\x40\x4d\x0b\x3e\xb9\xb6\xef\xcd\xc4\xb7\xa8\x98\x51\xd3\xf5\x82\x7d\x50\xcf\x2c\xe2\xd9\x84\x47\x0d\xd3\xb8\x57\x6a\x44\x36\x55\xd9\x4c\x8f\x49\x6b\x7f\x7d\x9b\x6b\xd1\xf2\xee\x22\xa1\xd7\x49\xac\xa9\xe9\xdb\x58\x4b\x93\x41\x1c\x56\xaa\x30\xc9\x0a\x64\x9c\xf0\x63\x9c\x53\x70\x1d\xfd\xea\xa4\x81\x71\x6d\x30\xdd\x39\xe2\x54\xed\x2b\x6f\x63\x6e\x7e\x6c\xcc\x6e\x83\x40\xa4\x05\x9d\x4d\x75\xcd\x6e\x64\xda\x30\x62\x57\x76\x02\x36\x27\x68\xfe\x33\x1b\xfd\xc2\x83\xc7\x28\x53\xa5\x0c\xf5\x53\x64\xab\xa5\x87\xe6\x3a\xce\x88\x90\x56\x3e\x6e\x16\xe2\x5a\x30\xf1\x25\xfd\xcc\x46\x5f\x54\x26\x6a\xc5\xb2\x80\xe7\x01\x0f\x75\xeb\x6d\xff\x18\x73\x3e\x95\x97\x1b\xd5\x73\xa1\xc0\xa9\x2f\x63\x9b\x09\x99\xce\x4f\xf7\x03\x5a\x0a\xc0\xa9\x8f\x87\x53\x77\x9b\x5d\xab\x58\xf5\xfe\x94\xf9\x43\x52\xeb\x6e\xfd\xb4\x82\x5c\xef\xef\xc0\x1f\x2a\xc3\xee\xd6\x85\x8b\x1c\xfb\xb5\xc7\x69\x2b\x52\x46\x74\xe9\x86\x44\xef\x47\xc1\x8b\xb2\x2b\xca\x3b\xad\x30\x38\x73\x6e\x57\x32\xd5\x60\x43\xe2\x86\x1a\xeb\x0a\x37\x0b\xb8\x59\x9c\x8e\x9b\x05\x1c\x13\xe0\x98\x00\xc7\x04\x38\x26\xc0\x31\xe1\xe0\x8e\x09\x20\xde\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x4b\x0f\x01\x70\x09\x70\x09\x70\x09\x70\x09\x70\x09\xdc\xfb\xb7\x0a\x80\xe0\xde\xbf\x8b\x13\xbc\xf7\x0f\x49\x0e\x06\x7e\x09\x82\xfd\xeb\xcf\x6a\x90\x55\xde\x33\xca\x32\xda\x07\xe3\x6b\xa8\x95\x79\xac\x2f\x6e\xb5\x5d\x44\xe6\x8a\xf9\xd2\xdf\xe6\xd6\x4b\x50\x26\x02\x83\xea\xe3\x3c\xd8\xc0\x20\xb2\x1f\xfc\xc6\x25\x8f\x44\x66\x2c\x61\x66\x2b\xcc\x73\x15\xc4\xa4\xda\x79\x9b\x13\x27\xd3\xa1\xca\x98\xd6\xfc\x8b\x17\xaf\xeb\xce\xf8\xa3\xee\xc5\xe2\x41\xe4\xc2\xc9\x6f\xf5\xf0\x17\x17\x26\x43\xf2\x2b\xd9\x97\x54\xc6\x6e\xde\xff\xa4\x9f\xcd\x78\x40\x40\x29\x51\x32\x32\xd2\x1a\xd9\x80\xb4\xb2\xce\x63\x69\xf6\x1f\xb2\xb1\x54\xcf\x92\x91\xdd\xe2\x2e\x36\x79\x61\x74\xea\x7d\xb8\xbe\x8e\x54\xc2\x65\x34\x56\x59\x74\x9d\x3e\x46\xd7\xa5\x8c\x03\x15\x8a\xeb\xbf\x7d\xcd\xef\x74\x29\x5b\x1b\x6d\x6d\xe7\xf4\x39\x3c\x83\x12\xef\x8e\x48\xea\xea\x2a\x71\xbd\xef\x20\x71\x7d\x34\x26\xa7\x83\xd7\xf4\xfd\xda\x9a\x1a\x97\xd6\x83\x57\xf5\xa4\xc4\x58\x12\x22\x06\x26\xc6\xbe\x61\x5b\x5d\xa9\x62\xfe\xe1\x3f\x7b\xba\x59\x65\x9d\x90\xd4\xb8\x4d\xe5\x40\x42\xd2\x91\x5c\x5b\x01\x09\xa9\x3e\xc8\x83\x95\x90\x10\x28\x7c\x46\x81\xc2\x88\x88\x42\x44\x14\x22\xa2\x10\x11\x05\xe5\x6e\xd9\x2a\x1a\x64\x4c\xc1\x61\xd4\x28\x84\x44\x2c\x0f\x89\x18\x9a\x72\xe5\xcd\xc7\xbd\x07\x42\x10\x3f\x6f\xca\x58\xab\x55\x24\xfd\xc2\x8e\xa2\x1f\x6a\xa2\x86\xf8\x8b\x7c\x9a\x26\xfa\x2f\x1e\x14\x63\xc6\x3e\xeb\xff\xba\x7f\x9f\xf1\x98\x4c\x6c\x39\x0b\x92\x32\x2f\x44\x56\x1d\x20\xc6\xf9\x91\x25\xf1\xa3\x60\x23\x5f\xc3\x91\x96\x13\x9d\x6c\x33\x66\x77\x09\x97\xd2\xfa\x24\x90\xf4\xc1\x13\x23\xf0\xdc\xfc\xb4\xcd\x8e\x4c\x75\x3c\x90\x5c\xe0\x3b\xcd\x8b\xd5\x13\xd7\x7d\xba\xa5\xec\xb3\xe9\x31\x7d\x16\xa4\xb9\xeb\x1d\xeb\xf6\x53\xe6\x22\x23\x7f\x9d\x4a\x42\x7e\xd9\x71\x47\xe9\xca\x9c\x2e\x6c\x1e\xf6\x81\x05\xc3\x99\xde\x3e\x87\xba\xb5\x6f\x81\x7f\xeb\x09\xfc\x17\x3e\x8c\x64\xfd\xed\x6d\x06\xc7\xee\x85\x63\xd3\x12\xd8\x2a\x8f\xef\x15\xbd\xfb\xf7\xd5\xfb\xef\x4c\x64\x91\xe8\xf4\x64\x5e\x64\xbc\x10\x51\x1c\x5c\x75\x7f\x47\xff\xfd\x62\x9f\xa4\x9d\xbe\x8b\xa8\x44\x4e\x92\x14\x83\x65\xfc\xb3\x36\x12\x9b\xe8\x5b\xa7\x49\xdf\x57\x28\x12\x77\x4d\xcf\x28\x06\x73\xf3\x89\x9b\x9b\xcf\x07\xc8\xcf\x05\x30\xb8\xc5\x65\x82\x6c\x52\xe3\x73\x6c\x03\xb7\xdf\x2e\xd9\x7a\xde\x91\xb1\xcd\x44\xd6\xf2\x84\xde\x94\x4a\x5e\x99\xb7\xe9\x09\xb2\x77\xe7\xec\xed\xaf\xb9\x92\x77\x26\x7e\xf9\x37\xbd\xc9\xd9\xbf\x7f\xb8\xad\xaf\xfa\xc7\x77\x43\xf2\x14\xe8\x3e\x6f\xbe\xa8\x2c\x20\x20\x10\x29\x1a\x7c\xc5\xee\x2f\xa6\xfa\xdf\xee\x2f\xd8\x6d\xa3\x37\xc7\xec\x6b\x61\xad\xf7\xa4\xbe\xd8\x85\x7a\xc5\x03\x1a\x00\x8a\x80\x4d\xe2\xc0\xda\x23\x49\xdb\x51\xcf\x76\x6c\x4d\x84\x68\x2a\x54\x9a\x88\x31\x33\xdf\xa4\xc0\x77\x37\xa7\xc8\x29\xbd\x75\x20\xfc\xe7\xb7\xe9\x5e\xfd\x21\x28\x3d\xe6\x07\x28\x3d\xfb\x56\x7a\xd2\x39\x6d\x65\x60\x6a\x4f\xd9\xbb\x45\x2b\x4d\x78\xb0\x99\x74\x66\xdf\x39\x4d\xf9\x0c\xde\x91\x10\xc6\x4e\x5c\x18\x1b\x90\xcc\x83\xa3\xd9\xff\x72\xe6\xde\x91\xa7\x25\x44\x94\x83\xb3\x9c\xbe\x61\xaf\xf1\x38\xbc\xce\x0d\xe4\xac\x39\x1e\xee\x06\xae\x99\xef\xb8\x83\xe8\xb5\x98\xcd\xa2\x59\xec\x2d\x58\xb1\xee\x57\xb0\x0e\xb0\x8e\x25\x6d\x06\xeb\x00\xeb\xe8\x87\x75\x6c\x77\x8a\x2d\xa5\x1e\x2d\xc7\xd8\x51\xea\xd6\x60\x1f\x50\xb7\xcf\x4f\xdd\x06\xfb\xe8\x73\xde\x80\x7d\xc0\xc0\x02\x25\x08\xec\xa3\x47\xf6\xb1\xad\xcd\x61\x29\x05\x39\x15\x79\x0d\x2c\x04\xc2\xd9\x89\x0b\x67\x03\x92\x81\x70\x54\xfb\x5f\xc0\x42\x4e\x48\xa8\x38\x2e\x16\x42\xd7\xd3\x11\xfa\xd8\x29\xec\xb0\x37\xf6\xca\x30\x7e\x8a\xc3\x92\x27\xf5\xcb\x10\xb9\xbf\xa3\xfb\x57\x35\x19\xd7\xc2\x8c\x3f\xf8\x00\xe5\x11\xbd\x3f\xaa\xf2\x34\x34\x2e\xde\xf7\x92\x0a\x8b\x65\x5e\x08\xde\x30\x10\xce\xcb\x31\xcf\x35\xab\x93\xbd\xed\xee\x8b\xca\x6e\x93\xc4\x8b\x34\x83\x00\x28\x4b\x5f\x38\xaf\x9b\x09\x57\x98\xd0\xe8\x62\xcd\xcf\x4f\x42\x9e\xe7\x6d\x85\x34\x7a\xa7\x76\x65\x21\x52\x1c\x9d\x70\x8a\xa3\xf5\xa0\x66\x5d\x7a\xa3\x95\xb6\xa1\x1e\x20\x14\x92\x1a\x21\xa9\x11\x92\x1a\x21\xa9\xd1\xa9\x25\x35\x5a\xbf\xf3\xb6\x26\x34\xda\x31\xf2\xdf\x5b\x1a\xa3\xf5\xcd\x5f\x9e\xc2\x68\xc8\x7d\xb0\x49\xe2\xa2\xf5\x7d\xb0\x3c\x69\xd1\x8e\xfb\x00\xa9\x8a\x90\xaa\x08\xa9\x8a\x90\xaa\x08\xa9\x8a\x76\x96\xaa\xa8\xc3\xee\xbf\x90\xa6\x68\xe5\xbd\x84\x67\xe4\xf1\xd7\xad\x35\x48\xb5\x74\x64\xa9\x96\xd6\x4f\xa2\x55\x69\x96\x76\x3c\x9b\x0e\x9a\x5c\x69\x7d\xcf\xac\x48\xac\xb4\xeb\x5d\x63\xa8\xe9\x94\xd6\x77\x5a\x8b\xb1\x7e\x6b\x73\x96\xfd\xeb\xcf\xf5\x64\x67\x45\xac\xcb\x19\x02\x9f\x86\xdb\xca\xbf\xe6\x8c\xe7\x40\x3d\x40\x3d\x0c\xa8\xa7\xf6\x03\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x50\x0f\x6e\xb5\x00\xe3\x02\xe3\x02\xe3\x02\xe3\xea\x77\x9d\x81\x71\xf5\xc5\xb8\x5a\x32\xc8\xee\x08\x75\xd5\xf9\x96\x74\xe7\xbc\x9a\xb2\xc7\x58\x86\xbd\x71\xae\xcb\x4a\xa2\x27\xad\xc5\x4a\x7f\x5a\x29\xa8\x54\x95\x51\x43\xc5\xad\x95\xbd\x15\x25\x03\x21\x03\x21\x3b\x0e\x42\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\x06\x3a\xd6\x71\xf7\xdf\x3b\x1d\xc3\xe5\xf5\xc0\x7c\xc0\x7c\xc0\x7c\xc0\x7c\xc0\x7c\xc0\x7c\x6c\x11\xf3\x4d\x44\xc1\x6f\xae\xb7\x62\x78\x07\xb9\x37\x74\x6e\x9c\x23\x51\x34\xa5\x73\x33\xa4\x2b\x60\x5c\x24\x0a\x8b\xe2\xa8\xe9\xb7\x77\x5f\xbf\xb7\xbd\x85\xcb\x52\x37\xa4\x64\xb5\x8e\xa4\xe0\xbf\x13\x41\x65\x34\x49\x6a\xaf\xbd\xa9\x7f\x7a\xd5\x92\x0a\x32\x25\x77\x1e\x09\x6a\xcc\x37\x99\x15\x20\x9c\x7e\xe0\xc8\xf8\xc7\x4c\xc9\xd5\x17\x8f\xeb\xf7\xeb\xab\xc1\xbe\x81\x4b\x3b\xe7\xfb\x7d\x30\x2b\xd0\x5f\x02\x4c\xe3\x35\xb6\x03\x76\xca\x2b\x6e\x3d\xa1\xde\x43\xf8\xe6\xe2\x52\x9a\x87\xd4\x73\xd5\x06\xa9\x06\xa9\x06\xa9\x06\xa9\x06\xa9\x06\xa9\x06\xa9\x06\xa9\x5e\xbf\xdb\x82\x54\x83\x54\x83\x54\x83\x54\x83\x54\x83\x54\x83\x54\x9f\x1d\xa9\x06\xe7\x04\xe7\x04\xe7\x6c\x9f\x4d\xe0\x9c\x4b\xd7\x19\x38\xe7\x26\x9c\x73\x49\x34\x63\x1b\xab\x31\xe7\x7c\xbf\xb8\xc6\x94\xc9\x02\x95\x68\xb5\xc2\xce\xcf\xf5\x94\xc6\xbc\xd6\xe0\x34\xbe\x84\x2a\x9e\xb0\xa5\x9c\xae\xa9\x62\x61\x76\x3e\x1f\xb3\x73\xb7\xc4\xa4\xeb\x4c\xcf\xaf\xcd\x25\x7e\xb9\x7c\x32\x6e\x97\xb7\x78\x27\x4c\xfb\x13\x2d\xbc\x6f\xb4\x30\xf2\x5e\x92\x16\xc3\xa4\x0e\x93\x3a\x4c\xea\x30\xa9\x9f\x9a\x49\xbd\xdb\xa9\xd2\x6a\x56\xdf\x5b\x26\x72\x24\x8c\xef\x3c\x50\x87\x4c\x18\xbf\x37\x0e\xb2\x41\x8a\xf6\x56\x0e\xb0\xb7\x1e\xf9\xbd\xae\xd1\xc6\x92\xe5\x46\xd1\x64\x13\x31\x35\x92\xb3\xb7\x99\x55\xa2\x84\xdd\xbd\x68\xea\xd4\x52\xe4\x4b\x25\xaf\xa4\x88\x38\x4d\x50\xab\x93\xd6\x53\xe9\x1b\xfb\xb9\x5f\x1a\x56\x61\x89\x67\x33\x11\xc6\xbc\x10\xc9\x4b\x25\xd2\x56\x47\x6e\x9c\x5c\x5a\x9d\x93\x3a\x9d\x45\x19\x0f\x68\xd5\xc4\x2a\xf4\x02\x41\x75\x68\x93\xbe\xe0\x66\x69\x99\xeb\x4a\xd6\x87\x8b\xeb\x37\x5d\x83\xec\x47\xa6\x66\x0f\x74\x45\x8c\x4d\x3d\x67\x82\xcb\xd6\x3a\x6e\x31\xcc\x54\xe7\x3b\xaa\x72\x9b\x1e\xbf\x46\x93\x1f\xca\xf4\xdf\x04\x81\x75\xeb\x97\xe5\x18\x6c\x6f\xd3\x1f\x40\x0c\x40\x0c\x40\x0c\x40\x0c\x40\x6c\x67\x40\xac\xe3\x59\xb0\x00\xc5\xf6\x77\x2c\x7e\xaa\x5d\xf0\x96\x26\x82\xe7\xc2\x6f\x41\x77\x99\x4a\x79\x44\xd2\xd1\x9d\x4a\xe2\xe0\xa5\x61\x07\x73\x93\xae\xba\x21\x4e\x4f\xbb\x9b\xf1\x3f\xc6\xec\x87\xd9\xcf\x8c\xe8\x92\x0a\xa9\x17\x4b\x75\xa6\x0a\xa6\xb2\xf4\x81\x4b\x67\x97\xcb\x4a\x71\x3d\xe5\x89\xd3\x95\xef\x2f\xcc\xcf\xf7\x17\x6c\x1a\x4b\x9e\xc4\xff\x76\x07\xc9\x44\x30\x1e\x86\x34\x3b\xaf\x8d\x09\x3d\xac\xd4\x30\x53\xfc\x28\xaf\x5e\x32\xfa\xe9\x98\x7d\x8e\x69\x73\xac\x55\x5d\x65\x8b\x6d\xa3\xed\xc7\x98\x8a\x8c\x7a\x4c\x3a\x8a\x2a\x1e\xb6\x19\x50\xd3\x82\x4f\xae\xed\x7b\x33\xf1\x2d\x2a\x66\xd4\x74\xbd\x60\x1f\xd4\x33\x8b\x78\x36\xe1\x51\xc3\x4e\xee\x95\x1a\x91\x4d\x55\x36\xd3\x63\xd2\xda\x5f\xdf\xe6\x5a\xb4\xbc\xbb\x48\xe8\x75\x12\x6b\x6a\xfa\x36\xd6\xd2\x64\x10\x87\x95\x2a\x4c\xb2\x02\x19\x27\xfc\x18\xeb\xc3\xda\x9e\xa4\x4e\x1a\x18\xd7\x06\xd3\x9d\x23\x4e\xd5\xbe\xf2\x36\xe6\xe6\xc7\xc6\xec\x36\x08\x44\x5a\xd0\xd9\x54\xd7\xec\x46\xa6\x0d\x23\x76\x65\x27\x60\x73\x82\xe6\x3f\xb3\xd1\x2f\x3c\x78\x8c\x32\x55\xca\x50\x3f\x45\xb6\x5a\x7a\x68\xae\xe3\x8c\x08\x69\xe5\xe3\x66\x21\xae\x05\x13\x5f\xd2\xcf\x6c\xf4\x45\x65\xa2\x56\x2c\x0b\x78\x1e\xf0\x50\xb7\xde\xf6\x8f\x31\xe7\x53\x79\xb9\x51\x3d\x17\x0a\x9c\xfa\x32\xb6\x99\x90\xe9\xfc\x74\x3f\xa0\xa5\x00\xf4\xfa\x78\xe8\x75\xb7\xd9\xb5\x8a\x60\xef\x4f\x99\x3f\x24\xcb\xee\xd6\x4f\x2b\x78\xf6\xfe\x0e\xfc\xa1\x92\xed\x6e\x5d\xb8\x48\xb7\x5f\x7b\x9c\xb6\xf2\x65\x44\xa9\x6e\x48\xf4\x7e\x14\xbc\x28\xbb\xa2\xbc\x13\x0c\x95\x33\x87\x77\x25\x58\x0d\x3f\x6c\x6e\xf0\x31\xb3\xf0\xc0\x80\x07\xc6\x69\x79\x60\xc0\x67\x01\x3e\x0b\xf0\x59\x80\xcf\x02\x7c\x16\x0e\xee\xb3\x00\x18\x0e\x3e\x0a\x3e\x0a\x3e\x0a\x3e\x0a\x3e\x0a\x3e\x0a\x3e\xba\xf4\x10\x00\xb2\x00\xb2\x00\xb2\x00\xb2\x00\xb2\xc0\xfd\x81\xab\xd8\x08\xee\x0f\x3c\xa3\xfb\x03\x71\x69\xfc\xc0\x2f\x53\xb0\x7f\xfd\x59\x0d\xb2\xca\x7b\xc6\x5d\x46\x29\x61\xbc\x03\xd9\x32\x8f\xf6\xce\xb6\xb6\x0b\xe8\x5c\x31\x79\x76\xb0\x01\xf6\x12\xdc\x89\x00\xa3\xfa\x80\x0f\x36\xc0\x88\x8c\x0d\xbf\x71\xc9\x23\x91\x19\xb3\x99\xd9\x20\xf3\x5c\x05\x31\xe9\x81\xde\x40\xc5\xc9\xce\xa8\x32\x26\x64\xa1\xe5\x54\xa7\x18\xcf\xf8\xa3\xee\xc5\xe2\x41\xe4\xc2\x09\x7b\xf5\x30\x1a\x17\x6e\x43\xc2\x2e\x19\xa3\x54\xc6\x6e\xde\xff\xa4\x9f\xcd\x78\x40\xf4\x29\x51\x32\x32\xa2\x1d\x19\x8c\xb4\x66\xcf\x63\x69\x76\x25\x32\xc8\x54\xcf\x92\x45\xde\xb2\x31\x36\x79\x61\x74\x32\x7e\xb8\xbe\x8e\x54\xc2\x65\x34\x56\x59\x74\x9d\x3e\x46\xd7\xa5\x8c\x03\x15\x8a\xeb\xbf\x7d\xcd\xef\x74\x29\x5b\x5b\x78\x6d\xe7\xf4\x39\x3c\x83\x92\x05\x8f\x51\x44\xeb\x2a\x9e\xbd\xef\x20\x9e\x7d\x34\x86\xaa\xe1\x54\xf9\xfd\xda\x2a\x1b\x67\xd9\xe1\xd4\xf9\xf4\xa4\x60\x12\x3d\x86\x2a\x05\xbf\x61\xaf\xbb\xd9\xa5\x25\x57\xfd\x0e\x2f\x78\xe9\x22\x6c\x2d\x5e\xea\x72\x40\x61\xeb\x48\x6e\xcf\x80\x80\x55\x1f\xe4\xc1\x0a\x58\x88\x57\x3e\xa3\x78\x65\x04\x66\x21\x30\x0b\x81\x59\x08\xcc\x82\x6e\xb8\x6c\x15\x0d\x32\xb4\xe1\x30\x3a\x17\x22\x33\xd6\x44\x66\x0c\x56\x01\xf3\x16\xea\xde\xe3\x31\x88\xdc\x37\x25\xae\xf5\xda\x93\x7e\x69\xd7\x41\x18\x35\x29\x44\xfc\x45\xae\x55\x13\xfd\x17\x0f\x8a\x31\x63\x9f\xf5\x7f\xdd\xbf\xcf\x78\x4c\xc6\xbb\x9c\x05\x49\x99\x17\x22\xab\xce\x16\xe3\x83\xc9\x92\xf8\x51\xb0\x91\xaf\xe5\x48\x8b\x90\x4e\xec\x19\xb3\xbb\x84\x4b\x69\x5d\x23\x48\x30\xe1\x89\x91\x85\x6e\x7e\xda\x66\xb3\xa6\x3a\x1e\x48\x64\xf0\x9d\xe6\x25\xee\x89\xeb\x3e\xdd\x52\xf6\xd9\xf4\x98\x3e\x26\xd2\xdc\xf5\x8e\xf5\x3e\x2a\x73\x91\x91\xdb\x50\x25\x3c\xbf\xec\xb8\xa3\x74\x65\x4e\x97\x79\x0f\xfb\x2c\x83\x01\xae\x79\x02\xe8\x9d\x75\xf0\xdb\xff\x16\x14\xba\x9e\x83\xbd\xb5\x06\xc8\xc3\xde\xde\x66\x20\xf5\x5e\x90\x3a\xad\x87\xad\x32\x1a\x5f\xd1\xbb\x7f\x5f\xbd\x35\xcf\x44\x16\x89\x4e\x4f\xe6\x45\xc6\x0b\x11\xc5\xc1\x55\xf7\x77\xf4\xdf\x2f\xf6\x49\x3a\x04\xba\x88\x54\xe4\xc6\x49\x51\x62\xc6\x83\x6c\x63\xf1\x8a\xbe\x37\x10\xdb\xf4\xae\x1c\x01\x56\xe8\x22\x77\x4d\x47\x2e\x06\x8b\xf5\x89\x5b\xac\xcf\xc7\x25\x60\x2e\xde\xc2\x2d\x2e\x13\x13\x94\x1a\x17\x69\x1b\x67\xfe\x76\xc9\x3e\xf4\x8e\xec\x75\x26\x10\x98\x27\xf4\xa6\x54\xf2\xca\xbc\x4d\x4f\x90\xc9\x3c\x67\x6f\x7f\xcd\x95\xbc\x33\xe1\xd6\xbf\xe9\x1d\xcf\xfe\xfd\xc3\xed\x83\xd5\x3f\xbe\x1b\x92\xaf\x42\xf7\x79\xf3\x45\x65\x01\x31\x85\x48\xd1\xe0\x2b\x76\x7f\x31\xd5\xff\x76\x7f\xc1\x6e\x1b\xbd\x39\x66\x5f\x0b\x0b\x00\x48\xcd\xb1\x0b\xf5\x8a\x07\x34\x00\x14\xb0\x9b\xc4\x81\x35\x69\x92\x56\xa4\x9e\xed\xd8\x9a\x80\xd6\x54\xa8\x34\x11\x63\x66\xbe\x49\x71\xfa\x6e\x4e\x91\x0f\x7d\xeb\x40\xf8\xcf\x6f\xd3\xbd\xfa\x43\x50\x8e\xcc\x0f\x50\x8e\x0e\xec\x9d\x30\xa7\xd5\x0c\x55\x3d\x2a\x7b\xb7\x8e\xa5\x09\x0f\x36\x97\xe0\xec\x7b\x27\x2e\xc3\xc1\x99\x13\x92\xdb\xb9\x48\x6e\x03\x12\x90\x70\x8e\xfb\x5f\xe0\xcc\x79\xfa\xa2\x47\x39\x5c\xbb\xec\x1b\xd6\x8b\x5f\xe4\x75\x6e\xe8\x6b\xcd\x3d\x72\x37\x9c\xcf\x7c\xc7\x9d\x58\xbd\x12\x3f\x0b\x90\xb1\x23\x61\x79\x03\xbb\x00\xbb\x00\xbb\x00\xbb\x1c\x1a\xbb\x6c\x7f\xda\xad\x07\x30\x2d\xc7\xdd\x51\xaa\xf0\xc0\x30\x50\xe6\xcf\x4f\x99\x07\x86\xe9\x73\xde\x00\xc3\xc0\x7c\x03\x65\x09\x18\x66\xf7\x18\xe6\x35\xf6\x8b\xf5\x40\xe6\x54\x64\x3a\x60\x19\x48\x72\xe7\x22\xc9\x0d\x48\x60\xc2\xb9\xee\x7f\x01\x96\x39\x7d\x51\xe4\x98\xb1\x0c\x5d\x15\xe8\x29\xcc\x4e\xb9\x8b\xbd\x41\x59\x86\xf1\x53\x1c\x96\x3c\xa9\x5f\x4e\xc9\xfd\x9d\xe9\xb6\xad\xe3\x5a\x38\xf6\x07\x1f\xc8\x3d\xa2\x32\x46\x55\xee\x8c\x46\x32\x04\x2f\xe8\xb0\x58\xe6\x85\xe0\x0d\x3b\xe4\xbc\x18\xf4\x3c\x6f\xd8\xaa\xdd\x40\xf8\x45\x65\xb7\x49\xe2\xa5\xa2\x41\xb0\x9c\xa5\x2f\x9c\xd7\xb5\x91\x2b\xac\x74\x74\xeb\xe9\xe7\x27\x21\xcf\xf8\x06\x49\x1a\xc2\x93\xbd\x46\x12\xd9\xa8\x4e\x38\x1b\xd5\x7a\x4c\xb4\x2e\x13\xd5\x4a\x63\x54\x0f\x08\x0c\xf9\xa7\x90\x7f\x0a\xf9\xa7\x90\x7f\xea\xd4\xf2\x4f\xad\xdf\x79\x5b\x73\x4f\xed\xd8\xe1\x60\x6f\x19\xa7\xd6\x37\x7f\x79\xb6\xa9\x21\xf7\xc1\x26\x39\xa6\xd6\xf7\xc1\xf2\xfc\x52\x3b\xee\x03\x64\x95\x42\x56\x29\x64\x95\x42\x56\x29\x64\x95\xda\x59\x56\xa9\x0e\xbb\xff\x42\x46\xa9\x95\xd7\x3a\x9e\x91\xbf\x61\xb7\xd6\x20\x2b\xd6\x91\x65\xc5\x5a\x3f\x89\x56\x65\xc4\xda\xf1\x6c\x3a\x68\x1e\xac\xf5\x3d\xb3\x22\x07\xd6\xae\x77\x8d\xa1\x66\xbe\x5a\xdf\x69\x2d\xa6\xfb\xad\xcd\x59\xf6\xaf\x3f\x3b\xd2\x9f\x35\xa1\x39\xe7\x0c\x85\x16\x3c\x63\xfe\x35\x67\x5b\x07\x0e\x02\x0e\x62\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\x03\x43\x21\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc7\x88\x83\x70\xef\x06\x38\x18\x38\x18\x38\x18\x38\x18\x38\xd8\x81\x38\x58\x4b\xea\xde\x1d\xe1\xb0\x3a\x03\x93\xee\xc0\x57\x53\xf6\x18\xcb\xb0\x57\x16\x76\x59\x89\xf7\xa4\xc2\x58\x51\x50\x6b\x08\x95\xde\x32\x6a\xe8\xbb\xb5\xb2\x5f\x47\xd2\x40\xd1\x40\xd1\x8e\x88\xa2\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x81\xa0\x0d\x9e\xa0\xe1\x1a\x7e\xe0\x40\xe0\x40\xe0\x40\xe0\x40\xe0\x40\xe0\xc0\x39\x1c\x18\x88\xcc\xd6\x5e\xe4\x44\x45\x62\x75\xbd\x15\xe8\x3b\xc8\x6d\xa6\x73\xa3\x1d\x89\x82\xc5\x72\xaa\xb2\x99\x9f\xdd\x9c\x19\x08\xb1\x1c\xd8\x45\xa2\xf8\x58\xeb\x84\xdb\xbb\xaf\xff\x9c\x7f\x03\x37\xb8\x6e\x08\xcf\x7c\x27\x1e\x39\x3a\xab\xaf\x8e\xda\x5b\x6f\xea\x5f\x5e\xbf\x9e\x1c\x6c\x3f\xea\x75\xd5\xd0\x7f\xcd\x86\xd9\x7d\x51\x59\x14\x7e\x7b\xf7\xf5\x7b\xdb\xcb\x58\x5f\x9b\xaf\x2f\xd7\x91\x14\x97\x7b\x42\xcb\xac\x05\x54\x6f\xb9\xdc\xea\xbf\xc5\x91\x96\x73\x9d\x29\xa0\xbe\x10\x8d\xd5\xa1\x5f\x67\x16\x53\x26\x0b\x54\x92\x88\xc0\x9d\x44\xb5\xf5\xf0\xc3\x54\xe7\xbb\xa9\xce\x8a\x65\x64\x0a\x6a\x59\x49\x1f\x7d\xd1\x9d\x8a\xed\x9a\xc4\x00\x94\xfc\x7c\x28\x79\xb7\x9b\xf2\xd7\x91\xf2\xd7\x66\xc2\xb9\x5c\x3e\x19\xb7\xcb\xa8\xb1\x93\xfd\xf6\x13\xad\xc3\x6f\xb4\x30\xf2\x5e\xb2\x68\xc0\x03\x00\x1e\x00\xf0\x00\x80\x07\xc0\xa9\x79\x00\x74\x3b\x55\x5a\xbd\x00\xf6\x96\x1a\x07\x19\x8c\x3a\x0f\xd4\x21\x33\x18\xed\xcd\x6d\x63\x83\x9c\x41\xad\x6e\x0b\x7b\xeb\x91\xdf\xeb\xa6\xdb\x58\xb2\xdc\x58\x54\xd9\x44\x4c\x8d\xe4\xec\x11\x5f\x25\x4a\xd8\xdd\x8b\xa6\x4e\x2d\x67\x93\x54\xf2\x4a\x8a\x88\xd3\x04\xb5\xc6\xd7\x7a\x6e\x27\x83\xfb\xfd\xd2\xb0\x1a\x4d\x3c\x9b\x89\x30\xe6\x85\x48\x5e\x2a\x91\xb6\x3a\x72\xe3\xe4\xd2\x1a\x57\xa9\xd3\x59\x94\xf1\x80\x56\x4d\xac\x42\x2f\x10\x54\x87\x36\xe9\x0b\x6e\x96\x96\xb9\xae\x64\x7d\xb8\xb8\x7e\xd3\x35\xc8\x7e\x64\x6a\xf6\x40\x57\xc4\xd8\xd4\xd3\xa4\x93\x6c\xa9\xe3\x16\xc3\x4c\x75\xbe\xa3\x2a\xb7\x19\xac\xd7\x98\xac\x87\x32\xfd\x37\xf1\xd8\xe9\xd6\x2f\xcb\xbd\x76\xf6\x36\xfd\xe1\xbf\x03\xff\x1d\xf8\xef\xc0\x7f\x07\xfe\x3b\x3b\xf3\xdf\xe9\x78\x16\x2c\xf8\xf0\xec\xef\x58\xfc\x54\x0b\xfe\x4b\x13\xc1\x73\xe1\xb7\xa0\xbb\x4c\xa5\x3c\x22\xe9\xe8\x4e\x25\x71\xf0\xd2\xb0\x83\xb9\x49\x57\x45\x0f\xea\x69\x77\x33\xfe\xc7\x98\xfd\x30\xfb\x99\x11\x5d\x52\x21\xf5\x62\xa9\xce\x54\xc1\x54\x96\x3e\x70\xe9\xec\x72\x59\x29\xae\xa7\x3c\x71\xba\xf2\xfd\x85\xf9\xf9\xfe\x82\x4d\x63\xc9\x93\xf8\xdf\xee\x20\x99\x08\xc6\xc3\x90\x66\xe7\xb5\x61\xc5\x61\xa5\x86\x99\xe2\x47\x79\xf5\x92\xd1\x4f\xc7\xec\x73\x4c\x9b\x63\xad\xea\x2a\x5b\x6c\x1b\x6d\x3f\xc6\x54\x64\xd4\x63\xd2\x51\x54\xf1\xb0\xcd\x80\x9a\x16\x7c\x72\x6d\xdf\x9b\x89\x6f\x51\x31\xa3\xa6\xeb\x05\xfb\xa0\x9e\x59\xc4\xb3\x09\x8f\x1a\x86\x74\xaf\xd4\x88\x6c\xaa\xb2\x99\x1e\x93\xd6\xfe\xfa\x36\xd7\xa2\xe5\xdd\x45\x42\xaf\x93\x58\x53\xd3\xb7\xb1\x96\x26\x83\x38\xac\x54\x61\x92\x15\x4c\x4e\x72\x37\xc6\x39\xd1\x66\xfa\xd5\x49\x03\xe3\xda\x60\xba\x73\xc4\xa9\xda\x57\xde\xc6\xdc\xfc\xd8\x98\xdd\x06\x81\x48\x4d\x36\xd4\xba\x66\x37\x32\x6d\x18\xb1\x2b\x3b\x01\x9b\x13\x34\xff\x99\x8d\x7e\xe1\xc1\x63\x94\xa9\x52\x86\xfa\x29\xb2\xd5\xd2\x43\x73\x1d\x67\x44\x48\x2b\x1f\x37\x0b\x71\x2d\x98\xf8\x92\x7e\x66\xa3\x2f\x2a\x13\xb5\x62\x59\xc0\xf3\x80\x87\xba\xf5\xb6\x7f\x8c\x39\x9f\xca\xcb\x8d\xea\xb9\x50\xe0\xd4\x97\xb1\xcd\x84\x4c\xe7\xa7\xfb\x01\x2d\x05\x70\xd3\x3a\x1e\x37\xad\x6e\xb3\x6b\x95\xab\xd6\xfe\x94\xf9\x43\x3a\x6d\x75\xeb\xa7\x15\x8e\x5b\xfb\x3b\xf0\x87\xea\xc2\xd5\xad\x0b\x17\xdd\xb8\x5e\x7b\x9c\xb6\x02\x68\x78\x50\x6c\x48\xf4\x6c\xa2\xff\xd3\x76\x9c\xa8\xbd\xbd\x24\xc2\xdf\x9c\xe1\x95\x7c\xd5\x47\xb0\x7f\x8b\x4f\xc6\x92\xd0\xff\x0e\xae\x0b\x1b\x5f\x06\xd0\xfb\xcd\x24\xc6\xd8\x96\xd9\x53\xdf\x69\x05\xfe\x52\x92\x2d\xbc\x3a\x74\x89\x6d\x3e\x1d\xf0\xe4\x80\x27\xc7\x49\x7a\x72\xc0\xf7\x01\xbe\x0f\xf0\x7d\x80\xef\x03\x7c\x1f\x0e\xee\xfb\x00\xa8\x0e\xce\x0a\xce\x0a\xce\x0a\xce\x0a\xce\x0a\xce\x0a\xce\xba\xf4\x10\x00\xfa\x00\xfa\x00\xfa\x00\xfa\x00\xfa\xc0\x15\xca\xab\x18\xcb\xb8\x61\xee\xb7\x06\xfa\xf1\x52\x5b\xf6\x19\x84\xab\xae\xa7\x2e\x7d\x25\x26\x3d\x2c\x69\xd9\xe2\xda\xe5\x63\xb9\xc4\xe7\xcd\xdc\x50\x5e\xa4\x2a\xef\x19\x2b\x19\xd9\x9e\xf1\xad\x08\x92\x79\x79\xd7\x0c\x69\xbb\x00\xcc\x15\x57\x44\xed\x73\xa3\xe9\x25\x4a\x13\x91\x42\xf5\x99\x30\xd8\x48\x21\xd2\xf6\x7f\xe3\x92\x47\x22\x33\x76\x2b\x73\x3f\x5a\x9e\xab\x20\x26\x45\xcc\x5b\x88\x38\x19\xfa\x54\xc6\xb4\x9e\x5e\xbc\x78\xcd\x74\xc6\x1f\x75\x2f\x16\x0f\x22\x17\x4e\xda\xaa\xc7\xc3\xb8\xb8\x19\x92\x36\xc9\x1a\xa4\x32\x76\xf3\xfe\x27\xfd\x6c\xc6\x03\xc2\x3f\x89\x92\x91\x91\xad\xc8\x62\xa3\x55\x6b\x1e\x4b\xb3\x9f\x91\x45\xa4\x7a\x96\x4c\xe2\x16\x4e\xb1\xc9\x0b\xa3\x13\xe8\xc3\xf5\x75\xa4\x12\x2e\xa3\xb1\xca\xa2\xeb\xf4\x31\xba\x2e\x65\x1c\xa8\x50\x5c\xff\xed\x6b\x7e\xa7\x4b\xd9\xda\xc4\x6a\x3b\xa7\xcf\xe1\x19\x94\x30\x76\x52\x32\x52\x57\xf9\xe8\x7d\x07\xf9\xe8\xa3\x31\x21\x1d\x41\x5b\xde\xaf\x6d\x8b\xf1\x93\x3d\x82\xc6\x9c\xac\xe0\x4a\x62\xd0\xb1\x0a\xae\x6f\x58\x4f\xd7\xc7\xb4\xe4\x43\xda\xe1\x2d\x32\xdb\x49\x88\xcb\x6f\x8e\x39\xbc\x84\x78\x24\x57\x74\x40\xf8\xab\x0f\xf2\x60\x85\x3f\x04\x45\x9f\x51\x50\x34\xa2\xbf\x10\xfd\x85\xe8\x2f\x44\x7f\x41\x6f\x5d\xb6\x8a\x06\x19\x3f\x71\x18\xed\x0e\xe1\x1f\xfe\xc9\x95\xe1\x1f\x47\xab\xd1\x79\xf3\x7c\xef\x41\x1f\x44\xff\x9b\x82\xd9\x36\x5a\x98\x2e\x66\xcf\x91\x1e\x35\x69\x46\xfc\x45\xfe\x5b\x13\xfd\x17\x0f\x8a\x31\x63\x9f\xf5\x7f\xdd\xbf\xcf\x78\x4c\x06\xca\x9c\x05\x49\x99\x17\x22\xab\xce\x28\xe3\xe8\xc9\x92\xf8\x51\xb0\x91\x4f\x60\x3b\xd2\xa2\xa8\x13\x9f\xc6\xec\x2e\xe1\x52\x5a\xff\x0b\x12\x70\x78\x62\x64\xaa\x9b\x9f\xb6\xd9\xf4\xa9\x8e\x07\x12\x3d\x7c\xa7\x79\xc9\x7d\xe2\xba\x4f\xb7\x94\x7d\x36\x3d\xa6\x8f\x9b\x34\x77\xbd\x63\x5d\x9c\xca\x5c\x64\xe4\x9b\x54\x09\xe1\x2f\x3b\xee\x28\x5d\x99\xd3\x05\xeb\xc3\x3e\x13\x61\x32\xdc\xec\x88\xd1\x5b\xf3\xd1\x9f\x2f\x5b\xa0\xee\x46\xd6\xa1\x6e\x75\x3a\xa6\x3c\x44\xc7\x4b\xf2\xc9\xa7\x66\xab\xab\xf7\xaf\xe8\xdd\xbf\xaf\xde\xf3\x66\x22\x8b\x44\xa7\x27\xf3\x22\xe3\x85\x88\xe2\xe0\xaa\xfb\x3b\xfa\xef\x17\xfb\x24\xed\xae\x5d\x84\x19\x72\xc2\xa4\x18\x2f\xe3\xff\xd5\x83\x60\x43\x35\x18\xa6\x75\x79\x57\xfe\x07\x2b\xb4\x89\xbb\xa6\x9f\x16\x83\xcd\xf9\xc4\x6d\xce\xe7\xe3\x70\x30\x17\x4e\xe1\x16\x97\x09\xf9\x49\x8d\x07\xb4\x0d\x23\x7f\xbb\x64\xa3\x7a\x47\x16\x37\x13\xe7\xcb\x13\x7a\x53\x2a\x79\x65\xde\xa6\x27\xc8\xe8\x9d\xb3\xb7\xbf\xe6\x4a\xde\x99\x68\xea\xdf\xf4\x96\x68\xff\xfe\xe1\x36\xca\xea\x1f\xdf\x0d\xc9\x13\xa2\xfb\xbc\xf9\xa2\xb2\x80\xa8\x40\xa4\x68\xf0\x15\xbb\xbf\x98\xea\x7f\xbb\xbf\x60\xb7\x8d\xde\x1c\xb3\xaf\x85\x35\xe1\x93\x82\x61\x17\xea\x15\x0f\x68\x00\x28\x1e\x37\x89\x03\x6b\x94\x24\x7d\x44\x3d\xdb\xb1\x35\xf1\xaa\xa9\x50\x69\x22\xc6\xcc\x7c\x93\xc2\xf0\xdd\x9c\x22\x17\xf9\xd6\x81\xf0\x9f\xdf\xa6\x7b\xf5\x87\xa0\x96\x98\x1f\xa0\x96\x0c\x5b\x2d\x49\xe7\x1c\xb3\x8f\x55\x31\x29\x7b\x37\x7c\xa5\x09\x0f\xfa\x10\x11\x6d\x49\xe7\x25\x24\xc2\x49\x15\x32\xe3\x92\x61\x3a\x1f\x99\x71\x40\xa2\x19\x24\x08\xff\x0b\x9c\x54\x21\x0d\x2d\x95\x86\xca\xe3\x35\xd2\xbe\x61\xfd\xba\x75\x6a\xd5\x35\x53\x4f\x3c\xa9\xfb\x77\x6e\x61\x00\xc6\xb1\xdc\xc9\xd8\xdb\x72\x24\xef\xd8\x74\x7d\xa6\x07\xf1\xfa\xa1\x58\x7a\x08\xef\x78\x40\x80\x4a\x06\x8a\x4a\x76\xa5\x5c\xba\x1d\xd6\x0d\xfa\xde\x15\xcd\x5b\xb7\xc5\x43\xe1\x5c\xfc\x1b\xa2\x32\x44\x65\x88\xca\x10\x95\x3b\x88\xca\xb9\x71\xa3\xdc\x26\xaf\xfd\x46\x9e\x78\xe6\x3b\x7d\x1d\x17\x9b\xf9\xe4\x59\x57\x51\x6c\x8a\xd8\x48\x7a\xdd\x48\xe0\x18\x05\x69\x7f\x50\xd2\x3e\x1c\xa3\x7a\x3d\x67\x36\x76\x91\x6a\x39\x68\x8e\x52\x25\x81\xa3\x14\xa0\xd7\xf9\xd9\xda\xe0\x28\xd5\xe7\xbc\x81\xa3\x14\x30\x27\xd4\x94\x21\xa8\x29\x70\x94\x6a\x1f\x4c\x67\xcb\xee\xd7\x34\xb1\xb1\x25\xfb\x54\x84\x46\x38\x4e\x41\x86\x5c\x32\x4c\xe7\x23\x43\x0e\x48\x54\x83\x44\xe1\x7f\x01\x0d\x82\x74\x04\x1a\x64\xee\xe7\x5f\xc1\x84\x76\x4a\x81\x6c\xd6\x16\x19\xc6\x4f\x71\x58\xf2\xa4\x7e\x21\x3e\xf7\x79\x9a\x96\xf6\xce\xb8\x76\xef\xd3\x07\x7f\x63\xd4\x88\x4a\x1d\x55\x19\xfc\x1a\x29\xd9\xbc\x6c\xc6\x62\x99\x17\x82\x37\xac\xb5\xf3\x92\xdb\xf3\xa6\xc6\xbe\x7f\xcd\x5d\x01\x8e\x5b\xec\x87\x7a\xd3\x0d\x25\x61\xf8\xfc\x24\x24\x76\x3b\x1a\xc9\xb3\xbd\xbc\x1e\x39\x74\x4f\x38\x87\xee\x7a\xf8\xb6\x2e\x7f\xee\x4a\x0b\x5e\x0f\x60\x11\x59\x73\x91\x35\x17\x59\x73\x91\x35\xf7\xd4\xb2\xe6\xae\xdf\x79\x5b\x33\xe6\xee\xd8\x8d\x63\x6f\x79\x72\x3b\xba\xe5\xb7\x66\x84\x1d\x72\x1f\x6c\x92\x19\x77\x7d\x1f\x2c\xcf\x8a\xbb\xe3\x3e\x40\x2e\x5c\xe4\xc2\x45\x2e\x5c\xe4\xc2\x45\x2e\xdc\x9d\xe5\xc2\xed\xb0\xfb\x2f\xe4\xc1\x5d\x79\xdf\xfc\x19\x79\x71\x76\x6b\x0d\x72\xf9\x1e\x59\x2e\xdf\xf5\x93\x68\x55\x1e\xdf\x1d\xcf\xa6\x83\x66\xef\x5d\xdf\x33\x2b\x32\xf7\xee\x7a\xd7\x18\x6a\xbe\xde\xf5\x9d\xd6\x62\xe1\xdf\xda\x9c\x65\xff\xfa\xb3\x67\xbe\xd4\x92\x75\x69\x47\x98\xa9\xce\x96\xa4\x3b\x00\xd5\x94\x3d\xc6\x72\x85\x5f\x4f\x2f\x8c\xe9\xb2\x12\x80\x49\xc8\xb7\xc2\x92\x96\xa1\x2b\xc9\x7e\xd4\xd0\x08\x6b\x65\xf7\x4a\xa8\x40\xa7\x40\xa7\x8e\x8f\x4e\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x1d\x3d\x99\xc2\xf5\x29\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x1b\x80\x37\xa5\xb2\x30\x96\x54\x79\x07\xde\xb6\x22\x69\x07\x09\xf5\x9c\x1b\xed\x88\x52\xaf\x4f\x55\x36\xf3\xb3\x9b\x33\x63\xbd\x5f\xce\xbf\x22\x51\x7c\xac\x75\xc2\xed\xdd\xd7\x7f\xce\xbf\x81\xf0\xd6\x0d\xe1\x93\xef\xc4\x63\x47\x4f\xb5\x89\x51\x7b\xeb\x4d\xfd\xcb\xeb\xd7\xd3\xd3\xcd\x71\x2f\xa9\x86\x4e\x68\xf6\xca\xee\xeb\xe9\x8f\x9b\xdb\xbb\xaf\xdf\xdb\xde\xc3\xaa\xda\x7c\x55\xb9\x8e\xa4\x28\xd1\x13\x5a\x5c\xff\xe7\xe9\xe6\x55\xeb\x4b\x8b\x71\x62\xb7\x91\xc6\xc6\x7e\x98\x59\x21\xdd\x29\xa8\xce\xfb\xe3\x5f\xba\x02\x2b\x56\x85\x7e\xbb\xb9\x2c\xe8\x8d\x2f\x2a\xbb\x4d\x12\x9f\x48\x7d\x10\xeb\x03\xbe\x15\xf6\xc6\x83\xfa\x54\x7b\xba\x19\xd3\x80\x9d\xf6\xc2\x5b\xef\x4b\xd1\x5b\x90\xef\xe2\x3a\x6e\x77\xa5\x98\x5f\x58\xf3\x6e\x13\xf0\x98\x80\xc7\x04\x3c\x26\xe0\x31\x01\x8f\x09\x78\x4c\xc0\x63\x02\x1e\x13\x9b\xec\xb6\xf0\x98\x80\xc7\x04\x3c\x26\xe0\x31\x01\x8f\x09\x78\x4c\xc0\x63\xe2\xec\x3c\x26\xe0\x52\x00\x97\x02\xb8\x14\xb4\xcf\x26\xb8\x14\x2c\x5d\x67\x70\x29\xd8\xdc\xa5\xe0\xe9\xe6\x5a\x7a\xc8\x61\x02\x76\xe9\xef\xff\xb4\x90\x1b\x73\xdc\xf7\x0b\x6f\x4c\x99\x2c\x50\x89\xd6\x2e\xec\x34\x5d\xc7\x6c\xcc\x4b\x4d\x6a\xf3\xd1\x97\xe0\xa1\x4d\xb8\x50\x4e\xd7\x9b\xf6\x61\x7b\x3e\x1f\xdb\x73\xb7\x5b\xdb\xd7\xd9\x9f\x5f\x9b\x0f\xe6\x72\xf9\x64\xdc\x2e\xed\xc3\x4e\x40\xf7\x27\x5a\x78\xdf\x68\x61\xe4\xbd\x64\x74\x80\x5d\x1d\x76\x75\xd8\xd5\x61\x57\x3f\x35\xbb\x7a\xb7\x53\xa5\xd5\xb6\xbe\xb7\x34\x2d\xc8\xa6\xd3\x79\xa0\x0e\x99\x4d\x67\x6f\x30\x64\x83\xfc\x35\xad\x30\x60\x6f\x3d\xf2\x7b\x5d\xad\x8d\x25\xcb\x8d\xb6\xc9\x26\x62\x6a\x24\x67\x6f\x38\xab\x44\x09\xbb\x7b\xd1\xd4\xa9\xe5\x0f\x92\x4a\x5e\x49\x11\x71\x9a\xa0\x56\x31\xad\xe7\x19\x32\x46\x74\xbf\x34\xac\xba\x12\xcf\x66\x22\x8c\x79\x21\x92\x97\x4a\xa4\xad\x8e\xdc\x38\xb9\xb4\x8a\x27\x75\x3a\x8b\x32\x1e\xd0\xaa\x89\x55\xe8\x05\x82\xea\xd0\x26\x7d\xc1\xcd\xd2\x32\xd7\x95\xac\x0f\x17\xd7\x6f\xba\x06\xd9\x8f\x4c\xcd\x1e\xe8\x8a\x18\x9b\x7a\x9a\xa4\x8a\x2d\x75\xdc\x62\x98\xa9\xce\x77\x54\xe5\x36\x65\x7e\x8d\x3a\x3f\x94\xe9\xbf\x09\x07\xeb\xd6\x2f\xcb\x59\xd8\xde\xa6\x3f\xa8\x18\xa8\x18\xa8\x18\xa8\x18\xa8\xd8\xce\xa8\x58\xc7\xb3\x60\x81\x8c\xed\xef\x58\xfc\x54\xbb\xba\x30\x25\x5b\xad\xdf\x82\xee\x32\x95\xf2\x88\xa4\xa3\x3b\x95\xc4\xc1\x4b\xc3\x0e\xe6\x26\x5d\x75\xf7\xa1\x9e\x76\x37\xe3\x7f\x8c\xd9\x0f\xb3\x9f\x19\xd1\x25\x15\x52\x2f\x96\xea\x4c\x15\x4c\x65\xe9\x03\x97\xce\x2e\x97\x95\xe2\x7a\xca\x13\xa7\x2b\xdf\x5f\x98\x9f\xef\x2f\xd8\x34\x96\x3c\x89\xff\xed\x0e\x92\x89\x60\x3c\x0c\x69\x76\x5e\x1b\x3b\x7a\x58\xa9\x61\xa6\xf8\x51\x5e\xbd\x64\xf4\xd3\x31\xfb\x1c\xd3\xe6\x58\xab\xba\xca\x16\xdb\x46\xdb\x8f\x31\x15\x19\xf5\x98\x74\x14\x55\x3c\x6c\x33\xa0\xa6\x05\x9f\x5c\xdb\xf7\x66\xe2\x5b\x54\xcc\xa8\xe9\x7a\xc1\x3e\xa8\x67\x16\xf1\x6c\xc2\xa3\x86\x95\xdc\x2b\x35\x22\x9b\xaa\x6c\xa6\xc7\xa4\xb5\xbf\xbe\xcd\xb5\x68\x79\x77\x91\xd0\xeb\x24\xd6\xd4\xf4\x6d\xac\xa5\xc9\x20\x0e\x2b\x55\x98\x64\x05\x93\x99\xdb\x8d\x71\x4e\xc1\x7d\xf4\xab\x93\x06\xc6\xb5\xc1\x74\xe7\x88\x53\xb5\xaf\xbc\x8d\xb9\xf9\xb1\x31\xbb\x0d\x02\x91\x9a\xcc\x9c\x75\xcd\x6e\x64\xda\x30\x62\x57\x76\x02\x36\x27\x68\xfe\x33\x1b\xfd\xc2\x83\xc7\x28\x53\xa5\x0c\xf5\x53\x64\xab\xa5\x87\xe6\x3a\xce\x88\x90\x56\x3e\x6e\x16\xe2\x5a\x30\xf1\x25\xfd\xcc\x46\x5f\x54\x26\x6a\xc5\xb2\x80\xe7\x01\x0f\x75\xeb\x6d\xff\x18\x73\x3e\x95\x97\x1b\xd5\x73\xa1\xc0\xa9\x2f\x63\x9b\x09\x99\xce\x4f\xf7\x03\x5a\x0a\x80\xb0\x8f\x07\x61\x77\x9b\x5d\xab\x30\xf6\xfe\x94\xf9\x43\x02\xed\x6e\xfd\xb4\x02\x6a\xef\xef\xc0\x1f\x2a\xde\xee\xd6\x85\x8b\x88\xfb\xb5\xc7\x69\x2b\x5d\x46\xe8\xea\x86\x44\xcf\x66\xa3\xef\x86\xf2\x4e\x32\x70\xce\x1c\xdf\x95\x68\x75\x34\x41\x74\x83\x0f\xa4\x85\x23\x06\x1c\x31\x4e\xc9\x11\x03\xae\x0b\x70\x5d\x80\xeb\x02\x5c\x17\xe0\xba\x70\x70\xd7\x05\x30\x71\x60\x52\x60\x52\x60\x52\x60\x52\x60\x52\x60\x52\x60\xd2\xa5\x87\x00\xc8\x05\xc8\x05\xc8\x05\xc8\x05\xc8\x05\x2e\x15\x5c\x85\x48\x70\xa9\xe0\x39\x5e\x2a\x68\x25\x24\xca\xd0\xa0\x37\x13\x3d\x3a\x2c\x0f\x54\x2a\x2e\x59\x5e\x06\x74\x4c\xd1\xee\x2e\xf8\xcc\x6c\x4d\x69\xa6\x48\x22\x6b\x8b\xf0\x5d\x9d\xaf\x81\x48\x48\xf3\x67\x24\x6d\x58\xd7\x1a\xfb\xd7\x9f\xd5\x20\xab\xbc\x67\xea\x65\xb4\x13\xc6\xd7\x02\x2e\xf3\x60\xef\x88\x6b\xbb\xf0\xce\x15\x53\x67\x07\xfb\x60\x2f\xa1\x9e\x08\x37\xaa\x0f\xf8\x60\xc3\x8d\xc8\xe6\xf0\x1b\x97\x3c\x12\x99\xb1\x9e\x99\xed\x31\xcf\x55\x10\x93\x3a\xe8\xed\x54\x9c\xcc\x8d\x2a\x63\x42\x16\x5a\x5c\x75\xfa\xf1\x8c\x3f\xea\x5e\x2c\x1e\x44\x2e\x9c\xcc\x57\x0f\xaa\x71\xc1\x37\x24\xf3\x92\x4d\x4a\x65\xec\xe6\xfd\x4f\xfa\xd9\x8c\x07\x04\xa1\x12\x25\x23\x23\xe1\x91\xdd\x48\x2b\xf8\x3c\x96\x66\x4f\x22\xbb\x4c\xf5\x2c\x19\xe6\x2d\x22\x63\x93\x17\x46\x07\xe4\x87\xeb\xeb\x48\x25\x5c\x46\x63\x95\x45\xd7\xe9\x63\x74\x5d\xca\x38\x50\xa1\xb8\xfe\xdb\xd7\xfc\x4e\x97\xb2\xb5\xa1\xd7\x76\x4e\x9f\xc3\x33\x28\x91\xf0\x18\x25\xb5\xae\x52\xda\xfb\x0e\x52\xda\x47\x63\xaf\x1a\x4e\x95\xdf\xaf\xad\xb2\x71\x9d\x1d\x4e\x9d\x4f\x51\x18\x26\xd1\x63\xe0\xc2\xf0\x1b\xd6\xcb\xad\x2f\xe6\x9f\xfe\xb3\xa7\xcb\x5f\xd6\x8b\x5e\x6d\x17\xbe\x1c\x4c\xf4\x3a\x92\x9b\x35\x20\x6e\xd5\x07\x79\xb0\xe2\x16\x62\x99\xcf\x28\x96\x19\x41\x5b\x08\xda\x42\xd0\x16\x82\xb6\xa0\x29\x2e\x5b\x45\x83\x0c\x7b\x38\x8c\x06\x86\xa8\x8d\x15\xca\x98\x55\x47\x06\xae\x8e\x79\xb3\x75\xef\xb1\x1a\xc4\xf5\x9b\xa2\xd7\x3a\x25\x4a\xbf\xb2\xeb\x00\x8d\x9a\x30\x22\xfe\x22\xb7\xab\x89\xfe\x8b\x07\xc5\x98\xb1\xcf\xfa\xbf\xee\xdf\x67\x3c\x26\x8b\x5e\xce\x82\xa4\xcc\x0b\x91\x55\x47\x8c\xf1\xcf\x64\x49\xfc\x28\xd8\xc8\xd7\x71\xa4\x25\x49\x27\xfd\x8c\xd9\x5d\xc2\xa5\xb4\x6e\x13\x24\x9f\xf0\xc4\x88\x44\x37\x3f\x6d\xb3\x67\x53\x1d\x0f\x24\x39\xf8\x4e\xf3\x82\xf7\xc4\x75\x9f\x6e\x29\xfb\x6c\x7a\x4c\x9f\x16\x69\xee\x7a\xc7\x7a\x26\x95\xb9\xc8\xc8\xa5\xa8\x92\xa1\x5f\x76\xdc\x51\xba\x32\xa7\xcb\xc3\x87\x7d\xa4\xc1\x2a\x37\x7f\x10\xe8\x9d\xf5\x58\x4e\x81\x2d\x08\x35\xb1\x17\x6b\x1f\x69\xf9\x74\x17\xf0\x3c\x14\xe6\x0c\xd8\x7e\x74\xb0\x9d\x1c\x77\xb6\x4a\x89\x7c\x45\xef\xfe\x7d\xf5\x0e\x3d\x13\x59\x24\x3a\x3d\x99\x17\x19\x2f\x44\x14\x07\x57\xdd\xdf\xd1\x7f\xbf\xd8\x27\xe9\x2c\xe8\x22\x57\x91\xa7\x27\x05\x92\x19\x27\xb3\x0d\x65\x2c\xfa\xda\x40\xec\xd4\xbb\x72\x11\x58\xa1\x97\xdc\x35\x3d\xbd\x18\xac\xd7\x27\x6e\xbd\x3e\x1f\x67\x81\xb9\x80\x0c\xb7\xb8\x4c\xd0\x50\x6a\x7c\xa8\x6d\x20\xfa\xdb\x25\xbb\xd0\x3b\xb2\xdd\x99\x48\x61\x9e\xd0\x9b\x52\xc9\x2b\xf3\x36\x3d\x41\xe6\xf3\x9c\xbd\xfd\x35\x57\xf2\xce\xc4\x63\xff\xa6\xf7\x3b\xfb\xf7\x0f\xb7\x0b\x56\xff\xf8\x6e\x48\x5e\x0c\xdd\xe7\xcd\x17\x95\x05\xc4\x17\x22\x45\x83\xaf\xd8\xfd\xc5\x54\xff\xdb\xfd\x05\xbb\x6d\xf4\xe6\x98\x7d\x2d\x2c\x0c\x20\x5d\xc7\x2e\xd4\x2b\x1e\xd0\x00\x50\x44\x6f\x12\x07\xd6\xbc\x49\xaa\x91\x7a\xb6\x63\x6b\x22\x5e\x53\xa1\xd2\x44\x8c\x99\xf9\x26\x05\xf2\xbb\x39\x45\x4e\xf6\xad\x03\xe1\x3f\xbf\x4d\xf7\xea\x0f\x41\x43\x32\x3f\x40\x43\x3a\xb4\x86\x94\xce\x39\x6f\x0f\x5c\x47\x2a\x7b\xb7\x94\xa5\x09\x0f\x36\x15\xe4\xec\x5b\x27\x2e\xca\xc1\xdb\x13\x02\xdc\xb9\x08\x70\x03\x92\x93\x70\x9c\xfb\x5f\xe0\xed\x79\x0e\x12\x48\x39\x78\x1b\xed\x1b\xd6\xd5\x71\x92\xa2\xd9\x5a\xb2\xe3\xf5\x8e\xf8\x6c\x88\xbf\x0c\xe3\xa7\x38\x2c\x79\x52\x8f\x9e\xe4\xfe\x52\x0f\x6a\xeb\xb8\xe6\x18\xf4\xc1\xbb\x14\x8d\xa8\x84\x51\x75\xb5\x53\xe3\xae\x1e\x2f\xf0\xb0\x58\xe6\x85\xe0\x0d\xd3\xe3\xbc\x38\xf4\xbc\x68\xd7\xf2\x01\x72\x5f\x54\x76\x9b\x24\x5e\x36\xca\x2f\x06\xb0\xa9\x2d\x7d\xe1\xbc\xa2\x1a\x57\x98\xea\x28\x28\xf7\xf3\x93\x90\x67\x1d\xe0\x48\x83\x78\xea\x51\x8e\xb8\x35\xf1\x84\x6f\x4d\x5c\x8f\x88\xd6\xdd\x98\xb8\x7d\xae\xd9\x6e\xf8\x0b\xf7\x24\xe2\x9e\x44\xdc\x93\x88\x7b\x12\x4f\xed\x9e\xc4\xf5\x3b\x6f\xeb\x1d\x89\x3b\x76\x36\xd8\xdb\xcd\x88\xeb\x9b\xbf\xfc\x56\xc4\x21\xf7\xc1\x26\x77\x21\xae\xef\x83\xe5\xf7\x20\xee\xb8\x0f\x70\xfb\x21\x6e\x3f\xc4\xed\x87\xb8\xfd\x10\xb7\x1f\xee\xec\xf6\xc3\x0e\xbb\xff\xc2\xcd\x87\x2b\x23\x0d\xcf\xc8\xd7\xb0\x5b\x6b\x70\x7b\xe3\x91\xdd\xde\xb8\x7e\x12\xad\xba\xb9\x71\xc7\xb3\xe9\xa0\xf7\x35\xae\xef\x99\x15\x77\x35\xee\x7a\xd7\x18\xea\x0d\x8d\xeb\x3b\xad\xc5\x86\xbf\xb5\x39\xcb\xfe\xf5\xe7\xa6\x2c\x68\xe5\x55\x1a\xe7\x8c\x88\xe6\xfc\x65\xfe\x35\x67\x67\x07\x1c\x02\x1c\x62\x80\x43\xf6\x49\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\xa1\xc1\x81\x11\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\xa1\x63\x84\x43\xb8\x81\x03\x54\x0c\x54\x0c\x54\x0c\x54\x0c\x54\xec\xb0\x54\xac\xe5\x82\xf9\x1d\xc1\xb1\x3a\x11\x93\xee\xdc\x57\x53\xf6\x18\xcb\xb0\x47\x32\x76\x59\xc9\xf8\xa4\xc7\x58\x79\x50\xab\x09\x95\xf2\x32\x6a\x28\xbd\xb5\xb2\x5f\xc7\xd5\xc0\xd4\xc0\xd4\x8e\x8a\xa9\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x81\xa7\x1d\x0b\x4f\xc3\xe5\xfc\x40\x83\x40\x83\x40\x83\x40\x83\x40\x83\x40\x83\x1d\xd0\xe0\x44\x14\xfc\xe6\x7a\x2b\xea\x77\x90\x6b\x50\xe7\x46\x3d\x12\x45\x53\x5a\x37\x03\xbc\x02\xde\x45\xa2\x68\xa2\x3b\xea\x81\xdb\xbb\xaf\xdf\xdb\x5e\xc6\x15\xb0\x1b\x32\xb5\x5a\x47\x52\x70\xe1\x69\x81\x35\x9a\x2b\xb5\xb7\xdf\xd4\x6b\xd0\x7d\xb9\xed\x21\x0e\xd5\x18\x7a\x32\x2b\x68\x38\x4d\xa2\x41\xd9\x57\x2c\x12\xfd\x76\xcb\x2a\xa1\xd7\x70\xb9\xe8\x7c\xd7\x0f\x66\x5d\xce\xdf\x73\x4c\x83\x36\xae\x22\x7d\x4f\x7b\x31\xae\x47\xdd\x83\x8b\x1c\x9d\x6b\x02\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\xf7\xfa\xdd\x16\xb8\x1b\xb8\x1b\xb8\x1b\xb8\x1b\xb8\x1b\xb8\x1b\xb8\xfb\xec\x70\x37\x50\x29\x50\x29\x50\x69\xfb\x6c\x02\x2a\x5d\xba\xce\x80\x4a\xb7\x47\xa5\x9d\xaf\x16\x35\x67\x7e\xbf\x54\xc7\x94\xc9\x02\x95\x68\x15\xc3\xce\xd5\x75\x30\xc7\xbc\xd4\x82\x73\x3e\xfa\x62\x7a\x48\xa3\x0b\x2b\xf4\xf9\x58\xa1\xbb\xe5\x6a\x5d\x67\x89\x7e\x6d\x0a\xf6\xcb\xe5\x93\x71\xbb\x9c\xce\x3b\x01\xe2\x9f\x68\xf5\x7d\xa3\x85\x91\xf7\x92\xc7\x19\x16\x76\x58\xd8\x61\x61\x87\x85\xfd\xd4\x2c\xec\xdd\x4e\x95\x56\x2b\xfb\xde\x92\xb3\x23\x87\x7e\xe7\x81\x3a\x64\x0e\xfd\xbd\x61\x91\x0d\xb2\xd6\xb7\x62\x81\xbd\xf5\xc8\xef\x75\x05\x37\x96\x2c\x37\x7a\x27\x9b\x88\xa9\x91\x9c\xbd\x09\xad\x12\x25\xec\xee\x45\x53\xa7\x14\xe6\x70\x98\x68\xd5\x4e\x5e\x49\x11\x71\x9a\xa0\x56\x45\xd5\xda\xb4\x3b\x41\x8d\x39\xdd\x2f\x0d\xab\xb3\xc4\xb3\x99\x08\x63\x5e\x88\xe4\xa5\x12\x69\xab\x23\x37\x4e\x2e\xad\x0a\x4a\x9d\xce\xa2\x8c\x07\xb4\x6a\x62\x15\x7a\x81\xa0\x3a\xb4\x49\x5f\x70\xb3\xb4\xcc\x75\x25\xeb\xc3\xc5\xf5\x9b\xae\x41\xf6\x23\x53\xb3\x07\xba\x22\xc6\xa6\x9e\x33\xc1\x65\x6b\x1d\xb7\x18\x66\xaa\xf3\x1d\x55\xb9\x4d\xad\x5f\xa3\xd8\x0f\x65\xfa\x6f\x42\xc4\xba\xf5\xcb\x72\x2a\xb6\xb7\xe9\x0f\x3e\x06\x3e\x06\x3e\x06\x3e\x06\x3e\xb6\x33\x3e\xd6\xf1\x2c\x58\x60\x64\xfb\x3b\x16\x3f\xd5\x2e\x95\x4b\xc9\x60\xeb\xb7\xa0\xbb\x4c\xa5\x3c\x22\xe9\xe8\x4e\x25\x71\xf0\xd2\xb0\x83\xb9\x49\x57\xdd\x4a\xa7\xa7\xdd\xcd\xf8\x1f\x63\xf6\xc3\xec\x67\x46\x74\x49\x85\xd4\x8b\xa5\x3a\x53\x05\x53\x59\xfa\xc0\xa5\xb3\xcb\x65\xa5\xb8\x9e\xf2\xc4\xe9\xca\xf7\x17\xe6\xe7\xfb\x0b\x36\x8d\x25\x4f\xe2\x7f\xbb\x83\x64\x22\x18\x0f\x43\x9a\x9d\xd7\xc6\xa2\x1e\x56\x6a\x98\x29\x7e\x94\x57\x2f\x19\xfd\x74\xcc\x3e\xc7\xb4\x39\xd6\xaa\xae\xb2\xc5\xb6\xd1\xf6\x63\x4c\x45\x46\x3d\x26\x1d\x45\x15\x0f\xdb\x0c\xa8\x69\xc1\x27\xd7\xf6\xbd\x99\xf8\x16\x15\x33\x6a\xba\x5e\xb0\x0f\xea\x99\x45\x3c\x9b\xf0\xa8\x61\x2a\xf7\x4a\x8d\xc8\xa6\x2a\x9b\xe9\x31\x69\xed\xaf\x6f\x73\x2d\x5a\xde\x5d\x24\xf4\x3a\x89\x35\x35\x7d\x1b\x6b\x69\x32\x88\xc3\x4a\x15\x26\x59\x81\x8c\x13\x7e\x8c\xf5\x61\x6d\x4f\x52\x27\x0d\x8c\x6b\x83\xe9\xce\x11\xa7\x6a\x5f\x79\x1b\x73\xf3\x63\x63\x76\x1b\x04\x22\x2d\xe8\x6c\xaa\x6b\x76\x23\xd3\x86\x11\xbb\xb2\x13\xb0\x39\x41\xf3\x9f\xd9\xe8\x17\x1e\x3c\x46\x99\x2a\x65\xa8\x9f\x22\x5b\x2d\x3d\x34\xd7\x71\x46\x84\xb4\xf2\x71\xb3\x10\xd7\x82\x89\x2f\xe9\x67\x36\xfa\xa2\x32\x51\x2b\x96\x05\x3c\x0f\x78\xa8\x5b\x6f\xfb\xc7\x98\xf3\xa9\xbc\xdc\xa8\x9e\x0b\x05\x4e\x7d\x19\xdb\x4c\xc8\x74\x7e\xba\x1f\xd0\x52\x00\x98\x7d\x3c\x30\xbb\xdb\xec\x5a\x05\xb4\xf7\xa7\xcc\x1f\x12\x6d\x77\xeb\xa7\x15\x78\x7b\x7f\x07\xfe\x50\x41\x77\xb7\x2e\x5c\x84\xdd\xaf\x3d\x4e\x5b\x11\x33\x42\x5c\x37\x24\x7a\x3f\x0a\x5e\x94\x5d\x51\xde\xe9\x06\xd3\x99\x33\xbc\x92\xaf\x8e\x2b\xb0\xee\x38\x02\x6e\xe1\x97\x01\xbf\x8c\x53\xf2\xcb\x80\x27\x03\x3c\x19\xe0\xc9\x00\x4f\x06\x78\x32\x1c\xdc\x93\x01\x88\x1c\xd4\x14\xd4\x14\xd4\x14\xd4\x14\xd4\x14\xd4\x14\xd4\x74\xe9\x21\x00\x90\x01\x90\x01\x90\x01\x90\x01\x90\x81\xcb\x07\x57\x11\x13\x5c\x3e\x68\x9f\x3c\xe7\xcb\x07\x71\x69\xfd\xc0\x6f\x62\xb0\x7f\xfd\x59\x0d\xb2\xca\x7b\x26\x61\x46\x59\x61\x7c\x2d\xf4\x32\x0f\xee\x06\x7b\x6d\x17\x01\xba\x62\xfe\xec\x6a\x6f\xec\x25\x24\x14\x61\x49\xf5\x51\x1f\x6c\x58\x12\x19\x23\x7e\xe3\x92\x47\x22\x33\x66\x35\xb3\x51\xe6\xb9\x0a\x62\xd2\x13\xbd\x01\x8b\x93\x1d\x52\x65\x4c\xc8\x42\xcb\xb1\x4e\x71\x9e\xf1\x47\xdd\x8b\xc5\x83\xc8\x85\x13\x06\xeb\xc1\x37\x2e\x48\x87\x84\x61\x32\x56\xa9\x8c\xdd\xbc\xff\x49\x3f\x9b\xf1\x80\xe8\x54\xa2\x64\x64\x44\x3f\x32\x28\x69\xcd\x9f\xc7\xd2\xec\x4e\x64\xb0\xa9\x9e\x25\x8b\xbd\x65\x67\x6c\xf2\xc2\xe8\xd0\xfc\x70\x7d\x1d\xa9\x84\xcb\x68\xac\xb2\xe8\x3a\x7d\x8c\xae\x4b\x19\x07\x2a\x14\xd7\x7f\xfb\x9a\xdf\xe9\x52\xb6\xb6\x00\xdb\xce\xe9\x73\x78\x06\x25\x2b\x1e\xad\x08\xd7\x55\x7c\x7b\xdf\x41\x7c\xfb\x68\xac\x59\x03\xab\xf7\xfb\xb5\xf5\x36\xce\xb6\x03\xab\xf8\xc9\xca\xcb\x24\x98\x1c\x83\xbc\xfc\x86\xf5\x77\x81\x4c\x4b\x16\xfe\x1d\xde\x23\xb3\x5e\x44\x5b\x7a\x77\xcc\xc1\x44\xb4\x23\xb9\xa4\x03\x12\x59\x7d\x90\x07\x2b\x91\x21\x2c\xfa\x8c\xc2\xa2\x11\xff\x85\xf8\x2f\xc4\x7f\x21\xfe\x0b\xca\xe4\xb2\x55\x34\xc8\x08\x8a\xc3\xa8\x66\x08\x00\xf1\x4f\xae\x0c\x00\x39\x0a\x15\xcd\x5b\xbb\x7b\x0f\xfb\x20\xef\x80\xa6\x10\xb6\x4e\xa7\xd2\xaf\xec\x25\xd6\xa3\x26\x9b\x88\xbf\xc8\x83\x6b\xa2\xff\xe2\x41\x31\x66\xec\xb3\xfe\xaf\xfb\xf7\x19\x8f\xc9\x06\x98\xb3\x20\x29\xf3\x42\x64\xd5\x89\x63\x5c\x3d\x59\x12\x3f\x0a\x36\xf2\x75\x1c\x69\xc1\xd2\x09\x43\x63\x76\x97\x70\x29\xad\x07\x06\x89\x2b\x3c\x31\x12\xd2\xcd\x4f\xdb\x6c\xe1\x54\xc7\x03\x09\x12\xbe\xd3\xbc\x1c\x3e\x71\xdd\xa7\x5b\xca\x3e\x9b\x1e\xd3\x87\x47\x9a\xbb\xde\xb1\x4e\x4e\x65\x2e\x32\xf2\x4e\xaa\x44\xea\x97\x1d\x77\x94\xae\xcc\xe9\xa2\xf5\x61\x9f\x70\xb0\xde\x2d\x3f\x1c\xf4\x46\x7b\x54\x27\xc3\x16\xb0\x1b\xc9\xe6\xc1\xed\x0f\xc7\xed\xc9\x25\x68\xab\x44\xcd\x57\xf4\xee\xdf\x57\x6f\xd8\x33\x91\x45\xa2\xd3\x93\x79\x91\xf1\x42\x44\x71\x70\xd5\xfd\x1d\xfd\xf7\x8b\x7d\x92\x8e\x86\x2e\xb2\x16\xf9\x90\x52\x88\x9a\x71\x5f\xdb\x50\xee\xa2\xaf\x0d\xc9\x94\xbd\x2b\x6f\x83\x15\xaa\xcb\x5d\xd3\x91\x8c\xc1\xc0\x7d\xe2\x06\xee\xf3\x71\x39\x98\x8b\xf7\x70\x8b\xcb\xc4\x24\xa5\xc6\x45\xdb\xc6\xb9\xbf\x5d\xb2\x15\xbd\x23\xf3\x9e\x09\x44\xe6\x09\xbd\x29\x95\xbc\x32\x6f\xd3\x13\x64\x61\xcf\xd9\xdb\x5f\x73\x25\xef\x4c\xb8\xf7\x6f\x7a\xd3\xb3\x7f\xff\x70\x5b\x61\xf5\x8f\xef\x86\xe4\x0b\xd1\x7d\xde\x7c\x51\x59\x40\x08\x22\x52\x34\xf8\x8a\xdd\x5f\x4c\xf5\xbf\xdd\x5f\xb0\xdb\x46\x6f\x8e\xd9\xd7\xc2\xf2\x02\xd2\x7f\xec\x42\xbd\xe2\x01\x0d\x00\x05\x0c\x27\x71\x60\x2d\xa0\xa4\x2e\xa9\x67\x3b\xb6\x26\xa0\x36\x15\x2a\x4d\xc4\x98\x99\x6f\xd2\x3d\x01\x6e\x4e\x91\x0f\x7f\xeb\x40\xf8\xcf\x6f\xd3\xbd\xfa\x43\xd0\x9a\xcc\x0f\xd0\x9a\x86\xa3\x35\xa5\x73\x5e\xe2\xc7\xa0\x37\x95\xbd\x5b\xd4\xd2\x84\x07\x9b\x0a\x77\xf6\xad\x73\x10\xef\xe0\x4c\x0a\xc9\xee\xac\x24\xbb\x01\x09\x50\x38\xe7\xfd\x2f\x70\x26\x3d\x43\xf9\xa4\x3c\x0e\xab\xee\x1b\xb6\x91\x4b\x26\x85\xd7\xb5\xa4\xf0\xeb\x9d\x16\xda\x3b\x07\x64\x18\x3f\xc5\x61\xc9\x93\x7a\x38\x27\xf7\xb7\x8c\x50\xab\xc7\x35\x6f\xa3\x0f\xde\x4f\x69\x44\x25\x8c\xaa\xbb\xa6\x1a\x97\x07\x79\x99\x88\xc5\x32\x2f\x04\x6f\x58\x2c\xe7\x25\xa6\xe7\x25\xe6\x30\x1f\xb1\xf7\x45\x65\xb7\x49\xe2\xc5\xa7\xfc\x62\x00\x5b\xde\xd2\x17\xce\x2b\xd6\x72\x85\x85\x8f\x42\x85\x3f\x3f\x09\x89\x88\x4b\x1a\xc9\xb3\x08\xbb\xc4\xad\x8e\x27\x7c\xab\xe3\x7a\xd0\xb4\xee\x46\xc7\xed\x93\xe4\x76\x83\x68\xb8\xc7\x11\xf7\x38\xe2\x1e\x47\xdc\xe3\x78\x6a\xf7\x38\xae\xdf\x79\x5b\xef\x70\xdc\xb1\xcb\xc2\xde\x6e\x6e\x5c\xdf\xfc\xe5\xb7\x36\x0e\xb9\x0f\x36\xb9\xab\x71\x7d\x1f\x2c\xbf\xa7\x71\xc7\x7d\x80\xdb\x19\x71\x3b\x23\x6e\x67\xc4\xed\x8c\xb8\x9d\x71\x67\xb7\x33\x76\xd8\xfd\x17\x6e\x66\x5c\x19\xcd\x78\x46\x1e\x8b\xdd\x5a\x83\xdb\x25\x8f\xec\x76\xc9\xf5\x93\x68\xd5\xcd\x92\x3b\x9e\x4d\x07\xbd\x4f\x72\x7d\xcf\xac\xb8\x4b\x72\xd7\xbb\xc6\x50\x6f\x90\x5c\xdf\x69\x2d\xd6\xfc\xad\xcd\x59\xf6\xaf\x3f\xb7\xe2\x43\x2b\x2f\xee\x38\x7b\x6c\x34\xe7\x66\xf3\xaf\x39\xb3\x3b\x80\x11\x80\x11\x03\x30\x02\x30\x02\x30\x02\x30\x02\x30\x02\x30\x02\x30\x02\x30\x02\x30\x9a\xdb\x6e\x07\x08\x4b\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x8e\x11\x18\xe1\x6e\x0f\x90\x32\x90\x32\x90\x32\x90\x32\x90\xb2\x01\x90\xb2\x96\x2b\xee\x77\x04\xcc\xea\x94\x4c\xba\xc3\x5f\x4d\xd9\x63\x2c\xc3\x1e\x69\xd9\x65\x25\xe8\x93\x32\x63\x85\x42\xad\x2b\x54\x1a\xcc\xa8\xa1\xf9\xd6\xca\xee\x81\xb5\x81\xb3\x81\xb3\x1d\x1f\x67\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x03\x63\x3b\x2a\xc6\x86\x54\x00\xc0\x85\xc0\x85\xc0\x85\xc0\x85\xc0\x85\xc0\x85\x0d\x5c\x18\xc6\x79\xa0\xb4\x44\xe2\x58\xe1\x56\xe4\xef\x20\x77\xa9\xce\x0d\x75\x44\x59\x3b\xa7\x2a\x9b\xf9\xa9\xcd\x99\x61\x11\xcb\x19\x5e\x24\x8a\x4f\xae\x07\x6e\xef\xbe\xfe\x73\xfe\x71\x5c\x1e\xbb\x21\x47\xf3\x9d\x78\xe4\x14\xcd\xaf\x8b\xda\x2b\x6f\xea\x9f\x5d\xb3\x8c\x1c\x72\x3f\xea\xe5\xd4\xd0\x78\xcd\x26\xd9\x71\x2d\x59\x14\x7e\x7b\xf7\xf5\x7b\xdb\x9b\x58\x56\x9b\x2f\x2b\xd7\x91\x14\xbb\x7b\x2a\xab\xab\x05\x50\x6f\xb3\xca\x84\x0c\x53\x15\xcb\x22\x4f\xe2\x60\xc7\xd1\xde\xc6\x56\x9a\x59\x59\xdd\x29\xe3\xce\x6f\xe5\xb3\xad\xc8\x0f\x5d\x91\x15\x6b\x45\x97\x32\xbf\x58\x1a\xef\xe2\x7a\xdf\xf9\x71\x18\xcc\x32\x1d\x57\xd3\xd0\xdd\x3f\xde\x18\xba\x53\x5f\xa0\xeb\x3d\x48\xfa\x0a\xd2\x9e\x5f\xef\xed\xde\x23\xcb\xd6\x1c\xbc\x48\xe0\x45\x02\x2f\x12\x78\x91\xc0\x8b\x04\x5e\x24\xf0\x22\x81\x17\x09\xbc\x48\x0e\xdd\x07\xf0\x22\x81\x17\x09\xbc\x48\xe0\x45\x02\x2f\x12\x78\x91\x1c\x9f\x17\x09\x3c\x10\xe0\x81\x00\x0f\x84\xf6\xd9\x04\x0f\x84\xa5\xeb\x0c\x1e\x08\x1b\x7a\x20\x38\xa8\xb3\x24\x4e\x79\x39\xeb\x31\x07\x7f\xbf\xb8\xc7\x94\xc9\x02\x95\x68\x3d\xc3\x4e\xd8\xae\x94\xc7\xbc\x3c\xcf\x79\x3e\xfa\xb2\xaa\x48\xe1\xa5\x25\x76\x4d\x82\x0d\xbb\xf4\xf9\xd8\xa5\xbb\x25\x59\x5e\x67\x9b\x5e\xb3\x9c\x5f\x93\x0b\x7b\xbb\x8c\xec\x3b\x01\xe7\x9f\x68\x09\x7e\xa3\x85\x91\xf7\x92\x80\x1d\x36\x77\xd8\xdc\x61\x73\x87\xcd\xfd\xd4\x6c\xee\xdd\x4e\x95\x56\xbb\xfb\x2b\xd3\xf6\x77\xdf\x7b\x49\x33\xb4\xd6\x86\x4b\x4a\xb9\x10\xe8\x19\x65\xe6\x41\xa3\x6d\x75\x39\x62\x22\x58\xaa\x7b\x2b\xd7\x8a\x39\xbb\x95\x2c\x96\x66\x67\x51\x19\x2b\xa5\xdf\x9c\x42\x16\x66\x2f\xdf\x4b\xc9\xc2\x38\xd3\xf2\xd9\x93\xf0\x33\x9e\xb4\x35\xc9\xb8\xb4\x4b\xde\xcd\x0d\xdb\xc1\x6c\x5a\x66\xb4\xca\xd2\x4c\x05\x5a\x6e\x30\x0a\x6d\xcd\x1e\x3a\x66\x7f\xd0\x17\x69\xb4\x68\xee\x68\x6d\xf6\x36\x49\x3e\x90\x89\x26\xd4\xbb\x74\x29\xf5\xc0\x6b\x0d\xc1\x4d\x49\x5b\xdc\x62\xfe\xfc\x0e\x03\x65\xda\x72\x98\x61\xda\x1b\x28\xe9\xd6\x15\xcb\x61\xc9\xde\x7a\xe4\xf7\xba\xca\x1b\x4b\x96\x1b\x4d\x94\x4d\xc4\xd4\x48\xce\xde\xa8\x56\x89\x12\x76\xf7\xa2\xa9\x53\x0a\x73\x38\x4c\xb4\xb2\x27\xaf\xa4\x88\x38\x4d\x50\xab\xb4\x6a\xfd\xda\x9d\xa0\xc6\xc0\xee\x97\x86\x55\x60\xe2\xd9\x4c\x84\x31\x2f\x44\xf2\x52\x89\xb4\xd5\x91\x1b\x27\x97\x56\x29\xa5\x4e\x67\x51\xc6\x03\x5a\x35\xb1\x0a\xbd\x40\x50\x1d\xda\xa4\x2f\xb8\x59\x5a\xe6\xba\x92\xf5\xe1\xe2\xfa\x4d\xd7\x20\xfb\x91\xa9\xd9\x03\x5d\x11\x63\x53\xcf\x99\xe0\xb2\xb5\x8e\x5b\x0c\x33\xd5\xf9\x8e\xaa\xdc\xa6\xe8\xaf\x51\xf5\x87\x32\xfd\x37\x61\x64\xdd\xfa\x65\x39\x27\xdb\xdb\xf4\x07\x31\x03\x31\x03\x31\x03\x31\x03\x31\xdb\x19\x31\xeb\x78\x16\x2c\x50\xb3\xfd\x1d\x8b\x9f\x6a\x97\x39\xa6\x74\xdb\xa4\xdf\x82\xee\x32\x95\xf2\x88\xa4\xa3\x3b\x95\xc4\xc1\x4b\xc3\x0e\xe6\x26\x5d\x75\x1b\xa4\x9e\x76\x37\xe3\x7f\x8c\xd9\x0f\xb3\x9f\x19\xd1\x25\x15\x52\x2f\x96\xea\x4c\x15\x4c\x65\xe9\x03\x97\xce\x2e\x97\x95\xe2\x7a\xca\x13\xa7\x2b\xdf\x5f\x98\x9f\xef\x2f\xd8\x34\x96\x3c\x89\xff\xed\x0e\x92\x89\x60\x3c\x0c\x69\x76\x5e\x1b\x1b\x7b\x58\xa9\x61\xa6\xf8\x51\x5e\xbd\x64\xf4\xd3\x31\xfb\x1c\xd3\xe6\x58\xab\xba\xca\x16\xdb\x46\xdb\x8f\x31\x15\x19\xf5\x98\x74\x14\x55\x3c\x6c\x33\xa0\xa6\x05\x9f\x5c\xdb\xf7\x66\xe2\x5b\x54\xcc\xa8\xe9\x7a\xc1\x3e\xa8\x67\x16\xf1\x6c\xc2\xa3\x86\xdd\xdc\x2b\x35\x22\x9b\xaa\x6c\xa6\xc7\xa4\xb5\xbf\xbe\xcd\xb5\x68\x79\x77\x91\xd0\xeb\x24\xd6\xd4\xf4\x6d\xac\xa5\xc9\x20\x0e\x2b\x55\x98\x64\x05\x32\x4e\xf8\x31\xce\x29\x54\x90\x7e\x75\xd2\xc0\xb8\x36\x98\xee\x1c\x71\xaa\xf6\x95\xb7\x31\x37\x3f\x36\x66\xb7\x41\x20\xd2\x82\xce\xa6\xba\x66\x37\x32\x6d\x18\xb1\x2b\x3b\x01\x9b\x13\x34\xff\x99\x8d\x7e\xe1\xc1\x63\x94\xa9\x52\x86\xfa\x29\xb2\xd5\xd2\x43\x73\x1d\x67\x44\x48\x2b\x1f\x37\x0b\x71\x2d\x98\xf8\x92\x7e\x66\xa3\x2f\x2a\x13\xb5\x62\x59\xc0\xf3\x80\x87\xba\xf5\xb6\x7f\x8c\x39\x9f\xca\xcb\x8d\xea\xb9\x50\xe0\xd4\x97\xb1\xcd\x84\x4c\xe7\xa7\xfb\x01\x2d\x05\xc0\xdb\xc7\x83\xb7\xbb\xcd\xae\x55\x88\x7b\x7f\xca\xfc\x21\x61\x77\xb7\x7e\x5a\x01\xbc\xf7\x77\xe0\x0f\x15\x7d\x77\xeb\xc2\x45\xfc\xfd\xda\xe3\xb4\x95\x37\x23\x14\x76\x43\xa2\xf7\xa3\xe0\x45\xd9\x15\xe5\x9d\x68\x80\x9d\x39\xc0\x2b\xe1\xea\x08\x83\xed\x8e\x28\x30\x17\x6e\x1a\x70\xd3\x38\x45\x37\x0d\x38\x36\xc0\xb1\x01\x8e\x0d\x70\x6c\x80\x63\xc3\xc1\x1d\x1b\x40\xcc\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x97\x1e\x02\xe0\x1a\xe0\x1a\xe0\x1a\xe0\x1a\xe0\x1a\xb8\xa4\x70\x15\x40\xc1\x25\x85\xfe\xb1\xb3\xbf\xa4\x10\x39\x23\x06\x7e\x63\x83\xfd\xeb\xcf\x6a\x90\x55\xde\x33\x1d\x33\x3a\x0b\xe3\xb2\x33\x09\x33\x6f\xec\x90\x85\x6d\x17\x25\xba\x62\x36\xed\x74\xc3\xec\x25\x76\x14\xf1\x4b\xf5\xa1\x1f\x6c\xfc\x12\x99\x29\x7e\xe3\x92\x47\x22\x33\x06\x37\xb3\x77\xe6\xb9\x0a\x62\xd2\x20\xbd\x69\x8b\x93\x85\x52\x65\x4c\xc8\x42\x4b\xb8\x4e\xa5\x9e\xf1\x47\xdd\x8b\xc5\x83\xc8\x85\x13\x13\xeb\x51\x3a\x2e\x9a\x87\xc4\x64\x32\x63\xa9\x8c\xdd\xbc\xff\x49\x3f\x9b\xf1\x80\xb8\x55\xa2\x64\x64\x84\x42\x32\x35\x05\x4a\x16\x3c\x96\x66\xc3\x22\x53\x4e\xf5\x2c\xd9\xf2\x2d\x55\x63\x93\x17\x46\x27\xe9\x87\xeb\xeb\x48\x25\x5c\x46\x63\x95\x45\xd7\xe9\x63\x74\x5d\xca\x38\x50\xa1\xb8\xfe\xdb\xd7\xfc\x4e\x97\xb2\xb5\x6d\xd8\x76\x4e\x9f\xc3\x33\x28\x29\xf2\xb8\x85\xbb\xae\x82\xdd\xfb\x0e\x82\xdd\x47\x63\xec\x1a\x62\xe5\xdf\xaf\xad\xbc\xf1\xcf\x1d\x62\xed\x4f\x53\xa6\x26\xb9\xe5\x68\x64\xea\x37\xac\xe7\xcb\x68\xcc\x4f\xff\xd9\xd3\x9d\x34\x1b\xc8\x72\xed\x17\xd1\x1c\x5c\x96\x3b\x92\x1b\x3f\x20\xb5\xd5\x07\x79\xb0\x52\x1b\x62\xac\xcf\x28\xc6\x1a\xc1\x64\x08\x26\x43\x30\x19\x82\xc9\xa0\x70\x2e\x5b\x45\x83\x0c\xc7\x38\x8c\xd2\x86\x68\x12\xf3\xd8\xca\x68\x92\xe3\xd1\xdb\xbc\x99\xbc\xf7\x18\x12\xf2\x2e\x68\x8a\x61\x5d\x55\x2c\xfd\xea\xfe\x02\x47\x6a\xa2\x8a\xf8\x8b\xdc\xc1\x26\xfa\x2f\x1e\x14\x63\xc6\x3e\xeb\xff\xba\x7f\x9f\xf1\x98\xcc\x86\x39\x0b\x92\x32\x2f\x44\x56\x1d\x40\xc6\x6f\x94\x25\xf1\xa3\x60\x23\x5f\xd7\x91\x96\x33\x9d\x6c\x34\x66\x77\x09\x97\xd2\xba\x73\x90\xf4\xc2\x13\x23\x30\xdd\xfc\xb4\xcd\x8e\x4e\x75\x3c\x90\x5c\xe1\x3b\xcd\x8b\xe5\x13\xd7\x7d\xba\xa5\xec\xb3\xe9\x31\x7d\x96\xa4\xb9\xeb\x1d\xeb\x31\x55\xe6\x22\x23\x57\xa7\x4a\xc2\x7e\xd9\x71\x47\xe9\xca\x9c\x2e\xa7\x1f\xf6\x81\x07\x33\x1f\x5b\x71\x60\xe8\x7d\xf7\xf8\x4e\x8b\x2d\xc8\x39\x61\x1f\x6b\x53\x59\x51\x8f\x2e\x60\x7c\x28\x4c\x1c\xce\x00\x47\xe7\x0c\x40\xee\x46\x5b\x25\x8e\xbe\xa2\x77\xff\xbe\x7a\xff\x9e\x89\x2c\x12\x9d\x9e\xcc\x8b\x8c\x17\x22\x8a\x83\xab\xee\xef\xe8\xbf\x5f\xec\x93\x74\x52\x74\x91\xc3\xc8\x3f\x95\xc2\xdf\x8c\x6b\xdc\x96\x32\x19\x7d\x75\x70\x56\xef\x5d\x79\x30\xac\xd0\x72\xee\x9a\x1e\x6b\x0c\xb6\xf0\x13\xb7\x85\x9f\x8f\x07\xc3\x5c\x60\x89\x5b\x5c\x26\xf8\x29\x35\xbe\xe0\x36\xa0\xfe\xed\x92\x7d\xe9\x1d\x59\x02\x4d\xc4\x33\x4f\xe8\x4d\xa9\xe4\x95\x79\x9b\x9e\x20\x63\x7c\xce\xde\xfe\x9a\x2b\x79\x67\xe2\xca\x7f\xd3\x3b\xa0\xfd\xfb\x87\xdb\x17\xab\x7f\x7c\x37\x24\xd7\x8a\xee\xf3\xe6\x8b\xca\x02\xa2\x15\x91\xa2\xc1\x57\xec\xfe\x62\xaa\xff\xed\xfe\x82\xdd\x36\x7a\x73\xcc\xbe\x16\x16\x2d\x90\x6e\x64\x17\xea\x15\x0f\x68\x00\x28\x32\x39\x89\x03\x6b\x2c\x25\x55\x4a\x3d\xdb\xb1\x35\x91\xbb\xa9\x50\x69\x22\xc6\xcc\x7c\x93\x2e\x24\x70\x73\x8a\x82\x05\x5a\x07\xc2\x7f\x7e\x9b\xee\xd5\x1f\x82\x46\x65\x7e\x80\x46\xd5\x68\xd3\xa1\x1d\x27\xe6\x1c\xd2\x8f\x46\xa7\x2a\x7b\xb7\xc0\xa5\x09\x0f\xb6\x15\xf8\xec\xdb\x67\x23\xf2\xc1\x69\x15\x22\xdf\xf9\x89\x7c\x03\x92\xac\x20\x00\xf8\x5f\xe0\xb4\xda\xa1\xf2\x27\x2a\xbd\x94\x47\x64\x0f\x7e\xc3\xba\x7b\x7d\x52\xa4\xdf\x8a\x8c\x83\xbd\x03\x48\x7b\x0d\x82\x0c\xe3\xa7\x38\x2c\x79\x52\x8f\x30\xe5\xfe\xe2\x93\x46\x17\x8c\x6b\xae\x4c\x1f\xbc\x13\xd4\x88\x4a\x1a\x55\xd7\x60\x35\xee\x35\xf2\x62\x13\x8b\x65\x5e\x08\xde\x30\x78\xce\x0b\x55\xcf\x6d\x56\xb4\x85\x60\xc2\x2f\x2a\xbb\x4d\x12\x2f\x69\xe5\x17\x03\xd8\x10\x97\xbe\x70\x5e\xb1\xa0\x2b\x0c\x83\x14\xca\xfc\xf9\x49\xc8\x33\x0f\x06\xa5\x61\x3c\x9f\x88\x50\xdc\x3b\x79\xc2\xf7\x4e\xae\xc7\x55\xeb\xee\x9c\xdc\x3e\xcf\x6f\x37\x14\x87\x9b\x26\x71\xd3\x24\x6e\x9a\xc4\x4d\x93\xa7\x76\xd3\xe4\xfa\x9d\xb7\xf5\x96\xc9\x1d\x3b\x3e\xec\xed\x6e\xc9\xf5\xcd\x5f\x7e\xaf\xe4\x90\xfb\x60\x93\xdb\x24\xd7\xf7\xc1\xf2\x9b\x24\x77\xdc\x07\xb8\x3f\x12\xf7\x47\xe2\xfe\x48\xdc\x1f\x89\xfb\x23\x77\x76\x7f\x64\x87\xdd\x7f\xe1\xee\xc8\x95\x11\x93\x67\xe4\xf7\xd8\xad\x35\xb8\xff\xf2\xc8\xee\xbf\x5c\x3f\x89\x56\xdd\x7d\xb9\xe3\xd9\x74\xd0\x1b\x2f\xd7\xf7\xcc\x8a\xdb\x2e\x77\xbd\x6b\x0c\xf5\x8e\xcb\xf5\x9d\xd6\x62\xcf\xdf\xda\x9c\x65\xff\xfa\x73\x73\x66\xd4\xe9\xbe\x10\xa0\xa4\x15\xde\x39\xff\x9a\xb3\xc6\x03\x22\x01\x22\x31\x40\x24\xf3\x18\x20\x12\x20\x12\x20\x12\x20\x12\x20\x12\x20\x12\x20\x12\x20\xd2\xb0\x01\x0a\x20\x12\x20\x12\x20\x12\x20\x12\x20\x12\x20\x12\x20\xd2\x31\x42\x24\xdc\x1a\x02\x7a\x06\x7a\x06\x7a\x06\x7a\x06\x7a\x36\x14\x7a\xd6\x72\xdb\xfe\x8e\x20\x5a\x9d\x9c\x49\x27\x01\xa8\x29\x7b\x8c\x65\xb8\x03\x82\x76\x59\x49\xfd\xa4\xd9\x58\x09\x51\x2b\x0e\x95\x3a\x33\x6a\xa8\xc1\xb5\xb2\xfb\xe2\x6f\x60\x6f\x60\x6f\x47\xc6\xde\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\xc0\xdd\x8e\x8f\xbb\x21\x01\x01\x50\x22\x50\x22\x50\x22\x50\x22\x50\x22\x50\x62\x2b\x4a\x34\xb6\x6e\xc7\x11\xb7\xa2\x81\x07\xb9\x98\x75\x6e\x9c\x23\x4a\x23\x3a\x55\xd9\xcc\xcf\x6b\xce\x0c\x95\x58\xce\xf3\x22\x51\x10\xfb\xc9\x6f\xef\xbe\xfe\x73\xfe\x59\x5c\x43\xbb\x21\x4b\xf3\x9d\x78\xe4\x24\xcd\xac\x88\xda\xf3\x6f\xea\xdf\x5c\xb5\x7a\x1c\x85\x3f\xea\x55\xd4\xd0\x76\xcd\xc6\xd8\x65\x09\x59\x1a\x7e\x7b\xf7\xf5\x7b\xdb\x6b\x58\x4d\x9b\xaf\x26\xd7\x91\x14\xca\x7b\x12\x8b\xaa\x85\x4d\x6f\xbc\xb8\xec\xf2\xdc\xa5\xdb\x8a\x31\x8b\x66\x56\x1c\x77\x7a\xb7\xf7\x58\x21\x77\x81\xe5\x4b\x42\xbf\xdd\x58\x13\xf4\x7f\x70\xc1\xef\x7c\xa7\x0f\x66\x15\x8e\xed\x44\xf3\x57\x93\xeb\xff\x7b\xd2\x8b\x6e\xbd\x43\x48\x5f\x71\xd8\x8d\x35\xbc\xc4\x19\x64\x6e\x3d\xc1\x09\x04\x4e\x20\x70\x02\x81\x13\x08\x9c\x40\xe0\x04\x02\x27\x10\x38\x81\xc0\x09\xe4\xd0\x7d\x00\x27\x10\x38\x81\xc0\x09\x04\x4e\x20\x70\x02\x81\x13\xc8\xf1\x39\x81\xc0\x71\x00\x8e\x03\x70\x1c\x68\x9f\x4d\x70\x1c\x58\xba\xce\xe0\x38\xb0\x89\xe3\x80\xa3\x33\xcb\x42\x8f\x17\xa0\x8d\x39\xed\xfb\xe5\x36\xa6\x4c\x16\xa8\x44\x2b\x17\x76\x96\xae\xc3\x35\xe6\xa5\x06\xb0\xf9\xe8\x0b\xa8\x05\xf7\xce\x17\xd3\x35\xe5\x35\x2c\xcf\xe7\x63\x79\xee\x96\x4d\x79\x9d\xf5\x79\xcd\x82\x7d\x4d\xd2\xeb\xed\xf2\xaf\xef\x04\x70\x7f\xa2\x75\xf7\x8d\x16\x46\xde\x4b\xa6\x75\x58\xd5\x61\x55\x87\x55\x1d\x56\xf5\x53\xb3\xaa\x77\x3b\x55\x5a\x2d\xeb\xaf\xcc\xcf\xdf\x7d\xef\x25\xdd\xcf\xda\x13\x2e\x29\x6d\x42\xa0\x67\x94\x99\x07\x8d\xb6\xd5\xe5\x88\x89\x60\xa9\xee\xad\x5c\xab\xde\xec\x56\xb2\x58\x9a\x9d\x45\x65\xac\x94\x7e\x73\x0a\x59\x98\xbd\x7c\x2f\x25\x0b\xe3\x4c\xcb\x65\x4f\xc2\xcf\x78\xd2\xc7\x24\xe3\xd2\x2e\x79\x37\x37\x6c\x07\xb3\x69\x99\xd1\x2a\x4b\x33\x15\x68\xb9\xc1\xa8\xac\x35\x8b\xe7\x98\xfd\x41\x5f\xa4\xd1\xa2\xb9\xa3\xf5\xd5\xdb\x24\xf9\x40\x46\x98\x50\xef\xd2\xa5\xd4\x03\xaf\x75\x00\x37\x25\x6d\x71\x8b\x39\xf2\x3b\x0c\x94\x69\xcb\x61\x86\x69\x6f\x28\xa4\x5b\x57\x2c\xc7\x21\x7b\xeb\x91\xdf\xeb\x4a\x6d\x2c\x59\x6e\x74\x4d\x36\x11\x53\x23\x39\x7b\xb3\x59\x25\x4a\xd8\xdd\x8b\xa6\x4e\x29\xcc\xe1\x30\xd1\xea\x9c\xbc\x92\x22\xe2\x34\x41\xad\x5a\xaa\x35\x68\x77\x82\x1a\x13\xba\x5f\x1a\x56\x5b\x89\x67\x33\x11\xc6\xbc\x10\xc9\x4b\x25\xd2\x56\x47\x6e\x9c\x5c\x5a\xb5\x93\x3a\x9d\x45\x19\x0f\x68\xd5\xc4\x2a\xf4\x02\x41\x75\x68\x93\xbe\xe0\x66\x69\x99\xeb\x4a\xd6\x87\x8b\xeb\x37\x5d\x83\xec\x47\xa6\x66\x0f\x74\x45\x8c\x4d\x3d\x67\x82\xcb\xd6\x3a\x6e\x31\xcc\x54\xe7\x3b\xaa\x72\x9b\x2a\xbf\x46\x99\x1f\xca\xf4\xdf\x84\x82\x75\xeb\x97\xe5\x24\x6c\x6f\xd3\x1f\x4c\x0c\x4c\x0c\x4c\x0c\x4c\x0c\x4c\x6c\x67\x4c\xac\xe3\x59\xb0\xc0\xc5\xf6\x77\x2c\x7e\xaa\x5d\xba\x98\x26\x82\xe7\xc2\x6f\x41\x77\x99\x4a\x79\x44\xd2\xd1\x9d\x4a\xe2\xe0\xa5\x61\x07\x73\x93\xae\xba\xb5\x51\x4f\xbb\x9b\xf1\x3f\xc6\xec\x87\xd9\xcf\x8c\xe8\x92\x0a\xa9\x17\x4b\x75\xa6\x0a\xa6\xb2\xf4\x81\x4b\x67\x97\xcb\x4a\x71\x3d\xe5\x89\xd3\x95\xef\x2f\xcc\xcf\xf7\x17\x6c\x1a\x4b\x9e\xc4\xff\x76\x07\xc9\x44\x30\x1e\x86\x34\x3b\xaf\x8d\x15\x3d\xac\xd4\x30\x53\xfc\x28\xaf\x5e\x32\xfa\xe9\x98\x7d\x8e\x69\x73\xac\x55\x5d\x65\x8b\x6d\xa3\xed\xc7\x98\x8a\x8c\x7a\x4c\x3a\x8a\x2a\x1e\xb6\x19\x50\xd3\x82\x4f\xae\xed\x7b\x33\xf1\x2d\x2a\x66\xd4\x74\xbd\x60\x1f\xd4\x33\x8b\x78\x36\xe1\x51\xc3\x48\xee\x95\x1a\x91\x4d\x55\x36\xd3\x63\xd2\xda\x5f\xdf\xe6\x5a\xb4\xbc\xbb\x48\xe8\x75\x12\x6b\x6a\xfa\x36\xd6\xd2\x64\x10\x87\x95\x2a\x4c\xb2\x02\x19\x27\xfc\x18\xe7\x14\xc6\x47\xbf\x3a\x69\x60\x5c\x1b\x4c\x77\x8e\x38\x55\xfb\xca\xdb\x98\x9b\x1f\x1b\xb3\xdb\x20\x10\x69\x41\x67\x53\x5d\xb3\x1b\x99\x36\x8c\xd8\x95\x9d\x80\xcd\x09\x9a\xff\xcc\x46\xbf\xf0\xe0\x31\xca\x54\x29\x43\xfd\x14\xd9\x6a\xe9\xa1\xb9\x8e\x33\x22\xa4\x95\x8f\x9b\x85\xb8\x16\x4c\x7c\x49\x3f\xb3\xd1\x17\x95\x89\x5a\xb1\x2c\xe0\x79\xc0\x43\xdd\x7a\xdb\x3f\xc6\x9c\x4f\xe5\xe5\x46\xf5\x5c\x28\x70\xea\xcb\xd8\x66\x42\xa6\xf3\xd3\xfd\x80\x96\x02\x00\xec\xe3\x01\xd8\xdd\x66\xd7\x2a\x88\xbd\x3f\x65\xfe\x90\x38\xbb\x5b\x3f\xad\x40\xda\xfb\x3b\xf0\x87\x0a\xb7\xbb\x75\xe1\x22\xe0\x7e\xed\x71\xda\x0a\x97\x11\xb2\xba\x21\xd1\xfb\x51\xf0\xa2\xec\x8a\xf2\x4e\x31\x68\xce\x9c\xde\x95\x64\x75\x2c\x01\x74\x43\x0f\xa0\x85\x17\x06\xbc\x30\x4e\xc9\x0b\x03\x7e\x0b\xf0\x5b\x80\xdf\x02\xfc\x16\xe0\xb7\x70\x70\xbf\x05\x00\x71\x30\x52\x30\x52\x30\x52\x30\x52\x30\x52\x30\x52\x30\xd2\xa5\x87\x00\xb0\x05\xb0\x05\xb0\x05\xb0\x05\xb0\x05\x2e\x13\x5c\xc5\x47\x70\x99\xe0\xd9\x5d\x26\x88\x94\x0c\x03\xbf\x59\xc1\xfe\xf5\x67\x35\xc8\x2a\xef\x99\x78\x19\xd5\x84\x71\xb9\x96\x6e\x99\x27\xfb\xe6\x5b\xdb\x05\x76\xae\x98\x3a\xfd\x6f\x82\xbd\xc4\x78\x22\xce\xa8\x3e\xde\x83\x8d\x33\x22\x7b\xc3\x6f\x5c\xf2\x48\x64\xc6\x72\x66\x76\xc7\x3c\x57\x41\x4c\xaa\xa0\xb7\x51\x71\x32\x35\xaa\x8c\x09\x59\x68\x51\xd5\xe9\xc6\x33\xfe\xa8\x7b\xb1\x78\x10\xb9\x70\xf2\x5e\x3d\x9a\xc6\x45\xdd\x90\xbc\x4b\xf6\x28\x95\xb1\x9b\xf7\x3f\xe9\x67\x33\x1e\x10\x80\x4a\x94\x8c\x8c\x74\x47\x36\x23\xad\xdc\xf3\x58\x9a\x2d\x89\x6c\x32\xd5\xb3\x64\x94\xb7\x78\x8c\x4d\x5e\x18\x9d\x8e\x1f\xae\xaf\x23\x95\x70\x19\x8d\x55\x16\x5d\xa7\x8f\xd1\x75\x29\xe3\x40\x85\xe2\xfa\x6f\x5f\xf3\x3b\x5d\xca\xd6\x46\x5e\xdb\x39\x7d\x0e\xcf\xa0\xc4\xc1\x23\x94\xd2\xba\x4a\x68\xef\x3b\x48\x68\x1f\x8d\xa9\x6a\x30\x35\x7e\xbf\xb6\xc6\xc6\x63\x76\x30\x55\x3e\x41\x31\x98\xa4\x8e\x61\x8b\xc1\x6f\x58\x1f\xf7\xbc\x98\x7f\xfa\xcf\x9e\xae\x7b\xe9\x20\x73\xb5\xdc\xf1\x72\x30\x99\xeb\x48\x2e\xd3\x80\xa0\x55\x1f\xe4\xc1\x0a\x5a\x08\x5f\x3e\xa3\xf0\x65\xc4\x69\x21\x4e\x0b\x71\x5a\x88\xd3\x82\x8e\xb8\x6c\x15\x0d\x32\xd2\xe1\x30\xda\x17\x02\x35\xd6\x05\x6a\x0c\x5c\x17\xf3\xd6\xea\xde\xc3\x33\x88\xe5\x37\x05\xaf\x75\x1a\x94\x7e\x65\xc7\x31\x19\x35\x49\x44\xfc\x45\x9e\x56\x13\xfd\x17\x0f\x8a\x31\x63\x9f\xf5\x7f\xdd\xbf\xcf\x78\x4c\x86\xbc\x9c\x05\x49\x99\x17\x22\xab\xce\x17\xe3\x92\xc9\x92\xf8\x51\xb0\x91\xaf\xe3\x48\x8b\x91\x4e\xf4\x19\xb3\xbb\x84\x4b\x69\x3d\x25\x48\x38\xe1\x89\x91\x87\x6e\x7e\xda\x66\xc3\xa6\x3a\x1e\x48\x6c\xf0\x9d\xe6\xa5\xee\x89\xeb\x3e\xdd\x52\xf6\xd9\xf4\x98\x3e\x2a\xd2\xdc\xf5\x8e\x75\x46\x2a\x73\x91\x91\x17\x51\x25\x40\xbf\xec\xb8\xa3\x74\x65\x4e\x17\x81\x0f\xfb\x3c\x83\x39\xae\x79\x08\xe8\x6d\xf5\x48\x4e\x80\x2d\xa0\x34\xf1\x16\x6b\x19\x69\xf9\x7e\x17\xd6\x3c\x14\xcc\x0c\xbe\x7e\x74\x7c\x9d\x1c\x75\xb6\x4a\x7b\x7c\x45\xef\xfe\x7d\xf5\xf6\x3c\x13\x59\x24\x3a\x3d\x99\x17\x19\x2f\x44\x14\x07\x57\xdd\xdf\xd1\x7f\xbf\xd8\x27\xe9\x20\xe8\x22\x53\x91\x67\x27\x05\x8e\x19\xa7\xb2\x0d\xe5\x2b\xfa\xda\x30\x0c\xd4\xbb\x72\x0a\x58\xa1\x90\xdc\x35\x1d\xbb\x18\xcc\xd6\x27\x6e\xb6\x3e\x1f\xff\x80\xb9\xf8\x0b\xb7\xb8\x4c\x8c\x50\x6a\x5c\xa6\x6d\xdc\xf9\xdb\x25\x9b\xd0\x3b\x32\xda\x99\xc0\x60\x9e\xd0\x9b\x52\xc9\x2b\xf3\x36\x3d\x41\x76\xf3\x9c\xbd\xfd\x35\x57\xf2\xce\x84\x5f\xff\xa6\xb7\x3b\xfb\xf7\x0f\xb7\x09\x56\xff\xf8\x6e\x48\x8e\x0b\xdd\xe7\xcd\x17\x95\x05\x04\x16\x22\x45\x83\xaf\xd8\xfd\xc5\x54\xff\xdb\xfd\x05\xbb\x6d\xf4\xe6\x98\x7d\x2d\x2c\x05\x20\x3d\xc7\x2e\xd4\x2b\x1e\xd0\x00\x50\x00\x6f\x12\x07\xd6\xae\x49\x6a\x91\x7a\xb6\x63\x6b\x02\x5c\x53\xa1\xd2\x44\x8c\x99\xf9\x26\xc5\xed\xbb\x39\x45\x3e\xf5\xad\x03\xe1\x3f\xbf\x4d\xf7\xea\x0f\x41\x3b\x32\x3f\x40\x3b\x3a\xb0\xb3\xc2\x9c\xa7\xf6\xb0\xf5\xa3\xb2\x77\x0b\x59\x9a\xf0\x60\x53\x21\xce\xbe\x75\xda\x62\x1c\x7c\x3b\x21\xbb\x9d\x89\xec\x36\x20\x11\x09\x27\xb9\xff\x05\xbe\x9d\x27\x2f\x7b\x94\x43\xb7\xcc\xbe\x61\x1d\xfd\x24\x29\x64\xad\x25\xfd\x5d\xef\x4c\xcf\xc6\xf1\xcb\x30\x7e\x8a\xc3\x92\x27\xf5\x10\x49\xee\x6f\xee\xa0\xf6\x8e\x6b\x7e\x40\x1f\xbc\x07\xd1\x88\x4a\x18\x55\xf7\x37\x35\x2e\xe4\xf1\x92\x0e\x8b\x65\x5e\x08\xde\xb0\x37\xce\xcb\x41\xcf\x0b\xc6\x2c\x1f\x05\xf7\x45\x65\xb7\x49\xe2\x85\xa2\xfc\x62\x00\xdb\xd9\xd2\x17\xce\x2b\x72\x71\x85\x7d\xee\x7f\xfc\x80\x9e\xf1\xae\x44\x63\x78\xe2\xa1\x8c\xb8\x17\xf1\x84\xef\x45\x5c\x0f\x85\xd6\xdd\x89\xb8\x7d\x22\xd9\x6e\xc0\x0b\x37\x21\xe2\x26\x44\xdc\x84\x88\x9b\x10\x4f\xed\x26\xc4\xf5\x3b\x6f\xeb\x2d\x88\x3b\x76\x2f\xd8\xdb\xdd\x87\xeb\x9b\xbf\xfc\xde\xc3\x21\xf7\xc1\x26\xb7\x1d\xae\xef\x83\xe5\x37\x1d\xee\xb8\x0f\x70\xbf\x21\xee\x37\xc4\xfd\x86\xb8\xdf\x10\xf7\x1b\xee\xec\x7e\xc3\x0e\xbb\xff\xc2\xdd\x86\x2b\xa3\x0a\xcf\xc8\xbb\xb0\x5b\x6b\x70\x3f\xe3\x91\xdd\xcf\xb8\x7e\x12\xad\xba\x9b\x71\xc7\xb3\xe9\xa0\x37\x32\xae\xef\x99\x15\xb7\x31\xee\x7a\xd7\x18\xea\x1d\x8c\xeb\x3b\xad\xc5\x82\xbf\xb5\x39\xcb\xfe\xf5\xe7\x86\x1c\x68\xe5\xad\x19\x67\x8c\x87\xe6\x9c\x64\xfe\x35\x67\x64\x07\x18\x02\x18\x62\x00\x43\x00\x43\x00\x43\x00\x43\x00\x43\x00\x43\x00\x43\x00\x43\x00\x43\xc3\x84\x22\x00\x43\x00\x43\x00\x43\x00\x43\x00\x43\x00\x43\x00\x43\xc7\x08\x86\x70\xdf\x06\x88\x18\x88\x18\x88\x18\x88\x18\x88\xd8\x41\x89\x58\xcb\x3d\xf2\x3b\x02\x63\x75\x1a\x26\xdd\xb1\xaf\xa6\xec\x31\x96\x61\x8f\x54\xec\xb2\x12\xf1\x49\x8d\xb1\xe2\xa0\xd6\x12\x2a\xdd\x65\xd4\xd0\x79\x6b\x65\xbf\x8a\xa9\x81\xa7\x81\xa7\x1d\x13\x4f\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x3b\x12\x96\x86\x6b\xf8\x81\x05\x81\x05\x81\x05\x81\x05\x81\x05\x81\x05\x9b\x58\xf0\xaf\x42\xc8\x9c\xd8\xc8\x56\x84\xef\x20\xb7\x9c\xce\x0d\x72\x44\x79\x30\xa7\x2a\x9b\xf9\x49\xcd\x99\xe1\x0f\xcb\x59\x5d\x24\x8a\xcf\xbe\xed\xb7\x77\x5f\xff\x39\xff\x3c\xee\x75\xdd\x10\x9b\xf9\x4e\x3c\x76\x68\xe6\xa7\x45\xed\x9d\x37\xf5\xef\x2e\x5d\x42\x0e\xab\x1f\xf5\x52\x6a\xe8\xb9\x66\x6b\xec\xba\x8e\x2c\xf5\xbe\xbd\xfb\xfa\xbd\xed\x55\x2c\xa9\xcd\x97\x94\xeb\x48\x0a\xc7\x3d\x99\x95\xd5\x82\xa4\x37\x5b\x61\xb1\x8c\x32\x91\x37\x47\xaf\x7f\xbf\x14\x63\x18\xcd\xac\x60\xee\x34\x6f\xe7\x92\xf2\xd5\xd4\x61\xc5\xe2\xd0\xef\x2f\xac\x0e\xfb\x1a\x2e\xe1\x9d\xef\xfc\xc1\xac\xc8\x71\x35\xe1\xfc\x75\xe0\x76\xd4\x4e\x7e\x19\xae\xf7\x0c\xe9\x2d\xc8\xba\x3a\x67\x5b\xbd\x42\x16\x97\x17\xfc\x42\xe0\x17\x02\xbf\x10\xf8\x85\xc0\x2f\x04\x7e\x21\xf0\x0b\x81\x5f\x08\xfc\x42\x0e\xdd\x07\xf0\x0b\x81\x5f\x08\xfc\x42\xe0\x17\x02\xbf\x10\xf8\x85\x1c\x9f\x5f\x08\x7c\x0a\xe0\x53\x00\x9f\x82\xf6\xd9\x04\x9f\x82\xa5\xeb\x0c\x3e\x05\x9d\x7d\x0a\x1c\xae\x59\x12\x61\xdc\x4a\x71\xcc\x69\xdf\x2f\xc8\x31\x65\xb2\x40\x25\x5a\xb9\xb0\xb3\x74\x3d\xbf\x31\xaf\x2d\x10\x9c\x8f\xbe\x98\x2a\xbe\xb7\xa5\xb0\xae\xa9\xa5\x61\x81\x3e\x1f\x0b\x74\xb7\x04\xc6\xeb\xac\xd0\x6b\x16\xee\x6b\xf2\x4c\x6f\x97\xe7\x7c\x27\xf4\xfb\x13\xad\xbe\x6f\xb4\x30\xf2\x5e\x92\x9b\xc3\xba\x0e\xeb\x3a\xac\xeb\xb0\xae\x9f\x9a\x75\xbd\xdb\xa9\xd2\x6a\x61\x7f\x65\x4a\xfc\xee\x7b\x2f\xe9\x80\xd6\xae\x70\x49\x49\x10\x02\x3d\xa3\xcc\x3c\x68\xb4\xad\x2e\x47\x4c\x04\x4b\x75\x6f\xe5\x5a\x05\x67\xb7\x92\xc5\xd2\xec\x2c\x2a\x63\xa5\xf4\x9b\x53\xc8\xc2\xec\xe5\x7b\x29\x59\x18\x67\x5a\x32\x7b\x12\x7e\xc6\x93\x5e\x26\x19\x97\x76\xc9\xbb\xb9\x61\x3b\x98\x4d\xcb\x8c\x56\x59\x9a\xa9\x40\xcb\x0d\x46\x75\xad\x59\x3e\xc7\xec\x0f\xfa\x22\x8d\x16\xcd\x1d\xad\xb7\xde\x26\xc9\x07\x32\xc6\x84\x7a\x97\x2e\xa5\x1e\x78\xad\x0b\xb8\x29\x69\x8b\x5b\xcc\x50\xdf\x61\xa0\x4c\x5b\x0e\x33\x4c\x7b\x43\x22\xdd\xba\x62\x39\x16\xd9\x5b\x8f\xfc\x5e\x57\x6e\x63\xc9\x72\xa3\x73\xb2\x89\x98\x1a\xc9\xd9\x9b\xcf\x2a\x51\xc2\xee\x5e\x34\x75\x4a\x61\x0e\x87\x89\x56\xeb\xe4\x95\x14\x11\xa7\x09\x6a\xd5\x53\xad\x49\xbb\x13\xd4\x98\xd2\xfd\xd2\xb0\x5a\x4b\x3c\x9b\x89\x30\xe6\x85\x48\x5e\x2a\x91\xb6\x3a\x72\xe3\xe4\xd2\xaa\x9f\xd4\xe9\x2c\xca\x78\x40\xab\x26\x56\xa1\x17\x08\xaa\x43\x9b\xf4\x05\x37\x4b\xcb\x5c\x57\xb2\x3e\x5c\x5c\xbf\xe9\x1a\x64\x3f\x32\x35\x7b\xa0\x2b\x62\x6c\xea\x39\x13\x5c\xb6\xd6\x71\x8b\x61\xa6\x3a\xdf\x51\x95\xdb\x54\xfa\x35\x4a\xfd\x50\xa6\xff\x26\x34\xac\x5b\xbf\x2c\x27\x62\x7b\x9b\xfe\x60\x63\x60\x63\x60\x63\x60\x63\x60\x63\x3b\x63\x63\x1d\xcf\x82\x05\x3e\xb6\xbf\x63\xf1\x53\xed\xda\xc5\x34\x11\x3c\x17\x7e\x0b\xba\xcb\x54\xca\x23\x92\x8e\xee\x54\x12\x07\x2f\x0d\x3b\xd8\xff\xcb\xde\xdf\x34\xb9\x89\x64\x7f\xd8\xf0\xbe\x3e\x45\x46\xcd\x42\x76\x8c\x4b\xf5\x94\x37\xd3\xe1\x5e\xd5\xf8\x65\x1e\xf7\xdd\x2f\x15\xed\x8e\xde\xdc\xee\xf8\x47\x16\xca\x92\x09\x53\xa0\x00\xc9\x9e\x9a\x89\xf9\xee\x77\x90\x09\x08\x49\xbc\x89\x42\x90\xa0\xcb\x1b\x2b\x4a\x80\x20\x33\xc9\x3c\x79\xae\x73\x7e\x27\x1d\x74\x5b\xdd\xc6\x78\xd8\xdd\xcc\xff\x31\x17\x9f\xcc\x7c\x66\x4c\x97\x95\xf2\xe3\x97\x65\xbb\xa6\x2a\x11\x84\xab\x2f\xd2\x4f\xfd\x72\xe1\x46\x5d\x3f\x48\x2f\xdd\x2b\x7f\xbe\x34\x5f\x7f\xbe\x14\x0f\xae\x2f\x3d\xf7\x3f\xe9\x42\x72\xaf\x84\x5c\x2c\xf4\xe8\xbc\x36\xde\xf4\xc5\x76\x1b\x66\x2e\x3f\x8b\xb6\x27\x99\xfd\xe9\x5c\xbc\x77\xf5\xe4\x98\xbb\xf5\x20\x3c\x7c\x36\x3d\xfd\x18\x57\x91\xd9\x1e\xeb\x3d\x4a\xb0\xfe\xd2\xa6\x43\xcd\x13\xbc\x4b\x9f\xbd\x37\x17\xdf\xe1\xc6\x4c\x3f\x7a\xfc\xc2\x7e\x09\xbe\x8b\xa5\x0c\xef\xe5\x72\xc7\x59\x9e\x6d\x6a\x54\xf8\x10\x84\x8f\x71\x9f\x14\xb6\xd7\x6f\x7b\x4f\x54\xde\x5c\xda\xe8\x4d\x2d\xd6\x95\x69\x5b\x37\xb6\x26\x1d\x77\xb1\xdd\x0a\x6b\x5b\x41\x3b\x27\xb2\x3e\x8e\x74\xb2\x9f\xfe\x36\xb5\x06\xe6\xb9\xce\x4c\xd7\x91\x74\xab\x7d\x95\xf9\x98\x77\x7f\x6c\x2e\x6e\x1d\x47\xad\xd6\x7a\x6d\xca\xef\xec\x66\xe6\x19\x66\xe2\x2a\x19\x80\xbb\x03\x34\xfa\x51\xcc\xfe\x29\x9d\xaf\xcb\x30\xd8\xf8\x8b\xf8\x28\xed\xab\xd5\x07\xed\x35\x9c\x31\x21\x13\xfb\x78\xf7\x22\xe9\x13\xdc\x67\x57\xfa\x51\xcc\x3e\x04\xa1\xca\x5d\x56\x38\x32\x72\xe4\x22\x7e\xfa\xa4\x7d\x8c\x3b\x5f\x5f\x2f\x32\x5b\xcf\x83\x0b\x3e\x64\xd7\x68\x33\x20\x57\xfb\xc3\x7d\x40\x4f\x01\x20\x7b\x3c\x20\xbb\xd9\xe8\xaa\x82\xd9\xfd\x6d\xe6\x87\xc4\xda\xcd\xda\xa9\x02\x6d\xf7\xb7\xe0\xdb\x0a\xb9\x9b\x35\xe1\x21\xe8\x7e\xee\x72\x5a\x08\x99\xc9\x67\x3d\x92\xe8\x7d\x5a\xcb\xf5\xa6\x29\xca\x9b\x6a\xfe\x9c\x59\xc1\xb7\xd6\xd5\x48\x72\xe9\xc6\x91\x5c\x4b\x40\x06\x01\x19\xd3\x0a\xc8\x20\x84\x81\x10\x06\x42\x18\x08\x61\x20\x84\x61\xf0\x10\x06\xd8\x38\xb8\x14\x5c\x0a\x2e\x05\x97\x82\x4b\xc1\xa5\xe0\xd2\xd2\x45\x00\x82\x01\xc1\x80\x60\x40\x30\x20\x18\x08\x0d\x56\xa1\x12\x84\x06\x45\x05\x28\x99\xb6\xd0\x20\x95\x1c\x2c\x57\x5d\x48\x3e\xfd\xb5\xed\xe4\x20\xea\x18\x81\x99\x3d\x8a\x90\x7e\x03\xdc\x65\x8e\x3d\x0d\xf0\x6a\x97\xf4\x59\x31\x84\x4e\x35\x2b\x76\x92\x05\x4a\x26\x52\xbe\xd7\xad\xcd\x44\xd2\x6e\x88\x5f\xa4\x2f\x97\x2a\x34\x0e\x35\x33\x57\x46\x51\xe0\xb8\x7a\x87\x98\xb9\xae\xa4\xf6\x40\x06\xa1\x50\xfe\x3a\xb6\x60\xd3\x2d\xf3\xa3\xfc\x1a\xb7\xe2\xfa\x8b\x8a\x54\x6a\x06\xe6\xf3\x6d\xd2\xbc\x1c\x6d\x06\x6b\x37\x55\x10\x8a\x9b\xd7\x3f\xc4\xc7\x86\xd2\xd1\x5c\xca\x0b\xfc\xa5\x31\xfa\xb4\x2b\x29\xde\xf3\x4b\xd7\x37\x13\x94\x76\xd5\x6c\x8f\xd5\xbe\xfa\x84\x9a\x89\xfb\x27\xa1\x97\xcb\x37\xd7\xd7\xcb\xc0\x93\xfe\x72\x1e\x84\xcb\xeb\xd5\xd7\xe5\xf5\xc6\x77\x9d\x60\xa1\xae\xff\xf6\x31\xba\x8b\xaf\xd2\xda\xf7\x9b\x34\x4e\x97\xdd\x63\x95\x95\x38\x5a\xe3\xad\xa9\xe1\xf6\xba\x81\xe1\xf6\xd6\xf8\xb1\x2c\xbb\xef\xd7\xb5\xf7\x6d\xe2\x6b\x2d\xbb\xf1\x89\x5a\xca\xda\x32\xb1\xda\x52\xbe\x10\x5d\xc8\xc4\x98\xbf\xfe\xaf\x27\xb5\x98\x46\x66\x59\x89\x44\xcc\x80\x66\xd9\x48\xb4\x38\xb0\xc2\xf2\x9d\x6c\xad\x15\x46\xf6\xf3\x19\x65\x3f\x93\xe6\x45\x9a\x17\x69\x5e\xa4\x79\xb1\x81\x2c\x7b\x8b\xac\x4c\x94\x18\x66\x3b\x46\x9e\x47\x72\x5c\x65\x9e\x87\xdd\xdb\xb2\xcc\xb7\xdd\x79\x76\x87\x0e\x01\xd8\xb5\xbd\xea\x37\x53\xf1\x49\xbd\xa4\x74\xe4\x8c\x12\xf5\x6f\x1d\xa8\x75\x1f\x7f\x92\xce\x7a\x2e\xc4\xfb\xf8\xff\xf4\xef\x8f\xd2\xd5\x0e\xbf\x48\x38\xde\x26\x5a\xab\x70\xbb\xd4\x98\x88\x4e\xe1\xb9\x5f\x95\x98\x65\x77\x39\x8b\x2d\xca\xd4\x0a\x9a\x8b\x3b\x4f\xfa\x7e\x12\x68\xa1\xed\x14\xe9\x19\xd3\xe8\xe6\x87\x36\x73\xb7\xbe\xc7\x81\x2c\x88\xac\xd1\x32\x03\xfc\x3e\x6d\xbe\xf8\x49\xc5\x7b\xd3\x62\xf1\xaa\xb1\x8a\xd2\xd6\x49\x62\x99\x36\x91\x0a\x75\x10\xd2\xd6\x96\x7e\x3a\x71\x43\xc5\x37\x33\x5d\x82\x6e\xf7\xd2\x86\xab\xae\x6c\x55\x88\x27\xda\x71\x2c\x09\x2d\x98\xb6\x06\x34\x89\xb7\xa4\xf0\x0e\x9a\xc0\x6a\x5b\x38\x35\x80\x7e\x74\x80\x5e\x87\xfc\xb4\x2a\xb6\x7c\xa5\xcf\xfd\x7b\xf5\x4c\xfd\xa8\xc2\xa5\x6a\x74\x64\xb4\x0e\xe5\x5a\x2d\x5d\xe7\xaa\xf9\x39\xf1\xe7\xa7\xe4\x48\xbd\x26\x34\x31\xb3\x74\x8c\xa8\x4e\x41\x33\xe1\x69\x47\x9b\x5c\xfa\xf7\x6c\x72\x5f\x9f\x2a\xaa\xa0\x62\xbb\x72\xb7\x1b\x2a\x26\x70\x6a\x4f\xdc\xa9\x7d\x3e\xa1\x05\x7b\x19\x1d\xe9\xcb\x65\xb2\x8e\x56\x26\x08\x3b\xc9\x64\x7f\x51\x32\x19\xbd\xd4\x2e\x3d\x93\x6a\x2c\x3d\x7d\xa6\x1f\xf8\x57\xe6\x6c\x7d\x84\xf6\xaa\x47\xe2\xc5\x4f\x51\xe0\xdf\x99\x84\xee\x5f\xe2\x69\x2f\xf9\xfc\x29\x9d\x0c\xb7\x7f\x7c\x69\x53\xcc\x43\xf3\x71\xf3\x21\x08\x1d\x8d\x1d\x96\x81\xee\xfc\x40\x7c\xbe\x7c\x88\xff\xf6\xf9\x52\xdc\xee\xb4\xe6\x5c\x7c\x5c\x27\x8c\x40\x6f\x7d\x92\x17\xf5\x4a\x3a\xba\x03\x74\x4a\xb0\xe7\x3a\x89\xd7\x53\xef\x94\x82\xef\x49\xdf\x9a\x94\xd9\x95\x0a\x56\x9e\x9a\x0b\xf3\x9b\x5a\x09\x20\x1d\x53\x3a\x4a\xbf\xb0\x23\xb2\x9f\x6f\xd3\xbc\xf1\x0f\xb1\x61\x32\x5f\xb0\x61\xb2\x65\xc3\xb4\xda\x8b\x02\xb7\x7a\xcb\xb4\xe9\xdc\x8b\xb6\xf2\xa4\x73\xbc\x55\x97\x9c\x77\x0e\x76\x1d\xd1\xa2\x98\x74\x67\x65\xd2\x59\x64\x39\xb1\xc0\x67\xdf\x10\x2d\x7a\x76\x86\xc9\xc6\x72\x4f\xee\x85\xe8\x30\xe6\xf2\x3a\x32\x4c\x37\x17\x7a\x79\x1a\x66\x68\x7e\x27\x5d\xcb\xba\xa7\x87\x09\x9b\x66\xc2\xe2\xc5\x07\xe1\x80\x70\x40\x38\x20\x9c\xc2\x23\x87\x43\x38\xed\x57\xc0\x86\x30\xa7\x60\x09\x1c\xe5\xd6\x1f\xa4\xc3\xfe\xff\xfc\xf6\xff\x20\x9d\x2e\xc7\x0d\x48\x07\x8f\x0f\x1b\x28\x90\xce\x6e\xa3\xf5\x80\x74\x9e\xe3\xe7\x68\x08\x77\xa6\x62\xe7\x81\x78\x30\xf1\xce\xca\xc4\xb3\xc8\x92\x62\xc1\xcf\xbe\x01\xf1\x9c\x9d\xa1\x32\x0d\xc4\xa3\xa5\x10\xb7\x44\xe7\xa4\x0c\x27\x91\x88\xf6\x17\xee\x37\x77\xb1\x91\x5e\x5e\x7d\x53\x66\xa2\xf0\xc9\x13\xcf\x73\x09\xe3\x6f\xb2\x54\xf3\x99\xbe\xc6\x6c\x5b\x1c\x64\xa7\xda\x43\x66\x0c\x09\xd7\x8f\xd6\x4a\xee\xf8\x2f\xf7\x4d\xa5\xef\x85\x0e\xb1\x9c\xc4\xe2\x87\x20\xbc\xf5\xbc\xcc\x72\xb2\x82\x0b\x95\x9e\x70\x5e\xe2\x98\x15\xde\x3d\xad\xed\xfa\xfe\x9b\xf2\xcf\x5d\x22\x53\xf7\xe3\xb4\x75\x32\xa9\xbe\x35\xe1\xea\x5b\xf5\xb4\xa9\xae\xf2\x56\xa5\x3b\xab\x03\x92\x46\xbd\x2d\xea\x6d\x51\x6f\x8b\x7a\x5b\x53\xab\xb7\x55\x3f\xf3\x16\xd6\xda\x3a\x71\xdc\x42\x6f\x15\xb6\xea\x1f\xbf\xbc\xba\x96\xcd\x6d\x70\x4c\x4d\xad\xfa\x36\x28\xaf\xa7\x75\xe2\x36\xa0\x8a\x16\x55\xb4\xa8\xa2\x45\x15\x2d\xaa\x68\x9d\xac\x8a\x56\x83\xd9\xff\xa0\x82\x56\xa5\x0e\xe5\x19\x85\x2d\x36\x7b\x1a\xaa\x80\x8d\xac\x0a\x58\xfd\x20\xaa\xaa\x00\x76\xe2\xd1\x34\x68\xdd\xaf\xfa\x96\xa9\xa8\xf9\x75\xea\x59\xc3\xd6\x4a\x5f\xf5\x8d\x56\xe0\xc4\x6f\xed\xce\x4a\x3e\xfd\x75\x0c\x12\xaa\xcb\xfd\x39\x7b\x52\x74\x10\x52\xf3\xf3\x9e\xaf\x1d\x46\x04\x23\x12\x30\x22\x18\x11\x8c\x08\x46\x04\x23\x82\x11\xc1\x88\x60\x44\x30\x22\x6b\xf9\x08\x8c\x08\x46\x04\x23\x82\x11\xc1\x88\x60\x44\x30\xa2\x31\x32\x22\x34\x3d\x80\x63\xc0\x31\xe0\x18\x70\x0c\x38\x36\x28\x1c\x2b\x28\x46\x7c\x22\x46\x96\x07\x63\x7e\xba\xec\x07\x0f\xe2\xab\xeb\x2f\x3a\x05\x64\xaf\xb6\x46\xbe\xde\xc8\x24\x06\x61\xbc\x4f\xd8\xee\x5e\x66\x3b\xbb\xde\xdc\xb5\x3b\xc0\x6b\xa0\x35\xd0\xda\xd8\xd0\x1a\x58\x0d\xac\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\x0d\xac\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xb0\xda\x38\xb0\x1a\xba\xff\x30\x42\x18\x21\x8c\x10\x46\x08\x23\x84\x11\xee\x31\x42\x5f\xad\xbf\x07\xe1\xd7\x78\x1b\xf7\xf5\x87\x68\xee\x06\xd7\xad\xa8\xdf\x20\xf2\xa8\x7b\x7d\xbd\x54\x6b\xe1\xfa\x0f\x41\xf8\x98\x8d\x6d\x29\x0c\x87\x28\xa7\x77\x4b\xb5\xfe\x35\x6b\x82\xdb\xbb\x8f\xff\xda\x3f\x1e\x41\xd8\x23\x11\x5a\xd6\x88\x23\x07\x68\xdb\x37\x23\x77\xce\x45\xfe\x77\xeb\xde\xa4\x6f\x37\xe3\x7e\x99\x76\xb6\xbc\x66\x8e\x6c\xfa\x26\xfd\x79\x73\x7b\xf7\xf1\xf7\xa2\xb3\x78\x9f\x8e\x7f\x9f\xd2\x86\xd4\x29\xba\x93\x79\xad\xfe\xef\xdb\xcd\x33\xde\xac\x92\x18\x96\xe4\xd8\x55\xe0\xb9\x8e\xbb\x9b\xe6\x6d\xfc\x0b\xdd\x46\xb1\x98\x6b\x0a\x27\xf0\x3c\xe5\xa4\xab\x4e\xf2\x1a\xdc\xc5\xf7\xf0\x54\xf1\xc6\x98\x93\xf3\x2f\xcd\xdb\xec\x3a\xdb\xf8\x91\xd2\xab\x35\xad\x78\x00\xfa\x3e\x1f\xf4\xdd\x4c\x51\xbf\x0e\x7f\x3f\xb7\x94\xce\xab\xf2\xc1\xd8\xae\xfc\xc6\x49\x26\xd6\x77\xfa\xf5\xfb\x4d\xbf\x18\xdd\x54\xdb\x00\xeb\x83\xf5\xc1\xfa\x60\xfd\xa9\x61\xfd\x66\xab\x4a\x21\xda\xef\xad\x84\x0e\x95\x8e\x1a\x77\xd4\x90\x95\x8e\x7a\x8b\xc5\x38\xa2\xb6\x50\x61\x2c\x42\x6f\x2d\xf2\x47\xde\x1f\xeb\xfa\x22\x32\x6e\x52\x71\xaf\x1e\x8c\xe5\x9c\x71\xbb\xad\x29\x91\xcc\x5e\x7a\xe8\xe4\x6a\x3b\xf9\x81\x7f\xe5\xab\xa5\xd4\x03\x34\xf1\xa8\xe6\x6b\x40\x19\x86\x9f\xbd\x1a\xc9\xe6\xc5\x7d\x7c\x54\x0b\x57\xae\x95\xf7\xb4\x35\x69\xb7\x4b\xae\xeb\xbd\x4a\x3c\xa6\xba\xd1\xc5\x32\x94\x8e\x7e\x6b\xdc\x60\x91\x19\x04\xdb\x45\x5b\xef\x17\xd2\x51\xba\x89\xe2\x9b\xcc\x77\x97\x8c\xcf\x4c\x1f\x28\xf9\x91\x07\x33\x07\xa6\x97\x98\x9b\xfb\x34\xf5\x28\x0b\xee\xb1\x45\x37\xeb\x7b\xbe\xd3\xb7\x5c\xe4\x85\xae\xf1\x43\xdb\x32\xfc\x8f\x09\xc3\x69\xd6\x2e\xe5\xa1\x38\xbd\x0d\x7f\x82\x72\x08\xca\x21\x28\x87\xa0\x1c\x82\x72\x4e\x16\x94\xd3\x70\x2d\x38\x08\xcc\xe9\x6f\x59\x7c\x97\x4b\xf0\x5b\x79\x4a\x46\x2a\x9b\x82\xee\xc2\x60\x25\x97\xda\x3a\x32\x2e\xd0\x1d\x3f\x58\x3a\xe8\xb6\x19\x82\xf1\xb0\xbb\x99\xff\x63\x2e\x3e\x99\xf9\xcc\x98\x2e\x2b\xe5\xc7\x2f\xcb\x76\x4d\x55\x22\x08\x57\x5f\xa4\x9f\xfa\xe5\xc2\x8d\xba\x7e\x90\x5e\xba\x57\xfe\x7c\x69\xbe\xfe\x7c\x29\x1e\x5c\x5f\x7a\xee\x7f\xd2\x85\xe4\x5e\x09\xb9\x58\xe8\xd1\x79\x6d\x00\xf0\x62\xbb\x0d\x33\x97\x9f\x45\xdb\x93\xcc\xfe\x74\x2e\xde\xbb\x7a\x72\xcc\xdd\x7a\x10\x1e\x3e\x9b\x9e\x7e\x8c\xab\xc8\x6c\x8f\xf5\x1e\x25\x58\x7f\x69\xd3\xa1\xe6\x09\xde\xa5\xcf\xde\x9b\x8b\xef\x70\x63\xa6\x1f\x3d\x7e\x61\xbf\x04\xdf\xc5\x52\x86\xf7\x72\xb9\xe3\x33\xcf\x36\x35\x2a\x7c\x08\xc2\xc7\xb8\x4f\x0a\xdb\xeb\xb7\xbd\x27\x2a\x6f\x2e\x6d\xf4\xa6\x16\xeb\xca\xb4\xad\x1b\x5b\x93\x8e\xbb\xd8\x6e\x85\xb5\xad\x60\x8a\x9a\xa7\x7d\x1c\x69\x88\xac\xbf\x4d\xad\x81\x79\xae\x33\xd3\x75\x24\xdd\x6a\x5f\x65\x3e\xe6\xdd\x1f\x9b\x8b\x5b\xc7\x51\x2b\x53\x35\x35\xbf\xb3\x9b\x99\x67\x98\x89\xab\x64\x00\xee\x0e\xd0\xe8\x47\x31\xfb\xa7\x74\xbe\x2e\xc3\x60\xe3\x2f\xe2\xa3\xb4\xaf\x56\x1f\xb4\xd7\x70\xc6\x84\x4c\xec\xe3\xdd\x8b\xa4\x4f\x70\x9f\x5d\xe9\x47\x31\xfb\x10\x84\x2a\x77\x59\xe1\xc8\xc8\x91\x8b\xf8\xe9\x93\xf6\x31\xee\x7c\x7d\xbd\xc8\x6c\x3d\x0f\x2e\xf8\x90\x5d\xa3\xcd\x80\x5c\xed\x0f\xf7\x01\x3d\x05\xc4\x5e\x8d\x27\xf6\xaa\xd9\xe8\xaa\x8a\xbf\xea\x6f\x33\x3f\x64\x24\x56\xb3\x76\xaa\x88\xc6\xea\x6f\xc1\xb7\x35\x2e\xab\x59\x13\x1e\xc6\x66\x3d\x77\x39\x2d\x64\xcd\x84\x4a\x1c\x49\xf4\x3e\xad\xe5\x7a\x33\xfa\xca\xce\x65\x11\x12\xb9\xd3\x4a\x92\xf6\xcd\xe2\xbd\x35\xac\xba\xc8\xdf\x3f\x08\xbe\x28\x4e\xe3\x2f\x8b\x52\xd8\x4f\xe6\xaf\xca\xe3\xef\x5c\x63\xc4\xb8\xd4\xc2\x64\x6d\x4f\x6d\xff\x54\x5e\xa4\x69\x98\x46\x7c\x95\x7c\x90\x06\xa1\x19\x84\x66\x4c\x31\x34\x83\x60\x06\x82\x19\x08\x66\x20\x98\x81\x60\x86\xc1\x83\x19\xa0\xe4\x80\x53\xc0\x29\xe0\x14\x70\x0a\x38\x05\x9c\x02\x4e\x4b\x17\x01\x58\x06\x2c\x03\x96\x01\xcb\x80\x65\x20\x79\x5c\x05\x4d\xe6\x39\x37\xfe\xb7\x9b\xf9\x8e\xe3\x7a\xca\x59\xa5\xf5\xcc\xa4\xab\xf2\xa1\x3d\x72\x92\x16\x7a\xc7\xc8\x06\x59\x2e\x1b\x94\x7c\xfa\x6b\xdb\xc9\x41\xd4\x31\x0d\x33\xfb\x14\x21\x1b\x83\x2f\x73\xc2\x89\xd0\x57\xbb\x44\xd0\x8a\x81\x74\xb2\xf9\xb1\x93\xd4\x50\xd2\x93\xf2\xdd\x6e\x6d\x7a\x92\xf6\x48\xfc\x22\x7d\xb9\x54\xa1\xf1\xad\x99\x29\x33\x8a\x02\xc7\xd5\x9b\xc5\xcc\x8b\x25\xb5\x33\x32\x08\x85\xf2\xd7\xb1\x31\x9b\xee\x9e\x1f\x65\x3c\x8a\xe2\x43\x22\x95\x5a\x84\xf9\x24\x9c\x34\x59\x47\x5b\xc4\xda\x63\x15\x84\xe2\xe6\xf5\x0f\xf1\xb1\xa1\x74\x34\xa2\xf2\x02\x7f\x69\xec\x3f\xed\x55\x8a\xb7\xff\xd2\xf5\xcd\x3c\xa5\xbd\x36\xdb\x63\xb5\xdb\x3e\x01\x68\xe2\xfe\x49\xe8\x85\xf3\xcd\xf5\xf5\x32\xf0\xa4\xbf\x9c\x07\xe1\xf2\x7a\xf5\x75\x79\xbd\xf1\x5d\x27\x58\xa8\xeb\xbf\x7d\x8c\xee\xe2\xab\xb4\x76\x03\x27\x8d\xd3\x65\xf7\x58\x65\x30\x8e\xd7\x8e\x6b\x6a\xc3\xbd\x6e\x60\xc3\xbd\x35\x3e\x2d\xdb\x6e\xfc\x75\xed\x8d\x9b\xb0\x5b\xdb\xee\x7c\x7a\x66\xb3\x36\x4f\x46\x61\x36\x5f\x88\x2e\x05\x65\x0a\x4a\x23\x9d\x50\x57\xa6\xb9\xad\x76\xa8\x25\x33\xb8\xad\x36\x12\xd1\x0e\x2c\xb3\x7c\x27\x5b\x6b\x99\x91\x26\x7d\x46\x69\xd2\xe4\x83\x91\x0f\x46\x3e\x18\xf9\x60\x6c\x2a\xcb\xde\x22\x2b\x33\x2a\x86\xd9\xa0\x91\x10\x52\x93\x10\x32\x8e\x7d\x5a\xe6\xf9\xee\x3c\x0d\x44\x07\x09\xec\x9a\x5f\x4d\xb7\x55\xf1\xa9\xfd\xe4\x7e\xe4\xcc\x13\xf5\x6f\x1d\xd1\x75\x1f\x7f\x92\xce\x7a\x2e\xc4\xfb\xf8\xff\xf4\xef\x8f\xd2\xd5\xee\xc0\x48\x38\xde\x26\x5a\xab\x70\xbb\xe8\x98\xd0\x4f\xe1\xb9\x5f\x95\x98\x65\xf7\x3a\x8b\x6d\xcb\xd4\x1e\x9a\x8b\x3b\x4f\xfa\x7e\x12\x91\xa1\x2d\x16\xe9\x19\x23\xe9\xe6\x87\x36\xb3\xb8\xbe\xc7\x81\x6c\x89\xac\xd1\x32\x53\xfc\x3e\x6d\xbe\xf8\x49\xc5\x7b\xd3\x62\xf1\xfa\xb1\x8a\xd2\xd6\x49\x82\x9e\x36\x91\x0a\x75\xb4\xd2\xd6\xaa\x7e\x3a\x71\x43\xc5\x37\x33\x5d\xd4\x6e\xf7\x22\x87\x1b\xaf\x68\x81\x88\xe7\xda\x71\xad\x0e\x2d\xe0\x77\xbe\x00\x50\xc5\x2d\x50\x06\xa8\xf8\x99\xe1\xf9\x9d\xf0\x7c\x1d\x25\xd4\x4a\xff\xff\x4a\x9f\xfb\xf7\xea\x39\xfb\x51\x85\x4b\xd5\xe8\xc8\x68\x1d\xca\xb5\x5a\xba\xce\x55\xf3\x73\xe2\xcf\x4f\xc9\x91\x7a\x75\x68\x62\x77\xe9\xb0\x52\x9d\xb5\x66\x22\xda\x5a\xda\x60\xfa\x57\xad\xf2\x6c\x9f\x2a\x0a\xa1\x62\x27\x73\xb7\x1b\x64\x26\xf0\x77\x4f\xdc\xdf\x7d\x3e\x91\x08\x7b\xb9\x20\xe9\xcb\x65\xf2\x95\x56\x26\x7c\x3b\xc9\x81\x7f\x51\x32\x27\xbd\xd4\xde\x3e\x93\xa4\x2c\x3d\x7d\xa6\x1f\xf8\x57\xe6\x6c\x7d\x84\x76\xb8\x47\xe2\xc5\x4f\x51\xe0\xdf\x99\x54\xf0\x5f\xe2\xd9\x2f\xf9\xfc\x29\x9d\x13\xb7\x7f\x7c\x69\x53\x88\x44\xf3\x71\xf3\x21\x08\x1d\x4d\x24\x96\x81\xee\xfc\x40\x7c\xbe\x7c\x88\xff\xf6\xf9\x52\xdc\xee\xb4\xe6\x5c\x7c\x5c\x27\xf8\x40\xef\x85\x92\x17\xf5\x4a\x3a\xba\x03\x74\x32\xb1\xe7\x3a\x89\x43\x54\x6f\x9d\x82\xef\x49\xdf\x9a\x64\xdb\x95\x0a\x56\x9e\x9a\x0b\xf3\x9b\x5a\x43\x20\x1d\x53\x3a\xbe\xbf\xb0\x23\xb2\x9f\x6f\xd3\xbc\xf1\x0f\xb1\x83\x32\x5f\xb0\x83\xb2\x61\x07\xb5\xda\x8b\x1d\x1f\xc5\x1e\x6a\xd3\xb9\x87\x6d\xe5\x49\xa7\xad\x81\x97\x9c\x7d\x16\x26\x1e\x81\xa6\x98\x77\xe7\x65\xde\x59\x64\x45\xb1\xd8\x67\xdf\x10\x68\x7a\x5e\x56\xca\x66\x24\x7e\xde\x0b\xd1\x30\x5a\xb3\xbc\xce\xdf\x58\x64\xe4\xf2\xe7\x7d\x08\xc2\x5b\xcf\xcb\xac\x1e\x2b\x2a\x66\x96\x9e\x40\xea\x24\xa9\x93\x97\x67\x93\x3a\x89\x28\xe3\x84\x45\x19\xeb\xa1\x50\x9d\x20\x63\xfb\xaa\xec\xcd\x80\x17\x32\x8c\xc8\x30\x22\xc3\x88\x0c\xe3\xd4\x64\x18\xeb\x67\xde\x42\x09\xc6\x13\x87\x17\xf4\x26\xbc\x58\xff\xf8\xe5\xa2\x8b\x36\xb7\xc1\x31\x52\x8b\xf5\x6d\x50\x2e\xb3\x78\xe2\x36\x40\x5c\x11\x71\x45\xc4\x15\x11\x57\x44\x5c\xf1\x64\xe2\x8a\x0d\x66\xff\x03\x61\xc5\xca\xfc\xc3\x33\x8a\x2e\x6c\xf6\x34\x88\x43\x8e\x4c\x1c\xb2\x7e\x10\x55\x09\x43\x9e\x78\x34\x0d\x2a\x07\x59\xdf\x32\x15\x52\x90\xa7\x9e\x35\x6c\x15\x80\xac\x6f\xb4\x02\xef\x7d\x6b\x77\x56\xf2\xe9\xaf\xa6\x04\x47\xff\x76\x43\xd5\x8d\x93\xe2\x9d\xc4\x1c\xf2\x17\xee\x37\x77\xb1\x91\x5e\xbe\x17\x65\xb6\xe5\xd9\xf1\x3e\xcf\x73\x09\xe6\x6f\x32\xbb\x74\xa6\xaf\x34\xdb\x3a\xb9\x76\xbc\x16\x19\x0e\x12\xae\x1f\xad\x95\xdc\x59\x40\xf6\x61\xd1\xf7\x86\x31\xcf\x3f\xef\xb9\xe0\x61\x45\xb6\x66\xd2\xea\x49\xe2\x7d\xbc\x0d\x3a\x5f\x60\xa4\xbb\x10\x6a\x04\x35\x82\x1a\x41\x8d\xa0\x46\x50\x23\xa8\x11\xd4\x08\x6a\x04\x35\x82\x1a\x41\x8d\xa0\x46\x50\x23\xa8\x11\xd4\x68\x7c\xd4\x08\x31\x0e\x70\x19\xb8\x0c\x5c\x06\x2e\x03\x97\x59\x81\xcb\x0a\x44\xea\x4f\x44\xcd\xf2\xa8\xcc\x4f\x97\xff\xc2\xcc\xa8\x4e\x90\xd9\xab\xad\xc9\xaf\xb7\x35\x89\x79\x18\xef\x1a\xb6\x7b\x99\xd9\xce\x1e\x38\x77\xed\x2e\x80\x1b\xb0\x0d\xd8\x36\x22\xd8\x06\x68\x03\xb4\x01\xda\x00\x6d\x80\x36\x40\x1b\xa0\x0d\xd0\x06\x68\x03\xb4\x01\xda\x00\x6d\x80\x36\x40\x1b\xa0\x0d\xd0\x36\x2e\xd0\x86\x90\x3f\xec\x10\x76\x08\x3b\x84\x1d\xc2\x0e\x61\x87\x47\xb3\x43\x72\xea\xf6\x10\xdf\x7e\x26\x1d\x2a\x8c\xfb\xdd\x0a\xec\x1b\x11\xec\x23\xb3\x0e\xe0\x07\xf0\x03\xf8\x01\xfc\x00\x7e\x00\x3f\x80\x1f\xc0\x0f\xe0\x07\xf0\x03\xf8\x01\xfc\x00\x7e\x00\x3f\x80\xdf\xf8\x80\x1f\x90\x08\x48\x04\x24\x2a\x1e\x4d\x40\xa2\xd2\xf7\x0c\x48\x74\x3c\x24\xba\x57\x6b\x79\x73\xdd\x0a\x0a\x0d\x52\x29\x6f\xaf\xcf\x97\x6a\xbd\x6b\xe7\x99\xee\xad\xc0\x41\x4b\xb5\x53\x8e\x4b\x3f\xff\xed\xdd\xc7\xdf\x8b\x4e\xa5\x46\xe0\x91\x4c\x26\xd7\x90\x93\xab\x91\xa5\x47\x4a\xee\xdc\x8b\xfc\xef\x37\x7d\xd1\x5c\x7f\x19\xaa\x28\x72\x3c\x19\xed\xf6\xe4\xa5\xb1\xa5\xbb\xc5\xb1\xe6\x9a\xc2\x09\xbc\x78\xeb\x9e\xac\x01\x1f\xcd\x2d\xbc\x8d\x6f\xa1\xe2\x3d\x31\xe7\x1e\xbc\x2a\x6f\xb3\x6b\x95\x5d\xa7\x69\x81\x5e\xf8\xce\xf9\xf0\x9d\x66\xf5\x5f\xeb\x18\xcf\x73\x8b\xbe\xbf\x2a\x1f\x8c\xed\xaa\x45\x9f\x64\x0e\x7d\xa7\x5f\xbc\xdf\xf4\x8b\x11\x75\x52\x1b\x1a\x76\x05\xbb\x82\x5d\xc1\xae\xa6\xc6\xae\x9a\xad\x2a\x85\xfc\xaa\xb7\x82\xef\xd4\xe5\x6f\xdc\x51\x43\xd6\xe5\xef\x0d\x38\x1e\x51\x09\xbf\x10\xb8\xf5\xd6\x22\x7f\xe4\x5d\x47\xae\x2f\x22\xe3\xd1\x11\xf7\xea\xc1\x58\xce\x99\x73\x7a\x6b\x4a\x24\xb3\x97\x1e\x3a\x1b\x65\x16\x87\x7b\x25\xfc\xc0\xbf\xf2\xd5\x52\xea\x01\x9a\x38\x7f\xe6\xe2\x8f\x6c\xc1\x36\xa0\x2a\x7b\x35\x92\x5d\x8b\xfb\xf8\xa8\x16\xae\x5c\x2b\xef\x69\x6b\xd2\x6e\x97\x5c\xd7\x7b\x95\x38\x77\x74\xa3\x8b\x65\x28\x1d\xfd\xd6\xb8\xc1\x22\x33\x08\xb6\x8b\xb6\xde\x2f\xa4\xa3\x74\x13\xc5\x37\x99\xef\x2e\x19\x9f\x99\x3e\x50\xf2\x23\x0f\x66\x0e\x4c\x2f\x31\x37\xf7\xf9\xa8\xa4\x5f\x78\x8f\x2d\xba\x59\xdf\xf3\x9d\xbe\xe5\x22\x87\x59\x8d\xcb\xcc\x96\xe1\x7f\x0c\x6b\x6e\xd6\x2e\xe5\xbc\xb9\xb7\xe1\x0f\x79\x86\x3c\x43\x9e\x21\xcf\x90\xe7\x93\x91\xe7\x86\x6b\xc1\x01\x7d\xee\x6f\x59\x7c\x97\xcb\x4c\x59\x79\x4a\x46\x2a\x9b\x82\xee\xc2\x60\x25\x97\xda\x3a\x32\x91\xf0\x3b\x7e\xb0\x74\xd0\x6d\x53\x5b\xe2\x61\x77\x33\xff\xc7\x5c\x7c\x32\xf3\x99\x31\x5d\x56\xca\x8f\x5f\x96\xed\x9a\xaa\x44\x10\xae\xbe\x48\x3f\xf5\xcb\x85\x1b\x75\xfd\x20\xbd\x74\xaf\xfc\xf9\xd2\x7c\xfd\xf9\x52\x3c\xb8\xbe\xf4\xdc\xff\xa4\x0b\xc9\xbd\x12\x72\xb1\xd0\xa3\xf3\xda\xb0\xaa\xc5\x76\x1b\x66\x2e\x3f\x8b\xb6\x27\x99\xfd\xe9\x5c\xbc\x77\xf5\xe4\x98\xbb\xf5\x20\x3c\x7c\x36\x3d\xfd\x18\x57\x91\xd9\x1e\xeb\x3d\x4a\xb0\xfe\xd2\xa6\x43\xcd\x13\xbc\x4b\x9f\xbd\x37\x17\xdf\xe1\xc6\x4c\x3f\x7a\xfc\xc2\x7e\x09\xbe\x8b\xa5\x0c\xef\xe5\x72\xc7\x59\x9e\x6d\x6a\x54\xf8\x10\x84\x8f\x71\x9f\x14\xb6\xd7\x6f\x7b\x4f\x54\xde\x5c\xda\xe8\x4d\x2d\xd6\x95\x69\x5b\x37\xb6\x26\x1d\x77\xb1\xdd\x0a\x6b\x5b\x41\x3b\x27\xb2\x3e\x8e\x17\xeb\x64\x25\x4d\xad\x81\x79\xae\x33\xd3\x75\x24\xdd\x6a\x5f\x65\x3e\xe6\xdd\x1f\x9b\x8b\x5b\xc7\x51\xab\xb5\x5e\x9b\xf2\x3b\xbb\x99\x79\x86\x99\xb8\x4a\x06\xe0\xee\x00\x8d\x7e\x14\xb3\x7f\x4a\xe7\xeb\x32\x0c\x36\xfe\x22\x3e\x4a\xfb\x6a\xf5\x41\x7b\x0d\x67\x4c\xc8\xc4\x3e\xde\xbd\x48\xfa\x04\xf7\xd9\x95\x7e\x14\xb3\x0f\x41\xa8\x72\x97\x15\x8e\x8c\x1c\xb9\x88\x9f\x3e\x69\x1f\xe3\xce\xd7\xd7\x8b\xcc\xd6\xf3\xe0\x82\x0f\xd9\x35\xda\x0c\xc8\xd5\xfe\x70\x1f\xd0\x53\x40\x98\xc8\x78\xc2\x44\x9a\x8d\xae\xaa\x50\x91\xfe\x36\xf3\x43\x06\x8d\x34\x6b\xa7\x8a\xc0\x91\xfe\x16\x7c\x5b\x43\x48\x9a\x35\xe1\x61\x18\xc9\x73\x97\xd3\x42\xc8\x4c\x54\xc4\x91\x44\xef\xd3\x5a\xae\x37\x4d\x51\xde\x38\x83\x21\x72\xe7\x96\xa4\xaa\x9a\x15\x7c\x6b\x5d\xf5\x98\xb1\x5a\x12\xa9\xb0\x9f\xb0\xba\xf7\x4c\x87\x59\xab\x9d\xa7\xcb\x1b\xdf\x5a\x98\x2c\xf2\xe9\x26\x20\xd5\xd1\x6e\x18\xa8\x11\x5f\xe4\x20\x4c\x83\xe0\x0c\x82\x33\x26\x13\x9c\x41\x38\x03\xe1\x0c\x84\x33\x10\xce\x40\x38\xc3\xe0\xe1\x0c\x70\x72\xd0\x29\xe8\x14\x74\x0a\x3a\x05\x9d\x82\x4e\x41\xa7\xa5\x8b\x00\x34\x03\x9a\x01\xcd\x80\x66\x40\x33\x10\xf8\xac\xc2\x26\xf3\x9c\x0f\x3f\x71\xc1\xcf\xf3\xce\xeb\xc9\xa7\x91\xd6\x93\x93\x9e\xf5\x3d\xbb\xa2\x25\x2d\x34\x3e\xc7\xa2\xfb\x71\xb1\xd7\x77\x97\xab\x20\xea\x18\x0d\x19\xdb\x5d\x48\xbf\x29\x06\x32\x27\x74\x0e\x82\xda\x25\x46\x56\xd4\x17\x38\xe9\x6c\xd1\x49\xba\x24\x29\x3b\xf9\xae\xb7\x36\x65\x47\xef\xd1\x7f\x91\xbe\x5c\xaa\xd0\x78\x9b\x4c\x35\x8d\x28\x0a\x1c\x57\x6f\x9f\x32\xbf\x8e\xd4\xee\xb9\x20\x14\xf1\xee\x7a\xfd\x94\xed\x27\x1f\x65\x3c\x92\xe2\x43\x22\x95\xda\x48\xf9\xc4\x94\x34\x81\x45\xdb\x88\xda\x87\x13\x84\xe2\xe6\xf5\x0f\xf1\xb1\xa1\x74\x34\xb4\xf1\x02\x7f\x69\x2c\x22\xed\x67\x89\x37\xc4\xd2\xf5\xcd\x2c\xa5\xfd\x18\xdb\x63\xb5\x23\x3b\x41\x4a\xe2\xfe\x49\xe8\x65\xe4\xcd\xf5\xf5\x32\xf0\xa4\xbf\x9c\x07\xe1\xf2\x7a\xf5\x75\x79\xbd\xf1\x5d\x27\x58\xa8\xeb\xbf\x7d\x8c\xee\xe2\xab\xb4\x76\x8c\x26\x8d\xd3\x65\xf7\x58\x65\x42\x8d\xdb\xb2\x69\x6a\xd5\xbc\x6e\x60\xd5\xbc\x35\x9e\x1e\x1b\x6f\xfe\x75\xed\xcd\x9b\x90\x54\x1b\xef\x7e\xa2\x06\xa5\xb6\x56\x46\x63\x50\x5e\x88\xd6\xfa\x2a\x05\x05\xf1\x4f\x28\xb3\xd2\xdc\x56\x2b\xd1\x56\x19\xc6\x56\x1b\x89\x88\x05\x56\x59\xbe\x93\xad\xb5\xca\x48\x1b\x3e\xa3\xb4\x61\xf2\xa3\xc8\x8f\x22\x3f\x8a\xfc\x28\x36\x94\x65\x6f\x91\x95\x19\x06\xc3\x6c\xca\x48\x90\x48\x8e\xab\x4c\x90\x18\xcf\xbe\x2c\x73\x7e\x77\x9e\x16\xa1\xd9\xf9\xae\x1d\xd6\x70\x63\x15\x9f\x79\xea\x5c\x88\x9c\x81\xa2\xfe\xad\x23\x9c\xee\xe3\x4f\xd2\x59\xcf\x85\x78\x1f\xff\x9f\xfe\xfd\x51\xba\xda\x19\x18\x09\xc7\xdb\x44\x6b\x15\x6e\x97\x1d\x13\x0a\x29\x3c\xf7\xab\x12\xb3\xac\xf2\xe0\x2c\xb6\x2e\x53\x8b\x68\x2e\xee\x3c\xe9\xfb\x49\x84\x82\xb6\x59\xa4\x67\xcc\xa4\x9b\x1f\xda\xcc\xe3\xfa\x1e\x07\xb2\x26\xb2\x46\xcb\x8c\xf1\xfb\xb4\xf9\xe2\x27\x15\xef\x4d\x8b\xc5\x2b\xc8\x2a\x4a\x5b\x27\x09\x02\xda\x44\x2a\xd4\xd1\x3b\x5b\xbb\xfa\xe9\xc4\x0d\x15\xdf\xcc\x74\xd1\xb3\xdd\xcb\x1c\xce\x3b\x73\x5c\xc9\x32\x11\xcf\xb6\xe3\x5b\x23\x5a\xc0\xe0\x7c\xd5\xf7\xf2\xdb\x18\x53\xd1\xf7\xf1\xe2\x6d\x1d\x48\xd2\x4a\x14\xfe\x4a\x9f\xfb\xf7\xea\x69\xec\x51\x85\x4b\xd5\xe8\xc8\x68\x1d\xca\xb5\x5a\xba\xce\x55\xf3\x73\xe2\xcf\x4f\xc9\x91\x7a\xc2\x6c\x62\x83\xe8\xc8\x43\x9d\xd8\x64\x82\x9e\xda\xd9\x23\xab\xfd\xda\xc3\x13\x64\xf2\x15\x76\xfd\xdd\x6e\x00\x92\xc0\xfb\x3b\x71\xef\xef\xf9\x30\xf9\xbd\x3c\x81\xf4\xe5\x32\xb9\x2c\x2b\x13\xda\x9b\xe4\x47\xbf\x28\x99\x8c\x5e\x6a\xdf\x97\x49\x60\x95\x9e\x3e\xd3\x0f\xfc\x2b\x73\xb6\x3e\x42\xbb\x9f\x23\xf1\xe2\xa7\x28\xf0\xef\x4c\x9a\xf0\x2f\xf1\xb4\x97\x7c\xfe\x94\x4e\x86\xdb\x3f\xbe\xb4\x29\x58\xa0\xf9\xb8\xf9\x10\x84\x8e\xf6\xcf\x2f\x03\xdd\xf9\x81\xf8\x7c\xf9\x10\xff\xed\xf3\xa5\xb8\xdd\x69\xcd\xb9\xf8\xb8\x4e\x9c\xe9\x7a\x5f\x90\xbc\xa8\x57\xd2\xd1\x1d\xa0\x13\x4d\x3d\xd7\x49\xdc\x83\x7a\x1b\x11\x7c\x4f\xfa\xd6\x24\x62\xae\x54\xb0\xf2\xd4\x5c\x98\xdf\xd4\xf9\xe5\xe9\x98\xd2\xb1\xdf\x85\x1d\x91\xfd\x7c\x9b\xe6\x8d\x7f\x88\xdd\x84\xf9\x82\xdd\xc4\xce\x33\x0d\xbd\x9b\x58\xed\x05\x18\x8f\x66\x3f\xb1\xe9\xdc\xe7\xb4\xf2\xa4\xd3\xd2\xcc\x4b\x4e\x9e\xb8\xa1\x47\xf0\x25\x86\xde\xf9\x19\x7a\x16\xd9\x53\x2c\xfb\xd9\x37\x04\x5f\x36\xb8\xf9\xa9\xda\x2c\x9b\x11\x79\x40\x2f\xc4\xf1\xd1\x8b\xbb\x85\xe1\x86\x51\x1d\xab\xb0\x76\xaa\x04\xc7\x3e\x04\xe1\xad\xe7\x65\x40\xcb\x8a\x6a\x8a\xa5\x27\x90\x69\x97\xf4\x1a\x49\x76\x03\x25\xd9\xf5\x8c\x54\x90\xf1\x9b\xb0\x8c\x5f\x3d\x23\xaa\x93\xf0\x6b\x5f\x74\xb8\x19\xff\x42\xb8\x0f\xe1\x3e\x84\xfb\x10\xee\x9b\x9a\x70\x5f\xfd\xcc\x5b\x28\xda\x77\xe2\x68\x83\xde\xa4\xfa\xea\x1f\xbf\x5c\xa6\xcf\xe6\x36\x38\x46\x9c\xaf\xbe\x0d\xca\x85\xf9\x4e\xdc\x06\xc8\xf1\x21\xc7\x87\x1c\x1f\x72\x7c\xc8\xf1\x9d\x4c\x8e\xaf\xc1\xec\x7f\x20\xc5\x57\x99\xa3\x77\x46\xc1\x86\xcd\x9e\x06\x39\xc1\x91\xc9\x09\xd6\x0f\xa2\x2a\x29\xc1\x13\x8f\xa6\x41\x05\x04\xeb\x5b\xa6\x42\x3c\xf0\xd4\xb3\x86\xad\x92\x81\xf5\x8d\x56\xe0\xc0\x6f\xed\xce\x4a\x3e\xfd\x75\x14\xbc\xf1\x33\xe8\x61\x64\x27\xf4\xe7\xff\x15\x33\x9d\x13\xaa\x50\xe4\xf2\x73\x83\x87\x06\x34\xa7\x44\x8b\xe2\x6d\x76\x99\x0c\xe6\x2c\x0a\x2e\x46\x3d\x19\x1c\xd1\xa3\xab\x27\x33\x69\x9d\x14\x9c\xec\x38\xd9\x71\xb2\xe3\x64\x9f\x9a\x93\x7d\x0c\xd5\x71\x08\x5e\x6d\xdc\x51\x43\x06\xaf\x52\xc4\x08\xd5\xae\x33\x56\xed\xa2\x62\x15\x88\x0c\x44\x06\x22\x03\x91\x81\xc8\xa8\x58\x85\x98\x25\x62\x96\x88\x59\x22\x66\xb9\x3f\x22\x7b\xf0\x14\xc0\xb3\xc7\xc3\xb3\x29\x8f\x47\x79\x3c\xca\xe3\x6d\x2f\x75\xde\xe9\xc5\x68\xd9\x26\xc7\x55\x6a\xd9\x6e\xad\xab\x71\x65\xd6\x8d\x23\xe3\x96\xb8\x0c\xe2\x32\xa6\x15\x97\x41\x24\x03\x91\x0c\x44\x32\x10\xc9\x40\x24\xc3\xe0\x91\x0c\x20\x72\xa8\x29\xd4\x14\x6a\x0a\x35\x85\x9a\x42\x4d\xa1\xa6\xa5\x8b\x00\x20\x03\x90\x01\xc8\x00\x64\x00\x32\x50\x1f\xac\x22\x26\xa8\x0f\x8a\x0a\x5e\x72\x16\xea\x83\x89\xb9\x64\x84\xa2\xfd\x85\x88\x7b\x49\x44\x4e\xb0\x52\xaf\x44\xb4\x71\xf4\x9a\xa5\xa7\x7a\x25\x1f\xcd\x3c\xb5\x0a\x03\x6d\x9e\x15\xa5\x02\x57\x97\x7c\xd2\x60\x64\xf7\x6b\xea\x3e\xd5\x3d\x4d\xf2\x29\x57\xf7\x29\x88\x3a\x26\x61\x66\xab\x92\x2b\x95\x5f\x41\xbd\xcc\xb1\xa7\xe1\x5e\xa3\x51\xd6\x47\x54\xff\x7c\xf2\x92\x10\xd5\x47\x54\xbf\xe0\x66\xc6\x60\xc3\x8d\x55\x4f\xdf\xee\x92\xd9\x1d\xdc\xf8\x44\x0d\x66\x6d\x99\x8c\xc1\x60\xbe\x10\x1d\x4a\xc8\x98\xbf\xfe\xaf\x27\x25\x99\x46\x46\x5a\x89\x7c\xcc\x80\x46\xda\x48\x74\x3a\xb0\xc9\xf2\x9d\x6c\xad\x4d\x46\x66\xf4\x19\x65\x46\x93\x02\x46\x0a\x18\x29\x60\xa4\x80\xb1\x9d\x2c\x7b\x8b\xac\x4c\xa2\x18\x66\x73\x46\x0e\x48\x72\x5c\x65\x0e\xc8\x28\x36\x69\x99\xc3\xbb\xf3\xcc\x0f\x1d\x1e\xb0\x2e\xaa\x29\x5b\xb1\xa7\x8a\x4f\xea\x25\xdd\x23\x67\x9b\xa8\x7f\xeb\x20\xae\xfb\xf8\x93\x74\xd6\x73\x21\xde\xc7\xff\xa7\x7f\x7f\x94\xae\xf6\x02\x46\xc2\xf1\x36\xd1\x5a\x85\xdb\x15\x27\xa9\xb2\xed\xb9\x5f\x95\x98\x65\x77\x39\x8b\x0d\xcb\xd4\x18\x9a\x8b\x3b\x4f\xfa\x7e\x12\x84\xa1\xcd\x15\xe9\x19\x0b\xe9\xe6\x87\x36\x53\xb8\xbe\xc7\x81\x0c\x89\xac\xd1\x32\x3b\xfc\x3e\x6d\xbe\xf8\x49\xc5\x7b\xd3\x62\xf1\xe2\xb1\x8a\xd2\xd6\x49\xe2\x9c\x74\xc9\x72\x47\xfa\x39\x93\xfa\xe9\xc4\x0d\x15\xdf\xcc\x74\xe9\xba\xdd\x2b\x1c\xfe\xbb\xb2\xc5\x21\x9e\x68\x47\xb5\x32\xb4\xe0\xdd\x1a\xde\x24\xbe\x93\xc2\x3b\x68\x02\xb2\x6d\x61\xd8\xc0\xfb\xd1\xc1\x7b\x1d\x15\xd4\xc8\x9a\xd9\x9f\xa5\xaf\xf4\xb9\x7f\xaf\x9e\xb0\x1f\x55\xb8\x54\x8d\x8e\x8c\xd6\xa1\x5c\xab\xa5\xeb\x5c\x35\x3f\x27\xfe\xfc\x94\x1c\xa9\x97\x86\x26\xd6\x96\x0e\x23\xd5\x59\x6a\x26\x82\xed\x68\xcb\x4b\xff\x9e\x4d\xce\xec\x53\x45\x1c\x54\x6c\x5e\xee\x76\xa3\xc9\x04\x2e\xee\x89\xbb\xb8\xcf\x27\xec\x60\x2f\xe9\x23\x7d\xb9\x4c\x62\xd2\xca\xc4\x69\x27\xc9\xee\x2f\x4a\x26\xa3\x97\xda\xc1\x67\xb2\x91\xa5\xa7\xcf\xf4\x03\xff\xca\x9c\xad\x8f\xd0\x3e\xf6\x48\xbc\xf8\x29\x0a\xfc\x3b\x93\xf3\xfd\x4b\x3c\xed\x25\x9f\x3f\xa5\x93\xe1\xf6\x8f\x2f\x6d\x8a\x87\x68\x3e\x6e\x3e\x04\xa1\xa3\x21\xc4\x32\xd0\x9d\x1f\x88\xcf\x97\x0f\xf1\xdf\x3e\x5f\x8a\xdb\x9d\xd6\x9c\x8b\x8f\xeb\x84\x18\xe8\x1d\x50\xf2\xa2\x5e\x49\x47\x77\x80\xce\x1a\xf6\x5c\x27\xf1\x81\xea\x0d\x53\xf0\x3d\xe9\x5b\x93\x55\xbb\x52\xc1\xca\x53\x73\x61\x7e\x53\x8b\x05\xa4\x63\x4a\x07\xf2\x17\x76\x44\xf6\xf3\x6d\x9a\x37\xfe\x21\xf6\x4d\xe6\x0b\xf6\x4d\xb6\xec\x9b\x56\x7b\x81\xe2\x63\xd8\x39\x6d\x3a\xf7\xa9\xad\x3c\xe9\x1c\x6f\xdc\x25\xe7\x9d\x83\x79\x47\x40\x29\x96\xdd\x59\x59\x76\x16\x19\x50\xac\xf3\xd9\x37\x04\x94\x9e\x9d\x7d\xb2\x19\x87\x5f\xf7\x42\x74\x1f\x96\x79\x1d\x19\xec\x9b\x8b\xce\x3c\x0d\x4f\x34\xbf\x93\xae\x6c\xdd\x93\xc5\x04\x5f\x33\x7d\x31\x0d\x80\x77\x4a\xbb\x05\xbc\x03\xde\x01\xef\x0c\x8a\x77\xda\x2f\x84\x0d\x41\x4f\xc1\x4a\x38\x4a\x7f\x00\xb8\x07\xa7\xc0\xf9\x39\x05\xc0\x3d\x5d\x8e\x1b\x70\x0f\x6e\x20\xf6\x51\xe0\x9e\xa1\x70\xcf\x73\xbc\x1e\x0d\xc1\xcf\x54\xcc\x3d\xf0\x0f\x96\xde\x59\x59\x7a\x16\x19\x54\xac\xfb\xd9\x37\xe0\x9f\xb3\xb3\x57\xa6\x88\x7f\xb4\xbc\x62\x4a\x7b\x1c\x4f\x46\xbb\xaf\x4e\xf7\x90\x27\xd1\x9e\xf6\x17\xee\x37\x77\xb1\x91\x5e\x5e\xd6\x53\x66\x6a\xf3\xc9\xd3\xbf\x8d\x6f\x68\x9e\xcb\x3c\x7f\x93\xe5\xac\xcf\xf4\x85\x66\xdb\xd2\x23\x3b\xb5\x24\x32\x23\x49\xb8\x7e\xb4\x56\x72\xc7\xbd\xb9\x6f\x42\x7d\x2f\xf4\x97\xe5\x6f\xe1\xe7\x3d\x09\x43\xf4\x36\x6d\x4d\xae\xd5\x72\xb1\xef\xbf\x29\xff\xdc\x55\x37\x75\x3f\x0e\x23\xbd\xa9\x5f\x99\x9e\x81\x15\xc5\xbd\x26\x5c\xdc\xab\x9e\x46\xd5\x15\xf6\xaa\x74\x77\x75\x40\xda\x28\xe7\x45\x39\x2f\xca\x79\x51\xce\x6b\x6a\xe5\xbc\xea\x67\xde\xc2\x52\x5e\x27\x8e\x6b\xe8\xad\x80\x57\xfd\xe3\x97\x17\xef\xb2\xb9\x0d\x8e\x29\xd9\x55\xdf\x06\xe5\xe5\xba\x4e\xdc\x06\x14\xe9\xa2\x48\x17\x45\xba\x28\xd2\x45\x91\xae\x93\x15\xe9\x6a\x30\xfb\x1f\x14\xe8\xaa\x54\xb4\x3c\xa3\xb0\xc6\x66\x4f\x43\x91\xb1\x91\x15\x19\xab\x1f\x44\x55\x05\xc6\x4e\x3c\x9a\x06\x2d\x2b\x56\xdf\x32\x15\x25\xc5\x4e\x3d\x6b\xd8\x5a\x48\xac\xbe\xd1\x0a\x1c\xfa\xad\xdd\x59\xc9\xa7\xbf\x9e\x0d\x89\x0a\xe4\xda\x4f\xc4\x8a\xf2\x80\xc8\x4f\x97\xbc\xe0\x41\x7c\x75\xfd\x45\xf7\xa0\xe8\xd5\xd6\xca\xd5\x96\x7c\x62\x11\xc5\x86\xf2\xd6\x7c\x9f\xed\x6c\xfb\x72\xd7\x7e\x1e\x66\x02\x31\x81\x98\xc6\x86\x98\xc0\x4b\xe0\x25\xf0\x12\x78\x09\xbc\x04\x5e\x02\x2f\x81\x97\xc0\x4b\xe0\x25\xf0\x12\x78\x09\xbc\x04\x5e\x02\x2f\x81\x97\xc6\x87\x97\x0a\xb4\x4f\x0a\x5c\x0e\x63\x12\x40\x01\x98\x01\xcc\x00\x66\xc5\xa3\x09\x60\x56\xfa\x9e\x01\xcc\x3a\x01\x66\x36\x25\x54\x0d\x9b\x4b\xf5\xb3\x1b\xad\x3f\x04\xe1\xad\xe7\x65\xd9\xe9\x30\x2f\x98\xd7\xe8\x98\xd7\x30\x69\x55\x20\x2f\x90\x17\xc8\x0b\xe4\x05\xf2\x02\x79\x81\xbc\x40\x5e\x5d\xce\xb6\x20\x2f\x90\x17\xc8\x0b\xe4\x05\xf2\x02\x79\x81\xbc\xce\x0e\x79\x01\x88\x00\x44\x00\xa2\xe2\xd1\x04\x20\x2a\x7d\xcf\x00\x44\xcf\x03\x44\x75\xb5\x97\xce\x9e\x1b\x1d\x88\x18\x23\xc4\x07\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\xf5\xe0\xfb\xa5\xa6\x32\xa8\x0c\x54\x06\x2a\x03\x95\x81\xca\x6c\x40\x65\x76\xc9\x11\x8e\x52\x89\xf0\x00\xb6\x01\xda\x00\x6d\x63\x03\x6d\x40\x36\x20\x1b\x90\x0d\xc8\x06\x64\x03\xb2\x01\xd9\x80\x6c\x40\x36\x20\x1b\x90\x0d\xc8\x06\x64\x03\xb2\x01\xd9\x80\x6c\xa3\x82\x6c\x05\x4a\x84\xc7\xd3\x33\x5b\xc0\x19\xc4\x10\x62\x08\x31\x84\x18\x42\x0c\x21\x86\x9d\x10\xc3\x60\xa1\x52\x56\xd8\x0a\xfb\x9d\x1a\x5d\x35\x41\x8a\x4b\xb5\x16\xae\xff\x10\x84\x8f\xd9\xa8\x96\xc2\x80\x88\x72\x7c\xb7\x54\xeb\x5f\x83\x85\xba\xbd\xfb\xf8\xaf\xfd\x23\x87\xc2\x74\xa3\xa5\x67\x59\x23\x8e\x9d\x9d\x05\x0b\x95\x3b\xfa\x22\xff\x8b\xe5\xef\x4d\xca\xd8\x47\xfd\xfe\xec\xec\x6f\xcd\x84\x58\xff\xf2\x24\xcc\xfb\xf6\xee\xe3\xef\x45\x27\xf1\x1e\x1d\xff\x1e\xa5\x0d\xa9\x73\x74\x27\xf0\x3a\x15\x40\xe8\x23\x5f\xab\x70\xe3\xc7\x16\x44\x52\x31\x33\xff\x92\x19\x8f\x41\xb7\xe1\x29\xe6\x9a\xc2\x09\x3c\x4f\x39\xe9\x6a\xf2\xbb\xb9\x85\x83\xf2\x92\x7b\x6f\x85\x39\x37\xf7\x62\xbc\xcd\xae\x52\x76\x85\x12\x76\x2d\x6a\x7a\x13\x7e\x3d\x61\x7e\x5d\x61\x1e\x1e\xc1\xb0\x6b\x0c\xc6\x6a\x93\x71\x6f\x86\xf9\x6f\xd1\xdd\xdd\x07\x8b\xd2\x9b\x2b\xfa\xee\x24\x33\xe6\x3b\xfd\xca\xfd\xa6\x5f\x8c\xa8\xe1\x7c\x59\xfd\x6a\xc1\xe6\x61\xf3\xb0\x79\xd8\xfc\xd4\xd8\x7c\xb3\x55\xa5\x90\xcf\x57\x3b\xb0\x9e\xb3\x92\x14\xb9\x45\x13\x2a\xf1\x4a\xab\xea\x38\xf1\x88\x32\xe3\x60\xe7\xd9\xf2\x76\xc4\xbd\x12\xab\xb8\xb5\xa2\x75\xbc\x40\xdf\xfa\xc2\xf5\xcd\xcc\x12\x84\x62\xe3\x67\x93\xd3\x42\x2c\xc2\xa7\xdf\x37\xbe\x58\xb8\x61\x6c\x94\x7d\x53\xd9\x88\xd7\xfe\x40\x5f\x48\x3f\x79\xe5\xd3\xb1\x91\x34\xb0\x78\xd8\x84\xfa\x2d\x5b\x85\x81\x13\xdb\x0d\xc6\x65\x9a\xe3\xa6\x73\xf1\xa7\xfe\x45\xdd\x5b\x7a\xec\xbc\x11\x57\xe2\xd6\xf3\xde\x68\x94\xb3\x88\x67\xe9\x8d\x1f\x77\xfc\x52\x45\xd9\x90\x4c\x2e\xa7\x16\x2d\x3a\xca\x3c\xcb\x30\xdd\xd4\x5b\x40\x45\xb3\xa6\x28\x0f\xaa\xe8\xad\x45\xfe\xc8\x3b\x55\x5d\x5f\x44\xc6\xd7\x29\xee\xd5\x83\xb1\x9c\x33\xf8\xb6\x35\x25\x92\xd9\x4b\x0f\x9d\x8d\x32\x8b\xc3\xbd\x12\x7e\xe0\x5f\xf9\x6a\x29\xf5\x00\x4d\xdc\xa2\x73\xf1\x47\xb6\x60\x1b\x10\x9f\xbd\x1a\xc9\x7e\xc5\x7d\x7c\x54\x0b\x57\xae\x95\xf7\xb4\x35\x69\xb7\x4b\xae\xeb\xbd\x4a\xdc\x9e\xba\xd1\xc5\x32\x94\x8e\x7e\x6b\xdc\x60\x91\x19\x04\xdb\x45\x5b\xef\x17\xd2\x51\xba\x89\xe2\x9b\xcc\x77\x97\x8c\xcf\x4c\x1f\x28\xf9\x91\x07\x33\x07\xa6\x97\x98\x9b\xfb\x7c\x54\xd2\x2f\xbc\xc7\x16\xdd\xac\xef\xf9\x4e\xdf\x72\x91\x2b\xb9\xc6\x99\x6c\xcb\xf0\x3f\x26\x96\xa6\x59\xbb\x94\xc7\xd3\xf4\x36\xfc\x89\xac\x21\xb2\x86\xc8\x1a\x22\x6b\x88\xac\x39\x59\x64\x4d\xc3\xb5\xe0\x20\xba\xa6\xbf\x65\xf1\x5d\x2e\x59\x6f\xe5\x29\x19\xa9\x6c\x0a\xba\x0b\x83\x95\x5c\x6a\xeb\xe8\x2e\xf0\x5c\xe7\x69\xc7\x0f\x96\x0e\xba\x6d\xb6\x5f\x3c\xec\x6e\xe6\xff\x98\x8b\x4f\x66\x3e\x33\xa6\xcb\x4a\xf9\xf1\xcb\xb2\x5d\x53\x95\x08\xc2\xd5\x17\xe9\xa7\x7e\xb9\x70\xa3\xae\x1f\xa4\x97\xee\x95\x3f\x5f\x9a\xaf\x3f\x5f\x8a\x07\xd7\x97\x9e\xfb\x9f\x74\x21\xb9\x57\x42\x2e\x16\x7a\x74\x5e\x1b\x8a\xbb\xd8\x6e\xc3\xcc\xe5\x67\xd1\xf6\x24\xb3\x3f\x9d\x8b\xf7\xae\x9e\x1c\x73\xb7\x1e\x84\x87\xcf\xa6\xa7\x1f\xe3\x2a\x32\xdb\x63\xbd\x47\x09\xd6\x5f\xda\x74\xa8\x79\x82\x77\xe9\xb3\xf7\xe6\xe2\x3b\xdc\x98\xe9\x47\x8f\x5f\xd8\x2f\xc1\x77\xb1\x94\xe1\xbd\x5c\xee\xb8\xc9\xb3\x4d\x8d\x0a\x1f\x82\xf0\x31\xee\x93\xc2\xf6\xfa\x6d\xef\x89\xca\x9b\x4b\x1b\xbd\xa9\xc5\xba\x32\x6d\xeb\xc6\xd6\xa4\xe3\x2e\xb6\x5b\x61\x6d\x2b\x68\xe7\x44\xd6\xc7\x91\xe6\xc1\xfa\xdb\xd4\x1a\x98\xe7\x3a\x33\x5d\x47\xd2\xad\xf6\x55\xe6\x63\xde\xfd\xb1\xb9\xb8\x75\x1c\xb5\x5a\xeb\xb5\x29\xbf\xb3\x9b\x99\x67\x98\x89\xab\x64\x00\xee\x0e\xd0\xe8\x47\x31\xfb\xa7\x74\xbe\x2e\xc3\x60\xe3\x2f\xe2\xa3\xb4\xaf\x56\x1f\xb4\xd7\x70\xc6\x84\x4c\xec\xe3\xdd\x8b\xa4\x4f\x70\x9f\x5d\xe9\x47\x31\xfb\x10\x84\x2a\x77\x59\xe1\xc8\xc8\x91\x8b\xf8\xe9\x93\xf6\x31\xee\x7c\x7d\xbd\xc8\x6c\x3d\x0f\x2e\xf8\x90\x5d\xa3\xcd\x80\x5c\xed\x0f\xf7\x01\x3d\x05\x04\x50\x8d\x27\x80\xaa\xd9\xe8\xaa\x0a\xa2\xea\x6f\x33\x3f\x64\x38\x55\xb3\x76\xaa\x08\xa9\xea\x6f\xc1\xb7\x35\xb8\xaa\x59\x13\x1e\x06\x58\x3d\x77\x39\x2d\xc4\xcb\xc4\x40\x1c\x49\xf4\x3e\xad\xe5\x7a\xd3\x14\xe5\x8d\x2d\xf4\x21\x77\x56\x49\xfe\xbd\x59\xbb\xb7\x76\x55\x27\xa9\xf8\xdb\xa8\x8a\xe2\x24\xfc\x92\xe8\x84\xa3\x33\xf1\x3b\x17\x0b\x31\xfe\xb4\x30\x59\xd8\x53\xc3\x3f\xd5\x09\x69\x18\x96\x11\x5f\x24\x17\x94\x41\x28\x06\xa1\x18\x93\x09\xc5\x20\x78\x81\xe0\x05\x82\x17\x08\x5e\x20\x78\x61\xf0\xe0\x05\xa8\x38\xa0\x14\x50\x0a\x28\x05\x94\x02\x4a\x01\xa5\x80\xd2\xd2\x45\x00\x76\x01\xbb\x80\x5d\xc0\x2e\x60\x17\xc8\x15\x57\x41\x92\xb9\xf6\xdb\x27\x6e\xf7\x79\xde\x6d\x3d\xe1\xe4\xd0\x7a\x42\xd2\x59\x15\xd0\xbe\xa8\x48\x0b\x7d\xe2\xb1\xa8\xdd\x5c\xec\xf5\xda\xe5\x2a\x88\x3a\x46\x40\xc6\x52\x17\xb2\x29\xed\x31\xc7\x77\xc8\x7b\xda\x65\x3b\x56\x28\x25\x9d\x68\x52\xe8\x24\xfb\x91\x0c\x9c\x7c\xa7\x5b\x9b\x81\xa3\x37\xe1\xbf\x48\x5f\x2e\x55\x68\xdc\x49\x46\x11\x2c\x8a\x02\xc7\xd5\xfb\xa3\xcc\x71\x23\xb5\xff\x2d\x08\x45\xbc\x7d\x5e\x3f\x65\x1b\xc6\x47\xf9\x35\x6e\xc5\xf5\x17\x15\xa9\xd4\x08\xca\xe7\x99\xa4\xf9\x28\xda\x08\xd4\x4e\x9a\x20\x14\x37\xaf\x7f\x88\x8f\x0d\xa5\xa3\xa9\x8c\x17\xf8\x4b\x63\xf2\x68\x47\x4a\xbc\xe3\x95\xae\x6f\x26\x26\xed\xa8\xd8\x1e\xab\x3d\xd5\x09\x33\x12\xf7\x4f\x42\xaf\x16\x6f\xae\xaf\x97\x81\x27\xfd\xe5\x3c\x08\x97\xd7\xab\xaf\xcb\xeb\x8d\xef\x3a\xc1\x42\x5d\xff\xed\x63\x74\x17\x5f\xa5\xb5\xe7\x33\x69\x9c\x2e\xbb\xc7\x2a\x1b\x69\xac\xa6\x4b\x53\xb3\xe5\x75\x03\xb3\xe5\xad\x71\xe2\xd8\x75\xdb\xaf\x6b\x6f\xdb\x44\x95\xda\x75\xdf\x93\xb3\x12\xb5\x21\x32\x02\x2b\xf1\x42\xb4\x10\x41\x29\xa8\xd3\x73\x42\x2d\x94\xc6\xa6\xd7\x81\xfe\xc9\x30\xa6\xd7\x48\x84\x26\x30\xb5\xf2\x9d\x6c\xad\xa9\x45\x6a\xef\x19\xa5\xf6\x92\xc3\x44\x0e\x13\x39\x4c\xe4\x30\xb1\x4b\x2c\x7b\x8b\xac\xcc\x02\x18\x66\xd7\x45\x12\x43\x75\x12\xc3\x18\xb6\x5f\x99\xe3\xba\xf3\xd4\x05\x4d\xb9\x77\x6d\xaf\x86\xdb\xa8\xf8\xcc\xd3\xe5\x2b\xe4\xcc\x11\xf5\x6f\x1d\x85\x74\x1f\x7f\x92\xce\x7a\x2e\xc4\xfb\xf8\xff\xf4\xef\x8f\xd2\xd5\xfe\xbc\x48\x38\xde\x26\x5a\xab\x70\xbb\xc8\x98\x70\x45\xe1\xb9\x5f\x95\x98\x65\x25\x4f\x67\xb1\x2d\x99\xda\x3f\x73\x71\xe7\x49\xdf\x4f\xa2\x08\xb4\x85\x22\x3d\x63\x14\xdd\xfc\xd0\x66\xd6\xd6\xf7\x38\x90\xed\x90\x35\x5a\x66\x7a\xdf\xa7\xcd\x17\x3f\xa9\x78\x6f\x5a\x2c\x5e\x2f\x56\x51\xda\x3a\x49\xa0\xce\x26\x52\xa1\x8e\xb0\xd9\x5a\xd1\x4f\x27\x6e\xa8\xf8\x66\xa6\x8b\x87\xed\x5e\xd4\xf0\xc5\x1d\x2c\x07\xf1\xdc\x3a\xa6\xb5\xa0\x05\xb0\xcd\x17\x99\x29\xbf\x8d\x31\x55\x9a\x19\x2f\x82\xd6\xa1\x1d\xad\xc4\xd7\xaf\xf4\xb9\x7f\xaf\x9e\xb4\x1e\x55\xb8\x54\x8d\x8e\x8c\xd6\xa1\x5c\xab\xa5\xeb\x5c\x35\x3f\x27\xfe\xfc\x94\x1c\xa9\xa7\xc7\x26\xb6\x86\x8e\x05\xd4\xa9\x46\x26\x0c\xa9\x9d\xdd\xa1\x7f\x74\x70\xef\xed\xa9\xc0\x79\x85\xb5\x7e\xb7\x1b\x0c\x24\xf0\xe9\x4e\xdc\xa7\x7b\x3e\xf8\x7c\x2f\x66\x3f\x7d\xb9\x4c\x5e\xc9\xca\x84\xd9\x26\xb9\xca\x2f\x4a\xa6\xa1\x97\xda\xa3\x65\x92\x49\xa5\xa7\xcf\xf4\x03\xff\xca\x9c\xad\x8f\xd0\x4e\xe5\x48\xbc\xf8\x29\x0a\xfc\x3b\x93\xb2\xfb\x4b\x3c\xe1\x25\x9f\x3f\xa5\xd3\xe0\xf6\x8f\x2f\x6d\xe2\xfa\xcd\xc7\xcd\x87\x20\x74\xb4\xd7\x7d\x19\xe8\xce\x0f\xc4\xe7\xcb\x87\xf8\x6f\x9f\x2f\xc5\xed\x4e\x6b\xce\xc5\xc7\x75\xe2\x22\xd7\xf6\x7f\xf2\xa2\x5e\x49\x47\x77\x80\x4e\xfa\xf4\x5c\x27\x71\xfa\xe9\xed\x42\xf0\x3d\xe9\x5b\x93\x14\xb9\x52\xc1\xca\x53\x73\x61\x7e\x53\xe7\x7a\xa7\x63\x4a\xc7\x61\x17\x76\x44\xf6\xf3\x6d\x9a\x37\xfe\x21\x76\x0d\xe6\x0b\x76\x0d\x83\xef\x1a\x56\x7b\x01\xbe\x23\xd8\x37\x6c\x3a\xf7\x21\xad\x3c\xe9\xb4\x34\xe7\x92\x93\x27\x6b\xd0\x11\x09\x89\x29\x77\x4e\xa6\x9c\x45\x16\x13\x0b\x7b\xf6\x0d\x91\x90\x25\xb7\x3d\x3d\x7b\x64\x33\x0a\x2f\xe6\x85\x68\x14\x50\xa8\x13\xa0\x2a\x6a\xab\x75\xce\xc3\x92\xec\x70\x7f\xe1\x7e\x73\x17\x1b\xe9\xe5\x13\xef\x64\xa6\x07\x91\x7f\xf8\x79\x2e\x9a\xe6\x4d\x16\x87\x33\xd3\x17\x9a\x6d\xc5\x81\x76\xd4\x5e\x32\x1b\x48\xb8\x7e\xb4\x56\x72\xc7\x35\xb9\x6f\x21\x7d\xaf\x70\x78\xfd\xbc\x97\x65\x44\x2e\x9c\xad\xa1\x02\x3a\x95\xf3\xfd\x37\xe5\x9f\x6f\x4a\x9c\xee\xc1\x73\xc8\x8b\x43\x6c\x6f\xc2\x62\x7b\xf5\xdc\xa8\x4e\x68\xaf\x7d\x89\xec\x66\x4c\x0c\x79\x3d\xe4\xf5\x90\xd7\x43\x5e\x6f\x6a\xf2\x7a\xf5\x33\x6f\xa1\xb4\xde\x89\x23\x10\x7a\x13\xd4\xab\x7f\xfc\x72\x31\x3d\x9b\xdb\xe0\x18\x09\xbd\xfa\x36\x28\x97\xcf\x3b\x71\x1b\x20\x9a\x87\x68\x1e\xa2\x79\x88\xe6\x21\x9a\x77\x32\xd1\xbc\x06\xb3\xff\x81\x60\x5e\x65\x4e\xde\x19\x05\x20\x36\x7b\x1a\x44\xff\x46\x26\xfa\x57\x3f\x88\xaa\x04\xff\x4e\x3c\x9a\x06\x95\xf9\xab\x6f\x99\x0a\x89\xbf\x53\xcf\x1a\xb6\x0a\xfb\xd5\x37\x5a\x81\x13\xbf\xb5\x3b\x2b\xf9\xf4\xd7\x33\x60\x50\x81\xc6\xc4\x89\x98\x50\x1e\x04\xf9\xe9\x62\x57\x54\xe3\xa5\x13\x20\xf4\x6a\x6b\xdf\x6a\x1b\x3e\xb1\x85\x62\x13\x79\x6b\xb8\xcf\x76\x36\x7c\xb9\x6b\xb7\xc5\x49\xa0\x24\x50\xd2\x78\x50\x12\x18\x09\x8c\x04\x46\x02\x23\x81\x91\xc0\x48\x60\x24\x30\x12\x18\x09\x8c\x04\x46\x02\x23\x81\x91\xc0\x48\x60\x24\x30\xd2\x98\x30\x12\xca\x1c\xc7\xf4\x0f\x60\x0c\x30\x06\x18\x03\x8c\x9d\x21\x18\x33\xea\xa3\xd7\xad\x80\xd7\x20\x39\x8e\x7b\x1d\xbc\xd4\x8a\xb1\x0f\x41\xf8\x98\x0d\x68\x29\x8c\x3b\xbe\x9c\x59\x2d\xd5\xda\x48\xa0\xde\xde\x7d\xfc\xd7\xfe\xb1\x64\x74\x1e\xc9\x8f\xb2\x46\x1c\x39\x3d\x32\xaf\x42\xee\xf8\x8b\xfc\x6f\x16\xbe\x36\x29\x4a\x1e\xf5\xeb\xb3\xb3\xcb\x33\x53\x61\x93\x77\x27\xe1\xbd\xb7\x77\x1f\x7f\x2f\x3a\x8d\xd7\xe8\xf8\xd7\x28\x6d\xc8\x29\x54\xba\x33\x6f\x48\x01\x8d\x6d\xfe\x56\xf9\xa9\xc4\x6a\x12\x96\xa1\x3f\xff\xef\x7a\x15\x2c\x16\x6e\x14\x6e\xf4\xe3\xdd\x6f\x16\x4b\xb5\x8e\x7a\x2a\x0a\x92\x53\x4d\x0f\x1e\xc4\x5d\xb0\x78\x97\xdd\xc8\x3f\xf5\x8d\x54\xbc\x38\xe6\x12\x3b\xef\xce\xdb\xec\x72\x99\x9a\xec\xa2\xe6\xa2\x2d\xf5\x6f\x61\xbf\x13\x66\xbf\xcd\x64\x31\xea\xf8\xef\x09\x75\x85\x27\x5d\xd1\x06\xae\x0d\xd7\x86\x6b\xc3\xb5\xa7\xc6\xb5\x9b\xad\x2a\x85\x6c\xbb\x37\x1d\x2c\xe4\xca\x1a\x77\xd4\x90\x72\x65\xbd\x05\x23\x1c\x21\x10\x56\x08\xe3\xa9\xaf\x46\x7d\x35\xcb\x86\xff\x31\x71\x28\xcd\xda\xa5\x3c\x16\xa5\xb7\xe1\x4f\x54\x0a\x51\x29\x44\xa5\x10\x95\x42\x54\xca\xc9\xa2\x52\x1a\xae\x05\x07\x91\x29\x94\x1d\xa5\xec\x28\x65\x47\x29\x3b\x3a\x8a\xb2\xa3\x47\x7a\x0a\x08\xb8\x1a\x4f\xc0\x55\xb3\xd1\x55\x15\x74\xd5\xdf\x66\x7e\xc8\xf0\xab\x66\xed\x54\x11\x82\xd5\xdf\x82\x6f\x6b\x30\x56\xb3\x26\x3c\x0c\xc8\xa2\x52\x8c\x0d\x71\x13\xd3\xa8\x3a\x5c\x1a\x2e\x91\x3b\xaf\xb2\xee\xf0\xd6\xb2\xea\x22\x8f\x7d\x75\xb8\x54\x67\x29\xec\xd5\x11\x0a\xc3\xd7\x20\x36\x3e\xb5\x30\x59\xdc\x53\xe3\x3f\x95\xd6\x38\x2e\x68\x23\xbe\xd6\x4e\xc8\x06\x81\x1a\x04\x6a\x4c\x37\x50\x83\xd0\x06\x42\x1b\x08\x6d\x20\xb4\x81\xd0\x86\xc1\x43\x1b\x60\xe6\x60\x54\x30\x2a\x18\x15\x8c\x0a\x46\x05\xa3\x82\x51\x4b\x17\x01\xc8\x06\x64\x03\xb2\x01\xd9\x80\x6c\xa0\x00\x5c\x85\x50\xe6\x49\x90\x42\x5a\xde\xb6\xc0\x7f\x3d\xe9\xbc\xd3\x7a\x90\xd2\x55\x2d\xc9\x1e\xe1\x49\x0b\x19\xe0\xc4\x66\x32\x05\xc3\xfd\x85\x88\xbb\x48\x44\x4e\xb0\x52\xaf\x44\xb4\x71\xf4\xc2\xa5\xe7\x7b\x25\x1f\xcd\x64\xb5\x0a\x03\x6d\xa3\x15\x29\x58\x54\x8b\x07\x69\x52\xb2\xfb\x35\x0a\x42\x75\x4f\x93\x7c\xfa\x6b\xdb\xc9\x41\xd4\x31\x22\x33\xfb\x15\x21\x8f\xa4\x61\xe6\xb4\xd3\xf2\xb0\x76\xb9\xa2\x15\xa3\xea\xd4\x93\x66\x27\x49\xa4\x24\x32\xe5\x7b\xdf\xda\x44\x26\xed\xad\xf8\x45\xfa\x72\xa9\x42\xe3\x77\x33\xd3\x68\x14\x05\x8e\xab\x37\x92\x99\x87\x4b\x6a\x47\x65\x10\x0a\xe5\xaf\x63\x43\x37\xdd\x59\x3f\xca\xaf\x71\x2b\xae\xbf\xa8\x48\xa5\xd6\x62\x3e\x5d\x27\x4d\xeb\xd1\xd6\xb2\xf6\x66\x05\xa1\xb8\x79\xfd\x43\x7c\x6c\x28\x1d\x8d\xaf\xbc\xc0\x5f\x1a\xdb\x50\x7b\x9c\x9c\xc0\x5f\x4b\xd7\x37\x73\x97\xf6\xe8\x6c\x8f\xd5\x2e\xfd\x04\xae\x89\xfb\x27\xa1\x57\xd3\x37\xd7\xd7\xcb\xc0\x93\xfe\x72\x1e\x84\xcb\xeb\xd5\xd7\xe5\xf5\xc6\x77\x9d\x60\xa1\xae\xff\xf6\x31\xba\x8b\xaf\xd2\xda\x45\x9c\x34\x4e\x97\xdd\x63\x95\x31\x39\x7a\x1b\xaf\xa9\x7d\xf7\xba\x81\x7d\xf7\xd6\xb8\xbd\x2c\xbd\xff\xd7\xb5\xf7\x6f\xc2\x75\x2d\x7d\x80\x09\x1a\xd8\xda\x90\x19\x85\x81\x7d\x21\x3a\x14\xa7\x29\x28\x2a\x74\x42\x8d\x9a\x63\x8d\xba\x02\x5d\x1a\x4b\x8c\xba\x91\x08\x80\x60\xbb\xe5\x3b\xd9\x5a\xdb\x8d\x94\xeb\x33\x4a\xb9\x26\xb7\x8c\xdc\x32\x72\xcb\xc8\x2d\x63\xdb\x59\xf6\x16\x59\x99\x9d\x31\xcc\xa6\x8d\xe4\x92\xba\xe4\x92\x71\x6c\xda\x32\x87\x79\xe7\x29\x25\x3a\xc6\x60\xd7\xfe\x3a\x6e\x93\x15\x5f\xa0\xd7\x3c\x92\x9c\xb1\xa2\xfe\xad\xa3\xc3\xee\xe3\x4f\xd2\x59\xcf\x85\x78\x1f\xff\x9f\xfe\xfd\x51\xba\xda\x7d\x18\x09\xc7\xdb\x44\x6b\x15\x6e\x97\x20\x13\x46\x2a\x3c\xf7\xab\x12\xb3\xec\x8e\x67\xb1\xa5\x99\x5a\x47\x73\x71\xe7\x49\xdf\x4f\xa2\x3b\xb4\xfd\x22\x3d\x63\x32\xdd\xfc\xd0\x66\x4e\xd7\xf7\x38\x90\x65\x91\x35\x5a\x66\x98\xdf\xa7\xcd\x17\x3f\xa9\x78\x6f\x5a\x2c\x5e\x4d\x56\x51\xda\x3a\x49\x00\xd5\x26\x52\xa1\x8e\x7c\xda\xda\xd8\x4f\x27\x6e\xa8\xf8\x66\xa6\x8b\xed\xed\x5e\xf2\x70\xf4\x89\x8a\x55\x63\x6f\x0e\x1b\xc1\x92\xd1\x02\xa4\xe7\x6b\xec\xd4\xde\xcd\x98\x4a\xed\x10\x21\x30\xba\x08\x01\x1d\x7f\xd4\xaa\xea\xc0\x95\x3e\xf7\xef\xd5\x33\xf8\xa3\x0a\x97\xaa\xd1\x91\xd1\x3a\x94\x6b\xb5\x74\x9d\xab\xe6\xe7\xc4\x9f\x9f\x92\x23\xf5\x5a\xd1\xc4\x24\xd3\x01\xab\x3a\x1f\xce\xc4\xca\x3d\xcb\x3c\xd3\xbf\x6d\xa3\x0b\xfc\x54\x71\x0d\x15\x5b\x9e\xbb\xdd\x58\x36\x81\x63\x7c\xe2\x8e\xf1\xf3\x09\x6a\xd8\x4b\x39\x49\x5f\x2e\x93\x16\xb5\x32\x51\xe2\x49\xaa\xfd\x8b\x92\x09\xea\xa5\x76\x0b\x9a\x5c\x68\xe9\xe9\x33\xfd\xc0\xbf\x32\x67\xeb\x23\xb4\x67\x3e\x12\x2f\x7e\x8a\x02\xff\xce\x64\x9c\xff\x12\x4f\x85\xc9\xe7\x4f\xe9\x04\xb9\xfd\xe3\x4b\x9b\xa2\x2d\x9a\x8f\x9b\x0f\x41\xe8\x68\x74\xb1\x0c\x74\xe7\x07\xe2\xf3\xe5\x43\xfc\xb7\xcf\x97\xe2\x76\xa7\x35\xe7\xe2\xe3\x3a\xe1\x0c\x7a\x9b\x94\xbc\xa8\x57\xd2\xd1\x1d\xa0\x73\x96\x3d\xd7\x49\x3c\xa7\x7a\x57\x15\x7c\x4f\xfa\xd6\xe4\xf4\xae\x54\xb0\xf2\xd4\x5c\x98\xdf\xd4\x52\x05\xe9\x98\xd2\x69\x04\x85\x1d\x91\xfd\x7c\x9b\xe6\x8d\x7f\x88\xcd\x95\xf9\x82\xcd\x95\x4d\x9b\xab\xd5\x5e\xa8\xfa\x28\xb6\x57\x9b\xce\x3d\x72\x2b\x4f\x3a\xcf\xb3\xfa\x92\x6b\x9c\x93\xdd\x47\x3c\x2b\xa6\xdf\x59\x9a\x7e\x16\x59\x58\x18\x02\xd9\x37\xc4\xb3\x9e\xb5\x21\xb3\x19\x89\x97\xf8\x42\x74\x1f\x0d\x7a\x1d\x19\xb4\xdc\xa6\x72\xe8\x51\xd8\xd2\xfc\x4e\xba\xcc\xf5\x03\x30\x13\x6c\xce\xfc\xc6\xfc\x00\x45\x82\x22\x41\x91\xa0\x48\x23\xa1\x48\xdd\xac\x96\x47\xf2\xa4\x82\xe5\x72\x94\xde\x05\xa8\x12\xae\x85\xf3\x73\x2d\x40\x95\xba\x1c\x37\x50\x25\x9c\x49\x6c\xb6\xd2\x3f\x43\x95\x06\xa1\x4a\x5d\xf9\x4c\x8e\xe4\x4b\x53\xb1\x03\xa1\x4c\x98\x82\x67\x69\x0a\x5a\x64\x71\x61\x18\x64\xdf\x40\x99\xce\xda\xb0\x99\x0e\x65\x2a\xc2\x49\x27\x05\x48\x27\x2d\xa5\x54\x70\xfa\x87\x20\xbc\xf5\xbc\xcc\x46\xb2\x82\x20\x95\x9e\x80\x7c\x28\xf2\xa1\xe7\x27\x1f\x4a\x81\xb2\x09\x17\x28\xab\x07\x50\x75\xc5\xc9\x2a\xbd\x59\x1d\xc0\x35\x4a\x92\x51\x92\x8c\x92\x64\x94\x24\x9b\x5a\x49\xb2\xfa\x99\xb7\xb0\x1c\xd9\x89\x43\x19\x7a\x2b\x42\x56\xff\xf8\xe5\x05\xc8\x6c\x6e\x83\x63\xca\x8e\xd5\xb7\x41\x79\xc9\xb1\x13\xb7\x01\x85\xc6\x28\x34\x46\xa1\x31\x0a\x8d\x51\x68\xec\x64\x85\xc6\x1a\xcc\xfe\x07\x45\xc6\x2a\xd5\x34\xcf\x28\x92\xb1\xd9\xd3\x50\x28\x6d\x64\x85\xd2\xea\x07\x51\x55\x91\xb4\x13\x8f\xa6\x41\x4b\xa3\xd5\xb7\x4c\x45\x59\xb4\x53\xcf\x1a\xb6\x16\x43\xab\x6f\xb4\x02\x2f\x7e\x6b\x77\x56\xf2\xe9\xaf\x46\x54\x27\x52\xce\x26\x74\xd7\x4f\xfa\x1b\x77\xc7\xd9\x7f\x4a\xa9\xf8\x9c\x62\x6e\xf0\x20\xee\xb4\x68\xb3\xbe\x8f\x03\x35\xd5\x06\xa2\xf1\x6f\xb3\x8b\x55\x5e\xa8\xa5\x9e\x21\x6e\xe7\x09\xbb\x9d\x9b\x45\x4a\xd4\xb9\x9e\x4f\xa8\x13\x39\xe9\xfa\x05\xb8\xd4\x71\xa9\xe3\x52\xc7\xa5\x3e\x35\x97\x7a\xb3\x55\xa5\xd0\xad\xde\x5b\x68\x24\x11\xac\x8d\x3b\x6a\xc8\x08\xd6\xde\x38\xc8\x11\x31\xa3\x85\x1c\x80\x6a\x3a\x54\xd3\xb1\x6c\xf8\x1f\x83\xc0\x9a\xb5\x4b\x39\x06\xeb\x6d\xf8\x03\xc4\x00\x62\x00\x31\x80\x18\x40\xec\x64\x40\xac\xe1\x5a\x70\x00\xc5\x28\x32\x47\x91\x39\x8a\xcc\x51\x64\x6e\x14\x45\xe6\x8e\xf4\x14\x40\xaf\xc7\x43\xaf\x9b\x8d\xae\x2a\x82\xdd\xdf\x66\x7e\x48\x96\xdd\xac\x9d\x2a\x78\x76\x7f\x0b\xbe\xad\x64\xbb\x59\x13\x1e\xd2\x6d\xc4\x47\x2a\xbb\xdb\xca\x12\x99\x13\x4c\x9c\x33\xab\xf7\xd6\xb2\xea\x21\x89\xae\x34\x3e\x61\xf8\x5a\x93\xb5\x39\xb7\x8d\x83\x34\x8a\x32\x6e\x09\xcc\x20\x30\x63\x42\x81\x19\x84\x32\x10\xca\x40\x28\x03\xa1\x0c\x84\x32\x0c\x1e\xca\x00\x23\x07\x9b\x82\x4d\xc1\xa6\x60\x53\xb0\x29\xd8\x14\x6c\x5a\xba\x08\x40\x32\x20\x19\x90\x0c\x48\x06\x24\x03\xc5\xc1\x2a\x64\x52\xa0\x38\xb8\xeb\xbd\x46\x6f\xb0\x0f\xbd\xc1\xee\x50\x49\x0b\xb5\xc1\xb1\x28\x10\x5c\xec\xf5\xda\xe5\x2a\x88\x3a\xe6\x42\xc6\x64\x17\xf2\x28\x04\x64\x4e\xea\x1e\x02\x59\xaf\x37\xbf\xf7\x88\xcd\x66\x09\x72\x75\x26\x90\xab\x83\xda\x3c\x6a\xf3\x05\x37\x33\x1e\xb3\x66\x6c\x5a\xf3\x6d\xef\xfe\x75\xed\xdd\x9b\x68\x54\x2b\x6f\x7f\x82\xf6\xa4\x36\x59\x46\x60\x4f\x5e\x88\x16\x8a\x2a\x49\xd5\xe5\x9e\x84\x55\x8e\x33\xd2\x0a\xc4\x54\x06\x34\xd2\x46\xa2\x5a\x81\x35\x96\xef\x64\x6b\xad\x31\xf2\x84\xcf\x28\x4f\x98\x84\x28\x12\xa2\x48\x88\x22\x21\x8a\x8d\x64\xd9\x5b\x64\xe9\x46\x92\xad\x98\x5d\x5b\xb1\x64\x6b\x32\x82\xcd\x58\xe6\xf0\xee\x3c\x0f\x42\x63\xf2\xf5\x7e\xf9\xd5\xc6\x9b\xaa\xf8\xf4\x93\x27\x3f\xe4\x8c\x13\xf5\x6f\x1d\xd2\x74\x1f\x7f\x92\xce\x7a\x2e\xc4\xfb\xf8\xff\xf4\xef\x8f\xd2\xd5\x0e\xc0\x48\x38\xde\x26\x5a\xab\x70\xbb\xe4\x24\xb5\xa9\x3d\xf7\xab\x12\xb3\xac\xf6\xd9\x2c\xb6\x2c\x53\x6b\x68\x2e\xee\x3c\xe9\xfb\x49\x48\x82\xb6\x57\xa4\x67\x4c\xa4\x9b\x1f\xda\xcc\xe1\xfa\x1e\x07\xb2\x24\xb2\x46\xcb\x0c\xf1\xfb\xb4\xf9\xe2\x27\x15\xef\x4d\x8b\xc5\xab\xc7\x2a\x4a\x5b\x27\x89\xfa\xd1\x85\xbe\x1d\xe9\xe7\x6c\xea\xa7\x13\x37\x54\x7c\x33\xd3\x65\xcd\x67\xb2\xc4\x4d\x70\x8d\xd8\xab\xb6\x68\xfd\x02\xd1\x82\xfe\x6a\x70\x93\x78\x4f\x6a\xee\xc5\x4d\x8b\x98\x7f\x29\x86\xbd\xfa\xff\x9d\x6f\x2a\x60\xe4\x89\xa5\xc3\xc7\x0b\xb5\x75\xd4\x48\xa3\x55\x7e\x7f\xde\xba\xd2\xe7\xfe\xbd\x7a\x0a\x7b\x54\xe1\x52\x35\x3a\x32\x5a\x87\x72\xad\x96\xae\x73\xd5\xfc\x9c\xf8\xf3\x53\x72\xa4\x9e\x2c\x9b\x58\x21\x3a\xcc\x50\x67\x31\x99\x08\xa7\x67\x58\x24\xfa\x97\x6d\xf1\xf2\x9e\x0a\xc5\x57\xf8\x80\xef\x76\x63\x8e\x04\xbe\xdf\x89\xfb\x7e\xcf\x87\xc4\xef\xa5\x06\xa4\x2f\x97\x49\x5f\x59\x99\x68\xde\x24\x25\xfa\x45\xc9\x94\xf4\x52\x7b\xbe\x4c\xce\xaa\xf4\xf4\x99\x7e\xe0\x5f\x99\xb3\xf5\x11\xda\xf9\x1c\x89\x17\x3f\x45\x81\x7f\x67\x32\x83\x7f\x89\x27\xbf\xe4\xf3\xa7\x74\x4a\xdc\xfe\xf1\xa5\x4d\x21\x02\xcd\xc7\xcd\x87\x20\x74\xb4\x77\x7e\x19\xe8\xce\x0f\xc4\xe7\xcb\x87\xf8\x6f\x9f\x2f\xc5\xed\x4e\x6b\xce\xc5\xc7\x75\xe2\x4a\xd7\x3b\x83\xe4\x45\xbd\x92\x8e\xee\x00\x9d\x5b\xea\xb9\x4e\xe2\x1c\xd4\x1b\x89\xe0\x7b\xd2\xb7\x26\xf7\x72\xa5\x82\x95\xa7\xe6\xc2\xfc\xa6\x4e\x29\x4f\xc7\x94\x0e\xf7\x2e\xec\x88\xec\xe7\xdb\x34\x6f\xfc\x43\xec\x27\xcc\x17\xec\x27\x76\x1f\x6a\x50\xfc\xbf\x17\x50\x3c\x82\x1d\xc5\xa6\x73\x97\xd3\xca\x93\xce\x73\x6c\xbc\xe4\x0a\x53\xb7\xf2\x08\xb8\xc4\xcc\x3b\x43\x33\xcf\x22\x6b\x8a\x45\x3f\xfb\x86\x80\xcb\x46\x77\x3f\x45\x93\x65\x33\x0a\x17\xe8\x85\xa8\x0b\x58\xd4\xe9\x58\xd7\x7e\xca\x7e\x92\x68\x45\xfd\xf9\x7f\xd7\xab\x60\xb1\x70\xa3\x70\xa3\x7b\xe9\x7e\xb3\x58\xaa\xf5\x4e\x81\xb8\xce\xc9\x5b\x92\xc8\xee\x2f\xdc\x6f\xee\x62\x23\xbd\x7c\x8e\xa0\xcc\xa4\x2b\xee\x82\xc5\xbb\xec\xb6\xfe\xa9\x6f\x6b\x9e\x0b\xe0\x79\x93\x85\xfe\xcc\xf4\xf5\x66\x5b\x39\xa3\x1d\x7d\x9a\xcc\x80\x12\xae\x1f\xad\x95\xdc\xf1\x78\xee\x9b\x57\xdf\x0f\x5c\x68\x19\x2f\x5b\x14\xdc\xcf\xcf\x7b\x19\x52\x24\xf4\xd9\xaa\x81\xa8\xf3\x51\xdf\x7f\x53\xfe\x39\x27\xf4\xe9\x3e\xec\x29\xab\x6f\xff\x55\xe9\x99\xec\xa0\x1a\x38\x61\xd5\xc0\x7a\x4a\x55\xa7\x18\xd8\xbe\xec\x6a\x33\x02\x87\x4e\x20\x3a\x81\xe8\x04\xa2\x13\x38\x35\x9d\xc0\xfa\x99\xb7\x50\x23\xf0\xc4\xf1\x0e\xbd\x29\x03\xd6\x3f\x7e\xb9\x2a\xa0\xcd\x6d\x70\x8c\x16\x60\x7d\x1b\x94\xeb\x00\x9e\xb8\x0d\x50\xff\x43\xfd\x0f\xf5\x3f\xd4\xff\x50\xff\x3b\x99\xfa\x5f\x83\xd9\xff\x40\xf9\xaf\x32\x3b\xb0\x83\x69\x3f\x79\x6a\x03\x85\x62\x73\x76\xb3\xfe\x22\x22\x27\x58\xa9\x57\x22\xda\x38\x5a\x78\x4e\xef\x57\x94\x7c\x34\xa9\x59\xab\x30\xd0\xad\x7c\x7c\x88\xa7\x76\x05\x12\xe7\x79\x8a\xa7\x41\xb6\x71\x64\xb2\x8d\xf5\x83\xa8\x4a\xb2\xf1\xc4\xa3\x69\x50\xa1\xc6\xfa\x96\xa9\x10\x69\x3c\xf5\x74\x69\xab\x34\x63\x7d\xa3\x15\x10\x8c\xd6\x7e\xbc\xe4\xd3\x5f\x27\x60\x67\x05\x52\x20\x27\x42\x68\x79\x6e\xe6\xa7\xab\x7f\xae\x92\xcf\x49\xf8\xd9\xab\xad\xdd\xaf\xf7\x36\x89\x8d\x18\x6f\x1d\xb6\x1b\x9a\xd9\xce\x46\x38\x77\xed\x0e\xe9\x1b\xe4\x0d\xf2\x36\x26\xf2\x06\x75\x83\xba\x41\xdd\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x06\x75\x83\xba\x41\xdd\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x36\x2e\xea\xb6\xa7\x9d\x52\xed\x79\x18\x93\x7a\x0a\x38\x11\x9c\x08\x4e\x04\x27\x82\x13\xc1\x89\x27\xc3\x89\xe4\xdc\x55\x50\xbf\x92\x4c\xbb\x0f\x41\x78\xeb\x79\x19\x12\x8c\xe0\x7f\xf0\xbf\x31\xf1\x3f\x32\xef\x60\x80\x30\x40\x18\x20\x0c\x10\x06\x08\x03\x84\x01\xc2\x00\x61\x80\x30\x40\x18\x20\x0c\x10\x06\x08\x03\x84\x01\x8e\x8f\x01\x42\x8c\x20\x46\x10\xa3\xe2\xd1\x04\x31\x2a\x7d\xcf\x20\x46\xed\x88\xd1\x7e\xcd\x69\x3b\x80\xd1\xae\x7c\xe5\x30\xb8\x68\xf7\x1e\x90\x65\x04\x0e\x01\x87\xb6\x5f\xda\x52\x6e\x0b\x34\x04\x1a\x02\x0d\x81\x86\x40\x43\xa0\x21\xd0\x10\x68\x08\x34\x04\x1a\x02\x0d\x81\x86\x40\x43\xa0\x21\xd0\x10\x68\xa8\xe9\xd3\x80\x86\x40\x43\xa0\x21\xd0\x10\x68\xa8\x14\x0d\xd9\xa3\x41\x78\x02\x3c\xd4\xa7\x02\x61\x75\x71\x55\xc0\x12\x60\xc9\x72\xb0\x04\x54\x02\x2a\x01\x95\x80\x4a\x40\x25\xa0\x12\x50\x09\xa8\x04\x54\x02\x2a\x01\x95\x80\x4a\x40\x25\xa0\x12\x50\x09\xa8\x34\x26\xa8\xb4\xa7\x39\x58\xe5\x77\x18\x93\xe2\x20\xac\x0c\x56\x06\x2b\x2b\x1e\x4d\xb0\xb2\xd2\xf7\x0c\x56\x56\xcd\xca\xc2\x7b\xe9\xcc\x53\x87\xbd\x7e\x04\x0d\x0e\xdc\xe0\xba\x15\x16\x3b\x35\xd4\x69\x82\xdc\x96\x6a\x2d\x5c\xff\x21\x08\x1f\xb3\x31\x2e\x85\x71\xd3\x97\x43\xad\xa5\x5a\xff\x7e\x2f\x9d\xdb\x7c\x4b\xdc\xde\x7d\xfc\xd7\xfe\x69\x43\xd1\xac\xd1\x42\xa6\xac\x11\x47\x8e\x98\xc2\xfd\xd1\x91\x3b\xf5\x22\xff\xf3\x4d\xdf\xaf\x6f\x37\xe3\x7e\xc5\x76\x76\x88\x66\x06\x3d\xf2\xfd\xfa\xf3\xe6\xf6\xee\xe3\xef\x45\x27\xf3\x96\x1d\xff\x96\xa5\x0d\xa9\x13\x3b\xa7\xf6\xb2\xfd\xdf\xb7\x9b\x0e\xde\x37\xc7\xdb\x44\x6b\x15\x86\x81\xa7\xee\x5d\x7f\xe1\xfa\xcb\x9d\xf4\x60\xb3\x23\xef\x36\xfe\xc3\x5c\x53\x38\x81\xe7\x29\x27\x5d\x8e\xde\x9a\xfb\xf8\x3d\xf0\xd4\x3f\xcd\x7d\x54\xbc\x39\xe6\x0a\x05\x2f\xcf\xdb\xec\x9a\xd5\xd7\x2b\xe1\xc5\xa2\xa6\xdf\x61\xc6\x13\x66\xc6\x15\x16\xe8\x11\xdc\xb8\xc6\x26\xad\xb6\x4a\xf7\xe6\xa2\xff\x16\xdd\xdd\x7d\xb0\x28\xbd\xb9\xa2\xef\x4e\x32\xb7\xbe\xd3\x2f\xe0\x6f\xfa\xc5\x88\x1a\xce\xac\xd5\xaf\x16\x3c\x1c\x1e\x0e\x0f\x87\x87\x4f\x8d\x87\x37\x5b\x55\x0a\x99\x78\xb5\x8f\xec\x39\x2b\x49\x91\xe7\x35\x21\x01\xaf\xb4\x74\x8b\x13\x8f\x28\x33\x0e\x76\x9e\x2d\x6f\x47\xdc\x2b\xb1\x8a\x5b\x2b\x5a\xc7\x0b\xf4\xad\x2f\x5c\xdf\xcc\x2c\x41\x28\x36\x7e\x36\x39\x2d\xc4\x22\x7c\xfa\x7d\xe3\x8b\x85\x1b\xc6\xa6\xd9\x37\x95\x8d\x78\xed\x72\xf4\x85\xf4\x93\x57\x3e\x1d\x1b\x49\x03\x8b\x87\x4d\xa8\xdf\xb2\x55\x18\x38\xb1\xdd\x60\xbc\xb2\x39\x56\x39\x17\x7f\xea\x5f\xd4\xbd\xa5\xc7\xce\x1b\x71\x25\x6e\x3d\xef\x8d\xc6\x27\x8b\x78\x96\xde\xf8\x71\xc7\x2f\x55\x94\x0d\xc9\xe4\x72\x6a\xd1\xa2\xa3\xcc\xb3\x0c\xd3\x4d\xbd\x05\x31\x34\x6b\x8a\xf2\x40\x86\xde\x5a\xe4\x8f\xbc\xdf\xd6\xf5\x45\x64\xdc\xa9\xe2\x5e\x3d\x18\xcb\x39\x03\x5e\x5b\x53\x22\x99\xbd\xf4\xd0\xd9\x28\xb3\x38\xdc\x2b\xe1\x07\xfe\x95\xaf\x96\x52\x0f\xd0\xc4\xf3\x3a\x17\x7f\x64\x0b\xb6\x81\xdf\xd9\xab\x91\xec\x61\xdc\xc7\x47\xb5\x70\xe5\x5a\x79\x4f\x5b\x93\x76\xbb\xe4\xba\xde\xab\xc4\xb3\xaa\x1b\x5d\x2c\x43\xe9\xe8\xb7\xc6\x0d\x16\x99\x41\xb0\x5d\xb4\xf5\x7e\x21\x1d\xa5\x9b\x28\xbe\xc9\x7c\x77\xc9\xf8\xcc\xf4\x81\x92\x1f\x79\x30\x73\x60\x7a\x89\xb9\xb9\xcf\x47\x25\xfd\xc2\x7b\x6c\xd1\xcd\xfa\x9e\xef\xf4\x2d\x17\x79\xab\x6b\xfc\xd5\xb6\x0c\xff\x63\xe2\x57\x9a\xb5\x4b\x79\x0c\x4b\x6f\xc3\x9f\x68\x16\xa2\x59\x88\x66\x21\x9a\x85\x68\x96\x93\x45\xb3\x34\x5c\x0b\x0e\x22\x5a\xfa\x5b\x16\xdf\xe5\xf2\xe2\x56\x9e\x92\x91\xca\xa6\xa0\xbb\x30\x58\xc9\xa5\xb6\x8e\x4c\xa8\xcb\x8e\x1f\x2c\x1d\x74\xdb\xc4\xba\x78\xd8\xdd\xcc\xff\x31\x17\x9f\xcc\x7c\x66\x4c\x97\x95\xf2\xe3\x97\x65\xbb\xa6\x2a\x11\x84\xab\x2f\xd2\x4f\xfd\x72\xe1\x46\x5d\x3f\x48\x2f\xdd\x2b\x7f\xbe\x34\x5f\x7f\xbe\x14\x0f\xae\x2f\x3d\xf7\x3f\xe9\x42\x72\xaf\x84\x5c\x2c\xf4\xe8\xbc\x36\xa0\x78\xb1\xdd\x86\x99\xcb\xcf\xa2\xed\x49\x66\x7f\x3a\x17\xef\x5d\x3d\x39\xe6\x6e\x3d\x08\x0f\x9f\x4d\x4f\x3f\xc6\x55\x64\xb6\xc7\x7a\x8f\x12\xac\xbf\xb4\xe9\x50\xf3\x04\xef\xd2\x67\xef\xcd\xc5\x77\xb8\x31\xd3\x8f\x1e\xbf\xb0\x5f\x82\xef\x62\x29\xc3\x7b\xb9\xdc\x71\x9d\x67\x9b\x1a\x15\x3e\x04\xe1\x63\xdc\x27\x85\xed\xf5\xdb\xde\x13\x95\x37\x97\x36\x7a\x53\x8b\xd5\x64\x70\xc5\xef\xc7\x42\x39\xee\x62\xbb\x15\xd6\xb6\x82\x76\x4e\x64\x7d\x1c\x69\xc8\xac\xbf\x4d\xad\x81\x79\xae\x33\xd3\x75\x24\xdd\x6a\x5f\x65\x3e\xe6\xdd\x1f\x9b\x8b\x5b\xc7\x51\xab\xb5\x5e\x9b\xf2\x3b\xbb\x99\x79\x86\x99\xb8\x4a\x06\xe0\xee\x00\x8d\x7e\x14\xb3\x7f\x4a\xe7\xeb\x32\x0c\x36\xfe\x22\x3e\x4a\xfb\x6a\xf5\x41\x7b\x0d\x67\x4c\xc8\xc4\x3e\xde\xbd\x48\xfa\x04\xf7\xd9\x95\x7e\x14\xb3\x0f\x41\xa8\x72\x97\x15\x8e\x8c\x1c\xb9\x88\x9f\x3e\x69\x1f\xe3\xce\xd7\xd7\x8b\xcc\xd6\xf3\xe0\x82\x0f\xd9\x35\xda\x0c\xc8\xd5\xfe\x70\x1f\xd0\x53\x40\x8c\xd6\x78\x62\xb4\x9a\x8d\xae\xaa\x38\xad\xfe\x36\xf3\x43\x46\x6c\x35\x6b\xa7\x8a\xa8\xad\xfe\x16\x7c\x5b\xe3\xb7\x9a\x35\xe1\x61\x0c\xd7\x73\x97\xd3\x42\xe4\x4c\xb4\xc4\x91\x44\xef\xd3\x5a\xae\x37\x4d\x51\xde\x58\x83\x24\x72\x67\x97\xa4\xbe\x9b\x35\x7c\x6b\x5f\x75\x91\x05\x5f\x1a\x7f\x51\x9c\x18\x5f\x19\xb9\xb0\x9f\x19\x5f\x95\x14\xdf\xb9\x70\x87\x71\xb3\x85\xc9\x7a\x9f\xee\x07\x52\xcd\x8e\xa3\x22\x38\xe2\x4b\x15\xc5\x6f\x10\xb5\x41\xd4\xc6\xb4\xa2\x36\x88\x73\x20\xce\x81\x38\x07\xe2\x1c\x88\x73\x18\x3c\xce\x01\x80\x0e\x53\x85\xa9\xc2\x54\x61\xaa\x30\x55\x98\x2a\x4c\xb5\x74\x11\x00\x73\x80\x39\xc0\x1c\x60\x0e\x30\x07\x42\xc2\x55\x3c\x65\xae\x5d\xfb\xdf\x6e\xe6\x87\x7e\xeb\x33\x48\x39\xad\xa7\x29\x5d\x15\xa7\x1c\x8a\xa0\xb4\x90\x15\x1e\x8b\x26\xcf\xc5\x5e\x27\x5e\xae\x82\xa8\x63\x5c\x64\x2c\x78\x21\x8f\x23\x43\xe6\xac\x93\xb1\xa1\x76\x49\x94\x15\x1a\x4f\xa7\x9a\x40\x3a\xc9\xaa\x24\xb3\x27\xdf\xeb\xd6\x66\xf6\xe8\x1d\xfb\x2f\xd2\x97\x4b\x15\x1a\xdf\x93\x56\x2c\x93\x51\x14\x38\xae\xde\x4c\x65\x5e\x1e\xa9\x9d\x75\x41\x28\xe2\xbd\xf6\xfa\x29\xdb\x5d\x3e\xca\xaf\x71\x2b\xae\xbf\xa8\x48\xa5\x16\x53\x3e\x7f\x25\xcd\x73\xd1\x16\xa3\xf6\xe8\x04\xa1\xb8\x79\xfd\x43\x7c\x6c\x28\x1d\x8d\x70\xbc\xc0\x5f\x1a\xfb\x48\x7b\x5d\xe2\xed\xb1\x74\x7d\x33\x5b\x69\xaf\xc6\xf6\x58\xed\xd6\x4e\x00\x93\xb8\x7f\x12\x7a\x65\x79\x73\x7d\xbd\x0c\x3c\xe9\x2f\xe7\x41\xb8\xbc\x5e\x7d\x5d\x5e\x6f\x7c\xd7\x09\x16\xea\xfa\x6f\x1f\xa3\xbb\xf8\x2a\xad\xdd\xa4\x49\xe3\x74\xd9\x3d\x56\x19\x54\xa3\xb5\x73\x9a\xda\x38\xaf\x1b\xd8\x38\x6f\x8d\xcb\xc7\xb2\xfb\x7e\x5d\x7b\xdf\x26\x5e\xd5\xb2\x1b\x9f\xac\x51\xa9\x0d\x95\xf1\x19\x95\x17\xe2\xd9\xc2\x2c\x05\xc5\x79\x4e\xa8\xcf\x72\xa4\xdd\x56\xae\xc9\x32\xa0\xdd\x36\x12\xf1\x0b\xcc\xb4\x7c\x27\x5b\x6b\xa6\x91\x6e\x7c\x46\xe9\xc6\xe4\x55\x91\x57\x45\x5e\x15\x79\x55\xec\x30\xcb\xde\x22\x2b\x33\x13\x86\xd9\xaf\x91\x58\x91\x1d\x59\x99\x58\x31\xc2\x7d\x5b\xe6\x20\xef\x3c\x9d\x42\x53\xf6\x5d\x93\xec\xa8\x1d\x57\x7c\xfe\xf1\xfb\x2d\xa6\x1f\xfc\x2d\x47\xbd\xb9\xf1\xb8\x1f\xf1\x6b\xdb\x82\xe1\xe5\xcb\x85\xd4\xdd\x07\xf5\x42\xfa\x60\x93\x3a\x16\xa0\x95\x14\xf8\x95\x3e\xf7\xef\xd5\x53\xda\xa3\x0a\x97\xaa\xd1\x91\xd1\x3a\x94\x6b\xb5\x74\x9d\xab\xe6\xe7\xc4\x9f\x9f\x92\x23\xf5\xe4\xd9\x64\x71\xd0\xc1\x63\x3a\x37\xc5\xc4\xad\x3c\x67\xa1\xd0\x3f\x6d\x99\x67\xee\x54\x44\xb5\xc2\x12\xbb\xdb\x8d\x28\x11\xf8\xeb\x26\xee\xaf\x3b\x1f\xac\xba\x17\xf8\x9d\xbe\x5c\x26\x39\x61\x65\x62\x35\x93\x84\xd7\x17\x25\x53\xd3\x4b\xed\xad\x30\x19\x89\xd2\xd3\x67\xfa\x81\x7f\x65\xce\xd6\x47\x68\x87\x61\x24\x5e\xfc\x14\x05\xfe\x9d\xc9\xfb\xfc\x25\x9e\x04\x93\xcf\x9f\xd2\xa9\x71\xfb\xc7\x97\x36\xf1\xde\xe6\xe3\xe6\x43\x10\x3a\xda\xa3\xba\x0c\x74\xe7\x07\xe2\xf3\xe5\x43\xfc\xb7\xcf\x97\xe2\x76\xa7\x35\xe7\xe2\xe3\x3a\x71\x7f\x6e\xa2\x6d\x8e\xdb\x95\x74\x74\x07\xe8\xcc\x41\xcf\x75\x12\x87\x8e\xf2\x16\x91\x08\xbe\x27\x7d\x6b\x32\xeb\x56\x2a\x58\x79\x6a\x2e\xcc\x6f\xea\x84\xe1\x74\x4c\xe9\x60\xde\xc2\x8e\xc8\x7e\xbe\x4d\xf3\xc6\x3f\x34\xdd\xc8\x44\xf6\x19\x63\xdd\x67\xac\xf6\xc2\x45\xc7\xb7\xd3\xd8\x74\xee\x20\x58\x79\xd2\x79\x96\xe9\x97\x5c\xe2\x4c\x8c\x3f\xc2\xe9\xb0\xfb\xce\xca\xee\xb3\xc8\xbc\xc2\x0a\xc8\xbe\x21\x9c\xee\x0c\xad\x97\xcd\x18\xbd\xa4\x17\xa2\x75\x50\xda\xe0\x65\xc2\x5a\xc5\xa2\x15\xd5\x07\x6b\x63\xf7\x20\x31\x85\xc4\x94\xf9\xca\x02\x89\xa9\x49\xc7\x46\x22\x98\x85\x60\x16\x82\x59\x08\x66\x21\x98\x55\xb4\x94\x50\x18\x0c\x7f\x07\xba\x66\x44\xea\x9f\x73\xa4\x3e\x22\x76\x88\xd8\x21\x62\x87\x88\x1d\x22\x76\x88\xd8\x21\x62\x47\x02\x1b\x09\x6c\x24\xb0\x91\xc0\xb6\x3f\x22\x29\x0c\x86\x62\xe6\xd1\xa3\x0b\xc5\x4c\x14\x33\x51\xcc\x9c\x7e\x44\x0a\xf9\xab\xd9\x91\xa3\x28\x0c\x66\x4b\x0a\x6b\xe3\x8a\x60\x15\xc1\x1a\xf5\xa5\xc0\x08\xd0\x20\x40\x63\xd4\x01\x1a\x84\x34\x10\xd2\x40\x48\x03\x21\x0d\x84\x34\x0c\x1e\xd2\x00\x2b\x07\x9f\x82\x4f\xc1\xa7\xe0\x53\xf0\x29\xf8\x14\x7c\x5a\xba\x08\x40\x34\x20\x1a\x10\x0d\x88\x06\x44\x83\x1a\x60\xc7\x26\xc5\x52\xfc\xcb\x8a\xe2\x5f\x6d\x75\x3c\xa8\xfa\xd5\x71\xd5\xaf\x0a\xfa\xd3\xa4\xdc\xd7\x34\x85\x49\x50\x24\x39\x9f\x0c\x1d\x14\x49\x50\x24\x29\xb8\x19\xab\x8d\x98\xd1\x49\x91\xd8\x2d\x11\xff\x9c\x3b\x9e\xac\x8d\x38\x7c\x2d\xaf\xfe\xf4\x52\x06\xac\xde\xd5\x4a\x2a\x65\x08\xfb\x6b\x24\x9a\x14\x58\x5d\xf9\x4e\xb6\xd6\xea\x22\x0b\xf8\x8c\xb2\x80\x49\x77\x22\xdd\x89\x74\x27\xd2\x9d\xd8\x30\x96\xbd\x45\x56\x26\x0c\x50\xaf\xcb\xce\x9d\x99\x0d\xf5\xba\x6c\xc9\x72\xa8\x2e\xd4\x55\xb1\xb9\xaa\xaf\xd0\x75\xc9\x4c\x83\xdf\x64\x84\x35\xb9\xfa\x43\x6b\x25\xc5\xb8\x8a\x20\x1a\x55\xb8\xa8\xc2\x55\x7a\xce\x89\xab\x70\x55\xac\x02\x0d\xca\x6f\x8d\x9f\x70\x52\x77\x0b\xbf\xdb\xf9\xd1\x4e\xea\x6e\x75\x39\x6e\xa8\xbb\x85\xbb\x82\x4d\x44\x51\x43\x4e\xb5\xe0\x56\xdb\x6d\x44\xef\x95\xb6\x2a\x37\xf9\x0d\x4a\x6c\x8d\xdf\xc0\x23\x84\x0d\xa3\xee\x3c\x8c\x3a\x8b\x6c\x27\x96\xf8\xec\x1b\x42\xd8\x72\xd7\x9e\xae\x4d\x32\x74\x19\xad\xd3\xc6\x83\xc5\xf3\x45\xb4\x92\x4e\x1a\x0d\xa6\x3f\xff\xef\x3a\x0c\x3c\x75\x6f\xea\x77\x0d\x53\x56\xab\x59\x31\xd1\x06\x65\xb5\x7e\x4d\x1f\x6a\xf1\xcc\xc2\xa2\xe8\x37\xa1\xdf\x64\xbe\xb2\x40\xbf\x69\xd2\xc1\x8c\xa8\x51\xa1\x46\x85\x1a\x15\x6a\x54\xa8\x51\x15\x2d\x25\x14\xd8\xc2\xf7\x81\x68\x18\xa1\xf5\xe7\x1c\x5a\x8f\x42\x1c\x0a\x71\x28\xc4\xa1\x10\x87\x42\x1c\x0a\x71\x28\xc4\x91\x71\x46\xc6\x19\x19\x67\x64\x9c\xed\x8f\x48\x0a\x6c\x21\x47\x79\xf4\xe8\x42\x8e\x12\x39\x4a\xe4\x28\xa7\x1f\x9d\x42\xc2\x69\x76\xa4\xbd\x05\xb6\x8a\x43\x16\x2c\x2e\xb0\xd5\x2c\x6c\xa3\xa4\xc0\x16\xa1\x1a\x84\x6a\x4c\x2f\x54\x83\xe0\x06\x82\x1b\x08\x6e\x20\xb8\x81\xe0\x86\xc1\x83\x1b\xa0\xe6\x80\x54\x40\x2a\x20\x15\x90\x0a\x48\x05\xa4\x02\x52\x4b\x17\x01\xd8\x06\x6c\x03\xb6\x01\xdb\x80\x6d\x50\x6a\xab\x51\xc6\x6c\xce\x61\x4d\xa9\xad\xe1\x4a\x6d\x3d\x9f\x97\xb4\xd0\x03\x4c\x0c\x26\x23\x3e\xe0\x2f\x44\x7c\xbb\x22\x72\x82\x95\x7a\x25\xa2\x8d\xa3\x57\x2d\x3d\xd9\x2b\xf9\x68\x66\xaa\x55\x18\x68\x03\x6d\xf7\x1e\x9b\x48\x06\x6a\x3c\xb2\xfb\x35\xba\x81\x75\x4f\x93\x7c\xea\xa5\xc6\x58\x33\x00\x56\x5a\x63\xac\x33\x04\x66\xa9\x54\x4b\xfe\xa9\x9a\xcd\x91\xa4\x2b\x4d\x20\x5d\x09\xa9\x16\xa4\x5a\x0a\x6e\xc6\x6a\x3b\x6e\x1c\x52\x2d\xad\x6e\x78\xd0\x6a\x63\x2d\xee\x78\xb2\x66\xf2\x40\xd5\xc6\x5a\x9b\xc9\x17\xa2\x73\x75\x99\xbe\x8b\x90\x3d\x53\x58\x66\x60\x03\x6d\x24\x0a\x1e\x98\x65\xf9\x4e\xb6\xd6\x2c\x23\x67\xfa\x8c\x72\xa6\x49\x0e\x23\x39\x8c\xe4\x30\x92\xc3\xd8\x51\x96\xbd\x45\x56\xa6\x57\x50\x8e\xcc\xce\xad\xdb\x60\xe5\xc8\x2c\xcc\x09\x29\x28\x47\xd6\x6c\x9b\x55\x52\x8e\xac\x7e\x93\xc5\x9c\x83\x8b\xc5\xe6\xc2\x64\x83\x80\xc8\x7c\x61\xb2\xd2\x1b\x18\x53\x61\x32\xc8\xea\xe8\xc8\x2a\x15\xd9\x5a\x2d\x84\x65\x15\xd9\x26\xca\x83\xa9\xcd\x86\x13\xf2\xfc\xd8\x30\xb5\xd9\xba\x1c\x37\xd4\x66\xc3\x77\xc3\x3e\xaa\xa8\x21\x27\x55\x9b\xad\x83\x9d\x54\x3f\xb5\xd9\x9a\x7a\x3c\xca\x6a\xb3\x4d\xd4\xd4\x23\xf4\x0f\xf3\xee\x3c\xcc\x3b\x8b\xac\x28\x16\xfb\xec\x1b\x42\xff\x72\xd7\x9e\xae\x75\x32\x48\x95\x36\x1b\xe2\xe8\x86\x2b\xcf\xd6\x26\x7c\xae\xac\x2e\x5b\x1b\x3b\x07\x95\x2f\x54\xbe\xcc\x57\x16\xa8\x7c\x4d\x3a\x9c\x13\xcd\x32\x34\xcb\xd0\x2c\x43\xb3\x0c\xcd\xb2\xa2\xa5\x84\x82\x6c\xb8\x39\x90\x96\x23\xb9\xe0\x9c\x93\x0b\xd0\x11\x44\x47\x10\x1d\x41\x74\x04\xd1\x11\x44\x47\x10\x1d\x41\x72\xee\xc8\xb9\x23\xe7\x8e\x9c\xbb\xfd\x11\x49\x41\x36\x44\x4b\x8f\x1e\x5d\x88\x96\x22\x5a\x8a\x68\xe9\xf4\x03\x51\x48\xb9\xcd\x8e\xb4\xbb\x20\x9b\x2d\x59\xb7\xf5\x95\xd8\x2a\x22\x34\x1a\x95\x60\x23\x2a\x83\xa8\x8c\x51\x47\x65\x10\xc7\x40\x1c\x03\x71\x0c\xc4\x31\x10\xc7\x30\x78\x1c\x03\x80\x1c\x66\x0a\x33\x85\x99\xc2\x4c\x61\xa6\x30\x53\x98\x69\xe9\x22\x00\xc6\x00\x63\x80\x31\xc0\x18\x60\x0c\x6a\xaf\x35\xce\x83\xa5\xe8\xda\xb0\x45\xd7\xda\x4a\x73\x50\x6d\xed\x0c\x34\x01\x4f\x5b\x6d\xad\x02\x72\x35\x2c\xb3\x36\x31\x91\x15\xd4\x55\xce\x27\xed\x08\x75\x15\xd4\x55\x0a\x6e\xc6\x4e\x23\x6d\x3c\xb2\x2a\x76\x8b\xf3\xb7\xba\xd5\xc9\x5a\xbd\x03\xd6\x50\x1b\x4e\xf4\x65\x88\xaa\x69\x6d\xf4\x5e\x86\x32\xb4\x46\x22\xac\x81\x95\x95\xef\x64\x6b\xad\x2c\x52\x99\xcf\x28\x95\x99\x9c\x2d\x72\xb6\xc8\xd9\x22\x67\x8b\x0d\x62\xd9\x5b\x64\x65\xd6\x03\x75\xd2\xec\xdc\x9e\x0d\x5a\x27\xcd\x96\x54\x8d\x92\x02\x69\x15\x3b\xaa\x46\x95\xd1\x2e\x99\x5e\x70\x95\x14\x9d\x6d\x5d\x2d\xb4\xfe\xf8\xe0\x7e\x11\xb4\xe3\xa9\x9f\x2d\xc0\x0f\xd2\x39\x3a\xd2\x49\xf5\xb3\xe3\x56\xb9\x66\x65\xcf\xc6\xcf\x67\xa9\x77\x86\x33\xf1\xfc\x90\x2d\xf5\xce\xba\x1c\x37\xd4\x3b\xc3\x07\xc3\x26\x69\xda\x85\xce\xda\x6e\x93\xfa\xab\x70\x56\xe9\xb2\x68\x56\xda\x6c\xfc\xe6\x1c\xe1\x76\xd8\x6e\x13\xb7\xdd\x2c\x32\x91\x58\xc9\xb3\x6f\xce\x3c\xdc\x6e\xba\x36\xc7\x60\xe5\xcb\x4e\x1b\xc2\x16\x06\x9e\xba\x37\x05\xd2\x76\xea\x94\x0d\xa0\x85\x55\x5f\x9a\xb5\x44\x12\x2b\x77\xf2\x87\x20\xbc\xf5\xbc\xcc\x9a\x89\x6c\xe0\x2f\xa5\x27\x9c\x71\x36\x58\xd2\x5d\x24\x85\x0d\x9b\x14\xf6\xcc\xb2\xcd\xc7\xb3\x1f\xc4\xe6\x26\x2c\x36\x57\xcf\x76\xea\x84\xe6\x2a\x1d\x4a\x1d\x70\x2b\xe4\xe5\x90\x97\x43\x5e\x0e\x79\xb9\xa9\xc9\xcb\xd5\xcf\xbc\x85\xd2\x72\x27\x8e\x12\xe8\x4d\x50\xae\xfe\xf1\xcb\xc5\xe4\x6c\x6e\x83\x63\x24\xe4\xea\xdb\xa0\x5c\x3e\xee\xc4\x6d\x80\x68\x1c\xa2\x71\x88\xc6\x21\x1a\x87\x68\xdc\xc9\x44\xe3\x1a\xcc\xfe\x07\x82\x71\x95\xe9\x5a\x67\x14\x24\xd8\xec\x69\x10\xbd\x1b\x99\xe8\x5d\xfd\x20\xaa\x12\xbc\x3b\xf1\x68\x1a\x54\xe6\xae\xbe\x65\x2a\x24\xee\x4e\x3d\x6b\xd8\x2a\x6c\x57\xdf\x68\x05\x2e\xfc\xd6\xee\xac\xe4\xd3\x5f\x6d\x70\xce\xd0\x1c\xa7\x1d\xc0\x81\xdc\xec\x37\xbc\x9d\xe4\x06\x64\x73\x2e\x3a\x7e\xb0\x1a\x58\x0d\xac\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\x0d\xac\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\x4d\x9f\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xbb\xac\x46\xdf\xc3\xb5\xe3\x6d\xa2\xb5\x0a\x7b\xcb\xc3\x49\x6c\x20\x7f\xe1\x7e\x73\x17\x1b\xe9\xe5\xbb\x4e\x66\xfb\x9c\xb7\xe6\xae\x72\x39\x02\xf3\x9c\x6a\xea\x9b\xcc\x22\x9d\xe9\xcb\xcd\xb6\xee\xad\x1d\x7f\x45\x46\x7f\x84\xeb\x47\x6b\x25\x77\x96\x8e\x7d\x36\xf4\xbd\x44\x69\xe6\xf0\x56\x7e\xde\xf3\xbe\x83\x87\x6c\x15\x88\xd4\x13\xc4\xfb\x78\x0b\x74\xf6\xc8\x48\xf7\xe4\x40\xdc\xe8\xf0\x15\x82\x22\x41\x91\xa0\x48\x50\x24\x28\x12\x14\x09\x8a\x04\x45\xea\x68\xb6\x85\x22\x41\x91\xa0\x48\x50\x24\x28\x12\x14\x09\x8a\x04\x45\x82\x22\x41\x91\xa0\x48\x50\x24\x28\x52\x6d\x5b\x75\x4e\x91\x0a\x0a\x90\x9e\x08\x26\xe5\x09\x92\x9f\x2e\x7d\x69\x46\xd0\x89\x48\xd2\xab\xad\xcd\xab\xed\xfa\xc4\x3e\x8a\xcd\xe6\xad\x31\x3f\xdb\xd9\x04\xe6\xae\xdd\x0d\x87\x82\x41\xc1\xa0\xc6\xc7\xa0\xe0\x4f\xf0\x27\xf8\xd3\xf6\x45\x83\x3f\xc1\x9f\xe0\x4f\xf0\x27\xf8\x13\xfc\x09\xfe\x04\x7f\x82\x3f\xc1\x9f\xe0\x4f\xf0\x27\xf8\xd3\xe8\xf8\x53\xbe\xb2\x70\x9d\xcf\x61\x4c\x75\x86\xe1\x6a\x70\x35\xb8\x5a\xf1\x68\x82\xab\x95\xbe\x67\x70\xb5\x2e\xb9\x9a\x65\x69\x59\x36\xe4\x63\x91\x88\x05\x04\x1b\x27\x04\x1b\x3e\x11\x0b\x02\x06\x01\x83\x80\x41\xc0\x20\x60\x10\x30\x08\x18\x04\xac\xa3\xd9\x16\x02\x06\x01\x83\x80\x41\xc0\x20\x60\x10\x30\x08\xd8\xd9\x11\x30\x48\x11\xa4\x08\x52\x54\x3c\x9a\x20\x45\xa5\xef\x19\xa4\xa8\x53\x52\x64\x5f\xea\xd5\xf8\x73\xae\xe0\x4c\x70\xa6\xf1\x71\x26\x18\x13\x8c\x09\xc6\x04\x63\x82\x31\xc1\x98\x60\x4c\x30\x26\x18\x13\x8c\x09\xc6\x04\x63\x82\x31\xc1\x98\x60\x4c\x30\xa6\x31\x32\xa6\x92\x2c\x2b\xd2\xab\x80\x66\x40\x33\xa0\x19\xd0\x0c\x68\xd6\x14\x9a\xc5\x77\x14\xad\xa4\x93\x22\x33\xfd\xf9\x7f\xd7\x96\x15\xc3\xb2\xa1\x0a\xd6\xaf\x69\xeb\x2c\x28\x84\x05\x17\x1b\x3d\x17\x1b\x28\xff\x0a\x05\x42\xd8\x18\x6c\x0c\x36\x06\x1b\x83\x8d\xc1\xc6\x60\x63\x96\x71\x21\xd8\x18\x6c\x0c\x36\x06\x1b\x83\x8d\xc1\xc6\x60\x63\x63\x64\x63\xc9\x53\x6b\x44\x16\x77\xa5\xdc\xac\xbf\x88\xc8\x09\x56\xea\x95\x88\x36\x8e\xa6\x00\x7a\xbf\xa2\xe4\xa3\xf1\x0a\xaf\xc2\x40\xb7\xf2\xf1\xf8\x4c\xbb\x03\x61\x68\x30\x34\x18\x1a\x0c\x0d\x86\x06\x43\x2b\x65\x68\x96\xe4\xa3\x8d\xbf\x06\x58\x21\x85\x83\xc0\x41\xe0\xc6\x47\xe0\xa0\x6f\xd0\x37\xe8\x1b\xf4\x0d\xfa\x06\x7d\x83\xbe\x41\xdf\xa0\x6f\xd0\x37\xe8\x1b\xf4\x0d\xfa\x06\x7d\x83\xbe\x41\xdf\xc6\x48\xdf\xf2\x99\x69\x93\x28\xfc\x05\x4e\x04\x27\x82\x13\xc1\x89\xe0\x44\x70\xe2\xf0\x38\xd1\x96\x5c\x3c\x4b\x92\xf0\xc8\xbe\x83\xfd\x8d\x93\xfd\x0d\x98\x7d\x07\xf8\x03\xfc\x01\xfe\x00\x7f\x80\x3f\xc0\x1f\xe0\x0f\xf0\xd7\xd1\x6c\x0b\xf8\x03\xfc\x01\xfe\x00\x7f\x80\x3f\xc0\x1f\xe0\xef\xec\xc0\x1f\x9c\x0c\x4e\x06\x27\x83\x93\xc1\xc9\xe0\x64\x16\x70\x32\x8b\xf2\xed\x26\x91\x68\x07\x65\x83\xb2\x8d\x8f\xb2\x41\xd8\x20\x6c\x10\x36\x08\x1b\x84\x0d\xc2\x06\x61\x83\xb0\x41\xd8\x20\x6c\x10\x36\x08\x1b\x84\x0d\xc2\x06\x61\x83\xb0\x8d\x8a\xb0\xed\xa7\xd6\x91\x53\x07\x2b\x84\x15\xc2\x0a\x61\x85\xb0\x42\x58\x61\x0d\x2b\xa4\x9e\xdd\x01\xe0\xdb\xab\x62\xf7\x21\x08\x6f\x3d\x2f\xa3\x7e\x11\xc4\x0f\xe2\x37\x3e\xe2\x47\x55\x3b\xe0\x1f\xf0\x2f\x79\xcb\x80\x7f\xc0\x3f\xe0\x1f\xf0\x0f\xf8\x07\xfc\x03\xfe\x01\xff\x80\x7f\xc0\x3f\xe0\x1f\xf0\x0f\xf8\x37\x3a\xf8\x07\x39\x82\x1c\x41\x8e\x8a\x47\x13\xe4\xa8\xf4\x3d\x83\x1c\x75\x42\x8e\x6c\x41\x46\x83\xb2\x22\x20\x51\x51\x5f\x02\x89\x80\x44\xa4\x86\x41\x87\xa0\x43\xd0\x21\xe8\x10\x74\x08\x3a\x04\x1d\x82\x0e\x41\x87\xa0\x43\xd0\x21\xe8\x10\x74\x08\x3a\x04\x1d\x82\x0e\x1d\xf5\x34\xd0\x21\xe8\x50\x77\xa3\x09\x3a\x54\xfa\x9e\x41\x87\xda\xd3\xa1\x7b\xb5\x96\x37\xd7\xad\xb8\xd0\xa9\x81\x48\x13\xe6\xb4\x54\xeb\x5d\x7b\xcf\x74\x73\x05\x1a\x5a\xaa\x75\x01\x18\xd2\xcd\x70\x7b\xf7\xf1\xf7\xa2\x2b\x0c\x45\x84\x46\x0b\x6a\x72\x0d\xa9\x4b\x9b\x4d\x90\xd6\xe8\x01\x93\xbb\xc4\x45\xfe\x36\x8e\x7d\xfd\x1c\x6f\x13\xad\x55\x58\x96\xdc\x67\xcc\xed\x6e\x61\xad\xb9\xa6\x70\x02\x2f\xde\xdd\x27\xcb\xc4\x5b\x73\x1f\xc5\x59\x40\xfb\x2f\x92\xb9\x42\xd9\xbb\xf4\x36\xbb\x70\xf5\x45\x4b\x88\x90\xa8\x19\x06\x50\xa1\x09\x53\xa1\x8a\xa5\xf3\x08\x32\x54\xb3\x98\x56\x2f\xa7\x7b\x53\xd3\x7f\x8b\xee\xee\x3e\x58\x94\xde\x5c\xd1\x77\x27\x99\x6a\xdf\xe9\xb7\xf0\x37\xfd\x62\x44\x0d\x27\xda\xea\x57\x0b\xe2\x05\xf1\x82\x78\x41\xbc\xa6\x46\xbc\x9a\xad\x2a\x85\xd4\xab\x7a\x73\xff\x9c\x95\xa4\xc8\x65\x94\xf8\xfa\x5e\xe9\x50\x3a\x27\x1e\x51\x66\x1c\xec\x3c\x5b\xde\x8e\xb8\x57\x62\x15\xb7\x56\xb4\x8e\x17\xe8\x5b\x5f\xb8\xbe\x99\x59\x82\x50\x6c\xfc\x6c\x72\x5a\x88\x45\xf8\xf4\xfb\xc6\x17\x0b\x37\x8c\x4d\xb3\x6f\x2a\x1b\xf1\xda\x57\xe2\x0b\xe9\x27\xaf\x7c\x3a\x36\x92\x06\x16\x0f\x9b\x50\xbf\x65\xab\x30\x70\x62\xbb\xc1\xb8\x93\x72\x34\x62\x2e\xfe\xd4\xbf\xa8\x7b\x4b\x8f\x9d\x37\xe2\x4a\xdc\x7a\xde\x1b\xed\x20\x5d\xc4\xb3\xf4\xc6\x8f\x3b\x3e\xde\x9f\xa7\x43\x32\xb9\x9c\x5a\xb4\xe8\x28\xf3\x2c\xc3\x74\x53\x6f\x98\xb2\x59\x53\x94\xa3\xca\xde\x5a\xe4\x8f\xbc\xc3\xc9\xf5\x45\x64\xfc\x40\xe2\x5e\x3d\x18\xcb\x39\x73\x69\x6f\x4d\x89\x64\xf6\xd2\x43\x67\xa3\xcc\xe2\x70\xaf\x84\x1f\xf8\x57\xbe\x5a\x4a\x3d\x40\x13\x97\xd1\x5c\xfc\x91\x2d\xd8\x06\x6f\x65\xaf\x46\xb2\x91\x71\x1f\x1f\xd5\xc2\x95\x6b\xe5\x3d\x6d\x4d\xda\xed\x92\xeb\x7a\xaf\x12\x97\x90\x6e\x74\xb1\x0c\xa5\xa3\xdf\x1a\x37\x58\x64\x06\xc1\x76\xd1\xd6\xfb\x85\x74\x94\x6e\xa2\xf8\x26\xf3\xdd\x25\xe3\x33\xd3\x07\x4a\x7e\xe4\xc1\xcc\x81\xe9\x25\xe6\xe6\x3e\x1f\x95\xf4\x0b\xef\xb1\x45\x37\xeb\x7b\xbe\xd3\xb7\x5c\xe4\x66\xab\x71\xb4\xd9\x32\xfc\x8f\x21\xd4\xcd\xda\xa5\x9c\x52\xf7\x36\xfc\xe1\xd5\xf0\x6a\x78\x35\xbc\x1a\x5e\x7d\x32\x5e\xdd\x70\x2d\x38\x60\xd6\xfd\x2d\x8b\xef\x72\x39\x2d\x2b\x4f\xc9\x48\x65\x53\xd0\x5d\x18\xac\xe4\x52\x5b\x47\x77\x81\xe7\x3a\x4f\x3b\x7e\xb0\x74\xd0\x6d\x93\x62\xe2\x61\x77\x33\xff\xc7\x5c\x7c\x32\xf3\x99\x31\x5d\x56\xca\x8f\x5f\x96\xed\x9a\xaa\x44\x10\xae\xbe\x48\x3f\xf5\xcb\x85\x1b\x75\xfd\x20\xbd\x74\xaf\xfc\xf9\xd2\x7c\xfd\xf9\x52\x3c\xb8\xbe\xf4\xdc\xff\xa4\x0b\xc9\xbd\x12\x72\xb1\xd0\xa3\xf3\xda\x10\xae\xc5\x76\x1b\x66\x2e\x3f\x8b\xb6\x27\x99\xfd\xe9\x5c\xbc\x77\xf5\xe4\x98\xbb\xf5\x20\x3c\x7c\x36\x3d\xfd\x18\x57\x91\xd9\x1e\xeb\x3d\x4a\xb0\xfe\xd2\xa6\x43\xcd\x13\xbc\x4b\x9f\xbd\x37\x17\xdf\xe1\xc6\x4c\x3f\x7a\xfc\xc2\x7e\x09\xbe\x8b\xa5\x0c\xef\xe5\x72\xc7\x7f\x9e\x6d\x6a\x54\xf8\x10\x84\x8f\x71\x9f\x14\xb6\xd7\x6f\x7b\x4f\x54\xde\x5c\xda\xe8\x4d\x2d\xd6\x95\x69\x5b\x37\xb6\x26\x1d\x77\xb1\xdd\x0a\x6b\x5b\x41\x3b\x27\xb2\x3e\x8e\x17\xeb\x64\x25\x4d\xad\x81\x79\xae\x33\xd3\x75\x24\xdd\x6a\x5f\x65\x3e\xe6\xdd\x1f\x9b\x8b\x5b\xc7\x51\xab\xb5\x5e\x9b\xf2\x3b\xbb\x99\x79\x86\x99\xb8\x4a\x06\xe0\xee\x00\x8d\x7e\x14\xb3\x7f\x4a\xe7\xeb\x32\x0c\x36\xfe\x22\x3e\x4a\xfb\x6a\xf5\x41\x7b\x0d\x67\x4c\xc8\xc4\x3e\xde\xbd\x48\xfa\x04\xf7\xd9\x95\x7e\x14\xb3\x0f\x41\xa8\x72\x97\x15\x8e\x8c\x1c\xb9\x88\x9f\x3e\x69\x1f\xe3\xce\xd7\xd7\x8b\xcc\xd6\xf3\xe0\x82\x0f\xd9\x35\xda\x0c\xc8\xd5\xfe\x70\x1f\xd0\x53\x40\x70\xc9\x78\x82\x4b\x9a\x8d\xae\xaa\x00\x93\xfe\x36\xf3\x43\x86\x9a\x34\x6b\xa7\x8a\x70\x93\xfe\x16\x7c\x5b\x03\x4f\x9a\x35\xe1\x61\xf0\xc9\x73\x97\xd3\x42\xee\x4c\xf0\xc4\x91\x44\xef\xd3\x5a\xae\x37\x4d\x51\xde\xa8\x63\x26\x72\x97\x28\x49\x73\x35\x0b\xf9\xd6\xc8\x1a\x20\xdb\xb5\x32\x7c\x61\x3f\xf7\x75\xef\x09\x0f\x13\x60\x3b\x4f\xba\x37\x0e\xb7\x30\x59\xf9\xd3\x9d\x41\x5a\xb7\xf5\xa8\x80\x8e\xf8\x52\xa5\xe1\x1c\x04\x71\x10\xc4\x31\xad\x20\x0e\xc2\x1e\x08\x7b\x20\xec\x81\xb0\x07\xc2\x1e\x06\x0f\x7b\x80\xa7\x83\x58\x41\xac\x20\x56\x10\x2b\x88\x15\xc4\x0a\x62\x2d\x5d\x04\xa0\x1e\x50\x0f\xa8\x07\xd4\x03\xea\x81\x88\x68\x15\x5e\x99\x6b\x27\x7f\xe2\x8f\x9f\x1f\x3a\xaf\xcf\x25\x2b\xb5\x9e\xb0\x0c\xa4\x21\xda\x2d\x55\x69\x21\x2b\x3a\x16\xa9\x91\x8b\xbd\x9e\xbc\x5c\x05\x51\xc7\x08\xc9\x18\xf4\x42\x1e\x47\x8b\xcc\x59\xa7\xe5\x45\xed\xf2\x2c\x2b\xea\x62\x9f\x74\x52\xe9\x24\xfb\x92\x0c\xa0\x7c\xd7\x5b\x9b\x01\xa4\xb7\xf2\xbf\x48\x5f\x2e\x55\x68\x9c\x52\xa6\x0a\x7c\x14\x05\x8e\xab\x77\x59\x99\xfb\x47\x6a\x2f\x5e\x10\x8a\x78\x13\xbe\x7e\xca\xb6\x9d\x8f\xf2\x6b\xdc\x8a\xeb\x2f\x2a\x52\xa9\x29\x95\xcf\x73\x49\xf3\x61\xb4\x29\xa9\x5d\x3d\x41\x28\x6e\x5e\xff\x10\x1f\x1b\x4a\x47\xb3\x1d\x2f\xf0\x97\xc6\x70\xd2\xee\x98\x78\xdf\x2c\x5d\xdf\xcc\x5b\xda\xdd\xb1\x3d\x56\xfb\xbb\x13\xf2\x24\xee\x9f\x84\x5e\x6d\xde\x5c\x5f\x2f\x03\x4f\xfa\xcb\x79\x10\x2e\xaf\x57\x5f\x97\xd7\x1b\xdf\x75\x82\x85\xba\xfe\xdb\xc7\xe8\x2e\xbe\x4a\x6b\xff\x69\xd2\x38\x5d\x76\x8f\x55\x96\xd6\xb8\x0d\xa0\xa6\xc6\xcf\xeb\x06\xc6\xcf\x5b\xe3\x10\xb2\xf1\xe6\x5f\xd7\xde\xbc\x89\x70\xb5\xf1\xee\xa7\x6d\x77\x6a\x33\x66\xa4\x76\xe7\x85\xe8\x46\xe3\xe5\xfa\xbf\xf1\x8c\xf9\xbf\x9e\xa4\x5e\x8e\xb4\xef\x6a\xe4\x5d\x06\xb4\xef\x46\xa2\xa3\x81\x25\x97\xef\x64\x6b\x2d\x39\x32\x97\xcf\x28\x73\x99\x14\x2d\x52\xb4\x48\xd1\x22\x45\x8b\x4d\x68\xd9\x5b\x64\x65\x92\xc3\x30\x1b\x39\x72\x34\x8e\xc8\xd1\x18\xeb\x5e\x2e\xf3\xab\x77\x9e\x99\xa1\x59\xfd\xae\x71\x76\xd4\x06\x2c\x3e\xbf\xe5\xf6\x8b\xd9\x08\xbf\x4c\xcb\xb7\x39\x7e\x0d\xc6\xfe\x2a\xb7\xc0\x81\xda\x7b\x9f\x6c\x83\xeb\x6e\xc6\x58\x20\x2b\xb9\xfe\x52\x8c\xff\xf4\xff\x3b\xdf\x54\x10\xa9\x13\xab\xc6\x8f\x17\x73\xea\x28\x83\x56\x3a\xe4\x57\xfa\xdc\xbf\x57\xcf\x70\x8f\x2a\x5c\xaa\x46\x47\x46\xeb\x50\xae\xd5\xd2\x75\xae\x9a\x9f\x13\x7f\x7e\x4a\x8e\xd4\x73\x69\x93\x05\x43\x87\xa5\xe9\xac\x17\x13\x11\xf3\x9c\xc5\x63\x55\x52\x00\x77\x70\xe7\xdd\xa9\xe0\x6c\x85\xb1\x76\xb7\x1b\xb0\x22\x70\xe9\x4d\xdc\xa5\x77\x3e\x70\x76\x2f\xae\x3c\x7d\xb9\x4c\xee\xc3\xca\x84\x82\x26\xf9\xb4\x2f\x4a\xe6\xa7\x97\xda\xa1\x61\x12\x1e\xa5\xa7\xcf\xf4\x03\xff\xca\x9c\xad\x8f\xd0\x3e\xc5\x48\xbc\xf8\x29\x0a\xfc\x3b\x93\x56\xfa\x4b\x3c\x13\x26\x9f\x3f\xa5\xf3\xe3\xf6\x8f\x2f\x6d\xa2\xc6\xcd\xc7\xcd\x87\x20\x74\xb4\xd3\x75\x19\xe8\xce\x0f\xc4\xe7\xcb\x87\xf8\x6f\x9f\x2f\xc5\xed\x4e\x6b\xce\xc5\xc7\x75\xe2\x21\xdd\x44\xdb\x14\xba\x2b\xe9\xe8\x0e\xd0\x89\x89\x9e\xeb\x24\x3e\x1f\xe5\x2d\x22\x11\x7c\x4f\xfa\xd6\x24\xee\xad\x54\xb0\xf2\xd4\x5c\x98\xdf\xd4\xf9\xc8\xe9\x98\xd2\xb1\xc2\x85\x1d\x91\xfd\x7c\x9b\xe6\x8d\x7f\x68\xba\x81\x8f\xec\x3d\xc6\xbf\xf7\x58\xed\xc5\xa5\x8e\x74\xf7\xb1\xe9\xdc\x91\xb0\xf2\xa4\xf3\x2c\x73\x30\xb9\xc4\x39\x19\x84\x44\xeb\x61\x10\x9e\x9f\x41\x68\x91\xdd\x85\x79\x90\x7d\x43\xb4\x5e\x83\x9b\x9f\xb8\x6d\xb3\x19\xad\x5f\xf5\x42\x3c\x2f\xdc\x6d\xf0\x5a\x66\xed\xa3\xdc\x8a\x8a\x98\xb5\x31\x8d\x10\xbe\x42\xf8\xca\x7c\x65\x81\xf0\xd5\xa4\xa3\x2e\x91\xf1\x42\xc6\x0b\x19\x2f\x64\xbc\x90\xf1\x2a\x5a\x4a\xa8\x5e\x86\x37\x04\xb5\x35\x72\x00\xce\x39\x07\x00\x69\x3d\xa4\xf5\x90\xd6\x43\x5a\x0f\x69\x3d\xa4\xf5\x90\xd6\x23\x35\x8e\xd4\x38\x52\xe3\x48\x8d\xdb\x1f\x91\x54\x2f\x43\xc7\xf3\xe8\xd1\x85\x8e\x27\x3a\x9e\xe8\x78\x4e\x3f\x5e\x85\xcc\xd8\x11\x56\x2f\xb3\x2a\x39\xb6\x71\xd9\xb2\x8a\xd8\x8d\x86\xf5\xca\x88\xd7\x20\x5e\x63\xd4\xf1\x1a\x44\x38\x10\xe1\x40\x84\x03\x11\x0e\x44\x38\x0c\x1e\xe1\x00\x3a\x87\xa6\x42\x53\xa1\xa9\xd0\x54\x68\x2a\x34\x15\x9a\x5a\xba\x08\x00\x38\x00\x1c\x00\x0e\x00\x07\x80\x83\x42\x65\xad\x92\x67\xa9\x50\xb6\xb6\xa6\x42\xd9\xb3\xd4\x40\x28\x4d\xd6\x71\x69\xb2\x0a\x22\xd4\xb8\x26\xd9\x84\xe5\x4d\xd0\x35\x39\x9f\x4c\x1e\x74\x4d\xd0\x35\x29\xb8\x19\xfb\xad\x9b\x71\x0a\x9a\xd8\x2d\x57\xff\xec\xdb\x9e\xb6\x19\x39\x7c\xc1\xb1\x21\xa4\x57\x06\x2c\x31\xd6\x5e\x75\x65\x08\x3b\x6d\x24\xf2\x16\x18\x66\xf9\x4e\xb6\xd6\x30\x23\xa1\xf8\x8c\x12\x8a\xc9\x9c\x22\x73\x8a\xcc\x29\x32\xa7\xd8\x53\x96\xbd\x45\x56\xe6\x1e\x50\x54\xcc\xe2\xdd\x9a\x0d\x45\xc5\xac\x4a\x98\xa8\xae\x26\x56\xb1\xd7\x6a\x58\x46\xec\x92\x89\x07\xff\xca\xa8\x0b\x87\xf5\x4c\xe9\x4a\x2a\x86\x15\xf1\x38\x4a\x85\x51\x2a\xac\xf4\x9c\x13\x97\x0a\xab\x58\x19\x9a\xd6\x08\x1b\x3f\x2c\xa5\x38\x18\xae\xb9\xf3\x63\xa6\x14\x07\xeb\x72\xdc\x50\x1c\x0c\x8f\x06\x1b\x8b\xf3\xac\x0a\xf6\xac\xad\x45\xef\xe5\xc0\x2a\x9d\x01\x4d\xeb\x80\x8d\xdf\xe8\x23\x42\x0e\x6b\xef\x8c\xac\x3d\x8b\x8c\x2a\xd6\xfe\xec\x1b\x22\xe4\x0a\xef\x7a\xe2\x16\xcb\xd0\xb5\xbe\xfa\x8a\x34\x8b\x27\x92\x68\x25\x9d\x34\xce\x4c\x7f\xfe\xdf\x75\x18\x78\xea\xde\x94\x1b\x1b\xa6\xf6\x57\xb3\xa2\xa8\x4d\x6b\x7f\xfd\x9a\x3e\xd9\xe2\x99\x05\x52\x51\x95\x42\x55\xca\x7c\x65\x81\xaa\xd4\xa4\xc3\x24\xd1\xc8\x42\x23\x0b\x8d\x2c\x34\xb2\xd0\xc8\x2a\x5a\x4a\xa8\x02\x86\x67\x04\x29\x33\x82\xf6\xcf\x39\x68\x1f\xdd\x3a\x74\xeb\xd0\xad\x43\xb7\x0e\xdd\x3a\x74\xeb\xd0\xad\x23\x97\x8d\x5c\x36\x72\xd9\xc8\x65\xdb\x1f\x91\x54\x01\x43\x24\xf3\xe8\xd1\x85\x48\x26\x22\x99\x88\x64\x4e\x3f\x76\x85\x54\xd6\xb1\x54\x01\x2b\x8e\x5b\x18\x3e\xa9\xb5\xba\x0a\x58\xb3\x28\x8e\xaa\x2a\x60\x44\x6e\x10\xb9\x31\xbd\xc8\x0d\x62\x1d\x88\x75\x20\xd6\x81\x58\x07\x62\x1d\x06\x8f\x75\x00\xa2\xc3\x55\xe1\xaa\x70\x55\xb8\x2a\x5c\x15\xae\x0a\x57\x2d\x5d\x04\x40\x1d\xa0\x0e\x50\x07\xa8\x03\xd4\x41\x3d\xb0\xe6\x99\xb5\x39\xaf\x35\xf5\xc0\xd6\xc3\xd6\x03\xeb\x88\xa1\xb4\x50\x1a\x4c\xec\x27\x23\x5c\xe0\x2f\x44\x7c\xcf\x22\x72\x82\x95\x7a\x25\xa2\x8d\xa3\x17\x31\x3d\xf7\x2b\xf9\x68\x26\xae\x55\x18\x68\x7b\x6d\xf7\x46\x9b\x88\x11\x6a\x5a\xb2\xfb\x35\x8a\x84\x75\x4f\x93\x7c\xea\xa5\x10\x5a\x33\x28\x56\x5d\x08\xad\x33\x2c\x66\xb3\xe0\x4b\xfe\xd1\x9a\xcd\x9b\xa4\x35\x4d\x20\xad\x09\xc1\x17\x04\x5f\x0a\x6e\xc6\x7e\x03\x6f\x44\x82\x2f\xad\xee\x7a\xf8\x92\x68\x2d\x6e\x7b\xda\x96\xf4\x40\x25\xd1\x9e\x67\x49\x5f\x88\xd3\x08\xd5\xf4\x5d\x29\xad\x0b\x8d\x9a\x81\x0d\xb9\x91\x88\x81\x60\xb9\xe5\x3b\xd9\x5a\xcb\x8d\xf4\xeb\x33\x4a\xbf\x26\xcf\x8c\x3c\x33\xf2\xcc\xc8\x33\x63\xd3\x59\xf6\x16\x59\x99\xa9\x41\xcd\x34\x8b\xb7\x73\x83\xd5\x4c\xb3\x35\xbd\xa4\xa0\x66\x5a\xb3\x5d\x57\x55\xcd\xb4\xfa\x3d\x17\x53\x10\xae\x98\x71\x54\x4f\x1b\x8e\x69\xe6\xab\xa7\x95\xde\xc5\x98\xaa\xa7\x01\x69\x47\x07\x69\x29\x1b\xd7\x6a\x71\xac\x2c\x1b\x37\x51\xb4\x4c\x01\x39\xfc\x94\xe7\x47\x98\x29\x20\xd7\xe5\xb8\xa1\x80\x1c\xee\x1d\xf6\x56\x67\x54\x40\xae\xab\xdd\x55\x3f\x05\xe4\x9a\x7a\x46\x2a\x0b\xc8\x4d\xd4\xfc\x23\xb2\x10\xbb\xef\x8c\xec\x3e\x8b\xcc\x2b\xac\x80\xec\x1b\x22\x0b\x0b\xef\x7a\xe2\xb6\xcb\x20\xa5\xe4\xec\x8a\xd0\x1b\xae\x86\x5c\xeb\xc0\xbc\xb2\xe2\x71\x6d\x4c\x21\xb4\xc7\xd0\x1e\x33\x5f\x59\xa0\x3d\x36\xe9\x40\x51\x94\xd4\x50\x52\x43\x49\x0d\x25\x35\x94\xd4\x8a\x96\x12\xaa\xc6\xe1\x04\x41\xf0\x8e\xb4\x85\x73\x4e\x5b\x40\xdd\x10\x75\x43\xd4\x0d\x51\x37\x44\xdd\x10\x75\x43\xd4\x0d\xc9\xe6\x23\x9b\x8f\x6c\x3e\xb2\xf9\xf6\x47\x24\x55\xe3\x90\x52\x3d\x7a\x74\x21\xa5\x8a\x94\x2a\x52\xaa\xd3\x0f\x53\x21\x99\x77\x4c\x55\xe3\xac\xca\xe7\xad\x2f\x17\x57\x11\xb0\xd1\xbc\x4e\x1c\x41\x1a\x04\x69\x8c\x3a\x48\x83\xb0\x06\xc2\x1a\x08\x6b\x20\xac\x81\xb0\x86\xc1\xc3\x1a\xe0\xe5\x20\x54\x10\x2a\x08\x15\x84\x0a\x42\x05\xa1\x82\x50\x4b\x17\x01\xa8\x06\x54\x03\xaa\x01\xd5\x80\x6a\x50\x20\xee\xb8\x7c\x59\x2a\xc3\xad\x87\xaf\x0c\xf7\x2c\x81\x0f\x4a\xc2\x9d\x81\xda\xe0\x69\x4b\xc2\x55\x80\xaf\x63\x6a\xc1\x4d\x51\xaa\x05\x8d\x96\xf3\x49\x4f\x42\xa3\x05\x8d\x96\x82\x9b\xb1\xd8\x7a\x1b\x99\x38\x8b\xdd\x85\x02\xda\xdf\xef\xb4\x0d\xe3\x01\x0b\xbd\xd9\xa0\x1f\x33\x44\x69\xb7\xd6\xd2\x31\x43\x19\x64\x23\xd1\xe8\xc0\x10\xcb\x77\xb2\xb5\x86\x18\x59\xd1\x67\x94\x15\x4d\xfa\x17\xe9\x5f\xa4\x7f\x91\xfe\xc5\x1e\xb2\xec\x2d\xb2\x32\x81\x82\x62\x6e\x16\x6f\xd9\x06\x2d\xe6\x66\x55\xd6\x47\x49\x15\xb7\x8a\x0d\x56\xf3\xf2\x6d\x97\xcc\x36\xb8\x54\x46\x56\xb0\xad\x67\xd4\xb8\x5f\xa9\xed\x78\x80\x68\x0b\x3b\x04\x9a\x8e\x0e\x9a\x52\xa2\xed\xb8\x95\xef\x88\xda\x6c\xe3\x47\xbd\x14\x65\xc3\xdf\x78\x7e\xe0\x97\xa2\x6c\x5d\x8e\x1b\x8a\xb2\xe1\xa6\x61\xe3\x74\xd8\x8c\xd3\xac\xc6\xf6\xac\xad\x53\x7f\x65\xd8\x2a\x5d\x1b\x47\xd4\x5f\x1b\xbf\x89\x47\x34\x1f\x46\xdd\x39\x18\x75\x16\xd9\x4e\x2c\xf1\xd9\x37\x44\xf3\x25\x57\x9e\xb8\x45\x32\x58\x8d\xb5\xbe\x82\xe3\xc2\xc0\x53\xf7\xa6\x9e\xdb\x4e\x31\xb5\x01\x14\xba\xea\x4b\xcc\x56\x09\x75\xe5\xae\xf0\x21\x08\x6f\x3d\x2f\x33\x78\x22\x1b\x50\x4e\xe9\x09\xe7\x9e\xa3\x96\xf4\x19\xa9\x6a\x16\xa4\xaa\x75\x51\x92\xfa\x78\x8c\x84\x22\xde\x84\x15\xf1\xea\x31\x51\x9d\x1a\x5e\xa5\x5b\xaa\x03\x04\x86\x06\x1e\x1a\x78\x68\xe0\xa1\x81\x37\x35\x0d\xbc\xfa\x99\xb7\x50\xff\xee\xc4\x01\x07\xbd\xa9\xde\xd5\x3f\x7e\xb9\xe2\x9d\xcd\x6d\x70\x8c\xce\x5d\x7d\x1b\x94\x6b\xdc\x9d\xb8\x0d\x50\xb6\x43\xd9\x0e\x65\x3b\x94\xed\x50\xb6\x3b\x99\xb2\x5d\x83\xd9\xff\x40\xd5\xae\x32\x2f\xec\x8c\xe2\x0d\x9b\x3d\x0d\xca\x7c\x23\x53\xe6\xab\x1f\x44\x55\xaa\x7c\x27\x1e\x4d\x83\x6a\xf1\xd5\xb7\x4c\x85\x0e\xdf\xa9\x67\x0d\x5b\xd5\xf7\xea\x1b\xad\xc0\xa3\xdf\xda\x9d\x95\x7c\xfa\xab\x35\xe7\x19\x1a\xf0\x3c\x83\xec\x80\x74\xf6\x5b\xdf\x62\xa4\x03\xcb\xb1\x80\xe5\x00\x71\x80\x38\x40\x1c\x20\x0e\x10\x07\x88\x03\xc4\x01\xe2\x74\x39\xdb\x02\x71\x80\x38\x40\x1c\x20\x0e\x10\x07\x88\x03\xc4\x01\xe2\x00\x71\x80\x38\x40\x1c\x20\x0e\x10\xa7\xb6\xad\x9e\x05\x71\xf4\x8d\x5c\x3b\xde\x26\x5a\xab\xb0\xb7\xcc\x9d\xc4\x10\xf2\x17\xee\x37\x77\xb1\x91\x5e\xbe\xff\x64\xb6\xd9\x79\x6b\xee\x2a\x97\x46\x30\xcf\x89\xb7\xbe\xc9\xcc\xd2\x99\xbe\xdc\x6c\xeb\xe3\xda\x71\x5a\x64\x58\x48\xb8\x7e\xb4\x56\x72\x67\xfd\xd8\x87\x46\xdf\xab\x24\x6d\x0e\xef\xe7\xe7\x3d\x67\x3c\xdc\xc8\x56\xb1\x4a\x3d\x55\xbc\x8f\x37\x43\x60\xa4\x6c\xa0\x0f\xc4\x92\x0e\xdf\x23\xc8\x12\x64\x09\xb2\x04\x59\x82\x2c\x41\x96\x20\x4b\x90\xa5\x2e\x67\x5b\xc8\x12\x64\x09\xb2\x04\x59\x82\x2c\x41\x96\x20\x4b\x90\x25\xc8\x12\x64\x09\xb2\x04\x59\x82\x2c\xd5\xb6\xd5\x69\xc8\x52\x41\x81\xd4\x13\x01\xa6\x3c\x55\xf2\xd3\xf5\x2f\x4d\x1f\x3a\x11\x5d\x7a\xb5\x35\x7c\xb5\x71\x9f\x18\x49\xb1\xed\xbc\xb5\xe8\x67\x3b\x3b\xc1\xdc\xb5\x3b\x64\x53\x70\x29\xb8\xd4\x48\xb9\x14\x4c\x0a\x26\x05\x93\x82\x49\xc1\xa4\x60\x52\x30\x29\x98\x14\x4c\x0a\x26\x05\x93\x82\x49\xc1\xa4\x60\x52\x30\x29\x98\xd4\xd8\x99\x54\xbe\xca\x71\x9d\xe3\x61\x4c\x35\x8f\x61\x6d\xb0\x36\x58\x5b\xf1\x68\x82\xb5\x95\xbe\x67\xb0\xb6\xce\x59\x9b\x65\xe9\x5b\xd6\xe4\x6d\x91\xb0\x05\x18\x1b\x31\x18\x1b\x3e\x61\x0b\x2a\x06\x15\x83\x8a\x41\xc5\xa0\x62\x50\x31\xa8\x18\x54\xac\xcb\xd9\x16\x2a\x06\x15\x83\x8a\x41\xc5\xa0\x62\x50\x31\xa8\xd8\xd9\x51\x31\xe8\x11\xf4\x08\x7a\x54\x3c\x9a\xa0\x47\xa5\xef\x19\xf4\xa8\x7b\x7a\x64\x5f\x8a\xd6\x44\x72\xb3\x60\x4f\xb0\xa7\x91\xb2\x27\xb8\x13\xdc\x09\xee\x94\xbe\x6b\x70\x27\xb8\x13\xdc\x09\xee\x04\x77\x82\x3b\xc1\x9d\xe0\x4e\x70\x27\xb8\x13\xdc\x09\xee\x04\x77\x1a\x1d\x77\x2a\xc9\xc6\x22\x0d\x0b\x90\x06\x48\x03\xa4\x01\xd2\x00\x69\x47\x81\xb4\xf8\xb6\xa2\x95\x74\x52\x8c\xa6\x3f\xff\xef\xda\xb2\xe2\x5a\xd6\x54\xd5\xfa\x35\x6d\xa2\x05\x85\xb5\x60\x65\xd3\x60\x65\x03\xe5\x69\xa1\x5e\x08\x2f\x83\x97\xc1\xcb\xe0\x65\xf0\x32\x78\x19\xbc\xcc\x46\x56\x04\x2f\x83\x97\xc1\xcb\xe0\x65\xf0\x32\x78\x19\xbc\x6c\x8c\xbc\x2c\x79\x6a\x8d\xcd\xe2\xae\x94\x9b\xf5\x17\x11\x39\xc1\x4a\xbd\x12\xd1\xc6\xd1\x64\x40\xef\x57\x94\x7c\x34\x9e\xe2\x55\x18\xe8\x56\x3e\x1e\xa9\x69\xc7\x20\x5c\x0d\xae\x06\x57\x83\xab\xc1\xd5\xe0\x6a\xd5\x5c\xcd\x92\xbc\xb5\x89\xd4\x14\x2b\x24\x73\x50\x39\xa8\xdc\x48\xa9\x1c\x44\x0e\x22\x07\x91\x4b\xdf\x35\x88\x1c\x44\x0e\x22\x07\x91\x83\xc8\x41\xe4\x20\x72\x10\x39\x88\x1c\x44\x0e\x22\x07\x91\x83\xc8\x8d\x8e\xc8\xe5\x33\xd8\x26\x51\x48\x0c\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x4b\x10\xa3\x2d\x39\x7b\x36\x25\xeb\x91\xa5\x07\x0f\x1c\x31\x0f\x1c\x30\x4b\x0f\x18\x08\x0c\x04\x06\x02\x03\x81\x81\xc0\x40\x60\x20\x30\xb0\xcb\xd9\x16\x18\x08\x0c\x04\x06\x02\x03\x81\x81\xc0\x40\x60\xe0\xd9\xc1\x40\xd8\x19\xec\x0c\x76\x06\x3b\x83\x9d\xc1\xce\x6c\x61\x67\x16\xe5\xe5\x4d\x27\x21\x0f\xf2\x06\x79\x1b\x29\x79\x83\xba\x41\xdd\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x06\x75\x83\xba\x41\xdd\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x06\x75\x1b\x1f\x75\xdb\x4f\xc1\x23\xf7\x0e\x7e\x08\x3f\x84\x1f\xc2\x0f\xe1\x87\xf0\xc3\x26\xfc\x90\xfa\x78\xc5\xd0\x6f\xaf\x2a\xde\x87\x20\xbc\xf5\xbc\x8c\x04\x46\x50\x40\x28\xe0\x48\x29\x20\x55\xf2\x00\x82\x00\xc1\xdc\x81\x00\x41\x80\x20\x40\x10\x20\x08\x10\x04\x08\x02\x04\x01\x82\x00\x41\x80\x20\x40\x10\x20\x08\x10\x1c\x1f\x10\x84\x26\x41\x93\xa0\x49\xc5\xa3\x09\x9a\x54\xfa\x9e\x41\x93\xba\xa3\x49\xb6\x60\xa4\xe1\xf9\x11\xe0\xa8\xa8\x43\x01\x47\x80\x23\x52\xc8\x20\x46\x10\xa3\xb2\xe1\x07\x31\x82\x18\x41\x8c\x20\x46\x10\xa3\xdd\xe9\xd6\x42\x5a\x02\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\xb4\xfb\x34\x10\x23\x88\x11\xc4\x08\x62\x74\x86\xc4\x28\x72\xbe\xa8\xc5\xc6\x8b\x37\x00\x09\x29\x6a\x85\x85\x4e\x8d\x42\x9a\x20\xa7\xa5\x5a\x0b\xd7\x7f\x08\xc2\xc7\x6c\x6c\x4b\x61\xbc\xd9\xe5\x70\x68\xa9\xd6\x9f\xb2\x26\xb8\xbd\xfb\xf8\xaf\xfd\xe3\x87\x82\x3f\xa3\x65\x32\x59\x23\x8e\x9c\xc8\x6c\xdf\x8c\xdc\x39\x17\xf9\xdf\xad\x7b\x93\xbe\xdd\x8c\xfb\x65\xda\xd9\x2c\x99\x39\xb2\xe9\x9b\xf4\xe7\xcd\xed\xdd\xc7\xdf\x8b\xce\xe2\x7d\x3a\xfe\x7d\x4a\x1b\x52\x57\x14\x9c\xcc\x6b\xf5\x7f\xdf\x6e\x9e\xf1\x66\xad\x42\x37\x08\xdd\xf5\x93\xe3\xc9\x68\xb7\x03\x2f\xcd\x16\xb4\xdb\x78\x06\x73\x4d\xe1\x04\x9e\xa7\x9c\x74\x79\xb9\x4b\xee\xe1\x6d\x7c\x0f\x15\xaf\x86\x39\x39\xff\x76\xbc\xcd\xae\x53\x7a\x8d\x12\x1e\x2a\x6a\xfa\x14\x26\x3a\x61\x26\x5a\x61\x38\x1e\xc1\x45\x6b\x4c\xc9\x6a\x63\x72\x6f\x9e\xf9\x6f\xd1\xdd\xdd\x07\x8b\xd2\x9b\x2b\xfa\xee\x24\xf3\xe6\x3b\xfd\xd2\xfd\xa6\x5f\x8c\xa8\xe1\xac\x59\xfd\x6a\xc1\x7b\xe1\xbd\xf0\x5e\x78\xef\xd4\x78\x6f\xb3\x55\xa5\x90\xf9\x56\xbb\xb6\x9e\xb3\x92\x14\x39\x4c\x13\x4f\xf7\x2b\x1d\x57\xea\xc4\x23\xca\x8c\x83\x9d\x67\xcb\xdb\x11\xf7\x4a\xac\xe2\xd6\x8a\xd6\xf1\x02\x7d\xeb\x0b\xd7\x37\x33\x4b\x10\x8a\x8d\x9f\x4d\x4e\x0b\xb1\x08\x9f\x7e\xdf\xf8\x62\xe1\x86\xb1\x55\xf6\x4d\x65\x23\x5e\x7b\x0a\x7d\x21\xfd\xe4\x95\x4f\xc7\x46\xd2\xc0\xe2\x61\x13\xea\xb7\x6c\x15\x06\x4e\x6c\x37\x18\x67\x6a\x8e\xc5\xcd\xc5\x9f\xfa\x17\x75\x6f\xe9\xb1\xf3\x46\x5c\x89\x5b\xcf\x7b\xa3\xf1\xc0\x22\x9e\xa5\x37\x7e\xdc\xf1\x4b\x15\x65\x43\x32\xb9\x9c\x5a\xb4\xe8\x28\xf3\x2c\xc3\x74\x53\x6f\x90\xbe\x59\x53\x94\x83\xfa\xde\x5a\xe4\x8f\xbc\xbb\xd5\xf5\x45\x64\xbc\xa0\xe2\x5e\x3d\x18\xcb\x39\x03\x3a\x5b\x53\x22\x99\xbd\xf4\xd0\xd9\x28\xb3\x38\xdc\x2b\xe1\x07\xfe\x95\xaf\x96\x52\x0f\xd0\xc4\x61\x3a\x17\x7f\x64\x0b\xb6\x81\xbb\xd9\xab\x91\x6c\x59\xdc\xc7\x47\xb5\x70\xe5\x5a\x79\x4f\x5b\x93\x76\xbb\xe4\xba\xde\xab\xc4\x21\xaa\x1b\x5d\x2c\x43\xe9\xe8\xb7\xc6\x0d\x16\x99\x41\xb0\x5d\xb4\xf5\x7e\x21\x1d\xa5\x9b\x28\xbe\xc9\x7c\x77\xc9\xf8\xcc\xf4\x81\x92\x1f\x79\x30\x73\x60\x7a\x89\xb9\xb9\xcf\x47\x25\xfd\xc2\x7b\x6c\xd1\xcd\xfa\x9e\xef\xf4\x2d\x17\x39\x99\x6b\xdc\xcc\xb6\x0c\xff\x63\xe2\x33\x9a\xb5\x4b\x79\x8c\x46\x6f\xc3\x9f\x68\x0d\xa2\x35\x88\xd6\x20\x5a\x83\x68\x8d\x93\x45\x6b\x34\x5c\x0b\x0e\x22\x36\xfa\x5b\x16\xdf\xe5\x12\xbc\x56\x9e\x92\x91\xca\xa6\xa0\xbb\x30\x58\xc9\xa5\xb6\x8e\xee\x02\xcf\x75\x9e\x76\xfc\x60\xe9\xa0\xdb\x66\x88\xc5\xc3\xee\x66\xfe\x8f\xb9\xf8\x64\xe6\x33\x63\xba\xac\x94\x1f\xbf\x2c\xdb\x35\x55\x89\x20\x5c\x7d\x91\x7e\xea\x97\x0b\x37\xea\xfa\x41\x7a\xe9\x5e\xf9\xf3\xa5\xf9\xfa\xf3\xa5\x78\x70\x7d\xe9\xb9\xff\x49\x17\x92\x7b\x25\xe4\x62\xa1\x47\xe7\xb5\xe1\xbb\x8b\xed\x36\xcc\x5c\x7e\x16\x6d\x4f\x32\xfb\xd3\xb9\x78\xef\xea\xc9\x31\x77\xeb\x41\x78\xf8\x6c\x7a\xfa\x31\xae\x22\xb3\x3d\xd6\x7b\x94\x60\xfd\xa5\x4d\x87\x9a\x27\x78\x97\x3e\x7b\x6f\x2e\xbe\xc3\x8d\x99\x7e\xf4\xf8\x85\xfd\x12\x7c\x17\x4b\x19\xde\xcb\xe5\x8e\xa7\x3c\xdb\xd4\xa8\xf0\x21\x08\x1f\xe3\x3e\x29\x6c\xaf\xdf\xf6\x9e\xa8\xbc\xb9\xb4\xd1\x9b\x5a\xac\x2b\xd3\xb6\x6e\x6c\x4d\x3a\xee\x62\xbb\x15\xd6\xb6\x82\x76\x4e\x64\x7d\x1c\x69\x46\xac\xbf\x4d\xad\x81\x79\xae\x33\xd3\x75\x24\xdd\x6a\x5f\x65\x3e\xe6\xdd\x1f\x9b\x8b\x5b\xc7\x51\xab\xb5\x5e\x9b\xf2\x3b\xbb\x99\x79\x86\x99\xb8\x4a\x06\xe0\xee\x00\x8d\x7e\x14\xb3\x7f\x4a\xe7\xeb\x32\x0c\x36\xfe\x22\x3e\x4a\xfb\x6a\xf5\x41\x7b\x0d\x67\x4c\xc8\xc4\x3e\xde\xbd\x48\xfa\x04\xf7\xd9\x95\x7e\x14\xb3\x0f\x41\xa8\x72\x97\x15\x8e\x8c\x1c\xb9\x88\x9f\x3e\x69\x1f\xe3\xce\xd7\xd7\x8b\xcc\xd6\xf3\xe0\x82\x0f\xd9\x35\xda\x0c\xc8\xd5\xfe\x70\x1f\xd0\x53\x40\x68\xd5\x78\x42\xab\x9a\x8d\xae\xaa\xf0\xaa\xfe\x36\xf3\x43\x06\x5a\x35\x6b\xa7\x8a\x60\xab\xfe\x16\x7c\x5b\xc3\xae\x9a\x35\xe1\x61\xe8\xd5\x73\x97\xd3\x42\xc2\x4c\x24\xc4\x91\x44\xef\xd3\x5a\xae\x37\x4d\x51\xde\xe8\x02\x20\x72\xa7\x95\x64\x77\x9b\xc5\x7b\x6b\x58\x75\x91\xe4\x7d\x10\x5b\x51\x9c\xdc\x5d\x16\xa5\xb0\x9f\xe5\x5d\x95\xe0\xdd\xb9\xc6\x84\x71\xa9\x85\xc9\xda\x9e\xda\xfe\x69\x39\xe3\xa6\xc1\x19\xf1\x55\xf2\xa1\x19\x04\x64\x10\x90\x31\x9d\x80\x0c\x42\x18\x08\x61\x20\x84\x81\x10\x06\x42\x18\x06\x0f\x61\x80\x8d\x83\x4b\xc1\xa5\xe0\x52\x70\x29\xb8\x14\x5c\x0a\x2e\x2d\x5d\x04\x20\x18\x10\x0c\x08\x06\x04\x03\x82\x81\x30\x6e\x15\x2a\x99\xe7\x9c\xf7\xdf\x6e\xe6\x3b\x8e\xeb\x29\xa7\x8a\xd6\x93\x92\xae\x24\x70\x7b\xa4\x23\x2d\xe4\x6f\xc7\x22\x89\x73\xb1\xd7\x6f\x97\xab\x20\xea\x18\x05\x19\x73\x5d\xc8\xc6\xd4\xc7\x9c\xd0\x29\xf7\x69\x97\xfb\x58\x51\xd1\xfd\x64\x93\x43\x27\xd9\x90\x64\xe4\xe4\xbb\xdd\xda\x8c\x1c\xbd\x1d\xff\x45\xfa\x72\xa9\x42\xe3\x58\x8a\xef\x2a\xde\xd5\x07\x8e\xab\x77\x4a\x99\x0b\x47\x6a\x4f\x5c\x10\x8a\x78\x23\xbd\x7e\xca\xb6\x8e\x8f\xf2\x6b\xdc\x8a\xeb\x2f\x2a\x52\xa9\x39\x94\xcf\x3b\x49\xf3\x53\xb4\x39\xa8\xdd\x35\x41\x28\x6e\x5e\xff\x10\x1f\x1b\x4a\x47\xf3\x19\x2f\xf0\x97\xc6\xf8\xd1\x2e\x95\x78\xef\x2b\x5d\xdf\xcc\x4e\xda\x65\xb1\x3d\x56\xfb\xac\x13\x7a\x24\xee\x9f\x84\x5e\x35\xde\x5c\x5f\x2f\x03\x4f\xfa\xcb\x79\x10\x2e\xaf\x57\x5f\x97\xd7\x1b\xdf\x75\x82\x85\xba\xfe\xdb\xc7\xe8\x2e\xbe\x4a\x6b\x1f\x68\xd2\x38\x5d\x76\x8f\x55\xd6\xd2\x78\x8d\x98\xa6\x06\xcc\xeb\x06\x06\xcc\x5b\xe3\xd0\xb1\xed\xc6\x5f\xd7\xde\xb8\x89\x34\xb5\xed\xce\xa7\x67\x33\x6a\xa3\x64\x14\x36\xe3\x85\x68\x25\x91\x72\xfd\xdf\x78\xda\xfb\x5f\x4f\x4a\x29\xcd\x4d\xb1\x43\x75\x94\x81\x4c\xb1\x91\xc8\x50\x60\x78\xe5\x3b\xd9\x5a\xc3\x8b\xc4\xdf\x33\x4a\xfc\x25\xc3\x89\x0c\x27\x32\x9c\xc8\x70\x62\xcf\x58\xf6\x16\x59\x99\x23\x30\xcc\xfe\x8b\x14\x87\x9a\x14\x87\x71\x6c\xc3\x32\x77\x76\xe7\x89\x0d\x1a\x80\xef\x9a\x5f\x4d\x37\x53\xf1\xa9\xa7\xcc\x66\xc8\x19\x25\xea\xdf\x3a\x46\xe9\x3e\xfe\x24\x9d\xf5\x5c\x88\xf7\xf1\xff\xe9\xdf\x1f\xa5\xab\x7d\x7c\x91\x70\xbc\x4d\xb4\x56\xe1\x76\xa9\x31\xc1\x8c\xc2\x73\xbf\x2a\x31\xcb\x6a\x6e\xce\x62\x8b\x32\xb5\x82\xe6\xe2\xce\x93\xbe\x9f\xc4\x18\x68\x3b\x45\x7a\xc6\x34\xba\xf9\xa1\xcd\xdc\xad\xef\x71\x20\x0b\x22\x6b\xb4\xcc\x00\xbf\x4f\x9b\x2f\x7e\x52\xf1\xde\xb4\x58\xbc\x6a\xac\xa2\xb4\x75\x92\x30\x9e\x4d\xa4\x42\x1d\x7f\xb3\xb5\xa5\x9f\x4e\xdc\x50\xf1\xcd\x4c\x17\x1e\xdb\xbd\xb4\xe1\x9b\x2b\x5a\x16\xe2\x19\x76\x5c\x6b\x42\x0b\x9c\xab\xb9\x4c\xe2\x31\xa9\xb8\x05\xf3\x0a\xaf\xe4\xfa\x4b\x31\xb9\xd5\xff\xef\x7c\x53\x81\x18\x4f\x5c\x98\x62\xbc\x84\x5a\x87\x7f\xb4\x52\x6b\xbf\xd2\xe7\xfe\xbd\x7a\xea\x7a\x54\xe1\x52\x35\x3a\x32\x5a\x87\x72\xad\x96\xae\x73\xd5\xfc\x9c\xf8\xf3\x53\x72\xa4\x9e\x24\x9b\x18\x1d\x3a\x5e\x50\xa7\x23\x99\x50\xa5\x96\x06\x88\xfe\x55\x0b\x9c\xb9\xa7\xe2\xea\x15\xc6\xfb\xdd\x6e\xcc\x90\xc0\xc5\x3b\x71\x17\xef\xf9\xb0\xf5\xbd\xd0\xfe\xf4\xe5\x32\xe9\x27\x2b\x13\x8d\x9b\xa4\x34\xbf\x28\x99\x89\x5e\x6a\x07\x97\xc9\x39\x95\x9e\x3e\xd3\x0f\xfc\x2b\x73\xb6\x3e\x42\xfb\x98\x23\xf1\xe2\xa7\x28\xf0\xef\x4c\x66\xef\x2f\xf1\x9c\x97\x7c\xfe\x94\xce\x84\xdb\x3f\xbe\xb4\x09\xfa\x37\x1f\x37\x1f\x82\xd0\xd1\x4e\xf8\x65\xa0\x3b\x3f\x10\x9f\x2f\x1f\xe2\xbf\x7d\xbe\x14\xb7\x3b\xad\x39\x17\x1f\xd7\x89\xc7\x5c\x6f\x04\x92\x17\xf5\x4a\x3a\xba\x03\x74\x6e\xa8\xe7\x3a\x89\x0f\x50\xef\x1b\x82\xef\x49\xdf\x9a\xdc\xc9\x95\x0a\x56\x9e\x9a\x0b\xf3\x9b\x3a\x25\x3c\x1d\x53\x3a\x5c\xbb\xb0\x23\xb2\x9f\x6f\xd3\xbc\xf1\x0f\xb1\x7d\x30\x5f\xb0\x7d\xb0\x61\xfb\xb0\xda\x0b\x05\x1e\xc5\x06\x62\xd3\xb9\x53\x69\xe5\x49\xa7\xad\x59\x97\x9c\x3d\x61\xc3\x8e\x80\x49\x8c\xba\xf3\x32\xea\x2c\xb2\x9d\x58\xe2\xb3\x6f\x08\x98\x3c\x2f\xdb\x64\x33\x12\xd7\xe6\x85\x68\x16\x75\xa8\x33\xa7\xaa\xca\xb3\x75\x8e\xcb\x92\xbc\x72\x7f\xe1\x7e\x73\x17\x1b\xe9\xe5\x53\xf6\x64\xa6\x24\xb1\xf3\xe8\xf3\x5c\xc0\xcd\x9b\x2c\x54\x67\xa6\xaf\x34\xdb\xea\x0a\xed\x08\xc5\x64\x16\x91\x70\xfd\x68\xad\xe4\x8e\xc7\x72\xdf\x5e\xfa\x5e\xe9\x06\xfb\x79\x2f\x3f\x89\x44\x3a\x5b\xe3\x09\x74\x1e\xe8\xfb\x6f\xca\x3f\xe3\x6c\x3a\xdd\x85\xe7\x91\x52\x87\x58\xdf\x84\xc5\xfa\xea\x99\x52\x9d\x50\x5f\xfb\x12\xdc\xcd\x78\x19\xf2\x7c\xc8\xf3\x21\xcf\x87\x3c\xdf\xd4\xe4\xf9\xea\x67\xde\x42\x69\xbe\x13\x47\x27\xf4\x26\xc8\x57\xff\xf8\xe5\x62\x7c\x36\xb7\xc1\x31\x12\x7c\xf5\x6d\x50\x2e\xbf\x77\xe2\x36\x40\x74\x0f\xd1\x3d\x44\xf7\x10\xdd\x43\x74\xef\x64\xa2\x7b\x0d\x66\xff\x03\xc1\xbd\xca\xdc\xbd\x33\x0a\x4e\x6c\xf6\x34\x88\x06\x8e\x4c\x34\xb0\x7e\x10\x55\x09\x06\x9e\x78\x34\x0d\x2a\x13\x58\xdf\x32\x15\x12\x81\xa7\x9e\x35\x6c\x15\x06\xac\x6f\xb4\x02\x3f\x7e\x6b\x77\x56\xf2\xe9\xaf\x67\x41\xa1\x02\x41\x8a\x13\xb1\xa1\x3c\x10\xf2\xd3\xe5\xae\xb0\x50\x4c\x27\x60\xe8\xd5\xd6\xc4\xd5\x66\x7c\x62\x0e\xc5\x56\xf2\xd6\x76\x9f\xed\xec\xf9\x72\xd7\x6e\x8f\x95\x40\x4a\x20\xa5\x11\x21\x25\x70\x12\x38\x09\x9c\x04\x4e\x02\x27\x81\x93\xc0\x49\xe0\x24\x70\x12\x38\x09\x9c\x04\x4e\x02\x27\x81\x93\xc0\x49\xe0\xa4\x71\xe1\x24\xe4\x3b\x20\x64\x10\x32\x08\x19\x84\x0c\x42\x76\x3c\x21\xbb\x57\x6b\x79\x73\xdd\x0a\x85\x0d\x92\x0e\xb9\xd7\xe7\x4b\xb5\xde\x35\x5d\x4d\xf7\x56\x90\xac\xa5\x5a\xe7\x39\x96\x7e\xfe\xdb\xbb\x8f\xbf\x17\x9d\x4a\x22\xe8\x91\x88\x29\xd7\x90\x93\x2b\x04\xa6\x47\x4a\xee\xdc\x8b\xfc\xef\x37\x7d\xd1\x2a\xd2\x13\x4f\x58\x13\x21\xa7\x18\xbd\x9f\x90\x58\xf1\xa6\x1c\xd6\x47\xd0\xcf\xf0\x36\xbb\x58\xd7\x1a\x9f\x50\xab\x09\x53\xab\x66\x79\xfe\x75\xe4\xea\x84\xda\xa9\x93\xae\xdd\x01\x91\x83\xc8\x41\xe4\x20\x72\x53\x23\x72\xcd\x56\x95\x42\x2a\xd7\x9b\xb0\x0f\xfa\x4b\x8d\x3b\x6a\x48\xfd\xa5\xde\x30\xea\x11\x8a\x47\x85\x18\x91\x4a\x52\x54\x92\xb2\x6c\xf8\x1f\x43\xd0\x9b\xb5\x4b\x39\x45\xef\x6d\xf8\xc3\xd3\xe1\xe9\xf0\x74\x78\x3a\x3c\xfd\x64\x3c\xbd\xe1\x5a\x70\xc0\xd4\x29\xb0\x48\x81\x45\x0a\x2c\x52\x60\x71\x14\x05\x16\x8f\xf4\x14\x10\x29\x32\x9e\x48\x91\x66\xa3\xab\x2a\x5a\xa4\xbf\xcd\xfc\x90\x71\x23\xcd\xda\xa9\x22\x76\xa4\xbf\x05\xdf\xd6\x28\x92\x66\x4d\x78\x18\x49\x42\x11\x0c\x1b\x02\x23\x26\x58\x5f\x75\x3f\x1e\x22\x77\x6e\x65\x91\xd5\xad\x75\x65\x61\x1e\xee\xde\x43\xf5\x50\x73\xd5\x38\xd7\xc2\x64\x95\x4f\x77\x01\x85\x1a\x01\x15\xb1\x1a\xf1\x55\x0e\x22\x35\x88\xcf\x20\x3e\x63\x3a\xf1\x19\x44\x34\x10\xd1\x40\x44\x03\x11\x0d\x44\x34\x0c\x1e\xd1\x00\x2a\x87\x9e\x42\x4f\xa1\xa7\xd0\x53\xe8\x29\xf4\x14\x7a\x5a\xba\x08\x00\x34\x00\x1a\x00\x0d\x80\x06\x40\x03\xd5\xd2\x2a\x72\xb2\x5b\xa2\x53\x3b\xaf\xe7\x87\x85\x0b\xcf\x9b\x9e\x58\x5a\x08\xaf\x96\x98\xb4\x90\x2f\x1d\x8b\xfe\xc7\xc5\x5e\xe7\x5d\xae\x82\xa8\x63\x3c\x64\xac\x77\x21\x1b\x93\x20\x73\x42\xf7\x2c\xc8\xe6\xa2\xe9\x05\x13\x06\x95\xd3\xcf\x27\x73\x87\xca\xe9\x54\x4e\x2f\xb8\x99\xf1\x58\x37\x23\x2a\x9f\xfe\xac\xbb\x7f\x5d\x7b\xf7\x26\x36\xd5\xca\xdb\x9f\xa8\x59\xa9\x4d\x96\xf1\x98\x95\x17\xa2\xbd\xda\x4a\x41\xdd\x8f\x13\x8a\xae\x34\x37\xd9\x4a\x84\x56\x06\x32\xd9\x46\xa2\x68\x81\x6d\x96\xef\x64\x6b\x6d\x33\x72\x88\xcf\x28\x87\x98\x64\x29\x92\xa5\x48\x96\x22\x59\x8a\x6d\x65\xd9\x5b\x64\x65\xba\xc1\x30\x1b\x33\xb2\x25\x92\xe3\x2a\xb3\x25\x46\xb4\x35\xcb\xbc\xe0\x9d\xe7\x48\x68\x8c\xbe\x6b\x88\x35\xdd\x5b\xc5\xa7\x9e\x3c\x31\x22\x67\xa3\xa8\x7f\xeb\x70\xa7\xfb\xf8\x93\x74\xd6\x73\x21\xde\xc7\xff\xa7\x7f\x7f\x94\xae\xf6\x0a\x46\xc2\xf1\x36\xd1\x5a\x85\xdb\x95\xc7\xc4\x45\x0a\xcf\xfd\xaa\xc4\xec\x57\xf9\xa8\xa2\x95\x74\xd4\x2c\x36\x30\x53\xa3\x68\x2e\xee\x3c\xe9\xfb\x49\xb8\x82\x36\x5b\xa4\x67\x2c\xa5\x9b\x1f\xda\x4c\xe5\xfa\x1e\x07\x32\x28\xb2\x46\xcb\xec\xf1\xfb\xb4\xf9\xe2\x27\x15\xef\x4d\x8b\xc5\x8b\xc8\x2a\x4a\x5b\x27\x89\x08\xda\x44\x2a\xd4\xa1\x3c\x5b\xd3\xfa\xe9\xc4\x0d\x15\xdf\xcc\x74\x39\xb4\xdd\x2b\x1d\x3e\xbc\xe4\xb8\x92\xa5\x22\x9e\x70\x47\xb8\x4e\xb4\x20\xc3\x14\xbb\x38\x7c\xcc\xc1\x60\xb7\x0e\x2c\x69\x25\x15\x7f\xa5\xcf\xfd\x7b\xf5\x4c\xf6\xa8\xc2\xa5\x6a\x74\x64\xb4\x0e\xe5\x5a\x2d\x5d\xe7\xaa\xf9\x39\xf1\xe7\xa7\xe4\x48\x3d\x67\x36\x31\x44\x74\x24\xa2\x4e\x74\x32\x41\x50\x2d\x8d\x92\xd5\x7e\x35\xe5\x29\x22\xfa\x0a\xfb\xfe\x6e\x37\x24\x49\xe0\x05\x9e\xb8\x17\xf8\x7c\x08\xfd\x5e\xe6\x40\xfa\x72\x99\xec\x96\x95\x09\xf6\x4d\x32\xa6\x5f\x94\x4c\x47\x2f\xb5\x0f\xcc\xa4\xb4\x4a\x4f\x9f\xe9\x07\xfe\x95\x39\x5b\x1f\xa1\xdd\xd0\x91\x78\xf1\x53\x14\xf8\x77\x26\x71\xf8\x97\x78\xe2\x4b\x3e\x7f\x4a\xa7\xc3\xed\x1f\x5f\xda\x14\x3a\xd0\x7c\xdc\x7c\x08\x42\x47\xfb\xe9\x97\x81\xee\xfc\x40\x7c\xbe\x7c\x88\xff\xf6\xf9\x52\xdc\xee\xb4\xe6\x5c\x7c\x5c\x27\x4e\x75\xbd\x39\x48\x5e\xd4\x2b\xe9\xe8\x0e\xd0\xa9\xa7\x9e\xeb\x24\x6e\x42\xbd\x97\x08\xbe\x27\x7d\x6b\x52\x33\x57\x2a\x58\x79\x6a\x2e\xcc\x6f\xea\x8c\xf3\x74\x4c\xe9\x68\xf0\xc2\x8e\xc8\x7e\xbe\x4d\xf3\xc6\x3f\xc4\x96\xc2\x7c\xc1\x96\x62\xf7\xa1\x86\xde\x52\xac\x2c\x2d\x94\x5f\xbf\xa9\xd8\x74\xee\x7c\x5a\x79\xd2\x69\x6b\xea\x25\x67\x4f\xdd\xd8\x23\x1e\x13\x6b\xef\x0c\xad\x3d\x8b\x8c\x2a\xd6\xfe\xec\x1b\xe2\x31\x1b\xdd\xfd\x54\x2d\x97\xcd\x98\x9c\xa1\x17\xe2\x88\x78\x46\x9d\xca\x55\x55\x43\xae\x73\xf2\x96\x24\xba\xfb\x0b\xf7\x9b\xbb\xd8\x48\x2f\x9f\x43\x28\x33\x69\x8b\x9d\x46\x98\xe7\xa2\x78\xde\x64\xf1\x3f\x33\x7d\xa5\xd9\x56\xe8\x68\x47\xb9\x26\x33\x9a\x84\xeb\x47\x6b\x25\x77\x1c\x9d\xfb\x26\xd5\xf7\x7a\xef\xd9\xcf\x7b\xb9\x52\xa4\xf7\xd9\x1a\xa9\xa0\xb3\x53\xdf\x7f\x53\xfe\xb9\xa7\xf7\xe9\x7e\x3c\xa3\x1c\x3f\xc4\x04\x27\x2c\x26\x58\x4f\xa6\xea\x84\x04\xdb\x17\x40\x6e\x46\xdd\x90\x0f\x44\x3e\x10\xf9\x40\xe4\x03\xa7\x26\x1f\x58\x3f\xf3\x16\x4a\x07\x9e\x38\xc6\xa1\x37\xc1\xc0\xfa\xc7\x2f\x17\x0b\xb4\xb9\x0d\x8e\x91\x08\xac\x6f\x83\x72\x79\xc0\x13\xb7\x01\xa2\x80\x88\x02\x22\x0a\x88\x28\x20\xa2\x80\x27\x13\x05\x6c\x30\xfb\x1f\x08\x02\x56\xe6\x07\x9e\x51\x88\x63\xb3\xa7\x41\xd4\x70\x64\xa2\x86\xf5\x83\xa8\x4a\xd0\xf0\xc4\xa3\x69\x50\x19\xc3\xfa\x96\xa9\x90\x30\x3c\xf5\xac\x61\xab\x70\x61\x7d\xa3\x15\x78\xf4\x5b\xbb\xb3\x92\x4f\x7f\x3d\x1f\x14\x15\xc8\x5f\x9c\x88\x17\xe5\x21\x91\x9f\xae\x79\x85\x25\x6d\x3a\x81\x45\xaf\xb6\x76\xae\xb6\xe5\x13\x9b\x28\x36\x95\xb7\x06\xfc\x6c\x67\xe3\x97\xbb\xf6\x33\x51\x13\x98\x09\xcc\x34\x36\xcc\x04\x62\x02\x31\x81\x98\x40\x4c\x20\x26\x10\x13\x88\x09\xc4\x04\x62\x02\x31\x81\x98\x40\x4c\x20\x26\x10\x13\x88\x09\xc4\x34\x42\xc4\x84\x30\x08\xd4\x0c\x6a\x06\x35\x83\x9a\x41\xcd\x6a\xa8\x99\x79\x41\x53\x64\xd6\x0a\x87\x0d\x92\x3f\xb9\xd7\xd1\x4b\x2d\x71\xfb\x10\x84\x8f\xd9\xc0\x96\xc2\xb8\xe7\xcb\x81\xd6\x52\xad\x3f\x99\xe7\xbf\xbd\xfb\xf8\xaf\xfd\x83\x49\x17\x3d\x12\x2b\x65\x8d\x38\x76\xa8\x64\xc6\x44\xee\x84\x8b\xfc\x8f\x56\xbe\x40\xdf\x6e\xc6\xfd\x0e\xed\xec\xf9\xcc\xbc\xd8\xe8\x05\xfa\xf3\xe6\xf6\xee\xe3\xef\x45\xa7\xf0\x1a\x1d\xff\x1a\xa5\x0d\x39\x89\x42\x7f\x66\x80\xfc\xdf\xb7\x9b\xb6\x2f\x94\x13\xb9\x8b\xd0\xfd\x66\x60\x67\x1f\xc5\x4a\x72\x2a\xee\xc1\x83\x78\xfb\xe9\xe3\x3b\xfd\xf3\x15\x2f\x42\x52\xb4\x24\x7d\x17\xde\x66\x17\x28\x3c\xb9\xa5\xb0\x2e\x04\x77\xc2\x04\xb7\x99\x5e\x46\x1d\xc5\x3d\xa1\x60\xf1\xa4\xeb\xe7\x40\xa7\xa1\xd3\xd0\x69\xe8\xf4\xd4\xe8\x74\xb3\x55\xa5\x90\x50\xf7\x26\x90\x85\x8e\x59\xe3\x8e\x1a\x52\xc7\xac\xb7\x90\x82\x23\x94\xc3\x0a\x91\x3a\xd5\xdc\xa8\xe6\x66\xd9\xf0\x3f\x26\x9a\xa4\x59\xbb\x94\x47\x94\xf4\x36\xfc\x89\x2d\x21\xb6\x84\xd8\x12\x62\x4b\x88\x2d\x39\x59\x6c\x49\xc3\xb5\xe0\x20\xbe\x84\x22\xa7\x14\x39\xa5\xc8\x29\x45\x4e\x47\x51\xe4\xf4\x48\x4f\x01\x51\x53\xe3\x89\x9a\x6a\x36\xba\xaa\x22\xa7\xfa\xdb\xcc\x0f\x19\x43\xd5\xac\x9d\x2a\xe2\xa8\xfa\x5b\xf0\x6d\x8d\xa8\x6a\xd6\x84\x87\x51\x55\x54\x99\xb1\x21\xe6\x61\x22\x35\x8e\x8b\x42\x1d\x72\xe7\x54\xd6\x36\xde\x5a\x55\x9d\x24\xa4\xef\x44\x51\x14\x67\xa3\x17\xc5\x26\xec\x67\xa2\xf7\x5a\xd9\xd8\x38\xd2\xc2\x64\x45\x4f\x2d\xfe\x54\x2a\xa3\x49\x1c\x46\x7c\x85\x6d\x14\x06\xb1\x17\xc4\x5e\x4c\x22\xf6\x82\x68\x05\xa2\x15\x88\x56\x20\x5a\x81\x68\x85\xc1\xa3\x15\xc0\xe0\x90\x51\xc8\x28\x64\x14\x32\x0a\x19\x85\x8c\x42\x46\x4b\x17\x01\x60\x05\xb0\x02\x58\x01\xac\x00\x56\xa0\xd3\x5b\x45\x45\xe6\xa9\xab\xfe\xdb\xcd\x3c\xf3\x58\x4f\x36\xf1\xb3\x9e\x86\x74\x56\xf5\xb1\x07\x02\xd2\x42\x86\x77\x2c\x3a\x36\x17\x7b\x1d\x76\xb9\x0a\xa2\x8e\x71\x8f\xb1\xce\x85\x6c\x44\x76\xcc\xc1\xdd\xb0\x9d\x76\xa9\x8c\x15\xda\x47\xdd\x4f\x00\x9d\x64\x35\x92\x59\x93\xef\x6f\x6b\x33\x6b\xf2\x45\xf0\x8d\xd7\x48\xeb\x77\xc9\x28\x0a\x1c\x57\x6f\x83\x32\xff\x8c\xd4\x6e\xb6\x20\x14\xf1\x2e\x79\xfd\x94\xed\x0b\x1f\xe5\xd7\xb8\x15\xd7\x5f\x54\xa4\x52\x5b\x27\x9f\x3f\x92\xe6\x99\x68\x5b\x4f\xfb\x62\x82\x50\xdc\xbc\xfe\x21\x57\xf5\x5f\x3b\x98\x8d\x65\xa3\xfd\x25\xf1\xc6\x56\xba\xbe\x99\x8b\xb4\x3f\x62\x7b\xac\x76\x48\x27\x68\x48\xdc\x3f\x09\xbd\x32\xbc\xb9\xbe\x5e\x06\x9e\xf4\x97\xf3\x20\x5c\x5e\xaf\xbe\x2e\xaf\x37\xbe\xeb\x04\x0b\x75\xfd\xb7\x8f\xd1\x5d\x7c\x95\xd6\x0e\xce\xa4\x71\xba\xec\x1e\xab\x4c\xa1\x11\x5a\x28\x4d\xad\x93\xd7\x0d\xac\x93\xb7\xc6\x4d\x63\xcd\x1d\xbf\xae\xbd\x63\x13\x23\x6a\xcd\x2d\x4f\xcc\x04\xd4\xa6\x86\xdd\x26\xe0\x85\x38\x4a\xb8\xa4\xa0\xda\xcc\x09\xf5\x4b\x9a\x59\x54\xfb\x9a\x25\xfd\x5b\x54\x23\x11\x87\xc0\x8c\xca\x77\xb2\xb5\x66\x14\xe9\xb8\x67\x94\x8e\x4b\xde\x11\x79\x47\xe4\x1d\x91\x77\xc4\x0e\xb0\xec\x2d\xb2\x68\x07\xc8\x7e\xca\x86\x04\x03\xcb\x77\x54\x99\xa3\xb9\xf3\xb4\x02\x4d\xa2\x77\x8d\xab\x26\xfb\xa3\xf8\xb4\x93\xe4\x12\xe4\xec\x0c\xf5\x6f\x1d\x21\x74\x1f\x7f\x92\xce\x7a\x2e\xc4\xfb\xf8\xff\xf4\xef\x8f\xd2\xd5\x4e\xb8\x48\x38\xde\x26\x5a\xab\x70\xbb\x7a\x98\x50\x42\xe1\xb9\x5f\x95\x98\xfd\x2a\x1f\x55\xb4\x92\x8e\x9a\xc5\x46\x62\x6a\xd8\xcc\xc5\x9d\x27\x7d\x3f\x21\xfc\xda\xf4\x90\x9e\xb1\x76\x6e\x7e\x68\x33\x1d\xeb\x7b\x1c\xc8\x28\xc8\x1a\x2d\xb3\xa9\xef\xd3\xe6\x8b\x9f\x54\xbc\x37\x2d\x16\x2f\x04\xab\x28\x6d\x9d\x24\x88\x66\x13\xa9\x50\x47\xbf\x6c\xcd\xe3\xa7\x13\x37\x54\x7c\x33\xd3\x45\xb7\x13\x5e\xad\x26\x36\xf5\xc7\x93\xe9\x48\xe6\xfd\x16\x30\x35\x5f\xe7\xa4\xe4\xe7\xa9\x71\xd2\x07\x1b\xd6\x71\x16\xad\x84\xce\xaf\xf4\xb9\x7f\xaf\x9e\xa5\x1e\x55\xb8\x54\x8d\x8e\x8c\xd6\xa1\x5c\xab\xa5\xeb\x5c\x35\x3f\x27\xfe\xfc\x94\x1c\xa9\xe7\xc3\x26\x46\x85\x0e\xcc\xd3\x79\x3f\x26\x26\xa8\x85\x81\xa1\x7f\x71\x8a\x44\xbb\xc2\x3b\x7b\xb7\x1b\x91\x23\xf0\xca\x4e\xdc\x2b\x7b\x3e\x70\x7b\x2f\x70\x3e\x7d\xb9\x4c\x72\xc7\xca\xc4\xba\x26\x09\xc3\x2f\x4a\xa6\x9f\x97\xda\x27\x65\x32\x3a\xa5\xa7\xcf\xf4\x03\xff\xca\x9c\xad\x8f\xd0\x6e\xe1\x48\xbc\xf8\x29\x0a\xfc\x3b\x93\x37\xfb\x4b\x3c\xd1\x25\x9f\x3f\xa5\xd3\xdf\xf6\x8f\x2f\x6d\xa2\xee\xcd\xc7\xcd\x87\x20\x74\xb4\xdf\x7c\x19\xe8\xce\x0f\xc4\xe7\xcb\x87\xf8\x6f\x9f\x2f\xc5\xed\x4e\x6b\xce\xc5\xc7\x75\xe2\xe4\xd6\x86\x7e\xf2\xa2\x5e\x49\x47\x77\x80\xce\xbc\xf4\x5c\x27\x71\xdb\xe9\x7d\x41\xf0\x3d\xe9\x5b\x93\x99\xb8\x52\xc1\xca\x53\x73\x61\x7e\x53\x27\x5c\xa7\x63\x4a\x07\x43\x17\x76\x44\xf6\xf3\x6d\x9a\x37\xfe\x21\xb6\x07\xe6\x0b\xb6\x07\x03\x92\xf6\xbd\xf0\x5a\xbb\x37\x08\x9b\xce\x1d\x43\x2b\x4f\x3a\x6d\x4c\xb7\xe4\xcc\x29\x1a\x6f\x84\x23\x62\xb1\x9d\x89\xc5\x66\x91\x61\xc4\xfa\x9d\x7d\x43\x38\xe2\xa4\x2d\x8e\x8d\xed\x0e\xc9\x0b\xd1\x2c\xb4\xcf\x0f\x16\x6a\xb0\x8a\x64\xbf\x06\x0b\x75\x44\x6c\x5f\xbe\x1e\xd9\xfe\xa9\x28\x62\xa1\x88\x35\x3a\x45\xac\x49\x07\x9c\xa2\xef\x85\xbe\x17\xfa\x5e\xe8\x7b\xa1\xef\x55\xb4\x94\x50\x8d\x0c\x27\x05\x32\x6c\xa4\x3f\x9c\x73\xfa\x03\x9a\x7b\x68\xee\xa1\xb9\x87\xe6\x1e\x9a\x7b\x68\xee\xa1\xb9\x47\x56\x20\x59\x81\x64\x05\x92\x15\xb8\x3f\x22\xa9\x46\x86\xc0\xe7\xd1\xa3\x0b\x81\x4f\x04\x3e\x11\xf8\x9c\x7e\x18\x09\xd5\xc8\xac\xab\x46\xb6\x17\x99\x60\x77\x2d\xb2\x9a\x08\x8c\xfd\x4a\x64\x44\x5d\x10\x75\x31\xfa\xa8\x0b\xe2\x14\x88\x53\x20\x4e\x81\x38\x05\xe2\x14\x06\x8f\x53\x00\x80\xc3\x44\x61\xa2\x30\x51\x98\x28\x4c\x14\x26\x0a\x13\x2d\x5d\x04\xc0\x14\x60\x0a\x30\x05\x98\x02\x4c\x41\x1d\xb2\x23\x92\x54\x7f\x0d\x16\x8a\x2a\x64\xc5\x87\x59\x45\x3e\xa8\x41\xd6\x55\x0d\xb2\x1a\xa2\x73\x58\x81\xac\x2d\xd3\xb1\x5a\xf0\x43\x3f\x54\xb3\x97\x9e\x4c\x9a\x09\x64\xd2\x20\xf7\x81\xdc\x47\xc1\xcd\xd8\x6c\x97\x8c\x49\xec\xe3\xb8\xfb\xb5\x40\x29\xff\x98\x1b\x9e\x98\xd1\xd7\x73\xdd\xb1\xe3\x8d\xbe\x0b\x71\x84\x34\xc9\x00\x35\xc7\x8e\x54\x25\xe9\xdb\x82\x1a\x89\xfc\x03\x86\x53\xbe\x93\xad\x35\x9c\x48\xb8\x3d\xa3\x84\x5b\x32\x8b\xc8\x2c\x22\xb3\x88\xcc\x22\xf6\x7c\x65\x6f\x91\x35\x7b\x3e\xf6\x50\xc3\xa7\x0f\x58\xbd\x8b\xca\xdc\xc9\x3d\x55\x1a\xab\xd9\x15\xed\xd7\x19\xeb\x28\x53\x80\x2a\x63\x59\xc7\x37\x37\x05\xa8\x32\x96\xfc\x63\x8d\x62\xca\x3f\x38\xc7\x8a\x1a\x63\xfd\xa2\xd2\xbd\x0a\x63\x87\x3f\x4e\x7d\x31\xea\x8b\x0d\x53\x5f\xac\xc6\xac\x38\xa8\x2e\x36\x0d\x5a\x4d\x6d\x31\x3c\xb0\xe7\x87\xae\xa9\x2d\xd6\xe5\xb8\xa1\xb6\x18\x9b\x02\x36\x05\x05\xed\x38\xe2\xca\x62\xcf\xd9\x16\xf4\x56\x57\xac\xd6\x13\x74\x50\x55\x6c\x1a\x46\x1b\x21\x86\xd8\x69\x67\x61\xa7\x59\x64\x0e\xb1\x6a\x67\xdf\x10\x62\x98\x5d\x7a\x6a\x56\x46\xaf\xd5\xc4\x4e\x14\xb0\x97\xfc\xc5\xf1\x64\x14\x0d\x54\x51\x2c\x31\x39\xde\xc6\xb7\x70\x44\x00\x5f\x76\x8d\xb2\xf3\x51\xb9\x42\xe5\x6a\x74\x2a\x57\x93\x0e\x2e\x45\xb3\x0b\xcd\x2e\x34\xbb\xd0\xec\x42\xb3\xab\x68\x29\xa1\xb6\x18\xee\x0a\xa4\xd5\x48\x75\x38\xe7\x54\x07\x74\xf4\xd0\xd1\x43\x47\x0f\x1d\x3d\x74\xf4\xd0\xd1\x43\x47\x8f\x0c\x40\x32\x00\xc9\x00\x24\x03\x70\x7f\x44\x52\x5b\x0c\xd1\xce\xa3\x47\x17\xa2\x9d\x88\x76\x22\xda\x39\xfd\x80\x12\x6a\x8b\xd9\x55\x5b\xac\x24\x3c\xc1\xe2\x02\x63\x0d\x03\x32\x76\xaa\x8c\x11\x84\x41\x10\xc6\x64\x82\x30\x08\x5b\x20\x6c\x81\xb0\x05\xc2\x16\x08\x5b\x18\x3c\x6c\x01\x1e\x0e\x22\x05\x91\x82\x48\x41\xa4\x20\x52\x10\x29\x88\xb4\x74\x11\x80\x5a\x40\x2d\xa0\x16\x50\x0b\xa8\x05\xa5\xc6\x9a\xe6\xaf\xe6\x9d\xd6\xd4\x1b\x2b\x3e\xcc\x3e\x1a\x42\xd1\xb1\x4e\x8a\x8e\x35\xa4\x3c\x7b\x95\xc7\x9e\xcb\x79\xec\xd5\x06\xd9\x79\xb2\x66\x13\x01\x19\x37\x13\xc8\xb8\x41\x20\x04\x81\x90\x82\x9b\xb1\xde\x60\x19\x8d\x4a\x48\xbb\x9b\x1e\x5a\x49\xbf\xcd\x5d\x4f\xcc\x2e\xec\xb3\x24\x59\x7b\xbb\xf0\x42\x1c\x2d\x73\xd2\x77\x75\xb2\x76\x0a\x27\xc3\x98\x5a\x23\x91\x92\xc0\xb8\xca\x77\xb2\xb5\xc6\x15\xc9\xbb\x67\x94\xbc\x4b\x96\x12\x59\x4a\x64\x29\x91\xa5\xc4\xbe\xb0\xec\x2d\xb2\x6b\x5f\xc8\x16\x6b\xf0\x2d\x56\xbf\x15\xcb\x6c\x4c\x45\x28\x28\x5b\xd6\x70\xbb\xb4\x53\xbb\xac\xe3\xfc\x03\x0a\x98\x65\x43\xa0\xb9\x8d\x40\x01\xb3\xe4\x1f\x8b\x17\xcb\x80\xad\x55\xcc\x86\x01\xb0\xf9\x52\x66\xe5\x77\x40\x3d\x33\xea\x99\x0d\x50\xcf\xac\xa1\xbd\xb1\x5b\xd4\x6c\x5a\x20\x9c\xca\x66\xf8\x6c\xcf\x0f\x88\x53\xd9\xac\xcb\x71\x43\x65\x33\x76\x0b\xec\x16\xa6\x56\xde\xac\x8b\xfd\x42\x3f\x35\xce\x1a\xbb\x8d\x76\x0b\x9d\x4d\xcb\x90\x23\xa2\x11\x03\xee\x7c\x0c\x38\x8b\xec\x24\x96\xf3\xec\x1b\x22\x1a\x0b\x6e\x7a\x6a\x36\x48\x7f\xc5\xcf\x4e\x1c\x1a\xf8\x2d\xf0\x36\x8f\x4a\xae\xd7\xd2\xf9\xf2\xa8\x23\x2c\x86\x28\x82\xf6\xa7\xbe\x8b\xdb\xec\x2e\x9a\x87\x09\x6e\x0b\xa1\x55\x5d\x03\x1d\x2e\x74\xb8\x46\xa7\xc3\x35\xe9\x08\x56\x54\xc5\x50\x15\x43\x55\x0c\x55\x31\x54\xc5\x8a\x96\x12\x8a\xa1\xe1\xc8\x40\xfc\x8d\x7c\x8a\x73\xce\xa7\x40\xe9\x0f\xa5\x3f\x94\xfe\x50\xfa\x43\xe9\x0f\xa5\x3f\x94\xfe\x48\x33\x24\xcd\x90\x34\x43\xd2\x0c\xf7\x47\x24\xc5\xd0\x90\x15\x3d\x7a\x74\x21\x2b\x8a\xac\x28\xb2\xa2\xd3\x0f\x35\xa1\x18\x9a\x5d\xc5\xd0\x2a\x42\x14\x2c\x2e\x88\x76\x44\x70\xc6\x4e\x51\x34\x02\x32\x08\xc8\x98\x54\x40\x06\x21\x0c\x84\x30\x10\xc2\x40\x08\x03\x21\x0c\x83\x87\x30\xc0\xc6\xc1\xa5\xe0\x52\x70\x29\xb8\x14\x5c\x0a\x2e\x05\x97\x96\x2e\x02\x10\x0c\x08\x06\x04\x03\x82\x01\xc1\xa0\x30\x5a\xd3\x04\xd7\x7d\xc7\x35\xc5\xd1\x8a\x0f\xb3\x93\x8e\x50\x20\xad\x93\x02\x69\x47\x50\x9f\xbd\x22\x69\x5d\x70\x1f\x7b\x65\x45\x0e\x9e\xae\xd9\xc4\x40\x46\xce\x04\x32\x72\x90\x16\x41\x5a\xa4\xe0\x66\x46\x61\xc4\x8c\x46\x5e\xa4\xfd\x8d\x0f\xad\xe8\xdf\xf6\xce\x27\x66\x33\xf6\x59\x38\xed\x79\x36\xe3\x85\x68\xa3\x90\xd2\x77\xfd\xb4\xf6\xe2\x28\xc3\x59\x62\x23\x51\xa1\xc0\xee\xca\x77\xb2\xb5\x76\x17\x79\xbf\x67\x94\xf7\x4b\x82\x13\x09\x4e\x24\x38\x91\xe0\xc4\x96\xb1\xec\x2d\xb2\x6f\xcb\xc8\xce\x6b\xe7\x79\xce\xa3\x9e\x9a\xad\xd9\x0c\x05\x35\xd5\x8e\xd8\x42\xed\xd4\x55\x3b\x41\x0a\x03\xb5\xd5\xb2\xa1\xd0\xdc\x6e\xa0\xb6\x5a\xf2\x8f\x05\x8d\x65\xc1\xe6\xfa\x6a\xc3\x31\xdc\x7c\x8d\xb5\xea\xbb\xa0\xce\x1a\x75\xd6\x06\xa8\xb3\x76\x84\x0d\xb2\x5b\x6b\x6d\x7a\x3c\x9d\x7a\x6b\xf8\x76\xcf\x8f\xa9\x53\x6f\xad\xcb\x71\x43\xbd\x35\x76\x10\xec\x20\xa6\x58\x73\xad\xab\x3d\x44\x3f\x75\xd7\x8e\x72\x2d\xed\xd6\x5e\x9b\x9e\x61\x47\xa0\x24\x46\xdd\x79\x19\x75\x16\xd9\x4e\x2c\xf1\xd9\x37\x04\x4a\x9e\x91\x6d\xd2\x5f\x2d\xb6\x01\xa3\x0d\xaf\x23\x23\xd8\x96\x0b\x3a\x3c\x0d\x38\x33\xbf\x93\xae\x5e\xdd\x23\xb4\x44\x78\x8e\x29\x8a\x37\x1d\x8e\x51\xd0\x1f\x70\x0c\x38\x46\xe1\x91\xc3\x71\x8c\x0e\x96\x84\x6a\xa2\x51\xb0\x26\x8c\x72\xfb\x0b\xd7\x60\x0b\x7c\x7e\x5b\x60\xb8\x46\x97\xe3\x06\xae\x81\xd3\x83\x1d\x05\x5c\x63\xaf\xd1\x7a\xe0\x1a\x9d\xec\xfc\xab\x09\xc7\x54\x0c\x3d\x38\x07\x46\xde\x79\x19\x79\x16\xd9\x52\x2c\xf9\xd9\x37\x70\x8e\x33\xb2\x55\x26\xc5\x39\xb4\x26\xdc\xb5\x13\xb9\x8b\xd0\xfd\x66\x56\xff\xd3\x81\x8d\x44\x2c\xd7\x5f\xb8\xdf\xdc\xc5\x46\x7a\x79\x1d\x42\x99\xc9\x63\xbf\xfd\xf4\xf1\x9d\xbe\x99\x79\x2e\x85\xf8\x4d\x96\x7c\x3c\xd3\x57\x99\x6d\x0b\x25\xec\x28\xdf\x67\x86\x90\x70\xfd\x68\xad\xe4\x8e\x17\x73\xdf\x4c\xfa\xbe\xe3\x0d\xcb\x7e\xf7\xe7\x3d\xb1\x35\x24\x01\x6d\xad\x9e\xa4\x15\x2d\xdf\x7f\x3b\xdf\xc9\x48\xf7\x5f\x9f\xe2\x80\xd9\x4b\xd2\x1f\x89\xa1\xd8\xd0\x84\x8b\x0d\xd5\x63\xa5\xba\x42\x43\x95\x7e\xab\x0e\x90\x19\xe5\x85\x28\x2f\x44\x79\x21\xca\x0b\x4d\xad\xbc\x50\xfd\xcc\x5b\x58\x5a\xe8\xc4\x01\x0a\xbd\x15\x14\xaa\x7f\xfc\xf2\x62\x42\x36\xb7\xc1\x31\x25\x84\xea\xdb\xa0\xbc\x7c\xd0\x89\xdb\x80\xa2\x41\x14\x0d\xa2\x68\x10\x45\x83\x28\x1a\x74\xb2\xa2\x41\x0d\x66\xff\x83\x82\x41\x95\xe2\x83\x67\x14\x9f\xd8\xec\x69\x28\x7a\x34\xb2\xa2\x47\xf5\x83\xa8\xaa\xe0\xd1\x89\x47\xd3\xa0\x65\x8e\xea\x5b\xa6\xa2\xc4\xd1\xa9\x67\x0d\x5b\x0b\x1b\xd5\x37\x5a\x81\xf7\xbe\xb5\x3b\x2b\xf9\xf4\x57\x2b\xee\x53\x20\xa6\x7d\x22\xfc\x93\x67\x3e\x7e\xba\xcc\xa5\x35\xee\xbb\x65\x3f\xaf\xb6\x66\xad\x36\xdd\x13\x13\x28\xb6\x8c\xb7\xf6\xfa\x6c\x67\x9f\x97\xbb\x76\x0b\x72\x04\x35\x82\x1a\x8d\x85\x1a\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x8d\x84\x18\xe5\x75\x3a\x4a\x5c\x0d\x08\x74\x00\xc0\x00\x60\x00\x30\x00\x18\x00\xec\x10\x80\xf9\xc1\x42\x59\x92\xf6\xf4\x6b\xb0\x50\xfd\x27\x3d\xc5\xbf\x4a\xca\x13\xf0\x6a\x4c\xf0\xaa\xe7\x94\xa7\xf8\x15\x01\x5f\x81\xaf\xc0\x57\xe0\x2b\xf0\x15\xf8\x0a\x7c\x05\xbe\xea\x68\xb6\x05\x5f\x81\xaf\xc0\x57\xe0\x2b\xf0\x15\xf8\x0a\x7c\x75\x76\xf8\x0a\xde\x03\xef\x81\xf7\x14\x8f\x26\x78\x4f\xe9\x7b\x06\xef\x79\x1e\xef\xb1\x27\xdd\xa9\x33\xe6\xd3\x63\xb2\xd3\x9e\x3b\x1c\x5a\x04\x2d\xda\xbb\xaa\x5d\xb4\x08\x52\x04\x29\x82\x14\x41\x8a\x20\x45\x90\x22\x48\x11\xa4\x08\x52\x04\x29\x82\x14\x41\x8a\x20\x45\x90\x22\x48\x11\xa4\x68\x14\xa4\x68\x2f\xd1\xe9\xd0\xd1\x40\x9a\x13\xd8\x0b\xec\x05\xf6\x02\x7b\x81\xbd\xf6\xb0\x57\xf2\x77\xc7\x93\x51\x64\x45\xb2\x53\x42\x93\xde\xc6\x37\xd4\x73\xc6\x53\xfe\xa7\x49\x7b\x02\x64\x8d\x09\x64\xf5\x99\xf6\x94\x7f\x4f\x20\x5a\x10\x2d\x88\x16\x44\x0b\xa2\x05\xd1\x82\x68\x41\xb4\x3a\x9a\x6d\x21\x5a\x10\x2d\x88\x16\x44\x0b\xa2\x05\xd1\x82\x68\x9d\x1d\xd1\x02\x02\x01\x81\x80\x40\xc5\xa3\x09\x08\x54\xfa\x9e\x01\x81\xba\x80\x40\x96\x64\x40\x75\x0e\x82\xfa\x4a\x83\x2a\x71\x8f\x83\x90\x40\x48\x7b\x57\xb5\x0b\x21\x81\x8f\xc0\x47\xe0\x23\xf0\x11\xf8\x08\x7c\x04\x3e\x02\x1f\x81\x8f\xc0\x47\xe0\x23\xf0\x11\xf8\x08\x7c\x04\x3e\x02\x1f\x8d\x07\x1f\xe5\x13\xa2\xca\xbd\x0d\x64\x45\x01\xc4\x00\x62\x00\x31\x80\x18\x40\x6c\x0f\x88\x7d\x0b\xbc\xcd\xa3\x92\xeb\xb5\x74\xbe\xc4\x66\xa2\x0d\x89\x51\x7f\xea\x7b\xba\xcd\xee\xa9\xe7\xe4\xa8\xfd\x9f\x27\x41\x0a\xba\x35\x26\xba\xd5\x67\x82\xd4\xfe\xbb\x02\xe5\x82\x72\x41\xb9\xa0\x5c\x50\x2e\x28\x17\x94\x0b\xca\xd5\xd1\x6c\x0b\xe5\x82\x72\x41\xb9\xa0\x5c\x50\x2e\x28\x17\x94\xeb\xec\x28\x17\x4c\x08\x26\x04\x13\x2a\x1e\x4d\x30\xa1\xd2\xf7\x0c\x26\xd4\x11\x13\xb2\x24\x4f\xea\x24\x5c\xa8\xaf\x5c\xa9\x0a\x4f\x39\x44\x09\xa2\xb4\x77\x55\xbb\x88\x12\x34\x09\x9a\x04\x4d\x82\x26\x41\x93\xa0\x49\xd0\x24\x68\x12\x34\x09\x9a\x04\x4d\x82\x26\x41\x93\xa0\x49\xd0\x24\x68\xd2\xb8\x68\x52\x3e\x67\xaa\xda\xe3\x40\xde\x14\x8c\x0c\x46\x06\x23\x83\x91\xc1\xc8\x52\x46\x76\xaf\xd6\xf2\xe6\xba\x15\x0a\x3b\x35\xce\x69\x82\xd9\x96\x6a\xbd\x6b\xba\x9a\xbe\xad\xc0\x58\x4b\xb5\xce\x20\x96\x7e\xf8\xdb\xbb\x8f\xbf\x17\x9d\x37\x14\xc5\x1a\x2d\x5c\xca\x35\xa4\xce\x31\x9b\x0c\x61\xd2\xc3\x24\x77\xe2\x45\xfe\xc7\x1b\xbd\x5f\x4e\xe4\x2e\x42\xf7\x9b\x41\x38\xd9\x9b\x66\x76\x04\xdd\x72\x67\x73\x4d\xe1\x04\x9e\xa7\x9c\x74\xce\x7f\xfb\xe9\xe3\x3b\xfd\xf3\x15\xef\x85\x39\x71\xf7\xd5\x78\x9b\x5d\xa5\xf0\x0a\x25\x60\x4a\xd4\x74\x26\x70\x6a\xc2\x70\xaa\x62\xad\x3b\x02\x50\xd5\xac\x7e\xd5\xeb\xdf\xde\x04\xf3\xdf\xa2\xbb\xbb\x0f\x16\xa5\x37\x57\xf4\xdd\x49\x26\xcc\x77\xfa\x95\xfb\x4d\xbf\x18\x51\xc3\xe9\xb2\xfa\xd5\x02\xbc\x01\xde\x00\x6f\x80\xb7\xa9\x81\xb7\x66\xab\x4a\x21\x7c\xab\xde\x8d\x3f\x67\x25\x29\xf2\xf1\x24\x2e\xc7\x57\x5a\x14\xc2\x89\x47\x94\x19\x07\x3b\xcf\x96\xb7\x23\xee\x95\x58\xc5\xad\x15\xad\xe3\x05\xfa\xd6\x17\xae\x6f\x66\x96\x20\x14\x1b\x3f\x9b\x9c\x16\x62\x11\x3e\xfd\xbe\xf1\xc5\xc2\x0d\x63\x8b\xec\x9b\xca\x46\xbc\x76\x6e\xf8\x42\xfa\xc9\x2b\x9f\x8e\x8d\xa4\x81\xc5\xc3\x26\xd4\x6f\xd9\x2a\x0c\x9c\xd8\x6e\x30\xfe\x9f\x1c\x14\x99\x8b\x3f\xf5\x2f\xea\xde\xd2\x63\xe7\x8d\xb8\x12\xb7\x9e\xf7\x46\xfb\x69\x17\xf1\x2c\xbd\xf1\xe3\x8e\x8f\x37\xd4\xe9\x90\x4c\x2e\xa7\x16\x2d\x3a\xca\x3c\xcb\x30\xdd\xd4\x1b\x2d\x6d\xd6\x14\xe5\xc4\xb4\xb7\x16\xf9\x23\xef\x21\x72\x7d\x11\x19\xc7\x8d\xb8\x57\x0f\xc6\x72\xce\x3c\xeb\x5b\x53\x22\x99\xbd\xf4\xd0\xd9\x28\xb3\x38\xdc\x2b\xe1\x07\xfe\x95\xaf\x96\x52\x0f\xd0\xc4\xc7\x33\x17\x7f\x64\x0b\xb6\xa1\x6c\xd9\xab\x91\x6c\x56\xdc\xc7\x47\xb5\x70\xe5\x5a\x79\x4f\x5b\x93\x76\xbb\xe4\xba\xde\xab\xc4\x87\xa3\x1b\x5d\x2c\x43\xe9\xe8\xb7\xc6\x0d\x16\x99\x41\xb0\x5d\xb4\xf5\x7e\x21\x1d\xa5\x9b\x28\xbe\xc9\x7c\x77\xc9\xf8\xcc\xf4\x81\x92\x1f\x79\x30\x73\x60\x7a\x89\xb9\xb9\xcf\x47\x25\xfd\xc2\x7b\x6c\xd1\xcd\xfa\x9e\xef\xf4\x2d\x17\xf9\xc5\x6a\x3c\x63\xb6\x0c\xff\x63\x40\x79\xb3\x76\x29\x87\xe5\xbd\x0d\x7f\xb0\x39\xd8\x1c\x6c\x0e\x36\x07\x9b\x9f\x0c\x9b\x37\x5c\x0b\x0e\xd0\x79\x7f\xcb\xe2\xbb\x5c\xe6\xcd\xca\x53\x32\x52\xd9\x14\x74\x17\x06\x2b\xb9\xd4\xd6\xd1\x5d\xe0\xb9\xce\xd3\x8e\x1f\x2c\x1d\x74\xdb\xd4\x9d\x78\xd8\xdd\xcc\xff\x31\x17\x9f\xcc\x7c\x66\x4c\x97\x95\xf2\xe3\x97\x65\xbb\xa6\x2a\x11\x84\xab\x2f\xd2\x4f\xfd\x72\xe1\x46\x5d\x3f\x48\x2f\xdd\x2b\x7f\xbe\x34\x5f\x7f\xbe\x14\x0f\xae\x2f\x3d\xf7\x3f\xe9\x42\x72\xaf\x84\x5c\x2c\xf4\xe8\xbc\x36\x48\x6a\xb1\xdd\x86\x99\xcb\xcf\xa2\xed\x49\x66\x7f\x3a\x17\xef\x5d\x3d\x39\xe6\x6e\x3d\x08\x0f\x9f\x4d\x4f\x3f\xc6\x55\x64\xb6\xc7\x7a\x8f\x12\xac\xbf\xb4\xe9\x50\xf3\x04\xef\xd2\x67\xef\xcd\xc5\x77\xb8\x31\xd3\x8f\x1e\xbf\xb0\x5f\x82\xef\x62\x29\xc3\x7b\xb9\xdc\xf1\x91\x67\x9b\x1a\x15\x3e\x04\xe1\x63\xdc\x27\x85\xed\xf5\xdb\xde\x13\x95\x37\x97\x36\x7a\x53\x8b\x75\x65\xda\xd6\x8d\xad\x49\xc7\x5d\x6c\xb7\xc2\xda\x56\xd0\xce\x89\xac\x8f\xe3\xc5\x3a\x59\x49\x53\x6b\x60\x9e\xeb\xcc\x74\x1d\x49\xb7\xda\x57\x99\x8f\x79\xf7\xc7\xe6\xe2\xd6\x71\xd4\x6a\xad\xd7\xa6\xfc\xce\x6e\x66\x9e\x61\x26\xae\x92\x01\xb8\x3b\x40\xa3\x1f\xc5\xec\x9f\xd2\xf9\xba\x0c\x83\x8d\xbf\x88\x8f\xd2\xbe\x5a\x7d\xd0\x5e\xc3\x19\x13\x32\xb1\x8f\x77\x2f\x92\x3e\xc1\x7d\x76\xa5\x1f\xc5\xec\x43\x10\xaa\xdc\x65\x85\x23\x23\x47\x2e\xe2\xa7\x4f\xda\xc7\xb8\xf3\xf5\xf5\x22\xb3\xf5\x3c\xb8\xe0\x43\x76\x8d\x36\x03\x72\xb5\x3f\xdc\x07\xf4\x14\x10\x0d\x32\x9e\x68\x90\x66\xa3\xab\x2a\x22\xa4\xbf\xcd\xfc\x90\xb1\x21\xcd\xda\xa9\x22\x3e\xa4\xbf\x05\xdf\xd6\x48\x91\x66\x4d\x78\x18\x2d\xf2\xdc\xe5\xb4\x90\x2d\x13\x02\x71\x24\xd1\xfb\xb4\x96\xeb\x4d\x53\x94\x37\xc2\xc8\x87\xdc\x89\x25\x09\xb6\x66\xf9\xde\x9a\x56\x7d\xe5\xda\x16\x05\x28\xec\x27\xd9\xee\x3d\xcd\x61\xa6\x6d\xe7\x2a\x00\xc6\xa5\x16\x26\x6b\x7b\x6a\xfb\xa7\x02\x00\x4d\xc2\x32\xe2\x2b\xec\x05\x65\x10\x8a\x41\x28\xc6\x24\x42\x31\x08\x5e\x20\x78\x81\xe0\x05\x82\x17\x08\x5e\x18\x3c\x78\x01\x2a\x0e\x28\x05\x94\x02\x4a\x01\xa5\x80\x52\x40\x29\xa0\xb4\x74\x11\x80\x5d\xc0\x2e\x60\x17\xb0\x0b\xd8\x05\x22\xa4\x55\x90\x64\x9e\x3a\xed\x13\xb7\xfb\x3c\x73\x5b\x4f\x3b\x37\xb4\x9e\x90\xf4\x59\xcf\xae\x13\x2a\xd2\x42\x7f\x74\x2c\xea\x1d\x17\x7b\xbd\x76\xb9\x0a\xa2\x8e\x11\x90\x31\xd6\x85\x6c\x44\x7b\xcc\xc1\x1d\xf2\x9e\x76\xd9\x8e\x15\xb2\x2f\x27\x9a\x14\x3a\xc9\x7e\x24\x03\x27\xdf\xe9\xd6\x66\xe0\xe8\x4d\xf8\x2f\xd2\x97\x4b\x15\x1a\x77\x92\x96\x30\x92\x51\x14\x38\xae\xde\x1f\x65\x8e\x1b\xa9\xfd\x6f\x41\x28\xe2\xed\xf3\xfa\x29\xdb\x30\x3e\xca\xaf\x71\x2b\xae\xbf\xa8\x48\xa5\x46\x50\x3e\xcf\x24\xcd\x47\xd1\x46\xa0\x76\xd2\x04\xa1\xb8\x79\xfd\x43\x7c\x6c\x28\x1d\x4d\x65\xbc\xc0\x5f\x1a\x93\x47\x3b\x52\xe2\x1d\xaf\x74\x7d\x33\x2b\x69\x47\xc5\xf6\x58\xed\xa9\x4e\x98\x91\xb8\x7f\x12\x7a\xb5\x78\x73\x7d\xbd\x0c\x3c\xe9\x2f\xe7\x41\xb8\xbc\x5e\x7d\x5d\x5e\x6f\x7c\xd7\x09\x16\xea\xfa\x6f\x1f\xa3\xbb\xf8\x2a\xad\x3d\x9f\x49\xe3\x74\xd9\x3d\x56\xd9\x48\x63\x35\x5d\x9a\x9a\x2d\xaf\x1b\x98\x2d\x6f\x8d\x13\xc7\xae\xdb\x7e\x5d\x7b\xdb\x26\xaa\xd4\xae\xfb\x9e\xa2\x95\xa8\x0d\x91\x11\x58\x89\x17\xe2\x78\x0d\x94\x82\xfa\x1b\x27\x94\x42\x69\x66\x79\x15\xca\x9f\xf4\x6f\x79\x8d\x44\x67\x02\x4b\x2b\xdf\xc9\xd6\x5a\x5a\x64\xf6\x9e\x51\x66\x2f\x29\x4c\xa4\x30\x91\xc2\x44\x0a\x13\x9b\xc4\xb2\xb7\xc8\xb6\x4d\x22\xbb\xad\xdc\xd3\x58\x90\xb5\x30\x86\xfd\x56\xe6\xa9\xee\x3c\x57\x41\x93\xed\x5d\x83\xab\xc9\xc6\x29\x3e\xed\x74\x09\x0a\x39\x03\x44\xfd\x5b\x87\x1d\xdd\xc7\x9f\xa4\xb3\x9e\x0b\xf1\x3e\xfe\x3f\xfd\xfb\xa3\x74\xb5\x03\x2f\x12\x8e\xb7\x89\xd6\x2a\xdc\x2e\x2b\x26\x3e\x51\x78\xee\x57\x25\x66\xbf\xca\x47\x15\xad\xa4\xa3\x66\xb1\xf5\x98\x5a\x3c\x73\x71\xe7\x49\xdf\x4f\xc2\x06\xb4\x4d\x22\x3d\x63\x06\xdd\xfc\xd0\x66\x9e\xd6\xf7\x38\x90\xb5\x90\x35\x5a\x66\x6c\xdf\xa7\xcd\x17\x3f\xa9\x78\x6f\x5a\x2c\x5e\x21\x56\x51\xda\x3a\x49\x64\xce\x26\x52\xa1\x0e\xa9\xd9\xda\xcd\x4f\x27\x6e\xa8\xf8\x66\xa6\xcb\x83\xa7\xbe\x8c\x4d\x71\x39\x88\xe7\xd6\x31\xad\x05\x2d\x08\x6d\xbe\x6a\x44\xc9\x3d\x50\x2e\xa2\x0f\xe0\xac\x63\x39\x5a\xe9\xad\x5f\xe9\x73\xff\x5e\x3d\x69\x3d\xaa\x70\xa9\x1a\x1d\x19\xad\x43\xb9\x56\x4b\xd7\xb9\x6a\x7e\x4e\xfc\xf9\x29\x39\x52\x4f\x8f\x4d\x0c\x0d\x1d\xfc\xa7\x73\x8b\x4c\xdc\x51\x0b\xa3\x63\xb5\x53\x8b\x78\x6a\x98\xbc\xc2\x95\x7b\xb7\x1b\xfa\x23\x70\xe1\x4e\xdc\x85\x7b\x3e\xb0\x7c\x2f\x42\x3f\x7d\xb9\x4c\x16\xc9\xca\x04\xd5\x26\x99\xc9\x2f\x4a\xe6\xa0\x97\xda\x81\x65\x52\x47\xa5\xa7\xcf\xf4\x03\xff\xca\x9c\xad\x8f\xd0\x3e\xe4\x48\xbc\xf8\x29\x0a\xfc\x3b\x93\xa0\xfb\x4b\x3c\xdb\x25\x9f\x3f\xa5\x73\xe0\xf6\x8f\x2f\x6d\xa2\xf8\xcd\xc7\xcd\x87\x20\x74\xb4\x93\x7d\x19\xe8\xce\x0f\xc4\xe7\xcb\x87\xf8\x6f\x9f\x2f\xc5\xed\x4e\x6b\xce\xc5\xc7\x75\xe2\x11\xd7\xc6\x7f\xf2\xa2\x5e\x49\x47\x77\x80\x4e\xf1\xf4\x5c\x27\xf1\xf1\xe9\xbd\x42\xf0\x3d\xe9\x5b\x93\x02\xb9\x52\xc1\xca\x53\x73\x61\x7e\x53\x67\x76\xa7\x63\x4a\x47\x5d\x17\x76\x44\xf6\xf3\x6d\x9a\x37\xfe\x21\xb6\x0c\xe6\x0b\xb6\x0c\x36\x6c\x19\x56\x7d\x16\x96\xef\x66\xd3\xb0\xe9\xdc\x81\xb4\xf2\xa4\xd3\xc6\x9c\x4b\xce\x9c\xac\x41\x47\xdc\x23\xa6\xdc\x39\x99\x72\x16\x59\x4c\x2c\xec\xd9\x37\xc4\x3d\x96\xdc\xf6\x24\xed\x91\xcd\x28\x5c\x98\x17\xe2\x88\xf0\x41\x3f\x58\xa8\xc1\x0a\xa8\xfd\x1a\x2c\xd4\xb1\xf1\x83\xf9\xf2\x69\xfb\xe7\xa3\xd8\x85\x62\xd7\xe8\x14\xbb\x26\x1d\xd4\x8a\xfe\x18\xfa\x63\xe8\x8f\xa1\x3f\x86\xfe\x58\xd1\x52\x42\xf1\x34\x5c\x18\xc8\xc4\x91\x62\x71\xce\x29\x16\x68\x02\xa2\x09\x88\x26\x20\x9a\x80\x68\x02\xa2\x09\x88\x26\x20\x99\x87\x64\x1e\x92\x79\x48\xe6\xe1\xfe\x88\xa4\x78\x1a\x02\xa4\x47\x8f\x2e\x04\x48\x11\x20\x45\x80\x74\xfa\x41\x26\x14\x4f\xab\x08\xda\x18\xb0\x78\xda\x5e\x78\xc2\xf0\xe9\xc8\xb5\xa5\xd3\x6a\x02\x32\x0a\x0b\xa7\x11\x84\x41\x10\xc6\xe8\x83\x30\x08\x5b\x20\x6c\x81\xb0\x05\xc2\x16\x08\x5b\x18\x3c\x6c\x01\x1e\x0e\x22\x05\x91\x82\x48\x41\xa4\x20\x52\x10\x29\x88\xb4\x74\x11\x80\x5a\x40\x2d\xa0\x16\x50\x0b\xa8\x05\x65\xd3\x8e\x4d\x66\xfd\x35\x58\x28\x8a\xa6\xf5\x5a\x0e\xe3\xb9\x34\x84\x92\x69\x5d\x95\x4c\xab\xa1\x3c\x25\x05\xd3\xda\x72\x1e\xfb\x65\x43\xf4\x93\x35\x9b\x08\xc8\xb8\x99\x40\xc6\x0d\xa2\x21\x88\x86\x14\xdc\x8c\xf5\x06\xcb\xe8\x24\x43\x8e\xbb\x69\x5b\xa4\xfb\x8f\xb9\xeb\x29\xda\x85\x3d\x97\x49\x6b\x69\x17\x5e\x88\x63\x55\x4e\x06\x28\x91\xd6\x46\xe0\xa4\x6f\x4b\x6b\x24\x4a\x12\xd8\x56\xf9\x4e\xb6\xd6\xb6\x22\x77\xf7\x8c\x72\x77\x49\x52\x22\x49\x89\x24\x25\x92\x94\xd8\x16\x96\xbd\x45\x76\x6d\x0b\xd9\x61\xd9\xb1\xc3\xea\xbd\x34\x9a\x75\x99\x08\xc5\x85\xd1\x6a\xb6\x4b\x85\x65\xd1\x3a\x4a\x3f\xa0\x28\x5a\xd6\xfb\xcd\x6d\x04\x8a\xa2\x25\xff\x58\xbc\x58\x06\x6c\x2f\x89\x36\x00\x7f\xdd\x2b\x88\x76\x78\x07\x94\x43\xa3\x1c\xda\x30\xe5\xd0\x6a\x4c\x8d\xe2\x62\x68\xd3\x40\xe0\x94\x42\xc3\x5d\x7b\x7e\x28\x9c\x52\x68\x5d\x8e\x1b\x4a\xa1\xb1\x51\x60\xa3\x30\xd5\x42\x68\xcf\xde\x2a\xf4\x56\x06\xad\xd6\x63\x54\x5c\x04\x6d\x1a\x86\x1c\xb1\x8c\x18\x70\xe7\x63\xc0\x59\x64\x27\xb1\x9c\x67\xdf\x10\xcb\x58\x70\xd3\x93\xb4\x41\x7a\x2d\x7e\x76\xf2\xa0\xc0\xe4\xcf\x8e\x27\xa3\x68\xa0\x02\x68\x89\x55\xf2\x36\xbe\x85\x63\x83\x04\xb3\x0b\x95\x5d\x04\x15\x2e\x54\xb8\x46\xa7\xc2\x35\xe9\x00\x56\x34\xc5\xd0\x14\x43\x53\x0c\x4d\x31\x34\xc5\x8a\x96\x12\x4a\xa1\xe1\xcc\x40\xfa\x8d\x74\x8a\x73\x4e\xa7\x40\xe7\x0f\x9d\x3f\x74\xfe\xd0\xf9\x43\xe7\x0f\x9d\x3f\x74\xfe\xc8\x32\x24\xcb\x90\x2c\x43\xb2\x0c\xf7\x47\x24\xa5\xd0\x10\x15\x3d\x7a\x74\x21\x2a\x8a\xa8\x28\xa2\xa2\xd3\x0f\x37\xa1\x14\x5a\x45\x08\xc7\x50\xa5\xd0\x4a\x62\x14\x86\xcf\x42\xae\xae\x87\xd6\x30\x3e\xe3\xb0\x28\x1a\x31\x19\xc4\x64\x4c\x26\x26\x83\x28\x06\xa2\x18\x88\x62\x20\x8a\x81\x28\x86\xc1\xa3\x18\xc0\xe3\x10\x53\x88\x29\xc4\x14\x62\x0a\x31\x85\x98\x42\x4c\x4b\x17\x01\x20\x06\x10\x03\x88\x01\xc4\x00\x62\x50\x19\xed\xa8\x3c\xd7\xbc\xe7\x9a\xf2\x68\xfd\x95\xc1\xe8\x8a\x90\x50\x23\xad\x93\x1a\x69\x0d\xc9\x4f\x51\xa1\xb4\xe7\xb2\x1f\xcb\x15\x46\x76\x1e\xaf\xd9\xe4\x40\x66\xce\x04\x32\x73\x90\x19\x41\x66\xa4\xe0\x66\xc6\x61\xc9\x8c\x4b\x6b\xa4\xdd\x9d\x5b\x21\xed\xdf\xe6\xd6\xa7\x68\x3a\xf6\x59\x41\xed\x99\xa6\xe3\x85\x68\xa7\x98\xd2\x77\x31\xb5\x67\x88\xa5\x0c\x63\x92\x8d\x44\x95\x02\xfb\x2b\xdf\xc9\xd6\xda\x5f\xe4\x01\x9f\x51\x1e\x30\x09\x4f\x24\x3c\x91\xf0\x44\xc2\x13\x5b\xc7\xb2\xb7\xc8\xc2\xad\x23\x1b\xb0\xdd\x07\xb2\x20\xd3\x61\x24\x5b\xb0\xcc\xa3\xdd\x47\x95\xb5\x86\xfb\xa8\xc3\x52\x6b\x1d\x27\x35\x50\x6f\x2d\x1b\x07\xcd\x8d\x07\xea\xad\x25\xff\x58\xd5\x58\x1a\xec\x2f\xba\x36\x20\xd5\xcd\x57\x5e\x2b\xbf\x0d\xca\xaf\x51\x7e\x6d\x80\xf2\x6b\x0d\x6d\x90\x82\x1a\x6c\xd3\xa2\xeb\x14\x62\xc3\xc1\x7b\x7e\x80\x9d\x42\x6c\x5d\x8e\x1b\x0a\xb1\xb1\x83\x60\x07\x31\xdd\x6a\x6c\x9d\xed\x21\xfa\x29\xc9\xd6\xd8\xbd\x54\x50\x97\x6d\x5a\xc6\x1d\xa1\x93\x58\x76\x67\x66\xd9\x59\x64\x40\xb1\xce\x67\xdf\x10\x3a\x79\x7e\x16\x4a\x7f\xb5\xda\x7a\x0b\x3f\xfc\x16\x78\x9b\x47\x25\xd7\x6b\xe9\x7c\x79\xd4\x01\x1c\x43\xd4\x6c\xfb\x53\xdf\xc5\x6d\x76\x17\x47\x86\x22\x6e\xeb\xb6\x55\x5d\x08\x9d\x30\x74\xc2\x46\xa7\x13\x36\xe9\x28\x59\x54\xcf\x50\x3d\x43\xf5\x0c\xd5\x33\x54\xcf\x8a\x96\x12\x6a\xb7\xe1\xe6\x40\x9c\x8e\x9c\x8d\x73\xce\xd9\x40\x89\x10\x25\x42\x94\x08\x51\x22\x44\x89\x10\x25\x42\x94\x08\x49\x65\x24\x95\x91\x54\x46\x52\x19\xf7\x47\x24\xb5\xdb\x90\x3d\x3d\x7a\x74\x21\x7b\x8a\xec\x29\xb2\xa7\xd3\x0f\x44\xa1\x76\x5b\x45\x48\xc7\x50\xb5\xdb\x2a\xe2\x14\x86\xcf\x6f\xae\xae\xdf\x76\x44\xac\xc6\x61\x0d\x37\xe2\x33\x88\xcf\x98\x54\x7c\x06\x11\x0d\x44\x34\x10\xd1\x40\x44\x03\x11\x0d\x83\x47\x34\x80\xca\xa1\xa7\xd0\x53\xe8\x29\xf4\x14\x7a\x0a\x3d\x85\x9e\x96\x2e\x02\x00\x0d\x80\x06\x40\x03\xa0\x01\xd0\xa0\x8e\xdb\x51\x89\xb0\xfb\xde\x6b\x6a\xb9\xf5\x57\x90\xa3\x4b\x62\x42\x3d\xb7\x4e\xea\xb9\x1d\x41\x82\x8a\x6a\xba\x75\xc1\x82\x2c\x17\x27\x39\x78\xc4\x66\x93\x05\x99\x3b\x13\xc8\xdc\x41\xa0\x04\x81\x92\x82\x9b\x19\x8f\x75\x33\x2e\x91\x92\xf6\x77\x6f\x45\x89\x81\xb6\xb7\x3f\x45\xb3\xb2\xcf\x3a\x6f\x1d\x98\x95\x17\xa2\xb5\xd8\x4a\xdf\xe5\xde\x9e\xa9\xb3\x32\x9c\xc5\x36\x12\x41\x0b\x4c\xb3\x7c\x27\x5b\x6b\x9a\x91\x42\x7c\x46\x29\xc4\xe4\x4a\x91\x2b\x45\xae\x14\xb9\x52\xec\x2a\xcb\xde\x22\x4b\x77\x95\xec\xcb\x2c\xdb\x97\xf5\x5b\xfe\xcd\xea\x14\x89\x82\x12\x70\x47\xec\xad\x0e\xcb\xc0\x9d\x20\x2f\x82\x52\x70\xd9\x78\x68\x6e\x50\x50\x0a\x2e\xf9\xc7\x4a\xc7\x52\x31\x8e\x72\x70\x03\x83\xe1\x7c\x49\xb8\xea\x5b\xa1\x2c\x1c\x65\xe1\x06\x28\x0b\x77\x84\x5d\x52\x50\x1a\x6e\x7a\x90\x9e\xf2\x70\x38\x82\xcf\x8f\xd1\x53\x1e\xae\xcb\x71\x43\x79\x38\x76\x15\xec\x2a\xcc\x9f\xa7\x5a\x22\xae\xd3\x7d\x45\x3f\x65\xe2\x8e\x72\x41\x15\x94\x8a\x9b\x9e\xb1\x47\x44\x26\xd6\xde\x19\x5a\x7b\x16\x19\x55\xac\xfd\xd9\x37\x44\x64\x36\xba\xfb\x49\x5a\x2e\xfd\x95\x8e\xeb\x35\xa2\x51\xa7\x71\x5d\x3b\x91\xbb\x08\xdd\x6f\xc6\x36\xc8\x22\x19\x3b\x87\x6e\x49\x7e\xbb\xbf\x70\xbf\xb9\x8b\x8d\xf4\xf2\xa9\x83\x32\x53\xb4\x78\xfb\xe9\xe3\x3b\x7d\x33\xf3\x5c\xe4\xce\x9b\x2c\xe6\x67\xa6\xaf\x32\xdb\x6a\x1b\xed\x88\xd5\x64\x56\x92\x70\xfd\x68\xad\xe4\x8e\x73\x73\xdf\x86\xfa\x7e\xe8\x2e\xcb\x7e\xfc\xe7\xbd\xd4\x28\x52\xf9\x6c\x15\x41\xd4\x99\xa8\xef\xbf\x9d\xf9\x04\xa5\x3b\xb1\xcf\x7c\xbe\xec\x4d\xe9\x99\xd7\x20\x17\x38\x61\xb9\xc0\x7a\xf8\x54\x27\x15\x58\xe9\xe8\xea\x00\xac\x21\x10\x88\x40\x20\x02\x81\x08\x04\x4e\x4d\x20\xb0\x7e\xe6\x2d\x14\x07\x3c\x71\x18\x43\x6f\x92\x80\xf5\x8f\x5f\x2e\x07\x68\x73\x1b\x1c\x23\x02\x58\xdf\x06\xe5\x02\x80\x27\x6e\x03\x64\xff\x90\xfd\x43\xf6\x0f\xd9\x3f\x64\xff\x4e\x26\xfb\xd7\x60\xf6\x3f\x90\xfc\xab\x4c\x01\x3c\xa3\x28\xc6\x66\x4f\x83\x6c\xe1\xc8\x64\x0b\xeb\x07\x51\x95\x64\xe1\x89\x47\xd3\xa0\x42\x85\xf5\x2d\x53\x21\x52\x78\xea\x59\xc3\x56\x69\xc2\xfa\x46\x2b\xf0\xe3\xb7\x76\x67\x25\x9f\xfe\x6a\xcf\x82\x0a\xc4\x2d\x4e\x84\x84\xf2\x1c\xc8\x4f\xd7\xba\xb4\x5e\x4d\xb7\x3c\xe8\xd5\xd6\xb6\xd5\xf6\x7b\x62\x07\xc5\xe6\xf1\xd6\x68\x9f\xed\x6c\xf6\x72\xd7\x6e\x4b\x93\x20\x49\x90\xa4\x51\x91\x24\x28\x12\x14\x09\x8a\x04\x45\x82\x22\x41\x91\xa0\x48\x50\x24\x28\x12\x14\x09\x8a\x04\x45\x82\x22\x41\x91\xa0\x48\x50\xa4\x31\x51\xa4\xbc\xc2\x47\x89\xbf\x01\x69\x0f\xa0\x18\x50\x0c\x28\x06\x14\x03\x8a\x95\x40\x31\x3f\x58\x28\x4b\xd2\xa3\x7e\x0d\x16\x6a\xa0\xe4\xa8\xf8\xa7\x49\x8d\x02\x68\x8d\x0e\x68\xf5\x9c\x1a\x15\xbf\x27\x20\x2d\x90\x16\x48\x0b\xa4\x05\xd2\x02\x69\x81\xb4\x40\x5a\x5d\xce\xb6\x20\x2d\x90\x16\x48\x0b\xa4\x05\xd2\x02\x69\x81\xb4\xce\x0e\x69\xc1\x80\x60\x40\x30\xa0\xe2\xd1\x04\x03\x2a\x7d\xcf\x60\x40\x1d\x30\x20\x7b\xd2\xa2\x3a\xe3\x40\x7d\x27\x45\xed\x79\xc7\x21\x48\x10\xa4\xbd\xab\x5a\x48\x90\xa0\x47\xd0\x23\xe8\x11\xf4\x08\x7a\x04\x3d\x82\x1e\x41\x8f\xa0\x47\xd0\x23\xe8\x11\xf4\x08\x7a\x04\x3d\x82\x1e\x41\x8f\xc6\x43\x8f\xf6\x12\xa2\x0e\xbd\x0d\xa4\x43\x81\xc2\x40\x61\xa0\x30\x50\x18\x28\xac\x08\x85\x25\x5f\x3a\x9e\x8c\x22\x2b\x92\xa2\x12\xc2\xf4\x36\xbe\xa1\x21\x32\xa3\xf2\xbf\x4f\x7a\x14\x70\x6b\x74\x70\xab\xcf\xf4\xa8\xfc\xcb\x02\xe5\x82\x72\x41\xb9\xa0\x5c\x50\x2e\x28\x17\x94\x0b\xca\xd5\xe5\x6c\x0b\xe5\x82\x72\x41\xb9\xa0\x5c\x50\x2e\x28\x17\x94\xeb\xec\x28\x17\x60\x08\x30\x04\x18\x2a\x1e\x4d\x80\xa1\xd2\xf7\x0c\x30\xd4\x19\x18\xb2\x24\x53\xaa\x73\x38\xd4\x6b\xba\x54\x89\xb7\x1c\xac\x04\x56\xda\xbb\xaa\x85\x58\x09\xa4\x04\x52\x02\x29\x81\x94\x40\x4a\x20\x25\x90\x12\x48\x09\xa4\x04\x52\x02\x29\x81\x94\x40\x4a\x20\x25\x90\x12\x48\x69\x64\x48\x29\x9f\x38\x55\xee\x72\x20\x7b\x0a\x48\x06\x24\x03\x92\x01\xc9\x80\x64\x45\x90\xec\x5b\xe0\x6d\x1e\x95\x5c\xaf\xa5\xf3\x25\xb6\x15\x6d\x48\xa0\xfa\x53\xdf\xd3\x6d\x76\x4f\x43\x24\x51\xed\xdf\x03\x89\x54\x10\xaf\xd1\x11\xaf\x3e\x13\xa9\xf6\x5f\x18\xc8\x17\xe4\x0b\xf2\x05\xf9\x82\x7c\x41\xbe\x20\x5f\x90\xaf\x2e\x67\x5b\xc8\x17\xe4\x0b\xf2\x05\xf9\x82\x7c\x41\xbe\x20\x5f\x67\x47\xbe\xe0\x44\x70\x22\x38\x51\xf1\x68\x82\x13\x95\xbe\x67\x70\xa2\x2e\x39\x91\x25\xf9\x54\x27\x61\x45\xbd\xe6\x54\x55\x38\xce\xa1\x4c\x50\xa6\xbd\xab\x5a\x48\x99\x20\x4c\x10\x26\x08\x13\x84\x09\xc2\x04\x61\x82\x30\x41\x98\x20\x4c\x10\x26\x08\x13\x84\x09\xc2\x04\x61\x82\x30\x41\x98\x46\x48\x98\xf2\xb9\x55\xd5\x6e\x07\xf2\xab\xe0\x66\x70\x33\xb8\x19\xdc\xec\x1c\xb9\x99\x17\x2c\xa3\xeb\x4a\x04\xb6\xc7\x7f\xbc\x60\xf9\xc1\xf5\xd4\xcf\x6e\xb4\xfe\xff\x4b\x7f\xe1\xed\x74\x57\x39\xf8\xb0\x95\x1d\xc4\xcf\x9f\x3b\xfa\x22\xff\x8b\xbb\x8d\xf4\x5f\x2f\x58\xc6\xab\x64\x35\x30\x2c\x6e\xad\x09\xb7\xd4\x73\x80\x44\xdc\x9c\xe9\xbb\xe8\x05\xcb\xe3\xec\x92\xa4\x3b\x4e\x6f\x9a\x14\xbf\x38\xc9\x5a\x5b\xfd\xee\x94\xe1\xe3\x03\xfa\x59\xd8\x0b\x7b\xad\xb5\x54\xa9\x23\x73\x91\x19\xb9\x15\xa0\x76\xa9\xd6\x6f\x83\x45\xc1\x4a\xd4\x9c\xc9\x16\xde\x95\xa5\x6c\x33\x69\x90\xf9\x47\xff\x21\x18\x3b\xd0\x4c\x3b\xb7\x6c\x5e\xba\x48\x7e\xf4\x32\x52\xce\x26\x74\xd7\x4f\xd9\x05\xb2\xa1\xf8\x4f\x25\x43\x15\xfe\x11\x7c\x55\xf1\x53\xfc\xbf\x7f\x65\x27\xfe\xb5\x73\xe2\xbb\x6d\xcb\x66\x2d\xb1\x77\x6e\x76\xc9\xbd\x86\x31\x47\x09\x7d\x98\x88\xdb\xc8\x6c\x96\xd7\xf9\xc1\x96\xbc\xc4\x5f\x94\x5c\xe4\x66\xbf\x2d\x91\x4a\x5a\x76\xef\xa4\xf4\x45\x95\x2b\xf7\xff\x51\x4f\x97\xfb\xcf\xfc\x5d\x2e\x63\x23\xe1\x8d\xb8\x7c\x3d\xff\xff\x5d\x5e\xfc\xef\xe2\xff\x0b\x00\x00\xff\xff\x0d\x61\x11\x2c\x3e\x43\x42\x00") - -func kubernetesapiV1186SwaggerJsonBytes() ([]byte, error) { - return bindataRead( - _kubernetesapiV1186SwaggerJson, - "kubernetesapi/v1186/swagger.json", - ) -} - -func kubernetesapiV1186SwaggerJson() (*asset, error) { - bytes, err := kubernetesapiV1186SwaggerJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "kubernetesapi/v1186/swagger.json", size: 4342590, mode: os.FileMode(420), modTime: time.Unix(1605140931, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -// Asset loads and returns the asset for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func Asset(name string) ([]byte, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) - } - return a.bytes, nil - } - return nil, fmt.Errorf("Asset %s not found", name) -} - -// MustAsset is like Asset but panics when Asset would return an error. -// It simplifies safe initialization of global variables. -func MustAsset(name string) []byte { - a, err := Asset(name) - if err != nil { - panic("asset: Asset(" + name + "): " + err.Error()) - } - - return a -} - -// AssetInfo loads and returns the asset info for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func AssetInfo(name string) (os.FileInfo, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) - } - return a.info, nil - } - return nil, fmt.Errorf("AssetInfo %s not found", name) -} - -// AssetNames returns the names of the assets. -func AssetNames() []string { - names := make([]string, 0, len(_bindata)) - for name := range _bindata { - names = append(names, name) - } - return names -} - -// _bindata is a table, holding each asset generator, mapped to its name. -var _bindata = map[string]func() (*asset, error){ - "kubernetesapi/v1186/swagger.json": kubernetesapiV1186SwaggerJson, -} - -// AssetDir returns the file names below a certain -// directory embedded in the file by go-bindata. -// For example if you run go-bindata on data/... and data contains the -// following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png -// then AssetDir("data") would return []string{"foo.txt", "img"} -// AssetDir("data/img") would return []string{"a.png", "b.png"} -// AssetDir("foo.txt") and AssetDir("notexist") would return an error -// AssetDir("") will return []string{"data"}. -func AssetDir(name string) ([]string, error) { - node := _bintree - if len(name) != 0 { - cannonicalName := strings.Replace(name, "\\", "/", -1) - pathList := strings.Split(cannonicalName, "/") - for _, p := range pathList { - node = node.Children[p] - if node == nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - } - } - if node.Func != nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - rv := make([]string, 0, len(node.Children)) - for childName := range node.Children { - rv = append(rv, childName) - } - return rv, nil -} - -type bintree struct { - Func func() (*asset, error) - Children map[string]*bintree -} - -var _bintree = &bintree{nil, map[string]*bintree{ - "kubernetesapi": &bintree{nil, map[string]*bintree{ - "v1186": &bintree{nil, map[string]*bintree{ - "swagger.json": &bintree{kubernetesapiV1186SwaggerJson, map[string]*bintree{}}, - }}, - }}, -}} - -// RestoreAsset restores an asset under the given directory -func RestoreAsset(dir, name string) error { - data, err := Asset(name) - if err != nil { - return err - } - info, err := AssetInfo(name) - if err != nil { - return err - } - err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) - if err != nil { - return err - } - err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) - if err != nil { - return err - } - err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) - if err != nil { - return err - } - return nil -} - -// RestoreAssets restores an asset under the given directory recursively -func RestoreAssets(dir, name string) error { - children, err := AssetDir(name) - // File - if err != nil { - return RestoreAsset(dir, name) - } - // Dir - for _, child := range children { - err = RestoreAssets(dir, filepath.Join(name, child)) - if err != nil { - return err - } - } - return nil -} - -func _filePath(dir, name string) string { - cannonicalName := strings.Replace(name, "\\", "/", -1) - return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) -} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1186/swagger.json b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1186/swagger.json deleted file mode 100644 index 7f1512d16f..0000000000 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1186/swagger.json +++ /dev/null @@ -1,85841 +0,0 @@ -{ - "definitions": { - "io.k8s.api.admissionregistration.v1.MutatingWebhook": { - "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "reinvocationPolicy": { - "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - "type": "string" - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig", - "sideEffects", - "admissionReviewVersions" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration": { - "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList": { - "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of MutatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfigurationList", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scope": { - "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "`name` is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "`namespace` is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "`path` is an optional URL path which will be sent in any request to this service.", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhook": { - "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig", - "sideEffects", - "admissionReviewVersions" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration": { - "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList": { - "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of ValidatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfigurationList", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "properties": { - "caBundle": { - "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ServiceReference", - "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhook": { - "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "reinvocationPolicy": { - "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - "type": "string" - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration": { - "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList": { - "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of MutatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scope": { - "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "`name` is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "`namespace` is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "`path` is an optional URL path which will be sent in any request to this service.", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook": { - "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration": { - "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList": { - "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of ValidatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "properties": { - "caBundle": { - "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ServiceReference", - "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.ControllerRevision": { - "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", - "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" - }, - "data": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", - "description": "Data is the serialized representation of the state." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "revision": { - "description": "Revision indicates the revision of the state represented by Data.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "revision" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ControllerRevisionList": { - "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", - "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" - }, - "items": { - "description": "Items is the list of ControllerRevisions", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevisionList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSet": { - "description": "DaemonSet represents the configuration of a daemon set.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec", - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus", - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetCondition": { - "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of DaemonSet condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetList": { - "description": "DaemonSetList is a collection of daemon sets.", - "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" - }, - "items": { - "description": "A list of daemon sets.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetSpec": { - "description": "DaemonSetSpec is the specification of a daemon set.", - "properties": { - "minReadySeconds": { - "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - }, - "updateStrategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy", - "description": "An update strategy to replace existing DaemonSet pods with new pods." - } - }, - "required": [ - "selector", - "template" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetStatus": { - "description": "DaemonSetStatus represents the current status of a daemon set.", - "properties": { - "collisionCount": { - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a DaemonSet's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentNumberScheduled": { - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "desiredNumberScheduled": { - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "numberAvailable": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "format": "int32", - "type": "integer" - }, - "numberMisscheduled": { - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "numberReady": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - "format": "int32", - "type": "integer" - }, - "numberUnavailable": { - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "The most recent generation observed by the daemon set controller.", - "format": "int64", - "type": "integer" - }, - "updatedNumberScheduled": { - "description": "The total number of nodes that are running updated daemon pod", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetUpdateStrategy": { - "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet", - "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." - }, - "type": { - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.Deployment": { - "description": "Deployment enables declarative updates for Pods and ReplicaSets.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentSpec", - "description": "Specification of the desired behavior of the Deployment." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStatus", - "description": "Most recently observed status of the Deployment." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentCondition": { - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time this condition was updated." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of deployment condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentList": { - "description": "DeploymentList is a list of Deployments.", - "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" - }, - "items": { - "description": "Items is the list of Deployments.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DeploymentList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentSpec": { - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "paused": { - "description": "Indicates that the deployment is paused.", - "type": "boolean" - }, - "progressDeadlineSeconds": { - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels." - }, - "strategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStrategy", - "description": "The deployment strategy to use to replace existing pods with new ones.", - "x-kubernetes-patch-strategy": "retainKeys" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template describes the pods that will be created." - } - }, - "required": [ - "selector", - "template" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentStatus": { - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "availableReplicas": { - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - "format": "int32", - "type": "integer" - }, - "collisionCount": { - "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a deployment's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "observedGeneration": { - "description": "The generation observed by the deployment controller.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "Total number of ready pods targeted by this deployment.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - "format": "int32", - "type": "integer" - }, - "unavailableReplicas": { - "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - "format": "int32", - "type": "integer" - }, - "updatedReplicas": { - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentStrategy": { - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment", - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." - }, - "type": { - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSet": { - "description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec", - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus", - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetCondition": { - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replica set condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSetList": { - "description": "ReplicaSetList is a collection of ReplicaSets.", - "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" - }, - "items": { - "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetSpec": { - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - } - }, - "required": [ - "selector" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSetStatus": { - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a replica set's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replica set.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateDaemonSet": { - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateDeployment": { - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxSurge": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods." - }, - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy": { - "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - "properties": { - "partition": { - "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSet": { - "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetSpec", - "description": "Spec defines the desired identities of pods in this set." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetStatus", - "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetCondition": { - "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of statefulset condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetList": { - "description": "StatefulSetList is a collection of StatefulSets.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetSpec": { - "description": "A StatefulSetSpec is the specification of a StatefulSet.", - "properties": { - "podManagementPolicy": { - "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - "type": "string" - }, - "replicas": { - "description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "serviceName": { - "description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - "type": "string" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet." - }, - "updateStrategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy", - "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template." - }, - "volumeClaimTemplates": { - "description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "type": "array" - } - }, - "required": [ - "selector", - "template", - "serviceName" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetStatus": { - "description": "StatefulSetStatus represents the current state of a StatefulSet.", - "properties": { - "collisionCount": { - "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a statefulset's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentReplicas": { - "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - "format": "int32", - "type": "integer" - }, - "currentRevision": { - "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - "type": "string" - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "replicas is the number of Pods created by the StatefulSet controller.", - "format": "int32", - "type": "integer" - }, - "updateRevision": { - "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", - "type": "string" - }, - "updatedReplicas": { - "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetUpdateStrategy": { - "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy", - "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType." - }, - "type": { - "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus", - "description": "Status is filled in by the server and indicates whether the request can be authenticated." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authentication.v1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - "items": { - "type": "string" - }, - "type": "array" - }, - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - "items": { - "type": "string" - }, - "type": "array" - }, - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", - "description": "User is the UserInfo associated with the provided token." - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Any additional information provided by the authenticator.", - "type": "object" - }, - "groups": { - "description": "The names of groups this user is a part of.", - "items": { - "type": "string" - }, - "type": "array" - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus", - "description": "Status is filled in by the server and indicates whether the request can be authenticated." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authentication.v1beta1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - "items": { - "type": "string" - }, - "type": "array" - }, - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - "items": { - "type": "string" - }, - "type": "array" - }, - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.UserInfo", - "description": "User is the UserInfo associated with the provided token." - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Any additional information provided by the authenticator.", - "type": "object" - }, - "groups": { - "description": "The names of groups this user is a part of.", - "items": { - "type": "string" - }, - "type": "array" - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "properties": { - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. user and groups must be empty" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec", - "description": "Spec holds information about the request being evaluated." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus", - "description": "Status is filled in by the server and indicates the set of actions a user can perform." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object" - }, - "groups": { - "description": "Groups is the groups you're testing for.", - "items": { - "type": "string" - }, - "type": "array" - }, - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - }, - "required": [ - "allowed" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceRule" - }, - "type": "array" - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceRule" - }, - "type": "array" - } - }, - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "properties": { - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. user and groups must be empty" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec", - "description": "Spec holds information about the request being evaluated." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus", - "description": "Status is filled in by the server and indicates the set of actions a user can perform." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object" - }, - "group": { - "description": "Groups is the groups you're testing for.", - "items": { - "type": "string" - }, - "type": "array" - }, - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - }, - "required": [ - "allowed" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceRule" - }, - "type": "array" - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceRule" - }, - "type": "array" - } - }, - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler": { - "description": "configuration of a horizontal pod autoscaler.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec", - "description": "behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus", - "description": "current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList": { - "description": "list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec": { - "description": "specification of a horizontal pod autoscaler.", - "properties": { - "maxReplicas": { - "description": "upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.", - "format": "int32", - "type": "integer" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference", - "description": "reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource." - }, - "targetCPUUtilizationPercentage": { - "description": "target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus": { - "description": "current status of a horizontal pod autoscaler", - "properties": { - "currentCPUUtilizationPercentage": { - "description": "current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.", - "format": "int32", - "type": "integer" - }, - "currentReplicas": { - "description": "current number of replicas of pods managed by this autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desired number of replicas of pods managed by this autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.Scale": { - "description": "Scale represents a scaling request for a resource.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec", - "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus", - "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.ScaleSpec": { - "description": "ScaleSpec describes the attributes of a scale subresource.", - "properties": { - "replicas": { - "description": "desired number of instances for the scaled object.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v1.ScaleStatus": { - "description": "ScaleStatus represents the current status of a scale subresource.", - "properties": { - "replicas": { - "description": "actual number of observed instances of the scaled object.", - "format": "int32", - "type": "integer" - }, - "selector": { - "description": "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors", - "type": "string" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricSource": { - "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one \"target\" type should be set.", - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "metricSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "metricSelector is used to identify a specific time series within a given metric." - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue." - }, - "targetValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue." - } - }, - "required": [ - "metricName" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus": { - "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - "properties": { - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of metric averaged over autoscaled pods." - }, - "currentValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentValue is the current value of the metric (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of a metric used for autoscaling in metric system.", - "type": "string" - }, - "metricSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "metricSelector is used to identify a specific time series within a given metric." - } - }, - "required": [ - "metricName", - "currentValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler": { - "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec", - "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus", - "description": "status is the current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition": { - "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the last time the condition transitioned from one status to another" - }, - "message": { - "description": "message is a human-readable explanation containing details about the transition", - "type": "string" - }, - "reason": { - "description": "reason is the reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition (True, False, Unknown)", - "type": "string" - }, - "type": { - "description": "type describes the current condition", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList": { - "description": "HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "items is the list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "metadata is the standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec": { - "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - "properties": { - "maxReplicas": { - "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - "format": "int32", - "type": "integer" - }, - "metrics": { - "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricSpec" - }, - "type": "array" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus": { - "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - "properties": { - "conditions": { - "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition" - }, - "type": "array" - }, - "currentMetrics": { - "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricStatus" - }, - "type": "array" - }, - "currentReplicas": { - "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas", - "conditions" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.MetricSpec": { - "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricSource", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricSource", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricSource", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricSource", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.MetricStatus": { - "description": "MetricStatus describes the last-read state of a single metric.", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricStatus", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricSource": { - "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "target is the described Kubernetes object." - }, - "targetValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetValue is the target value of the metric (as a quantity)." - } - }, - "required": [ - "target", - "metricName", - "targetValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus": { - "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "currentValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentValue is the current value of the metric (as a quantity)." - }, - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "target is the described Kubernetes object." - } - }, - "required": [ - "target", - "metricName", - "currentValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricSource": { - "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - } - }, - "required": [ - "metricName", - "targetAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricStatus": { - "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - "properties": { - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - } - }, - "required": [ - "metricName", - "currentAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricSource": { - "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "properties": { - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - }, - "targetAverageUtilization": { - "description": "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - "format": "int32", - "type": "integer" - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus": { - "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "properties": { - "currentAverageUtilization": { - "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", - "format": "int32", - "type": "integer" - }, - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification." - }, - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - } - }, - "required": [ - "name", - "currentAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ExternalMetricSource": { - "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - "properties": { - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "metric", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus": { - "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy": { - "description": "HPAScalingPolicy is a single policy which must hold true for a specified past interval.", - "properties": { - "periodSeconds": { - "description": "PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "Type is used to specify the scaling policy.", - "type": "string" - }, - "value": { - "description": "Value contains the amount of change which is permitted by the policy. It must be greater than zero", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "type", - "value", - "periodSeconds" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HPAScalingRules": { - "description": "HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.", - "properties": { - "policies": { - "description": "policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy" - }, - "type": "array" - }, - "selectPolicy": { - "description": "selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.", - "type": "string" - }, - "stabilizationWindowSeconds": { - "description": "StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler": { - "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec", - "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus", - "description": "status is the current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - ] - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior": { - "description": "HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).", - "properties": { - "scaleDown": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", - "description": "scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used)." - }, - "scaleUp": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", - "description": "scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\n * increase no more than 4 pods per 60 seconds\n * double the number of pods per 60 seconds\nNo stabilization is used." - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition": { - "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the last time the condition transitioned from one status to another" - }, - "message": { - "description": "message is a human-readable explanation containing details about the transition", - "type": "string" - }, - "reason": { - "description": "reason is the reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition (True, False, Unknown)", - "type": "string" - }, - "type": { - "description": "type describes the current condition", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList": { - "description": "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "items is the list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "metadata is the standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v2beta2" - } - ] - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec": { - "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - "properties": { - "behavior": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior", - "description": "behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used." - }, - "maxReplicas": { - "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - "format": "int32", - "type": "integer" - }, - "metrics": { - "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricSpec" - }, - "type": "array" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference", - "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus": { - "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - "properties": { - "conditions": { - "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition" - }, - "type": "array" - }, - "currentMetrics": { - "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricStatus" - }, - "type": "array" - }, - "currentReplicas": { - "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas", - "conditions" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricIdentifier": { - "description": "MetricIdentifier defines the name and optionally selector for a metric", - "properties": { - "name": { - "description": "name is the name of the given metric", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricSpec": { - "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricSource", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricSource", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricSource", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricSource", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricStatus": { - "description": "MetricStatus describes the last-read state of a single metric.", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricStatus", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricTarget": { - "description": "MetricTarget defines the target value, average value, or average utilization of a specific metric", - "properties": { - "averageUtilization": { - "description": "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type", - "format": "int32", - "type": "integer" - }, - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - }, - "type": { - "description": "type represents whether the metric type is Utilization, Value, or AverageValue", - "type": "string" - }, - "value": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "value is the target value of the metric (as a quantity)." - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricValueStatus": { - "description": "MetricValueStatus holds the current value for a metric", - "properties": { - "averageUtilization": { - "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - "format": "int32", - "type": "integer" - }, - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "value": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "value is the current value of the metric (as a quantity)." - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ObjectMetricSource": { - "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "describedObject": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "describedObject", - "target", - "metric" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus": { - "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "describedObject": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current", - "describedObject" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.PodsMetricSource": { - "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "properties": { - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "metric", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.PodsMetricStatus": { - "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ResourceMetricSource": { - "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "properties": { - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "name", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus": { - "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "name": { - "description": "Name is the name of the resource in question.", - "type": "string" - } - }, - "required": [ - "name", - "current" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.Job": { - "description": "Job represents the configuration of a single job.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", - "description": "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobStatus", - "description": "Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "Job", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobCondition": { - "description": "JobCondition describes current state of a job.", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition was checked." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transit from one status to another." - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of job condition, Complete or Failed.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.JobList": { - "description": "JobList is a collection of jobs.", - "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" - }, - "items": { - "description": "items is the list of Jobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "JobList", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobSpec": { - "description": "JobSpec describes how the job execution will look like.", - "properties": { - "activeDeadlineSeconds": { - "description": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", - "format": "int64", - "type": "integer" - }, - "backoffLimit": { - "description": "Specifies the number of retries before marking this job failed. Defaults to 6", - "format": "int32", - "type": "integer" - }, - "completions": { - "description": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "format": "int32", - "type": "integer" - }, - "manualSelector": { - "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", - "type": "boolean" - }, - "parallelism": { - "description": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) \u003c .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/" - }, - "ttlSecondsAfterFinished": { - "description": "ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "template" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.JobStatus": { - "description": "JobStatus represents the current state of a Job.", - "properties": { - "active": { - "description": "The number of actively running pods.", - "format": "int32", - "type": "integer" - }, - "completionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC." - }, - "conditions": { - "description": "The latest available observations of an object's current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "failed": { - "description": "The number of pods which reached phase Failed.", - "format": "int32", - "type": "integer" - }, - "startTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job was acknowledged by the job controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC." - }, - "succeeded": { - "description": "The number of pods which reached phase Succeeded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.batch.v1beta1.CronJob": { - "description": "CronJob represents the configuration of a single cron job.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobSpec", - "description": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobStatus", - "description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobList": { - "description": "CronJobList is a collection of cron jobs.", - "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" - }, - "items": { - "description": "items is the list of CronJobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJobList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobSpec": { - "description": "CronJobSpec describes how the job execution will look like and when it will actually run.", - "properties": { - "concurrencyPolicy": { - "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", - "type": "string" - }, - "failedJobsHistoryLimit": { - "description": "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "format": "int32", - "type": "integer" - }, - "jobTemplate": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.JobTemplateSpec", - "description": "Specifies the job that will be created when executing a CronJob." - }, - "schedule": { - "description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", - "type": "string" - }, - "startingDeadlineSeconds": { - "description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - "format": "int64", - "type": "integer" - }, - "successfulJobsHistoryLimit": { - "description": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.", - "format": "int32", - "type": "integer" - }, - "suspend": { - "description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", - "type": "boolean" - } - }, - "required": [ - "schedule", - "jobTemplate" - ], - "type": "object" - }, - "io.k8s.api.batch.v1beta1.CronJobStatus": { - "description": "CronJobStatus represents the current state of a cron job.", - "properties": { - "active": { - "description": "A list of pointers to currently running jobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array" - }, - "lastScheduleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Information when was the last time the job was successfully scheduled." - } - }, - "type": "object" - }, - "io.k8s.api.batch.v1beta1.JobTemplateSpec": { - "description": "JobTemplateSpec describes the data a Job should have when created from a template", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", - "description": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequest": { - "description": "Describes a certificate signing request", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec", - "description": "The certificate request itself and any additional information." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus", - "description": "Derived information about the request." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition": { - "properties": { - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "timestamp for the last update to this condition" - }, - "message": { - "description": "human readable message with details about the request state", - "type": "string" - }, - "reason": { - "description": "brief reason for the request state", - "type": "string" - }, - "type": { - "description": "request approval state, currently Approved or Denied.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestList": { - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequestList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec": { - "description": "This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra information about the requesting user. See user.Info interface for details.", - "type": "object" - }, - "groups": { - "description": "Group information about the requesting user. See user.Info interface for details.", - "items": { - "type": "string" - }, - "type": "array" - }, - "request": { - "description": "Base64-encoded PKCS#10 CSR data", - "format": "byte", - "type": "string" - }, - "signerName": { - "description": "Requested signer for the request. It is a qualified name in the form: `scope-hostname.io/name`. If empty, it will be defaulted:\n 1. If it's a kubelet client certificate, it is assigned\n \"kubernetes.io/kube-apiserver-client-kubelet\".\n 2. If it's a kubelet serving certificate, it is assigned\n \"kubernetes.io/kubelet-serving\".\n 3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\nDistribution of trust for signers happens out of band. You can select on this field using `spec.signerName`.", - "type": "string" - }, - "uid": { - "description": "UID information about the requesting user. See user.Info interface for details.", - "type": "string" - }, - "usages": { - "description": "allowedUsages specifies a set of usage contexts the key will be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3\n https://tools.ietf.org/html/rfc5280#section-4.2.1.12", - "items": { - "type": "string" - }, - "type": "array" - }, - "username": { - "description": "Information about the requesting user. See user.Info interface for details.", - "type": "string" - } - }, - "required": [ - "request" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus": { - "properties": { - "certificate": { - "description": "If request was approved, the controller will place the issued certificate here.", - "format": "byte", - "type": "string" - }, - "conditions": { - "description": "Conditions applied to the request, such as approval or denial.", - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.coordination.v1.Lease": { - "description": "Lease defines a lease concept.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseSpec", - "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - ] - }, - "io.k8s.api.coordination.v1.LeaseList": { - "description": "LeaseList is a list of Lease objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "LeaseList", - "version": "v1" - } - ] - }, - "io.k8s.api.coordination.v1.LeaseSpec": { - "description": "LeaseSpec is a specification of a Lease.", - "properties": { - "acquireTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "acquireTime is a time when the current lease was acquired." - }, - "holderIdentity": { - "description": "holderIdentity contains the identity of the holder of a current lease.", - "type": "string" - }, - "leaseDurationSeconds": { - "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - "format": "int32", - "type": "integer" - }, - "leaseTransitions": { - "description": "leaseTransitions is the number of transitions of a lease between holders.", - "format": "int32", - "type": "integer" - }, - "renewTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "renewTime is a time when the current holder of a lease has last updated the lease." - } - }, - "type": "object" - }, - "io.k8s.api.coordination.v1beta1.Lease": { - "description": "Lease defines a lease concept.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseSpec", - "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.coordination.v1beta1.LeaseList": { - "description": "LeaseList is a list of Lease objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "LeaseList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.coordination.v1beta1.LeaseSpec": { - "description": "LeaseSpec is a specification of a Lease.", - "properties": { - "acquireTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "acquireTime is a time when the current lease was acquired." - }, - "holderIdentity": { - "description": "holderIdentity contains the identity of the holder of a current lease.", - "type": "string" - }, - "leaseDurationSeconds": { - "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - "format": "int32", - "type": "integer" - }, - "leaseTransitions": { - "description": "leaseTransitions is the number of transitions of a lease between holders.", - "format": "int32", - "type": "integer" - }, - "renewTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "renewTime is a time when the current holder of a lease has last updated the lease." - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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).", - "format": "int32", - "type": "integer" - }, - "readOnly": { - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "boolean" - }, - "volumeID": { - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Affinity": { - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity", - "description": "Describes node affinity scheduling rules for the pod." - }, - "podAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity", - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." - }, - "podAntiAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity", - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.AttachedVolume": { - "description": "AttachedVolume describes a volume attached to a node", - "properties": { - "devicePath": { - "description": "DevicePath represents the device path where the volume should be available", - "type": "string" - }, - "name": { - "description": "Name of the attached volume", - "type": "string" - } - }, - "required": [ - "name", - "devicePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureDiskVolumeSource": { - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "properties": { - "cachingMode": { - "description": "Host Caching mode: None, Read Only, Read Write.", - "type": "string" - }, - "diskName": { - "description": "The Name of the data disk in the blob storage", - "type": "string" - }, - "diskURI": { - "description": "The URI the data disk in the blob storage", - "type": "string" - }, - "fsType": { - "description": "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": "Expected values 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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - } - }, - "required": [ - "diskName", - "diskURI" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "secretNamespace": { - "description": "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - }, - "required": [ - "secretName", - "shareName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureFileVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - }, - "required": [ - "secretName", - "shareName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Binding": { - "description": "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The target object that you want to bind to the standard object." - } - }, - "required": [ - "target" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Binding", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.CSIPersistentVolumeSource": { - "description": "Represents storage that is managed by an external CSI volume driver (Beta feature)", - "properties": { - "controllerExpandSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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 is an alpha field and requires enabling ExpandCSIVolumes feature gate. 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." - }, - "controllerPublishSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "driver": { - "description": "Driver is the name of the driver to use for this volume. Required.", - "type": "string" - }, - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".", - "type": "string" - }, - "nodePublishSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "nodeStageSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "readOnly": { - "description": "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "Attributes of the volume to publish.", - "type": "object" - }, - "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" - } - }, - "required": [ - "driver", - "volumeHandle" - ], - "type": "object" - }, - "io.k8s.api.core.v1.CSIVolumeSource": { - "description": "Represents a source location of a volume to mount, managed by an external CSI 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": "Filesystem type 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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "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." - }, - "readOnly": { - "description": "Specifies a read-only configuration for the volume. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - "type": "object" - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Capabilities": { - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "description": "Added capabilities", - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "description": "Removed capabilities", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "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" - }, - "user": { - "description": "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" - } - }, - "required": [ - "monitors" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "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" - }, - "user": { - "description": "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" - } - }, - "required": [ - "monitors" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ClientIPConfig": { - "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", - "properties": { - "timeoutSeconds": { - "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ComponentCondition": { - "description": "Information about the condition of a component.", - "properties": { - "error": { - "description": "Condition error code for a component. For example, a health check error code.", - "type": "string" - }, - "message": { - "description": "Message about the condition for a component. For example, information about a health check.", - "type": "string" - }, - "status": { - "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".", - "type": "string" - }, - "type": { - "description": "Type of condition for a component. Valid value: \"Healthy\"", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ComponentStatus": { - "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info.", - "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" - }, - "conditions": { - "description": "List of component conditions observed", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ComponentStatusList": { - "description": "Status of all the conditions for the component as a list of ComponentStatus objects.", - "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" - }, - "items": { - "description": "List of ComponentStatus objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatusList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMap": { - "description": "ConfigMap holds configuration data for pods to consume.", - "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" - }, - "binaryData": { - "additionalProperties": { - "format": "byte", - "type": "string" - }, - "description": "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.", - "type": "object" - }, - "data": { - "additionalProperties": { - "type": "string" - }, - "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.", - "type": "object" - }, - "immutable": { - "description": "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is an alpha field enabled by ImmutableEphemeralVolumes feature gate.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapEnvSource": { - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "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 must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ConfigMapKeySelector": { - "description": "Selects a key from a ConfigMap.", - "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" - } - }, - "required": [ - "key" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ConfigMapList": { - "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", - "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" - }, - "items": { - "description": "Items is the list of ConfigMaps.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMapList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapNodeConfigSource": { - "description": "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.", - "properties": { - "kubeletConfigKey": { - "description": "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.", - "type": "string" - }, - "name": { - "description": "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "resourceVersion": { - "description": "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - }, - "uid": { - "description": "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - } - }, - "required": [ - "namespace", - "name", - "kubeletConfigKey" - ], - "type": "object" - }, - "io.k8s.api.core.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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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 keys must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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 keys must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Container": { - "description": "A single application container that you want to run within a pod.", - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - }, - "type": "array" - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." - }, - "livenessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "name": { - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", - "type": "string" - }, - "ports": { - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "containerPort", - "protocol" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "containerPort", - "x-kubernetes-patch-strategy": "merge" - }, - "readinessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "startupProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeDevices": { - "description": "volumeDevices is the list of block devices to be used by the container.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerImage": { - "description": "Describe a container image", - "properties": { - "names": { - "description": "Names by which this image is known. e.g. [\"k8s.gcr.io/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]", - "items": { - "type": "string" - }, - "type": "array" - }, - "sizeBytes": { - "description": "The size of the image in bytes.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "names" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerPort": { - "description": "ContainerPort represents a network port in a single container.", - "properties": { - "containerPort": { - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536.", - "format": "int32", - "type": "integer" - }, - "hostIP": { - "description": "What host IP to bind the external port to.", - "type": "string" - }, - "hostPort": { - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", - "format": "int32", - "type": "integer" - }, - "name": { - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", - "type": "string" - }, - "protocol": { - "description": "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".", - "type": "string" - } - }, - "required": [ - "containerPort" - ], - "type": "object" - }, - "io.k8s.api.core.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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning", - "description": "Details about a running container" - }, - "terminated": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated", - "description": "Details about a terminated container" - }, - "waiting": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting", - "description": "Details about a waiting container" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStateRunning": { - "description": "ContainerStateRunning is a running state of a container.", - "properties": { - "startedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which the container was last (re-)started" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStateTerminated": { - "description": "ContainerStateTerminated is a terminated state of a container.", - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'", - "type": "string" - }, - "exitCode": { - "description": "Exit status from the last termination of the container", - "format": "int32", - "type": "integer" - }, - "finishedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which the container last terminated" - }, - "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", - "format": "int32", - "type": "integer" - }, - "startedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which previous execution of the container started" - } - }, - "required": [ - "exitCode" - ], - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStatus": { - "description": "ContainerStatus contains details for the current status of this container.", - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'.", - "type": "string" - }, - "image": { - "description": "The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images", - "type": "string" - }, - "imageID": { - "description": "ImageID of the container's image.", - "type": "string" - }, - "lastState": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", - "description": "Details about the container's last termination condition." - }, - "name": { - "description": "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.", - "type": "string" - }, - "ready": { - "description": "Specifies whether the container has passed its readiness probe.", - "type": "boolean" - }, - "restartCount": { - "description": "The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.", - "format": "int32", - "type": "integer" - }, - "started": { - "description": "Specifies whether the container has 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. Is always true when no startupProbe is defined.", - "type": "boolean" - }, - "state": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", - "description": "Details about the container's current condition." - } - }, - "required": [ - "name", - "ready", - "restartCount", - "image", - "imageID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.DaemonEndpoint": { - "description": "DaemonEndpoint contains information about a single Daemon endpoint.", - "properties": { - "Port": { - "description": "Port number of the given endpoint.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "Port" - ], - "type": "object" - }, - "io.k8s.api.core.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", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.DownwardAPIVolumeFile": { - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "properties": { - "fieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." - }, - "mode": { - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.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 value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "Items is a list of downward API volume file", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EmptyDirVolumeSource": { - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "description": "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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "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: http://kubernetes.io/docs/user-guide/volumes#emptydir" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EndpointAddress": { - "description": "EndpointAddress is a tuple that describes single IP address.", - "properties": { - "hostname": { - "description": "The Hostname of this endpoint", - "type": "string" - }, - "ip": { - "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.", - "type": "string" - }, - "nodeName": { - "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.", - "type": "string" - }, - "targetRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Reference to object providing the endpoint." - } - }, - "required": [ - "ip" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EndpointPort": { - "description": "EndpointPort is a tuple that describes a single port.", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. Field can be enabled with ServiceAppProtocol feature gate.", - "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.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - "type": "string" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EndpointSubset": { - "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309 ]", - "properties": { - "addresses": { - "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - }, - "type": "array" - }, - "notReadyAddresses": { - "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - }, - "type": "array" - }, - "ports": { - "description": "Port numbers available on the related IP addresses.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Endpoints": { - "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "subsets": { - "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EndpointsList": { - "description": "EndpointsList is a list of endpoints.", - "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" - }, - "items": { - "description": "List of endpoints.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EndpointsList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EnvFromSource": { - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "configMapRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource", - "description": "The ConfigMap to select from" - }, - "prefix": { - "description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - "type": "string" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource", - "description": "The Secret to select from" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EnvVar": { - "description": "EnvVar represents an environment variable present in a Container.", - "properties": { - "name": { - "description": "Name of the environment variable. Must be a C_IDENTIFIER.", - "type": "string" - }, - "value": { - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", - "type": "string" - }, - "valueFrom": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource", - "description": "Source for the environment variable's value. Cannot be used if value is not empty." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EnvVarSource": { - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "configMapKeyRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector", - "description": "Selects a key of a ConfigMap." - }, - "fieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", - "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." - }, - "resourceFieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", - "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." - }, - "secretKeyRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector", - "description": "Selects a key of a secret in the pod's namespace" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EphemeralContainer": { - "description": "An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag.", - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - }, - "type": "array" - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", - "description": "Lifecycle is not allowed for ephemeral containers." - }, - "livenessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "name": { - "description": "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.", - "type": "string" - }, - "ports": { - "description": "Ports are not allowed for ephemeral containers.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "type": "array" - }, - "readinessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", - "description": "SecurityContext is not allowed for ephemeral containers." - }, - "startupProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "targetContainerName": { - "description": "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container is run in whatever namespaces are shared for the pod. Note that the container runtime must support this feature.", - "type": "string" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeDevices": { - "description": "volumeDevices is the list of block devices to be used by the container.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Event": { - "description": "Event is a report of an event somewhere in the cluster.", - "properties": { - "action": { - "description": "What action was taken/failed regarding to the Regarding object.", - "type": "string" - }, - "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" - }, - "count": { - "description": "The number of times this event has occurred.", - "format": "int32", - "type": "integer" - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time when this Event was first observed." - }, - "firstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)" - }, - "involvedObject": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The object that this event is about." - }, - "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" - }, - "lastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The time at which the most recent occurrence of this event was recorded." - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "reason": { - "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", - "type": "string" - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Optional secondary object for more complex actions." - }, - "reportingComponent": { - "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", - "type": "string" - }, - "reportingInstance": { - "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSeries", - "description": "Data about the Event series this event represents or nil if it's a singleton Event." - }, - "source": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "The component reporting this event. Should be a short machine understandable string." - }, - "type": { - "description": "Type of this event (Normal, Warning), new types could be added in the future", - "type": "string" - } - }, - "required": [ - "metadata", - "involvedObject" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Event", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventList": { - "description": "EventList is a list of events.", - "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" - }, - "items": { - "description": "List of events", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EventList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "properties": { - "count": { - "description": "Number of occurrences in this series up to the last heartbeat time", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time of the last occurrence observed" - }, - "state": { - "description": "State of this Series: Ongoing or Finished Deprecated. Planned removal for 1.18", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EventSource": { - "description": "EventSource contains information for an event.", - "properties": { - "component": { - "description": "Component from which the event is generated.", - "type": "string" - }, - "host": { - "description": "Node name on which the event is generated.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "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": "Optional: FC target lun number", - "format": "int32", - "type": "integer" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "targetWWNs": { - "description": "Optional: FC target worldwide names (WWNs)", - "items": { - "type": "string" - }, - "type": "array" - }, - "wwids": { - "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.FlexPersistentVolumeSource": { - "description": "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.", - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional: Extra command options if any.", - "type": "object" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "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." - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.v1.FlexVolumeSource": { - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional: Extra command options if any.", - "type": "object" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "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." - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.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": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated", - "type": "string" - }, - "datasetUUID": { - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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", - "format": "int32", - "type": "integer" - }, - "pdName": { - "description": "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" - } - }, - "required": [ - "pdName" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "directory": { - "description": "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 URL", - "type": "string" - }, - "revision": { - "description": "Commit hash for the specified revision.", - "type": "string" - } - }, - "required": [ - "repository" - ], - "type": "object" - }, - "io.k8s.api.core.v1.GlusterfsPersistentVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "properties": { - "endpoints": { - "description": "EndpointsName 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" - } - }, - "required": [ - "endpoints", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.GlusterfsVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "properties": { - "endpoints": { - "description": "EndpointsName 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" - } - }, - "required": [ - "endpoints", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.HTTPGetAction": { - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" - }, - "type": "array" - }, - "path": { - "description": "Path to access on the HTTP server.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "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." - }, - "scheme": { - "description": "Scheme to use for connecting to the host. Defaults to HTTP.", - "type": "string" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.HTTPHeader": { - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "properties": { - "name": { - "description": "The header field name", - "type": "string" - }, - "value": { - "description": "The header field value", - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Handler": { - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.HostAlias": { - "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", - "properties": { - "hostnames": { - "description": "Hostnames for the above IP address.", - "items": { - "type": "string" - }, - "type": "array" - }, - "ip": { - "description": "IP address of the host file entry.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.HostPathVolumeSource": { - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "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": "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": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "format": "int32", - "type": "integer" - }, - "portals": { - "description": "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).", - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "CHAP Secret for iSCSI target and initiator authentication" - }, - "targetPortal": { - "description": "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" - } - }, - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "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": "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": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "format": "int32", - "type": "integer" - }, - "portals": { - "description": "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).", - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "CHAP Secret for iSCSI target and initiator authentication" - }, - "targetPortal": { - "description": "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" - } - }, - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "type": "object" - }, - "io.k8s.api.core.v1.KeyToPath": { - "description": "Maps a string key to a path within a volume.", - "properties": { - "key": { - "description": "The key to project.", - "type": "string" - }, - "mode": { - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "path": { - "description": "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" - } - }, - "required": [ - "key", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Lifecycle": { - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "$ref": "#/definitions/io.k8s.api.core.v1.Handler", - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - }, - "preStop": { - "$ref": "#/definitions/io.k8s.api.core.v1.Handler", - "description": "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LimitRange": { - "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec", - "description": "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeItem": { - "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", - "properties": { - "default": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Default resource requirement limit value by resource name if resource limit is omitted.", - "type": "object" - }, - "defaultRequest": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.", - "type": "object" - }, - "max": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Max usage constraints on this kind by resource name.", - "type": "object" - }, - "maxLimitRequestRatio": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.", - "type": "object" - }, - "min": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Min usage constraints on this kind by resource name.", - "type": "object" - }, - "type": { - "description": "Type of resource that this limit applies to.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.core.v1.LimitRangeList": { - "description": "LimitRangeList is a list of LimitRange items.", - "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" - }, - "items": { - "description": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRangeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeSpec": { - "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", - "properties": { - "limits": { - "description": "Limits is the list of LimitRangeItem objects that are enforced.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" - }, - "type": "array" - } - }, - "required": [ - "limits" - ], - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerIngress": { - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "hostname": { - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", - "type": "string" - }, - "ip": { - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerStatus": { - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LocalVolumeSource": { - "description": "Local represents directly-attached storage with node affinity (Beta feature)", - "properties": { - "fsType": { - "description": "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 fileystem if unspecified.", - "type": "string" - }, - "path": { - "description": "The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).", - "type": "string" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NFSVolumeSource": { - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "server", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Namespace": { - "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec", - "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus", - "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Namespace", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceCondition": { - "description": "NamespaceCondition contains details about state of namespace.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of namespace controller condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NamespaceList": { - "description": "NamespaceList is a list of Namespaces.", - "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" - }, - "items": { - "description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NamespaceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceSpec": { - "description": "NamespaceSpec describes the attributes on a Namespace.", - "properties": { - "finalizers": { - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NamespaceStatus": { - "description": "NamespaceStatus is information about the current status of a Namespace.", - "properties": { - "conditions": { - "description": "Represents the latest available observations of a namespace's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "phase": { - "description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Node": { - "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec", - "description": "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus", - "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Node", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeAddress": { - "description": "NodeAddress contains information for the node's address.", - "properties": { - "address": { - "description": "The node address.", - "type": "string" - }, - "type": { - "description": "Node address type, one of Hostname, ExternalIP or InternalIP.", - "type": "string" - } - }, - "required": [ - "type", - "address" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeAffinity": { - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeCondition": { - "description": "NodeCondition contains condition information for a node.", - "properties": { - "lastHeartbeatTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we got an update on a given condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transit from one status to another." - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of node condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeConfigSource": { - "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", - "properties": { - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource", - "description": "ConfigMap is a reference to a Node's ConfigMap" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeConfigStatus": { - "description": "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.", - "properties": { - "active": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error." - }, - "assigned": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned." - }, - "error": { - "description": "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.", - "type": "string" - }, - "lastKnownGood": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeDaemonEndpoints": { - "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", - "properties": { - "kubeletEndpoint": { - "$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint", - "description": "Endpoint on which Kubelet is listening." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeList": { - "description": "NodeList is the whole list of all Nodes which have been registered with master.", - "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" - }, - "items": { - "description": "List of nodes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NodeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeSelector": { - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "properties": { - "nodeSelectorTerms": { - "description": "Required. A list of node selector terms. The terms are ORed.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" - }, - "type": "array" - } - }, - "required": [ - "nodeSelectorTerms" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeSelectorRequirement": { - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "operator": { - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - "type": "string" - }, - "values": { - "description": "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "operator" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeSelectorTerm": { - "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.", - "properties": { - "matchExpressions": { - "description": "A list of node selector requirements by node's labels.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - }, - "type": "array" - }, - "matchFields": { - "description": "A list of node selector requirements by node's fields.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeSpec": { - "description": "NodeSpec describes the attributes that a node is created with.", - "properties": { - "configSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field" - }, - "externalID": { - "description": "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966", - "type": "string" - }, - "podCIDR": { - "description": "PodCIDR represents the pod IP range assigned to the node.", - "type": "string" - }, - "podCIDRs": { - "description": "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-patch-strategy": "merge" - }, - "providerID": { - "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e", - "type": "string" - }, - "taints": { - "description": "If specified, the node's taints.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Taint" - }, - "type": "array" - }, - "unschedulable": { - "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeStatus": { - "description": "NodeStatus is information about the current status of a node.", - "properties": { - "addresses": { - "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See http://pr.k8s.io/79391 for an example.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "allocatable": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.", - "type": "object" - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object" - }, - "conditions": { - "description": "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "config": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigStatus", - "description": "Status of the config assigned to the node via the dynamic Kubelet config feature." - }, - "daemonEndpoints": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints", - "description": "Endpoints of daemons running on the Node." - }, - "images": { - "description": "List of container images on this node", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" - }, - "type": "array" - }, - "nodeInfo": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo", - "description": "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info" - }, - "phase": { - "description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", - "type": "string" - }, - "volumesAttached": { - "description": "List of volumes that are attached to the node.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume" - }, - "type": "array" - }, - "volumesInUse": { - "description": "List of attachable volumes in use (mounted) by the node.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeSystemInfo": { - "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", - "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. docker://1.5.0).", - "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/getting-system-uuid.html", - "type": "string" - } - }, - "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion", - "operatingSystem", - "architecture" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ObjectFieldSelector": { - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "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" - } - }, - "required": [ - "fieldPath" - ], - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolume": { - "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus", - "description": "Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaim": { - "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", - "description": "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus", - "description": "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { - "description": "PersistentVolumeClaimCondition contails details about state of pvc", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized.", - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimList": { - "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", - "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" - }, - "items": { - "description": "A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaimList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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", - "items": { - "type": "string" - }, - "type": "array" - }, - "dataSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot - Beta) * An existing PVC (PersistentVolumeClaim) * An existing custom resource/object that implements data population (Alpha) In order to use VolumeSnapshot object types, the appropriate feature gate must be enabled (VolumeSnapshotDataSource or AnyVolumeDataSource) 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. If the specified data source is not supported, the volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change." - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over volumes to consider for binding." - }, - "storageClassName": { - "description": "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { - "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", - "properties": { - "accessModes": { - "description": "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - "items": { - "type": "string" - }, - "type": "array" - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Represents the actual resources of the underlying volume.", - "type": "object" - }, - "conditions": { - "description": "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "phase": { - "description": "Phase represents the current phase of PersistentVolumeClaim.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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).", - "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": "Will force the ReadOnly setting in VolumeMounts. Default false.", - "type": "boolean" - } - }, - "required": [ - "claimName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeList": { - "description": "PersistentVolumeList is a list of PersistentVolume items.", - "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" - }, - "items": { - "description": "List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeSpec": { - "description": "PersistentVolumeSpec is the specification of a persistent volume.", - "properties": { - "accessModes": { - "description": "AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", - "items": { - "type": "string" - }, - "type": "array" - }, - "awsElasticBlockStore": { - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", - "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" - }, - "azureDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "azureFile": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object" - }, - "cephfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "cinder": { - "$ref": "#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" - }, - "claimRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding" - }, - "csi": { - "$ref": "#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource", - "description": "CSI represents storage that is handled by an external CSI driver (Beta feature)." - }, - "fc": { - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flexVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." - }, - "flocker": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", - "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" - }, - "gcePersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", - "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" - }, - "glusterfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource", - "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" - }, - "hostPath": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", - "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" - }, - "iscsi": { - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource", - "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." - }, - "local": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalVolumeSource", - "description": "Local represents directly-attached storage with node affinity" - }, - "mountOptions": { - "description": "A list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", - "items": { - "type": "string" - }, - "type": "array" - }, - "nfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" - }, - "nodeAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity", - "description": "NodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume." - }, - "persistentVolumeReclaimPolicy": { - "description": "What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", - "type": "string" - }, - "photonPersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "rbd": { - "$ref": "#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource", - "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" - }, - "scaleIO": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "storageClassName": { - "description": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", - "type": "string" - }, - "storageos": { - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource", - "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" - }, - "volumeMode": { - "description": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.", - "type": "string" - }, - "vsphereVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeStatus": { - "description": "PersistentVolumeStatus is the current status of a persistent volume.", - "properties": { - "message": { - "description": "A human-readable message indicating details about why the volume is in this state.", - "type": "string" - }, - "phase": { - "description": "Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase", - "type": "string" - }, - "reason": { - "description": "Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { - "description": "Represents a Photon Controller persistent disk resource.", - "properties": { - "fsType": { - "description": "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": "ID that identifies Photon Controller persistent disk", - "type": "string" - } - }, - "required": [ - "pdID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Pod": { - "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodStatus", - "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Pod", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodAffinity": { - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodAffinityTerm": { - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over a set of resources, in this case pods." - }, - "namespaces": { - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - "type": "string" - } - }, - "required": [ - "topologyKey" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodAntiAffinity": { - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodCondition": { - "description": "PodCondition contains details for the current condition of this pod.", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodDNSConfig": { - "description": "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.", - "properties": { - "nameservers": { - "description": "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "options": { - "description": "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfigOption" - }, - "type": "array" - }, - "searches": { - "description": "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodDNSConfigOption": { - "description": "PodDNSConfigOption defines DNS resolver options of a pod.", - "properties": { - "name": { - "description": "Required.", - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodIP": { - "description": "IP address information for entries in the (plural) PodIPs field. Each entry includes:\n IP: An IP address allocated to the pod. Routable at least within the cluster.", - "properties": { - "ip": { - "description": "ip is an IP address (IPv4 or IPv6) assigned to the pod", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodList": { - "description": "PodList is a list of Pods.", - "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" - }, - "items": { - "description": "List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodReadinessGate": { - "description": "PodReadinessGate contains the reference to a pod condition", - "properties": { - "conditionType": { - "description": "ConditionType refers to a condition in the pod's condition list with matching type.", - "type": "string" - } - }, - "required": [ - "conditionType" - ], - "type": "object" - }, - "io.k8s.api.core.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----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.", - "format": "int64", - "type": "integer" - }, - "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 defaults to \"Always\".", - "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.", - "format": "int64", - "type": "integer" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "supplementalGroups": { - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", - "items": { - "format": "int64", - "type": "integer" - }, - "type": "array" - }, - "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Sysctl" - }, - "type": "array" - }, - "windowsOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodSpec": { - "description": "PodSpec is a description of a pod.", - "properties": { - "activeDeadlineSeconds": { - "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", - "format": "int64", - "type": "integer" - }, - "affinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.Affinity", - "description": "If specified, the pod's scheduling constraints" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", - "type": "boolean" - }, - "containers": { - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "dnsConfig": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig", - "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy." - }, - "dnsPolicy": { - "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", - "type": "string" - }, - "enableServiceLinks": { - "description": "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.", - "type": "boolean" - }, - "ephemeralContainers": { - "description": "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralContainer" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "hostAliases": { - "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "hostIPC": { - "description": "Use the host's ipc namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostNetwork": { - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.", - "type": "boolean" - }, - "hostPID": { - "description": "Use the host's pid namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostname": { - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", - "type": "string" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "initContainers": { - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "nodeName": { - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.", - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", - "type": "object" - }, - "overhead": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.", - "type": "object" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.", - "type": "string" - }, - "priority": { - "description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", - "format": "int32", - "type": "integer" - }, - "priorityClassName": { - "description": "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", - "type": "string" - }, - "readinessGates": { - "description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodReadinessGate" - }, - "type": "array" - }, - "restartPolicy": { - "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", - "type": "string" - }, - "runtimeClassName": { - "description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.", - "type": "string" - }, - "schedulerName": { - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", - "type": "string" - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext", - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." - }, - "serviceAccount": { - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", - "type": "string" - }, - "serviceAccountName": { - "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "type": "string" - }, - "shareProcessNamespace": { - "description": "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.", - "type": "boolean" - }, - "subdomain": { - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all.", - "type": "string" - }, - "terminationGracePeriodSeconds": { - "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. 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. Defaults to 30 seconds.", - "format": "int64", - "type": "integer" - }, - "tolerations": { - "description": "If specified, the pod's tolerations.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - }, - "type": "array" - }, - "topologySpreadConstraints": { - "description": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. This field is only honored by clusters that enable the EvenPodsSpread feature. All topologySpreadConstraints are ANDed.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "topologyKey", - "whenUnsatisfiable" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "topologyKey", - "x-kubernetes-patch-strategy": "merge" - }, - "volumes": { - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Volume" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge,retainKeys" - } - }, - "required": [ - "containers" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodStatus": { - "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.", - "properties": { - "conditions": { - "description": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "containerStatuses": { - "description": "The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "ephemeralContainerStatuses": { - "description": "Status for any ephemeral containers that have run in this pod. This field is alpha-level and is only populated by servers that enable the EphemeralContainers feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "hostIP": { - "description": "IP address of the host to which the pod is assigned. Empty if not yet scheduled.", - "type": "string" - }, - "initContainerStatuses": { - "description": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "message": { - "description": "A human readable message indicating details about why the pod is in this condition.", - "type": "string" - }, - "nominatedNodeName": { - "description": "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.", - "type": "string" - }, - "phase": { - "description": "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", - "type": "string" - }, - "podIP": { - "description": "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", - "type": "string" - }, - "podIPs": { - "description": "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodIP" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "qosClass": { - "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md", - "type": "string" - }, - "reason": { - "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", - "type": "string" - }, - "startTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodTemplate": { - "description": "PodTemplate describes a template for creating copies of a predefined pod.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateList": { - "description": "PodTemplateList is a list of PodTemplates.", - "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" - }, - "items": { - "description": "List of pod templates", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplateList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateSpec": { - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PortworxVolumeSource": { - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "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": "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" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PreferredSchedulingTerm": { - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "properties": { - "preference": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm", - "description": "A node selector term, associated with the corresponding weight." - }, - "weight": { - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "weight", - "preference" - ], - "type": "object" - }, - "io.k8s.api.core.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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "failureThreshold": { - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - "format": "int32", - "type": "integer" - }, - "httpGet": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "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", - "format": "int32", - "type": "integer" - }, - "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - "format": "int32", - "type": "integer" - }, - "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.", - "format": "int32", - "type": "integer" - }, - "tcpSocket": { - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - }, - "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", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ProjectedVolumeSource": { - "description": "Represents a projected volume source", - "properties": { - "defaultMode": { - "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "sources": { - "description": "list of volume projections", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" - }, - "type": "array" - } - }, - "required": [ - "sources" - ], - "type": "object" - }, - "io.k8s.api.core.v1.QuobyteVolumeSource": { - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "registry", - "volume" - ], - "type": "object" - }, - "io.k8s.api.core.v1.RBDPersistentVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - }, - "required": [ - "monitors", - "image" - ], - "type": "object" - }, - "io.k8s.api.core.v1.RBDVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "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" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - }, - "required": [ - "monitors", - "image" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationController": { - "description": "ReplicationController represents the configuration of a replication controller.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec", - "description": "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus", - "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerCondition": { - "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replication controller condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationControllerList": { - "description": "ReplicationControllerList is a collection of replication controllers.", - "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" - }, - "items": { - "description": "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationControllerList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerSpec": { - "description": "ReplicationControllerSpec is the specification of a replication controller.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "description": "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "type": "object" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationControllerStatus": { - "description": "ReplicationControllerStatus represents the current status of a replication controller.", - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a replication controller's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replication controller.", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed replication controller.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replication controller.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ResourceFieldSelector": { - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "properties": { - "containerName": { - "description": "Container name: required for volumes, optional for env vars", - "type": "string" - }, - "divisor": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "Specifies the output format of the exposed resources, defaults to \"1\"" - }, - "resource": { - "description": "Required: resource to select", - "type": "string" - } - }, - "required": [ - "resource" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ResourceQuota": { - "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec", - "description": "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus", - "description": "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaList": { - "description": "ResourceQuotaList is a list of ResourceQuota items.", - "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" - }, - "items": { - "description": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuotaList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaSpec": { - "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - "properties": { - "hard": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object" - }, - "scopeSelector": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScopeSelector", - "description": "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched." - }, - "scopes": { - "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ResourceQuotaStatus": { - "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", - "properties": { - "hard": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object" - }, - "used": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Used is the current observed total usage of the resource in the namespace.", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ResourceRequirements": { - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object" - }, - "requests": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { - "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", - "properties": { - "fsType": { - "description": "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": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - }, - "required": [ - "gateway", - "system", - "secretRef" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ScaleIOVolumeSource": { - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "properties": { - "fsType": { - "description": "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": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - }, - "required": [ - "gateway", - "system", - "secretRef" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ScopeSelector": { - "description": "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.", - "properties": { - "matchExpressions": { - "description": "A list of scope selector requirements by scope of the resources.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ScopedResourceSelectorRequirement": { - "description": "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.", - "properties": { - "operator": { - "description": "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.", - "type": "string" - }, - "scopeName": { - "description": "The name of the scope that the selector applies to.", - "type": "string" - }, - "values": { - "description": "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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "scopeName", - "operator" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Secret": { - "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", - "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" - }, - "data": { - "additionalProperties": { - "format": "byte", - "type": "string" - }, - "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", - "type": "object" - }, - "immutable": { - "description": "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is an alpha field enabled by ImmutableEphemeralVolumes feature gate.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "stringData": { - "additionalProperties": { - "type": "string" - }, - "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.", - "type": "object" - }, - "type": { - "description": "Used to facilitate programmatic handling of secret data.", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Secret", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.SecretEnvSource": { - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "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 must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SecretKeySelector": { - "description": "SecretKeySelector selects a key of a Secret.", - "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" - } - }, - "required": [ - "key" - ], - "type": "object" - }, - "io.k8s.api.core.v1.SecretList": { - "description": "SecretList is a list of Secret.", - "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" - }, - "items": { - "description": "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "SecretList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "optional": { - "description": "Specify whether the Secret or its keys must be defined", - "type": "boolean" - }, - "secretName": { - "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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", - "type": "boolean" - }, - "capabilities": { - "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities", - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." - }, - "privileged": { - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", - "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.", - "type": "string" - }, - "readOnlyRootFilesystem": { - "description": "Whether this container has a read-only root filesystem. Default is false.", - "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.", - "format": "int64", - "type": "integer" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "windowsOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Service": { - "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec", - "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus", - "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Service", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccount": { - "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", - "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" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.", - "type": "boolean" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "secrets": { - "description": "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccountList": { - "description": "ServiceAccountList is a list of ServiceAccount objects", - "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" - }, - "items": { - "description": "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccountList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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).", - "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.", - "format": "int64", - "type": "integer" - }, - "path": { - "description": "Path is the path relative to the mount point of the file to project the token into.", - "type": "string" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ServiceList": { - "description": "ServiceList holds a list of services.", - "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" - }, - "items": { - "description": "List of services", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServicePort": { - "description": "ServicePort contains information on service's port.", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. Field can be enabled with ServiceAppProtocol feature gate.", - "type": "string" - }, - "name": { - "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.", - "type": "string" - }, - "nodePort": { - "description": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", - "format": "int32", - "type": "integer" - }, - "port": { - "description": "The port that will be exposed by this service.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.", - "type": "string" - }, - "targetPort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ServiceSpec": { - "description": "ServiceSpec describes the attributes that a user creates on a service.", - "properties": { - "clusterIP": { - "description": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "externalIPs": { - "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", - "items": { - "type": "string" - }, - "type": "array" - }, - "externalName": { - "description": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.", - "type": "string" - }, - "externalTrafficPolicy": { - "description": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", - "type": "string" - }, - "healthCheckNodePort": { - "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.", - "format": "int32", - "type": "integer" - }, - "ipFamily": { - "description": "ipFamily specifies whether this Service has a preference for a particular IP family (e.g. IPv4 vs. IPv6). If a specific IP family is requested, the clusterIP field will be allocated from that family, if it is available in the cluster. If no IP family is requested, the cluster's primary IP family will be used. Other IP fields (loadBalancerIP, loadBalancerSourceRanges, externalIPs) and controllers which allocate external load-balancers should use the same IP family. Endpoints for this Service will be of this family. This field is immutable after creation. Assigning a ServiceIPFamily not available in the cluster (e.g. IPv6 in IPv4 only cluster) is an error condition and will fail during clusterIP assignment.", - "type": "string" - }, - "loadBalancerIP": { - "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.", - "type": "string" - }, - "loadBalancerSourceRanges": { - "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/", - "items": { - "type": "string" - }, - "type": "array" - }, - "ports": { - "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "port", - "protocol" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "port", - "x-kubernetes-patch-strategy": "merge" - }, - "publishNotReadyAddresses": { - "description": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery.", - "type": "boolean" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", - "type": "object" - }, - "sessionAffinity": { - "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "sessionAffinityConfig": { - "$ref": "#/definitions/io.k8s.api.core.v1.SessionAffinityConfig", - "description": "sessionAffinityConfig contains the configurations of session affinity." - }, - "topologyKeys": { - "description": "topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value \"*\" may be used to mean \"any topology\". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied.", - "items": { - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ServiceStatus": { - "description": "ServiceStatus represents the current status of a service.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer, if one is present." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SessionAffinityConfig": { - "description": "SessionAffinityConfig represents the configurations of session affinity.", - "properties": { - "clientIP": { - "$ref": "#/definitions/io.k8s.api.core.v1.ClientIPConfig", - "description": "clientIP contains the configurations of Client IP based session affinity." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.StorageOSVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Sysctl": { - "description": "Sysctl defines a kernel parameter to be set", - "properties": { - "name": { - "description": "Name of a property to set", - "type": "string" - }, - "value": { - "description": "Value of a property to set", - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TCPSocketAction": { - "description": "TCPSocketAction describes an action based on opening a socket", - "properties": { - "host": { - "description": "Optional: Host name to connect to, defaults to the pod IP.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "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." - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Taint": { - "description": "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", - "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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints." - }, - "value": { - "description": "The taint value corresponding to the taint key.", - "type": "string" - } - }, - "required": [ - "key", - "effect" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Toleration": { - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "effect": { - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - "type": "string" - }, - "key": { - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - "type": "string" - }, - "operator": { - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - "type": "string" - }, - "tolerationSeconds": { - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - "format": "int64", - "type": "integer" - }, - "value": { - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.TopologySelectorLabelRequirement": { - "description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.", - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "values": { - "description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "values" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TopologySelectorTerm": { - "description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.", - "properties": { - "matchLabelExpressions": { - "description": "A list of topology selector requirements by labels.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.TopologySpreadConstraint": { - "description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology.", - "properties": { - "labelSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain." - }, - "maxSkew": { - "description": "MaxSkew describes the degree to which pods may be unevenly distributed. It's the maximum permitted difference between the number of matching pods in any two topology domains of a given topology type. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. It's a required field. Default value is 1 and 0 is not allowed.", - "format": "int32", - "type": "integer" - }, - "topologyKey": { - "description": "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each \u003ckey, value\u003e as a \"bucket\", and try to put balanced number of pods into each bucket. It's a required field.", - "type": "string" - }, - "whenUnsatisfiable": { - "description": "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it - ScheduleAnyway tells the scheduler to still schedule it It's considered as \"Unsatisfiable\" if and only if placing incoming pod on any topology violates \"MaxSkew\". For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - "type": "string" - } - }, - "required": [ - "maxSkew", - "topologyKey", - "whenUnsatisfiable" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TypedLocalObjectReference": { - "description": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Volume": { - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "properties": { - "awsElasticBlockStore": { - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", - "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" - }, - "azureDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "azureFile": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "cephfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "cinder": { - "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" - }, - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource", - "description": "ConfigMap represents a configMap that should populate this volume" - }, - "csi": { - "$ref": "#/definitions/io.k8s.api.core.v1.CSIVolumeSource", - "description": "CSI (Container Storage Interface) represents storage that is handled by an external CSI driver (Alpha feature)." - }, - "downwardAPI": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource", - "description": "DownwardAPI represents downward API about the pod that should populate this volume" - }, - "emptyDir": { - "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource", - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" - }, - "fc": { - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flexVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." - }, - "flocker": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" - }, - "gcePersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", - "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" - }, - "gitRepo": { - "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource", - "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." - }, - "glusterfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource", - "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" - }, - "hostPath": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", - "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" - }, - "iscsi": { - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource", - "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" - }, - "name": { - "description": "Volume's name. 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": { - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", - "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" - }, - "persistentVolumeClaim": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "photonPersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "projected": { - "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource", - "description": "Items for all in one resources secrets, configmaps, and downward API" - }, - "quobyte": { - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "rbd": { - "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource", - "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" - }, - "scaleIO": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "secret": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource", - "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" - }, - "storageos": { - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource", - "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." - }, - "vsphereVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeDevice": { - "description": "volumeDevice describes a mapping of a raw block device within a container.", - "properties": { - "devicePath": { - "description": "devicePath is the path inside of the container that the device will be mapped to.", - "type": "string" - }, - "name": { - "description": "name must match the name of a persistentVolumeClaim in the pod", - "type": "string" - } - }, - "required": [ - "name", - "devicePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeMount": { - "description": "VolumeMount describes a mounting of a Volume within a container.", - "properties": { - "mountPath": { - "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", - "type": "string" - }, - "mountPropagation": { - "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - "type": "string" - }, - "name": { - "description": "This must match the Name of a Volume.", - "type": "string" - }, - "readOnly": { - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - "type": "boolean" - }, - "subPath": { - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", - "type": "string" - }, - "subPathExpr": { - "description": "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.", - "type": "string" - } - }, - "required": [ - "name", - "mountPath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeNodeAffinity": { - "description": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", - "properties": { - "required": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", - "description": "Required specifies hard node constraints that must be met." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VolumeProjection": { - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection", - "description": "information about the configMap data to project" - }, - "downwardAPI": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection", - "description": "information about the downwardAPI data to project" - }, - "secret": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection", - "description": "information about the secret data to project" - }, - "serviceAccountToken": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection", - "description": "information about the serviceAccountToken data to project" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { - "description": "Represents a vSphere volume resource.", - "properties": { - "fsType": { - "description": "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": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - "type": "string" - }, - "storagePolicyName": { - "description": "Storage Policy Based Management (SPBM) profile name.", - "type": "string" - }, - "volumePath": { - "description": "Path that identifies vSphere volume vmdk", - "type": "string" - } - }, - "required": [ - "volumePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.WeightedPodAffinityTerm": { - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "properties": { - "podAffinityTerm": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm", - "description": "Required. A pod affinity term, associated with the corresponding weight." - }, - "weight": { - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "weight", - "podAffinityTerm" - ], - "type": "object" - }, - "io.k8s.api.core.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" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.Endpoint": { - "description": "Endpoint represents a single logical \"backend\" implementing a service.", - "properties": { - "addresses": { - "description": "addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "conditions": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointConditions", - "description": "conditions contains information about the current status of the endpoint." - }, - "hostname": { - "description": "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must pass DNS Label (RFC 1123) validation.", - "type": "string" - }, - "targetRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "targetRef is a reference to a Kubernetes object that represents this endpoint." - }, - "topology": { - "additionalProperties": { - "type": "string" - }, - "description": "topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\n where the endpoint is located. This should match the corresponding\n node label.\n* topology.kubernetes.io/zone: the value indicates the zone where the\n endpoint is located. This should match the corresponding node label.\n* topology.kubernetes.io/region: the value indicates the region where the\n endpoint is located. This should match the corresponding node label.", - "type": "object" - } - }, - "required": [ - "addresses" - ], - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointConditions": { - "description": "EndpointConditions represents the current condition of an endpoint.", - "properties": { - "ready": { - "description": "ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointPort": { - "description": "EndpointPort represents a Port used by an EndpointSlice", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.", - "type": "string" - }, - "name": { - "description": "The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", - "type": "string" - }, - "port": { - "description": "The port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointSlice": { - "description": "EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.", - "properties": { - "addressType": { - "description": "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.", - "type": "string" - }, - "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" - }, - "endpoints": { - "description": "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.Endpoint" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "ports": { - "description": "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \"all ports\". Each slice may include a maximum of 100 ports.", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointPort" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "required": [ - "addressType", - "endpoints" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.discovery.v1beta1.EndpointSliceList": { - "description": "EndpointSliceList represents a list of endpoint slices", - "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" - }, - "items": { - "description": "List of endpoint slices", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "discovery.k8s.io", - "kind": "EndpointSliceList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.Event": { - "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", - "properties": { - "action": { - "description": "What action was taken/failed regarding to the regarding object.", - "type": "string" - }, - "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" - }, - "deprecatedCount": { - "description": "Deprecated field assuring backward compatibility with core.v1 Event type", - "format": "int32", - "type": "integer" - }, - "deprecatedFirstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Deprecated field assuring backward compatibility with core.v1 Event type" - }, - "deprecatedLastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Deprecated field assuring backward compatibility with core.v1 Event type" - }, - "deprecatedSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "Deprecated field assuring backward compatibility with core.v1 Event type" - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Required. Time when this Event was first observed." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "note": { - "description": "Optional. A human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", - "type": "string" - }, - "reason": { - "description": "Why the action was taken.", - "type": "string" - }, - "regarding": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The object this Event is about. In most cases it's an Object reporting controller implements. E.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object." - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object." - }, - "reportingController": { - "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", - "type": "string" - }, - "reportingInstance": { - "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventSeries", - "description": "Data about the Event series this event represents or nil if it's a singleton Event." - }, - "type": { - "description": "Type of this event (Normal, Warning), new types could be added in the future.", - "type": "string" - } - }, - "required": [ - "eventTime" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventList": { - "description": "EventList is a list of Event objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "EventList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "properties": { - "count": { - "description": "Number of occurrences in this series up to the last heartbeat time", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time when last Event from the series was seen before last heartbeat." - }, - "state": { - "description": "Information whether this series is ongoing or finished. Deprecated. Planned removal for 1.18", - "type": "string" - } - }, - "required": [ - "count", - "lastObservedTime", - "state" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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. Defaults to ImplementationSpecific.", - "type": "string" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath" - }, - "type": "array" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." - }, - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Specifies the port of the referenced service." - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "IngressList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.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/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressRule" - }, - "type": "array" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "secretName": { - "description": "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL 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" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IPBlock": { - "description": "IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\",\"2001:db9::/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.", - "properties": { - "cidr": { - "description": "CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\"", - "type": "string" - }, - "except": { - "description": "Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\" Except values will be rejected if they are outside the CIDR range", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "cidr" - ], - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicy": { - "description": "NetworkPolicy describes what network traffic is allowed for a set of Pods", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec", - "description": "Specification of the desired behavior for this NetworkPolicy." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.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": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - }, - "type": "array" - }, - "to": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.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": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - }, - "type": "array" - }, - "ports": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicyList": { - "description": "NetworkPolicyList is a list of NetworkPolicy objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicyList", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.NetworkPolicyPeer": { - "description": "NetworkPolicyPeer describes a peer to allow traffic from. Only certain combinations of fields are allowed", - "properties": { - "ipBlock": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPBlock", - "description": "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be." - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "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." - }, - "podSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "This 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." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicyPort": { - "description": "NetworkPolicyPort describes a port to allow traffic on", - "properties": { - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "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." - }, - "protocol": { - "description": "The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicySpec": { - "description": "NetworkPolicySpec provides the specification of a NetworkPolicy", - "properties": { - "egress": { - "description": "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule" - }, - "type": "array" - }, - "ingress": { - "description": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule" - }, - "type": "array" - }, - "podSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace." - }, - "policyTypes": { - "description": "List of rule types that the NetworkPolicy relates to. Valid options are \"Ingress\", \"Egress\", or \"Ingress,Egress\". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "podSelector" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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. Defaults to ImplementationSpecific.", - "type": "string" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.HTTPIngressPath" - }, - "type": "array" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." - }, - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Specifies the port of the referenced service." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressClass": { - "description": "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassSpec", - "description": "Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressClassList": { - "description": "IngressClassList is a collection of IngressClasses.", - "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" - }, - "items": { - "description": "Items is the list of IngressClasses.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressClassSpec": { - "description": "IngressClassSpec provides information about the class of an Ingress.", - "properties": { - "controller": { - "description": "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", - "type": "string" - }, - "parameters": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.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/io.k8s.api.networking.v1beta1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressRule" - }, - "type": "array" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressTLS" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.node.v1beta1.Overhead": { - "description": "Overhead structure represents the resource overhead associated with running a pod.", - "properties": { - "podFixed": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "PodFixed represents the fixed resource overhead associated with running a pod.", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.node.v1beta1.RuntimeClass": { - "description": "RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md", - "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" - }, - "handler": { - "description": "Handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node \u0026 CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must conform to the DNS Label (RFC 1123) requirements, and is immutable.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "overhead": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.Overhead", - "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.15, and is only honored by servers that enable the PodOverhead feature." - }, - "scheduling": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.Scheduling", - "description": "Scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes." - } - }, - "required": [ - "handler" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.node.v1beta1.RuntimeClassList": { - "description": "RuntimeClassList is a list of RuntimeClass objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "node.k8s.io", - "kind": "RuntimeClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.node.v1beta1.Scheduling": { - "description": "Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.", - "properties": { - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "description": "nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.", - "type": "object" - }, - "tolerations": { - "description": "tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedCSIDriver": { - "description": "AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.", - "properties": { - "name": { - "description": "Name is the registered name of the CSI driver", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedFlexVolume": { - "description": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", - "properties": { - "driver": { - "description": "driver is the name of the Flexvolume driver.", - "type": "string" - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedHostPath": { - "description": "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", - "properties": { - "pathPrefix": { - "description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", - "type": "string" - }, - "readOnly": { - "description": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.Eviction": { - "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/\u003cpod name\u003e/evictions.", - "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" - }, - "deleteOptions": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions", - "description": "DeleteOptions may be provided" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "ObjectMeta describes the pod that is being evicted." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.FSGroupStrategyOptions": { - "description": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.HostPortRange": { - "description": "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "format": "int32", - "type": "integer" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "min", - "max" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.IDRange": { - "description": "IDRange provides a min/max of an allowed range of IDs.", - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "format": "int64", - "type": "integer" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "min", - "max" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudget": { - "description": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec", - "description": "Specification of the desired behavior of the PodDisruptionBudget." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus", - "description": "Most recently observed status of the PodDisruptionBudget." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetList": { - "description": "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudgetList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec": { - "description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", - "properties": { - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\"." - }, - "minAvailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\"." - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Label query over pods whose evictions are managed by the disruption budget." - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus": { - "description": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.", - "properties": { - "currentHealthy": { - "description": "current number of healthy pods", - "format": "int32", - "type": "integer" - }, - "desiredHealthy": { - "description": "minimum desired number of healthy pods", - "format": "int32", - "type": "integer" - }, - "disruptedPods": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "description": "DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.", - "type": "object" - }, - "disruptionsAllowed": { - "description": "Number of pod disruptions that are currently allowed.", - "format": "int32", - "type": "integer" - }, - "expectedPods": { - "description": "total number of pods counted by this disruption budget", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "disruptionsAllowed", - "currentHealthy", - "desiredHealthy", - "expectedPods" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicy": { - "description": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicySpec", - "description": "spec defines the policy enforced." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicyList": { - "description": "PodSecurityPolicyList is a list of PodSecurityPolicy objects.", - "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" - }, - "items": { - "description": "items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicyList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicySpec": { - "description": "PodSecurityPolicySpec defines the policy enforced.", - "properties": { - "allowPrivilegeEscalation": { - "description": "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - "type": "boolean" - }, - "allowedCSIDrivers": { - "description": "AllowedCSIDrivers is a whitelist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes. This is an alpha field, and is only honored if the API server enables the CSIInlineVolume feature gate.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedCSIDriver" - }, - "type": "array" - }, - "allowedCapabilities": { - "description": "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedFlexVolumes": { - "description": "allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedFlexVolume" - }, - "type": "array" - }, - "allowedHostPaths": { - "description": "allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedHostPath" - }, - "type": "array" - }, - "allowedProcMountTypes": { - "description": "AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedUnsafeSysctls": { - "description": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultAddCapabilities": { - "description": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultAllowPrivilegeEscalation": { - "description": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - "type": "boolean" - }, - "forbiddenSysctls": { - "description": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.", - "items": { - "type": "string" - }, - "type": "array" - }, - "fsGroup": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.FSGroupStrategyOptions", - "description": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext." - }, - "hostIPC": { - "description": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", - "type": "boolean" - }, - "hostNetwork": { - "description": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", - "type": "boolean" - }, - "hostPID": { - "description": "hostPID determines if the policy allows the use of HostPID in the pod spec.", - "type": "boolean" - }, - "hostPorts": { - "description": "hostPorts determines which host port ranges are allowed to be exposed.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.HostPortRange" - }, - "type": "array" - }, - "privileged": { - "description": "privileged determines if a pod can request to be run as privileged.", - "type": "boolean" - }, - "readOnlyRootFilesystem": { - "description": "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - "type": "boolean" - }, - "requiredDropCapabilities": { - "description": "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - "items": { - "type": "string" - }, - "type": "array" - }, - "runAsGroup": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions", - "description": "RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled." - }, - "runAsUser": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions", - "description": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set." - }, - "runtimeClass": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions", - "description": "runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod. If this field is omitted, the pod's runtimeClassName field is unrestricted. Enforcement of this field depends on the RuntimeClass feature gate being enabled." - }, - "seLinux": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SELinuxStrategyOptions", - "description": "seLinux is the strategy that will dictate the allowable labels that may be set." - }, - "supplementalGroups": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions", - "description": "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext." - }, - "volumes": { - "description": "volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "seLinux", - "runAsUser", - "supplementalGroups", - "fsGroup" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions": { - "description": "RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsGroup values that may be set.", - "type": "string" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions": { - "description": "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", - "type": "string" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions": { - "description": "RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.", - "properties": { - "allowedRuntimeClassNames": { - "description": "allowedRuntimeClassNames is a whitelist of RuntimeClass names that may be specified on a pod. A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultRuntimeClassName": { - "description": "defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.", - "type": "string" - } - }, - "required": [ - "allowedRuntimeClassNames" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.SELinuxStrategyOptions": { - "description": "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "rule": { - "description": "rule is the strategy that will dictate the allowable labels that may be set.", - "type": "string" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", - "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions": { - "description": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - "properties": { - "aggregationRule": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.AggregationRule", - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.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.", - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings", - "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" - }, - "items": { - "description": "Items is a list of RoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleList": { - "description": "RoleList is a collection of Roles", - "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" - }, - "items": { - "description": "Items is a list of Roles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "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" - } - }, - "required": [ - "apiGroup", - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.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.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20.", - "properties": { - "aggregationRule": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.AggregationRule", - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.20.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.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.", - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.20.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of RoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleList": { - "description": "RoleList is a collection of Roles Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of Roles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "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" - } - }, - "required": [ - "apiGroup", - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.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.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.scheduling.v1.PriorityClass": { - "description": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "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" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.", - "type": "string" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "value" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - ] - }, - "io.k8s.api.scheduling.v1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "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" - }, - "items": { - "description": "items is the list of PriorityClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClass": { - "description": "DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "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" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.", - "type": "string" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "value" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "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" - }, - "items": { - "description": "items is the list of PriorityClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriver": { - "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverSpec", - "description": "Specification of the CSI Driver." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriverList": { - "description": "CSIDriverList is a collection of CSIDriver objects.", - "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" - }, - "items": { - "description": "items is the list of CSIDriver", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriverList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriverSpec": { - "description": "CSIDriverSpec is the specification of a CSIDriver.", - "properties": { - "attachRequired": { - "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "type": "boolean" - }, - "podInfoOnMount": { - "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "type": "boolean" - }, - "volumeLifecycleModes": { - "description": "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.CSINode": { - "description": "CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata.name must be the Kubernetes node name." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeSpec", - "description": "spec is the specification of CSINode" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSINodeDriver": { - "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - "properties": { - "allocatable": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeNodeResources", - "description": "allocatable represents the volume resources of a node that are available for scheduling. This field is beta." - }, - "name": { - "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - "type": "string" - }, - "nodeID": { - "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - "type": "string" - }, - "topologyKeys": { - "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "nodeID" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.CSINodeList": { - "description": "CSINodeList is a collection of CSINode objects.", - "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" - }, - "items": { - "description": "items is the list of CSINode", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINodeList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSINodeSpec": { - "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - "properties": { - "drivers": { - "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeDriver" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "required": [ - "drivers" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "allowedTopologies": { - "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "items": { - "type": "string" - }, - "type": "array" - }, - "parameters": { - "additionalProperties": { - "type": "string" - }, - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object" - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "required": [ - "provisioner" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "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" - }, - "items": { - "description": "Items is the list of StorageClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSpec", - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentStatus", - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "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" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "inlineVolumeSpec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." - }, - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSource", - "description": "Source represents the volume that should be attached." - } - }, - "required": [ - "attacher", - "source", - "nodeName" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "properties": { - "attachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object" - }, - "detachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." - } - }, - "required": [ - "attached" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time the error was encountered." - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeNodeResources": { - "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - "properties": { - "count": { - "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSIDriver": { - "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. CSI drivers do not need to create the CSIDriver object directly. Instead they may use the cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically creates a CSIDriver object representing the driver. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverSpec", - "description": "Specification of the CSI Driver." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSIDriverList": { - "description": "CSIDriverList is a collection of CSIDriver objects.", - "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" - }, - "items": { - "description": "items is the list of CSIDriver", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriverList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSIDriverSpec": { - "description": "CSIDriverSpec is the specification of a CSIDriver.", - "properties": { - "attachRequired": { - "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "type": "boolean" - }, - "podInfoOnMount": { - "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "type": "boolean" - }, - "volumeLifecycleModes": { - "description": "VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSINode": { - "description": "DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode. See the release notes for more information. CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata.name must be the Kubernetes node name." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeSpec", - "description": "spec is the specification of CSINode" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSINodeDriver": { - "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - "properties": { - "allocatable": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeNodeResources", - "description": "allocatable represents the volume resources of a node that are available for scheduling." - }, - "name": { - "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - "type": "string" - }, - "nodeID": { - "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - "type": "string" - }, - "topologyKeys": { - "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "nodeID" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSINodeList": { - "description": "CSINodeList is a collection of CSINode objects.", - "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" - }, - "items": { - "description": "items is the list of CSINode", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINodeList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSINodeSpec": { - "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - "properties": { - "drivers": { - "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeDriver" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "required": [ - "drivers" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "allowedTopologies": { - "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "items": { - "type": "string" - }, - "type": "array" - }, - "parameters": { - "additionalProperties": { - "type": "string" - }, - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object" - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "required": [ - "provisioner" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "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" - }, - "items": { - "description": "Items is the list of StorageClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSpec", - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentStatus", - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "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" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "inlineVolumeSpec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." - }, - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSource", - "description": "Source represents the volume that should be attached." - } - }, - "required": [ - "attacher", - "source", - "nodeName" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "properties": { - "attachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object" - }, - "detachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." - } - }, - "required": [ - "attached" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time the error was encountered." - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeNodeResources": { - "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - "properties": { - "count": { - "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is nil, then the supported number of volumes on this node is unbounded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition": { - "description": "CustomResourceColumnDefinition specifies a column for server side printing.", - "properties": { - "description": { - "description": "description is a human readable description of this column.", - "type": "string" - }, - "format": { - "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - }, - "jsonPath": { - "description": "jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - "type": "string" - }, - "name": { - "description": "name is a human readable name for the column.", - "type": "string" - }, - "priority": { - "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - } - }, - "required": [ - "name", - "type", - "jsonPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion": { - "description": "CustomResourceConversion describes how to convert different versions of a CR.", - "properties": { - "strategy": { - "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.", - "type": "string" - }, - "webhook": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion", - "description": "webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`." - } - }, - "required": [ - "strategy" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition": { - "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec", - "description": "spec describes how the user wants the resources to appear" - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus", - "description": "status indicates the actual state of the CustomResourceDefinition" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition": { - "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime last time the condition transitioned from one status to another." - }, - "message": { - "description": "message is a human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList": { - "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - "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" - }, - "items": { - "description": "items list individual CustomResourceDefinition objects", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinitionList", - "version": "v1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames": { - "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - "properties": { - "categories": { - "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - "type": "string" - }, - "listKind": { - "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - "type": "string" - }, - "plural": { - "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", - "type": "string" - }, - "shortNames": { - "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singular": { - "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - "type": "string" - } - }, - "required": [ - "plural", - "kind" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec": { - "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - "properties": { - "conversion": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion", - "description": "conversion defines conversion settings for the CRD." - }, - "group": { - "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", - "type": "string" - }, - "names": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", - "description": "names specify the resource and kind names for the custom resource." - }, - "preserveUnknownFields": { - "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting `x-preserve-unknown-fields` to true in `spec.versions[*].schema.openAPIV3Schema`. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - "type": "boolean" - }, - "scope": { - "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.", - "type": "string" - }, - "versions": { - "description": "versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion" - }, - "type": "array" - } - }, - "required": [ - "group", - "names", - "scope", - "versions" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus": { - "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - "properties": { - "acceptedNames": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", - "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." - }, - "conditions": { - "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition" - }, - "type": "array" - }, - "storedVersions": { - "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion": { - "description": "CustomResourceDefinitionVersion describes a version for CRD.", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "name": { - "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", - "type": "string" - }, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation", - "description": "schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource." - }, - "served": { - "description": "served is a flag enabling/disabling this version from being served via REST APIs", - "type": "boolean" - }, - "storage": { - "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - "type": "boolean" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources", - "description": "subresources specify what subresources this version of the defined custom resource have." - } - }, - "required": [ - "name", - "served", - "storage" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale": { - "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - "properties": { - "labelSelectorPath": { - "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - "type": "string" - }, - "specReplicasPath": { - "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - "type": "string" - }, - "statusReplicasPath": { - "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - "type": "string" - } - }, - "required": [ - "specReplicasPath", - "statusReplicasPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus": { - "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources": { - "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - "properties": { - "scale": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale", - "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus", - "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation": { - "description": "CustomResourceValidation is a list of validation methods for CustomResources.", - "properties": { - "openAPIV3Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps", - "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation": { - "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps": { - "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - "properties": { - "$ref": { - "type": "string" - }, - "$schema": { - "type": "string" - }, - "additionalItems": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" - }, - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" - }, - "allOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "anyOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "default": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON", - "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false." - }, - "definitions": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "dependencies": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray" - }, - "type": "object" - }, - "description": { - "type": "string" - }, - "enum": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" - }, - "type": "array" - }, - "example": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" - }, - "exclusiveMaximum": { - "type": "boolean" - }, - "exclusiveMinimum": { - "type": "boolean" - }, - "externalDocs": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation" - }, - "format": { - "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - "type": "string" - }, - "id": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray" - }, - "maxItems": { - "format": "int64", - "type": "integer" - }, - "maxLength": { - "format": "int64", - "type": "integer" - }, - "maxProperties": { - "format": "int64", - "type": "integer" - }, - "maximum": { - "format": "double", - "type": "number" - }, - "minItems": { - "format": "int64", - "type": "integer" - }, - "minLength": { - "format": "int64", - "type": "integer" - }, - "minProperties": { - "format": "int64", - "type": "integer" - }, - "minimum": { - "format": "double", - "type": "number" - }, - "multipleOf": { - "format": "double", - "type": "number" - }, - "not": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "nullable": { - "type": "boolean" - }, - "oneOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "patternProperties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "properties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uniqueItems": { - "type": "boolean" - }, - "x-kubernetes-embedded-resource": { - "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - "type": "boolean" - }, - "x-kubernetes-int-or-string": { - "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - "type": "boolean" - }, - "x-kubernetes-list-map-keys": { - "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - "items": { - "type": "string" - }, - "type": "array" - }, - "x-kubernetes-list-type": { - "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - "type": "string" - }, - "x-kubernetes-map-type": { - "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - "type": "string" - }, - "x-kubernetes-preserve-unknown-fields": { - "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "name is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "namespace is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "path is an optional URL path at which the webhook will be contacted.", - "type": "string" - }, - "port": { - "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - "properties": { - "caBundle": { - "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference", - "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion": { - "description": "WebhookConversion describes how to call a conversion webhook", - "properties": { - "clientConfig": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig", - "description": "clientConfig is the instructions for how to call the webhook if strategy is `Webhook`." - }, - "conversionReviewVersions": { - "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "conversionReviewVersions" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition": { - "description": "CustomResourceColumnDefinition specifies a column for server side printing.", - "properties": { - "JSONPath": { - "description": "JSONPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - "type": "string" - }, - "description": { - "description": "description is a human readable description of this column.", - "type": "string" - }, - "format": { - "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - }, - "name": { - "description": "name is a human readable name for the column.", - "type": "string" - }, - "priority": { - "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - } - }, - "required": [ - "name", - "type", - "JSONPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion": { - "description": "CustomResourceConversion describes how to convert different versions of a CR.", - "properties": { - "conversionReviewVersions": { - "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail. Defaults to `[\"v1beta1\"]`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "strategy": { - "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhookClientConfig to be set.", - "type": "string" - }, - "webhookClientConfig": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig", - "description": "webhookClientConfig is the instructions for how to call the webhook if strategy is `Webhook`. Required when `strategy` is set to `Webhook`." - } - }, - "required": [ - "strategy" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition": { - "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e. Deprecated in v1.16, planned for removal in v1.19. Use apiextensions.k8s.io/v1 CustomResourceDefinition instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec", - "description": "spec describes how the user wants the resources to appear" - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus", - "description": "status indicates the actual state of the CustomResourceDefinition" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition": { - "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime last time the condition transitioned from one status to another." - }, - "message": { - "description": "message is a human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList": { - "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - "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" - }, - "items": { - "description": "items list individual CustomResourceDefinition objects", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinitionList", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames": { - "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - "properties": { - "categories": { - "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - "type": "string" - }, - "listKind": { - "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - "type": "string" - }, - "plural": { - "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", - "type": "string" - }, - "shortNames": { - "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singular": { - "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - "type": "string" - } - }, - "required": [ - "plural", - "kind" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec": { - "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If present, this field configures columns for all versions. Top-level and per-version columns are mutually exclusive. If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "conversion": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion", - "description": "conversion defines conversion settings for the CRD." - }, - "group": { - "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", - "type": "string" - }, - "names": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", - "description": "names specify the resource and kind names for the custom resource." - }, - "preserveUnknownFields": { - "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. If false, schemas must be defined for all versions. Defaults to true in v1beta for backwards compatibility. Deprecated: will be required to be false in v1. Preservation of unknown fields can be specified in the validation schema using the `x-kubernetes-preserve-unknown-fields: true` extension. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - "type": "boolean" - }, - "scope": { - "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`.", - "type": "string" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", - "description": "subresources specify what subresources the defined custom resource has. If present, this field configures subresources for all versions. Top-level and per-version subresources are mutually exclusive." - }, - "validation": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", - "description": "validation describes the schema used for validation and pruning of the custom resource. If present, this validation schema is used to validate all versions. Top-level and per-version schemas are mutually exclusive." - }, - "version": { - "description": "version is the API version of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/...`. Must match the name of the first item in the `versions` list if `version` and `versions` are both specified. Optional if `versions` is specified. Deprecated: use `versions` instead.", - "type": "string" - }, - "versions": { - "description": "versions is the list of all API versions of the defined custom resource. Optional if `version` is specified. The name of the first item in the `versions` list must match the `version` field if `version` and `versions` are both specified. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion" - }, - "type": "array" - } - }, - "required": [ - "group", - "names", - "scope" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus": { - "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - "properties": { - "acceptedNames": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", - "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." - }, - "conditions": { - "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition" - }, - "type": "array" - }, - "storedVersions": { - "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion": { - "description": "CustomResourceDefinitionVersion describes a version for CRD.", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. Top-level and per-version columns are mutually exclusive. Per-version columns must not all be set to identical values (top-level columns should be used instead). If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "name": { - "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", - "type": "string" - }, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", - "description": "schema describes the schema used for validation and pruning of this version of the custom resource. Top-level and per-version schemas are mutually exclusive. Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)." - }, - "served": { - "description": "served is a flag enabling/disabling this version from being served via REST APIs", - "type": "boolean" - }, - "storage": { - "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - "type": "boolean" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", - "description": "subresources specify what subresources this version of the defined custom resource have. Top-level and per-version subresources are mutually exclusive. Per-version subresources must not all be set to identical values (top-level subresources should be used instead)." - } - }, - "required": [ - "name", - "served", - "storage" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale": { - "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - "properties": { - "labelSelectorPath": { - "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - "type": "string" - }, - "specReplicasPath": { - "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - "type": "string" - }, - "statusReplicasPath": { - "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - "type": "string" - } - }, - "required": [ - "specReplicasPath", - "statusReplicasPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus": { - "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources": { - "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - "properties": { - "scale": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale", - "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus", - "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation": { - "description": "CustomResourceValidation is a list of validation methods for CustomResources.", - "properties": { - "openAPIV3Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps", - "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation": { - "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps": { - "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - "properties": { - "$ref": { - "type": "string" - }, - "$schema": { - "type": "string" - }, - "additionalItems": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "allOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "anyOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "default": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON", - "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. CustomResourceDefinitions with defaults must be created using the v1 (or newer) CustomResourceDefinition API." - }, - "definitions": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "dependencies": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray" - }, - "type": "object" - }, - "description": { - "type": "string" - }, - "enum": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "type": "array" - }, - "example": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "exclusiveMaximum": { - "type": "boolean" - }, - "exclusiveMinimum": { - "type": "boolean" - }, - "externalDocs": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation" - }, - "format": { - "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - "type": "string" - }, - "id": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray" - }, - "maxItems": { - "format": "int64", - "type": "integer" - }, - "maxLength": { - "format": "int64", - "type": "integer" - }, - "maxProperties": { - "format": "int64", - "type": "integer" - }, - "maximum": { - "format": "double", - "type": "number" - }, - "minItems": { - "format": "int64", - "type": "integer" - }, - "minLength": { - "format": "int64", - "type": "integer" - }, - "minProperties": { - "format": "int64", - "type": "integer" - }, - "minimum": { - "format": "double", - "type": "number" - }, - "multipleOf": { - "format": "double", - "type": "number" - }, - "not": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "nullable": { - "type": "boolean" - }, - "oneOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "patternProperties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "properties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uniqueItems": { - "type": "boolean" - }, - "x-kubernetes-embedded-resource": { - "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - "type": "boolean" - }, - "x-kubernetes-int-or-string": { - "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - "type": "boolean" - }, - "x-kubernetes-list-map-keys": { - "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - "items": { - "type": "string" - }, - "type": "array" - }, - "x-kubernetes-list-type": { - "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - "type": "string" - }, - "x-kubernetes-map-type": { - "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - "type": "string" - }, - "x-kubernetes-preserve-unknown-fields": { - "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "name is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "namespace is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "path is an optional URL path at which the webhook will be contacted.", - "type": "string" - }, - "port": { - "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - "properties": { - "caBundle": { - "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference", - "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.api.resource.Quantity": { - "description": "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n (Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\u003cdigit\u003e ::= 0 | 1 | ... | 9 \u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e \u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e \u003csign\u003e ::= \"+\" | \"-\" \u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e \u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e \u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup": { - "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", - "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" - }, - "name": { - "description": "name is the name of the group.", - "type": "string" - }, - "preferredVersion": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery", - "description": "preferredVersion is the version preferred by the API server, which probably is the storage version." - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - }, - "type": "array" - }, - "versions": { - "description": "versions are the versions supported in this group.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" - }, - "type": "array" - } - }, - "required": [ - "name", - "versions" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroup", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList": { - "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", - "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" - }, - "groups": { - "description": "groups is a list of APIGroup.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - }, - "type": "array" - }, - "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" - } - }, - "required": [ - "groups" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroupList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": { - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "properties": { - "categories": { - "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')", - "items": { - "type": "string" - }, - "type": "array" - }, - "group": { - "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".", - "type": "string" - }, - "kind": { - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')", - "type": "string" - }, - "name": { - "description": "name is the plural name of the resource.", - "type": "string" - }, - "namespaced": { - "description": "namespaced indicates if a resource is namespaced or not.", - "type": "boolean" - }, - "shortNames": { - "description": "shortNames is a list of suggested short names of the resource.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singularName": { - "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", - "type": "string" - }, - "storageVersionHash": { - "description": "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.", - "type": "string" - }, - "verbs": { - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)", - "items": { - "type": "string" - }, - "type": "array" - }, - "version": { - "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".", - "type": "string" - } - }, - "required": [ - "name", - "singularName", - "namespaced", - "kind", - "verbs" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList": { - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "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" - }, - "groupVersion": { - "description": "groupVersion is the group and version this APIResourceList is for.", - "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" - }, - "resources": { - "description": "resources contains the name of the resources and if they are namespaced.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" - }, - "type": "array" - } - }, - "required": [ - "groupVersion", - "resources" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIResourceList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions": { - "description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", - "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" - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - }, - "type": "array" - }, - "versions": { - "description": "versions are the api versions that are available.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "versions", - "serverAddressByClientCIDRs" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIVersions", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions": { - "description": "DeleteOptions may be provided when deleting an API object.", - "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" - }, - "dryRun": { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "items": { - "type": "string" - }, - "type": "array" - }, - "gracePeriodSeconds": { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "format": "int64", - "type": "integer" - }, - "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" - }, - "orphanDependents": { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "type": "boolean" - }, - "preconditions": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." - }, - "propagationPolicy": { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta2" - }, - { - "group": "auditregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v2beta1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v2beta2" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "coordination.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "coordination.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "discovery.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "discovery.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "flowcontrol.apiserver.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "networking.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "node.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "node.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "policy", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": { - "description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:\u003cname\u003e', where \u003cname\u003e is the name of a field in a struct, or key in a map 'v:\u003cvalue\u003e', where \u003cvalue\u003e is the exact json formatted value of a list item 'i:\u003cindex\u003e', where \u003cindex\u003e is position of a item in a list 'k:\u003ckeys\u003e', where \u003ckeys\u003e is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff", - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery": { - "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", - "properties": { - "groupVersion": { - "description": "groupVersion specifies the API group and version in the form \"group/version\"", - "type": "string" - }, - "version": { - "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.", - "type": "string" - } - }, - "required": [ - "groupVersion", - "version" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "properties": { - "key": { - "description": "key is the label key that the selector applies to.", - "type": "string", - "x-kubernetes-patch-merge-key": "key", - "x-kubernetes-patch-strategy": "merge" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "operator" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": { - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "continue": { - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", - "type": "string" - }, - "remainingItemCount": { - "description": "remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.", - "format": "int64", - "type": "integer" - }, - "resourceVersion": { - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - "type": "string" - }, - "selfLink": { - "description": "selfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1", - "description": "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type." - }, - "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" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": { - "description": "MicroTime is version of Time with microsecond level precision.", - "format": "date-time", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "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: http://kubernetes.io/docs/user-guide/annotations", - "type": "object" - }, - "clusterName": { - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", - "type": "string" - }, - "creationTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "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" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "deletionTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "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" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-patch-strategy": "merge" - }, - "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 NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\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.", - "format": "int64", - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "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: http://kubernetes.io/docs/user-guide/labels", - "type": "object" - }, - "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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry" - }, - "type": "array" - }, - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "namespace": { - "description": "Namespace defines the space within 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: http://kubernetes.io/docs/user-guide/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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "uid", - "x-kubernetes-patch-strategy": "merge" - }, - "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": "SelfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - "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: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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.", - "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. 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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "uid": { - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Patch": { - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions": { - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "resourceVersion": { - "description": "Specifies the target ResourceVersion", - "type": "string" - }, - "uid": { - "description": "Specifies the target UID.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR": { - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "properties": { - "clientCIDR": { - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.", - "type": "string" - }, - "serverAddress": { - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", - "type": "string" - } - }, - "required": [ - "clientCIDR", - "serverAddress" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Status": { - "description": "Status is a return value for calls that don't return other objects.", - "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" - }, - "code": { - "description": "Suggested HTTP return code for this status, 0 if not set.", - "format": "int32", - "type": "integer" - }, - "details": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." - }, - "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" - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - }, - "reason": { - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", - "type": "string" - }, - "status": { - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Status", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause": { - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "field": { - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", - "type": "string" - }, - "message": { - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", - "type": "string" - }, - "reason": { - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails": { - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "causes": { - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" - }, - "type": "array" - }, - "group": { - "description": "The group attribute of the resource associated with the status StatusReason.", - "type": "string" - }, - "kind": { - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", - "type": "string" - }, - "retryAfterSeconds": { - "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", - "format": "int32", - "type": "integer" - }, - "uid": { - "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { - "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", - "format": "date-time", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent": { - "description": "Event represents a single event to a watched resource.", - "properties": { - "object": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", - "description": "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context." - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "object" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta2" - }, - { - "group": "auditregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v2beta1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v2beta2" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "coordination.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "coordination.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "discovery.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "discovery.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "flowcontrol.apiserver.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "networking.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "node.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "node.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "policy", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.runtime.RawExtension": { - "description": "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.Object `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// External package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// On the wire, the JSON will look something like this: {\n\t\"kind\":\"MyAPIObject\",\n\t\"apiVersion\":\"v1\",\n\t\"myPlugin\": {\n\t\t\"kind\":\"PluginA\",\n\t\t\"aOption\":\"foo\",\n\t},\n}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)", - "type": "object" - }, - "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { - "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.", - "format": "int-or-string", - "type": "string" - }, - "io.k8s.apimachinery.pkg.version.Info": { - "description": "Info contains versioning information. how we'll want to distribute that information.", - "properties": { - "buildDate": { - "type": "string" - }, - "compiler": { - "type": "string" - }, - "gitCommit": { - "type": "string" - }, - "gitTreeState": { - "type": "string" - }, - "gitVersion": { - "type": "string" - }, - "goVersion": { - "type": "string" - }, - "major": { - "type": "string" - }, - "minor": { - "type": "string" - }, - "platform": { - "type": "string" - } - }, - "required": [ - "major", - "minor", - "gitVersion", - "gitCommit", - "gitTreeState", - "buildDate", - "goVersion", - "compiler", - "platform" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec", - "description": "Spec contains information for locating and communicating with a server" - }, - "status": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus", - "description": "Status contains derived information about an API server" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition": { - "description": "APIServiceCondition describes the state of an APIService at a particular point", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "format": "int32", - "type": "integer" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference", - "description": "Service is a reference to the service for this API server. It must communicate on port 443 If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "groupPriorityMinimum", - "versionPriority" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec", - "description": "Spec contains information for locating and communicating with a server" - }, - "status": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus", - "description": "Status contains derived information about an API server" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition": { - "description": "APIServiceCondition describes the state of an APIService at a particular point", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "format": "int32", - "type": "integer" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference", - "description": "Service is a reference to the service for this API server. It must communicate on port 443 If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "groupPriorityMinimum", - "versionPriority" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - } - }, - "info": { - "title": "Kubernetes", - "version": "v1.18.6" - }, - "paths": { - "/api/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available API versions", - "operationId": "getCoreAPIVersions", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core" - ] - } - }, - "/api/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoreV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ] - } - }, - "/api/v1/componentstatuses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list objects of kind ComponentStatus", - "operationId": "listCoreV1ComponentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatusList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/componentstatuses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ComponentStatus", - "operationId": "readCoreV1ComponentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ComponentStatus", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ] - }, - "/api/v1/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ConfigMap", - "operationId": "listCoreV1ConfigMapForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Endpoints", - "operationId": "listCoreV1EndpointsForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listCoreV1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind LimitRange", - "operationId": "listCoreV1LimitRangeForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/namespaces": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Namespace", - "operationId": "listCoreV1Namespace", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Namespace", - "operationId": "createCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/bindings": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Binding", - "operationId": "createCoreV1NamespacedBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/configmaps": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ConfigMap", - "operationId": "deleteCoreV1CollectionNamespacedConfigMap", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ConfigMap", - "operationId": "listCoreV1NamespacedConfigMap", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ConfigMap", - "operationId": "createCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/configmaps/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ConfigMap", - "operationId": "deleteCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ConfigMap", - "operationId": "readCoreV1NamespacedConfigMap", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ConfigMap", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ConfigMap", - "operationId": "patchCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ConfigMap", - "operationId": "replaceCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/endpoints": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Endpoints", - "operationId": "deleteCoreV1CollectionNamespacedEndpoints", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Endpoints", - "operationId": "listCoreV1NamespacedEndpoints", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create Endpoints", - "operationId": "createCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/endpoints/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete Endpoints", - "operationId": "deleteCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Endpoints", - "operationId": "readCoreV1NamespacedEndpoints", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Endpoints", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Endpoints", - "operationId": "patchCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Endpoints", - "operationId": "replaceCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteCoreV1CollectionNamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listCoreV1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readCoreV1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/limitranges": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of LimitRange", - "operationId": "deleteCoreV1CollectionNamespacedLimitRange", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind LimitRange", - "operationId": "listCoreV1NamespacedLimitRange", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LimitRange", - "operationId": "createCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/limitranges/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a LimitRange", - "operationId": "deleteCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified LimitRange", - "operationId": "readCoreV1NamespacedLimitRange", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the LimitRange", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified LimitRange", - "operationId": "patchCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified LimitRange", - "operationId": "replaceCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PersistentVolumeClaim", - "operationId": "deleteCoreV1CollectionNamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolumeClaim", - "operationId": "listCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PersistentVolumeClaim", - "operationId": "createCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PersistentVolumeClaim", - "operationId": "deleteCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PersistentVolumeClaim", - "operationId": "readCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PersistentVolumeClaim", - "operationId": "patchCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PersistentVolumeClaim", - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PersistentVolumeClaim", - "operationId": "readCoreV1NamespacedPersistentVolumeClaimStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PersistentVolumeClaim", - "operationId": "patchCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PersistentVolumeClaim", - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Pod", - "operationId": "deleteCoreV1CollectionNamespacedPod", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Pod", - "operationId": "listCoreV1NamespacedPod", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Pod", - "operationId": "createCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Pod", - "operationId": "deleteCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Pod", - "operationId": "readCoreV1NamespacedPod", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Pod", - "operationId": "patchCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Pod", - "operationId": "replaceCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/attach": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to attach of Pod", - "operationId": "connectCoreV1GetNamespacedPodAttach", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodAttachOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the PodAttachOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", - "in": "query", - "name": "stderr", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", - "in": "query", - "name": "stdin", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", - "in": "query", - "name": "stdout", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", - "in": "query", - "name": "tty", - "type": "boolean", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to attach of Pod", - "operationId": "connectCoreV1PostNamespacedPodAttach", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodAttachOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/binding": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Binding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create binding of a Pod", - "operationId": "createCoreV1NamespacedPodBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/eviction": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Eviction", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create eviction of a Pod", - "operationId": "createCoreV1NamespacedPodEviction", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/exec": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to exec of Pod", - "operationId": "connectCoreV1GetNamespacedPodExec", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodExecOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "Command is the remote command to execute. argv array. Not executed within a shell.", - "in": "query", - "name": "command", - "type": "string", - "uniqueItems": true - }, - { - "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the PodExecOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Redirect the standard error stream of the pod for this call. Defaults to true.", - "in": "query", - "name": "stderr", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", - "in": "query", - "name": "stdin", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Redirect the standard output stream of the pod for this call. Defaults to true.", - "in": "query", - "name": "stdout", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", - "in": "query", - "name": "tty", - "type": "boolean", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to exec of Pod", - "operationId": "connectCoreV1PostNamespacedPodExec", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodExecOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/log": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read log of the specified Pod", - "operationId": "readCoreV1NamespacedPodLog", - "produces": [ - "text/plain", - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "The container for which to stream logs. Defaults to only container if there is one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "Follow the log stream of the pod. Defaults to false.", - "in": "query", - "name": "follow", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).", - "in": "query", - "name": "insecureSkipTLSVerifyBackend", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", - "in": "query", - "name": "limitBytes", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "Return previous terminated container logs. Defaults to false.", - "in": "query", - "name": "previous", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "in": "query", - "name": "sinceSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", - "in": "query", - "name": "tailLines", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", - "in": "query", - "name": "timestamps", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/portforward": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to portforward of Pod", - "operationId": "connectCoreV1GetNamespacedPodPortforward", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodPortForwardOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodPortForwardOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "List of ports to forward Required when using WebSockets", - "in": "query", - "name": "ports", - "type": "integer", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to portforward of Pod", - "operationId": "connectCoreV1PostNamespacedPodPortforward", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodPortForwardOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Pod", - "operationId": "connectCoreV1DeleteNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Pod", - "operationId": "connectCoreV1GetNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Pod", - "operationId": "connectCoreV1HeadNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Pod", - "operationId": "connectCoreV1OptionsNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to pod.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Pod", - "operationId": "connectCoreV1PatchNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Pod", - "operationId": "connectCoreV1PostNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Pod", - "operationId": "connectCoreV1PutNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Pod", - "operationId": "connectCoreV1DeleteNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Pod", - "operationId": "connectCoreV1GetNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Pod", - "operationId": "connectCoreV1HeadNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Pod", - "operationId": "connectCoreV1OptionsNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to pod.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Pod", - "operationId": "connectCoreV1PatchNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Pod", - "operationId": "connectCoreV1PostNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Pod", - "operationId": "connectCoreV1PutNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Pod", - "operationId": "readCoreV1NamespacedPodStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Pod", - "operationId": "patchCoreV1NamespacedPodStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Pod", - "operationId": "replaceCoreV1NamespacedPodStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/podtemplates": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodTemplate", - "operationId": "deleteCoreV1CollectionNamespacedPodTemplate", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodTemplate", - "operationId": "listCoreV1NamespacedPodTemplate", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodTemplate", - "operationId": "createCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/podtemplates/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodTemplate", - "operationId": "deleteCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodTemplate", - "operationId": "readCoreV1NamespacedPodTemplate", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodTemplate", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodTemplate", - "operationId": "patchCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodTemplate", - "operationId": "replaceCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ReplicationController", - "operationId": "deleteCoreV1CollectionNamespacedReplicationController", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicationController", - "operationId": "listCoreV1NamespacedReplicationController", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ReplicationController", - "operationId": "createCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ReplicationController", - "operationId": "deleteCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationController", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationControllerScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationControllerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ResourceQuota", - "operationId": "deleteCoreV1CollectionNamespacedResourceQuota", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ResourceQuota", - "operationId": "listCoreV1NamespacedResourceQuota", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ResourceQuota", - "operationId": "createCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ResourceQuota", - "operationId": "deleteCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ResourceQuota", - "operationId": "readCoreV1NamespacedResourceQuota", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ResourceQuota", - "operationId": "patchCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ResourceQuota", - "operationId": "replaceCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ResourceQuota", - "operationId": "readCoreV1NamespacedResourceQuotaStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ResourceQuota", - "operationId": "patchCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ResourceQuota", - "operationId": "replaceCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/secrets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Secret", - "operationId": "deleteCoreV1CollectionNamespacedSecret", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Secret", - "operationId": "listCoreV1NamespacedSecret", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Secret", - "operationId": "createCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/secrets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Secret", - "operationId": "deleteCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Secret", - "operationId": "readCoreV1NamespacedSecret", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Secret", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Secret", - "operationId": "patchCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Secret", - "operationId": "replaceCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/serviceaccounts": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ServiceAccount", - "operationId": "deleteCoreV1CollectionNamespacedServiceAccount", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ServiceAccount", - "operationId": "listCoreV1NamespacedServiceAccount", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ServiceAccount", - "operationId": "createCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/serviceaccounts/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ServiceAccount", - "operationId": "deleteCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ServiceAccount", - "operationId": "readCoreV1NamespacedServiceAccount", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceAccount", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ServiceAccount", - "operationId": "patchCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ServiceAccount", - "operationId": "replaceCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Service", - "operationId": "listCoreV1NamespacedService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Service", - "operationId": "createCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Service", - "operationId": "deleteCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Service", - "operationId": "readCoreV1NamespacedService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Service", - "operationId": "patchCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Service", - "operationId": "replaceCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Service", - "operationId": "connectCoreV1DeleteNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Service", - "operationId": "connectCoreV1GetNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Service", - "operationId": "connectCoreV1HeadNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Service", - "operationId": "connectCoreV1OptionsNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Service", - "operationId": "connectCoreV1PatchNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Service", - "operationId": "connectCoreV1PostNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Service", - "operationId": "connectCoreV1PutNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Service", - "operationId": "connectCoreV1DeleteNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Service", - "operationId": "connectCoreV1GetNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Service", - "operationId": "connectCoreV1HeadNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Service", - "operationId": "connectCoreV1OptionsNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Service", - "operationId": "connectCoreV1PatchNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Service", - "operationId": "connectCoreV1PostNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Service", - "operationId": "connectCoreV1PutNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Service", - "operationId": "readCoreV1NamespacedServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Service", - "operationId": "patchCoreV1NamespacedServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Service", - "operationId": "replaceCoreV1NamespacedServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Namespace", - "operationId": "deleteCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Namespace", - "operationId": "readCoreV1Namespace", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Namespace", - "operationId": "patchCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Namespace", - "operationId": "replaceCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}/finalize": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "put": { - "consumes": [ - "*/*" - ], - "description": "replace finalize of the specified Namespace", - "operationId": "replaceCoreV1NamespaceFinalize", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Namespace", - "operationId": "readCoreV1NamespaceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Namespace", - "operationId": "patchCoreV1NamespaceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Namespace", - "operationId": "replaceCoreV1NamespaceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/nodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Node", - "operationId": "deleteCoreV1CollectionNode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Node", - "operationId": "listCoreV1Node", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Node", - "operationId": "createCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Node", - "operationId": "deleteCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Node", - "operationId": "readCoreV1Node", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Node", - "operationId": "patchCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Node", - "operationId": "replaceCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Node", - "operationId": "connectCoreV1DeleteNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Node", - "operationId": "connectCoreV1GetNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Node", - "operationId": "connectCoreV1HeadNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Node", - "operationId": "connectCoreV1OptionsNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NodeProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to node.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Node", - "operationId": "connectCoreV1PatchNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Node", - "operationId": "connectCoreV1PostNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Node", - "operationId": "connectCoreV1PutNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Node", - "operationId": "connectCoreV1DeleteNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Node", - "operationId": "connectCoreV1GetNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Node", - "operationId": "connectCoreV1HeadNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Node", - "operationId": "connectCoreV1OptionsNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NodeProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to node.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Node", - "operationId": "connectCoreV1PatchNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Node", - "operationId": "connectCoreV1PostNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Node", - "operationId": "connectCoreV1PutNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Node", - "operationId": "readCoreV1NodeStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Node", - "operationId": "patchCoreV1NodeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Node", - "operationId": "replaceCoreV1NodeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolumeClaim", - "operationId": "listCoreV1PersistentVolumeClaimForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/persistentvolumes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PersistentVolume", - "operationId": "deleteCoreV1CollectionPersistentVolume", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolume", - "operationId": "listCoreV1PersistentVolume", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PersistentVolume", - "operationId": "createCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PersistentVolume", - "operationId": "deleteCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PersistentVolume", - "operationId": "readCoreV1PersistentVolume", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PersistentVolume", - "operationId": "patchCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PersistentVolume", - "operationId": "replaceCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumes/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PersistentVolume", - "operationId": "readCoreV1PersistentVolumeStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PersistentVolume", - "operationId": "patchCoreV1PersistentVolumeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PersistentVolume", - "operationId": "replaceCoreV1PersistentVolumeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Pod", - "operationId": "listCoreV1PodForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodTemplate", - "operationId": "listCoreV1PodTemplateForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicationController", - "operationId": "listCoreV1ReplicationControllerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ResourceQuota", - "operationId": "listCoreV1ResourceQuotaForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Secret", - "operationId": "listCoreV1SecretForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ServiceAccount", - "operationId": "listCoreV1ServiceAccountForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Service", - "operationId": "listCoreV1ServiceForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ConfigMapListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1EndpointsListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1LimitRangeListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespaceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedConfigMapList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ConfigMap. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedConfigMap", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ConfigMap", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedEndpointsList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Endpoints. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedEndpoints", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Endpoints", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedLimitRangeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind LimitRange. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedLimitRange", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the LimitRange", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPersistentVolumeClaimList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPersistentVolumeClaim", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPodList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Pod. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPod", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPodTemplateList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodTemplate. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPodTemplate", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodTemplate", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedReplicationControllerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ReplicationController. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedReplicationController", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedResourceQuotaList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedResourceQuota", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedSecretList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Secret. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedSecret", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Secret", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedServiceAccountList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedServiceAccount", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ServiceAccount", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Service. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Namespace. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1Namespace", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/nodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/nodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Node. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1Node", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PersistentVolumeClaimListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PersistentVolumeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1PersistentVolume", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PodListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PodTemplateListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ReplicationControllerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ResourceQuotaListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1SecretListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ServiceAccountListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ServiceListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available API versions", - "operationId": "getAPIVersions", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apis" - ] - } - }, - "/apis/admissionregistration.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAdmissionregistrationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAdmissionregistrationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1CollectionMutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind MutatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a MutatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified MutatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified MutatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified MutatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1CollectionValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ValidatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ValidatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ValidatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ValidatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ValidatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1MutatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1MutatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAdmissionregistrationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1CollectionMutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind MutatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a MutatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified MutatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified MutatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified MutatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1CollectionValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ValidatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ValidatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ValidatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ValidatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ValidatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getApiextensionsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions" - ] - } - }, - "/apis/apiextensions.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiextensionsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ] - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CustomResourceDefinition", - "operationId": "deleteApiextensionsV1CollectionCustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CustomResourceDefinition", - "operationId": "listApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CustomResourceDefinition", - "operationId": "createApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CustomResourceDefinition", - "operationId": "deleteApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1CustomResourceDefinitionStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiextensionsV1CustomResourceDefinitionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiextensionsV1CustomResourceDefinition", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiextensionsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ] - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CustomResourceDefinition", - "operationId": "deleteApiextensionsV1beta1CollectionCustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CustomResourceDefinition", - "operationId": "listApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CustomResourceDefinition", - "operationId": "createApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CustomResourceDefinition", - "operationId": "deleteApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1beta1CustomResourceDefinitionStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiextensionsV1beta1CustomResourceDefinitionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiextensionsV1beta1CustomResourceDefinition", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getApiregistrationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration" - ] - } - }, - "/apis/apiregistration.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiregistrationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ] - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of APIService", - "operationId": "deleteApiregistrationV1CollectionAPIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind APIService", - "operationId": "listApiregistrationV1APIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an APIService", - "operationId": "createApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an APIService", - "operationId": "deleteApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified APIService", - "operationId": "readApiregistrationV1APIService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified APIService", - "operationId": "patchApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified APIService", - "operationId": "replaceApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified APIService", - "operationId": "readApiregistrationV1APIServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified APIService", - "operationId": "patchApiregistrationV1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified APIService", - "operationId": "replaceApiregistrationV1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiregistrationV1APIServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiregistrationV1APIService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiregistrationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ] - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of APIService", - "operationId": "deleteApiregistrationV1beta1CollectionAPIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind APIService", - "operationId": "listApiregistrationV1beta1APIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an APIService", - "operationId": "createApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an APIService", - "operationId": "deleteApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified APIService", - "operationId": "readApiregistrationV1beta1APIService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified APIService", - "operationId": "patchApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified APIService", - "operationId": "replaceApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified APIService", - "operationId": "readApiregistrationV1beta1APIServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified APIService", - "operationId": "patchApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified APIService", - "operationId": "replaceApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiregistrationV1beta1APIServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiregistrationV1beta1APIService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAppsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps" - ] - } - }, - "/apis/apps/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAppsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ] - } - }, - "/apis/apps/v1/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ControllerRevision", - "operationId": "listAppsV1ControllerRevisionForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind DaemonSet", - "operationId": "listAppsV1DaemonSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Deployment", - "operationId": "listAppsV1DeploymentForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ControllerRevision", - "operationId": "deleteAppsV1CollectionNamespacedControllerRevision", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ControllerRevision", - "operationId": "listAppsV1NamespacedControllerRevision", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ControllerRevision", - "operationId": "createAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ControllerRevision", - "operationId": "deleteAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ControllerRevision", - "operationId": "readAppsV1NamespacedControllerRevision", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ControllerRevision", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ControllerRevision", - "operationId": "patchAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ControllerRevision", - "operationId": "replaceAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of DaemonSet", - "operationId": "deleteAppsV1CollectionNamespacedDaemonSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind DaemonSet", - "operationId": "listAppsV1NamespacedDaemonSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a DaemonSet", - "operationId": "createAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a DaemonSet", - "operationId": "deleteAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified DaemonSet", - "operationId": "readAppsV1NamespacedDaemonSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified DaemonSet", - "operationId": "patchAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified DaemonSet", - "operationId": "replaceAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified DaemonSet", - "operationId": "readAppsV1NamespacedDaemonSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified DaemonSet", - "operationId": "patchAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified DaemonSet", - "operationId": "replaceAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Deployment", - "operationId": "deleteAppsV1CollectionNamespacedDeployment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Deployment", - "operationId": "listAppsV1NamespacedDeployment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Deployment", - "operationId": "createAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Deployment", - "operationId": "deleteAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Deployment", - "operationId": "readAppsV1NamespacedDeployment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Deployment", - "operationId": "patchAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified Deployment", - "operationId": "readAppsV1NamespacedDeploymentScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified Deployment", - "operationId": "patchAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Deployment", - "operationId": "readAppsV1NamespacedDeploymentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Deployment", - "operationId": "patchAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ReplicaSet", - "operationId": "deleteAppsV1CollectionNamespacedReplicaSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicaSet", - "operationId": "listAppsV1NamespacedReplicaSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ReplicaSet", - "operationId": "createAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ReplicaSet", - "operationId": "deleteAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSetScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StatefulSet", - "operationId": "deleteAppsV1CollectionNamespacedStatefulSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StatefulSet", - "operationId": "listAppsV1NamespacedStatefulSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StatefulSet", - "operationId": "createAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StatefulSet", - "operationId": "deleteAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSetScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicaSet", - "operationId": "listAppsV1ReplicaSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StatefulSet", - "operationId": "listAppsV1StatefulSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1ControllerRevisionListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1DaemonSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1DeploymentListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedControllerRevisionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedControllerRevision", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ControllerRevision", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedDaemonSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind DaemonSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedDaemonSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedDeploymentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Deployment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedDeployment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedReplicaSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedReplicaSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedStatefulSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StatefulSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedStatefulSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1ReplicaSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1StatefulSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/authentication.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAuthenticationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication" - ] - } - }, - "/apis/authentication.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthenticationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ] - } - }, - "/apis/authentication.k8s.io/v1/tokenreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a TokenReview", - "operationId": "createAuthenticationV1TokenReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - } - }, - "/apis/authentication.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthenticationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ] - } - }, - "/apis/authentication.k8s.io/v1beta1/tokenreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a TokenReview", - "operationId": "createAuthenticationV1beta1TokenReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAuthorizationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization" - ] - } - }, - "/apis/authorization.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthorizationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ] - } - }, - "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LocalSubjectAccessReview", - "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectAccessReview", - "operationId": "createAuthorizationV1SelfSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectRulesReview", - "operationId": "createAuthorizationV1SelfSubjectRulesReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/subjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SubjectAccessReview", - "operationId": "createAuthorizationV1SubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthorizationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ] - } - }, - "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LocalSubjectAccessReview", - "operationId": "createAuthorizationV1beta1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectAccessReview", - "operationId": "createAuthorizationV1beta1SelfSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectRulesReview", - "operationId": "createAuthorizationV1beta1SelfSubjectRulesReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SubjectAccessReview", - "operationId": "createAuthorizationV1beta1SubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/autoscaling/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAutoscalingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling" - ] - } - }, - "/apis/autoscaling/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ] - } - }, - "/apis/autoscaling/v1/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV2beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ] - } - }, - "/apis/autoscaling/v2beta1/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV2beta2APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ] - } - }, - "/apis/autoscaling/v2beta2/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta2HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta2CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta2HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getBatchAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch" - ] - } - }, - "/apis/batch/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getBatchV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ] - } - }, - "/apis/batch/v1/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Job", - "operationId": "listBatchV1JobForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/namespaces/{namespace}/jobs": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Job", - "operationId": "deleteBatchV1CollectionNamespacedJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Job", - "operationId": "listBatchV1NamespacedJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Job", - "operationId": "createBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Job", - "operationId": "deleteBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Job", - "operationId": "readBatchV1NamespacedJob", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Job", - "operationId": "patchBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Job", - "operationId": "replaceBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Job", - "operationId": "readBatchV1NamespacedJobStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Job", - "operationId": "patchBatchV1NamespacedJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Job", - "operationId": "replaceBatchV1NamespacedJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/watch/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1JobListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1NamespacedJobList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Job. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchBatchV1NamespacedJob", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getBatchV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ] - } - }, - "/apis/batch/v1beta1/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CronJob", - "operationId": "listBatchV1beta1CronJobForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CronJob", - "operationId": "deleteBatchV1beta1CollectionNamespacedCronJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CronJob", - "operationId": "listBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CronJob", - "operationId": "createBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CronJob", - "operationId": "deleteBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CronJob", - "operationId": "readBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CronJob", - "operationId": "patchBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CronJob", - "operationId": "replaceBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CronJob", - "operationId": "readBatchV1beta1NamespacedCronJobStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CronJob", - "operationId": "patchBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CronJob", - "operationId": "replaceBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/watch/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1beta1CronJobListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1beta1NamespacedCronJobList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CronJob. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchBatchV1beta1NamespacedCronJob", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getCertificatesAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates" - ] - } - }, - "/apis/certificates.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCertificatesV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ] - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CertificateSigningRequest", - "operationId": "deleteCertificatesV1beta1CollectionCertificateSigningRequest", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CertificateSigningRequest", - "operationId": "listCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CertificateSigningRequest", - "operationId": "createCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CertificateSigningRequest", - "operationId": "deleteCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "put": { - "consumes": [ - "*/*" - ], - "description": "replace approval of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestApproval", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequestStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCertificatesV1beta1CertificateSigningRequestList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCertificatesV1beta1CertificateSigningRequest", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getCoordinationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination" - ] - } - }, - "/apis/coordination.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoordinationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ] - } - }, - "/apis/coordination.k8s.io/v1/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1LeaseForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Lease", - "operationId": "deleteCoordinationV1CollectionNamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1NamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Lease", - "operationId": "createCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - } - }, - "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Lease", - "operationId": "deleteCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Lease", - "operationId": "readCoordinationV1NamespacedLease", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Lease", - "operationId": "patchCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Lease", - "operationId": "replaceCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - } - }, - "/apis/coordination.k8s.io/v1/watch/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1LeaseListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1NamespacedLeaseList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoordinationV1NamespacedLease", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoordinationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ] - } - }, - "/apis/coordination.k8s.io/v1beta1/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1beta1LeaseForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Lease", - "operationId": "deleteCoordinationV1beta1CollectionNamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Lease", - "operationId": "createCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - } - }, - "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Lease", - "operationId": "deleteCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Lease", - "operationId": "readCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Lease", - "operationId": "patchCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Lease", - "operationId": "replaceCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - } - }, - "/apis/coordination.k8s.io/v1beta1/watch/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1beta1LeaseListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1beta1NamespacedLeaseList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoordinationV1beta1NamespacedLease", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getDiscoveryAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery" - ] - } - }, - "/apis/discovery.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getDiscoveryV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ] - } - }, - "/apis/discovery.k8s.io/v1beta1/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind EndpointSlice", - "operationId": "listDiscoveryV1beta1EndpointSliceForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of EndpointSlice", - "operationId": "deleteDiscoveryV1beta1CollectionNamespacedEndpointSlice", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind EndpointSlice", - "operationId": "listDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an EndpointSlice", - "operationId": "createDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - } - }, - "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an EndpointSlice", - "operationId": "deleteDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified EndpointSlice", - "operationId": "readDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the EndpointSlice", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified EndpointSlice", - "operationId": "patchDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified EndpointSlice", - "operationId": "replaceDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - } - }, - "/apis/discovery.k8s.io/v1beta1/watch/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchDiscoveryV1beta1EndpointSliceListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchDiscoveryV1beta1NamespacedEndpointSliceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchDiscoveryV1beta1NamespacedEndpointSlice", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the EndpointSlice", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getEventsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events" - ] - } - }, - "/apis/events.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getEventsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ] - } - }, - "/apis/events.k8s.io/v1beta1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1beta1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteEventsV1beta1CollectionNamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1beta1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - } - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readEventsV1beta1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - } - }, - "/apis/events.k8s.io/v1beta1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1beta1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1beta1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchEventsV1beta1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getExtensionsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions" - ] - } - }, - "/apis/extensions/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getExtensionsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ] - } - }, - "/apis/extensions/v1beta1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listExtensionsV1beta1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteExtensionsV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readExtensionsV1beta1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchExtensionsV1beta1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchExtensionsV1beta1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchExtensionsV1beta1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getNetworkingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking" - ] - } - }, - "/apis/networking.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNetworkingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ] - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of NetworkPolicy", - "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind NetworkPolicy", - "operationId": "listNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a NetworkPolicy", - "operationId": "createNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a NetworkPolicy", - "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified NetworkPolicy", - "operationId": "readNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NetworkPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified NetworkPolicy", - "operationId": "patchNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified NetworkPolicy", - "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind NetworkPolicy", - "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1NamespacedNetworkPolicy", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the NetworkPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNetworkingV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ] - } - }, - "/apis/networking.k8s.io/v1beta1/ingressclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of IngressClass", - "operationId": "deleteNetworkingV1beta1CollectionIngressClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind IngressClass", - "operationId": "listNetworkingV1beta1IngressClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an IngressClass", - "operationId": "createNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/ingressclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an IngressClass", - "operationId": "deleteNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified IngressClass", - "operationId": "readNetworkingV1beta1IngressClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified IngressClass", - "operationId": "patchNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified IngressClass", - "operationId": "replaceNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1beta1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteNetworkingV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readNetworkingV1beta1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchNetworkingV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceNetworkingV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/watch/ingressclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1IngressClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/ingressclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1beta1IngressClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1beta1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/node.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getNodeAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node" - ] - } - }, - "/apis/node.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNodeV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ] - } - }, - "/apis/node.k8s.io/v1beta1/runtimeclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RuntimeClass", - "operationId": "deleteNodeV1beta1CollectionRuntimeClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RuntimeClass", - "operationId": "listNodeV1beta1RuntimeClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RuntimeClass", - "operationId": "createNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - } - }, - "/apis/node.k8s.io/v1beta1/runtimeclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RuntimeClass", - "operationId": "deleteNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RuntimeClass", - "operationId": "readNodeV1beta1RuntimeClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the RuntimeClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RuntimeClass", - "operationId": "patchNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RuntimeClass", - "operationId": "replaceNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - } - }, - "/apis/node.k8s.io/v1beta1/watch/runtimeclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNodeV1beta1RuntimeClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/node.k8s.io/v1beta1/watch/runtimeclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNodeV1beta1RuntimeClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RuntimeClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getPolicyAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy" - ] - } - }, - "/apis/policy/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getPolicyV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ] - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodDisruptionBudget", - "operationId": "deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodDisruptionBudget", - "operationId": "listPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodDisruptionBudget", - "operationId": "createPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodDisruptionBudget", - "operationId": "deletePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodDisruptionBudget", - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodDisruptionBudget", - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodDisruptionBudget", - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PodDisruptionBudget", - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PodDisruptionBudget", - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PodDisruptionBudget", - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodDisruptionBudget", - "operationId": "listPolicyV1beta1PodDisruptionBudgetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/podsecuritypolicies": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodSecurityPolicy", - "operationId": "deletePolicyV1beta1CollectionPodSecurityPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodSecurityPolicy", - "operationId": "listPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodSecurityPolicy", - "operationId": "createPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/podsecuritypolicies/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodSecurityPolicy", - "operationId": "deletePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodSecurityPolicy", - "operationId": "readPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodSecurityPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodSecurityPolicy", - "operationId": "patchPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodSecurityPolicy", - "operationId": "replacePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudgetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudget", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1PodSecurityPolicyList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchPolicyV1beta1PodSecurityPolicy", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodSecurityPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getRbacAuthorizationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getRbacAuthorizationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1CollectionClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRoleBinding", - "operationId": "listRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRoleBinding", - "operationId": "createRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRoleBinding", - "operationId": "readRbacAuthorizationV1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRoleBinding", - "operationId": "patchRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRoleBinding", - "operationId": "replaceRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRole", - "operationId": "deleteRbacAuthorizationV1CollectionClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRole", - "operationId": "listRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRole", - "operationId": "createRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRole", - "operationId": "deleteRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRole", - "operationId": "readRbacAuthorizationV1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRole", - "operationId": "patchRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRole", - "operationId": "replaceRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RoleBinding", - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RoleBinding", - "operationId": "createRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RoleBinding", - "operationId": "deleteRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RoleBinding", - "operationId": "readRbacAuthorizationV1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RoleBinding", - "operationId": "patchRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RoleBinding", - "operationId": "replaceRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Role", - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Role", - "operationId": "createRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Role", - "operationId": "deleteRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Role", - "operationId": "readRbacAuthorizationV1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Role", - "operationId": "patchRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Role", - "operationId": "replaceRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1ClusterRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1ClusterRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1RoleBindingListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1RoleListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getRbacAuthorizationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRoleBinding", - "operationId": "listRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRoleBinding", - "operationId": "createRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRoleBinding", - "operationId": "readRbacAuthorizationV1beta1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRoleBinding", - "operationId": "patchRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRoleBinding", - "operationId": "replaceRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRole", - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRole", - "operationId": "listRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRole", - "operationId": "createRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRole", - "operationId": "deleteRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRole", - "operationId": "readRbacAuthorizationV1beta1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRole", - "operationId": "patchRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRole", - "operationId": "replaceRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RoleBinding", - "operationId": "createRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RoleBinding", - "operationId": "readRbacAuthorizationV1beta1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RoleBinding", - "operationId": "patchRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RoleBinding", - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Role", - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Role", - "operationId": "createRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Role", - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Role", - "operationId": "readRbacAuthorizationV1beta1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Role", - "operationId": "patchRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Role", - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1beta1RoleBindingForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1beta1RoleForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1RoleListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getSchedulingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling" - ] - } - }, - "/apis/scheduling.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getSchedulingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ] - } - }, - "/apis/scheduling.k8s.io/v1/priorityclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PriorityClass", - "operationId": "deleteSchedulingV1CollectionPriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PriorityClass", - "operationId": "listSchedulingV1PriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PriorityClass", - "operationId": "createSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - } - }, - "/apis/scheduling.k8s.io/v1/priorityclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PriorityClass", - "operationId": "deleteSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PriorityClass", - "operationId": "readSchedulingV1PriorityClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PriorityClass", - "operationId": "patchSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PriorityClass", - "operationId": "replaceSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - } - }, - "/apis/scheduling.k8s.io/v1/watch/priorityclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchSchedulingV1PriorityClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1/watch/priorityclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchSchedulingV1PriorityClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getSchedulingV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ] - } - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PriorityClass", - "operationId": "deleteSchedulingV1beta1CollectionPriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PriorityClass", - "operationId": "listSchedulingV1beta1PriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PriorityClass", - "operationId": "createSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - } - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PriorityClass", - "operationId": "deleteSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PriorityClass", - "operationId": "readSchedulingV1beta1PriorityClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PriorityClass", - "operationId": "patchSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PriorityClass", - "operationId": "replaceSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - } - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchSchedulingV1beta1PriorityClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchSchedulingV1beta1PriorityClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getStorageAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage" - ] - } - }, - "/apis/storage.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getStorageV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ] - } - }, - "/apis/storage.k8s.io/v1/csidrivers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSIDriver", - "operationId": "deleteStorageV1CollectionCSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSIDriver", - "operationId": "listStorageV1CSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSIDriver", - "operationId": "createStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csidrivers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSIDriver", - "operationId": "deleteStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSIDriver", - "operationId": "readStorageV1CSIDriver", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSIDriver", - "operationId": "patchStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSIDriver", - "operationId": "replaceStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csinodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSINode", - "operationId": "deleteStorageV1CollectionCSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSINode", - "operationId": "listStorageV1CSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSINode", - "operationId": "createStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csinodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSINode", - "operationId": "deleteStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSINode", - "operationId": "readStorageV1CSINode", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSINode", - "operationId": "patchStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSINode", - "operationId": "replaceStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/storageclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StorageClass", - "operationId": "deleteStorageV1CollectionStorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StorageClass", - "operationId": "listStorageV1StorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StorageClass", - "operationId": "createStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/storageclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StorageClass", - "operationId": "deleteStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StorageClass", - "operationId": "readStorageV1StorageClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StorageClass", - "operationId": "patchStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StorageClass", - "operationId": "replaceStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of VolumeAttachment", - "operationId": "deleteStorageV1CollectionVolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind VolumeAttachment", - "operationId": "listStorageV1VolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a VolumeAttachment", - "operationId": "createStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a VolumeAttachment", - "operationId": "deleteStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified VolumeAttachment", - "operationId": "readStorageV1VolumeAttachment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified VolumeAttachment", - "operationId": "patchStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified VolumeAttachment", - "operationId": "replaceStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified VolumeAttachment", - "operationId": "readStorageV1VolumeAttachmentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified VolumeAttachment", - "operationId": "patchStorageV1VolumeAttachmentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified VolumeAttachment", - "operationId": "replaceStorageV1VolumeAttachmentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/watch/csidrivers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1CSIDriverList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csidrivers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1CSIDriver", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csinodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1CSINodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csinodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1CSINode", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1StorageClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1StorageClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/volumeattachments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1VolumeAttachmentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/volumeattachments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1VolumeAttachment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getStorageV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ] - } - }, - "/apis/storage.k8s.io/v1beta1/csidrivers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSIDriver", - "operationId": "deleteStorageV1beta1CollectionCSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSIDriver", - "operationId": "listStorageV1beta1CSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSIDriver", - "operationId": "createStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csidrivers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSIDriver", - "operationId": "deleteStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSIDriver", - "operationId": "readStorageV1beta1CSIDriver", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSIDriver", - "operationId": "patchStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSIDriver", - "operationId": "replaceStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csinodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSINode", - "operationId": "deleteStorageV1beta1CollectionCSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSINode", - "operationId": "listStorageV1beta1CSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSINode", - "operationId": "createStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csinodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSINode", - "operationId": "deleteStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSINode", - "operationId": "readStorageV1beta1CSINode", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSINode", - "operationId": "patchStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSINode", - "operationId": "replaceStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StorageClass", - "operationId": "deleteStorageV1beta1CollectionStorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StorageClass", - "operationId": "listStorageV1beta1StorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StorageClass", - "operationId": "createStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StorageClass", - "operationId": "deleteStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StorageClass", - "operationId": "readStorageV1beta1StorageClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StorageClass", - "operationId": "patchStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StorageClass", - "operationId": "replaceStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of VolumeAttachment", - "operationId": "deleteStorageV1beta1CollectionVolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind VolumeAttachment", - "operationId": "listStorageV1beta1VolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a VolumeAttachment", - "operationId": "createStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a VolumeAttachment", - "operationId": "deleteStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified VolumeAttachment", - "operationId": "readStorageV1beta1VolumeAttachment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified VolumeAttachment", - "operationId": "patchStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified VolumeAttachment", - "operationId": "replaceStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/watch/csidrivers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1CSIDriverList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csidrivers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1CSIDriver", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csinodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1CSINodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csinodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1CSINode", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1StorageClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1StorageClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1VolumeAttachmentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1VolumeAttachment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/logs/": { - "get": { - "operationId": "logFileListHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "logs" - ] - } - }, - "/logs/{logpath}": { - "get": { - "operationId": "logFileHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "logs" - ] - }, - "parameters": [ - { - "description": "path to the log", - "in": "path", - "name": "logpath", - "required": true, - "type": "string", - "uniqueItems": true - } - ] - }, - "/version/": { - "get": { - "consumes": [ - "application/json" - ], - "description": "get the code version", - "operationId": "getCodeVersion", - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "version" - ] - } - } - }, - "security": [ - { - "BearerToken": [] - } - ], - "securityDefinitions": { - "BearerToken": { - "description": "Bearer Token authentication", - "in": "header", - "name": "authorization", - "type": "apiKey" - } - }, - "swagger": "2.0" -} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1188/swagger.go b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1188/swagger.go deleted file mode 100644 index 13c5082932..0000000000 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1188/swagger.go +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright 2019 The Kubernetes Authors. -// SPDX-License-Identifier: Apache-2.0 - -// Code generated for package v1188 by go-bindata DO NOT EDIT. (@generated) -// sources: -// kubernetesapi/v1188/swagger.json -package v1188 - -import ( - "bytes" - "compress/gzip" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - "time" -) - -func bindataRead(data []byte, name string) ([]byte, error) { - gz, err := gzip.NewReader(bytes.NewBuffer(data)) - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - - var buf bytes.Buffer - _, err = io.Copy(&buf, gz) - clErr := gz.Close() - - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - if clErr != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -type asset struct { - bytes []byte - info os.FileInfo -} - -type bindataFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} - -// Name return file name -func (fi bindataFileInfo) Name() string { - return fi.name -} - -// Size return file size -func (fi bindataFileInfo) Size() int64 { - return fi.size -} - -// Mode return file mode -func (fi bindataFileInfo) Mode() os.FileMode { - return fi.mode -} - -// Mode return file modify time -func (fi bindataFileInfo) ModTime() time.Time { - return fi.modTime -} - -// IsDir return file whether a directory -func (fi bindataFileInfo) IsDir() bool { - return fi.mode&os.ModeDir != 0 -} - -// Sys return file is sys mode -func (fi bindataFileInfo) Sys() interface{} { - return nil -} - -var _kubernetesapiV1188SwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x6d\x73\xdb\x38\xd6\x28\xf8\xfd\xfe\x0a\x94\x7b\xa7\x92\xf4\xca\x72\xd2\x3d\x6f\x37\x5d\x53\xbb\x9e\x24\x3d\xed\x99\x24\xed\x6b\x3b\x3d\x7b\x77\x3c\xf5\x04\x22\x21\x09\x8f\x29\x80\x0d\x80\x76\xd4\x5b\x4f\xd5\xfe\x8d\xfd\x7b\xfb\x4b\x6e\xe1\x1c\x00\x04\x29\x52\xa4\x64\xc9\x6f\xe1\x7c\x98\x8e\x45\x10\x04\x0e\x0e\xce\xfb\xcb\xff\xf3\xdf\x08\x39\x48\xd9\x94\x0b\x6e\xb8\x14\xfa\xe0\x35\xb1\x3f\x11\x72\xc0\xe5\xf8\xea\xcf\x7a\x4c\x73\x3e\xa6\xe9\x82\x6b\xcd\xa5\x50\x6c\xc6\xb5\x51\xd4\x0e\x1d\x5f\xbf\x1a\x7f\x28\x0c\x35\x5c\xcc\xfe\xc9\x26\x73\x29\xaf\xc2\xcb\x30\xa7\x4e\x14\xcf\xed\xc8\x83\xd7\xe4\xa0\x36\x92\xe0\xe3\x09\xd3\x84\x0a\x12\xe6\x27\x37\xee\x31\x15\x29\x31\x73\x46\x14\xd3\xb2\x50\x09\x0c\x4b\x89\xcc\x19\x7e\x5b\x13\x6e\x08\xcd\xf3\x8c\x33\x4d\x8c\x1c\x1f\x8c\xfc\x67\x73\x65\x07\x19\xce\x74\xb4\x18\x42\x0e\xc2\x27\xce\xd8\x35\x67\x37\xbf\x30\xa5\x2b\xdb\x6d\x5e\xf5\x71\xf3\x5b\x84\xc3\xb2\xa5\x4a\x99\x62\x29\xc9\xb8\x36\x44\x4e\x49\xae\xd8\x94\x29\xfb\xcb\xe7\xda\x8b\x9f\xc9\xb5\x7f\xd5\xee\xca\x03\x81\x7d\xc9\x59\x62\xf4\x98\x1c\x9f\x9e\x10\xcd\xd4\x35\x53\xe4\x86\x67\x19\x31\x6a\x49\x8c\x24\x85\x66\x64\xca\x95\x36\xfe\x75\xc2\x05\x4c\x00\x5f\xbc\x99\xf3\x64\x6e\x01\xa1\x8b\x3c\x97\xca\xce\x73\x32\x25\x42\x0a\x66\x17\x63\x87\x85\x8f\xea\x9c\x25\x7c\xca\x59\x8a\x13\x70\x8d\x33\xb8\x17\x59\x4a\x26\xcb\x68\x0d\x23\x72\x4d\x33\x9e\x02\xa4\x71\x3d\x53\xca\x33\x32\x95\x0a\xdf\x95\x93\xff\x64\x89\x81\xaf\x51\x92\xdb\x6f\x68\x3b\x87\x3f\xbb\x44\x8a\x29\x9f\x15\x78\x52\xe1\xd3\x9a\xd0\x2c\x93\x37\x2c\x2d\x57\x65\x8f\x34\x95\x4c\x13\x21\x0d\xe1\x22\xc9\x8a\x94\x11\x2a\x96\xe5\x88\x2b\x21\x6f\x84\x85\x84\xdd\x8d\x5d\xe0\xb9\x5b\x60\x42\xb3\x4c\xfb\x07\xfe\xc3\xe5\x52\xed\xcc\x13\x46\x74\x01\x2b\xf5\xe3\xec\xa3\x42\x31\x92\xcb\x8c\x27\xcb\x12\x69\x10\xdd\x0d\x5b\xd4\xd1\x81\x90\x03\xb3\xcc\x99\xc5\x04\x6d\x14\x17\xb3\x83\xe8\xe1\x7f\x55\x5e\xf7\xe3\xa8\x52\x74\x59\x0e\x8b\x06\x1d\x24\x19\x67\xc2\xbc\x01\xe8\xd4\xf1\xee\x7f\x53\x6c\x6a\x5f\xff\xe6\x28\xba\x8b\x47\x7d\xae\xa0\xc3\xa5\x37\xf1\xe4\xa3\x35\x28\x1d\x0f\x24\xf0\x31\xa6\xc9\x5c\xde\x58\x20\x25\x72\xb1\x28\x04\x4f\xa8\x61\xe4\x86\x9b\x39\x40\xcd\xce\x3e\x26\x67\xec\xd7\x82\x2b\x96\x36\x6f\xcd\x41\xf6\x14\x00\xdb\x71\xa7\x7e\x8c\xc7\x56\x56\x50\x08\xc5\x12\x39\x13\xfc\x37\x96\x12\xa6\x94\x54\x9a\x4c\x95\x5c\xc0\x32\x4a\x1a\xc1\x44\x9a\x4b\x2e\x0c\xa1\x8a\x91\x39\x15\x69\xc6\x52\x72\x58\xa2\x17\xcd\x0a\x8b\x6d\x8a\x91\x93\x99\x90\x8a\x11\xa9\x88\xfd\xe8\x98\xbc\x65\x53\x5a\x64\x06\x10\x07\x7e\x39\x68\x3c\xc3\xfa\x59\xc7\x3b\x5d\x50\x93\xcc\x7b\xed\x33\x1a\x59\x85\xf3\x9c\x91\xcb\x03\x55\x64\x4c\x5f\x1e\xe0\x3d\xe4\xda\x5e\xf5\xd4\x2e\x0b\xde\xb2\x97\x41\x2e\xb8\x98\x11\xc5\x7e\x2d\x98\x06\x12\xb1\xba\xbd\xcb\x83\x77\x5f\x68\x62\x2e\x0f\xec\x0e\x2f\x0f\xde\xfd\x5a\xf0\x6b\x9a\x31\x61\x2e\x0f\xc6\x97\xe2\x52\x1c\x12\x78\xfe\xda\x4d\x4a\xfd\x6c\x44\x8a\x6c\x49\xf8\xd4\xd2\x0e\x66\x47\x64\x4b\x1c\x62\xe7\x8d\x68\x85\x5d\xe3\x98\xfc\x28\x95\x1d\xb5\xc8\x33\x36\xb2\x2f\xa5\x2c\xcf\xe4\x72\xc1\x84\xd1\x24\xa1\xc2\xde\xb3\x85\x4c\xf1\x8d\x6b\x4e\x2d\x59\xd6\x47\xd7\xaf\x46\xfe\x1f\x13\x66\xa8\xfd\x4b\xa4\x84\x7d\x31\x4c\xc0\xcd\x2e\x7f\x9f\x14\x26\x02\x07\xae\x0c\x49\x41\x4a\x3e\xd3\x9c\xff\x4d\xc9\x22\xd7\xaf\xff\x75\x79\x60\xe7\xbb\x3c\xf8\xb7\x9d\x98\x7b\x4a\x6c\x7f\xbf\x7e\x05\xbf\x06\x56\xf1\x9a\xfc\xeb\xf2\x20\x5a\xe5\xe5\xc1\xbf\x3f\x8f\xa2\xdd\x1b\x59\x59\x1a\x81\xfd\xd5\x17\x46\x6e\x64\x91\xa5\x40\x99\x2c\x21\x61\xc2\xd4\xa8\x8d\x87\x70\x00\xfa\x2a\x98\xf9\xd4\x43\x46\xc3\xaf\xb8\x3e\x38\x72\xa4\xc4\xb0\xeb\x11\x61\xd7\x4c\x20\xe8\x84\x34\x73\xa6\x80\xd2\xcd\xec\xbe\xed\xda\x1c\x31\xdc\xfb\x41\xd8\xdf\x1f\xee\x41\x4c\x98\xe5\x2b\xd7\x0c\xb8\x55\xf9\x22\xac\xba\xed\x74\xe2\xeb\x5e\xbd\x1e\x9b\xdf\x7b\x41\x17\xac\xe3\xc2\x5f\xcc\x19\xb1\xc3\x3c\xf7\x5d\x91\x6a\xc6\xe4\xa3\x7d\xac\xe7\x7e\x47\xd3\x22\xcb\x96\xe4\xd7\x82\x66\x70\x6a\x23\xc2\xc6\xb3\xf1\x88\xf0\x05\x9d\x31\xc7\xa4\xae\x8a\x09\x53\x82\x19\xa6\xc7\x5c\x8e\xc8\xcd\x9c\xc1\xc5\x8f\x86\x5c\x1e\x58\xfa\x61\x6a\x1f\x77\x9f\xc4\x63\xad\x4c\xd2\x34\x5a\xaa\x19\x15\xfc\x37\x64\x2a\x81\xd6\x6f\x41\x1e\xed\xa4\x3a\xa7\x09\x3b\x67\x19\x4b\x8c\x54\x9b\x32\xba\x05\x4d\xe6\x5c\x30\xb5\x1c\xe7\x57\x33\xfb\x83\x1e\x2f\x98\xa1\x96\xd3\xbd\xa7\x13\x96\x85\x79\xd7\xf1\xb8\x8f\xf5\x55\x90\x94\x25\x3c\x65\xda\xc2\x0f\x6e\x98\x91\x44\x15\xa2\x22\x3d\x48\x01\x32\x1d\x4a\x0c\x13\x6a\xe9\xb1\x3d\x3a\xff\x82\x83\x18\x4c\xeb\x44\x21\x6a\xfc\x70\x4f\x3d\xed\x28\xed\xbe\x09\xf2\x11\x00\x17\xc7\x70\xa3\x59\x36\x05\xd1\xb1\x9c\x69\x04\x23\xe0\x75\x4b\xee\xb9\xb6\xf2\xd4\x54\xaa\x05\x7e\xdd\x49\x5a\x16\x02\x29\x35\x74\x9c\x59\x10\xe8\x95\x99\x75\xa0\x1c\x49\x56\x68\xc3\x14\xd1\x89\xcc\x2d\x05\x77\x57\x71\x64\x49\xbd\x60\x56\xbe\xd4\x57\x3c\xd7\x2b\x57\xa5\x42\x5b\xda\x80\xb3\x74\x1f\xb4\x60\x94\x3a\x86\x07\x47\x19\x8e\x6a\x2d\x13\x4e\x41\x18\xb4\xe2\x83\x25\x27\x22\x63\xd7\x2c\xb3\x14\x65\x4a\x2e\x0f\x5e\x7a\x66\xf5\xea\xf2\xe0\x07\x42\x96\xb2\x40\xa9\x4d\x33\x53\x01\x1e\xa1\x9a\x4c\xa5\x65\x79\xfa\x35\xb9\x5c\x45\xab\x4b\x8b\x57\x97\x82\x90\x4b\xe4\xb3\xef\xbe\xe4\x8a\xc1\x65\xd3\xf6\xd1\xbf\xec\x23\x82\x23\xec\xff\x2e\x0f\xae\xd8\xd2\x3e\x88\x57\x34\x2a\x9f\xa2\x62\x81\xd3\x5e\x1e\x7c\x94\xe6\x44\x54\x9e\x23\xd3\x8d\x66\xc6\x9f\x5f\x46\x83\x08\x6e\xca\xff\xf9\x6f\xfc\xc7\x7f\xd9\xff\xfc\xfb\x52\xfc\x97\x05\xf2\xc9\x94\x70\xa1\x0d\xa3\x29\x6e\x9c\x22\xd9\x02\x52\xbb\x39\xc0\xeb\xc0\x46\xb9\x82\x89\x6b\xae\xa4\x58\x00\x99\x43\x98\xe7\x4a\xa6\x1e\xec\xda\xd0\x19\x17\x33\x0b\xfc\x7b\x80\x7d\x65\x71\xad\xe0\xef\x07\x7b\xdc\x55\x05\xfc\x61\x73\xeb\x0e\xe1\x9c\x31\x32\x37\x26\xd7\xaf\x8f\x8e\x2a\x74\xf1\x28\x95\x89\x3e\x4a\xa4\x48\x58\x6e\xf4\x91\xbc\x66\xca\xaa\x6e\x47\x37\x52\x5d\x71\x31\x3b\xb4\x40\x3e\x74\xe7\x71\x84\x17\xf1\x08\x08\xc1\xc2\xca\x98\xee\xf2\x68\x0b\x72\x78\x18\xc0\xa9\x63\x5e\xe4\xd9\x14\x5b\xe4\x66\x49\x2a\x14\x6d\xe4\x14\x3a\x4f\x4b\xec\x6d\x5d\x1a\x4b\x16\xc6\xcd\xb4\x16\xd7\x72\xaf\x84\xf6\xe7\xca\x12\xfa\x50\xd9\x40\x58\x79\x85\x84\xcd\xa9\x2e\xa9\xa0\xa7\x72\xd5\x0d\x5a\x9c\x67\x16\x19\x00\xe5\xe9\x8c\xda\xbb\x44\x26\xd2\xa1\xbe\xcc\x52\x5c\x0d\x70\x3c\xc1\x6e\xdc\x5f\x40\xa6\x83\x0c\xd1\x20\x2a\x20\x8b\xe4\xda\xca\x17\x9a\xa3\x46\x5f\x0a\xe2\x53\xc2\x38\xec\x65\x2d\xa5\x3f\x26\xa2\xc8\x32\x3f\xe6\x79\xb9\x16\xa7\xaf\x27\x54\x03\xaf\x4d\x14\xa3\x86\x8d\xec\x5d\x2c\x57\x58\x1b\x93\xb2\x8c\x19\xf6\xc2\x8e\x29\xf9\x11\xec\x22\xa1\xc2\x52\xd9\x39\xbd\x66\x0e\x46\xe4\x79\xc6\xaf\x18\xa1\xe4\x6d\x90\xb2\xce\x64\x96\x4d\x68\x72\x05\xef\x93\x53\x99\x9e\x2a\xf9\x65\xf9\x73\x8e\x66\x13\x9c\xee\x85\x27\xd8\x0d\x5b\x1e\x93\x4f\x9a\xc5\x47\x13\xc8\x82\xd7\x1a\xe2\xe3\xe4\x9a\xc8\xdc\x1c\x72\x31\x22\x13\x96\xd0\x42\x33\xab\x9e\x59\x6d\x46\xd9\x03\x5d\x02\xbb\x69\x96\x86\xc8\x64\x69\x49\x8f\xb1\x27\x0e\x36\x0d\x77\xea\x7b\xb8\x29\x8a\x71\x71\x2d\x13\x10\x6f\x7a\xe9\x6e\xab\x2f\x10\x2e\x52\x50\x8c\x23\xec\x9e\x73\x1d\x36\x53\x0a\x75\x09\xcd\xac\x42\xba\x28\x32\xc3\xf3\x8c\x11\xc3\x17\x56\xfe\xd7\x24\xa7\x0a\xcc\x44\x94\x68\x2e\x66\x59\x45\xa5\x45\xbc\x06\xe9\xab\x51\xd1\xfb\x68\xf7\x78\x79\xe0\x84\xf4\x93\xe9\x47\xc6\x52\x96\x3a\x3d\x0f\x1e\xbe\x5e\x35\x85\x38\xe5\xc5\x2f\xc8\x92\x29\x33\xb7\x38\x25\x2c\x07\x11\x1d\x0b\x41\x8e\x85\x1f\x6a\x98\xbc\x9c\x98\x1a\x92\x31\x0a\x6a\xa5\x9d\x2a\x05\x52\x43\x33\xd8\x78\xbc\xef\x9a\x16\x1f\xbe\x54\x23\x05\x13\x66\x31\xc2\x0e\x34\xa0\x26\xe9\x52\xab\x99\x2c\x09\x8a\x39\xe5\x34\x79\x56\xcc\xb8\xd0\x84\x4e\x8d\x93\xd2\x80\xd6\xd1\xac\x34\x47\xd1\x2c\x1b\x7b\x93\x9b\xc6\x9b\x84\x3a\xee\xd2\x99\xb3\xe0\xd8\xc9\xb7\x8b\x42\x9b\x6f\xed\xbe\x78\xca\x16\xb9\x34\x4c\x98\x11\xa1\x13\x7b\x84\x92\xe4\x4a\x26\x4c\xeb\xc0\x90\xcd\x9c\x2d\x49\xae\xd8\x35\x97\x85\xce\x96\x61\xbd\x63\xf2\x51\x1a\xf6\x9a\x7c\x8b\x12\x63\xb1\x98\x58\xda\x31\x8d\xe1\x52\xa2\x96\xf6\xf7\x70\x56\x50\x45\x85\x61\x78\x0f\x27\x2c\xa8\xe5\x52\xb0\x31\xf9\xd6\x42\xa8\x65\x02\xc5\xb4\xbd\x2c\x5c\x90\x69\xa1\x00\x36\x08\x2d\xff\xdc\xdd\x22\x5c\xf6\xc8\x03\x05\xd1\xaa\xf1\xcb\x76\xf2\x2b\x4f\x60\xed\xb7\x6f\x2a\x90\x2b\x80\x38\x94\x50\xb3\x77\x7c\xc2\x88\x62\xde\x18\x6a\xe9\x08\x17\x7c\xc1\x7f\x63\xbd\x40\x60\x3f\x61\xa4\xb7\x38\xb2\x88\xe6\xe1\x91\xd2\x2c\x23\x0b\x30\x1e\x83\xc9\x50\xb1\x78\xc9\x89\xb4\x4c\xd7\x52\x54\xbb\x2e\x1a\xec\x96\x0e\x81\xaa\xf4\xc6\xc9\x5e\x0d\xaa\xa1\xbb\x5d\x5b\xe8\x3b\xa0\x2e\x77\x10\x93\x33\x3b\x26\x32\x78\xdf\x80\xe2\x50\x9a\xb2\x41\xcb\xa0\xa6\xd4\x9b\x8f\x74\x31\x29\x0d\xdf\xf1\xcd\x4b\xa8\xb2\x24\x61\x22\x0b\x33\x26\x17\xcd\x0f\x00\x82\x7e\x76\x67\xe5\xf1\x94\xf2\x3f\xa8\x58\xfe\x07\x39\x03\xbb\xce\x4f\xf2\x86\x81\x2d\x95\x3b\x4b\x36\xa2\x39\xbb\xb6\x2c\xf2\x97\x00\xc8\x60\xc9\x0e\x37\xc8\xd2\x20\x6f\xce\x5f\x7d\x0a\x06\xbb\xbc\x28\xe9\xba\x57\x49\x90\xe0\x18\xb0\x2d\x02\xf9\x76\xec\x0c\xb0\x27\xb1\xe2\x16\x4b\xf1\x6d\x2b\x69\xd9\x8d\xf8\xd3\xcd\x96\x24\xe5\x9a\x4e\x32\x3f\x25\x5e\xfa\xd1\x2d\x56\x09\xe8\x0f\xfa\x90\x23\x62\x32\xf6\x42\x78\xab\x1b\x88\x77\xe5\x47\xbc\xa9\xb5\x62\xdf\x8e\xbf\xd3\x38\xc0\x51\x8c\x7e\xe6\xe6\xed\xed\xc0\xf6\x50\xff\xc9\xcd\xfc\xe7\x80\x58\xb7\x32\x56\x5b\xb1\xe0\xdd\x74\x6a\x57\xde\x81\xde\xe7\xe5\x48\x3c\xde\x16\x0e\x69\x45\x3c\x3b\x2b\x61\x38\x78\x4c\x8e\x13\x2b\x6a\x03\x85\x2d\x99\xdd\x6b\xf2\x51\x0a\x36\x82\xff\xff\x59\xbc\x55\xcb\xb3\x42\x90\xe7\x81\x08\xa1\x04\x85\x06\x2e\x6f\x21\xb2\x34\x88\x66\x5a\x06\xb2\x7e\x2e\x17\x60\xf5\xfd\x24\xc0\x81\xf0\x22\x22\xff\xa0\x2a\xc5\xcb\x20\x1f\x3e\x9d\x5f\x10\x6e\x31\xcd\x8a\x4f\x60\x9e\xb2\x4a\x00\xcf\xb8\x73\x60\x2c\xb5\x61\x8b\x91\xe5\x95\x09\x8b\xac\x57\x81\xf2\xd9\xe3\x45\xe6\x44\xc9\xb4\x30\x85\x62\x44\x1b\x96\x7b\xb9\xae\x44\xab\x64\x4e\xc5\x8c\x05\xdf\x56\x65\x15\x16\x5e\x6c\x2a\x01\x2d\x03\x2d\x2e\x44\x0a\x0c\xe0\xcc\xe3\x63\x50\xf4\x52\x84\x0b\x35\x46\xf1\x49\x01\xe6\x7a\xe4\xc9\xb4\x30\xf2\x30\xac\x09\x39\xeb\x32\x58\x26\x4b\x0e\xee\xa0\xe0\x0f\xee\x2f\x7f\xf1\xc0\xb2\x70\xb3\xf0\xdb\x82\x18\x5a\x86\x2f\x0b\x73\x6e\xe1\x97\x76\xa1\xcd\x45\x65\x70\xe4\x26\xb2\xdb\x73\x33\x95\x2e\xa7\x60\x41\x3b\x0e\x7c\xde\x8f\xc9\xa9\xd6\x4c\x8f\x6a\x74\x32\xcb\x02\x48\x38\x78\x01\x52\x22\x55\x70\x23\x95\xcf\xc1\x5d\x14\x94\x92\x06\x2f\x11\x90\x59\xff\x2d\x40\x53\x62\x05\x05\x3b\xf1\x84\x99\x1b\xc6\x04\x41\x2b\xe4\xf7\x2f\x89\xc6\xcd\x54\x64\xd8\x57\xe5\xcf\x55\x88\x4e\xa5\x5a\x50\x63\x41\xc1\x85\xf9\xfe\xbb\x66\x70\x73\x61\xd8\x8c\xa9\x08\xde\xff\xad\x06\xf7\x03\xe5\x3d\x33\xaf\xc9\xbf\x6a\xf6\xca\x36\xe7\x53\xcb\x3d\x1f\x75\xbb\x4b\xdd\x88\x7f\x87\xaf\xfb\x85\x22\x95\xc3\xe7\x6e\x6d\xdb\x78\x90\x2b\xa4\xb3\xbf\x3b\xb9\x4a\x71\x4b\x56\x0b\xfc\xa7\x4a\x8d\xa7\x70\x58\xab\xd2\x01\x48\x37\x14\x28\x92\xc5\x14\xbc\x42\x30\xd6\x5e\x74\x77\x75\x4b\x51\xaa\x8f\xcb\x39\x58\xc7\xbb\xbc\xcc\xa7\x27\x6e\x60\x70\x14\x45\xde\x5b\x96\x12\x9d\xcc\xd9\x82\xa2\x0c\xcd\xad\xcc\x97\x2b\x66\x35\xd9\x68\x4b\xc1\x29\x8b\x1e\x52\xed\x15\x12\x67\x34\x27\x91\x67\x0d\x67\x0b\xa2\x61\x66\x49\xb6\x95\x20\x0d\x53\x56\x36\x03\x1c\x1f\x85\x9d\x3b\x40\x54\x7c\x73\x48\xad\xc7\xe4\x83\xa5\x57\x5c\x4c\xe5\xeb\x60\x52\x99\x71\x03\x87\xce\xe5\x91\xf3\x26\x9a\xe5\x51\x22\x05\xd2\x29\xa9\xf4\x51\xca\xae\x59\x76\xa4\xf9\xec\x90\xaa\x64\xce\x0d\x4b\x2c\xc9\x3c\xa2\x39\x3f\x84\xc5\x0a\x14\x0b\x17\xe9\x37\x41\x06\xda\x9c\x14\x5d\x71\x91\x76\x40\xfd\x1f\x1c\xd5\x7e\x2b\x94\xd8\x89\xdc\xe5\x0e\xc0\xf5\xc2\xc6\xd9\xbb\xf3\x8b\xd2\x79\x13\x39\xc0\xcb\xa1\xba\x04\xbb\x05\x19\x17\x53\xcf\xfc\x82\xfb\x32\x38\x2d\x51\x24\xb2\x97\x91\xe8\x62\xb2\xe0\x46\x97\xe2\x86\x91\x63\xf2\x26\x48\x45\x45\x6e\x05\xe2\x74\x4c\x4e\x04\x79\x43\x17\x2c\x7b\x43\x35\xdb\x3b\xd0\x2d\x74\xf5\xa1\x85\xdf\x16\x60\xf7\x86\xea\x1d\x1a\xa3\xd0\x48\xf2\x81\x19\xba\xd6\x12\x75\x6e\xa8\x48\xa9\x4a\x83\x9d\xc6\xad\xe4\x87\x7d\xc3\x2b\xd8\xe6\x9b\x21\xe2\x05\x97\x0e\x64\x0c\xf2\x09\x20\xa4\x0f\x28\xb9\x89\x85\x59\x90\x25\x80\x52\x47\x86\xfd\x7a\x5c\xcc\xbe\xa5\xcc\x7a\xc0\x4f\x4f\x11\xb3\xf2\xe8\xcb\x61\x69\x77\x3d\xcc\xad\x64\x72\xb8\x60\x6a\xc6\x0e\xaf\xd8\xd2\xbe\x52\x63\x5d\xcd\x6f\xc0\xa2\xd8\x0c\x5e\x80\xb7\xd7\xb1\xc8\x1a\x93\x0a\xbf\x57\xe6\x05\x87\xeb\xa1\x23\xba\x87\x8e\x80\x94\x1c\xb5\x72\x7a\x30\x16\xb6\xd7\x08\x28\xc4\xad\xea\x1e\xdc\x84\x6b\x39\x57\xf5\x8d\xeb\xc0\x3c\x0e\xae\x5f\xad\x6e\xef\xdf\x3b\xe5\xb5\xef\xb9\x36\x5b\xf2\xdb\xf7\x2e\x84\xa1\xc4\xdb\x75\xa3\x07\xc6\xf9\xa0\x19\x67\x13\xc5\xa8\x83\xfd\xfd\x46\xc7\xdc\x3a\xed\x2e\x09\x51\xf5\x1a\xdd\x46\xf1\x1d\x24\x87\xa7\x22\x39\x58\x34\xed\x2f\x37\x00\xed\x0a\xcc\xfc\x2e\x61\xb5\xb1\x6e\x87\x97\xa9\x4b\x15\x7b\xb0\x5c\x0e\x58\xcd\x7e\x39\x5d\x83\x31\xac\x9d\xb7\xad\x0e\xc6\xcb\x6d\x8a\x3c\x03\x8f\x5c\xf4\xc0\x12\xf7\x33\x4f\x5d\xc7\xe4\x04\x18\x9f\x25\xf0\x8b\x05\x13\xa9\x77\xa3\x5d\x31\xa2\x0b\xf4\xb6\x18\x30\x60\x83\xbd\x02\xa6\x63\x5f\x72\x2a\x74\xb0\x65\x83\xc1\xba\x1f\x4b\xc4\xf8\xab\x6e\x8e\x88\xe3\x7c\x94\x4f\x08\x25\xd3\xb5\x78\xea\x09\xcb\xa4\xa5\x53\x72\x4c\x9e\x7d\xfb\x0c\x76\x9c\x65\x6e\x28\x04\x98\xb8\x5f\x1d\xa1\x42\xfb\x4a\xc6\xc4\xcc\xcc\xbd\x33\x47\x67\x3c\x29\xad\x21\xc1\x52\xd5\x10\x3a\xb4\xff\xe0\xda\x28\x14\xad\xb7\xd0\x50\x01\x52\x25\x40\xbb\x0b\x4c\x7e\xf0\x23\x04\x94\x6c\xba\x12\x4d\x70\xaa\x5e\x07\xb0\x7c\x94\xbf\x54\x0d\x9b\x2b\x2e\x88\x43\xf2\xe6\xec\xdd\xf1\xc5\xbb\x11\xf9\x74\xfa\x16\xfe\x2b\x15\xf9\x16\xcc\x79\x16\x7c\x91\xbe\xf2\xf8\x00\x58\x0a\x57\x1d\x6e\x9f\x80\x43\x15\xd9\x38\x76\xec\x58\xda\x51\x64\x2c\xce\x64\xa8\x05\x63\xbd\x26\xcf\x72\x99\xea\x67\x64\xc1\xa8\xd0\xc4\xfe\x7b\x8c\x3f\x1d\x65\x72\xe6\x7f\x06\x80\xc9\x19\x89\xfc\x46\x90\x8f\x80\xa3\xbf\xf5\xc3\x2c\xe8\xc3\xe7\x31\xf2\xd6\x0a\x0c\xb1\xb7\xc9\x4f\x5e\x79\xa7\xe2\x8e\x8a\xe6\x3d\xd2\x09\xcd\x58\x65\xa4\xfd\xa1\x3e\xe1\xb7\x47\xcd\x2b\xf0\x5a\x2d\x57\xd5\x37\x5c\xa8\xd4\x0d\xcf\xd2\xc4\x72\xe6\x3a\x6a\x44\xc9\x09\x00\x3d\xb0\xe3\x32\x01\x14\xb7\x9c\x3c\x95\xb0\x39\x79\xcd\x54\x46\x73\xb4\x78\x33\x9a\xcc\xd1\x83\xec\x9c\x80\x39\x13\xa9\x95\xd6\x9c\xe9\x97\x89\x24\x93\x1a\x7e\x70\xfe\xd2\xca\xd6\x17\x7c\x36\x37\xde\xab\xee\xc2\xcd\xef\x11\x11\x21\xc6\xaf\x03\x09\x61\x4c\xcd\xb8\x8e\xbf\x05\x9d\x08\x9c\x81\xe0\xe4\xaa\x86\x1c\xbc\x41\xbf\xdd\xe5\xc1\x88\x5c\x96\x11\x95\xa9\xfd\x1b\xa3\x10\xbe\xbd\x3c\x88\x87\x05\x5c\xa4\x2e\xc0\xdc\x39\xfe\x0e\x6b\xb1\x88\x1a\x0f\x0c\x5d\x12\xd1\x12\xc2\x27\x80\x1c\x7b\x3f\xbb\x5d\x4b\x75\xa2\x71\x6d\x39\x2b\xdf\x0d\x01\x6b\xdd\xdf\xc4\x4d\x44\x13\x80\x1b\xc6\x39\xc7\x1d\xa0\x14\xb3\x67\x95\x38\x72\x75\x5e\x41\x08\x37\x5f\x05\xa6\x16\x9f\x73\xaa\xac\x98\xee\x47\x96\x0e\x01\xae\xf1\x9b\x7d\xbd\x2b\x5d\xa6\x8c\x8d\x25\x23\xab\x6d\xf0\x84\x9d\xb1\x29\x53\x4c\x24\x6c\x8d\x5c\x54\x1f\x4a\xe6\x32\x4b\x31\x92\xdd\xff\x62\x24\x71\xa3\xc6\x19\x9b\xd1\x64\x59\x17\x0a\x5b\x05\x9a\x1e\xf1\xd4\x9f\xed\x98\xcf\x4d\xe1\xca\xda\x7d\xb3\xcc\x4a\xd9\x3e\x50\xb9\xcf\x22\x60\x60\x65\x25\x88\xa8\xbb\x5b\x4e\x4e\xcd\xbc\x6b\x25\x76\xcc\x67\x9f\x7a\x96\xbb\x48\x8a\x4f\x67\xef\x89\x7d\xe0\x7c\xea\xde\xe7\x05\x71\x6e\x1c\x63\x48\xa3\x70\x7b\x40\x7d\xbf\xdc\x2d\x56\x29\x95\xe9\x58\xe5\xc9\xb4\x4c\x20\x41\x72\x6d\x5f\xf2\x04\xd6\x7d\x1a\xef\xda\x5c\x6a\x50\x95\x83\x6f\x2f\xf2\x9a\xfd\xfe\xf7\xdf\x83\xb4\x30\xa1\xc9\xd5\x8d\x65\x02\x89\x5c\xe4\xd4\xf0\x09\xcf\xb8\x59\x8e\xc9\x67\x3b\xeb\xe7\x28\xea\xca\xc5\x7e\xe0\xd7\x5c\xcc\xc9\xf3\x57\x87\x7f\xfc\xc3\x1f\xbe\xff\xc3\x08\x13\x19\x34\xbf\x66\x2f\xee\xdc\x09\x87\x48\x56\xcf\x24\xe8\x52\xde\x36\xbe\xd7\x2b\x51\x0a\x6b\x2e\xf6\xca\xd8\x21\x1b\x73\xc8\xc6\x1c\xb2\x31\xcb\xd7\x87\x6c\xcc\x21\x1b\x73\xc8\xc6\x7c\x78\x49\x80\x43\x36\xe6\x03\x39\x88\x21\x1b\x73\xc8\xc6\x1c\xb2\x31\x87\x6c\xcc\x21\x1b\x73\xc8\xc6\x7c\x30\xd9\x98\x43\x32\xe6\x90\x8c\x39\x24\x63\x3e\xfc\x64\xcc\x21\x65\x6a\x48\x99\x1a\x52\xa6\x86\x94\xa9\x21\x65\x6a\x48\x99\x1a\x52\xa6\x76\xe0\xea\xe9\x9b\x34\xd5\x41\x96\x77\x9c\x36\xe5\x24\x96\xc0\x99\xec\x4d\x06\xad\x7a\xc8\x9d\x7a\xd8\x21\xe0\x43\x04\xf4\x53\x89\x80\x1e\x72\xa7\x1e\x52\xee\xd4\xaa\x8b\xbe\xa7\xb4\x39\x64\x4f\x85\xb8\xf2\x0e\xde\xb7\xdf\xa8\xf2\xf5\x1f\xef\xc8\xa0\xea\x7e\xb9\x8a\xbf\xeb\xc7\x0f\x2c\xf4\x41\xb3\xd0\x4d\xb2\xa8\xfa\x1e\x74\xeb\xc4\xbb\x25\x4a\x43\x26\xd5\x20\x47\x0c\x99\x54\x8f\x85\xe3\xdd\x41\x2e\x55\x53\x48\x53\x3b\x9b\x6b\x18\x6d\x99\x80\xa1\xdc\x45\xdb\x59\x4c\xb0\x5a\xbc\x65\x1d\x3e\x59\x8a\x92\x8b\xf7\xe7\x76\x98\x60\x89\x0b\x73\x73\x46\x1b\x27\xc5\x75\x73\xbb\x84\xfe\xb5\x10\x69\xd6\x19\xce\xeb\xc7\x61\x20\x2d\x39\x7d\xf7\x81\x30\x91\xc8\x94\xa5\xe4\xcd\x31\x99\xc0\xb3\x5a\x2c\xad\x0f\x06\x0a\x25\xca\xa2\x85\x3d\xd3\x3e\x52\x30\xb1\xab\x82\xba\x6b\x0c\x3c\xc2\x85\x88\xe2\x60\xd1\x20\x46\x8c\x2a\xb4\x21\x4a\x4a\xa3\xbd\xe9\xc4\xde\x33\x9c\x80\x2a\xfc\x54\xab\xcd\x63\xb2\x34\x6c\x73\x72\xe0\x42\x6e\x77\x17\xe2\xb6\x12\x41\xbe\x8e\x28\x7c\x76\x9f\x77\xe0\xae\x44\x8e\xc7\x01\xc1\xab\x56\xab\x77\xe8\xe9\x29\x27\x90\x8a\x7c\x2e\x54\xf6\x39\xd8\x92\x02\x7c\x7d\xc6\x48\xcd\x17\xa2\x0a\x21\x20\xbe\x98\x9b\xb9\x77\xeb\xa0\x61\x1d\x2c\x5f\x02\x7c\xae\x4e\x4e\x29\x34\x2b\x3f\xd5\xa2\x8e\x14\x2a\xeb\xc2\x2e\x58\xdf\x8c\x5f\x33\x9f\x93\x93\x04\x19\xa9\xe2\xe4\xe2\x82\x68\x4f\x2e\x3f\x9d\xbd\xb7\xdb\x5f\x90\xe7\x9f\x41\x34\x62\xaf\x8f\x8e\xe6\x52\x9b\xd7\xb9\x54\xe6\x08\x82\xbe\x5f\x8c\x31\x76\x0c\x0b\x02\xda\xd9\xf0\x4b\x32\x86\x4f\x33\x58\x2e\xe6\x8c\x7c\xb6\xd3\x85\x60\x69\xcb\xd9\xe0\x1c\x20\x70\x27\x9c\x80\x87\x56\x15\x52\x3f\xb8\x82\x7f\x11\x74\xc8\x94\xb3\x2c\x0d\xd5\xf4\xc0\xd8\x67\x3f\xe0\xd2\x63\x26\x18\x26\x9c\x5d\x3b\x8b\x33\xfb\xe2\x04\xbb\xb7\x1f\xcf\x61\xdf\x72\x11\x61\xbd\x26\xcf\x31\xca\xe6\xb3\xa5\xac\x87\xe1\xf7\xcf\xde\xd5\xe1\xe6\x22\x5c\x1c\x7a\xaf\x88\x9d\x88\xea\x9a\x2f\x91\x92\x8c\x2e\x19\xca\x10\x5c\x66\x00\xf6\x17\x63\xbf\xf5\x60\xee\x9e\x40\x81\xc1\x93\x53\x42\xd3\x54\x31\x8d\xee\xe0\xd3\x8c\x51\x0d\xe5\x10\x99\x2f\x72\x68\xe7\xf9\x6c\x8f\x2f\xc3\x09\x2c\xa4\x5f\x7d\xf7\xa7\xf1\xcb\xf1\xcb\xf1\xab\xcf\xf6\xf3\xd4\xcf\x6d\x31\x8d\xeb\xab\x25\x29\x44\xc6\xb4\x06\xac\x32\x96\xaa\xcd\x14\x03\x3f\xa1\x62\xa5\xef\x35\x32\xee\x4b\x01\xe9\x50\x76\x12\xed\x28\x8e\x1d\x43\x45\x44\x13\x9c\x6b\x0d\xf3\x8e\x58\x94\x5e\x1a\x45\xdc\xc6\x97\xe6\xbc\x80\x70\x45\x6d\xe0\xb1\xfd\x72\xc6\xaf\x58\xb6\x74\xc6\x71\x21\xc5\xa1\xc5\x2a\x3a\x81\xa0\xb5\x31\x1b\x8f\x00\x1d\x18\xd5\x30\xc4\x14\x4a\x90\x22\x47\xbf\x93\x60\x37\x1e\x0b\x02\x26\x21\x82\x06\x54\xbb\x3c\x00\x8e\x7e\x79\xf0\x03\xa0\x88\xc5\x64\xf7\x68\xc6\x85\x0f\x3a\xf1\x4c\xdf\x85\x41\x1e\x63\xba\x42\xa8\x20\x49\x33\xe7\xf3\x9d\xfa\x2c\x2f\xef\x26\xa0\x62\xe9\xc5\xc2\x9c\x29\xa0\x46\x93\xcc\x15\x2e\xfd\x74\xf6\x7e\x4c\xfe\xa7\x2c\x60\xac\x47\x51\x98\xd8\x48\x30\x6f\x03\x1c\xd5\x84\x1b\x45\x55\x98\xa6\xee\x6b\x9e\xc6\x71\x36\xb4\x74\xbb\xa5\x56\xbe\x98\x72\xb7\xf1\x63\x63\xd8\x22\x37\x6e\x02\x2c\x34\x59\x68\xa6\x08\xe4\x27\x68\x9e\x10\x5a\x98\x39\x44\x8b\x91\xcb\x03\xfb\xe4\xb5\x5d\xc1\x8d\x54\xe9\xff\x89\xe1\x60\x10\x8d\xe3\xf3\xc5\x7e\x54\x74\x86\x61\x82\xcf\x2f\x0f\xbe\x19\x8f\xc7\x97\x07\x2f\x00\x02\xbf\x16\x4c\x2d\x49\x4e\x15\x5d\x30\x03\x57\xe3\xf2\xe0\xff\xf0\xcf\x5d\xb9\x4e\x37\xcb\xc8\x39\xc2\xef\x2b\x8d\x08\x9c\x48\x43\xf7\xa7\x21\xdf\xe0\xf1\xe6\x1b\xc4\x0e\xa7\xcf\xff\x7a\xe6\x70\xfa\xd9\xbf\x3f\x3f\x8d\x4c\x04\xbc\xa1\x43\x3a\xc2\x76\xe9\x08\xf8\x6c\x48\x48\x18\x12\x12\x86\x84\x84\xaf\x25\x21\x01\xef\xca\x90\x8b\x30\xe4\x22\x0c\xb9\x08\x43\x2e\x82\x7f\x3a\xe4\x22\x0c\xb9\x08\x43\x67\xa8\x21\x19\x61\x48\x46\x78\x9a\xc9\x08\x43\x67\xa8\xa1\x33\xd4\xd0\x19\x6a\xe8\x0c\x35\x74\x86\x1a\xd2\x9c\x9e\x66\x9a\x13\x5a\x82\x9f\x4e\xae\x93\x4b\xba\x19\xb9\xa4\xa7\x73\xb9\xa8\xa7\x3e\x0d\x99\x4b\x1b\x67\x2e\x55\xac\xdf\xee\xe1\x90\xce\xb4\x9b\x74\xa6\xef\x1f\x60\x3a\x53\x57\xc8\xdb\x4e\x1c\xc2\x8f\xa7\x99\x93\xd5\x92\x14\x4b\xa8\x33\xbc\x5f\xbf\x1a\xbf\xfa\xe3\x88\xe4\x19\x15\xc2\xb2\x1e\x98\x62\x21\xaf\x41\x3e\x81\xa7\xff\x1d\x95\xa1\x75\xe1\x7c\x47\xd7\xaf\xd6\x93\x7f\x2f\x75\x0c\xa1\xdc\x0f\x39\x94\x7b\x88\x62\x7e\x2a\x51\xcc\x43\x36\xd4\x03\xca\x86\x6a\x8e\x20\xea\x29\x92\x0e\x09\x51\xb7\x6d\x27\x05\xe0\xdf\x41\x74\x78\x37\xdf\x1f\x1a\x4b\x0d\x7c\x74\xd3\x94\xa8\x7b\x6c\x2c\xd5\x43\x90\xbd\x8d\xde\x3c\x48\x13\x4f\x45\x9a\x18\x72\xa2\xf0\xf7\x87\xc6\xf4\x3a\x32\xa2\x76\xcb\xf8\x86\x3e\x53\x43\x9f\xa9\x35\x20\x1a\xfa\x4c\x0d\x7d\xa6\xb6\x06\xe0\xd0\x67\x6a\xe8\x33\x35\xf4\x99\x1a\xfa\x4c\x3d\xca\x3e\x53\x28\x1e\x0d\xcd\xa6\xca\xef\x0f\xcd\xa6\x36\x5d\xe5\xd0\x6c\xaa\xe5\x6e\xde\x77\xb3\x29\xbc\xdc\x43\xc7\xa9\x21\x03\x74\xc8\x00\x1d\x32\x40\x87\x0c\xd0\x21\x03\x74\xc8\x00\x1d\x32\x40\x87\x0c\xd0\x35\x77\x7d\xc8\x00\x1d\x32\x40\x87\x0c\xd0\x21\x03\x14\xfe\x37\x64\x80\x7e\x05\x19\xa0\x43\x02\xe8\x90\x00\x3a\x24\x80\x3e\xfc\x04\xd0\x21\x4d\x6b\x48\xd3\x1a\xd2\xb4\x86\x34\xad\x21\x4d\xab\x05\x33\x86\x34\xad\xa7\x96\xa6\xf5\xf8\x1b\x48\xed\x2b\x5f\xab\x63\x83\x43\xc6\xd6\x63\x88\x34\x1f\x62\xac\x9f\x4a\x8c\xf5\x90\xb1\xf5\xe0\x32\xb6\x86\x26\x56\xee\xc5\xfb\x68\x62\xb5\xdb\xe0\xf5\xa1\x9d\xd5\xc0\x51\x9f\x58\x3b\xab\x5e\xf2\xed\x6d\x14\xea\x41\xb6\x78\x2a\xb2\xc5\x90\xbf\x85\xbf\x3f\x3c\x06\x78\xa7\x19\x5c\x43\x77\xab\xa1\xbb\x55\x77\xdc\xfa\x3a\x1a\x31\xb4\xb8\x32\x43\x8b\xab\xa1\xc5\xd5\xd0\xe2\x6a\x68\x71\xf5\x28\x5b\x5c\xe5\xb9\xb6\xf2\xe0\x1b\x2b\xaa\xc9\x2c\x63\xea\x8c\x5d\x73\xbd\xde\x10\xbe\x3a\xb8\xf4\x56\xc1\xb9\xf0\xc5\xa2\x40\x9f\x98\x16\x34\xd7\x73\x09\xba\x11\x3a\x4f\x51\x84\x44\x19\x02\x31\x58\x31\x9d\x4b\x81\x67\x6f\x0f\x4c\x33\xc5\x69\xc6\x7f\x83\x6a\xa5\x22\x25\x29\x8b\x7f\x29\x1d\xf0\x8e\x42\x38\x09\xc4\xe5\x84\x05\xd5\x13\xbe\x36\x26\x3f\xa3\x8b\xac\x61\xc9\x73\xaa\xc9\x84\x31\x41\x74\x91\x24\x4c\x6b\x0c\x39\xc4\x40\x84\x14\xc2\xc2\x12\x2a\x48\x5d\x6b\xb8\xa8\x84\xe2\x47\xce\x99\x28\x69\xc0\x2a\xd1\x90\x82\xe9\x15\x10\x30\xf2\x23\x92\xc1\x05\x2f\x8c\x17\x35\xde\x52\x43\x91\xde\x8e\x1b\xd6\x08\x8a\xcf\x88\xcc\xbd\xab\x7b\xc2\x5c\x10\x84\x2b\xa7\x0b\x33\x8f\x48\x5a\x00\x01\xb2\x4a\x8f\x45\xde\xc9\xb2\x0c\xfe\x78\x4b\xd9\x42\x8a\x73\x86\x3e\x85\x73\xfb\xdd\x69\x91\xd9\xbf\x93\xf0\x35\xf4\x13\xe3\x0e\x61\x98\x72\x91\x12\xa3\x8a\x5e\xc6\x2d\xb8\xec\xd9\x95\x9e\xf7\x70\x93\xa3\x54\x03\x08\x9e\x84\x59\xaa\x96\x05\x74\x35\x6a\xac\xc8\x6b\x30\x8b\x14\xc8\xb2\x46\xf2\x90\x38\x8c\x88\x98\x58\x0a\x99\xa3\x10\x13\x83\x7e\x59\x9f\x92\x84\x05\x01\x72\xc5\x17\x54\xf1\x6c\x09\xeb\x0f\x07\xef\x40\x10\xed\x6f\xb0\xaf\x3c\x68\xfb\xca\xed\x55\x5b\x55\x08\xc3\x17\x6c\x7c\x46\x6f\xde\xf9\x08\xe9\xb5\x52\x2b\x5c\x3b\xee\x83\x95\x90\xb8\xb0\x15\x94\xf5\x39\x87\x40\x49\x06\x8b\xc8\xd3\xb6\x88\x6c\xe7\x6d\x79\xa6\xef\xce\x2e\x12\x36\xdd\x08\x12\xb5\xca\xb7\x9b\xd6\x5f\x72\xec\x50\xb7\x1f\x33\x0d\xdd\xcf\x31\xce\x97\x88\x87\xc1\x24\x6f\xc1\xd9\xd3\x1e\x1d\xf0\xc7\xdf\xef\x38\x3a\x20\xec\xe9\x2e\xed\x39\x79\xae\x9b\xed\x36\x0d\x32\x52\xbb\x9d\x66\x13\x13\x4d\xab\x0c\xd6\xe1\x85\x68\x7e\xc1\x2b\xe2\x8e\x90\x38\xf1\x08\x84\xa9\xe0\x8f\x68\x10\x87\x56\xe2\xbc\x06\x5e\xf9\x00\x79\x65\x1f\x5f\xc4\x89\x1d\xe3\xb9\x5b\xfb\x89\xeb\x1d\x39\x23\xda\x35\x88\xc1\xd5\x30\x30\xd6\x9e\xae\x86\xbb\x67\x9d\x0f\xd6\x9f\xb0\x01\xff\xe9\xf0\x15\x6c\xc1\x83\x82\xbe\xb8\x86\xed\x94\x3a\x65\x79\x7f\x5a\x62\xde\x48\x0a\x63\x89\x66\x66\x60\x2c\x0f\x9a\xb1\x0c\xf4\xf6\xa9\xd0\xdb\xc7\xae\xc8\xe8\x9c\x25\x9b\x7b\xb4\xea\xf4\xeb\xdc\xce\xb2\x6e\xff\x17\x73\x46\x52\xa6\x2d\xc5\x27\x13\x36\xa7\xd7\x5c\xaa\x40\x30\x22\xb2\xb5\x6f\x60\xd8\xed\x1e\x52\x91\x1e\x5a\x95\xab\xd0\x2d\x30\xc1\x67\xb7\x87\x0a\xce\xd3\x05\x97\xa4\x50\x50\x59\x0b\x3f\xdb\x08\x95\x0b\xfc\xc1\x50\x6f\x02\x94\x05\xc8\x99\x60\x44\x9c\x2c\xd1\x0b\x74\xc3\x45\x2a\x6f\xe0\x7d\xbe\x60\x63\x72\x2a\xf3\x22\xa3\x4e\x9b\x04\x35\x13\x7c\xa7\x63\x72\xc6\x68\x7a\x28\x45\xb6\xbc\x47\x70\x77\x99\xd0\xef\x84\xc7\x97\xfc\x77\x3f\x6c\xfd\x8d\x14\xd8\x6c\xac\x0f\x7f\x0f\x83\x6b\xb1\xed\x68\x1c\x00\xfe\x1e\xd9\x97\x0d\xa1\xe0\x28\xa7\x5c\x10\xa0\xdc\x3d\x38\x7e\x46\xb5\xb9\x50\x54\x68\xf8\xcc\x05\x5f\xad\x24\x70\x0b\x42\x08\xd3\xad\x43\xf5\xf7\x54\x1b\xec\xc6\xe7\xa4\x17\xb7\x5b\x13\x56\xe4\x53\xba\xa4\x60\xfe\x32\x18\xe9\x53\xca\x5b\x4c\x82\x0b\xa6\x35\x9d\x75\x05\x2b\x1c\x93\x79\xb1\xa0\x82\x28\x46\x53\xf0\x94\xb8\xd7\xbc\x5d\xc6\x32\xd3\x94\x19\xca\x33\x9f\x17\x07\xc9\x24\x61\x65\xdb\xf4\x64\x63\x54\x77\x8a\x56\x17\x60\x0c\xb2\x03\x9d\xcb\x3e\x02\xcc\x33\x4d\x32\x00\xd9\x6d\x56\xd1\x4c\xca\x56\x99\x53\x20\x3c\xd1\x02\x46\xde\x3b\x7e\xa1\xac\xc4\xf5\x23\xcd\x34\x1b\xdd\x26\x13\x68\xd9\x59\xda\xf1\x62\x89\x15\x07\x4b\x44\x0f\xab\xd9\xda\x37\xd7\xac\x69\xc0\xfb\xab\x80\xea\x52\x3d\x7a\x5f\xfd\x0e\x63\x52\x65\x1c\x8a\x79\x89\x55\x36\x12\x2f\x32\x97\xd4\x7f\x30\x12\x3d\x6c\x59\xbe\x8f\x91\xe8\x38\x58\x86\x1a\xcf\xb5\x75\x9e\xad\xc4\x8e\xc1\x12\x34\x68\x26\x0f\x3c\xe8\xf4\x49\x58\x88\xaa\xb4\x7e\x3f\x12\xe4\x79\x55\x3d\x6b\x65\x23\x76\x5c\x70\xb1\x62\xc4\x5a\xb2\xad\x61\x68\xc1\x85\xd5\x10\x96\x3d\x53\x76\xe7\x0c\x5b\xed\x16\x8b\xa8\xcb\xae\xcb\x6e\x05\xa9\x06\xa3\xae\x20\x02\xaa\x0c\xf9\x88\x58\x7c\x2e\xd3\xa8\x16\x95\x15\xd1\x96\x21\x11\x13\x6a\xcf\x4c\x21\x22\xc1\xb9\x56\x98\x22\x89\xa2\x7a\xce\xc5\x0c\x23\x8e\xb8\x71\xe1\x58\x51\x15\x09\x7a\x4d\x79\x66\x05\xbd\x6a\x16\xf3\x4b\xf2\xdc\x7e\x2c\x74\x8e\x6e\x78\x81\x50\x4d\xb4\x94\xc2\xfe\x97\xbb\x4e\x08\x34\x5d\xee\xa8\xbc\x6a\x83\x07\xf1\x27\xae\x8d\x54\xcb\xf7\x7c\xc1\xbb\x4a\xd0\x5e\x54\x1a\x19\xcb\x2c\x25\x73\x7c\x19\x02\xe2\x18\xc6\xe5\x48\x0c\x6a\x0a\x61\x25\x4e\x79\x04\x7a\x0d\x84\x14\x23\x15\x53\x0e\x35\x6a\x0b\xae\xe7\x21\x65\x99\x7d\xc9\x33\x9e\x70\x43\x7e\x63\x4a\x62\xfd\x12\x69\xa2\x00\xc8\x0a\x2c\x5f\xbd\xdc\x39\x48\xf4\x7d\xd6\x90\x39\x76\xf5\x72\x30\x6c\x4c\x5e\x33\x05\x35\xe1\x5d\x38\x91\x62\x64\x41\x05\x9d\x95\xca\x74\xc5\x68\x51\x68\x13\x8a\x25\x96\xf5\x31\x10\xc5\xd0\x8a\x9c\x42\x1c\xcd\xa2\x1c\x88\x15\x84\x53\x62\xd8\x22\xb7\x72\x11\x88\xfb\x58\x7a\xa4\x81\xf8\xde\xb6\x42\xd0\xd1\x37\xf0\xdf\xc3\x50\x0d\xa8\x45\x44\x77\x8b\xd9\xd8\xf6\x91\x48\xc5\x2c\xbc\x4f\x65\x7a\xe1\xe6\xe8\xb4\x09\x1d\x57\xcb\xca\x54\xb5\x5e\x00\x0d\x84\xa4\xfa\xcb\x8a\x74\x03\x63\xc2\x4a\xe2\x01\x8f\xf1\x59\xdc\xae\x9c\x24\x32\x5f\x06\x29\xd6\x4e\x06\xcd\xde\xed\xd1\x0a\x99\xba\xb8\xd4\xb8\x88\x4e\x74\x0c\x30\x20\x94\x9b\x79\x0e\x25\x67\xe2\x77\xf9\x94\x08\x59\x1b\xc5\xa3\xba\xb7\x2f\x36\x3e\x41\x7b\x70\x99\xa4\xa9\x3e\x8a\xe2\xa8\x8e\x14\xb3\xd7\x11\xa8\x78\xf9\xf3\x37\xb9\x4c\x0f\xc3\x31\x35\x1e\x22\x8a\x3f\xe7\x65\xc6\xe2\x2d\xcd\x58\x9f\xaa\xf3\x75\x1c\xa9\x8b\x6c\xf3\x09\x93\x48\x9a\xf2\x8c\x26\xf6\x7c\x90\xe8\x54\x69\xbf\xab\x6a\x21\xd8\x0d\x36\x61\xd8\x5c\x26\xd0\xab\xf7\xfb\xa0\x0e\xa2\xdb\x6b\x74\xe7\x75\x55\xba\x9d\x19\xa3\x3e\x5d\xf7\xd7\xac\x98\xf9\x36\xe4\xcb\x56\x41\x04\x96\xf1\x46\x16\xa2\x8b\x57\xc0\x18\xfb\x91\x39\xd5\x73\x12\x5e\xd5\xc1\xce\x10\x56\x5b\xbf\x51\x25\xae\x91\x42\xfb\x96\x1e\x18\xa4\x4e\xbd\x9e\x8a\x41\x0c\xf4\x5a\xf2\x94\x8a\x84\x91\x05\x4b\xe6\x54\x70\xbd\x20\x37\x73\x26\xb0\xc8\x1f\x4b\x81\x4f\xb8\xbb\x19\x2a\x3d\xfa\xef\x0b\x76\x63\x75\xc1\x55\x37\xdb\xce\xd9\x4a\x30\x21\x74\x77\x37\xa9\x1c\x98\xd3\x56\x4b\xd1\x40\x4e\x34\x53\xd7\xbe\x10\x53\xc5\x20\xf7\x4c\x57\xce\xb7\x5e\xcc\x77\x67\xba\x5d\x69\x51\xec\xa9\xe4\x75\x25\x36\x57\x52\xa1\x6b\x46\x91\xcd\x53\xa1\x63\xa8\x23\x38\x3e\x82\xbc\x72\x9e\xcc\x59\x5a\x64\xac\x4b\xb5\xac\x4a\x38\x96\xc4\x46\x0c\xd8\xa7\x54\x50\x43\x32\x46\xb5\x21\xaf\xfc\xfd\xb1\xf4\x1d\x2a\x7e\x28\x86\x75\xc6\x5d\x9e\x91\xaf\xfa\x56\x0e\xdb\x11\x69\xc6\x09\x35\x33\x47\xbb\x46\x56\xe7\x24\xd9\x1c\x6c\x46\x1a\x9a\x35\x03\x2f\x12\xae\x1d\x08\xab\x40\x21\xcf\xb1\xb6\xae\x7d\x82\xaf\x25\x52\x29\x06\xbc\xb4\xf9\x8d\x5d\xb1\xb8\xfd\xc1\x11\x01\x71\xec\xef\xee\xb6\x78\xd7\x09\x3a\x8b\x76\x50\x09\x0f\x6c\xa5\xae\x0a\xa3\xb3\xa4\x46\xc3\x02\xee\x8a\x58\xd7\x78\x8e\xca\x0e\xb4\x90\xf2\x48\x6d\xc5\x88\x71\x4d\x05\x7b\xb1\x1f\xe8\x7c\xe0\x5a\xef\xf2\x62\x56\xf7\x8c\xd5\xb4\x7d\xa6\xc5\x23\xbf\x96\xb8\x77\x38\x93\x87\x84\x4a\x80\x3f\x3b\x67\x98\xb8\xfc\x4f\x82\xde\xdd\xed\x89\x3b\x49\x3c\xdc\x6b\x83\x02\x00\x4b\xff\xc6\x04\x5b\x29\x60\xd5\x06\x99\x85\xd4\x60\x13\xb7\xb2\xc1\x2c\xbc\x48\xfc\x5c\xab\xfa\x64\x24\x81\xed\x26\xfe\x77\x45\x37\xd8\x2d\x7b\x89\x49\x80\x9b\x3f\x3a\xc3\xbb\xac\x6f\xd6\x22\x73\xac\x27\x7c\xdd\xcc\xb7\x85\x0e\xec\x4c\xb3\xf8\xd4\xa6\xb0\xb5\x6a\x18\xd5\x37\x82\x31\xbe\x48\x4c\xc8\xb1\x76\x48\x04\xb8\x55\xd7\xc9\xe0\xe6\x44\x1a\x40\xb7\xee\x61\xd1\x91\x8b\x19\x7e\x77\x6b\x95\xf2\x2c\x9e\xa5\xc5\xf9\x5e\x97\xc9\xf1\x15\xbf\x05\x0c\x7a\xc3\xac\x3e\x3d\x26\xa7\x2e\xc5\x31\xd4\x84\x5d\xe6\x8c\xfc\x85\x5c\x1e\x54\xbe\x74\x79\xd0\xe2\x3c\xde\xc0\x23\x19\x5d\x4f\x5c\x0a\x38\x1c\x30\x6b\xb3\xf6\x31\xac\x70\xfd\xb3\x78\x0b\xc9\x63\x97\x07\x95\x4e\x69\x95\xb1\x77\x95\x6f\x58\x96\xe5\x5d\x87\x5c\x61\x10\x61\xc2\xd2\x59\x4d\x52\x96\x64\xd4\xd2\xab\x6b\x8f\x43\xa8\x3f\x9e\x5a\xad\x1d\xdb\xc6\x82\x89\xe2\x7c\xf0\x52\x3e\x74\x2f\xe5\xe0\xd7\x7b\x2a\x7e\xbd\x5b\x16\xaa\x6b\x21\x85\xb7\x8b\x03\x0c\xa4\xa3\xd3\xe8\x7b\x5e\x77\x4e\x99\xd6\xc8\x40\x16\x95\x13\x6f\x5b\xf5\x2d\x23\xf5\xca\x75\x77\x87\xea\x7d\x28\xe5\xb8\x6c\x59\x8a\x6f\xba\x12\x3c\xd3\xbc\xe2\x2e\xfa\x7d\x37\xee\xca\x92\x09\xec\xd6\x57\x19\xe6\xed\x15\xee\xb6\x3a\xba\x3d\xde\xad\x6c\xd7\x33\x04\xbc\xc5\x7b\x42\xe9\xe1\xae\xf7\x73\x01\xbc\xb1\xdc\x13\xf6\x2a\x70\x9b\xba\xa1\x3a\xd0\xe7\x21\x52\xef\xeb\x89\xd4\x8b\xae\xe8\x63\x0b\xd5\x0b\x2b\xef\x8a\xd5\xab\x0c\xac\x96\x9a\x2c\x9f\x0d\x02\xf0\xc3\x16\x80\xb7\xce\xe5\x6c\x3c\xe2\xd6\x29\xb7\x13\x3f\x86\x90\xbd\x41\xb4\xbf\x65\xc8\xde\xe3\x0e\xa5\xab\xd2\xe2\x3d\xc9\xa7\x5d\xc1\x74\x95\x81\xad\xd1\x74\x7d\x15\x96\x1d\xc7\xd9\x7d\xd8\x22\xc6\xee\x51\x44\xd6\xed\xda\x48\x9f\xd3\x42\x77\x9a\xb4\x4f\xa2\x7a\x1c\xd4\xb8\x33\x0d\x92\x0c\xd7\x04\x67\x69\x91\x64\x26\x52\x66\x8c\x8a\x96\xef\x2b\x39\x53\x4c\xeb\xb7\x8c\xa6\x19\x17\x6c\x83\x30\x4a\xfa\x05\x8e\x18\xe4\x6b\x2e\x2a\x07\x5c\x51\x86\x7c\xd9\x3a\xff\x29\x32\xc1\xd6\x31\x08\xd6\x6a\x37\xad\x09\x36\x2f\xf1\x91\x53\x55\x79\xcd\x07\x7a\x60\x14\x95\xb4\x8c\x00\xab\x5b\xe5\x4a\x26\x76\x62\x7c\xb5\xd2\xdd\x15\x7c\x31\xb1\xe4\xcf\x8d\xc5\xbc\xd3\xda\xb6\xdf\x7d\x49\x18\x4b\xa1\xcc\x0f\x48\xcd\xa1\x81\x7f\xa1\xa6\x34\xf1\xdd\xc1\x2b\x0b\x42\xc1\x2e\x2a\xb6\x55\x6e\x10\xde\x76\xbc\x82\x69\xc3\x17\xe8\x65\x28\x94\xe7\x5c\x00\x33\xda\x7c\x88\x15\x4c\xfd\xe3\xcb\x97\x3b\x6a\xba\x52\x51\x21\xc0\x0e\xda\x75\xc8\x1f\xc3\xdd\xf5\x04\x04\x22\x9e\xf6\x15\xa1\xf9\x30\x63\x56\x23\x9b\xf1\x10\xb7\x7a\xfb\xb8\xd5\xf7\x95\x2e\x8f\x40\x2b\x10\xa9\xde\xf9\x68\xbb\x18\xe0\xd8\xbf\x13\xa2\xee\x20\x58\x06\x5e\xf3\x4e\x48\xae\xc3\x2d\x85\xba\x7f\x56\xed\x08\x9d\x20\xfc\x88\xf2\x86\xf5\x8f\x68\x6d\xd3\x78\x6f\x1b\xa1\x18\x99\xef\x7a\x04\x27\x5e\xd4\xa9\x4d\x19\xa1\x08\x25\x2f\x1b\x02\x15\xab\xe1\x89\x16\x20\xe3\x8d\xe2\xa3\x10\xb9\xff\xc1\x96\x0f\x21\xde\xd6\x0f\x5c\x8d\xb4\xd5\xcd\xa1\xb6\x0f\x2d\x12\xb3\x6e\xad\xed\x25\xca\xa1\xc5\xc4\x09\x73\x8b\x4d\x6d\xb8\xdd\x2a\xbd\x17\x6f\xce\xfa\xb1\x80\x8b\x9a\x1f\xbd\x14\x8f\xe0\x1c\x9a\x42\x1b\xea\x51\x0d\xc4\x50\x35\x63\x2d\x77\x72\xf7\xc1\x93\x3b\x0d\x3a\x8d\x88\xc7\x45\xe5\xef\x3b\x0e\x3b\x2d\x69\xe2\x63\x0a\x37\x2d\xcf\x79\xdf\xf1\xa6\x0d\x36\xfd\x9e\x26\x8a\x7b\x0b\x38\xdd\x2a\x38\x67\x5d\x40\x4e\x13\x6e\xee\x3c\x20\x07\xee\xfb\x96\xb4\x03\x69\x05\xd2\xef\x3b\x24\x09\x3d\x85\xdd\xfa\x6a\x85\x14\x87\x86\xa9\x05\x17\x5e\x37\x5d\xbb\x6c\xf2\x1c\x4b\x0c\xbb\x0e\xc3\xa5\x88\xe1\x79\xcc\xee\x53\xb2\x0a\x71\x5b\x6a\x1e\xcd\xd0\x7d\x2e\x41\xc0\x35\x0d\xf1\x55\xd5\xdc\x23\x6d\xb8\x2b\x71\x0c\x5a\x83\x27\x66\x55\x95\x10\x02\xe9\x5e\xbd\x7c\xf9\xbb\x88\x86\x24\x34\xa7\x09\x54\xf1\xbd\xc0\x3e\xa0\x4b\xdf\x48\x7a\xc2\x6a\xdf\xf0\x21\x5c\x93\xc2\x80\xfc\xbc\x64\x15\x62\x14\xa7\x43\xe1\x72\x5c\xe0\x9e\xc1\xba\xce\x41\x68\xd8\xf5\xa1\xa0\x65\x70\xcb\x03\xd9\x14\xe9\x60\x7b\xb0\xb1\xd8\xcc\xe3\x45\x18\x8c\x32\xdc\x4f\x44\xdb\x2d\x84\xa1\xee\xb8\xb1\x95\xc1\x91\x0c\x38\x97\x37\x1b\xcb\xbe\x77\x1a\x27\xd6\xe2\xb7\xbe\x55\xa0\xd8\x2a\x44\x2e\x30\x74\xac\x16\x9f\xd5\x2c\xb5\x6f\xe3\x1e\x8b\xe3\xc5\x18\x5e\x16\x1f\x2a\x56\x0f\x56\xbb\xf7\x78\xb1\x52\x3a\x5a\x83\x54\xe5\x20\xc2\x84\x2e\x54\x08\x07\x2d\x35\xef\x2a\x3d\x23\x9e\x71\xd4\xb3\x39\xa8\x58\x42\x97\x0f\x81\x85\x8b\x06\x3f\xda\x43\xf6\xa3\x0d\xde\xa6\xa7\xe2\x6d\xea\x19\x48\xe6\x3a\x01\xbd\x47\x39\x0c\xf4\x90\xe8\xea\xdb\xab\xcc\x16\xb9\x59\x42\x13\xa0\x25\xfc\x9d\x22\xf9\x0a\xf6\x67\x90\xda\xa0\x51\x01\x5e\xbf\x53\x99\x3e\xb7\x6a\xac\xb7\xbc\x47\xd3\x61\x92\xb5\x3d\xf5\x27\x59\x30\xaf\xdc\x69\xaf\x40\xb9\x0a\xd1\xda\xc8\x11\x15\xe9\xb7\x4f\xa1\xa4\x5e\x04\xb7\xee\x40\xbd\x2d\x4c\x3e\x31\xb8\x86\x5a\x7b\x7b\x71\xf1\x46\x32\xc5\x4e\xdd\xbb\xe5\xbc\x7d\xc2\x0f\x1b\x46\xb7\x87\x1f\x3a\x79\x05\x82\xfe\x1f\x61\xfc\x61\x3d\x5e\x6f\x28\xba\x37\x84\xf2\x35\xc2\xc3\xe9\x2a\x31\xba\x3f\xb2\x58\xbe\xf2\x5a\x77\xc4\xf2\x55\x07\x36\x15\xde\x1b\x52\x5a\x1e\x8b\x26\xb2\x49\xa7\xe8\xf8\x54\xf7\x58\x9d\x65\xb7\x56\xf8\x88\x65\xf6\x34\xbe\x0f\x1a\xdb\x93\xd6\xd8\x1e\x72\x49\xbf\x47\xd6\x47\xba\x87\x9c\xba\xfb\x50\xc4\x9a\xfa\xd7\x87\x4d\x75\x14\xf6\x6b\xf2\x63\x0e\x01\x87\x77\x1b\x70\xd8\xd3\x1f\xe6\x3d\x18\xfe\x34\xc5\x4a\x30\x98\x9f\xe8\x56\xa1\x4f\x51\xb7\xec\x7a\x38\xd8\x1e\x19\xdf\xd1\x37\x37\x73\x6a\x0e\xb9\x3e\xa4\x87\x3d\x38\xe3\x23\x8f\xb9\x3a\x8f\xca\xbe\xd1\x75\x75\x03\xdd\x5d\x28\x9d\x97\x5e\xc6\x4e\x64\x21\xcc\x18\x8d\x6a\xe4\x8a\x2d\x31\xac\x12\x65\x2e\x57\x9c\xae\x47\x4d\xc1\xe0\xc1\x8a\x44\xf7\xa1\xce\x60\x6b\xdc\x93\xbb\x78\x9b\x17\x1d\x24\x7c\x4a\xb8\xd0\xc5\x74\xca\x13\x90\x56\x2a\x9e\x8c\x94\x19\x08\x91\xbb\x8f\xb2\x7f\x3d\xf9\x6b\xb8\x2d\xbb\x53\xb4\x3a\x63\xb0\xea\x43\xfb\xd4\xc3\xdb\x88\x9d\x6d\xec\xac\xaf\x10\xdd\x92\x4d\x84\xc3\xec\x15\x7c\x15\x5a\xeb\xc7\x77\xee\x11\xc5\x10\x45\xcb\xde\x73\x10\x51\x93\x65\xae\xa7\x1e\x73\x6f\x41\x44\xd0\x96\x1a\xa8\x72\xff\x90\x83\x0a\x5a\x95\xb4\x1f\xa2\x08\xe2\xe8\x15\xaf\x44\x65\xc1\x93\x52\xa7\xcd\xfe\x37\x8f\x91\x7b\xc0\xac\x8d\xa3\xa4\x7e\x5e\x79\x81\x28\x36\xcd\x5c\x47\xf0\x6a\x04\xd5\x74\x9d\xc5\xbd\x5f\xc8\xdd\xfe\x83\xa8\x2a\xc7\x85\x37\x3e\x50\x80\x3b\xb9\xdc\x5b\xca\x8b\x75\xb0\x22\x54\xe3\xad\x78\xe9\xf1\xb1\x8b\x79\x3d\x99\x5a\x80\xe3\xad\x99\x5a\x73\x59\xa2\x76\xd6\x06\x4a\x59\xad\xc6\x52\x93\x27\x2e\x2a\x1a\xa4\x2a\xe1\x29\x7d\x94\x35\xfa\x65\x4d\x05\xb6\xcd\xc4\xdc\xc2\xf0\x6c\xcc\x85\xd1\x46\x8d\x4f\x84\xf9\x59\x9d\xa3\xdd\xa2\xcb\x7b\xe0\x13\x92\x4a\x24\xab\x55\xee\x05\x42\x97\x60\x5c\x4b\x1c\xfb\x16\x25\xe6\xf8\x6a\x49\xbf\x80\x45\xc9\x8d\xa5\x82\xd0\x89\x96\x59\x61\xc2\x65\x7c\xce\xbe\xbc\x26\x7f\x78\x41\x20\xd7\x29\x67\xca\xe2\x39\x9d\x21\x49\xac\x05\x75\xd5\x16\xe1\xbc\xc8\xda\x50\x65\x3c\x0d\x72\x51\x40\x30\xe9\xab\x97\xbf\x7b\x31\x26\xc7\xb5\xef\x71\x4d\x12\x9a\x25\xce\x6b\x07\xb6\xa9\xe8\xab\x93\x25\x51\xb2\x10\x29\x1e\x99\x53\xc8\x92\x60\x8e\x7a\x59\xc6\xe8\xa0\xa5\x8c\x6b\xab\x5f\xbd\xfb\x42\x17\x79\xc6\x5e\x63\x38\xb2\x71\x4a\x9c\x3d\x7e\x23\xc9\xf7\x2f\x7f\x37\xb2\x6b\x85\x7b\xfc\xfd\xcb\xdf\xf9\xa5\xde\xae\x70\xe7\x98\x8d\x7d\xde\x54\x73\xf5\xb2\x17\x00\x73\x1f\xd2\xc6\x9d\x76\xa2\x8d\xcc\x73\x17\x49\x48\x43\xd1\xe6\xd5\x58\x1c\x88\xd2\x0e\xe5\xc3\xa8\x32\x1a\x5c\xa0\xf6\x6d\x17\xbc\x53\xdd\x8e\xd4\x6c\xe5\x78\x84\x15\xaa\x99\x20\x13\x8b\x13\x9a\x14\x39\x04\x94\xd5\x46\x61\x36\x98\x5d\x5e\x46\x13\x36\x26\x3f\x8b\x84\xf9\x80\xed\x32\x5f\x25\x60\xd8\x08\x6c\x05\x76\x56\xc8\x54\x63\xa9\x26\x52\x18\x49\xc0\x6b\x55\x9b\x7b\x44\xcc\xbc\xd0\x18\xa4\x84\x30\xa4\xa6\x14\xf0\xfe\x84\x4b\x97\x8a\xcf\xb8\x58\x8b\x66\xf1\xf7\x01\x54\x59\x06\x40\xd2\x0d\xe8\xbe\xcb\x60\xac\x96\x60\xb8\xdb\x93\xa7\x6d\x68\xd2\x79\xa1\x56\x1d\x7f\xf7\x45\x8d\x56\x68\x50\xa8\xea\x47\xe8\x44\xd6\x82\x38\xab\xaf\xdd\x8a\x20\xc5\xd9\x7b\x31\x8d\xf1\x54\xc2\x67\x2a\xbe\xb4\x8a\xe3\x87\x0a\x21\xb7\x04\xe1\xe5\x6d\xa9\x51\x6c\xd6\xf9\xee\x0f\xbf\xeb\x43\x78\xfc\x55\x8a\x62\x6d\x02\xcc\xa8\x05\x58\x91\x13\xbe\x58\xb0\x94\x53\xc3\xb2\xa5\x9f\x88\xd5\x90\xc4\x11\x81\x11\xd1\x05\xd8\x16\x1c\xed\xad\xd3\x30\x99\x61\x6d\xcf\x70\x79\x53\x09\x30\x61\x90\x14\x4a\x5e\x39\x7a\x51\xcd\x82\x84\x2b\x6f\xdf\x84\x37\x80\x62\x41\x64\xf1\x15\xcf\x32\x96\x8e\x3a\x97\x3f\x2d\x94\xbd\xfd\xa3\xda\x4d\x6f\x8c\xac\xae\x45\x1f\x82\x87\x7c\xe5\x16\x83\x79\xc7\x51\xb8\xc6\x25\xb7\x18\xfe\x1f\x24\xe7\xbe\x43\x7e\xdd\x76\x3d\xb6\x47\xfa\x54\xde\x88\xf6\xeb\x05\x34\xc9\x5d\xac\x2d\xaf\x46\x35\x31\xb5\x86\x5b\xf6\xeb\x76\xf4\x9f\x56\x51\x60\x83\x3b\xe3\x10\xbc\xc2\xcf\x40\xfd\x18\xf5\xf8\x7a\xc0\xed\xa9\xcc\x32\x79\x83\xa6\x3f\x3b\x00\x3f\xd3\x70\xbd\x57\xae\x41\x5b\x92\x41\x5f\x9e\xe6\x6e\x43\x85\x6b\xb6\xdd\x86\x9d\xf2\xbc\x73\x43\x0d\x9b\x16\x19\x58\x92\x3a\x63\xdd\xbb\x5e\xb5\xdb\x28\x6b\xa4\x82\xd3\x2b\xb1\xbb\x83\x48\x71\x66\x18\xa6\xd0\x76\xcd\x72\xb1\xcc\xfb\x30\xcc\x9c\x2a\x53\x0f\x49\x6a\x5a\xf4\xa9\x1f\xe7\x63\x63\x9c\x41\x52\xaa\x14\x84\x12\x6a\x9c\xc3\xc5\xfe\x18\x2d\x27\x92\x10\xc3\xa7\x22\xbb\x7f\x29\x9c\xee\x28\xe9\xf9\xb6\xe7\x1a\x2d\x7d\x9d\xfc\x12\x6d\x30\x32\x1a\x62\x64\x8a\x47\x5b\xc8\x4c\x00\xb7\x8f\x36\x90\xee\x9f\x32\x61\x01\xc0\xf4\x98\x9c\x84\x7f\xfb\x78\x54\x2e\xac\x4c\xa0\x5f\x5f\x0a\x72\x48\x3e\x32\x63\x75\xde\xd7\xe4\x98\x68\x2e\x66\x19\xdc\x50\x7b\x01\xde\x7e\x3c\xc7\x92\xd4\x52\x1b\x41\x17\x6c\x0c\xc3\xcf\x8d\x54\x74\xc6\x5e\x93\x63\x4d\x16\x96\x5b\xfc\x22\xb3\x62\xc1\xde\x64\x94\x2f\x34\xa1\xc1\x67\xcd\xd2\xf1\xa5\xb8\xa8\x1d\xd0\xac\xa0\x8a\x0a\xc3\xca\xe8\x78\x94\xae\x05\xae\xc1\x2f\x7b\x89\x26\x67\x9a\xdd\xd0\xa5\xfd\x4a\xee\x23\x37\x20\x6e\x56\xe3\x0a\xc2\xe0\x21\x30\xe5\x41\x07\xa6\x0c\x01\x17\x4f\x25\xe0\x22\x0a\x91\x6f\xf6\x42\xde\x26\x18\x3c\x66\x2b\x1b\x47\x83\x7b\xce\x5b\x92\xbd\x40\x19\xb9\x13\x73\xc0\x76\xd9\xbc\xec\xdb\x45\x63\x57\xf8\xe1\x86\xe1\xd8\xab\x5e\x9f\xd3\x78\xcd\xd1\xd4\xdb\x45\x62\x3f\xb4\xb0\xe7\x98\xe3\xed\x34\x96\x24\x9a\xb8\x4f\xe0\x73\xd3\xf0\xf6\xc8\x67\xed\x46\x3f\xd2\xc8\xe7\xa1\xd5\xf8\x10\xf5\xdc\x37\xea\x39\x46\xf5\x47\x16\xf5\x1c\xdd\xe9\x8e\xb0\xe7\xda\xc8\xa6\xb8\xe7\x68\xc8\x10\xf8\xfc\xb0\xe5\xcb\xc6\xc0\xe7\xdb\x7a\xeb\x63\x46\x15\x4d\x31\x44\x1b\x7f\xb5\xc2\x6f\x88\x36\xde\x98\xde\x3d\xa0\x70\xde\x3a\x8d\xdc\x97\x0c\xd6\x11\xd0\x7b\x4c\x6a\x63\xd7\xc4\xf4\xc6\x32\x70\x0f\x13\x93\x4c\x3f\x40\xd2\xec\x82\x09\x73\x2a\x33\x9e\x74\x75\x28\x6b\x78\xc3\xbb\x8a\xb0\x1a\x44\x30\x4f\xfa\xf0\x37\x67\x0b\x04\xf4\xa1\x19\x1a\x26\x49\x91\x8f\xd0\xe2\x89\x95\x23\x42\xc9\x08\x29\xd0\x85\x39\x22\x10\x26\xcc\x44\xb0\x53\x7a\x2b\x6e\xc8\x10\x26\x39\x7e\x9d\x6b\xf2\xf9\x67\x05\xe1\xbb\x10\x6c\xf5\x19\x66\x56\x6c\x75\x25\x5c\x10\x2e\xec\x1f\xda\x4e\x88\x51\x91\xcf\x73\x99\x1e\xbe\x1c\x39\x77\xa0\x4c\x0f\x5f\x8d\x08\x33\xc9\x0b\xef\x79\x5c\x29\x74\x79\x43\xb9\xa5\xf9\x86\x67\x84\xd1\x64\x0e\x9e\x54\x1f\x1d\xec\x4b\x69\xba\x62\x98\x5c\xcc\xc6\xe4\x9f\xf5\x4d\x8c\xca\xc2\x69\x68\xc5\x5d\xc8\xeb\xb2\xa2\xa5\xcc\x73\xa9\xb9\x61\xb8\x3c\xdc\x30\xcd\x80\x01\x41\x27\x9d\x68\xd3\xa7\x54\xd1\x2c\x63\xd9\x67\x67\xde\x8b\xbb\x19\x7b\x5d\x2e\x77\x63\xb0\xea\xa7\x0f\xe9\xf4\xfa\x1f\x9e\x85\x8f\xb1\xb6\x3b\x83\x68\x6a\xbb\x75\x29\xdc\x53\xb0\x20\xc3\xd4\x29\xb4\x24\x02\x2b\xaf\x77\x9d\x4b\x91\xf4\xae\x2b\xb1\x79\x10\x8b\xaa\x05\xb1\xac\x3a\xe3\xc2\x08\x27\x13\xa2\x79\xcc\xc7\x6c\x02\xf4\x34\x73\x60\xf6\x73\x09\x57\x08\x48\x68\x16\x8c\xdb\x98\x7a\xce\x85\x36\x54\x18\x5e\x46\xbc\x05\x23\x9a\x9f\x12\xfb\x12\x5a\x69\xfc\x9a\xa7\x05\xcd\xa2\x60\xce\x4c\xbb\x2a\x3a\xb4\xc1\xb2\xb8\x1c\x93\x93\x69\x1c\x5e\x3d\xf2\x68\xfc\x70\xaa\x6d\x36\xbd\x12\xe2\x87\x56\x5c\x42\x7e\x74\xad\xfc\xdf\x82\x72\x0c\xcf\x0f\x18\x1d\x51\xa4\x67\x3a\xbc\xe6\xbb\xcf\x23\x86\xd7\x7f\xf5\x10\xc4\xb0\x43\xa8\x5e\xe4\xbf\x66\xb9\x6c\xe0\xe0\xe8\xca\xa0\xde\x30\x90\x2d\x09\xcd\xf3\x8c\xb3\x74\x85\x62\x3a\x6a\x5d\xa5\x20\x65\xf8\xc5\x13\xab\xeb\xa9\x77\x15\x63\xfe\x08\xc2\xc1\xb5\x9d\x29\x61\x1f\xe9\xaa\x99\x60\x05\x2a\x61\x64\xc8\xa3\xb0\xff\xf6\x17\x1d\x1f\x23\x60\x66\x76\x85\x42\xb7\x19\x96\xfc\x58\x00\x0e\x54\x3d\xf2\xb4\xbf\x86\xf2\x48\x4d\x81\x41\xe8\xdc\x22\xb5\xd5\xea\xcb\x7a\x82\x35\x3b\x7e\x58\x89\x19\xa3\x69\x6b\xc6\x0c\x79\xfb\xf1\xfc\xc8\x3b\x15\xdc\xb1\xa1\x23\x0f\xcf\x83\x1a\xcb\x1d\x5e\x03\xf3\xf2\x02\xc1\x21\x52\xdf\x71\xb4\xe3\xb1\x43\xfa\xb1\xbe\x4e\xc6\x49\x56\x68\xc3\xd4\x38\x93\x09\xcd\x1c\xbb\xbc\x3c\x68\x98\xe1\xf2\xc0\xae\x1d\x0b\x6b\x84\xf2\x04\xb1\x8b\xa2\xb5\xba\x5d\x2f\x4d\xfb\x2e\x23\xf9\xcd\x9d\x45\xf2\xbf\xf3\x72\x81\x36\x74\x91\xb3\x14\x4c\x8f\x0d\xb0\x83\xe9\xa7\x45\x36\xb5\xff\x05\x44\xab\xb2\x19\xc7\x4d\x0a\xc1\x7f\x2d\x4a\xff\x4d\xa9\x9c\x28\xa6\x43\xcc\x5a\x45\xee\x6b\x04\xf6\x8e\x3a\xfb\x47\x1f\xda\xa0\xb7\x7f\x51\xeb\x39\x59\x71\x54\xb6\x4e\x59\x3d\x05\x0b\x1b\xb9\x44\xe7\xab\xf3\x2a\x97\xe6\xdf\x1a\x64\xad\xd0\x45\x4b\xb6\x02\x38\x9c\x42\x99\xde\x20\x1c\x34\x43\xe9\xba\x74\xcf\xf9\x91\x5d\x62\x4a\xd3\x2b\xd5\x46\x2f\x09\x7a\xfb\xb0\x2a\x79\x08\x07\x73\xbe\x78\x28\x9f\x36\x65\x8a\x59\x59\x8a\xd4\x5d\x80\x91\xf8\xd9\x40\x44\x16\x14\x43\xe9\x6a\x84\x84\x33\x2c\x63\x8a\x9f\xe5\x16\x14\x37\xd4\x41\xd3\x33\x68\x04\x7d\x4c\x79\x28\x36\x53\x7e\x77\x6d\xf9\x04\xbc\x1b\x2c\xeb\x98\x0d\x6a\x69\x1d\xe2\xa4\xf7\xe4\x4b\xc1\xca\xf0\xf4\xe7\x93\x25\xd0\xd3\x17\x04\x21\xf2\x01\x0a\xba\x72\x01\xa3\xca\xac\x3d\x77\x5c\x26\x08\x69\xc7\x4d\x1f\x33\xf4\x8a\x69\x92\x2b\x96\xb0\x94\x41\x6c\x8f\x65\x5c\x54\x2c\xdd\xe4\xba\x3e\xcf\x08\x9d\xba\x41\x62\x03\x17\xec\x6e\x72\x12\x02\xb5\xb1\x32\x04\x88\x75\x91\x13\x77\x73\x7b\x47\x4f\x3d\x78\x6d\x39\xe4\x16\xfe\xb7\x43\xa3\x60\x67\x8a\xce\xca\xd8\x75\x39\x3a\x6c\x1b\xed\x74\xa3\xf2\xc1\xd5\xc1\xc1\x63\xd4\x55\x54\xb8\xc6\xda\x5b\x2f\xdf\x1d\x94\x15\x7e\x13\xbe\x76\xe6\xe8\xd6\x63\x4a\x0d\x8a\x4c\xe1\x7b\x4e\x0d\x6a\x74\x5e\xf5\xbc\x85\xf7\x96\x1b\xe4\x00\xd2\x33\xcf\xa4\x36\x7a\x35\xeb\x17\x18\x9f\x17\x4b\xd6\x8a\x65\xa5\xb8\x10\x3f\x77\xea\x50\x60\xc4\x30\x49\xf8\xea\xbe\xb0\xaf\x3a\x7f\x5f\x18\xe0\xe8\x91\x95\xbe\x20\x0c\x14\x0b\xc6\x55\x45\x08\xbf\x9f\x55\x69\x28\xc4\x6b\xb9\x5c\xa3\xaa\xd0\xa0\xd9\xaf\x05\xb0\x97\x7f\xbd\x1c\xd5\x80\x5e\x2f\x11\xdc\x47\xa0\xdd\x38\x41\x6a\xf5\x85\x86\x8c\x9d\xc6\x42\xd3\x21\xdb\xa8\x42\xc1\x4e\xec\xd1\x2b\x14\x13\xd2\xe0\xc8\xa8\xaa\xe0\xe5\x6c\x23\x67\x39\xe2\xa1\xfd\x22\x91\x82\x2c\x0a\xe7\x3e\x71\x78\x75\x7c\x7a\xe2\xec\xe4\xf7\x9a\x7b\x55\x19\x7b\xab\x1b\x51\x66\xd8\x51\x28\xb1\xb6\x24\x6f\x5a\x7c\x77\x77\x96\xaf\x55\x37\x75\x6d\xb3\xaf\x3d\x55\x4f\xee\x79\x5d\xab\x83\xf7\x7d\x5b\x3d\xbc\x0e\x6b\x15\x9e\x47\xfe\xc1\x8b\xcd\x2f\xef\x66\xc5\xa2\x6b\xa3\xef\x88\x44\x57\xa1\xbc\xa7\xb8\xcc\x3d\x67\xcc\xb5\x6b\x90\xbd\x84\xcd\x4f\xeb\x54\x49\x5d\xd1\x1c\xd7\x80\x1c\x94\x4a\xd7\xb9\x25\x67\xca\x82\xce\x77\xa9\x07\x2a\xca\x45\x92\x15\x29\xd3\xa0\x72\xd0\x14\xa9\x03\xcd\xca\x48\x5f\x4d\x04\x4b\x98\xd6\x54\x2d\xe3\x39\xa2\x90\x67\x2f\xde\x95\x07\xe8\x57\x77\x3f\xb5\xb0\x9b\x42\xa1\xd7\xe9\xec\x95\x97\x3b\x23\x9f\x35\xca\xbb\x10\x19\x51\x2f\x3d\xdd\x1a\x03\xdd\x6c\x15\xea\x19\x7f\x51\x3d\x79\xe3\x42\x32\xd6\x1a\x14\xee\xb1\x3a\x76\x61\xe6\x56\xd5\x46\x5f\x1d\x04\x22\xc9\x2b\x26\xec\x4d\x66\x37\x6b\x10\x3f\x1a\x45\xa8\xb1\xfa\x1f\x7a\x0c\xa2\xf9\x2c\x1b\x33\x76\x18\xfc\x4e\x20\xec\xc5\x9e\x95\xc2\x66\x68\xaf\x49\x3c\x47\x70\x5a\xbb\xa8\xb8\x84\x26\xf3\x92\x3e\xdd\xb0\xc9\x5c\xca\x2b\x37\x5d\xf4\x0d\xa9\x48\x9e\x15\x33\xf0\xa0\xc1\x48\x2b\x07\x1f\xd2\x9c\xeb\x9a\x60\x30\xc4\x7c\x3c\xc0\x98\x8f\x21\xac\xe2\xa9\x84\x55\xec\x27\xa6\x78\x1d\x6d\xea\x17\x5d\x3c\x97\x19\x88\x69\x28\x82\x80\x45\x24\x84\x27\xba\x03\x25\x13\x66\x91\x88\x59\xc4\xb2\x27\xb9\xdb\xe8\xe2\xb5\x5b\xd8\x24\xce\x78\x0a\x09\x83\x96\xcc\xf9\x62\xcc\x80\xcb\xe8\xc6\x09\x1c\xe7\x66\xce\x20\x59\x38\xde\x9f\x4f\x77\x8b\x28\xf3\x56\x6d\xd0\x2c\xc0\xbb\x64\xac\x5d\x86\xbf\x54\x41\x87\x37\xa7\x39\x1e\x26\x66\x59\xbb\x89\x85\xe9\xc4\xbc\x5e\x9c\xd1\xc7\xc4\x50\x12\x8d\x29\x53\xe4\x6b\xbc\x0c\xab\x90\xc0\x99\xf5\xe1\x5b\x45\xca\xad\xce\xd1\xa5\x0f\x1c\xfb\x71\x55\xd3\x7f\x69\x64\x9f\x72\x4b\x11\x83\x5c\x1a\x68\xa8\xc3\xaf\xd2\xa3\x1d\xec\xd8\xb8\xf2\xf0\xb6\x26\x54\x8f\x89\xff\xce\x21\xbd\xa1\xaa\x61\x77\x52\xb9\x46\x8c\xd7\x4c\xf1\xe9\x32\xce\xdf\xb3\x23\x6f\x20\x04\xc2\x30\x91\xfa\x04\xfe\xd8\x96\xef\x16\x4c\xcb\xbd\x44\x36\x79\x08\x61\x10\x32\x7a\x6a\x17\x90\x2b\x79\xcd\x53\x96\x8e\x2a\x6f\xfa\x88\x11\x14\xb6\x1c\x6f\x0d\x0f\xdd\x67\xfe\x11\x30\x97\x34\x48\x12\x64\x8d\xad\xb0\x8d\xfa\x6e\x11\x72\x08\x60\xe9\x6c\x0c\x04\x07\xe1\xfc\x86\x39\xfd\xb5\x60\x64\xc2\xa8\x82\xaa\x6a\x57\x6c\xfb\x88\xdf\x5d\x08\x8f\x9d\x86\xfa\x95\xb1\x7e\x27\x8a\x69\x7b\x3a\xf7\x75\x4f\xc0\x09\xe6\x51\x22\xbe\x23\xc9\x5c\x6a\x16\xe8\x6f\x55\x0a\x0d\x1d\xa7\x12\xb9\xc8\xa9\x01\x4f\x18\x5c\x98\x89\x74\xb7\xa6\x22\x31\x8b\xd4\x9d\x10\x39\x8e\x6e\x12\xc6\x45\x88\x65\xe5\x17\xe1\x94\x35\xab\xcb\x94\x91\xcd\xb5\x19\x81\xd2\x44\x17\xc0\x05\x89\xc1\x37\x9e\xe9\xf2\x09\x7a\xb5\x40\xae\x59\x9d\x04\x2c\x6a\x18\x7e\xc1\x4c\x19\xc9\x37\x2e\xe7\x45\x1f\x83\x13\x5a\xaf\x69\xc6\x53\xea\xbb\x1a\xd3\x78\xe7\x0d\xe0\x43\x37\xa1\x29\x54\x14\x82\xe3\x6a\x7c\xd4\xe7\x37\xd2\x35\xdf\x29\x89\x44\xbc\x4a\x47\x98\x78\xb9\x2d\x02\x34\x07\xe8\x00\xad\x69\x15\xf6\x83\x16\x1e\x68\xf0\xa9\x7f\xd1\x7d\x10\x03\x0d\xc2\xb3\x88\x4f\xda\xaf\x5c\x1e\x18\x55\xb0\xcb\x83\x51\x4c\xfc\x34\x6e\x9f\xd0\x19\xe5\x42\x9b\x2e\x3a\x62\x21\x7b\x4f\x84\xa4\xb2\x9f\xce\x4b\x50\xd9\xfb\x6a\x3f\xf1\x92\x58\x53\xad\x65\xc2\x69\x60\x0c\x15\x05\xaf\x99\xee\xac\xed\x30\xce\x94\x5a\x0d\x4a\xaa\x2d\xef\x9d\x1d\xd3\xbe\xac\xc4\xa2\xa5\x78\x06\x62\x79\x32\x67\xc9\x15\x4b\xb7\xb0\xb6\x69\xb6\x71\x6c\x54\x03\x21\xfc\xa4\x99\x3a\x11\x53\xb9\x56\xba\xb3\x83\x3c\xd1\xf3\x2f\xac\x00\x16\x22\x3f\x1c\x33\xf3\x64\x7d\x1f\xa4\x3b\xac\xb8\x9d\x62\x87\x35\xa2\x58\x8d\x74\xa9\x49\xb4\xb6\x40\x04\xff\x22\x1a\x66\xf8\x22\xcf\x98\x6b\x45\x87\x0f\xc7\x30\x0d\x10\xb5\x29\x4d\xfa\x64\x9d\xb3\x2f\x46\xad\x68\x2c\xa5\x01\xec\xb4\xf9\x35\xd2\x7e\xc7\xd6\xde\xb2\xda\x3d\x6b\xbf\x69\xf5\x0b\x59\xbf\x50\x55\x2b\x5d\x0c\xad\x70\xa6\x4d\xfc\xa4\xe5\x06\xc5\x87\x5a\x47\x5c\x10\x9c\x7b\x15\x8a\x83\x78\x2d\x39\x25\xf8\x06\x0a\x52\x85\x43\x45\x0a\x39\xf7\x44\x4e\xef\x9c\x4e\x15\xbc\x93\x3a\xf9\x90\x23\xb4\x01\xc0\xed\x8f\xa4\xd0\x72\x1f\x34\x51\x52\x6b\x57\xec\xe9\x64\x5a\xdd\x21\x86\x0b\x63\x29\x17\x97\x1b\x87\xcf\xbc\x5e\xe5\xa3\x34\x00\x1c\xa9\x17\x21\x5d\x32\x3b\xb8\x67\x52\x3e\x85\xc0\x18\x43\x3e\x9d\xbc\xad\x77\xcf\xee\x4b\x64\x44\x77\x60\xa0\x3f\x2d\xdc\x2a\x6e\x3e\x5b\xb6\xec\x79\x21\xc5\x0c\x62\x52\x69\x02\x11\xd9\xf6\xd7\xde\x6b\xdb\x19\x19\x99\x30\x43\x07\x1b\x62\x2b\x06\x0f\x36\xc4\xc1\x86\x38\xd8\x10\xef\xd3\x86\xb8\x42\xa0\x1e\xa9\x21\x71\x75\x1f\x83\x35\x11\xfe\x77\x47\xd6\x44\x80\xff\x6d\x4c\x8a\xcd\x88\x38\xd8\x15\x07\xbb\xe2\x60\x57\xec\x4b\xec\x06\xe3\xe2\x60\x5c\x1c\x8c\x8b\x83\x71\xf1\xeb\x32\x2e\x22\x35\x7c\x74\x16\xc6\xda\xb2\x07\x33\x23\x19\xcc\x8c\x83\x99\x71\x30\x33\xf6\xa4\x25\x52\xf1\xdf\x82\xb3\xe2\xbd\x4c\x68\x76\x5e\xc0\x5b\xc7\x49\xc2\xb4\xee\xb4\x36\xb6\xbd\x82\xd4\xbc\x54\x76\xa5\x82\x00\x71\x8a\xfb\x95\x0a\xf1\x17\xf4\x5e\x1f\x4c\x4b\x05\xec\x1e\x82\xa0\xcb\xe2\xa7\x16\xdf\x73\xa8\xf3\xff\x13\xbd\x86\x3a\xdc\xe5\x6f\x44\x27\x32\x87\x6e\x78\x4e\x0b\x5a\x40\x1e\x21\x37\x64\x51\x24\x73\xc2\xa8\xe6\xd8\x0a\x6d\xa6\xa8\x30\xab\xef\xb9\xf2\x1a\x88\x8b\x3e\x04\x38\x67\x6a\xc1\x35\xe6\x8d\xc1\x26\xb8\x98\x0d\xd6\xca\xc1\x5a\x39\x58\x2b\xeb\x60\x7f\x4c\xd6\xca\x0a\x9d\x6b\xa0\x57\x7b\xb3\x57\x8e\x09\x6a\x64\x25\xf1\x81\xcc\xea\x09\x23\xec\xd7\x82\x66\xfe\x5e\x96\x8f\x97\xb2\x70\xe9\xeb\xd1\xa4\x4e\x67\x19\x13\xcb\x11\x7d\x96\x8d\x41\x8e\x08\xd6\x91\xaa\xb9\x70\x37\x96\xd1\x4e\x98\xdd\x8d\x6d\xd4\xde\x5a\x97\x3d\x8f\x5c\xe4\x71\xd8\x45\x4b\xe8\xad\x33\x8b\xb6\xb2\xdc\x9d\x45\x5c\x56\x4e\xf1\xa3\x14\x67\x8e\xb8\x1d\x1b\x24\x18\x6c\x9d\xc1\xa7\x71\x7c\xc9\x2b\xbd\xe8\x1b\xbe\x41\x68\x39\xaa\xcc\x1f\x9e\xc2\xb9\x89\xc3\x40\x57\x23\x1a\x88\x49\x87\x6e\x0e\x30\x9e\x38\xb5\xa2\x4f\xc9\x7c\x33\xef\xac\x96\x6f\xe6\x41\x53\x3b\x7b\x4f\xec\x2b\x65\xeb\x3c\x58\xc4\xe6\x74\xef\x9a\xa9\x49\xc7\x77\x7f\x61\x6a\x12\xea\xb6\xf9\x2e\xdb\x3f\x5d\x5c\x9c\x12\x78\xf9\x8e\xe5\xba\xe8\x14\xcf\x8a\x4a\x9f\x91\x35\xe7\x6d\x47\x36\x10\xbc\x5a\x05\x15\x4a\x54\x11\xd7\xb8\x89\x4e\xb9\xfb\x00\x45\xf9\xb5\x4f\x67\xef\xbb\xd4\x9f\x8f\xd5\xd1\x8e\x9b\xbb\x3a\xff\x54\x41\xbd\xb9\x42\x65\xa1\x7a\x3e\x48\x9a\x4e\x30\xc2\xfc\x4f\xb8\x5f\xc0\x77\xc9\xb7\x95\xb2\x1c\x58\x81\x45\x8a\x6c\x49\x28\x1e\xda\xb4\xc8\xb2\x11\x99\x42\x4b\x05\x6d\x58\xee\xed\x5f\x16\x81\xc6\x84\x5c\x1e\x7c\x7b\x79\x40\x16\x8c\x0a\x20\x4e\x77\xae\x6f\x59\x2c\xea\x82\x97\xc7\xc1\xd2\x8d\x50\x92\xb5\xea\x75\x3c\x3e\x3d\x01\xbc\xd4\x23\x92\xf1\x2b\xf6\x9a\xcc\x98\x19\x91\x5c\x6a\xfb\xff\x85\x19\x39\xb5\x6b\x44\x20\x09\x7e\x44\xe6\x8c\xa6\x23\x22\x73\x14\x23\xee\x09\x1a\x3d\x49\x3f\x42\xaa\x8b\xf6\xf7\xbe\x4a\x1b\x51\xcf\x1d\x91\xce\x1d\x93\x4d\xcf\xa5\xd6\xe1\xce\xdf\x40\x3b\x73\x04\xcc\xa2\x07\xfe\xe0\x28\xa7\xdf\x57\xe7\xd1\xf7\xa1\xa6\x3d\x54\xe9\xb6\x1a\x5e\x01\x30\x28\x73\x85\xe6\x1a\xe8\x92\x22\x97\x07\x33\x66\x2e\x0f\xac\xd4\xe0\xed\x06\xfe\x01\xfe\x7d\x79\x30\x26\x97\x07\x97\x07\xe4\x39\x88\x54\x2f\x6e\xbd\x0f\x90\xe0\x7a\x6c\x06\x25\xbd\x68\x47\xf8\x83\x77\x9c\xa1\x16\x5c\xdb\xd4\x98\x90\x37\xbe\xf0\x1d\x18\x35\x14\xcc\x20\x7c\xb7\x77\xff\x12\x76\x7b\x17\x32\x9a\x17\xac\x25\x59\x56\xfe\xa2\xab\xdb\x8e\xc5\x48\x00\x51\x9b\x54\xb2\xfa\x1e\xda\xe8\xed\x3b\xae\xca\xd8\x61\x4d\x27\xd7\x4d\x10\xbe\x3c\xa0\x59\x76\x79\x80\x82\x41\x9b\x36\xef\xf4\x29\x4a\x9a\xcc\x0b\x52\x91\x73\x96\x4d\x3b\x25\xa7\x7e\x05\x2a\x1d\xc3\xea\xaa\x92\xe2\xb0\xcd\xea\x84\xa5\x9b\x13\xea\xc1\xe1\x49\x79\xad\xd1\x2a\x55\x3b\xb9\x1b\xba\x98\xf4\x5c\xdc\x79\x39\x72\x83\xf5\x85\xe5\x09\x29\xb6\x29\xed\xb9\x81\x24\x44\x63\xee\xb3\xc2\x79\x2a\x8c\xc7\xb2\xab\x11\xb9\x41\x5e\x83\x39\xf5\x23\xa7\x1f\x47\xac\x48\xc9\x2f\xcb\x9d\x00\xf9\xba\x97\xd9\xc6\xdb\x6c\x22\x9a\xf8\x4b\xb5\xb0\xc1\xed\xa9\xe2\xce\x04\xbe\x9e\xd2\x5e\x45\xd4\x73\x1b\xf3\xb2\x02\x12\x21\x27\xc1\xe2\x2d\x8b\x35\xb1\x28\x09\x1e\x7c\xbb\xee\xca\x62\x55\x25\x9c\x43\xa5\x0c\x6b\x01\x6b\xf1\xcc\x10\xcd\x67\x02\xaa\x17\x0b\x33\x02\xbb\x89\xab\x11\x46\xd2\x02\x9b\x03\x33\x8d\x66\xa8\x5c\x6a\xcd\x27\x19\xc4\x1a\x72\x91\xc8\x45\x6e\x0f\xbc\x9f\x05\xee\x6f\x7d\xcc\xe8\xc7\xa7\x27\x38\xae\x89\xa5\xf8\x87\xae\xff\x9d\x8c\xaa\xa7\x45\x9b\xb4\x5a\xf8\xa2\xc8\x0c\xcf\x33\x44\x05\x67\x8d\xb7\x22\x65\x54\xf4\x15\xaa\x09\x24\xb1\xf7\x9b\x95\xee\xc7\xf8\x8a\x8a\x62\x01\xf5\x2f\x62\xe2\xc7\x05\xbc\x1f\x66\x0f\x95\xf1\xdc\x11\x3c\x00\x29\xd4\x2f\x16\x58\x5a\x4f\xea\x09\x63\xd1\x69\xee\x24\x48\xa8\x49\xc9\x4d\x89\x7a\x51\xe9\x4b\x80\xbb\xc5\x4e\xac\xf4\xea\x84\xf7\xe3\xe0\x1b\x66\xc6\x6d\x1f\x46\xb3\x6b\xa6\x96\x66\x8e\x48\xf7\x00\xe1\xd4\x17\x46\xb5\xe8\x9f\x12\x27\xd0\x20\xbc\x02\x8f\xda\xfe\x82\xaf\xde\x63\x22\x09\x57\x63\x7c\x29\xec\xe8\xa3\xa9\x94\x97\x07\xf5\x12\x6e\x11\xb7\x21\xcf\xa6\x52\x3e\x43\x71\x09\x0a\xf2\x46\x58\xd9\x36\xf5\xa3\xd3\x81\x3a\xf4\x9f\x1d\xb2\xa1\x27\xa5\x02\xb5\xc9\x5d\x6b\xea\xb9\x34\xbf\xd1\xe0\x23\x32\x51\x25\x41\xd0\xdf\x1b\x1d\x44\x63\x42\x3e\x4a\x03\x26\x45\x2c\x36\x4f\xe8\x8a\x91\xd5\xc9\x99\xf6\x59\x45\xf2\xb5\x32\x3f\x88\x8e\xce\x7e\x60\x11\x99\x66\x24\xa1\x9a\x8d\xc8\x84\x25\xb4\xd0\xce\xfd\xe6\x6d\x07\xae\xd3\x9e\xa5\xbc\x56\x23\x33\x12\xd7\x1d\xdb\x2a\x97\xcd\xeb\x1c\xbc\x46\x83\xd7\x68\xf0\x1a\x3d\x19\xaf\x51\x33\x15\xdb\xa7\xe7\x08\x83\x03\x44\xea\xe5\xcb\xe0\x3a\xb2\xd2\xcf\xe0\xef\x79\x84\xfe\x9e\x5e\x46\x8b\x9d\xb9\x7b\xd6\xa1\xec\xc6\xec\x7a\x6d\x7c\xbc\xb3\xad\xfb\x20\x5f\x42\xde\x7d\xa1\x89\xc9\x96\x5e\xcd\x09\xa6\xd0\x78\x89\x91\x5d\xd4\xa2\x45\xec\x6c\x6a\x19\xe6\x2f\x80\x8e\x7a\x24\xf6\x71\x2f\x34\x9a\x6b\xb7\xbc\x19\xcd\x3e\xb4\x75\xb7\xa2\xd9\x8b\x56\x3a\x51\x62\xb2\x80\x16\xca\x8a\x79\xbe\x0a\xdb\xf5\x2a\xc6\x2e\x37\xba\xe1\x2e\xbb\xce\x6e\xdd\x7e\xbb\xf7\xba\x33\xdb\x48\x84\xdd\x67\x45\xc6\x36\x92\x5e\xa3\x17\x4a\xa5\xdd\x29\x4f\x6c\xc5\x6c\xd2\x2a\xc8\xde\x70\xab\xa4\xc6\x91\x4c\xbe\x31\x8a\x0b\xb6\xae\x1b\x61\x5c\xea\x65\x69\x0e\x21\x29\xcb\x19\x36\xbc\x97\x22\x22\xaf\x10\x38\x1e\x3b\x15\x16\x32\x75\x82\x1a\x15\x4b\x02\x11\xbb\x9a\xb0\x2f\x39\x53\x10\xf7\x9c\xc6\xcd\xdb\x1d\xe7\x01\x01\xbb\x65\xd3\x65\x13\x71\x28\x0f\x38\x59\x92\x4f\x27\x20\x25\xea\xb9\xbc\x39\x9a\xf3\xd4\x5b\xaf\xb1\xa7\x93\x91\xe4\xd7\x82\x27\x57\xd9\x92\x64\xcc\x40\x4c\xb7\x48\x11\x1e\xae\xc1\x64\xe0\x82\x5c\xc5\x91\x57\x50\x95\xd1\x7d\xec\xe3\xcf\x17\xe4\xaf\xe5\x07\xd9\x17\x27\x84\xea\xa5\xb6\x6a\x95\xfd\x48\xaa\xf8\x75\xdd\x9d\x92\xb2\xc4\x55\xff\xa6\x5e\x71\xa6\x5c\x33\x6d\xc5\xdd\x29\x4c\x96\xb2\xbc\x30\xcb\x11\x66\xb4\x92\x8c\x4f\x99\xe1\x0b\x76\xa4\xd8\xb5\x4c\x5c\xc5\x5c\x0b\x38\x28\xb1\x9b\x18\x61\xf1\x12\x5a\x9a\x28\xbb\xbe\x06\x02\x89\xc3\xc1\x76\x5e\x51\x73\xa8\xf2\xdd\x45\x61\x22\xac\xce\x2f\xad\x1c\x6f\xf9\x61\xcb\xa2\xbd\x8b\xa7\x21\x0a\x7d\xd0\x26\x06\x6d\x62\xd0\x26\x70\xcc\x53\xd0\x26\x22\x02\xbb\x3f\x65\xe2\x4e\xb4\x85\x78\x27\xbb\x57\x16\x1a\xd8\x2c\x5d\x61\xae\x8f\x24\x6b\x76\x63\x6d\x21\x96\x55\xf6\xae\x2c\xd4\x31\x32\x12\x8e\x5a\x85\xed\x8d\xdd\xdf\x46\x06\xf4\x04\x9b\x36\xb4\xe9\x18\x93\x33\x77\x46\x77\xee\x34\xdb\xd0\xa6\xb9\xdb\x98\xf7\x81\xbb\x0f\xdc\x7d\xe0\xee\x75\xb0\x3f\x5e\xee\x7e\x87\x76\xc2\xc1\x0e\xf8\x18\x39\xfb\xdd\xd9\x00\x37\xb7\xff\x3d\x01\xdb\xdf\xe3\xcc\x38\x7d\x67\x57\xdd\xd4\xd3\x27\xa4\xdd\x8e\xff\xc6\x0c\x8c\x7a\xfe\x82\x2c\x98\x99\xcb\xb4\xe4\x09\xd5\x24\x54\x42\xce\xb9\xf0\x0d\x4e\xb9\xa5\x29\x79\x11\x15\xd1\x28\x23\x47\x7d\xcf\x32\x4a\x14\x9b\x66\xae\x5e\xc1\x9c\xa9\xb6\x80\xb0\x5b\xe7\xb1\x56\xa3\x6f\x9c\x6b\x63\x29\x8b\x67\x8a\x11\x2b\x3b\x58\xea\x36\x5d\x49\xa3\xdd\x7f\x40\xc1\x60\x2f\x7e\x42\xf6\xe2\x68\xaf\xdd\xc9\xc9\x9f\x4e\xde\xae\xe7\xb9\x16\x25\xd7\x94\x49\xd8\xb4\x3a\xc1\x9a\x7a\x02\xa0\x2b\x34\x5c\x06\x72\x32\x85\xd4\x30\x8c\xbc\x59\x92\x4b\x78\xeb\xf2\x00\x32\x17\xac\x84\x77\xe9\xee\x95\xab\x7a\x01\x91\x8a\xdc\xc9\xe1\xb9\xc2\xac\x69\x4d\x2e\x0f\xfe\x09\xf4\x60\x0a\x85\x0b\xc8\x0d\x53\xcc\x29\x29\x0b\xe6\x7b\x19\x51\xb1\x74\xb7\xf2\x01\xa8\x60\xdd\x9d\x29\x3b\x05\x94\x76\x8d\x0a\xc5\x8b\x2e\x75\xca\x09\x21\x1c\xd1\x0c\x74\x53\x72\xa1\x0a\x66\xa1\x18\xc5\x6b\xdf\x78\xd3\x78\x48\x2a\x99\xd2\x4c\x33\x02\x59\xea\x37\x5c\xb7\xd1\xd3\xb5\x35\x36\x52\x26\x78\xe7\x0a\xdf\xc2\x20\x88\xfb\x75\x11\x75\xeb\x17\x88\x93\x8e\xca\x95\xe1\x4a\x01\xc7\xa0\xf8\x0d\x2d\xb7\x8c\x7b\xb0\x2c\x3a\x0d\x5f\x81\xdf\x1c\x96\xd5\xb8\xc9\x9c\x42\x48\xba\xcc\xb9\x00\x09\x41\x94\xa2\x9d\x2c\xc7\x45\xab\x1a\x13\xb7\x7a\xab\xe9\x38\x4d\xc5\xb8\xb5\x47\x90\xb7\x3f\x6d\x55\xa3\x24\xf8\x34\xde\xf5\xa9\x56\x52\x1d\xed\xc2\x14\x9d\x98\x1a\xb2\x9f\xb4\x5c\x30\x74\xa5\x10\x99\x80\x93\xa7\xe2\x46\xa9\x5a\xf4\xc1\x26\x80\x4d\xa6\x34\xb1\xdc\x59\xb1\x6c\xe9\x83\x5c\x19\x36\x3f\x43\xcf\x08\x4c\x68\x01\x1d\x47\x1a\x49\xab\x38\x16\xd8\x6f\x5a\x2d\xb8\xa8\x4f\xaf\x9d\xa0\x2d\x88\xce\x39\x36\x5e\xe5\x66\x4c\x7e\x84\xa2\x2b\xda\x50\x91\xb0\x11\x39\xfb\xeb\xf1\x1b\x5f\x62\x0e\x3c\x2c\x90\x46\xaf\x64\xe6\x5a\x4f\x33\x21\x8b\xd9\x1c\x7e\x70\x31\xac\x86\x67\x99\x2f\x26\x86\x6b\x92\x85\x70\xdd\x8b\xab\x7e\x9b\xd5\xba\x4e\xbd\x29\x23\x4e\xd5\x19\x13\x09\xdf\xab\xe0\x36\xb6\xec\x2a\x75\x87\x25\x70\x04\xd4\x1a\xa0\xd0\x4d\xa9\x36\x20\xd2\x6e\x6d\x4b\x6a\x56\x2b\x3c\xdd\xe8\xd2\x2c\x36\xa5\x7b\xab\xe6\xd3\x4e\xb2\xb7\xf2\xca\x4a\xcc\xb2\xab\xcb\x45\x9d\x8d\xcd\xe1\x23\xf4\xb5\xc7\x38\x36\x87\x18\xeb\x9d\x8b\x38\x47\xb8\xe7\x3a\x56\xe5\x38\xfa\xd4\xf8\xac\x50\xa1\xb4\x50\xa7\xc3\x31\x76\x36\xfe\xd5\x85\xdd\x55\x51\x1b\xd7\x0b\x59\x7a\x20\xb7\x5f\x33\xe8\x33\x48\x43\x00\x2c\xa3\xca\xf5\xbb\x06\x7f\x29\x37\xcf\x34\xd1\x74\x0a\x17\x87\x6a\x5d\x2c\x58\x25\x7a\x7d\x4e\x7d\x53\xee\xe0\x67\x1c\x11\x76\x6d\x39\xe5\x14\x1f\xe0\x34\x7a\xb3\xb0\xf3\xdb\x51\x18\x0b\x7c\xdc\x8a\xdd\x49\x22\x17\x13\x2e\x70\xfb\x00\x47\x38\xde\x71\x15\xdf\x03\xad\xa8\x13\x1f\x80\x4b\xb9\x9c\x11\xd1\x45\x32\x87\xde\xc5\x22\x26\xd1\x98\xc1\x29\x19\x86\xe5\x17\x79\x2e\x95\x59\x7d\x17\xeb\x91\x51\x43\xe2\x24\x01\xd0\xd5\x8e\xa4\x22\xb5\x3c\xd1\x06\x0f\xf5\x16\xf4\xa0\x7c\xb9\x03\x88\x27\x25\xaa\x3a\xd6\x80\xed\xe8\x7c\xb4\x78\x54\xb6\x0c\x8c\x0e\x16\x41\xa1\xb8\x8a\xaa\xac\x10\x2f\x01\xd7\xd8\x7d\x35\x91\x8b\x05\x64\x80\x32\x01\x7d\xa4\x19\x20\x33\xb4\x96\x8f\xc1\x57\x81\x6a\xf0\x45\xc7\xcf\x9b\x40\xab\x63\x7c\xdf\x82\x8d\x89\x1a\xbc\xfb\xa7\xca\xe2\xf1\xdc\x26\xb9\x23\xd6\x2d\xee\x22\xc1\x83\xac\xd1\xf6\x6e\xa5\x7d\x41\x36\xcc\x6d\x14\x44\xb5\xc1\x11\xec\x0e\xfe\x8f\x17\xf6\xb7\x03\x7c\x4f\x66\x5c\x3d\x94\x75\x77\xa6\x99\xd4\xec\x8a\x89\x63\x21\xb6\xa1\x84\xd2\x50\x42\x69\x70\x70\x0d\x0e\xae\x27\xee\xe0\x42\x62\x37\xd4\x51\xda\x21\xe0\x06\xa7\xda\x7d\x14\x53\xda\xa6\xe0\xfc\xea\x79\x0e\x65\x95\xbe\xc2\xb2\x4a\x2b\x47\x3f\xd4\x56\x1a\x6a\x2b\x0d\xb5\x95\x6e\x79\x9f\x86\x02\x4b\x43\x81\xa5\xa1\xc0\xd2\x50\x60\x69\x28\xb0\xb4\xa1\x4c\x34\x14\x58\xea\x5e\xd4\x6e\x45\xbf\xa1\xca\xd2\x7a\x1b\xdd\x50\x65\x69\xa8\xb2\x74\x0f\x70\x1a\xaa\x2c\x3d\x28\x6d\x68\xa8\xb2\xb4\x3d\x87\x19\x4a\x2d\x0d\xa5\x96\x06\xef\xd2\xe0\x5d\xfa\x3a\xbd\x4b\x5f\x53\xbd\xa5\xc1\x2f\xf4\xa0\x8a\x2e\xed\xc6\x2d\x34\x94\x5f\xda\x7d\x96\xc9\x3a\x87\xdb\xd3\xcb\xa9\x69\xb5\x89\xdf\x5f\x62\xcd\x6e\x6d\x28\x43\x35\xa6\xa1\x1a\xd3\x50\x8d\x69\x50\x38\x06\x85\x63\x50\x38\x1e\x90\xc2\xf1\xf8\x4b\x32\x55\x14\x8a\xa1\x2e\xd3\x3d\xd7\x65\xda\xb9\x3e\xf1\x35\x56\x68\x6a\xd5\x91\x87\x32\x4d\x03\xdb\x27\x03\xdb\x1f\xd8\xfe\x83\x8f\x62\x1f\x6c\x88\x8f\x96\xe5\xdf\x87\xfd\x70\x28\xdd\xe4\x7f\x1c\x4a\x37\xdd\x49\xe9\xa6\xa1\x72\xd3\x60\x6a\x7e\x38\xa6\xe6\x68\xc3\x5f\x55\x0d\xa7\x47\x5c\xc2\xa9\x4b\x06\x19\xea\x38\xad\x59\xe1\x50\xc7\x69\xa8\xe3\x34\xd4\x71\x7a\xbc\x75\x9c\x3a\x6c\xae\x43\x31\xa7\xa1\x98\xd3\x50\xcc\x69\x28\xe6\x34\x14\x73\xc2\x9f\x6f\xaf\x90\x0d\x15\x9d\xee\xe3\x00\x9e\x7a\x59\x27\xa9\x13\x9a\x71\x31\x1b\x5f\xbf\x1a\xbf\x51\x52\x6b\xe7\xa6\x41\x9b\xf4\x19\x9b\x32\x65\xb9\xdf\x1a\x7e\xbe\xe6\xad\x92\xa5\x3b\x69\xad\x52\x00\x40\x42\x64\x8e\xd5\x11\x79\x6a\x85\xcc\xe9\xd2\x71\xfe\x29\x03\xe6\xe0\xa1\xb2\x63\x3f\x94\x77\x3a\x95\x79\xbf\xb0\xda\x2d\x8a\x38\xf4\xf5\xc0\xd4\x3e\xf4\xc3\x1d\xfa\x37\x2e\x0f\xf6\x97\x43\xdd\xb5\xad\xd7\x47\x47\xa5\xc9\xda\x6e\x2c\x95\x89\x3e\x2a\x34\x53\x87\xb3\x82\xa7\xec\xc8\x1d\x3b\x67\x4a\x7f\x03\x0e\xdb\xdd\x4a\xbc\x70\x3c\xf5\x7d\xed\xe8\xaa\xfc\x64\x29\x85\x45\xee\xec\x54\xa6\xc7\xee\x59\xc5\x6e\x52\x07\x99\x17\x34\x4b\x87\x26\x99\x87\x49\x48\x2e\x53\x42\xc3\x34\x83\xe7\x75\xf0\xbc\x0e\x9e\xd7\x3a\xd8\xf7\xeb\x79\xed\x70\x18\x62\xf9\x1d\x77\x36\x7e\x25\x7b\x87\x57\xd8\x72\x23\x40\xb6\xf5\x0b\xf7\x20\x64\x9d\x4e\xe1\x09\x9b\xd3\x6b\x2e\x0b\xe5\xd4\x6b\x4f\xb9\xf6\x0d\x11\xbb\xe7\x43\x2a\xd2\x43\x34\x22\xed\x3c\xae\xac\x0f\x6c\xba\x3d\xcc\x3e\xfe\xba\xd9\x46\x1f\x13\xfa\xfe\x56\xe9\xdd\x7a\x82\xfd\x3e\x9b\x1d\xc0\x6d\xec\xad\xdd\x09\xbc\x99\xff\xb7\x07\x94\xdf\x73\x6d\xd6\xb0\x53\xaf\x8b\xb4\xf2\x50\x77\x57\xf5\xc0\x4b\x1f\x34\x2f\x6d\xd2\xd6\x76\x70\xd6\xad\x73\xef\x8e\x0c\xdc\x4a\x17\x1f\x44\x88\xa7\x22\x42\x58\x3a\xd5\x5f\x80\x00\x54\x0e\xe2\xc3\xe6\x3a\x0d\xa2\x74\x97\x12\xf3\x00\x58\x05\x90\xef\x3b\x64\x17\x1d\xb1\x42\xae\xba\x44\xb2\x23\xed\x6b\x41\xbf\x9c\x31\xb0\x4d\x75\xd1\xae\x22\xcf\x99\x22\x19\x5f\x70\x53\x16\x37\x2c\xbc\xeb\x3a\x97\xa9\x33\xed\x3b\x5f\x86\x66\xc6\x87\xa2\x95\x0b\xfa\xc1\x3e\x75\x97\x4e\x2f\x68\x96\xa1\x2d\x5c\x90\x0f\x5c\xf8\x65\xd4\x48\x1f\x8a\x1d\x76\x01\x5c\x98\xef\xbf\x6b\xbe\x29\x96\x93\xcc\x62\x42\x56\xb9\x2a\xe5\xdc\x1d\x5b\x8c\x46\x06\x4b\xa1\xbc\x59\xb3\x6b\xe5\x47\x1b\x49\x6e\xe6\x3c\x99\xd7\xf6\x0b\xc0\x80\x7f\x92\x54\xde\x08\xf4\x9d\xb9\x9a\x62\xf0\xd2\x2b\x0b\xb8\x31\x21\xb5\x2f\x47\x06\xc8\x09\x23\x2f\x83\x27\x39\xcb\xe7\x94\x4c\x19\xb5\x24\x85\xcc\xa8\x61\xe4\xa7\xd3\xe3\x73\x3b\xff\x85\xfc\xbf\x99\x92\xe8\xe5\xa4\x93\x8c\xa5\xe8\xff\x31\x24\x63\xd4\x15\xd4\x41\x15\x81\x48\x45\xde\x79\x9b\xf9\x82\x19\xc5\x93\xaa\xf7\x68\x4c\xc8\x39\x22\x29\xac\x24\x31\x90\x16\xa6\x49\x26\xc5\x0c\x6c\xee\xf1\x9c\x6e\x02\x24\xe8\x3c\xaa\xd0\xb7\xf3\x53\x04\x28\x5e\x50\x35\x63\xe6\x0c\x48\xdc\xad\x04\xe2\x75\x06\xc2\x75\xe4\x4f\x05\x83\xa0\x91\x78\xb0\xa5\x75\xef\x87\x35\x6c\x1d\xea\x13\x65\x8c\x2a\x51\xc9\x6a\x0c\xcc\x2e\x91\x42\x17\x0b\x0c\xf2\xb3\x07\x07\xe3\xed\x15\xb2\xa3\x53\xa6\x2d\xfd\xac\xdf\xb6\xc9\x92\x14\xe0\x4c\xb6\x9c\x0d\x90\x20\xae\x52\xd3\xa2\x4f\x18\x80\xe0\x9b\xd3\x4f\x9f\x0c\xcf\x9c\x89\xf8\x94\xa9\xc4\x8a\x76\xb3\x2e\x63\x19\xbe\x4c\xe8\x35\x53\x74\xc6\xc8\x9b\xd3\x4f\xa4\x28\xa7\x21\xcf\x03\x9b\xc6\x90\x17\x4a\xf2\x30\x33\xde\x16\x5f\xe7\xe9\xcd\xe9\xa7\x17\x44\x42\x7c\x6a\x96\x61\x15\x51\x99\xea\x1f\x2c\x9e\x5b\xea\x50\x56\xd0\xc1\xed\xc3\x7d\x21\xd1\x11\xfa\x02\xf6\xbe\xec\x53\xa1\x57\xbc\xcc\x5b\x62\x5c\x4f\xee\x55\xc3\xc6\x51\x33\x41\xdd\xaf\x89\xae\xd3\x3f\xed\xb1\xcc\x45\x29\xac\xe7\x15\xdd\xac\xc2\x4d\xb7\x25\xee\xf8\xc5\xb4\x21\x4f\xc0\x06\x8b\x09\x23\xb2\x09\x2a\x8d\x08\x1b\xcf\xc6\xe4\x4f\x2f\xe3\x7a\x57\x54\x84\x4f\xd9\x8d\x72\xed\x2e\x8b\x90\x37\xe4\x4f\x2f\x7f\x87\xa1\x1a\xba\x3a\xd1\xce\x89\x96\xdb\x74\x4f\xf6\xe3\x41\xd4\xc0\x5f\xfc\x9d\x5f\x50\x41\x67\x91\x4f\xb5\x89\xd7\xef\x68\xed\x8e\xea\xf4\x5c\xfb\x2a\x8d\xba\xcf\xb5\x67\x54\x1b\x64\x8b\x7c\xd5\x03\x70\x0b\x11\x19\xa6\x5b\xc7\x1f\xec\x87\x89\xe1\x2e\xec\xa1\xe5\xe2\x7a\xc6\xb1\x2a\x41\xfd\x10\x32\xb4\x6b\x72\x84\x0b\x46\x52\x32\x23\x73\x79\x43\xe4\xd4\x38\x5f\x7b\x8d\x27\x40\x44\x09\x15\xb3\xd6\x3c\x45\x39\x81\x88\x91\xf4\x6f\x4c\x30\xb4\xe0\x77\xc9\x44\x52\x83\x2a\x6f\x11\x73\x16\x5e\x22\x7e\x9e\x0d\x4f\xf3\x8f\xbf\xdf\x31\x21\xae\xdf\xb0\x35\x08\xbc\x23\x6a\x0c\x78\xb5\x2e\x2a\x08\x38\x71\x54\x3e\x8e\x12\xcf\xb5\x7c\x94\x54\x35\x92\x76\xb0\xeb\x3c\x68\xbb\xce\x60\xe0\x78\x2a\x06\x8e\x5b\xfa\x48\xf6\xee\xed\x6e\xb2\xa6\xec\xd8\x49\x02\xc4\xa9\xd3\x25\x12\x93\x0e\xe7\x1e\x51\xde\x49\x0e\x34\xfe\x49\x39\x47\x10\x26\xfd\x5d\x21\xa5\x38\x7d\x7f\xf0\x20\x67\x8c\xa6\x87\x52\x64\xcb\x87\xea\x78\x41\x36\xb9\x0f\xbb\x59\x89\xc3\x1d\x4c\x18\x72\xe8\xca\x5c\x16\x10\xa9\xca\x24\x17\x50\x87\xf4\xaa\xda\xdc\xc9\x8c\xd5\xb6\x12\xb1\x0f\x09\xd7\xc1\x92\xe4\x04\x41\xc7\x70\xf7\xa3\xc0\xde\x42\xca\xe9\x8e\x80\x2e\x47\xd5\x0b\xe6\x36\x29\x9f\x7b\x84\x36\x4d\x4c\x41\xb3\x08\xd8\x41\x40\x2d\xa1\x1e\xdf\xd8\xdd\x02\x3d\xa6\x49\x2c\x63\x89\xe9\x0c\x42\xce\xe8\x84\x65\xe4\xd7\x82\xa9\x25\xaa\xbe\xa5\x01\xd5\x89\x5b\x0b\x6a\x9c\x3d\x31\x68\x52\x10\x14\x5b\xc6\xcc\x6a\xba\x60\xbe\x3b\x0b\xce\xe7\x3f\x0e\x79\x05\xbe\x1c\x31\x8a\x24\xb8\x33\x88\xcb\xbe\x96\xdc\x82\xc5\x28\x69\xc9\x0a\x08\x7e\x93\xa5\x93\x24\x5c\x70\xa3\x7b\xc9\xdb\x57\xfc\x54\xf6\x83\x6e\x22\xf7\x5d\xd8\xc1\x61\x4e\x15\x5d\x10\xbd\x14\x86\x7e\x89\x68\xa1\xf3\x14\x57\xd7\xa6\x7b\xc6\x54\xc1\x5b\xfa\x1b\xf8\xcf\x61\x78\x79\xb7\x81\x55\x6a\xa7\xba\xc1\x77\x18\x68\x39\x04\x1f\xf6\x38\xa0\x21\xf8\x70\x08\x3e\x74\xf7\xc5\x7b\x23\x3e\x80\x2f\xe1\xbc\xde\xd6\xa3\x21\x65\x7b\x65\x78\x94\x9a\x31\x97\x37\xc1\x36\x4f\xa4\x80\xfc\x4a\xf0\x51\x40\xb2\xa5\xd6\x32\xe1\xd0\x4c\xc0\xe5\xc8\x2c\xc9\x3f\xca\xa2\xe7\x4e\xe0\x7f\x6e\xd9\x33\xfb\x42\x17\x79\xc6\x48\xc6\xc4\x0c\xdb\xa4\xfd\x5a\xb0\x02\x48\x61\x92\xc9\x22\x25\x0b\xa6\x35\x9d\x59\x2a\x69\x19\x0d\x4f\x18\x54\xeb\xfb\x1f\xa7\xe7\xa8\xa9\x65\x92\xa6\x13\x9a\x59\xce\xa3\x88\x2a\x84\x80\x5c\x9e\xc2\x68\x9e\xc2\x99\xbb\xbe\x30\x2f\xc6\x95\xe4\xfd\x4b\x67\x63\xbf\x3c\x80\x76\x24\x51\xad\x40\xcd\x4c\x1f\x77\x1e\xec\xf5\x63\x37\xea\x95\x03\x9b\x3a\x3d\x78\xbf\x90\x20\x98\x83\xdb\x9a\x31\xd1\xa1\xc1\xd9\x03\x6a\xe1\x87\xb7\x71\x54\x5b\x96\x10\xe6\x5d\x27\xb2\x57\x97\x80\x46\x60\x74\xab\x05\x5a\x49\xbd\xb7\x21\x41\xbb\x9d\x66\x8a\x33\x5d\x96\x97\xc4\x6e\xbc\x38\xd1\x5a\x9f\xca\x31\x5a\x9b\x7f\xb1\xaa\xff\xad\x37\x3b\x0e\x54\xfb\x7f\x14\x54\x18\x6e\x96\x6b\xf7\xb9\xba\x02\x7f\xaa\xce\x65\x93\x33\x75\x98\x4b\x67\x6e\xb1\xa7\x3c\xcb\xe4\xa4\x74\x00\x3e\x07\x13\xfb\xaf\xee\x53\x2f\xc6\xe4\x43\x61\xc5\xa9\x6c\x49\xd8\x17\x8b\xa8\xfc\x9a\xe1\x85\x41\x97\x07\x7c\x61\x2d\x30\xee\x11\x0a\x4d\xdb\x0f\xdb\x8e\x90\x7b\xc3\x3d\xc7\xc0\xdd\x22\xdc\x21\xba\x98\x7b\xa4\x9d\x5d\xf2\x7a\xd3\xf0\x5a\x49\x38\x2f\xb7\x07\x90\xd1\x1a\xae\xf4\xa6\xa3\x3d\xc8\x95\xfb\xd8\x7d\x5e\x9d\x86\x25\x78\xe4\x59\x01\x85\x83\x80\xf3\x2b\xa5\xce\x67\xe5\x0d\xdf\x29\xc8\xf0\x2d\xd7\xc2\xcd\x75\x9f\x5b\x5c\xbf\xb7\xf6\x9b\xb1\x8e\xba\xdf\x8a\xd3\x04\xd6\x0c\x44\x19\x8c\xe2\x91\x8b\x97\x7b\xaa\xeb\x8a\xd4\x0e\x1c\xa8\xc6\x81\x36\xa7\x3c\x6d\xf8\xb8\x4b\x8a\xb4\x79\x3e\x49\x9b\x97\xcc\x63\x6a\x25\xdd\x04\x5d\x27\xad\x5e\xec\x91\x0b\xc3\xb1\xbf\x58\x05\x29\x01\x82\x8e\x9e\x47\x1d\x2b\xd3\xa8\x4b\xfb\xa2\x1b\x65\x8f\x38\x2b\xf3\x2d\x22\x93\xfd\x8a\xc9\x82\x4c\xa8\x3d\x40\x97\x95\x8d\xc0\xd5\x65\xc4\xc2\xe0\xcc\x19\x9c\x39\x83\x33\xa7\x81\x10\xdf\x93\x33\xc7\x7f\x79\xa5\xff\xf4\x53\x4b\x80\x59\x4f\x7e\x3b\x5d\x3e\xda\xd5\x9b\x8b\x1a\x98\x25\x25\xc5\x8d\x1c\x41\x45\xf0\x04\x3d\xc9\x5c\x99\x0e\x30\x76\x7b\x89\x74\x28\xc9\x18\x8b\x59\x5f\x4d\xfa\xcc\x77\x5b\xd4\x50\xec\x0b\xfd\x37\x52\x60\x39\xc1\xcd\x85\x89\xf0\x6a\xcd\x1f\x64\x4f\xcb\xc9\xa2\x6d\x62\x08\x74\x4e\x4f\x98\x82\x3c\x7e\xa0\xd5\x3d\x78\x7c\x46\xb5\xb9\x50\x54\x68\xf8\xe8\x7d\x44\x21\x55\xbf\x1e\xc2\x99\x2b\xf1\x49\x49\x80\x8a\x09\xa3\x99\xab\x6f\x28\x05\xf3\xbe\x1b\x23\x09\x15\x50\xad\xaa\x8d\xba\x6b\xdd\x1d\x00\xe8\x46\x21\x6b\x9d\x17\x0b\x2a\x0e\x15\xa3\x29\xd4\x5a\x62\x5f\xf2\x8c\xba\xa2\x2b\xce\xd8\x6d\xd9\x6c\xca\x0c\xe5\x99\x8e\x6e\x4c\xb9\xce\x3d\x15\x3c\x52\xa1\xe0\x11\x0a\x8b\xf0\x97\x27\x81\x01\x5e\xcf\xb4\x83\x64\x58\xce\x36\x5d\x8c\x1b\xc9\xd5\x5a\x72\x52\x75\x3d\x97\xc7\xf7\xfc\x42\x59\xd9\xec\x47\xac\x0c\xf6\x49\x5c\x09\x79\x23\x5e\x6c\xbe\x24\x37\x66\x6d\x0c\xf0\x32\x67\xb5\x4b\xe4\x89\x5c\x58\xcf\x6e\x0d\xd0\xf0\xfe\x2a\xdc\xee\x40\x69\xe9\xc8\xdc\x5b\xa3\xb8\x94\x3d\x35\x87\xb4\xbe\xc7\xad\x31\xf4\x49\xeb\x83\x31\xf5\xda\x32\xf7\x92\xe3\xd7\xa1\x84\x47\x53\x0f\x89\x7e\x5f\xad\xea\xd4\x2b\xd1\xaf\x55\x71\x1a\x12\xff\xf6\x2e\xe8\x76\x04\x37\xad\x79\xab\xc6\x99\x7d\x0c\xd2\xb4\x10\x10\xe7\x41\x33\x6e\x96\x5e\x7c\x68\x99\x66\xa7\x49\x83\xd1\xc8\x50\x66\x77\x6d\x1e\xe1\x06\x19\x75\x45\x0e\x55\xf9\xca\x8c\xc2\x8c\x69\x17\x42\xb3\xd8\x67\x3a\x21\x9a\xfc\x7a\x59\xbd\x6b\xa5\x20\x2b\x8a\x35\x46\x81\xb9\x3d\x4a\x52\x68\x2c\x39\x4a\xb3\xa4\xb0\x8c\xb4\x72\x7e\x55\xa3\xe5\x73\xb0\x3c\xd2\x2f\x7c\x51\x2c\x6a\x8f\x68\xa2\xa4\xc6\x46\xe7\x7e\x05\x71\x8e\xd4\x8b\x31\x81\xf0\x9e\xe6\x79\xb1\x46\x1f\x7e\x3e\xf5\x3d\xfc\x97\x9e\x68\x83\x01\x96\x4c\x98\xb9\x61\x2e\xf7\xa0\xe2\x5c\xc3\x62\x85\x75\xc7\x82\xcb\x64\x58\xcd\x6c\x01\x57\x09\x21\xef\xd4\x4c\x8e\xc2\x52\xc1\x34\x0e\x55\xe7\x53\x96\x58\xd9\x3b\x84\x37\x59\x0e\x1a\x16\xc9\x05\x3e\x4c\x51\xb6\xb8\xe6\x09\x03\x9a\x40\xa1\x71\x35\x42\x8e\x8b\x94\x5f\xf3\xb4\x28\xfd\x56\x9e\xdb\x58\x62\x0c\xa0\x5f\x78\xaa\x5f\x55\xcc\xe7\xf2\x86\x30\x6a\x0f\xc5\x4a\xba\xa5\xd7\x07\xd6\xe5\xca\xc4\xef\x91\x75\x3b\xd7\x5c\xd4\x51\x81\x6c\xc3\xad\x87\xa4\xd7\x21\xe9\x75\xe3\xe8\xb4\xb5\x76\xad\xca\x52\xd0\x10\x12\x24\x7f\x47\x09\x4a\x91\xce\x05\xe0\xe0\x05\x8d\x9c\x5e\x3e\xd5\x33\xa2\x7d\xc1\x85\x12\x42\x5d\x12\x99\x65\x2c\x31\x70\xbf\x35\xb9\x61\x59\x46\x10\xdb\x30\xc8\x33\x5b\xba\x1c\xa7\x55\x7f\xce\x36\xed\xca\xee\x2e\x93\xb3\x97\x6d\x71\x73\xb6\x8f\x36\x81\x66\x95\xbc\x57\xea\x67\x1f\x47\xbd\x57\xed\x3b\x73\x18\xc3\xc0\x20\x38\x62\xe1\xe2\xe8\x81\x3f\x08\x47\x5b\x2a\xc9\x63\x65\xec\x96\x15\xe3\x11\xaf\x46\x2d\x5d\x6c\x5c\x0b\x30\x33\x97\x9a\xc5\xf3\x53\x05\x77\xf4\xee\xf5\xab\xd2\x40\x79\x1b\xd2\xed\xce\xee\x43\x2f\x39\xa3\x3a\xb8\x62\xe6\x53\x8c\xa6\xa5\x81\x33\xf6\x56\x96\x49\x86\xeb\x12\xf7\xf6\xc0\xd5\x2a\x96\x9b\xdb\x00\x67\xb3\x8c\xda\x98\xcb\xdc\x2a\xc9\x16\x08\x12\x00\x57\x5b\x21\x68\x25\x4f\xf3\x61\x24\xe1\xd6\xd9\xf9\xad\x72\x73\xcb\x2d\x47\xb2\xe1\xfe\x37\x7e\xaf\x19\xbc\xe1\xc3\xcd\x66\xf3\x8d\xd3\x7a\x47\x0f\x2f\xad\x77\xf5\x05\xbf\xd7\xa7\x93\xf0\x3b\x6a\xe4\x5f\xbb\x64\xe5\x91\xb0\xde\xce\xb7\xcb\x41\x21\x4c\xa4\x16\xa6\x1c\x42\x4a\x28\xd1\x5c\xcc\xb2\x32\x12\x0b\xaa\xa1\x7f\xb6\x2b\xfc\x0c\x4c\x10\x1a\x7c\x01\xf3\x83\xf4\x10\x48\xec\xe0\x2c\x4b\xab\x81\xc2\x56\x5c\x95\x22\x61\x2f\xfa\xd4\xce\x77\x62\xf1\x4e\x84\xcb\xc6\x50\xee\x75\xb7\x2d\x54\x6f\x87\xf0\x77\x14\xf2\x6a\xf1\x86\xbe\x9d\x56\xff\xb8\x43\xab\x6f\x80\x32\xa1\x2b\x01\x65\x01\xca\xb1\xce\x97\xc8\x05\x00\x51\xc9\x85\xfd\x77\x2e\x05\x64\x30\xb5\x07\x6c\xdf\x71\x74\x78\xdb\x75\x07\x54\xdd\xc5\x91\x85\x38\x8a\x7e\x07\x16\xec\xb4\xe5\x71\xb9\x73\x72\x02\x28\x76\x37\x71\x68\x7c\xb5\x36\xb6\x7e\x44\xe6\xdc\xe8\xc3\x9c\xa9\x43\xcd\xec\x0d\x85\x2b\x20\xc8\x89\x98\x29\xa6\xfd\x2b\x6d\x30\xb0\x84\x71\x27\x10\x38\x95\xa9\xee\xbd\x7f\x20\xc7\xeb\x77\x0f\xc6\x03\xa8\x39\x52\x2d\xf6\x83\x77\xdd\xa9\x4a\x55\x38\x80\x1f\xd1\x15\xa3\x3f\xcc\x95\x4c\x98\xd6\x2c\x8d\x20\xe3\x0d\x37\xe8\x2f\x09\x36\x9d\x10\x89\x6a\xe4\x0c\x65\xe2\x09\x9b\x4a\xc5\x5c\x03\x4b\x8b\xd0\x54\x95\x9a\x57\x6c\xb0\x69\x81\xaa\x57\xe1\x76\x02\x59\x5f\xf1\xbd\x37\x74\x83\x02\x19\x43\x38\xfc\xe8\x89\xa2\xef\xfe\x80\x82\x7f\x59\x2c\x88\x8b\xd2\xee\x6f\x89\x25\x18\x30\xf4\x0b\x02\xde\x50\x3b\x57\x44\x2a\x36\x3e\x2f\x28\x31\xf3\xe6\xf4\x93\xbd\xc6\x0b\xb6\x90\x6a\xf9\x62\x4c\xce\x8b\x48\x81\xb5\x6a\xc7\xa4\xe0\x19\x66\xde\xc5\x5f\x43\x05\x66\x4e\xaf\xdd\x6a\x69\x16\x4a\x42\x60\x5b\x1d\x0d\xf1\x84\x32\x47\x41\xdd\xee\x2a\xd8\x14\xec\x4c\xc2\x92\xab\x2c\x04\xf1\x97\x62\xbc\xb7\xcd\x5d\x02\x5e\x5e\x1e\x90\xf5\xb5\x9f\x7a\x7a\x77\x7d\xec\x7c\xd5\xfe\xe5\xa6\x06\x6b\x4e\xc9\x6d\x5c\xc7\xc9\xcb\x03\xa4\x23\x97\x07\x23\x72\x79\x70\x8a\x8b\x91\x8a\x5c\x86\xfe\x0b\xf6\x09\x40\x7a\x41\xf3\x1c\xd6\x0d\xb7\xa7\xca\xc5\xdc\x09\x34\xa6\x66\xee\xc4\x8d\xbc\x07\xe6\xdf\xa5\xb6\x57\x62\xed\xab\x5a\xba\x15\x2b\x0f\xab\x6a\x5a\x4d\x02\xb8\x67\x06\xde\x1d\xee\x34\x30\xf0\x07\xc5\xc0\xbb\x0f\xec\x69\x33\xf0\xee\xfd\x0f\x0c\x7c\x7b\x06\xde\x0d\xdd\x81\x81\x3f\x0e\x06\xee\xf1\x6f\x73\xf6\x5d\xeb\x95\xfc\xb8\x59\x78\x83\xf2\xd3\xce\xc8\x57\x07\xf7\x49\x3b\xae\x50\xd5\x1d\x91\xd3\xee\x80\xb1\x7b\x4c\xa8\xa3\xed\x59\xa8\x95\x64\x33\x5f\x9d\xb1\x9a\x7b\x16\x39\xb0\x15\xcb\xd8\x35\x15\x06\x4d\x60\x77\x95\x94\xb6\xb3\xf4\xe7\xb6\x42\x20\x77\x92\x76\xa6\xa3\x84\xb3\xb2\x08\xc8\x21\x13\x89\x4c\xd1\xf1\xb2\x70\xd2\xa6\x0f\xeb\x89\x50\xb3\x56\x4b\xc4\x7b\x80\xe3\x3c\x34\xf2\xcf\x39\x13\x44\x33\x33\x82\x56\xc7\x9a\xe4\xd4\x32\x3c\xdf\xe9\x30\xb4\x7d\x27\x50\x19\x84\x19\xb4\x75\x56\x32\xa6\xb0\x71\x65\x70\xc4\x87\x1c\xb8\x30\x20\x91\xa0\x27\xc0\x97\x0a\x01\xdf\xfa\xcf\x42\x9b\x68\x16\x38\xbf\x38\xbe\x01\x1a\xba\x52\xb4\x8f\xe1\x34\x6b\xb3\x94\xef\xd5\xa1\xea\xee\x44\x69\xa3\x07\xc5\x20\x6d\xca\xa3\x5d\xb3\x85\x47\x98\x68\xbd\x05\xdd\xc7\xd3\x6a\xbe\xe8\x2d\x20\xd9\x1b\x9b\xe8\xd2\xf7\x56\x07\x77\x67\x58\x0f\xbc\xa2\x23\x33\x79\x1f\xcc\xe2\x11\xa7\x64\xb7\x90\x84\x81\xfd\xdd\x35\xfb\xf3\xe2\xee\xaa\x6c\xb8\x77\xc6\x38\x1e\x38\xe3\x1e\x59\xc9\xde\xf2\xe3\x57\xbc\x0d\xed\x9c\xa4\x3e\x74\x43\x75\x63\x4f\x66\x8c\x5d\x5b\x31\xba\xa3\x8d\xf7\x45\xd5\x06\xa2\xf6\x04\x65\xfa\x07\x5d\x86\x69\x3f\x32\x4d\x4f\xd2\xb7\x4e\x66\xae\x40\x6d\x4f\xe4\xae\x4b\x70\xae\x0f\xdd\x46\x6c\xde\x0f\xcd\x7b\x72\x85\x8c\x1e\x9d\xfd\x65\x20\xd5\xeb\xe5\xcf\xba\xa8\xf0\xa8\xa4\xcf\x5b\xd1\xaf\xa6\x9b\xb7\x4b\x02\xd6\x18\xc3\xd0\x4e\xc4\x9a\x86\xaf\x95\xdb\xea\xce\x91\x06\x5f\x07\x84\x60\x76\x79\x49\x46\x3b\xf2\x88\xec\x4c\xbe\x1b\x93\x07\xeb\x5d\x21\xe4\x67\xb1\xa3\x82\x9b\x3d\xaa\xbc\x8a\x16\x2a\x57\x16\x9d\xba\x95\xa2\x5d\x61\xe0\x51\x67\xa6\x5e\xbd\xbc\x56\x5f\xdb\x40\x62\xa9\xa3\x6e\x1b\xef\xe8\xec\xe6\x84\x93\xf9\x46\x4c\x95\x4f\x86\x6f\x78\x32\x88\x35\xf6\x76\x1c\x6d\xfc\xc8\x45\xc7\xfe\x07\x01\xc0\x57\xf4\xc6\x4d\xf7\x9c\x0b\x6d\x18\x85\xda\xca\xeb\xcf\xe5\xc5\x88\x68\xbe\xe0\x19\x0d\x1c\x23\x5c\xaa\xd5\xfc\xba\x2d\x88\xfb\xce\xab\x0a\x37\xba\xae\x7b\xd3\xed\x9e\x02\xe8\x83\x23\xde\x0f\x95\xe2\x6e\x2a\x41\xf7\xa7\x63\xad\xef\x6d\x22\xfc\xde\x1f\x25\x2b\xbd\xf1\x10\xea\x3d\x61\xc4\xcd\x4f\xf8\x94\x7c\x5e\xa5\x0a\x9f\xc9\x8d\xc5\xa7\x52\xf2\x2b\xfd\xf1\x16\xf6\xfe\x2e\xc6\x89\xc6\xfb\xea\x6a\xf7\x88\x95\x9d\x07\x47\x30\x03\x16\xd0\xec\x86\x2e\xb5\x93\x3f\x2c\xba\xcd\xa8\x4a\x21\xb1\x3d\x14\xfd\xe9\x3e\xef\xc6\x53\xbb\x27\x49\x65\x13\xfa\x7f\x67\x62\xfd\x77\x43\x93\x86\x3e\x67\x17\x9d\xc7\xd0\xa4\x61\xed\xb6\x9e\x78\x93\x86\xef\xbe\xf6\x26\x0d\x7d\xbd\x14\x3b\xf0\x9b\x7d\xe7\x02\xcb\x4f\x02\xc6\xf4\x28\x30\x4d\x02\x7e\x55\x94\x06\xf7\x70\xb2\x44\x72\x6e\x85\xbe\x60\x17\x5b\xa3\x08\xed\x70\x17\x17\x75\x7f\x5b\xab\xbb\xaf\xcc\x8d\x5b\xd1\x7a\x9a\x4c\x60\xdb\xda\x8f\x56\x6d\xdf\xfb\xbc\x27\x8f\xb4\x20\xff\x0e\x11\x00\x58\xf7\x06\xdd\xf5\x2a\x05\x73\xaa\x7b\xef\x40\x83\x15\x3b\xf4\xa3\xbc\x8c\x5b\x23\xb3\x3f\xba\x5d\x62\xb3\x2b\xb4\xc2\xc5\xec\x14\x1a\xae\xaf\xab\x4e\x51\x1b\xea\xea\xc0\x61\x1a\x81\x6f\xd7\x8e\x05\x3f\x0a\x6d\xc8\x5c\x66\x29\x31\xca\x9d\x2a\x8d\x34\xe4\x9c\xfa\x1a\x82\xd7\x34\xeb\x81\xb2\x39\x53\x5c\xa6\xe7\xe0\xaa\xe9\x4a\x90\x3f\x8d\xc7\xd6\x28\xce\x0d\x17\x29\xe4\x60\x63\xa2\x77\x54\x9c\x69\x1e\x36\xe0\xac\x83\x61\xf1\x63\x52\x9d\x11\xb6\x36\x61\x64\xa6\x18\x05\xe3\xfa\x9c\x0a\xf2\x1b\x53\x12\x75\x7d\x57\x9f\x4a\x58\x1e\xc4\x7e\x2d\x68\x06\xd5\x70\xfe\xfc\xf2\x25\x79\xfe\xfd\x4b\xb2\xe0\xe2\xc5\xee\x2d\x5b\xdd\x21\xe3\x17\x2e\x64\xdc\x1b\xea\x11\x2c\x28\xa0\xea\x4a\xbf\xfd\x2d\xac\x93\xd7\x4d\xda\x61\x6d\x01\xa8\xbe\x55\x2e\x3e\x5d\xf8\xf2\xfc\xae\xd4\x0b\x1e\x05\xd7\x56\xe1\x5a\x70\x13\x15\x21\x70\x4b\xb3\x1a\x54\x2b\xf8\x77\x02\xd5\x9e\x37\xb3\x5e\xae\x14\x21\x30\x6a\x43\xd8\xfd\x5c\xd7\xb3\x22\x63\x6b\x6b\xc9\x54\x47\x96\x95\x90\x74\xe5\xd8\x43\xf3\x57\x7b\x1b\xa4\x60\x24\xe5\x0a\x3b\x06\x42\x1c\x88\x66\x04\x5f\xa7\x8a\x11\x9a\xe7\x99\xbd\xbf\x74\x6a\xa0\x06\x14\x16\x8b\xb0\xb3\xbc\xad\x95\xa5\x00\xd1\xcb\xdb\x8c\x3c\x51\xff\xe9\xf4\x18\xe6\x5c\x42\xf9\x28\xac\x3d\x15\x2f\xe5\x9a\x65\x32\xe1\x66\x69\x8f\xdd\x61\x28\x88\x75\x31\x82\x72\xa6\xa3\x39\x72\xc5\xac\xa6\x40\xa6\x99\xcb\x38\xac\xbe\x89\x7e\x39\x3a\x29\x0d\x46\x48\x01\x46\x44\x4b\xcc\x59\x33\xcd\x65\xaf\x5c\x2a\x1b\xda\x60\xb4\xa1\xc2\x64\xcb\x11\x71\x86\x81\x11\xce\x4b\xa7\x4c\x07\xb6\xe5\x0b\x56\x36\x7d\x0d\x4b\x3b\x48\xcd\x44\x1f\x52\xe7\x36\xd9\x71\x9f\xfc\xb0\x6a\x21\xda\x5c\x1a\xcb\x95\x22\x53\x1f\x8c\x83\x7a\x3a\xf6\x6e\x59\x90\x79\x77\x5d\x5a\xa8\x08\xb8\x63\x72\x1c\x97\xbf\x72\xb4\xd0\x5f\xb6\x40\xb9\x47\x58\x99\xe0\x86\x6b\xe6\x4f\xb4\x82\x63\xde\x9b\x94\x72\x9d\x50\x95\xa2\x01\x8d\x8b\x6b\x9a\xf1\x74\x5f\x95\x67\x1a\x58\x58\x34\xe7\xc6\xd5\x67\x90\x5f\xaf\xf0\xc2\xa6\x43\x88\x87\x36\x51\x57\x04\x7a\x95\xaf\x38\xf0\x8f\xc9\xc9\xd4\xa3\xd8\xc8\xc5\xc0\x41\xf5\x34\x87\x50\x1f\xe8\x17\x9c\x17\x7d\xd1\x7e\xf6\xed\x4a\x50\x97\x18\xf9\x4f\x40\xc8\x7e\x8c\xf4\xbc\xf5\xc5\x60\x3f\x0a\x17\x47\xbb\x07\x25\x47\xcd\xb1\x3c\x91\x55\xfe\x99\x48\x5d\x35\xc4\xb8\xfe\x97\xb0\x0a\x98\xb2\xc2\xec\x9c\x67\x25\x0d\x28\x72\xcb\x39\xfd\x5f\x58\x5c\x6e\xcd\x4a\x1a\xd9\x41\xcc\x7a\x3b\x38\xf3\xf7\x7f\xb4\x9c\xd9\xa2\xfc\x5c\x16\xea\x45\xf5\x58\x0a\xcd\x56\x8f\x46\xbf\x26\x87\xe4\x47\xb7\x46\x46\x8a\xfc\x35\x79\x49\x9e\xf3\x31\x1b\x13\x21\x6b\xf7\x9f\x6b\x92\x4a\xc1\x5e\x8c\x2b\xaf\xd8\x4d\xbd\x26\xdf\xbf\xf4\xaf\xad\xa3\x1b\x76\x94\x07\x6e\x26\xc5\x6c\x47\xd2\xc3\x0a\x9f\xbb\x0d\x47\x1a\xba\x01\x75\xd0\xf4\xa1\xb6\xf7\xd0\x0d\x68\x28\x69\x4d\x6e\x19\x9a\x35\x74\x03\xda\x84\xfc\x0e\xdd\x80\x76\x03\xc6\xa1\x1b\x50\x9f\x6e\x40\xdf\xdd\xaa\x48\x7a\x2b\xf4\xff\xea\x74\xd3\xcd\x65\x09\xff\x66\xa7\xd6\xeb\x50\xdb\xe7\xa3\x08\x32\x91\x66\x4e\x3e\xe5\xc0\xf6\xde\xca\x1b\x51\xea\xc3\x9a\x3c\x87\xc9\xdd\x43\xf8\x37\x8c\x80\xac\x78\x0d\x85\xa3\x19\x94\x15\xce\x96\x7d\xdc\x09\x61\x82\xdd\x20\x70\xcd\x30\xb0\x16\x65\xc3\xd2\xb9\xae\xd9\x7f\xe0\xf6\xfb\x9f\xde\x82\xf8\xbd\x5e\x53\xe1\x58\x23\x20\xcb\x62\x7f\x4f\xea\x62\x64\xe2\xf2\xcf\xe8\x6c\x47\xd3\x75\x24\xd7\x36\x8b\xbe\x20\x19\xe3\xe7\xe6\x7c\x36\x67\x2b\xca\x44\xa0\x52\x50\xb7\xf1\xfb\x97\x2f\x35\x92\x33\x2c\x81\xbe\xa6\xd4\xf2\xa7\xfc\x7e\xc0\xfd\x29\xef\x00\xf6\xa7\xbc\x0f\xa8\x3d\x40\x2c\xe6\xbe\xbe\x14\x84\x7c\x1b\x6a\xa5\x5b\xfd\x03\x02\x7a\x41\xcb\xf9\x3d\xc6\x74\xe7\x4c\x91\x3f\x06\x1d\x02\x5f\x48\x65\x01\x41\x3e\xab\x45\x28\xeb\xa3\x3f\x36\x68\x34\xa8\x87\xde\xa9\x2e\x31\x74\x05\x1b\xba\x82\x0d\x5d\xc1\x86\xae\x60\xbb\xee\x0a\xd6\x4a\x70\xb6\xeb\x0a\x66\xdf\x1a\x3a\x83\x3d\x25\xeb\xc1\x23\xec\x0c\xd6\x6e\x90\xbb\x8d\x55\x7c\x30\xa3\x3c\x15\x33\xca\xd0\x19\xac\x82\xd1\xb7\xe8\x0c\xb6\x27\xa5\xf7\xa1\x77\x06\x9b\xac\x2a\xe5\xbd\x70\x72\x2b\xc5\x7f\x1d\x92\x4e\xee\x5d\xc7\x6f\xd5\xd7\xea\x7e\xd1\x69\xe4\x2f\x2a\x27\x46\x35\x99\x2a\xb6\xa2\x53\xc5\x24\x60\x68\xc4\x36\x34\x62\xfb\xaa\x1b\xb1\xb5\xde\x32\x37\xd8\x03\x5d\x33\x63\x4f\xf5\xcf\x2f\x7f\x17\x72\x41\xde\x9c\x7e\x22\x45\x99\x2f\xb4\x47\xa1\x6b\xe8\xe9\x36\xf4\x74\x0b\x83\xf4\xae\x7b\xba\xad\x4f\x66\xe9\xb4\x3d\x0e\x3d\xdd\xf6\x67\x2a\x18\x7a\xba\x3d\x96\x9e\x6e\x3d\xcc\xcb\xb7\x21\xdd\x4f\xaf\xa7\xdb\x77\x43\x4f\xb7\xa1\xa7\xdb\x66\x1b\x1f\x7a\xba\x0d\x3d\xdd\x1e\x7a\x4f\xb7\x86\x84\x9f\xae\xd6\x2e\xe5\xd0\x8a\x69\x3d\x24\xf9\x60\x45\x05\x90\x71\x2a\x45\x9d\x7c\xd2\xe3\x5e\x8b\xcc\x54\x72\xa5\x36\x77\x46\x7d\x15\x45\xb4\x9e\x62\xb1\xac\x9d\x27\x00\x0f\xad\x0e\x7b\x24\x44\xaf\x43\xe7\xa1\x53\xd2\xfd\x76\x4a\xfa\xee\xab\x6f\x75\xf8\xdd\xd0\xea\x70\x4f\x9d\x92\xbe\x1b\x5a\x1d\x3e\xd5\x4e\x49\x43\xab\xc3\xba\xaa\xff\x24\x5a\x1d\xb6\x54\x6a\x18\x18\xf8\xa3\x61\xe0\x5f\x61\xab\xc3\xef\x86\x56\x87\x77\xc5\xc0\x87\x56\x87\x4f\x85\x81\x0f\xad\x0e\x57\xcb\x31\x75\xb1\x70\x1c\x56\x31\x67\xc5\xf7\x71\x14\x7c\xe8\xee\x4f\xa9\xc2\x2f\x91\x47\xdd\x31\xf9\xaa\x51\xa4\x77\x43\xaa\xfe\x25\x40\x57\x5f\x78\x14\x45\x8c\xc9\x1b\xbc\xbc\x50\x89\x3a\x5b\x12\x28\x84\x00\x43\xce\x6a\x6b\x8a\x22\x26\x76\x6d\x93\x7f\x68\xdd\xbf\xee\xaa\x53\x64\x5f\xfa\x52\x86\x9d\x06\x17\x65\xb4\x06\x4f\x82\x22\xd4\x1b\x91\x5f\xc2\x9d\xa8\x54\xaf\xdc\xd8\xf8\xda\x58\x3a\x67\xdf\x67\x72\x7d\x77\x4d\xfd\xf6\x43\xe1\xe2\x7a\x63\x5d\x64\x2e\x1a\x0b\x35\x9d\xda\x8a\x8e\xf5\xb7\xd4\x6f\x4c\xbb\x1e\x79\xf9\xe2\xa7\x4e\x8e\xee\xac\x73\xca\xfd\x5f\xf6\x2d\xdb\x0f\xae\xdc\xf6\x5b\xdc\xe0\xa7\xda\x8e\x39\xb4\xb0\xfb\x79\x77\xba\xf0\xba\x98\xaf\x46\x0c\x7b\xc4\x35\x11\x63\xbe\xfd\x84\x0b\x94\xd6\xd1\x64\x75\xdb\xab\xc7\xb9\x4b\x06\xfa\xa4\xdb\xdc\x3e\x91\xca\xa6\x03\x29\xb9\xe7\xf2\xaa\x6b\xce\x62\x97\x77\x71\x68\x13\xba\x5d\x9b\xd0\x47\x89\x94\x5f\x09\x7f\xbb\x93\x02\xdc\x5f\x57\xc3\xc9\xc7\xce\xce\x1e\xf1\xa5\xbd\x35\x27\xd9\x25\xd6\x0f\x5d\x0a\x87\x2e\x85\x8f\xa0\x4b\xe1\xd3\xe4\x6b\xf5\xde\x45\x7b\xe0\x6a\x43\x37\xbb\x87\x74\x33\xbf\x1a\xf6\xdc\xb7\x3d\xd2\x83\xea\x19\xb6\xf5\xc5\x9b\x50\x93\xcc\xc7\xd7\xaf\xc6\x7f\x97\x93\x35\x97\xeb\xef\x72\x12\xbb\x85\xcc\x4a\x55\xe2\x38\xb6\xe9\x3f\xe5\x64\x28\xe3\xf3\xa0\xcb\xf8\x0c\xd5\x6b\x9e\x4a\xf5\x9a\x9e\x45\x80\xcf\xab\x45\x7f\x9f\xe9\x47\x5d\xf6\x37\x26\x5a\x9d\x75\x7d\xcf\x2b\xb5\x7c\x1d\xa5\xf6\xa9\x84\x71\x49\x14\x0a\x84\xeb\x8e\x0b\xf9\xee\xb4\x8e\x6f\x05\x2e\xdd\x6c\xf3\x4d\x43\x72\xf5\xfd\x82\x60\x85\x09\xee\xaf\x0e\x12\xc0\xaa\xb9\x02\x92\x65\x85\x95\x07\x71\xa5\xa3\x57\x1b\x14\x39\x8a\xcf\xa3\x4f\xc9\xce\x78\x58\x14\x4b\x1c\x27\xc1\xb3\xf2\x98\xfa\xd5\xde\x3c\x55\x72\x72\xe7\xc9\xa7\xef\x5b\x8a\x6b\xde\x50\x4d\x92\x39\x4b\xae\x5a\x13\x40\xef\xb7\x5c\x68\xdb\xba\x5d\x75\xcb\x35\xf5\x40\xdb\x8a\x15\xf5\x2a\x08\xfa\x53\xb1\xa0\x82\x84\x1a\xa0\xa1\x3e\x28\x2a\x2f\xab\xf5\x3f\x6f\x5f\x71\xb3\x57\x05\xd0\xe7\x13\xc5\xd9\xf4\xc5\x03\xa8\xfd\x79\xde\x5c\xed\x73\xe4\x03\x1c\x9b\x8a\x7e\x6e\xa3\xb0\xf7\x6c\x1c\x26\xa7\xf6\x02\xc6\xeb\x78\x23\x17\x79\xc6\xec\xed\x54\xe4\x47\xca\xb3\xfe\x9d\x69\x7a\xca\xfd\x3b\x2e\xfd\x19\x53\xa6\x8e\xda\x9e\x6e\x04\xca\x82\xae\xa4\x89\xe3\xa4\xff\x29\x27\x43\xc1\xce\x87\x2d\xe9\x6f\x5d\xb0\xf3\xef\x95\xb3\x6d\x9d\x6b\x53\xb1\x64\x28\xba\x39\xa8\x2d\x7d\x8b\x6e\x9e\x37\x17\xd9\xbc\x07\x85\xa5\x27\x91\xbe\xf3\x62\x9e\xeb\x85\xd8\xf5\x25\x3b\xb7\x15\x64\x3b\xd2\xe1\xdd\x88\x48\x7c\x05\xcf\xca\x1c\xcc\x42\x84\x7d\x61\x49\x81\xa2\x20\xcf\x32\x92\x49\x79\x45\x32\x7e\xd5\xab\x07\x3c\x14\x33\x7b\xcb\x68\x9a\x71\xc1\x7a\xb6\x6c\xab\x98\xc1\x53\x6f\xac\xe2\x22\xf4\x10\x53\x2c\xa3\x50\x24\xcd\x31\x01\x6d\xa8\x32\x17\x28\x01\xba\x76\x88\x76\xdd\x96\x00\x4c\x98\x2f\xa8\xe6\x7c\x2c\x30\x7e\xa9\x0d\x5b\x10\xa3\xe0\x23\x92\x18\xa6\x16\x5c\x58\x39\x9d\x9b\x1f\x1c\xf1\xf1\x3d\xd9\x72\x69\xa5\xa4\x6b\x46\x7c\x38\x68\x7b\x20\x69\xff\x72\x23\xd1\x3d\x9d\xd0\xe4\x4a\x4e\xa7\xef\xf9\x82\xaf\x58\x61\xd7\x02\x26\x2e\xa8\x83\x3b\x71\x3b\x5c\x50\x75\x85\x14\x93\x6b\x80\xc3\x14\x65\x1b\xf2\x36\x2a\x83\xf7\xc7\x5d\x07\xc4\x26\x28\x4c\xf5\xa8\xd2\x55\x3b\xdf\x95\xfa\x40\xba\x48\x12\xa6\xf5\xb4\xc8\xb2\x25\xb1\x24\x4a\xcf\x59\x8a\x11\xaa\xfe\x64\x4b\xb7\x92\x2a\x04\x64\x2d\x42\x21\x47\x63\x5c\x12\xab\xe0\x19\x59\x30\x2a\x74\x89\x10\x6e\x56\xdf\x3a\x2d\x97\x29\xd1\x7c\x26\x68\xa6\x57\x1e\x67\x99\x0b\x42\x86\x82\x7e\x98\xf3\x98\x53\x45\xb3\x8c\x65\x5c\x2f\xec\x07\xc0\x86\x8f\xf3\x38\xf4\xc0\xe8\x8f\xca\x2a\x5e\xc5\x6b\x88\x27\xe0\x1a\x1d\x10\xe8\xe3\x7b\x15\x2a\x61\x46\x8b\xc0\x77\xda\x17\xe9\x20\xd1\x48\x57\x1b\x1a\xfc\x27\x52\x24\x2c\x37\xfa\xe8\x46\xaa\xab\x4c\xd2\x54\x1f\xb9\xda\x3f\x19\x53\xfa\xc8\xca\x84\x87\xaa\x10\x87\x46\x1e\x96\x07\x79\xb4\xf3\x42\xa8\x54\x14\xb4\xac\xa9\xd2\x55\x08\x36\x1e\xec\x4b\x15\xe9\x4a\x59\x20\xa8\x50\x84\x25\x54\xd0\xaf\x03\x10\x73\xaf\xe8\x31\x79\xcf\xec\x39\x7d\xae\x4e\xf5\x19\xeb\x9b\x90\x42\x40\xf9\xd7\xa5\x2c\xc0\x65\xe3\x7b\x64\xdc\x58\xc8\xfb\x1f\x53\x59\x56\x45\x99\x5a\x4d\xc5\xea\x0a\xae\x3c\x4a\x44\x49\x72\x9e\x5c\xf9\x65\x14\x82\xff\x5a\x38\xd2\xe4\x2e\x20\xe0\x51\x9e\x33\xc8\xcf\x02\xb7\x8e\x1b\x5b\x16\x25\x24\x86\x2d\x72\x2b\xcc\x8e\x09\x7e\xcd\x80\x76\x64\x9f\x16\x1a\xbb\x0a\x62\x8a\x97\xe6\x56\xdb\xb4\x6a\x9d\xfd\x28\x34\x9b\xc4\x0f\x46\x50\xa8\x37\x8f\x75\x1b\x1f\x13\x50\x73\x0a\x05\xab\x83\x35\xd3\xca\xdb\x40\x31\x13\x8a\x1d\x23\x39\xce\x85\x95\x4d\x2c\x82\xa0\x07\xca\x84\x4a\xcc\x98\x76\x96\x98\x6c\x39\x26\xe4\x27\x79\xc3\xae\x99\x1a\x91\xff\x29\x0b\x98\x46\xb3\x15\xc0\xff\xc5\xee\xe9\xb3\x25\xe4\x38\x9d\x05\xf4\x0d\xb3\xa0\x87\xbe\x97\x2e\xfd\x18\x32\xd5\xb2\x94\x7c\x66\x5f\x0c\x13\x1a\xc4\x93\xeb\x57\x13\x66\xe8\xab\xcf\xe4\xf8\xf4\x64\xbf\x28\xff\x4d\x09\xbb\xc3\xa5\x2c\xd4\xa1\xbc\x11\x87\xb9\x4c\x0f\x75\x63\x25\x20\x8f\xf6\x13\x29\x33\x46\x45\x4b\x52\x6d\x79\xf5\x37\x22\x8d\xbe\x60\xef\x2a\x89\x6c\x22\x86\x96\x12\x52\x03\x44\x09\xfd\x65\x86\x2f\x18\x86\xb7\x61\xe9\xca\xfa\xfb\x3e\x43\xda\x32\x56\xc3\x68\xba\x74\xb6\x2a\x1f\xa6\x50\xf6\x1a\x05\x64\x70\x6f\xdf\x58\xe4\x7c\xfe\x7c\x6c\xe1\x34\x8e\x88\x3e\x39\x24\x63\xd7\xe6\xac\x24\xe0\x2f\xc8\x65\xf1\xf2\xe5\xf7\x09\xc1\xe1\x11\x20\x5e\x8c\x08\xb4\x0d\x85\xe9\xec\x4e\xec\x29\x91\x8c\x4d\xa1\xfa\x6d\x0a\x75\x55\xcb\x05\x2c\xe8\x97\x98\x80\x3e\x2e\xaa\x77\xaf\xb5\xa9\x8e\xdd\xcd\xfe\xb5\x60\x6a\x49\xe4\x35\x53\x1e\x79\x68\x28\x19\x01\xd9\xa2\x81\x10\x61\x2d\x53\xf2\x11\x7c\xcd\xd9\xb2\x42\xe7\x34\x03\x3f\xa2\xd5\xa6\x20\xb1\xd4\x92\xa1\xa5\x2c\x36\x3e\x0f\xbb\x8e\x6b\xce\x6e\xe0\x60\xec\x55\xb3\x37\xff\xd0\x35\x95\x38\x42\x4a\x76\xf4\x0d\xfc\x37\x5c\xbc\x16\xab\xbb\xa7\x9b\x1b\xdb\xdd\x13\xa9\x98\x85\xe5\xa9\x4c\x2f\xdc\x1c\x9d\x6e\x89\xb7\x95\x52\x11\x40\xb6\x81\x88\xb9\x1b\x13\xe8\x98\x45\x6a\x27\x35\x43\xec\xf8\xfe\x39\x75\x33\x6c\x4c\xe6\x44\xee\xe3\xa9\x61\xea\x47\x27\x4b\x75\xa5\x13\x36\xbf\xe5\x62\x26\x9c\xbd\x61\xca\xc0\xe2\x0a\x76\xed\xbf\xcb\x09\xc2\x61\x4e\x75\x29\xb0\x95\x5a\xc3\x73\xc6\x81\x89\xac\xda\xdb\xb0\xf8\x7c\x84\x50\x5c\xbb\x02\xd9\x2d\x6b\xc0\x9e\xed\x76\x09\xf6\xa3\xee\x5b\xda\xd7\x45\x63\x19\x9f\x71\x17\x2b\x31\x61\xb5\x6e\xba\x29\xb3\xdf\x4e\x1d\x33\xf7\x53\x70\xed\xa2\xae\xdc\xe3\x11\x94\x7e\xb5\xfb\x4b\x96\x49\xc6\xc8\xac\xa0\x8a\x0a\xc3\x98\x76\xb1\x1f\x53\x2e\x68\xc6\x7f\x63\x4a\xbf\x08\xe7\x3e\x97\x42\x2a\xd7\x0e\xbb\xba\x99\x48\x54\xb0\x5f\xbb\x91\xe2\x99\x59\xb3\xb4\x26\x60\xf8\xfe\xcf\xe5\x2c\x13\x96\xc8\x05\x5b\xd9\xae\x9b\x85\xf0\xc5\x82\xa5\x9c\x1a\x96\x2d\x1d\xbc\xb8\x09\xa0\xb2\x0c\x21\xfe\x00\x14\xb8\x3e\xcc\xac\x9e\xed\xcb\x25\x43\x8e\xaf\xdb\x12\xb4\xa2\x77\xf6\x14\x38\x62\xac\x75\x0d\x4b\xb9\xb8\x78\x5f\x3d\x1c\x57\x26\x7b\x4f\xcd\x9d\x5b\x4c\xac\xfe\xfa\xef\xc2\xa8\xda\x19\xae\x14\xc6\xac\xc4\x55\xac\x7a\x7b\xfe\xde\x2f\xa0\x02\x94\xd3\x2e\xfb\x75\x45\xdd\xa3\xae\x73\x43\x60\xe0\x7b\x49\x70\x2c\x89\xcb\x5d\xfb\x73\xce\x22\xd0\x5a\x1a\x13\x44\x04\x2b\xec\x80\x33\xca\xd1\x91\x14\x8a\xd2\xb8\x2a\x36\xe1\xa2\xfa\x1a\xee\x1a\xbb\x64\xcc\x41\xf0\xd6\x87\x4e\x39\x96\x2a\x65\xca\xa7\x40\x6a\x66\x85\x0a\x7b\x60\xb9\x53\x29\xb4\x9f\x32\xce\x3f\xe5\x82\x9c\xfd\xf8\xe6\xfb\xef\xbf\xff\xef\x58\xcb\xd1\xdd\x13\x2e\xc8\xa7\x8b\x37\x2d\x3e\xa4\xde\x35\xab\x2f\x4a\x23\x76\x19\xeb\x85\xf5\x4e\x5d\xd3\x87\xd8\x42\xfe\xac\xe6\x58\xbc\x4b\x49\x68\x17\x96\xe4\x8d\x8b\x54\x57\x1e\x55\x6c\x6f\xb9\x9d\xf6\x70\xc1\xd4\x8c\x1d\x5e\xb1\xa5\x4f\x84\xef\x7c\x43\x1b\x7b\xe4\xb3\x25\x46\x57\xab\x59\x4b\xea\x10\x1a\x4d\x36\xba\x98\x20\x58\x61\x5d\x79\xc5\x68\x02\x56\x8b\x39\xd5\xac\xd9\xb9\xb4\x03\xc1\xd2\x9b\xbd\x1e\xd4\xed\xa4\xc9\x95\x90\x37\x19\x4b\x67\x65\xd5\x61\xe7\x78\x73\xf8\xf6\x80\xaf\x2d\xa8\x2e\x2c\xdd\xd5\xc1\x9f\xfb\xe9\xf6\xc4\x13\x37\xe4\x71\xa0\x44\x8f\xdf\x28\x29\xd6\x07\x0e\xba\x11\xfd\x83\x07\x13\x25\xc5\x10\x41\xf8\xe0\xfd\x8a\x83\x2b\xee\xa9\xb8\xe2\xbe\xea\x08\xc2\x0a\x19\xdb\x65\x28\xa1\x27\x63\x23\xc2\x45\x92\x15\x69\x30\xa0\x5a\x92\x5e\x64\xfb\x47\xb3\xbb\x88\x33\xac\x42\x6f\xbb\x80\xc3\x40\xef\xbf\xf6\xa8\x43\xcf\x4b\xdb\x1d\xb6\x00\xee\x2d\xbc\xb6\x95\x63\xea\x88\xf6\x89\x46\x35\x45\xfc\xf8\xd3\x1a\xc2\x7e\x1e\x36\x7b\xde\x3a\xec\xc7\x9d\xff\xae\x43\x7f\xaa\xe2\x62\x4f\x85\x6d\x10\x3c\x9e\xb4\xe0\x31\xc4\x00\xdd\x11\x4b\xe9\x88\x03\xda\x09\x5b\xe9\x88\x0a\x8a\x46\x6d\x18\x19\x04\x84\x18\x2c\x03\xdc\x79\x47\x42\xf7\x3c\x55\x88\x7e\x2d\xdf\xd0\xce\x95\x2c\x4f\x65\xc6\x93\x65\x6f\xc7\xa9\x4b\x09\x37\x8a\x51\xc8\x2d\xf4\xe6\xb2\xb0\x54\x5d\x9a\x67\xc9\x2f\x50\xc9\xd2\xa5\x67\x53\xc5\x5e\x93\x43\x72\x79\x70\x9c\x65\xf2\xe6\xf2\x80\x3c\x77\x7d\x23\x5f\xbc\xf6\x51\x20\x9e\xd0\xda\x2f\xa8\x42\x44\xf3\x67\xcb\x1f\xe0\xdd\x1f\xa5\x9a\xf0\xf4\xf2\xe0\x35\x99\xc2\xbf\x74\xbc\x06\x55\x08\x3d\x22\xfa\x8a\x63\xb5\x75\xc1\xbe\xc0\x6f\x84\x4f\x49\xae\xd8\x35\x97\x05\x78\x65\xc9\x9c\x6a\xf1\xcc\x94\xae\x94\x25\x33\x38\xfb\x19\xcb\x33\x9a\x30\x3b\x7d\x42\x45\xc2\xb2\x60\x0e\x8c\xcc\xc1\x3e\xe2\x40\xe1\x60\x8d\x67\x60\xe6\x84\x12\xc1\x6e\x88\x14\x5b\x94\x78\x44\x6b\x98\xdd\xfa\x4f\x5c\x1b\xa9\x96\x7d\xe2\x95\xaa\x46\x12\x9c\xa2\xdc\x94\x0f\x29\x50\xcc\x50\x2e\x9c\x5f\x02\x18\x00\x50\x66\x6c\x62\x93\x72\x6d\x29\x7f\xc1\xf5\x3c\x34\x92\x65\x5f\xf2\x8c\x27\xdc\x80\x57\x04\x76\x0a\x7d\x55\x7d\xae\x6f\x35\xce\xe9\xd5\xce\xad\x6e\xff\x29\x27\x17\xdb\xfa\x1c\xab\xb7\xf0\xef\xe5\x4c\x7d\xb5\x18\x56\xba\xfd\xfb\x79\x1e\x1d\xc6\xb6\x99\xbb\x9c\x62\xd3\xe3\x20\xfd\x50\xc2\x05\x4c\x4a\x10\x92\x23\x08\xf4\xf0\xd4\x9c\x89\xf1\x0d\xbf\xe2\x39\x4b\x39\x1d\x4b\x35\x3b\xb2\x7f\x1d\xd9\xe1\xdb\x25\x19\x28\xbb\x8b\xcd\xa2\x07\x7f\x76\x4d\xac\x48\xea\x5e\x8b\x03\x07\xa1\x83\xb5\x9b\x36\x00\x92\x4f\xed\x0d\x59\x70\xad\x99\x0e\xdb\x4c\xd1\xba\x09\x45\x35\xc5\xd2\x65\x53\x8c\x09\xf9\xc0\xa1\xf5\x12\x20\x6f\x44\x52\xc2\x39\xc8\xc2\x97\xac\x74\xf8\x2e\x05\x5b\xeb\x9c\xd9\x2a\x68\xb0\x8c\xb0\xb8\xd5\x95\x2c\xa7\xb9\xeb\x6b\xf9\xfd\xee\x8d\xe1\x85\xce\x59\xa7\x94\x89\xce\xcf\x8c\xce\x88\x61\x59\x16\xcc\x9a\xce\x30\x0d\xb5\x44\x70\x1e\x2b\x0d\x6a\x2b\x08\x56\x58\x07\x38\x9a\x53\xc9\x5c\xe3\x84\x3c\xcf\x96\x90\x4e\x94\x29\x1f\x3f\xa3\x4c\xec\xfa\xd6\x63\x52\xd9\x36\x84\x90\xb5\x5c\x85\xd5\x10\xa2\x9e\xc2\x4b\xb8\xc4\x2d\x44\xaa\x4b\xac\xd9\x4c\x64\xe8\x72\x91\x56\xc6\xf5\x70\x93\x6e\x62\x3a\xee\xe3\x2b\x3d\x0e\x5a\x91\xc3\x57\x00\x7c\x23\x97\xdc\x95\xbe\xe4\x23\x49\x5a\x4b\xd2\x6d\xa1\x31\x61\x27\x48\x3c\xd8\xbb\x76\xf1\x9c\x44\xad\x3c\x80\xa1\xdc\xd0\xa6\x4e\x94\xde\xe1\x53\x89\xd7\x0d\xf4\x73\x17\xa5\x57\xd7\xb3\xcb\xb5\x6e\xfa\x78\x64\xad\xc3\x8b\x55\x11\x5c\xd4\x8a\xb3\x37\x40\x34\x2f\xec\xd4\xf3\x51\x50\x14\x69\x08\xca\xec\x55\xd4\xed\xc1\xd9\x78\xa3\x38\x61\x5d\xdd\x19\x28\xc3\x65\xc4\xe9\xe3\x35\x05\xef\x36\x99\x7c\x5d\x50\xf5\xc3\xb0\x6a\xb6\xdd\x94\xc4\xe2\xe4\x14\xab\xe6\x94\x24\xbb\xfc\xf1\x9c\xcf\x2c\xd5\x3b\x43\xd3\xc6\x9a\xab\x53\x46\xb8\x51\x12\x4d\x0a\x61\xe8\x96\x6c\x3a\xe3\xc8\x60\x48\x7c\xc8\x86\xc4\xc1\xdc\xf6\x54\xcc\x6d\x11\x0f\xd8\x1d\xf1\xdc\x8c\x58\x74\x92\x57\xab\x53\xc4\xa4\xc2\x1d\x28\xe1\x46\xb3\x6c\x8a\xc9\x0f\x62\x19\xf7\xa9\x8d\x7a\x85\xb5\x29\xa6\xdb\xf9\xb8\x36\xdc\x59\xb7\xf3\xeb\x2d\x53\xfc\x1a\x62\x49\x4a\x91\x08\xd3\xf9\xa3\x0e\x04\x9b\x88\x3a\x3b\xb4\x21\x56\x36\x8b\x17\xa0\xc5\xa2\xd8\xca\x07\x76\x67\x5f\xdc\x0c\xf2\x8d\x75\x35\xd6\x15\xc4\xf8\x04\xd4\xe0\xae\x05\x61\x2b\xea\x6a\x43\x17\x79\x28\xa3\x00\x12\x30\x92\xa6\x90\xe1\x93\xac\xc6\xb4\x6d\x5e\x4d\x62\xde\x5c\x4d\x02\xec\x76\xd5\x3a\x12\x11\xe2\xa1\x1e\xb5\xa7\x42\x12\x50\x47\xa2\x5e\x46\xe2\x96\x1f\xee\x51\xab\xc1\x7f\x81\xe6\xb9\x92\xd7\x34\xc3\x4f\x8d\x22\x0d\xee\x18\x9e\xb0\x94\x48\x45\xde\x32\xc1\xf7\x53\xb6\x61\x5b\xad\x79\xb3\x8b\x50\x77\xec\x0e\xd2\xd4\xc3\x93\xa6\x1a\xdd\xb2\x5b\xdb\x0a\x36\x13\xd4\x6f\x63\x42\x18\xa4\xc0\xa7\x22\x05\x06\xa7\xeb\xc6\xa4\xec\xce\x1d\x9b\xb7\x17\x4a\x76\xec\xf8\xdc\x42\xd8\x6d\xd7\x8e\xd1\x18\x1e\xc9\x82\xf6\xcf\xc5\xa2\x30\xc0\xb4\xcb\xe4\xa4\x20\x02\x07\xbb\xcb\x18\x6b\x24\xc3\x65\xf2\x1c\x4e\xa4\xe4\x93\xe5\xf2\x2e\x1d\x47\x93\x84\x0a\x1f\x02\x2d\x9d\x2d\x0a\x0b\x26\x41\xfa\x94\x1b\x04\x69\xc9\x4e\x2c\x9d\x54\x3a\xf5\xda\x09\x93\x70\x75\x16\x32\xc5\xda\xb7\x93\x25\xa4\x10\xf7\x89\xfe\x61\x5f\x8c\x5a\x41\xdc\x52\x70\x3f\x6d\x7e\x8d\xb4\x13\xc4\x35\x77\x86\xd4\x69\x5a\x3b\x55\xab\x13\xbf\xda\xa9\xbc\xb3\xab\x5e\x2f\xa2\x43\x9e\xb4\x66\xca\x12\x29\xcc\xa8\x1e\x9f\x88\xa9\x44\x4e\x35\xa5\xae\x5b\x98\x13\xb4\x5a\xc4\x09\x59\x69\x9e\x51\xbd\xf4\x80\xff\x5d\xae\xa9\xbf\xd9\x41\xfb\x5b\x67\x0b\x4b\x6a\x87\xff\xc6\x1c\x45\xad\x98\x8f\x9a\xb6\xf9\x57\xaa\xd9\x1f\x7f\x7f\xc8\x44\x22\x53\x96\x92\xd3\x7f\xbc\x39\xff\xe6\xd5\x4b\xf2\xe6\xfc\x0c\x4c\xaf\x6d\x8e\x9f\xc9\x72\x1b\x89\x52\xf3\x99\x60\xea\x63\x77\xf9\xdf\xb3\xd0\x2d\x0e\x5f\xa9\x8b\xb4\x3e\x83\x00\xba\x87\x65\x78\x73\xb0\xd4\x38\xa6\x37\xd8\x85\xbe\x26\x9f\x75\x22\x73\x76\x38\x97\xda\xd8\x87\x96\xdb\xd8\xff\x7e\x86\xd4\x3d\xb6\xc8\xcd\x72\x14\x42\x1e\x20\x25\x0f\x7c\x3f\x2c\x7d\x7d\x29\xc8\x2b\x18\xc4\xcd\x33\xed\xba\x09\x65\xcc\x78\x36\x18\x51\x29\x9f\xcc\x48\x35\x2c\x34\xbd\x14\x76\x3b\x97\x07\xd5\xac\x1e\xfb\xd7\xa1\x65\x12\xc0\x73\x0f\x71\x9a\x43\x37\xeb\xe5\xc1\xf8\x52\x90\xef\x9a\xbe\x07\x8d\xb3\xc5\x6c\xbb\x0f\x66\xcc\x1c\xba\x09\xf0\x13\xdf\x8f\xc9\xcf\x96\x36\xdd\x70\xbd\x32\xcd\xca\x0c\x19\x9b\xd1\x64\x79\x58\x60\xa5\x37\x98\xe0\x2d\xd7\xc8\x9f\xbd\x61\x56\x15\xda\xa0\x97\x16\x0e\x49\xfb\x3c\x10\x62\xef\x89\x9c\x92\x09\x15\xe9\x18\x6a\x0c\x58\x5a\x89\xa9\xc1\x50\x33\xbb\x4c\x6a\xc4\x6a\xd8\x9f\x21\xe1\xbc\xc4\x8e\xcf\x5b\x38\xa0\x0b\xde\x25\x3f\x7d\x3a\x79\xbb\x7f\xba\xb3\x76\x89\xc0\x3f\x3a\x56\x09\xc1\x2b\x2c\x75\xbc\xa6\xac\x32\x4f\x91\xd3\x4c\x09\xcc\x02\x7e\x50\xf6\xc5\x79\xea\xae\xd8\x32\x60\x71\xe8\xf7\x0a\xbb\x28\x45\x2e\x23\x65\xa6\xc7\x9c\x99\x29\xf8\xfa\xe7\x66\x91\x1d\xa9\x69\xf2\x87\xef\xfe\xfc\xf2\x1b\x8d\xe1\xa7\x87\xbf\x1f\x7f\x37\x7e\x35\xfe\x1e\x71\x6a\x8b\x37\x5f\x7d\x77\xd7\x44\xce\x1e\x52\x8f\x72\xe2\x27\x77\x7e\xec\x3d\x45\x3e\x55\x55\x1d\xf6\xac\xc0\xae\xfa\x83\x5b\x43\xba\xca\x29\xba\x40\x3b\x0d\x02\x14\x24\x94\x39\x7d\x7f\x54\xf7\xd6\x03\x7e\x42\x8c\x13\x3c\xe1\x5a\x17\x2c\xad\x98\x22\xe7\x6c\x4d\x3a\xf2\x76\x0c\xa7\x77\x62\x67\xb0\x71\xc1\x0e\x32\x5e\x36\xf4\x70\x9b\x1b\x11\xdf\x73\x3d\xd8\x3a\x00\x29\x04\xa7\xd9\xae\x3c\xd3\x5b\x5a\xe5\x36\xbe\x3f\x2b\xb8\xd9\x17\xd9\xa4\x54\x29\x17\x68\x0a\xb6\x9a\x0e\xa3\x7a\x5d\x3f\x18\x78\x1e\x2c\x1b\x94\x64\xf0\xb7\xcb\x6e\x1d\xc2\xdb\x1f\xb4\x1d\x65\xb0\x47\x3c\x15\x7b\x44\xcf\xc8\x84\xc7\x17\x56\xd0\x48\x8e\xb6\x8b\x2f\x80\x57\x1f\x70\x24\xc1\x2e\x6d\x3e\x31\xd4\xd6\xd9\x7c\x90\xba\xb7\xdb\x76\x36\x31\xeb\x34\x9d\x54\x47\x9a\x54\x18\x83\x24\xc6\xc7\x89\x21\x4f\x71\xc5\x87\x06\x1e\xf2\xa0\x79\x48\x9f\x14\xa9\x13\x9f\x22\x55\x1e\xb1\x07\x74\xfd\x8c\x5b\xe7\xdc\x9a\x58\x0c\x16\xfb\x81\x43\x0e\x69\x52\xf8\xfb\x5d\x73\x96\xdd\x95\x4e\x6e\x97\x03\x3a\xb8\x0b\x84\x9b\xe2\xf5\xac\x0b\x05\xd4\x89\x04\x7d\xe2\x9c\x01\xf8\x3b\x8e\x76\xf8\xc0\x13\x25\x3b\x43\x1e\xa2\x6f\xe3\x3e\xaa\x45\x5e\x7c\x00\x37\xea\x5d\x58\xee\x05\x31\xa5\x25\x90\x67\x2e\xb3\x94\x29\x6c\x76\x6a\xba\xb2\xb8\xaa\x83\xab\x9d\xe1\xb8\xff\xd5\xc9\x57\x38\xd6\xc5\x90\xc7\xab\xda\xc2\x8a\x06\xef\xbd\x75\x85\x4d\xfa\xa5\x99\x34\xbd\x82\x00\x0b\x05\xab\x21\x41\x27\xa1\x22\xe5\x29\x34\x33\x84\x5c\x12\x07\x39\xe1\x0a\xde\xdc\x50\x0e\x05\xde\xa6\xd2\x92\x69\x07\x4b\xc2\x4d\x99\x77\xb1\x60\x54\x17\x8a\x11\x3a\xb3\xa0\x70\xe1\xd7\x72\x8a\x91\x28\x58\x27\x8a\xa5\xe4\x8c\x09\x76\x63\x0f\x6d\xe7\x79\x15\xb0\xde\xb2\xb9\x4b\x2f\xb8\x44\xc3\x43\xc7\xbd\x90\x74\x62\xa2\x87\x70\x7a\x08\x11\x9f\x46\x82\xe7\xba\xfb\x7a\x66\xca\x43\xe8\xce\xaf\x54\xf8\xf2\xba\x0b\x15\xa3\x33\x02\x64\x4e\x75\x1c\x6e\x84\x15\xa2\x1d\x86\xef\xdc\xf0\x82\x96\xa1\xc1\xfa\xf2\x74\x25\xe7\x41\xb6\x7c\x2a\xb2\xe5\xd7\x62\x7d\x89\x68\xd2\x60\x82\xb9\x2b\x13\xcc\xc6\xe1\x35\xad\x67\x36\x18\x63\x9e\x3a\x4b\x79\xc0\xc6\x98\x58\x9e\x19\x2c\x32\x03\xd7\x1c\x2c\x32\xe4\x01\x5a\x64\x76\xc7\x6c\x06\xdb\xcc\x60\x9b\x19\x6c\x33\x83\x6d\xe6\x89\xd8\x66\xb0\x9e\xc4\xf1\x3f\xcf\xdf\xd9\xaf\xf0\xe4\xaf\x99\x4c\xae\xce\x8d\x54\xec\x17\x99\x15\x0b\x76\x0e\x42\xc4\x1a\x82\x17\x55\xe9\xa6\xe4\xd4\xd2\x5c\x6d\xec\x56\xde\x72\x7d\x55\x0a\x21\x5c\x90\xe3\x7f\x9e\x8f\x2f\xc5\xa5\x38\x86\x7f\x92\x77\x7f\x3d\x27\xa9\x1d\x03\xed\xef\xd8\x17\x0e\x4d\xf0\xb0\xad\x9c\x2c\x84\xef\x6c\x46\xfd\xfd\x67\x0a\x3b\x0c\x95\xef\xd0\x4c\x43\x1d\x6f\x17\x36\xab\xe9\x82\xc1\xcc\xbf\x49\xc1\x88\xab\x23\xe1\x62\x49\xc7\xa4\xfe\xd5\xc4\xca\xd8\x22\x5b\x62\xfc\x7a\x28\xa5\xa3\x18\x4d\x8f\x6e\x14\x37\x8c\x48\x91\xb0\x71\x78\xe9\x1a\xa0\xa1\x89\x2e\xf2\x5c\x2a\x43\xe4\x8d\x60\x4a\xcf\x79\x4e\x16\x54\xd0\x19\x5b\xd8\x3d\x5b\x21\xfb\xfc\xdd\x7b\x2e\x8a\x2f\xd0\x39\x70\xc2\x32\x2e\x66\x3d\x68\xfd\x54\x5f\x74\xe7\xab\xfd\xc8\x33\xe6\xfb\x09\xba\x36\xc3\xa0\x57\xc0\xca\x90\xce\x2c\x65\x41\x6e\xa8\x00\x62\xb2\xc0\xee\x3a\x17\x3c\x7f\x4d\xde\x09\xa0\x1e\xa1\x45\xdd\xb4\x36\x15\x0f\x1b\x2b\x2b\xa9\xcf\xa5\x25\x2d\x58\xf7\x5c\xcc\x5c\x5f\x9e\x31\x79\xf7\x85\x2e\xf2\x8c\xe9\xd7\xe4\xf2\x80\x7d\x31\xbf\xbf\x3c\x18\x91\xcb\x83\x2f\x53\x8d\xff\x10\xc6\xfe\x6b\x4c\x4e\x16\x58\xa3\x27\x73\xc2\xa5\x0a\x65\xd7\xfd\x6b\x84\x4f\x49\x21\xa2\xaa\x3d\x1b\xf6\x17\xd0\x46\x2a\x3a\x63\x47\xee\x64\xbe\xa1\x37\x9a\x21\x0e\x4f\x2c\x0e\xdb\xc7\x5b\x04\xdd\xe5\x54\x99\x7a\xbe\x68\xd3\x61\x58\x54\x0c\x63\x3d\x0a\x76\x1c\xc5\xc9\x94\xc8\x05\x37\xc6\x07\x18\xba\x98\x6d\x20\x8e\x6e\x90\x05\xbe\x9b\x05\xa2\xbe\x23\x70\xff\x28\x95\x7f\x64\x05\xbe\x23\x9d\xd2\x57\x23\xf8\x8c\x6b\x24\x86\x9d\x82\xc2\x9a\xa8\x26\x97\x07\xaf\xec\x59\x9c\xf3\x05\xcf\xa8\xf2\x1d\x96\xdc\x24\xe5\x48\xcb\x92\xfc\x94\x76\x31\x97\x07\x2f\x2f\x0f\xc8\x73\xec\xb8\x04\x37\x25\x83\xee\x76\x30\x3f\x62\xf0\x12\x43\xd0\x5f\xec\x81\x40\xd3\xf4\x67\x91\xf5\xab\xc2\xb7\x24\x97\x07\x46\x15\xec\xf2\x20\xe2\x9e\x22\xc5\x5e\x36\x90\xff\x82\x93\x95\xab\xe6\x82\x20\x5d\xfb\x60\xa1\x0d\x70\xf7\x53\xac\x3d\x9f\xcb\x03\x28\xa8\x64\x47\xdd\x19\x9a\xae\xed\xf4\x86\xd3\x9d\xbc\xed\x0a\x1b\xc7\x9e\x7b\x27\x6f\x3d\xb5\xc8\x4b\x0a\x9d\x36\x50\x68\xf2\xfc\x78\x41\x7f\x93\x22\xa2\x79\x2f\xee\xf3\x66\xf6\x54\x4e\x02\x34\xba\xf4\x93\x4e\x46\x38\x05\xe6\xbf\x5c\xc3\xf0\xfc\x10\xe4\xe3\xa0\xae\x00\xc3\xf6\x3f\xbb\xba\x44\x50\xc2\xa4\xc8\x58\x1f\xd3\x92\x90\x29\x6b\xf8\x32\xe9\x69\x8f\xc0\xa5\x7f\x8c\x27\x59\x27\x89\x94\x85\x57\xec\x77\xdb\x17\x1e\xf2\x56\x72\xd9\x26\xd7\xe7\x32\xbd\xf5\xba\x4f\xa3\x39\xfa\x2d\x3b\x97\xe9\x9a\x55\x63\xf3\xac\x44\x1e\x66\x12\x22\xb3\xc1\xaa\x61\x5f\x89\xe5\x04\xbb\xf3\x11\x48\x0a\x23\xc2\x4c\x32\xb6\xd4\x52\x4b\x2b\x53\x43\x02\x5c\x2e\xd3\xe7\xfa\xc5\x8b\x35\xbb\x16\x86\xef\x64\xe7\xf1\x3c\x1b\xec\x5e\x18\x7e\xd8\x05\x02\x7a\x2d\x79\x4a\xf2\xc2\x75\x89\xdd\x0d\x18\x6e\x2d\x69\x1a\x03\x6d\x4b\x90\x0a\xaf\xbb\x66\x95\x81\x51\x61\x2d\xea\x19\x18\x75\x23\x50\x4c\xb4\x5b\xe9\xbe\x69\x29\xbb\xe6\x09\x3b\xa5\x66\xde\x41\x38\xdf\x86\x81\xf5\xca\x72\x38\x05\xc9\xed\xa3\x9b\x39\x73\x8d\x9e\xdd\x9a\xca\x76\xc1\xa1\xc5\xd2\xe6\x32\x48\x8f\x9c\x90\x8f\x74\x11\x04\xc0\x00\x07\x5c\xc3\x6e\x29\x2b\xac\x65\xd4\x08\xc0\x5b\xd3\xda\xdf\x0a\xc5\xac\x9a\xd0\x53\xd3\x08\xe3\xe3\x13\xa1\x82\xc0\xef\xe4\x2d\x35\x14\x95\x0e\x14\xa4\xa4\x28\xa5\x58\x2b\x13\x4c\xb8\x48\xdd\xa3\xb2\x17\x6e\x9f\xfa\xc0\xa0\xf8\xcd\x3e\x58\xf4\x5a\x7f\x26\x3f\xd9\x4f\xbd\xc1\xe1\x64\x21\x53\xf6\x9a\x7c\x84\x9b\x65\xc5\x10\x48\xca\x75\xff\xfc\xa7\xd5\x2f\xb6\x30\x50\x58\x86\xdd\x23\xff\xd0\x8a\xa6\x31\x7e\x40\x81\x36\x60\xf6\xee\xea\x4f\x32\x39\x21\x8e\x49\x6f\xb7\x8a\x4f\x67\x27\x3d\x16\xf1\xe9\xec\x64\x1f\x0b\xd8\x4a\x59\x2a\xa5\xf0\x0f\xae\xdd\x3a\x5d\xd1\x82\xfa\xab\x40\xe3\x5d\x2b\x3f\x7b\xf1\xb2\xbf\xfb\x92\xb3\xc4\x04\x07\x0f\x39\x9f\x53\xc5\xd2\xd7\x64\x51\x64\x86\xe7\x99\x3b\x07\x7b\x30\xda\xca\x85\xfe\x44\x08\x4d\xa0\xb8\x2c\x21\x6f\x59\x0a\xc9\x3b\xe9\x6b\xdf\x7e\x29\xbc\xd1\xfc\xc2\x07\xd0\x85\xd3\xd7\x84\xc2\x9d\x44\xd5\x38\x8d\x10\xe0\x39\xe8\xdc\x5c\x84\x47\x8e\x4c\xf2\x0c\x18\x19\x33\x2f\xc6\x5e\xec\x06\xe1\x5c\xc3\x92\xb7\xaa\x3b\xd3\x47\x8d\x58\xa9\x98\x4a\x9e\x97\x16\x80\x17\xe3\x52\x81\x00\x3a\x0f\x59\x60\xa8\x65\x54\xb4\x0b\xed\x1a\xb1\xd7\x94\x8b\x5d\x57\x5f\x0d\xd7\xbf\xe1\x32\xee\x84\x16\xdb\x3b\x53\x5a\x70\x36\xa1\xca\xf6\xcd\x46\xaa\x0c\x0f\xce\x99\x02\x96\xb9\x5b\xc2\xfc\xa8\x8e\x38\x0e\x58\x60\x89\x62\xa6\x07\x1d\x07\x83\xa9\xa3\xe3\xf8\x92\x33\x26\x7b\x83\x38\x82\xf8\xdc\x5d\xc2\x63\x77\x09\x81\xf4\x5b\xc0\xfe\x83\x2d\xb7\xc8\x72\x0f\xab\xd3\x39\x4d\xfa\x2e\x11\xc6\x7a\x7e\xb3\xe5\x5a\x2b\xe6\x10\x2f\xa0\x3a\x33\xde\xa9\xdc\x82\x06\x00\xed\xe8\x01\x67\x20\x8b\xa4\x76\xb3\x76\x20\x3a\x45\x07\xdd\xb8\xaa\x9d\xdd\xd9\xe1\xa6\x7e\x95\x37\xf5\x89\xa3\xf7\x5f\xb9\x48\xed\xc2\xda\x11\xda\x8d\x20\x16\xe3\x88\x14\x3e\x98\x07\xf4\x41\x01\x1a\xec\x0f\x60\xc3\x60\x68\x43\x1d\x41\x65\x79\x88\xa0\x98\xc8\x42\x44\x7a\xa3\x95\xf7\x68\x28\x28\xad\xc6\xe4\xad\xbd\x20\x20\xf9\x58\x3c\x7a\x35\xfe\xd3\x88\xe4\xe8\x8f\x29\x34\xe2\xdb\x04\xbf\xad\x89\x2e\x26\xc1\x86\xe6\x1b\x74\x72\xa1\x0d\xa3\x7d\xae\xc6\x10\x54\x34\xc4\xa9\x0e\x11\x37\xe4\x96\x1e\xd8\xc7\xde\xa3\xd2\x50\x35\x63\x2b\xc5\x8e\xb6\xee\x06\xb0\x0e\x06\x56\x2f\xc7\xcf\x05\x6a\x59\xf7\x56\x01\x9b\x77\x17\x5f\x57\x41\xb6\xd6\x12\xd8\x52\xe2\x12\xf7\xd6\xc5\x0d\x76\x18\x38\xd4\x1c\x25\xe4\xd9\x49\x7b\x8c\xd0\x46\xe1\x41\x08\xf9\x37\xe7\x27\x1b\x2b\x4c\x91\xc3\xdc\xeb\xcf\x70\x04\x5c\x07\xa5\xd8\xb2\x23\x41\xd8\x17\x47\x6d\xdf\x9c\x9f\x78\xfb\x62\xaa\xf8\x35\x53\xe4\xf9\x5f\x99\xa1\x64\xca\xa8\xc5\xb7\x17\x3d\x8c\x58\xa1\x94\xc9\xbb\x2f\x39\x15\xe9\x39\xf0\xee\x33\xc0\xaf\xed\x70\x2e\xcc\xd0\x03\xe7\xde\xb4\x7d\x1d\x49\xab\xf2\x93\x04\xa4\x43\x11\xca\xe1\xa7\x13\xa2\xc0\x00\xc3\x20\x66\xe4\x9a\x55\x4a\x21\x19\x49\x72\xaa\x03\xaf\xb2\xd0\x72\x60\x32\x32\x74\xf0\x0f\x8f\xea\x8b\x71\xf6\xe5\x84\x66\x59\xd4\x82\x46\x10\x9a\xe5\x73\xea\x0a\x3d\x61\x8f\x2b\xc0\x6e\x4d\x98\xa0\x13\xb0\xb5\xe3\xfb\x6f\xce\x4f\x7e\x71\xb1\x01\xee\x3c\xc8\x0c\x5a\x1d\x5c\x94\x85\xa2\x2c\x3b\x70\xcd\x82\x4a\xa6\x39\x61\xe8\x43\x25\x7c\x4a\x84\xf4\x9b\xe6\xda\x7f\x29\x05\x87\x64\x2b\x3c\x34\x59\x48\x74\xe9\x0b\x90\x7d\x70\xd0\x88\xd0\x2c\x73\xff\xc6\x02\x7e\x16\x34\xad\x71\x59\x25\x5e\x9c\x16\x93\x8c\xeb\xf9\x7d\x21\x46\xfd\xf3\xf7\x8b\x19\x6e\x35\x0e\x35\xec\x81\x95\xcf\x3e\x89\xbc\xf2\xd4\x22\x8e\x7e\x1c\xa7\x8d\x7b\xef\xd2\xc2\x10\x40\x3e\x60\x2b\xb6\x23\x07\xd0\x59\x21\x18\x9d\x83\x5c\x3b\xca\x34\x86\x62\x93\x18\x02\xf8\xf4\x2c\xba\x5b\xf8\x70\x64\xca\xee\xe5\x4e\x7d\x6c\xf8\xf0\x7d\xdc\xa6\x68\x1d\xd1\x3d\xb2\xbf\x3e\xe2\x1b\x64\x4f\xf5\xdc\xd0\x19\xbb\xfb\x33\xad\x7e\xf6\xbe\x4e\x14\x56\x51\x3b\xcf\xa6\xdf\x3e\x09\x1d\xfd\xfa\x88\x4e\xb8\xa7\xad\xca\xf7\xfe\x7b\x0d\x31\x89\xa8\x15\x46\xd0\x6c\x61\x25\x67\xbe\x00\x68\x87\xa9\x6b\xeb\x78\xa0\x63\x83\xca\xc9\x6a\xa1\xc6\x7e\xa5\x75\xfb\x16\x37\x5c\xf5\xd5\xbb\xcf\xd6\x83\x12\x25\x71\x77\x7d\x8b\x4a\xb7\x38\xc7\x4f\x54\xa4\x9d\x6d\x23\x7f\x89\x86\x7a\xd6\x55\x60\xe8\x53\x14\x4d\x47\x14\x33\x85\x12\x25\x37\x88\x04\xeb\x3c\x2b\x66\x5c\xfc\xff\xff\xef\xff\xa7\xc9\x1b\xa8\xa3\xfc\x4b\xd8\x01\xdc\x32\x7f\x47\xdc\x70\x29\x10\xad\xca\xd6\x7d\x0e\xc7\x37\xe5\x82\x3d\xb5\x28\xc7\xba\xdb\xa0\x73\x5b\x5b\x5b\x10\x62\x37\x0b\xf7\x75\xf6\x0e\x08\xb4\x09\xf9\x0d\xe5\xd1\x03\x7b\x1e\xad\xd3\x6a\x6a\xdb\x6a\x0f\xdb\xb8\x9d\xe4\x12\x13\x36\xab\x6a\xcd\x01\x6a\xba\x2a\xbf\xbc\x91\x42\x17\x99\x6b\x60\xbb\x94\x85\x22\x34\x5d\xf0\xb2\x21\x45\x22\x95\xb2\xd4\x46\x38\xbf\x84\x62\x33\xab\xf7\x29\x16\x42\x6a\x92\xac\xb0\x3f\xdc\xbd\x00\xd4\xed\x90\x9e\x42\x1b\xc9\x5c\xc9\x6b\x9e\xfa\xf0\x46\xa4\xb5\x48\xbb\xb8\x76\x64\xd1\xe3\x39\xd5\x5a\x26\x1c\x2c\xa0\x11\xf4\x6e\xe6\x3c\x99\xa3\xe9\x3d\x65\x86\xa9\x05\x17\xac\x12\x2a\x19\x0b\x60\x12\xdb\x56\xde\xb7\xf0\xf4\x5e\x26\x34\xdb\xc4\x44\xf2\x24\x25\xa8\xbb\x61\xb0\x25\x84\x76\xc7\x6a\xcf\xa3\x2a\xc2\xf6\x95\x43\x08\x21\x48\xa4\x98\xf2\x99\x4f\xb2\xf1\x77\xd4\xdf\xe5\x27\xc6\x5f\x7f\xa9\x7d\x1c\x0c\x47\x4c\x3b\xe4\x39\xf4\x49\x66\xa4\x24\x9f\x48\xe7\xca\x23\x58\x45\xb9\x92\xe0\x01\xad\xc3\x1f\x9f\x69\x92\xca\xa4\x58\x04\xbf\x01\x14\xc8\x0e\x4a\x94\xb3\xe9\xf7\x64\xe5\x9b\xb1\xb6\x5b\xb3\x30\x9a\x63\x18\x49\x15\xf0\x2b\xa2\x4a\x9a\x6a\x67\xcf\x59\xc8\x6b\xa6\xc9\xe9\xcf\xe7\x27\xff\x17\x49\xa2\xb7\xd1\x20\xef\xbb\xb7\x86\xf4\x93\x5e\x39\xe2\x69\x97\x47\xe1\x38\x4d\x59\x5a\xf9\xdc\x5d\x57\x9d\x4e\x95\xcc\x3b\x2b\xd8\x2f\xa0\xed\xd1\x9d\x2f\x73\x05\x65\x36\x45\x02\x96\xcf\x7f\x3c\xbf\x8d\x49\x96\x12\x3b\x07\x89\x78\xad\x73\x78\xdb\xfb\x94\x51\xed\x82\x40\x33\x3e\x65\x3e\x07\x0f\xbd\x8a\xf6\xb5\xa9\x0e\x79\x42\xa9\xc4\xa6\xd4\xeb\xd2\x85\xa4\xda\x2e\x5b\x68\x21\x05\x37\x52\x75\x25\xe1\x79\x51\xf4\x35\xf9\xe0\x5e\x40\x2e\x96\x58\xc5\x24\xf1\x02\x1b\x6c\xd7\xcf\xd8\xe4\x06\x71\xde\x53\xdf\x63\xc5\x47\xf5\x1f\x25\xb0\xe1\xa3\xb3\x77\xc7\x6f\x3f\xbc\x1b\x2f\xd2\x6f\xe6\xf2\xe6\xd0\xc8\xc3\x42\xb3\x43\x6e\xee\x1a\xab\xf3\xee\x90\xde\x52\x67\xfb\xa4\x31\xdb\xcb\x9e\xa4\x4f\xfe\x52\x52\x9a\x11\x51\x14\x02\x9f\x81\xc5\x41\xa2\x54\x91\x65\x08\x22\xa3\x18\x1b\xc5\x31\x2a\x47\x7b\x8b\x4a\x2b\x17\xba\xdf\x90\x88\x7d\x9d\xf6\x06\xc1\x15\xf6\x9e\xf5\x86\xc6\x79\x78\xc5\x0b\xf9\x10\x84\x6d\x24\xf4\x10\x00\xff\xac\xe5\x57\x9f\x34\x53\xd5\x93\x62\x26\x81\x0d\x1c\x41\x7d\x7c\x27\xaa\xec\x79\xf3\xdd\x41\x56\x77\x65\x3d\xaa\x03\xd0\x89\xb3\x2b\xc2\x2c\x2d\xcc\x9c\x09\xe3\x93\xd5\x1d\x98\x1a\x21\x0a\x52\xe4\x2e\xf1\xa7\x11\x4c\xf6\xb4\x36\xb9\xd3\x41\xf7\x53\x34\x95\x1a\x9a\x21\x80\xb6\x56\x59\x3a\x2a\x75\x77\x7d\xf8\x3d\x65\xa1\x40\xd9\x6f\x2d\x0d\x01\x23\x1c\xd8\xdf\xc0\xfe\x06\xf6\x37\xb0\xbf\x27\xc7\xfe\x36\xb6\xe9\x0c\x3c\xf0\x2b\xe4\x81\x5c\xa4\x4c\xdd\x4e\x19\x4c\x60\x0e\x6f\xd3\x8e\x93\xa5\x7f\xce\x99\xd0\x86\x26\x57\x63\x72\x4c\xde\x54\x86\x6d\x58\xd1\x22\x7e\xab\xa9\xa6\x85\x62\x33\x97\xcf\x5f\xa9\x68\x51\xf9\xe6\x83\x2a\x4c\xb1\x5b\xcf\xfc\x1d\x96\x9b\xa8\xa3\xff\x62\xa9\x7f\xcd\x0e\x11\x07\x0e\xf3\xb4\xc4\xff\xaf\x82\xf7\x6d\xb8\xfb\x1e\xec\xee\xee\x35\x1e\x88\xa7\xd5\x78\xed\x5a\x8d\xf5\x39\x55\x74\xc1\x0c\x53\x40\x2f\x53\x34\xc6\x0b\xe1\x42\xc9\xed\x45\x3f\x87\x8b\x7e\xab\x4a\x0c\xee\x96\xf3\x34\x7c\x03\x6b\x59\xb9\xba\x1d\xfe\xb1\x70\x24\xe7\x4e\xf0\xb3\x27\x45\xde\x59\x75\x05\x24\x59\x03\x1d\x1e\xe8\xf0\x40\x87\x1f\x2b\x1d\xbe\x85\xe8\x3d\x10\xe3\x07\x45\x8c\x21\xc1\xe4\xe4\xf4\x0d\x78\x52\xd7\x10\xe2\xea\xc0\x7a\x39\x8c\x8a\x23\x16\xe2\x7f\x70\x3c\x39\x39\x25\x13\x6a\xa1\xab\x99\x86\xbc\x25\x5f\xaf\xa4\x07\xb9\x33\x7c\xc1\x64\x61\xfa\x15\x61\xac\x0e\x8e\xba\xce\x3a\x47\x36\xfc\x1a\xd6\x75\x72\xea\x08\x9f\x5b\x95\x36\x3c\xb9\x5a\x42\x3d\xbe\x71\x14\xcc\xb5\x70\x14\xf3\xb2\x78\xf9\xf2\x7b\xf6\x12\xfe\xfb\xdd\x1f\xf1\xff\xf1\xc7\xe4\x2f\x7f\xfe\xe3\xef\x5f\xbe\x7c\x6e\x95\xc3\x57\x24\xa5\xcb\x17\x96\xb4\xb9\x0c\xca\x50\x24\xe8\x2f\x7f\x21\x97\x01\x82\x96\x42\x3a\x7a\x52\xc6\x5d\xbc\x7a\xf9\x67\x37\xcb\xf7\x64\x2e\x0b\xa5\x77\x54\x54\x6b\x05\x9f\x36\xc5\x0f\xb9\xc8\xa5\x60\x22\x6a\xd6\xd9\x8e\x23\xcd\x3d\x6a\x43\x07\x53\x57\xa0\xd3\xcf\xd8\xa7\x3f\xbc\x52\xb2\x4b\xf1\x0d\x0b\x23\x30\x9a\x24\x32\x65\xae\xbe\x66\xf9\x29\xa8\x9b\x16\x65\x00\xce\x19\xcd\xcc\x9c\x24\x73\x96\x5c\x45\xef\x6d\x11\xa5\xb2\x60\x5a\xd3\x59\x17\x53\xfe\x80\xa3\x1a\xa1\xb2\x7e\xad\xab\xed\x9e\xab\xab\xdf\x62\xc9\xba\xde\x43\xb7\x69\xc5\xd8\x68\xd7\xc7\x4e\xad\x59\xed\x2f\xd0\xad\xd9\x15\x97\xb0\x4f\x2f\x0f\x7e\x82\xf5\x2d\x2f\x0f\xac\x9c\x70\x01\x75\xd5\xac\x78\xf0\x23\x16\x4f\x1b\x11\x18\xf4\x29\xf4\xe5\xde\x7c\x07\xa6\x5b\x0c\xba\x70\xc5\x11\xfb\xad\xfc\x75\xbc\xea\xdd\x92\x6a\x78\x7f\x15\xfa\xb7\x26\xdc\x7e\x1f\xab\x1d\x91\x57\x2e\x48\x65\x24\x79\x8e\xa9\x0c\x95\x1f\xdf\x73\x6d\x5e\x40\xe1\x51\x1d\x07\xb1\x61\x2b\x6e\x44\x3e\x8b\x88\x43\x2e\xeb\x83\xce\x65\xed\xdd\x2b\xfa\xbd\x2b\x8d\x1f\x2e\x43\x79\x4d\x74\x28\x24\xbc\xab\x42\xf9\xad\x8c\xa4\xa7\xab\xa3\xf2\xa8\x92\x18\x98\x53\x93\xcc\x0f\x17\x4c\xcd\xd8\xe1\x15\x5b\x82\x18\x50\xbd\x6d\xcd\x6f\x68\xa3\xa8\x61\x33\x78\x01\xde\x1e\x52\x83\x87\xd4\xe0\x07\x97\x1a\xdc\x25\xba\x85\xdf\xf7\x95\x2c\x5b\x67\x31\x95\x41\xb7\x4e\x9a\x5d\x65\x40\x6b\x78\x58\x29\x8d\xd0\x2c\xab\x4a\x24\x3a\x8a\xcd\xf6\xd4\x8c\xc6\xfd\x3f\xea\xfc\x6f\x68\xf6\xf2\x18\x78\x59\x9f\x66\x2f\xef\xfb\x9e\x70\xeb\x8c\x5b\x71\xb0\xf3\x5a\xe3\xa5\xa1\xcf\xcb\x57\xcc\x5a\x1e\x72\x9f\x97\x18\x56\x1b\xeb\x2d\x77\xde\xea\xa5\x17\x13\xda\x65\xcf\x5d\x7f\xad\xc5\x94\xcf\x3e\xd0\x7c\xad\x0a\xe5\xc6\x38\x15\xa9\x9a\x77\x00\x85\x0d\x2d\x13\x82\xb2\x3f\x68\xaa\xd4\xc5\xa2\x57\x7b\x97\x81\xc3\xdc\x1b\x87\x99\x70\x41\xd5\xf2\x6d\x03\x39\xe8\x97\xc6\x51\x5a\xe4\x26\x4b\x53\x55\x3a\xb6\x4f\xf2\xf8\x6b\x58\x54\xb5\xe5\x0d\x2e\x96\x20\xd9\x78\x47\x93\x39\x84\xfb\x80\x7d\xd2\x62\x9b\x63\x84\x50\xae\x42\x14\x0b\xa6\x78\x42\x92\x39\x55\x34\x31\x4c\xe9\x11\x79\x76\xf8\x6c\x44\x9e\xfd\xc7\x33\x22\x15\x79\x36\x7e\x36\x26\xf1\x77\xa8\xf0\xdf\x22\x76\x27\x04\x93\x19\x93\x38\x7f\xc4\x92\x7c\xe7\x05\xfb\x74\xf1\xe3\xe1\x9f\x89\xa2\x62\xe6\x4c\xa5\x57\x6c\xe9\x72\x51\x20\x07\x2e\x9a\x19\x96\x67\x5f\x95\xd7\x4c\x65\x34\xc7\xac\x3a\x3b\x89\xb4\x08\xec\x26\x84\xa1\x90\xb0\x34\x42\xdc\xe5\x9a\x30\x01\xee\x93\x94\xa4\x85\xe7\x7d\xde\x0e\x91\x2b\x99\x30\xad\xc7\xe4\x93\x0e\x15\xad\x31\xdd\x09\xdc\x2e\x8e\x98\x91\x57\xe3\x57\x2f\xff\x77\x62\x49\x35\x20\x3b\xe0\xaa\xf7\xd6\x6d\x9e\x85\xda\xc4\x34\xf6\x9a\xec\xb3\x8a\x01\xab\x34\x67\x27\x88\xf0\x0b\x1a\xee\xe0\x64\x84\x14\x87\x78\xbc\x35\x3c\x80\xe9\x7d\xd1\xb3\xff\xc5\xde\xbb\x37\xb7\x91\x23\xfb\x82\xff\xef\xa7\xc0\xba\xcf\x0d\x4b\x1b\x24\x65\xf7\xc3\x3d\xe3\xf9\x4b\x2d\xc9\x6e\x6d\xdb\xb2\x8e\x24\x77\xc7\x89\xd1\xc4\x5c\xb0\x0a\x24\x71\x55\x04\x6a\x0a\x28\x49\xec\xb3\xe7\xbb\x6f\x20\x33\x81\x42\x15\x8b\x64\xf1\x21\xd9\xdd\xc3\xb8\x37\xe6\xb4\x45\x14\x1e\x09\x20\x91\xcf\x5f\x46\x1b\x0c\x74\x6f\x3d\x05\x2b\xf6\x1f\x5a\xd3\xfe\x37\xfb\x5b\xeb\x14\xac\xbf\x95\x72\x3a\x2d\x2d\x40\x72\x2f\xe7\xb8\xe7\xbe\x5d\x8f\xc9\x11\x16\x93\xd0\xcc\x16\x8e\xef\x09\x28\xa4\x42\xd7\x03\xb8\x7f\xb5\x70\xc8\xaf\x0a\xcf\x45\xd2\x94\x96\x08\xfb\x96\x24\x34\x2f\x09\xc0\x1d\x84\x1a\x34\x29\xf8\x43\x0f\x43\xb2\x66\x6d\x5c\x08\xc6\x84\xa3\xde\x68\xcf\xdc\x35\x55\xde\x7f\x41\xce\x05\x74\x69\x29\xb9\x18\xd1\x06\x40\x6c\xd0\xe9\x1b\x56\x7b\x96\x4f\xc4\x54\x14\x3c\x6b\xc5\xb3\xd9\xc0\xd9\xb8\x17\x75\xff\x2c\xa2\xee\xde\x8a\xe2\x7b\x5d\x4f\x80\xf5\xf2\xe5\xd3\x88\xad\x67\xea\x7e\x65\x14\xcd\x7c\x63\x66\x44\xe6\x74\x64\xc6\x23\x6e\x65\x35\xcb\x75\x5e\x66\x9c\xf2\x8f\x85\xba\x97\x85\x56\x10\xb4\x72\xcf\x0b\xe9\xf8\x03\x3e\x15\x50\xc3\xeb\x06\x5f\x25\x0b\x5e\x60\x72\x14\x11\xaa\x5c\xe8\xf3\xa5\x89\xde\x77\xff\x42\xd3\x5d\xf5\x2f\x41\x1f\xaf\x7b\xce\x65\x61\x18\x37\xed\xc3\x76\x29\xa0\xb2\x5e\xc5\x04\x0a\xfb\xb5\x6b\x57\xb6\x71\xaf\xd9\xbd\x14\x0f\x47\x0f\xba\xb8\x93\x6a\xdc\x77\x14\xe9\x93\xd1\xe1\x08\x90\x90\x8f\xbe\x81\xff\xb3\xfe\xb5\xf5\xf9\xda\x1d\x2b\x1f\x3d\x4c\x04\xc5\xea\xc7\xaf\x8e\x77\x5b\xa3\xa6\xd0\x39\x42\x64\xd5\x55\xe9\x7c\x24\x7f\x11\xb3\x6b\x38\x5e\x35\xe7\xed\xdc\x1a\xc2\x09\x74\x12\x0c\xb0\xe7\xe8\x30\x76\xd8\x6f\x34\xf9\xaf\xaa\x3f\xe0\x3a\xb7\x9a\xce\xfb\x26\x30\x04\xfb\x53\x85\xa7\x4a\x17\xcc\x3d\x91\x41\xdc\xdc\xc1\x01\x6b\xb7\x3c\xb8\x7d\x5d\x65\x77\xe8\x7c\x16\x57\x18\x96\x6b\xed\x3c\xbe\x03\x09\x18\x51\x3c\x52\x6c\x4d\x0e\xf4\xd8\xdb\x91\xff\x00\x5a\xfe\x5a\x45\xc3\x31\xab\xad\xb1\xd1\xbb\xb7\x23\x7b\x81\x60\x6f\x41\xde\x8b\xd5\x1d\x2d\xc8\x5f\x81\xe0\xfc\x95\x9b\x89\x63\x7e\xff\x34\x92\xf6\x85\x4e\x05\xfe\xa3\xbb\xc0\xdd\xfc\xa6\x51\xc8\xba\x0e\x0b\x54\x25\xa2\xc5\x52\x39\xc7\x7c\x55\x08\xbb\xa4\x3b\xea\x3d\x9e\x17\xb5\x98\xb5\xc5\x82\x12\xda\xbd\xb0\xcb\x5f\x56\x4a\x4d\xbf\x34\x9a\xb3\x54\x24\x19\x2f\x9c\xe8\x0f\xc8\x4f\x4e\x02\xa8\x4b\x3b\x89\x48\x63\xa3\x87\x2e\x0a\x61\x72\x88\xb8\xa4\xa7\xa5\xd6\xa5\xb7\x61\x19\x5b\x94\x70\x22\x1b\x98\x45\xfe\xa0\x31\x89\xf8\x6a\x09\x37\x0b\xf1\x66\x76\x21\xb9\x11\xe3\x0f\x5a\xaa\x9a\x17\xe7\x6a\x0b\x6c\x62\x2c\xed\x72\xbe\x5d\xea\xad\x84\xba\x2c\xad\x33\xaf\x55\x61\x79\xce\xe9\xfb\x17\xa4\x9b\xa8\x73\x55\x6f\x3d\xb7\x94\xe6\xef\x6b\x2c\x68\xa4\x8b\xa1\x4c\x53\x01\x15\x79\xe1\x8a\x38\xc1\xb6\x17\x03\x38\xa7\xd5\x4f\xe0\x56\xda\x60\xb9\xa5\x5c\xf5\xfe\x7e\x3e\x3f\x9d\x5b\xd6\xe7\xaa\x08\xeb\x17\x5e\x4a\x47\xfe\x5e\x1d\xca\xe6\xcd\xea\x2d\x61\x30\x3b\x13\xdf\x2f\x0b\xfd\x7f\x30\x4f\x7f\x29\x9c\x13\xcf\x1b\xa6\x0c\xa9\x20\xc1\x20\xc7\xcf\x43\x59\xc4\x6d\xec\x16\x43\xc1\x48\x1a\xa2\xbb\x32\xd7\xbb\x63\xd5\x90\x5a\xc3\x4a\xe3\x85\xab\xd8\xd2\x1d\xf5\x48\xf9\x43\xae\x35\xd6\x4e\xea\xb1\x52\x65\xc2\xd0\xbb\x00\x02\xa9\xc8\x30\x5f\x08\x4a\x76\xa2\x59\x26\x45\x13\x7a\xc0\xfa\x9a\xf2\x3c\x87\x02\x24\x7a\x84\x23\x01\xb8\x9c\x9d\x98\x01\xbb\xd0\x36\xd4\xfa\x46\xeb\x2f\x66\x37\x24\x3c\x0b\x89\x4f\x23\x39\x9e\xf2\x3c\x94\xad\xc4\xc7\xc5\x8d\xe0\xa3\x94\x7d\xba\xf0\xb4\xdb\x43\xd3\x49\xd8\xae\x65\xfe\xf4\x98\x20\x1f\x46\x64\x05\x6a\xa1\xd7\xb2\xf7\xa6\xda\x1d\xbf\x1d\xb0\xfb\x51\x0e\x07\x3c\xa1\x40\xeb\x87\x89\x36\x04\x0b\x49\x57\xd3\xbd\x66\xee\x3a\xd1\x89\xf0\x7f\x86\xd9\x80\x19\x3e\x9a\xab\xd7\x0f\x44\x8a\xd4\x5e\x32\x72\xf8\x0a\xf7\x03\xaf\x6c\xa9\xe6\xbe\x26\x51\x98\x4e\x16\x0c\x88\x06\x11\x69\xa2\x3e\xf0\xe1\x95\x86\x00\x1c\xd1\x7c\xd6\xf4\x36\xd4\x0a\x7b\x1b\x61\x4b\x22\x0d\xc6\xb7\xd3\xf1\x92\x54\x63\xa0\xb8\x13\x69\x40\x07\x1c\xb0\x4b\x37\xc9\xa0\xd7\x17\x22\xe3\x80\x5b\xe8\x75\x3f\x37\xac\xf7\x11\xba\x41\x5e\x0e\x06\x2f\x11\x78\x40\x17\xcc\x58\x5e\x10\x62\xa6\xfb\xfb\x8e\xd5\xa5\x5f\xc4\xec\x46\xc7\xa5\x46\xd9\x26\xea\xd2\xde\x8a\x33\x67\xc5\x31\x5f\xdc\x4e\xd8\xb5\x64\xd9\x42\xf6\xfe\x14\x4c\xfd\x2b\x64\xe5\xd5\xba\x9f\x36\xbf\x94\xb8\x7d\x87\x2a\xb7\x55\x3a\xdf\x14\x2a\x67\x49\xcc\xe8\x2b\x0d\x80\x22\x27\x80\x9d\x9c\x12\x01\x87\xa1\xa8\x5f\x9c\x82\x8a\xdc\x7e\x28\xec\x83\x10\x8a\xbd\x82\x49\xbf\xfa\xf1\xc7\x1f\xeb\xb0\x9d\xaf\xde\x7c\xff\xfd\x80\x9d\xca\x02\x8c\xc9\x92\xbc\x0f\xb4\x07\xc0\x7f\x7c\x74\x02\x1f\x8d\x90\x03\x43\x06\xab\x63\x9e\x98\x6c\x49\x12\xd5\x54\x8e\x27\x96\x72\x79\xdd\xc3\x97\xc9\x84\x58\x16\x16\xb9\xc6\xbb\xe5\x23\x1e\xa0\xaf\x6a\x57\xa7\x50\x20\x3b\x93\x77\x82\x8d\xcc\x7b\xa7\x88\x22\x3b\x47\x4e\x01\xf0\x99\xe4\x90\xc5\xce\x2a\x9a\x98\xb9\x68\x83\x0d\xf3\xb8\xd6\xb5\x68\xed\x1f\xd9\xfd\x23\xbb\x7f\x64\xff\xbd\x1f\x59\x84\x35\x58\xf6\xb0\xfa\x82\xce\x3c\xcf\x33\x8f\x76\x14\xf0\x10\xe6\x6b\x82\x15\xa5\xf2\xfc\x97\x77\xac\xfa\xc9\x8b\xf1\x2a\x5e\x75\x5c\x8c\x01\x6b\x38\x18\x8b\x84\xb2\xc5\x0c\x6c\xc9\x18\x5a\x94\xea\xe4\x4e\x14\x4c\x4e\xf9\x58\xbc\x34\xec\xe4\x23\xa8\xd5\x90\xb3\x2d\x47\x41\xbb\x89\xa1\xcd\x07\xec\x57\xf2\x1b\xc7\x58\xd4\xff\x71\xf0\xeb\xf1\xd5\x3f\x2f\x8e\x3f\x9e\x1d\xc2\xb3\x21\xa0\x74\x93\x48\xa3\x27\x3e\x2c\xfe\x65\xcd\x0d\x4d\x1c\xc3\x3b\xa3\xa3\xb0\x9e\x42\x18\x9d\xdd\x7b\xb6\x55\x19\xf0\xe8\x0a\x4b\x95\x97\xd6\x9b\xdf\x3d\x23\x2b\x55\x32\xe1\x6a\x2c\x28\x72\x2a\x9e\x96\x99\x29\xcb\x1f\xfd\x6b\x22\x4c\xc2\x73\x2f\x28\x70\x96\xea\xd2\x0d\xfe\x1f\xff\xd1\x63\x52\xbc\x65\xff\x11\x7d\x38\x60\x67\xd4\x36\x5a\x2f\xb2\x3e\x71\x2f\x0a\xe8\x8c\x56\xdb\x63\x85\x18\xf3\x22\x05\x46\xa5\x47\xb5\x13\x1c\x16\x08\x78\x19\xc6\x9d\x63\xa5\x6d\xab\xc9\xbe\xdb\x95\xb5\xdc\xdc\x99\x23\xa9\xdc\x91\xed\xa7\xdc\xf2\x7e\x74\xd4\x90\x29\x89\x7e\xa2\xa7\x53\xae\xd2\x3e\xa7\x83\xd0\x0f\xbb\x70\xf4\x0d\x01\x30\xf7\x79\x68\x25\x55\x9f\xf7\xcd\x44\x64\xd9\x73\xc3\xeb\xd1\x0c\x56\x1c\xe7\xb3\x70\x7a\x19\xf4\x05\x9a\x38\x13\x8f\x22\x29\xbd\xd0\x07\xf7\x07\x96\xd0\x7a\xc0\xcf\x2e\x6e\xae\xfe\xeb\xf2\xd3\xf9\xc5\xcd\xfe\x9c\xef\xcf\xf9\xf3\x9f\x73\xa1\xee\x3b\x26\xde\xb4\x07\x08\x41\xb4\x45\x90\x9c\x22\x7c\x9d\x79\xf2\xee\x56\x8a\x39\x53\xf7\xbf\xf2\xe2\x49\xf2\x4a\xd5\x5c\xe5\xe4\xcd\xf3\x4a\x85\xba\x7f\x57\xe8\x69\x47\x1a\x93\xe7\xbb\x16\x9c\xd5\x4e\xf7\x79\x82\x87\xc0\x5c\x12\x3e\x22\xee\x83\xb6\xbe\x69\xd0\xc7\x4e\xfe\x79\x7e\x7a\x76\x71\x73\xfe\xee\xfc\xec\x6a\xc0\x8e\xb3\x8c\x49\x05\xf1\xb6\x75\x21\xbc\x10\x04\x14\xc4\x21\x9a\x54\xdc\xbb\x29\x3c\x4c\x44\x63\x68\x10\xac\x9d\xc4\x0a\x1a\xd8\x6f\xee\x77\x14\xb8\xe9\xc2\x49\xc5\xa6\x65\x66\x65\x9e\x79\xb3\xa3\xe9\x55\x1a\x41\x5c\x77\x24\x84\x0c\x67\xdc\xd8\xca\x44\x99\x65\xcc\xf2\x3b\x10\xe9\x13\x91\x3a\x3e\x10\x42\x99\xfd\x5a\xb1\xd2\xcc\x99\xba\x0f\x7c\xa5\xc4\x2b\x89\xea\x48\x7b\x1f\xcf\x70\x44\xdd\xde\x93\xcd\x63\x9b\x5b\x0a\xaf\xc5\xaa\x62\x38\xd1\xc3\x02\xfa\xd8\xda\xa2\x76\x55\xf8\xe0\x08\x7a\x31\x0b\xea\x8b\x80\x49\x39\xcb\xf4\x03\x9b\xc8\xb1\x63\xb3\x99\xb8\x17\x99\x77\x5b\x46\xc6\x09\xab\x83\x51\x59\x17\x10\x18\x5e\xc8\xb4\x76\x72\x70\x18\xa9\x98\x93\xee\x33\xcd\x51\x6b\xc4\x42\x5a\x06\xb5\xf0\x53\x91\x67\x7a\x36\xa5\xda\xf5\x29\xbb\xb6\xdc\x8a\x51\x99\x5d\x8b\x85\x35\xde\x97\xc6\x88\xb8\x21\x2f\xcb\x2c\xbb\xd4\x99\x4c\x56\xb9\x47\xcf\x81\x9a\x79\x99\x65\x2c\x87\xf6\x03\xf6\x49\x81\x52\x73\x9c\x3d\xf0\x99\xe9\xb1\x0b\xf7\x16\xf5\xd8\xf9\xe8\x42\xdb\x4b\xaf\x73\xc6\x66\x0d\x6c\xe8\x5e\xf5\xb7\x14\x74\x63\xf9\xb8\xa6\x8c\x02\x48\x46\xdc\x01\x9a\x16\x1e\xa4\x69\x3d\xa4\x5b\x6f\xeb\x37\xd0\x93\x7b\x81\xf0\xdf\xeb\x13\x31\x93\x23\x91\xcc\x92\xf9\xb8\xfa\xee\xa0\x52\xa1\x87\x65\x91\x10\xc7\x49\x64\xa9\x01\xdf\x5a\x75\xb8\x08\xd3\x8c\x22\x9e\xe0\x72\x4b\xc5\xd0\x19\x6d\x04\xa5\x66\xd1\x39\x0b\xf3\x45\x26\x66\x5a\xef\xfe\x82\x95\xde\x0b\x25\x8c\xb9\x2c\xf4\x70\xf3\xd5\xe2\xd7\xcb\x56\x7a\x29\x0a\xa9\x53\xac\xe8\x32\xf4\x60\x26\x61\xf6\x38\x07\x30\x0e\xd2\xdf\x2a\x1e\x0d\xac\xd7\x8b\x8d\x82\xbe\x1f\x71\x99\xb5\xae\x72\xdd\xc3\xe3\xef\xa5\x39\xca\x35\xfe\x4f\x3f\x10\xf3\x9b\x30\xc5\x3e\x8c\x6a\x76\x62\x29\xa8\xd6\x5d\x59\x6b\xc0\xdc\x74\x7a\x71\xfd\xcf\x0f\xc7\x3f\x9d\x7d\xa0\x5c\x98\x88\x8d\x90\x8e\x8a\x4f\xdc\x84\xdf\xbb\x47\x8e\xaa\xc1\x81\x65\xea\x20\x7c\x7b\xb8\x9a\xed\x77\xb9\x00\xee\x61\xec\x9a\xb1\x0c\x6d\xdd\x79\x14\x8f\xb9\x36\xa2\x8a\xa2\x8a\x1e\xef\x33\xf7\x13\x06\x1f\x82\xad\x17\xa0\xe5\xc6\xf2\xde\x63\x5a\xe1\x59\xaf\xb2\x90\x5a\xa0\x82\x5c\x3b\x25\xac\xdb\x30\x8f\x9f\x06\x77\x27\x42\x3d\x74\xfa\x85\xe9\xb1\x61\x89\xc6\xe9\x42\x4e\x79\x21\x11\xb8\xcf\x77\xc6\x33\xd4\x61\x90\xf6\xb3\xe6\x94\x4e\x3f\x9d\x5d\xb3\x8b\x4f\x37\xee\x1d\xbd\x17\x1e\x26\x1e\x7e\x87\x65\x0d\x85\xfb\x02\x17\x9a\x0e\xd8\xb1\x9a\xe1\x8f\xc1\xdc\x06\xe6\x3a\x08\xb3\xd4\xaa\xe6\x75\xbc\x7d\xf1\x6a\x00\xff\xef\xf6\x85\x5b\x67\x01\xa6\x35\x65\xdc\x7b\x11\xaf\xc0\x9f\x7b\x9e\x24\xc2\x18\xe9\xe4\xfa\x40\x4f\x5a\xfd\xd3\x3f\xec\xe1\x1a\x5e\xea\xc2\x6e\x2f\x82\x3a\x9a\xf4\xa7\x3c\x77\xf2\xa7\xa9\x79\xe4\x19\xa3\x92\xcd\xd5\x68\x8d\xd4\xc3\xbc\xd0\x56\x27\x3a\x8b\x67\xf1\x8f\x15\x43\xf9\x79\x4d\x9b\x79\x0a\xab\x04\xe3\xc5\x33\xd9\x42\x42\x2e\x04\x4f\xe5\x97\x66\xb1\x06\x41\xdc\x58\x98\x4c\x3b\xaf\xc5\x22\x49\x70\xe0\xfc\x17\x3e\x14\xd2\x7c\xbd\x0c\xb8\x8a\xa8\xdd\x94\xb8\x3e\x40\x87\x2a\x2c\x80\x30\xb6\x94\xd6\x27\x7a\x9a\x97\x56\x30\xff\x61\x14\x79\xe4\x7d\x36\x4b\x75\xc5\x0d\x64\x9c\x2a\xd8\xec\x08\xa5\x04\xa7\x5d\xbb\x49\xf4\xc3\xfa\x23\x25\x7c\x21\x58\x66\x59\x48\x3b\x73\x7b\x2f\x1e\xed\x36\xd0\xc5\xb5\x7e\x96\xa6\x50\x51\xdb\xc8\x2d\x25\xe0\x31\x23\xc9\xc6\x1b\x62\xd7\xa6\x09\x0a\xac\x47\x7e\x4d\xb0\x78\xf1\x68\x8f\xd6\x32\x73\x78\xc2\x8a\xbe\x3b\x79\x15\xfd\xe6\x7a\x5d\x08\x3f\x57\xd8\x32\x7f\xea\xab\x7d\x1d\x0d\xc3\xa4\x4a\x41\xf3\x8b\xc4\xc6\x4b\x9d\xb2\x09\x37\xcc\x94\xf0\x6c\x8c\xca\x0c\x5e\x3d\x69\x25\xcf\xe4\xef\x54\x05\x31\x92\xc7\x95\x26\xef\x1e\x5e\x2b\xb2\xac\x91\x55\xaf\x54\x56\x66\xfe\x0c\x63\x05\xc7\x7a\xcf\x54\x53\x11\x9e\xd8\xc0\x0b\x7a\x61\x22\x73\xa2\x5b\x8f\xfd\x1f\x40\x20\x0e\x2c\xa4\x26\x74\xc2\xe7\x68\x57\x73\x23\xa2\x15\xcd\x83\x98\x92\x71\x90\xa5\x72\x84\xfe\x15\x1a\x32\xc2\x54\x25\x12\x0c\xc5\x58\x62\x7d\x3b\x40\x66\xbc\xd4\xe9\x4b\x53\xc9\xc5\x3d\xd4\xeb\xa5\x25\xe7\x29\x88\xd3\x9c\x65\x5a\x8d\x21\xd1\xd4\x8d\x05\xea\x19\x64\xb0\xea\x82\x3d\xf0\x62\xea\x1e\x66\x9e\x4c\x20\x59\x95\x2b\x9f\xb8\x6b\xac\xe0\xe9\xac\x6f\x9c\x9a\xe6\x61\x85\xb5\xaa\xa6\xdf\xbc\xe9\x21\x5f\x95\x0d\x85\xe5\x21\x05\x35\xca\x57\x75\xd3\xaf\xed\xb0\x6f\x33\xca\xf8\xf8\x4b\x30\x54\x63\x53\xb9\x2a\xe6\xf1\xb7\x60\x82\x8c\x79\x9d\xbf\xd4\x4e\x7d\x06\xeb\x04\x67\xc3\xd2\x6d\x1d\xd6\x5d\x74\xfd\xce\x99\x76\x1c\x07\xc0\x64\xdf\xf3\xba\x65\xd8\x08\xdb\x83\x17\x8b\x22\xf3\x17\x7c\x0e\xe7\x8d\xa3\x16\x4a\x1e\x6c\xa9\xd8\xd9\xa7\x77\x15\x34\xa9\xd3\xf2\x79\x66\x36\xca\xf9\x85\x51\x3f\xa9\x95\x91\xac\xbf\x45\x36\xd9\xb9\xb5\x85\xc4\x95\x4c\x53\xe6\x39\x2e\x26\x99\x70\xa5\x44\xc6\xf8\xc8\x3a\x39\xdf\xc2\x2d\x1e\x0a\xa1\xdc\xc9\xf2\x86\x9f\xe0\xd9\xb2\x96\x27\x13\x32\x41\x11\x31\x0c\xa4\x53\x47\x3d\x1a\x5b\x08\x3e\xf5\xd9\x89\x53\x2e\xb1\x2b\xc6\x93\x42\x1b\x53\x59\xaa\xb0\x33\x0f\x1a\x6b\x90\x43\xf8\xa5\x32\x8c\x39\xa8\xb2\xb5\xc3\x68\x34\xad\x9a\x6f\x0d\xae\x79\x2f\x54\x10\x09\x0c\x44\xb0\x91\x2c\x8c\xf5\x09\x14\x38\x22\xd9\x54\x5d\x7f\x21\xf0\x40\xd1\x4c\x0d\x4d\x55\xa5\x20\xff\xe6\xd6\xe0\x7d\xac\x3a\xa4\xae\x52\x69\x48\x05\x30\x3d\xc7\x00\x50\xfc\x46\x42\xfb\x99\x02\xa9\x53\x5f\x19\x13\x7a\xa7\x3f\x45\xdd\xc5\x36\xbe\xc0\xaf\xaa\x83\xe8\x2e\x60\x38\x3c\xbd\x9a\xa0\x4e\x49\xfb\x9e\x0b\xcf\x1d\xd3\xc8\x90\x5f\x88\x44\xa0\x6f\xbc\xfd\x54\x6e\x70\x28\xb1\x52\x31\x70\x1e\x82\x63\xbd\x5c\xa7\x5e\xd2\x25\x44\x9b\x04\xba\xf9\xd8\x10\xab\xa3\xbf\xc4\x6e\x95\x68\x38\x46\x20\xb1\x81\xcd\x3f\x14\xd2\x5a\x01\x24\xf7\xa5\x97\x42\x4c\x43\xdc\x47\x85\xd3\x3e\x60\x1e\x42\x36\xfa\x56\x2a\x2b\xc0\xb1\x83\xe0\xea\xc3\x42\x8a\x11\x1b\x49\xa7\x0b\x22\xca\x68\xcf\xbd\x41\x13\xb2\xd5\x72\x63\x44\x01\xd3\x71\xaf\x87\xe3\x95\x34\xad\x01\xfb\x8d\xe6\x65\x8b\x52\x25\x3c\xc2\x81\x57\x3a\x15\xee\x05\x1a\x43\x44\x0f\xd5\x84\xfa\xfe\xd5\x5f\xdf\x00\x42\x84\x41\x0b\xb3\xd5\x96\x67\x61\x8d\x99\x50\x63\x47\x29\xbc\x3b\x10\x50\x1e\x8c\x4d\x81\x00\x99\x9c\x4a\x02\x28\x78\xfd\xed\xdd\xb0\x6e\x1d\x3b\x4a\xc5\xfd\x51\x44\xbe\x7e\xa6\xc7\xbb\x51\xd1\x5b\x8e\x40\x27\x8b\x1f\x49\x0f\x6c\xa2\x1f\x30\xb0\xac\x65\x6f\x89\x5b\xb9\x87\xd6\x47\x78\x0d\xa0\x84\x1a\x2e\xda\xa3\x67\xd4\x62\xd4\x5a\x4f\xe4\x5c\x1a\x76\x8d\x6b\xd8\xd2\x84\x21\xb5\x62\x43\x6d\x27\x5e\xd0\x80\x7b\x4b\x7b\x3b\x60\xef\x78\x96\x0d\x79\x72\x77\xa3\x3f\xe8\xb1\xf9\xa4\xce\x20\x40\xa5\x36\x17\x30\xa9\x27\x93\x52\xdd\x35\x8c\x4b\x7a\xcc\x74\x69\xf3\xd2\x7a\xe9\xa3\x6d\xc1\x23\xaa\x41\x85\x0c\xcc\xc7\x43\x55\xbd\x88\x47\x19\x0c\xf8\x9c\xd0\x99\xf1\xc0\xc4\xfd\x9b\xf8\x2c\x7c\xfb\xea\x7b\xc4\x1e\x01\x97\xdc\x5f\x5e\xb1\xcc\x29\x5e\x3d\xbc\x61\x82\xea\xba\x9b\x29\xcf\x32\xa7\x22\xc4\x67\xc6\x11\x7a\x47\x67\xc4\xae\x3a\x0e\x9d\x9f\xf1\x9b\x9b\xff\x82\x37\x5c\x5a\x23\xb2\x51\x0f\xeb\x49\x90\xd2\x63\xd8\x4b\x60\x7a\x2f\xe9\xf2\xba\x37\x63\x37\x8f\x2f\xc6\x26\x9d\x0a\xa7\x8a\xae\xb2\x47\xd5\xda\x36\x33\x20\x87\x99\x4e\xee\x58\x4a\x3f\xe2\x34\x41\xc8\x24\xe6\x50\x69\x6b\xbb\x35\xa5\xfc\x1a\x4d\xea\x49\x9c\x79\xb8\x24\xe0\xfe\x3b\x32\x58\xdc\x47\xe5\x1c\x56\x90\xdc\x89\xfb\x3e\x8c\xd3\xd7\xe6\x58\xcd\xfd\x9f\xda\x7c\x15\xd5\xa3\x78\x12\x92\xc3\x32\x77\x49\x71\x0a\xfd\x3a\x95\x1d\xf0\xe1\x03\x45\xe9\x23\x96\x52\x40\xe9\xac\xc2\xd9\xa9\xc7\x1f\xce\x09\xa3\x2f\x4d\xb0\x4a\x86\xf0\x06\xe3\x5a\xe3\xe3\x1f\xc2\x4b\x83\x6e\x9c\xce\x0b\xdd\xe0\x59\xd9\x82\x49\xcd\x85\x84\x2d\xce\xd8\xd9\x45\x02\x0e\xce\xfa\xbc\xe1\x66\x9c\x73\x31\xc2\x3f\x87\x75\x8b\x2c\xfa\x26\x57\x06\x87\x61\x88\x5e\x87\x64\x37\xc7\x71\xbc\x94\xe5\xe4\x1e\xf0\xc0\x49\xc3\x00\x41\x7e\xc0\xc4\x60\x3c\x60\x7f\xbf\x7d\xe1\x16\x31\x4e\x0a\xa7\xdf\x4d\x66\xb9\x28\xdc\xd9\x7a\x7b\xff\x7a\xf0\x6a\xf0\x23\x22\xd0\x63\xa0\xcd\xa4\x1c\xba\x26\x63\xad\xc7\x99\xf8\x67\xe4\x0a\x9b\xff\xe8\x1f\xcf\x1d\x7b\x61\xe4\xef\xe2\x27\xf7\x00\x76\x40\xb6\x70\x6d\xbd\x87\x84\x48\xa2\x48\x2e\x5b\x12\x73\xfc\xe6\xfb\x8d\x6b\x47\x2c\xc9\x10\xdb\xdd\x81\x03\x3b\xf2\xd2\xcc\xda\xaa\x5d\x5c\x86\x84\x07\x4f\x07\x78\x17\x30\xca\x01\x95\xc0\x96\x87\x6a\xe1\x99\x4c\x16\xcc\xa3\xf5\x6c\x96\xd3\xa1\x28\xbc\x3f\x27\x72\xe7\x90\x1f\x23\x07\x83\xca\xf9\xa5\x77\x5e\xf8\x58\xf4\x38\x08\x5e\xa6\xf8\xb1\x82\xbe\x7a\xec\x15\xd5\x15\x61\x8f\xfe\x3f\xde\xfc\xf0\xc3\x77\x6f\x76\x1e\x45\x3e\xd1\xc6\x9e\x5f\xae\x94\x74\xb8\xc5\x5a\x50\xe7\x97\x20\x00\x48\x92\xf2\xc4\x23\x61\x44\xd0\xc2\x37\x90\xb3\x5c\xb7\x3b\xa0\xb1\xeb\x66\x3e\x82\x7c\x53\x2a\xbb\x8e\x7e\xd6\xc6\x5e\xd0\x51\xaa\xbb\xe4\xab\x7e\xa7\xee\xa9\x62\xb5\xb3\x38\x60\x1f\xb5\xb1\xb1\xb2\x43\xe5\x8f\x95\x70\xc2\xed\x44\x2e\xbd\x95\x1b\xed\x61\x07\x2f\xea\x32\xc2\x28\x76\x7e\x7c\x71\xfc\xcf\xeb\x5f\x4f\x20\xb8\x8e\x82\xe7\xc1\x43\x1a\x67\x59\xe8\x94\x9c\xab\x6e\xb8\x34\xba\x5d\x4b\xbc\xab\x03\x06\xee\x5b\x9f\xa7\x8e\x5b\xe7\x0e\x13\xd9\x2a\x21\x7a\xcf\x97\x05\x9b\x79\xc7\xc9\x26\xb1\x1b\xc1\xd9\xb5\x42\xea\xa2\x66\x84\xd3\x5a\x44\xb9\x28\x9f\x4f\x2f\x7b\xec\xe6\xe4\x12\x42\x2e\xae\x4f\x6e\x2e\xeb\x9a\xc5\xed\x8b\x9b\x93\xcb\xee\x55\x4a\x3a\x32\xcd\xa4\xcd\x5d\xb8\x3d\xf3\x84\x40\x98\x2e\xdc\x13\x1a\x12\x9a\xad\xdb\x49\xf2\x9b\x92\x85\x76\x14\x7b\x62\xa0\x74\x99\xc6\x08\x17\x69\x9d\xf6\xe9\xee\x10\x02\x81\x0c\xa3\x1c\x0c\x92\xa5\x94\x7f\x93\xa6\x73\xb7\xa7\xf2\xec\xba\x56\xd2\xb0\xfa\x74\x7e\xe3\xd2\x76\x4b\x54\xa2\x68\xc9\x8d\xbd\x07\xf5\x71\xaf\xa8\xb7\x65\xde\x84\x53\x61\xb9\xcc\x4c\x28\xc1\x43\x33\xa8\xe8\xb4\xdc\xe0\x20\xe6\xa2\x86\x37\x9c\xeb\x4d\xd5\xe1\x3a\xd3\xad\xe6\xb1\x6a\xc6\x0f\xb8\x09\x3b\x9a\x2e\x6d\xe9\x5a\x73\xa5\x19\xb4\x4e\x74\xee\x76\x6d\x75\x51\xae\xe6\x8e\xd1\xf2\xfb\x42\xed\x09\x26\x8a\xfe\x11\xae\x0c\x5f\x4b\xce\x20\xbb\xe9\xf1\xda\x0e\xc5\x25\x48\x32\x37\xb2\x19\xa4\xda\x94\x1a\xe5\x54\xd4\x6d\x98\x91\x4b\x80\x1b\x34\x08\x1d\x14\xa2\x7f\x48\xd3\x7b\x32\xd2\xdf\xb4\x5d\x8c\xe5\xd4\xaf\x3e\xc1\x0d\x88\xce\xf4\x86\x7b\x10\xda\xae\x2c\x15\x18\x2b\x91\xe7\xa7\x5e\xb5\xc3\x17\x9c\xbd\x44\xb5\xe2\xed\xd1\x11\xca\x12\xa1\xdb\x7f\xca\x14\x2b\xc7\xbd\x5c\xff\x5d\x13\x8f\xd2\x9e\xac\x4e\xc4\x3c\x7b\x94\xd6\x9b\x05\x43\xd0\x0b\x6c\x63\x6c\xb2\x6b\x86\x51\xed\x5a\x10\x71\xe7\xd4\x4c\xbe\xa6\xd3\x5c\x23\x41\xed\x1c\x47\xd3\x5e\xaf\x76\x1b\xa6\x13\xf8\x0c\x8a\x35\x69\xdc\xb1\x2a\xa9\x59\x89\x9b\x72\x00\x56\xfe\x43\x86\x8d\x37\xde\xf3\x4e\x75\xe2\xe4\xb8\x43\x22\x1c\x34\xfa\x82\x67\xef\x2b\x60\xa4\x79\x21\xee\xa5\x2e\x0d\xc5\x03\xb4\xad\x9a\x75\x60\xa8\xed\x92\x62\x60\x04\xbb\x15\x12\x7f\x9b\x7b\xe7\x97\x73\x5f\x6a\x8f\xac\xd7\x3f\xd1\x1b\xf2\xdd\x4d\xef\xdd\xc3\x64\x36\xef\x82\x74\x2a\xd6\x4c\x58\xff\x1e\x6f\x04\x5c\xb4\xfe\xbd\xdb\xd5\x34\x76\xfa\xaa\xae\x28\x03\x58\x6b\x59\x01\x91\xa5\x24\x7f\x85\x32\x4a\x65\x01\x51\x23\x26\xaa\x00\x59\x8b\xcd\xfa\x9a\x1e\xd6\x4d\xa3\xfd\x3b\x98\xd7\xd0\xa4\x36\xef\xf2\xa6\x0d\xde\x3a\xe4\x7e\xc3\x99\xaf\x24\xe9\x39\xb6\x9a\x63\x41\x2f\xc9\x70\xba\x01\xc9\x1c\x53\x6f\xaa\x96\x6c\x0b\xb5\x60\x0d\x7d\xa0\xb9\x84\xb9\xf7\x25\x14\x02\x5b\x10\xad\xdf\xc1\x48\xd2\xb0\xca\x6d\x1e\x54\xbe\x1b\x0f\x64\x21\x78\xba\xca\x07\x79\x1d\xea\x1b\x3f\xb4\xc6\xd0\x4c\xb8\x61\x39\x37\x90\x3b\x0a\x00\x9c\x14\xc3\x8a\xb1\x60\x9b\xb8\x15\x29\xd4\xe3\x04\x5c\x44\xab\x6f\x8f\x0a\x76\x3b\x2b\xa7\xc2\xb4\x4c\x0f\x42\x76\xa2\x80\x37\xe2\x3b\xd9\x8c\x2a\x46\x13\x97\xad\x3a\x4a\x05\x4f\x63\xfb\x1a\x18\x94\x60\x13\x3c\xf3\xa5\x2e\x21\x24\xb7\x0d\x01\x2b\xe1\x59\x42\xe0\x2b\x20\xb0\x34\x7a\x1c\xb0\x9f\xe0\xc4\x69\x23\xe2\x71\x78\x21\x98\x29\x11\x11\xd5\x6a\x36\xe6\xc5\xd0\x71\x86\x44\x67\x19\x06\xd4\x93\x5d\x17\x73\xd7\xc0\x3d\x34\x16\x96\x25\x3c\xcf\xb1\x34\xc3\x0f\x6c\x38\x63\xef\x4f\x76\x6e\xff\xf3\x32\xc5\x4e\x8f\x0a\x85\x67\xd2\x41\x61\xe7\x55\x44\x24\x60\xe2\x60\x54\xcf\x50\x24\x1a\x76\xb5\x28\x05\x05\x62\x99\x5a\xbc\xa5\xc1\x6a\x24\xa9\x28\x9c\x7a\x16\x02\x21\x07\xec\x4a\x18\x11\xd7\xd1\x6f\xcf\x1d\x8c\x8e\x85\x2e\x98\x1c\xf9\xd2\x2d\x2c\xd3\x46\x18\x92\x3b\xac\x98\xe6\xba\x80\x74\x85\x01\x3b\x37\x3e\x9e\x0d\xe6\x04\xdd\x2a\x3d\x37\x2b\x4a\x0e\xdc\x2c\xa8\xed\xab\x60\x80\xfe\x79\x6e\xe5\x7b\x1d\x65\xca\x26\x7e\x1f\x72\x9c\x45\x97\x7d\xee\xed\x6c\x79\x92\xb6\x15\x4e\x4f\xb9\x98\x6a\x75\x46\x81\xf3\xcb\xfc\x8d\xb5\x86\x95\x14\xd3\x56\x27\x9b\xdc\x3f\xf8\x49\x88\xca\xef\x20\xbf\x74\xf0\x4b\x5c\x56\xee\x04\xff\xd2\x8e\xe5\xbd\x68\x1b\x66\x9b\xdb\xde\x71\x43\x77\x62\x45\x3e\xd5\x0f\xea\x81\x17\xe9\xf1\xe5\x79\x27\xd8\xc5\xab\xca\xf9\x96\xd2\xa7\xec\xf8\xf2\x1c\xb6\x02\xed\xec\xd4\x8b\x53\x1b\x16\xe0\x31\xae\x86\x29\x4c\xab\x59\x3d\x33\x50\xa1\x47\x05\xaf\xc0\xdf\x23\x0a\x61\xc0\x04\xc4\x68\xec\x36\x12\x63\x6e\x8c\x77\x6e\x88\xa8\xb3\x6e\x3e\xe5\x6d\x15\x8b\xf6\x69\x2c\xb9\x97\x6d\xed\x63\xff\x6c\x03\xeb\x18\x31\xc2\xaa\x38\xca\x08\x6c\xdf\x27\x3b\x40\x92\xf1\xea\xbd\x84\x66\x57\x40\xdd\xcd\x58\x33\xd6\xb5\x79\xe7\xba\x09\x65\x2b\x96\xf1\x67\xca\x78\x49\xdf\xb2\xaa\x84\x45\x0d\x40\x2b\xd7\xe9\x5b\x06\x75\x9e\x40\x1a\x84\x35\x9b\x1e\x03\x24\x36\xd3\xc3\xf4\x43\xae\x52\x56\xc1\xf5\xa2\x88\x91\x63\x6e\xfd\x02\x41\x76\xba\x2d\x2c\x1b\x95\x4a\xcb\x44\xaf\xee\x1c\x5d\x80\xc3\xd6\x1e\x19\x43\x57\x30\x82\x8a\xab\x05\xc4\xfc\xf9\xe0\xd6\xf2\xd5\x41\xc2\xd5\x81\x80\xf8\x4d\x69\x18\xcd\x95\x00\xbe\x00\xc3\x2b\x46\x95\xf6\x91\xc3\x43\xe1\xb1\xf2\xc8\x1d\x49\xba\x03\x1f\x1a\x9d\x95\x56\x38\xe1\xa7\x15\x11\xac\xf2\x5e\x96\x76\xd4\xff\x0b\x13\x2a\xd1\xa9\x07\x5a\xc1\x08\x72\xc7\x87\x2a\xa4\xad\x78\x26\xa1\x2c\x5b\x03\x53\x6c\x73\xc8\xe7\x77\xdb\x5e\xc1\xab\xb8\xa3\x4e\x97\xb0\xba\x7a\xa1\x72\x41\x53\xe1\xa5\x3b\x18\x52\xbd\x30\xd2\xd4\x04\xf0\x64\xa8\x48\x70\x80\x7f\x1c\x24\x79\xd9\xa3\x06\x83\xa9\x98\xea\x62\xd6\x0b\x8d\xdc\x8f\xb5\xaf\xa8\x05\xc2\xeb\x54\x7a\x4b\xeb\x0d\xee\xf8\x82\xe7\x11\xf8\xda\x2e\x5e\xf0\x8e\xd8\x9a\x0b\xbe\xa8\x07\xd6\xd0\x9d\x8f\x58\xf4\xdc\x7b\x3f\x08\x6f\x23\xab\x1e\xea\x3d\x4e\xe5\x1e\xa7\x72\x6d\x19\x2b\x9d\x3f\x47\x7f\x5e\x29\xeb\x6c\x9a\xdb\xd9\xa9\x2c\x3a\xde\xd6\x48\xe2\xe6\x8a\x02\xef\x43\x2c\x2b\x88\xdc\x9c\xe2\x75\x1a\x3f\x3d\xed\x7d\x9c\x8a\x54\x96\xab\xf0\x8c\x20\x96\xcc\x91\x07\x40\x8d\xac\x2e\xf8\x58\x30\xfc\x32\xe4\x4e\xf0\xe4\x0e\x2f\x45\x14\xa0\x7b\x13\x49\xf7\xd2\xb0\xdb\x17\xb7\x2f\x7c\xd0\xad\xe0\x2a\x5c\x67\x9f\xad\x12\x05\xea\x62\xe7\xd1\x65\xf6\x24\x23\x9c\xb2\x03\x6a\x78\xe8\x9e\xd9\x8f\xc0\xd1\xd7\xb6\xea\xd2\x42\x8e\x88\xc0\xdf\xc0\x00\xa9\xdc\xc8\xdb\xf6\xbb\xf8\xe0\xde\x9f\xad\xfd\x58\x03\xff\xe2\x0d\xfe\xb3\xe4\xca\x4a\x3b\x5b\xee\xcb\x82\xf4\x1d\x8e\x81\xe8\x7a\xc4\x32\x9d\x40\x02\x11\xee\x50\xc8\xd1\x46\xf7\x80\x34\xcc\x9f\xd9\xa0\xc2\x85\x58\x54\x78\x3e\xe1\x36\x67\x46\x7b\x50\x49\x80\x63\xd0\x05\xc3\x27\x33\x6c\xca\x0d\x20\xb7\x3c\xca\x69\x39\x65\xa5\xcf\x66\xa9\xb5\xa9\x06\x7a\xf0\x99\x35\x00\xf7\x22\x15\x7c\x54\x67\xcc\x90\x0f\xea\x29\x18\xa1\x84\x00\x42\x85\xe7\x81\xa6\x04\x89\x88\x46\x21\x69\x00\xaa\xe5\xd6\x92\x94\x02\xbc\x65\xf3\xec\x29\x99\xd5\x8f\x9e\xcf\x25\x0e\x0b\x2f\x95\x37\x30\x35\x0f\x52\xfb\x39\x2a\x8d\x28\xfa\xe3\x52\xa6\x2d\x27\x68\x87\x5c\x86\x4c\x12\xc7\x18\x86\xba\x84\xc1\x34\x5a\x52\xa0\x45\x99\x67\xa4\xa3\xa7\x14\xed\x6d\xbc\x6d\x25\x0a\x6e\x5d\xcd\x27\x26\xda\xd8\x4e\xe6\x78\x01\x41\x98\x95\xc4\x0c\xb5\x80\xc9\x34\xb4\xbe\xd7\x24\xef\x30\xde\xf9\xe5\xdc\x48\x03\xf6\x91\x40\x79\x87\x82\x65\x5a\xe7\xc0\x9e\x0e\x5e\x7f\xfb\x23\x82\x92\x1c\xfd\xe5\xd0\x3d\xb6\xea\xae\x8f\x37\xe6\xe0\xf5\x9b\xbf\x0e\xbe\xfd\xe1\x7b\xf8\xed\xf5\x9b\x43\x30\x5d\x46\xbf\x43\x1a\x69\x02\x11\x36\x07\xdf\x7e\xfb\x3d\x75\xf2\xed\xf7\x87\x03\x76\x7e\x79\xff\xa6\xba\x37\x90\xc6\xe9\x24\x84\x12\xc5\x74\x4c\x4d\x0f\xc2\xa5\xbb\x28\xee\xc4\xe6\x19\xb7\xee\x95\x36\x03\x76\x9c\x19\xdd\x63\x89\x28\x40\x53\xa8\xce\x19\x24\xa3\x43\xf5\x7c\x43\x72\x81\xfb\xad\x9f\x17\xfa\x71\xd6\x0b\x22\x09\x8c\x0e\x26\xc0\x4d\x8a\xd6\xe8\x54\x5c\xac\xde\xd3\x4a\x10\xbb\x70\x42\x87\x3b\x09\xa1\x7a\x77\x45\xf0\xb6\x74\xf6\x54\xa0\xb7\x27\x86\xd5\x40\x82\x82\x79\x48\xd5\x0c\x3e\x9d\xa7\x8d\xd0\xf0\xdb\x5b\x0d\xae\x3c\x0c\xe5\x0a\x8b\x81\xc7\xcb\xb4\xda\xd7\x56\xc3\x34\x7d\x6f\xef\xa8\xac\x86\x6b\x6b\x0e\x32\xdf\x5a\x6f\xf0\xd7\x7e\x45\xec\x7d\xdc\x6c\x09\x6b\x08\x86\x57\x88\xb3\xed\x52\x1e\x31\xbf\xec\x16\xc5\xeb\x6e\x6a\x8c\x55\x9c\xc7\x51\xbd\x88\xae\x00\xa1\xbd\x11\x46\xdd\x48\x67\x99\x7e\x00\x97\x01\x56\x25\xfe\xa5\xba\x1d\x20\xe2\x10\x16\xe9\x80\x7d\x56\xfd\xbc\x10\x23\xf9\x28\xc8\x32\x03\x17\xc4\xc9\x5b\xc5\x3d\xbd\x7f\xe7\xc7\x17\xc7\x55\x4f\x1e\xee\x05\x1b\x1f\x70\xc3\x72\x51\xb0\xab\x77\x27\xfd\x37\xdf\x7d\xf7\x03\xbc\x3a\xc4\xf9\x1f\x1e\x1e\x06\x92\x2b\x3e\xd0\xc5\xf8\x88\x1b\x23\xc7\x80\xdd\x68\x8e\xa8\x8b\x3e\x74\x71\x38\x60\x17\x5a\xf5\x43\xff\x7e\x75\xa1\x84\xa3\x93\x73\x1a\x53\xf4\xf9\xbd\xd3\x99\xbb\xea\x5c\xcd\x06\x89\x9e\x1e\x4d\x67\xfd\xa4\x34\x56\x4f\xfb\xbe\x8f\x01\x7b\x17\x17\x0e\xf7\x48\x0a\xa0\x59\x5c\xe3\x24\x8e\xab\x6d\xe8\x52\xf4\x7b\xcb\xca\x5b\xe0\x23\x8c\x19\x3c\xee\x5c\x94\x21\x81\x31\xf6\x60\xf6\x70\x0d\x5f\x7a\xd0\x41\xef\x2e\xf2\x45\xc6\xdc\x15\xa2\x25\x5c\xd6\x02\xbb\x6b\x9e\x5c\xcf\x80\xd0\x26\x20\x47\x10\x82\x9c\xd3\x41\x5e\xee\x15\x5a\x05\xfa\xd5\x61\xa5\xf9\xbc\xb7\x60\xb7\x7e\x82\xf5\x23\xe2\xe9\xd5\x5b\x74\x85\x56\x47\xc7\x3b\xc2\xdd\x9c\x5c\xee\x38\x30\x3e\xdf\x85\x27\xc3\x33\xaa\xeb\x72\x68\x44\x17\x8e\x86\x0d\x91\xa7\x41\xa5\x41\x10\x0b\x51\xb0\x21\x65\x1e\x62\x9c\xa6\x53\xad\x00\xe5\xc1\x63\xb8\xa1\x8c\x18\x10\x96\xe9\xa7\x08\x00\x0a\x3d\xdf\x27\xbc\xb0\xc2\x48\x0e\x2c\x2b\x2d\x13\x68\x75\x1c\xfa\x7f\x64\x97\xd8\xd9\x3b\x5d\x30\xf1\xc8\xa7\x79\x26\x7a\xe8\x4f\x7a\x7b\xab\x18\xfb\x6f\xf7\x3f\xac\xfa\xe0\x2d\xfb\xfb\x7f\xdf\xbe\x90\xf9\xed\x8b\xb7\xec\xf6\xc5\xeb\x57\x03\xf7\xff\x07\xaf\x6f\x5f\xfc\x4f\x8f\xcd\xfd\xf0\xed\xe0\xdb\xdb\x17\xff\xf3\x8f\x1e\xf6\x01\x03\xbd\x05\x62\xb8\x3e\xdc\xcd\xc2\xc6\x1c\x53\xe4\xdc\xaa\xdc\x1f\xfe\xf2\xe6\xc7\x1f\xb0\xb7\xaa\xc9\xb0\xde\xe4\xbb\x57\x7f\xfd\x9f\x7f\xb8\x5e\xff\x07\xcb\xaf\xa0\x89\x01\xe2\xc2\x9a\x64\x20\xb6\x73\x2f\xc5\x03\xf8\x91\xdf\xe2\x64\xf8\x5b\xf6\x77\x16\xa6\xff\xd6\x8d\xd9\x63\x61\xd6\xf0\x6f\xe6\x27\x3e\xac\xb7\xfd\xee\xd5\x5f\xe3\xa6\xdf\xbd\xfa\x2b\xfb\x47\x87\xa7\xc6\x53\x70\x95\x5d\xe2\x32\xde\x7d\x10\xf9\xf5\x68\x44\xae\x73\xb0\xa6\x52\x26\x8c\xb7\xc4\x14\xc2\x97\x7b\xe0\x86\x64\x29\x77\x32\x4c\x2c\xb5\x54\x08\x01\xb1\x6f\x9c\x8f\x50\x3f\x02\x28\x9d\x21\xcf\xb8\x4a\x20\xe8\x40\xa5\x84\xdc\x81\x2a\xae\x95\x99\xfc\xbd\xc9\x8b\xb7\x47\xa3\xad\x2b\x06\x6b\xdb\x3f\x6a\x82\xa0\xbd\x72\xeb\x3e\xde\x3d\x89\x9d\x20\xec\x85\xd5\xca\xda\xda\xa0\x37\x1b\x8a\x84\x93\x25\x60\x56\x0f\x0b\xf1\xe1\xc9\x01\x92\xb8\x87\xbf\x17\x22\xc1\xae\x10\x4e\x09\x6c\xc9\x3e\x4e\x26\x99\x88\xe4\x0e\x98\xde\x82\xa6\x1e\x90\x09\x5b\x7e\xc5\x1b\xd3\x05\x97\x32\xf2\x66\x1b\xc6\xef\xb9\xcc\x40\x6f\xa7\x10\x1c\xbf\x1b\xf1\x96\x3d\xd1\x82\xd7\x41\x4f\xdc\xbd\x82\xdc\x45\x35\x26\xa5\xb8\x8a\xfe\xa9\x73\x3a\x60\x07\xd2\x31\x70\x84\x3b\x76\x12\x6b\x62\x4b\x9e\x79\x71\x71\xc0\xce\x90\xc1\x03\x0f\x74\xaa\x93\x63\xad\xd3\x99\xb9\x4f\x6e\x5f\x00\xaf\xc3\xc7\xc8\x31\x79\xe4\x7c\xc4\xfd\x77\xc3\xff\xc3\x0b\xb0\x33\xee\xef\x28\xbb\xce\x44\xbf\x1b\x7c\xb7\xf6\x7c\xfe\xfa\xdd\x8a\xd9\xfc\xf8\xa6\x36\x99\x2e\x4f\xc1\xbe\x28\xfb\x17\x2b\xca\xbe\x2f\x5e\xfe\x67\x29\x5e\x8e\x56\x90\x95\xe5\xcb\xaf\xbd\x4e\x8b\x7b\xf3\xd2\x54\x15\x71\x9f\x9a\x62\x2d\xa5\xcd\x63\xab\x3b\xf2\xda\x2e\x68\x0b\x28\xd3\xf2\x2c\x9b\x17\xef\x4b\xe5\x6f\x7a\x96\x31\xea\x72\x10\xc9\xf7\x4e\x78\xc9\x33\x9e\x78\x9c\x2f\x6a\xc2\x78\x92\x68\x4a\x29\xc2\xdb\x7e\x7e\x69\x50\x7e\x31\x13\x5e\x88\x01\xab\x2a\x34\x91\x41\x16\x34\x91\x00\x48\x07\x4f\x7b\x8f\x19\x8d\x7a\x34\x4a\x51\x68\xb5\x70\x12\x91\x63\x12\xf3\xbf\xb9\xf3\x7b\x50\x13\x96\x12\xd7\x06\x03\x62\x03\x66\x64\x65\x0f\x3f\xf4\xc0\x78\x1e\x26\x10\xde\x34\x9a\x0f\x82\x3b\xa7\xd2\xe4\x19\x9f\x21\xe8\x49\xd5\x87\x5f\xa6\xcf\x2c\x88\x10\x29\x51\xdd\xb9\xd0\xd1\xc2\xb2\x8c\xf1\x3c\x17\x1c\xc2\xac\x01\xd7\x2a\x22\xa0\x4a\xd9\x45\x53\xc0\xf4\x73\x31\x7c\x2a\x68\x2c\x77\xd3\xc9\xa6\x5f\xfb\x36\x12\xd5\x13\x3d\xcd\x0b\x69\x84\xe3\x2c\xf4\x22\x3f\x8d\x28\x43\xca\xe7\xce\x85\x99\xf0\xf7\xa7\xaa\xa5\x5f\x49\x43\xb5\x9f\xb7\xad\xa3\x1f\xba\x85\x12\xfd\x1d\x04\x2d\x00\x4b\xaf\xf9\x86\xc3\xc5\xeb\x64\x55\xdc\xbf\xef\x5f\xea\x7d\xef\xe2\xfa\xff\xb0\x78\x4f\x77\x7a\x0d\xb7\x53\x9e\xf6\x92\xca\x9f\x45\x52\x71\xe7\xad\xbb\x9c\x02\x1c\xe7\xd9\x64\x94\x98\x56\xeb\xfb\x7f\xe0\xa2\xac\x32\x99\x3e\xdf\xab\x01\xec\x7d\xc7\x2f\x47\x5c\x34\x69\xd9\xcb\x11\xb5\x8b\x43\xd8\x40\x4a\x08\x41\x82\xdc\xcb\x72\xa1\x60\xa7\xe9\x94\xd2\x88\x6d\xb7\xf1\x19\x86\x01\xcf\xd4\x3d\xad\x66\x69\x64\x46\xad\xa8\x28\x94\x55\xcb\x1c\xbf\x70\xcc\x60\x91\xed\x5f\x8c\xe4\xe3\xaa\x07\x4f\x55\x65\x9b\x30\xd8\x7e\x24\x1d\x9f\xd1\x2c\x2f\x44\x2e\x14\xb8\x5d\x7d\xc5\xe0\xb9\x02\xb8\xb1\x7f\xa5\x56\x34\x6c\x83\x90\x17\x91\x14\xdb\x39\x61\xaf\xa1\x87\xee\xd4\xc4\xf6\x8b\x49\xb9\xbd\x21\x09\x2a\xd0\x2d\x3d\xa2\xbf\xf2\xa2\x16\x5e\xa9\x5a\xcb\xb9\xc5\x05\x88\x79\x05\x94\xd3\x41\xf0\x59\xb3\xb6\x4e\xdb\xe0\x3b\xdc\x63\x78\x0c\x57\x4c\x67\xc3\x22\x96\x21\xed\xde\x57\x7c\xeb\x56\x16\x0f\xb1\xb2\xd5\x2c\x2a\xd7\xd1\xf2\xd9\xbf\x7b\x29\xcc\x3a\x04\x56\x77\xfc\xab\xe6\xd6\xb7\x55\x3a\x5c\xb3\xa0\x63\x87\xbb\x4d\x2c\xdf\x2b\x9a\x6d\x3b\xfa\xd2\xf8\x72\xe3\x91\x64\x44\xb5\x55\x51\x62\xa3\x2c\x7e\x08\xc0\xda\x34\xa9\x6e\xd5\x33\xdc\x8d\x81\x74\x79\xe9\x42\xb3\x7a\xac\xb6\xa9\x53\x02\x57\x86\x3a\x0a\x7e\xd4\x2d\x7d\x1f\x79\xfd\x2f\x62\xb6\x93\xe7\xee\x17\x31\x5b\x33\xa8\xdf\xbd\x3c\xf0\x54\x57\xef\xce\x22\xe8\x99\x67\xce\xfe\x59\x96\xf3\x43\x31\x5a\x91\x75\xcb\x1d\x8a\x5e\xfd\x9f\x90\xf1\x13\xfd\xcd\xa7\x05\x85\x3f\xd4\x92\x86\x4c\x2e\x92\x81\x0f\xb2\xa2\x7f\x12\xe3\x3a\x4e\x12\x5d\x2a\x4b\x3f\x00\x5a\xc3\x00\x61\x1d\xc3\x3f\x73\x9d\x36\xff\x65\x16\x10\xf2\x4f\x9e\xcb\x41\xff\x14\xf9\x44\x4c\x45\xc1\xb3\x3e\x05\xb8\xd6\xb3\x3c\x7a\xcd\x14\x8f\x7a\xda\xc7\xdc\xd7\x9d\x32\x40\xe6\x24\x9e\x2d\xaf\xd5\xb5\xef\x64\xd3\x3b\x85\xb3\x60\x32\x46\x29\x0d\x27\x73\x97\xd2\x90\x27\x57\xa7\x62\xf4\x8a\xcd\xb7\xf7\xbe\xb6\x5a\x49\x7a\x02\x1e\xe4\x29\x94\x3e\xa8\x92\xc0\x21\x20\x50\xe1\x43\xe6\x1e\x5f\xc8\x21\xd4\x50\xe1\xae\xe8\x63\x65\x1f\xa8\x5c\x9b\x58\x79\x2f\x1d\xd7\x0b\xd1\x53\xa9\x18\x96\xe3\x31\x64\x61\x84\x39\xc4\x11\xc1\xe4\x4d\x8e\x8e\x67\x01\x76\x9c\xb4\xcc\xdc\x40\xe3\x92\x17\x5c\x59\x21\x4c\xc8\xb7\xa0\xfa\xb2\x95\xc8\x40\x15\x19\x7d\xba\x3b\x54\xc2\x85\x12\xa8\x0f\x58\x1c\xd7\x4d\x16\x8c\x4b\x58\x4f\x4c\x17\x8d\xda\x1a\x6e\x61\xf3\x53\x63\x60\xc5\x35\xf4\x3d\x80\xa3\x26\x22\x60\x3e\xd0\x64\x09\x91\x5e\x6a\xd5\x0b\xb9\x95\x44\x43\x71\x2f\x13\x18\xa1\x75\xd9\xd3\x2a\xfe\x15\x89\x3d\xf4\x39\x05\xd9\x8c\xf9\x82\xa1\x55\x6d\x2a\xc7\x9a\x9c\x78\x33\xab\xd2\x0b\xe1\xab\x7b\xc9\xa3\x83\x16\x56\x11\x0d\x64\xca\xa1\x9f\x6d\x93\x82\x95\x49\x38\x1e\x87\x69\x27\x71\x41\xf7\x51\xb5\x20\xc5\x78\x96\x4f\x16\xd6\x0b\x9a\x3f\x5e\xa6\x5e\x36\xa8\x83\x51\xb1\x18\xaf\xb2\x6b\x1d\x53\x75\xef\x60\xe1\x13\xa1\x20\x7c\x6b\xb5\xf7\x93\x8f\xa7\xfb\x32\xef\xfb\x32\xef\xcf\x5f\xe6\x9d\x66\xb0\x0a\x60\x30\x9c\x5e\x06\x7d\x61\x29\xd0\x50\xf8\xac\x2a\x28\xee\x96\xd0\x7a\xc0\xcf\x2e\x6e\xae\xfe\xeb\xf2\xd3\xf9\xc5\xcd\xfe\x9c\xef\xcf\xf9\xf3\x9f\x73\xa1\xee\x3b\xbb\x22\xda\xec\x07\x60\x2c\xb2\x2d\xd5\xf5\x9f\xa1\x56\xfc\xaf\xbc\x78\x92\x72\x1c\x0d\x00\x98\xad\x2a\x71\x08\xb4\xba\x76\xa4\xb1\x97\xdf\xe3\x22\x47\xdd\xec\x36\x78\xed\xee\xc4\xac\x32\xf8\x54\xdc\x07\x25\x9d\x69\xbb\xd5\x8a\x1d\x67\x19\x93\x0a\x71\xe0\xa1\x83\xaa\xde\x22\xe5\xd4\x60\x89\x2c\xac\x5f\xdc\x0e\x49\xe4\x63\x07\xa9\x96\x1c\x8a\xd3\x74\xe1\xa4\xaa\x7c\xf2\xb4\xc0\x5e\xa4\x7e\x73\x63\x74\x82\xc2\x27\xf0\x84\x80\x93\x19\x80\x4c\xb2\x0c\xcb\x2b\xe6\x85\x48\x44\xea\xf8\x80\xe3\x85\x59\x29\xaa\xb5\x0e\x67\xa4\xc3\x07\xbe\x52\xe2\x95\x04\x9a\x2c\xe8\xe3\x19\x8e\x68\x64\x99\xdf\xe6\x96\x76\x41\xe5\x3b\x8d\x1e\x16\xc2\x5b\xfb\x42\x20\x7c\x97\x65\x96\x75\x2b\x1d\x06\x73\xcd\xcb\x2c\x63\x58\x7b\x75\xc0\x3e\x21\x42\xfa\x31\xa0\x55\xf5\xd8\x85\xe3\xf4\xbd\x5a\xad\xff\xba\xf5\x0d\x1b\xba\x37\xf3\x2d\x39\x8b\x2d\x56\xd8\x8b\x90\x39\x74\x51\xeb\x00\xf3\xbb\x1f\xa4\x69\x3d\x02\x5b\x13\xed\x1b\x2f\xfb\xf7\x37\x25\x62\xa8\xae\xb9\xb1\x12\xfc\x21\xf4\xb0\x4c\xf9\x0d\xad\xbc\xa8\xe1\x74\xa1\x07\xca\xe6\x69\xd1\xa7\x16\x19\x47\x9e\xad\xe4\x7f\x55\x5b\x76\x8b\xd9\xae\xeb\x01\x68\xd1\x2b\x17\xd7\xd9\x07\x6d\x0b\x32\x77\x3c\xb7\x25\x00\x44\x3e\xd5\x6a\xdc\xc8\xa5\xed\x41\x45\xdd\x1a\x98\x9e\x4a\x17\x2c\x65\xa3\xdc\x9b\x2e\x81\xcd\xeb\xd0\x73\xa7\xdc\x71\xa3\x9a\xf0\x0b\x8c\x73\xcf\x55\x10\x7d\x27\x07\xf0\x0b\x54\x17\xaf\xaa\x8a\x77\x9e\x7b\xbb\xd1\xa3\x34\x82\x99\x9c\x52\xff\x7c\x97\x19\x05\xd4\x51\x6d\xbf\xd4\xeb\xf6\xb9\x5e\x62\xe9\xfb\x62\x65\xc3\xa9\xed\x96\x3c\xef\x99\xea\x74\xef\xe6\xc4\xed\xcb\x2f\x37\x89\xb1\x2f\xbf\xbc\x2f\xbf\xfc\x55\x95\x5f\x86\x8c\xfb\xf0\x24\x76\xc0\x0c\x70\xdb\xeb\xee\x93\xad\xa5\x0a\xc7\x24\x80\xc9\x5f\xea\xf4\x3a\x17\x49\x04\x22\xd9\x26\xd0\xe0\xf0\x3e\x5f\xb3\xa5\x41\x50\x09\xcb\x70\x61\x83\x4f\xc4\xb0\x83\xf3\xcb\x93\x1e\xbb\x3c\x3f\xed\x31\x61\x93\xc3\x16\x54\xf4\x80\x97\x27\x2c\x1e\x90\x45\xa2\x15\x62\x88\xbb\x31\x1e\x26\xdc\x02\xb9\xa3\x81\x00\x09\x70\xc2\x2b\xc4\x15\xaa\xc0\x15\xe3\x64\xb6\xdd\x56\x10\xc6\x3c\xbc\x0f\x9e\x04\x34\x6d\xef\xa6\x4c\xf2\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\xf6\xbe\x52\x76\x30\x81\xdf\x8b\xa5\x80\xf5\xf0\x3b\x95\x0c\x14\x08\xbe\x38\xaa\x7c\x0d\x46\x4f\xc5\x03\x80\xd4\x79\x22\x64\xa5\xb1\x9d\xe2\x7c\x79\x13\x9f\xbd\x6d\x74\x40\x5d\xc4\x96\x50\xe1\xcf\xf2\x3b\xa1\x8e\x08\xc4\x20\xaa\x68\x86\x77\xea\x2a\xfc\x81\xf2\x99\xd6\x7f\x14\xf6\x69\x57\x5f\x2e\xed\x2a\xd9\xb8\x36\x8b\x13\x4e\xe0\x3c\x3a\x65\x5e\x27\x10\xd0\xd6\xbc\x6d\xdb\x23\x13\xc1\x10\x50\x5b\x6d\x77\x69\x3d\x1f\x65\x52\xe8\x6e\xf5\xda\xc8\xaf\x27\x0d\xc3\x3b\xe9\xee\x03\xaa\xfb\x7a\x88\x20\x5f\x0b\x63\x4c\x0b\x03\xf3\x36\x96\x4f\xe7\xd0\x04\x9f\xb4\xce\x9c\x93\x28\xe7\xca\x1c\x8a\xc6\xf4\xdd\x21\x2d\x20\x7e\xe2\x00\x16\xaa\x47\x10\xdb\xee\xf5\xf8\xdc\xa2\x0a\xc4\x6e\x66\xb9\xf8\xe8\x86\x3e\x5c\xe0\xda\x52\xf7\x10\x15\x81\x21\xb1\xcf\x82\x8c\xe7\x16\x48\x59\x70\x91\xfe\x1e\x58\xe6\x50\x97\x76\xc1\xa6\xec\x33\xf3\xbe\x48\x66\x9e\xd3\x84\xbe\xa2\xab\x30\xd5\x78\xfe\xc1\xe9\x89\x7c\x4b\x25\x11\x6a\x68\xb8\x29\xe1\x8e\x6c\x53\x0a\xf4\x98\x4d\xca\x29\x57\xfd\x42\xf0\x14\x02\x6e\xa2\xdf\xbd\x75\xaa\x51\x36\xcf\xbd\xdd\xf0\x62\x6d\xf0\x96\xee\xf1\x1a\xe6\x48\xd2\xa9\x56\x23\xb8\x28\x2b\x2b\x03\x77\xff\x5d\xd8\x1e\x23\xba\x00\x4a\x6f\x81\x30\x8b\x58\xf4\xbc\x40\x4e\xc0\x2d\x60\xae\x19\x0a\x0a\xc3\x02\xab\x64\x84\xb3\x05\x57\x06\x28\x5d\xa9\x20\x81\x38\xf5\x92\x89\x1b\x95\x7c\xcb\xb6\x2a\x12\xbe\x0e\xcb\x0d\x48\x88\x46\x24\xda\xed\xf2\xcc\x73\x3b\x80\x69\x76\xbb\x9b\xe8\x69\x9e\x89\x47\x12\x1c\x17\x7b\xf9\x9c\x38\x2b\xd5\xf8\xc4\xa3\xcc\xae\xe1\x74\x86\xd3\xa1\xb3\xcc\x07\x75\x8b\xa9\xb4\x60\xdb\x08\xef\x73\x8f\x89\xc1\x78\xc0\xfe\x77\x3d\x34\x81\x0a\x81\xfd\xef\x8d\x88\x4c\xf3\x3d\x57\x6e\xf3\x57\xba\x47\xea\x35\x14\x69\xb2\x92\xbe\x8d\x67\x97\x09\xdb\x7f\x9c\xfd\x3e\xda\x64\x52\x46\x14\x4d\xc9\x7e\xad\x00\x1c\x47\xa9\x6b\xec\x63\xd9\xa6\x9f\x72\xcb\xa3\x82\x62\x28\x00\xe1\xd8\x31\xa7\x8c\x52\x89\x74\x01\x78\xd7\x72\xc4\xa4\x3b\xe2\xde\xa5\x63\xb5\xc2\xaf\x17\x39\xe2\x9a\xa9\x4b\x9b\xac\xa7\x5b\x32\x67\x00\x37\x66\x61\x67\xa3\xb5\x0c\xd8\x75\x93\x03\x2c\x67\x00\x0b\x16\x44\x9b\xb8\x94\xdf\x10\xaa\x7d\x44\xc8\x83\x0b\x27\x2d\x67\x3d\xf6\x1b\x2f\x94\x54\xe3\xc3\x1e\x53\xe2\x01\xf0\xef\x0d\x4b\xc2\xbc\x20\x3e\xde\x17\x3d\x2d\x1d\x4b\xdc\xad\x86\x1b\x98\xe9\x62\x29\x6f\x95\xfe\x1b\xfe\xfe\x64\x89\xe3\xa0\x40\xd7\x7e\xda\x3a\x61\xdc\x75\xb9\x0a\x66\xc4\xb7\x69\x40\x8c\xdc\x8b\x3d\xbe\xc8\xd7\xae\xe8\xae\x85\x2f\x72\x3f\x1f\x3b\xb2\x75\xd8\x23\x1c\xd9\x8e\xd6\xbf\xbd\xf6\xf2\xf5\x68\x2f\x7b\x5c\x91\x3f\x1e\xae\x48\xe0\xe5\xbb\x7f\x22\xae\x9b\xc2\x57\xeb\x23\x81\xad\x42\x21\xb6\xb8\x90\x21\xa0\x41\xc3\xaf\x81\xd3\xf4\x98\x1c\x88\x81\xbb\x5d\x5e\xa7\x78\xe0\xe6\x48\x1a\x36\xe1\x79\x2e\xa0\x7a\x96\xeb\x49\xaa\x52\x97\x26\xc3\xaa\x3d\x00\xd2\x06\x01\x45\x5d\x92\xb3\x57\x1b\xf9\x2e\x82\x81\xaf\xd2\x89\x29\xa0\x1e\xc2\x64\x60\xc6\x65\x5e\xbd\x11\xc6\xb2\x89\xe0\x85\x1d\x0a\x6e\x61\x22\xbb\x36\xfd\xb9\x21\x3e\x91\x95\xed\xcb\x59\x00\x49\x9c\x87\xf5\xc6\xd6\x02\x9a\xd8\x1a\x75\x7f\xe7\xef\xb7\xad\x44\x40\x3c\x30\x6f\xd9\x27\x35\xd6\x60\x4c\x2f\xd8\x3b\x0f\x41\x7c\xea\x78\x72\x82\x7c\xf3\x32\xe3\x4a\x81\x1d\x7e\xaa\xef\x39\x42\xb0\xbf\x1e\xbc\xfe\xcb\xa6\x32\xe0\x26\x9e\x8b\xd5\x50\x03\x55\xab\xf6\x6a\xbb\x50\x76\x8a\xfc\x19\x9d\xce\x6f\x37\x65\x31\x28\x95\xf8\x46\x35\xad\x9f\xd2\xb0\xb1\x50\xa2\xd8\xd0\x77\x3d\xd1\x66\xe5\x25\xd2\xa9\x8f\x3b\x52\x3b\x19\x7e\xeb\xfd\x7a\x14\xc9\xf1\xaa\xa2\xbc\x55\xa3\x5a\x45\x8e\xdb\x17\x14\x73\x14\x9c\x6c\xb7\x2f\x48\xbd\xef\xb6\x67\x1d\x52\x05\x4f\xb0\x95\x77\x8e\xd3\x47\x10\x99\x80\xa9\xc9\x90\x33\xe8\x34\x68\x99\x36\xe2\x35\xd0\x97\x38\xe7\x74\x0c\xd6\x17\xdf\x17\x04\x4f\x69\x6d\xd9\xc1\xcb\xa3\x97\x87\x73\x8e\xc3\x86\x2b\xf8\x26\xfa\xd2\xf1\x3d\x39\xcd\xb3\x19\xcc\xe3\x65\xda\x63\x32\x04\xc8\x22\x69\x60\x56\x94\xc8\xd8\x63\x46\x33\x5b\x70\xac\xb0\xcd\x33\xfc\x2b\x28\xff\x45\x89\x46\x11\x76\xf0\xf2\xff\x7b\x49\xd1\x60\x0f\x5a\xbd\xb4\x30\xfd\x01\xbb\xc1\x7a\x64\xa1\xa3\x99\x2e\x99\x12\x82\xb2\xb3\xf3\x4c\x26\xd2\x66\x33\x96\xf0\x2c\x63\xa0\x8e\x6b\x7c\x25\x28\x81\xf2\xec\x51\xda\xc8\x86\xf8\x0a\xe3\x25\xb1\x4e\x21\x37\x80\x3a\x7e\x34\x11\x3c\xb3\x13\x8c\x24\x51\x5a\xf5\x7f\x17\x85\xc6\xea\x53\xf4\x4b\x37\x97\xf7\xb6\x39\x76\xdb\x9e\xe7\x77\x27\x1b\x94\xbd\x63\xef\xe4\xb0\x10\xec\x84\xa2\x50\x7d\x0d\xb2\xb6\xbf\x62\xd9\x01\xc0\x8d\x18\x8a\x10\x3e\x46\x78\xf1\x47\x0f\x85\x74\x2c\x1b\xd2\xa4\xda\xbf\x7e\x9a\x62\x79\x23\x73\xb3\xda\xa2\xf0\x2e\x9c\x62\x2c\x99\xe7\xc3\x1f\x62\x60\xa6\x51\xa3\x4d\x55\x20\x8a\xa2\x4e\x1c\x8f\xf3\xf6\x67\x35\x66\xfe\x56\x9c\x3d\x0e\xd8\xed\x0b\xf1\x68\xbf\x47\x08\xed\xc7\x91\xc1\xff\x50\xd6\xfd\xd7\x80\x9d\x4f\xc3\x29\x05\x4d\xa1\x08\x71\x73\xfe\x33\x26\x47\xac\x54\x21\x12\x60\x03\xfe\x9b\x95\xab\xd4\xe6\x2a\x9e\xf0\xdd\x09\x45\x6f\xb2\xac\x54\xe4\xbc\xdc\xb5\x7c\xe2\x8e\xc4\x27\x95\xad\x0a\x68\xaa\x26\x15\x87\x54\x41\x00\x12\x3b\xa8\x8e\xd5\xe1\x80\x5d\x51\x87\x58\x81\x0e\x22\x21\x46\x1a\x15\x34\x51\xfd\x48\xc5\x3f\x1d\x23\x8b\xe2\x4a\x16\x59\x90\x3b\xc4\xd7\xfe\xf6\xdb\xc5\x2a\xc5\xb8\x8d\xb0\x0f\xba\xc8\xd2\x07\x99\x86\x62\x46\xae\x9f\xc3\xe7\xce\xd4\x7d\x78\x90\xe9\x5a\xb3\xa7\xf2\xa0\x30\x7b\x06\xd3\xaf\xf0\xec\x0c\x3b\x80\xfe\x0e\xd9\x99\x84\x20\x34\xf8\x17\x56\x54\x9e\x0e\x7d\x88\x9e\x13\xd9\x02\xe1\xe0\x52\xbb\x33\xe6\x33\x9b\x20\xfc\xd8\x97\x61\xc3\x00\x42\x39\x2d\x33\xcb\x95\x00\xe1\xfd\x0f\xc2\x67\x33\xf1\x78\xe9\xd4\x25\x63\x85\xb2\x1d\x79\xee\xe2\x8f\xea\x78\x53\x20\x05\xc9\x84\xe5\xa1\xad\xdf\x95\xc8\x24\xc1\xe1\xa9\x85\x34\x7f\xb4\x79\x1d\x51\x64\xbd\x4f\xe2\x07\xd8\x16\x91\xb0\x21\x37\x22\x65\x79\x56\x8e\x65\x17\xb9\x24\x2d\xe4\xbd\x58\x15\xd6\x74\x0a\x8d\xbc\x54\x12\x07\x92\xe3\xe7\xbe\x82\x68\x28\x80\x44\x6f\xca\xfa\x4c\xed\xeb\x67\xed\x71\x41\xcb\x68\x90\x14\x60\x1f\x8d\x13\x74\xdd\xbe\xe3\x6e\x33\x9c\xf6\x06\x74\xa0\x22\xc5\x4d\x42\xf0\xd4\x8b\x53\x97\xed\xfb\xb9\xd6\x6d\x59\xc8\x17\xce\x1e\x6d\xc1\x83\xdc\xe7\x0b\x26\xcb\x11\xe3\x6a\x51\x81\x43\x5d\x33\x85\xff\xd9\x5e\x86\x5d\xc1\x6c\xae\xe7\x5e\x7c\xcb\xc2\x57\x98\xaa\x12\x95\x40\x04\x3f\x39\x82\x50\x91\xa9\x32\xaa\x2d\x6e\x04\x38\x5a\xef\x45\x4d\xcb\xb4\x9a\xe5\xdc\x04\xb3\x36\xb2\x08\x3a\xa2\xc6\x17\xcf\x26\x50\x23\x08\xb3\x96\x23\xa6\x74\x63\x94\x38\x69\x9a\x52\x66\x16\x4c\xc4\xa0\x23\x14\xa2\xf8\xb5\xf2\x8d\x7a\x08\xf0\x0f\xff\x4d\xa8\xfe\xdc\x98\x28\x1d\xb0\x3e\xab\xf5\x6d\x6e\xc4\xd0\x56\x19\xdd\xba\x70\xfc\x35\xf8\xfc\xaf\x9e\x61\xb7\xf0\xf5\x3d\x33\xdf\x33\xf3\x3d\x33\xff\x33\x31\xf3\x0f\x3a\xe1\xd9\x26\x01\x23\x7b\x8e\xfe\x25\x39\x3a\x60\x9f\x6c\x64\x30\xc1\x4f\x3d\x27\xf7\x76\x10\x62\x3e\xfe\x57\x3e\x86\x98\x89\x4f\x0a\xcb\xa5\x83\xd5\x44\x23\x52\x49\xca\x2d\x37\x02\x70\x46\xe1\x37\xfa\xf7\xe7\xcf\xe7\xa7\x51\x94\x15\x54\x5f\xa9\x8f\x65\x58\xaa\x31\x67\x60\x99\x25\x45\x17\x9b\x19\x52\xa2\x69\xad\x11\x77\x44\x5f\x41\x7d\x7b\xb4\x06\x79\x6f\x1c\xeb\xdf\x96\xaf\x5e\x7d\x57\xd9\x7c\xe3\xe6\xee\x3d\xf1\x8b\x6b\xad\xe3\x08\x28\x92\xde\xb4\xbf\x3e\x97\x8d\x68\xba\x62\x31\x40\xf6\xfa\x62\x2a\x08\x44\x82\xe2\x88\x50\xdd\x01\xf0\xd3\xcf\x9c\xda\x3f\x93\xbd\xfa\xfd\xc9\x59\xa5\x41\x9e\x4a\x73\xb7\xc9\xe9\xad\x7a\x60\xae\x8b\x4a\x10\x91\x8a\xbd\xd7\x7a\x9c\x09\x76\xa2\xa7\x79\x69\x05\x3b\x53\x63\xa9\xc4\xe0\x56\xdd\xaa\x63\xf6\xfe\xe4\x8c\x5d\x9e\xa2\x26\x0f\x28\x4d\x6c\x28\x46\x8e\x01\xc0\xf9\xa7\x9c\x07\xde\x44\x97\x4a\xdd\x10\xf0\x0d\x64\xa0\x0d\x45\xad\xc6\x90\xeb\x33\x2f\x34\x70\x15\x77\x11\x7e\x77\x17\x84\xa3\x28\x42\x71\x60\x03\x16\x86\xee\x66\x7c\x44\xa4\x4f\x9e\xf6\xa1\xe9\x94\xab\x19\x06\xe5\x0f\xa8\x9b\xaf\xca\x0c\x49\xc7\x8e\x38\x09\x88\x82\x33\x5d\xb2\x07\xae\x6c\x24\xfa\xdc\xc8\xfc\x2d\x3b\x53\xa6\x2c\xa2\x8c\xe5\xa6\x14\x24\xcd\x1a\x82\x10\xd4\x4b\x34\x6f\x77\x6d\xb6\x5c\x17\x08\x89\x40\x7f\x8f\x88\xbb\x7d\x33\x4e\x44\x65\xf6\x70\x47\x67\x03\x0c\x1b\x5e\x58\xd9\x21\x8f\x07\x8a\x48\xfb\xb6\xfe\x50\xae\xd8\x87\xf3\x11\xd3\x18\x55\x89\xee\x95\xb4\x4a\x99\x0c\xe9\x74\xc3\x99\xef\x05\xf1\xb4\x2a\x5a\xbf\xd3\xe1\xc9\x80\x34\x63\x93\xf2\xd7\xe8\xcd\x40\x02\xe2\x96\x55\x73\xe2\x86\xdd\xbe\x78\xed\x36\xe2\x5a\x4e\x65\xc6\x8b\x6c\xd6\x8b\x67\x59\xb5\x74\xbc\xd4\x77\xe9\x26\x73\xfb\xe2\xd5\xed\x0b\x76\xa0\x0b\xe8\xdd\x5d\x9b\x4c\xf0\x7b\x41\x18\xff\x70\x7c\x67\x28\x02\x1c\x3e\xf5\x96\xed\xa0\xfa\x76\xda\xe1\x41\xfa\x8c\x6c\x3a\x56\x5f\x2e\x4f\xeb\xac\xed\xe4\x6c\xc0\x3e\x93\x20\x42\xec\x1c\x29\x0e\x2c\xca\xb7\xf8\xf2\x07\xb8\xa3\x44\xbd\x9d\x9c\x3c\x2f\x86\x3f\xd7\xd2\xe7\x65\xf1\x8e\x72\x1f\x9d\x83\x6d\xe5\xbe\xf7\xd2\x5e\x89\x5c\x6f\xf2\x72\xc6\xdc\x01\xca\xba\x53\xae\x7d\x85\x41\x18\x67\xd8\x73\x36\x96\x18\x48\x6b\x24\xe6\x7b\xbe\xa7\x7f\xaf\x23\xcc\xb5\x7c\xe5\x9b\xb7\xbc\x52\xee\xa5\x3e\x3d\xbb\xbc\x3a\x3b\x39\xbe\x39\x3b\x7d\xcb\x68\xb1\x58\x91\xbf\x0a\x93\xb8\xd1\x95\xb5\xa1\x06\x68\x42\x40\x88\x7e\xe2\x3d\xe2\x69\x5c\xb1\x33\xc7\x2d\x4e\x65\x81\xb1\xfa\x5c\xb1\x73\x25\x2b\xec\x11\x2a\x04\x98\x69\x15\x62\xfd\x73\x4d\xc6\x8b\xb1\x44\xc4\x11\x45\x9d\x41\xb4\x74\xad\x37\xb8\xad\x00\x65\xdd\x92\xd6\xbd\x58\x5a\xf5\x3e\xed\x55\x8c\x1e\x1d\x32\x95\x0b\x9c\x70\x0e\x9d\x4c\x02\xf5\xaf\x29\x0a\x49\x13\x88\x0d\x12\xe1\xe5\x60\xf0\x72\xc0\x1c\xc7\x7f\x39\x78\xe9\xdf\xd6\x2c\x24\xe9\xd2\x51\xa8\x3a\xf5\x99\xb9\xee\xc7\xe6\xbe\xb3\x4f\x1e\x3c\xb0\xe7\x1e\xcc\x46\xbe\xaf\x77\xb9\xc8\x0a\xae\xa2\xa5\x97\x20\x36\x95\xc3\x78\x50\x3a\x77\x50\xd8\x1e\x17\xb6\x59\x14\x3f\x0e\xb2\x92\xe5\x84\xd9\x7c\xbe\xfa\xb0\xc9\x40\x78\xe4\x3a\x44\x3d\x20\x0a\xd2\x24\x84\x2b\x54\xe8\x79\xbe\x93\x1d\x67\x2e\x47\x44\xd8\x9a\xc3\x60\xc2\xf1\xc8\xac\xed\x22\xaa\x71\x9b\xd0\x4d\xb8\x37\xdc\x42\xa0\x95\x47\x4a\x18\x09\x4b\x21\x58\x1c\x11\x6d\xaa\x2f\x9e\x43\x5b\x14\x2d\x25\xbe\xdb\x16\x15\xca\x98\x81\xd2\x48\x76\xc6\x10\x1c\x0b\x2f\x36\x2c\x2d\x15\x96\xcb\xcc\x44\xab\xb0\x3a\xd7\x99\x1e\xcf\x5a\x9f\x26\x41\x72\x95\x0f\xed\xa4\x25\x1f\x8d\xfd\xe7\x47\x57\x67\xc7\xa7\x1f\xcf\x06\xd3\xf4\x9b\x04\xc2\x3d\xfa\xbc\x9f\xeb\x0d\x34\x49\x11\x2f\x00\x2b\x3a\xac\xb1\x62\xf8\x20\x36\xaf\xe2\x1f\xa8\x72\x2a\x19\x52\xaa\x35\xfb\xc1\x22\xfc\x29\x28\x8a\xe2\xc1\x4e\x90\x67\xf8\x11\xaa\x01\xd2\xe8\x3d\x0f\xea\x55\x35\x1c\xe9\x54\x43\x5d\xaa\x94\x5d\xfe\x7a\xf2\x85\x49\x9a\xaf\x46\x3f\x02\x38\x1a\x22\x5b\xf3\x60\x33\xf7\xfd\x17\x5e\xc2\x2e\xc4\xb4\xb9\x75\xa1\x76\xe5\x75\x5b\x60\xef\x95\x2a\x9b\x8b\x62\x2a\x3d\x52\x5b\x37\xf9\x6d\xb7\xe4\xd8\x58\x74\x13\x2d\xf5\x6f\xf1\x0c\xec\x8c\xd7\xee\x39\xec\x1f\x98\xc3\xee\xd9\xc1\x9e\x1d\xec\x84\x1d\xfc\x7c\x73\x73\xf9\x5e\xd8\x95\x31\xbd\xb5\x76\x71\x58\xaf\xf2\xd0\x2e\xe8\x6a\xd5\x8a\xb9\xa6\xec\xbd\xb0\x55\xcd\xaa\xd5\x17\xb7\x43\x2c\xf4\xcf\xda\xf8\xab\xa9\x19\xe1\x58\x32\xab\x7b\x73\x0f\x79\xae\x53\x76\x7e\x39\x60\xff\xa5\x4b\xa7\xb4\x0d\xf9\x30\x9b\x05\xbb\x94\x11\x96\xdd\x42\x5f\xb7\x2f\x9c\x86\xe0\x36\xfa\x67\xc1\x53\x51\x18\x08\xad\x15\x7c\xa3\x50\xee\xaa\x97\x55\xa2\x7a\x69\xac\x9e\xb2\x09\x0d\x59\x2f\xec\x40\x04\x1b\x20\x09\x01\x86\x16\x72\xf1\x30\xf4\x96\xbe\xd9\x31\x96\x94\x1b\x0a\xa7\xbe\x55\xdc\x5c\x57\x86\xe4\x54\x61\xc4\xbf\x23\xef\x06\x2c\x15\xa1\x42\x36\xc4\xdf\xde\x2e\x8f\xa3\xb4\x32\x1b\xb8\xab\x65\x8b\xc1\xb9\xb2\x9f\x8a\x6b\x1c\x6e\x99\x37\x12\x9d\x39\x45\x0c\x62\x03\xe7\xae\xb0\xf3\xeb\x8b\xac\xfb\x94\x12\xe3\x23\xfb\xfc\xa6\x73\x35\x16\xec\xb5\xfb\xf2\xcd\x0f\x3f\x7c\xf7\xc3\x80\x5d\xc4\xc8\xe6\x5c\xb1\xf3\xe3\x8b\xe3\x7f\x5e\xff\x7a\x02\x05\x5b\x16\xe5\x3c\x27\x13\xb1\xd2\xe6\x77\x0d\x8d\xe2\xf8\x04\xba\x47\x11\xfe\x92\xbb\x89\x75\xee\xe8\x76\x68\xc7\xba\x63\x1e\x81\x91\x6f\xc5\xba\xe8\xe4\x2e\xe7\x5b\xd8\xa8\x96\x8b\x90\xc4\xd7\x30\x46\xcb\x93\xc4\xbf\x72\x80\x84\x5e\xcd\xb8\x3a\xe0\xdc\xdf\x38\xaa\xe2\x40\xa8\x99\xcc\x57\x3e\xd9\x55\x15\xdb\xb9\xa1\xf0\xa3\x9d\xee\x5d\x63\xf6\x34\xaf\xad\x37\x93\xab\x34\x5b\xbe\x93\xd8\x22\x24\x30\x73\x6f\xe2\x48\xfc\x0b\x44\x39\x0c\xde\x33\x0a\x38\x63\x1d\x64\xc6\x47\x91\x6c\x8e\x15\x50\xe5\xc3\x2c\x0d\x5f\x68\x71\x69\x83\x47\x4a\x3b\x1e\x0f\x8e\xa6\xca\x89\x5d\xf9\x86\x5c\xef\xe1\xdf\x28\xc9\xf9\xa5\x6a\x58\xde\x02\x66\xe0\x9e\xa3\xf7\x62\x73\xf4\xa4\xba\x50\xb0\x6c\x61\xd4\xb2\x31\x49\x37\xbe\x7f\xcc\x20\xc6\x42\x14\x23\x5d\x4c\x17\xa1\x1b\x24\xf9\xb5\x4e\xee\xb6\x98\xef\xcd\xc9\x25\xf6\xd0\x61\xc6\xa1\x6d\x34\xe7\x4a\x88\x41\x60\x02\x88\x20\x63\x37\x27\x97\xc0\xd3\x07\xf0\x5f\x13\xad\xef\x30\x55\x67\x26\x6c\xe5\x37\xdc\xa1\xaf\xda\x09\x25\xc7\x99\xe4\xcb\x92\x41\x43\x1b\x36\xd1\x59\x8a\xd4\x9e\xf2\x3c\x77\x33\x1e\x0a\xfb\x20\x84\x62\xe7\x97\x70\xd6\x1c\x23\xc7\x48\x7a\xcc\x00\x25\x73\x2b\x56\xd4\xaa\xca\x0d\x29\x5b\x99\x4a\xb1\x3a\xa2\xfb\x10\x93\x98\x3a\x0a\x6e\x30\x4a\x07\xe9\x0d\x67\xe3\x0d\x94\x7c\xa8\xef\x05\x4c\x36\x4d\x0b\x61\x3a\xca\x35\x3b\x0c\xf5\x97\x73\xd8\x51\x4d\xf0\x95\x30\x37\x7f\x5f\xc1\x3b\x0c\x50\xba\x40\xb7\xe7\xca\xba\x73\xc4\x73\xd2\xd3\x26\x2a\x3b\x4c\xd9\x49\x67\x70\x4e\x3c\x76\x35\x69\xe7\x3f\x87\x1f\x9f\x43\x3b\xef\x2a\x23\xfa\xc8\x92\x60\xb5\x27\x51\x0a\x45\x13\x0a\xb0\xca\x49\xbd\xe5\xcc\xcc\xa6\x99\x54\x77\x90\x4d\x47\xfa\xa1\xe3\xaa\x64\x91\x50\x77\x5e\xb2\x29\x04\xcf\x16\x2b\xbe\xeb\x38\xee\xdc\x44\xf2\x39\x78\xd4\x4e\x78\xc5\x1d\x91\x5c\xdc\x25\xf1\xbb\x4e\x7e\xc8\xb9\x72\xe8\xcf\xbc\x8a\xae\xa2\xdd\x2e\xb4\xd2\xf3\xeb\x93\xeb\xf3\xb5\x9d\x01\x4b\xbe\xaa\x05\x16\x2b\x06\x2d\xc1\x8d\x3d\xa0\xff\x5e\x37\x5d\xaf\xfe\xd5\xd3\xc4\xc7\x24\x13\x9e\x1f\x97\x76\x72\x2a\x4d\xa2\xef\xc5\x4a\x6f\x93\xaf\xc7\xe8\x67\x23\x61\x8e\xe1\x6b\x76\xf2\xf3\xf1\x25\xe3\xa5\x9d\x08\x65\xa9\x90\xe2\x06\xd1\x9f\x7e\x56\xd7\x58\x03\x63\xa3\x39\xd1\xb7\x3b\x9a\xd1\x3e\x8e\x68\xfb\x38\x22\x69\x12\x23\x37\x40\xc1\xc1\x92\xd6\xba\x4b\x2d\x0d\x32\x7d\xe0\x09\x38\xf7\x1f\x82\xb6\x0b\x5c\xbd\xd6\x57\x2d\xaa\x16\x0d\x79\x30\xc5\x73\x65\x45\x31\xe2\x89\x68\xa4\xc1\x21\xb6\x15\xf6\x2d\x43\x1b\x88\xa6\x4c\x28\xc1\xd0\x6d\x10\xcf\x30\xc0\xf2\x2d\xfe\x12\xc5\x1d\x51\xe0\xa5\x17\x93\x12\xca\x77\xae\xb2\xbf\x51\x51\xde\x08\x44\x51\xfe\x6b\x65\x6c\x15\x4e\x11\xe7\xff\x9f\x25\xcf\x70\xdd\x17\x9b\xf9\xa7\xeb\x94\x5a\x31\xb4\xdf\x0f\x4f\xb3\x8b\x60\xfd\xc6\xb2\xde\x8a\x66\x05\xe8\x83\x28\x0f\xc7\x2f\xd1\x4b\x32\xbf\xbd\x64\x07\x36\xc9\x0f\x9f\x24\x0f\x17\x27\x40\x34\xfa\x10\x12\x70\x77\x0e\x0e\x8c\x27\x64\x95\x28\x5b\x9b\xcd\x25\x7c\xc2\x3e\x48\x43\xa5\xb5\xe9\x0f\xd2\x30\x81\x39\x9f\x1c\x24\x72\x5d\x30\x99\xff\xd3\x89\x93\x6f\x91\x0f\x46\x36\x23\x69\xb0\x58\x22\x06\x86\xfb\x10\xb9\x03\x3b\xcb\x65\xc2\xb3\x6c\x16\x34\x11\xc3\xfe\xf2\xe6\x15\xbc\x27\xdf\x7d\xfb\xe6\x55\x93\xd6\x4f\x2f\x31\x7f\xa9\x40\xab\xaf\x3e\xe1\x0c\xde\x31\xfc\x00\x6b\x48\xe0\x8d\xc1\x23\x02\xd0\x0f\x81\xdd\x35\x5e\xbb\x76\x29\x11\x3e\xc4\x93\xb4\xfe\x61\xfc\xd2\xe7\x70\x5b\x09\xb2\xb6\xfa\x06\x17\x6d\xb0\x8d\x9d\xc8\x99\x1b\x68\x55\x7b\x09\x72\x2f\x41\xee\x25\xc8\xbd\x04\xb9\x97\x20\xf7\x12\xe4\xce\x25\xc8\x7c\x2f\x41\xfe\x39\x24\xc8\xb5\xb3\x5c\xf7\x62\x64\x87\x53\xf7\x15\x8a\x91\xbf\x88\xd9\x8d\x6e\xd4\xa7\x6c\x52\xf8\x23\xcf\x23\x1c\xdd\x3b\x31\xc3\xe4\x3f\x30\x63\xbb\xc7\x49\xaa\x90\x2f\xd1\x41\xb0\xc3\x42\x5d\xab\x5c\xc1\x34\x0a\xe5\x0b\x6e\x52\xfd\x41\xa7\xab\x98\x7f\x95\x99\xed\x1a\xb3\xa1\xc4\x6b\x57\x1a\xca\x5f\x95\xe8\x4a\xea\x55\x01\x0d\x04\x22\xec\xdd\x55\x78\x02\x5e\xfd\xf8\xe3\x8f\x8b\xea\x7b\xf9\xd4\x01\x3c\x49\x1f\xdd\x30\x71\x59\x2f\x9f\xa7\xed\xab\x7a\x21\xc2\xe0\x28\x93\x09\x65\x26\xe0\x69\xf4\x89\xfb\xf0\x30\xf1\xd1\x08\xeb\xbd\x50\x65\x44\x37\xf7\x1e\xcb\xe4\x9d\x60\x23\xf3\xbe\xd0\x65\x1e\xca\xec\xfa\xea\xc8\x4e\xae\x1f\x0a\xea\xac\x5a\xab\x11\x4d\xc2\xee\xe0\x15\x59\xed\x28\xb9\x81\x89\x65\x1c\x52\xda\xf3\xc8\x6b\xe2\xeb\x9c\x4e\x79\x8e\x49\xa1\x70\x06\x06\xec\x23\x9f\x31\x02\x4d\xe6\x8a\xf1\xa1\xd1\x59\x69\x43\x20\x20\xfd\x18\x67\x53\x40\xa7\x22\x43\x0d\x04\x93\x3b\x7c\xb3\x28\xeb\x03\xcb\x8d\xc0\x99\x86\x36\xbb\xbd\xc3\xee\x98\xef\x3a\xe2\xed\x83\x1c\x89\x64\x96\x64\xcb\x74\xbd\xd0\x26\x0e\x1a\x49\xa2\xf3\x83\x7e\xd7\xa0\xa0\x91\x2c\x4f\x4e\x7c\xcb\xef\xe0\x14\x16\xc2\xe4\x5a\x19\x1f\xb0\xe6\xeb\x75\x86\xbe\x09\xe7\x1d\xd2\x1c\x31\xa3\xc7\xd8\x6b\x20\xad\x3b\x7a\x97\x85\xb8\xb6\x3a\x8f\xda\x4f\x30\x02\xc2\xf4\x6a\xce\xb8\x66\x41\x62\x28\x04\x69\xa2\x72\xcd\xde\xb5\x6d\xa8\xa6\x86\x15\x3d\x56\xaa\x4c\x18\xd3\xf8\x92\x8a\x33\x43\x55\x52\xd3\xc3\xea\xc0\x32\x99\xb0\x84\x53\x09\x52\x9a\x00\x95\x45\x2a\x6a\xb8\xa3\x8b\xbd\x7e\x7e\x55\x9b\x87\x23\x50\x6c\xc8\xb2\xa7\xb3\xa2\x9d\x5b\x27\xcf\x32\x91\x32\x39\x9d\x8a\x54\x72\x2b\xb2\x19\x95\x0a\xe7\xf5\x1a\xc8\x24\xa2\x07\x9f\xa2\x5f\x1f\x11\xc0\x36\x6b\x5d\xfb\xc2\xaa\xa1\x40\x36\x95\xbe\x66\x3c\x49\x74\xa8\x62\x87\x70\xe5\x78\x47\x72\xa8\x58\x3b\xc0\x7c\xa6\xf5\xb6\x6d\xa2\xf5\x5d\xd8\xb1\x76\x28\xfc\x65\xea\x59\x55\xc7\xb7\xfa\xcf\x7e\x38\x4b\x7d\x08\x67\x38\xfa\xa6\xfa\x09\xfe\xb0\x80\x1d\xe1\x49\x7c\xda\xfd\xa3\xd3\xde\xbe\x7b\x94\x37\xcf\x17\x6e\x47\x5a\xc2\x2d\xe3\x8a\x1d\x5f\x9e\x87\xd0\x13\x5d\x23\x39\x55\x3b\xa4\x1a\xcb\x99\xbc\x17\x4a\x18\xa7\xc7\xf2\xc2\x96\x39\x46\x7c\xf9\x8a\xbc\x3d\x96\x17\x42\x4c\x61\x7a\xbd\x2a\x2b\x96\xb2\x15\xe1\x8f\xc2\x26\x28\x22\x45\xb7\x02\x78\x28\x4d\xbf\xb9\xc1\x49\xc1\xcd\x04\x6b\xe5\x8a\x47\xe9\xcb\x80\xc7\x25\x7e\xa2\xb2\xbd\xd2\x34\x40\x40\x68\x10\x2f\x94\xa5\x8d\x9a\xd5\xe3\xc2\x29\x5e\xb9\x28\xa4\x4e\x19\xc0\x73\xa7\xfa\xc1\xbd\x57\x63\xa9\x8c\x27\x1f\xf0\x18\xa2\xb3\xdb\x6e\x81\x49\x32\x88\x89\x9b\x0e\xa8\xf4\x62\x16\xc5\x3b\xe8\xd2\x26\xba\x4a\x10\xa6\x49\x34\x6f\x06\x3c\xc6\x40\xdd\x12\xe4\xbb\xb0\x2f\x5e\xb0\xb1\x2b\xe7\xbc\x83\x1b\xe2\x08\x5b\xfd\xb6\x90\x38\x80\x1a\x03\x50\x51\xcf\x7e\xa5\xe6\x1e\xbd\xb5\x5f\xae\xa9\xb4\x57\x5c\x8d\x97\x3f\x5d\xbe\x91\x13\x4d\x4c\x75\x76\x4b\x2c\xf8\x2d\xa1\x9c\x82\x3b\x6f\x8e\x0a\xec\x4e\xaa\xd4\x91\x3a\x4e\xfc\xe6\x2c\x64\x49\xed\x8b\x90\x7c\xd5\x45\x48\xf6\x25\x3c\xfe\x2c\x25\x3c\xfe\xe8\x45\xf1\x9c\xca\xb6\xb9\xa1\x24\xf0\xac\x6b\xd7\xcd\x52\x02\xe4\x22\xa9\xb1\x0f\x62\x68\x42\x81\x81\xa8\x9d\xa9\xef\x92\x0c\x6e\xa1\x7d\xae\xd2\x3e\x02\xa4\xaf\xc1\xde\xc3\xdf\x9f\xaa\x4c\x49\xf4\x3e\xd4\x7e\xdf\xb6\x4e\x49\xd5\xef\xb9\x15\xd3\x4e\x6f\xcf\x39\xa2\x00\xfa\x48\xed\xa9\x54\x47\x53\xfe\x18\xbf\x41\x54\xb3\x61\xd6\x80\x75\x9c\x72\x9b\x80\x94\xa4\xe0\x69\xea\x82\x6a\x80\x66\x81\xcd\xc0\x01\xd7\xbe\xb1\x03\x3f\xdd\xc1\x7f\x96\x5c\x59\x69\x67\x9d\x11\x05\xc9\x2a\x59\x2d\x98\x74\x5e\x90\x76\x90\x26\x64\x19\x89\x88\x02\x09\x4f\x32\x7a\x9f\xb1\xa1\xe3\xce\x88\xab\xb3\x01\x02\x21\x51\xec\x0a\xf9\xf1\x1f\x86\x70\x34\x5f\x9f\xd3\x98\x2e\x23\xa7\xd7\x00\x3a\x10\xb4\xa8\xba\xdd\x9c\xa4\x53\xfe\xf8\xf5\xd3\xf1\x63\xb8\x81\x89\x56\xc6\x16\x5c\x02\xf0\x0a\x59\xe9\x40\x12\x6c\x52\x6a\x33\x52\x20\x1f\x40\xba\x5e\x39\xe9\xed\x0f\x41\x9b\xb9\x59\xb7\x40\x8f\x38\x9a\xa4\x15\x89\xc0\xa6\x39\xe1\xf7\x02\x2a\xeb\xe3\x39\xc2\x7a\x23\xee\x92\xa2\xa5\xb1\x10\x08\xdb\x1e\xaa\x64\x60\xad\x7d\x6c\x92\xca\x7b\x99\x0a\xa2\x7b\x38\x87\x64\x9b\xe1\x00\xb1\x22\xfe\x55\xf2\xcc\x4b\xb1\x42\x95\x53\xac\xf8\x82\x47\xfb\x6f\x0d\x51\xd9\x67\x04\x3c\xb2\x61\x59\x18\x1b\x9c\x8f\xf5\x79\x6f\xb2\xab\x72\x4e\xbc\xff\x0a\x37\x51\xaa\x67\x38\xe0\x6b\x54\xe3\xac\xbf\x6d\x30\x0b\xdc\x77\x0e\xd0\x38\x20\x0a\xef\xd8\xeb\xe1\xbe\xdf\xde\x44\xea\xdf\xf1\x15\x05\x2c\xeb\x0d\xeb\x55\x2c\x23\x45\x14\xfc\x8a\x7b\x55\xf2\xab\x56\x25\xbb\xd4\xb3\x74\x52\x9d\x59\xb8\xcb\x48\xcf\x8d\x2c\x95\x23\x39\x2e\xb1\x44\xf9\x11\x5a\x80\xfa\x09\x02\x6a\xf6\xc3\x8a\xfa\xc1\xae\x72\xb4\xdb\x04\xe8\x48\x6a\x5e\xc8\x67\xf6\xd5\x34\xff\x8d\x54\xf1\x7d\x35\x4d\xfc\xfb\xd3\xab\xa9\xbb\x2f\xa9\xd9\xb0\x24\x74\x79\xb9\x6a\x16\x85\xc5\xaa\x6a\x60\x44\x91\x9e\xba\x86\x96\x8a\x66\x8a\x15\x0c\xe2\x03\xda\x32\xa4\xb7\x6c\x34\x59\x2c\x68\xd5\xc4\x66\x2b\xe9\x32\x98\x3e\x9e\x8a\x2f\x82\xd6\xbf\x36\x6f\xec\x78\x28\x89\x30\x5b\x8b\x2c\x9a\xa7\x3f\xf1\x8c\xab\x44\x14\xe7\x6a\x5c\x08\xb3\x2c\x8d\xb6\xa5\x75\x53\x86\xae\xea\xdf\x71\x96\x69\x9e\xf6\x87\xd4\x9e\x49\xfa\x00\xb8\xeb\x5b\x66\x0b\x3e\x1a\xc9\x04\xc4\x01\x95\x46\x01\x7f\x46\x14\xf7\x32\x11\x35\x7c\x72\x0c\x0d\xe5\xaa\xde\xc9\x1a\x79\xb6\x1d\xd3\x6c\x21\xf8\x91\xa2\x88\x96\xcc\x3e\x3a\x45\xa7\x17\xd7\x04\xe1\x12\x45\xea\x1c\xff\x76\x5d\xff\xbc\x59\x90\xab\x93\x64\xd1\x21\xcf\x76\xed\xe9\x9e\x5f\xce\xcf\xf6\xfd\xc9\x99\x53\x98\x3e\xe5\x42\x5d\x5b\x9e\xdc\x6d\x38\xf5\x55\x76\xbc\x75\x8e\xe2\x35\x1a\x09\xbb\x9d\x44\x6c\xdc\xf9\x20\x76\x38\x35\x72\xee\x26\xb4\xd2\x9f\x68\x5c\x09\x76\x51\xe1\x84\xc6\x06\xf8\xc3\x5d\x9f\x09\xbb\x59\xff\x12\xd8\x89\x30\xa2\xd1\xfd\xae\x59\x58\x0b\x53\xd8\x9e\x8f\xad\x7d\x1c\x5a\xa2\x00\x97\x1d\x88\xf9\xe6\x15\xec\xa1\x50\xba\x1c\x4f\x9a\x35\x2c\x32\x81\xa1\xe7\x99\x4e\xb8\x15\x14\xb4\x44\xdf\xa6\xa1\x4c\x45\x55\xf3\xb4\x0e\x75\xd8\xe1\x1c\x75\xe0\x3c\x71\x81\x03\x1a\xdc\xae\xad\x0a\xe8\x7b\x77\x5c\xc4\xc3\x11\x95\x61\xed\x3f\x48\x3b\xe9\xd3\x8b\x77\x04\x33\x3e\xfa\x06\xe1\x06\x9e\xeb\x2e\x27\x3c\xeb\x98\x20\x02\x6d\xe3\xdb\x8b\x09\xec\xd9\xac\x1f\x8a\x13\x51\xcc\x3c\x86\x4e\x29\x9d\x0a\xe6\xae\x8d\x13\x08\xd9\xc1\x4f\xc2\x72\x36\x12\xdc\x89\x7e\x87\x4f\x04\x9e\x1f\x01\xb3\x57\x36\x08\x48\x56\x79\x98\x08\xf2\xd3\x87\xbc\x7a\xf0\xb7\xb3\x54\xb8\xfb\xfb\xec\xc5\x84\x50\x35\x42\x98\x78\x5e\x5a\xdd\x37\x22\x83\x9a\x07\x30\x3c\x8e\xbe\x75\x05\xd0\x8e\x71\x76\xa3\x32\x43\xe0\x00\x6f\x00\xa0\x80\x44\x82\x25\x70\xfb\x08\x04\xa5\x08\x41\x1f\x28\x1b\x03\x18\x14\x35\x6a\xb2\x83\x54\x9a\xbb\x5e\x85\x47\xdf\x63\x83\xc1\x60\xd7\x01\xb0\x3b\x89\x96\xbb\x78\x77\xbd\x51\x7e\xd4\xc5\xbb\xeb\xce\x18\x91\xae\xed\xd7\x84\x3f\xe1\xe1\xca\xc5\x63\xfd\x5c\xbb\x79\x12\x52\xd9\xb6\xc9\x32\x6a\xb4\x81\xae\xbb\x8b\xe0\x79\xb7\x06\x5c\xd7\xce\xb1\x12\x77\xb2\xfe\x15\x21\xf9\xc5\xea\xf2\x6c\x68\x17\xf1\x4a\x94\x97\x9b\xdd\xa1\x99\xc7\x73\xf9\x22\x3b\xda\xf1\xfa\xd2\x62\x77\x1d\xfe\xda\x06\xc9\xdc\xf6\x96\x23\x0a\x32\x80\xde\xa7\x88\xb6\x95\x68\x02\x26\x81\x9f\xa1\x34\x84\xa3\xe3\xb4\xcc\xac\xcc\xb3\x48\xa0\x00\x49\x52\x53\x5c\xf8\xde\xec\xfb\x55\x9b\x7d\xf7\x66\xcb\x3f\x8b\xd9\xf2\xdf\x3a\x82\x28\x70\xac\xf5\x03\x88\x86\x62\xc2\xef\xa5\x0e\x30\x9e\x55\xec\xe3\x97\x0b\x25\x8a\xc9\xd2\xb4\x20\x6c\x4a\x18\xec\x67\xc5\xd1\xb0\xa5\x89\x52\x1e\xe0\x0a\x96\x45\x01\x77\x30\x32\x43\x7c\x0d\x24\x5a\xa5\xd9\x3d\xb9\x19\xbb\x7a\x48\x77\x6a\xc1\x0e\xdd\x9e\x68\x95\x36\xcb\x72\x2d\x7c\xa8\x43\xe3\xca\x54\xe0\xb1\xcb\xf9\x50\x97\xb8\x7d\xf0\x5c\xaf\xa3\xf6\x3b\xa9\xfd\xa6\xe0\x50\x39\x53\xab\x1b\x39\x6f\x04\xd8\x82\x5f\x41\x77\x0b\x98\xa3\x31\x7c\x3c\x37\x56\x47\x11\xd9\xcc\x8b\x11\x5d\xbe\x6c\xbf\x67\xed\x37\xa4\x0a\x4d\x4f\x49\x7d\x23\x4c\xcf\x9b\xc2\x49\x04\xef\x9c\x88\xdc\x63\x9f\xd5\x9d\xd2\x0f\x9b\x64\x7b\xaf\x11\x61\x50\x15\xac\x80\x1b\xa6\xb3\x4c\x14\xd5\xc4\x9e\x22\xb8\x60\x9e\x66\x3b\x13\x49\x57\x44\x1b\xd4\xda\xd5\xdd\xd0\xe1\xa7\x7d\x98\xc1\xd7\x2d\x6f\xae\x15\x66\x10\x7b\xc1\x2a\x9d\xc4\x3b\xc0\x28\xb1\x24\x83\xc4\xf9\xdd\x1b\x1a\xe1\x34\xed\x38\xd6\xa0\x7a\x33\xd6\x36\x43\xef\x65\xf6\x3f\xa1\xcc\xbe\x0f\x35\xc0\xbf\x3f\xb9\x8c\xb6\xfb\x48\x83\xba\xc6\xd1\xe1\xd1\x22\xc5\x23\x96\xad\xb9\xc5\x8d\xc1\x78\xf7\xf5\xd2\xae\x46\x52\xf1\x4c\xfe\xbe\xba\xe2\xc4\xbb\xd0\x10\x18\x82\x62\x3a\xe7\xff\x2a\x2b\xc6\x8a\x6f\x06\x45\x35\x90\x91\x1f\x8b\x9d\x23\x72\xf7\x94\x2b\xa1\x6c\xe6\x1e\x9c\xa9\xbe\xf7\xec\x17\x2f\x3f\x19\xc1\xba\xb2\x5f\xcb\xcd\x9d\x39\xe2\xe9\x54\x2a\x69\xac\x28\xfa\x09\x96\x51\x59\x9b\xe1\x6e\x8b\x48\xb2\x4a\x79\xe8\xbe\xf9\xab\xfc\xbb\x8d\x96\x6e\x0b\x62\xe7\x1d\x0a\xe7\xab\xf5\xac\x0e\x50\x5f\x5e\xe6\x5b\x75\x1e\xae\xea\xee\x65\x92\x32\xf8\x3d\x97\x19\x1f\x66\x6e\x7f\x8d\x28\xee\x39\x26\xbb\xc3\x34\xc2\xee\xbc\x34\xb5\x69\x36\x83\x67\x77\xf6\x3a\x56\xaa\x4f\xc7\x9d\xad\xfd\x54\x63\x26\x39\xb7\xc9\xa4\x3f\x15\xc5\x58\xf4\x11\x34\xa3\x29\xc5\xb6\x7f\x61\x6c\xc1\xad\x18\xc3\x07\xf0\xf5\x02\x0f\xd2\x84\x9b\x55\xa2\xfa\xa5\x6b\xe3\xc5\x19\x4f\xbf\x2a\xab\x1f\xba\xf0\x2a\x85\x5a\xaa\x59\xef\xe4\x4a\x3d\x99\xaf\xf4\xa2\x0e\x16\x32\x77\x13\x74\x2a\x50\x24\x71\x32\x97\x28\xd0\xff\x29\x15\xfb\xa5\x5a\x15\x3b\xe3\x09\x39\x46\xc1\x6f\x41\xa1\xf5\xf3\x25\xe5\x49\xf6\x4b\x78\x32\x11\xec\x40\x0e\xc4\xc0\xfd\x49\xd8\x24\x3d\xdc\x2b\x00\x5f\xb5\x02\xb0\x17\x5e\xff\x2c\xc2\xeb\xbf\xb7\xc1\x59\xa7\x5b\xda\x9a\x39\x05\x0e\xfc\x61\x2d\xcb\x8e\x02\xab\x8d\xca\x1f\xb5\x01\x1e\x87\x32\x24\x0a\x17\x10\x09\x13\x5b\xd2\x90\x12\x97\xa1\x3c\x38\x39\xdc\x7d\xe4\xc8\x95\x77\x4b\xff\x5b\xdb\x9b\xdd\xf3\xba\x5b\x15\x46\xa7\xe2\x18\x1d\xe2\x2b\xde\x6d\x6a\x55\x19\x97\x63\x19\x36\xe4\x98\xe9\xd4\x49\x88\x73\xe5\x5c\x16\x3f\xc3\x73\x63\xb7\x8d\x7f\x43\x5d\x2f\xa8\x13\xb3\x23\x7b\xea\x45\x34\x02\x84\x35\x05\x9b\xae\x0f\xa9\xed\xb1\xb3\x47\x7c\x88\x11\xff\xee\x5c\xf9\x7f\x3d\xb1\x95\xd5\x93\x69\x6b\x33\xab\xdb\x48\x0a\x37\x5b\x25\xa7\x85\xb0\x34\x78\x86\xe1\x64\x82\xb5\xb9\xf6\x9b\x13\x57\xd2\x32\x73\xcf\x71\x51\x66\x9d\x4c\xaf\x39\x84\x06\x16\x22\x3d\x2d\x1d\x71\xae\x43\x0f\xe7\x63\xa5\xc3\x9f\xcf\x00\x92\x66\xb5\x78\xe6\x8e\x06\x4d\xc2\xc3\xd0\xe0\x00\x50\x57\x91\x7e\x60\xb9\x4e\x41\xa4\x72\x93\x27\x3d\xd7\x70\x2b\xcd\x08\x99\x4c\x58\x8e\x78\x74\x42\x03\x84\xbc\x44\xc0\xb1\xc0\x8a\x7c\x51\xe9\x1e\x1b\x96\x96\x49\x0b\xc2\x44\x32\xd1\xda\x08\xe2\xe3\xd8\xef\xbd\xd4\x20\xb4\xe1\xd9\x29\xd8\xd4\x71\x2b\xe2\x71\x51\xf7\x18\xea\x56\x7d\x26\x0d\x9b\x42\x25\x1e\x4f\x1d\xaf\x2d\xb8\x6e\xaa\x92\xf5\x80\x56\x65\x9c\x74\x32\x75\x9d\x3e\x08\x39\x9e\x58\xd3\x63\x20\xfe\x06\x44\x97\xaa\xdb\xa9\x10\xd6\x30\x9e\x65\x7e\x0a\xf1\x86\x55\xc9\xd2\x86\x1d\x34\x93\xa1\x7b\xfe\xf7\xb9\x7d\x6a\x25\x17\x82\x21\x1d\xf6\x18\x65\x6d\x39\xc9\xad\x9c\x3a\xd2\x49\xeb\xa3\x00\xed\xa4\x80\xd0\x55\x20\x45\x46\x03\xeb\x5a\xc5\x6e\x27\xd8\xf2\x14\x60\xb4\x6e\x5f\xe0\xea\x6e\x5f\x84\xf2\xdc\xe5\xd4\x63\x2a\xc1\x0a\x3d\x50\x00\x3a\x62\x0a\xc4\x5a\x83\x6f\xe1\x97\xb3\x6a\x76\x7f\x0b\x1f\x1d\x98\xc3\x8a\x9c\x13\x39\x9e\x78\x6a\x72\x42\x47\xaa\xef\xc2\x8e\xd5\xdb\x4b\xdf\x6f\x45\xcd\x1b\x51\x6c\x90\x59\x51\xf3\x77\xb5\x6f\x53\xb7\xeb\xb4\xde\x5b\x0f\x01\x98\x7a\x39\x8c\x17\x01\xa9\x85\x43\x52\x3b\x66\x0b\x2e\x15\x50\xdf\x49\xd6\x53\x61\x99\xbb\x9c\xd5\x61\xb3\xd2\xf1\x5d\x2a\x4d\x86\x17\x9c\x44\x70\x7f\xbb\x53\xa6\x15\x9d\x10\x8a\xc3\xdc\x64\x06\x89\xe0\x26\x14\x0f\xa6\x59\xe8\xa9\xc0\xa8\x74\x96\x02\x15\x61\x0a\xc2\x93\x92\x1d\x88\xc1\x78\x10\xe1\x8e\xa1\x4e\x70\xd8\x8b\x04\x17\xe0\x12\x80\x41\x86\xb0\x89\xb6\x00\x9b\x5a\x84\x94\x25\xee\x25\xa1\x50\xba\xce\x41\x25\x71\x6a\x07\xac\x64\xc7\x9a\x79\x27\x77\x72\xdc\xae\x7a\xec\x83\x69\x69\xee\xd9\x27\x19\xb6\x9b\x27\xf9\x67\xc1\x0b\x3b\x14\xdc\x3e\x85\x23\x79\xd9\xa1\xfc\xc0\x8d\x85\xa3\xc4\x1e\x04\x1b\x6b\x5b\x6d\x17\x9a\x5d\xc7\xf2\x5e\xa8\xd8\x69\xda\x7a\xd5\x9e\xde\x19\xde\x6d\x0d\x35\xcf\x33\x62\x6a\x4b\x32\xc7\xba\xe7\x82\x04\x6b\x38\x94\x80\x55\xba\x60\x39\x0b\x9c\xec\xcd\x7c\xa2\x72\xca\x15\x84\x85\x82\x6d\x90\x3e\x62\x52\xa5\x80\x3c\xac\xc6\x8d\x30\x83\x0c\xa6\x19\xa8\xb4\x81\xac\xd6\xee\xc1\x6f\x4c\xeb\x60\x58\x48\x31\x3a\xac\xa1\xe7\xc5\x64\x79\x69\x76\x30\x93\x3f\x6a\x44\x80\x7b\x1d\xff\x68\x11\x00\xc8\x78\x46\x72\xbc\x32\xcc\xbc\xd9\x34\x2e\xe3\xc9\x48\x8a\x89\xa8\x50\x65\x96\x43\xe9\x84\xc4\x52\x01\x56\x53\x0e\x91\xf5\x1f\x88\xc7\x24\x2b\x51\x70\x20\x73\xc1\x61\xf0\x83\x28\xad\xfa\x4a\x76\x89\x61\xc5\xa1\x3e\xf2\xcd\x51\x32\x4f\x7c\x0f\x73\xc4\x58\xc6\x17\xc2\x57\x28\xa9\x87\xb4\x1f\x44\x97\xbe\x40\x95\x2c\x34\xda\xfd\x9b\xe2\x66\xb9\xd2\x07\xd2\x68\xda\xf0\x82\x99\xe6\x15\x1a\xc9\x31\xe3\xc6\xc8\xb1\xc2\x87\xda\x7d\x3f\xb8\xce\x45\x32\x88\xc9\xd2\x45\xc1\x4c\xac\xbc\x5f\x9b\x4d\x2f\x3e\x95\xcb\x36\xe2\x18\xc6\x62\x85\x40\x64\x73\x58\xca\x44\x24\x77\x20\x42\x88\xd4\xaf\x2b\xc8\xaf\x12\x11\x85\xef\x45\x36\x63\xa5\x91\x6a\x3c\x60\xd4\x05\x88\x39\xc1\x82\xe9\xd3\x49\x62\xe7\x01\x29\xfe\x9e\x64\xc7\x9e\x56\x38\x46\x8f\xe9\x7a\x73\xf7\x76\xfc\xe2\x18\xcf\x7b\xad\xab\x46\xa9\xc8\x05\x0a\xcc\x5a\x31\x5f\x64\x85\x5b\x0b\xa8\xa7\x88\x64\x5b\x12\xee\x6f\x63\x00\x42\xc4\x86\x08\x0c\xae\x98\x28\x0a\xbd\xe8\x95\xf1\xdb\xf8\x4c\x7b\xe0\xe7\xd9\x79\x17\x80\xd6\x24\x97\x95\x46\x0c\xd8\x6f\x13\xa1\x16\x1c\x38\xb7\x65\x64\xf9\xed\x55\x3d\x54\xdd\x93\x4f\xd7\x18\x9d\x48\x1e\x0d\x96\xf3\x59\xa6\x39\x20\xb9\x66\x90\x22\x86\xc9\x3f\x3c\xd3\x6a\x8c\xea\x08\x07\x27\x40\x91\xc6\xef\x6a\xc8\xa4\xc4\x5e\x22\x95\x11\xee\x38\x39\x09\xc0\xe7\x00\x9f\x5a\xed\x15\x52\x27\x41\xd2\xd0\xd5\xe4\x7a\x84\x58\xec\xe9\x52\x7d\x28\x55\xd8\xdf\x41\xb5\xd3\x90\x04\x82\xab\x0d\x91\x36\x74\x51\x11\x4a\x19\xf3\xfc\xa0\x87\x09\x37\x6c\x28\x9c\x08\x15\x93\xda\x6a\x2a\x8f\xf4\x9b\x4f\x2d\xfb\xa5\x1c\x8a\x4c\x58\x84\x60\x25\xe8\x64\xa8\xda\x6a\x0b\xc4\xc2\x61\x53\x7e\xd7\x7e\xe2\xe0\x6f\x78\x3d\xe8\x2f\xc3\x19\xe4\xa0\x82\x4a\xaa\xc0\xf1\x21\x53\x1e\x5c\x03\xb5\x99\xf8\x0d\x08\xfe\x23\xe0\x2a\x61\xd1\xed\x27\x17\x4e\xf5\x8a\x27\xf7\xcc\xb5\x89\x21\xc2\xd5\x0c\x60\x84\x33\x31\x45\xf2\xaa\x44\x66\x7e\x4a\xf3\xe7\x89\xf4\x96\xda\xba\x06\x0c\x3a\x45\x77\x85\x4e\x92\xb2\xe8\xa1\x6a\x8f\x65\x7f\x7a\x8d\x1b\x5a\xad\x73\x71\xff\x78\xe8\xa2\xbb\xe1\x36\x6d\x49\x47\xa0\x8e\x10\xc9\xa2\xd3\x0c\x27\x75\x6e\x90\x66\x3f\xf0\x95\x2e\xfc\x7e\xb4\xee\x26\x61\x27\x37\x17\xea\xb4\xae\x54\x8e\x30\x75\xd4\xe7\x1b\x3f\x4c\x64\xe6\xf4\x29\x95\xb8\x01\x02\x8d\x78\x91\x49\x51\x20\xeb\x31\x5e\x17\xd3\x0f\xca\x0f\x5f\x2d\xc7\x7d\x86\xcd\x0e\x2b\x05\x92\x20\xfd\x01\xeb\xb6\xd0\x59\x36\xe4\x09\x94\x09\xae\x71\xca\xd8\xd3\x66\x74\x76\x2f\x18\x4f\x0a\x6d\x4c\x38\xc7\x85\x80\x83\x3b\x60\x1f\xb8\x6d\x4e\xc6\x9f\xcd\x8a\x14\x58\x54\xbc\x85\x1b\x1d\x7a\x8e\xdf\x61\x4e\xe0\x72\x22\xdf\xa0\x1b\x33\xe1\x4e\xae\x44\x40\xc0\xd2\xa0\x52\x99\x6b\x63\xe4\x10\xab\x00\xf8\x99\x83\xd5\x05\x4e\xeb\x70\xc6\x46\xf2\x31\xdc\x93\xc6\x6b\x2b\xd5\xfc\x16\x0f\xd8\x7f\xe9\x12\x92\x1b\x47\x92\x2c\x34\x98\xda\x33\xa7\x0e\xa6\x62\x58\x8e\xc7\x50\x8b\x7c\xc6\x8c\x00\x63\x3b\x0d\x84\x83\x57\xfa\x43\x8d\x21\x64\xda\x9f\x7b\x94\x62\x26\x4e\xeb\xe8\x07\xad\x23\xba\x75\xc1\x98\x06\x8d\x21\x08\xe1\x6f\x8c\xf4\x2a\x2c\xbd\x06\x04\x0e\xef\x99\x2e\x60\xbf\x43\xdf\x10\xd8\x82\x56\x3c\x72\xc3\xe2\x71\xc8\x42\x91\x69\x63\xf9\x50\x66\xd2\xce\xfc\x50\xf8\xad\x15\x8f\xb6\xb9\xff\xf4\x0c\x6f\x62\x91\xce\xe2\x4d\x7d\x9e\xc7\xb1\x2e\x05\xac\xf7\x42\x8e\x78\x96\x31\x7f\x20\x21\x55\x58\x5a\x26\x14\x00\x8d\xbb\xb7\xc8\x4b\x01\xdd\xe4\x07\x7c\xcb\x9a\x2c\x7e\x28\x12\x3d\x25\x91\xb0\x4d\x62\xa9\x52\x94\x61\x5e\xa9\x40\x88\x6f\x11\x55\x64\x68\x76\x29\x0d\x6c\x67\x26\xe0\x26\x83\x95\x30\xb1\x54\x2e\x44\x86\x58\x96\x6c\xc6\xa4\xe3\xad\x53\xe1\x6b\xf5\x71\xf6\xfa\x55\x7f\x2a\x55\x69\x05\x33\x9a\xdf\x79\xec\x70\x78\xb3\xdc\xda\xc2\x54\x32\xca\xf9\x86\x77\x50\x8f\xda\x66\x50\x39\x8b\x5b\xa5\x35\xd7\x84\x5e\x00\x5a\x85\x40\x44\x6e\x78\xa3\x71\x60\xb8\xe1\x0b\xe9\x33\x60\x17\xda\x7a\x4b\xf2\xa8\xe5\x1d\xc0\xf7\x56\x40\xc6\xa7\x92\x19\x3b\x70\xfb\x42\xa2\x08\x65\x76\x92\xdd\xaa\x4e\x77\x77\x17\x33\xa3\x6b\x48\xfc\x71\x47\x3d\x37\x27\xee\x37\xb9\xd6\x61\xb4\x38\x9e\x3d\xf0\x99\x71\x2c\xa6\x9c\x8a\x94\x8d\x61\xc6\x8e\xa3\x44\x17\x10\xde\x7d\x68\x41\x45\x5a\xaa\xb8\x28\xf2\x2a\x4d\x85\x9d\x68\xa0\x8b\xdf\xf8\xea\x3d\x88\xee\x6c\xb4\xcf\x4a\x18\xd3\x73\xbb\x09\x84\x44\x83\x3d\xe2\x94\x15\x44\xcb\x4a\x3f\x74\x47\x84\x78\xd2\xa8\xb4\x65\xb1\x73\xeb\xdb\x29\x17\x53\xad\xce\x28\xd4\x60\x95\xb2\xd4\x68\x0d\xa1\x7a\x86\x4a\x26\xe9\x5c\x90\x5a\x94\x42\x2b\xc3\x8a\x52\x29\x12\xe3\x21\x7f\xa9\x9b\x45\xee\x0e\x99\x98\x1f\x64\x63\x1e\x54\x9f\xeb\x52\x0e\xe4\x1b\xa1\xc2\x21\x93\x49\x2c\x11\x66\x50\xb4\x1d\x12\xb9\x77\x4b\xfa\x55\x49\x05\xd4\xc4\xbb\x5c\x1e\x26\x3a\xab\x82\x23\x1d\xdf\xbb\x00\xbf\x11\x4e\x18\x02\x92\x40\xd6\x2d\xc4\x18\x02\xae\xbc\x64\x34\xe5\xee\x5f\xfb\xe0\xa3\xaf\x3a\xf8\xa8\x4b\xf6\xc1\x07\xda\x7a\x70\x17\xee\x38\xc0\x51\xa7\xfb\xc8\xff\x7d\xf0\xd4\x3e\xf2\xff\x79\xa2\x65\x9e\x20\xe8\x3f\xf6\x83\x2e\x7e\x53\x8e\x51\x44\x35\xd4\xb2\x89\xe8\x55\xaa\x48\x93\xf1\xb6\x34\x3d\xaa\x05\x0d\x00\xac\x09\xfb\x57\x29\xc0\x34\xa2\xef\x01\x50\xc6\x89\x5e\x9e\x33\xfd\xcd\x87\x0e\x80\x70\xd8\x18\xe1\xd3\x55\x70\xf9\xd3\x1c\xa2\xe7\xa1\x8a\xaf\xaa\xcf\xd2\x89\x55\x5d\x62\x38\x54\x44\x84\x1b\xf7\xcd\xca\x80\x73\x3c\x27\x03\x76\x1c\xde\xd5\xb6\x91\x41\x2b\x80\xff\x04\x8f\xf0\xa7\xab\x9d\x7b\xe0\x2f\x1a\x33\x7f\x32\x50\xc3\x79\x12\xed\xc2\x43\xe2\x7b\xbc\xaa\x5c\xda\x6b\x1d\xc2\x0a\x1e\x1f\xdf\x87\x40\x7e\x77\x90\x82\xb7\x17\x5f\xf1\x1e\xe3\xec\x4e\xcc\xf0\xc1\x87\xa4\x11\x51\xf0\xd0\x18\x2a\x0f\x92\x3c\x72\x27\x66\xde\x02\x57\x76\x8a\x01\xea\x56\xbb\x12\x2f\x00\x54\x2f\xf4\xea\x5d\x98\xf0\xfa\xe8\xd9\x11\x33\xf7\x2b\xe9\x9e\x26\x01\x94\x78\x69\xa8\xde\xa2\x56\x80\x47\x04\xfe\x15\xba\x90\x5e\xf0\xf9\x95\x67\x32\x0d\xa4\xc2\x63\x7c\xae\x7a\x4e\x3f\x73\xff\xe7\xec\xd1\xc9\xf1\x3d\x76\xaa\x85\xb9\xd0\x16\xfe\x39\x60\xef\xc9\x36\xfb\x61\x93\x02\x9d\x38\xf2\x2a\x41\x52\x31\x38\xc7\x6e\xaa\xb1\x50\x60\x82\x4e\x1a\x76\x57\x1a\xf7\x2c\xeb\xc2\x4f\x19\x04\x4e\x4c\x10\xc2\x2e\x62\xcf\x18\x18\x53\x5a\xfb\xc0\x95\xba\x7e\xe2\xb5\x2e\xe9\x6e\x71\x57\xef\x01\xef\xe9\xc3\xc2\x8f\x29\x45\xc0\x48\x35\xce\x42\x64\x51\x8f\xc4\x75\x5f\x26\x14\xa4\xd8\xbc\x10\x5e\xbf\x57\x8c\xea\x6f\x92\x31\x00\xfb\x43\x19\x3a\xe3\x09\x14\x94\x2b\xd0\x60\x47\x89\x20\x32\x61\x90\x06\xc2\x20\x3d\xe4\x79\xea\x26\x77\x64\x36\x8d\x22\x99\xe1\x7c\xef\x92\xe5\x00\xb7\x5c\xca\x6b\xca\x2c\x83\x6a\x05\x90\x39\x36\xcf\xde\x43\xbc\x96\xd2\x15\x50\x38\x16\xc0\x8b\xe2\x73\xf0\xd1\xc2\x78\xac\xe3\x8b\x53\xac\xed\x2a\xd8\x8d\xce\x75\xa6\xc7\xb3\x78\x36\x54\x38\xdf\x1b\x6e\x80\xa1\x95\x43\xba\x90\x5e\x0f\x8e\x3f\xe8\xc0\x99\x9a\x91\x63\xab\xee\xd5\x82\xe7\xac\xb6\xa4\xe1\xcc\x9b\x30\x80\xa3\xed\x1a\xe2\x72\xd1\xbb\xb0\x8d\x96\x01\x64\x78\x27\x45\x96\xee\x98\x02\xe0\x71\xff\x6a\x29\xb0\x0b\x63\xc3\xaa\x64\x50\x6a\xb2\x38\x0f\x14\x01\x6e\x83\x8b\x98\x2a\x94\x82\x89\xa1\x73\x14\xc2\x5c\x0c\xc5\xfa\x04\xed\x6c\x55\x3e\x9f\x2b\x91\x62\x82\xf3\x69\x2c\x6c\x4b\x1c\x06\x2a\x8f\xee\x5a\x9f\xce\x14\x9f\xca\x84\x8c\x40\x38\xa4\x47\xc0\x64\x63\x6e\x45\xf5\x3c\x28\x3e\xcc\x22\x54\x59\x6f\x37\x0a\x36\x66\x1f\xc9\xb7\xc0\x97\xe7\x03\xb7\x4f\x57\x9c\xe7\x53\xf7\xe8\x27\xa8\x9e\x5e\x68\x0b\xe6\x1f\x32\x94\x19\x7c\x4c\xc0\xfa\x19\x86\x1b\xb0\x2b\x4c\x8a\xa5\x40\x46\xf0\x8c\xbe\x1e\xbc\xfe\x6e\xc0\x8c\x10\x95\x76\x26\x8d\x71\xcf\x2d\x29\x68\x6f\x5e\xff\xf5\xcd\x9b\x0d\xd0\x2a\x75\x7a\x72\x7e\x7a\xb5\x2a\xdb\x10\x5b\x35\x35\x82\x5c\xa7\xec\xfc\x92\x15\x60\x01\x0d\xee\x9e\x38\x72\x72\xe3\x09\xad\x62\x12\xbe\x59\x73\x4a\x7e\x3a\xa6\x75\x3e\xb0\xd7\x08\xc2\x3e\x9c\xb1\x4b\x9d\x52\x21\x17\x6e\xe3\x40\xcf\x10\xc1\x29\x4d\xf3\x1c\xbe\xb2\x13\x26\x94\x2d\x48\x4e\x40\xc0\x76\x22\x05\x50\x88\x76\xf0\x9c\xa2\xb9\xa9\xf4\x35\xb7\x18\x05\xfc\x9a\x0c\x27\x21\xae\x5a\x8f\xd8\xf9\xe5\xfd\xf7\x20\xab\x9d\x5f\xde\xbf\x79\x4a\x19\x60\x57\xd9\xa9\x88\xde\x57\xac\x3c\xf7\xe7\xa7\x71\x26\x4e\x2d\xf8\x06\x0d\x3b\xba\x4c\x3d\x16\x60\x48\xbe\x44\xdf\xdf\x5b\x76\x5b\xbe\x7a\xf5\x5d\x72\x49\xbf\x5e\xf0\xa9\x80\xbf\x88\xb7\x47\x47\xf5\x9f\xae\x71\x83\x12\xc7\x60\xce\x4f\xb1\xd1\x06\xa1\x70\xbc\x61\x41\x6f\x5d\xd0\x7c\xe5\x26\x7c\x82\xf0\xeb\x1d\x3f\x41\x37\xae\xd3\xad\x9e\xdc\x52\x51\x40\xb3\xe3\x73\x2b\xd6\xf6\x39\x6e\xeb\x61\x7f\x0c\xbd\xc0\xfe\x97\xe0\xc2\x54\xe2\x01\x32\x20\x06\xec\xa7\x99\xf7\xce\xf4\xc2\xfb\x12\xf5\xb4\x36\x86\x0a\x98\x21\xe0\x7f\x8f\xbe\x99\x72\x55\xf2\xac\xef\xfe\xd1\xf7\xc9\xc8\xc8\xee\xbb\xc2\x7c\xee\xe4\xf5\xed\x12\x89\xb6\x49\x22\x7e\xc7\x28\x67\xca\xd4\x59\xa9\x90\x79\x13\x73\x68\x8f\x25\x89\x39\x39\xed\xab\x60\xf6\xff\x04\xfb\x0f\x45\x86\xd7\x6f\x61\x8f\xc9\x51\x95\xb5\xbf\xd5\xe6\x55\xd3\xb8\xd0\x56\xbc\x45\x95\x28\xb0\xd5\x54\x24\x19\x2f\x50\x71\x02\x5e\xe3\xc6\x43\x17\x3a\xa4\x4c\x80\x56\xe4\xf4\x74\xaa\x7f\x6d\xca\xd1\x48\x26\x12\x1d\xab\x98\xb9\xdd\x0b\x85\xe4\x15\x43\x87\x61\xca\x2d\x07\x47\x5d\x89\x6e\x7d\xef\x53\x96\x34\x46\x3a\x60\x27\x3c\xcb\x22\x8f\x85\x54\xc6\x0a\x9e\xc2\x7b\xcf\x01\x92\xb9\x4f\xca\x1a\x58\x34\x50\x2d\x63\xd7\x42\xc0\xf2\xdf\x1e\x1d\xe5\x85\x7f\x6f\x7f\xfc\xeb\x77\x7f\x7d\x4d\xf5\x26\x7d\x20\xcd\x13\x08\xa1\xc7\xf5\x3c\xad\x55\x7c\x60\x15\x8f\x7f\x32\xcc\x02\x9e\x01\x4e\x7c\x1b\xa7\xf9\xfa\x4a\xba\x1d\x57\x93\x6d\xca\x0f\x55\x45\x96\x70\x47\xab\xfa\x10\x15\x9e\x85\xdb\xf7\x2a\xa5\xa4\x0e\x66\x7c\xc2\x73\x9e\x48\x3b\xdb\xa0\x0a\x5c\x42\x9f\x7e\xfd\x24\xf4\x8b\x6c\xd2\xcf\x6a\x0b\xb1\x0b\x73\x54\xdc\x18\x0b\x39\x17\x85\x01\x37\xae\xed\x7b\x58\xe4\x40\xa6\xf5\x09\xdc\x15\xd0\x24\x64\xac\x78\x80\x9b\x60\xec\xf2\xac\x3c\x64\x1d\xd7\x63\xe3\xd7\x2f\x55\x16\x73\xcd\xd0\xcd\xee\x39\xc9\x1f\x07\xff\x04\x35\xbb\x5d\xa8\x9a\x9d\xe1\x49\x17\xc4\x89\xc7\xaa\xc3\xbd\xe4\xf0\x8f\x14\x15\xcc\xa0\x2e\x26\x35\x15\x73\x41\xe0\x67\xba\x30\x54\x63\xfd\xb5\x35\xc3\x3e\xba\x44\x47\xc0\x0a\x97\xc6\x76\xb4\x4e\x5b\x4e\xf9\xb8\xb3\xe0\x11\x6a\xe9\x31\xfc\x2c\xd4\xc8\x54\x73\x49\xe6\xdb\x9e\xe7\x13\x3f\xd4\xb9\x1b\x69\x2b\x21\xd9\x4d\xee\x5c\x8d\xe6\xaa\xc9\xae\x67\x2a\x82\xd4\x3c\xe8\x66\xe9\x61\x43\x43\xa2\x4c\xcd\x51\x59\x4a\x4c\x20\x46\x61\x26\x9b\xf9\x40\xe2\x59\x24\xa9\x6d\xc1\x48\xdc\x57\x9b\xa3\x0b\xb9\x35\xd5\x10\x86\xe6\xb1\x16\x16\x61\x0d\x6d\x3b\x71\xec\x0d\x2a\x64\x78\x61\x51\x89\x7b\x51\xb0\xdc\x03\x39\xa0\x67\x43\xe9\x07\x14\x24\x83\x71\x65\x03\x47\x07\xbe\x27\xc7\x54\x49\xa5\xe3\x39\xf7\x55\x25\x2a\xb1\xc0\x57\x62\x59\x6c\xf9\xd8\xf6\xc0\xfb\x29\x62\xd9\x8c\xad\x0e\x3c\x4d\xff\x5c\x7d\x5e\x79\x0c\x82\x4a\x01\xa3\x83\xe0\xe3\x17\x0f\x45\x71\x05\x3b\xa0\x4a\x0f\x87\xb1\xf7\xf7\x0b\x39\x32\x36\xd1\xed\xaa\x7b\xbb\x42\xbf\x0b\x0d\xbd\x9b\x73\xad\x9b\xdc\x41\xcb\x8b\xc2\x27\x3a\x38\x32\x8f\xa3\xe6\x14\x76\x5b\xf7\xc0\xaf\x7f\x19\x86\x5a\xdb\x95\x36\x9d\x9f\xb4\xb6\xec\xfc\xb4\x75\xc8\x0d\x2e\x60\x78\x32\xae\x4a\x65\xe5\x54\x74\x8b\x61\x3b\x69\x7c\xc5\x7c\x44\x5b\xdb\xac\x02\x46\x40\x41\x8d\x0b\x31\xd5\x56\xb0\xe3\xcb\xf3\x10\xe2\x9f\xdc\x89\xe2\xed\xd1\xd1\xeb\xc1\x0f\x83\x57\x9d\x0b\xe6\xc4\x11\x54\x8e\xb3\x65\xdd\x26\xff\x0b\xb4\x5d\x3e\x65\xd0\xcc\x5f\x96\x50\x62\xa4\x5f\xbc\xa4\x79\x7e\x37\x78\xfd\x66\xf0\xaa\xff\x6a\x30\xcc\xf5\xe0\xfb\x3e\x9f\xa6\x6f\xbe\xdf\x68\xb6\xe5\x50\x5c\x16\xfa\x71\xd6\x71\xc2\xbe\xf9\xd2\x39\x6f\x38\x8f\x4c\xd8\xee\xb3\x70\xd2\xd6\x8e\xe7\x40\x2a\xd1\xca\x73\xff\xd1\xb7\x6b\x1f\x98\xbd\xd3\x85\x07\x94\xa3\x2e\x43\x62\x50\xc2\x29\xcb\x9d\xac\x9e\x80\xa4\xd7\xb0\x32\x57\xe8\x10\xec\x83\xe0\x85\xc2\x70\x1d\x38\x06\x53\xae\x0e\x7e\x38\xf4\xbd\xf6\x65\xfa\xd6\xdb\x22\xa6\x5c\xfd\x38\xd0\xc5\xf8\x28\x93\xaa\x7c\x74\xff\xec\xe7\x4e\xee\x72\xff\xf5\xc3\x51\xf5\xc1\xe0\x87\xc1\xc4\x4e\xb3\x4d\x83\x1a\xa4\x1a\x23\xf7\xeb\xc0\x96\x3e\x85\xfa\x5c\xf8\xc9\x8e\x58\x93\x36\x28\xe7\x2d\x9f\xc0\xa7\x6b\x06\xcd\x96\xdc\xa9\x23\x61\x93\x23\x6d\xfa\x85\xc8\x00\x9c\x01\x2f\xd6\xa9\x18\x4a\xae\xd8\xfb\x8b\xcf\x47\x58\x00\xea\x47\x76\xf0\x30\x11\xe2\xf7\xd9\xe1\x26\xf7\x0b\x71\x1a\x3e\x7f\x5e\x79\xa8\xae\x43\xc3\x8d\x4f\x55\x75\x2e\xeb\xa7\xe8\xa6\xcd\x89\x91\xb8\x57\xea\x4a\xa4\xec\x67\x6e\xa1\x86\x91\x09\xd2\x19\x4f\x12\x61\xcc\xa0\x10\xe9\x84\xdb\x41\xa2\xa7\x4e\x42\x2b\xa7\x3e\xee\xf7\x48\xa8\xfe\xe7\xeb\xa3\x2b\x91\xfe\xf3\x67\x6e\xff\x79\x5d\x0e\xc3\x42\xfe\xf9\x31\xd4\xd0\x3a\x7a\x7d\xe4\x0e\xda\xd1\xd5\xcf\xd7\x1f\x8f\xc6\xc2\xba\x83\xd0\x47\x6a\xf4\xdd\x2b\xb9\xce\x31\x9c\x7b\xdd\xdb\xc3\x14\xaa\xfb\xdb\xbe\x01\xf3\xef\xdb\x42\xb6\xdd\x72\xde\x3a\xbc\x54\x8b\xf9\xd9\x32\x8e\xbb\xe4\x92\xf5\x16\xc8\x04\xf4\xe7\x8d\x03\x2f\x10\x58\x0f\x1c\xf0\x1d\x82\x0d\x5b\x5a\x93\x23\x1e\x8c\x21\x55\x14\xb9\x48\xe9\x98\xd5\x22\xc3\x77\x18\xb0\xfe\x6b\x3d\x2d\x99\xc2\xd3\xdd\x7f\xc2\xec\x7c\x65\xc1\x87\x42\x5a\x2b\x90\xcd\x42\xb4\x9f\x1e\xf5\x42\x22\x8a\x3b\xf7\xb7\x2f\xee\x5f\xdf\xbe\xd8\xe0\x3a\x8f\xfc\x30\xab\x7c\xa4\x6e\x26\x34\x4b\x24\x89\xd5\x44\xb3\x90\xeb\x1a\x90\x62\x9c\xf4\x41\x71\xa3\x3b\x06\x53\xa8\xa6\xbb\x9b\x13\xd3\xa5\xbc\xe8\x86\x95\x45\x25\xd4\x59\xb4\x18\x9e\x9a\x7a\x81\x39\xc0\x55\xed\xfe\x2c\x45\x54\x9f\xab\x2a\xfa\x74\x07\xe3\x7c\x44\x6b\xa2\x04\x36\xce\x72\x29\x10\x50\x22\xdc\x98\xe0\x89\xc0\x3f\x3a\x1e\x5f\x78\x54\xec\x1e\x0a\x0b\x14\x64\x57\xe5\x5a\xa0\x67\x19\x33\x41\xd9\xff\x7b\xfd\xe9\xe2\xe8\xbd\xf6\x31\x03\xc0\xce\x31\x95\x11\x43\xd7\x4c\x99\x4c\x18\x07\x94\x04\x77\x66\xae\x01\x69\x79\xca\x95\x1c\x09\xe3\x18\x3e\x71\x37\xf3\xf7\x6f\xff\x81\xef\x4e\xc8\x0d\x26\x7c\xac\x10\xc7\xef\x37\x99\xca\x68\x46\x66\x9f\x07\x69\x27\x30\xa5\x5c\xa7\x34\xe9\x07\x98\xac\xe5\x77\x84\x8a\x83\xee\xef\x4c\xde\x89\xb7\xec\x16\xc0\x32\xa3\xb1\xff\xdb\x09\xbc\xff\x73\xfb\x02\x5e\xdf\x42\xb0\x5b\x28\x11\x7b\xfb\xa2\x96\x9c\x8e\x70\xc6\x91\xc1\x8e\x06\xc7\x80\xce\x42\x8e\xc7\x90\x3e\x03\x79\x04\xf7\x42\xd9\x43\x77\xbc\xe4\x88\x29\x1d\x35\x0e\xd5\xac\xc3\x85\x9c\x9b\xcc\xdf\xbf\xfd\x87\x9b\x49\x7d\x75\x4c\xaa\x54\x3c\xb2\x6f\xf1\x42\xbb\x27\x57\xa7\x87\xf4\xda\x9a\x99\xb2\xfc\x11\xe2\x6b\x26\xda\x08\x85\xd9\xee\x56\x63\x30\x21\x20\x3f\x3d\x88\x2c\xeb\x63\xda\x4d\xca\x1e\xd0\x9c\xec\x09\x8a\x81\x81\x39\x2f\xec\x02\x56\xda\xf9\x5c\x76\xcd\xe7\xe8\x52\x57\xf7\xab\xc9\x96\xf8\xc3\x16\x0b\x6e\xac\xa1\x59\x25\x71\xd1\x42\xa8\x2a\xc9\xd3\xaf\x66\x2d\x34\xef\x68\x31\xde\xc5\xd3\x8d\xf3\xfa\x28\x0d\xd6\xf8\x0c\x53\x7f\x25\x04\xd1\x40\xa4\x6c\xc4\x5d\xa6\x3c\x45\xf6\xc3\xd5\xd3\x63\xb4\x3a\x92\x81\x63\x27\x99\xf5\x29\xfa\x01\x20\x5b\x13\xad\xd0\xfb\x94\x2c\xf0\x36\x2d\xa3\x51\x29\x57\x5d\xc4\xcf\x55\x90\xcc\xd3\x1e\xd9\x52\x76\xbe\x75\xdb\x1a\xd6\x2e\x83\xc3\x8e\xac\x95\x8b\x05\x87\x66\x53\x76\x70\xf9\xeb\xa1\x4f\x34\xc3\xaa\xd6\x21\x9b\x0c\x62\x14\x48\xe4\x1c\xce\xc0\x25\x57\xc5\x84\xe8\x02\x62\xae\xc0\x55\xc7\x33\x3d\xd6\x84\x56\xb6\x6b\xd7\xe3\x3e\x13\xf3\x6b\xce\xc4\xdc\x67\x32\xfe\x59\x32\x19\xff\xad\x61\xe0\x9b\x5c\x71\x3d\x48\x78\x1e\xcc\x3d\x15\xa3\x60\x15\x27\x0b\x75\xe6\x1f\x6a\xb1\x98\x60\x95\x1c\xb0\xcb\x55\x4c\x76\x77\x41\x1c\x2d\xcc\xb5\x9d\x94\xdb\x21\xca\xcf\x11\xb3\x73\x4c\x40\x23\xb2\xc5\xc7\x7d\x44\xca\xec\x11\x85\xf3\xf9\x08\xf2\x39\x2a\x6f\x0c\x3f\xff\x14\x34\x5d\xf5\xae\x87\xbf\x3f\x55\xfa\xec\x9c\x60\x50\x6b\xb5\x6d\x1a\x6d\xb3\xf7\x93\x8c\xcb\x65\xe9\x45\xad\xed\xf1\x69\x28\x8d\x28\x5e\x06\x0e\x4d\x41\x7e\x29\x4b\xa0\x05\x6a\xf0\xcd\x9d\xde\x0b\x06\x7b\xc1\x60\x2f\x18\xec\x05\x83\x67\x15\x0c\x80\x65\xad\x5f\x30\x86\x6c\x80\x2c\x99\xf0\x82\x27\x56\x14\xd2\x58\x99\x50\xac\x26\x89\x07\x74\x08\x49\x0c\x80\x4c\x1f\x5e\xda\xc9\x53\x89\x00\xf8\x17\x60\xb0\xcf\x23\x06\x20\xe9\x9e\x40\x16\x58\x20\x6e\xc1\xd2\x9e\xfc\xd5\x5f\x40\xc6\xaf\xee\xe5\xc7\xb7\xf9\xe9\x9f\xff\x2e\xf8\xf4\xcb\x3f\x24\xa3\x71\xb6\xb0\xf4\x79\x7e\x9f\x74\x43\xaa\xbf\x2c\xf4\x50\x7c\x51\x94\xfa\xdc\xcd\x20\xf5\x76\xf3\x3f\x2e\x2e\x3d\xb9\x1d\x9f\x10\x9c\xbe\xff\xd5\x81\xd3\x7f\xa6\x9c\x17\x74\x05\xa1\x30\x37\x04\x8c\x82\x89\x2e\x6c\x2f\xc4\x07\x94\x2a\x15\x85\x81\xd7\xcf\x4d\x9f\x64\x19\x70\x8e\x8c\xe5\xbd\xf0\xd1\x9c\x01\xe1\x7e\x19\xba\x3d\x3b\x1f\x11\x0c\x0c\x80\xc4\xdd\xbe\xb8\x12\x46\xfe\xee\x34\xa8\xc2\x8a\xf4\xf6\x85\x2f\x08\xc3\x95\x87\xa0\x49\x45\x91\xcd\xa0\xac\xc5\x1c\x03\x94\x86\x0d\x05\x16\x89\x71\x9d\x6c\x12\xae\xd9\xfe\x04\x6c\x8a\x74\xff\x95\xa2\xd6\xb7\xb2\xa3\x15\x70\x73\x0b\xbf\xa9\xd7\xb3\x5f\xa0\xf1\x58\xd1\x09\xa1\x67\xaf\xbf\x7c\xdd\x10\x73\x15\x6c\xc2\x02\xe9\x63\xfd\xcc\x94\xf5\x65\x8e\x9d\x06\x3d\xb7\x4b\x0d\x51\x67\x7b\xa8\xbb\x7f\x5b\x3d\x70\x0f\x75\x87\x7f\x7f\x56\x89\x7d\xf7\xd8\x77\x8b\x35\xda\x35\x5f\xbb\x16\x00\x14\xb7\x8f\x5a\xd5\xea\xe1\x8f\x82\x5b\x31\x15\xf7\x32\x01\x74\xfd\x94\xf1\x2c\xd3\x0f\xee\xc6\x13\xb4\xb1\x93\x8b\x7c\x46\x74\x3f\xc4\x4e\x56\xfd\x74\xa9\x11\x92\x08\x63\x3e\x02\xd8\xe7\x0a\xae\x5d\xb5\xac\xc2\xa6\x62\x25\x9d\x42\x79\xa6\x54\x67\xd0\x67\x60\xf8\x07\x71\xc2\xef\x77\x9a\x5a\x89\xc3\xf5\x61\xb8\xfe\xeb\x67\x49\xe4\x88\x18\x85\xbb\x9e\x5b\x02\xcd\xdc\xcc\x72\x91\x7e\xd0\x09\xcf\x9a\xf1\x6b\xcb\x38\x45\x14\x2f\x9b\x70\x05\x6c\xd6\x60\x42\x0f\xee\xff\x8c\x2a\xa6\xbc\x65\xff\x0f\x3b\x56\x4c\x3c\x4a\x03\x2f\x01\xf9\x14\x14\xcf\xcd\x44\x5b\xff\x02\x1c\x18\xfa\xc3\x80\x28\xed\x59\x4b\xa3\x79\x9f\xfd\x24\x2c\x3f\x6c\xf4\x79\xf9\xeb\x09\x3b\x68\x3d\xe4\xcd\x96\x49\x69\xac\x9e\x86\x57\xe8\x88\x86\x47\x0c\xc7\x0a\xc4\x0a\xf2\xe2\x29\x7d\x0a\xaa\xcc\x1d\x67\xf9\x84\x1f\x22\x28\x5b\x8a\x85\x2d\x4b\x23\x16\x2c\x06\xb8\x19\xc2\x5d\xf0\xdc\x1d\xf8\x42\x3a\xd5\x77\x29\xa4\xce\x41\xbd\xab\xd3\xb0\xad\x4c\x17\xec\x58\xcd\xf0\xe7\xea\xcf\x87\x1e\xa4\xad\x72\xf2\x03\xcc\x3e\xa4\xd6\x93\x20\x47\x51\x19\x19\x14\x28\x50\xcc\x94\xb9\x53\x4b\x1a\x71\x95\xb0\x54\x43\x45\x24\xa4\x45\x78\x1d\xc4\x3b\x62\x1c\x60\x2b\xe8\xfa\x0c\xb9\x81\x82\x24\x21\x8a\x2c\x82\x0a\x6b\xef\x2f\x00\xc9\xb5\xfe\x5a\x01\x15\xe4\x18\xc9\xdd\x8b\x2f\x6b\x5c\x64\xd0\xa3\x2f\x39\xce\x03\xb1\xa2\x5c\x66\x8e\x90\x1e\x56\x2e\x84\x82\x23\xa6\x1c\x04\xb1\x85\x0a\x0d\x08\x24\xde\x03\x6d\x3e\xe3\x10\x3e\xe3\x09\x01\x29\x03\xf1\x8c\x60\xe3\xc2\x30\x71\x95\xe8\x26\xa5\x2b\x1c\xf3\x05\xaa\x73\x25\xba\x6e\x7a\x2d\xaf\xa8\x87\x08\x4c\x6b\xb9\xe1\xed\x2a\xa4\x90\x37\x6c\x6f\x53\xa9\xe4\xb4\x9c\x46\x39\xe6\x4f\xcf\x15\xab\xf5\xb7\x2b\xa6\xf3\x01\xd5\x9d\xa8\xb3\x4c\xbe\xe1\x43\x91\x75\xaa\x8e\x79\x1c\xc1\xba\xce\x10\xd4\x35\x64\x28\x42\xcc\xa3\x01\x7c\x1d\xf7\xa8\x0d\x25\xd4\x66\x5a\xb0\xc9\xb4\xfe\x93\x8c\x1b\x73\xb1\x5e\xb8\xdd\x75\xf4\x69\xa8\xf2\x5a\x39\x97\xc1\xf4\xb9\xc3\xf4\x7f\x37\x4c\xf3\x71\xea\x9e\xef\xe9\x1e\xdb\x15\x6b\xab\x1a\x06\x15\xf6\x01\xe2\x4b\xa9\x1c\x5e\x65\xd3\x58\xb0\xd8\x5f\x41\x69\xd0\x23\xf6\x4e\x66\x82\x0a\x77\x4a\x03\x4c\xd9\x31\x0e\x40\x26\x71\xfc\x40\xaa\x24\x2b\x53\xac\x91\x82\xee\x45\x08\x43\xdd\x74\x69\x1d\xb6\xed\xd7\xd0\xd0\xe7\xf6\xd2\xa9\xa8\x97\x79\x73\x3f\xcc\x45\x67\x0d\x79\x72\x87\xfa\x8f\x34\xb4\xd2\x2f\x14\x53\x16\x9b\xef\xd7\x95\x14\x03\x54\xcf\x22\x60\x9e\x45\xd6\xfb\x67\x91\xfb\x78\x62\x4b\x9e\x2d\x14\xfb\xaa\x2d\x10\x20\x28\x4c\xf8\x4e\xd5\xfa\x2f\x2b\xfe\xfd\x71\xe0\x4f\xae\xea\x6f\x12\x6d\x5a\x0d\xf6\xa4\x61\x11\xa5\x80\x90\xa7\x84\x2c\xa1\xa3\x5c\xf9\x2e\x16\xdb\x82\x40\x98\x59\xcb\x5e\xeb\xd6\x83\x32\x48\xd5\xbf\x17\x59\xa8\x7a\xcb\xcb\x9a\x7d\xf8\xe5\xae\x2b\x5d\x2f\x77\xf0\x74\x3c\x77\xb5\x9f\x9e\x13\xd4\xa4\x0b\xec\x02\x42\x2e\x2c\xf0\x35\x06\x98\x85\x56\x42\x7c\x51\x46\x4c\xd2\xfe\xaa\x2a\xab\x2b\xbf\xad\x9e\x20\x72\x28\x60\x1c\x8e\xe3\x73\x3e\x83\xca\xbd\x5b\x21\x6e\x9d\x32\x2f\xe8\xc4\x8e\xa4\x4a\xe9\x45\xd3\xa5\x4a\xd9\xe5\xaf\x68\xf5\xd5\x25\x92\x92\x87\xb3\x1d\xe2\xb5\x34\xe0\xc7\xaf\x9e\x97\x34\x3d\x26\x0c\x98\xff\x78\x96\xcd\x7a\x8c\xb3\x87\x82\xe7\xb9\x28\x18\x2f\x60\x30\x72\x3d\x35\x25\x04\x5f\x89\x3f\x44\xdb\x19\x3d\x15\x5a\x09\x26\x32\x23\xd8\x41\x15\x10\x76\xd8\x05\x88\xd5\xcd\xab\xc3\x13\x7f\xe2\xdb\xf9\x47\xce\x67\xcc\xf0\x45\x2e\x80\x36\xe2\x62\x95\x23\x04\xf9\x84\x5a\xa2\xf8\xec\xfb\xc0\xb6\xe7\x35\x25\x77\xf4\xa3\xa5\x9f\x54\xb6\x0a\x07\xfe\x37\xa8\x3d\xa6\xd1\x6a\x2b\xc0\x23\xef\xbe\x72\x4c\x8c\x6a\x64\x92\x22\xfc\x11\x0e\x4e\xc0\xf6\x62\x23\x9e\x99\x45\x0c\xbc\x03\xf4\x60\xbb\xb9\xaf\xda\xd3\x5d\x3b\x8e\xd6\xf4\x19\xad\x76\x17\xed\x3d\x45\x7f\x12\x4f\xd1\x87\x45\x7e\xa2\x5d\x8a\x92\x4f\xfb\xf8\xef\xbd\x40\x7b\x2f\xd0\xde\x0b\xf4\xec\x5e\xa0\xa7\x77\x00\xad\xe9\xfb\x01\xb7\x0f\x49\x39\x5d\xd2\x1e\x9e\x5e\x87\xe7\x59\xc6\xa0\x36\x65\xa4\xb4\x93\x4b\x81\xb0\xb2\x9e\x4a\x5f\x7f\x6e\x6d\x9d\x3f\x98\xb3\x8c\x1b\x2b\x93\x9f\x32\x9d\xdc\x5d\x5b\x3d\x0f\x5d\xd5\x1d\xe0\xec\xb7\xeb\xb9\xce\x6a\x6a\xc5\x52\x13\x68\xcb\xc7\xb1\x1a\xc5\x15\x3b\xfe\xed\x9a\x9d\x4a\x73\x17\x33\x6b\x14\xcd\x63\xf4\x36\xee\x81\xf9\x5f\x1a\x00\x48\x09\x61\x55\x64\x45\x57\x4c\x3c\xe6\xda\x54\x50\x6f\xa0\x41\x6c\xb8\x9d\x61\x0f\x1f\x8c\xc0\xd9\x0f\xdd\xec\x0d\xd0\xb1\x9d\xe2\xbf\x97\x85\x70\xab\xd8\x9c\xcc\xbe\x87\xee\xb4\xf5\x5f\x34\x09\xea\xfe\xce\x4e\xb9\xe5\x48\x57\x38\xdc\xde\xa1\x02\xb4\x73\x34\x1b\x4a\xaf\x81\xc5\x14\x5b\xb2\xba\x77\x72\x1e\x40\x78\xbd\xd5\xb9\x1e\xe6\xd8\x44\xc7\x75\xba\x6f\x5b\xd7\x09\x3f\xb8\x67\x5c\x26\x62\x07\x4b\xfd\xe3\x18\xba\x8e\xdb\x0a\x65\xcf\xb1\x55\x48\x96\xf1\xb6\x2f\x48\x95\xf1\x18\xc8\x5f\x07\xea\xaf\xc8\x27\xa3\xcd\x7d\x57\x27\x22\x9f\xbc\xbb\xde\xe0\x4c\xe1\x87\xb5\x03\xc5\xdc\xdf\xd8\xbb\xeb\x96\x43\x04\x0c\xc9\x4c\x78\x01\x49\x7c\xb9\x4e\x5f\x1a\x40\xd9\xb4\x72\xba\x08\x28\x57\xaa\x54\xac\xed\x75\xaa\xd6\x05\x9f\x6f\xb2\x2e\xf8\xb0\xbe\x2e\x9c\x8b\x7f\xf1\x02\x53\x0d\x16\x18\xf4\xb6\x86\xba\x27\x31\x77\x6d\x3d\x24\x84\x3f\x12\xea\x9b\x4c\x67\xe6\x5f\x59\x1f\x47\xe9\xe7\xe9\xd1\xd5\xd9\xf1\xe9\xc7\xb3\xc1\x74\x41\x75\x16\xd0\xab\xaf\x80\x10\x9b\x11\x67\x9d\xe8\x81\x13\x1a\x0c\x40\xb8\x3c\x82\x07\x1b\xca\x7e\x2a\x0b\x91\xe0\x85\x0e\x6e\x96\xa1\xb0\x0f\x42\xa8\x79\xf5\xda\x91\xaa\xdd\xb6\xc7\xce\x1e\x73\x91\x58\x7c\x76\xa8\x4e\x9a\x92\x19\xba\x91\xc0\xd8\x35\x20\xb3\xee\xbc\x77\x07\xb3\x36\xa4\x53\x99\xef\xd1\xd7\x53\xcd\x00\x0d\x64\x97\xbf\x9e\xec\xf2\x9a\xd2\x3a\x17\x6c\x8b\x91\x9b\x1f\xd7\xeb\xf3\x4d\xce\xea\xf5\x79\x7c\x50\x7d\xfc\x8f\x7f\xfd\x27\x5c\xa5\x59\x48\x76\x0d\xc1\x06\xee\xab\xb4\x90\xf7\xa2\x60\x07\x3f\x09\xcb\x7d\xb8\xc3\xe1\x02\x86\x3e\xda\x3c\xa9\xe7\xdd\x49\xe7\xb5\xbc\x3b\xa9\xdf\xb9\x77\x72\x58\x08\x76\x32\xe1\x4a\x89\xec\x09\x24\x9b\x05\x6b\xcd\xc4\xe3\x1c\xb2\xc3\x9a\x6b\xce\xc4\xe3\x06\x7b\xf9\x2e\x8c\x5c\xa7\xc3\x58\x28\x51\xc8\xa4\xca\x5d\x6a\x10\x22\x82\x8e\x38\x0a\x44\x41\x9b\x26\x6c\xba\x48\x28\x1e\x24\xcf\xca\xb1\x5c\x94\x13\x31\xca\x00\x28\x74\x8b\x45\xc3\xf7\x6b\xac\x16\xda\x37\xb6\x9c\xfe\xd8\xe4\xb3\xab\xb6\x78\x7e\x77\xc1\x0a\x2e\xad\xc1\x7a\x48\x64\x4a\x4f\x45\x2e\x94\xaf\x8a\x24\xc2\x68\x14\x7b\xc3\x0c\x49\x40\xe4\x19\x42\x1c\xf1\x76\x6a\x8d\x93\x48\x0a\xdb\x4a\x66\x7d\x7f\x72\x56\xef\xa9\x33\x05\xe7\xbe\xac\xd3\xf2\xfd\xc9\xd9\x93\xe9\x04\x0b\x12\xe9\xb7\x56\x16\xc6\x89\xa8\x78\x6e\xea\xc8\xda\x4e\x7d\x4c\xe8\xdf\x42\xe8\x79\xef\x7b\xd8\xe0\x9e\x86\x6f\x1b\xf4\x0e\x7f\x6e\x78\x47\xea\xe4\x0e\x12\xf5\xb6\x74\x6d\x8a\x10\x44\xc3\xa3\x40\x9c\x55\x42\x84\x9b\x49\x1b\xc0\x5b\x67\x22\xfe\x4c\x1d\x74\xa6\x9c\xff\xa0\x4e\x38\x14\x23\x74\x31\x8b\xe5\xc5\x79\x5a\x30\x30\x4e\x39\xbd\x81\x41\x81\x4c\x84\x74\x80\x7b\x2d\xdd\x35\x17\xa3\x32\xc3\xca\x25\x50\xd7\x14\x0a\x2b\xf9\x6f\xa0\xde\x0d\x9c\x68\x81\xb1\x85\x5a\x65\xb3\xff\x9b\x7d\x52\x7d\xd8\x0e\xff\x6c\x36\xa3\xdc\x98\x54\x8c\xab\x19\x80\x99\xb9\xaf\x7f\x3b\xff\xf0\x81\x5d\x7c\xba\x61\xbf\x7d\xba\xfa\x05\x7e\x64\xd3\x32\xb3\x12\xc7\x0a\x30\x13\x5b\x5e\x02\x37\xa5\x3c\x82\x38\x6c\x98\xc0\xcd\x36\x52\xc6\xf9\xf5\x66\x72\x06\x7c\xd7\xd0\x1d\xf1\x6f\xcf\xcd\x62\x16\x64\xf4\xe9\x84\x67\x1b\x53\x05\x02\x6a\x3b\xd3\x02\x5a\xc7\xb4\xc0\x03\x9c\xcd\xfa\x61\xd5\xfe\x40\x01\xaa\x1e\xd6\x87\x1b\xc1\x0c\x16\x95\x0f\x75\x3a\xc4\xa7\xbc\x4b\x1c\x44\x95\x08\x43\x3a\x16\x7e\xd5\x63\x00\xf6\xfb\xf7\xdb\x17\x85\xbe\x7d\xd1\x63\xb7\x2f\x8c\x1e\xd9\xdb\x17\xff\xc0\xaa\x8c\x00\xa3\x08\x81\x99\x7d\xfa\x0e\x4b\x33\xca\x69\x9e\xcd\x20\x48\x93\x49\xac\xa6\x0e\x45\xbe\xa0\xf9\x0e\xc5\xe6\xa3\x6f\x60\xd0\x3e\x4d\xf6\xb9\x6d\x79\x6a\x8b\x97\xe2\xe2\xdd\x75\xe7\x93\x71\xd1\x50\x87\x15\xbb\x68\xd3\x85\x9f\xee\xfd\x74\x0b\x6d\xa7\x80\x4e\xc5\xb1\x3f\x82\x9b\x92\x82\xd4\xaf\xb8\xab\xa5\xd4\x88\x1a\x06\x0f\x68\xa2\x95\xb1\x05\x54\x14\x44\x66\x91\xc9\xa9\xb4\x18\x7f\xa8\x28\x1c\xac\x0a\x7a\x20\xd3\x32\xda\x81\x29\x2b\xb6\x0e\xff\xac\x46\x59\x59\x85\x54\x54\x45\xab\xc0\x03\xa8\x53\x1a\x24\x54\x3c\xf5\x76\xf2\x56\x22\xe5\x0d\xbe\x78\x85\xce\xfa\x4b\x9d\xc9\x64\xa5\xdf\xdd\x0d\x33\xe1\x79\x2e\x94\x59\x00\xa2\x82\x0a\x2d\x81\x73\x53\x86\xaf\x93\x50\xab\xa0\x4a\xa8\x84\x0e\xe4\x87\xca\x1b\x57\x02\x40\x50\x0f\x52\xef\xa2\xd7\x05\xc3\xaa\x81\xd9\x2c\x04\x5a\x37\x99\xb9\x39\xec\xb1\x53\xc7\x6d\x45\xfd\x43\x2a\xec\x03\xdf\xc6\x60\x73\x6d\xdf\x3b\xc6\x7c\x45\xf5\x4f\x0e\xaa\x1a\x24\x87\x83\xf0\x57\x1f\x12\x5f\x3d\x95\x14\x21\x4a\x4b\x45\x55\x23\x8e\xc1\x02\xf2\x37\x07\xdb\x6d\x14\x33\x10\xd2\xf1\x8a\xb5\x9d\x77\xf9\x44\x5b\xad\x76\x24\xd1\x5f\xb6\x74\xd6\x99\x85\xb4\x7d\x5c\x17\x97\xb0\xc5\x49\x95\x2f\x10\x1d\x34\x27\x32\xaf\x67\x9d\x5a\x40\x0f\x5d\xd8\x07\x5d\x6c\xab\x08\x5f\xd6\xba\xe9\xb2\xfa\xda\x07\xf5\x75\xfb\x39\x6d\x64\x84\x6b\x5f\xe6\xbf\x4a\x3d\x9c\xd9\xcd\xd7\xf7\x9f\xf8\x7d\xe7\xe5\x51\xfb\xfa\xba\xfc\x1f\x77\x61\x32\x2d\x86\x73\xae\xff\xee\x39\x0c\x3f\x9d\x6e\x20\x18\x5e\xfd\x74\x5a\x5f\xce\x15\x4f\xb5\x61\xe0\xa9\x62\xa7\x62\x81\x47\x61\xd9\xca\xd6\x52\x76\x8a\xe1\x4a\x5b\xa9\x49\x78\x26\xce\x3f\x6d\x4c\x97\x6b\xfc\x7e\x03\xda\xd0\x97\x75\xfa\xf8\x3f\xce\x3f\x0f\x8b\x0e\xf4\x2f\x81\x1f\xe2\x0b\xb9\xdb\x04\x87\x5a\x72\x43\x1d\xaf\x76\x7e\x8a\x43\x91\x69\x35\x36\x03\x76\x36\xcd\xed\x8c\xc2\x46\x3c\x44\x02\xb7\xb5\xb7\x3b\xd5\xc2\x50\x56\x90\xfb\x08\x11\x2c\x66\xb5\xf1\x36\x42\x49\x80\xcf\xf5\xe6\x02\x1d\x4d\xe0\xd3\x26\x2e\x8f\xf0\x6d\x63\x4f\xc3\x9f\x97\xa8\xfe\xee\xf0\x2f\x51\x84\xfc\x86\x4b\x15\x19\xb1\xd6\xb8\x09\x81\x30\xab\xee\xc3\x36\x69\x22\x32\xc2\x50\x02\x45\xc1\x0a\x95\x06\xc3\x3d\x24\x15\x82\xca\xc3\xa9\xd2\xb5\x85\x02\x0a\x21\x47\x44\x43\x32\x5e\x21\xa6\x4e\xac\x91\x8a\x15\xfc\x81\x81\x57\x18\x01\x67\x36\x4b\x2c\xd9\x34\xa5\xc4\xe4\x13\xe1\xbd\xf0\x9b\x8b\xc4\xd4\x8b\x2c\x6c\xc9\xb3\xb5\x5e\xfa\x5f\xe3\x09\xd4\xcf\xd3\xfd\x35\xfc\xb4\xed\x4b\xf7\x7f\x35\x56\xbd\x6d\xcc\xe5\xda\x19\x29\x1b\x24\xa3\x74\x08\x61\xe9\x86\x74\x73\xcc\x26\x6b\x62\xdd\x3c\x4c\x6a\x22\x2c\x9c\x6f\x5f\x9c\xc0\x9d\xce\x4d\xc4\xca\xae\x51\xf1\x34\xa9\xf9\x2b\x16\x8a\xf2\xf6\x28\xee\x1b\xab\x12\x38\x49\xb7\xe7\xee\x53\x50\x27\xc0\x44\xb6\xf3\x64\x34\x5c\xc1\x26\xc1\xca\xab\x41\x7f\xae\x10\xa7\x07\xe2\x10\x87\x85\x14\xa3\x2a\xd4\xaf\x86\xec\x53\xe5\xbd\xbb\xf7\xc3\x27\x94\x72\x0c\x61\x74\x8f\x8f\xd7\x8c\x90\x99\xe6\xbc\x20\xdf\x47\xca\xac\x4c\x67\x4e\x28\xce\x33\x88\x4d\xc4\x04\x8f\x0f\xe7\xcf\x96\x4e\xb0\x4a\x13\x58\x7c\x95\xae\xe6\x45\x7e\xb6\x44\xe6\x0f\x21\x10\xab\xaf\xcf\xc8\xdc\xb4\xe0\x05\x35\xbd\x33\x15\xff\x85\x98\x7f\xab\x91\xf1\x0c\xd8\x47\xd2\xfc\x78\xcc\xd8\xa1\xcd\x9c\x2e\x08\x6c\x29\x54\x00\x0a\xd8\xb0\x67\x8f\x03\x76\xfb\x42\x3c\xda\xef\xd1\x50\xf5\x38\x32\xf8\x1f\xca\xba\xff\x1a\xb0\x73\xc7\xee\x13\x69\x33\x8a\x27\x2d\xc2\x0b\xe3\x3f\x73\xb7\xa4\x54\x21\x55\x79\x93\xab\x99\xae\x2c\x60\x75\x7e\x4a\xef\x38\x15\xa5\x12\x66\xf5\x46\xec\xb6\xda\x0d\x4c\x92\xfe\xb9\x79\xe4\xbc\x4e\x97\xb1\x6c\x4d\x91\xc0\x89\x5b\x4f\xe2\xe3\x60\xaa\x4a\x21\x48\x83\x84\x2b\x56\x94\x0a\xcb\x9c\xa0\x0d\xeb\x06\x63\xd6\xab\x04\x71\x6f\x91\x18\xce\x28\xca\x17\x83\x65\xc8\x26\x03\x4f\x96\xd5\x58\x99\x6b\x1f\x66\xff\x55\x87\xd9\xef\x43\xc8\xff\x2c\x21\xe4\xff\xde\x80\xb2\x3a\xed\x04\x1f\x5b\x0b\xab\x8e\xd1\x69\xe6\x50\x25\x16\xc4\xc3\xee\x92\x1e\x6e\xc5\x50\x9b\xa5\x8e\xb8\xb7\x5b\xb8\x58\x9d\x76\x00\x87\xfd\xe8\x9e\xef\xf9\xd2\xd8\xa6\x56\x53\x1e\x48\x82\xc1\x15\xdc\x72\xb8\xc0\xe1\x02\x3a\x1e\x99\x82\x5e\xb7\x21\x4e\xfc\xf3\xd0\x75\x95\x94\xf7\xf4\x79\x08\x3a\xdd\x71\xda\x81\x4e\x5b\x9c\x3d\x6d\x4f\xbf\x77\x4b\x22\x2b\x87\x79\x42\xe5\x67\xf7\x9c\x21\x2c\xb2\x6f\x10\xb9\x56\x8a\x32\x13\x5d\x9e\xf0\x50\xb1\xf3\xb4\x74\x4c\xef\x3a\xf4\x70\x3e\x56\x3a\xfc\xf9\xec\x51\x24\xa5\x5d\xfd\xce\xdf\x54\xfe\x1d\xa8\x57\x96\x65\x54\x12\x14\x60\x62\xe8\x07\xf2\xf9\xe8\xe0\x4b\xe2\x96\x19\x6e\xa5\xa1\xf2\x7b\x61\x39\xe2\xd1\xbd\x3e\x06\x7c\x2d\x15\xe4\x0d\x9c\x4e\xef\x5c\xea\xb1\x61\x69\x99\xb4\x04\x20\xa3\xb5\x11\x54\x72\x87\xd2\x6d\xa5\x86\xd7\x1f\xdc\xa6\x50\xe5\xaf\x08\x90\x21\x51\xf7\x03\x28\xf7\x5e\x7d\xe6\x94\x16\x77\xb3\x02\x75\xbc\x7e\xec\xba\x01\xeb\x89\xfb\xc7\x18\x84\x29\xe3\x9e\xb9\xa9\xeb\xf4\x41\xc8\xf1\xc4\x9a\x1e\x93\x03\x31\x00\x7d\x47\xf0\x64\x12\x75\x3b\x15\xc2\x62\x7e\x46\x54\x4b\xd2\x6f\x58\x04\x4b\xc3\x0e\xc2\x6b\x4c\x2f\x67\x2f\xc0\x7c\x34\xf7\xa9\x95\x5c\x3d\x26\x6c\x32\x38\xec\xb1\x44\x4f\xf3\x12\x90\x87\xdc\x1c\x87\x33\x26\xad\x17\xf5\x7d\x55\x6a\x20\x85\x07\x6a\xf2\x02\x18\x15\xf1\x53\x29\xe3\x29\xc4\x8c\xde\xbe\xc0\xd5\xdd\xbe\xf0\x52\x95\xeb\x50\x56\x25\xf7\xd9\x84\x1b\xdc\x59\xb4\x4e\x4e\xb9\x4d\x26\x01\x07\xad\x28\x84\xc9\x35\x86\x9f\xe6\xd5\xc9\xbf\x11\xc5\xf4\x6f\xa1\x8b\x03\x73\x58\x11\x77\x22\xc7\x13\x4f\x5b\x5e\x60\xa6\x6c\x7d\x4f\x76\x9c\xdd\xff\x1b\xac\x4f\xa4\x97\xf5\xe9\x6d\xe5\xd4\x5e\xb4\x69\x1b\x5d\x2e\x02\x7f\x0a\xfb\x5d\x3b\x31\x0b\xee\x07\x90\xce\x31\xfb\xa9\xb0\xcc\xdd\xb3\xea\xdc\x58\x39\x15\xbd\x60\xc5\x8c\xf1\xa1\x1a\xda\x80\x0d\xd5\x80\x37\x9a\x41\x02\x75\x8e\x51\x37\xf4\xb3\xd0\x53\x37\xaa\x13\x16\x53\x20\x01\x4c\x41\x78\x3a\xf8\xaa\xe8\xa5\x20\x2f\xad\x4e\x09\x61\x08\x05\xc6\xc3\x5e\xf4\x3e\xc1\xcd\xd7\x45\x78\xd5\x6c\x01\x25\x0f\x01\xb4\x0a\xbd\xb0\xe2\x5e\x26\xb6\x8a\x39\xf4\x2e\x5d\x5c\xd2\x6f\x84\x29\x51\x08\x20\x15\x84\x0a\xe5\x59\x75\x23\x70\xa8\x4c\x1a\xbc\x1c\x8a\x52\xad\xe2\xf3\xec\x46\x73\xf7\xbc\x71\xae\xa1\x3f\x60\xd2\x06\x22\xa7\x89\x2d\xb8\xdb\x8f\xf5\x61\x83\x7f\x16\x78\xdf\xbc\x8a\xbc\x75\xc6\xea\xb6\x07\x79\x6b\xd3\x4a\x63\x02\x8b\x9f\xb9\xd3\xaa\x72\x90\xb0\x21\x2c\xe0\x40\x39\x9d\xc0\x1d\x26\xc7\xd6\x81\xa1\x78\x95\x25\x8b\xc1\xa9\x58\x21\x32\x0c\x2e\xa7\xd3\x3a\x96\xf7\x42\x55\x38\x02\x07\xe6\xf0\x30\xf2\x7d\xb8\x53\x50\xe1\x57\x27\xba\x9f\x69\x70\x9d\xb3\x03\x7f\xb0\xa1\x62\xa7\x3b\x4c\xb5\x1f\x95\x95\xfd\xaa\x85\x63\x54\x3d\x86\x65\x42\xa3\x66\x10\xc1\x8a\xe5\x35\xb9\xf1\xf1\xa9\xa8\x92\x03\x97\x7c\x80\xb5\xdc\x7b\x1b\x7a\x58\x0b\x32\xbe\x3b\x31\x63\xb7\xe5\xab\x57\xdf\x25\x56\xe7\x3a\xd3\xe3\xd9\x2f\x62\x06\x7f\x10\x11\x43\xe5\x54\xa0\x73\x86\x5d\x6a\x45\x2c\x17\x6f\x8a\x7f\x5a\x22\x42\xca\x30\x93\x2e\x40\xf1\x31\xec\xd7\x57\x02\x27\x16\xce\x45\x50\x98\x7b\xc1\xf0\x9b\x38\xf6\xe2\x96\xb9\xc0\xe7\x56\xd5\x98\x5c\xc1\x5f\xab\x86\x81\x97\xf9\xc7\x2c\xfa\x69\xfe\xf4\xf1\x3c\xcf\x24\x62\x9d\x1d\xf8\x4d\xe2\x63\x2e\x95\xb1\x87\x7f\x63\xaa\x74\xcf\x7d\xc1\x04\x78\xe3\x28\x01\x98\x2b\xc3\x6e\x5f\xf8\xd3\xf8\xd2\x54\x03\xdc\xbe\x78\xee\xc0\xab\xe8\xa4\xad\x94\xee\x76\x7a\x7b\x3c\x4b\x36\xcb\xae\xf6\x5c\xdd\xea\x6a\x2b\x9e\xe4\xf6\x45\xd4\xe8\x72\xe3\xd4\xac\xba\x6f\x19\x26\xc8\x34\x6e\x9c\xf7\xc3\xc6\x1d\x53\x0c\x2b\xa0\xbe\x76\xb7\x8c\x76\x34\x48\xc6\xfb\xb9\x03\xbb\xe4\xb1\xb2\xb2\xab\xa2\xa2\xac\xec\xa0\xad\xd4\x5a\xfd\x49\x54\x96\xf8\x74\xef\xf5\x96\x6e\x7a\xcb\x22\x9a\xed\x95\x97\xf0\xe7\x3f\x9f\xf2\x52\xdb\xf4\x2f\xa7\xc1\xac\x3f\x8d\xbd\x1a\xf3\x6f\xac\xc6\x74\xaa\xe2\x14\x35\xab\xc0\x38\x7c\xf8\x82\x07\x7c\xf3\x01\x16\x49\x0c\x91\xe8\x05\xc1\x0e\x8f\xdf\xbe\x8e\xd3\xbe\x8e\xd3\x6e\xea\x38\x69\x25\xfa\x0f\xba\x48\x7b\x51\x48\x47\x54\x96\xa9\x46\xaf\x96\xd2\x4c\xbb\x2a\x9e\xd4\x5e\xed\xce\x03\xea\xd4\xfc\x18\xd5\x51\x63\x27\x98\x74\x70\x53\xb8\x95\xbc\xe3\x99\x11\x3d\xf6\x59\xdd\x29\xfd\xb0\x7e\x82\xc6\x83\x2e\xee\x32\xcd\x53\x73\xe4\x24\x00\xf7\x3f\xfd\x4c\x8e\x30\x88\xfe\x1b\xf7\xaf\x08\xff\x74\xed\x45\xb7\xd5\x7d\x6a\x4a\xa0\xb3\x3c\xe4\xca\x7b\xf0\xc6\xc6\x72\xbf\xf8\x8a\xba\xea\x1e\x4f\x54\x91\x4a\xa7\xa7\x17\xd7\x27\x5a\x8d\xe4\x78\x39\x07\x0e\xcd\x6a\x71\x06\xa7\x17\xd7\x2c\xe7\x05\x9f\x0a\xf7\x8c\x51\x54\x9b\xc6\xd4\xc1\xd4\x73\x04\x4d\x76\x26\x48\xe5\x06\x6d\x12\xf8\xc2\xe9\xc5\x35\x26\x97\x74\x60\xce\xa0\x9b\xa2\x9b\xbc\x73\x86\x98\x9b\x1b\xa0\x63\xe2\x87\xec\xfc\xd2\xcd\xc9\xc9\xc2\xc2\x90\xd7\xce\x83\xdc\x42\xe6\x4a\x5a\x45\xaa\x0e\xdd\x95\x8d\xc6\x5c\x3c\x75\x76\x5a\xe6\x99\x44\x1d\x39\xfe\xa0\x42\xfc\x9f\xea\xfb\xae\x2f\xf7\x0e\x6d\x0f\x7a\xcd\x74\x3a\x47\x2c\xa7\x62\x64\x8e\x52\xf4\x71\x83\x48\x00\x80\x9b\x56\xa2\x38\x10\xc9\x67\xec\x74\x22\x90\x50\xb6\x00\xd3\x4f\x83\x38\xec\xca\x8d\x8c\xa2\x5d\xe8\x10\x2c\x8d\x52\x31\x4a\x0c\xc4\x8f\xf4\xbd\x28\x0a\x09\xda\x93\x36\xa4\x43\xb9\xcd\xe3\xc1\x9e\x01\xb3\x6a\x39\x5a\xcb\xe8\xbe\x8e\xc4\x14\xee\x01\xce\x6b\xab\x4d\x32\x82\x17\x4e\x1b\x5a\x6b\x97\xf0\x23\x96\xea\x29\x88\x41\xee\x45\x99\x68\x63\xfb\x70\xd4\x33\xad\xef\xca\xbc\xcb\xe9\xa6\x6e\x72\x6e\x27\x1d\x77\xaf\xf6\xc5\x17\x39\xdf\x3b\x90\x37\x9b\xdb\xd7\x8d\xe7\x61\xe3\xc0\xf9\xda\x2e\x4b\xe0\x7d\x1d\xb9\xd9\xca\xf0\x50\x7c\x05\x36\x89\xed\xe6\x59\xb9\x45\x45\xc4\xf5\x69\x7a\x7e\xb9\x84\x8c\x15\xd7\x8d\x2b\xea\xa2\x2d\x84\xd8\x01\xdd\xdc\x83\x3c\x2b\x0b\x9e\x1d\x32\xe8\x92\xb4\xc3\x01\x3b\x73\xaa\x93\x6b\x3a\xf3\x81\xef\xe6\xed\xad\x62\x8c\x9d\x5f\xbe\x65\xc7\x2a\x62\xeb\x60\xf6\xc3\xb3\x1a\xe7\x52\x5f\xe9\xd2\x82\x9c\xc8\x2d\xcb\x84\x13\xb6\x1c\x0b\xa3\x41\x7d\xda\xfa\xea\x4d\x93\xf9\x8a\x2d\x93\x39\x58\xe6\x6a\x33\x3a\x38\xbf\xbc\xff\xde\x69\x9f\xe7\x97\xf7\x6f\x0e\x19\x37\x46\x8e\x55\x6d\x7e\xcf\x15\x8c\xab\xd3\x55\xa0\xc1\xd8\xa2\x81\x13\x0c\xd6\xff\x7d\xb8\xe2\x57\x1c\xae\xb8\x16\x2a\xb0\xdb\xce\x27\x5e\xcb\xce\x5f\xdc\x3d\x1e\xf0\x3e\x98\x73\x8f\x07\xfc\x1c\x71\x78\x4f\x00\x01\xac\xd3\x2b\xc1\x53\xc7\xe8\xcd\x7b\x6e\x97\x56\x90\x68\x34\xad\x97\xce\xa9\x15\x30\x42\x1d\x33\xa8\xda\x1d\xaa\x2b\xf8\xa6\x1d\x92\x3f\x4e\xe2\xb6\x38\x2e\x61\x1a\x54\x46\x2e\x12\x1e\xd0\xc3\x5c\xfd\x19\x0e\x1d\xe8\x47\x95\xdf\x75\x96\x77\xce\x9d\xea\x78\x5e\xea\x8b\xd9\x81\x05\xe0\x5a\x24\x65\x21\xed\xec\x44\x2b\x2b\x1e\x57\xc8\x08\x8d\xc6\x6c\xa2\xb3\x14\x4c\xac\xfd\xcc\x5d\x17\x66\xe8\xf7\xb8\x36\x27\xa0\x86\x62\xc5\xce\x90\x5a\xe1\x6b\x32\x38\x96\xa9\xa1\xc2\x87\x70\x1d\xf1\x42\x30\x9e\x19\xcd\x88\xa3\x42\xf1\x2c\xff\xcd\xc0\xd4\x07\x1f\x30\xf6\x0e\x5c\x08\xf8\x4a\xd7\x52\x37\x9a\x6d\x99\xe5\x77\xc2\xf5\x9a\x88\x14\xce\x11\x84\x3f\x8c\x1a\x9f\xcf\x2f\xb0\x53\x4e\xd1\x7b\xba\x5a\xcb\xb5\x38\x70\x80\xf0\x0c\x52\x85\xd0\x7b\xc0\x33\xf2\xe3\x7a\x45\xd6\x87\x3b\xf0\x2c\x8b\xb3\x50\x00\x6c\x09\x84\x59\xa0\x95\xcf\xb3\xc5\x22\x80\x59\xa6\x1f\xe0\x38\xfe\x82\x19\x91\x50\x1a\x0e\x2a\xfe\xa1\x83\xf2\xc1\x75\x31\x91\x39\x0a\x55\x55\xa5\x14\xf4\xb8\x84\xea\x25\x74\xa0\xdf\xde\xaa\x5b\xf5\x1a\xdd\x9f\xfa\x01\xbc\xfc\xef\xcf\x4f\x83\xbe\x07\xc8\x71\xd7\xb0\x5e\xf6\x2d\xb6\x32\xc2\x8e\x65\xca\x86\x12\x64\x47\x23\x2c\x3b\x50\xe2\x01\x13\xa4\x42\x5a\x0c\xdd\x98\xb8\x66\x62\x3c\x38\x75\x79\xc8\xbe\xc3\x3e\x73\x51\x4c\x25\x38\x2d\x5d\xbf\x78\x2c\x3e\x5d\xbd\x24\xeb\x43\xf1\xd0\x2f\x1e\xfa\xfd\x7e\xdf\xcd\x15\x8a\x1d\x19\x61\x7b\x35\x1a\x04\x9f\xd5\x54\xa7\x92\x7c\xc9\x15\x25\xdc\x81\xac\x86\x30\x3e\x04\xa1\xb5\x8e\x13\xea\x2c\x20\xe0\x2b\xfb\xe6\xfb\xf6\xbb\xec\x44\xca\xb1\x28\x16\x80\x0b\xe2\xf9\x38\x81\x3d\xe9\x84\xa7\xd2\xf2\x45\x90\x97\xe3\xb0\x7c\xd8\x66\x08\xc4\x58\xb0\x34\x6f\xf1\x0c\x19\xec\x23\xf7\x10\x22\xc4\x9f\xc7\x9d\x92\x50\x45\xd0\x1d\xfd\x1a\xb8\x0c\xda\x5b\x54\x36\x83\x73\x09\x3e\xb3\xda\xb9\x43\x7f\xae\xaf\x50\x49\x33\xf6\xb5\x37\xfd\x74\x0e\x1a\x94\x3e\x1c\xb0\x73\xda\x9c\x09\xbf\x17\x4c\x69\x26\x46\x23\x27\x43\x69\xc5\x44\x3e\x11\x53\x51\x38\xc1\x3c\x1e\xc8\x94\xc9\x84\x71\xf3\xd6\xb1\x96\xc2\xed\x73\x02\x3a\xf9\x94\xe7\xc8\x59\x20\xfe\x27\x95\x85\x07\x91\xa1\xdb\xec\x8e\xcc\xed\x8b\x4f\xea\x4a\x6b\xfb\x51\x1a\xe0\xc8\xb7\x2f\xe0\x8b\xdb\x17\xc7\xd9\x03\x9f\x61\xba\xdd\x08\x51\xcf\xaa\xc2\x9f\x08\x1b\x03\xd7\x30\x6a\xb8\x81\xcf\xa0\x54\xc7\x9d\x38\x83\x3b\xf0\xee\x8e\x59\x0d\x59\x66\x28\x25\xda\x62\x86\x72\x62\x65\xb3\x26\xc6\x99\x17\x3a\x11\xc6\x0c\xd8\x67\x23\x20\x18\x06\xbc\x30\x1e\xed\x46\xd2\x75\x18\xb0\x8f\x7c\x86\xac\x94\xaa\x78\x49\xc5\x9a\xbc\x8d\xb9\xe5\xd3\x6f\x43\x6d\x27\xcd\x06\x88\x21\x3b\xc7\x13\xa9\xfe\x29\x88\xc9\x15\xe1\xe6\xfb\x07\x9e\x6b\x62\xa6\x8b\xfe\x0f\x6e\x23\x3e\xbd\xeb\xdb\x06\x64\xbf\xd0\xb0\xef\xab\x5c\xe7\x21\xef\x98\x62\x18\x63\x32\x83\xf7\xd5\xed\x07\x37\x10\x40\xa2\xfa\x85\xd6\x00\xa6\x54\xa0\xb7\x1b\x3c\x24\x73\x3c\xc7\x63\x8d\xc1\x2f\x72\xca\xc7\x60\x77\xf0\xbb\x64\x35\x13\xca\x94\x85\x8f\x2a\xb1\x15\x50\x04\x0d\xf5\xf9\xfc\x94\xbd\x62\x07\x6e\xac\x43\x20\x3f\xc0\x93\x59\xcd\x8c\xe5\x45\x73\x8e\x72\xe4\xbb\xa0\xa2\x6f\x10\xcc\x57\x60\x39\xa3\x9e\xbb\x5d\x70\x79\x68\x4e\x71\x59\xb7\x5c\x14\x8e\xd4\x50\xb1\xe0\xeb\x3b\x27\x9d\x2b\x31\x35\xf7\xfd\xb3\x99\x07\x71\x6d\xb9\x6d\x9f\x37\xb8\x6d\xa7\x11\x5f\x70\x87\xa0\xbe\x22\xdc\x69\xaf\x70\x34\x33\x74\xbf\x46\x1a\x3f\xc7\x5d\x34\xe2\x83\x54\xe5\xe3\x02\x6c\xbf\xee\xa0\x25\x67\xb5\x6e\x96\x29\x80\x6e\x77\xa9\x39\x96\x7e\x7e\xb4\x24\xe8\xa0\x74\x95\xce\x4b\x57\xfe\xea\x78\xe2\xf5\x1a\x27\xc0\xdf\x5d\xb8\x3a\xde\xc4\xc8\x38\x2b\xb8\x4a\xf5\x74\x6e\xb4\x10\xe5\x55\x91\x95\xfd\x61\xf6\xbf\x7d\x17\x23\x79\x15\xde\xb3\xee\x0e\x0b\x90\x6e\x4d\x4c\x7b\x37\xdb\x91\x2c\x20\x62\x0b\x6e\x16\xdc\x42\xa9\x1a\x34\xeb\xcd\xbb\x10\xa3\x3d\x79\xe9\x16\x22\xa7\xbc\x98\xb9\x87\x13\x49\x57\xdb\x41\xa5\xfd\xd0\xc1\x09\x92\x92\x07\xc4\x09\x7a\x8b\x4e\xfc\x02\x6b\xd5\xb2\x8b\xb0\xec\x2a\x6c\xe2\x12\x9a\x99\xc4\x66\x2b\x7d\xf9\xd8\x0a\x94\xaf\xc8\x5a\x1b\x22\x78\x53\x46\xfd\x20\x2a\x4d\xad\x26\xe2\x25\x04\xe3\x39\x31\xba\x54\x15\x68\x81\x6f\x7f\xe0\x6b\x1d\x37\x8f\xff\x21\x9b\xca\xf1\xc4\x86\xe7\x28\xe3\xa5\x4a\x26\x3b\xf6\xaf\xe1\xba\xb6\x22\xe0\x83\x54\xa9\x7e\x30\xdb\xb2\x9c\xdf\xb0\x9b\xc6\x25\xea\xca\x81\xe8\xeb\x50\xb6\x28\x28\xbb\xeb\x72\x21\x1d\x9c\x9f\xe0\xb1\xe0\xb5\x2b\xd0\xbc\xe1\xfe\xa8\xbb\x3d\x1f\x3c\xfb\x8b\xbd\x53\x5f\xc5\xaa\x52\x51\xd8\x02\xad\xb6\x8d\x22\x26\x5d\x9d\x70\x3c\xb1\xf2\x5e\x9c\x0a\x9e\x66\x52\x89\x6b\x91\x68\x95\xae\xba\x77\xb8\xff\x3c\x63\x69\x59\x70\x6f\x09\x32\xf8\x69\x08\x20\x9c\xf2\x19\xc2\x76\x42\xe2\x0c\x01\xbf\x41\x2c\x6c\x9c\x4d\x03\x95\x74\x6f\x64\xa5\x94\x45\x11\x8b\xf8\xd2\xc0\xf7\x4e\xf1\xc2\x80\xc5\x29\x2f\xee\x9c\xb4\xe7\x2e\x20\xa1\x21\xdd\x41\x3b\x63\x74\x22\x41\xc9\x8e\x4f\x13\x82\x49\x4d\x03\x5e\x49\xae\x8d\x84\xb1\x89\x4b\xed\xfc\xad\xe7\xdb\x02\xac\x76\x82\x55\x75\xa7\xba\x7e\x45\xd0\x08\x17\x05\xaf\x46\x20\xab\x0b\x66\x5a\x5a\x0d\x78\x2e\x54\xf4\xe7\x38\x49\xdc\xbf\x6e\xf4\x9d\x58\xe9\xbf\x5a\xf2\x69\x04\x63\xf4\x30\x11\x50\x31\x96\x07\x54\x7d\x8e\x0d\x99\x85\x96\x55\x9a\x07\xcc\x85\x5b\x82\x26\xf5\x55\xc4\x36\x10\x7f\xab\xbd\xef\xe8\x0b\x8a\xcc\x4b\x88\x51\x47\xa1\xaa\xe1\xa1\x38\xa9\x1a\x24\xe8\x8b\xa0\x10\xcb\x6c\x56\x3d\xa8\x90\x23\x46\x51\x1c\x37\x10\x25\x1b\x8e\x9c\xf7\xb6\x6a\x55\x53\x59\x1c\x17\x03\x5b\xc3\xbc\x83\x63\xb7\x8f\x49\x98\xff\x93\xd4\x8f\x06\x1f\xfe\xaa\x2f\x3a\xd6\x8f\x4e\x95\x99\x0b\xc1\x5a\x6f\xad\xb5\x38\xae\xa5\x0e\x92\x90\x7f\xb5\x24\x7c\x6b\xc0\x2e\xab\x3f\x56\xcf\x00\x6c\x6f\x23\x1a\xc8\xe7\x05\x86\x00\x12\xd7\x25\x1a\x68\x3c\x8b\x24\x93\x90\x8a\xa3\x72\x16\x91\xa1\x93\x75\xec\x5a\x58\x9c\x39\x1a\xc6\x6a\xd2\xcd\x69\xcd\x7a\x73\x82\xde\xfd\x77\x4e\xde\xbc\x7d\xd1\x62\x20\x7a\x19\xb7\xf8\x4d\xda\xc9\xcf\xda\xd8\x0b\x61\x5f\xf6\xea\x3f\xb9\x7f\x53\xd7\x2f\xdd\x99\x7f\x79\xa1\x95\x78\x39\x68\x12\x30\x04\x2d\x55\xd1\x72\x8b\xa2\xa7\x68\xf2\x21\xb9\x09\x7e\x88\x02\x6f\x6e\x34\x5a\xc8\xdc\x08\x5e\x0a\x70\xef\x39\x07\x38\x49\x68\x3d\xc1\xb9\x3e\xe8\xe2\xae\xc7\x66\xba\xc4\x0f\xac\xa6\x2d\x9b\xc5\x44\x12\x8f\x01\x55\xca\xea\xc5\xcb\xde\xc0\xcc\x25\x14\x1f\x66\x82\xf8\xe1\x07\xa9\xee\x56\x31\xa0\xb3\xb9\x0f\x5a\x38\x67\x1c\x2b\x82\x41\xbc\xc4\x49\x4d\xc4\x3c\xa5\xfa\x3f\x48\x3c\x80\x8d\xc4\x87\x40\xa8\x7b\x59\x68\x05\x35\x0f\xee\x79\x21\xdd\x58\xa6\x57\x4f\x84\x33\x33\x65\xf9\x23\x04\x54\x61\x0d\x94\xcc\xcd\x62\xc0\xfc\xf3\xfe\xb6\x76\x8c\x6c\x51\x6e\x64\x90\x08\xe6\xcc\x93\x75\x59\x73\x65\x08\x8d\x98\x34\xa9\x49\x21\xa2\x9d\x9d\xb5\xb5\x22\xe1\x83\x1a\x43\x05\x1c\x89\x45\x1f\x9c\x68\xe2\xa8\x84\x86\x1f\x30\x61\xf4\x81\xa5\xc0\xb5\xe5\x09\x1d\x31\x34\xb6\xb2\x54\x0c\xcb\xf1\x18\xb2\xec\xc0\x26\x0c\x2a\x46\x12\x38\x76\xc5\x14\x00\x95\x12\xac\xfc\x90\x7a\xe4\x86\xc1\x88\x0a\x19\xb7\x07\x2b\x3c\xa5\x7e\x00\xb7\xf7\x5b\x01\x49\x8f\xb9\x48\xc0\xb9\xad\x8b\x14\xb3\xc3\x78\x9a\xc2\xdc\xe7\x57\x88\x1a\x5c\x6d\x55\x3d\x02\x38\xf7\xa2\x40\xf8\x2a\x22\x8b\x29\x87\x01\x24\xae\x86\xa0\x6e\x18\xcf\xf2\x09\x27\xe7\x15\xc1\xea\x81\xd5\x7b\xa2\x21\x19\x07\x0a\xbb\x93\x4f\x1f\xb4\x65\x3c\xef\x30\xde\xd9\xfc\x0e\xfb\x62\x52\x3b\x7e\xcb\xe6\x47\xfa\xea\x1f\x35\xc7\x9d\x8e\x33\xc9\xcd\xca\xf8\xc6\x9f\xab\x96\x14\x41\xa5\xbd\x9c\xed\x35\x5b\xc0\x4d\x83\xed\x39\xbf\xa4\x7d\xf0\x8c\xb5\xce\x04\xaa\x63\x80\x9f\x8c\x64\x26\x98\x8c\x84\xc6\xaa\x68\x0a\xec\x32\x98\x46\xe1\x09\x51\x1a\xeb\xa1\x10\x47\xa5\xc4\xe7\x9d\xee\x62\x58\xe8\x93\x6c\x9e\xcc\x77\xb9\x75\xe7\x97\x27\xab\xd2\x1d\xe8\xd6\xb9\xd6\x2f\x0d\x93\x79\x52\x19\x20\x5a\x78\xa9\xbb\xb9\xeb\x95\xd9\x6f\xcc\x88\x36\xa6\xc3\x61\x62\x0a\x9b\xfa\x2c\x4a\x61\x6c\xb0\x82\x78\xee\xd9\x98\x3d\x7d\x11\xaf\xe0\x9c\x62\xd0\xf0\x30\x92\x6f\xd3\xeb\x1c\x85\x6d\x1c\x43\x30\xb4\x84\x8c\xad\xea\xb4\xed\x6a\xf5\x97\x2b\x11\x1b\x1b\x2b\xca\x65\xfa\xb4\xfb\xd1\x21\x8a\xb5\x2e\x6d\xfa\x8f\xbc\x91\xfd\x52\xa7\x73\xee\xb7\x5e\xe3\x06\x43\x7b\x4f\x63\x83\xce\x6d\x4e\x7a\x72\xdf\x67\xa4\x83\x40\xb7\x81\xe8\x02\x46\xfb\xcb\x32\xcb\xae\xc1\xb3\xb8\x8a\x4f\x9d\x37\x9a\x2f\x62\x56\x21\x56\x05\xc4\x07\xe3\x1b\x53\xbe\xbd\x5b\x50\xd8\x17\x72\x26\xc0\xd9\xcc\xcb\x8c\xd2\x77\x43\xea\x3b\x4c\x90\x8c\x78\x3e\x69\x92\x6c\x1f\x68\xe0\xa9\x91\x0d\xa2\xba\x71\xb0\xe0\xe6\xe1\x86\x4a\x0b\x39\x11\xeb\x5e\xa6\x25\xcf\x60\x20\x27\x62\x4d\xbd\x55\x17\x9f\x7e\x92\xa3\xa7\x34\xa7\x01\x7b\xa7\x0b\x46\x80\xdb\x3d\x3f\x7d\xc0\x84\xd0\x23\x96\x82\xe0\xd4\x43\x26\x8a\x52\x14\x09\xbc\x88\x86\x4a\xf3\x70\x32\x36\x3d\xa4\x6b\xe7\xda\x54\xcf\xf7\x11\xd2\xe1\x1b\x92\x6b\xa5\x1a\xf7\xe1\x2f\x6e\x21\x34\x52\x5f\xab\x3e\xef\xcf\xc5\xd3\x6e\xcb\xb1\xa1\xda\x51\xb3\x5c\xe8\xd7\xfe\xf2\xba\x05\xad\x2d\x73\xa2\x28\x98\xc9\xdf\x79\x9c\x66\xb9\xd8\x3a\x70\xae\xa4\x8d\x5b\xb9\x9d\xc6\x04\x5d\x34\x18\xa2\x2c\x97\x17\x12\x61\xcf\x6b\xfd\x01\x1e\xae\xe5\x85\x25\x3b\xa5\x3b\xf1\xb2\xd6\x1f\x58\xb9\x4c\x95\x82\x2c\xb1\x76\x8e\x4c\x05\xc1\xe1\x82\xaa\x13\x99\xc2\xa2\x72\x9f\x3c\x49\x74\xe1\x13\x6f\x31\xac\x12\x06\x0b\x9a\xd5\x04\x2f\x20\x1c\x78\xae\x9a\x23\x83\x28\x50\x4c\x6b\x42\xa7\xe7\xeb\x25\x64\xf8\x31\x3e\x75\x3a\xd8\x9c\xfd\xb6\x41\x11\x9f\x70\x0c\x53\xfd\xe0\xb3\xc4\xbc\xa4\xdd\x63\x21\xda\x0d\x93\x3e\x4d\x8f\x7d\x70\xea\x63\xfc\x07\x5d\xa0\x9d\xb0\xcc\xe9\x4f\x38\x7b\x2f\xca\x5e\xc5\xe9\xd5\x18\x1b\xdd\x58\x0c\xa4\xc8\x73\x34\x4e\x39\xce\x49\x56\x28\x4a\xaa\x8e\x8c\x66\xc3\x19\x1b\x51\x11\xdb\x38\xcd\x9e\x5e\xcf\x23\xac\x53\x14\x5c\x5b\x55\x14\xec\x2c\xa7\x00\x6a\x28\x65\x86\x75\x37\x21\x27\x1f\xf5\xab\x10\x72\x84\xc0\x20\x45\x80\x08\xd0\x1e\x22\xa0\x4e\x69\x33\x60\x1f\xe4\xd4\x47\xfc\x44\xc6\x72\xd9\x20\x2e\x98\x91\x8c\x9c\xca\x8c\xbb\xc3\x62\x26\x90\xcd\xd7\xdc\x82\x6e\x76\xab\x96\x48\xdb\xed\xd2\x02\xdd\x64\xfb\x11\xfb\xfa\x77\xb5\x6b\x29\x9d\x8a\x2e\xc5\x38\xa8\x19\x9a\xf3\xe9\xc8\xd5\x40\x42\x02\xba\x14\x80\x0e\xf0\xca\xaf\x12\xb0\x07\x30\xf8\xcc\xc9\xf0\x10\x0e\xd4\x8b\xc1\x34\x44\xe1\x4b\xbd\xf9\x3f\x98\x46\x8f\xd6\x17\xe0\xea\x31\x6e\x4c\x39\x0d\xe8\xeb\xee\xd0\x13\x0b\xa9\xd0\x37\xfc\x95\xdb\x40\xe2\x70\x63\x2c\x82\x80\xea\x56\x20\xbe\x6b\x0e\x55\x0b\x8d\x2b\xe8\x1f\xc4\x03\xa3\x7f\x11\x30\x07\xb1\x38\x5b\x94\x22\x36\xa9\x81\x98\x28\x6d\x05\xf5\x33\x60\xd7\x2d\x5f\x82\x7d\x85\x5a\x40\x4e\xf3\x50\x44\xb9\xf9\xd4\x4f\x03\x3f\xa2\x22\xfb\x26\xb2\x41\x65\x61\x3c\xc2\xb4\x1a\xf7\xfa\x43\x2d\xca\xa3\xf5\xab\xc8\xeb\x7b\x51\x4c\x04\x9f\x4b\x15\xf8\xfa\x8a\xf6\x7f\xa2\x99\xc6\x35\x33\x6c\xf4\x26\x30\xbf\x94\xd8\x31\x84\x51\x93\x04\xda\xc4\x43\x85\x60\x4e\x06\xcb\x2b\x74\xf1\x62\x55\x9a\xb9\x18\x40\xf2\x52\xe4\x01\xc5\x96\x5b\x28\xd8\x87\x01\x86\x10\x1a\x41\x4e\xe3\xb8\x9f\xa8\x49\x12\x00\xe3\x03\x4c\xc8\xca\x96\xee\x8c\xa2\xa5\x25\xed\x55\x4b\x82\xa3\xe6\x4d\x50\xe8\xdc\x74\x4a\x04\x06\x99\x86\xf4\x09\x7c\x24\x57\x0f\x01\xab\xa3\xa4\x9f\x96\x6e\xe8\x78\xa3\x51\x75\x12\x13\x36\x2b\x04\x4f\x67\x0c\xa2\xec\xce\x47\xf5\x91\x50\x52\x81\xc3\x49\xa2\x49\x30\xf1\x92\x08\x4d\x02\x7c\x8f\x85\xad\x6c\xe8\x37\x95\x0b\xd6\x2b\x38\x5e\xf8\xae\xc1\x8a\xc4\xc3\xf6\x18\xa0\x2a\x3c\x48\x23\x1c\xcf\xa2\x95\x41\xa5\x19\x0c\x0a\x83\x27\x9a\x62\x71\xb9\x61\xbf\x8b\x42\xaf\xca\x8a\x10\x6a\xc2\x55\x82\xac\xee\xe8\x4e\xe4\x06\x52\x21\xe0\x82\x7d\xfb\xea\xf5\x5f\x5f\x7d\xfb\xed\x1b\xb8\x72\x9e\x2e\x83\x69\xba\xcc\xb4\x06\x12\x4a\x54\xcd\xe9\xfe\xf5\xe0\xf5\x9b\xde\xba\x26\xb7\x4b\x9d\x06\xb2\xb5\x9b\xda\xba\x5c\xf7\xbc\x10\xee\x99\x90\x5a\x75\x72\x38\x5c\x36\x9a\x7b\x4c\x81\xcb\xca\x01\xe1\x7b\x44\x93\x24\x05\x58\x64\xfa\xc1\xcb\xc0\xd2\xce\x06\xec\x93\x02\xdd\xe9\x42\xdc\x3b\xd5\x89\x7a\xfd\xe0\x1a\x5d\x86\x36\xb1\xe5\xb9\xad\x45\x14\xe0\xb9\x33\x3b\xe6\x85\x56\x97\x61\xfe\x61\xa0\xe5\xe4\x5d\x5a\x5e\x82\xba\xe8\x10\x89\xe7\x9b\x92\x0e\xcf\x7e\xe5\x85\xd4\xa5\xf1\x9e\xf0\x44\x4f\x73\xad\x80\xc9\x85\x2a\x96\xb8\x62\x78\x96\x50\xee\xac\x3a\x89\x61\xb9\x01\xb8\x27\x2c\xe6\x38\x30\x80\x93\x76\x1e\x23\x01\x42\xea\xde\x0f\x55\x50\xca\x16\x05\x6e\x44\x23\x23\x77\x69\x65\x28\x9e\x45\x9a\x78\xa2\xd0\x8d\x9f\x47\xa8\x4f\x86\xbd\x80\x98\x5d\x54\x17\xbe\x57\x09\xdf\x45\x6d\x65\xcb\xbc\xf5\xdf\x7d\xbb\x81\xb7\x3e\x6f\x4e\x68\x35\xca\x54\x64\x6c\x90\x51\xe0\xac\xb7\xd6\x54\xc7\xfc\xf6\x05\xd9\x67\x1c\xaf\xe8\x27\x85\x04\xf7\x76\x88\xbd\xa6\x1f\x29\xf3\xb6\xf6\xbb\xd3\x56\x1e\x74\x48\x94\xb8\x13\xb3\x07\x5d\x04\xec\x30\x3f\x6a\x4d\x43\xa1\x61\x11\x56\x80\x7c\x6b\x10\xd9\x5a\x90\xa2\xd9\xd2\x78\x36\x60\xc7\x6a\x86\x2c\x13\x55\x41\x2f\xfd\x78\x86\x3b\x9c\xc5\x3e\x8d\xda\xee\xf9\xa4\x3f\x1a\xcd\x49\x30\xb0\x9f\x0b\x2d\x59\xd5\xf1\xf4\x7c\xde\xc7\x6a\xeb\x02\x18\x31\xe1\xa5\x15\x54\x82\xdb\xff\xbc\x19\x4c\x4d\x95\x40\xb5\xd2\x9c\x55\xdb\x52\x0e\x2f\x86\xd7\x48\xc7\xe8\x8c\xa3\xf9\x0a\x77\x38\xb9\xb7\xa1\xba\x25\x85\x96\x03\x76\xec\x15\x74\x7c\x14\xc1\x1f\xe4\x3a\x83\xe2\xae\x75\xfb\x00\xb6\x38\xbe\x38\xf5\xba\x33\x41\xa5\xd4\x43\x8d\x50\x9a\xa9\xcf\x04\x1e\x61\xc2\xac\x11\xff\x2a\x79\x86\xfe\xdd\x9b\xa2\x14\xb7\x2f\x36\x7b\xc7\xd0\xe0\x7b\xf4\xea\xd5\xab\x1f\xe1\x19\x83\xc9\xfd\xaf\x6f\x7f\xfa\x5f\xdf\xfe\xf4\x14\x59\xac\xf5\x34\xb8\x8e\x9a\xdb\x82\x4d\x8e\xcc\x19\x2b\x61\x04\x30\x6c\x3c\x72\x95\x37\x52\x8b\xa2\x5c\x78\x60\x9b\xf4\x46\x61\xde\x43\x8f\x7d\x52\xef\xb0\xe4\x54\x0f\x9f\xad\x9a\x41\x1b\x1b\xed\x14\x44\xe7\xe8\x1b\x5a\x5e\x1f\xa7\xbc\x51\xda\x45\x10\x8b\x3a\x30\xb6\xab\x46\xf3\x5a\xc6\x5f\x4d\xb2\xa3\x7b\x2f\xab\x80\x2e\x3a\x61\x18\x6a\xda\xf3\x19\x31\xc1\x3d\x5d\x92\xe9\x15\xc3\xcc\xbd\xe3\x01\x19\x45\xbd\xeb\x20\xbc\xc7\xf0\x88\x8e\xad\xa4\x2c\x41\xf1\xae\x0d\x8b\xaf\x28\x55\x3d\xec\x3f\x52\x7d\x6f\x5f\x64\x62\xcc\x93\xd9\xed\x8b\xfa\x48\xb1\xbb\xc2\xcf\x18\xcd\xd8\x92\xea\x4e\xe1\x88\x54\xc9\x50\x11\xba\x6e\x75\xbe\x43\x49\x69\x9c\xa4\x67\x65\x3e\x48\x1a\x8d\x70\xc5\x16\xb2\x25\xf5\xd4\x87\x69\x04\x99\x12\xeb\xa4\x09\xcb\xbd\x58\xd2\x2e\x50\x7e\xbf\x09\x7a\x96\xb7\x12\xac\xfd\x0c\xd6\x36\xc5\xf1\x75\x69\xc0\x3e\x42\xd2\x56\x60\x6a\x61\x84\x65\xaf\x44\x7b\x27\x9e\xbe\x55\x17\x1b\x2c\x70\x61\x7e\xe7\xda\x5c\xac\x99\x2a\xba\x34\xd4\x68\xf7\x99\xa2\xed\x01\x1a\x70\x44\x07\x8c\x5d\x0b\x82\xf9\x8a\x23\x42\xa1\xfa\x37\x11\xb1\xca\xf3\x04\x2b\x26\x8a\x73\x8b\x68\x16\xc7\xf7\xad\x38\x15\xa7\xa1\x48\x78\x3d\x2c\xd0\xc7\xa7\xba\x5f\x29\xcc\x22\x93\x1c\xcd\x22\xf5\x96\x28\x12\x56\xfd\xbc\x05\xff\xa4\x99\x6b\xc3\xa4\x32\xd6\xe9\x5a\x9b\x9c\x82\x66\x67\x2b\xc3\xac\xe6\x47\xaf\x38\x93\x97\xb5\x1b\x2b\x26\x7f\xd6\x1c\xd7\xeb\xf6\x44\x58\x6e\xee\x2a\xe3\x8e\xe8\x13\xa2\x1a\x9e\x83\xe8\xef\xb4\x96\x3e\xd9\xb3\x17\x18\x7c\x96\x52\x63\xc2\x0b\x71\x89\x19\x08\x17\xde\x1b\xb7\x8a\x20\x13\x30\x4a\x33\x23\xd5\x38\x13\x21\x7f\xa1\x72\xe6\x0d\x85\x7d\x10\x24\xfe\x34\x13\x89\xe2\x24\x5e\xc2\x14\x45\xb6\xe6\x78\x77\xed\x3d\x26\x93\x0b\x28\x67\x9a\xdd\x4b\xf1\x80\x66\x04\x39\x56\x3c\xf3\xa3\x0a\xd2\x4f\x50\x86\xad\x8f\x12\xdc\x8c\x21\x16\x67\x3e\xe9\x62\x2e\xe1\xa2\xf6\xb2\x04\x9c\x9a\xcb\xf3\x53\xf6\x7a\xc0\x7e\x46\x07\x34\xf4\x75\xdd\x46\xb9\x10\xea\xa3\xed\x84\x2c\x19\xbb\x76\x39\x9b\x72\x88\x98\x57\x6b\xb3\xe8\x51\x99\x65\x33\xe6\xa4\x46\x64\xc7\x97\x3a\x9d\xf7\x2d\xdf\xbe\xc0\xf2\x00\xfe\x07\xac\x0d\x30\xc0\x3f\x86\xb1\x6b\x7f\x75\x5c\xbb\x82\x97\xc7\x5f\xcc\x7d\x42\xbf\x92\x7e\xc3\xe2\x0f\xdb\x12\x4e\x5b\xde\x76\x90\x76\x39\x7d\x09\xb3\xe4\x80\x69\xbe\xc1\xad\xb7\xa2\x98\x4a\x05\x66\xd2\xf7\x05\x4f\xc4\xa5\x28\x24\xb0\xf1\x5d\x45\xbb\x2b\x21\x10\xc0\xdb\x8f\x24\xd8\xd8\x0d\x04\x44\xc7\xc4\x37\xd0\x78\x9c\x3a\x85\xd9\xc6\x2c\x15\x99\xa8\xec\x6c\xcd\x50\x75\xa5\x55\x5f\x89\x31\xaf\x05\xab\x83\xb6\x8c\x36\x31\xd4\x98\x82\x02\x4a\x9d\xc9\xe9\x54\xa4\x8e\xc7\xba\x41\x7d\xe4\x06\x7e\xe0\x94\x2a\x99\xf5\x6a\xe2\x0a\x4c\x91\xe5\x40\x8c\x7a\x08\x87\x67\xb0\x30\x62\xad\x19\x31\xbf\x36\x62\xf0\x91\x0d\x0a\xbb\xbf\x9e\xde\xdc\x5a\x09\xd7\xa0\x03\x01\xa8\x01\x67\xd1\xbe\xf8\x9b\xed\x2f\x2a\x26\x9b\x11\xec\x70\xd4\xa1\xfb\x7a\xa4\x8b\x44\x0e\xb3\x19\x9b\xf0\xcc\x56\xf5\xa6\x21\x11\x00\xbb\x19\xb0\x6b\x61\xe3\xe5\x67\x5a\x8d\x61\x72\x9c\x92\x1d\x1f\x73\x34\x47\x26\xee\xae\x95\x39\x8e\xe7\x9e\xa4\x99\x2e\x17\xe4\x3b\x7e\xf7\xca\x2f\x75\xe7\x69\x03\x56\x67\x02\x09\xba\x9e\xbe\x5a\x19\x1e\xa2\x1e\x76\x1c\xaf\x75\x13\x7a\xde\x49\x1d\x88\xeb\xdc\xe9\x98\x27\x51\x7a\xc2\x0a\xfb\xd8\xa2\xef\xa2\xa2\xc0\x13\xfd\x10\x17\x03\x00\xdb\xa3\x2e\xc7\x13\xf4\x9f\xc1\x87\x8c\x27\x85\x86\xf2\xf6\xd8\x9d\x87\x0e\x1c\xb0\xeb\x3a\x3a\x7f\x1d\x93\x1f\x9e\xab\x07\xfe\xff\xb3\xf7\xee\xbd\x8d\x1b\xd9\xbe\xe8\xff\xe7\x53\x14\x3c\xf7\xc2\x76\x20\xc9\xed\x74\x26\x7b\x76\x6f\x6c\x1c\x38\xb6\x7b\x62\x4c\xda\xad\xb1\x9d\x04\xe7\x1e\x6f\x4c\x4a\x64\x49\xaa\x6d\xaa\x4a\x61\x91\xb6\x35\xd8\x1f\xfe\xa2\xd6\x5a\xf5\x20\x45\x49\xd4\xc3\x6e\xa7\x47\x18\x60\xe2\xa6\x8a\xc5\x7a\xae\xf7\xfa\xad\x99\x2b\xc8\x30\x90\xa9\x30\x2c\xa4\x87\xb9\xc1\xd4\xed\x90\x75\xa3\x23\xd1\xc1\x86\xe8\xc9\x47\xa1\xfa\x3a\x35\x38\x3d\x6f\x6e\x64\x67\x59\xc6\x16\x2e\x19\xdc\x82\xb3\xeb\x8b\x9d\x67\x0b\x2c\x5a\xec\xed\x9d\xac\x99\x34\x45\x77\xc2\xa7\xdd\x07\x31\x33\x15\x28\x97\xca\xe9\xf8\x9b\x98\xd5\x13\x0b\x2d\x11\xf8\x59\x11\xfc\xb7\x5d\xb7\x78\x30\xff\xb5\xe2\x8b\x6e\x78\x13\xbe\x3a\x2e\xb0\xe2\x01\x5e\x34\xa0\x2d\x1c\xc1\x54\x50\xbb\x65\x28\x0a\xb5\x0e\xb5\x77\x21\x80\x18\x0b\xbf\x0f\x66\xab\x43\x53\x36\x2c\x00\xee\x06\xb9\xd3\x63\x45\x15\xf6\xdf\x8e\xa7\xbe\x93\x0b\xbb\x7a\x7f\xb3\x67\x31\xec\xd5\xff\xaa\x8d\x6d\x31\xf4\x90\x8b\x2a\xfa\x5f\xb5\x53\xb8\x49\x92\xdf\xca\x8a\xfa\xae\x4d\xec\xec\x9c\xcf\x0c\xa8\xe2\x59\x3b\xa0\x1c\x7c\x30\xe1\x33\x66\x2f\x72\x06\xad\x78\x52\x94\x3c\xc3\x8a\xf6\xd8\x16\x8d\xd1\x1d\x26\xc8\xe6\x9c\xcd\x2a\xd5\x2b\xe0\x08\x62\x24\xb1\x63\xe2\x2e\xa6\xc4\x2e\x45\x12\x00\x19\x72\x9d\xb1\x69\xc6\x55\x9b\x22\xe4\x11\x48\xf4\x0a\x2c\x2a\xc2\xb4\x77\x59\x64\x7e\xe0\x9b\x9c\xf3\x8d\xb1\xab\x77\x60\xfd\x0c\x30\xff\x2f\x71\x13\x6a\xe0\xd8\x5b\x91\x2a\x7f\xc4\xf1\x00\xad\x24\x5a\x77\x54\xfd\x01\x0a\x9d\x68\x45\x60\x12\x56\x66\xac\x26\xbd\x61\x50\x94\x92\x43\x10\x79\x63\x50\x53\x13\xc5\x27\x81\x9f\xb9\x2c\xa6\x25\x10\xc2\xdf\x30\xca\xd2\xca\xa4\x56\x66\xfb\x6d\xf7\x5b\xce\x55\xa4\x60\xbb\xe2\xb0\x2f\x13\xad\x74\x5b\xab\x3c\xbb\x81\x20\x35\x9f\x51\xd3\x72\x93\x88\x18\x60\xc0\xdf\xac\x39\xbf\x06\xaf\xba\xd5\xbc\xe6\x32\x6d\xda\x39\x5a\xa7\x71\x99\xdf\x2f\x9f\x32\xb2\xcb\x85\xc7\x84\x80\x55\xf2\x79\x80\xbd\x25\xe3\x87\x7d\xcd\x72\x66\x94\x20\xa3\x58\x4e\x67\x5f\x70\x25\xbc\x24\xea\xc4\x33\x11\x0c\x9d\x9b\x98\xb8\x2a\x81\xaf\xdb\xdf\xdf\x5a\x2c\xe5\xdc\x25\xbe\x73\xb5\x87\xb0\x4c\x34\x33\x65\x62\x55\xa7\x61\x99\xd5\x5f\x0d\x80\x57\xe8\x02\xfb\xcf\x08\x3d\x68\x52\x29\x34\x4d\x61\xb1\x8d\xef\x1a\x9f\x32\x8e\xf8\x4e\xff\xd2\xb4\xa0\x5d\xa5\x90\x33\x36\x2e\x27\x5c\xb1\xf6\xb5\x42\x9e\xc6\xb3\xf8\xa4\xfa\x5a\x88\xa1\x18\xcb\x06\x41\x7f\x68\x18\x49\xaf\xdb\xc5\x43\xce\xb5\x77\x66\x42\x20\x33\x4f\xde\x78\x88\xbe\x65\x88\xdb\x30\x64\x08\x44\xfd\x2f\x78\xa8\x7c\x35\xb4\x28\x75\xcf\x47\xe0\xe5\x00\xe8\xc1\xad\x8e\xc7\x0d\x0b\x31\x31\xec\x51\x26\x85\x9c\x18\x38\x95\x12\xa3\x9f\x64\xee\xcd\x3a\x15\xdb\x05\xda\x46\xaa\x4a\xa0\x87\xb4\x1a\x95\x3c\xe7\xaa\x10\x22\xe0\x6b\xc5\x9e\x8e\x5a\x2c\xa0\x74\x25\x97\x82\x5a\x6a\xa5\xb7\x54\x24\x00\xf8\xaf\xad\x78\x95\xf8\x44\x3f\x26\x32\x23\xb0\x4c\xa1\x1c\x3a\x57\x3e\x14\x5f\x1a\x88\x44\x4f\x04\xe3\x8f\x5c\x66\xb0\xe7\x46\x6b\x40\xe1\xa9\xf6\x0b\x70\x3c\xa1\xf3\x11\x4d\x34\x14\xc2\xac\x8c\x0a\xfd\x81\x14\x99\xe1\x1d\xfa\x10\xd7\x48\xe5\xe1\x1c\xd2\x21\xda\x82\xc2\x6a\xf6\xd8\x19\x86\xb5\x9a\x32\x83\xf4\x21\xbf\x4e\x94\xab\x99\xca\x21\x64\x16\x14\x68\xa3\x71\xf9\x1d\x2e\x78\x36\x32\x05\xe1\x91\xdc\x86\x42\x4e\xc7\xdc\xac\xac\x9a\x62\x3f\x35\xa6\x3c\x0f\xc8\xd5\xa7\x80\x51\x89\x99\x20\x76\x11\x9c\x0b\xa7\x9c\x00\x08\x8f\x1e\x52\xc5\x48\x97\xd6\x83\x37\x47\x16\x86\x79\x1a\x83\xf4\x32\x72\xfa\xc3\xe5\xee\x38\x77\xbf\xb1\xe2\xbc\x4a\xfd\x05\x45\x3c\xd0\x60\xbe\x8e\xf2\x57\x22\xcf\x10\xf2\x75\xe8\xc9\x47\x1b\x60\x49\x3f\xbc\xd5\x91\x86\x40\x38\x11\xf0\x86\xc3\x2a\x00\x93\x9a\xdd\xf8\xa9\x36\x46\xda\xb3\x82\x13\x47\x47\x11\x40\x61\xf6\x05\x44\xdb\x7d\x40\x58\x4a\x9d\x02\x9f\x18\x80\x95\x3f\xb1\x84\x35\x80\x67\x46\xae\x48\xa7\x55\xd8\xcb\xd7\x50\x67\x30\xe2\x29\x98\xe0\x63\xfb\xc4\xeb\xe9\x92\x69\x43\xa2\x22\x61\xde\x53\xa0\x65\x0c\xe0\x18\xee\x0f\x37\xec\x49\x00\x16\x08\x36\x33\x53\x7b\x9c\x52\xfd\xa4\x2c\xc5\x07\x2b\x24\x7e\x08\x40\x4f\x81\x38\xb8\xbc\x71\xe4\xcd\x09\xf8\xac\x01\x22\x95\xdb\x47\x76\xbb\x6e\xd0\x80\xd9\x30\xf3\x81\x2e\x15\x42\xd8\xb8\xa0\x69\x95\x2e\x70\x7a\x00\xe3\xaa\x4e\xeb\x6c\x01\x30\x84\xdd\x1c\x88\x5b\xc4\xef\x42\xf6\x83\xf4\x0e\x0d\xe7\xb8\xd0\x43\xe4\x83\x80\x7a\x99\xbb\xdc\x0e\x48\x54\xbe\xb5\xfc\x57\xa4\x22\xfd\x00\x36\xa4\x79\xa7\x08\x4e\xc2\xde\x73\x67\xab\x06\x7b\x34\xf1\x6d\x9c\x46\xc5\xc1\x2e\x7c\x96\xca\x47\x48\x35\x59\xa3\x63\x5a\x94\xe6\xb9\xda\x95\xac\x8e\x61\x88\x51\x16\xfe\x92\x50\x43\x21\x81\xb0\x89\x67\xe9\xad\xbd\x4a\xab\x2e\xd8\xc0\x9d\xca\x9b\xb3\xa7\x6a\x77\x74\x1e\xf1\x10\xf6\x5c\xf5\xa6\x0f\x90\xcf\x05\x95\xf5\xe8\xba\x39\xbd\x59\x44\x71\x73\x74\x12\x68\x01\xf4\x00\xc6\x91\x76\x58\x31\x9b\x12\x46\x89\xab\xba\xa7\x98\xc8\x73\xac\x23\x4b\xf8\xd9\xc4\x4f\x43\xad\x46\x6d\x8a\x38\x24\xcf\x5e\xa7\x5d\x0b\x2d\x48\xd0\xd6\xa7\x83\xb5\xaa\x15\x4d\x74\x70\x37\x85\x25\xe6\x25\x5c\xdf\xd9\x26\xf4\x1b\x4a\x63\xac\x18\x38\x36\x22\x7f\xbb\x1d\x4b\x5c\xf9\x68\xc1\x5c\xae\x2a\x15\x3e\xa5\xa9\x9b\xda\xdf\x15\x4e\x5f\x8d\xc2\xfd\xe9\xed\xab\xbe\x8b\x8c\xec\x63\xcd\x61\xcc\xb3\xf1\xdf\xe1\x05\x0a\xb9\xa7\xe4\x91\xf0\x69\x44\x7a\xc8\xa0\x3e\x06\xe6\x75\x3f\x7e\x1f\x63\x0d\x48\x43\xa1\x27\xb0\x72\x90\xf6\x1d\x68\x49\xe8\x7b\x26\xea\x71\x72\x3b\xb0\x56\x5c\xf5\xdf\x78\x82\xf6\xef\xda\x40\x38\x4f\x0b\x4e\xfe\xf7\x92\x67\x14\x1a\x4b\xae\x7a\x76\xf4\xf7\xcf\xb7\xc7\x18\xe6\x23\x87\x70\x6b\x2d\xef\x9d\x2f\x4d\x12\x90\x5b\x1a\xd3\x5f\x20\xde\xa2\xaf\xd3\xbf\x7f\xbe\xc5\xd8\x22\x88\xbd\x00\x1d\xdb\x8b\x5e\x7f\xff\x7c\x8b\x1f\x12\x66\x53\x0c\x7e\x4c\xed\xc8\xf5\x54\x1b\x9e\x99\x13\x8c\x11\xa2\xf1\x74\x7f\xd7\xf3\x25\x27\x76\x56\xcf\xef\x8c\x0d\x72\x29\x86\x51\x15\xbf\x4d\xb5\x07\xa0\xb2\x3d\x06\x55\x4b\x0f\x2f\xad\x78\x2d\xd2\xc3\x8d\xea\xfc\xa1\x02\xf8\x9a\x85\x1e\x6f\x3e\x9e\xb3\xf7\xef\xdf\xff\x3b\x03\x54\x5b\x10\xc7\x24\x7a\xa4\x83\x5a\xef\x42\x62\xb9\x61\x3c\xb1\xdc\x26\x13\xe9\xa8\x2a\x19\x65\x3e\x62\x5d\x9a\x18\xf2\xcc\x81\xe7\x42\x52\x72\xda\x24\x1e\x1d\x99\xe3\x0a\xc6\xcf\x6e\x91\xe6\xee\xc4\x64\x9a\xad\xac\x4c\xe0\x5a\x45\x9e\x37\xce\x0a\xf7\xd0\x8e\xce\x87\x0b\x27\x7a\x2a\x85\xb3\x44\xe7\xc2\x45\x14\xb7\x04\xa5\xdb\x17\xd2\xf9\x62\x85\x74\xf6\xa5\x62\xbe\x96\x52\x31\x98\xb0\xdf\xbe\x58\x0c\xee\xcd\xa1\x79\xbd\x82\x31\x7e\xd2\xcd\x01\x03\xf3\x34\xa9\xd5\x92\x34\xd1\x35\x40\xd2\x5c\xb6\x0a\x11\x69\x0b\x74\x04\xab\xf2\xc7\xf8\x26\xce\xbc\x41\xa7\x93\xcc\x4f\x6e\xa4\xbd\x17\x59\x25\x2b\x83\x82\x59\xd2\xd4\xec\x85\x2b\x09\xbf\x7f\xfe\x82\xd5\x72\x3c\xe7\xa8\x34\xd8\x41\xc5\x1c\xd7\xf1\xea\x82\x6d\x71\xcb\xb9\xc2\x6d\xee\xc7\x7d\x01\xb7\xb7\xcd\x77\xd6\x2c\xe0\xe6\xef\xdc\xee\xbd\xb4\xfe\x44\x6f\x63\x98\xdf\xb3\xd1\xaf\x85\x8d\xee\x2b\xae\xe1\xf3\x57\xe0\x21\x2f\x52\x79\xad\x22\x02\xb4\xe2\x23\x00\xaa\x1d\x54\x1c\x08\x77\xe5\x05\x27\xc8\x00\x22\xd3\x60\x86\x09\xb0\x8f\x4e\x26\x08\xfa\xd0\x6a\x76\xb3\x97\xf9\xe6\xee\xaf\xa9\x6e\x52\xab\xe5\x98\x43\x4c\x5f\x3a\x73\xc2\x4c\xf1\x8c\x18\xe3\xa1\x8d\x84\x38\xcd\xa8\xa8\xd4\xb2\x38\xba\xb7\x21\xdd\xad\x3e\xfb\x79\xf1\xa4\xf3\x67\x0c\xbe\xbb\x05\xf6\xb1\xf4\x02\xcc\x37\x8f\x23\xce\x38\x73\x2d\x5c\x61\x2a\x0f\xdf\xd1\xa6\x38\x5c\x8b\x9a\x83\x1f\x6f\xa9\xd8\x60\x05\xd2\x03\x2a\xa8\x61\x1e\x3c\x98\xd6\x0a\x8d\x61\x90\xec\x93\x47\x75\xaf\x37\x09\x05\x1d\xc8\xf4\x82\x36\xf8\x29\x84\x31\xab\x91\xf7\x09\x5c\x3e\xf7\xd8\xfd\x81\x78\x2e\xbe\xbb\x3f\xe8\xb0\xfb\x83\xe7\x21\x16\xc3\x9a\x78\x94\x60\xe0\xa4\x04\xb6\x05\xe9\x11\xd8\xb8\x5e\xd9\x66\xb3\x1c\xe5\xcf\x2a\x5b\x95\xb9\x1a\x87\x9f\x43\xce\x08\x3b\xb2\x6f\x9e\x3c\xe5\xb2\x10\xc7\x3d\x40\xcf\xfa\x0c\xa1\xc6\x1e\x95\x7a\xa8\x73\xf2\x0f\xfb\x1f\x5d\xfa\xbe\x54\x0c\x77\xf7\x93\x5d\xc0\x45\xc8\x3d\x4b\xf3\x4f\x70\xeb\x57\xa2\x30\xfe\x42\xcd\x08\x2b\xcc\xae\x64\x6a\x0f\x3d\xa0\x20\xce\x9d\xa4\xdd\x56\x86\xf4\x43\x5c\xc5\xda\x56\x5e\x20\x48\x82\xcd\x45\x7a\xeb\x11\xc2\xee\x44\x3e\x59\x72\x87\xce\x5c\xa6\xe8\xd4\xbd\x1a\xa3\x8b\x15\x22\x9f\xf8\xdc\x56\x70\x14\xc2\x38\x28\xcb\xd4\x67\x9e\x3e\x09\x88\x48\x78\xc7\x8e\x64\x4f\xf4\x98\xb4\xe4\x99\x33\xa5\xbb\x7a\x7a\xdc\x63\x67\x4c\x95\x59\xd6\xe2\x03\x4a\xfb\xfe\xa9\x23\x83\xde\x7e\xdf\xd7\xea\x6b\x3b\xf5\x20\x8e\x1b\x13\xe5\x18\x72\x09\x56\x6f\x19\x75\x3e\xc3\x28\x03\x0f\xca\x64\x27\xd4\x99\x83\xf0\x99\x07\x81\xc1\x25\x5b\x90\xc4\x88\x3f\xae\x38\xb0\xbf\xe2\xa2\xd7\x3f\x55\x01\xcc\xae\x7e\x53\xd5\x26\xe6\xc1\x21\x73\x28\x3a\x79\xda\x3d\x7d\xf7\x6e\x37\x80\x15\x2d\xcf\x3d\xcd\xb3\xd3\xb8\x7d\xdb\xdf\x05\x3d\x58\xca\x3d\xec\xef\x15\xbb\xf0\x58\xf0\xac\x18\xb3\x64\x2c\x92\x07\x22\x9f\xbe\xdc\x1a\xe3\x23\x2e\x95\x29\xe2\x52\x2e\xb6\x4d\x2a\xd0\x81\x2b\x02\x02\x3a\x6a\xf4\x19\x14\x11\xc9\x29\x70\xac\xd0\x21\x28\x27\xe7\xc3\xa1\x4c\x5a\x9c\x65\xf1\xbc\x85\x68\x71\xf9\x2c\x92\x33\x80\x2c\x5c\x7a\x7e\x3f\x2b\xf4\x0d\x40\x88\x92\x56\xde\xa5\x3c\xd4\x59\xa6\x9f\x80\xf5\xf8\xbc\xf8\x08\x1d\xd7\xf6\xee\xff\x6d\x5c\x8c\xb6\x2b\xf9\xc4\x1f\xc4\x82\x93\x4d\xee\xf2\xbb\x71\x2e\xcc\x58\x67\xab\x14\xce\x4f\x52\xc9\x49\x39\x81\xb4\x15\x91\x94\x90\x5a\x46\x5d\x44\x20\x65\xb0\x91\xb8\x5f\x11\xd8\xa4\x03\x99\x84\xb0\x1e\x2b\x25\xd9\xb9\xb8\x48\x83\x5a\x9a\x54\x8f\xb9\x2f\xf9\xd4\xb3\xd3\x9d\x43\xb7\x58\x59\xec\xaf\x62\xf3\x34\xee\x1f\xef\xee\xfa\x7f\x15\x45\x8b\x4d\xa5\x96\xb5\x0d\xb2\xdf\x8f\x51\xfa\xe8\x6c\x2f\xd8\x29\xc2\x15\xbd\x10\x19\x9f\xb5\x4b\x3b\xbc\x2e\x27\x03\x01\x92\xe8\x7c\x7a\x5d\x35\x84\xc2\x05\x4b\x92\x3b\x29\xab\xc2\x67\x42\x74\x8f\x47\xb8\xdf\x6d\xbc\x64\x88\x93\xc4\x6f\xed\x1c\x9e\x67\x8d\x34\xcd\x1f\xf5\x13\xd3\xc3\x42\x28\x76\x14\x52\x12\x8f\x63\xac\x7f\x7f\xba\x2b\xe8\x1d\xa7\x21\xa9\xef\x35\x8e\x2d\x45\xd9\x6c\x73\x65\xa9\x8b\xd5\x77\x36\x8a\xc4\xad\xdc\x5b\xbc\xcb\xd5\x4b\x7b\xda\xf3\xf2\xf4\x29\xf4\xeb\x8f\x11\x64\x5d\x23\xfc\xea\xab\xac\x50\x91\x4c\x6f\x75\xf2\xb0\xc5\xd5\xbe\x3b\xef\x63\x0f\x2d\x2e\xb7\x6f\x1b\x5d\x6f\xae\x1c\xf9\x95\xea\x51\x67\x8f\x08\x7f\x74\x77\xde\x07\xc4\xf3\x1e\xfc\x35\xd6\xfa\xc1\x84\x70\x6d\xa7\x70\x2c\x98\x92\x9c\x08\x5d\x16\xdb\x5d\xfc\x28\x7c\x1c\xb7\x5b\x4e\x84\x61\xba\x2c\x6a\x1b\x49\xaf\x35\xee\xd5\xdb\xbf\xfd\x5b\x2b\xbd\xb9\xc6\x42\x08\x2d\xb5\xde\x9b\x58\xc1\x9d\xba\x97\x9d\x86\x8b\xfa\xed\x6a\xd9\x82\x12\xaa\x3f\xe9\x74\x95\x8e\x6b\x9b\x60\x31\x6f\xc2\x88\xd0\x91\x01\x09\x6a\x85\x07\xb8\x93\x5e\xa4\xe2\xe2\x26\x3a\x68\x85\x77\x70\x2b\xdf\xfd\xdb\xbf\xfd\x5b\x8f\x5d\xc8\x1c\x64\x50\x87\xfd\xe5\x82\xf1\x78\x31\x06\xda\x6f\xcf\x28\x87\xea\xd2\x11\x7c\x3a\x69\x84\x14\x8b\x80\x35\x0d\xa1\x8a\x04\xc0\x36\x66\xd2\x21\x7b\x61\x44\xb1\xab\xbc\x83\xf5\xd9\xb1\x52\xb5\x53\xcd\xd9\x04\x62\x1f\x33\xf9\x20\x5c\xf9\xeb\x10\xae\x8a\xe1\xbe\x2e\x7b\x11\x3b\x9b\xf8\x15\x30\x73\x51\x4b\x3b\xa0\xaf\xe4\x7f\x58\xbe\x0b\x59\x25\xc7\xd2\xed\xfb\xee\x73\xbe\xf0\x10\xf6\x7d\xf7\xeb\xbb\x14\x5a\xca\xfe\x6e\xda\xdb\x8a\xf9\x7f\x2f\xf5\x60\x56\x88\x4d\x2e\x0f\xbd\x4a\xc6\x19\x38\x2a\x19\x77\x29\x83\x96\x6a\x40\xc0\x4c\x48\x4d\x74\xed\x5d\x9e\x6b\xaa\x11\x11\x82\x4a\xa9\x87\x5a\xee\x13\xae\xf8\x08\x82\xad\x00\x09\x9c\x0a\xcd\xe6\x02\xd0\x75\xed\x21\x5e\x7d\x3f\x47\x2d\xea\x8f\x63\xe5\x76\x28\x31\x38\x75\x07\x83\x03\x03\xb5\x0f\x9d\xc4\x80\xd8\x74\xd8\xdf\x4b\x19\x7d\x96\x1a\x75\xaa\xcb\x46\x4c\xdf\xe5\x05\x23\xc2\xad\xe0\x69\x17\x73\xb1\x42\xc9\xf9\x2a\x93\xd8\x18\x7e\x24\x17\x23\x69\x8a\x7c\xf5\x0c\xb0\x59\xd5\x7e\x48\x88\x31\x3a\x67\x93\x32\x2b\xe4\x34\x0b\xb3\xf1\x2f\x84\xfa\x56\x1e\x37\x8a\x47\x2e\x32\x8e\xf5\x30\x3e\xc0\x11\x99\x72\x99\xb3\x23\xdf\x97\x50\x05\x10\x41\xc4\x97\x98\xf2\x3c\xa8\xf1\x89\x9e\x4c\xb8\x39\x76\x49\xfc\x89\x1d\x0e\x1e\xcc\xc4\xbe\xc5\x33\xe6\x26\x06\xb2\x4f\x63\x0e\x74\x3b\x9c\x11\xc5\x57\xe2\x24\xdd\x41\x23\x7b\xc0\x9d\x61\x01\xf1\x87\x6b\x3b\x4b\x74\xfc\x07\x9e\x3c\x08\x95\xb2\x9f\x8d\x9b\x4c\x3a\x53\x7c\x42\x61\xc8\xd3\x5c\x3f\x4a\xf2\x39\xd7\x2e\x54\x27\x30\x7e\x23\x0a\x67\x09\x9d\x66\xe5\x48\xaa\xf5\x67\x56\xae\x2e\x29\xfe\xb3\x41\x25\x7e\xd9\xfd\xa1\x5a\x20\xb9\x7c\x4c\x84\x83\xe1\x87\xae\xd7\x1e\x10\x59\x0e\xdb\x98\x21\x2b\x4e\x56\x20\x4c\x51\x6d\x12\x2b\xec\x11\x92\xb1\xe3\xc3\xb5\x8d\x18\xcc\x10\xdb\x72\xb7\x56\x4a\x7f\x93\xe6\xe7\xb4\x2d\x11\xbf\xf9\xe1\xa2\x2f\x72\x23\x4d\x21\x54\xb1\x09\x29\xbf\xe1\xa9\x36\xec\x87\x4c\x27\x0f\xec\x42\x40\xb4\x6c\x5b\xaa\x7e\xf3\xc3\x85\xa7\xe8\x4b\x49\x39\x80\x28\x6d\x42\xcb\xdb\xb9\x12\x6a\x1e\x01\xb2\xc3\x38\xa2\x69\xa7\x31\xd3\x25\x7b\xe2\x08\xd6\x05\xb3\xeb\xb1\x3b\x39\xfd\xc0\x2e\x95\x29\xf3\x28\x57\xab\xee\x5c\x90\x66\x0d\xff\x02\x94\x8d\x31\x1f\xe6\xbd\x0c\xf6\x0f\x55\x6c\xea\x6f\xd8\x12\xdc\xe1\x4f\xf9\x60\x83\x68\x61\x08\x43\x6d\x11\x6b\x9d\xc3\xe9\x81\xd6\x04\x0a\xdb\x30\x5a\xaa\xa8\x63\x9c\x1f\x8d\x46\x76\x92\x0f\xd2\x93\x9b\xcb\xb3\x8b\x4f\x97\xbd\x49\xfa\xa7\xb1\x7e\xea\x16\xba\x5b\x1a\xd1\x95\xc5\x06\xb1\x8c\x62\x06\x3f\xae\x88\xc3\xc0\x56\x0e\xd9\x08\x04\xe7\x42\xb3\x07\x31\x63\xf0\xdc\x72\x84\x9b\x1f\x2e\x2c\x79\xeb\xc5\x72\xc0\x89\x28\x92\x93\x44\x4c\xc7\x27\xf4\x9d\x2f\x37\xd1\x89\x56\xb2\xd0\x2b\xab\xdc\x9c\xb1\x44\x67\x19\x8a\xa2\xf6\x4a\x9c\x8b\xe9\x98\xb9\x77\x5f\x66\xf4\x0b\x24\xe8\xb6\xf5\x1b\x5a\x44\xda\x4c\xb5\xce\x5a\x9f\x4a\xdb\x98\x0e\x65\xb4\x93\xf9\xa0\xf9\x4a\xbd\xca\xde\xed\x42\x28\x5c\xe9\xe9\x6b\x90\xfe\x5e\x74\xc2\xcb\x31\xec\xa0\x58\xd5\x0d\xe8\x50\x9b\x59\x78\x6e\x5d\x0f\xe4\xdd\x58\xea\xf1\x77\x6d\x41\x76\x8f\x30\x1b\x79\x59\x8c\x85\x2a\x5c\x2c\x00\x8e\xaa\x7a\xdb\xaf\x86\x28\x61\x41\xad\x9c\x47\x91\xe7\x80\xfe\xe4\xaf\x7b\xac\x14\xc8\x6c\x67\x2b\xba\xa9\x00\x16\x8e\xb9\x6d\x3c\x7f\xcc\x79\x3a\x91\xea\x95\x0f\x7a\x4b\x69\xc8\x13\xb0\x39\x7e\xb3\x03\x61\x68\x2f\x02\xed\x45\xa0\xbd\x08\xb4\x17\x81\xf6\x22\xd0\x5e\x04\xfa\x6a\x44\xa0\xc6\x9a\x9c\x7b\x39\x68\x2f\x07\x2d\x92\x83\x84\xe5\xb0\xb0\xc5\xa1\xf6\xcf\x72\x69\x68\xbe\x7d\x3d\x36\xb3\x52\x80\x0e\x45\xa0\x3c\xbc\x17\x97\x3c\xdb\x27\xdf\xbc\xe5\xe4\x9b\x7d\xb6\xca\xd7\x92\xad\xd2\x32\x01\x80\x0a\x10\xfe\x84\x05\x2a\xe1\xe2\x36\x5f\x78\x28\x68\xec\x0b\xaa\xcc\xe0\xdf\xe4\x9e\xf6\x22\xba\x47\xda\xe7\xae\x20\x5c\x7a\x64\x8e\x83\xfa\xd0\x4c\x12\x48\x13\x32\x00\x52\xfa\x15\x66\x23\x34\xae\x67\xab\xfc\x84\x0a\x59\x33\xeb\x24\x2c\x2c\x20\xbe\x5f\x2e\x87\x21\x5e\xcc\x3a\xce\xed\x2e\x96\xb3\x01\x9e\xaf\x19\xf4\x92\x34\x9b\x2a\xcc\xa0\x1e\x00\x40\x65\x1a\xe1\xe6\x2e\x5b\x45\x88\x95\x80\x4c\x20\x02\x77\xd1\x08\x50\x0a\x90\x10\x83\x19\xa2\x0a\x3d\x49\x95\x42\x28\x1a\x04\xe8\xf4\x58\x3f\xc6\xc3\x8c\x01\x89\x6e\x9c\x9b\xf6\x0d\xa7\x98\xf8\xe7\x2f\x95\xfc\xd5\x2c\x95\x54\x9a\x6e\x9b\x02\xd6\xf8\x89\x80\xc4\xbb\xa6\x04\xe4\x5f\xac\x25\x88\x45\x60\xca\x0b\xc8\x1d\x87\x68\x67\x91\x03\x38\x1b\x30\xb7\x16\x42\x51\xc6\x4d\x71\x97\x73\x65\xe0\x9b\xaf\x0d\x7a\x02\xa8\xa0\xdc\x14\x88\x75\x52\xc4\xc0\x75\xac\xf0\xa3\x72\xa9\x6f\x5a\x79\x00\x6a\x40\xc6\x82\x70\x9f\x05\xf1\xb0\x2f\x85\x5b\x09\x95\x23\xfc\xc8\x36\xcb\xcb\x59\x0d\x89\x73\x17\xc0\xfa\x5c\x08\xa6\x5f\x18\x28\xfb\x6c\x97\x6c\x9b\x51\x34\xd3\xca\x66\xca\x16\xd0\xe6\x70\x00\x1d\x17\x78\x7e\x07\xe0\xaa\x1f\xad\xa6\xdb\x71\xf0\x67\x9b\xd4\x4e\x59\x6d\x6a\xbc\x23\xfb\xe2\x82\x93\xbf\x36\x6a\x68\x4b\x65\xa9\x06\x78\x7d\x50\x25\x6f\xbb\xd5\x94\x56\xa0\x10\x2c\x7c\x07\x45\xe6\xaa\xcd\xa9\x79\x99\xf6\x00\x05\x6f\x5b\x47\x5a\x07\xa0\x60\xd1\x0e\x6f\x1e\x7f\x1b\xf5\x72\x12\xf5\x9e\x2c\x60\x9a\xdb\x06\x2e\x36\xf3\xe5\x6d\x6c\x94\x7b\x15\xf3\x6b\x51\x31\xf7\x80\x08\xf8\xfc\x55\x65\xe2\xdd\x43\x23\x2c\xd6\x4f\xd7\x64\x73\xa0\xb2\xca\x05\xda\xea\x16\x06\xc1\x89\x54\x56\x47\x6a\x99\x2f\xe5\xb2\x1d\xd4\x5c\xfa\x84\x15\xd1\x28\xf0\x93\x29\xf1\x94\x85\x40\xbf\x08\xce\x61\xe0\x40\xe9\x9f\x64\x31\xb6\x92\x24\x57\x80\x16\x59\xa9\xdf\xcc\x92\x9c\x9b\x31\xa0\xf2\xda\x4e\x65\x31\x9f\x73\xe3\x41\x1f\xab\xfe\x86\x77\xec\x28\xc6\xfc\x6e\x7a\x81\x71\x03\x18\xdd\xf6\xbf\x98\xf5\x08\x03\x3a\xde\x75\x84\x3c\xed\xc7\xaa\xf5\xa4\xad\xf6\x9a\x73\x58\x57\x67\x7c\x70\x1d\xf5\xa2\xda\xb4\x40\x51\x29\x97\x53\x1a\x4b\xb1\x4b\x69\xc6\x3e\x6f\x41\x3c\x53\x8e\x33\x40\xf7\x5a\x79\xa0\xe2\xd2\xad\x27\x24\xbd\x18\xb3\xfc\xd3\xd3\x98\x17\x5d\x69\xba\xbc\xdb\x82\x99\xee\x20\x2b\x81\xf2\x84\xeb\x6b\xce\x53\x14\x8c\x79\xd6\x6f\xbe\x04\x6c\x1d\x4f\xe1\x9c\xc3\x87\xb2\xa8\x11\x12\x8b\x0f\x44\xc6\x7e\x2f\x45\x3e\x43\xfc\xeb\x00\x6e\x46\x57\x20\xa0\xd9\xfa\xbd\x4f\x30\x28\xe0\x6a\xc8\xe2\xce\xc8\x1e\x88\x87\xb4\x62\x0c\x44\xe1\x0f\x6c\x8a\xc4\x88\x1d\x0c\x7f\xbf\x02\x93\x06\x76\x47\xf6\x20\x66\x98\x5e\x46\x15\x69\x61\x30\x11\xb0\xae\x54\x4c\xe7\x29\x9e\xa6\x81\x08\xc4\x23\xa4\xb1\x34\xd3\x96\x0e\x93\xc3\x50\xb1\x39\x8c\x8e\x46\xa6\x55\x6d\x34\x6b\x9e\x33\xbb\x7a\x8f\x52\x3c\xc1\x81\x93\x6a\xd4\xb5\x24\xa3\x4b\xb9\xf6\x27\xf8\x91\x93\x3f\xc1\x7f\xbb\x6e\xe3\x17\x70\xee\x58\x23\xa9\x9f\x99\x2f\x03\x7f\x47\xb7\x9d\xe4\x29\xd8\x91\xaa\xa1\xc3\x83\xfd\xd7\x21\xf1\xe4\x90\x49\x65\xca\xe1\x50\x26\x20\x4b\x39\xf2\x40\x26\xe3\x02\x12\x90\x88\x56\x14\xfc\x41\xc0\x11\x49\x44\x2a\x54\x22\xf0\x44\x72\xe6\x86\x71\x23\x86\x2f\x7a\xfd\xa7\x3a\xed\x16\x73\x30\x5f\x5b\x27\x9f\x2d\xb3\x51\xae\xcb\x54\xe7\x2a\x7e\x81\x98\xea\x2a\x61\x45\x75\xbe\x36\x77\xb8\x39\xce\x73\xd3\x8e\x23\xdc\x55\xb8\x40\xe0\x5b\x7e\xa3\x8f\x90\x83\x02\xf6\xb1\xc3\x02\xaf\x31\x71\x87\x61\xbb\xf0\xee\xee\x3c\x21\xac\x75\x95\xb1\x9b\xea\x52\x93\x0e\x1b\xa6\x89\xc6\x62\xac\xb0\xb9\x6c\xe5\x0f\x4d\x65\x9b\x76\x5d\xd0\x68\x85\x39\xb3\xa5\x8a\x56\xf9\xe9\x35\x0b\x8b\x41\x41\x5c\x20\xff\x22\xdd\xe8\xdc\x05\xb6\x05\x08\x5c\x44\xd3\x2b\x38\x1d\x99\xf7\x6a\x79\x82\xe5\xc8\xdb\x72\x0b\xff\xae\xcf\x9e\xf3\x2f\xfc\x55\x28\x57\x41\x75\xf9\x54\x3f\xcf\xbd\xc0\x72\x31\xcc\x00\xc4\x05\x12\x85\xc2\x73\x9a\xc9\x02\x87\xc6\xfa\x13\xdc\xa8\x6c\x2d\x5c\xf8\x8d\xb6\x11\x49\x85\x27\x1d\xaf\x4d\x15\x36\x14\x82\xeb\xab\x8d\x8b\x1d\xcf\xca\x89\xc4\x7f\x70\xd9\xb5\xa5\xc6\xec\x97\x71\x7b\x9b\x2b\x5a\x73\x3e\x4a\x91\xa5\xb7\xf3\xd2\xf2\xfc\xc6\x34\xb4\x8f\xb9\x65\xd0\xd9\x42\x25\xa3\xa3\x64\x5a\x76\xd8\x44\x4c\x74\x3e\x3b\x76\x39\xca\x32\x77\xa5\x06\x69\xa9\x56\xf2\x4d\xdf\x75\x8b\x22\x56\xbe\xd6\x17\x44\x21\x7d\x70\x95\x03\xd2\x38\xcd\xb0\x43\xf9\xd5\x3c\xc3\x9a\x10\xea\x91\x3d\xf2\x45\x12\xe3\x32\x5b\x4f\x2a\x1f\xa5\x99\x57\x32\xd6\x36\xf5\xf4\x3c\xb0\xdb\xdf\x4b\xae\x0a\x59\xcc\xda\x40\xea\x91\x7c\x58\x59\x4c\x47\xa5\xc4\xf3\x54\x1b\x20\x4b\xb4\x17\x1d\x27\x99\x83\xae\x77\x7f\x70\x7a\x7f\xb0\xe8\xa2\x9a\x7a\xdc\x76\xf3\x79\xc0\x75\xfd\x10\xd9\x05\x35\xe1\x48\xed\x3a\x6f\x8f\x06\xb4\xab\x23\xff\xf7\x52\x57\xcc\x73\x8b\x8e\x3a\xb4\x63\x46\x14\x86\xf1\xd1\x28\x17\x23\xcb\xcf\x7e\x87\x87\xb9\xb0\xb3\xc1\x04\x76\x26\x14\x04\x45\xa6\x50\xbc\xcf\x17\xe6\xdf\xfb\x16\xde\xb2\x6f\x61\x6f\x1c\xff\x5a\x8c\xe3\xff\xd2\x00\xac\x15\x52\xb5\x7e\xa8\x93\x33\x2c\x02\x51\x7b\x6d\x2c\xfd\x5d\x46\x2a\xc5\xab\xd0\x3a\x42\x29\x5e\x09\xaa\xd0\xed\x49\x39\x92\x79\x28\xb3\x5b\x04\xf5\xb2\x34\x7c\xf4\xaf\x57\x73\xa0\xca\x37\x77\xec\x12\x89\xba\x5e\xe9\xf1\xaf\xb5\xad\x56\x1e\xa8\x72\x6d\x50\xfa\xf7\xfe\xfd\x37\xcd\x83\xdb\xf8\xf7\xaf\x6c\x9b\x65\x1b\x4d\x56\xe0\xb5\xf5\xbf\xa9\xce\x64\x32\x8b\x2a\x7a\xd9\xde\xcc\xc9\xae\x4d\x47\xf1\xcd\x69\x69\x29\xda\xcb\x2b\x5f\xb5\xbc\xb2\x77\xe6\xe3\xf3\x57\xe1\x56\x2f\xe1\xc4\xaf\x4b\x5c\x2d\x39\xd6\x42\xe1\x6b\x8c\xfb\x3c\x21\x88\x3a\x12\x41\xc0\x32\x01\x2f\xb6\xe0\x62\xb6\x8b\xcd\x3c\x9d\xbb\x30\x55\x2c\xa4\x6b\xb5\xe5\x80\x89\xba\xb0\x05\x51\xc4\x9e\xed\x78\x0d\x7c\x99\x4e\xab\x4a\x07\x0b\xc6\xcb\x50\xf8\x36\x7e\x41\x93\xe8\xa9\x68\x30\x91\xb5\x5a\xc0\x80\xa0\x50\xe9\x65\xd9\x3a\x55\xbe\x17\x81\x88\x57\x63\x1a\x87\x32\x2b\x2c\x81\x06\x1c\x40\x78\x65\xde\x9f\x8b\xd5\x4e\xc9\xb3\x98\xf3\xe4\x01\x3d\xb9\x9c\xc4\xdb\x41\x59\x30\xf1\x3c\x85\x02\xad\x29\x2b\x8d\xe5\x10\x95\x61\x7e\x86\xec\x72\x5f\x6c\x77\xe0\xaa\xaf\x03\x2a\x96\xaf\x5d\xed\x24\x8d\x8f\x3a\xc7\x82\xe3\xde\x1c\x04\xa3\xe8\xb0\x81\x2e\xc6\x6e\x88\x67\xd7\x17\xac\x3a\xc1\x23\x39\x8c\xb0\xc7\xa4\x82\x7f\x1c\x77\x70\x1e\x03\x41\xf0\xea\xe9\x82\xb8\x66\xec\x76\xcd\x1c\x64\xb7\x76\xeb\xad\x17\xb8\xe5\x01\x31\xaf\x5a\xa3\x16\x17\xb3\x01\x66\xbe\x9d\x23\x6a\xdb\xb4\xe4\x55\xfa\xc1\x7a\x14\x6d\xb5\xef\x74\xae\x75\x85\xaa\x79\x0d\x2a\xbe\xd2\x80\xd0\xed\x3c\x25\xa5\x69\x53\xbf\xe2\x8f\x41\xd2\x7e\x9c\x27\x69\x8d\x0b\xf0\xe6\x68\x5a\x69\xc4\x1f\x60\x79\x01\x82\x4f\x56\x3d\xf1\xfe\x1c\x15\xba\xe0\x19\xaa\xe4\xc1\xcb\x48\xb4\x87\xa0\xfc\xbc\x31\x76\x41\x1c\xfc\xdc\x0a\xed\xea\x2e\xdd\x44\xf5\x8a\x5b\x5c\xa6\xb8\x79\x2d\xfa\x23\xd1\x93\x69\x59\x88\xe6\x52\xc8\x6d\xf2\x59\xe0\x00\xbe\xfd\xad\xfe\x09\x2f\x4a\x75\xf2\x13\xfe\x0c\x21\x86\x1c\x91\x60\xf4\x70\x6e\x39\xb0\xae\xf8\xd3\x06\xf0\x24\x95\x4c\xea\x13\x4c\x8d\xec\x52\xf7\x5d\xdf\x7d\xd7\xfb\x9e\x36\xb8\x64\x4e\x0f\x7a\xfb\xab\x7f\xe3\x34\xb6\xda\xfa\x53\x88\xe7\xb2\xf5\x77\xca\x00\x70\x47\xdf\x8f\x55\x2a\x27\xb2\x28\xc8\xf1\x16\x55\x9d\x80\x30\xb6\xd8\x17\x45\x3b\x2f\x87\xc8\x8e\xa5\xf1\x41\x8b\xd9\x2c\x66\xb5\x90\xdd\xf4\x24\x8d\xc0\x64\x27\x28\xdf\x02\xd7\x00\x76\xb0\xeb\x0a\x1e\x83\x34\xf2\x66\x4e\xc3\xb6\x04\x85\xd0\x8a\x3e\x4f\xeb\x01\x35\x73\x1a\x63\xa5\x21\x84\x80\x45\x91\x19\x18\xcf\xc7\xa7\xd3\x4c\x86\xb8\x41\x3f\x99\x16\x54\xc4\xaa\x90\xab\x52\x31\x6c\x1b\xbb\x7d\x0e\x61\x09\x5e\xa2\x30\x48\x04\xb2\x86\xef\x9b\xb9\xef\x6f\x92\x35\xa6\xb3\x95\x1e\x4a\x9d\x11\x10\xa9\x87\x7c\xb2\x4f\x5e\x66\x3c\x6d\x73\xb6\x2a\xe3\x01\x68\xa7\x97\x19\x4f\x5b\xf4\xd8\xca\x78\x00\xbc\x63\x87\xe3\xd9\xfa\xf0\x27\x3c\x13\x57\x9f\xd7\x86\x56\x5d\xfa\x5e\x15\x21\x79\xea\xdb\x30\x7a\xab\x5e\x21\x6b\xb7\x98\x60\x01\xf7\xeb\x85\x8a\xa9\xc5\x18\x5f\x11\x02\x0b\xfd\xba\xfe\x41\x1a\xf1\x42\x3c\xf1\x55\x40\x41\x77\x6e\x94\x3c\x4d\xad\x3a\xe9\x04\x32\xb7\xa6\x67\xfd\x2b\xf6\x57\xec\x69\x83\xc3\x3c\xcd\x75\x81\xca\xdb\x85\x9e\x70\xd9\x26\x59\x34\x86\xdb\x71\x83\xe8\xfb\x6e\x18\xf6\x13\xe7\x92\x02\xf5\x87\xc4\x74\x40\x2d\xfb\x17\x2a\x30\xf7\xa5\xc0\x21\x23\x48\x68\x22\x30\x11\x10\x92\xdb\x33\x20\x49\xa0\x3e\x42\x29\x03\x23\x20\xc5\xf7\x11\x59\x7b\x3e\x01\x76\x0d\x92\x47\x41\x19\x11\x56\x3f\x77\xc8\x49\x1d\xf6\x93\x1e\x49\xe5\xae\x0e\x18\x2e\xec\x72\x72\x99\x2d\xb2\x26\x98\xec\x52\xf1\x41\x36\xaf\x1c\xd5\xef\x75\xc6\x47\x68\xad\xb3\xad\x4f\x52\x69\x20\x64\xf5\xf6\xf6\x27\x46\x56\xd8\x24\x32\x95\xd0\xd1\xf7\x31\x38\xb8\xf1\x9b\xec\x15\x9e\xce\x16\x65\x2f\xae\x30\x61\x5b\x18\x5f\xd8\x0b\x93\xe6\xe1\x7d\x92\xc9\x5c\xcd\x0d\x9f\x90\x73\x37\x96\xc9\x43\x3f\x42\x38\xd7\xb9\x7d\xa6\xa2\x47\x15\xaa\x52\xff\x6d\x93\xbc\x6b\x18\x50\xbf\x1d\x9e\x9a\x3b\x15\xb7\x34\x0d\xfb\x5a\x63\xb1\xba\x40\x31\x58\x0a\x57\x7d\x93\xa1\x01\x99\x5d\x93\xd6\xb8\x05\x26\x7a\x0e\x19\x1d\x9e\xb6\x48\xe5\x66\xb0\xc1\x70\x70\xb3\x5a\x44\xc0\xc5\x43\xf2\x7b\x5c\x47\x5c\x27\x05\xd9\x2d\xa8\x63\x3f\x24\x80\xcf\x2f\xa9\x34\xd5\x0a\x2d\x3b\x4e\x2c\x77\x5c\x66\x7e\xf9\x1b\x09\x15\x3d\xdb\x38\x12\x8c\xa6\xbd\x9e\x38\xb1\x17\x22\x5c\xbd\xd6\xbd\x14\xb1\x97\x22\xea\xe3\xfe\xa2\xf8\x8a\x7b\x51\x62\x2f\x4a\xec\x45\x89\xd6\xc3\xd9\x8b\x12\xbb\x14\x25\x9a\x9d\xc3\xf3\x2e\x48\xf0\x54\x86\x4a\xcb\xb5\x44\xc3\xb3\xeb\x0b\xbf\xf1\x2e\x85\x35\xb4\x89\xc0\xcc\x6c\x2f\xa9\x37\x49\xc6\xfd\xad\xe5\x17\x00\x77\xe5\x25\x3a\x7f\x5b\xe4\xea\x9d\xf9\xf0\xab\xb9\x69\x44\xae\x8b\xc1\x8c\x7e\xae\xf9\x63\x5a\x7a\x42\xd7\xf3\xa5\xa7\xce\x7b\xe2\x56\x3f\xf2\xa2\xbc\xbe\x17\x75\xf5\x90\x56\x9e\x8d\x15\xbb\x4a\xb1\x5d\xbe\x52\xb7\xbd\x60\x64\x92\x33\xe4\x83\xef\xd8\x06\xb0\x01\xf6\xd6\x62\x7c\x20\x77\x4c\xcb\xbd\x93\x0b\x88\x26\x0c\xa7\x09\xaf\x78\x48\x0b\x6f\x71\x7a\x5c\x8f\xed\x33\x3c\x69\x60\x87\x06\xbf\x6f\x77\x76\x2c\xa1\xfa\x1b\x77\x9e\x53\x17\x47\xf0\x0b\xcf\x64\xea\x07\x8d\xb6\xec\x2b\xd5\x61\xd7\xba\xb0\xff\xb9\x7c\x96\xa6\x30\x1d\x76\xa1\x85\xb9\xd6\x05\xfc\x73\x13\x9a\x6c\x87\xb3\x26\x0d\x0c\x4b\xe6\xa1\x36\xfd\x7e\x04\x63\xe9\x26\x14\x19\xa6\xbe\xea\x0e\x2a\x06\xa7\x16\x6e\x61\x14\xe2\x67\x48\x6a\x11\x61\xa3\xa5\x61\x57\xca\xb2\x5c\x5a\x33\x08\x55\xc5\x9c\x7f\xec\xc2\x05\x57\x28\xad\xba\x90\xb8\xdf\xd8\x07\x2e\xb5\xed\x27\x5e\xec\x25\xdd\x51\x57\x90\x72\x8e\xbf\x50\x86\x21\x4f\x44\xca\xd2\x12\x4b\xca\x31\x4a\x5d\x95\x09\x83\xc4\x55\x06\x09\xad\x5f\x28\x5a\x62\x41\x79\x47\x7f\x3a\x3a\x0d\xa7\x7e\x6b\xa6\x01\xec\x67\x99\xca\x89\xe2\xeb\x58\x67\xa9\x71\xb2\x2c\xe0\x60\x02\x23\x76\x98\x86\xf6\xab\x76\xb1\x05\xf9\xc2\x07\x33\x7b\xaf\x5d\xd9\x09\xdc\x1f\xe2\xce\x17\xf6\xe5\xa1\x14\x59\xea\xf7\x2a\x83\x42\x71\x63\xae\xd8\x27\xfe\x8c\x1f\xbc\x95\xff\x14\xd8\xcb\x3e\x74\xfa\x4d\x87\x4e\x37\xc5\xa4\xb6\xf3\x2a\x87\xf4\x54\xbb\xcf\x95\x2f\x6f\x0e\x7c\x02\xa7\xcb\xf3\xa2\x48\xff\xc2\xa8\xd5\x4b\x9e\x8c\xa1\xb4\x05\x1c\x3d\x80\xe2\x41\x59\x82\x67\xd3\x31\x57\xe5\x44\xe4\x32\x61\xc9\x98\xe7\x3c\x29\x44\x6e\x3a\xec\xb0\x7b\xd8\x61\x87\xff\x38\xb4\xa4\xe7\xb0\x77\x88\x87\xdc\x88\x5c\xf2\x0c\x76\x08\xca\x8b\x7b\x71\x29\x5c\x0f\x60\x91\x03\x6e\xc4\xf7\xdf\x31\xa1\x12\x9d\x82\x2e\x9e\x03\x80\xd0\x5c\x20\x34\xcf\x07\xb2\xc8\x79\x3e\x63\x47\x14\xcb\x36\x03\x7a\x88\x2f\x1c\x63\x8f\x18\x44\x6d\xb5\x68\xab\xae\xa0\x73\x1c\x64\x5e\x77\x22\x0a\xad\x33\xd3\x93\xa2\x18\xf6\x74\x3e\x3a\x19\x17\x93\xec\x24\x1f\x26\xdf\x7d\xff\xdd\x5f\xfe\x64\x50\x71\xe8\x2e\xc8\xf4\x5e\x16\x3b\x20\x27\x93\xb2\xb0\x8a\xe0\x2a\xe5\xcc\xb5\x03\x0c\x16\xcb\x49\xed\xb9\x07\x20\x4a\x01\x45\x65\x28\xca\x0d\x26\x63\x55\x8a\x48\x62\xc7\x85\x4b\xea\x01\xda\xec\x08\x6a\x99\x52\x1c\x9c\x0b\x3e\x76\x35\x85\x27\x3a\x05\x87\xfc\x71\x08\x87\x8b\x3f\x8a\xd5\x6b\x2c\x9d\xa9\xb5\x07\x38\x56\x35\x23\x90\xde\x8b\x18\x26\x06\x4a\x18\x78\x48\x23\x85\xc7\x82\x7a\x41\xad\x18\xc4\x5f\x3f\xd5\xcb\xe9\x58\x4c\x44\xce\xb3\x5f\xa8\xe8\xcf\x50\x70\x7b\xc9\xd8\x68\x1e\xfd\xa1\x95\x2e\xbc\x8f\xae\xff\x5a\xa2\xeb\xff\xf0\xd9\x80\xb0\x5c\x17\x1b\x93\xf7\x0d\x09\x78\xf8\x2c\xc6\x53\xb9\x6a\xc0\x33\x7b\xac\x2d\x4d\x1c\x48\xc5\xa1\x58\x70\x44\x6b\x95\xbb\x0a\x96\x1a\xf7\xd8\x15\x68\x28\xbe\x6a\x09\x14\x11\x06\x73\x24\x96\x46\xc6\x65\x90\x00\x3e\x34\x11\xc5\x58\xa7\x3d\x76\x96\xcd\x63\x52\x59\x69\x1f\xa4\x42\x4b\xa7\x88\x87\xa7\x41\x7a\xd1\x0a\x3b\xed\x00\x82\x91\xfd\x13\x44\x4a\x35\x63\xe2\x19\xf1\xcf\x82\x50\x8c\xf5\x51\xc4\xa3\xf0\x88\x03\x4f\x63\x81\xe0\xc6\x30\x6c\x77\xdb\xce\xfa\x57\x6d\x03\x04\xd7\x0b\xf9\x80\xf8\x45\xb0\xd0\x26\x32\x93\x00\x58\x3d\xcd\xf5\x28\xe7\x93\x09\x2f\x64\xc2\xc6\x5c\xa5\x99\x1d\x0a\x82\xe7\x79\x8e\xb9\xa3\xf8\x8a\x17\xcf\xb5\x20\x39\x76\xa7\x09\x16\xd8\xe7\xa5\x7a\x5c\xed\x97\xa9\xb6\x24\x55\x0c\x02\x5a\x70\x2d\x0b\xcd\xa6\x04\x06\x4f\x54\xf5\x51\xe6\x5a\x81\x32\xfd\xc8\x73\x69\x79\x09\x96\xf0\xef\xdd\xab\x7b\x75\x47\x31\x2e\xa0\xaf\x92\x70\x51\xf0\x7c\x24\x0a\xea\xf0\xd0\xc4\x72\x34\x18\x80\x3d\x51\x87\xd6\x0f\x62\xd6\x45\xbe\x30\xe5\x32\x87\x92\xd7\x8d\xdf\x6c\x21\x5d\xab\xd5\x9a\xe9\x75\xa4\x95\x92\x05\xbc\xd8\x31\xb6\x1a\x04\xd0\x9e\xfc\x09\xfe\xb3\x3e\x7d\x77\x28\x1b\xab\x60\xb5\x91\xd4\x54\xac\xcb\xb4\x83\x4e\x57\xa1\xe0\xbe\xb6\xac\x7d\x6b\x63\x0e\x7c\xfd\x6f\x62\xd6\xc2\xb0\x37\xd7\x36\x3a\x87\x56\xe6\x05\x8d\x0d\x1b\xb5\xd8\x76\x04\x80\x5a\x65\x8f\xa0\x7e\x23\xe9\xd7\x63\x6f\x00\x55\xeb\xb1\xc8\x33\xf8\x08\xe6\x14\x6a\xf7\x20\x36\x71\x9d\xed\x0f\xa3\x5d\x3b\x00\x20\x35\x41\x91\xd9\xc1\xb9\x6c\x36\x3e\xd8\x43\xb0\x1b\x13\xc3\x8a\x94\xea\xd0\xa8\x9a\x62\xdb\xfa\xb8\xee\x6d\x00\x7f\xb8\xf4\x69\x22\x04\x9b\xe6\x4d\x57\x03\xa5\x4d\x83\x00\xb0\xb5\x71\x1f\xfb\x5c\xdb\xb2\xb7\xd7\xe7\xbe\x42\x7d\x6e\x9f\x2d\x8d\xcf\x5f\x56\x82\xdf\x7d\x9a\x34\xf6\xdb\xcf\xf5\x7f\xa3\x09\x6c\x99\xf7\x2b\xe5\x53\x74\x10\x21\x65\x02\xad\x8f\x5b\x45\xe9\xbf\x01\xc1\x96\xbc\xc5\x1b\x8b\xe8\x03\xc1\x82\x17\x55\xaa\x86\xae\xad\x9c\x0e\xf1\x53\x94\x03\x4b\xa2\x7c\x93\xf1\x9c\x0a\xae\xd9\xd6\x98\x5d\xd6\x63\xd7\xba\xf0\xfe\x20\x34\x61\xc9\x14\xab\x7b\x66\xce\xbd\x05\xf3\xaa\x38\xbd\x3d\xea\x39\x66\x82\x63\x18\xc4\x44\xa7\x6d\x52\x23\x5b\x11\xfe\x4a\xed\xe6\x0e\x26\x1f\x56\xd5\x93\x86\xd9\x55\xe5\xb7\x44\xa4\x4e\xf4\x09\x0b\xe9\x56\xce\xeb\xe6\x61\x09\x31\x08\x8d\x3d\x8d\xb5\x21\x97\x19\xa5\xee\x59\x89\xc9\xf2\x5a\xda\x39\xf7\x98\x32\x75\xae\x86\xf5\x84\x5a\x7b\x8d\x45\x8a\x5b\xb0\xe4\xcb\x21\x69\x78\xca\x8b\xb1\xe9\x10\xbc\xf9\xdc\xdb\x44\x50\xe9\x10\xc0\x07\x51\x34\x97\x26\xea\x03\x01\xeb\x7d\xd8\x0f\x2a\x75\x15\x4b\x69\x27\x9e\xaf\x11\x45\x39\xc5\xfe\x45\x9e\xeb\xdc\x7e\x58\x18\x07\x24\x3f\xe1\xf9\x83\x48\x3d\xcc\x60\x8f\xf5\xed\x08\xbd\xd8\x88\x2e\xd0\x47\xe1\x25\x10\xfb\x4d\xb2\x9f\xc3\x47\x0e\x7b\xbd\x43\x2c\x0a\x6d\xf5\x89\x82\xe7\x05\x46\x4f\xd8\xe7\x3b\xf6\xa5\xff\x4d\xcc\xee\xb4\x1d\xde\x56\x1c\x77\xaf\x21\xbc\x90\x86\xb0\x91\xd8\x1f\xe2\xe7\x56\xc9\xfe\xbe\x65\x35\xa2\x95\xe6\xe3\x7f\x05\x63\xda\x18\xcc\x19\xba\x1c\x8d\xe3\x90\x39\x4b\xe3\x72\x51\xe4\x52\x3c\x8a\x40\xc2\xc1\x22\xb7\x06\x16\x62\xdb\xf3\x23\x0d\x2b\x95\xfc\xbd\x44\x02\x0a\xd4\xdc\x7f\x05\x47\xe2\xe6\xe3\xe9\xae\xcf\x8a\xdc\x4c\xef\xc5\x09\xac\x1e\x1a\x0e\xa1\x5a\x48\x92\x27\x7e\x9c\x48\x5e\x22\x8d\x1d\x08\xa4\x3b\x25\x38\xa7\x57\xcb\xab\x82\x11\xb4\x8c\x7e\xf6\xec\xf9\xb6\xc2\x9e\x77\xce\x94\x77\xc1\x8a\x6f\x63\x4e\x6b\x5c\x0c\x34\xd3\x4f\x4a\xe4\x10\x6e\x82\x89\x9d\x60\x8c\xb3\xa4\xd7\x27\x06\x0a\xc8\x7a\x93\x6a\xd4\x82\xfd\x12\xb7\x6e\x11\x38\xf9\x99\x08\xca\x07\xe0\xec\x6c\x40\x08\x2f\xa5\x11\x4c\x2b\x1f\x3f\x87\xd3\x1d\xf8\xd2\x09\xbd\xaa\xed\xa6\x14\xbe\x98\xc7\x3b\x18\xf4\xbb\x7f\xfb\xb7\x7f\xab\xd5\x3a\xf9\xfe\xbb\xef\x7a\xec\x42\xe6\x60\x7f\x92\x64\xd3\xa4\x15\x03\x2e\xc2\x73\x01\x3c\x86\x0f\x87\xc8\x44\x5d\x3d\x07\x8a\x00\x26\xf7\xdb\x44\x8e\xc6\xf0\x65\xc0\xfb\x50\xc3\x4c\x26\xc4\x78\x30\x66\x56\x53\x76\x29\x66\x07\x42\x5f\x61\x0f\xec\x1c\x3b\x08\x47\x32\x34\x7f\xb5\x62\x67\xc7\x41\xfe\xda\x3b\x68\x05\x1c\x72\x09\x62\x67\x61\x4d\x8c\xa8\x07\xf0\x6c\x8f\x37\xbd\x17\x92\xf6\x42\x12\x5b\x7a\x1a\x5e\x5f\x48\xda\xa5\x80\x61\x36\x95\x30\xe6\xa2\x60\x5b\xc4\xc0\xc5\xa2\x5b\x60\xf1\x05\x62\xfd\x1f\x9a\x2a\x0b\x2e\x17\x98\x29\x96\x89\x75\x14\xeb\xec\xca\xff\xff\xa9\xc9\xae\xf4\x92\xec\xb0\xcc\x65\x31\x3b\xb7\x37\xef\x79\x85\xbd\x34\x6e\x19\xe2\xb3\xe0\x69\xad\x38\x7f\xa5\x66\x4b\x94\x7a\x1f\x61\x21\xf4\xd8\xad\x9e\x50\xbc\x04\x7a\x3e\xa3\x3b\x05\xa8\x49\xf5\x2f\xda\xbb\xd0\xd7\x69\xed\x71\x8f\xb1\x5f\xc7\x82\x5e\xb1\xdd\x18\x51\x8d\xd2\x93\x6a\xae\xa7\x82\x3f\x88\xa8\x20\x4c\x1b\x63\x6f\x96\xe9\xa7\x7e\x2e\x1f\x65\x26\x46\xe2\xd2\x24\x3c\x6b\x53\x62\xe1\x6c\xc1\x6b\xae\xda\x40\x48\x2b\x00\xcd\x3c\xb1\x04\xc2\x32\x8a\x91\xbd\xe7\x13\x0d\x8b\x42\x2f\x53\xbc\x9a\xbd\x02\x53\x0e\x68\x30\xf4\x02\xf1\x2f\x7b\xda\x59\x0a\x7c\x10\x3d\xce\xd8\xbf\xc4\x93\xab\xf4\x3f\x94\x78\xfa\x87\xed\xcd\xb0\x61\xc6\x47\x7e\x77\x20\x00\x55\x55\x93\xdc\x43\xd7\x0b\x27\x60\x49\x74\x5e\x0a\xc6\xb3\x27\x3e\x33\xe8\x5c\xae\xf6\x21\xcd\x07\x76\x7a\xcc\xf2\x12\x8a\x8c\xf9\x3e\x52\xf6\xed\x31\x88\xd3\xe7\x67\xfd\x7f\xdc\xfe\x9f\xdb\x7f\x9c\x5d\x7c\xba\xba\xde\xe0\x06\x27\x7c\xca\x07\x32\x93\x0d\xc1\x00\xed\x89\xdb\x79\xdc\xc9\x32\x3b\x1b\x08\x7a\x51\x63\x38\xcd\x69\x7a\x92\xe6\x7a\x4a\xae\xf5\x52\x29\x2b\xb6\xf9\x15\x30\x55\x49\x25\xb6\x76\x50\xd4\x6f\xa5\xc3\x51\xce\xe3\x60\xf7\xa8\xa6\x40\xa9\x20\x70\x68\x51\x6a\x97\x5b\xd8\x55\x01\xc9\xa5\x8a\x77\x47\x85\xa3\x95\xa2\xf5\x85\xf5\x71\xd7\xf1\xce\x44\xbf\x86\x19\x61\x85\x7e\x03\x46\x62\x9e\x65\x33\x26\x7e\x2f\xe5\x23\xcf\xc0\x09\xac\x59\xae\xb5\x3f\x4c\x63\x6d\x8a\xea\x02\x40\xb6\xce\x26\x21\x4a\xf6\x34\x42\x76\xd6\x8a\x19\xfa\x76\x2c\x15\x4a\xbb\x38\xef\x82\xea\x05\xdb\x5f\x31\x77\xd0\x09\xa2\x51\xf2\x9a\xdf\xb1\xbb\x68\x97\xa4\x71\xe3\xef\xfb\x9e\x51\x0a\x28\x8d\x87\x28\xaa\xed\x52\x80\x77\x19\x42\x08\x3b\x4f\x21\x02\x04\x04\x10\xe2\xe6\xe6\xc1\x49\x24\x74\x75\xc9\x4a\x8a\x3d\xfa\x4f\x01\x66\x86\x8b\xee\x1a\x52\xa2\xd4\x40\xb8\xa8\xb0\x2d\xf2\xeb\x6e\xb4\x2e\x42\x5e\xe5\x8a\x45\xfd\xd5\x73\x62\x19\x17\xba\x18\x83\x3c\x97\xbb\xb2\xf2\xb8\xf5\x21\x11\xb3\x92\xdf\xb4\xf1\xc6\xe7\xa5\x3a\x43\x71\xba\x85\x63\xf8\xaf\x57\x17\x70\x06\x4b\x45\x6e\x87\x22\x9f\xa1\xe3\x21\x14\xad\xae\x93\xb7\x9f\xed\x3e\xd6\x76\xce\x92\xcc\x52\x59\xb9\x9c\x7d\xe2\x33\x04\x20\x24\x3a\x29\x55\x33\x03\xba\x1a\xba\x9f\xd7\x60\x5c\x11\x93\xaa\x62\x00\x36\x71\x2b\xd3\xc8\xae\xd8\x9c\xbe\xb0\x59\x61\x1d\xbb\xcc\xd7\x5a\xd9\x73\xd1\x3a\x1f\xce\x67\x01\x84\x65\x05\xa9\x8c\xe8\x3d\x87\xd0\x29\x38\x15\xa5\xb1\xdc\xfe\x6a\x18\x45\x49\xfe\xad\x1c\x88\xcc\xa9\x0d\xe0\xa4\x77\x71\x2a\x72\xc2\x47\x82\xf1\xc2\xef\x0a\x64\x07\x9a\x32\x27\x3b\xb3\x2c\x58\xaa\x05\x0a\xe1\xf4\xa9\x9f\xaf\x2e\xd8\x3b\x76\x64\xbf\x85\x85\x56\x86\x5c\x82\xf9\x19\xe5\xe2\x1a\x57\x1a\xba\x2e\x60\x48\xb0\xd1\x56\xb4\x1c\x62\xe5\x72\xa5\x99\x29\x93\xb1\x1b\x93\x4f\x76\xb4\xea\x81\xc8\xed\x52\x03\xdc\xd6\x1f\xe1\x5c\xb4\xbf\x61\x3f\xaf\x06\xcc\xb1\x17\xec\xe7\x0d\x2e\x58\x4c\xff\x21\x09\xb5\x32\x23\xdc\x6c\x1f\x65\x2b\x87\xd5\x0a\x9d\x7f\x88\x65\xde\xfe\xfa\x19\xb1\x00\xe7\x8a\xad\xe7\x3b\xae\xc2\x65\xad\x12\x66\x9c\xfd\x27\x71\xd3\x5c\x0a\x93\xe5\x2e\x4b\x55\x0f\x9f\xe7\x7e\x70\x59\xac\xb0\x6c\x89\x84\x65\x10\x5c\xa5\x7a\x32\xf7\x31\x8f\x09\x19\x7d\xe0\xcd\x6e\x77\xe3\xa6\x3d\x49\x95\xea\x27\xb3\xed\xa6\xfd\x8a\xdd\xd4\x06\xd1\x76\x0f\xe9\x6d\x5f\x08\xd9\x99\xb4\x4c\x45\xe7\xca\xb2\x8a\x84\xd3\xb4\x91\xce\xb8\xe5\x9d\xf6\xf3\x0b\xe8\xe9\x60\x69\x08\xf0\xee\x0b\x6d\xc2\xf6\x2a\x6f\xfe\x28\x57\xb8\x07\xa0\x05\x86\x48\x20\x6a\x29\x1f\x98\x22\xe7\x1e\x44\xd7\xe8\x61\xf1\x84\xca\x26\x36\x3d\x82\x13\xfd\xcc\x27\xd3\x4c\x74\xd8\x64\x66\x7e\xcf\x8e\x5d\xb6\x07\x05\xb9\xda\x3b\x91\x31\x30\xca\xc6\xad\xd9\xfb\xf7\xef\xbe\x3f\x0e\xec\x74\x9a\xeb\xe7\x19\x5a\xb8\x94\x61\x5a\x05\x43\x62\x35\xfd\x31\x15\x85\xc8\x27\x60\x70\x47\x99\x14\x6a\x15\xe2\xfd\x53\xe6\x49\xe4\x21\xb8\x82\x62\x34\x73\x70\x5f\xf8\x6f\xec\x43\x9c\xde\x74\x88\xd3\x3e\x8e\xe7\x6b\x89\xe3\xf9\xc3\xe7\x65\x6c\x53\xa5\x89\x68\xe9\xfa\xf5\x99\x06\x62\xcc\x1f\xa5\xc6\xf2\xbf\x8e\xce\xfe\x71\xeb\x34\xb9\x75\x58\x5d\xa1\xe9\x53\x73\x91\xd5\x50\x85\x19\x79\x01\xad\x47\x9f\x82\xfc\x03\x48\x02\xe9\xdf\x37\x4e\x35\x7f\xf1\xd3\xf3\x86\xcb\x37\x39\x5e\xbf\xe3\xf8\x2e\xe8\xf4\x2c\x49\x6a\x36\xa9\x05\x72\x04\x35\x64\x03\x4b\x91\x58\xa1\x47\x60\x50\xf9\xc0\xbe\x21\xe9\xa2\xc3\x4a\x95\x8a\xdc\x14\x5a\xc3\x2e\x5a\x3d\x89\x9c\x55\x53\x91\x8f\xf9\x14\x3c\xa4\x53\x91\xcb\xe9\x58\xe4\x3c\xa3\x2d\x36\x1d\xc4\x9f\x51\x14\x73\x55\xcc\xa0\xc7\x69\x2e\x55\x22\xa7\x9c\x70\x4c\xc9\xed\xc8\xcb\x62\x8c\x81\x59\xf6\xa8\x00\x36\x42\x59\x8c\x75\x0e\xcc\xf0\x9b\x80\x43\x80\xce\x07\xb3\x17\x0d\xde\xb2\x68\xc0\xcb\x42\x83\x21\xb3\x7a\xc0\xee\xf4\x83\x58\xb9\x1b\x4b\x5e\x65\x72\x0e\xec\x08\x64\x4a\x67\xd8\x86\xa0\x03\xf0\x9b\xa3\xcc\xcb\xe9\x5c\xd3\x66\x40\x85\x6c\xae\x00\xa9\xac\x80\xfe\x60\x9c\x1c\xa2\x01\xb3\x19\x9a\x5e\xad\x30\x70\x4e\x9e\xf0\x47\x91\xe7\x32\x4d\x6d\xc3\xc2\x39\xd4\x10\x38\x79\x13\x4b\x06\xd8\x12\xfa\x65\x96\xdd\xd2\x11\x5e\x95\x3b\x5c\x6d\x5e\x0d\x14\xaf\x82\x6a\x19\xd7\x04\x0d\x1f\x86\x4f\xc4\x9c\xdb\x0f\xee\xe2\xb4\xcc\x32\x97\x92\x07\xe3\x41\x4b\xba\x2f\x22\x1e\x22\x74\x60\x21\xab\x7b\xd0\x63\x73\x63\xb2\x1a\x46\x0a\x1a\x04\x25\xb7\x30\xf7\xcb\x40\x24\xdc\x7e\xd5\xfd\xdb\x27\x1c\x97\x2a\xc2\x25\x9a\xea\xb4\x03\x95\x4e\x1a\x7b\x06\xbb\x2d\x4f\x12\x2c\x81\x42\xec\xe3\x01\x2d\x73\x9b\xc4\xc6\x93\x86\x79\x82\x33\x3f\xf9\x53\x48\xa3\xec\xc2\x23\xbb\x3a\xb4\x94\x5d\xad\xba\xbc\x3b\xd5\xe9\x6e\x5d\xd5\x8d\x30\x6a\xdb\x78\xad\xf7\x42\xf8\x5e\x08\x7f\x23\x42\x78\x2b\xaa\x16\x11\x33\x17\x27\x13\x71\x75\x57\x2f\x82\x6c\x7d\x25\x5d\xfb\x0a\x91\x77\xa1\x67\x0d\xe4\xe9\xcd\x65\xcb\x6c\x78\xd3\x2b\x3f\x55\x24\x4f\xc0\xe2\xe9\x42\x06\x76\x17\xb3\x11\x31\x38\x73\xd5\x1b\x84\xe9\x03\x2f\xc0\xdb\x6f\x50\x06\x76\xe2\xea\x0b\x8a\xc2\x2b\x33\xee\xea\x8d\xeb\x99\x77\x15\x71\x99\x02\x9b\xf7\xa2\xe8\x5b\x16\x45\xdb\x84\x1a\xfe\xd4\xb8\xbf\xad\xd3\xef\x0a\x6e\x1e\x02\x35\x11\x56\x6a\x88\x6a\x91\x84\xe7\x24\x96\x76\x49\x2c\xdd\x71\x39\xd3\xda\x2d\xda\x0b\x15\x7b\xa1\x62\x9f\xa1\xf7\xba\xac\xeb\x25\x32\xf5\xe6\x94\xe0\x56\x69\x7b\x4b\xdf\xab\xe1\xa3\xfb\xb0\xe4\xba\xda\x8c\x3a\x32\xe5\x12\x60\x20\xd0\x34\x74\x42\x0a\x5d\x49\x28\x2a\x52\x19\xcb\x5d\xf8\x82\x5e\x7c\xc8\xb3\x93\xe5\xc0\x19\x1b\xe1\xa2\x5b\xed\xd4\xea\x8b\x7c\xc4\xa5\x32\x85\x55\xd2\x0d\x3b\xfa\x9b\xdf\x35\xd0\xda\x91\x4e\x30\x9d\x87\x7a\x53\xc7\x6d\xbc\x44\x65\x2a\x6b\x09\x37\x4d\x8b\x76\x46\xcd\x9c\x70\x6a\x19\xa1\x02\xb4\x1c\xf7\x83\xcb\x9f\xb0\x53\xea\xb1\x33\xcb\x4b\xe5\x14\xa8\x11\xd8\x80\x71\xaa\x10\x64\x82\x16\xaf\xe1\x8c\xc9\xc2\x88\x6c\x88\xb1\xcf\xde\x12\x36\x94\xf5\x40\x03\x80\x3c\x6b\xfa\x4c\x27\xa0\x62\x43\x79\x2d\xe2\xe6\xc4\x8c\xa3\xd1\xdc\xc5\x3d\xa4\xb5\xb0\xbe\xe8\xb3\xd4\xb9\x25\x13\xb0\x9a\x1b\x84\x69\x89\xe7\xa9\x44\xa9\xf9\x56\x24\xda\xde\xdf\xe5\x0b\x7b\x59\x6f\xef\x56\x98\x68\x37\xa2\x4f\x7a\x19\x06\x42\x5b\x64\x31\xab\x99\x92\xab\x27\xaa\xc7\xce\x4c\x98\x3e\xe3\xd3\x69\xae\x39\xd4\xf8\x0c\xa3\xeb\xc4\x06\x03\x17\xf6\x3e\xcd\xca\x91\xa4\xa0\x19\x78\xa7\x90\x8f\x02\xe2\xc3\x0a\x17\xe2\xb3\xe0\x83\x77\x51\x67\xf0\x3a\x85\xef\xe4\x00\xc4\x04\xd1\x85\xbe\x0b\x3a\xf5\xc3\xf8\x1f\x86\xe9\x2c\x05\xde\xc6\x15\xfb\xcb\x3b\x36\x15\x79\x42\x67\x07\x92\x4f\x28\x98\x28\x93\x8f\x02\x62\xc9\x17\xbf\xfc\xed\x77\x6c\xac\xcb\xdc\xf4\xe2\xe8\x95\x53\x78\x86\xe2\x9a\xcb\x51\x29\x58\x26\xb8\x29\xd8\xe9\x3b\x36\x91\xaa\x2c\xe6\xc0\x7e\xb7\x0f\x0e\x99\xf2\x62\xbc\x62\xff\xfb\xbc\x18\xbb\x2d\x87\x94\x00\x9f\x3d\x40\xc7\x13\x83\x1e\x2b\xa1\x3a\x90\x88\x51\x68\x47\x71\xe2\xa5\x50\xed\x51\x5c\x5b\x72\x93\x69\x94\x3c\xb0\x05\xa8\x07\x9c\x9a\x76\x3a\x06\x88\x9c\x18\xa1\x1e\xa3\x3f\xc0\x6f\x7b\x7c\xcf\xaf\x47\xa5\x70\x5b\xfa\x22\xb2\xfe\x5e\xc8\xdf\x0b\xf9\x7b\x21\xff\xb5\x84\xfc\x17\x93\xee\xfb\x3a\x6f\xc1\x31\x6c\xab\x00\xe3\x1b\xe7\x78\x6b\xe5\xc8\xcc\xa1\x81\xf0\xad\x56\xfc\x63\xda\xcf\x75\xa1\x93\x56\xf5\x38\x20\x58\x8f\x0a\x9d\x4c\xe9\x35\x4a\x4e\x90\xf4\x49\xd4\x0f\x30\x09\x73\xa8\x09\xa6\xd2\x9d\xb9\x48\x8c\xc7\x0a\x96\x66\xa6\x0a\xfe\xdc\x63\x3f\xab\xee\x34\x17\x43\xf9\x2c\x52\x74\x58\x81\xdf\xc7\x92\x0c\x08\x29\xb0\x9f\xb8\x3a\xbb\x3e\x0b\x3d\x39\xd1\x0c\x1b\x1f\x71\x63\xa5\x28\x76\xf3\xf1\xbc\xfb\xfd\xfb\xf7\x7f\x06\xc6\x62\x8f\xf1\x87\x93\x93\xa7\xa7\xa7\x9e\xe4\x8a\x03\xf0\x2f\x37\x46\x8e\x00\xe7\xcf\x9c\x38\x33\x0c\x74\x71\xdc\x63\xd7\x80\x2a\x4c\xfd\xbb\xd9\x79\x1e\x67\x75\x92\xda\x10\x21\xfe\x9a\x1b\x36\x99\x25\x7a\x32\xe5\x6a\xd6\x4b\xf4\xe4\x64\x32\xeb\x26\xa5\x29\xf4\xa4\xeb\xfa\xe8\xb1\x8f\x31\xd6\xae\x03\xcb\x05\x55\xc0\x29\x68\x61\x1b\xda\xe0\xe4\x6e\x09\x03\x57\x45\xcb\xa7\x9d\x8b\xd3\x91\x7d\xd0\x06\x26\x1c\xfb\x4c\xe7\x8b\xeb\xdb\x7f\xfc\x74\xf6\xc3\xe5\x4f\x88\x0a\x6a\x5f\x33\x21\xc7\x3f\x8a\xa0\xc1\x77\xc0\xd1\x4a\x48\x00\x94\xfc\x0d\x19\x70\x10\x6e\x98\x8a\xdc\xf1\x0d\x47\xf1\x0d\xd5\xa9\xa1\x8e\x3a\x38\xb8\xa8\xf4\x3f\x24\x94\xda\x9e\x0e\xe9\x84\xd1\x78\x2f\xa9\x83\x3e\x9c\x40\x97\xd1\x6d\x25\x67\x04\x49\x56\x82\xc5\xb7\x47\xba\x6a\xf8\x29\xe6\x00\x05\x57\xf1\x26\xeb\xad\xd3\xfa\xcd\x5d\xb4\xe6\x98\xe7\xae\xa8\xc8\xbc\x4e\x21\xc3\xdc\x61\x0e\x44\xfe\x6a\xac\xae\xac\x0d\xe4\xf2\x0a\x84\x90\xff\xcf\x6b\xfa\x8e\x55\x09\x7e\xd2\x3c\xfd\x81\x67\x5c\x25\x22\xef\xb1\x9f\x4d\x09\x7e\x6b\x3c\xdc\xf3\x01\x36\xd5\xb4\x64\x19\xe5\x3b\x52\xf8\x73\x1a\x0a\x32\xd1\x00\x86\xac\x54\xa0\xd1\xeb\x9c\x89\xcc\x08\xcc\x83\x27\x41\x30\x6e\x19\x0a\x2c\xc5\x79\x34\x85\x06\x97\x7a\x37\x8a\xaf\x86\xb9\x93\x2a\x43\x7b\x71\x37\x9b\x86\x23\xe8\x42\x59\x7d\x8a\x91\x56\x1b\x64\xa8\x92\x94\xd5\x55\xa2\x20\xec\x11\xf7\xec\x04\x58\x50\xd7\xae\xba\x1d\xca\xae\x33\xd9\xa7\x6b\x9c\x80\x4a\xce\xa9\xdb\xe8\x90\xeb\xdf\x74\x10\x77\x30\xc0\xf6\x54\xfe\xaa\xbf\x90\xb8\xdf\x22\x58\x83\x61\xf7\x07\x77\xe7\x7d\xac\x41\xf7\xf3\x05\xfc\x61\x49\xee\xfd\xc1\xed\xf9\x5d\xbf\x56\x90\xee\xee\xbc\xbf\x49\xad\x66\xc0\xa6\x68\xba\x58\xeb\x49\x48\x65\x21\xb3\x9e\xa5\x2d\x45\xde\xbb\x52\xc5\xe7\xfc\x16\x3f\xba\x4c\x46\xba\x2e\x27\x03\x34\x2f\xc5\x35\x45\x70\xef\x34\x05\x22\xb8\xec\x41\x8c\x99\x80\xc1\x46\x37\xcf\xd1\x4f\xea\xc9\x51\x50\x22\x57\x39\x57\x23\xc1\x4e\x6d\x67\xdf\xff\xf9\xcf\xef\xff\xdc\x63\xd7\x31\xce\x08\x57\xc0\xec\xfe\x71\xfb\xcb\xf9\x3f\xae\xcf\x3e\x5d\x56\xea\x9d\x71\x0f\x95\x1f\x5d\xe4\x4c\xeb\x07\x91\xb2\x72\x4a\x09\x4d\x10\x09\x8e\x37\x4e\xc5\x48\x1f\x7d\x48\x04\x8f\xb2\x5f\xec\x5e\xce\x95\x53\xab\x85\xdc\xa3\xb0\x4f\x8b\x70\x68\x5f\xf1\xd4\xd7\xa0\xd9\xef\x28\x0e\xed\x9a\xf0\xe9\x71\x45\x0a\xb0\x1d\x8f\x14\x60\xda\x0f\x01\x78\x15\xef\x28\xf2\xbf\x24\x2b\x4d\x21\xf2\xab\xfe\x7f\x5e\x6b\x45\x1a\x61\xa8\x4f\xe6\xaa\xd3\xc3\x6b\x05\x13\xbf\x97\x08\xd7\x55\x1f\xc9\x6e\x09\x05\x1e\x2b\x35\xea\x72\xe7\xaa\xd9\xc0\x92\x60\x0f\xee\x8e\x2c\x09\xb7\xd5\xb0\xd6\x05\x72\x21\xc5\xa5\x62\xf1\x03\x54\xee\x79\x81\xa2\xba\x4b\x82\xe3\x98\xd9\x84\x98\x26\x70\x82\xf9\x3c\xbd\x59\x28\x2a\xfa\xad\x5a\x41\x42\x7c\x3b\x67\xea\xb9\xea\xd7\x6b\x45\x7a\xc3\x9a\xa2\x43\x54\x63\x60\x98\x8c\x93\xcd\xdc\x7d\x9a\x70\xdb\x23\xe2\x5d\x28\xdf\x59\x05\xf4\x62\xc2\x15\x75\x82\x7d\xda\x83\x2c\x15\x88\x6d\x83\x19\xda\x4d\x4d\x2b\xe6\xf7\x1f\xc1\xc8\xda\x69\xc3\xf6\xa2\x93\x6e\x05\x3c\xd2\x48\x93\xb1\xbd\xe3\xa9\x4f\x66\x40\x0d\xd5\xd7\x4d\x8a\x60\xd4\xef\x0f\xec\xc9\xb7\x14\x14\xea\xf2\x38\x15\xfb\xe8\xfe\xe0\xfe\xe0\xb8\xc3\xb0\x70\x1f\xbc\x14\xd6\xb1\xe7\xdf\x72\x42\x65\x58\x08\x7b\xc7\xc6\x82\xa7\x80\xe1\x11\x2e\x9b\x95\x23\x20\x9b\x02\x4a\x49\x52\x5a\x22\x1d\xdd\x1e\x83\x42\x93\x71\x25\x79\xab\xae\xb1\x73\xb7\x93\x1d\xe6\xa4\x0f\xbc\xa1\x55\xf9\xe3\x8a\x6e\xb7\xe5\xee\x54\x3e\xff\xf2\x19\x0d\x3d\x96\xae\xed\xf6\x72\x3e\xca\xbc\x28\x79\xd6\x95\x53\x83\xa1\xbc\x24\xc5\xdb\xb9\xcd\xa5\xc6\xb7\x33\x62\xe3\x50\xaf\xfa\xab\x6c\x39\x51\xcb\x6a\x3c\x40\xd8\x18\x81\x22\x2c\xca\x74\x56\xd6\xf0\xb1\x78\x74\x2b\x5c\xde\x99\x41\x3e\x32\x2d\x58\x91\xf3\xe1\x50\x26\x81\xd3\x7a\xe6\xc1\xee\xc6\xc2\xd8\xeb\x63\x3c\x34\x10\x42\x23\x01\x9f\x09\xba\x14\xb6\xc4\xbb\x0d\x96\x3b\x33\xb5\x02\xf6\x20\xc3\x58\x3f\x48\x4a\x45\x51\x9b\x87\xcf\xf1\x3c\x97\x8f\xf6\x08\x16\x90\x01\x9b\x8a\xa8\xf2\xdf\x55\xbf\xc7\xd8\x19\x14\xb6\xb4\xd2\x2a\xa5\xff\x80\x54\x4a\xf6\xbb\x4c\xf3\xb4\x3b\xa0\x13\xe0\xa8\x0b\x8d\x71\xca\x73\x6f\xbd\x8d\x14\x3e\x92\x46\x5f\xa5\x7e\x54\xc3\xf6\xb6\x00\x50\x89\x9b\x3a\xda\xe5\x67\x1c\x47\x44\xf2\x02\xec\xff\xa9\x82\xaa\x5b\x11\xb2\x00\xa1\xcd\x17\x65\x4e\xa9\xc5\xe7\x96\x7f\x83\x5d\x34\x4f\x1b\x76\xf8\x5a\x87\x3b\xe9\xe8\x92\x54\x8f\x3a\x7b\x84\xac\xd2\x1a\x3a\xb8\xd5\x6e\x4f\x4f\xbf\x7d\x0f\x88\x05\x20\x99\x1c\xad\xa8\x6f\x63\x5b\x63\xa6\xb1\x17\xab\xef\xa8\x36\xf1\x40\x54\x2f\xe9\xe6\x17\xe7\x0e\x4f\x54\x5f\x67\x32\x59\x85\x8b\xde\xf8\x8e\x07\x41\x90\x35\x5d\x20\x15\x06\xd1\x06\x34\xcb\x75\x59\x44\xbb\xe1\x4e\x71\xa1\xe1\xec\x76\x31\x65\x4d\xe7\xee\x9a\x75\x9f\x64\x1a\xe9\x95\x96\x5e\x42\xc8\xe5\xfd\x01\x82\xb7\xe4\x8f\x0e\x16\x81\xec\x8b\x68\xb2\xb4\x17\x59\xa5\x8c\x3f\x6a\x99\x12\xd8\xa9\x56\x29\x1b\xeb\x29\x6c\x5e\x4c\xf6\xa0\xe1\x35\x69\x13\x54\xcd\x99\xe8\x16\x46\xb2\xe6\xd2\x3c\x58\xb1\xb9\xf0\x10\x14\x72\x42\x37\x26\xf5\xe3\x37\x53\xaa\x73\x61\x47\x48\xe4\xf6\xfe\x80\xe9\x81\x49\xca\x7c\xd9\x10\x27\x7c\xc6\x30\xb0\xb6\x32\x4a\x2b\x9e\x2a\x44\xee\x52\x80\xf4\x65\x47\x12\x87\x3d\x8f\xb4\x4e\x21\xa0\x99\x67\x74\x8b\xc3\x10\xd6\x3f\x02\x63\xc1\xb3\x62\x7c\x3e\x16\xc9\xc3\x75\x3b\x35\xb8\xe1\x0d\xcf\xbb\x70\xba\xd8\x22\xb1\x2d\x98\xd3\xad\x3d\x00\x86\xbf\x39\xae\xaa\x51\x10\x55\x7f\x6c\xe8\x59\x1a\x0f\xe0\x56\x95\xcc\x19\x9f\x4a\x36\xe0\xc9\x83\x50\x51\x15\xd9\x20\x12\xb8\x0f\xf7\xd8\xaf\xf6\x5a\xda\x75\xb6\xe4\xb5\x1b\xd8\xac\x1f\x1a\x8a\xc7\x32\xd2\xb1\x3d\x30\x0a\x6c\x1c\x31\x57\x01\x40\x6c\xc4\x88\xef\x88\x4d\x52\x51\xa6\xb9\x73\x75\xd9\x78\x4d\xe2\x17\x12\x5e\x8f\x3d\xdf\x01\x1a\xdb\xf4\x23\x9f\xc8\x95\x55\xad\x5d\xb3\x68\xdf\x9e\x62\xe8\x0d\x77\x7b\x11\x78\x63\x1a\x08\x27\x1a\x77\x2c\x7b\x90\x49\x99\xf1\xdc\x9e\xe5\x21\x76\x75\x24\x7a\xa3\x1e\xbb\xea\x3f\x7e\xc7\x1e\x0d\xfc\xf1\xfd\x31\x26\x50\xf3\x90\x33\x1c\x9a\x4b\x13\x5c\xc6\x9d\x98\xbd\xda\x26\x15\xfc\xc2\xb0\xa5\xe4\x5f\xe0\x05\x75\xd2\x21\x84\x05\xcb\xc9\x1f\xb9\xcc\xa0\x9e\x73\x95\x59\xe3\x08\x94\x6e\xf3\xe5\x43\xc3\xa6\xb9\x9c\xf0\x7c\x16\xb5\xae\x66\x22\x7f\x86\x35\x72\x43\x34\xec\x28\x8b\xf6\xdd\x0a\x59\xf1\xbf\x11\xf2\xf1\xc6\x4a\x91\xa6\xc3\x22\xd1\xe3\xd8\x03\xd0\xe5\x3a\xcb\x2c\xf7\x45\x69\xc3\xdb\x5a\x16\x31\xe9\xc8\x90\xe9\x93\x03\xfc\x50\x7b\xcc\x1b\xd1\x4c\x60\x54\xb7\xb1\xb8\x3b\x08\xc6\x1a\xff\x4e\x4d\xcd\x73\xb5\xbf\x18\x1f\x16\x4e\xd1\x80\x82\xdd\x67\x20\xd9\x63\x5d\x49\xea\xf4\xaa\x4f\xc7\x08\x20\x0f\x17\xec\x40\x38\x18\xdf\xdb\x5f\xe0\x80\x60\xa1\x22\xfc\xfd\x98\x8a\x91\x21\x70\x9d\x25\x83\x60\x0e\x80\x25\xf2\x32\xba\x2b\x69\x19\xce\x48\x30\x03\x6f\x40\xf4\xaa\xbb\xb6\x0a\x5d\xb2\x26\x58\xbb\x15\xb5\x14\xe0\x43\xf5\xe2\x57\xfe\x01\x83\xb7\x2a\xbb\xa3\x5f\x9e\x48\x5d\xf5\xeb\x11\x23\x6e\x0b\x9c\x2e\x42\xf6\xe3\x54\x4c\x85\x4a\x0d\xda\x18\x03\x48\x1d\xa4\x70\x65\x33\x5c\x10\x5d\xa6\x5d\x2a\x06\x95\x3b\x24\xce\x4a\x59\x29\x70\xde\x56\x26\x8c\x14\x8c\xc3\x53\xe6\x4e\x57\x44\x69\x2b\x1a\x91\x17\x6a\x22\x15\x01\x76\xb7\xf2\x61\x8f\x93\xe2\xb0\x40\xc1\xf1\x8f\xd3\xd8\x72\x83\xe2\x6b\xb4\x1a\x68\x32\x2c\x2c\xd8\x21\x70\x34\x81\xa0\x4f\x33\x5e\x58\x32\x4b\x86\x69\x92\xf6\xec\x50\x92\x20\x58\xc7\xe9\xeb\xb5\x79\x56\x2e\xa4\x5f\x1b\xd7\x43\xa4\x89\xfa\x61\x10\xef\xbf\xea\x9b\x5d\x2f\xeb\xfd\xc1\x5a\x51\xad\x68\xf4\xea\x46\x0e\xa0\x2e\x5d\xa7\x28\xb0\xb5\xfa\xfd\xee\x50\xe6\xe2\x89\x67\x59\xbb\x00\xd7\x1d\xca\xfc\x70\x8a\x5b\x18\x3a\x9d\xfe\x86\xa7\xde\x2b\x31\x8b\x4c\xb2\x5f\x4e\x8f\xdd\x51\x9c\x40\x3f\x32\x4a\xad\x5a\xd8\xc5\x99\x04\x76\xd5\xba\x13\x3e\xed\x3e\x88\x99\xa9\x58\xbd\xfc\xe2\xd7\x2b\x96\x7a\xe3\x73\xf4\xf8\xbf\x56\x7c\xc1\x0d\x67\xc2\xa7\xeb\x25\x42\xcc\x9b\xf7\xd7\x4c\x84\x88\x4f\x52\x39\xc8\xa4\x19\x5f\xeb\xe2\x46\xf0\x74\x76\xe6\xb4\xfc\x55\xf8\x6e\x0b\x5e\xeb\x20\xf1\xac\xd4\xe2\x94\x55\xa0\xaa\x8b\xeb\x5b\x26\xad\xbe\x3d\x71\xb1\x37\xe4\x01\xa3\x3e\x09\x24\xb1\xd6\x31\x84\x98\x94\x03\x23\x3c\xf7\x16\x11\x3f\x9f\x2f\xef\xef\x7d\x30\x55\x1c\x39\x92\x65\x1d\x10\x1a\xfc\xe6\xa4\x1a\x2b\x37\x24\x9c\xf2\x07\x09\xbe\x25\x62\x3e\xe4\xf6\x41\x8d\xe4\xb6\xe0\x85\x18\x96\xd9\x2d\xc0\x4a\xff\xe8\xac\x51\x8e\xf9\x61\x38\xd7\x94\x8f\xac\xb8\x72\x7b\xf3\x0b\x29\xc8\x38\x74\x59\x18\xd6\x47\x84\x10\x2c\xbe\x90\x0b\x4b\x0f\x0b\x22\x8e\x32\xa7\xd2\x80\xb6\x43\x4c\x65\xcc\xed\x75\x85\x7b\x2c\x2c\xd5\x93\x26\xb1\x0a\xce\xa2\x12\x5a\x2b\xc0\x56\xe7\x4a\x89\xc1\xf3\x17\xad\xeb\x78\x03\xba\xad\xd3\x4c\x22\xd5\x76\xea\x96\x81\xbc\xe5\xf5\x2a\x8c\xe0\x14\xf5\xdb\xe0\xc6\x0e\xca\x11\xda\x12\x75\x1e\x63\x00\x77\xaa\x3e\x3e\x38\x17\xe5\x04\xd9\x8e\xcb\x89\xf5\xc2\xa3\x03\xf9\x04\x8b\x13\xd8\x0c\x0b\x13\x14\xea\x0e\x09\x9d\x91\x7d\xc7\x03\x14\x43\x2d\xd9\xd9\x1f\xc8\xa6\xb8\x7e\x55\x49\x23\x8c\x91\x5a\x9d\x0d\x81\xea\xae\x52\x98\x22\xa7\xd9\x39\xf0\xf3\xab\xfe\xfd\x01\xf9\xcb\xd0\x8a\x0b\xf8\x7e\xb0\x0f\x13\x2e\x11\x3b\x99\x3e\xc1\x38\x7d\xa3\xc7\x2e\x21\x6e\x20\x88\x04\x50\x42\x39\x6d\x68\xe8\xec\x46\xee\x63\x58\x62\x5e\x89\x2a\xc8\xd9\xf5\xce\x1d\xac\x3b\x37\xcd\xd6\x96\xf9\x1c\x04\x8d\x2d\x80\x2d\x9a\x7a\x5b\x76\x31\x1b\xbf\x5f\x2d\xa1\x5d\xc9\x1d\x44\x32\x5c\xdf\x8f\x05\xfe\x4d\x3d\xd5\x99\x1e\xcd\xfe\x86\x4c\x74\xd9\xf9\x89\x9b\xa2\xe1\x39\x28\xd5\x5d\x9d\x83\x64\x49\x92\x8c\x6b\x4a\x98\xe1\x08\x04\x5e\xe3\x26\x51\x34\x62\x45\x27\xd4\xbe\x5b\xb2\x57\x19\x2b\x33\x86\xd8\x0c\x94\xfb\x41\x0e\xac\x67\x5e\x82\x63\x25\xf2\x7e\x80\x57\x90\x72\xe5\x41\xcf\x84\x98\x66\x1e\x0c\xc8\x15\xc3\xc6\x7f\xa2\x39\x83\xdd\x55\x06\xef\xbc\xa1\x68\xfb\xac\x11\x40\x6e\xc9\x8c\x29\xd8\xe9\xf7\xd4\x98\xcf\x2a\x5e\x90\x5e\xcc\xfd\x72\xc1\x92\xb1\x36\x42\xd1\x8d\x21\xcf\xed\x50\xe6\xa6\xa8\xac\x18\x45\xe7\x7b\x5d\x94\x0c\x44\x91\x87\xd4\xb3\xba\xaa\xa6\xc0\xb3\x0c\x50\x06\x2d\xa5\x03\x4a\xaa\xb4\x7f\x19\xd9\x7a\x88\x5f\xf1\x1f\x74\x58\x84\x70\x4b\xab\xb4\x79\xcc\x4d\xa5\x8b\xa1\xc3\xd2\xa2\xcb\x4f\x16\x00\x85\x29\x18\x7e\x1b\x9d\x43\x8a\x16\xc2\xc5\xd9\xb2\xfb\x83\x6f\xee\x0f\xdc\x1a\xb9\x44\x8d\x89\xe0\x8a\xdd\x1f\x40\xb5\x6f\x1a\x92\x25\x44\xa0\x65\x24\x20\x23\xf1\xcc\x07\xea\xca\x21\xbc\xd7\x41\xe5\x7b\x02\xa0\x67\x46\x28\x23\x5c\x81\x87\x8c\x1b\x2f\x3e\x28\x9f\xd2\xbb\xd8\xb5\x0c\x86\x73\xcb\xa3\x00\xc9\xd2\xaf\x49\xa2\x95\x95\xcc\xf0\xbc\x55\x51\xb9\x5f\xdd\x73\xd0\xa2\x74\x30\xb0\xa6\x08\xdf\x6c\xac\x9f\x62\xe1\x2a\x0a\xe4\xa9\xd2\x5e\xcf\x04\x9d\x3f\xd0\xc1\xda\xd9\xb3\x1a\xf3\xb9\x4e\x5b\x7e\x79\x7f\x10\xbf\x06\xbb\x3d\x35\xf3\xfa\xa4\xa8\xf0\x50\x6f\x72\x46\x86\x44\x06\x24\x4b\x60\x9c\x19\xdd\x07\x6c\x47\x3e\x5c\x7b\x18\x23\x4d\x96\x72\x1e\x22\x5b\x7b\xf5\xea\xf9\xe5\x89\x6c\xb0\x04\x0f\xe7\x92\x1b\x78\xd1\x10\x7a\x30\x98\x91\x4f\x97\x0e\x45\x99\x44\x81\xe8\xe1\x13\x2e\x24\xfd\x6a\xc8\x2a\x8e\xe7\xe0\x56\x55\x9a\x11\x67\x62\xf8\x53\xb0\x09\x3a\xc0\x3a\x51\x19\x31\x49\xda\xae\x3c\x36\x01\xce\x84\x36\x39\x27\x63\x0a\x07\x07\x3a\x5a\xbc\xec\x5e\xda\x6f\xe2\x16\xdd\x1f\xb0\x41\x29\x33\xb4\xbe\x9c\x07\xbb\x13\xd2\x0a\xbf\xcc\x3e\x20\xcc\xca\xab\xe4\x85\x03\x9a\x0d\xee\x0e\xbf\x7f\x49\x38\x2e\xf7\x07\xf1\xbe\x57\x3e\xe3\xad\xde\x40\x1d\xc8\xc7\x1f\x8b\x74\x55\xf3\xc3\x91\x1c\x46\x16\x0e\x67\x76\x2b\x73\x40\x6c\x07\x4d\xfe\x78\xd5\x60\x76\x29\x3c\xd0\xa2\x4b\x35\xea\xfa\x76\x4e\x80\x00\xc9\xf1\xd5\xea\x0c\xc4\xf0\x57\xab\xa3\x2e\x10\xec\x2a\xca\xa4\x8b\x97\x31\x40\x61\xad\x13\x68\x11\xdb\xaf\x36\x96\x76\xe2\x63\xd2\x02\xcb\xab\x62\x7c\xac\x4a\x38\x73\x73\x71\x36\x41\x7f\x96\x3a\x18\x69\x29\xb0\xb4\x3c\xd6\x26\xd9\xe9\x96\x2c\x17\x03\xe7\xb7\xa6\x49\x6c\xab\x6f\x51\x0b\xc1\xad\x45\x48\x0c\x4a\xd8\x9b\xa3\xfa\x53\x07\x2d\x84\x51\xf7\xad\x55\xf2\xe7\xf9\x2a\xfd\x60\x97\x3b\x83\x15\x41\x3e\xdf\xf6\x45\x6e\x00\x08\xb4\x6d\xc1\xaa\x9b\x4a\x21\x33\xd7\x0d\x9b\xfa\x7e\x5c\x9a\xde\x7c\x61\xb0\x85\xbb\x31\x34\x77\xab\x59\x76\x80\x93\x47\xc5\xd2\x4a\x42\x84\x1a\xe2\xdd\xed\xc3\x5a\x9b\x39\x43\xf0\xd8\xca\x9e\x76\x10\x1c\xac\x20\x2e\xd0\xf6\xf2\xd9\x12\x68\xf1\x5c\x7c\x87\x91\x91\xcf\x43\x83\x7f\xa8\xc2\xfe\xd5\x63\x57\x93\x69\x26\x13\x59\x64\x94\xf9\x92\x7b\x88\x13\xf7\x5a\x1d\x5a\x7a\x73\xec\xfc\x15\xeb\x30\x57\xef\x80\x1d\xd9\x37\x4f\x9e\x72\x59\x88\x63\x44\xe5\x03\x0d\x7e\x2c\x72\x17\xef\xa4\x31\xad\x47\x84\x1f\x9d\x1d\x48\x2a\x86\x1b\xff\x09\x11\x13\x36\xae\x73\x73\x03\x17\x67\xb3\xcb\x54\x47\x59\x59\x9a\x06\xe3\xbe\x56\xf3\x3e\x87\x4a\xed\x0e\x2a\x4b\x0f\xec\x6d\x73\xbe\x90\x70\x54\xcf\xfa\x57\x96\xcb\xa6\xa8\x2e\x19\xe7\x2b\xac\xc8\x30\x15\xbb\x5a\x24\xd1\x16\x85\x95\x7d\xed\xf6\x36\x2e\x05\x1e\xfd\x16\x11\x2b\xbf\xf8\x86\x2e\x5e\x65\x5c\x4e\xb8\xea\xda\x9d\x04\xa9\x24\x8e\x5f\x0d\x43\x77\xa9\xdc\xb4\x67\x51\xc6\x05\x88\xf7\x0b\x6b\xf7\x6d\x70\x1a\xc3\x54\xda\x94\xe8\xfb\xa5\xda\xba\xbe\x37\x89\x9e\xfa\xd9\x10\x79\xa0\x41\xfa\xb9\x79\x97\x6d\x80\x3d\xab\x68\x6b\x85\x2b\xff\xd2\xaf\xd5\x44\xaa\xba\x6a\x51\x0d\xe2\x98\xbe\x52\x0b\x64\x82\x35\xb5\x63\x21\xc9\x77\x20\xd8\x44\xe6\x39\x98\xab\xea\xc3\x41\xcd\x4d\x8e\xc6\x05\x54\x32\x29\xc4\x28\x27\x8f\xe8\xad\x28\x58\xb4\x7d\x10\xb8\x81\xc5\x18\xed\xdf\x04\x39\x87\xb7\xcd\x9d\x22\x02\x1a\x2d\x73\x7c\xbb\xd0\xec\xde\xd5\xb9\x43\xc2\x31\xd3\xa5\x8f\xc2\x42\x78\x24\x3f\x3f\xd3\xb0\x52\xd7\xe1\x47\x04\x6a\xd6\xce\x5a\xd8\x15\xcf\xd2\x14\xf3\xb3\x71\x8b\xe4\x5c\x7d\xaf\x25\x93\xb9\x01\xec\x99\xcb\x9e\xb9\x7c\x21\xe6\xd2\x88\xd8\xb7\xe7\x30\x7b\x0e\xb3\xe7\x30\x5f\x03\x87\x99\x99\xa4\xc8\x96\xe9\x94\xd0\xc0\x43\x27\x70\xf6\x60\x37\x2b\x63\x53\x9e\xf3\x89\xb0\x6b\x5f\xb8\x72\x20\xbb\xab\xa3\x0c\x76\x03\xea\x64\x86\xf8\xae\x6d\xcb\x2d\xc6\x17\xc4\x92\x86\x55\xd7\xc2\xe5\xf8\x6c\xfa\xbd\xb9\x0d\x68\x4e\x8b\xa9\x81\x14\xd2\xd8\xe8\xdf\x1b\xe7\xc9\xdc\x9d\xf7\x6f\x75\xf2\x20\x8a\xb3\x55\x78\x48\xb5\x96\x51\xbe\x0c\x57\x8c\xaa\x66\x78\x27\x81\x9e\x0a\x0a\x59\x33\xf0\xce\xea\x8d\xb5\xac\xbb\x75\xb9\xe1\x1f\x2d\x9f\x77\xd7\x91\xac\xf9\xac\xd0\x9d\x39\xd0\x9e\xa9\x4e\xd9\xd5\x26\x39\x74\x4d\x49\x89\x6f\x2b\x7b\x2e\xaa\xaa\xb3\x9b\x54\xb9\x2f\x94\xa9\x75\xc7\xe5\x52\x80\x75\xc8\xb8\xd6\x29\x81\x62\x40\x6b\xb0\x44\x17\x05\x4f\xc6\xce\x03\x8f\x7c\xe0\xfe\x00\x43\x85\xef\x0f\x20\x41\x4b\x01\xec\xa9\x23\x9f\x14\xd0\x55\xe8\xcc\x8a\x87\x48\xbc\xa1\xb7\x16\x12\x2c\x76\xbb\xaa\xf6\xa2\x4f\x09\xb2\x43\xc6\x57\x42\xb9\x70\xc0\xe5\x89\x71\xa2\x89\xa0\x57\xc6\x03\xcd\x9c\x63\xc3\x85\x3d\x5b\xa6\x71\xad\x6f\xed\x64\xcb\x4c\x74\x58\x1f\x5c\x8d\xe1\x09\x85\xd3\x5f\x3e\x8b\xa4\xdc\x28\xed\x1d\x83\x7f\xda\x4f\x0d\x27\xf3\x20\x66\xf3\xf5\xa4\x30\x1f\x66\x93\x9c\x55\x39\x11\x67\x69\x3a\x5f\xe0\x72\x0b\x50\x8f\x3b\x59\x87\x75\xad\x1f\x2d\xf7\xd1\xba\x85\x13\x7d\xae\x45\x54\xd4\x1e\xe7\xfc\xc4\x0d\xe3\xf6\x85\x1e\xbb\x82\x53\x08\x22\x99\x15\xcd\x0b\xa1\x40\x9c\xf0\xfb\x80\x6f\x98\x45\x42\x64\x0b\xc6\x12\x96\x1a\x9d\x83\x89\xce\x31\x3f\x29\x25\xd9\xa6\x88\xf7\x62\xc7\x70\x4e\xf6\x4c\x74\xe6\x2e\xc0\xd6\x77\x1d\x0f\xfb\x0a\x46\x43\x74\x1b\xef\xbb\x7f\xa3\x7e\xe9\xdd\xc5\x31\x70\xd1\x71\x1d\x82\xbf\xd8\xd5\x05\xcd\xe5\x34\x13\xec\xbe\x7c\xf7\xee\x7d\xf2\x20\x66\x1d\x74\xca\x12\x99\xb0\x4f\x45\x54\x88\xdf\x07\x05\xa1\x0a\xa9\x73\x7a\xd1\xfd\x13\x5f\xd8\x15\xbd\xb8\x44\x0a\x11\x07\xb1\xb9\xfd\x24\xe2\x01\x41\x2d\x45\x32\xee\xb1\x4b\x88\x49\x9a\x08\xae\x28\x74\x09\xfc\xe6\x71\x63\x07\x10\x11\x29\x38\x0e\x09\x3a\xca\x98\xfc\xc2\x74\xe4\x6f\x58\x6f\xbd\xa8\x12\x11\x57\x15\xab\x08\x7b\x1d\x62\x9f\x96\xcf\xfd\x41\xcc\x5c\x88\x81\x70\xd5\xdc\xc9\x37\xee\xf7\xd0\x31\xbc\x4b\x2b\x36\x9b\xff\x70\x45\x4e\x27\x03\xa9\xf0\x63\xd8\xb5\x5b\x6c\xe6\x7d\xf7\xc6\x07\x28\xc0\x67\xd6\x5f\x10\x37\x84\x95\x72\x0d\x8d\xb4\x02\x2a\xf9\x20\x66\x87\x86\x60\xde\xb4\x32\x63\x39\x75\x77\x9e\x4a\xe6\x3b\xf7\x37\xbe\xec\x1c\xe0\x76\x8e\x98\x08\xf3\x7b\xc9\xb3\xaa\xef\x9c\x1e\x51\x23\xbb\x54\x95\xca\xbe\x4f\x32\x4b\x13\x4e\xd9\x76\x14\xbd\x60\xb4\xcb\x7f\xb6\x57\x32\xe1\x2a\x30\x2c\xbf\x0b\xe4\xa5\x8b\xb2\x53\xec\x79\x1e\xe9\x85\x71\x84\x4b\x19\x81\x3f\x04\xed\x80\x11\xef\xea\xed\xeb\xb4\x7c\x2a\x72\xa9\x53\x60\xc4\x80\x0e\x58\x3d\x68\x47\x48\xe2\xdd\x19\xd1\x43\x77\xf7\xfc\x45\xe8\x44\xc8\x91\x45\x53\x6a\xfe\x71\x44\x8a\x22\x26\xfe\xc3\xcc\x49\xa3\x1d\xca\x95\x01\xfb\x83\x28\x5c\x00\xa0\x3b\x76\x75\xfe\x6f\x97\x5f\x3c\x8a\x9c\x1d\x91\x88\x20\x1e\x65\x52\x1c\xf7\xd8\xff\x27\x72\x0d\x5b\xab\xc4\x08\xb1\xff\x6a\xa6\x8b\x82\x12\x1e\xb8\x61\xef\xd8\x11\xbc\xc6\xe4\x64\x22\x52\xc9\x0b\x91\xcd\x8e\x6b\xe8\x26\xbb\x86\x31\x6c\xaf\x2d\x55\x68\x00\x72\xb7\xda\xbe\x78\x22\xae\xfd\xf5\xf6\x17\x1a\x02\x1a\xed\x11\xae\x94\x1a\xf4\xc8\x07\xee\xfe\xfb\x5d\xfb\x6f\xbb\xb9\x9c\xe5\x62\x04\x87\x13\x4f\xdf\x6b\xa9\xc7\x2e\x32\xeb\x96\x22\x37\x7e\xe2\x03\x91\x91\x3c\x35\x11\x4b\x25\xdf\xb3\x10\xdc\xe3\xe3\x3e\xf2\xf0\x26\x41\x5a\x54\x0a\x06\xba\x65\x1b\xc9\x47\xa1\x30\xf2\x8b\xe2\x92\x30\xd9\x87\x67\xd3\x31\xf7\x69\x2e\x3e\x1b\x12\x32\xee\x9d\xde\x30\x2c\xab\xc9\x23\x0b\xb9\xdc\x6a\x7a\x0f\x99\x02\x2e\xfc\x2c\x10\x7a\x3f\xe6\x88\xcc\x6f\xa8\x9c\xaf\x22\x0f\x67\x8a\x41\x9c\x12\x78\xa9\x23\x04\x3e\xd3\x63\x9f\x95\x3b\x3b\x35\x98\x24\x1c\xb1\x33\x4a\x64\x80\xec\xdb\x63\x97\x3c\x19\x63\x3d\x5c\xb0\xaa\xe2\xcd\x93\x86\x7d\xbe\x79\xad\x00\xab\xcd\x44\x37\x5a\xa6\xed\x45\xb7\xea\x39\xbe\x13\xf9\x64\xcd\xb3\x5b\x88\x7c\x52\xa7\xce\xb9\x30\x65\x06\x6a\x12\xae\xfa\xef\xa5\xc8\xa5\xdd\x9d\x33\xa6\xca\x2c\xf3\xb1\x6e\x8b\xba\x73\x07\x5e\x69\x57\x4b\x00\x75\x94\xe8\x9e\xb8\xc0\x8b\x09\x70\xc8\xb3\xeb\x0b\x12\xdf\x29\xd9\x06\x2e\x11\xc4\xff\xdb\x76\xc3\x52\x25\x68\x65\x90\xc5\xcc\x12\xd2\x6b\x9d\x8a\x78\xce\x2f\x77\x9d\x60\x2a\x40\x1e\x2e\x9f\xed\x1a\x99\xa6\xa2\xb3\x73\xcb\x3c\x17\xbe\xda\x44\x2a\xa0\xb8\x18\x2c\x70\x5d\x8c\xd9\x36\x3d\x66\x25\x79\xdb\xfe\x94\x6f\x7a\x50\x21\x39\xfb\xdc\x47\x45\x2e\xd3\x38\x16\xbc\x12\x99\xb8\x21\x3c\x51\x53\xd2\x79\x50\x14\x40\x9d\xe7\x13\x4d\x0a\x04\x92\x5d\xb7\x15\x6d\xe2\x95\xec\x72\xdd\x2e\xc8\x9c\xd8\x06\xcf\xb2\xd2\xef\xd2\xe8\xa5\xb8\xa5\x87\x25\x2a\x34\x1b\x4a\x55\x9b\x68\x0f\x93\x4b\x2a\x41\xb9\xd2\xc3\x11\x7a\x9a\x9e\x5b\x55\x15\x4b\x54\x15\x3a\xc4\x30\x62\xf6\x0d\x19\xb8\x86\xb8\x72\x78\x45\x64\x3e\xa7\xdb\xd2\x59\x4e\xf5\x84\x4b\xb5\x40\x87\x9e\xf0\xe7\xdb\x07\xf1\xb4\xe2\x86\x7c\xc2\x56\x35\x78\x9f\x54\x8c\x72\x01\xd6\xc3\xa8\xae\xae\x8b\xf2\x55\xe2\x51\x58\xbd\x3e\x95\x86\x40\x80\x80\x60\x1c\x1a\x52\x12\x9f\xe5\xa4\x9c\x58\xb9\x92\x20\x96\x52\x39\x74\x79\xda\x03\x51\x3c\x09\x72\x62\x84\xb9\x56\x8f\x8b\x44\xd3\x54\xf1\xa4\xeb\x13\x25\x41\xba\x7a\x8a\xc0\xd5\xd9\x63\x1f\xe3\xda\xc3\xe0\xf9\x79\xdf\xfd\xa7\x56\x3e\xa8\xb0\xc3\xdc\x4c\x43\xae\xfb\x29\x15\x18\xf4\xb9\x30\x3e\xa8\xbc\x72\xee\xdc\xa9\xe6\x86\x9d\x9e\x9c\x9e\xbc\xfb\xc0\xfe\x87\xd9\xae\x4f\xe9\xbf\xdf\xd2\x7f\xdf\xb3\xff\x61\xff\xc3\x18\xeb\x33\x56\xf9\x2f\x83\xff\x76\x99\x1c\xc6\x63\x38\xb5\xc3\x4c\xf4\x84\xe6\x0d\xba\x03\x98\x4b\x2c\x57\x25\x95\x13\x4e\x08\x76\x0d\xec\x36\xd1\x13\x01\x63\x38\xfd\x0f\xd7\x06\xf3\x67\x98\x56\xd4\xf2\xf4\x08\x86\x74\xcc\x9e\x40\xde\x9b\xf0\x07\x3c\x59\x67\x49\x51\xf2\xcc\x7e\xfc\xe8\xdb\xee\xbb\x63\xa6\x55\xb5\xf9\xa3\xd4\x99\x15\xb3\x69\x84\x47\xa7\xc7\xbd\xb9\x21\x7f\xdb\x30\xe4\xca\x68\x61\x14\x76\xf3\xfe\x09\x19\x20\x70\x26\xb8\xc7\x02\x72\xa9\xc4\x17\xf5\x94\xb0\x53\xd8\x86\x77\x4e\x07\x20\xbd\x7c\xe7\x20\x04\x51\xb2\xc3\x4a\xa5\xc9\xb7\x74\xb2\xb8\x15\xd0\xf4\x10\x2d\xad\xc4\x29\x80\xf7\xd1\x7d\xc7\x24\x27\xba\xeb\x01\xee\xc6\xbe\x05\xa8\x51\x29\x16\x9e\xcc\x62\x63\x83\xc3\xaa\xf4\xce\xf4\xb8\xb6\x9e\x27\x92\xec\xd7\xd0\x12\xe1\x1d\x83\xb5\x06\x7b\x23\x3b\x0d\x44\x14\xdf\x1f\x0c\xca\xe4\x41\x14\x0e\x36\xcf\x8a\x63\x85\x66\xd3\xb2\x60\x1e\x21\x64\x8e\xc8\x14\x1a\x3b\xc6\x57\x17\xed\xdb\xfa\x12\xe8\xd3\x58\xa8\x9f\x95\xe1\x85\x34\x43\xc9\x07\xd9\x2a\xe5\xe7\xd7\x7a\xfb\xc8\xf8\x43\x0c\x26\x15\x9c\xd6\x17\x35\x6e\x04\x5a\x48\xb5\x30\xea\xb0\x60\xf8\x2a\x29\x71\x78\x69\x43\xd8\xbf\x3d\xcf\x17\xfa\x5a\x17\xde\xa0\x73\x44\x0a\xe8\x31\x2b\x44\x96\x39\x3f\x2d\xfe\x98\x93\xf5\xd9\x3f\xb0\xdf\xe9\x32\xf7\xee\x99\x9a\x3d\xf1\x59\xe3\x7b\xf6\x9d\x02\xb0\xfb\xa3\x37\x61\x49\xa3\x0d\xe7\x86\xdd\x1f\x54\xe6\x8a\x5e\x50\xa8\xc4\x60\xa9\x80\x1c\xb2\x69\xc6\x13\x0c\x52\x88\xee\x1c\x19\xee\x3d\xf5\xa3\x7b\x6b\xbb\xa3\x9b\x7a\x7f\xf0\x5a\xd4\xf0\xbd\xa5\x44\xcb\xa9\x61\x1f\xfe\x37\x4f\x15\xaf\x86\xac\x61\xb7\xfd\x58\x2a\xfb\xb4\x0e\xa1\xfc\x16\xe8\xd9\xfb\xe3\x88\x5e\xbe\x3f\xf9\xf6\xe4\xf4\xc8\x8e\xf5\xdb\x63\x3b\xea\x0a\x25\x3c\xf5\x94\xd0\xbf\x49\x23\x12\xa6\x42\x0b\xaf\x14\x6a\xcc\xec\x49\xe7\xa9\xa9\xe0\x73\xc0\x88\x70\xcb\xed\x25\xf6\x50\x3c\x04\x91\xe3\x0f\xc6\x93\xb6\x67\x14\x28\xb2\x2c\xd8\x37\x13\x9d\x8b\x6f\xa2\xe6\x5b\xde\xbb\x96\xda\x8f\x93\x0a\x16\xd0\xc5\xa5\xb7\x77\x6b\x1d\x69\x36\x15\x69\x63\xb4\xcb\x12\xd9\x73\xd1\x3b\x21\x58\x59\x28\x40\x45\x88\xf1\xaa\x0b\xcd\x32\x51\x40\x4c\x01\x41\x97\x80\xfd\xc4\xf6\x15\xe0\xb6\x5c\x81\x43\x26\xe1\x5a\x86\xf3\xde\x10\x33\xb2\xac\x4a\xc2\x5f\x09\xdb\x7b\x45\x8d\x04\x68\xe6\xd8\x09\xe0\x81\xfb\x7c\x6a\x0f\x6c\x3f\x10\xf6\x94\x87\x11\x82\x71\x27\x7e\xb7\x01\x44\x33\xc4\x87\x00\x98\x7e\xcd\xcb\x69\xd7\x1e\xc2\x7d\xe0\x8b\x48\x19\x2c\x01\xd1\x0e\x55\x27\x4f\xbb\x53\x0e\x4e\xf9\xd9\x54\x98\x4e\xe5\x6b\x1e\xc5\xef\x45\x4b\xf7\xbb\xad\xc1\xa2\xb3\x0b\x56\xe2\x45\xd0\xaa\xe3\xe0\x23\xe7\x51\xde\x76\x04\x6d\xad\x10\x76\x7d\xea\xa3\xdd\xf6\x82\x61\x4c\xce\x92\xdb\xf4\x8b\x0b\x4e\x8c\x0c\xe9\x08\xe9\x4a\x21\x49\xc0\x2b\xbc\x57\x98\x24\xfe\xb8\x3e\xae\x3d\x3b\x01\xe5\x35\xd4\xd8\x6d\x73\x55\x9e\xcc\x65\xc6\x4d\x21\x93\x1f\x32\x9d\x3c\xdc\x16\x3a\x9f\xdb\xa0\xd6\x8a\xf5\xd9\xaf\xb7\x73\x9d\x55\x62\x38\x97\x29\x75\x4d\x2f\x57\x16\x45\xb1\xb3\x5f\x6f\xd9\x85\x34\x0f\x71\xd1\x09\x3e\xe7\x59\xe7\xae\x5a\xcf\xa1\xc1\xe0\x4a\xd2\x39\x5d\xfa\x97\xf2\x88\x1f\x21\xe0\x62\xfd\xe4\x26\x0c\x61\x3a\xc1\x2d\x32\x7f\xe2\x4f\x46\xe0\xe8\x07\x76\xf4\x06\xd6\xb1\xf1\x0a\xf0\x7f\x96\xb9\xb0\xb3\xd8\x7c\x99\x5d\x0f\xed\xd7\xd6\xbd\x51\x5f\x50\xfb\x9c\x5d\xf0\x82\xe3\xba\x62\x41\x1e\x0a\xd6\x80\xb5\xb3\x6b\x36\x00\x12\x46\x25\x91\xc2\xd9\x5a\x3c\xbb\x8f\x72\x5e\xac\x5c\x6f\x76\xb6\x87\xf5\x66\x67\xdf\x68\x9c\x1d\xfc\xe0\x32\x34\xb7\x9f\x60\x22\xa6\xe3\xe1\x9c\x89\xab\x7d\x06\x90\x98\x8e\x3f\xde\xb6\x9e\x1a\x36\xaf\xd2\x06\xfb\x8c\x7d\xbc\x6d\x98\x0b\xdc\x06\x33\xe6\x39\x65\x1b\xa6\x87\x86\x65\x72\x28\x0a\x39\x59\x70\x18\x13\xa9\xd2\x2d\xb2\xce\xce\xe1\xf5\xf6\xb3\x81\xe6\xd5\xd9\xe0\x08\x1c\xa9\xf3\xf7\x98\xbb\x1d\xc1\xd8\x2c\xba\xd1\xd5\x0b\xdd\x78\x69\x49\xc2\x36\xae\x94\xc9\x64\x66\x7e\xcf\xba\xf8\x95\xee\x34\x3d\xb9\xb9\x3c\xbb\xf8\x74\xd9\x9b\xa4\x0b\x16\x04\x12\xac\x3e\xf1\x39\xd9\xa1\xfd\x9a\xb8\x1e\xda\x2f\x8b\x7b\xa3\xb6\x32\xfe\x31\xed\x2b\x18\x0f\xa6\x7a\x5a\x66\x28\x3c\x49\x43\xcb\xb6\x60\x2a\x46\x6e\x3e\x89\xdb\xab\xf6\xc3\xbf\xbd\x62\x47\xe7\x9e\xfd\x50\x70\x27\xbb\x52\x85\xc8\x87\x3c\x11\xc7\xf1\xb4\x88\x6e\x7a\xc2\x3d\xe6\x2a\xcd\x1c\x17\x0b\xb9\xab\xb6\xcf\x34\x97\xe0\x51\x3c\x8b\x0d\xd6\xc7\x0b\xae\x65\xaa\x9f\xd4\x13\xcf\xd3\xb3\xfe\xd5\xc6\x93\xbe\x08\x7d\xb4\x9e\x7c\xf4\x4e\x3c\x4d\x37\x1c\x90\xf2\xf8\x40\x97\x85\x0f\xed\xdb\x6c\x33\xc1\xa1\x70\x21\x37\xbf\xaa\x97\xd4\x41\xeb\x99\xb9\x17\xaa\x87\xb2\x10\x93\xa9\xce\x79\x3e\x63\xa9\xcc\x41\xf7\x9c\x2d\x25\x3b\x5b\x33\x56\x98\x78\x2a\x17\x98\x8f\x86\xc9\xc6\x0b\xf2\xf1\xbc\xf5\x52\x7c\x3c\xaf\x2e\xc2\x47\x39\xc8\x05\x3b\x1f\x73\xa5\x44\xf6\x02\xc2\xc8\x82\xb9\x66\xe2\x79\x4e\x98\x5c\x73\xce\xbe\x8b\x36\xb3\xf6\x8d\xab\xb3\x1f\x09\x25\x72\x99\xd4\x93\x6a\xfc\xf4\xc1\x47\x85\x55\xe6\x4e\xfc\x52\x60\xc0\x12\x5c\x71\x91\x50\xcc\x2d\x96\x64\x5c\x38\x5b\x9d\x3c\x6c\xc1\x9a\x3e\xe2\xfb\x6b\xcc\x16\xda\xd7\x36\x9a\x1e\xd6\xb9\xd3\x92\x8d\x25\x5f\x5b\x84\xc6\x68\x77\xd5\x75\x44\x38\x9e\x1e\xf9\x83\xf4\x19\xac\x71\xdf\xbc\x10\xa3\x44\x84\x74\xdb\xad\xe4\xc6\xbf\x9e\x5f\x56\x7b\x6a\xbd\x38\x73\x6f\x56\x97\xe9\xaf\xe7\x97\x6f\x55\x2e\x1f\x25\x22\xe4\x81\xa5\x76\xf5\x9a\x17\x59\x16\x37\x62\xaa\x37\x5f\x5a\x7c\xbf\xfd\x82\x62\xfb\xda\xc5\x92\x50\x39\x4f\x1b\x09\x64\x15\x23\x98\x42\x80\x52\x2e\xf0\x5a\xf5\xd8\xc5\x65\xff\xe6\xf2\xfc\xec\xee\xf2\xe2\x03\x73\x3d\xe1\x99\xcb\x45\x42\xa0\x9c\x3a\xdc\x43\x94\x25\x88\x3d\x93\x9d\xd6\x7d\xab\x43\x62\x24\x57\xcc\x13\x7c\x89\x1e\x03\x76\xa5\x64\x11\xf8\x3a\x01\xd2\x68\x57\x4a\xd2\xbe\x4d\xd7\x7a\x24\x11\xd0\x46\x39\x21\x7a\x2c\x6a\xbd\x85\x04\x99\x10\x02\xbe\x60\x27\xd0\x7e\xb7\x85\x88\xfd\x57\xd7\x43\xfb\xdd\x70\x6f\xd4\x8e\xb5\x7f\xbc\x9e\xa8\xdd\x4a\x2e\xa5\x03\x7a\xe2\xe7\xbb\x4a\x32\xb5\x9f\xed\x37\x14\x5d\x6d\xbd\x2e\x3f\x52\x07\xad\x97\xc5\xbd\x50\x2f\x1c\x4d\xd9\x3c\x76\xe7\xa1\x5c\xab\xce\x23\x61\x20\x5e\x24\x77\xc1\x1d\x35\xc0\x56\xd9\xac\x7e\xd1\xa3\xb4\x00\x17\xa8\x00\x4c\x06\x60\xa9\xc0\xb7\x0b\x20\x84\x98\x45\xc9\x47\x18\x1f\x41\xc5\xa0\xd9\x34\x97\x8f\x32\x13\x58\x7d\x43\xaa\x51\x84\xec\xe9\x82\x49\x21\xb5\x45\xcc\x8d\xcb\xee\x93\x29\xc2\xd7\x29\x28\xed\xfa\xf3\x1d\x53\x02\xbb\x6b\x2e\x48\xba\x0e\x01\xb2\x1f\x8c\xeb\xcc\xd6\x30\xb8\xcd\x36\x52\xfa\xd5\xed\x3a\x72\x3a\xb4\xae\xa9\xc8\xf8\xec\x15\x69\xf7\xa2\x6b\x00\x0b\xb1\xea\x0a\xb4\xb0\x1e\xe2\x6a\x50\x22\x5e\x9c\x87\xeb\x6b\xd9\xc1\x90\xab\x19\x89\x9b\x32\x1b\xfd\x68\xd9\xb8\x78\x3a\x21\x78\x9b\xae\xed\xaf\x4b\x31\x3d\x27\x60\xb1\x3e\xf9\x13\xfc\x67\x03\x4b\xe9\x16\x14\xf0\x7a\x0d\x0b\xc3\x75\xcd\xbc\xa0\xd8\xf5\xda\xb6\x85\x6d\xef\x88\x9d\x6b\xe3\x22\x4c\x6b\x38\x23\xe7\x19\x97\x93\x8d\x97\xa5\x8e\x5a\x02\xbd\xb5\x5e\xa8\x95\x6f\x57\xc9\x64\x54\x40\xc4\x5e\x9f\xc6\xb7\x2b\xce\xe5\xe0\xe0\xd8\x74\x39\xc3\x6a\x75\xdd\xca\x86\x47\xf8\x24\xb1\x9f\x5d\xb4\xd8\x63\x5d\x68\xb5\x23\x59\xb3\xdf\xd0\x59\xfb\xa5\x6e\x78\xb9\xba\xba\xd8\xe2\xdc\xa3\xe2\xc7\xc9\xfe\x56\xca\x5b\xcf\x90\xb4\x38\x9d\xee\x49\xe7\xdb\xea\x5c\xfd\x4a\x37\x6d\x66\x5f\x79\xa1\xc6\x7c\xe9\xb7\x8d\xec\x65\x0b\x2b\x05\xfe\x37\x84\x8b\x6e\x3e\x43\xd7\x43\x7b\x56\x54\x88\x09\x55\xff\xcc\x32\x7b\x0b\xb4\x0a\x8a\xa4\xa1\x9c\x79\xd3\x21\x13\xd8\x84\x4f\x0d\xfa\xc1\x63\xb3\x4a\xf3\x6c\x7e\x2f\xf5\x60\x56\x6c\xbe\x5b\x7f\xc7\xf7\x5b\xcf\x84\xda\x57\x77\xc9\x3d\xdc\x85\x85\x36\x1f\x6c\xbe\x31\x37\x3f\x5c\xb4\x9e\xc8\xcd\x0f\x17\xd5\x49\xdc\xf0\x54\x1b\x06\xbe\x18\x76\x21\x16\x58\xcf\x77\x26\x06\xe7\x83\x95\xa6\x59\x93\xf0\x4c\x5c\x7d\xde\x1c\x10\x16\xdf\x6f\xbd\x22\xd4\xbe\xba\x2a\xee\xe1\x3c\xb8\xc8\xa2\xab\x18\x27\xfa\xeb\x54\x2c\xca\xae\xc3\x33\xbf\x05\xda\xad\x7d\xbd\xfd\xdc\x10\x95\xa2\x32\x35\x87\x54\xb1\xc2\x3e\xb9\xb5\x44\x4c\x33\x6d\x5e\x05\x6c\xab\x37\x97\x7d\x9a\xc1\x63\x96\xae\x85\x47\x23\xc8\x9b\x81\x64\x76\xb3\xc1\x8f\x66\x3a\x16\xce\x1f\xba\xf1\xf4\x7e\xa1\x5e\x10\xe1\x72\x2d\xae\xfa\x4b\x3c\x80\xea\x5c\x1f\x6f\xe1\xa7\x6d\xb9\x4a\x4b\x37\xfb\x0e\xdd\xea\x48\x98\x96\x38\xd7\x1f\xa3\x66\x71\xfa\x3f\x9b\xf0\x29\xe0\x6d\x40\xf4\x6a\xce\x9f\x18\xf8\x6d\x59\x2a\xa8\x02\x0e\x41\x95\x44\xe6\x8a\x95\xbe\x74\x7c\xb7\x49\x47\xaf\x0d\x2a\x34\x74\x81\x0e\x53\xf8\x1b\x43\x5e\x1c\x50\x70\xd5\xf2\x82\x11\xc0\x95\xf2\x3c\x76\x0a\xa0\x71\xbd\x4c\xd9\x70\xe5\x33\xef\x43\x9a\x89\x0a\x38\x15\xcb\x04\xda\xa9\xde\x71\x64\x46\x1d\x48\x22\x5a\xea\xdd\x1c\x24\xc0\x1a\x5a\x19\xa4\x01\xad\xaa\xc7\xc8\x3e\xf1\xe7\xe8\x97\x0a\x86\xcc\x7a\xa7\x07\x7a\x6a\x71\x78\xe0\xd8\x44\x8a\x6b\x38\x27\x95\xe4\x6f\xba\xca\x21\xc5\x8c\xee\x71\x8f\xa1\x52\xac\xb4\xb7\x7c\xb0\xc3\x0f\x87\x1b\x1c\x21\x1c\x30\x15\x76\xa8\xa6\x47\x37\x8d\xbb\xde\xbc\x0e\xa4\x0c\xbf\x13\x22\xaf\xab\x16\xe1\xcb\x78\x39\x71\x43\xc7\xd3\x25\x34\x5f\x0a\x01\xe4\x33\xc6\x73\x5d\xaa\x94\x92\x8a\x7d\xe6\xe2\xa7\xda\x87\xaf\x09\xba\x14\x81\x79\xaa\x25\xad\x06\xa2\xe0\xf6\x10\x9f\xf6\x4e\xdf\xbd\x54\x31\xfe\xf9\x1a\xf7\x01\xfd\x05\x0f\xd0\xcb\x21\x75\x7d\x22\x62\x6e\x9b\x77\x5d\x4c\x2b\x16\x26\x81\x47\x80\xd8\x15\xa5\x21\x1e\x21\x9c\x97\xce\x63\x20\xb1\xe3\x6a\x86\x2e\x16\x0f\xd9\x04\xa5\xab\x1c\x6c\x70\xde\xe9\x60\xc3\xc1\x08\xc7\xdd\x1f\x8b\x43\xb3\xe4\xe8\xc7\xc3\xbe\x3f\xb8\x3f\x60\x47\x8f\xce\x5e\x94\x6b\x5d\x1c\x6f\xb0\xf0\x34\x89\xcb\xe7\xe9\xaa\x94\xe9\xcb\xe7\x29\x57\xa9\x48\x91\xd8\xef\x68\x46\x3f\x88\x31\x7f\xb4\x2a\x93\x9c\xc8\x8c\xe7\x19\x44\x96\xdf\xe2\x98\x20\xd4\x55\xa8\x47\x99\x6b\x28\x7e\xc6\x1e\x79\x8e\x41\xbd\xde\x38\x61\xd8\xff\x73\xf4\xcb\xd9\x0d\x80\xa9\x1c\xbb\x6a\x48\x38\xca\x00\x31\x10\x8f\x24\xea\xae\xc5\x72\xba\x91\xd8\xd5\x81\xfb\xea\x46\x66\xbf\x34\x29\x0b\x2c\xe1\x2c\x9e\x93\xac\x34\xf2\xb1\xf5\xb9\xdf\x90\x69\x04\x0a\xbb\x1b\x9e\x71\xad\x53\xd1\x50\x13\x64\x01\x06\x59\xd4\xd8\xe3\x4a\xc5\xf8\xf7\xc0\xe5\x33\x39\x91\x96\x8a\xf3\x82\xca\x09\x47\x82\xb7\x4b\xed\xf0\x91\x7f\xf6\xc0\xb4\x60\x2c\xd1\xe2\x6c\x68\x4e\x8c\xd2\x09\x97\xeb\x90\x2e\x48\x3a\xca\x41\xb3\xda\x3a\x24\x68\xcc\xcd\xd5\x05\xc5\x4e\xc4\x4e\xe1\xa3\x71\xb9\xc9\x26\xb1\x1c\xb5\x23\x34\xaa\x84\x56\x7a\x8b\x08\xe3\x99\x86\x52\xbd\xc5\x98\xb8\x4c\x40\x6f\xa4\x3d\xa9\x62\x95\x2f\x46\x8e\xde\x5d\x58\x51\x34\xb3\x65\x7b\x11\x47\x5e\x87\x00\x94\x10\x53\x94\xf2\x82\x53\x65\xa6\xc5\x85\x6f\x76\x1c\x55\xb3\xd5\xd0\xa3\xb1\xb4\x1b\xfc\x4e\x34\xea\xad\x86\x4c\x1a\x75\xcb\xd1\x42\x44\xc0\x59\x02\x79\x88\x77\xfa\x41\xcc\x09\x54\xeb\xd6\x7f\x8b\xfb\xda\x72\x1e\x73\xfd\x2d\x99\xd4\xd6\x17\x78\xb9\x8a\xdb\x12\x07\xb6\xa6\xd2\xee\xa1\x5f\xa3\xb9\xb4\x92\x6b\xd0\xfc\x81\x25\x7b\xae\x2e\x56\xd5\xbc\xa2\xb0\x3e\x2a\x5d\xfc\x03\xc4\xf7\x7c\x82\xea\xf5\x20\x79\x1c\xdd\xf6\x7f\xf8\x74\x6c\x0f\x0b\x78\x8c\xaf\x2e\x9a\x8b\xd4\xc5\xdf\xdc\xb0\x4c\xb9\xa9\xf7\xb1\xdb\x91\xab\xcd\x46\x85\xa7\xb0\xad\xb4\x8b\x1e\x58\x48\x4f\x04\x26\x5a\x3b\xcb\x8f\x93\xf4\x61\xb7\x92\x52\x34\xbc\x6d\x45\xa3\x5f\x05\x80\x93\xa6\x7d\x9d\x3a\x71\x67\x05\xec\xc2\xdd\x58\xb0\x27\x78\x0b\x73\x89\xb3\xcc\x99\x40\x10\x28\x21\x65\x0b\xfa\x74\x85\x95\xc1\xd5\x0f\x90\x68\x53\x91\x77\x11\x77\x8f\x72\xc1\xa1\x17\x7b\xcb\xb0\xd6\x55\x4e\x95\xbc\x8f\xcc\xf1\x6a\x3a\x30\x5d\x38\x03\xb6\xa6\x03\xa8\xda\x4f\x1b\x09\xaa\xc7\xce\x20\x58\xd4\x55\x71\x00\xe0\x88\x4e\xe3\xa5\xa9\xa6\xa1\xe3\x42\x2e\x30\x41\xe2\x8f\x2b\x4e\x20\x36\x9a\xfb\x54\x54\x7c\xb0\xfe\xcd\xda\x42\x75\x6a\x60\x8e\xdd\xd3\x77\x75\x5d\x7a\xc3\xbc\xe1\x96\xa7\x99\xa6\xd9\x59\xbc\x95\x5b\x1f\x72\xa9\x52\xfd\x64\x6e\x45\x52\xe6\x58\x72\xa4\x10\xcf\x05\x62\x7d\x2e\xab\x22\xb3\xf4\x3d\x6f\x8e\xa1\x56\x5d\x5f\x09\xdd\x97\x8b\xc2\x4a\x3f\x1e\x21\x7a\xf5\x19\x1e\x4d\x0c\x3f\xf7\x6f\xdc\x4e\xc5\x5c\xbc\x6c\x3d\x14\xea\xd3\xed\x59\xf5\x05\x26\xa1\x16\x5c\x8e\xf1\x33\xf6\x77\xc6\xd3\x89\xc4\x2a\x23\x4f\x62\x30\xd6\xfa\x81\x1d\x39\x47\xc0\x48\x16\xe3\x72\xd0\x4b\xf4\x24\xf2\x09\x74\x8d\x1c\x99\x93\x27\x9a\x96\x1d\xd3\x31\x93\x2a\x93\x2e\x94\xcc\x4e\x3c\x02\x3d\xc1\x8f\x84\x89\x82\x3a\x41\x29\x51\xc4\x39\xe7\x87\x09\x36\x94\x4d\x93\xa2\xe7\x97\xa9\x05\xe7\x58\x30\x86\x5a\xea\xda\xc2\xf9\x20\x22\xf8\x26\xa6\x9e\x52\x9d\x99\x9f\x8d\xc8\x5b\x8c\xd1\xd2\x56\xd7\x94\x85\xa3\x65\x3f\x9e\x97\x78\x4b\x01\x1e\x08\x4a\x5d\xcd\x5b\x9e\xa9\x2a\x68\x55\xd3\xb7\x4d\x4a\x63\x95\xa1\xb8\x2e\xb9\x9c\x58\x2e\x3a\x11\x05\x07\xc9\xb0\x26\x7f\xb0\x4f\x7c\xc6\x78\x66\x1c\x68\xb2\x7d\xa3\xaf\xd3\xda\x45\x80\xcc\x4a\xfa\x75\xa0\x8b\x31\xab\xfd\x0e\x17\x60\xfe\xb5\x0a\xa4\x56\x3c\xa6\xfa\xeb\x05\x14\xb2\x9b\xe6\x22\xb1\x5b\xd1\x1e\x7e\x7c\x53\x89\x36\xd4\xa6\x7d\x3c\x1d\x88\x82\x9f\xf6\x5c\x21\xb3\x25\x34\xc2\x35\xa9\x39\xe7\xa4\x1a\x65\x82\x65\x7a\x04\x88\x05\xf7\x07\x54\x2c\xd0\x8a\x7a\xae\xe0\x23\x81\x17\xb7\x2e\x3c\xc5\x5b\x96\x37\xe6\x71\xd9\x61\x30\x48\xb8\xe2\x68\x88\x5b\x54\xbd\xbe\xde\x9c\xca\xc1\x4b\x58\x88\x7c\x9a\x0b\x50\xa6\x93\x44\xe7\x31\x0e\x68\x95\x8b\xb8\x79\xdf\x66\x32\x11\xae\xfa\x9c\x95\xc4\x1d\x44\xc5\xb9\x56\xa6\x9c\x88\x9c\xcc\xa7\x98\x39\xe2\x81\x4c\x0a\x2a\x38\x6b\x25\x08\x3f\xde\xc8\x44\x6e\xf7\x1f\xcf\xb7\xcc\x99\x7e\x52\x2c\xe1\x53\x3e\x90\x99\x2c\x00\xba\x29\x98\x65\x1d\x15\xe6\x05\xcb\x04\xb7\x02\xba\xf2\xc3\x01\x8b\x9a\xb2\xa2\x3e\x90\x43\xae\xd8\x3c\x6f\xdb\x29\x90\x56\xe5\xa7\xc5\x45\xb3\xcd\x22\x7f\x6a\x62\x17\xb7\xce\x95\x58\x2b\xf1\x65\xf1\xe1\x3d\x0f\x9d\x2e\x93\x65\xc2\xb7\x43\x5a\xf8\x02\xab\x44\x63\xcd\x31\x7f\xc8\x16\xc7\xc3\xb6\xb0\xb7\xbb\x66\x8d\x67\xd7\x9f\xd5\xb8\x58\xe6\x00\xeb\x52\xe2\x51\xab\x54\x02\x2c\x34\xe0\xeb\x48\x35\x2a\xa5\x19\x47\x3f\x80\xe9\x16\xe0\x3a\xd0\x4c\x74\x24\x7a\xa3\x9e\x3d\x7d\x17\xd7\xb7\x18\xd8\x75\x6c\x15\xc3\xac\x00\x64\xd7\xb8\xc6\xaa\x4c\xc6\x58\x8e\xd5\x85\x81\xf9\xf1\x06\x63\x6f\x04\x51\x31\x2c\xd5\x48\x0e\x32\x41\x5f\x98\xb8\x2e\xcf\x1c\x86\x09\x7e\xf3\x98\xd4\xd0\x29\x37\x06\xc6\x00\x88\x49\xec\xe8\xe6\xe3\x39\x3b\x3d\xfd\xf6\xfd\x31\x96\x59\xc5\xca\x01\x1b\xe0\x5d\xf2\x7c\xf4\x7a\xb5\x9b\xfc\xd7\x10\x3c\xb0\x16\x58\x17\x79\xdf\x09\x39\x00\xb4\xa7\x0a\x64\x5b\xbc\xeb\xcb\x61\x68\xea\x13\x7a\xd1\x42\xe0\x71\x19\x54\xbc\x1e\x3c\x1f\xc8\x02\xb2\xab\xfc\x6f\x95\x1b\xd3\x20\xfe\x57\x48\xb1\x01\x4c\x9c\x13\x64\x85\x53\x2e\xf3\x40\xd3\x6c\x2f\xe1\x2d\xc4\xc4\xc1\x9e\x7b\x3b\x88\x75\x45\xf4\x9d\x50\xd2\xd7\xde\x27\xa9\x92\xac\x4c\x05\xf8\xda\x11\x7e\x4a\x0f\xa9\x82\x6f\x3c\x42\x17\xf3\x8d\xad\x0d\x02\x74\x10\xaa\x02\x98\xc3\x43\x50\xf1\x50\x67\x99\x7e\x42\x35\x27\xcb\xd8\x83\xb2\x74\xfc\x41\xcc\xcc\x07\xf6\x0d\xab\x0e\xde\x5d\xa3\x0f\x91\x6c\x50\x45\x2d\xae\x12\x06\xc4\x6b\xbf\x57\x2c\x92\x75\xdd\xd2\xda\xd1\x50\x09\x51\x1a\x2c\xdd\xcd\xe0\xc1\xab\xb0\x32\xdb\x4b\xc0\x24\xea\xdd\xab\x6f\x02\x72\x50\x75\x94\xff\xd4\x6a\xc9\x08\x01\x1c\xc6\x0f\xc7\xf6\xba\xe9\x88\x5a\x0e\x27\x17\x23\xa9\xd5\xe2\x01\xe1\xef\xbb\x1f\x52\x33\x05\x9a\xab\xc8\xde\x52\xfd\x0b\x62\xcd\xa6\x6a\x5e\x2b\xd6\xb7\x5a\x82\x0b\x8d\x17\x15\x0c\xf5\x2c\x92\xea\xdc\x06\x2a\xd5\xc2\xab\xc3\xd3\x55\xde\x5e\x68\x53\xd9\x43\x08\x24\x89\xc8\x21\x95\xf0\x9c\x72\x32\x21\x5a\xd1\x58\x3e\x0a\x56\x60\xc1\xee\x4e\x55\x68\x7b\x1a\xf3\x02\x50\x7e\xc9\xaa\x69\x45\x26\xae\xf8\xc8\x99\x05\x02\x2d\x3a\x63\x4a\x66\x73\x67\x88\x2b\x56\x2a\xbc\xb5\x96\xd5\x0b\x40\xf0\x01\xf3\x4c\xc2\x0d\xb9\xc3\x90\xed\xd2\xd9\xf1\xe2\x23\x8e\xba\xf2\x32\xe3\x06\x7c\xd6\x8b\x00\x9b\xe7\x5d\xcf\xbb\x17\xe3\xfb\xd5\x8a\x1b\x8b\x0e\x02\x94\xe9\xad\xc6\x2f\xdb\x27\xa5\x87\xef\xa8\x0a\xbf\x6d\x00\x6e\xa6\xfd\x5c\x17\x3a\xd1\x59\x0b\x05\x10\x10\x6b\x13\x64\x21\x53\x7a\x8d\x60\x6e\xec\xf6\xeb\xbc\x2a\x0b\x21\x95\x35\x76\x95\x55\xca\xf3\x34\x66\xb1\x84\x9b\x38\x53\x05\x7f\xee\xb1\x9f\x55\x77\x9a\x8b\xa1\x7c\x16\x69\x54\xf2\xc9\xce\x32\x7f\xa4\xa4\x9d\xab\xb3\xeb\xb3\xd0\x93\x4b\x7b\xc4\xc6\x47\xdc\xb0\xa9\xc8\xd9\xcd\xc7\xf3\xee\xf7\xef\xdf\xff\x19\xd4\x3b\xcb\x8b\x3e\x9c\x9c\x3c\x3d\x3d\xf5\x24\x57\xbc\xa7\xf3\xd1\x09\x37\x46\x8e\xc0\xe7\xec\xab\x0a\x77\x9d\x54\x75\xad\x55\xd7\xf7\xef\x66\x57\xa9\x74\x5f\x1b\xa2\x29\x93\xb1\x3d\x3b\x93\x59\xa2\x27\x53\xae\x66\x60\xac\x98\xcc\xba\x49\x69\x0a\x3d\xe9\xba\x3e\x5e\x2a\xfc\x23\x36\x0d\xf8\xe5\x3f\xcb\x32\xf8\x8b\x90\x16\x6b\xca\x10\xe9\x3b\x80\x66\x47\x99\x2b\x98\xde\x42\x28\xd3\xd5\xd6\x90\x09\x68\x79\x35\x45\xcf\x54\x64\x24\xe3\x2a\xf8\x13\xa2\xbc\xa3\xc8\x5e\xb3\x27\xdf\x51\x0f\x46\xf3\x7f\xff\xab\x87\x1f\x0a\x55\x58\x84\x04\x09\x17\x8b\xb1\x20\xcc\x2d\x61\x14\xeb\xdc\xcb\x9b\x94\x69\x13\x84\x4c\xcb\xa0\x9d\xbf\xb7\xa2\x3f\x7d\xff\x9e\x25\x63\x9e\xf3\xa4\xb0\xd7\x3e\xd3\x6a\xd4\x73\x4d\x41\xec\x45\xa0\xd8\x4c\x3f\x01\xa4\x97\x11\x08\x5f\xab\x2c\x95\x90\x49\xfc\xaa\xce\xd9\x61\xf7\xd0\xbf\x6c\x0a\x4e\xa5\xb1\x85\x22\x69\xc9\x61\xdf\xce\xbd\x1c\xd0\x0f\x1d\x12\xff\x9a\x78\xdb\xb5\xa4\x81\x16\x47\x00\xca\xe3\x04\xcc\xbf\x2a\xf1\x5c\x54\x44\xbf\x43\x47\xc4\x55\xe4\xca\x85\x1d\x49\xe2\x2a\x9b\x07\x90\xa9\xa0\x73\x37\x2a\xc0\xcc\x1b\x16\x1d\xc1\xdd\x39\xac\xe3\xb4\x3d\x75\xba\xea\x2f\x24\x4a\xce\x95\xf6\xf3\x45\xbf\xc3\xee\xce\xfb\x1d\xbb\xcb\xb7\xe7\x77\xfd\xca\x8e\xdd\x9d\xb7\x2e\x96\xb4\x7b\x0e\x80\x04\x7b\x35\x0b\xc0\xab\x59\x35\xe9\x78\x00\xe7\xa2\x52\x93\x1e\xbd\x3f\xce\xa8\x13\x59\x74\x10\x27\x8c\xa0\x56\x1d\x29\x2d\x40\x18\x23\xfd\xd5\xeb\x83\xd5\xcf\x92\x94\xde\xf1\xc8\xe0\x01\x5a\xd9\x03\xfb\xd3\x52\xff\xb7\x86\xd2\xfd\xe8\xd8\x4d\x4b\xaa\xd1\x38\x2c\xb3\x6c\xae\x30\x7e\x7b\x0b\x53\x0b\x7f\x6a\x6c\xef\xa9\x16\xe9\x73\x28\x64\xce\x04\x93\xf0\x3c\x97\xce\x12\x2c\x4d\x75\xaa\x48\x49\x6b\x06\x20\x2b\x8b\x06\x3a\x3a\x88\x94\x6d\x84\xa9\xad\x86\x00\xca\xc9\xa4\xc4\x1a\xff\x7c\x08\x40\x82\xb9\xa0\x0a\x7b\x77\x15\x15\xc4\x8d\x07\xcd\x4e\x80\x1d\x8a\x52\x5d\x36\x0b\x9e\x5e\x4b\xf7\xae\xfa\x8f\xdf\x7d\x60\x37\xd5\xbc\xcb\xfe\xe3\x77\xec\x0c\x7b\xe8\x61\x9b\xef\x1b\xda\x7c\x1f\xb7\xf9\xf8\xf7\x8b\xeb\x6a\x1b\xf6\xb1\xcc\xb2\x19\xfb\x7b\xc9\x33\xb4\x79\x5e\x00\x24\x2f\xdb\xd0\x75\xca\xa7\xf2\x17\x91\x9b\xd5\xa1\x9c\x67\xfd\x2b\x6a\xe8\x23\x99\x40\x65\xc0\x67\x22\x05\x7c\xc5\x09\xf7\x3c\xce\x1f\x7b\x1e\xc9\xba\x78\x28\x7b\xc0\x70\x22\x91\x2f\xd1\xea\x51\x80\xb8\x94\xe8\x91\x92\xff\xf4\xbd\x79\x0e\x05\xd0\x9a\x05\x92\x39\xe5\xd0\x5b\x3b\x1e\xc9\x3c\x17\x60\x05\x28\x55\xd4\x83\x83\xcf\x6f\xc8\x5c\x18\xc9\xc2\xe5\xa2\x24\x7a\x32\x29\x95\x2c\x66\x27\x00\xd3\x20\x07\x65\xa1\x73\x73\x92\x8a\x47\x91\x9d\x18\x39\xea\xf2\x3c\x19\xcb\x42\x24\x45\x99\x8b\x13\x3e\x95\x5d\x18\xac\x02\x11\xbf\x37\x49\xff\xe4\x33\x98\xd6\x5f\x7b\x7f\xab\x56\x2c\x7d\x20\x13\x60\x0c\x71\x48\xea\x24\x15\x44\xbf\xc6\x07\x9f\x0a\x01\xd0\x25\x58\xa8\x9a\xbf\x7b\xf7\xae\xe9\x76\xb3\x25\x56\xcd\x2d\xac\x88\x3b\x36\x81\xf2\x42\x4f\x64\xb2\x35\xee\x21\xaf\x54\x5c\x08\x27\xd7\xa9\x38\x37\x97\xb7\x77\x71\xaa\xb4\xf4\x66\xa7\x40\xdb\xc3\x99\xc6\xb5\x1e\x0a\xe2\x6a\x3e\x98\xd9\xab\x5f\x88\x58\x0a\x15\xfc\x4d\x39\x98\xc8\x02\xf1\x1d\x85\x29\xb0\x8c\xc8\x39\x57\x96\xd3\x0f\x04\x2b\xa7\x29\xea\xd6\x57\x8a\x9d\xf3\x89\xc8\xce\xb9\x69\xce\xc5\xd9\xe5\x89\x06\xe2\xd6\xb5\xeb\xb7\xc1\x99\x76\xce\xa0\x1d\x62\xc4\xa3\xdd\xf0\x93\x28\xf8\x8a\x94\x1e\x52\x08\x70\x6f\x0e\x8d\x77\x4c\x2d\xb0\xff\x81\x60\xb5\xe2\x88\xa0\xf0\x55\x65\x4e\xee\xfe\x29\x51\x3c\xe9\xfc\x81\x04\x34\x97\x0b\x3f\x98\xa1\x51\x38\x68\xdb\x0d\xb7\x12\x44\xc1\x85\x12\x3e\x84\xb2\x93\x66\xe0\xcb\x44\xc9\x62\x5e\xa9\xb7\x52\x00\x0a\x86\x44\x93\x53\x7c\x8d\xba\xc0\xd4\x51\xd4\x0d\xf0\x57\x02\x02\xb1\x7a\x3a\xfc\x44\x64\xb4\xd2\xf7\xfd\x01\x77\x8a\xc9\xfd\x41\x6b\x2a\x42\x1f\x7e\x69\x02\xd2\x8f\x2a\x39\xbe\x14\x11\x59\xcf\xe4\x04\x72\x4e\x23\x51\x5f\x65\x89\xf2\xcf\x2b\x63\x03\x78\xd8\x2e\xb1\xd5\x2e\x51\xb1\xf0\xd9\xca\x61\x1d\x11\xe0\xed\x41\x58\x30\x24\x02\xd5\xb9\x53\x27\x07\xcd\x06\x07\x68\xf2\xe8\x65\x80\x03\x5a\xf2\xf9\x05\xf9\xaf\x0d\x25\xe5\x9f\xa4\x69\x63\x30\xf1\x6d\xab\x12\xb3\xbb\x6d\xfe\x3e\xc1\x59\x6c\x11\x7e\xbb\x97\x6c\xbe\x9c\x64\xd3\x74\xf1\xe7\x0a\x7a\xac\xd8\xd8\x85\x1d\x6d\x47\x41\xf0\xf0\xbf\x92\x2b\x76\x2f\x84\x7c\x2d\x42\x88\x3d\xad\xed\x45\x10\x20\x5a\x4d\xe2\x47\x4b\xde\x82\xc7\xfe\x6d\x33\x10\x20\xeb\xbb\x63\x22\xe2\x11\x4e\xb0\xbf\xae\x8f\xcb\x6b\xce\xc1\xef\xce\x39\x0c\xb2\x0c\x79\x53\xe0\xb9\xd1\x13\x81\x1e\x2b\x67\x0c\x43\xc4\x2d\xa8\xa7\x15\x60\xa6\x52\xa1\x34\x18\x48\xf5\x44\x90\x83\xa1\x5a\x13\xab\x5e\x80\x70\x31\xb3\xa9\xa7\x9d\x34\x8d\xf9\x57\xc0\xa8\xc2\xdc\x93\x27\xcb\x01\xf8\x83\x50\x27\x43\x2e\x33\xc8\xce\x1b\xf1\x4a\xa4\x4c\x78\x40\xbc\x65\xaf\xdc\xff\x91\x58\x60\x00\xe6\x3b\xaf\xa5\x19\x37\x6d\xc0\x85\x6f\xed\x02\xa9\x8c\x29\x81\x1d\x0c\x78\xf2\x00\xf0\x27\xe0\xb9\x28\x24\x84\x2f\xcd\x50\x92\xa7\xc8\x0a\x86\x97\xa1\xa8\x4a\xa2\x3b\xb1\xe9\x86\x59\x7c\x94\xb9\x29\xee\xe4\x44\x98\x82\x4f\xd6\x4e\x69\xda\xa6\xfa\xf5\xce\xd6\x66\xc5\x0c\x7f\xe2\x5f\xf9\x04\xe7\x92\x69\x5a\xcd\x2c\xa0\x09\xdb\x0f\xb5\x81\x47\x7e\xd1\xe9\x00\x81\x87\x25\xdd\xdd\x0e\x7d\x92\x49\xae\x57\x6e\x53\x54\x5c\x5e\x4e\x20\x48\x83\x34\x7b\x1c\xb2\xa5\xe8\x43\x7b\x49\x98\x1e\xa0\x33\x74\x81\xdd\x61\x2f\x14\x7e\x2d\x42\x61\x64\x99\x6a\xfc\xa4\x95\x2e\x56\xec\x34\xe6\x01\xf0\xac\xc7\xce\xd8\xb8\x9c\x70\xd5\xcd\x05\x4f\xc1\x15\x11\xb5\xf4\x4e\xbc\x28\x58\xd2\xee\xf5\x94\xca\x10\xf7\xd8\x27\xfe\x2c\x27\x3c\x63\x99\x50\xa3\x62\x1c\xe2\x9b\x0a\x2c\xec\xf6\xf0\x03\xc6\x58\x65\x72\x90\xf3\x5c\x0a\x13\x85\x1a\xc6\xb1\x20\x14\x60\x4b\x81\x85\x25\x94\xf2\xfe\xfe\xbb\x87\x1f\x36\x43\x27\x30\x2d\x44\x22\x8c\xed\xaf\x4b\x45\x1b\x7d\x8f\xe4\xa5\x57\x09\x50\xbc\x1b\x8b\x10\x7b\xe8\x69\x80\xbd\xb2\x03\x5d\x16\xf5\x20\x17\x09\x05\xa5\x14\xfb\xec\x2f\xa7\xce\xe1\x12\x27\x01\xcd\xce\x7b\xff\x4c\x8f\x5d\xf6\x46\x3d\x76\x23\x20\x84\xe3\x56\x14\xe7\x4d\xad\xa2\xdf\x0d\xe1\x62\x48\x43\xf2\x2f\x98\x0d\xb1\xe8\xe3\x40\x24\xbc\x34\x50\xe9\x8a\x27\x05\x80\x53\x83\xb8\x8b\x82\x2e\xc6\x1e\x44\x5d\x79\x61\x73\xc1\x1a\x5b\x59\x6d\xf3\xac\xf2\x75\x56\xd8\xdd\x0c\x66\xa0\x5e\x3a\xcf\x67\x6e\xc1\x87\x3a\xc7\x68\x02\xcb\x46\x32\xf1\x4c\xa7\xc7\xad\x1b\x10\xe6\xba\xf4\xcc\x8a\x5c\x8e\x46\x96\x0a\x72\xef\xdd\x03\x10\x5b\x91\x09\x77\xc3\x68\x76\xab\x96\x80\xf6\x2e\x6c\x4a\x9b\xe2\x46\x51\x9a\x05\xed\x24\xd8\x70\xdd\x2e\x85\x33\xd4\x61\x10\xe5\xfb\x5b\x35\x4a\x8f\x50\x98\x7e\xdb\xe8\x5e\xd0\x80\xaf\x94\x29\xb8\x9a\x17\x00\xea\x38\x7d\x17\x0d\x83\x95\xf4\x6e\x3c\xba\x4c\x14\xdd\xe7\xd9\x3f\x87\x9b\x0c\xca\x40\xf5\xe4\xb5\xcf\x51\x93\x92\x78\x8b\x5d\x2d\x95\x48\x78\xc1\xa3\xd0\x73\xbc\xab\x38\x84\xf8\xd6\x44\x76\x47\x9d\x83\x91\x1c\xaa\x1a\x1e\x86\x5c\x8c\x42\x2b\x7c\x7b\x51\x48\xf1\x6a\xa7\xf7\x1d\xb9\xb6\xa3\xef\x1e\x5d\x5b\x39\x3d\xeb\xb0\x5f\x79\xae\xa4\x1a\x1d\x77\x98\x12\x4f\xe4\x64\x4e\x1c\x99\xc6\x6c\xc7\x05\xc5\x9a\x97\x2f\x7c\x4b\xab\x43\x10\xad\x5e\xd1\xf2\x40\x5b\xba\xd4\xec\x00\xb6\x80\x97\x35\x35\xac\x32\x52\xbb\x36\x55\x17\x2c\x9e\x24\x57\xd0\x7b\x6f\x93\x7e\xcb\x0a\x79\x1b\x9b\x34\x62\x94\x56\xb6\xd8\x2d\x74\x7d\x8f\x17\xf6\xb9\x29\x1d\x6b\x6b\x93\xde\xeb\x14\x5f\xb5\x4e\xb1\x8d\xa1\xf9\xa5\xd7\xca\x4f\xf7\xed\x1b\xb4\xdb\xb2\x95\x57\xb0\x62\xdf\xd6\x65\x9d\x46\xe6\x82\xad\x7c\x26\x62\x9c\x02\xa4\x95\x13\x56\xf4\x10\x45\x06\xd3\x61\xb2\x27\x7a\x58\xfc\x00\x25\xc9\x27\x6e\x4e\xa0\xb6\xd6\x74\x2a\x94\x53\x2d\xa4\x2a\x75\x69\xb2\x19\xd6\x52\xb0\x62\x3f\x80\xf4\xb6\xc1\x2e\x5a\x6d\xb3\xbc\xf6\xa1\xac\x3a\xc1\x30\xb8\x24\x8e\xbe\xc3\x11\xa3\x0a\x89\x4c\xc5\x14\x6c\x2c\x78\x5e\x0c\x04\x2f\x60\x20\xbb\xb6\x56\xda\x4f\x7c\x26\xe3\xcb\x17\x31\x11\x05\xc3\x10\xcc\x16\xc5\x03\x4f\x13\x69\x49\xac\x92\x6b\x84\x50\x6c\x20\x86\xf6\xbe\x56\x17\x66\x11\x54\x70\xc1\x57\xda\x12\xae\xa2\x33\xf3\x34\x16\xae\xb0\xac\xdf\x0b\x4b\xc9\xd5\x48\x53\xdc\xb6\x5d\x00\x33\x46\x84\xbc\x50\x43\xa6\x9f\x71\xa5\xc0\x1d\x31\xd1\x8f\x1c\xa3\x73\x4f\x7b\xa7\x7f\xd9\xad\xa4\x89\xc7\x6b\xd9\xce\xcd\x4d\x7d\x15\xed\x58\x78\x23\x9f\x0b\xa1\x0c\x50\x30\x77\x2b\x7f\xbc\xbb\xeb\x5f\xa9\x51\x2e\x8c\xa9\xa1\xb3\xcc\x55\x43\xa9\xb6\x0c\xc9\x78\x80\x7c\xed\x20\xfd\x18\x67\x94\x99\x6d\x79\x17\x55\xc8\x2e\xf3\xcc\x54\x01\x34\xa6\x0e\x04\x6f\xa8\xf3\x27\x9e\xa7\x21\xc7\xcd\xbd\xbd\xfa\x5e\x52\xcb\xf5\x15\xa7\xf9\x55\xa0\x79\xfd\x40\x3d\x2e\x3b\xd6\xd4\xa6\x22\x8a\x46\xd5\x9b\x5d\x58\x72\xe0\xf9\x3a\xc2\x34\xa4\xb4\x22\x8f\x60\x1b\xcf\x7e\x51\x64\x56\x4b\xcc\x1c\x69\x3c\x5c\x0c\x1f\x71\xab\xa3\x86\x85\x46\x11\xd8\x17\x2c\x27\x99\xa3\xc7\xce\x7d\xc0\xae\x2c\x00\x5d\xcf\x51\xdc\x28\xaf\x20\x95\xc6\x95\x91\xf1\x97\x37\xb0\x42\x48\xc5\xb7\xdf\xb8\x3f\x80\x52\x4d\x88\xe2\xf9\xf3\xcd\x4f\x8c\x87\x48\xab\xc1\x8c\xdd\x7c\x3c\x67\xef\xff\xfd\x2f\xdf\xf7\x98\x1d\xac\x71\x91\xc8\x23\xa9\xdc\xa9\x39\x3c\x39\xa4\x50\xad\x08\x37\xa1\x03\x68\x38\x53\x78\x05\xbe\x5e\x9f\x03\x06\x1e\xd3\xc4\x37\x49\x57\xe0\xc5\xb8\x45\x74\x76\x9f\x9a\xc5\x98\xad\x76\x21\x7c\xaa\x01\x8f\x2d\x93\xb0\x1f\xee\xb8\xe3\x8c\xe1\x65\xc2\x2f\xd4\xca\x9b\x40\x42\x34\x35\xea\x0c\x1f\xd8\x37\xec\xf2\x99\x27\xc5\x07\xf6\x09\xe6\x84\x9f\xb1\xeb\x09\x1b\x29\xec\x6f\xd9\xac\xc7\xbe\x61\x7d\xc8\xea\x09\xed\xb0\xa4\x1c\x14\xbb\xf2\xcd\x31\xf3\x87\x99\x69\x26\x0b\xbb\x0b\xb0\xc6\x9f\xdc\x3d\x94\xe6\x5e\x31\x96\xc2\x70\x94\xbb\xc3\x82\xa2\xee\x07\xb3\xf0\x27\x37\xd2\x00\x20\x4f\xdc\x00\xce\xbc\x21\xb4\x0f\xdb\x91\x53\x12\x28\x15\xd6\x21\x21\xdb\x77\xfc\x00\xec\x93\xc3\x93\x43\x66\xc4\x94\xe7\xbc\xd0\xb9\xed\x96\xb6\x12\xe4\x71\xdb\x11\x26\x4c\x0e\x21\x9d\xc6\x4e\x82\x49\xe0\xf4\xf9\x8c\x41\xfd\x6f\xae\xdc\x18\xba\x00\xd1\x4a\x93\xd4\x43\x36\xa5\x65\xb5\x9d\xb8\x4e\x6d\x17\x3d\x76\xad\x0b\x57\xd7\x67\x18\x18\xb0\x9b\x0a\x6d\xc6\x94\xae\x11\x66\x26\xc0\xa1\xb1\x3d\xe9\x86\x37\xa4\xaa\x7c\x00\xa3\x06\x31\x5b\x85\xd3\xf8\x31\x41\xfd\x64\xa8\xf5\xc9\x80\xe7\x7e\x5e\xc2\xf8\x67\x27\x03\xfe\x4f\xb4\x44\xa7\x5a\xe0\xcb\xf8\xaa\x6b\x30\xe0\xff\x3c\x86\x74\xd5\x2b\x67\xe8\x84\x63\x76\x4b\xd9\x2b\x1f\xb0\xc4\xe8\xf2\xe3\x07\x40\xbf\x56\xee\xb0\x23\xb0\xbf\x12\xa9\x3b\xcf\xb8\x31\xbd\x5a\xcf\x06\x8e\x68\x91\x0b\x97\x26\xc9\x11\x17\x1f\x36\x4b\xf8\x83\x0c\xab\x92\x53\x3b\xe9\x90\xba\x12\x08\x23\x28\x34\x9d\x4c\xdb\x02\x8e\x32\xae\x2b\xa8\x16\xbd\x7b\x55\xff\x20\x26\xcc\x11\x6c\x66\xa1\x5d\xe6\x80\xbf\xf7\xf4\x62\x05\x80\xa5\x79\x39\x76\x6c\x00\x72\xdc\xe5\x65\x78\xed\x4d\x99\x89\x5f\xec\x95\x6f\xc7\x70\x7d\xf3\xaa\x3e\x6e\xf5\x1a\xca\x69\xd1\xb9\x61\xc0\x70\x28\x6a\x82\x86\x6f\x40\x83\x04\x25\x14\x0b\x4f\x7c\x70\x09\x86\xf7\xe5\xbb\x77\xef\x93\xb1\x36\x05\xfc\x25\xe8\x01\xd0\x72\x78\xf0\xbf\xf1\x81\x11\x56\x13\xb2\xb4\x1d\x1f\xb3\x2e\xfd\x97\xbe\x40\xd9\xd0\xf8\xff\xb6\x99\xc7\xaf\x28\xf3\x2c\x4a\xb0\xb3\x83\x72\x5c\xa0\xe3\x0c\x35\xa4\x58\x3b\x76\x58\x52\x01\x2d\xbc\x06\x8e\x8d\xc1\xdd\x47\xe9\x1e\x33\x52\xfc\x75\xb4\xa4\x04\xea\x57\xa3\xf0\x08\x14\x15\xbc\x8e\x87\xff\xfb\x10\x12\xe2\xfe\x74\xd8\x42\x8e\x00\xf6\xb2\xca\x06\xc5\x12\x9d\x65\x84\x95\x6a\x49\x0d\xb0\x24\x02\x4d\x9d\xc6\x5a\x7c\x58\xf9\x1d\x99\x47\x56\xcb\x6c\x6b\x1b\x4b\x5a\x5e\x01\x5c\x98\x1d\x5e\x00\x1a\xf4\x92\x33\x4f\x2d\xf0\x98\x57\x97\x3c\x2f\x33\x17\xed\x0d\x02\x09\x93\x6a\xa0\x4b\x05\x36\x3c\x85\xcd\x10\xd7\x09\x42\xce\xab\x29\x65\x91\x24\x12\xc9\xa7\x67\xca\x51\x43\xc7\x9a\x11\x1e\xb6\x24\x5a\x34\x92\x8f\x1e\xfb\xd3\xf8\xda\xcc\xd9\xac\x0b\x9f\x00\xbf\xa4\x95\x6c\x3b\x2c\xd3\x3c\x65\x03\x9e\x71\x40\xe5\x70\xa9\xe3\x28\x29\x58\xc2\x79\x7b\xfb\x53\x87\xe9\xe1\x50\xe4\x98\xfb\x8a\xbc\xfa\x11\x01\x3e\x01\x88\xc1\x1e\x6e\x51\x24\x71\x69\x4b\xd6\xc5\xc4\x2c\x50\xe3\x9d\xb5\xd3\x2e\x44\xb4\x46\x21\x9e\xc1\x4e\x8d\x82\xf0\xad\xd0\xe1\xaa\xcb\xe0\xc2\xbb\x57\x7a\xec\x96\xca\x00\xe6\x22\x13\xdc\xa0\x53\xd4\x04\x27\x52\xa4\x69\xef\x2d\xb8\x6f\xda\x82\xbb\x37\x72\x7e\x2d\x46\xce\xed\x53\x7a\xbe\x80\xa9\x33\x36\x49\x34\x80\x2a\x6e\xa1\x83\x03\x46\xe3\xd2\x85\x20\x4c\x46\x2c\x08\x63\x10\x6f\x1d\xe2\x55\x49\xee\xf0\xc4\xee\x85\x97\xc5\x4e\xbc\xcb\x55\xda\xc5\x48\x94\xc5\xb6\xaa\x72\x03\xe7\xee\xe2\xf5\xc1\x0e\x57\x1c\x95\xa2\x74\xaa\x59\x05\x5c\xec\x0d\xad\xd1\x9c\x0c\xf2\x82\xf6\x6f\xbf\x98\xcd\xc6\x6f\x27\x96\xec\xd0\xf4\xbd\xd2\xc4\xb4\x52\x04\x0a\x76\x26\x5f\x6c\x27\xcb\x62\xc8\xb5\x86\x5c\x78\xcb\xd2\x00\x39\xa0\x0d\x7c\x8e\xd9\x2e\x02\xd2\x2a\x82\xe9\x4f\x3a\xe1\xd9\x3a\x81\x2c\x37\x8e\xcd\xc8\x28\x06\xe8\x46\x0c\x01\xcb\x4c\x21\x78\x5c\x84\xd6\xe1\xb9\x12\x59\x13\x7c\x8d\xd0\xda\x39\xf6\xc2\xc1\xd5\x30\x7a\xc7\xc4\xd0\x11\xb4\x46\x10\x80\x62\xd7\x89\xfe\xdd\xf7\xd9\x87\xc4\x94\x22\xcc\xf0\xe6\x0b\x1d\xfa\x59\x85\xac\x5d\xc9\x94\x8c\xa1\xb6\xe6\xed\x85\x9b\x85\x8d\xb8\x09\x6c\xc7\x8d\xca\x42\x66\x3d\x7b\xa6\x8a\xbc\x77\xa5\x8a\xcf\xf9\x2d\x7e\x75\x15\x11\x0e\x73\x73\x39\x07\x8b\xe6\xd6\xfe\xd6\xaf\x7f\xa1\x56\x04\x2b\x44\xad\x9a\x94\x0a\x47\x07\xf7\xc2\xee\x5b\x16\x76\xd7\x0a\x57\x88\xd3\x92\xe7\xb6\x77\x61\x77\xdb\x31\xe5\x7d\xbc\xc2\x5e\x94\x5f\x3b\x5e\xe1\x4d\x08\xf2\x2d\x4d\x41\xaf\x1f\xb3\xd0\x4e\x66\xdb\x75\xc8\xc2\xc2\x1b\x7e\x53\x66\xcb\x6c\xb5\x51\xab\x3a\xd6\x21\xda\xad\x5c\xb9\x4d\xe7\x68\x30\xac\x54\xa9\xb0\x22\x5c\x40\xec\x76\x25\xfe\xc8\x40\x83\x66\x1d\x12\x03\x9d\x19\x2a\xf2\xaa\x56\x5c\x60\x68\xf7\x14\x96\x2e\x60\xb6\x09\x88\x87\x54\xa7\xb4\x48\xc6\x80\x11\xae\x58\xae\xcb\x62\xce\xd7\xda\x88\xab\xea\x1d\x08\x75\x13\x74\x0b\x5e\x69\x3f\xbb\x82\xa2\xfd\xa8\x91\x21\x3b\x74\xa5\x19\xfb\xdd\xa3\xf8\xa4\x88\xe2\x13\x6a\x6d\x3a\x74\x09\xdb\x6f\x67\xa1\x67\x91\x9c\x3c\xb1\x57\x2d\x15\x8f\x92\x1c\x0d\x9e\xba\xdd\xc3\xf0\x22\x7f\x25\x7a\xd8\xae\xe2\x7e\xa5\xf2\xfd\x7e\x60\xa7\x3d\x76\xd5\x0f\xa8\x63\xe4\x0d\x8d\xbd\xa7\x5c\xcd\xad\x12\x58\x14\xa1\xc0\x20\x9f\x4e\xc1\x2f\x72\xaf\x18\x79\x60\xfa\x4e\x9c\x05\x55\xd6\x7b\x9f\x40\x4b\x73\x1c\xeb\x5e\x7d\x8b\x80\x4b\xbf\x7d\xf8\x8d\xa5\x02\x81\x60\x73\xe7\x64\xca\x85\x3d\x35\x71\x48\x7b\x15\x19\xcd\x8d\xf1\x5e\xdd\x17\x2c\x1a\x68\x2c\xac\x85\x41\x23\xea\x93\x2f\xa9\xf3\xe1\x2f\xef\xe0\xf8\x80\x77\x81\xab\x14\x3b\xf9\xf0\xdd\x77\xef\xfd\x63\x3b\xbe\x1f\x34\x9e\x14\x83\x60\x18\xd5\x64\x51\x8a\xc9\x5d\x70\x58\x9b\x1c\xd5\x70\x54\x23\x43\xfe\xdc\xb1\x73\x60\x7f\x63\x3a\x39\x15\x37\x71\xac\x0b\xc0\x19\x47\x75\xc9\xf9\xdb\xbd\x73\x34\x42\x7f\x13\xe9\xfc\x37\xee\xd5\xbd\xfa\x11\x53\x15\x14\x96\x13\x9a\xe6\x22\x91\x46\xdc\x1f\x90\x17\x1f\x98\x70\x7c\x40\xed\x85\x71\xc1\xd4\xce\xe2\x0b\x47\x4f\x17\xf3\x87\x97\xbc\x82\xf7\x07\x43\xad\x7b\x03\x9e\xf7\x12\x3d\xb9\x3f\x38\x66\x3a\x67\xf7\x07\x4f\x32\x4b\x13\x9e\xa7\xf7\x07\x9d\x45\x1f\xf3\x50\x8e\xe4\x34\x27\x54\x7c\xf7\x26\xc1\x53\xba\x8f\x7c\xd3\xb3\x9f\xc1\x4f\xe0\x61\xf2\x0d\xbd\x83\x9f\x1d\x7e\x73\x88\xfa\x0f\x9f\x4e\x05\xcf\xed\x95\x92\x85\x11\xd9\xd0\xde\x87\xe0\x51\xb9\xb8\xbe\xa5\xde\x51\x94\x44\x57\x26\x1e\x70\x0f\xce\x0f\x60\xb6\xec\xff\xe8\xd2\xae\x9f\x3d\x87\x84\xe8\x52\x1b\x5f\xf8\x04\x8e\x14\x56\xfc\x3f\xff\xd3\x8e\x18\x46\x7a\xe3\xce\x4a\x28\xf4\x3b\x7f\x5e\xe0\x25\x02\x2d\x53\xb5\x6b\xff\xc4\x67\x78\x6d\x87\xcc\xd1\x19\xda\xc7\x0e\x11\x57\xf4\xdd\x4e\xbc\x8f\xdd\xca\xe1\x96\x76\x93\x7b\x18\x8e\x3e\x6c\xd8\x58\xf0\x14\xef\x9d\xb0\x04\xca\x52\x4e\xdb\x65\x8f\x7d\x5b\xe9\x3e\xcc\x91\x08\xed\xc6\x9f\x29\x74\xf8\x12\x9c\xd6\x72\x38\x94\xcf\xec\x08\x82\x90\x1c\x07\xc1\x3d\x81\xd5\x3c\x76\x04\xc4\x2f\xb2\xfd\xc2\x06\xfa\xa4\x1d\xcc\x2e\xec\x54\x8d\x5e\xce\x97\xd4\x00\x6b\x55\x5d\x16\xb0\x66\xa0\xb5\xc1\x98\x12\x13\x8c\xc2\x15\xf4\x78\x92\x06\xf6\x49\x33\xf1\x2c\x4d\x1b\x33\xca\x97\x89\x41\x3a\xb3\x8c\x0a\xe0\x1f\x1d\x07\x87\x62\x0e\x19\xb0\x4b\x94\x14\x2a\x34\x17\x9c\x66\xa9\x56\x87\x2e\xc2\x80\xab\x19\x1e\x13\x76\x16\x57\x79\xd0\x43\x76\x48\x3d\xa2\xff\x14\x64\x97\x43\x8f\x1b\x18\xd5\x33\xa9\x62\x06\x6a\x97\x9f\x54\x68\x72\xce\x81\x16\xa6\x79\x4a\x5e\xb1\x3c\x4e\xa0\x81\x54\x23\x18\xbf\x1d\x25\x94\xf4\x00\xd7\x3f\xf4\x6e\xe9\xc9\x28\xd3\x03\x9e\xb9\x46\x0b\x0c\x31\x32\x0a\x64\x68\x61\x8d\xb9\xaa\x35\x6f\xaa\x53\x13\xb7\x71\x30\x09\xa1\x72\x1e\x50\xd0\x48\x54\xaa\xb4\x76\xaa\x3e\x12\xee\x68\xb2\x40\xc3\x02\x9a\x25\xd2\x85\xd0\x23\x1a\x00\x32\x9e\x08\x67\xd1\xf6\x1e\xbd\x5a\xda\x13\xcd\xb7\x97\xd8\xef\xfd\xc6\x80\xc0\x52\xc2\xe3\x47\x9d\xfb\x7c\x62\x53\x4d\x28\xee\xb8\xdc\x5c\x5e\x44\xaf\x80\x6d\x4c\x14\x10\xb7\xe2\x36\x17\x4d\x89\xa1\x38\x0c\xd3\x8f\x5e\x33\xc4\x02\x24\x77\xd5\x3c\x28\xcb\xf5\xc5\x44\x16\x96\xf8\x61\xb2\x8e\xa3\x6b\x94\xea\x6c\x25\xcb\xf0\x49\xe0\x05\xa1\x5a\x89\xb3\x3a\xd4\x03\x42\x9c\x59\xe4\xac\x7f\xe5\x51\xb0\x47\xca\x4a\x05\xb4\xde\x76\x91\x89\xe7\x72\x06\x8b\x11\x9f\xcb\xe0\xd3\xc5\x7d\xf1\xca\xb0\x43\x08\xe5\xf9\x83\xe5\x24\xc6\x9d\x2e\xc7\x6b\x89\xe3\xbb\x10\x04\x23\x6c\xf7\xee\x9a\xa1\xba\xed\xd1\x59\x69\x3d\x3e\x36\xb8\x4d\x3b\x68\x00\x73\xd4\xbb\x7a\x46\x74\x52\xfa\x99\x6e\x54\xf8\x28\x5b\x59\xab\xe6\x2c\x04\x87\x58\xbe\x82\xca\x87\x9b\x94\x77\x6f\x57\x7d\x00\x57\xc3\xaa\x30\xa5\x73\xa6\x34\x32\x2a\x62\x5d\x9d\x8a\x34\x05\x87\x47\x79\x55\xa5\x46\x8b\x5e\xdc\xd8\x02\xaa\xd8\x36\x06\x97\x22\x5b\xb5\x8a\x77\x3f\xdd\xfa\xc5\xa2\x3b\x56\x15\xa2\xbd\xdd\x59\x05\xb4\xd3\xa8\x4c\x91\x7d\xdf\x3e\xea\xb0\xef\xbe\x7b\x0f\x0b\xec\x91\x69\x27\x62\x32\xa0\xc2\x2a\x70\x96\x60\xbb\x1c\xe9\x0b\xd7\xc3\xee\x9e\x01\x59\x62\x16\xc4\x20\xea\xe3\x39\x92\x65\x41\x2a\x84\x80\xa9\x7a\x75\xa1\x50\x48\xc5\xcb\xbb\xc5\x38\xd7\xe5\x88\x6a\x4d\x5e\x5f\xc1\x30\xfd\x3a\x77\xdc\xed\x95\x2e\x26\x22\x5c\xf5\x61\x99\x0d\x65\x96\x39\xf1\xc3\xb5\xf0\x13\xbf\xbd\xbe\x7a\xf1\x6d\xbf\xfb\xe9\x76\x07\x91\x2e\xdb\x4b\x1b\x75\x87\xde\x22\x79\x03\x9d\x70\x4e\xe2\x58\xed\x8a\x5b\x2d\x6c\x58\x7e\xfa\x03\xf1\xd3\x8d\xfd\x36\x3f\x45\x9d\xb4\xf0\x25\xc6\xcd\x43\x9d\x96\xfa\x64\x42\xd1\x22\x3b\xc6\xae\x63\xfa\x2f\x6b\xf9\xb7\x07\x62\xe5\x36\xd8\x23\x5e\x95\xfa\x8a\x9c\x2b\x03\x57\x26\xe3\x33\x91\x33\x43\x45\xd2\xe6\xac\x20\x41\x41\x6e\x69\xf2\x58\x45\x55\xac\xb2\x40\xd5\x3a\x2b\x54\xda\x17\x7f\xf1\xaa\x0c\xd0\x1f\xfb\x99\x21\x00\x51\x22\xeb\x0d\x15\x8e\x02\xe1\x00\xe6\x1d\x2a\x8c\xd8\xfb\x7e\x42\xf4\x9e\xba\x2a\x32\x83\x95\x9c\xe7\x8b\xd8\x79\x8d\x01\x58\x85\x11\x05\xc8\x63\xc8\xe5\x16\x4b\x6f\x15\x5a\x20\x8d\x5b\x23\x20\x1f\x99\x18\x16\x4b\xea\xee\xee\xb4\x34\xd8\x02\xa7\x98\x9d\x6a\x1b\xe7\x9c\x6f\xd8\x24\x08\x52\xe1\x6a\xc7\x37\x2b\x91\x5c\x9e\x0d\x6a\x85\xd4\xfd\xa3\x93\x82\x61\xf6\xf3\xa2\xb0\x7d\x27\xd7\x65\x81\xa8\x2f\x64\x88\xb0\xe4\xd7\x53\x68\x9e\x69\x15\x0c\x1c\xee\x27\x84\x23\xb0\xdb\x2c\x14\x6e\xc1\x30\x93\x49\x61\x82\x8d\xee\x1e\x8e\xd4\xfd\x81\x53\x1f\x51\xee\x8a\xca\x6a\x44\x1c\xb3\x53\xeb\x9b\x4e\x09\xec\xb6\x33\x5b\x68\x05\x42\x1b\x4a\x3b\xb4\x14\x3f\x56\xd5\x53\xff\x12\xcd\xe8\xa5\x91\xe7\xa3\x98\xb6\xc7\xd3\xde\x55\xff\x87\x4c\x27\x0f\xcb\xae\x3d\xb6\x88\xdd\xe6\x60\xe8\x93\x49\x99\xf1\x9c\x9d\x5f\x5d\xdc\xb0\x23\x2c\x30\x7d\xfa\xef\xdf\xf6\x4e\xbf\xff\x4b\xef\xb4\x77\x7a\xf2\xed\x77\xf7\x07\x9d\xfb\x83\x6f\xdf\xbd\x3b\xfd\x90\x0e\xfe\xfd\xc3\x87\x93\xef\xbf\xbb\x3f\x38\xa6\x98\x71\xe3\x0c\x6a\xee\xe6\x4c\x75\x1a\xd2\x2d\x20\xa8\xf0\x1a\xc7\x89\x55\x94\xad\xae\x79\x68\x6c\xab\x5b\x0a\xce\xc5\x1b\x2c\x9e\x13\x31\x2d\xb0\xe2\x64\x34\x42\x3b\x28\x52\xd2\x48\xe2\x25\xaf\x8a\x27\x0b\x76\xc7\xdd\xbd\xaf\xaa\xf7\x8b\xb3\xd6\x64\xba\x0a\x8c\x01\x16\x23\xf6\x2a\xcd\xf9\x93\xae\xfa\x0c\x97\xf3\x17\x9e\xc9\xd4\xc5\x10\x23\x0d\x9b\x5f\x40\x34\x63\xd5\xd6\x70\x03\x28\x70\x58\xa5\x15\x63\xbf\xc4\xa5\xc4\xd1\x23\xc8\xff\xb0\xfd\x42\x02\xba\xfc\xd6\x53\x63\x34\x08\x22\xcc\x4e\x4c\x43\x1f\xab\xa5\xc0\x43\x94\xdf\x6c\x97\xba\x2c\x8c\x4c\x51\x0c\x80\x75\x87\xe2\xc0\xaf\x42\x1e\x5b\xba\x78\xe0\xc0\xac\xf2\xf0\xb4\xbb\xa6\x95\xcb\xb0\xe4\xb2\x56\xda\x45\x17\xe2\xc9\xee\xa0\xb3\x9b\x46\x5a\x87\x4f\x44\x02\xe7\x06\xd5\x63\xe8\xeb\x74\x8f\x80\xfb\xa6\xdd\xf7\x7b\x07\xf7\xd7\xe2\xe0\xfe\x97\x8c\x55\x5d\x42\xdb\x5a\x05\xab\xa2\x10\x1f\x25\x68\xb9\xa8\xd5\x81\x18\xf3\x47\xa9\xf3\x60\x58\xaa\x74\xbe\x8e\xf6\xb4\x43\xcf\xfb\x5c\x16\x41\xb3\x03\xbe\x4a\xe3\x17\xbb\xe0\xd7\xf0\xbe\x2f\x59\xe8\xcb\x36\x4e\xf8\x05\x6f\x2c\x92\x05\x5d\xf1\x21\xe2\x2f\x75\x51\x4f\x97\xf0\xf3\x86\xa2\x9e\xeb\x35\x52\xd0\xa0\xa2\x37\x19\x8a\x20\x1f\x8a\xec\xbf\x50\xe0\x47\x1a\x66\x95\xdb\x6e\x66\x4f\xba\x95\xfc\x4f\x7b\x7f\x69\x91\xba\xd4\xa2\x6c\x83\xc3\x16\x4f\x85\x29\x9c\x94\x8f\xa3\xb0\xc7\x4e\x97\x05\x66\xc1\xd3\x80\xa9\xc8\x81\x84\xf2\x86\xb1\xa6\x09\xd5\xd2\x26\x03\x70\x8f\x97\x06\x4b\x6d\xbb\x6a\xdc\x9f\x6f\x42\xd1\x2e\xef\x13\xc0\x42\x62\x3a\x67\x50\x2b\x5f\x8d\x3a\x91\xff\xcb\x79\xc4\x7c\x75\x05\x76\xe4\x16\xac\x56\xd8\x6b\x30\x83\x06\xc7\x0d\x1f\x20\x7a\x0f\x8b\x19\x2a\xc8\xc6\xfe\x0c\x3b\x0b\xef\x8f\x73\xdf\xe6\x58\xdd\x2f\x68\x71\xd9\xcc\x59\xbe\xfc\xa6\xb9\xe1\xc5\x9d\x61\xfd\x08\xe5\xe3\xcb\x76\x64\xf0\x5a\x72\xe8\xd7\x29\xf0\xd0\x6c\xe8\xd4\xeb\x9f\x8d\xe6\x63\xe1\x6f\x82\xaf\xa0\xe5\x69\x16\xfa\x91\x28\xfc\x2e\x3e\x31\x1c\x51\xe9\x16\x1d\x99\x18\xb1\x71\xe3\xc3\x53\x19\xf8\x92\x33\x14\xb5\xdb\xee\x28\x6d\x7b\x8a\xc2\xc5\x82\xfa\xcd\xaf\x74\x90\x44\x8c\x12\xf2\xd2\xb6\xd3\x25\x03\x69\x17\x4c\xb5\xe8\x95\x0d\x09\xf9\x76\x3a\xfb\x6a\x42\x6e\xc5\xca\x16\x0a\xb9\x6d\xd6\xf2\x3a\x92\xa4\x4d\x9e\xa9\x80\x4e\x0a\x2e\xde\x42\x33\x9e\x24\xce\x6f\xfd\x16\x2f\xa5\x1b\xfe\x92\xfb\x88\x4d\xde\xce\x55\x04\xd5\xe0\x2d\x5f\xc6\xce\x66\x4c\x1f\x4f\x69\xfd\x1c\x4d\x78\x2a\xe8\x10\x41\x31\x7d\x72\x26\x2d\x3d\x4b\x7b\xb1\xe0\x8f\x2d\x16\xbc\x00\x35\x5f\x91\x7a\x31\xd7\xb6\x0a\x5e\x50\x35\xfe\xec\x71\x23\xff\x08\x96\x9c\xb7\x84\x1b\xb9\xcc\xe4\xb8\x0d\x79\xdd\x5b\xab\xbe\x16\x6b\xd5\x1e\x3e\xf2\x8b\x19\x84\x56\xe4\x65\xec\xc6\x28\x04\x92\x54\x4b\xfe\x63\xdb\x56\xf5\x07\x81\x51\x5a\x14\xae\x48\x2c\x1e\x64\x79\xf6\xd9\x32\xff\x44\xe4\x88\x85\x06\xe2\x4d\x88\x4e\x03\x41\x83\xdc\xf8\xa8\x61\xac\xe6\x59\x72\x5a\xf7\x5b\xb6\x3a\xdb\x0b\xbc\x9f\xcb\x8e\x73\xf0\x7f\x22\xc7\x9b\x12\x7b\x55\x55\x95\x89\x9a\x35\x88\x4f\x56\x99\x02\xd1\x48\x51\xa5\x7b\x32\x5a\x62\x6e\x2e\x4d\x1e\x83\xe5\x16\x04\x66\xfa\x24\x5d\xa7\x48\xed\xf2\x4a\xf3\x81\xc8\x7c\xbf\x4b\xef\x35\x34\x32\x50\x0b\x1a\x46\x63\x48\x3e\xa5\xb8\xce\xae\x49\xf4\x54\x50\x48\xba\xa9\x04\xb4\x62\x20\xb9\x61\xc6\x93\x06\x08\x5b\x77\x40\x4b\xcc\x88\x09\x57\x85\x4c\xcc\x7f\x58\x09\xd1\xc9\x9b\x83\xb2\x88\xea\x93\x1a\xfa\xbc\x15\x65\xfd\x82\x18\x48\x30\xb8\x02\x9f\x95\x9b\x04\x6a\xaa\x46\x63\x3c\xa6\x8f\x1d\x9f\x3f\xbc\x80\xc5\xf5\x34\xd6\x99\xf0\x9d\x03\xda\x97\x57\x6b\xed\xe4\x2a\x1d\x53\x4f\x61\x01\xe2\xf2\xe7\xd7\xf5\x5d\xea\xb1\xcf\x76\x8b\x01\x53\xad\x36\x01\xf8\xc6\xba\xdd\x2d\x52\x5e\xd2\x2f\x7a\x2c\x60\x9b\x51\x38\xa9\x6e\x2a\xe9\x48\x34\x6b\x3b\xe3\x17\x3d\x13\x56\xd7\x72\xa7\x61\x6e\xed\xde\xfa\x99\x68\xf5\x0d\xa4\x3c\x87\x86\xe9\x27\x15\x7a\xde\x45\x48\xd8\x2a\xdd\xa8\x2d\x4b\xb0\x9a\x5b\x85\x25\xd8\x07\x73\x2c\x41\xab\x76\x76\xf8\xd7\x4f\xc2\xbf\xf3\xd9\x5c\xb8\xe2\x2e\x82\x5b\x17\x3a\xd1\x19\x1d\x5f\x4b\xaa\x89\x92\x0f\x04\xe3\x4c\x95\x13\x91\x83\x7a\xae\x11\x8d\x2a\xf5\x7d\xd8\x15\x48\x1b\x58\x82\x15\x2a\xa7\xb9\x7e\x94\x29\xa6\x5a\x79\xa8\xd1\xa0\xa9\x23\x8d\x03\xed\x46\x01\x14\xb2\x59\x74\xff\x69\x74\xab\x02\x70\xed\xd4\xa8\x29\x3b\xba\x3b\xef\x77\xd8\xcf\x17\x7d\x08\x4d\xbe\x3d\xbf\xeb\x1f\x3b\x4c\xd5\x39\xe3\x1c\x0c\xdf\x0e\xb8\x92\x1c\xe6\x67\x93\x46\x21\x70\x77\xe7\xfd\xd7\x8d\x5e\x9a\x77\x1d\xb6\x3c\xa9\x90\xbb\x42\x3b\x60\xe2\x1c\xb6\xe0\x57\xac\x59\x33\x57\x1f\x59\x51\x87\x62\x6b\x1a\x85\xaf\x4b\x4b\x99\x75\x08\xc1\xa6\xe1\x24\x4d\xa7\x99\x0c\xd6\x55\x4f\x46\x80\xb0\xb1\xcf\x75\xff\x41\x64\x8f\x45\xab\x4a\x28\xd7\x1d\x0f\x5c\x7a\x8a\xe4\x93\x65\x75\xca\x8e\xc0\x96\x43\xf9\x18\x4e\xa2\xf1\x84\xc9\x59\x6e\x82\xa5\xe6\xb8\xc3\x3e\xdf\xb4\xb2\xde\x44\x13\x63\x3c\xc9\xb5\xc1\x23\x4d\x32\x4f\xa3\x89\xc2\xd2\x5b\x48\xb8\x0c\x14\x6f\x12\x61\xb5\x36\x5f\x21\xb4\x7a\x05\x93\x53\xb5\x67\xc8\xee\xa4\x2f\xd7\x17\xee\xc8\x81\x95\x40\x6d\xce\x4c\x20\xc6\xa6\x50\x06\xc3\xf8\x79\x11\x4c\x77\x31\x8b\xb1\xca\x8b\xd1\x19\xf7\xfe\x0f\x38\xf7\xc7\xf5\xc4\x9d\xc5\x3e\x47\xf6\x42\xba\xf9\xe5\x6e\x62\xf8\xe5\x1c\x94\xe0\xb2\xf3\xeb\x02\xd6\xdb\x1f\xe0\xbb\xf9\x73\x6b\x39\x03\x1c\xc7\x2f\x74\x80\x03\xac\x0d\x75\x7b\x68\x58\xa6\x2d\x25\x57\x3a\x15\xad\x8f\x7c\xbc\x16\x5f\xf0\xcc\x7b\xcc\x5b\xe4\xb6\x5c\xcd\x5e\xe8\xc8\xbf\xf8\x89\xde\x55\x5a\xca\x97\x16\x8d\x6f\x23\xe9\x0e\x16\x37\x82\x2e\x9f\xdb\x3e\xb2\x63\xe1\x25\x32\x94\x1b\x67\xe7\x36\x7f\xdd\xec\x15\x0a\x77\xcd\x6e\x74\xd5\xd1\x00\xb8\xd0\x21\xab\xea\x93\xcb\x94\x71\x01\x80\x53\x77\xaf\xac\x28\x83\x6f\x85\xdc\x17\xf2\xfd\xe1\xa5\xbd\xa2\x93\x96\x70\x97\xe9\x5b\x1d\xc9\x50\xe7\x0c\xd0\x41\x2b\x5e\x30\x9e\xa6\xb2\x90\x8f\x22\x9b\xd5\xa9\xe3\xf5\xe7\xbb\x10\xcf\x0d\xae\xbe\xb6\x5a\x00\x24\xa2\xe1\x05\x68\xba\x34\x4e\x03\xf0\xbe\x14\xd5\x24\x1f\x57\xce\x86\x5d\xf5\xbb\xd9\x74\x65\x02\x98\x23\x79\x70\xbd\xb1\x6c\x96\xbf\x32\xd5\x2d\x44\x88\x09\x34\x1d\x62\x10\x2c\xce\xd5\xc5\xc0\xd2\xb9\xbe\x3f\xe8\xb0\xfb\x83\x4b\xff\x37\x44\xc2\xba\xa0\x7f\xf7\x78\x81\xd4\x18\x09\x61\xb2\xc0\x00\xd9\x90\x2d\x16\xa5\xe4\x43\xba\x2d\x26\x1d\x06\x7c\x53\x9d\xb3\xcb\x68\xf7\xfe\x23\x1c\x04\x98\x90\xc3\xaa\xe7\xca\x35\x33\x84\xeb\x04\xa6\x19\x63\xca\x09\x9d\xb8\xe1\xd0\x1e\x99\x4b\x4a\x53\x80\xb4\x44\x58\x7f\xea\xed\xc8\xd5\x87\x80\xbc\xb7\x02\x63\x76\xa3\xde\xdd\x78\xa8\xfb\xe3\x05\xfd\xc7\xe9\x74\x33\x5d\xb2\x27\x4e\xe8\xff\xb9\x2c\x04\xa0\x96\xc3\xef\x5d\xf0\x2c\xe1\x7e\x76\xa0\x21\x08\xaf\xe2\xd9\xe3\x2f\xb8\x64\xb0\x68\xcf\xd9\xff\x8d\xb6\x80\xfd\x57\x8f\xfd\x24\x1f\xc4\x13\xe4\xb3\xcb\xc6\xaf\x39\x26\x83\xb1\xd0\x11\x58\x17\x2f\x2c\xc7\x12\x01\x65\x17\x99\x5b\x34\x92\x90\x86\x1b\x0f\x00\x2d\xdc\xe8\x5a\xc7\x60\xea\x78\x44\x47\x46\xda\xcd\x33\xa5\xbd\x5b\xee\xdb\x4f\x3e\x02\xdb\xbd\xd1\xb0\x55\x2a\xa5\x76\x81\x1d\xba\x13\x52\x68\xf6\xdf\x76\x40\xff\x37\x3e\x8b\xec\xbf\x76\x24\xc3\xbc\x52\x54\x75\x4c\xd4\x57\xd9\x6c\x5b\x69\x11\xff\xb2\x65\x3b\x1a\x56\x61\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\x63\x5f\xb6\xa3\xc6\x5d\x5e\x86\xd7\xee\xcb\x76\xec\xcb\x76\x6c\x2c\xad\xfc\x31\xca\x76\x2c\x16\xb3\xf6\x65\x3b\x16\x96\xed\xd8\x47\xad\xbd\xe5\xa8\xb5\x7d\x44\xd7\xd7\x12\xd1\xb5\xcf\x3f\xdc\xd7\xca\x58\x67\x7d\xf6\xb5\x32\x5e\x28\xd8\x6f\xf7\x25\x33\x56\x9b\x77\xf6\x25\x33\xf6\x25\x33\xf6\x25\x33\x76\x20\xc8\x83\x11\x61\xf5\x75\x72\x00\x8a\x15\x34\x73\x04\x5c\xac\x1e\xa5\x4e\x3c\x83\x41\x15\x20\xcf\xce\x9a\x80\xac\xc9\x17\x07\x3d\xf4\x6a\xd8\x96\xa6\x4b\x56\xff\xee\x1c\xbc\x65\x1d\x99\x51\xaa\x14\x40\xb1\x1c\xa6\x65\x15\x63\x31\x24\x39\x25\x5a\x19\x99\x0a\xcb\xf2\x1c\x90\x28\x1a\x2a\x3d\x4a\x5f\x33\x50\xe4\x98\x13\x52\x6f\x34\x04\x08\x8a\xd5\xac\xc8\xad\x30\xac\xc4\x53\xc0\x9a\x16\x3e\x57\x6f\x11\x26\xa5\x57\x93\xb9\x31\x72\xa4\x00\x86\x4f\x7a\xf8\x49\x6c\xbd\x57\x20\xf6\x0a\xc4\x5e\x81\xa8\x2f\xfb\x5e\x81\x98\xe7\x60\xbb\x55\x20\x80\xf4\xed\x4c\x8b\x20\xe3\xf4\x5e\x4c\xae\x8b\xc9\xc8\x70\x5f\x43\x56\x86\x2f\xb5\x2b\x89\xe5\x9b\x2e\xa9\x8b\x05\x6d\xc4\x9e\x3d\xbd\x6d\xf6\xb4\x6d\x79\xac\xb9\x5d\x5e\xd8\xeb\x0e\xa8\x4d\x5b\xb3\x77\xe5\xa7\xca\x85\xb5\xa3\xef\xfa\x75\x11\xc5\x9e\x67\x7f\xdd\x3c\x7b\x9b\x34\xce\xaf\x27\xbd\x72\x8e\xc0\xbf\x1a\x3b\x69\x57\x5f\xc3\x37\x0d\x89\x0a\x11\x2c\x3e\xe3\x03\x57\x24\xc7\x6b\x90\x6b\xe1\x2b\x07\x00\xe2\x55\xa0\xa6\x01\xa9\x98\x62\x1d\x88\xf4\xc7\xd6\x84\x08\xce\x38\x46\x0b\x1d\x73\x95\x66\x74\xc3\x51\x2f\xc3\x50\x33\x0a\xd0\x1e\xea\x3c\x42\x68\xbf\x3f\x18\x66\xfc\x51\xe7\xe6\xfe\x80\x54\xd1\x3c\xea\xd8\x2b\xc2\x10\xa5\x1a\xbe\x87\x55\x03\xc8\xab\x4b\x51\x77\x7c\x56\x2f\x8e\xd0\xe7\x39\x9f\x08\x08\xe4\x71\x70\xcc\xd0\x8f\xaf\x23\x01\x89\x8c\x51\xa7\x30\xcc\xa0\xfb\x06\xe5\x93\x87\x12\x42\x5d\x5f\x3d\x08\x3c\xf4\x4a\x63\xf1\x82\x62\xcc\x15\xfb\xf6\xcf\xef\xe2\xe8\x21\xa9\x58\x26\xd4\xa8\x18\x77\x18\xd5\x12\xe2\xc9\x44\x44\x55\x28\xba\xe1\xe3\xf7\x07\xf5\x80\x3c\x39\x99\x94\x05\x1f\x6c\x54\x85\x66\xea\x67\xfe\xca\x66\xb6\x68\xc9\xc9\x59\xaf\x1e\x30\xe4\x3f\x29\x4d\xa1\x27\x81\x01\x50\xb4\x15\x38\xb6\x21\x74\x18\xe2\xa9\x2a\xe5\x02\xfc\xae\xcd\xed\x51\x5c\x2c\x45\xce\x1d\x46\x1f\x51\x42\xb4\x89\x89\xe7\x22\x87\xc4\x5d\x1a\xdb\xcb\x1a\x86\xf6\xb5\x54\xf7\xc2\xe2\x2a\x61\xf1\xc5\xa5\xc4\x3d\x78\xc7\x5e\xea\xdb\xd7\x52\xfd\x72\x12\xe6\xab\x09\x97\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\xfb\x92\xaa\x6b\x47\xa0\xbf\xa4\x22\xf8\x47\x2c\xa9\xba\x5d\x7e\xd8\xbe\xa4\xea\xbe\xa4\xea\xbe\xa4\xea\xbe\xa4\x6a\x23\x69\xf8\x4a\x4a\xaa\xae\x50\xc5\xb6\xb1\xbb\xec\x4b\xaa\xbe\xdd\x92\xaa\x8b\xb7\xfd\x55\x4b\xaa\xae\x0c\xd3\xde\x97\x54\x7d\xa5\x92\xaa\xcb\x0f\xc4\xbe\xa4\xea\xbe\xa4\xea\x6b\x96\x54\xb5\x1b\x13\x95\x54\x85\x63\xd4\xaa\xae\xaa\x7d\x71\x5f\x57\x75\x53\x1a\xa0\x53\xe1\x6f\xff\xe7\x47\x91\xdb\xa1\x2c\xb9\xfb\xae\x09\x33\x45\x5e\x82\x51\x7c\xce\x28\xeb\xc4\x42\xed\x9a\xd6\x6f\x7f\x5e\x2a\xf4\x9a\x02\x60\x58\x1b\x54\xcd\xf4\xa3\x7c\x16\x73\xaa\x60\xf0\xba\xf6\x9b\xdf\x64\x1b\xf9\x1e\x7a\x5e\x89\xf8\x7b\xc9\x55\x21\x8b\x25\x38\xf2\x75\xe7\x31\x8d\xb4\xbe\x26\x43\x7a\xb8\xe1\xca\x2c\xdc\xd0\xdd\x6d\xfd\x4d\xa9\x0a\x39\x11\xab\x52\x02\xe2\x66\x5e\x31\xe3\x21\x96\x83\xd8\x98\xd5\xed\xb0\xa5\x13\x64\x02\xd5\x24\xe5\x0f\x09\x6f\xa5\x3f\x19\xc4\x69\x0f\xd4\x11\x69\x7d\xd5\x7e\xa3\xc6\x79\xa9\x40\x88\xf6\x8d\x0c\x5e\x6d\x80\xa3\x8b\xbf\x40\x65\x5d\x8f\x12\x27\x70\x1e\xb3\x09\x57\x25\x20\x1f\x54\x72\x8c\xc1\x64\xa1\xf3\x00\xd5\x97\xeb\x47\x09\xae\xe6\x1c\xfd\xbe\x51\xa2\x03\x4d\xab\xaf\xd3\x90\xe3\xf0\xb7\x72\x20\x32\x01\x54\x00\xf3\xe7\xb1\xbe\x0a\xdc\x6b\x61\x74\xe6\xad\x4d\xf1\xe8\x80\x62\xfa\x8e\x9d\xc1\xd6\x1d\x89\xc2\xe1\xeb\x05\xdd\x28\x15\x05\x97\x99\xe9\x30\x23\x44\x93\x6f\x4b\xa8\xb1\x65\x31\x56\x2f\x32\x27\x0f\x62\x6a\xc0\xa1\x65\xb7\xfd\x84\x56\x11\xb3\x2c\x7a\x93\x16\xd0\xe5\x7b\x5f\xfd\x97\xf3\xd5\x63\x3c\xd2\xaa\x88\xa7\x1f\xb1\x55\x05\xe6\x4b\xa0\x2f\x2c\x9b\x81\xd1\x8a\xae\x0e\x55\xc4\x89\xc2\x54\x3c\x32\xdc\xf9\xcd\x55\xb0\xa8\xe0\x6f\xa0\x22\x95\x06\x0a\x4e\x51\x60\x14\x40\xd6\xb9\xfd\xf3\x01\x52\xf6\x39\x15\x12\x22\x79\xca\x5e\x36\x87\x50\xeb\xc3\xaf\x74\x2a\xd8\x7d\xf9\xee\xdd\xb7\xdf\xc3\xd7\x6a\xba\x20\xbb\x42\xa3\xaf\x83\x55\x23\xbc\x00\xfa\x72\x4e\x32\xde\x23\x97\x19\xa7\x8a\x45\x88\x2d\x83\xd0\x97\x76\x66\xbe\xa5\x13\x38\xec\xb5\x42\x31\x20\x17\x4c\xfc\x5e\xca\x47\x9e\x01\x6e\x4c\xfc\x6e\x2d\x1e\x8b\xbb\x6e\x58\xc2\x21\x8a\xeb\xfe\x20\x2f\x55\x72\x7f\xc0\x26\x72\x34\x0e\x5a\xa5\x5f\x38\xfb\x2b\xfb\x7c\x7e\xe5\x17\xf9\x08\x51\xe6\x2d\xdb\x7f\x14\xec\x27\xa9\xca\xe7\x88\x40\x1d\xcf\x81\x66\x58\x22\xe6\xa2\x80\xe6\x88\x98\x5d\x5c\xb7\xbd\x20\x97\xda\x55\xd3\xf9\xc4\x2d\xea\xc5\xf5\x2d\xfb\x09\x1d\x14\x37\x1f\xcf\xd9\xe9\xe9\xb7\xef\x8f\x5d\xec\x10\x5c\x7f\x5c\x9a\x2d\x63\xb2\xf6\x41\x15\x5f\x4b\x50\x45\xcb\xf4\x97\x2f\x9a\xe2\xa2\xe7\x85\xd1\x56\xd3\x5e\x20\xd2\x2e\x9b\xa7\x17\x6a\xb7\x13\x65\x2b\x89\xc5\x31\x67\xef\xed\x84\x67\x7f\xfb\xee\xf4\xdf\xdf\x7d\xfb\xed\xf7\xdd\xa9\x4e\xbb\x6e\x44\xbd\x49\x5a\x73\x18\xf0\x6c\x3a\x76\x38\x88\x1c\xa8\x60\x94\x15\xfc\x78\xda\x3b\xfd\xb3\x27\x06\x60\x62\x1b\x6b\xa5\x73\xaa\xc6\x47\xf7\x0d\xa8\x9a\x50\x58\x66\x10\x65\x1b\xbf\x44\x43\xc1\xc1\xff\xbc\x40\x49\x4c\xc6\x22\x2d\xad\x06\xbb\xdd\xb6\xdd\x86\x7e\x96\xc6\xfd\xf8\x66\x6c\xac\xb3\x94\x30\xd1\xc3\xc3\x44\x2b\x53\xe4\x1c\xb2\xbe\x6b\xd0\xc1\xc0\xc3\xdc\xf6\x91\xc6\x27\x4d\x55\x20\x05\xfe\x85\xbd\x21\x91\xb6\x63\xa4\xe5\x71\x48\x57\x12\x53\xa7\xa3\x8f\x4a\xc3\x94\xcc\x3a\x0d\xfd\xc5\x8c\x0d\xb0\xa7\x83\x70\x6c\xc5\xce\x0c\x11\x9c\x97\x07\x77\x36\xc7\x12\x39\x09\xe1\x35\xa3\x89\xec\x7e\x2d\x8b\x23\xaa\xa8\x14\x3b\x0c\x24\x5a\xa4\xb6\xac\x88\x5a\xad\x37\xad\x62\x71\x55\xf6\x69\x5f\x84\xee\x8f\x20\x15\xbf\xa9\x22\x74\x0b\x75\xe9\x6d\x4c\x6e\x7b\x81\xeb\x6b\x11\xb8\xf6\x25\xe8\x5e\x9f\xe7\xec\x3a\x80\x75\x81\x7c\xb2\x98\xe3\x44\xd2\x49\x55\x27\x5f\x20\xa1\x0c\xc1\x3b\x6c\x25\x0c\x92\x0b\x50\xb2\xac\x48\x92\xab\x59\x92\xed\x61\x51\xfd\x80\x76\x16\xd3\xb6\x4e\x83\xda\x74\xe3\x0f\xc3\x11\x36\x0e\x4c\x16\x81\x16\x29\x18\xc2\xd5\xc4\xd2\xaa\x49\x9c\x9a\x13\x9a\x7a\x58\x61\x0a\xb5\xe9\x79\x91\xca\xc7\x82\x0e\x6a\xa2\x1a\x47\x4b\x43\x54\xe8\x1b\x5e\x36\x95\xa2\xde\x95\xae\x2a\xe3\x97\x86\x4d\x44\x3e\x0a\xf1\x80\x58\x67\x03\x82\x97\x40\xaf\x8f\x1a\xf7\xd8\x99\x9a\x55\xfc\x07\x59\xc6\x30\x76\x94\xac\x76\x24\xee\x21\x9f\x45\x9b\x21\x4f\xa1\xf0\xf1\xc2\x68\x85\x39\x33\x6f\xec\x65\xd7\x19\x55\xe7\x5e\xc5\xff\xa2\x96\x68\x39\x99\x4e\x85\x4a\x45\xca\x8e\xc4\x73\x92\x95\xe0\xd4\x4e\xcb\x69\x06\xbe\x30\x73\x6c\xc7\xd9\x46\x30\x4e\xcb\x1c\xd3\x9e\x68\x0e\x1d\x26\x00\xfc\x1e\xaa\x27\xb0\x52\x49\xed\x6d\x96\x54\x98\x81\xb6\x1a\x87\x13\xb2\xe2\xec\xda\x58\x29\xa4\x6e\x0b\xdd\x11\x5b\xf6\xa9\x60\x7e\x19\x76\x9c\x76\xcc\x0b\x3d\x91\xc9\x0e\x8c\xf1\x88\x95\xef\xe9\xcb\x19\x46\x19\x9f\xdf\x5e\x5d\xe4\xf2\x71\x69\x79\xcb\x7a\xd3\x58\x89\xf5\x51\x13\x52\x65\x52\x09\x76\x7e\x7b\xc5\xa8\x55\x43\x75\x7c\xb2\x46\xb5\xa1\x31\xab\xbd\x80\xb1\xff\x2f\x17\x23\x69\x0a\x80\xe0\x89\x5d\x81\x76\x34\x29\x4e\x6f\x43\x27\x57\x33\x5b\x82\xd1\xad\xe2\x4a\xeb\x6d\xc4\xc7\x4c\x3c\xff\xa2\xb3\x72\xb2\x2c\x53\x61\xae\x6d\xe3\x56\xd8\x9f\x1f\xf1\xe7\xad\xf6\x20\xad\x1f\x8c\xa6\x21\x61\xa3\x26\x3f\x6c\x34\x0c\x6c\xb4\x63\x00\x66\x1a\xde\x6e\xb7\xe1\x47\x6d\x8a\x15\x75\x0e\x6a\x2d\x2b\xda\x16\x78\x66\x69\xd2\x89\x56\xc8\x0b\x89\x01\x39\x7b\x2c\x9a\x3d\xc8\x0f\x44\x15\x2c\x00\xcc\x9c\x2a\xe1\x94\x56\x7a\xbd\xf2\x99\x99\xc6\xa7\x9d\x38\x24\x73\xdc\x44\x72\x27\xb5\xc4\x2f\x46\xcc\xed\x15\x7b\x19\x1a\xfa\xda\x4f\xf1\x67\x9d\x25\x3a\x9e\x64\xa5\x1e\x5e\x04\x54\xee\xb8\xed\x6f\xdf\xfc\x06\x25\xae\x24\x0a\x29\x19\x87\x20\x5d\xcb\x28\x8a\x5c\x4e\x26\x22\xc5\x10\xc7\x47\x9e\xc9\x94\x17\x95\xea\x0f\xf4\x59\xe2\x8e\xf0\x51\x00\x6b\xbf\x57\xf7\xea\x12\xcd\xe8\xe6\x03\xfb\xed\x64\xa8\xf5\x6f\x54\xda\x03\xdd\xf5\xf8\xa8\x83\xff\x3d\xf9\x0d\xc8\xff\x6f\x0e\x33\xfd\xb7\xea\x1b\xa1\x2e\x14\x3c\x4e\x7f\x63\x3a\x67\xbf\x9d\x88\x22\x81\x56\x1b\xc4\xf9\x09\x9e\x7e\x56\xd9\x6c\xc5\x52\xc3\xac\x2b\x60\x5f\x70\x3c\x70\x28\xd1\x02\x37\x94\xc5\x70\xf0\xe9\x56\x26\x91\x43\x30\xea\xb8\xcd\xd0\xa5\x2a\x1c\x64\x3a\x0e\x63\xc1\x9d\x1b\x68\x9d\x09\xae\x76\xcf\x56\x2e\x1f\x65\x52\x54\x8d\x15\xf5\xa9\xbb\x26\x4c\x3c\x82\x30\x43\x96\x4d\xa8\xde\x50\xa0\x90\x64\x55\x3e\x50\x1d\x0b\xed\xab\x23\xfb\x2a\x3a\x00\x10\xc8\x87\xa2\x98\xc5\xb2\x6d\xc8\x7a\x06\x78\xfe\x60\x58\x85\x1a\xb8\x3d\x16\xd5\x11\xb0\x9d\x82\xec\x84\x55\x64\x68\x20\x14\x59\x9b\xe4\xc2\x89\x0f\xfd\xcf\xb7\x77\x14\x93\xd7\xeb\xf5\x4e\xec\xfd\x74\x20\xe8\x1a\xf9\x0c\x21\xa3\xbb\xf7\xf7\xf6\x9c\xb7\x6d\xcf\x49\x45\x26\x0a\xf1\x79\xda\x28\xd7\x6e\xa1\x7b\x5f\x54\xfa\x5d\xa6\xc1\x54\x5a\xba\xb0\x66\x57\xf1\x74\x6f\xa2\xf9\xba\x4d\x34\x2d\x7d\x62\xa1\x59\x2d\xf8\x11\xd4\x3c\x12\xe8\x06\x02\x10\xe1\x2d\xe1\xa9\xa2\xa1\xae\xa2\xe3\x3b\xb4\x95\x4c\xab\x05\x60\xe3\xd3\xea\x89\xfc\x0e\xcd\x23\x35\x4e\xf3\xf1\xf6\xaf\x76\x20\xb7\x85\x55\xf7\x46\xb3\xf9\x5b\x5d\x5f\xd7\xe6\x17\x2a\xc4\xd5\xd0\x6f\x50\x54\x04\x88\x9d\x2b\x54\xe7\xa3\xf0\x81\x3d\x54\x1a\xb7\x01\xf4\xe5\x6a\xb4\x32\xfa\x1f\x1b\xa1\x6c\x34\xf6\x25\xff\x19\x3d\xd6\x43\x36\x34\x0c\xd6\xde\xf4\x98\x2f\xfd\x06\xe4\x3c\x93\x0f\x10\x3c\x31\xd4\xf6\x5e\x7b\x3d\xc0\xb5\xc7\xa4\x36\x2b\x91\xc5\x09\x7f\xd0\x6f\x88\x44\xc4\x1a\x87\x05\xcf\x0b\x98\x37\xd4\x3f\xb8\x71\x75\x57\xac\x78\xfa\xa9\x34\xc5\x4d\xa9\xce\x76\xa5\x39\xd7\xb6\xf3\xea\xe2\xc6\x0e\x68\x2b\x6b\x76\x5e\xcd\xf3\x6e\x5c\x64\xc8\xe0\xab\xef\xb6\x17\xcf\x53\x99\x40\x78\xf7\x93\x7d\x42\x07\xc6\x07\x82\xb9\xc4\x5f\x8a\x39\x3e\xd7\xaa\x10\xcf\xc5\x4b\xc7\x4f\xd6\xd6\x09\xd4\x0e\x9d\x17\xb8\x5a\x4b\x8a\xc3\xc4\xed\xa2\x40\x3a\xdc\x76\x97\x62\x82\x19\x00\xeb\xab\x27\x15\xfd\x64\xa0\xdd\x19\x8a\x8f\xcf\xda\x6a\xca\x84\xaf\xd2\x4f\x26\xdc\x2b\x26\xf6\x03\x0e\xd4\xd8\xce\xa8\x83\x61\xd8\x46\x3e\xd6\xe3\x4e\x30\xbb\xc7\xbe\x2e\x55\xf1\xfe\xdb\xe6\xdd\xb2\x72\xce\x28\x28\x93\x35\x56\x20\x57\xc9\x6a\x13\xa9\xc2\xa1\x8a\x32\xd3\x5f\x66\x68\x2d\xf5\x63\x3b\xec\x4e\x75\x79\x77\xa4\x2b\xbb\xbb\xba\x24\x80\x1f\x5b\x04\x84\x2e\xce\x26\x52\x9d\xd8\x0d\x44\xc1\xb4\x42\xdd\x00\xf4\xe5\xa2\x8d\xf4\xfc\x1a\x67\xe4\xfb\xef\xde\xec\x19\x69\x3f\xb4\x2f\x7e\x46\xfa\x3a\xbd\x90\x26\x2f\x61\xfe\x3f\x94\xe9\x48\x2c\x73\x9d\x37\xb4\x26\x14\x7a\xed\x15\x41\xa4\x24\x84\x6f\xf1\xcc\x52\xdf\x9e\xaa\xb4\x52\x85\x1e\xee\x58\x75\x1d\x35\xca\x12\xb0\xbd\x7e\xf6\x96\xf5\xb3\xbd\xaa\xf3\x15\xaa\x3a\x8d\x9f\xdc\x08\x5d\x7a\x35\x85\x69\x05\x30\x8d\x79\x59\x51\x3d\x44\x87\x34\x3d\x10\x63\xfe\x28\x75\xee\xeb\x24\xce\x7f\x60\x51\x50\xda\x66\xf5\x64\x5a\x4c\x68\x75\x92\xdf\x27\x48\x15\x16\x09\xe6\xb7\xea\x01\x84\xd8\xa5\xb5\xcc\xbe\x15\x53\x79\x23\x4a\x63\x13\xcf\x78\x31\xfd\xb1\xe1\x63\x2b\xe2\xbb\x16\xbc\xd1\x84\x50\xd8\xd0\x74\x6f\x1c\x7c\xdb\xcc\xa7\x31\xd8\x6b\x47\xca\x6d\xd3\xc1\xde\x46\xd1\xdd\x33\xca\xaf\x85\x51\xfa\xb0\xad\xb5\x45\xf7\x57\x0f\x8d\x5a\x93\x72\xef\x38\x38\xaa\x25\xf3\x5f\x8b\x7a\xbb\x72\x13\xce\xd0\x3a\xf5\xc4\xb1\x99\x61\xb6\x51\x4f\x7f\x56\x3e\x77\xe8\xf5\x2b\x3f\x9d\x55\x7d\x59\x4e\xc9\x96\x43\xc6\x0b\x36\xb1\x82\xc2\x7d\x6d\x8c\xf7\x07\x68\xd8\xc1\xa8\x25\x34\xfb\xdc\x1f\xb8\x18\xa6\xfb\x03\x30\x47\x96\xa1\x7d\x54\x61\xd7\x7d\xa9\xc3\x64\x4f\xf4\x98\x78\x14\x0a\xc2\x8e\x06\x06\x11\x68\x86\xa1\x95\x48\x31\xcb\xa8\x92\x01\xa5\x15\x02\xed\x4d\x73\xfb\x6a\xe1\x1d\x99\xaa\xe0\xf9\xcc\xf7\x6e\x20\x6d\x00\x93\xa1\x2c\xcd\x7a\x17\x3b\xfa\x26\x65\x81\xb9\x95\x10\x6b\x64\xb0\x1c\x2b\x66\xc2\x83\x61\xf3\xde\x2a\xb8\x67\x61\xae\x0b\xc4\xb7\xb8\xd1\x1b\xdb\x34\xc4\x77\xaa\xcf\x63\xc5\x9e\x81\x29\xcf\x14\xae\x1a\x54\xfb\xbd\x03\xbb\xf3\x92\xfd\x63\xb7\x60\x64\x76\x7b\x08\x26\xe8\xf5\xb7\xf0\xfe\xe0\xf4\xdd\xbb\xff\x77\xe1\x6e\x98\x05\xa1\x85\xdb\x50\x59\x3e\x10\x99\x0f\x59\x5c\xb6\x19\x98\xe3\xf6\x7b\x29\xf2\x19\x62\x28\xc1\x4a\x3f\x8d\xb5\x11\xd1\x7c\x10\x07\x51\xf1\x51\x88\x33\x8b\xcc\x11\x83\xb5\xe5\xeb\x2d\x88\xde\x2a\x44\x93\x85\xef\xc4\xa1\x43\xcd\xf8\xf9\x41\x85\x68\xa6\x87\x8c\x3a\xb2\x42\x41\x91\x73\x99\xe1\xf9\x49\xa0\x68\xb1\x87\x49\xe1\xcc\xcc\x4c\x21\x26\x6d\xa0\xf7\x31\x6b\xfa\x47\xc1\xb3\x62\xbc\x2a\x82\xc2\x41\x98\xa8\x72\x32\x10\xa0\xb3\x8d\xf1\xbd\xaa\xa1\x87\xed\xc6\x06\x4c\x3a\x62\xbb\xa1\x4d\xa4\x92\x93\x72\xe2\x15\xcb\x57\x1a\x22\xee\x8f\x48\xfb\xb6\xf3\xd7\x41\x32\x08\x57\xec\x4e\x4e\x96\x38\x6f\xea\x6e\xf0\x78\xa8\x01\x99\x66\xfe\x18\x36\xdc\x3e\xf6\xc4\x0d\x9b\xe6\x3a\x11\xc6\x84\xeb\x07\x88\x63\x20\xa4\x86\x86\x71\x18\x88\x4b\xb6\x1d\x94\x05\xd4\xdd\xb3\x42\xe8\x4c\x58\x41\x54\xa8\xa0\x34\x53\x67\x4d\xd6\xc8\x18\x5f\xff\x0c\x5c\xb1\xce\x61\xe2\x30\x5d\x26\x7c\x1a\x04\x62\xc8\xd0\x7d\x72\x60\x92\xd1\xe8\xc2\xc8\x63\x3a\x1c\xc7\xa6\xcc\xbf\x6e\xbf\x06\x91\xc5\x42\x41\x5c\xca\xc5\x0f\x31\xa6\x0b\x37\x6c\xcc\x21\xdf\x1f\x26\x43\x20\x69\x50\x42\x42\x64\x02\x7a\x3f\xd2\x39\x11\x7f\x0e\x5d\xeb\xb2\x20\x50\xd1\x07\x31\x73\x84\xdf\x8e\xbf\x21\x8c\x2f\x0e\xa0\x45\x1d\x82\x1a\x6d\x38\x45\x8f\x92\xe2\x47\x97\xca\x54\x1d\x16\x4c\x27\x49\x99\x23\xf0\x9c\x9f\x31\xf0\xb0\x62\x2c\xac\x4e\x10\x5c\x54\x00\xa7\x29\xd2\xb0\xda\x90\xce\xc0\xcb\x42\xdb\xc3\x93\x80\x44\x60\xd7\x69\xe9\x36\xd2\x82\x18\x3d\xc1\xa9\xc0\xb8\x20\x5d\xbb\x80\x70\xab\x91\x16\x86\x99\x89\xd6\x2e\x3e\xd9\xae\x4f\x28\x7c\x21\x26\xd3\x62\xf6\xff\xb3\xf7\xef\xcb\x6d\x1c\x49\xbe\x38\xfe\xff\x3e\x45\x05\x3d\x11\x22\xe7\x07\x80\x37\x49\x33\xe6\xc4\x86\x0f\x47\x92\x3d\x3c\xb6\x25\xfe\x48\xca\x7b\x76\x0d\x6f\xb0\xd0\x5d\x00\x6a\xd4\xe8\xc2\x74\x75\x83\xc2\xac\x1c\xb1\x0f\x72\xce\xcb\xed\x93\x7c\xa3\x32\xb3\xaa\xab\x6f\x40\x03\x04\x29\x5a\xee\x89\x18\x99\x00\xaa\xab\xeb\x9a\xf7\xfc\xa4\xc3\xdb\x01\xd9\x8a\x16\x0c\x3b\xfb\x81\x27\x13\xe1\xdd\x7c\x61\xd4\x15\x8b\x00\x84\x8b\x8d\xca\x14\xd5\x98\x9c\x27\x6a\x14\x89\x19\x61\xc3\x98\xf9\xdb\xf5\x29\x3b\x5c\xdb\xc4\x6f\xe7\xdc\x48\x53\xb8\xe2\xba\x60\x5a\x37\x50\x78\x75\xfe\xb8\x57\x71\x24\x87\x4c\x26\x84\xe2\x5d\x53\x30\xf1\x11\x81\x91\xeb\x08\x58\x25\xec\x3c\xe5\x91\xb7\xbc\x73\x24\x24\x59\x9c\x7a\xa1\xf8\x15\x9e\xbc\xeb\x01\x5b\xc2\xf1\x9d\x88\x6d\xf4\xf7\xea\x61\x7b\xc6\x3a\x36\x71\x0f\xe5\x04\x08\xae\x13\x68\xc6\x2e\x19\xc1\xdc\x76\xe4\xc4\x03\xf6\xba\xb2\xad\x18\xa4\x00\xa5\x79\x89\x5d\xfb\x44\x54\x6a\x8c\xac\x74\xc1\x82\xd5\x01\x23\x60\x2d\x98\x76\x2e\x5f\xff\xf5\x99\xd3\xfe\xf3\xd1\x3d\xaa\x43\xaa\xe6\xe0\xf6\x1a\x05\x84\x66\xfe\xdc\x74\xa8\x76\xe7\xdc\xb2\x51\x00\x97\xa8\x15\xaf\x14\xc0\x8a\x6d\xd9\xc4\x08\x96\x04\xc4\xc6\x11\xe9\xd3\x2c\xff\x8c\x7f\x10\x25\xd8\x57\x0e\x39\x0f\x85\xa8\x03\x46\x61\x07\x45\xa7\x3d\x9f\xcf\x23\x69\xdd\x5e\x96\x62\x3b\xa0\x87\xce\xf2\xf8\xa4\x2d\x8f\x9d\x35\xef\x4b\xb1\xe6\xfd\x2e\x8b\xbe\xae\xa3\x8d\x6b\x9d\x72\x1a\xd1\xbd\x73\x62\x42\x51\x47\x22\x86\x80\xb6\xa7\x18\xde\x58\x65\x00\x0f\x69\xe9\x2c\xbe\x6a\xbd\x97\xaa\xda\xbe\x98\xa0\x5e\x65\x49\x1d\x1e\xc1\x6f\x81\x51\xb4\xc1\x23\x90\x8f\x84\x47\xb0\x56\x22\xea\xfc\x5b\x1d\x47\xec\x60\x09\xd8\x67\xe0\x45\x0f\xee\x79\xab\xe1\xef\x1b\xf0\xa3\xeb\xb5\xec\x7e\x3d\x13\x32\xaa\xe1\x65\x22\x17\x32\x12\x13\xf1\x46\x07\x3c\x6a\xa3\x7d\x37\x3d\x96\x83\x81\x6a\x70\xbb\x80\x06\x15\xf0\x82\x55\x0e\x33\xf3\xe6\xf6\x61\x26\xdc\xd3\x55\x0c\xfe\xd0\xc7\x6a\x4e\xb2\x26\x24\xbc\x6a\x12\x5e\xaf\x34\x45\x2f\xe9\x7a\x6d\xed\x80\x72\x7b\xaa\x6c\x63\x6e\x80\x65\x04\x5e\x8e\x76\x48\x8d\x0a\xc0\x09\xe2\xa3\xab\x23\x45\xa9\x89\x60\xe8\x1a\x89\x30\x24\x98\x02\x0b\x18\x08\xee\x1c\x28\xd8\x80\x76\x30\x32\x0c\x92\x31\xcb\x6a\xaf\xf1\xd2\x7b\x57\xa1\x48\xc3\x58\x25\x76\x34\x62\x3e\x15\x33\x91\x70\x9b\xc5\xe8\x67\xf2\xc5\x88\x35\x86\xd0\x63\xf5\xa0\x62\x84\x7b\xef\xdb\x7f\x21\x80\x5d\xdb\x04\xf0\x0b\x78\x0d\xa5\x4b\x13\xb6\x18\x9b\xf0\xb4\xbc\x2b\x3b\x62\x84\x95\xbc\xfa\xfb\xf0\x41\x7b\x08\xf8\x1c\xed\x04\x55\xa3\x7d\xed\x11\x2f\x3e\x51\x14\x06\x02\xff\x17\x3f\x70\x96\xce\x3a\x19\x11\x42\x57\x67\x2e\xb7\x22\xb0\x62\xaf\xb1\x57\x4f\xc3\xa6\xb2\x71\x38\x29\x94\x27\x0c\x76\x88\x2c\x9d\xaa\xe4\x19\xd8\xe2\x82\x44\xe0\x7d\xf9\x77\x95\xe1\x99\x33\xac\x12\x6d\xb7\xf9\xb8\xc0\x1e\x0d\x29\x05\x75\x73\x41\x68\x5c\xa4\xc9\xaf\x13\x35\xf7\x7f\x7c\x74\xc0\x72\x5e\x4e\xc7\x6f\xb9\x3b\xde\x03\x35\xb7\xd4\x3a\x80\xf3\xfc\x79\x3d\x60\xec\x0d\xdc\x33\x95\xb0\x58\x46\x95\x8b\x16\x45\x7e\x6b\xbb\x19\x90\xe6\xcf\xf0\x36\xb9\xc2\xbe\x50\x0d\xcb\x42\x69\xe0\x55\x72\x36\xfc\x4c\xf3\x49\x4d\xfa\xbe\x2e\xb8\xa5\x63\x02\x2e\xa7\xdf\x86\x7b\x54\x51\xe5\x21\x6f\x93\x07\x8e\xb0\x83\xfd\xb2\x99\xfb\x2d\x77\xcb\x35\xf7\xf6\x8a\x95\x37\xcb\xa5\xa7\xeb\x01\x6d\x55\xcd\x1e\xe5\x8d\x0a\x5b\xf4\x90\x2b\xe7\xf0\x0c\x76\xb0\x6e\x97\x89\x0a\x7e\x54\x59\x9c\xde\x18\x21\xb3\x1d\x3f\x2a\x3e\xb3\xe2\xb4\x17\x1b\x0e\x56\x9e\x77\x38\xb5\x80\x4a\x8b\x8c\xb6\xf0\x6c\xf1\xf4\x53\x91\x26\x0f\x49\xa1\xd8\xd8\x32\x84\x71\xc4\x27\x96\xe1\x61\x02\xd4\xe7\xa2\x26\xef\x63\xcd\xc7\xe2\x7a\xa9\x83\xf5\xa5\x6e\xea\x1e\x29\x92\x7b\x8f\xa5\xdb\x95\xce\xa0\x35\xd3\xd8\xbc\x28\xad\xc4\x50\xc6\xe0\x0d\x0f\xa6\xe0\xb0\x5a\x02\xb5\x90\xe0\x5e\xe0\x6c\x1e\x71\x19\xd3\x73\xe4\x22\x34\xdc\x36\x04\x5e\x00\xf5\xff\xcc\x1f\xb6\x22\x93\x06\x97\x9d\x04\xf7\xae\x96\x21\x60\xb3\x40\x8d\x78\xc2\x75\xf0\xf6\x9e\x86\x32\x60\xd7\x98\x9a\xf8\x47\x36\x13\x3c\xc6\x2a\x90\xc5\xd1\x22\xc4\x90\x2d\xe2\x69\x41\xd0\xa7\xa8\xf7\xe7\xe7\x8a\x5b\x28\x85\xca\x74\xfd\x05\x31\x7c\x6e\xa1\x64\x48\xd6\x00\xc3\x9a\x8a\xd8\x12\x79\xbd\xc7\x43\x33\x39\x2a\xce\x8f\x5f\x8c\x78\x32\xdc\xeb\xb9\x0f\xff\x34\x1f\x44\x1a\x0c\xbc\x87\x06\xe5\x87\x06\xfe\x43\x03\xef\xa1\xc7\x3e\x6a\xb4\xe5\xe7\xe1\x26\xa2\x45\xfd\x43\xd6\x1b\x6c\x0b\x49\x11\x1a\x53\x55\xcc\x70\xae\x0a\x10\x11\xca\xc2\x05\xcb\xe2\xc8\x96\xf3\xb3\xf2\xa5\x43\xf6\x46\xf8\xfc\x44\xcd\xa9\x78\x8d\x13\x15\x06\x0c\x65\x09\xbe\x5c\x23\x4a\x34\x8c\x7d\xa5\x34\x51\x14\x77\x70\xd8\xe0\x89\x36\x67\xd0\x2b\xb9\x4a\x07\x0d\xc5\xd3\x58\x08\x04\x15\x81\xc0\x80\x62\x61\x98\x3a\x79\x26\x2a\x94\x2a\x7c\xe4\xed\xdf\x4e\x8b\x5a\xf3\xb4\x75\xb1\x57\x8e\x85\x2b\x50\x73\x37\x15\x96\xa2\x60\xa4\x00\x88\xa0\x13\x43\x5c\x00\xc1\xd8\x29\x59\x70\x72\x62\x40\x05\xa1\x0a\xbb\xf4\xc0\x36\x0a\xd5\x58\x25\x23\x19\x86\x22\x6e\x47\x5a\xcb\xcd\x1b\xc9\xaa\x6b\xf8\x14\x28\x6a\x65\x30\xb5\x34\xd5\x27\xa6\xee\x89\xd5\xb4\x0f\x9b\x6d\x4a\xfc\x0a\x4f\x3d\x19\xea\x37\xd6\xdf\x91\x5d\xe5\x5e\x8e\x8e\x06\x00\x82\x55\x86\x2e\x7a\x73\xdb\x04\x74\x97\xc0\x6f\x33\xd0\x29\x3e\xa9\x92\x81\x5e\x3b\x4d\x23\x6d\x5e\x5c\xbe\x5a\x73\xce\xa9\x55\xc9\x04\xe2\x99\x65\x88\x81\xa1\x7e\x00\xda\xc1\xdf\xe8\x11\x19\x17\xc8\xf5\x36\x97\xd2\xbc\xfd\x2d\x16\x09\x6b\x31\x4e\x6a\xb9\xe9\x58\xed\x63\x3b\x1a\xef\xe5\xc5\xeb\x16\x63\xbd\xbc\x78\xbd\xe9\x38\xcd\x23\xbb\x1a\xa3\x4a\xd6\x56\x34\x73\xed\xfc\x71\x22\xad\x71\xd8\x00\xcc\x03\xa5\x28\x62\xc8\x89\x8f\x73\xf5\x60\xca\x4b\x11\xe4\xe0\x3e\x77\xdd\xf1\x92\x75\xfe\x84\xbc\x61\x1b\x6b\xe0\x48\x60\x4d\x20\x9d\x33\xab\xa6\x6a\x4a\x2b\xf7\xca\xc2\x74\x5d\x29\x95\x7e\x2b\x23\x81\xa1\xb2\xeb\x30\x2c\x6a\x1f\x62\x65\x48\x31\x24\x28\x88\x09\xe2\xd5\xfc\xa0\x4a\x20\x04\xab\x66\xfa\x42\x7d\x2a\x51\x2a\x65\x63\x19\x09\x1b\xaf\xcb\x6c\xa0\x5e\x2e\xa4\x15\x04\x32\xcf\xef\xe1\xf7\x18\xab\xb8\xdf\xdc\x2b\xaa\x60\xd7\x97\xd6\x93\x17\x8a\xd8\xe1\x74\x22\xcc\x3d\x4e\x60\xcc\x23\x02\x37\xcd\xdf\x0e\x8e\xbb\x36\x43\x37\xdb\x06\xe1\x82\x00\x36\x37\xca\x52\x17\x3c\x48\x92\x19\x1a\x9a\x59\xaa\xb6\xdb\xb3\x7a\x81\x71\xed\xae\xd5\x3f\xe6\x00\x5f\x9a\x45\x66\x23\xfa\xce\xfd\x78\x47\xcf\x26\xc7\x6e\xa0\x8a\x3f\x62\xbe\x11\x5c\x0b\x21\x6f\xd0\x53\x10\x0a\xe4\xdc\x52\x20\xc7\x3e\x3a\xcb\x4d\xb2\xf8\x7c\x37\x5c\xf7\xca\xf5\xb4\x09\xe3\xcd\x9f\x6a\xc1\x7b\x9d\xac\x0e\x49\x13\xde\xa3\x54\x74\x08\x6d\xe6\x68\x65\xd0\xc2\x06\xb4\x16\x4a\x6a\xcf\x64\x9a\x0a\x2c\x27\x4f\xb8\xbe\x5e\x37\x86\x96\xa4\xfc\x83\x00\x03\x39\xf4\x59\x28\xc9\x5d\xb0\x56\x78\x8f\xf9\xb6\xeb\xb2\xa9\xa2\x79\xd1\xdf\xeb\x2d\xea\x8d\xd6\xad\xb9\xe9\x68\x93\x25\x77\x6f\xdf\x6e\xc5\xe1\xc9\x86\x05\x6f\x9c\x6e\x5d\x81\xb9\x6d\x67\xec\xfa\xda\x70\xd2\x85\x62\x1c\x9b\xce\xdb\x2f\x24\x87\xb5\x5e\x2c\x5d\x5c\x7b\xc0\x92\x72\xa1\x37\xd7\x38\x8b\x13\x61\xee\x30\x40\x85\xb1\x37\xe8\x66\x83\x82\xe6\xaa\xd0\x6f\x28\xe6\xa0\x7b\x50\x79\xe2\x02\x1e\x73\xe1\xf0\x11\xf8\xd8\xca\xc3\xa7\x05\x54\xa4\xba\xef\x46\x5c\xbf\x81\x6e\x36\xd9\x03\x7a\xf3\xc6\xcb\x5f\x80\x12\x5f\x77\xd8\x00\x4d\x0b\x6b\x98\x45\x70\x3d\xef\x7d\xe4\xae\x2b\x3d\x6e\x34\xe9\xca\xd3\x6d\x95\x0c\xff\x49\xc2\x17\xc3\xa4\xbf\x8d\x15\x8e\x45\x2b\x1f\xc8\xa2\xe2\xf8\xa8\x18\xd3\x09\xce\x74\x1e\x65\x13\x19\x37\x19\xd4\x63\xc5\x6a\xfd\x1d\x37\xd6\x57\x9b\x03\xa3\x6a\x48\x54\x33\xad\x8c\xb4\xfd\xec\x8f\xcf\x1e\x87\xff\xfd\x4b\xa9\x71\x43\x30\x81\xbd\x29\xb5\x94\x7b\xf5\x91\xab\x51\x6a\xe9\x9b\xfb\x46\x38\x37\xb3\xd9\x95\xf5\x6f\xea\x9f\x59\x83\xb1\x67\xd8\xe0\x53\xc2\xd9\x9b\xc8\xb0\x48\x06\xf0\x60\xb5\x81\xdc\x9b\xc8\xb0\x43\xdb\xdb\x18\x6d\x6f\x53\x81\x6b\xb7\x38\xe2\x30\x8f\x5d\x5e\x9b\x3a\x49\x69\xcd\xad\xa9\x79\xe4\x37\x76\x69\xb2\xed\x2f\x4d\xd6\x5d\x9a\xdd\x5c\x9a\x95\x32\xf3\x53\xbe\x33\x8d\xb2\xf6\xca\x6b\xd3\xf4\x94\x8f\x14\x77\x7f\xe1\xbb\x65\x34\x9a\x08\xcb\x95\x96\x5b\x3a\x6f\x2b\x8f\xd5\x38\xc9\x8b\x55\x64\xa0\x51\x61\x7f\x6d\xe8\x99\x11\xdd\x49\x65\x38\xcf\x8b\xc0\xa3\x23\x01\xcd\xff\x2e\x30\xab\xd2\xa5\x17\xe4\x41\x71\xd2\x14\x15\x66\xd6\x09\xf3\xc7\xc0\xb4\x12\xbb\x8c\x4b\x2f\xfe\x0b\x06\x5a\x56\x5c\xeb\xd4\x11\x2a\x40\x11\x57\x8f\xe4\xa3\xb9\xbd\xca\x23\x6b\xe7\xee\xaa\xcc\xa7\xe4\xf7\xac\xfc\x9e\x2a\xf4\x85\xc6\xb9\x79\xeb\xc6\x6b\xff\xe3\xfb\xeb\x1b\xb0\xc7\x10\x25\x25\x49\xbb\xf1\x50\xd0\x82\xe7\xbb\x1a\xcb\x28\x2f\xb7\x30\xcb\xdc\x91\xbe\x6c\xac\xeb\xbe\xed\x65\x6f\x3c\xdf\x3b\x22\x00\x0d\x3a\xde\x8a\xb2\x57\xb5\x0f\x3c\x1e\xc3\x7c\x20\x1a\xde\xa4\x80\x6e\x1c\xc7\x4d\x1a\xc5\x96\x40\xf7\xae\xa6\x11\x2d\xf3\x06\x3a\xb7\xdd\x09\xdf\x12\x89\x76\xf2\xbf\xe4\xdf\x15\x38\x75\x5d\x8c\x77\x1e\x2c\x3d\x90\xea\x30\x54\x81\x3e\x4c\xb9\xfe\xa0\x0f\x6d\x25\x6f\x01\x05\x6a\x9d\x11\xf4\x50\x93\x7a\x0a\x5f\x89\x8f\xe9\xe1\xe7\x65\x68\xeb\x35\xf9\x15\x47\x7b\xdd\xb3\xbf\x21\xbc\xf2\x1a\xcb\x42\x4b\xe4\xf2\xea\x93\x9d\x80\xb8\x1d\x86\x79\x9d\x75\xe7\xf3\xe2\x99\x27\x23\x1e\x18\xea\x72\x3e\x99\x24\x62\x02\x21\x23\x57\xc5\x39\x57\x42\x09\x8b\x2d\xbd\xaa\x08\x53\x75\x67\x4e\x4f\xa4\x00\x42\xe1\x55\x94\xe9\x54\x24\x57\x0a\xa2\xbf\x15\xe3\xf4\x9c\xa1\x2f\x14\x6f\xe4\x35\x69\x01\x47\x93\x37\xb6\xd8\x41\xeb\xee\xc4\xab\x9a\x47\xa8\x70\xb4\x97\x8f\xe5\x7e\x41\x6f\x6b\xb9\x50\xff\x58\xc6\x61\x71\x32\xe0\xc2\xc9\x6f\xb2\x39\x00\x1a\x74\x2b\x60\x6a\xe8\xa5\xcb\x7b\x85\x8a\x41\x3d\xbc\x31\xa5\x49\x3f\xd3\x6c\x2e\x12\xaa\xa9\xa7\x8b\x31\x59\x3b\xb9\x12\xad\x41\x98\xee\x6f\x4d\xdb\xf0\xbc\xf9\x5b\xdf\x7c\xd6\xbc\x56\x84\xeb\x89\x5f\x30\x28\x77\xde\x63\x91\x9a\xc8\xc0\x5e\x25\x19\x4f\x30\x9d\xd2\x50\x01\x73\x34\xcb\x11\xf5\x63\x91\x88\x38\xb0\x61\x3a\x59\x2c\x53\x84\xd5\x37\xdd\xff\x55\xc6\x50\x1c\x51\x25\xfe\x06\xd1\xb7\x6d\xb4\x8e\xc6\xfb\xd3\x6a\xa3\x1a\xef\xe1\x2a\x36\x5f\xbe\x89\x04\xd1\x0d\xbf\xf3\xc8\x8a\xf8\x66\x09\x2a\x77\x74\x94\xc9\xc8\x56\x61\x8c\x48\xc1\x02\xdf\x83\x37\x79\x38\xd2\x35\xef\xd0\x22\xf5\x8e\x33\x3e\x0f\x88\x24\x39\x98\x8b\x45\xe3\x32\x37\x25\x94\x89\x08\x52\x16\x4c\x91\x13\xa5\x8a\x1e\xb1\xa7\x5d\xa7\x6a\x36\xcf\x45\x6e\x0f\xd9\xa7\x21\x30\xb7\x4b\x79\xed\xb0\x11\xba\x4c\xd0\x7b\x92\xff\xfb\x63\x23\x34\x0b\x4c\xeb\xd8\x32\xde\x7f\xe2\xc3\x88\x28\x55\xa0\xda\x75\xc4\x68\x37\x12\xa2\xa5\xb2\xf9\xdb\x76\xcf\xf9\x76\x98\x67\x0a\xc3\xc5\x9c\x2d\xf9\x4f\xcc\x6e\x5c\x55\x0c\xbb\x71\xb9\x0a\x09\xa7\x1b\xe4\x9a\xd6\x30\x6b\xe2\x88\xed\x78\xb6\x65\xaa\x8e\xf5\x1a\xb2\xe0\xfd\xde\x83\x68\x20\x73\x2f\x49\x7b\x64\x32\xc5\x6a\x36\x18\xe0\x45\x4f\x15\x1f\xb2\x82\xf2\x24\x52\x23\x8e\x71\xba\x7a\xce\x03\xa2\xad\x3c\x44\x88\xba\x02\xf0\xd2\x42\x72\x76\x8d\x35\x0c\x3b\x4c\x85\x8e\xc1\x74\x0c\xa6\xbc\xec\xbf\x25\x06\xa3\x22\x71\x05\xa3\xda\x4e\xc0\xbe\xa2\xe7\x57\xc6\xa7\x61\x9b\xbc\xd8\xfc\x86\xa4\xc8\x81\x2a\x7a\x1d\xd1\xe1\x30\x07\x32\x5a\xd8\x58\xa1\x73\xa2\xed\x46\x64\xce\xc0\x66\x9f\x66\x49\x0c\x45\x50\x93\x44\x35\x49\xc0\x54\x8e\x75\x1d\x9b\x25\x8a\x67\x39\xad\x47\x84\x89\x82\x10\x04\x09\x2a\xb1\x66\x3a\x88\x5b\xa6\xab\x91\x98\xf7\xe5\xb7\x34\x94\x07\x0b\xda\xb0\x87\x62\x9d\xc9\xf0\x49\xf0\x66\xcb\x42\x1f\x98\x45\xaf\x01\x26\xaa\x7f\xa0\xae\x7a\x46\xb5\x65\x57\xb8\xe9\x49\x33\xd1\x36\xc0\x44\x17\x55\x60\xa2\x55\xfb\xdc\xd8\xef\x26\x54\xa0\xe6\x0e\xdc\xc7\x36\xdb\xc9\x0a\x5f\x8a\xac\xb0\x19\x2c\xd1\x4a\x49\xa1\x25\xc3\x78\x74\xc8\xa0\x7b\xb3\x8b\x35\x30\x42\xf7\x63\x19\xed\x79\x45\x0b\x26\xd1\x71\x87\x2f\x9c\x3b\x3c\x1c\x5b\xe8\xf8\x41\xc7\x0f\x3a\x7e\xe0\xb5\xaf\xe1\x07\xbb\x67\x04\x9e\x35\x74\x15\x70\x9c\x6d\x44\xfa\xa4\x6f\x60\x2b\x39\x99\x5c\xa5\xea\x24\xb3\x46\x3e\x17\x1b\xe5\x2c\x7d\x95\xea\x12\x77\x53\xe5\xfc\xa9\x9e\x2a\xca\x00\xa3\x40\x06\xd3\x5c\xbf\xae\x6b\xd6\xce\xb0\x57\x9f\x1c\x52\x65\x3a\xc5\xa4\x0d\xbf\x00\x83\xfd\x91\x7c\x8b\xb6\x58\x06\x8c\xc8\x12\x65\x8c\xab\x98\x65\x51\x2a\xe7\x11\xa2\xa1\x79\xa9\x1c\x1e\x34\x1d\x8f\x97\x8c\x17\xea\x31\x88\x90\xf1\x89\xe9\x31\x85\x8a\x4c\xb6\xec\x4f\x9c\xcd\x44\x62\x28\x43\xfe\x12\xa8\xee\x14\x2f\xf3\xde\x73\xff\x71\x6d\x41\x80\x87\x8f\xe8\x8b\x55\x7c\x45\xa3\x7b\x7f\xf5\xc3\xba\x55\x7e\x5b\x6c\x4d\x64\x19\xf1\x4a\xe6\x3c\x49\x25\x8f\x58\x96\xd8\x08\x2c\xce\x32\x2d\x12\xcb\xba\xa7\x7c\x21\x18\x0f\x00\xad\xc2\x10\x50\xf6\xc7\x42\x52\x34\x1e\x39\xb0\xdc\x70\xdc\x9a\x71\x16\x45\x3d\x36\x96\x31\xd4\xc2\x11\x73\x97\xd9\xcd\xd3\x29\xbb\x96\x71\x20\x28\x53\x96\x48\x3e\x8c\xc8\xf4\x68\x8e\xac\x3b\x77\x60\xb5\x29\x24\x7e\xc1\x2b\xcc\x19\x0c\x20\x66\x6c\x5c\x74\x1f\x6b\xdf\xe9\x0c\x6c\x81\xd7\x79\x97\xc9\x21\x1a\xf0\xd8\x61\x51\x40\x60\x4d\xaa\x60\x73\xf3\x1d\xdf\xd7\x59\x30\x35\x53\x1a\xee\xcd\x55\xa8\x87\x7b\xe6\x6e\x0c\xf7\xb4\x08\x12\x91\xea\xe1\xde\x01\x20\x34\x95\xe6\x41\x10\x57\xde\xb3\x86\x05\x0c\xf7\x0e\x7a\xcc\x99\xdf\x47\x2a\x9d\x3e\x7e\x16\x2a\x0d\xb2\x4d\x74\xee\x95\xdf\xb6\xec\xe8\x2e\xa6\x2d\x79\x01\xb9\x75\x64\x82\xe5\x61\xb2\xe6\xb0\x79\x71\xb8\x5e\xb5\x91\x3c\xf8\xf6\xb3\xad\x4a\xdb\x15\x29\x89\x69\xf9\x61\x41\x79\xb8\x32\x7b\xfb\xdc\x79\x14\xf9\x35\xa7\x38\x7c\xb4\xf4\xeb\xb1\x27\xbd\x10\xc9\x68\xdd\x84\x7f\x32\x6d\x8a\x93\xc5\xaf\x90\x3e\xb8\x1b\xf3\xc3\x0f\x28\xc2\xd1\x64\x8c\xc8\x87\x21\x3b\xe7\x29\xca\x46\xe2\x8a\xf2\x2f\x21\xe8\xc6\xc6\x2d\x86\x0e\x42\xd1\xac\xd9\x80\x41\xe7\x35\x8b\x04\x52\xd2\x93\xca\x58\xc3\xc5\x5b\x27\xbb\xac\x13\x02\xd6\x44\xe2\xe4\x21\x38\x3e\x35\xdc\x79\xfc\x4d\xe7\x9e\x7b\xd2\xba\x63\xa7\x62\x7d\x29\x2a\xd6\x6f\x22\xfe\xa3\x0b\xfc\x68\xa7\x1d\xee\x3e\xe2\xa3\x5d\xa8\x47\x63\x8c\x47\xa2\x9a\xf5\xbe\x86\x08\x0f\xdf\x9f\x0a\x91\xe3\xb9\xb6\x07\xc9\x5f\xed\xdc\xae\xe9\xda\x00\x10\x94\x05\xf2\xce\xfd\x66\xa3\x65\x45\xd3\x94\x29\x13\x1f\xa5\x86\xaa\x9c\x46\x7a\xf2\x9c\x23\xa0\x80\xb1\x89\x5c\x88\xd8\x1f\x2c\xc0\x61\x1b\xfd\x04\x71\x7d\x71\xb0\xdc\xd3\x22\x3a\x1e\xd7\xf1\xb8\x8e\xc7\x95\x97\xfd\xb7\xc4\xe3\x1e\x39\x04\xa5\x89\x4c\xba\x9a\xbb\xdb\x50\xca\x2e\x40\xa5\x0b\x50\x29\xcb\x10\x0f\x12\x99\xd2\x3e\x24\xa5\x45\x2c\x4a\x17\x84\xf2\x5b\x61\xa3\x5b\xba\x19\x1f\x2e\xfa\xa4\x0b\x3b\xe9\xe4\x83\xce\xcd\xd8\x9a\x09\xec\xde\xcd\xd8\x22\xd0\x64\x55\x84\x49\x17\x5a\xf2\x25\xd3\xfc\x07\x20\xf6\x1d\x95\xef\xa8\x7c\x47\xe5\xbd\xf6\x3e\x95\x7f\x18\xf2\x5e\xd4\x8a\x1b\x75\x5a\x1b\x34\x51\x09\x21\x81\x13\xee\x68\x24\xa8\x7c\x88\x6e\x9a\x69\x2f\x23\x7e\x6d\x80\x47\xcb\xf8\x0e\x1b\xde\x81\xd1\x13\x68\x75\xce\xa3\x38\xe8\xcd\xb9\xdb\xea\x41\x4d\x49\xe6\xcd\x00\x1b\xe2\xf9\x70\x77\x30\x82\x78\x3d\xa2\x92\x0f\x9f\x64\x03\x5d\xee\x3b\x82\x96\x17\xc5\xed\x57\x79\xcd\xca\x33\x58\x77\x97\xd6\x9d\x4d\xab\xde\xaf\x42\x7a\x41\x92\xec\xce\x26\xf7\xcc\x2e\x05\x73\x04\x53\x09\xc6\xa2\xc8\xd0\x50\x3d\x04\x0d\xa7\xb3\x4a\xb6\xf0\x82\xc3\x1d\xb0\xa4\xbd\xd8\x8e\xa9\x8a\x42\xc6\x6d\x5a\xfc\xf9\xe5\x45\xce\x0d\xe8\x7d\x3d\xb4\xe3\x20\x3b\x19\x53\x48\x87\xb5\x85\xd8\x30\x0e\x18\x82\x11\x17\xf0\xf4\x82\x69\x67\x83\x18\xa8\xb6\x57\x04\x4d\x33\x14\xf8\x44\xef\xa2\xa0\x24\xcf\xa1\x4b\x06\x9f\x81\x2d\x01\x06\x57\x78\xb8\x87\x35\x47\x80\xb5\xc9\x40\x9c\x07\x81\xca\x90\x6b\x61\xe9\xe3\x52\xeb\x46\x2a\x46\xdd\xbc\xb7\x33\xc6\x91\xb9\x6e\x1e\xee\x5e\xaa\xb1\xdd\x9b\xf2\x3d\x18\xb0\x9f\x10\xd8\x0f\x45\x47\x42\x2f\x90\xda\x5b\x25\x9e\x08\x36\xdc\x33\x83\xc6\x32\x2b\x30\x6a\xf3\xa7\x99\xc2\x70\xaf\xb8\x28\xc3\x3d\x67\x92\xf3\x4c\x6e\xce\x79\xe2\x49\x81\xa6\x89\x19\xbf\x95\x18\x4b\x8f\x90\x00\x9a\x08\xa8\x17\x91\xdb\xe9\x1e\x8c\x72\xd0\x61\x68\x5a\xa7\xed\x5e\x0c\x46\xca\x16\x6f\x27\xab\x67\xe5\x3c\x5a\xb1\xdc\xae\x29\x8d\xee\x03\x11\x5b\x73\x9f\xbc\xbc\xe1\x3c\x32\x0a\x77\x0b\xa3\xaa\x0a\xfb\x05\x7b\x4b\x65\x55\x71\x4b\x30\x84\x68\xa7\xab\xdf\x92\x6a\x3e\x04\x85\xa4\x2a\x85\x1d\x08\x50\x07\x02\x54\xbe\x90\x0f\x07\x02\x84\x87\xee\xb7\x85\x04\xc4\x5e\x1b\x9d\x2d\x80\x50\x5c\x19\xb3\xc5\xf1\xe0\xf8\x4f\xe6\x8f\x31\x5f\xa8\x04\x44\xa7\x26\x2e\x76\xb8\x38\x2e\x62\x1f\x98\x13\x44\x65\x50\x58\xa4\xe2\x89\x48\x10\x63\x30\x59\xb8\xbe\x4f\x8e\x1e\x0f\x7a\xa8\x9e\x04\xac\x52\x9a\x3a\xfc\xa1\xce\xc0\xd4\xf9\xe6\x3b\xab\xcc\x93\xf2\xcd\xff\x16\xf0\x87\x90\xd4\x7e\x99\xb1\x68\xed\x40\x88\x60\x05\x36\x37\x32\x55\x24\x86\xdf\x3c\x1c\xd1\xce\xe4\x09\x9a\xdc\x0e\xc5\x8a\x8e\xcf\x75\x7c\xae\xe3\x73\x4f\x95\xcf\xdd\x2f\x06\x8d\x6a\x3d\x74\x58\x48\x8f\x1e\x6a\x66\x41\xc9\x7f\xef\xf1\x66\x1b\x01\x22\xed\x58\x5c\x78\x48\x68\xa4\x9d\x73\x74\xf3\xee\x8e\xab\x7f\x09\x5c\xfd\x89\xe2\x32\x35\x0a\xd5\x1b\x13\xa7\x4e\x82\xf9\x02\x25\x98\x2e\x7e\xa2\x74\xa6\x37\x07\x67\xda\x15\xfb\xda\x2d\x4c\xd3\xee\x38\x95\xee\xf8\x53\xc7\x9f\x76\x1f\xc5\x57\xf5\x0f\x75\x1c\xa9\xe3\x48\x1d\x47\x62\xe5\x33\xbd\x01\x3c\xd4\xbd\x58\x51\x07\x14\xd5\x01\x45\x75\x40\x51\x1d\x50\xd4\x23\x1f\x97\x0e\x28\x6a\xd5\xaa\x3c\x14\x50\xd4\xb3\x3f\x3e\x6b\x04\x88\x72\x40\x0d\xae\xd4\xad\x23\x99\x03\xf6\xec\x8f\x87\x63\xa5\x0a\x0f\x43\xdb\x6c\xe4\x4e\xdb\x33\x68\x00\x55\x7d\xdb\x76\xdb\x41\x52\xfd\xde\x20\xa9\x72\x1f\xc5\x13\xc0\xa5\xba\x9f\xae\xbc\xe3\x80\xaf\x4e\x47\xee\x3c\xb3\x9d\x16\xf9\x54\x3d\xb3\x4f\x1a\x01\xeb\x4b\x0e\x3d\x7a\xc8\x98\xa3\x0e\x10\xeb\x01\x01\xb1\xee\xcf\x5c\xbb\xe8\xa7\x8e\xc7\x76\x3c\xf6\xf7\xc3\x63\x3f\x47\xf4\x53\x07\xc3\xd5\xc5\x46\x3d\x25\x2c\xae\x5d\xc9\x33\xbb\x45\xe5\xda\x19\x2f\xef\xe2\x9e\xbe\x14\x7e\xfe\xd4\xa0\xc0\xaa\x12\xfd\x7d\x0c\x85\x9d\xb4\xf2\xa5\x48\x2b\x9d\x5f\xb9\x74\xa6\x37\xc0\x03\xbb\x37\x33\xba\x2f\x32\xd8\xfd\xf9\x4e\xc7\x70\x3a\x86\xf3\x20\x11\x4c\x5d\xe8\x52\xc7\x62\x3a\x16\xb3\x3d\x18\xd9\xbd\x79\x4b\x07\x4b\xd6\xc1\x92\x3d\x41\x58\xb2\xa2\xb9\xa3\xc3\x26\xeb\xb0\xc9\x3a\x6c\xb2\x0e\x9b\xac\xc3\x26\xb3\x64\xd2\xa8\x2a\x61\x16\xc9\x78\x02\xa5\x9b\x12\xa9\x12\x99\x2e\x5f\x45\x5c\xeb\x55\xf1\xc7\x7e\x3b\xa7\x52\xcd\xf8\x1c\x02\x81\x28\xb8\x72\x4e\x8d\x58\x00\xad\x80\xc1\x10\x25\x75\x3f\x19\x9d\xc8\xa8\x7f\xb0\xb4\x03\x76\x63\x94\x32\x58\x65\x0a\x1c\xe2\xf1\xd2\x7c\x21\x43\xdb\xb2\xd3\x0a\x9f\xb4\x56\x58\x5c\xe1\x55\x8b\xef\x7d\xa4\x10\x52\x9e\x8c\x64\x9a\xf0\x64\x69\xd5\x2b\x90\x0b\x33\x9d\xf1\x28\x5a\xb2\x79\xa2\x16\x32\x14\x9a\x4d\x32\x19\x8a\x08\x76\x4b\xc5\xec\x0e\x31\xaa\xa4\x2e\x1f\x37\xda\x07\xc2\x97\xdb\x82\x0e\xa1\x23\x89\x58\xd4\x9a\xc9\x14\xda\xba\xd0\x4a\x6d\x46\x07\x3c\x1f\x06\x58\xbc\x34\xf9\xf8\x02\x15\x6b\x19\x8a\x04\x83\xe3\xcc\xd1\x08\xa9\x23\x37\x25\xc3\xfe\xe6\x2a\xa4\xa0\xba\x50\x01\x05\xc2\xb8\xeb\x78\x59\x9a\xf9\x80\xbd\x8b\xa3\x25\x04\xac\x17\xdf\x48\x57\x6a\xc6\x93\x0f\xf8\xaa\xdb\xc2\xb0\x6f\x07\xec\x6f\xea\x4e\x2c\x44\xd2\x63\x72\xcc\x66\xe6\x8c\xa5\x53\x40\x24\x28\xf5\x24\xb4\x0d\x4f\xb8\x93\xe9\xd4\x8c\x58\x26\xe5\xce\x28\x2c\x5b\x8b\x14\xce\x7b\x62\x59\x95\x9e\xf1\x28\x32\xe7\x1e\xaf\xb9\x1a\x23\xf5\x25\xaf\x9d\x9d\x78\xf9\x75\x05\xa8\xc0\x86\x45\x6a\xd8\xe2\x91\x52\x91\xe0\x71\xa7\xf4\x7f\xd9\x4a\xff\xfd\xbd\xe0\x0f\xbd\x62\x6e\xd2\xb5\x4b\x32\x4f\x84\x91\x28\xa4\x8a\x31\x6e\x6c\xcd\xa9\xbc\x2c\x35\xb7\x5a\x1c\x7d\x02\x7a\x41\x4d\xe2\x09\x92\x0e\xb8\xab\x91\xba\x13\x49\x7e\x65\xd8\x3b\x4c\x6b\x79\x8b\xd7\x9e\x7a\xfd\xc1\x34\xba\x74\x6d\x7c\x29\xbd\xae\x85\xa1\x16\x59\xac\x45\x3a\x40\x5d\xc7\x25\x64\xf0\x68\x3e\xe5\x7d\x00\x8f\x04\xb6\x66\x73\x34\xa6\x2a\x56\x09\xca\xcc\x9a\xee\x03\xc6\xfc\xc7\x90\xb7\x61\xe6\xf1\x56\xc5\x97\x6e\xfc\xee\x45\x63\xc1\xcd\xea\x6e\x41\xcc\xe1\xd2\xae\x59\xd3\x5c\xf8\xb0\x0c\xbf\x4c\x58\x61\x7a\xb4\xd2\x3c\x48\x33\x1e\xe5\x4d\xc8\x88\x01\xce\xfd\x40\xc8\x85\xb0\xac\x49\x50\x64\x56\x31\x77\xc9\xe8\x84\x40\x95\x31\x6c\x41\x02\x7d\x07\xce\x51\x9a\x1d\x9a\x49\xcc\xf8\x64\x9c\x9e\x9e\xd4\x4f\x9d\x84\xa3\x2d\x82\xc8\x61\x5d\x1e\xd1\x72\xe5\xc9\x9b\xab\x2c\x56\x45\x41\xb4\xd9\x6c\xb5\x81\xc5\x6a\x85\xa4\xbb\xc6\x2f\x52\x69\x5b\xe7\x20\x29\x9e\x95\xb6\xba\x78\x27\xa8\x3e\x61\xf7\x85\xb4\xee\x0b\x58\x05\x72\x60\x94\x44\x93\xdd\xb8\x32\x56\x69\x61\x5e\x57\x9d\x53\xe3\x77\x2b\xdf\x6c\xe6\xd4\x80\xc3\x6a\x47\xf1\x19\x04\x9b\x96\xdc\xe7\xd1\xfd\x26\xdb\x70\x9f\xdd\x55\x71\x29\xdc\x72\x4a\x12\x68\x69\x70\x79\xfd\xe6\xf2\xea\xcd\xab\xf3\x9b\x37\xaf\x59\x1f\xc5\x10\x34\x32\xd2\x50\x2a\x84\xc9\xdc\xe8\x30\x77\xd6\x1b\x49\xab\x3c\xf5\xc3\xc5\xf1\x61\xe1\x99\x01\xeb\xcc\x3a\x1d\xb7\xec\xcc\x3a\x9d\x59\xa7\x33\xeb\x74\x62\xcf\xd3\x10\x7b\x3a\xb3\x4e\x67\xd6\xe9\xcc\x3a\xbf\x3b\xb3\xce\xa6\xd1\x48\xeb\x24\xeb\xce\xc0\xf3\xbb\x13\x59\x9f\xb0\x81\xa7\x4e\xf5\xeb\xac\x3c\x9d\xb8\xd3\x59\x79\x9e\xac\x95\x67\x63\x86\x94\xaa\x84\x4f\x84\xd9\xd3\x57\xd7\x17\xaf\x13\xb9\x10\xc9\x2a\x54\x59\xdb\x86\x05\x7c\x6e\x76\x40\xd7\x40\xf2\x71\xf6\x8a\x40\x8b\x12\x76\x8d\xfd\xb3\x0b\x43\xb3\xc7\x3c\x10\x6c\xff\xd5\xf5\xc5\x01\x5b\xa8\x28\x9b\x09\x16\x62\x67\xa1\x98\x47\x6a\x29\x42\xa6\x28\x8b\x16\xd3\x65\x07\xec\x7b\xb7\xc2\x8c\xa7\x29\x0f\xa6\x2c\x14\xf0\x1f\xaf\xbe\x57\xa6\x2d\x6e\x15\x51\x80\x54\x99\x56\x22\x99\xc9\x58\x38\x15\x98\x1e\x97\x78\xb1\xcd\xe6\x63\xef\x91\x48\x5b\xf6\x60\x04\x24\x7f\xb2\xb1\x10\x21\xb0\xa6\x91\x60\x73\x43\x82\x61\xf8\x33\x95\xc5\xe9\x80\xe5\x0b\x65\xe3\x21\x11\x17\xce\x8b\xe7\x0a\x3b\xc6\xfc\xa4\x19\x73\xc7\xad\xbe\x14\x6e\xb5\x9d\x72\xee\xa9\xe6\xee\x2f\x0c\x44\x8f\x43\x19\x98\x13\x5f\x81\xf9\x7c\x75\x7d\x61\x49\x1a\x41\x09\xfa\x3b\x3d\x06\x4d\x53\xfd\x85\xc9\x94\xfd\xf8\xfe\xfa\xc6\x6c\x50\x01\xd0\x85\x52\xf9\xf3\xfa\x83\xa6\xbf\xef\x44\x7a\x19\x65\x13\x19\x9b\x77\xef\x1f\xb0\x80\x47\x11\x25\x02\xf0\x94\xde\x86\x96\x6b\x7a\x33\xf4\x04\xc8\x00\x23\xc1\x5e\x9e\xb2\x60\xca\x13\x1e\xa4\xe6\xe5\x2a\x61\x91\xd0\xba\xc7\x46\x62\x22\xe3\x18\x42\xc0\xe3\xd0\x1c\x2c\xf3\x27\x68\xe8\x3c\x46\xbd\x19\xb0\x43\x65\x90\x3f\xcd\xf6\x7f\xe6\xfd\x7f\x1e\xf5\xbf\x3e\xef\xff\xc7\x2f\x07\xd8\x38\xe4\x7a\x2a\x34\xdb\xef\x1f\xf4\x58\xa8\x52\xcd\xf6\x07\x07\x54\xeb\xca\xeb\x43\xb3\x91\x48\xef\x84\x88\x3f\xb3\x8d\xc3\x68\xb7\x1b\xa3\x44\xd4\x31\xc8\x6b\xd3\xd1\xca\x93\x84\x16\xd8\xc0\x11\x57\xbb\x99\xf8\xfc\x16\x99\x3b\x30\xf6\xc7\x14\x4d\x68\xda\x2b\x81\x86\x9d\xc0\xb0\x1b\xaf\x53\xcd\x4a\xaf\x03\xb9\xf7\xdb\xd5\x42\xdc\x97\xd9\x70\xc7\x73\x9f\x34\xcf\xdd\x5a\x19\x6e\x38\x8b\x5b\xab\xc1\x75\x62\x71\xa7\xfa\x76\xc2\x44\xa7\xfa\x7e\x06\xfe\xb2\xc3\xc8\x86\x26\x6e\xde\x82\xc7\x98\x76\x96\xec\xe8\x32\x83\xe7\x39\x05\x6a\xc3\x62\x40\x19\xbd\xca\xb7\x62\x15\x5d\x28\x36\x2e\x48\x9f\x52\x83\x54\x51\x54\xa6\x69\x87\xd1\xa7\x8d\x5a\xaf\x19\x05\x0e\x75\x7f\x24\x02\x9e\x69\x80\xee\x93\xb3\x79\x24\x66\x0e\x93\xd9\xf4\xf4\xca\xa9\xd5\x97\xd9\x28\x92\x7a\xfa\x13\x74\xbd\x7f\x60\xce\xf0\x54\x85\x07\x36\xcb\x88\x70\xb2\xdb\xe8\xe7\x96\xa3\x59\x6c\x4b\x6a\x48\x83\x96\xce\x30\x80\xe0\x82\xc1\x54\x04\x1f\x88\x91\x42\x0b\x6c\x3e\x03\xfa\x94\xf2\x34\x43\x88\xc2\x3b\x6e\x08\x55\x16\xa7\x32\xf2\xda\x02\xf9\x84\xf6\x46\x86\x16\x63\x73\xdd\xe6\x89\x0a\x84\x00\x01\x37\x55\xa8\x9e\x03\x86\xef\x0d\x4d\x59\x7c\x44\x06\xda\xa7\x07\x13\x16\x28\x95\x84\x32\x86\x35\x06\x31\xb7\xba\xc6\x66\x08\x48\x0e\x57\x0f\xd5\xfa\x60\xaa\x1b\x21\x35\x0b\x94\xd9\x80\x34\x47\xfe\x72\x47\xe8\x4a\x4c\xa4\x4e\x13\xe7\x71\x62\x13\x9e\xc2\xe4\xd0\x45\x15\xd2\x26\x88\x3c\xd3\x2b\x47\xc9\x4e\x15\x1b\xf3\x48\x93\xbf\xbb\xf2\x5e\x57\xe9\xfc\x83\x9c\xcf\x0d\x31\x7f\x97\x4e\x45\x72\x27\xb5\x58\xdd\xde\x6c\x5f\x63\x1c\xc3\x4a\x27\xf7\x5c\x85\x17\xf1\x58\xbd\x8b\x7f\x34\x6b\xbf\x0e\x89\x61\x5c\xf4\xd9\x17\x1f\xde\xe4\xf0\x87\x21\x50\x75\x1e\x55\x0c\x37\xfb\x91\xfc\x20\xcc\xb7\x46\xa3\x82\x57\xbc\xbf\x78\xdd\x63\x22\x0d\x06\x07\x2c\xcc\x80\xf7\xc2\x39\xc9\x97\x41\xc3\x1e\xd1\xc8\x68\x79\xcb\xdd\x12\x50\x48\x5a\x6b\x0f\xb2\xb1\x19\x86\x05\x9b\xc7\xf3\xf3\x47\x03\xcf\x83\x36\x4a\x53\xe6\x1a\x0a\x1b\x18\x22\x53\xb0\x96\x99\x63\x86\x27\x07\x16\xca\xda\xb2\x60\x14\xe6\xf5\x95\xf1\x71\xcd\xf0\x36\x9b\x4b\x2e\x3e\xa6\x16\x88\xce\x0c\xe2\xad\x0a\x45\xf9\xc6\x9b\x1d\xd7\x95\x71\x82\x1c\xab\xe7\x2a\xd6\xd2\xd6\x2e\x98\xf3\x44\x5b\x55\x12\x82\xa5\xb8\x93\x55\xfc\xf7\xd3\x9a\xc8\xea\x48\xf0\x25\x63\x15\x45\xea\xce\x3c\xe9\x7e\x34\xa3\xb4\x07\xd0\x3e\x3e\xae\x9c\x09\xed\x1f\x19\xf2\x92\x22\xdf\x95\x93\x69\xca\x26\x89\xba\x43\xb8\x55\x0c\xfd\x12\x63\xf9\xb1\x10\xd1\x31\x60\xc3\xbd\x40\xe7\xcc\x81\xd8\xf1\x5c\x85\x03\xa3\x4b\x0f\xf7\xce\xcc\x2b\x51\xf7\x5f\xd9\x12\xcc\x7a\x7e\x73\x4c\xfb\x6c\x7c\x26\x93\xa1\x69\x8d\x02\xcc\xbe\xf9\xe6\xfd\xc5\xeb\x83\xfa\xf6\x62\x3e\x15\x33\x91\xf0\xc8\x3c\x31\xdc\x33\x53\x1d\xee\x31\x39\x1e\x97\xc9\x5f\xcc\x5c\x53\x26\xe3\x48\xc6\xf6\xd7\x61\xcc\xd6\xfc\xcf\xcb\x11\x06\x7e\x86\xfb\x70\x0d\x82\x66\x8f\x29\x47\x28\x86\x7b\x70\x86\x87\x7b\xc3\x78\x18\xaf\x1b\x2d\x01\xb2\x8b\x3b\x47\xcc\x64\xec\xf3\x8d\xe3\xc1\xf1\x4b\xc0\xa6\xb5\xee\x79\x2b\xa1\xc0\xd9\xc2\x53\xa7\x89\x39\xe8\x6c\x0e\x09\xab\x23\x85\x71\x3f\x6c\xb8\x77\x69\x24\x01\x9d\x8a\x38\x1d\xee\x51\xc6\xf2\x1b\xef\xe5\x38\x85\x1f\xe4\x58\x04\xcb\x20\x12\x3f\xaa\x50\x10\xc9\x73\x5d\x07\x3c\x66\x91\xe0\x0b\xe1\x6e\x0c\x0b\xa5\x76\x74\xf6\x50\x25\x4c\x4e\x62\x0c\x47\xb2\xe1\x05\x03\x76\xae\x4b\x93\x78\x01\x59\xd0\xf1\xb3\xd4\x8d\x32\x6f\xde\x2b\xbc\x0c\x66\x69\x1b\xa9\x58\xb0\x99\x0a\xc9\x5d\xef\x1b\xc2\x31\xdb\xd7\xda\xc2\x1d\xc9\xcf\x6f\x7f\x6e\xa3\xb6\xeb\x03\x1d\x01\x73\x96\xba\x07\xeb\x27\x3e\x72\xc3\x64\x00\xe3\xd7\x28\xc7\xb3\x99\xe9\x07\x4e\xc5\x9c\x27\x7c\x66\x7a\xb0\x06\x8a\xb0\x24\xbe\xb4\x27\xf1\x8b\xea\x2a\xaf\xd3\xe2\xea\x1e\x71\x6a\xf4\x9d\x99\xc2\x07\xca\x6c\xc7\x96\x8d\x14\x9f\x16\x92\x28\x95\x8d\xca\x92\xe3\x5c\x3d\x34\x7c\x13\x92\xa0\xa5\x2e\x1d\x98\x1e\xad\x1b\x49\x75\x99\xe6\x13\x51\xcc\x94\x47\xda\x57\x14\xf7\x20\x96\xc4\xca\x4e\x48\xd1\xbc\xa3\x60\x56\x1a\x3b\xcb\x78\xc4\x2e\x7f\x3a\xbc\xfc\xe9\x15\x9b\x89\x60\xca\x63\xa9\x67\x38\x4a\xb8\x4a\xb8\x5b\x30\x26\xef\xc4\x82\x76\x05\x53\x35\x3f\xf7\xdc\xec\x79\x92\x8f\x8c\xae\xb5\x84\xb8\x3d\xa4\x6a\x14\xbc\xe1\xe4\x15\xff\xea\xda\xa3\x23\x13\x16\xd9\xf5\x86\x29\x93\xb8\x80\x0b\x65\x7f\x80\xc3\x80\xb1\x24\x03\x76\x6e\x57\x79\xca\xad\xab\x83\xdf\x99\xa1\x58\x9b\x86\x2f\x4e\xd2\xfd\x9d\x28\x92\xb5\x26\x22\x65\xbc\xca\x5a\x72\x0b\x26\x9d\x70\x9c\xe2\x80\x7d\xab\x12\x0c\xfb\xab\xba\x94\xdc\x72\x23\x63\x71\xab\xa3\x85\x70\x9a\x94\xa7\x92\x18\x8a\x34\x91\xe9\x34\x1b\x19\x62\x14\xaa\x40\xe7\x14\xa9\x1f\xa9\x80\x47\x7d\x5a\xd7\xc1\x34\x9d\x45\xf9\x34\xcd\xf5\xf4\x6f\xa6\x1d\x11\xde\x10\x8d\x57\x15\x25\x50\xf8\x1e\x3f\x1a\x1d\xdb\xac\x4c\x18\xda\x32\x1d\x82\x8d\x33\x08\x15\x2a\x85\x24\x8d\x8c\x12\xf9\x80\xc5\x39\x0a\x3f\x15\xb4\x34\x73\x13\xfa\xae\x53\x91\x6e\x00\xe2\xde\x4e\x99\x32\xfb\xbc\x5a\x8d\x32\x2d\x6a\xca\x80\x91\xd3\x30\x8a\x3c\x31\xc3\xb4\xd0\x29\x88\x9c\x86\x14\x72\x16\x03\xe1\xf6\x1b\x50\x14\x6a\x2c\xf0\x10\x07\x89\x30\x32\x32\xdd\x58\x78\x15\x59\x45\x10\xc0\x24\x5a\x02\xcd\x8e\x94\x11\x54\x34\xc6\x45\x65\x24\xf4\x9a\xce\xfb\xd8\x6f\x3f\x41\xd1\x9b\x27\xcc\x5c\xae\x80\x27\xae\x02\x4b\x82\x12\xf5\x07\x5f\xd0\xe2\x59\xaa\xcc\x34\x02\x8c\x11\x56\xf3\x2c\x6a\x18\x85\x85\xee\xf1\x44\x29\x4f\xb2\xb3\x9d\xce\xc1\xd2\xcf\xec\x20\x00\x5b\xc4\xf5\x34\xa5\xc8\xd3\xdc\x5f\x00\x35\x4a\x70\x69\x8a\x00\x12\xe6\x82\x48\xad\x01\x05\x5d\xda\x7a\x45\x84\xeb\x62\xfe\x11\xe4\x8e\xf4\x8c\xd2\x9a\xf1\x05\x97\x11\x84\xc0\x91\x1b\x36\x86\x3b\x46\x03\xb7\x02\xa6\x8d\xe4\x37\x42\x96\xba\x63\x22\x56\xd9\x64\x4a\x4c\x27\x75\x3c\xd0\x6d\x87\xb3\x4e\x15\xe7\xc1\x63\xf6\xee\x2e\x36\x9a\x8e\xc3\xae\xa9\x82\x2b\x05\x2a\x41\x59\x13\xb4\xb7\x38\x5f\xcd\xce\x8a\xfb\xa4\xad\xb8\x9d\xb1\xf3\x4b\x31\x76\xb6\xf4\x9c\x3a\xff\x68\xc1\xf7\x58\x32\x10\xc1\xfd\x35\x0d\x9a\x10\xca\xef\xef\x9e\x33\xe4\x65\xad\x73\x4e\xaf\xb2\xe3\x59\x46\xf6\xa5\x38\xe8\x60\x32\x0f\x60\x3a\x35\xfd\xb6\x89\x16\xca\xdb\x35\x72\xfe\xda\x7d\x30\xc2\x97\x6f\x75\xa8\x4a\x03\x2d\x58\x40\x64\x44\xbd\xd4\x70\xb4\xfb\x9c\x2b\x94\x5a\xcd\x44\xae\xea\x49\x62\xd9\x5e\x9b\xbf\xb6\x5c\xf6\x8e\x34\x97\xbc\xc6\x1d\x58\x8e\x63\xa7\xb5\x41\x35\x4a\xc7\x85\x41\x44\xce\x43\xc4\x6a\x45\xc9\xda\x9b\xd4\x02\x12\xcb\x0f\x25\xdf\x38\x82\x81\x86\xb2\xe3\x18\x86\x2d\x10\xb8\x54\x28\x2e\x5e\xaf\x99\x29\x36\xb2\xf3\x83\xb5\x76\x7c\x81\x66\x8a\xbc\xc1\xa8\x9a\x52\xdc\x15\xd6\x19\xed\xad\x05\x55\xdf\xc8\x9a\x48\xe6\x03\x23\xe1\x80\xc2\x45\xa7\x85\xe9\xa5\x06\xe7\xa4\x9f\x26\xa5\xa7\x3c\xf1\xd7\x48\xcd\x44\x1c\x44\x68\x09\x41\xcc\xbc\xd0\x70\xf3\x6f\x73\x65\xbd\xe7\xbf\x0e\xa5\x00\x60\x69\x2a\x2f\xa8\x63\x66\x01\x40\x60\xe6\xaf\x63\xa3\xc8\x5a\xfb\x56\x71\x28\xc5\xc7\xbd\x41\xf8\xcf\x9f\x1b\xad\xf3\xdf\xa6\xa2\xa0\xc6\x4a\xad\x33\xa1\x3d\x9b\x81\x7d\xbe\xd8\xbf\x19\x14\x9a\x8c\xad\x1e\x87\xe3\xb4\x17\x9a\x64\x48\x89\x25\x8d\x50\xe0\x76\xab\x9b\xaa\xe2\xd8\x1c\x87\x60\x99\xb6\x02\xc0\xc5\xeb\xdc\xdb\x50\x7a\x37\x48\xe0\x59\x1c\x8a\x44\xa7\x3c\x0e\x7b\x4c\x0c\x26\x83\x7c\x4e\x40\x34\x04\x07\x1b\x82\x5b\xa8\xf2\x2d\x72\xc1\x80\x9b\x9f\xbe\x54\xcd\x55\xa4\x26\xcb\xef\xc5\x72\x9d\xb1\xc3\x6f\x5a\xf6\x5c\x7f\x30\xdf\x91\xce\x99\xdf\x1a\x1b\xd7\x03\xdb\xc2\x3d\xe3\x2b\x10\x2b\x1e\x81\x24\x08\xb4\x90\xec\x43\xb0\xc6\x2e\x49\xd1\xd5\xc4\xb5\x6f\xc6\xd7\x58\x29\x3d\x5f\x34\xcd\xf6\x69\xd5\x02\x35\x9b\xf3\x78\x39\x08\xd4\xec\xf0\x9f\x2a\x16\x08\x06\xe8\x7f\x6b\xb4\x12\x15\x0f\xf7\x0e\xda\x0c\xcb\xed\xbb\x1b\x93\x3b\x7d\xc5\x31\x71\x50\xc9\xe0\x1a\x59\xc9\xb6\x60\xcb\x16\x1f\xe7\x0a\xf5\x34\x5d\x79\x54\xb3\x88\x8f\x44\x04\x99\x98\x46\x96\x53\x77\x71\x41\x4d\xa8\x9c\x6a\x00\x2a\x74\x9d\xa0\x29\x03\x06\x68\x58\xa2\xd5\x96\x0a\x27\x15\xb6\xa9\x14\x0f\x2a\x83\xa9\x7d\xb1\x4c\x73\x2c\xbd\x34\x91\x62\xe1\x51\x17\x6f\x24\x20\xd0\x83\x55\x7e\xc4\x83\x0f\xf6\xbc\xdb\x4d\x46\xe3\xe7\x5c\xe9\xdc\xa6\x1e\xca\x31\x28\x46\x29\xd2\x07\xf3\x84\x19\x52\xfe\x75\x61\x25\x06\x39\x78\xe7\x48\x58\x63\x57\xee\x2f\xb0\xe8\x8c\xce\x30\x49\xcf\x3e\xa9\x32\xa1\xc0\xb4\xaa\xc4\x7d\x9d\x48\xd5\x5e\x5c\x59\x1f\x4b\x64\x5b\x35\x44\x12\x79\xea\x7c\x17\x47\xf4\xb4\x35\xd0\xfb\xc4\x11\x55\x45\xe6\xdd\x44\x11\x15\xf5\x8a\x2e\x86\xe8\x77\xac\x56\x77\x31\x44\x8f\xac\x02\x3f\x54\x04\x91\x33\x38\xac\xe5\x2b\x10\x3d\xb4\x91\x0a\xdc\xc2\x22\xbe\x9e\x09\xd1\xc3\xeb\xc0\x30\xec\x2b\xfc\x0a\x18\xfe\x30\xbd\xe1\x58\x6b\x31\x40\x30\x40\x39\xed\xd8\x37\x42\x9b\x66\xf9\x88\x73\xda\x6a\x24\xad\x2c\x76\x73\xe8\x51\x0e\x32\x48\x2c\x81\x9a\x91\xd4\xb2\xa3\x12\x72\x8d\xb6\x8a\x7b\xbb\x51\xe6\x3c\x0d\xa6\xfd\x99\x48\x26\xa2\xff\x41\x2c\x41\xc1\x2c\x0a\x2e\xf5\x4f\x80\x35\x5f\x4c\x96\x68\x2d\x4b\x26\x5b\x58\x98\xec\x56\xee\x40\x22\xa2\xac\xac\x75\x60\x3e\x7e\x33\x86\xbf\x8d\x48\x38\x71\xce\x63\xac\x4f\xcc\x29\x9b\x5c\x8d\x9d\x92\x66\xbe\x46\x51\x39\xf7\xb8\xfe\x44\xce\x4c\x12\x54\xc3\x65\xcc\x67\xd6\x77\x62\xa5\x70\x11\x0e\x86\xf1\x30\xf6\xdf\x2d\xea\xb2\xa7\xfe\x52\xb1\x5d\xd8\x37\xe3\x50\x78\x10\x40\x18\x17\xb8\x22\x45\x1a\x84\xa8\xa6\xb0\xdc\xa4\x09\x21\x1a\x6d\x04\xb9\x28\x52\x77\x38\xf4\x37\x1f\xe7\x3c\x6e\x23\xd2\xd5\x3c\x62\x44\xb2\x3b\x1f\x93\xa5\x32\x62\xf3\x90\xd5\xa2\x85\x79\xac\xa1\x96\xc1\x4a\x5f\x3c\xf4\x22\xc2\x1b\x94\xf1\xcb\x93\xa9\xa9\x78\x21\x0c\xf3\x0b\xd2\x5c\x65\x49\xdd\xa3\x66\xb0\x89\x70\x3e\xe8\x35\xdb\xc6\xde\x78\x71\x7d\xe4\xc9\xb2\x02\xad\xd5\xce\x72\x45\xd7\x29\x30\x05\xc2\xa7\x07\xec\x3c\x26\x0d\x86\xa6\xb0\xbc\x16\x46\x0e\x57\xc9\x8d\x48\x66\x96\x19\xf2\x58\x93\x23\x0b\x60\xce\xf3\xde\x12\x9a\x0e\x78\xce\x8a\xba\x7e\x5b\xf0\x07\xf2\x9d\x3b\xcb\x5b\x03\xee\xc3\xb6\xc4\x29\x50\x09\x5c\xc2\xba\xe9\xdd\x4b\x3e\xec\x14\x8e\xce\xe5\xd5\xc9\xe6\xad\x2e\xe1\x17\x8c\xe4\x03\x01\xa7\xef\x60\x9c\xeb\x48\xff\xeb\x7a\x42\x5e\xc3\xb0\x2d\x25\x28\x31\xac\x44\x90\xa3\x3f\x74\x50\x5c\x10\x23\x93\x8f\x80\x8c\xb2\x3f\x0f\xf7\x12\x85\x16\x45\xad\xc6\xe9\x70\xef\x97\x01\x7b\xab\x52\x1b\x2e\x2a\x42\xd6\xb7\x21\xb7\xc8\xcb\x2f\x7f\x22\xd4\x2d\x2d\x67\xf3\x68\xc9\xc6\x5c\x46\x4c\xa2\x5f\x08\xf8\x38\x3c\xf9\x38\x06\x2c\x3f\x96\xd9\x89\x3d\xe5\xa5\xcd\xe3\x8d\x2f\xeb\xc5\x88\x8d\x86\x52\xc6\x7d\xc9\xa5\xad\xbc\xce\x4d\x49\x04\xc3\xe0\x56\xbb\x89\xe4\x5a\xb1\x44\x19\xa3\x31\x16\xab\x76\xb3\xc1\x02\xae\x4a\xf5\x97\x8b\xa0\x51\xee\x75\x6b\xf1\xa2\xf2\x81\x15\xd3\x67\x6d\x41\xa9\xd2\xf0\xb7\xb0\xc7\x27\x22\x88\xb8\x9c\xb5\xc2\xaf\x7a\x80\x93\x0f\x7c\xd2\x1b\x41\x11\xb8\xea\xb5\x80\x48\xff\x2d\x90\xa3\x60\x1c\x54\x77\xf3\xc7\x62\x8c\x55\xdd\xcc\x7e\x2a\xb7\xf7\xd6\x7b\xaa\xee\x2a\x33\x7c\x65\x46\xec\xc3\x01\xfa\xcb\x61\x78\xf2\x48\x65\x71\x38\x60\x68\x4a\x07\x9c\xad\x1e\x2b\xbc\xe4\x62\x36\x13\xa1\xa4\x04\x05\x8c\xa7\x7e\x50\xb9\xeb\xbe\x65\x69\xfc\x53\xfb\xc4\xac\x15\x05\xbd\x6c\xd7\xe6\x0a\xbf\xf3\x35\xb6\xf0\x72\xd3\x3a\x83\x78\xe1\x42\x74\x28\x53\x4f\x5c\x3e\xdd\xa8\x0a\xaa\x6f\x10\x2f\xea\xe1\x3b\x37\xcf\x14\x4e\x7c\x67\x1c\xef\x04\xf0\xce\x38\xfe\x79\xd8\xcd\x83\x58\xc8\x91\xa3\x9f\xbb\xb4\xc8\x15\x2c\xa7\xdc\x34\x07\x98\xc2\x3c\xb2\x14\x9d\xde\x2e\x41\x31\xb1\x99\xa6\x9e\xed\xdc\x50\x62\x1b\x83\x72\xe8\x2e\x62\xfe\x23\x18\xa9\x87\xf1\x30\xae\xbc\xac\x03\x69\xfa\x8d\xf2\xb5\x8e\xec\x7f\x29\x64\xff\xde\x20\x4d\xbf\x69\x6c\xa1\x32\x45\xda\x0e\x62\x28\x14\x1a\x32\x27\x91\x48\x1e\x12\x85\x24\x9a\x38\x12\x53\xbe\x90\x2a\x19\xb0\x4b\xca\x53\x71\xd1\x66\x5e\x84\x14\xc6\xd6\x35\x85\x68\x43\x56\xfb\x4e\xe7\x89\x3d\xae\xd9\xf1\x34\xd3\x76\x8a\x15\xd2\x4d\x97\xaa\x66\x56\x50\xf5\x78\x69\xd3\xec\xed\x35\xaf\x30\x10\x97\xe4\xdd\x63\x72\x20\x06\xf8\x68\x19\x14\xe0\x0b\x81\x6c\xaa\x30\xe4\x87\xe6\xf8\x6b\x14\xcd\xba\xe6\x75\xca\x66\x13\xc3\xee\xb8\xf3\x93\xe6\xce\x5b\x6b\x9d\xe5\xfd\xde\xbd\xe2\x59\xb9\x09\x9d\xf2\xd9\x49\x21\x9d\xf2\xf9\xf9\x58\xd1\xa3\x28\xa0\x98\x10\xbf\x01\x43\xa2\x0c\x7a\x2f\x8f\x27\xcf\x73\xf0\x1c\x2c\x23\xe1\x70\x87\x06\xec\x0a\x60\x47\x62\x75\x87\x96\x6f\x67\x71\x2f\x45\xbf\x38\xa0\xa2\x85\xe4\x4e\xe0\xb0\xdf\x26\x3d\x26\x63\x4a\x22\x67\x77\x02\x2e\x3a\xc6\x87\xf0\x48\xab\x22\xb0\x07\x84\xb5\xcc\x55\xa8\x07\xec\xcd\x47\x1e\xa4\x54\x7d\x67\x26\x66\x23\x4a\x69\x1f\x09\xa6\x45\x9b\xac\x59\xec\x97\x0c\xf1\xdb\x88\xb4\x36\xb8\xa1\xec\x66\x58\x2b\xcf\x96\xdf\x6c\xd3\xae\x21\x2c\xa6\x82\x25\x13\x8b\x40\x68\xcd\x93\x65\x21\x01\x65\xee\x5e\xea\x30\x22\x7c\x44\x93\xb9\x0a\x9f\x69\xbb\x74\x3e\x40\x42\xd9\x61\x31\x77\x92\x24\x6c\xa0\x97\xba\xfd\xa3\x9c\x10\x2e\x92\xf5\x4d\xb0\x8b\x34\x1f\x6a\x9a\xf0\x58\xe3\x93\xd0\x99\x76\xb5\xc8\x9a\x5e\x8d\xd9\x32\x75\xab\xb5\x9b\x6a\x26\x61\xf3\xc8\x1b\x7c\x7a\xa5\xa1\xbc\x5d\x9f\x4b\xf6\xd6\x8b\xc1\xaa\x6e\x81\xdb\xa0\xad\xdd\x38\x9b\xc7\xb7\xd5\x6a\x53\x1b\x5c\xfa\xd5\x48\x6f\x8d\x2a\x48\x5b\xe0\xb7\xb5\xee\xd2\x73\x0b\x45\xd6\x0c\x35\x5c\x04\x41\x81\x1d\x87\x7c\xbc\x29\x8f\xc3\x48\x58\x09\x95\x54\xa3\x4a\xb6\x9f\x9f\xa4\x57\x4a\xce\xdb\x32\x0f\xaf\xc5\x39\xb9\x71\x01\x66\x36\xa1\x8b\x26\x51\x25\xa2\x46\x36\xd9\x7c\x1c\xba\x4c\xdd\xdb\xd1\xac\xf5\xfc\x62\xa5\x30\x50\xe1\x10\xde\xcc\x9a\x78\xc4\xe6\x3c\xdc\x9d\x9c\xea\x7c\xeb\x76\x62\x1d\xb3\xdf\xe6\x12\x95\x95\xff\xb5\xd7\x08\x15\x77\x7b\x91\x9c\x1a\xbf\x83\x1b\xf4\x26\x49\x54\xe5\x12\x6d\xbe\xd1\xd8\xcd\xaa\xdd\xbd\x01\xd5\x4c\xa7\x4c\x98\xa6\x4c\xc4\x81\xca\x8c\x8a\x26\x42\x8b\x14\x57\x46\xcc\x83\xea\x75\x3c\x5e\x16\xe8\x37\xa4\xc4\x03\xb9\x46\x56\xdc\xce\x44\xb1\xa9\x61\xa2\x57\x39\x2e\xeb\xb4\x92\x8b\x02\x7d\xc9\x51\xc4\x74\x16\x18\x06\x3b\xce\xa2\x68\xe9\x49\x36\x8f\x34\xa3\x2d\x82\x5e\xdd\x51\xfa\xb1\x41\x27\x78\xd0\xf8\x9c\xf7\x73\xc4\xeb\xa2\x35\xa3\xe9\xf6\xfc\x5c\xd7\x82\x58\x41\x48\xeb\xcb\x82\x4c\x53\x4e\x9c\xae\x40\x31\x02\x31\xb1\xe0\x0a\x0e\x4d\x2f\x55\x46\xb3\xd3\xe6\x02\xc5\x29\xfb\x37\x2e\xd3\x6f\x55\x72\xee\x8c\x5c\x88\x91\xe7\xb0\xfc\x3e\xdf\xfe\xad\x0a\x24\x42\x4b\xdc\x13\xba\xd4\x35\xa6\xc1\xfb\x5e\xea\x07\xb6\x36\xba\x0b\xbf\x33\xca\x5f\xde\x8e\x7a\x72\x0f\xad\x72\x67\x1d\x8f\x57\x50\x4a\x4b\x60\xdc\x1a\xb4\xa0\xf7\x33\x23\xe7\x4f\xd6\x89\x16\xd7\xa9\xdb\x36\x19\xd9\x15\x6f\x1c\x48\x7e\x3b\x5e\x97\x36\x85\xf6\x97\x4c\x34\x84\xeb\x15\xa9\xc9\x44\x84\x3d\x66\xf4\x2e\xc7\xcd\x63\xe5\xe4\x7e\xa6\x45\xac\x65\x2a\x17\x05\x1d\x65\x9b\x8c\x72\x59\x95\xa1\xee\x61\xcb\xb8\x91\xe5\xc4\x94\xf2\x3d\x90\x33\xe1\xad\xd4\x1d\xd7\xfe\x6a\xad\x3c\x84\xdb\x1e\xaa\x22\x8c\xc6\xba\xc3\x55\x68\x4d\xd6\x33\xcc\x6b\x77\x16\xb2\x48\x82\x51\xab\x88\x95\xe1\xc1\x06\xb6\x38\x62\x41\x0b\x5c\xda\x1f\xf9\x47\x39\xcb\x66\x2c\xce\x40\xa9\x56\x63\x96\xc5\xf2\x1f\x59\xae\x82\xcf\x78\xcc\x27\x45\xd4\x0b\x5f\x36\x27\x2d\x3c\xd3\x45\x40\xb3\xf3\x82\xa0\x28\x35\x22\x5b\x3a\x29\x18\x71\xe6\xb2\x38\xf5\x9f\x42\xe8\x60\x57\xb3\x17\x51\xf9\xa8\xe3\x40\xf4\xe0\x64\xa6\x77\x32\x20\x8c\x59\x48\xb9\x4f\xb2\x48\x30\x3e\x9f\x47\x52\xd8\x84\x9d\xc2\xf8\xdd\xfb\x01\xad\x22\x64\x7c\xa6\xcc\xf9\xcf\xa2\x54\xce\x23\x81\x75\x25\x09\x14\xcc\x01\x48\x10\xe6\x98\xcf\xe1\x20\xc9\xdc\xba\xdb\x01\x2e\x8d\x9e\x71\x59\x1f\xf9\xfa\xb9\x60\x54\x82\x3b\xb4\x53\xcb\x62\x88\x38\xac\x40\x32\xec\xaa\x10\xe5\xc6\x27\x17\xab\xe0\x3d\xc5\xea\x58\xad\xe1\xf0\x0a\x35\x30\x3c\x40\xbc\x0b\x42\xc8\x00\x34\x3c\x43\xed\x2c\x22\x1e\xbd\xa2\x05\x28\x1e\x61\x2c\xb8\x31\xa2\x68\x53\xc0\xee\x49\x4b\x30\x79\x38\x36\xed\x63\xa6\x57\x6c\xdc\x8e\x6b\x12\x44\x42\x57\x08\xac\xf3\x62\x75\x31\x26\x9d\x77\xa7\x2b\x04\xd6\x15\x02\xfb\xdc\xc1\x3a\x25\x81\xa0\xab\x06\xd6\xba\x1a\xd8\xf6\xd5\x49\x4b\x6b\xde\xd5\x05\xfb\x7d\xb1\xe0\xa7\x57\x17\xac\xac\x15\x34\x9a\x0a\xbb\xf0\x91\xdf\x91\x80\xd1\x85\x8f\x3c\xb5\xe2\x60\x3b\x63\x39\x5d\x99\xb0\xae\x4c\x58\x57\x26\xac\x2b\x13\xd6\x95\x09\xeb\xca\x84\x75\x65\xc2\xba\x32\x61\x5d\x99\xb0\x8d\x49\xfc\x16\x65\xc2\x6a\x36\xa6\x2b\x13\xd6\x95\x09\xfb\xd2\xca\x84\x7d\x1e\x20\xee\xed\x5d\xa1\x6b\x8a\x7d\xbd\x7e\x73\x79\xf5\xe6\xd5\xf9\xcd\x9b\xd7\xac\x8f\x8c\x16\x74\x3b\x57\x3b\xca\xc3\xd3\x96\xe6\x3a\xcf\x13\x11\xd8\xcc\x3d\x7a\xdb\xe1\xe2\xf8\x90\xda\x0c\xd8\xb5\xc0\xf3\x9b\x88\x48\x70\x2d\x8c\xf8\x44\x7e\xec\xf2\x41\xf0\xaa\x4c\x75\x85\xc6\xba\x42\x63\x5d\xa1\xb1\x2f\xda\x2c\xdc\x19\x4e\xbf\x14\xc3\xe9\x6f\xa8\xd0\x58\x81\x09\x76\xd5\xc6\x36\xa8\x36\xb6\x03\x5b\xec\xef\xa7\xee\x18\x4e\xf9\xa9\x14\x1f\xeb\x0a\x8d\x75\x85\xc6\xba\x42\x63\x5d\xa1\xb1\xae\xd0\x58\x57\x68\xac\x2b\x34\xd6\x42\x48\xe9\xaa\x8d\xfd\x7e\xd4\xd0\xa7\x56\x6d\xac\x68\xa6\xeb\x22\x93\x3a\x05\xbb\x8b\x4c\x7a\x74\x3d\xf8\xe1\xe3\x92\xba\xe2\x63\x4f\xbc\xf8\x58\x9d\xd5\xa2\x25\x35\x2e\xfc\xf4\xe5\x55\x20\xc3\x95\xe9\xca\x90\x75\x65\xc8\xd2\xae\x0c\x59\x57\x86\xac\xd3\x44\x3a\x87\x58\x27\xaf\x77\x65\xc8\xba\x32\x64\x5d\x19\xb2\xae\x0c\x59\x57\x86\xac\x2b\x43\xf6\x64\xea\xc2\x3c\xa0\x09\xa3\x2b\x48\xf6\x3b\x96\x54\x9f\x68\x41\xb2\x1a\xc3\x44\x67\x3f\xef\xe4\xf1\xce\x7e\xfe\x79\xb8\xcf\x03\x1b\xd1\xbb\xfa\x64\x1d\x9b\xeb\x0c\x32\x1d\x03\xe8\xea\x93\x6d\x10\x8c\xfa\xc5\x17\x29\x6b\x98\x6c\x57\xa9\x0c\xbf\x7f\x72\x95\xca\x76\x2d\x05\x74\x35\xcb\x7e\xcf\x1c\xfb\xe9\xd6\x2c\x6b\x90\x59\x3b\xfd\xb4\x13\x4f\x3a\xfd\xf4\xf3\x71\xa6\x47\xd6\x51\xbb\x12\x66\x38\xeb\xae\x84\x59\x57\xc2\xec\xcb\x2d\x61\xb6\x42\xe1\xea\xea\x98\xe5\x9d\x74\x75\xcc\x36\xe7\x1c\x2b\x05\x84\x2f\xb4\x98\xd9\x4a\x95\xfe\x8b\xa8\x68\xe6\xcf\xb0\x2b\x6b\xd6\x95\x35\x63\xac\xe6\x65\x5d\x59\xb3\xdf\x60\x59\xb3\x5d\xdf\xec\xdf\x75\x6d\xb3\xea\x62\x76\x05\xce\xba\x02\x67\xbb\x96\xd8\xbb\x2a\x67\x5f\x74\x95\x33\x19\xfd\xa6\x6b\x9b\x19\x92\x0c\xa9\x40\xba\x6f\xae\x13\x68\xdc\xf9\xe5\x2a\x34\x30\xb7\xec\x55\xa6\x53\x35\xb3\x07\xf4\x95\x99\x5a\xfc\xda\x5d\xd5\x55\xc9\x87\x2b\x1f\xf4\xa0\x8c\xc1\x73\x92\xcd\x62\x3c\xdf\x30\x1e\x00\xc5\x63\xf3\x44\x22\x0c\x77\x8b\x5c\xc3\xc2\xbb\x57\xe6\x1b\xe6\x1f\xf1\xb2\x4d\xb3\x19\x37\x72\x0a\x0f\x21\x06\xd4\xff\xdd\xfa\x4d\x70\x7c\x5b\x50\x3c\xb7\xb3\xab\x46\x84\x8d\x08\x96\x57\xcd\x51\x9e\x63\xef\xe6\x22\x3e\xbf\xbc\xc0\xd0\xe4\x9c\x36\x92\x2d\x27\x1f\x14\x9c\xff\x67\x46\x1d\x7e\xc6\xbc\x9e\xe0\x1a\x38\x34\x95\x79\x22\x67\x3c\x59\x32\x19\x1a\x0e\x3e\x96\x80\x5f\x0e\x6b\x9e\x2a\xc6\xb5\x06\x1f\x56\x4c\x16\x77\x6d\x9b\x2d\x0d\x95\xa1\x76\xa4\xf4\x38\x92\x04\x00\x5b\x80\xcc\xe8\xd9\x8c\xa7\xd9\x08\x10\x3c\xde\x9d\x5f\x1c\xd2\xf8\xfb\x05\x27\xf0\xe1\x28\x52\xa3\xc3\x19\xd7\xa9\x48\x0e\xc9\x4e\xaa\x0f\x4f\x06\x47\x83\x59\xf8\x95\x11\x70\xfb\x60\x58\x47\x68\x0a\x60\x76\x4d\x11\xe1\xab\x56\xfd\xef\x5a\xc5\x97\x3c\x9d\xae\x59\x77\xdb\x8c\x68\x2e\xa0\x87\xb2\xff\x7d\xfd\xee\x2d\x9b\x9b\x6f\xf7\x41\x88\x41\xa1\x36\x49\xf8\xd2\xd0\x1c\x98\xc4\x41\x8e\x07\x2b\x16\x3c\xca\x40\xf8\xe5\x13\x2e\x63\x23\x77\x01\xae\x3d\x1c\x7d\xcf\x1d\xa2\xd8\x3c\x51\x61\x16\x20\x3b\x42\x17\x4a\x79\x23\xb7\x30\x58\xac\x37\x56\x80\x99\xa4\xee\x98\xc3\x0f\xd6\x2e\xb8\xf5\x08\xe6\x89\x54\x89\x4c\xd7\x05\xba\xdb\x66\x74\xc6\x89\x94\xd1\xa9\x26\x69\x26\x11\x11\x47\x19\x63\x66\x08\x2a\x8f\x03\x51\xba\x7f\x20\x76\x72\x62\x07\x00\x8e\xab\x07\xec\x07\x75\x27\x12\xa2\xbd\x14\x11\x9f\xb3\x8d\xa9\x9c\x40\xc5\x3e\x7a\xfd\x80\x21\x15\x22\xfb\x22\x89\x3f\x6a\x26\x53\x02\xe8\x05\x3e\x2b\x42\x86\x88\xdc\x3a\x10\x31\x4f\xa4\xf2\xe3\xd2\x11\x17\x89\xbb\x2e\xd9\x04\xe2\xef\x81\x01\xc6\xec\x68\x37\x84\xdd\x17\x99\xb0\xd1\x4a\xd0\x1f\x43\x20\x70\x61\x5b\xd3\x8c\x27\x74\x6f\x5b\x2a\x01\x65\xd8\x16\xe8\xaf\xee\xce\x6f\xa9\x24\xdc\x93\x2b\xc6\x8b\x8a\xc3\x7e\x1d\x3f\xb4\x8f\x78\x39\xcd\x53\x75\x87\xb8\x5f\xe8\x7a\xcf\x51\x78\xec\x92\x53\x11\x91\xab\x16\x1c\xd1\x4b\xf8\x5e\x75\x7a\x6c\x33\x8f\x1f\x9b\x51\x94\x28\x98\xbb\x59\x66\x5c\x50\x35\x03\x0a\xb9\xb9\x71\x0d\xd8\x39\x26\xfc\x92\x87\xdf\x34\x3f\x63\x7d\x76\xfb\x56\xc5\xe2\xf6\x0c\x78\x94\x7d\x3a\x41\xc5\x32\x98\xf2\x78\x42\xe5\x24\x5c\xbc\x03\x56\xed\x70\x0a\x48\xaa\x00\xfb\x39\x5e\x12\x16\x36\xc9\x60\x54\x07\xb5\x38\xc4\x81\x79\xdd\xbf\x89\xd1\x54\xa9\x0f\xb7\x67\xcc\x5c\x03\xf4\x36\x63\x06\x17\x16\x16\x51\xa0\xc0\x59\x4f\xd5\x1d\xb6\x06\xd8\x25\x8b\x04\x6b\x77\x65\xc0\xce\xf3\xda\x10\x9e\xda\x33\x8c\x19\x08\x81\x42\x84\x04\x3e\x8f\xbe\xee\xb9\xa7\x5e\xb9\xf2\x12\x66\x4d\x07\x60\x4b\x4d\x16\xe2\x7d\xfc\x21\x56\x77\xf1\xb7\xe8\x56\x41\x89\x96\x8a\x44\x98\x59\x43\x5b\xef\xfd\xde\xe0\xca\xce\xaf\xd6\xe4\x99\xfa\xd8\x54\xe7\xda\xf0\x2e\xd0\xa2\x7b\x97\x60\x95\x52\x66\xe7\x55\x3d\xf5\xd6\x4d\x96\x2f\x82\xdd\xa1\x01\x73\x85\x6d\x00\x00\xff\xd6\x9e\xda\x5b\xaf\xae\x83\xdb\xfc\x6d\x42\xa0\xec\x65\xf9\x1c\xd4\x63\x0b\x69\xda\x93\xa3\x0b\x8e\x5d\x2f\x00\xa3\x60\xac\x47\x70\x33\x57\x42\xd8\x5c\x0e\x1a\x24\x63\x17\xa9\x46\x69\xc0\xe2\x2c\x5a\x6c\x72\x14\x26\x87\xd9\xd1\xd1\x69\x30\x80\xe3\x09\x85\x2e\xcc\x67\x31\xf0\xbf\x06\xff\x39\x7d\xdf\x45\x37\x3d\xe5\xe8\xa6\x2e\xe0\xe7\x4b\x09\xf8\xf1\xe2\x91\x6b\x5f\xb9\x4d\xc4\xef\x8e\xa8\x58\x3b\x50\xe4\x12\xfd\x87\x5a\x18\x86\x59\x73\xeb\x76\xcc\x65\x0f\xc3\xb6\xe7\x73\xc1\x1b\x64\xe4\xed\x22\x7e\x77\x35\xd9\xf5\x71\xc1\xe4\x28\x2c\x3a\xc1\x79\x90\x66\x3c\x02\x27\x62\x0e\x8a\xdb\xc4\x16\x36\xe7\x67\x8f\x1c\xd2\x5b\x5c\xae\x95\xf0\x58\x4d\x73\x6c\x0e\xa1\x6a\x1f\x3d\xb5\xa3\x3d\x7d\xa5\xe2\x70\x5b\x7e\xec\x9e\xcd\x63\x6a\x48\x21\xca\xb5\xed\x2c\x01\xa1\x3e\x70\x4d\x2d\x07\x9b\xab\x36\x09\x3d\x11\xd7\xe9\x4d\xc2\xc1\x26\xaf\xe2\x9b\x47\x36\xaa\x57\xdf\x8e\x0e\xa7\xd4\x1a\xdb\xf3\x69\xa5\xae\x99\x11\x95\x0d\xc9\x57\xb1\xf3\x9b\x83\x2c\x0e\x62\x7d\x83\xb3\xb7\x9d\x67\x84\x5a\x79\x36\x8e\xbe\xb3\x71\xb8\xdf\xf0\xe6\xe5\x1e\x14\x4d\xd8\x67\x38\x70\x37\xca\xad\xd2\xfd\xb9\x5e\x2b\xc8\x60\x23\x1c\x22\x5a\xa4\x7b\x66\x25\xfa\x77\x2a\x09\x7b\x39\x0f\x63\xd4\x2e\xb7\xca\xd0\x42\x3e\xd3\x3b\x18\x69\x3d\x95\x6c\x20\x55\xe5\x08\x87\xc2\x70\x80\x19\x1b\x4e\x7c\x03\x35\xe5\xbe\x45\x1d\x86\xd4\x9b\x6d\xdc\x42\xed\x6d\x1c\x65\xac\x06\x6f\x4c\x37\x60\x80\x90\x71\x10\x65\xa1\x60\x6f\x74\xca\xa1\x9a\x90\x08\x7b\x0c\x8a\xac\x9d\x07\x81\x98\xa7\xe4\x6f\xb8\x01\x8c\x5d\x5e\x34\x2e\xaf\x1e\x70\x4b\xca\x5b\xb6\x4b\xd0\xb2\x7f\x5e\xbd\x62\x1d\x1a\xed\x8a\xc7\x8a\xb8\x7c\x8d\x5a\x48\x97\xdc\xf0\x5b\x10\xff\xdb\x23\xd5\x62\x49\xb4\x38\x94\x0b\x19\x1a\x39\x65\xdd\xc6\xef\x24\xd9\x61\x57\x5a\xb4\xf7\xd6\x2e\x25\xe2\x77\xab\x21\xb9\x94\x88\x8d\x69\xf8\xa3\xe7\x1d\xdc\x5f\x7c\x5e\x93\x85\xf0\xe8\x22\x34\xb0\xdc\x2d\x58\x0e\x3c\x57\x13\x2f\x0c\x74\x19\x46\x43\x15\x1e\xd7\xa9\x11\xcd\x81\x10\x3c\x15\x13\x95\xac\x87\xa4\xcc\x1b\x16\x79\x20\xec\x9a\x08\x7d\xfd\x14\x5c\x2b\x25\x9f\xdf\x48\x44\x2a\x9e\xc0\xb8\xb1\xf4\xc1\x33\x1e\x45\xcf\x0e\xf2\x28\xe6\x79\x46\x02\x0a\x93\x31\x58\xe4\x42\xa9\x03\xb5\x10\xc9\x92\x85\x2a\xc8\x20\x87\x0c\x19\x0e\xc4\x3d\x8c\x96\xce\x3d\x0b\xc1\x71\x08\xb1\x2f\xe3\x85\x22\xcc\x4a\x06\x05\x8b\x6f\xcd\x59\x0c\xd2\x08\xeb\x2a\x46\xd1\xed\xa3\xa3\x93\xb5\xa0\xa0\x1f\x88\x82\x82\x90\x29\x12\x5b\xd0\xc1\xd6\xf2\xf4\xb5\x7f\x5b\xb5\x20\x56\xc9\x0c\x80\xb2\x72\x71\x19\xac\xe6\x32\x9e\x64\x11\x4f\x06\x74\x22\xf2\xf5\x07\xb8\xdf\x38\x10\x84\xe0\xe6\x0a\x2d\x20\xb1\xa6\x12\x77\xb7\xe6\x95\xb7\x8c\xa7\x48\xf0\x84\xdd\x0a\x8c\x2c\xdc\x9c\x8c\x99\x33\xf2\xfd\xfa\xf9\xdb\x66\x6b\xd6\x00\x4e\x9c\x73\x31\xe4\x2b\xe2\x43\x7a\x0d\xf7\x70\x0e\x86\x00\x0c\xf7\xb6\x71\xe1\x46\x59\xc2\xa3\x75\x0e\x5c\x68\x64\x87\x4b\x9f\xfc\x38\x7e\xdf\xd5\x0d\xd7\x14\xe3\x12\x6a\xdd\x48\xf0\x7b\x88\xc5\x41\xd8\xad\x61\x25\xfa\x10\xcd\xc9\x9e\x21\x99\xbe\x21\x2a\x46\xdf\x0d\x06\x03\xfa\x1e\x87\x80\x5f\xdf\x0e\xd8\x8f\x99\x4e\xd9\x8c\xa7\x04\xb8\x51\xa8\x34\xd4\x24\xb9\xec\x7b\x76\x6e\x76\x8b\xdd\x02\xa9\x19\xf8\x9d\x0f\x2a\x23\xbb\x3d\xa0\xf7\x8d\x04\x64\xf6\x44\xea\x4e\x24\x81\xe1\xb0\x5b\x28\x65\x53\x95\xa4\x65\x5a\x59\xb7\x01\x79\x43\x5c\x42\xf3\x91\x08\xa3\x55\x17\xed\x22\xf7\x9c\xb5\xff\xc1\xe8\x0a\xae\x09\x0c\x22\x77\x09\xdc\xc2\x55\x9d\xb5\x58\x99\x87\xa7\x41\x96\x2c\xac\x5b\x55\x6a\xe6\xee\xa1\xfd\x5c\x77\xb4\x57\x4c\xaf\x70\x23\xdd\xd7\x21\x91\x97\x5d\x23\xc7\xe1\x85\x2d\x53\xdc\xcf\xab\x61\xae\x03\xa2\x5f\xf1\x58\xc9\x12\xcc\x4b\x76\x60\x99\x14\x88\x0b\x19\x82\x5b\xc4\x3b\xd6\xb8\xe4\xd9\x83\x6b\x21\x2d\x9d\xa0\x81\xef\xfd\x47\xdd\xd6\xfb\x4a\x8b\xd4\x28\x11\xf9\xd5\x7e\x75\xf5\xba\xc1\x48\x66\x45\xc8\x55\xa7\x1c\x8b\xef\xd2\x11\x37\x04\x01\xbf\x70\x78\x1c\x98\x60\x58\x71\xa7\xdf\x93\x7e\x0f\x06\x83\xc7\x27\xcc\xdb\xc5\x50\x7d\x2e\xdf\x01\x12\xfe\x55\xe7\x04\x29\x3c\x86\x66\x2c\x8b\x8c\xd6\x10\x70\x10\x16\x8a\x5c\xa0\xbc\x8d\x4d\x71\x5b\x35\x31\x09\x6b\x83\xb8\xea\xe2\x18\x7c\x51\x9d\xa7\xae\x0a\x31\xfe\x88\x71\x72\x88\x5a\x95\x7a\x48\x57\xb4\xc1\x36\x5c\x89\x0c\x39\x3e\xfa\xa7\xa0\x43\x06\xee\x7e\x4a\xc9\x24\x14\x7d\x1b\x73\xed\x85\x8d\xf4\x60\x25\x7a\x79\x4a\x3b\x2c\x8e\x19\xa5\x1d\x09\x55\x41\xcf\x1b\x24\x86\x86\xdf\xf1\xa5\xce\x5f\x56\xce\x57\xf5\x0a\x53\xcb\x98\x8d\xf9\x42\x41\x74\x2f\xdd\x4e\x76\xfb\xb1\x6f\x1f\xed\x67\xb8\x26\x7d\x7c\xdb\x2d\x18\x91\x92\x0c\xc4\xc9\x5b\x70\x91\xdb\x40\x99\x9f\xff\xf8\xcb\x00\xa7\x3b\x50\x38\xfb\x9f\x4e\xaf\xe1\xf3\x6d\x31\x2a\x2b\x57\x29\x5d\x71\xf2\x94\xeb\x0f\xfa\x90\x43\x3e\x8e\xaf\x72\xf2\xb9\x3c\xc4\x6d\xef\xbb\x8b\x5a\xfe\xa2\xef\x1f\xe4\xaf\xe6\x49\x16\xcb\x78\x02\x6a\x6a\xa6\xed\x34\xcc\x37\xc5\x89\xb4\x88\xe7\x5a\x99\xc0\xa4\x03\xb5\xd6\xb4\x0b\x6d\xbc\x63\xe4\x57\x26\x68\xa0\x4d\x10\x1c\x8e\xe5\xe8\xfa\x4c\x21\xb7\x86\x90\xbd\x3e\x74\x16\xd6\x45\x23\xb1\xdb\x57\xf8\xc4\x2d\x1c\x8e\xdb\xb7\x0e\x42\xad\x35\x7f\xf6\x26\x66\xb7\x73\xcd\xdc\x5c\xd8\x56\x09\x2b\xc4\x48\x0f\xe6\xe0\xfb\x61\x5d\x2b\x69\xb1\x35\x84\xc6\x4e\x02\x04\xd9\x0d\x6b\x44\xce\x33\x2a\x05\xae\x92\x10\x92\x6d\xe9\xde\xd1\x15\x72\x2f\x31\x8f\x99\x11\xd4\x48\x86\xae\xae\xb7\x63\x41\x68\xd9\x92\x9a\x0d\xf7\xcc\x51\xeb\x1b\x21\x70\xb8\x07\x75\xeb\x10\x11\xdb\x48\x89\x7c\xa4\x16\x80\x48\x57\x6c\x55\xea\x45\xf7\x3c\x42\x00\x63\x14\x21\x8b\xc4\x47\x19\xa8\x49\xc2\xe7\x53\x44\x40\x1e\xb0\xe1\xde\xf7\xd5\x3e\x34\xd3\x29\x4f\x52\x8a\xc3\x65\xc3\xbd\x85\x19\x05\x84\xdf\x73\xa8\x6c\x49\x3b\x0d\xf9\xf1\x14\x82\xbf\x6f\x66\x32\xe3\x7f\x57\x89\xed\xe5\x80\x1e\xb1\xd1\xd5\xd1\x92\x1c\x1c\x30\xcb\xe1\x1e\xa4\xa6\x0f\xf7\xcc\x61\x1a\xee\x8d\x44\x6a\xfe\x36\xc7\x84\x3c\x54\xc5\x8e\x65\xec\x75\x0c\x7c\x52\x63\x9d\x73\x8d\x89\x00\x63\x99\x68\xc8\x98\xfa\xee\x1c\x25\x65\xc1\x4c\x97\xf6\x6f\x78\x17\xdb\xc7\xa2\x16\xdf\x9d\xa3\x71\xc1\x05\x3c\x99\x69\xc6\x46\x0e\x1f\x8f\xe5\x47\xa6\x21\xfe\x4d\xe3\xf3\x2a\xc1\x67\x0f\x50\x7a\x87\x09\x8d\x96\x14\x15\x8b\xf9\x3c\xde\x94\x69\xc6\x85\xd1\x62\x59\x0b\xac\xfe\x69\x47\x6b\xcf\xa4\x5d\xef\x33\xb6\x38\x3e\xea\xb1\xc5\x49\x8f\x2d\x8e\xcd\xff\x21\xb5\x05\x3e\x1d\x99\xbf\x4e\x7b\x6c\x71\x0a\xd9\x2e\xe6\xab\x13\x18\x11\xb6\x83\x3f\x4f\x7a\x6c\xac\xd4\x31\xfe\x5b\x8e\x87\xfd\xbc\x76\x61\xeb\x76\xd8\x58\xb1\x68\x29\x98\xa3\x2c\x56\x91\x2d\x2a\xf4\xb0\x8e\x8e\x7c\x66\xe9\x7d\x5d\x26\xf4\xea\x07\x4b\xf6\xba\x76\x31\x0d\xeb\x1d\x45\xe4\xb0\xab\x55\x8f\x9f\x8c\x84\x56\x18\x25\xb3\x25\x78\xc9\x64\xe9\xea\x2a\x43\xb0\x07\x64\x53\x9a\x7b\x6a\x69\x37\xda\x33\x3d\x22\x7c\x33\x15\x4b\x1b\x96\xee\x95\xe0\x9c\xf2\xd8\xeb\x55\x62\xee\x4c\x83\x64\xe7\x3c\xa2\x6b\xcd\x9b\xae\xa1\xdb\x3e\xda\x39\xc3\xf4\xe7\x3c\x49\x65\x00\xba\x30\x37\x6f\x4b\x6d\xe8\x71\xab\xf0\x8d\xcf\x7b\xcf\xf3\xf0\x8d\x7b\x99\x10\x52\x95\x88\xf0\xa7\x76\x8c\xbe\xd8\x18\x68\x2a\xc2\xbe\xf8\x1c\xbe\x38\x5e\x3a\x1e\x77\x86\x0b\x08\xa8\x0e\x4d\xc0\x23\x46\x0e\x4d\x78\xf0\x81\xdc\x48\x5a\x78\x1c\xdc\x30\x3b\xc3\x2e\x66\x0e\x0b\x05\x52\x55\x20\x71\x0a\x86\x90\xb7\x95\x31\xd4\x9b\x42\x3d\xce\xc9\xb4\xb3\x0c\x8b\x83\x6b\x55\xe8\x05\x5c\x3e\x2a\x8a\x08\x6d\xc7\xac\xa4\x9e\x16\x5a\xe4\xe1\x1a\x8e\x57\xed\x8b\x58\x63\xc2\x69\xac\x98\x8a\xc2\x02\x4c\x6d\x24\xc6\x90\x52\x44\xd2\xba\xcf\xb3\x12\x31\x53\x0b\x61\xb5\x19\x57\x6c\xc3\x8d\x9c\x5c\x5f\x54\x14\xd7\x09\x3f\xe8\x22\x23\x17\x17\xf6\x41\x51\x25\x45\x11\xfb\xd6\x48\x1b\x08\xe6\xbf\xc4\x4a\x71\xa8\x6f\xd8\xfe\x1e\xc5\x16\x55\x61\x19\x8f\x4a\xcf\xab\x0e\xf6\xb6\x04\xfd\xa7\x4a\x4e\x42\x2e\x9b\x98\x53\x06\x96\x88\xf5\xa4\xdb\x83\x25\x00\x0f\x3a\xe5\xdd\xac\xb9\x45\x4d\x8f\xf9\xb9\x82\x79\x50\x7e\x40\x3f\x3a\x84\x01\x19\xb3\x1b\x38\xdc\x2a\x4b\xe7\x59\xba\x56\x9f\x82\x9a\xe0\x22\x0e\xc4\x21\x94\x01\x07\x3d\x8a\xfc\x9a\x86\xa6\xeb\xc3\xaf\x12\x11\x08\x09\x7a\x91\x53\xac\xfa\x5c\xf7\x53\x2c\xd6\xee\x2b\x47\x46\x7e\x8e\x95\x1b\x13\x48\x83\x56\xdd\xed\x41\x76\x59\x3c\x89\x6c\xa2\x95\x21\xf9\xf3\x88\x2f\x1d\x0e\xc1\x24\x0f\x68\xa9\x6a\x3a\x50\xcc\xe2\xf3\xd3\xd7\x4a\xe6\xe7\x7d\x88\xeb\x06\x99\x6b\xbe\x56\x62\xbe\xa3\x5a\x3e\xff\xf3\xdf\xff\x77\x71\xfc\x3f\xff\xfd\xff\x7a\xf0\xd7\x09\x08\xa4\xf0\x51\xa4\x41\x5b\xdb\x15\xfa\x83\x6c\xe6\x49\xba\xb1\x2f\xe2\x96\xc9\x31\xbb\xc5\x2e\x21\x13\xc1\xe8\xfc\xdb\x78\x01\xc0\x00\xf0\xa8\x22\xce\x4f\x58\xf2\x68\x9d\x9d\x92\x2c\x33\xc5\xaa\x8b\xf4\x25\x48\x31\xe6\x0e\x2c\x5c\x5f\x3d\x46\x96\x05\xa4\xf6\x21\x5a\xc5\x29\x57\xbd\xb0\xda\xf5\xc7\xbd\x09\xd2\x17\x56\x78\x1d\x0b\xc6\x9d\x05\x6d\x6a\x1c\xf1\x09\xc2\x87\xc9\x78\x72\x18\x4a\x8d\x7f\x15\x87\x00\xac\x03\x05\x32\xab\x29\x4b\x8e\x41\x1b\xe7\x97\x17\x0d\x31\x0c\xab\xcd\x1d\xc8\xeb\x5a\xc8\x0a\x5e\x54\xa2\xf5\x1f\x3b\x9d\xd9\x59\xc1\x60\x81\xcb\x06\xb0\xca\xa9\xf6\x2d\x62\x37\xa0\x53\x5a\x1f\x85\xf0\xa0\xf4\x0a\xfa\x25\xb5\xff\xd7\x15\xc7\x75\xf5\x3c\xb3\x51\x52\x03\x6f\xf0\xf0\xa7\xf6\xda\x7f\xf1\xca\x73\xeb\x35\x74\xe6\xd3\x3b\xc8\x89\xf1\x7f\xa9\x3b\x92\x4d\x36\xa7\x29\x5f\x88\x2d\x32\x8b\xca\x79\x8b\x74\x96\x6b\x4e\xcd\xe7\x50\x01\xbd\x05\xbd\x0e\x78\xb4\x0a\x57\x72\xf5\x83\xce\x8d\x41\xc9\x5c\x36\x54\xc3\x50\x0b\xf3\xb3\xb7\xec\x28\x47\x14\x65\xe1\x56\x51\xcf\x23\x11\xd9\x2a\x95\x2d\xb2\xbb\x2b\xed\x0b\x51\x84\x79\x9a\x37\x59\x86\x41\xbb\xa9\xe4\x6d\x03\xaa\x85\x4a\x12\xa1\xe7\x2a\xc6\xac\x3d\x9c\xee\x2d\xc6\x75\x0e\x34\xbd\xe0\x76\xc0\xde\xc5\xd1\x32\xef\x57\xc3\x55\xb3\x05\x96\x8b\x09\xe4\x64\x7d\x06\xc3\x95\xe7\x4b\xc6\x87\x61\xa8\xe4\x5b\x19\xe0\x5b\x6e\x99\x82\x0f\x73\x11\xdc\xe6\xed\x29\xed\xed\x4e\x25\x1f\xf0\x5a\xff\x4d\x25\xf2\x9f\x2a\x4e\x79\x74\xa9\xc2\xf3\x2c\x55\xb0\xf4\x89\xaf\x01\x40\x24\x99\x05\xf0\x90\xda\x5b\x06\xe7\xd8\xb4\x46\x31\x7c\x60\xdf\xc8\xdb\x9c\x00\x7f\x3e\x32\x3b\x5d\xd3\x28\x0b\x52\x9b\x09\x9f\x23\x5d\xfa\xa1\x0c\xb0\x03\xf9\x23\xd2\x59\x15\xc7\x2a\x99\xd5\x86\xa3\x3d\xa0\xd1\xfb\x2b\x58\x8c\xbe\x7f\x0e\xd1\xe4\xe9\x8a\xb7\x62\x60\x88\x95\x0c\x6c\xaa\x37\x9d\x91\x3a\x6e\xd5\xc3\x10\x92\xf2\x49\xa0\x8e\xe8\x99\xdb\x43\x78\xf1\x6d\xe1\x06\x80\x05\x95\xb8\xa3\x0d\x38\xc5\x6a\xb3\xb8\x42\xdb\xc8\x10\x73\x11\x5c\x89\x79\x24\x03\xae\x5b\xdc\x8e\x72\xf3\x1d\x5f\x0e\xa3\x8f\x25\xd4\xfd\x43\x5d\x0d\xbc\x0d\x3b\xda\xc4\xc6\x5d\x42\xed\x22\xc7\x7d\x52\x31\xfb\xee\xcd\xcd\xd6\xf1\xf7\x9b\x6c\x51\xe5\x81\x07\xa1\x60\x0f\xbd\x4d\x48\xc1\x76\xb6\x51\xe5\x51\x6f\x71\xdb\xca\x56\xe9\xfb\x06\x64\x54\xae\xde\xea\x5d\xff\xdc\x7c\x7e\x33\x5b\x6f\xe5\xc9\x15\x9c\x1e\x7f\x5f\xc7\xea\x59\x0e\xa3\xe9\xe2\xa0\x73\x4c\xa9\x9c\xe7\xd5\x1f\xf0\x62\x6f\x03\x2c\x08\x09\xe5\x20\xff\x48\x71\x4f\x86\x0b\x1d\x36\x8c\xa5\x4e\xc5\xfe\x23\xbb\x7c\x7f\xe3\x87\x52\x43\xab\xba\x1e\x52\xfe\x41\xd4\xdc\x31\xdc\x37\x54\x79\xe4\x24\x36\x6c\x0d\xc1\x0d\x28\xc9\x69\x99\x4e\x0d\xd7\x13\x1f\x03\x31\x4f\x0b\x2b\x95\xf2\xf8\x9f\x1c\x07\x70\x78\xf9\xee\xfa\xe6\xf0\xf2\xfc\xe6\xd5\xdf\x2a\x63\xa9\x18\x05\x2a\x2f\xa9\x74\xba\xf7\x99\x4e\xd7\x56\x07\x4b\x17\x08\x1b\xcd\x03\xa2\x3b\xcb\xb2\xa3\xde\x52\x78\xd4\x25\xe1\x96\x3d\xa6\xaa\x82\x92\xf5\x6a\x35\xdb\xcc\xb3\xe8\x45\x29\x6f\x3a\xe9\x85\x78\xdd\x78\x3d\xa5\x03\x6a\x8f\x1c\x0b\xf0\x60\x6e\x39\x49\x81\x46\x0d\x5e\x1c\xdf\x12\xe9\xa7\xa4\x98\x27\x93\x4d\x5b\xa5\x4e\x1b\xa7\xd3\xae\x5f\x2d\xa2\x2a\xde\x72\x11\xf1\x20\x98\xf1\x33\x76\x3c\x58\x7b\xf3\x2c\x8e\x96\x4b\xca\xa8\xbf\x8a\xb7\xee\x6d\x78\xc3\x49\xb5\xb4\xc9\x48\x27\xeb\x5f\x54\x3b\xe0\x55\xd4\x45\x51\xd0\x04\xb9\x8a\x56\x8f\xe0\x33\x1b\xaa\x3d\xe3\x53\x5b\x6a\x91\x3f\x52\x0c\xc6\xcf\x6d\x4f\x6c\x26\xd2\xa9\x0a\xb7\xa5\x10\xa5\x68\x9c\x07\x3e\xff\x86\xb7\xe1\x8b\x2e\x13\x35\x5f\x7d\xde\x4b\x23\xb3\x36\x51\x1b\x3c\xb5\x38\xb5\x06\xb9\x54\x41\x94\x7b\xd1\x24\x07\x74\x94\xac\x72\x8f\xbf\xef\x6f\x08\x6a\xe7\x35\x05\x1e\xaf\xdb\xf4\xda\xf6\xd6\xed\x65\xed\xf5\x80\xb5\xea\xc1\xf8\x14\x38\x3c\xbc\x3f\x14\xa1\x8b\x75\x6e\x0b\xc4\xba\x02\x41\xb0\x8d\x78\x9f\x25\x95\x18\xfa\x5d\xd7\x07\xd8\xe2\x8c\xad\x58\x6a\x10\xaf\x7c\xf0\x98\x78\x89\xc7\x06\x05\x2f\x10\xab\x6d\x70\x0b\x82\x7b\x81\xfd\xdc\xc2\x5d\x9e\xb1\x91\x52\x51\x8f\xc9\x38\x7d\xf9\xbc\xc7\xc6\x91\xe2\xf0\x07\x4e\xb6\xc7\x7e\xfe\x05\x3c\x38\x63\x1e\x88\xff\xfa\xb5\xc7\x66\x7c\xfe\x33\xfe\xe4\x7f\x0f\x87\x33\x96\xd1\x60\x87\x53\xf6\xaf\xd5\xea\xd9\x7b\x2d\x91\xa8\x98\x2f\xfb\x74\xcb\x30\xb0\xc8\x1c\xb5\x62\x15\xbb\xd7\x09\x1f\xa7\xec\x39\xdb\x9f\xa6\xe9\xfc\xec\xf0\xf0\xef\x5a\xc5\x7d\x1b\xd1\x97\x4c\x0e\x0f\x5a\x1c\x35\x22\x26\x1b\x9f\xb1\x3f\xd4\x3b\x0a\xda\x3c\x9a\xfb\xcd\x2e\xea\x72\x40\x1f\x96\xbc\xbd\x4b\xfe\xaa\x54\xb4\x6e\x60\x8d\x08\xe6\x9f\x73\x74\x51\xf4\xae\xb2\x55\x8f\xe3\x7d\x2b\x9f\xe5\xfb\xb8\xdb\x78\xbc\xfc\x12\xa6\x41\x3a\xfc\x23\x1c\x8f\x95\x0c\xd9\x9a\x12\x80\x66\xd8\x0f\x39\xa6\x67\x16\x5b\x17\x42\x21\x18\xda\x25\x89\x50\x5c\x25\xc7\xa0\x3e\xaa\x65\xe3\x59\x42\x2a\xae\x79\xfb\x90\x6d\x3a\xe1\xa9\x28\xf4\xb6\x21\xde\x5c\x83\xe0\xef\x2d\xde\x76\x65\x06\x3e\xf7\xc9\x59\x8d\xc5\x3f\x37\x62\x41\x1c\xd4\x90\x97\xa7\x30\xbb\x77\x09\x42\xbc\x9f\x17\x4f\xff\x76\x53\xbd\x97\x20\x23\xe2\x6c\xf6\xf9\x48\xc5\xbd\xe8\x03\x45\xb6\x3e\x06\x7d\x68\x78\x7f\x10\x65\x5a\x2e\x04\x01\xa9\x37\x2d\xff\x4a\xe7\x6a\xde\x89\x8c\xef\xd1\x89\x93\xa3\x1f\x9a\x9b\xd6\x8b\xf8\xb5\xa3\xda\x1c\x0d\xdb\x53\x72\xe8\x7b\x72\x90\x58\xb8\x19\xfa\x1a\x85\x53\x54\x8f\x6d\xc8\x9b\x13\xe0\xfc\x26\xa4\x18\x89\xf0\x6c\x18\x0f\xe3\x3e\x1b\x69\x15\xe3\x65\x92\xe1\x99\xa1\xc9\xda\x61\x5a\xb0\x8b\xd7\x54\xc8\x82\xb3\x93\xe7\x46\xe9\x4e\x78\x90\x8a\x44\xb3\xa9\xf8\x68\x5d\x59\x7d\x96\x25\xf2\xcc\x0c\xf5\xfd\xd5\x05\xe3\x9a\xcd\x79\x42\x59\x95\xdf\xa9\x88\xc7\x13\x16\x8b\xf4\x30\x4b\xa2\xc1\xa5\xf9\xe1\x0a\xd5\x7e\xd3\xb6\xcf\xc4\x8c\xcb\x08\x9e\x85\xbf\x18\x0f\xc3\x44\x68\xdd\xd8\x8b\x69\x84\xdd\x9c\x53\xcb\x3e\x9b\x2a\x0d\x29\x98\x66\xec\x28\xbd\x97\x60\x50\x00\x07\x3f\x66\x17\x80\x63\x22\x52\x78\x80\xe2\x68\xb8\xf6\xab\xcb\x5d\x7d\xfb\x8a\x1d\x1f\x9d\x1a\x11\x9e\x8a\xd8\x9e\x0e\x8e\xd9\xcf\x57\xdf\xbe\x32\xdf\xfe\x32\x60\x7d\x26\xe7\x8b\xe7\x30\xde\x8b\xcb\xc5\x73\x76\x71\xd9\x34\x52\x1c\xe4\xc5\x25\x3e\xf2\xd2\x3e\xf2\xb2\xdd\x23\x81\x0c\x13\x33\x9d\x57\x17\xaf\xaf\x56\x37\x87\x16\x7d\x36\xe3\x81\x69\xff\xe3\xf9\xab\x75\x4b\x88\x8f\x99\x86\x7d\x96\x65\xb0\xe3\x31\x7b\xff\xfe\xe2\x35\x85\xea\xa2\x9e\x99\xcd\xe7\x98\xc0\xe9\x2f\x0f\x46\x2b\x4e\xc4\x47\xb6\xff\x8d\x3c\xf8\xcf\x9f\x8f\xfa\x5f\xf3\xfe\xf8\x97\xff\xfa\xf3\xaf\xfd\x6f\xdc\x87\xe7\xed\x3e\x1c\x9f\xfc\xfa\x07\x1a\xc1\xa9\x1b\xc2\xe9\x0e\xc7\x70\xea\x3e\x9d\xb6\x19\xc4\x73\x37\x88\xe7\x3b\x1c\xc4\xf3\xe2\x20\xfe\xfc\x35\x1f\xfd\x52\x3f\x2e\x6f\x28\x2f\xdc\x50\x5e\xec\x70\x28\x2f\x36\x1d\x8a\xd4\xa3\x18\x8f\xed\xf5\x5f\xdf\x1e\x1f\x31\x95\xe0\x5f\xa7\x36\x13\x84\xae\x3f\xa4\x46\x0f\xf7\x8e\x4e\x4f\x8e\xff\xf4\xe2\xf8\xe8\xf9\xa9\xcd\x21\xf9\xfa\x4f\x7f\xee\xbb\x6f\x8f\x87\x7b\xd4\xe7\xf1\x91\xdf\xeb\xfa\xbe\xe8\xa9\xd3\xfc\xa9\x86\x11\xd4\xbc\x2f\x48\x44\x28\xd3\x80\x27\x40\xd8\xf0\x13\x33\x1f\x6d\x0f\xb5\x2b\xf9\x9f\xfb\xdf\x9c\xc1\xce\xc1\x5a\xec\x7f\x73\x86\x7f\x9f\xfe\x7a\xf0\xcd\xa7\x17\x3f\x1f\xf7\x5f\xfc\x42\x3f\x3e\xff\xf5\xd3\xcb\xfd\x6f\xce\x8e\x8e\x8f\x3f\xc1\xf2\xe2\xf7\x07\xee\xd1\x4f\xa7\x3f\x3f\xff\x93\x6d\x7c\xfa\xeb\xa7\x53\xd3\xf8\xe7\xa3\xfe\x8b\x5f\x3e\xfd\xfc\xf2\xcf\xc5\xd6\xc7\xbf\x7e\xda\xff\xe6\xec\xe4\xf8\xf4\xf8\xd3\xf1\x9f\x8f\x8e\x3e\x9d\xbe\x18\x0e\x43\xf3\x4e\xf3\x9f\xe3\xe3\x5f\x0f\xfe\x90\x17\x97\x8a\x55\xcc\x42\x39\x31\x73\xc9\x29\xf2\x4c\x7e\xc4\x00\xd0\x3e\xd3\xda\xec\x1c\x7b\x3f\xb8\x1e\x30\xad\x02\xc9\x23\x43\xd0\x32\x00\x6b\xa7\x89\xe7\xac\xc1\x9b\x37\xbe\xf1\xe7\x3e\xfb\xe5\x1b\xf3\xe7\x49\xfe\xe7\x73\x38\x12\x53\xf1\x31\x50\x91\x4a\x60\x2b\xa6\xe2\x23\x0f\x45\x20\x67\x18\x87\xaa\x12\x16\xa8\x50\xd8\xcd\xf8\xea\x5b\xf8\xdf\x59\xfd\x8b\xbe\xfa\x66\x9f\x8e\xdb\x79\xff\x5b\xb3\xb2\x9f\xfc\x8f\x2f\xcd\x64\xfb\x2c\x99\x8c\xf2\xb7\x5d\x7d\xf7\xd7\xca\x5b\x92\xc9\xc8\xbe\x2e\x99\x8c\xf6\x4f\x5e\xbc\xe8\xd1\xff\xbf\x86\xdd\x1f\x2d\x53\x71\xc6\x46\x5c\x8b\x97\xcf\xa1\xea\x4d\x68\x76\x5a\xc6\x3c\x59\x32\xc8\x80\xec\x43\xb1\xad\x3b\x05\xc7\x23\x5e\x3a\xe0\x09\xc7\xd8\x0c\x9b\x34\x2b\x19\x62\x66\x80\x7f\xda\x4e\x8e\x8e\x5e\xf6\x8f\x8e\xfb\x47\x27\xc3\xbd\x12\x1b\x19\x67\x51\xd4\x87\x47\x64\x6c\x78\xca\xe9\xe9\xe9\xd7\xa6\xb3\x0c\xe3\xc8\xa1\x43\xfa\xbb\xdc\xe9\x09\x8b\x35\xf6\x57\xa1\xdd\xa9\x9c\x09\x24\xde\xaf\xed\xc3\xb0\x1a\xb3\x39\x4f\xe5\x28\x12\x78\x3c\xae\x03\x1e\x79\xdd\x93\xc4\x80\x33\x31\x3d\xb8\xd9\x00\x56\x61\x79\x4a\xc7\xcf\xfb\xc7\x27\xfd\xe3\x17\x37\xc7\x5f\x9f\x9d\x1e\x9d\x9d\x1c\x0d\x8e\x8e\x8e\xfe\xa3\x32\x41\xd3\x41\x1f\x3a\xc8\x27\xb8\x45\x38\x80\xac\xc4\x33\x6e\x0d\xe0\xf5\xd0\x9a\xc9\x79\xb3\xc4\x3d\xe3\x1f\x6b\xed\x49\x85\xc2\x07\x2f\x9f\x6f\x51\xf8\x60\xc6\x3f\xfe\x20\xe2\x49\x35\x4a\x62\x27\x5d\x37\xdb\x9a\x76\xd2\x7d\x9d\xdc\x9e\x77\x1c\xaa\x6c\x54\x76\x08\xda\x9e\x91\x42\x35\x74\x2c\xe3\x87\x5a\x6c\x19\x3f\xd8\x62\xcb\xf8\x41\x17\xbb\x5e\x49\xda\xc1\x62\x53\x59\xa8\xaa\xdd\xec\xfe\x7d\xc7\xea\x31\x6c\x58\xb5\xb6\x93\xc2\x30\xb2\x28\xe2\xa3\xaa\xbe\xdc\x4a\xc3\x54\x71\xcd\xd2\xfc\xf6\x4c\x8a\x73\x9e\x1a\xc5\x68\x1b\x5a\x4c\x8f\x36\x9f\xee\xa7\x60\x57\xba\x9f\x29\xa9\xc1\x81\xf1\x45\xcc\xcd\x8b\xe5\x6a\x73\x86\x77\x08\x4e\x94\xca\xb4\xf9\xd2\x6d\x0a\x94\xdb\xca\x37\x09\x98\xc3\xb5\xbc\xa3\xd5\x5d\x2f\x00\x1c\x8a\xd9\x48\x84\xa1\x08\x5d\x94\xed\x1a\x7b\xce\xea\x87\xbd\xc8\x1f\x5b\x4c\x1b\xe3\xf9\xb0\xd4\x26\x35\x67\xdf\xbb\x2e\x58\x92\xc5\x20\x0d\xbe\xa3\xa8\x2b\x90\xfc\x6e\x96\x73\xf1\xa3\x20\xe0\x8f\x1c\x1a\x1f\x2d\x41\x00\x18\x6c\xe3\x9b\x6d\x0c\x06\xa2\xca\x51\x08\x23\x4b\x15\x1b\x67\x09\x84\x50\x24\xc2\x2c\x65\x90\x52\x50\x2e\x0d\xc0\x3e\x86\x38\x23\xa5\x82\x35\x05\x54\x11\x67\x61\x62\x3c\x4b\xd5\x8c\xa7\x16\xde\xa0\xb0\x10\x0d\xc8\x21\xa5\x31\x8d\x04\xa4\x14\xf5\xd8\x28\x4b\x59\xa8\x84\x86\xf4\xc7\x29\x5f\x08\xfa\x55\xfa\x61\x1d\xe6\x61\xac\x6d\x9c\x23\xad\xec\x67\x73\xd3\xb4\x3c\xec\x1c\x2a\xa5\x09\x33\xa7\xfd\x81\x90\x71\xda\x57\x49\x9f\x0e\xe0\x06\x87\xa1\xf0\xa0\x97\xe3\x47\x47\xc1\x61\xf5\x49\xcd\x84\x84\xbd\xf1\x6a\x87\x41\x79\x47\x6b\x0c\xb4\x35\x1a\x29\x05\xab\x87\x67\x67\x9e\x2e\x99\x2b\x8e\x45\x8b\x0a\x49\xa8\xe6\x3b\xae\x59\x30\x95\x51\x88\x38\xc1\xcb\x77\x63\x80\x64\x14\x89\x2d\x06\x36\xf6\x94\x37\x15\xbb\xfc\xbc\xfc\x4b\x22\xff\x1a\x0c\x89\xc7\x07\xd8\xc9\xd9\x30\x66\x8c\xf5\xe1\x15\x67\x76\xac\x85\xef\x70\xc8\xc3\xf8\xe4\x80\x81\x73\xd1\x3e\xe1\x3d\x5e\xdf\x41\xb5\x0b\xf8\x6a\x30\x18\xb0\x7f\x8a\x44\x99\x05\x99\xa9\xa4\x41\x1a\x69\xbf\x9b\x91\xd4\x69\x7f\xc6\xe7\xfd\x0f\x62\xb9\x2e\x5f\xb3\xf9\x41\x06\x58\xb4\x10\x9d\xc5\x63\x8a\x1d\x86\x8b\x6a\xd6\xb0\xfa\x18\xec\xc8\xed\x8c\xcf\x6f\x8d\x86\x45\xf9\x3a\x56\x6d\x86\xfe\x20\x17\x8a\x40\x1b\x65\x1c\x8a\x8f\x76\x43\x66\x7c\x3e\x30\x3b\x00\xd0\x3d\x29\x9f\x60\x15\x1b\x5b\xba\xd8\x96\x22\xc5\x84\x6c\x38\x58\x78\x7b\xa6\x46\xe7\xab\x1f\xc8\x70\x8f\x39\xb6\x63\x93\x2c\x86\x7b\x33\x3e\x1f\xee\x0d\xd8\x79\xa4\x55\x2f\xa7\x53\xda\xbb\x6a\x0e\xa8\x31\x47\x93\xf4\x92\x2a\x8c\x6a\x9a\xc0\x06\x86\x94\x5a\x61\x53\xe0\xe0\x14\x62\x3e\x45\x96\x08\xb6\x1f\x2b\x16\x0b\x6d\xdd\x84\x2e\xe0\xe2\x80\xa6\x29\x58\xce\x95\xbd\xb7\xc3\xab\xe8\x9a\x40\x7e\x34\xd5\x4b\x52\x09\xce\xb8\xe4\xa9\xec\x99\x59\x41\xfe\xb6\x59\x0c\xa5\x0b\xbd\x1a\x32\x46\x46\x64\xb4\x1f\x47\x11\x01\x42\x1b\x16\xf2\xe8\x60\x7e\xf5\xdb\xb4\xf1\xd9\xc4\x6b\x5f\x3d\x97\x1e\xed\xb7\x79\x8e\x4c\x42\x64\xde\x5c\x45\x6a\x62\x0b\x63\xe7\x67\xa2\x50\x1c\xbb\x78\xc2\x2c\x3c\x38\x2c\xf9\x29\x9b\x2b\xad\xc1\x3c\x81\x87\xc5\x92\x8a\x5b\x9e\xaa\x99\x0c\x6e\xcf\x72\x50\x20\xa0\x5c\x02\xd9\x86\xce\xf3\x85\xb1\xde\x76\x0f\x8d\x14\xf6\x14\x0d\x88\x1e\x9c\x43\x2f\xf4\x66\x08\x72\x1f\xe1\x13\x89\x88\x96\x2c\x11\xf3\x88\x07\x36\x83\xd0\x41\x42\x17\xe7\x42\x3d\x11\xe4\x84\x2b\xdc\x1b\x2f\x1d\xca\x3e\x8c\x6e\x1f\x8f\x67\x8f\x06\xd0\x33\x54\xc7\x9c\xc7\x93\x03\x76\xab\x45\x7a\x6b\xe9\xd6\xb5\x48\x73\x98\x21\xed\x95\x76\x77\x6c\xcb\x55\xdb\x45\x98\x71\x47\x13\xa0\xe0\x2e\xc5\x1c\xbd\xe1\xc1\x94\x3a\x44\x06\x50\xbe\x46\xbd\x1c\xd9\x1d\x7b\x28\x6c\xb6\xa1\x41\x48\x50\x68\x99\x81\x57\xd8\xa9\x7a\xb4\xa8\x89\x0e\xd1\x63\x83\x61\x7c\x7a\x80\x54\xc9\xce\x0f\xa3\xa1\x68\xab\x13\xb2\xc4\xcd\xf8\x5c\x63\xfe\x01\x4a\x30\x32\x61\x22\x12\x00\xb3\x69\xaf\x5e\xac\xe2\x3e\x52\xad\x0f\x62\x49\x7d\x59\x10\x10\x5b\x6b\xd5\x3c\x3a\x1b\xb0\x77\x88\xe1\xe4\xc1\x92\xb1\x6c\x0e\xd1\x8d\x09\x65\x78\x9a\x17\x1a\x4a\x67\xf7\xae\xee\x34\x52\x80\x24\x4c\xd3\x0d\xc6\x10\x1c\xd8\x55\x94\x65\x86\xb1\x8f\x5a\x89\x93\xc6\xeb\x6e\x96\x68\x1b\xf4\xdb\xda\x6d\xd8\xe4\x9e\xba\xad\x2b\x5c\x53\xda\xe9\x1d\xdc\x53\xb8\x0a\x56\x24\xa0\x6e\x0b\x57\xf6\xa4\xf1\xca\x4e\x12\x1e\x67\x11\x4f\x4a\x67\x01\x36\x3f\x87\x78\xc1\xcf\xfb\x1f\xc4\xb2\x8f\x47\x77\xce\x65\xa2\x0f\xe0\x25\x50\x19\x96\xc4\x3c\xf0\x56\xc6\x36\x28\x21\xa5\x2e\x21\x23\x19\x9a\x61\x34\xef\x3e\x40\x58\x04\x46\x98\x31\x5f\x8e\xcc\xeb\x62\x39\xcf\x22\x4e\x09\x13\x5a\xcc\x79\xc2\x53\x78\xbb\x4a\x74\x0e\x2e\x4d\x1d\x52\x3e\x2b\x90\xfd\x91\x98\xf2\x85\x54\x59\xe2\x48\xba\x19\x2b\x5d\xe2\x9d\x12\x24\x58\x83\x96\xf4\xe8\x9e\x87\xac\x41\x8c\xde\xe4\xcc\x35\x49\xe2\x3a\x55\xf3\x1c\x32\x93\xca\x52\x87\x22\x50\x21\x48\xab\xa9\x98\xe3\x7e\x51\x6c\x6d\x4b\xc8\x43\x2f\x30\x97\x82\x06\x71\xcb\xf8\x78\x0c\xd0\x29\xd4\x4b\x22\x82\x2c\xd1\x72\x21\xa2\x25\x0a\xff\xfa\x4e\xa6\xc1\x54\x68\x36\xe2\x01\xd4\x84\x44\x3c\x6c\xf7\xf6\x7c\x77\xe5\x18\xc4\x07\x11\xfa\x1c\xdd\xec\x78\x8d\xc6\x5e\xc4\xa9\xb0\x63\x2c\x0c\x0c\x4e\x9f\x13\x2b\x00\xd4\xd0\x8f\x71\x1a\x60\xf9\x17\x50\x3d\x54\x32\x92\x61\x28\x9a\x4a\xc0\x54\x65\xd0\x7f\x29\xed\xee\xc3\xc5\xc1\xd6\xd8\xb3\x5b\xc7\x86\xd2\x03\xc5\x42\x8b\x78\xbb\x5d\xd5\xfb\x7c\x85\x30\x8a\xd4\x0f\x2d\x45\x07\x3c\xf2\x1d\x35\x2e\xff\x3c\x60\x3f\x72\x69\x68\x14\xe4\xc6\x51\x05\x74\xc8\xa0\x25\x7c\x9f\x2c\x81\xa4\xa6\x07\x0a\x91\xa5\xe0\xc7\x0d\x16\xc3\xb4\xf7\xd7\xa2\x6e\xba\x8c\xf6\xda\x72\x74\x9f\xd1\xc0\x11\xb2\xb9\x58\xb6\x1d\x1d\xd5\xe5\x83\xcd\xd2\x8f\xae\xda\x60\xb2\xde\x63\xc5\xfd\xaf\x9d\x35\x69\xb2\xb0\xd5\xbb\x9a\xc9\xb5\x48\x16\x32\x10\x57\x16\xab\x66\xc5\xe8\xcb\x4d\xd9\x54\x01\xaf\x71\x81\xf3\x60\x35\xa0\x56\x83\x48\x4c\x78\xb0\x2c\x17\x9b\x68\x8c\x59\xde\x10\xb1\xc5\x07\xfa\xd5\xf4\x46\x57\xc4\x75\x4b\x94\xde\x39\x5f\x6b\x6c\x72\xed\xfc\x71\xe0\x17\xbb\x1b\xcc\x7c\x7d\xee\xee\xdc\x96\x95\xf7\x0a\xfa\xbf\xbf\xfa\x01\xd3\x19\x79\x4a\x5c\xc2\x8c\xc7\x96\xc3\xb5\xfc\x12\x52\xe9\x83\xed\x58\xa3\x51\x14\xd7\x0d\x0c\xc0\xdd\x8b\x03\xa3\x25\x61\xf0\x5b\xcb\xc1\xb1\x5b\xd3\xfa\xd6\x43\x2b\xb1\xf1\x47\xd0\x8b\xc5\xcb\x3c\xee\xbf\x7c\xf1\xe2\xf4\x45\x0f\xeb\x72\x19\x86\x76\x50\xa4\x06\xcf\x9f\x43\x64\x17\xb0\xb5\x3b\x9e\x84\xce\xa7\x2b\x23\x69\xc8\x41\xaf\xd1\x5d\xd4\xbe\x9c\x7a\x85\xcd\x34\x23\x75\xe0\x19\x2b\x03\x15\xd1\xc7\x07\xce\xd8\xb5\x65\x94\x01\x8c\xff\x95\x8a\xc7\x72\xb2\xe2\xb2\xd7\xb4\xce\x61\x18\xd0\x4a\xe2\x6a\x56\x9b\x85\x9e\x61\xee\xea\xcd\x0f\xd7\xa6\x59\x4c\x21\x5e\x4e\xff\xb2\x85\x96\xdb\xd4\x4f\xf9\x6b\x16\x87\x55\x03\x76\xa5\x7a\x0a\x36\xc3\x50\xe7\xcb\x37\x3f\xba\x20\x84\x57\xe7\x6c\x84\x3f\xe1\x41\xb3\x87\xcb\x2a\x44\xd6\x80\xea\x8f\xeb\x99\xb6\x12\x58\x60\xc6\x04\xd9\x18\x02\xec\x7e\x59\xec\xe1\x6c\xe9\xa5\x4e\xc5\xcc\xb0\x18\x9d\xb2\x44\x29\xa3\xf4\xa0\x4c\xe3\x36\xc0\x81\xe7\x36\x9e\xad\xd1\x32\x6d\xb0\xa2\xad\x4c\xef\xc7\x4b\xf4\xc0\x7e\xbd\x0a\x37\x58\x99\x28\x49\xf7\x5a\x56\x78\x80\x47\x08\x73\xb3\x95\xab\xb5\xfd\x06\x85\x19\xdb\xc0\x88\x7b\x49\xe4\x94\x70\xb7\xdc\x60\x8f\x22\xd8\x60\x4b\x28\x24\xd8\xe7\x41\x22\x35\x47\xcb\x66\xf2\x23\xf2\x32\x21\xd2\x2e\x55\x66\xc9\x46\xa6\x05\xe2\x67\xc9\x40\xdc\x36\x84\xa5\xd7\x24\x56\x95\xe6\x69\x46\x37\x91\x0b\xca\x04\x8d\xa8\x6e\x85\x25\xf8\x34\xb4\x1e\xe2\x8f\xf0\x38\x34\x54\xc6\xd0\x62\x80\x97\xdf\xbf\x05\x69\x57\x9c\x1d\x1e\x4e\x95\x4e\xcf\x0c\xf5\x3a\x34\x54\xfa\xf6\x60\xc0\xde\x78\x00\x4a\x6a\xcc\x6e\xb3\x24\x42\x28\x16\x3b\xe4\x86\x45\x31\x4a\xfa\xad\xe9\xce\xd1\x47\xa3\x0b\xc0\x0e\x80\xaa\xed\x96\xd6\xae\x55\x71\x9d\xfe\x42\xc5\x6a\xbc\xb5\x71\x95\xef\x75\x2a\x38\x05\xb8\x42\x24\xe7\x4c\x4e\xa6\x04\x88\xa8\x55\x64\x41\xac\x5c\x6a\xdc\xeb\xb7\xd7\x30\x6f\x35\xf3\xae\x80\xc6\x82\x44\x3d\xac\xe9\x91\x9f\xbb\x5b\x23\xca\xe2\x48\xa1\x2f\x26\xe3\x3e\x0d\x09\x3a\xe2\x16\xb2\x32\x27\xf9\x11\x5f\x0a\x2c\x81\x26\x55\x04\xcb\x7e\x30\xb0\x53\x37\x4a\x35\x8f\x34\xf8\x29\x20\x00\xd4\x46\x67\xc2\x1a\x5d\x46\x82\x6b\x50\x92\x48\x8c\x06\x0c\x3e\x76\x6b\xb6\x2f\xc2\x0e\xcc\x4a\x1f\x9f\xfc\x69\x70\x34\x38\x1a\x1c\xdf\xa2\x1a\x4a\x7d\x9b\x73\x26\xf5\x87\x25\xcb\xe2\x48\x68\x0d\x67\x0a\xb2\xf3\x27\x46\x67\x65\x01\xe0\xb0\x2a\xb3\xbe\x85\xb3\xcd\x30\x99\x10\x96\xce\xaa\x6a\xa6\x8d\x91\xcf\x1d\x81\xc0\xaf\x71\x61\x63\x81\x34\x09\xa8\x27\x14\x05\xc2\xeb\xe3\x5f\x97\xeb\x2c\x98\x62\xb5\x21\xf3\xb3\x35\x0b\x45\x4b\x72\xd1\xc4\x2a\xee\x9b\x53\xc5\x47\x91\xc0\x78\xe2\x1e\x1c\x07\xc1\x35\x34\x01\x78\x91\x6c\x6e\xb6\x89\xb3\x58\xdc\xd9\x53\xe0\x4e\x12\x1e\x50\x77\xd4\x86\x7b\x80\x96\x33\xdc\xfb\x0b\x1c\x11\x73\x92\xe9\xa7\x89\x24\x82\x4e\x4d\xce\x0e\x0f\x87\x7b\xd0\xcd\x39\xb3\x02\x89\x65\xfa\x84\x56\x30\x76\x76\x5e\x32\x01\xf2\xd8\x62\xd0\xa0\x33\x84\x8c\x21\x30\xb8\xf7\x57\x3f\x0c\xd8\xbf\xab\x0c\xda\xda\x23\x0a\x1d\xa7\x0a\x82\xc9\x50\xcf\x19\xc9\x34\xe1\x89\xeb\x86\xc8\x8d\xbb\x86\x98\xa4\x09\x81\xfa\x3d\xc6\xed\x6c\xad\x19\x4c\xd2\xc4\xcf\xd3\x54\xcc\xe6\x16\xf2\xdf\xbc\x8c\xea\x82\x80\xac\xa0\x65\xc0\x78\x96\x4e\x11\x0a\x70\xb8\x67\x7e\x39\xb3\xe1\x6c\xff\x6b\xb8\x87\x18\x23\x69\x8e\x50\xf2\x6d\xc2\x27\x68\x04\xdb\x1f\xee\x7d\x35\x18\x0c\x86\x7b\x68\x94\xf9\x47\x26\x92\x25\x9b\xf3\x84\xcf\x04\x44\x12\xee\x0f\xf7\xbe\xb1\xbf\x93\x12\x4f\xbd\xf4\x48\xcb\xdb\x1a\x3d\xe4\x41\xa5\x86\xba\x72\x27\x4d\x32\x83\x5f\x7c\xa4\x50\x84\x5b\xc1\x19\x07\xbc\x27\xd7\x84\x36\xae\x85\x60\x50\x2f\xb8\x3c\x04\x1b\xac\x13\x95\x56\x71\x42\x7f\x68\x56\x33\x30\x37\x36\xc9\x02\x44\x40\x36\x87\xd2\x5f\x81\x02\x4f\x83\x98\x48\x9e\x8a\xc9\xd2\x3c\x7b\x4b\x2f\x6f\xe2\x57\xf9\xd2\x5d\x89\x85\x14\x77\x2d\x11\x84\x9b\x1e\xb3\xc2\xba\x85\xcd\xa7\xbc\xf7\x39\x70\x13\xf3\xcd\xed\xab\xd2\x93\xb7\x39\x92\xae\x99\x06\x0d\x97\x89\x8f\x00\xe3\x8c\xbc\xc3\x33\x69\x79\xd5\xd1\x04\x41\xd7\xdb\xad\x27\xb6\x84\xa6\x64\xa0\x8a\x32\xb5\x0e\x29\x0b\x79\x9a\xbb\x46\x73\xc0\xfe\xa2\x41\x89\x70\x77\x8b\xe9\xc3\x6c\xb4\xf4\x06\xd1\x2b\x1c\x38\x33\xa0\x31\x97\x51\x63\x4d\x13\xf3\x66\x9e\xe3\x25\xbb\x29\x06\xb0\xc1\x2e\xba\x34\x07\x8d\xb5\xd5\x20\x1c\x8e\x72\x1c\xe6\xee\x74\x5b\x32\x18\x12\xa0\x6d\x0b\x4c\x2e\x21\xda\x65\x06\x7a\x6d\x07\x9a\x33\x81\x92\x7e\x64\x86\xfc\x99\xc0\x85\xeb\x15\x9a\xc6\x93\xf8\x28\xfa\x0c\x20\xb2\xae\xc3\x90\x6d\x0b\xff\x50\x7e\xd0\xdf\x5c\x0b\xaa\x4b\xb6\x33\x73\xa6\x01\x2e\x68\x9e\xc8\xb8\x58\xe0\xb9\x91\x74\xfd\xef\xeb\x77\x6f\x5b\x20\x72\xd9\x66\x54\xfc\x55\x42\x19\x85\x1c\xa6\x68\x1f\x92\x85\x30\x50\xbd\x80\x96\x65\x61\xf2\xa4\x66\x62\xc1\xa3\x0c\xad\xea\x13\xa3\xaa\xa5\x68\xda\xaf\xc0\x76\x29\x36\x4f\x54\x98\x05\xc2\x8b\x89\x71\x92\x3a\x4e\x78\x0b\x03\xc1\x8a\xd4\xc0\x4a\x8e\xab\xfb\xe8\x95\x56\x67\xae\xb4\xba\xff\xbb\xc5\x76\xdd\x7a\x58\x9b\xe7\x85\x39\xdb\x85\x4d\x10\x03\xa7\x4e\xce\x5b\x2a\x6b\x05\x54\xef\x99\xd1\xe6\x9f\x31\xaf\xa7\xf9\x3c\x92\x28\xe1\x81\x2c\x43\xe8\x2e\xb9\x2c\x62\xcf\x96\x91\xda\xb5\x26\x28\x71\x5b\x2e\xcf\x7a\xee\x00\x96\x15\xdb\x11\x6f\x71\xfb\x68\x5e\x58\xc4\xa1\x9e\xc8\x74\x9a\x8d\x06\x81\x9a\x1d\xbe\x3b\xbf\x38\xa4\xf1\xf7\x0b\x20\x03\x87\xa3\x48\x8d\x0e\x67\xdc\x08\x46\x87\x96\x24\x1d\x9e\x0c\x8e\x06\xb3\xf0\xab\x90\xa7\xbc\x8f\x80\x0c\xeb\xab\xf3\xac\xb3\xa9\xb5\xb4\xe8\x55\xb6\x1f\x7e\xc8\xeb\xd4\x6f\xb9\xef\xf3\x44\xaa\x44\xa6\xcb\xb5\x85\xa7\xb0\x19\xed\xbd\x8d\x00\xc2\xdd\x76\xb9\x15\x46\xfd\x30\x3a\xcb\x0c\x84\xed\xd8\x5a\xfc\xdc\x11\xa0\x3a\x29\xb8\xdb\xe0\x5f\xd3\x03\xf6\x83\xba\x73\xd5\x5d\x50\x76\x0f\x14\x80\x8d\x99\x76\x53\x39\x31\x7a\xb0\x7d\xfd\x80\x59\x38\x72\xf4\x6b\xa3\xc0\xac\x6c\xc0\x50\xcc\x22\x39\x93\xe6\x4f\xb4\x37\xea\x40\xc4\x3c\x91\x4a\x7b\x36\x32\x04\xb9\xe3\xae\x4b\x54\x57\x2c\x6e\x4f\x19\x97\x6e\x4b\x73\xd7\x9a\x80\xc1\x86\xca\xfa\x5e\xb2\xe5\xda\xbb\xf4\x84\xce\xf3\x06\xb6\xbd\xbd\xf2\xc2\xf4\x6a\x18\xc0\x67\x64\x8d\x2d\x04\xf8\xa6\x47\x6a\xe4\x78\x2a\x70\x9f\x57\x11\xf1\x2b\x51\x70\xf6\xea\xaa\x8d\xa9\xaf\x13\x65\x7f\xc7\xa2\x6c\xc1\x4e\x7f\xfb\xf3\x70\x8f\x0e\xee\x70\xef\x97\xc7\x2f\x2a\x6d\x35\xb0\xb5\x98\xa9\xa4\xa8\xe5\x2b\x66\x2e\x44\x6d\x29\x00\xba\x22\x66\x03\x45\x7a\x27\x44\xec\x96\xac\xae\x7e\xdc\x19\xeb\xb3\xdb\xb7\x2a\x16\xb7\x67\x58\x5d\x80\x9e\x4e\x30\xc2\x04\x21\xd9\xac\xa9\xd9\x0f\x0e\xbe\x73\x06\xc0\x54\x41\x35\xaf\x78\x49\xe1\x1d\xd6\xa6\x57\x7f\x30\xfa\xb9\xa6\x79\xe6\x6d\x1b\x6e\x10\x2a\xa9\xaa\x00\x83\x65\x77\x30\x55\x2c\x24\x50\x39\x77\x12\x07\xec\x3c\x2f\x9c\xe1\x79\x06\x86\x31\x03\x5b\x89\x10\xa1\x1f\xc1\x88\xe2\x15\x45\x00\x6c\x88\x2e\x82\x96\x25\x68\xeb\xbd\xff\xae\xc6\x5d\x81\x0f\x69\x51\x2e\xc9\xd2\x46\x74\xa8\xe9\xef\x61\x6d\x0e\x48\xb3\x37\x35\x3c\xd4\x4d\x7b\x67\xf6\x07\xe7\xc2\xc4\x90\x9a\x5b\xdb\x0a\xcc\xa3\x14\xb8\x5a\x6b\xad\x68\xc9\x34\xdd\x9d\xfb\x6c\x4c\x71\x0b\x4d\xd1\xd3\x11\x0b\x0e\xfb\x22\x46\x66\x2e\x92\xd9\x5a\xd9\xe4\x27\xca\x09\xf9\x80\xb1\x8b\x54\xa3\xa4\x0b\x31\xc5\x23\x87\x32\x4c\x0a\x04\x56\x05\x01\x20\xea\x41\x5e\x06\x7b\xe0\x7f\xed\x15\x11\x31\xf4\xd4\xaf\x27\xba\x38\x1e\x1c\xbf\xec\xb1\x79\xc4\xe3\x98\xee\x1e\x14\x35\x82\x0b\x0a\xbf\x7e\x3d\x60\xef\x35\xd0\x13\x6f\xa1\xd0\x5f\x7f\xb8\x38\x6e\xae\x9f\x6b\xbd\x04\x2d\xea\xf4\x38\x52\xb5\x86\xae\x9e\x5f\x5e\xfc\x54\xaa\x57\xec\xf1\x49\x23\xf3\x22\x6a\x9a\x15\xb9\x4b\x20\x14\x10\x63\xef\x72\x28\xae\xc9\x0b\x41\x9b\x60\x45\x95\x44\x04\x6a\x12\x03\x72\x3c\xf6\xe6\x78\x53\xc4\x53\x01\xaa\x17\x51\x3a\x8a\x60\xb6\x91\x7b\x89\x80\x40\xbe\x2c\xf6\x7a\x40\xc2\x5d\x0b\x32\x3f\x91\xa9\x5d\xc5\x40\xcd\x66\x59\x2c\xd3\xe5\x21\x14\xc0\x92\xa3\x2c\x55\x89\x3e\x0c\xc5\x42\x44\x87\x5a\x4e\xfa\x3c\x09\xa6\x32\x15\x10\x99\x6d\x6b\x03\x2d\x8c\xd6\x67\xb6\x62\x16\x7e\xd5\x50\x8d\xa2\x0d\x05\x83\xa2\xdd\xab\x57\xfd\x7b\x19\x53\x41\x13\xb2\xa5\xa3\x1d\xc0\x2d\xae\x55\x7e\xa0\x66\x89\x77\xc0\xf3\xe0\xc6\xfc\x0a\xe4\xcb\x6e\x96\x4c\xc6\x63\x5b\xff\x86\xaa\x6d\x89\x1c\xd3\x14\x5d\x51\x86\x62\x31\x9d\x8d\x66\x32\xd5\x3e\x5c\xe9\x80\xbd\x42\x2f\xd1\x48\xe4\x51\xc5\x17\x31\x7b\xc5\x67\x22\x7a\x05\xd5\xd0\x1f\x78\xd1\x41\x59\xe8\x9b\xf5\xdb\x62\xd9\x6d\xde\xcb\xa6\xdc\x62\xc6\x83\xa9\x8c\x45\xb2\xcc\x29\x98\xe9\x6a\xb0\x38\x1e\xe4\xf9\x46\xcd\xd0\xfc\x8f\xc1\x9c\x56\xd6\x66\x5f\xe9\x28\xae\x56\x61\x37\x67\xa0\x58\x87\xbd\x58\x72\x86\xca\xb0\x37\xc8\x6a\x0f\x8f\x20\xbc\x66\xc6\x5b\xa2\x08\x53\x10\x6f\xbb\x02\x96\x9b\xf3\x53\xb3\x0f\xeb\x78\xa9\xfb\xbe\x10\xa4\x0a\x7c\xa4\x4f\xe4\xb6\x4f\xa4\x23\xef\xba\xb0\xd0\xb6\x24\xfc\x5e\x1d\xe3\x28\xae\x09\x75\xd4\xc8\x42\x8b\xad\x73\xfd\xd4\xaa\x02\xd5\x35\xf8\xe5\x11\x64\x81\xbc\xbe\xe3\xe6\x42\x81\x7b\x36\x0f\x96\x21\x8b\x83\xa7\xa2\x25\xa0\x30\xbb\x02\x99\x8e\xab\xcd\x55\x1b\xa6\x1a\x71\x9d\xde\x24\x3c\xd6\xf0\xf0\x8d\xac\x5a\xd9\xee\x41\x6b\xa0\xbb\x55\xe7\xba\xfa\x76\x66\xbe\x42\xc8\x0b\x52\x0a\x68\x5a\xa9\x6b\x66\x0b\x29\x1a\x15\x98\x2e\x46\x5e\xef\xb1\xc1\xcf\x35\x13\x5a\xaf\x2f\x76\x45\xad\x3c\x23\x62\xdf\x19\x11\xdd\x6f\x78\x07\x0d\x37\xb3\x7b\xc1\x47\x2a\x4b\x69\xe0\x6e\x94\x5b\xa8\x09\x89\xe0\x7a\xad\x70\x83\x8d\x70\x88\x98\x2a\xdb\x33\x2b\xd1\xbf\x53\x49\xd8\xcb\xf9\x1a\xa3\x76\xb9\xd9\x93\x16\xf2\x99\xde\xc1\x48\xeb\x89\x66\x03\xd1\x2a\x00\xe5\xdb\x3c\x32\x3b\x1c\x60\xd0\x86\x3b\xdf\x40\x2a\xe4\xb7\xa8\x94\x91\xbe\xb6\xc5\xc8\x36\x30\x22\xa6\x36\xdb\xb6\x3a\xa6\x1b\xb0\xf0\x59\x03\xc5\x1b\x9d\xf2\x51\x24\xf5\x54\x84\x3d\x06\xa5\x73\xcf\xa9\x8e\x2e\x48\x75\x37\x22\x99\xc9\x98\xa7\x1b\x94\xc2\x69\x49\x83\xcb\x86\x3f\x5a\xf6\x27\xa0\xe1\xfc\x20\x75\xba\x05\x41\xfb\x81\x92\x35\x72\x48\xf4\x46\xbd\x80\xca\xb3\x76\x7a\xc1\x93\xd6\x0b\x6a\x21\x7e\x4a\xcb\x8e\xc9\x73\x98\xa7\x13\x87\x72\x21\x43\x23\xb6\xac\xdb\xf8\xcf\x50\x43\x74\x8d\x52\x7f\x1f\x8b\x60\xa7\x3f\x7d\x29\xfa\x93\x21\x61\x25\xed\xa9\x25\x35\xc7\x33\xfc\x9b\x12\xa9\x81\xcc\x3f\x49\xb1\xba\x5c\x67\xbf\x2d\x07\x7a\x4b\x55\xe9\x7d\x45\x8a\xea\xdf\xe7\xd5\xa1\xa4\x5e\x5f\x3a\x7e\x45\xc8\x79\x2a\x26\x2a\xa9\x81\xa1\xa9\x04\x9d\xdb\x86\x45\x96\x08\xfb\x27\x42\x56\xaa\xfc\x59\x8e\xba\x18\x89\x48\xc5\x13\x18\x37\x44\xc8\xb2\x67\x3c\x8a\x9e\xe5\x59\x95\x6c\x9e\x91\xd0\xc2\x64\x0c\xa6\x42\x57\xbb\xdf\x95\x9b\xd0\xc8\x7f\x32\xc2\xaf\xb3\xb1\x02\x66\x29\xd0\x61\xc4\x64\xbc\xa0\x10\x65\x8d\x69\x94\x10\x86\x1b\xa4\x11\x9b\x08\x08\x36\x7c\x7c\xef\x4a\x0b\x5a\xfa\x81\x68\x29\x85\x8e\xdb\x1a\x8f\x16\x35\xd0\x37\x10\x58\x70\x15\x4c\x51\x8c\x96\x9e\x08\x0d\xae\x01\x19\x4f\xb2\x88\x27\x03\x3a\x11\x5e\x5d\xab\x58\x83\xe7\x5e\xfb\x9e\x3c\x07\x03\x42\xe8\x0f\xb7\xe6\x95\xb7\x1e\xc8\x02\x6d\x05\x78\xb3\xb6\x10\x6f\xcd\x19\xf9\x7e\xfd\xfc\x6d\xb3\x35\x6b\x00\x27\xce\xf9\x51\xf2\x15\xf1\x7d\x69\xc3\x3d\x9c\x83\x21\x05\xc3\xbd\x6d\xe2\x26\xa2\x2c\xe1\xeb\xa2\xe2\xb1\x91\x1d\x2e\x7d\xf2\xd3\xb2\xfc\x60\x23\xb8\xa6\x6d\xcb\x66\x6f\x5a\x26\x9b\xbe\xc7\x21\xe0\xd7\xb6\x8c\xe9\x8c\xa7\x94\x6a\xe4\x8f\xac\x51\x90\xd9\xf7\x0c\xf0\xec\x16\xbb\x05\x52\x33\xf0\x3b\x1f\x54\x46\x76\x7b\xe0\x15\x29\x8c\x22\x16\xa9\x3b\x44\x93\xdd\x46\x51\x9b\xaa\x24\x2d\xd3\xca\xba\x0d\xc8\x1b\xe2\x12\x4e\x21\x31\x0a\x3e\x5b\x15\x32\xaf\x6d\x68\xdd\x10\x0f\x46\x57\x70\x4d\x60\x10\xb9\xaf\xe2\x16\xae\xea\xac\xc5\xca\x3c\x82\x87\x97\xc8\xc2\xba\x55\xa5\x66\xee\x1e\xda\xcf\x75\x47\x7b\xc5\xf4\x0a\x37\xd2\x7d\x1d\x12\x79\xd9\xb1\xd6\x49\x17\xb6\x4c\x71\x9f\x80\xd6\x79\x5d\xb4\x4d\xb7\xe5\xf9\xd7\x55\x8b\x31\x2f\xd9\x8b\x65\x52\xa0\x30\x64\x30\x5e\xaf\x7a\x7a\x69\xea\xa0\xd8\x51\xd0\xd5\x9a\x63\xd1\xf4\x98\x1f\x3a\x91\x7b\xc0\x03\xfa\x11\x4b\xe5\xe1\xb5\xbb\x01\x9b\x94\xca\xd2\x79\x96\x16\x43\x9c\x6a\xaa\x12\xbb\x6c\xaa\x43\x48\x5b\x81\x6a\xc4\x24\x69\x07\x62\x9e\xea\xc3\xaf\x12\x11\x08\xb9\x30\xbf\x39\x4a\xda\xe7\xba\x0f\x69\x20\xc5\x48\x27\x76\xe1\xb2\x30\x7a\xa4\x52\x40\x60\x80\x0d\x01\x11\xda\x8d\xd7\x22\x37\xe4\x81\x0a\x37\x6a\xde\x8f\x8c\xe4\x8f\x75\xbe\x44\x62\x25\x5a\xf7\x0c\x87\x8a\xf0\x69\x06\x9c\xd8\x15\x17\xa0\x90\x17\x96\xba\xe7\x55\xd2\xf8\xb8\x97\x61\xe7\x80\x20\x28\xa8\x2e\x94\x7a\x1e\x71\x87\xd5\xc4\x27\xa2\xa1\xb4\xbf\xb9\xaf\x35\x69\x77\x9f\x4d\x0b\xad\x84\x22\xdf\x87\x76\x05\x75\xc1\x5b\x8f\x36\x11\xf7\xee\x95\x29\x10\x7e\xb0\x18\x5a\x6a\xbc\xaf\xb4\x48\x8d\x36\x9c\x73\xa6\x57\x57\xaf\x1b\xec\xbe\x56\x17\x5a\x75\x1b\xa1\x8d\xa5\xd0\x86\x9f\xe1\x17\xab\x2b\xec\xdf\x5b\xfc\x18\x0c\x06\x8f\x2f\x57\x6c\x99\xcb\xfe\x39\xbd\x63\x28\xbc\xac\x3a\x2c\x28\xa5\x10\x0e\x5b\x51\x58\x34\x64\x06\x04\xde\xa2\x24\x53\xde\xcb\xa6\x80\xdf\x9a\xe0\xa1\xb5\xd1\xbf\x75\x01\x47\xbe\xba\xc9\xd3\x62\xa5\xa5\x75\x18\x2c\x36\xce\x95\x6c\x93\x79\x2c\x48\x0e\xb9\x04\x01\x35\x14\x95\x47\x39\x68\x3a\x55\x09\x9f\x88\x41\x01\x45\x11\x71\x15\x73\xfc\x47\xb3\x38\x58\x96\xc4\x0e\x13\x52\x11\x0a\x00\x91\x3c\xba\xe3\x4b\x0f\xdf\x09\x48\x31\x85\x4e\x59\x03\xa7\x95\x59\xec\x55\xa9\x12\xfe\x0a\xa4\x06\x04\x8d\x60\x49\x29\x2f\x9f\x5e\x97\x12\xea\xbd\x20\x94\x33\x97\x79\xed\xc0\xe2\xbc\x30\x2e\x0a\x42\x61\x97\x38\x4c\x67\xaf\xcd\xe2\xc2\x04\x03\x74\x35\xac\xc7\xb9\xa1\xfc\x4e\xd0\xe0\xda\xe0\xef\x9c\xc1\xac\x6e\x73\x38\xa7\xb5\x3c\x39\xe5\xfa\x83\x3e\xe4\x41\x20\xb4\xf6\x5f\x60\x78\x33\x1e\xcf\x9c\x15\x97\xbf\xe8\xfb\xb7\xee\x2b\x02\xd5\x01\x5e\x98\xb9\x11\x9a\x6f\x4a\x18\x41\xeb\x03\x96\x57\x02\x2f\xea\x40\xad\x75\xad\x40\x1b\xef\xb8\xdf\x4d\x05\x55\x7a\x6d\x24\xa4\x86\xf0\x52\x5a\x65\xdf\xb0\x75\x07\x6c\xd0\x87\xce\xc2\xba\xf0\x46\x76\xfb\x0a\x9f\xb8\x85\x43\x7c\xfb\xd6\x3e\x13\xde\xba\xb3\x06\xd1\x67\xfe\x0f\x5b\x28\x4f\xf5\x95\xa2\x1f\x89\x04\x16\xea\x54\xaf\x0c\x0e\xf0\x2b\x4e\x5b\x32\x78\x07\x81\x63\xfe\x2f\xab\xf6\x60\xca\x5b\x49\x76\x95\xda\xd6\x6d\xc5\xbb\xc2\x83\x0d\x32\x5e\xfd\x1e\x2c\xea\xaa\xef\x3e\xd2\x0e\x78\x95\x7f\x57\xad\xbf\x47\x3d\x72\x25\x23\x87\xa6\x42\x2d\xb8\xb9\xce\x6d\x83\x08\x5a\xb3\x1f\x55\x32\x45\x62\x6a\x01\x88\xa2\xf5\x9e\x10\xf5\xde\x6c\x3b\x5a\x39\xda\x5c\x1c\x7b\x2e\x53\xd9\xaf\x1e\x58\xaa\x6a\x30\xea\xac\x96\xb4\x30\xf8\xde\x08\xf7\x96\x21\xdc\xda\x05\xbc\x25\xbf\xd5\xd8\x7d\x45\x24\x27\x6f\x60\x06\x37\x52\xe9\xd4\x83\x55\x60\xef\x6c\xc6\x97\xf7\xa0\xc6\x48\xd7\xbc\x91\xcf\xdc\x00\x5b\xc2\x6b\x58\x0e\x8a\x6c\x4d\xb3\x16\xed\xb2\x1e\x16\x5e\x96\x83\xb3\x04\xaa\x31\x1c\x1e\x6f\xbb\xf4\xda\xfd\xaa\x9b\x69\x79\xa2\x37\x1b\xaf\xf7\xac\xb8\x59\x79\xc7\x14\x85\xbe\xe1\x76\x58\xaf\x6f\xec\xec\x5b\xf6\xd6\x18\x79\x23\x23\xf4\x16\x85\x60\x96\x31\x49\x64\x74\xe0\xf2\xdc\x05\x42\x0a\xad\xb1\x7b\x11\xa6\xb3\x73\x25\x5b\x0f\x9e\xd4\x6c\xb8\x07\xb0\x15\x91\xfc\x20\x86\x7b\x3d\x26\x53\x94\x63\x34\xa0\x17\x8d\xd4\x02\x20\x17\x8a\xad\x4a\xbd\xe8\x9e\x27\x22\xba\x74\x14\xf1\x51\x06\x6a\x92\xf0\xf9\xd4\x22\x76\x0f\xf7\xbe\xaf\xf6\xa1\x99\x4e\x79\x42\xd8\x9a\x9c\x0d\xf7\x16\x66\x14\x80\x6c\xc2\x13\x0b\x10\x8d\x46\x3a\xee\x70\x90\x10\xa9\xf8\xef\x86\x62\x61\x2f\x07\xf4\x88\x4d\x64\x8c\x96\x14\xd2\x01\xb3\x1c\xee\xf1\x68\x3e\xe5\xb6\x98\x94\xa1\xa4\xc3\x3d\xd8\x16\x8a\xc9\x29\x76\x2c\x63\xaf\x63\x5b\xb3\x19\x6e\x38\x26\xa8\xe0\xe9\x18\x2d\xd9\x77\xe7\x68\x07\x14\x58\x7b\x94\xfe\x86\x77\xb1\xfd\x3b\x40\xa0\xfb\xee\x1c\x5d\x27\x79\x0a\x4b\x3a\x65\xb1\x62\x3a\x1b\x8f\xe5\x47\xa6\x21\x85\x41\xe3\xf3\xc0\xae\xe6\x53\x7e\x80\xb6\x49\x98\xd0\x68\x49\x89\x76\x66\x1e\x85\x29\xd3\x8c\x0b\xa3\x1d\xb0\xf3\xd8\xa2\x41\xd8\xd1\xba\xd2\xee\xb4\xde\x67\x6c\x71\x7c\xd4\x63\x8b\x93\x1e\x5b\x1c\x9b\xff\x03\x67\x81\x4f\x47\xe6\xaf\xd3\x1e\x5b\x9c\x02\xb3\x31\x5f\x9d\xc0\x88\xb0\x1d\xfc\x79\xd2\x63\x63\xa5\x8e\xf1\xdf\x72\x8a\xdd\x13\x70\x82\xdb\x40\x8b\x8d\xed\x0f\x2d\x6d\x8f\xa8\xaf\x57\xf4\xcf\x8a\x18\xfa\x14\x8c\x91\xe5\x18\xa8\xd6\xe6\xc8\xba\x60\xce\x76\x51\x9c\xeb\x0d\x92\x14\x98\x54\x6b\xf2\x7f\x5a\x6a\x7b\x61\xa8\x40\x00\x3c\x5f\x2c\x14\xd3\x73\x40\xb5\x00\x8a\x6b\xae\xa8\x25\xdb\xe8\xa8\xf5\xe8\xef\xcd\x54\x2c\x6d\x92\x6b\x9e\x45\x08\x89\xaa\x79\xaf\x12\x73\xd3\x9a\xa1\x30\xc2\xfa\x82\xc2\x55\xe3\x14\x35\x74\x7b\x48\xdb\x67\x84\xbc\x39\x4f\x52\x19\x80\x91\x9f\x6b\xc8\xfc\xa3\x1c\xc6\x56\x51\xab\x4f\xe0\x8a\xe7\x01\xab\xf7\x72\x90\xa4\x2a\x11\x61\xcb\x1c\xcc\x62\x63\x0b\x59\xed\xc9\xb1\xd5\x48\x31\x8b\xee\x64\xb8\x80\x58\x88\x24\xcf\x4a\x1c\xb0\x9b\x84\x07\x1f\x48\x7f\xd7\x5e\x7e\x24\x55\x67\xe4\x6c\x26\x27\x94\xab\x08\x50\x08\x80\xc5\x00\x43\xc8\xdb\xca\x98\x89\x34\xb0\xd5\x59\x51\xea\xd0\x46\x4e\x06\xc3\xbb\x56\x85\x5e\x20\xb4\x45\x45\x91\x48\xc0\xc4\x60\x56\x52\x4f\x0b\x2d\xf2\x00\x55\xc7\xab\xf6\x01\xd0\xde\x0c\x33\x56\x4c\x45\xb6\x6a\x07\x09\x1a\x62\x9c\x22\x06\x18\xd8\x71\x7c\x9e\x05\x79\x37\xc2\xda\xb9\xd2\x4a\x16\x28\x85\xf8\x50\xf6\xa7\x13\x7e\x30\x14\x88\x42\x79\xb0\x0f\x8a\xa3\xbd\x85\x4b\x91\x4b\x50\x77\x53\x19\x41\xff\x46\x1d\x20\x14\x81\xbc\xbf\xcf\x83\x19\xf2\xf8\xe4\xbd\x1a\x52\xd8\x96\xbe\xff\x54\x49\x73\xce\x05\x14\x73\xd4\xc0\x5a\xdd\xb9\x96\xaa\xae\xa5\xed\xdd\x43\x97\x35\x6d\x1d\x94\x3f\x47\xbb\x21\xe5\x18\x22\x0e\x46\x60\x03\x30\x35\xdb\xcf\xbd\x4a\xf6\xd1\xdc\xc8\x9a\xa1\x9b\x1b\xb4\xb1\x83\xce\x0d\xb5\x4b\x37\xd4\x86\x18\xbd\x0b\x4f\x87\xeb\x21\x94\xda\xff\xfc\xf7\xff\x5d\x1c\xff\xcf\x7f\xff\xbf\x1e\xfc\x75\x02\x23\x86\x8f\x22\x0d\xda\x5a\x12\xd0\xb0\x62\x33\xa0\xd3\xcd\x2d\x0b\xa0\x8c\x62\x97\xb7\xb6\xa4\xcf\x36\xb6\x46\xb0\xc6\x3c\x59\x1b\x17\xd9\x9b\xb6\xb7\x6f\x79\xab\xdc\x64\xef\xda\xda\x54\x55\xb8\xfe\x05\xa7\xc4\x66\xd7\xbf\x6a\x5f\x6b\x22\x04\xcd\xa8\xaa\xd5\x12\x6d\x35\x38\xa7\x82\x02\x7d\xc7\x11\x9f\x30\x11\xf3\x51\x24\xe3\xc9\x61\x28\x35\xfe\x55\x5c\x2e\xe0\xd1\x28\xfe\x5a\x93\x84\xe4\x18\x05\x7c\x7e\x79\xd1\x10\x14\xbb\xda\x92\x8f\x42\x45\x0b\xa1\xcc\x4b\x78\xb1\x61\x88\x6e\x9d\x8b\x4b\x53\xf6\x41\x55\x6e\x9e\xef\x94\xba\x01\xe5\xdd\xba\x8d\x84\x07\x5c\x5a\x50\xe4\xa9\xfd\xbf\xae\xb8\x52\xab\xe7\xf9\x85\xd9\xef\xab\x77\xa8\xd9\x9e\xbf\x58\x7d\xa1\x5a\xd8\xe3\x8b\xb7\xca\x7f\x60\x8b\xab\x55\x9c\xe3\xfa\x5b\xd5\xd2\x5c\x50\x46\xca\xa1\x1b\x58\x73\xd6\x3f\x9b\xc1\xc0\x3b\x06\xd7\x01\x8f\x56\x41\xe2\xaf\x7e\xd0\x45\x42\x10\xf4\x82\x0d\x56\x16\x50\xd7\x44\xf8\x4b\x8c\x62\x66\x51\x5f\x6a\x95\x0b\x38\x12\xd1\xb5\x88\x44\x90\xaa\xa4\x05\xc2\x5c\xa5\x7d\x21\xad\x26\x87\x9a\x23\xbf\x32\xa8\xc1\x15\xec\x38\x28\x4a\xa1\x92\x44\xe8\xb9\x8a\x11\x9c\x03\xa7\x7b\x8b\xd9\x4e\x03\x4d\x2f\xb8\x1d\xb0\x77\x71\xb4\xcc\xfb\xc5\x82\x4c\x2a\xc3\x1c\x86\x22\x88\x1d\xf9\xae\x09\x50\xd5\x45\x53\xe2\xc3\x30\x54\x72\x24\x0c\xf0\x2d\x88\xdf\x0b\x30\x08\xb7\x79\x7b\x3a\xd8\x77\x2a\xf9\x80\x14\xe9\x6f\x2a\x91\xff\x54\x71\xca\xa3\x4b\x15\x9e\x67\xa9\x82\xa5\x4f\x7c\x2d\x11\xb2\x2a\x6c\x9d\x7a\xa9\xbd\x65\xf0\x0a\x43\xa1\xe1\x14\x1f\xd8\x87\x9b\x04\x76\xc8\x48\x7c\x64\x76\xba\x54\x64\xcd\xa2\xf1\xb9\x04\x50\xee\x07\xf3\xc2\x0e\xe4\x8f\x48\x67\x79\x1e\xab\x64\x56\x9b\x9a\xf1\x80\xae\xe8\xaf\x60\x31\xfa\xfe\x39\x44\xb3\x78\x22\x30\xc0\x9a\x42\xa3\xad\xe0\x65\x11\xc6\xe8\x8c\xd4\x09\x05\x3d\x02\x96\x2e\x9d\x04\x5b\x6a\x91\x9c\x07\x87\xf0\xe2\xdb\xc2\x0d\x00\x2b\xbb\xad\x26\x44\x19\x58\x58\x64\x91\xca\x30\x6e\x21\xa2\xcd\x45\x70\x25\xe6\x91\x0c\xb8\x6e\x71\x3b\xca\xcd\x77\x7c\x39\x8c\xce\x9e\x50\xf7\x0f\x75\x35\xf0\x36\xec\x68\x13\x1b\x77\x09\x95\x4f\x40\x07\x4a\x12\x95\x30\x15\xb3\xef\xde\xdc\x6c\x9d\x95\xba\xc9\x16\x55\x1e\x78\x10\x0a\xf6\xd0\xdb\x84\x14\x6c\x67\x1b\x55\x1e\xf5\x16\xb7\xad\xec\xb9\xb8\x6f\x48\x72\xe5\xea\xad\xde\xf5\x27\xc1\xec\x37\x73\x0f\x54\x9e\x5c\xc1\xee\xf1\xf7\x75\xfc\x9e\x5d\xbb\xfc\x6b\x97\x18\x68\xf9\x92\xf0\x18\x5f\xfd\x29\x2f\xf6\x36\x60\xff\x66\xe4\x7b\x2d\xd2\x1e\xfb\x23\x85\xff\x1b\x56\x74\xd8\x30\x96\x3a\x5b\xc6\x1f\xd9\xe5\xfb\x1b\x3f\xb7\x10\x5a\xd5\xf5\x90\x62\xf5\x8f\x72\x07\x8a\x6a\x28\x03\x16\xfc\x24\x36\xbc\x0d\x81\xcc\x28\xff\x7f\x99\x4e\x0d\xeb\x13\x1f\x03\x31\x4f\x0b\x2b\x95\xf2\xf8\x9f\x1c\x07\x70\x78\xf9\xee\xfa\xe6\xf0\xf2\xfc\xe6\xd5\xdf\x2a\x63\xa9\x58\x5f\x2a\x2f\xa9\x74\xba\xf7\x39\x8f\xd8\x56\xa7\x4b\x17\x48\x1c\x4d\x06\x32\x9d\xca\x52\xa4\xde\x52\x8c\xd4\x25\x31\x97\x3d\xba\xbe\x85\x82\xf6\x6a\x7b\x06\x8f\x44\xc9\x05\x57\xde\x7e\x52\x53\xf0\xe2\xf1\x7a\xc2\x07\xc4\x1f\x19\x18\xc0\x45\xde\x72\x12\x0a\x8d\x42\xbf\x38\xbe\x25\x4e\x40\x49\xe3\x4f\x0b\x81\xa6\x4a\xac\x36\x86\xa0\x59\xbf\x64\x44\x64\xbc\x35\x23\x5a\x02\x66\x0f\x11\x9e\xb1\xe3\xc1\xda\x8b\x68\xa1\x8e\x5d\xd2\x72\xfd\xcd\xbc\x75\x6f\xc3\x0b\xaf\xfc\x7a\xe3\x03\x76\xb2\xfe\x45\xb5\x03\x5e\x45\x6c\x14\x85\x37\x92\x9f\x71\xf5\x08\x9e\x82\x83\xe3\xa7\xba\x78\xba\xd5\xc4\x23\x7f\xa4\x98\xa7\xea\x99\xcb\x66\x22\x9d\xaa\x70\x5b\x82\xa1\x30\xc4\xf9\xa7\xd3\xeb\x47\x33\x82\x96\x2a\xe2\xad\x3c\xf9\xa5\xe1\x59\x83\xb4\x0d\xcc\x5e\x9c\x5a\x6b\x21\xd5\xfe\x68\x36\x85\x7e\xa6\x13\xf0\x86\x40\x37\x5f\x53\x76\xde\xba\xed\xaf\x6d\x6f\xbd\xa7\xd6\xe3\x03\xb5\x03\x3d\x40\xcf\x02\xff\x87\x41\x84\x22\x74\x09\x81\xd0\x45\x8b\xa3\xb0\x02\xf3\xbd\x8d\x06\x50\x53\x7e\xe9\xf3\x56\x3c\xc9\x4f\xdb\x9a\x42\x8e\x05\xfc\xc7\x78\x49\xe5\xe9\xe0\x17\x2a\x4b\x89\x81\x52\x88\x3d\x5d\x80\xf4\x3d\x83\xc2\x94\x3d\x26\xe3\xf4\xe5\xf3\x1e\x1b\x47\x8a\xc3\x1f\x38\xe3\x1e\xfb\xf9\x17\x70\x04\x8e\x79\x20\xfe\xeb\xd7\x1e\x9b\xf1\xf9\xcf\xf8\x93\xff\x3d\x1c\xd3\x58\x46\x3b\xaa\x04\x59\x7f\xcb\x5a\xd7\xb2\x44\x42\x63\xbe\xec\xd3\xa5\xc3\x48\x35\x73\xe8\x0a\x60\xdd\xec\x75\xc2\xc7\x29\x7b\xce\xf6\xa7\x69\x3a\x3f\x3b\x3c\xfc\xbb\x56\x71\x9f\x6a\xc2\xaa\x64\x72\x78\xd0\xe2\xd0\x11\x81\xd9\xf8\xb4\xfd\xa1\xde\x69\xd3\xe6\xd1\xdc\x07\x7b\x51\x87\xa0\xf2\x08\x24\x8f\x6a\xa9\xae\x19\xdd\x65\xfd\x92\x3d\x81\x21\x46\xd1\xbb\xca\xa6\x3d\xa2\x63\xb4\x7c\xb4\xef\xe3\x09\xe5\xf1\xf2\x8b\x99\x0b\x19\x01\x1e\xeb\xb4\xac\x64\xdc\x61\x9e\x09\xc2\x9d\x75\x22\xaf\x4e\xe2\xca\x42\x17\x13\xb2\x5c\x06\x09\x45\xf0\x72\x0c\x1f\x1d\x0b\x9e\x66\x89\x6f\x4f\xa9\xc4\x7f\xd8\x87\x6c\xd3\x09\x94\x7d\x6c\x0a\x13\x41\xe3\x8f\x1d\x57\x9e\x45\x15\x50\x21\xf3\x3c\x05\x69\x71\xcc\xf6\x55\xc2\x62\x71\x27\x92\x83\xe6\xbc\xc0\xf3\xcb\x8b\x06\x0d\xc3\x5b\xf3\xf2\xc6\xb4\xb8\xea\x4f\xe5\xd4\xf9\x7c\xb9\x3a\x43\x2c\x4e\x1f\xd4\x50\xaa\x27\x33\xc5\x62\x61\xe7\x7b\xce\xf7\x5e\x72\x92\x88\xb3\xd9\x67\x26\x38\xf7\xa2\x32\x14\x84\xfd\x68\x54\xa6\x61\x10\xe4\x2a\xfd\x91\x7f\x94\xb3\xea\x82\xb6\xf2\x51\xe7\x9d\xc8\xf8\x1e\x9d\x38\x81\xfd\x51\xf8\x74\xbd\x42\x51\x3b\xb4\xcd\xab\x25\x79\x7a\x15\x7d\x4f\x1e\x1b\x8b\x0a\x49\x5f\xa3\x14\x8c\xba\xb9\x8d\xd3\x74\x42\xa2\xdf\xc4\x66\x46\x85\x67\xc3\x78\x18\xf7\xd9\x48\xab\x18\xef\x96\x0c\xcf\x0c\x79\xd7\x0e\x75\x8e\x5d\xbc\xc6\xaa\x97\x8c\xb3\x93\xe7\x46\xe3\x4f\x78\x00\x95\x16\xa7\xe2\xa3\xf5\xad\xf5\x59\x96\xc8\x33\x33\xd4\xf7\x57\x17\x8c\x6b\x36\xe7\x09\x01\x9d\x7c\xa7\x22\x1e\x4f\x58\x2c\xd2\xc3\x2c\x89\x06\x97\xe6\x87\x2b\xb4\x39\x98\xb6\x7d\x26\x66\x5c\x46\xf0\x2c\xfc\x65\x8b\x8c\x36\xf6\x62\x1a\x61\x37\xe7\xd4\xb2\x0f\xf5\x40\x63\x3e\x13\x67\xae\x8a\x75\x09\xa8\x70\x8c\x45\xfc\x2f\x00\x69\x50\xa4\x58\x7b\x15\xe3\xa6\xb8\x76\x31\x03\xa3\x25\xbb\xfa\xf6\x15\x3b\x3e\x3a\x35\xba\x02\x95\x58\x3e\x1d\x1c\xb3\x9f\xaf\xbe\x7d\x65\xbe\xfd\x65\xc0\xfa\x4c\xce\x17\xcf\xcf\xb0\x22\xea\xe2\x39\x94\x45\xad\x1f\x29\x0e\xf2\xe2\x12\x1f\x79\x69\x1f\x79\xd9\xee\x91\x40\x86\x89\x99\xce\xab\x8b\xd7\x57\xab\x9b\x43\x8b\x3e\x9b\xf1\xc0\xb4\xff\xf1\xfc\xd5\xba\x25\xc4\xc7\x4c\xc3\x3e\xcb\x32\xd8\xf1\x98\xbd\x7f\x7f\xf1\x9a\x82\xcc\x51\xab\xcd\xe6\x73\xc4\x54\xf1\x97\x07\x43\x6c\x27\xe2\x23\xdb\xff\x46\x1e\xfc\xe7\xcf\x47\xfd\xaf\x79\x7f\xfc\xcb\x7f\xfd\xf9\xd7\xfe\x37\xee\xc3\xf3\x76\x1f\x8e\x4f\x7e\xfd\x03\x8d\xe0\xd4\x0d\xe1\x74\x87\x63\x38\x75\x9f\x4e\xdb\x0c\xe2\xb9\x1b\xc4\xf3\x1d\x0e\xe2\x79\x71\x10\x7f\xfe\x9a\x8f\x7e\xa9\x1f\x97\x37\x94\x17\x6e\x28\x2f\x76\x38\x94\x17\x9b\x0e\x45\xea\x51\x8c\xc7\xf6\xfa\xaf\x6f\x8f\x8f\x98\x4a\xf0\xaf\x53\x9b\xbe\x44\xd7\x1f\xd0\x8a\x86\x7b\x47\xa7\x27\xc7\x7f\x7a\x71\x7c\xf4\xfc\xd4\x26\x3e\x7d\xfd\xa7\x3f\xf7\xdd\xb7\xc7\xc3\x3d\xea\xf3\xf8\xc8\xef\x75\x7d\x5f\xf4\xd4\x69\xfe\x54\xc3\x08\x6a\xde\x17\x24\x22\x94\x69\xc0\x13\x20\x6c\xf8\x89\x99\x8f\xb6\x87\xda\x95\xfc\xcf\xfd\x6f\xce\x60\xe7\x60\x2d\xf6\xbf\x39\xc3\xbf\x4f\x7f\x3d\xf8\xe6\xd3\x8b\x9f\x8f\xfb\x2f\x7e\xa1\x1f\x9f\xff\xfa\xe9\xe5\xfe\x37\x67\x47\xc7\xc7\x9f\x60\x79\xf1\xfb\x03\xf7\xe8\xa7\xd3\x9f\x9f\xff\xc9\x36\x3e\xfd\xf5\xd3\xa9\x69\xfc\xf3\x51\xff\xc5\x2f\x9f\x7e\x7e\xf9\xe7\x62\xeb\xe3\x5f\x3f\xed\x7f\x73\x76\x72\x7c\x7a\xfc\xe9\xf8\xcf\x47\x47\x9f\x4e\x5f\x0c\x87\xa1\x79\xa7\xf9\xcf\xf1\xf1\xaf\x07\x7f\xa0\xa4\xb5\x78\x09\x29\x72\xa1\x9c\x98\xb9\xe4\x14\x79\x26\x3f\x62\xc0\x72\x9f\x69\x6d\x76\x8e\xbd\x1f\x5c\x0f\x98\x56\x81\xe4\x91\x21\x68\x19\x14\x2d\xa3\x89\xe7\xac\xc1\x9b\x37\xbe\xf1\xe7\x3e\xfb\xe5\x1b\xf3\xe7\x49\xfe\xe7\x73\x38\x12\x53\xf1\x31\x50\x91\x4a\x60\x2b\xa6\xe2\x23\x0f\x45\x20\x67\x18\x37\xad\x12\x16\xa8\x50\xd8\xcd\xf8\xea\x5b\xf8\xdf\x59\xfd\x8b\xbe\xfa\x66\x9f\x8e\xdb\x79\xff\x5b\xb3\xb2\x9f\xfc\x8f\x2f\xcd\x64\xfb\x2c\x99\x8c\xf2\xb7\x5d\x7d\xf7\xd7\xca\x5b\x92\xc9\xc8\xbe\x2e\x99\x8c\xf6\x4f\x5e\xbc\xe8\xd1\xff\xbf\x86\xdd\x1f\x2d\x53\x71\xc6\x46\x5c\x8b\x97\xcf\x5d\x01\xfb\x91\x8c\x79\xb2\x64\x00\xe8\xd0\x67\xb6\xec\xf0\x19\xac\xab\xc5\x82\x73\x8c\xcd\xb0\x49\xb3\x92\x21\xe6\xb4\xf8\xa7\xed\xe4\xe8\xe8\x65\xff\xe8\xb8\x7f\x74\x32\xdc\x2b\xb1\x91\x71\x16\x45\x7d\x78\x44\xc6\x86\xa7\x9c\x9e\x9e\x7e\x6d\x3a\xa3\x82\x50\xd0\xa1\x2b\x0e\x55\xec\xf4\x84\xc5\x1a\xfb\xab\xd0\xee\x54\xce\x04\x12\xef\xd7\xf6\x61\x58\x0d\x04\x88\x88\x04\x1e\x8f\xeb\x80\x47\x5e\xf7\x24\x31\xe0\x4c\x4c\x0f\x6e\x36\x00\x29\x5e\x9e\xd2\xf1\xf3\xfe\xf1\x49\xff\xf8\xc5\xcd\xf1\xd7\x67\xa7\x47\x67\x27\x47\x83\xa3\xa3\xa3\xff\xa8\x4c\xd0\x74\xd0\x87\x0e\xf2\x09\x6e\x11\x9f\x20\x2b\xb1\xa1\x5b\x43\xec\x3e\x8a\xb6\x72\xde\x2c\x80\xcf\xf8\xc7\x5a\xc3\x55\xa1\x0a\xe0\xcb\xe7\x5b\x54\x01\x9c\xf1\x8f\x3f\x88\x78\x52\x8d\xdd\xd8\x49\xd7\xcd\xf6\xac\x9d\x74\x5f\x27\xc1\xe7\x1d\x87\x2a\x1b\x95\xfd\x92\xb6\x67\x24\x53\x0d\x1d\xcb\xf8\xa1\x16\x5b\xc6\x0f\xb6\xd8\x32\x7e\xd0\xc5\xae\x57\x97\x76\xb0\xd8\x59\x94\xca\x79\x24\xaa\x16\xb9\xfb\xf7\x1d\xab\x47\x33\x8c\xd5\x5a\x56\x0a\x63\xc9\xa2\x88\x8f\xaa\x3a\x74\x2b\x85\x53\xc5\x35\xeb\xf3\x1b\xb5\x58\xce\x79\x6a\xf4\xa4\x6d\x48\x33\x3d\xda\x7c\xce\x9f\x8c\xe9\xe9\x7e\xd6\xa6\x06\xc7\xc9\x97\x33\x41\x2f\xea\xac\xcd\x91\xde\x21\x90\x68\x2a\xd3\xe6\x3b\xb8\x69\xa1\x8b\x56\x2e\x52\xa8\x19\x52\xcb\x4f\x5a\x5d\xfd\x02\x1c\x96\x98\x8d\x44\x18\x8a\xd0\xc5\x03\xaf\x31\xf4\xac\x7e\xd8\x8b\x4c\xe2\xa9\x05\xe6\xca\x6c\xc1\x5f\xdb\x9c\x7d\xef\xba\x60\x49\x16\x83\x98\xf8\x8e\x42\xc3\x40\x24\xbc\x59\xce\xc5\x8f\x82\x00\xce\xf2\x72\x57\x68\x22\x82\x82\x1f\xd6\xd4\x6e\x23\x43\x10\x01\xda\x56\x2b\x4d\x15\x1b\x67\x09\x04\x76\x24\xc2\x2c\x65\x90\x52\xf8\x30\x0d\xc0\x3e\x86\x78\x6a\xa5\x0a\x9a\x05\xf4\x34\x67\x7a\x62\x3c\x4b\xd5\x8c\xa7\x16\xac\xa3\x0d\xa8\x58\x69\x4c\x23\x01\xb9\x65\x3d\x36\xca\xd2\xbc\x88\xea\x94\x2f\x04\xfd\x2a\xfd\x60\x13\xf3\xb0\x91\xcb\x97\x1e\xda\xd9\x7e\x36\x37\x4d\xcb\xc3\xce\x21\xe1\x9a\x00\x02\xdb\x1f\x08\x19\xa7\x7d\x95\xf4\xe9\x00\x6e\x70\x18\x0a\x0f\x7a\xc9\xaa\x74\x14\x1c\xae\xb6\xd4\x4c\x48\xd8\x1b\xaf\xb8\xb6\x4a\x5c\x50\x3d\x45\xc1\x22\x02\x3a\xae\x17\x9c\x9d\x79\xba\x64\xae\x7a\x34\x2d\x2a\xa4\x54\x9b\xef\xb8\x66\xc1\x54\x46\x21\x96\xf8\x58\xbe\x1b\x03\x7c\xba\x48\x6c\xb5\xec\xb1\xa7\xd5\x79\x85\x77\xf3\x2f\x89\x11\x68\xb0\x30\x1e\x1f\x60\x27\x67\xc3\x98\x31\xd6\x87\x57\x9c\xd9\xb1\x16\xbe\xc3\x21\x0f\xe3\x93\x03\x06\xfe\x4c\xfb\x84\xf7\x78\x7d\x07\xd5\x2e\xe0\xab\xc1\x60\xc0\xfe\x29\x12\x65\x16\x64\xa6\x92\x06\x09\xa5\xfd\x6e\x46\x52\xa7\xfd\x19\x9f\xf7\x3f\x88\xe5\xba\xc4\xe3\xe6\x07\x19\x54\x90\x80\x98\x31\x1e\x53\x94\x33\x5c\x54\xb3\x86\xd5\xc7\x60\x47\x6e\x67\x7c\x7e\x6b\x54\x2f\xca\x87\xb2\xfa\x34\xf4\x07\x59\x43\xdc\x16\x26\x0d\xc5\x47\xbb\x21\x33\x3e\x1f\x98\x1d\x00\x04\xfc\x94\x4f\xb0\x14\x26\x94\xbc\xb5\xc9\x46\x2a\x26\x78\x01\x38\x58\x78\x7b\xa6\x46\x19\xac\x1f\xc8\x70\x2f\xc7\xf4\xb3\xe9\x20\xc3\xbd\x19\x9f\x0f\xf7\x06\xec\x3c\xd2\xaa\x97\xd3\x29\xbf\x00\xb3\x03\x55\xcf\x91\xdf\xbd\xf4\x0f\xa3\xb3\x26\xb0\x81\x21\x25\x81\xd8\x9c\x48\x38\x85\x98\xf9\x91\x25\x82\xed\xc7\x8a\xc5\x42\x5b\x57\xa4\x0b\xf9\x38\xa0\x69\x0a\x96\xb3\x66\xef\xed\xf0\x2a\xba\x26\x3e\x62\xa2\x4a\x70\xc6\x25\x6f\x68\xcf\xcc\x0a\xd0\x08\xcc\x62\x28\x5d\xe8\xd5\x90\x31\xb2\x2e\x3b\xc8\x37\xc4\xc4\x32\x2c\xe4\xd1\x81\xb7\xeb\xb7\x69\xe3\xb3\x89\xd7\xbe\x7a\x2e\x3d\xda\x6f\x73\x5d\x99\x84\x78\xc1\xb9\x8a\xd4\x64\x49\xd5\x15\xf2\x33\x01\x4b\x5d\x7f\xc2\x6c\x65\x1f\x58\xf2\x53\x36\x57\x5a\x83\xdd\x02\x0f\x8b\x25\x15\xb7\x3c\x55\x33\x19\xdc\x9e\xe5\x38\x5c\x40\xb9\xd0\x09\xcc\x75\x9e\x3d\x2e\xe2\x54\xa6\xcb\x1e\x5a\x2f\xec\x29\x1a\x10\x3d\x38\x87\x5e\xe8\xcd\x16\x2a\xd3\x3c\x91\x88\x68\xc9\x12\x31\x8f\x78\x60\xd3\x34\x5d\x21\x97\xe2\x5c\xa8\x27\x42\x51\xb1\x73\xe1\xf1\xd2\x55\xc9\x82\xd1\xed\xe3\xf1\xec\xd1\x00\x7a\x86\xea\x98\xf3\x78\x72\xc0\x6e\xb5\x48\x6f\x2d\xdd\xba\x16\x69\x0e\x9a\x45\xf7\xcd\x65\x0e\xc2\x9a\x58\x55\x0b\x8f\x52\x4e\x13\x34\x9f\x09\x1b\xf5\xf4\x86\x07\x53\xea\x10\x19\x40\xf9\x1a\xf5\xf2\xa2\x4c\xd8\x43\x61\xb3\x0d\x0d\x42\x82\x42\xcb\x0c\xbc\xc2\x4e\xd5\xa3\x45\x4d\x74\x88\x1e\x1b\x0c\xe3\xd3\x03\xa4\x4a\x76\x7e\x18\x8f\x45\x5b\x9d\x90\x89\x6e\xc6\xe7\x1a\x33\x25\x50\x82\x91\x09\x13\x91\x00\x48\x7c\x7b\xf5\x62\x15\xf7\x91\x6a\x7d\x10\x4b\xea\xcb\xe2\xda\x60\x0a\x25\xa2\xd8\xce\x06\xec\x1d\x22\x92\x79\xf0\xab\x2c\x9b\x43\xb8\x65\x42\x69\xb4\xe6\x85\x86\xd2\xd9\xbd\xab\x3b\x8d\x14\xb1\x09\xd3\x74\x83\x31\x04\x07\x76\x15\x65\x99\x61\xec\x43\xb4\xe2\xa4\xf1\xba\x9b\x25\xda\xa6\x52\x45\xed\x36\x6c\x72\x4f\xdd\xd6\x15\xae\x29\xed\xf4\x0e\xee\x29\x5c\x05\x2b\x12\x50\xb7\x85\x2b\x7b\xd2\x78\x65\x27\x09\x8f\xb3\x88\x27\xa5\xb3\x00\x9b\x9f\xa3\x16\xe1\xe7\xfd\x0f\x62\xd9\xc7\xa3\x3b\xe7\x32\xd1\x07\xf0\x12\xc1\x83\xa9\x45\xa5\x05\x37\x66\x6c\x23\x18\x52\xea\x12\xd2\xbe\xa1\x19\xc6\x18\xef\x03\x20\x4b\x60\x84\x19\xf3\xe5\xc8\xbc\x2e\x96\xf3\x2c\xe2\x94\xd5\xa1\xc5\x9c\x27\x00\x00\x19\xa4\x2a\xd1\x79\x21\x18\xea\x90\xf2\x85\x81\xec\x8f\xc4\x94\x2f\xa4\xca\x12\x47\xd2\xcd\x58\xe9\x12\xef\x94\x20\xc1\x1a\xb4\xa4\x47\xf7\x3c\x64\x0d\x62\xf4\x26\x67\xae\x49\x12\xd7\xa9\x9a\xe7\x58\x96\xa8\xa0\xb2\x50\x04\x2a\x04\x69\x35\x15\x73\xdc\x2f\x0b\x79\xd0\x0e\xda\xb9\x82\x37\x40\x5b\xc6\xc7\x63\x00\x02\xa2\x5e\x12\x11\x64\x89\x96\x0b\x11\x2d\x51\xf8\xd7\x77\x32\x0d\xa6\x42\x03\x6e\xb2\xb9\x0a\x58\xbb\xc6\xbd\x3d\xdf\x5d\x39\x06\xf1\x41\x84\x3e\x47\x37\x3b\x5e\xa3\xb6\x17\x51\x4b\xec\x18\x0b\x03\x83\xd3\xe7\xc4\x0a\x00\x72\xf6\xe3\xa8\x06\x58\xbe\x11\x54\x0f\x95\x8c\x64\x18\x8a\xa6\x12\x8e\x55\x19\xf4\x5f\x4a\xbb\xfb\xc0\xe1\xb8\x35\x86\xee\xd6\xd1\xa9\xf4\x40\xb1\x64\x3b\x5e\x71\x4c\x06\x2c\x2c\x13\xc6\xb1\xfa\xc1\xad\xe8\x9e\x47\xe6\xa3\xc6\xe5\x9f\x07\xec\x47\x2e\x0d\xa1\x82\x54\x3e\xc0\xa6\xa2\x84\x5f\x82\xac\xca\x12\x48\xbf\x7a\xc8\x48\x5d\x8a\xbc\xdc\x60\x45\x4c\x7b\x7f\x41\xea\xe6\xcc\x68\xd7\x2d\x6f\xaf\xa0\x82\xdb\xd4\x31\xdb\x8e\x0e\xed\xf2\x61\xa7\xea\x07\x65\x6d\x30\x63\xef\xb1\xe2\x49\xa8\x9d\x3a\x29\xb6\xb0\xe9\x3b\x9d\xce\xb5\x48\x16\x32\x10\x57\x16\x88\x69\xc5\x14\xca\x4d\xd9\x54\x01\xff\x71\x31\xfd\x60\x49\xa0\x56\x83\x48\x4c\x78\xb0\x2c\x97\x8d\x6b\x0c\xa2\xde\x10\xce\xc7\xc7\x83\xd5\xf4\x46\x76\x65\xcd\x70\x1b\x33\x02\x87\x1a\xde\x62\x08\xd0\xce\x1f\x07\x7e\xb1\xbb\xc1\xcc\xd7\x67\x1e\x63\xbe\x25\x4a\x34\x16\x41\xf7\xfd\xd5\x0f\x98\x87\xc9\x53\xe2\x1c\x66\x3c\x77\x62\x34\x55\xea\x83\xe3\xa1\x00\x04\x10\x6c\xc7\x2e\x8d\xf2\xb8\x6e\x60\x50\x9c\xa9\x38\x30\x5a\x12\x06\xbf\xb5\x1c\x1c\xbb\x35\xad\x6f\x3d\xac\x0f\x1b\xac\x04\xbd\x58\x44\xd8\xe3\xfe\xcb\x17\x2f\x4e\x5f\xf4\xb0\xd6\xae\x61\x72\x07\x45\xba\xf0\xfc\xf9\x69\xa1\x44\x40\xa9\x42\x40\x71\x0d\x0a\x6e\xa5\xd3\x93\xb6\x6e\xa5\x0a\xeb\x69\x06\x1b\xc1\x33\x56\x46\xb1\xa2\x8f\x8f\x91\x6f\xfc\x6f\xb8\xe2\xaf\xa0\xa2\xd6\x2b\x80\x66\x5f\x71\xe3\x6b\x5a\xe7\x48\x12\x68\x3e\xc1\x35\x23\x8c\xc2\x19\x66\xde\xde\xfc\x70\x6d\x9a\xc5\x14\x14\xe6\x14\x33\xda\xee\x16\x29\x15\x01\xff\x6b\x16\x87\x55\xcb\x76\xa5\x04\x22\x36\xc3\x38\xeb\xcb\x37\x3f\xba\xb0\x85\x57\xe7\x6c\x84\x3f\xe1\x69\xb3\x27\xac\x02\x77\xee\x8d\xeb\x99\xb6\xa2\x59\x60\xc6\x04\x39\x22\x88\xa3\x9e\xc5\x1e\x1c\x9b\x5e\xea\x54\xcc\x0c\xc7\xd1\x29\x4b\x94\x32\xda\x10\x0a\x3b\x6e\x17\x1c\x46\x74\xe3\x01\x1b\x2d\xd3\x06\xf3\xda\x4a\x84\x02\xbc\x49\x8f\xe1\x04\xac\xf0\x85\x95\xc9\x9d\x74\xc3\x65\x85\x1b\x78\x24\x31\x37\x6a\xd9\x73\xc0\xde\xa0\x94\x63\x1b\x18\x61\x30\x89\x9c\x8a\x9e\x23\x70\x1b\xc5\x89\x20\xb2\x2d\xc9\x90\x60\xbd\x07\x79\xd5\x9c\x2f\x8b\x48\x80\x75\x1d\x08\x7d\x79\xa9\x32\x4b\x40\x00\x20\x9d\xde\x73\xdb\x10\xe6\x5e\x93\xfd\x55\x9a\xa7\x19\xdd\x44\x2e\x28\x7b\x35\xa2\x0a\x74\x96\xf4\xd3\xd0\x7a\x88\xa3\xc2\xe3\xd0\xd0\x1b\x43\x95\xa1\xd2\xce\xfe\x2d\xc8\xc2\xe2\xec\xf0\x70\xaa\x74\x7a\x66\xe8\xd8\xa1\xa1\xd7\xb7\x07\x03\xf6\xc6\xc3\xb0\x52\x63\x76\x9b\x25\x11\x42\xca\xd8\x21\x37\x2c\x8a\x51\xe1\x6f\x4d\x77\x8e\x52\x1a\x4d\x01\x76\x00\x14\x71\xb7\xb4\x76\xad\x8a\xeb\xf4\x17\x2a\x3b\xe9\xad\x8d\x05\x2b\x25\x04\x79\x30\x12\x40\x00\xe8\x4c\x4e\xa6\x04\xfe\xa9\x55\x64\x71\xc4\x5c\xfe\xde\xeb\xb7\xd7\x30\x6f\x35\xf3\xee\x81\xc6\xd2\xa2\x3d\xac\xce\x97\x1f\xbe\x5b\x23\xe3\xe2\x48\xa1\x2f\x26\xe3\x3e\x0d\x09\x3a\xe2\x16\x9e\x35\x27\xfe\x11\x5f\x0a\x2c\x6b\x2c\x55\x04\xcb\x7e\x30\xb0\x53\x37\x2a\x37\x8f\x34\x78\x31\x20\x6e\xd4\x06\x75\xc2\x1a\x5d\x46\x82\x6b\x50\xa1\x48\xbe\xc6\xcc\x88\x5b\xb3\x7d\x11\x76\x60\x56\xfa\xf8\xe4\x4f\x83\xa3\xc1\xd1\xe0\xf8\x16\x95\x54\xea\xdb\x9c\x33\xa9\x3f\x2c\x59\x16\x47\x42\x6b\x38\x53\x00\x30\x30\x31\x1a\x2d\x0b\x00\x78\x58\x99\xf5\x2d\x9c\x6d\x86\x19\x8f\xb0\x74\x56\x91\x33\x6d\x8c\xe0\xee\xa8\x04\x7e\x8d\x0b\x1b\x0b\x24\x4c\x40\x42\xa1\xbc\x27\x5e\x1f\xff\xba\x5c\x67\xc1\x14\xeb\x86\x9a\x9f\xad\xd1\x28\x5a\x92\x03\x27\x56\x71\xdf\x9c\x2a\x3e\x8a\x04\x86\x21\xf7\xe0\x38\x08\xae\xa1\x09\xc0\xa4\x64\x73\xb3\x4d\x9c\xc5\xe2\xce\x9e\x02\x77\x92\xf0\x80\xba\xa3\x36\xdc\x03\xd4\x9f\xe1\xde\x5f\xe0\x88\x98\x93\x4c\x3f\x4d\x24\x51\x75\x6a\x72\x76\x78\x38\xdc\x83\x6e\xce\x99\x15\x4d\x2c\xfb\x27\xc0\x05\x57\x8c\xc2\x1a\x08\x79\x6c\xb1\x74\xd0\x55\x42\xa6\x12\x18\xdc\xfb\xab\x1f\x06\xec\xdf\x55\x06\x6d\xed\x11\x85\x8e\x53\x05\x31\x68\xa8\x00\x8d\x64\x9a\xf0\xc4\x75\x43\xe4\xc6\x5d\x43\xcc\x24\x85\x48\xff\x1e\xe3\x76\xb6\xd6\x48\x26\x69\xe2\xe7\x69\x2a\x66\x73\x5b\xf8\xc8\xbc\x8c\x8a\xfb\x81\xd4\xa0\x65\xc0\x78\x96\x4e\x11\x31\x72\xb8\x67\x7e\x39\xb3\x51\x70\xff\x6b\xb8\x87\x58\x29\x69\x8e\xb4\xf2\x6d\xc2\x27\x68\x22\xdb\x1f\xee\x7d\x35\x18\x0c\x86\x7b\x68\xb2\xf9\x47\x26\x92\x25\x9b\xf3\x84\xcf\x04\x04\x20\xee\x0f\xf7\xbe\xb1\xbf\x93\x8a\x4f\xbd\xf4\x48\xfd\xdb\x1a\x05\xa5\x9d\xfc\x50\xa9\x52\x3d\x70\x39\xf6\xff\xff\x8c\x83\x71\x66\x85\x6c\x60\x9b\x10\x14\xa1\xfc\x28\xc2\x3e\x66\xd7\xd7\xd4\xbd\x27\x81\x0d\x5c\xa5\xf3\x44\x2d\x64\x68\x4b\xb2\xc5\x12\xcf\x44\xa2\xa7\x88\x7a\x90\xc5\xf9\x07\x73\x1a\x20\x87\xd5\x2c\xe0\xbf\x9f\xff\xf8\x03\xd0\x56\x6b\x7d\x00\x6d\x03\xd6\x62\x1f\x97\xf8\x5c\x5f\xc4\xe9\xcb\xe7\xe6\x13\xa0\x51\xa9\x44\xe7\x67\xbb\xa0\x04\xbb\x8c\x01\xb0\xc9\x21\x36\xe7\x3f\x68\x42\x54\x28\x80\xfe\x77\x76\xf6\xaf\xb6\x9c\xa8\x9c\xc4\x22\x7c\x0b\x13\xc1\x36\xf4\x3d\x14\x0b\xa0\x6f\x62\xc6\xf6\xdf\x3a\x4a\x53\x6d\x60\x4f\x3f\x78\x14\x7b\x79\x3d\xf5\xe1\xde\x70\x8f\x41\xb0\xb2\x8c\xe9\x31\x0a\x16\xbd\xbe\xa0\x82\x6c\x07\x76\xa0\x10\xca\x5a\x1c\x25\x0d\xf4\x88\x7d\x62\xc7\xec\x13\x38\xf2\x3e\xb1\xaf\x99\xd7\x5e\x97\x1f\xc8\x27\xe6\xf7\xf7\xa9\xfa\x5d\x4d\x27\x54\x34\xce\x5b\x8a\xc6\x7e\x75\x5d\xc7\xba\x50\x63\x6e\x7d\x3b\x33\xa5\xc6\x61\x98\x7d\xa9\xac\x06\x0e\x63\xef\xff\x37\xdc\x33\x3d\xee\xf5\x87\x7b\x8d\xbb\x58\x1c\x74\x61\x52\x9f\x2a\xaf\xa8\x69\x54\xb3\xc9\x35\x8b\x81\x71\xb4\x76\x33\xf3\x69\xe2\x26\xbf\xf9\x38\x57\xb1\x88\x2b\xbb\x50\x3c\x02\xf5\x5d\x79\xaf\xfa\x5e\xb2\x4f\xec\x47\xf3\xcf\x77\xe6\x9f\x1b\xf3\xcf\xa5\xf9\xe7\x8d\x84\x93\x89\x29\x1d\x9c\xf4\xb2\x6b\x14\x64\xa1\xce\x99\x4c\xf5\x5f\xd8\xb5\x10\x88\xf4\x76\x76\x78\x38\x9f\x2e\xb5\x0c\xf4\x20\x96\x3a\x1d\x4c\xd4\xe2\x30\xc8\xb2\xc3\xf7\xa6\xdd\x21\xbe\x7f\x30\x4d\x67\x51\x7e\x26\x4b\x23\xcd\xc7\x34\x83\x0d\x80\x7d\xf8\x60\x46\x67\x06\x67\xc6\x66\x86\x66\x46\x56\xba\x32\xc7\x47\x27\xcf\xd9\xbf\xb2\xe3\xef\x25\xd8\x2a\x8f\x8f\x8e\x8e\xcc\xc7\x0f\x7f\x61\x17\x2c\x94\x61\xfc\x2c\x65\xc1\x54\x29\xe2\x09\x01\x9f\xcb\xd4\x5d\xeb\x41\x79\x38\xa5\x65\xc5\x33\x21\x56\x9d\x05\x33\xd6\x37\x2b\x1a\x18\x72\xf1\xd6\x70\xe9\x34\x75\x0c\x9c\xc4\xbf\x74\x9a\x08\x01\xe0\x46\x31\x39\x3b\x67\xda\x22\x30\x1b\x46\xcc\x2c\x81\x01\x1a\xe0\x88\x64\x5e\x38\x05\x24\x0a\x0b\x07\x72\xf2\x9f\x2f\x4f\xfb\xc7\x86\x1a\xcc\xf8\x24\x96\x69\x16\x0a\xd3\x49\x02\x0f\x4b\xeb\x01\x53\xe0\x72\xe5\x31\x3b\x65\x36\xb6\x1c\x2c\xe3\x7a\xc0\x70\xd4\x9a\x45\x3c\xa1\x18\x07\x68\x3d\x4f\x44\x20\xb5\xc8\x55\x6e\x3e\x9f\xa3\x6b\x37\x51\x19\x60\x2e\x64\xf3\x01\xdb\x7f\x33\x98\x0c\xce\xd8\xd1\xe0\x78\x46\x20\x6b\xee\x47\x43\x75\x8f\x67\x83\x03\x34\xe9\x5a\x72\x66\x01\x1b\x6c\x6d\xc9\x0c\xfc\xcf\x72\xcc\xee\x9c\xff\xd8\x1b\x89\x9e\x71\x40\xbb\xa7\x15\x91\x02\xe9\x34\x00\xbb\x70\xe6\x73\x16\x0a\xeb\x06\x3a\xc9\x1d\x24\x81\x2d\x83\x93\x88\x99\x80\xa5\x4b\x6d\x68\x8e\x1a\xdb\xe2\x2d\xb0\x46\x21\x4a\x1f\x5e\x85\x75\x72\x0f\xa2\x67\x68\xc2\xa1\x5c\x8f\x88\x4d\x6b\xa9\x3d\x68\x44\x18\xcf\x5f\xc5\x58\x25\x39\xeb\x80\x57\xbb\xc1\xd9\x05\x9c\x67\x80\x70\x3f\xdc\x0b\x78\xac\x62\xc0\x2f\x35\x5b\x3f\xdc\x23\xa3\xf7\x4c\xf0\x98\xc4\x59\x7b\x1c\x0f\x69\x88\xb6\x0b\x1e\xfe\x3d\x03\x2b\x7b\x36\x37\xab\x13\xaa\xbb\x98\xed\x53\xc9\x9d\x1c\x19\x0e\xf9\x61\x90\x80\x34\x0b\xb8\xe7\xf4\xb7\x8c\xd9\x8f\x66\x50\x5a\xf3\x03\xac\x59\x63\xde\x06\xbe\x25\x3e\x60\x6f\x15\xed\x39\x01\xb0\x44\x4a\x83\x8f\x68\x04\x3f\x8d\x13\x1e\x10\x39\x40\xd2\x9a\x3b\x5b\x30\x7a\xc5\x34\x25\x34\x6c\x77\xb4\xf7\xcd\x16\xc2\x14\x0e\x80\xfb\xd3\x21\x83\x30\x7c\x72\x79\x0d\x88\xeb\xca\x49\xec\x7a\x54\x14\x0f\x43\x92\x34\x98\xcf\xf0\xe4\x1b\x21\x4a\x4c\x78\x2a\x17\x02\x16\xfe\x0d\x4a\x6d\x1a\xe6\x70\x3c\x78\xe1\xba\xf0\xb0\x2b\xb9\x66\xc3\xbd\xe3\x17\x47\x47\xb3\xe1\x1e\x35\xfb\x4e\xae\x68\x78\xfa\xf2\x47\x69\x5a\x9a\xfb\x6b\x89\x8d\x19\xc2\x3f\x0a\x1b\xfa\xf6\xcd\x4f\x6f\xae\x20\x1a\x0a\x49\x65\x14\x2d\xcb\xf0\x67\x1c\x21\x32\x40\x70\x05\x79\xc7\xca\x36\x37\x53\x4c\x42\x04\x21\x74\xaa\x22\x41\xbf\x5b\x00\x6b\xf1\x51\x24\xe6\xee\x0d\x70\x10\x71\x3f\x3f\x31\x14\x00\x82\xb5\x9d\x52\xf3\x2f\x1c\x7c\x58\x5a\x15\x4f\x28\x5a\x65\x09\x82\xe2\x9d\x88\xf0\x88\x19\xb2\x62\x68\x64\x5e\xd9\xb2\x2f\x6c\xc8\x51\x4c\xde\xe3\xe2\xa1\x1c\xb0\xfd\x6b\x65\x6b\x72\x9a\xfb\x50\xfc\xb9\x87\xa7\xcf\xd0\xd8\x50\x8e\xc7\x40\x4e\x31\x18\x26\xcf\xb0\x34\xeb\x02\x37\xdd\xea\x2a\x12\x1b\xcb\x80\xb0\xfb\xe8\x9a\x69\xbb\xb9\x39\x48\xe1\x5d\x22\x61\xd5\x40\x47\x84\x0a\x56\xe6\xb6\x1a\x7d\x96\x47\x6c\xca\xe3\x10\x44\x3e\xc8\x57\x21\x32\x32\x55\xf3\x3c\x86\x8b\xd3\x4c\x03\x6e\x5e\x21\xcd\x01\x31\x82\xb6\x4a\xd0\xe7\x6c\xf4\x3f\x94\xde\x41\x16\xa5\xb5\x77\xcd\xca\x08\x32\x75\xc2\x74\x0b\x11\x59\x0f\x66\x22\xe5\x83\xc5\xf1\xe0\xfc\xf2\xe2\xbb\x52\x75\xe0\xb2\x88\x6c\x9b\x14\x6d\x66\x98\x49\x09\x94\xc8\xc6\xe3\xb8\xea\x1b\xae\x4e\x87\xb9\xb3\x63\x91\x78\x35\x45\x50\x8e\x06\x48\xf9\x36\xe5\x1f\x5c\x78\xde\x1a\x93\xc6\xf9\xe5\xc5\x4f\xa5\x52\xc9\x1e\x5c\xbe\x08\x2d\x38\x91\x3d\xc4\x35\xc2\x7d\xec\x22\x1a\xaf\x49\xeb\x27\x5b\x04\xd6\x5c\x36\x0a\x41\xa0\x26\x31\x5c\x46\x0b\xaf\x4e\xba\x5a\xc4\x53\x01\x15\x42\xc8\x8a\x40\xf1\x44\xd6\x8f\x9e\x08\x70\xab\x67\xb1\xd7\x03\x5e\x95\x5a\x70\xda\x89\x4c\xc9\xdf\x70\x18\xa8\xd9\xcc\x48\x35\xcb\x43\x28\xae\x22\x47\x99\x39\x28\x87\xa1\x58\x88\xe8\x50\xcb\x49\x9f\x27\xc1\x54\xa6\x02\xe2\xa4\x6c\xc9\x89\x85\x51\x0c\x55\xac\x07\xb3\xf0\xab\x06\xec\xed\x36\x56\x3a\x28\x77\xbf\x7a\xd5\xbf\x97\x31\x61\xb8\x93\xee\x8a\xee\x3f\xb7\xb8\x36\x5e\x0d\x60\xda\x3d\xb4\xb8\x3c\xd4\x20\x77\x19\xe5\xcb\x0e\xa2\x41\x3c\xb6\x65\x09\x9c\x72\xe1\x70\xcf\xd0\xf4\x03\x1a\x97\xce\x46\x33\x43\xee\x3d\x48\xb3\x01\x7b\x85\x56\x99\x91\xc8\x63\x7c\x2e\x62\xf6\x8a\xcf\x44\xf4\x8a\x6b\xf1\xe0\x8b\x0e\xe8\x44\x7d\xb3\x7e\x5b\x2c\xfb\x3d\x3c\x48\xa5\x5b\xd5\xfa\x95\xee\x92\x36\xdc\xb5\x75\x86\xd9\x15\xe4\x05\x08\x07\x75\xfb\xad\x4a\x5e\xdb\x5a\x55\x2b\xed\xb0\xe5\xf1\x94\x8b\x5f\xe4\x44\x85\x12\x38\xf3\x70\x04\x5b\x25\x70\x9e\xa8\x11\x1f\x45\x4b\xfb\xa8\x85\xf1\xb7\x35\xec\x56\x94\x2e\x48\x28\xc7\xfc\xaf\x4b\x72\x18\x5c\xbc\xbe\x5a\x5b\x6f\x06\x22\x90\xd4\xd8\x1e\x4b\xc8\xcf\xb6\x70\xa5\x89\x4b\xce\x4e\x89\xb5\x52\x69\x62\x3c\xdf\xb8\x6b\x36\x4c\xc5\x3c\x35\x15\xd1\x9c\x7a\x32\x27\x9b\xdb\x32\x8c\x89\xb6\x1c\x65\x06\xb9\xec\x22\xbd\x53\xc9\x87\xbe\x30\x6c\x0b\x5e\x7b\xc7\x97\xb9\xe8\xc2\x5e\x51\x0f\x01\x8f\x9d\xd4\xc8\xe7\x86\xd4\x26\x12\x32\x1b\x8b\x83\xe3\x10\xec\x8b\x98\x2e\x30\x7c\x12\x2d\x96\x58\x82\x12\xee\x10\xa8\xf6\x6a\x9c\xc7\xac\xc1\x4f\x42\xf7\xdc\x70\x3d\x43\x35\x1a\x97\xe3\x89\xb0\x55\x2c\xcd\x94\x4d\xd7\x28\x87\xd1\xeb\x2d\x6c\x24\x44\x25\x61\xdc\x25\xac\x38\x2d\x16\x84\x3d\xc7\x1f\xbc\x68\x78\x5a\x62\x33\x2b\x1a\xd8\xb7\xb9\x85\xec\x8c\x22\x60\xc1\x44\x56\xc2\x55\x76\xe4\xf9\xe2\x12\x67\x68\x5e\xd9\xb3\x01\xe3\xd4\x2d\x2c\xb7\x85\x05\xc5\x11\xa2\xa1\xb5\xd8\x81\xa5\x56\x2c\x52\xea\x83\x66\x3c\x65\xff\xa7\xff\xad\x4a\xee\x78\x12\x8a\xd0\xfc\xc5\xa6\x82\x87\xa8\x26\xfc\x9f\xfe\x95\xe0\x51\xff\x62\xee\x7d\x47\xf4\x6a\x70\x25\x66\x2a\x05\x54\x03\x2a\x68\xcf\x53\xac\x6e\x79\x60\x0e\xc2\x44\x14\xa6\x7c\x71\xb9\x9b\x12\x38\x2b\xee\xeb\x75\xd3\x0d\xb8\x57\xb8\xea\xa6\xe5\x58\x6d\x19\xbc\xbc\x7c\xa7\x13\x31\x6c\x15\xae\x3a\x5a\xb7\xfb\xe5\x68\x24\x5f\x1b\xaf\xc6\x06\xde\xd5\xbd\xba\x95\x5b\xe7\x5c\x75\xdf\x17\x22\xb9\x60\x95\x6c\xf9\x8a\x3e\x71\xf4\xfc\x75\x85\xcd\x98\x90\x18\xb8\x57\x5c\x54\x7a\xc8\x49\x81\xc5\x5f\xf3\x4a\xc8\x7b\x8b\xe3\xea\x74\x7f\xd9\x5e\x20\xfd\x41\xea\xb4\x85\x50\xfa\x03\x45\xe6\xe5\x80\x9c\xf6\x97\x1e\xca\xd3\x91\xba\x73\xc4\x29\x55\xae\x5a\xa2\xe3\x1b\x3c\x65\x50\xec\xa8\x93\x46\x9f\xb4\x34\x0a\xa7\x73\x1d\x01\xc1\x46\xf5\xc7\xe1\xc1\x69\x85\xbb\x20\xf7\xa1\x94\x9d\xd0\xfd\x78\x42\x77\x4b\x92\x4c\x27\xef\xc9\x10\x60\x20\x8c\x0f\x4f\x84\xaf\xaa\xb9\x8c\x35\x64\xee\xca\x61\x5e\x7b\xb9\x6a\xb9\x56\xc2\xf3\x03\x08\x06\xcc\xa9\x80\x48\x09\x34\x53\xba\x48\xa2\xb0\x55\x28\x4d\x2a\x26\x2a\xa9\x49\xbe\xad\x04\xd3\xd8\x86\x45\x3a\xe0\x14\x24\x11\xb2\x52\x39\x29\x37\xc6\x91\x30\xf2\x2a\x10\x52\xf0\xf8\xb3\x67\x3c\x8a\x9e\x1d\x3c\x76\x76\xcf\xa4\x64\x90\xa9\x9b\x26\xb4\xb1\xda\x4d\xae\x10\xe1\xd7\x34\xdd\x1c\x6b\x9c\xbd\x81\xd4\x3f\x39\x9b\x47\x76\x8b\x0a\x2d\xc9\xb2\x63\x48\x87\x5b\x0c\xac\x9b\xfa\x2d\x18\x49\x73\x34\xfc\x1e\x2e\x99\x4b\x0f\xe0\x5e\xa1\x61\x62\x34\x63\x5f\x1c\x07\xe4\xf7\xe1\xde\x16\x5a\x69\x0b\x52\xf8\x81\x48\x21\xe4\xc4\x99\xbf\x6d\xe8\xac\x9b\x04\x6d\xe3\xb7\x4a\x3d\xab\x34\xf4\x0e\xe7\xb3\xb1\x52\xe5\x7d\x7e\x00\x65\x7d\x1e\x65\x09\x8f\x0a\x3a\xbb\xdb\xa3\x7b\x44\x7b\xae\x5b\xa6\xbc\xa1\x07\x5c\x2f\x0b\xb7\xb3\x70\x1d\x8d\x82\x12\xab\x72\x91\xdb\x76\xc5\xe6\xa6\x2a\x49\x6b\xcb\x6e\x97\x63\xad\x5c\xc3\xe2\x35\xd5\xd9\x64\x82\xb1\xfa\xd0\x82\x6a\x56\xaf\x5e\xac\x87\xbf\x91\x46\x03\xcc\x22\x9e\xbc\x5d\xbf\xdf\x7e\x53\x67\x7d\xa0\xef\xea\x77\x9e\x51\xbe\x03\xe2\x7d\x79\xb2\x2a\x18\x93\xdd\xa9\x81\xea\x14\xb6\x23\x35\xe7\xff\xc8\x44\xb4\x24\x55\xba\xf4\x4e\x70\x91\x81\xcb\x25\xc0\x74\xc5\x44\x18\xf5\x09\xb3\x34\xa0\x80\x01\x24\x44\x51\x02\x8b\x59\x3e\xe8\x7d\xa4\xd2\x69\xfe\x0a\x40\x6c\xa7\x57\xe7\x45\x78\x72\xc9\xc0\x70\xb9\x20\x8d\xd8\xab\x1f\x2e\x98\x83\xd0\xde\xaa\x5e\x11\x98\x66\x48\x60\xfe\x1b\xd7\xeb\xa2\x86\x21\x96\x8b\xeb\x29\x09\x3e\x36\x62\xb9\x68\xe1\xe9\x15\x2c\x46\x45\x32\x2f\xb5\x95\xa2\xd1\x01\x00\xae\xb3\xbb\x44\xa6\xa9\x88\xad\x10\x0d\xc9\xeb\x50\x0e\x7b\xc0\x7e\x2a\xa4\xdc\x79\x39\x40\xb8\x0b\x6c\xb4\xb4\xbb\x46\xa5\x8d\xc4\x3f\x32\x1e\xc9\x74\x89\x61\xba\x89\x04\x68\xc5\xb8\x98\xcb\x0f\xa1\x9b\xb9\xd9\x87\xc7\x8c\x47\xf3\x69\x8e\xb0\x6b\xc5\x75\xac\xb7\x00\x61\x3c\x79\xc5\xea\x82\x7f\xb2\x54\x9d\x7b\xae\xbc\x74\xa8\x62\x3c\x27\xd8\x58\xc8\xde\x71\x5d\x59\xf6\x02\x62\x2f\xa4\x98\x63\x71\x0a\x1a\x24\xbe\xc0\x3a\x2c\xb9\xf4\x42\xa3\xc5\x42\xc4\xa6\x5f\x99\xb2\x49\xc2\xc3\xcc\x10\x98\x2d\x4e\xc2\x42\x24\xa3\x16\x36\x82\x51\x85\x64\x58\xe3\x80\x39\x92\x0c\x5b\xec\x63\xf6\x7b\x1c\x44\x59\x28\x34\x9b\x88\xb4\x07\x0f\xf4\xd8\x1d\x4f\x83\x69\x8f\x00\x86\x7b\x24\xad\xf6\xd8\x1c\xbf\x0e\x45\x24\xcc\x47\xfc\x6f\xa0\xa2\x08\xc3\x7f\x7b\x54\xc1\x40\x7d\x5c\x3e\xba\x3c\xb0\x68\xa5\x74\x2e\x8a\xc6\xd2\x5a\xcf\xcb\x5a\xa9\xa0\x5c\x9d\xb6\x41\x2e\xb8\xb7\x58\xb0\x38\x66\xfb\x58\x61\x9d\xca\x2d\x71\x46\x21\xbb\xd5\x21\x24\xf9\x98\x9f\x91\xe1\xe7\xa0\xbd\x44\xb1\xa5\xe1\xa5\x40\xf1\xeb\x99\x6e\x59\x56\xa9\x9c\xe4\x75\x2a\xc3\xbd\xe4\xf2\xf5\xf6\x11\xbf\x65\x45\x27\xbe\x72\xd5\xce\x50\x18\xb7\x11\xe5\x58\xd5\xaa\xe2\x5a\xf0\xca\x96\xfa\xa6\x38\x6e\xe5\xfe\x80\xe4\x49\x73\x49\x1c\x05\xa6\x88\xc9\x82\x40\xb6\xa9\xdc\xdf\xd9\x5c\x3e\xb3\xcd\xa5\xdd\xea\xfb\x4d\x2d\x05\xaa\x9c\x08\x5c\xf8\x9a\x93\x39\x56\xad\x83\x44\x3b\x5b\xc9\xe7\x76\x50\x36\x16\x93\x2e\xad\x7d\x4e\x32\x2a\x71\x03\x55\xaa\x92\x93\x0a\x8c\x0e\xa9\xa3\x11\xec\xc1\xec\x76\xce\xd6\xb1\x31\x97\xde\xc4\x86\x64\x6f\x52\xed\x5a\x3e\x05\xf3\x52\x81\xb5\x3c\xbc\x85\xe9\xa7\xaa\x57\xa8\x99\xa8\x6b\x07\xa0\xe1\xb9\x85\x10\x27\xd9\x08\xcb\x0b\x2e\x23\x4c\x18\xd8\xc4\xe8\x6f\xbd\xc5\x44\xb0\x12\xa5\x52\x8c\xcf\xa7\xf3\x89\xc9\x9f\x46\x58\x81\xaa\x12\x1d\xb3\x7a\xc2\xcc\xaa\xe3\x06\x9f\x85\x1b\x74\x21\x13\x5d\xc8\x44\x17\x32\xf1\x74\x42\x26\xf8\x5c\xae\xe2\x8f\x8f\x63\x39\x6d\x29\x15\xb9\x39\xb6\xa3\x27\x4f\x41\x44\xfa\xa9\x3a\xe4\x07\x11\x8f\x5e\x83\xf9\xe9\xdd\xbc\x5c\xad\xaa\xbc\xff\x85\x76\x36\x8d\x81\x52\xd3\x08\x57\x08\x2c\x59\x74\x1d\x8d\xec\x63\xcb\xb0\x76\xd2\xcc\x13\x96\x66\xc2\x64\x79\x95\xad\x5b\x77\x48\x34\xa1\xa5\xec\x15\x6a\x12\xf3\x94\xcd\x54\xe8\xea\x43\x6a\x3f\xad\xda\x1c\x10\xb3\x33\x1a\x24\x8d\x73\x43\xa3\x11\x92\x02\x40\x8c\xbc\x55\xc2\x31\xb0\x50\x26\x22\x48\xe5\x42\x58\xe6\xa0\xa1\x9a\x1c\xf0\x07\x91\x24\x40\x99\xf5\x5c\xc5\x1a\x6d\xd6\x71\x8e\x49\x36\x4f\x54\x20\x34\xb0\x02\xa7\xf0\x21\x0d\x67\x50\x4d\xd7\xe6\x0b\xf0\x44\x9c\xb1\x3e\x3b\x8f\xa2\x33\xc8\x36\x0e\x93\x25\x64\x19\xeb\x94\x4f\x44\x9e\xca\x41\xdd\x95\xb1\x48\x1e\xc3\x1f\xcb\x03\x71\x29\x12\xf9\xff\xb1\xf7\xee\xcd\x8d\xe3\x58\x9e\xe8\xff\xf5\x29\x10\xde\x3f\x9c\xd9\x2b\x2b\x1f\xd5\x73\xb7\x37\x2b\x26\x36\x5c\x99\x59\xdd\xb9\x95\x55\xe9\x9b\x76\x75\xc5\xc4\xf5\xc4\x34\x4c\x42\x12\xc6\x14\xa0\x26\x40\x3b\xd5\x1d\xfd\xdd\x6f\xe0\x1c\x00\x24\x25\x4a\xa2\x64\xea\xe9\x33\x11\xbb\x9d\x65\x91\x20\xde\xe7\xfd\xfb\xe9\xf4\x5a\x24\x5a\xad\x44\xd3\x72\xb2\x3a\x92\x31\x48\xc5\x0c\xbe\xc5\xee\xb0\x12\xc7\x96\xf8\xb4\x25\x30\x08\x3a\x9c\xd3\xd9\x68\x83\xd2\xea\x22\x14\x95\x04\xf0\x53\x54\x06\x50\x79\x05\xa0\xd3\x72\xe9\xb1\x15\x26\xc7\x63\x91\x3a\x8d\x25\x9b\x96\x50\xb0\x31\xf4\xa0\x64\x86\xe1\x91\x00\x84\x06\x03\x74\xbb\x42\xea\x32\x86\x5a\x82\x60\x41\x95\x51\x15\x7a\xa2\x0e\x4e\xc2\x41\x09\xf2\x03\xf2\x1f\x19\xd4\xb1\xbe\x3c\x20\x2b\x16\x11\x35\xf4\x71\x09\x80\xc9\x46\xb8\xf8\x64\x0c\xec\xc5\x18\xd0\xf9\x64\xc4\xd5\x87\x80\xe1\xb7\xea\x98\x7c\x70\x13\x98\x00\x27\x19\x9b\x20\xbc\x41\x50\x82\xaf\x72\x3d\xe1\x43\x38\x40\x57\x3a\x93\xc9\xd4\x07\x18\x2a\x41\x28\x38\x33\xa1\x01\x77\xca\xde\xf4\xff\x57\x9f\x5d\xe3\x81\xc2\xdd\xed\xfb\xe1\x17\xcc\x40\xf5\x16\x74\x11\xa6\x75\x00\x70\x5b\xaf\x06\x3c\x33\xbe\x92\xe5\xd6\x8f\xe0\xf6\x8c\x0d\xa4\x82\xc2\xab\xbc\x52\xde\x86\xf5\x42\xaf\x42\x10\x2e\x2e\x2e\x36\x7f\x6e\xca\x97\x8c\xcf\x9e\xf0\xc8\x20\x95\xae\xeb\x7c\x7e\x6c\x41\x6e\x1b\x61\xb1\x14\x0a\x76\x80\xb6\xa3\x4d\x22\xf0\x6e\x46\xb4\x4a\x9b\x79\x2e\x9f\xa0\xe6\x5e\xd5\xda\x5d\x96\xbe\xff\x8b\xbf\xba\x06\x45\x36\x90\x59\x26\xd2\x70\xef\x71\xaf\x8b\xa0\x8b\x38\xe1\x79\xee\x6e\x17\x5d\x58\x58\x0c\x37\xe8\x60\x89\xf5\x18\x67\x7f\x7c\xfd\xbf\xd9\x7b\xad\x06\x99\x74\xf7\x24\x86\xad\xcb\x1a\x31\x67\xa1\x88\x74\x41\x1e\xff\x64\x76\x86\x57\x0b\x52\x0f\xa6\x9d\xb2\x91\x7e\x64\x43\x9e\xdf\xf1\xa1\x60\x65\xf8\xaf\x14\x42\x22\xc7\xa2\xb5\x05\x8b\xfb\x65\xe6\x08\x2c\x5e\x5b\xb8\xc4\xc3\x0d\x3c\xc1\x8d\x20\x0d\x14\xc0\xa6\x65\xf0\x56\x7c\x93\x08\x7c\x5c\x6e\x48\x23\x6c\x34\x6a\x3d\x64\x79\xbf\xb2\xf3\x42\xe9\x55\xb8\xb3\x2e\x62\x88\xa6\xfe\xb1\x3e\xbb\x4c\x12\x31\x01\x9c\x8d\x9a\x24\x3e\xc7\x31\x9c\xb3\x0b\x7f\x5a\xea\xa7\xc9\xfc\xc0\xce\x7f\xe4\xc9\xfd\x10\x8a\x69\xdd\x53\xe8\x6f\x03\x97\x7f\x7d\xe2\x34\xc0\xb7\xf8\xfb\xbe\xde\x48\x18\xc1\x5d\x6c\xe9\x07\x76\xfe\x93\xce\x45\xa5\x59\x67\x3b\x27\x3c\xc5\x12\x45\x98\x1f\xd0\x6c\xb0\x3d\x83\xaa\xc2\x5c\x83\x83\xd8\x46\x57\xb8\x13\x5b\xb7\x2b\xea\xca\x7e\x2b\xcb\xa2\xb7\xe2\x43\x3c\x05\x28\x12\xad\x66\x91\xeb\x8e\xeb\xc3\x10\x11\xde\xe4\xeb\xb9\x18\x4a\x63\x51\x03\xdb\xdb\x14\x74\xde\x89\xb5\xa7\xa3\x86\x89\xb5\xeb\x69\xe8\xfc\xe3\x1b\x0c\x7f\xaf\xfb\x60\x0b\x9f\x5f\x7f\x0a\x26\x66\x87\x03\x7e\xea\xc7\x76\x3f\x3c\xf7\xc5\xb7\xeb\x7c\xb1\x48\xa5\xed\x7c\x59\x21\xf5\x6b\xad\x81\x17\x76\xe4\xb4\xf6\x64\x3f\x3b\xbb\xfb\xaf\xaf\xbd\xf2\x85\x1d\xe9\x3c\x20\xa6\xec\x61\xfc\xdd\x7e\x7c\x83\xe1\x6b\x93\x00\xba\xd4\x2e\x47\xdd\xc9\x37\xdf\xee\x6b\xb0\x6f\xd7\x3d\xec\x77\xdc\x26\xa3\x9d\xcd\x6f\x07\x5f\x5b\x77\x66\x9f\xfe\xc9\xb7\x6b\x5f\x5d\x15\x54\xd2\xfd\xa8\x05\x89\xd6\x79\x2a\xd5\x5e\x6e\x8e\xce\xbf\xbd\xee\xe0\x43\x2a\xc4\x1c\xa4\xf5\x46\x5f\x5f\x7b\xf1\xbb\xfd\xfc\xba\x83\x17\x0f\xe0\xad\xdb\xcb\xa7\xa3\x2a\xbc\xdb\xef\x0e\x32\xfd\x08\xae\x40\x9d\xf5\x4b\xd4\xdc\xbd\xac\xbd\x1c\xf3\xa1\xf0\xbe\x87\xbd\x74\xc0\x47\xff\xa5\x1a\xee\xfa\xd8\x77\xfc\xe5\x75\x37\x81\xd2\xa9\xd8\xd3\x94\x77\xf5\xe5\x75\x87\x8c\xfb\x6c\xb7\xdf\xcc\xef\x78\xd2\xdf\xab\x62\xba\xa5\x1e\xac\xbd\xec\x5b\xea\xc7\xba\x0b\x62\x92\x91\x48\x8b\x6c\x0f\x07\xbe\xe3\x2f\xaf\xbd\x00\x1d\x7f\x7f\xed\x89\x17\xd6\x4a\x35\xec\x46\xd4\xae\x3f\x78\x2c\x6d\xda\xf9\x9a\x77\xf8\xd9\xbd\x8e\x79\x76\xb5\xfd\xbf\x36\x48\x63\xf9\x09\xb8\x9b\xfe\xfa\x66\x49\x06\x4b\x78\x04\x8b\xed\x20\x1e\x2b\xa0\x48\x25\xd0\xbf\x2a\xc6\x43\x35\x5e\x20\x84\xf4\x54\x5b\x37\xb9\x14\xbd\x08\xae\x8c\x51\x63\x04\x5e\xe4\xc9\x88\xdd\x8b\x69\x95\x27\x95\x9d\xf7\xcf\xe7\xa3\xbb\xbe\x6a\xce\x1a\x91\x0d\x2a\x20\x9b\x1e\x5b\x10\x68\xe5\x74\x49\x9d\x0a\x41\x9c\x2a\x91\x4d\xad\x3d\xce\x4c\x71\x77\x11\x23\x41\xd2\x8a\xb1\x4f\xdb\xc3\x87\xa1\x65\x64\x4b\xad\xf0\xa7\x1a\xc1\x06\x9e\x82\x6c\xcc\xad\x79\xc7\xce\x07\xef\x3c\x3c\x2f\x1f\x23\x50\xaf\x38\xef\xb1\x47\xe0\x41\x9a\xfd\x61\x16\x05\x8c\x47\xdc\x7b\x16\xe6\x0b\x3a\x0c\x73\xe1\xfe\xe6\x46\x74\xfe\xe0\x3f\x00\x41\x9f\xc6\x2f\x54\x7e\x09\x9f\x10\xdf\x78\x62\xd9\x7f\x9b\x08\x3b\x6d\x43\x22\x0d\x7e\x38\xb2\x61\xb2\x73\xe9\xdb\x07\x7e\xbf\xc6\xf6\x2b\xbf\x60\xc9\xa2\x91\x31\x15\x08\x1b\x91\x91\xb1\xef\xfc\xde\x37\x77\x2f\xa6\xa6\xb1\xb5\xf2\x07\x0c\xe8\xfb\xc4\xd2\x6a\xa7\xce\x0d\xcc\x81\xdf\x53\x98\x39\x24\x73\x86\x34\xd0\x21\xfa\xf5\xc9\x7d\xfd\x1e\xb2\x37\x27\xa6\xb6\xf0\xb8\x49\x23\x4f\x68\xdc\x38\x10\x8f\x72\x6f\x54\xa8\x8f\x10\xee\xd5\x96\x4c\x3a\x36\xa2\x77\xe3\x1c\x96\x28\x94\x9e\x31\x0c\x52\x44\x64\xbc\x2d\x5f\xc5\x8d\x9e\x5e\x00\xc7\xe1\x45\x2a\x07\x83\x32\x0c\xf5\xe4\x2a\xb2\x85\xa8\x46\x8b\x4f\x69\xf5\x95\x7a\x3d\xc7\x2d\xde\x41\xaf\xfc\x0d\x72\x7b\x06\xa7\xe8\xf6\xac\xfc\x6f\xbf\xfd\x61\x6d\x03\xfe\x9a\x27\x9b\x1e\x73\x28\xfd\xc3\x01\x03\x2b\xb3\x10\x93\xc0\x57\x38\x4b\x6e\xb3\x30\x51\x6d\xd3\x3a\xa5\x3a\x66\xc5\xe5\xd5\xa7\x86\x92\xa5\x32\xaa\x38\x9e\x1f\xea\xfa\x19\x12\xeb\x95\x72\xd6\x3b\xd8\xd4\x25\x3d\xa8\x4e\x75\x2d\x25\xda\x04\x56\xdf\x58\x08\x31\x12\xcc\xe6\xba\xb8\xcb\x10\x60\x78\x92\x49\x1b\x2f\xc2\xea\x02\x77\x5c\x5a\xb9\xa8\xf8\x25\xcc\x45\x10\x2f\xdd\x6d\xf0\xcf\xfc\x4e\x64\xd7\x02\x43\xd0\xcb\xca\x4b\x58\xe6\x9e\x64\xc6\x3f\xea\xab\x24\xe1\x6f\x48\x74\x00\x55\x23\x51\x24\xc5\x84\x3e\xbc\xd7\x7d\x2a\x9c\x1e\x60\x56\x35\x7c\x35\x10\xde\xda\x64\xf4\xf1\x9b\xbb\x13\xca\xf4\xdc\xcb\x5f\x3f\xf8\x8c\x3b\xbc\x54\x66\xbe\xed\xf3\xc2\x21\xac\xed\x13\x56\xfa\xec\x92\xa9\x22\xcb\x16\x3d\xaa\x74\x7c\x72\xf5\x29\x99\xed\xd3\x8a\x3d\x38\x37\x84\x5a\x05\xe9\x4c\x87\xfc\xc2\x8f\x31\x19\xea\x66\x24\x6a\x7f\xa9\x8c\x7e\xdb\xc9\xd8\xb5\x95\xff\x5a\xf6\xe1\x49\xf9\x7f\x95\xd5\x9d\x9d\xb4\x26\x0a\xc9\xcd\x73\x11\x9b\x96\xc0\xef\xaa\xaa\x60\xfb\xe7\xbd\x98\xf6\x40\x16\xfd\x0b\xd9\x54\xdd\x3e\xf1\x60\x0e\xd5\xdf\x42\x92\x48\xa5\x19\xd7\x82\x53\x8a\xfe\x5e\xc8\x07\x9e\x09\x65\x83\x98\x43\x78\xe1\xb8\x97\x2b\x0b\xef\x64\xad\x36\xa2\x94\x9f\xae\x81\xdb\xb3\x7b\x31\xbd\x3d\x43\x59\xe8\x06\xce\xfd\xf1\xb9\x3d\xfb\xa4\xdc\xdf\x43\x16\x4a\x4c\x2c\xc9\xf9\xb4\x14\x1c\x50\xb9\x70\x7b\x86\x6a\xc6\xd9\x1a\x3b\xa6\xe9\x6a\x68\xbe\x8b\xba\xbd\x44\xaa\x5b\x69\x8d\xfb\xa4\x32\x26\x9f\x6b\x18\x7e\x41\x8a\xcc\x30\x1f\x38\x4b\x3d\x54\x3f\x70\xf2\x80\x7a\xce\xcf\x2b\x3c\x9c\x8b\xcc\x67\xf7\xe2\x5a\x80\x94\xc2\x44\xe6\xd5\x87\xff\x5e\xac\xca\x81\xf2\xea\x32\x66\x54\xbb\x41\xb8\x3f\xc4\x0a\x92\xd8\x6f\x3e\xf1\x60\x01\x7a\xb9\x94\xa8\xfd\x56\x67\x97\x75\xfb\xcb\x2b\x36\xd8\x2d\xe8\xdd\xaa\x17\x20\xde\x2a\x86\xf0\x3c\xbc\xbc\x20\x05\xd1\xcf\xd9\x8a\xd1\xc6\xa9\xad\x71\x56\xde\x8b\xe9\xb9\xc1\x89\x76\x3b\x7f\x24\x27\x81\x7e\x0a\x4e\x46\x48\x1b\xc7\xe4\xe5\xd0\x04\x6e\xd6\x4f\xaa\xc7\x7e\xd5\xd6\xfd\xcf\xc7\x6f\x91\xf8\xfc\x83\x16\xe6\x57\x6d\xe1\x2f\x9b\x00\x62\xc0\x07\x57\x29\x0b\x78\xc2\xa4\xa9\xd1\xa9\x56\x93\x5a\x8d\xcf\x01\xae\x9f\xd4\x4f\xca\x59\x06\xbe\xcf\x73\x47\xb5\x9a\x7f\x0c\xe2\xaa\xb1\x0d\x3f\x54\x9d\xd7\x46\xba\xa4\x39\xdf\x14\x02\xde\xc0\x2f\x58\x0f\x80\x3c\xc8\x69\x91\x7b\x43\x0a\x17\x5b\x26\x48\xf2\x8d\xe0\x1c\x07\x55\xbb\x52\xdf\xb2\xe5\xb6\xdb\x82\x32\x23\x8d\xfd\x45\x58\xbe\xe4\xde\x09\x8f\x44\x16\x70\x13\x33\x03\xf1\x08\x9b\xa9\xb2\x23\x61\x65\x52\x29\xb9\x86\x25\x19\xf1\x07\xe1\x69\x27\x21\xcf\xae\xe4\xec\x7f\xe0\xb9\xd4\x85\x89\x80\x41\xa5\x46\x12\x93\xa1\x23\xda\x07\x5c\xe7\xde\xa4\xfd\xe7\x17\x78\xd2\x75\xa7\xc7\x42\xc7\xfe\xd5\x06\xe1\x4d\x3b\x33\xba\x58\x49\x96\xe8\x1f\xab\x24\x56\x86\x7a\x34\xe0\xbb\x72\xff\xed\xf4\x94\xb1\xb4\x01\x73\xc7\xd3\x33\xe8\x81\xa7\xd8\x0f\xd9\xa3\x1e\xa1\xa2\x5e\x37\x51\xa9\x62\x1b\x71\x0f\xa5\x04\x13\x59\xd6\x50\x55\xd2\xef\x65\x04\x01\x0a\xf5\x26\x15\x76\x46\x69\x0c\xfc\x80\xd4\xe5\x3e\xcd\x3b\x94\xad\x54\x32\xc2\xdd\x02\x21\xaf\x3d\xe4\x92\x82\x8e\x65\xb5\xeb\x66\x2e\x85\x57\xe2\x95\xf8\x66\xc3\x3d\x14\x7b\x52\xae\xca\x7b\x9c\x15\x3c\x3d\x89\x56\x50\xde\xa1\x2c\xb6\xe5\xba\x15\x2a\x3f\x02\x97\xbb\x1c\x54\x47\x9a\x00\x29\x66\xa8\x58\x70\xe3\x46\xd8\xa1\x34\x12\xae\x00\x3d\x0b\x67\x03\xf1\xc8\xc6\x52\x15\x6e\xba\x60\xe9\x27\xdc\x18\x91\x46\x7d\x18\x36\x46\xb0\xaf\x50\x5b\x08\xb3\xed\x59\xce\x4d\xac\xe2\x8c\x2b\x89\x53\x19\x32\x6c\x91\xd8\x2c\xe1\x59\x98\x29\x3f\xd3\xde\xea\x91\xb9\xb1\xb1\xe2\xa4\x57\xe5\xb3\x83\xfe\xe4\x22\x11\x32\x4e\xa5\xd5\xf7\x42\x79\xda\x95\x50\xad\x32\x16\xc6\xf0\xe1\x26\x48\x55\x08\x7b\x24\xd5\xf0\x93\x15\xe3\xf7\xba\x50\xab\x68\x64\xe7\x5f\x88\x0e\x9b\xb8\x25\x4d\x71\x67\xdc\xce\x50\xd6\xef\x4e\x3f\x50\x58\xb9\x3a\x75\xba\x47\x33\x2a\x41\x90\xe1\x99\x30\x17\xf1\x82\xf6\x7f\xc5\xdd\xe6\x55\x0c\x91\x7a\xa9\xae\x73\xbf\x2c\x41\xa2\x1b\xcf\x32\x59\xef\x55\xec\x79\xe8\x94\x61\x9e\x0c\x3e\x6a\x76\xf5\x54\xfc\x4c\x0c\x2c\x2b\x14\x9c\x3e\x95\x46\x92\x14\x7f\xa3\xd7\x68\xcb\xea\x1d\x85\x8d\x30\x9e\x40\x8a\xf0\x8b\xc8\x17\xee\xd9\x31\x6c\x20\xa6\x4b\x46\x85\xba\x07\x2f\x42\xf9\xab\x0d\xb6\x2e\xa8\x2c\xc6\x3f\xf4\xb2\x1c\x4f\x2e\xfc\xd4\xe1\x16\x9e\x1d\x13\x0e\x64\xae\xa8\x60\xad\x91\x84\xba\x0f\x9d\xa5\x81\xf2\xe8\xe1\x4d\xff\xcd\xbf\xb1\x54\x63\x05\x0c\x94\xa3\x86\x6f\xe0\x31\x89\xdc\x23\x85\xa9\x20\x61\x34\xed\x94\x3f\x08\x63\xe5\x18\x48\x5a\xfe\xe0\x81\xe4\xfe\xe1\xdd\x6d\x65\x6a\x7a\x59\xb5\x5c\xe3\xce\x84\x1b\x79\x51\xdb\xc8\xb4\x08\xd7\x49\xee\xff\x03\x7c\x53\x9d\x17\xe2\xcc\x5c\x09\x2b\xce\xcb\xb5\x67\x40\x84\x32\xe6\xc0\x6f\x58\x2d\x2c\x3e\x37\x95\x3a\xbf\x2a\x4e\x54\x59\x95\x13\xb9\xe7\xc3\x45\x5c\xa2\xb3\x61\x32\xba\x15\xf9\x58\x2a\x81\xd7\x51\xa8\x0c\x81\xbb\xc3\xdf\x79\xeb\x00\xbe\x21\x2a\x18\xdc\x81\xac\x50\x58\x73\xe7\xbe\xc9\x93\xfb\x2a\x6f\xac\xc8\xfb\xec\x6a\x16\x97\x0d\x19\x78\xfb\xec\xab\xe0\xe9\x85\x13\xa1\x5b\x2f\xee\x49\xb4\x4a\x8a\x3c\x17\x2a\x99\x5e\xf8\xa4\x80\x0b\xae\xd2\x8b\x28\x30\x66\x23\xa6\xed\x10\x00\xb2\xc1\x67\xa9\xee\x57\xe1\x22\xfa\xc7\xd0\x0e\xfa\xed\xeb\xe7\x59\x67\x7c\x5c\xc2\x56\x53\x75\xab\x6e\xd5\x87\x8f\x57\x5f\x3f\xbe\xbf\xbc\xf9\xf8\x81\xfd\x1c\xcd\x85\xc0\x3e\xa4\x27\x2c\x96\x81\x84\xf6\xa3\x73\xfc\x4d\xff\xed\x6b\x77\x46\xa0\xe6\xa8\x7e\xa1\x49\xc3\x26\x19\x57\x0a\x45\x78\x1d\x73\xef\x4d\xff\xed\x9b\xf0\xda\xae\x59\x2d\x4b\x85\xf0\x17\xae\xf8\x50\xa4\xe8\x93\xfe\xa8\xec\x52\xc7\xed\xfc\xc3\xb8\x00\x8f\x3a\xbf\x1f\x64\xfa\xf1\x42\x3a\x35\x08\x1d\xdc\xd7\xfe\xca\x2b\xc1\x9b\x16\x40\xc7\x95\x9a\x12\x3a\xd4\xdd\x7b\x0d\x76\xe1\xb6\x2b\x8b\x2b\x05\xc5\xf5\x7e\xc5\xa5\x9e\xe9\x19\x02\x25\x46\xf7\xfb\xbc\xeb\xfa\xbf\xdd\x91\x87\xe8\x12\x38\x4b\xf5\xe4\x22\x73\x87\x8b\x55\xfa\xe1\x2f\x72\xf4\x5f\x2b\x91\x38\x6d\x22\x47\x62\xda\x1c\x4e\x7d\xbd\x7f\xbc\xd2\x93\x8a\x58\x4b\x62\x99\x1f\x2f\xac\x76\x57\x7c\x02\x24\x5d\x11\x97\x72\x03\xf5\x04\xd7\xe2\x06\x9f\x5c\x36\xab\x3f\xc5\x07\x83\xf8\x4c\xa5\x7b\x60\x2c\x15\x18\x76\xa1\x02\xb4\x84\xf0\xf3\x71\x13\x3f\x75\x15\xff\x38\x4c\x69\x8e\x90\x9a\x70\xb3\x20\xfd\xb3\x37\x07\xa2\xb6\x09\x2a\xdc\x3b\x76\x1b\xa3\x7d\x9b\xf8\xce\x07\xf3\xc1\x44\xf6\x44\x77\x61\x8c\x4f\x2e\x73\xc3\xc5\x08\xe5\x48\x43\xf0\x28\x6a\xa1\x10\x76\x0c\x6b\x1d\xe6\xc6\x44\x23\x2c\xc2\x74\x56\x87\x0d\xc5\xb4\x0b\xca\xd6\xc6\x70\x56\x57\xb9\x2e\xf0\x44\xe7\xde\xe0\x2f\x69\x80\x23\x7f\xb7\x3f\xd9\x0c\x9a\xf3\xfe\x7d\x13\x8e\xea\x06\xfb\x0a\x6d\xdb\xd5\x87\xf5\x4b\x78\x2e\xec\xaa\x40\x65\x18\x1b\xf0\xfa\x6c\x26\x78\x1a\x69\xa1\x1b\x2e\xa8\x3b\x01\x0c\x6a\x28\x76\xf1\xd0\xc2\x96\x7a\xa8\x16\x8d\x47\x1a\x76\x3c\x5f\x4e\xd1\x3b\xbf\x9c\x4c\xb2\xe9\x39\xec\xcf\xf3\xdf\xa0\x7c\xf6\x7c\x83\xf1\x5a\x39\x0f\xf2\xfb\x84\x3d\x76\x23\xc7\xcb\x69\xe7\xdd\x03\x30\x65\x72\x2c\x8c\xe5\x63\xf0\xf1\x3e\x7a\x1d\x36\x2e\x1c\x7b\x14\x39\x46\x13\xdd\xdd\xe3\x55\x3d\x1f\xa7\x0e\x8e\x15\x67\xd5\xd5\x56\xc1\xcf\xc8\x76\xc5\x91\x4c\x72\x7d\x53\x9f\xb3\xb9\x3d\x1b\x9e\x01\xe4\xdb\xf2\x76\x84\x3f\x01\x45\xe4\xd8\x3d\x81\x75\xf2\x0c\xef\xdc\x48\xf7\x58\x11\x28\xa5\x42\xea\x16\xf7\xc2\x56\xa7\xf6\xe9\x5c\x78\xa5\xe7\x62\xc9\x50\xca\x87\x20\x80\x59\x73\xb3\xf0\x2c\x2b\xb1\x15\x9a\x5d\x2d\x1e\x70\x2c\xe0\xd2\x56\x82\x3d\xe0\xbe\xf0\xcf\xe2\xde\x6f\x23\x49\x9d\x18\xe1\x8d\xb5\xbe\x5b\x0d\x4d\x5c\x96\xdf\xf5\x17\x51\xa1\xca\xb0\x35\xf8\x8e\xd1\x6c\x1f\xf3\x09\x66\x76\xa4\xcc\x53\x81\xd6\x85\x75\xc5\x8b\x73\x37\x2d\x79\xf8\xad\xd6\x48\x1d\x0f\xef\xc2\x89\x8e\xee\x90\x92\x31\x3d\x96\xbf\xba\x3b\x62\x1a\xed\x64\x08\xdd\x81\x7f\x04\x30\xb3\x23\xc4\x02\xa8\x9b\xe0\x67\x81\xd3\x05\xda\xfa\x14\x8c\xca\xe0\x46\x99\xd1\xbf\xdf\xbd\x7a\x55\xfa\xa1\x9d\x06\x9e\xea\xc4\xbc\x72\xeb\x74\x31\x2c\x64\x2a\x5e\x55\xa7\xbf\x5d\x9c\xa2\x72\xcf\x78\x26\xf7\x16\x98\xe2\x37\x33\xb8\x89\x81\x03\x1e\x37\x53\x05\x4e\xa2\x24\x30\x28\x43\xc1\xc1\x1b\x95\x62\x21\x71\x21\xcd\xa8\xb2\x35\x61\x51\x80\x4b\x16\x3e\x00\x08\x1e\x01\x7b\xd1\xc9\xaf\x52\x07\xf0\x1f\x35\x35\x38\x68\x6f\x9e\xa3\xb1\x3c\xc5\xa4\x8c\x5c\x0e\x47\x96\x29\xfd\x88\x71\x8c\x88\x3e\x2d\x0d\x1b\x6a\x4f\x50\x2f\x87\x0a\xa6\x1a\x7c\x77\xbe\xa0\x19\x37\x3d\xc0\x90\xc0\xdd\x1d\xd1\x42\xd6\xbf\xc2\xa1\x29\xa9\xd5\x4d\xb8\x52\x77\x79\x9f\xbf\x9f\xfd\x38\x6a\xdc\xe5\xf5\x3e\x97\x85\xe4\x27\xc8\xc2\x6d\x88\x17\x7f\x69\xd0\x3e\x72\x53\xca\xc2\x4f\xd1\x23\x32\x2c\x78\xce\x95\x15\xd1\x4e\xf1\xb3\x38\xe2\x93\x89\x50\xe6\xc2\xd7\xdc\x03\x32\x16\xe3\xee\x72\x35\xcc\x88\x09\xcf\x61\x8e\x83\x90\x30\xa5\xf7\x20\x78\x09\xa3\xcb\x02\x0e\x70\xf8\x64\x95\x3d\x56\x2a\xf6\xf5\xa7\xf7\xdf\x7f\xff\xfd\xff\xc6\x24\x04\x8e\x48\x1a\x52\xb1\xdf\x6e\xde\x83\x65\xd6\xc6\xd6\xfd\xb5\x40\x02\x58\xf4\x39\x6f\xdd\xf6\x0d\x77\xc5\x02\xbc\x1d\x0f\x4c\xf0\xe7\x75\xa1\x5e\x7e\x2d\x1d\x79\x1e\xe4\x25\x02\xe5\x07\x05\x25\x38\x26\x34\xe2\xac\x0c\x0a\xa7\xe8\xa3\x17\xc2\xad\x85\x5f\x28\x59\x65\xc0\x9d\x01\x98\x08\xb3\x07\xe0\xf2\x6e\x7d\x2a\xc0\x4e\xb3\xfb\x2c\x33\x1a\xb5\x84\x5f\xb8\xd7\xc4\xdd\xde\x18\xe9\xdc\x0a\x80\xbd\x28\x57\xa0\x6b\x5f\xcf\x5c\x7f\x76\x79\xe8\x3e\x34\x4d\xc6\xd7\x9f\xde\x33\xd8\xa6\x70\x9d\x80\x69\xeb\x8e\x18\xb7\xf1\xe6\xac\x1a\x8f\x25\xaa\x88\x47\xe2\xa9\xdf\x73\x5e\x44\x55\xce\xeb\x23\x12\x7d\x87\x55\xad\xa1\x5b\xf8\xbb\xab\x3c\x01\x4e\x6a\xf4\xc2\x51\x71\xe7\x0c\x71\x95\x70\x41\x11\x84\x01\x58\x99\xd1\xb1\x54\x77\xa8\x43\xc8\xfe\xdb\x44\x24\x36\x9e\x76\xdf\x49\xf6\x42\x69\x44\x0c\xcc\xd9\x83\x44\x63\x0b\xb6\x4d\x0d\xae\xdd\x13\xf2\xa2\x63\x90\x27\xa3\xf0\x35\x77\xd3\xbf\x64\x7c\x60\x03\xf7\x38\x68\x68\xaa\xa2\x57\xf7\x98\x56\x89\xf0\x36\x4f\x0d\xdc\x04\xfa\x84\xd1\xbc\xcb\x1a\xbd\xf3\xdc\x83\x31\xca\x0d\x6e\xd7\x5e\x6d\x9a\xee\x32\x9d\xdc\xbb\xb9\xfe\x12\x3e\xd3\xb8\xab\x21\xf1\xb2\x02\x62\x54\x89\x68\xa0\xa7\x16\xe9\x11\xdc\xbf\x02\xf8\x94\x54\xde\xff\x86\x24\x09\x3d\xc6\x33\x3b\xd2\xc5\x70\xe4\x4e\x5a\xd0\x3a\xc2\xb1\x60\xb3\xbc\x31\xfe\x81\x30\xcb\x93\x5c\xa2\xa3\x14\xa3\x0a\x72\x2c\x6a\x10\x8a\x3d\xc6\x31\xf8\x84\x80\x63\x3e\xce\x03\x1a\x21\x9b\xe8\x14\x53\xfd\xb0\x25\xa9\xd8\xf7\xaf\xc3\x5d\x81\xab\xfc\x73\x71\xe7\x7e\x0c\xf0\x5a\x3c\x81\x7d\x66\x04\x72\xa5\x57\xf6\x57\xb8\x33\x20\x35\x4c\x0e\x55\x19\x22\x09\x5e\xfe\x12\xee\x72\xa2\xd3\x3e\xbb\xf4\x2b\xcb\x6d\xe5\xa3\x18\x9d\xad\x7d\xd4\x7d\x8b\x71\x36\xe2\x79\xda\xf4\x91\x17\xd7\x9f\xfe\xfc\xf3\xa7\xcf\x9f\x5f\xce\x7d\x0e\x25\x3c\x7c\x25\xc9\x04\x57\xc5\xa4\xe7\x6f\xaf\xd0\x89\xf2\x12\xbb\xbc\xfa\x04\x58\x46\x76\xe4\x35\x31\xb7\xe2\x7a\x10\x30\x39\x21\x69\x12\xaf\x84\x5e\xed\xde\x74\x73\x8a\x64\xe2\x80\x85\x12\xb7\x6b\xd5\x62\xea\xb1\x42\x59\x99\x41\x04\x3c\x1d\x4b\x85\xd5\xd9\x1a\x70\x23\xbd\x83\x05\x56\x11\x00\xc4\xc0\x3b\x5c\xfa\x81\x67\xe1\xe9\x67\xee\xe7\x34\x82\xd3\xc0\x26\x9c\x3f\xec\x5e\x27\xf3\xbd\x1d\x71\xe3\x77\xa6\x50\xe5\x25\xb0\x4c\x28\xb6\xbb\x46\x76\xe9\x26\x5e\x2e\x2a\xcb\xe3\xbd\xca\x51\x51\x8d\xf9\x37\x60\x9f\x55\x4e\x45\xdc\x24\xbe\xb2\x7e\xda\x67\x90\xc3\x2d\xa2\xc3\xb2\xe6\xe9\xa8\xd0\x3c\x4d\xb4\xc2\x5b\x2f\xd1\x63\xcf\xeb\x5f\x72\xac\x57\xb6\x22\xb6\x14\xbf\x83\xf0\x4c\x3e\x0e\x35\x7f\xe5\xd4\xd7\x14\x2e\x6c\x75\x01\xb0\x69\xae\x1d\xe0\x16\xab\x86\xe0\xdc\x86\x0a\xa2\xd6\x0b\xef\x3e\xfb\xa9\xbc\x06\x4b\x5c\x46\x04\xb0\xf3\xf6\x4c\xf4\x2b\x73\x35\x45\x45\xad\xcf\xd8\x17\x50\xd8\xa4\x61\xbf\x7e\xb9\x61\x42\x0d\x74\x9e\x00\x82\x52\x19\x11\x53\x36\xd7\x69\x01\x5c\x0c\x72\xa8\xa0\x94\x56\x59\x96\x4b\x73\x8f\x89\x1f\x45\x72\x5f\xb9\x83\xfb\xd5\xfb\x18\x73\x90\x46\xdc\x99\x63\xfe\x7e\x77\xdf\xe6\x90\xda\x03\xa6\xc0\xc4\xed\x7b\x83\x69\xbe\xdc\xed\x60\x54\x20\x65\x39\x5b\x25\x10\x51\x10\x03\xe5\xb8\xa4\xc2\x71\xc4\x18\x9c\xc4\xd3\x16\x3c\x3e\x9c\x19\x69\x8b\x88\x8b\x57\xda\x2f\xe5\xea\x55\xd7\x34\xac\x33\xba\xdb\xca\x0f\x57\x43\xa4\xd2\xb0\x47\x8e\x8c\xfc\x48\xea\x15\x2e\x2d\x14\xdc\x3e\x65\x3b\x1a\x96\x78\xe6\x20\x29\x1e\xc2\xf2\x2f\x5d\xef\xdd\x6c\xa6\x5e\xfc\x2e\xec\x08\xaf\x8e\x9c\xdb\x7a\x37\x7a\x3e\x19\x14\xa2\x8b\x50\xb1\x20\x78\xea\x64\x5b\x9f\xfd\x2e\x9d\xdc\xb1\xe5\x5a\xc2\x0c\xd5\x20\x9d\x30\x85\x68\x90\x0b\xe1\x26\xc9\xab\xec\x63\x67\xc9\x81\x97\x7d\x6c\x44\xf6\xe0\x41\xf2\x83\x8d\xfb\x50\x64\x4a\xe4\x20\xc8\xc3\x2b\xe0\x34\x83\x10\x56\x2d\x88\xbc\xcd\xb4\x99\x8e\x92\xb6\x86\xc2\x8d\xc5\x8a\x16\xa6\xf0\x9f\x2b\x8f\xfa\x8b\x21\xd2\x10\x4d\x72\x31\x90\xdf\x7a\x31\xec\x57\xaa\x6a\x3d\x84\x06\xc6\x57\x9d\xb0\xc6\xbc\x7f\x30\x79\xbf\xfc\xfa\xf9\x3f\xd8\xa7\x9f\xe0\x69\x68\x15\x37\x4e\xed\x22\x0f\x88\xaa\x25\x98\x62\x54\x0b\xdd\xc7\x7a\x65\x11\x46\xcc\x76\x08\xa2\x12\xb1\xfe\xa2\x6e\x19\xcd\x69\x1b\x80\xb5\xe0\xb5\x32\x8d\x22\xea\x38\xbe\x10\xc5\x80\xba\x97\xe8\xf1\x1d\x44\xf1\xbd\x13\xc5\x0f\xc0\x14\x83\x81\xfc\x86\x6a\x44\x44\x7d\xc5\xd7\x47\x5e\x1b\x03\xdb\x1e\x3c\xa7\x78\xec\xf2\x22\x13\x26\xa8\x6a\xe5\x78\x7b\xd5\x04\x16\x9b\x17\x2a\xa9\x4a\xaa\x4c\xa8\x61\x09\x8b\x8f\x5f\x0d\xc9\x8d\x30\xd4\x31\xf7\x31\x13\xfc\xb8\xef\x9e\x0f\x40\xfb\x08\xa8\x93\x81\x73\xd3\x57\xa2\x4c\xc6\xc8\x93\x5f\x26\x74\x44\xa0\xd0\xf7\x4a\x4b\xd0\xbb\xdd\xcc\xb8\xeb\x31\x00\x55\x03\x56\xdc\x05\x93\xca\x58\xc1\xd3\x5e\xb4\xa5\x7c\x3a\x81\x7f\xec\xed\xeb\x37\xec\xbd\x8f\xe5\xea\x9c\xfd\xdb\xeb\xd7\x38\x9b\x5f\x05\x37\x5a\xf9\x50\xbe\x93\x01\xee\xb4\xfa\xac\x20\xd4\xc0\xaa\xdb\x25\xa9\x02\xa9\x0e\x74\xa1\xa2\x9b\x1f\x6d\x8b\x2c\xd3\xd6\x86\xdc\xa2\x2a\xda\x23\xba\xa1\x72\xe1\xe4\xd0\x8b\xb0\x67\xb3\xe9\xbc\xfa\x8d\xe9\x48\xb1\xd9\xaf\xee\x8d\x0b\x54\xe5\x10\x0d\xfb\x25\x4c\xe5\x25\xc4\xb5\xd2\x48\xea\x15\x4e\xc4\x0c\xf0\xe6\x96\x75\x05\x99\x8a\xf1\x44\x6f\x18\x3a\xf6\x4b\xdd\x22\x0e\xc8\x30\x47\x26\x89\x39\x2a\xb3\x95\x57\x91\x86\x28\x36\x19\x76\x6b\x2a\x0c\xec\x52\x63\xb9\x15\xad\x62\xcb\x5d\x1b\xc6\xd9\xee\x53\xc7\x7f\xc1\x4c\x71\x9f\x05\x7a\x2f\xa6\xa6\x92\x2f\x3c\x9f\x23\x01\x22\x64\xc8\x95\xfc\x07\x9a\xc9\x81\x44\xf5\x1f\x82\xbd\x30\x89\x9e\x78\x4f\x2a\xa4\x0c\xbd\xac\xb8\x4b\xb9\x47\xba\x2f\xb3\x89\x30\x79\x68\x92\x79\x6c\x20\xe6\xd3\x0c\xb2\x80\x4c\x08\x38\xfe\x49\x03\xf8\xf2\x4a\x5f\xab\x9f\xc5\xb5\xdd\xac\xe3\x6a\x80\xa9\x55\x6c\xcd\x3f\x8b\x65\x60\x95\x40\x79\x9d\xcb\x28\x64\x77\x54\x8b\x15\x23\xe0\xba\xff\x28\xee\x31\xa7\x8e\xfa\x56\x4a\xb7\xec\x58\x1b\x67\xfc\x3b\xcd\x22\xa6\xb4\x8c\x74\x61\xc4\xbd\x10\x13\xa9\x86\x78\x81\x60\x4c\xc0\x4e\x27\x3e\x3e\x8c\xb7\x88\x3a\xb7\x4c\x79\xcf\x9f\xb7\x7e\x0b\x95\x8a\xdc\xd8\x7a\x4e\x53\x9f\x5d\x96\xe1\x40\xbf\xde\xc1\x17\x71\x8e\x44\x5c\x3d\xcc\x17\xf4\x6b\x14\xff\xe8\x15\xaf\xb2\xae\x30\x1e\x30\x3e\x99\x64\x53\x64\x49\x81\x40\xf9\xed\x59\x22\x2f\x92\x34\x64\xf1\xcf\x14\x6f\x9a\x10\xa2\xf2\x97\x59\xc9\x04\xe5\x13\x08\x62\xf7\x60\x1f\xce\xf8\xe5\x4b\x1d\x7c\xeb\x85\x23\x0d\x49\x15\x6b\xa7\x0e\x57\x36\x5d\x0b\x62\x58\xb8\xaf\x43\x8e\x91\x97\x30\x4e\x1e\x81\xfa\x18\x7d\xf0\x7d\xf6\xc9\x94\x92\x16\xe6\x07\x9d\xdb\x15\x4a\x3e\x53\x71\x6e\x18\x3d\xae\xf2\x2a\x39\x81\x8e\xf0\x9c\xc1\xb3\x84\x99\xa5\xc1\x45\x21\x66\x2e\x4c\x67\x40\x57\xf8\x2e\x30\x26\x50\xcd\x50\xe8\x47\x39\x33\xc9\xe5\x98\xe7\xd2\x09\x9f\x90\xd0\xe6\x36\x73\x70\xbd\xb3\x52\x32\xf8\x3b\xa5\x96\x63\x5a\x2e\x50\x23\xe6\xf1\xba\x97\x43\x69\x1c\x9a\xff\x01\x73\xb7\xbe\x30\x8a\x53\xde\x62\xdd\x30\x3c\x52\x4d\x49\xc1\xbf\xf8\xf5\x03\xfe\x11\x35\xbf\xbe\x95\xe2\xaf\x4a\x90\x65\xb6\x1c\x07\x53\x06\x3c\x58\xeb\xed\x59\xf9\x28\x02\xc8\x56\x7f\xf2\x81\xf6\x84\x2b\xad\x20\x65\xb6\x0e\xad\xdf\x67\xbf\x6a\x5b\x8b\x31\xf2\x5c\xd4\xf4\xb6\x3b\xc1\xe0\x7e\xf7\xd6\x59\xd9\xab\x8b\x8a\x36\xa7\x6b\x4a\x1b\x1a\x65\xda\xc4\xec\xe3\xa8\xdc\xa2\x3b\xd0\xe9\x26\xc1\xf4\xe7\xec\xc3\xaf\xd7\xff\xf5\xf9\xf2\xc7\x8f\x9f\x3b\x59\xe6\xd8\xbf\x4d\xc0\xa9\x1f\x95\xc8\xbf\x0a\x50\xbf\x57\xb3\x97\x7d\xf6\x85\x6e\x61\x8c\x1e\x68\xd6\xdf\xe8\x95\x5c\xb5\x4f\x03\x76\xf9\xf9\x73\x7c\xae\x6a\x9a\x42\x52\x21\xd8\x0f\xde\xcf\x51\x77\x6c\x85\x69\x9b\x01\xcd\xad\x5a\x19\xa5\x03\xa2\x22\x50\xaa\x17\xb6\x37\xb4\xb9\x0a\xae\x92\xaa\x5b\x02\x3e\xe0\x93\xcc\x75\x99\x73\x1d\xde\x04\xe5\x37\xb8\xf3\xf0\x8f\x95\x64\x25\x48\x68\x2a\x44\x48\xf0\x29\x13\x96\xca\x74\x70\xad\x44\x99\x64\x52\x36\xb2\xf5\xbb\xfa\x4b\x6d\x25\xbb\xb2\x55\x6b\x15\x49\x85\x4c\xbb\x32\x6e\xd7\x4b\x81\xbd\x54\x21\xc9\x14\xcf\x9e\x2f\xfd\x8a\x45\x4a\xd6\x27\x10\x6f\x3b\x05\xf6\x97\x4a\x29\x83\x3b\xf1\xce\x60\x19\x4b\x63\x65\xc2\x2a\x59\xa4\xbd\x40\x4f\xec\xda\xac\xf0\xe4\x82\x64\x07\xc5\xb0\xcc\xfd\x01\xca\xe9\xe8\x68\xd5\x79\x43\x51\x6d\x0c\x45\xba\xeb\x03\xd2\x6e\x7d\x0a\x4c\xa8\x25\xaa\x55\x5b\xb4\x4b\xbb\xbd\x41\x3a\xa6\x32\x16\x86\x59\x44\xe8\xd1\x01\x9f\x73\x02\x74\xd7\x4b\x7b\xd6\x36\xa6\xb9\x66\xe2\xf0\x49\x27\xfc\x5e\x3f\xd3\x84\xdf\xca\x4c\xb9\x5b\x64\xf9\x24\xfd\xf6\xe9\x43\x10\xe2\x5e\x05\x74\x37\xb8\xf4\x99\x18\x28\x8a\xf1\x22\x98\x09\x27\x87\xb8\x7c\x69\x1a\x94\x7e\x93\x7a\x94\x52\x2b\x66\x8a\x24\x11\xc6\x0c\x8a\xac\x54\xcf\x74\x8d\xff\xbf\x12\x97\x0c\xf1\x6b\xab\x23\xf7\xb8\x62\x57\xbf\xdd\x54\x93\x06\xda\x9e\x87\xa7\xa8\x71\x85\x6c\x4d\x41\xd1\x7d\x52\xdb\x8c\x88\x59\x92\x0e\x56\x7b\xb0\x8c\x75\x0a\x85\xb1\x46\x85\xee\x03\x6f\x31\x66\xc2\x42\xa9\x92\x1f\xe7\x14\xdc\x97\x8f\xaa\xcc\x41\x02\x0d\xb1\xf6\x97\x78\x9b\x78\xcd\x22\xe6\xea\xe0\xe6\xf0\x8e\xbc\x88\x83\xdf\xf3\xa1\x50\x9f\xad\x73\x81\xda\x5d\x8f\x19\xed\x2b\x62\x60\x95\x2b\x0d\xa0\xa1\xd8\x6d\xce\xf6\x7c\xde\x38\x3a\x3d\x37\x38\x42\x10\x20\x86\x49\x0e\x11\xfe\x15\x9f\xf7\xb4\x1e\x3d\x76\xf9\xeb\x87\x50\xe5\x06\xaa\x5f\xf4\x88\xde\x9e\x95\x1c\x01\xa1\xd1\x2a\xe3\x47\xa5\x20\x0a\x5f\x2c\x75\x9f\xb9\x78\xd5\xbd\x98\x5e\xe0\xf9\xc4\x44\x35\x0c\x43\xfa\xbc\x82\xb0\x29\xe0\x3f\x7c\x54\xa8\x4a\x9c\x03\xcc\x23\x7d\x76\xa3\x67\xca\x84\x62\x38\xd9\xd9\xf8\x06\x14\x7e\xf7\xd9\xdb\xb3\x6a\x74\x46\x57\x86\xd6\xc3\x58\xc6\xa3\x34\x82\xfd\xf1\xed\x5b\xf6\xe2\x37\xe5\x63\x32\x10\x20\xf8\xa8\xac\xb4\xd3\x97\x0d\xec\x19\x8d\xcb\xb1\x94\x5e\xa4\x54\xf3\xda\xae\xc3\xcc\x64\x80\x3e\x1a\xc9\xbb\x56\xab\x8f\xad\x7a\xd5\x96\xef\x67\x76\x3f\x1e\x34\x9b\x4e\x5b\x1f\xc2\xaa\x41\xed\xc2\x78\x6e\x27\xe9\x3a\xed\xe9\x53\xe4\x43\x73\x4d\x77\xe5\x8a\x9b\xdd\x5b\xb3\xcb\x32\x33\x74\xff\x5f\x1d\x56\x7d\x5f\x01\x32\xf3\x62\xb9\x03\xbf\xfb\xe0\x2b\x86\x7d\xac\x66\x43\xf9\x20\xd0\x3c\x4c\x72\x61\x2b\x29\x9d\x90\x89\xef\x8f\x5c\x45\x73\xba\xba\xbc\x79\xff\x97\xe8\x0d\xba\xd3\x69\x15\x6d\xe9\xe9\x43\x58\xc0\x44\x34\x37\x94\xea\x73\x51\xdc\xcd\xb3\x07\xa9\x8a\x31\xf1\x02\x5d\x08\x3e\x99\x48\xf4\x98\xb0\x49\xff\xe5\x2c\xad\xd0\x6a\xa9\xb6\x66\x7d\x62\x0d\x8f\xc9\xf2\x7c\x28\x2c\xfb\x3a\xd3\xc4\x16\xce\x4e\xe3\x77\x7f\xfb\xf4\x61\x7f\x35\x68\x8b\x49\x4f\x17\xaf\xf3\xc2\x77\x80\xbd\xd7\x54\x83\x65\x35\x2b\xb5\xa2\xcb\xd6\x58\x81\x81\x68\xb7\x24\xcf\xed\x79\x25\x08\x54\x27\x55\x69\xad\x91\x9a\xb7\x05\x1e\x41\xd3\x98\x9a\xc6\x75\x13\xe8\x7f\xc1\xa1\x82\x39\x0d\x49\x85\x48\x18\x23\x24\x08\x38\xf7\xe9\x0a\x04\xbf\x1c\x16\xb9\x70\x5b\xb4\xed\xe0\x36\xd0\x9c\x6a\x4c\xaa\xab\x74\x36\xff\xe9\xe0\x48\x08\x51\x73\x53\x48\x4c\x4d\x44\x73\x39\xac\x0e\x26\xee\xdb\xc8\xfa\xcb\xef\xf4\x83\x88\x3c\xc5\x3e\xe7\x03\xdc\x7f\x23\x6d\x2c\x46\x14\xc2\xbf\xde\x4d\x74\x6e\x7b\x6e\x22\xb4\x9b\x0e\xf8\xcf\x8e\x01\xc7\x2a\x2b\xb7\x70\x3e\xba\xbf\xb1\xaf\x01\x28\x63\xd9\xfe\x47\x24\x0d\x30\x87\x7d\x48\xba\x34\xed\x9c\x0d\xe7\x97\x3e\xd5\xea\xdc\x86\x27\x10\x3b\xa2\x3d\xca\x17\x91\xb6\xee\x8f\xb4\x35\xd1\xe9\x2a\x85\xed\xba\x18\x0e\x31\x2d\xf8\x2f\x37\x37\x57\x61\x91\xdd\x8b\xa5\x81\x8f\x88\x2b\x3d\xf6\x3a\xd2\x68\x8a\xa5\x85\xf9\xdf\xbf\xdd\x28\x59\xdb\x72\x39\x1f\x94\x7e\x0a\x0f\x36\x74\xfb\x83\x6f\x77\x59\x70\xfa\xe3\x37\x1f\x2f\x42\x5c\x15\x63\x74\x22\xc1\x91\x10\x3d\xd2\x39\xa4\x64\xf4\x19\x66\x01\xe2\x7f\xc1\xc6\xc0\xad\xca\xa4\x35\xce\xf2\x41\xa4\x48\x68\x09\x3f\x3b\x9b\xb3\x1d\x53\x83\x82\xcb\x07\xbe\x18\x73\x74\x1a\x4b\x29\x12\x0d\x36\x3b\x02\xa3\x4d\xc3\x31\x10\xdf\x12\x31\xb1\x81\x80\x0e\x61\x3b\xbd\xdf\xc3\x77\x6f\x49\x61\x27\xd1\x91\xee\xc5\x80\xf2\x48\x2f\x2b\x73\x4b\x46\xc5\x98\xab\x8b\x5c\xf0\x14\x64\x5d\xe5\xf7\x98\xf1\xe4\x41\x90\x82\x9f\x3d\xe8\xa1\x1b\x88\xe5\x98\x5c\xdb\xdd\xc9\x8b\x08\x51\xcb\x0e\xdd\xb5\xe5\x2a\xe5\x79\xea\x21\x81\x62\xe5\xdc\x0e\x17\x70\x41\x78\xc4\x9d\x9e\x95\x6b\xe4\x87\xbf\x70\x95\x1e\x47\xd3\x99\xb5\xf1\x25\x49\xbe\x00\x9b\xcb\xac\xc8\x05\xa0\xd1\xba\xa5\x6c\x60\x45\xc6\xb8\x6c\xd5\x49\x56\x75\xde\x55\xd0\x9f\x2e\x43\xc6\x58\x92\xf1\x1c\xd5\x72\xae\xf0\x3e\xf7\xfb\x04\xee\xf3\xbb\xc2\x89\x72\x81\x57\x8c\x7e\x10\x79\x2e\x53\x77\x73\x6d\xa2\xca\xcd\xaa\x16\x0b\x16\x38\xee\xd1\x4a\x85\x57\x9f\x7d\x01\x60\xae\x77\xec\xf6\xec\x1a\xfd\xc0\xb7\x67\x4e\xf7\xaa\x4c\xca\xd6\x77\x81\x99\x88\x04\x02\x0f\x7e\x24\xdd\x98\x2d\xf1\xef\xdb\x22\xe6\xbc\x6e\xe8\x6d\xf7\x5c\xff\xf8\x95\xf7\xbc\x30\xcb\x1c\xcd\x95\xa7\x82\xcd\xef\xd1\xc9\x6a\xdb\xf4\xce\x19\x15\x90\xc5\x21\x7d\xc3\x6c\x80\xcb\x5c\x85\x79\x4b\xb8\x11\xc6\x67\xdb\x14\x99\x95\x93\x4c\x20\x3a\x16\x66\x08\x08\x95\xe8\xc2\xa9\x66\xa2\x8d\x67\x18\xa4\x6d\x0b\x1b\xc9\x23\xa3\x37\x41\x89\x00\xe2\x18\xc7\x54\x34\x77\x28\xa1\x2f\x3d\xc6\x31\x1d\x09\x24\xad\x13\x4d\x00\xb8\x30\x83\xc0\xf4\x0b\x88\x38\x28\xa7\x66\xa9\x46\x70\x8a\x89\x36\x76\x20\xbf\xb1\x50\x9c\x0b\xba\x95\x42\xbd\x8b\x5b\xdc\xc0\x4e\x95\xbc\xcc\x73\x3e\xc5\x21\xff\x43\xe4\xfa\x02\x60\xc9\x9d\x8c\x63\x31\x03\x6c\xca\xf8\x64\x22\x78\x5e\x0b\x7b\x63\x69\x6c\x15\x6e\x11\x3a\x6f\x58\x5a\x08\xb4\xef\xe0\xed\x11\x7f\x70\x93\x3d\x33\xc3\x7d\xf6\xc5\x6b\x25\x88\x55\x8f\x25\x44\xe6\xdd\xad\x62\xec\x16\xbc\x4b\xb7\x67\x3e\xfd\x02\x67\x2c\xfe\x31\x58\xb5\x08\xb4\x11\xa7\x10\x5f\x84\x30\xfb\xff\xf7\xfa\x3f\xfb\x2d\x5a\xc0\x7c\x7a\xec\x7c\xcc\x1b\xf0\x4d\x6c\x82\xcc\xd1\x9d\xa0\xc5\x2a\x07\xff\x1f\x30\x5f\x7d\x56\xd5\xe9\x62\x25\x45\xa8\x45\xe5\xe6\x42\x7a\x16\xfa\x1c\x92\x63\x37\xc2\x75\xeb\x44\x04\x2d\xea\xff\xc6\x92\x66\x7f\xde\x9d\x9a\x2a\xbf\xea\x4e\xf2\xcf\x05\x80\x5b\x84\x28\x8c\xc9\xad\xac\xbc\x36\xf0\xac\xff\x72\xf9\x1f\x95\x8a\xff\x6a\xf9\xb3\x0e\x17\x5b\xf5\xf5\x86\xdb\xad\x02\x79\x77\x03\x09\xd2\x20\x8d\xe3\xf5\xc2\xd9\x75\x15\xb3\x32\x9a\xb7\x8f\x90\x9c\x19\x8f\x7f\x0c\x87\x40\xb5\x6c\x2d\xf5\xc0\x57\xa7\x57\x93\x3a\x3d\x9e\x5b\xf4\xe5\x44\x23\x20\x80\x9c\x40\xce\x57\x6c\xbd\x57\x85\x1e\xe0\xc6\x14\x63\x7f\xd3\x41\xb9\x4d\x78\x2a\x6c\x67\xd8\x10\xee\x7e\x86\xdc\x84\x5e\xcc\xe7\x0c\x1f\x69\xe3\xad\x82\x0b\xa8\x8d\xa7\x0a\x6f\x2a\x0f\xbe\x1a\x70\x28\x10\xe6\xd2\x2f\x64\x93\x45\x86\x53\x1a\xa6\x1a\x25\x4a\x99\x5e\x56\xfd\x15\x6f\xcd\xb0\x92\xd8\xa6\x48\xfd\x0d\xb9\xf5\xdc\xa0\xaa\x30\xad\x34\xba\x76\x02\x67\xd0\x0c\x56\x4d\xa7\x67\x0c\x88\x2b\x3a\x2b\xde\x9a\xe6\xd2\x6b\x89\xd5\x49\xdb\xe0\xd6\x6a\x61\x54\xba\x0e\xba\xc7\x3a\xe8\x1f\xfb\xa2\x30\xb7\xb4\xcc\x02\x40\x83\x1c\x0a\x5a\xaa\x05\x7c\xa1\xee\x39\x7e\xc2\x99\xb6\x87\x6d\x28\xb6\x88\xb4\x45\x08\x8e\x27\x4f\x25\x7b\xf1\x58\xe2\x53\xe2\x9d\x89\xd0\xed\xd0\xbc\x77\x1f\xa3\xff\x34\x22\x49\xbd\xdc\x48\xaa\xd9\x7c\x0a\x65\x23\xed\x90\x0c\x3e\x0d\xca\xb2\x91\x5e\xb5\x1e\x25\x22\x1b\x54\x4b\x38\xa3\x95\x55\xc2\xab\x20\x40\x4b\xda\x67\xd7\x6e\x9f\x78\x75\x12\x3d\x10\x58\xd2\x52\xf5\x36\x60\x8a\x17\xbf\x87\xb8\x0e\xcf\xc0\x0d\x68\x05\xe3\x90\x44\xc6\x2e\x2a\x59\xa6\xbe\x21\x5b\x57\x02\x62\x9b\x23\xfd\x88\xd5\xe7\x56\x43\x21\x60\xec\x25\xbf\x0f\x3e\x93\xd9\xe6\x3b\x77\xa6\xad\x19\xfd\xc4\xfd\xd2\x5f\xb8\x11\x4a\x44\x82\x05\x9b\xe1\x78\xf3\x6a\x56\xe0\x44\x05\x88\x28\xce\x1e\x73\xa7\x77\xe7\x8c\x43\x9a\x06\x96\xdc\x23\x5a\x14\xcc\x89\x29\x26\x13\x9d\x5b\x67\x6a\xe7\x39\x56\x89\xe7\x66\x04\x14\xc1\x6e\x23\xfc\xc7\xe5\x2f\x9f\x41\x02\x3b\x8b\xa1\xcf\xd8\xef\xd8\x1a\xaa\xfa\x31\x62\x3a\x00\x2a\x0d\x35\x0d\x2b\x33\x80\x3a\x58\x80\x15\x1a\xe9\xb4\x82\x07\x0d\x07\x61\xc2\x93\x7b\x3e\x74\xc7\x7e\x20\x72\xb3\x33\x50\xaa\xdf\x81\x8e\xe1\x61\x39\xf1\x00\xfc\x5e\xc7\xb2\xf7\x7b\x09\x28\x4f\x51\x3f\x86\x84\xcc\xca\xc5\xdc\x42\xab\xf0\xeb\xfc\x24\x57\x55\x5e\x28\x58\xbd\xaf\xfc\xf1\x63\x20\x41\x5d\xea\xa9\xfa\x12\x92\x9e\x9d\x49\xf4\x07\xa7\x3e\x07\xa8\xc2\xcb\x34\xc5\xda\xbd\x5f\x7c\xc6\xe7\x3b\xac\x52\x11\x8f\x58\xdd\x55\xaf\xdb\xee\xcf\xbe\x8e\xfc\x67\xfe\xa5\x86\x17\x98\x1c\x8f\x45\xea\x6e\xf0\x2c\xd6\xab\x87\xda\xf0\xb9\xc6\x3e\xba\x6b\xe9\x1d\xfb\x43\x19\xd5\xc9\x85\x93\x62\xe0\x8f\xfe\xc1\xc7\x6d\x40\x2a\xc1\x7d\x05\x05\x92\x46\x28\x03\xe6\x5a\x3d\x54\xe9\x44\x9e\xf8\x66\x17\x38\x8f\x6d\x03\xa0\xe3\x53\x23\x64\xf0\x7e\x6f\x6e\x9d\x57\x05\xc5\xb6\xee\x70\xa9\x6c\xf6\x56\x4e\x97\xde\x8a\xaf\xf0\xd4\xa7\x4b\x2d\xe5\xc5\x3b\xe0\xaf\xae\x4d\x95\x1e\x3e\xed\x81\x14\x56\x73\x6f\x6e\x6d\xf0\xdd\xf6\x60\xed\x89\x98\xc8\x92\x72\x79\xb7\x13\xd0\xed\x97\x37\x18\xf8\xfe\xd6\xbe\xeb\x6f\xaf\x3f\xf8\xc9\x02\x7e\xed\xee\x87\xfa\xa4\x2f\xed\x78\x60\xee\x73\x6f\xd7\xf9\x5c\x91\x4a\xdb\xed\x52\xae\xcd\x68\xca\x0b\x3b\x42\x26\x88\xdd\xef\xe3\x8e\x3f\xbd\xf6\x6a\xb7\x66\x4e\xde\xc6\xc8\x3b\xfc\xf2\x06\x03\xd7\x26\x01\x35\x7e\x67\xe3\x7d\xfa\x07\xdf\xee\x65\x98\x6f\xd7\x3d\xd4\x77\x90\x52\xba\x93\x69\x7d\xea\xa7\xd6\x9d\xd0\x27\x7e\xef\xed\xda\x97\x53\xe2\xac\xa5\x01\xf2\x06\xed\xfe\x98\x24\x5a\xe7\xa9\x07\x69\xdb\xe9\xf5\xd0\xed\x87\xd7\x1d\x76\x1a\x88\x6a\xf7\x20\x8d\x3a\xfc\xf6\xba\xc3\x06\x13\x7e\x0f\xbb\xac\xd4\x62\x77\xf8\xd1\x41\xa6\x1f\x7d\x2d\x48\x3f\x42\x07\xef\x61\xbd\xe5\x98\x0f\xc5\x44\x67\x32\xd9\xc7\x6e\xf3\x98\x88\xab\xe8\xfb\xbb\x3e\xde\x5d\x7e\x76\xdd\x85\x57\x3a\x5d\xce\x5e\xbf\xa5\x99\xee\xe4\xb3\xeb\x0e\x16\x37\xd6\x0e\x3f\x98\xdf\xf1\xa4\xbf\x3f\xb5\x72\x1b\x9f\x5f\x7b\xa9\xb7\xd1\x89\x75\xd7\xc1\x24\x23\x91\x16\xd9\xae\x0f\x76\x97\x9f\x5d\x7b\xde\xbb\xfc\xf8\xda\xf3\x2d\x80\xe2\xbc\x03\xe9\xb9\xfe\xb0\xad\xce\xf9\xb0\x83\xcb\x65\x1f\xdf\xdc\xdf\x68\x67\x57\xd8\xff\xab\x5d\x5e\x5d\x63\xac\x61\x71\xd8\xa4\xfa\x58\x95\x2a\x61\xa4\xb3\x94\x95\xea\x0f\x93\xaa\x04\x10\xf5\x9d\xc5\x1a\xf8\x1b\xcd\x02\x13\x61\x0f\x5d\xfc\x81\xef\x09\xc3\x54\x23\x6e\x58\xed\x23\xdc\x40\x22\x1b\x24\x8d\x48\xc5\xa6\xba\xc8\x63\xd3\xbd\x6a\xf1\x05\x70\x69\x60\x16\x49\x88\x87\xf8\xc7\x63\xcd\x04\x3e\xd3\x67\xff\xa1\x0b\xc4\x89\x0c\x90\x60\xe8\xb8\x11\x39\x3e\x1f\x88\x5c\x27\x59\x31\x94\x98\xa6\x8e\x9d\x7f\xf5\x8a\x7d\x0a\x6d\xf9\xe0\xd6\x3b\xec\xd9\x2f\xd3\xcb\xab\x4f\xfe\xb3\xf8\x15\xf6\xcf\x5b\x75\x6b\xc3\xf4\xde\x4c\x27\x02\x18\x50\xfe\xf6\xdf\x46\xab\x77\xb7\x67\x3d\xa9\x32\xa9\xc4\xed\xd9\xdf\xdc\x63\xbf\x4c\xaf\xf0\x5b\xe1\x79\xdf\x54\x78\x7a\xec\x7f\x87\xc7\xff\x85\x9f\xc4\xbf\x5c\xd6\x3e\x77\x89\x89\x72\x21\x23\x3e\xbc\xce\xf1\xcf\xf8\xb6\x1f\xc8\xc7\x6f\x3b\x19\x48\x6d\x2d\xb7\x38\x9c\x2f\x98\xa7\xf7\x28\x73\x81\xa1\x78\xc8\x7c\x84\x84\xa5\x4c\xeb\x7b\xc8\xc4\xb0\x23\x24\xec\xbd\xc7\xfd\xf7\x0e\x3f\x72\x0b\xa7\xed\xf6\xec\xdd\xed\x59\x65\xf0\xb7\x67\x3d\xfc\xb1\x2c\x0f\x82\x47\x1e\xde\xc4\x5f\xca\x51\x84\x96\xaa\x6d\xf9\xf1\x84\xa7\x6d\xa5\xdb\xef\x6e\xcf\x06\x5a\xfb\x5f\xfe\xd5\xf3\x83\xb8\xd6\x98\x6f\xe5\xe9\x28\xfe\x0f\xfb\x20\xb0\xca\x05\x52\x0f\x21\x05\xc9\x8d\x9f\xe9\x9c\x4d\xf9\x18\x80\xcc\x0b\xe5\x83\xb8\x21\x29\x0c\xd2\x3c\x43\x99\x08\xe0\xb9\xd7\xce\x4b\x75\x75\xfb\xec\x06\x41\x6f\xa0\x65\x08\xb3\xf3\x47\x9c\x35\x8f\x72\x05\x1c\x34\x88\xa0\xa5\xb4\x65\x85\x72\x3b\x25\xd0\x4b\x21\xbb\xae\x15\x00\x36\x0f\x35\x20\x93\x29\x7b\x81\x5c\xb5\x93\xfb\xe1\x2b\x2c\x68\x72\xd3\xf6\xb2\x04\x96\x9f\x3b\x88\x00\xd9\x8f\x3b\x25\xec\xc3\x73\x13\x2a\xfe\xaf\x93\x91\x18\x23\x2c\x6b\xd9\x1a\x1b\x14\x2a\xb1\xfe\x8e\x31\x96\x43\xbd\x2b\x5e\x1d\xb0\xd8\xd8\xcb\x72\x07\x78\x26\x1d\xa9\x6a\xb7\x4a\x8f\xd9\x22\xf7\xc4\xa6\x65\xf7\x42\x64\x3c\x80\x02\x4d\x27\x21\x2b\xcd\xea\x3c\x3e\x0c\x8f\x86\x39\x7c\x71\xf3\xe5\xc3\x97\x77\x01\xa4\x3d\xe1\x06\x20\x82\xe6\x50\xbb\xb1\xf6\x2b\xf0\xc1\xfa\x86\xe3\x19\xf9\xcd\xff\x7d\x06\xe5\x2a\x09\x60\x38\xbe\x07\x22\xed\xbf\x9c\x0f\x93\xaf\x93\x58\x50\x58\x99\xf5\xa5\xb2\xc6\xe6\xfd\x4f\xca\x7e\xc9\x91\x3e\x74\xc9\x7d\x5f\x79\xca\x73\xb2\x40\x5d\x74\x80\x4b\x82\x6b\x9f\x2b\x06\x69\x20\x0c\xc1\xa4\xe1\xe1\x3e\x63\xbf\x23\x79\x31\x4e\x3e\xac\x85\xce\x31\xcd\xc0\x6f\x5a\x48\x3d\x00\xc8\x46\x55\xf9\x0b\x60\xd1\x4e\x02\x5e\xb7\x06\xa6\x65\x53\x8c\x45\x00\x72\x52\x3e\x48\x1c\xb2\x5c\x01\x7c\x05\xe9\x8c\x9d\x1c\x02\xca\xa8\x41\x9d\x68\x00\x3e\x8e\x42\x26\xf6\x9c\x27\x50\x9d\xc4\x3d\x60\x63\xee\x51\x52\x1b\x93\x14\xa4\xb2\x17\x3a\xbf\x98\xe1\xe9\xdf\x28\x51\x21\x90\x00\x7e\x52\x03\xbd\x74\xda\x07\xba\x44\x46\xf1\x2f\x21\x52\x76\xcc\xed\xec\x43\x22\xcf\xa3\x38\xcf\x32\xf6\xc8\x7d\x09\xb0\x34\x21\xd7\x0a\x29\x61\x2b\x8f\xaf\xce\x5d\xb8\x2b\x64\x96\x7e\xe0\xb6\x7d\xf0\xbc\x54\x4a\xce\x12\x3d\x9e\xc8\x06\x90\x8b\x56\xa8\xb6\xd2\xbe\xd7\xe3\xb1\x9c\xcb\x9b\x68\xf9\xf2\x4d\x2e\xc4\xb5\xdd\xb0\xe3\x43\x69\x17\xd4\x7f\xb6\x7a\x5b\x3f\xe1\xe5\x31\xff\x6f\xbd\xd1\x84\x8d\xa5\xda\xec\xc5\x49\xc6\xad\xdb\x12\x5d\xa7\x47\xe0\x48\xe6\x7a\xd8\x3c\xcd\x8d\x2b\xbf\x68\x45\x7b\x4d\xfb\xb3\x71\x01\x9a\x36\x63\xd3\xd0\x83\x7e\xbc\xce\x55\x7a\x5f\xdc\x89\x0b\x3e\x1c\xe6\x62\xc8\xad\xce\xcb\xa4\xa3\xd9\x00\xee\xc3\x9b\xfe\xe5\xd5\xa7\x6b\xc4\xec\x5d\x72\xc2\xcb\x87\x66\x92\x90\x30\xb3\x7b\x0e\x6c\xed\xcf\xce\x6c\xf8\x6b\xa0\x10\xad\x21\xa1\xde\x06\x73\xa0\x0f\xb6\xc5\xed\x19\x15\x3d\x1f\x74\xd1\x33\xd5\xb6\xee\xa9\xb6\xb5\xf3\x32\xd2\x0a\xfd\x65\xe3\x27\xcd\x44\x24\x6b\x7d\x6e\xb3\x6b\xe6\xda\x7d\xa6\xb7\x64\x3b\xb9\x07\x2a\xa4\x52\x95\xfa\x10\x60\x93\xd3\x01\xb6\x1f\x30\x87\x61\x8d\xfc\x5f\x3c\x77\x02\x5e\x4a\xeb\x54\x5a\x6e\x63\x94\x0d\xa5\x85\xcd\x05\x9d\x71\xa4\xa9\xc8\x25\xe2\x12\x36\xd4\xfb\x5d\x5e\x7d\x9a\x1f\xd8\x9c\xb8\xdb\x5e\x3e\xdf\x3a\xa9\x3f\x15\x91\xd2\xca\xeb\xb5\xcc\x05\xb4\xd9\xec\xbf\x0f\x78\x43\xad\x64\x5a\x7c\x3a\xe6\x60\x9b\x7a\x0a\x29\xce\x7f\x90\x80\x48\xfb\x55\x0a\x3b\xb8\x8d\x56\x0b\xb1\x8c\x1b\x7b\x93\x73\x65\xe0\x53\x37\x3b\x26\x21\xfe\xcc\x8d\xc5\x3c\x67\x8f\x08\xec\x47\x6c\x63\x8f\x02\xec\x9d\x56\xb1\xac\x01\x20\x12\x20\xd3\x75\x11\xa3\x75\xab\xc2\xc0\xbf\xd4\xcb\x02\xfd\x4b\x55\x0a\x8e\x58\x99\x04\xdb\x3d\x83\xbe\xc6\x8e\x6d\xab\xe2\xef\x37\x00\xe4\xec\xb9\x01\x5f\x3c\xea\x3c\xed\x95\xb2\x21\x60\x3e\x04\x82\xa2\x38\x5f\xe7\xa6\x83\xde\xad\x53\xee\x2d\xcd\x1c\x40\x41\xa5\x3b\x20\xe4\x9c\x84\xbb\x01\x28\xbe\x9f\x78\x66\x44\x8f\x79\x0b\x7d\x13\x6a\xec\xd5\xe4\xf2\x55\x5a\xf9\x50\x1b\x57\xef\xd3\xa6\xc5\x07\xed\x52\x99\xfd\xe4\xed\x4e\x2d\xfe\x2c\xcd\xb2\xd4\xfc\xfa\x83\xa8\x06\x65\x1e\x5c\xbc\x72\x69\x10\xc2\xcf\x31\x28\xbb\x4d\xf5\x8a\x1b\x15\x31\x6e\x68\x81\x55\xbe\xb0\x76\x45\x23\x29\xea\xa7\xa2\xa8\x47\xbc\x97\xb5\x2f\x4b\xdc\xaa\xab\xee\xc6\xbd\xab\x85\x70\xa5\xee\x49\x35\xbc\xae\x5b\x39\x8b\xaf\xf3\x6e\xcc\x10\x4f\xea\x0c\xdb\x16\xf8\xd0\xb0\xb0\x0d\x4b\x30\x01\x42\x7a\xaa\x0b\x28\x5b\x0b\x5c\x7f\xa9\x44\x54\xdf\x4a\x0a\xa2\xbb\xd3\xf1\x9f\xed\x5c\xa3\x09\xff\xb1\x50\x69\xb6\x4a\x94\xbf\xbf\xc4\xc7\xf0\x4a\xb8\xfa\xf8\x0b\x00\x83\xa4\x22\x65\xef\x2f\xd9\x1d\xfe\x54\x09\x56\x54\xc8\xa4\x3c\xdf\x9c\xa8\x5b\x26\xe7\x08\x2c\x08\x00\x24\x65\xe7\x01\x20\xa1\x50\x95\xda\x53\xcf\x8b\x6a\xf3\xc2\x58\x96\x6b\x6d\x4d\x00\xae\x28\xc9\xe4\xdd\x8c\xb8\xaf\x2d\xac\xe5\xbc\x9b\x5a\xb1\xfe\x69\x6d\x53\xf6\x0d\xce\xab\xa0\xe2\xb8\xd1\x61\x0d\x38\xb8\xde\x2b\xe8\x89\x80\x78\xb8\xc1\x85\x01\xad\x5d\xe5\x52\xe7\xd2\x4e\x7f\x91\x4a\x8e\x8b\x39\x07\x67\x53\x8f\xaa\xaf\xa8\x62\x1c\x3a\x38\xf1\x7f\xc6\xae\x61\x57\xbd\x10\x07\xc6\x07\x6e\x59\x26\xb8\xb1\x7d\xf6\x17\x39\x1c\x89\xbc\x7c\x61\x2c\xb8\xaa\x14\x41\x0e\xc3\xb0\x27\x80\xdf\x9b\xd7\x79\x25\xb4\x1b\x71\xa6\x1f\xab\x0d\x68\xe5\xa4\xf9\xaf\x3a\xf8\xef\xb1\x26\x2e\x04\xd0\xa3\xde\x81\x0d\x8f\xe5\x70\x14\x88\xeb\xa6\x50\xb6\xc8\x46\xd8\xa1\xc6\xd1\x79\x46\x08\x53\x00\x1c\x43\x20\x93\x1a\xe9\x2c\x74\x74\x28\xc0\x03\x39\xaa\x0f\x2a\x50\x25\xca\x31\xcf\xa7\xcc\xe8\x1c\x34\xb2\x3b\x6e\x80\x48\x6f\xfe\x53\xe3\x02\xb8\x42\x53\xe1\x86\x0b\x6d\x19\x1b\x28\xe8\xac\x86\x01\x1b\xcb\x5e\xbc\x7d\x1d\xea\x05\xdf\xbc\x7e\x19\x88\xb0\x9c\xc6\xdb\xf8\x15\xac\x49\x9e\x8c\xf8\x9d\x00\x56\x25\x20\x1d\xe5\xb9\x34\x25\x8e\x88\xaa\x00\x3b\x07\x15\x8c\xbd\x78\x78\xd3\xbf\xe3\x79\xf8\xd4\xc3\x9b\xfe\x40\xeb\x97\xec\x77\x71\x9e\x96\xc5\x87\x33\xb1\xe1\x77\xec\x0f\xfe\xd2\x65\x2f\x3c\x86\x5d\x99\xd8\xf0\xd2\xad\xfe\x9b\x3f\xbd\x7e\xfd\x1a\xae\xa9\x2b\xce\xaf\x85\x61\x2f\xbe\x4c\x84\xba\x1e\xc9\x81\xed\xb1\x0f\x42\xba\xa7\x80\x35\x28\x56\x37\xfa\x90\xaa\x0f\x1e\xbe\x7d\xfd\xfa\xb5\x59\x74\x0a\x37\xad\xa8\x96\xca\x88\xa4\xc8\xc5\xf5\xbd\x9c\xdc\x7c\xbe\xfe\xab\xbb\xdf\xa6\xab\x0a\xd8\x9b\xde\x09\xd7\xa5\x61\x37\x9f\xaf\x17\xde\x99\x9e\x58\x6b\xfe\x9a\xae\x9c\xe7\x92\xba\xcd\xd8\x5c\xab\x61\x06\x6d\x27\xba\xc8\x39\x30\xa6\x40\x1e\x46\x89\xd8\x0a\x73\x53\xde\xa0\x48\x4d\xb9\x09\xb6\xb9\x99\xf3\xbe\xb3\x4e\xd5\x4b\x2f\xce\x4a\xb2\x83\xa5\x3e\x29\x6f\xae\x78\x10\xd3\x00\xea\x5e\xe1\x5c\x71\xbf\x46\x28\xcb\xf2\xee\xef\x33\xf6\xc9\x57\xfd\x97\xd3\x0c\xd4\x12\x4e\xdc\xb1\x3f\xfe\xf1\xfb\xc0\x2f\x5c\xf9\x04\x30\x2e\x23\xda\xac\xbf\x8b\x04\x1b\x71\x95\x66\x81\xed\xb7\x76\x03\x87\x98\xba\x34\xf8\x90\x48\x41\x0a\x67\xd9\x14\x0f\x5d\x6d\x25\x05\x20\xae\x7a\xee\x10\x39\x9e\xb8\xd5\x14\x99\x9b\xae\x38\x1a\xe5\x76\x71\xe6\xdb\xca\x59\x32\xe2\x52\xf9\xad\x1f\xc1\xa9\x17\xf8\x3d\x1e\x5a\x19\x68\x7f\x2d\x3b\x1c\x06\x52\xf2\xe3\xcd\xc8\x91\x3e\xab\x13\xce\x63\xee\xc6\xfa\xd2\xc5\x7f\x20\xdc\x71\xed\x7a\x18\x9e\x0e\x28\xfd\xd8\xdf\x48\x3a\x1c\x2e\xf2\xea\x00\xa4\x32\x32\x85\x2b\xcc\xa9\xf3\xb0\x3e\x7d\xc6\x02\x2f\xd8\x10\x92\x01\x72\xc4\xd3\xfa\x87\xc8\xf5\x8a\x7b\x79\xa6\x1f\xf3\x57\xf2\xe2\xbb\xf8\x5a\x02\x5c\x97\x3d\x37\x95\x3e\x71\xec\x91\xe7\xed\xc5\xeb\xdc\xc3\x2c\x98\x31\xcf\xb2\x1e\x9b\xe4\xfa\x8e\xdf\x65\xd3\x70\xcb\xbd\x79\x6d\xc0\xea\x80\xa4\x08\x3d\x60\xe2\xef\x45\x85\x80\xc9\x8b\x17\x29\x3c\x51\x6d\xf8\xbb\x37\xa3\x66\xd5\x23\x77\xdf\x17\x1e\x0f\xc3\xf3\x6b\x63\xd7\x78\x98\x29\x7f\x16\x66\xda\x91\x86\xdd\x9e\xc1\xd9\x76\x57\xfb\xed\x59\xc9\x74\x0b\x33\x86\x30\xcc\x4a\xab\xfa\x53\x33\xad\x98\x9e\x57\xda\xdc\xad\x1e\xe6\x31\x13\xdf\x64\xa2\x87\x39\x9f\x8c\x02\xcf\xdf\xed\xd9\xcf\xf3\x6d\x00\x3a\x6d\x6e\x83\x0e\x7b\x7b\xf6\xe0\x7a\x81\x1c\x64\xb9\x3b\xf8\x9e\x3c\x06\x68\xca\xfc\xc4\xbe\x40\xa2\x87\xff\xd6\x51\xf6\xbf\xf4\xaf\x54\x58\x70\xd1\x89\x05\xa3\xbc\x3d\x03\xe1\x18\x50\x0a\xef\x84\x75\xff\x06\xf2\x6b\x74\x36\xd6\x1b\x96\xaa\xd2\x30\xec\x23\x23\xa0\x33\x06\xf4\x68\x9f\x71\x74\x37\x65\x7f\xbe\x64\xb7\xc5\xeb\xd7\xdf\x0b\xe6\x9a\x0c\xff\x86\x6f\x01\x14\x47\x2e\xdc\x23\x70\xb3\x85\x19\x83\x61\x2a\x1d\x18\x8f\x41\xdb\xe0\x06\xdf\xd7\x39\xbe\xfb\x32\x52\x5e\x29\x50\x88\x50\x96\xab\x61\x7d\xc8\x7e\xc4\xb5\xde\x22\x1d\x20\x9e\xe8\xd0\xdb\xe0\x1a\x0a\xf3\xfd\x8e\x3d\xbc\x79\xdd\x63\x0f\x6f\x7b\xec\xe1\x8d\xfb\x7f\x58\xcb\xe9\xfe\xf5\xda\xfd\xeb\xfb\x1e\x7b\xf8\x1e\x72\x26\xdd\x9f\x7c\x21\x13\x3c\x07\xff\x7c\xdb\x63\x03\xad\xdf\xe0\xff\xff\xba\x1b\xe0\x93\x96\xb6\x66\xa3\x1e\xbb\xe4\x26\xda\x9d\xc7\x6e\x25\x52\xf7\xec\xa3\xeb\xc7\x60\x56\x9b\x60\x4d\xcc\x08\x4d\x7d\x79\xef\xd1\xfe\x82\x6c\x2d\x83\x0e\x13\xe9\x3b\xd9\x01\xa8\xd6\x53\xc3\x28\x2d\x1d\x53\xb5\x9f\x56\x71\xf0\xcd\x78\x76\xd7\x27\xe1\x5b\x15\xfe\x7a\xea\x8e\x9a\xd3\x9c\x96\x73\x1f\x54\x1f\x85\x5c\xb3\x39\x1d\x2a\xac\xa7\xd3\x43\xe6\xeb\x8e\x16\xee\xa5\xb6\x44\x31\x5e\xcf\xa8\xda\x16\xa6\x29\x0e\xb7\x1d\xb6\xd4\xca\xd7\xf1\x0f\x4f\xed\x82\x53\x1c\xd7\xc6\xb4\x02\x6d\xb3\xc2\x4b\x2f\x23\x04\xa9\x36\xa8\xf6\x8b\xbb\x91\xd6\xf7\x91\xa9\xc9\xad\x8b\xd3\x4e\x9d\xba\x79\xc7\x93\xfb\x47\x9e\xa7\x78\xc9\x5b\x79\x27\x33\xb0\x29\xff\xe6\x5a\xfd\x5b\x05\x0a\x8b\x7b\x96\x41\xf8\x5a\x90\x56\x6f\x2e\xfe\x9f\x7f\xfb\xb7\xef\xff\xcd\xe3\xb0\x1a\xf9\x20\x66\x61\xbd\xba\xba\x90\xbb\xdd\xe7\x20\x5d\x28\x0f\x88\x42\x23\x94\x07\xf4\x2c\xc2\x0b\xfb\xcc\x03\x9a\xbd\x6b\x4e\x38\x19\x68\x6e\xa8\x94\x11\xb4\x3c\x23\x68\x9d\xca\xb0\x27\xac\x03\xe5\x06\x51\x6e\x10\xe5\x06\x51\x6e\x50\x67\x17\x0a\x25\x08\x3d\x1f\x2d\x78\x1f\x09\x42\x73\xf6\x59\x4b\x67\x0c\xa9\xf1\x27\xad\xc6\x3f\xf7\x2c\xa1\x1d\xa9\x8b\x94\x2f\x44\xf9\x42\x94\x2f\x44\xf9\x42\x94\x2f\x44\xf9\x42\xcf\x21\x5f\x08\xe5\x1f\x25\x0d\x51\xd2\xd0\x8a\x1e\x52\xd2\x10\x25\x0d\x51\xd2\x10\x25\x0d\xe1\x6d\xd2\xd2\xf4\x3c\xb0\xa4\xa1\x05\x31\x1a\xca\x1c\xea\xc4\x51\xf5\xbc\xd3\x87\x16\x28\x52\x94\x43\x44\x39\x44\x07\x9b\x43\xf4\x9d\x7f\xe2\x4c\x56\x11\xbf\xce\xac\xb4\xe0\x1c\x02\xe1\x8f\xe7\xcb\x7f\xb7\xee\x92\xeb\xbf\xf9\x53\xff\x4f\x67\xb1\x91\x09\xb7\xa3\x72\x1b\x9e\xbd\xe2\x13\xf9\xaa\xba\xff\x87\xc2\xce\x5d\x7d\x00\x9e\x56\x93\x19\x10\xf1\x98\x64\xde\x32\x7b\xf5\xdf\x66\x96\x5e\xac\xfa\xeb\x94\x8f\xb3\xc5\xbf\x3e\xa8\xb4\x5f\x21\xd2\x9b\xe4\xda\xea\xbb\x62\x50\x4e\xd3\x7f\x56\xb6\xce\xcc\x36\x19\x0a\x5b\x52\xf7\x56\xb5\xda\xaa\xad\x7b\x16\x79\x13\x3f\xa5\xfe\xa5\xf7\x3a\x17\x65\x20\xa6\xf6\x70\xc0\x8d\x3b\x88\xe1\x06\xce\xdd\x39\xa9\xf3\xf6\xf5\xeb\x79\x91\x31\x4b\xe9\xf6\x73\xad\x17\x0c\x41\x81\xc7\xb3\xee\x6e\xf6\x44\x97\x77\x75\x1e\x6b\xcd\xfe\x6b\xa1\x80\xf9\xe3\xeb\x37\x2b\x7b\xff\x9b\x0a\xa8\xd1\x22\xad\x89\xaa\x66\xfb\x1b\x80\x1e\xe7\x16\x0d\x3c\xb6\xcd\x53\x6b\xf9\x70\xee\xf1\x44\xe7\x15\x59\xf4\x9f\xdf\x55\xbf\x18\x64\x0e\x1c\x98\x87\x37\xa7\x72\x66\x9a\xc2\x6e\x0b\x0e\xcc\x5f\xdf\x5c\x5e\x7d\xfa\xda\xf4\x3c\x9d\x99\xf5\xcf\x4c\x98\x48\x08\xa8\x9c\xc0\xb9\xf9\xaf\x6a\x89\xf8\xf2\xa3\xe3\x84\xb0\x56\x42\x59\x4c\x0d\xa8\xad\x54\xfb\xb3\xf4\x87\x57\x7f\x68\xb5\xdf\xd1\x4e\xc3\x40\xbe\x53\x5d\x80\x9b\xf9\x7d\xe8\xc2\x5c\x02\xd8\xec\xe6\x77\xaf\xe3\xee\x5f\xf2\xce\xbe\x0e\xc0\xc2\x17\xdc\xc7\x7e\x30\x36\x17\x7c\xfc\xef\x8f\xf3\x3c\x3d\x2d\xda\xae\xbf\x7d\xd8\x27\xad\xef\x36\xa0\x3b\x57\x33\x4b\x74\x9a\x67\xab\xf2\x42\xcd\xb8\x42\x9e\xe5\xb0\x67\xcf\x16\x3d\xd6\x18\x2c\x6e\x0e\x11\x37\x07\x83\x17\x9f\x83\xd5\x98\x11\xa5\xaa\x3b\xe1\x39\x1f\x0b\x2b\x72\xb3\x38\x56\x3d\x33\xfd\x80\xd3\x0b\x78\xf6\x3f\x6a\x7d\x3f\xe6\xf9\x7d\x25\x1b\x01\xf6\x29\x32\xef\x1a\x1f\x16\x98\x4e\x04\xbb\x3d\xfb\xf1\xcb\x97\x9f\x7f\xb9\xfc\xfa\xf3\xed\x59\x99\xf7\x00\x86\x43\xaa\x01\x94\x5a\x8e\x27\x99\x18\x3b\x9b\xfd\x2e\xb6\x0a\x79\x11\x43\x85\xc4\xdb\xd2\xb0\x41\xc6\x31\x48\x5c\x3e\x02\x7e\x2b\xf7\x96\x0f\x6b\xc5\xe8\x69\x2a\x4d\x92\x0b\x9f\xec\xe5\x03\x6f\xde\xc0\x70\x9f\xe3\xc6\xdd\x66\x33\x0d\xe5\xc2\x16\xb9\x12\x29\xa4\x2a\xaa\x69\xb0\x7d\x12\x4c\xd4\x79\xe0\x59\x8f\x29\xe0\x4d\x06\xf7\xdb\x34\x34\x52\x7e\xd7\xfb\x16\x05\xb8\xde\xa6\x2c\x8c\xd9\x33\x11\xa7\x05\xb8\xb9\x38\x33\x02\x29\x52\xd1\x6b\x89\x81\x12\xe8\x14\x4e\x5f\xaf\x4a\xf8\xed\x7e\x85\x29\x48\xa3\x93\x73\x20\xb8\x2d\x72\xc1\xc0\xf7\x3e\xb3\x10\xbe\x25\xa1\x9c\x5a\x01\x80\xcd\x31\x0e\xbc\xa8\xd9\x19\x3f\x08\xac\xf1\xdf\x0b\x91\xcf\xf8\x1c\xbc\x95\xdc\xb4\xfc\xcb\x23\x35\xb5\x1f\x0b\x48\x1e\xfc\xe4\x9d\x2d\x36\x2f\x44\xd3\xa1\x5d\x9a\x48\x87\x49\x73\x56\xaa\x42\x78\x87\x68\xc5\x72\x34\xc2\x62\x80\x0a\x19\xd9\x21\x80\x3e\xd6\xb0\xb6\xa6\xc8\x6c\x25\xb9\x26\x84\x36\xd0\xdf\x0d\x53\x83\xc9\x3c\x65\x20\x01\x33\xc3\xd2\x5e\x8c\xdc\xba\x95\xd7\x2a\x9b\xc6\xa0\x55\xec\x08\xbe\x0a\x8d\x73\x36\xc9\xc5\x03\xf0\x0e\xc0\x34\xfa\x4f\xe3\x69\x40\x36\xf2\x84\x67\xfe\xb7\xf2\xfc\xc5\x98\x63\x88\xd3\x60\x93\x7a\x10\x3f\xf2\x32\xf8\x4d\x43\xff\x2a\xb9\x62\x7c\xb6\x2b\xd2\x9d\x2c\x81\xbb\x21\xa6\x91\xc5\x2d\x14\xad\xfa\xb9\xd7\xdc\x1b\x40\x2a\x2f\x72\x6f\x84\x3f\x8e\x04\x38\x91\xd3\x02\x9c\x2c\xe2\xdb\x44\x7a\xfe\xfb\x17\x43\xa1\x44\x0e\xee\xe8\x81\x7c\x80\x5f\x07\x72\x60\x05\xfa\x6d\x0b\x2b\xcc\x4b\x84\x12\x4f\xb4\x1a\xc8\x61\xe1\x5f\x4b\x46\x5c\x0d\x45\xd5\x8b\x80\x9b\xb3\x7e\x8a\x50\xac\xa5\xc1\x73\xfe\xc7\x37\xaf\x59\x50\xd6\x3e\xba\x2e\x88\x14\xe9\xf1\x99\xd5\x43\xec\xa0\x7f\x32\x8e\xc8\xea\x7b\xa1\xe2\x90\x7d\xfe\x94\x12\x02\x1c\x47\x4e\x9f\x91\xc6\xba\x3f\xb9\x7b\x1a\x22\x03\x10\x6d\xcb\x05\x7a\xec\xed\x48\xc8\x1c\xdd\xcb\xae\x61\x5d\xd8\xfa\x8a\xc3\x39\xea\xb3\x2f\xee\xd3\x8f\xd2\x78\xb2\x82\x40\xf1\xcf\xa7\xe1\x1a\x40\x0f\x3c\xb4\xe3\x6f\xc9\x10\x2e\xf5\x3d\x74\xcb\x23\xc0\x3f\x1a\xff\xee\x06\x0b\x83\x5b\x39\x2d\xd0\x2e\x74\x18\x42\x7c\x61\x73\x03\xa8\xff\xbd\x98\x22\xe8\x7f\xfc\xb3\xcf\x3b\x34\x8a\x4f\xcc\x48\xdb\x10\xd8\x70\x97\x81\xaa\x4c\x48\x7c\x3e\x6e\x64\xdf\x7d\x3c\x42\x17\x51\x8f\x83\x0b\xdc\xdd\x9c\x1e\xe1\xbe\xc7\xc6\x9e\x9d\xbc\xe7\x16\x3e\x45\xd2\x71\xc6\x07\x18\xbb\x0a\x14\x08\x33\x93\x81\xb1\x1e\xf0\xea\xa4\x78\x67\x01\x89\x81\x57\x6b\x7a\x8c\x1b\xd8\x90\xee\x7f\x71\x51\xee\xc5\x14\x2f\xec\xb2\xe1\xdb\xb3\x30\xe4\xdb\x33\xa4\x27\xa9\xdd\x75\xee\x14\xc4\x74\x21\xbc\x20\x50\x52\x49\x03\x97\x50\x29\x23\x60\xe5\x60\x03\xf8\xdb\xb8\x3a\x7b\x38\x09\xb0\x07\x43\x2c\x32\x24\x00\x7a\xc9\x71\x37\xad\xae\x98\x3b\xaf\xee\xd3\x63\x69\x0c\x48\x04\x9c\x1e\x54\xf9\xcc\xba\x37\x6f\xd8\x7a\x4b\x5d\x7d\x1d\xdf\xb6\x97\xcc\x88\x4c\x24\x16\xce\x19\x9c\x8d\x5c\x26\x78\x12\x42\xe4\x25\x8e\x3d\xec\x0a\x9c\x03\x99\xe3\xf4\x9b\xe8\x0a\x84\xf4\x57\xf1\x20\xf2\x29\xe4\x5c\xac\x3b\x7c\x68\xed\xda\xf7\xe6\x68\xe6\x20\xe3\x77\x22\xeb\x6c\x0e\xa0\xb5\x7d\xcc\x41\x26\xc7\xd2\x27\x68\x8f\xf9\x37\x39\x2e\xc6\xc1\x2f\x0b\xa3\xf7\x16\x08\xce\x8f\x9b\x0a\x5f\xef\x08\xf3\x93\xf0\x2c\x83\x6b\x18\x04\x31\x04\x5a\x98\xf8\x06\x97\xee\xbc\xea\x84\xf3\xfa\xb7\xb0\xd7\xff\xe6\xcf\xb0\x17\x16\xd0\x5e\x48\x18\x85\x3a\x0b\x7f\x00\x23\x1d\x44\x88\x1a\xc7\xbb\xd4\x80\xeb\xde\x59\x2b\x51\xe8\x62\x2f\x9d\x7a\x20\xca\xdb\xd2\x7d\x1a\xc7\xe2\x96\xc9\x29\xa9\x16\x93\x12\x19\x8e\x1d\x85\x2d\x8e\x4d\x3c\x86\x58\x3c\xde\x54\x70\x93\xb9\x8b\x6e\xac\x0b\x65\x31\x88\xef\x46\xf9\xa2\x98\xb8\x8f\xfd\x43\xe4\x1a\xff\xf2\x32\xdc\x6e\xa8\x11\x72\xb8\xd0\xc3\xdb\x61\xef\x40\x60\x58\x66\x16\x02\xcd\x18\x25\x4b\xa3\x0a\xe2\x55\x9d\x9a\x16\x82\x19\xc5\x49\xb5\xa6\xa0\x22\xa3\x20\x11\xd2\xa9\x18\x63\xa9\x44\x94\xe6\x35\xa5\x08\xee\xd2\xe0\x8c\xaa\xe7\x25\x27\x23\xad\x8d\x80\x5b\xcc\xea\x70\x87\xfa\xb5\x70\xd3\xc2\xf3\x61\x01\x6a\x3b\x07\xa1\x04\x03\x82\x49\x72\x63\xf3\xfd\xa9\xf9\xb9\x70\x76\x3f\x0d\x58\xdc\x52\xa5\x32\x12\xf4\x9b\x99\x01\x48\xc3\xc4\x78\x62\xa7\x75\x45\x2c\x6a\xdf\xdc\x3a\x9d\x65\xd9\x80\x96\x09\x03\x39\x98\x11\x05\x28\x3d\xe2\xbe\x1c\x16\x3c\xe7\xca\x0a\x51\xc9\xef\x0b\x2b\x15\x8f\xfd\x23\x52\xa4\x40\xba\x66\xe8\x7b\x14\x6c\x51\xe5\xb3\x9a\x49\x63\x0a\x6f\x04\x48\x35\xcc\x44\x79\x42\xa2\x96\x11\x36\xdc\x85\x67\xfe\x30\xce\xea\x88\x9f\x5c\x4f\xd2\x06\x21\x0b\x36\x86\x29\x44\xda\x28\x6e\xc1\xd6\x29\xee\x8c\x7b\x58\xd9\x38\x82\x34\x9a\x75\x95\x7c\x2e\x3d\x16\x56\x8e\x85\x61\x31\xb3\xd1\x9d\xc2\x19\x8d\xaa\x54\x30\xdc\x8a\x0a\x65\x8a\x3c\x4c\x1f\x0f\x2a\x92\x1f\x9c\x9f\x35\x1c\x32\x1c\x4c\x50\x86\x30\xad\x04\xb2\x88\x0a\x75\x8f\xbc\x3b\xcc\x5d\x9b\x2c\xe3\xf9\x30\x2c\x34\x9c\x78\x6c\x1e\x2d\x32\x23\x04\x6c\xbc\x89\x36\x46\xba\x0d\x17\x4a\x47\xdc\x86\xab\x9e\x2f\x9f\x27\x5f\xda\x64\xf0\x9d\x90\x4f\x50\x4d\x25\xa9\x65\x16\x62\xaf\x1f\xb9\xf1\x67\x2e\xda\x9d\xb1\x44\xac\xa6\xe1\xa0\xde\xcf\x8d\x5b\xe0\xa4\xc8\xe0\x8b\xb2\xdc\x36\x6b\xdf\xfe\xb2\xce\xaf\xd1\x10\xd5\xea\xf8\xda\xff\x34\x60\xe7\xee\xbd\x73\x9f\x8e\x01\x33\x51\xd8\x49\x61\x7d\x76\xab\xb5\x53\x36\xc9\xdd\xd7\xd7\x1e\x0d\xbe\xbd\x4b\x21\x06\x44\x46\xe5\x6d\xe3\x55\x68\x3c\xfd\x09\x64\x31\x99\x91\x7e\x34\xde\x40\xf1\x1b\x56\x27\x49\x91\xc7\x83\xc5\x6d\xb5\x84\xb1\xb2\x47\x78\xd4\x0c\xeb\xb2\x3e\xb4\x15\xb5\xc8\x3b\x31\x94\x4a\xf9\x34\xb0\x91\x34\x56\xe7\xd3\x3e\x9b\xe9\x1a\xa4\xc5\x4b\x63\xdf\xb1\x0b\x77\x41\x15\xca\x08\x5b\x59\x02\xbf\xb3\x2a\x5b\x09\xdb\xcf\xc5\x58\x5b\x24\xfc\xe2\x43\x51\xa6\x83\xfd\xbd\xd0\x79\x31\x86\x52\x42\x70\xa2\xfc\x80\xcd\x42\x92\xd7\x6b\xdf\xee\xa3\x08\x79\x7d\xfe\x02\x07\x0e\xb3\x47\xc1\x12\xcc\xa5\xc8\xa6\x98\x04\x2d\x15\x4b\x78\x32\x12\x70\x2b\xc5\xcb\xd1\xb7\x08\xf2\x5b\x43\x4a\x95\x13\x7a\x8d\x5d\x0e\x59\xd4\xee\xd6\x18\xe4\xc2\x40\x86\xd0\x50\x3e\x38\x4b\xe8\x61\xdd\x4d\x34\xa3\x8e\xef\x72\x37\xdd\xc8\xb1\x70\xf7\x75\xb0\xd7\xdd\x7a\xbd\x2a\x37\x93\xbf\x33\xe1\xcc\x62\xe8\x3e\x0d\x06\x70\x10\xd3\xb0\xe5\x72\x31\xe4\x79\x9a\x09\xe3\xc9\xc5\xa6\x8c\x27\x56\x3e\x40\x52\x78\xce\xa4\x0a\xff\xb5\xee\xcc\x58\xec\xde\x35\xe4\x56\x2f\x70\xd1\x6c\xe9\xd6\xf8\x1d\xed\x26\x9d\x97\x27\x09\x33\x44\x43\x9d\x70\x5a\x06\xbc\x40\x42\xf8\x1d\x67\x47\x62\x8c\xb2\x04\xbd\xde\x30\x21\x69\xda\xf3\xb7\x75\xcf\x3f\x3b\xc6\xac\x3d\x5b\xb1\xa4\xd8\xb5\x4f\x86\x9f\xd9\x0f\xeb\x4e\x5a\x83\x93\x7e\x63\x77\x96\xff\xd7\x7f\xb6\x0b\xbe\xbc\xfa\xa7\xeb\xc3\xbf\xb6\x1a\x83\x81\xf3\x5f\x77\xff\xb4\x8f\xc0\xb8\x97\x0f\x36\x02\x73\x9c\x81\x91\xe7\x18\x14\x71\x9b\xfa\xf4\x62\x22\xd5\x9c\xb0\xa5\x9d\xc0\x1b\x68\xc2\xed\xa8\xf9\x02\x82\xff\xad\xfd\x52\x49\x16\x75\xf7\xcb\x0e\x05\xdc\xb1\x28\x7f\x2b\x2e\x5a\x35\x90\xc3\x31\x9f\xec\x22\xbc\x9d\x7b\x65\x72\x3e\xce\xed\x3a\xf1\x0b\x9f\xb4\x8c\x70\xfb\xa7\x7f\xd2\xf9\x65\x96\xc5\x14\xc0\x83\xb8\x69\x29\xd6\x3d\x7b\xa5\xfb\xc5\xa2\x28\x77\xc3\x63\x1d\xdc\xe8\xf3\x27\x87\xe2\xdb\x14\xdf\xa6\xf8\x36\xc5\xb7\x29\xbe\x4d\xf1\x6d\x8a\x6f\x53\x7c\x9b\xe2\xdb\x14\xdf\xa6\xf8\x36\xc5\xb7\x29\xbe\x4d\xf1\x6d\x8a\x6f\x53\x7c\x7b\x8d\x6b\xff\x58\x5c\x9c\x14\xdf\xa6\xf8\x36\xc5\xb7\x19\xc5\xb7\x8f\x25\xbe\x1d\xa0\x4b\xf7\x19\x75\xf9\x18\xfb\xd0\x26\xea\x12\x9f\xa6\xa8\xcb\xec\xac\x1f\x5e\xd4\x25\x2e\x16\x45\x5d\x1a\x1e\x7b\x72\xd4\xa5\xe9\xe4\x50\xd4\x85\xa2\x2e\x14\x75\xa1\xa8\x0b\x45\x5d\x28\xea\x42\x51\x17\x8a\xba\x50\xd4\x85\xa2\x2e\x14\x75\xa1\xa8\x0b\x45\x5d\x28\xea\x42\x51\x17\x8a\xba\xac\x71\xed\x53\xd4\x85\xa2\x2e\x14\x75\x69\xde\x4d\x14\x75\x59\x78\xce\x28\xea\xb2\x32\xea\x02\x1e\xd2\x7d\x86\x5c\x5c\x07\xda\x85\x5b\xdc\x93\x14\x6a\x99\x9d\xed\x03\x0c\xb5\xb8\x85\xa2\x30\x4b\xc3\x63\x4f\x0f\xb3\xcc\x9c\x16\x0a\xb1\x50\x88\x85\x42\x2c\x14\x62\xa1\x10\x0b\x85\x58\x28\xc4\x42\x21\x16\x0a\xb1\x50\x88\x85\x42\x2c\x14\x62\xa1\x10\x0b\x85\x58\x28\xc4\x42\x21\x96\x35\xae\x7d\x0a\xb1\x50\x88\x85\x42\x2c\xcd\xbb\x89\x42\x2c\x0b\xcf\x19\x85\x58\x56\x85\x58\x60\x5b\xe4\x30\x39\x7b\x8c\xb3\x7c\x76\xbd\xf8\xea\x7a\xd1\x2a\xd8\x52\x3e\x4e\x11\x97\xd9\x79\x3f\xbc\x88\x4b\xb9\x5a\x14\x76\x69\x78\xec\xc9\x61\x97\xc6\xc3\x43\xb1\x17\x8a\xbd\x50\xec\x85\x62\x2f\x14\x7b\xa1\xd8\x0b\xc5\x5e\x28\xf6\x42\xb1\x17\x8a\xbd\x50\xec\x85\x62\x2f\x14\x7b\xa1\xd8\x0b\xc5\x5e\x28\xf6\xb2\xc6\xb5\x4f\xb1\x17\x8a\xbd\x50\xec\xa5\x79\x37\x51\xec\x65\xe1\x39\xa3\xd8\xcb\xaa\xd8\x8b\x2a\xc3\x16\xfb\x0b\xbd\xc4\xd8\x49\xab\xc8\x4b\xe3\xd3\x0b\xfc\xc7\x6c\x85\xf7\x9e\x7c\xc8\x27\xec\x43\x5e\x72\xd0\xd6\xf0\x23\xaf\x38\x7a\xcb\x0f\xdf\x4c\x44\x69\xf9\x66\x24\x8f\x32\x79\x94\xc9\xa3\x4c\x1e\xe5\x53\xf3\x28\xb7\xbb\x87\x1b\xbd\xca\xcb\x95\xe7\x0e\xef\xde\x9d\xf9\x97\xdb\x4d\xc6\x62\x1f\xf3\x71\xcc\xc8\x3a\xde\xe6\x76\x33\xb2\xd8\xe3\xbc\xb3\x19\x21\xdf\x33\xf9\x9e\xc9\xf7\x4c\xbe\x67\xf2\x3d\x6f\xcd\xf7\xdc\x52\x16\xcc\xf9\x9f\x57\xf8\x92\x3a\x14\x02\xe4\xbb\x3d\x32\xdf\x6d\xbb\x2d\xb5\xcc\x7f\xbb\x33\x05\x63\xaf\x9e\xdc\x76\xf3\xb4\xc4\x9b\xbb\xc3\x33\x78\xa0\x7e\xdd\x76\x53\x38\xef\xdb\x7d\xaa\x8b\xa9\xd1\x03\x4b\xa9\xe7\x87\x91\x7a\x1e\xdd\xd5\x94\x79\xde\xf0\xd8\x93\x33\xcf\x9b\xa2\x01\x5b\x4e\x3c\x3f\x96\x60\xf4\x77\x33\x4b\x74\x36\xd1\xa6\xe3\xb8\x0e\x6a\xe2\x8c\xb7\x0a\xe1\xe0\xc3\x1d\x04\x71\x70\x16\xef\x74\xba\xf0\x8e\x6d\xfa\xcd\x29\xf2\x32\x17\xa9\x9f\xa7\x2d\x9e\xf4\x96\xa7\xbc\x85\xa2\xe9\x35\xec\x1e\x93\x2a\x75\x97\x63\x50\x28\x6b\xde\xb6\x6a\x2c\xe8\x4e\xb0\x89\xdb\xfa\xce\x98\xee\xb3\x4b\xc5\xa4\x42\x5f\xb7\xce\x59\xa1\xa2\xbb\x3c\x65\x69\x3e\xfd\x5a\x28\x96\xca\x5c\x38\x75\x40\x44\x1f\x2c\x68\x58\xce\x1e\xf2\x4e\xe8\x70\xa3\x7a\x97\x1f\x1b\x14\x39\x18\xcf\x93\x5c\x27\xc2\x18\xaf\x84\x56\x7c\x00\x7d\xf6\x57\xf8\x22\x38\x25\xc0\xd2\x70\x1a\xe8\x65\x96\xbd\x03\xb3\x24\xcd\xa7\x2c\x2f\x14\x33\x96\x3b\xc9\x1d\x6c\x31\xdf\x9c\x48\x37\x90\xa8\x38\x96\xfd\xe8\x6c\x60\x51\xff\xc2\x15\x1f\x8a\x1c\x7d\x43\xae\x57\xce\x30\xd7\x89\x04\x63\x27\x7a\x61\x38\x38\xd3\x74\xce\x9c\x2d\x6c\xa7\xd1\xfa\x1b\xf3\x7b\x37\x8b\x76\x24\x8c\x08\x1a\x8d\xd3\xf5\x42\xe4\x02\x9c\xf7\x77\x82\x81\x46\x07\x1e\x17\x9d\xb3\x37\x6f\xff\xe4\x9e\xcd\x79\x02\x21\x96\x4c\xab\x21\xea\x2f\xe0\x15\x71\xe6\x2b\x97\x0a\x6f\x21\xf0\x3a\x94\xcf\x82\xdb\xd9\x07\x80\xd8\xdd\x94\x81\x08\x78\xf7\xea\xd5\x50\x67\x5c\x0d\xfb\x3a\x1f\xbe\x9a\xdc\x0f\x5f\x15\x4a\x26\x3a\x15\xaf\xfe\xc7\x27\x73\xe5\x5a\xd9\xd8\x8d\xe9\x27\xa7\xcb\xe5\x39\x28\x85\xe7\xd8\xf4\x90\xb6\x3a\xc8\xdb\x16\x3a\xc8\x7b\xf4\xc4\x1c\x46\x77\xdf\xae\xec\xee\x65\x92\x88\xc9\x81\xf4\xf7\x94\x54\x3c\x50\x2c\x0e\x4d\xc5\xfb\x8e\x2d\xcd\x77\x79\xf5\xcf\xf8\xef\x7f\xbd\xba\x73\xf2\x55\x0d\x6b\x49\x30\x1b\x68\x86\x24\xb3\x5b\x29\xb9\x0d\xf2\x7a\xcb\x39\x72\xcf\x54\x4a\xb7\x2c\x66\x69\x92\xd0\x5b\x5e\x10\xef\x4a\xc6\x55\x50\x29\x73\xf7\x1c\x33\x89\x9e\x88\x1e\x33\x45\x02\xfe\x3c\x70\x83\x09\x3e\x46\x1f\xce\x24\xd7\xe0\xba\x6e\x1a\xe0\x84\xdb\x51\xf3\xf8\x54\xf3\xdd\xb1\xc4\x16\xd8\xf2\xc0\xc9\x78\x9c\x37\x1e\x7f\xc4\xdb\x77\x5d\xd3\x31\x6d\x78\xef\xc8\x4d\xc8\x30\xa2\xc5\x3a\x04\xa9\xbe\xdb\x98\xd5\x03\x52\x7c\xd7\xee\xec\x5e\xd5\xde\x35\x7b\x4b\x4a\x6f\x7c\x7c\x85\xd2\x3b\x7f\xb7\x75\xac\xf2\x62\xe6\xe2\x98\x4f\x6a\x4a\x2f\x06\xd1\xbb\xbd\xe7\xb1\x4d\x96\xe8\x2c\x13\x49\x08\x57\xbd\x87\xcf\xff\xc2\x27\x4b\x6e\x7d\x7c\x11\x6f\xfd\xf7\xf1\xed\xf2\xfe\x6f\x6c\x83\x32\xc1\x29\x13\xfc\xe8\x32\xc1\x37\x53\x47\x36\xbf\xbf\xc7\x3c\x19\x49\x25\xf2\x69\x7f\x72\x3f\x74\x7f\x30\xfd\xb1\xb0\xdc\xdd\xe8\x1f\xe0\xd0\x7d\x81\x83\x61\x3a\xf1\x64\x53\x5e\x3b\xe5\xb5\x53\x5e\x3b\xe5\xb5\x53\x5e\x7b\x93\x28\xd9\x6e\x78\x8a\x3c\x92\xad\x17\x6a\x9f\x51\x44\x2a\x3f\x68\x52\x1a\x62\x7a\x9b\x54\xcc\x60\xc6\x19\xbb\x13\x03\xd4\x9c\x63\x3a\x6a\xa9\x4a\xf8\xdb\x0b\xb6\x4e\xc5\x23\xab\xb4\xba\x50\x62\xc8\x61\x83\xfa\xd4\xb4\xaa\xe7\x16\x53\xd3\xe3\xd1\xf0\xe6\x8a\x1c\x8f\x45\x2a\xb9\x15\xd9\xb4\x54\x69\x4b\x91\x2b\xb3\x9e\x4f\x39\x83\x49\x67\xc3\x9c\x27\x70\x6a\xa4\x4e\xa3\x42\x50\x0a\x6d\xb0\x17\xc2\x2e\x2d\x8c\xeb\x64\x75\xb9\xb8\x7b\x33\x0c\xc8\x7f\x64\x80\x77\x60\x68\xa2\x8f\xfd\x1c\x0b\xae\x1a\xfb\xb8\xc1\x32\x43\x9f\xaf\xa0\xcb\xfb\x4d\xe8\xa3\x5a\x13\xaa\x35\xa1\x5a\x13\xaa\x35\xa1\x5a\x13\xaa\x35\xa1\x5a\x93\x28\x04\x3e\x88\x49\x2e\x9c\x52\x92\xbe\x63\x93\x4c\x70\x23\xe2\x15\x74\x95\xeb\x09\x1f\x82\x76\x74\xa5\x33\x99\x4c\x6b\x7e\xb0\xb0\xe9\xd2\xd8\x80\xdb\x76\x6f\xfa\xff\xab\xcf\xae\xf1\x3e\x43\xd5\x65\x22\x94\x3b\x2c\xa5\x4c\x15\x4c\xe7\x93\x11\x57\xc1\x2f\x97\x17\xe2\xd5\x80\x67\xc1\x56\xbe\x3d\xc3\x9f\x6f\xcf\xd8\x40\x2a\x9e\xc9\x7f\x04\x41\x72\x27\x18\x4f\x53\xd8\x9d\xaf\x30\x83\x3e\x2d\xcd\x30\x6c\xfe\xdc\x94\x2f\xa1\x7d\xda\x67\x1f\x25\x5c\x8e\x95\xae\xeb\x7c\x7e\x6c\x70\xfd\xa0\xab\x08\xcd\x63\xb0\x51\xb4\x1d\x6d\xb2\xa0\x38\x82\x0f\x61\xec\xfb\x02\x7b\xf8\xdd\xcb\x05\x77\x60\x47\xfa\x91\x0d\x79\x7e\xc7\x87\x35\x2f\x79\x34\x6a\x44\x3e\xd0\xf9\xd8\xad\x49\xe3\x7c\x7d\x99\x19\xd1\xe2\xe9\x02\xa5\x37\x68\xac\x13\x9c\x5b\xe9\xb4\xc9\x44\xa6\xa5\x29\x0c\xba\x02\x38\x27\xe2\x1a\x3b\x61\xed\x25\x69\xd0\x06\xfa\x95\xc5\x0c\x72\x24\x98\xda\x17\xd1\xc7\x5c\xff\x58\x9f\x61\x28\x0a\x64\x53\xd5\xb2\x3b\xc7\x31\x9c\xb3\x0b\xbf\x01\xeb\x1b\xd4\xfc\xc0\xce\x7f\xe4\xc9\xfd\x30\xd7\x85\x4a\xdd\x53\xe0\xab\x85\x87\x66\x26\x0e\x55\x48\xaf\x1f\xd7\x1b\x09\x23\xb8\x8b\x2d\xfd\xc0\xce\x7f\xd2\xb9\xa8\x34\xcb\x12\x6e\x12\x9e\xba\xd1\xfb\xf9\x41\x77\x3e\xb4\x67\xd0\xf4\x9c\x6b\x70\x10\xdb\xd8\x64\x43\x4e\x66\xb7\xfb\x1e\x3d\x05\x54\xd8\x46\x85\x6d\x5b\xd8\x5b\x54\xd8\xd6\xf2\x0c\x52\x61\x1b\xe5\x79\x77\x1e\xd1\xbb\xb6\xdc\x16\x6d\x43\x79\x27\x95\xa2\x81\x62\xbb\x54\xa9\xb6\x97\xae\xd1\x94\x8a\xb0\x4e\x19\xda\x8e\x11\xf7\xda\x64\x5f\x34\x20\xee\x51\xc6\x05\x65\x5c\x9c\x48\xc6\x05\xe5\x28\x50\x8e\x02\xe5\x28\x50\x8e\x02\xe5\x28\xec\x3d\x47\x81\x82\xdf\x14\x0f\xa5\x78\x28\xc5\x43\x29\x1e\x4a\xf1\x50\x8a\x87\x52\x3c\x74\xa1\x10\xa0\x10\x05\x85\x28\x28\x44\x41\x21\x0a\x0a\x51\x10\xf6\x5e\xab\xea\xd4\xe8\xae\x26\xec\xbd\x86\xc7\xf6\x1e\xf4\xd8\x00\x61\x85\x70\x23\x08\x37\x22\xe2\x46\xb4\x89\x62\x35\x23\x47\x3c\x29\x8e\x75\xa0\xd8\x11\xe5\x98\xda\x5d\x74\x54\x38\x74\x02\x85\x43\xcf\x14\xd8\x88\xe0\x07\x8f\x24\x2d\x65\xe3\xdb\x69\xcf\x28\x2c\x1b\x74\x77\xaf\x38\x2c\x6b\xf7\xf7\x94\xb4\xdc\xed\x22\xb1\x6c\xa8\xe5\x7e\xc7\x36\xc1\x62\xc1\x3f\xff\x6b\x47\x90\x2c\xed\x54\xa8\x2a\x0c\xcb\x5e\x55\xa8\x23\xc1\xbb\x20\xd5\xa9\xba\xc8\x07\xab\x3a\x51\x85\xf1\x33\xaa\x30\xa6\x52\x2a\x2a\xa5\xa2\x52\x2a\x2a\xa5\x22\xab\x6f\xd1\x29\x3a\xc8\x62\x84\xfd\x58\x55\x54\x4b\xb1\xb0\x96\xe2\xe0\xcc\xac\xe8\x67\xee\xbc\x82\x02\xa2\xed\x75\x1d\xab\x8d\xb5\xe4\x5e\xdb\x66\xd9\x44\x45\xeb\x10\xdf\x20\x19\xea\xce\xfd\x8b\x27\xb6\xcf\xd8\x47\xf7\xbf\xe1\xef\x63\x2e\xc1\x0d\x67\x58\x92\x15\xc6\x8a\xbc\x94\x25\x98\x35\xc9\x32\x79\x2f\xd8\x79\xec\xe7\xb9\x53\x19\x83\x9a\xd3\x67\x57\x19\x57\xca\x27\x33\x80\x22\xc2\x33\xd4\x7d\xde\xfc\x69\x93\xcb\x19\xfa\xb8\x27\x15\x21\x4e\x5a\xd4\xb0\xef\xc2\xf4\xb9\x91\xb2\x8f\x38\x63\x4e\x2c\x4c\x4c\x98\x1d\x9f\x2f\x54\x18\x91\x43\xa2\x4f\xa9\x2c\x4f\xb7\x3c\x51\xae\x33\xa7\x1b\xa5\x3e\x6c\xd9\x45\x2e\x35\x30\xdc\xc4\xe1\x79\xd4\x9e\x12\x37\x86\xa8\x88\xf7\x76\x2c\xf8\x7c\x9b\x90\xf0\xa1\x44\x83\x29\x0c\x7e\x74\x61\x70\xc8\x9b\x69\xa5\xa0\xcc\xde\xbf\x17\xf0\xee\xff\x5c\x7e\x15\x8f\x45\x3e\x14\xad\x9e\x34\x36\xe7\x56\x0c\x65\x72\xd1\xfe\x1d\xf7\xef\xa9\x7f\x12\x2e\xfd\x36\x0a\x14\x24\x5a\x42\x1d\x17\xe6\x78\x6d\xa0\x4c\xc1\x17\x0f\xc0\xf3\xbc\xad\xe0\xfd\x12\x4b\xe3\xaa\x9e\x68\xc5\xc8\x1f\x7d\xe2\xfe\xe8\xe7\x13\xca\x9f\xa9\x87\x08\x87\x0b\x6b\x76\x26\x98\xc2\xec\xeb\xc0\x5f\x2c\xb8\x85\x5e\x82\x37\x0e\x0b\x75\x79\x06\x6f\x2a\xad\x2e\xf0\x6d\x78\x02\x1c\xe2\x86\xbd\xf8\xbf\x46\xab\x2b\x2c\x87\xfe\xc5\xdd\x77\xfe\xdf\xd7\xe1\x16\x2c\xff\xf8\xf2\x90\x72\x0c\xda\xef\x9b\x9f\x74\x9e\x40\xc4\x60\xa8\x61\xf1\x35\xbb\x3d\x1b\xb8\xbf\xdd\x9e\xb1\xcb\xda\x6c\xf6\xd9\x27\xeb\xdd\xfb\x60\xd4\xf8\x83\x7a\xc1\x13\x58\x00\x28\xa8\xcd\x64\xe2\x1d\x96\x60\x03\xe9\x47\xbf\xb6\x58\x70\x3a\x11\x7a\x92\x89\x3e\xc3\x6f\x42\x1d\x7d\xd8\x53\x90\xe3\xde\xb8\x10\xf1\xf3\x9b\x4c\xaf\xfb\x10\x99\x42\xf8\x03\x99\x42\x7b\xc9\x2e\x98\xc9\x97\x3e\x34\x63\xa8\xe8\xdc\xef\x35\xc9\x78\xb2\x89\xb6\xe6\xdf\x3c\x61\x7d\x8d\x92\x2d\x49\x43\x7b\x0e\x1a\xda\x01\x29\x42\x24\xaf\xe3\x2f\x94\x6c\xe9\x5b\x3e\x29\xf5\xa2\x38\x3c\x4f\xeb\x77\xac\x7d\xee\xa2\x50\xe9\x44\x4b\x65\xf7\x43\x23\xf7\x31\x7e\x7d\xb1\x5a\xb2\x8a\x46\xae\xb1\x0d\x02\x35\x23\x50\xb3\xa3\x03\x35\x3b\xe9\xb4\x5a\x82\x68\x23\x88\x36\x82\x68\x23\x88\x36\x82\x68\x6b\x12\x25\x44\x23\x47\x0e\x0a\x42\xd2\xa3\x22\x8f\xe7\x5c\xe4\x41\xb0\x89\x04\x9b\x48\xb0\x89\x04\x9b\x48\xb0\x89\x04\x9b\x48\xb0\x89\x54\xfb\x48\xb5\x8f\x54\xfb\x48\xb5\x8f\xb3\x3b\x92\x68\xe4\x08\xa3\x75\xed\xdd\x45\x18\xad\x84\xd1\x4a\x18\xad\xa7\x9f\x42\x42\xa5\xcf\x7b\xa5\x91\x6b\x4a\x45\x38\x60\x1a\xb9\x36\xd9\x17\x4d\x34\x72\x94\x71\x41\x19\x17\xa7\x91\x71\x41\x39\x0a\x94\xa3\x40\x39\x0a\x94\xa3\x40\x39\x0a\x7b\xcf\x51\xa0\xe0\x37\xc5\x43\x29\x1e\x4a\xf1\x50\x8a\x87\x52\x3c\x94\xe2\xa1\x14\x0f\x5d\x28\x04\x28\x44\x41\x21\x0a\x0a\x51\x50\x88\x82\x42\x14\x44\x23\xd7\xaa\x3e\x35\xba\xab\x89\x46\xae\xe1\xb1\xbd\x07\x3d\x88\x46\xee\x39\xe0\xe7\x6d\x8b\x46\xae\x4d\x0c\xab\x99\x44\xee\x49\x51\xac\x03\xc5\x35\x29\xc7\xd4\xee\x9a\xa3\xb2\xa1\x13\x28\x1b\x22\x5c\x13\xc2\x35\x69\xe8\xcc\x01\x2b\x62\xc7\x81\x6b\xb2\x41\x77\xf7\x4a\x22\xb7\x76\x7f\x4f\x49\xc7\xdd\x2e\x89\xdc\x86\x3a\xee\x77\x6c\x03\x20\x96\xdd\x72\xc8\xad\x8b\xc0\xb2\x57\xfd\xe9\x48\xa0\x2e\x48\x6f\xaa\x2e\xf2\xc1\xea\x4d\x54\x5c\xfc\x8c\x8a\x8b\xa9\x8a\x8a\xaa\xa8\xa8\x8a\x8a\xaa\xa8\xc8\xe4\x5b\x74\x8a\x0e\xb2\x0e\x81\x18\xe4\x0e\xc6\xc2\xda\x36\x83\xdc\xc1\x15\x4f\x34\x30\xc8\xb5\xb1\x96\x9a\x18\xe4\xba\xac\x98\x20\x06\xb9\xb8\x07\xda\xab\x08\xc4\x20\xe7\xff\x8f\x64\x17\xf9\xd3\xf6\xce\x20\xb7\x87\x90\x71\x95\x41\x6e\xc1\xe7\x89\x41\xae\x79\xcc\x14\x01\x27\x06\xb9\x6d\x30\xc8\xb5\x51\xa6\x1a\x19\xe4\x4e\x28\x72\x4f\x0c\x72\xe4\x8f\x7e\x7e\x71\x7c\x62\x90\xeb\x72\xdf\x10\x83\x1c\x99\x42\x64\x0a\xcd\x4f\xe3\x91\x30\xc8\x3d\xd9\x18\xda\x0d\x83\x5c\x3b\xd7\x57\x23\x83\xdc\x09\xe9\x6b\x94\x69\x49\x1a\xda\x73\xd0\xd0\x0e\x48\x11\x22\x79\x1d\x7f\xa1\x4c\x4b\xdf\xf2\x49\xa9\x17\xdb\x64\x90\xdb\x45\xe2\x22\xc0\x73\xed\x87\x3e\xce\x7d\xba\x65\xe2\x62\x23\x75\xdc\xec\xfb\x04\x62\x46\x20\x66\x47\x07\x62\x76\xd2\xb9\xb4\x04\xc9\x46\x90\x6c\x04\xc9\x46\x90\x6c\x04\xc9\xd6\x24\x4a\x88\x36\x8e\xbc\x12\x84\x9c\x47\x95\x1d\xcf\xb9\xb2\x83\x60\x12\x09\x26\x91\x60\x12\x09\x26\x91\x60\x12\x09\x26\x91\x60\x12\xa9\xe0\x91\x0a\x1e\xa9\xe0\x91\x0a\x1e\x67\x77\x24\xd1\xc6\x11\x26\xeb\xda\xbb\x8b\x30\x59\x09\x93\x95\x30\x59\x4f\x3f\x6f\x84\xea\x9d\xf7\x4b\x1b\x37\x93\x86\x70\xc8\x94\x71\x2b\x32\x2e\x1a\xe9\xe2\x28\xcb\x82\xb2\x2c\x8e\x3e\xcb\x82\xf2\x12\x28\x2f\x81\xf2\x12\x28\x2f\x81\xf2\x12\xf6\x9e\x97\x40\x01\x6f\x8a\x81\x52\x0c\x94\x62\xa0\x14\x03\xa5\x18\x28\xc5\x40\x29\x06\xba\x50\x08\x50\x58\x82\xc2\x12\x14\x96\xa0\xb0\x04\x85\x25\x88\x2a\xae\x5d\x21\xaa\xd3\x72\x89\x26\xae\xe1\xb1\xbd\x06\x39\x88\x22\xee\x39\x00\xe4\x6d\x8b\x22\x8e\xab\x95\x61\xab\x05\x0c\x71\x9b\x06\xae\x0e\x15\xb3\x04\xc6\xd3\xee\x66\xa3\xca\xa0\x13\xa8\x0c\x22\xbc\x12\xc2\x2b\x69\xe8\xcc\x81\xea\x5d\x47\x82\x55\xb2\x5e\x57\xf7\xcb\x08\xb7\x4e\x5f\x4f\x49\x95\xdd\x32\x1b\xdc\xfa\xaa\xec\x77\x6c\x5d\x40\x95\xdd\xd2\xc0\xb5\xd0\x91\x16\xb0\xc0\xed\x56\x47\x3a\x12\xd4\x0a\xd2\x8f\xaa\x8b\x7c\xb0\xfa\x11\xd5\x09\x3f\xa3\x3a\x61\x2a\x88\xa2\x82\x28\x2a\x88\xa2\x82\x28\x32\xed\x16\x9d\xa2\x83\x2c\x29\x20\x06\xb8\x83\xb1\xaa\xb6\xce\x00\x77\x48\x75\x10\x4d\xec\x6f\x2b\x2c\xa4\x46\xe6\xb7\x8e\x8a\x1f\x88\xf5\x2d\xae\x7d\x7b\xb5\x80\x58\xdf\xfc\xff\x91\xbc\x22\x9f\x59\xfc\x71\x2f\x8c\x6f\xbb\x8d\xfe\xd6\xd8\xde\xe6\x3f\x4d\x4c\x6f\xcd\x63\xa6\x40\x36\x31\xbd\x6d\x85\xe9\x6d\x85\xe2\xd4\xcc\xf2\x76\x1a\xd1\x77\x62\x78\x23\x7f\xf3\xf3\x8b\xc7\x13\xc3\x5b\x97\xfb\x86\x18\xde\xc8\xec\x21\xb3\xe7\x38\xd9\xdd\x9e\x62\xf8\xec\x88\xd9\x6d\xa5\x5b\xab\x99\xd5\xed\x34\xf4\x33\xca\x8e\x24\x6d\xec\xd4\xb5\xb1\x03\x52\x7a\x48\x36\xc7\x5f\x9e\x7d\x76\xe4\x49\xa9\x11\x5b\x65\x71\xdb\x6e\xc2\x21\x14\x29\xe6\x70\x79\xed\x85\xc6\xed\xb3\xfb\xfe\x57\xf7\xfd\x96\xe9\x87\x4d\x5c\x6e\xcd\x8d\x10\xd4\x18\x41\x8d\x1d\x1d\xd4\xd8\x49\xa7\xc6\x12\x70\x1a\x01\xa7\x11\x70\x1a\x01\xa7\x11\x70\x5a\x93\x28\x21\x42\x37\x72\x4c\x10\xbe\x1d\x15\x6a\x3c\xe7\x42\x0d\x02\x33\x24\x30\x43\x02\x33\x24\x30\x43\x02\x33\x24\x30\x43\x02\x33\xa4\xfa\x45\xaa\x5f\xa4\xfa\x45\xaa\x5f\x9c\xdd\x91\x44\xe8\x46\xc8\xa9\x6b\xef\x2e\x42\x4e\x25\xe4\x54\x42\x4e\x3d\xfd\xd4\x11\x2a\x5f\xde\x2b\xa1\x5b\x63\x2e\xc2\x01\xb3\xba\xb5\x4a\xc0\x68\xa2\x76\xa3\xa4\x0b\x4a\xba\x38\x91\xa4\x0b\x4a\x53\xa0\x34\x05\x4a\x53\xa0\x34\x05\x4a\x53\xd8\x7b\x9a\x02\xc5\xbf\x29\x24\x4a\x21\x51\x0a\x89\x52\x48\x94\x42\xa2\x14\x12\xa5\x90\xe8\x42\x21\x40\x51\x0a\x8a\x52\x50\x94\x82\xa2\x14\x14\xa5\x20\x7e\xb7\x56\xe5\xa9\xa5\xbf\x9a\x48\xde\x1a\x1e\xdb\x7f\xe0\x83\x98\xde\x9e\x03\x40\xde\xd6\x98\xde\xda\x45\xb2\x9a\xd9\xde\x9e\x16\xcb\x3a\x50\x50\x93\xca\xa0\xda\x5d\x76\x54\x40\x74\x02\x05\x44\x84\x6c\x42\xc8\x26\x0d\x9d\x39\x64\x7d\xec\x38\xe0\x4d\x36\xe9\xef\x5e\x19\xe0\xd6\xef\xf0\x29\x29\xbb\xdb\xa5\x81\xdb\x54\xd9\xfd\x8e\x6d\x04\xcd\xb2\x63\x42\xb8\xf5\x51\x59\xf6\xab\x4a\x1d\x09\xfc\x05\x69\x50\xd5\x45\x3e\x58\x0d\x8a\x0a\x8e\x9f\x51\xc1\x31\x55\x56\x51\x65\x15\x55\x56\x51\x65\x15\x19\x7f\x8b\x4e\xd1\x41\xd6\x26\x10\x33\xdc\xc1\x18\x5a\xdb\x66\x86\x3b\xbc\x82\x8a\x06\x7a\xb8\x56\x06\x53\x13\x47\x5c\xa7\x55\x14\x44\x14\x17\x77\x41\x7b\x2d\x81\x88\xe2\xfc\xff\x91\xf8\x22\xd7\xda\xfe\xd9\xe2\xf6\x11\x46\xae\x52\xc6\x2d\xfa\x3e\xf1\xc6\x35\x8f\x99\xc2\xe2\xc4\x1b\xb7\x0d\xde\xb8\x56\x1a\x55\x23\x79\xdc\x29\x05\xf3\x89\x41\x8e\xfc\xd2\xcf\x2f\xb2\x4f\x0c\x72\x5d\xee\x1b\x62\x90\x23\x7b\x88\xec\xa1\x86\x79\x3c\x12\x1a\xb9\xa7\x5b\x44\xbb\xe1\x92\x6b\xe9\x03\x6b\x24\x94\x3b\x25\x9d\x8d\x12\x30\x49\x4d\x7b\x16\x6a\xda\x01\x69\x43\x24\xb4\xe3\x2f\x94\x80\x19\x9b\x3e\x29\x25\x63\x9b\x24\x73\xbb\x48\x67\x0c\x52\x48\xd9\x07\x9d\x15\x63\x91\x64\x5c\x8e\xf7\x43\x3a\x77\x15\xbb\xf2\x57\xe8\xca\x7b\xd7\x95\x96\x99\x8e\x4d\xfc\x73\x2b\xdb\x23\x54\x34\x42\x45\x3b\x3a\x54\xb4\x93\xce\xc5\x25\x8c\x37\xc2\x78\x23\x8c\x37\xc2\x78\x23\x8c\xb7\x26\x51\x42\x54\x74\xe4\xc8\x20\x28\x3e\xaa\x0c\x79\xce\x95\x21\x84\xbb\x48\xb8\x8b\x84\xbb\x48\xb8\x8b\x84\xbb\x48\xb8\x8b\x84\xbb\x48\x05\x93\x54\x30\x49\x05\x93\x54\x30\x39\xbb\x23\x89\x8a\x8e\x40\x5e\xd7\xde\x5d\x04\xf2\x4a\x20\xaf\x04\xf2\x7a\xfa\xa9\x26\x54\x2f\xbd\x57\x2a\xba\x55\x69\x09\x07\xcc\x4a\xb7\x6e\x86\x46\x13\x41\x1d\x65\x65\x50\x56\xc6\xe9\x65\x65\x50\x1e\x03\xe5\x31\x50\x1e\x03\xe5\x31\x50\x1e\xc3\xde\xf3\x18\x28\x40\x4e\x31\x53\x8a\x99\x52\xcc\x94\x62\xa6\x14\x33\xa5\x98\x29\xc5\x4c\x17\x0a\x01\x0a\x63\x50\x18\x83\xc2\x18\x14\xc6\xa0\x30\x06\x71\xd5\xb5\x2a\x75\x6d\x74\x5d\x13\x6d\x5d\xc3\x63\x07\x15\x24\x21\x06\xbb\xe7\x00\xd5\xb7\x3d\x06\xbb\x75\xa3\x5e\xcd\x64\x76\x9d\xc5\xbd\x0e\x14\x56\xa5\x79\x7c\xed\x2e\x46\x2a\x4c\x3a\x81\xc2\x24\x42\x58\x21\x84\x95\x86\xce\x1c\x89\x1a\x77\x1c\x60\x2b\x4f\xec\xfa\x5e\x89\xef\x9e\xd4\xf7\x53\xd2\x9c\xb7\xcb\x81\xd7\x81\xe6\xfc\x1d\x7b\x2a\x7e\xcc\xae\x99\xf1\x9e\x02\x1d\x73\x30\x2a\xda\x91\x60\x74\x90\x3a\x56\x5d\xe4\x83\x55\xc7\xa8\x2a\xfa\x19\x55\x45\x53\xf9\x17\x95\x7f\x51\xf9\x17\x95\x7f\x91\x25\xb9\xe8\x14\x1d\xa2\x25\x49\xe6\xd8\x21\x98\x63\xdb\x66\xca\x3b\xe8\x7a\x8f\x06\xd2\xbc\x75\x6d\xa9\x26\xfe\xbc\x6d\x15\x79\x10\x95\x5e\xdc\x1b\xed\x15\x08\xa2\xd2\xf3\xff\x47\x92\x8d\xa4\xc3\x41\xb1\xea\xed\x39\xca\x5d\x25\xd8\x6b\xd1\x15\xe2\xda\x6b\x1e\x33\x05\xf0\x89\x6b\x6f\x1b\x5c\x7b\xeb\x2a\x62\x8d\xb4\x7b\x27\x9a\x76\x40\x0c\x7c\xe4\xe9\x7e\x7e\x89\x07\xc4\xc0\xd7\xe5\xbe\x21\x06\x3e\x32\xa3\xc8\x8c\x3a\x09\x32\xbe\x4e\x0d\xa9\xdd\xf0\xf2\xad\xef\x66\x6b\xa4\xe8\x3b\x51\xfd\x8e\xd2\x4a\x49\xbb\x7b\x6e\xda\xdd\x01\x29\x51\x24\xeb\xe3\x2f\x94\x56\xba\xa2\xeb\x27\xa5\xa6\x6c\x93\xce\xef\x90\x32\x33\x5f\x19\x44\xfa\xab\x24\x68\x6e\x27\xb6\x88\xdf\x09\x12\x6c\x07\x51\x46\x0f\x61\x48\xf7\x16\x1d\x7e\x0a\xf5\x50\xa8\x87\x42\x3d\x14\xea\x39\xc4\x50\x4f\x57\x72\xb1\x7d\xd0\xa7\x41\x30\x1e\xa5\x6b\x80\x42\x3f\xe4\x1c\x78\x7e\xce\x01\x0a\xfd\x74\xb9\x6f\x28\xf4\x43\xee\x20\x32\xab\x28\xf4\x53\x9f\xa6\xed\x85\x7e\xba\xf3\x82\xb4\x0f\x02\x9d\x8a\xbe\x47\xa1\x20\xd2\xf6\x9e\x9b\xb6\x77\x40\x4a\x15\xc9\xfe\xf8\x0b\x85\x82\x56\x74\xfd\xa4\xd4\x96\x53\x0a\x05\xe9\xd4\xec\x08\x8b\xa3\x52\x95\xac\x07\xec\x4a\xa7\x4b\xb4\x99\x2a\x0a\xc7\xfb\xf8\x5e\x45\xad\xa9\xbf\x4d\xc4\x40\x44\x0c\x74\x74\xc4\x40\x27\x0d\x05\x43\x34\x47\x44\x73\x44\x34\x47\x44\x73\x44\x34\x47\x4d\xa2\x64\x07\x24\xcc\xe4\xb3\x38\x74\x9f\x05\xb1\x51\x11\x30\xd9\x33\x06\x26\x23\xea\x31\xa2\x1e\x23\xea\x31\xa2\x1e\x23\xea\x31\xa2\x1e\x23\xea\x31\xc2\xeb\x24\xbc\x4e\xc2\xeb\x24\xbc\xce\xd9\x1d\xb9\x03\x4f\x01\xf1\x1c\x12\xcf\xe1\x16\xf6\x16\xf1\x1c\xb6\x3c\x83\xc4\x73\x48\x59\x25\x9d\x47\xf4\x7c\x8a\x5f\xbb\x50\xde\x49\x65\x67\xa0\xd8\x2e\x55\xaa\x2d\xa6\x6a\xe8\x74\xc3\x6c\xd2\xce\x0b\x6a\xd1\x63\x96\x7b\xd1\x1d\x54\x7b\x3d\x60\xae\xaf\x2b\x72\x2d\xdc\xbb\x73\x69\xa3\x94\x5f\x41\xf9\x15\x47\x9e\x5f\x41\x19\x09\x94\x91\x40\x19\x09\x94\x91\x40\x19\x09\x7b\xcf\x48\xa0\x50\x37\x45\x3f\x29\xfa\x49\xd1\x4f\x8a\x7e\x52\xf4\x93\xa2\x9f\x14\xfd\x5c\x28\x04\x28\x20\x41\x01\x09\x0a\x48\x50\x40\x82\x02\x12\x0b\x02\x12\x0b\x5f\x70\x1f\xfb\x01\x27\xfe\xdf\xe7\xe7\xa0\x4d\xdb\xf5\xb7\x0f\x3b\xf2\x51\x16\xa5\xea\xf4\xb3\x34\xf6\x39\x06\x3a\xdc\xfd\x75\x88\xc1\x8d\x0d\x30\x08\x09\xa8\xef\xe8\x80\xfa\xb4\xe9\x38\x84\x85\x66\x07\xe3\x2b\xa2\x55\xf8\x58\x47\xf1\xaa\x43\x85\x33\xd1\x29\x81\x97\x3c\x9f\x42\x20\x02\x2f\x21\xf0\x92\x86\xce\x1c\xa4\xb2\x75\x24\x50\x25\xeb\x74\x74\xbf\x5c\xdb\xed\x7b\x7a\x4a\xba\x2b\xa8\x0f\x87\xa3\xbb\x7e\xc7\xd6\x43\x4c\xf1\x50\xf9\x3b\x02\x4e\x59\xa5\x12\x55\xc1\x52\xf6\xa4\x12\x1d\x09\x2a\x05\x29\x44\xd5\x45\x3e\x58\x85\x88\xea\x80\x9f\x51\x1d\x30\x15\x3c\x51\xc1\x13\x15\x3c\x51\xc1\x13\xd9\x72\x8b\x4e\xd1\xfe\x6d\x39\x32\x91\xf6\x55\xc7\x70\x40\x46\x52\xf4\xfd\x6e\x87\x0e\xac\xae\x33\x2d\xb7\x78\x1a\x29\xbf\x3a\x29\x59\xa8\x68\x0e\xe2\x1b\x24\x22\xdd\xb9\x7f\xf1\xc4\xf6\x19\xfb\xe8\xfe\x37\xfc\x7d\xcc\x25\x38\xc8\x0c\x4b\xb2\xc2\x58\x91\x97\xf2\xc0\xa3\xfd\x67\xf2\x5e\xb0\xf3\xd8\xc3\x73\xa7\xf6\x05\x55\xa5\xcf\xae\x32\xae\x94\x4f\x24\x00\x65\x82\x67\xa8\xbf\xbc\xf9\xd3\x26\x17\x2c\xf4\x71\x4f\x62\x3e\x4e\x5a\xd4\x92\xef\xc2\xf4\xb9\x91\xb2\x8f\x38\x63\xee\x6a\x9f\x98\x30\x3b\x3e\x57\x07\xa8\x13\x12\xae\x2a\x0a\xef\x74\xcb\x13\xe5\x3a\x73\xba\x11\xe2\xd3\x93\x3f\xa7\x74\xab\x6f\x97\x49\x6e\x97\x31\xdb\x1a\x6f\xdc\xec\x87\x89\x25\xae\x79\xcc\x14\x7c\x26\x96\xb8\x6e\x58\xe2\xd6\x51\x97\x9a\x99\xe0\x4e\x21\x64\x4e\x8c\x6f\xe4\x35\x7e\x7e\x61\x74\x62\x7c\xeb\x72\xdf\x10\xe3\x1b\x19\x3b\x64\xec\x1c\x23\xbf\xdb\xe6\xe6\xce\xb6\xd8\xdc\xd6\x73\x62\x35\x33\xb6\x9d\x82\x5e\x46\xa9\x8c\xa4\x83\x9d\xb6\x0e\x76\x40\xaa\x0e\x49\xe4\xf8\xcb\xb3\x4e\x65\x3c\x29\xd5\x61\xab\x1c\x6b\x3b\xca\x0f\x7c\xc5\xad\xe5\x35\x4f\x55\xf7\xb1\xb3\x44\x2b\x25\x12\xcb\xfe\xfc\xf1\xa6\xb4\xfa\xac\x66\xf8\xe9\xd5\x4c\x6b\xfe\x7d\xd4\x42\xfe\x2c\x6c\x4d\x11\xb9\xc4\xfe\xb7\xb8\x56\x16\x76\x77\x67\x47\x7f\xe6\x06\x7d\x86\x67\xc6\x2f\xe5\x56\xcf\x0d\xee\x88\x90\x93\xb9\xb3\x60\x43\x00\xef\xe2\x52\x39\xc5\x42\x79\x00\x22\x80\x95\x12\x49\x61\x03\xaa\xd6\x78\xcc\xd5\x4c\x7a\x5d\x55\x03\x70\xef\x82\x76\x96\x83\xc1\x0f\x3f\x69\x35\xd3\x34\xe0\x5d\xe8\xb5\x3d\xde\xb1\x8d\x6e\x9c\xde\xed\x5c\xf8\x33\x41\x98\x25\xab\x43\x11\x99\xe6\x31\x1f\x54\x44\xe6\xda\xa6\x22\xc7\x3d\x9a\x17\x62\xd6\xcc\x31\xfe\x57\xd8\xd6\x77\xce\xc2\x40\x7b\x45\x94\x49\xa7\xfe\xd6\xc7\x7a\xf6\xea\x29\x00\xdc\x91\x35\x77\x34\x7e\xaf\x79\x3b\x37\xb9\x8e\xba\x99\x00\xa9\xc2\xf8\x7b\x71\x84\x58\x8f\x6f\x2c\x57\x29\xcf\x53\x26\xd5\xa4\xb0\x95\x2a\x73\x7f\x62\xfd\x2c\x48\xd3\x30\x7e\xc8\xef\xdc\x60\x02\xa4\xda\xf5\xf8\x75\x61\x97\x6c\x00\x8d\xc1\xb9\x9d\x6d\x00\x5d\xd8\x9d\x4e\xc0\xcd\xcd\x7f\x2c\x1a\x3d\x67\xd6\x4e\xcb\x44\xdc\x2c\xd3\x98\xf4\xdb\x38\xf4\x80\x26\x33\xe1\xce\x8a\x66\x76\x94\xeb\x62\x38\x8a\xd0\x3f\x78\xd9\xe7\x85\x02\x54\x15\x83\xf8\x06\xae\x79\x69\x2a\x2d\x7b\x48\xa8\x47\x9d\xdf\x8b\x9c\x29\x9d\x8a\x90\x3d\x3a\xd7\x46\x07\xbb\x6d\x61\xbc\x74\xed\xa9\xf6\xff\xda\x6a\xb5\xae\x57\x3b\xaf\xbe\x5c\x77\xa0\x77\x5e\x69\x43\x8a\x27\x29\x9e\x5b\x52\x3c\x37\xb5\xde\xee\xdc\x05\xa4\x86\x55\xf3\x6d\x03\xd5\x95\x3c\x97\xad\x6e\xbf\x06\xaf\xe5\x96\x95\xad\x67\xea\xab\x5c\xbd\x14\x0b\xfd\x94\x3b\x34\x66\x7e\xf4\x67\x8f\x6c\x98\x63\xb3\x61\x8e\x37\xab\x6c\x5b\x90\x26\x5e\x8e\x20\x06\xdd\x86\xe8\x26\xf3\xe7\xe1\xd8\x23\x83\x61\x44\x8b\xf5\xa5\xc6\x29\xa6\xb8\xc6\x13\x67\xf5\x80\x62\x1b\x6b\x77\x76\xaf\x75\x48\x6b\xf6\xf6\x94\x14\xfc\xed\xc2\x35\x34\xca\xfa\x6d\x29\xf5\xe2\x41\x86\x61\x91\x56\x4f\x5a\x3d\x69\xf5\xbb\xd4\xea\x3f\x86\xc3\x47\x6a\x3d\xa9\xf5\xc7\xae\xd6\x07\x49\xf2\x24\xbd\xbe\xe1\x44\x1c\xab\x62\xef\xd1\x0f\x1e\xde\xdc\x09\xcb\xdf\xf4\xe3\xc8\x48\xc1\xdf\xcf\xec\x1e\x80\xa2\xff\xe4\x4e\xef\x45\xe1\x7f\x62\xaf\x49\xf1\x8f\x8f\x47\xc5\x7f\x32\x8f\xf9\x11\xd5\xff\x66\xa5\xa0\xa6\xff\xc3\x42\x74\x69\x04\x7c\x13\xc9\x5e\xb2\xb2\xdc\x87\x9f\x98\x93\xf5\xd1\xf5\x9d\x02\x63\x47\x71\x7c\x76\x11\x18\x73\xfb\x61\xe7\xf9\x58\xef\x31\xd3\x0a\x52\x11\xc0\xb6\x04\x56\x0b\x9f\x7f\x55\x49\xcb\xea\x33\x9e\x0f\x1f\x18\xcf\x73\x3e\xed\xb3\x5f\xb5\x0d\x3f\xa0\x19\xe6\x2c\x59\x66\x46\x22\xcb\xd6\xcf\xb6\x82\x4f\xed\xd2\x90\x79\x4f\xf9\x67\xab\xf2\xcf\x16\xee\x45\x32\xf1\x9a\xc7\x7c\x50\x26\xde\x57\x9f\x4e\x54\x4f\xb6\x42\x3f\xd3\x5a\xc9\x56\x47\x92\x6c\xd6\x3c\xde\xd3\x4d\x2e\x6b\x1e\xaf\x37\xe2\x77\xb1\xc0\x47\x94\x4c\x06\x8a\x5a\x47\x2b\x7d\x1a\x89\x5d\x1b\xa8\xae\x73\x69\x5d\xa4\xbb\x92\xee\xda\x89\xee\xba\xa9\xe1\x97\xe9\xe1\x56\xed\x3e\x40\xb2\xcb\x74\x0c\xba\x3c\x11\xd0\xee\xb3\x1e\xb6\x39\x2e\x56\x7c\xb3\xaf\x26\x19\x9f\x95\x27\xa7\xed\x32\xa3\x23\x7a\x3a\x60\x62\xf5\xfa\x1e\x27\x84\xa3\x81\xe5\x15\x93\x4c\x0f\xcd\x1a\x86\xd5\x11\xdb\x54\x3f\xe9\x08\xfb\xeb\x6e\x92\x39\xc5\xac\x03\x8d\x64\x00\x9f\xd8\xa9\x2e\x26\x95\x11\x49\x91\x8b\xeb\x7b\x39\xb9\xf9\x7c\xfd\x57\x91\xcb\xc1\xf4\x47\x9e\xdc\x0b\x95\xce\x2a\x67\x10\x9c\x9d\x48\x4f\x8f\x5b\x89\x9f\x27\x5a\x0d\x64\x8e\x78\xdb\x10\x38\x07\xd6\xc5\x41\x24\x79\x06\x76\x5c\x91\x7b\x6e\xc1\x68\x99\xde\x85\xcf\x40\xac\xca\x0b\x36\xc4\x7a\xe9\x33\x2c\x15\x00\x4d\x70\xcc\xef\xd1\x90\xff\xcb\xcd\xcd\xd5\x75\x7c\x50\x2b\x76\x27\xec\xa3\xf0\x51\xaf\xb2\x67\x01\x11\x3a\xb6\xef\xc7\xe8\xcb\x0f\x10\x29\xa6\xfe\x4a\xc2\x95\x1b\xc8\x03\x0c\x3f\xae\x31\x70\x4d\x4b\x4f\x17\x9a\x08\x89\x03\x71\x06\x68\x84\x17\xcf\x05\xcf\x98\x3b\xdf\x99\xb0\x7d\x86\xa0\xf4\x22\xfc\xc1\x0f\x6b\x20\x87\x85\xe7\xcb\xad\x7c\x20\x7e\xfc\xdc\xb0\x9b\xcf\xd7\x2c\xc9\x05\xf0\x05\xf3\xcc\xf4\xdc\x47\x53\x2d\x90\xb1\xd8\xf5\x37\x54\x37\x84\x81\x7b\xea\xc7\xea\xd7\xdd\xc7\x1e\x8a\x4c\x89\x1c\x02\xd9\x80\x60\x3f\xe6\x2a\x42\x67\xcb\x34\xcd\x7c\x35\xc6\x3d\x7b\x21\xfa\xc3\x3e\xe3\xca\xff\xb7\x9b\x81\xb8\x9a\x52\x59\x91\x27\x62\x62\x43\x34\xbe\xe0\x59\x39\x1d\x89\x1e\x03\x8e\x4e\xd3\x04\xbc\x5c\x77\xc3\x2f\xdb\x7d\x3b\x3d\x06\x9f\x06\x2c\x10\xc5\x56\xe8\xcd\xef\xa6\x36\x50\x9b\xf3\x0a\xa4\xbc\xdf\x33\x81\xf6\x00\xf8\xb5\xb9\xf5\xb9\x09\xa8\x66\x80\xf1\x16\xf6\x1b\x9f\xc2\xbc\xa6\xd2\x4c\x32\x3e\x05\xc2\xe4\xf1\x04\x30\xc2\x01\xc6\x9c\x65\x52\xc1\x99\xc8\xf4\x70\x28\x43\x7e\x42\x85\x75\xdc\x64\x72\x38\xb2\xd9\x14\x99\xae\x9d\xd5\x1f\xfe\x50\xa6\x3a\xd4\xb5\x1a\x60\x4b\x5d\x77\x31\xe0\xa5\x1f\xdd\x90\x9b\xa7\xbe\x89\x70\xa0\x7b\x5f\x15\x39\xa8\x8e\xce\x41\x75\x2c\x39\x08\x6d\xdd\x31\x70\xe8\x26\xb9\x78\x90\xba\x30\xf1\x7c\x8b\xb4\xa2\xbb\xcc\xab\x3d\x1b\x09\xfc\xf0\x91\x9d\xde\x75\x97\x2c\x17\x19\x32\xaf\x40\x99\x5d\x33\x93\x8b\x27\xaf\xc6\x47\xe0\xea\x2b\x55\xbf\x91\x7e\xf4\x33\x50\x27\x61\x99\x38\x29\x99\x0a\x53\x12\xa3\x73\x70\x59\x3d\x72\xc3\x8c\xe5\x39\xd0\xd7\x83\x7e\xe8\xde\x66\x46\x2a\x8f\xcd\xe4\x1e\x82\x07\xa2\xeb\x27\x32\xa5\xcf\xf3\xbc\x04\xe2\x83\xc2\x16\x39\x92\x69\x43\x6b\xf3\x6f\x7e\x09\x7e\x7c\x3d\xc0\x6f\x79\x46\x15\xb8\x42\xdd\x7f\xdf\xb8\x2e\x06\xc2\x8a\x48\xea\xb2\xae\x03\xad\xd2\xf2\x4e\x2f\xce\x66\x99\xe5\x84\x49\x85\x34\xdd\xe9\x3f\xfe\x72\x85\x59\xf2\xcb\x07\xd3\x5a\xe3\xb2\xe9\xe1\xef\x3c\x17\xf0\x80\x2a\x9b\x80\x24\x99\x2a\xdf\x76\x3c\x05\x61\x1e\x9b\xe6\x75\x5d\x67\x1c\x97\xd9\x67\xd7\xf5\x5d\x4f\x21\x56\x34\xf3\x34\x75\xda\xd0\xd7\x9f\xde\x7f\xff\xfd\xf7\xff\xdb\x0d\xc4\xff\xf3\x57\xae\x34\x6c\x65\x63\xf9\x78\x12\x48\xff\x6b\x54\xf4\xe2\x41\xe4\xd3\xaa\x10\x8f\xe2\xff\xe9\x2e\xca\xf0\xe1\xae\x6e\x08\xff\xaf\xff\xdc\xd4\x51\x33\xd1\xb9\x1d\xe8\xfc\x91\xe7\xe9\x5e\x02\xf5\x95\xef\x3f\x31\x5e\x7f\x55\x19\x09\xb9\x3e\x8f\xc2\xaf\xb2\x0b\xd7\xa7\xdb\x16\x3f\xe1\xb6\xd8\x79\xf4\x7e\x46\x13\x5e\xd5\x15\xd2\x8d\x9b\xc7\x7c\x50\xba\xf1\x67\x69\xac\x5b\x53\x77\x71\xa1\x1c\xf0\xb7\xd7\xd7\x80\x0e\xfc\xe8\x54\xe6\x02\x4a\x02\x7e\x17\x77\xd7\x3a\xb9\x17\xcd\xa3\x5e\xa6\x47\xba\xd6\x3b\x92\x9c\x41\x44\xec\x23\x98\xb5\xf9\xf5\x3e\x17\xd3\xa2\xfb\x9d\xee\xf7\xf0\xe7\x0e\xef\xf7\x8d\x15\xa7\x5c\x7f\x9b\x6e\x9b\x98\x36\x9c\xab\x0f\x1f\x3f\x7f\xbc\xf9\x58\x3f\x59\xee\xfb\x6b\x9e\x29\x24\x7a\xad\x9f\x2a\x18\x06\x9d\x27\x3a\x4f\xe1\x3c\xb9\x0d\xf1\x34\x4d\x69\x77\xc6\xc3\x06\x67\x60\xce\x6c\xa0\x03\x40\x07\xa0\xe3\x03\x30\x12\x3c\xdd\xce\x09\xf8\xcb\xc7\xcb\x0f\x4f\x3e\x02\x7f\x11\x3c\xa5\x33\x40\x67\x60\xab\x67\x40\xfb\xb7\xb7\x72\x0c\xbe\x5c\xdd\x7c\xfa\xf2\xeb\xf5\x93\x4f\x82\x1f\x22\x1d\x06\x3a\x0c\x5b\x3d\x0c\x1d\xf8\x8e\x16\x76\x82\xbc\x46\xcd\x63\x3e\x28\xaf\xd1\x15\xb7\xa3\x50\xc4\xf3\xdb\xd7\xcf\xcc\x75\xdd\x5d\x5a\x85\x11\x31\x15\x3a\x04\xe8\xf0\x22\xf3\x57\x1b\x3a\x51\xd6\x8f\xb2\xce\x4d\xcd\x3e\x48\x01\xd7\x76\x1f\x5d\xde\xbc\xff\xcb\x93\x2f\x75\xe0\xc8\xa2\x2b\x9d\xae\xf4\xed\x5e\xe9\x3b\x74\xa2\x6e\x72\x08\xe6\xdc\xa7\x74\x06\xe8\x0c\x74\x7d\x06\xba\xa6\xf7\x8a\x47\xe0\xb7\x0e\x4e\x40\x41\x07\x80\x0e\xc0\x56\x0e\xc0\x77\xec\x09\x31\x83\x57\xff\x74\xca\xd9\xbf\x4e\x24\x74\xf0\xbb\xb4\xa3\xab\xba\xb2\x49\x07\x8b\x0e\xd6\xf3\x0b\x21\xd0\x41\xa0\x83\xc0\xba\x3f\x08\x47\x19\x4a\xa0\xb3\x40\x67\x81\x75\x7f\x16\x8e\x3b\xa4\x40\x87\x82\x0e\x05\xdb\x82\x0d\x4e\xa1\x85\xe7\x1d\x5a\x08\xa1\x04\xac\xdd\x34\xba\xc8\x67\xfb\xb6\x6a\x48\xf3\xbf\x50\xa0\xe4\x19\x07\x4a\x48\x50\x91\xa0\x62\x5b\x10\x54\xc7\x18\x30\xa1\xb3\x40\x67\x81\x6d\xe1\x2c\x1c\x5d\xe0\x84\x0e\x02\x1d\x04\xd6\xd9\x41\xf8\x8e\x6d\x16\x40\x31\x96\xdb\xc2\x6c\x1f\x59\x0c\xbf\xd3\x11\xb8\xd8\x35\x76\xba\xc5\xc1\x39\x6d\x1c\xb1\xd6\x04\x50\x6e\x96\x9f\xe1\x91\x3d\x1d\x94\x31\x42\x80\x39\x76\xa7\xc2\xb1\x20\xc0\xf8\x7f\x6d\x64\x74\xcf\xde\xb6\x17\xf0\xee\xff\x5c\x7e\xf1\x8e\x45\x3e\x14\xad\x9e\x34\x36\xe7\x56\x0c\x65\x72\xd1\xfe\x1d\xf7\xef\xa9\x7f\x12\xae\xf8\x36\x12\x6b\xc2\x73\x2b\x79\x96\x4d\x59\x31\x49\xb9\x15\x1b\x4a\x2f\xf8\x6a\x3b\xf1\x75\x94\xbc\x39\x63\x9e\x8c\xa4\x12\xf9\xb4\x3f\xb9\x1f\xba\x3f\x98\xfe\x58\x58\x0e\x02\x07\x36\x4d\x3b\x91\xb3\x5c\xd6\x10\x5d\x5d\x75\xe9\xe7\x2f\x81\xe5\x94\x75\xcb\x2f\x82\xe5\x57\xc1\x5a\xcb\xf4\x7c\xc8\xeb\x10\xb1\x0e\xc6\x8b\xa8\x87\x1e\xa4\xc0\x49\x2d\xb8\x6d\x4a\x73\xf1\xc5\x82\x9b\xe8\x25\xbb\x2b\x2c\xc3\xe0\x1b\xcf\xe0\x4d\xa5\xd5\x05\xbe\x0d\x4f\x30\xb7\x6a\x86\xbd\xf8\xbf\x46\x2b\x38\x4b\x3d\xf6\x8b\xbb\xf3\xfc\xbf\xaf\xc3\x4d\x58\xfe\x71\x06\x58\xb0\xdd\x8e\x59\xc8\xac\xb7\xb3\x7d\xf3\x93\xce\x13\x80\xac\x1a\x6a\x84\xb5\x64\xb7\x67\x03\xf7\xb7\xdb\x33\x76\x59\x9b\xcd\x3e\xfb\x64\x3d\x30\x65\x61\x44\x1e\x0e\xea\x05\x4f\x60\x01\x00\x45\x32\x93\x88\x8e\x09\xe3\x32\x4c\x3f\xfa\xb5\xd5\x78\x54\x85\x9e\x64\xa2\xcf\xf0\x9b\x83\x8c\x0f\xe3\x9e\x2a\x94\x11\xb6\x71\x21\xe2\xe7\x37\x99\x5e\x3d\x1b\x39\x58\x01\x4c\xb4\x72\x62\x1b\xa5\x17\x19\x3f\x64\xfc\x34\x10\x60\x81\x08\x3e\x44\xf3\xa7\x6b\x57\x5d\x2e\x26\x19\x4f\x36\xd5\xd2\xfc\xdb\x27\xac\xa7\x6d\x70\x12\x48\x27\x23\x9d\xec\x88\x74\xb2\x03\x52\x7d\x48\x42\xc7\x5f\xb6\x21\xa1\xf7\x4b\xfb\xff\x5c\x55\x89\xe2\x90\xfc\xa8\xdf\xb1\xb5\x42\x1d\x56\x8c\x27\x99\x13\x4f\xdb\xae\x0f\xc1\x36\x59\xa2\xb3\x4c\x44\x7a\xe5\x2b\x9d\xde\xf8\x0e\x2c\xd1\x41\xf0\x55\x54\x41\xde\xc7\xf7\x6b\xca\x48\x53\x2b\x6d\xd5\x91\x99\x8e\xf2\x2c\xd3\x8f\xbf\x3b\xf5\xf0\x47\xad\xef\xc7\x3c\xbf\x37\xa5\xcd\xfa\x08\x56\x8f\x78\x10\xca\xfd\x07\xc8\x87\xe9\x44\xb0\xdb\xb3\x1f\xbf\x7c\xf9\xf9\x97\xcb\xaf\x3f\xdf\x9e\xf5\xd9\x35\xc0\xbb\x7b\x81\x9f\x6a\xc4\xc4\x1f\x4f\x32\x31\x16\xca\xb2\xbb\xd8\xea\x98\x4f\x99\x1c\x2a\x04\x4c\x76\x56\xb3\xb3\xb9\x9c\x24\x28\x1f\x01\x34\x5d\xf7\x96\xc7\x8d\x8d\x80\xff\xa9\x34\x49\x2e\x5c\x9f\xfb\xec\x7d\x26\xa1\x3f\x15\x6d\x82\x1b\xb7\x58\x33\x0d\x05\x60\x63\xd7\x18\x57\xd3\xa0\x03\x26\x08\xd8\xff\xc0\xb3\x1e\x53\x3a\x87\x6e\xd9\x91\x98\x86\x46\x2a\x88\xf5\x20\xf3\x8d\x50\x29\xbc\x1f\xc6\x8c\xf3\xc1\xd2\xc2\xc9\x03\xc6\x99\x71\xda\x85\xeb\x58\x40\x5e\x96\xc8\x43\xc0\x71\xfa\x7a\x7e\xb4\xc1\x47\x80\x53\x10\x80\x9a\x05\x1b\x08\x6e\x8b\x5c\xb0\x21\xb7\x82\xcd\x2c\x84\x6f\x49\x28\x27\x1a\x53\x50\x77\x02\x0b\xc2\xa2\x66\x37\x90\x7e\x0d\x5b\xa0\x53\x3b\x75\x89\x92\xb2\x99\x6e\xbc\x15\x2f\x25\x96\x60\x85\x78\x6b\x17\x9a\x71\x60\x83\x91\xaa\x10\xde\xc1\x13\x36\xed\x9d\xdb\x63\x16\xb1\x2c\x73\x61\x73\x29\x80\x2b\x03\x08\x0b\x50\xb7\x35\xb3\xfc\x09\x7d\x76\xed\xf1\xbf\xab\xe0\xde\x7e\xa7\x7a\x35\xa9\xc7\x12\x7f\x38\xdc\xae\x06\x0d\xab\x30\x22\xa2\x50\x43\x47\xf0\x55\x68\x9c\x97\xa8\xed\xb0\x41\x82\x5a\x0d\x27\x5d\x02\xbb\x46\xc2\x33\xff\x5b\x79\xbf\xb0\x17\xe2\x1b\xf0\x5d\x84\x8c\x41\x6c\x52\x0f\xe2\x47\x5e\x46\x4e\x11\xdf\x3f\x64\x67\x80\x68\x0f\x9f\xed\x4a\x95\xbb\x23\x2a\xfe\xf1\x78\x94\x96\xdb\xec\x6b\x06\xa1\xcc\x95\x53\x68\xd1\x76\x78\x1c\x09\x50\xf9\xd3\x42\x20\xd5\xdb\x44\xe2\xc5\xca\x5e\x0c\x85\x12\x39\x78\xf1\x07\x00\xe4\xae\xd9\x40\x0e\xac\x10\x8a\x8d\xa5\x2a\xac\x30\x2f\x9d\xb2\xca\x23\xfd\x08\xbe\x86\x4a\x2e\xd3\xaa\x32\x96\xde\xdc\x0d\x81\x3a\x94\x57\xa0\x39\xfb\xe3\x9b\xd7\xec\xab\xcf\x14\xfd\xe8\xba\x20\x02\xfb\xa4\xd5\x43\xec\xa0\x7f\x32\x8e\xc8\xea\x7b\xa1\xe2\x90\x71\x0d\x99\x12\x22\x35\xf8\x14\xd8\x49\xca\xb2\x4c\x1a\x0b\x64\x27\xa0\x6a\xe7\x02\x31\xe0\xed\x48\xc8\x1c\x7e\x83\x86\x75\x61\xeb\x2b\x0e\x77\x44\x9f\x7d\x71\x9f\x7e\x94\x46\xf4\xaa\x5f\x71\x2b\xe3\xaf\x38\x74\x8c\x41\x3b\x21\xeb\x33\xda\x04\xd0\x43\xcf\xea\x52\xb5\x15\xdc\x60\x61\x70\x2b\xa7\x05\xda\x85\x0e\xd7\xf8\x50\x94\xf8\x66\xd9\xbd\x98\xf6\xc0\x0d\x1a\xff\x0c\x42\xda\x32\xa3\xf8\xc4\x8c\xb4\xed\x79\x34\x7d\x80\xb3\xaf\x4c\x48\x7c\x3e\x6e\x64\xdf\x7d\x3c\x42\x17\x0c\x43\x8c\x81\x2d\x31\xf7\xe8\xec\xee\xa4\xa0\x69\x0a\x08\xfb\xee\xfc\xb8\xc3\x9f\x32\x3e\xb0\x02\xf7\xf4\x40\xe6\xc6\xce\x4e\x06\x9a\x80\x52\x25\x59\x91\xe2\x7d\xec\xd3\x82\x41\x87\x06\x83\xc5\x6d\x48\xf7\xbf\xb8\x28\xf7\x62\x8a\xc2\xa8\x6c\xf8\xf6\x2c\x0c\xf9\xf6\xac\x7f\xab\x6e\x55\xdd\x85\x0c\x20\xf3\xc5\x64\xa2\x73\x1b\xc0\x6e\x51\x0a\x4b\x83\x7c\x95\x51\xfe\xc1\xca\xc1\x06\xf0\x92\xa6\x3a\x7b\x38\x09\xb0\x07\xff\x8a\x2a\x94\x3f\x36\x51\x2a\xde\x4d\xab\x2b\x86\x46\xb3\x65\x63\x69\x0c\x48\xbb\x9a\xe5\xbe\x89\x54\x09\xdb\x6f\x3f\xe6\x2e\x79\x25\x5a\x2f\xd4\x3e\xbd\x12\x97\xcc\x08\xa7\xe0\xc2\xe5\x08\x17\x5a\x2e\x3d\xb3\x6b\xe6\x91\xa0\xe3\x86\x0d\x47\x19\x37\xae\xcc\xbd\x63\xbf\x4e\x1b\x00\xe4\x02\x76\x24\xd5\x70\x63\x3f\xc0\xb5\xef\xd1\x7e\x66\xc4\x29\x0d\x69\x90\x3f\xcd\x54\x23\x3e\x6d\xa2\x54\x25\xfc\xed\x05\x5b\xa7\xe2\x87\x51\x5a\x5d\x28\x31\x44\xea\x12\x8f\x6b\x5d\xf5\xd7\xfc\x43\xe4\xba\x72\x34\xbc\xc9\x22\xc7\x63\x91\x4a\x6e\x45\x36\x6d\x20\x13\x51\x32\xc3\x9b\x3e\xc5\x49\x67\xc3\x9c\x27\x70\x6a\xa4\x2e\x69\x67\x4b\xa1\x0d\xf6\x42\xd8\xa5\x85\x11\x33\xb4\x6f\xdc\xbd\x19\x06\xe4\x3f\x32\x43\xb4\xd1\xc7\x7e\x62\xb0\xa7\xa1\x8f\x1b\x2c\x33\xf4\xf9\x0a\xba\xdc\x44\x44\xb2\x02\x0d\xfc\x50\xb6\x7f\xc6\xef\x44\xd6\xe9\xf6\x87\x16\xf7\xbb\xfd\x81\x54\x0b\xfd\x93\x63\xfe\x4d\x8e\x8b\x71\x85\xab\x25\x3a\xab\x70\xb6\x80\x77\x08\x22\xad\x38\x5b\xc8\x73\xfc\x69\x80\x6a\xb4\x74\x7d\x61\xe2\x1b\xa8\x4c\xf3\x46\x1d\xce\xf2\xdf\x82\x94\xfa\x9b\x97\xc0\x5e\xd5\x83\xf6\x9c\x65\x00\x1c\x6e\xb0\x51\x71\x77\x82\xfc\x48\xb8\x0a\xdb\xb9\xd4\x84\x0c\x07\x6e\x20\x69\x65\x54\x99\xb1\x97\x4e\xb9\x17\xa5\xae\xe3\x3e\x8d\x63\x71\x8b\xe6\xcc\x67\x6b\xd1\x90\xc4\xb1\x57\x88\xcc\x06\xe2\x11\x94\x06\xae\xaa\x12\xc2\xa9\x29\x63\x5d\x28\x68\x06\x47\xf9\xa2\x98\xb8\x8f\xe1\x81\x76\x7f\x79\x19\x74\x13\xb4\x55\x39\x08\xa7\xf0\x76\xd8\x49\x4e\x2f\x19\xc8\xcc\x0a\xa7\xa1\x3a\xad\xd1\xc9\xa8\xa4\x6e\x5d\xd7\x6c\x08\x94\xa7\x89\xa8\x32\xdb\x94\x1a\xa6\xeb\x41\x2a\x90\xfe\x49\x44\x5d\xbc\x66\xd2\x80\x26\xf4\xc0\x65\xe6\xec\xd9\xd2\x73\xe0\x86\x9c\x8c\xb4\x36\x02\x8e\xbe\xd5\x41\x03\xf2\x6b\xe1\xa6\x85\xe7\xc3\x02\x1c\x0a\x1c\x54\x4a\x18\x10\x4c\x92\x1b\x9b\xef\x4f\x6c\xba\x9c\xdd\x4f\x03\x16\xb7\x54\x79\x2b\x05\xeb\x64\x66\x00\xd2\x30\x31\x9e\xd8\x69\xdd\x8c\x8a\x7e\x01\x6e\x9d\x04\x5f\x36\xa0\x65\xaa\x9c\x1c\xcc\x28\x72\xa8\xfb\xc5\x7d\x39\x2c\x78\xce\x95\x15\x55\xf6\xc8\xb0\x52\xf1\x12\xa8\x90\x1f\xc4\xbe\x47\xb5\x34\x1a\x6c\x56\x33\x69\x4c\xe1\xdd\x13\x52\x0d\x33\x51\x9e\x90\x68\x23\x84\x0d\x77\x11\x1c\xfc\xc0\x0d\x15\x3e\xb9\x9e\x9e\x1c\x54\x64\xf0\x7e\x98\x42\xa4\x8d\xca\x32\x78\x61\x8a\x3b\xe3\x1e\x56\x36\x8e\x20\xad\x84\xf5\x6f\xbc\x03\xc5\xe8\xb1\x00\x36\x1f\x96\x8b\x81\xc8\x3d\x1d\x24\x9f\xb1\x87\x4a\xf3\xc0\xad\xa8\x50\xa6\xc8\x4b\x66\x74\x6f\xe0\x84\xe8\x05\xce\x1a\x0e\x19\x0e\x26\x98\x32\xcc\x8c\x79\x96\x89\x9c\x25\xa3\x42\xdd\x43\xbc\x90\x33\x24\x28\xe2\xf9\x30\x2c\x34\x9c\x78\x6c\x1e\x7d\x45\x46\x00\xdb\x3a\x9b\x68\x63\xa4\xdb\x70\x7e\xda\x60\xc3\x55\xcf\x17\xe6\x8c\xa5\xa5\xb7\x08\xbe\x03\x94\x83\x06\xd7\xd8\x7b\x38\xc3\x1e\xf6\xb2\x10\x7a\xfd\xc8\x4d\xd0\x61\x83\x47\x0c\x58\xc2\xe6\xec\x13\xb4\xda\x39\x70\xdc\x27\x45\x06\x5f\x94\xe5\xb6\xd9\x48\x16\xb8\x89\xda\x93\x58\xfc\x20\x26\xb9\x00\x22\xfb\x77\x6c\x92\x09\x6e\x44\xbc\x82\xae\x72\x3d\xe1\x43\xd0\x8e\xae\x74\x26\x93\x69\xcd\x0f\x16\x36\x5d\x1a\x1b\x70\xdb\xee\x4d\xff\x7f\xf5\xd9\x35\xde\x67\xa8\xba\x4c\x84\x72\x87\xa5\x94\xa9\x82\xe9\x7c\x32\xe2\x91\x40\x2d\x2f\xc4\x2b\x60\xa0\xea\x79\x9b\x0d\x7f\xbe\x3d\x43\x0a\x4a\xf9\x8f\x20\x48\xee\x04\xe3\x69\x0a\xbb\xf3\x55\x2e\xc6\xda\x19\xc7\xd1\x0c\xc3\xe6\xcf\x4d\xf9\x12\xda\xa7\x7d\xf6\x51\xc2\xe5\x58\xe9\xba\xce\xe7\xc7\x16\xb9\xd6\x84\x45\xf3\x18\x6c\x14\x6d\x47\x9b\x2c\x28\x8e\xe0\x43\x18\xfb\xce\x5c\x7c\xf3\x86\x19\x0c\xdd\x1d\xd8\x91\x7e\x64\x43\x9e\xdf\xf1\x61\xcd\x53\x1e\x8d\x1a\x91\x0f\x74\x3e\x76\x6b\xd2\x38\x5f\x5f\x66\x46\xb4\x78\xba\x40\xe9\x0d\x1a\xeb\x04\xe7\x56\x3a\x6d\x32\x91\x69\x69\x0a\x83\xae\x80\x19\x43\x61\x8d\x9d\xb0\x0e\x84\xb0\x5e\x1b\xe8\x57\x16\x33\xc8\x91\x60\x6a\x5f\x44\x1f\x73\xfd\x63\x7d\x76\x99\x24\x62\x82\x11\xce\xaa\x65\x77\x8e\x63\x38\x67\x17\x7e\x03\xd6\x37\xa8\xf9\x81\x9d\xff\xc8\x93\xfb\x61\xae\x0b\x95\xba\xa7\x78\x24\x55\x9e\x99\x38\x54\x21\xbd\x7e\x5c\x6f\x24\x8c\xe0\x2e\xb6\xf4\x03\x3b\xff\x49\xe7\xa2\xd2\x2c\x4b\xb8\x49\x78\xea\x46\xef\xe7\x07\xdd\xf9\xd0\x9e\x41\xd3\x73\xae\xc1\x41\x6c\x63\x93\x0d\x39\x99\xdd\xee\x7b\xf4\x14\x94\xaa\x81\xf7\x56\xa1\xa8\x76\xf2\xb2\x07\xfc\x7e\x26\x04\xbc\x71\x5e\x74\x92\x14\x79\x94\x82\xdc\x32\xc8\x12\x76\x57\x6f\x5e\xbd\xd0\x79\xdc\x19\x75\x35\x3d\xb4\x15\x6f\x8a\x1a\x41\xde\x48\x1a\xab\xf3\x69\x9f\xcd\x74\xcd\xa9\xba\xee\xfa\x78\xc7\x2e\x9c\x36\x01\x69\x6a\x95\x04\xf2\xe0\x7d\xa8\xa8\x0b\xd0\xbe\xbb\x96\x20\x6d\x59\xe7\x6e\xbf\xdc\x71\xa7\xb6\x6a\xc5\xfe\x5e\xe8\xbc\x18\x5f\x20\x57\x6f\xc6\x87\x3f\x60\xb3\xd2\x5d\x58\xaf\x7d\xbb\x8f\x82\x19\x39\xc6\xcc\x3b\xd0\xb6\x1e\x41\x2e\xc5\x22\xf1\x6c\xca\x46\x1c\xac\x4b\x96\xf0\x64\x84\xf4\x92\x51\x93\xf1\x2d\x82\xb2\xad\x9d\x39\x0a\x1a\x6a\x63\x97\xb9\x65\xee\xa2\xb7\x90\xf2\x9f\x0b\x03\xb9\xff\x43\xf9\x20\x14\xcb\x1f\x36\xd9\x5d\x33\xde\xaf\x3d\x19\xf3\x72\x2c\x9c\xaa\x15\xec\x62\xb7\x7a\xaf\xca\xad\xe5\xd5\x1d\x10\xb5\x58\x93\x1f\x2d\xff\xa0\x61\xc3\x06\xcc\xc5\x90\xe7\x29\xa4\x55\xb8\x4d\xa5\xa6\x8c\x27\x56\x3e\x00\x6b\x78\xce\xa4\x0a\xff\xb5\xc9\x3c\x59\xec\xe2\x7e\xed\xe0\xdf\xd1\x7d\xa9\xf3\xf2\x94\x69\x7f\x89\xb9\xe7\xee\x40\x45\xc4\xf5\xc4\x4b\xd7\xef\x46\x3b\x12\x63\x54\x0a\x4b\x7a\x79\x9e\xa6\x3d\xaf\x76\xf5\xfc\xb3\x4e\x2c\x3b\x61\x50\x71\x68\xb2\x6b\x38\x56\xd3\x59\x2f\xe9\x26\x53\xf8\x38\x93\x5c\xc7\x9e\x2c\x4e\x1b\x23\xcc\x94\x37\xb2\x66\x44\xcf\xa7\xec\xb5\x0b\xe5\x9d\x54\x8e\x06\x8a\xed\x52\xa5\xda\x6a\xc2\x46\x43\x32\xc2\x5e\xb1\x08\xd1\x73\x96\x7b\x11\x1e\x54\x7c\x3d\x60\xae\xcf\x2d\x73\x30\x5c\x1b\x0d\x49\xa0\x94\x77\x41\x79\x17\x27\x91\x77\x41\x99\x0a\x94\xa9\x40\x99\x0a\x94\xa9\x40\x99\x0a\x7b\xcf\x54\xa0\x10\x38\x45\x45\x29\x2a\x4a\x51\x51\x8a\x8a\x52\x54\x94\xa2\xa2\x14\x15\x5d\x28\x04\x28\x50\x41\x81\x0a\x0a\x54\x50\xa0\x82\x02\x15\x0b\x02\x15\x0b\x5f\x70\x1f\xfb\x01\x27\xfe\xdf\xe7\xe7\xa0\x4d\xdb\xf5\xb7\x0f\x3b\x22\x52\x2d\x50\x0d\x0e\xeb\xcf\xd2\xd8\xe7\x18\x08\x71\xf7\xd8\x21\x07\x3f\x36\x40\xff\x23\xd0\xbc\xa3\x03\xcd\xeb\x1e\x9a\x1b\xcc\x10\xc6\x5b\x46\xb3\xf0\xf1\x8e\xe3\x59\x87\x0b\x6b\x12\x47\xd5\xee\xc2\xa3\x42\xa2\x13\x28\x24\x22\x78\x13\x82\x37\x69\xe8\xcc\x41\x2b\x65\x47\x03\x73\xb2\x7e\x87\xdf\xae\xec\x30\x26\xc4\x1e\x4a\x8f\x4f\x49\xe7\x05\x75\xe3\xf0\x74\xde\xef\xd8\x66\x48\x2d\x1e\x9c\x7e\x47\x80\x2d\x6d\x55\xaa\x2a\x48\xcb\x9e\x55\xaa\x23\x41\xc3\x20\x45\xaa\xba\xc8\x07\xab\x48\x51\xfd\xf1\x33\xaa\x3f\xa6\x42\x2b\x2a\xb4\xa2\x42\x2b\x2a\xb4\x22\x1b\x70\xd1\x29\x3a\x1c\x1b\x90\x4c\xaa\x7d\xd7\x53\x1c\xa0\x51\x15\x7d\xcc\xdb\x21\xea\xb2\xb3\xd0\xd9\x2d\x2c\xa3\x05\x34\x5d\x1d\x96\x4e\x54\x34\x0c\xf1\x0d\x12\xa2\xee\xdc\xbf\x78\x62\xfb\x8c\x7d\x74\xff\x1b\xfe\x3e\xe6\x12\x1c\x70\x86\x25\x59\x61\xac\xc8\x4b\xb9\xe1\x59\x01\x32\x79\x2f\xd8\x79\xec\xe9\xb9\x53\x0f\x83\x4a\xd3\x67\x57\x19\x57\xca\x27\x34\x80\xd2\xc1\x33\xd4\x73\xde\xfc\x69\x93\x8b\x18\xfa\xb8\x27\x75\x20\x4e\x5a\xd4\xa6\xef\xc2\xf4\xb9\x91\xb2\x8f\x38\x63\x4e\x04\x4c\x4c\x98\x1d\x9f\x33\x04\x14\x0b\x09\x57\x15\xc5\x78\xba\xe5\x89\x72\x9d\x39\xdd\x48\xf5\xe9\xca\xa9\x53\xba\xf5\xb7\xcd\x18\xb7\xfb\xd8\xf1\x0c\x73\x5c\x73\x07\x88\x41\xae\x79\xcc\x14\x0c\x27\x06\xb9\x6e\x18\xe4\x36\x51\xab\x16\xf1\xc7\x9d\x4e\x08\x9f\x18\xe4\xc8\x0b\xfd\xfc\xc2\xf9\xc4\x20\xd7\xe5\xbe\x21\x06\x39\x32\x8a\xc8\x28\x6a\x9a\xc8\xe3\x61\x92\x7b\xaa\x59\xb4\x2d\x46\xb9\xcd\x9c\x61\x8b\xf8\xe4\x4e\x47\x6f\xa3\xd4\x4b\xd2\xd5\x9e\x87\xae\x76\x40\x2a\x11\x49\xee\xf8\x0b\xa5\x5e\x56\xda\x3e\x29\x55\x63\xcb\x4c\x73\xdb\xcf\x63\x74\xe2\xdf\x1f\x1e\x77\x1f\xe5\x3a\xcb\x50\xb8\xef\x9e\x7b\xee\x6b\xd9\x95\xf7\xb1\x2b\x2d\x13\x1c\x9b\x58\xe8\x56\xb6\x47\xb8\x68\x84\x8b\x76\x74\xb8\x68\x27\x9d\x81\x4b\x28\x6f\x84\xf2\x46\x28\x6f\x84\xf2\x46\x28\x6f\x4d\xa2\x84\xf8\xe8\xc8\x97\x41\x60\x7c\x54\x0f\xf2\x9c\xeb\x41\x08\x79\x91\x90\x17\x09\x79\x91\x90\x17\x09\x79\x91\x90\x17\x09\x79\x91\xca\x24\xa9\x4c\x92\xca\x24\xa9\x4c\x72\x76\x47\x12\x1f\x1d\xc1\xbc\xae\xbd\xbb\x08\xe6\x95\x60\x5e\x09\xe6\xf5\xf4\xb3\x4d\x88\x8f\x6e\xaf\x7c\x74\xab\xd2\x12\x0e\x98\x99\x6e\xdd\x0c\x8d\x26\x8e\x3a\xca\xca\xa0\xac\x8c\xd3\xcb\xca\xa0\x3c\x06\xca\x63\xa0\x3c\x06\xca\x63\xa0\x3c\x86\xbd\xe7\x31\x50\x80\x9c\x62\xa6\x14\x33\xa5\x98\x29\xc5\x4c\x29\x66\x4a\x31\x53\x8a\x99\x2e\x14\x02\x14\xc6\xa0\x30\x06\x85\x31\x28\x8c\x41\x61\x0c\x62\xab\x6b\x55\xec\xda\xe8\xba\x26\xde\xba\x86\xc7\x0e\x2a\x48\x42\x0c\x76\xcf\x01\xb4\x6f\x7b\x0c\x76\xeb\x46\xbd\x9a\xb9\xec\x3a\x8b\x7b\x1d\x28\xb4\x4a\xf3\xf8\xda\x5d\x8c\x54\x98\x74\x02\x85\x49\x04\xb2\x42\x20\x2b\x0d\x9d\x39\x12\x35\xee\x38\xe0\x56\x9e\xd8\xf5\xbd\x12\x34\x3c\xa9\xef\xa7\xa4\x39\x6f\x97\xfd\xae\x03\xcd\xf9\x3b\xf6\x54\xfc\x98\x5d\x33\xe2\x3d\x05\x3a\xe6\x60\x54\xb4\x23\xc1\xe8\x20\x75\xac\xba\xc8\x07\xab\x8e\x51\x55\xf4\x33\xaa\x8a\xa6\xf2\x2f\x2a\xff\xa2\xf2\x2f\x2a\xff\x22\x4b\x72\xd1\x29\x3a\xc8\x02\x8a\xfd\x58\x64\x54\xff\xb1\x07\xfe\xbc\x83\xae\xfa\x68\x60\xd2\x5b\xd7\xa2\x6a\xe2\xd4\xdb\x56\xa9\x07\xb1\xeb\xc5\xbd\xd1\x5e\x8d\x20\x76\x3d\xff\x7f\x24\xdf\xc8\x65\x77\x50\x3c\x7b\x7b\x8e\x75\x57\x19\xf7\x5a\x74\x85\xb8\xf7\x9a\xc7\x4c\x61\x7c\xe2\xde\xdb\x06\xf7\xde\xba\x8a\x58\x23\x0b\xdf\x89\x26\x1f\x10\x1f\x1f\xf9\xbb\x9f\x5f\xfa\x01\xf1\xf1\x75\xb9\x6f\x88\x8f\x8f\xcc\x28\x32\xa3\x4e\x82\x99\xaf\x53\x43\x6a\x37\x1c\x7d\xeb\xbb\xd9\x1a\xd9\xfa\x4e\x54\xbf\xa3\xe4\x52\xd2\xee\x9e\x9b\x76\x77\x40\x4a\x14\xc9\xfa\xf8\x0b\x25\x97\xae\xe8\xfa\x49\xa9\x29\xdb\x64\xf5\x3b\xa4\xfc\xcc\x57\x26\xe1\x59\x35\x27\x73\x4b\xa1\x45\xf8\x4c\x90\x5f\x3b\x88\x31\x5e\xc3\xb0\xe8\xd2\x5a\x75\xf2\x79\x61\xb5\x5b\x1b\xa9\x86\x10\xfd\x87\x69\x7b\x86\x07\xbe\xa3\xf0\x4e\x65\x3a\x9b\xcf\xfe\xec\xbe\xdc\x61\x64\xa7\xe1\xd3\x14\xc9\x69\x1e\x33\x45\x72\x28\x92\xd3\x4d\x24\xa7\x23\xb9\xd7\x3e\xa4\x33\x2f\xf8\x8e\xd2\xee\xa7\xb8\x0e\x59\xfe\xcf\xcf\xf2\xa7\xb8\x4e\x97\xfb\x86\xe2\x3a\xe4\xeb\x21\xb3\x69\xab\x66\x53\x67\xe1\x9c\xed\x1a\x4e\xdb\x8a\xe4\x74\xe6\xd5\x68\x1f\xd2\x39\x11\xfd\xee\x29\x27\x88\x94\x3a\x52\xea\x8e\x48\xa9\x3b\x20\xdd\x89\x44\x7c\xfc\x65\xab\x22\x7e\x3f\x51\x1c\x52\x4a\x3a\x0d\xde\x6c\x43\x25\xf9\x8e\x75\x16\xb7\xc1\x3a\xbd\xed\x07\x6e\xe0\x3b\xbb\x8c\xdc\xe0\xc0\xe8\x82\xa2\xa0\x2d\x95\xe8\x50\x89\x0e\x05\x76\x28\xb0\x73\x90\x81\x9d\x8e\xe4\xe2\x1a\x91\x9d\x79\xc1\x78\x94\xa6\x3f\x85\x76\xc8\x0b\xf0\xfc\xbc\x00\x14\xda\xe9\x72\xdf\x50\x68\x87\xfc\x3e\x64\x56\x1d\x59\x8c\xe7\x88\x4b\x76\xba\xf3\x82\xac\x11\xe9\x39\x11\x7d\x8f\x4a\x78\x48\xdb\x7b\x6e\xda\xde\x01\x29\x55\x24\xfb\xe3\x2f\x54\xc2\xb3\xa2\xeb\x27\xa5\xb6\x9c\x54\x09\x0f\x62\xa5\xfe\xbd\xd0\x96\x9b\x1d\x61\xaa\x57\xd0\x65\xf5\x20\x92\x9a\xff\xbf\xae\x0b\x4b\x34\x9c\x2a\xae\xfa\xfb\xd8\x42\x55\xd5\x59\xd0\xce\x86\x48\x80\x0d\x8c\xff\xa5\x25\x8d\x74\x7b\x40\x4d\x6b\xbc\x6c\x99\x4e\x04\xbb\x3d\xfb\xf1\xcb\x97\x9f\x7f\xb9\xfc\xfa\xf3\xed\x59\x49\x0e\x8b\xe0\xad\x1a\x54\x03\x39\x9e\x64\x02\x58\x60\xef\x62\xab\x63\x3e\x65\x72\xa8\x10\x3a\xdb\xd9\xf2\xce\x12\x74\x52\xa4\x7c\x84\xe7\x82\x55\x49\x34\x91\x71\xf5\xdc\xb0\x54\x9a\x24\x17\xae\xcf\x25\x85\x77\x45\x13\xf1\xcc\xaf\xf5\x86\x22\x93\x23\xb7\x48\x68\x1a\x70\x0b\xa5\xb2\x22\x7f\xe0\x59\x8f\x29\x8d\xec\xfa\x40\x15\x1a\xe9\x63\x67\x19\x88\x81\xdf\x7d\xca\xc2\x98\x3d\x55\x6f\x24\x0a\x35\x4e\x33\xd1\xaa\x44\xe8\xf6\x8c\xb2\x9e\x08\xb3\x06\x16\xed\x7e\x85\x29\x48\x23\x61\xfd\x40\x70\x5b\xe4\x82\x0d\xb9\x15\x6c\x66\x21\x7c\x4b\x42\x39\xb1\x8a\xcc\xac\x13\x59\x32\xe9\x37\x35\xbb\x81\xe4\x6c\xd8\x02\x9d\x5a\xcf\x4b\x14\x9c\x93\x86\xf9\xbf\xa9\x12\x17\xa3\xdb\xa9\x82\x14\x6f\x84\x45\x96\x60\xcf\x3c\xed\x36\x53\x8d\xb2\x38\x42\x7a\xe3\x82\xf7\xd9\xb5\x54\x89\x98\x01\x81\xf7\x3b\xd5\xab\x58\x75\x3e\xe4\x1a\x25\x74\xec\x08\xbe\x0a\x8d\xf3\x92\xf9\x1f\x79\xb0\x03\x41\xad\x3b\xe9\x25\x4b\x31\xfe\x56\xde\x2f\xec\x85\xf8\x96\x88\x49\x49\xcd\x89\x4d\xea\x41\xfc\xc8\xcb\x88\x52\xed\xfb\x87\x5c\xd9\x10\xa7\xe2\xb3\x5d\x91\xee\xd6\x10\xb8\xd3\xa3\xd1\x10\x8f\x47\x69\x2b\xce\xbe\xe6\xde\x00\x5d\x54\xe4\x0c\xed\x8e\x40\x65\x9d\x16\x02\x38\xd6\xbf\x4d\xa4\x47\xef\x7f\x31\x14\x4a\xe4\x10\x7f\x18\x38\x03\xc4\x6a\x36\x90\x03\x2b\x84\x62\x63\xa9\x0a\x2b\xcc\x4b\x06\xfc\xe4\x89\x56\x03\x39\x0c\xa0\xff\xa8\x20\x07\xae\xf1\xf2\xe0\xd5\x6f\x08\xd4\xbf\x22\xfd\xed\x1f\xdf\xbc\x8e\xb7\xfd\x47\xd7\x05\x91\x7a\xf3\xc6\xea\x21\x76\xd0\x3f\x19\x47\x64\xf5\xbd\x50\x71\xc8\x9e\x0f\x59\x09\x91\xce\xd0\x28\x67\xc0\x91\x2e\x2d\xaa\xe9\xb9\x30\x96\x23\xf7\xb6\x44\x76\xdb\x48\x19\x3d\xcf\x99\xdd\x67\x5f\xdc\xa7\x1f\x65\xc0\x97\xf7\x5f\x71\x2b\xe3\xaf\x38\x74\xd7\x79\xa6\x62\xa4\x89\x8e\xf6\x04\xf4\x30\x70\x31\x57\xec\x0c\x37\x58\x18\xdc\xca\x69\x81\x76\xa1\xc3\xe0\x2a\x0c\x9b\x1b\xa8\xd6\xef\xc5\x14\xd1\xd3\xe3\x9f\x33\x67\x7f\x56\x79\xa3\x1f\x47\x12\x29\xb9\xa5\xaa\x4c\x48\x7c\x3e\x6e\xe4\x0a\xd1\xb2\x61\x17\x11\x6d\x1f\x61\x58\x73\xb1\x26\x5d\xf6\xcc\x64\xcc\x33\x65\x7b\x24\x76\xd0\xbf\xc1\xd8\x71\x1b\xd2\xfd\x2f\x2e\xca\xbd\x98\x7a\xee\xf1\xd8\xf0\xed\x59\x18\xf2\xed\x99\xa7\x16\x5f\xcc\x45\x0e\x17\x44\x9d\x8d\x3c\xca\x3f\x58\x39\xd8\x00\x81\x72\xb9\x32\x7b\x38\x09\x55\x76\x56\x7f\x6c\xa2\x54\xf4\x00\xf4\x7e\xc5\xd0\xe0\xb6\x6c\x2c\x8d\x01\x69\x57\xb3\xfa\x37\x91\x2a\x61\xfb\xed\xc7\x54\x26\x8f\x46\xeb\x85\xda\xa7\x47\xe3\x92\x19\x51\x32\x09\xb8\x0b\x2d\x97\x89\x8d\x7c\xcf\x6e\x6e\xe2\x86\x8d\xc4\x19\x53\x7f\xb8\x30\xdc\x50\x67\x31\x11\x0f\x22\x9f\xda\x91\x54\xc3\x8d\x7d\x08\xd7\xbe\x47\xfb\x99\x11\x22\x9d\x79\x46\xa4\x33\x4f\xda\xfe\x19\xbf\x13\x59\xa7\xdb\x1f\x5a\xdc\xef\xf6\x07\x3e\x77\xf4\x6d\x8e\xf9\x37\x39\x2e\xc6\x4c\x15\xe3\x3b\xb7\x49\x06\xf1\x32\x35\x38\x5b\x40\x63\x0e\xf1\x5f\x9c\x2d\xa4\x85\xff\x34\x40\x35\x5a\xba\xbe\x20\xbf\xca\xbc\x6e\x02\xb4\xfa\x23\xc1\xfe\x16\xa4\xd4\xdf\x02\xc5\x8b\x2a\x67\x3f\xb0\xaf\xe0\x46\xc5\xdd\x09\xf2\x23\xe1\x2a\x6c\xe7\x52\x13\x32\x7c\xec\x4e\x99\xb4\x32\xaa\xcc\xd8\x4b\xa7\xdc\x8b\x52\xd7\x71\x9f\xc6\xb1\xb8\x45\x73\xe6\xb3\xb5\x68\x48\xe2\xd8\x51\x55\xc6\xb1\x89\x47\x50\x1a\xb8\xaa\x4a\x08\xa7\xa6\x8c\x75\xa1\xa0\x19\x1c\xe5\x8b\x62\xe2\x3e\x86\x07\xda\xfd\xe5\x65\xd0\x4d\xd0\x56\xe5\x20\x9c\xc2\xdb\x61\x27\x39\xbd\x64\x20\x33\x2b\x9c\x86\xea\xb4\x46\x27\xa3\x92\xba\x75\x5d\xb3\x21\x50\x9e\x26\x31\x91\xae\xae\x61\x22\x17\x8c\x15\xf9\x58\x2a\x11\x75\xf1\x9a\x49\x03\x9a\xd0\x03\x97\x99\xb3\x67\x4b\xcf\x81\x1b\x72\x32\xd2\xda\x00\xd3\xbc\x6b\xc7\x6b\x40\x7e\x2d\xdc\xb4\xf0\x7c\x58\x80\x43\x81\xab\x34\x48\x5b\x98\x24\x37\x36\xdf\x9f\xd8\x74\x39\xbb\x9f\x06\x2c\x6e\xa9\xf2\x56\x0a\xd6\xc9\xcc\x00\xa4\x61\x62\x3c\xb1\xd3\xba\x19\x15\xfd\x02\xdc\x3a\x09\xbe\x6c\x40\xcb\x54\x39\x39\x98\x51\xe4\x50\xf7\x8b\xfb\x72\x58\xf0\x9c\x2b\x2b\x82\x92\x52\xde\xf4\xa6\xbc\x04\x40\x1f\x2c\x40\x6d\x88\x7d\x8f\x6a\x69\x34\xd8\xac\x66\xd2\x98\xc2\xbb\x27\xa4\x1a\x66\xa2\x3c\x21\xd1\x46\x08\x1b\xee\x22\x04\x07\x7a\x6e\x78\xe1\x93\xeb\xe9\xc9\x41\x45\x06\xef\x87\x29\x44\xda\xa8\x2c\x83\x17\xa6\xb8\x33\xee\x61\x65\xe3\x08\xd2\x4a\xb2\xc1\x8d\x77\xa0\x18\x3d\x16\x56\x8e\x85\x1b\xfb\x40\xe4\x39\xb0\x5d\x39\xbd\xba\x66\x0f\x95\xe6\x81\x5b\x51\xa1\x4c\x91\x8b\x48\xb9\xe0\x0d\x9c\x10\xf9\xc0\x59\xc3\x21\xc3\xc1\x04\x53\x86\x99\x31\xcf\x32\x91\xb3\x64\x54\xa8\x7b\x88\x50\x72\xe6\x2e\x51\x96\xf1\x7c\x18\x16\x1a\x4e\x3c\x36\x8f\xbe\x22\x23\x04\x6c\xbc\x89\x36\x46\xba\x0d\xe7\xa7\x0d\x36\x5c\xf5\x7c\x61\xb6\x5b\x5a\x7a\x8b\xe0\x3b\x22\xc5\xf5\x00\xe3\xd9\xab\xe7\x7e\x0f\x7b\x59\x08\xbd\x7e\xe4\x26\xe8\xb0\xc1\x23\xe6\xe6\x64\xde\x3e\x41\xab\x9d\x1b\xb7\xc0\x49\x91\x21\x09\x59\xb9\x6d\x36\x92\x05\x6e\xa2\xf6\x24\x16\x89\x8b\x8d\xb8\xd8\x88\x8b\x8d\xb8\xd8\x76\xe7\x29\x28\x55\x03\xef\xad\x42\x51\xed\xe4\x65\xcf\xa9\x42\x8f\x26\x04\xcb\x71\x5e\x74\x92\x14\x79\x94\x82\xdc\x32\xc8\x6f\x76\x57\x6f\x5e\xbd\xd0\x79\xdc\x19\x75\x35\x3d\xb4\x15\x6f\x8a\x3b\x31\x94\x4a\x79\x6f\xc0\x48\x1a\xab\xf3\x69\x9f\xcd\x74\xcd\xa9\xba\xee\xfa\x78\xc7\x2e\x9c\x36\x01\xc9\x73\x95\xd4\xf7\xe0\x7d\xa8\xa8\x0b\xd0\xbe\xbb\x96\x20\xe1\x5a\xe7\x6e\xbf\xdc\x71\xa7\xb6\x6a\xc5\xfe\x5e\xe8\xbc\x18\x5f\x40\x95\xd2\x20\xe3\xc3\x1f\xb0\x59\xe9\x2e\xac\xd7\xbe\xdd\x47\xc1\x8c\x1c\x63\x3e\x20\x68\x5b\x8f\x20\x97\x04\x4b\x8a\x3c\x17\xca\x66\x53\x36\xe2\x60\x5d\xb2\x84\x27\x23\x01\x2a\x44\xd4\x64\x7c\x8b\xa0\x6c\x6b\x67\x8e\x82\x86\xda\xd8\x65\x6e\x99\xbb\xe8\x2d\x14\x2b\xe4\xc2\x40\xd5\xc2\x50\x3e\x08\xc5\xf2\x87\x4d\x76\xd7\x8c\xf7\x6b\x4f\xc6\xbc\x1c\x0b\xa7\x6a\x05\xbb\xd8\xad\xde\xab\x72\x6b\x79\x75\x07\x44\xad\xc1\x43\x1b\x2c\xff\xa0\x61\xc3\x06\xcc\xc5\x90\xe7\x29\xa4\x64\xb8\x4d\xa5\xa6\x8c\x27\x56\x3e\x48\x3b\x75\xd7\xa0\x54\xe1\xbf\x36\x99\x27\x8b\x5d\xdc\xaf\x1d\xfc\x3b\xba\x2f\x75\x5e\x9e\x32\xed\x2f\x31\xf7\xdc\x1d\xa8\x88\xb8\x9e\x78\xe9\xfa\xdd\x68\x47\x62\x8c\x4a\xa1\xb1\xb9\xe0\x63\x98\x9e\x34\xed\x79\xb5\xab\xe7\x9f\x75\x62\xd9\x09\x83\x8a\x43\x93\x5d\x23\x07\xd7\xac\x97\x74\x93\x29\x7c\x9c\x49\xf0\x63\x4f\x16\xa7\x8d\x51\x66\xca\x39\x21\x2a\xc6\xd9\x17\x96\x52\x31\x96\x2a\xd5\x36\x13\x39\x9a\xd3\x11\xf6\x4a\xc6\x88\xbe\xb3\xdc\x0b\xf1\xa0\xe4\xeb\x01\x73\xbd\x6e\x9d\x89\xe1\x5a\x99\x4f\x34\xa5\xec\x0b\xca\xbe\x38\x95\xec\x0b\xca\x57\xa0\x7c\x05\xca\x57\xa0\x7c\x05\xca\x57\xd8\x7b\xbe\x02\x05\xc2\x29\x36\x4a\xb1\x51\x8a\x8d\x52\x6c\x94\x62\xa3\x14\x1b\xa5\xd8\xe8\x42\x21\x40\xe1\x0a\x0a\x57\x50\xb8\x82\xc2\x15\x14\xae\x58\x10\xae\x58\xf8\x82\xfb\xd8\x0f\x38\xf1\xff\x3e\x3f\x07\x6d\xda\xae\xbf\x7d\xd8\x71\x91\x4a\x41\x6b\xc5\x65\xfd\x59\x1a\xfb\x1c\x03\x22\xee\x26\x3b\xec\x20\xc8\x06\x98\x86\x04\xfc\x77\x74\xc0\x7f\xda\x74\x1c\xea\x42\x53\x84\xf1\xd6\x51\x2d\x7c\xa1\xf3\xb8\xd6\xc1\x42\xa6\x54\xc7\xd5\xee\xe2\xa3\xc2\xa2\x13\x28\x2c\x22\xa8\x14\x82\x4a\x69\xe8\xcc\x81\xab\x67\xc7\x02\x91\xb2\x51\x97\xdf\xae\xec\x32\x26\xc9\x1e\x4e\x9f\x4f\x49\x03\x06\xd5\xe3\x10\x35\xe0\xef\xd8\xa6\x38\x2e\x1e\xca\x7f\x47\x70\x2e\xed\x55\xac\x2a\x84\xcb\xde\x55\xac\x23\xc1\xca\x20\xb5\xaa\xba\xc8\x07\xab\x56\x51\x75\xf2\x33\xaa\x4e\xa6\x32\x2c\x2a\xc3\xa2\x32\x2c\x2a\xc3\x22\x8b\x70\xd1\x29\x3a\x24\x8b\x90\xcc\xab\xfd\x57\x5c\x1c\xa4\x81\x15\xbd\xcf\xdb\x21\x38\xb3\x33\x80\xde\xed\x6c\xa4\x66\x3a\xb3\x6e\x8b\x2b\x2a\xba\x86\xf8\x06\x29\x53\x77\xee\x5f\x3c\xb1\x7d\xc6\x3e\xba\xff\x0d\x7f\x1f\x73\x09\x8e\x39\xc3\x92\xac\x30\x56\xe4\xa5\x04\xf1\x9c\x06\x99\xbc\x17\xec\x3c\xf6\xf5\xdc\x29\x8a\x41\xb9\xe9\xb3\xab\x8c\x2b\xe5\x53\x1e\x40\xfd\xe0\x19\x6a\x3c\x6f\xfe\xb4\xc9\x95\x0c\x7d\xdc\x93\x62\x10\x27\x2d\xea\xd5\x77\x61\xfa\xdc\x48\xd9\x47\x9c\x31\x27\x0c\x26\x26\xcc\x8e\xcf\x2a\x02\x82\x88\x84\xab\x8a\x8a\x3c\xdd\xf2\x44\xb9\xce\x9c\x6e\x2c\xfb\x94\x25\xd6\x29\xdd\xfe\x5b\x66\xce\xdb\x4b\x74\xb9\xce\x98\xb7\xb0\x0b\xc4\x94\xd7\x3c\x66\x0a\x98\x13\x53\x5e\x37\x4c\x79\x9b\x29\x58\x0b\x78\xf1\x4e\x2a\xcc\x4f\x4c\x78\xe4\x99\x7e\x7e\x01\x7f\x62\xc2\xeb\x72\xdf\x10\x13\x1e\x99\x47\x64\x1e\x1d\x39\x03\x5e\x07\x06\xd2\xb6\x98\xef\x36\x75\x8f\x2d\xe0\xb9\x3b\x29\xfd\x8d\xd2\x34\x49\x6b\x7b\x2e\x5a\xdb\x01\x29\x47\x24\xc3\xe3\x2f\x94\xa6\x79\xca\x6a\xc7\x76\x19\xec\xf6\x97\xf1\xf8\x0a\xe9\x74\xab\x89\x8f\xdb\x89\xed\x2d\xa6\xed\xed\x28\xca\xd7\xc0\xd1\x4b\xf7\x10\x1d\xea\x25\x87\x9a\x42\x2d\x14\x6a\xa1\x50\xcb\xd3\x47\xe3\xff\x45\xa1\x96\x6a\xa8\xe5\xa9\xf2\x6e\x75\xd0\xe5\x54\x48\xe9\x29\xf4\x42\x46\xfc\xf3\x33\xe2\x29\xf4\xd2\xe5\xbe\xa1\xd0\x0b\xb9\x6d\xc8\x5c\xa2\xd0\xcb\xb6\x42\x2f\x4f\xf7\x5e\xac\x0e\xc2\x9c\x8a\x3e\x47\xa1\x18\xd2\xe2\x9e\x8b\x16\x77\x40\xca\x12\xc9\xf4\xf8\x0b\x85\x62\x4e\x59\x0d\x39\x81\x50\x8c\x11\x49\x2e\xac\xd9\x11\xdc\x44\xa5\x10\x57\x0f\xd8\x35\x7c\x7b\x89\xae\x52\xc5\x9c\x78\x1f\x5f\x2d\x95\x96\xf9\x06\x88\xb1\x86\x18\x6b\x8e\x8e\xb1\xe6\xa4\x31\x50\x88\x7f\x87\xf8\x77\x88\x7f\x87\xf8\x77\x88\x7f\xa7\x49\x94\xec\x80\x05\x98\x9c\x14\x87\xee\xa4\x20\x9a\x24\x42\xe4\x7a\xc6\x88\x5c\xc4\x89\x45\x9c\x58\xc4\x89\x45\x9c\x58\xc4\x89\x45\x9c\x58\xc4\x89\x45\x40\x95\x04\x54\x49\x40\x95\x04\x54\x39\xbb\x23\x77\xe0\x29\x20\x02\x3e\x22\xe0\xdb\xc2\xde\x22\x02\xbe\x96\x67\x90\x08\xf8\x28\x8d\xa4\xf3\x88\x9e\xcf\xe5\x6b\x17\xca\x3b\xa9\xf4\x0c\x14\xdb\xa5\x4a\xb5\xbd\x5c\x8d\xb9\x3c\x84\xbd\x02\xd8\xa2\xd3\x2c\xf7\xd2\x3b\x68\xf7\x7a\xc0\x5c\x77\x57\x27\x5d\xb8\xd7\x67\xb3\x43\x29\xd1\x82\x12\x2d\x4e\x20\xd1\x82\x52\x13\x28\x35\x81\x52\x13\x28\x35\x81\x52\x13\xf6\x9e\x9a\x40\x31\x6f\x0a\x83\x52\x18\x94\xc2\xa0\x14\x06\xa5\x30\x28\x85\x41\x29\x0c\xba\x50\x08\x50\x64\x82\x22\x13\x14\x99\xa0\xc8\x04\x45\x26\x16\x44\x26\x16\xbe\xe0\x3e\xf6\x03\x4e\xfc\xbf\xcf\xcf\x41\x9b\xb6\xeb\x6f\x1f\x76\x08\x24\x96\xa5\xa2\xaf\xfa\xb3\x34\xf6\x39\x06\x3d\xdc\x15\x76\xa0\x81\x8e\x0d\x30\x04\x09\x70\xef\xe8\x00\xf7\xb4\xe9\x38\x9c\x85\xc6\x07\xe3\xab\x23\x57\xf8\x64\x77\xb1\xab\x03\x05\x33\xf1\x03\x6a\x77\xb9\x51\x81\xd0\x09\x14\x08\x11\x8a\x09\xa1\x98\x34\x74\xe6\x50\x75\xaf\xe3\x80\x2f\x59\xb7\xaf\x7b\xa5\xa2\x5e\xaf\xb3\xa7\xa4\xd0\x82\x42\x71\x50\x0a\xed\x77\x6c\x6d\x78\x15\x0f\x71\xbf\x23\x94\x95\x16\xaa\x52\x15\x59\x65\x7f\xaa\xd2\x91\x40\x58\x90\x96\x54\x5d\xe4\x83\xd5\x92\xa8\x68\xf8\x19\x15\x0d\x53\x75\x14\x55\x47\x51\x75\x14\x55\x47\x91\x81\xb7\xe8\x14\x1d\x64\x7d\xc1\x7e\xcc\x28\x2a\x8f\x58\x58\x1e\x71\x58\xa6\x55\x74\x23\x6f\x87\xf9\xab\xae\x60\xad\x34\x92\x9a\x88\xbe\x3a\xab\x84\xa8\x28\x1b\xe2\x1b\xe4\x37\xdd\xb9\x7f\xf1\xc4\xf6\x19\xfb\xe8\xfe\x37\xfc\x7d\xcc\x25\x38\xda\x0c\x4b\xb2\xc2\x58\x91\x97\x22\xc4\xd3\x02\x64\xf2\x5e\xb0\xf3\xd8\xc9\x73\xa7\x29\x06\xed\xa6\xcf\xae\x32\xae\x94\xcf\x4f\x00\xfd\x83\x67\xa8\xf2\xbc\xf9\xd3\x26\x77\x32\xf4\x71\x4f\x9a\x41\x9c\xb4\xa8\x58\xdf\x85\xe9\x73\x23\x65\x1f\x71\xc6\x9c\x34\x98\x98\x30\x3b\x3e\x05\x08\x38\x16\x12\xae\x2a\x3a\xf2\x74\xcb\x13\xe5\x3a\x73\xba\x81\xe7\xc3\x16\x59\xe4\x3a\xdb\x2e\xab\xdc\xae\x43\xc1\x55\x3a\xb9\xa6\x6f\x13\x8f\x5c\xf3\x98\x29\xac\x4d\x3c\x72\xdd\xf0\xc8\xad\xa9\x3d\x35\xd2\xc6\x9d\x4a\x30\x9e\x98\xe2\xc8\xef\xfc\xfc\xa2\xf3\xc4\x14\xd7\xe5\xbe\x21\xa6\x38\xb2\x7d\xc8\xf6\x39\x4e\x8a\xb8\xa7\x59\x3f\xdb\xe2\x86\x5b\xdb\xbf\xd5\x48\x05\x77\x2a\x3a\x1a\x25\x4c\x92\x4a\x76\xf2\x2a\xd9\x01\x69\x3e\x24\xa0\xe3\x2f\x94\x30\x79\x5a\xca\xc4\x36\x89\xde\xb6\x9f\x82\x98\x3f\xc8\x44\xf0\x24\xd1\x85\xda\x1b\xd3\x1b\xf4\xe1\x12\xfb\xd0\x32\x2f\xb1\x99\xf1\x6d\x51\x43\x04\x48\x46\x80\x64\x47\x07\x48\x76\xd2\x69\xb3\x04\xaf\x46\xf0\x6a\x04\xaf\x46\xf0\x6a\x04\xaf\xd6\x24\x4a\x88\xf9\x8d\xfc\x14\x84\x82\x47\x45\x1c\xcf\xb9\x88\x83\x20\x0f\x09\xf2\x90\x20\x0f\x09\xf2\x90\x20\x0f\x09\xf2\x90\x20\x0f\xa9\xb6\x91\x6a\x1b\xa9\xb6\x91\x6a\x1b\x67\x77\x24\x31\xbf\x11\xbe\xea\xda\xbb\x8b\xf0\x55\x09\x5f\x95\xf0\x55\x4f\x3f\x93\x84\x4a\x9b\xf7\xcc\xfc\xb6\x20\x1f\xe1\xa0\x19\xe0\x5a\x26\x63\x34\x33\xc1\x51\x02\x06\x25\x60\x9c\x4c\x02\x06\xa5\x2c\x50\xca\x02\xa5\x2c\x50\xca\x02\xa5\x2c\xec\x3d\x65\x81\x62\xe1\x14\x1e\xa5\xf0\x28\x85\x47\x29\x3c\x4a\xe1\x51\x0a\x8f\x52\x78\x74\xa1\x10\xa0\x88\x05\x45\x2c\x28\x62\x41\x11\x0b\x8a\x58\x10\x23\x5c\xcb\xc2\xd5\xaa\xcf\x9a\x98\xe1\x1a\x1e\x3b\x8c\x40\x08\x31\xc4\x3d\x07\x28\xbd\x6d\x32\xc4\xb5\x8c\x6c\x2d\x62\x8a\x7b\x6a\x6c\xeb\x60\x01\x50\x6a\x03\x6b\x77\xf9\x51\x81\xd1\x09\x14\x18\x11\x10\x0a\x01\xa1\x34\x74\xe6\xd0\x75\xb4\x63\x01\x44\xd9\xac\xcf\x7b\x66\x92\xdb\xa4\xd3\xa7\xa4\x08\x6f\x9b\x51\x6e\x73\x45\xf8\x3b\xb6\x31\xac\xcb\xee\x19\xe6\x36\x40\x74\xd9\xbf\xaa\x75\x24\xd0\x19\xa4\x5d\x55\x17\xf9\x60\xb5\x2b\x2a\x56\x7e\x46\xc5\xca\x54\x95\x45\x55\x59\x54\x95\x45\x55\x59\x64\x18\x2e\x3a\x45\x07\x65\x18\x92\x91\x75\x00\x25\x18\x87\x69\x66\x45\x57\xf4\x6e\x58\xe6\x5a\x1a\x4a\xcd\x6c\x73\x1d\x57\x5b\x10\xeb\x5c\xdc\x0d\xed\xb5\x03\x62\x9d\xf3\xff\x47\x62\x8b\x24\xc0\xfc\x0b\xfb\x61\x9f\xdb\x4f\xb8\xb9\xce\x42\xb7\xb8\x0f\xc4\x46\xd7\x3c\x66\x0a\xa1\x13\x1b\xdd\x76\xd8\xe8\x5a\x6a\x59\x0b\x58\xe9\x4e\x2b\xf0\x4f\xec\x74\xe4\xa3\x7e\x7e\x19\x00\xc4\x4e\xd7\xe5\xbe\x21\x76\x3a\xb2\x91\xc8\x46\x3a\x76\x96\xba\x2e\xac\xa4\x5d\xb1\xd5\xb5\xf6\x93\x2d\x60\xad\x3b\x2d\x1d\x8e\x92\x37\x49\x75\x7b\x36\xaa\xdb\x01\x69\x48\x24\xc8\xe3\x2f\x94\xbc\x79\xda\xca\xc7\x76\x59\xed\x76\x9a\x06\x59\xa3\xb5\xdb\x0f\x9e\xda\x12\x95\x65\x09\x90\x5a\x07\x31\x3d\x42\x50\x23\x04\x35\x42\x50\x23\x04\x35\x42\x50\x23\x04\x35\x42\x50\x23\x04\x35\x42\x50\x23\x04\xb5\x85\x33\x42\x08\x6a\x84\xa0\x46\x08\x6a\x84\xa0\x46\x08\x6a\x84\xa0\x46\x08\x6a\x84\xa0\xd6\xf9\xde\x22\x04\xb5\x96\x67\x90\x10\xd4\x0e\x37\xee\xb2\xf0\x85\xe7\x8d\xa0\x46\xd0\x69\x0d\x8f\x75\x15\x2a\xd9\x5d\x12\x3b\x25\x7c\x1f\x5d\xc2\xf7\xd6\x31\xd3\x96\x44\xaf\x96\x82\xa5\x9d\x5e\xa2\x0d\x65\xd8\x50\x86\x0d\x65\xd8\x50\x86\xcd\x21\x2a\x60\x47\x95\x5a\x73\x5c\xb5\xfa\xcf\x51\xaf\xdd\x09\x12\xda\xf6\x73\x7f\xf6\x84\x7d\xb6\x44\x65\x5a\x0a\x7a\xb6\x3b\x95\x89\xd0\xce\x48\x59\x22\xb4\x33\x42\x3b\xdb\x60\xb1\x09\xed\x8c\xd0\xce\x08\xed\x8c\xd0\xce\xc8\xce\x5b\x74\x8a\x0e\x92\xc5\x7d\x3f\xb6\x14\x91\xd0\xef\x0f\x01\x6d\xc3\xb0\xc1\x0e\xa1\xcf\x96\xd6\x72\x2e\xc4\x3c\xeb\xa0\x30\x82\xc0\xce\xe2\xfa\xb7\x57\x0e\x08\xec\xcc\xff\x1f\x49\x2d\x72\xa1\xad\xbe\xe5\x77\x81\x72\xb6\xbb\xc8\x70\x03\xbc\xd9\xfa\x21\xdf\x43\x89\xf6\x52\x98\xfb\xe8\xc2\xdc\x84\x6b\xb6\xb6\x0a\xb5\x0c\xd0\xec\xf8\x83\xf3\x84\x64\x46\xfe\xe7\xe7\x17\xac\x27\x24\xb3\x2e\xf7\x0d\x21\x99\x91\x01\x44\x06\xd0\xec\x24\x1e\x17\x84\xd9\xa6\x26\xd0\x4e\xb1\xcb\x96\x3a\xba\x96\x81\x96\x1d\xbf\x9e\x46\x49\x94\xa4\x97\x9d\xbe\x5e\x76\x40\xea\x0f\x49\xe9\xf8\x0b\x25\x51\x9e\x9a\x4a\xb1\x03\x60\xb2\x9d\x65\x25\xbe\x9a\xe4\xfa\xdb\x74\xdb\xb9\x89\x89\x56\x4a\x24\x96\x7d\xf8\xf8\xf9\xe3\xcd\xc7\xd2\x3c\xb4\x9a\xc1\xf7\x9d\x80\x6a\x51\xe9\x81\xad\xa0\x96\x82\x79\x7e\x73\xba\xca\x15\x0c\xa7\xc5\xa5\xb3\xb0\xeb\x3b\xbb\x18\x66\xee\xd7\x67\x78\x92\xfc\x82\x6e\xfd\x34\xc1\xa6\x08\x29\xa1\x07\x12\x90\x0e\x47\xe2\xcf\x1f\x6f\x3a\x39\x0f\x7f\x16\x96\x0e\x43\x53\x2f\xe8\x30\x74\x7e\x18\x46\x82\xa7\xdb\x39\x0d\x7f\xf9\x78\xf9\xa1\x93\xe3\xf0\x17\xc1\x53\x3a\x0f\x4d\xbd\xa0\xf3\xd0\xf9\x79\xd0\xfe\xed\xad\x1c\x89\x2f\x57\x37\x9f\xbe\xfc\x7a\xdd\xc9\xa9\xf0\xc3\xa4\x83\xd1\xd4\x0b\x3a\x18\x9d\x1f\x8c\x6e\x72\x3c\x16\x77\x84\xf2\x3d\x9a\xc7\x7c\x50\xf9\x1e\x57\xdc\x22\xea\xd9\x48\x00\x28\x93\x5b\xdd\xdf\xbe\x7e\xf6\x8e\x52\x0f\x10\xc6\xbc\x5d\xca\x84\x4a\x27\x5a\x2a\x6b\xdc\xac\x0c\x06\xf2\x9b\x30\xe8\x36\xab\x80\xdd\x5a\x0d\xd5\x1e\xa1\x68\xc6\x23\x1f\xf9\x5b\x31\x60\x91\x59\x1d\xda\x84\x78\x17\x13\xdf\xf8\x78\x92\xf9\x72\x8d\xc7\x91\xce\xa2\x3f\xd4\xf5\xc6\x75\xd0\x9d\xdd\x77\xaf\x5e\x65\x3a\xe1\xd9\x48\x1b\xdb\x60\x49\xbb\x63\x76\x61\xa6\xc6\x8a\x71\x69\x49\x8b\x8c\x1b\x2b\x13\x23\x78\x9e\x8c\x2e\x32\x3d\x1c\x4a\x35\x7c\xf5\x5f\xf8\xdf\xff\xe7\xef\xff\x5e\x18\x91\xbf\xbb\x97\xe3\x64\x34\xed\xb3\x30\x1b\xcd\x3f\xaf\x9b\xee\x32\xb7\x0b\xf6\x91\xec\xb2\xae\x44\xbb\xba\xbc\x79\xff\x97\x4e\xe4\x19\xc4\x7d\x49\x9a\x35\xf5\x82\xa4\x59\xf7\xd2\xac\x7b\x98\x93\x70\x22\xbe\x5c\x77\xe3\x05\xb8\xd2\x86\xdc\x00\x8d\xbd\xa0\xf3\xd0\xfd\x79\xe8\x3a\x7c\x1d\x8f\xc3\x6f\x1d\x9d\x86\x82\x0e\x43\x63\x2f\xe8\x30\x74\x75\x18\xbe\x63\x4f\x0c\xbd\xbc\xfa\xa7\x53\xe2\xb6\x8e\x0e\xb1\xe3\x08\xcc\xef\xd2\x8e\xae\xea\xca\x29\x1d\x34\x3a\x68\xcf\x3b\x12\x43\x87\x82\x0e\x05\xdb\xce\xa1\x38\xea\x88\x0c\x9d\x0b\x3a\x17\x6c\x3b\xe7\xe2\x34\x22\x33\x74\x40\xe8\x80\xb0\x2d\xd9\xf0\x14\xa1\xa1\x08\x8d\xeb\x6a\xc0\xf7\x0f\x40\x45\xeb\x0d\x69\xfe\x17\x8a\x37\x51\xbc\xe9\x39\xc5\x9b\x48\x46\x93\x8c\x66\x5b\x92\xd1\xc7\x1c\x77\xa2\x73\x41\xe7\x82\x6d\xe9\x5c\x1c\x6d\xfc\x89\x0e\x05\x1d\x0a\xd6\xe9\xa1\xf8\x8e\x6d\x1e\x87\x32\x08\x82\x58\x89\x40\x6d\x07\x7e\x0f\xbf\x13\x4c\xc7\x8e\x80\xf8\x3c\x82\x63\x8b\x83\x44\x65\x86\xcf\xbd\x72\x8f\xd0\xd0\x18\xf9\x5e\x0e\xcc\xf7\x42\x68\x68\x0b\x1e\x3c\x06\x34\xb4\xcd\x25\xda\x32\x5c\xb4\x06\x91\x76\x94\xa8\x1b\x84\x8e\x46\x28\x1c\xcf\x0f\x85\x83\xd0\xd1\xba\xdc\x37\x84\x8e\xb6\xd6\xc4\x36\x4a\x31\x32\x88\xc8\x20\x22\x74\xb4\x12\x1d\xed\x29\x7e\x88\x65\x38\x69\xa7\xa2\xb7\x11\x5a\x1a\xe9\x69\xa7\xaf\xa7\x1d\x90\x3a\x44\x52\x3b\xfe\x42\x68\x69\xa7\xa6\x62\x1c\x27\x5a\xda\xee\xe8\x5a\x7f\x6d\xf0\x48\xb6\x22\x6c\xdd\x9d\xa2\x41\x44\xad\xa4\x62\x10\x51\x2b\x11\xb5\x6e\xb0\xd8\x44\xd4\x4a\x44\xad\x44\xd4\x4a\x44\xad\x64\x1d\x2d\x3a\x45\x44\xd4\x4a\x44\xad\x6c\x89\x01\xb5\x6d\xa2\xd6\x26\x7b\xe2\xd0\xa8\x5a\xdb\xd8\x48\x0d\x39\x62\x9b\x58\x48\x44\xd2\x4a\x24\xad\x14\x85\xdb\x99\xc4\x8a\x2e\xb2\xf2\xd0\x3e\xc3\x3b\x7e\xab\x89\x89\x4f\xbd\xe0\x9f\x98\x9a\xb8\xe0\xf3\xc7\x94\x9c\x48\x39\x7a\x0b\x1e\x3c\x86\x1c\xbd\xf5\x35\x89\xa6\xdc\xbc\xe3\x8f\xea\x52\x36\x1e\xb9\x60\x9f\x5f\x94\x97\xb2\xf1\xba\xdc\x37\x94\x8d\x47\x76\x00\xd9\x01\xf3\xd3\x78\x24\xf9\x78\x4f\xb6\x04\x76\xc3\x57\xda\xce\xdb\xd3\x94\x89\x77\xfc\x5a\xda\xc6\xe7\x80\xf4\x32\xd2\xcb\x8e\x48\x2f\x3b\x20\xf5\x87\xa4\x74\xfc\x65\x7b\x52\x7a\xbf\xf9\x77\xcf\x5b\xa9\xd8\x66\x06\xde\x86\x2a\xc5\x77\xac\x4d\x0e\xde\xab\x10\x9f\xaf\x26\xe3\x6d\xe0\x8e\x24\xe9\xd7\xca\x15\xd9\x20\xf9\xb6\xec\x58\x7d\xa6\xf2\x6e\xf5\x52\x2c\x94\x75\x5b\x5e\x10\x72\xdc\xb7\x5e\xa2\xed\x3a\xee\xb7\x65\x69\x85\x1b\x75\xbe\xfa\x69\x73\xab\xeb\xa7\x70\x4b\x3f\x2f\xeb\x8b\xf4\xc6\xed\xcc\x2b\xe9\x8d\xa4\x37\x3e\x51\x6f\xdc\x37\xa2\xd5\x86\xf9\x4a\x84\x65\x85\xbf\xd0\xf9\xa4\xa4\x11\xd2\x3d\x29\x69\xe4\xf0\x80\x9d\x36\x4d\x1f\x39\x15\x68\x00\x4a\x22\xa1\x60\xc5\xf3\x73\xde\x50\x12\x49\x97\xfb\x86\x92\x48\x28\x3c\x45\x76\xc1\xfc\x34\x52\x12\xc9\x76\x60\x9d\x36\x77\x6c\x9e\x8a\xd6\x46\x49\x25\xa4\xa7\x3d\x07\x3d\xed\x80\xd4\x21\x92\xda\xf1\x17\x0a\x0e\xf8\x96\x4f\x4a\xc9\x38\x9a\xe0\x80\x4e\x6b\x5b\x7c\x9b\x60\x4e\x15\xe0\x0b\x3d\x60\xbf\xea\xb4\x2d\xa6\xd3\xfb\xf8\xe2\xec\x4b\x1b\x96\x2d\x03\xb6\xc4\xef\x4e\x11\xfc\x51\xeb\xfb\x31\xcf\xef\x4d\x69\xa3\x3e\x82\x95\x23\x1e\x00\xff\x01\xef\xfe\xe9\x44\xb0\xdb\xb3\x1f\xbf\x7c\xf9\xf9\x97\xcb\xaf\x3f\xdf\x9e\xf5\x01\x0c\x13\xb8\xef\x00\x3b\x42\x83\xe8\x96\xe3\x49\x26\xc6\x42\x59\x76\x17\x5b\x1d\xf3\x29\x93\x43\x85\xc8\x3d\xce\x4a\x76\x36\x96\xbb\xe5\xcb\x47\x78\x2e\x98\xd3\x11\x18\xb7\xa8\x9a\x41\xd3\xe7\x86\xa5\xd2\x24\xb9\x70\x7d\xee\xb3\xf7\x99\x84\xfe\x54\x34\x05\x6e\xdc\xa2\xcc\x34\x94\x0b\x5b\xe4\x4e\x2e\x70\xcb\xb8\x9a\xb2\x58\x64\x2d\x95\x15\xf9\x03\xcf\x7a\x4c\xe9\x1c\xba\x65\x47\x62\x1a\x1a\x29\xbf\x8b\xf2\xdc\x08\x95\xc2\xfb\x61\xcc\x38\x1f\x2c\x2d\xdc\x5d\xcf\x38\x33\x4e\x73\x70\x1d\x0b\x00\x41\xd2\x60\xa7\x70\xfa\x6a\x58\x35\xee\x57\x98\x02\x0f\x39\x33\x12\x6c\x20\xb8\x2d\x72\xc1\x86\xdc\x0a\x36\xb3\x10\xbe\x25\xa1\x9c\xd8\x03\x58\x1b\x3e\x91\xd8\xb9\x45\xcd\x6e\x20\xd9\x1a\xb6\x40\xa7\x76\xe9\x12\x05\xe4\xa4\x51\xc6\x9c\xd6\xe3\x94\x17\xa9\x0a\xe1\x1d\x3a\x15\xa0\x2a\x23\x2c\x7b\x74\x7a\x71\x2e\x6c\x2e\xc5\x83\xdb\x4c\x63\x0d\xfb\xd6\x00\x24\x54\x44\x14\xc2\x05\xef\xb3\x6b\xa9\x12\x31\x83\x41\xe5\x77\xaa\x57\x81\x7a\x2c\xf1\x87\xc3\xed\x6a\xd0\x9e\x02\x86\x52\xec\x08\xbe\x0a\x8d\x73\xa7\x93\x3f\x48\x5d\x18\x06\x1b\x24\xa8\xcc\x70\xd2\x65\xea\x54\xbb\x84\x67\xfe\xb7\x0a\xcb\xe5\x0b\xf1\x2d\x11\x13\x1b\x21\xae\xb0\x49\x3d\x88\x1f\x79\x19\x41\x72\x7c\xff\x5c\x77\x72\x01\xc8\x56\x7c\xb6\x2b\xd2\xdd\x1a\x02\x77\x7a\x54\xea\xe3\xf1\x28\xad\xb3\xd9\xd7\xdc\x1b\xa0\x2b\x8a\x9c\xa1\x5d\xf0\xe8\x61\x86\xd2\x42\x30\xab\x99\xf8\x36\x91\x1e\x3c\xec\xc5\x50\x28\x91\x83\xdf\x7e\xe0\x0c\x04\xab\xd9\x40\x0e\xac\x10\x8a\x8d\xa5\x2a\xac\x30\x2f\x9d\x22\x0a\x7d\x1b\xc8\x61\xc0\x1c\x43\x05\x96\x69\x55\x19\x4b\x6f\xee\x86\x40\xfd\xc8\x2b\xc7\x9c\xfd\xf1\xcd\x6b\xf6\xd5\x63\x03\x7d\x74\x5d\x10\xa9\x37\x3f\xac\x1e\x62\x07\xfd\x93\x71\x44\x56\xdf\x0b\x15\x87\x8c\x6b\xc8\x94\x10\xa9\xc1\xa7\xc0\x06\x52\x16\x70\xa4\x7a\x6e\xc2\x40\x8d\xce\x85\xb1\x3c\x87\x9b\x52\xe6\xf0\x1b\x34\xac\x0b\x5b\x5f\x71\xb8\x23\xfa\xec\x8b\xfb\xf4\xa3\x0c\xf0\x56\xfe\x2b\x6e\x65\xfc\x15\x87\x8e\x30\x68\x27\xf0\x8f\x46\x7d\x1f\x7a\xe8\x96\x47\xc8\x87\xaa\x1d\xe0\x06\x0b\x83\x5b\x39\x2d\xd0\x2e\x74\x18\x9c\x70\x61\x73\x2b\xf1\xcd\xb2\x7b\x31\x45\xf0\xa6\xf8\xe7\xcc\xd9\x87\x96\x19\xc5\x27\x66\xa4\x6d\x8f\x3d\x8e\x64\x02\xf4\xa4\x52\x55\x26\x24\x3e\x1f\x37\xb2\xef\x3e\x1e\xa1\x8b\x08\xf6\x85\x98\x11\xb9\x60\x09\x6a\x79\x3d\x6f\x76\xba\x7f\xe9\x3c\xa0\xc6\x31\x3e\xb0\x02\xf7\xf4\x40\xe6\xc6\xce\x4e\x06\x9a\x77\x9e\x18\x36\x0d\x88\x48\x41\x3f\x06\x63\xc4\x6d\x48\xf7\xbf\xb8\x28\xf7\x62\x8a\xc2\xa8\x6c\xf8\xf6\x2c\x0c\xf9\xf6\xac\x7f\xab\x6e\x55\xdd\x65\x0c\x60\x16\xc5\x04\x11\x30\xf0\x82\x40\x29\x2c\x0d\x5c\xac\xa5\xfc\x83\x95\x83\x0d\xe0\x25\x4d\x75\xf6\x70\x12\x60\x0f\xfe\x15\x95\x21\x7f\x6c\xa2\x54\xf4\xf8\x57\x7e\xc5\xd0\x20\xb6\x6c\x2c\x8d\x01\x69\x57\xb3\xca\x37\x91\x2a\x61\xfb\xed\xc7\x94\x25\x8f\x43\xeb\x85\xda\xa7\xc7\xe1\x92\x19\x51\x02\x99\xb9\x0b\x2d\x97\x09\x5e\x5f\x70\xf4\xf4\xa0\xdc\xb0\x11\xb7\x6f\xea\x0f\x17\x3a\xf2\xeb\x20\x8a\xe2\x41\xe4\x53\x3b\x92\x6a\xb8\xb1\x8d\x7f\xed\x7b\xb4\x9f\x19\x21\xcc\xcb\x67\x84\x79\xf9\xa4\xed\x9f\xf1\x3b\x91\x75\xba\xfd\xa1\xc5\xfd\x6e\xff\x4c\x8e\xa5\x45\xdf\xe3\x98\x7f\x93\xe3\x62\xcc\x54\x31\xbe\x73\x9b\x64\x10\x2f\x53\x83\xb3\xe5\x26\x06\x23\xab\x38\x5b\x09\xcf\x32\xd8\xb2\xa0\x46\x4b\xd7\x17\x84\x77\x9c\xd7\x4d\x9c\xf2\xed\xfe\xf6\xb7\x20\xa5\xfe\x16\x10\x26\x55\x39\xfb\x01\xfc\x11\x37\x2a\xee\x4e\x90\x1f\x09\x57\x61\x3b\x97\x9a\x90\xe1\x63\x77\xca\xa4\x95\x51\x65\xc6\x5e\x3a\xe5\x5e\x94\xba\x8e\xfb\x34\x8e\xc5\x2d\x9a\x33\x9f\xad\x45\x43\x12\xc7\x8e\xaa\x32\x8e\x4d\x3c\x82\xd2\xc0\x55\x55\x42\x38\x35\x65\xac\x0b\x05\xcd\xe0\x28\x5f\x14\x13\xf7\x31\x3c\xd0\xee\x2f\x2f\x83\x6e\x82\xb6\x2a\x07\xe1\x14\xde\x0e\x3b\xc9\xe9\x25\x03\x99\x59\xe1\x34\x54\xa7\x35\x3a\x19\x95\xd4\xad\xeb\x9a\x0d\x81\xf2\x34\x89\xb9\x57\x75\x0d\x13\xa1\x28\xad\xc8\xc7\x52\x89\xa8\x8b\xd7\x4c\x1a\xd0\x84\x1e\xb8\xcc\x9c\x3d\x5b\x7a\x0e\xdc\x90\x93\x91\xd6\x46\xc0\xd1\xb7\x3a\x68\x40\x7e\x2d\xdc\xb4\xf0\x7c\x58\x80\x43\x81\xab\x34\x48\x5b\x98\x24\x37\x36\xdf\x9f\xd8\x74\x39\xbb\x9f\x06\x2c\x6e\xa9\xf2\x56\x0a\xd6\xc9\xcc\x00\xa4\x61\x62\x3c\xb1\xd3\xba\x19\x15\xfd\x02\xdc\x3a\x09\xbe\x6c\x40\xcb\x54\x39\x39\x98\x51\xe4\x50\xf7\x8b\xfb\x72\x58\xf0\x9c\x2b\x2b\x82\x92\x52\xde\xf4\xa6\xbc\x04\x40\x1f\x2c\x40\x6d\x88\x7d\x8f\x6a\x69\x34\xd8\xac\x66\xd2\x98\xc2\xbb\x27\xa4\x1a\x66\xa2\x3c\x21\xd1\x46\x08\x1b\xee\x22\x38\xef\x7b\x6e\x78\xe1\x93\xeb\xe9\xc9\x41\x45\x06\xef\x87\x29\x44\xda\xa8\x2c\x83\x17\xa6\xb8\x33\xee\x61\x65\xe3\x08\xd2\x4a\x18\xff\xc6\x3b\x50\x8c\x1e\x0b\x2b\xc7\xc2\x8d\x7d\x20\xf2\x1c\xc0\x76\x9d\x5e\x5d\xb3\x87\x4a\xf3\xc0\xad\xa8\x50\xa6\xc8\x45\xc4\x87\xf3\x06\x4e\x88\x4c\xe0\xac\xe1\x90\xe1\x60\x82\x29\xc3\xcc\x98\x67\x99\xc8\x59\x32\x2a\xd4\x3d\xc4\x04\x39\x73\x97\x28\xcb\x78\x3e\x0c\x0b\x0d\x27\x1e\x9b\x47\x5f\x91\x11\x02\x36\xde\x44\x1b\x23\xdd\x86\xf3\xd3\x06\x1b\xae\x7a\xbe\x30\x4b\x2c\x2d\xbd\x45\xf0\x1d\x91\xe2\x7a\x80\xf1\xec\xd5\x73\xbf\x87\xbd\x2c\x84\x5e\x3f\x72\x13\x74\xd8\xe0\x11\x73\x73\x32\x6f\x9f\xa0\xd5\xce\x8d\x5b\xe0\xa4\xc8\x10\x03\xb9\xdc\x36\x1b\xc9\x02\x37\x51\x7b\x12\x8b\x04\x05\x4d\x50\xd0\x04\x05\x4d\x50\xd0\xbb\xf3\x14\x94\xaa\x81\xf7\x56\xa1\xa8\x76\xf2\xb2\xf7\xff\xb3\xf7\x6e\xcd\x6d\x23\xd7\xde\xf7\xbd\x3f\x45\x97\xf6\x05\xed\x8a\x45\x45\x53\x4f\x55\xa6\xec\xda\x17\x8a\xad\xc9\xe3\xbc\x33\xb1\xb6\xed\x67\x72\xe3\xd4\x4e\x13\x68\x52\x28\x81\x00\x82\x83\x64\x65\xd7\xfe\xee\x6f\xf5\xea\x03\x00\x12\x24\x41\x08\x20\x0e\xfc\xcf\x8d\x35\x12\x09\xf4\xb9\xd7\x5a\xbf\x75\x90\xa2\xd0\x53\x62\x60\xb6\x1a\x97\xd0\x71\xb2\xd8\xde\x82\x3c\x65\xe4\x17\x2c\x8f\xde\xb8\x78\xa0\x73\xbb\x32\xca\x62\xba\x79\x96\x3d\x29\x16\x62\xe5\x05\x81\xb6\x06\xdc\x7b\x49\x1a\xc6\xcf\x73\xb6\xd1\x34\x29\xea\xca\xe3\xe3\x1d\xbb\x94\xd2\x04\xb9\xa5\x15\x5c\xc6\x8d\xf5\xa1\x20\x2e\xd0\xf3\xe5\xb1\x44\x8e\xca\x61\x2c\xd7\xcb\x82\x4b\xb1\x35\x0c\xd8\xbf\xb2\x30\xce\xd6\x97\x14\x9e\xb2\xf4\xf9\xea\xbd\x7a\xac\x27\x0f\xac\x3f\xea\xe7\x3e\x09\x96\x78\x6b\xe5\x69\x47\xd2\xd6\x13\xdd\x4b\x82\x39\x59\x1c\x8b\x20\xf5\x9f\xd9\x3d\x27\xed\x92\x39\xdc\xb9\x17\x24\x42\x58\x49\x46\x3f\x91\x84\xed\x50\xaa\xa3\x24\xa1\x56\x36\x99\xa7\x4c\x1e\xf4\x29\x55\x6f\x8e\x45\x42\x65\x9c\x57\xde\xa3\x08\x58\xfc\xd8\x64\x75\x6d\x58\xbf\x7a\x52\xe6\xbd\xb5\x90\xa2\x96\xd1\x8b\xe5\xec\x5d\xe5\x4b\x4b\x8b\x3b\x74\xd5\x26\x6a\xd3\x1a\xcd\xdf\x48\xd8\xb4\x00\x63\xb1\xe2\xb1\x4b\x2e\x13\x72\x51\x05\xcf\x8c\x3b\xa9\xf7\xe8\xa5\xcf\xf2\x18\xf4\x02\xf3\x7f\x4d\xc6\x29\x55\x4d\xec\x57\x0f\xfe\xbb\x32\x5f\x86\x71\xbe\xcb\x42\x7d\x88\xc9\xcf\x2d\x48\x44\x54\xf3\xa9\x0e\x5d\xbd\x1a\xd3\x7b\xb1\x56\x42\x61\x92\xc6\x82\xaf\x69\x78\x5c\xf7\xad\x16\xbb\xde\xea\xcf\xca\x6b\x59\x5e\x06\x05\x83\x26\xfb\xaa\x12\x06\x6f\x5a\x49\x9b\x0c\xe1\xd3\x86\x1b\x1d\x7b\xf1\x75\x5a\x49\x92\xe1\x13\x82\x4c\xf0\x9b\x5f\xd8\x9b\x09\x3e\x17\xa9\x3a\x74\xc0\x28\x7b\x21\xf4\x9a\x0e\x5e\x99\xcc\x62\x7d\x77\x1b\xd9\x3e\x5c\x32\xd9\xd8\x43\x4e\x16\xf2\xcb\xda\xa9\x13\x8e\x15\x70\xac\x18\xbb\x63\x05\x5c\x11\xe0\x8a\x00\x57\x04\xb8\x22\xc0\x15\xa1\x77\x57\x04\x30\x6e\x60\x4f\x60\x4f\x60\x4f\x60\x4f\x60\x4f\x60\x4f\x60\xcf\x9d\x97\x00\x48\x04\x48\x04\x48\x04\x48\x04\x48\xc4\x0e\x12\xb1\xf3\x0b\xf2\x65\xef\xd5\xc0\xff\xe7\xf6\x18\xd4\x79\x76\xf9\xdb\xc3\x46\x1e\x79\x5c\x69\xe8\x8a\x5f\xbd\x24\x3d\x47\xc4\x21\x0f\xb0\x41\x62\x8d\x06\xf9\xec\xc6\x9b\x00\x2e\x4c\x5a\x66\x38\x4a\xfe\x66\xfc\x10\xae\x51\x9f\x7b\x19\xb0\x19\x6a\xea\x0d\xd9\x9d\x7a\x3b\x1a\x31\x30\x13\x88\x81\x41\xd6\x0d\x64\xdd\xa8\x68\xcc\x30\xc5\x8d\x91\x24\xdc\x38\xaa\xa5\x3f\x1d\x6c\xa9\xf2\xde\xec\xbd\xa9\x53\x92\xdf\x48\x74\x18\x90\xfc\xf6\x8a\xed\x4a\x09\xa2\x53\x85\x9f\x28\x33\xc8\x41\xc9\xa7\x98\x0d\xe4\xb4\x92\xcf\x48\xd2\x2e\x40\xec\x29\x4e\xf2\x60\xc5\x1e\x04\xba\x9e\x51\xa0\x2b\x22\x7a\x10\xd1\x83\x88\x1e\x44\xf4\x40\x63\xdb\xb5\x8b\x06\xe9\x13\xdf\x8f\x6e\x04\x97\xfe\x9d\x2e\xfd\x43\xd2\x98\xac\x15\xb8\x9b\x8a\x49\x65\xf1\xea\x80\x52\x54\x28\x91\xd4\x8e\xf7\x7e\x41\xb8\x10\x3f\xc8\x27\x67\x21\x7f\xe2\x4e\x3a\x67\xec\x56\xfe\x6b\x7e\xbf\xe6\x1e\x59\xca\x12\xe6\xf8\x59\x92\x8a\x38\xbf\x32\x74\xa6\x79\xdf\x7b\x10\x6c\x66\x53\x55\xce\xa4\x64\x68\xa4\x99\x39\xbb\xf3\x79\x10\x68\xa6\x4e\xf2\x06\xf7\x95\x88\x73\xfd\x73\x93\x33\x98\xda\xd8\x93\x24\x60\x07\xcd\x0a\xd2\x0b\x33\x7c\xb2\xa7\xec\x56\x8d\x98\x3c\xfd\xa3\xc4\x8c\x8e\x76\x5b\xa1\xb4\xfd\x0e\x0f\x0a\x32\xf1\x73\xc7\x03\x25\x1b\x33\x5d\x58\x3a\xec\x2b\xea\xec\xed\x5f\xdd\xd6\xe4\x3a\x29\xbe\x2c\x95\xe3\xda\x7a\x33\x2a\x71\xa1\x12\xd7\x49\x2a\x71\x1d\x25\x30\x14\x4b\x6f\x4d\x02\x1f\xa3\xde\x16\x4c\xab\xe7\x47\x94\x51\x6f\xab\xcd\x75\x83\x7a\x5b\x10\xf7\x21\xee\x8f\xb2\xd4\xd6\x0b\x04\xfe\xae\xaa\x6c\x1d\x69\xc0\x29\x96\xd5\x9a\x84\x44\x06\x87\x3e\x88\x5f\x13\x17\xbf\x06\x24\xe5\xe0\x32\xb6\x7f\x39\x73\x87\xbe\x49\x89\x0d\x9d\x16\xcf\x6a\xdf\x49\xee\x2a\x8a\xc3\x1f\xcf\x5d\xbb\xca\x39\x61\x10\x08\x27\x65\x1f\x6f\x7f\xbd\xfd\x76\x9b\xab\x78\x69\xc8\xe8\xfd\x35\x6a\x6a\xe9\x47\x28\x79\x43\xf9\xa0\xc9\x6f\xdc\x51\xf3\x6b\x9c\x20\x3b\x9b\x7a\xb2\x5d\xbe\x71\x58\x9e\xe1\xe6\xd0\x73\xd8\xed\x06\xa1\x15\x61\xdc\x13\x07\xc2\x47\xcd\xfa\xff\xcb\xed\xb7\x97\x2f\xfe\xbf\x88\x14\x2b\x1f\x2b\x5f\xfd\xba\xe5\x95\x7f\x2f\xb8\xdb\xcd\xd2\xff\xbf\xb7\x37\x1f\x5f\xbe\xf6\xff\xaf\xe0\x2e\x16\x3f\x16\xbf\xfa\x75\xcb\x8b\x3f\xd4\xdf\xee\x64\xfd\x7f\xbe\xfb\xf6\xe9\xf3\xdf\xbe\xbe\x7c\x0b\xe8\x3e\x62\x17\x60\x17\xa8\x5f\xb7\xbc\x0b\x5a\xf0\x27\xd8\xdd\x8a\x31\xf9\x16\xdc\xf1\x54\x25\x41\xba\x17\xec\xff\x7d\xf9\x95\xc9\x56\xcb\x5d\x9b\x25\xc2\x86\x13\xe8\x5c\x26\x7a\x27\x9b\xec\x42\x94\xb1\xc4\x15\x47\x3b\x1c\x6c\x0d\x4b\x1f\xee\x06\xc7\x1e\x6c\x77\x37\xdf\x3e\xfc\xdf\x97\x1f\x6b\x84\xe1\x70\xa8\xe1\x50\x53\xbf\x6e\xfb\x50\x6b\x3f\xef\x81\x59\xfe\x9f\xbf\xb6\xa0\xd3\xdd\x85\x09\x94\x3a\x2c\x7e\xfd\xeb\xb6\x17\x7f\xdb\xc0\xd0\xae\xfd\xff\xd7\xc6\xd2\xcf\xb0\xf2\xb1\xf2\xf5\xaf\xdb\x59\xf9\xaf\x58\x2d\xab\xf7\xd5\xff\x48\x89\xab\xf3\x38\xf1\x8e\x8d\xdf\x7f\xf7\xd2\xfb\xbb\xb2\xe4\x88\xbd\x83\xbd\x73\x46\x46\x70\xec\x00\xec\x00\xd6\xc1\x0e\x18\x95\x31\x1c\x9b\x00\x9b\x80\x75\xb0\x09\xc6\x69\x14\xc7\x6e\xc0\x6e\x60\x5d\xa8\xd2\x30\x8e\x5b\xf7\xe8\x7b\x93\x69\xd9\xa4\xde\x38\xae\x37\xdb\x7f\x81\xa9\xff\x1c\x4d\xfd\x38\xaa\x71\x54\xb3\x2e\x8e\xea\x31\x99\xfc\xb1\x09\xb0\x09\x58\x17\x9b\x60\x34\xa6\x7f\xec\x00\xec\x00\xd6\xde\x0e\x78\xc5\x0e\x21\x80\x44\x65\xa6\x2a\x18\xff\xbb\x49\x8b\xa4\xde\x63\x34\x80\x86\x09\x92\x74\x1a\xad\x1a\x7b\x03\x91\x32\x67\x1d\x7f\x82\x2c\x35\x03\x54\x96\x91\xa5\x66\xc7\x07\xc7\x90\xa5\xa6\xe1\xf9\xbd\x91\xaf\xa6\xe2\x00\x1f\x65\x8c\x34\xb2\xd6\x20\x6c\xfa\xfc\xc2\xa6\x91\xb5\xa6\xcd\x75\x83\xac\x35\x47\x0d\x6c\xe5\xad\x05\xf1\x1f\xe2\x3f\xb2\xd6\x70\xa7\xb1\x7c\xb6\x95\xbf\x66\x2a\x12\x1a\xb2\xd8\x40\x1c\x9b\xb8\x38\x36\x20\xa9\x07\x97\xb3\xfd\x0b\xb2\xd8\x4c\x47\x8c\x18\x41\x16\x1b\x73\xb9\x04\xe9\x63\xe8\x67\x6b\xe1\xf8\xdc\x5b\x77\x6b\xcf\xf7\xbd\x24\x95\x27\x9e\x2a\xc3\x6e\x2a\x17\x85\x4b\x26\xbb\xc6\xee\x6c\x83\x7e\xa7\x06\x7d\x90\x0d\xda\x23\x81\xc8\xa7\x69\x0e\x56\xf5\xcd\x5f\xc2\xf8\xc6\xf7\x6d\x11\x82\x41\x18\xff\x77\x7e\xe1\x4c\xeb\x79\x57\x4e\x1c\x0a\x7c\x57\x7c\xec\xc5\xa7\xc6\xa1\xdd\xd5\x31\x8c\xa0\xa2\x4f\x7f\x97\x6b\xf3\xcf\x61\xf8\xb0\xe6\xf1\x43\x92\xdb\x7c\xd4\x79\x20\x1e\xa9\x30\x93\x12\xb2\x9e\x23\xc1\xbe\x5f\xfc\xf9\xf3\xe7\xff\xef\xb7\x9b\x2f\xff\xdf\xf7\x8b\x39\xfb\x2a\x62\xd9\x40\x5d\xd4\x29\x24\x19\xd9\x5b\x47\xbe\x58\x8b\x20\x65\x0b\xfb\xd4\x35\x7f\x66\xde\x2a\x50\x25\xf5\xbc\x44\xd9\x2c\xa4\x38\x95\x7f\x84\xc7\x82\x49\x61\x9c\xf1\x54\x29\x3d\xf4\xe8\x59\xc2\x5c\x2f\x71\x62\x21\xdb\x3c\x67\x1f\x7c\x8f\xda\x53\x10\xc9\x79\x22\x8f\xbf\x8d\x07\xc5\x22\xcd\x62\x29\x80\xf1\x94\xf1\xe0\x99\xd9\x62\x28\x5e\x90\x8a\xf8\x91\xfb\x6f\x59\x10\xc6\xd4\xac\xf4\x5e\x3c\x9b\x87\xe4\xef\x55\x82\x73\x22\x02\x97\xbe\x6f\xfa\xac\xc6\x83\xb9\x99\x14\xaa\x18\x67\x89\x14\xd1\x65\xc3\x4c\xe5\x3e\x2f\x51\x8d\x52\xc3\x57\x2a\x22\x27\xff\x4a\x43\xa0\x6b\xc1\xdd\x0b\xb6\x14\x3c\xcd\x62\xc1\x56\x3c\x15\x6c\x63\x22\xf4\x93\x44\x20\xe5\x4b\xaa\x37\xc7\x23\x4f\x35\x6e\xd7\x63\x8f\xa4\x2c\x15\xd3\x5f\x8d\x5c\xaa\x2c\x3c\x2d\x10\x24\x29\x82\x4b\x49\xda\x0b\x32\xa1\x8d\x88\x85\x2a\x8b\x89\x48\xd9\x93\x54\xd2\x62\x91\xc6\x9e\x78\x94\x03\xbe\x0e\x69\x6e\x13\xaa\x67\x68\xcb\xe1\xa9\x41\x99\xb3\xaf\x5e\xe0\x88\x8d\x02\x8a\x7a\x36\xb5\x3c\xfe\x96\x39\x7a\x01\xc9\x99\x27\x51\xde\x14\x00\xb4\x0d\x51\x5f\xa5\x87\x73\xa9\x20\x3e\x7a\x61\x96\x30\x1a\x46\xa3\xbf\xd1\x6e\xf0\x5c\xa9\x67\x38\xdc\xd7\x7f\xcb\xf7\x1f\x7b\x2d\x7e\x38\x22\x4a\xad\x97\xa5\x7a\x64\xb8\xb4\x2f\x79\x63\x2b\xbc\xe9\xf6\xc9\xe6\xc4\x82\xca\x32\xf2\xcd\xa6\x78\x72\x67\x09\xb5\x1a\xac\x86\x69\x97\x50\x6e\x1b\xd8\xfc\x9a\xfc\x06\x29\x2e\x22\x66\x4a\x49\x7d\xd2\x35\xf2\xdc\x4c\xb0\x34\x64\xe2\x47\xe4\xe9\xca\x97\xaf\x57\x22\x10\x31\x11\xa2\xa5\xd4\x56\xd3\x90\x2d\xbd\x65\x2a\x44\xc0\xd6\x5e\x90\xa5\x22\x79\x23\x65\x04\x6a\xdb\xd2\x5b\x99\x82\x99\x4a\x9b\x62\x61\x50\xe8\xcb\xdb\xad\x5d\xa4\xae\x38\xad\xa9\x71\xf6\x7f\xae\xff\xc8\xbe\x68\xef\xda\x5b\xd9\x04\xe1\x6a\x5d\x38\x0d\x57\xaa\x81\xfa\x93\xb6\x47\x69\xf8\x20\x02\xdb\x65\x35\x87\x2c\x10\xc2\x4d\xd4\xa7\xf4\x21\x4a\x45\x10\xdf\xca\x01\x23\x9d\x2e\x16\x49\xca\x63\x3a\x4d\xbc\x98\xfe\x46\x0f\x0e\xb3\xb4\x3c\xe3\xb4\x8f\xe6\xec\xb3\x7c\xf5\x93\x67\x6a\x33\xea\xb7\xc8\x99\xd1\xc7\x80\x32\xbe\xd2\x73\x8c\xa7\xac\x55\x3e\xa9\x85\x72\x7a\x84\xf7\x58\x54\x4a\x65\x67\xa9\x73\x07\x87\x85\x9e\x4b\x0d\x26\xc3\xaf\x59\xdc\x81\xf8\x91\xb2\x07\xf1\xac\x2a\x0f\xda\x5f\xfb\x3c\x95\xef\x4f\x02\x1e\x25\xf7\x61\xfa\x96\x3d\xdd\x7b\x0e\xb9\xfb\x7a\x41\x61\x40\xec\xe7\xed\x42\xd6\xcd\x57\x5b\xe8\xd2\xca\x7b\xaa\xfe\x51\x2c\x98\xa3\xf4\x8e\xb7\xda\x06\x22\x7f\x0a\x63\x53\xf2\x94\xf1\x65\x2a\xd4\x9a\x5e\x7a\x71\x92\x6e\x0e\x86\xb2\x35\x78\x81\xe3\x67\xae\x3a\xb3\xb4\x2b\x35\x89\x38\xa4\x19\xcb\x05\x29\xff\x55\x93\xf2\x20\x9e\xd5\x81\x9d\x3f\xf8\xfb\x85\xe9\xf2\xf7\x8b\xf9\xf7\xe0\x7b\x50\xc6\x14\x54\x98\x29\x8b\x54\x35\x27\x75\x40\xa8\x9b\xca\x4b\xe8\x10\xca\xef\x08\x9a\x39\x5a\x00\xfa\x34\x2e\x8e\x9e\x1a\x04\x5a\x83\xbf\xab\x1b\x56\x6f\x1b\x7b\x73\xe8\xe2\x8d\x7a\xc6\x94\x75\x26\x65\x6b\x2f\x49\xe8\x46\x28\x99\x88\x8e\x3d\x79\xcd\xd2\x6b\x87\x70\xd7\x3b\x6d\x6f\x58\x22\xf2\x82\x8e\x72\x6f\xc4\x9e\xa3\x76\x82\x52\x01\x96\x79\xdf\x6d\xfd\xd2\x67\x3d\x4f\x8a\x43\x94\x8b\xc9\x8a\x47\x11\x3f\xa7\xf7\x5e\xb0\x3a\xb6\xfb\xf4\xb4\xaf\xba\x35\xa3\x19\x03\x9f\x2f\x84\xdf\xda\x18\xd0\xd3\xfa\x18\x03\xdf\x5b\x7b\xa9\x32\xa5\xad\xf9\x0f\x6f\x9d\xad\x59\x90\xad\x17\x22\x56\xbd\xd7\xda\x88\x1a\x1f\x39\x14\x8a\x07\xaa\xf1\x71\xb8\xef\xd3\x31\x4c\x17\xb1\x27\x5b\xa1\xaa\x9b\x6e\x9f\x6e\xf2\xfa\x96\xbf\xfb\xa7\x59\xeb\xff\x34\x05\x56\x83\x7c\xbc\x4d\xed\x53\x55\x9b\x58\x6d\x40\x3a\x89\x1c\x1e\x98\x0a\xc6\xf9\x59\x9a\xf0\xb5\x3c\x5c\xbc\xd4\xb3\x97\xae\x6a\xa5\x14\x0f\x44\x7e\x5a\xca\x57\xab\xbe\xc8\x69\x92\x42\x6a\x9a\x2a\x71\x4d\xf5\x5d\x5d\xb6\xaa\x6f\xe2\x89\x8e\x1d\x1e\x14\x4d\xac\xf2\xa0\x5b\x87\x59\x40\x8f\x51\xbd\x7c\x9d\x45\xf2\x65\xaa\x86\xb3\xfc\xcd\x1b\x73\xba\x29\x89\x90\xd3\x81\x6e\xbe\x6d\xd6\x8e\x3c\xd9\x96\x9e\x9f\x0a\x79\xc7\xc9\x7b\x47\x1e\x23\x4e\x59\x86\x2d\x49\x21\xca\x20\xed\x58\x17\xa1\xf2\x1d\xa5\x2a\xb1\xa6\x22\x5e\x7b\x81\xb0\xb7\x79\x49\x28\xa2\xb3\xf4\x91\x7b\xbe\x94\x1a\x73\xf9\x5c\x76\xd9\xb9\x0f\xc3\x44\xd0\x29\x96\x86\xe6\x0c\xd5\x73\x21\x87\x85\xc7\xab\x8c\xc4\x76\x1e\xb8\xe6\x86\xa2\x41\x92\x7d\xd3\xed\xb1\x8f\xce\x47\xf7\xd3\x92\xd9\x25\x95\x0b\x23\x46\xbe\xd9\xe8\x80\x97\x30\xb1\x8e\xd2\xe7\xb2\x20\x66\xa5\x6f\x9e\x4a\x99\x65\x5f\x87\xf6\x5d\x06\xde\x72\xe3\x2a\x50\xb7\x87\x5d\x97\xab\x8c\xc7\x3c\x48\x85\xb1\xf2\xe7\xa5\x94\x93\x7c\xdb\xd3\x8d\x92\x91\xdd\xdd\xb6\xdd\x5e\x6c\x56\xe4\x4b\x43\xe6\x25\x49\xa6\x95\x00\x2f\x58\xf9\x22\xdf\x21\x56\xca\x30\x0b\xee\xd2\xd8\xa2\xa5\xd6\x61\x5f\x79\xdc\x4d\x6b\x2e\x59\xd2\x31\x92\x4c\xb8\x95\xd7\x2d\xe9\x3a\xd9\x22\x91\x1f\x0e\x52\xdb\x03\xb7\x00\x9f\xbf\x69\x35\x25\x09\xd7\x22\xf5\xd6\x42\xf6\x7d\x29\xe2\x98\x6a\x4d\xcb\x9b\xb9\x24\x51\xe5\x02\x86\x9c\x51\x11\x24\x59\x2c\x6c\xb5\x44\x2d\x22\x19\x43\xbb\x1a\x35\xd5\x65\xda\x98\x24\x0c\xb1\x64\xcd\x7d\x5f\xc4\xcc\xb9\xcf\x82\x07\xb2\x2c\x71\x26\x8f\x4d\xe6\xf3\x78\x65\x26\x9a\x76\xbc\x7a\xbc\xd2\xc8\x12\x21\x68\xe1\x45\x61\x92\x78\x72\xc1\xe9\x61\xa3\x05\x57\xdc\x5f\xca\xa3\xc9\xcd\x75\x32\x7a\x8f\x70\xd5\x7c\x90\xf8\xad\x2f\x78\xbd\x86\x75\xf9\x73\x6a\xf5\x13\x4f\x0c\x04\x32\x7a\xa7\x1c\x93\x6d\x09\x47\xc9\xfd\x3c\x91\x13\xec\x64\xbe\x2a\x01\x9e\x2f\x9b\xa3\x4f\x7f\x39\x48\xd5\xa7\x7e\x55\x0d\xf4\x33\x72\xd7\xab\xd7\x1b\xa2\x77\xf9\x69\xa3\x45\x68\xb5\xfb\xe5\x16\x7c\x2b\x4f\xd7\xa7\xc4\xe0\x1e\x35\xd9\xa1\xe3\x64\xb1\xdd\x58\x3c\x65\xe4\x16\x27\x67\x33\x2e\xae\x11\x6e\x25\xc3\xf2\x5d\x6f\x9e\x65\xa5\xc8\x85\x58\x79\x41\xa0\x09\xdd\xbd\x97\xa4\x61\xfc\x3c\x67\x1b\x4d\x93\xb7\xa7\x5c\x43\xef\xd8\xa5\x3c\xa0\xc8\x3f\xa3\x30\x05\x86\x08\x16\x4e\x20\x7a\x7e\x2c\xd6\x21\xf9\xe9\x85\x31\x5f\x09\xb6\xe0\xf2\x26\x0c\x03\xf6\xaf\x2c\x8c\xb3\xf5\x25\x39\x61\x2f\x7d\xbe\x7a\xaf\x1e\xeb\xa5\xb3\x84\xfd\x51\x3f\xf7\x49\xb0\xc4\x5b\x2b\x97\x13\x3a\xc0\x9f\x68\xa9\xdb\x68\x3f\xff\x99\xdd\xf3\x47\x79\x70\x30\x87\x3b\xf7\x82\x4e\x25\x7b\x38\xea\x27\xd2\xfd\x1d\xb2\x20\x0c\xe8\xd2\xab\x6c\x32\x4f\x99\x2f\xa4\x28\xcd\xe5\xa8\x88\xe4\x5e\xfe\xb0\xf2\x1e\xa5\x26\xf4\x78\xec\x22\xda\x10\xc7\x4f\xb9\x9a\xbe\x79\x6b\x21\xcf\x6b\xa3\xaf\xcb\xf9\xba\xca\x17\x93\x3e\x33\x69\xcf\xaa\x70\x4a\xd7\x28\xc0\xe6\x9a\xa6\x25\x17\x8b\x15\x8f\x5d\xc2\x88\x72\x19\x05\xcf\x8c\x3b\xa9\xf7\xe8\xa5\xcf\xf2\x60\xf7\x02\xf3\x7f\xc7\x8e\x4c\xaa\x9a\xf7\x55\x38\x61\xe0\xee\x30\xd1\x74\x74\x6a\xfc\x5d\xe9\x4d\x61\x9c\xef\xa4\x50\x57\x81\x97\x9f\x5b\xd0\xcd\xa2\xe6\x4d\x55\xad\xd7\x2b\x2e\xbd\x17\x6b\x75\x97\x28\x0b\x38\x0d\x88\xeb\xbe\xd5\xa7\xf5\x5b\xfd\xd9\x75\xf8\x48\x02\x49\x41\x93\x62\x5f\x55\xd5\xdd\x4d\xf5\xec\xd8\x41\xab\x30\xd8\x37\x36\x67\xe9\x9f\xfe\x51\x0b\xd9\x24\x5d\xa7\x5e\xd2\xb5\xf8\x75\x7d\x7e\xbd\x0a\x37\x2d\xc9\x7b\x10\x8d\xfa\xbe\x82\x34\x1f\xec\x43\xf6\x3d\xa0\x61\xf5\x6a\x98\x97\x27\x6c\x5e\xae\xe7\xa1\x70\xc8\xc4\xdc\x61\x55\xf0\x66\x0e\x4c\x9d\x38\x91\xab\xe4\x66\x26\xe4\xab\x1e\x45\xdb\xbf\xb5\x60\x3a\x87\xe9\x1c\xa6\x73\x98\xce\xa7\x66\x3a\xaf\x77\xab\x54\x9a\xcf\x4f\xe6\x92\x08\xcf\xd1\xda\x13\xd5\xa7\xe7\xe8\xc9\x78\xc7\x11\xbe\x9a\x95\xf6\xfe\x93\x8d\xc8\xb7\xa2\xe6\xea\x05\x2c\x51\x0a\x25\x5b\x88\xa5\x92\x9c\xad\x6d\x2c\x17\x25\xf4\xe9\x45\x4b\xa7\xe0\x2b\x1b\x84\xc1\x65\x20\x56\x9c\x16\xa8\xd6\x3d\x8b\x3e\xb5\xca\x4e\x6e\xb7\x86\x56\x59\xbc\xf5\x5a\xb8\x1e\x4f\x85\xff\x9c\x8b\xb4\xf9\x95\xeb\xf9\x6f\xb5\x6e\x49\x83\xce\x56\x31\x77\x68\xd7\x78\xa1\x6b\x05\x82\xfc\xd2\x26\x7d\xc1\xac\xd2\x2c\x91\x8d\x2c\x4e\x17\x97\xdf\x34\x1d\xd2\x2f\x59\xaa\x33\xd0\x3c\x62\xae\xda\xa9\x62\x71\x2a\xda\xd8\x60\x9a\xa9\xcd\x77\xd4\xe4\x2a\x7d\xfd\x80\xc6\x3e\x94\xe5\x7f\x0c\xea\xaa\x37\x2e\xbb\x71\xd7\xc9\x96\x3f\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x57\x67\xe0\xab\xe6\x5d\xb0\x05\xbf\x4e\x77\x2d\x7e\x14\x51\x2c\xa4\x50\xe2\xbe\x63\x91\x2f\x78\x22\xec\x11\x74\x17\x87\x11\x5f\x91\x74\x74\x17\xfa\x9e\xf3\x5c\xb2\x83\x99\x45\xe7\xda\x07\xc8\x65\x77\x3d\xff\xd3\x9c\x7d\x55\xe7\x99\x12\x5d\x22\x11\xc8\xcd\x92\xdf\xa9\x82\x85\x71\x74\xcf\x03\x63\x97\x8b\x33\x71\xb5\xe4\xbe\xd1\x95\xbf\x5f\xa8\x3f\x7f\xbf\x60\x4b\x2f\xe0\xbe\xf7\x6f\x73\x91\x2c\x04\xe3\xae\x4b\xab\xf3\x4a\x99\xca\xdd\x5c\x0d\x53\x8f\x9f\x25\xf9\x97\x94\x7e\x3a\x67\xb7\x1e\x1d\x8e\x85\xa6\x87\xf1\x76\xdf\xe8\xf8\x51\xa6\x22\xa5\x1e\x93\x8e\x12\xa6\xf7\x4d\x26\x54\xf5\xe0\xa3\xe9\xfb\xc9\x4c\x7c\xdb\x8a\x19\x75\x5d\x6e\xd8\xfb\xf0\x89\xad\x78\xbc\xe0\xab\x92\xa5\xdc\x2a\x35\x22\x5e\x86\xf1\x5a\xce\x49\xe5\x78\x7d\xde\xe8\xd1\xee\xe1\x22\xa1\xd7\x48\xac\x91\x1a\x5b\x4f\x4a\x93\x8e\xe7\xe6\xaa\x30\xc9\x0a\x2a\xa0\xdb\xcc\xb1\xbc\xac\xf5\x4d\x6a\xa4\x81\x79\x61\x32\xcd\x3d\x62\x54\xed\x4b\x6b\x63\x2e\xbf\x6c\xce\x6e\x1c\x47\x44\x2a\x0a\xad\xa8\xd9\xcd\x54\x1f\x66\xec\x52\x2f\xc0\xf2\x02\x4d\xde\xb3\xd9\x9f\xb9\xf3\xb0\x8a\xc3\x2c\x70\xe5\xa7\xc8\x56\x4b\x1f\xda\x18\x38\x25\x42\x6a\xf9\xb8\xfc\x10\xd3\x83\x85\x7d\xd2\x7b\x36\xfb\x25\x8c\x45\xe1\xb1\xcc\xe1\x89\xc3\x5d\xd9\x7b\x3d\x3e\xca\x9c\x4f\xcf\x4b\x94\xea\xb9\xf5\xc0\xa5\x7d\x46\x93\x05\x19\x6d\x2e\xf7\x1e\x2d\x05\xa0\xd4\xe3\xa1\xd4\xf5\x56\xd7\x3e\x52\x7d\x3a\x65\xbe\x4f\x66\x5d\x6f\x9c\xf6\x70\xeb\xd3\x5d\xf8\x43\x25\xd8\xf5\x86\x70\x9b\x62\x23\xf1\xc6\xde\xe9\x6e\x33\x22\x6e\x0f\xd1\xd3\x79\x15\xea\xa1\xbc\x49\x05\xc4\xa9\x6b\x3b\x17\xa9\x4e\x17\x1c\xd7\x30\x2e\xae\xe7\x80\xd9\x46\xb1\xb2\x70\xbe\x80\xf3\xc5\xa8\x9d\x2f\xe0\xae\x00\x77\x05\xb8\x2b\xc0\x5d\x01\xee\x0a\xbd\xbb\x2b\x80\x83\x03\x8d\x02\x8d\x02\x8d\x02\x8d\x02\x8d\x02\x8d\x02\x8d\xee\xbc\x04\x40\x2b\x40\x2b\x40\x2b\x40\x2b\x40\x2b\x90\x28\x70\x1f\x16\xd9\x99\x28\x10\x39\x02\x2b\x3e\x36\x14\x0c\xd2\x20\x3d\xe0\x58\x52\x06\xbc\xda\x98\xa9\x2e\xaa\x64\x92\x5c\xce\xf8\x31\x78\x47\x7d\xa7\x3d\xc0\x33\xd0\x8c\xec\x5b\x5d\xab\x77\x02\x20\xc6\x66\x02\x31\x36\xc8\xce\x8e\xec\xec\x15\x8d\x19\xbe\xa8\x32\x8e\x4c\xed\xcd\x5b\xfd\xd3\xc1\x56\x2b\xaf\xd1\x41\x35\x7b\x4a\x32\x21\x89\x20\x03\x95\x09\x5f\xb1\x3a\x69\x4c\x74\x49\xd9\x13\x65\x33\x39\x4a\xb2\x2a\x66\x30\xe9\x4f\xb2\x1a\x49\xaa\x08\x88\x52\xc5\x49\x1e\xac\x28\x85\xe0\xdc\x33\x0a\xce\x45\x14\x12\xa2\x90\x10\x85\x84\x28\x24\x68\x81\xbb\x76\xd1\xc0\xb4\x40\xe8\x53\xac\x5f\x7d\x4a\xab\x1e\x03\xd5\xa8\xac\xe5\xb9\xf5\x60\x03\x82\xd2\x65\xd1\xea\x08\x45\x49\x7e\xbb\xb3\x08\x83\x82\xc0\x21\x7e\x90\xdf\xd0\x42\xfe\xc4\x9d\x74\xce\xd8\xad\xfc\xd7\xfc\x7e\xcd\x3d\xb2\xc8\x25\xcc\xf1\xb3\x24\x15\x71\x7e\x8d\xe8\x02\xc7\xbe\xf7\x20\xd8\xcc\xd6\x05\x9b\x49\x69\xd1\x48\x38\x73\x76\xe7\xf3\x20\xd0\xdc\x9f\x64\x10\xee\x2b\xb1\xe7\xfa\xe7\x26\xe7\x32\xb5\xb1\x27\xe9\xc0\x0e\x9a\x15\xae\x17\x66\xf8\x64\x4f\xd9\xad\x1a\x31\x79\x23\x44\x89\x19\x1d\xed\x5a\x43\xd5\xa2\x1d\x1e\x14\xe4\xe4\xe7\x8e\x07\x4a\x36\x66\xba\x40\x77\xe2\xd7\xd6\x94\xce\x7f\x79\xb0\x0e\xfd\xf0\x6f\x80\x58\x09\x97\x68\xb3\xc7\xfe\x56\x78\xa6\x14\xf6\x7d\x35\x50\xa5\x7f\x4b\x7f\xd9\x43\xfe\x3a\xce\xa7\x3d\x5e\x70\x4c\xee\x17\xb5\x2e\xf0\xcd\xb3\xe9\x92\xbe\xfb\x87\xfd\xc7\xd4\x5a\xc4\x2b\x51\xeb\x93\x49\x1a\xf3\x54\xac\x3c\xe7\xb2\xfe\x77\xa8\xda\xbf\xfe\x24\x1d\x88\x75\x04\x0c\xf2\xd7\xa3\x70\x20\xe5\x2a\xd4\x5c\xd8\xa0\x17\xf7\x6d\x94\xed\x0a\x77\xef\x31\xd9\xde\x95\x7d\x76\x18\x4c\xb5\x13\x37\xd5\x9e\x0f\xf5\xde\x70\xad\x37\x9b\x4b\x85\x7f\x44\xca\x1b\x56\x87\x14\xbf\xde\x71\x12\xbd\x21\x43\x95\x8a\xf9\xe4\x3e\x7d\x33\x08\x83\x4b\xf5\x6d\xfa\x04\xd9\x8a\x13\xf6\xfa\xaf\x49\x18\xdc\xa9\xc8\xda\xdf\xe4\x99\xa7\x7f\xfe\x6a\x4e\xc2\xfc\x97\x6f\x86\x84\xe3\xeb\xaf\x9b\x5f\xc2\xd8\x21\x63\xfa\x2a\xa4\xc9\x0f\xd9\xf7\x8b\xa5\xfc\xdd\xf7\x0b\x76\x53\x1a\xcd\x39\xfb\x94\x6a\xcb\x37\x09\xfd\x7a\xa3\x5e\x72\x87\x26\x80\x62\x33\x7d\xcf\xd1\xb6\x3c\xd2\x11\xc2\x27\x3d\xb7\x2a\x76\x31\x12\x61\xe4\x8b\x39\x53\xef\xa4\x90\x6c\xb3\xa6\xc8\x5d\xba\x72\x22\xec\xeb\x9b\x0c\xaf\x7c\x11\x54\x05\xf5\x07\xa8\x0a\x7d\xa2\xf7\x0d\x0f\xdc\x81\x2a\x0b\x59\xeb\x96\xa2\xc8\xe7\xce\x0b\xe4\x37\xfd\x80\xa9\x4a\x70\x70\x58\x84\xe8\x76\x46\xa2\xdb\x80\x24\x24\x5c\xe4\xf6\x2f\x70\x58\xac\x6c\xf5\xa4\xc4\x8f\x6c\xb0\x96\xca\x57\xec\x08\xc7\xbf\xab\x44\xe5\x38\x2b\xf8\xff\x75\x43\xb7\xd4\x7b\xcc\xb5\xd4\x32\xe7\xd2\x89\xda\x70\xf0\x60\x0b\x57\x7c\x01\xb0\x01\xb0\x01\xb0\xa1\x47\xd8\xd0\xc2\xd9\xbf\x07\x3b\x54\x1c\xfe\xa3\x54\x5d\x01\x1f\xa0\xc1\x9e\x9f\x06\x0b\xf8\xd0\xe6\xba\x01\x7c\x80\xcd\x02\xaa\x03\xe0\x03\x7d\xb0\x33\xf8\xd0\x8a\x2e\xbf\x07\x43\x4c\x45\xa2\x03\x8c\x80\x28\x77\x46\xa2\xdc\x80\x24\x26\x5c\xec\xf6\x2f\x80\x11\x95\xad\x9e\x94\x38\x32\x36\x18\x11\xba\xdd\x12\x87\x03\xc5\x3b\x42\x77\x8f\x64\x52\xa8\xd7\x11\xba\xbf\x84\xf1\x8d\xef\xdb\x88\x95\x41\x20\x86\x9d\x5f\x38\xd7\x04\x75\xa1\x8b\x9c\x74\x15\x1f\x7b\xf9\xce\x0f\xdd\xd3\x61\x0b\x54\xb2\x99\x70\x25\x9b\xc3\x0c\xe6\x50\x15\x9b\xbd\x76\x9e\x16\xf8\x12\x6a\xd7\xa0\x76\x0d\x6a\xd7\xa0\x76\xcd\xd4\x6a\xd7\x1c\x3e\x79\x2b\xeb\xd6\x74\x4c\xf3\x4f\x56\xad\xe6\x70\xf7\x77\x57\xaa\x19\xf2\x18\x1c\x53\x9f\xe6\xf0\x18\xec\xae\x4d\xd3\xf1\x18\xa0\x22\x0d\x2a\xd2\xa0\x22\x0d\x2a\xd2\xa0\x22\x4d\x67\x15\x69\x6a\x9c\xfe\x5b\xd5\x68\xf6\x26\xc8\x3b\x23\x67\xbe\x7a\xbd\x41\x45\x9d\x91\x55\xd4\x39\xbc\x88\xf6\x55\xd3\xe9\x78\x35\xf5\x5a\x43\xe7\xf0\xc8\xec\xa9\x9f\xd3\xf5\xa9\x31\xd4\xaa\x39\x87\x07\xad\xc2\x18\xdf\xd8\x9c\xa5\x7f\xfa\xc7\x2e\xb0\x92\x8a\x75\x44\x0a\x79\xbf\x80\xe5\x9b\x6e\x46\x5d\xd0\x62\x3e\x0f\xe0\xb2\x39\xf2\x83\x04\x2e\x66\xba\x00\x5e\x2a\x3e\xd6\x06\x78\xa9\xd8\x3f\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x47\x1c\xfb\x00\x30\x00\x30\x00\x30\xd5\xab\x09\x00\x66\xe7\x3e\x03\x80\x39\x04\x60\x62\x61\x4d\xfe\xf2\xba\x8d\x43\x79\xd9\xf5\x89\x62\xbe\xe4\x0d\xfa\x60\x1b\x54\x0b\xca\x54\x7e\x13\x78\x66\x73\x36\x86\x87\x67\x2a\x27\x0e\xa0\xa6\xe2\x63\x2f\x06\x35\x87\x76\x17\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\x0d\x90\xcd\x11\xc7\x3e\x90\x0d\x90\x0d\x90\x4d\xf5\x6a\x02\xb2\xd9\xb9\xcf\x80\x6c\x0e\x23\x1b\xd5\xce\x7f\x65\x61\xca\xfb\x45\x35\xaa\x21\xff\x25\x1b\x52\x13\xd1\x14\xbe\x01\x34\xb3\x39\xfa\x43\x44\x33\x85\x09\x03\x92\xa9\xf8\x58\x0b\x48\xa6\x7a\x17\x01\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x1c\x71\xec\x03\xc5\x00\xc5\x00\xc5\x54\xaf\x26\xa0\x98\x9d\xfb\x0c\x28\xe6\x10\x8a\x49\x84\x13\x8b\xb4\x4f\x06\xf3\x95\x5a\x50\x0b\xbe\xa8\x8f\x82\xba\x6c\x8e\xf7\xf0\xa8\x8b\x9a\x29\xe0\x96\x8a\x8f\xbd\x18\xb7\x6c\x6d\x18\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x16\x70\x96\x23\x8e\x7d\x70\x16\x70\x16\x70\x96\xea\xd5\x04\xce\xb2\x73\x9f\x81\xb3\x1c\xe6\x2c\xf1\xa3\xe7\x08\xee\x38\x52\x62\xec\x97\xb7\x50\x4b\x6e\x54\x4b\x6a\x72\x97\xe2\x57\xc0\x5f\x36\xc7\x7f\x88\xfc\xa5\x38\x63\xe0\x30\x15\x1f\x6b\x81\xc3\xec\xd8\x48\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\x47\x1c\xfb\xe0\x31\xe0\x31\xe0\x31\xd5\xab\x09\x3c\x66\xe7\x3e\x03\x8f\xa9\xc9\x63\x06\x00\x62\x8e\x21\x30\x40\x2f\x9b\x23\x3e\x58\xf4\x02\xe6\x52\xf1\xb1\xb6\x98\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x4b\x4b\xa7\x2d\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\xcb\xc1\xb1\xda\x0b\x5b\xe8\x45\x57\xca\x2e\xb2\xe6\x51\xb7\xd0\x45\xcb\x37\x81\xeb\x3d\x7a\x6e\xc6\xfd\xe2\xb4\x70\xab\xc3\x7c\xa0\xc6\xfc\xc6\xa3\x39\x73\x45\x14\x0b\x47\x5e\x57\xef\xac\x90\x39\xa3\xa7\xcc\x72\x8b\x55\xc9\x04\x61\x31\x0d\xf3\x82\x24\x15\xbc\x74\x1b\x6c\x42\x1c\x7a\x92\xa2\x38\xf6\xa5\xbf\x7a\x09\xc2\x68\xb6\x26\x72\x30\x2c\x67\xcd\x9d\x7b\x2f\x10\xf1\xf3\x3c\x7a\x58\xc9\x5f\x24\x73\xa9\x86\xcd\x1f\xaf\xe7\xb4\xdb\x6f\xa5\x3e\x73\x8e\x70\x87\x26\xaf\x5b\xc2\x63\xf7\x08\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x4f\x4b\xa7\x2d\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\x0f\x18\xcf\xc1\xb1\xaa\xc1\x78\x44\xe0\x46\xa1\xd7\x75\x82\xb3\x7a\x88\xe7\xd6\xb4\xe5\x94\x88\xc7\xbe\x14\x88\xa7\x6a\x22\x81\x78\x80\x78\x2e\xec\x1e\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x69\xe9\xb4\x05\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x01\xe2\x39\x38\x56\x75\x10\x0f\xd9\x49\x87\xc0\x77\x64\x43\x4e\xca\x76\xe4\x0b\xc1\x75\xaa\x26\x10\x5c\x07\x5c\xe7\x42\x8d\x2d\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\xce\x00\x78\x06\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x0e\x98\x4e\xb9\x37\x60\x3a\x60\x3a\x60\x3a\x60\x3a\x67\xcc\x74\x68\x71\xc4\x34\x44\x03\x00\x3b\xbf\xca\xd6\x7c\x91\x7f\x38\x25\xdd\xc9\xdf\x0a\xc4\x53\x35\x95\x40\x3c\x40\x3c\x17\xf9\x26\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x69\xe9\xb4\x05\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x01\xe7\x39\x38\x56\x35\x38\x4f\x90\xf3\x8c\xfe\x31\x8f\x85\x2b\xa7\xa4\x3c\xf6\xa5\xbf\x6e\xd8\xc9\x01\x75\x00\x75\xd8\x79\x42\x1d\xbb\x27\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\x5a\x3a\x6d\xc1\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\xc0\x74\x0e\x8e\xd5\x51\x4c\xe7\xea\x7f\xec\xcf\xff\x7b\xa5\xcc\x25\x6b\x1e\x0d\x01\xf5\xd8\xa2\xee\xbd\xa0\x1e\xd7\xbe\x1e\xd0\x07\xd0\x07\xd0\x87\x36\x8a\xdd\x13\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x2d\x9d\xb6\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x67\x07\x7d\x74\xaf\x65\x03\x68\x2a\x79\x96\xde\xb3\xc4\x09\x23\xf1\x96\x25\x99\x43\xf6\x7a\xd2\x57\x04\x5f\x2b\xfb\x6d\x14\x87\x34\xca\x55\x5d\x8b\x78\x7a\x5f\xdd\xb3\xa0\xda\x77\x55\xae\x3f\x29\xe9\xeb\xd6\x9f\xf0\xbe\x03\xed\x02\xed\x02\xed\xaa\x5e\x4d\xa0\x5d\x3b\xf7\x19\x68\x57\x4b\xb4\x4b\xfd\xfa\x7f\x4f\x00\xbd\x8a\xa4\x2b\x30\xd7\x7c\xb8\x64\x0f\x5e\xe0\xb6\x4c\xbc\xde\xe6\x62\x3d\xa9\x2e\x5a\x04\x94\x9a\x41\xae\xaf\xcc\x4a\x7a\x6e\xe1\xd9\xcd\x79\x19\x58\x19\x58\xd9\x28\x58\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x19\x38\x59\xdd\xd3\xff\xe4\x9c\x8c\x00\x99\x1e\x81\x1d\xa6\x86\x3a\x08\x6c\x28\xf4\x0b\xd8\x0f\xd8\x0f\xd8\x0f\xd8\x0f\xd8\x0f\xd8\xef\x04\xd8\x4f\x04\x6e\x14\x7a\x41\x3a\x84\x18\xb7\x5b\xd3\x96\x7e\x62\xdc\xec\xeb\x11\xe3\x06\x6e\x37\x1a\x6e\xd7\x6d\x8c\x9b\xdd\x13\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x2d\x9d\xb6\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x60\x77\x67\xc7\xee\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x4e\x09\xbb\x06\x12\xe2\xd6\x2e\xf0\x3a\x71\x88\x5b\x15\x1a\x00\x2a\x03\x2a\xdb\x78\xea\x80\x50\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x19\x30\x59\xdd\xd3\xbf\xd7\x10\xb7\x1d\xa6\x06\x84\xb8\x55\xf7\x19\xd4\x0f\xd4\x0f\xd4\xaf\xee\x22\x02\xf5\x03\xf5\x9b\x1e\xf5\x23\x33\xf8\x10\xe2\xdb\x64\x43\x7a\x8a\x6d\x93\xaf\x46\x5c\x1b\x60\xdd\x68\x60\x5d\xc7\x71\x6d\x34\xb6\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x03\x00\x55\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x80\x75\x63\x84\x75\xa0\x5b\xa0\x5b\xa0\x5b\xa0\x5b\xa0\x5b\xa0\x5b\x27\xa3\x5b\x43\x09\x68\x6b\x8d\x70\x9d\x3a\x98\x6d\x83\x07\x80\x8d\x81\x8d\x6d\x3c\x75\x40\x6c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x0c\x5c\x6c\x90\x5c\xac\x14\xc4\xb6\x6d\x66\x40\x00\x5b\x75\x9f\x81\xf8\x80\xf8\x80\xf8\xea\x2e\x22\x20\x3e\x20\xbe\xc9\x21\x3e\x5a\x33\x31\x8d\xdc\x00\xa2\xd8\x7e\x95\xad\xf9\x22\xff\xd0\x4f\x28\x5b\xfe\x7e\xc4\xb3\x81\xd9\x8d\x86\xd9\x75\x1b\xcf\x96\x6f\x0a\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\xbb\x96\x4e\x5b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\x3b\xc0\xbb\xb3\x83\x77\x20\x5e\x20\x5e\x20\x5e\x20\x5e\x20\x5e\x20\x5e\xa7\x25\x5e\x03\x89\x6c\x6b\x99\x7a\x9d\x38\xbc\xad\x12\x0f\x80\x97\x81\x97\x6d\x3c\x75\x40\xbc\x0c\xac\x0c\xac\x0c\xac\x8c\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\x81\x95\xd5\x3d\xfd\x7b\x0d\x74\xdb\x65\x6b\x40\xb4\x5b\x75\x9f\xc1\xfe\xc0\xfe\xc0\xfe\xea\x2e\x22\xb0\x3f\xb0\xbf\xc9\xb1\xbf\x48\x36\x9e\x44\xa2\xc7\xd0\xcf\xd6\xc2\xf1\xb9\xb7\x1e\x42\xe0\xdb\x9d\x6d\xd8\xef\xd4\xb0\x0f\xb2\x61\xfd\xc4\xc0\x55\x36\x05\xe1\x70\xc0\x7b\xa3\xc1\x7b\xdd\x86\xc3\x55\xee\x0f\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\xbe\x96\x4e\x5b\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\x3e\xd0\xbe\xb3\xa3\x7d\xa0\x63\xa0\x63\xa0\x63\xa0\x63\xa0\x63\xa0\x63\xbd\xd1\xb1\x81\x04\xc9\x75\x47\xc8\x4e\x1c\x2f\x77\x88\x1f\x80\xad\x81\xad\x6d\x3c\x75\x40\x6c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x0d\x5c\x6d\x14\x5c\xad\x18\x45\x57\xc3\xec\x80\x80\xba\xea\x3e\x03\x19\x02\x19\x02\x19\xd6\x5d\x44\x40\x86\x40\x86\xd3\x43\x86\xa1\x3b\x88\xf0\xb9\xd0\xed\x29\x58\x2e\x74\x11\x1a\x07\x7c\x37\x1a\x7c\xd7\x71\x68\x5c\xe8\x02\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\xb5\x74\xda\x02\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x01\xd8\x9d\x1d\xb0\x03\xd5\x02\xd5\x02\xd5\x02\xd5\x02\xd5\x02\xd5\x3a\x11\xd5\x1a\x4a\xd8\x5b\x4b\x64\xeb\xd4\x41\x6e\x25\x12\x00\x26\x06\x26\xb6\xf1\xd4\x01\x31\x31\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\xb0\x01\xf2\xb0\x52\x00\xdb\xa6\x91\x01\xe1\x6a\xd5\x7d\x06\xd8\x03\xd8\x03\xd8\xab\xbb\x88\x00\xf6\x00\xf6\xa6\x08\xf6\x52\xb1\x8e\xc8\xde\x32\x8c\xb0\xb5\x6f\xba\x39\xbd\x85\xaf\x99\x06\x20\x8c\x0d\xc8\x6e\x34\xc8\xae\xf3\x30\x36\xb3\x2b\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x5a\x3a\x6d\x81\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\xce\x0e\xdf\x81\x7a\x81\x7a\x81\x7a\x81\x7a\x81\x7a\x81\x7a\x9d\x98\x7a\x0d\x27\xac\xad\x55\xf2\x75\xfa\xf0\xb6\x0a\x42\x00\x66\x06\x66\xb6\xf1\xd4\x01\x31\x33\xf0\x32\xf0\x32\xf0\x32\xf5\x47\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\x32\xf0\xb2\x41\xf2\xb2\x8d\x70\xb7\x6a\x63\x03\xc2\xde\xaa\xfb\x0c\x00\x08\x00\x08\x00\x58\x77\x11\x01\x00\x02\x00\x4e\x0e\x00\xc6\xc2\x72\x1e\x29\x55\xc5\xa1\x94\x69\x86\x10\x00\xf7\x25\x6f\xd8\x07\xdb\xb0\x7e\x42\xe1\x2a\x9b\x82\xa0\x38\x00\xbe\xd1\x00\xbe\x6e\x83\xe2\x2a\xf7\x07\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x5f\x4b\xa7\x2d\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\x1f\x70\xdf\xd9\xe1\x3e\xd0\x31\xd0\x31\xd0\x31\xd0\x31\xd0\x31\xd0\xb1\xde\xe8\xd8\x40\x02\xe5\xba\x23\x64\x27\x0e\x99\x3b\xc4\x0f\xc0\xd6\xc0\xd6\x36\x9e\x3a\x20\xb6\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x06\xae\x36\x0a\xae\x56\x0c\xa3\xab\x61\x76\x40\x40\x5d\x75\x9f\x81\x0c\x81\x0c\x81\x0c\xeb\x2e\x22\x20\x43\x20\xc3\x09\x22\x43\xd5\x89\x7f\x65\x61\xca\x87\x11\x48\xa7\x1a\xf4\x5f\xb2\x41\x7d\x05\xd0\x15\x9a\x80\xc0\x39\xc0\xbd\xd1\xc0\xbd\xae\x03\xe7\x0a\xfb\x02\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\xaf\xa5\xd3\x16\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\x0f\x60\xef\xec\xc0\x1e\xe8\x17\xe8\x17\xe8\x17\xe8\x17\xe8\x17\xe8\xd7\xc9\xe9\xd7\x60\x02\xe5\xda\x26\x60\x27\x0f\x90\xab\xe6\x04\x60\x67\x60\x67\x1b\x4f\x1d\x10\x3b\x03\x37\x03\x37\x03\x37\x33\x7f\x04\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x03\x37\x1b\x24\x37\x2b\x07\xc4\xed\x34\x37\x20\x10\xae\xba\xcf\x40\x81\x40\x81\x40\x81\x75\x17\x11\x50\x20\x50\xe0\xe4\x50\x60\x22\x9c\x58\xa4\x43\x88\x80\xfb\x4a\x2d\xe9\x27\xf4\x4d\xbd\x1b\x31\x6f\xe0\x76\xa3\xe1\x76\xdd\xc6\xbc\xa9\x0d\x01\x68\x07\x68\x07\x68\x07\x68\x07\x68\x07\x68\x07\x68\x07\x68\xd7\xd2\x69\x0b\x68\x07\x68\x07\x68\x07\x68\x07\x68\x07\x68\x07\x68\x77\x76\xd0\x0e\x84\x0b\x84\x0b\x84\x0b\x84\x0b\x84\x0b\x84\xeb\x74\x84\x6b\x20\x51\x6e\x2d\x52\xae\x13\x87\xb7\x6d\x21\x01\xf0\x31\xf0\xb1\x8d\xa7\x0e\x88\x8f\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x0d\x93\x8d\x15\x03\xda\xaa\xec\x0c\x88\x64\xab\xee\x33\x38\x1f\x38\x1f\x38\x5f\xdd\x45\x04\xce\x07\xce\x37\x41\xce\x17\x3f\x7a\x8e\xe0\x8e\x23\x75\x82\x61\x44\xb4\x51\x8b\x6e\x54\x8b\xfa\x8a\x6c\x2b\xb6\x01\x11\x6e\x20\x78\xa3\x21\x78\x5d\x47\xb8\x15\x37\x06\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x5e\x4b\xa7\x2d\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\x1e\x68\xde\xd9\xd1\x3c\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\xb0\xd3\x13\xb0\xc1\x44\xbc\xb5\x4e\xc1\x4e\x1e\xf9\xb6\x03\x15\x80\x9f\x81\x9f\x6d\x3c\x75\x40\xfc\x0c\xec\x0c\xec\x0c\xec\xcc\xfe\x11\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x0c\xec\x6c\x90\xec\xac\x1c\x09\xb7\xdb\xde\x80\x88\xb8\xea\x3e\x83\x07\x82\x07\x82\x07\xd6\x5d\x44\xe0\x81\xe0\x81\x53\xe5\x81\x03\x0a\x85\xeb\x35\x06\x0e\xc1\x6f\x80\x77\xa3\x81\x77\x27\x09\x7e\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x6b\xe9\xb4\x05\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x03\xb9\x3b\x3b\x72\x07\xca\x05\xca\x05\xca\x05\xca\x05\xca\x05\xca\x75\x42\xca\x35\xac\x70\xb7\x11\xc7\xb9\x81\x91\x81\x91\x8d\x82\x91\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\x0d\x94\x8f\x55\x44\xb6\x21\xa4\x0d\xb0\x0f\xb0\x0f\xb0\x0f\xb0\x0f\xb0\x0f\xb0\xaf\x0a\xf6\xf5\xce\xf5\x2c\x26\x1b\x21\xd9\x03\xd1\x03\xd1\x3b\x73\xa2\x57\xb5\x17\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\xc0\xf4\x8e\x38\xf6\x8b\x4c\x6f\x87\xa9\x61\x4c\x54\x0f\x70\x0b\x70\x0b\x70\xab\x7a\x35\x01\x6e\xed\xdc\x67\x80\x5b\x35\xe1\x56\xe8\x0e\x22\x2b\xe3\xdf\x42\xf7\xb4\x29\x19\x43\x17\x59\x18\x19\x78\xd4\x68\x78\x54\xb7\x59\x18\xe5\x76\x00\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x6a\xe9\xb4\x05\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x02\x8e\x3a\x3b\x1c\x05\x7e\x03\x7e\x03\x7e\x53\xbd\x9a\xc0\x6f\x76\xee\x33\xf0\x9b\x23\xf8\xcd\x50\xe2\x92\xda\x62\x38\xa7\x09\x49\x2a\x9b\xbc\x41\x7f\x40\x7f\x36\x9e\x3a\x20\xfa\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x03\xf2\x33\x44\xf2\x53\x0a\x44\xda\xb2\x32\x20\x06\x09\x0c\x0b\x0c\x0b\x0c\x0b\x0c\xeb\xec\x19\x56\x24\x5b\x49\x97\xff\x63\xe8\x67\x6b\xe1\xf8\xdc\x5b\x0f\x21\x28\xe9\xce\x36\xec\x77\x6a\xd8\x07\xd9\xb0\x53\x46\x29\x55\x36\xe0\x57\x2f\x49\x7f\x09\xe3\x1b\xdf\xb7\xe1\xbd\x09\x40\x16\x40\xd6\x28\x40\x56\xb7\x61\x4c\x95\xfb\x05\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\xab\xa5\xd3\x16\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\x0b\x74\xeb\xec\xe8\x16\x98\x10\x98\x10\x98\x50\xf5\x6a\x02\x13\xda\xb9\xcf\xc0\x84\x9a\x31\xa1\x21\xe2\xa0\x3e\x49\x10\x72\xd7\x01\xfa\x00\xfa\x54\x42\x1f\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x9e\x96\x4e\x5b\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x9e\x83\x63\xd5\x84\xf7\x0c\x24\xa7\x5d\x27\xcc\xe7\x24\xf9\xed\xf6\x98\xc5\x41\x8b\x40\x8b\x36\x9e\x3a\x20\x5a\x04\x52\x04\x52\x04\x52\x54\xf8\x23\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\x11\x48\xd1\x20\x49\x51\x31\xef\xdd\x7e\x8b\x03\x72\xe0\x81\x7f\x81\x7f\x81\x7f\x81\x7f\x81\x7f\x85\xee\x20\x42\x9c\x42\xf7\xa4\x51\x4d\xa1\x8b\x6c\x76\x55\x93\x07\x54\x35\x0a\x54\xd5\x71\x60\x53\xe8\x82\x50\x81\x50\x81\x50\x81\x50\x81\x50\x81\x50\x81\x50\x81\x50\xb5\x74\xda\x82\x50\x81\x50\x81\x50\x81\x50\x81\x50\x81\x50\x81\x50\x9d\x1d\xa1\x02\xcb\x01\xcb\x01\xcb\xa9\x5e\x4d\x60\x39\x3b\xf7\x19\x58\x4e\x6d\x96\x93\x8a\x75\x44\x6a\xf9\x30\x98\xce\x37\xdd\x9c\x13\xb3\x1d\xf3\x5a\x30\x9e\xaa\xc9\x04\xe3\x01\xe3\xb9\x28\xec\x12\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x9e\x96\x4e\x5b\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x1e\xb0\x9e\x83\x63\x55\x83\xf5\xc4\xc2\xa2\x00\x79\xe9\xc6\xa1\xbc\xf2\x86\x40\x7d\xbe\xe4\x0d\xfb\x60\x1b\x76\x4a\xfe\x53\xd9\x00\x90\xa0\xaa\x09\x06\x09\x02\x09\xba\xa8\xdc\x2f\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x2d\x9d\xb6\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x60\x42\x07\xc7\xaa\x16\x13\x52\xad\xfd\x57\x16\xa6\x7c\x18\x2c\x48\x35\xe8\xbf\x64\x83\x4e\xcb\x80\x0a\x2f\x06\xfb\xa9\x9a\x50\xb0\x1f\xb0\x9f\x8b\xd2\x3e\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x69\xe9\xb4\x05\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x01\xf3\x39\x38\x56\x35\x98\x4f\x22\x9c\x58\xa4\x43\x80\x3d\x5f\xa9\x25\xa7\xa4\x3c\xea\x8d\xc0\x3b\x55\x53\x08\xbc\x03\xbc\x73\xa1\x36\x08\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x4e\x4b\xa7\x2d\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\x0e\xb8\xce\xc1\xb1\xaa\xc5\x75\xe2\x47\xcf\x11\xdc\x71\xa4\xdc\x38\x0c\xbe\x43\x2d\xba\x51\x2d\x3a\x2d\xe7\x29\xbe\x19\xbc\xa7\x6a\x4a\xc1\x7b\xc0\x7b\x2e\xca\x1b\x05\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\xa7\xa5\xd3\x16\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\x07\xdc\xe7\xe0\x58\xd5\xe7\x3e\x03\x02\x3e\x3d\x90\x1e\x20\x9e\xaa\x49\x04\xe2\x01\xe2\x31\x88\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\xa7\xa5\xd3\x16\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\x07\x6c\xe7\xe0\x58\xed\x64\x3b\xc9\x55\x23\x96\xd3\x35\xcb\xa8\xc3\x89\x56\x22\x2d\x48\x73\x37\x77\x9f\xcc\x11\x98\xec\xc1\x39\x2b\x91\xde\xdc\x7d\xfa\xbd\xe2\x83\x7d\x61\x9b\xd1\xd2\x94\x9b\xbb\x4f\x7f\x89\xc3\x2c\xfa\xd5\x4b\x46\xcf\x53\x64\xc7\x0a\x9f\x7e\x55\x7c\x63\x79\xbb\x70\x77\xed\x91\xc5\x3c\x16\x2b\x2f\x49\xd5\xda\xa2\xd1\xf2\xc2\x71\xef\x25\x2f\x58\x86\xf1\xda\xde\x0a\x9c\x29\xd8\xb3\x7f\x2f\x55\x8d\x86\x59\x18\xd8\x5d\x2d\xec\xae\xd1\xef\xac\xaa\x15\xd2\xc2\x56\x7b\xbc\x1e\xf7\x6e\x2b\xd9\x21\x94\xf8\xd1\x60\xab\xfd\x7e\x7d\x73\xf7\xe9\x4b\xd5\x03\xb0\xe1\x8e\xdf\x70\x66\x20\x27\x71\xa3\x55\x2d\x97\xb2\xcb\xc0\x0b\xb6\xde\x3a\x4b\x79\xea\x05\xab\x27\xb1\xb8\x0f\xc3\x87\x12\x53\x2b\x79\x07\x29\x63\x50\xbb\x0e\x42\xea\x99\xcc\x09\x7d\x5f\x38\xe6\xba\xfa\x4d\xb7\xe8\xef\xaa\x45\x1f\x8a\x2d\xda\xb3\xb1\xd4\xb3\x76\xec\xad\x0f\xf6\x0d\x75\x9f\xbe\xc3\x85\x81\x1d\x58\x20\x70\x63\x98\xb0\x1b\xc3\x1e\x5d\xef\x08\x57\x86\x03\xda\xdf\x7e\xfd\x6f\xe3\xd0\xfa\x9f\xaa\xd6\x2d\x42\x77\x67\xe3\xaa\xfe\xd6\xc9\x21\xfc\x91\xb6\xe3\xe7\x48\x9d\x23\xf5\x8e\xe0\xfd\x5b\x0b\x2e\x1a\x70\xd1\x80\x8b\x06\x5c\x34\xa6\xe6\xa2\x51\xef\x56\xa9\x74\xd3\xd8\x6f\x8d\x7e\xc9\x4d\x52\xc5\x38\x34\x9c\x7a\x4b\x1e\xdd\x8e\x5c\x51\x6a\x1d\x94\xfa\x56\x94\x23\x16\x82\x45\x72\xb4\x92\x54\x5e\xd0\x37\x01\xf3\x02\x75\xb2\x84\x31\xcb\x02\x7b\x38\xb9\xcc\x8d\x9f\xbf\x64\x01\x73\xbd\x58\x0a\x69\x8f\xc2\xae\x78\x32\xee\x07\x8c\x07\x7a\xcb\x9b\xb5\xa1\x07\x98\x2d\xb3\x98\x76\x59\x14\x87\x8e\x94\x1b\x14\xff\x28\xe0\xf3\x39\xfb\x9d\xde\x48\xb3\x45\x6b\xe7\x1d\xbb\x64\x37\xbe\xff\x8e\x88\x9e\x2b\x4f\xe9\x2c\x90\x13\xbf\x12\x89\x5d\x92\xfa\x71\xc2\x6d\x30\x51\xaa\x2f\xfd\x4c\xd3\xc9\xfc\x6a\xea\x0d\xc5\x6e\xdf\x9a\x93\x8d\xc8\xb7\x22\x21\xf1\x02\x96\x28\x70\xc1\x16\x62\xa9\x24\x67\xcb\x60\x73\x51\x42\x9f\x5e\xb4\x74\x32\xa1\x2e\x87\x85\x60\x41\x18\x5c\x06\x62\xc5\x69\x81\x6a\xc6\x31\x67\xdf\xec\x85\xad\xfc\x31\xec\xd6\xd0\xba\x8d\xb7\x5e\x0b\xd7\xe3\xa9\xf0\x9f\x73\x91\x36\xbf\x72\x3d\xff\xad\x66\x18\x34\xe8\x6c\x15\x73\x87\x76\x8d\x17\xba\x56\x20\xc8\x2f\x6d\xd2\x17\xcc\x2a\xcd\x12\xd9\xc8\xe2\x74\x71\xf9\x4d\xd3\x21\xfd\x92\xa5\x3a\x03\xcd\x23\xe6\xaa\x9d\x6b\xc1\x83\xca\x36\x36\x98\x66\x6a\xf3\x1d\x35\xb9\x8a\x0b\x1d\x20\x43\x43\x59\xfe\xc7\xb8\x54\xd5\x1b\x97\xdd\x6e\x55\x27\x5b\xfe\x70\xb0\x82\x83\x15\x1c\xac\xe0\x60\x05\x07\xab\xce\x1c\xac\x6a\xde\x05\x5b\x4e\x56\xa7\xbb\x16\x3f\x16\xe2\x2a\x23\x5f\xf0\x44\xd8\x23\xe8\x2e\x0e\x23\xbe\x22\xe9\xe8\x2e\xf4\x3d\xe7\xb9\x64\x07\x33\x8b\x2e\x0f\xcc\x94\xcb\xee\x7a\xfe\xa7\x39\xfb\xaa\xce\x33\x25\xba\x44\x22\x90\x9b\x25\xbf\x53\x05\x0b\xe3\xe8\x9e\x07\xc6\x2e\x17\x67\xe2\x6a\xc9\x7d\xa3\x2b\x7f\xbf\x50\x7f\xfe\x7e\xc1\x96\x5e\xc0\x7d\xef\xdf\xe6\x22\x59\x08\xc6\x5d\x97\x56\xe7\x95\x72\xc9\x70\x73\x35\x4c\x3d\x7e\x96\xe4\x5f\x52\xfa\xe9\x9c\xdd\x7a\x74\x38\x16\x9a\x1e\xc6\xdb\x7d\xa3\xe3\x47\x99\x8a\x94\x7a\x4c\x3a\x4a\x98\xde\x37\x99\x50\xd5\x83\x8f\xa6\xef\x27\x33\xf1\x6d\x2b\x66\xd4\x75\xb9\x61\xef\xc3\x27\xb6\xe2\xf1\x82\xaf\x4a\x26\x75\xab\xd4\x88\x78\x19\xc6\x6b\x39\x27\x95\xe3\xf5\x79\xa3\x47\xbb\x87\x8b\x84\x5e\x23\xb1\x46\x6a\x6c\x3d\x29\x4d\x3a\x9e\x9b\xab\xc2\x24\x2b\x90\x71\xc2\xce\x71\x42\x70\x9a\xfe\x6a\xa4\x81\x79\x61\x32\xcd\x3d\x62\x54\xed\x4b\x6b\x63\x2e\xbf\x6c\xce\x6e\x1c\x47\x44\x29\xdd\x4d\x45\xcd\x6e\xa6\xfa\x30\x63\x97\x7a\x01\x96\x17\x68\xf2\x9e\xcd\xfe\xcc\x9d\x87\x55\x1c\x66\x81\x2b\x3f\x45\xb6\x5a\xfa\xd0\xc6\xc0\x29\x11\x52\xcb\xc7\xe5\x87\x98\x1e\x2c\xec\x93\xde\xb3\xd9\x2f\x61\x2c\x0a\x8f\x65\x0e\x4f\x1c\xee\xca\xde\xeb\xf1\x51\xe6\x7c\x7a\x5e\xa2\x54\xcf\xad\x07\x2e\xed\x33\x9a\x2c\xc8\x68\x73\xb9\xf7\x68\x29\x80\x37\xe4\x78\xbc\x21\xeb\xad\xae\x7d\x1e\x91\xa7\x53\xe6\xfb\xf4\x8d\xac\x37\x4e\x7b\xfc\x23\x4f\x77\xe1\x0f\xd5\x53\xb2\xde\x10\x6e\x7b\x4b\xbe\xf4\x3a\xad\x44\xd1\x70\xab\x38\x92\xe8\x7d\x4d\x79\x9a\xd5\x45\x79\x63\xf6\xa6\x28\x3c\x61\x47\x02\x06\x75\x8f\xe7\x32\x56\x1b\x79\x18\xf6\x39\x6a\x54\xe7\x68\xa8\xe9\xca\x70\x4c\xe2\x86\xd6\x53\xc0\x28\xbb\x5b\xac\x05\x00\xa3\x20\x84\x4b\x26\x3b\xd1\xd4\xd5\x43\x3e\x74\x87\xa3\x07\xdc\x3b\xe0\xde\x31\x59\xf7\x0e\x38\x44\xc0\x21\x02\x0e\x11\x70\x88\x80\x43\x44\xef\x0e\x11\x20\xed\x80\xaf\x80\xaf\x80\xaf\x80\xaf\x80\xaf\x80\xaf\x80\xaf\x3b\x2f\x01\xf0\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x10\x24\xbb\xde\x07\x5e\xe6\xd5\xf6\xff\xc7\xeb\xf9\x3e\x93\xf6\x99\xc4\xb7\x1e\x26\x32\x6d\x65\xc3\x1e\x04\x85\x69\x90\x3e\x7b\x2c\x29\xb5\x5e\x6d\xcc\xe8\x45\x14\x26\x2d\x23\x27\x25\xed\x33\xde\x94\x2e\xa9\xef\x9f\x88\x2f\x35\x8b\xd8\x94\x3a\x86\x17\x0b\x57\x0f\x6f\xcf\x87\x50\x2b\xd1\x9d\x88\x30\x2a\x2e\x88\xc1\x46\x18\x91\x41\xe0\x37\x1e\xf0\x95\x88\x95\x69\x4b\xb6\x8a\xf1\x24\x09\x1d\x8f\x74\x35\x6b\x44\xe2\x64\x0b\x0c\x63\x26\x55\xf9\xf4\xd9\x2a\xaf\x6b\xfe\x20\x47\x31\xbd\x17\x89\x30\x02\x59\x31\x8e\xc6\xc4\xdb\x90\x40\x4a\x06\xa3\x30\x66\xd7\x3f\xfd\x2c\x3f\x1b\x73\x87\x08\x91\x1f\x06\x2b\x25\x7e\x91\x51\x47\x6a\xdf\xdc\x0b\xd4\x01\x47\x46\x93\xfc\xb3\x64\x35\xd7\xfc\x8a\x2d\x9e\x19\xdd\x4e\xef\xae\xae\x56\xa1\xcf\x83\xd5\x3c\x8c\x57\x57\xd1\xc3\xea\x2a\x0b\x3c\x27\x74\xc5\xd5\x7f\x7c\x4a\xee\xe4\x53\x1a\x5b\x61\xf5\xe0\xb4\x39\x3d\x83\x92\xd7\xa6\x28\x46\xd5\x15\xa1\x7e\xaa\x21\x42\x7d\x50\xc6\xa6\xf1\x74\xe9\xa7\x83\x5d\x52\xde\xb6\xe3\xe9\xd3\xa4\x25\x5d\x12\x98\x46\x2e\xe9\xbe\x62\xed\xe6\xa9\xb9\xfa\x1f\x79\x04\xff\xef\x89\xd2\xd5\x34\x96\x2c\xf7\xa6\xa8\x19\x86\x64\x39\x92\x5c\x20\x90\x16\x8b\x93\x3c\x58\x69\x11\xd1\xd7\x67\x14\x7d\x8d\x30\x33\x84\x99\x21\xcc\x0c\x61\x66\x50\x74\x77\xed\xa2\x41\x06\x6a\xf4\xa3\x00\x22\xce\xa4\x7e\x9c\xc9\xd8\xb5\x3d\x6b\xeb\x6f\x3d\xba\x84\x9c\x0b\xca\x32\x5a\x43\xd5\x4c\x3e\xa9\x9f\x90\x92\x82\x88\x23\x7e\x90\xa3\xd8\x42\xfe\xc4\x9d\x74\xce\xd8\xad\xfc\xd7\xfc\x7e\xcd\x3d\x32\x73\x26\xcc\xf1\xb3\x24\x15\x71\x7e\x71\x29\x8f\x52\xe6\x7b\x0f\x82\xcd\x6c\x31\xe3\x99\x94\x4f\x8d\x4c\x35\x67\x77\x3e\x0f\x02\xed\xe8\x41\x52\x0f\xf7\x95\xa0\x75\xfd\x73\x93\x9b\x80\xda\xd8\x93\x3c\x62\x07\xcd\x8a\xf3\x0b\x33\x7c\xb2\xa7\xec\x56\x8d\x98\xbc\x83\xa2\xc4\x8c\x8e\xf6\xa5\xca\x12\x11\x93\x13\x54\x2e\x99\x3f\x77\x3c\x50\xb2\x31\xd3\x25\xf8\xc3\xbe\x28\x61\x6a\x6c\x7c\xfd\xc8\xf3\x7a\x2a\x77\x4f\x03\xa6\x4e\x64\x4b\x9b\x6f\xea\xb7\x48\x1d\x08\x11\x4f\xef\xab\x69\x3a\xfd\x5b\xfa\xcb\x1e\x9a\xdb\x71\xb1\xa1\xf1\x7a\x0d\x90\x47\x4f\xa3\x32\x01\x97\xf4\xdd\x3f\xec\x3f\x08\xd7\x22\x5e\x89\x5a\x9f\xa4\xf5\x2c\x56\x9e\x73\x59\xff\x3b\xf2\xe7\x67\xfd\x49\x3a\x72\xeb\xc8\x3a\xe4\x02\x4a\x11\x66\xca\xfb\xac\x1d\xb9\x87\x1a\x31\x68\x8b\x74\x57\xbe\x0e\x7b\x34\x90\xbb\xb2\xbf\x18\x83\x9d\x7a\xe2\x76\xea\xf3\xf1\x6a\xd8\x08\xeb\x30\x9b\x4b\x85\x1e\x45\xca\x13\x5b\x87\xb3\xbf\xde\x71\x64\xbd\x21\x2b\x9d\x8a\x37\xe6\x3e\x7d\x33\x08\x83\x4b\xf5\x6d\xfa\x04\x19\xca\x13\xf6\xfa\xaf\x49\x18\xdc\xa9\xa8\xee\xdf\xe4\xe1\xa8\x7f\xfe\x6a\x8e\xcc\xfc\x97\x6f\x86\xe4\x6e\x51\x7f\xdd\xfc\x12\xc6\x0e\x91\x84\x55\x48\x93\x1f\xb2\xef\x17\x4b\xf9\xbb\xef\x17\xec\xa6\x34\x9a\x73\xf6\x29\xd5\x66\x7f\xd2\x3f\xf4\x46\xbd\xe4\x0e\x4d\x00\xc5\x05\xfb\x9e\xa3\x0d\x99\xa4\xae\x84\x4f\x7a\x6e\x55\xdc\x6c\x24\xc2\xc8\x17\x73\xa6\xde\x49\xe9\x00\xcc\x9a\x22\x57\xfd\xca\x89\xb0\xaf\x6f\x32\xbc\xf2\x45\xd0\x5a\xd4\x1f\xa0\xb5\x6c\x3f\x75\xa0\x5a\x4b\xb4\xe1\x2b\x3e\x72\xbd\x25\x6b\xdd\x66\x16\xf9\xdc\x69\x49\x7c\xd4\x0f\x3b\x4b\x01\x12\xce\xb2\x10\x2b\x21\x56\xc2\x59\x16\x42\x86\xfd\x79\x03\x2c\x4e\xce\x59\x76\xda\x72\x53\x36\x7a\x6b\xef\x2b\x76\xb4\x5f\x29\xdd\x80\x03\xab\x80\xf8\xbb\x6d\x53\x37\x35\x10\xeb\x3f\x1f\x69\xf2\x90\x26\x6f\x74\x69\xf2\x26\xed\xf9\x8c\xa4\x7f\x48\xfa\x87\xa4\x7f\x48\xfa\x87\xa4\x7f\x55\x57\x09\xaa\x20\xc2\xec\x82\xdc\x8c\x88\xc3\x39\xe7\x38\x1c\x24\xe2\x44\x22\x4e\x24\xe2\x44\x22\x4e\x24\xe2\x44\x22\x4e\x24\xe2\x44\x78\x2a\xc2\x53\x11\x9e\x8a\xf0\xd4\xcd\x15\x89\x2a\x88\xc8\xfa\x7b\xf4\xea\x42\xd6\x5f\x64\xfd\x45\xd6\xdf\xe9\x3b\xc6\x20\x3a\x7d\x3c\x55\x10\x6b\x3b\x33\x0c\xb8\x0e\x62\x63\x87\x8f\x3d\x95\x10\xe1\xe4\x01\x27\x8f\x09\x3b\x79\xc0\x2d\x02\x6e\x11\x70\x8b\x80\x5b\x04\xdc\x22\x7a\x77\x8b\x00\x6f\x07\x82\x05\x82\x05\x82\x05\x82\x05\x82\x05\x82\x05\x82\xdd\x79\x09\x80\x8a\x80\x8a\x80\x8a\x80\x8a\x80\x8a\xa0\x16\x62\xb3\x20\xde\xfd\x46\x6d\x54\x43\xec\xbd\x1a\x62\x27\x34\x06\xf5\x10\x5b\xa9\x87\xd8\x98\x32\xed\xad\x88\xd8\x3e\x67\x1a\x4b\x9a\x97\x03\x3d\xaf\x77\x10\x21\xe2\x68\x02\x11\x47\x48\xf4\x82\x44\x2f\x15\x8d\x19\xbd\x40\x35\xd2\x54\x2f\x6d\x75\x6a\x58\x95\x11\xdb\xe9\xd5\xa4\xe5\xde\xfe\x6a\x23\xb6\x29\xf7\xbe\x62\x6d\x67\xb1\x39\x75\x7d\xc4\x6e\x12\xd8\x0c\x45\xd2\x1c\x49\xa6\x10\xc8\x8e\xc5\x49\x1e\xac\xec\x88\xd8\xec\x33\x8a\xcd\x46\x10\x1a\x82\xd0\x10\x84\x86\x20\x34\xa8\xbd\xbb\x76\xd1\x20\xc3\x38\x50\x23\x71\xb8\x3a\x5f\x9f\x35\x12\xc7\x11\x7b\x52\x51\x25\xb1\xb1\x82\xb6\xa7\x4e\x62\xe7\x01\x27\xa8\x94\x68\x17\x4d\x7d\xa9\x04\x95\x12\xf5\x7f\xb8\x2e\x61\x7a\x9c\x62\xad\xc4\xa1\x10\xf7\x62\xb5\xc4\x63\xda\x84\x7a\x89\xa8\x97\xd8\x43\xbd\xc4\xc6\x12\xd0\xbe\x8a\x89\x43\xb1\x50\xa3\x66\x22\xec\xd6\xf0\x79\x40\xcd\xc4\xed\x15\x83\x9a\x89\xa8\x99\x08\xfd\x05\xfa\xcb\x90\xaa\x26\x76\xa3\xc1\x9c\xa6\x6e\xe2\x0b\x0c\x69\xfb\x2a\x27\x4e\x5d\x90\x84\x53\x2d\x04\x4c\x08\x98\x70\xaa\x85\xb8\x71\x66\x4e\xb5\xd3\x96\xa1\xfa\xaa\xa0\xd8\xb3\xf7\x29\xc5\x14\x5e\xad\x75\x19\xc7\x83\x75\x14\x5b\x07\x9c\x3a\xff\x42\xe0\x7a\x8f\x9e\x9b\x71\xbf\x18\xda\xca\x6d\xc6\x95\x7d\x65\x26\xe7\x05\xc7\xaa\x77\xd6\x25\x6b\x46\x0f\x9e\xe5\xe9\xb8\x4a\xf9\x95\xac\x40\xc7\xbc\x20\x49\x05\x2f\x59\x7c\x37\xc5\xbd\xa7\x3d\x56\xc3\x7d\x0d\xfb\x75\x23\x92\x0f\x91\xa9\x43\xf5\x28\xa1\xc0\xea\xdb\x47\x11\x20\x04\xd5\x2e\xf8\xfe\xe2\x50\xdb\xab\x29\xfb\x12\x26\x86\x14\x99\x13\x4e\x91\x79\x18\xe9\x1d\x4a\x8f\xb9\xd7\x32\xd8\x02\xae\x44\x52\x4c\x24\xc5\x44\x52\x4c\x24\xc5\x9c\x5a\x52\xcc\xc3\x27\x6f\x65\x42\xcc\x8e\x9d\x43\x4e\x96\x06\xf3\x70\xf7\x77\xa7\xc0\x1c\xf2\x18\x1c\x93\xf8\xf2\xf0\x18\xec\x4e\x7a\xd9\xf1\x18\x20\xd5\x25\x52\x5d\x22\xd5\x25\x52\x5d\x22\xd5\x65\x67\xa9\x2e\x6b\x9c\xfe\x5b\x69\x2e\xf7\x86\x78\x9e\x91\x6f\x68\xbd\xde\x20\x55\xe7\xc8\x52\x75\x1e\x5e\x44\xfb\xd2\x74\x76\xbc\x9a\x7a\x4d\xce\x79\x78\x64\xf6\x24\xe6\xec\xfa\xd4\x18\x6a\x3a\xce\xc3\x83\x56\x61\xec\x6f\x6c\xce\xd2\x3f\xfd\xa3\x1b\xf6\x54\x91\xfd\xa4\x23\x04\x55\xe4\x4e\x81\xb9\x07\x4d\x91\xa7\xce\xf9\xd3\xdb\x5c\x14\x26\x71\x5f\x8b\x4d\x52\x9a\xce\x65\xfc\x59\x49\x37\x2c\x3c\xbb\x0b\x7a\x05\x72\x05\x72\x35\x4e\x72\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x05\x6a\x35\x15\x6a\x55\xcc\xda\x52\xdf\xfa\x80\x9c\x2d\xe0\x72\xe0\x72\xe0\x72\xe0\x72\xe0\x72\x7b\xb9\xdc\x81\xba\x04\x03\x88\x0a\xdb\x1f\x3a\xd7\x6b\x5c\x58\x8d\x62\x77\xe0\x6b\xe0\x6b\xa3\xe4\x6b\xa8\x50\x08\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x06\xca\x36\x2d\xca\x06\x06\x05\x06\x05\x06\x55\xbd\x9a\xc0\xa0\x76\xee\x33\x30\xa8\x13\x30\xa8\x81\x44\x87\x9d\x80\x43\xf5\x13\x1f\x76\x44\x2a\x6b\x10\x2c\x10\xac\xd1\x10\x2c\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\x2b\xd0\xab\xe9\xd0\x2b\x54\xf6\x06\xa1\x03\xa1\x03\xa1\x03\xa1\x03\xa1\x6b\x97\xd0\x2d\x44\xca\xaf\xaf\x1a\xa1\xb7\x5e\x6a\x0f\x6e\x4c\xff\x4a\xa4\x65\xb1\x56\xcd\xf4\x1e\x50\xb6\x12\xe9\x0e\x4c\x46\x43\x71\x73\xf7\xe9\x4b\xd5\x53\x50\x80\xf1\x48\x60\x55\x18\x48\x8a\x93\x9b\x28\xb5\xa2\x45\x53\x78\xcc\xab\x62\x53\x1a\xec\xc4\xda\x25\xfc\x94\xaa\xd1\x2e\x24\x57\xcf\x64\x4e\xe8\xfb\xc2\x31\xd7\x47\xdd\xec\xa2\x1b\xfb\x4c\x3d\x6b\xdf\x56\xfb\x60\x5f\x53\x3b\x81\x69\xcd\x4a\xcb\x20\x65\xe7\x43\xca\xea\x15\xeb\x3d\x44\xcb\x0e\x5c\xbe\x2f\xa9\xa9\xdc\xac\xec\x77\x27\x67\xf2\x47\xda\x93\x9f\x23\x75\x98\xd4\x3b\x91\xf7\x6f\x2d\x50\x40\x50\x40\x50\x40\x50\xc0\xa9\x51\xc0\x7a\xb7\x4a\x25\x09\x3c\x59\x75\x7e\xb2\xe3\x68\xfb\xe7\x5b\xca\xb2\xe1\xc8\x15\xa5\xd6\x41\xa9\x6f\x45\x39\x62\x21\x58\x24\x47\x2b\x49\xe5\x05\x7d\x13\x30\x2f\x50\x27\x4b\x18\xb3\x2c\xb0\x87\x93\xcb\xdc\xf8\xf9\x4b\x16\x30\xd7\x8b\xa5\x90\xf6\x28\xec\x8a\x27\xdb\x4a\xc0\x78\xa0\xb7\xbc\x59\x1b\x7a\x80\xd9\x32\x8b\x69\x97\x45\x71\xe8\x48\xb9\x41\x99\x9f\x0a\x84\x66\xae\x6c\x98\x6a\xb6\x68\xed\xbc\x63\x97\xec\xc6\xf7\xdf\x91\xd1\xd8\x95\xa7\x74\x16\xc8\x89\x97\xfa\xbc\x59\x92\xfa\x71\xdb\xa5\xd6\x6b\x4c\x94\xea\x4b\x3f\xd3\x74\x32\x74\x5b\x6f\x28\x76\xe3\xdb\x93\x8d\xc8\xb7\xa2\x81\xca\x0b\x58\xa2\xec\x46\x6c\x21\x96\x4a\x72\xb6\x66\xfe\x5c\x94\xd0\xa7\x17\x2d\x9d\x4c\xa8\xcb\x61\x21\x58\x10\x06\x97\x81\x58\x71\x5a\xa0\xda\xc4\x34\x67\xdf\xec\x85\xad\x90\x9f\xdd\x1a\x5a\xc1\xf1\xd6\x6b\xe1\x7a\x3c\x15\xfe\x73\x2e\xd2\xe6\x57\xae\xe7\xbf\xd5\x26\x24\x1a\x74\xb6\x8a\xb9\x43\xbb\xc6\x0b\x5d\x2b\x10\xe4\x97\x36\xe9\x0b\x66\x95\x66\x89\x6c\x64\x71\xba\xb8\xfc\xa6\xe9\x90\x7e\xc9\x52\x9d\x81\xe6\x11\x73\xd5\xce\xb5\xe0\x41\x65\x1b\x1b\x4c\x33\xb5\xf9\x8e\x9a\x5c\x65\x96\x3b\x60\x98\x1b\xca\xf2\x3f\x86\xda\xd7\x1b\x97\xdd\xe4\xfe\x64\xcb\x1f\x0c\x1f\x0c\x1f\x0c\x1f\x0c\x1f\x0c\xbf\x33\x86\x5f\xf3\x2e\xd8\xe2\xf8\xa7\xbb\x16\x3f\x16\x82\x89\x22\x5f\xf0\x44\xd8\x23\xe8\x2e\x0e\x23\xbe\x22\xe9\xe8\x2e\xf4\x3d\xe7\xb9\x64\x07\x33\x8b\x2e\x8f\x46\x92\xcb\xee\x7a\xfe\xa7\x39\xfb\xaa\xce\x33\x25\xba\x44\x22\x90\x9b\x25\xbf\x53\x05\x0b\xe3\xe8\x9e\x07\xc6\x2e\x17\x67\xe2\x6a\xc9\x7d\xa3\x2b\x7f\xbf\x50\x7f\xfe\x7e\xc1\x96\x5e\xc0\x7d\xef\xdf\xe6\x22\x59\x08\xc6\x5d\x97\x56\xe7\x95\x22\x62\x6e\xae\x86\xa9\xc7\xcf\x92\xfc\x4b\x4a\x3f\x9d\xb3\x5b\x8f\x0e\xc7\x42\xd3\xc3\x78\xbb\x6f\x74\xfc\x28\x53\x91\x52\x8f\x49\x47\x09\xd3\xfb\x26\x13\xaa\x7a\xf0\xd1\xf4\xfd\x64\x26\xbe\x6d\xc5\x8c\xba\x2e\x37\xec\x7d\xf8\xc4\x56\x3c\x5e\xf0\x55\xc9\xae\x6e\x95\x1a\x11\x2f\xc3\x78\x2d\xe7\xa4\x72\xbc\x3e\x6f\xf4\x68\xf7\x70\x91\xd0\x6b\x24\xd6\x48\x8d\xad\x27\xa5\x49\xc7\x73\x73\x55\x98\x64\x05\x32\x4e\xd8\x39\x96\x97\xb5\xbe\x49\x8d\x34\x30\x2f\x4c\xa6\xb9\x47\x8c\xaa\x7d\x69\x6d\xcc\xe5\x97\xcd\xd9\x8d\xe3\x88\x28\xa5\xbb\xa9\xa8\xd9\xcd\x54\x1f\x66\xec\x52\x2f\xc0\xf2\x02\x4d\xde\xb3\xd9\x9f\xb9\xf3\xb0\x8a\xc3\x2c\x70\xe5\xa7\xc8\x56\x4b\x1f\xda\x18\x38\x25\x42\x6a\xf9\xb8\xfc\x10\xd3\x83\x85\x7d\xd2\x7b\x36\xfb\x25\x8c\x45\xe1\xb1\xcc\xe1\x89\xc3\x5d\xd9\x7b\x3d\x3e\xca\x9c\x4f\xcf\x4b\x94\xea\xb9\xf5\xc0\xa5\x7d\x46\x93\x05\x19\x6d\x2e\xf7\x1e\x2d\x05\x70\x46\x19\x8f\x33\x4a\xbd\xd5\xb5\xcf\x21\xe5\x74\xca\x7c\x9f\xae\x29\xf5\xc6\x69\x8f\x7b\xca\xe9\x2e\xfc\xa1\x3a\xaa\xd4\x1b\xc2\x6d\x67\x95\x97\x5e\xa7\x95\x3c\x1a\x5e\x16\x47\x12\xbd\xaf\x29\x4f\xb3\xba\x28\x6f\xf4\xce\x15\x85\xc7\xec\x88\x0b\x56\x97\x79\x2e\x68\xf5\x13\x22\xdc\xb0\x88\xe4\x46\x77\xb7\xa3\x84\x5b\xcf\x8a\xa0\x2c\x70\xb1\x16\x05\x8c\xaa\x50\xa7\x5c\xee\x1e\xcf\x0f\xf9\xd0\x7d\x7e\x1f\xf0\xf6\x80\xb7\xc7\x64\xbd\x3d\xe0\x1f\x01\xff\x08\xf8\x47\xc0\x3f\x02\xfe\x11\xbd\xfb\x47\x00\xbc\x83\xc5\x82\xc5\x82\xc5\x82\xc5\x82\xc5\x82\xc5\x82\xc5\xee\xbc\x04\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x90\x9e\x75\x1f\x87\x99\x57\x93\x00\x6d\xb8\x9f\xef\xb3\x6b\x9f\x53\x08\xec\x61\x4a\xd3\x5f\xe9\xc1\xae\xc8\x4c\x83\xfc\xad\x63\xc9\x77\xf2\x6a\x63\x5a\x2f\xa2\x30\x69\x19\x43\x29\xe1\x9f\xf1\xa6\xc4\x49\x7d\xff\x94\xcc\xa9\x59\x50\xe7\x9e\xe4\x3a\x7d\x1d\x4c\xad\x44\x81\x22\x12\xa9\xb8\x2a\x06\x1b\x89\x44\x96\x82\xdf\x78\xc0\x57\x22\x56\x36\x2f\xca\x2b\xc5\x93\x24\x74\x3c\x52\xe2\xac\x75\x89\x93\x91\x30\x8c\x99\xd4\xf1\xd3\x67\xab\xd5\xae\xf9\x83\x1c\xc5\xf4\x5e\x24\xc2\x48\x6a\xc5\x78\x1b\x13\x97\x43\x92\x2a\x59\x92\xc2\x98\x5d\xff\xf4\xb3\xfc\x6c\xcc\x1d\x42\x47\x7e\x18\xac\x94\x5c\x46\xd6\x1e\xa9\x96\x73\x2f\x50\x47\x1d\x59\x53\xf2\xcf\x92\x39\x5d\x83\x2d\xb6\x78\x66\x74\x63\xbd\xbb\xba\x5a\x85\x3e\x0f\x56\xf3\x30\x5e\x5d\x45\x0f\xab\xab\x2c\xf0\x9c\xd0\x15\x57\xff\xf1\x29\xb9\x93\x4f\x69\x6c\x9e\xd5\x83\xd3\xe6\xf4\x0c\x4a\x90\x9b\xac\x7c\x55\x57\xb6\xfa\xa9\x86\x6c\xf5\x41\x99\xa2\x46\xd6\xaf\x9f\x0e\xf6\x4b\xf9\xe7\x8e\xac\x63\xd3\x17\x86\x49\x9c\x9a\x82\x30\xfc\x8a\x75\x90\xf2\xa6\xa2\x36\x4c\x87\x99\x6f\x1a\x4b\xa0\x87\xb3\xdd\x0c\x43\x02\x1d\x49\x5a\x11\x08\x94\xc5\x49\x1e\xac\x40\x89\x40\xee\x33\x0a\xe4\x46\xc4\x1a\x22\xd6\x10\xb1\x86\x88\x35\xe8\xc2\xbb\x76\xd1\x20\x63\x3e\xfa\xd1\x0c\x11\xb2\xb2\xfd\x98\xbd\x21\x2b\x93\xd0\x00\x2d\x22\x68\x3d\x50\x85\x5c\x14\xca\xd2\x5a\x43\x4d\x4d\x3e\xa9\xc7\xe8\x94\x82\xc4\x23\x7e\x90\xcf\xd9\x42\xfe\xc4\x9d\x74\xce\xd8\xad\xfc\xd7\xfc\x7e\xcd\x3d\x32\x8c\x26\xcc\xf1\xb3\x24\x15\x71\x7e\x8f\x29\xe7\x54\xe6\x7b\x0f\x82\xcd\xfe\xc6\xd7\x22\x89\xb8\x23\x66\x52\x5c\x35\x22\xd6\x9c\xdd\xf9\x3c\x08\xb4\xcf\x08\x09\x41\xdc\x57\x72\xd7\xf5\xcf\x4d\x2e\x06\x6a\x63\x4f\xe2\x89\x1d\x34\x2b\xdd\x2f\xcc\xf0\xc9\x9e\xb2\x5b\x35\x62\xf2\x4a\x8a\x12\x33\x3a\xda\x2d\x2b\x4b\x44\x4c\xfe\x54\xb9\xa0\xfe\xdc\xf1\x40\xc9\xc6\x4c\xd7\x19\x60\xd8\xf7\x26\x4c\x92\x2d\x5c\x49\xf2\xf8\x9e\xd4\x7d\xd4\x00\xcf\x17\x4b\xae\xd4\x6f\x16\x0a\xae\x9c\xc2\x01\x81\x7c\x85\x1a\xd5\x28\xb8\xa4\xef\xfe\x61\xff\xb9\xb8\x16\xf1\x4a\xd4\xfa\x24\x2d\x6a\xb1\xf2\x9c\xcb\xfa\xdf\x91\x3f\x3f\xeb\x4f\xd2\x09\x5c\x47\xfe\x21\xe7\x52\x8a\x5d\x53\x7e\x6d\xed\xc8\x42\xd1\x9e\xa2\xe1\x03\x32\x5a\x77\xe5\x36\xb1\x47\x49\xb9\x2b\xbb\xa3\x31\x98\xb2\x27\x6e\xca\x3e\x1f\xdf\x88\x8d\xa8\x11\xb3\xb9\x54\x64\x53\xa4\x1c\xbd\x75\xb4\xfc\xeb\x1d\xe7\xd6\x1b\x32\xe4\xa9\x70\x66\xee\xd3\x37\x83\x30\xb8\x54\xdf\xa6\x4f\x90\x2d\x3d\x61\xaf\xff\x9a\x84\xc1\x9d\x0a\x1a\xff\x4d\x9e\x90\xfa\xe7\xaf\xe6\xdc\xcc\x7f\xf9\x66\x48\x4e\x1b\xf5\xd7\xcd\x2f\x61\xec\x10\x6c\x58\x85\x34\xf9\x21\xfb\x7e\xb1\x94\xbf\xfb\x7e\xc1\x6e\x4a\xa3\x39\x67\x9f\x52\x4d\x06\x48\x27\xd1\x1b\xf5\x92\x3b\x34\x01\x14\x76\xec\x7b\x8e\xb6\x75\x92\x0a\x13\x3e\xe9\xb9\x55\x61\xb9\x91\x08\x23\x5f\xcc\x99\x7a\x27\x65\x1b\x30\x6b\x8a\x22\x01\x2a\x27\xc2\xbe\xbe\xc9\xf0\xca\x17\x41\x93\x51\x7f\x80\x26\x33\x42\x4d\x26\xda\x70\x4a\x9f\x82\x2e\x93\xb5\x6e\x5b\x8b\x7c\xee\xb4\x24\x52\xea\x87\x9d\xaf\x50\x09\x5f\x5c\xc8\x9b\x35\xa6\xe9\x7c\xe4\xcd\x01\x89\x75\x90\x3e\xec\x5f\xfa\x3f\xc6\x26\xeb\x8b\x7b\x06\x52\x55\x36\x0d\xfb\xf0\x2b\xd6\xcc\x63\xf5\xd1\x96\xe0\x1e\x4e\x99\xc6\xda\x65\xc1\x5f\x52\xa8\xb1\xfe\x4b\x90\xbc\x0f\xc9\xfb\x46\x97\xbc\x6f\xd2\x3e\xd5\x48\x45\x88\x54\x84\x48\x45\x88\x54\x84\x48\x45\x58\x75\x95\xa0\x54\x23\x8c\x32\xc8\x18\x89\x08\x9f\x73\x8e\xf0\x41\x7a\x50\xa4\x07\x45\x7a\x50\xa4\x07\x45\x7a\x50\xa4\x07\x45\x7a\x50\x04\xbe\x22\xf0\x15\x81\xaf\x08\x7c\xdd\x5c\x91\x28\xd5\x88\x5c\xc4\x47\xaf\x2e\xe4\x22\x46\x2e\x62\xe4\x22\x9e\xbe\xdb\x0c\xe2\xde\xb7\x1f\x33\xe8\x52\x8d\xb5\x3d\x1a\xfa\x8f\x81\xdf\x5f\xac\xb1\xb1\xff\xc7\xa1\x72\x8d\xf0\xf9\x80\xcf\xc7\x84\x7d\x3e\xe0\x25\x01\x2f\x09\x78\x49\xc0\x4b\x02\x5e\x12\xbd\x7b\x49\x00\xbf\x83\xc8\x82\xc8\x82\xc8\x82\xc8\x82\xc8\x82\xc8\x82\xc8\xee\xbc\x04\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x50\xb0\xf1\x05\xc1\xbe\xfb\x2d\xdb\x28\xd9\x38\x8c\x92\x8d\xdd\x11\x1a\x14\x6d\x6c\xa5\x68\x63\x63\xf2\x74\xb8\x6c\x63\xfb\xec\x69\x54\xc9\x62\x0e\x74\xbf\xde\xe1\x84\xc8\xa4\x09\x44\x26\x21\x5d\x0c\xd2\xc5\x54\x34\x66\x1a\x92\xd6\x98\x13\xc6\xb4\xd5\xb3\x01\x96\x6f\x6c\xa7\x6b\xd3\x17\x8d\xfb\x2b\xe0\xd8\xba\x68\xfc\x8a\x75\x92\x10\xe7\xd4\x45\x1c\x3b\xcc\x85\x33\x14\x89\x74\x24\x49\x47\x20\x5e\x16\x27\x79\xb0\xe2\x25\xc2\xbc\xcf\x28\xcc\x1b\xf1\x6c\x88\x67\x43\x3c\x1b\xe2\xd9\xa0\x19\xef\xda\x45\x83\x8c\x08\x41\x21\xc7\x81\xeb\x81\x7d\x16\x72\x1c\x51\x18\x4b\x45\x29\xc7\xc6\xfa\xda\xa1\x62\x8e\x9d\xc7\xae\xa0\x9c\xa3\x5d\x39\xf5\x85\x14\x94\x73\xd4\xff\xe1\xf6\x84\x89\x52\xff\x69\xa2\x05\x1d\x07\x05\xef\x8b\x25\x1d\x8f\x69\x18\x8a\x3a\xa2\xa8\x63\x0f\x45\x1d\x1b\x4b\x45\x07\xcb\x3a\x0e\xc5\x88\x8d\xc2\x8e\x30\x6d\xc3\x73\x02\x85\x1d\xb7\x57\x0c\x0a\x3b\xa2\xb0\x23\x74\x1a\xe8\x34\x7b\x74\x9a\x1e\x4b\x3b\x76\xa8\xd5\x9c\xa6\xb8\xe3\x0b\x0c\x6e\x07\xcb\x3b\x4e\x5d\xb8\x84\xcf\x2e\x24\xcf\x5a\xd3\x74\x3e\x92\xe7\x80\x04\x3c\xc8\x21\xf6\x2f\x43\x38\xc8\x26\xec\xb3\x7b\x06\x12\x56\x5f\x65\x1e\x07\xe3\xd7\x4a\x41\x8e\x57\x6b\x5d\x75\xf2\x60\xb1\xc7\xd6\x59\xa9\x4e\x08\x11\xb8\xde\xa3\xe7\x66\xdc\x2f\xc6\xda\x72\x9b\x02\x66\x5f\x55\xcc\x79\xc1\x5b\xeb\x9d\xf5\xf3\x9a\xd1\x83\x67\x79\x7e\xb0\x52\xc2\x27\x2b\xf3\x31\x2f\x48\x52\xc1\x4b\x86\xe2\x4d\x89\xf0\xe9\x90\xb1\x71\x5f\xeb\x7e\xdd\x88\x2a\x44\xbc\xec\x50\x7d\x55\x28\xdc\xfb\xf6\x51\x04\x88\x89\x75\x4a\xbb\xb3\xbf\xc0\xd8\x96\x8b\xe1\xbe\x84\xac\x21\x85\xe7\x84\x53\x78\x1e\x06\x83\x87\xd2\x77\xee\x35\x2d\xb6\x00\x3d\x91\xb4\x13\x49\x3b\x91\xb4\x13\x49\x3b\xa7\x96\xb4\xf3\xf0\xc9\x5b\x99\xb0\xb3\x63\x17\x93\x93\xa5\xe9\x3c\xdc\xfd\xdd\x29\x3a\x87\x3c\x06\xc7\x24\xe6\x3c\x3c\x06\xbb\x93\x72\x76\x3c\x06\x48\xc5\x89\x54\x9c\x48\xc5\x89\x54\x9c\x48\xc5\xd9\x59\x2a\xce\x1a\xa7\xff\x56\x1a\xce\xbd\x61\xa4\x67\xe4\x61\x5a\xaf\x37\x48\x25\x3a\xb2\x54\xa2\x87\x17\xd1\xbe\x34\xa2\x1d\xaf\xa6\x5e\x93\x87\x1e\x1e\x99\x3d\x89\x43\xbb\x3e\x35\x86\x9a\x2e\xf4\xf0\xa0\x55\x98\xfd\x1b\x9b\xb3\xf4\x4f\xff\xe8\x90\x47\x55\xe4\x5a\xe9\x08\x4b\x15\x59\x54\x60\x2e\x43\x53\x8e\xaa\x73\x26\xf5\x36\x97\x87\x49\xe6\xd7\xb2\x93\x14\xa9\x73\x41\x7f\x56\x52\x10\x0b\xcf\xee\x8c\x68\x81\x66\x81\x66\x8d\x98\x66\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x81\x64\x4d\x8a\x64\x15\xf3\xc1\xd4\x37\x41\x20\x1b\x0c\x58\x1d\x58\x1d\x58\x1d\x58\x1d\x58\xdd\x61\x56\x77\xa0\x32\xc2\x00\xa2\xc7\xf6\x07\xdb\xf5\x1f\x3f\x56\xa3\x4a\x1f\x98\x1b\x98\xdb\x78\x99\x1b\x4a\x2b\x82\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x81\xbc\x4d\x90\xbc\x81\x4b\x81\x4b\x81\x4b\x55\xaf\x26\x70\xa9\x9d\xfb\x0c\x5c\xea\x54\x5c\x6a\x20\x51\x64\x27\x60\x53\x3d\xc6\x91\x1d\x91\x29\x1b\x54\x0b\x54\x6b\x5c\x54\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x0b\x44\x6b\x62\x44\x0b\xb5\xc5\x41\xed\x40\xed\x40\xed\x40\xed\x40\xed\x8e\xa5\x76\x91\x27\x7e\xa4\x22\x48\xa8\xf1\x9a\xd6\x35\x22\x6f\xbd\xd4\x33\xdc\x98\xee\x95\x48\x99\x17\x2c\xc3\x78\x6d\x97\x37\x67\xca\xa2\xbf\x1b\x95\xad\x44\x7a\x53\x1c\x85\x9b\xbb\x4f\x7f\xd9\xfc\x0a\x8a\x38\x1e\x89\xa6\xec\x20\x8e\x1d\x4c\x15\x57\x46\xe1\x6b\xaf\x8a\xaf\xae\xb1\xa5\x1e\xaf\xc7\xbd\xab\x4a\xca\xa1\x3a\x2f\x8f\xd8\x52\xbf\x5f\xdf\xdc\x7d\xfa\x52\xf5\x45\x6c\xac\xe3\x37\x96\x19\x48\x0a\x3f\x9d\xd2\xfe\xfa\xef\xc7\xeb\x97\x6d\x31\x27\x4b\xd2\x70\x6d\x56\x68\x61\x6c\x8b\x7b\x4f\x69\xe1\xed\xba\x93\xa8\x67\x32\x27\xf4\x7d\xe1\x98\xab\xe7\x03\xb5\xc6\xcc\xd6\x47\xdb\x9a\x3d\x1b\x47\x3d\x67\x63\xef\x7c\xb0\x4f\xad\xf3\xc4\xba\x85\xcd\xc1\x8b\xcf\x87\x17\xd7\x2b\x8b\x7d\x88\x19\x1f\x10\x41\x5f\x52\xbd\xbc\x59\x95\xfd\x4e\x0e\xd8\x8f\xb4\x05\x3f\x47\x69\xf9\xc6\x67\xcd\x4b\xe6\x83\x85\x83\x85\x83\x85\x83\x85\x4f\x8d\x85\xd7\xbb\x55\x2a\x79\xf8\x7e\x93\xd8\x4b\x6e\x92\x2a\x43\xab\xa6\x00\x6f\x29\x1d\x8d\x23\x57\x94\x5a\x07\xa5\xbe\x15\xe5\x88\x85\x60\x91\x1c\xad\x24\x95\x17\xf4\x4d\xc0\xbc\x40\x9d\x2c\x61\xcc\xb2\xc0\x1e\x4e\x2e\x73\xe3\xe7\x2f\x59\xc0\x5c\x2f\x96\x02\xda\xa3\xb0\x2b\x9e\x2c\x8c\x01\xe3\x81\xde\xf2\x66\x6d\xe8\x01\x66\xcb\x2c\xa6\x5d\x16\xc5\xa1\x23\xe5\x06\x65\x84\x2d\x70\xca\xb9\xb2\xe4\xab\xd9\xa2\xb5\xf3\x8e\x5d\xb2\x1b\xdf\x7f\x47\xe8\xc4\x95\xa7\x74\x16\xc8\x89\x5f\x89\xc4\x2e\x49\xfd\x38\xe1\x36\x98\x28\xd5\x97\x7e\xa6\xe9\x64\x0e\x0c\xf5\x86\x62\xb7\x13\xc3\xc9\x46\xe4\x5b\xd1\x4c\xeb\x05\x2c\x51\xd6\x53\xb6\x10\x4b\x25\x39\x5b\xd8\x95\x8b\x12\xfa\xf4\xa2\xa5\x93\x09\x75\x39\x2c\x04\x0b\xc2\xe0\x32\x10\x2b\x4e\x0b\x54\x1b\x5a\xe7\xec\x9b\xbd\xb0\x15\xf8\xb6\x5b\x43\xeb\x32\xde\x7a\x2d\x5c\x8f\xa7\xc2\x7f\xce\x45\xda\xfc\xca\xf5\xfc\xb7\xda\x90\x4a\x83\xce\x56\x31\x77\x68\xd7\x78\xa1\x6b\x05\x82\xfc\xd2\x26\x7d\xc1\xac\xd2\x2c\x91\x8d\x2c\x4e\x17\x97\xdf\x34\x1d\xd2\x2f\x59\xaa\x33\xd0\x3c\x62\xae\xda\xb9\x16\x3c\xa8\x6c\x63\x83\x69\xa6\x36\xdf\x51\x93\xab\x8c\xd3\x07\xcc\xd3\x43\x59\xfe\xc7\xf8\xae\xd4\x1b\x97\xdd\xfe\x2b\x27\x5b\xfe\xf0\x64\x81\x27\x0b\x3c\x59\xe0\xc9\x02\x4f\x96\xce\x3c\x59\x6a\xde\x05\x5b\xde\x2c\xa7\xbb\x16\x3f\x16\x22\xec\x22\x5f\xf0\x44\xd8\x23\xe8\x2e\x0e\x23\xbe\x22\xe9\xe8\x2e\xf4\x3d\xe7\xb9\x64\x07\x33\x8b\x2e\x0f\xd1\x93\xcb\xee\x7a\xfe\xa7\x39\xfb\xaa\xce\x33\x25\xba\x44\x22\x90\x9b\x25\xbf\x53\x05\x0b\xe3\xe8\x9e\x07\xc6\x2e\x17\x67\xe2\x6a\xc9\x7d\xa3\x2b\x7f\xbf\x50\x7f\xfe\x7e\xc1\x96\x5e\xc0\x7d\xef\xdf\xe6\x22\x59\x08\xc6\x5d\x97\x56\xe7\x95\xe2\xc2\x6e\xae\x86\xa9\xc7\xcf\x92\xfc\x4b\x4a\x3f\x9d\xb3\x5b\x8f\x0e\xc7\x42\xd3\xc3\x78\xbb\x6f\x74\xfc\x28\x53\x91\x52\x8f\x49\x47\x09\xd3\xfb\x26\x13\xaa\x7a\xf0\xd1\xf4\xfd\x64\x26\xbe\x6d\xc5\x8c\xba\x2e\x37\xec\x7d\xf8\xc4\x56\x3c\x5e\xf0\x55\xc9\x84\x6e\x95\x1a\x11\x2f\xc3\x78\x2d\xe7\xa4\x72\xbc\x3e\x6f\xf4\x68\xf7\x70\x91\xd0\x6b\x24\xd6\x48\x8d\xad\x27\xa5\x49\xc7\x73\x73\x55\x98\x64\x05\x32\x4e\xd8\x39\x4e\x08\x2c\xd3\x5f\x8d\x34\x30\x2f\x4c\xa6\xb9\x47\x8c\xaa\x7d\x69\x6d\xcc\xe5\x97\xcd\xd9\x8d\xe3\x88\x28\xa5\xbb\xa9\xa8\xd9\xcd\x54\x1f\x66\xec\x52\x2f\xc0\xf2\x02\x4d\xde\xb3\xd9\x9f\xb9\xf3\xb0\x8a\xc3\x2c\x70\xe5\xa7\xc8\x56\x4b\x1f\xda\x18\x38\x25\x42\x6a\xf9\xb8\xfc\x10\xd3\x83\x85\x7d\xd2\x7b\x36\xfb\x25\x8c\x45\xe1\xb1\xcc\xe1\x89\xc3\x5d\xd9\x7b\x3d\x3e\xca\x9c\x4f\xcf\x4b\x94\xea\xb9\xf5\xc0\xa5\x7d\x46\x93\x05\x19\x6d\x2e\xf7\x1e\x2d\x05\x70\xc9\x1a\x8f\x4b\x56\xbd\xd5\xb5\xcf\x2d\xeb\x74\xca\x7c\x9f\x0e\x5a\xf5\xc6\x69\x8f\x93\xd6\xe9\x2e\xfc\xa1\xba\x6b\xd5\x1b\xc2\x6d\x97\xad\x97\x5e\xa7\x95\xe8\x19\x2e\x13\x47\x12\xbd\xaf\x29\x4f\xb3\xba\x28\x6f\x8c\x9e\x12\x85\x6f\xee\x88\x8a\x57\xf7\x77\x2e\x5b\xb5\x12\x20\x5f\xe1\x84\x51\x1d\x18\x5f\xc3\x6d\x61\x33\x24\x7e\x5f\x34\x7c\xeb\xc9\x40\x94\x8d\x2d\xd6\x97\xbd\x51\x06\x4c\x1e\x90\x06\x6e\x1c\xf2\x81\x9b\x4e\x1c\x70\xdd\x80\xeb\xc6\x14\x5d\x37\xe0\xec\x00\x67\x07\x38\x3b\xc0\xd9\x01\xce\x0e\xbd\x3b\x3b\x80\xa2\x03\xac\x02\xac\x02\xac\x02\xac\x02\xac\x02\xac\x02\xac\xee\xbc\x04\xc0\x3a\xc0\x3a\xc0\x3a\xc0\x3a\xc0\x3a\x90\x7b\x78\x1f\x54\xc9\x0d\xd8\x97\xd6\x6a\x99\xf3\x95\x32\x00\x78\xbc\x9e\xef\xb2\x71\x4f\x3c\x50\xf5\x30\x7e\x69\xad\xca\x66\x5f\xc8\xa5\x41\x02\xe2\xb1\x24\xec\x79\xb5\x31\x8b\x17\x51\x98\xb4\xcc\x97\x94\xa8\xcf\x78\x13\x94\xa4\xbe\xdb\x21\x4c\x6a\x16\x7a\xb9\x27\x11\xd4\x10\x4e\x9c\x56\xe2\x36\x11\x3b\x54\x5c\x21\x83\x8d\x1d\x22\x73\xc0\x6f\x3c\xe0\x2b\x11\x2b\xc3\x16\xe5\x43\xe3\x49\x12\x3a\x1e\x69\x6a\xd6\x84\xc4\xc9\x12\x18\xc6\x4c\x2a\xf2\xe9\xb3\x55\x5d\xd7\xfc\x41\x8e\x62\x7a\x2f\x12\x61\xc4\xb1\x62\x84\x8c\x89\xa4\x21\x71\x94\xcc\x45\x61\xcc\xae\x7f\xfa\x59\x7e\x36\xe6\x0e\xf1\x21\x3f\x0c\x56\x4a\xf8\x22\x93\x8e\xd4\xbd\xb9\x17\xa8\x13\x8e\x4c\x26\xf9\x67\xc9\x66\xae\xe9\x15\x5b\x3c\x33\xba\x8a\xde\x5d\x5d\xad\x42\x9f\x07\xab\x79\x18\xaf\xae\xa2\x87\xd5\x55\x16\x78\x4e\xe8\x8a\xab\xff\xf8\x94\xdc\xc9\xa7\x34\xb6\xc1\xea\xc1\x69\x73\x7a\x06\x25\xad\x9d\x85\x10\x55\x57\x80\xfa\xa9\x86\x00\xf5\x41\xd9\x9e\x46\xdc\xc7\x9f\x0e\xf6\x51\x79\xda\x8e\xb8\x93\x93\x94\x84\x49\xb8\x1a\xa1\x24\xfc\x8a\xbd\x3c\x09\x4d\x45\x5d\xa3\x0e\x73\xd1\x34\x92\x36\xab\xf3\xcf\xf4\x2e\x6d\x8e\x24\xd1\x07\x04\xc6\xe2\x24\x0f\x56\x60\x44\x68\xf5\x19\x85\x56\x23\x86\x0c\x31\x64\x88\x21\x43\x0c\x19\x74\xdd\x5d\xbb\x68\x90\x51\x18\xfd\x68\x78\x08\x22\x61\x7b\x74\x37\xad\xac\x8c\x50\x7b\xb3\xb6\xfd\xd6\x43\x47\xc8\x93\xa0\x2c\x8f\x35\x50\xbb\xe4\x53\x4e\x17\x2f\x52\x10\x5f\xc4\x0f\xf2\x02\x5b\xc8\x9f\xb8\x93\xce\x19\xbb\x95\xff\x9a\xdf\xaf\xb9\x47\x56\xcc\x84\x39\x7e\x96\xa4\x22\xce\x2f\x25\xe5\x2e\xca\x7c\xef\x41\xb0\xd9\xdf\xf8\x5a\x24\x11\x77\xc4\x4c\xca\x9e\x46\x5e\x9a\xb3\x3b\x9f\x07\x81\xf6\xe2\x20\x89\x86\xfb\x4a\x88\xba\xfe\xb9\xc9\x29\x4f\x6d\xec\x49\xd6\xb0\x83\x66\x45\xf5\x85\x19\x3e\xd9\x53\x76\xab\x46\x4c\xde\x2f\x51\x62\x46\x47\x3b\x4a\x65\x89\x88\xc9\xc3\x29\x97\xba\x9f\x3b\x1e\x28\xd9\x98\xe9\xe2\xf9\x61\x5f\x82\xb0\x13\xb2\x17\xdf\x35\xf2\xa0\x1e\xf3\x45\xd3\x00\x98\x17\xab\xf8\xd4\x6b\x0d\xea\xf7\x9c\xc2\x1d\x80\xfc\x74\x1a\x25\xeb\xbf\xa4\xef\xfe\x61\xff\x09\xb8\x16\xf1\x4a\xd4\xfa\x24\x15\xa1\x16\x2b\xcf\xb9\xac\xff\x1d\xf9\xf3\xb3\xfe\x24\x9d\xb5\x75\x84\x1a\x72\xec\xa4\xb8\x31\xe5\x53\xf6\x72\x01\x87\x1a\x30\x38\xb3\x72\x57\x4e\x0c\x7b\xd4\x88\xbb\xb2\xd7\x17\x83\xb1\x79\xe2\xc6\xe6\xf3\xf1\x4e\xd8\x08\xce\x30\x9b\x4b\x05\x10\x45\xca\x9f\x5a\x07\xa5\xbf\xde\x71\x44\xbd\x21\x53\x9b\x8a\x1a\xe6\x3e\x7d\x33\x08\x83\x4b\xf5\x6d\xfa\x04\x59\xbb\x13\xf6\xfa\xaf\x49\x18\xdc\xa9\xd8\xec\xdf\xe4\x61\xa8\x7f\xfe\x6a\x8e\xc8\xfc\x97\x6f\x86\xe4\x36\x51\x7f\xdd\xfc\x12\xc6\x0e\xe1\x80\x55\x48\x93\x1f\xb2\xef\x17\x4b\xf9\xbb\xef\x17\xec\xa6\x34\x9a\x73\xf6\x29\xd5\xb6\x7b\x52\x34\xf4\x46\xbd\xe4\x0e\x4d\x00\x45\xf7\xfa\x9e\xa3\xad\x91\xa4\x97\x84\x4f\x7a\x6e\x55\xf4\x6b\x24\xc2\xc8\x17\x73\xa6\xde\x49\x41\xfd\x66\x4d\x91\xc3\x7d\xe5\x44\xd8\xd7\x37\x19\x5e\xf9\x22\xa8\x27\xea\x0f\x50\x4f\xc6\xa7\x9e\x44\x1b\xae\xdf\x23\x54\x50\xb2\xd6\x2d\x61\x91\xcf\x9d\x16\x64\x45\xfd\xa0\xb3\x91\x16\xe1\xf2\x0a\xa1\xf2\xc8\x69\x3a\x1f\xa1\x72\x40\xb2\x1b\x44\x0c\xfb\x97\x61\x1d\x69\x67\xe1\xf2\x3a\x4d\x31\x2a\x1b\xa5\x95\xf7\x15\x6b\xcd\x19\xf4\x2a\x51\x5c\xb9\x49\x6d\xd0\xa3\x18\xa5\x7a\x8f\xb9\x35\x4f\x45\x2b\x35\x35\xc7\x81\x89\xc3\x64\x73\xec\x81\x8c\xca\x83\x08\x64\x04\x64\x34\x21\x64\xd4\xe2\x7d\x73\x0c\x3c\xaa\xb8\x70\x46\x69\x14\x00\x42\x82\xb6\x7f\x7e\xda\x3e\x10\x52\x9b\xeb\x06\x08\x09\xf6\x1d\xa8\x2b\x43\x55\x57\x80\x90\x76\x22\xa4\x56\x6d\x15\xc7\xc0\xa4\xa9\x48\x8f\x40\x4a\x10\x32\x8f\x9c\xa6\xf3\x11\x32\x07\x24\xcb\x41\xe4\xb0\x7f\x19\xd6\x91\x06\xa4\x34\x5a\xb1\x6a\xf2\x48\x89\x12\x47\xee\x06\x4b\x9d\xa2\x24\x9d\x60\x3b\x70\xbd\x47\xcf\xcd\xb8\x5f\xcc\x5d\xca\x6d\x4a\xfd\x5d\x43\x32\x2f\x04\xd3\xbf\xb3\x61\xf8\x33\x7a\xe8\x2c\xaf\xb5\x52\x2a\x9e\x61\xe5\x39\xe6\x05\x49\x2a\x78\xc9\xd2\xbb\x29\xed\x3d\x1d\x61\x29\xfc\x75\x23\x27\x23\x52\x8d\x0e\x35\x72\x98\x32\xe5\xde\x3e\x8a\xe0\xbc\x93\x88\xd2\x2c\x9e\x63\x26\x51\xd4\x37\x9b\x70\x7d\xb3\xc3\xa8\xee\x50\x6d\xb3\xbd\x56\xbf\x16\x30\x24\x2a\x9a\xa1\xa2\x19\x2a\x9a\xa1\xa2\xd9\xd4\x2a\x9a\x1d\x3e\x79\x2b\xab\x99\x75\xec\xf4\x71\xb2\x1a\x66\x87\xbb\xbf\xbb\x7e\xd9\x90\xc7\xe0\x98\xaa\x65\x87\xc7\x60\x77\xc5\xb2\x8e\xc7\x00\x75\xca\x50\xa7\x0c\x75\xca\x50\xa7\x0c\x75\xca\x3a\xab\x53\x56\xe3\xf4\xdf\xaa\x51\xb6\x37\x6d\xe7\x19\xf9\x7c\xd6\xeb\x0d\xea\xac\x8d\xac\xce\xda\xe1\x45\xb4\xaf\xc6\x5a\xc7\xab\xa9\xd7\xca\x6a\x87\x47\x66\x4f\x55\xb5\xae\x4f\x8d\xa1\xd6\x52\x3b\x3c\x68\x15\x86\xfd\xc6\xe6\x2c\xfd\xd3\x3f\xda\x63\x49\x15\x19\xeb\x3b\x42\x4a\x45\x8e\x14\x98\xbb\x2f\x5c\xb2\x07\x2f\xd8\xed\xf7\xd3\x0a\x4f\x7a\x9b\x8b\xbe\x24\xde\x6b\x31\x49\x4a\xcf\xb9\x4c\x3f\x2b\xe9\x82\x85\x67\xb7\x45\xa3\x40\xa2\x40\xa2\xc6\x45\xa2\x40\xa1\x40\xa1\x40\xa1\xf2\x0f\x82\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\x8d\x8f\x42\x21\xaf\x0a\x18\x1b\x18\x1b\x18\x1b\x18\x1b\x18\xdb\x4b\x19\xdb\x42\xa4\xfc\xfa\xaa\x11\x42\xeb\x25\xe2\x73\x63\xda\x57\x22\x2d\x0b\xb2\x6a\x86\xf7\x60\xaf\x95\x48\x37\xa0\x17\x0d\xc1\xcd\xdd\xa7\x2f\x55\xdf\x46\xb8\xeb\x91\x10\xaa\x30\x90\x14\xc3\x36\x31\x12\x45\x8b\xa5\xf0\xf5\x57\xc5\x26\x1c\xb1\xe3\x6a\x05\x48\x76\x58\x7f\xbd\x50\x84\x76\x4f\x48\xe4\x9e\x7d\x54\x59\x8b\x9d\xfa\xf6\xc1\x3e\xba\xc3\x2a\x81\xe0\x5d\x13\xe6\x5d\xf5\xd2\x1e\x1c\x62\x5e\x1d\x56\x5f\x6c\x96\x4f\xa5\x93\xf3\xf6\x23\xed\xc3\xcf\x91\x3a\x3c\xea\x9d\xb6\x87\x0b\xd0\x83\xe5\x81\xe5\x81\xe5\x81\xe5\x4d\x89\xe5\xd5\xbb\x55\x2a\x79\xde\xc9\xf2\x1c\x21\x1d\x55\xed\x89\xea\x33\x1d\xd5\xc9\x00\xec\x11\x09\xa0\x2a\x01\xe4\xc9\x46\xe4\x5b\xd1\xd8\xe4\x05\x2c\x51\x36\x20\xb6\x10\x4b\x25\x39\x5b\x63\x7d\x2e\x4a\xe8\xd3\x8b\x96\x4e\x21\x01\x57\x10\x06\x97\x81\x58\x71\x5a\xa0\xda\x5c\x54\x4c\xd4\xa5\xc0\x9d\xdd\x1a\x5a\xa1\xf1\xd6\x6b\xe1\x7a\x3c\x15\xfe\x73\x2e\xd2\xe6\x57\xae\xe7\xbf\xd5\xe6\x20\x1a\x74\xb6\x8a\xb9\x43\xbb\xc6\x0b\x5d\x2b\x10\xe4\x97\x36\xe9\x0b\x66\x95\x66\x89\x6c\x64\x71\xba\xb8\xfc\xa6\xe9\x90\x7e\xc9\xb2\x50\x3f\xdb\x93\x5f\xa0\x76\xaa\xb4\xa5\x15\x6d\x6c\x30\xcd\xd4\xe6\x3b\x6a\x72\x95\x89\xed\x80\x91\x6d\x28\xcb\xff\x18\xf6\x5e\x6f\x5c\x76\xf3\xf7\x93\x2d\x7f\x90\x78\x90\x78\x90\x78\x90\x78\x90\xf8\xce\x48\x7c\xcd\xbb\x60\x8b\xc6\x9f\xee\x5a\xfc\x58\x08\xf7\x89\x7c\xc1\x13\x61\x8f\xa0\xbb\x38\x8c\xf8\x8a\xa4\xa3\xbb\xd0\xf7\x9c\xe7\x92\x1d\xcc\x2c\xba\x3c\x5e\x48\x2e\xbb\xeb\xf9\x9f\xe6\xec\xab\x3a\xcf\x94\xe8\x12\x89\x40\x6e\x96\xfc\x4e\x15\x2c\x8c\xa3\x7b\x1e\x18\xbb\x5c\x9c\x89\xab\x25\xf7\x8d\xae\xfc\xfd\x42\xfd\xf9\xfb\x05\x5b\x7a\x01\xf7\xbd\x7f\x9b\x8b\x64\x21\x18\x77\x5d\x5a\x9d\x57\x8a\x6e\xb9\xb9\x1a\xa6\x1e\x3f\x4b\xf2\x2f\x29\xfd\x74\xce\x6e\x3d\x3a\x1c\x0b\x4d\x0f\xe3\xed\xbe\xd1\xf1\xa3\x4c\x45\x4a\x3d\x26\x1d\x25\x4c\xef\x9b\x4c\xa8\xea\xc1\x47\xd3\xf7\x93\x99\xf8\xb6\x15\x33\xea\xba\xdc\xb0\xf7\xe1\x13\x5b\xf1\x78\xc1\x57\x25\x3b\xba\x55\x6a\x44\xbc\x0c\xe3\xb5\x9c\x93\xca\xf1\xfa\xbc\xd1\xa3\xdd\xc3\x45\x42\xaf\x91\x58\x23\x35\xb6\x9e\x94\x26\x1d\xcf\xcd\x55\x61\x92\x15\x54\xee\x7b\x33\xc7\xf2\xb2\xd6\x37\xa9\x91\x06\xe6\x85\xc9\x34\xf7\x88\x51\xb5\x2f\xad\x8d\xb9\xfc\xb2\x39\xbb\x71\x1c\x11\xa9\xd4\xb6\x45\xcd\x6e\xa6\xfa\x30\x63\x97\x7a\x01\x96\x17\x68\xf2\x9e\xcd\xfe\xcc\x9d\x87\x55\x1c\x66\x81\x2b\x3f\x45\xb6\x5a\xfa\xd0\xc6\xc0\x29\x11\x52\xcb\xc7\xe5\x87\x98\x1e\x2c\xec\x93\xde\xb3\xd9\x2f\x61\x2c\x0a\x8f\x65\x0e\x4f\x1c\xee\xca\xde\xeb\xf1\x51\xe6\x7c\x7a\x5e\xa2\x54\xcf\xad\x07\x2e\xed\x33\x9a\x2c\xc8\x68\x73\xb9\xf7\x68\x29\x80\x63\xc9\x78\x1c\x4b\xea\xad\xae\x7d\xce\x25\xa7\x53\xe6\xfb\x74\x33\xa9\x37\x4e\x7b\x5c\x4d\x4e\x77\xe1\x0f\xd5\xe9\xa4\xde\x10\x6e\x3b\x9e\xa0\x46\xc9\x10\x3c\x28\x74\x99\x87\x89\x3b\x4e\x14\xbe\xbe\x23\x8e\x57\x5d\xe2\xb9\x80\x35\xf8\x90\xde\x8d\x2e\x6e\xc7\xf5\xb6\x9e\x9d\x40\x59\xdb\x62\x7d\xed\x1b\xb5\xe0\x50\x62\x82\x3d\x5e\x1d\xf2\x81\x95\x3e\x1d\xf0\xe4\x80\x27\xc7\x14\x3d\x39\xe0\xfb\x00\xdf\x07\xf8\x3e\xc0\xf7\x01\xbe\x0f\xbd\xfb\x3e\x00\xaa\x83\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\xee\xbc\x04\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x90\x2a\x75\x1f\x63\x39\xae\x60\x29\xd9\xb9\x77\x56\x2d\x3d\x87\x58\xd6\xc3\x48\x66\x14\xf5\xfd\x0e\x62\x98\x06\xe9\x55\xc7\x92\x94\xe4\xd5\xc6\x54\x5e\x44\x61\xd2\x32\x73\x52\x92\x3f\xe3\x4d\xf0\x92\xfa\x6e\xd7\x80\x69\xcc\xd5\xee\xf7\x9f\x42\x28\x79\x7f\x3e\x31\x46\x28\x79\x8f\x92\xf7\x15\x8d\x99\xa4\x74\x35\xa1\xba\xf7\x6d\x75\xf4\xa7\x83\x1d\x55\xbe\xb9\x63\xef\xe9\x74\x85\x65\x12\xbd\xc6\x2a\x2c\xbf\x62\x2d\xe5\xb3\xa9\x28\xd2\xd2\x61\x5a\x9b\x46\x52\xe9\x9e\x54\x36\xbd\x4b\xa5\x23\xc9\x19\x02\x99\xb2\x38\xc9\x83\x95\x29\x11\xa5\x7d\x46\x51\xda\x08\x47\x43\x38\x1a\xc2\xd1\x10\x8e\x06\x75\x78\xd7\x2e\x1a\x64\x40\x47\x3f\xaa\x1f\xe2\x51\x0e\xea\x73\x5a\x6d\x19\xab\x46\x67\x91\x40\xeb\x51\x28\xe4\x8f\x50\x96\xcc\x1a\x68\x61\xf2\x29\x27\x0e\x3d\x29\x48\x33\xe2\x07\x39\x94\x2d\xe4\x4f\xdc\x49\xe7\x8c\xdd\xca\x7f\xcd\xef\xd7\xdc\x23\xbb\x67\xc2\x1c\x3f\x4b\x52\x11\xe7\x77\x94\xf2\x3c\x65\xbe\xf7\x20\xd8\xec\x6f\x7c\x2d\x92\x88\x3b\x62\x26\x45\x51\x23\x3e\xcd\xd9\x9d\xcf\x83\x40\x3b\x84\x90\x80\xc3\x7d\x25\x53\x5d\xff\xdc\xe4\xd0\xa7\x36\xf6\x24\x7a\xd8\x41\xb3\x92\xfb\xc2\x0c\x9f\xec\x29\xbb\x55\x23\x26\xaf\x9b\x28\x31\xa3\xa3\x7d\xae\xb2\x44\xc4\xe4\x2c\x95\x0b\xe1\xcf\x1d\x0f\x94\x6c\xcc\x74\x49\xff\xb0\xef\x44\xd8\x13\x8b\xb3\xf9\xd2\xfb\x47\x9e\xdb\xa3\xbf\x7c\x1a\xb0\x77\x94\x3b\x19\xa6\x67\x01\x79\x00\x35\xaa\x14\x70\x49\xdf\xfd\xc3\xfe\x03\x71\x2d\xe2\x95\xa8\xf5\xc9\x24\x8d\x79\x2a\x56\x9e\x73\x59\xff\x3b\xf2\xe7\x67\xfd\x49\x3a\x7a\xeb\x08\x3a\xe4\x32\x4a\x11\x69\xca\x5b\xed\xe5\x42\x4f\x54\x51\x84\x7b\x20\x96\xe7\xae\xfc\x21\xf6\x68\x1a\x77\x65\xa7\x32\x06\x7b\xf4\xc4\xed\xd1\xe7\xe3\xe3\xb0\x11\xfb\x61\x36\x97\x8a\x4f\x8a\x94\xbb\xb6\x8e\x79\x7f\xbd\xe3\x9c\x7a\x43\xd6\x38\x15\x94\xcc\x7d\xfa\x66\x10\x06\x97\xea\xdb\xf4\x09\x32\x88\x27\xec\xf5\x5f\x93\x30\xb8\x53\xa1\xdf\xbf\xc9\x13\x51\xff\xfc\xd5\x9c\x93\xf9\x2f\xdf\x0c\xc9\xf9\xa2\xfe\xba\xf9\x25\x8c\x1d\x22\x06\xab\x90\x26\x3f\x64\xdf\x2f\x96\xf2\x77\xdf\x2f\xd8\x4d\x69\x34\xe7\xec\x53\xaa\xcd\xfb\xa4\x7c\xe8\x8d\x7a\xc9\x1d\x9a\x00\x0a\x1e\xf6\x3d\x47\x1b\x2c\x49\x57\x09\x9f\xf4\xdc\xaa\xe0\xda\x48\x84\x91\x2f\xe6\x4c\xbd\x93\x72\x06\x98\x35\x45\xfe\xfc\x95\x13\x61\x5f\xdf\x64\x78\xe5\x8b\xa0\xb2\xa8\x3f\x40\x65\x19\xb3\xca\x12\x6d\xf8\x98\x8f\x55\x69\xc9\x5a\xb7\x98\x45\x3e\x77\x5a\x90\x1f\xf5\x83\xce\x4b\x82\x84\x47\x2d\xa4\xcd\x26\xd3\x74\x3e\xd2\xe6\x80\x84\x3a\xc8\x1e\xf6\x2f\x03\x3c\xd7\xce\xc7\xa3\x76\xc2\x42\x56\x36\x5e\xbb\xf0\x2b\xd6\xae\x9b\xe9\x55\xa2\x60\x75\x93\x7a\xa6\x47\xe1\x4e\xf5\x1e\x73\x9d\x9e\x14\x7c\x6a\x1e\x8f\xe3\x14\xa7\xcc\x09\x4f\x19\xd0\x27\xd0\x27\xd0\xa7\x8a\x4f\xf6\x47\x9f\x5a\xbc\x83\x8e\xe6\x50\x15\x97\xd0\x28\x6d\x09\xa0\x51\xb0\x0f\x9c\x9f\x7d\x00\x34\xaa\xcd\x75\x03\x1a\x05\x8b\x10\x54\x18\x36\x78\x15\x06\x34\xaa\x7a\x36\x0d\x8d\x6a\xd5\xa6\x71\x34\x97\x9a\x8a\x44\x09\x3a\x05\xe9\xb3\xc9\x34\x9d\x8f\xf4\x39\x20\x21\x0f\xb2\x88\xfd\xcb\x00\xcf\x35\xd0\xa9\x09\x08\x5d\x67\x44\xa7\x28\x29\xe6\x6e\x46\xd5\x29\x95\xd2\xc9\xc3\x03\xd7\x7b\xf4\xdc\x8c\xfb\xc5\xbc\xac\xdc\x96\x0b\xd8\x35\x38\xf3\x42\xb0\xff\x3b\x9b\x26\x60\x46\x0f\x9d\xe5\x75\x64\x4a\x85\x41\xac\xc8\xc7\xbc\x20\x49\x05\x2f\x19\x88\x37\x05\xc2\xa7\x63\x0d\x8c\xbf\x6e\xa4\x9a\x44\x2e\xd5\xa1\x86\x37\x53\x2a\xe0\xdb\x47\x11\x20\x41\xaa\x5a\xe6\x67\x9b\x25\x15\xa5\xdc\x26\x5c\xca\xed\x30\xf0\x3b\x54\xc6\x6d\xaf\xd9\xb0\x05\x98\x89\xe2\x6d\x28\xde\x86\xe2\x6d\x28\xde\x36\xb5\xe2\x6d\x87\x4f\xde\xca\xc2\x6d\x1d\xbb\x8e\x9c\xac\x5c\xdb\xe1\xee\xef\x2e\xd5\x36\xe4\x31\x38\xa6\x40\xdb\xe1\x31\xd8\x5d\x9c\xad\xe3\x31\x40\x49\x36\x94\x64\x43\x49\x36\x94\x64\x43\x49\xb6\xce\x4a\xb2\xd5\x38\xfd\xb7\xca\xb1\xed\xcd\x32\x7a\x46\x9e\xa3\xf5\x7a\x83\x92\x72\x23\x2b\x29\x77\x78\x11\xed\x2b\x27\xd7\xf1\x6a\xea\xb5\x88\xdc\xe1\x91\xd9\x53\x40\xae\xeb\x53\x63\xa8\x65\xe3\x0e\x0f\x5a\x85\x89\xbf\xb1\x39\x4b\xff\xf4\x8f\x96\xf9\x52\x45\xaa\xfd\x8e\x30\x53\x91\x2d\x05\xe6\x02\x0c\x97\xec\xc1\x0b\x76\xbb\x0b\xb5\xc2\x98\xde\xe6\xf2\x2f\xc9\xf8\x5a\x56\x92\x22\x74\x2e\xd8\xcf\x4a\x0a\x61\xe1\xd9\xad\x12\x2a\xd0\x29\xd0\xa9\x11\xd2\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\x29\x90\xa9\xd1\x93\x29\x64\x6c\x01\x77\x03\x77\x03\x77\x03\x77\x03\x77\x3b\x86\xbb\xc5\x62\xe5\x51\x32\x27\xd9\x4a\x4d\xde\x1a\xb1\xb4\x5e\xe2\x44\x37\x26\x7c\x45\x25\x37\x97\x61\xbc\xb6\x0b\x9c\x33\x65\xbf\xdf\x8d\xc0\x56\x22\xbd\x29\x8f\xc3\xcd\xdd\xa7\xbf\x6c\x7e\x09\xe1\xb1\x47\x22\x28\x3b\x88\xe3\x07\x50\xc5\xb5\x51\xf8\xe2\xab\xe2\xcb\x6b\x6d\xac\xc7\xeb\x71\xef\xad\x92\x7a\xa8\xce\xcd\xa3\x36\xd6\xef\xd7\x37\x77\x9f\xbe\x54\x7d\x15\xdb\xeb\xf8\xed\x65\x06\x92\x82\x46\xa7\xb5\xcb\xfe\xfb\xf1\xfa\xa5\x1b\x4d\xd3\x34\xcf\x29\x4d\xa3\xa9\x67\xda\xaa\x7b\x88\xae\x9c\x5c\x28\x43\x1d\x2e\xd9\xcd\xdd\xa7\xaf\xea\xfd\x7b\xb6\x88\xfa\xe6\xd6\x2e\xf9\x60\x9f\x54\xfd\x94\x86\x95\x3f\xc1\x83\x27\xcc\x83\xeb\xa5\x14\x39\xc4\x84\x3b\xac\xa8\xda\x2c\x61\x51\x27\x87\xe7\x47\xda\x76\x9f\x23\x95\xa0\xa0\xde\xd1\xb9\x7f\x6b\x81\x75\x83\x75\x83\x75\x83\x75\x4f\x8d\x75\xd7\xbb\x55\x2a\x79\xf7\xc9\x72\x88\x21\xd5\x5b\xed\x89\xea\x33\xd5\xdb\xc9\x1c\x14\x8e\x48\xae\x56\x09\xe8\x4f\x36\x22\xdf\x8a\xc6\x58\x2f\x60\x89\xb2\x91\xb2\x85\x58\x2a\xc9\xd9\xc2\xac\x5c\x94\xd0\xa7\x17\x2d\x9d\x42\x72\xbb\x20\x0c\x2e\x03\xb1\xe2\xb4\x40\xb5\x39\xb5\x98\x04\x4f\x81\x6d\xbb\x35\xb4\xc6\xe2\xad\xd7\xc2\xf5\x78\x2a\xfc\xe7\x5c\xa4\xcd\xaf\x5c\xcf\x7f\xab\xcd\xa5\x34\xe8\x6c\x15\x73\x87\x76\x8d\x17\xba\x56\x20\xc8\x2f\x6d\xd2\x17\xcc\x2a\xcd\x12\xd9\xc8\xe2\x74\x71\xf9\x4d\xd3\x21\xfd\x92\x65\xa1\x26\xbe\x27\xbf\x40\xed\x54\xb9\x82\x2b\xda\xd8\x60\x9a\xa9\xcd\x77\xd4\xe4\x2a\x13\xf4\x01\x23\xf4\x50\x96\xff\x31\xbe\x29\xf5\xc6\x65\xb7\x7f\xca\xc9\x96\x3f\x3c\x55\xe0\xa9\x02\x4f\x15\x78\xaa\xc0\x53\xa5\x33\x4f\x95\x9a\x77\xc1\x96\xb7\xca\xe9\xae\xc5\x8f\x85\xe8\xb8\xc8\x17\x3c\x11\xf6\x08\xba\x8b\xc3\x88\xaf\x48\x3a\xba\x0b\x7d\xcf\x79\x2e\xd9\xc1\xcc\xa2\xcb\xc3\xeb\xe4\xb2\xbb\x9e\xff\x69\xce\xbe\xaa\xf3\x4c\x89\x2e\x91\x08\xe4\x66\xc9\xef\x54\xc1\xc2\x38\xba\xe7\x81\xb1\xcb\xc5\x99\xb8\x5a\x72\xdf\xe8\xca\xdf\x2f\xd4\x9f\xbf\x5f\xb0\xa5\x17\x70\xdf\xfb\xb7\xb9\x48\x16\x82\x71\xd7\xa5\xd5\x79\xa5\xe8\xaf\x9b\xab\x61\xea\xf1\xb3\x24\xff\x92\xd2\x4f\xe7\xec\xd6\xa3\xc3\xb1\xd0\xf4\x30\xde\xee\x1b\x1d\x3f\xca\x54\xa4\xd4\x63\xd2\x51\xc2\xf4\xbe\xc9\x84\xaa\x1e\x7c\x34\x7d\x3f\x99\x89\x6f\x5b\x31\xa3\xae\xcb\x0d\x7b\x1f\x3e\xb1\x15\x8f\x17\x7c\x55\x32\x94\x5b\xa5\x46\xc4\xcb\x30\x5e\xcb\x39\xa9\x1c\xaf\xcf\x1b\x3d\xda\x3d\x5c\x24\xf4\x1a\x89\x35\x52\x63\xeb\x49\x69\xd2\xf1\xdc\x5c\x15\x26\x59\x41\x15\x9c\x30\x73\x9c\x10\x3c\xa6\xbf\x1a\x69\x60\x5e\x98\x4c\x73\x8f\x18\x55\xfb\xd2\xda\x98\xcb\x2f\x9b\xb3\x1b\xc7\x11\x91\x4a\x1b\x5d\xd4\xec\x66\xaa\x0f\x33\x76\xa9\x17\x60\x79\x81\x26\xef\xd9\xec\xcf\xdc\x79\x58\xc5\x61\x16\xb8\xf2\x53\x64\xab\xa5\x0f\x6d\x0c\x9c\x12\x21\xb5\x7c\x5c\x7e\x88\xe9\xc1\xc2\x3e\xe9\x3d\x9b\xfd\x12\xc6\xa2\xf0\x58\xe6\xf0\xc4\xe1\xae\xec\xbd\x1e\x1f\x65\xce\xa7\xe7\x25\x4a\xf5\xdc\x7a\xe0\xd2\x3e\xa3\xc9\x82\x8c\x36\x97\x7b\x8f\x96\x02\x38\x5e\x8d\xc7\xf1\xaa\xde\xea\xda\xe7\x7c\x75\x3a\x65\xbe\x4f\x37\xac\x7a\xe3\xb4\xc7\x15\xeb\x74\x17\xfe\x50\x9d\xb2\xea\x0d\xe1\xb6\x63\x16\x0a\x03\x0d\xc1\x1d\x42\xd7\x51\x99\xb2\x17\x44\xe1\xbb\x3b\x22\xdd\xd5\x0d\x9e\x4b\x57\x2d\x05\xbd\x57\x38\x58\x54\x87\xbd\x57\x3a\x2b\x6c\x06\xba\xef\x8b\x71\x6f\x3d\x71\x87\xb2\xac\xc5\xfa\x8a\x37\x2a\x80\xc9\xd9\x51\xcb\x45\x43\x3e\xa2\xca\x8d\x09\x6e\x19\x70\xcb\x98\x82\x5b\x06\x1c\x19\xe0\xc8\x00\x47\x06\x38\x32\xc0\x91\xa1\x77\x47\x06\x10\x72\x40\x53\x40\x53\x40\x53\x40\x53\x40\x53\x40\x53\x40\xd3\x9d\x97\x00\x38\x06\x38\x06\x38\x06\x38\x06\x38\x06\x32\x04\xef\x04\x26\xb2\xed\x97\x7c\xb5\x92\x3b\x31\x0d\xcb\xc5\x7c\x4b\x26\x7d\x15\x4d\xaa\xed\xd9\x93\x0f\x26\x3d\x8c\x51\x5a\xac\x64\x79\x3a\x74\xd2\x20\x3d\xf0\x58\x92\xea\xbc\xda\x98\xb9\x8b\x28\x4c\x5a\xe6\x44\x4a\x98\x67\x3c\xa8\xc7\x84\xd4\xc7\x5b\xa6\x42\xcd\xe2\x23\xf7\xe4\x64\x3a\xf5\xd1\xd1\x4a\x20\x25\x82\x79\x8a\xab\x61\xb0\xc1\x3c\xa4\xc3\xff\xc6\x03\xbe\x12\xb1\xb2\x46\x51\x02\x32\x9e\x24\xa1\xe3\x91\x7a\x65\xed\x3e\x9c\xcc\x77\x61\xcc\xa4\xf6\x9d\x3e\x5b\x7d\x73\xcd\x1f\xe4\x28\xa6\xf7\x22\x11\x46\x86\x2a\x86\xac\x98\xd0\x16\x92\x21\xc9\xc6\x13\xc6\xec\xfa\xa7\x9f\xe5\x67\x63\xee\x10\xd4\xf1\xc3\x60\xa5\x24\x26\xb2\xc3\x48\x85\x99\x7b\x81\x3a\xb4\xc8\xce\x91\x7f\x96\x0c\xdd\x1a\x39\xb1\xc5\x33\xa3\x3b\xe5\xdd\xd5\xd5\x2a\xf4\x79\xb0\x9a\x87\xf1\xea\x2a\x7a\x58\x5d\x65\x81\xe7\x84\xae\xb8\xfa\x8f\x4f\xc9\x9d\x7c\x4a\x63\xc3\xa9\x1e\x9c\x36\xa7\x67\x50\x22\xd6\xe4\x24\x9f\xba\x52\xcf\x4f\x35\xa4\x9e\x0f\xca\x38\x34\x92\xfe\xfc\x74\xb0\x3f\xca\xa5\x75\x24\x1d\x9a\xa8\x58\x4a\x52\xcf\x48\xc4\xd2\x57\xac\x59\xa6\x96\x8a\x62\x3e\x1d\x26\x6c\xa9\x2b\xee\xed\xc8\xd2\xd2\x87\xb8\x37\x92\x74\x18\x90\xe2\x8a\x93\x3c\x58\x29\x0e\x01\xc8\x67\x14\x80\x8c\x48\x2b\x44\x5a\x21\xd2\x0a\x91\x56\x50\x40\x77\xed\xa2\x41\xc6\x2a\xf4\xa0\x9e\x21\xd4\xe2\xa0\x32\xa6\xb5\x92\x91\xa8\x63\xd6\x72\xde\x7a\x80\x05\x91\xf8\xb2\x14\x56\x4b\xa5\x92\xdf\xeb\x36\xaa\xa2\x20\x9a\x88\x1f\xe4\x2b\xb5\x90\x3f\x71\x27\x9d\x33\x76\x2b\xff\x35\xbf\x5f\x73\x8f\xcc\x86\x09\x73\xfc\x2c\x49\x45\x9c\x5f\x38\xca\xa9\x92\xf9\xde\x83\x60\xb3\xbf\xf1\xb5\x48\x22\xee\x88\x99\x94\x2b\x8d\x2c\x34\x67\x77\x3e\x0f\x02\xed\xeb\x40\xd2\x0a\xf7\x95\x80\x74\xfd\x73\x93\x13\x9c\xda\xd8\x93\x1c\x61\x07\xcd\x8a\xe1\x0b\x33\x7c\xb2\xa7\xec\x56\x8d\x98\xbc\x3b\xa2\xc4\x8c\x8e\x76\x27\xca\x12\x11\x93\x1f\x50\x2e\x51\x3f\x77\x3c\x50\xb2\x31\xd3\x85\xd8\x03\xbe\xe0\x60\xc0\x6b\x70\x67\xc8\xc3\x77\x6c\x17\x46\x03\xac\x5c\xac\x44\xb3\xeb\xfd\xa8\x3d\x73\x0a\x4c\x4e\x1e\x2a\x8d\x12\xcc\x5f\xd2\x77\xff\xb0\xff\x54\x5b\x8b\x78\x25\x6a\x7d\x92\xd6\xaa\x58\x79\xce\x65\xfd\xef\xc8\x9f\x9f\xf5\x27\xe9\xfc\xac\x23\x8e\x90\x4b\x23\x45\x4c\x29\x6f\xaa\x26\xa2\x49\xa4\x4b\xa2\xf7\x6f\xec\xed\x84\xed\xef\x17\xee\xef\xca\x5e\x4d\x0c\x26\xe0\x89\x9b\x80\xcf\x07\xe4\x6f\x04\x1f\x98\xcd\xa5\x02\x64\x22\xe5\x2f\xac\x83\xae\x5f\xef\x38\x88\xde\x90\x01\x4c\x45\xc5\x72\x9f\xbe\x19\x84\xc1\xa5\xfa\x36\x7d\x82\x6c\xd0\x09\x7b\xfd\xd7\x24\x0c\xee\x54\xec\xf1\x6f\xf2\xc8\xd3\x3f\x7f\x35\x07\x61\xfe\xcb\x37\x43\xf2\x30\xa8\xbf\x6e\x7e\x09\x63\x87\x8c\xf4\xab\x90\x26\x3f\x64\xdf\x2f\x96\xf2\x77\xdf\x2f\xd8\x4d\x69\x34\xe7\xec\x53\xaa\x2d\xea\xa4\x22\xe8\x8d\x7a\xc9\x1d\x9a\x00\x8a\x5e\xf5\x3d\x47\xdb\x08\x49\xa3\x08\x9f\xf4\xdc\xaa\xe8\xce\x48\x84\x91\x2f\xe6\x4c\xbd\x93\x82\xd6\xcd\x9a\x22\x87\xf2\xca\x89\xb0\xaf\x6f\x32\xbc\xf2\x45\x50\x2c\xd4\x1f\xa0\x58\x6c\x3c\x75\x70\x8a\x45\xb4\xe1\xc8\x3c\x12\xd5\x22\x6b\xdd\x16\x15\xf9\xdc\x69\x24\xf3\xe9\xaf\x4e\x57\xea\x83\x47\x27\x04\x41\x08\x82\xf0\xe8\x84\x58\xa0\x7e\xde\x40\x6c\xd3\xf2\xe8\x9c\xaa\x98\x93\x8d\xc6\x7e\xfa\x8a\xbd\xc8\xff\xf1\x2a\x51\x8c\xb5\x49\xad\xc8\xa3\xc8\x9d\x7a\x8f\xb9\xf7\xda\x65\x78\x9a\x13\xe3\x60\xc3\x41\x00\x90\x02\x90\x02\x90\x32\x6a\x90\xf2\xa2\x9b\xe2\x10\x52\xa9\xb8\x2a\xc6\xa7\x62\x03\xac\x40\x9f\x3e\x4b\x7d\x1a\x60\xa5\xcd\x75\x03\xb0\x02\x0b\x0a\x14\x8d\x61\x28\x1a\x00\x2b\x25\xb0\xf2\x42\x6b\xc1\x21\xc4\x32\x09\x29\x10\xa0\x05\x82\x21\x04\x43\x80\x16\x88\x09\xea\x67\x80\x96\x11\x8a\x3d\x13\x05\x2d\x94\xb2\xaf\x88\x5b\x3a\x05\x2c\x3a\x99\x71\xe0\x7a\x8f\x9e\x9b\x71\xbf\x98\x27\x92\xdb\xf4\xe5\x79\xc7\xe7\x85\x00\xeb\x77\x36\x34\x7b\x46\x8f\x99\xe5\x95\x2c\x4a\xa5\x09\xac\x8c\xc5\xbc\x20\x49\x05\x2f\xd9\x4d\x37\x25\xb0\xa7\x03\x56\xb8\x5f\x37\xf2\xde\x21\x79\xe3\x50\x23\x48\x29\xf7\xe8\xed\xa3\x08\xce\x3d\x55\x23\xcd\xe3\xb9\xe4\x6b\x44\x9d\xa8\x09\xd7\x89\x3a\x8c\xb8\x0e\xd5\x88\xda\x6b\x47\x6b\x01\xdf\xa1\x32\x14\x2a\x43\xa1\x32\x14\x2a\x43\x4d\xad\x32\xd4\xe1\x93\xb7\xb2\x2a\x54\xc7\xce\x12\x27\xab\x05\x75\xb8\xfb\xbb\xeb\x40\x0d\x79\x0c\x8e\xa9\xfe\x74\x78\x0c\x76\x57\x7e\xea\x78\x0c\x50\xef\x09\xf5\x9e\x50\xef\x09\xf5\x9e\x50\xef\xa9\xb3\x7a\x4f\x35\x4e\xff\xad\x5a\x4f\x7b\x93\x36\x9e\x91\xaf\x64\xbd\xde\xa0\x5e\xd5\xc8\xea\x55\x1d\x5e\x44\xfb\x6a\x55\x75\xbc\x9a\x7a\xad\x50\x75\x78\x64\xf6\x54\xa7\xea\xfa\xd4\x18\x6a\x4d\xaa\xc3\x83\x56\x61\xce\x6f\x6c\xce\xd2\x3f\xfd\xe3\x65\x6c\xa8\x22\x15\x79\x47\x88\xa8\xc8\x85\x02\x73\xdf\x85\x4b\xf6\xe0\x05\x6e\xdb\x7c\xe8\x6d\x2e\xe0\x92\x10\xaf\x85\x21\x29\x23\xe7\x92\xfb\xac\xa4\xf1\x15\x9e\xfd\x12\xba\x04\xb2\x04\xb2\x34\x36\xb2\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x04\xaa\x34\x36\xaa\x84\x8c\x22\xf5\x67\x07\x94\x0c\x94\x0c\x94\x0c\x94\x0c\x94\x2c\xa7\x64\x0b\x91\xf2\xeb\xab\x46\x48\xac\x97\x98\xca\x8d\x89\x5f\x89\xb4\x2c\xbc\xaa\x39\xde\x03\xb5\x56\x22\xdd\x42\x5a\x34\x08\x37\x77\x9f\xbe\x54\x7d\x1f\x21\xa5\x47\x02\xa7\xc2\x40\x52\xfc\xd9\xe4\xa8\x13\x2d\x97\xc2\x03\x5e\x15\x1b\x71\xd4\xbe\xdb\x11\xb8\xd8\x61\x81\xec\x42\xf9\xd0\x52\xa8\xe2\x9e\x1d\xb3\xa3\x56\x36\xf5\xe0\x83\x7d\x5c\xab\x95\xde\x40\xb0\x26\x4c\xb0\xea\xa5\x0d\x38\x44\xb1\x3a\xac\xa0\x37\xe9\x3a\xee\xa0\x73\xa0\x73\xa0\x73\xa0\x73\x53\xa3\x73\xf5\x6e\x95\x4a\x42\x77\xb2\x3c\x41\x48\xe7\x54\x7b\xa2\xfa\x4c\xe7\x74\x32\xa4\x7a\x44\x02\xa5\x4a\xa4\x78\xb2\x11\xf9\x56\x34\x26\x79\x01\x4b\x94\x8d\x87\x2d\xc4\x52\x49\xce\xd6\xfc\x9e\x8b\x12\xfa\xf4\xa2\xa5\x53\x48\x60\x15\x84\xc1\x65\x20\x56\x9c\x16\xa8\x36\x07\x15\x13\x5d\x29\x14\x67\xb7\x86\x56\x5b\xbc\xf5\x5a\xb8\x1e\x4f\x85\xff\x9c\x8b\xb4\xf9\x95\xeb\xf9\x6f\xb5\xb9\x87\x06\x9d\xad\x62\xee\xd0\xae\xf1\x42\xd7\x0a\x04\xf9\xa5\x4d\xfa\x82\x59\xa5\x59\x22\x1b\x59\x9c\x2e\x2e\xbf\x69\x3a\xa4\x5f\xb2\x2c\xd4\x40\xf6\xe4\x17\xa8\x9d\x2a\x55\x67\x45\x1b\x1b\x4c\x33\xb5\xf9\x8e\x9a\x5c\x65\x42\x3b\x60\x44\x1b\xca\xf2\x3f\x86\xa6\xd7\x1b\x97\xdd\x44\xfd\x64\xcb\x1f\x6c\x1d\x6c\x1d\x6c\x1d\x6c\x1d\x6c\xbd\x33\xb6\x5e\xf3\x2e\xd8\xe2\xeb\xa7\xbb\x16\x3f\x16\x42\x75\x22\x5f\xf0\x44\xd8\x23\xe8\x2e\x0e\x23\xbe\x22\xe9\xe8\x2e\xf4\x3d\xe7\xb9\x64\x07\x33\x8b\x2e\x8f\xf5\x91\xcb\xee\x7a\xfe\xa7\x39\xfb\xaa\xce\x33\x25\xba\x44\x22\x90\x9b\x25\xbf\x53\x05\x0b\xe3\xe8\x9e\x07\xc6\x2e\x17\x67\xe2\x6a\xc9\x7d\xa3\x2b\x7f\xbf\x50\x7f\xfe\x7e\xc1\x96\x5e\xc0\x7d\xef\xdf\xe6\x22\x59\x08\xc6\x5d\x97\x56\xe7\x95\xa2\x57\x6e\xae\x86\xa9\xc7\xcf\x92\xfc\x4b\x4a\x3f\x9d\xb3\x5b\x8f\x0e\xc7\x42\xd3\xc3\x78\xbb\x6f\x74\xfc\x28\x53\x91\x52\x8f\x49\x47\x09\xd3\xfb\x26\x13\xaa\x7a\xf0\xd1\xf4\xfd\x64\x26\xbe\x6d\xc5\x8c\xba\x2e\x37\xec\x7d\xf8\xc4\x56\x3c\x5e\xf0\x55\xc9\x5a\x6e\x95\x1a\x11\x2f\xc3\x78\x2d\xe7\xa4\x72\xbc\x3e\x6f\xf4\x68\xf7\x70\x91\xd0\x6b\x24\xd6\x48\x8d\xad\x27\xa5\x49\xc7\x73\x73\x55\x98\x64\x05\x95\xef\xdd\xcc\xb1\xbc\xac\xf5\x4d\x6a\xa4\x81\x79\x61\x32\xcd\x3d\x62\x54\xed\x4b\x6b\x63\x2e\xbf\x6c\xce\x6e\x1c\x47\x44\x2a\x35\x6c\x51\xb3\x9b\xa9\x3e\xcc\xd8\xa5\x5e\x80\xe5\x05\x9a\xbc\x67\xb3\x3f\x73\xe7\x61\x15\x87\x59\xe0\xca\x4f\x91\xad\x96\x3e\xb4\x31\x70\x4a\x84\xd4\xf2\x71\xf9\x21\xa6\x07\x0b\xfb\xa4\xf7\x6c\xf6\x4b\x18\x8b\xc2\x63\x99\xc3\x13\x87\xbb\xb2\xf7\x7a\x7c\x94\x39\x9f\x9e\x97\x28\xd5\x73\xeb\x81\x4b\xfb\x8c\x26\x0b\x32\xda\x5c\xee\x3d\x5a\x0a\xe0\x38\x32\x1e\xc7\x91\x7a\xab\x6b\x9f\xf3\xc8\xe9\x94\xf9\x3e\xdd\x48\xea\x8d\xd3\x1e\x57\x92\xd3\x5d\xf8\x43\x75\x2a\xa9\x37\x84\xdb\x8e\x25\xa8\xcb\x31\x04\xef\x08\x5d\x12\x61\xf2\x4e\x11\x85\x07\xec\x88\xc7\x55\xd7\x78\x2e\x62\x0d\x32\x34\x77\xa3\x5b\xdb\xf1\xb9\xad\x67\x10\x50\x36\xb6\x58\x5f\xf6\x46\x19\xd8\x4e\x1e\xb0\xc7\x63\x43\x3e\x62\xa7\x93\x13\xbc\x34\xe0\xa5\x31\x05\x2f\x0d\xf8\x35\xc0\xaf\x01\x7e\x0d\xf0\x6b\x80\x5f\x43\xef\x7e\x0d\x00\xe6\x60\xa8\x60\xa8\x60\xa8\x60\xa8\x60\xa8\x60\xa8\x60\xa8\x3b\x2f\x01\x60\x0d\x60\x0d\x60\x0d\x60\x0d\x60\x0d\xa4\x33\xdd\xc9\x4f\x8e\x28\xf0\x49\x36\xed\xf9\x46\xbd\x43\xa0\x95\x8b\xc1\xd6\xcf\x3b\x88\x53\x1a\xa4\x3b\x1d\x4b\xca\x90\x57\x1b\xd3\x77\x11\x85\x49\xcb\xec\x48\xc9\xf6\x8c\x07\xf5\x38\x91\xfa\x78\x17\xa4\x68\x9c\xe5\xdb\x37\x8f\x13\xd4\x70\x3f\x9f\xa0\x1f\xd4\x70\x47\x0d\xf7\x8a\xc6\x8c\x5e\x24\x9a\x44\x21\xf7\xe6\x9d\xfa\xe9\x60\xa7\x94\x13\xec\x98\x7a\x35\x65\xc9\x95\x64\xa2\x31\x49\xae\xaf\xd8\x0b\x92\xbe\x54\x54\x24\xe9\x30\xf7\x4b\x5d\xb1\x70\x5f\xc2\x97\x3e\xc4\xc2\x91\x64\xd6\x80\xa0\x57\x9c\xe4\xc1\x0a\x7a\x88\x65\x3e\xa3\x58\x66\x04\x6d\x21\x68\x0b\x41\x5b\x08\xda\x82\x8e\xba\x6b\x17\x0d\x32\xec\xa1\x07\xbd\x0d\x51\x1b\xc7\x44\x6d\x8c\x4a\x45\xb3\x06\xf7\xd6\x63\x35\x88\xe7\x97\xe5\xb1\x5a\x1a\x96\xfc\xde\x09\x02\x34\x0a\x92\x8a\xf8\x41\x6e\x57\x0b\xf9\x13\x77\xd2\x39\x63\xb7\xf2\x5f\xf3\xfb\x35\xf7\xc8\xd0\x98\x30\xc7\xcf\x92\x54\xc4\xf9\xfd\xa3\xfc\x33\x99\xef\x3d\x08\x36\xfb\x1b\x5f\x8b\x24\xe2\x8e\x98\x49\x31\xd3\x88\x46\x73\x76\xe7\xf3\x20\xd0\x6e\x13\x24\xbc\x70\x5f\xc9\x4b\xd7\x3f\x37\x39\xd0\xa9\x8d\x3d\x89\x15\x76\xd0\xac\x54\xbe\x30\xc3\x27\x7b\xca\x6e\xd5\x88\xc9\xab\x24\x4a\xcc\xe8\x68\xcf\xa4\x2c\x11\x31\xb9\x14\xe5\x02\xf6\x73\xc7\x03\x25\x1b\x33\x5d\x1e\x3e\xe0\xfb\x0e\x86\xbe\x17\xdd\x23\xf2\x2c\x1e\xe5\x25\xd2\x80\x50\xa3\x48\xc7\x46\x37\x7b\x23\xee\xe4\xfb\xd2\x28\xbb\xfd\x25\x7d\xf7\x0f\xfb\x0f\xb9\xb5\x88\x57\xa2\xd6\x27\x69\xc1\x8a\x95\xe7\x5c\xd6\xff\x8e\xfc\xf9\x59\x7f\x92\x8e\xd3\x3a\x22\x0a\x39\x4b\x52\x2c\x96\xf2\xd3\x6a\x22\xae\x44\x95\x85\xa0\xa7\xe5\x26\xb0\x5f\xfe\xbf\x2b\x3b\x4d\x31\x58\x89\x27\x6e\x25\x3e\x1f\x77\x80\x8d\xd8\x06\xb3\xb9\x54\xfc\x4d\xa4\xdc\x91\x75\x4c\xf7\xeb\x1d\xa7\xd1\x1b\xb2\x91\xa9\xa0\x5b\xee\xd3\x37\x83\x30\xb8\x54\xdf\xa6\x4f\x90\x99\x3a\x61\xaf\xff\x9a\x84\xc1\x9d\x0a\x6d\xfe\x4d\x9e\x7b\xfa\xe7\xaf\xe6\x34\xcc\x7f\xf9\x66\x48\x7e\x0a\xf5\xd7\xcd\x2f\x61\xec\x90\x1d\x7f\x15\xd2\xe4\x87\xec\xfb\xc5\x52\xfe\xee\xfb\x05\xbb\x29\x8d\xe6\x9c\x7d\x4a\xb5\xd1\x9d\xd4\x06\xbd\x51\x2f\xb9\x43\x13\x40\xc1\xb1\xbe\xe7\x68\x33\x22\x69\x19\xe1\x93\x9e\x5b\x15\x3c\x1a\x89\x30\xf2\xc5\x9c\xa9\x77\x52\x4c\xbc\x59\x53\xe4\xaf\x5e\x39\x11\xf6\xf5\x4d\x86\x57\xbe\x08\xca\x86\xfa\x03\x94\x8d\xaa\xa7\x0e\x53\xd9\x88\x06\x5b\xfa\xff\xb0\xba\x91\xb5\x6e\xb3\x8a\x7c\xee\x34\x92\x03\xf5\x57\x27\x2e\x09\xc2\x61\x14\x12\x62\x8d\x69\x3a\x1f\x09\x71\x40\x82\x18\xe4\x05\xfb\x97\xbe\xe5\x85\x49\x3a\x8c\x4e\x5a\x08\xca\xc6\x65\x71\x7d\xc5\x5e\xee\x59\x79\x95\x28\x70\xdb\xa4\xbe\xe5\x51\x10\x50\xbd\xc7\x5c\x88\x1d\xe0\x40\x4d\xa0\x71\xec\xe1\x84\x00\x93\xd9\x18\x44\x30\x19\x30\x99\x51\x33\x99\x17\xdd\x1e\xb5\xe8\x4c\xc5\xf5\x31\x3e\xcd\x1c\x8c\x06\x1a\xf8\x59\x6a\xe0\x60\x34\x6d\xae\x1b\x30\x1a\xd8\x5c\xa0\x7c\x14\xfa\x3a\x08\xe5\x03\x8c\x66\x9b\xd1\xbc\xd0\xaa\x50\x8b\xd6\x4c\x42\x32\x04\xb3\x81\xc4\x58\x63\x9a\xce\x47\x62\x1c\x90\x60\x06\xf9\xc1\xfe\xa5\x6f\xf9\x01\xcc\x66\x6c\x42\xd1\xe4\x99\x0d\xa5\x23\x2c\x92\x9b\x4e\x59\x8d\x4e\xd4\x1c\xb8\xde\xa3\xe7\x66\xdc\x2f\xe6\xc0\xe4\x36\x35\x7b\x3e\x04\xf3\x42\x00\xf8\x3b\x1b\x3a\x3e\xa3\xc7\xcc\xf2\x2a\x1d\xa5\xb2\x0b\x56\x0c\x63\x5e\x90\xa4\x82\x97\xcc\xad\x9b\x42\xda\x53\x1d\xe3\xdd\xaf\x1b\xe9\xfc\x90\x9d\x72\xa8\x61\xae\x94\x5c\xf5\xf6\x51\x04\x48\x43\x69\x16\xf7\x59\xe5\xa2\x44\x49\xac\x09\x97\xc4\x3a\x0c\xca\x0e\x95\xc3\xda\x6b\x88\x6b\x01\x02\xa2\x08\x16\x8a\x60\xa1\x08\x16\x8a\x60\x4d\xad\x08\xd6\xe1\x93\xb7\xb2\x00\x56\xc7\x2e\x17\x27\x2b\x7b\x75\xb8\xfb\xbb\x4b\x5e\x0d\x79\x0c\x8e\x29\x74\x75\x78\x0c\x76\x17\xb9\xea\x78\x0c\x50\xda\x0a\xa5\xad\x50\xda\x0a\xa5\xad\x50\xda\xaa\xb3\xd2\x56\x35\x4e\xff\xad\xb2\x56\x7b\x73\x4c\x9e\x91\xc7\x65\xbd\xde\xa0\x34\xd7\xc8\x4a\x73\x1d\x5e\x44\xfb\xca\x72\x75\xbc\x9a\x7a\x2d\xc6\x75\x78\x64\xf6\x14\xe2\xea\xfa\xd4\x18\x6a\xf9\xad\xc3\x83\x56\x61\xd8\x6f\x6c\xce\xd2\x3f\xfd\xa3\x05\x5e\x54\x91\x43\xbd\x23\x6c\x54\x64\x45\x81\xb9\xf4\xc2\x25\x7b\xf0\x02\xb7\x6d\x66\xf4\x36\x97\x72\x49\x92\xd7\x12\x91\x14\x94\x73\xf1\x7d\x56\x52\xfb\x0a\xcf\x7e\x31\x71\x02\x6d\x02\x6d\x1a\x25\x6d\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x02\x69\x1a\x25\x69\x42\xae\x92\xfa\xb3\x03\x72\x06\x72\x06\x72\x06\x72\x76\x96\xe4\x2c\x4a\xae\x1a\x71\xb0\x5e\xa2\x2e\x37\xa6\x77\x45\x05\x12\x97\x61\xbc\xb6\xcb\x99\x33\x65\x93\xdf\x0d\xb3\x56\x22\xbd\x89\xa2\xe4\xe6\xee\xd3\x5f\x36\x3f\x89\x08\xd3\x23\x69\x92\x1d\xc4\xd1\xb3\xa4\xd2\xa7\x5f\x15\xdf\x58\xb1\x61\x1e\xaf\xc7\xbd\x67\x4a\x6a\x9d\x3a\xfd\x0e\x6f\x98\xdf\xaf\x6f\xee\x3e\x7d\xa9\xfa\x3c\xb6\xcd\xf1\xdb\xc6\x0c\x24\xc5\x69\x4e\x60\xf7\xfc\xf7\xe3\xf5\x71\x1b\x48\xea\xaa\x71\x28\x35\xc5\x58\x3c\x7a\x09\x95\x54\xef\xd2\x1f\x43\x19\xfc\x62\x2d\x64\x1b\x8d\xd2\xb8\x62\x7c\xb0\xad\xf9\xa2\x5b\xb3\x67\x43\xc8\x47\xa9\x1d\xb1\xfd\xb5\x5f\xc2\xf8\xc6\xf7\x6d\xcd\xc3\x41\xec\x13\x78\x45\xd0\x86\x9c\xcb\xa5\x27\xb7\xdf\xf6\xac\x4d\x73\x17\x1e\xf6\x7f\x68\x2f\xd0\x36\x4a\xaa\x9d\x1d\xf6\x6e\xac\x4d\xa7\x07\xf8\x3b\xc0\xdf\x01\xfe\x0e\xf0\x77\x80\xbf\x03\xfc\x1d\xe0\xef\x00\x7f\x87\x63\x4e\x5b\xf8\x3b\xc0\xdf\x01\xfe\x0e\xf0\x77\x80\xbf\x03\xfc\x1d\xe0\xef\x70\x76\xfe\x0e\xf0\x0f\x80\x7f\x00\xfc\x03\xaa\x57\x13\xfc\x03\x76\xee\x33\xf8\x07\xd4\xf0\x0f\x78\xbc\xbe\x72\xb9\x58\x4b\xc1\x39\xed\x13\xd2\x7c\xa4\x46\x7c\x2d\x57\x1c\xdb\xc9\x66\xec\xa7\x81\x64\x36\x47\x7d\x78\x48\xc6\x4e\x16\x48\x4c\xc5\xc7\x5a\x21\x31\x55\xbb\x07\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\xe6\x88\x63\x1f\x00\x06\x00\x06\x00\xa6\x7a\x35\x01\xc0\xec\xdc\x67\x00\x30\x35\x01\x8c\x88\xfc\xf0\x59\x8a\x4f\xbd\x12\x18\xdb\x8a\x7a\x08\xc6\x7e\x1c\x0c\x66\x73\xdc\x07\xc8\x60\xec\x6c\x01\xc2\x54\x7c\xac\x1d\x08\x53\xb5\x81\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x40\x61\x8e\x38\xf6\x41\x61\x40\x61\x40\x61\xaa\x57\x13\x28\xcc\xce\x7d\x06\x0a\x53\x8f\xc2\x04\x16\x60\xa8\x12\x72\xf4\xf3\xff\x1e\xca\x65\xa6\x2e\xfb\x76\x39\x8d\x7a\x26\x73\xe4\x5b\x1d\xb3\x48\x8f\xca\x62\xa6\x9e\x60\xf2\x98\x99\xc7\x58\x44\xe3\xee\x7f\xd8\x0e\x3b\x34\x3b\x40\x02\x60\x8b\x9e\xb0\x2d\x7a\xcf\x86\x3d\xc2\x1e\x7d\x60\x0b\xef\xdf\xc4\x1b\x74\xea\x7f\xaa\x5a\xb7\x08\xdd\x9d\x8d\xab\xfa\x5b\x27\x29\x20\x3f\xd2\xee\xfb\x4c\x1b\x23\xa9\xc9\xda\xf6\x6f\x2d\xd8\xd9\x61\x67\x87\x9d\x1d\x76\xf6\xa9\xd9\xd9\xeb\xdd\x2a\x95\xb6\xf6\xfd\x2a\xc5\x4b\x6e\x92\x2a\x45\x55\x5b\x18\xde\x32\x2f\x70\x65\x57\x8c\x42\x5a\xea\x5b\x51\x8e\x58\x08\x16\xc9\xd1\x4a\xa4\x32\xce\x6e\x02\xe6\x05\xea\x64\x09\x63\x96\x05\xf6\x70\x72\x99\x1b\x3f\x7f\xc9\x02\xe6\x7a\xb1\x14\xd2\x1e\x85\x5d\xf1\xa4\xa1\x05\x8c\x07\x7a\xcb\x9b\xb5\xa1\x07\x98\x2d\xb3\x98\x76\x59\x14\x87\x8e\x94\x1b\x94\x12\x5b\xb0\x81\xce\xd9\xef\xf4\x46\x9a\x2d\x5a\x3b\x52\x83\xbd\xf1\xfd\x77\x64\x96\x71\xe5\x29\x9d\x05\x72\xe2\xa5\x56\x60\x96\xa4\x7e\x9c\x70\x1b\x4c\x94\xea\x4b\x3f\xd3\x74\x32\x38\x52\x6f\x28\x76\x03\x92\x93\x8d\xc8\xb7\xa2\x9a\xeb\x05\x2c\x51\xda\x27\x5b\x88\xa5\x92\x9c\xad\x21\x2d\x17\x25\xf4\xe9\x45\x4b\x27\x13\xea\x72\x58\x48\x05\x2f\xb8\x0c\xc4\x8a\xd3\x02\xd5\x8a\xaa\xd4\xa9\xcd\x0d\xaa\x8c\xea\x76\x6b\x68\x05\xc6\x5b\xaf\x85\xeb\xf1\x54\xf8\xcf\xb9\x48\x9b\x5f\xb9\x9e\xff\x56\x2b\xa2\x34\xe8\x6c\x15\x73\x87\x76\x8d\x17\xba\x56\x20\xc8\x2f\x6d\xd2\x17\xcc\x2a\xcd\x12\xd9\xc8\xe2\x74\x71\xf9\x4d\xd3\x21\xfd\x92\xa5\x3a\x03\xcd\x23\xe6\xaa\x9d\x6b\xc1\x83\xca\x36\x36\x98\x66\x6a\xf3\x1d\x35\xb9\x4a\xb9\x3f\xa0\xde\x0f\x65\xf9\x1f\xc3\xc5\xea\x8d\xcb\x6e\x36\x76\xb2\xe5\x0f\x4a\x06\x4a\x06\x4a\x06\x4a\x06\x4a\xd6\x19\x25\xab\x79\x17\x6c\x91\xb2\xd3\x5d\x8b\x1f\x45\x14\x0b\x29\x94\xb8\xef\x58\xe4\x0b\x9e\x08\x7b\x04\xdd\xc5\x61\xc4\x57\x24\x1d\xdd\x85\xbe\xe7\x3c\x97\xec\x60\x66\xd1\xb9\xf6\x01\x72\xd9\x5d\xcf\xff\x34\x67\x5f\xd5\x79\xa6\x44\x97\x48\x04\x72\xb3\xe4\x77\xaa\x60\x61\x1c\xdd\xf3\xc0\xd8\xe5\xe2\x4c\x5c\x2d\xb9\x6f\x74\xe5\xef\x17\xea\xcf\xdf\x2f\xd8\xd2\x0b\xb8\xef\xfd\xdb\x5c\x24\x0b\xc1\xb8\xeb\xd2\xea\xbc\x52\x76\x75\x37\x57\xc3\xd4\xe3\x67\x49\xfe\x25\xa5\x9f\xce\xd9\xad\x47\x87\x63\xa1\xe9\x61\xbc\xdd\x37\x3a\x7e\x94\xa9\x48\xa9\xc7\xa4\xa3\x84\xe9\x7d\x93\x09\x55\x3d\xf8\x68\xfa\x7e\x32\x13\xdf\xb6\x62\x46\x5d\x97\x1b\xf6\x3e\x7c\x62\x2b\x1e\x2f\xf8\xaa\x64\x37\xb7\x4a\x8d\x88\x97\x61\xbc\x96\x73\x52\x39\x5e\x9f\x37\x7a\xb4\x7b\xb8\x48\xe8\x35\x12\x6b\xa4\xc6\xd6\x93\xd2\xa4\xe3\xb9\xb9\x2a\x4c\xb2\x02\x19\x27\xec\x1c\x27\x54\xcf\x8a\xfe\x6a\xa4\x81\x79\x61\x32\xcd\x3d\x62\x54\xed\x4b\x6b\x63\x2e\xbf\x6c\xce\x6e\x1c\x47\x44\x29\xdd\x4d\x45\xcd\x6e\xa6\xfa\x30\x63\x97\x7a\x01\x96\x17\x68\xf2\x9e\xcd\xfe\xcc\x9d\x87\x55\x1c\x66\x81\x2b\x3f\x45\xb6\x5a\xfa\xd0\xc6\xc0\x29\x11\x52\xcb\xc7\xe5\x87\x98\x1e\x2c\xec\x93\xde\xb3\xd9\x2f\x61\x2c\x0a\x8f\x65\x0e\x4f\x1c\xee\xca\xde\xeb\xf1\x51\xe6\x7c\x7a\x5e\xa2\x54\xcf\xad\x07\x2e\xed\x33\x9a\x2c\xc8\x68\x73\xb9\xf7\x68\x29\x00\xd2\x1e\x0f\xd2\xae\xb7\xba\xf6\x61\xed\xd3\x29\xf3\x7d\x02\xee\x7a\xe3\xb4\x07\x72\x9f\xee\xc2\x1f\x2a\xee\xae\x37\x84\xdb\xc8\xfb\xa5\xd7\x69\x25\x6f\x46\x51\xb7\x23\x89\xde\xd7\x94\xa7\x59\x5d\x94\x37\xa9\xb0\x39\x75\x6d\xe7\x22\x55\xb7\x21\x74\xad\x55\x94\x1a\x47\x89\x39\x38\x64\xc0\x21\x63\xb2\x0e\x19\x70\x61\x80\x0b\x03\x5c\x18\xe0\xc2\x00\x17\x86\xde\x5d\x18\xc0\xc6\x81\x4b\x81\x4b\x81\x4b\x81\x4b\x81\x4b\x81\x4b\x81\x4b\x77\x5e\x02\x20\x18\x20\x18\x20\x18\x20\x18\x20\x18\xc8\x2b\xb8\x0f\x95\xd8\xbc\x82\xdb\x76\x6b\xe4\x17\xac\xf8\xd8\xb0\xe0\x48\x83\x3c\x83\x5a\x38\x92\xbb\x9c\xce\x11\x39\x27\x2c\x71\xc2\x48\xbc\x65\x49\xe6\xd0\x0d\x45\x07\xbb\xe0\x6b\x75\x2a\x45\x71\x48\xc2\x58\x55\xd0\x6f\xc4\xd3\xfb\xea\x98\x5f\x1b\x78\x5b\xfe\xb3\x14\x53\xbd\x58\xb8\xfa\x78\x28\xfd\xad\xdb\xc0\xf2\xb1\x24\x5d\xd0\x3f\xfd\x23\x9f\xe4\x30\x69\x19\x81\x29\xc5\x84\xf1\xe3\x68\x97\xfa\x56\x37\xbc\xab\x59\xcc\xe7\x9e\xc5\xd4\xd5\xa1\xd8\x4a\x10\x28\x02\x91\x8a\xb3\x3e\xd8\x40\x24\xb2\x42\xfc\xc6\x03\xbe\x12\xb1\xb2\xa7\xa9\x53\x33\x49\x42\xc7\x23\x05\xd1\x5a\xae\x38\x19\x20\xc3\x98\x89\x20\x95\x02\xac\xd1\x98\xd7\xfc\x41\x8e\x62\x7a\x2f\x12\x61\xa4\xc0\x62\xb8\x8d\x09\xcb\x21\x29\x98\xac\x54\x61\xcc\xae\x7f\xfa\x59\x7e\x36\xe6\x0e\x61\x29\x3f\x0c\x56\x4a\xe6\x23\x4b\x92\x54\xf9\xb9\x17\xa8\xa3\x8a\x2c\x35\xf9\x67\xc9\x54\xaf\xa1\x19\x5b\x3c\x33\xba\x2d\xdf\x5d\x5d\xad\x42\x9f\x07\xab\x79\x18\xaf\xae\xa2\x87\xd5\x55\x16\x78\x4e\xe8\x8a\xab\xff\xf8\x94\xdc\xc9\xa7\x34\x36\xfd\xea\xc1\x69\x73\x7a\x06\x25\x24\x8e\x56\x76\xab\x2b\xb7\xfd\x54\x43\x6e\xfb\xa0\xcc\x58\x03\x6b\xf7\x4f\x07\xdb\xad\xdc\x6b\x07\xd6\xf0\x29\x09\xca\x24\x98\x0c\x5a\x50\x7e\xc5\x5a\x48\x12\xa3\xfe\xfe\xbf\x27\xca\x15\x73\xa4\x50\x56\xcc\x0f\x33\x0c\xa1\x6c\x24\x89\x38\x20\x83\x15\x27\x79\xb0\x32\x18\x42\x9f\xcf\x28\xf4\x19\x31\x5e\x88\xf1\x42\x8c\x17\x62\xbc\xa0\x3e\xee\xda\x45\x83\x8c\x92\xe8\x47\x19\x43\x90\xc7\xce\x20\x8f\x61\x2b\x65\xd6\xb0\xdd\x7a\x68\x07\x41\xff\xb2\xc0\x75\x94\x32\x25\xbf\x7f\x92\x78\x8e\x82\x50\x22\x7e\x90\x97\xd6\x42\xfe\xc4\x9d\x74\xce\xd8\xad\xfc\xd7\xfc\x7e\xcd\x3d\x32\xf7\x25\xcc\xf1\xb3\x24\x15\x71\x7e\xd5\x28\x77\x4e\xe6\x7b\x0f\x82\xcd\x6c\x83\x67\x52\xa2\x34\x52\xd0\x9c\xdd\xf9\x3c\x08\xb4\x97\x05\xc9\x29\xdc\x57\xa2\xd1\xf5\xcf\x4d\xce\x6e\x6a\x63\x4f\x12\x84\x1d\x34\x2b\x80\x2f\xcc\xf0\xc9\x9e\xb2\x5b\x35\x62\xf2\xd6\x88\x12\x33\x3a\xda\x91\x29\x4b\x44\x4c\x1e\x48\xb9\x2c\xfd\xdc\xf1\x40\xc9\xc6\x4c\x17\x9f\x0f\xfb\x6a\x83\xa1\xae\x74\x2b\xc8\x83\x76\x1c\x57\x42\x03\xa0\x4d\x4c\x46\x9b\x48\x0e\xb5\xa3\x0e\xb4\x1e\x0a\xaf\x06\xa8\x1f\x1d\xa8\x27\x7f\x9f\x5a\x12\xcd\xe6\xf1\x7c\x49\xdf\xfd\xc3\xfe\x93\x7a\x2d\xe2\x95\xa8\xf5\xc9\x24\x8d\x79\x2a\x56\x9e\x73\x59\xff\x3b\xf2\xe7\x67\xfd\x49\xba\x13\xea\x48\x5c\xe4\x20\x4a\xf1\x67\xca\x37\xed\x25\xd2\x17\xbd\x7a\x48\x96\xec\xae\xdc\x0b\xf6\x68\x2e\x77\x65\x97\x31\x06\xfb\xf6\xc4\xed\xdb\xe7\xe3\x63\xb0\x11\xd9\x61\x36\x97\x8a\x3e\x8a\x94\x33\xb6\x8e\x68\x7f\xbd\xe3\x5c\x7a\x43\xd6\x3d\x15\x72\xcc\x7d\xfa\x66\x10\x06\x97\xea\xdb\xf4\x09\x32\xb0\x27\xec\xf5\x5f\x93\x30\xb8\x53\x81\xdd\xbf\xc9\x13\x50\xff\xfc\xd5\x9c\x8b\xf9\x2f\xdf\x0c\xc9\xf9\xa1\xfe\xba\xf9\x25\x8c\x1d\x22\x10\xab\x90\x26\x3f\x64\xdf\x2f\x96\xf2\x77\xdf\x2f\xd8\x4d\x69\x34\xe7\xec\x53\xaa\x71\x01\x69\x41\x7a\xa3\x5e\x72\x87\x26\x80\x42\x83\x7d\xcf\xd1\x06\x50\x52\x9a\xc2\x27\x3d\xb7\x2a\x74\x36\x12\x61\xe4\x8b\x39\x53\xef\xa4\x8c\x00\x66\x4d\x91\xb7\x7e\xe5\x44\xd8\xd7\x37\x19\x5e\xf9\x22\xe8\x4e\xea\x0f\xd0\x9d\xfa\x75\x72\xd8\x70\x01\x1f\xb4\xf6\x94\xb5\x6e\x50\x8b\x7c\xee\xbc\x48\xaa\xd3\x8f\x38\x07\xb9\x0e\x6e\xa3\x10\xe9\xce\x4a\xa4\x1b\x90\xe4\x84\x0b\xde\xfe\x05\x6e\xa3\xe7\x21\x98\x64\x03\x37\xea\xbe\x62\xc7\x3a\x5f\xba\x5c\xac\xe5\x16\x49\xfb\x29\xcc\xf7\x91\x5e\xff\xb5\x6c\x2c\x3f\xb2\x1e\x5f\xe5\x33\x90\xf5\x0d\x59\xdf\x46\x97\xf5\x6d\xd2\xde\xbf\xc8\x61\x87\x1c\x76\xc8\x61\x87\x1c\x76\xc8\x61\x57\x75\x95\xa0\x0c\x1f\xcc\x18\x48\x35\x88\x58\x94\x73\x8e\x45\x41\x5e\x49\xe4\x95\x44\x5e\x49\xe4\x95\x44\x5e\x49\xe4\x95\x44\x5e\x49\x84\x68\x22\x44\x13\x21\x9a\x08\xd1\xdc\x5c\x91\x28\xc3\x87\x24\xb6\x47\xaf\x2e\x24\xb1\x45\x12\x5b\x24\xb1\x9d\xbe\xa3\x09\x22\xb4\x7b\x2f\xc3\x57\xe5\x8e\x30\xe0\xea\x7b\x75\x3c\x30\xaa\x8a\xee\xc1\xeb\x02\x5e\x17\xd3\xf0\xba\x80\x9f\x02\xfc\x14\xe0\xa7\x00\x3f\x05\xf8\x29\xf4\xee\xa7\x00\x00\x0e\x26\x0a\x26\x0a\x26\x0a\x26\x0a\x26\x0a\x26\x0a\x26\xba\xf3\x12\x00\xa6\x00\xa6\x00\xa6\x00\xa6\x00\xa6\x40\xad\xbd\x5a\x01\xac\xd6\x5c\x8d\x12\x7b\x15\x1f\x1b\x04\xf8\x40\x65\xbd\x73\x48\xd8\xd7\x5d\x65\xbd\x3a\x24\xab\xba\xa0\xde\x8b\x58\xd6\x40\x13\xa2\xe4\x7d\xaa\x77\xd8\x21\x80\x68\x02\x01\x44\xc8\x83\x82\x3c\x28\x15\x8d\x19\xb0\x38\x36\x8e\xf4\x27\x0d\x9a\xdb\x6b\xb1\xbc\xa3\xdb\x3b\x25\x49\xb7\xfb\x1a\x79\x0d\x25\xdd\x57\xac\x79\x76\x96\x53\x57\xc4\x3b\x36\x31\x4b\xaf\xc2\xd4\x48\x32\x60\x40\x88\x2a\x4e\xf2\x60\x85\x28\xc4\x1c\x9f\x51\xcc\x31\x82\xab\x10\x5c\x85\xe0\x2a\x04\x57\x41\xff\xdb\xb5\x8b\x06\x19\x9e\x80\xfa\x77\x83\x51\xb7\x4e\x51\xff\x6e\x70\x31\x15\x15\x65\xef\xea\x68\x4c\x55\xd5\xee\xda\x0c\xa4\x40\x91\x3b\xbb\x06\xea\x8b\x09\x28\x72\xa7\xff\xc3\xfd\x05\x03\xdb\x20\x6a\xdb\xf5\x40\x92\x8b\x25\xed\x76\xbc\x1e\x95\xec\xaa\xfb\x0c\x30\x8e\x4a\x76\x5d\x54\xb2\xab\x23\x50\x55\x16\xb0\x9b\x10\xce\x47\xdd\x3a\xd8\xa5\xcf\x0f\xee\xa3\x6e\x5d\x9b\xeb\x06\x75\xeb\xa0\x0e\x41\x1d\xda\x1e\xc6\x11\x95\xab\x7b\xb1\x42\x74\x9a\x2a\x75\xf5\x4c\x60\x95\xc5\xe9\x26\x24\xb3\xc1\x05\x13\x52\xda\x39\x48\x69\x03\x12\x86\x70\x67\xdb\xbf\xc0\x05\x53\x3f\x79\x52\x22\x46\xd7\x85\xe7\xfa\xf3\x68\xbc\x4a\x14\x39\x2d\x38\x36\x76\x43\xeb\xd4\x7b\xcc\xdd\xd4\x22\xb7\xd3\xe8\x17\x27\x0f\xb6\x32\xe0\x09\xe0\xc9\x71\x7d\x06\x3c\x01\x3c\x69\x07\x9e\xbc\xe4\x7e\xdb\x8f\x51\x2a\x2e\xb8\x51\x2a\xe6\x80\x29\x50\xd3\xcf\x4f\x4d\x07\x4c\x69\x73\xdd\x00\xa6\xc0\x30\x03\xf5\x68\x7b\x18\x01\x53\x5e\x0e\x53\x5e\x66\xa1\xd8\x8f\x55\xa6\x22\xc3\x01\xae\x40\x6a\x3b\x07\xa9\x6d\x40\xc2\x11\xee\x70\xfb\x17\xc0\x15\xfd\xe4\x49\x89\x1c\xd3\x81\x2b\x22\xf2\xc3\xe7\x35\x85\xdc\x9e\x26\x51\x44\x21\x94\x36\x5c\xb2\x8f\xf6\xfd\x7b\x24\x95\x62\xd6\x88\x0f\xf6\xeb\x05\x91\xa5\xf2\x21\xa8\x2c\x83\xca\x32\xa3\xab\x2c\x33\xe9\x6c\x26\xa8\x93\x83\x3a\x39\xa8\x93\x83\x3a\x39\xa8\x93\x53\x75\x95\x9c\xa0\x4a\x2f\xcc\x15\x43\x37\x57\xa0\x9c\x11\x72\x6b\x9d\x71\x6e\x2d\xd4\xae\x42\xed\x2a\xd4\xae\x42\xed\x2a\xd4\xae\x42\xed\x2a\xd4\xae\x42\xca\x49\xa4\x9c\x44\xca\x49\xa4\x9c\xdc\x5c\x91\x27\xb0\x14\xa0\x50\x1e\x0a\xe5\x75\xb0\xb6\x50\x28\xaf\xe6\x1e\x44\xa1\x3c\x38\x94\x20\xe3\x6c\xcb\x19\x67\x73\x91\xaa\x63\xef\x8d\x2a\x7f\x84\x5e\x93\xcf\x2a\xe3\x59\xac\x6f\x71\x23\xe5\x87\x4b\x26\x9b\x5c\xcf\x09\x43\x3e\x62\xcb\x57\x14\x8e\x17\x70\xbc\x98\x86\xe3\x05\x5c\x15\xe0\xaa\x00\x57\x05\xb8\x2a\xc0\x55\xa1\x77\x57\x05\x30\x70\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\xd1\x9d\x97\x00\x48\x05\x48\x05\x48\x05\x48\x05\x48\xc5\x0e\x52\xb1\xf3\x0b\xf2\x65\xef\xd5\xc0\xff\xe7\xf6\x18\xd4\x79\x76\xf9\xdb\xc3\x46\x22\x79\xd0\xaa\xb5\x57\xff\xea\x25\x67\x19\xb9\x2a\x8f\xb1\x81\xc3\x8f\x06\xd9\x04\x91\x7e\x6f\x74\xe9\xf7\xc2\xa4\x65\xc4\xa5\x14\x11\xc6\xeb\xd1\x2c\xf5\xe9\x76\x79\xd6\x50\xd3\x9e\xe4\x9d\xaa\x77\xe0\x21\x90\x68\x02\x81\x44\xc8\x7b\x82\xbc\x27\x15\x8d\x19\xb2\x4c\x36\x92\xc4\x27\x0d\xda\xdb\x47\xe5\xe9\x17\x34\x78\x4a\x02\x2f\x09\x1a\x83\x14\x78\x5f\xb1\x17\x24\x6b\xd1\xa9\xf0\x4f\x94\xb3\xa5\xa6\x50\x55\xcc\xd3\xd2\xaf\x50\x35\x92\x84\x18\x90\xa5\x8a\x93\x3c\x58\x59\x0a\x21\xc8\x67\x14\x82\x8c\x58\x2b\xc4\x5a\x21\xd6\x0a\xb1\x56\x50\x03\x77\xed\xa2\x41\x46\x2b\xf4\xa3\x64\x21\xd8\x62\x67\xb0\xc5\x30\x95\x2e\x6b\x80\xee\xa6\x62\x58\x59\xd0\xaa\xa5\x34\x55\x16\x0a\x6b\x33\xae\xa2\x20\x7c\x88\x1f\xe4\x2d\xb5\x90\x3f\x71\x27\x9d\x33\x76\x2b\xff\x35\xbf\x5f\x73\x8f\xcc\x73\x09\x73\xfc\x2c\x49\x45\x9c\x5f\x29\xba\xdc\x80\xef\x3d\x08\x36\xb3\x0d\x9d\x49\xc9\xd1\x48\x3b\x73\x76\xe7\xf3\x20\xd0\xde\x0e\x24\x8f\x70\x5f\x89\x40\xd7\x3f\x37\x39\xa3\xa9\x8d\x3d\x49\x0a\x76\xd0\xac\xa0\xbd\x30\xc3\x27\x7b\xca\x6e\xd5\x88\xc9\xdb\x21\x4a\xcc\xe8\x68\x87\x22\xaa\xdd\xe0\xf0\xa0\x20\x33\x3f\x77\x3c\x50\xb2\x31\xd3\xc5\xd8\xc3\xbe\xc2\x60\x68\x3b\x51\x95\xba\x1e\xc0\x72\xa9\x4c\xdd\x8e\xf7\xa3\x4e\x5d\x75\x9f\x01\xca\x51\xa7\xae\x9d\x3a\x75\x0d\xa4\xaa\xea\xf2\x74\x13\xc2\xfb\xa8\x4c\x07\xfb\xf4\xf9\xb1\x7e\x54\xa6\x6b\x73\xdd\xa0\x32\x1d\x74\x22\xe8\x44\x15\xe3\x38\xa6\xd2\x74\x2f\xd6\x8a\xba\xaa\x4d\xd7\xc8\x16\x56\x5d\x92\x6e\x42\x72\x1b\xdc\x32\x21\xaa\x9d\x85\xa8\x36\x20\x89\x08\x17\xb7\xfd\x0b\xdc\x32\xed\xa3\x27\x25\x68\x74\x5e\x90\xae\x47\x27\xc7\xab\xc4\xe1\x7e\xd1\xb1\xb1\x23\x78\x47\xaf\xa9\xa8\xa5\xfb\x72\x8a\xf7\x95\x3a\x80\xc3\xe7\xe0\x66\xce\xd2\x50\xce\x82\x17\xac\x08\xa1\xd3\xb0\x9d\xe1\x76\x6e\x8b\xa5\xe4\xc3\x59\xbd\xab\x37\xd7\xe5\x09\x69\x4a\xc5\xab\x01\x52\xaa\xfb\x0c\x90\x02\x90\xd2\x0e\x48\x79\xc9\x0d\x77\x80\xa8\x6c\x5f\x71\xa3\x54\xcf\x81\x55\xa0\xab\x9f\x9f\xae\x0e\xac\xd2\xe6\xba\x01\x56\x81\x75\x06\x0a\x52\xa7\x0a\x52\x7b\x60\xa5\x53\x15\xa9\x2b\xb4\xf2\x32\x4b\xc5\x01\xc6\x32\x11\x49\xee\x25\x7b\x05\xe2\x1b\xc4\xb7\x11\x89\x6f\x03\x92\x92\x70\x99\xdb\xbf\x74\x7a\x99\xf7\x04\x5b\x20\x7e\xb4\x8a\x5b\x3a\x10\x3e\x5e\xb1\x36\x80\x8b\x8a\x5d\xeb\x9e\xb8\xd0\x7b\xba\x41\x2e\xaa\x0b\x38\x85\x00\x50\x11\xbd\x82\xe8\x15\x40\x17\x40\x97\xbe\xa0\xcb\x4b\x2e\xb9\x43\xd4\x65\xfb\x96\x1b\xa5\xb2\x0e\xec\x02\xbd\xfd\xfc\xf4\x76\x60\x97\x36\xd7\x0d\xb0\x0b\x2c\x35\xd0\x91\x2a\xc6\x71\x78\xd0\x65\x84\xd1\x2c\x2f\x34\x55\x1c\x62\x2e\x13\x91\xe3\x10\xdd\x02\xd1\xed\x2c\x44\xb7\x01\x49\x48\xb8\xc8\xed\x5f\x10\xdd\x62\x1f\x3d\x29\xc1\x63\x3a\xd1\x2d\x52\x12\xf0\x1c\x9e\x88\x34\x39\x51\xee\xee\x42\x6e\xd3\x70\xc9\xbe\xa8\xf7\x7f\x15\x75\xf3\x78\x7f\xb0\x5f\xcf\xe5\x96\xea\x87\xa0\xec\x3f\xca\xfe\x8f\xae\xec\xff\xa4\xd3\xcb\x7f\x2b\x96\xae\x55\x36\xa2\x42\x86\xf2\x44\xa4\xaa\x4e\xac\xae\x3d\x2c\x17\x53\xa9\x68\xad\x4d\x25\xad\x26\x7c\xce\xbe\x7a\x81\x23\x36\x92\x8f\xeb\x95\xaa\x45\xa8\x72\x45\xdc\x52\x51\x60\xdb\x10\xf5\x55\x7a\x38\xcf\x6b\xbf\xab\x4a\xc8\xa6\x44\xa9\xdc\xe9\x79\x9d\x5a\xf5\xb7\xfc\x7c\x61\xaf\xc5\x0f\x47\x44\x79\x71\x46\xf5\xc8\x70\x69\x5f\xf2\xc6\x66\x47\xd6\xed\x53\xd5\x92\x09\x1f\xf1\xcd\xa6\x78\xf2\xd4\x10\x6a\xa5\x5b\xa5\xc0\x6e\x8f\x5c\xd5\xdb\xfc\x9a\xfc\x06\xc9\x9a\x22\x66\x4a\xaf\x30\xc5\x8c\xdd\x4c\x50\x95\xed\x1f\x91\xa7\xb3\xc6\xbf\x5e\x89\x40\xc4\x84\x05\x96\x52\xc1\x48\x43\xb6\xf4\x96\xa9\x10\x01\x5b\x7b\x41\x96\x8a\xe4\x0d\xa3\x0a\xd5\x4e\x18\x2c\xbd\x95\x49\x36\xaf\x04\x60\x53\x6d\x3a\xdf\x78\x7b\xab\xf5\xff\x9f\xeb\x3f\xb2\x2f\x3a\x29\xf4\xad\x6c\x82\x70\xb5\xfa\x92\x86\x2b\xd5\x40\xfd\x49\xdb\xa3\x34\x7c\x10\x81\xed\xb2\xae\x88\x1b\x08\xe1\x6e\x14\xd2\xf5\xa9\x4a\xb6\x97\x2a\x31\x3c\x16\xaa\x86\xbd\xae\x33\xee\x25\xa9\x2d\x1a\xbc\x5d\x35\x79\xce\x3e\xcb\x57\x3f\x79\x26\xaf\xb9\x7e\x0b\x95\xc2\x57\x47\x9c\xb2\xad\x6d\xd4\xed\xd7\xfa\x02\xb5\xd0\x54\xe3\x2d\xe8\x11\xb2\xb3\xd4\xb9\x83\xc3\x42\xcf\xa5\x06\x93\x5d\xcf\x2c\x6e\x53\xd1\x5f\x65\xed\x2e\x94\xe1\x4f\xe5\xfb\xf3\xca\xc1\x4f\xf7\x9e\x2a\xca\xec\x05\x85\x01\xb1\x9f\xb7\x0b\xb9\x50\x6a\x37\x61\x97\x36\xcb\xbb\xca\x0d\x1a\x8b\x23\x0b\x26\x6f\x0c\xc6\x76\xad\x64\x9d\x01\x9c\xe4\x6b\x52\x66\xe4\x82\x94\xff\xaa\x49\x79\x10\xcf\xba\xfa\xb4\x7d\xf0\xf7\x0b\xd3\xe5\xef\x17\xba\xb8\xf4\xee\x6a\xd4\x74\x40\x94\xeb\x51\xdb\xfb\x8f\x66\x8e\x16\x80\x29\xba\x5b\x18\x3d\x35\x08\xc5\xfa\x9c\x7a\xdb\xd8\x5b\x51\x27\x3e\xd7\x33\xa6\x14\xea\x94\xad\xbd\x24\xa1\xdb\xae\xa4\xd5\x37\xb9\x55\xcc\xf2\xeb\x47\x15\x86\xc5\xa2\xf6\x44\xf5\x69\xb1\xb8\x61\x89\xc8\x33\xd8\xcb\x03\x2d\xf6\x9c\x34\xaf\xed\x4f\x15\xf8\xf5\x82\xb5\x05\x1b\x9e\xf5\xe6\x52\x6c\xa0\x5c\x3d\x43\x3c\x8a\xf8\x39\xbd\xf7\x82\x55\x63\x1b\xc1\x57\xdd\xa2\x7e\x46\x04\xc5\x4e\xce\xa8\xd8\xc9\x8b\x96\xbf\xcf\x17\xc2\x6f\x75\xf9\xd3\x13\xfb\x5d\xfe\xaa\xf0\x3f\xd9\x2e\xd7\xfc\x87\xb7\xce\xd6\x2c\xc8\xd6\x0b\xb9\x48\x96\xf6\x30\x4d\xd4\x68\x51\x21\x6b\x82\xb5\x6a\xb4\x54\x61\xf0\x4f\x4b\x25\x46\x7b\xb2\x2d\xaa\xae\xc7\xb6\x6c\x42\x85\xd5\xef\x05\xfb\xa7\xb9\xa5\xfe\x69\x4a\x8b\x04\xf9\xe8\x9b\xaa\x1f\x6a\xa1\xaa\xd5\x49\xf7\x87\xc3\x03\xb3\x9c\x73\x49\x28\xe1\x6b\xb9\xcb\xbc\xd4\xb3\x22\xb3\x6a\xa5\x14\xee\x45\x2e\xeb\xc8\x57\xab\xbe\xc8\x49\x93\xea\x73\x9a\x2a\x45\x52\xf5\x5d\x89\xca\xaa\x6f\xe2\x49\x55\xc9\x0f\x8a\x37\x84\x14\x53\xd6\x61\x16\xd0\x63\x54\x2f\x5f\x67\x91\x7c\x99\xda\xd0\xf2\x37\x6f\x8c\x6c\xa2\x74\x55\x4e\x97\x93\xf9\xb6\x59\x49\x52\x2e\x59\x7a\x7e\x2a\xa4\x84\x2a\xa5\x46\x79\x47\x39\x65\xed\xba\xa4\x43\xa8\xfb\xd4\xb1\x4e\x6d\x65\x09\x53\xd5\x20\x49\x45\xbc\xf6\x02\x61\x65\xf1\x92\x4a\x43\x92\xd0\x23\xf7\x7c\xa9\xcf\xe6\x96\x03\xd9\x65\xe7\x3e\x0c\x13\xaa\x35\x2e\x9f\xa3\x25\x20\x3d\x17\x72\x58\x78\xbc\xca\xc8\xa0\xc0\x03\xd7\xdc\xb6\x34\x48\xb2\x6f\xba\x3d\xf6\xd1\xf9\xe8\x7e\x5a\x32\xbb\xa4\xf2\x53\xc9\x68\x27\x1b\x1d\xf0\x12\x26\xd6\x51\xfa\x5c\x56\xa3\xac\x5d\x80\xa7\xf2\x06\xdf\xd7\xa1\x7d\xa2\x9c\xb7\xdc\x10\xe4\x94\xec\x67\xd7\xa5\xad\xfd\xaf\x85\x94\xfc\xa4\x4f\xf2\x43\x80\xe4\xc1\x8c\xc4\x06\xdb\x76\x2b\x96\x5a\x85\x2d\x0d\x99\x97\x24\x99\x36\x4f\x78\xc1\xca\x17\xf9\x0e\xb1\x3a\x82\x59\x70\x97\xc6\xf8\xff\x56\x76\xcf\xbc\xf2\x38\x39\xd9\x88\xc8\x64\xfd\x48\x32\xe1\x56\x0a\xcb\x64\x85\xc9\x16\x89\xfc\x70\x90\xda\x1e\xb8\x05\xcf\x80\x6f\xda\x80\x92\x84\x6b\x91\x7a\x6b\x21\xfb\xbe\x14\x71\x4c\x55\x96\x54\xc1\xfa\x82\xf8\x9f\xab\x07\x72\x46\x45\x90\x64\xb1\xb0\x75\x00\xb4\x82\x63\xc8\x86\x1a\x35\xd5\x65\xda\x98\xa4\xca\xb0\x64\xcd\x7d\x5f\xc4\xcc\xb9\xcf\x82\x07\x02\x8c\x9c\xc9\x43\x94\xf9\x3c\x5e\x99\x89\xa6\x1d\xaf\x1e\xaf\x6c\x45\x89\x10\xb4\xf0\xa2\x30\x49\x3c\xb9\xe0\xf4\xb0\xd1\x82\x2b\xee\x2f\xe5\x84\xe6\xe6\xd6\x22\x7a\x8f\x70\xd5\x7c\x90\xf2\xac\xc5\x73\xbd\x86\xf5\x5d\x48\xad\x7e\xe2\x89\x91\x61\x8d\x45\x4c\x8e\xc9\xb6\x7e\xa2\xb4\x76\x9e\xc8\x09\x76\x32\x5f\x15\xbf\xca\x97\x4d\xa3\xbb\x40\x0e\x54\x4f\xd7\x22\x6a\x80\xa1\x06\x18\x6a\x80\xa1\x06\xd8\xe9\x2c\x05\xb9\x68\xa0\xad\x55\xea\xaa\x96\xf7\xe5\x5b\x29\x0a\x3d\x25\x06\x86\xab\x71\x09\x1d\x27\x8b\xed\x2d\xc8\x53\x46\x6e\xc7\xf2\xe8\x8d\x8b\x07\x3a\xb7\x2b\xa3\x2c\xa6\x9b\x67\xd9\x93\x62\x21\x56\x5e\x10\x68\x6b\xc0\xbd\x97\xa4\x61\xfc\x3c\x67\x1b\x4d\x93\xa2\xae\x3c\x3e\xde\xb1\x4b\x29\x4d\x90\xa7\x5b\xc1\x23\xdd\x58\x1f\x0a\xe2\x02\x3d\x5f\x1e\x4b\xe4\x07\x1d\xc6\x72\xbd\x2c\xb8\x14\x5b\xc3\x80\xfd\x2b\x0b\xe3\x6c\x7d\x49\x91\x40\x4b\x9f\xaf\xde\xab\xc7\x7a\xf2\xc0\xfa\xa3\x7e\xee\x93\x60\x89\xb7\x56\xce\x7b\x24\x6d\x3d\xd1\xbd\x24\x98\x93\xc5\xb1\x08\x52\xff\x99\xdd\x73\xd2\x2e\x99\xc3\x9d\x7b\x41\x22\x84\x95\x64\xf4\x13\x49\xd8\x0e\xa5\x3a\x4a\x12\x6a\x65\x93\x79\xca\xe4\x41\x9f\x52\x0c\x41\x2c\x12\x0a\x26\x58\x79\x8f\x22\x60\xf1\x63\x93\xd5\xb5\x61\xfd\xea\x49\x99\xf7\xd6\x42\x8a\x5a\x46\x2f\x96\xb3\x77\x95\x2f\x2d\x2d\xee\xd0\x55\x9b\xa8\x4d\x6b\x34\x7f\x23\x61\xd3\x02\x8c\xc5\x8a\xc7\x2e\xb9\x5c\xc8\x45\x15\x3c\x33\xee\xa4\xde\xa3\x97\x3e\xcb\x63\xd0\x0b\xcc\xff\x35\x19\xa7\x54\x35\xb1\x5f\x3d\xf8\xef\xca\x7c\x19\xc6\xf9\x2e\x0b\xf5\x21\x26\x3f\xb7\x20\x11\x51\xcd\xa7\x3a\x74\xf5\x6a\x4c\xef\xc5\x5a\x09\x85\x49\x1a\x0b\xbe\xa6\xe1\x71\xdd\xb7\x5a\xec\x7a\xab\x3f\x2b\xaf\x65\x79\x19\x14\x0c\x9a\xec\xab\x2a\x0c\xb5\x69\x25\x6d\x32\x84\x4f\x1b\x8e\x79\xec\xc5\xd7\x69\x25\x5f\x86\x4f\x09\x4a\x00\x6e\x7e\x61\x6f\x09\xc0\x5c\xa4\xea\xd6\x7d\xa3\xd2\x1f\xa1\xd7\x62\x80\xca\x78\x16\xeb\x5b\xdc\x48\xf9\xe1\x92\xc9\x26\xd7\x73\xc2\x90\x8f\xd8\x74\x18\x85\xe3\x05\x1c\x2f\x26\xe2\x78\x01\x57\x05\xb8\x2a\xc0\x55\x01\xae\x0a\x70\x55\xe8\xdd\x55\x01\x0c\x1c\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x74\xe7\x25\x00\x52\x01\x52\x01\x52\x01\x52\x01\x52\xb1\x83\x54\xec\xfc\x82\x7c\xd9\x7b\x35\xf0\xff\xb9\x3d\x06\x75\x9e\x5d\xfe\xf6\xb0\x91\x88\x0d\x5b\xcd\xed\xd5\xbf\x7a\xc9\x59\x86\xae\xca\x63\x6c\xe0\xf0\xa3\x41\x62\x41\x24\xe2\x1b\x5d\x22\xbe\x30\x69\x19\x71\x29\x45\x84\xf1\x7a\x34\x4b\x7d\xba\x5d\x9e\x35\xd0\xd4\x27\x85\x4e\xd5\x3b\xf0\x10\x48\x34\x81\x40\x22\xa4\x3e\x41\xea\x93\x8a\xc6\x0c\x59\x26\x1b\x47\xea\x93\x26\xed\xfd\xe9\x60\x7b\x95\x3b\xec\x40\x1a\x3c\x25\x81\x97\x04\x8d\x41\x0a\xbc\xaf\xd8\x0b\x92\xb5\xe8\xcc\xf8\x27\xca\xd9\x52\x53\xa8\x2a\xe6\x69\xe9\x57\xa8\x1a\x49\x42\x0c\xc8\x52\xc5\x49\x1e\xac\x2c\x85\x10\xe4\x33\x0a\x41\x46\xac\x15\x62\xad\x10\x6b\x85\x58\x2b\xa8\x81\xbb\x76\xd1\x20\xa3\x15\xfa\x51\xb2\x10\x6c\xb1\x33\xd8\x62\x98\x4a\x97\x35\x40\x77\x53\x40\xac\x2c\x68\xd5\x52\x9a\xaa\xca\x86\xb5\x1a\x57\x51\x10\x3e\xc4\x0f\xf2\x96\x5a\xc8\x9f\xb8\x93\xce\x19\xbb\x95\xff\x9a\xdf\xaf\xb9\x47\xe6\xb9\x84\x39\x7e\x96\xa4\x22\xce\xaf\x14\x5d\x76\xc0\xf7\x1e\x04\x9b\xd9\x86\xce\xa4\xe4\x68\xa4\x9d\x39\xbb\xf3\x79\x10\x68\x6f\x07\x92\x47\xb8\xaf\x44\xa0\xeb\x9f\x9b\x9c\xd1\xd4\xc6\x9e\x24\x05\x3b\x68\x56\xd0\x5e\x98\xe1\x93\x3d\x65\xb7\x6a\xc4\xe4\xed\x10\x25\x66\x74\xb4\x43\x11\xd5\x70\x70\x78\x50\x90\x99\x9f\x3b\x1e\x28\xd9\x98\xe9\x62\xec\x61\x5f\x61\x30\xb4\x9d\xa6\x62\x5d\x1f\x60\xb9\x58\xb1\x6e\xd7\xfb\x51\xb1\xae\xba\xcf\x00\xe5\xa8\x58\xd7\x4e\xc5\xba\x06\x52\x55\x65\x9d\xba\x29\xe1\x7d\x54\xa8\x83\x7d\xfa\xfc\x58\x3f\x2a\xd4\xb5\xb9\x6e\x50\xa1\x0e\x3a\x11\x74\xa2\x8a\x71\x1c\x51\x85\xba\x97\x6b\x45\x5d\x55\xa8\x6b\x64\x0b\xab\xac\x4b\x37\x25\xb9\x0d\x6e\x99\x10\xd5\xce\x42\x54\x1b\x90\x44\x84\x8b\xdb\xfe\x05\x6e\x99\xf6\xd1\x93\x12\x34\xba\xae\x48\xd7\xa7\x93\xe3\x55\xe2\x70\xbf\xe8\xd8\xd8\x11\xbc\xa3\xd7\x6c\x57\xd4\x6d\x81\xe2\x7d\xa5\x0e\xe0\xf0\x39\xb8\x99\xb3\x34\x94\xb3\xe0\x05\x2b\x42\xe8\x34\x6c\x67\xb8\x9d\xdb\x62\x29\xf9\x70\x56\xef\xea\xcd\x75\x79\x42\x9a\x52\xf1\x6a\x80\x94\xea\x3e\x03\xa4\x00\xa4\xb4\x03\x52\x5e\x72\xc3\x1d\x20\x2a\xdb\x57\xdc\x28\xd5\x73\x60\x15\xe8\xea\xe7\xa7\xab\x03\xab\xb4\xb9\x6e\x80\x55\x60\x9d\x81\x82\xd4\xa9\x82\xd4\x1e\x58\xe9\x54\x45\xea\x0a\xad\xbc\xcc\x52\x71\x80\xb1\x4c\x44\x92\x7b\xc9\x5e\x81\xf8\x06\xf1\x6d\x44\xe2\xdb\x80\xa4\x24\x5c\xe6\xf6\x2f\x9d\x5e\xe6\x3d\xc1\x16\x88\x1f\xad\xe2\x96\x0e\x84\x8f\x57\xac\x0d\xe0\xa2\x62\xd7\xba\x27\x2e\xf4\x9e\x6e\x90\x8b\xea\x02\x4e\x21\x00\x54\x44\xaf\x20\x7a\x05\xd0\x05\xd0\xa5\x2f\xe8\xf2\x92\x4b\xee\x10\x75\xd9\xbe\xe5\x46\xa9\xac\x03\xbb\x40\x6f\x3f\x3f\xbd\x1d\xd8\xa5\xcd\x75\x03\xec\x02\x4b\x0d\x74\xa4\x8a\x71\x1c\x1e\x74\x19\x61\x34\xcb\x0b\x4d\x15\x87\x98\xcb\x44\xe4\x38\x44\xb7\x40\x74\x3b\x0b\xd1\x6d\x40\x12\x12\x2e\x72\xfb\x17\x44\xb7\xd8\x47\x4f\x4a\xf0\x98\x4e\x74\x8b\x14\x23\xc4\x32\xf3\x13\x91\x26\x27\x4a\xde\x5d\x48\x6e\x1a\x2e\xd9\x57\xdd\x80\xfa\x99\xbc\x3f\xd8\xef\xe7\x92\xcb\x8e\xa7\xa0\xf2\x3f\x2a\xff\x8f\xae\xf2\xff\xa4\x33\xcc\x7f\x2b\x56\xaf\x55\x66\xa2\x42\x92\xf2\x44\xa4\xaa\x54\xac\x2e\x3f\x2c\x17\x53\xa9\x6e\xad\xcd\x26\xad\x26\x7c\xce\xbe\x7a\x81\x23\x36\xf2\x8f\xeb\x95\xaa\xa5\xa8\x72\x51\xdc\x52\x5d\x60\xdb\x10\xf5\x55\x7a\x38\xcf\xcb\xbf\xab\x62\xc8\xa6\x4a\xa9\xdc\xe9\x79\xa9\x5a\xf5\xb7\xfc\x7c\x61\xaf\xc5\x0f\x47\x44\x79\x7d\x46\xf5\xc8\x70\x69\x5f\xf2\xc6\x26\x48\xd6\xed\x53\x05\x93\x89\x20\xf1\xcd\xa6\x78\xf2\xd4\x10\x6a\xa5\x5b\xbd\xc0\x6e\x8f\x5c\xdb\xdb\xfc\x9a\xfc\x06\x89\x9b\x22\x66\x4a\xb5\x30\xf5\x8c\xdd\x4c\x50\xa1\xed\x1f\x91\xa7\x13\xc7\xbf\x5e\x89\x40\xc4\x44\x06\x96\x52\xc7\x48\x43\xb6\xf4\x96\xa9\x10\x01\x5b\x7b\x41\x96\x8a\xe4\x0d\xa3\x22\xd5\x4e\x18\x2c\xbd\x95\xc9\x37\xaf\x64\x60\x53\x70\x3a\xdf\x78\x7b\x0b\xf6\xff\x9f\xeb\x3f\xb2\x2f\x3a\x2f\xf4\xad\x6c\x82\x70\xb5\x06\x93\x86\x2b\xd5\x40\xfd\x49\xdb\xa3\x34\x7c\x10\x81\xed\xb2\x2e\x8a\x1b\x08\xe1\x6e\xd4\xd2\xf5\xa9\x50\xb6\x97\x2a\x49\x3c\x16\xaa\x8c\xbd\x2e\x35\xee\x25\xa9\xad\x1b\xbc\x5d\x38\x79\xce\x3e\xcb\x57\x3f\x79\x26\xb5\xb9\x7e\x0b\x55\xc3\x57\x47\x9c\x32\xaf\x6d\x94\xee\xd7\x2a\x03\xb5\xd0\x14\xe4\x2d\xa8\x12\xb2\xb3\xd4\xb9\x83\xc3\x42\xcf\xa5\x06\x93\x69\xcf\x2c\x6e\x53\xd4\x5f\x25\xee\x2e\x54\xe2\x4f\xe5\xfb\xf3\xe2\xc1\x4f\xf7\x9e\xaa\xcb\xec\x05\x85\x01\xb1\x9f\xb7\x0b\xb9\x50\x6d\x37\x61\x97\x36\xd1\xbb\x4a\x0f\x1a\x8b\x23\x6b\x26\x6f\x0c\xc6\x76\xb9\x64\x9d\x04\x9c\x44\x6c\xd2\x67\xe4\x82\x94\xff\xaa\x49\x79\x10\xcf\xba\x00\xb5\x7d\xf0\xf7\x0b\xd3\xe5\xef\x17\xba\xbe\xf4\xee\x82\xd4\x74\x40\x94\x4b\x52\xdb\xfb\x8f\x66\x8e\x16\x80\xa9\xbb\x5b\x18\x3d\x35\x08\xc5\x12\x9d\x7a\xdb\xd8\x5b\x51\xe7\x3e\xd7\x33\xa6\x74\xea\x94\xad\xbd\x24\xa1\xdb\xae\xa4\xd8\x37\xb9\x55\xcc\xf2\xeb\x47\x1b\x86\xd1\xa2\xf6\x44\xf5\x69\xb4\xb8\x61\x89\xc8\x93\xd8\xcb\x03\x2d\xf6\x9c\x34\x2f\xef\x4f\x45\xf8\xf5\x82\xb5\x35\x1b\x9e\xf5\xe6\x52\x78\xa0\x5c\x40\x43\x3c\x8a\xf8\x39\xbd\xf7\x82\x55\x63\x33\xc1\x57\xdd\xa2\x7e\x46\x04\xf5\x4e\xce\xa8\xde\xc9\x8b\x96\xbf\xcf\x17\xc2\x6f\x75\xf9\xd3\x13\xfb\x5d\xfe\xaa\xf6\x3f\x99\x2f\xd7\xfc\x87\xb7\xce\xd6\x2c\xc8\xd6\x0b\xb9\x48\x96\xf6\x30\x4d\xd4\x68\x51\x2d\x6b\xe2\xb5\x6a\xb4\x54\x6d\xf0\x4f\x4b\x25\x46\x7b\xb2\x2d\xaa\xb4\xc7\xb6\x6c\x42\xb5\xd5\xef\x05\xfb\xa7\xb9\xa5\xfe\x69\xaa\x8b\x04\xf9\xe8\x9b\xc2\x1f\x6a\xa1\xaa\xd5\x49\xf7\x87\xc3\x03\xb3\x9c\x73\x49\x28\xe1\x6b\xb9\xcb\xbc\xd4\xb3\x22\xb3\x6a\xa5\x14\xee\x45\x2e\xeb\xc8\x57\xab\xbe\xc8\x49\x93\xea\x73\x9a\x2a\x45\x52\xf5\x5d\x89\xca\xaa\x6f\xe2\x49\x15\xca\x0f\x8a\x37\x84\x14\x53\xd6\x61\x16\xd0\x63\x54\x2f\x5f\x67\x91\x7c\x99\xda\xd0\xf2\x37\x6f\x8c\x6c\xa2\x74\x55\x4e\x97\x93\xf9\xb6\x59\x49\x52\x2e\x59\x7a\x7e\x2a\xa4\x84\x2a\xa5\x46\x79\x47\x39\x65\xed\xba\xa4\x43\xa8\xfb\xd4\xb1\x7e\x6d\x65\x09\x53\x95\x21\x49\x45\xbc\xf6\x02\x61\x65\xf1\x92\x4a\x43\x92\xd0\x23\xf7\x7c\xa9\xcf\xe6\x96\x03\xd9\x65\xe7\x3e\x0c\x13\x2a\x37\x2e\x9f\xa3\x25\x20\x3d\x17\x72\x58\x78\xbc\xca\xc8\xa0\xc0\x03\xd7\xdc\xb6\x34\x48\xb2\x6f\xba\x3d\xf6\xd1\xf9\xe8\x7e\x5a\x32\xbb\xa4\xf2\x53\xc9\x68\x27\x1b\x1d\xf0\x12\x26\xd6\x51\xfa\x5c\x56\xa3\xac\x5d\x80\xa7\xf2\x06\xdf\xd7\xa1\x7d\xa2\x9c\xb7\xdc\x10\xe4\x94\xec\x67\xd7\xa5\x2d\xff\xaf\x85\x94\xfc\xa4\x4f\xf2\x43\x80\xe4\xc1\x8c\xc4\x06\xdb\x76\x2b\x96\x5a\x85\x2d\x0d\x99\x97\x24\x99\x36\x4f\x78\xc1\xca\x17\xf9\x0e\xb1\x3a\x82\x59\x70\x97\xc6\xfe\xff\x56\x76\xcf\xbc\xf2\x38\x39\xd9\x88\xc8\x64\xfd\x48\x32\xe1\x56\x0a\xcb\x64\x85\xc9\x16\x89\xfc\x70\x90\xda\x1e\xb8\x05\xe7\x80\x6f\xda\x80\x92\x84\x6b\x91\x7a\x6b\x21\xfb\xbe\x14\x71\x4c\x85\x96\x54\xcd\xfa\x82\xf8\x9f\xab\x07\x72\x46\x45\x90\x64\xb1\xb0\xa5\x00\xb4\x82\x63\xe0\x86\x1a\x35\xd5\x65\xda\x98\xa4\xca\xb0\x64\xcd\x7d\x5f\xc4\xcc\xb9\xcf\x82\x07\x62\x8c\x9c\xc9\x43\x94\xf9\x3c\x5e\x99\x89\xa6\x1d\xaf\x1e\xaf\x6c\x45\x89\x10\xb4\xf0\xa2\x30\x49\x3c\xb9\xe0\xf4\xb0\xd1\x82\x2b\xee\x2f\xe5\x87\xe6\xe6\xd6\x22\x7a\x8f\x70\xd5\x7c\x90\xf2\xac\xc5\x73\xbd\x86\xf5\x5d\x48\xad\x7e\xe2\x89\x91\x61\x8d\x45\x4c\x8e\xc9\xb6\x7e\xa2\xb4\x76\x9e\xc8\x09\x76\x32\x5f\xd5\xbf\xca\x97\x4d\xa3\xbb\x40\x0e\x54\x4f\xd7\x22\xca\x80\xa1\x0c\x18\xca\x80\xa1\x0c\xd8\xe9\x2c\x05\xb9\x68\xa0\xad\x55\xea\xaa\x96\xf7\xe5\x5b\x29\x0a\x3d\x25\x86\x87\xab\x71\x09\x1d\x27\x8b\xed\x2d\xc8\x53\x46\x9e\xc7\xf2\xe8\x8d\x8b\x07\x3a\xb7\x2b\xa3\x2c\xa6\x9b\x67\xd9\x93\x62\x21\x56\x5e\x10\x68\x6b\xc0\xbd\x97\xa4\x61\xfc\x3c\x67\x1b\x4d\x93\xa2\xae\x3c\x3e\xde\xb1\x4b\x29\x4d\x90\xb3\x5b\xc1\x29\xdd\x58\x1f\x0a\xe2\x02\x3d\x5f\x1e\x4b\xe4\x0a\x1d\xc6\x72\xbd\x2c\xb8\x14\x5b\xc3\x80\xfd\x2b\x0b\xe3\x6c\x7d\x49\xc1\x40\x4b\x9f\xaf\xde\xab\xc7\x7a\xf2\xc0\xfa\xa3\x7e\xee\x93\x60\x89\xb7\x56\xfe\x7b\x24\x6d\x3d\xd1\xbd\x24\x98\x93\xc5\xb1\x08\x52\xff\x99\xdd\x73\xd2\x2e\x99\xc3\x9d\x7b\x41\x22\x84\x95\x64\xf4\x13\x49\xd8\x0e\xa5\x3a\x4a\x12\x6a\x65\x93\x79\xca\xe4\x41\x9f\x52\x18\x41\x2c\x12\x8a\x27\x58\x79\x8f\x22\x60\xf1\x63\x93\xd5\xb5\x61\xfd\xea\x49\x99\xf7\xd6\x42\x8a\x5a\x46\x2f\x96\xb3\x77\x95\x2f\x2d\x2d\xee\xd0\x55\x9b\xa8\x4d\x6b\x34\x7f\x23\x61\xd3\x02\x8c\xc5\x8a\xc7\x2e\x79\x5d\xc8\x45\x15\x3c\x33\xee\xa4\xde\xa3\x97\x3e\xcb\x63\xd0\x0b\xcc\xff\x35\x19\xa7\x54\x35\xb1\x5f\x3d\xf8\xef\xca\x7c\x19\xc6\xf9\x2e\x0b\xf5\x21\x26\x3f\xb7\x20\x11\x51\xcd\xa7\x3a\x74\xf5\x6a\x4c\xef\xc5\x5a\x09\x85\x49\x1a\x0b\xbe\xa6\xe1\x71\xdd\xb7\x5a\xec\x7a\xab\x3f\x2b\xaf\x65\x79\x19\x14\x0c\x9a\xec\xab\xaa\x0d\xb5\x69\x25\x6d\x32\x84\x4f\x1b\xbe\x79\xec\xc5\xd7\x69\x25\x61\x86\x5b\x09\xaa\x00\x6e\x7e\x61\x6f\x15\xc0\x5c\xa4\xea\xd6\x83\xa3\xda\x21\xa1\xd7\x82\x80\xca\x7a\x16\xeb\x6b\xdc\x88\xf9\xe1\x92\xc9\x36\xd7\xf4\xc3\x90\xcf\xd8\xf4\x1a\x85\xef\x05\x7c\x2f\xa6\xe2\x7b\x01\x6f\x05\x78\x2b\xc0\x5b\x01\xde\x0a\xf0\x56\xe8\xdd\x5b\x01\x18\x1c\x64\x14\x64\x14\x64\x14\x64\x14\x64\x14\x64\x14\x64\x74\xe7\x25\x00\x58\x01\x58\x01\x58\x01\x58\x01\x58\xb1\x03\x56\xec\xfc\x82\x7c\xd9\x7b\x35\xf0\xff\xb9\x3d\x06\x75\x9e\x5d\xfe\xf6\xb0\xa9\x88\x0d\x5e\x2d\x18\xac\x7f\xf5\x92\xb3\x8c\x60\x95\xe7\xd8\xd0\x01\x48\x83\x04\x83\x48\xc8\x37\xba\x84\x7c\x61\xd2\x32\xe6\x52\xaa\x08\xe3\x35\x89\x96\xfa\x78\xcb\x4c\x6b\xa0\x49\x50\x8a\xbd\xaa\x77\xe8\x21\xa0\x68\x02\x01\x45\xc8\x82\x82\x2c\x28\x15\x8d\x19\xb4\x60\x36\x8e\x34\x28\x8d\x1a\xfc\xd3\xc1\x06\x2b\xc7\xd8\xa1\xb4\x78\x4a\x72\x2f\x89\x1b\xc3\x94\x7b\x5f\xb1\x97\xe4\x6e\xd1\x99\xf2\x4f\x94\xc2\xa5\xae\x70\x55\x4c\xdb\xd2\xb3\x70\x35\x92\xfc\x18\x10\xa9\x8a\x93\x3c\x58\x91\x0a\x11\xc9\x67\x14\x91\x8c\xd0\x2b\x84\x5e\x21\xf4\x0a\xa1\x57\xd0\x06\x77\xed\xa2\x41\x06\x2f\xf4\xa3\x69\x21\xf6\x62\x67\xec\xc5\x40\x15\x2f\x6b\x8b\xee\xa6\xa6\x58\x59\xd2\xaa\xa7\x37\x55\x95\x12\x6b\x37\xcc\xa2\x20\x7f\x88\x1f\xe4\x3c\xb5\x90\x3f\x71\x27\x9d\x33\x76\x2b\xff\x35\xbf\x5f\x73\x8f\x0c\x75\x09\x73\xfc\x2c\x49\x45\x9c\xdf\x2a\xba\x16\x81\xef\x3d\x08\x36\xb3\x2d\x9d\x49\xe1\xd1\x08\x3c\x73\x76\xe7\xf3\x20\xd0\xce\x0f\x24\x92\x70\x5f\x49\x41\xd7\x3f\x37\x39\xa6\xa9\x8d\x3d\x09\x0b\x76\xd0\xac\xac\xbd\x30\xc3\x27\x7b\xca\x6e\xd5\x88\xc9\x0b\x22\x4a\xcc\xe8\x68\xff\x22\x2a\xec\xe0\xf0\xa0\x20\x36\x3f\x77\x3c\x50\xb2\x31\xd3\xa5\xda\xc3\xbe\xc5\x60\x70\x3b\x51\x1d\xbb\x5e\x38\x73\xb1\x90\xdd\xce\x06\xa0\x92\x5d\x75\x9f\x01\xce\x51\xc9\xae\x9d\x4a\x76\x4d\x44\xab\xca\x02\x76\x93\xc2\xfd\xa8\x5d\x07\x3b\xf5\xf9\xa1\x7f\xd4\xae\x6b\x73\xdd\xa0\x76\x1d\x14\x23\x28\x46\x55\x03\x39\xa2\xe2\x75\x2d\xa8\x46\xff\x3f\x7b\xff\xd6\xdb\x38\x92\xec\x7d\xa3\xf7\xf5\x29\x12\x9e\x0b\x55\x61\x6c\x79\xb9\xf0\x02\xd3\xa8\xc6\xbe\x70\xd7\x61\x76\xf5\x9a\x46\x19\x55\x8d\x5e\x37\x6e\x3c\x2b\x45\xa6\x68\x6e\x53\x99\x7c\x78\xb0\xdb\xb3\x31\xdf\xfd\x45\x46\x1e\x48\x4a\x94\x44\xc9\x94\x44\x49\xff\xb9\x69\x4f\x89\x4c\xe6\x39\x23\xe2\x17\x91\xb1\xab\xec\x75\xdb\x19\xc5\x5a\x93\xd6\x9d\x94\xec\x06\x57\x4d\xc8\x6b\xe7\x21\xaf\x0d\x48\x2c\xc2\xe9\xed\x7f\x81\xab\x66\xad\xec\x93\x12\x37\x76\x9d\xb2\xee\xb0\x7e\x8f\xd7\x79\xc0\x93\xba\xaf\xe3\x8e\x60\x1e\x7d\x66\x31\xe9\x6e\x2f\x54\xef\x07\x35\x01\x5b\xd0\xda\x15\x5d\x16\x4a\x8f\x43\x2c\x23\x5a\xd8\xd4\x6d\x67\xb8\xa4\xfb\x42\x2b\x55\x77\x2e\x59\xd9\x73\xf3\x72\x9f\x6c\x65\xf1\xd3\xa0\x2a\xed\x6d\x06\x55\x01\x55\xe9\x87\xaa\xbc\xea\x8c\x5b\x87\x57\x16\x0f\xb9\xa3\xd4\xd3\xc1\x58\xa0\xb3\x9f\x9f\xce\x0e\xc6\xd2\xe7\xbc\x01\x63\x81\x95\x06\x2a\xd2\x4e\x55\xa4\xfe\x20\xcb\x4e\x95\xa4\x5d\x51\x96\x57\x5a\x2b\xd6\xe1\x96\x13\x91\xe5\x5e\xb3\x5a\x20\xc0\x41\x80\x3b\x22\x01\x6e\x40\x72\x12\x8e\x73\xff\xcb\x4e\x8f\xf3\x03\x51\x17\x08\x20\xbd\x62\x97\x1d\x88\x1f\x6f\x58\x2f\xdc\xc5\xc4\xb4\xed\x1e\xbc\xd0\x77\x76\x45\x5e\x4c\x23\xb0\x11\x01\xa6\x22\xa8\x05\x41\x2d\xc0\x2f\xc0\x2f\x07\xc4\x2f\xaf\x3a\xe9\xd6\xf2\x97\xc5\xa3\xee\x28\x95\x76\x00\x18\xe8\xef\xe7\xa7\xbf\x03\xc0\xf4\x39\x6f\x00\x60\x60\xb1\x81\xa2\xd4\xd6\x91\xc3\xe3\x2f\xc7\x18\xe4\xf2\x5a\x9b\xc5\x5a\xfe\x72\x22\xb2\x1c\x82\x5e\x20\xbf\x9d\x87\xfc\x36\x20\x31\x09\xa7\xb9\xff\x05\x41\x2f\xb5\xb2\x4f\x4a\xfc\x38\xc6\xa0\x17\x7d\xee\xc7\x01\xcf\x45\xb1\x5b\xac\x62\x52\xc6\x66\x36\x51\x9e\xbb\x7a\x56\x4d\x99\x6e\x1c\xfb\x6e\x6a\xb1\x5a\x44\xd1\x45\x18\xf9\xa4\x7a\xfc\x8b\xca\x6e\x93\xc4\xcb\x2b\x83\xa0\x2a\x4b\x5f\x38\xd3\x04\x58\xd5\x68\x21\xff\x55\xcb\x63\xbd\x6c\x0d\xad\x0b\x68\xc7\x04\x87\x6e\xe3\xa5\x54\x7c\xbf\x28\xf5\x38\xe3\xd9\x63\x5e\x19\x84\xcc\x3a\xa7\x0c\xbf\xb9\x15\xa8\x5e\x52\xc1\xee\x2f\x7e\xf9\xf6\xed\xbf\x7f\xbb\xfd\xfe\xdf\xf7\x17\x55\x8e\x5d\x73\xdb\xae\x22\x79\x38\x9e\xa5\x89\xa0\x64\xba\x13\x5f\xea\x8c\xbf\xb0\x38\x92\xe6\xae\xf3\x38\x37\x06\x0d\x2d\x3a\x55\x8f\xf0\x4c\xb0\x7a\x2e\x52\x93\xb8\x76\x94\xb3\x30\xce\x83\x4c\xe8\x3a\x57\x99\xd0\x6b\xe2\xb7\x4d\xa0\xdb\x2c\xc8\x27\xc4\xe4\x85\xc9\x0b\xeb\xae\xa0\x8c\x65\x21\xb2\x27\x9e\x5c\x32\xa9\x32\xaa\x16\x65\x5c\xf5\x59\x78\xe7\x13\x39\x53\x9a\xfc\x17\xe6\xda\x6c\x33\x1e\xfb\x7c\xab\xb9\x16\xc7\x95\xac\xae\x54\xb7\x89\x79\x6d\x3e\xd1\xc6\xed\xde\xfa\x57\xea\x82\xd0\xe7\xfd\x9f\x0a\x5e\x94\x99\x60\x11\x2f\x04\x9b\x1b\x08\x5b\x92\x90\x5a\x96\x34\x09\x6e\xd3\xd8\x54\x6e\x59\xb1\x1b\xa2\x99\x96\xe1\x6f\xe7\x34\x6d\xe6\x9f\x1e\xb0\xd3\xef\xf5\x1c\xc9\xc6\xc2\x58\xbb\xfe\x3e\x17\x85\x49\x48\x6c\x93\x5c\xeb\x0e\x6f\x64\x47\xf6\xf7\x94\x9b\x4e\x19\xb3\x1f\xb1\x0c\xc4\xdc\xcd\xf6\x76\x34\xad\xec\xdd\x4c\xbd\xdc\xc8\x3e\xed\x2b\x62\x5e\xa5\xc2\xb9\x56\x06\x9f\x62\x55\xe6\x36\xe5\xb6\xcb\x85\xab\x57\x43\x95\x10\xd9\xfc\x56\xad\x3f\xf6\x56\xfc\x15\x88\xb4\xca\x02\x6a\x8a\x54\x53\xff\x91\x77\xfe\xea\x6d\x5b\x3f\x93\x96\x9b\xf0\x23\x9f\xaf\x4a\xac\x57\x96\x30\xb3\xc1\x6b\x93\x7e\x0a\x55\x66\x82\xf9\xd7\xf4\x1b\xa4\xa4\x88\x8c\x19\x85\xd4\x65\xcd\x0e\x4b\x41\xe9\xdc\xff\x4a\x63\x9b\x92\xe0\x6d\x24\xa4\xc8\x08\x2b\x4d\xb5\x66\x5a\x28\x36\x8d\xa7\x85\x10\x92\xcd\x62\x59\x16\x22\x7f\xc7\x28\x15\x7a\xa0\xe4\x34\x8e\x5c\x26\x03\xa3\x39\xb9\xb4\xe6\xd5\xe4\x6c\xae\x22\x73\xa0\xf9\x4c\xbb\xff\xcf\xcd\x7f\xb1\xef\xf6\xc6\xf1\xcf\xba\x0a\x22\xb4\x7a\x6f\xa1\x22\x53\x41\xfb\xa4\x6f\x51\xa1\x1e\x85\xf4\x4d\xb6\xa9\x97\xa5\x10\xe1\x5c\xc6\xe6\x84\xd2\xb1\xc7\x85\xd1\xdf\x32\x91\x17\xdc\xa4\xf9\x8e\x4d\x22\x5d\x9f\x9d\x7a\x31\x3d\xf7\x98\x7d\xd3\x9f\x7e\x8e\xdd\xa5\xf9\xf6\x2b\x7a\x64\xec\x36\x60\x2c\xb3\x36\x29\xb2\xc9\x48\xed\x15\x4d\xaa\xa1\x4b\xfb\x5c\x53\x40\x75\x63\xa9\x71\x6b\xbb\x85\xca\xa5\x0a\x93\x55\xd8\x4d\x6e\xca\xea\xfe\x28\x5e\xcc\x95\xf0\xfe\x9f\x13\x5e\xe8\xef\x57\x29\xaa\x9f\x1f\x62\x93\xfd\x3b\x96\xb5\x0e\xf1\xcf\xfb\x89\x5c\xcb\xe9\x9c\xb3\x2b\x2f\xc7\x99\x5b\x67\x33\xb1\x61\x66\xee\xb9\xce\x58\x4c\xca\x6d\xaf\x97\x27\x81\x86\xb4\x60\x3d\x21\xf5\x7f\xcd\xa0\x3c\x8a\x17\x9b\xe6\xdc\x17\x7c\x7f\xe1\x9a\x7c\x7f\x61\xb3\x98\x2f\x4f\x7b\x4e\x1b\x44\x33\xf1\xb9\x3f\x23\x68\xe4\x68\x02\xb8\xec\xce\xb5\xde\x33\x9d\x50\x4f\x04\x6b\x97\x8d\x3f\x39\xec\xad\xfa\x76\xc4\x8c\x25\xa6\x60\xb3\x38\xcf\xe9\x44\x68\x98\x83\x36\xdd\x79\xdd\xd4\xeb\x07\x8b\x77\xdb\x6d\x6f\x59\x2e\xaa\x9b\xf6\xf5\xda\xc8\xe2\xa0\xf0\x59\x8a\xf5\xf6\xe4\xdb\xee\x13\x4b\xbc\xd8\x71\x32\x90\xa2\x99\xe5\x43\x3c\x89\xec\xa5\x78\x88\x65\xb4\x69\xf3\xa9\xb4\x1f\xb6\x36\x47\xd3\x07\x09\x9f\x88\xa4\xb7\x3e\xa0\xd2\x0e\xd1\x07\x26\x47\x3d\x99\xcd\x66\xfc\xaf\x78\x56\xce\x98\x2c\x67\x13\x91\x99\xd6\x5b\xdd\xc3\xf4\x0f\xe5\x5c\x26\x58\x58\x65\xf8\xa7\x6d\x98\x0e\xe2\x58\xd7\xc2\xa4\x9d\x58\xdc\xdd\x28\x07\xf8\x83\x60\xff\xeb\xe6\xfa\xff\xba\xcc\x17\xb2\xea\x6f\x97\x94\xc2\x24\x8d\x31\x0b\x90\x76\xa2\x80\x4b\x97\x5a\xa6\xda\x4b\x73\x3e\xd3\x9b\x4b\x5c\xc4\xfe\xd0\x35\xb5\xd4\xe2\x81\xa8\x76\x4b\xfd\x69\xd3\x16\x3d\x4c\x5a\x48\x2d\x0a\x23\xae\x99\xb6\x9b\xc3\xd6\xb4\x4d\x3c\x9b\x84\xee\xb2\x6e\x4e\xd5\x1b\xdd\x4c\x95\x92\x8a\x31\xad\x7c\x5b\xa6\xfa\x63\x26\xb9\x8e\xfe\x97\x77\x6e\x77\x33\x12\x21\xa7\x0d\xdd\xbd\x5d\xcf\xd1\x3f\x8d\x93\x42\xe8\x33\x4e\x9f\x3b\x7a\x1b\x09\x9a\x32\x6c\x43\x0a\x31\xc6\xe7\xc0\xfb\x55\x35\xcf\x28\x93\x22\xa3\x10\xd9\x2c\x96\xc2\x9f\xe6\x0d\xa1\x88\xf6\xd2\x27\x1e\x27\x5a\x6a\xac\xe4\x73\xdd\xe4\xe0\x41\xa9\x9c\xd2\x62\xeb\x72\xec\x1e\x6a\xc7\x42\x77\x0b\xcf\xa2\x92\xc4\x76\x2e\x43\x77\x42\x51\x27\xe9\xb6\xd9\xfa\xf8\xa2\xab\xde\xfd\x3a\x65\x7e\x4a\x55\xc2\x88\x93\x6f\xe6\x1a\x10\xe7\x4c\xcc\xd2\xe2\xa5\x29\x88\x79\xe9\x9b\x17\x5a\x66\x59\xd5\xa0\x55\x87\x41\x3c\x9d\x3b\x0a\xcc\xe9\xe1\xe7\xa5\x4f\x53\x6f\x8f\xbb\x2a\xc7\x4d\x2d\x83\x3e\x9d\x28\x25\xd9\xd8\x7d\xdd\xfd\xc1\xe6\x45\xbe\x42\xb1\x38\xcf\x4b\xab\x04\xc4\x32\x4a\x44\xb5\x42\xbc\x94\xe1\x26\xdc\x95\xb3\x3b\x53\xb6\x7c\xf7\xc9\xcd\x4e\x5a\x77\xc8\x92\x8e\x91\x97\x22\x6c\x3d\x6e\x49\xd7\x29\x27\xb9\x7e\x58\x16\xbe\x05\x61\x8d\x4c\xff\x6e\xd5\x94\x5c\xcd\x44\x11\xcf\x84\x6e\xfb\x54\x64\x19\x25\x01\x32\xb9\xd5\x6b\x02\x44\x25\x60\xe8\x11\x15\x32\x2f\x33\xe1\xef\xa8\xb7\x22\x92\x33\xaa\x9b\x5e\x33\x4d\xa6\x85\x49\xc2\x10\xcb\x67\x3c\x49\x44\xc6\x82\x87\x52\x3e\x9a\x84\xf6\x4c\x6f\x9b\x2c\xe1\x59\xe4\x06\x9a\x56\xbc\x29\xde\x68\x64\xb9\x10\x34\xf1\x52\x95\xe7\xb1\x9e\x70\xb6\xdb\x68\xc2\xd5\xd7\x97\x71\x83\x0a\x2b\x9d\x8c\xbe\x23\x42\x33\x1e\x24\x7e\xdb\x03\xde\xce\x61\xeb\xe6\x47\xb5\x7e\xe6\xb9\x03\x3e\x4e\xef\xd4\x7d\xb2\x28\xe1\x18\xb9\x9f\xe7\x7a\x80\x83\x32\x31\xb9\x99\xaa\x69\xb3\xf1\xee\xaf\x3b\xa9\x7d\xd7\x6f\x4b\x4e\x75\x46\x3e\x7e\xdd\x5a\x43\xa4\xae\xda\x6d\xac\x08\x6d\x56\xbf\x5e\x82\x97\x7a\x77\x7d\xce\x1d\xda\x31\x83\xad\x82\xa0\xcc\xfc\xc2\xe2\x05\x23\x5f\x3a\x3d\x9a\x59\x7d\x8e\x70\x2f\x19\x36\xcf\x7a\x57\x96\x97\x22\x27\x22\x8a\xa5\xb4\x34\xee\x21\xce\x0b\x95\xbd\x8c\xd9\x5c\xd5\xf4\xe9\xa9\xe7\xd0\x07\x76\xa5\x37\x28\x72\xde\xa8\x0d\x81\xa3\x7f\xb5\x1d\x88\xca\xcf\xc4\x4c\x91\x73\x9f\xca\x78\x24\xd8\x84\xeb\x93\x50\x49\xf6\x7f\x4b\x95\x95\xb3\x2b\xf2\x71\x9f\x26\x3c\xfa\xd9\x14\x1b\x17\xa3\x9c\xfd\x97\x2d\xf7\x59\xb0\x3c\x9e\x19\x7f\x14\xda\xc0\x9f\x69\xaa\x0b\x16\x94\x59\x26\x64\x91\xbc\xb0\x07\x4e\xc9\xe3\x58\xc0\x83\x07\x41\xbb\x92\xdf\x1c\x6d\x89\x74\x7e\x2b\x26\x95\xa4\x43\xaf\xb5\xca\xbc\x60\x89\xd0\xa2\x34\xd7\xbd\x22\x72\xf2\x90\x8d\xe2\x27\xad\x09\x3d\x6d\x3a\x89\xe6\xc4\xf1\x7d\xce\xa6\xdf\xe3\x99\xd0\xfb\xb5\xd3\xd7\xf5\x78\x5d\x57\x93\xc9\xee\x99\xb4\x66\x73\x93\x9c\xca\x29\xc0\xee\x98\xa6\x29\x97\x89\x88\x67\x21\x21\x43\x3d\x8d\xe4\x0b\xe3\x41\x11\x3f\xc5\xc5\x8b\xde\xd8\x63\xe9\xfe\xdf\xa6\x3d\x53\x98\xea\xb5\x25\xb5\xdb\xf5\xae\xf1\x3f\x46\x6f\x52\x59\xb5\x92\x94\x4d\xcf\xa5\x9f\x9b\xd0\xc9\x62\xc6\xcd\x78\x44\xdb\x19\x57\x3c\x88\x99\x39\x4b\x8c\xbd\x9b\x3a\x24\x0c\x2f\xed\x6e\x7d\x69\x9f\x9d\xa9\x27\x12\x48\x6a\x9a\x14\xfb\x61\x72\x9d\xcc\xab\x67\x9b\x76\x5a\x8b\x79\x7e\x6b\x73\x96\xfd\xeb\xcf\x15\x14\xa6\x1e\xeb\x72\x40\x0c\xd3\xcd\x55\xa4\xe2\x30\xb5\xe7\x01\x62\xe6\x7b\x7e\x78\x20\xa6\x36\x5c\x20\x31\x2d\x8f\x0d\xc5\x43\x0c\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\x06\x28\xa6\x6d\x36\x01\xc5\x2c\x5d\x67\x40\x31\xdd\x50\x0c\x7d\xee\x5a\x9f\xb7\x99\xd2\xa7\x9d\x56\xb7\x75\xb5\x77\xcb\x65\xac\xb8\x23\xc3\xf8\x29\x0e\x4b\x9e\xd4\x47\x89\x7b\x95\xe6\xa3\xaf\xd5\x77\x5b\xab\x31\x0b\x7d\x4e\xff\x0f\x5e\xf8\x1c\x51\x71\xa3\xca\x92\xd5\x30\x4d\x78\x9c\xc3\x62\x99\x17\x82\x37\x4e\x89\x79\xd8\xf3\x5c\xdd\xf0\xb2\xf8\xf5\x7f\xc5\x39\xc0\xcf\xc2\xd0\x0e\x06\xfc\xac\xb8\xb5\x86\xb6\x83\xcf\x5a\xe1\x39\x47\x0a\x44\x83\xb7\x7b\x14\xb4\xb8\x60\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x7a\xda\x6d\x41\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\x40\x84\xd6\xf6\x55\x67\x22\x14\x72\x31\xd3\xe2\xf3\x8e\x03\x74\xba\x81\xa0\x4f\x54\x99\x1f\xa2\xd8\x27\xff\xf1\x1f\x05\xf6\x69\x1b\x48\x60\x1f\x60\x1f\x5a\x32\x7e\x9d\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\xf4\xb4\xdb\x82\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\x80\xf6\xac\xed\xab\xee\xb4\x47\xa4\x89\x7a\xd1\x42\xd4\x20\x70\x8f\xaf\xcd\x5e\x79\x8f\xff\x2a\x80\x4f\xdb\x50\x02\xf8\x00\xf8\x18\xe0\xe3\x17\x0a\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x4f\x4f\xbb\x2d\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\x0f\x88\xcf\xda\xbe\xea\x4c\x7c\xa4\x27\x1b\xd7\xff\x7f\xff\xf7\x7f\x70\x11\x5c\x0b\x18\xf2\x10\x28\x6c\xbf\x12\x0e\x68\x08\x68\x08\x68\x08\x57\xc0\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x0d\x18\x8f\x00\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x1d\x23\x22\xb2\xad\xd6\x15\xa0\xa1\xe4\x65\xf1\xc0\xf2\x40\xa5\xe2\x92\xe5\x65\x40\xd6\x7d\xd2\x57\x04\x9f\x19\x6b\x6f\x9a\x29\xea\xe5\xb6\xa6\xa5\xbc\x78\x68\x6f\x99\xb7\x8c\x36\x7f\xd6\xf3\x4f\x4b\xfa\xb6\xf6\x7b\x3c\xef\xc0\xc6\xc0\xc6\xc0\xc6\xda\x67\x13\xd8\xd8\xd2\x75\x06\x36\xb6\x1b\x36\x66\x7e\xff\xcf\x1e\x10\x59\x9d\x8b\x49\x77\xea\xab\x29\x7b\x8c\x65\xb8\x2b\x3e\x76\x59\x89\xfb\xa4\xd2\x58\xd1\x50\x6b\x0c\x95\x1e\x33\x6a\xe8\xbf\xb5\xb2\x7b\xa0\x6b\x20\x6b\x20\x6b\x47\x41\xd6\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x8e\x83\xaa\x11\x4e\xb3\x3d\xb0\xce\xe6\xd0\x85\x9c\x0d\x05\x9a\x81\x16\x82\x16\x82\x16\x82\x16\x82\x16\x82\x16\xee\x8d\x16\x22\x81\x56\x45\xf6\x1a\xa9\xb4\x00\xf5\x00\xf5\x8e\x02\xea\x21\x75\x16\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\x1e\x78\xde\xe0\x79\x1e\xb8\x17\xb8\x17\xb8\x17\xb8\x17\xb8\x17\xb8\xd7\x01\xb8\xd7\x40\x82\xe3\xfa\x65\x5f\x7b\x8e\x89\x6b\x23\x04\xa0\x66\xa0\x66\x73\xa5\x0e\x88\x9a\x81\x98\x81\x98\x81\x98\xb9\x1f\x41\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x06\x49\xcc\xea\x11\x70\x4b\x4c\x0d\x08\x7c\x6b\x6f\x33\x00\x20\x00\x20\x00\x60\xd7\x49\x04\x00\x08\x00\x78\xaa\x00\x50\xa4\x89\x7a\xd1\x32\xf2\x20\x22\xdf\x7c\x6d\x0e\x14\xfa\xe6\xbf\x8f\xd8\x37\x50\xbc\xa3\xa1\x78\x7b\x88\x7d\xf3\x0b\x03\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\xaf\xa7\xdd\x16\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\x0f\x28\xef\xec\x50\x1e\xd8\x17\xd8\x17\xd8\x17\xd8\x17\xd8\x17\xd8\xd7\x21\xd8\xd7\x50\xa2\xdf\xfa\xe5\x5f\xfb\x0e\x7f\x6b\x83\x04\x20\x67\x20\x67\x73\xa5\x0e\x88\x9c\x81\x9a\x81\x9a\x81\x9a\xf9\x1f\x41\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x06\x49\xcd\x1a\x01\x70\x4b\x6c\x0d\x88\x80\x6b\x6f\x33\x28\x20\x28\x20\x28\x60\xd7\x49\x04\x0a\x08\x0a\x78\xa2\x14\x30\x13\xc4\x7b\x06\x92\xfb\xed\xbb\xa9\xcd\xc1\x92\xbf\x55\xdf\x47\x04\x1c\x38\xde\xd1\x70\xbc\xdd\x47\xc0\x55\x0b\x03\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\xaf\xa7\xdd\x16\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\x0f\x2c\xef\xec\x58\x1e\xd8\x17\xd8\x17\xd8\x17\xd8\x17\xd8\x17\xd8\xd7\x21\xd8\xd7\x40\x22\xe0\x7a\xe6\x5f\x7b\x8e\x80\x6b\x85\x04\x20\x67\x20\x67\x73\xa5\x0e\x88\x9c\x81\x9a\x81\x9a\x81\x9a\xf9\x1f\x41\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x40\xcd\x06\x49\xcd\xea\x11\x70\xcb\x6c\x0d\x88\x80\x6b\x6f\x33\x28\x20\x28\x20\x28\x60\xd7\x49\x04\x0a\x08\x0a\x78\xa2\x14\x30\x2f\x78\x21\xa6\x65\x32\x90\x10\xb8\x1f\xb6\x3a\x07\x8b\x81\xab\x55\x00\x41\x70\x40\x79\x47\x83\xf2\x76\x1f\x04\x57\x5b\x19\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\x3d\xed\xb6\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\xe0\x79\x67\xc7\xf3\xc0\xbf\xc0\xbf\xc0\xbf\xc0\xbf\xc0\xbf\xc0\xbf\x0e\xc2\xbf\x06\x12\x06\xd7\x37\x03\xdb\x73\x1c\x5c\x3b\x27\x00\x3d\x03\x3d\x9b\x2b\x75\x40\xf4\x0c\xe4\x0c\xe4\x0c\xe4\xac\xfa\x11\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x0c\xe4\x6c\x90\xe4\xac\x1e\x09\xb7\xd4\xd8\x80\x50\xb8\xf6\x36\x03\x05\x02\x05\x02\x05\x76\x9d\x44\x40\x81\x40\x81\xc7\x8e\x02\x91\xf5\xed\x8f\x9b\x66\xae\xb7\x2f\x2a\xbb\x4d\x12\xcf\xf0\x72\x80\x3b\x80\xbb\xa3\x00\x77\xc8\xfd\x06\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x07\x76\x37\x7c\x76\x07\xe2\x03\xe2\x03\xe2\xd3\x3e\x9b\x40\x7c\x96\xae\x33\x10\x9f\x4d\x88\x0f\x6e\x39\x4c\xf3\x3f\x6e\xe6\xee\x36\x04\xf4\x99\x1f\x4c\x40\x1f\x40\x1f\x44\x6c\x81\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x0c\x91\x78\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x80\xfa\x34\x5b\x03\xea\x03\xea\x03\xea\x03\xea\x73\x8e\xd4\xa7\xd4\xeb\xa2\xb0\xd5\x27\x6b\x7a\xac\xae\xb7\x22\x3e\xbb\x26\x1d\x5d\x68\x52\x24\x0a\x16\xcb\xa9\xca\x66\x7e\x7e\x73\x66\xcc\xd7\xcb\x81\x4f\x24\x8a\xdb\x46\x37\xdc\xde\x7d\xfd\xe7\xfc\x3b\x87\xe2\x3b\x47\x8b\x5d\x7c\x27\x1e\x3b\x74\x69\x4c\x8d\xda\x7b\x6f\xea\xdf\xee\xb2\xaa\x9e\x6e\x8e\x7b\x61\x35\x94\x27\xb3\x67\x6e\xb2\xaa\xfe\xb8\xb9\xbd\xfb\xfa\xbd\xed\x4d\xac\xad\xcd\xd7\x96\xeb\x48\xca\xb9\x77\x52\x4b\xac\x49\x38\xb7\x59\x65\x64\xcc\xce\xc4\x53\x2c\x9e\x1b\xce\x0b\x5b\x20\x46\x92\x86\xad\x86\x75\x49\x6e\x0a\x01\x2f\x9c\x40\xde\xb0\xa1\xd6\x99\xde\x44\xb0\x54\x1f\xfb\xb9\x56\x46\xd8\xad\x64\xb1\x34\x04\x43\x65\xac\x94\x1e\x82\x84\x2c\xcc\x5e\xbe\x97\x92\x85\x71\x26\xb4\x70\x25\xbc\x65\x9d\x24\x54\xad\x0f\x5b\xb4\xe0\x66\xa5\x35\xe4\xb2\x69\x99\x91\xf1\x24\xcd\x54\x20\xf2\xdc\x0a\xf1\x35\x1b\xd0\x98\xfd\x41\x5f\x24\xa3\x14\x69\x9a\x5a\x82\xbf\x4d\x92\x0f\xa4\x96\x86\xd9\x0b\xcb\x4a\xc9\xf2\x82\x6b\xa9\xc8\xe9\xe2\xb6\x38\x11\x6e\x28\xad\x98\x76\xec\x53\xe6\x25\x1b\xca\x6f\x5c\xf2\x48\x64\xc6\x1a\x68\xee\xbe\xc8\x73\x15\xc4\xa4\xde\x7a\xbb\x1b\x27\x83\xa9\xca\x98\x9e\x2c\xc5\x8b\xd7\xf7\x67\xfc\x51\xf7\x5b\xf1\x20\x72\xe1\xe4\x43\x2d\x2b\x3b\x02\x45\x10\x66\x22\x18\x49\xc4\x64\x63\x53\x19\xbb\x79\xff\x93\x7e\x36\xe3\x01\xa1\xb2\x44\xc9\xc8\x48\x83\x64\x07\x0b\x94\x2c\x78\x2c\x8d\x22\x4a\x5b\x65\xf5\x2c\xe1\x03\x0b\xf2\xd8\xe4\x85\xd1\x22\xf9\x70\x7d\x1d\xa9\x84\xcb\x68\xac\xb2\xe8\x3a\x7d\x8c\xae\x4b\x19\x07\x2a\x14\xd7\x7f\xfb\x9a\xdf\xe9\x52\xb6\x32\x4e\xdb\x8e\xd9\xe7\x80\x1c\x8b\x82\xee\x84\xe1\xca\xf1\x40\xe5\x3d\xfb\x34\x19\xcb\x18\xe3\xec\x77\xbd\x11\x7d\xa7\x8d\x68\xc5\x49\x69\x1e\x9f\x3f\x2c\x97\xbc\xbb\x64\x0f\x63\xf3\xdb\xba\xe9\xd3\x89\x0a\x5f\xe6\x4f\x24\xd7\xa9\x6d\xbf\xad\xb8\xc7\xe5\x55\x67\xd9\x78\x6e\xaf\x7e\xba\x19\xd7\xdb\xb7\xfc\xfc\x6a\xed\x6e\xc8\x0b\xbd\xf6\xf1\x65\xb3\xd6\xeb\x65\x84\x8f\xc6\xf2\x3b\xbc\xaa\xbf\x5f\x5b\xf5\xdb\x20\x10\xe9\x00\xeb\x7e\x8c\xa2\xd9\x7a\xe7\x33\xda\x5a\xfb\xf0\x3b\x6b\x93\xf4\xda\x1d\xd1\xda\xb7\xcd\x0e\x8e\x68\x1b\x08\x98\x13\x51\xf0\x73\xd7\xe5\xa8\x0f\xa0\xd0\xd5\x7f\x81\x42\xe7\xc7\x6a\x7e\xd7\xa0\xd9\xf2\x3a\xad\xce\x2c\x3a\xa8\x76\x50\xed\xa0\xda\x41\xb5\x3b\x6a\xd5\x8e\xb6\xb2\x13\xd7\xef\xa8\x8d\x50\xf2\x76\xaf\xe4\x6d\xd2\xd1\x43\xd4\xf4\x5e\x51\xff\x61\xa8\x7b\x5b\x37\xe0\x68\xa5\xb7\x23\x56\xfc\xe6\x9a\xb2\x4e\xfb\xd3\x1d\x0f\x32\xee\x7b\x01\x60\xdc\xfd\x02\x30\x7e\xd1\x58\x1f\xdd\x75\xbb\x85\x25\x75\x96\x58\xdc\xf7\x02\xa8\x78\xe3\x7f\x30\xa2\x54\x63\x55\x9f\x26\x1b\x41\xf1\xb6\x25\xb6\x24\x9b\x6b\xa2\x02\x9e\xe4\x25\xb9\x14\xf3\x20\x10\x79\x0e\xe3\x0a\x8c\x2b\x30\xae\xec\x6f\x40\x90\xb9\x03\x56\x25\x6f\x55\xfa\x97\xde\x8e\x7f\x98\xed\xf8\x96\xb6\xe3\x0d\x4c\x4c\x35\x99\xa2\x4a\x2e\xdd\xa5\xc4\x23\xb6\x39\x55\x47\xdd\xd3\xcd\x78\x69\x5b\x97\x4b\x02\xad\xa3\x03\xc9\x6b\x67\xfd\x3d\x10\x0b\x54\xcf\xcd\x38\x98\x21\xaa\xd7\x76\x1c\xa1\x20\xbc\x5f\x4b\xd4\xbc\x5c\xdd\x6e\x88\xea\xb0\xe3\x6e\xef\x8e\xd0\x26\xda\xe7\x22\x99\x42\x84\x87\x08\x0f\x11\x1e\x7c\x74\x30\x92\xec\x0f\x91\x4c\x7b\x10\x64\x3b\x14\x73\x2a\xd2\xeb\xb2\xa6\x42\x78\x1d\x48\x77\x0f\x51\x76\x7d\x75\x2b\x86\x21\xba\xbe\xb2\x19\x90\x5c\x7b\x91\x5c\xd7\x6f\xb6\x3b\x13\x5c\xb3\x32\x11\x90\x5b\x21\xb7\x42\x6e\x85\xdc\x3a\x14\xb9\xf5\xbb\xde\x93\x5e\x2d\xb6\x2e\x29\xe5\x04\xa5\xd6\x7a\x4b\x21\xb4\x0e\xa3\xb7\x07\x2e\xb3\x6e\xd5\x88\xc1\x89\xac\x5b\xb4\x02\x12\x6b\xdf\x12\x6b\xfb\x3e\xdb\xb3\xc0\x0a\x2b\x2b\xa4\x55\x48\xab\x90\x56\x07\x23\xad\xf6\x60\x61\x3d\x13\xeb\x2a\x2c\xab\x7b\x13\x52\x8f\xdf\xaa\x7a\x02\x16\x55\x58\x53\x0f\x2d\x9b\xee\xcf\x92\x7a\xae\x17\x12\xd4\x8e\x31\xdc\x47\x00\x57\x7a\xd6\x75\xe7\xd8\xf0\x3a\x82\xa5\x2b\x0e\x4e\xf5\xd0\x15\xa1\x2b\x0e\x50\x57\x84\x53\x3d\x94\xe4\xde\x9d\xea\x69\xcf\x3f\x4b\xcf\x7a\x13\xe2\x0e\xf7\xfa\xbd\xea\xd1\x5b\x77\xfa\x00\x35\xea\xbe\xda\x32\x08\xdd\xba\x9f\xc6\x1c\xab\xac\x3c\x44\x55\x7b\x0b\x97\xfb\xd7\x5e\x04\xe1\x54\x00\x38\xdf\x43\xd4\x87\xa8\x0f\x2c\xb4\xb6\x35\xfb\x94\x78\x7b\x72\xbe\xa7\x1d\xee\x7c\x3c\xf0\xcd\xb9\x0e\x37\xfc\xfd\x0b\xb9\x27\xe1\x8b\xdf\x53\x53\x06\x24\xe2\x9e\x89\x57\xfe\x31\x48\xb8\x9b\xbb\xe6\xef\x40\xc0\x85\x93\x3e\xe4\x5b\xc8\xb7\x90\x6f\x87\x24\xdf\xbe\xc2\x49\x7f\x5e\xbc\x3d\x6d\x4f\xfd\x85\x23\x1d\xee\xfa\x7b\x17\x6e\x8f\xd6\x67\xbf\x9f\x96\x0c\x53\xb4\x3d\x61\xef\xfd\x23\x93\x6c\xbb\xb9\xf0\xf7\x26\xd8\xc2\x6a\x0b\xa9\x16\x52\x2d\xa4\xda\xc1\x48\xb5\x7d\x59\x6c\xcf\xc9\x5a\x0b\x4b\xed\x7e\x85\xd9\x13\xb1\xd2\x9e\x8a\x85\x16\xd6\xd9\x41\xc8\xb0\x3b\xb4\xcc\xaa\x3c\xe0\x49\x2c\xa3\xe3\x76\xef\xdf\x32\xf5\x84\x6b\x3c\x12\x4f\xb8\x5f\x90\x78\xe2\xa2\xb6\x28\x3a\xfb\xf0\xfb\x55\x74\x8e\xd9\x26\x5c\xe3\x91\x6b\xa2\xf1\x3f\x04\xc8\x54\x63\x55\x4d\x92\x4d\x32\x4d\xd4\x57\x15\xd5\x58\x2b\xb4\x49\xaa\x42\xf7\x9b\x51\x32\x36\x5f\x6d\x5d\x75\xa7\x24\xce\x0b\xad\x67\x3f\xf3\x22\x78\x60\xc6\xeb\x3f\xd7\x07\x8c\x3e\x99\xd9\xff\xd7\x57\xe9\x4e\x85\xb7\xbe\x4a\x2b\xd6\x8b\x2e\xaf\xb1\x60\x96\x14\xf1\x45\x65\xb7\x49\xe2\x7d\xc1\x07\xb1\x96\x96\xbe\xa0\x3f\xf6\x73\x5e\x64\x82\xcf\xfe\x3f\xd4\x51\x1b\x97\xdd\x7c\x7b\xd8\x8b\x76\x5c\x9b\x97\x7a\xa5\x2e\x19\xc1\x93\x5e\xb5\xeb\x65\x64\x3d\xd1\x7b\x92\x91\xfd\x59\xdc\x2a\x1a\xaf\x5f\x83\x1d\x22\x61\x2b\xeb\xcb\xe6\x36\x59\x9e\x24\xea\xf9\x7f\xf4\xc4\xfd\x45\xa9\xc7\x19\xcf\x1e\x73\x67\xf5\xcc\xed\xbe\x21\x9e\x84\xd4\xff\x87\x4c\x80\x2f\xa9\x60\xf7\x17\xbf\x7c\xfb\xf6\xdf\xbf\xdd\x7e\xff\xef\xfb\x8b\x31\xfb\x21\x32\x5d\x41\x63\x09\x0c\x15\xd9\x6c\xe3\x59\x9a\x88\x99\x90\x05\x9b\xf8\x52\x67\xfc\x85\xc5\x91\x54\x99\x60\xc5\x43\x9c\xb3\x69\xc2\x23\x32\xf6\x55\x8f\xf0\x4c\xb0\x5c\xbf\xc5\x0b\x32\x79\xe5\x54\xf4\x28\x67\x61\x9c\x07\x99\x20\x45\x83\x7d\x4c\x62\xaa\x4f\xcd\x44\xcc\x73\xbd\x4d\xce\x15\x94\x89\xa2\xcc\xa4\x08\x75\x61\x5c\xbe\xb0\x3c\x15\x41\x3c\x8d\x03\x16\xcb\x42\x64\x4f\x3c\xb9\x64\x52\x65\x54\xad\xe2\x41\xbc\xb8\x42\xaa\xef\x1a\x43\x6e\x2e\x64\x48\xef\xbb\x36\x9b\xfe\x60\x61\x99\xc5\x32\x62\x9c\xe5\x22\xcf\xa9\x62\x5f\xa7\xa6\x61\x71\x6e\x2a\x65\xba\xef\xd2\xb6\x36\x16\x49\xa8\x7f\x32\x5d\x10\xda\xc7\x05\x9b\x0a\x5e\x94\x99\x60\x11\x2f\x04\x9b\x1b\x08\x5b\x92\x90\x5a\xa2\x09\xc9\x86\x9d\xc6\xa6\x72\xcb\x8a\xdd\xd0\x18\xd8\x32\xfc\xed\x96\xc1\x89\x52\x89\xe0\xb2\x6f\x43\xe7\xef\x0f\x82\xec\xbc\xb1\x2c\x05\x53\xf4\xcf\x6e\x60\x27\x7a\x1c\x0a\xf6\xfc\x20\xa4\x1e\xcb\x2c\x16\x4f\xba\xc3\x67\x8a\xc6\x36\x2f\x93\x22\x67\xd3\x4c\xcd\x6a\x23\x36\x66\x3f\x62\x19\xd8\xf9\x65\xec\xce\x71\xee\x46\xd3\x5a\x8b\x2f\x59\x60\x27\x90\x1e\x79\x32\x34\x97\xb9\x19\x76\x5f\x11\xf3\x2a\x15\xce\x59\x9a\x89\xa7\x58\x95\x39\xa3\x6e\x74\x3c\x81\x56\x43\x1c\x9a\xec\x8b\x89\xfd\xad\x5a\x7f\xec\xad\xf8\x2b\x10\x69\x61\xc2\xe8\xbc\x15\x5c\x4d\xfd\x47\xde\xd1\xdc\xaf\xcd\x36\x5d\x9d\x4c\x50\x60\x1e\x9f\xaf\x4a\xac\x57\x96\x30\xb3\xc1\x13\x0f\x3f\x85\xec\xcc\x16\xe1\xc2\x6b\xfa\x0d\x32\xab\x8b\x8c\x19\x68\xf2\xfc\x20\x88\x75\x84\xa5\x60\x85\x62\xe2\xaf\x34\x36\x27\x3c\x7b\x1b\x09\x29\x32\x9e\x24\x2f\x6c\x1a\x3f\xd1\xaf\xd3\x78\x5a\x08\x21\xd9\x2c\x96\x65\x21\xf2\x77\x5a\x96\xa0\xba\x4d\xe3\xa8\xb4\xaf\x19\x5b\x3f\x53\xb2\xd6\x96\xcb\x85\x55\x64\xce\x3f\xcb\x11\x38\xfb\x7f\x6e\xfe\x8b\x39\x01\xf1\xb3\xae\x82\x08\x2d\x9b\x29\x54\x64\x2a\x68\x9f\xf4\x2d\xa2\xd4\xe6\xbe\xc9\x66\x0c\x99\x14\x22\xcc\xcd\x53\x04\x88\x64\xc1\xf4\xd6\x7d\xa9\x3b\x8c\x88\x43\x26\xf2\x82\x67\xb4\x9b\xc4\x19\xfd\x46\x05\xab\xb2\x68\x8e\x38\xad\xa3\x31\xfb\xa6\x3f\xfd\x1c\xe7\xe2\xb2\xfe\x15\x3d\x32\x76\x1b\x50\x54\x37\x2a\xc7\xee\x92\x15\x1a\xa1\x1a\xea\xe1\x11\xf1\x53\x1d\x99\xe8\xc6\x52\xe3\xd6\x76\x0b\x95\x4b\x15\xd6\x33\xdd\x4f\x6e\x29\xfe\x2a\xd8\xa3\x78\xb9\x64\x93\xb2\xa8\xfe\x39\xe1\x85\xfe\x7e\x2e\x79\x9a\x3f\xa8\xe2\x92\x3d\x3f\xc4\xc1\x03\x6d\x06\xb2\xd6\x21\xfe\x79\x3f\x91\x6d\xf5\xcd\x12\xba\xf2\x72\x21\x6d\xe0\x7a\xe7\x34\xb6\xf3\xf0\xd2\x32\x39\xfd\x97\xd2\xeb\x27\x11\x85\xde\x4e\xa7\x85\x30\x73\x7a\x1a\x67\x79\x31\xdf\x19\x86\x7d\xc5\x32\x48\xca\xd0\xec\x59\x06\xa4\x19\xf9\x87\xb8\x8d\x9e\x90\xfa\xbf\x66\x50\x1e\xc5\x8b\xd9\xb0\xab\x82\xef\x2f\x5c\x93\xef\x2f\xc6\xf7\xf2\x5e\xfe\xde\xd8\xeb\xf4\x2a\xc8\xcb\x34\x55\x19\xa1\x29\xbd\x41\x98\x93\x2a\xce\x69\x13\xaa\xce\x08\x1a\x39\x9a\x00\x76\x37\xae\xf7\x9e\xe9\x04\x9a\x83\x7f\x98\x13\xd6\x2e\x1b\x7f\x72\x4c\x5e\xea\x23\x66\x68\x61\xc1\x66\x71\x9e\xd3\x89\xd0\x40\x96\x9b\xee\xbc\x6e\xea\xed\x13\x2b\xdd\xb2\x5c\x24\x82\x08\x5e\xa1\x68\x6d\x64\x71\x60\x56\x82\x51\x15\xa6\x55\xdb\xdd\xac\x30\x7d\x10\x67\xa6\xfb\xf3\x31\xfb\x24\xa6\x9c\x66\x8e\xde\x3e\x9e\x44\xf6\x52\x3c\x68\x59\x72\x1b\xb2\xf6\xc3\xd6\xe6\x68\xfa\x20\xe1\x13\x91\xf4\xd6\x07\x54\xda\x21\xfa\x20\x89\x67\x71\x61\x40\xef\x8c\xff\x15\xcf\xca\x19\x93\xe5\x6c\x22\x32\xd3\x7a\xab\xaa\x98\xfe\xd1\x5d\x41\xa7\x98\xdd\x9e\x02\x9e\x24\xb4\x0d\xd3\x41\x1c\xeb\x5a\x30\xf1\x17\x6d\xba\x8b\xa2\x93\xe9\xd7\xff\x75\x73\xfd\x7f\xed\x1a\xb6\x87\x05\x95\x37\x13\x05\x0f\x79\xc1\xf5\xd7\xb8\x5d\x80\xb4\x13\x05\x5c\xea\x9d\xa4\xcc\xeb\x7b\x69\xce\x67\x7a\x73\x89\x8b\xd8\x1f\xba\xa6\x96\x5a\x3c\x10\xd5\x6e\xa9\x3f\x6d\xda\xa2\x87\x49\x0b\xa9\x45\x61\xc4\x35\xd3\x76\x73\xd8\x9a\xb6\x89\x67\xda\x76\xb8\xac\x23\x7f\xbd\xd1\xcd\x54\x29\xa9\x18\xd3\xca\xb7\x65\xaa\x3f\xf6\x6f\x91\x29\xf3\x2f\xef\xdc\xee\x66\x24\x42\x4e\x1b\xba\x7b\xdb\xcd\x1d\xbd\xb3\x4d\xe3\xa4\x10\xfa\x8c\xd3\xe7\x8e\xde\x46\x82\xa6\x0c\xdb\x90\x42\x8c\x83\x44\x20\x9c\x0f\x42\xf3\x8c\xd2\x35\x08\xb5\x88\x31\x8b\xa5\xf0\xa7\x79\x43\x28\xa2\xbd\xd4\xd9\xc1\x2a\xf9\x5c\x37\x39\x78\x50\x2a\x17\xb4\x8b\x15\xca\xed\xa1\x76\x2c\x74\xb7\xf0\x2c\x2a\x49\x6c\xe7\x74\x28\x51\x83\xa8\x93\x74\xdb\x6c\x7d\x1a\x26\x36\xd3\xbb\x5f\xa7\xcc\x4f\xa9\x4a\x18\x71\xf2\xcd\x5c\x03\xe2\x9c\x89\x59\x5a\xbc\x34\x05\x31\x2f\x7d\xf3\x42\xcb\x2c\xab\x1a\xb4\xea\x30\x88\xa7\x73\x47\x81\x39\x3d\xfc\xbc\x8c\x4a\x9e\x71\x59\x08\xe7\x75\x42\x60\xdd\x8e\x94\x5f\xf6\x74\xa2\x94\xe4\x07\xe2\xeb\xee\x0f\x36\x2f\xf2\x15\x8a\xc5\x79\x5e\x5a\x25\x20\x96\x51\x22\xaa\x15\xe2\xa5\x0c\x37\xe1\xae\x9c\xa7\x84\xd6\x3a\xfc\x27\x37\x3b\x69\xdd\x21\x4b\x3a\x46\x5e\x8a\xb0\xf5\xb8\x25\x5d\xa7\x9c\xe4\xfa\x61\x59\xf8\x16\x84\x5e\xad\xb3\x3d\xa8\xc7\x4a\xcd\x44\x11\xcf\x84\x6e\xfb\x54\x64\x7a\x86\xea\x55\x38\x27\x51\x55\x02\x86\x1e\x51\x21\xf3\x32\x73\xdd\xc7\x9d\x88\xe4\xdc\x40\x4c\xaf\x99\x26\xd3\xc2\x24\x61\x88\xe5\x33\x9e\x24\x22\x63\xc1\x43\x29\x1f\x73\x83\x38\xf4\xb6\xc9\x12\x9e\x45\x6e\xa0\x69\xc5\x9b\xe2\x8d\x46\x96\x0b\x41\x13\x2f\x55\x79\x1e\xeb\x09\x67\xbb\x8d\x26\x5c\x7d\x7d\x95\x69\x48\x5e\x2a\x5e\x27\xa3\xef\x88\xd0\x8c\x07\x89\xdf\xf6\x80\xb7\x73\xd8\x5e\x80\x41\xb5\x7e\xe6\xb9\x73\x4a\x72\x7a\xa7\xee\x93\x45\x09\xc7\xc8\xfd\x3c\xd7\x03\x1c\x94\x09\x7d\x31\xae\xa6\xcd\xc6\xbb\xbf\xee\xa4\xf6\x5d\x5f\x6b\xa8\x0b\x1e\x27\xe7\xe3\x55\xd2\xad\x35\xe4\x4d\x56\xed\x36\x56\x84\x36\xab\x5f\x2f\xc1\x4b\xbd\xbb\x3e\xe7\xce\x19\xc9\x0c\xb6\x0a\x82\x32\xf3\x0b\x8b\x17\x5a\x65\x2b\x62\x3d\x9a\x59\x7d\x8e\x70\x2f\x19\x36\xcf\x7a\x57\x96\x97\x22\x27\x22\x8a\xa5\xb4\x1e\x63\x0f\x71\x5e\xa8\xec\x65\xcc\xe6\xaa\xa6\x4f\x4f\x3d\x87\x3e\xb0\x2b\xbd\x41\x95\x32\x17\x45\x6d\x08\x9c\x87\x5a\x6d\x07\xa2\xf2\x33\x31\x53\x85\x60\xba\x4c\x1e\x09\x36\xe1\xfa\x24\x54\x92\xfd\xdf\x52\x65\xe5\xec\x2a\x13\x3c\x24\x23\xca\xcf\xa6\xd8\xb8\x18\xe5\xec\xbf\x6c\xb9\xcf\x82\xe5\xf1\x2c\x4d\xfc\x29\xf7\x4c\x53\x5d\xb0\xa0\xcc\x32\x21\x8b\xe4\x85\x3d\xf0\x27\xbd\x71\xb0\x80\x07\x0f\x82\x76\x25\xbf\x39\xda\x12\xe9\xfc\x56\x4c\x2a\x49\x87\x5e\x6b\x95\x79\xc1\x12\xa1\x45\x69\xae\x7b\x45\xe4\x74\x77\x4c\x14\x3f\x69\x4d\xe8\x69\xd3\x49\x34\x27\x8e\xef\x73\x36\xfd\x1e\xcf\x84\xde\xaf\x9d\xbe\xae\xc7\xeb\xba\x9a\x4c\x76\xcf\xa4\x35\x4b\x8a\x8b\xde\x6b\x3c\xaf\xa5\x53\x8e\xa6\x5c\x26\x22\x9e\x85\xe4\xe4\xa6\xa7\x91\x7c\x61\x3c\x28\xe2\xa7\xb8\x78\xd1\x1b\x7b\x2c\xdd\xff\xdb\xb4\x67\x0a\x53\xbd\x1f\x22\x50\x32\x5c\x62\xa2\xd9\xd1\xae\xf1\x3f\x46\x6f\x52\x59\xb5\x92\x94\xe9\x01\x7a\x6e\x42\x27\x8b\x85\x66\x74\x42\xd8\x19\x57\x3c\x88\x99\x39\x4b\x8c\x79\x9c\x3a\x24\x0c\x2f\xed\x6e\x7d\x69\x9f\x9d\xa9\x27\x12\x48\x6a\x9a\x14\xfb\x41\x4b\xe7\x65\x5e\x3d\xdb\xb4\xd3\x5a\xac\xf9\x5b\x9b\xb3\xec\x5f\x7f\xae\x27\x3d\x4b\x6e\x3d\xeb\x02\x80\xcc\xc1\xdf\x2f\x03\x32\x65\xb2\x40\x25\x5a\xcf\xb0\x13\x76\x73\xf4\x63\x8a\x69\xc0\x9f\x8f\xbe\xc8\xea\xd6\x9f\x0e\x05\x77\x75\xb0\x83\xa1\xfa\x7c\x0c\xd5\x2b\x56\xf3\x06\xc6\xea\x35\xeb\x7b\xf5\x0a\x9f\xa3\x5a\xbd\x78\x7b\xee\x84\xad\x7f\xa2\x95\xf8\x8d\x16\x46\xde\x91\xd1\xad\x5e\x5a\x30\xc2\xc3\x08\x0f\x23\x3c\x8c\xf0\xa7\x66\x84\xef\x76\xaa\xb4\x1a\xe2\x57\xeb\x1b\xaf\x39\x49\x10\x13\xb5\x18\x13\xd5\x6d\xa0\x5a\xe2\xa2\xf6\x36\x4c\x7b\x23\x27\xdd\xba\x62\x39\x3d\xd9\x5b\x8f\xfc\x5e\xd7\x81\x63\xc9\x72\xa3\x9a\xb2\x89\x98\x1a\xc9\xd9\x5b\xd9\x2a\x51\xc2\xee\x5e\x34\x75\x6a\x31\x61\x52\xc9\x2b\x29\x22\x4e\x13\xd4\x6a\xb1\xf5\xd8\x31\x63\x71\xf7\x4b\xc3\x6a\x34\xf1\x6c\x26\xc2\x98\x17\x22\x79\xa9\x44\xda\xea\xc8\x8d\x93\x4b\xab\xa5\x52\xa7\xb3\x28\xe3\x01\xad\x9a\x58\x85\x5e\x20\xa8\x0e\x6d\xd2\x17\xdc\x2c\x2d\x73\x5d\xc9\xfa\x70\x71\xfd\xa6\x6b\x90\xfd\xc8\xd4\xec\x81\xae\x88\xb1\xa9\xe7\x4c\x70\xd9\x5a\xc7\x2d\x86\x99\xea\x7c\x47\x55\x6e\xd3\xfc\xd7\xe8\xfe\x43\x99\xfe\x9b\x40\xb3\x6e\xfd\xb2\x1c\x9c\xed\x6d\xfa\x03\xa1\x01\xa1\x01\xa1\x01\xa1\x01\xa1\xed\x0c\xa1\x75\x3c\x0b\x16\x30\xda\xfe\x8e\xc5\x4f\x22\xcd\x84\x16\x4a\xc2\x0f\x2c\x4d\x04\xcf\x85\xdf\x82\xee\x32\x95\xf2\x88\xa4\xa3\x3b\x95\xc4\xc1\x4b\xc3\x0e\xe6\x26\x5d\xe8\x0b\xd0\xd3\xee\x66\xfc\x8f\x31\xfb\x61\xf6\x33\x23\xba\xa4\x42\xea\xc5\x52\x9d\xa9\x82\xa9\x2c\x7d\xe0\xd2\xd9\xe5\xb2\x52\x5c\x4f\x79\xe2\x74\xe5\xfb\x0b\xf3\xf3\xfd\x05\x9b\xc6\x92\x27\xf1\xbf\xdd\x41\x32\x11\x8c\x87\x21\xcd\xce\x6b\x63\x74\x0f\x2b\x35\xcc\x14\x3f\xca\xab\x97\x8c\x7e\x3a\x66\x9f\x63\xda\x1c\x6b\x55\x57\xd9\x62\xdb\x68\xfb\x31\xa6\x22\xa3\x1e\x93\x8e\xa2\x8a\x87\x6d\x06\xd4\xb4\xe0\x93\x6b\xfb\xde\x4c\x7c\x8b\x8a\x19\x35\x5d\x2f\xd8\x07\xf5\xcc\x22\x9e\x4d\x78\xd4\x30\xa4\x7b\xa5\x46\x64\x53\x95\xcd\xf4\x98\xb4\xf6\xd7\xb7\xb9\x16\x2d\xef\x2e\x12\x7a\x9d\xc4\x9a\x9a\xbe\x8d\xb5\x34\x19\xc4\x61\xa5\x0a\x93\xac\x40\xc6\x09\x3f\xc6\x39\x05\x11\xd2\xaf\x4e\x1a\x18\xd7\x06\xd3\x9d\x23\x4e\xd5\xbe\xf2\x36\xe6\xe6\xc7\xc6\xcc\xc4\xe6\xd2\xd9\x54\xd7\xec\x46\xa6\x0d\x23\x76\x65\x27\x60\x73\x82\xe6\x3f\xb3\xd1\x2f\x3c\x78\x8c\x32\x55\xca\x50\x3f\x45\xb6\x5a\x7a\x68\xae\xe3\x8c\x08\x69\xe5\xe3\x66\x21\xae\x05\x13\x5f\xd2\xcf\x6c\xf4\x45\x65\xa2\x56\x2c\x0b\x78\x1e\xf0\x50\xb7\xde\xf6\x8f\x31\xe7\x53\x79\xb9\x51\x3d\x17\x0a\x9c\xfa\x32\xb6\x99\x90\xe9\xfc\x74\x3f\xa0\xa5\x00\xbc\xfb\x78\x78\x77\xb7\xd9\xb5\x8a\x79\xef\x4f\x99\x3f\x24\xfd\xee\xd6\x4f\x2b\x08\xf8\xfe\x0e\xfc\xa1\xb2\xf0\x6e\x5d\xb8\xc8\xc3\x5f\x7b\x9c\xb6\x02\x68\x44\xcb\x6e\x48\xf4\x7e\x14\xbc\x28\xbb\xa2\xbc\x53\x0c\xb7\x33\xa7\x77\x25\x59\x1d\x61\xe8\xdd\xf1\xc5\xee\xc2\x69\x03\x4e\x1b\xa7\xed\xb4\x01\x37\x07\xb8\x39\xc0\xcd\x01\x6e\x0e\x70\x73\x38\xb8\x9b\x03\xf8\x39\x90\x2a\x90\x2a\x90\x2a\x90\x2a\x90\x2a\x90\x2a\x90\xea\xd2\x43\x00\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03\xf7\x18\xae\xc2\x29\xb8\xc7\x10\xf7\x18\xd6\x07\xc6\xca\x4e\x26\x6f\x89\x0c\x99\x1e\x26\x96\x07\x2a\x15\x97\x2c\x2f\x03\x3a\xc0\x68\xdf\x17\x7c\x66\x36\xad\x34\x53\x24\xab\xb5\x05\x15\xa7\xbc\x78\x68\x8f\x29\xf6\x11\xbd\xcd\x9f\x57\xe4\x75\x40\xaa\x10\xb6\xef\x54\x21\x9b\xd3\x31\x9f\x2e\x64\xc7\x7c\x6c\x78\x59\x43\x3a\x6c\xa2\xbd\x04\x99\x22\xd0\xa9\x3e\x03\x06\x1b\xe8\x74\xa6\xa9\xa0\x36\x30\x1b\xb7\xa5\x83\x7a\xe5\xf0\x0c\x4a\xc0\x3c\x09\xb9\x6f\xf0\x59\x77\x7a\x6d\xc3\xa1\x52\xee\xf4\xd8\x88\x13\x14\xbe\x7b\x4c\xb4\xb3\x07\xe1\xfb\x0d\xeb\xf9\x62\x1b\xf3\xd0\x7f\xf6\x74\xbf\xcd\x36\x42\x5f\xcb\x9d\x36\x03\x12\xfa\x8e\xe4\xf2\x10\xc8\x75\xf5\x41\x1e\xac\x5c\x87\x70\xed\x33\x0a\xd7\x46\x5c\x1a\xe2\xd2\x10\x97\x86\xb8\x34\xa8\xa4\xcb\x56\xd1\x20\x23\x3b\x0e\xa3\xc8\x21\x30\x65\x5d\x60\xca\xf1\x28\x71\xde\xb8\xde\x7b\x38\x0a\xf9\x25\x34\x65\xb0\xcd\x15\x2e\x5d\xc8\xde\x63\x50\x6a\x82\x8b\xf8\x8b\x3c\xcb\x26\xfa\x2f\x1e\x14\x63\xc6\x3e\xeb\xff\xba\x7f\x9f\xf1\x98\xcc\x8c\x39\x0b\x92\x32\x2f\x44\x56\x1d\x47\xc6\x05\x95\x25\xf1\xa3\x60\x23\x5f\xeb\x91\x96\x3a\x9d\xa4\x34\x66\x77\x09\x97\xd2\x7a\x86\x90\x2c\xc3\x13\x23\x3e\xdd\xfc\xb4\xcd\xfe\x4e\x75\x3c\x90\x94\xe1\x3b\xcd\x0b\xe9\x13\xd7\x7d\xba\xa5\xec\xb3\xe9\x31\x7d\xb2\xa4\xb9\xeb\x1d\xeb\x7c\x55\xe6\x22\x23\xaf\xa9\x4a\xde\x7e\xd9\x71\x47\xe9\xca\x9c\x2e\xf2\x1f\xf6\xf1\x07\x43\xa0\x7f\x66\xc9\x29\xa2\x37\xe3\xe3\x3b\x42\xb6\x80\xf0\x84\x8a\xac\x95\xa5\x53\x65\xba\xd0\xf6\xa1\x80\x76\x78\x18\x1c\x9d\x87\x01\xf9\x31\x6d\x95\xbf\xfa\x8a\xde\xfd\xfb\xea\xdd\x7c\x26\xb2\x48\x74\x7a\x32\x2f\x32\x5e\x88\x28\x0e\xae\xba\xbf\xa3\xff\x7e\xb1\x4f\xd2\xb9\xd1\x45\x4c\x23\xc7\x57\x8a\xab\x33\x3e\x77\xaf\x16\xd9\xe8\xfb\x43\x35\x91\xef\xca\x2f\x62\x85\x4a\x74\xd7\xf4\x8d\x63\x30\x9c\x9f\xb8\xe1\xfc\x7c\x1c\x22\xe6\x42\x58\xdc\xe2\x32\x61\x56\xa9\xf1\x3a\xb7\xa1\xfb\x6f\x97\x6c\x54\xef\xc8\x6c\x68\x62\xab\x79\x42\x6f\x4a\x25\xaf\xcc\xdb\xf4\x04\x59\xee\x73\xf6\xf6\xd7\x5c\xc9\x3b\x13\xc1\xfe\x9b\xde\x12\xed\xdf\x3f\xdc\x46\x59\xfd\xe3\xbb\x21\x79\x6a\x74\x9f\x37\x5f\x54\x16\x10\xda\x88\x14\x0d\xbe\x62\xf7\x17\x53\xfd\x6f\xf7\x17\xec\xb6\xd1\x9b\x63\xf6\xb5\xb0\x1c\x82\x54\x27\xbb\x50\xaf\x78\x40\x03\x40\x31\xd0\x49\x1c\x58\xcb\x2a\x69\x5a\xea\xd9\x8e\xad\x89\x11\x4e\x85\x4a\x13\x31\x66\xe6\x9b\x74\xf5\x81\x9b\x53\x14\x96\xd0\x3a\x10\xfe\xf3\xdb\x74\xaf\xfe\x10\x14\x2e\xf3\x03\x14\xae\xa1\x29\x5c\xe9\x9c\xfb\xfb\xd1\xa8\x5c\x65\xef\x56\xbb\x34\xe1\xc1\xeb\xa5\x40\x5b\xce\xb9\xc9\x81\xf0\x8f\x85\x38\x78\xb6\xe2\xe0\x80\xa4\x2e\x08\x07\xfe\x17\xf8\xc7\x42\xc0\x31\x82\xc2\xd1\x88\x37\x6f\xd8\x6e\x3c\x4b\xaf\x73\x83\xa7\x6b\x0e\xa6\xbb\xc1\x9e\xe6\x3b\xee\xd8\xdb\x2f\x00\xb5\x08\x1e\xfb\x1e\xf6\x8c\x57\xee\x19\xa0\x50\xa0\x50\x9b\xb5\x19\x14\x0a\x14\xaa\x1f\x0a\xd5\xdf\x09\xba\x05\x8f\x6a\x39\x42\x8f\xd2\x1a\x01\x2a\x05\x33\xc4\xf9\x99\x21\x40\xa5\xfa\x9c\x37\xa0\x52\x30\x3c\x41\x01\x3b\x8c\x02\x06\x2a\x35\x47\xa5\xfa\xb4\xab\x6c\xc1\xa7\x4e\x45\x2e\x04\xa5\x82\x78\x78\xb6\xe2\xe1\x80\xa4\x30\x08\x0b\xfe\x17\x50\x2a\x08\x3c\x27\x47\xa9\xe8\x5a\xcc\xa5\x50\x6a\xa7\x18\xca\xde\x1e\x2e\xc3\xf8\x29\x0e\x4b\x9e\xd4\x2f\x66\xe5\x3e\x5f\xc0\x92\x7e\x18\xd7\xc2\xf9\x3f\xf8\x8b\x00\x46\x54\xe6\xa8\xca\x23\xd3\x48\x0c\xe2\xe5\x2b\x16\xcb\xbc\x10\xbc\x61\x52\x9d\x97\xbe\x9e\x17\x6c\x72\x2b\x6e\xe3\xfc\xa2\xb2\xdb\x24\xf1\xc2\xd9\x20\xd0\xd6\xd2\x17\xce\xeb\x4e\xd5\x15\x06\x46\xba\x12\xf8\xf3\x93\x90\xe7\x7c\x9b\x2a\x8d\xe1\xf9\x5c\xa9\x8a\xe4\x6d\x27\x9c\xbc\x6d\x3d\x14\x5b\x97\xb8\x6d\xa5\x65\xad\x07\xe0\x87\x74\x6d\x48\xd7\x86\x74\x6d\x48\xd7\x76\x6a\xe9\xda\xd6\xef\xbc\xad\xa9\xda\x76\xec\x5e\xb1\xb7\x04\x6d\xeb\x9b\xbf\x3c\x39\xdb\x90\xfb\x60\x93\x94\x6c\xeb\xfb\x60\x79\x3a\xb6\x1d\xf7\x01\x92\xb0\x21\x09\x1b\x92\xb0\x21\x09\x1b\x92\xb0\xed\x2c\x09\x5b\x87\xdd\x7f\x21\x01\xdb\xca\x9b\x43\xcf\xc8\xbb\xb2\x5b\x6b\x90\x44\xee\xc8\x92\xc8\xad\x9f\x44\xab\x12\xc8\xed\x78\x36\x1d\x34\x6d\xdc\xfa\x9e\x59\x91\x32\x6e\xd7\xbb\xc6\x50\x13\xc5\xad\xef\xb4\x16\x63\xfe\xd6\xe6\x2c\xfb\xd7\x9f\x5d\x09\xd2\x86\xd1\x4e\x00\x4b\x9b\x38\xf5\xfc\x6b\xce\x3c\x0f\xa4\x04\xa4\xc4\x80\x94\x80\x94\x80\x94\x80\x94\x80\x94\x80\x94\x80\x94\x80\x94\x80\x94\x9a\xdb\xed\x00\x71\x0a\x90\x12\x90\x12\x90\x12\x90\x12\x90\x12\x90\x12\x90\xd2\x31\x22\x25\xdc\x54\x02\x96\x06\x96\x06\x96\x06\x96\x06\x96\x36\x14\x96\xd6\x92\x93\x7a\x47\x48\xad\xce\xd1\xa4\x93\x00\xd4\x94\x3d\xc6\x72\x69\x80\x7b\x2f\x3c\xed\xb2\x92\xff\x49\xc7\xb1\xb2\xa2\x56\x21\x2a\xc5\x66\xd4\x50\x88\x6b\x65\xf7\x4c\xe3\x40\xe2\x40\xe2\x8e\x89\xc4\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x81\xc2\x1d\x1f\x85\x43\x32\x04\x20\x46\x20\x46\x20\x46\x20\x46\x20\x46\x20\xc6\x4d\x10\xe3\xfb\x89\x28\xf8\xcd\xf5\x56\xac\xf0\x20\xb7\xbb\xce\x8d\x76\x24\x8a\xa6\xdc\x6e\x06\x76\x05\xe0\x8b\x44\x51\xc7\x7b\xa6\x03\x6e\xef\xbe\x7e\x6f\x7b\x17\x17\xdb\x6e\x48\xd9\x6a\x1d\x49\x41\x8a\xa7\x84\xda\xcc\x54\xa9\xbd\xfc\xa6\x5e\x81\xf5\x8b\xec\x20\xb1\xaf\xc6\xf4\x93\x59\x41\xc3\xe9\x16\x6b\x18\xfd\x8a\xe5\xa3\xcb\x5b\x5c\x3f\x4b\xca\xc1\x35\xa8\xf3\xa3\x33\x98\x35\xdc\xbc\xd8\xd9\x8c\xe2\xb2\xdb\x9d\x4f\x7f\x25\xaf\x27\xe7\xc3\x0d\x5f\x9d\x6f\x0c\xe8\x39\xe8\x39\xe8\x39\xe8\x39\xe8\x39\xe8\x39\xe8\x39\xe8\xf9\xfa\xdd\x16\xf4\x1c\xf4\x1c\xf4\x1c\xf4\x1c\xf4\x1c\xf4\x1c\xf4\xfc\xec\xe8\x39\x38\x2b\x38\x2b\x38\x6b\xfb\x6c\x02\x67\x5d\xba\xce\xc0\x59\x37\xe7\xac\xaf\xb8\x15\xd5\x9c\xfe\xfd\xc2\x21\x53\x26\x0b\x54\xa2\x95\x0d\x3b\x6b\x37\x67\x42\xa6\x98\x45\x2a\xf4\xd1\x97\xbb\x59\x0c\x65\xc7\x04\xc5\x30\x59\x9f\x8f\xc9\xba\x5b\xd2\xdb\x75\x66\xeb\xd7\x66\xca\xbf\x5c\x3e\x19\xb7\xcb\x96\xbd\x13\x06\xff\x89\x96\xe3\x37\x5a\x18\x79\x2f\x09\xb1\x61\x8e\x87\x39\x1e\xe6\x78\x98\xe3\x4f\xcd\x1c\xdf\xed\x54\x69\x35\xc9\xef\x2d\xcb\x3d\x29\x8d\xd6\x10\x71\x49\x97\xd8\x07\x7a\x46\x99\x79\xd0\x68\x5b\x5d\x8e\x98\x08\x96\xea\xde\xca\xb5\xce\xce\x6e\x25\x8b\xa5\xd9\x59\x54\xc6\x4a\xe9\x37\xa7\x90\x99\x04\xfe\x2c\x8c\x33\x2d\xa9\x3d\x09\x3f\xe3\x49\x91\x93\x8c\x4b\xbb\xe4\xdd\xdc\xb0\x1d\xcc\xa6\x65\x46\xab\x2c\xcd\x54\xa0\xe5\x06\xa3\xeb\xd6\x4c\xa5\x63\xf6\x07\x7d\x91\x46\x8b\xe6\x8e\x56\x74\x6f\x93\xe4\x03\x59\x6f\x42\xbd\x4b\x97\x52\x0f\xbc\x56\x1e\xdc\x94\xb4\xc5\x2d\xe6\x30\xef\x30\x50\xa6\x2d\x87\x19\xa6\xbd\x31\x94\x0d\xd2\xff\xb7\x32\x84\xbd\xf5\xc8\xef\x75\x6d\x38\x96\x2c\x37\x4a\x2a\x9b\x88\xa9\x91\x9c\xbd\xbd\xad\x12\x25\xec\xee\x45\x53\xa7\x14\xe6\x70\x98\x68\x3d\x50\x5e\x49\x11\x71\x9a\xa0\x56\x9f\xd5\xaa\xb7\x3b\x41\x8d\xed\xdd\x2f\x0d\xab\xd6\xc4\xb3\x99\x08\x63\x5e\x88\xe4\xa5\x12\x69\xab\x23\x37\x4e\x2e\xad\xbe\x4a\x9d\xce\xa2\x8c\x07\xb4\x6a\x62\x15\x7a\x81\xa0\x3a\xb4\x49\x5f\x70\xb3\xb4\xcc\x75\x25\xeb\xc3\xc5\xf5\x9b\xae\x41\xf6\x23\x53\xb3\x07\xba\x22\xc6\xa6\x9e\x33\xc1\x65\x6b\x1d\xb7\x18\x66\xaa\xf3\x1d\x55\xb9\xcd\x06\xb0\xc6\x0a\x30\x94\xe9\xbf\x09\x3e\xeb\xd6\x2f\xcb\x11\xda\xde\xa6\x3f\x60\x1a\x60\x1a\x60\x1a\x60\x1a\x60\xda\xce\x60\x5a\xc7\xb3\x60\x01\xa8\xed\xef\x58\xfc\x54\xbb\xea\x2e\x4d\x04\xcf\x85\xdf\x82\xee\x32\x95\xf2\x88\xa4\xa3\x3b\x95\xc4\xc1\x4b\xc3\x0e\xe6\x26\x5d\x75\x57\x9e\x9e\x76\x37\xe3\x7f\x8c\xd9\x0f\xb3\x9f\x19\xd1\x25\x15\x52\x2f\x96\xea\x4c\x15\x4c\x65\xe9\x03\x97\xce\x2e\x97\x95\xe2\x7a\xca\x13\xa7\x2b\xdf\x5f\x98\x9f\xef\x2f\xd8\x34\x96\x3c\x89\xff\xed\x0e\x92\x89\x60\x3c\x0c\x69\x76\x5e\x1b\xf3\x7b\x58\xa9\x61\xa6\xf8\x51\x5e\xbd\x64\xf4\xd3\x31\xfb\x1c\xd3\xe6\x58\xab\xba\xca\x16\xdb\x46\xdb\x8f\x31\x15\x19\xf5\x98\x74\x14\x55\x3c\x6c\x33\xa0\xa6\x05\x9f\x5c\xdb\xf7\x66\xe2\x5b\x54\xcc\xa8\xe9\x7a\xc1\x3e\xa8\x67\x16\xf1\x6c\xc2\xa3\x86\x35\xdd\x2b\x35\x22\x9b\xaa\x6c\xa6\xc7\xa4\xb5\xbf\xbe\xcd\xb5\x68\x79\x77\x91\xd0\xeb\x24\xd6\xd4\xf4\x6d\xac\xa5\xc9\x20\x0e\x2b\x55\x98\x64\x05\x32\x4e\xf8\x31\xd6\x87\xb5\x3d\x49\x9d\x34\x30\xae\x0d\xa6\x3b\x47\x9c\xaa\x7d\xe5\x6d\xcc\xcd\x8f\x8d\xd9\x6d\x10\x88\xb4\xa0\xb3\xa9\xae\xd9\x8d\x4c\x1b\x46\xec\xca\x4e\xc0\xe6\x04\xcd\x7f\x66\xa3\x5f\x78\xf0\x18\x65\xaa\x94\xa1\x7e\x8a\x6c\xb5\xf4\xd0\x5c\xc7\x19\x11\xd2\xca\xc7\xcd\x42\x5c\x0b\x26\xbe\xa4\x9f\xd9\xe8\x8b\xca\x44\xad\x58\x16\xf0\x3c\xe0\xa1\x6e\xbd\xed\x1f\x63\xce\xa7\xf2\x72\xa3\x7a\x2e\x14\x38\xf5\x65\x6c\x33\x21\xd3\xf9\xe9\x7e\x40\x4b\x01\xc8\xf7\xf1\x90\xef\x6e\xb3\x6b\x15\xfd\xde\x9f\x32\x7f\x48\x0e\xde\xad\x9f\x56\xb0\xf0\xfd\x1d\xf8\x43\xa5\xe2\xdd\xba\x70\x91\x8c\xbf\xf6\x38\x6d\xa5\xd0\x88\xaa\xdd\x90\xe8\xfd\x28\x78\x51\x76\x45\x79\x27\x1b\x82\x67\x8e\xf0\x4a\xbc\x3a\xd6\x70\xbc\x23\x8d\xf1\x85\x0f\x07\x7c\x38\x4e\xdb\x87\x03\x5e\x0f\xf0\x7a\x80\xd7\x03\xbc\x1e\xe0\xf5\x70\x70\xaf\x07\xe0\x74\x10\x56\x10\x56\x10\x56\x10\x56\x10\x56\x10\x56\x10\xd6\xa5\x87\x00\xa0\x07\xa0\x07\xa0\x07\xa0\x07\xa0\x07\xee\x3b\x5c\x45\x57\x70\xdf\x21\xee\x3b\x7c\xb3\x7c\x88\x70\xc9\xfe\xc0\x2f\x7f\xb0\x7f\xfd\x59\x0d\xb2\xca\x7b\xc6\x68\x46\x8d\x61\x7c\x0b\x62\x66\x5e\xdd\x13\x33\xdb\x2e\xd4\x74\xc5\x14\xdb\xdb\xc6\xda\x4b\x30\x2a\x02\xa2\xea\xd3\x60\xb0\x01\x51\x64\xda\xf8\x8d\x4b\x1e\x89\xcc\x18\xe9\xcc\xe6\x9a\xe7\x2a\x88\x49\xeb\xf4\xe6\x30\x4e\x56\x4d\x95\x31\x21\x0b\x2d\x15\x3b\x35\x7c\xc6\x1f\x75\x2f\x16\x0f\x22\x17\x4e\xb4\xac\x87\xfd\xb8\xf0\x20\x12\xad\xc9\xf4\xa5\x32\x76\xf3\xfe\x27\xfd\x6c\xc6\x03\x62\x5d\x89\x92\x91\x11\x24\xc9\x3c\x15\xe8\x49\x19\x4b\xb3\xa3\x91\xf9\xa7\x7a\x96\xec\xff\x96\xc4\xb1\xc9\x0b\xa3\x13\xf7\xc3\xf5\x75\xa4\x12\x2e\xa3\xb1\xca\xa2\xeb\xf4\x31\xba\x2e\x65\x1c\xa8\x50\x5c\xff\xed\x6b\x7e\xa7\x4b\xd9\xda\x9e\x6c\x3b\xa7\xcf\xe1\x19\x94\xe4\x79\x3a\x02\x61\x57\x61\xf0\x7d\x07\x61\xf0\xa3\x31\x96\x0d\xbd\x21\xef\xd7\x36\xc4\x38\x02\x0f\xbd\x25\xa7\x2a\x9f\x93\xf8\x73\x5c\xf2\xf9\x1b\xb6\x8b\x3b\x72\xcc\x43\xff\xd9\xd3\x55\x39\xdb\x08\x87\xcb\xae\xc7\x19\x90\x70\x78\x24\xf7\x90\x40\xf4\xab\x0f\xf2\x60\x45\x3f\x44\x7e\x9f\x51\xe4\x37\x42\xdc\x10\xe2\x86\x10\x37\x84\xb8\x41\x6b\x5d\xb6\x8a\x06\x19\x24\x72\x18\x0d\x0f\x31\x2e\xee\xc1\x95\x31\x2e\x47\xa6\xd8\x79\x9b\x7c\xef\x91\x2d\xe4\xdd\xd0\x94\xc6\x36\xd7\xbf\x74\x21\x87\x09\x67\xa9\xc9\x31\xe2\x2f\x72\x52\x9b\xe8\xbf\x78\x50\x8c\x19\xfb\xac\xff\xeb\xfe\x7d\xc6\x63\x32\x4c\xe6\x2c\x48\xca\xbc\x10\x59\x75\x3a\x19\x6f\x56\x96\xc4\x8f\x82\x8d\x7c\xad\x47\x5a\x08\x75\x82\xd3\x98\xdd\x25\x5c\x4a\xeb\x64\x42\xa2\x0d\x4f\x8c\x34\x75\xf3\xd3\x36\xdb\x3d\xd5\xf1\x40\x42\x87\xef\x34\x2f\xb3\x4f\x5c\xf7\xe9\x96\xb2\xcf\xa6\xc7\xf4\x41\x93\xe6\xae\x77\xac\x1f\x57\x99\x8b\x8c\x1c\xb0\x2a\xf1\xfb\x65\xc7\x1d\xa5\x2b\x73\xba\xde\x03\xc3\x3e\x0d\x61\x30\x6c\x79\x79\xc9\xc9\xa2\xf7\xe6\x23\x3d\x56\xb6\xe0\xf9\xc4\x9a\xac\x0d\xa6\x53\x8d\xba\x80\xfb\xa1\x30\x7b\x38\x2b\x1c\x9d\xb3\x02\x79\x48\x6d\x95\x55\xfb\x8a\xde\xfd\xfb\xea\xcd\x7d\x26\xb2\x48\x74\x7a\x32\x2f\x32\x5e\x88\x28\x0e\xae\xba\xbf\xa3\xff\x7e\xb1\x4f\xd2\x31\xd2\x45\x74\x23\x97\x5a\x8a\xd8\x33\xde\x7c\xaf\x16\xe3\xe8\xfb\x83\xb6\xa2\xef\xca\xc5\x62\x85\xd6\x74\xd7\x74\xbd\x63\xb0\xad\x9f\xb8\x6d\xfd\x7c\xdc\x2a\xe6\x22\x64\xdc\xe2\x32\x51\x5c\xa9\x71\x6a\xb7\x37\x03\xbc\x5d\xb2\x5b\xbd\x23\xcb\xa2\x09\xdd\xe6\x09\xbd\x29\x95\xbc\x32\x6f\xd3\x13\x64\xdc\xcf\xd9\xdb\x5f\x73\x25\xef\x4c\x80\xfc\x6f\x7a\x5f\xb4\x7f\xff\x70\xbb\x65\xf5\x8f\xef\x86\xe4\xef\xd1\x7d\xde\x7c\x51\x59\x40\xf4\x23\x52\x34\xf8\x8a\xdd\x5f\x4c\xf5\xbf\xdd\x5f\xb0\xdb\x46\x6f\x8e\xd9\xd7\xc2\xa2\x0a\x52\xa7\xec\x42\xbd\xe2\x01\x0d\x00\x85\x58\x27\x71\x60\x8d\xaf\xa4\x7d\xa9\x67\x3b\xb6\x26\x04\x39\x15\x2a\x4d\xc4\x98\x99\x6f\xd2\xcd\x0a\x6e\x4e\x51\xd4\x43\xeb\x40\xf8\xcf\x6f\xd3\xbd\xfa\x43\x50\xc2\xcc\x0f\x50\xc2\x5a\xca\x1c\x88\x12\x96\xce\xf9\xd9\x1f\x97\x1a\x56\xf6\x6e\xdd\x4b\x13\x1e\xbc\x5e\x32\xb4\xe5\x9c\xa5\x6c\x08\xf7\x5b\xc8\x89\x6d\xc3\x74\x3e\x72\xe2\x80\xc4\x31\x48\x0d\xfe\x17\xb8\xdf\x42\xfc\x59\x14\x7f\xca\x63\xb3\x41\xbf\x61\x3b\xf4\x59\xbd\xce\x0d\xf3\xae\xb9\xae\xee\x86\xa0\x9a\xef\xb8\xf3\xf0\x00\x2c\xd5\xc2\x7d\xec\x8a\xd8\x4c\xaa\xd1\x02\xd0\x02\xd0\x02\xd0\x02\xd0\x6a\x7b\xf0\x18\x80\x56\x7f\xa7\xea\xb6\x68\xab\xe5\x58\x3d\x4a\x23\x06\x00\x17\x0c\x17\xe7\x67\xb8\x00\xe0\xea\x73\xde\x00\x70\xc1\x54\x05\xa5\xec\xd0\x4a\x19\x00\x57\x1b\xe0\xea\xd3\xfe\xb2\x2d\xea\x3a\x15\x59\x11\xc0\x0b\x72\x63\xdb\x30\x9d\x8f\xdc\x38\x20\xf1\x0c\x52\x84\xff\x05\xc0\x0b\xe2\xd0\xf9\x00\x2f\xba\xf2\x73\x29\xdf\xda\x29\xd1\xb2\x37\xa3\xcb\x30\x7e\x8a\xc3\x92\x27\xf5\x4b\x67\xb9\xcf\x85\xb0\xa4\x47\xc6\xb5\xeb\x06\x3e\xf8\x8b\x0a\x46\x54\xe6\xa8\xca\x91\xd3\x48\x7a\xe2\x45\x30\x16\xcb\xbc\x10\xbc\x61\x89\x9d\x17\xd0\x9e\xdb\x4d\x79\x2b\x6e\x1a\xfd\xa2\xb2\xdb\x24\xf1\xf2\xdb\x20\x28\xd9\xd2\x17\xce\xeb\xd2\xd8\x15\x76\x49\xba\xf3\xf8\xf3\x93\x90\x67\x7f\x53\x2c\x0d\xe4\x99\x5d\x17\x8b\x3c\x75\x27\x9c\xa7\x6e\x3d\x5a\x5b\x97\xa3\x6e\xa5\x69\xae\x07\x6c\x88\xcc\x74\xc8\x4c\x87\xcc\x74\xc8\x4c\x77\x6a\x99\xe9\xd6\xef\xbc\xad\x59\xe9\x76\xec\xa4\xb1\xb7\x5c\x74\xeb\x9b\xbf\x3c\x0f\xdd\x90\xfb\x60\x93\xec\x73\xeb\xfb\x60\x79\xe6\xb9\x1d\xf7\x01\xf2\xcd\x21\xdf\x1c\xf2\xcd\x21\xdf\x1c\xf2\xcd\xed\x2c\xdf\x5c\x87\xdd\x7f\x21\xd7\xdc\xca\x8b\x4e\xcf\xc8\x47\xb3\x5b\x6b\x90\x2f\xef\xc8\xf2\xe5\xad\x9f\x44\xab\x72\xe5\xed\x78\x36\x1d\x34\x43\xde\xfa\x9e\x59\x91\x1d\x6f\xd7\xbb\xc6\x50\x73\xe2\xad\xef\xb4\x16\xb3\xfe\xd6\xe6\x2c\xfb\xd7\x9f\x1b\x51\xa5\x0d\x83\xa9\x00\x9b\x36\xf6\x05\xfa\xd7\x9c\xb5\x1e\x98\x09\x98\x89\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\xed\xd4\x60\x8c\x3b\x50\xc0\xd7\xc0\xd7\xc0\xd7\xc0\xd7\xc0\xd7\x06\xc5\xd7\x5a\x12\x6c\xef\x08\xb3\xd5\xd9\x9a\x74\x62\x80\x9a\xb2\xc7\x58\x2e\x8d\x95\xef\x85\xb1\x5d\x56\x4a\x00\x29\x3a\x56\x60\xd4\x7a\x44\xa5\xdd\x8c\x1a\x5a\x71\xad\xec\x5d\x10\x3a\xd0\x39\xd0\xb9\xa3\xa3\x73\x20\x73\x20\x73\x20\x73\x0c\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\x0e\x64\xee\x38\xc9\x1c\x52\x2f\x00\x3b\x02\x3b\x02\x3b\x02\x3b\x02\x3b\x02\x3b\x6e\x8c\x1d\xdf\x5f\x6f\x85\x0e\x0f\x72\x5b\xec\xdc\x68\x47\xa2\x68\xca\xed\x66\x60\x57\xf0\xbe\x48\x14\x0b\xb4\xef\xfd\xed\xdd\xd7\xef\x6d\xef\xe2\xa2\xdc\x0d\x79\x5b\xad\x23\x29\x84\xf1\xe4\xa0\xdb\xfb\xda\xcb\x6f\xea\x15\x58\xbf\xc8\x0e\x12\x1e\x6b\x4c\x3f\x99\x15\x34\x9c\x6e\xb1\x06\xd9\xaf\x58\x3e\xba\xbc\xc5\xf5\xb3\xa4\x1c\x5c\x9c\x3a\x3f\x3a\x83\x59\xc3\x2d\x77\x44\xbf\x5f\x76\x47\xf4\xe9\xaf\xe4\xf5\xf8\x7c\xe0\x71\xad\xef\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x37\xd9\x6d\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\x41\xcf\xcf\x8e\x9e\x83\xb3\x82\xb3\x82\xb3\xb6\xcf\x26\x70\xd6\xa5\xeb\x0c\x9c\x75\x73\xce\xfa\x8a\x8b\x53\xcd\xe9\xdf\x2f\x1c\x32\x65\xb2\x40\x25\x5a\xd9\xb0\xb3\x76\x73\x26\x64\x8a\x59\xa4\x42\x1f\x7d\xb9\x9b\x45\x53\x76\xcc\x7a\x0c\x93\xf5\xf9\x98\xac\xbb\x25\xd1\x5d\x67\xb6\x7e\x6d\x4a\xfe\xcb\xe5\x93\x71\xbb\x14\xdc\x3b\x61\xf0\x9f\x68\x39\x7e\xa3\x85\x91\xf7\x92\x60\x1b\xe6\x78\x98\xe3\x61\x8e\x87\x39\xfe\xd4\xcc\xf1\xdd\x4e\x95\x56\x93\xfc\xde\xb2\xe6\x93\xd2\x68\x0d\x11\x97\x74\xcf\x7d\xa0\x67\x94\x99\x07\x8d\xb6\xd5\xe5\x88\x89\x60\xa9\xee\xad\x5c\xeb\xec\xec\x56\xb2\x58\x9a\x9d\x45\x65\xac\x94\x7e\x73\x0a\x59\x98\xbd\x7c\x2f\x25\x0b\xe3\x4c\x4b\x6a\x4f\xc2\xcf\x78\x52\xe4\x24\xe3\xd2\x2e\x79\x37\x37\x6c\x07\xb3\x69\x99\xd1\x2a\x4b\x33\x15\x68\xb9\xc1\xe8\xba\x35\x53\xe9\x98\xfd\x41\x5f\xa4\xd1\xa2\xb9\xa3\x15\xdd\xdb\x24\xf9\x40\xd6\x9b\x50\xef\xd2\xa5\xd4\x03\xaf\x95\x07\x37\x25\x6d\x71\x8b\xe9\xd0\x3b\x0c\x94\x69\xcb\x61\x86\x69\x6f\x0c\xa5\x5b\x57\x2c\xe7\x28\x7b\xeb\x91\xdf\xeb\xda\x70\x2c\x59\x6e\x94\x54\x36\x11\x53\x23\x39\x7b\x7b\x5b\x25\x4a\xd8\xdd\x8b\xa6\x4e\x29\xcc\xe1\x30\xd1\x7a\xa0\xbc\x92\x22\xe2\x34\x41\xad\x3e\xab\x55\x6f\x77\x82\x1a\xdb\xbb\x5f\x1a\x56\xad\x89\x67\x33\x11\xc6\xbc\x10\xc9\x4b\x25\xd2\x56\x47\x6e\x9c\x5c\x5a\x7d\x95\x3a\x9d\x45\x19\x0f\x68\xd5\xc4\x2a\xf4\x02\x41\x75\x68\x93\xbe\xe0\x66\x69\x99\xeb\x4a\xd6\x87\x8b\xeb\x37\x5d\x83\xec\x47\xa6\x66\x0f\x74\x45\x8c\x4d\x3d\x67\x82\xcb\xd6\x3a\x6e\x31\xcc\x54\xe7\x3b\xaa\x72\x9b\x0d\x60\x8d\x15\x60\x28\xd3\x7f\x13\x7c\xd6\xad\x5f\x96\x23\xb4\xbd\x4d\x7f\xc0\x34\xc0\x34\xc0\x34\xc0\x34\xc0\xb4\x9d\xc1\xb4\x8e\x67\xc1\x02\x50\xdb\xdf\xb1\xf8\xa9\x76\xf3\x5d\x9a\x08\x9e\x0b\xbf\x05\xdd\x65\x2a\xe5\x11\x49\x47\x77\x2a\x89\x83\x97\x86\x1d\xcc\x4d\xba\xea\xea\x3c\x3d\xed\x6e\xc6\xff\x18\xb3\x1f\x66\x3f\x33\xa2\x4b\x2a\xa4\x5e\x2c\xd5\x99\x2a\x98\xca\xd2\x07\x2e\x9d\x5d\x2e\x2b\xc5\xf5\x94\x27\x4e\x57\xbe\xbf\x30\x3f\xdf\x5f\xb0\x69\x2c\x79\x12\xff\xdb\x1d\x24\x13\xc1\x78\x18\xd2\xec\xbc\x36\xe6\xf7\xb0\x52\xc3\x4c\xf1\xa3\xbc\x7a\xc9\xe8\xa7\x63\xf6\x39\xa6\xcd\xb1\x56\x75\x95\x2d\xb6\x8d\xb6\x1f\x63\x2a\x32\xea\x31\xe9\x28\xaa\x78\xd8\x66\x40\x4d\x0b\x3e\xb9\xb6\xef\xcd\xc4\xb7\xa8\x98\x51\xd3\xf5\x82\x7d\x50\xcf\x2c\xe2\xd9\x84\x47\x0d\x6b\xba\x57\x6a\x44\x36\x55\xd9\x4c\x8f\x49\x6b\x7f\x7d\x9b\x6b\xd1\xf2\xee\x22\xa1\xd7\x49\xac\xa9\xe9\xdb\x58\x4b\x93\x41\x1c\x56\xaa\x30\xc9\x0a\x64\x9c\xf0\x63\xac\x0f\x6b\x7b\x92\x3a\x69\x60\x5c\x1b\x4c\x77\x8e\x38\x55\xfb\xca\xdb\x98\x9b\x1f\x1b\xb3\xdb\x20\x10\x69\x41\x67\x53\x5d\xb3\x1b\x99\x36\x8c\xd8\x95\x9d\x80\xcd\x09\x9a\xff\xcc\x46\xbf\xf0\xe0\x31\xca\x54\x29\x43\xfd\x14\xd9\x6a\xe9\xa1\xb9\x8e\x33\x22\xa4\x95\x8f\x9b\x85\xb8\x16\x4c\x7c\x49\x3f\xb3\xd1\x17\x95\x89\x5a\xb1\x2c\xe0\x79\xc0\x43\xdd\x7a\xdb\x3f\xc6\x9c\x4f\xe5\xe5\x46\xf5\x5c\x28\x70\xea\xcb\xd8\x66\x42\xa6\xf3\xd3\xfd\x80\x96\x02\x90\xef\xe3\x21\xdf\xdd\x66\xd7\x2a\xfa\xbd\x3f\x65\xfe\x90\x1c\xbc\x5b\x3f\xad\x60\xe1\xfb\x3b\xf0\x87\x4a\xc5\xbb\x75\xe1\x22\x19\x7f\xed\x71\xda\x4a\xa1\x11\x55\xbb\x21\xd1\xfb\x51\xf0\xa2\xec\x8a\xf2\x4e\x36\x04\xcf\x1c\xe1\x95\x78\x75\xac\xe1\x78\x47\x1a\xe3\x0b\x1f\x0e\xf8\x70\x9c\xb6\x0f\x07\xbc\x1e\xe0\xf5\x00\xaf\x07\x78\x3d\xc0\xeb\xe1\xe0\x5e\x0f\xc0\xe9\x20\xac\x20\xac\x20\xac\x20\xac\x20\xac\x20\xac\x20\xac\x4b\x0f\x01\x40\x0f\x40\x0f\x40\x0f\x40\x0f\x40\x0f\xdc\x77\xb8\x8a\xae\xe0\xbe\x43\xdc\x77\xf8\x66\xf9\x10\xe1\x92\xfd\x81\x5f\xfe\x60\xff\xfa\xb3\x1a\x64\x95\xf7\x8c\xd1\x8c\x1a\xc3\xf8\x16\xc4\xcc\xbc\xba\x27\x66\xb6\x5d\xa8\xe9\x8a\x29\xb6\xb7\x8d\xb5\x97\x60\x54\x04\x44\xd5\xa7\xc1\x60\x03\xa2\xc8\xb4\xf1\x1b\x97\x3c\x12\x99\x31\xd2\x99\xcd\x35\xcf\x55\x10\x93\xd6\xe9\xcd\x61\x9c\xac\x9a\x2a\x63\x42\x16\x5a\x2a\x76\x6a\xf8\x8c\x3f\xea\x5e\x2c\x1e\x44\x2e\x9c\x68\x59\x0f\xfb\x71\xe1\x41\x24\x5a\x93\xe9\x4b\x65\xec\xe6\xfd\x4f\xfa\xd9\x8c\x07\xc4\xba\x12\x25\x23\x23\x48\x92\x79\x2a\xd0\x93\x32\x96\x66\x47\x23\xf3\x4f\xf5\x2c\xd9\xff\x2d\x89\x63\x93\x17\x46\x27\xee\x87\xeb\xeb\x48\x25\x5c\x46\x63\x95\x45\xd7\xe9\x63\x74\x5d\xca\x38\x50\xa1\xb8\xfe\xdb\xd7\xfc\x4e\x97\xb2\xb5\x3d\xd9\x76\x4e\x9f\xc3\x33\x28\xc9\xf3\x74\x04\xc2\xae\xc2\xe0\xfb\x0e\xc2\xe0\x47\x63\x2c\x1b\x7a\x43\xde\xaf\x6d\x88\x71\x04\x1e\x7a\x4b\x4e\x55\x3e\x27\xf1\xe7\xb8\xe4\xf3\x37\x6c\x17\x77\xe4\x98\x87\xfe\xb3\xa7\xab\x72\xb6\x11\x0e\x97\x5d\x8f\x33\x20\xe1\xf0\x48\xee\x21\x81\xe8\x57\x1f\xe4\xc1\x8a\x7e\x88\xfc\x3e\xa3\xc8\x6f\x84\xb8\x21\xc4\x0d\x21\x6e\x08\x71\x83\xd6\xba\x6c\x15\x0d\x32\x48\xe4\x30\x1a\x1e\x62\x5c\xdc\x83\x2b\x63\x5c\x8e\x4c\xb1\xf3\x36\xf9\xde\x23\x5b\xc8\xbb\xa1\x29\x8d\x6d\xae\x7f\xe9\x42\x0e\x13\xce\x52\x93\x63\xc4\x5f\xe4\xa4\x36\xd1\x7f\xf1\xa0\x18\x33\xf6\x59\xff\xd7\xfd\xfb\x8c\xc7\x64\x98\xcc\x59\x90\x94\x79\x21\xb2\xea\x74\x32\xde\xac\x2c\x89\x1f\x05\x1b\xf9\x5a\x8f\xb4\x10\xea\x04\xa7\x31\xbb\x4b\xb8\x94\xd6\xc9\x84\x44\x1b\x9e\x18\x69\xea\xe6\xa7\x6d\xb6\x7b\xaa\xe3\x81\x84\x0e\xdf\x69\x5e\x66\x9f\xb8\xee\xd3\x2d\x65\x9f\x4d\x8f\xe9\x83\x26\xcd\x5d\xef\x58\x3f\xae\x32\x17\x19\x39\x60\x55\xe2\xf7\xcb\x8e\x3b\x4a\x57\xe6\x74\xbd\x07\x86\x7d\x1a\xc2\x60\xd8\xf2\xf2\x92\x93\x45\xef\xcd\x47\x7a\xac\x6c\xc1\xf3\x89\x35\x59\x1b\x4c\xa7\x1a\x75\x01\xf7\x43\x61\xf6\x70\x56\x38\x3a\x67\x05\xf2\x90\xda\x2a\xab\xf6\x15\xbd\xfb\xf7\xd5\x9b\xfb\x4c\x64\x91\xe8\xf4\x64\x5e\x64\xbc\x10\x51\x1c\x5c\x75\x7f\x47\xff\xfd\x62\x9f\xa4\x63\xa4\x8b\xe8\x46\x2e\xb5\x14\xb1\x67\xbc\xf9\x5e\x2d\xc6\xd1\xf7\x07\x6d\x45\xdf\x95\x8b\xc5\x0a\xad\xe9\xae\xe9\x7a\xc7\x60\x5b\x3f\x71\xdb\xfa\xf9\xb8\x55\xcc\x45\xc8\xb8\xc5\x65\xa2\xb8\x52\xe3\xd4\x6e\x6f\x06\x78\xbb\x64\xb7\x7a\x47\x96\x45\x13\xba\xcd\x13\x7a\x53\x2a\x79\x65\xde\xa6\x27\xc8\xb8\x9f\xb3\xb7\xbf\xe6\x4a\xde\x99\x00\xf9\xdf\xf4\xbe\x68\xff\xfe\xe1\x76\xcb\xea\x1f\xdf\x0d\xc9\xdf\xa3\xfb\xbc\xf9\xa2\xb2\x80\xe8\x47\xa4\x68\xf0\x15\xbb\xbf\x98\xea\x7f\xbb\xbf\x60\xb7\x8d\xde\x1c\xb3\xaf\x85\x45\x15\xa4\x4e\xd9\x85\x7a\xc5\x03\x1a\x00\x0a\xb1\x4e\xe2\xc0\x1a\x5f\x49\xfb\x52\xcf\x76\x6c\x4d\x08\x72\x2a\x54\x9a\x88\x31\x33\xdf\xa4\x9b\x15\xdc\x9c\xa2\xa8\x87\xd6\x81\xf0\x9f\xdf\xa6\x7b\xf5\x87\xa0\x84\x99\x1f\xa0\x84\xb5\x94\x39\x10\x25\x2c\x9d\xf3\xb3\x3f\x2e\x35\xac\xec\xdd\xba\x97\x26\x3c\x78\xbd\x64\x68\xcb\x39\x4b\xd9\x10\xee\xb7\x90\x13\xdb\x86\xe9\x7c\xe4\xc4\x01\x89\x63\x90\x1a\xfc\x2f\x70\xbf\x85\xf8\xb3\x28\xfe\x94\xc7\x66\x83\x7e\xc3\x76\xe8\xb3\x7a\x9d\x1b\xe6\x5d\x73\x5d\xdd\x0d\x41\x35\xdf\x71\xe7\xe1\x01\x58\xaa\x85\xfb\xd8\x15\xb1\x99\x54\xa3\x05\xa0\x05\xa0\x05\xa0\x05\xa0\xd5\xf6\xe0\x31\x00\xad\xfe\x4e\xd5\x6d\xd1\x56\xcb\xb1\x7a\x94\x46\x0c\x00\x2e\x18\x2e\xce\xcf\x70\x01\xc0\xd5\xe7\xbc\x01\xe0\x82\xa9\x0a\x4a\xd9\xa1\x95\x32\x00\xae\x36\xc0\xd5\xa7\xfd\x65\x5b\xd4\x75\x2a\xb2\x22\x80\x17\xe4\xc6\xb6\x61\x3a\x1f\xb9\x71\x40\xe2\x19\xa4\x08\xff\x0b\x80\x17\xc4\xa1\xf3\x01\x5e\x74\xe5\xe7\x52\xbe\xb5\x53\xa2\x65\x6f\x46\x97\x61\xfc\x14\x87\x25\x4f\xea\x97\xce\x72\x9f\x0b\x61\x49\x8f\x8c\x6b\xd7\x0d\x7c\xf0\x17\x15\x8c\xa8\xcc\x51\x95\x23\xa7\x91\xf4\xc4\x8b\x60\x2c\x96\x79\x21\x78\xc3\x12\x3b\x2f\xa0\x3d\xb7\x9b\xf2\x56\xdc\x34\xfa\x45\x65\xb7\x49\xe2\xe5\xb7\x41\x50\xb2\xa5\x2f\x9c\xd7\xa5\xb1\x2b\xec\x92\x74\xe7\xf1\xe7\x27\x21\xcf\xfe\xa6\x58\x1a\xc8\x33\xbb\x2e\x16\x79\xea\x4e\x38\x4f\xdd\x7a\xb4\xb6\x2e\x47\xdd\x4a\xd3\x5c\x0f\xd8\x10\x99\xe9\x90\x99\x0e\x99\xe9\x90\x99\xee\xd4\x32\xd3\xad\xdf\x79\x5b\xb3\xd2\xed\xd8\x49\x63\x6f\xb9\xe8\xd6\x37\x7f\x79\x1e\xba\x21\xf7\xc1\x26\xd9\xe7\xd6\xf7\xc1\xf2\xcc\x73\x3b\xee\x03\xe4\x9b\x43\xbe\x39\xe4\x9b\x43\xbe\x39\xe4\x9b\xdb\x59\xbe\xb9\x0e\xbb\xff\x42\xae\xb9\x95\x17\x9d\x9e\x91\x8f\x66\xb7\xd6\x20\x5f\xde\x91\xe5\xcb\x5b\x3f\x89\x56\xe5\xca\xdb\xf1\x6c\x3a\x68\x86\xbc\xf5\x3d\xb3\x22\x3b\xde\xae\x77\x8d\xa1\xe6\xc4\x5b\xdf\x69\x2d\x66\xfd\xad\xcd\x59\xf6\xaf\x3f\x37\xa2\x4a\x1b\x06\x53\x01\x36\x6d\xec\x0b\xf4\xaf\x39\x6b\x3d\x30\x13\x30\x13\x03\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\x02\x66\xda\xa9\xc1\x18\x77\xa0\x80\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x0d\x8a\xaf\xb5\x24\xd8\xde\x11\x66\xab\xb3\x35\xe9\xc4\x00\x35\x65\x8f\xb1\x5c\x1a\x2b\xdf\x0b\x63\xbb\xac\x94\x00\x52\x74\xac\xc0\xa8\xf5\x88\x4a\xbb\x19\x35\xb4\xe2\x5a\xd9\xbb\x20\x74\xa0\x73\xa0\x73\x47\x47\xe7\x40\xe6\x40\xe6\x40\xe6\x18\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\x1c\xc8\xdc\x71\x92\x39\xa4\x5e\x00\x76\x04\x76\x04\x76\x04\x76\x04\x76\x04\x76\x5c\x83\x1d\x27\x84\x18\xb7\x82\x85\x07\xb9\x1f\x76\x6e\x7c\x23\x51\xb0\x58\x4e\x55\x36\xf3\xf3\x99\x33\x03\x27\x96\x43\xbe\x48\x14\xbf\x10\xe7\xbb\xfb\xfa\xcf\xf9\x47\x71\x19\xee\x86\x4c\xcd\x77\xe2\x91\x13\xb5\xc9\x1c\xda\x7c\x53\xff\x64\xdb\x9a\x79\xba\x39\xee\x65\xd3\x50\x70\xcd\x0e\xd8\x61\xcd\xfc\x71\x73\x7b\xf7\xf5\x7b\xdb\x0b\x58\x39\x9b\xaf\x1c\xd7\x91\x14\xe0\x7b\x0a\x0b\xe8\xff\x3c\xdd\x6c\xb8\x86\xfe\x7f\x6a\xb2\xdb\x90\x70\x63\xee\xcc\xac\x70\xed\xf4\x69\xe7\xa6\xf2\xab\x9a\xac\x98\xf5\xfa\x5d\x3b\xed\x7f\x55\x13\xdc\xfc\x3b\xdf\xd5\x83\x59\x66\x63\x9a\x4f\x7a\x55\xfd\xaa\x26\x27\xba\x9a\xd6\x7b\x75\xf4\x15\x6e\x3d\x59\x9c\x2f\xce\x9d\xa3\xb9\x5e\xe6\x5c\x37\x6e\xe0\xb5\x01\xaf\x0d\x78\x6d\xc0\x6b\x03\x5e\x1b\xf0\xda\x80\xd7\x06\xbc\x36\x36\xd9\x6d\xe1\xb5\x01\xaf\x0d\x78\x6d\xc0\x6b\x03\x5e\x1b\xf0\xda\x80\xd7\xc6\xd9\x79\x6d\x80\xef\x83\xef\x83\xef\xb7\xcf\x26\xf0\xfd\xa5\xeb\x0c\x7c\xbf\x0b\xdf\x7f\xba\x59\x16\x45\x3c\x8f\x5f\xcc\xf1\xde\x2f\x81\x31\x65\xb2\x40\x25\x5a\x9b\xb0\xd3\x72\x35\x78\x31\xaf\x58\xf4\xf2\xd1\xbf\x58\xc5\xe1\xce\xbd\xde\x35\x37\x36\x0c\xcc\xe7\x63\x60\xee\x96\x6a\x79\x9d\x91\x79\xcd\xba\x7c\x4d\x46\xec\xed\x12\xb5\xef\x84\x45\x7f\xa2\xf5\xf6\x8d\x16\x46\xde\x4b\x1a\x76\x18\xcf\x61\x3c\x87\xf1\x1c\xc6\xf3\x53\x33\x9e\x77\x3b\x55\x5a\x0d\xe8\xaf\x4c\xde\xdf\x7d\xef\x25\x15\xcf\x9a\x0d\x2e\x29\x1b\x42\xa0\x67\x94\x99\x07\x8d\xb6\xd5\xe5\x88\x89\x60\xa9\xee\xad\x5c\x6b\xd8\xec\x56\xb2\x58\x9a\x9d\x45\x65\xac\x94\x7e\x73\x0a\x59\x98\xbd\x7c\x2f\x25\x0b\xe3\x4c\x4b\x65\x4f\xc2\xcf\x78\x52\xbb\x24\xe3\xd2\x2e\x79\x37\x37\x6c\x07\xb3\x69\x99\xd1\x2a\x4b\x33\x15\x68\xb9\xc1\x68\xa6\x35\xc3\xe6\x98\xfd\x41\x5f\xa4\xd1\xa2\xb9\xa3\xd5\xd2\xdb\x24\xf9\x40\xb6\x96\x50\xef\xd2\xa5\xd4\x03\xaf\x45\x7d\x37\x25\x6d\x71\x8b\x49\xf3\x3b\x0c\x94\x69\xcb\x61\x86\x69\x6f\xc4\xa3\x5b\x57\x2c\xa7\x1e\x7b\xeb\x91\xdf\xeb\xba\x6b\x2c\x59\x6e\x54\x4a\x36\x11\x53\x23\x39\x7b\xeb\x58\x25\x4a\xd8\xdd\x8b\xa6\x4e\x29\xcc\xe1\x30\xd1\x5a\x9b\xbc\x92\x22\xe2\x34\x41\xad\xf6\xa9\x15\x65\x77\x82\x1a\x4b\xb9\x5f\x1a\x56\x47\x89\x67\x33\x11\xc6\xbc\x10\xc9\x4b\x25\xd2\x56\x47\x6e\x9c\x5c\x5a\xed\x92\x3a\x9d\x45\x19\x0f\x68\xd5\xc4\x2a\xf4\x02\x41\x75\x68\x93\xbe\xe0\x66\x69\x99\xeb\x4a\xd6\x87\x8b\xeb\x37\x5d\x83\xec\x47\xa6\x66\x0f\x74\x45\x8c\x4d\x3d\x67\x82\xcb\xd6\x3a\x6e\x31\xcc\x54\xe7\x3b\xaa\x72\x9b\xc6\xbe\x46\x67\x1f\xca\xf4\xdf\x04\x76\x75\xeb\x97\xe5\xc0\x6b\x6f\xd3\x1f\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x6b\x67\xe8\xab\xe3\x59\xb0\x80\xbf\xf6\x77\x2c\x7e\xaa\xdd\x8f\x98\x26\x82\xe7\xc2\x6f\x41\x77\x99\x4a\x79\x44\xd2\xd1\x9d\x4a\xe2\xe0\xa5\x61\x07\x73\x93\xae\xba\x60\x51\x4f\xbb\x9b\xf1\x3f\xc6\xec\x87\xd9\xcf\x8c\xe8\x92\x0a\xa9\x17\x4b\x75\xa6\x0a\xa6\xb2\xf4\x81\x4b\x67\x97\xcb\x4a\x71\x3d\xe5\x89\xd3\x95\xef\x2f\xcc\xcf\xf7\x17\x6c\x1a\x4b\x9e\xc4\xff\x76\x07\xc9\x44\x30\x1e\x86\x34\x3b\xaf\x8d\xb1\x3c\xac\xd4\x30\x53\xfc\x28\xaf\x5e\x32\xfa\xe9\x98\x7d\x8e\x69\x73\xac\x55\x5d\x65\x8b\x6d\xa3\xed\xc7\x98\x8a\x8c\x7a\x4c\x3a\x8a\x2a\x1e\xb6\x19\x50\xd3\x82\x4f\xae\xed\x7b\x33\xf1\x2d\x2a\x66\xd4\x74\xbd\x60\x1f\xd4\x33\x8b\x78\x36\xe1\x51\xc3\x34\xee\x95\x1a\x91\x4d\x55\x36\xd3\x63\xd2\xda\x5f\xdf\xe6\x5a\xb4\xbc\xbb\x48\xe8\x75\x12\x6b\x6a\xfa\x36\xd6\xd2\x64\x10\x87\x95\x2a\x4c\xb2\x02\x19\x27\xfc\x18\xe7\x14\x5c\x47\xbf\x3a\x69\x60\x5c\x1b\x4c\x77\x8e\x38\x55\xfb\xca\xdb\x98\x9b\x1f\x1b\xb3\xdb\x20\x10\x69\x41\x67\x53\x5d\xb3\x1b\x99\x36\x8c\xd8\x95\x9d\x80\xcd\x09\x9a\xff\xcc\x46\xbf\xf0\xe0\x31\xca\x54\x29\x43\xfd\x14\xd9\x6a\xe9\xa1\xb9\x8e\x33\x22\xa4\x95\x8f\x9b\x85\xb8\x16\x4c\x7c\x49\x3f\xb3\xd1\x17\x95\x89\x5a\xb1\x2c\xe0\x79\xc0\x43\xdd\x7a\xdb\x3f\xc6\x9c\x4f\xe5\xe5\x46\xf5\x5c\x28\x70\xea\xcb\xd8\x66\x42\xa6\xf3\xd3\xfd\x80\x96\x02\x70\xea\xe3\xe1\xd4\xdd\x66\xd7\x2a\x56\xbd\x3f\x65\xfe\x90\xd4\xba\x5b\x3f\xad\x20\xd7\xfb\x3b\xf0\x87\xca\xb0\xbb\x75\xe1\x22\xc7\x7e\xed\x71\xda\x8a\x94\x11\x5d\xba\x21\xd1\xfb\x51\xf0\xa2\xec\x8a\xf2\x4e\x2b\x0c\xce\x9c\xdb\x95\x4c\x35\xd8\x90\xb8\xa1\xc6\xba\xc2\xcd\x02\x6e\x16\xa7\xe3\x66\x01\xc7\x04\x38\x26\xc0\x31\x01\x8e\x09\x70\x4c\x38\xb8\x63\x02\x88\x37\x20\x28\x20\x28\x20\x28\x20\x28\x20\x28\x20\x28\x20\xe8\xd2\x43\x00\x5c\x02\x5c\x02\x5c\x02\x5c\x02\x5c\x02\xf7\xfe\xad\x02\x20\xb8\xf7\xef\xe2\x04\xef\xfd\x43\x92\x83\x81\x5f\x82\x60\xff\xfa\xb3\x1a\x64\x95\xf7\x8c\xb2\x8c\xf6\xc1\xf8\x1a\x6a\x65\x1e\xeb\x8b\x5b\x6d\x17\x91\xb9\x62\xbe\xf4\xb7\xb9\xf5\x12\x94\x89\xc0\xa0\xfa\x38\x0f\x36\x30\x88\xec\x07\xbf\x71\xc9\x23\x91\x19\x4b\x98\xd9\x0a\xf3\x5c\x05\x31\xa9\x76\xde\xe6\xc4\xc9\x74\xa8\x32\xa6\x35\xff\xe2\xc5\xeb\xba\x33\xfe\xa8\x7b\xb1\x78\x10\xb9\x70\xf2\x5b\x3d\xfc\xc5\x85\xc9\x90\xfc\x4a\xf6\x25\x95\xb1\x9b\xf7\x3f\xe9\x67\x33\x1e\x10\x50\x4a\x94\x8c\x8c\xb4\x46\x36\x20\xad\xac\xf3\x58\x9a\xfd\x87\x6c\x2c\xd5\xb3\x64\x64\xb7\xb8\x8b\x4d\x5e\x18\x9d\x7a\x1f\xae\xaf\x23\x95\x70\x19\x8d\x55\x16\x5d\xa7\x8f\xd1\x75\x29\xe3\x40\x85\xe2\xfa\x6f\x5f\xf3\x3b\x5d\xca\xd6\x46\x5b\xdb\x39\x7d\x0e\xcf\xa0\xc4\xbb\x23\x92\xba\xba\x4a\x5c\xef\x3b\x48\x5c\x1f\x8d\xc9\xe9\xe0\x35\x7d\xbf\xb6\xa6\xc6\xa5\xf5\xe0\x55\x3d\x29\x31\x96\x84\x88\x81\x89\xb1\x6f\xd8\x56\x57\xaa\x98\x7f\xf8\xcf\x9e\x6e\x56\x59\x27\x24\x35\x6e\x53\x39\x90\x90\x74\x24\xd7\x56\x40\x42\xaa\x0f\xf2\x60\x25\x24\x04\x0a\x9f\x51\xa0\x30\x22\xa2\x10\x11\x85\x88\x28\x44\x44\x41\xb9\x5b\xb6\x8a\x06\x19\x53\x70\x18\x35\x0a\x21\x11\xcb\x43\x22\x86\xa6\x5c\x79\xf3\x71\xef\x81\x10\xc4\xcf\x9b\x32\xd6\x6a\x15\x49\xbf\xb0\xa3\xe8\x87\x9a\xa8\x21\xfe\x22\x9f\xa6\x89\xfe\x8b\x07\xc5\x98\xb1\xcf\xfa\xbf\xee\xdf\x67\x3c\x26\x13\x5b\xce\x82\xa4\xcc\x0b\x91\x55\x07\x88\x71\x7e\x64\x49\xfc\x28\xd8\xc8\xd7\x70\xa4\xe5\x44\x27\xdb\x8c\xd9\x5d\xc2\xa5\xb4\x3e\x09\x24\x7d\xf0\xc4\x08\x3c\x37\x3f\x6d\xb3\x23\x53\x1d\x0f\x24\x17\xf8\x4e\xf3\x62\xf5\xc4\x75\x9f\x6e\x29\xfb\x6c\x7a\x4c\x9f\x05\x69\xee\x7a\xc7\xba\xfd\x94\xb9\xc8\xc8\x5f\xa7\x92\x90\x5f\x76\xdc\x51\xba\x32\xa7\x0b\x9b\x87\x7d\x60\xc1\x70\xa6\xb7\xcf\xa1\x6e\xed\x5b\xe0\xdf\x7a\x02\xff\x85\x0f\x23\x59\x7f\x7b\x9b\xc1\xb1\x7b\xe1\xd8\xb4\x04\xb6\xca\xe3\x7b\x45\xef\xfe\x7d\xf5\xfe\x3b\x13\x59\x24\x3a\x3d\x99\x17\x19\x2f\x44\x14\x07\x57\xdd\xdf\xd1\x7f\xbf\xd8\x27\x69\xa7\xef\x22\x2a\x91\x93\x24\xc5\x60\x19\xff\xac\x8d\xc4\x26\xfa\xd6\x69\xd2\xf7\x15\x8a\xc4\x5d\xd3\x33\x8a\xc1\xdc\x7c\xe2\xe6\xe6\xf3\x01\xf2\x73\x01\x0c\x6e\x71\x99\x20\x9b\xd4\xf8\x1c\xdb\xc0\xed\xb7\x4b\xb6\x9e\x77\x64\x6c\x33\x91\xb5\x3c\xa1\x37\xa5\x92\x57\xe6\x6d\x7a\x82\xec\xdd\x39\x7b\xfb\x6b\xae\xe4\x9d\x89\x5f\xfe\x4d\x6f\x72\xf6\xef\x1f\x6e\xeb\xab\xfe\xf1\xdd\x90\x3c\x05\xba\xcf\x9b\x2f\x2a\x0b\x08\x08\x44\x8a\x06\x5f\xb1\xfb\x8b\xa9\xfe\xb7\xfb\x0b\x76\xdb\xe8\xcd\x31\xfb\x5a\x58\xeb\x3d\xa9\x2f\x76\xa1\x5e\xf1\x80\x06\x80\x22\x60\x93\x38\xb0\xf6\x48\xd2\x76\xd4\xb3\x1d\x5b\x13\x21\x9a\x0a\x95\x26\x62\xcc\xcc\x37\x29\xf0\xdd\xcd\x29\x72\x4a\x6f\x1d\x08\xff\xf9\x6d\xba\x57\x7f\x08\x4a\x8f\xf9\x01\x4a\xcf\xbe\x95\x9e\x74\x4e\x5b\x19\x98\xda\x53\xf6\x6e\xd1\x4a\x13\x1e\x6c\x26\x9d\xd9\x77\x4e\x53\x3e\x83\x77\x24\x84\xb1\x13\x17\xc6\x06\x24\xf3\xe0\x68\xf6\xbf\x9c\xb9\x77\xe4\x69\x09\x11\xe5\xe0\x2c\xa7\x6f\xd8\x6b\x3c\x0e\xaf\x73\x03\x39\x6b\x8e\x87\xbb\x81\x6b\xe6\x3b\xee\x20\x7a\x2d\x66\xb3\x68\x16\x7b\x0b\x56\xac\xfb\x15\xac\x03\xac\x63\x49\x9b\xc1\x3a\xc0\x3a\xfa\x61\x1d\xdb\x9d\x62\x4b\xa9\x47\xcb\x31\x76\x94\xba\x35\xd8\x07\xd4\xed\xf3\x53\xb7\xc1\x3e\xfa\x9c\x37\x60\x1f\x30\xb0\x40\x09\x02\xfb\xe8\x91\x7d\x6c\x6b\x73\x58\x4a\x41\x4e\x45\x5e\x03\x0b\x81\x70\x76\xe2\xc2\xd9\x80\x64\x20\x1c\xd5\xfe\x17\xb0\x90\x13\x12\x2a\x8e\x8b\x85\xd0\xf5\x74\x84\x3e\x76\x0a\x3b\xec\x8d\xbd\x32\x8c\x9f\xe2\xb0\xe4\x49\xfd\x32\x44\xee\xef\xe8\xfe\x55\x4d\xc6\xb5\x30\xe3\x0f\x3e\x40\x79\x44\xef\x8f\xaa\x3c\x0d\x8d\x8b\xf7\xbd\xa4\xc2\x62\x99\x17\x82\x37\x0c\x84\xf3\x72\xcc\x73\xcd\xea\x64\x6f\xbb\xfb\xa2\xb2\xdb\x24\xf1\x22\xcd\x20\x00\xca\xd2\x17\xce\xeb\x66\xc2\x15\x26\x34\xba\x58\xf3\xf3\x93\x90\xe7\x79\x5b\x21\x8d\xde\xa9\x5d\x59\x88\x14\x47\x27\x9c\xe2\x68\x3d\xa8\x59\x97\xde\x68\xa5\x6d\xa8\x07\x08\x85\xa4\x46\x48\x6a\x84\xa4\x46\x48\x6a\x74\x6a\x49\x8d\xd6\xef\xbc\xad\x09\x8d\x76\x8c\xfc\xf7\x96\xc6\x68\x7d\xf3\x97\xa7\x30\x1a\x72\x1f\x6c\x92\xb8\x68\x7d\x1f\x2c\x4f\x5a\xb4\xe3\x3e\x40\xaa\x22\xa4\x2a\x42\xaa\x22\xa4\x2a\x42\xaa\xa2\x9d\xa5\x2a\xea\xb0\xfb\x2f\xa4\x29\x5a\x79\x2f\xe1\x19\x79\xfc\x75\x6b\x0d\x52\x2d\x1d\x59\xaa\xa5\xf5\x93\x68\x55\x9a\xa5\x1d\xcf\xa6\x83\x26\x57\x5a\xdf\x33\x2b\x12\x2b\xed\x7a\xd7\x18\x6a\x3a\xa5\xf5\x9d\xd6\x62\xac\xdf\xda\x9c\x65\xff\xfa\x73\x3d\xd9\x59\x11\xeb\x72\x86\xc0\xa7\xe1\xb6\xf2\xaf\x39\xe3\x39\x50\x0f\x50\x0f\x03\xea\xa9\xfd\x00\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x03\xd4\x83\x5b\x2d\xc0\xb8\xc0\xb8\xc0\xb8\xc0\xb8\xfa\x5d\x67\x60\x5c\x7d\x31\xae\x96\x0c\xb2\x3b\x42\x5d\x75\xbe\x25\xdd\x39\xaf\xa6\xec\x31\x96\x61\x6f\x9c\xeb\xb2\x92\xe8\x49\x6b\xb1\xd2\x9f\x56\x0a\x2a\x55\x65\xd4\x50\x71\x6b\x65\x6f\x45\xc9\x40\xc8\x40\xc8\x8e\x83\x90\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x75\xdc\xfd\xf7\x4e\xc7\x70\x79\x3d\x30\x1f\x30\x1f\x30\x1f\x30\x1f\x30\x1f\x30\x1f\x5b\xc4\x7c\x13\x51\xf0\x9b\xeb\xad\x18\xde\x41\xee\x0d\x9d\x1b\xe7\x48\x14\x4d\xe9\xdc\x0c\xe9\x0a\x18\x17\x89\xc2\xa2\x38\x6a\xfa\xed\xdd\xd7\xef\x6d\x6f\xe1\xb2\xd4\x0d\x29\x59\xad\x23\x29\xf8\xef\x44\x50\x19\x4d\x92\xda\x6b\x6f\xea\x9f\x5e\xb5\xa4\x82\x4c\xc9\x9d\x47\x82\x1a\xf3\x4d\x66\x05\x08\xa7\x1f\x38\x32\xfe\x31\x53\x72\xf5\xc5\xe3\xfa\xfd\xfa\x6a\xb0\x6f\xe0\xd2\xce\xf9\x7e\x1f\xcc\x0a\xf4\x97\x00\xd3\x78\x8d\xed\x80\x9d\xf2\x8a\x5b\x4f\xa8\xf7\x10\xbe\xb9\xb8\x94\xe6\x21\xf5\x5c\xb5\x41\xaa\x41\xaa\x41\xaa\x41\xaa\x41\xaa\x41\xaa\x41\xaa\x41\xaa\xd7\xef\xb6\x20\xd5\x20\xd5\x20\xd5\x20\xd5\x20\xd5\x20\xd5\x20\xd5\x67\x47\xaa\xc1\x39\xc1\x39\xc1\x39\xdb\x67\x13\x38\xe7\xd2\x75\x06\xce\xb9\x09\xe7\x5c\x12\xcd\xd8\xc6\x6a\xcc\x39\xdf\x2f\xae\x31\x65\xb2\x40\x25\x5a\xad\xb0\xf3\x73\x3d\xa5\x31\xaf\x35\x38\x8d\x2f\xa1\x8a\x27\x6c\x29\xa7\x6b\xaa\x58\x98\x9d\xcf\xc7\xec\xdc\x2d\x31\xe9\x3a\xd3\xf3\x6b\x73\x89\x5f\x2e\x9f\x8c\xdb\xe5\x2d\xde\x09\xd3\xfe\x44\x0b\xef\x1b\x2d\x8c\xbc\x97\xa4\xc5\x30\xa9\xc3\xa4\x0e\x93\x3a\x4c\xea\xa7\x66\x52\xef\x76\xaa\xb4\x9a\xd5\xf7\x96\x89\x1c\x09\xe3\x3b\x0f\xd4\x21\x13\xc6\xef\x8d\x83\x6c\x90\xa2\xbd\x95\x03\xec\xad\x47\x7e\xaf\x6b\xb4\xb1\x64\xb9\x51\x34\xd9\x44\x4c\x8d\xe4\xec\x6d\x66\x95\x28\x61\x77\x2f\x9a\x3a\xb5\x14\xf9\x52\xc9\x2b\x29\x22\x4e\x13\xd4\xea\xa4\xf5\x54\xfa\xc6\x7e\xee\x97\x86\x55\x58\xe2\xd9\x4c\x84\x31\x2f\x44\xf2\x52\x89\xb4\xd5\x91\x1b\x27\x97\x56\xe7\xa4\x4e\x67\x51\xc6\x03\x5a\x35\xb1\x0a\xbd\x40\x50\x1d\xda\xa4\x2f\xb8\x59\x5a\xe6\xba\x92\xf5\xe1\xe2\xfa\x4d\xd7\x20\xfb\x91\xa9\xd9\x03\x5d\x11\x63\x53\xcf\x99\xe0\xb2\xb5\x8e\x5b\x0c\x33\xd5\xf9\x8e\xaa\xdc\xa6\xc7\xaf\xd1\xe4\x87\x32\xfd\x37\x41\x60\xdd\xfa\x65\x39\x06\xdb\xdb\xf4\x07\x10\x03\x10\x03\x10\x03\x10\x03\x10\xdb\x19\x10\xeb\x78\x16\x2c\x40\xb1\xfd\x1d\x8b\x9f\x6a\x17\xbc\xa5\x89\xe0\xb9\xf0\x5b\xd0\x5d\xa6\x52\x1e\x91\x74\x74\xa7\x92\x38\x78\x69\xd8\xc1\xdc\xa4\xab\x6e\x88\xd3\xd3\xee\x66\xfc\x8f\x31\xfb\x61\xf6\x33\x23\xba\xa4\x42\xea\xc5\x52\x9d\xa9\x82\xa9\x2c\x7d\xe0\xd2\xd9\xe5\xb2\x52\x5c\x4f\x79\xe2\x74\xe5\xfb\x0b\xf3\xf3\xfd\x05\x9b\xc6\x92\x27\xf1\xbf\xdd\x41\x32\x11\x8c\x87\x21\xcd\xce\x6b\x63\x42\x0f\x2b\x35\xcc\x14\x3f\xca\xab\x97\x8c\x7e\x3a\x66\x9f\x63\xda\x1c\x6b\x55\x57\xd9\x62\xdb\x68\xfb\x31\xa6\x22\xa3\x1e\x93\x8e\xa2\x8a\x87\x6d\x06\xd4\xb4\xe0\x93\x6b\xfb\xde\x4c\x7c\x8b\x8a\x19\x35\x5d\x2f\xd8\x07\xf5\xcc\x22\x9e\x4d\x78\xd4\xb0\x93\x7b\xa5\x46\x64\x53\x95\xcd\xf4\x98\xb4\xf6\xd7\xb7\xb9\x16\x2d\xef\x2e\x12\x7a\x9d\xc4\x9a\x9a\xbe\x8d\xb5\x34\x19\xc4\x61\xa5\x0a\x93\xac\x40\xc6\x09\x3f\xc6\xfa\xb0\xb6\x27\xa9\x93\x06\xc6\xb5\xc1\x74\xe7\x88\x53\xb5\xaf\xbc\x8d\xb9\xf9\xb1\x31\xbb\x0d\x02\x91\x16\x74\x36\xd5\x35\xbb\x91\x69\xc3\x88\x5d\xd9\x09\xd8\x9c\xa0\xf9\xcf\x6c\xf4\x0b\x0f\x1e\xa3\x4c\x95\x32\xd4\x4f\x91\xad\x96\x1e\x9a\xeb\x38\x23\x42\x5a\xf9\xb8\x59\x88\x6b\xc1\xc4\x97\xf4\x33\x1b\x7d\x51\x99\xa8\x15\xcb\x02\x9e\x07\x3c\xd4\xad\xb7\xfd\x63\xcc\xf9\x54\x5e\x6e\x54\xcf\x85\x02\xa7\xbe\x8c\x6d\x26\x64\x3a\x3f\xdd\x0f\x68\x29\x00\xbd\x3e\x1e\x7a\xdd\x6d\x76\xad\x22\xd8\xfb\x53\xe6\x0f\xc9\xb2\xbb\xf5\xd3\x0a\x9e\xbd\xbf\x03\x7f\xa8\x64\xbb\x5b\x17\x2e\xd2\xed\xd7\x1e\xa7\xad\x7c\x19\x51\xaa\x1b\x12\xbd\x1f\x05\x2f\xca\xae\x28\xef\x04\x43\xe5\xcc\xe1\x5d\x09\x56\xc3\x0f\x9b\x1b\x7c\xcc\x2c\x3c\x30\xe0\x81\x71\x5a\x1e\x18\xf0\x59\x80\xcf\x02\x7c\x16\xe0\xb3\x00\x9f\x85\x83\xfb\x2c\x00\x86\x83\x8f\x82\x8f\x82\x8f\x82\x8f\x82\x8f\x82\x8f\x82\x8f\x2e\x3d\x04\x80\x2c\x80\x2c\x80\x2c\x80\x2c\x80\x2c\x70\x7f\xe0\x2a\x36\x82\xfb\x03\xcf\xe8\xfe\x40\x5c\x1a\x3f\xf0\xcb\x14\xec\x5f\x7f\x56\x83\xac\xf2\x9e\x71\x97\x51\x4a\x18\xef\x40\xb6\xcc\xa3\xbd\xb3\xad\xed\x02\x3a\x57\x4c\x9e\x1d\x6c\x80\xbd\x04\x77\x22\xc0\xa8\x3e\xe0\x83\x0d\x30\x22\x63\xc3\x6f\x5c\xf2\x48\x64\xc6\x6c\x66\x36\xc8\x3c\x57\x41\x4c\x7a\xa0\x37\x50\x71\xb2\x33\xaa\x8c\x09\x59\x68\x39\xd5\x29\xc6\x33\xfe\xa8\x7b\xb1\x78\x10\xb9\x70\xc2\x5e\x3d\x8c\xc6\x85\xdb\x90\xb0\x4b\xc6\x28\x95\xb1\x9b\xf7\x3f\xe9\x67\x33\x1e\x10\x7d\x4a\x94\x8c\x8c\x68\x47\x06\x23\xad\xd9\xf3\x58\x9a\x5d\x89\x0c\x32\xd5\xb3\x64\x91\xb7\x6c\x8c\x4d\x5e\x18\x9d\x8c\x1f\xae\xaf\x23\x95\x70\x19\x8d\x55\x16\x5d\xa7\x8f\xd1\x75\x29\xe3\x40\x85\xe2\xfa\x6f\x5f\xf3\x3b\x5d\xca\xd6\x16\x5e\xdb\x39\x7d\x0e\xcf\xa0\x64\xc1\x63\x14\xd1\xba\x8a\x67\xef\x3b\x88\x67\x1f\x8d\xa1\x6a\x38\x55\x7e\xbf\xb6\xca\xc6\x59\x76\x38\x75\x3e\x3d\x29\x98\x44\x8f\xa1\x4a\xc1\x6f\xd8\xeb\x6e\x76\x69\xc9\x55\xbf\xc3\x0b\x5e\xba\x08\x5b\x8b\x97\xba\x1c\x50\xd8\x3a\x92\xdb\x33\x20\x60\xd5\x07\x79\xb0\x02\x16\xe2\x95\xcf\x28\x5e\x19\x81\x59\x08\xcc\x42\x60\x16\x02\xb3\xa0\x1b\x2e\x5b\x45\x83\x0c\x6d\x38\x8c\xce\x85\xc8\x8c\x35\x91\x19\x83\x55\xc0\xbc\x85\xba\xf7\x78\x0c\x22\xf7\x4d\x89\x6b\xbd\xf6\xa4\x5f\xda\x75\x10\x46\x4d\x0a\x11\x7f\x91\x6b\xd5\x44\xff\xc5\x83\x62\xcc\xd8\x67\xfd\x5f\xf7\xef\x33\x1e\x93\xf1\x2e\x67\x41\x52\xe6\x85\xc8\xaa\xb3\xc5\xf8\x60\xb2\x24\x7e\x14\x6c\xe4\x6b\x39\xd2\x22\xa4\x13\x7b\xc6\xec\x2e\xe1\x52\x5a\xd7\x08\x12\x4c\x78\x62\x64\xa1\x9b\x9f\xb6\xd9\xac\xa9\x8e\x07\x12\x19\x7c\xa7\x79\x89\x7b\xe2\xba\x4f\xb7\x94\x7d\x36\x3d\xa6\x8f\x89\x34\x77\xbd\x63\xbd\x8f\xca\x5c\x64\xe4\x36\x54\x09\xcf\x2f\x3b\xee\x28\x5d\x99\xd3\x65\xde\xc3\x3e\xcb\x60\x80\x6b\x9e\x00\x7a\x67\x1d\xfc\xf6\xbf\x05\x85\xae\xe7\x60\x6f\xad\x01\xf2\xb0\xb7\xb7\x19\x48\xbd\x17\xa4\x4e\xeb\x61\xab\x8c\xc6\x57\xf4\xee\xdf\x57\x6f\xcd\x33\x91\x45\xa2\xd3\x93\x79\x91\xf1\x42\x44\x71\x70\xd5\xfd\x1d\xfd\xf7\x8b\x7d\x92\x0e\x81\x2e\x22\x15\xb9\x71\x52\x94\x98\xf1\x20\xdb\x58\xbc\xa2\xef\x0d\xc4\x36\xbd\x2b\x47\x80\x15\xba\xc8\x5d\xd3\x91\x8b\xc1\x62\x7d\xe2\x16\xeb\xf3\x71\x09\x98\x8b\xb7\x70\x8b\xcb\xc4\x04\xa5\xc6\x45\xda\xc6\x99\xbf\x5d\xb2\x0f\xbd\x23\x7b\x9d\x09\x04\xe6\x09\xbd\x29\x95\xbc\x32\x6f\xd3\x13\x64\x32\xcf\xd9\xdb\x5f\x73\x25\xef\x4c\xb8\xf5\x6f\x7a\xc7\xb3\x7f\xff\x70\xfb\x60\xf5\x8f\xef\x86\xe4\xab\xd0\x7d\xde\x7c\x51\x59\x40\x4c\x21\x52\x34\xf8\x8a\xdd\x5f\x4c\xf5\xbf\xdd\x5f\xb0\xdb\x46\x6f\x8e\xd9\xd7\xc2\x02\x00\x52\x73\xec\x42\xbd\xe2\x01\x0d\x00\x05\xec\x26\x71\x60\x4d\x9a\xa4\x15\xa9\x67\x3b\xb6\x26\xa0\x35\x15\x2a\x4d\xc4\x98\x99\x6f\x52\x9c\xbe\x9b\x53\xe4\x43\xdf\x3a\x10\xfe\xf3\xdb\x74\xaf\xfe\x10\x94\x23\xf3\x03\x94\xa3\x03\x7b\x27\xcc\x69\x35\x43\x55\x8f\xca\xde\xad\x63\x69\xc2\x83\xcd\x25\x38\xfb\xde\x89\xcb\x70\x70\xe6\x84\xe4\x76\x2e\x92\xdb\x80\x04\x24\x9c\xe3\xfe\x17\x38\x73\x9e\xbe\xe8\x51\x0e\xd7\x2e\xfb\x86\xf5\xe2\x17\x79\x9d\x1b\xfa\x5a\x73\x8f\xdc\x0d\xe7\x33\xdf\x71\x27\x56\xaf\xc4\xcf\x02\x64\xec\x48\x58\xde\xc0\x2e\xc0\x2e\xc0\x2e\xc0\x2e\x87\xc6\x2e\xdb\x9f\x76\xeb\x01\x4c\xcb\x71\x77\x94\x2a\x3c\x30\x0c\x94\xf9\xf3\x53\xe6\x81\x61\xfa\x9c\x37\xc0\x30\x30\xdf\x40\x59\x02\x86\xd9\x3d\x86\x79\x8d\xfd\x62\x3d\x90\x39\x15\x99\x0e\x58\x06\x92\xdc\xb9\x48\x72\x03\x12\x98\x70\xae\xfb\x5f\x80\x65\x4e\x5f\x14\x39\x66\x2c\x43\x57\x05\x7a\x0a\xb3\x53\xee\x62\x6f\x50\x96\x61\xfc\x14\x87\x25\x4f\xea\x97\x53\x72\x7f\x67\xba\x6d\xeb\xb8\x16\x8e\xfd\xc1\x07\x72\x8f\xa8\x8c\x51\x95\x3b\xa3\x91\x0c\xc1\x0b\x3a\x2c\x96\x79\x21\x78\xc3\x0e\x39\x2f\x06\x3d\xcf\x1b\xb6\x6a\x37\x10\x7e\x51\xd9\x6d\x92\x78\xa9\x68\x10\x2c\x67\xe9\x0b\xe7\x75\x6d\xe4\x0a\x2b\x1d\xdd\x7a\xfa\xf9\x49\xc8\x33\xbe\x41\x92\x86\xf0\x64\xaf\x91\x44\x36\xaa\x13\xce\x46\xb5\x1e\x13\xad\xcb\x44\xb5\xd2\x18\xd5\x03\x02\x43\xfe\x29\xe4\x9f\x42\xfe\x29\xe4\x9f\x3a\xb5\xfc\x53\xeb\x77\xde\xd6\xdc\x53\x3b\x76\x38\xd8\x5b\xc6\xa9\xf5\xcd\x5f\x9e\x6d\x6a\xc8\x7d\xb0\x49\x8e\xa9\xf5\x7d\xb0\x3c\xbf\xd4\x8e\xfb\x00\x59\xa5\x90\x55\x0a\x59\xa5\x90\x55\x0a\x59\xa5\x76\x96\x55\xaa\xc3\xee\xbf\x90\x51\x6a\xe5\xb5\x8e\x67\xe4\x6f\xd8\xad\x35\xc8\x8a\x75\x64\x59\xb1\xd6\x4f\xa2\x55\x19\xb1\x76\x3c\x9b\x0e\x9a\x07\x6b\x7d\xcf\xac\xc8\x81\xb5\xeb\x5d\x63\xa8\x99\xaf\xd6\x77\x5a\x8b\xe9\x7e\x6b\x73\x96\xfd\xeb\xcf\x8e\xf4\x67\x4d\x68\xce\x39\x43\xa1\x05\xcf\x98\x7f\xcd\xd9\xd6\x81\x83\x80\x83\x18\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\xd0\xc0\x50\x08\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\x10\x70\xd0\x31\xe2\x20\xdc\xbb\x01\x0e\x06\x0e\x06\x0e\x06\x0e\x06\x0e\x76\x20\x0e\xd6\x92\xba\x77\x47\x38\xac\xce\xc0\xa4\x3b\xf0\xd5\x94\x3d\xc6\x32\xec\x95\x85\x5d\x56\xe2\x3d\xa9\x30\x56\x14\xd4\x1a\x42\xa5\xb7\x8c\x1a\xfa\x6e\xad\xec\xd7\x91\x34\x50\x34\x50\xb4\x23\xa2\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x20\x68\x83\x27\x68\xb8\x86\x1f\x38\x10\x38\x10\x38\x10\x38\x10\x38\x10\x38\x70\x0e\x07\x06\x22\xb3\xb5\x17\x39\x51\x91\x58\x5d\x6f\x05\xfa\x0e\x72\x9b\xe9\xdc\x68\x47\xa2\x60\xb1\x9c\xaa\x6c\xe6\x67\x37\x67\x06\x42\x2c\x07\x76\x91\x28\x3e\xd6\x3a\xe1\xf6\xee\xeb\x3f\xe7\xdf\xc0\x0d\xae\x1b\xc2\x33\xdf\x89\x47\x8e\xce\xea\xab\xa3\xf6\xd6\x9b\xfa\x97\xd7\xaf\x27\x07\xdb\x8f\x7a\x5d\x35\xf4\x5f\xb3\x61\x76\x5f\x54\x16\x85\xdf\xde\x7d\xfd\xde\xf6\x32\xd6\xd7\xe6\xeb\xcb\x75\x24\xc5\xe5\x9e\xd0\x32\x6b\x01\xd5\x5b\x2e\xb7\xfa\x6f\x71\xa4\xe5\x5c\x67\x0a\xa8\x2f\x44\x63\x75\xe8\xd7\x99\xc5\x94\xc9\x02\x95\x24\x22\x70\x27\x51\x6d\x3d\xfc\x30\xd5\xf9\x6e\xaa\xb3\x62\x19\x99\x82\x5a\x56\xd2\x47\x5f\x74\xa7\x62\xbb\x26\x31\x00\x25\x3f\x1f\x4a\xde\xed\xa6\xfc\x75\xa4\xfc\xb5\x99\x70\x2e\x97\x4f\xc6\xed\x32\x6a\xec\x64\xbf\xfd\x44\xeb\xf0\x1b\x2d\x8c\xbc\x97\x2c\x1a\xf0\x00\x80\x07\x00\x3c\x00\xe0\x01\x70\x6a\x1e\x00\xdd\x4e\x95\x56\x2f\x80\xbd\xa5\xc6\x41\x06\xa3\xce\x03\x75\xc8\x0c\x46\x7b\x73\xdb\xd8\x20\x67\x50\xab\xdb\xc2\xde\x7a\xe4\xf7\xba\xe9\x36\x96\x2c\x37\x16\x55\x36\x11\x53\x23\x39\x7b\xc4\x57\x89\x12\x76\xf7\xa2\xa9\x53\xcb\xd9\x24\x95\xbc\x92\x22\xe2\x34\x41\xad\xf1\xb5\x9e\xdb\xc9\xe0\x7e\xbf\x34\xac\x46\x13\xcf\x66\x22\x8c\x79\x21\x92\x97\x4a\xa4\xad\x8e\xdc\x38\xb9\xb4\xc6\x55\xea\x74\x16\x65\x3c\xa0\x55\x13\xab\xd0\x0b\x04\xd5\xa1\x4d\xfa\x82\x9b\xa5\x65\xae\x2b\x59\x1f\x2e\xae\xdf\x74\x0d\xb2\x1f\x99\x9a\x3d\xd0\x15\x31\x36\xf5\x34\xe9\x24\x5b\xea\xb8\xc5\x30\x53\x9d\xef\xa8\xca\x6d\x06\xeb\x35\x26\xeb\xa1\x4c\xff\x4d\x3c\x76\xba\xf5\xcb\x72\xaf\x9d\xbd\x4d\x7f\xf8\xef\xc0\x7f\x07\xfe\x3b\xf0\xdf\x81\xff\xce\xce\xfc\x77\x3a\x9e\x05\x0b\x3e\x3c\xfb\x3b\x16\x3f\xd5\x82\xff\xd2\x44\xf0\x5c\xf8\x2d\xe8\x2e\x53\x29\x8f\x48\x3a\xba\x53\x49\x1c\xbc\x34\xec\x60\x6e\xd2\x55\xd1\x83\x7a\xda\xdd\x8c\xff\x31\x66\x3f\xcc\x7e\x66\x44\x97\x54\x48\xbd\x58\xaa\x33\x55\x30\x95\xa5\x0f\x5c\x3a\xbb\x5c\x56\x8a\xeb\x29\x4f\x9c\xae\x7c\x7f\x61\x7e\xbe\xbf\x60\xd3\x58\xf2\x24\xfe\xb7\x3b\x48\x26\x82\xf1\x30\xa4\xd9\x79\x6d\x58\x71\x58\xa9\x61\xa6\xf8\x51\x5e\xbd\x64\xf4\xd3\x31\xfb\x1c\xd3\xe6\x58\xab\xba\xca\x16\xdb\x46\xdb\x8f\x31\x15\x19\xf5\x98\x74\x14\x55\x3c\x6c\x33\xa0\xa6\x05\x9f\x5c\xdb\xf7\x66\xe2\x5b\x54\xcc\xa8\xe9\x7a\xc1\x3e\xa8\x67\x16\xf1\x6c\xc2\xa3\x86\x21\xdd\x2b\x35\x22\x9b\xaa\x6c\xa6\xc7\xa4\xb5\xbf\xbe\xcd\xb5\x68\x79\x77\x91\xd0\xeb\x24\xd6\xd4\xf4\x6d\xac\xa5\xc9\x20\x0e\x2b\x55\x98\x64\x05\x93\x93\xdc\x8d\x71\x4e\xb4\x99\x7e\x75\xd2\xc0\xb8\x36\x98\xee\x1c\x71\xaa\xf6\x95\xb7\x31\x37\x3f\x36\x66\xb7\x41\x20\x52\x93\x0d\xb5\xae\xd9\x8d\x4c\x1b\x46\xec\xca\x4e\xc0\xe6\x04\xcd\x7f\x66\xa3\x5f\x78\xf0\x18\x65\xaa\x94\xa1\x7e\x8a\x6c\xb5\xf4\xd0\x5c\xc7\x19\x11\xd2\xca\xc7\xcd\x42\x5c\x0b\x26\xbe\xa4\x9f\xd9\xe8\x8b\xca\x44\xad\x58\x16\xf0\x3c\xe0\xa1\x6e\xbd\xed\x1f\x63\xce\xa7\xf2\x72\xa3\x7a\x2e\x14\x38\xf5\x65\x6c\x33\x21\xd3\xf9\xe9\x7e\x40\x4b\x01\xdc\xb4\x8e\xc7\x4d\xab\xdb\xec\x5a\xe5\xaa\xb5\x3f\x65\xfe\x90\x4e\x5b\xdd\xfa\x69\x85\xe3\xd6\xfe\x0e\xfc\xa1\xba\x70\x75\xeb\xc2\x45\x37\xae\xd7\x1e\xa7\xad\x00\x1a\x1e\x14\x1b\x12\x3d\x9b\xe8\xff\xb4\x1d\x27\x6a\x6f\x2f\x89\xf0\x37\x67\x78\x25\x5f\xf5\x11\xec\xdf\xe2\x93\xb1\x24\xf4\xbf\x83\xeb\xc2\xc6\x97\x01\xf4\x7e\x33\x89\x31\xb6\x65\xf6\xd4\x77\x5a\x81\xbf\x94\x64\x0b\xaf\x0e\x5d\x62\x9b\x4f\x07\x3c\x39\xe0\xc9\x71\x92\x9e\x1c\xf0\x7d\x80\xef\x03\x7c\x1f\xe0\xfb\x00\xdf\x87\x83\xfb\x3e\x00\xaa\x83\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\x82\xb3\x2e\x3d\x04\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x80\x3e\x70\x85\xf2\x2a\xc6\x32\x6e\x98\xfb\xad\x81\x7e\xbc\xd4\x96\x7d\x06\xe1\xaa\xeb\xa9\x4b\x5f\x89\x49\x0f\x4b\x5a\xb6\xb8\x76\xf9\x58\x2e\xf1\x79\x33\x37\x94\x17\xa9\xca\x7b\xc6\x4a\x46\xb6\x67\x7c\x2b\x82\x64\x5e\xde\x35\x43\xda\x2e\x00\x73\xc5\x15\x51\xfb\xdc\x68\x7a\x89\xd2\x44\xa4\x50\x7d\x26\x0c\x36\x52\x88\xb4\xfd\xdf\xb8\xe4\x91\xc8\x8c\xdd\xca\xdc\x8f\x96\xe7\x2a\x88\x49\x11\xf3\x16\x22\x4e\x86\x3e\x95\x31\xad\xa7\x17\x2f\x5e\x33\x9d\xf1\x47\xdd\x8b\xc5\x83\xc8\x85\x93\xb6\xea\xf1\x30\x2e\x6e\x86\xa4\x4d\xb2\x06\xa9\x8c\xdd\xbc\xff\x49\x3f\x9b\xf1\x80\xf0\x4f\xa2\x64\x64\x64\x2b\xb2\xd8\x68\xd5\x9a\xc7\xd2\xec\x67\x64\x11\xa9\x9e\x25\x93\xb8\x85\x53\x6c\xf2\xc2\xe8\x04\xfa\x70\x7d\x1d\xa9\x84\xcb\x68\xac\xb2\xe8\x3a\x7d\x8c\xae\x4b\x19\x07\x2a\x14\xd7\x7f\xfb\x9a\xdf\xe9\x52\xb6\x36\xb1\xda\xce\xe9\x73\x78\x06\x25\x8c\x9d\x94\x8c\xd4\x55\x3e\x7a\xdf\x41\x3e\xfa\x68\x4c\x48\x47\xd0\x96\xf7\x6b\xdb\x62\xfc\x64\x8f\xa0\x31\x27\x2b\xb8\x92\x18\x74\xac\x82\xeb\x1b\xd6\xd3\xf5\x31\x2d\xf9\x90\x76\x78\x8b\xcc\x76\x12\xe2\xf2\x9b\x63\x0e\x2f\x21\x1e\xc9\x15\x1d\x10\xfe\xea\x83\x3c\x58\xe1\x0f\x41\xd1\x67\x14\x14\x8d\xe8\x2f\x44\x7f\x21\xfa\x0b\xd1\x5f\xd0\x5b\x97\xad\xa2\x41\xc6\x4f\x1c\x46\xbb\x43\xf8\x87\x7f\x72\x65\xf8\xc7\xd1\x6a\x74\xde\x3c\xdf\x7b\xd0\x07\xd1\xff\xa6\x60\xb6\x8d\x16\xa6\x8b\xd9\x73\xa4\x47\x4d\x9a\x11\x7f\x91\xff\xd6\x44\xff\xc5\x83\x62\xcc\xd8\x67\xfd\x5f\xf7\xef\x33\x1e\x93\x81\x32\x67\x41\x52\xe6\x85\xc8\xaa\x33\xca\x38\x7a\xb2\x24\x7e\x14\x6c\xe4\x13\xd8\x8e\xb4\x28\xea\xc4\xa7\x31\xbb\x4b\xb8\x94\xd6\xff\x82\x04\x1c\x9e\x18\x99\xea\xe6\xa7\x6d\x36\x7d\xaa\xe3\x81\x44\x0f\xdf\x69\x5e\x72\x9f\xb8\xee\xd3\x2d\x65\x9f\x4d\x8f\xe9\xe3\x26\xcd\x5d\xef\x58\x17\xa7\x32\x17\x19\xf9\x26\x55\x42\xf8\xcb\x8e\x3b\x4a\x57\xe6\x74\xc1\xfa\xb0\xcf\x44\x98\x0c\x37\x3b\x62\xf4\xd6\x7c\xf4\xe7\xcb\x16\xa8\xbb\x91\x75\xa8\x5b\x9d\x8e\x29\x0f\xd1\xf1\x92\x7c\xf2\xa9\xd9\xea\xea\xfd\x2b\x7a\xf7\xef\xab\xf7\xbc\x99\xc8\x22\xd1\xe9\xc9\xbc\xc8\x78\x21\xa2\x38\xb8\xea\xfe\x8e\xfe\xfb\xc5\x3e\x49\xbb\x6b\x17\x61\x86\x9c\x30\x29\xc6\xcb\xf8\x7f\xf5\x20\xd8\x50\x0d\x86\x69\x5d\xde\x95\xff\xc1\x0a\x6d\xe2\xae\xe9\xa7\xc5\x60\x73\x3e\x71\x9b\xf3\xf9\x38\x1c\xcc\x85\x53\xb8\xc5\x65\x42\x7e\x52\xe3\x01\x6d\xc3\xc8\xdf\x2e\xd9\xa8\xde\x91\xc5\xcd\xc4\xf9\xf2\x84\xde\x94\x4a\x5e\x99\xb7\xe9\x09\x32\x7a\xe7\xec\xed\xaf\xb9\x92\x77\x26\x9a\xfa\x37\xbd\x25\xda\xbf\x7f\xb8\x8d\xb2\xfa\xc7\x77\x43\xf2\x84\xe8\x3e\x6f\xbe\xa8\x2c\x20\x2a\x10\x29\x1a\x7c\xc5\xee\x2f\xa6\xfa\xdf\xee\x2f\xd8\x6d\xa3\x37\xc7\xec\x6b\x61\x4d\xf8\xa4\x60\xd8\x85\x7a\xc5\x03\x1a\x00\x8a\xc7\x4d\xe2\xc0\x1a\x25\x49\x1f\x51\xcf\x76\x6c\x4d\xbc\x6a\x2a\x54\x9a\x88\x31\x33\xdf\xa4\x30\x7c\x37\xa7\xc8\x45\xbe\x75\x20\xfc\xe7\xb7\xe9\x5e\xfd\x21\xa8\x25\xe6\x07\xa8\x25\xc3\x56\x4b\xd2\x39\xc7\xec\x63\x55\x4c\xca\xde\x0d\x5f\x69\xc2\x83\x3e\x44\x44\x5b\xd2\x79\x09\x89\x70\x52\x85\xcc\xb8\x64\x98\xce\x47\x66\x1c\x90\x68\x06\x09\xc2\xff\x02\x27\x55\x48\x43\x4b\xa5\xa1\xf2\x78\x8d\xb4\x6f\x58\xbf\x6e\x9d\x5a\x75\xcd\xd4\x13\x4f\xea\xfe\x9d\x5b\x18\x80\x71\x2c\x77\x32\xf6\xb6\x1c\xc9\x3b\x36\x5d\x9f\xe9\x41\xbc\x7e\x28\x96\x1e\xc2\x3b\x1e\x10\xa0\x92\x81\xa2\x92\x5d\x29\x97\x6e\x87\x75\x83\xbe\x77\x45\xf3\xd6\x6d\xf1\x50\x38\x17\xff\x86\xa8\x0c\x51\x19\xa2\x32\x44\xe5\x0e\xa2\x72\x6e\xdc\x28\xb7\xc9\x6b\xbf\x91\x27\x9e\xf9\x4e\x5f\xc7\xc5\x66\x3e\x79\xd6\x55\x14\x9b\x22\x36\x92\x5e\x37\x12\x38\x46\x41\xda\x1f\x94\xb4\x0f\xc7\xa8\x5e\xcf\x99\x8d\x5d\xa4\x5a\x0e\x9a\xa3\x54\x49\xe0\x28\x05\xe8\x75\x7e\xb6\x36\x38\x4a\xf5\x39\x6f\xe0\x28\x05\xcc\x09\x35\x65\x08\x6a\x0a\x1c\xa5\xda\x07\xd3\xd9\xb2\xfb\x35\x4d\x6c\x6c\xc9\x3e\x15\xa1\x11\x8e\x53\x90\x21\x97\x0c\xd3\xf9\xc8\x90\x03\x12\xd5\x20\x51\xf8\x5f\x40\x83\x20\x1d\x81\x06\x99\xfb\xf9\x57\x30\xa1\x9d\x52\x20\x9b\xb5\x45\x86\xf1\x53\x1c\x96\x3c\xa9\x5f\x88\xcf\x7d\x9e\xa6\xa5\xbd\x33\xae\xdd\xfb\xf4\xc1\xdf\x18\x35\xa2\x52\x47\x55\x06\xbf\x46\x4a\x36\x2f\x9b\xb1\x58\xe6\x85\xe0\x0d\x6b\xed\xbc\xe4\xf6\xbc\xa9\xb1\xef\x5f\x73\x57\x80\xe3\x16\xfb\xa1\xde\x74\x43\x49\x18\x3e\x3f\x09\x89\xdd\x8e\x46\xf2\x6c\x2f\xaf\x47\x0e\xdd\x13\xce\xa1\xbb\x1e\xbe\xad\xcb\x9f\xbb\xd2\x82\xd7\x03\x58\x44\xd6\x5c\x64\xcd\x45\xd6\x5c\x64\xcd\x3d\xb5\xac\xb9\xeb\x77\xde\xd6\x8c\xb9\x3b\x76\xe3\xd8\x5b\x9e\xdc\x8e\x6e\xf9\xad\x19\x61\x87\xdc\x07\x9b\x64\xc6\x5d\xdf\x07\xcb\xb3\xe2\xee\xb8\x0f\x90\x0b\x17\xb9\x70\x91\x0b\x17\xb9\x70\x91\x0b\x77\x67\xb9\x70\x3b\xec\xfe\x0b\x79\x70\x57\xde\x37\x7f\x46\x5e\x9c\xdd\x5a\x83\x5c\xbe\x47\x96\xcb\x77\xfd\x24\x5a\x95\xc7\x77\xc7\xb3\xe9\xa0\xd9\x7b\xd7\xf7\xcc\x8a\xcc\xbd\xbb\xde\x35\x86\x9a\xaf\x77\x7d\xa7\xb5\x58\xf8\xb7\x36\x67\xd9\xbf\xfe\xec\x99\x2f\xb5\x64\x5d\xda\x11\x66\xaa\xb3\x25\xe9\x0e\x40\x35\x65\x8f\xb1\x5c\xe1\xd7\xd3\x0b\x63\xba\xac\x04\x60\x12\xf2\xad\xb0\xa4\x65\xe8\x4a\xb2\x1f\x35\x34\xc2\x5a\xd9\xbd\x12\x2a\xd0\x29\xd0\xa9\xe3\xa3\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x20\x53\x47\x4f\xa6\x70\x7d\x0a\xc0\x1b\xc0\x1b\xc0\x1b\xc0\x1b\xc0\xdb\x06\xe0\x4d\xa9\x2c\x8c\x25\x55\xde\x81\xb7\xad\x48\xda\x41\x42\x3d\xe7\x46\x3b\xa2\xd4\xeb\x53\x95\xcd\xfc\xec\xe6\xcc\x58\xef\x97\xf3\xaf\x48\x14\x1f\x6b\x9d\x70\x7b\xf7\xf5\x9f\xf3\x6f\x20\xbc\x75\x43\xf8\xe4\x3b\xf1\xd8\xd1\x53\x6d\x62\xd4\xde\x7a\x53\xff\xf2\xfa\xf5\xf4\x74\x73\xdc\x4b\xaa\xa1\x13\x9a\xbd\xb2\xfb\x7a\xfa\xe3\xe6\xf6\xee\xeb\xf7\xb6\xf7\xb0\xaa\x36\x5f\x55\xae\x23\x29\x4a\xf4\x84\x16\xd7\xff\x79\xba\x79\xd5\xfa\xd2\x62\x9c\xd8\x6d\xa4\xb1\xb1\x1f\x66\x56\x48\x77\x0a\xaa\xf3\xfe\xf8\x97\xae\xc0\x8a\x55\xa1\xdf\x6e\x2e\x0b\x7a\xe3\x8b\xca\x6e\x93\xc4\x27\x52\x1f\xc4\xfa\x80\x6f\x85\xbd\xf1\xa0\x3e\xd5\x9e\x6e\xc6\x34\x60\xa7\xbd\xf0\xd6\xfb\x52\xf4\x16\xe4\xbb\xb8\x8e\xdb\x5d\x29\xe6\x17\xd6\xbc\xdb\x04\x3c\x26\xe0\x31\x01\x8f\x09\x78\x4c\xc0\x63\x02\x1e\x13\xf0\x98\x80\xc7\xc4\x26\xbb\x2d\x3c\x26\xe0\x31\x01\x8f\x09\x78\x4c\xc0\x63\x02\x1e\x13\xf0\x98\x38\x3b\x8f\x09\xb8\x14\xc0\xa5\x00\x2e\x05\xed\xb3\x09\x2e\x05\x4b\xd7\x19\x5c\x0a\x36\x77\x29\x78\xba\xb9\x96\x1e\x72\x98\x80\x5d\xfa\xfb\x3f\x2d\xe4\xc6\x1c\xf7\xfd\xc2\x1b\x53\x26\x0b\x54\xa2\xb5\x0b\x3b\x4d\xd7\x31\x1b\xf3\x52\x93\xda\x7c\xf4\x25\x78\x68\x13\x2e\x94\xd3\xf5\xa6\x7d\xd8\x9e\xcf\xc7\xf6\xdc\xed\xd6\xf6\x75\xf6\xe7\xd7\xe6\x83\xb9\x5c\x3e\x19\xb7\x4b\xfb\xb0\x13\xd0\xfd\x89\x16\xde\x37\x5a\x18\x79\x2f\x19\x1d\x60\x57\x87\x5d\x1d\x76\x75\xd8\xd5\x4f\xcd\xae\xde\xed\x54\x69\xb5\xad\xef\x2d\x4d\x0b\xb2\xe9\x74\x1e\xa8\x43\x66\xd3\xd9\x1b\x0c\xd9\x20\x7f\x4d\x2b\x0c\xd8\x5b\x8f\xfc\x5e\x57\x6b\x63\xc9\x72\xa3\x6d\xb2\x89\x98\x1a\xc9\xd9\x1b\xce\x2a\x51\xc2\xee\x5e\x34\x75\x6a\xf9\x83\xa4\x92\x57\x52\x44\x9c\x26\xa8\x55\x4c\xeb\x79\x86\x8c\x11\xdd\x2f\x0d\xab\xae\xc4\xb3\x99\x08\x63\x5e\x88\xe4\xa5\x12\x69\xab\x23\x37\x4e\x2e\xad\xe2\x49\x9d\xce\xa2\x8c\x07\xb4\x6a\x62\x15\x7a\x81\xa0\x3a\xb4\x49\x5f\x70\xb3\xb4\xcc\x75\x25\xeb\xc3\xc5\xf5\x9b\xae\x41\xf6\x23\x53\xb3\x07\xba\x22\xc6\xa6\x9e\x26\xa9\x62\x4b\x1d\xb7\x18\x66\xaa\xf3\x1d\x55\xb9\x4d\x99\x5f\xa3\xce\x0f\x65\xfa\x6f\xc2\xc1\xba\xf5\xcb\x72\x16\xb6\xb7\xe9\x0f\x2a\x06\x2a\x06\x2a\x06\x2a\x06\x2a\xb6\x33\x2a\xd6\xf1\x2c\x58\x20\x63\xfb\x3b\x16\x3f\xd5\xae\x2e\x4c\xc9\x56\xeb\xb7\xa0\xbb\x4c\xa5\x3c\x22\xe9\xe8\x4e\x25\x71\xf0\xd2\xb0\x83\xb9\x49\x57\xdd\x7d\xa8\xa7\xdd\xcd\xf8\x1f\x63\xf6\xc3\xec\x67\x46\x74\x49\x85\xd4\x8b\xa5\x3a\x53\x05\x53\x59\xfa\xc0\xa5\xb3\xcb\x65\xa5\xb8\x9e\xf2\xc4\xe9\xca\xf7\x17\xe6\xe7\xfb\x0b\x36\x8d\x25\x4f\xe2\x7f\xbb\x83\x64\x22\x18\x0f\x43\x9a\x9d\xd7\xc6\x8e\x1e\x56\x6a\x98\x29\x7e\x94\x57\x2f\x19\xfd\x74\xcc\x3e\xc7\xb4\x39\xd6\xaa\xae\xb2\xc5\xb6\xd1\xf6\x63\x4c\x45\x46\x3d\x26\x1d\x45\x15\x0f\xdb\x0c\xa8\x69\xc1\x27\xd7\xf6\xbd\x99\xf8\x16\x15\x33\x6a\xba\x5e\xb0\x0f\xea\x99\x45\x3c\x9b\xf0\xa8\x61\x25\xf7\x4a\x8d\xc8\xa6\x2a\x9b\xe9\x31\x69\xed\xaf\x6f\x73\x2d\x5a\xde\x5d\x24\xf4\x3a\x89\x35\x35\x7d\x1b\x6b\x69\x32\x88\xc3\x4a\x15\x26\x59\xc1\x64\xe6\x76\x63\x9c\x53\x70\x1f\xfd\xea\xa4\x81\x71\x6d\x30\xdd\x39\xe2\x54\xed\x2b\x6f\x63\x6e\x7e\x6c\xcc\x6e\x83\x40\xa4\x26\x33\x67\x5d\xb3\x1b\x99\x36\x8c\xd8\x95\x9d\x80\xcd\x09\x9a\xff\xcc\x46\xbf\xf0\xe0\x31\xca\x54\x29\x43\xfd\x14\xd9\x6a\xe9\xa1\xb9\x8e\x33\x22\xa4\x95\x8f\x9b\x85\xb8\x16\x4c\x7c\x49\x3f\xb3\xd1\x17\x95\x89\x5a\xb1\x2c\xe0\x79\xc0\x43\xdd\x7a\xdb\x3f\xc6\x9c\x4f\xe5\xe5\x46\xf5\x5c\x28\x70\xea\xcb\xd8\x66\x42\xa6\xf3\xd3\xfd\x80\x96\x02\x20\xec\xe3\x41\xd8\xdd\x66\xd7\x2a\x8c\xbd\x3f\x65\xfe\x90\x40\xbb\x5b\x3f\xad\x80\xda\xfb\x3b\xf0\x87\x8a\xb7\xbb\x75\xe1\x22\xe2\x7e\xed\x71\xda\x4a\x97\x11\xba\xba\x21\xd1\xb3\xd9\xe8\xbb\xa1\xbc\x93\x0c\x9c\x33\xc7\x77\x25\x5a\x1d\x4d\x10\xdd\xe0\x03\x69\xe1\x88\x01\x47\x8c\x53\x72\xc4\x80\xeb\x02\x5c\x17\xe0\xba\x00\xd7\x05\xb8\x2e\x1c\xdc\x75\x01\x4c\x1c\x98\x14\x98\x14\x98\x14\x98\x14\x98\x14\x98\x14\x98\x74\xe9\x21\x00\x72\x01\x72\x01\x72\x01\x72\x01\x72\x81\x4b\x05\x57\x21\x12\x5c\x2a\x78\x8e\x97\x0a\x5a\x09\x89\x32\x34\xe8\xcd\x44\x8f\x0e\xcb\x03\x95\x8a\x4b\x96\x97\x01\x1d\x53\xb4\xbb\x0b\x3e\x33\x5b\x53\x9a\x29\x92\xc8\xda\x22\x7c\x57\xe7\x6b\x20\x12\xd2\xfc\x19\x49\x1b\xd6\xb5\xc6\xfe\xf5\x67\x35\xc8\x2a\xef\x99\x7a\x19\xed\x84\xf1\xb5\x80\xcb\x3c\xd8\x3b\xe2\xda\x2e\xbc\x73\xc5\xd4\xd9\xc1\x3e\xd8\x4b\xa8\x27\xc2\x8d\xea\x03\x3e\xd8\x70\x23\xb2\x39\xfc\xc6\x25\x8f\x44\x66\xac\x67\x66\x7b\xcc\x73\x15\xc4\xa4\x0e\x7a\x3b\x15\x27\x73\xa3\xca\x98\x90\x85\x16\x57\x9d\x7e\x3c\xe3\x8f\xba\x17\x8b\x07\x91\x0b\x27\xf3\xd5\x83\x6a\x5c\xf0\x0d\xc9\xbc\x64\x93\x52\x19\xbb\x79\xff\x93\x7e\x36\xe3\x01\x41\xa8\x44\xc9\xc8\x48\x78\x64\x37\xd2\x0a\x3e\x8f\xa5\xd9\x93\xc8\x2e\x53\x3d\x4b\x86\x79\x8b\xc8\xd8\xe4\x85\xd1\x01\xf9\xe1\xfa\x3a\x52\x09\x97\xd1\x58\x65\xd1\x75\xfa\x18\x5d\x97\x32\x0e\x54\x28\xae\xff\xf6\x35\xbf\xd3\xa5\x6c\x6d\xe8\xb5\x9d\xd3\xe7\xf0\x0c\x4a\x24\x3c\x46\x49\xad\xab\x94\xf6\xbe\x83\x94\xf6\xd1\xd8\xab\x86\x53\xe5\xf7\x6b\xab\x6c\x5c\x67\x87\x53\xe7\x53\x14\x86\x49\xf4\x18\xb8\x30\xfc\x86\xf5\x72\xeb\x8b\xf9\xa7\xff\xec\xe9\xf2\x97\xf5\xa2\x57\xdb\x85\x2f\x07\x13\xbd\x8e\xe4\x66\x0d\x88\x5b\xf5\x41\x1e\xac\xb8\x85\x58\xe6\x33\x8a\x65\x46\xd0\x16\x82\xb6\x10\xb4\x85\xa0\x2d\x68\x8a\xcb\x56\xd1\x20\xc3\x1e\x0e\xa3\x81\x21\x6a\x63\x85\x32\x66\xd5\x91\x81\xab\x63\xde\x6c\xdd\x7b\xac\x06\x71\xfd\xa6\xe8\xb5\x4e\x89\xd2\xaf\xec\x3a\x40\xa3\x26\x8c\x88\xbf\xc8\xed\x6a\xa2\xff\xe2\x41\x31\x66\xec\xb3\xfe\xaf\xfb\xf7\x19\x8f\xc9\xa2\x97\xb3\x20\x29\xf3\x42\x64\xd5\x11\x63\xfc\x33\x59\x12\x3f\x0a\x36\xf2\x75\x1c\x69\x49\xd2\x49\x3f\x63\x76\x97\x70\x29\xad\xdb\x04\xc9\x27\x3c\x31\x22\xd1\xcd\x4f\xdb\xec\xd9\x54\xc7\x03\x49\x0e\xbe\xd3\xbc\xe0\x3d\x71\xdd\xa7\x5b\xca\x3e\x9b\x1e\xd3\xa7\x45\x9a\xbb\xde\xb1\x9e\x49\x65\x2e\x32\x72\x29\xaa\x64\xe8\x97\x1d\x77\x94\xae\xcc\xe9\xf2\xf0\x61\x1f\x69\xb0\xca\xcd\x1f\x04\x7a\x67\x3d\x96\x53\x60\x0b\x42\x4d\xec\xc5\xda\x47\x5a\x3e\xdd\x05\x3c\x0f\x85\x39\x03\xb6\x1f\x1d\x6c\x27\xc7\x9d\xad\x52\x22\x5f\xd1\xbb\x7f\x5f\xbd\x43\xcf\x44\x16\x89\x4e\x4f\xe6\x45\xc6\x0b\x11\xc5\xc1\x55\xf7\x77\xf4\xdf\x2f\xf6\x49\x3a\x0b\xba\xc8\x55\xe4\xe9\x49\x81\x64\xc6\xc9\x6c\x43\x19\x8b\xbe\x36\x10\x3b\xf5\xae\x5c\x04\x56\xe8\x25\x77\x4d\x4f\x2f\x06\xeb\xf5\x89\x5b\xaf\xcf\xc7\x59\x60\x2e\x20\xc3\x2d\x2e\x13\x34\x94\x1a\x1f\x6a\x1b\x88\xfe\x76\xc9\x2e\xf4\x8e\x6c\x77\x26\x52\x98\x27\xf4\xa6\x54\xf2\xca\xbc\x4d\x4f\x90\xf9\x3c\x67\x6f\x7f\xcd\x95\xbc\x33\xf1\xd8\xbf\xe9\xfd\xce\xfe\xfd\xc3\xed\x82\xd5\x3f\xbe\x1b\x92\x17\x43\xf7\x79\xf3\x45\x65\x01\xf1\x85\x48\xd1\xe0\x2b\x76\x7f\x31\xd5\xff\x76\x7f\xc1\x6e\x1b\xbd\x39\x66\x5f\x0b\x0b\x03\x48\xd7\xb1\x0b\xf5\x8a\x07\x34\x00\x14\xd1\x9b\xc4\x81\x35\x6f\x92\x6a\xa4\x9e\xed\xd8\x9a\x88\xd7\x54\xa8\x34\x11\x63\x66\xbe\x49\x81\xfc\x6e\x4e\x91\x93\x7d\xeb\x40\xf8\xcf\x6f\xd3\xbd\xfa\x43\xd0\x90\xcc\x0f\xd0\x90\x0e\xad\x21\xa5\x73\xce\xdb\x03\xd7\x91\xca\xde\x2d\x65\x69\xc2\x83\x4d\x05\x39\xfb\xd6\x89\x8b\x72\xf0\xf6\x84\x00\x77\x2e\x02\xdc\x80\xe4\x24\x1c\xe7\xfe\x17\x78\x7b\x9e\x83\x04\x52\x0e\xde\x46\xfb\x86\x75\x75\x9c\xa4\x68\xb6\x96\xec\x78\xbd\x23\x3e\x1b\xe2\x2f\xc3\xf8\x29\x0e\x4b\x9e\xd4\xa3\x27\xb9\xbf\xd4\x83\xda\x3a\xae\x39\x06\x7d\xf0\x2e\x45\x23\x2a\x61\x54\x5d\xed\xd4\xb8\xab\xc7\x0b\x3c\x2c\x96\x79\x21\x78\xc3\xf4\x38\x2f\x0e\x3d\x2f\xda\xb5\x7c\x80\xdc\x17\x95\xdd\x26\x89\x97\x8d\xf2\x8b\x01\x6c\x6a\x4b\x5f\x38\xaf\xa8\xc6\x15\xa6\x3a\x0a\xca\xfd\xfc\x24\xe4\x59\x07\x38\xd2\x20\x9e\x7a\x94\x23\x6e\x4d\x3c\xe1\x5b\x13\xd7\x23\xa2\x75\x37\x26\x6e\x9f\x6b\xb6\x1b\xfe\xc2\x3d\x89\xb8\x27\x11\xf7\x24\xe2\x9e\xc4\x53\xbb\x27\x71\xfd\xce\xdb\x7a\x47\xe2\x8e\x9d\x0d\xf6\x76\x33\xe2\xfa\xe6\x2f\xbf\x15\x71\xc8\x7d\xb0\xc9\x5d\x88\xeb\xfb\x60\xf9\x3d\x88\x3b\xee\x03\xdc\x7e\x88\xdb\x0f\x71\xfb\x21\x6e\x3f\xc4\xed\x87\x3b\xbb\xfd\xb0\xc3\xee\xbf\x70\xf3\xe1\xca\x48\xc3\x33\xf2\x35\xec\xd6\x1a\xdc\xde\x78\x64\xb7\x37\xae\x9f\x44\xab\x6e\x6e\xdc\xf1\x6c\x3a\xe8\x7d\x8d\xeb\x7b\x66\xc5\x5d\x8d\xbb\xde\x35\x86\x7a\x43\xe3\xfa\x4e\x6b\xb1\xe1\x6f\x6d\xce\xb2\x7f\xfd\xb9\x29\x0b\x5a\x79\x95\xc6\x39\x23\xa2\x39\x7f\x99\x7f\xcd\xd9\xd9\x01\x87\x00\x87\x18\xe0\x90\x7d\x12\x70\x08\x70\x08\x70\x08\x70\x08\x70\x08\x70\x08\x70\x08\x70\x68\x70\x60\x04\x70\x08\x70\x08\x70\x08\x70\x08\x70\x08\x70\x08\x70\xe8\x18\xe1\x10\x6e\xe0\x00\x15\x03\x15\x03\x15\x03\x15\x03\x15\x3b\x2c\x15\x6b\xb9\x60\x7e\x47\x70\xac\x4e\xc4\xa4\x3b\xf7\xd5\x94\x3d\xc6\x32\xec\x91\x8c\x5d\x56\x32\x3e\xe9\x31\x56\x1e\xd4\x6a\x42\xa5\xbc\x8c\x1a\x4a\x6f\xad\xec\xd7\x71\x35\x30\x35\x30\xb5\xa3\x62\x6a\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xe0\x69\xc7\xc2\xd3\x70\x39\x3f\xd0\x20\xd0\x20\xd0\x20\xd0\x20\xd0\x20\xd0\x60\x07\x34\x38\x11\x05\xbf\xb9\xde\x8a\xfa\x1d\xe4\x1a\xd4\xb9\x51\x8f\x44\xd1\x94\xd6\xcd\x00\xaf\x80\x77\x91\x28\x9a\xe8\x8e\x7a\xe0\xf6\xee\xeb\xf7\xb6\x97\x71\x05\xec\x86\x4c\xad\xd6\x91\x14\x5c\x78\x5a\x60\x8d\xe6\x4a\xed\xed\x37\xf5\x1a\x74\x5f\x6e\x7b\x88\x43\x35\x86\x9e\xcc\x0a\x1a\x4e\x93\x68\x50\xf6\x15\x8b\x44\xbf\xdd\xb2\x4a\xe8\x35\x5c\x2e\x3a\xdf\xf5\x83\x59\x97\xf3\xf7\x1c\xd3\xa0\x8d\xab\x48\xdf\xd3\x5e\x8c\xeb\x51\xf7\xe0\x22\x47\xe7\x9a\x00\xdc\x0d\xdc\x0d\xdc\x0d\xdc\x0d\xdc\x0d\xdc\x0d\xdc\x0d\xdc\xbd\x7e\xb7\x05\xee\x06\xee\x06\xee\x06\xee\x06\xee\x06\xee\x06\xee\x3e\x3b\xdc\x0d\x54\x0a\x54\x0a\x54\xda\x3e\x9b\x80\x4a\x97\xae\x33\xa0\xd2\xed\x51\x69\xe7\xab\x45\xcd\x99\xdf\x2f\xd5\x31\x65\xb2\x40\x25\x5a\xc5\xb0\x73\x75\x1d\xcc\x31\x2f\xb5\xe0\x9c\x8f\xbe\x98\x1e\xd2\xe8\xc2\x0a\x7d\x3e\x56\xe8\x6e\xb9\x5a\xd7\x59\xa2\x5f\x9b\x82\xfd\x72\xf9\x64\xdc\x2e\xa7\xf3\x4e\x80\xf8\x27\x5a\x7d\xdf\x68\x61\xe4\xbd\xe4\x71\x86\x85\x1d\x16\x76\x58\xd8\x61\x61\x3f\x35\x0b\x7b\xb7\x53\xa5\xd5\xca\xbe\xb7\xe4\xec\xc8\xa1\xdf\x79\xa0\x0e\x99\x43\x7f\x6f\x58\x64\x83\xac\xf5\xad\x58\x60\x6f\x3d\xf2\x7b\x5d\xc1\x8d\x25\xcb\x8d\xde\xc9\x26\x62\x6a\x24\x67\x6f\x42\xab\x44\x09\xbb\x7b\xd1\xd4\x29\x85\x39\x1c\x26\x5a\xb5\x93\x57\x52\x44\x9c\x26\xa8\x55\x51\xb5\x36\xed\x4e\x50\x63\x4e\xf7\x4b\xc3\xea\x2c\xf1\x6c\x26\xc2\x98\x17\x22\x79\xa9\x44\xda\xea\xc8\x8d\x93\x4b\xab\x82\x52\xa7\xb3\x28\xe3\x01\xad\x9a\x58\x85\x5e\x20\xa8\x0e\x6d\xd2\x17\xdc\x2c\x2d\x73\x5d\xc9\xfa\x70\x71\xfd\xa6\x6b\x90\xfd\xc8\xd4\xec\x81\xae\x88\xb1\xa9\xe7\x4c\x70\xd9\x5a\xc7\x2d\x86\x99\xea\x7c\x47\x55\x6e\x53\xeb\xd7\x28\xf6\x43\x99\xfe\x9b\x10\xb1\x6e\xfd\xb2\x9c\x8a\xed\x6d\xfa\x83\x8f\x81\x8f\x81\x8f\x81\x8f\x81\x8f\xed\x8c\x8f\x75\x3c\x0b\x16\x18\xd9\xfe\x8e\xc5\x4f\xb5\x4b\xe5\x52\x32\xd8\xfa\x2d\xe8\x2e\x53\x29\x8f\x48\x3a\xba\x53\x49\x1c\xbc\x34\xec\x60\x6e\xd2\x55\xb7\xd2\xe9\x69\x77\x33\xfe\xc7\x98\xfd\x30\xfb\x99\x11\x5d\x52\x21\xf5\x62\xa9\xce\x54\xc1\x54\x96\x3e\x70\xe9\xec\x72\x59\x29\xae\xa7\x3c\x71\xba\xf2\xfd\x85\xf9\xf9\xfe\x82\x4d\x63\xc9\x93\xf8\xdf\xee\x20\x99\x08\xc6\xc3\x90\x66\xe7\xb5\xb1\xa8\x87\x95\x1a\x66\x8a\x1f\xe5\xd5\x4b\x46\x3f\x1d\xb3\xcf\x31\x6d\x8e\xb5\xaa\xab\x6c\xb1\x6d\xb4\xfd\x18\x53\x91\x51\x8f\x49\x47\x51\xc5\xc3\x36\x03\x6a\x5a\xf0\xc9\xb5\x7d\x6f\x26\xbe\x45\xc5\x8c\x9a\xae\x17\xec\x83\x7a\x66\x11\xcf\x26\x3c\x6a\x98\xca\xbd\x52\x23\xb2\xa9\xca\x66\x7a\x4c\x5a\xfb\xeb\xdb\x5c\x8b\x96\x77\x17\x09\xbd\x4e\x62\x4d\x4d\xdf\xc6\x5a\x9a\x0c\xe2\xb0\x52\x85\x49\x56\x20\xe3\x84\x1f\x63\x7d\x58\xdb\x93\xd4\x49\x03\xe3\xda\x60\xba\x73\xc4\xa9\xda\x57\xde\xc6\xdc\xfc\xd8\x98\xdd\x06\x81\x48\x0b\x3a\x9b\xea\x9a\xdd\xc8\xb4\x61\xc4\xae\xec\x04\x6c\x4e\xd0\xfc\x67\x36\xfa\x85\x07\x8f\x51\xa6\x4a\x19\xea\xa7\xc8\x56\x4b\x0f\xcd\x75\x9c\x11\x21\xad\x7c\xdc\x2c\xc4\xb5\x60\xe2\x4b\xfa\x99\x8d\xbe\xa8\x4c\xd4\x8a\x65\x01\xcf\x03\x1e\xea\xd6\xdb\xfe\x31\xe6\x7c\x2a\x2f\x37\xaa\xe7\x42\x81\x53\x5f\xc6\x36\x13\x32\x9d\x9f\xee\x07\xb4\x14\x00\x66\x1f\x0f\xcc\xee\x36\xbb\x56\x01\xed\xfd\x29\xf3\x87\x44\xdb\xdd\xfa\x69\x05\xde\xde\xdf\x81\x3f\x54\xd0\xdd\xad\x0b\x17\x61\xf7\x6b\x8f\xd3\x56\xc4\x8c\x10\xd7\x0d\x89\xde\x8f\x82\x17\x65\x57\x94\x77\xba\xc1\x74\xe6\x0c\xaf\xe4\xab\xe3\x0a\xac\x3b\x8e\x80\x5b\xf8\x65\xc0\x2f\xe3\x94\xfc\x32\xe0\xc9\x00\x4f\x06\x78\x32\xc0\x93\x01\x9e\x0c\x07\xf7\x64\x00\x22\x07\x35\x05\x35\x05\x35\x05\x35\x05\x35\x05\x35\x05\x35\x5d\x7a\x08\x00\x64\x00\x64\x00\x64\x00\x64\x00\x64\xe0\xf2\xc1\x55\xc4\x04\x97\x0f\xda\x27\xcf\xf9\xf2\x41\x5c\x5a\x3f\xf0\x9b\x18\xec\x5f\x7f\x56\x83\xac\xf2\x9e\x49\x98\x51\x56\x18\x5f\x0b\xbd\xcc\x83\xbb\xc1\x5e\xdb\x45\x80\xae\x98\x3f\xbb\xda\x1b\x7b\x09\x09\x45\x58\x52\x7d\xd4\x07\x1b\x96\x44\xc6\x88\xdf\xb8\xe4\x91\xc8\x8c\x59\xcd\x6c\x94\x79\xae\x82\x98\xf4\x44\x6f\xc0\xe2\x64\x87\x54\x19\x13\xb2\xd0\x72\xac\x53\x9c\x67\xfc\x51\xf7\x62\xf1\x20\x72\xe1\x84\xc1\x7a\xf0\x8d\x0b\xd2\x21\x61\x98\x8c\x55\x2a\x63\x37\xef\x7f\xd2\xcf\x66\x3c\x20\x3a\x95\x28\x19\x19\xd1\x8f\x0c\x4a\x5a\xf3\xe7\xb1\x34\xbb\x13\x19\x6c\xaa\x67\xc9\x62\x6f\xd9\x19\x9b\xbc\x30\x3a\x34\x3f\x5c\x5f\x47\x2a\xe1\x32\x1a\xab\x2c\xba\x4e\x1f\xa3\xeb\x52\xc6\x81\x0a\xc5\xf5\xdf\xbe\xe6\x77\xba\x94\xad\x2d\xc0\xb6\x73\xfa\x1c\x9e\x41\xc9\x8a\x47\x2b\xc2\x75\x15\xdf\xde\x77\x10\xdf\x3e\x1a\x6b\xd6\xc0\xea\xfd\x7e\x6d\xbd\x8d\xb3\xed\xc0\x2a\x7e\xb2\xf2\x32\x09\x26\xc7\x20\x2f\xbf\x61\xfd\x5d\x20\xd3\x92\x85\x7f\x87\xf7\xc8\xac\x17\xd1\x96\xde\x1d\x73\x30\x11\xed\x48\x2e\xe9\x80\x44\x56\x1f\xe4\xc1\x4a\x64\x08\x8b\x3e\xa3\xb0\x68\xc4\x7f\x21\xfe\x0b\xf1\x5f\x88\xff\x82\x32\xb9\x6c\x15\x0d\x32\x82\xe2\x30\xaa\x19\x02\x40\xfc\x93\x2b\x03\x40\x8e\x42\x45\xf3\xd6\xee\xde\xc3\x3e\xc8\x3b\xa0\x29\x84\xad\xd3\xa9\xf4\x2b\x7b\x89\xf5\xa8\xc9\x26\xe2\x2f\xf2\xe0\x9a\xe8\xbf\x78\x50\x8c\x19\xfb\xac\xff\xeb\xfe\x7d\xc6\x63\xb2\x01\xe6\x2c\x48\xca\xbc\x10\x59\x75\xe2\x18\x57\x4f\x96\xc4\x8f\x82\x8d\x7c\x1d\x47\x5a\xb0\x74\xc2\xd0\x98\xdd\x25\x5c\x4a\xeb\x81\x41\xe2\x0a\x4f\x8c\x84\x74\xf3\xd3\x36\x5b\x38\xd5\xf1\x40\x82\x84\xef\x34\x2f\x87\x4f\x5c\xf7\xe9\x96\xb2\xcf\xa6\xc7\xf4\xe1\x91\xe6\xae\x77\xac\x93\x53\x99\x8b\x8c\xbc\x93\x2a\x91\xfa\x65\xc7\x1d\xa5\x2b\x73\xba\x68\x7d\xd8\x27\x1c\xac\x77\xcb\x0f\x07\xbd\xd1\x1e\xd5\xc9\xb0\x05\xec\x46\xb2\x79\x70\xfb\xc3\x71\x7b\x72\x09\xda\x2a\x51\xf3\x15\xbd\xfb\xf7\xd5\x1b\xf6\x4c\x64\x91\xe8\xf4\x64\x5e\x64\xbc\x10\x51\x1c\x5c\x75\x7f\x47\xff\xfd\x62\x9f\xa4\xa3\xa1\x8b\xac\x45\x3e\xa4\x14\xa2\x66\xdc\xd7\x36\x94\xbb\xe8\x6b\x43\x32\x65\xef\xca\xdb\x60\x85\xea\x72\xd7\x74\x24\x63\x30\x70\x9f\xb8\x81\xfb\x7c\x5c\x0e\xe6\xe2\x3d\xdc\xe2\x32\x31\x49\xa9\x71\xd1\xb6\x71\xee\x6f\x97\x6c\x45\xef\xc8\xbc\x67\x02\x91\x79\x42\x6f\x4a\x25\xaf\xcc\xdb\xf4\x04\x59\xd8\x73\xf6\xf6\xd7\x5c\xc9\x3b\x13\xee\xfd\x9b\xde\xf4\xec\xdf\x3f\xdc\x56\x58\xfd\xe3\xbb\x21\xf9\x42\x74\x9f\x37\x5f\x54\x16\x10\x82\x88\x14\x0d\xbe\x62\xf7\x17\x53\xfd\x6f\xf7\x17\xec\xb6\xd1\x9b\x63\xf6\xb5\xb0\xbc\x80\xf4\x1f\xbb\x50\xaf\x78\x40\x03\x40\x01\xc3\x49\x1c\x58\x0b\x28\xa9\x4b\xea\xd9\x8e\xad\x09\xa8\x4d\x85\x4a\x13\x31\x66\xe6\x9b\x74\x4f\x80\x9b\x53\xe4\xc3\xdf\x3a\x10\xfe\xf3\xdb\x74\xaf\xfe\x10\xb4\x26\xf3\x03\xb4\xa6\xe1\x68\x4d\xe9\x9c\x97\xf8\x31\xe8\x4d\x65\xef\x16\xb5\x34\xe1\xc1\xa6\xc2\x9d\x7d\xeb\x1c\xc4\x3b\x38\x93\x42\xb2\x3b\x2b\xc9\x6e\x40\x02\x14\xce\x79\xff\x0b\x9c\x49\xcf\x50\x3e\x29\x8f\xc3\xaa\xfb\x86\x6d\xe4\x92\x49\xe1\x75\x2d\x29\xfc\x7a\xa7\x85\xf6\xce\x01\x19\xc6\x4f\x71\x58\xf2\xa4\x1e\xce\xc9\xfd\x2d\x23\xd4\xea\x71\xcd\xdb\xe8\x83\xf7\x53\x1a\x51\x09\xa3\xea\xae\xa9\xc6\xe5\x41\x5e\x26\x62\xb1\xcc\x0b\xc1\x1b\x16\xcb\x79\x89\xe9\x79\x89\x39\xcc\x47\xec\x7d\x51\xd9\x6d\x92\x78\xf1\x29\xbf\x18\xc0\x96\xb7\xf4\x85\xf3\x8a\xb5\x5c\x61\xe1\xa3\x50\xe1\xcf\x4f\x42\x22\xe2\x92\x46\xf2\x2c\xc2\x2e\x71\xab\xe3\x09\xdf\xea\xb8\x1e\x34\xad\xbb\xd1\x71\xfb\x24\xb9\xdd\x20\x1a\xee\x71\xc4\x3d\x8e\xb8\xc7\x11\xf7\x38\x9e\xda\x3d\x8e\xeb\x77\xde\xd6\x3b\x1c\x77\xec\xb2\xb0\xb7\x9b\x1b\xd7\x37\x7f\xf9\xad\x8d\x43\xee\x83\x4d\xee\x6a\x5c\xdf\x07\xcb\xef\x69\xdc\x71\x1f\xe0\x76\x46\xdc\xce\x88\xdb\x19\x71\x3b\x23\x6e\x67\xdc\xd9\xed\x8c\x1d\x76\xff\x85\x9b\x19\x57\x46\x33\x9e\x91\xc7\x62\xb7\xd6\xe0\x76\xc9\x23\xbb\x5d\x72\xfd\x24\x5a\x75\xb3\xe4\x8e\x67\xd3\x41\xef\x93\x5c\xdf\x33\x2b\xee\x92\xdc\xf5\xae\x31\xd4\x1b\x24\xd7\x77\x5a\x8b\x35\x7f\x6b\x73\x96\xfd\xeb\xcf\xad\xf8\xd0\xca\x8b\x3b\xce\x1e\x1b\xcd\xb9\xd9\xfc\x6b\xce\xec\x0e\x60\x04\x60\xc4\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\xe6\xb6\xdb\x01\xc2\x12\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\x23\x00\xa3\x63\x04\x46\xb8\xdb\x03\xa4\x0c\xa4\x0c\xa4\x0c\xa4\x0c\xa4\x6c\x00\xa4\xac\xe5\x8a\xfb\x1d\x01\xb3\x3a\x25\x93\xee\xf0\x57\x53\xf6\x18\xcb\xb0\x47\x5a\x76\x59\x09\xfa\xa4\xcc\x58\xa1\x50\xeb\x0a\x95\x06\x33\x6a\x68\xbe\xb5\xb2\x7b\x60\x6d\xe0\x6c\xe0\x6c\xc7\xc7\xd9\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\xc0\xd8\x8e\x8a\xb1\x21\x15\x00\x70\x21\x70\x21\x70\x21\x70\x21\x70\x21\x70\x61\x03\x17\x86\x71\x1e\x28\x2d\x91\x38\x56\xb8\x15\xf9\x3b\xc8\x5d\xaa\x73\x43\x1d\x51\xd6\xce\xa9\xca\x66\x7e\x6a\x73\x66\x58\xc4\x72\x86\x17\x89\xe2\x93\xeb\x81\xdb\xbb\xaf\xff\x9c\x7f\x1c\x97\xc7\x6e\xc8\xd1\x7c\x27\x1e\x39\x45\xf3\xeb\xa2\xf6\xca\x9b\xfa\x67\xd7\x2c\x23\x87\xdc\x8f\x7a\x39\x35\x34\x5e\xb3\x49\x76\x5c\x4b\x16\x85\xdf\xde\x7d\xfd\xde\xf6\x26\x96\xd5\xe6\xcb\xca\x75\x24\xc5\xee\x9e\xca\xea\x6a\x01\xd4\xdb\xac\x32\x21\xc3\x54\xc5\xb2\xc8\x93\x38\xd8\x71\xb4\xb7\xb1\x95\x66\x56\x56\x77\xca\xb8\xf3\x5b\xf9\x6c\x2b\xf2\x43\x57\x64\xc5\x5a\xd1\xa5\xcc\x2f\x96\xc6\xbb\xb8\xde\x77\x7e\x1c\x06\xb3\x4c\xc7\xd5\x34\x74\xf7\x8f\x37\x86\xee\xd4\x17\xe8\x7a\x0f\x92\xbe\x82\xb4\xe7\xd7\x7b\xbb\xf7\xc8\xb2\x35\x07\x2f\x12\x78\x91\xc0\x8b\x04\x5e\x24\xf0\x22\x81\x17\x09\xbc\x48\xe0\x45\x02\x2f\x92\x43\xf7\x01\xbc\x48\xe0\x45\x02\x2f\x12\x78\x91\xc0\x8b\x04\x5e\x24\xc7\xe7\x45\x02\x0f\x04\x78\x20\xc0\x03\xa1\x7d\x36\xc1\x03\x61\xe9\x3a\x83\x07\xc2\x86\x1e\x08\x0e\xea\x2c\x89\x53\x5e\xce\x7a\xcc\xc1\xdf\x2f\xee\x31\x65\xb2\x40\x25\x5a\xcf\xb0\x13\xb6\x2b\xe5\x31\x2f\xcf\x73\x9e\x8f\xbe\xac\x2a\x52\x78\x69\x89\x5d\x93\x60\xc3\x2e\x7d\x3e\x76\xe9\x6e\x49\x96\xd7\xd9\xa6\xd7\x2c\xe7\xd7\xe4\xc2\xde\x2e\x23\xfb\x4e\xc0\xf9\x27\x5a\x82\xdf\x68\x61\xe4\xbd\x24\x60\x87\xcd\x1d\x36\x77\xd8\xdc\x61\x73\x3f\x35\x9b\x7b\xb7\x53\xa5\xd5\xee\xfe\xca\xb4\xfd\xdd\xf7\x5e\xd2\x0c\xad\xb5\xe1\x92\x52\x2e\x04\x7a\x46\x99\x79\xd0\x68\x5b\x5d\x8e\x98\x08\x96\xea\xde\xca\xb5\x62\xce\x6e\x25\x8b\xa5\xd9\x59\x54\xc6\x4a\xe9\x37\xa7\x90\x85\xd9\xcb\xf7\x52\xb2\x30\xce\xb4\x7c\xf6\x24\xfc\x8c\x27\x6d\x4d\x32\x2e\xed\x92\x77\x73\xc3\x76\x30\x9b\x96\x19\xad\xb2\x34\x53\x81\x96\x1b\x8c\x42\x5b\xb3\x87\x8e\xd9\x1f\xf4\x45\x1a\x2d\x9a\x3b\x5a\x9b\xbd\x4d\x92\x0f\x64\xa2\x09\xf5\x2e\x5d\x4a\x3d\xf0\x5a\x43\x70\x53\xd2\x16\xb7\x98\x3f\xbf\xc3\x40\x99\xb6\x1c\x66\x98\xf6\x06\x4a\xba\x75\xc5\x72\x58\xb2\xb7\x1e\xf9\xbd\xae\xf2\xc6\x92\xe5\x46\x13\x65\x13\x31\x35\x92\xb3\x37\xaa\x55\xa2\x84\xdd\xbd\x68\xea\x94\xc2\x1c\x0e\x13\xad\xec\xc9\x2b\x29\x22\x4e\x13\xd4\x2a\xad\x5a\xbf\x76\x27\xa8\x31\xb0\xfb\xa5\x61\x15\x98\x78\x36\x13\x61\xcc\x0b\x91\xbc\x54\x22\x6d\x75\xe4\xc6\xc9\xa5\x55\x4a\xa9\xd3\x59\x94\xf1\x80\x56\x4d\xac\x42\x2f\x10\x54\x87\x36\xe9\x0b\x6e\x96\x96\xb9\xae\x64\x7d\xb8\xb8\x7e\xd3\x35\xc8\x7e\x64\x6a\xf6\x40\x57\xc4\xd8\xd4\x73\x26\xb8\x6c\xad\xe3\x16\xc3\x4c\x75\xbe\xa3\x2a\xb7\x29\xfa\x6b\x54\xfd\xa1\x4c\xff\x4d\x18\x59\xb7\x7e\x59\xce\xc9\xf6\x36\xfd\x41\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x76\x46\xcc\x3a\x9e\x05\x0b\xd4\x6c\x7f\xc7\xe2\xa7\xda\x65\x8e\x29\xdd\x36\xe9\xb7\xa0\xbb\x4c\xa5\x3c\x22\xe9\xe8\x4e\x25\x71\xf0\xd2\xb0\x83\xb9\x49\x57\xdd\x06\xa9\xa7\xdd\xcd\xf8\x1f\x63\xf6\xc3\xec\x67\x46\x74\x49\x85\xd4\x8b\xa5\x3a\x53\x05\x53\x59\xfa\xc0\xa5\xb3\xcb\x65\xa5\xb8\x9e\xf2\xc4\xe9\xca\xf7\x17\xe6\xe7\xfb\x0b\x36\x8d\x25\x4f\xe2\x7f\xbb\x83\x64\x22\x18\x0f\x43\x9a\x9d\xd7\xc6\xc6\x1e\x56\x6a\x98\x29\x7e\x94\x57\x2f\x19\xfd\x74\xcc\x3e\xc7\xb4\x39\xd6\xaa\xae\xb2\xc5\xb6\xd1\xf6\x63\x4c\x45\x46\x3d\x26\x1d\x45\x15\x0f\xdb\x0c\xa8\x69\xc1\x27\xd7\xf6\xbd\x99\xf8\x16\x15\x33\x6a\xba\x5e\xb0\x0f\xea\x99\x45\x3c\x9b\xf0\xa8\x61\x37\xf7\x4a\x8d\xc8\xa6\x2a\x9b\xe9\x31\x69\xed\xaf\x6f\x73\x2d\x5a\xde\x5d\x24\xf4\x3a\x89\x35\x35\x7d\x1b\x6b\x69\x32\x88\xc3\x4a\x15\x26\x59\x81\x8c\x13\x7e\x8c\x73\x0a\x15\xa4\x5f\x9d\x34\x30\xae\x0d\xa6\x3b\x47\x9c\xaa\x7d\xe5\x6d\xcc\xcd\x8f\x8d\xd9\x6d\x10\x88\xb4\xa0\xb3\xa9\xae\xd9\x8d\x4c\x1b\x46\xec\xca\x4e\xc0\xe6\x04\xcd\x7f\x66\xa3\x5f\x78\xf0\x18\x65\xaa\x94\xa1\x7e\x8a\x6c\xb5\xf4\xd0\x5c\xc7\x19\x11\xd2\xca\xc7\xcd\x42\x5c\x0b\x26\xbe\xa4\x9f\xd9\xe8\x8b\xca\x44\xad\x58\x16\xf0\x3c\xe0\xa1\x6e\xbd\xed\x1f\x63\xce\xa7\xf2\x72\xa3\x7a\x2e\x14\x38\xf5\x65\x6c\x33\x21\xd3\xf9\xe9\x7e\x40\x4b\x01\xf0\xf6\xf1\xe0\xed\x6e\xb3\x6b\x15\xe2\xde\x9f\x32\x7f\x48\xd8\xdd\xad\x9f\x56\x00\xef\xfd\x1d\xf8\x43\x45\xdf\xdd\xba\x70\x11\x7f\xbf\xf6\x38\x6d\xe5\xcd\x08\x85\xdd\x90\xe8\xfd\x28\x78\x51\x76\x45\x79\x27\x1a\x60\x67\x0e\xf0\x4a\xb8\x3a\xc2\x60\xbb\x23\x0a\xcc\x85\x9b\x06\xdc\x34\x4e\xd1\x4d\x03\x8e\x0d\x70\x6c\x80\x63\x03\x1c\x1b\xe0\xd8\x70\x70\xc7\x06\x10\x73\x40\x54\x40\x54\x40\x54\x40\x54\x40\x54\x40\x54\x40\xd4\xa5\x87\x00\xb8\x06\xb8\x06\xb8\x06\xb8\x06\xb8\x06\x2e\x29\x5c\x05\x50\x70\x49\xa1\x7f\xec\xec\x2f\x29\x44\xce\x88\x81\xdf\xd8\x60\xff\xfa\xb3\x1a\x64\x95\xf7\x4c\xc7\x8c\xce\xc2\xb8\xec\x4c\xc2\xcc\x1b\x3b\x64\x61\xdb\x45\x89\xae\x98\x4d\x3b\xdd\x30\x7b\x89\x1d\x45\xfc\x52\x7d\xe8\x07\x1b\xbf\x44\x66\x8a\xdf\xb8\xe4\x91\xc8\x8c\xc1\xcd\xec\x9d\x79\xae\x82\x98\x34\x48\x6f\xda\xe2\x64\xa1\x54\x19\x13\xb2\xd0\x12\xae\x53\xa9\x67\xfc\x51\xf7\x62\xf1\x20\x72\xe1\xc4\xc4\x7a\x94\x8e\x8b\xe6\x21\x31\x99\xcc\x58\x2a\x63\x37\xef\x7f\xd2\xcf\x66\x3c\x20\x6e\x95\x28\x19\x19\xa1\x90\x4c\x4d\x81\x92\x05\x8f\xa5\xd9\xb0\xc8\x94\x53\x3d\x4b\xb6\x7c\x4b\xd5\xd8\xe4\x85\xd1\x49\xfa\xe1\xfa\x3a\x52\x09\x97\xd1\x58\x65\xd1\x75\xfa\x18\x5d\x97\x32\x0e\x54\x28\xae\xff\xf6\x35\xbf\xd3\xa5\x6c\x6d\x1b\xb6\x9d\xd3\xe7\xf0\x0c\x4a\x8a\x3c\x6e\xe1\xae\xab\x60\xf7\xbe\x83\x60\xf7\xd1\x18\xbb\x86\x58\xf9\xf7\x6b\x2b\x6f\xfc\x73\x87\x58\xfb\xd3\x94\xa9\x49\x6e\x39\x1a\x99\xfa\x0d\xeb\xf9\x32\x1a\xf3\xd3\x7f\xf6\x74\x27\xcd\x06\xb2\x5c\xfb\x45\x34\x07\x97\xe5\x8e\xe4\xc6\x0f\x48\x6d\xf5\x41\x1e\xac\xd4\x86\x18\xeb\x33\x8a\xb1\x46\x30\x19\x82\xc9\x10\x4c\x86\x60\x32\x28\x9c\xcb\x56\xd1\x20\xc3\x31\x0e\xa3\xb4\x21\x9a\xc4\x3c\xb6\x32\x9a\xe4\x78\xf4\x36\x6f\x26\xef\x3d\x86\x84\xbc\x0b\x9a\x62\x58\x57\x15\x4b\xbf\xba\xbf\xc0\x91\x9a\xa8\x22\xfe\x22\x77\xb0\x89\xfe\x8b\x07\xc5\x98\xb1\xcf\xfa\xbf\xee\xdf\x67\x3c\x26\xb3\x61\xce\x82\xa4\xcc\x0b\x91\x55\x07\x90\xf1\x1b\x65\x49\xfc\x28\xd8\xc8\xd7\x75\xa4\xe5\x4c\x27\x1b\x8d\xd9\x5d\xc2\xa5\xb4\xee\x1c\x24\xbd\xf0\xc4\x08\x4c\x37\x3f\x6d\xb3\xa3\x53\x1d\x0f\x24\x57\xf8\x4e\xf3\x62\xf9\xc4\x75\x9f\x6e\x29\xfb\x6c\x7a\x4c\x9f\x25\x69\xee\x7a\xc7\x7a\x4c\x95\xb9\xc8\xc8\xd5\xa9\x92\xb0\x5f\x76\xdc\x51\xba\x32\xa7\xcb\xe9\x87\x7d\xe0\xc1\xcc\xc7\x56\x1c\x18\x7a\xdf\x3d\xbe\xd3\x62\x0b\x72\x4e\xd8\xc7\xda\x54\x56\xd4\xa3\x0b\x18\x1f\x0a\x13\x87\x33\xc0\xd1\x39\x03\x90\xbb\xd1\x56\x89\xa3\xaf\xe8\xdd\xbf\xaf\xde\xbf\x67\x22\x8b\x44\xa7\x27\xf3\x22\xe3\x85\x88\xe2\xe0\xaa\xfb\x3b\xfa\xef\x17\xfb\x24\x9d\x14\x5d\xe4\x30\xf2\x4f\xa5\xf0\x37\xe3\x1a\xb7\xa5\x4c\x46\x5f\x1d\x9c\xd5\x7b\x57\x1e\x0c\x2b\xb4\x9c\xbb\xa6\xc7\x1a\x83\x2d\xfc\xc4\x6d\xe1\xe7\xe3\xc1\x30\x17\x58\xe2\x16\x97\x09\x7e\x4a\x8d\x2f\xb8\x0d\xa8\x7f\xbb\x64\x5f\x7a\x47\x96\x40\x13\xf1\xcc\x13\x7a\x53\x2a\x79\x65\xde\xa6\x27\xc8\x18\x9f\xb3\xb7\xbf\xe6\x4a\xde\x99\xb8\xf2\xdf\xf4\x0e\x68\xff\xfe\xe1\xf6\xc5\xea\x1f\xdf\x0d\xc9\xb5\xa2\xfb\xbc\xf9\xa2\xb2\x80\x68\x45\xa4\x68\xf0\x15\xbb\xbf\x98\xea\x7f\xbb\xbf\x60\xb7\x8d\xde\x1c\xb3\xaf\x85\x45\x0b\xa4\x1b\xd9\x85\x7a\xc5\x03\x1a\x00\x8a\x4c\x4e\xe2\xc0\x1a\x4b\x49\x95\x52\xcf\x76\x6c\x4d\xe4\x6e\x2a\x54\x9a\x88\x31\x33\xdf\xa4\x0b\x09\xdc\x9c\xa2\x60\x81\xd6\x81\xf0\x9f\xdf\xa6\x7b\xf5\x87\xa0\x51\x99\x1f\xa0\x51\x35\xda\x74\x68\xc7\x89\x39\x87\xf4\xa3\xd1\xa9\xca\xde\x2d\x70\x69\xc2\x83\x6d\x05\x3e\xfb\xf6\xd9\x88\x7c\x70\x5a\x85\xc8\x77\x7e\x22\xdf\x80\x24\x2b\x08\x00\xfe\x17\x38\xad\x76\xa8\xfc\x89\x4a\x2f\xe5\x11\xd9\x83\xdf\xb0\xee\x5e\x9f\x14\xe9\xb7\x22\xe3\x60\xef\x00\xd2\x5e\x83\x20\xc3\xf8\x29\x0e\x4b\x9e\xd4\x23\x4c\xb9\xbf\xf8\xa4\xd1\x05\xe3\x9a\x2b\xd3\x07\xef\x04\x35\xa2\x92\x46\xd5\x35\x58\x8d\x7b\x8d\xbc\xd8\xc4\x62\x99\x17\x82\x37\x0c\x9e\xf3\x42\xd5\x73\x9b\x15\x6d\x21\x98\xf0\x8b\xca\x6e\x93\xc4\x4b\x5a\xf9\xc5\x00\x36\xc4\xa5\x2f\x9c\x57\x2c\xe8\x0a\xc3\x20\x85\x32\x7f\x7e\x12\xf2\xcc\x83\x41\x69\x18\xcf\x27\x22\x14\xf7\x4e\x9e\xf0\xbd\x93\xeb\x71\xd5\xba\x3b\x27\xb7\xcf\xf3\xdb\x0d\xc5\xe1\xa6\x49\xdc\x34\x89\x9b\x26\x71\xd3\xe4\xa9\xdd\x34\xb9\x7e\xe7\x6d\xbd\x65\x72\xc7\x8e\x0f\x7b\xbb\x5b\x72\x7d\xf3\x97\xdf\x2b\x39\xe4\x3e\xd8\xe4\x36\xc9\xf5\x7d\xb0\xfc\x26\xc9\x1d\xf7\x01\xee\x8f\xc4\xfd\x91\xb8\x3f\x12\xf7\x47\xe2\xfe\xc8\x9d\xdd\x1f\xd9\x61\xf7\x5f\xb8\x3b\x72\x65\xc4\xe4\x19\xf9\x3d\x76\x6b\x0d\xee\xbf\x3c\xb2\xfb\x2f\xd7\x4f\xa2\x55\x77\x5f\xee\x78\x36\x1d\xf4\xc6\xcb\xf5\x3d\xb3\xe2\xb6\xcb\x5d\xef\x1a\x43\xbd\xe3\x72\x7d\xa7\xb5\xd8\xf3\xb7\x36\x67\xd9\xbf\xfe\xdc\x9c\x19\x75\xba\x2f\x04\x28\x69\x85\x77\xce\xbf\xe6\xac\xf1\x80\x48\x80\x48\x0c\x10\xc9\x3c\x06\x88\x04\x88\x04\x88\x04\x88\x04\x88\x04\x88\x04\x88\x04\x88\x34\x6c\x80\x02\x88\x04\x88\x04\x88\x04\x88\x04\x88\x04\x88\x04\x88\x74\x8c\x10\x09\xb7\x86\x80\x9e\x81\x9e\x81\x9e\x81\x9e\x81\x9e\x0d\x85\x9e\xb5\xdc\xb6\xbf\x23\x88\x56\x27\x67\xd2\x49\x00\x6a\xca\x1e\x63\x19\xee\x80\xa0\x5d\x56\x52\x3f\x69\x36\x56\x42\xd4\x8a\x43\xa5\xce\x8c\x1a\x6a\x70\xad\xec\xbe\xf8\x1b\xd8\x1b\xd8\xdb\x91\xb1\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\x37\x70\xb7\xe3\xe3\x6e\x48\x40\x00\x94\x08\x94\x08\x94\x08\x94\x08\x94\x08\x94\xd8\x8a\x12\x8d\xad\xdb\x71\xc4\xad\x68\xe0\x41\x2e\x66\x9d\x1b\xe7\x88\xd2\x88\x4e\x55\x36\xf3\xf3\x9a\x33\x43\x25\x96\xf3\xbc\x48\x14\xc4\x7e\xf2\xdb\xbb\xaf\xff\x9c\x7f\x16\xd7\xd0\x6e\xc8\xd2\x7c\x27\x1e\x39\x49\x33\x2b\xa2\xf6\xfc\x9b\xfa\x37\x57\xad\x1e\x47\xe1\x8f\x7a\x15\x35\xb4\x5d\xb3\x31\x76\x59\x42\x96\x86\xdf\xde\x7d\xfd\xde\xf6\x1a\x56\xd3\xe6\xab\xc9\x75\x24\x85\xf2\x9e\xc4\xa2\x6a\x61\xd3\x1b\x2f\x2e\xbb\x3c\x77\xe9\xb6\x62\xcc\xa2\x99\x15\xc7\x9d\xde\xed\x3d\x56\xc8\x5d\x60\xf9\x92\xd0\x6f\x37\xd6\x04\xfd\x1f\x5c\xf0\x3b\xdf\xe9\x83\x59\x85\x63\x3b\xd1\xfc\xd5\xe4\xfa\xff\x9e\xf4\xa2\x5b\xef\x10\xd2\x57\x1c\x76\x63\x0d\x2f\x71\x06\x99\x5b\x4f\x70\x02\x81\x13\x08\x9c\x40\xe0\x04\x02\x27\x10\x38\x81\xc0\x09\x04\x4e\x20\x70\x02\x39\x74\x1f\xc0\x09\x04\x4e\x20\x70\x02\x81\x13\x08\x9c\x40\xe0\x04\x72\x7c\x4e\x20\x70\x1c\x80\xe3\x00\x1c\x07\xda\x67\x13\x1c\x07\x96\xae\x33\x38\x0e\x6c\xe2\x38\xe0\xe8\xcc\xb2\xd0\xe3\x05\x68\x63\x4e\xfb\x7e\xb9\x8d\x29\x93\x05\x2a\xd1\xca\x85\x9d\xa5\xeb\x70\x8d\x79\xa9\x01\x6c\x3e\xfa\x02\x6a\xc1\xbd\xf3\xc5\x74\x4d\x79\x0d\xcb\xf3\xf9\x58\x9e\xbb\x65\x53\x5e\x67\x7d\x5e\xb3\x60\x5f\x93\xf4\x7a\xbb\xfc\xeb\x3b\x01\xdc\x9f\x68\xdd\x7d\xa3\x85\x91\xf7\x92\x69\x1d\x56\x75\x58\xd5\x61\x55\x87\x55\xfd\xd4\xac\xea\xdd\x4e\x95\x56\xcb\xfa\x2b\xf3\xf3\x77\xdf\x7b\x49\xf7\xb3\xf6\x84\x4b\x4a\x9b\x10\xe8\x19\x65\xe6\x41\xa3\x6d\x75\x39\x62\x22\x58\xaa\x7b\x2b\xd7\xaa\x37\xbb\x95\x2c\x96\x66\x67\x51\x19\x2b\xa5\xdf\x9c\x42\x16\x66\x2f\xdf\x4b\xc9\xc2\x38\xd3\x72\xd9\x93\xf0\x33\x9e\xf4\x31\xc9\xb8\xb4\x4b\xde\xcd\x0d\xdb\xc1\x6c\x5a\x66\xb4\xca\xd2\x4c\x05\x5a\x6e\x30\x2a\x6b\xcd\xe2\x39\x66\x7f\xd0\x17\x69\xb4\x68\xee\x68\x7d\xf5\x36\x49\x3e\x90\x11\x26\xd4\xbb\x74\x29\xf5\xc0\x6b\x1d\xc0\x4d\x49\x5b\xdc\x62\x8e\xfc\x0e\x03\x65\xda\x72\x98\x61\xda\x1b\x0a\xe9\xd6\x15\xcb\x71\xc8\xde\x7a\xe4\xf7\xba\x52\x1b\x4b\x96\x1b\x5d\x93\x4d\xc4\xd4\x48\xce\xde\x6c\x56\x89\x12\x76\xf7\xa2\xa9\x53\x0a\x73\x38\x4c\xb4\x3a\x27\xaf\xa4\x88\x38\x4d\x50\xab\x96\x6a\x0d\xda\x9d\xa0\xc6\x84\xee\x97\x86\xd5\x56\xe2\xd9\x4c\x84\x31\x2f\x44\xf2\x52\x89\xb4\xd5\x91\x1b\x27\x97\x56\xed\xa4\x4e\x67\x51\xc6\x03\x5a\x35\xb1\x0a\xbd\x40\x50\x1d\xda\xa4\x2f\xb8\x59\x5a\xe6\xba\x92\xf5\xe1\xe2\xfa\x4d\xd7\x20\xfb\x91\xa9\xd9\x03\x5d\x11\x63\x53\xcf\x99\xe0\xb2\xb5\x8e\x5b\x0c\x33\xd5\xf9\x8e\xaa\xdc\xa6\xca\xaf\x51\xe6\x87\x32\xfd\x37\xa1\x60\xdd\xfa\x65\x39\x09\xdb\xdb\xf4\x07\x13\x03\x13\x03\x13\x03\x13\x03\x13\xdb\x19\x13\xeb\x78\x16\x2c\x70\xb1\xfd\x1d\x8b\x9f\x6a\x97\x2e\xa6\x89\xe0\xb9\xf0\x5b\xd0\x5d\xa6\x52\x1e\x91\x74\x74\xa7\x92\x38\x78\x69\xd8\xc1\xdc\xa4\xab\x6e\x6d\xd4\xd3\xee\x66\xfc\x8f\x31\xfb\x61\xf6\x33\x23\xba\xa4\x42\xea\xc5\x52\x9d\xa9\x82\xa9\x2c\x7d\xe0\xd2\xd9\xe5\xb2\x52\x5c\x4f\x79\xe2\x74\xe5\xfb\x0b\xf3\xf3\xfd\x05\x9b\xc6\x92\x27\xf1\xbf\xdd\x41\x32\x11\x8c\x87\x21\xcd\xce\x6b\x63\x45\x0f\x2b\x35\xcc\x14\x3f\xca\xab\x97\x8c\x7e\x3a\x66\x9f\x63\xda\x1c\x6b\x55\x57\xd9\x62\xdb\x68\xfb\x31\xa6\x22\xa3\x1e\x93\x8e\xa2\x8a\x87\x6d\x06\xd4\xb4\xe0\x93\x6b\xfb\xde\x4c\x7c\x8b\x8a\x19\x35\x5d\x2f\xd8\x07\xf5\xcc\x22\x9e\x4d\x78\xd4\x30\x92\x7b\xa5\x46\x64\x53\x95\xcd\xf4\x98\xb4\xf6\xd7\xb7\xb9\x16\x2d\xef\x2e\x12\x7a\x9d\xc4\x9a\x9a\xbe\x8d\xb5\x34\x19\xc4\x61\xa5\x0a\x93\xac\x40\xc6\x09\x3f\xc6\x39\x85\xf1\xd1\xaf\x4e\x1a\x18\xd7\x06\xd3\x9d\x23\x4e\xd5\xbe\xf2\x36\xe6\xe6\xc7\xc6\xec\x36\x08\x44\x5a\xd0\xd9\x54\xd7\xec\x46\xa6\x0d\x23\x76\x65\x27\x60\x73\x82\xe6\x3f\xb3\xd1\x2f\x3c\x78\x8c\x32\x55\xca\x50\x3f\x45\xb6\x5a\x7a\x68\xae\xe3\x8c\x08\x69\xe5\xe3\x66\x21\xae\x05\x13\x5f\xd2\xcf\x6c\xf4\x45\x65\xa2\x56\x2c\x0b\x78\x1e\xf0\x50\xb7\xde\xf6\x8f\x31\xe7\x53\x79\xb9\x51\x3d\x17\x0a\x9c\xfa\x32\xb6\x99\x90\xe9\xfc\x74\x3f\xa0\xa5\x00\x00\xfb\x78\x00\x76\xb7\xd9\xb5\x0a\x62\xef\x4f\x99\x3f\x24\xce\xee\xd6\x4f\x2b\x90\xf6\xfe\x0e\xfc\xa1\xc2\xed\x6e\x5d\xb8\x08\xb8\x5f\x7b\x9c\xb6\xc2\x65\x84\xac\x6e\x48\xf4\x7e\x14\xbc\x28\xbb\xa2\xbc\x53\x0c\x9a\x33\xa7\x77\x25\x59\x1d\x4b\x00\xdd\xd0\x03\x68\xe1\x85\x01\x2f\x8c\x53\xf2\xc2\x80\xdf\x02\xfc\x16\xe0\xb7\x00\xbf\x05\xf8\x2d\x1c\xdc\x6f\x01\x40\x1c\x8c\x14\x8c\x14\x8c\x14\x8c\x14\x8c\x14\x8c\x14\x8c\x74\xe9\x21\x00\x6c\x01\x6c\x01\x6c\x01\x6c\x01\x6c\x81\xcb\x04\x57\xf1\x11\x5c\x26\x78\x76\x97\x09\x22\x25\xc3\xc0\x6f\x56\xb0\x7f\xfd\x59\x0d\xb2\xca\x7b\x26\x5e\x46\x35\x61\x5c\xae\xa5\x5b\xe6\xc9\xbe\xf9\xd6\x76\x81\x9d\x2b\xa6\x4e\xff\x9b\x60\x2f\x31\x9e\x88\x33\xaa\x8f\xf7\x60\xe3\x8c\xc8\xde\xf0\x1b\x97\x3c\x12\x99\xb1\x9c\x99\xdd\x31\xcf\x55\x10\x93\x2a\xe8\x6d\x54\x9c\x4c\x8d\x2a\x63\x42\x16\x5a\x54\x75\xba\xf1\x8c\x3f\xea\x5e\x2c\x1e\x44\x2e\x9c\xbc\x57\x8f\xa6\x71\x51\x37\x24\xef\x92\x3d\x4a\x65\xec\xe6\xfd\x4f\xfa\xd9\x8c\x07\x04\xa0\x12\x25\x23\x23\xdd\x91\xcd\x48\x2b\xf7\x3c\x96\x66\x4b\x22\x9b\x4c\xf5\x2c\x19\xe5\x2d\x1e\x63\x93\x17\x46\xa7\xe3\x87\xeb\xeb\x48\x25\x5c\x46\x63\x95\x45\xd7\xe9\x63\x74\x5d\xca\x38\x50\xa1\xb8\xfe\xdb\xd7\xfc\x4e\x97\xb2\xb5\x91\xd7\x76\x4e\x9f\xc3\x33\x28\x71\xf0\x08\xa5\xb4\xae\x12\xda\xfb\x0e\x12\xda\x47\x63\xaa\x1a\x4c\x8d\xdf\xaf\xad\xb1\xf1\x98\x1d\x4c\x95\x4f\x50\x0c\x26\xa9\x63\xd8\x62\xf0\x1b\xd6\xc7\x3d\x2f\xe6\x9f\xfe\xb3\xa7\xeb\x5e\x3a\xc8\x5c\x2d\x77\xbc\x1c\x4c\xe6\x3a\x92\xcb\x34\x20\x68\xd5\x07\x79\xb0\x82\x16\xc2\x97\xcf\x28\x7c\x19\x71\x5a\x88\xd3\x42\x9c\x16\xe2\xb4\xa0\x23\x2e\x5b\x45\x83\x8c\x74\x38\x8c\xf6\x85\x40\x8d\x75\x81\x1a\x03\xd7\xc5\xbc\xb5\xba\xf7\xf0\x0c\x62\xf9\x4d\xc1\x6b\x9d\x06\xa5\x5f\xd9\x71\x4c\x46\x4d\x12\x11\x7f\x91\xa7\xd5\x44\xff\xc5\x83\x62\xcc\xd8\x67\xfd\x5f\xf7\xef\x33\x1e\x93\x21\x2f\x67\x41\x52\xe6\x85\xc8\xaa\xf3\xc5\xb8\x64\xb2\x24\x7e\x14\x6c\xe4\xeb\x38\xd2\x62\xa4\x13\x7d\xc6\xec\x2e\xe1\x52\x5a\x4f\x09\x12\x4e\x78\x62\xe4\xa1\x9b\x9f\xb6\xd9\xb0\xa9\x8e\x07\x12\x1b\x7c\xa7\x79\xa9\x7b\xe2\xba\x4f\xb7\x94\x7d\x36\x3d\xa6\x8f\x8a\x34\x77\xbd\x63\x9d\x91\xca\x5c\x64\xe4\x45\x54\x09\xd0\x2f\x3b\xee\x28\x5d\x99\xd3\x45\xe0\xc3\x3e\xcf\x60\x8e\x6b\x1e\x02\x7a\x5b\x3d\x92\x13\x60\x0b\x28\x4d\xbc\xc5\x5a\x46\x5a\xbe\xdf\x85\x35\x0f\x05\x33\x83\xaf\x1f\x1d\x5f\x27\x47\x9d\xad\xd2\x1e\x5f\xd1\xbb\x7f\x5f\xbd\x3d\xcf\x44\x16\x89\x4e\x4f\xe6\x45\xc6\x0b\x11\xc5\xc1\x55\xf7\x77\xf4\xdf\x2f\xf6\x49\x3a\x08\xba\xc8\x54\xe4\xd9\x49\x81\x63\xc6\xa9\x6c\x43\xf9\x8a\xbe\x36\x0c\x03\xf5\xae\x9c\x02\x56\x28\x24\x77\x4d\xc7\x2e\x06\xb3\xf5\x89\x9b\xad\xcf\xc7\x3f\x60\x2e\xfe\xc2\x2d\x2e\x13\x23\x94\x1a\x97\x69\x1b\x77\xfe\x76\xc9\x26\xf4\x8e\x8c\x76\x26\x30\x98\x27\xf4\xa6\x54\xf2\xca\xbc\x4d\x4f\x90\xdd\x3c\x67\x6f\x7f\xcd\x95\xbc\x33\xe1\xd7\xbf\xe9\xed\xce\xfe\xfd\xc3\x6d\x82\xd5\x3f\xbe\x1b\x92\xe3\x42\xf7\x79\xf3\x45\x65\x01\x81\x85\x48\xd1\xe0\x2b\x76\x7f\x31\xd5\xff\x76\x7f\xc1\x6e\x1b\xbd\x39\x66\x5f\x0b\x4b\x01\x48\xcf\xb1\x0b\xf5\x8a\x07\x34\x00\x14\xc0\x9b\xc4\x81\xb5\x6b\x92\x5a\xa4\x9e\xed\xd8\x9a\x00\xd7\x54\xa8\x34\x11\x63\x66\xbe\x49\x71\xfb\x6e\x4e\x91\x4f\x7d\xeb\x40\xf8\xcf\x6f\xd3\xbd\xfa\x43\xd0\x8e\xcc\x0f\xd0\x8e\x0e\xec\xac\x30\xe7\xa9\x3d\x6c\xfd\xa8\xec\xdd\x42\x96\x26\x3c\xd8\x54\x88\xb3\x6f\x9d\xb6\x18\x07\xdf\x4e\xc8\x6e\x67\x22\xbb\x0d\x48\x44\xc2\x49\xee\x7f\x81\x6f\xe7\xc9\xcb\x1e\xe5\xd0\x2d\xb3\x6f\x58\x47\x3f\x49\x0a\x59\x6b\x49\x7f\xd7\x3b\xd3\xb3\x71\xfc\x32\x8c\x9f\xe2\xb0\xe4\x49\x3d\x44\x92\xfb\x9b\x3b\xa8\xbd\xe3\x9a\x1f\xd0\x07\xef\x41\x34\xa2\x12\x46\xd5\xfd\x4d\x8d\x0b\x79\xbc\xa4\xc3\x62\x99\x17\x82\x37\xec\x8d\xf3\x72\xd0\xf3\x82\x31\xcb\x47\xc1\x7d\x51\xd9\x6d\x92\x78\xa1\x28\xbf\x18\xc0\x76\xb6\xf4\x85\xf3\x8a\x5c\x5c\x61\x9f\xfb\x1f\x3f\xa0\x67\xbc\x2b\xd1\x18\x9e\x78\x28\x23\xee\x45\x3c\xe1\x7b\x11\xd7\x43\xa1\x75\x77\x22\x6e\x9f\x48\xb6\x1b\xf0\xc2\x4d\x88\xb8\x09\x11\x37\x21\xe2\x26\xc4\x53\xbb\x09\x71\xfd\xce\xdb\x7a\x0b\xe2\x8e\xdd\x0b\xf6\x76\xf7\xe1\xfa\xe6\x2f\xbf\xf7\x70\xc8\x7d\xb0\xc9\x6d\x87\xeb\xfb\x60\xf9\x4d\x87\x3b\xee\x03\xdc\x6f\x88\xfb\x0d\x71\xbf\x21\xee\x37\xc4\xfd\x86\x3b\xbb\xdf\xb0\xc3\xee\xbf\x70\xb7\xe1\xca\xa8\xc2\x33\xf2\x2e\xec\xd6\x1a\xdc\xcf\x78\x64\xf7\x33\xae\x9f\x44\xab\xee\x66\xdc\xf1\x6c\x3a\xe8\x8d\x8c\xeb\x7b\x66\xc5\x6d\x8c\xbb\xde\x35\x86\x7a\x07\xe3\xfa\x4e\x6b\xb1\xe0\x6f\x6d\xce\xb2\x7f\xfd\xb9\x21\x07\x5a\x79\x6b\xc6\x19\xe3\xa1\x39\x27\x99\x7f\xcd\x19\xd9\x01\x86\x00\x86\x18\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\xd0\x30\xa1\x08\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\x10\xc0\xd0\x31\x82\x21\xdc\xb7\x01\x22\x06\x22\x06\x22\x06\x22\x06\x22\x76\x50\x22\xd6\x72\x8f\xfc\x8e\xc0\x58\x9d\x86\x49\x77\xec\xab\x29\x7b\x8c\x65\xd8\x23\x15\xbb\xac\x44\x7c\x52\x63\xac\x38\xa8\xb5\x84\x4a\x77\x19\x35\x74\xde\x5a\xd9\xaf\x62\x6a\xe0\x69\xe0\x69\xc7\xc4\xd3\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\xc0\xd2\x8e\x84\xa5\xe1\x1a\x7e\x60\x41\x60\x41\x60\x41\x60\x41\x60\x41\x60\xc1\x26\x16\xfc\xab\x10\x32\x27\x36\xb2\x15\xe1\x3b\xc8\x2d\xa7\x73\x83\x1c\x51\x1e\xcc\xa9\xca\x66\x7e\x52\x73\x66\xf8\xc3\x72\x56\x17\x89\xe2\xb3\x6f\xfb\xed\xdd\xd7\x7f\xce\x3f\x8f\x7b\x5d\x37\xc4\x66\xbe\x13\x8f\x1d\x9a\xf9\x69\x51\x7b\xe7\x4d\xfd\xbb\x4b\x97\x90\xc3\xea\x47\xbd\x94\x1a\x7a\xae\xd9\x1a\xbb\xae\x23\x4b\xbd\x6f\xef\xbe\x7e\x6f\x7b\x15\x4b\x6a\xf3\x25\xe5\x3a\x92\xc2\x71\x4f\x66\x65\xb5\x20\xe9\xcd\x56\x58\x2c\xa3\x4c\xe4\xcd\xd1\xeb\xdf\x2f\xc5\x18\x46\x33\x2b\x98\x3b\xcd\xdb\xb9\xa4\x7c\x35\x75\x58\xb1\x38\xf4\xfb\x0b\xab\xc3\xbe\x86\x4b\x78\xe7\x3b\x7f\x30\x2b\x72\x5c\x4d\x38\x7f\x1d\xb8\x1d\xb5\x93\x5f\x86\xeb\x3d\x43\x7a\x0b\xb2\xae\xce\xd9\x56\xaf\x90\xc5\xe5\x05\xbf\x10\xf8\x85\xc0\x2f\x04\x7e\x21\xf0\x0b\x81\x5f\x08\xfc\x42\xe0\x17\x02\xbf\x90\x43\xf7\x01\xfc\x42\xe0\x17\x02\xbf\x10\xf8\x85\xc0\x2f\x04\x7e\x21\xc7\xe7\x17\x02\x9f\x02\xf8\x14\xc0\xa7\xa0\x7d\x36\xc1\xa7\x60\xe9\x3a\x83\x4f\x41\x67\x9f\x02\x87\x6b\x96\x44\x18\xb7\x52\x1c\x73\xda\xf7\x0b\x72\x4c\x99\x2c\x50\x89\x56\x2e\xec\x2c\x5d\xcf\x6f\xcc\x6b\x0b\x04\xe7\xa3\x2f\xa6\x8a\xef\x6d\x29\xac\x6b\x6a\x69\x58\xa0\xcf\xc7\x02\xdd\x2d\x81\xf1\x3a\x2b\xf4\x9a\x85\xfb\x9a\x3c\xd3\xdb\xe5\x39\xdf\x09\xfd\xfe\x44\xab\xef\x1b\x2d\x8c\xbc\x97\xe4\xe6\xb0\xae\xc3\xba\x0e\xeb\x3a\xac\xeb\xa7\x66\x5d\xef\x76\xaa\xb4\x5a\xd8\x5f\x99\x12\xbf\xfb\xde\x4b\x3a\xa0\xb5\x2b\x5c\x52\x12\x84\x40\xcf\x28\x33\x0f\x1a\x6d\xab\xcb\x11\x13\xc1\x52\xdd\x5b\xb9\x56\xc1\xd9\xad\x64\xb1\x34\x3b\x8b\xca\x58\x29\xfd\xe6\x14\xb2\x30\x7b\xf9\x5e\x4a\x16\xc6\x99\x96\xcc\x9e\x84\x9f\xf1\xa4\x97\x49\xc6\xa5\x5d\xf2\x6e\x6e\xd8\x0e\x66\xd3\x32\xa3\x55\x96\x66\x2a\xd0\x72\x83\x51\x5d\x6b\x96\xcf\x31\xfb\x83\xbe\x48\xa3\x45\x73\x47\xeb\xad\xb7\x49\xf2\x81\x8c\x31\xa1\xde\xa5\x4b\xa9\x07\x5e\xeb\x02\x6e\x4a\xda\xe2\x16\x33\xd4\x77\x18\x28\xd3\x96\xc3\x0c\xd3\xde\x90\x48\xb7\xae\x58\x8e\x45\xf6\xd6\x23\xbf\xd7\x95\xdb\x58\xb2\xdc\xe8\x9c\x6c\x22\xa6\x46\x72\xf6\xe6\xb3\x4a\x94\xb0\xbb\x17\x4d\x9d\x52\x98\xc3\x61\xa2\xd5\x3a\x79\x25\x45\xc4\x69\x82\x5a\xf5\x54\x6b\xd2\xee\x04\x35\xa6\x74\xbf\x34\xac\xd6\x12\xcf\x66\x22\x8c\x79\x21\x92\x97\x4a\xa4\xad\x8e\xdc\x38\xb9\xb4\xea\x27\x75\x3a\x8b\x32\x1e\xd0\xaa\x89\x55\xe8\x05\x82\xea\xd0\x26\x7d\xc1\xcd\xd2\x32\xd7\x95\xac\x0f\x17\xd7\x6f\xba\x06\xd9\x8f\x4c\xcd\x1e\xe8\x8a\x18\x9b\x7a\xce\x04\x97\xad\x75\xdc\x62\x98\xa9\xce\x77\x54\xe5\x36\x95\x7e\x8d\x52\x3f\x94\xe9\xbf\x09\x0d\xeb\xd6\x2f\xcb\x89\xd8\xde\xa6\x3f\xd8\x18\xd8\x18\xd8\x18\xd8\x18\xd8\xd8\xce\xd8\x58\xc7\xb3\x60\x81\x8f\xed\xef\x58\xfc\x54\xbb\x76\x31\x4d\x04\xcf\x85\xdf\x82\xee\x32\x95\xf2\x88\xa4\xa3\x3b\x95\xc4\xc1\x4b\xc3\x0e\xf6\xff\xb2\xf7\x37\x4d\x6e\x22\xd9\x1f\x36\xbc\xaf\x4f\x91\x51\xb3\x90\x1d\xe3\x52\x3d\xe5\xcd\x74\xb8\x57\x35\x7e\x99\xc7\x7d\xf7\x4b\x45\xbb\xa3\x37\xb7\x3b\xfe\x91\x85\xb2\x64\xc2\x14\x28\x40\xb2\xa7\x66\x62\xbe\xfb\x1d\x64\x02\x42\x12\x6f\xa2\x10\x24\xe8\xf2\xc6\x8a\x12\x20\xc8\x4c\x32\x4f\x9e\xeb\x9c\xdf\x49\x07\xdd\x56\xb7\x31\x1e\x76\x37\xf3\x7f\xcc\xc5\x27\x33\x9f\x19\xd3\x65\xa5\xfc\xf8\x65\xd9\xae\xa9\x4a\x04\xe1\xea\x8b\xf4\x53\xbf\x5c\xb8\x51\xd7\x0f\xd2\x4b\xf7\xca\x9f\x2f\xcd\xd7\x9f\x2f\xc5\x83\xeb\x4b\xcf\xfd\x4f\xba\x90\xdc\x2b\x21\x17\x0b\x3d\x3a\xaf\x8d\x37\x7d\xb1\xdd\x86\x99\xcb\xcf\xa2\xed\x49\x66\x7f\x3a\x17\xef\x5d\x3d\x39\xe6\x6e\x3d\x08\x0f\x9f\x4d\x4f\x3f\xc6\x55\x64\xb6\xc7\x7a\x8f\x12\xac\xbf\xb4\xe9\x50\xf3\x04\xef\xd2\x67\xef\xcd\xc5\x77\xb8\x31\xd3\x8f\x1e\xbf\xb0\x5f\x82\xef\x62\x29\xc3\x7b\xb9\xdc\x71\x96\x67\x9b\x1a\x15\x3e\x04\xe1\x63\xdc\x27\x85\xed\xf5\xdb\xde\x13\x95\x37\x97\x36\x7a\x53\x8b\x75\x65\xda\xd6\x8d\xad\x49\xc7\x5d\x6c\xb7\xc2\xda\x56\xd0\xce\x89\xac\x8f\x23\x9d\xec\xa7\xbf\x4d\xad\x81\x79\xae\x33\xd3\x75\x24\xdd\x6a\x5f\x65\x3e\xe6\xdd\x1f\x9b\x8b\x5b\xc7\x51\xab\xb5\x5e\x9b\xf2\x3b\xbb\x99\x79\x86\x99\xb8\x4a\x06\xe0\xee\x00\x8d\x7e\x14\xb3\x7f\x4a\xe7\xeb\x32\x0c\x36\xfe\x22\x3e\x4a\xfb\x6a\xf5\x41\x7b\x0d\x67\x4c\xc8\xc4\x3e\xde\xbd\x48\xfa\x04\xf7\xd9\x95\x7e\x14\xb3\x0f\x41\xa8\x72\x97\x15\x8e\x8c\x1c\xb9\x88\x9f\x3e\x69\x1f\xe3\xce\xd7\xd7\x8b\xcc\xd6\xf3\xe0\x82\x0f\xd9\x35\xda\x0c\xc8\xd5\xfe\x70\x1f\xd0\x53\x00\xc8\x1e\x0f\xc8\x6e\x36\xba\xaa\x60\x76\x7f\x9b\xf9\x21\xb1\x76\xb3\x76\xaa\x40\xdb\xfd\x2d\xf8\xb6\x42\xee\x66\x4d\x78\x08\xba\x9f\xbb\x9c\x16\x42\x66\xf2\x59\x8f\x24\x7a\x9f\xd6\x72\xbd\x69\x8a\xf2\xa6\x9a\x3f\x67\x56\xf0\xad\x75\x35\x92\x5c\xba\x71\x24\xd7\x12\x90\x41\x40\xc6\xb4\x02\x32\x08\x61\x20\x84\x81\x10\x06\x42\x18\x08\x61\x18\x3c\x84\x01\x36\x0e\x2e\x05\x97\x82\x4b\xc1\xa5\xe0\x52\x70\x29\xb8\xb4\x74\x11\x80\x60\x40\x30\x20\x18\x10\x0c\x08\x06\x42\x83\x55\xa8\x04\xa1\x41\x51\x01\x4a\xa6\x2d\x34\x48\x25\x07\xcb\x55\x17\x92\x4f\x7f\x6d\x3b\x39\x88\x3a\x46\x60\x66\x8f\x22\xa4\xdf\x00\x77\x99\x63\x4f\x03\xbc\xda\x25\x7d\x56\x0c\xa1\x53\xcd\x8a\x9d\x64\x81\x92\x89\x94\xef\x75\x6b\x33\x91\xb4\x1b\xe2\x17\xe9\xcb\xa5\x0a\x8d\x43\xcd\xcc\x95\x51\x14\x38\xae\xde\x21\x66\xae\x2b\xa9\x3d\x90\x41\x28\x94\xbf\x8e\x2d\xd8\x74\xcb\xfc\x28\xbf\xc6\xad\xb8\xfe\xa2\x22\x95\x9a\x81\xf9\x7c\x9b\x34\x2f\x47\x9b\xc1\xda\x4d\x15\x84\xe2\xe6\xf5\x0f\xf1\xb1\xa1\x74\x34\x97\xf2\x02\x7f\x69\x8c\x3e\xed\x4a\x8a\xf7\xfc\xd2\xf5\xcd\x04\xa5\x5d\x35\xdb\x63\xb5\xaf\x3e\xa1\x66\xe2\xfe\x49\xe8\xe5\xf2\xcd\xf5\xf5\x32\xf0\xa4\xbf\x9c\x07\xe1\xf2\x7a\xf5\x75\x79\xbd\xf1\x5d\x27\x58\xa8\xeb\xbf\x7d\x8c\xee\xe2\xab\xb4\xf6\xfd\x26\x8d\xd3\x65\xf7\x58\x65\x25\x8e\xd6\x78\x6b\x6a\xb8\xbd\x6e\x60\xb8\xbd\x35\x7e\x2c\xcb\xee\xfb\x75\xed\x7d\x9b\xf8\x5a\xcb\x6e\x7c\xa2\x96\xb2\xb6\x4c\xac\xb6\x94\x2f\x44\x17\x32\x31\xe6\xaf\xff\xeb\x49\x2d\xa6\x91\x59\x56\x22\x11\x33\xa0\x59\x36\x12\x2d\x0e\xac\xb0\x7c\x27\x5b\x6b\x85\x91\xfd\x7c\x46\xd9\xcf\xa4\x79\x91\xe6\x45\x9a\x17\x69\x5e\x6c\x20\xcb\xde\x22\x2b\x13\x25\x86\xd9\x8e\x91\xe7\x91\x1c\x57\x99\xe7\x61\xf7\xb6\x2c\xf3\x6d\x77\x9e\xdd\xa1\x43\x00\x76\x6d\xaf\xfa\xcd\x54\x7c\x52\x2f\x29\x1d\x39\xa3\x44\xfd\x5b\x07\x6a\xdd\xc7\x9f\xa4\xb3\x9e\x0b\xf1\x3e\xfe\x3f\xfd\xfb\xa3\x74\xb5\xc3\x2f\x12\x8e\xb7\x89\xd6\x2a\xdc\x2e\x35\x26\xa2\x53\x78\xee\x57\x25\x66\xd9\x5d\xce\x62\x8b\x32\xb5\x82\xe6\xe2\xce\x93\xbe\x9f\x04\x5a\x68\x3b\x45\x7a\xc6\x34\xba\xf9\xa1\xcd\xdc\xad\xef\x71\x20\x0b\x22\x6b\xb4\xcc\x00\xbf\x4f\x9b\x2f\x7e\x52\xf1\xde\xb4\x58\xbc\x6a\xac\xa2\xb4\x75\x92\x58\xa6\x4d\xa4\x42\x1d\x84\xb4\xb5\xa5\x9f\x4e\xdc\x50\xf1\xcd\x4c\x97\xa0\xdb\xbd\xb4\xe1\xaa\x2b\x5b\x15\xe2\x89\x76\x1c\x4b\x42\x0b\xa6\xad\x01\x4d\xe2\x2d\x29\xbc\x83\x26\xb0\xda\x16\x4e\x0d\xa0\x1f\x1d\xa0\xd7\x21\x3f\xad\x8a\x2d\x5f\xe9\x73\xff\x5e\x3d\x53\x3f\xaa\x70\xa9\x1a\x1d\x19\xad\x43\xb9\x56\x4b\xd7\xb9\x6a\x7e\x4e\xfc\xf9\x29\x39\x52\xaf\x09\x4d\xcc\x2c\x1d\x23\xaa\x53\xd0\x4c\x78\xda\xd1\x26\x97\xfe\x3d\x9b\xdc\xd7\xa7\x8a\x2a\xa8\xd8\xae\xdc\xed\x86\x8a\x09\x9c\xda\x13\x77\x6a\x9f\x4f\x68\xc1\x5e\x46\x47\xfa\x72\x99\xac\xa3\x95\x09\xc2\x4e\x32\xd9\x5f\x94\x4c\x46\x2f\xb5\x4b\xcf\xa4\x1a\x4b\x4f\x9f\xe9\x07\xfe\x95\x39\x5b\x1f\xa1\xbd\xea\x91\x78\xf1\x53\x14\xf8\x77\x26\xa1\xfb\x97\x78\xda\x4b\x3e\x7f\x4a\x27\xc3\xed\x1f\x5f\xda\x14\xf3\xd0\x7c\xdc\x7c\x08\x42\x47\x63\x87\x65\xa0\x3b\x3f\x10\x9f\x2f\x1f\xe2\xbf\x7d\xbe\x14\xb7\x3b\xad\x39\x17\x1f\xd7\x09\x23\xd0\x5b\x9f\xe4\x45\xbd\x92\x8e\xee\x00\x9d\x12\xec\xb9\x4e\xe2\xf5\xd4\x3b\xa5\xe0\x7b\xd2\xb7\x26\x65\x76\xa5\x82\x95\xa7\xe6\xc2\xfc\xa6\x56\x02\x48\xc7\x94\x8e\xd2\x2f\xec\x88\xec\xe7\xdb\x34\x6f\xfc\x43\x6c\x98\xcc\x17\x6c\x98\x6c\xd9\x30\xad\xf6\xa2\xc0\xad\xde\x32\x6d\x3a\xf7\xa2\xad\x3c\xe9\x1c\x6f\xd5\x25\xe7\x9d\x83\x5d\x47\xb4\x28\x26\xdd\x59\x99\x74\x16\x59\x4e\x2c\xf0\xd9\x37\x44\x8b\x9e\x9d\x61\xb2\xb1\xdc\x93\x7b\x21\x3a\x8c\xb9\xbc\x8e\x0c\xd3\xcd\x85\x5e\x9e\x86\x19\x9a\xdf\x49\xd7\xb2\xee\xe9\x61\xc2\xa6\x99\xb0\x78\xf1\x41\x38\x20\x1c\x10\x0e\x08\xa7\xf0\xc8\xe1\x10\x4e\xfb\x15\xb0\x21\xcc\x29\x58\x02\x47\xb9\xf5\x07\xe9\xb0\xff\x3f\xbf\xfd\x3f\x48\xa7\xcb\x71\x03\xd2\xc1\xe3\xc3\x06\x0a\xa4\xb3\xdb\x68\x3d\x20\x9d\xe7\xf8\x39\x1a\xc2\x9d\xa9\xd8\x79\x20\x1e\x4c\xbc\xb3\x32\xf1\x2c\xb2\xa4\x58\xf0\xb3\x6f\x40\x3c\x67\x67\xa8\x4c\x03\xf1\x68\x29\xc4\x2d\xd1\x39\x29\xc3\x49\x24\xa2\xfd\x85\xfb\xcd\x5d\x6c\xa4\x97\x57\xdf\x94\x99\x28\x7c\xf2\xc4\xf3\x5c\xc2\xf8\x9b\x2c\xd5\x7c\xa6\xaf\x31\xdb\x16\x07\xd9\xa9\xf6\x90\x19\x43\xc2\xf5\xa3\xb5\x92\x3b\xfe\xcb\x7d\x53\xe9\x7b\xa1\x43\x2c\x27\xb1\xf8\x21\x08\x6f\x3d\x2f\xb3\x9c\xac\xe0\x42\xa5\x27\x9c\x97\x38\x66\x85\x77\x4f\x6b\xbb\xbe\xff\xa6\xfc\x73\x97\xc8\xd4\xfd\x38\x6d\x9d\x4c\xaa\x6f\x4d\xb8\xfa\x56\x3d\x6d\xaa\xab\xbc\x55\xe9\xce\xea\x80\xa4\x51\x6f\x8b\x7a\x5b\xd4\xdb\xa2\xde\xd6\xd4\xea\x6d\xd5\xcf\xbc\x85\xb5\xb6\x4e\x1c\xb7\xd0\x5b\x85\xad\xfa\xc7\x2f\xaf\xae\x65\x73\x1b\x1c\x53\x53\xab\xbe\x0d\xca\xeb\x69\x9d\xb8\x0d\xa8\xa2\x45\x15\x2d\xaa\x68\x51\x45\x8b\x2a\x5a\x27\xab\xa2\xd5\x60\xf6\x3f\xa8\xa0\x55\xa9\x43\x79\x46\x61\x8b\xcd\x9e\x86\x2a\x60\x23\xab\x02\x56\x3f\x88\xaa\x2a\x80\x9d\x78\x34\x0d\x5a\xf7\xab\xbe\x65\x2a\x6a\x7e\x9d\x7a\xd6\xb0\xb5\xd2\x57\x7d\xa3\x15\x38\xf1\x5b\xbb\xb3\x92\x4f\x7f\x1d\x83\x84\xea\x72\x7f\xce\x9e\x14\x1d\x84\xd4\xfc\xbc\xe7\x6b\x87\x11\xc1\x88\x04\x8c\x08\x46\x04\x23\x82\x11\xc1\x88\x60\x44\x30\x22\x18\x11\x8c\xc8\x5a\x3e\x02\x23\x82\x11\xc1\x88\x60\x44\x30\x22\x18\x11\x8c\x68\x8c\x8c\x08\x4d\x0f\xe0\x18\x70\x0c\x38\x06\x1c\x03\x8e\x0d\x0a\xc7\x0a\x8a\x11\x9f\x88\x91\xe5\xc1\x98\x9f\x2e\xfb\xc1\x83\xf8\xea\xfa\x8b\x4e\x01\xd9\xab\xad\x91\xaf\x37\x32\x89\x41\x18\xef\x13\xb6\xbb\x97\xd9\xce\xae\x37\x77\xed\x0e\xf0\x1a\x68\x0d\xb4\x36\x36\xb4\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\x0d\xac\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\x0d\xac\x36\x0e\xac\x86\xee\x3f\x8c\x10\x46\x08\x23\x84\x11\xc2\x08\x61\x84\x7b\x8c\xd0\x57\xeb\xef\x41\xf8\x35\xde\xc6\x7d\xfd\x21\x9a\xbb\xc1\x75\x2b\xea\x37\x88\x3c\xea\x5e\x5f\x2f\xd5\x5a\xb8\xfe\x43\x10\x3e\x66\x63\x5b\x0a\xc3\x21\xca\xe9\xdd\x52\xad\x7f\xcd\x9a\xe0\xf6\xee\xe3\xbf\xf6\x8f\x47\x10\xf6\x48\x84\x96\x35\xe2\xc8\x01\xda\xf6\xcd\xc8\x9d\x73\x91\xff\xdd\xba\x37\xe9\xdb\xcd\xb8\x5f\xa6\x9d\x2d\xaf\x99\x23\x9b\xbe\x49\x7f\xde\xdc\xde\x7d\xfc\xbd\xe8\x2c\xde\xa7\xe3\xdf\xa7\xb4\x21\x75\x8a\xee\x64\x5e\xab\xff\xfb\x76\xf3\x8c\x37\xab\x24\x86\x25\x39\x76\x15\x78\xae\xe3\xee\xa6\x79\x1b\xff\x42\xb7\x51\x2c\xe6\x9a\xc2\x09\x3c\x4f\x39\xe9\xaa\x93\xbc\x06\x77\xf1\x3d\x3c\x55\xbc\x31\xe6\xe4\xfc\x4b\xf3\x36\xbb\xce\x36\x7e\xa4\xf4\x6a\x4d\x2b\x1e\x80\xbe\xcf\x07\x7d\x37\x53\xd4\xaf\xc3\xdf\xcf\x2d\xa5\xf3\xaa\x7c\x30\xb6\x2b\xbf\x71\x92\x89\xf5\x9d\x7e\xfd\x7e\xd3\x2f\x46\x37\xd5\x36\xc0\xfa\x60\x7d\xb0\x3e\x58\x7f\x6a\x58\xbf\xd9\xaa\x52\x88\xf6\x7b\x2b\xa1\x43\xa5\xa3\xc6\x1d\x35\x64\xa5\xa3\xde\x62\x31\x8e\xa8\x2d\x54\x18\x8b\xd0\x5b\x8b\xfc\x91\xf7\xc7\xba\xbe\x88\x8c\x9b\x54\xdc\xab\x07\x63\x39\x67\xdc\x6e\x6b\x4a\x24\xb3\x97\x1e\x3a\xb9\xda\x4e\x7e\xe0\x5f\xf9\x6a\x29\xf5\x00\x4d\x3c\xaa\xf9\x1a\x50\x86\xe1\x67\xaf\x46\xb2\x79\x71\x1f\x1f\xd5\xc2\x95\x6b\xe5\x3d\x6d\x4d\xda\xed\x92\xeb\x7a\xaf\x12\x8f\xa9\x6e\x74\xb1\x0c\xa5\xa3\xdf\x1a\x37\x58\x64\x06\xc1\x76\xd1\xd6\xfb\x85\x74\x94\x6e\xa2\xf8\x26\xf3\xdd\x25\xe3\x33\xd3\x07\x4a\x7e\xe4\xc1\xcc\x81\xe9\x25\xe6\xe6\x3e\x4d\x3d\xca\x82\x7b\x6c\xd1\xcd\xfa\x9e\xef\xf4\x2d\x17\x79\xa1\x6b\xfc\xd0\xb6\x0c\xff\x63\xc2\x70\x9a\xb5\x4b\x79\x28\x4e\x6f\xc3\x9f\xa0\x1c\x82\x72\x08\xca\x21\x28\x87\xa0\x9c\x93\x05\xe5\x34\x5c\x0b\x0e\x02\x73\xfa\x5b\x16\xdf\xe5\x12\xfc\x56\x9e\x92\x91\xca\xa6\xa0\xbb\x30\x58\xc9\xa5\xb6\x8e\x8c\x0b\x74\xc7\x0f\x96\x0e\xba\x6d\x86\x60\x3c\xec\x6e\xe6\xff\x98\x8b\x4f\x66\x3e\x33\xa6\xcb\x4a\xf9\xf1\xcb\xb2\x5d\x53\x95\x08\xc2\xd5\x17\xe9\xa7\x7e\xb9\x70\xa3\xae\x1f\xa4\x97\xee\x95\x3f\x5f\x9a\xaf\x3f\x5f\x8a\x07\xd7\x97\x9e\xfb\x9f\x74\x21\xb9\x57\x42\x2e\x16\x7a\x74\x5e\x1b\x00\xbc\xd8\x6e\xc3\xcc\xe5\x67\xd1\xf6\x24\xb3\x3f\x9d\x8b\xf7\xae\x9e\x1c\x73\xb7\x1e\x84\x87\xcf\xa6\xa7\x1f\xe3\x2a\x32\xdb\x63\xbd\x47\x09\xd6\x5f\xda\x74\xa8\x79\x82\x77\xe9\xb3\xf7\xe6\xe2\x3b\xdc\x98\xe9\x47\x8f\x5f\xd8\x2f\xc1\x77\xb1\x94\xe1\xbd\x5c\xee\xf8\xcc\xb3\x4d\x8d\x0a\x1f\x82\xf0\x31\xee\x93\xc2\xf6\xfa\x6d\xef\x89\xca\x9b\x4b\x1b\xbd\xa9\xc5\xba\x32\x6d\xeb\xc6\xd6\xa4\xe3\x2e\xb6\x5b\x61\x6d\x2b\x98\xa2\xe6\x69\x1f\x47\x1a\x22\xeb\x6f\x53\x6b\x60\x9e\xeb\xcc\x74\x1d\x49\xb7\xda\x57\x99\x8f\x79\xf7\xc7\xe6\xe2\xd6\x71\xd4\xca\x54\x4d\xcd\xef\xec\x66\xe6\x19\x66\xe2\x2a\x19\x80\xbb\x03\x34\xfa\x51\xcc\xfe\x29\x9d\xaf\xcb\x30\xd8\xf8\x8b\xf8\x28\xed\xab\xd5\x07\xed\x35\x9c\x31\x21\x13\xfb\x78\xf7\x22\xe9\x13\xdc\x67\x57\xfa\x51\xcc\x3e\x04\xa1\xca\x5d\x56\x38\x32\x72\xe4\x22\x7e\xfa\xa4\x7d\x8c\x3b\x5f\x5f\x2f\x32\x5b\xcf\x83\x0b\x3e\x64\xd7\x68\x33\x20\x57\xfb\xc3\x7d\x40\x4f\x01\xb1\x57\xe3\x89\xbd\x6a\x36\xba\xaa\xe2\xaf\xfa\xdb\xcc\x0f\x19\x89\xd5\xac\x9d\x2a\xa2\xb1\xfa\x5b\xf0\x6d\x8d\xcb\x6a\xd6\x84\x87\xb1\x59\xcf\x5d\x4e\x0b\x59\x33\xa1\x12\x47\x12\xbd\x4f\x6b\xb9\xde\x8c\xbe\xb2\x73\x59\x84\x44\xee\xb4\x92\xa4\x7d\xb3\x78\x6f\x0d\xab\x2e\xf2\xf7\x0f\x82\x2f\x8a\xd3\xf8\xcb\xa2\x14\xf6\x93\xf9\xab\xf2\xf8\x3b\xd7\x18\x31\x2e\xb5\x30\x59\xdb\x53\xdb\x3f\x95\x17\x69\x1a\xa6\x11\x5f\x25\x1f\xa4\x41\x68\x06\xa1\x19\x53\x0c\xcd\x20\x98\x81\x60\x06\x82\x19\x08\x66\x20\x98\x61\xf0\x60\x06\x28\x39\xe0\x14\x70\x0a\x38\x05\x9c\x02\x4e\x01\xa7\x80\xd3\xd2\x45\x00\x96\x01\xcb\x80\x65\xc0\x32\x60\x19\x48\x1e\x57\x41\x93\x79\xce\x8d\xff\xed\x66\xbe\xe3\xb8\x9e\x72\x56\x69\x3d\x33\xe9\xaa\x7c\x68\x8f\x9c\xa4\x85\xde\x31\xb2\x41\x96\xcb\x06\x25\x9f\xfe\xda\x76\x72\x10\x75\x4c\xc3\xcc\x3e\x45\xc8\xc6\xe0\xcb\x9c\x70\x22\xf4\xd5\x2e\x11\xb4\x62\x20\x9d\x6c\x7e\xec\x24\x35\x94\xf4\xa4\x7c\xb7\x5b\x9b\x9e\xa4\x3d\x12\xbf\x48\x5f\x2e\x55\x68\x7c\x6b\x66\xca\x8c\xa2\xc0\x71\xf5\x66\x31\xf3\x62\x49\xed\x8c\x0c\x42\xa1\xfc\x75\x6c\xcc\xa6\xbb\xe7\x47\x19\x8f\xa2\xf8\x90\x48\xa5\x16\x61\x3e\x09\x27\x4d\xd6\xd1\x16\xb1\xf6\x58\x05\xa1\xb8\x79\xfd\x43\x7c\x6c\x28\x1d\x8d\xa8\xbc\xc0\x5f\x1a\xfb\x4f\x7b\x95\xe2\xed\xbf\x74\x7d\x33\x4f\x69\xaf\xcd\xf6\x58\xed\xb6\x4f\x00\x9a\xb8\x7f\x12\x7a\xe1\x7c\x73\x7d\xbd\x0c\x3c\xe9\x2f\xe7\x41\xb8\xbc\x5e\x7d\x5d\x5e\x6f\x7c\xd7\x09\x16\xea\xfa\x6f\x1f\xa3\xbb\xf8\x2a\xad\xdd\xc0\x49\xe3\x74\xd9\x3d\x56\x19\x8c\xe3\xb5\xe3\x9a\xda\x70\xaf\x1b\xd8\x70\x6f\x8d\x4f\xcb\xb6\x1b\x7f\x5d\x7b\xe3\x26\xec\xd6\xb6\x3b\x9f\x9e\xd9\xac\xcd\x93\x51\x98\xcd\x17\xa2\x4b\x41\x99\x82\xd2\x48\x27\xd4\x95\x69\x6e\xab\x1d\x6a\xc9\x0c\x6e\xab\x8d\x44\xb4\x03\xcb\x2c\xdf\xc9\xd6\x5a\x66\xa4\x49\x9f\x51\x9a\x34\xf9\x60\xe4\x83\x91\x0f\x46\x3e\x18\x9b\xca\xb2\xb7\xc8\xca\x8c\x8a\x61\x36\x68\x24\x84\xd4\x24\x84\x8c\x63\x9f\x96\x79\xbe\x3b\x4f\x03\xd1\x41\x02\xbb\xe6\x57\xd3\x6d\x55\x7c\x6a\x3f\xb9\x1f\x39\xf3\x44\xfd\x5b\x47\x74\xdd\xc7\x9f\xa4\xb3\x9e\x0b\xf1\x3e\xfe\x3f\xfd\xfb\xa3\x74\xb5\x3b\x30\x12\x8e\xb7\x89\xd6\x2a\xdc\x2e\x3a\x26\xf4\x53\x78\xee\x57\x25\x66\xd9\xbd\xce\x62\xdb\x32\xb5\x87\xe6\xe2\xce\x93\xbe\x9f\x44\x64\x68\x8b\x45\x7a\xc6\x48\xba\xf9\xa1\xcd\x2c\xae\xef\x71\x20\x5b\x22\x6b\xb4\xcc\x14\xbf\x4f\x9b\x2f\x7e\x52\xf1\xde\xb4\x58\xbc\x7e\xac\xa2\xb4\x75\x92\xa0\xa7\x4d\xa4\x42\x1d\xad\xb4\xb5\xaa\x9f\x4e\xdc\x50\xf1\xcd\x4c\x17\xb5\xdb\xbd\xc8\xe1\xc6\x2b\x5a\x20\xe2\xb9\x76\x5c\xab\x43\x0b\xf8\x9d\x2f\x00\x54\x71\x0b\x94\x01\x2a\x7e\x66\x78\x7e\x27\x3c\x5f\x47\x09\xb5\xd2\xff\xbf\xd2\xe7\xfe\xbd\x7a\xce\x7e\x54\xe1\x52\x35\x3a\x32\x5a\x87\x72\xad\x96\xae\x73\xd5\xfc\x9c\xf8\xf3\x53\x72\xa4\x5e\x1d\x9a\xd8\x5d\x3a\xac\x54\x67\xad\x99\x88\xb6\x96\x36\x98\xfe\x55\xab\x3c\xdb\xa7\x8a\x42\xa8\xd8\xc9\xdc\xed\x06\x99\x09\xfc\xdd\x13\xf7\x77\x9f\x4f\x24\xc2\x5e\x2e\x48\xfa\x72\x99\x7c\xa5\x95\x09\xdf\x4e\x72\xe0\x5f\x94\xcc\x49\x2f\xb5\xb7\xcf\x24\x29\x4b\x4f\x9f\xe9\x07\xfe\x95\x39\x5b\x1f\xa1\x1d\xee\x91\x78\xf1\x53\x14\xf8\x77\x26\x15\xfc\x97\x78\xf6\x4b\x3e\x7f\x4a\xe7\xc4\xed\x1f\x5f\xda\x14\x22\xd1\x7c\xdc\x7c\x08\x42\x47\x13\x89\x65\xa0\x3b\x3f\x10\x9f\x2f\x1f\xe2\xbf\x7d\xbe\x14\xb7\x3b\xad\x39\x17\x1f\xd7\x09\x3e\xd0\x7b\xa1\xe4\x45\xbd\x92\x8e\xee\x00\x9d\x4c\xec\xb9\x4e\xe2\x10\xd5\x5b\xa7\xe0\x7b\xd2\xb7\x26\xd9\x76\xa5\x82\x95\xa7\xe6\xc2\xfc\xa6\xd6\x10\x48\xc7\x94\x8e\xef\x2f\xec\x88\xec\xe7\xdb\x34\x6f\xfc\x43\xec\xa0\xcc\x17\xec\xa0\x6c\xd8\x41\xad\xf6\x62\xc7\x47\xb1\x87\xda\x74\xee\x61\x5b\x79\xd2\x69\x6b\xe0\x25\x67\x9f\x85\x89\x47\xa0\x29\xe6\xdd\x79\x99\x77\x16\x59\x51\x2c\xf6\xd9\x37\x04\x9a\x9e\x97\x95\xb2\x19\x89\x9f\xf7\x42\x34\x8c\xd6\x2c\xaf\xf3\x37\x16\x19\xb9\xfc\x79\x1f\x82\xf0\xd6\xf3\x32\xab\xc7\x8a\x8a\x99\xa5\x27\x90\x3a\x49\xea\xe4\xe5\xd9\xa4\x4e\x22\xca\x38\x61\x51\xc6\x7a\x28\x54\x27\xc8\xd8\xbe\x2a\x7b\x33\xe0\x85\x0c\x23\x32\x8c\xc8\x30\x22\xc3\x38\x35\x19\xc6\xfa\x99\xb7\x50\x82\xf1\xc4\xe1\x05\xbd\x09\x2f\xd6\x3f\x7e\xb9\xe8\xa2\xcd\x6d\x70\x8c\xd4\x62\x7d\x1b\x94\xcb\x2c\x9e\xb8\x0d\x10\x57\x44\x5c\x11\x71\x45\xc4\x15\x11\x57\x3c\x99\xb8\x62\x83\xd9\xff\x40\x58\xb1\x32\xff\xf0\x8c\xa2\x0b\x9b\x3d\x0d\xe2\x90\x23\x13\x87\xac\x1f\x44\x55\xc2\x90\x27\x1e\x4d\x83\xca\x41\xd6\xb7\x4c\x85\x14\xe4\xa9\x67\x0d\x5b\x05\x20\xeb\x1b\xad\xc0\x7b\xdf\xda\x9d\x95\x7c\xfa\xab\x29\xc1\xd1\xbf\xdd\x50\x75\xe3\xa4\x78\x27\x31\x87\xfc\x85\xfb\xcd\x5d\x6c\xa4\x97\xef\x45\x99\x6d\x79\x76\xbc\xcf\xf3\x5c\x82\xf9\x9b\xcc\x2e\x9d\xe9\x2b\xcd\xb6\x4e\xae\x1d\xaf\x45\x86\x83\x84\xeb\x47\x6b\x25\x77\x16\x90\x7d\x58\xf4\xbd\x61\xcc\xf3\xcf\x7b\x2e\x78\x58\x91\xad\x99\xb4\x7a\x92\x78\x1f\x6f\x83\xce\x17\x18\xe9\x2e\x84\x1a\x41\x8d\xa0\x46\x50\x23\xa8\x11\xd4\x08\x6a\x04\x35\x82\x1a\x41\x8d\xa0\x46\x50\x23\xa8\x11\xd4\x08\x6a\x04\x35\x1a\x1f\x35\x42\x8c\x03\x5c\x06\x2e\x03\x97\x81\xcb\xc0\x65\x56\xe0\xb2\x02\x91\xfa\x13\x51\xb3\x3c\x2a\xf3\xd3\xe5\xbf\x30\x33\xaa\x13\x64\xf6\x6a\x6b\xf2\xeb\x6d\x4d\x62\x1e\xc6\xbb\x86\xed\x5e\x66\xb6\xb3\x07\xce\x5d\xbb\x0b\xe0\x06\x6c\x03\xb6\x8d\x08\xb6\x01\xda\x00\x6d\x80\x36\x40\x1b\xa0\x0d\xd0\x06\x68\x03\xb4\x01\xda\x00\x6d\x80\x36\x40\x1b\xa0\x0d\xd0\x06\x68\x03\xb4\x8d\x0b\xb4\x21\xe4\x0f\x3b\x84\x1d\xc2\x0e\x61\x87\xb0\x43\xd8\xe1\xd1\xec\x90\x9c\xba\x3d\xc4\xb7\x9f\x49\x87\x0a\xe3\x7e\xb7\x02\xfb\x46\x04\xfb\xc8\xac\x03\xf8\x01\xfc\x00\x7e\x00\x3f\x80\x1f\xc0\x0f\xe0\x07\xf0\x03\xf8\x01\xfc\x00\x7e\x00\x3f\x80\x1f\xc0\x0f\xe0\x37\x3e\xe0\x07\x24\x02\x12\x01\x89\x8a\x47\x13\x90\xa8\xf4\x3d\x03\x12\x1d\x0f\x89\xee\xd5\x5a\xde\x5c\xb7\x82\x42\x83\x54\xca\xdb\xeb\xf3\xa5\x5a\xef\xda\x79\xa6\x7b\x2b\x70\xd0\x52\xed\x94\xe3\xd2\xcf\x7f\x7b\xf7\xf1\xf7\xa2\x53\xa9\x11\x78\x24\x93\xc9\x35\xe4\xe4\x6a\x64\xe9\x91\x92\x3b\xf7\x22\xff\xfb\x4d\x5f\x34\xd7\x5f\x86\x2a\x8a\x1c\x4f\x46\xbb\x3d\x79\x69\x6c\xe9\x6e\x71\xac\xb9\xa6\x70\x02\x2f\xde\xba\x27\x6b\xc0\x47\x73\x0b\x6f\xe3\x5b\xa8\x78\x4f\xcc\xb9\x07\xaf\xca\xdb\xec\x5a\x65\xd7\x69\x5a\xa0\x17\xbe\x73\x3e\x7c\xa7\x59\xfd\xd7\x3a\xc6\xf3\xdc\xa2\xef\xaf\xca\x07\x63\xbb\x6a\xd1\x27\x99\x43\xdf\xe9\x17\xef\x37\xfd\x62\x44\x9d\xd4\x86\x86\x5d\xc1\xae\x60\x57\xb0\xab\xa9\xb1\xab\x66\xab\x4a\x21\xbf\xea\xad\xe0\x3b\x75\xf9\x1b\x77\xd4\x90\x75\xf9\x7b\x03\x8e\x47\x54\xc2\x2f\x04\x6e\xbd\xb5\xc8\x1f\x79\xd7\x91\xeb\x8b\xc8\x78\x74\xc4\xbd\x7a\x30\x96\x73\xe6\x9c\xde\x9a\x12\xc9\xec\xa5\x87\xce\x46\x99\xc5\xe1\x5e\x09\x3f\xf0\xaf\x7c\xb5\x94\x7a\x80\x26\xce\x9f\xb9\xf8\x23\x5b\xb0\x0d\xa8\xca\x5e\x8d\x64\xd7\xe2\x3e\x3e\xaa\x85\x2b\xd7\xca\x7b\xda\x9a\xb4\xdb\x25\xd7\xf5\x5e\x25\xce\x1d\xdd\xe8\x62\x19\x4a\x47\xbf\x35\x6e\xb0\xc8\x0c\x82\xed\xa2\xad\xf7\x0b\xe9\x28\xdd\x44\xf1\x4d\xe6\xbb\x4b\xc6\x67\xa6\x0f\x94\xfc\xc8\x83\x99\x03\xd3\x4b\xcc\xcd\x7d\x3e\x2a\xe9\x17\xde\x63\x8b\x6e\xd6\xf7\x7c\xa7\x6f\xb9\xc8\x61\x56\xe3\x32\xb3\x65\xf8\x1f\xc3\x9a\x9b\xb5\x4b\x39\x6f\xee\x6d\xf8\x43\x9e\x21\xcf\x90\x67\xc8\x33\xe4\xf9\x64\xe4\xb9\xe1\x5a\x70\x40\x9f\xfb\x5b\x16\xdf\xe5\x32\x53\x56\x9e\x92\x91\xca\xa6\xa0\xbb\x30\x58\xc9\xa5\xb6\x8e\x4c\x24\xfc\x8e\x1f\x2c\x1d\x74\xdb\xd4\x96\x78\xd8\xdd\xcc\xff\x31\x17\x9f\xcc\x7c\x66\x4c\x97\x95\xf2\xe3\x97\x65\xbb\xa6\x2a\x11\x84\xab\x2f\xd2\x4f\xfd\x72\xe1\x46\x5d\x3f\x48\x2f\xdd\x2b\x7f\xbe\x34\x5f\x7f\xbe\x14\x0f\xae\x2f\x3d\xf7\x3f\xe9\x42\x72\xaf\x84\x5c\x2c\xf4\xe8\xbc\x36\xac\x6a\xb1\xdd\x86\x99\xcb\xcf\xa2\xed\x49\x66\x7f\x3a\x17\xef\x5d\x3d\x39\xe6\x6e\x3d\x08\x0f\x9f\x4d\x4f\x3f\xc6\x55\x64\xb6\xc7\x7a\x8f\x12\xac\xbf\xb4\xe9\x50\xf3\x04\xef\xd2\x67\xef\xcd\xc5\x77\xb8\x31\xd3\x8f\x1e\xbf\xb0\x5f\x82\xef\x62\x29\xc3\x7b\xb9\xdc\x71\x96\x67\x9b\x1a\x15\x3e\x04\xe1\x63\xdc\x27\x85\xed\xf5\xdb\xde\x13\x95\x37\x97\x36\x7a\x53\x8b\x75\x65\xda\xd6\x8d\xad\x49\xc7\x5d\x6c\xb7\xc2\xda\x56\xd0\xce\x89\xac\x8f\xe3\xc5\x3a\x59\x49\x53\x6b\x60\x9e\xeb\xcc\x74\x1d\x49\xb7\xda\x57\x99\x8f\x79\xf7\xc7\xe6\xe2\xd6\x71\xd4\x6a\xad\xd7\xa6\xfc\xce\x6e\x66\x9e\x61\x26\xae\x92\x01\xb8\x3b\x40\xa3\x1f\xc5\xec\x9f\xd2\xf9\xba\x0c\x83\x8d\xbf\x88\x8f\xd2\xbe\x5a\x7d\xd0\x5e\xc3\x19\x13\x32\xb1\x8f\x77\x2f\x92\x3e\xc1\x7d\x76\xa5\x1f\xc5\xec\x43\x10\xaa\xdc\x65\x85\x23\x23\x47\x2e\xe2\xa7\x4f\xda\xc7\xb8\xf3\xf5\xf5\x22\xb3\xf5\x3c\xb8\xe0\x43\x76\x8d\x36\x03\x72\xb5\x3f\xdc\x07\xf4\x14\x10\x26\x32\x9e\x30\x91\x66\xa3\xab\x2a\x54\xa4\xbf\xcd\xfc\x90\x41\x23\xcd\xda\xa9\x22\x70\xa4\xbf\x05\xdf\xd6\x10\x92\x66\x4d\x78\x18\x46\xf2\xdc\xe5\xb4\x10\x32\x13\x15\x71\x24\xd1\xfb\xb4\x96\xeb\x4d\x53\x94\x37\xce\x60\x88\xdc\xb9\x25\xa9\xaa\x66\x05\xdf\x5a\x57\x3d\x66\xac\x96\x44\x2a\xec\x27\xac\xee\x3d\xd3\x61\xd6\x6a\xe7\xe9\xf2\xc6\xb7\x16\x26\x8b\x7c\xba\x09\x48\x75\xb4\x1b\x06\x6a\xc4\x17\x39\x08\xd3\x20\x38\x83\xe0\x8c\xc9\x04\x67\x10\xce\x40\x38\x03\xe1\x0c\x84\x33\x10\xce\x30\x78\x38\x03\x9c\x1c\x74\x0a\x3a\x05\x9d\x82\x4e\x41\xa7\xa0\x53\xd0\x69\xe9\x22\x00\xcd\x80\x66\x40\x33\xa0\x19\xd0\x0c\x04\x3e\xab\xb0\xc9\x3c\xe7\xc3\x4f\x5c\xf0\xf3\xbc\xf3\x7a\xf2\x69\xa4\xf5\xe4\xa4\x67\x7d\xcf\xae\x68\x49\x0b\x8d\xcf\xb1\xe8\x7e\x5c\xec\xf5\xdd\xe5\x2a\x88\x3a\x46\x43\xc6\x76\x17\xd2\x6f\x8a\x81\xcc\x09\x9d\x83\xa0\x76\x89\x91\x15\xf5\x05\x4e\x3a\x5b\x74\x92\x2e\x49\xca\x4e\xbe\xeb\xad\x4d\xd9\xd1\x7b\xf4\x5f\xa4\x2f\x97\x2a\x34\xde\x26\x53\x4d\x23\x8a\x02\xc7\xd5\xdb\xa7\xcc\xaf\x23\xb5\x7b\x2e\x08\x45\xbc\xbb\x5e\x3f\x65\xfb\xc9\x47\x19\x8f\xa4\xf8\x90\x48\xa5\x36\x52\x3e\x31\x25\x4d\x60\xd1\x36\xa2\xf6\xe1\x04\xa1\xb8\x79\xfd\x43\x7c\x6c\x28\x1d\x0d\x6d\xbc\xc0\x5f\x1a\x8b\x48\xfb\x59\xe2\x0d\xb1\x74\x7d\x33\x4b\x69\x3f\xc6\xf6\x58\xed\xc8\x4e\x90\x92\xb8\x7f\x12\x7a\x19\x79\x73\x7d\xbd\x0c\x3c\xe9\x2f\xe7\x41\xb8\xbc\x5e\x7d\x5d\x5e\x6f\x7c\xd7\x09\x16\xea\xfa\x6f\x1f\xa3\xbb\xf8\x2a\xad\x1d\xa3\x49\xe3\x74\xd9\x3d\x56\x99\x50\xe3\xb6\x6c\x9a\x5a\x35\xaf\x1b\x58\x35\x6f\x8d\xa7\xc7\xc6\x9b\x7f\x5d\x7b\xf3\x26\x24\xd5\xc6\xbb\x9f\xa8\x41\xa9\xad\x95\xd1\x18\x94\x17\xa2\xb5\xbe\x4a\x41\x41\xfc\x13\xca\xac\x34\xb7\xd5\x4a\xb4\x55\x86\xb1\xd5\x46\x22\x62\x81\x55\x96\xef\x64\x6b\xad\x32\xd2\x86\xcf\x28\x6d\x98\xfc\x28\xf2\xa3\xc8\x8f\x22\x3f\x8a\x0d\x65\xd9\x5b\x64\x65\x86\xc1\x30\x9b\x32\x12\x24\x92\xe3\x2a\x13\x24\xc6\xb3\x2f\xcb\x9c\xdf\x9d\xa7\x45\x68\x76\xbe\x6b\x87\x35\xdc\x58\xc5\x67\x9e\x3a\x17\x22\x67\xa0\xa8\x7f\xeb\x08\xa7\xfb\xf8\x93\x74\xd6\x73\x21\xde\xc7\xff\xa7\x7f\x7f\x94\xae\x76\x06\x46\xc2\xf1\x36\xd1\x5a\x85\xdb\x65\xc7\x84\x42\x0a\xcf\xfd\xaa\xc4\x2c\xab\x3c\x38\x8b\xad\xcb\xd4\x22\x9a\x8b\x3b\x4f\xfa\x7e\x12\xa1\xa0\x6d\x16\xe9\x19\x33\xe9\xe6\x87\x36\xf3\xb8\xbe\xc7\x81\xac\x89\xac\xd1\x32\x63\xfc\x3e\x6d\xbe\xf8\x49\xc5\x7b\xd3\x62\xf1\x0a\xb2\x8a\xd2\xd6\x49\x82\x80\x36\x91\x0a\x75\xf4\xce\xd6\xae\x7e\x3a\x71\x43\xc5\x37\x33\x5d\xf4\x6c\xf7\x32\x87\xf3\xce\x1c\x57\xb2\x4c\xc4\xb3\xed\xf8\xd6\x88\x16\x30\x38\x5f\xf5\xbd\xfc\x36\xc6\x54\xf4\x7d\xbc\x78\x5b\x07\x92\xb4\x12\x85\xbf\xd2\xe7\xfe\xbd\x7a\x1a\x7b\x54\xe1\x52\x35\x3a\x32\x5a\x87\x72\xad\x96\xae\x73\xd5\xfc\x9c\xf8\xf3\x53\x72\xa4\x9e\x30\x9b\xd8\x20\x3a\xf2\x50\x27\x36\x99\xa0\xa7\x76\xf6\xc8\x6a\xbf\xf6\xf0\x04\x99\x7c\x85\x5d\x7f\xb7\x1b\x80\x24\xf0\xfe\x4e\xdc\xfb\x7b\x3e\x4c\x7e\x2f\x4f\x20\x7d\xb9\x4c\x2e\xcb\xca\x84\xf6\x26\xf9\xd1\x2f\x4a\x26\xa3\x97\xda\xf7\x65\x12\x58\xa5\xa7\xcf\xf4\x03\xff\xca\x9c\xad\x8f\xd0\xee\xe7\x48\xbc\xf8\x29\x0a\xfc\x3b\x93\x26\xfc\x4b\x3c\xed\x25\x9f\x3f\xa5\x93\xe1\xf6\x8f\x2f\x6d\x0a\x16\x68\x3e\x6e\x3e\x04\xa1\xa3\xfd\xf3\xcb\x40\x77\x7e\x20\x3e\x5f\x3e\xc4\x7f\xfb\x7c\x29\x6e\x77\x5a\x73\x2e\x3e\xae\x13\x67\xba\xde\x17\x24\x2f\xea\x95\x74\x74\x07\xe8\x44\x53\xcf\x75\x12\xf7\xa0\xde\x46\x04\xdf\x93\xbe\x35\x89\x98\x2b\x15\xac\x3c\x35\x17\xe6\x37\x75\x7e\x79\x3a\xa6\x74\xec\x77\x61\x47\x64\x3f\xdf\xa6\x79\xe3\x1f\x62\x37\x61\xbe\x60\x37\xb1\xf3\x4c\x43\xef\x26\x56\x7b\x01\xc6\xa3\xd9\x4f\x6c\x3a\xf7\x39\xad\x3c\xe9\xb4\x34\xf3\x92\x93\x27\x6e\xe8\x11\x7c\x89\xa1\x77\x7e\x86\x9e\x45\xf6\x14\xcb\x7e\xf6\x0d\xc1\x97\x0d\x6e\x7e\xaa\x36\xcb\x66\x44\x1e\xd0\x0b\x71\x7c\xf4\xe2\x6e\x61\xb8\x61\x54\xc7\x2a\xac\x9d\x2a\xc1\xb1\x0f\x41\x78\xeb\x79\x19\xd0\xb2\xa2\x9a\x62\xe9\x09\x64\xda\x25\xbd\x46\x92\xdd\x40\x49\x76\x3d\x23\x15\x64\xfc\x26\x2c\xe3\x57\xcf\x88\xea\x24\xfc\xda\x17\x1d\x6e\xc6\xbf\x10\xee\x43\xb8\x0f\xe1\x3e\x84\xfb\xa6\x26\xdc\x57\x3f\xf3\x16\x8a\xf6\x9d\x38\xda\xa0\x37\xa9\xbe\xfa\xc7\x2f\x97\xe9\xb3\xb9\x0d\x8e\x11\xe7\xab\x6f\x83\x72\x61\xbe\x13\xb7\x01\x72\x7c\xc8\xf1\x21\xc7\x87\x1c\x1f\x72\x7c\x27\x93\xe3\x6b\x30\xfb\x1f\x48\xf1\x55\xe6\xe8\x9d\x51\xb0\x61\xb3\xa7\x41\x4e\x70\x64\x72\x82\xf5\x83\xa8\x4a\x4a\xf0\xc4\xa3\x69\x50\x01\xc1\xfa\x96\xa9\x10\x0f\x3c\xf5\xac\x61\xab\x64\x60\x7d\xa3\x15\x38\xf0\x5b\xbb\xb3\x92\x4f\x7f\x1d\x05\x6f\xfc\x0c\x7a\x18\xd9\x09\xfd\xf9\x7f\xc5\x4c\xe7\x84\x2a\x14\xb9\xfc\xdc\xe0\xa1\x01\xcd\x29\xd1\xa2\x78\x9b\x5d\x26\x83\x39\x8b\x82\x8b\x51\x4f\x06\x47\xf4\xe8\xea\xc9\x4c\x5a\x27\x05\x27\x3b\x4e\x76\x9c\xec\x38\xd9\xa7\xe6\x64\x1f\x43\x75\x1c\x82\x57\x1b\x77\xd4\x90\xc1\xab\x14\x31\x42\xb5\xeb\x8c\x55\xbb\xa8\x58\x05\x22\x03\x91\x81\xc8\x40\x64\x20\x32\x2a\x56\x21\x66\x89\x98\x25\x62\x96\x88\x59\xee\x8f\xc8\x1e\x3c\x05\xf0\xec\xf1\xf0\x6c\xca\xe3\x51\x1e\x8f\xf2\x78\xdb\x4b\x9d\x77\x7a\x31\x5a\xb6\xc9\x71\x95\x5a\xb6\x5b\xeb\x6a\x5c\x99\x75\xe3\xc8\xb8\x25\x2e\x83\xb8\x8c\x69\xc5\x65\x10\xc9\x40\x24\x03\x91\x0c\x44\x32\x10\xc9\x30\x78\x24\x03\x88\x1c\x6a\x0a\x35\x85\x9a\x42\x4d\xa1\xa6\x50\x53\xa8\x69\xe9\x22\x00\xc8\x00\x64\x00\x32\x00\x19\x80\x0c\xd4\x07\xab\x88\x09\xea\x83\xa2\x82\x97\x9c\x85\xfa\x60\x62\x2e\x19\xa1\x68\x7f\x21\xe2\x5e\x12\x91\x13\xac\xd4\x2b\x11\x6d\x1c\xbd\x66\xe9\xa9\x5e\xc9\x47\x33\x4f\xad\xc2\x40\x9b\x67\x45\xa9\xc0\xd5\x25\x9f\x34\x18\xd9\xfd\x9a\xba\x4f\x75\x4f\x93\x7c\xca\xd5\x7d\x0a\xa2\x8e\x49\x98\xd9\xaa\xe4\x4a\xe5\x57\x50\x2f\x73\xec\x69\xb8\xd7\x68\x94\xf5\x11\xd5\x3f\x9f\xbc\x24\x44\xf5\x11\xd5\x2f\xb8\x99\x31\xd8\x70\x63\xd5\xd3\xb7\xbb\x64\x76\x07\x37\x3e\x51\x83\x59\x5b\x26\x63\x30\x98\x2f\x44\x87\x12\x32\xe6\xaf\xff\xeb\x49\x49\xa6\x91\x91\x56\x22\x1f\x33\xa0\x91\x36\x12\x9d\x0e\x6c\xb2\x7c\x27\x5b\x6b\x93\x91\x19\x7d\x46\x99\xd1\xa4\x80\x91\x02\x46\x0a\x18\x29\x60\x6c\x27\xcb\xde\x22\x2b\x93\x28\x86\xd9\x9c\x91\x03\x92\x1c\x57\x99\x03\x32\x8a\x4d\x5a\xe6\xf0\xee\x3c\xf3\x43\x87\x07\xac\x8b\x6a\xca\x56\xec\xa9\xe2\x93\x7a\x49\xf7\xc8\xd9\x26\xea\xdf\x3a\x88\xeb\x3e\xfe\x24\x9d\xf5\x5c\x88\xf7\xf1\xff\xe9\xdf\x1f\xa5\xab\xbd\x80\x91\x70\xbc\x4d\xb4\x56\xe1\x76\xc5\x49\xaa\x6c\x7b\xee\x57\x25\x66\xd9\x5d\xce\x62\xc3\x32\x35\x86\xe6\xe2\xce\x93\xbe\x9f\x04\x61\x68\x73\x45\x7a\xc6\x42\xba\xf9\xa1\xcd\x14\xae\xef\x71\x20\x43\x22\x6b\xb4\xcc\x0e\xbf\x4f\x9b\x2f\x7e\x52\xf1\xde\xb4\x58\xbc\x78\xac\xa2\xb4\x75\x92\x38\x27\x5d\xb2\xdc\x91\x7e\xce\xa4\x7e\x3a\x71\x43\xc5\x37\x33\x5d\xba\x6e\xf7\x0a\x87\xff\xae\x6c\x71\x88\x27\xda\x51\xad\x0c\x2d\x78\xb7\x86\x37\x89\xef\xa4\xf0\x0e\x9a\x80\x6c\x5b\x18\x36\xf0\x7e\x74\xf0\x5e\x47\x05\x35\xb2\x66\xf6\x67\xe9\x2b\x7d\xee\xdf\xab\x27\xec\x47\x15\x2e\x55\xa3\x23\xa3\x75\x28\xd7\x6a\xe9\x3a\x57\xcd\xcf\x89\x3f\x3f\x25\x47\xea\xa5\xa1\x89\xb5\xa5\xc3\x48\x75\x96\x9a\x89\x60\x3b\xda\xf2\xd2\xbf\x67\x93\x33\xfb\x54\x11\x07\x15\x9b\x97\xbb\xdd\x68\x32\x81\x8b\x7b\xe2\x2e\xee\xf3\x09\x3b\xd8\x4b\xfa\x48\x5f\x2e\x93\x98\xb4\x32\x71\xda\x49\xb2\xfb\x8b\x92\xc9\xe8\xa5\x76\xf0\x99\x6c\x64\xe9\xe9\x33\xfd\xc0\xbf\x32\x67\xeb\x23\xb4\x8f\x3d\x12\x2f\x7e\x8a\x02\xff\xce\xe4\x7c\xff\x12\x4f\x7b\xc9\xe7\x4f\xe9\x64\xb8\xfd\xe3\x4b\x9b\xe2\x21\x9a\x8f\x9b\x0f\x41\xe8\x68\x08\xb1\x0c\x74\xe7\x07\xe2\xf3\xe5\x43\xfc\xb7\xcf\x97\xe2\x76\xa7\x35\xe7\xe2\xe3\x3a\x21\x06\x7a\x07\x94\xbc\xa8\x57\xd2\xd1\x1d\xa0\xb3\x86\x3d\xd7\x49\x7c\xa0\x7a\xc3\x14\x7c\x4f\xfa\xd6\x64\xd5\xae\x54\xb0\xf2\xd4\x5c\x98\xdf\xd4\x62\x01\xe9\x98\xd2\x81\xfc\x85\x1d\x91\xfd\x7c\x9b\xe6\x8d\x7f\x88\x7d\x93\xf9\x82\x7d\x93\x2d\xfb\xa6\xd5\x5e\xa0\xf8\x18\x76\x4e\x9b\xce\x7d\x6a\x2b\x4f\x3a\xc7\x1b\x77\xc9\x79\xe7\x60\xde\x11\x50\x8a\x65\x77\x56\x96\x9d\x45\x06\x14\xeb\x7c\xf6\x0d\x01\xa5\x67\x67\x9f\x6c\xc6\xe1\xd7\xbd\x10\xdd\x87\x65\x5e\x47\x06\xfb\xe6\xa2\x33\x4f\xc3\x13\xcd\xef\xa4\x2b\x5b\xf7\x64\x31\xc1\xd7\x4c\x5f\x4c\x03\xe0\x9d\xd2\x6e\x01\xef\x80\x77\xc0\x3b\x83\xe2\x9d\xf6\x0b\x61\x43\xd0\x53\xb0\x12\x8e\xd2\x1f\x00\xee\xc1\x29\x70\x7e\x4e\x01\x70\x4f\x97\xe3\x06\xdc\x83\x1b\x88\x7d\x14\xb8\x67\x28\xdc\xf3\x1c\xaf\x47\x43\xf0\x33\x15\x73\x0f\xfc\x83\xa5\x77\x56\x96\x9e\x45\x06\x15\xeb\x7e\xf6\x0d\xf8\xe7\xec\xec\x95\x29\xe2\x1f\x2d\xaf\x98\xd2\x1e\xc7\x93\xd1\xee\xab\xd3\x3d\xe4\x49\xb4\xa7\xfd\x85\xfb\xcd\x5d\x6c\xa4\x97\x97\xf5\x94\x99\xda\x7c\xf2\xf4\x6f\xe3\x1b\x9a\xe7\x32\xcf\xdf\x64\x39\xeb\x33\x7d\xa1\xd9\xb6\xf4\xc8\x4e\x2d\x89\xcc\x48\x12\xae\x1f\xad\x95\xdc\x71\x6f\xee\x9b\x50\xdf\x0b\xfd\x65\xf9\x5b\xf8\x79\x4f\xc2\x10\xbd\x4d\x5b\x93\x6b\xb5\x5c\xec\xfb\x6f\xca\x3f\x77\xd5\x4d\xdd\x8f\xc3\x48\x6f\xea\x57\xa6\x67\x60\x45\x71\xaf\x09\x17\xf7\xaa\xa7\x51\x75\x85\xbd\x2a\xdd\x5d\x1d\x90\x36\xca\x79\x51\xce\x8b\x72\x5e\x94\xf3\x9a\x5a\x39\xaf\xfa\x99\xb7\xb0\x94\xd7\x89\xe3\x1a\x7a\x2b\xe0\x55\xff\xf8\xe5\xc5\xbb\x6c\x6e\x83\x63\x4a\x76\xd5\xb7\x41\x79\xb9\xae\x13\xb7\x01\x45\xba\x28\xd2\x45\x91\x2e\x8a\x74\x51\xa4\xeb\x64\x45\xba\x1a\xcc\xfe\x07\x05\xba\x2a\x15\x2d\xcf\x28\xac\xb1\xd9\xd3\x50\x64\x6c\x64\x45\xc6\xea\x07\x51\x55\x81\xb1\x13\x8f\xa6\x41\xcb\x8a\xd5\xb7\x4c\x45\x49\xb1\x53\xcf\x1a\xb6\x16\x12\xab\x6f\xb4\x02\x87\x7e\x6b\x77\x56\xf2\xe9\xaf\x67\x43\xa2\x02\xb9\xf6\x13\xb1\xa2\x3c\x20\xf2\xd3\x25\x2f\x78\x10\x5f\x5d\x7f\xd1\x3d\x28\x7a\xb5\xb5\x72\xb5\x25\x9f\x58\x44\xb1\xa1\xbc\x35\xdf\x67\x3b\xdb\xbe\xdc\xb5\x9f\x87\x99\x40\x4c\x20\xa6\xb1\x21\x26\xf0\x12\x78\x09\xbc\x04\x5e\x02\x2f\x81\x97\xc0\x4b\xe0\x25\xf0\x12\x78\x09\xbc\x04\x5e\x02\x2f\x81\x97\xc0\x4b\xe0\xa5\xf1\xe1\xa5\x02\xed\x93\x02\x97\xc3\x98\x04\x50\x00\x66\x00\x33\x80\x59\xf1\x68\x02\x98\x95\xbe\x67\x00\xb3\x4e\x80\x99\x4d\x09\x55\xc3\xe6\x52\xfd\xec\x46\xeb\x0f\x41\x78\xeb\x79\x59\x76\x3a\xcc\x0b\xe6\x35\x3a\xe6\x35\x4c\x5a\x15\xc8\x0b\xe4\x05\xf2\x02\x79\x81\xbc\x40\x5e\x20\x2f\x90\x57\x97\xb3\x2d\xc8\x0b\xe4\x05\xf2\x02\x79\x81\xbc\x40\x5e\x20\xaf\xb3\x43\x5e\x00\x22\x00\x11\x80\xa8\x78\x34\x01\x88\x4a\xdf\x33\x00\xd1\xf3\x00\x51\x5d\xed\xa5\xb3\xe7\x46\x07\x22\xc6\x08\xf1\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x3d\xf8\x7e\xa9\xa9\x0c\x2a\x03\x95\x81\xca\x40\x65\xa0\x32\x1b\x50\x99\x5d\x72\x84\xa3\x54\x22\x3c\x80\x6d\x80\x36\x40\xdb\xd8\x40\x1b\x90\x0d\xc8\x06\x64\x03\xb2\x01\xd9\x80\x6c\x40\x36\x20\x1b\x90\x0d\xc8\x06\x64\x03\xb2\x01\xd9\x80\x6c\x40\x36\x20\xdb\xa8\x20\x5b\x81\x12\xe1\xf1\xf4\xcc\x16\x70\x06\x31\x84\x18\x42\x0c\x21\x86\x10\x43\x88\x61\x27\xc4\x30\x58\xa8\x94\x15\xb6\xc2\x7e\xa7\x46\x57\x4d\x90\xe2\x52\xad\x85\xeb\x3f\x04\xe1\x63\x36\xaa\xa5\x30\x20\xa2\x1c\xdf\x2d\xd5\xfa\xd7\x60\xa1\x6e\xef\x3e\xfe\x6b\xff\xc8\xa1\x30\xdd\x68\xe9\x59\xd6\x88\x63\x67\x67\xc1\x42\xe5\x8e\xbe\xc8\xff\x62\xf9\x7b\x93\x32\xf6\x51\xbf\x3f\x3b\xfb\x5b\x33\x21\xd6\xbf\x3c\x09\xf3\xbe\xbd\xfb\xf8\x7b\xd1\x49\xbc\x47\xc7\xbf\x47\x69\x43\xea\x1c\xdd\x09\xbc\x4e\x05\x10\xfa\xc8\xd7\x2a\xdc\xf8\xb1\x05\x91\x54\xcc\xcc\xbf\x64\xc6\x63\xd0\x6d\x78\x8a\xb9\xa6\x70\x02\xcf\x53\x4e\xba\x9a\xfc\x6e\x6e\xe1\xa0\xbc\xe4\xde\x5b\x61\xce\xcd\xbd\x18\x6f\xb3\xab\x94\x5d\xa1\x84\x5d\x8b\x9a\xde\x84\x5f\x4f\x98\x5f\x57\x98\x87\x47\x30\xec\x1a\x83\xb1\xda\x64\xdc\x9b\x61\xfe\x5b\x74\x77\xf7\xc1\xa2\xf4\xe6\x8a\xbe\x3b\xc9\x8c\xf9\x4e\xbf\x72\xbf\xe9\x17\x23\x6a\x38\x5f\x56\xbf\x5a\xb0\x79\xd8\x3c\x6c\x1e\x36\x3f\x35\x36\xdf\x6c\x55\x29\xe4\xf3\xd5\x0e\xac\xe7\xac\x24\x45\x6e\xd1\x84\x4a\xbc\xd2\xaa\x3a\x4e\x3c\xa2\xcc\x38\xd8\x79\xb6\xbc\x1d\x71\xaf\xc4\x2a\x6e\xad\x68\x1d\x2f\xd0\xb7\xbe\x70\x7d\x33\xb3\x04\xa1\xd8\xf8\xd9\xe4\xb4\x10\x8b\xf0\xe9\xf7\x8d\x2f\x16\x6e\x18\x1b\x65\xdf\x54\x36\xe2\xb5\x3f\xd0\x17\xd2\x4f\x5e\xf9\x74\x6c\x24\x0d\x2c\x1e\x36\xa1\x7e\xcb\x56\x61\xe0\xc4\x76\x83\x71\x99\xe6\xb8\xe9\x5c\xfc\xa9\x7f\x51\xf7\x96\x1e\x3b\x6f\xc4\x95\xb8\xf5\xbc\x37\x1a\xe5\x2c\xe2\x59\x7a\xe3\xc7\x1d\xbf\x54\x51\x36\x24\x93\xcb\xa9\x45\x8b\x8e\x32\xcf\x32\x4c\x37\xf5\x16\x50\xd1\xac\x29\xca\x83\x2a\x7a\x6b\x91\x3f\xf2\x4e\x55\xd7\x17\x91\xf1\x75\x8a\x7b\xf5\x60\x2c\xe7\x0c\xbe\x6d\x4d\x89\x64\xf6\xd2\x43\x67\xa3\xcc\xe2\x70\xaf\x84\x1f\xf8\x57\xbe\x5a\x4a\x3d\x40\x13\xb7\xe8\x5c\xfc\x91\x2d\xd8\x06\xc4\x67\xaf\x46\xb2\x5f\x71\x1f\x1f\xd5\xc2\x95\x6b\xe5\x3d\x6d\x4d\xda\xed\x92\xeb\x7a\xaf\x12\xb7\xa7\x6e\x74\xb1\x0c\xa5\xa3\xdf\x1a\x37\x58\x64\x06\xc1\x76\xd1\xd6\xfb\x85\x74\x94\x6e\xa2\xf8\x26\xf3\xdd\x25\xe3\x33\xd3\x07\x4a\x7e\xe4\xc1\xcc\x81\xe9\x25\xe6\xe6\x3e\x1f\x95\xf4\x0b\xef\xb1\x45\x37\xeb\x7b\xbe\xd3\xb7\x5c\xe4\x4a\xae\x71\x26\xdb\x32\xfc\x8f\x89\xa5\x69\xd6\x2e\xe5\xf1\x34\xbd\x0d\x7f\x22\x6b\x88\xac\x21\xb2\x86\xc8\x1a\x22\x6b\x4e\x16\x59\xd3\x70\x2d\x38\x88\xae\xe9\x6f\x59\x7c\x97\x4b\xd6\x5b\x79\x4a\x46\x2a\x9b\x82\xee\xc2\x60\x25\x97\xda\x3a\xba\x0b\x3c\xd7\x79\xda\xf1\x83\xa5\x83\x6e\x9b\xed\x17\x0f\xbb\x9b\xf9\x3f\xe6\xe2\x93\x99\xcf\x8c\xe9\xb2\x52\x7e\xfc\xb2\x6c\xd7\x54\x25\x82\x70\xf5\x45\xfa\xa9\x5f\x2e\xdc\xa8\xeb\x07\xe9\xa5\x7b\xe5\xcf\x97\xe6\xeb\xcf\x97\xe2\xc1\xf5\xa5\xe7\xfe\x27\x5d\x48\xee\x95\x90\x8b\x85\x1e\x9d\xd7\x86\xe2\x2e\xb6\xdb\x30\x73\xf9\x59\xb4\x3d\xc9\xec\x4f\xe7\xe2\xbd\xab\x27\xc7\xdc\xad\x07\xe1\xe1\xb3\xe9\xe9\xc7\xb8\x8a\xcc\xf6\x58\xef\x51\x82\xf5\x97\x36\x1d\x6a\x9e\xe0\x5d\xfa\xec\xbd\xb9\xf8\x0e\x37\x66\xfa\xd1\xe3\x17\xf6\x4b\xf0\x5d\x2c\x65\x78\x2f\x97\x3b\x6e\xf2\x6c\x53\xa3\xc2\x87\x20\x7c\x8c\xfb\xa4\xb0\xbd\x7e\xdb\x7b\xa2\xf2\xe6\xd2\x46\x6f\x6a\xb1\xae\x4c\xdb\xba\xb1\x35\xe9\xb8\x8b\xed\x56\x58\xdb\x0a\xda\x39\x91\xf5\x71\xa4\x79\xb0\xfe\x36\xb5\x06\xe6\xb9\xce\x4c\xd7\x91\x74\xab\x7d\x95\xf9\x98\x77\x7f\x6c\x2e\x6e\x1d\x47\xad\xd6\x7a\x6d\xca\xef\xec\x66\xe6\x19\x66\xe2\x2a\x19\x80\xbb\x03\x34\xfa\x51\xcc\xfe\x29\x9d\xaf\xcb\x30\xd8\xf8\x8b\xf8\x28\xed\xab\xd5\x07\xed\x35\x9c\x31\x21\x13\xfb\x78\xf7\x22\xe9\x13\xdc\x67\x57\xfa\x51\xcc\x3e\x04\xa1\xca\x5d\x56\x38\x32\x72\xe4\x22\x7e\xfa\xa4\x7d\x8c\x3b\x5f\x5f\x2f\x32\x5b\xcf\x83\x0b\x3e\x64\xd7\x68\x33\x20\x57\xfb\xc3\x7d\x40\x4f\x01\x01\x54\xe3\x09\xa0\x6a\x36\xba\xaa\x82\xa8\xfa\xdb\xcc\x0f\x19\x4e\xd5\xac\x9d\x2a\x42\xaa\xfa\x5b\xf0\x6d\x0d\xae\x6a\xd6\x84\x87\x01\x56\xcf\x5d\x4e\x0b\xf1\x32\x31\x10\x47\x12\xbd\x4f\x6b\xb9\xde\x34\x45\x79\x63\x0b\x7d\xc8\x9d\x55\x92\x7f\x6f\xd6\xee\xad\x5d\xd5\x49\x2a\xfe\x36\xaa\xa2\x38\x09\xbf\x24\x3a\xe1\xe8\x4c\xfc\xce\xc5\x42\x8c\x3f\x2d\x4c\x16\xf6\xd4\xf0\x4f\x75\x42\x1a\x86\x65\xc4\x17\xc9\x05\x65\x10\x8a\x41\x28\xc6\x64\x42\x31\x08\x5e\x20\x78\x81\xe0\x05\x82\x17\x08\x5e\x18\x3c\x78\x01\x2a\x0e\x28\x05\x94\x02\x4a\x01\xa5\x80\x52\x40\x29\xa0\xb4\x74\x11\x80\x5d\xc0\x2e\x60\x17\xb0\x0b\xd8\x05\x72\xc5\x55\x90\x64\xae\xfd\xf6\x89\xdb\x7d\x9e\x77\x5b\x4f\x38\x39\xb4\x9e\x90\x74\x56\x05\xb4\x2f\x2a\xd2\x42\x9f\x78\x2c\x6a\x37\x17\x7b\xbd\x76\xb9\x0a\xa2\x8e\x11\x90\xb1\xd4\x85\x6c\x4a\x7b\xcc\xf1\x1d\xf2\x9e\x76\xd9\x8e\x15\x4a\x49\x27\x9a\x14\x3a\xc9\x7e\x24\x03\x27\xdf\xe9\xd6\x66\xe0\xe8\x4d\xf8\x2f\xd2\x97\x4b\x15\x1a\x77\x92\x51\x04\x8b\xa2\xc0\x71\xf5\xfe\x28\x73\xdc\x48\xed\x7f\x0b\x42\x11\x6f\x9f\xd7\x4f\xd9\x86\xf1\x51\x7e\x8d\x5b\x71\xfd\x45\x45\x2a\x35\x82\xf2\x79\x26\x69\x3e\x8a\x36\x02\xb5\x93\x26\x08\xc5\xcd\xeb\x1f\xe2\x63\x43\xe9\x68\x2a\xe3\x05\xfe\xd2\x98\x3c\xda\x91\x12\xef\x78\xa5\xeb\x9b\x89\x49\x3b\x2a\xb6\xc7\x6a\x4f\x75\xc2\x8c\xc4\xfd\x93\xd0\xab\xc5\x9b\xeb\xeb\x65\xe0\x49\x7f\x39\x0f\xc2\xe5\xf5\xea\xeb\xf2\x7a\xe3\xbb\x4e\xb0\x50\xd7\x7f\xfb\x18\xdd\xc5\x57\x69\xed\xf9\x4c\x1a\xa7\xcb\xee\xb1\xca\x46\x1a\xab\xe9\xd2\xd4\x6c\x79\xdd\xc0\x6c\x79\x6b\x9c\x38\x76\xdd\xf6\xeb\xda\xdb\x36\x51\xa5\x76\xdd\xf7\xe4\xac\x44\x6d\x88\x8c\xc0\x4a\xbc\x10\x2d\x44\x50\x0a\xea\xf4\x9c\x50\x0b\xa5\xb1\xe9\x75\xa0\x7f\x32\x8c\xe9\x35\x12\xa1\x09\x4c\xad\x7c\x27\x5b\x6b\x6a\x91\xda\x7b\x46\xa9\xbd\xe4\x30\x91\xc3\x44\x0e\x13\x39\x4c\xec\x12\xcb\xde\x22\x2b\xb3\x00\x86\xd9\x75\x91\xc4\x50\x9d\xc4\x30\x86\xed\x57\xe6\xb8\xee\x3c\x75\x41\x53\xee\x5d\xdb\xab\xe1\x36\x2a\x3e\xf3\x74\xf9\x0a\x39\x73\x44\xfd\x5b\x47\x21\xdd\xc7\x9f\xa4\xb3\x9e\x0b\xf1\x3e\xfe\x3f\xfd\xfb\xa3\x74\xb5\x3f\x2f\x12\x8e\xb7\x89\xd6\x2a\xdc\x2e\x32\x26\x5c\x51\x78\xee\x57\x25\x66\x59\xc9\xd3\x59\x6c\x4b\xa6\xf6\xcf\x5c\xdc\x79\xd2\xf7\x93\x28\x02\x6d\xa1\x48\xcf\x18\x45\x37\x3f\xb4\x99\xb5\xf5\x3d\x0e\x64\x3b\x64\x8d\x96\x99\xde\xf7\x69\xf3\xc5\x4f\x2a\xde\x9b\x16\x8b\xd7\x8b\x55\x94\xb6\x4e\x12\xa8\xb3\x89\x54\xa8\x23\x6c\xb6\x56\xf4\xd3\x89\x1b\x2a\xbe\x99\xe9\xe2\x61\xbb\x17\x35\x7c\x71\x07\xcb\x41\x3c\xb7\x8e\x69\x2d\x68\x01\x6c\xf3\x45\x66\xca\x6f\x63\x4c\x95\x66\xc6\x8b\xa0\x75\x68\x47\x2b\xf1\xf5\x2b\x7d\xee\xdf\xab\x27\xad\x47\x15\x2e\x55\xa3\x23\xa3\x75\x28\xd7\x6a\xe9\x3a\x57\xcd\xcf\x89\x3f\x3f\x25\x47\xea\xe9\xb1\x89\xad\xa1\x63\x01\x75\xaa\x91\x09\x43\x6a\x67\x77\xe8\x1f\x1d\xdc\x7b\x7b\x2a\x70\x5e\x61\xad\xdf\xed\x06\x03\x09\x7c\xba\x13\xf7\xe9\x9e\x0f\x3e\xdf\x8b\xd9\x4f\x5f\x2e\x93\x57\xb2\x32\x61\xb6\x49\xae\xf2\x8b\x92\x69\xe8\xa5\xf6\x68\x99\x64\x52\xe9\xe9\x33\xfd\xc0\xbf\x32\x67\xeb\x23\xb4\x53\x39\x12\x2f\x7e\x8a\x02\xff\xce\xa4\xec\xfe\x12\x4f\x78\xc9\xe7\x4f\xe9\x34\xb8\xfd\xe3\x4b\x9b\xb8\x7e\xf3\x71\xf3\x21\x08\x1d\xed\x75\x5f\x06\xba\xf3\x03\xf1\xf9\xf2\x21\xfe\xdb\xe7\x4b\x71\xbb\xd3\x9a\x73\xf1\x71\x9d\xb8\xc8\xb5\xfd\x9f\xbc\xa8\x57\xd2\xd1\x1d\xa0\x93\x3e\x3d\xd7\x49\x9c\x7e\x7a\xbb\x10\x7c\x4f\xfa\xd6\x24\x45\xae\x54\xb0\xf2\xd4\x5c\x98\xdf\xd4\xb9\xde\xe9\x98\xd2\x71\xd8\x85\x1d\x91\xfd\x7c\x9b\xe6\x8d\x7f\x88\x5d\x83\xf9\x82\x5d\xc3\xe0\xbb\x86\xd5\x5e\x80\xef\x08\xf6\x0d\x9b\xce\x7d\x48\x2b\x4f\x3a\x2d\xcd\xb9\xe4\xe4\xc9\x1a\x74\x44\x42\x62\xca\x9d\x93\x29\x67\x91\xc5\xc4\xc2\x9e\x7d\x43\x24\x64\xc9\x6d\x4f\xcf\x1e\xd9\x8c\xc2\x8b\x79\x21\x1a\x05\x14\xea\x04\xa8\x8a\xda\x6a\x9d\xf3\xb0\x24\x3b\xdc\x5f\xb8\xdf\xdc\xc5\x46\x7a\xf9\xc4\x3b\x99\xe9\x41\xe4\x1f\x7e\x9e\x8b\xa6\x79\x93\xc5\xe1\xcc\xf4\x85\x66\x5b\x71\xa0\x1d\xb5\x97\xcc\x06\x12\xae\x1f\xad\x95\xdc\x71\x4d\xee\x5b\x48\xdf\x2b\x1c\x5e\x3f\xef\x65\x19\x91\x0b\x67\x6b\xa8\x80\x4e\xe5\x7c\xff\x4d\xf9\xe7\x9b\x12\xa7\x7b\xf0\x1c\xf2\xe2\x10\xdb\x9b\xb0\xd8\x5e\x3d\x37\xaa\x13\xda\x6b\x5f\x22\xbb\x19\x13\x43\x5e\x0f\x79\x3d\xe4\xf5\x90\xd7\x9b\x9a\xbc\x5e\xfd\xcc\x5b\x28\xad\x77\xe2\x08\x84\xde\x04\xf5\xea\x1f\xbf\x5c\x4c\xcf\xe6\x36\x38\x46\x42\xaf\xbe\x0d\xca\xe5\xf3\x4e\xdc\x06\x88\xe6\x21\x9a\x87\x68\x1e\xa2\x79\x88\xe6\x9d\x4c\x34\xaf\xc1\xec\x7f\x20\x98\x57\x99\x93\x77\x46\x01\x88\xcd\x9e\x06\xd1\xbf\x91\x89\xfe\xd5\x0f\xa2\x2a\xc1\xbf\x13\x8f\xa6\x41\x65\xfe\xea\x5b\xa6\x42\xe2\xef\xd4\xb3\x86\xad\xc2\x7e\xf5\x8d\x56\xe0\xc4\x6f\xed\xce\x4a\x3e\xfd\xf5\x0c\x18\x54\xa0\x31\x71\x22\x26\x94\x07\x41\x7e\xba\xd8\x15\xd5\x78\xe9\x04\x08\xbd\xda\xda\xb7\xda\x86\x4f\x6c\xa1\xd8\x44\xde\x1a\xee\xb3\x9d\x0d\x5f\xee\xda\x6d\x71\x12\x28\x09\x94\x34\x1e\x94\x04\x46\x02\x23\x81\x91\xc0\x48\x60\x24\x30\x12\x18\x09\x8c\x04\x46\x02\x23\x81\x91\xc0\x48\x60\x24\x30\x12\x18\x09\x8c\x34\x26\x8c\x84\x32\xc7\x31\xfd\x03\x18\x03\x8c\x01\xc6\x00\x63\x67\x08\xc6\x8c\xfa\xe8\x75\x2b\xe0\x35\x48\x8e\xe3\x5e\x07\x2f\xb5\x62\xec\x43\x10\x3e\x66\x03\x5a\x0a\xe3\x8e\x2f\x67\x56\x4b\xb5\x36\x12\xa8\xb7\x77\x1f\xff\xb5\x7f\x2c\x19\x9d\x47\xf2\xa3\xac\x11\x47\x4e\x8f\xcc\xab\x90\x3b\xfe\x22\xff\x9b\x85\xaf\x4d\x8a\x92\x47\xfd\xfa\xec\xec\xf2\xcc\x54\xd8\xe4\xdd\x49\x78\xef\xed\xdd\xc7\xdf\x8b\x4e\xe3\x35\x3a\xfe\x35\x4a\x1b\x72\x0a\x95\xee\xcc\x1b\x52\x40\x63\x9b\xbf\x55\x7e\x2a\xb1\x9a\x84\x65\xe8\xcf\xff\xbb\x5e\x05\x8b\x85\x1b\x85\x1b\xfd\x78\xf7\x9b\xc5\x52\xad\xa3\x9e\x8a\x82\xe4\x54\xd3\x83\x07\x71\x17\x2c\xde\x65\x37\xf2\x4f\x7d\x23\x15\x2f\x8e\xb9\xc4\xce\xbb\xf3\x36\xbb\x5c\xa6\x26\xbb\xa8\xb9\x68\x4b\xfd\x5b\xd8\xef\x84\xd9\x6f\x33\x59\x8c\x3a\xfe\x7b\x42\x5d\xe1\x49\x57\xb4\x81\x6b\xc3\xb5\xe1\xda\x70\xed\xa9\x71\xed\x66\xab\x4a\x21\xdb\xee\x4d\x07\x0b\xb9\xb2\xc6\x1d\x35\xa4\x5c\x59\x6f\xc1\x08\x47\x08\x84\x15\xc2\x78\xea\xab\x51\x5f\xcd\xb2\xe1\x7f\x4c\x1c\x4a\xb3\x76\x29\x8f\x45\xe9\x6d\xf8\x13\x95\x42\x54\x0a\x51\x29\x44\xa5\x10\x95\x72\xb2\xa8\x94\x86\x6b\xc1\x41\x64\x0a\x65\x47\x29\x3b\x4a\xd9\x51\xca\x8e\x8e\xa2\xec\xe8\x91\x9e\x02\x02\xae\xc6\x13\x70\xd5\x6c\x74\x55\x05\x5d\xf5\xb7\x99\x1f\x32\xfc\xaa\x59\x3b\x55\x84\x60\xf5\xb7\xe0\xdb\x1a\x8c\xd5\xac\x09\x0f\x03\xb2\xa8\x14\x63\x43\xdc\xc4\x34\xaa\x0e\x97\x86\x4b\xe4\xce\xab\xac\x3b\xbc\xb5\xac\xba\xc8\x63\x5f\x1d\x2e\xd5\x59\x0a\x7b\x75\x84\xc2\xf0\x35\x88\x8d\x4f\x2d\x4c\x16\xf7\xd4\xf8\x4f\xa5\x35\x8e\x0b\xda\x88\xaf\xb5\x13\xb2\x41\xa0\x06\x81\x1a\xd3\x0d\xd4\x20\xb4\x81\xd0\x06\x42\x1b\x08\x6d\x20\xb4\x61\xf0\xd0\x06\x98\x39\x18\x15\x8c\x0a\x46\x05\xa3\x82\x51\xc1\xa8\x60\xd4\xd2\x45\x00\xb2\x01\xd9\x80\x6c\x40\x36\x20\x1b\x28\x00\x57\x21\x94\x79\x12\xa4\x90\x96\xb7\x2d\xf0\x5f\x4f\x3a\xef\xb4\x1e\xa4\x74\x55\x4b\xb2\x47\x78\xd2\x42\x06\x38\xb1\x99\x4c\xc1\x70\x7f\x21\xe2\x2e\x12\x91\x13\xac\xd4\x2b\x11\x6d\x1c\xbd\x70\xe9\xf9\x5e\xc9\x47\x33\x59\xad\xc2\x40\xdb\x68\x45\x0a\x16\xd5\xe2\x41\x9a\x94\xec\x7e\x8d\x82\x50\xdd\xd3\x24\x9f\xfe\xda\x76\x72\x10\x75\x8c\xc8\xcc\x7e\x45\xc8\x23\x69\x98\x39\xed\xb4\x3c\xac\x5d\xae\x68\xc5\xa8\x3a\xf5\xa4\xd9\x49\x12\x29\x89\x4c\xf9\xde\xb7\x36\x91\x49\x7b\x2b\x7e\x91\xbe\x5c\xaa\xd0\xf8\xdd\xcc\x34\x1a\x45\x81\xe3\xea\x8d\x64\xe6\xe1\x92\xda\x51\x19\x84\x42\xf9\xeb\xd8\xd0\x4d\x77\xd6\x8f\xf2\x6b\xdc\x8a\xeb\x2f\x2a\x52\xa9\xb5\x98\x4f\xd7\x49\xd3\x7a\xb4\xb5\xac\xbd\x59\x41\x28\x6e\x5e\xff\x10\x1f\x1b\x4a\x47\xe3\x2b\x2f\xf0\x97\xc6\x36\xd4\x1e\x27\x27\xf0\xd7\xd2\xf5\xcd\xdc\xa5\x3d\x3a\xdb\x63\xb5\x4b\x3f\x81\x6b\xe2\xfe\x49\xe8\xd5\xf4\xcd\xf5\xf5\x32\xf0\xa4\xbf\x9c\x07\xe1\xf2\x7a\xf5\x75\x79\xbd\xf1\x5d\x27\x58\xa8\xeb\xbf\x7d\x8c\xee\xe2\xab\xb4\x76\x11\x27\x8d\xd3\x65\xf7\x58\x65\x4c\x8e\xde\xc6\x6b\x6a\xdf\xbd\x6e\x60\xdf\xbd\x35\x6e\x2f\x4b\xef\xff\x75\xed\xfd\x9b\x70\x5d\x4b\x1f\x60\x82\x06\xb6\x36\x64\x46\x61\x60\x5f\x88\x0e\xc5\x69\x0a\x8a\x0a\x9d\x50\xa3\xe6\x58\xa3\xae\x40\x97\xc6\x12\xa3\x6e\x24\x02\x20\xd8\x6e\xf9\x4e\xb6\xd6\x76\x23\xe5\xfa\x8c\x52\xae\xc9\x2d\x23\xb7\x8c\xdc\x32\x72\xcb\xd8\x76\x96\xbd\x45\x56\x66\x67\x0c\xb3\x69\x23\xb9\xa4\x2e\xb9\x64\x1c\x9b\xb6\xcc\x61\xde\x79\x4a\x89\x8e\x31\xd8\xb5\xbf\x8e\xdb\x64\xc5\x17\xe8\x35\x8f\x24\x67\xac\xa8\x7f\xeb\xe8\xb0\xfb\xf8\x93\x74\xd6\x73\x21\xde\xc7\xff\xa7\x7f\x7f\x94\xae\x76\x1f\x46\xc2\xf1\x36\xd1\x5a\x85\xdb\x25\xc8\x84\x91\x0a\xcf\xfd\xaa\xc4\x2c\xbb\xe3\x59\x6c\x69\xa6\xd6\xd1\x5c\xdc\x79\xd2\xf7\x93\xe8\x0e\x6d\xbf\x48\xcf\x98\x4c\x37\x3f\xb4\x99\xd3\xf5\x3d\x0e\x64\x59\x64\x8d\x96\x19\xe6\xf7\x69\xf3\xc5\x4f\x2a\xde\x9b\x16\x8b\x57\x93\x55\x94\xb6\x4e\x12\x40\xb5\x89\x54\xa8\x23\x9f\xb6\x36\xf6\xd3\x89\x1b\x2a\xbe\x99\xe9\x62\x7b\xbb\x97\x3c\x1c\x7d\xa2\x62\xd5\xd8\x9b\xc3\x46\xb0\x64\xb4\x00\xe9\xf9\x1a\x3b\xb5\x77\x33\xa6\x52\x3b\x44\x08\x8c\x2e\x42\x40\xc7\x1f\xb5\xaa\x3a\x70\xa5\xcf\xfd\x7b\xf5\x0c\xfe\xa8\xc2\xa5\x6a\x74\x64\xb4\x0e\xe5\x5a\x2d\x5d\xe7\xaa\xf9\x39\xf1\xe7\xa7\xe4\x48\xbd\x56\x34\x31\xc9\x74\xc0\xaa\xce\x87\x33\xb1\x72\xcf\x32\xcf\xf4\x6f\xdb\xe8\x02\x3f\x55\x5c\x43\xc5\x96\xe7\x6e\x37\x96\x4d\xe0\x18\x9f\xb8\x63\xfc\x7c\x82\x1a\xf6\x52\x4e\xd2\x97\xcb\xa4\x45\xad\x4c\x94\x78\x92\x6a\xff\xa2\x64\x82\x7a\xa9\xdd\x82\x26\x17\x5a\x7a\xfa\x4c\x3f\xf0\xaf\xcc\xd9\xfa\x08\xed\x99\x8f\xc4\x8b\x9f\xa2\xc0\xbf\x33\x19\xe7\xbf\xc4\x53\x61\xf2\xf9\x53\x3a\x41\x6e\xff\xf8\xd2\xa6\x68\x8b\xe6\xe3\xe6\x43\x10\x3a\x1a\x5d\x2c\x03\xdd\xf9\x81\xf8\x7c\xf9\x10\xff\xed\xf3\xa5\xb8\xdd\x69\xcd\xb9\xf8\xb8\x4e\x38\x83\xde\x26\x25\x2f\xea\x95\x74\x74\x07\xe8\x9c\x65\xcf\x75\x12\xcf\xa9\xde\x55\x05\xdf\x93\xbe\x35\x39\xbd\x2b\x15\xac\x3c\x35\x17\xe6\x37\xb5\x54\x41\x3a\xa6\x74\x1a\x41\x61\x47\x64\x3f\xdf\xa6\x79\xe3\x1f\x62\x73\x65\xbe\x60\x73\x65\xd3\xe6\x6a\xb5\x17\xaa\x3e\x8a\xed\xd5\xa6\x73\x8f\xdc\xca\x93\xce\xf3\xac\xbe\xe4\x1a\xe7\x64\xf7\x11\xcf\x8a\xe9\x77\x96\xa6\x9f\x45\x16\x16\x86\x40\xf6\x0d\xf1\xac\x67\x6d\xc8\x6c\x46\xe2\x25\xbe\x10\xdd\x47\x83\x5e\x47\x06\x2d\xb7\xa9\x1c\x7a\x14\xb6\x34\xbf\x93\x2e\x73\xfd\x00\xcc\x04\x9b\x33\xbf\x31\x3f\x40\x91\xa0\x48\x50\x24\x28\xd2\x48\x28\x52\x37\xab\xe5\x91\x3c\xa9\x60\xb9\x1c\xa5\x77\x01\xaa\x84\x6b\xe1\xfc\x5c\x0b\x50\xa5\x2e\xc7\x0d\x54\x09\x67\x12\x9b\xad\xf4\xcf\x50\xa5\x41\xa8\x52\x57\x3e\x93\x23\xf9\xd2\x54\xec\x40\x28\x13\xa6\xe0\x59\x9a\x82\x16\x59\x5c\x18\x06\xd9\x37\x50\xa6\xb3\x36\x6c\xa6\x43\x99\x8a\x70\xd2\x49\x01\xd2\x49\x4b\x29\x15\x9c\xfe\x21\x08\x6f\x3d\x2f\xb3\x91\xac\x20\x48\xa5\x27\x20\x1f\x8a\x7c\xe8\xf9\xc9\x87\x52\xa0\x6c\xc2\x05\xca\xea\x01\x54\x5d\x71\xb2\x4a\x6f\x56\x07\x70\x8d\x92\x64\x94\x24\xa3\x24\x19\x25\xc9\xa6\x56\x92\xac\x7e\xe6\x2d\x2c\x47\x76\xe2\x50\x86\xde\x8a\x90\xd5\x3f\x7e\x79\x01\x32\x9b\xdb\xe0\x98\xb2\x63\xf5\x6d\x50\x5e\x72\xec\xc4\x6d\x40\xa1\x31\x0a\x8d\x51\x68\x8c\x42\x63\x14\x1a\x3b\x59\xa1\xb1\x06\xb3\xff\x41\x91\xb1\x4a\x35\xcd\x33\x8a\x64\x6c\xf6\x34\x14\x4a\x1b\x59\xa1\xb4\xfa\x41\x54\x55\x24\xed\xc4\xa3\x69\xd0\xd2\x68\xf5\x2d\x53\x51\x16\xed\xd4\xb3\x86\xad\xc5\xd0\xea\x1b\xad\xc0\x8b\xdf\xda\x9d\x95\x7c\xfa\xab\x11\xd5\x89\x94\xb3\x09\xdd\xf5\x93\xfe\xc6\xdd\x71\xf6\x9f\x52\x2a\x3e\xa7\x98\x1b\x3c\x88\x3b\x2d\xda\xac\xef\xe3\x40\x4d\xb5\x81\x68\xfc\xdb\xec\x62\x95\x17\x6a\xa9\x67\x88\xdb\x79\xc2\x6e\xe7\x66\x91\x12\x75\xae\xe7\x13\xea\x44\x4e\xba\x7e\x01\x2e\x75\x5c\xea\xb8\xd4\x71\xa9\x4f\xcd\xa5\xde\x6c\x55\x29\x74\xab\xf7\x16\x1a\x49\x04\x6b\xe3\x8e\x1a\x32\x82\xb5\x37\x0e\x72\x44\xcc\x68\x21\x07\xa0\x9a\x0e\xd5\x74\x2c\x1b\xfe\xc7\x20\xb0\x66\xed\x52\x8e\xc1\x7a\x1b\xfe\x00\x31\x80\x18\x40\x0c\x20\x06\x10\x3b\x19\x10\x6b\xb8\x16\x1c\x40\x31\x8a\xcc\x51\x64\x8e\x22\x73\x14\x99\x1b\x45\x91\xb9\x23\x3d\x05\xd0\xeb\xf1\xd0\xeb\x66\xa3\xab\x8a\x60\xf7\xb7\x99\x1f\x92\x65\x37\x6b\xa7\x0a\x9e\xdd\xdf\x82\x6f\x2b\xd9\x6e\xd6\x84\x87\x74\x1b\xf1\x91\xca\xee\xb6\xb2\x44\xe6\x04\x13\xe7\xcc\xea\xbd\xb5\xac\x7a\x48\xa2\x2b\x8d\x4f\x18\xbe\xd6\x64\x6d\xce\x6d\xe3\x20\x8d\xa2\x8c\x5b\x02\x33\x08\xcc\x98\x50\x60\x06\xa1\x0c\x84\x32\x10\xca\x40\x28\x03\xa1\x0c\x83\x87\x32\xc0\xc8\xc1\xa6\x60\x53\xb0\x29\xd8\x14\x6c\x0a\x36\x05\x9b\x96\x2e\x02\x90\x0c\x48\x06\x24\x03\x92\x01\xc9\x40\x71\xb0\x0a\x99\x14\x28\x0e\xee\x7a\xaf\xd1\x1b\xec\x43\x6f\xb0\x3b\x54\xd2\x42\x6d\x70\x2c\x0a\x04\x17\x7b\xbd\x76\xb9\x0a\xa2\x8e\xb9\x90\x31\xd9\x85\x3c\x0a\x01\x99\x93\xba\x87\x40\xd6\xeb\xcd\xef\x3d\x62\xb3\x59\x82\x5c\x9d\x09\xe4\xea\xa0\x36\x8f\xda\x7c\xc1\xcd\x8c\xc7\xac\x19\x9b\xd6\x7c\xdb\xbb\x7f\x5d\x7b\xf7\x26\x1a\xd5\xca\xdb\x9f\xa0\x3d\xa9\x4d\x96\x11\xd8\x93\x17\xa2\x85\xa2\x4a\x52\x75\xb9\x27\x61\x95\xe3\x8c\xb4\x02\x31\x95\x01\x8d\xb4\x91\xa8\x56\x60\x8d\xe5\x3b\xd9\x5a\x6b\x8c\x3c\xe1\x33\xca\x13\x26\x21\x8a\x84\x28\x12\xa2\x48\x88\x62\x23\x59\xf6\x16\x59\xba\x91\x64\x2b\x66\xd7\x56\x2c\xd9\x9a\x8c\x60\x33\x96\x39\xbc\x3b\xcf\x83\xd0\x98\x7c\xbd\x5f\x7e\xb5\xf1\xa6\x2a\x3e\xfd\xe4\xc9\x0f\x39\xe3\x44\xfd\x5b\x87\x34\xdd\xc7\x9f\xa4\xb3\x9e\x0b\xf1\x3e\xfe\x3f\xfd\xfb\xa3\x74\xb5\x03\x30\x12\x8e\xb7\x89\xd6\x2a\xdc\x2e\x39\x49\x6d\x6a\xcf\xfd\xaa\xc4\x2c\xab\x7d\x36\x8b\x2d\xcb\xd4\x1a\x9a\x8b\x3b\x4f\xfa\x7e\x12\x92\xa0\xed\x15\xe9\x19\x13\xe9\xe6\x87\x36\x73\xb8\xbe\xc7\x81\x2c\x89\xac\xd1\x32\x43\xfc\x3e\x6d\xbe\xf8\x49\xc5\x7b\xd3\x62\xf1\xea\xb1\x8a\xd2\xd6\x49\xa2\x7e\x74\xa1\x6f\x47\xfa\x39\x9b\xfa\xe9\xc4\x0d\x15\xdf\xcc\x74\x59\xf3\x99\x2c\x71\x13\x5c\x23\xf6\xaa\x2d\x5a\xbf\x40\xb4\xa0\xbf\x1a\xdc\x24\xde\x93\x9a\x7b\x71\xd3\x22\xe6\x5f\x8a\x61\xaf\xfe\x7f\xe7\x9b\x0a\x18\x79\x62\xe9\xf0\xf1\x42\x6d\x1d\x35\xd2\x68\x95\xdf\x9f\xb7\xae\xf4\xb9\x7f\xaf\x9e\xc2\x1e\x55\xb8\x54\x8d\x8e\x8c\xd6\xa1\x5c\xab\xa5\xeb\x5c\x35\x3f\x27\xfe\xfc\x94\x1c\xa9\x27\xcb\x26\x56\x88\x0e\x33\xd4\x59\x4c\x26\xc2\xe9\x19\x16\x89\xfe\x65\x5b\xbc\xbc\xa7\x42\xf1\x15\x3e\xe0\xbb\xdd\x98\x23\x81\xef\x77\xe2\xbe\xdf\xf3\x21\xf1\x7b\xa9\x01\xe9\xcb\x65\xd2\x57\x56\x26\x9a\x37\x49\x89\x7e\x51\x32\x25\xbd\xd4\x9e\x2f\x93\xb3\x2a\x3d\x7d\xa6\x1f\xf8\x57\xe6\x6c\x7d\x84\x76\x3e\x47\xe2\xc5\x4f\x51\xe0\xdf\x99\xcc\xe0\x5f\xe2\xc9\x2f\xf9\xfc\x29\x9d\x12\xb7\x7f\x7c\x69\x53\x88\x40\xf3\x71\xf3\x21\x08\x1d\xed\x9d\x5f\x06\xba\xf3\x03\xf1\xf9\xf2\x21\xfe\xdb\xe7\x4b\x71\xbb\xd3\x9a\x73\xf1\x71\x9d\xb8\xd2\xf5\xce\x20\x79\x51\xaf\xa4\xa3\x3b\x40\xe7\x96\x7a\xae\x93\x38\x07\xf5\x46\x22\xf8\x9e\xf4\xad\xc9\xbd\x5c\xa9\x60\xe5\xa9\xb9\x30\xbf\xa9\x53\xca\xd3\x31\xa5\xc3\xbd\x0b\x3b\x22\xfb\xf9\x36\xcd\x1b\xff\x10\xfb\x09\xf3\x05\xfb\x89\xdd\x87\x1a\x14\xff\xef\x05\x14\x8f\x60\x47\xb1\xe9\xdc\xe5\xb4\xf2\xa4\xf3\x1c\x1b\x2f\xb9\xc2\xd4\xad\x3c\x02\x2e\x31\xf3\xce\xd0\xcc\xb3\xc8\x9a\x62\xd1\xcf\xbe\x21\xe0\xb2\xd1\xdd\x4f\xd1\x64\xd9\x8c\xc2\x05\x7a\x21\xea\x02\x16\x75\x3a\xd6\xb5\x9f\xb2\x9f\x24\x5a\x51\x7f\xfe\xdf\xf5\x2a\x58\x2c\xdc\x28\xdc\xe8\x5e\xba\xdf\x2c\x96\x6a\xbd\x53\x20\xae\x73\xf2\x96\x24\xb2\xfb\x0b\xf7\x9b\xbb\xd8\x48\x2f\x9f\x23\x28\x33\xe9\x8a\xbb\x60\xf1\x2e\xbb\xad\x7f\xea\xdb\x9a\xe7\x02\x78\xde\x64\xa1\x3f\x33\x7d\xbd\xd9\x56\xce\x68\x47\x9f\x26\x33\xa0\x84\xeb\x47\x6b\x25\x77\x3c\x9e\xfb\xe6\xd5\xf7\x03\x17\x5a\xc6\xcb\x16\x05\xf7\xf3\xf3\x5e\x86\x14\x09\x7d\xb6\x6a\x20\xea\x7c\xd4\xf7\xdf\x94\x7f\xce\x09\x7d\xba\x0f\x7b\xca\xea\xdb\x7f\x55\x7a\x26\x3b\xa8\x06\x4e\x58\x35\xb0\x9e\x52\xd5\x29\x06\xb6\x2f\xbb\xda\x8c\xc0\xa1\x13\x88\x4e\x20\x3a\x81\xe8\x04\x4e\x4d\x27\xb0\x7e\xe6\x2d\xd4\x08\x3c\x71\xbc\x43\x6f\xca\x80\xf5\x8f\x5f\xae\x0a\x68\x73\x1b\x1c\xa3\x05\x58\xdf\x06\xe5\x3a\x80\x27\x6e\x03\xd4\xff\x50\xff\x43\xfd\x0f\xf5\x3f\xd4\xff\x4e\xa6\xfe\xd7\x60\xf6\x3f\x50\xfe\xab\xcc\x0e\xec\x60\xda\x4f\x9e\xda\x40\xa1\xd8\x9c\xdd\xac\xbf\x88\xc8\x09\x56\xea\x95\x88\x36\x8e\x16\x9e\xd3\xfb\x15\x25\x1f\x4d\x6a\xd6\x2a\x0c\x74\x2b\x1f\x1f\xe2\xa9\x5d\x81\xc4\x79\x9e\xe2\x69\x90\x6d\x1c\x99\x6c\x63\xfd\x20\xaa\x92\x6c\x3c\xf1\x68\x1a\x54\xa8\xb1\xbe\x65\x2a\x44\x1a\x4f\x3d\x5d\xda\x2a\xcd\x58\xdf\x68\x05\x04\xa3\xb5\x1f\x2f\xf9\xf4\xd7\x09\xd8\x59\x81\x14\xc8\x89\x10\x5a\x9e\x9b\xf9\xe9\xea\x9f\xab\xe4\x73\x12\x7e\xf6\x6a\x6b\xf7\xeb\xbd\x4d\x62\x23\xc6\x5b\x87\xed\x86\x66\xb6\xb3\x11\xce\x5d\xbb\x43\xfa\x06\x79\x83\xbc\x8d\x89\xbc\x41\xdd\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x06\x75\x83\xba\x41\xdd\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x06\x75\x83\xba\x8d\x8b\xba\xed\x69\xa7\x54\x7b\x1e\xc6\xa4\x9e\x02\x4e\x04\x27\x82\x13\xc1\x89\xe0\x44\x70\xe2\xc9\x70\x22\x39\x77\x15\xd4\xaf\x24\xd3\xee\x43\x10\xde\x7a\x5e\x86\x04\x23\xf8\x1f\xfc\x6f\x4c\xfc\x8f\xcc\x3b\x18\x20\x0c\x10\x06\x08\x03\x84\x01\xc2\x00\x61\x80\x30\x40\x18\x20\x0c\x10\x06\x08\x03\x84\x01\xc2\x00\x61\x80\xe3\x63\x80\x10\x23\x88\x11\xc4\xa8\x78\x34\x41\x8c\x4a\xdf\x33\x88\x51\x3b\x62\xb4\x5f\x73\xda\x0e\x60\xb4\x2b\x5f\x39\x0c\x2e\xda\xbd\x07\x64\x19\x81\x43\xc0\xa1\xed\x97\xb6\x94\xdb\x02\x0d\x81\x86\x40\x43\xa0\x21\xd0\x10\x68\x08\x34\x04\x1a\x02\x0d\x81\x86\x40\x43\xa0\x21\xd0\x10\x68\x08\x34\x04\x1a\x6a\xfa\x34\xa0\x21\xd0\x10\x68\x08\x34\x04\x1a\x2a\x45\x43\xf6\x68\x10\x9e\x00\x0f\xf5\xa9\x40\x58\x5d\x5c\x15\xb0\x04\x58\xb2\x1c\x2c\x01\x95\x80\x4a\x40\x25\xa0\x12\x50\x09\xa8\x04\x54\x02\x2a\x01\x95\x80\x4a\x40\x25\xa0\x12\x50\x09\xa8\x04\x54\x02\x2a\x8d\x09\x2a\xed\x69\x0e\x56\xf9\x1d\xc6\xa4\x38\x08\x2b\x83\x95\xc1\xca\x8a\x47\x13\xac\xac\xf4\x3d\x83\x95\x55\xb3\xb2\xf0\x5e\x3a\xf3\xd4\x61\xaf\x1f\x41\x83\x03\x37\xb8\x6e\x85\xc5\x4e\x0d\x75\x9a\x20\xb7\xa5\x5a\x0b\xd7\x7f\x08\xc2\xc7\x6c\x8c\x4b\x61\xdc\xf4\xe5\x50\x6b\xa9\xd6\xbf\xdf\x4b\xe7\x36\xdf\x12\xb7\x77\x1f\xff\xb5\x7f\xda\x50\x34\x6b\xb4\x90\x29\x6b\xc4\x91\x23\xa6\x70\x7f\x74\xe4\x4e\xbd\xc8\xff\x7c\xd3\xf7\xeb\xdb\xcd\xb8\x5f\xb1\x9d\x1d\xa2\x99\x41\x8f\x7c\xbf\xfe\xbc\xb9\xbd\xfb\xf8\x7b\xd1\xc9\xbc\x65\xc7\xbf\x65\x69\x43\xea\xc4\xce\xa9\xbd\x6c\xff\xf7\xed\xa6\x83\xf7\xcd\xf1\x36\xd1\x5a\x85\x61\xe0\xa9\x7b\xd7\x5f\xb8\xfe\x72\x27\x3d\xd8\xec\xc8\xbb\x8d\xff\x30\xd7\x14\x4e\xe0\x79\xca\x49\x97\xa3\xb7\xe6\x3e\x7e\x0f\x3c\xf5\x4f\x73\x1f\x15\x6f\x8e\xb9\x42\xc1\xcb\xf3\x36\xbb\x66\xf5\xf5\x4a\x78\xb1\xa8\xe9\x77\x98\xf1\x84\x99\x71\x85\x05\x7a\x04\x37\xae\xb1\x49\xab\xad\xd2\xbd\xb9\xe8\xbf\x45\x77\x77\x1f\x2c\x4a\x6f\xae\xe8\xbb\x93\xcc\xad\xef\xf4\x0b\xf8\x9b\x7e\x31\xa2\x86\x33\x6b\xf5\xab\x05\x0f\x87\x87\xc3\xc3\xe1\xe1\x53\xe3\xe1\xcd\x56\x95\x42\x26\x5e\xed\x23\x7b\xce\x4a\x52\xe4\x79\x4d\x48\xc0\x2b\x2d\xdd\xe2\xc4\x23\xca\x8c\x83\x9d\x67\xcb\xdb\x11\xf7\x4a\xac\xe2\xd6\x8a\xd6\xf1\x02\x7d\xeb\x0b\xd7\x37\x33\x4b\x10\x8a\x8d\x9f\x4d\x4e\x0b\xb1\x08\x9f\x7e\xdf\xf8\x62\xe1\x86\xb1\x69\xf6\x4d\x65\x23\x5e\xbb\x1c\x7d\x21\xfd\xe4\x95\x4f\xc7\x46\xd2\xc0\xe2\x61\x13\xea\xb7\x6c\x15\x06\x4e\x6c\x37\x18\xaf\x6c\x8e\x55\xce\xc5\x9f\xfa\x17\x75\x6f\xe9\xb1\xf3\x46\x5c\x89\x5b\xcf\x7b\xa3\xf1\xc9\x22\x9e\xa5\x37\x7e\xdc\xf1\x4b\x15\x65\x43\x32\xb9\x9c\x5a\xb4\xe8\x28\xf3\x2c\xc3\x74\x53\x6f\x41\x0c\xcd\x9a\xa2\x3c\x90\xa1\xb7\x16\xf9\x23\xef\xb7\x75\x7d\x11\x19\x77\xaa\xb8\x57\x0f\xc6\x72\xce\x80\xd7\xd6\x94\x48\x66\x2f\x3d\x74\x36\xca\x2c\x0e\xf7\x4a\xf8\x81\x7f\xe5\xab\xa5\xd4\x03\x34\xf1\xbc\xce\xc5\x1f\xd9\x82\x6d\xe0\x77\xf6\x6a\x24\x7b\x18\xf7\xf1\x51\x2d\x5c\xb9\x56\xde\xd3\xd6\xa4\xdd\x2e\xb9\xae\xf7\x2a\xf1\xac\xea\x46\x17\xcb\x50\x3a\xfa\xad\x71\x83\x45\x66\x10\x6c\x17\x6d\xbd\x5f\x48\x47\xe9\x26\x8a\x6f\x32\xdf\x5d\x32\x3e\x33\x7d\xa0\xe4\x47\x1e\xcc\x1c\x98\x5e\x62\x6e\xee\xf3\x51\x49\xbf\xf0\x1e\x5b\x74\xb3\xbe\xe7\x3b\x7d\xcb\x45\xde\xea\x1a\x7f\xb5\x2d\xc3\xff\x98\xf8\x95\x66\xed\x52\x1e\xc3\xd2\xdb\xf0\x27\x9a\x85\x68\x16\xa2\x59\x88\x66\x21\x9a\xe5\x64\xd1\x2c\x0d\xd7\x82\x83\x88\x96\xfe\x96\xc5\x77\xb9\xbc\xb8\x95\xa7\x64\xa4\xb2\x29\xe8\x2e\x0c\x56\x72\xa9\xad\x23\x13\xea\xb2\xe3\x07\x4b\x07\xdd\x36\xb1\x2e\x1e\x76\x37\xf3\x7f\xcc\xc5\x27\x33\x9f\x19\xd3\x65\xa5\xfc\xf8\x65\xd9\xae\xa9\x4a\x04\xe1\xea\x8b\xf4\x53\xbf\x5c\xb8\x51\xd7\x0f\xd2\x4b\xf7\xca\x9f\x2f\xcd\xd7\x9f\x2f\xc5\x83\xeb\x4b\xcf\xfd\x4f\xba\x90\xdc\x2b\x21\x17\x0b\x3d\x3a\xaf\x0d\x28\x5e\x6c\xb7\x61\xe6\xf2\xb3\x68\x7b\x92\xd9\x9f\xce\xc5\x7b\x57\x4f\x8e\xb9\x5b\x0f\xc2\xc3\x67\xd3\xd3\x8f\x71\x15\x99\xed\xb1\xde\xa3\x04\xeb\x2f\x6d\x3a\xd4\x3c\xc1\xbb\xf4\xd9\x7b\x73\xf1\x1d\x6e\xcc\xf4\xa3\xc7\x2f\xec\x97\xe0\xbb\x58\xca\xf0\x5e\x2e\x77\x5c\xe7\xd9\xa6\x46\x85\x0f\x41\xf8\x18\xf7\x49\x61\x7b\xfd\xb6\xf7\x44\xe5\xcd\xa5\x8d\xde\xd4\x62\x35\x19\x5c\xf1\xfb\xb1\x50\x8e\xbb\xd8\x6e\x85\xb5\xad\xa0\x9d\x13\x59\x1f\x47\x1a\x32\xeb\x6f\x53\x6b\x60\x9e\xeb\xcc\x74\x1d\x49\xb7\xda\x57\x99\x8f\x79\xf7\xc7\xe6\xe2\xd6\x71\xd4\x6a\xad\xd7\xa6\xfc\xce\x6e\x66\x9e\x61\x26\xae\x92\x01\xb8\x3b\x40\xa3\x1f\xc5\xec\x9f\xd2\xf9\xba\x0c\x83\x8d\xbf\x88\x8f\xd2\xbe\x5a\x7d\xd0\x5e\xc3\x19\x13\x32\xb1\x8f\x77\x2f\x92\x3e\xc1\x7d\x76\xa5\x1f\xc5\xec\x43\x10\xaa\xdc\x65\x85\x23\x23\x47\x2e\xe2\xa7\x4f\xda\xc7\xb8\xf3\xf5\xf5\x22\xb3\xf5\x3c\xb8\xe0\x43\x76\x8d\x36\x03\x72\xb5\x3f\xdc\x07\xf4\x14\x10\xa3\x35\x9e\x18\xad\x66\xa3\xab\x2a\x4e\xab\xbf\xcd\xfc\x90\x11\x5b\xcd\xda\xa9\x22\x6a\xab\xbf\x05\xdf\xd6\xf8\xad\x66\x4d\x78\x18\xc3\xf5\xdc\xe5\xb4\x10\x39\x13\x2d\x71\x24\xd1\xfb\xb4\x96\xeb\x4d\x53\x94\x37\xd6\x20\x89\xdc\xd9\x25\xa9\xef\x66\x0d\xdf\xda\x57\x5d\x64\xc1\x97\xc6\x5f\x14\x27\xc6\x57\x46\x2e\xec\x67\xc6\x57\x25\xc5\x77\x2e\xdc\x61\xdc\x6c\x61\xb2\xde\xa7\xfb\x81\x54\xb3\xe3\xa8\x08\x8e\xf8\x52\x45\xf1\x1b\x44\x6d\x10\xb5\x31\xad\xa8\x0d\xe2\x1c\x88\x73\x20\xce\x81\x38\x07\xe2\x1c\x06\x8f\x73\x00\xa0\xc3\x54\x61\xaa\x30\x55\x98\x2a\x4c\x15\xa6\x0a\x53\x2d\x5d\x04\xc0\x1c\x60\x0e\x30\x07\x98\x03\xcc\x81\x90\x70\x15\x4f\x99\x6b\xd7\xfe\xb7\x9b\xf9\xa1\xdf\xfa\x0c\x52\x4e\xeb\x69\x4a\x57\xc5\x29\x87\x22\x28\x2d\x64\x85\xc7\xa2\xc9\x73\xb1\xd7\x89\x97\xab\x20\xea\x18\x17\x19\x0b\x5e\xc8\xe3\xc8\x90\x39\xeb\x64\x6c\xa8\x5d\x12\x65\x85\xc6\xd3\xa9\x26\x90\x4e\xb2\x2a\xc9\xec\xc9\xf7\xba\xb5\x99\x3d\x7a\xc7\xfe\x8b\xf4\xe5\x52\x85\xc6\xf7\xa4\x15\xcb\x64\x14\x05\x8e\xab\x37\x53\x99\x97\x47\x6a\x67\x5d\x10\x8a\x78\xaf\xbd\x7e\xca\x76\x97\x8f\xf2\x6b\xdc\x8a\xeb\x2f\x2a\x52\xa9\xc5\x94\xcf\x5f\x49\xf3\x5c\xb4\xc5\xa8\x3d\x3a\x41\x28\x6e\x5e\xff\x10\x1f\x1b\x4a\x47\x23\x1c\x2f\xf0\x97\xc6\x3e\xd2\x5e\x97\x78\x7b\x2c\x5d\xdf\xcc\x56\xda\xab\xb1\x3d\x56\xbb\xb5\x13\xc0\x24\xee\x9f\x84\x5e\x59\xde\x5c\x5f\x2f\x03\x4f\xfa\xcb\x79\x10\x2e\xaf\x57\x5f\x97\xd7\x1b\xdf\x75\x82\x85\xba\xfe\xdb\xc7\xe8\x2e\xbe\x4a\x6b\x37\x69\xd2\x38\x5d\x76\x8f\x55\x06\xd5\x68\xed\x9c\xa6\x36\xce\xeb\x06\x36\xce\x5b\xe3\xf2\xb1\xec\xbe\x5f\xd7\xde\xb7\x89\x57\xb5\xec\xc6\x27\x6b\x54\x6a\x43\x65\x7c\x46\xe5\x85\x78\xb6\x30\x4b\x41\x71\x9e\x13\xea\xb3\x1c\x69\xb7\x95\x6b\xb2\x0c\x68\xb7\x8d\x44\xfc\x02\x33\x2d\xdf\xc9\xd6\x9a\x69\xa4\x1b\x9f\x51\xba\x31\x79\x55\xe4\x55\x91\x57\x45\x5e\x15\x3b\xcc\xb2\xb7\xc8\xca\xcc\x84\x61\xf6\x6b\x24\x56\x64\x47\x56\x26\x56\x8c\x70\xdf\x96\x39\xc8\x3b\x4f\xa7\xd0\x94\x7d\xd7\x24\x3b\x6a\xc7\x15\x9f\x7f\xfc\x7e\x8b\xe9\x07\x7f\xcb\x51\x6f\x6e\x3c\xee\x47\xfc\xda\xb6\x60\x78\xf9\x72\x21\x75\xf7\x41\xbd\x90\x3e\xd8\xa4\x8e\x05\x68\x25\x05\x7e\xa5\xcf\xfd\x7b\xf5\x94\xf6\xa8\xc2\xa5\x6a\x74\x64\xb4\x0e\xe5\x5a\x2d\x5d\xe7\xaa\xf9\x39\xf1\xe7\xa7\xe4\x48\x3d\x79\x36\x59\x1c\x74\xf0\x98\xce\x4d\x31\x71\x2b\xcf\x59\x28\xf4\x4f\x5b\xe6\x99\x3b\x15\x51\xad\xb0\xc4\xee\x76\x23\x4a\x04\xfe\xba\x89\xfb\xeb\xce\x07\xab\xee\x05\x7e\xa7\x2f\x97\x49\x4e\x58\x99\x58\xcd\x24\xe1\xf5\x45\xc9\xd4\xf4\x52\x7b\x2b\x4c\x46\xa2\xf4\xf4\x99\x7e\xe0\x5f\x99\xb3\xf5\x11\xda\x61\x18\x89\x17\x3f\x45\x81\x7f\x67\xf2\x3e\x7f\x89\x27\xc1\xe4\xf3\xa7\x74\x6a\xdc\xfe\xf1\xa5\x4d\xbc\xb7\xf9\xb8\xf9\x10\x84\x8e\xf6\xa8\x2e\x03\xdd\xf9\x81\xf8\x7c\xf9\x10\xff\xed\xf3\xa5\xb8\xdd\x69\xcd\xb9\xf8\xb8\x4e\xdc\x9f\x9b\x68\x9b\xe3\x76\x25\x1d\xdd\x01\x3a\x73\xd0\x73\x9d\xc4\xa1\xa3\xbc\x45\x24\x82\xef\x49\xdf\x9a\xcc\xba\x95\x0a\x56\x9e\x9a\x0b\xf3\x9b\x3a\x61\x38\x1d\x53\x3a\x98\xb7\xb0\x23\xb2\x9f\x6f\xd3\xbc\xf1\x0f\x4d\x37\x32\x91\x7d\xc6\x58\xf7\x19\xab\xbd\x70\xd1\xf1\xed\x34\x36\x9d\x3b\x08\x56\x9e\x74\x9e\x65\xfa\x25\x97\x38\x13\xe3\x8f\x70\x3a\xec\xbe\xb3\xb2\xfb\x2c\x32\xaf\xb0\x02\xb2\x6f\x08\xa7\x3b\x43\xeb\x65\x33\x46\x2f\xe9\x85\x68\x1d\x94\x36\x78\x99\xb0\x56\xb1\x68\x45\xf5\xc1\xda\xd8\x3d\x48\x4c\x21\x31\x65\xbe\xb2\x40\x62\x6a\xd2\xb1\x91\x08\x66\x21\x98\x85\x60\x16\x82\x59\x08\x66\x15\x2d\x25\x14\x06\xc3\xdf\x81\xae\x19\x91\xfa\xe7\x1c\xa9\x8f\x88\x1d\x22\x76\x88\xd8\x21\x62\x87\x88\x1d\x22\x76\x88\xd8\x91\xc0\x46\x02\x1b\x09\x6c\x24\xb0\xed\x8f\x48\x0a\x83\xa1\x98\x79\xf4\xe8\x42\x31\x13\xc5\x4c\x14\x33\xa7\x1f\x91\x42\xfe\x6a\x76\xe4\x28\x0a\x83\xd9\x92\xc2\xda\xb8\x22\x58\x45\xb0\x46\x7d\x29\x30\x02\x34\x08\xd0\x18\x75\x80\x06\x21\x0d\x84\x34\x10\xd2\x40\x48\x03\x21\x0d\x83\x87\x34\xc0\xca\xc1\xa7\xe0\x53\xf0\x29\xf8\x14\x7c\x0a\x3e\x05\x9f\x96\x2e\x02\x10\x0d\x88\x06\x44\x03\xa2\x01\xd1\xa0\x06\xd8\xb1\x49\xb1\x14\xff\xb2\xa2\xf8\x57\x5b\x1d\x0f\xaa\x7e\x75\x5c\xf5\xab\x82\xfe\x34\x29\xf7\x35\x4d\x61\x12\x14\x49\xce\x27\x43\x07\x45\x12\x14\x49\x0a\x6e\xc6\x6a\x23\x66\x74\x52\x24\x76\x4b\xc4\x3f\xe7\x8e\x27\x6b\x23\x0e\x5f\xcb\xab\x3f\xbd\x94\x01\xab\x77\xb5\x92\x4a\x19\xc2\xfe\x1a\x89\x26\x05\x56\x57\xbe\x93\xad\xb5\xba\xc8\x02\x3e\xa3\x2c\x60\xd2\x9d\x48\x77\x22\xdd\x89\x74\x27\x36\x8c\x65\x6f\x91\x95\x09\x03\xd4\xeb\xb2\x73\x67\x66\x43\xbd\x2e\x5b\xb2\x1c\xaa\x0b\x75\x55\x6c\xae\xea\x2b\x74\x5d\x32\xd3\xe0\x37\x19\x61\x4d\xae\xfe\xd0\x5a\x49\x31\xae\x22\x88\x46\x15\x2e\xaa\x70\x95\x9e\x73\xe2\x2a\x5c\x15\xab\x40\x83\xf2\x5b\xe3\x27\x9c\xd4\xdd\xc2\xef\x76\x7e\xb4\x93\xba\x5b\x5d\x8e\x1b\xea\x6e\xe1\xae\x60\x13\x51\xd4\x90\x53\x2d\xb8\xd5\x76\x1b\xd1\x7b\xa5\xad\xca\x4d\x7e\x83\x12\x5b\xe3\x37\xf0\x08\x61\xc3\xa8\x3b\x0f\xa3\xce\x22\xdb\x89\x25\x3e\xfb\x86\x10\xb6\xdc\xb5\xa7\x6b\x93\x0c\x5d\x46\xeb\xb4\xf1\x60\xf1\x7c\x11\xad\xa4\x93\x46\x83\xe9\xcf\xff\xbb\x0e\x03\x4f\xdd\x9b\xfa\x5d\xc3\x94\xd5\x6a\x56\x4c\xb4\x41\x59\xad\x5f\xd3\x87\x5a\x3c\xb3\xb0\x28\xfa\x4d\xe8\x37\x99\xaf\x2c\xd0\x6f\x9a\x74\x30\x23\x6a\x54\xa8\x51\xa1\x46\x85\x1a\x15\x6a\x54\x45\x4b\x09\x05\xb6\xf0\x7d\x20\x1a\x46\x68\xfd\x39\x87\xd6\xa3\x10\x87\x42\x1c\x0a\x71\x28\xc4\xa1\x10\x87\x42\x1c\x0a\x71\x64\x9c\x91\x71\x46\xc6\x19\x19\x67\xfb\x23\x92\x02\x5b\xc8\x51\x1e\x3d\xba\x90\xa3\x44\x8e\x12\x39\xca\xe9\x47\xa7\x90\x70\x9a\x1d\x69\x6f\x81\xad\xe2\x90\x05\x8b\x0b\x6c\x35\x0b\xdb\x28\x29\xb0\x45\xa8\x06\xa1\x1a\xd3\x0b\xd5\x20\xb8\x81\xe0\x06\x82\x1b\x08\x6e\x20\xb8\x61\xf0\xe0\x06\xa8\x39\x20\x15\x90\x0a\x48\x05\xa4\x02\x52\x01\xa9\x80\xd4\xd2\x45\x00\xb6\x01\xdb\x80\x6d\xc0\x36\x60\x1b\x94\xda\x6a\x94\x31\x9b\x73\x58\x53\x6a\x6b\xb8\x52\x5b\xcf\xe7\x25\x2d\xf4\x00\x13\x83\xc9\x88\x0f\xf8\x0b\x11\xdf\xae\x88\x9c\x60\xa5\x5e\x89\x68\xe3\xe8\x55\x4b\x4f\xf6\x4a\x3e\x9a\x99\x6a\x15\x06\xda\x40\xdb\xbd\xc7\x26\x92\x81\x1a\x8f\xec\x7e\x8d\x6e\x60\xdd\xd3\x24\x9f\x7a\xa9\x31\xd6\x0c\x80\x95\xd6\x18\xeb\x0c\x81\x59\x2a\xd5\x92\x7f\xaa\x66\x73\x24\xe9\x4a\x13\x48\x57\x42\xaa\x05\xa9\x96\x82\x9b\xb1\xda\x8e\x1b\x87\x54\x4b\xab\x1b\x1e\xb4\xda\x58\x8b\x3b\x9e\xac\x99\x3c\x50\xb5\xb1\xd6\x66\xf2\x85\xe8\x5c\x5d\xa6\xef\x22\x64\xcf\x14\x96\x19\xd8\x40\x1b\x89\x82\x07\x66\x59\xbe\x93\xad\x35\xcb\xc8\x99\x3e\xa3\x9c\x69\x92\xc3\x48\x0e\x23\x39\x8c\xe4\x30\x76\x94\x65\x6f\x91\x95\xe9\x15\x94\x23\xb3\x73\xeb\x36\x58\x39\x32\x0b\x73\x42\x0a\xca\x91\x35\xdb\x66\x95\x94\x23\xab\xdf\x64\x31\xe7\xe0\x62\xb1\xb9\x30\xd9\x20\x20\x32\x5f\x98\xac\xf4\x06\xc6\x54\x98\x0c\xb2\x3a\x3a\xb2\x4a\x45\xb6\x56\x0b\x61\x59\x45\xb6\x89\xf2\x60\x6a\xb3\xe1\x84\x3c\x3f\x36\x4c\x6d\xb6\x2e\xc7\x0d\xb5\xd9\xf0\xdd\xb0\x8f\x2a\x6a\xc8\x49\xd5\x66\xeb\x60\x27\xd5\x4f\x6d\xb6\xa6\x1e\x8f\xb2\xda\x6c\x13\x35\xf5\x08\xfd\xc3\xbc\x3b\x0f\xf3\xce\x22\x2b\x8a\xc5\x3e\xfb\x86\xd0\xbf\xdc\xb5\xa7\x6b\x9d\x0c\x52\xa5\xcd\x86\x38\xba\xe1\xca\xb3\xb5\x09\x9f\x2b\xab\xcb\xd6\xc6\xce\x41\xe5\x0b\x95\x2f\xf3\x95\x05\x2a\x5f\x93\x0e\xe7\x44\xb3\x0c\xcd\x32\x34\xcb\xd0\x2c\x43\xb3\xac\x68\x29\xa1\x20\x1b\x6e\x0e\xa4\xe5\x48\x2e\x38\xe7\xe4\x02\x74\x04\xd1\x11\x44\x47\x10\x1d\x41\x74\x04\xd1\x11\x44\x47\x90\x9c\x3b\x72\xee\xc8\xb9\x23\xe7\x6e\x7f\x44\x52\x90\x0d\xd1\xd2\xa3\x47\x17\xa2\xa5\x88\x96\x22\x5a\x3a\xfd\x40\x14\x52\x6e\xb3\x23\xed\x2e\xc8\x66\x4b\xd6\x6d\x7d\x25\xb6\x8a\x08\x8d\x46\x25\xd8\x88\xca\x20\x2a\x63\xd4\x51\x19\xc4\x31\x10\xc7\x40\x1c\x03\x71\x0c\xc4\x31\x0c\x1e\xc7\x00\x20\x87\x99\xc2\x4c\x61\xa6\x30\x53\x98\x29\xcc\x14\x66\x5a\xba\x08\x80\x31\xc0\x18\x60\x0c\x30\x06\x18\x83\xda\x6b\x8d\xf3\x60\x29\xba\x36\x6c\xd1\xb5\xb6\xd2\x1c\x54\x5b\x3b\x03\x4d\xc0\xd3\x56\x5b\xab\x80\x5c\x0d\xcb\xac\x4d\x4c\x64\x05\x75\x95\xf3\x49\x3b\x42\x5d\x05\x75\x95\x82\x9b\xb1\xd3\x48\x1b\x8f\xac\x8a\xdd\xe2\xfc\xad\x6e\x75\xb2\x56\xef\x80\x35\xd4\x86\x13\x7d\x19\xa2\x6a\x5a\x1b\xbd\x97\xa1\x0c\xad\x91\x08\x6b\x60\x65\xe5\x3b\xd9\x5a\x2b\x8b\x54\xe6\x33\x4a\x65\x26\x67\x8b\x9c\x2d\x72\xb6\xc8\xd9\x62\x83\x58\xf6\x16\x59\x99\xf5\x40\x9d\x34\x3b\xb7\x67\x83\xd6\x49\xb3\x25\x55\xa3\xa4\x40\x5a\xc5\x8e\xaa\x51\x65\xb4\x4b\xa6\x17\x5c\x25\x45\x67\x5b\x57\x0b\xad\x3f\x3e\xb8\x5f\x04\xed\x78\xea\x67\x0b\xf0\x83\x74\x8e\x8e\x74\x52\xfd\xec\xb8\x55\xae\x59\xd9\xb3\xf1\xf3\x59\xea\x9d\xe1\x4c\x3c\x3f\x64\x4b\xbd\xb3\x2e\xc7\x0d\xf5\xce\xf0\xc1\xb0\x49\x9a\x76\xa1\xb3\xb6\xdb\xa4\xfe\x2a\x9c\x55\xba\x2c\x9a\x95\x36\x1b\xbf\x39\x47\xb8\x1d\xb6\xdb\xc4\x6d\x37\x8b\x4c\x24\x56\xf2\xec\x9b\x33\x0f\xb7\x9b\xae\xcd\x31\x58\xf9\xb2\xd3\x86\xb0\x85\x81\xa7\xee\x4d\x81\xb4\x9d\x3a\x65\x03\x68\x61\xd5\x97\x66\x2d\x91\xc4\xca\x9d\xfc\x21\x08\x6f\x3d\x2f\xb3\x66\x22\x1b\xf8\x4b\xe9\x09\x67\x9c\x0d\x96\x74\x17\x49\x61\xc3\x26\x85\x3d\xb3\x6c\xf3\xf1\xec\x07\xb1\xb9\x09\x8b\xcd\xd5\xb3\x9d\x3a\xa1\xb9\x4a\x87\x52\x07\xdc\x0a\x79\x39\xe4\xe5\x90\x97\x43\x5e\x6e\x6a\xf2\x72\xf5\x33\x6f\xa1\xb4\xdc\x89\xa3\x04\x7a\x13\x94\xab\x7f\xfc\x72\x31\x39\x9b\xdb\xe0\x18\x09\xb9\xfa\x36\x28\x97\x8f\x3b\x71\x1b\x20\x1a\x87\x68\x1c\xa2\x71\x88\xc6\x21\x1a\x77\x32\xd1\xb8\x06\xb3\xff\x81\x60\x5c\x65\xba\xd6\x19\x05\x09\x36\x7b\x1a\x44\xef\x46\x26\x7a\x57\x3f\x88\xaa\x04\xef\x4e\x3c\x9a\x06\x95\xb9\xab\x6f\x99\x0a\x89\xbb\x53\xcf\x1a\xb6\x0a\xdb\xd5\x37\x5a\x81\x0b\xbf\xb5\x3b\x2b\xf9\xf4\x57\x1b\x9c\x33\x34\xc7\x69\x07\x70\x20\x37\xfb\x0d\x6f\x27\xb9\x01\xd9\x9c\x8b\x8e\x1f\xac\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\x0d\xac\x06\x56\x03\xab\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\x4d\xd3\xa7\x81\xd5\xc0\x6a\x60\x35\xb0\x1a\x58\xcd\x2e\xab\xd1\xf7\x70\xed\x78\x9b\x68\xad\xc2\xde\xf2\x70\x12\x1b\xc8\x5f\xb8\xdf\xdc\xc5\x46\x7a\xf9\xae\x93\xd9\x3e\xe7\xad\xb9\xab\x5c\x8e\xc0\x3c\xa7\x9a\xfa\x26\xb3\x48\x67\xfa\x72\xb3\xad\x7b\x6b\xc7\x5f\x91\xd1\x1f\xe1\xfa\xd1\x5a\xc9\x9d\xa5\x63\x9f\x0d\x7d\x2f\x51\x9a\x39\xbc\x95\x9f\xf7\xbc\xef\xe0\x21\x5b\x05\x22\xf5\x04\xf1\x3e\xde\x02\x9d\x3d\x32\xd2\x3d\x39\x10\x37\x3a\x7c\x85\xa0\x48\x50\x24\x28\x12\x14\x09\x8a\x04\x45\x82\x22\x41\x91\x3a\x9a\x6d\xa1\x48\x50\x24\x28\x12\x14\x09\x8a\x04\x45\x82\x22\x41\x91\xa0\x48\x50\x24\x28\x12\x14\x09\x8a\x54\xdb\x56\x9d\x53\xa4\x82\x02\xa4\x27\x82\x49\x79\x82\xe4\xa7\x4b\x5f\x9a\x11\x74\x22\x92\xf4\x6a\x6b\xf3\x6a\xbb\x3e\xb1\x8f\x62\xb3\x79\x6b\xcc\xcf\x76\x36\x81\xb9\x6b\x77\xc3\xa1\x60\x50\x30\xa8\xf1\x31\x28\xf8\x13\xfc\x09\xfe\xb4\x7d\xd1\xe0\x4f\xf0\x27\xf8\x13\xfc\x09\xfe\x04\x7f\x82\x3f\xc1\x9f\xe0\x4f\xf0\x27\xf8\x13\xfc\x09\xfe\x34\x3a\xfe\x94\xaf\x2c\x5c\xe7\x73\x18\x53\x9d\x61\xb8\x1a\x5c\x0d\xae\x56\x3c\x9a\xe0\x6a\xa5\xef\x19\x5c\xad\x4b\xae\x66\x59\x5a\x96\x0d\xf9\x58\x24\x62\x01\xc1\xc6\x09\xc1\x86\x4f\xc4\x82\x80\x41\xc0\x20\x60\x10\x30\x08\x18\x04\x0c\x02\x06\x01\xeb\x68\xb6\x85\x80\x41\xc0\x20\x60\x10\x30\x08\x18\x04\x0c\x02\x76\x76\x04\x0c\x52\x04\x29\x82\x14\x15\x8f\x26\x48\x51\xe9\x7b\x06\x29\xea\x94\x14\xd9\x97\x7a\x35\xfe\x9c\x2b\x38\x13\x9c\x69\x7c\x9c\x09\xc6\x04\x63\x82\x31\xc1\x98\x60\x4c\x30\x26\x18\x13\x8c\x09\xc6\x04\x63\x82\x31\xc1\x98\x60\x4c\x30\x26\x18\x13\x8c\x69\x8c\x8c\xa9\x24\xcb\x8a\xf4\x2a\xa0\x19\xd0\x0c\x68\x06\x34\x03\x9a\x35\x85\x66\xf1\x1d\x45\x2b\xe9\xa4\xc8\x4c\x7f\xfe\xdf\xb5\x65\xc5\xb0\x6c\xa8\x82\xf5\x6b\xda\x3a\x0b\x0a\x61\xc1\xc5\x46\xcf\xc5\x06\xca\xbf\x42\x81\x10\x36\x06\x1b\x83\x8d\xc1\xc6\x60\x63\xb0\x31\xd8\x98\x65\x5c\x08\x36\x06\x1b\x83\x8d\xc1\xc6\x60\x63\xb0\x31\xd8\xd8\x18\xd9\x58\xf2\xd4\x1a\x91\xc5\x5d\x29\x37\xeb\x2f\x22\x72\x82\x95\x7a\x25\xa2\x8d\xa3\x29\x80\xde\xaf\x28\xf9\x68\xbc\xc2\xab\x30\xd0\xad\x7c\x3c\x3e\xd3\xee\x40\x18\x1a\x0c\x0d\x86\x06\x43\x83\xa1\xc1\xd0\x4a\x19\x9a\x25\xf9\x68\xe3\xaf\x01\x56\x48\xe1\x20\x70\x10\xb8\xf1\x11\x38\xe8\x1b\xf4\x0d\xfa\x06\x7d\x83\xbe\x41\xdf\xa0\x6f\xd0\x37\xe8\x1b\xf4\x0d\xfa\x06\x7d\x83\xbe\x41\xdf\xa0\x6f\xd0\xb7\x31\xd2\xb7\x7c\x66\xda\x24\x0a\x7f\x81\x13\xc1\x89\xe0\x44\x70\x22\x38\x11\x9c\x38\x3c\x4e\xb4\x25\x17\xcf\x92\x24\x3c\xb2\xef\x60\x7f\xe3\x64\x7f\x03\x66\xdf\x01\xfe\x00\x7f\x80\x3f\xc0\x1f\xe0\x0f\xf0\x07\xf8\x03\xfc\x75\x34\xdb\x02\xfe\x00\x7f\x80\x3f\xc0\x1f\xe0\x0f\xf0\x07\xf8\x3b\x3b\xf0\x07\x27\x83\x93\xc1\xc9\xe0\x64\x70\x32\x38\x99\x05\x9c\xcc\xa2\x7c\xbb\x49\x24\xda\x41\xd9\xa0\x6c\xe3\xa3\x6c\x10\x36\x08\x1b\x84\x0d\xc2\x06\x61\x83\xb0\x41\xd8\x20\x6c\x10\x36\x08\x1b\x84\x0d\xc2\x06\x61\x83\xb0\x41\xd8\x20\x6c\xa3\x22\x6c\xfb\xa9\x75\xe4\xd4\xc1\x0a\x61\x85\xb0\x42\x58\x21\xac\x10\x56\x58\xc3\x0a\xa9\x67\x77\x00\xf8\xf6\xaa\xd8\x7d\x08\xc2\x5b\xcf\xcb\xa8\x5f\x04\xf1\x83\xf8\x8d\x8f\xf8\x51\xd5\x0e\xf8\x07\xfc\x4b\xde\x32\xe0\x1f\xf0\x0f\xf8\x07\xfc\x03\xfe\x01\xff\x80\x7f\xc0\x3f\xe0\x1f\xf0\x0f\xf8\x07\xfc\x03\xfe\x8d\x0e\xfe\x41\x8e\x20\x47\x90\xa3\xe2\xd1\x04\x39\x2a\x7d\xcf\x20\x47\x9d\x90\x23\x5b\x90\xd1\xa0\xac\x08\x48\x54\xd4\x97\x40\x22\x20\x11\xa9\x61\xd0\x21\xe8\x10\x74\x08\x3a\x04\x1d\x82\x0e\x41\x87\xa0\x43\xd0\x21\xe8\x10\x74\x08\x3a\x04\x1d\x82\x0e\x41\x87\xa0\x43\x47\x3d\x0d\x74\x08\x3a\xd4\xdd\x68\x82\x0e\x95\xbe\x67\xd0\xa1\xf6\x74\xe8\x5e\xad\xe5\xcd\x75\x2b\x2e\x74\x6a\x20\xd2\x84\x39\x2d\xd5\x7a\xd7\xde\x33\xdd\x5c\x81\x86\x96\x6a\x5d\x00\x86\x74\x33\xdc\xde\x7d\xfc\xbd\xe8\x0a\x43\x11\xa1\xd1\x82\x9a\x5c\x43\xea\xd2\x66\x13\xa4\x35\x7a\xc0\xe4\x2e\x71\x91\xbf\x8d\x63\x5f\x3f\xc7\xdb\x44\x6b\x15\x96\x25\xf7\x19\x73\xbb\x5b\x58\x6b\xae\x29\x9c\xc0\x8b\x77\xf7\xc9\x32\xf1\xd6\xdc\x47\x71\x16\xd0\xfe\x8b\x64\xae\x50\xf6\x2e\xbd\xcd\x2e\x5c\x7d\xd1\x12\x22\x24\x6a\x86\x01\x54\x68\xc2\x54\xa8\x62\xe9\x3c\x82\x0c\xd5\x2c\xa6\xd5\xcb\xe9\xde\xd4\xf4\xdf\xa2\xbb\xbb\x0f\x16\xa5\x37\x57\xf4\xdd\x49\xa6\xda\x77\xfa\x2d\xfc\x4d\xbf\x18\x51\xc3\x89\xb6\xfa\xd5\x82\x78\x41\xbc\x20\x5e\x10\xaf\xa9\x11\xaf\x66\xab\x4a\x21\xf5\xaa\xde\xdc\x3f\x67\x25\x29\x72\x19\x25\xbe\xbe\x57\x3a\x94\xce\x89\x47\x94\x19\x07\x3b\xcf\x96\xb7\x23\xee\x95\x58\xc5\xad\x15\xad\xe3\x05\xfa\xd6\x17\xae\x6f\x66\x96\x20\x14\x1b\x3f\x9b\x9c\x16\x62\x11\x3e\xfd\xbe\xf1\xc5\xc2\x0d\x63\xd3\xec\x9b\xca\x46\xbc\xf6\x95\xf8\x42\xfa\xc9\x2b\x9f\x8e\x8d\xa4\x81\xc5\xc3\x26\xd4\x6f\xd9\x2a\x0c\x9c\xd8\x6e\x30\xee\xa4\x1c\x8d\x98\x8b\x3f\xf5\x2f\xea\xde\xd2\x63\xe7\x8d\xb8\x12\xb7\x9e\xf7\x46\x3b\x48\x17\xf1\x2c\xbd\xf1\xe3\x8e\x8f\xf7\xe7\xe9\x90\x4c\x2e\xa7\x16\x2d\x3a\xca\x3c\xcb\x30\xdd\xd4\x1b\xa6\x6c\xd6\x14\xe5\xa8\xb2\xb7\x16\xf9\x23\xef\x70\x72\x7d\x11\x19\x3f\x90\xb8\x57\x0f\xc6\x72\xce\x5c\xda\x5b\x53\x22\x99\xbd\xf4\xd0\xd9\x28\xb3\x38\xdc\x2b\xe1\x07\xfe\x95\xaf\x96\x52\x0f\xd0\xc4\x65\x34\x17\x7f\x64\x0b\xb6\xc1\x5b\xd9\xab\x91\x6c\x64\xdc\xc7\x47\xb5\x70\xe5\x5a\x79\x4f\x5b\x93\x76\xbb\xe4\xba\xde\xab\xc4\x25\xa4\x1b\x5d\x2c\x43\xe9\xe8\xb7\xc6\x0d\x16\x99\x41\xb0\x5d\xb4\xf5\x7e\x21\x1d\xa5\x9b\x28\xbe\xc9\x7c\x77\xc9\xf8\xcc\xf4\x81\x92\x1f\x79\x30\x73\x60\x7a\x89\xb9\xb9\xcf\x47\x25\xfd\xc2\x7b\x6c\xd1\xcd\xfa\x9e\xef\xf4\x2d\x17\xb9\xd9\x6a\x1c\x6d\xb6\x0c\xff\x63\x08\x75\xb3\x76\x29\xa7\xd4\xbd\x0d\x7f\x78\x35\xbc\x1a\x5e\x0d\xaf\x86\x57\x9f\x8c\x57\x37\x5c\x0b\x0e\x98\x75\x7f\xcb\xe2\xbb\x5c\x4e\xcb\xca\x53\x32\x52\xd9\x14\x74\x17\x06\x2b\xb9\xd4\xd6\xd1\x5d\xe0\xb9\xce\xd3\x8e\x1f\x2c\x1d\x74\xdb\xa4\x98\x78\xd8\xdd\xcc\xff\x31\x17\x9f\xcc\x7c\x66\x4c\x97\x95\xf2\xe3\x97\x65\xbb\xa6\x2a\x11\x84\xab\x2f\xd2\x4f\xfd\x72\xe1\x46\x5d\x3f\x48\x2f\xdd\x2b\x7f\xbe\x34\x5f\x7f\xbe\x14\x0f\xae\x2f\x3d\xf7\x3f\xe9\x42\x72\xaf\x84\x5c\x2c\xf4\xe8\xbc\x36\x84\x6b\xb1\xdd\x86\x99\xcb\xcf\xa2\xed\x49\x66\x7f\x3a\x17\xef\x5d\x3d\x39\xe6\x6e\x3d\x08\x0f\x9f\x4d\x4f\x3f\xc6\x55\x64\xb6\xc7\x7a\x8f\x12\xac\xbf\xb4\xe9\x50\xf3\x04\xef\xd2\x67\xef\xcd\xc5\x77\xb8\x31\xd3\x8f\x1e\xbf\xb0\x5f\x82\xef\x62\x29\xc3\x7b\xb9\xdc\xf1\x9f\x67\x9b\x1a\x15\x3e\x04\xe1\x63\xdc\x27\x85\xed\xf5\xdb\xde\x13\x95\x37\x97\x36\x7a\x53\x8b\x75\x65\xda\xd6\x8d\xad\x49\xc7\x5d\x6c\xb7\xc2\xda\x56\xd0\xce\x89\xac\x8f\xe3\xc5\x3a\x59\x49\x53\x6b\x60\x9e\xeb\xcc\x74\x1d\x49\xb7\xda\x57\x99\x8f\x79\xf7\xc7\xe6\xe2\xd6\x71\xd4\x6a\xad\xd7\xa6\xfc\xce\x6e\x66\x9e\x61\x26\xae\x92\x01\xb8\x3b\x40\xa3\x1f\xc5\xec\x9f\xd2\xf9\xba\x0c\x83\x8d\xbf\x88\x8f\xd2\xbe\x5a\x7d\xd0\x5e\xc3\x19\x13\x32\xb1\x8f\x77\x2f\x92\x3e\xc1\x7d\x76\xa5\x1f\xc5\xec\x43\x10\xaa\xdc\x65\x85\x23\x23\x47\x2e\xe2\xa7\x4f\xda\xc7\xb8\xf3\xf5\xf5\x22\xb3\xf5\x3c\xb8\xe0\x43\x76\x8d\x36\x03\x72\xb5\x3f\xdc\x07\xf4\x14\x10\x5c\x32\x9e\xe0\x92\x66\xa3\xab\x2a\xc0\xa4\xbf\xcd\xfc\x90\xa1\x26\xcd\xda\xa9\x22\xdc\xa4\xbf\x05\xdf\xd6\xc0\x93\x66\x4d\x78\x18\x7c\xf2\xdc\xe5\xb4\x90\x3b\x13\x3c\x71\x24\xd1\xfb\xb4\x96\xeb\x4d\x53\x94\x37\xea\x98\x89\xdc\x25\x4a\xd2\x5c\xcd\x42\xbe\x35\xb2\x06\xc8\x76\xad\x0c\x5f\xd8\xcf\x7d\xdd\x7b\xc2\xc3\x04\xd8\xce\x93\xee\x8d\xc3\x2d\x4c\x56\xfe\x74\x67\x90\xd6\x6d\x3d\x2a\xa0\x23\xbe\x54\x69\x38\x07\x41\x1c\x04\x71\x4c\x2b\x88\x83\xb0\x07\xc2\x1e\x08\x7b\x20\xec\x81\xb0\x87\xc1\xc3\x1e\xe0\xe9\x20\x56\x10\x2b\x88\x15\xc4\x0a\x62\x05\xb1\x82\x58\x4b\x17\x01\xa8\x07\xd4\x03\xea\x01\xf5\x80\x7a\x20\x22\x5a\x85\x57\xe6\xda\xc9\x9f\xf8\xe3\xe7\x87\xce\xeb\x73\xc9\x4a\xad\x27\x2c\x03\x69\x88\x76\x4b\x55\x5a\xc8\x8a\x8e\x45\x6a\xe4\x62\xaf\x27\x2f\x57\x41\xd4\x31\x42\x32\x06\xbd\x90\xc7\xd1\x22\x73\xd6\x69\x79\x51\xbb\x3c\xcb\x8a\xba\xd8\x27\x9d\x54\x3a\xc9\xbe\x24\x03\x28\xdf\xf5\xd6\x66\x00\xe9\xad\xfc\x2f\xd2\x97\x4b\x15\x1a\xa7\x94\xa9\x02\x1f\x45\x81\xe3\xea\x5d\x56\xe6\xfe\x91\xda\x8b\x17\x84\x22\xde\x84\xaf\x9f\xb2\x6d\xe7\xa3\xfc\x1a\xb7\xe2\xfa\x8b\x8a\x54\x6a\x4a\xe5\xf3\x5c\xd2\x7c\x18\x6d\x4a\x6a\x57\x4f\x10\x8a\x9b\xd7\x3f\xc4\xc7\x86\xd2\xd1\x6c\xc7\x0b\xfc\xa5\x31\x9c\xb4\x3b\x26\xde\x37\x4b\xd7\x37\xf3\x96\x76\x77\x6c\x8f\xd5\xfe\xee\x84\x3c\x89\xfb\x27\xa1\x57\x9b\x37\xd7\xd7\xcb\xc0\x93\xfe\x72\x1e\x84\xcb\xeb\xd5\xd7\xe5\xf5\xc6\x77\x9d\x60\xa1\xae\xff\xf6\x31\xba\x8b\xaf\xd2\xda\x7f\x9a\x34\x4e\x97\xdd\x63\x95\xa5\x35\x6e\x03\xa8\xa9\xf1\xf3\xba\x81\xf1\xf3\xd6\x38\x84\x6c\xbc\xf9\xd7\xb5\x37\x6f\x22\x5c\x6d\xbc\xfb\x69\xdb\x9d\xda\x8c\x19\xa9\xdd\x79\x21\xba\xd1\x78\xb9\xfe\x6f\x3c\x63\xfe\xaf\x27\xa9\x97\x23\xed\xbb\x1a\x79\x97\x01\xed\xbb\x91\xe8\x68\x60\xc9\xe5\x3b\xd9\x5a\x4b\x8e\xcc\xe5\x33\xca\x5c\x26\x45\x8b\x14\x2d\x52\xb4\x48\xd1\x62\x13\x5a\xf6\x16\x59\x99\xe4\x30\xcc\x46\x8e\x1c\x8d\x23\x72\x34\xc6\xba\x97\xcb\xfc\xea\x9d\x67\x66\x68\x56\xbf\x6b\x9c\x1d\xb5\x01\x8b\xcf\x6f\xb9\xfd\x62\x36\xc2\x2f\xd3\xf2\x6d\x8e\x5f\x83\xb1\xbf\xca\x2d\x70\xa0\xf6\xde\x27\xdb\xe0\xba\x9b\x31\x16\xc8\x4a\xae\xbf\x14\xe3\x3f\xfd\xff\xce\x37\x15\x44\xea\xc4\xaa\xf1\xe3\xc5\x9c\x3a\xca\xa0\x95\x0e\xf9\x95\x3e\xf7\xef\xd5\x33\xdc\xa3\x0a\x97\xaa\xd1\x91\xd1\x3a\x94\x6b\xb5\x74\x9d\xab\xe6\xe7\xc4\x9f\x9f\x92\x23\xf5\x5c\xda\x64\xc1\xd0\x61\x69\x3a\xeb\xc5\x44\xc4\x3c\x67\xf1\x58\x95\x14\xc0\x1d\xdc\x79\x77\x2a\x38\x5b\x61\xac\xdd\xed\x06\xac\x08\x5c\x7a\x13\x77\xe9\x9d\x0f\x9c\xdd\x8b\x2b\x4f\x5f\x2e\x93\xfb\xb0\x32\xa1\xa0\x49\x3e\xed\x8b\x92\xf9\xe9\xa5\x76\x68\x98\x84\x47\xe9\xe9\x33\xfd\xc0\xbf\x32\x67\xeb\x23\xb4\x4f\x31\x12\x2f\x7e\x8a\x02\xff\xce\xa4\x95\xfe\x12\xcf\x84\xc9\xe7\x4f\xe9\xfc\xb8\xfd\xe3\x4b\x9b\xa8\x71\xf3\x71\xf3\x21\x08\x1d\xed\x74\x5d\x06\xba\xf3\x03\xf1\xf9\xf2\x21\xfe\xdb\xe7\x4b\x71\xbb\xd3\x9a\x73\xf1\x71\x9d\x78\x48\x37\xd1\x36\x85\xee\x4a\x3a\xba\x03\x74\x62\xa2\xe7\x3a\x89\xcf\x47\x79\x8b\x48\x04\xdf\x93\xbe\x35\x89\x7b\x2b\x15\xac\x3c\x35\x17\xe6\x37\x75\x3e\x72\x3a\xa6\x74\xac\x70\x61\x47\x64\x3f\xdf\xa6\x79\xe3\x1f\x9a\x6e\xe0\x23\x7b\x8f\xf1\xef\x3d\x56\x7b\x71\xa9\x23\xdd\x7d\x6c\x3a\x77\x24\xac\x3c\xe9\x3c\xcb\x1c\x4c\x2e\x71\x4e\x06\x21\xd1\x7a\x18\x84\xe7\x67\x10\x5a\x64\x77\x61\x1e\x64\xdf\x10\xad\xd7\xe0\xe6\x27\x6e\xdb\x6c\x46\xeb\x57\xbd\x10\xcf\x0b\x77\x1b\xbc\x96\x59\xfb\x28\xb7\xa2\x22\x66\x6d\x4c\x23\x84\xaf\x10\xbe\x32\x5f\x59\x20\x7c\x35\xe9\xa8\x4b\x64\xbc\x90\xf1\x42\xc6\x0b\x19\x2f\x64\xbc\x8a\x96\x12\xaa\x97\xe1\x0d\x41\x6d\x8d\x1c\x80\x73\xce\x01\x40\x5a\x0f\x69\x3d\xa4\xf5\x90\xd6\x43\x5a\x0f\x69\x3d\xa4\xf5\x48\x8d\x23\x35\x8e\xd4\x38\x52\xe3\xf6\x47\x24\xd5\xcb\xd0\xf1\x3c\x7a\x74\xa1\xe3\x89\x8e\x27\x3a\x9e\xd3\x8f\x57\x21\x33\x76\x84\xd5\xcb\xac\x4a\x8e\x6d\x5c\xb6\xac\x22\x76\xa3\x61\xbd\x32\xe2\x35\x88\xd7\x18\x75\xbc\x06\x11\x0e\x44\x38\x10\xe1\x40\x84\x03\x11\x0e\x83\x47\x38\x80\xce\xa1\xa9\xd0\x54\x68\x2a\x34\x15\x9a\x0a\x4d\x85\xa6\x96\x2e\x02\x00\x0e\x00\x07\x80\x03\xc0\x01\xe0\xa0\x50\x59\xab\xe4\x59\x2a\x94\xad\xad\xa9\x50\xf6\x2c\x35\x10\x4a\x93\x75\x5c\x9a\xac\x82\x08\x35\xae\x49\x36\x61\x79\x13\x74\x4d\xce\x27\x93\x07\x5d\x13\x74\x4d\x0a\x6e\xc6\x7e\xeb\x66\x9c\x82\x26\x76\xcb\xd5\x3f\xfb\xb6\xa7\x6d\x46\x0e\x5f\x70\x6c\x08\xe9\x95\x01\x4b\x8c\xb5\x57\x5d\x19\xc2\x4e\x1b\x89\xbc\x05\x86\x59\xbe\x93\xad\x35\xcc\x48\x28\x3e\xa3\x84\x62\x32\xa7\xc8\x9c\x22\x73\x8a\xcc\x29\xf6\x94\x65\x6f\x91\x95\xb9\x07\x14\x15\xb3\x78\xb7\x66\x43\x51\x31\xab\x12\x26\xaa\xab\x89\x55\xec\xb5\x1a\x96\x11\xbb\x64\xe2\xc1\xbf\x32\xea\xc2\x61\x3d\x53\xba\x92\x8a\x61\x45\x3c\x8e\x52\x61\x94\x0a\x2b\x3d\xe7\xc4\xa5\xc2\x2a\x56\x86\xa6\x35\xc2\xc6\x0f\x4b\x29\x0e\x86\x6b\xee\xfc\x98\x29\xc5\xc1\xba\x1c\x37\x14\x07\xc3\xa3\xc1\xc6\xe2\x3c\xab\x82\x3d\x6b\x6b\xd1\x7b\x39\xb0\x4a\x67\x40\xd3\x3a\x60\xe3\x37\xfa\x88\x90\xc3\xda\x3b\x23\x6b\xcf\x22\xa3\x8a\xb5\x3f\xfb\x86\x08\xb9\xc2\xbb\x9e\xb8\xc5\x32\x74\xad\xaf\xbe\x22\xcd\xe2\x89\x24\x5a\x49\x27\x8d\x33\xd3\x9f\xff\x77\x1d\x06\x9e\xba\x37\xe5\xc6\x86\xa9\xfd\xd5\xac\x28\x6a\xd3\xda\x5f\xbf\xa6\x4f\xb6\x78\x66\x81\x54\x54\xa5\x50\x95\x32\x5f\x59\xa0\x2a\x35\xe9\x30\x49\x34\xb2\xd0\xc8\x42\x23\x0b\x8d\x2c\x34\xb2\x8a\x96\x12\xaa\x80\xe1\x19\x41\xca\x8c\xa0\xfd\x73\x0e\xda\x47\xb7\x0e\xdd\x3a\x74\xeb\xd0\xad\x43\xb7\x0e\xdd\x3a\x74\xeb\xc8\x65\x23\x97\x8d\x5c\x36\x72\xd9\xf6\x47\x24\x55\xc0\x10\xc9\x3c\x7a\x74\x21\x92\x89\x48\x26\x22\x99\xd3\x8f\x5d\x21\x95\x75\x2c\x55\xc0\x8a\xe3\x16\x86\x4f\x6a\xad\xae\x02\xd6\x2c\x8a\xa3\xaa\x0a\x18\x91\x1b\x44\x6e\x4c\x2f\x72\x83\x58\x07\x62\x1d\x88\x75\x20\xd6\x81\x58\x87\xc1\x63\x1d\x80\xe8\x70\x55\xb8\x2a\x5c\x15\xae\x0a\x57\x85\xab\xc2\x55\x4b\x17\x01\x50\x07\xa8\x03\xd4\x01\xea\x00\x75\x50\x0f\xac\x79\x66\x6d\xce\x6b\x4d\x3d\xb0\xf5\xb0\xf5\xc0\x3a\x62\x28\x2d\x94\x06\x13\xfb\xc9\x08\x17\xf8\x0b\x11\xdf\xb3\x88\x9c\x60\xa5\x5e\x89\x68\xe3\xe8\x45\x4c\xcf\xfd\x4a\x3e\x9a\x89\x6b\x15\x06\xda\x5e\xdb\xbd\xd1\x26\x62\x84\x9a\x96\xec\x7e\x8d\x22\x61\xdd\xd3\x24\x9f\x7a\x29\x84\xd6\x0c\x8a\x55\x17\x42\xeb\x0c\x8b\xd9\x2c\xf8\x92\x7f\xb4\x66\xf3\x26\x69\x4d\x13\x48\x6b\x42\xf0\x05\xc1\x97\x82\x9b\xb1\xdf\xc0\x1b\x91\xe0\x4b\xab\xbb\x1e\xbe\x24\x5a\x8b\xdb\x9e\xb6\x25\x3d\x50\x49\xb4\xe7\x59\xd2\x17\xe2\x34\x42\x35\x7d\x57\x4a\xeb\x42\xa3\x66\x60\x43\x6e\x24\x62\x20\x58\x6e\xf9\x4e\xb6\xd6\x72\x23\xfd\xfa\x8c\xd2\xaf\xc9\x33\x23\xcf\x8c\x3c\x33\xf2\xcc\xd8\x74\x96\xbd\x45\x56\x66\x6a\x50\x33\xcd\xe2\xed\xdc\x60\x35\xd3\x6c\x4d\x2f\x29\xa8\x99\xd6\x6c\xd7\x55\x55\x33\xad\x7e\xcf\xc5\x14\x84\x2b\x66\x1c\xd5\xd3\x86\x63\x9a\xf9\xea\x69\xa5\x77\x31\xa6\xea\x69\x40\xda\xd1\x41\x5a\xca\xc6\xb5\x5a\x1c\x2b\xcb\xc6\x4d\x14\x2d\x53\x40\x0e\x3f\xe5\xf9\x11\x66\x0a\xc8\x75\x39\x6e\x28\x20\x87\x7b\x87\xbd\xd5\x19\x15\x90\xeb\x6a\x77\xd5\x4f\x01\xb9\xa6\x9e\x91\xca\x02\x72\x13\x35\xff\x88\x2c\xc4\xee\x3b\x23\xbb\xcf\x22\xf3\x0a\x2b\x20\xfb\x86\xc8\xc2\xc2\xbb\x9e\xb8\xed\x32\x48\x29\x39\xbb\x22\xf4\x86\xab\x21\xd7\x3a\x30\xaf\xac\x78\x5c\x1b\x53\x08\xed\x31\xb4\xc7\xcc\x57\x16\x68\x8f\x4d\x3a\x50\x14\x25\x35\x94\xd4\x50\x52\x43\x49\x0d\x25\xb5\xa2\xa5\x84\xaa\x71\x38\x41\x10\xbc\x23\x6d\xe1\x9c\xd3\x16\x50\x37\x44\xdd\x10\x75\x43\xd4\x0d\x51\x37\x44\xdd\x10\x75\x43\xb2\xf9\xc8\xe6\x23\x9b\x8f\x6c\xbe\xfd\x11\x49\xd5\x38\xa4\x54\x8f\x1e\x5d\x48\xa9\x22\xa5\x8a\x94\xea\xf4\xc3\x54\x48\xe6\x1d\x53\xd5\x38\xab\xf2\x79\xeb\xcb\xc5\x55\x04\x6c\x34\xaf\x13\x47\x90\x06\x41\x1a\xa3\x0e\xd2\x20\xac\x81\xb0\x06\xc2\x1a\x08\x6b\x20\xac\x61\xf0\xb0\x06\x78\x39\x08\x15\x84\x0a\x42\x05\xa1\x82\x50\x41\xa8\x20\xd4\xd2\x45\x00\xaa\x01\xd5\x80\x6a\x40\x35\xa0\x1a\x14\x88\x3b\x2e\x5f\x96\xca\x70\xeb\xe1\x2b\xc3\x3d\x4b\xe0\x83\x92\x70\x67\xa0\x36\x78\xda\x92\x70\x15\xe0\xeb\x98\x5a\x70\x53\x94\x6a\x41\xa3\xe5\x7c\xd2\x93\xd0\x68\x41\xa3\xa5\xe0\x66\x2c\xb6\xde\x46\x26\xce\x62\x77\xa1\x80\xf6\xf7\x3b\x6d\xc3\x78\xc0\x42\x6f\x36\xe8\xc7\x0c\x51\xda\xad\xb5\x74\xcc\x50\x06\xd9\x48\x34\x3a\x30\xc4\xf2\x9d\x6c\xad\x21\x46\x56\xf4\x19\x65\x45\x93\xfe\x45\xfa\x17\xe9\x5f\xa4\x7f\xb1\x87\x2c\x7b\x8b\xac\x4c\xa0\xa0\x98\x9b\xc5\x5b\xb6\x41\x8b\xb9\x59\x95\xf5\x51\x52\xc5\xad\x62\x83\xd5\xbc\x7c\xdb\x25\xb3\x0d\x2e\x95\x91\x15\x6c\xeb\x19\x35\xee\x57\x6a\x3b\x1e\x20\xda\xc2\x0e\x81\xa6\xa3\x83\xa6\x94\x68\x3b\x6e\xe5\x3b\xa2\x36\xdb\xf8\x51\x2f\x45\xd9\xf0\x37\x9e\x1f\xf8\xa5\x28\x5b\x97\xe3\x86\xa2\x6c\xb8\x69\xd8\x38\x1d\x36\xe3\x34\xab\xb1\x3d\x6b\xeb\xd4\x5f\x19\xb6\x4a\xd7\xc6\x11\xf5\xd7\xc6\x6f\xe2\x11\xcd\x87\x51\x77\x0e\x46\x9d\x45\xb6\x13\x4b\x7c\xf6\x0d\xd1\x7c\xc9\x95\x27\x6e\x91\x0c\x56\x63\xad\xaf\xe0\xb8\x30\xf0\xd4\xbd\xa9\xe7\xb6\x53\x4c\x6d\x00\x85\xae\xfa\x12\xb3\x55\x42\x5d\xb9\x2b\x7c\x08\xc2\x5b\xcf\xcb\x0c\x9e\xc8\x06\x94\x53\x7a\xc2\xb9\xe7\xa8\x25\x7d\x46\xaa\x9a\x05\xa9\x6a\x5d\x94\xa4\x3e\x1e\x23\xa1\x88\x37\x61\x45\xbc\x7a\x4c\x54\xa7\x86\x57\xe9\x96\xea\x00\x81\xa1\x81\x87\x06\x1e\x1a\x78\x68\xe0\x4d\x4d\x03\xaf\x7e\xe6\x2d\xd4\xbf\x3b\x71\xc0\x41\x6f\xaa\x77\xf5\x8f\x5f\xae\x78\x67\x73\x1b\x1c\xa3\x73\x57\xdf\x06\xe5\x1a\x77\x27\x6e\x03\x94\xed\x50\xb6\x43\xd9\x0e\x65\x3b\x94\xed\x4e\xa6\x6c\xd7\x60\xf6\x3f\x50\xb5\xab\xcc\x0b\x3b\xa3\x78\xc3\x66\x4f\x83\x32\xdf\xc8\x94\xf9\xea\x07\x51\x95\x2a\xdf\x89\x47\xd3\xa0\x5a\x7c\xf5\x2d\x53\xa1\xc3\x77\xea\x59\xc3\x56\xf5\xbd\xfa\x46\x2b\xf0\xe8\xb7\x76\x67\x25\x9f\xfe\x6a\xcd\x79\x86\x06\x3c\xcf\x20\x3b\x20\x9d\xfd\xd6\xb7\x18\xe9\xc0\x72\x2c\x60\x39\x40\x1c\x20\x0e\x10\x07\x88\x03\xc4\x01\xe2\x00\x71\x80\x38\x5d\xce\xb6\x40\x1c\x20\x0e\x10\x07\x88\x03\xc4\x01\xe2\x00\x71\x80\x38\x40\x1c\x20\x0e\x10\x07\x88\x03\xc4\xa9\x6d\xab\x67\x41\x1c\x7d\x23\xd7\x8e\xb7\x89\xd6\x2a\xec\x2d\x73\x27\x31\x84\xfc\x85\xfb\xcd\x5d\x6c\xa4\x97\xef\x3f\x99\x6d\x76\xde\x9a\xbb\xca\xa5\x11\xcc\x73\xe2\xad\x6f\x32\xb3\x74\xa6\x2f\x37\xdb\xfa\xb8\x76\x9c\x16\x19\x16\x12\xae\x1f\xad\x95\xdc\x59\x3f\xf6\xa1\xd1\xf7\x2a\x49\x9b\xc3\xfb\xf9\x79\xcf\x19\x0f\x37\xb2\x55\xac\x52\x4f\x15\xef\xe3\xcd\x10\x18\x29\x1b\xe8\x03\xb1\xa4\xc3\xf7\x08\xb2\x04\x59\x82\x2c\x41\x96\x20\x4b\x90\x25\xc8\x12\x64\xa9\xcb\xd9\x16\xb2\x04\x59\x82\x2c\x41\x96\x20\x4b\x90\x25\xc8\x12\x64\x09\xb2\x04\x59\x82\x2c\x41\x96\x20\x4b\xb5\x6d\x75\x1a\xb2\x54\x50\x20\xf5\x44\x80\x29\x4f\x95\xfc\x74\xfd\x4b\xd3\x87\x4e\x44\x97\x5e\x6d\x0d\x5f\x6d\xdc\x27\x46\x52\x6c\x3b\x6f\x2d\xfa\xd9\xce\x4e\x30\x77\xed\x0e\xd9\x14\x5c\x0a\x2e\x35\x52\x2e\x05\x93\x82\x49\xc1\xa4\x60\x52\x30\x29\x98\x14\x4c\x0a\x26\x05\x93\x82\x49\xc1\xa4\x60\x52\x30\x29\x98\x14\x4c\x0a\x26\x35\x76\x26\x95\xaf\x72\x5c\xe7\x78\x18\x53\xcd\x63\x58\x1b\xac\x0d\xd6\x56\x3c\x9a\x60\x6d\xa5\xef\x19\xac\xad\x73\xd6\x66\x59\xfa\x96\x35\x79\x5b\x24\x6c\x01\xc6\x46\x0c\xc6\x86\x4f\xd8\x82\x8a\x41\xc5\xa0\x62\x50\x31\xa8\x18\x54\x0c\x2a\x06\x15\xeb\x72\xb6\x85\x8a\x41\xc5\xa0\x62\x50\x31\xa8\x18\x54\x0c\x2a\x76\x76\x54\x0c\x7a\x04\x3d\x82\x1e\x15\x8f\x26\xe8\x51\xe9\x7b\x06\x3d\xea\x9e\x1e\xd9\x97\xa2\x35\x91\xdc\x2c\xd8\x13\xec\x69\xa4\xec\x09\xee\x04\x77\x82\x3b\xa5\xef\x1a\xdc\x09\xee\x04\x77\x82\x3b\xc1\x9d\xe0\x4e\x70\x27\xb8\x13\xdc\x09\xee\x04\x77\x82\x3b\xc1\x9d\x46\xc7\x9d\x4a\xb2\xb1\x48\xc3\x02\xa4\x01\xd2\x00\x69\x80\x34\x40\xda\x51\x20\x2d\xbe\xad\x68\x25\x9d\x14\xa3\xe9\xcf\xff\xbb\xb6\xac\xb8\x96\x35\x55\xb5\x7e\x4d\x9b\x68\x41\x61\x2d\x58\xd9\x34\x58\xd9\x40\x79\x5a\xa8\x17\xc2\xcb\xe0\x65\xf0\x32\x78\x19\xbc\x0c\x5e\x06\x2f\xb3\x91\x15\xc1\xcb\xe0\x65\xf0\x32\x78\x19\xbc\x0c\x5e\x06\x2f\x1b\x23\x2f\x4b\x9e\x5a\x63\xb3\xb8\x2b\xe5\x66\xfd\x45\x44\x4e\xb0\x52\xaf\x44\xb4\x71\x34\x19\xd0\xfb\x15\x25\x1f\x8d\xa7\x78\x15\x06\xba\x95\x8f\x47\x6a\xda\x31\x08\x57\x83\xab\xc1\xd5\xe0\x6a\x70\x35\xb8\x5a\x35\x57\xb3\x24\x6f\x6d\x22\x35\xc5\x0a\xc9\x1c\x54\x0e\x2a\x37\x52\x2a\x07\x91\x83\xc8\x41\xe4\xd2\x77\x0d\x22\x07\x91\x83\xc8\x41\xe4\x20\x72\x10\x39\x88\x1c\x44\x0e\x22\x07\x91\x83\xc8\x41\xe4\x20\x72\xa3\x23\x72\xf9\x0c\xb6\x49\x14\x12\x03\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\xd1\x12\xc4\x68\x4b\xce\x9e\x4d\xc9\x7a\x64\xe9\xc1\x03\x47\xcc\x03\x07\xcc\xd2\x03\x06\x02\x03\x81\x81\xc0\x40\x60\x20\x30\x10\x18\x08\x0c\xec\x72\xb6\x05\x06\x02\x03\x81\x81\xc0\x40\x60\x20\x30\x10\x18\x78\x76\x30\x10\x76\x06\x3b\x83\x9d\xc1\xce\x60\x67\xb0\x33\x5b\xd8\x99\x45\x79\x79\xd3\x49\xc8\x83\xbc\x41\xde\x46\x4a\xde\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x06\x75\x83\xba\x41\xdd\xa0\x6e\x50\x37\xa8\x1b\xd4\x0d\xea\x06\x75\x83\xba\x41\xdd\xc6\x47\xdd\xf6\x53\xf0\xc8\xbd\x83\x1f\xc2\x0f\xe1\x87\xf0\x43\xf8\x21\xfc\xb0\x09\x3f\xa4\x3e\x5e\x31\xf4\xdb\xab\x8a\xf7\x21\x08\x6f\x3d\x2f\x23\x81\x11\x14\x10\x0a\x38\x52\x0a\x48\x95\x3c\x80\x20\x40\x30\x77\x20\x40\x10\x20\x08\x10\x04\x08\x02\x04\x01\x82\x00\x41\x80\x20\x40\x10\x20\x08\x10\x04\x08\x02\x04\xc7\x07\x04\xa1\x49\xd0\x24\x68\x52\xf1\x68\x82\x26\x95\xbe\x67\xd0\xa4\xee\x68\x92\x2d\x18\x69\x78\x7e\x04\x38\x2a\xea\x50\xc0\x11\xe0\x88\x14\x32\x88\x11\xc4\xa8\x6c\xf8\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x68\x77\xba\xb5\x90\x96\x40\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\xed\x3e\x0d\xc4\x08\x62\x04\x31\x82\x18\x9d\x21\x31\x8a\x9c\x2f\x6a\xb1\xf1\xe2\x0d\x40\x42\x8a\x5a\x61\xa1\x53\xa3\x90\x26\xc8\x69\xa9\xd6\xc2\xf5\x1f\x82\xf0\x31\x1b\xdb\x52\x18\x6f\x76\x39\x1c\x5a\xaa\xf5\xa7\xac\x09\x6e\xef\x3e\xfe\x6b\xff\xf8\xa1\xe0\xcf\x68\x99\x4c\xd6\x88\x23\x27\x32\xdb\x37\x23\x77\xce\x45\xfe\x77\xeb\xde\xa4\x6f\x37\xe3\x7e\x99\x76\x36\x4b\x66\x8e\x6c\xfa\x26\xfd\x79\x73\x7b\xf7\xf1\xf7\xa2\xb3\x78\x9f\x8e\x7f\x9f\xd2\x86\xd4\x15\x05\x27\xf3\x5a\xfd\xdf\xb7\x9b\x67\xbc\x59\xab\xd0\x0d\x42\x77\xfd\xe4\x78\x32\xda\xed\xc0\x4b\xb3\x05\xed\x36\x9e\xc1\x5c\x53\x38\x81\xe7\x29\x27\x5d\x5e\xee\x92\x7b\x78\x1b\xdf\x43\xc5\xab\x61\x4e\xce\xbf\x1d\x6f\xb3\xeb\x94\x5e\xa3\x84\x87\x8a\x9a\x3e\x85\x89\x4e\x98\x89\x56\x18\x8e\x47\x70\xd1\x1a\x53\xb2\xda\x98\xdc\x9b\x67\xfe\x5b\x74\x77\xf7\xc1\xa2\xf4\xe6\x8a\xbe\x3b\xc9\xbc\xf9\x4e\xbf\x74\xbf\xe9\x17\x23\x6a\x38\x6b\x56\xbf\x5a\xf0\x5e\x78\x2f\xbc\x17\xde\x3b\x35\xde\xdb\x6c\x55\x29\x64\xbe\xd5\xae\xad\xe7\xac\x24\x45\x0e\xd3\xc4\xd3\xfd\x4a\xc7\x95\x3a\xf1\x88\x32\xe3\x60\xe7\xd9\xf2\x76\xc4\xbd\x12\xab\xb8\xb5\xa2\x75\xbc\x40\xdf\xfa\xc2\xf5\xcd\xcc\x12\x84\x62\xe3\x67\x93\xd3\x42\x2c\xc2\xa7\xdf\x37\xbe\x58\xb8\x61\x6c\x95\x7d\x53\xd9\x88\xd7\x9e\x42\x5f\x48\x3f\x79\xe5\xd3\xb1\x91\x34\xb0\x78\xd8\x84\xfa\x2d\x5b\x85\x81\x13\xdb\x0d\xc6\x99\x9a\x63\x71\x73\xf1\xa7\xfe\x45\xdd\x5b\x7a\xec\xbc\x11\x57\xe2\xd6\xf3\xde\x68\x3c\xb0\x88\x67\xe9\x8d\x1f\x77\xfc\x52\x45\xd9\x90\x4c\x2e\xa7\x16\x2d\x3a\xca\x3c\xcb\x30\xdd\xd4\x1b\xa4\x6f\xd6\x14\xe5\xa0\xbe\xb7\x16\xf9\x23\xef\x6e\x75\x7d\x11\x19\x2f\xa8\xb8\x57\x0f\xc6\x72\xce\x80\xce\xd6\x94\x48\x66\x2f\x3d\x74\x36\xca\x2c\x0e\xf7\x4a\xf8\x81\x7f\xe5\xab\xa5\xd4\x03\x34\x71\x98\xce\xc5\x1f\xd9\x82\x6d\xe0\x6e\xf6\x6a\x24\x5b\x16\xf7\xf1\x51\x2d\x5c\xb9\x56\xde\xd3\xd6\xa4\xdd\x2e\xb9\xae\xf7\x2a\x71\x88\xea\x46\x17\xcb\x50\x3a\xfa\xad\x71\x83\x45\x66\x10\x6c\x17\x6d\xbd\x5f\x48\x47\xe9\x26\x8a\x6f\x32\xdf\x5d\x32\x3e\x33\x7d\xa0\xe4\x47\x1e\xcc\x1c\x98\x5e\x62\x6e\xee\xf3\x51\x49\xbf\xf0\x1e\x5b\x74\xb3\xbe\xe7\x3b\x7d\xcb\x45\x4e\xe6\x1a\x37\xb3\x2d\xc3\xff\x98\xf8\x8c\x66\xed\x52\x1e\xa3\xd1\xdb\xf0\x27\x5a\x83\x68\x0d\xa2\x35\x88\xd6\x20\x5a\xe3\x64\xd1\x1a\x0d\xd7\x82\x83\x88\x8d\xfe\x96\xc5\x77\xb9\x04\xaf\x95\xa7\x64\xa4\xb2\x29\xe8\x2e\x0c\x56\x72\xa9\xad\xa3\xbb\xc0\x73\x9d\xa7\x1d\x3f\x58\x3a\xe8\xb6\x19\x62\xf1\xb0\xbb\x99\xff\x63\x2e\x3e\x99\xf9\xcc\x98\x2e\x2b\xe5\xc7\x2f\xcb\x76\x4d\x55\x22\x08\x57\x5f\xa4\x9f\xfa\xe5\xc2\x8d\xba\x7e\x90\x5e\xba\x57\xfe\x7c\x69\xbe\xfe\x7c\x29\x1e\x5c\x5f\x7a\xee\x7f\xd2\x85\xe4\x5e\x09\xb9\x58\xe8\xd1\x79\x6d\xf8\xee\x62\xbb\x0d\x33\x97\x9f\x45\xdb\x93\xcc\xfe\x74\x2e\xde\xbb\x7a\x72\xcc\xdd\x7a\x10\x1e\x3e\x9b\x9e\x7e\x8c\xab\xc8\x6c\x8f\xf5\x1e\x25\x58\x7f\x69\xd3\xa1\xe6\x09\xde\xa5\xcf\xde\x9b\x8b\xef\x70\x63\xa6\x1f\x3d\x7e\x61\xbf\x04\xdf\xc5\x52\x86\xf7\x72\xb9\xe3\x29\xcf\x36\x35\x2a\x7c\x08\xc2\xc7\xb8\x4f\x0a\xdb\xeb\xb7\xbd\x27\x2a\x6f\x2e\x6d\xf4\xa6\x16\xeb\xca\xb4\xad\x1b\x5b\x93\x8e\xbb\xd8\x6e\x85\xb5\xad\xa0\x9d\x13\x59\x1f\x47\x9a\x11\xeb\x6f\x53\x6b\x60\x9e\xeb\xcc\x74\x1d\x49\xb7\xda\x57\x99\x8f\x79\xf7\xc7\xe6\xe2\xd6\x71\xd4\x6a\xad\xd7\xa6\xfc\xce\x6e\x66\x9e\x61\x26\xae\x92\x01\xb8\x3b\x40\xa3\x1f\xc5\xec\x9f\xd2\xf9\xba\x0c\x83\x8d\xbf\x88\x8f\xd2\xbe\x5a\x7d\xd0\x5e\xc3\x19\x13\x32\xb1\x8f\x77\x2f\x92\x3e\xc1\x7d\x76\xa5\x1f\xc5\xec\x43\x10\xaa\xdc\x65\x85\x23\x23\x47\x2e\xe2\xa7\x4f\xda\xc7\xb8\xf3\xf5\xf5\x22\xb3\xf5\x3c\xb8\xe0\x43\x76\x8d\x36\x03\x72\xb5\x3f\xdc\x07\xf4\x14\x10\x5a\x35\x9e\xd0\xaa\x66\xa3\xab\x2a\xbc\xaa\xbf\xcd\xfc\x90\x81\x56\xcd\xda\xa9\x22\xd8\xaa\xbf\x05\xdf\xd6\xb0\xab\x66\x4d\x78\x18\x7a\xf5\xdc\xe5\xb4\x90\x30\x13\x09\x71\x24\xd1\xfb\xb4\x96\xeb\x4d\x53\x94\x37\xba\x00\x88\xdc\x69\x25\xd9\xdd\x66\xf1\xde\x1a\x56\x5d\x24\x79\x1f\xc4\x56\x14\x27\x77\x97\x45\x29\xec\x67\x79\x57\x25\x78\x77\xae\x31\x61\x5c\x6a\x61\xb2\xb6\xa7\xb6\x7f\x5a\xce\xb8\x69\x70\x46\x7c\x95\x7c\x68\x06\x01\x19\x04\x64\x4c\x27\x20\x83\x10\x06\x42\x18\x08\x61\x20\x84\x81\x10\x86\xc1\x43\x18\x60\xe3\xe0\x52\x70\x29\xb8\x14\x5c\x0a\x2e\x05\x97\x82\x4b\x4b\x17\x01\x08\x06\x04\x03\x82\x01\xc1\x80\x60\x20\x8c\x5b\x85\x4a\xe6\x39\xe7\xfd\xb7\x9b\xf9\x8e\xe3\x7a\xca\xa9\xa2\xf5\xa4\xa4\x2b\x09\xdc\x1e\xe9\x48\x0b\xf9\xdb\xb1\x48\xe2\x5c\xec\xf5\xdb\xe5\x2a\x88\x3a\x46\x41\xc6\x5c\x17\xb2\x31\xf5\x31\x27\x74\xca\x7d\xda\xe5\x3e\x56\x54\x74\x3f\xd9\xe4\xd0\x49\x36\x24\x19\x39\xf9\x6e\xb7\x36\x23\x47\x6f\xc7\x7f\x91\xbe\x5c\xaa\xd0\x38\x96\xe2\xbb\x8a\x77\xf5\x81\xe3\xea\x9d\x52\xe6\xc2\x91\xda\x13\x17\x84\x22\xde\x48\xaf\x9f\xb2\xad\xe3\xa3\xfc\x1a\xb7\xe2\xfa\x8b\x8a\x54\x6a\x0e\xe5\xf3\x4e\xd2\xfc\x14\x6d\x0e\x6a\x77\x4d\x10\x8a\x9b\xd7\x3f\xc4\xc7\x86\xd2\xd1\x7c\xc6\x0b\xfc\xa5\x31\x7e\xb4\x4b\x25\xde\xfb\x4a\xd7\x37\xb3\x93\x76\x59\x6c\x8f\xd5\x3e\xeb\x84\x1e\x89\xfb\x27\xa1\x57\x8d\x37\xd7\xd7\xcb\xc0\x93\xfe\x72\x1e\x84\xcb\xeb\xd5\xd7\xe5\xf5\xc6\x77\x9d\x60\xa1\xae\xff\xf6\x31\xba\x8b\xaf\xd2\xda\x07\x9a\x34\x4e\x97\xdd\x63\x95\xb5\x34\x5e\x23\xa6\xa9\x01\xf3\xba\x81\x01\xf3\xd6\x38\x74\x6c\xbb\xf1\xd7\xb5\x37\x6e\x22\x4d\x6d\xbb\xf3\xe9\xd9\x8c\xda\x28\x19\x85\xcd\x78\x21\x5a\x49\xa4\x5c\xff\x37\x9e\xf6\xfe\xd7\x93\x52\x4a\x73\x53\xec\x50\x1d\x65\x20\x53\x6c\x24\x32\x14\x18\x5e\xf9\x4e\xb6\xd6\xf0\x22\xf1\xf7\x8c\x12\x7f\xc9\x70\x22\xc3\x89\x0c\x27\x32\x9c\xd8\x33\x96\xbd\x45\x56\xe6\x08\x0c\xb3\xff\x22\xc5\xa1\x26\xc5\x61\x1c\xdb\xb0\xcc\x9d\xdd\x79\x62\x83\x06\xe0\xbb\xe6\x57\xd3\xcd\x54\x7c\xea\x29\xb3\x19\x72\x46\x89\xfa\xb7\x8e\x51\xba\x8f\x3f\x49\x67\x3d\x17\xe2\x7d\xfc\x7f\xfa\xf7\x47\xe9\x6a\x1f\x5f\x24\x1c\x6f\x13\xad\x55\xb8\x5d\x6a\x4c\x30\xa3\xf0\xdc\xaf\x4a\xcc\xb2\x9a\x9b\xb3\xd8\xa2\x4c\xad\xa0\xb9\xb8\xf3\xa4\xef\x27\x31\x06\xda\x4e\x91\x9e\x31\x8d\x6e\x7e\x68\x33\x77\xeb\x7b\x1c\xc8\x82\xc8\x1a\x2d\x33\xc0\xef\xd3\xe6\x8b\x9f\x54\xbc\x37\x2d\x16\xaf\x1a\xab\x28\x6d\x9d\x24\x8c\x67\x13\xa9\x50\xc7\xdf\x6c\x6d\xe9\xa7\x13\x37\x54\x7c\x33\xd3\x85\xc7\x76\x2f\x6d\xf8\xe6\x8a\x96\x85\x78\x86\x1d\xd7\x9a\xd0\x02\xe7\x6a\x2e\x93\x78\x4c\x2a\x6e\xc1\xbc\xc2\x2b\xb9\xfe\x52\x4c\x6e\xf5\xff\x3b\xdf\x54\x20\xc6\x13\x17\xa6\x18\x2f\xa1\xd6\xe1\x1f\xad\xd4\xda\xaf\xf4\xb9\x7f\xaf\x9e\xba\x1e\x55\xb8\x54\x8d\x8e\x8c\xd6\xa1\x5c\xab\xa5\xeb\x5c\x35\x3f\x27\xfe\xfc\x94\x1c\xa9\x27\xc9\x26\x46\x87\x8e\x17\xd4\xe9\x48\x26\x54\xa9\xa5\x01\xa2\x7f\xd5\x02\x67\xee\xa9\xb8\x7a\x85\xf1\x7e\xb7\x1b\x33\x24\x70\xf1\x4e\xdc\xc5\x7b\x3e\x6c\x7d\x2f\xb4\x3f\x7d\xb9\x4c\xfa\xc9\xca\x44\xe3\x26\x29\xcd\x2f\x4a\x66\xa2\x97\xda\xc1\x65\x72\x4e\xa5\xa7\xcf\xf4\x03\xff\xca\x9c\xad\x8f\xd0\x3e\xe6\x48\xbc\xf8\x29\x0a\xfc\x3b\x93\xd9\xfb\x4b\x3c\xe7\x25\x9f\x3f\xa5\x33\xe1\xf6\x8f\x2f\x6d\x82\xfe\xcd\xc7\xcd\x87\x20\x74\xb4\x13\x7e\x19\xe8\xce\x0f\xc4\xe7\xcb\x87\xf8\x6f\x9f\x2f\xc5\xed\x4e\x6b\xce\xc5\xc7\x75\xe2\x31\xd7\x1b\x81\xe4\x45\xbd\x92\x8e\xee\x00\x9d\x1b\xea\xb9\x4e\xe2\x03\xd4\xfb\x86\xe0\x7b\xd2\xb7\x26\x77\x72\xa5\x82\x95\xa7\xe6\xc2\xfc\xa6\x4e\x09\x4f\xc7\x94\x0e\xd7\x2e\xec\x88\xec\xe7\xdb\x34\x6f\xfc\x43\x6c\x1f\xcc\x17\x6c\x1f\x6c\xd8\x3e\xac\xf6\x42\x81\x47\xb1\x81\xd8\x74\xee\x54\x5a\x79\xd2\x69\x6b\xd6\x25\x67\x4f\xd8\xb0\x23\x60\x12\xa3\xee\xbc\x8c\x3a\x8b\x6c\x27\x96\xf8\xec\x1b\x02\x26\xcf\xcb\x36\xd9\x8c\xc4\xb5\x79\x21\x9a\x45\x1d\xea\xcc\xa9\xaa\xf2\x6c\x9d\xe3\xb2\x24\xaf\xdc\x5f\xb8\xdf\xdc\xc5\x46\x7a\xf9\x94\x3d\x99\x29\x49\xec\x3c\xfa\x3c\x17\x70\xf3\x26\x0b\xd5\x99\xe9\x2b\xcd\xb6\xba\x42\x3b\x42\x31\x99\x45\x24\x5c\x3f\x5a\x2b\xb9\xe3\xb1\xdc\xb7\x97\xbe\x57\xba\xc1\x7e\xde\xcb\x4f\x22\x91\xce\xd6\x78\x02\x9d\x07\xfa\xfe\x9b\xf2\xcf\x38\x9b\x4e\x77\xe1\x79\xa4\xd4\x21\xd6\x37\x61\xb1\xbe\x7a\xa6\x54\x27\xd4\xd7\xbe\x04\x77\x33\x5e\x86\x3c\x1f\xf2\x7c\xc8\xf3\x21\xcf\x37\x35\x79\xbe\xfa\x99\xb7\x50\x9a\xef\xc4\xd1\x09\xbd\x09\xf2\xd5\x3f\x7e\xb9\x18\x9f\xcd\x6d\x70\x8c\x04\x5f\x7d\x1b\x94\xcb\xef\x9d\xb8\x0d\x10\xdd\x43\x74\x0f\xd1\x3d\x44\xf7\x10\xdd\x3b\x99\xe8\x5e\x83\xd9\xff\x40\x70\xaf\x32\x77\xef\x8c\x82\x13\x9b\x3d\x0d\xa2\x81\x23\x13\x0d\xac\x1f\x44\x55\x82\x81\x27\x1e\x4d\x83\xca\x04\xd6\xb7\x4c\x85\x44\xe0\xa9\x67\x0d\x5b\x85\x01\xeb\x1b\xad\xc0\x8f\xdf\xda\x9d\x95\x7c\xfa\xeb\x59\x50\xa8\x40\x90\xe2\x44\x6c\x28\x0f\x84\xfc\x74\xb9\x2b\x2c\x14\xd3\x09\x18\x7a\xb5\x35\x71\xb5\x19\x9f\x98\x43\xb1\x95\xbc\xb5\xdd\x67\x3b\x7b\xbe\xdc\xb5\xdb\x63\x25\x90\x12\x48\x69\x44\x48\x09\x9c\x04\x4e\x02\x27\x81\x93\xc0\x49\xe0\x24\x70\x12\x38\x09\x9c\x04\x4e\x02\x27\x81\x93\xc0\x49\xe0\x24\x70\x12\x38\x69\x5c\x38\x09\xf9\x0e\x08\x19\x84\x0c\x42\x06\x21\x83\x90\x1d\x4f\xc8\xee\xd5\x5a\xde\x5c\xb7\x42\x61\x83\xa4\x43\xee\xf5\xf9\x52\xad\x77\x4d\x57\xd3\xbd\x15\x24\x6b\xa9\xd6\x79\x8e\xa5\x9f\xff\xf6\xee\xe3\xef\x45\xa7\x92\x08\x7a\x24\x62\xca\x35\xe4\xe4\x0a\x81\xe9\x91\x92\x3b\xf7\x22\xff\xfb\x4d\x5f\xb4\x8a\xf4\xc4\x13\xd6\x44\xc8\x29\x46\xef\x27\x24\x56\xbc\x29\x87\xf5\x11\xf4\x33\xbc\xcd\x2e\xd6\xb5\xc6\x27\xd4\x6a\xc2\xd4\xaa\x59\x9e\x7f\x1d\xb9\x3a\xa1\x76\xea\xa4\x6b\x77\x40\xe4\x20\x72\x10\x39\x88\xdc\xd4\x88\x5c\xb3\x55\xa5\x90\xca\xf5\x26\xec\x83\xfe\x52\xe3\x8e\x1a\x52\x7f\xa9\x37\x8c\x7a\x84\xe2\x51\x21\x46\xa4\x92\x14\x95\xa4\x2c\x1b\xfe\xc7\x10\xf4\x66\xed\x52\x4e\xd1\x7b\x1b\xfe\xf0\x74\x78\x3a\x3c\x1d\x9e\x0e\x4f\x3f\x19\x4f\x6f\xb8\x16\x1c\x30\x75\x0a\x2c\x52\x60\x91\x02\x8b\x14\x58\x1c\x45\x81\xc5\x23\x3d\x05\x44\x8a\x8c\x27\x52\xa4\xd9\xe8\xaa\x8a\x16\xe9\x6f\x33\x3f\x64\xdc\x48\xb3\x76\xaa\x88\x1d\xe9\x6f\xc1\xb7\x35\x8a\xa4\x59\x13\x1e\x46\x92\x50\x04\xc3\x86\xc0\x88\x09\xd6\x57\xdd\x8f\x87\xc8\x9d\x5b\x59\x64\x75\x6b\x5d\x59\x98\x87\xbb\xf7\x50\x3d\xd4\x5c\x35\xce\xb5\x30\x59\xe5\xd3\x5d\x40\xa1\x46\x40\x45\xac\x46\x7c\x95\x83\x48\x0d\xe2\x33\x88\xcf\x98\x4e\x7c\x06\x11\x0d\x44\x34\x10\xd1\x40\x44\x03\x11\x0d\x83\x47\x34\x80\xca\xa1\xa7\xd0\x53\xe8\x29\xf4\x14\x7a\x0a\x3d\x85\x9e\x96\x2e\x02\x00\x0d\x80\x06\x40\x03\xa0\x01\xd0\x40\xb5\xb4\x8a\x9c\xec\x96\xe8\xd4\xce\xeb\xf9\x61\xe1\xc2\xf3\xa6\x27\x96\x16\xc2\xab\x25\x26\x2d\xe4\x4b\xc7\xa2\xff\x71\xb1\xd7\x79\x97\xab\x20\xea\x18\x0f\x19\xeb\x5d\xc8\xc6\x24\xc8\x9c\xd0\x3d\x0b\xb2\xb9\x68\x7a\xc1\x84\x41\xe5\xf4\xf3\xc9\xdc\xa1\x72\x3a\x95\xd3\x0b\x6e\x66\x3c\xd6\xcd\x88\xca\xa7\x3f\xeb\xee\x5f\xd7\xde\xbd\x89\x4d\xb5\xf2\xf6\x27\x6a\x56\x6a\x93\x65\x3c\x66\xe5\x85\x68\xaf\xb6\x52\x50\xf7\xe3\x84\xa2\x2b\xcd\x4d\xb6\x12\xa1\x95\x81\x4c\xb6\x91\x28\x5a\x60\x9b\xe5\x3b\xd9\x5a\xdb\x8c\x1c\xe2\x33\xca\x21\x26\x59\x8a\x64\x29\x92\xa5\x48\x96\x62\x5b\x59\xf6\x16\x59\x99\x6e\x30\xcc\xc6\x8c\x6c\x89\xe4\xb8\xca\x6c\x89\x11\x6d\xcd\x32\x2f\x78\xe7\x39\x12\x1a\xa3\xef\x1a\x62\x4d\xf7\x56\xf1\xa9\x27\x4f\x8c\xc8\xd9\x28\xea\xdf\x3a\xdc\xe9\x3e\xfe\x24\x9d\xf5\x5c\x88\xf7\xf1\xff\xe9\xdf\x1f\xa5\xab\xbd\x82\x91\x70\xbc\x4d\xb4\x56\xe1\x76\xe5\x31\x71\x91\xc2\x73\xbf\x2a\x31\xfb\x55\x3e\xaa\x68\x25\x1d\x35\x8b\x0d\xcc\xd4\x28\x9a\x8b\x3b\x4f\xfa\x7e\x12\xae\xa0\xcd\x16\xe9\x19\x4b\xe9\xe6\x87\x36\x53\xb9\xbe\xc7\x81\x0c\x8a\xac\xd1\x32\x7b\xfc\x3e\x6d\xbe\xf8\x49\xc5\x7b\xd3\x62\xf1\x22\xb2\x8a\xd2\xd6\x49\x22\x82\x36\x91\x0a\x75\x28\xcf\xd6\xb4\x7e\x3a\x71\x43\xc5\x37\x33\x5d\x0e\x6d\xf7\x4a\x87\x0f\x2f\x39\xae\x64\xa9\x88\x27\xdc\x11\xae\x13\x2d\xc8\x30\xc5\x2e\x0e\x1f\x73\x30\xd8\xad\x03\x4b\x5a\x49\xc5\x5f\xe9\x73\xff\x5e\x3d\x93\x3d\xaa\x70\xa9\x1a\x1d\x19\xad\x43\xb9\x56\x4b\xd7\xb9\x6a\x7e\x4e\xfc\xf9\x29\x39\x52\xcf\x99\x4d\x0c\x11\x1d\x89\xa8\x13\x9d\x4c\x10\x54\x4b\xa3\x64\xb5\x5f\x4d\x79\x8a\x88\xbe\xc2\xbe\xbf\xdb\x0d\x49\x12\x78\x81\x27\xee\x05\x3e\x1f\x42\xbf\x97\x39\x90\xbe\x5c\x26\xbb\x65\x65\x82\x7d\x93\x8c\xe9\x17\x25\xd3\xd1\x4b\xed\x03\x33\x29\xad\xd2\xd3\x67\xfa\x81\x7f\x65\xce\xd6\x47\x68\x37\x74\x24\x5e\xfc\x14\x05\xfe\x9d\x49\x1c\xfe\x25\x9e\xf8\x92\xcf\x9f\xd2\xe9\x70\xfb\xc7\x97\x36\x85\x0e\x34\x1f\x37\x1f\x82\xd0\xd1\x7e\xfa\x65\xa0\x3b\x3f\x10\x9f\x2f\x1f\xe2\xbf\x7d\xbe\x14\xb7\x3b\xad\x39\x17\x1f\xd7\x89\x53\x5d\x6f\x0e\x92\x17\xf5\x4a\x3a\xba\x03\x74\xea\xa9\xe7\x3a\x89\x9b\x50\xef\x25\x82\xef\x49\xdf\x9a\xd4\xcc\x95\x0a\x56\x9e\x9a\x0b\xf3\x9b\x3a\xe3\x3c\x1d\x53\x3a\x1a\xbc\xb0\x23\xb2\x9f\x6f\xd3\xbc\xf1\x0f\xb1\xa5\x30\x5f\xb0\xa5\xd8\x7d\xa8\xa1\xb7\x14\x2b\x4b\x0b\xe5\xd7\x6f\x2a\x36\x9d\x3b\x9f\x56\x9e\x74\xda\x9a\x7a\xc9\xd9\x53\x37\xf6\x88\xc7\xc4\xda\x3b\x43\x6b\xcf\x22\xa3\x8a\xb5\x3f\xfb\x86\x78\xcc\x46\x77\x3f\x55\xcb\x65\x33\x26\x67\xe8\x85\x38\x22\x9e\x51\xa7\x72\x55\xd5\x90\xeb\x9c\xbc\x25\x89\xee\xfe\xc2\xfd\xe6\x2e\x36\xd2\xcb\xe7\x10\xca\x4c\xda\x62\xa7\x11\xe6\xb9\x28\x9e\x37\x59\xfc\xcf\x4c\x5f\x69\xb6\x15\x3a\xda\x51\xae\xc9\x8c\x26\xe1\xfa\xd1\x5a\xc9\x1d\x47\xe7\xbe\x49\xf5\xbd\xde\x7b\xf6\xf3\x5e\xae\x14\xe9\x7d\xb6\x46\x2a\xe8\xec\xd4\xf7\xdf\x94\x7f\xee\xe9\x7d\xba\x1f\xcf\x28\xc7\x0f\x31\xc1\x09\x8b\x09\xd6\x93\xa9\x3a\x21\xc1\xf6\x05\x90\x9b\x51\x37\xe4\x03\x91\x0f\x44\x3e\x10\xf9\xc0\xa9\xc9\x07\xd6\xcf\xbc\x85\xd2\x81\x27\x8e\x71\xe8\x4d\x30\xb0\xfe\xf1\xcb\xc5\x02\x6d\x6e\x83\x63\x24\x02\xeb\xdb\xa0\x5c\x1e\xf0\xc4\x6d\x80\x28\x20\xa2\x80\x88\x02\x22\x0a\x88\x28\xe0\xc9\x44\x01\x1b\xcc\xfe\x07\x82\x80\x95\xf9\x81\x67\x14\xe2\xd8\xec\x69\x10\x35\x1c\x99\xa8\x61\xfd\x20\xaa\x12\x34\x3c\xf1\x68\x1a\x54\xc6\xb0\xbe\x65\x2a\x24\x0c\x4f\x3d\x6b\xd8\x2a\x5c\x58\xdf\x68\x05\x1e\xfd\xd6\xee\xac\xe4\xd3\x5f\xcf\x07\x45\x05\xf2\x17\x27\xe2\x45\x79\x48\xe4\xa7\x6b\x5e\x61\x49\x9b\x4e\x60\xd1\xab\xad\x9d\xab\x6d\xf9\xc4\x26\x8a\x4d\xe5\xad\x01\x3f\xdb\xd9\xf8\xe5\xae\xfd\x4c\xd4\x04\x66\x02\x33\x8d\x0d\x33\x81\x98\x40\x4c\x20\x26\x10\x13\x88\x09\xc4\x04\x62\x02\x31\x81\x98\x40\x4c\x20\x26\x10\x13\x88\x09\xc4\x04\x62\x02\x31\x8d\x10\x31\x21\x0c\x02\x35\x83\x9a\x41\xcd\xa0\x66\x50\xb3\x1a\x6a\x66\x5e\xd0\x14\x99\xb5\xc2\x61\x83\xe4\x4f\xee\x75\xf4\x52\x4b\xdc\x3e\x04\xe1\x63\x36\xb0\xa5\x30\xee\xf9\x72\xa0\xb5\x54\xeb\x4f\xe6\xf9\x6f\xef\x3e\xfe\x6b\xff\x60\xd2\x45\x8f\xc4\x4a\x59\x23\x8e\x1d\x2a\x99\x31\x91\x3b\xe1\x22\xff\xa3\x95\x2f\xd0\xb7\x9b\x71\xbf\x43\x3b\x7b\x3e\x33\x2f\x36\x7a\x81\xfe\xbc\xb9\xbd\xfb\xf8\x7b\xd1\x29\xbc\x46\xc7\xbf\x46\x69\x43\x4e\xa2\xd0\x9f\x19\x20\xff\xf7\xed\xa6\xed\x0b\xe5\x44\xee\x22\x74\xbf\x19\xd8\xd9\x47\xb1\x92\x9c\x8a\x7b\xf0\x20\xde\x7e\xfa\xf8\x4e\xff\x7c\xc5\x8b\x90\x14\x2d\x49\xdf\x85\xb7\xd9\x05\x0a\x4f\x6e\x29\xac\x0b\xc1\x9d\x30\xc1\x6d\xa6\x97\x51\x47\x71\x4f\x28\x58\x3c\xe9\xfa\x39\xd0\x69\xe8\x34\x74\x1a\x3a\x3d\x35\x3a\xdd\x6c\x55\x29\x24\xd4\xbd\x09\x64\xa1\x63\xd6\xb8\xa3\x86\xd4\x31\xeb\x2d\xa4\xe0\x08\xe5\xb0\x42\xa4\x4e\x35\x37\xaa\xb9\x59\x36\xfc\x8f\x89\x26\x69\xd6\x2e\xe5\x11\x25\xbd\x0d\x7f\x62\x4b\x88\x2d\x21\xb6\x84\xd8\x12\x62\x4b\x4e\x16\x5b\xd2\x70\x2d\x38\x88\x2f\xa1\xc8\x29\x45\x4e\x29\x72\x4a\x91\xd3\x51\x14\x39\x3d\xd2\x53\x40\xd4\xd4\x78\xa2\xa6\x9a\x8d\xae\xaa\xc8\xa9\xfe\x36\xf3\x43\xc6\x50\x35\x6b\xa7\x8a\x38\xaa\xfe\x16\x7c\x5b\x23\xaa\x9a\x35\xe1\x61\x54\x15\x55\x66\x6c\x88\x79\x98\x48\x8d\xe3\xa2\x50\x87\xdc\x39\x95\xb5\x8d\xb7\x56\x55\x27\x09\xe9\x3b\x51\x14\xc5\xd9\xe8\x45\xb1\x09\xfb\x99\xe8\xbd\x56\x36\x36\x8e\xb4\x30\x59\xd1\x53\x8b\x3f\x95\xca\x68\x12\x87\x11\x5f\x61\x1b\x85\x41\xec\x05\xb1\x17\x93\x88\xbd\x20\x5a\x81\x68\x05\xa2\x15\x88\x56\x20\x5a\x61\xf0\x68\x05\x30\x38\x64\x14\x32\x0a\x19\x85\x8c\x42\x46\x21\xa3\x90\xd1\xd2\x45\x00\x58\x01\xac\x00\x56\x00\x2b\x80\x15\xe8\xf4\x56\x51\x91\x79\xea\xaa\xff\x76\x33\xcf\x3c\xd6\x93\x4d\xfc\xac\xa7\x21\x9d\x55\x7d\xec\x81\x80\xb4\x90\xe1\x1d\x8b\x8e\xcd\xc5\x5e\x87\x5d\xae\x82\xa8\x63\xdc\x63\xac\x73\x21\x1b\x91\x1d\x73\x70\x37\x6c\xa7\x5d\x2a\x63\x85\xf6\x51\xf7\x13\x40\x27\x59\x8d\x64\xd6\xe4\xfb\xdb\xda\xcc\x9a\x7c\x11\x7c\xe3\x35\xd2\xfa\x5d\x32\x8a\x02\xc7\xd5\xdb\xa0\xcc\x3f\x23\xb5\x9b\x2d\x08\x45\xbc\x4b\x5e\x3f\x65\xfb\xc2\x47\xf9\x35\x6e\xc5\xf5\x17\x15\xa9\xd4\xd6\xc9\xe7\x8f\xa4\x79\x26\xda\xd6\xd3\xbe\x98\x20\x14\x37\xaf\x7f\xc8\x55\xfd\xd7\x0e\x66\x63\xd9\x68\x7f\x49\xbc\xb1\x95\xae\x6f\xe6\x22\xed\x8f\xd8\x1e\xab\x1d\xd2\x09\x1a\x12\xf7\x4f\x42\xaf\x0c\x6f\xae\xaf\x97\x81\x27\xfd\xe5\x3c\x08\x97\xd7\xab\xaf\xcb\xeb\x8d\xef\x3a\xc1\x42\x5d\xff\xed\x63\x74\x17\x5f\xa5\xb5\x83\x33\x69\x9c\x2e\xbb\xc7\x2a\x53\x68\x84\x16\x4a\x53\xeb\xe4\x75\x03\xeb\xe4\xad\x71\xd3\x58\x73\xc7\xaf\x6b\xef\xd8\xc4\x88\x5a\x73\xcb\x13\x33\x01\xb5\xa9\x61\xb7\x09\x78\x21\x8e\x12\x2e\x29\xa8\x36\x73\x42\xfd\x92\x66\x16\xd5\xbe\x66\x49\xff\x16\xd5\x48\xc4\x21\x30\xa3\xf2\x9d\x6c\xad\x19\x45\x3a\xee\x19\xa5\xe3\x92\x77\x44\xde\x11\x79\x47\xe4\x1d\xb1\x03\x2c\x7b\x8b\x2c\xda\x01\xb2\x9f\xb2\x21\xc1\xc0\xf2\x1d\x55\xe6\x68\xee\x3c\xad\x40\x93\xe8\x5d\xe3\xaa\xc9\xfe\x28\x3e\xed\x24\xb9\x04\x39\x3b\x43\xfd\x5b\x47\x08\xdd\xc7\x9f\xa4\xb3\x9e\x0b\xf1\x3e\xfe\x3f\xfd\xfb\xa3\x74\xb5\x13\x2e\x12\x8e\xb7\x89\xd6\x2a\xdc\xae\x1e\x26\x94\x50\x78\xee\x57\x25\x66\xbf\xca\x47\x15\xad\xa4\xa3\x66\xb1\x91\x98\x1a\x36\x73\x71\xe7\x49\xdf\x4f\x08\xbf\x36\x3d\xa4\x67\xac\x9d\x9b\x1f\xda\x4c\xc7\xfa\x1e\x07\x32\x0a\xb2\x46\xcb\x6c\xea\xfb\xb4\xf9\xe2\x27\x15\xef\x4d\x8b\xc5\x0b\xc1\x2a\x4a\x5b\x27\x09\xa2\xd9\x44\x2a\xd4\xd1\x2f\x5b\xf3\xf8\xe9\xc4\x0d\x15\xdf\xcc\x74\xd1\xed\x84\x57\xab\x89\x4d\xfd\xf1\x64\x3a\x92\x79\xbf\x05\x4c\xcd\xd7\x39\x29\xf9\x79\x6a\x9c\xf4\xc1\x86\x75\x9c\x45\x2b\xa1\xf3\x2b\x7d\xee\xdf\xab\x67\xa9\x47\x15\x2e\x55\xa3\x23\xa3\x75\x28\xd7\x6a\xe9\x3a\x57\xcd\xcf\x89\x3f\x3f\x25\x47\xea\xf9\xb0\x89\x51\xa1\x03\xf3\x74\xde\x8f\x89\x09\x6a\x61\x60\xe8\x5f\x9c\x22\xd1\xae\xf0\xce\xde\xed\x46\xe4\x08\xbc\xb2\x13\xf7\xca\x9e\x0f\xdc\xde\x0b\x9c\x4f\x5f\x2e\x93\xdc\xb1\x32\xb1\xae\x49\xc2\xf0\x8b\x92\xe9\xe7\xa5\xf6\x49\x99\x8c\x4e\xe9\xe9\x33\xfd\xc0\xbf\x32\x67\xeb\x23\xb4\x5b\x38\x12\x2f\x7e\x8a\x02\xff\xce\xe4\xcd\xfe\x12\x4f\x74\xc9\xe7\x4f\xe9\xf4\xb7\xfd\xe3\x4b\x9b\xa8\x7b\xf3\x71\xf3\x21\x08\x1d\xed\x37\x5f\x06\xba\xf3\x03\xf1\xf9\xf2\x21\xfe\xdb\xe7\x4b\x71\xbb\xd3\x9a\x73\xf1\x71\x9d\x38\xb9\xb5\xa1\x9f\xbc\xa8\x57\xd2\xd1\x1d\xa0\x33\x2f\x3d\xd7\x49\xdc\x76\x7a\x5f\x10\x7c\x4f\xfa\xd6\x64\x26\xae\x54\xb0\xf2\xd4\x5c\x98\xdf\xd4\x09\xd7\xe9\x98\xd2\xc1\xd0\x85\x1d\x91\xfd\x7c\x9b\xe6\x8d\x7f\x88\xed\x81\xf9\x82\xed\xc1\x80\xa4\x7d\x2f\xbc\xd6\xee\x0d\xc2\xa6\x73\xc7\xd0\xca\x93\x4e\x1b\xd3\x2d\x39\x73\x8a\xc6\x1b\xe1\x88\x58\x6c\x67\x62\xb1\x59\x64\x18\xb1\x7e\x67\xdf\x10\x8e\x38\x69\x8b\x63\x63\xbb\x43\xf2\x42\x34\x0b\xed\xf3\x83\x85\x1a\xac\x22\xd9\xaf\xc1\x42\x1d\x11\xdb\x97\xaf\x47\xb6\x7f\x2a\x8a\x58\x28\x62\x8d\x4e\x11\x6b\xd2\x01\xa7\xe8\x7b\xa1\xef\x85\xbe\x17\xfa\x5e\xe8\x7b\x15\x2d\x25\x54\x23\xc3\x49\x81\x0c\x1b\xe9\x0f\xe7\x9c\xfe\x80\xe6\x1e\x9a\x7b\x68\xee\xa1\xb9\x87\xe6\x1e\x9a\x7b\x68\xee\x91\x15\x48\x56\x20\x59\x81\x64\x05\xee\x8f\x48\xaa\x91\x21\xf0\x79\xf4\xe8\x42\xe0\x13\x81\x4f\x04\x3e\xa7\x1f\x46\x42\x35\x32\xeb\xaa\x91\xed\x45\x26\xd8\x5d\x8b\xac\x26\x02\x63\xbf\x12\x19\x51\x17\x44\x5d\x8c\x3e\xea\x82\x38\x05\xe2\x14\x88\x53\x20\x4e\x81\x38\x85\xc1\xe3\x14\x00\xe0\x30\x51\x98\x28\x4c\x14\x26\x0a\x13\x85\x89\xc2\x44\x4b\x17\x01\x30\x05\x98\x02\x4c\x01\xa6\x00\x53\x50\x87\xec\x88\x24\xd5\x5f\x83\x85\xa2\x0a\x59\xf1\x61\x56\x91\x0f\x6a\x90\x75\x55\x83\xac\x86\xe8\x1c\x56\x20\x6b\xcb\x74\xac\x16\xfc\xd0\x0f\xd5\xec\xa5\x27\x93\x66\x02\x99\x34\xc8\x7d\x20\xf7\x51\x70\x33\x36\xdb\x25\x63\x12\xfb\x38\xee\x7e\x2d\x50\xca\x3f\xe6\x86\x27\x66\xf4\xf5\x5c\x77\xec\x78\xa3\xef\x42\x1c\x21\x4d\x32\x40\xcd\xb1\x23\x55\x49\xfa\xb6\xa0\x46\x22\xff\x80\xe1\x94\xef\x64\x6b\x0d\x27\x12\x6e\xcf\x28\xe1\x96\xcc\x22\x32\x8b\xc8\x2c\x22\xb3\x88\x3d\x5f\xd9\x5b\x64\xcd\x9e\x8f\x3d\xd4\xf0\xe9\x03\x56\xef\xa2\x32\x77\x72\x4f\x95\xc6\x6a\x76\x45\xfb\x75\xc6\x3a\xca\x14\xa0\xca\x58\xd6\xf1\xcd\x4d\x01\xaa\x8c\x25\xff\x58\xa3\x98\xf2\x0f\xce\xb1\xa2\xc6\x58\xbf\xa8\x74\xaf\xc2\xd8\xe1\x8f\x53\x5f\x8c\xfa\x62\xc3\xd4\x17\xab\x31\x2b\x0e\xaa\x8b\x4d\x83\x56\x53\x5b\x0c\x0f\xec\xf9\xa1\x6b\x6a\x8b\x75\x39\x6e\xa8\x2d\xc6\xa6\x80\x4d\x41\x41\x3b\x8e\xb8\xb2\xd8\x73\xb6\x05\xbd\xd5\x15\xab\xf5\x04\x1d\x54\x15\x9b\x86\xd1\x46\x88\x21\x76\xda\x59\xd8\x69\x16\x99\x43\xac\xda\xd9\x37\x84\x18\x66\x97\x9e\x9a\x95\xd1\x6b\x35\xb1\x13\x05\xec\x25\x7f\x71\x3c\x19\x45\x03\x55\x14\x4b\x4c\x8e\xb7\xf1\x2d\x1c\x11\xc0\x97\x5d\xa3\xec\x7c\x54\xae\x50\xb9\x1a\x9d\xca\xd5\xa4\x83\x4b\xd1\xec\x42\xb3\x0b\xcd\x2e\x34\xbb\xd0\xec\x2a\x5a\x4a\xa8\x2d\x86\xbb\x02\x69\x35\x52\x1d\xce\x39\xd5\x01\x1d\x3d\x74\xf4\xd0\xd1\x43\x47\x0f\x1d\x3d\x74\xf4\xd0\xd1\x23\x03\x90\x0c\x40\x32\x00\xc9\x00\xdc\x1f\x91\xd4\x16\x43\xb4\xf3\xe8\xd1\x85\x68\x27\xa2\x9d\x88\x76\x4e\x3f\xa0\x84\xda\x62\x76\xd5\x16\x2b\x09\x4f\xb0\xb8\xc0\x58\xc3\x80\x8c\x9d\x2a\x63\x04\x61\x10\x84\x31\x99\x20\x0c\xc2\x16\x08\x5b\x20\x6c\x81\xb0\x05\xc2\x16\x06\x0f\x5b\x80\x87\x83\x48\x41\xa4\x20\x52\x10\x29\x88\x14\x44\x0a\x22\x2d\x5d\x04\xa0\x16\x50\x0b\xa8\x05\xd4\x02\x6a\x41\xa9\xb1\xa6\xf9\xab\x79\xa7\x35\xf5\xc6\x8a\x0f\xb3\x8f\x86\x50\x74\xac\x93\xa2\x63\x0d\x29\xcf\x5e\xe5\xb1\xe7\x72\x1e\x7b\xb5\x41\x76\x9e\xac\xd9\x44\x40\xc6\xcd\x04\x32\x6e\x10\x08\x41\x20\xa4\xe0\x66\xac\x37\x58\x46\xa3\x12\xd2\xee\xa6\x87\x56\xd2\x6f\x73\xd7\x13\xb3\x0b\xfb\x2c\x49\xd6\xde\x2e\xbc\x10\x47\xcb\x9c\xf4\x5d\x9d\xac\x9d\xc2\xc9\x30\xa6\xd6\x48\xa4\x24\x30\xae\xf2\x9d\x6c\xad\x71\x45\xf2\xee\x19\x25\xef\x92\xa5\x44\x96\x12\x59\x4a\x64\x29\xb1\x2f\x2c\x7b\x8b\xec\xda\x17\xb2\xc5\x1a\x7c\x8b\xd5\x6f\xc5\x32\x1b\x53\x11\x0a\xca\x96\x35\xdc\x2e\xed\xd4\x2e\xeb\x38\xff\x80\x02\x66\xd9\x10\x68\x6e\x23\x50\xc0\x2c\xf9\xc7\xe2\xc5\x32\x60\x6b\x15\xb3\x61\x00\x6c\xbe\x94\x59\xf9\x1d\x50\xcf\x8c\x7a\x66\x03\xd4\x33\x6b\x68\x6f\xec\x16\x35\x9b\x16\x08\xa7\xb2\x19\x3e\xdb\xf3\x03\xe2\x54\x36\xeb\x72\xdc\x50\xd9\x8c\xdd\x02\xbb\x85\xa9\x95\x37\xeb\x62\xbf\xd0\x4f\x8d\xb3\xc6\x6e\xa3\xdd\x42\x67\xd3\x32\xe4\x88\x68\xc4\x80\x3b\x1f\x03\xce\x22\x3b\x89\xe5\x3c\xfb\x86\x88\xc6\x82\x9b\x9e\x9a\x0d\xd2\x5f\xf1\xb3\x13\x87\x06\x7e\x0b\xbc\xcd\xa3\x92\xeb\xb5\x74\xbe\x3c\xea\x08\x8b\x21\x8a\xa0\xfd\xa9\xef\xe2\x36\xbb\x8b\xe6\x61\x82\xdb\x42\x68\x55\xd7\x40\x87\x0b\x1d\xae\xd1\xe9\x70\x4d\x3a\x82\x15\x55\x31\x54\xc5\x50\x15\x43\x55\x0c\x55\xb1\xa2\xa5\x84\x62\x68\x38\x32\x10\x7f\x23\x9f\xe2\x9c\xf3\x29\x50\xfa\x43\xe9\x0f\xa5\x3f\x94\xfe\x50\xfa\x43\xe9\x0f\xa5\x3f\xd2\x0c\x49\x33\x24\xcd\x90\x34\xc3\xfd\x11\x49\x31\x34\x64\x45\x8f\x1e\x5d\xc8\x8a\x22\x2b\x8a\xac\xe8\xf4\x43\x4d\x28\x86\x66\x57\x31\xb4\x8a\x10\x05\x8b\x0b\xa2\x1d\x11\x9c\xb1\x53\x14\x8d\x80\x0c\x02\x32\x26\x15\x90\x41\x08\x03\x21\x0c\x84\x30\x10\xc2\x40\x08\xc3\xe0\x21\x0c\xb0\x71\x70\x29\xb8\x14\x5c\x0a\x2e\x05\x97\x82\x4b\xc1\xa5\xa5\x8b\x00\x04\x03\x82\x01\xc1\x80\x60\x40\x30\x28\x8c\xd6\x34\xc1\x75\xdf\x71\x4d\x71\xb4\xe2\xc3\xec\xa4\x23\x14\x48\xeb\xa4\x40\xda\x11\xd4\x67\xaf\x48\x5a\x17\xdc\xc7\x5e\x59\x91\x83\xa7\x6b\x36\x31\x90\x91\x33\x81\x8c\x1c\xa4\x45\x90\x16\x29\xb8\x99\x51\x18\x31\xa3\x91\x17\x69\x7f\xe3\x43\x2b\xfa\xb7\xbd\xf3\x89\xd9\x8c\x7d\x16\x4e\x7b\x9e\xcd\x78\x21\xda\x28\xa4\xf4\x5d\x3f\xad\xbd\x38\xca\x70\x96\xd8\x48\x54\x28\xb0\xbb\xf2\x9d\x6c\xad\xdd\x45\xde\xef\x19\xe5\xfd\x92\xe0\x44\x82\x13\x09\x4e\x24\x38\xb1\x65\x2c\x7b\x8b\xec\xdb\x32\xb2\xf3\xda\x79\x9e\xf3\xa8\xa7\x66\x6b\x36\x43\x41\x4d\xb5\x23\xb6\x50\x3b\x75\xd5\x4e\x90\xc2\x40\x6d\xb5\x6c\x28\x34\xb7\x1b\xa8\xad\x96\xfc\x63\x41\x63\x59\xb0\xb9\xbe\xda\x70\x0c\x37\x5f\x63\xad\xfa\x2e\xa8\xb3\x46\x9d\xb5\x01\xea\xac\x1d\x61\x83\xec\xd6\x5a\x9b\x1e\x4f\xa7\xde\x1a\xbe\xdd\xf3\x63\xea\xd4\x5b\xeb\x72\xdc\x50\x6f\x8d\x1d\x04\x3b\x88\x29\xd6\x5c\xeb\x6a\x0f\xd1\x4f\xdd\xb5\xa3\x5c\x4b\xbb\xb5\xd7\xa6\x67\xd8\x11\x28\x89\x51\x77\x5e\x46\x9d\x45\xb6\x13\x4b\x7c\xf6\x0d\x81\x92\x67\x64\x9b\xf4\x57\x8b\x6d\xc0\x68\xc3\xeb\xc8\x08\xb6\xe5\x82\x0e\x4f\x03\xce\xcc\xef\xa4\xab\x57\xf7\x08\x2d\x11\x9e\x63\x8a\xe2\x4d\x87\x63\x14\xf4\x07\x1c\x03\x8e\x51\x78\xe4\x70\x1c\xa3\x83\x25\xa1\x9a\x68\x14\xac\x09\xa3\xdc\xfe\xc2\x35\xd8\x02\x9f\xdf\x16\x18\xae\xd1\xe5\xb8\x81\x6b\xe0\xf4\x60\x47\x01\xd7\xd8\x6b\xb4\x1e\xb8\x46\x27\x3b\xff\x6a\xc2\x31\x15\x43\x0f\xce\x81\x91\x77\x5e\x46\x9e\x45\xb6\x14\x4b\x7e\xf6\x0d\x9c\xe3\x8c\x6c\x95\x49\x71\x0e\xad\x09\x77\xed\x44\xee\x22\x74\xbf\x99\xd5\xff\x74\x60\x23\x11\xcb\xf5\x17\xee\x37\x77\xb1\x91\x5e\x5e\x87\x50\x66\xf2\xd8\x6f\x3f\x7d\x7c\xa7\x6f\x66\x9e\x4b\x21\x7e\x93\x25\x1f\xcf\xf4\x55\x66\xdb\x42\x09\x3b\xca\xf7\x99\x21\x24\x5c\x3f\x5a\x2b\xb9\xe3\xc5\xdc\x37\x93\xbe\xef\x78\xc3\xb2\xdf\xfd\x79\x4f\x6c\x0d\x49\x40\x5b\xab\x27\x69\x45\xcb\xf7\xdf\xce\x77\x32\xd2\xfd\xd7\xa7\x38\x60\xf6\x92\xf4\x47\x62\x28\x36\x34\xe1\x62\x43\xf5\x58\xa9\xae\xd0\x50\xa5\xdf\xaa\x03\x64\x46\x79\x21\xca\x0b\x51\x5e\x88\xf2\x42\x53\x2b\x2f\x54\x3f\xf3\x16\x96\x16\x3a\x71\x80\x42\x6f\x05\x85\xea\x1f\xbf\xbc\x98\x90\xcd\x6d\x70\x4c\x09\xa1\xfa\x36\x28\x2f\x1f\x74\xe2\x36\xa0\x68\x10\x45\x83\x28\x1a\x44\xd1\x20\x8a\x06\x9d\xac\x68\x50\x83\xd9\xff\xa0\x60\x50\xa5\xf8\xe0\x19\xc5\x27\x36\x7b\x1a\x8a\x1e\x8d\xac\xe8\x51\xfd\x20\xaa\x2a\x78\x74\xe2\xd1\x34\x68\x99\xa3\xfa\x96\xa9\x28\x71\x74\xea\x59\xc3\xd6\xc2\x46\xf5\x8d\x56\xe0\xbd\x6f\xed\xce\x4a\x3e\xfd\xd5\x8a\xfb\x14\x88\x69\x9f\x08\xff\xe4\x99\x8f\x9f\x2e\x73\x69\x8d\xfb\x6e\xd9\xcf\xab\xad\x59\xab\x4d\xf7\xc4\x04\x8a\x2d\xe3\xad\xbd\x3e\xdb\xd9\xe7\xe5\xae\xdd\x82\x1c\x41\x8d\xa0\x46\x63\xa1\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x23\x21\x46\x79\x9d\x8e\x12\x57\x03\x02\x1d\x00\x30\x00\x18\x00\x0c\x00\x06\x00\x3b\x04\x60\x7e\xb0\x50\x96\xa4\x3d\xfd\x1a\x2c\x54\xff\x49\x4f\xf1\xaf\x92\xf2\x04\xbc\x1a\x13\xbc\xea\x39\xe5\x29\x7e\x45\xc0\x57\xe0\x2b\xf0\x15\xf8\x0a\x7c\x05\xbe\x02\x5f\x81\xaf\x3a\x9a\x6d\xc1\x57\xe0\x2b\xf0\x15\xf8\x0a\x7c\x05\xbe\x02\x5f\x9d\x1d\xbe\x82\xf7\xc0\x7b\xe0\x3d\xc5\xa3\x09\xde\x53\xfa\x9e\xc1\x7b\x9e\xc7\x7b\xec\x49\x77\xea\x8c\xf9\xf4\x98\xec\xb4\xe7\x0e\x87\x16\x41\x8b\xf6\xae\x6a\x17\x2d\x82\x14\x41\x8a\x20\x45\x90\x22\x48\x11\xa4\x08\x52\x04\x29\x82\x14\x41\x8a\x20\x45\x90\x22\x48\x11\xa4\x08\x52\x04\x29\x1a\x05\x29\xda\x4b\x74\x3a\x74\x34\x90\xe6\x04\xf6\x02\x7b\x81\xbd\xc0\x5e\x60\xaf\x3d\xec\x95\xfc\xdd\xf1\x64\x14\x59\x91\xec\x94\xd0\xa4\xb7\xf1\x0d\xf5\x9c\xf1\x94\xff\x69\xd2\x9e\x00\x59\x63\x02\x59\x7d\xa6\x3d\xe5\xdf\x13\x88\x16\x44\x0b\xa2\x05\xd1\x82\x68\x41\xb4\x20\x5a\x10\xad\x8e\x66\x5b\x88\x16\x44\x0b\xa2\x05\xd1\x82\x68\x41\xb4\x20\x5a\x67\x47\xb4\x80\x40\x40\x20\x20\x50\xf1\x68\x02\x02\x95\xbe\x67\x40\xa0\x2e\x20\x90\x25\x19\x50\x9d\x83\xa0\xbe\xd2\xa0\x4a\xdc\xe3\x20\x24\x10\xd2\xde\x55\xed\x42\x48\xe0\x23\xf0\x11\xf8\x08\x7c\x04\x3e\x02\x1f\x81\x8f\xc0\x47\xe0\x23\xf0\x11\xf8\x08\x7c\x04\x3e\x02\x1f\x81\x8f\xc0\x47\xe3\xc1\x47\xf9\x84\xa8\x72\x6f\x03\x59\x51\x00\x31\x80\x18\x40\x0c\x20\x06\x10\xdb\x03\x62\xdf\x02\x6f\xf3\xa8\xe4\x7a\x2d\x9d\x2f\xb1\x99\x68\x43\x62\xd4\x9f\xfa\x9e\x6e\xb3\x7b\xea\x39\x39\x6a\xff\xe7\x49\x90\x82\x6e\x8d\x89\x6e\xf5\x99\x20\xb5\xff\xae\x40\xb9\xa0\x5c\x50\x2e\x28\x17\x94\x0b\xca\x05\xe5\x82\x72\x75\x34\xdb\x42\xb9\xa0\x5c\x50\x2e\x28\x17\x94\x0b\xca\x05\xe5\x3a\x3b\xca\x05\x13\x82\x09\xc1\x84\x8a\x47\x13\x4c\xa8\xf4\x3d\x83\x09\x75\xc4\x84\x2c\xc9\x93\x3a\x09\x17\xea\x2b\x57\xaa\xc2\x53\x0e\x51\x82\x28\xed\x5d\xd5\x2e\xa2\x04\x4d\x82\x26\x41\x93\xa0\x49\xd0\x24\x68\x12\x34\x09\x9a\x04\x4d\x82\x26\x41\x93\xa0\x49\xd0\x24\x68\x12\x34\x09\x9a\x34\x2e\x9a\x94\xcf\x99\xaa\xf6\x38\x90\x37\x05\x23\x83\x91\xc1\xc8\x60\x64\x30\xb2\x94\x91\xdd\xab\xb5\xbc\xb9\x6e\x85\xc2\x4e\x8d\x73\x9a\x60\xb6\xa5\x5a\xef\x9a\xae\xa6\x6f\x2b\x30\xd6\x52\xad\x33\x88\xa5\x1f\xfe\xf6\xee\xe3\xef\x45\xe7\x0d\x45\xb1\x46\x0b\x97\x72\x0d\xa9\x73\xcc\x26\x43\x98\xf4\x30\xc9\x9d\x78\x91\xff\xf1\x46\xef\x97\x13\xb9\x8b\xd0\xfd\x66\x10\x4e\xf6\xa6\x99\x1d\x41\xb7\xdc\xd9\x5c\x53\x38\x81\xe7\x29\x27\x9d\xf3\xdf\x7e\xfa\xf8\x4e\xff\x7c\xc5\x7b\x61\x4e\xdc\x7d\x35\xde\x66\x57\x29\xbc\x42\x09\x98\x12\x35\x9d\x09\x9c\x9a\x30\x9c\xaa\x58\xeb\x8e\x00\x54\x35\xab\x5f\xf5\xfa\xb7\x37\xc1\xfc\xb7\xe8\xee\xee\x83\x45\xe9\xcd\x15\x7d\x77\x92\x09\xf3\x9d\x7e\xe5\x7e\xd3\x2f\x46\xd4\x70\xba\xac\x7e\xb5\x00\x6f\x80\x37\xc0\x1b\xe0\x6d\x6a\xe0\xad\xd9\xaa\x52\x08\xdf\xaa\x77\xe3\xcf\x59\x49\x8a\x7c\x3c\x89\xcb\xf1\x95\x16\x85\x70\xe2\x11\x65\xc6\xc1\xce\xb3\xe5\xed\x88\x7b\x25\x56\x71\x6b\x45\xeb\x78\x81\xbe\xf5\x85\xeb\x9b\x99\x25\x08\xc5\xc6\xcf\x26\xa7\x85\x58\x84\x4f\xbf\x6f\x7c\xb1\x70\xc3\xd8\x22\xfb\xa6\xb2\x11\xaf\x9d\x1b\xbe\x90\x7e\xf2\xca\xa7\x63\x23\x69\x60\xf1\xb0\x09\xf5\x5b\xb6\x0a\x03\x27\xb6\x1b\x8c\xff\x27\x07\x45\xe6\xe2\x4f\xfd\x8b\xba\xb7\xf4\xd8\x79\x23\xae\xc4\xad\xe7\xbd\xd1\x7e\xda\x45\x3c\x4b\x6f\xfc\xb8\xe3\xe3\x0d\x75\x3a\x24\x93\xcb\xa9\x45\x8b\x8e\x32\xcf\x32\x4c\x37\xf5\x46\x4b\x9b\x35\x45\x39\x31\xed\xad\x45\xfe\xc8\x7b\x88\x5c\x5f\x44\xc6\x71\x23\xee\xd5\x83\xb1\x9c\x33\xcf\xfa\xd6\x94\x48\x66\x2f\x3d\x74\x36\xca\x2c\x0e\xf7\x4a\xf8\x81\x7f\xe5\xab\xa5\xd4\x03\x34\xf1\xf1\xcc\xc5\x1f\xd9\x82\x6d\x28\x5b\xf6\x6a\x24\x9b\x15\xf7\xf1\x51\x2d\x5c\xb9\x56\xde\xd3\xd6\xa4\xdd\x2e\xb9\xae\xf7\x2a\xf1\xe1\xe8\x46\x17\xcb\x50\x3a\xfa\xad\x71\x83\x45\x66\x10\x6c\x17\x6d\xbd\x5f\x48\x47\xe9\x26\x8a\x6f\x32\xdf\x5d\x32\x3e\x33\x7d\xa0\xe4\x47\x1e\xcc\x1c\x98\x5e\x62\x6e\xee\xf3\x51\x49\xbf\xf0\x1e\x5b\x74\xb3\xbe\xe7\x3b\x7d\xcb\x45\x7e\xb1\x1a\xcf\x98\x2d\xc3\xff\x18\x50\xde\xac\x5d\xca\x61\x79\x6f\xc3\x1f\x6c\x0e\x36\x07\x9b\x83\xcd\xc1\xe6\x27\xc3\xe6\x0d\xd7\x82\x03\x74\xde\xdf\xb2\xf8\x2e\x97\x79\xb3\xf2\x94\x8c\x54\x36\x05\xdd\x85\xc1\x4a\x2e\xb5\x75\x74\x17\x78\xae\xf3\xb4\xe3\x07\x4b\x07\xdd\x36\x75\x27\x1e\x76\x37\xf3\x7f\xcc\xc5\x27\x33\x9f\x19\xd3\x65\xa5\xfc\xf8\x65\xd9\xae\xa9\x4a\x04\xe1\xea\x8b\xf4\x53\xbf\x5c\xb8\x51\xd7\x0f\xd2\x4b\xf7\xca\x9f\x2f\xcd\xd7\x9f\x2f\xc5\x83\xeb\x4b\xcf\xfd\x4f\xba\x90\xdc\x2b\x21\x17\x0b\x3d\x3a\xaf\x0d\x92\x5a\x6c\xb7\x61\xe6\xf2\xb3\x68\x7b\x92\xd9\x9f\xce\xc5\x7b\x57\x4f\x8e\xb9\x5b\x0f\xc2\xc3\x67\xd3\xd3\x8f\x71\x15\x99\xed\xb1\xde\xa3\x04\xeb\x2f\x6d\x3a\xd4\x3c\xc1\xbb\xf4\xd9\x7b\x73\xf1\x1d\x6e\xcc\xf4\xa3\xc7\x2f\xec\x97\xe0\xbb\x58\xca\xf0\x5e\x2e\x77\x7c\xe4\xd9\xa6\x46\x85\x0f\x41\xf8\x18\xf7\x49\x61\x7b\xfd\xb6\xf7\x44\xe5\xcd\xa5\x8d\xde\xd4\x62\x5d\x99\xb6\x75\x63\x6b\xd2\x71\x17\xdb\xad\xb0\xb6\x15\xb4\x73\x22\xeb\xe3\x78\xb1\x4e\x56\xd2\xd4\x1a\x98\xe7\x3a\x33\x5d\x47\xd2\xad\xf6\x55\xe6\x63\xde\xfd\xb1\xb9\xb8\x75\x1c\xb5\x5a\xeb\xb5\x29\xbf\xb3\x9b\x99\x67\x98\x89\xab\x64\x00\xee\x0e\xd0\xe8\x47\x31\xfb\xa7\x74\xbe\x2e\xc3\x60\xe3\x2f\xe2\xa3\xb4\xaf\x56\x1f\xb4\xd7\x70\xc6\x84\x4c\xec\xe3\xdd\x8b\xa4\x4f\x70\x9f\x5d\xe9\x47\x31\xfb\x10\x84\x2a\x77\x59\xe1\xc8\xc8\x91\x8b\xf8\xe9\x93\xf6\x31\xee\x7c\x7d\xbd\xc8\x6c\x3d\x0f\x2e\xf8\x90\x5d\xa3\xcd\x80\x5c\xed\x0f\xf7\x01\x3d\x05\x44\x83\x8c\x27\x1a\xa4\xd9\xe8\xaa\x8a\x08\xe9\x6f\x33\x3f\x64\x6c\x48\xb3\x76\xaa\x88\x0f\xe9\x6f\xc1\xb7\x35\x52\xa4\x59\x13\x1e\x46\x8b\x3c\x77\x39\x2d\x64\xcb\x84\x40\x1c\x49\xf4\x3e\xad\xe5\x7a\xd3\x14\xe5\x8d\x30\xf2\x21\x77\x62\x49\x82\xad\x59\xbe\xb7\xa6\x55\x5f\xb9\xb6\x45\x01\x0a\xfb\x49\xb6\x7b\x4f\x73\x98\x69\xdb\xb9\x0a\x80\x71\xa9\x85\xc9\xda\x9e\xda\xfe\xa9\x00\x40\x93\xb0\x8c\xf8\x0a\x7b\x41\x19\x84\x62\x10\x8a\x31\x89\x50\x0c\x82\x17\x08\x5e\x20\x78\x81\xe0\x05\x82\x17\x06\x0f\x5e\x80\x8a\x03\x4a\x01\xa5\x80\x52\x40\x29\xa0\x14\x50\x0a\x28\x2d\x5d\x04\x60\x17\xb0\x0b\xd8\x05\xec\x02\x76\x81\x08\x69\x15\x24\x99\xa7\x4e\xfb\xc4\xed\x3e\xcf\xdc\xd6\xd3\xce\x0d\xad\x27\x24\x7d\xd6\xb3\xeb\x84\x8a\xb4\xd0\x1f\x1d\x8b\x7a\xc7\xc5\x5e\xaf\x5d\xae\x82\xa8\x63\x04\x64\x8c\x75\x21\x1b\xd1\x1e\x73\x70\x87\xbc\xa7\x5d\xb6\x63\x85\xec\xcb\x89\x26\x85\x4e\xb2\x1f\xc9\xc0\xc9\x77\xba\xb5\x19\x38\x7a\x13\xfe\x8b\xf4\xe5\x52\x85\xc6\x9d\xa4\x25\x8c\x64\x14\x05\x8e\xab\xf7\x47\x99\xe3\x46\x6a\xff\x5b\x10\x8a\x78\xfb\xbc\x7e\xca\x36\x8c\x8f\xf2\x6b\xdc\x8a\xeb\x2f\x2a\x52\xa9\x11\x94\xcf\x33\x49\xf3\x51\xb4\x11\xa8\x9d\x34\x41\x28\x6e\x5e\xff\x10\x1f\x1b\x4a\x47\x53\x19\x2f\xf0\x97\xc6\xe4\xd1\x8e\x94\x78\xc7\x2b\x5d\xdf\xcc\x4a\xda\x51\xb1\x3d\x56\x7b\xaa\x13\x66\x24\xee\x9f\x84\x5e\x2d\xde\x5c\x5f\x2f\x03\x4f\xfa\xcb\x79\x10\x2e\xaf\x57\x5f\x97\xd7\x1b\xdf\x75\x82\x85\xba\xfe\xdb\xc7\xe8\x2e\xbe\x4a\x6b\xcf\x67\xd2\x38\x5d\x76\x8f\x55\x36\xd2\x58\x4d\x97\xa6\x66\xcb\xeb\x06\x66\xcb\x5b\xe3\xc4\xb1\xeb\xb6\x5f\xd7\xde\xb6\x89\x2a\xb5\xeb\xbe\xa7\x68\x25\x6a\x43\x64\x04\x56\xe2\x85\x38\x5e\x03\xa5\xa0\xfe\xc6\x09\xa5\x50\x9a\x59\x5e\x85\xf2\x27\xfd\x5b\x5e\x23\xd1\x99\xc0\xd2\xca\x77\xb2\xb5\x96\x16\x99\xbd\x67\x94\xd9\x4b\x0a\x13\x29\x4c\xa4\x30\x91\xc2\xc4\x26\xb1\xec\x2d\xb2\x6d\x93\xc8\x6e\x2b\xf7\x34\x16\x64\x2d\x8c\x61\xbf\x95\x79\xaa\x3b\xcf\x55\xd0\x64\x7b\xd7\xe0\x6a\xb2\x71\x8a\x4f\x3b\x5d\x82\x42\xce\x00\x51\xff\xd6\x61\x47\xf7\xf1\x27\xe9\xac\xe7\x42\xbc\x8f\xff\x4f\xff\xfe\x28\x5d\xed\xc0\x8b\x84\xe3\x6d\xa2\xb5\x0a\xb7\xcb\x8a\x89\x4f\x14\x9e\xfb\x55\x89\xd9\xaf\xf2\x51\x45\x2b\xe9\xa8\x59\x6c\x3d\xa6\x16\xcf\x5c\xdc\x79\xd2\xf7\x93\xb0\x01\x6d\x93\x48\xcf\x98\x41\x37\x3f\xb4\x99\xa7\xf5\x3d\x0e\x64\x2d\x64\x8d\x96\x19\xdb\xf7\x69\xf3\xc5\x4f\x2a\xde\x9b\x16\x8b\x57\x88\x55\x94\xb6\x4e\x12\x99\xb3\x89\x54\xa8\x43\x6a\xb6\x76\xf3\xd3\x89\x1b\x2a\xbe\x99\xe9\xf2\xe0\xa9\x2f\x63\x53\x5c\x0e\xe2\xb9\x75\x4c\x6b\x41\x0b\x42\x9b\xaf\x1a\x51\x72\x0f\x94\x8b\xe8\x03\x38\xeb\x58\x8e\x56\x7a\xeb\x57\xfa\xdc\xbf\x57\x4f\x5a\x8f\x2a\x5c\xaa\x46\x47\x46\xeb\x50\xae\xd5\xd2\x75\xae\x9a\x9f\x13\x7f\x7e\x4a\x8e\xd4\xd3\x63\x13\x43\x43\x07\xff\xe9\xdc\x22\x13\x77\xd4\xc2\xe8\x58\xed\xd4\x22\x9e\x1a\x26\xaf\x70\xe5\xde\xed\x86\xfe\x08\x5c\xb8\x13\x77\xe1\x9e\x0f\x2c\xdf\x8b\xd0\x4f\x5f\x2e\x93\x45\xb2\x32\x41\xb5\x49\x66\xf2\x8b\x92\x39\xe8\xa5\x76\x60\x99\xd4\x51\xe9\xe9\x33\xfd\xc0\xbf\x32\x67\xeb\x23\xb4\x0f\x39\x12\x2f\x7e\x8a\x02\xff\xce\x24\xe8\xfe\x12\xcf\x76\xc9\xe7\x4f\xe9\x1c\xb8\xfd\xe3\x4b\x9b\x28\x7e\xf3\x71\xf3\x21\x08\x1d\xed\x64\x5f\x06\xba\xf3\x03\xf1\xf9\xf2\x21\xfe\xdb\xe7\x4b\x71\xbb\xd3\x9a\x73\xf1\x71\x9d\x78\xc4\xb5\xf1\x9f\xbc\xa8\x57\xd2\xd1\x1d\xa0\x53\x3c\x3d\xd7\x49\x7c\x7c\x7a\xaf\x10\x7c\x4f\xfa\xd6\xa4\x40\xae\x54\xb0\xf2\xd4\x5c\x98\xdf\xd4\x99\xdd\xe9\x98\xd2\x51\xd7\x85\x1d\x91\xfd\x7c\x9b\xe6\x8d\x7f\x88\x2d\x83\xf9\x82\x2d\x83\x0d\x5b\x86\x55\x9f\x85\xe5\xbb\xd9\x34\x6c\x3a\x77\x20\xad\x3c\xe9\xb4\x31\xe7\x92\x33\x27\x6b\xd0\x11\xf7\x88\x29\x77\x4e\xa6\x9c\x45\x16\x13\x0b\x7b\xf6\x0d\x71\x8f\x25\xb7\x3d\x49\x7b\x64\x33\x0a\x17\xe6\x85\x38\x22\x7c\xd0\x0f\x16\x6a\xb0\x02\x6a\xbf\x06\x0b\x75\x6c\xfc\x60\xbe\x7c\xda\xfe\xf9\x28\x76\xa1\xd8\x35\x3a\xc5\xae\x49\x07\xb5\xa2\x3f\x86\xfe\x18\xfa\x63\xe8\x8f\xa1\x3f\x56\xb4\x94\x50\x3c\x0d\x17\x06\x32\x71\xa4\x58\x9c\x73\x8a\x05\x9a\x80\x68\x02\xa2\x09\x88\x26\x20\x9a\x80\x68\x02\xa2\x09\x48\xe6\x21\x99\x87\x64\x1e\x92\x79\xb8\x3f\x22\x29\x9e\x86\x00\xe9\xd1\xa3\x0b\x01\x52\x04\x48\x11\x20\x9d\x7e\x90\x09\xc5\xd3\x2a\x82\x36\x06\x2c\x9e\xb6\x17\x9e\x30\x7c\x3a\x72\x6d\xe9\xb4\x9a\x80\x8c\xc2\xc2\x69\x04\x61\x10\x84\x31\xfa\x20\x0c\xc2\x16\x08\x5b\x20\x6c\x81\xb0\x05\xc2\x16\x06\x0f\x5b\x80\x87\x83\x48\x41\xa4\x20\x52\x10\x29\x88\x14\x44\x0a\x22\x2d\x5d\x04\xa0\x16\x50\x0b\xa8\x05\xd4\x02\x6a\x41\xd9\xb4\x63\x93\x59\x7f\x0d\x16\x8a\xa2\x69\xbd\x96\xc3\x78\x2e\x0d\xa1\x64\x5a\x57\x25\xd3\x6a\x28\x4f\x49\xc1\xb4\xb6\x9c\xc7\x7e\xd9\x10\xfd\x64\xcd\x26\x02\x32\x6e\x26\x90\x71\x83\x68\x08\xa2\x21\x05\x37\x63\xbd\xc1\x32\x3a\xc9\x90\xe3\x6e\xda\x16\xe9\xfe\x63\xee\x7a\x8a\x76\x61\xcf\x65\xd2\x5a\xda\x85\x17\xe2\x58\x95\x93\x01\x4a\xa4\xb5\x11\x38\xe9\xdb\xd2\x1a\x89\x92\x04\xb6\x55\xbe\x93\xad\xb5\xad\xc8\xdd\x3d\xa3\xdc\x5d\x92\x94\x48\x52\x22\x49\x89\x24\x25\xb6\x85\x65\x6f\x91\x5d\xdb\x42\x76\x58\x76\xec\xb0\x7a\x2f\x8d\x66\x5d\x26\x42\x71\x61\xb4\x9a\xed\x52\x61\x59\xb4\x8e\xd2\x0f\x28\x8a\x96\xf5\x7e\x73\x1b\x81\xa2\x68\xc9\x3f\x16\x2f\x96\x01\xdb\x4b\xa2\x0d\xc0\x5f\xf7\x0a\xa2\x1d\xde\x01\xe5\xd0\x28\x87\x36\x4c\x39\xb4\x1a\x53\xa3\xb8\x18\xda\x34\x10\x38\xa5\xd0\x70\xd7\x9e\x1f\x0a\xa7\x14\x5a\x97\xe3\x86\x52\x68\x6c\x14\xd8\x28\x4c\xb5\x10\xda\xb3\xb7\x0a\xbd\x95\x41\xab\xf5\x18\x15\x17\x41\x9b\x86\x21\x47\x2c\x23\x06\xdc\xf9\x18\x70\x16\xd9\x49\x2c\xe7\xd9\x37\xc4\x32\x16\xdc\xf4\x24\x6d\x90\x5e\x8b\x9f\x9d\x3c\x28\x30\xf9\xb3\xe3\xc9\x28\x1a\xa8\x00\x5a\x62\x95\xbc\x8d\x6f\xe1\xd8\x20\xc1\xec\x42\x65\x17\x41\x85\x0b\x15\xae\xd1\xa9\x70\x4d\x3a\x80\x15\x4d\x31\x34\xc5\xd0\x14\x43\x53\x0c\x4d\xb1\xa2\xa5\x84\x52\x68\x38\x33\x90\x7e\x23\x9d\xe2\x9c\xd3\x29\xd0\xf9\x43\xe7\x0f\x9d\x3f\x74\xfe\xd0\xf9\x43\xe7\x0f\x9d\x3f\xb2\x0c\xc9\x32\x24\xcb\x90\x2c\xc3\xfd\x11\x49\x29\x34\x44\x45\x8f\x1e\x5d\x88\x8a\x22\x2a\x8a\xa8\xe8\xf4\xc3\x4d\x28\x85\x56\x11\xc2\x31\x54\x29\xb4\x92\x18\x85\xe1\xb3\x90\xab\xeb\xa1\x35\x8c\xcf\x38\x2c\x8a\x46\x4c\x06\x31\x19\x93\x89\xc9\x20\x8a\x81\x28\x06\xa2\x18\x88\x62\x20\x8a\x61\xf0\x28\x06\xf0\x38\xc4\x14\x62\x0a\x31\x85\x98\x42\x4c\x21\xa6\x10\xd3\xd2\x45\x00\x88\x01\xc4\x00\x62\x00\x31\x80\x18\x54\x46\x3b\x2a\xcf\x35\xef\xb9\xa6\x3c\x5a\x7f\x65\x30\xba\x22\x24\xd4\x48\xeb\xa4\x46\x5a\x43\xf2\x53\x54\x28\xed\xb9\xec\xc7\x72\x85\x91\x9d\xc7\x6b\x36\x39\x90\x99\x33\x81\xcc\x1c\x64\x46\x90\x19\x29\xb8\x99\x71\x58\x32\xe3\xd2\x1a\x69\x77\xe7\x56\x48\xfb\xb7\xb9\xf5\x29\x9a\x8e\x7d\x56\x50\x7b\xa6\xe9\x78\x21\xda\x29\xa6\xf4\x5d\x4c\xed\x19\x62\x29\xc3\x98\x64\x23\x51\xa5\xc0\xfe\xca\x77\xb2\xb5\xf6\x17\x79\xc0\x67\x94\x07\x4c\xc2\x13\x09\x4f\x24\x3c\x91\xf0\xc4\xd6\xb1\xec\x2d\xb2\x70\xeb\xc8\x06\x6c\xf7\x81\x2c\xc8\x74\x18\xc9\x16\x2c\xf3\x68\xf7\x51\x65\xad\xe1\x3e\xea\xb0\xd4\x5a\xc7\x49\x0d\xd4\x5b\xcb\xc6\x41\x73\xe3\x81\x7a\x6b\xc9\x3f\x56\x35\x96\x06\xfb\x8b\xae\x0d\x48\x75\xf3\x95\xd7\xca\x6f\x83\xf2\x6b\x94\x5f\x1b\xa0\xfc\x5a\x43\x1b\xa4\xa0\x06\xdb\xb4\xe8\x3a\x85\xd8\x70\xf0\x9e\x1f\x60\xa7\x10\x5b\x97\xe3\x86\x42\x6c\xec\x20\xd8\x41\x4c\xb7\x1a\x5b\x67\x7b\x88\x7e\x4a\xb2\x35\x76\x2f\x15\xd4\x65\x9b\x96\x71\x47\xe8\x24\x96\xdd\x99\x59\x76\x16\x19\x50\xac\xf3\xd9\x37\x84\x4e\x9e\x9f\x85\xd2\x5f\xad\xb6\xde\xc2\x0f\xbf\x05\xde\xe6\x51\xc9\xf5\x5a\x3a\x5f\x1e\x75\x00\xc7\x10\x35\xdb\xfe\xd4\x77\x71\x9b\xdd\xc5\x91\xa1\x88\xdb\xba\x6d\x55\x17\x42\x27\x0c\x9d\xb0\xd1\xe9\x84\x4d\x3a\x4a\x16\xd5\x33\x54\xcf\x50\x3d\x43\xf5\x0c\xd5\xb3\xa2\xa5\x84\xda\x6d\xb8\x39\x10\xa7\x23\x67\xe3\x9c\x73\x36\x50\x22\x44\x89\x10\x25\x42\x94\x08\x51\x22\x44\x89\x10\x25\x42\x52\x19\x49\x65\x24\x95\x91\x54\xc6\xfd\x11\x49\xed\x36\x64\x4f\x8f\x1e\x5d\xc8\x9e\x22\x7b\x8a\xec\xe9\xf4\x03\x51\xa8\xdd\x56\x11\xd2\x31\x54\xed\xb6\x8a\x38\x85\xe1\xf3\x9b\xab\xeb\xb7\x1d\x11\xab\x71\x58\xc3\x8d\xf8\x0c\xe2\x33\x26\x15\x9f\x41\x44\x03\x11\x0d\x44\x34\x10\xd1\x40\x44\xc3\xe0\x11\x0d\xa0\x72\xe8\x29\xf4\x14\x7a\x0a\x3d\x85\x9e\x42\x4f\xa1\xa7\xa5\x8b\x00\x40\x03\xa0\x01\xd0\x00\x68\x00\x34\xa8\xe3\x76\x54\x22\xec\xbe\xf7\x9a\x5a\x6e\xfd\x15\xe4\xe8\x92\x98\x50\xcf\xad\x93\x7a\x6e\x47\x90\xa0\xa2\x9a\x6e\x5d\xb0\x20\xcb\xc5\x49\x0e\x1e\xb1\xd9\x64\x41\xe6\xce\x04\x32\x77\x10\x28\x41\xa0\xa4\xe0\x66\xc6\x63\xdd\x8c\x4b\xa4\xa4\xfd\xdd\x5b\x51\x62\xa0\xed\xed\x4f\xd1\xac\xec\xb3\xce\x5b\x07\x66\xe5\x85\x68\x2d\xb6\xd2\x77\xb9\xb7\x67\xea\xac\x0c\x67\xb1\x8d\x44\xd0\x02\xd3\x2c\xdf\xc9\xd6\x9a\x66\xa4\x10\x9f\x51\x0a\x31\xb9\x52\xe4\x4a\x91\x2b\x45\xae\x14\xbb\xca\xb2\xb7\xc8\xd2\x5d\x25\xfb\x32\xcb\xf6\x65\xfd\x96\x7f\xb3\x3a\x45\xa2\xa0\x04\xdc\x11\x7b\xab\xc3\x32\x70\x27\xc8\x8b\xa0\x14\x5c\x36\x1e\x9a\x1b\x14\x94\x82\x4b\xfe\xb1\xd2\xb1\x54\x8c\xa3\x1c\xdc\xc0\x60\x38\x5f\x12\xae\xfa\x56\x28\x0b\x47\x59\xb8\x01\xca\xc2\x1d\x61\x97\x14\x94\x86\x9b\x1e\xa4\xa7\x3c\x1c\x8e\xe0\xf3\x63\xf4\x94\x87\xeb\x72\xdc\x50\x1e\x8e\x5d\x05\xbb\x0a\xf3\xe7\xa9\x96\x88\xeb\x74\x5f\xd1\x4f\x99\xb8\xa3\x5c\x50\x05\xa5\xe2\xa6\x67\xec\x11\x91\x89\xb5\x77\x86\xd6\x9e\x45\x46\x15\x6b\x7f\xf6\x0d\x11\x99\x8d\xee\x7e\x92\x96\x4b\x7f\xa5\xe3\x7a\x8d\x68\xd4\x69\x5c\xd7\x4e\xe4\x2e\x42\xf7\x9b\xb1\x0d\xb2\x48\xc6\xce\xa1\x5b\x92\xdf\xee\x2f\xdc\x6f\xee\x62\x23\xbd\x7c\xea\xa0\xcc\x14\x2d\xde\x7e\xfa\xf8\x4e\xdf\xcc\x3c\x17\xb9\xf3\x26\x8b\xf9\x99\xe9\xab\xcc\xb6\xda\x46\x3b\x62\x35\x99\x95\x24\x5c\x3f\x5a\x2b\xb9\xe3\xdc\xdc\xb7\xa1\xbe\x1f\xba\xcb\xb2\x1f\xff\x79\x2f\x35\x8a\x54\x3e\x5b\x45\x10\x75\x26\xea\xfb\x6f\x67\x3e\x41\xe9\x4e\xec\x33\x9f\x2f\x7b\x53\x7a\xe6\x35\xc8\x05\x4e\x58\x2e\xb0\x1e\x3e\xd5\x49\x05\x56\x3a\xba\x3a\x00\x6b\x08\x04\x22\x10\x88\x40\x20\x02\x81\x53\x13\x08\xac\x9f\x79\x0b\xc5\x01\x4f\x1c\xc6\xd0\x9b\x24\x60\xfd\xe3\x97\xcb\x01\xda\xdc\x06\xc7\x88\x00\xd6\xb7\x41\xb9\x00\xe0\x89\xdb\x00\xd9\x3f\x64\xff\x90\xfd\x43\xf6\x0f\xd9\xbf\x93\xc9\xfe\x35\x98\xfd\x0f\x24\xff\x2a\x53\x00\xcf\x28\x8a\xb1\xd9\xd3\x20\x5b\x38\x32\xd9\xc2\xfa\x41\x54\x25\x59\x78\xe2\xd1\x34\xa8\x50\x61\x7d\xcb\x54\x88\x14\x9e\x7a\xd6\xb0\x55\x9a\xb0\xbe\xd1\x0a\xfc\xf8\xad\xdd\x59\xc9\xa7\xbf\xda\xb3\xa0\x02\x71\x8b\x13\x21\xa1\x3c\x07\xf2\xd3\xb5\x2e\xad\x57\xd3\x2d\x0f\x7a\xb5\xb5\x6d\xb5\xfd\x9e\xd8\x41\xb1\x79\xbc\x35\xda\x67\x3b\x9b\xbd\xdc\xb5\xdb\xd2\x24\x48\x12\x24\x69\x54\x24\x09\x8a\x04\x45\x82\x22\x41\x91\xa0\x48\x50\x24\x28\x12\x14\x09\x8a\x04\x45\x82\x22\x41\x91\xa0\x48\x50\x24\x28\x12\x14\x69\x4c\x14\x29\xaf\xf0\x51\xe2\x6f\x40\xda\x03\x28\x06\x14\x03\x8a\x01\xc5\x80\x62\x25\x50\xcc\x0f\x16\xca\x92\xf4\xa8\x5f\x83\x85\x1a\x28\x39\x2a\xfe\x69\x52\xa3\x00\x5a\xa3\x03\x5a\x3d\xa7\x46\xc5\xef\x09\x48\x0b\xa4\x05\xd2\x02\x69\x81\xb4\x40\x5a\x20\x2d\x90\x56\x97\xb3\x2d\x48\x0b\xa4\x05\xd2\x02\x69\x81\xb4\x40\x5a\x20\xad\xb3\x43\x5a\x30\x20\x18\x10\x0c\xa8\x78\x34\xc1\x80\x4a\xdf\x33\x18\x50\x07\x0c\xc8\x9e\xb4\xa8\xce\x38\x50\xdf\x49\x51\x7b\xde\x71\x08\x12\x04\x69\xef\xaa\x16\x12\x24\xe8\x11\xf4\x08\x7a\x04\x3d\x82\x1e\x41\x8f\xa0\x47\xd0\x23\xe8\x11\xf4\x08\x7a\x04\x3d\x82\x1e\x41\x8f\xa0\x47\xd0\xa3\xf1\xd0\xa3\xbd\x84\xa8\x43\x6f\x03\xe9\x50\xa0\x30\x50\x18\x28\x0c\x14\x06\x0a\x2b\x42\x61\xc9\x97\x8e\x27\xa3\xc8\x8a\xa4\xa8\x84\x30\xbd\x8d\x6f\x68\x88\xcc\xa8\xfc\xef\x93\x1e\x05\xdc\x1a\x1d\xdc\xea\x33\x3d\x2a\xff\xb2\x40\xb9\xa0\x5c\x50\x2e\x28\x17\x94\x0b\xca\x05\xe5\x82\x72\x75\x39\xdb\x42\xb9\xa0\x5c\x50\x2e\x28\x17\x94\x0b\xca\x05\xe5\x3a\x3b\xca\x05\x18\x02\x0c\x01\x86\x8a\x47\x13\x60\xa8\xf4\x3d\x03\x0c\x75\x06\x86\x2c\xc9\x94\xea\x1c\x0e\xf5\x9a\x2e\x55\xe2\x2d\x07\x2b\x81\x95\xf6\xae\x6a\x21\x56\x02\x29\x81\x94\x40\x4a\x20\x25\x90\x12\x48\x09\xa4\x04\x52\x02\x29\x81\x94\x40\x4a\x20\x25\x90\x12\x48\x09\xa4\x04\x52\x1a\x19\x52\xca\x27\x4e\x95\xbb\x1c\xc8\x9e\x02\x92\x01\xc9\x80\x64\x40\x32\x20\x59\x11\x24\xfb\x16\x78\x9b\x47\x25\xd7\x6b\xe9\x7c\x89\x6d\x45\x1b\x12\xa8\xfe\xd4\xf7\x74\x9b\xdd\xd3\x10\x49\x54\xfb\xf7\x40\x22\x15\xc4\x6b\x74\xc4\xab\xcf\x44\xaa\xfd\x17\x06\xf2\x05\xf9\x82\x7c\x41\xbe\x20\x5f\x90\x2f\xc8\x17\xe4\xab\xcb\xd9\x16\xf2\x05\xf9\x82\x7c\x41\xbe\x20\x5f\x90\x2f\xc8\xd7\xd9\x91\x2f\x38\x11\x9c\x08\x4e\x54\x3c\x9a\xe0\x44\xa5\xef\x19\x9c\xa8\x4b\x4e\x64\x49\x3e\xd5\x49\x58\x51\xaf\x39\x55\x15\x8e\x73\x28\x13\x94\x69\xef\xaa\x16\x52\x26\x08\x13\x84\x09\xc2\x04\x61\x82\x30\x41\x98\x20\x4c\x10\x26\x08\x13\x84\x09\xc2\x04\x61\x82\x30\x41\x98\x20\x4c\x10\xa6\x11\x12\xa6\x7c\x6e\x55\xb5\xdb\x81\xfc\x2a\xb8\x19\xdc\x0c\x6e\x06\x37\x3b\x47\x6e\xe6\x05\xcb\xe8\xba\x12\x81\xed\xf1\x1f\x2f\x58\x7e\x70\x3d\xf5\xb3\x1b\xad\xff\xff\xd2\x5f\x78\x3b\xdd\x55\x0e\x3e\x6c\x65\x07\xf1\xf3\xe7\x8e\xbe\xc8\xff\xe2\x6e\x23\xfd\xd7\x0b\x96\xf1\x2a\x59\x0d\x0c\x8b\x5b\x6b\xc2\x2d\xf5\x1c\x20\x11\x37\x67\xfa\x2e\x7a\xc1\xf2\x38\xbb\x24\xe9\x8e\xd3\x9b\x26\xc5\x2f\x4e\xb2\xd6\x56\xbf\x3b\x65\xf8\xf8\x80\x7e\x16\xf6\xc2\x5e\x6b\x2d\x55\xea\xc8\x5c\x64\x46\x6e\x05\xa8\x5d\xaa\xf5\xdb\x60\x51\xb0\x12\x35\x67\xb2\x85\x77\x65\x29\xdb\x4c\x1a\x64\xfe\xd1\x7f\x08\xc6\x0e\x34\xd3\xce\x2d\x9b\x97\x2e\x92\x1f\xbd\x8c\x94\xb3\x09\xdd\xf5\x53\x76\x81\x6c\x28\xfe\x53\xc9\x50\x85\x7f\x04\x5f\x55\xfc\x14\xff\xef\x5f\xd9\x89\x7f\xed\x9c\xf8\x6e\xdb\xb2\x59\x4b\xec\x9d\x9b\x5d\x72\xaf\x61\xcc\x51\x42\x1f\x26\xe2\x36\x32\x9b\xe5\x75\x7e\xb0\x25\x2f\xf1\x17\x25\x17\xb9\xd9\x6f\x4b\xa4\x92\x96\xdd\x3b\x29\x7d\x51\xe5\xca\xfd\x7f\xd4\xd3\xe5\xfe\x33\x7f\x97\xcb\xd8\x48\x78\x23\x2e\x5f\xcf\xff\x7f\x97\x17\xff\xbb\xf8\xff\x02\x00\x00\xff\xff\xa8\x73\x61\x67\x3e\x43\x42\x00") - -func kubernetesapiV1188SwaggerJsonBytes() ([]byte, error) { - return bindataRead( - _kubernetesapiV1188SwaggerJson, - "kubernetesapi/v1188/swagger.json", - ) -} - -func kubernetesapiV1188SwaggerJson() (*asset, error) { - bytes, err := kubernetesapiV1188SwaggerJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "kubernetesapi/v1188/swagger.json", size: 4342590, mode: os.FileMode(420), modTime: time.Unix(1605140884, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -// Asset loads and returns the asset for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func Asset(name string) ([]byte, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) - } - return a.bytes, nil - } - return nil, fmt.Errorf("Asset %s not found", name) -} - -// MustAsset is like Asset but panics when Asset would return an error. -// It simplifies safe initialization of global variables. -func MustAsset(name string) []byte { - a, err := Asset(name) - if err != nil { - panic("asset: Asset(" + name + "): " + err.Error()) - } - - return a -} - -// AssetInfo loads and returns the asset info for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func AssetInfo(name string) (os.FileInfo, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) - } - return a.info, nil - } - return nil, fmt.Errorf("AssetInfo %s not found", name) -} - -// AssetNames returns the names of the assets. -func AssetNames() []string { - names := make([]string, 0, len(_bindata)) - for name := range _bindata { - names = append(names, name) - } - return names -} - -// _bindata is a table, holding each asset generator, mapped to its name. -var _bindata = map[string]func() (*asset, error){ - "kubernetesapi/v1188/swagger.json": kubernetesapiV1188SwaggerJson, -} - -// AssetDir returns the file names below a certain -// directory embedded in the file by go-bindata. -// For example if you run go-bindata on data/... and data contains the -// following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png -// then AssetDir("data") would return []string{"foo.txt", "img"} -// AssetDir("data/img") would return []string{"a.png", "b.png"} -// AssetDir("foo.txt") and AssetDir("notexist") would return an error -// AssetDir("") will return []string{"data"}. -func AssetDir(name string) ([]string, error) { - node := _bintree - if len(name) != 0 { - cannonicalName := strings.Replace(name, "\\", "/", -1) - pathList := strings.Split(cannonicalName, "/") - for _, p := range pathList { - node = node.Children[p] - if node == nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - } - } - if node.Func != nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - rv := make([]string, 0, len(node.Children)) - for childName := range node.Children { - rv = append(rv, childName) - } - return rv, nil -} - -type bintree struct { - Func func() (*asset, error) - Children map[string]*bintree -} - -var _bintree = &bintree{nil, map[string]*bintree{ - "kubernetesapi": &bintree{nil, map[string]*bintree{ - "v1188": &bintree{nil, map[string]*bintree{ - "swagger.json": &bintree{kubernetesapiV1188SwaggerJson, map[string]*bintree{}}, - }}, - }}, -}} - -// RestoreAsset restores an asset under the given directory -func RestoreAsset(dir, name string) error { - data, err := Asset(name) - if err != nil { - return err - } - info, err := AssetInfo(name) - if err != nil { - return err - } - err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) - if err != nil { - return err - } - err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) - if err != nil { - return err - } - err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) - if err != nil { - return err - } - return nil -} - -// RestoreAssets restores an asset under the given directory recursively -func RestoreAssets(dir, name string) error { - children, err := AssetDir(name) - // File - if err != nil { - return RestoreAsset(dir, name) - } - // Dir - for _, child := range children { - err = RestoreAssets(dir, filepath.Join(name, child)) - if err != nil { - return err - } - } - return nil -} - -func _filePath(dir, name string) string { - cannonicalName := strings.Replace(name, "\\", "/", -1) - return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) -} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1188/swagger.json b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1188/swagger.json deleted file mode 100644 index f9b41eadee..0000000000 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1188/swagger.json +++ /dev/null @@ -1,85841 +0,0 @@ -{ - "definitions": { - "io.k8s.api.admissionregistration.v1.MutatingWebhook": { - "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "reinvocationPolicy": { - "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - "type": "string" - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig", - "sideEffects", - "admissionReviewVersions" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration": { - "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList": { - "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of MutatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfigurationList", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scope": { - "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "`name` is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "`namespace` is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "`path` is an optional URL path which will be sent in any request to this service.", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhook": { - "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig", - "sideEffects", - "admissionReviewVersions" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration": { - "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList": { - "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of ValidatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfigurationList", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "properties": { - "caBundle": { - "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ServiceReference", - "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhook": { - "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "reinvocationPolicy": { - "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - "type": "string" - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration": { - "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList": { - "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of MutatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scope": { - "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "`name` is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "`namespace` is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "`path` is an optional URL path which will be sent in any request to this service.", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook": { - "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration": { - "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList": { - "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of ValidatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "properties": { - "caBundle": { - "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ServiceReference", - "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.ControllerRevision": { - "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", - "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" - }, - "data": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", - "description": "Data is the serialized representation of the state." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "revision": { - "description": "Revision indicates the revision of the state represented by Data.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "revision" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ControllerRevisionList": { - "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", - "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" - }, - "items": { - "description": "Items is the list of ControllerRevisions", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevisionList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSet": { - "description": "DaemonSet represents the configuration of a daemon set.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec", - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus", - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetCondition": { - "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of DaemonSet condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetList": { - "description": "DaemonSetList is a collection of daemon sets.", - "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" - }, - "items": { - "description": "A list of daemon sets.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetSpec": { - "description": "DaemonSetSpec is the specification of a daemon set.", - "properties": { - "minReadySeconds": { - "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - }, - "updateStrategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy", - "description": "An update strategy to replace existing DaemonSet pods with new pods." - } - }, - "required": [ - "selector", - "template" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetStatus": { - "description": "DaemonSetStatus represents the current status of a daemon set.", - "properties": { - "collisionCount": { - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a DaemonSet's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentNumberScheduled": { - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "desiredNumberScheduled": { - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "numberAvailable": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "format": "int32", - "type": "integer" - }, - "numberMisscheduled": { - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "numberReady": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - "format": "int32", - "type": "integer" - }, - "numberUnavailable": { - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "The most recent generation observed by the daemon set controller.", - "format": "int64", - "type": "integer" - }, - "updatedNumberScheduled": { - "description": "The total number of nodes that are running updated daemon pod", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetUpdateStrategy": { - "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet", - "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." - }, - "type": { - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.Deployment": { - "description": "Deployment enables declarative updates for Pods and ReplicaSets.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentSpec", - "description": "Specification of the desired behavior of the Deployment." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStatus", - "description": "Most recently observed status of the Deployment." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentCondition": { - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time this condition was updated." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of deployment condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentList": { - "description": "DeploymentList is a list of Deployments.", - "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" - }, - "items": { - "description": "Items is the list of Deployments.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DeploymentList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentSpec": { - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "paused": { - "description": "Indicates that the deployment is paused.", - "type": "boolean" - }, - "progressDeadlineSeconds": { - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels." - }, - "strategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStrategy", - "description": "The deployment strategy to use to replace existing pods with new ones.", - "x-kubernetes-patch-strategy": "retainKeys" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template describes the pods that will be created." - } - }, - "required": [ - "selector", - "template" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentStatus": { - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "availableReplicas": { - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - "format": "int32", - "type": "integer" - }, - "collisionCount": { - "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a deployment's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "observedGeneration": { - "description": "The generation observed by the deployment controller.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "Total number of ready pods targeted by this deployment.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - "format": "int32", - "type": "integer" - }, - "unavailableReplicas": { - "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - "format": "int32", - "type": "integer" - }, - "updatedReplicas": { - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentStrategy": { - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment", - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." - }, - "type": { - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSet": { - "description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec", - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus", - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetCondition": { - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replica set condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSetList": { - "description": "ReplicaSetList is a collection of ReplicaSets.", - "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" - }, - "items": { - "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetSpec": { - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - } - }, - "required": [ - "selector" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSetStatus": { - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a replica set's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replica set.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateDaemonSet": { - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateDeployment": { - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxSurge": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods." - }, - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy": { - "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - "properties": { - "partition": { - "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSet": { - "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetSpec", - "description": "Spec defines the desired identities of pods in this set." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetStatus", - "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetCondition": { - "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of statefulset condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetList": { - "description": "StatefulSetList is a collection of StatefulSets.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetSpec": { - "description": "A StatefulSetSpec is the specification of a StatefulSet.", - "properties": { - "podManagementPolicy": { - "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - "type": "string" - }, - "replicas": { - "description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "serviceName": { - "description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - "type": "string" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet." - }, - "updateStrategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy", - "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template." - }, - "volumeClaimTemplates": { - "description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "type": "array" - } - }, - "required": [ - "selector", - "template", - "serviceName" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetStatus": { - "description": "StatefulSetStatus represents the current state of a StatefulSet.", - "properties": { - "collisionCount": { - "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a statefulset's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentReplicas": { - "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - "format": "int32", - "type": "integer" - }, - "currentRevision": { - "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - "type": "string" - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "replicas is the number of Pods created by the StatefulSet controller.", - "format": "int32", - "type": "integer" - }, - "updateRevision": { - "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", - "type": "string" - }, - "updatedReplicas": { - "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetUpdateStrategy": { - "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy", - "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType." - }, - "type": { - "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus", - "description": "Status is filled in by the server and indicates whether the request can be authenticated." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authentication.v1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - "items": { - "type": "string" - }, - "type": "array" - }, - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - "items": { - "type": "string" - }, - "type": "array" - }, - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", - "description": "User is the UserInfo associated with the provided token." - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Any additional information provided by the authenticator.", - "type": "object" - }, - "groups": { - "description": "The names of groups this user is a part of.", - "items": { - "type": "string" - }, - "type": "array" - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus", - "description": "Status is filled in by the server and indicates whether the request can be authenticated." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authentication.v1beta1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - "items": { - "type": "string" - }, - "type": "array" - }, - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - "items": { - "type": "string" - }, - "type": "array" - }, - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.UserInfo", - "description": "User is the UserInfo associated with the provided token." - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Any additional information provided by the authenticator.", - "type": "object" - }, - "groups": { - "description": "The names of groups this user is a part of.", - "items": { - "type": "string" - }, - "type": "array" - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "properties": { - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. user and groups must be empty" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec", - "description": "Spec holds information about the request being evaluated." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus", - "description": "Status is filled in by the server and indicates the set of actions a user can perform." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object" - }, - "groups": { - "description": "Groups is the groups you're testing for.", - "items": { - "type": "string" - }, - "type": "array" - }, - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - }, - "required": [ - "allowed" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceRule" - }, - "type": "array" - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceRule" - }, - "type": "array" - } - }, - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "properties": { - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. user and groups must be empty" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec", - "description": "Spec holds information about the request being evaluated." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus", - "description": "Status is filled in by the server and indicates the set of actions a user can perform." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object" - }, - "group": { - "description": "Groups is the groups you're testing for.", - "items": { - "type": "string" - }, - "type": "array" - }, - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - }, - "required": [ - "allowed" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceRule" - }, - "type": "array" - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceRule" - }, - "type": "array" - } - }, - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler": { - "description": "configuration of a horizontal pod autoscaler.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec", - "description": "behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus", - "description": "current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList": { - "description": "list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec": { - "description": "specification of a horizontal pod autoscaler.", - "properties": { - "maxReplicas": { - "description": "upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.", - "format": "int32", - "type": "integer" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference", - "description": "reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource." - }, - "targetCPUUtilizationPercentage": { - "description": "target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus": { - "description": "current status of a horizontal pod autoscaler", - "properties": { - "currentCPUUtilizationPercentage": { - "description": "current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.", - "format": "int32", - "type": "integer" - }, - "currentReplicas": { - "description": "current number of replicas of pods managed by this autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desired number of replicas of pods managed by this autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.Scale": { - "description": "Scale represents a scaling request for a resource.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec", - "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus", - "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.ScaleSpec": { - "description": "ScaleSpec describes the attributes of a scale subresource.", - "properties": { - "replicas": { - "description": "desired number of instances for the scaled object.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v1.ScaleStatus": { - "description": "ScaleStatus represents the current status of a scale subresource.", - "properties": { - "replicas": { - "description": "actual number of observed instances of the scaled object.", - "format": "int32", - "type": "integer" - }, - "selector": { - "description": "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors", - "type": "string" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricSource": { - "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one \"target\" type should be set.", - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "metricSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "metricSelector is used to identify a specific time series within a given metric." - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue." - }, - "targetValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue." - } - }, - "required": [ - "metricName" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus": { - "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - "properties": { - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of metric averaged over autoscaled pods." - }, - "currentValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentValue is the current value of the metric (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of a metric used for autoscaling in metric system.", - "type": "string" - }, - "metricSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "metricSelector is used to identify a specific time series within a given metric." - } - }, - "required": [ - "metricName", - "currentValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler": { - "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec", - "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus", - "description": "status is the current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition": { - "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the last time the condition transitioned from one status to another" - }, - "message": { - "description": "message is a human-readable explanation containing details about the transition", - "type": "string" - }, - "reason": { - "description": "reason is the reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition (True, False, Unknown)", - "type": "string" - }, - "type": { - "description": "type describes the current condition", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList": { - "description": "HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "items is the list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "metadata is the standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec": { - "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - "properties": { - "maxReplicas": { - "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - "format": "int32", - "type": "integer" - }, - "metrics": { - "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricSpec" - }, - "type": "array" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus": { - "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - "properties": { - "conditions": { - "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition" - }, - "type": "array" - }, - "currentMetrics": { - "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricStatus" - }, - "type": "array" - }, - "currentReplicas": { - "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas", - "conditions" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.MetricSpec": { - "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricSource", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricSource", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricSource", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricSource", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.MetricStatus": { - "description": "MetricStatus describes the last-read state of a single metric.", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricStatus", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricSource": { - "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "target is the described Kubernetes object." - }, - "targetValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetValue is the target value of the metric (as a quantity)." - } - }, - "required": [ - "target", - "metricName", - "targetValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus": { - "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "currentValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentValue is the current value of the metric (as a quantity)." - }, - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "target is the described Kubernetes object." - } - }, - "required": [ - "target", - "metricName", - "currentValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricSource": { - "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - } - }, - "required": [ - "metricName", - "targetAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricStatus": { - "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - "properties": { - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - } - }, - "required": [ - "metricName", - "currentAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricSource": { - "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "properties": { - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - }, - "targetAverageUtilization": { - "description": "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - "format": "int32", - "type": "integer" - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus": { - "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "properties": { - "currentAverageUtilization": { - "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", - "format": "int32", - "type": "integer" - }, - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification." - }, - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - } - }, - "required": [ - "name", - "currentAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ExternalMetricSource": { - "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - "properties": { - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "metric", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus": { - "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy": { - "description": "HPAScalingPolicy is a single policy which must hold true for a specified past interval.", - "properties": { - "periodSeconds": { - "description": "PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "Type is used to specify the scaling policy.", - "type": "string" - }, - "value": { - "description": "Value contains the amount of change which is permitted by the policy. It must be greater than zero", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "type", - "value", - "periodSeconds" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HPAScalingRules": { - "description": "HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.", - "properties": { - "policies": { - "description": "policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy" - }, - "type": "array" - }, - "selectPolicy": { - "description": "selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.", - "type": "string" - }, - "stabilizationWindowSeconds": { - "description": "StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler": { - "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec", - "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus", - "description": "status is the current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - ] - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior": { - "description": "HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).", - "properties": { - "scaleDown": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", - "description": "scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used)." - }, - "scaleUp": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", - "description": "scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\n * increase no more than 4 pods per 60 seconds\n * double the number of pods per 60 seconds\nNo stabilization is used." - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition": { - "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the last time the condition transitioned from one status to another" - }, - "message": { - "description": "message is a human-readable explanation containing details about the transition", - "type": "string" - }, - "reason": { - "description": "reason is the reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition (True, False, Unknown)", - "type": "string" - }, - "type": { - "description": "type describes the current condition", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList": { - "description": "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "items is the list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "metadata is the standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v2beta2" - } - ] - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec": { - "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - "properties": { - "behavior": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior", - "description": "behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used." - }, - "maxReplicas": { - "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - "format": "int32", - "type": "integer" - }, - "metrics": { - "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricSpec" - }, - "type": "array" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference", - "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus": { - "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - "properties": { - "conditions": { - "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition" - }, - "type": "array" - }, - "currentMetrics": { - "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricStatus" - }, - "type": "array" - }, - "currentReplicas": { - "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas", - "conditions" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricIdentifier": { - "description": "MetricIdentifier defines the name and optionally selector for a metric", - "properties": { - "name": { - "description": "name is the name of the given metric", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricSpec": { - "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricSource", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricSource", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricSource", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricSource", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricStatus": { - "description": "MetricStatus describes the last-read state of a single metric.", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricStatus", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricTarget": { - "description": "MetricTarget defines the target value, average value, or average utilization of a specific metric", - "properties": { - "averageUtilization": { - "description": "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type", - "format": "int32", - "type": "integer" - }, - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - }, - "type": { - "description": "type represents whether the metric type is Utilization, Value, or AverageValue", - "type": "string" - }, - "value": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "value is the target value of the metric (as a quantity)." - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricValueStatus": { - "description": "MetricValueStatus holds the current value for a metric", - "properties": { - "averageUtilization": { - "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - "format": "int32", - "type": "integer" - }, - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "value": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "value is the current value of the metric (as a quantity)." - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ObjectMetricSource": { - "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "describedObject": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "describedObject", - "target", - "metric" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus": { - "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "describedObject": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current", - "describedObject" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.PodsMetricSource": { - "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "properties": { - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "metric", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.PodsMetricStatus": { - "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ResourceMetricSource": { - "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "properties": { - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "name", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus": { - "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "name": { - "description": "Name is the name of the resource in question.", - "type": "string" - } - }, - "required": [ - "name", - "current" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.Job": { - "description": "Job represents the configuration of a single job.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", - "description": "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobStatus", - "description": "Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "Job", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobCondition": { - "description": "JobCondition describes current state of a job.", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition was checked." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transit from one status to another." - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of job condition, Complete or Failed.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.JobList": { - "description": "JobList is a collection of jobs.", - "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" - }, - "items": { - "description": "items is the list of Jobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "JobList", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobSpec": { - "description": "JobSpec describes how the job execution will look like.", - "properties": { - "activeDeadlineSeconds": { - "description": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", - "format": "int64", - "type": "integer" - }, - "backoffLimit": { - "description": "Specifies the number of retries before marking this job failed. Defaults to 6", - "format": "int32", - "type": "integer" - }, - "completions": { - "description": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "format": "int32", - "type": "integer" - }, - "manualSelector": { - "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", - "type": "boolean" - }, - "parallelism": { - "description": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) \u003c .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/" - }, - "ttlSecondsAfterFinished": { - "description": "ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "template" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.JobStatus": { - "description": "JobStatus represents the current state of a Job.", - "properties": { - "active": { - "description": "The number of actively running pods.", - "format": "int32", - "type": "integer" - }, - "completionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC." - }, - "conditions": { - "description": "The latest available observations of an object's current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "failed": { - "description": "The number of pods which reached phase Failed.", - "format": "int32", - "type": "integer" - }, - "startTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job was acknowledged by the job controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC." - }, - "succeeded": { - "description": "The number of pods which reached phase Succeeded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.batch.v1beta1.CronJob": { - "description": "CronJob represents the configuration of a single cron job.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobSpec", - "description": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobStatus", - "description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobList": { - "description": "CronJobList is a collection of cron jobs.", - "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" - }, - "items": { - "description": "items is the list of CronJobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJobList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobSpec": { - "description": "CronJobSpec describes how the job execution will look like and when it will actually run.", - "properties": { - "concurrencyPolicy": { - "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", - "type": "string" - }, - "failedJobsHistoryLimit": { - "description": "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "format": "int32", - "type": "integer" - }, - "jobTemplate": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.JobTemplateSpec", - "description": "Specifies the job that will be created when executing a CronJob." - }, - "schedule": { - "description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", - "type": "string" - }, - "startingDeadlineSeconds": { - "description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - "format": "int64", - "type": "integer" - }, - "successfulJobsHistoryLimit": { - "description": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.", - "format": "int32", - "type": "integer" - }, - "suspend": { - "description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", - "type": "boolean" - } - }, - "required": [ - "schedule", - "jobTemplate" - ], - "type": "object" - }, - "io.k8s.api.batch.v1beta1.CronJobStatus": { - "description": "CronJobStatus represents the current state of a cron job.", - "properties": { - "active": { - "description": "A list of pointers to currently running jobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array" - }, - "lastScheduleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Information when was the last time the job was successfully scheduled." - } - }, - "type": "object" - }, - "io.k8s.api.batch.v1beta1.JobTemplateSpec": { - "description": "JobTemplateSpec describes the data a Job should have when created from a template", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", - "description": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequest": { - "description": "Describes a certificate signing request", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec", - "description": "The certificate request itself and any additional information." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus", - "description": "Derived information about the request." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition": { - "properties": { - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "timestamp for the last update to this condition" - }, - "message": { - "description": "human readable message with details about the request state", - "type": "string" - }, - "reason": { - "description": "brief reason for the request state", - "type": "string" - }, - "type": { - "description": "request approval state, currently Approved or Denied.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestList": { - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequestList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec": { - "description": "This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra information about the requesting user. See user.Info interface for details.", - "type": "object" - }, - "groups": { - "description": "Group information about the requesting user. See user.Info interface for details.", - "items": { - "type": "string" - }, - "type": "array" - }, - "request": { - "description": "Base64-encoded PKCS#10 CSR data", - "format": "byte", - "type": "string" - }, - "signerName": { - "description": "Requested signer for the request. It is a qualified name in the form: `scope-hostname.io/name`. If empty, it will be defaulted:\n 1. If it's a kubelet client certificate, it is assigned\n \"kubernetes.io/kube-apiserver-client-kubelet\".\n 2. If it's a kubelet serving certificate, it is assigned\n \"kubernetes.io/kubelet-serving\".\n 3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\nDistribution of trust for signers happens out of band. You can select on this field using `spec.signerName`.", - "type": "string" - }, - "uid": { - "description": "UID information about the requesting user. See user.Info interface for details.", - "type": "string" - }, - "usages": { - "description": "allowedUsages specifies a set of usage contexts the key will be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3\n https://tools.ietf.org/html/rfc5280#section-4.2.1.12", - "items": { - "type": "string" - }, - "type": "array" - }, - "username": { - "description": "Information about the requesting user. See user.Info interface for details.", - "type": "string" - } - }, - "required": [ - "request" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus": { - "properties": { - "certificate": { - "description": "If request was approved, the controller will place the issued certificate here.", - "format": "byte", - "type": "string" - }, - "conditions": { - "description": "Conditions applied to the request, such as approval or denial.", - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.coordination.v1.Lease": { - "description": "Lease defines a lease concept.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseSpec", - "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - ] - }, - "io.k8s.api.coordination.v1.LeaseList": { - "description": "LeaseList is a list of Lease objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "LeaseList", - "version": "v1" - } - ] - }, - "io.k8s.api.coordination.v1.LeaseSpec": { - "description": "LeaseSpec is a specification of a Lease.", - "properties": { - "acquireTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "acquireTime is a time when the current lease was acquired." - }, - "holderIdentity": { - "description": "holderIdentity contains the identity of the holder of a current lease.", - "type": "string" - }, - "leaseDurationSeconds": { - "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - "format": "int32", - "type": "integer" - }, - "leaseTransitions": { - "description": "leaseTransitions is the number of transitions of a lease between holders.", - "format": "int32", - "type": "integer" - }, - "renewTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "renewTime is a time when the current holder of a lease has last updated the lease." - } - }, - "type": "object" - }, - "io.k8s.api.coordination.v1beta1.Lease": { - "description": "Lease defines a lease concept.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseSpec", - "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.coordination.v1beta1.LeaseList": { - "description": "LeaseList is a list of Lease objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "LeaseList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.coordination.v1beta1.LeaseSpec": { - "description": "LeaseSpec is a specification of a Lease.", - "properties": { - "acquireTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "acquireTime is a time when the current lease was acquired." - }, - "holderIdentity": { - "description": "holderIdentity contains the identity of the holder of a current lease.", - "type": "string" - }, - "leaseDurationSeconds": { - "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - "format": "int32", - "type": "integer" - }, - "leaseTransitions": { - "description": "leaseTransitions is the number of transitions of a lease between holders.", - "format": "int32", - "type": "integer" - }, - "renewTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "renewTime is a time when the current holder of a lease has last updated the lease." - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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).", - "format": "int32", - "type": "integer" - }, - "readOnly": { - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "boolean" - }, - "volumeID": { - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Affinity": { - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity", - "description": "Describes node affinity scheduling rules for the pod." - }, - "podAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity", - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." - }, - "podAntiAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity", - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.AttachedVolume": { - "description": "AttachedVolume describes a volume attached to a node", - "properties": { - "devicePath": { - "description": "DevicePath represents the device path where the volume should be available", - "type": "string" - }, - "name": { - "description": "Name of the attached volume", - "type": "string" - } - }, - "required": [ - "name", - "devicePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureDiskVolumeSource": { - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "properties": { - "cachingMode": { - "description": "Host Caching mode: None, Read Only, Read Write.", - "type": "string" - }, - "diskName": { - "description": "The Name of the data disk in the blob storage", - "type": "string" - }, - "diskURI": { - "description": "The URI the data disk in the blob storage", - "type": "string" - }, - "fsType": { - "description": "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": "Expected values 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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - } - }, - "required": [ - "diskName", - "diskURI" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "secretNamespace": { - "description": "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - }, - "required": [ - "secretName", - "shareName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureFileVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - }, - "required": [ - "secretName", - "shareName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Binding": { - "description": "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The target object that you want to bind to the standard object." - } - }, - "required": [ - "target" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Binding", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.CSIPersistentVolumeSource": { - "description": "Represents storage that is managed by an external CSI volume driver (Beta feature)", - "properties": { - "controllerExpandSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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 is an alpha field and requires enabling ExpandCSIVolumes feature gate. 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." - }, - "controllerPublishSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "driver": { - "description": "Driver is the name of the driver to use for this volume. Required.", - "type": "string" - }, - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".", - "type": "string" - }, - "nodePublishSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "nodeStageSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "readOnly": { - "description": "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "Attributes of the volume to publish.", - "type": "object" - }, - "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" - } - }, - "required": [ - "driver", - "volumeHandle" - ], - "type": "object" - }, - "io.k8s.api.core.v1.CSIVolumeSource": { - "description": "Represents a source location of a volume to mount, managed by an external CSI 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": "Filesystem type 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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "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." - }, - "readOnly": { - "description": "Specifies a read-only configuration for the volume. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - "type": "object" - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Capabilities": { - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "description": "Added capabilities", - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "description": "Removed capabilities", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "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" - }, - "user": { - "description": "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" - } - }, - "required": [ - "monitors" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "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" - }, - "user": { - "description": "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" - } - }, - "required": [ - "monitors" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ClientIPConfig": { - "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", - "properties": { - "timeoutSeconds": { - "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ComponentCondition": { - "description": "Information about the condition of a component.", - "properties": { - "error": { - "description": "Condition error code for a component. For example, a health check error code.", - "type": "string" - }, - "message": { - "description": "Message about the condition for a component. For example, information about a health check.", - "type": "string" - }, - "status": { - "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".", - "type": "string" - }, - "type": { - "description": "Type of condition for a component. Valid value: \"Healthy\"", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ComponentStatus": { - "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info.", - "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" - }, - "conditions": { - "description": "List of component conditions observed", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ComponentStatusList": { - "description": "Status of all the conditions for the component as a list of ComponentStatus objects.", - "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" - }, - "items": { - "description": "List of ComponentStatus objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatusList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMap": { - "description": "ConfigMap holds configuration data for pods to consume.", - "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" - }, - "binaryData": { - "additionalProperties": { - "format": "byte", - "type": "string" - }, - "description": "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.", - "type": "object" - }, - "data": { - "additionalProperties": { - "type": "string" - }, - "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.", - "type": "object" - }, - "immutable": { - "description": "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is an alpha field enabled by ImmutableEphemeralVolumes feature gate.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapEnvSource": { - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "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 must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ConfigMapKeySelector": { - "description": "Selects a key from a ConfigMap.", - "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" - } - }, - "required": [ - "key" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ConfigMapList": { - "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", - "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" - }, - "items": { - "description": "Items is the list of ConfigMaps.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMapList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapNodeConfigSource": { - "description": "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.", - "properties": { - "kubeletConfigKey": { - "description": "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.", - "type": "string" - }, - "name": { - "description": "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "resourceVersion": { - "description": "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - }, - "uid": { - "description": "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - } - }, - "required": [ - "namespace", - "name", - "kubeletConfigKey" - ], - "type": "object" - }, - "io.k8s.api.core.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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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 keys must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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 keys must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Container": { - "description": "A single application container that you want to run within a pod.", - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - }, - "type": "array" - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." - }, - "livenessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "name": { - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", - "type": "string" - }, - "ports": { - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "containerPort", - "protocol" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "containerPort", - "x-kubernetes-patch-strategy": "merge" - }, - "readinessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "startupProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeDevices": { - "description": "volumeDevices is the list of block devices to be used by the container.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerImage": { - "description": "Describe a container image", - "properties": { - "names": { - "description": "Names by which this image is known. e.g. [\"k8s.gcr.io/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]", - "items": { - "type": "string" - }, - "type": "array" - }, - "sizeBytes": { - "description": "The size of the image in bytes.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "names" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerPort": { - "description": "ContainerPort represents a network port in a single container.", - "properties": { - "containerPort": { - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536.", - "format": "int32", - "type": "integer" - }, - "hostIP": { - "description": "What host IP to bind the external port to.", - "type": "string" - }, - "hostPort": { - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", - "format": "int32", - "type": "integer" - }, - "name": { - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", - "type": "string" - }, - "protocol": { - "description": "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".", - "type": "string" - } - }, - "required": [ - "containerPort" - ], - "type": "object" - }, - "io.k8s.api.core.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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning", - "description": "Details about a running container" - }, - "terminated": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated", - "description": "Details about a terminated container" - }, - "waiting": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting", - "description": "Details about a waiting container" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStateRunning": { - "description": "ContainerStateRunning is a running state of a container.", - "properties": { - "startedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which the container was last (re-)started" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStateTerminated": { - "description": "ContainerStateTerminated is a terminated state of a container.", - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'", - "type": "string" - }, - "exitCode": { - "description": "Exit status from the last termination of the container", - "format": "int32", - "type": "integer" - }, - "finishedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which the container last terminated" - }, - "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", - "format": "int32", - "type": "integer" - }, - "startedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which previous execution of the container started" - } - }, - "required": [ - "exitCode" - ], - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStatus": { - "description": "ContainerStatus contains details for the current status of this container.", - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'.", - "type": "string" - }, - "image": { - "description": "The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images", - "type": "string" - }, - "imageID": { - "description": "ImageID of the container's image.", - "type": "string" - }, - "lastState": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", - "description": "Details about the container's last termination condition." - }, - "name": { - "description": "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.", - "type": "string" - }, - "ready": { - "description": "Specifies whether the container has passed its readiness probe.", - "type": "boolean" - }, - "restartCount": { - "description": "The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.", - "format": "int32", - "type": "integer" - }, - "started": { - "description": "Specifies whether the container has 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. Is always true when no startupProbe is defined.", - "type": "boolean" - }, - "state": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", - "description": "Details about the container's current condition." - } - }, - "required": [ - "name", - "ready", - "restartCount", - "image", - "imageID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.DaemonEndpoint": { - "description": "DaemonEndpoint contains information about a single Daemon endpoint.", - "properties": { - "Port": { - "description": "Port number of the given endpoint.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "Port" - ], - "type": "object" - }, - "io.k8s.api.core.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", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.DownwardAPIVolumeFile": { - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "properties": { - "fieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." - }, - "mode": { - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.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 value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "Items is a list of downward API volume file", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EmptyDirVolumeSource": { - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "description": "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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "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: http://kubernetes.io/docs/user-guide/volumes#emptydir" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EndpointAddress": { - "description": "EndpointAddress is a tuple that describes single IP address.", - "properties": { - "hostname": { - "description": "The Hostname of this endpoint", - "type": "string" - }, - "ip": { - "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.", - "type": "string" - }, - "nodeName": { - "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.", - "type": "string" - }, - "targetRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Reference to object providing the endpoint." - } - }, - "required": [ - "ip" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EndpointPort": { - "description": "EndpointPort is a tuple that describes a single port.", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. Field can be enabled with ServiceAppProtocol feature gate.", - "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.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - "type": "string" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EndpointSubset": { - "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309 ]", - "properties": { - "addresses": { - "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - }, - "type": "array" - }, - "notReadyAddresses": { - "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - }, - "type": "array" - }, - "ports": { - "description": "Port numbers available on the related IP addresses.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Endpoints": { - "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "subsets": { - "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EndpointsList": { - "description": "EndpointsList is a list of endpoints.", - "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" - }, - "items": { - "description": "List of endpoints.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EndpointsList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EnvFromSource": { - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "configMapRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource", - "description": "The ConfigMap to select from" - }, - "prefix": { - "description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - "type": "string" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource", - "description": "The Secret to select from" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EnvVar": { - "description": "EnvVar represents an environment variable present in a Container.", - "properties": { - "name": { - "description": "Name of the environment variable. Must be a C_IDENTIFIER.", - "type": "string" - }, - "value": { - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", - "type": "string" - }, - "valueFrom": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource", - "description": "Source for the environment variable's value. Cannot be used if value is not empty." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EnvVarSource": { - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "configMapKeyRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector", - "description": "Selects a key of a ConfigMap." - }, - "fieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", - "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." - }, - "resourceFieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", - "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." - }, - "secretKeyRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector", - "description": "Selects a key of a secret in the pod's namespace" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EphemeralContainer": { - "description": "An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag.", - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - }, - "type": "array" - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", - "description": "Lifecycle is not allowed for ephemeral containers." - }, - "livenessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "name": { - "description": "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.", - "type": "string" - }, - "ports": { - "description": "Ports are not allowed for ephemeral containers.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "type": "array" - }, - "readinessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", - "description": "SecurityContext is not allowed for ephemeral containers." - }, - "startupProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "targetContainerName": { - "description": "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container is run in whatever namespaces are shared for the pod. Note that the container runtime must support this feature.", - "type": "string" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeDevices": { - "description": "volumeDevices is the list of block devices to be used by the container.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Event": { - "description": "Event is a report of an event somewhere in the cluster.", - "properties": { - "action": { - "description": "What action was taken/failed regarding to the Regarding object.", - "type": "string" - }, - "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" - }, - "count": { - "description": "The number of times this event has occurred.", - "format": "int32", - "type": "integer" - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time when this Event was first observed." - }, - "firstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)" - }, - "involvedObject": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The object that this event is about." - }, - "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" - }, - "lastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The time at which the most recent occurrence of this event was recorded." - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "reason": { - "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", - "type": "string" - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Optional secondary object for more complex actions." - }, - "reportingComponent": { - "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", - "type": "string" - }, - "reportingInstance": { - "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSeries", - "description": "Data about the Event series this event represents or nil if it's a singleton Event." - }, - "source": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "The component reporting this event. Should be a short machine understandable string." - }, - "type": { - "description": "Type of this event (Normal, Warning), new types could be added in the future", - "type": "string" - } - }, - "required": [ - "metadata", - "involvedObject" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Event", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventList": { - "description": "EventList is a list of events.", - "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" - }, - "items": { - "description": "List of events", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EventList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "properties": { - "count": { - "description": "Number of occurrences in this series up to the last heartbeat time", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time of the last occurrence observed" - }, - "state": { - "description": "State of this Series: Ongoing or Finished Deprecated. Planned removal for 1.18", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EventSource": { - "description": "EventSource contains information for an event.", - "properties": { - "component": { - "description": "Component from which the event is generated.", - "type": "string" - }, - "host": { - "description": "Node name on which the event is generated.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "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": "Optional: FC target lun number", - "format": "int32", - "type": "integer" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "targetWWNs": { - "description": "Optional: FC target worldwide names (WWNs)", - "items": { - "type": "string" - }, - "type": "array" - }, - "wwids": { - "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.FlexPersistentVolumeSource": { - "description": "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.", - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional: Extra command options if any.", - "type": "object" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "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." - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.v1.FlexVolumeSource": { - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional: Extra command options if any.", - "type": "object" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "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." - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.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": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated", - "type": "string" - }, - "datasetUUID": { - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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", - "format": "int32", - "type": "integer" - }, - "pdName": { - "description": "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" - } - }, - "required": [ - "pdName" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "directory": { - "description": "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 URL", - "type": "string" - }, - "revision": { - "description": "Commit hash for the specified revision.", - "type": "string" - } - }, - "required": [ - "repository" - ], - "type": "object" - }, - "io.k8s.api.core.v1.GlusterfsPersistentVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "properties": { - "endpoints": { - "description": "EndpointsName 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" - } - }, - "required": [ - "endpoints", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.GlusterfsVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "properties": { - "endpoints": { - "description": "EndpointsName 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" - } - }, - "required": [ - "endpoints", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.HTTPGetAction": { - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" - }, - "type": "array" - }, - "path": { - "description": "Path to access on the HTTP server.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "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." - }, - "scheme": { - "description": "Scheme to use for connecting to the host. Defaults to HTTP.", - "type": "string" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.HTTPHeader": { - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "properties": { - "name": { - "description": "The header field name", - "type": "string" - }, - "value": { - "description": "The header field value", - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Handler": { - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.HostAlias": { - "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", - "properties": { - "hostnames": { - "description": "Hostnames for the above IP address.", - "items": { - "type": "string" - }, - "type": "array" - }, - "ip": { - "description": "IP address of the host file entry.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.HostPathVolumeSource": { - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "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": "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": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "format": "int32", - "type": "integer" - }, - "portals": { - "description": "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).", - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "CHAP Secret for iSCSI target and initiator authentication" - }, - "targetPortal": { - "description": "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" - } - }, - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "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": "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": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "format": "int32", - "type": "integer" - }, - "portals": { - "description": "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).", - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "CHAP Secret for iSCSI target and initiator authentication" - }, - "targetPortal": { - "description": "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" - } - }, - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "type": "object" - }, - "io.k8s.api.core.v1.KeyToPath": { - "description": "Maps a string key to a path within a volume.", - "properties": { - "key": { - "description": "The key to project.", - "type": "string" - }, - "mode": { - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "path": { - "description": "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" - } - }, - "required": [ - "key", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Lifecycle": { - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "$ref": "#/definitions/io.k8s.api.core.v1.Handler", - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - }, - "preStop": { - "$ref": "#/definitions/io.k8s.api.core.v1.Handler", - "description": "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LimitRange": { - "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec", - "description": "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeItem": { - "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", - "properties": { - "default": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Default resource requirement limit value by resource name if resource limit is omitted.", - "type": "object" - }, - "defaultRequest": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.", - "type": "object" - }, - "max": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Max usage constraints on this kind by resource name.", - "type": "object" - }, - "maxLimitRequestRatio": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.", - "type": "object" - }, - "min": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Min usage constraints on this kind by resource name.", - "type": "object" - }, - "type": { - "description": "Type of resource that this limit applies to.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.core.v1.LimitRangeList": { - "description": "LimitRangeList is a list of LimitRange items.", - "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" - }, - "items": { - "description": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRangeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeSpec": { - "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", - "properties": { - "limits": { - "description": "Limits is the list of LimitRangeItem objects that are enforced.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" - }, - "type": "array" - } - }, - "required": [ - "limits" - ], - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerIngress": { - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "hostname": { - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", - "type": "string" - }, - "ip": { - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerStatus": { - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LocalVolumeSource": { - "description": "Local represents directly-attached storage with node affinity (Beta feature)", - "properties": { - "fsType": { - "description": "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 fileystem if unspecified.", - "type": "string" - }, - "path": { - "description": "The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).", - "type": "string" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NFSVolumeSource": { - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "server", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Namespace": { - "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec", - "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus", - "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Namespace", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceCondition": { - "description": "NamespaceCondition contains details about state of namespace.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of namespace controller condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NamespaceList": { - "description": "NamespaceList is a list of Namespaces.", - "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" - }, - "items": { - "description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NamespaceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceSpec": { - "description": "NamespaceSpec describes the attributes on a Namespace.", - "properties": { - "finalizers": { - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NamespaceStatus": { - "description": "NamespaceStatus is information about the current status of a Namespace.", - "properties": { - "conditions": { - "description": "Represents the latest available observations of a namespace's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "phase": { - "description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Node": { - "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec", - "description": "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus", - "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Node", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeAddress": { - "description": "NodeAddress contains information for the node's address.", - "properties": { - "address": { - "description": "The node address.", - "type": "string" - }, - "type": { - "description": "Node address type, one of Hostname, ExternalIP or InternalIP.", - "type": "string" - } - }, - "required": [ - "type", - "address" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeAffinity": { - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeCondition": { - "description": "NodeCondition contains condition information for a node.", - "properties": { - "lastHeartbeatTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we got an update on a given condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transit from one status to another." - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of node condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeConfigSource": { - "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", - "properties": { - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource", - "description": "ConfigMap is a reference to a Node's ConfigMap" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeConfigStatus": { - "description": "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.", - "properties": { - "active": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error." - }, - "assigned": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned." - }, - "error": { - "description": "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.", - "type": "string" - }, - "lastKnownGood": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeDaemonEndpoints": { - "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", - "properties": { - "kubeletEndpoint": { - "$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint", - "description": "Endpoint on which Kubelet is listening." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeList": { - "description": "NodeList is the whole list of all Nodes which have been registered with master.", - "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" - }, - "items": { - "description": "List of nodes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NodeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeSelector": { - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "properties": { - "nodeSelectorTerms": { - "description": "Required. A list of node selector terms. The terms are ORed.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" - }, - "type": "array" - } - }, - "required": [ - "nodeSelectorTerms" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeSelectorRequirement": { - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "operator": { - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - "type": "string" - }, - "values": { - "description": "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "operator" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeSelectorTerm": { - "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.", - "properties": { - "matchExpressions": { - "description": "A list of node selector requirements by node's labels.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - }, - "type": "array" - }, - "matchFields": { - "description": "A list of node selector requirements by node's fields.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeSpec": { - "description": "NodeSpec describes the attributes that a node is created with.", - "properties": { - "configSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field" - }, - "externalID": { - "description": "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966", - "type": "string" - }, - "podCIDR": { - "description": "PodCIDR represents the pod IP range assigned to the node.", - "type": "string" - }, - "podCIDRs": { - "description": "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-patch-strategy": "merge" - }, - "providerID": { - "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e", - "type": "string" - }, - "taints": { - "description": "If specified, the node's taints.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Taint" - }, - "type": "array" - }, - "unschedulable": { - "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeStatus": { - "description": "NodeStatus is information about the current status of a node.", - "properties": { - "addresses": { - "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See http://pr.k8s.io/79391 for an example.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "allocatable": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.", - "type": "object" - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object" - }, - "conditions": { - "description": "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "config": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigStatus", - "description": "Status of the config assigned to the node via the dynamic Kubelet config feature." - }, - "daemonEndpoints": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints", - "description": "Endpoints of daemons running on the Node." - }, - "images": { - "description": "List of container images on this node", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" - }, - "type": "array" - }, - "nodeInfo": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo", - "description": "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info" - }, - "phase": { - "description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", - "type": "string" - }, - "volumesAttached": { - "description": "List of volumes that are attached to the node.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume" - }, - "type": "array" - }, - "volumesInUse": { - "description": "List of attachable volumes in use (mounted) by the node.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeSystemInfo": { - "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", - "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. docker://1.5.0).", - "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/getting-system-uuid.html", - "type": "string" - } - }, - "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion", - "operatingSystem", - "architecture" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ObjectFieldSelector": { - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "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" - } - }, - "required": [ - "fieldPath" - ], - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolume": { - "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus", - "description": "Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaim": { - "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", - "description": "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus", - "description": "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { - "description": "PersistentVolumeClaimCondition contails details about state of pvc", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized.", - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimList": { - "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", - "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" - }, - "items": { - "description": "A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaimList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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", - "items": { - "type": "string" - }, - "type": "array" - }, - "dataSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot - Beta) * An existing PVC (PersistentVolumeClaim) * An existing custom resource/object that implements data population (Alpha) In order to use VolumeSnapshot object types, the appropriate feature gate must be enabled (VolumeSnapshotDataSource or AnyVolumeDataSource) 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. If the specified data source is not supported, the volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change." - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over volumes to consider for binding." - }, - "storageClassName": { - "description": "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { - "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", - "properties": { - "accessModes": { - "description": "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - "items": { - "type": "string" - }, - "type": "array" - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Represents the actual resources of the underlying volume.", - "type": "object" - }, - "conditions": { - "description": "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "phase": { - "description": "Phase represents the current phase of PersistentVolumeClaim.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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).", - "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": "Will force the ReadOnly setting in VolumeMounts. Default false.", - "type": "boolean" - } - }, - "required": [ - "claimName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeList": { - "description": "PersistentVolumeList is a list of PersistentVolume items.", - "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" - }, - "items": { - "description": "List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeSpec": { - "description": "PersistentVolumeSpec is the specification of a persistent volume.", - "properties": { - "accessModes": { - "description": "AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", - "items": { - "type": "string" - }, - "type": "array" - }, - "awsElasticBlockStore": { - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", - "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" - }, - "azureDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "azureFile": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object" - }, - "cephfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "cinder": { - "$ref": "#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" - }, - "claimRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding" - }, - "csi": { - "$ref": "#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource", - "description": "CSI represents storage that is handled by an external CSI driver (Beta feature)." - }, - "fc": { - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flexVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." - }, - "flocker": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", - "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" - }, - "gcePersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", - "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" - }, - "glusterfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource", - "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" - }, - "hostPath": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", - "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" - }, - "iscsi": { - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource", - "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." - }, - "local": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalVolumeSource", - "description": "Local represents directly-attached storage with node affinity" - }, - "mountOptions": { - "description": "A list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", - "items": { - "type": "string" - }, - "type": "array" - }, - "nfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" - }, - "nodeAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity", - "description": "NodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume." - }, - "persistentVolumeReclaimPolicy": { - "description": "What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", - "type": "string" - }, - "photonPersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "rbd": { - "$ref": "#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource", - "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" - }, - "scaleIO": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "storageClassName": { - "description": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", - "type": "string" - }, - "storageos": { - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource", - "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" - }, - "volumeMode": { - "description": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.", - "type": "string" - }, - "vsphereVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeStatus": { - "description": "PersistentVolumeStatus is the current status of a persistent volume.", - "properties": { - "message": { - "description": "A human-readable message indicating details about why the volume is in this state.", - "type": "string" - }, - "phase": { - "description": "Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase", - "type": "string" - }, - "reason": { - "description": "Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { - "description": "Represents a Photon Controller persistent disk resource.", - "properties": { - "fsType": { - "description": "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": "ID that identifies Photon Controller persistent disk", - "type": "string" - } - }, - "required": [ - "pdID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Pod": { - "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodStatus", - "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Pod", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodAffinity": { - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodAffinityTerm": { - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over a set of resources, in this case pods." - }, - "namespaces": { - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - "type": "string" - } - }, - "required": [ - "topologyKey" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodAntiAffinity": { - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodCondition": { - "description": "PodCondition contains details for the current condition of this pod.", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodDNSConfig": { - "description": "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.", - "properties": { - "nameservers": { - "description": "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "options": { - "description": "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfigOption" - }, - "type": "array" - }, - "searches": { - "description": "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodDNSConfigOption": { - "description": "PodDNSConfigOption defines DNS resolver options of a pod.", - "properties": { - "name": { - "description": "Required.", - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodIP": { - "description": "IP address information for entries in the (plural) PodIPs field. Each entry includes:\n IP: An IP address allocated to the pod. Routable at least within the cluster.", - "properties": { - "ip": { - "description": "ip is an IP address (IPv4 or IPv6) assigned to the pod", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodList": { - "description": "PodList is a list of Pods.", - "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" - }, - "items": { - "description": "List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodReadinessGate": { - "description": "PodReadinessGate contains the reference to a pod condition", - "properties": { - "conditionType": { - "description": "ConditionType refers to a condition in the pod's condition list with matching type.", - "type": "string" - } - }, - "required": [ - "conditionType" - ], - "type": "object" - }, - "io.k8s.api.core.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----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.", - "format": "int64", - "type": "integer" - }, - "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 defaults to \"Always\".", - "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.", - "format": "int64", - "type": "integer" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "supplementalGroups": { - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", - "items": { - "format": "int64", - "type": "integer" - }, - "type": "array" - }, - "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Sysctl" - }, - "type": "array" - }, - "windowsOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodSpec": { - "description": "PodSpec is a description of a pod.", - "properties": { - "activeDeadlineSeconds": { - "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", - "format": "int64", - "type": "integer" - }, - "affinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.Affinity", - "description": "If specified, the pod's scheduling constraints" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", - "type": "boolean" - }, - "containers": { - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "dnsConfig": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig", - "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy." - }, - "dnsPolicy": { - "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", - "type": "string" - }, - "enableServiceLinks": { - "description": "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.", - "type": "boolean" - }, - "ephemeralContainers": { - "description": "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralContainer" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "hostAliases": { - "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "hostIPC": { - "description": "Use the host's ipc namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostNetwork": { - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.", - "type": "boolean" - }, - "hostPID": { - "description": "Use the host's pid namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostname": { - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", - "type": "string" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "initContainers": { - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "nodeName": { - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.", - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", - "type": "object" - }, - "overhead": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.", - "type": "object" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.", - "type": "string" - }, - "priority": { - "description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", - "format": "int32", - "type": "integer" - }, - "priorityClassName": { - "description": "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", - "type": "string" - }, - "readinessGates": { - "description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodReadinessGate" - }, - "type": "array" - }, - "restartPolicy": { - "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", - "type": "string" - }, - "runtimeClassName": { - "description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.", - "type": "string" - }, - "schedulerName": { - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", - "type": "string" - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext", - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." - }, - "serviceAccount": { - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", - "type": "string" - }, - "serviceAccountName": { - "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "type": "string" - }, - "shareProcessNamespace": { - "description": "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.", - "type": "boolean" - }, - "subdomain": { - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all.", - "type": "string" - }, - "terminationGracePeriodSeconds": { - "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. 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. Defaults to 30 seconds.", - "format": "int64", - "type": "integer" - }, - "tolerations": { - "description": "If specified, the pod's tolerations.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - }, - "type": "array" - }, - "topologySpreadConstraints": { - "description": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. This field is only honored by clusters that enable the EvenPodsSpread feature. All topologySpreadConstraints are ANDed.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "topologyKey", - "whenUnsatisfiable" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "topologyKey", - "x-kubernetes-patch-strategy": "merge" - }, - "volumes": { - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Volume" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge,retainKeys" - } - }, - "required": [ - "containers" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodStatus": { - "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.", - "properties": { - "conditions": { - "description": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "containerStatuses": { - "description": "The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "ephemeralContainerStatuses": { - "description": "Status for any ephemeral containers that have run in this pod. This field is alpha-level and is only populated by servers that enable the EphemeralContainers feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "hostIP": { - "description": "IP address of the host to which the pod is assigned. Empty if not yet scheduled.", - "type": "string" - }, - "initContainerStatuses": { - "description": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "message": { - "description": "A human readable message indicating details about why the pod is in this condition.", - "type": "string" - }, - "nominatedNodeName": { - "description": "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.", - "type": "string" - }, - "phase": { - "description": "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", - "type": "string" - }, - "podIP": { - "description": "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", - "type": "string" - }, - "podIPs": { - "description": "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodIP" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "qosClass": { - "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md", - "type": "string" - }, - "reason": { - "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", - "type": "string" - }, - "startTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodTemplate": { - "description": "PodTemplate describes a template for creating copies of a predefined pod.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateList": { - "description": "PodTemplateList is a list of PodTemplates.", - "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" - }, - "items": { - "description": "List of pod templates", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplateList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateSpec": { - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PortworxVolumeSource": { - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "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": "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" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PreferredSchedulingTerm": { - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "properties": { - "preference": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm", - "description": "A node selector term, associated with the corresponding weight." - }, - "weight": { - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "weight", - "preference" - ], - "type": "object" - }, - "io.k8s.api.core.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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "failureThreshold": { - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - "format": "int32", - "type": "integer" - }, - "httpGet": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "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", - "format": "int32", - "type": "integer" - }, - "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - "format": "int32", - "type": "integer" - }, - "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.", - "format": "int32", - "type": "integer" - }, - "tcpSocket": { - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - }, - "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", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ProjectedVolumeSource": { - "description": "Represents a projected volume source", - "properties": { - "defaultMode": { - "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "sources": { - "description": "list of volume projections", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" - }, - "type": "array" - } - }, - "required": [ - "sources" - ], - "type": "object" - }, - "io.k8s.api.core.v1.QuobyteVolumeSource": { - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "registry", - "volume" - ], - "type": "object" - }, - "io.k8s.api.core.v1.RBDPersistentVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - }, - "required": [ - "monitors", - "image" - ], - "type": "object" - }, - "io.k8s.api.core.v1.RBDVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "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" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - }, - "required": [ - "monitors", - "image" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationController": { - "description": "ReplicationController represents the configuration of a replication controller.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec", - "description": "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus", - "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerCondition": { - "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replication controller condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationControllerList": { - "description": "ReplicationControllerList is a collection of replication controllers.", - "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" - }, - "items": { - "description": "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationControllerList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerSpec": { - "description": "ReplicationControllerSpec is the specification of a replication controller.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "description": "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "type": "object" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationControllerStatus": { - "description": "ReplicationControllerStatus represents the current status of a replication controller.", - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a replication controller's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replication controller.", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed replication controller.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replication controller.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ResourceFieldSelector": { - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "properties": { - "containerName": { - "description": "Container name: required for volumes, optional for env vars", - "type": "string" - }, - "divisor": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "Specifies the output format of the exposed resources, defaults to \"1\"" - }, - "resource": { - "description": "Required: resource to select", - "type": "string" - } - }, - "required": [ - "resource" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ResourceQuota": { - "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec", - "description": "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus", - "description": "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaList": { - "description": "ResourceQuotaList is a list of ResourceQuota items.", - "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" - }, - "items": { - "description": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuotaList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaSpec": { - "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - "properties": { - "hard": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object" - }, - "scopeSelector": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScopeSelector", - "description": "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched." - }, - "scopes": { - "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ResourceQuotaStatus": { - "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", - "properties": { - "hard": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object" - }, - "used": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Used is the current observed total usage of the resource in the namespace.", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ResourceRequirements": { - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object" - }, - "requests": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { - "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", - "properties": { - "fsType": { - "description": "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": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - }, - "required": [ - "gateway", - "system", - "secretRef" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ScaleIOVolumeSource": { - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "properties": { - "fsType": { - "description": "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": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - }, - "required": [ - "gateway", - "system", - "secretRef" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ScopeSelector": { - "description": "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.", - "properties": { - "matchExpressions": { - "description": "A list of scope selector requirements by scope of the resources.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ScopedResourceSelectorRequirement": { - "description": "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.", - "properties": { - "operator": { - "description": "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.", - "type": "string" - }, - "scopeName": { - "description": "The name of the scope that the selector applies to.", - "type": "string" - }, - "values": { - "description": "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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "scopeName", - "operator" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Secret": { - "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", - "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" - }, - "data": { - "additionalProperties": { - "format": "byte", - "type": "string" - }, - "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", - "type": "object" - }, - "immutable": { - "description": "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is an alpha field enabled by ImmutableEphemeralVolumes feature gate.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "stringData": { - "additionalProperties": { - "type": "string" - }, - "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.", - "type": "object" - }, - "type": { - "description": "Used to facilitate programmatic handling of secret data.", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Secret", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.SecretEnvSource": { - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "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 must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SecretKeySelector": { - "description": "SecretKeySelector selects a key of a Secret.", - "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" - } - }, - "required": [ - "key" - ], - "type": "object" - }, - "io.k8s.api.core.v1.SecretList": { - "description": "SecretList is a list of Secret.", - "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" - }, - "items": { - "description": "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "SecretList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. 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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "optional": { - "description": "Specify whether the Secret or its keys must be defined", - "type": "boolean" - }, - "secretName": { - "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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", - "type": "boolean" - }, - "capabilities": { - "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities", - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." - }, - "privileged": { - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", - "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.", - "type": "string" - }, - "readOnlyRootFilesystem": { - "description": "Whether this container has a read-only root filesystem. Default is false.", - "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.", - "format": "int64", - "type": "integer" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "windowsOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Service": { - "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec", - "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus", - "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Service", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccount": { - "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", - "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" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.", - "type": "boolean" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "secrets": { - "description": "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccountList": { - "description": "ServiceAccountList is a list of ServiceAccount objects", - "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" - }, - "items": { - "description": "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccountList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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).", - "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.", - "format": "int64", - "type": "integer" - }, - "path": { - "description": "Path is the path relative to the mount point of the file to project the token into.", - "type": "string" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ServiceList": { - "description": "ServiceList holds a list of services.", - "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" - }, - "items": { - "description": "List of services", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServicePort": { - "description": "ServicePort contains information on service's port.", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. Field can be enabled with ServiceAppProtocol feature gate.", - "type": "string" - }, - "name": { - "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.", - "type": "string" - }, - "nodePort": { - "description": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", - "format": "int32", - "type": "integer" - }, - "port": { - "description": "The port that will be exposed by this service.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.", - "type": "string" - }, - "targetPort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ServiceSpec": { - "description": "ServiceSpec describes the attributes that a user creates on a service.", - "properties": { - "clusterIP": { - "description": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "externalIPs": { - "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", - "items": { - "type": "string" - }, - "type": "array" - }, - "externalName": { - "description": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.", - "type": "string" - }, - "externalTrafficPolicy": { - "description": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", - "type": "string" - }, - "healthCheckNodePort": { - "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.", - "format": "int32", - "type": "integer" - }, - "ipFamily": { - "description": "ipFamily specifies whether this Service has a preference for a particular IP family (e.g. IPv4 vs. IPv6). If a specific IP family is requested, the clusterIP field will be allocated from that family, if it is available in the cluster. If no IP family is requested, the cluster's primary IP family will be used. Other IP fields (loadBalancerIP, loadBalancerSourceRanges, externalIPs) and controllers which allocate external load-balancers should use the same IP family. Endpoints for this Service will be of this family. This field is immutable after creation. Assigning a ServiceIPFamily not available in the cluster (e.g. IPv6 in IPv4 only cluster) is an error condition and will fail during clusterIP assignment.", - "type": "string" - }, - "loadBalancerIP": { - "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.", - "type": "string" - }, - "loadBalancerSourceRanges": { - "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/", - "items": { - "type": "string" - }, - "type": "array" - }, - "ports": { - "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "port", - "protocol" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "port", - "x-kubernetes-patch-strategy": "merge" - }, - "publishNotReadyAddresses": { - "description": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery.", - "type": "boolean" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", - "type": "object" - }, - "sessionAffinity": { - "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "sessionAffinityConfig": { - "$ref": "#/definitions/io.k8s.api.core.v1.SessionAffinityConfig", - "description": "sessionAffinityConfig contains the configurations of session affinity." - }, - "topologyKeys": { - "description": "topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value \"*\" may be used to mean \"any topology\". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied.", - "items": { - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ServiceStatus": { - "description": "ServiceStatus represents the current status of a service.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer, if one is present." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SessionAffinityConfig": { - "description": "SessionAffinityConfig represents the configurations of session affinity.", - "properties": { - "clientIP": { - "$ref": "#/definitions/io.k8s.api.core.v1.ClientIPConfig", - "description": "clientIP contains the configurations of Client IP based session affinity." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.StorageOSVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Sysctl": { - "description": "Sysctl defines a kernel parameter to be set", - "properties": { - "name": { - "description": "Name of a property to set", - "type": "string" - }, - "value": { - "description": "Value of a property to set", - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TCPSocketAction": { - "description": "TCPSocketAction describes an action based on opening a socket", - "properties": { - "host": { - "description": "Optional: Host name to connect to, defaults to the pod IP.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "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." - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Taint": { - "description": "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", - "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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints." - }, - "value": { - "description": "The taint value corresponding to the taint key.", - "type": "string" - } - }, - "required": [ - "key", - "effect" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Toleration": { - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "effect": { - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - "type": "string" - }, - "key": { - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - "type": "string" - }, - "operator": { - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - "type": "string" - }, - "tolerationSeconds": { - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - "format": "int64", - "type": "integer" - }, - "value": { - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.TopologySelectorLabelRequirement": { - "description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.", - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "values": { - "description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "values" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TopologySelectorTerm": { - "description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.", - "properties": { - "matchLabelExpressions": { - "description": "A list of topology selector requirements by labels.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.TopologySpreadConstraint": { - "description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology.", - "properties": { - "labelSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain." - }, - "maxSkew": { - "description": "MaxSkew describes the degree to which pods may be unevenly distributed. It's the maximum permitted difference between the number of matching pods in any two topology domains of a given topology type. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. It's a required field. Default value is 1 and 0 is not allowed.", - "format": "int32", - "type": "integer" - }, - "topologyKey": { - "description": "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each \u003ckey, value\u003e as a \"bucket\", and try to put balanced number of pods into each bucket. It's a required field.", - "type": "string" - }, - "whenUnsatisfiable": { - "description": "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it - ScheduleAnyway tells the scheduler to still schedule it It's considered as \"Unsatisfiable\" if and only if placing incoming pod on any topology violates \"MaxSkew\". For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - "type": "string" - } - }, - "required": [ - "maxSkew", - "topologyKey", - "whenUnsatisfiable" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TypedLocalObjectReference": { - "description": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Volume": { - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "properties": { - "awsElasticBlockStore": { - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", - "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" - }, - "azureDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "azureFile": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "cephfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "cinder": { - "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" - }, - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource", - "description": "ConfigMap represents a configMap that should populate this volume" - }, - "csi": { - "$ref": "#/definitions/io.k8s.api.core.v1.CSIVolumeSource", - "description": "CSI (Container Storage Interface) represents storage that is handled by an external CSI driver (Alpha feature)." - }, - "downwardAPI": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource", - "description": "DownwardAPI represents downward API about the pod that should populate this volume" - }, - "emptyDir": { - "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource", - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" - }, - "fc": { - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flexVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." - }, - "flocker": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" - }, - "gcePersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", - "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" - }, - "gitRepo": { - "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource", - "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." - }, - "glusterfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource", - "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" - }, - "hostPath": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", - "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" - }, - "iscsi": { - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource", - "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" - }, - "name": { - "description": "Volume's name. 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": { - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", - "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" - }, - "persistentVolumeClaim": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "photonPersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "projected": { - "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource", - "description": "Items for all in one resources secrets, configmaps, and downward API" - }, - "quobyte": { - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "rbd": { - "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource", - "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" - }, - "scaleIO": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "secret": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource", - "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" - }, - "storageos": { - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource", - "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." - }, - "vsphereVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeDevice": { - "description": "volumeDevice describes a mapping of a raw block device within a container.", - "properties": { - "devicePath": { - "description": "devicePath is the path inside of the container that the device will be mapped to.", - "type": "string" - }, - "name": { - "description": "name must match the name of a persistentVolumeClaim in the pod", - "type": "string" - } - }, - "required": [ - "name", - "devicePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeMount": { - "description": "VolumeMount describes a mounting of a Volume within a container.", - "properties": { - "mountPath": { - "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", - "type": "string" - }, - "mountPropagation": { - "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - "type": "string" - }, - "name": { - "description": "This must match the Name of a Volume.", - "type": "string" - }, - "readOnly": { - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - "type": "boolean" - }, - "subPath": { - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", - "type": "string" - }, - "subPathExpr": { - "description": "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.", - "type": "string" - } - }, - "required": [ - "name", - "mountPath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeNodeAffinity": { - "description": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", - "properties": { - "required": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", - "description": "Required specifies hard node constraints that must be met." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VolumeProjection": { - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection", - "description": "information about the configMap data to project" - }, - "downwardAPI": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection", - "description": "information about the downwardAPI data to project" - }, - "secret": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection", - "description": "information about the secret data to project" - }, - "serviceAccountToken": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection", - "description": "information about the serviceAccountToken data to project" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { - "description": "Represents a vSphere volume resource.", - "properties": { - "fsType": { - "description": "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": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - "type": "string" - }, - "storagePolicyName": { - "description": "Storage Policy Based Management (SPBM) profile name.", - "type": "string" - }, - "volumePath": { - "description": "Path that identifies vSphere volume vmdk", - "type": "string" - } - }, - "required": [ - "volumePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.WeightedPodAffinityTerm": { - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "properties": { - "podAffinityTerm": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm", - "description": "Required. A pod affinity term, associated with the corresponding weight." - }, - "weight": { - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "weight", - "podAffinityTerm" - ], - "type": "object" - }, - "io.k8s.api.core.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" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.Endpoint": { - "description": "Endpoint represents a single logical \"backend\" implementing a service.", - "properties": { - "addresses": { - "description": "addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "conditions": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointConditions", - "description": "conditions contains information about the current status of the endpoint." - }, - "hostname": { - "description": "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must pass DNS Label (RFC 1123) validation.", - "type": "string" - }, - "targetRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "targetRef is a reference to a Kubernetes object that represents this endpoint." - }, - "topology": { - "additionalProperties": { - "type": "string" - }, - "description": "topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\n where the endpoint is located. This should match the corresponding\n node label.\n* topology.kubernetes.io/zone: the value indicates the zone where the\n endpoint is located. This should match the corresponding node label.\n* topology.kubernetes.io/region: the value indicates the region where the\n endpoint is located. This should match the corresponding node label.", - "type": "object" - } - }, - "required": [ - "addresses" - ], - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointConditions": { - "description": "EndpointConditions represents the current condition of an endpoint.", - "properties": { - "ready": { - "description": "ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointPort": { - "description": "EndpointPort represents a Port used by an EndpointSlice", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.", - "type": "string" - }, - "name": { - "description": "The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", - "type": "string" - }, - "port": { - "description": "The port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointSlice": { - "description": "EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.", - "properties": { - "addressType": { - "description": "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.", - "type": "string" - }, - "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" - }, - "endpoints": { - "description": "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.Endpoint" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "ports": { - "description": "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \"all ports\". Each slice may include a maximum of 100 ports.", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointPort" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "required": [ - "addressType", - "endpoints" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.discovery.v1beta1.EndpointSliceList": { - "description": "EndpointSliceList represents a list of endpoint slices", - "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" - }, - "items": { - "description": "List of endpoint slices", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "discovery.k8s.io", - "kind": "EndpointSliceList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.Event": { - "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", - "properties": { - "action": { - "description": "What action was taken/failed regarding to the regarding object.", - "type": "string" - }, - "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" - }, - "deprecatedCount": { - "description": "Deprecated field assuring backward compatibility with core.v1 Event type", - "format": "int32", - "type": "integer" - }, - "deprecatedFirstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Deprecated field assuring backward compatibility with core.v1 Event type" - }, - "deprecatedLastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Deprecated field assuring backward compatibility with core.v1 Event type" - }, - "deprecatedSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "Deprecated field assuring backward compatibility with core.v1 Event type" - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Required. Time when this Event was first observed." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "note": { - "description": "Optional. A human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", - "type": "string" - }, - "reason": { - "description": "Why the action was taken.", - "type": "string" - }, - "regarding": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The object this Event is about. In most cases it's an Object reporting controller implements. E.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object." - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object." - }, - "reportingController": { - "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", - "type": "string" - }, - "reportingInstance": { - "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventSeries", - "description": "Data about the Event series this event represents or nil if it's a singleton Event." - }, - "type": { - "description": "Type of this event (Normal, Warning), new types could be added in the future.", - "type": "string" - } - }, - "required": [ - "eventTime" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventList": { - "description": "EventList is a list of Event objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "EventList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "properties": { - "count": { - "description": "Number of occurrences in this series up to the last heartbeat time", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time when last Event from the series was seen before last heartbeat." - }, - "state": { - "description": "Information whether this series is ongoing or finished. Deprecated. Planned removal for 1.18", - "type": "string" - } - }, - "required": [ - "count", - "lastObservedTime", - "state" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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. Defaults to ImplementationSpecific.", - "type": "string" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath" - }, - "type": "array" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." - }, - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Specifies the port of the referenced service." - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "IngressList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.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/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressRule" - }, - "type": "array" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "secretName": { - "description": "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL 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" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IPBlock": { - "description": "IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\",\"2001:db9::/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.", - "properties": { - "cidr": { - "description": "CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\"", - "type": "string" - }, - "except": { - "description": "Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\" Except values will be rejected if they are outside the CIDR range", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "cidr" - ], - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicy": { - "description": "NetworkPolicy describes what network traffic is allowed for a set of Pods", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec", - "description": "Specification of the desired behavior for this NetworkPolicy." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.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": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - }, - "type": "array" - }, - "to": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.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": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - }, - "type": "array" - }, - "ports": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicyList": { - "description": "NetworkPolicyList is a list of NetworkPolicy objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicyList", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.NetworkPolicyPeer": { - "description": "NetworkPolicyPeer describes a peer to allow traffic from. Only certain combinations of fields are allowed", - "properties": { - "ipBlock": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPBlock", - "description": "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be." - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "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." - }, - "podSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "This 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." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicyPort": { - "description": "NetworkPolicyPort describes a port to allow traffic on", - "properties": { - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "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." - }, - "protocol": { - "description": "The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicySpec": { - "description": "NetworkPolicySpec provides the specification of a NetworkPolicy", - "properties": { - "egress": { - "description": "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule" - }, - "type": "array" - }, - "ingress": { - "description": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule" - }, - "type": "array" - }, - "podSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace." - }, - "policyTypes": { - "description": "List of rule types that the NetworkPolicy relates to. Valid options are \"Ingress\", \"Egress\", or \"Ingress,Egress\". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "podSelector" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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. Defaults to ImplementationSpecific.", - "type": "string" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.HTTPIngressPath" - }, - "type": "array" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." - }, - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Specifies the port of the referenced service." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressClass": { - "description": "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassSpec", - "description": "Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressClassList": { - "description": "IngressClassList is a collection of IngressClasses.", - "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" - }, - "items": { - "description": "Items is the list of IngressClasses.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressClassSpec": { - "description": "IngressClassSpec provides information about the class of an Ingress.", - "properties": { - "controller": { - "description": "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", - "type": "string" - }, - "parameters": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.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/io.k8s.api.networking.v1beta1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressRule" - }, - "type": "array" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressTLS" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.node.v1beta1.Overhead": { - "description": "Overhead structure represents the resource overhead associated with running a pod.", - "properties": { - "podFixed": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "PodFixed represents the fixed resource overhead associated with running a pod.", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.node.v1beta1.RuntimeClass": { - "description": "RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md", - "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" - }, - "handler": { - "description": "Handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node \u0026 CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must conform to the DNS Label (RFC 1123) requirements, and is immutable.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "overhead": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.Overhead", - "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.15, and is only honored by servers that enable the PodOverhead feature." - }, - "scheduling": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.Scheduling", - "description": "Scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes." - } - }, - "required": [ - "handler" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.node.v1beta1.RuntimeClassList": { - "description": "RuntimeClassList is a list of RuntimeClass objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "node.k8s.io", - "kind": "RuntimeClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.node.v1beta1.Scheduling": { - "description": "Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.", - "properties": { - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "description": "nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.", - "type": "object" - }, - "tolerations": { - "description": "tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedCSIDriver": { - "description": "AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.", - "properties": { - "name": { - "description": "Name is the registered name of the CSI driver", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedFlexVolume": { - "description": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", - "properties": { - "driver": { - "description": "driver is the name of the Flexvolume driver.", - "type": "string" - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedHostPath": { - "description": "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", - "properties": { - "pathPrefix": { - "description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", - "type": "string" - }, - "readOnly": { - "description": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.Eviction": { - "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/\u003cpod name\u003e/evictions.", - "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" - }, - "deleteOptions": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions", - "description": "DeleteOptions may be provided" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "ObjectMeta describes the pod that is being evicted." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.FSGroupStrategyOptions": { - "description": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.HostPortRange": { - "description": "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "format": "int32", - "type": "integer" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "min", - "max" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.IDRange": { - "description": "IDRange provides a min/max of an allowed range of IDs.", - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "format": "int64", - "type": "integer" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "min", - "max" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudget": { - "description": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec", - "description": "Specification of the desired behavior of the PodDisruptionBudget." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus", - "description": "Most recently observed status of the PodDisruptionBudget." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetList": { - "description": "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudgetList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec": { - "description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", - "properties": { - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\"." - }, - "minAvailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\"." - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Label query over pods whose evictions are managed by the disruption budget." - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus": { - "description": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.", - "properties": { - "currentHealthy": { - "description": "current number of healthy pods", - "format": "int32", - "type": "integer" - }, - "desiredHealthy": { - "description": "minimum desired number of healthy pods", - "format": "int32", - "type": "integer" - }, - "disruptedPods": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "description": "DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.", - "type": "object" - }, - "disruptionsAllowed": { - "description": "Number of pod disruptions that are currently allowed.", - "format": "int32", - "type": "integer" - }, - "expectedPods": { - "description": "total number of pods counted by this disruption budget", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "disruptionsAllowed", - "currentHealthy", - "desiredHealthy", - "expectedPods" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicy": { - "description": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicySpec", - "description": "spec defines the policy enforced." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicyList": { - "description": "PodSecurityPolicyList is a list of PodSecurityPolicy objects.", - "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" - }, - "items": { - "description": "items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicyList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicySpec": { - "description": "PodSecurityPolicySpec defines the policy enforced.", - "properties": { - "allowPrivilegeEscalation": { - "description": "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - "type": "boolean" - }, - "allowedCSIDrivers": { - "description": "AllowedCSIDrivers is a whitelist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes. This is an alpha field, and is only honored if the API server enables the CSIInlineVolume feature gate.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedCSIDriver" - }, - "type": "array" - }, - "allowedCapabilities": { - "description": "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedFlexVolumes": { - "description": "allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedFlexVolume" - }, - "type": "array" - }, - "allowedHostPaths": { - "description": "allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedHostPath" - }, - "type": "array" - }, - "allowedProcMountTypes": { - "description": "AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedUnsafeSysctls": { - "description": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultAddCapabilities": { - "description": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultAllowPrivilegeEscalation": { - "description": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - "type": "boolean" - }, - "forbiddenSysctls": { - "description": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.", - "items": { - "type": "string" - }, - "type": "array" - }, - "fsGroup": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.FSGroupStrategyOptions", - "description": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext." - }, - "hostIPC": { - "description": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", - "type": "boolean" - }, - "hostNetwork": { - "description": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", - "type": "boolean" - }, - "hostPID": { - "description": "hostPID determines if the policy allows the use of HostPID in the pod spec.", - "type": "boolean" - }, - "hostPorts": { - "description": "hostPorts determines which host port ranges are allowed to be exposed.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.HostPortRange" - }, - "type": "array" - }, - "privileged": { - "description": "privileged determines if a pod can request to be run as privileged.", - "type": "boolean" - }, - "readOnlyRootFilesystem": { - "description": "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - "type": "boolean" - }, - "requiredDropCapabilities": { - "description": "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - "items": { - "type": "string" - }, - "type": "array" - }, - "runAsGroup": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions", - "description": "RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled." - }, - "runAsUser": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions", - "description": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set." - }, - "runtimeClass": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions", - "description": "runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod. If this field is omitted, the pod's runtimeClassName field is unrestricted. Enforcement of this field depends on the RuntimeClass feature gate being enabled." - }, - "seLinux": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SELinuxStrategyOptions", - "description": "seLinux is the strategy that will dictate the allowable labels that may be set." - }, - "supplementalGroups": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions", - "description": "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext." - }, - "volumes": { - "description": "volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "seLinux", - "runAsUser", - "supplementalGroups", - "fsGroup" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions": { - "description": "RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsGroup values that may be set.", - "type": "string" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions": { - "description": "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", - "type": "string" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions": { - "description": "RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.", - "properties": { - "allowedRuntimeClassNames": { - "description": "allowedRuntimeClassNames is a whitelist of RuntimeClass names that may be specified on a pod. A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultRuntimeClassName": { - "description": "defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.", - "type": "string" - } - }, - "required": [ - "allowedRuntimeClassNames" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.SELinuxStrategyOptions": { - "description": "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "rule": { - "description": "rule is the strategy that will dictate the allowable labels that may be set.", - "type": "string" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", - "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions": { - "description": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - "properties": { - "aggregationRule": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.AggregationRule", - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.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.", - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings", - "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" - }, - "items": { - "description": "Items is a list of RoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleList": { - "description": "RoleList is a collection of Roles", - "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" - }, - "items": { - "description": "Items is a list of Roles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "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" - } - }, - "required": [ - "apiGroup", - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.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.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20.", - "properties": { - "aggregationRule": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.AggregationRule", - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.20.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.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.", - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.20.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of RoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleList": { - "description": "RoleList is a collection of Roles Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20.", - "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" - }, - "items": { - "description": "Items is a list of Roles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "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" - } - }, - "required": [ - "apiGroup", - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.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.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.scheduling.v1.PriorityClass": { - "description": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "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" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.", - "type": "string" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "value" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - ] - }, - "io.k8s.api.scheduling.v1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "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" - }, - "items": { - "description": "items is the list of PriorityClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClass": { - "description": "DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "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" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.", - "type": "string" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "value" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "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" - }, - "items": { - "description": "items is the list of PriorityClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriver": { - "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverSpec", - "description": "Specification of the CSI Driver." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriverList": { - "description": "CSIDriverList is a collection of CSIDriver objects.", - "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" - }, - "items": { - "description": "items is the list of CSIDriver", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriverList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriverSpec": { - "description": "CSIDriverSpec is the specification of a CSIDriver.", - "properties": { - "attachRequired": { - "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "type": "boolean" - }, - "podInfoOnMount": { - "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "type": "boolean" - }, - "volumeLifecycleModes": { - "description": "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.CSINode": { - "description": "CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata.name must be the Kubernetes node name." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeSpec", - "description": "spec is the specification of CSINode" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSINodeDriver": { - "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - "properties": { - "allocatable": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeNodeResources", - "description": "allocatable represents the volume resources of a node that are available for scheduling. This field is beta." - }, - "name": { - "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - "type": "string" - }, - "nodeID": { - "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - "type": "string" - }, - "topologyKeys": { - "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "nodeID" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.CSINodeList": { - "description": "CSINodeList is a collection of CSINode objects.", - "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" - }, - "items": { - "description": "items is the list of CSINode", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINodeList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSINodeSpec": { - "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - "properties": { - "drivers": { - "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeDriver" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "required": [ - "drivers" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "allowedTopologies": { - "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "items": { - "type": "string" - }, - "type": "array" - }, - "parameters": { - "additionalProperties": { - "type": "string" - }, - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object" - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "required": [ - "provisioner" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "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" - }, - "items": { - "description": "Items is the list of StorageClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSpec", - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentStatus", - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "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" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "inlineVolumeSpec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." - }, - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSource", - "description": "Source represents the volume that should be attached." - } - }, - "required": [ - "attacher", - "source", - "nodeName" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "properties": { - "attachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object" - }, - "detachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." - } - }, - "required": [ - "attached" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time the error was encountered." - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeNodeResources": { - "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - "properties": { - "count": { - "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSIDriver": { - "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. CSI drivers do not need to create the CSIDriver object directly. Instead they may use the cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically creates a CSIDriver object representing the driver. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverSpec", - "description": "Specification of the CSI Driver." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSIDriverList": { - "description": "CSIDriverList is a collection of CSIDriver objects.", - "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" - }, - "items": { - "description": "items is the list of CSIDriver", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriverList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSIDriverSpec": { - "description": "CSIDriverSpec is the specification of a CSIDriver.", - "properties": { - "attachRequired": { - "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "type": "boolean" - }, - "podInfoOnMount": { - "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "type": "boolean" - }, - "volumeLifecycleModes": { - "description": "VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSINode": { - "description": "DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode. See the release notes for more information. CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata.name must be the Kubernetes node name." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeSpec", - "description": "spec is the specification of CSINode" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSINodeDriver": { - "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - "properties": { - "allocatable": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeNodeResources", - "description": "allocatable represents the volume resources of a node that are available for scheduling." - }, - "name": { - "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - "type": "string" - }, - "nodeID": { - "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - "type": "string" - }, - "topologyKeys": { - "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "nodeID" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSINodeList": { - "description": "CSINodeList is a collection of CSINode objects.", - "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" - }, - "items": { - "description": "items is the list of CSINode", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINodeList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSINodeSpec": { - "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - "properties": { - "drivers": { - "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeDriver" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "required": [ - "drivers" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "allowedTopologies": { - "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "items": { - "type": "string" - }, - "type": "array" - }, - "parameters": { - "additionalProperties": { - "type": "string" - }, - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object" - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "required": [ - "provisioner" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "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" - }, - "items": { - "description": "Items is the list of StorageClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSpec", - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentStatus", - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "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" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "inlineVolumeSpec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." - }, - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSource", - "description": "Source represents the volume that should be attached." - } - }, - "required": [ - "attacher", - "source", - "nodeName" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "properties": { - "attachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object" - }, - "detachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." - } - }, - "required": [ - "attached" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time the error was encountered." - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeNodeResources": { - "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - "properties": { - "count": { - "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is nil, then the supported number of volumes on this node is unbounded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition": { - "description": "CustomResourceColumnDefinition specifies a column for server side printing.", - "properties": { - "description": { - "description": "description is a human readable description of this column.", - "type": "string" - }, - "format": { - "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - }, - "jsonPath": { - "description": "jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - "type": "string" - }, - "name": { - "description": "name is a human readable name for the column.", - "type": "string" - }, - "priority": { - "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - } - }, - "required": [ - "name", - "type", - "jsonPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion": { - "description": "CustomResourceConversion describes how to convert different versions of a CR.", - "properties": { - "strategy": { - "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.", - "type": "string" - }, - "webhook": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion", - "description": "webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`." - } - }, - "required": [ - "strategy" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition": { - "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec", - "description": "spec describes how the user wants the resources to appear" - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus", - "description": "status indicates the actual state of the CustomResourceDefinition" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition": { - "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime last time the condition transitioned from one status to another." - }, - "message": { - "description": "message is a human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList": { - "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - "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" - }, - "items": { - "description": "items list individual CustomResourceDefinition objects", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinitionList", - "version": "v1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames": { - "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - "properties": { - "categories": { - "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - "type": "string" - }, - "listKind": { - "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - "type": "string" - }, - "plural": { - "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", - "type": "string" - }, - "shortNames": { - "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singular": { - "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - "type": "string" - } - }, - "required": [ - "plural", - "kind" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec": { - "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - "properties": { - "conversion": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion", - "description": "conversion defines conversion settings for the CRD." - }, - "group": { - "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", - "type": "string" - }, - "names": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", - "description": "names specify the resource and kind names for the custom resource." - }, - "preserveUnknownFields": { - "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting `x-preserve-unknown-fields` to true in `spec.versions[*].schema.openAPIV3Schema`. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - "type": "boolean" - }, - "scope": { - "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.", - "type": "string" - }, - "versions": { - "description": "versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion" - }, - "type": "array" - } - }, - "required": [ - "group", - "names", - "scope", - "versions" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus": { - "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - "properties": { - "acceptedNames": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", - "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." - }, - "conditions": { - "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition" - }, - "type": "array" - }, - "storedVersions": { - "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion": { - "description": "CustomResourceDefinitionVersion describes a version for CRD.", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "name": { - "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", - "type": "string" - }, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation", - "description": "schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource." - }, - "served": { - "description": "served is a flag enabling/disabling this version from being served via REST APIs", - "type": "boolean" - }, - "storage": { - "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - "type": "boolean" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources", - "description": "subresources specify what subresources this version of the defined custom resource have." - } - }, - "required": [ - "name", - "served", - "storage" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale": { - "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - "properties": { - "labelSelectorPath": { - "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - "type": "string" - }, - "specReplicasPath": { - "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - "type": "string" - }, - "statusReplicasPath": { - "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - "type": "string" - } - }, - "required": [ - "specReplicasPath", - "statusReplicasPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus": { - "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources": { - "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - "properties": { - "scale": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale", - "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus", - "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation": { - "description": "CustomResourceValidation is a list of validation methods for CustomResources.", - "properties": { - "openAPIV3Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps", - "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation": { - "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps": { - "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - "properties": { - "$ref": { - "type": "string" - }, - "$schema": { - "type": "string" - }, - "additionalItems": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" - }, - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" - }, - "allOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "anyOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "default": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON", - "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false." - }, - "definitions": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "dependencies": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray" - }, - "type": "object" - }, - "description": { - "type": "string" - }, - "enum": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" - }, - "type": "array" - }, - "example": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" - }, - "exclusiveMaximum": { - "type": "boolean" - }, - "exclusiveMinimum": { - "type": "boolean" - }, - "externalDocs": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation" - }, - "format": { - "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - "type": "string" - }, - "id": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray" - }, - "maxItems": { - "format": "int64", - "type": "integer" - }, - "maxLength": { - "format": "int64", - "type": "integer" - }, - "maxProperties": { - "format": "int64", - "type": "integer" - }, - "maximum": { - "format": "double", - "type": "number" - }, - "minItems": { - "format": "int64", - "type": "integer" - }, - "minLength": { - "format": "int64", - "type": "integer" - }, - "minProperties": { - "format": "int64", - "type": "integer" - }, - "minimum": { - "format": "double", - "type": "number" - }, - "multipleOf": { - "format": "double", - "type": "number" - }, - "not": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "nullable": { - "type": "boolean" - }, - "oneOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "patternProperties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "properties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uniqueItems": { - "type": "boolean" - }, - "x-kubernetes-embedded-resource": { - "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - "type": "boolean" - }, - "x-kubernetes-int-or-string": { - "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - "type": "boolean" - }, - "x-kubernetes-list-map-keys": { - "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - "items": { - "type": "string" - }, - "type": "array" - }, - "x-kubernetes-list-type": { - "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - "type": "string" - }, - "x-kubernetes-map-type": { - "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - "type": "string" - }, - "x-kubernetes-preserve-unknown-fields": { - "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "name is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "namespace is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "path is an optional URL path at which the webhook will be contacted.", - "type": "string" - }, - "port": { - "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - "properties": { - "caBundle": { - "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference", - "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion": { - "description": "WebhookConversion describes how to call a conversion webhook", - "properties": { - "clientConfig": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig", - "description": "clientConfig is the instructions for how to call the webhook if strategy is `Webhook`." - }, - "conversionReviewVersions": { - "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "conversionReviewVersions" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition": { - "description": "CustomResourceColumnDefinition specifies a column for server side printing.", - "properties": { - "JSONPath": { - "description": "JSONPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - "type": "string" - }, - "description": { - "description": "description is a human readable description of this column.", - "type": "string" - }, - "format": { - "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - }, - "name": { - "description": "name is a human readable name for the column.", - "type": "string" - }, - "priority": { - "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - } - }, - "required": [ - "name", - "type", - "JSONPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion": { - "description": "CustomResourceConversion describes how to convert different versions of a CR.", - "properties": { - "conversionReviewVersions": { - "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail. Defaults to `[\"v1beta1\"]`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "strategy": { - "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhookClientConfig to be set.", - "type": "string" - }, - "webhookClientConfig": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig", - "description": "webhookClientConfig is the instructions for how to call the webhook if strategy is `Webhook`. Required when `strategy` is set to `Webhook`." - } - }, - "required": [ - "strategy" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition": { - "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e. Deprecated in v1.16, planned for removal in v1.19. Use apiextensions.k8s.io/v1 CustomResourceDefinition instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec", - "description": "spec describes how the user wants the resources to appear" - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus", - "description": "status indicates the actual state of the CustomResourceDefinition" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition": { - "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime last time the condition transitioned from one status to another." - }, - "message": { - "description": "message is a human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList": { - "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - "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" - }, - "items": { - "description": "items list individual CustomResourceDefinition objects", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinitionList", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames": { - "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - "properties": { - "categories": { - "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - "type": "string" - }, - "listKind": { - "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - "type": "string" - }, - "plural": { - "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", - "type": "string" - }, - "shortNames": { - "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singular": { - "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - "type": "string" - } - }, - "required": [ - "plural", - "kind" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec": { - "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If present, this field configures columns for all versions. Top-level and per-version columns are mutually exclusive. If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "conversion": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion", - "description": "conversion defines conversion settings for the CRD." - }, - "group": { - "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", - "type": "string" - }, - "names": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", - "description": "names specify the resource and kind names for the custom resource." - }, - "preserveUnknownFields": { - "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. If false, schemas must be defined for all versions. Defaults to true in v1beta for backwards compatibility. Deprecated: will be required to be false in v1. Preservation of unknown fields can be specified in the validation schema using the `x-kubernetes-preserve-unknown-fields: true` extension. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - "type": "boolean" - }, - "scope": { - "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`.", - "type": "string" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", - "description": "subresources specify what subresources the defined custom resource has. If present, this field configures subresources for all versions. Top-level and per-version subresources are mutually exclusive." - }, - "validation": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", - "description": "validation describes the schema used for validation and pruning of the custom resource. If present, this validation schema is used to validate all versions. Top-level and per-version schemas are mutually exclusive." - }, - "version": { - "description": "version is the API version of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/...`. Must match the name of the first item in the `versions` list if `version` and `versions` are both specified. Optional if `versions` is specified. Deprecated: use `versions` instead.", - "type": "string" - }, - "versions": { - "description": "versions is the list of all API versions of the defined custom resource. Optional if `version` is specified. The name of the first item in the `versions` list must match the `version` field if `version` and `versions` are both specified. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion" - }, - "type": "array" - } - }, - "required": [ - "group", - "names", - "scope" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus": { - "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - "properties": { - "acceptedNames": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", - "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." - }, - "conditions": { - "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition" - }, - "type": "array" - }, - "storedVersions": { - "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion": { - "description": "CustomResourceDefinitionVersion describes a version for CRD.", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. Top-level and per-version columns are mutually exclusive. Per-version columns must not all be set to identical values (top-level columns should be used instead). If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "name": { - "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", - "type": "string" - }, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", - "description": "schema describes the schema used for validation and pruning of this version of the custom resource. Top-level and per-version schemas are mutually exclusive. Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)." - }, - "served": { - "description": "served is a flag enabling/disabling this version from being served via REST APIs", - "type": "boolean" - }, - "storage": { - "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - "type": "boolean" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", - "description": "subresources specify what subresources this version of the defined custom resource have. Top-level and per-version subresources are mutually exclusive. Per-version subresources must not all be set to identical values (top-level subresources should be used instead)." - } - }, - "required": [ - "name", - "served", - "storage" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale": { - "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - "properties": { - "labelSelectorPath": { - "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - "type": "string" - }, - "specReplicasPath": { - "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - "type": "string" - }, - "statusReplicasPath": { - "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - "type": "string" - } - }, - "required": [ - "specReplicasPath", - "statusReplicasPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus": { - "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources": { - "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - "properties": { - "scale": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale", - "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus", - "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation": { - "description": "CustomResourceValidation is a list of validation methods for CustomResources.", - "properties": { - "openAPIV3Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps", - "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation": { - "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps": { - "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - "properties": { - "$ref": { - "type": "string" - }, - "$schema": { - "type": "string" - }, - "additionalItems": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "allOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "anyOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "default": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON", - "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. CustomResourceDefinitions with defaults must be created using the v1 (or newer) CustomResourceDefinition API." - }, - "definitions": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "dependencies": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray" - }, - "type": "object" - }, - "description": { - "type": "string" - }, - "enum": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "type": "array" - }, - "example": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "exclusiveMaximum": { - "type": "boolean" - }, - "exclusiveMinimum": { - "type": "boolean" - }, - "externalDocs": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation" - }, - "format": { - "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - "type": "string" - }, - "id": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray" - }, - "maxItems": { - "format": "int64", - "type": "integer" - }, - "maxLength": { - "format": "int64", - "type": "integer" - }, - "maxProperties": { - "format": "int64", - "type": "integer" - }, - "maximum": { - "format": "double", - "type": "number" - }, - "minItems": { - "format": "int64", - "type": "integer" - }, - "minLength": { - "format": "int64", - "type": "integer" - }, - "minProperties": { - "format": "int64", - "type": "integer" - }, - "minimum": { - "format": "double", - "type": "number" - }, - "multipleOf": { - "format": "double", - "type": "number" - }, - "not": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "nullable": { - "type": "boolean" - }, - "oneOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "patternProperties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "properties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uniqueItems": { - "type": "boolean" - }, - "x-kubernetes-embedded-resource": { - "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - "type": "boolean" - }, - "x-kubernetes-int-or-string": { - "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - "type": "boolean" - }, - "x-kubernetes-list-map-keys": { - "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - "items": { - "type": "string" - }, - "type": "array" - }, - "x-kubernetes-list-type": { - "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - "type": "string" - }, - "x-kubernetes-map-type": { - "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - "type": "string" - }, - "x-kubernetes-preserve-unknown-fields": { - "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "name is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "namespace is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "path is an optional URL path at which the webhook will be contacted.", - "type": "string" - }, - "port": { - "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - "properties": { - "caBundle": { - "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference", - "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.api.resource.Quantity": { - "description": "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n (Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\u003cdigit\u003e ::= 0 | 1 | ... | 9 \u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e \u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e \u003csign\u003e ::= \"+\" | \"-\" \u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e \u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e \u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup": { - "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", - "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" - }, - "name": { - "description": "name is the name of the group.", - "type": "string" - }, - "preferredVersion": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery", - "description": "preferredVersion is the version preferred by the API server, which probably is the storage version." - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - }, - "type": "array" - }, - "versions": { - "description": "versions are the versions supported in this group.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" - }, - "type": "array" - } - }, - "required": [ - "name", - "versions" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroup", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList": { - "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", - "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" - }, - "groups": { - "description": "groups is a list of APIGroup.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - }, - "type": "array" - }, - "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" - } - }, - "required": [ - "groups" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroupList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": { - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "properties": { - "categories": { - "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')", - "items": { - "type": "string" - }, - "type": "array" - }, - "group": { - "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".", - "type": "string" - }, - "kind": { - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')", - "type": "string" - }, - "name": { - "description": "name is the plural name of the resource.", - "type": "string" - }, - "namespaced": { - "description": "namespaced indicates if a resource is namespaced or not.", - "type": "boolean" - }, - "shortNames": { - "description": "shortNames is a list of suggested short names of the resource.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singularName": { - "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", - "type": "string" - }, - "storageVersionHash": { - "description": "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.", - "type": "string" - }, - "verbs": { - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)", - "items": { - "type": "string" - }, - "type": "array" - }, - "version": { - "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".", - "type": "string" - } - }, - "required": [ - "name", - "singularName", - "namespaced", - "kind", - "verbs" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList": { - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "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" - }, - "groupVersion": { - "description": "groupVersion is the group and version this APIResourceList is for.", - "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" - }, - "resources": { - "description": "resources contains the name of the resources and if they are namespaced.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" - }, - "type": "array" - } - }, - "required": [ - "groupVersion", - "resources" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIResourceList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions": { - "description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", - "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" - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - }, - "type": "array" - }, - "versions": { - "description": "versions are the api versions that are available.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "versions", - "serverAddressByClientCIDRs" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIVersions", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions": { - "description": "DeleteOptions may be provided when deleting an API object.", - "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" - }, - "dryRun": { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "items": { - "type": "string" - }, - "type": "array" - }, - "gracePeriodSeconds": { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "format": "int64", - "type": "integer" - }, - "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" - }, - "orphanDependents": { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "type": "boolean" - }, - "preconditions": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." - }, - "propagationPolicy": { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta2" - }, - { - "group": "auditregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v2beta1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v2beta2" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "coordination.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "coordination.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "discovery.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "discovery.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "flowcontrol.apiserver.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "networking.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "node.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "node.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "policy", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": { - "description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:\u003cname\u003e', where \u003cname\u003e is the name of a field in a struct, or key in a map 'v:\u003cvalue\u003e', where \u003cvalue\u003e is the exact json formatted value of a list item 'i:\u003cindex\u003e', where \u003cindex\u003e is position of a item in a list 'k:\u003ckeys\u003e', where \u003ckeys\u003e is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff", - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery": { - "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", - "properties": { - "groupVersion": { - "description": "groupVersion specifies the API group and version in the form \"group/version\"", - "type": "string" - }, - "version": { - "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.", - "type": "string" - } - }, - "required": [ - "groupVersion", - "version" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "properties": { - "key": { - "description": "key is the label key that the selector applies to.", - "type": "string", - "x-kubernetes-patch-merge-key": "key", - "x-kubernetes-patch-strategy": "merge" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "operator" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": { - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "continue": { - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", - "type": "string" - }, - "remainingItemCount": { - "description": "remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.", - "format": "int64", - "type": "integer" - }, - "resourceVersion": { - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - "type": "string" - }, - "selfLink": { - "description": "selfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1", - "description": "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type." - }, - "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" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": { - "description": "MicroTime is version of Time with microsecond level precision.", - "format": "date-time", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "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: http://kubernetes.io/docs/user-guide/annotations", - "type": "object" - }, - "clusterName": { - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", - "type": "string" - }, - "creationTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "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" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "deletionTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "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" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-patch-strategy": "merge" - }, - "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 NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\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.", - "format": "int64", - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "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: http://kubernetes.io/docs/user-guide/labels", - "type": "object" - }, - "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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry" - }, - "type": "array" - }, - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "namespace": { - "description": "Namespace defines the space within 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: http://kubernetes.io/docs/user-guide/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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "uid", - "x-kubernetes-patch-strategy": "merge" - }, - "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": "SelfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - "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: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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.", - "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. 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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "uid": { - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Patch": { - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions": { - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "resourceVersion": { - "description": "Specifies the target ResourceVersion", - "type": "string" - }, - "uid": { - "description": "Specifies the target UID.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR": { - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "properties": { - "clientCIDR": { - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.", - "type": "string" - }, - "serverAddress": { - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", - "type": "string" - } - }, - "required": [ - "clientCIDR", - "serverAddress" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Status": { - "description": "Status is a return value for calls that don't return other objects.", - "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" - }, - "code": { - "description": "Suggested HTTP return code for this status, 0 if not set.", - "format": "int32", - "type": "integer" - }, - "details": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." - }, - "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" - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - }, - "reason": { - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", - "type": "string" - }, - "status": { - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Status", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause": { - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "field": { - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", - "type": "string" - }, - "message": { - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", - "type": "string" - }, - "reason": { - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails": { - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "causes": { - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" - }, - "type": "array" - }, - "group": { - "description": "The group attribute of the resource associated with the status StatusReason.", - "type": "string" - }, - "kind": { - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", - "type": "string" - }, - "retryAfterSeconds": { - "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", - "format": "int32", - "type": "integer" - }, - "uid": { - "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { - "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", - "format": "date-time", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent": { - "description": "Event represents a single event to a watched resource.", - "properties": { - "object": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", - "description": "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context." - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "object" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta2" - }, - { - "group": "auditregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v2beta1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v2beta2" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "coordination.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "coordination.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "discovery.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "discovery.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "flowcontrol.apiserver.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "networking.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "node.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "node.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "policy", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.runtime.RawExtension": { - "description": "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.Object `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// External package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// On the wire, the JSON will look something like this: {\n\t\"kind\":\"MyAPIObject\",\n\t\"apiVersion\":\"v1\",\n\t\"myPlugin\": {\n\t\t\"kind\":\"PluginA\",\n\t\t\"aOption\":\"foo\",\n\t},\n}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)", - "type": "object" - }, - "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { - "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.", - "format": "int-or-string", - "type": "string" - }, - "io.k8s.apimachinery.pkg.version.Info": { - "description": "Info contains versioning information. how we'll want to distribute that information.", - "properties": { - "buildDate": { - "type": "string" - }, - "compiler": { - "type": "string" - }, - "gitCommit": { - "type": "string" - }, - "gitTreeState": { - "type": "string" - }, - "gitVersion": { - "type": "string" - }, - "goVersion": { - "type": "string" - }, - "major": { - "type": "string" - }, - "minor": { - "type": "string" - }, - "platform": { - "type": "string" - } - }, - "required": [ - "major", - "minor", - "gitVersion", - "gitCommit", - "gitTreeState", - "buildDate", - "goVersion", - "compiler", - "platform" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec", - "description": "Spec contains information for locating and communicating with a server" - }, - "status": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus", - "description": "Status contains derived information about an API server" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition": { - "description": "APIServiceCondition describes the state of an APIService at a particular point", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "format": "int32", - "type": "integer" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference", - "description": "Service is a reference to the service for this API server. It must communicate on port 443 If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "groupPriorityMinimum", - "versionPriority" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec", - "description": "Spec contains information for locating and communicating with a server" - }, - "status": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus", - "description": "Status contains derived information about an API server" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition": { - "description": "APIServiceCondition describes the state of an APIService at a particular point", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "format": "int32", - "type": "integer" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference", - "description": "Service is a reference to the service for this API server. It must communicate on port 443 If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "groupPriorityMinimum", - "versionPriority" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - } - }, - "info": { - "title": "Kubernetes", - "version": "v1.18.8" - }, - "paths": { - "/api/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available API versions", - "operationId": "getCoreAPIVersions", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core" - ] - } - }, - "/api/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoreV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ] - } - }, - "/api/v1/componentstatuses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list objects of kind ComponentStatus", - "operationId": "listCoreV1ComponentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatusList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/componentstatuses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ComponentStatus", - "operationId": "readCoreV1ComponentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ComponentStatus", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ] - }, - "/api/v1/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ConfigMap", - "operationId": "listCoreV1ConfigMapForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Endpoints", - "operationId": "listCoreV1EndpointsForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listCoreV1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind LimitRange", - "operationId": "listCoreV1LimitRangeForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/namespaces": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Namespace", - "operationId": "listCoreV1Namespace", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Namespace", - "operationId": "createCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/bindings": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Binding", - "operationId": "createCoreV1NamespacedBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/configmaps": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ConfigMap", - "operationId": "deleteCoreV1CollectionNamespacedConfigMap", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ConfigMap", - "operationId": "listCoreV1NamespacedConfigMap", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ConfigMap", - "operationId": "createCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/configmaps/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ConfigMap", - "operationId": "deleteCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ConfigMap", - "operationId": "readCoreV1NamespacedConfigMap", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ConfigMap", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ConfigMap", - "operationId": "patchCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ConfigMap", - "operationId": "replaceCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/endpoints": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Endpoints", - "operationId": "deleteCoreV1CollectionNamespacedEndpoints", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Endpoints", - "operationId": "listCoreV1NamespacedEndpoints", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create Endpoints", - "operationId": "createCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/endpoints/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete Endpoints", - "operationId": "deleteCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Endpoints", - "operationId": "readCoreV1NamespacedEndpoints", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Endpoints", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Endpoints", - "operationId": "patchCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Endpoints", - "operationId": "replaceCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteCoreV1CollectionNamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listCoreV1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readCoreV1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/limitranges": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of LimitRange", - "operationId": "deleteCoreV1CollectionNamespacedLimitRange", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind LimitRange", - "operationId": "listCoreV1NamespacedLimitRange", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LimitRange", - "operationId": "createCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/limitranges/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a LimitRange", - "operationId": "deleteCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified LimitRange", - "operationId": "readCoreV1NamespacedLimitRange", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the LimitRange", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified LimitRange", - "operationId": "patchCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified LimitRange", - "operationId": "replaceCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PersistentVolumeClaim", - "operationId": "deleteCoreV1CollectionNamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolumeClaim", - "operationId": "listCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PersistentVolumeClaim", - "operationId": "createCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PersistentVolumeClaim", - "operationId": "deleteCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PersistentVolumeClaim", - "operationId": "readCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PersistentVolumeClaim", - "operationId": "patchCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PersistentVolumeClaim", - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PersistentVolumeClaim", - "operationId": "readCoreV1NamespacedPersistentVolumeClaimStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PersistentVolumeClaim", - "operationId": "patchCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PersistentVolumeClaim", - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Pod", - "operationId": "deleteCoreV1CollectionNamespacedPod", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Pod", - "operationId": "listCoreV1NamespacedPod", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Pod", - "operationId": "createCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Pod", - "operationId": "deleteCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Pod", - "operationId": "readCoreV1NamespacedPod", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Pod", - "operationId": "patchCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Pod", - "operationId": "replaceCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/attach": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to attach of Pod", - "operationId": "connectCoreV1GetNamespacedPodAttach", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodAttachOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the PodAttachOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", - "in": "query", - "name": "stderr", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", - "in": "query", - "name": "stdin", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", - "in": "query", - "name": "stdout", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", - "in": "query", - "name": "tty", - "type": "boolean", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to attach of Pod", - "operationId": "connectCoreV1PostNamespacedPodAttach", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodAttachOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/binding": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Binding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create binding of a Pod", - "operationId": "createCoreV1NamespacedPodBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/eviction": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Eviction", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create eviction of a Pod", - "operationId": "createCoreV1NamespacedPodEviction", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/exec": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to exec of Pod", - "operationId": "connectCoreV1GetNamespacedPodExec", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodExecOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "Command is the remote command to execute. argv array. Not executed within a shell.", - "in": "query", - "name": "command", - "type": "string", - "uniqueItems": true - }, - { - "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the PodExecOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Redirect the standard error stream of the pod for this call. Defaults to true.", - "in": "query", - "name": "stderr", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", - "in": "query", - "name": "stdin", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Redirect the standard output stream of the pod for this call. Defaults to true.", - "in": "query", - "name": "stdout", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", - "in": "query", - "name": "tty", - "type": "boolean", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to exec of Pod", - "operationId": "connectCoreV1PostNamespacedPodExec", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodExecOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/log": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read log of the specified Pod", - "operationId": "readCoreV1NamespacedPodLog", - "produces": [ - "text/plain", - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "The container for which to stream logs. Defaults to only container if there is one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "Follow the log stream of the pod. Defaults to false.", - "in": "query", - "name": "follow", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).", - "in": "query", - "name": "insecureSkipTLSVerifyBackend", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", - "in": "query", - "name": "limitBytes", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "Return previous terminated container logs. Defaults to false.", - "in": "query", - "name": "previous", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "in": "query", - "name": "sinceSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", - "in": "query", - "name": "tailLines", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", - "in": "query", - "name": "timestamps", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/portforward": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to portforward of Pod", - "operationId": "connectCoreV1GetNamespacedPodPortforward", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodPortForwardOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodPortForwardOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "List of ports to forward Required when using WebSockets", - "in": "query", - "name": "ports", - "type": "integer", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to portforward of Pod", - "operationId": "connectCoreV1PostNamespacedPodPortforward", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodPortForwardOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Pod", - "operationId": "connectCoreV1DeleteNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Pod", - "operationId": "connectCoreV1GetNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Pod", - "operationId": "connectCoreV1HeadNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Pod", - "operationId": "connectCoreV1OptionsNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to pod.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Pod", - "operationId": "connectCoreV1PatchNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Pod", - "operationId": "connectCoreV1PostNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Pod", - "operationId": "connectCoreV1PutNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Pod", - "operationId": "connectCoreV1DeleteNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Pod", - "operationId": "connectCoreV1GetNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Pod", - "operationId": "connectCoreV1HeadNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Pod", - "operationId": "connectCoreV1OptionsNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to pod.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Pod", - "operationId": "connectCoreV1PatchNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Pod", - "operationId": "connectCoreV1PostNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Pod", - "operationId": "connectCoreV1PutNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Pod", - "operationId": "readCoreV1NamespacedPodStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Pod", - "operationId": "patchCoreV1NamespacedPodStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Pod", - "operationId": "replaceCoreV1NamespacedPodStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/podtemplates": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodTemplate", - "operationId": "deleteCoreV1CollectionNamespacedPodTemplate", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodTemplate", - "operationId": "listCoreV1NamespacedPodTemplate", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodTemplate", - "operationId": "createCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/podtemplates/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodTemplate", - "operationId": "deleteCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodTemplate", - "operationId": "readCoreV1NamespacedPodTemplate", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodTemplate", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodTemplate", - "operationId": "patchCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodTemplate", - "operationId": "replaceCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ReplicationController", - "operationId": "deleteCoreV1CollectionNamespacedReplicationController", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicationController", - "operationId": "listCoreV1NamespacedReplicationController", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ReplicationController", - "operationId": "createCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ReplicationController", - "operationId": "deleteCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationController", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationControllerScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationControllerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ResourceQuota", - "operationId": "deleteCoreV1CollectionNamespacedResourceQuota", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ResourceQuota", - "operationId": "listCoreV1NamespacedResourceQuota", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ResourceQuota", - "operationId": "createCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ResourceQuota", - "operationId": "deleteCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ResourceQuota", - "operationId": "readCoreV1NamespacedResourceQuota", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ResourceQuota", - "operationId": "patchCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ResourceQuota", - "operationId": "replaceCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ResourceQuota", - "operationId": "readCoreV1NamespacedResourceQuotaStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ResourceQuota", - "operationId": "patchCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ResourceQuota", - "operationId": "replaceCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/secrets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Secret", - "operationId": "deleteCoreV1CollectionNamespacedSecret", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Secret", - "operationId": "listCoreV1NamespacedSecret", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Secret", - "operationId": "createCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/secrets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Secret", - "operationId": "deleteCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Secret", - "operationId": "readCoreV1NamespacedSecret", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Secret", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Secret", - "operationId": "patchCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Secret", - "operationId": "replaceCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/serviceaccounts": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ServiceAccount", - "operationId": "deleteCoreV1CollectionNamespacedServiceAccount", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ServiceAccount", - "operationId": "listCoreV1NamespacedServiceAccount", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ServiceAccount", - "operationId": "createCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/serviceaccounts/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ServiceAccount", - "operationId": "deleteCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ServiceAccount", - "operationId": "readCoreV1NamespacedServiceAccount", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceAccount", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ServiceAccount", - "operationId": "patchCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ServiceAccount", - "operationId": "replaceCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Service", - "operationId": "listCoreV1NamespacedService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Service", - "operationId": "createCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Service", - "operationId": "deleteCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Service", - "operationId": "readCoreV1NamespacedService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Service", - "operationId": "patchCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Service", - "operationId": "replaceCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Service", - "operationId": "connectCoreV1DeleteNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Service", - "operationId": "connectCoreV1GetNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Service", - "operationId": "connectCoreV1HeadNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Service", - "operationId": "connectCoreV1OptionsNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Service", - "operationId": "connectCoreV1PatchNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Service", - "operationId": "connectCoreV1PostNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Service", - "operationId": "connectCoreV1PutNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Service", - "operationId": "connectCoreV1DeleteNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Service", - "operationId": "connectCoreV1GetNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Service", - "operationId": "connectCoreV1HeadNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Service", - "operationId": "connectCoreV1OptionsNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Service", - "operationId": "connectCoreV1PatchNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Service", - "operationId": "connectCoreV1PostNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Service", - "operationId": "connectCoreV1PutNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Service", - "operationId": "readCoreV1NamespacedServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Service", - "operationId": "patchCoreV1NamespacedServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Service", - "operationId": "replaceCoreV1NamespacedServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Namespace", - "operationId": "deleteCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Namespace", - "operationId": "readCoreV1Namespace", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Namespace", - "operationId": "patchCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Namespace", - "operationId": "replaceCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}/finalize": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "put": { - "consumes": [ - "*/*" - ], - "description": "replace finalize of the specified Namespace", - "operationId": "replaceCoreV1NamespaceFinalize", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Namespace", - "operationId": "readCoreV1NamespaceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Namespace", - "operationId": "patchCoreV1NamespaceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Namespace", - "operationId": "replaceCoreV1NamespaceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/nodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Node", - "operationId": "deleteCoreV1CollectionNode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Node", - "operationId": "listCoreV1Node", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Node", - "operationId": "createCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Node", - "operationId": "deleteCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Node", - "operationId": "readCoreV1Node", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Node", - "operationId": "patchCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Node", - "operationId": "replaceCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Node", - "operationId": "connectCoreV1DeleteNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Node", - "operationId": "connectCoreV1GetNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Node", - "operationId": "connectCoreV1HeadNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Node", - "operationId": "connectCoreV1OptionsNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NodeProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to node.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Node", - "operationId": "connectCoreV1PatchNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Node", - "operationId": "connectCoreV1PostNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Node", - "operationId": "connectCoreV1PutNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Node", - "operationId": "connectCoreV1DeleteNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Node", - "operationId": "connectCoreV1GetNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Node", - "operationId": "connectCoreV1HeadNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Node", - "operationId": "connectCoreV1OptionsNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NodeProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to node.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Node", - "operationId": "connectCoreV1PatchNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Node", - "operationId": "connectCoreV1PostNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Node", - "operationId": "connectCoreV1PutNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Node", - "operationId": "readCoreV1NodeStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Node", - "operationId": "patchCoreV1NodeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Node", - "operationId": "replaceCoreV1NodeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolumeClaim", - "operationId": "listCoreV1PersistentVolumeClaimForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/persistentvolumes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PersistentVolume", - "operationId": "deleteCoreV1CollectionPersistentVolume", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolume", - "operationId": "listCoreV1PersistentVolume", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PersistentVolume", - "operationId": "createCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PersistentVolume", - "operationId": "deleteCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PersistentVolume", - "operationId": "readCoreV1PersistentVolume", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PersistentVolume", - "operationId": "patchCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PersistentVolume", - "operationId": "replaceCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumes/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PersistentVolume", - "operationId": "readCoreV1PersistentVolumeStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PersistentVolume", - "operationId": "patchCoreV1PersistentVolumeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PersistentVolume", - "operationId": "replaceCoreV1PersistentVolumeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Pod", - "operationId": "listCoreV1PodForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodTemplate", - "operationId": "listCoreV1PodTemplateForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicationController", - "operationId": "listCoreV1ReplicationControllerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ResourceQuota", - "operationId": "listCoreV1ResourceQuotaForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Secret", - "operationId": "listCoreV1SecretForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ServiceAccount", - "operationId": "listCoreV1ServiceAccountForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Service", - "operationId": "listCoreV1ServiceForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ConfigMapListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1EndpointsListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1LimitRangeListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespaceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedConfigMapList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ConfigMap. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedConfigMap", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ConfigMap", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedEndpointsList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Endpoints. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedEndpoints", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Endpoints", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedLimitRangeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind LimitRange. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedLimitRange", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the LimitRange", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPersistentVolumeClaimList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPersistentVolumeClaim", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPodList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Pod. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPod", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPodTemplateList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodTemplate. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPodTemplate", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodTemplate", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedReplicationControllerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ReplicationController. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedReplicationController", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedResourceQuotaList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedResourceQuota", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedSecretList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Secret. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedSecret", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Secret", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedServiceAccountList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedServiceAccount", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ServiceAccount", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Service. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Namespace. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1Namespace", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/nodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/nodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Node. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1Node", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PersistentVolumeClaimListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PersistentVolumeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1PersistentVolume", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PodListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PodTemplateListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ReplicationControllerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ResourceQuotaListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1SecretListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ServiceAccountListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ServiceListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available API versions", - "operationId": "getAPIVersions", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apis" - ] - } - }, - "/apis/admissionregistration.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAdmissionregistrationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAdmissionregistrationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1CollectionMutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind MutatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a MutatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified MutatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified MutatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified MutatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1CollectionValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ValidatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ValidatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ValidatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ValidatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ValidatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1MutatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1MutatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAdmissionregistrationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1CollectionMutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind MutatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a MutatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified MutatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified MutatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified MutatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1CollectionValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ValidatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ValidatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ValidatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ValidatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ValidatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getApiextensionsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions" - ] - } - }, - "/apis/apiextensions.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiextensionsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ] - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CustomResourceDefinition", - "operationId": "deleteApiextensionsV1CollectionCustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CustomResourceDefinition", - "operationId": "listApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CustomResourceDefinition", - "operationId": "createApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CustomResourceDefinition", - "operationId": "deleteApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1CustomResourceDefinitionStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiextensionsV1CustomResourceDefinitionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiextensionsV1CustomResourceDefinition", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiextensionsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ] - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CustomResourceDefinition", - "operationId": "deleteApiextensionsV1beta1CollectionCustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CustomResourceDefinition", - "operationId": "listApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CustomResourceDefinition", - "operationId": "createApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CustomResourceDefinition", - "operationId": "deleteApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1beta1CustomResourceDefinitionStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiextensionsV1beta1CustomResourceDefinitionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiextensionsV1beta1CustomResourceDefinition", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getApiregistrationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration" - ] - } - }, - "/apis/apiregistration.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiregistrationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ] - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of APIService", - "operationId": "deleteApiregistrationV1CollectionAPIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind APIService", - "operationId": "listApiregistrationV1APIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an APIService", - "operationId": "createApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an APIService", - "operationId": "deleteApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified APIService", - "operationId": "readApiregistrationV1APIService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified APIService", - "operationId": "patchApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified APIService", - "operationId": "replaceApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified APIService", - "operationId": "readApiregistrationV1APIServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified APIService", - "operationId": "patchApiregistrationV1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified APIService", - "operationId": "replaceApiregistrationV1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiregistrationV1APIServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiregistrationV1APIService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiregistrationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ] - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of APIService", - "operationId": "deleteApiregistrationV1beta1CollectionAPIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind APIService", - "operationId": "listApiregistrationV1beta1APIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an APIService", - "operationId": "createApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an APIService", - "operationId": "deleteApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified APIService", - "operationId": "readApiregistrationV1beta1APIService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified APIService", - "operationId": "patchApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified APIService", - "operationId": "replaceApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified APIService", - "operationId": "readApiregistrationV1beta1APIServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified APIService", - "operationId": "patchApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified APIService", - "operationId": "replaceApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiregistrationV1beta1APIServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiregistrationV1beta1APIService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAppsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps" - ] - } - }, - "/apis/apps/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAppsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ] - } - }, - "/apis/apps/v1/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ControllerRevision", - "operationId": "listAppsV1ControllerRevisionForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind DaemonSet", - "operationId": "listAppsV1DaemonSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Deployment", - "operationId": "listAppsV1DeploymentForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ControllerRevision", - "operationId": "deleteAppsV1CollectionNamespacedControllerRevision", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ControllerRevision", - "operationId": "listAppsV1NamespacedControllerRevision", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ControllerRevision", - "operationId": "createAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ControllerRevision", - "operationId": "deleteAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ControllerRevision", - "operationId": "readAppsV1NamespacedControllerRevision", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ControllerRevision", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ControllerRevision", - "operationId": "patchAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ControllerRevision", - "operationId": "replaceAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of DaemonSet", - "operationId": "deleteAppsV1CollectionNamespacedDaemonSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind DaemonSet", - "operationId": "listAppsV1NamespacedDaemonSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a DaemonSet", - "operationId": "createAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a DaemonSet", - "operationId": "deleteAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified DaemonSet", - "operationId": "readAppsV1NamespacedDaemonSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified DaemonSet", - "operationId": "patchAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified DaemonSet", - "operationId": "replaceAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified DaemonSet", - "operationId": "readAppsV1NamespacedDaemonSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified DaemonSet", - "operationId": "patchAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified DaemonSet", - "operationId": "replaceAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Deployment", - "operationId": "deleteAppsV1CollectionNamespacedDeployment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Deployment", - "operationId": "listAppsV1NamespacedDeployment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Deployment", - "operationId": "createAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Deployment", - "operationId": "deleteAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Deployment", - "operationId": "readAppsV1NamespacedDeployment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Deployment", - "operationId": "patchAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified Deployment", - "operationId": "readAppsV1NamespacedDeploymentScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified Deployment", - "operationId": "patchAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Deployment", - "operationId": "readAppsV1NamespacedDeploymentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Deployment", - "operationId": "patchAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ReplicaSet", - "operationId": "deleteAppsV1CollectionNamespacedReplicaSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicaSet", - "operationId": "listAppsV1NamespacedReplicaSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ReplicaSet", - "operationId": "createAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ReplicaSet", - "operationId": "deleteAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSetScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StatefulSet", - "operationId": "deleteAppsV1CollectionNamespacedStatefulSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StatefulSet", - "operationId": "listAppsV1NamespacedStatefulSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StatefulSet", - "operationId": "createAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StatefulSet", - "operationId": "deleteAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSetScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicaSet", - "operationId": "listAppsV1ReplicaSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StatefulSet", - "operationId": "listAppsV1StatefulSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1ControllerRevisionListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1DaemonSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1DeploymentListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedControllerRevisionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedControllerRevision", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ControllerRevision", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedDaemonSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind DaemonSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedDaemonSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedDeploymentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Deployment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedDeployment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedReplicaSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedReplicaSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedStatefulSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StatefulSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedStatefulSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1ReplicaSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1StatefulSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/authentication.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAuthenticationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication" - ] - } - }, - "/apis/authentication.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthenticationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ] - } - }, - "/apis/authentication.k8s.io/v1/tokenreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a TokenReview", - "operationId": "createAuthenticationV1TokenReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - } - }, - "/apis/authentication.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthenticationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ] - } - }, - "/apis/authentication.k8s.io/v1beta1/tokenreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a TokenReview", - "operationId": "createAuthenticationV1beta1TokenReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAuthorizationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization" - ] - } - }, - "/apis/authorization.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthorizationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ] - } - }, - "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LocalSubjectAccessReview", - "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectAccessReview", - "operationId": "createAuthorizationV1SelfSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectRulesReview", - "operationId": "createAuthorizationV1SelfSubjectRulesReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/subjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SubjectAccessReview", - "operationId": "createAuthorizationV1SubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthorizationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ] - } - }, - "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LocalSubjectAccessReview", - "operationId": "createAuthorizationV1beta1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectAccessReview", - "operationId": "createAuthorizationV1beta1SelfSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectRulesReview", - "operationId": "createAuthorizationV1beta1SelfSubjectRulesReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SubjectAccessReview", - "operationId": "createAuthorizationV1beta1SubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/autoscaling/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAutoscalingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling" - ] - } - }, - "/apis/autoscaling/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ] - } - }, - "/apis/autoscaling/v1/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV2beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ] - } - }, - "/apis/autoscaling/v2beta1/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV2beta2APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ] - } - }, - "/apis/autoscaling/v2beta2/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta2HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta2CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta2HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getBatchAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch" - ] - } - }, - "/apis/batch/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getBatchV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ] - } - }, - "/apis/batch/v1/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Job", - "operationId": "listBatchV1JobForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/namespaces/{namespace}/jobs": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Job", - "operationId": "deleteBatchV1CollectionNamespacedJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Job", - "operationId": "listBatchV1NamespacedJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Job", - "operationId": "createBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Job", - "operationId": "deleteBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Job", - "operationId": "readBatchV1NamespacedJob", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Job", - "operationId": "patchBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Job", - "operationId": "replaceBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Job", - "operationId": "readBatchV1NamespacedJobStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Job", - "operationId": "patchBatchV1NamespacedJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Job", - "operationId": "replaceBatchV1NamespacedJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/watch/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1JobListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1NamespacedJobList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Job. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchBatchV1NamespacedJob", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getBatchV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ] - } - }, - "/apis/batch/v1beta1/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CronJob", - "operationId": "listBatchV1beta1CronJobForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CronJob", - "operationId": "deleteBatchV1beta1CollectionNamespacedCronJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CronJob", - "operationId": "listBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CronJob", - "operationId": "createBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CronJob", - "operationId": "deleteBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CronJob", - "operationId": "readBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CronJob", - "operationId": "patchBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CronJob", - "operationId": "replaceBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CronJob", - "operationId": "readBatchV1beta1NamespacedCronJobStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CronJob", - "operationId": "patchBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CronJob", - "operationId": "replaceBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/watch/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1beta1CronJobListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1beta1NamespacedCronJobList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CronJob. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchBatchV1beta1NamespacedCronJob", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getCertificatesAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates" - ] - } - }, - "/apis/certificates.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCertificatesV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ] - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CertificateSigningRequest", - "operationId": "deleteCertificatesV1beta1CollectionCertificateSigningRequest", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CertificateSigningRequest", - "operationId": "listCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CertificateSigningRequest", - "operationId": "createCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CertificateSigningRequest", - "operationId": "deleteCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "put": { - "consumes": [ - "*/*" - ], - "description": "replace approval of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestApproval", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequestStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCertificatesV1beta1CertificateSigningRequestList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCertificatesV1beta1CertificateSigningRequest", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getCoordinationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination" - ] - } - }, - "/apis/coordination.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoordinationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ] - } - }, - "/apis/coordination.k8s.io/v1/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1LeaseForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Lease", - "operationId": "deleteCoordinationV1CollectionNamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1NamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Lease", - "operationId": "createCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - } - }, - "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Lease", - "operationId": "deleteCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Lease", - "operationId": "readCoordinationV1NamespacedLease", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Lease", - "operationId": "patchCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Lease", - "operationId": "replaceCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - } - }, - "/apis/coordination.k8s.io/v1/watch/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1LeaseListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1NamespacedLeaseList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoordinationV1NamespacedLease", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoordinationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ] - } - }, - "/apis/coordination.k8s.io/v1beta1/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1beta1LeaseForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Lease", - "operationId": "deleteCoordinationV1beta1CollectionNamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Lease", - "operationId": "createCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - } - }, - "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Lease", - "operationId": "deleteCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Lease", - "operationId": "readCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Lease", - "operationId": "patchCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Lease", - "operationId": "replaceCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - } - }, - "/apis/coordination.k8s.io/v1beta1/watch/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1beta1LeaseListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1beta1NamespacedLeaseList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoordinationV1beta1NamespacedLease", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getDiscoveryAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery" - ] - } - }, - "/apis/discovery.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getDiscoveryV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ] - } - }, - "/apis/discovery.k8s.io/v1beta1/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind EndpointSlice", - "operationId": "listDiscoveryV1beta1EndpointSliceForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of EndpointSlice", - "operationId": "deleteDiscoveryV1beta1CollectionNamespacedEndpointSlice", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind EndpointSlice", - "operationId": "listDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an EndpointSlice", - "operationId": "createDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - } - }, - "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an EndpointSlice", - "operationId": "deleteDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified EndpointSlice", - "operationId": "readDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the EndpointSlice", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified EndpointSlice", - "operationId": "patchDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified EndpointSlice", - "operationId": "replaceDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - } - }, - "/apis/discovery.k8s.io/v1beta1/watch/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchDiscoveryV1beta1EndpointSliceListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchDiscoveryV1beta1NamespacedEndpointSliceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchDiscoveryV1beta1NamespacedEndpointSlice", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the EndpointSlice", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getEventsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events" - ] - } - }, - "/apis/events.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getEventsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ] - } - }, - "/apis/events.k8s.io/v1beta1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1beta1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteEventsV1beta1CollectionNamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1beta1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - } - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readEventsV1beta1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - } - }, - "/apis/events.k8s.io/v1beta1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1beta1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1beta1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchEventsV1beta1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getExtensionsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions" - ] - } - }, - "/apis/extensions/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getExtensionsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ] - } - }, - "/apis/extensions/v1beta1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listExtensionsV1beta1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteExtensionsV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readExtensionsV1beta1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchExtensionsV1beta1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchExtensionsV1beta1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchExtensionsV1beta1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getNetworkingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking" - ] - } - }, - "/apis/networking.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNetworkingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ] - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of NetworkPolicy", - "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind NetworkPolicy", - "operationId": "listNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a NetworkPolicy", - "operationId": "createNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a NetworkPolicy", - "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified NetworkPolicy", - "operationId": "readNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NetworkPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified NetworkPolicy", - "operationId": "patchNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified NetworkPolicy", - "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind NetworkPolicy", - "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1NamespacedNetworkPolicy", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the NetworkPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNetworkingV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ] - } - }, - "/apis/networking.k8s.io/v1beta1/ingressclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of IngressClass", - "operationId": "deleteNetworkingV1beta1CollectionIngressClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind IngressClass", - "operationId": "listNetworkingV1beta1IngressClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an IngressClass", - "operationId": "createNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/ingressclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an IngressClass", - "operationId": "deleteNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified IngressClass", - "operationId": "readNetworkingV1beta1IngressClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified IngressClass", - "operationId": "patchNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified IngressClass", - "operationId": "replaceNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1beta1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteNetworkingV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readNetworkingV1beta1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchNetworkingV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceNetworkingV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/watch/ingressclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1IngressClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/ingressclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1beta1IngressClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1beta1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/node.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getNodeAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node" - ] - } - }, - "/apis/node.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNodeV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ] - } - }, - "/apis/node.k8s.io/v1beta1/runtimeclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RuntimeClass", - "operationId": "deleteNodeV1beta1CollectionRuntimeClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RuntimeClass", - "operationId": "listNodeV1beta1RuntimeClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RuntimeClass", - "operationId": "createNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - } - }, - "/apis/node.k8s.io/v1beta1/runtimeclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RuntimeClass", - "operationId": "deleteNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RuntimeClass", - "operationId": "readNodeV1beta1RuntimeClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the RuntimeClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RuntimeClass", - "operationId": "patchNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RuntimeClass", - "operationId": "replaceNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - } - }, - "/apis/node.k8s.io/v1beta1/watch/runtimeclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNodeV1beta1RuntimeClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/node.k8s.io/v1beta1/watch/runtimeclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNodeV1beta1RuntimeClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RuntimeClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getPolicyAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy" - ] - } - }, - "/apis/policy/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getPolicyV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ] - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodDisruptionBudget", - "operationId": "deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodDisruptionBudget", - "operationId": "listPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodDisruptionBudget", - "operationId": "createPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodDisruptionBudget", - "operationId": "deletePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodDisruptionBudget", - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodDisruptionBudget", - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodDisruptionBudget", - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PodDisruptionBudget", - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PodDisruptionBudget", - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PodDisruptionBudget", - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodDisruptionBudget", - "operationId": "listPolicyV1beta1PodDisruptionBudgetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/podsecuritypolicies": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodSecurityPolicy", - "operationId": "deletePolicyV1beta1CollectionPodSecurityPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodSecurityPolicy", - "operationId": "listPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodSecurityPolicy", - "operationId": "createPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/podsecuritypolicies/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodSecurityPolicy", - "operationId": "deletePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodSecurityPolicy", - "operationId": "readPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodSecurityPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodSecurityPolicy", - "operationId": "patchPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodSecurityPolicy", - "operationId": "replacePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudgetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudget", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1PodSecurityPolicyList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchPolicyV1beta1PodSecurityPolicy", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodSecurityPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getRbacAuthorizationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getRbacAuthorizationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1CollectionClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRoleBinding", - "operationId": "listRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRoleBinding", - "operationId": "createRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRoleBinding", - "operationId": "readRbacAuthorizationV1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRoleBinding", - "operationId": "patchRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRoleBinding", - "operationId": "replaceRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRole", - "operationId": "deleteRbacAuthorizationV1CollectionClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRole", - "operationId": "listRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRole", - "operationId": "createRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRole", - "operationId": "deleteRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRole", - "operationId": "readRbacAuthorizationV1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRole", - "operationId": "patchRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRole", - "operationId": "replaceRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RoleBinding", - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RoleBinding", - "operationId": "createRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RoleBinding", - "operationId": "deleteRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RoleBinding", - "operationId": "readRbacAuthorizationV1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RoleBinding", - "operationId": "patchRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RoleBinding", - "operationId": "replaceRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Role", - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Role", - "operationId": "createRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Role", - "operationId": "deleteRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Role", - "operationId": "readRbacAuthorizationV1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Role", - "operationId": "patchRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Role", - "operationId": "replaceRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1ClusterRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1ClusterRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1RoleBindingListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1RoleListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getRbacAuthorizationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRoleBinding", - "operationId": "listRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRoleBinding", - "operationId": "createRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRoleBinding", - "operationId": "readRbacAuthorizationV1beta1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRoleBinding", - "operationId": "patchRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRoleBinding", - "operationId": "replaceRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRole", - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRole", - "operationId": "listRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRole", - "operationId": "createRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRole", - "operationId": "deleteRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRole", - "operationId": "readRbacAuthorizationV1beta1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRole", - "operationId": "patchRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRole", - "operationId": "replaceRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RoleBinding", - "operationId": "createRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RoleBinding", - "operationId": "readRbacAuthorizationV1beta1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RoleBinding", - "operationId": "patchRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RoleBinding", - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Role", - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Role", - "operationId": "createRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Role", - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Role", - "operationId": "readRbacAuthorizationV1beta1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Role", - "operationId": "patchRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Role", - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1beta1RoleBindingForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1beta1RoleForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1RoleListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getSchedulingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling" - ] - } - }, - "/apis/scheduling.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getSchedulingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ] - } - }, - "/apis/scheduling.k8s.io/v1/priorityclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PriorityClass", - "operationId": "deleteSchedulingV1CollectionPriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PriorityClass", - "operationId": "listSchedulingV1PriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PriorityClass", - "operationId": "createSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - } - }, - "/apis/scheduling.k8s.io/v1/priorityclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PriorityClass", - "operationId": "deleteSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PriorityClass", - "operationId": "readSchedulingV1PriorityClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PriorityClass", - "operationId": "patchSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PriorityClass", - "operationId": "replaceSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - } - }, - "/apis/scheduling.k8s.io/v1/watch/priorityclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchSchedulingV1PriorityClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1/watch/priorityclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchSchedulingV1PriorityClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getSchedulingV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ] - } - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PriorityClass", - "operationId": "deleteSchedulingV1beta1CollectionPriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PriorityClass", - "operationId": "listSchedulingV1beta1PriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PriorityClass", - "operationId": "createSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - } - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PriorityClass", - "operationId": "deleteSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PriorityClass", - "operationId": "readSchedulingV1beta1PriorityClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PriorityClass", - "operationId": "patchSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PriorityClass", - "operationId": "replaceSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - } - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchSchedulingV1beta1PriorityClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchSchedulingV1beta1PriorityClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getStorageAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage" - ] - } - }, - "/apis/storage.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getStorageV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ] - } - }, - "/apis/storage.k8s.io/v1/csidrivers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSIDriver", - "operationId": "deleteStorageV1CollectionCSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSIDriver", - "operationId": "listStorageV1CSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSIDriver", - "operationId": "createStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csidrivers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSIDriver", - "operationId": "deleteStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSIDriver", - "operationId": "readStorageV1CSIDriver", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSIDriver", - "operationId": "patchStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSIDriver", - "operationId": "replaceStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csinodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSINode", - "operationId": "deleteStorageV1CollectionCSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSINode", - "operationId": "listStorageV1CSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSINode", - "operationId": "createStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csinodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSINode", - "operationId": "deleteStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSINode", - "operationId": "readStorageV1CSINode", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSINode", - "operationId": "patchStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSINode", - "operationId": "replaceStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/storageclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StorageClass", - "operationId": "deleteStorageV1CollectionStorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StorageClass", - "operationId": "listStorageV1StorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StorageClass", - "operationId": "createStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/storageclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StorageClass", - "operationId": "deleteStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StorageClass", - "operationId": "readStorageV1StorageClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StorageClass", - "operationId": "patchStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StorageClass", - "operationId": "replaceStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of VolumeAttachment", - "operationId": "deleteStorageV1CollectionVolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind VolumeAttachment", - "operationId": "listStorageV1VolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a VolumeAttachment", - "operationId": "createStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a VolumeAttachment", - "operationId": "deleteStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified VolumeAttachment", - "operationId": "readStorageV1VolumeAttachment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified VolumeAttachment", - "operationId": "patchStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified VolumeAttachment", - "operationId": "replaceStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified VolumeAttachment", - "operationId": "readStorageV1VolumeAttachmentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified VolumeAttachment", - "operationId": "patchStorageV1VolumeAttachmentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified VolumeAttachment", - "operationId": "replaceStorageV1VolumeAttachmentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/watch/csidrivers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1CSIDriverList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csidrivers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1CSIDriver", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csinodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1CSINodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csinodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1CSINode", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1StorageClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1StorageClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/volumeattachments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1VolumeAttachmentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/volumeattachments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1VolumeAttachment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getStorageV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ] - } - }, - "/apis/storage.k8s.io/v1beta1/csidrivers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSIDriver", - "operationId": "deleteStorageV1beta1CollectionCSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSIDriver", - "operationId": "listStorageV1beta1CSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSIDriver", - "operationId": "createStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csidrivers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSIDriver", - "operationId": "deleteStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSIDriver", - "operationId": "readStorageV1beta1CSIDriver", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSIDriver", - "operationId": "patchStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSIDriver", - "operationId": "replaceStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csinodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSINode", - "operationId": "deleteStorageV1beta1CollectionCSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSINode", - "operationId": "listStorageV1beta1CSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSINode", - "operationId": "createStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csinodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSINode", - "operationId": "deleteStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSINode", - "operationId": "readStorageV1beta1CSINode", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSINode", - "operationId": "patchStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSINode", - "operationId": "replaceStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StorageClass", - "operationId": "deleteStorageV1beta1CollectionStorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StorageClass", - "operationId": "listStorageV1beta1StorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StorageClass", - "operationId": "createStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StorageClass", - "operationId": "deleteStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StorageClass", - "operationId": "readStorageV1beta1StorageClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StorageClass", - "operationId": "patchStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StorageClass", - "operationId": "replaceStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of VolumeAttachment", - "operationId": "deleteStorageV1beta1CollectionVolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind VolumeAttachment", - "operationId": "listStorageV1beta1VolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a VolumeAttachment", - "operationId": "createStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a VolumeAttachment", - "operationId": "deleteStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified VolumeAttachment", - "operationId": "readStorageV1beta1VolumeAttachment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified VolumeAttachment", - "operationId": "patchStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified VolumeAttachment", - "operationId": "replaceStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/watch/csidrivers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1CSIDriverList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csidrivers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1CSIDriver", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csinodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1CSINodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csinodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1CSINode", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1StorageClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1StorageClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1VolumeAttachmentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1VolumeAttachment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/logs/": { - "get": { - "operationId": "logFileListHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "logs" - ] - } - }, - "/logs/{logpath}": { - "get": { - "operationId": "logFileHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "logs" - ] - }, - "parameters": [ - { - "description": "path to the log", - "in": "path", - "name": "logpath", - "required": true, - "type": "string", - "uniqueItems": true - } - ] - }, - "/version/": { - "get": { - "consumes": [ - "application/json" - ], - "description": "get the code version", - "operationId": "getCodeVersion", - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "version" - ] - } - } - }, - "security": [ - { - "BearerToken": [] - } - ], - "securityDefinitions": { - "BearerToken": { - "description": "Bearer Token authentication", - "in": "header", - "name": "authorization", - "type": "apiKey" - } - }, - "swagger": "2.0" -} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1190/swagger.go b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1190/swagger.go deleted file mode 100644 index 8b3b096d93..0000000000 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1190/swagger.go +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright 2019 The Kubernetes Authors. -// SPDX-License-Identifier: Apache-2.0 - -// Code generated for package v1190 by go-bindata DO NOT EDIT. (@generated) -// sources: -// kubernetesapi/v1190/swagger.json -package v1190 - -import ( - "bytes" - "compress/gzip" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - "time" -) - -func bindataRead(data []byte, name string) ([]byte, error) { - gz, err := gzip.NewReader(bytes.NewBuffer(data)) - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - - var buf bytes.Buffer - _, err = io.Copy(&buf, gz) - clErr := gz.Close() - - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - if clErr != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -type asset struct { - bytes []byte - info os.FileInfo -} - -type bindataFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} - -// Name return file name -func (fi bindataFileInfo) Name() string { - return fi.name -} - -// Size return file size -func (fi bindataFileInfo) Size() int64 { - return fi.size -} - -// Mode return file mode -func (fi bindataFileInfo) Mode() os.FileMode { - return fi.mode -} - -// Mode return file modify time -func (fi bindataFileInfo) ModTime() time.Time { - return fi.modTime -} - -// IsDir return file whether a directory -func (fi bindataFileInfo) IsDir() bool { - return fi.mode&os.ModeDir != 0 -} - -// Sys return file is sys mode -func (fi bindataFileInfo) Sys() interface{} { - return nil -} - -var _kubernetesapiV1190SwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7b\x93\xdb\xb8\xb5\x2f\xfa\xff\xf9\x14\xa8\x9e\x9b\xb2\x9d\x52\xab\xed\x99\x24\x3b\xc7\xa9\x5d\xf7\x76\x6c\x4f\xd2\x89\xed\xe9\xd3\xdd\x4e\xea\xdc\x28\x75\x0c\x91\x90\x84\xdd\x14\xc0\x01\xc0\x6e\x6b\x6e\xed\xef\x7e\x0b\x6b\x01\x20\x48\x91\x22\xa5\x96\xfa\x35\xcc\x1f\x19\x37\x05\x82\x78\xae\xe7\x6f\xad\xf5\xff\xfd\x0f\x42\x8e\x52\x36\xe3\x82\x1b\x2e\x85\x3e\x7a\x4b\xec\x23\x42\x8e\xb8\x1c\x5f\xff\x51\x8f\x69\xce\xc7\x34\x5d\x72\xad\xb9\x14\x8a\xcd\xb9\x36\x8a\xda\xa6\xe3\x9b\x37\xe3\x4f\x85\xa1\x86\x8b\xf9\x3f\xd9\x74\x21\xe5\x75\x78\x19\xfa\xd4\x89\xe2\xb9\x6d\x79\xf4\x96\x1c\xd5\x5a\x12\xfc\x79\xca\x34\xa1\x82\x84\xfe\xc9\xad\xfb\x99\x8a\x94\x98\x05\x23\x8a\x69\x59\xa8\x04\x9a\xa5\x44\xe6\x0c\xbf\xad\x09\x37\x84\xe6\x79\xc6\x99\x26\x46\x8e\x8f\x46\xfe\xb3\xb9\xb2\x8d\x0c\x67\x3a\x1a\x0c\x21\x47\xe1\x13\x17\xec\x86\xb3\xdb\x7f\x30\xa5\x2b\xd3\x6d\x1e\xf5\x69\xf3\x5b\x84\xc3\xb0\xa5\x4a\x99\x62\x29\xc9\xb8\x36\x44\xce\x48\xae\xd8\x8c\x29\xfb\xe4\x6b\xed\xc5\xaf\xe4\xc6\xbf\x6a\x67\xe5\x17\x81\x7d\xcb\x59\x62\xf4\x98\x9c\x9e\x9f\x11\xcd\xd4\x0d\x53\xe4\x96\x67\x19\x31\x6a\x45\x8c\x24\x85\x66\x64\xc6\x95\x36\xfe\x75\xc2\x05\x74\x00\x5f\xbc\x5d\xf0\x64\x61\x17\x42\x17\x79\x2e\x95\xed\xe7\x6c\x46\x84\x14\xcc\x0e\xc6\x36\x0b\x1f\xd5\x39\x4b\xf8\x8c\xb3\x14\x3b\xe0\x1a\x7b\x70\x2f\xb2\x94\x4c\x57\xd1\x18\x46\xe4\x86\x66\x3c\x85\x95\xc6\xf1\xcc\x28\xcf\xc8\x4c\x2a\x7c\x57\x4e\xff\x8b\x25\x06\xbe\x46\x49\x6e\xbf\xa1\x6d\x1f\x7e\xef\x12\x29\x66\x7c\x5e\xe0\x4e\x85\x4f\x6b\x42\xb3\x4c\xde\xb2\xb4\x1c\x95\xdd\xd2\x54\x32\x4d\x84\x34\x84\x8b\x24\x2b\x52\x46\xa8\x58\x95\x2d\xae\x85\xbc\x15\x76\x25\xec\x6c\xec\x00\x2f\xdd\x00\x13\x9a\x65\xda\xff\xe0\x3f\x5c\x0e\xd5\xf6\x3c\x65\x44\x17\x30\x52\xdf\xce\xfe\x54\x28\x46\x72\x99\xf1\x64\x55\x1e\x1a\x3c\xee\x86\x2d\xeb\xc7\x81\x90\x23\xb3\xca\x99\x3d\x09\xda\x28\x2e\xe6\x47\xd1\x8f\xff\x5d\x79\xdd\xb7\xa3\x4a\xd1\x55\xd9\x2c\x6a\x74\x94\x64\x9c\x09\xf3\x0e\x56\xa7\x7e\xee\xfe\x2f\xc5\x66\xf6\xf5\xef\x4e\xa2\xbb\x78\xd2\xe7\x0a\xba\xb3\xf4\x2e\xee\x7c\xb4\xe1\x48\xc7\x0d\x09\x7c\x8c\x69\xb2\x90\xb7\x76\x91\x12\xb9\x5c\x16\x82\x27\xd4\x30\x72\xcb\xcd\x02\x56\xcd\xf6\x3e\x26\x17\xec\xe7\x82\x2b\x96\x36\x4f\xcd\xad\xec\x39\x2c\x6c\xc7\x9d\xfa\x31\x6e\x5b\x19\x41\x21\x14\x4b\xe4\x5c\xf0\x5f\x58\x4a\x98\x52\x52\x69\x32\x53\x72\x09\xc3\x28\x69\x04\x13\x69\x2e\xb9\x30\x84\x2a\x46\x16\x54\xa4\x19\x4b\xc9\x71\x79\xbc\x68\x56\xd8\xd3\xa6\x18\x39\x9b\x0b\xa9\x18\x91\x8a\xd8\x8f\x8e\xc9\x7b\x36\xa3\x45\x66\xe0\xe0\xc0\x93\xa3\xc6\x3d\xac\xef\x75\x3c\xd3\x25\x35\xc9\xa2\xd7\x3c\xa3\x96\xd5\x75\x5e\x30\x32\x39\x52\x45\xc6\xf4\xe4\x08\xef\x21\xd7\xf6\xaa\xa7\x76\x58\xf0\x96\xbd\x0c\x72\xc9\xc5\x9c\x28\xf6\x73\xc1\x34\x90\x88\xf5\xe9\x4d\x8e\x3e\x7c\xa3\x89\x99\x1c\xd9\x19\x4e\x8e\x3e\xfc\x5c\xf0\x1b\x9a\x31\x61\x26\x47\xe3\x89\x98\x88\x63\x02\xbf\xbf\x75\x9d\x52\xdf\x1b\x91\x22\x5b\x11\x3e\xb3\xb4\x83\xd9\x16\xd9\x0a\x9b\xd8\x7e\x23\x5a\x61\xc7\x38\x26\x3f\x4a\x65\x5b\x2d\xf3\x8c\x8d\xec\x4b\x29\xcb\x33\xb9\x5a\x32\x61\x34\x49\xa8\xb0\xf7\x6c\x29\x53\x7c\xe3\x86\x53\x4b\x96\xf5\xc9\xcd\x9b\x91\xff\xc7\x94\x19\x6a\xff\x12\x29\x61\xdf\x0c\x13\x70\xb3\xcb\xe7\xd3\xc2\x44\xcb\x81\x23\x43\x52\x90\x92\xaf\x34\xe7\x7f\x51\xb2\xc8\xf5\xdb\x7f\x4d\x8e\x6c\x7f\x93\xa3\x7f\xdb\x8e\xb9\xa7\xc4\xf6\xf9\xcd\x1b\x78\x1a\x58\xc5\x5b\xf2\xaf\xc9\x51\x34\xca\xc9\xd1\xbf\xbf\x8e\xa2\xd9\x1b\x59\x19\x1a\x81\xf9\xd5\x07\x46\x6e\x65\x91\xa5\x40\x99\x2c\x21\x61\xc2\xd4\xa8\x8d\x5f\xe1\xb0\xe8\xeb\xcb\xcc\x67\x7e\x65\x34\x3c\xc5\xf1\xc1\x96\x23\x25\x86\x59\x8f\x08\xbb\x61\x02\x97\x4e\x48\xb3\x60\x0a\x28\xdd\xdc\xce\xdb\x8e\xcd\x11\xc3\x83\x6f\x84\x7d\xfe\x78\x37\x62\xca\x2c\x5f\xb9\x61\xc0\xad\xca\x17\x61\xd4\x6d\xbb\x13\x5f\xf7\xea\xf5\xd8\xfe\xde\x0b\xba\x64\x1d\x17\xfe\x6a\xc1\x88\x6d\xe6\xb9\xef\x9a\x54\x33\x26\x9f\xed\xcf\x7a\xe1\x67\x34\x2b\xb2\x6c\x45\x7e\x2e\x68\x06\xbb\x36\x22\x6c\x3c\x1f\x8f\x08\x5f\xd2\x39\x73\x4c\xea\xba\x98\x32\x25\x98\x61\x7a\xcc\xe5\x88\xdc\x2e\x18\x5c\xfc\xa8\xc9\xe4\xc8\xd2\x0f\x53\xfb\xb8\xfb\x24\x6e\x6b\xa5\x93\xa6\xd6\x52\xcd\xa9\xe0\xbf\x20\x53\x09\xb4\x7e\x07\xf2\x68\x3b\xd5\x39\x4d\xd8\x25\xcb\x58\x62\xa4\xda\x96\xd1\x2d\x69\xb2\xe0\x82\xa9\xd5\x38\xbf\x9e\xdb\x07\x7a\xbc\x64\x86\x5a\x4e\xf7\x91\x4e\x59\x16\xfa\xdd\xc4\xe3\x3e\xd7\x47\x41\x52\x96\xf0\x94\x69\xbb\x7e\x70\xc3\x8c\x24\xaa\x10\x15\xe9\x41\x0a\x90\xe9\x50\x62\x98\x52\x4b\x8f\xed\xd6\xf9\x17\xdc\x8a\x41\xb7\x4e\x14\xa2\xc6\x37\xf7\xd4\xd3\xb6\xd2\xee\x9b\x20\x1f\xc1\xe2\x62\x1b\x6e\x34\xcb\x66\x20\x3a\x96\x3d\x8d\xa0\x05\xbc\x6e\xc9\x3d\xd7\x56\x9e\x9a\x49\xb5\xc4\xaf\x3b\x49\xcb\xae\x40\x4a\x0d\x1d\x67\x76\x09\xf4\x5a\xcf\x3a\x50\x8e\x24\x2b\xb4\x61\x8a\xe8\x44\xe6\x96\x82\xbb\xab\x38\xb2\xa4\x5e\x30\x2b\x5f\xea\x6b\x9e\xeb\xb5\xab\x52\xa1\x2d\x6d\x8b\xb3\x72\x1f\xb4\xcb\x28\x75\xbc\x1e\x1c\x65\x38\xaa\xb5\x4c\x38\x05\x61\xd0\x8a\x0f\x96\x9c\x88\x8c\xdd\xb0\xcc\x52\x94\x19\x99\x1c\xbd\xf6\xcc\xea\xcd\xe4\xe8\x4f\x84\xac\x64\x81\x52\x9b\x66\xa6\xb2\x78\x84\x6a\x32\x93\x96\xe5\xe9\xb7\x64\xb2\x7e\xac\x26\xf6\x5c\x4d\x04\x21\x13\xe4\xb3\x1f\xbe\xe5\x8a\xc1\x65\xd3\xf6\xa7\x7f\xd9\x9f\x08\xb6\xb0\xff\x9b\x1c\x5d\xb3\x95\xfd\x21\x1e\xd1\xa8\xfc\x15\x15\x0b\xec\x76\x72\xf4\x59\x9a\x33\x51\xf9\x1d\x99\x6e\xd4\x33\x3e\x7e\x1d\x35\x22\x38\x29\xff\xe7\xbf\xf1\x1f\xff\x6d\xff\xf3\xef\x89\xf8\x6f\xbb\xc8\x67\x33\xc2\x85\x36\x8c\xa6\x38\x71\x8a\x64\x0b\x48\xed\xf6\x0b\x5e\x5f\x6c\x94\x2b\x98\xb8\xe1\x4a\x8a\x25\x90\x39\x5c\xf3\x5c\xc9\xd4\x2f\xbb\x36\x74\xce\xc5\xdc\x2e\xfe\x03\xac\x7d\x65\x70\xad\xcb\xdf\x6f\xed\x71\x56\x95\xe5\x0f\x93\xdb\xb4\x09\x97\x8c\x91\x85\x31\xb9\x7e\x7b\x72\x52\xa1\x8b\x27\xa9\x4c\xf4\x49\x22\x45\xc2\x72\xa3\x4f\xe4\x0d\x53\x56\x75\x3b\xb9\x95\xea\x9a\x8b\xf9\xb1\x5d\xe4\x63\xb7\x1f\x27\x78\x11\x4f\x80\x10\x2c\xad\x8c\xe9\x2e\x8f\xb6\x4b\x0e\x3f\x86\xe5\xd4\x31\x2f\xf2\x6c\x8a\x2d\x73\xb3\x22\x15\x8a\x36\x72\x0a\x9d\xa7\x25\xf6\xb6\xae\x8c\x25\x0b\xe3\x66\x5a\x8b\x63\x79\x50\x42\xfb\x53\x65\x08\x7d\xa8\x6c\x20\xac\xbc\x42\xc2\x16\x54\x97\x54\xd0\x53\xb9\xea\x04\xed\x99\x67\xf6\x30\xc0\x91\xa7\x73\x6a\xef\x12\x99\x4a\x77\xf4\x65\x96\xe2\x68\x80\xe3\x09\x76\xeb\xfe\x02\x32\x1d\x64\x88\x06\x51\x01\x59\x24\xd7\x56\xbe\xd0\x1c\x35\xfa\x52\x10\x9f\x11\xc6\x61\x2e\x1b\x29\xfd\x29\x11\x45\x96\xf9\x36\x2f\xcb\xb1\x38\x7d\x3d\xa1\x1a\x78\x6d\xa2\x18\x35\x6c\x64\xef\x62\x39\xc2\x5a\x9b\x94\x65\xcc\xb0\x57\xb6\x4d\xc9\x8f\x60\x16\x09\x15\x96\xca\x2e\xe8\x0d\x73\x6b\x44\x5e\x66\xfc\x9a\x11\x4a\xde\x07\x29\xeb\x42\x66\xd9\x94\x26\xd7\xf0\x3e\x39\x97\xe9\xb9\x92\xdf\x56\x3f\xe5\x68\x36\xc1\xee\x5e\x79\x82\xdd\x30\xe5\x31\xf9\xa2\x59\xbc\x35\x81\x2c\x78\xad\x21\xde\x4e\xae\x89\xcc\xcd\x31\x17\x23\x32\x65\x09\x2d\x34\xb3\xea\x99\xd5\x66\x94\xdd\xd0\x15\xb0\x9b\x66\x69\x88\x4c\x57\x96\xf4\x18\xbb\xe3\x60\xd3\x70\xbb\x7e\x80\x9b\xa2\x18\x17\x37\x32\x01\xf1\xa6\x97\xee\xb6\xfe\x02\xe1\x22\x05\xc5\x38\x3a\xdd\x0b\xae\xc3\x64\x4a\xa1\x2e\xa1\x99\x55\x48\x97\x45\x66\x78\x9e\x31\x62\xf8\xd2\xca\xff\x9a\xe4\x54\x81\x99\x88\x12\xcd\xc5\x3c\xab\xa8\xb4\x78\xae\x41\xfa\x6a\x54\xf4\x3e\xdb\x39\x4e\x8e\x9c\x90\x7e\x36\xfb\xcc\x58\xca\x52\xa7\xe7\xc1\x8f\x6f\xd7\x4d\x21\x4e\x79\xf1\x03\xb2\x64\xca\x2c\xec\x99\x12\x96\x83\x88\x8e\x81\x20\xc7\xc2\x0f\x35\x74\x5e\x76\x4c\x0d\xc9\x18\x05\xb5\xd2\x76\x95\x02\xa9\xa1\x19\x4c\x3c\x9e\x77\x4d\x8b\x0f\x5f\xaa\x91\x82\x29\xb3\x27\xc2\x36\x34\xa0\x26\xe9\x52\xab\x99\xae\x08\x8a\x39\x65\x37\x79\x56\xcc\xb9\xd0\x84\xce\x8c\x93\xd2\x80\xd6\xd1\xac\x34\x47\xd1\x2c\x1b\x7b\x93\x9b\xc6\x9b\x84\x3a\xee\xca\x99\xb3\x60\xdb\xc9\x6f\x97\x85\x36\xbf\xb5\xf3\xe2\x29\x5b\xe6\xd2\x30\x61\x46\x84\x4e\xed\x16\x4a\x92\x2b\x99\x30\xad\x03\x43\x36\x0b\xb6\x22\xb9\x62\x37\x5c\x16\x3a\x5b\x85\xf1\x8e\xc9\x67\x69\xd8\x5b\xf2\x5b\x94\x18\x8b\xe5\xd4\xd2\x8e\x59\xbc\x2e\xe5\xd1\xd2\xfe\x1e\xce\x0b\xaa\xa8\x30\x0c\xef\xe1\x94\x05\xb5\x5c\x0a\x36\x26\xbf\xb5\x2b\xd4\xd2\x81\x62\xda\x5e\x16\x2e\xc8\xac\x50\xb0\x36\xb8\x5a\xfe\x77\x77\x8b\x70\xd8\x23\xbf\x28\x78\xac\x1a\xbf\x6c\x3b\xbf\xf6\x04\xd6\x7e\xfb\xb6\xb2\x72\x05\x10\x87\x72\xd5\xec\x1d\x9f\x32\xa2\x98\x37\x86\x5a\x3a\xc2\x05\x5f\xf2\x5f\x58\xaf\x25\xb0\x9f\x30\xd2\x5b\x1c\x59\x44\xf3\x70\x4b\x69\x96\x91\x25\x18\x8f\xc1\x64\xa8\x58\x3c\xe4\x44\x5a\xa6\x6b\x29\xaa\x1d\x17\x0d\x76\x4b\x77\x80\xaa\xf4\xc6\xc9\x5e\x0d\xaa\xa1\xbb\x5d\x3b\xe8\x3b\xa0\x2e\x77\x10\x93\x0b\xdb\x26\x32\x78\xdf\x82\xe2\x50\x9a\xb2\x41\xcb\xa0\xa6\xd4\x9b\x4f\x74\x31\x2d\x0d\xdf\xf1\xcd\x4b\xa8\xb2\x24\x61\x2a\x0b\x33\x26\x57\xcd\x3f\xc0\x0a\xfa\xde\x9d\x95\xc7\x53\xca\xff\x43\xc5\xea\xff\x90\x0b\xb0\xeb\xfc\x55\xde\x32\xb0\xa5\x72\x67\xc9\xc6\x63\xce\x6e\x2c\x8b\xfc\x47\x58\xc8\x60\xc9\x0e\x37\xc8\xd2\x20\x6f\xce\x5f\xff\x15\x0c\x76\x79\x51\xd2\x75\xaf\x92\x20\xc1\x31\x60\x5b\x04\xf2\xed\xd8\x19\x9c\x9e\xc4\x8a\x5b\x2c\xc5\xb7\xad\xa4\x65\x27\xe2\x77\x37\x5b\x91\x94\x6b\x3a\xcd\x7c\x97\x78\xe9\x47\x77\x18\x25\x1c\x7f\xd0\x87\x1c\x11\x93\xb1\x17\xc2\x5b\xdd\x40\xbc\x2b\x3f\xe2\x4d\xad\x15\xfb\x76\xfc\x9d\xc6\x06\x8e\x62\xf4\x33\x37\xef\x6e\x07\xb6\x9b\xfa\x4f\x6e\x16\x3f\x85\x83\x75\x27\x63\xb5\x15\x0b\x3e\xcc\x66\x76\xe4\x1d\xc7\xfb\xb2\x6c\x89\xdb\xdb\xc2\x21\xad\x88\x67\x7b\x25\x0c\x1b\x8f\xc9\x69\x62\x45\x6d\xa0\xb0\x25\xb3\x7b\x4b\x3e\x4b\xc1\x46\xf0\xff\x3f\x89\xf7\x6a\x75\x51\x08\xf2\x32\x10\x21\x94\xa0\xd0\xc0\xe5\x2d\x44\x96\x06\xd1\x4c\xcb\x40\xd6\x2f\xe5\x12\xac\xbe\x5f\x04\x38\x10\x5e\x45\xe4\x1f\x54\xa5\x78\x18\xe4\xd3\x97\xcb\x2b\xc2\xed\x49\xb3\xe2\x13\x98\xa7\xac\x12\xc0\x33\xee\x1c\x18\x2b\x6d\xd8\x72\x64\x79\x65\xc2\x22\xeb\x55\xa0\x7c\x76\x7b\x91\x39\x51\x32\x2b\x4c\xa1\x18\xd1\x86\xe5\x5e\xae\x2b\x8f\x55\xb2\xa0\x62\xce\x82\x6f\xab\x32\x0a\xbb\x5e\x6c\x26\xe1\x58\x06\x5a\x5c\x88\x14\x18\xc0\x85\x3f\x8f\x41\xd1\x4b\x71\x5d\xa8\x31\x8a\x4f\x0b\x30\xd7\x23\x4f\xa6\x85\x91\xc7\x61\x4c\xc8\x59\x57\xc1\x32\x59\x72\x70\xb7\x0a\x7e\xe3\xfe\xf3\x3f\xfd\x62\xd9\x75\xb3\xeb\xb7\x03\x31\xb4\x0c\x5f\x16\xe6\xd2\xae\x5f\xda\x75\x6c\xae\x2a\x8d\x23\x37\x91\x9d\x9e\xeb\xa9\x74\x39\x05\x0b\xda\x69\xe0\xf3\xbe\x4d\x4e\xb5\x66\x7a\x54\xa3\x93\x59\x16\x96\x84\x83\x17\x20\x25\x52\x05\x37\x52\xf9\x3b\xb8\x8b\x82\x52\xd2\xe0\x25\x02\x32\xeb\xbf\x05\xc7\x94\x58\x41\xc1\x76\x3c\x65\xe6\x96\x31\x41\xd0\x0a\xf9\xc3\x6b\xa2\x71\x32\x15\x19\xf6\x4d\xf9\xb8\xba\xa2\x33\xa9\x96\xd4\xd8\xa5\xe0\xc2\xfc\xf0\x7d\xf3\x72\x73\x61\xd8\x9c\xa9\x68\xbd\xff\x47\x6d\xdd\x8f\x94\xf7\xcc\xbc\x25\xff\xaa\xd9\x2b\xdb\x9c\x4f\x2d\xf7\x7c\xd4\xed\x2e\x75\x2d\xfe\x1d\xbe\xee\x07\x8a\x54\x0e\x7f\x77\x63\xdb\xc5\x83\x5c\x21\x9d\xfd\xdd\xc9\x55\x8a\x5b\xb2\x5a\xe0\x3f\x55\x6a\x3c\x83\xcd\x5a\x97\x0e\x40\xba\xa1\x40\x91\xec\x49\xc1\x2b\x04\x6d\xed\x45\x77\x57\xb7\x14\xa5\xfa\xb8\x9c\x83\x75\xbc\xcb\xcb\x7c\x7e\xe6\x1a\x06\x47\x51\xe4\xbd\x65\x29\xd1\xc9\x82\x2d\x29\xca\xd0\xdc\xca\x7c\xb9\x62\x56\x93\x8d\xa6\x14\x9c\xb2\xe8\x21\xd5\x5e\x21\x71\x46\x73\x12\x79\xd6\xb0\xb7\x20\x1a\x66\x96\x64\x5b\x09\xd2\x30\x65\x65\x33\x38\xe3\xa3\x30\x73\xb7\x10\x15\xdf\x1c\x52\xeb\x31\xf9\x64\xe9\x15\x17\x33\xf9\x36\x98\x54\xe6\xdc\xc0\xa6\x73\x79\xe2\xbc\x89\x66\x75\x92\x48\x81\x74\x4a\x2a\x7d\x92\xb2\x1b\x96\x9d\x68\x3e\x3f\xa6\x2a\x59\x70\xc3\x12\x4b\x32\x4f\x68\xce\x8f\x61\xb0\x02\xc5\xc2\x65\xfa\x5d\x90\x81\xb6\x27\x45\xd7\x5c\xa4\x1d\xab\xfe\x77\x8e\x6a\xbf\x15\x4a\x6c\x47\xee\x72\x87\xc5\xf5\xc2\xc6\xc5\x87\xcb\xab\xd2\x79\x13\x39\xc0\xcb\xa6\xba\x5c\x76\xbb\x64\x5c\xcc\x3c\xf3\x0b\xee\xcb\xe0\xb4\x44\x91\xc8\x5e\x46\xa2\x8b\xe9\x92\x1b\x5d\x8a\x1b\x46\x8e\xc9\xbb\x20\x15\x15\xb9\x15\x88\xd3\x31\x39\x13\xe4\x1d\x5d\xb2\xec\x1d\xd5\xec\xe0\x8b\x6e\x57\x57\x1f\xdb\xf5\xdb\x61\xd9\xbd\xa1\x7a\x8f\xc6\x28\x34\x92\x7c\x62\x86\x6e\xb4\x44\x5d\x1a\x2a\x52\xaa\xd2\x60\xa7\x71\x23\xf9\xd3\xa1\xd7\x2b\xd8\xe6\x9b\x57\xc4\x0b\x2e\x1d\x87\x31\xc8\x27\x70\x20\x3d\xa0\xe4\x36\x16\x66\x41\x96\x00\x4a\x1d\x19\xf6\xeb\xb8\x98\x43\x4b\x99\x75\xc0\x4f\x4f\x11\xb3\xf2\xd3\xb7\xe3\xd2\xee\x7a\x9c\x5b\xc9\xe4\x78\xc9\xd4\x9c\x1d\x5f\xb3\x95\x7d\xa5\xc6\xba\x9a\xdf\x80\x41\xb1\x39\xbc\x00\x6f\x6f\x62\x91\x35\x26\x15\x9e\x57\xfa\x05\x87\xeb\xb1\x23\xba\xc7\x8e\x80\x94\x1c\xb5\xb2\x7b\xd0\x16\xa6\xd7\xb8\x50\x78\xb6\xaa\x73\x70\x1d\x6e\xe4\x5c\xd5\x37\x6e\x02\xf3\x38\xba\x79\xb3\x3e\xbd\x7f\xef\x95\xd7\x7e\xe4\xda\xec\xc8\x6f\x3f\x3a\x08\x43\x79\x6e\x37\xb5\x1e\x18\xe7\xa3\x66\x9c\x4d\x14\xa3\xbe\xec\x1f\xb7\xda\xe6\xd6\x6e\xf7\x49\x88\xaa\xd7\xe8\x2e\x8a\xef\x20\x39\x3c\x17\xc9\xc1\x1e\xd3\xfe\x72\x03\xd0\xae\xc0\xcc\xef\x73\xad\xb6\xd6\xed\xf0\x32\x75\xa9\x62\x8f\x96\xcb\x01\xab\x39\x2c\xa7\x6b\x30\x86\xb5\xf3\xb6\xf5\xc6\x78\xb9\x4d\x91\x67\xe0\x91\x8b\x7e\xb0\xc4\xfd\xc2\x53\xd7\x31\x39\x03\xc6\x67\x09\xfc\x72\xc9\x44\xea\xdd\x68\xd7\x8c\xe8\x02\xbd\x2d\x06\x0c\xd8\x60\xaf\x80\xee\xd8\xb7\x9c\x0a\x1d\x6c\xd9\x60\xb0\xee\xc7\x12\x11\x7f\xd5\xcd\x11\xb1\x9d\x47\xf9\x04\x28\x99\xae\xe1\xa9\xa7\x2c\x93\x96\x4e\xc9\x31\x79\xf1\xdb\x17\x30\xe3\x2c\x73\x4d\x01\x60\xe2\x9e\x3a\x42\x85\xf6\x95\x8c\x89\xb9\x59\x78\x67\x8e\xce\x78\x52\x5a\x43\x82\xa5\xaa\x01\x3a\x74\x78\x70\x6d\x04\x45\xeb\x2d\x34\x54\x16\xa9\x02\xd0\xee\x5a\x26\xdf\xf8\x09\x2e\x94\x6c\xba\x12\x4d\xeb\x54\xbd\x0e\x60\xf9\x28\x9f\x54\x0d\x9b\x6b\x2e\x88\x63\xf2\xee\xe2\xc3\xe9\xd5\x87\x11\xf9\x72\xfe\x1e\xfe\xfb\xfe\xc3\xc7\x0f\xf6\xbf\xef\x7e\xfa\xfc\xf9\xc3\xbb\x2b\x22\x15\xf9\x2d\x98\xf7\xec\x72\xc2\x32\x49\x5d\xf9\x02\x58\x69\xc4\xca\x5b\x54\xcb\x8f\x55\x46\x41\x11\x05\x4c\xd3\x14\xd8\xdd\x53\xdb\x8c\x52\x50\xeb\x70\x21\x85\xf3\x58\x91\xb3\x63\x27\x91\xa5\x43\x45\xc6\xe2\xa8\x88\x1a\xb0\xeb\x2d\x79\x91\xcb\x54\xbf\x20\x4b\x46\x85\x26\xf6\xdf\x63\x7c\x74\x92\xc9\xb9\x7f\x0c\x0b\x26\xe7\x24\xf2\x41\x41\x6c\x03\xb6\xfe\xad\x6f\x66\xb7\x2d\x7c\x1e\x51\xbc\x56\xf8\x88\x3d\x57\xbe\xf3\xca\x3b\x15\xd7\x56\xd4\xef\x89\x4e\x68\xc6\x2a\x2d\xed\x83\x7a\x87\xbf\x3d\x69\x1e\x81\xd7\x90\xb9\xaa\xbe\xe1\x60\x57\xb7\x3c\x4b\x13\xcb\xe5\xeb\x47\x23\x0a\x74\x80\xd5\x03\x9b\x30\x13\x40\xbd\xcb\xce\x53\x09\x93\x93\x37\x4c\x65\x34\x47\xeb\x39\xa3\xc9\x02\xbd\xd1\xce\xa1\x98\x33\x91\x5a\xc9\xcf\x99\x91\x99\x48\x32\xa9\xe1\x81\xf3\xbd\x56\xa6\xbe\xe4\xf3\x85\xf1\x1e\x7a\x07\x5d\x7f\xc0\x83\x08\x78\xc1\x8e\x43\x08\x6d\x6a\x86\x7a\x7c\x16\xf4\x2b\x70\x2c\x82\xc3\xac\x0a\x5f\x78\x87\x3e\xc0\xc9\xd1\x88\x4c\x4a\x74\x66\x6a\xff\x46\x44\xc3\x6f\x27\x47\x71\xb3\x70\x16\xa9\x03\xab\x3b\x27\xe2\x71\x0d\xd7\xa8\x71\xc3\xd0\xbd\x11\x0d\x21\x7c\x02\x48\xbb\xf7\xd9\xdb\xb1\x54\x3b\x1a\xd7\x86\xb3\xf6\xdd\x00\x7e\xeb\xfe\x26\x4e\x22\xea\x00\x5c\x3a\xce\xd1\xee\x16\x4a\x31\xbb\x57\x89\x73\x7c\x5f\x56\x0e\x84\xeb\xaf\xb2\xa6\xf6\x3c\xe7\x54\x59\x91\xdf\xb7\x2c\x9d\x0b\x5c\xe3\x37\xfb\x7a\x6a\xba\xcc\x22\x5b\x4b\x59\x56\x73\xe1\x09\xbb\x60\x33\xa6\x98\x48\xd8\x06\x19\xab\xde\x94\x2c\x64\x96\x22\x2a\xde\x3f\x31\x92\xb8\x56\xe3\x8c\xcd\x69\xb2\xaa\x0b\x98\xad\xc2\x51\x0f\x6c\xf6\x57\xdb\xe6\x6b\x13\xf4\x59\xbb\x6f\x96\x11\x2e\xbb\x83\x9e\xfb\x0c\x02\x1a\x56\x46\x82\x07\x75\x7f\xc3\xc9\xa9\x59\x74\x8d\xc4\xb6\xf9\xea\xc3\xd8\x72\x87\xca\xf8\x72\xf1\x91\xd8\x1f\x9c\x7f\xde\xfb\xcf\x00\x33\xc7\x11\x8f\x1a\x41\xf7\xe1\xe8\xfb\xe1\xee\x30\x4a\xa9\x4c\xc7\x28\xcf\x66\x65\x30\x0a\x92\x6b\xfb\x92\x27\xb0\xee\xd3\x78\xd7\x16\x52\x83\xda\x1d\xfc\x84\x91\x07\xee\x77\xbf\xfb\x01\x24\x8d\x29\x4d\xae\x6f\x2d\x13\x48\xe4\x32\xa7\x86\x4f\x79\xc6\xcd\x6a\x4c\xbe\xda\x5e\xbf\x46\x08\x2e\x87\x23\xc1\xaf\x39\xfc\xca\xcb\x37\xc7\x7f\xf8\xfd\xef\x7f\xf8\xfd\x08\x83\x22\x34\xbf\x61\xaf\xee\xdd\xa1\x87\x87\xac\x1e\x95\xd0\xa5\x08\x6e\x7d\xaf\xd7\x10\x0f\x1b\x2e\xf6\x5a\xdb\x21\xb2\x73\x88\xec\x1c\x22\x3b\xcb\xd7\x87\xc8\xce\x21\xb2\x73\x88\xec\x7c\x7c\x01\x85\x43\x64\xe7\x23\xd9\x88\x21\xb2\x73\x88\xec\x1c\x22\x3b\x87\xc8\xce\x21\xb2\x73\x88\xec\x7c\x34\x91\x9d\x43\x60\xe7\x10\xd8\x39\x04\x76\x3e\xfe\xc0\xce\x21\xfc\x6a\x08\xbf\x1a\xc2\xaf\x86\xf0\xab\x21\xfc\x6a\x08\xbf\x1a\xc2\xaf\xf6\xe0\xea\xe9\x1b\x80\xd5\x41\x96\xf7\x1c\x82\xe5\x24\x96\xc0\x99\xec\x4d\x06\xad\x7a\x88\xc3\x7a\xdc\x70\xf2\x01\x4d\xfd\x5c\xd0\xd4\x43\x1c\xd6\x63\x8a\xc3\x5a\x77\xd1\xf7\x94\x36\x87\x48\xac\x80\x51\xef\xe0\x7d\x87\x45\xa8\x6f\xfe\x78\x47\x34\x56\xf7\xcb\xd5\xf3\xbb\xb9\xfd\xc0\x42\x1f\x35\x0b\xdd\x26\x22\xab\xef\x46\xb7\x76\xbc\x5f\xa2\x34\x44\x65\x0d\x72\xc4\x10\x95\xf5\x54\x38\xde\x3d\xc4\x65\x35\x41\x9a\xda\xd9\x5c\x43\x6b\xcb\x04\x0c\xe5\x0e\x6d\x67\x4f\x82\xd5\xe2\x2d\xeb\xf0\x81\x57\x94\x5c\x7d\xbc\xb4\xcd\x04\x4b\x1c\xcc\xcd\x19\x6d\x9c\x14\xd7\xcd\xed\x12\xfa\xe7\x42\xa4\x59\x27\x9c\xd7\xb7\x43\x20\x2d\x39\xff\xf0\x89\x30\x91\xc8\x94\xa5\xe4\xdd\x29\x99\xc2\x6f\x35\x2c\xad\x07\x03\x85\x74\x67\xd1\xc0\x5e\x68\x8f\x14\x4c\xec\xa8\x20\x87\x1b\x03\x8f\x70\x21\x22\x1c\x2c\x1a\xc4\x88\x51\x85\x36\x44\x49\x69\xb4\x37\x9d\xd8\x7b\x86\x1d\x50\x85\x9f\x6a\xb5\x79\x4c\x57\x86\x6d\x4f\x0e\x1c\xe4\x76\x7f\x10\xb7\x35\x04\xf9\x26\xa2\xf0\xd5\x7d\xde\x2d\x77\x05\x39\x1e\x03\x82\xd7\xad\x56\x1f\xd0\xd3\x53\x76\x20\x15\xf9\x5a\xa8\xec\x6b\xb0\x25\x85\xf5\xf5\x11\x23\x35\x5f\x88\x2a\x84\x00\x7c\x31\x37\x0b\xef\xd6\x41\xc3\x3a\x58\xbe\x04\xf8\x5c\x9d\x9c\x52\x68\x56\x7e\xaa\x45\x1d\x29\x54\xd6\x75\xba\x60\x7c\x73\x7e\xc3\x7c\x4c\x4e\x12\x64\xa4\x8a\x93\x8b\x0b\xa2\x3d\xb9\xfc\x72\xf1\xd1\x4e\x7f\x49\x5e\x7e\x05\xd1\x88\xbd\x3d\x39\x59\x48\x6d\xde\xe6\x52\x99\x13\x00\x7d\xbf\x1a\x23\x76\x0c\x93\x0b\xda\xde\xf0\x4b\x32\x5e\x9f\xe6\x65\xb9\x5a\x30\xf2\xd5\x76\x17\xc0\xd2\x96\xb3\xc1\x3e\x00\x70\x27\xec\x80\x5f\xad\xea\x4a\xfd\xc9\x25\x0f\x8c\x56\x87\xcc\x38\xcb\xd2\x90\x99\x0f\x8c\x7d\xf6\x03\x2e\x3c\x66\x8a\x30\xe1\xec\xc6\x59\x9c\xd9\x37\x27\xd8\xbd\xff\x7c\x09\xf3\x96\xcb\xe8\xd4\x6b\xf2\x12\x51\x36\x5f\x2d\x65\x3d\x0e\xcf\xbf\x7a\x57\x87\xeb\x8b\x70\x71\xec\xbd\x22\xb6\x23\xaa\x6b\xbe\x44\x4a\x32\xba\x62\x28\x43\x70\x99\xc1\xb2\xbf\x1a\xfb\xa9\x07\x73\xf7\x14\x92\x15\x9e\x9d\x13\x9a\xa6\x8a\x69\x74\x07\x9f\x67\x8c\x6a\x48\xad\xc8\x7c\xc2\x44\xdb\xcf\x57\xbb\x7d\x19\x76\x60\x57\xfa\xcd\xf7\xff\x31\x7e\x3d\x7e\x3d\x7e\xf3\xd5\x7e\x9e\xfa\xbe\xed\x49\xe3\xfa\x7a\x45\x0a\x91\x31\xad\xe1\x54\x19\x4b\xd5\xe6\x8a\x81\x9f\x50\xb1\xd2\xf7\x1a\x19\xf7\xa5\x80\x70\x28\xdb\x89\x76\x14\xc7\xb6\xa1\x22\xa2\x09\xce\xb5\x86\x71\x47\x2c\x0a\x55\x8d\x10\xb7\xf1\xa5\xb9\x2c\x00\xae\xa8\x0d\xfc\x6c\xbf\x9c\xf1\x6b\x96\xad\x9c\x71\x5c\x48\x71\x6c\x4f\x15\x9d\x02\x68\x6d\xcc\xc6\x23\x38\x0e\x8c\x6a\x68\x62\x0a\x25\x48\x91\xa3\xdf\x49\xb0\x5b\x7f\x0a\xc2\x49\xc2\x03\x1a\x8e\xda\xe4\x08\x38\xfa\xe4\xe8\x4f\x70\x44\xec\x49\x76\x3f\xcd\xb9\xf0\xa0\x13\xcf\xf4\x1d\x0c\xf2\x14\xc3\x15\x42\x36\x4a\x9a\x39\x9f\xef\xcc\x47\x79\x79\x37\x01\x15\x2b\x2f\x16\xe6\x4c\x01\x35\x9a\x66\x2e\x09\xea\x97\x8b\x8f\x63\xf2\xbf\x65\x01\x6d\xfd\x11\x85\x8e\x8d\x04\xf3\x36\xac\xa3\x9a\x72\xa3\xa8\x0a\xdd\xd4\x7d\xcd\xb3\x18\x67\x43\x4b\xb7\x5b\x6a\xe5\x8b\x19\x77\x13\x3f\x35\x86\x2d\x73\xe3\x3a\xc0\xa4\x95\x85\x66\x8a\x40\x7c\x82\xe6\x09\xa1\x85\x59\x00\x5a\x8c\x4c\x8e\xec\x2f\x6f\xed\x08\x6e\xa5\x4a\xff\x1f\x84\x83\x01\x1a\xc7\xc7\x8b\xfd\xa8\xe8\x1c\x61\x82\x2f\x27\x47\xdf\x8d\xc7\xe3\xc9\xd1\x2b\x58\x81\x9f\x0b\xa6\x56\x24\xa7\x8a\x2e\x99\x81\xab\x31\x39\xfa\xbf\xfd\xef\x2e\xf5\xa7\xeb\x65\xe4\x1c\xe1\x0f\x15\x46\x04\x4e\xa4\xa1\x92\xd4\x10\x6f\xf0\x74\xe3\x0d\x62\x87\xd3\xd7\x7f\xbd\x70\x67\xfa\xc5\xbf\xbf\x3e\x8f\x48\x04\xbc\xa1\x43\x38\xc2\x6e\xe1\x08\xf8\xdb\x10\x90\x30\x04\x24\x0c\x01\x09\xbf\x96\x80\x04\xbc\x2b\x43\x2c\xc2\x10\x8b\x30\xc4\x22\x0c\xb1\x08\xfe\xd7\x21\x16\x61\x88\x45\x18\xaa\x4c\x0d\xc1\x08\x43\x30\xc2\xf3\x0c\x46\x18\xaa\x4c\x0d\x55\xa6\x86\x2a\x53\x43\x95\xa9\xa1\xca\xd4\x10\xe6\xf4\x3c\xc3\x9c\xd0\x12\xfc\x7c\x62\x9d\x5c\xd0\xcd\xc8\x05\x3d\x5d\xca\x65\x3d\xf4\x69\x88\x5c\xda\x3a\x72\xa9\x62\xfd\x76\x3f\x0e\xe1\x4c\xfb\x09\x67\xfa\xe1\x11\x86\x33\x75\x41\xde\xf6\xe2\x10\x7e\x3a\x85\xa1\xac\x96\xa4\x58\x42\x9d\xe1\xfd\xe6\xcd\xf8\xcd\x1f\x46\x24\xcf\xa8\x10\x96\xf5\x40\x17\x4b\x79\x03\xf2\x09\xfc\xfa\x3f\x51\x19\xda\x04\xe7\x3b\xb9\x79\xb3\x99\xfc\x7b\xa9\x63\x80\x72\x3f\x66\x28\xf7\x80\x62\x7e\x2e\x28\xe6\x21\x1a\xea\x11\x45\x43\x35\x23\x88\x7a\x8a\xa4\x43\x40\xd4\x5d\x4b\x53\xc1\xf2\xef\x01\x1d\xde\xcd\xf7\x87\x22\x55\x03\x1f\xdd\x36\x24\xea\x01\x8b\x54\xf5\x10\x64\xef\xa2\x37\x0f\xd2\xc4\x73\x91\x26\x86\x98\x28\x7c\xfe\xd8\x98\x5e\x47\x44\xd4\x7e\x19\xdf\x50\xb3\x6a\xa8\x59\xb5\x61\x89\x86\x9a\x55\x43\xcd\xaa\x47\xb1\x19\x43\xcd\xaa\xa1\x66\xd5\x50\xb3\x6a\xa8\x59\xf5\x24\x6b\x56\xa1\xa8\x35\x14\xae\x2a\xbf\x3f\x14\xae\xda\x76\x94\x43\xe1\xaa\x96\xbb\xf9\xd0\x85\xab\xf0\x72\x0f\xd5\xab\x86\x68\xd2\x21\x9a\x74\x88\x26\x1d\xa2\x49\x87\x68\xd2\x21\x9a\x74\x88\x26\x1d\xa2\x49\x37\xdc\xf5\x21\x9a\x74\x88\x26\x1d\xa2\x49\x87\x68\x52\xf8\xdf\x10\x4d\xfa\x2b\x88\x26\x1d\x82\x49\x87\x60\xd2\x21\x98\xf4\xf1\x07\x93\x0e\x21\x5f\x43\xc8\xd7\x10\xf2\x35\x84\x7c\x0d\x21\x5f\x2d\x27\x63\x08\xf9\x7a\x6e\x21\x5f\x4f\xbf\x18\xd5\xa1\x62\xbf\x3a\x26\x38\x44\x7f\x3d\x05\xd4\xfa\x80\xd7\x7e\x2e\x78\xed\x21\xfa\xeb\xd1\x45\x7f\x0d\x05\xb1\xdc\x8b\x0f\x51\x10\x6b\xbf\x40\xf8\xa1\x34\xd6\xc0\x51\x9f\x59\x69\xac\x5e\xf2\xed\x5d\x14\xea\x41\xb6\x78\x2e\xb2\xc5\x10\x0b\x86\xcf\x1f\x1f\x03\xbc\xd7\x68\xb0\xa1\x52\xd6\x50\x29\xab\x1b\xb7\xbe\x89\x46\x0c\xe5\xb2\xcc\x50\x2e\x6b\x28\x97\x35\x94\xcb\x1a\xca\x65\x3d\xc9\x72\x59\x79\xae\xad\x3c\xf8\xce\x8a\x6a\x32\xcb\x98\xba\x60\x37\x5c\x6f\x36\x84\xaf\x37\x2e\xbd\x55\xb0\x2f\x7c\xb9\x2c\xd0\x27\xa6\x05\xcd\xf5\x42\x82\x6e\x84\xce\x53\x14\x21\x51\x86\xc0\x13\xac\x98\xce\xa5\xc0\xbd\xb7\x1b\xa6\x99\xe2\x34\xe3\xbf\x40\xe6\x53\x91\x92\x94\xc5\x4f\x4a\x07\xbc\xa3\x10\x4e\x02\x71\x31\x61\x41\xf5\x84\xaf\x8d\xc9\x4f\xe8\x22\x6b\x18\xf2\x82\x6a\x32\x65\x4c\x10\x5d\x24\x09\xd3\x1a\x21\x87\x08\x44\x48\x01\x16\x96\x50\x41\xea\x5a\xc3\x55\x05\x8a\x1f\x39\x67\xa2\xa0\x01\xab\x44\x43\x08\xa6\x57\x40\xc0\xc8\x8f\x87\x0c\x2e\x78\x61\xbc\xa8\xf1\x9e\x1a\x8a\xf4\x76\xdc\x30\x46\x50\x7c\x46\x64\xe1\x5d\xdd\x53\xe6\x40\x10\x2e\x35\x2f\xf4\x3c\x22\x69\x01\x04\xc8\x2a\x3d\xf6\xf0\x4e\x57\x25\xf8\xe3\x3d\x65\x4b\x29\x2e\x19\xfa\x14\x2e\xed\x77\x67\x45\x66\xff\x4e\xc2\xd7\xd0\x4f\x8c\x33\x84\x66\xca\x21\x25\x46\x15\xbd\x8c\xdb\xe5\xb2\x7b\x57\x7a\xde\xc3\x4d\x8e\x42\x0d\x00\x3c\x09\xbd\x54\x2d\x0b\xe8\x6a\xd4\x98\xdd\xd7\x60\x14\x29\x90\x65\x8d\xe4\x21\x71\x27\x22\x62\x62\x29\x44\x8e\x02\x26\x06\xfd\xb2\x3e\x24\x09\x93\x0b\xe4\x8a\x2f\xa9\xe2\xd9\x0a\xc6\x1f\x36\xde\x2d\x41\x34\xbf\xc1\xbe\xf2\xa8\xed\x2b\x77\x57\x6d\x55\x21\x0c\x5f\xb2\xf1\x05\xbd\xfd\xe0\x11\xd2\x1b\xa5\x56\xb8\x76\xdc\x83\x95\x90\xb8\xb0\xb5\x23\xeb\x63\x0e\x81\x92\x0c\x16\x91\xe7\x6d\x11\xd9\xcd\xdb\xf2\x42\xdf\x9f\x5d\x24\x4c\xba\x71\x49\xd4\x3a\xdf\x6e\x1a\x7f\xc9\xb1\x43\x0d\x00\x8c\x34\x74\x8f\xe3\x33\x5f\x1e\x3c\x04\x93\xbc\x07\x67\x4f\x3b\x3a\xe0\x0f\xbf\xdb\x33\x3a\x20\xcc\xe9\x3e\xed\x39\x79\xae\x9b\xed\x36\x0d\x32\x52\xbb\x9d\x66\x1b\x13\x4d\xab\x0c\xd6\xe1\x85\x68\x7e\xc1\x2b\xe2\x8e\x90\x38\xf1\x08\x84\xa9\xe0\x8f\x68\x10\x87\xd6\x70\x5e\x03\xaf\x7c\x84\xbc\xb2\x8f\x2f\xe2\xcc\xb6\xf1\xdc\xad\x7d\xc7\xf5\x9e\x9c\x11\xed\x1a\xc4\xe0\x6a\x18\x18\x6b\x4f\x57\xc3\xfd\xb3\xce\x47\xeb\x4f\xd8\x82\xff\x74\xf8\x0a\x76\xe0\x41\x41\x5f\xdc\xc0\x76\x4a\x9d\xb2\xbc\x3f\x2d\x98\x37\x92\x42\x5b\xa2\x99\x19\x18\xcb\xa3\x66\x2c\x03\xbd\x7d\x2e\xf4\xf6\xa9\x2b\x32\x3a\x67\xc9\xf6\x1e\xad\x3a\xfd\xba\xb4\xbd\x6c\x9a\xff\xd5\x82\x91\x94\x69\x4b\xf1\xc9\x94\x2d\xe8\x0d\x97\x2a\x10\x8c\x88\x6c\x1d\x7a\x31\xec\x74\x8f\xa9\x48\x8f\xad\xca\x55\xe8\x96\x35\xc1\xdf\xee\xbe\x2a\xd8\x4f\xd7\xba\x24\x85\x82\xcc\x5a\xf8\xd9\xc6\x55\xb9\xc2\x07\x86\x7a\x13\xa0\x2c\x40\xce\x04\x23\xe2\x74\x85\x5e\xa0\x5b\x2e\x52\x79\x0b\xef\xf3\x25\x1b\x93\x73\x99\x17\x19\x75\xda\x24\xa8\x99\xe0\x3b\x1d\x93\x0b\x46\xd3\x63\x29\xb2\xd5\x03\x2e\x77\x97\x09\xfd\x5e\x78\x7c\xc9\x7f\x0f\xc3\xd6\xdf\x49\x81\x85\xcb\xfa\xf0\xf7\xd0\xb8\x86\x6d\x47\xe3\x00\xf0\xf7\xc8\xbe\x6c\x08\x05\x47\x39\xe5\x82\x00\xe5\xee\xc1\xf1\x33\xaa\xcd\x95\xa2\x42\xc3\x67\xae\xf8\x7a\x26\x81\x3b\x10\x42\xe8\x6e\xd3\x51\xff\x48\xb5\xc1\xca\x7e\x4e\x7a\x71\xb3\x35\x61\x44\x3e\xa4\x4b\x0a\xe6\x2f\x83\x91\x3e\xa4\xbc\xc5\x24\xb8\x64\x5a\xd3\x79\x17\x58\xe1\x94\x2c\x8a\x25\x15\x44\x31\x9a\x82\xa7\xc4\xbd\xe6\xed\x32\x96\x99\xa6\xcc\x50\x9e\xf9\xb8\x38\x08\x26\x09\x23\xdb\xa5\xbe\x1b\xa3\xba\x53\xb4\xba\x02\x63\x90\x6d\xe8\x5c\xf6\xd1\xc2\xbc\xd0\x24\x83\x25\xbb\xcb\x28\x9a\x49\xd9\x3a\x73\x0a\x84\x27\x1a\xc0\xc8\x7b\xc7\xaf\x94\x95\xb8\x7e\xa4\x99\x66\xa3\xbb\x44\x02\xad\x3a\x53\x3b\x5e\xad\x30\xe3\x60\x79\xd0\xc3\x68\x76\xf6\xcd\x35\x6b\x1a\xf0\xfe\xfa\x42\x75\xa9\x1e\xbd\xaf\x7e\x87\x31\xa9\xd2\x0e\xc5\xbc\xc4\x2a\x1b\x89\x17\x99\x4b\xea\x3f\x18\x89\x1e\xb7\x2c\xdf\xc7\x48\x74\x1a\x2c\x43\x8d\xfb\xda\xda\xcf\x4e\x62\xc7\x60\x09\x1a\x34\x93\x47\x0e\x3a\x7d\x16\x16\xa2\x2a\xad\x3f\x8c\x04\x79\x59\x55\xcf\x5a\xd9\x88\x6d\x17\x5c\xac\x88\x58\x4b\x76\x35\x0c\x2d\xb9\xb0\x1a\xc2\xaa\x67\xc8\xee\x82\x61\xd9\xde\x62\x19\x55\xec\x75\xd1\xad\x20\xd5\x20\xea\x0a\x10\x50\x25\xe4\x23\x62\xf1\xb9\x4c\xa3\x5c\x54\x56\x44\x5b\x85\x40\x4c\xc8\x3d\x33\x03\x44\x82\x73\xad\x30\x45\x12\x45\xf5\x82\x8b\x39\x22\x8e\xb8\x71\x70\xac\x28\x8b\x04\xbd\xa1\x3c\xb3\x82\x5e\x35\x8a\xf9\x35\x79\x69\x3f\x16\xaa\x50\x37\xbc\x40\xa8\x26\x5a\x4a\x61\xff\xcb\x5d\x55\x05\x9a\xae\xf6\x94\x5e\xb5\xc1\x83\xf8\x57\xae\x8d\x54\xab\x8f\x7c\xc9\xbb\x52\xd0\x5e\x55\x8a\x22\xcb\x2c\x25\x0b\x7c\x19\x00\x71\x0c\x71\x39\x12\x41\x4d\x01\x56\xe2\x94\x47\xa0\xd7\x40\x48\x11\xa9\x98\x72\xc8\x51\x5b\x70\xbd\x08\x21\xcb\xec\x5b\x9e\xf1\x84\x1b\xf2\x0b\x53\x12\xf3\x97\x48\x13\x01\x20\x2b\x6b\xf9\xe6\xf5\xde\x97\x44\x3f\x64\x0e\x99\x53\x97\x2f\x07\x61\x63\xf2\x86\x29\xc8\x09\x5f\xe6\xf6\x5f\x52\x41\xe7\xa5\x32\x5d\x31\x5a\x14\xda\x84\x64\x89\x65\x7e\x0c\x3c\x62\x68\x45\x4e\x01\x47\xb3\x2c\x1b\x62\x06\xe1\x94\x18\xb6\xcc\xad\x5c\x04\xe2\x3e\xa6\x1e\x69\x20\xbe\x77\xcd\x10\x74\xf2\x1d\xfc\xf7\x38\x64\x03\x6a\x11\xd1\xdd\x60\xb6\xb6\x7d\x24\x52\x31\xbb\xde\xe7\x32\xbd\x72\x7d\x74\xda\x84\x4e\xab\x69\x65\xaa\x5a\x2f\x2c\x0d\x40\x52\xfd\x65\x45\xba\x81\x98\xb0\x92\x78\xc0\xcf\xf8\x5b\x5c\xfa\x9c\x24\x32\x5f\x05\x29\xd6\x76\x06\x85\xe3\xed\xd6\x0a\x99\x3a\x5c\x6a\x9c\x44\x27\xda\x06\x68\x10\xd2\xcd\xbc\x84\x94\x33\xf1\xbb\x7c\x46\x84\xac\xb5\xe2\x51\xde\xdb\x57\x5b\xef\xa0\xdd\xb8\x4c\xd2\x54\x9f\x44\x38\xaa\x13\xc5\xec\x75\x04\x2a\x5e\x3e\xfe\x2e\x97\xe9\x71\xd8\xa6\xc6\x4d\x44\xf1\xe7\xb2\x8c\x58\xbc\xa3\x19\xeb\x4b\xb5\xbf\x8e\x2d\x75\xc8\x36\x1f\x30\x89\xa4\x29\xcf\x68\x62\xf7\x07\x89\x4e\x95\xf6\xbb\xac\x16\x82\xdd\x62\x11\x86\xed\x65\x02\xbd\x7e\xbf\x8f\xea\x4b\x74\x77\x8d\xee\xb2\xae\x4a\xb7\x33\x63\xd4\xa7\xeb\xfe\x9a\x35\x33\xdf\x96\x7c\xd9\x2a\x88\xc0\x32\xde\xc9\x42\x74\xf1\x0a\x68\x63\x3f\xb2\xa0\x7a\x41\xc2\xab\x3a\xd8\x19\xc2\x68\xeb\x37\xaa\x3c\x6b\xa4\xd0\xbe\xa4\x07\x82\xd4\xa9\xd7\x53\x11\xc4\x40\x6f\x24\x4f\xa9\x48\x18\x59\xb2\x64\x41\x05\xd7\x4b\x72\xbb\x60\x02\x93\xfc\xb1\x14\xf8\x84\xbb\x9b\x21\xd3\xa3\xff\xbe\x60\xb7\x56\x17\x5c\x77\xb3\xed\x9d\xad\x04\x13\x42\x77\x75\x93\xca\x86\x39\x6d\xb5\x14\x0d\xe4\x54\x33\x75\xe3\x13\x31\x55\x0c\x72\x2f\x74\x65\x7f\xeb\xc9\x7c\xf7\xa6\xdb\x95\x16\xc5\x9e\x4a\x5e\x57\x60\x73\x25\x14\xba\x66\x14\xd9\x3e\x14\x3a\x5e\x75\x5c\x8e\xcf\x20\xaf\x5c\x26\x0b\x96\x16\x19\xeb\x52\x2d\xab\x12\x8e\x25\xb1\x11\x03\xf6\x21\x15\xd4\x90\x8c\x51\x6d\xc8\x1b\x7f\x7f\x2c\x7d\x87\x8c\x1f\x8a\x61\x9e\x71\x17\x67\xe4\xb3\xbe\x95\xcd\xf6\x44\x9a\xb1\x43\xcd\xcc\xc9\xbe\x0f\xab\x73\x92\x6c\xbf\x6c\x46\x1a\x9a\x35\x2f\x5e\x24\x5c\xbb\x25\xac\x2e\x0a\x79\x89\xb9\x75\xed\x2f\xf8\x5a\x22\x95\x62\xc0\x4b\x9b\xdf\xd8\x17\x8b\x3b\xdc\x3a\xe2\x42\x9c\xfa\xbb\xbb\xeb\xb9\xeb\x5c\x3a\x7b\xec\x20\x13\x1e\xd8\x4a\x5d\x16\x46\x67\x49\x8d\x9a\x85\xb3\x2b\x62\x5d\xe3\x25\x2a\x3b\x50\x7e\xca\x1f\x6a\x2b\x46\x8c\x6b\x2a\xd8\xab\xc3\xac\xce\x27\xae\xf5\x3e\x2f\x66\x75\xce\x98\x4d\xdb\x47\x5a\x3c\xf1\x6b\x89\x73\x87\x3d\x79\x4c\x47\x09\xce\xcf\xde\x19\x26\x0e\xff\x8b\xa0\xf7\x77\x7b\xe2\x4a\x12\x8f\xf7\xda\xa0\x00\xc0\xd2\xbf\x30\xc1\xd6\x12\x58\xb5\xad\xcc\x52\x6a\xb0\x89\x5b\xd9\x60\x1e\x5e\x24\xbe\xaf\x75\x7d\x32\x92\xc0\xf6\x83\xff\x5d\xd3\x0d\xf6\xcb\x5e\x62\x12\xe0\xfa\x8f\xf6\xf0\x3e\xf3\x9b\xb5\xc8\x1c\x9b\x09\x5f\x37\xf3\x6d\xa1\x03\x7b\xd3\x2c\xbe\xb4\x29\x6c\xad\x1a\x46\xf5\x8d\x60\x8c\x2f\x12\x13\x62\xac\xdd\x21\x82\xb3\x55\xd7\xc9\xe0\xe6\x44\x1a\x40\xb7\xee\x61\x8f\x23\x17\x73\xfc\xee\xce\x2a\xe5\x45\xdc\x4b\x8b\xf3\xbd\x2e\x93\xe3\x2b\x7e\x0a\x08\x7a\xc3\xa8\x3e\x3d\x26\xe7\x2e\xc4\x31\xe4\x84\x5d\xe5\x8c\xfc\x27\x99\x1c\x55\xbe\x34\x39\x6a\x71\x1e\x6f\xe1\x91\x8c\xae\x27\x0e\x05\x1c\x0e\x18\xb5\x59\xfb\x18\x66\xb8\xfe\x49\xbc\x87\xe0\xb1\xc9\x51\xa5\x52\x5a\xa5\xed\x7d\xc5\x1b\x96\x69\x79\x37\x1d\xae\xd0\x88\x30\x61\xe9\xac\x26\x29\x4b\x32\x6a\xe9\xd5\x8d\x3f\x43\xa8\x3f\x9e\x5b\xad\x1d\x4b\xd0\x82\x89\xe2\x72\xf0\x52\x3e\x76\x2f\xe5\xe0\xd7\x7b\x2e\x7e\xbd\x3b\x26\xaa\x6b\x21\x85\x77\xc3\x01\x06\xd2\xd1\x69\xf4\xbd\xac\x3b\xa7\x4c\x2b\x32\x90\x45\xe9\xc4\xdb\x46\x7d\x47\xa4\x5e\x39\xee\x6e\xa8\xde\xa7\x52\x8e\xcb\x56\xa5\xf8\xa6\x2b\xe0\x99\xe6\x11\x77\xd1\xef\xfb\x71\x57\x96\x4c\x60\xbf\xbe\xca\xd0\x6f\x2f\xb8\xdb\x7a\xeb\x76\xbc\x5b\x59\xae\x67\x00\xbc\xc5\x73\x42\xe9\xe1\xbe\xe7\x73\x05\xbc\xb1\x9c\x13\xd6\x2a\x70\x93\xba\xa5\x3a\xd0\xe7\x01\xa9\xf7\xeb\x41\xea\x45\x57\xf4\xa9\x41\xf5\xc2\xc8\xbb\xb0\x7a\x95\x86\xd5\x54\x93\xe5\x6f\x83\x00\xfc\xb8\x05\xe0\x9d\x63\x39\x1b\xb7\xb8\xb5\xcb\xdd\xc4\x8f\x01\xb2\x37\x88\xf6\x77\x84\xec\x3d\x6d\x28\x5d\x95\x16\x1f\x48\x3e\xed\x02\xd3\x55\x1a\xb6\xa2\xe9\xfa\x2a\x2c\x7b\xc6\xd9\x7d\xda\x01\x63\xf7\x24\x90\x75\xfb\x36\xd2\xe7\xb4\xd0\x9d\x26\xed\xb3\x28\x1f\x07\x35\x6e\x4f\x83\x24\xc3\x35\xc1\x5e\x5a\x24\x99\xa9\x94\x19\xa3\xa2\xe5\xfb\x4a\xce\x15\xd3\xfa\x3d\xa3\x69\xc6\x05\xdb\x02\x46\x49\xbf\xc1\x16\x83\x7c\xcd\x45\x65\x83\x2b\xca\x90\x4f\x5b\xe7\x3f\x45\xa6\x58\x3a\x06\x97\xb5\x5a\x4d\x6b\x8a\xc5\x4b\x3c\x72\xaa\x2a\xaf\x79\xa0\x07\xa2\xa8\xa4\x65\x04\x98\xdd\x2a\x57\x32\xb1\x1d\xe3\xab\x95\xea\xae\xe0\x8b\x89\x25\x7f\x6e\xec\xc9\x3b\xaf\x4d\xfb\xc3\xb7\x84\xb1\x14\xd2\xfc\x80\xd4\x1c\x0a\xf8\x17\x6a\x46\x13\x5f\x1d\xbc\x32\x20\x14\xec\xa2\x64\x5b\xe5\x04\xe1\x6d\xc7\x2b\x98\x36\x7c\x89\x5e\x86\x42\x79\xce\x05\x6b\x46\x9b\x37\xb1\x72\x52\xff\xf0\xfa\xf5\x9e\x8a\xae\x54\x54\x08\xb0\x83\x76\x6d\xf2\xe7\x70\x77\x3d\x01\x01\xc4\xd3\xa1\x10\x9a\x8f\x13\xb3\x1a\xd9\x8c\x07\xdc\xea\xdd\x71\xab\x1f\x2b\x55\x1e\x81\x56\xe0\xa1\xfa\xe0\xd1\x76\xf1\x82\x63\xfd\x4e\x40\xdd\x01\x58\x06\x5e\xf3\x4e\x48\xae\xc3\x2d\x85\xbc\x7f\x56\xed\x08\x95\x20\x7c\x8b\xf2\x86\xf5\x47\xb4\xb6\x69\xbc\x77\x45\x28\x46\xe6\xbb\x1e\xe0\xc4\xab\x3a\xb5\x29\x11\x8a\x90\xf2\xb2\x01\xa8\x58\x85\x27\xda\x05\x19\x6f\x85\x8f\xc2\xc3\xfd\x77\xb6\x7a\x0c\x78\x5b\xdf\x70\x1d\x69\xab\x9b\xa1\xb6\x8f\x0d\x89\x59\xb7\xd6\xf6\x12\xe5\xd0\x62\xe2\x84\xb9\xe5\xb6\x36\xdc\x6e\x95\xde\x8b\x37\x17\xfd\x58\xc0\x55\xcd\x8f\x5e\x8a\x47\xb0\x0f\x4d\xd0\x86\x3a\xaa\x81\x18\xaa\xe6\xac\xe5\x4e\xee\x1f\x3c\xb9\x57\xd0\x69\x44\x3c\xae\x2a\x7f\xdf\x33\xec\xb4\xa4\x89\x4f\x09\x6e\x5a\xee\xf3\xa1\xf1\xa6\x0d\x36\xfd\x9e\x26\x8a\x07\x03\x9c\xee\x04\xce\xd9\x04\xc8\x69\x3a\x9b\x7b\x07\xe4\xc0\x7d\xdf\x91\x76\x20\xad\x40\xfa\x7d\x8f\x24\xa1\xa7\xb0\x5b\x1f\xad\x90\xe2\xd8\x30\xb5\xe4\xc2\xeb\xa6\x1b\x87\x4d\x5e\x62\x8a\x61\x57\x61\xb8\x14\x31\x3c\x8f\xd9\x7f\x48\x56\x21\xee\x4a\xcd\xa3\x1e\xba\xf7\x25\x08\xb8\xa6\x01\x5f\x55\x8d\x3d\xd2\x86\xbb\x14\xc7\xa0\x35\x78\x62\x56\x55\x09\x01\x48\xf7\xe6\xf5\xeb\xdf\x44\x34\x24\xa1\x39\x4d\x20\x8b\xef\x15\xd6\x01\x5d\xf9\x42\xd2\x53\x56\xfb\x86\x87\x70\x4d\x0b\x03\xf2\xf3\x8a\x55\x88\x51\x1c\x0e\x85\xc3\x71\xc0\x3d\x83\x79\x9d\x83\xd0\xb0\xef\x4d\x41\xcb\xe0\x8e\x1b\xb2\xed\xa1\x83\xe9\xc1\xc4\x62\x33\x8f\x17\x61\x10\x65\x78\x18\x44\xdb\x1d\x84\xa1\x6e\xdc\xd8\x5a\xe3\x48\x06\x5c\xc8\xdb\xad\x65\xdf\x7b\xc5\x89\xb5\xf8\xad\xef\x04\x14\x5b\x5f\x91\x2b\x84\x8e\xd5\xf0\x59\xcd\x52\xfb\x2e\xee\xb1\x18\x2f\xc6\xf0\xb2\x78\xa8\x58\x1d\xac\xf6\xe0\x78\xb1\x52\x3a\xda\x70\xa8\xca\x46\x84\x09\x5d\xa8\x00\x07\x2d\x35\xef\x2a\x3d\x23\x9e\x71\xd4\xa3\x39\xa8\x58\x41\x95\x0f\x81\x89\x8b\x06\x3f\xda\x63\xf6\xa3\x0d\xde\xa6\xe7\xe2\x6d\xea\x09\x24\x73\x95\x80\x3e\xa2\x1c\x06\x7a\x48\x74\xf5\xed\x55\x66\xcb\xdc\xac\xa0\x08\xd0\x0a\xfe\x4e\x91\x7c\x05\xfb\x33\x48\x6d\x50\xa8\x00\xaf\xdf\xb9\x4c\x5f\x5a\x35\xd6\x5b\xde\xa3\xee\x30\xc8\xda\xee\xfa\xb3\x4c\x98\x57\xce\xb4\x17\x50\xae\x42\xb4\xb6\x72\x44\x45\xfa\xed\x73\x48\xa9\x17\xad\x5b\x37\x50\x6f\x07\x93\x4f\xbc\x5c\x43\xae\xbd\x83\xb8\x78\x23\x99\x62\xaf\xee\xdd\xb2\xdf\x3e\xf0\xc3\x86\xd6\xed\xf0\x43\x27\xaf\x00\xe8\xff\x09\xe2\x0f\xeb\x78\xbd\x21\xe9\xde\x00\xe5\x6b\x5c\x0f\xa7\xab\xc4\xc7\xfd\x89\x61\xf9\xca\x6b\xdd\x81\xe5\xab\x36\x6c\x4a\xbc\x37\x84\xb4\x3c\x15\x4d\x64\x9b\x4a\xd1\xf1\xae\x1e\x30\x3b\xcb\x7e\xad\xf0\x11\xcb\xec\x69\x7c\x1f\x34\xb6\x67\xad\xb1\x3d\xe6\x94\x7e\x4f\xac\x8e\x74\x0f\x39\x75\xff\x50\xc4\x9a\xfa\xd7\x87\x4d\x75\x24\xf6\x6b\xf2\x63\x0e\x80\xc3\xfb\x05\x1c\xf6\xf4\x87\x79\x0f\x86\xdf\x4d\xb1\x06\x06\xf3\x1d\xdd\x09\xfa\x14\x55\xcb\xae\xc3\xc1\x0e\xc8\xf8\x4e\xbe\xbb\x5d\x50\x73\xcc\xf5\x31\x3d\xee\xc1\x19\x9f\x38\xe6\xea\x32\x4a\xfb\x46\x37\xe5\x0d\x74\x77\xa1\x74\x5e\x7a\x19\x3b\x91\x85\x30\x63\x34\xaa\x91\x6b\xb6\x42\x58\x25\xca\x5c\x2e\x39\x5d\x8f\x9c\x82\xc1\x83\x15\x89\xee\x43\x9e\xc1\x56\xdc\x93\xbb\x78\xdb\x27\x1d\x24\x7c\x46\xb8\xd0\xc5\x6c\xc6\x13\x90\x56\x2a\x9e\x8c\x94\x19\x80\xc8\x3d\x44\xda\xbf\x9e\xfc\x35\xdc\x96\xfd\x29\x5a\x9d\x18\xac\x7a\xd3\x3e\xf9\xf0\xb6\x62\x67\x5b\x3b\xeb\x2b\x44\xb7\x64\x13\x61\x33\x7b\x81\xaf\x42\x69\xfd\xf8\xce\x3d\x21\x0c\x51\x34\xec\x03\x83\x88\x9a\x2c\x73\x3d\xf5\x98\x07\x03\x11\x41\x59\x6a\xa0\xca\xfd\x21\x07\x95\x63\x55\xd2\x7e\x40\x11\xc4\xe8\x15\xaf\x44\x65\xc1\x93\x52\xa7\xcd\xfe\x99\x3f\x91\x07\x38\x59\x5b\xa3\xa4\x7e\x5a\x7b\x81\x28\x36\xcb\x5c\x45\xf0\x2a\x82\x6a\xb6\xc9\xe2\xde\x0f\x72\x77\x78\x10\x55\x65\xbb\xf0\xc6\x07\x0a\x70\x2f\x97\x7b\x47\x79\xb1\xbe\xac\xb8\xaa\xf1\x54\xbc\xf4\xf8\xd4\xc5\xbc\x9e\x4c\x2d\xac\xe3\x9d\x99\x5a\x73\x5a\xa2\x76\xd6\x06\x4a\x59\x2d\xc7\x52\x93\x27\x2e\x4a\x1a\xa4\x2a\xf0\x94\x3e\xca\x1a\xfd\xb6\x21\x03\xdb\x76\x62\x6e\x61\x78\x36\xe6\xc2\x68\xa3\xc6\x67\xc2\xfc\xa4\x2e\xd1\x6e\xd1\xe5\x3d\xf0\x01\x49\xe5\x21\xab\x65\xee\x05\x42\x97\x20\xae\x25\xc6\xbe\x45\x81\x39\x3e\x5b\xd2\x3f\xc0\xa2\xe4\xda\x52\x41\xe8\x54\xcb\xac\x30\xe1\x32\xbe\x64\xdf\xde\x92\xdf\xbf\x22\x10\xeb\x94\x33\x65\xcf\x39\x9d\x23\x49\xac\x81\xba\x6a\x83\x70\x5e\x64\x6d\xa8\x32\x9e\x06\x39\x14\x10\x74\xfa\xe6\xf5\x6f\x5e\x8d\xc9\x69\xed\x7b\x5c\x93\x84\x66\x89\xf3\xda\x81\x6d\x2a\xfa\xea\x74\x45\x94\x2c\x44\x8a\x5b\xe6\x14\xb2\x24\x98\xa3\x5e\x97\x18\x1d\xb4\x94\x71\x6d\xf5\xab\x0f\xdf\xe8\x32\xcf\xd8\x5b\x84\x23\x1b\xa7\xc4\xd9\xed\x37\x92\xfc\xf0\xfa\x37\x23\x3b\x56\xb8\xc7\x3f\xbc\xfe\x8d\x1f\xea\xdd\x12\x77\x8e\xd9\xd8\xc7\x4d\x35\x67\x2f\x7b\x05\x6b\xee\x21\x6d\xdc\x69\x27\xda\xc8\x3c\x77\x48\x42\x1a\x92\x36\xaf\x63\x71\x00\xa5\x1d\xd2\x87\x51\x65\x34\xb8\x40\xed\xdb\x0e\xbc\x53\x9d\x8e\xd4\x6c\x6d\x7b\x84\x15\xaa\x99\x20\x53\x7b\x26\x34\x29\x72\x00\x94\xd5\x5a\x61\x34\x98\x1d\x5e\x46\x13\x36\x26\x3f\x89\x84\x79\xc0\x76\x19\xaf\x12\x4e\xd8\x08\x6c\x05\xb6\x57\x88\x54\x63\xa9\x26\x52\x18\x49\xc0\x6b\x55\xeb\x7b\x44\xcc\xa2\xd0\x08\x52\xc2\x35\xa4\xa6\x14\xf0\xfe\x03\x87\x2e\x15\x9f\x73\xb1\xf1\x98\xc5\xdf\x87\xa5\xca\x32\x58\x24\xdd\x70\xdc\xf7\x09\xc6\x6a\x01\xc3\xdd\x9d\x3c\xed\x42\x93\x2e\x0b\xb5\xee\xf8\x7b\x28\x6a\xb4\x46\x83\x42\x56\x3f\x42\xa7\xb2\x06\xe2\xac\xbe\x76\x27\x82\x14\x47\xef\xc5\x34\xc6\x53\x09\x1f\xa9\xf8\xda\x2a\x8e\x9f\x2a\x84\xdc\x12\x84\xd7\x77\xa5\x46\xb1\x59\xe7\xfb\xdf\xff\xa6\x0f\xe1\xf1\x57\x29\xc2\xda\x84\x35\xa3\x76\xc1\x8a\x9c\xf0\xe5\x92\xa5\x9c\x1a\x96\xad\x7c\x47\xac\x76\x48\x1c\x11\x18\x11\x5d\x80\x6d\xc1\xd1\xde\x3a\x0d\x93\x19\xe6\xf6\x0c\x97\x37\x95\xb0\x26\x0c\x82\x42\xc9\x1b\x47\x2f\xaa\x51\x90\x70\xe5\xed\x9b\xf0\x06\x50\x2c\x40\x16\x5f\xf3\x2c\x63\xe9\xa8\x73\xf8\xb3\x42\xd9\xdb\x3f\xaa\xdd\xf4\x46\x64\x75\x0d\x7d\x08\x1e\xf2\xb5\x5b\x0c\xe6\x1d\x47\xe1\x1a\x87\xdc\x62\xf8\x7f\x94\x9c\xfb\x1e\xf9\x75\xdb\xf5\xd8\xfd\xd0\xa7\xf2\x56\xb4\x5f\x2f\xa0\x49\xee\x62\xed\x78\x35\xaa\x81\xa9\xb5\xb3\x65\xbf\x6e\x5b\xff\xc7\xfa\x11\xd8\xe2\xce\xb8\x03\x5e\xe1\x67\xa0\x7e\x8c\x7a\x7c\x3d\x9c\xed\x99\xcc\x32\x79\x8b\xa6\x3f\xdb\x00\x3f\xd3\x70\xbd\xd7\xae\x41\x5b\x90\x41\x5f\x9e\xe6\x6e\x43\x85\x6b\xb6\xdd\x86\xbd\xf2\xbc\x4b\x43\x0d\x9b\x15\x19\x58\x92\x3a\xb1\xee\x5d\xaf\xda\x69\x94\x39\x52\xc1\xe9\x95\xd8\xd9\x01\x52\x9c\x19\x86\x21\xb4\x5d\xbd\x5c\xad\xf2\x3e\x0c\x33\xa7\xca\xd4\x21\x49\x4d\x83\x3e\xf7\xed\x3c\x36\xc6\x19\x24\xa5\x4a\x41\x28\xa1\xc6\x39\x5c\xec\xc3\x68\x38\x91\x84\x18\x3e\x15\xd9\xfd\x4b\xe1\x74\x4f\x41\xcf\x77\xdd\xd7\x68\xe8\x9b\xe4\x97\x68\x82\x91\xd1\x10\x91\x29\xfe\xd8\x42\x64\x02\xb8\x7d\xb4\x81\x70\xff\x94\x09\xbb\x00\x4c\x8f\xc9\x59\xf8\xb7\xc7\xa3\x72\x61\x65\x02\xfd\x76\x22\xc8\x31\xf9\xcc\x8c\xd5\x79\xdf\x92\x53\xa2\xb9\x98\x67\x70\x43\xed\x05\x78\xff\xf9\x12\x53\x52\x4b\x6d\x04\x5d\xb2\x31\x34\xbf\x34\x52\xd1\x39\x7b\x4b\x4e\x35\x59\x5a\x6e\xf1\x0f\x99\x15\x4b\xf6\x2e\xa3\x7c\xa9\x09\x0d\x3e\x6b\x96\x8e\x27\xe2\xaa\xb6\x41\xf3\x82\x2a\x2a\x0c\x2b\xd1\xf1\x28\x5d\x0b\x1c\x83\x1f\xf6\x0a\x4d\xce\x34\xbb\xa5\x2b\xfb\x95\xdc\x23\x37\x00\x37\xab\x71\x04\xa1\xf1\x00\x4c\x79\xd4\xc0\x94\x01\x70\xf1\x5c\x00\x17\x11\x44\xbe\xd9\x0b\x79\x17\x30\x78\xcc\x56\xb6\x46\x83\x7b\xce\x5b\x92\xbd\x40\x19\xb9\x13\x73\xc0\x76\xd9\x3c\xec\xbb\xa1\xb1\x2b\xfc\x70\x4b\x38\xf6\xba\xd7\xe7\x3c\x1e\x73\xd4\xf5\x6e\x48\xec\xc7\x06\x7b\x8e\x39\xde\x5e\xb1\x24\x51\xc7\x7d\x80\xcf\x4d\xcd\xdb\x91\xcf\xda\xb5\x7e\xa2\xc8\xe7\xa1\xd4\xf8\x80\x7a\xee\x8b\x7a\x8e\x8f\xfa\x13\x43\x3d\x47\x77\xba\x03\xf6\x5c\x6b\xd9\x84\x7b\x8e\x9a\x0c\xc0\xe7\xc7\x2d\x5f\x36\x02\x9f\xef\xea\xad\x8f\x19\x55\xd4\xc5\x80\x36\xfe\xd5\x0a\xbf\x01\x6d\xbc\x35\xbd\x7b\x44\x70\xde\x3a\x8d\x3c\x94\x0c\xd6\x01\xe8\x3d\x25\xb5\xb6\x1b\x30\xbd\xb1\x0c\xdc\xc3\xc4\x24\xd3\x4f\x10\x34\xbb\x64\xc2\x9c\xcb\x8c\x27\x5d\x15\xca\x1a\xde\xf0\xae\x22\xcc\x06\x11\xcc\x93\x1e\xfe\xe6\x6c\x81\x70\x7c\x68\x86\x86\x49\x52\xe4\x23\xb4\x78\x62\xe6\x88\x90\x32\x42\x0a\x74\x61\x8e\x08\xc0\x84\x99\x08\x76\x4a\x6f\xc5\x0d\x11\xc2\x24\xc7\xaf\x73\x4d\xbe\xfe\xa4\x00\xbe\x0b\x60\xab\xaf\xd0\xb3\x62\xeb\x23\xe1\x82\x70\x61\xff\xd0\xb6\x43\x44\x45\xbe\xcc\x65\x7a\xfc\x7a\xe4\xdc\x81\x32\x3d\x7e\x33\x22\xcc\x24\xaf\xbc\xe7\x71\x2d\xd1\xe5\x2d\xe5\x96\xe6\x1b\x9e\x11\x46\x93\x05\x78\x52\x3d\x3a\xd8\xa7\xd2\x74\xc9\x30\xb9\x98\x8f\xc9\x3f\xeb\x93\x18\x95\x89\xd3\xd0\x8a\xbb\x94\x37\x65\x46\x4b\x99\xe7\x52\x73\xc3\x70\x78\x38\x61\x9a\x01\x03\x82\x4a\x3a\xd1\xa4\xcf\xa9\xa2\x59\xc6\xb2\xaf\xce\xbc\x17\x57\x33\xf6\xba\x5c\xee\xda\x60\xd6\x4f\x0f\xe9\xf4\xfa\x1f\xee\x85\xc7\x58\xdb\x99\x01\x9a\xda\x4e\x5d\x0a\xf7\x2b\x58\x90\xa1\xeb\x14\x4a\x12\x81\x95\xd7\xbb\xce\xa5\x48\x7a\xe7\x95\xd8\x1e\xc4\xa2\x6a\x20\x96\x75\x67\x5c\x68\xe1\x64\x42\x34\x8f\x79\xcc\x26\xac\x9e\x66\x6e\x99\x7d\x5f\xc2\x25\x02\x12\x9a\x05\xe3\x36\x86\x9e\x73\xa1\x0d\x15\x86\x97\x88\xb7\x60\x44\xf3\x5d\x62\x5d\x42\x2b\x8d\xdf\xf0\xb4\xa0\x59\x04\xe6\xcc\xb4\xcb\xa2\x43\x1b\x2c\x8b\xab\x31\x39\x9b\xc5\xf0\xea\x91\x3f\xc6\x8f\x27\xdb\x66\xd3\x2b\x01\x3f\xb4\xe6\x12\xf2\xad\x6b\xe9\xff\x96\x94\x23\x3c\x3f\x9c\xe8\x88\x22\xbd\xd0\xe1\x35\x5f\x7d\x1e\x4f\x78\xfd\xa9\x5f\x41\x84\x1d\x42\xf6\x22\xff\x35\xcb\x65\x03\x07\x47\x57\x06\xf5\x86\x81\x6c\x45\x68\x9e\x67\x9c\xa5\x6b\x14\xd3\x51\xeb\x2a\x05\x29\xe1\x17\xcf\x2c\xaf\xa7\xde\x17\xc6\xfc\x09\xc0\xc1\xb5\xed\x29\x61\x9f\xe9\xba\x99\x60\x6d\x55\x42\xcb\x10\x47\x61\xff\xed\x2f\x3a\xfe\x8c\x0b\x33\xb7\x23\x14\xba\xcd\xb0\xe4\xdb\xc2\xe2\x40\xd6\x23\x4f\xfb\x6b\x47\x1e\xa9\x29\x30\x08\x9d\xdb\x43\x6d\xb5\xfa\x32\x9f\x60\xcd\x8e\x1f\x46\x62\xc6\x68\xda\x9a\x33\x43\xde\x7f\xbe\x3c\xf1\x4e\x05\xb7\x6d\xe8\xc8\xc3\xfd\xa0\xc6\x72\x87\xb7\xc0\xbc\xbc\x40\x70\x8c\xd4\x77\x1c\xcd\x78\xec\x0e\xfd\x58\xdf\x24\xe3\x24\x2b\xb4\x61\x6a\x9c\xc9\x84\x66\x8e\x5d\x4e\x8e\x1a\x7a\x98\x1c\xd9\xb1\x63\x62\x8d\x90\x9e\x20\x76\x51\xb4\x66\xb7\xeb\xa5\x69\xdf\x27\x92\xdf\xdc\x1b\x92\xff\x83\x97\x0b\xb4\xa1\xcb\x9c\xa5\x60\x7a\x6c\x58\x3b\xe8\x7e\x56\x64\x33\xfb\x5f\x38\x68\x55\x36\xe3\xb8\x49\x21\xf8\xcf\x45\xe9\xbf\x29\x95\x13\xc5\x74\xc0\xac\x55\xe4\xbe\xc6\xc5\xde\x53\x65\xff\xe8\x43\x5b\xd4\xf6\x2f\x6a\x35\x27\x2b\x8e\xca\xd6\x2e\xab\xbb\x60\xd7\x46\xae\xd0\xf9\xea\xbc\xca\xa5\xf9\xb7\xb6\xb2\x56\xe8\xa2\x25\x5b\x81\x33\x9c\x42\x9a\xde\x20\x1c\x34\xaf\xd2\x4d\xe9\x9e\xf3\x2d\xbb\xc4\x94\xa6\x57\xaa\x85\x5e\x12\xf4\xf6\x61\x56\xf2\x00\x07\x73\xbe\x78\x48\x9f\x36\x63\x8a\x59\x59\x8a\xd4\x5d\x80\x91\xf8\xd9\x40\x44\x96\x14\xa1\x74\x35\x42\xc2\x19\xa6\x31\xc5\xcf\x72\xbb\x14\xb7\xd4\xad\xa6\x67\xd0\xb8\xf4\x31\xe5\xa1\x58\x4c\xf9\xc3\x8d\xe5\x13\xf0\x6e\xb0\xac\x63\x34\xa8\xa5\x75\x78\x26\xbd\x27\x5f\x0a\x56\xc2\xd3\x5f\x4e\x57\x40\x4f\x5f\x11\x5c\x91\x4f\x90\xd0\x95\x0b\x68\x55\x46\xed\xb9\xed\x32\x41\x48\x3b\x6d\xfa\x98\xa1\xd7\x4c\x93\x5c\xb1\x84\xa5\x0c\xb0\x3d\x96\x71\x51\xb1\x72\x9d\xeb\x7a\x3f\x23\x74\xea\x06\x89\x0d\x5c\xb0\xfb\x89\x49\x08\xd4\xc6\xca\x10\x20\xd6\x45\x4e\xdc\xed\xed\x1d\x3d\xf5\xe0\x8d\xe9\x90\x5b\xf8\xdf\x1e\x8d\x82\x9d\x21\x3a\x6b\x6d\x37\xc5\xe8\xb0\x5d\xb4\xd3\xad\xd2\x07\x57\x1b\x07\x8f\x51\x57\x52\xe1\x1a\x6b\x6f\xbd\x7c\xf7\x90\x56\xf8\x5d\xf8\xda\x85\xa3\x5b\x4f\x29\x34\x28\x32\x85\x1f\x38\x34\xa8\xd1\x79\xd5\xf3\x16\x3e\x58\x6c\x90\x5b\x90\x9e\x71\x26\xb5\xd6\xeb\x51\xbf\xc0\xf8\xbc\x58\xb2\x51\x2c\x2b\xc5\x85\xf8\x77\xa7\x0e\x05\x46\x0c\x9d\x84\xaf\x1e\xea\xf4\x55\xfb\xef\xbb\x06\xd8\x7a\x64\xa5\x2f\x80\x81\x62\xc2\xb8\xaa\x08\xe1\xe7\xb3\x2e\x0d\x05\xbc\x96\x8b\x35\xaa\x0a\x0d\x9a\xfd\x5c\x00\x7b\xf9\xd7\xeb\x51\x6d\xd1\xeb\x29\x82\xfb\x08\xb4\x5b\x07\x48\xad\xbf\xd0\x10\xb1\xd3\x98\x68\x3a\x44\x1b\x55\x28\xd8\x99\xdd\x7a\x85\x62\x42\x1a\x1c\x19\x55\x15\xbc\xec\x6d\xe4\x2c\x47\x3c\x94\x5f\x24\x52\x90\x65\xe1\xdc\x27\xee\x5c\x9d\x9e\x9f\x39\x3b\xf9\x83\xc6\x5e\x55\xda\xde\xe9\x46\x94\x11\x76\x14\x52\xac\xad\xc8\xbb\x16\xdf\xdd\xbd\xc5\x6b\xd5\x4d\x5d\xbb\xcc\xeb\x40\xd9\x93\x7b\x5e\xd7\x6a\xe3\x43\xdf\x56\xbf\x5e\xc7\xb5\x0c\xcf\x23\xff\xc3\xab\xed\x2f\xef\x76\xc9\xa2\x6b\xad\xef\x89\x44\x57\x57\xf9\x40\xb8\xcc\x03\x47\xcc\xb5\x6b\x90\xbd\x84\xcd\x2f\x9b\x54\x49\x5d\xd1\x1c\x37\x2c\x39\x28\x95\xae\x72\x4b\xce\x94\x5d\x3a\x5f\xa5\x1e\xa8\x28\x17\x49\x56\xa4\x4c\x83\xca\x41\x53\xa4\x0e\x34\x2b\x91\xbe\x9a\x08\x96\x30\xad\xa9\x5a\xc5\x7d\x44\x90\x67\x2f\xde\x95\x1b\xe8\x47\xf7\x30\xb9\xb0\x9b\xa0\xd0\x9b\x74\xf6\xca\xcb\x9d\xc8\x67\x8d\xf2\x2e\x20\x23\xea\xa9\xa7\x5b\x31\xd0\xcd\x56\xa1\x9e\xf8\x8b\xea\xce\x1b\x07\xc9\xd8\x68\x50\x78\xc0\xec\xd8\x85\x59\x58\x55\x1b\x7d\x75\x00\x44\x92\xd7\x4c\xd8\x9b\xcc\x6e\x37\x1c\xfc\xa8\x15\xa1\xc6\xea\x7f\xe8\x31\x88\xfa\xb3\x6c\xcc\xd8\x66\xf0\x9c\x00\xec\xc5\xee\x95\xc2\x62\x68\x6f\x49\xdc\x47\x70\x5a\x3b\x54\x5c\x42\x93\x45\x49\x9f\x6e\xd9\x74\x21\xe5\xb5\xeb\x2e\xfa\x86\x54\x24\xcf\x8a\x39\x78\xd0\xa0\xa5\x95\x83\x8f\x69\xce\x75\x4d\x30\x18\x30\x1f\x8f\x10\xf3\x31\xc0\x2a\x9e\x0b\xac\xe2\x30\x98\xe2\x4d\xb4\xa9\x1f\xba\x78\x21\x33\x10\xd3\x50\x04\x01\x8b\x48\x80\x27\xba\x0d\x25\x53\x66\x0f\x11\xb3\x07\xcb\xee\xe4\x7e\xd1\xc5\x1b\xa7\xb0\x0d\xce\x78\x06\x01\x83\x96\xcc\xf9\x64\xcc\x70\x96\xd1\x8d\x13\x38\xce\xed\x82\x41\xb0\x70\x3c\x3f\x1f\xee\x16\x51\xe6\x9d\xca\xa0\xd9\x05\xef\x92\xb1\xf6\x09\x7f\xa9\x2e\x1d\xde\x9c\x66\x3c\x4c\xcc\xb2\xf6\x83\x85\xe9\x3c\x79\xbd\x38\xa3\xc7\xc4\x50\x12\xb5\x29\x43\xe4\x6b\xbc\x0c\xb3\x90\xc0\x9e\xf5\xe1\x5b\x45\xca\xad\xce\xd1\xa5\x0f\x9c\xfa\x76\x55\xd3\x7f\x69\x64\x9f\x71\x4b\x11\x83\x5c\x1a\x68\xa8\x3b\x5f\xa5\x47\x3b\xd8\xb1\x71\xe4\xe1\x6d\x4d\xa8\x1e\x13\xff\x9d\x63\x7a\x4b\x55\xc3\xec\xa4\x72\x85\x18\x6f\x98\xe2\xb3\x55\x1c\xbf\x67\x5b\xde\x02\x04\xc2\x30\x91\xfa\x00\xfe\xd8\x96\xef\x06\x4c\xcb\xb9\x44\x36\x79\x80\x30\x08\x19\xfd\x6a\x07\x90\x2b\x79\xc3\x53\x96\x8e\x2a\x6f\x7a\xc4\x08\x0a\x5b\x8e\xb7\x86\x1f\xdd\x67\xfe\x1e\x4e\x2e\x69\x90\x24\xc8\x06\x5b\x61\x1b\xf5\xdd\x01\x72\x08\xcb\xd2\x59\x18\x08\x36\xc2\xf9\x0d\x73\xfa\x73\xc1\xc8\x94\x51\x05\x59\xd5\xae\xd9\xee\x88\xdf\x7d\x08\x8f\x9d\x86\xfa\xb5\xb6\x7e\x26\x8a\x69\xbb\x3b\x0f\x75\x4f\xc0\x09\xe6\x8f\x44\x7c\x47\x92\x85\xd4\x2c\xd0\xdf\xaa\x14\x1a\x2a\x4e\x25\x72\x99\x53\x03\x9e\x30\xb8\x30\x53\xe9\x6e\x4d\x45\x62\x16\xa9\xdb\x21\x72\x1a\xdd\x24\xc4\x45\x88\x55\xe5\x89\x70\xca\x9a\xd5\x65\x4a\x64\x73\xad\x47\xa0\x34\xd1\x05\x70\x20\x31\xf8\xc6\x0b\x5d\xfe\x82\x5e\x2d\x90\x6b\xd6\x3b\x01\x8b\x1a\xc2\x2f\x98\x29\x91\x7c\xe3\xb2\x5f\xf4\x31\x38\xa1\xf5\x86\x66\x3c\xa5\xbe\xaa\x31\x8d\x67\xde\xb0\x7c\xe8\x26\x34\x85\x8a\x20\x38\x2e\xc7\x47\xbd\x7f\x23\x5d\xf1\x9d\x92\x48\xc4\xa3\x74\x84\x89\x97\xd3\x22\x40\x73\x80\x0e\xd0\x9a\x56\x61\x3f\x68\xd7\x03\x0d\x3e\xf5\x2f\xba\x0f\x22\xd0\x20\xfc\x16\xf1\x49\xfb\x95\xc9\x91\x51\x05\x9b\x1c\x8d\x62\xe2\xa7\x71\xfa\x84\xce\x29\x17\xda\x74\xd1\x11\xbb\xb2\x0f\x44\x48\x2a\xf3\xe9\xbc\x04\x95\xb9\xaf\xd7\x13\x2f\x89\x35\xd5\x5a\x26\x9c\x06\xc6\x50\x51\xf0\x9a\xe9\xce\xc6\x0a\xe3\x4c\xa9\x75\x50\x52\x6d\x78\x1f\x6c\x9b\xf6\x61\x25\xf6\x58\x8a\x17\x20\x96\x27\x0b\x96\x5c\xb3\x74\x07\x6b\x9b\x66\x5b\x63\xa3\x1a\x08\xe1\x17\xcd\xd4\x99\x98\xc9\x8d\xd2\x9d\x6d\xe4\x89\x9e\x7f\x61\x6d\x61\x01\xf9\xe1\x98\x99\x27\xeb\x87\x20\xdd\x61\xc4\xed\x14\x3b\x8c\x11\xc5\x6a\xa4\x4b\x4d\xa2\xb5\x5d\x44\xf0\x2f\xa2\x61\x86\x2f\xf3\x8c\xb9\x52\x74\xf8\xe3\x18\xba\x01\xa2\x36\xa3\x49\x9f\xa8\x73\xf6\xcd\xa8\x35\x8d\xa5\x34\x80\x9d\x37\xbf\x46\xda\xef\xd8\xc6\x5b\x56\xbb\x67\xed\x37\xad\x7e\x21\xeb\x17\xaa\x6a\xa5\x8b\x57\x2b\xec\x69\x13\x3f\x69\xb9\x41\xf1\xa6\xd6\x0f\x2e\x08\xce\xbd\x12\xc5\x01\x5e\x4b\xce\x08\xbe\x81\x82\x54\xe1\x8e\x22\x85\x98\x7b\x22\x67\xf7\x4e\xa7\x0a\xde\x49\x9d\x3c\xe4\x08\x6d\x00\x70\xfb\x23\x29\xb4\x9c\x07\x4d\x94\xd4\xda\x25\x7b\x3a\x9b\x55\x67\x88\x70\x61\x4c\xe5\xe2\x62\xe3\xf0\x37\xaf\x57\x79\x94\x06\x2c\x47\xea\x45\x48\x17\xcc\x0e\xee\x99\x94\xcf\x00\x18\x63\xc8\x97\xb3\xf7\xf5\xea\xd9\x7d\x89\x8c\xe8\x06\x06\xfa\xdd\xc2\xa9\xe2\xe4\xb3\x55\xcb\x9c\x97\x52\xcc\x01\x93\x4a\x13\x40\x64\xdb\xa7\xbd\xc7\xb6\x37\x32\x32\x65\x86\x0e\x36\xc4\xd6\x13\x3c\xd8\x10\x07\x1b\xe2\x60\x43\x7c\x48\x1b\xe2\x1a\x81\x7a\xa2\x86\xc4\xf5\x79\x0c\xd6\x44\xf8\xdf\x3d\x59\x13\x61\xfd\xef\x62\x52\x6c\x3e\x88\x83\x5d\x71\xb0\x2b\x0e\x76\xc5\xbe\xc4\x6e\x30\x2e\x0e\xc6\xc5\xc1\xb8\x38\x18\x17\x7f\x5d\xc6\x45\xa4\x86\x4f\xce\xc2\x58\x1b\xf6\x60\x66\x24\x83\x99\x71\x30\x33\x0e\x66\xc6\x9e\xb4\x44\x2a\xfe\x4b\x70\x56\x7c\x94\x09\xcd\x2e\x0b\x78\xeb\x34\x49\x98\xd6\x9d\xd6\xc6\xb6\x57\x90\x9a\x97\xca\xae\x54\x00\x10\xa7\x38\x5f\xa9\xf0\xfc\x82\xde\xeb\xc1\xb4\x54\xc0\xec\x01\x04\x5d\x26\x3f\xb5\xe7\x3d\x87\x3c\xff\x7f\xa5\x37\x90\x87\xbb\x7c\x46\x74\x22\x73\xa8\x86\xe7\xb4\xa0\x25\xc4\x11\x72\x43\x96\x45\xb2\x20\x8c\x6a\x8e\xa5\xd0\xe6\x8a\x0a\xb3\xfe\x9e\x4b\xaf\x81\x67\xd1\x43\x80\x73\xa6\x96\x5c\x63\xdc\x18\x4c\x82\x8b\xf9\x60\xad\x1c\xac\x95\x83\xb5\xb2\xbe\xec\x4f\xc9\x5a\x59\xa1\x73\x0d\xf4\xea\x60\xf6\xca\x31\x41\x8d\xac\x24\x3e\x10\x59\x3d\x65\x84\xfd\x5c\xd0\xcc\xdf\xcb\xf2\xe7\x95\x2c\x5c\xf8\x7a\xd4\xa9\xd3\x59\xc6\xc4\x72\x44\x1f\x65\x63\x90\x23\x82\x75\xa4\x6a\x2e\xdc\x8f\x65\xb4\x73\xcd\xee\xc7\x36\x6a\x6f\xad\x8b\x9e\x47\x2e\xf2\x34\xec\xa2\xe5\xea\x6d\x32\x8b\xb6\xb2\xdc\xbd\x21\x2e\x2b\xbb\xf8\x59\x8a\x0b\x47\xdc\x4e\x0d\x12\x0c\xb6\xc9\xe0\xd3\xd8\xbe\xe4\x95\x5e\xf4\x0d\xdf\x20\xb4\x6c\x55\xc6\x0f\xcf\x60\xdf\xc4\x71\xa0\xab\x11\x0d\xc4\xa0\x43\xd7\x07\x18\x4f\x9c\x5a\xd1\x27\x65\xbe\x59\x74\x66\xcb\x37\x8b\xa0\xa9\x5d\x7c\x24\xf6\x95\xb2\x74\x1e\x0c\x62\x7b\xba\x77\xc3\xd4\xb4\xe3\xbb\xff\x60\x6a\x1a\xf2\xb6\xf9\x2a\xdb\x7f\xbd\xba\x3a\x27\xf0\xf2\x3d\xcb\x75\xd1\x2e\x5e\x14\x95\x3a\x23\x1b\xf6\xdb\xb6\x6c\x20\x78\xb5\x0c\x2a\x94\xa8\x22\xce\x71\x13\xed\x72\xf7\x06\x8a\xf2\x6b\x5f\x2e\x3e\x76\xa9\x3f\x9f\xab\xad\x1d\x37\x77\x79\xfe\xa9\x82\x7c\x73\x85\xca\x42\xf6\x7c\x90\x34\x9d\x60\x84\xf1\x9f\x70\xbf\x80\xef\x92\xdf\x56\xd2\x72\x60\x06\x16\x29\xb2\x15\xa1\xb8\x69\xb3\x22\xcb\x46\x64\x06\x25\x15\xb4\x61\xb9\xb7\x7f\xd9\x03\x34\x26\x64\x72\xf4\xdb\xc9\x11\x59\x32\x2a\x80\x38\xdd\xbb\xbe\x65\x4f\x51\xd7\x7a\xf9\x33\x58\xba\x11\x4a\xb2\x56\xbd\x8e\xa7\xe7\x67\x70\x2e\xf5\x88\x64\xfc\x9a\xbd\x25\x73\x66\x46\x24\x97\xda\xfe\x7f\x61\x46\x4e\xed\x1a\x11\x08\x82\x1f\x91\x05\xa3\xe9\x88\xc8\x1c\xc5\x88\x07\x5a\x8d\x9e\xa4\x1f\x57\xaa\x8b\xf6\xf7\xbe\x4a\x5b\x51\xcf\x3d\x91\xce\x3d\x93\x4d\xcf\xa5\x36\x9d\x9d\xbf\x80\x76\xe6\x08\x98\x3d\x1e\xf8\xc0\x51\x4e\x3f\xaf\xce\xad\xef\x43\x4d\x7b\xa8\xd2\x6d\x39\xbc\xc2\xc2\xa0\xcc\x15\x8a\x6b\xa0\x4b\x8a\x4c\x8e\xe6\xcc\x4c\x8e\xac\xd4\xe0\xed\x06\xfe\x07\xfc\x7b\x72\x34\x26\x93\xa3\xc9\x11\x79\x09\x22\xd5\xab\x3b\xcf\x03\x24\xb8\x1e\x93\x41\x49\x2f\x9a\x11\x3e\xf0\x8e\x33\xd4\x82\x6b\x93\x1a\x13\xf2\xce\x27\xbe\x03\xa3\x86\x82\x1e\x84\xaf\xf6\xee\x5f\xc2\x6a\xef\x42\x46\xfd\x82\xb5\x24\xcb\xca\x27\xba\x3a\xed\x58\x8c\x84\x25\x6a\x93\x4a\xd6\xdf\x43\x1b\xbd\x7d\xc7\x65\x19\x3b\xae\xe9\xe4\xba\x69\x85\x27\x47\x34\xcb\x26\x47\x28\x18\xb4\x69\xf3\x4e\x9f\xa2\xa4\xc9\xbc\x20\x15\xb9\x64\xd9\xac\x53\x72\xea\x97\xa0\xd2\x31\xac\xae\x2c\x29\xee\xb4\x59\x9d\xb0\x74\x73\x42\x3e\x38\xdc\x29\xaf\x35\x5a\xa5\x6a\x2f\x77\x43\x17\xd3\x9e\x83\xbb\x2c\x5b\x6e\x31\xbe\x30\x3c\x21\xc5\x2e\xa9\x3d\xb7\x90\x84\x68\xcc\x7d\xd6\x38\x4f\x85\xf1\x58\x76\x35\x22\xb7\xc8\x6b\x30\xa6\x7e\xe4\xf4\xe3\x88\x15\x29\xf9\x6d\xb5\x97\x45\xbe\xe9\x65\xb6\xf1\x36\x9b\x88\x26\xfe\xa3\x9a\xd8\xe0\xee\x54\x71\x6f\x02\x5f\x4f\x69\xaf\x22\xea\xb9\x89\x79\x59\x01\x89\x90\x93\x60\xf1\x96\xc5\x9a\x58\x14\x04\x0f\xbe\x5d\x77\x65\x31\xab\x12\xf6\xa1\x52\x86\xb9\x80\xb5\x78\x61\x88\xe6\x73\x01\xd9\x8b\x85\x19\x81\xdd\xc4\xe5\x08\x23\x69\x81\xc5\x81\x99\x46\x33\x54\x2e\xb5\xe6\xd3\x0c\xb0\x86\x5c\x24\x72\x99\xdb\x0d\xef\x67\x81\xfb\x4b\x1f\x33\xfa\xe9\xf9\x19\xb6\x6b\x62\x29\xfe\x47\x57\xff\x4e\x46\xd9\xd3\xa2\x49\x5a\x2d\x7c\x59\x64\x86\xe7\x19\x1e\x05\x67\x8d\xb7\x22\x65\x94\xf4\x15\xb2\x09\x24\xb1\xf7\x9b\x95\xee\xc7\xf8\x8a\x8a\x62\x09\xf9\x2f\x62\xe2\xc7\x05\xbc\x1f\x7a\x0f\x99\xf1\xdc\x16\x3c\x02\x29\xd4\x0f\x16\x58\x5a\x4f\xea\x09\x6d\xd1\x69\xee\x24\x48\xc8\x49\xc9\x4d\x79\xf4\xa2\xd4\x97\xb0\xee\xf6\x74\x62\xa6\x57\x27\xbc\x9f\x06\xdf\x30\x33\x6e\xfa\xd0\x9a\xdd\x30\xb5\x32\x0b\x3c\x74\x8f\x70\x9d\xfa\xae\x51\x0d\xfd\x53\x9e\x09\x34\x08\xaf\xad\x47\x6d\x7e\xc1\x57\xef\x4f\x22\x09\x57\x63\x3c\x11\xb6\xf5\xc9\x4c\xca\xc9\x51\x3d\x85\x5b\xc4\x6d\xc8\x8b\x99\x94\x2f\x50\x5c\x82\x84\xbc\xd1\xa9\x6c\xeb\xfa\xc9\xe9\x40\x1d\xfa\xcf\x1e\xd9\xd0\xb3\x52\x81\xda\xe4\xae\x0d\xf9\x5c\x9a\xdf\x68\xf0\x11\x99\x28\x93\x20\xe8\xef\x8d\x0e\xa2\x31\x21\x9f\xa5\x01\x93\x22\x26\x9b\x27\x74\xcd\xc8\xea\xe4\x4c\xfb\x5b\x45\xf2\xb5\x32\x3f\x88\x8e\xce\x7e\x60\x0f\x32\xcd\x48\x42\x35\x1b\x91\x29\x4b\x68\xa1\x9d\xfb\xcd\xdb\x0e\x5c\xa5\x3d\x4b\x79\xad\x46\x66\x24\x8e\x3b\xb6\x55\xae\x9a\xc7\x39\x78\x8d\x06\xaf\xd1\xe0\x35\x7a\x36\x5e\xa3\x66\x2a\x76\x48\xcf\x11\x82\x03\x44\xea\xe5\xcb\xe0\x3a\xb2\xd2\xcf\xe0\xef\x79\x82\xfe\x9e\x5e\x46\x8b\xbd\xb9\x7b\x36\x1d\xd9\xad\xd9\xf5\x46\x7c\xbc\xb3\xad\x7b\x90\x2f\x21\x1f\xbe\xd1\xc4\x64\x2b\xaf\xe6\x04\x53\x68\x3c\xc4\xc8\x2e\x6a\x8f\x45\xec\x6c\x6a\x69\xe6\x2f\x80\x8e\x6a\x24\xf6\x71\x2f\x34\x9a\x6b\x77\xbc\x19\xcd\x3e\xb4\x4d\xb7\xa2\xd9\x8b\x56\x3a\x51\x62\xb2\x80\x16\xca\x8a\x79\xbe\xba\xb6\x9b\x55\x8c\x7d\x4e\x74\xcb\x59\x76\xed\xdd\xa6\xf9\x76\xcf\x75\x6f\xb6\x91\xe8\x74\x5f\x14\x19\xdb\x4a\x7a\x8d\x5e\x28\x95\x76\xa7\x3c\xb1\x35\xb3\x49\xab\x20\x7b\xcb\xad\x92\x1a\x23\x99\x7c\x61\x14\x07\xb6\xae\x1b\x61\x5c\xe8\x65\x69\x0e\x21\x29\xcb\x19\x16\xbc\x97\x22\x22\xaf\x00\x1c\x8f\x9d\x0a\x4b\x99\x3a\x41\x8d\x8a\x15\x01\xc4\xae\x26\xec\x5b\xce\x14\xe0\x9e\xd3\xb8\x78\xbb\xe3\x3c\x20\x60\xb7\x4c\xba\x2c\x22\x0e\xe9\x01\xa7\x2b\xf2\xe5\x0c\xa4\x44\xbd\x90\xb7\x27\x0b\x9e\x7a\xeb\x35\xd6\x74\x32\x92\xfc\x5c\xf0\xe4\x3a\x5b\x91\x8c\x19\xc0\x74\x8b\x14\xd7\xc3\x15\x98\x0c\x5c\x90\xab\x18\x79\x05\x59\x19\xdd\xc7\x3e\xff\x74\x45\xfe\x5c\x7e\x90\x7d\x73\x42\xa8\x5e\x69\xab\x56\xd9\x8f\xa4\x8a\xdf\xd4\xdd\x29\x29\x4b\x5c\xf6\x6f\xea\x15\x67\xca\x35\xd3\x56\xdc\x9d\x41\x67\x29\xcb\x0b\xb3\x1a\x61\x44\x2b\xc9\xf8\x8c\x19\xbe\x64\x27\x8a\xdd\xc8\xc4\x65\xcc\xb5\x0b\x07\x29\x76\x13\x23\xec\xb9\x84\x92\x26\xca\x8e\xaf\x81\x40\x62\x73\xb0\x9d\x57\xd4\x1c\xaa\x7c\x75\x51\xe8\x08\xb3\xf3\x4b\x2b\xc7\x5b\x7e\xd8\x32\x68\xef\xe2\x69\x40\xa1\x0f\xda\xc4\xa0\x4d\x0c\xda\x04\xb6\x79\x0e\xda\x44\x44\x60\x0f\xa7\x4c\xdc\x8b\xb6\x10\xcf\x64\xff\xca\x42\x03\x9b\xa5\x6b\xcc\xf5\x89\x44\xcd\x6e\xad\x2d\xc4\xb2\xca\xc1\x95\x85\xfa\x89\x8c\x84\xa3\x56\x61\x7b\x6b\xf7\xb7\x91\xe1\x78\x82\x4d\x1b\xca\x74\x8c\xc9\x85\xdb\xa3\x7b\x77\x9a\x6d\x69\xd3\xdc\x2f\xe6\x7d\xe0\xee\x03\x77\x1f\xb8\x7b\x7d\xd9\x9f\x2e\x77\xbf\x47\x3b\xe1\x60\x07\x7c\x8a\x9c\xfd\xfe\x6c\x80\xdb\xdb\xff\x9e\x81\xed\xef\x69\x46\x9c\x7e\xb0\xa3\x6e\xaa\xe9\x13\xc2\x6e\xc7\x7f\x61\x06\x5a\xbd\x7c\x45\x96\xcc\x2c\x64\x5a\xf2\x84\x6a\x10\x2a\x21\x97\x5c\xf8\x02\xa7\xdc\xd2\x94\xbc\x88\x92\x68\x94\xc8\x51\x5f\xb3\x8c\x12\xc5\x66\x99\xcb\x57\xb0\x60\xaa\x0d\x10\x76\xe7\x38\xd6\x2a\xfa\xc6\xb9\x36\x56\xb2\x78\xa1\x18\xb1\xb2\x83\xa5\x6e\xb3\xb5\x30\xda\xc3\x03\x0a\x06\x7b\xf1\x33\xb2\x17\x47\x73\xed\x0e\x4e\xfe\x72\xf6\x7e\x33\xcf\xb5\x47\x72\x43\x9a\x84\x6d\xb3\x13\x6c\xc8\x27\x00\xba\x42\xc3\x65\x20\x67\x33\x08\x0d\x43\xe4\xcd\x8a\x4c\xe0\xad\xc9\x11\x44\x2e\x58\x09\x6f\xe2\xee\x95\xcb\x7a\x01\x48\x45\xee\xe4\xf0\x5c\x61\xd4\xb4\x26\x93\xa3\x7f\x02\x3d\x98\x41\xe2\x02\x72\xcb\x14\x73\x4a\xca\x92\xf9\x5a\x46\x54\xac\xdc\xad\x7c\x04\x2a\x58\x77\x65\xca\x4e\x01\xa5\x5d\xa3\x42\xf1\xa2\x4b\x9d\x72\x42\x08\xc7\x63\x06\xba\x29\xb9\x52\x05\xb3\xab\x18\xe1\xb5\x6f\xbd\x69\x3c\x04\x95\xcc\x68\xa6\x19\x81\x28\xf5\x5b\xae\xdb\xe8\xe9\xc6\x1c\x1b\x29\x13\xbc\x73\x84\xef\xa1\x11\xe0\x7e\x1d\xa2\x6e\xf3\x00\xb1\xd3\x51\x39\x32\x1c\x29\x9c\x31\x48\x7e\x43\xcb\x29\xe3\x1c\x2c\x8b\x4e\xc3\x57\xe0\x99\x3b\x65\x35\x6e\xb2\xa0\x00\x49\x97\x39\x17\x20\x21\x88\x52\xb4\x93\x65\xbb\x68\x54\x63\xe2\x46\x6f\x35\x1d\xa7\xa9\x18\x37\xf6\x68\xe5\xed\xa3\x9d\x72\x94\x04\x9f\xc6\x87\x3e\xd9\x4a\xaa\xad\x1d\x4c\xd1\x89\xa9\x21\xfa\x49\xcb\x25\x43\x57\x0a\x91\x09\x38\x79\x2a\x6e\x94\xaa\x45\x1f\x6c\x02\x58\x64\x4a\x13\xcb\x9d\x15\xcb\x56\x1e\xe4\xca\xb0\xf8\x19\x7a\x46\xa0\x43\xbb\xd0\x31\xd2\x48\x5a\xc5\xb1\xc0\x7a\xd3\x6a\xc9\x45\xbd\x7b\xed\x04\x6d\x41\x74\xce\xb1\xf0\x2a\x37\x63\xf2\x23\x24\x5d\xd1\x86\x8a\x84\x8d\xc8\xc5\x9f\x4f\xdf\xf9\x14\x73\xe0\x61\x81\x30\x7a\x25\x33\x57\x7a\x9a\x09\x59\xcc\x17\xf0\xc0\x61\x58\x0d\xcf\x32\x9f\x4c\x0c\xc7\x24\x0b\xe1\xaa\x17\x57\xfd\x36\xeb\x79\x9d\x7a\x53\x46\xec\xaa\x13\x13\x09\xdf\xab\x9c\x6d\x2c\xd9\x55\xea\x0e\x2b\xe0\x08\xa8\x35\x40\xa2\x9b\x52\x6d\xc0\x43\xbb\xb3\x2d\xa9\x59\xad\xf0\x74\xa3\x4b\xb3\xd8\x96\xee\xad\x9b\x4f\x3b\xc9\xde\xda\x2b\x6b\x98\x65\x97\x97\x8b\x3a\x1b\x9b\x3b\x8f\x50\xd7\x1e\x71\x6c\xee\x60\x6c\x76\x2e\x62\x1f\xe1\x9e\xeb\x58\x95\xe3\xe8\x53\xe3\xf3\x42\x85\xd4\x42\x9d\x0e\xc7\xd8\xd9\xf8\x67\x07\xbb\xab\x1e\x6d\x1c\x2f\x44\xe9\x81\xdc\x7e\xc3\xa0\xce\x20\x0d\x00\x58\x46\x95\xab\x77\x0d\xfe\x52\x6e\x5e\x68\xa2\xe9\x0c\x2e\x0e\xd5\xba\x58\xb2\x0a\x7a\x7d\x41\x7d\x51\xee\xe0\x67\x1c\x11\x76\x63\x39\xe5\x0c\x7f\xc0\x6e\xf4\x76\xb0\xf3\xbb\x51\x18\xbb\xf8\x38\x15\x3b\x93\x44\x2e\xa7\x5c\xe0\xf4\x61\x1d\x61\x7b\xc7\xd5\xf3\x1e\x68\x45\x9d\xf8\xc0\xba\x94\xc3\x19\x11\x5d\x24\x0b\xa8\x5d\x2c\x62\x12\x8d\x11\x9c\x92\x21\x2c\xbf\xc8\x73\xa9\xcc\xfa\xbb\x98\x8f\x8c\x1a\x12\x07\x09\x80\xae\x76\x22\x15\xa9\xc5\x89\x36\x78\xa8\x77\xa0\x07\xe5\xcb\x1d\x8b\x78\x56\x1e\x55\xc7\x1a\xb0\x1c\x9d\x47\x8b\x47\x69\xcb\xc0\xe8\x60\x0f\x28\x24\x57\x51\x95\x11\xe2\x25\xe0\x1a\xab\xaf\x26\x72\xb9\x84\x08\x50\x26\xa0\x8e\x34\x83\xc3\x0c\xa5\xe5\xe3\xe5\xab\xac\x6a\xf0\x45\xc7\xbf\x37\x2d\xad\x8e\xcf\xfb\x0e\x6c\x4c\xd4\xd6\xbb\x7f\xa8\x2c\x6e\xcf\x5d\x82\x3b\x62\xdd\xe2\x3e\x02\x3c\xc8\x06\x6d\xef\x4e\xda\x17\x44\xc3\xdc\x45\x41\x54\x5b\x6c\xc1\xfe\xd6\xff\xe9\xae\xfd\xdd\x16\xbe\x27\x33\xae\x6e\xca\xa6\x3b\xd3\x4c\x6a\xf6\xc5\xc4\x31\x11\xdb\x90\x42\x69\x48\xa1\x34\x38\xb8\x06\x07\xd7\x33\x77\x70\x21\xb1\x1b\xf2\x28\xed\x71\xe1\x06\xa7\xda\x43\x24\x53\xda\x25\xe1\xfc\xfa\x7e\x0e\x69\x95\x7e\x85\x69\x95\xd6\xb6\x7e\xc8\xad\x34\xe4\x56\x1a\x72\x2b\xdd\xf1\x3e\x0d\x09\x96\x86\x04\x4b\x43\x82\xa5\x21\xc1\xd2\x90\x60\x69\x4b\x99\x68\x48\xb0\xd4\x3d\xa8\xfd\x8a\x7e\x43\x96\xa5\xcd\x36\xba\x21\xcb\xd2\x90\x65\xe9\x01\xd6\x69\xc8\xb2\xf4\xa8\xb4\xa1\x21\xcb\xd2\xee\x1c\x66\x48\xb5\x34\xa4\x5a\x1a\xbc\x4b\x83\x77\xe9\xd7\xe9\x5d\xfa\x35\xe5\x5b\x1a\xfc\x42\x8f\x2a\xe9\xd2\x7e\xdc\x42\x43\xfa\xa5\xfd\x47\x99\x6c\x72\xb8\x3d\xbf\x98\x9a\x56\x9b\xf8\xc3\x05\xd6\xec\xd7\x86\x32\x64\x63\x1a\xb2\x31\x0d\xd9\x98\x06\x85\x63\x50\x38\x06\x85\xe3\x11\x29\x1c\x4f\x3f\x25\x53\x45\xa1\x18\xf2\x32\x3d\x70\x5e\xa6\xbd\xeb\x13\xbf\xc6\x0c\x4d\xad\x3a\xf2\x90\xa6\x69\x60\xfb\x64\x60\xfb\x03\xdb\x7f\xf4\x28\xf6\xc1\x86\xf8\x64\x59\xfe\x43\xd8\x0f\x87\xd4\x4d\xfe\xe1\x90\xba\xe9\x5e\x52\x37\x0d\x99\x9b\x06\x53\xf3\xe3\x31\x35\x47\x13\xfe\x55\xe5\x70\x7a\xc2\x29\x9c\xba\x64\x90\x21\x8f\xd3\x86\x11\x0e\x79\x9c\x86\x3c\x4e\x43\x1e\xa7\xa7\x9b\xc7\xa9\xc3\xe6\x3a\x24\x73\x1a\x92\x39\x0d\xc9\x9c\x86\x64\x4e\x43\x32\x27\x7c\x7c\x77\x85\x6c\xc8\xe8\xf4\x10\x1b\xf0\xdc\xd3\x3a\x49\x9d\xd0\x8c\x8b\xf9\xf8\xe6\xcd\xf8\x9d\x92\x5a\x3b\x37\x0d\xda\xa4\x2f\xd8\x8c\x29\xcb\xfd\x36\xf0\xf3\x0d\x6f\x95\x2c\xdd\x49\x6b\x95\x04\x00\x12\x90\x39\x56\x47\xe4\xa9\x15\x32\x67\x2b\xc7\xf9\x67\x0c\x98\x83\x5f\x95\x3d\xfb\xa1\xbc\xd3\xa9\x8c\xfb\x85\xd1\xee\x90\xc4\xa1\xaf\x07\xa6\xf6\xa1\x3f\xdd\xa3\x7f\x63\x72\x74\xb8\x18\xea\xae\x69\xbd\x3d\x39\x29\x4d\xd6\x76\x62\xa9\x4c\xf4\x49\xa1\x99\x3a\x9e\x17\x3c\x65\x27\x6e\xdb\x39\x53\xfa\x3b\x70\xd8\xee\x57\xe2\x85\xed\xa9\xcf\x6b\x4f\x57\xe5\xaf\x96\x52\xd8\xc3\x9d\x9d\xcb\xf4\xd4\xfd\x56\xb1\x9b\xd4\x97\xcc\x0b\x9a\xa5\x43\x93\x2c\x42\x27\x24\x97\x29\xa1\xa1\x9b\xc1\xf3\x3a\x78\x5e\x07\xcf\x6b\x7d\xd9\x0f\xeb\x79\xed\x70\x18\x62\xfa\x1d\xb7\x37\x7e\x24\x07\x5f\xaf\x30\xe5\xc6\x05\xd9\xd5\x2f\xdc\x83\x90\x75\x3a\x85\xa7\x6c\x41\x6f\xb8\x2c\x94\x53\xaf\x3d\xe5\x3a\xf4\x8a\xd8\x39\x1f\x53\x91\x1e\xa3\x11\x69\xef\xb8\xb2\x3e\x6b\xd3\xed\x61\xf6\xf8\xeb\x66\x1b\x7d\x4c\xe8\xfb\x5b\xa5\xf7\xeb\x09\xf6\xf3\x6c\x76\x00\xb7\xb1\xb7\x76\x27\xf0\x76\xfe\xdf\x1e\xab\xfc\x91\x6b\xb3\x81\x9d\x7a\x5d\xa4\x95\x87\xba\xbb\xaa\x07\x5e\xfa\xa8\x79\x69\x93\xb6\xb6\x87\xbd\x6e\xed\x7b\x7f\x64\xe0\x4e\xba\xf8\x20\x42\x3c\x17\x11\xc2\xd2\xa9\xfe\x02\x04\x1c\xe5\x20\x3e\x6c\xaf\xd3\xe0\x91\xee\x52\x62\x1e\x01\xab\x00\xf2\x7d\x8f\xec\xa2\x03\x2b\xe4\xb2\x4b\x24\x7b\xd2\xbe\x96\xf4\xdb\x05\x03\xdb\x54\x17\xed\x2a\xf2\x9c\x29\x92\xf1\x25\x37\x65\x72\xc3\xc2\xbb\xae\x73\x99\x3a\xd3\xbe\xf3\x65\x68\x66\x3c\x14\xad\x1c\xd0\x9f\xec\xaf\xee\xd2\xe9\x25\xcd\x32\xb4\x85\x0b\xf2\x89\x0b\x3f\x8c\x1a\xe9\x43\xb1\xc3\x0e\x80\x0b\xf3\xc3\xf7\xcd\x37\xc5\x72\x92\x79\x4c\xc8\x2a\x57\xa5\xec\xbb\x63\x8a\x51\xcb\x60\x29\x94\xb7\x1b\x66\xad\x7c\x6b\x23\xc9\xed\x82\x27\x8b\xda\x7c\x61\x31\xe0\x9f\x24\x95\xb7\x02\x7d\x67\x2e\xa7\x18\xbc\xf4\xc6\x2e\xdc\x98\x90\xda\x97\x23\x03\xe4\x94\x91\xd7\xc1\x93\x9c\xe5\x0b\x4a\x66\x8c\x5a\x92\x42\xe6\xd4\x30\xf2\xd7\xf3\xd3\x4b\xdb\xff\x95\xfc\x7f\x99\x92\xe8\xe5\xa4\xd3\x8c\xa5\xe8\xff\x31\x24\x63\xd4\x25\xd4\x41\x15\x81\x48\x45\x3e\x78\x9b\xf9\x92\x19\xc5\x93\xaa\xf7\x68\x4c\xc8\x25\x1e\x52\x18\x49\x62\x20\x2c\x4c\x93\x4c\x8a\x39\xd8\xdc\xe3\x3e\x5d\x07\x48\xd0\x79\x94\xa1\x6f\xef\xbb\x08\xab\x78\x45\xd5\x9c\x99\x0b\x20\x71\x77\x12\x88\x37\x19\x08\x37\x91\x3f\x15\x0c\x82\x46\xe2\xc6\x96\xd6\xbd\x3f\x6d\x60\xeb\x90\x9f\x28\x63\x54\x89\x4a\x54\x63\x60\x76\x89\x14\xba\x58\x22\xc8\xcf\x6e\x1c\xb4\xb7\x57\xc8\xb6\x4e\x99\xb6\xf4\xb3\x7e\xdb\xa6\x2b\x52\x80\x33\xd9\x72\x36\x38\x04\x71\x96\x9a\x16\x7d\xc2\xc0\x0a\xbe\x3b\xff\xf2\xc5\xf0\xcc\x99\x88\xcf\x99\x4a\xac\x68\x37\xef\x32\x96\xe1\xcb\x84\xde\x30\x45\xe7\x8c\xbc\x3b\xff\x42\x8a\xb2\x1b\xf2\x32\xb0\x69\x84\xbc\x50\x92\x87\x9e\xf1\xb6\xf8\x3c\x4f\xef\xce\xbf\xbc\x22\x12\xf0\xa9\x59\x86\x59\x44\x65\xaa\xff\x64\xcf\xb9\xa5\x0e\x65\x06\x1d\x9c\x3e\xdc\x17\x12\x6d\xa1\x4f\x60\xef\xd3\x3e\x15\x7a\xcd\xcb\xbc\xe3\x89\xeb\xc9\xbd\x6a\xa7\x71\xd4\x4c\x50\x0f\x6b\xa2\xeb\xf4\x4f\xfb\x53\xe6\x50\x0a\x9b\x79\x45\x37\xab\x70\xdd\xed\x78\x76\xfc\x60\xda\x0e\x4f\x38\x0d\xf6\x24\x8c\xc8\x36\x47\x69\x44\xd8\x78\x3e\x26\xff\xf1\x3a\xce\x77\x45\x45\xf8\x94\x9d\x28\xd7\xee\xb2\x08\x79\x4b\xfe\xe3\xf5\x6f\x10\xaa\xa1\xab\x1d\xed\x9d\x68\xb9\x49\xf7\x64\x3f\x7e\x89\x1a\xf8\x8b\xbf\xf3\x4b\x2a\xe8\x3c\xf2\xa9\x36\xf1\xfa\x3d\x8d\xdd\x51\x9d\x9e\x63\x5f\xa7\x51\x0f\x39\xf6\x8c\x6a\x83\x6c\x91\xaf\x7b\x00\xee\x20\x22\x43\x77\x9b\xf8\x83\xfd\x30\x31\xdc\xc1\x1e\x5a\x2e\xae\x67\x1c\xeb\x12\xd4\x9f\x42\x84\x76\x4d\x8e\x70\x60\x24\x25\x33\xb2\x90\xb7\x44\xce\x8c\xf3\xb5\xd7\x78\x02\x20\x4a\xa8\x98\xb7\xc6\x29\xca\x29\x20\x46\xd2\xbf\x30\xc1\xd0\x82\xdf\x25\x13\x49\x0d\xaa\xbc\x3d\x98\xf3\xf0\x12\xf1\xfd\x6c\xb9\x9b\x7f\xf8\xdd\x9e\x09\x71\xfd\x86\x6d\x38\xc0\x7b\xa2\xc6\x70\xae\x36\xa1\x82\x80\x13\x47\xe9\xe3\x28\xf1\x5c\xcb\xa3\xa4\xaa\x48\xda\xc1\xae\xf3\xa8\xed\x3a\x83\x81\xe3\xb9\x18\x38\xee\xe8\x23\x39\xb8\xb7\xbb\xc9\x9a\xb2\x67\x27\x09\x10\xa7\x4e\x97\x48\x4c\x3a\x9c\x7b\x44\x79\x27\x39\xd0\xf8\x67\xe5\x1c\xc1\x35\xe9\xef\x0a\x29\xc5\xe9\x87\x5b\x0f\x72\xc1\x68\x7a\x2c\x45\xb6\x7a\xac\x8e\x17\x64\x93\x87\xb0\x9b\x95\x67\xb8\x83\x09\x43\x0c\x5d\x19\xcb\x02\x22\x55\x19\xe4\x02\xea\x90\x5e\x57\x9b\x3b\x99\xb1\xda\x55\x22\xf6\x90\x70\x1d\x2c\x49\x4e\x10\x74\x0c\xf7\x30\x0a\xec\x1d\xa4\x9c\x6e\x04\x74\xd9\xaa\x9e\x30\xb7\x49\xf9\x3c\xe0\x6a\xd3\xc4\x14\x34\x8b\x16\x3b\x08\xa8\xe5\xaa\xc7\x37\x76\xbf\x8b\x1e\xd3\x24\x96\xb1\xc4\x74\x82\x90\x33\x3a\x65\x19\xf9\xb9\x60\x6a\x85\xaa\x6f\x69\x40\x75\xe2\xd6\x92\x1a\x67\x4f\x0c\x9a\x14\x80\x62\x4b\xcc\xac\xa6\x4b\xe6\xab\xb3\x60\x7f\xfe\xe3\x10\x57\xe0\xd3\x11\xa3\x48\x82\x33\x03\x5c\xf6\x8d\xe4\x76\x59\x8c\x92\x96\xac\x80\xe0\x37\x5d\x39\x49\xc2\x81\x1b\xdd\x4b\xde\xbe\xe2\xbb\xb2\x1f\x74\x1d\xb9\xef\xc2\x0c\x8e\x73\xaa\xe8\x92\xe8\x95\x30\xf4\x5b\x44\x0b\x9d\xa7\xb8\x3a\x36\xdd\x13\x53\x05\x6f\xe9\xef\xe0\x3f\xc7\xe1\xe5\xfd\x02\xab\xd4\x5e\x75\x83\xef\x11\x68\x39\x80\x0f\x7b\x6c\xd0\x00\x3e\x1c\xc0\x87\xee\xbe\x78\x6f\xc4\x27\xf0\x25\x5c\xd6\xcb\x7a\x34\x84\x6c\xaf\x35\x8f\x42\x33\x16\xf2\x36\xd8\xe6\x89\x14\x10\x5f\x09\x3e\x0a\x08\xb6\xd4\x5a\x26\x1c\x8a\x09\xb8\x18\x99\x15\xf9\x7b\x99\xf4\xdc\x09\xfc\x2f\x2d\x7b\x66\xdf\xe8\x32\xcf\x18\xc9\x98\x98\x63\x99\xb4\x9f\x0b\x56\x00\x29\x4c\x32\x59\xa4\x64\xc9\xb4\xa6\x73\x4b\x25\x2d\xa3\xe1\x09\x83\x6c\x7d\xff\xeb\xfc\x12\x35\xb5\x4c\xd2\x74\x4a\x33\xcb\x79\x14\x51\x85\x10\x10\xcb\x53\x18\xcd\x53\xd8\x73\x57\x17\xe6\xd5\xb8\x12\xbc\x3f\x71\x36\xf6\xc9\x11\x94\x23\x89\x72\x05\x6a\x66\xfa\xb8\xf3\x60\xae\x9f\xbb\x8f\x5e\xd9\xb0\xa9\xd2\x83\xf7\x0b\x09\x82\x31\xb8\xad\x11\x13\x1d\x1a\x9c\xdd\xa0\x16\x7e\x78\x17\x47\xb5\x65\x09\xa1\xdf\x4d\x22\x7b\x75\x08\x68\x04\x46\xb7\x5a\xa0\x95\xd4\x7b\x1b\x12\xb4\xdb\x69\xa6\x38\xd3\x65\x7a\x49\xac\xc6\x8b\x1d\x6d\xf4\xa9\x9c\xa2\xb5\xf9\x1f\x56\xf5\xbf\xf3\x64\xc7\x81\x6a\xff\xaf\x82\x0a\xc3\xcd\x6a\xe3\x3c\xd7\x47\xe0\x77\xd5\xb9\x6c\x72\xa6\x8e\x73\xe9\xcc\x2d\x76\x97\xe7\x99\x9c\x96\x0e\xc0\x97\x60\x62\xff\xd9\x7d\xea\xd5\x98\x7c\x2a\xac\x38\x95\xad\x08\xfb\x66\x0f\x2a\xbf\x61\x78\x61\xd0\xe5\x01\x5f\xd8\xb8\x18\x0f\xb8\x0a\x4d\xd3\x0f\xd3\x8e\x0e\xf7\x96\x73\x8e\x17\x77\x07\xb8\x43\x74\x31\x0f\x48\x3b\xbb\xe4\xf5\xa6\xe6\xb5\x94\x70\x5e\x6e\x0f\x4b\x46\x6b\x67\xa5\x37\x1d\xed\x41\xae\xdc\xc7\x1e\xf2\xea\x34\x0c\xc1\x1f\x9e\xb5\xa5\x70\x2b\xe0\xfc\x4a\xa9\xf3\x59\x79\xc3\x77\x0a\x32\x7c\xcb\xb5\x70\x7d\x3d\xe4\x14\x37\xcf\xad\xfd\x66\x6c\xa2\xee\x77\xe2\x34\x81\x35\x03\x51\x06\xa3\x78\xe4\xe2\xe5\x9e\xea\xba\x24\xb5\x03\x07\xaa\x71\xa0\xed\x29\x4f\xdb\x79\xdc\x27\x45\xda\x3e\x9e\xa4\xcd\x4b\xe6\x4f\x6a\x25\xdc\x04\x5d\x27\xad\x5e\xec\x91\x83\xe1\xd8\x27\x56\x41\x4a\x80\xa0\xa3\xe7\x51\xc7\xca\x34\xea\xd2\x3e\xe9\x46\x59\x23\xce\xca\x7c\xcb\xc8\x64\xbf\x66\xb2\x20\x53\x6a\x37\xd0\x45\x65\xe3\xe2\xea\x12\xb1\x30\x38\x73\x06\x67\xce\xe0\xcc\x69\x20\xc4\x0f\xe4\xcc\xf1\x5f\x5e\xab\x3f\xfd\xdc\x02\x60\x36\x93\xdf\x4e\x97\x8f\x76\xf9\xe6\xa2\x02\x66\x49\x49\x71\x23\x47\x50\x11\x3c\x41\xcf\x32\x56\xa6\x63\x19\xbb\xbd\x44\x3a\xa4\x64\x8c\xc5\xac\x5f\x4d\xf8\xcc\xf7\x3b\xe4\x50\xec\xbb\xfa\xef\xa4\xc0\x74\x82\xdb\x0b\x13\xe1\xd5\x9a\x3f\xc8\xee\x96\x93\x45\xdb\xc4\x10\xa8\x9c\x9e\x30\x05\x71\xfc\x40\xab\x7b\xf0\xf8\x8c\x6a\x73\xa5\xa8\xd0\xf0\xd1\x87\x40\x21\x55\xbf\x1e\xe0\xcc\x15\x7c\x52\x12\x56\xc5\x84\xd6\xcc\xe5\x37\x94\x82\x79\xdf\x8d\x91\x84\x0a\xc8\x56\xd5\x46\xdd\xb5\xee\x06\x00\xba\x56\xc8\x5a\x17\xc5\x92\x8a\x63\xc5\x68\x0a\xb9\x96\xd8\xb7\x3c\xa3\x2e\xe9\x8a\x33\x76\x5b\x36\x9b\x32\x43\x79\xa6\xa3\x1b\x53\x8e\xf3\x40\x09\x8f\x54\x48\x78\x84\xc2\x22\xfc\xe5\x49\x60\x58\xaf\x17\xda\xad\x64\x18\xce\x2e\x55\x8c\x1b\xc9\xd5\x46\x72\x52\x75\x3d\x97\xdb\xf7\xf2\x4a\x59\xd9\xec\x47\xcc\x0c\xf6\x45\x5c\x0b\x79\x2b\x5e\x6d\x3f\x24\xd7\x66\x23\x06\x78\x95\xb3\xda\x25\xf2\x44\x2e\x8c\x67\xbf\x06\x68\x78\x7f\x7d\xdd\xee\x41\x69\xe9\x88\xdc\xdb\xa0\xb8\x94\x35\x35\x87\xb0\xbe\xa7\xad\x31\xf4\x09\xeb\x83\x36\xf5\xdc\x32\x0f\x12\xe3\xd7\xa1\x84\x47\x5d\x0f\x81\x7e\xbf\x5a\xd5\xa9\x57\xa0\x5f\xab\xe2\x34\x04\xfe\x1d\x5c\xd0\xed\x00\x37\x6d\x78\xab\xc6\x99\x3d\x06\x69\x56\x08\xc0\x79\xd0\x8c\x9b\x95\x17\x1f\x5a\xba\xd9\x6b\xd0\x60\xd4\x32\xa4\xd9\xdd\x18\x47\xb8\x45\x44\x5d\x91\x43\x56\xbe\x32\xa2\x30\x63\xda\x41\x68\x96\x87\x0c\x27\x44\x93\x5f\x2f\xab\x77\x2d\x15\x64\x45\xb1\x46\x14\x98\x9b\xa3\x24\x85\xc6\x94\xa3\x34\x4b\x0a\xcb\x48\x2b\xfb\x57\x35\x5a\xbe\x04\xcb\x23\xfd\xc6\x97\xc5\xb2\xf6\x13\x4d\x94\xd4\x58\xe8\xdc\x8f\x20\x8e\x91\x7a\x35\x26\x00\xef\x69\xee\x17\x73\xf4\xe1\xe7\x53\x5f\xc3\x7f\xe5\x89\x36\x18\x60\xc9\x94\x99\x5b\xe6\x62\x0f\x2a\xce\x35\x4c\x56\x58\x77\x2c\xb8\x48\x86\xf5\xc8\x16\x70\x95\x10\xf2\x41\xcd\xe5\x28\x0c\x15\x4c\xe3\x90\x75\x3e\x65\x89\x95\xbd\x03\xbc\xc9\x72\xd0\x30\x48\x2e\xf0\xc7\x14\x65\x8b\x1b\x9e\x30\xa0\x09\x14\x0a\x57\xe3\xca\x71\x91\xf2\x1b\x9e\x16\xa5\xdf\xca\x73\x1b\x4b\x8c\x61\xe9\x97\x9e\xea\x57\x15\xf3\x85\xbc\x25\x8c\xda\x4d\xb1\x92\x6e\xe9\xf5\x81\x71\xb9\x34\xf1\x07\x64\xdd\xce\x35\x17\x55\x54\x20\xbb\x70\xeb\x21\xe8\x75\x08\x7a\xdd\x1a\x9d\xb6\xd1\xae\x55\x19\x0a\x1a\x42\x82\xe4\xef\x28\x41\x29\xd2\x39\x00\x0e\x5e\xd0\xc8\xe9\xe5\x43\x3d\x23\xda\x17\x5c\x28\x01\xea\x92\xc8\x2c\x63\x89\x81\xfb\xad\xc9\x2d\xcb\x32\x82\xa7\x0d\x41\x9e\xd9\xca\xc5\x38\xad\xfb\x73\x76\x29\x57\x76\x7f\x91\x9c\xbd\x6c\x8b\xdb\xb3\x7d\xb4\x09\x34\xab\xe4\xbd\x42\x3f\xfb\x38\xea\xbd\x6a\xdf\x19\xc3\x18\x1a\x06\xc1\x11\x13\x17\x47\x3f\xf8\x8d\x70\xb4\xa5\x12\x3c\x56\x62\xb7\xac\x18\x8f\xe7\x6a\xd4\x52\xc5\xc6\x95\x00\x33\x0b\xa9\x59\xdc\x3f\x55\x70\x47\xef\x5f\xbf\x2a\x0d\x94\x77\x21\xdd\x6e\xef\x3e\xf5\x92\x33\xaa\x8d\x2b\x66\x3e\xc5\x68\x5a\x1a\x38\x63\x6f\x65\x19\x64\xb8\x29\x70\xef\x00\x5c\xad\x62\xb9\xb9\xcb\xe2\x6c\x17\x51\x1b\x73\x99\x3b\x05\xd9\x02\x41\x82\xc5\xd5\x56\x08\x5a\x8b\xd3\x7c\x1c\x41\xb8\x75\x76\x7e\xa7\xd8\xdc\x72\xca\x91\x6c\x78\xf8\x89\x3f\x68\x04\x6f\xf8\x70\xb3\xd9\x7c\xeb\xb0\xde\xd1\xe3\x0b\xeb\x5d\x7f\xc1\xcf\xf5\xf9\x04\xfc\x8e\x1a\xf9\xd7\x3e\x59\x79\x24\xac\xb7\xf3\xed\xb2\x51\x80\x89\xd4\x60\xca\x01\x52\x42\x89\xe6\x62\x9e\x95\x48\x2c\xc8\x86\xfe\xd5\x8e\xf0\x2b\x30\x41\x28\xf0\x05\xcc\x0f\xc2\x43\x20\xb0\x83\xb3\x2c\xad\x02\x85\xad\xb8\x2a\x45\xc2\x5e\xf5\xc9\x9d\xef\xc4\xe2\xbd\x08\x97\x8d\x50\xee\x4d\xb7\x2d\x64\x6f\x07\xf8\x3b\x0a\x79\x35\xbc\xa1\x2f\xa7\xd5\x1f\x77\x68\xf5\x0d\x50\x26\x74\x05\x50\x16\x56\x39\xd6\xf9\x12\xb9\x84\x45\x54\x72\x69\xff\x9d\x4b\x01\x11\x4c\xed\x80\xed\x7b\x46\x87\xb7\x5d\x77\x38\xaa\xfb\xd8\xb2\x80\xa3\xe8\xb7\x61\xc1\x4e\x5b\x6e\x97\xdb\x27\x27\x80\x62\x75\x13\x77\x8c\xaf\x37\x62\xeb\x47\x64\xc1\x8d\x3e\xce\x99\x3a\xd6\xcc\xde\x50\xb8\x02\x82\x9c\x89\xb9\x62\xda\xbf\xd2\xb6\x06\x96\x30\xee\x65\x05\xce\x65\xaa\x7b\xcf\x1f\xc8\xf1\xe6\xd9\x83\xf1\x00\x72\x8e\x54\x93\xfd\xe0\x5d\x77\xaa\x52\x75\x1d\xc0\x8f\xe8\x92\xd1\x1f\xe7\x4a\x26\x4c\x6b\x96\x46\x2b\xe3\x0d\x37\xe8\x2f\x09\x36\x9d\x80\x44\x35\x72\x8e\x32\xf1\x94\xcd\xa4\x62\xae\x80\xa5\x3d\xd0\x54\x95\x9a\x57\x6c\xb0\x69\x59\x55\xaf\xc2\xed\x65\x65\x7d\xc6\xf7\xde\xab\x1b\x14\xc8\x78\x85\xc3\x43\x4f\x14\x7d\xf5\x07\x14\xfc\xcb\x64\x41\x5c\x94\x76\x7f\x4b\x2c\xc1\x80\xa1\x5f\x11\xf0\x86\xda\xbe\x22\x52\xb1\xf5\x7e\x41\x8a\x99\x77\xe7\x5f\xec\x35\x5e\xb2\xa5\x54\xab\x57\x63\x72\x59\x44\x0a\xac\x55\x3b\xa6\x05\xcf\x30\xf2\x2e\xfe\x1a\x2a\x30\x0b\x7a\xe3\x46\x4b\xb3\x90\x12\x02\xcb\xea\x68\xc0\x13\xca\x1c\x05\x75\x3b\xab\x60\x53\xb0\x3d\x09\x4b\xae\xb2\x00\xe2\x2f\xc5\x78\x6f\x9b\x9b\xc0\xb9\x9c\x1c\x91\xcd\xb9\x9f\x7a\x7a\x77\x3d\x76\xbe\x6a\xff\x72\x5d\x83\x35\xa7\xe4\x36\xae\xe2\xe4\xe4\x08\xe9\xc8\xe4\x68\x44\x26\x47\xe7\x38\x18\xa9\xc8\x24\xd4\x5f\xb0\xbf\xc0\x4a\x2f\x69\x9e\xc3\xb8\xe1\xf6\x54\xb9\x98\xdb\x81\xc6\xd0\xcc\xbd\xb8\x91\x0f\xc0\xfc\xbb\xd4\xf6\x0a\xd6\xbe\xaa\xa5\x5b\xb1\xf2\xb8\xaa\xa6\xd5\x24\x80\x07\x66\xe0\xdd\x70\xa7\x81\x81\x3f\x2a\x06\xde\xbd\x61\xcf\x9b\x81\x77\xcf\x7f\x60\xe0\xbb\x33\xf0\xee\xd5\x1d\x18\xf8\xd3\x60\xe0\xfe\xfc\x6d\xcf\xbe\x6b\xb5\x92\x9f\x36\x0b\x6f\x50\x7e\xda\x19\xf9\x7a\xe3\x3e\x61\xc7\x15\xaa\xba\x27\x72\xda\x0d\x18\x7b\xc0\x80\x3a\xda\x1e\x85\x5a\x09\x36\xf3\xd9\x19\xab\xb1\x67\x91\x03\x5b\xb1\x8c\xdd\x50\x61\xd0\x04\x76\x5f\x41\x69\x7b\x0b\x7f\x6e\x4b\x04\x72\x2f\x61\x67\x3a\x0a\x38\x2b\x93\x80\x1c\x33\x91\xc8\x14\x1d\x2f\x4b\x27\x6d\x7a\x58\x4f\x74\x34\x6b\xb9\x44\xbc\x07\x38\x8e\x43\x23\xff\x5c\x30\x41\x34\x33\x23\x28\x75\xac\x49\x4e\x2d\xc3\xf3\x95\x0e\x43\xd9\x77\x02\x99\x41\x98\x41\x5b\x67\x25\x62\x0a\x0b\x57\x06\x47\x7c\x88\x81\x0b\x0d\x12\x09\x7a\x02\x7c\xa9\x10\xf0\xad\xff\x2a\xb4\x89\x7a\x81\xfd\x8b\xf1\x0d\x50\xd0\x95\xa2\x7d\x0c\xbb\xd9\x18\xa5\xfc\xa0\x0e\x55\x77\x27\x4a\x1b\x3d\x28\x06\x69\x53\x1c\xed\x86\x29\x3c\xc1\x40\xeb\x1d\xe8\x3e\xee\x56\xf3\x45\x6f\x59\x92\x83\xb1\x89\x2e\x7d\x6f\xbd\x71\x77\x84\xf5\xc0\x2b\x3a\x22\x93\x0f\xc1\x2c\x9e\x70\x48\x76\x0b\x49\x18\xd8\xdf\x7d\xb3\x3f\x2f\xee\xae\xcb\x86\x07\x67\x8c\xe3\x81\x33\x1e\x90\x95\x1c\x2c\x3e\x7e\xcd\xdb\xd0\xce\x49\xea\x4d\xb7\x54\x37\x0e\x64\xc6\xd8\xb7\x15\xa3\x1b\x6d\x7c\x28\xaa\x36\x10\xb5\x67\x28\xd3\x3f\xea\x34\x4c\x87\x91\x69\x7a\x92\xbe\x4d\x32\x73\x65\xd5\x0e\x44\xee\xba\x04\xe7\x7a\xd3\x5d\xc4\xe6\xc3\xd0\xbc\x67\x97\xc8\xe8\xc9\xd9\x5f\x06\x52\xbd\x59\xfe\xac\x8b\x0a\x4f\x4a\xfa\xbc\x13\xfd\x6a\xba\x79\xfb\x24\x60\x8d\x18\x86\x76\x22\xd6\xd4\x7c\xa3\xdc\x56\x77\x8e\x34\xf8\x3a\x00\x82\xd9\xe5\x25\x19\xed\xc9\x23\xb2\x37\xf9\x6e\x4c\x1e\xad\x77\x85\x90\x9f\xc4\x9e\x12\x6e\xf6\xc8\xf2\x2a\x5a\xa8\x5c\x99\x74\xea\x4e\x8a\x76\x85\x81\x47\x95\x99\x7a\xd5\xf2\x5a\x7f\x6d\x0b\x89\xa5\x7e\x74\xdb\x78\x47\x67\x35\x27\xec\xcc\x17\x62\xaa\x7c\x32\x7c\xc3\x93\x41\xcc\xb1\xb7\x67\xb4\xf1\x13\x17\x1d\xfb\x6f\x04\x2c\xbe\xa2\xb7\xae\xbb\x97\x5c\x68\xc3\x28\xe4\x56\xde\xbc\x2f\xaf\x46\x44\xf3\x25\xcf\x68\xe0\x18\xe1\x52\xad\xc7\xd7\xed\x40\xdc\xf7\x9e\x55\xb8\xd1\x75\xdd\x9b\x6e\xf7\x14\x40\x1f\x1d\xf1\x7e\xac\x14\x77\x5b\x09\xba\x3f\x1d\x6b\x7d\x6f\x1b\xe1\xf7\xe1\x28\x59\xe9\x8d\x07\xa8\xf7\x94\x11\xd7\x3f\xe1\x33\xf2\x75\x9d\x2a\x7c\x25\xb7\xf6\x3c\x95\x92\x5f\xe9\x8f\xb7\x6b\xef\xef\x62\x1c\x68\x7c\xa8\xaa\x76\x4f\x58\xd9\x79\x74\x04\x33\x9c\x02\x9a\xdd\xd2\x95\x76\xf2\x87\x3d\x6e\x73\xaa\x52\x08\x6c\x0f\x49\x7f\xba\xf7\xbb\x71\xd7\x1e\x48\x52\xd9\x86\xfe\xdf\x9b\x58\xff\xfd\x50\xa4\xa1\xcf\xde\x45\xfb\x31\x14\x69\xd8\x38\xad\x67\x5e\xa4\xe1\xfb\x5f\x7b\x91\x86\xbe\x5e\x8a\x3d\xf8\xcd\xbe\x77\xc0\xf2\xb3\x70\x62\x7a\x24\x98\x26\xe1\x7c\x55\x94\x06\xf7\xe3\x74\x85\xe4\xdc\x0a\x7d\xc1\x2e\xb6\x41\x11\xda\xe3\x2c\xae\xea\xfe\xb6\x56\x77\x5f\x19\x1b\xb7\xa6\xf5\x34\x99\xc0\x76\xb5\x1f\xad\xdb\xbe\x0f\x79\x4f\x9e\x68\x42\xfe\x3d\x1e\x00\x60\xdd\x5b\x54\xd7\xab\x24\xcc\xa9\xce\xbd\xe3\x18\xac\xd9\xa1\x9f\xe4\x65\xdc\xf9\x30\xfb\xad\xdb\xe7\x69\x76\x89\x56\xb8\x98\x9f\x43\xc1\xf5\x4d\xd9\x29\x6a\x4d\x5d\x1e\x38\x0c\x23\xf0\xe5\xda\x31\xe1\x47\xa1\x0d\x59\xc8\x2c\x25\x46\xb9\x5d\xa5\x91\x86\x9c\x53\x9f\x43\xf0\x86\x66\x3d\x8e\x6c\xce\x14\x97\xe9\x25\xb8\x6a\xba\x02\xe4\xcf\xe3\xb6\x35\x8a\x73\xcb\x45\x0a\x31\xd8\x18\xe8\x1d\x25\x67\x5a\x84\x09\x38\xeb\x60\x18\xfc\x98\x54\x7b\x84\xa9\x4d\x19\x99\x2b\x46\xc1\xb8\xbe\xa0\x82\xfc\xc2\x94\x44\x5d\xdf\xe5\xa7\x12\x96\x07\xb1\x9f\x0b\x9a\x41\x36\x9c\x3f\xbe\x7e\x4d\x5e\xfe\xf0\x9a\x2c\xb9\x78\xb5\x7f\xcb\x56\x37\x64\xfc\xca\x41\xc6\xbd\xa1\x1e\x97\x05\x05\x54\x5d\xa9\xb7\xbf\x83\x75\xf2\xa6\x49\x3b\xac\x0d\x00\xd5\xb7\xca\xc5\xa7\x4b\x9f\x9e\xdf\xa5\x7a\xc1\xad\xe0\xda\x2a\x5c\x4b\x6e\xa2\x24\x04\x6e\x68\x56\x83\x6a\x5d\xfe\xbd\xac\x6a\xcf\x9b\x59\x4f\x57\x8a\x2b\x30\x6a\x3b\xb0\x87\xb9\xae\x17\x45\xc6\x36\xe6\x92\xa9\xb6\x2c\x33\x21\xe9\xca\xb6\x87\xe2\xaf\xf6\x36\x48\xc1\x48\xca\x15\x56\x0c\x04\x1c\x88\x66\x04\x5f\xa7\x8a\x11\x9a\xe7\x99\xbd\xbf\x74\x66\x20\x07\x14\x26\x8b\xb0\xbd\xbc\xaf\xa5\xa5\x00\xd1\xcb\xdb\x8c\x3c\x51\xff\xeb\xf9\x29\xf4\xb9\x82\xf4\x51\x98\x7b\x2a\x1e\xca\x0d\xcb\x64\xc2\xcd\xca\x6e\xbb\x3b\xa1\x20\xd6\xc5\x07\x94\x33\x1d\xf5\x91\x2b\x66\x35\x05\x32\xcb\x5c\xc4\x61\xf5\x4d\xf4\xcb\xd1\x69\x69\x30\x42\x0a\x30\x22\x5a\x62\xcc\x9a\x69\x4e\x7b\xe5\x42\xd9\xd0\x06\xa3\x0d\x15\x26\x5b\x8d\x88\x33\x0c\x8c\xb0\x5f\x3a\x63\x3a\xb0\x2d\x9f\xb0\xb2\xe9\x6b\x98\xda\x41\x6a\x26\xfa\x90\x3a\x37\xc9\x8e\xfb\xe4\x9b\x55\x13\xd1\xe6\xd2\x58\xae\x14\x99\xfa\xa0\x1d\xe4\xd3\xb1\x77\xcb\x2e\x99\x77\xd7\xa5\x85\x8a\x16\x77\x4c\x4e\xe3\xf4\x57\x8e\x16\xfa\xcb\x16\x28\xf7\x08\x33\x13\xdc\x72\xcd\xfc\x8e\x56\xce\x98\xf7\x26\xa5\x5c\x27\x54\xa5\x68\x40\xe3\xe2\x86\x66\x3c\x3d\x54\xe6\x99\x06\x16\x16\xf5\xb9\x75\xf6\x19\xe4\xd7\x6b\xbc\xb0\x69\x13\xe2\xa6\x4d\xd4\x15\x17\xbd\xca\x57\xdc\xf2\x8f\xc9\xd9\xcc\x1f\xb1\x91\xc3\xc0\x41\xf6\x34\x77\xa0\x3e\xd1\x6f\xd8\x2f\xfa\xa2\x7d\xef\xbb\xa5\xa0\x2e\x4f\xe4\x3f\xe1\x40\xf6\x63\xa4\x97\xad\x2f\x06\xfb\x51\xb8\x38\xda\xfd\x50\x72\xd4\x1c\xd3\x13\x59\xe5\x9f\x89\xd4\x65\x43\x8c\xf3\x7f\x09\xab\x80\x29\x2b\xcc\x2e\x78\x56\xd2\x80\x22\xb7\x9c\xd3\xff\x85\xc9\xe5\x36\x8c\xa4\x91\x1d\xc4\xac\xb7\x83\x33\xff\xf0\x07\xcb\x99\xed\x91\x5f\xc8\x42\xbd\xaa\x6e\x4b\xa1\xd9\xfa\xd6\xe8\xb7\xe4\x98\xfc\xe8\xc6\xc8\x48\x91\xbf\x25\xaf\xc9\x4b\x3e\x66\x63\x22\x64\xed\xfe\x73\x4d\x52\x29\xd8\xab\x71\xe5\x15\x3b\xa9\xb7\xe4\x87\xd7\xfe\xb5\x4d\x74\xc3\xb6\xf2\x8b\x9b\x49\x31\xdf\x93\xf4\xb0\xc6\xe7\xee\xc2\x91\x86\x6a\x40\x1d\x34\x7d\xc8\xed\x3d\x54\x03\x1a\x52\x5a\x93\x3b\x42\xb3\x86\x6a\x40\xdb\x90\xdf\xa1\x1a\xd0\x7e\x96\x71\xa8\x06\xd4\xa7\x1a\xd0\xf7\x77\x4a\x92\xde\xba\xfa\x7f\x76\xba\xe9\xf6\xb2\x84\x7f\xb3\x53\xeb\x75\x47\xdb\xc7\xa3\x08\x32\x95\x66\x41\xbe\xe4\xc0\xf6\xde\xcb\x5b\x51\xea\xc3\x9a\xbc\x84\xce\xdd\x8f\xf0\x6f\x68\x01\x51\xf1\x1a\x12\x47\x33\x48\x2b\x9c\xad\xfa\xb8\x13\x42\x07\xfb\x39\xc0\x35\xc3\xc0\xc6\x23\x1b\x86\xce\x75\xcd\xfe\x03\xb7\xdf\x3f\x7a\x0f\xe2\xf7\x66\x4d\x85\x63\x8e\x80\x2c\x8b\xfd\x3d\xa9\xc3\xc8\xc4\xe9\x9f\xd1\xd9\x8e\xa6\xeb\x48\xae\x6d\x16\x7d\x41\x32\xc6\xcf\x2d\xf8\x7c\xc1\xd6\x94\x89\x40\xa5\x20\x6f\xe3\x0f\xaf\x5f\x6b\x24\x67\x98\x02\x7d\x43\xaa\xe5\x2f\xf9\xc3\x2c\xf7\x97\xbc\x63\xb1\xbf\xe4\x7d\x96\xda\x2f\x88\x3d\xb9\x6f\x27\x82\x90\xdf\x86\x5c\xe9\x56\xff\x00\x40\x2f\x68\x39\xbf\x43\x4c\x77\xce\x14\xf9\x43\xd0\x21\xf0\x85\x54\x16\x00\xf2\x59\x4f\x42\x59\x6f\xfd\xb9\x41\xa3\x41\x3d\xf4\x5e\x75\x89\xa1\x2a\xd8\x50\x15\x6c\xa8\x0a\x36\x54\x05\xdb\x77\x55\xb0\x56\x82\xb3\x5b\x55\x30\xfb\xd6\x50\x19\xec\x39\x59\x0f\x9e\x60\x65\xb0\x76\x83\xdc\x5d\xac\xe2\x83\x19\xe5\xb9\x98\x51\x86\xca\x60\x95\x13\x7d\x87\xca\x60\x07\x52\x7a\x1f\x7b\x65\xb0\xe9\xba\x52\xde\xeb\x4c\xee\xa4\xf8\x6f\x3a\xa4\xd3\x07\xd7\xf1\x5b\xf5\xb5\xba\x5f\x74\x16\xf9\x8b\xca\x8e\x51\x4d\xa6\x8a\xad\xe9\x54\x31\x09\x18\x0a\xb1\x0d\x85\xd8\x7e\xd5\x85\xd8\x5a\x6f\x99\x6b\xec\x17\x5d\x33\x63\x77\xf5\x8f\xaf\x7f\x13\x62\x41\xde\x9d\x7f\x21\x45\x19\x2f\x74\x40\xa1\x6b\xa8\xe9\x36\xd4\x74\x0b\x8d\xf4\xbe\x6b\xba\x6d\x0e\x66\xe9\xb4\x3d\x0e\x35\xdd\x0e\x67\x2a\x18\x6a\xba\x3d\x95\x9a\x6e\x3d\xcc\xcb\x77\x21\xdd\xcf\xaf\xa6\xdb\xf7\x43\x4d\xb7\xa1\xa6\xdb\x76\x13\x1f\x6a\xba\x0d\x35\xdd\x1e\x7b\x4d\xb7\x86\x80\x9f\xae\xd2\x2e\x65\xd3\x8a\x69\x3d\x04\xf9\x60\x46\x05\x90\x71\x2a\x49\x9d\x7c\xd0\xe3\x41\x93\xcc\x54\x62\xa5\xb6\x77\x46\xfd\x2a\x92\x68\x3d\xc7\x64\x59\x7b\x0f\x00\x1e\x4a\x1d\xf6\x08\x88\xde\x74\x9c\x87\x4a\x49\x0f\x5b\x29\xe9\xfb\x5f\x7d\xa9\xc3\xef\x87\x52\x87\x07\xaa\x94\xf4\xfd\x50\xea\xf0\xb9\x56\x4a\x1a\x4a\x1d\xd6\x55\xfd\x67\x51\xea\xb0\x25\x53\xc3\xc0\xc0\x9f\x0c\x03\xff\x15\x96\x3a\xfc\x7e\x28\x75\x78\x5f\x0c\x7c\x28\x75\xf8\x5c\x18\xf8\x50\xea\x70\x3d\x1d\x53\x17\x0b\xc7\x66\x15\x73\x56\x7c\x1f\x47\xc1\x87\xee\xfe\x94\x2a\x3c\x89\x3c\xea\x8e\xc9\x57\x8d\x22\xbd\x0b\x52\xf5\x4f\x01\xba\xfe\xc2\x93\x48\x62\x4c\xde\xe1\xe5\x85\x4c\xd4\xd9\x8a\x40\x22\x04\x68\x72\x51\x1b\x53\x84\x98\xd8\xb7\x4d\xfe\xb1\x55\xff\xba\xaf\x4a\x91\x7d\xe9\x4b\x09\x3b\x0d\x2e\xca\x68\x0c\x9e\x04\x45\x47\x6f\x44\xfe\x11\xee\x44\x25\x7b\xe5\xd6\xc6\xd7\xc6\xd4\x39\x87\xde\x93\x9b\xfb\x2b\xea\x77\x18\x0a\x17\xe7\x1b\xeb\x22\x73\x51\x5b\xc8\xe9\xd4\x96\x74\xac\xbf\xa5\x7e\x6b\xda\xf5\xc4\xd3\x17\x3f\x77\x72\x74\x6f\x95\x53\x1e\xfe\xb2\xef\x58\x7e\x70\xed\xb6\xdf\xe1\x06\x3f\xd7\x72\xcc\xa1\x84\xdd\x4f\xfb\xd3\x85\x37\x61\xbe\x1a\x4f\xd8\x13\xce\x89\x18\xf3\xed\x67\x9c\xa0\xb4\x7e\x4c\xd6\xa7\xbd\xbe\x9d\xfb\x64\xa0\xcf\xba\xcc\xed\x33\xc9\x6c\x3a\x90\x92\x07\x4e\xaf\xba\x61\x2f\xf6\x79\x17\x87\x32\xa1\xbb\x95\x09\x7d\x92\x87\xf2\x57\xc2\xdf\xee\x25\x01\xf7\xaf\xab\xe0\xe4\x53\x67\x67\x4f\xf8\xd2\xde\x99\x93\xec\xf3\xd4\x0f\x55\x0a\x87\x2a\x85\x4f\xa0\x4a\xe1\xf3\xe4\x6b\xf5\xda\x45\x07\xe0\x6a\x43\x35\xbb\xc7\x74\x33\x7f\x35\xec\xb9\x6f\x79\xa4\x47\x55\x33\x6c\xe7\x8b\x37\xa5\x26\x59\x8c\x6f\xde\x8c\xff\x26\xa7\x1b\x2e\xd7\xdf\xe4\x34\x76\x0b\x99\xb5\xac\xc4\x31\xb6\xe9\xbf\xe4\x74\x48\xe3\xf3\xa8\xd3\xf8\x0c\xd9\x6b\x9e\x4b\xf6\x9a\x9e\x49\x80\x2f\xab\x49\x7f\x5f\xe8\x27\x9d\xf6\x37\x26\x5a\x9d\x79\x7d\x2f\x2b\xb9\x7c\x1d\xa5\xf6\xa1\x84\x71\x4a\x14\x0a\x84\xeb\x9e\x13\xf9\xee\x35\x8f\x6f\x65\x5d\xba\xd9\xe6\xbb\x86\xe0\xea\x87\x5d\x82\x35\x26\x78\xb8\x3c\x48\xb0\x56\xcd\x19\x90\x2c\x2b\xac\xfc\x10\x67\x3a\x7a\xb3\x45\x92\xa3\x78\x3f\xfa\xa4\xec\x8c\x9b\x45\x58\xe2\x38\x08\x9e\x95\xdb\xd4\x2f\xf7\xe6\xb9\x92\xd3\x7b\x0f\x3e\xfd\xd8\x92\x5c\xf3\x96\x6a\x92\x2c\x58\x72\xdd\x1a\x00\xfa\xb0\xe9\x42\xdb\xc6\xed\xb2\x5b\x6e\xc8\x07\xda\x96\xac\xa8\x57\x42\xd0\xbf\x16\x4b\x2a\x48\xc8\x01\x1a\xf2\x83\xa2\xf2\xb2\x9e\xff\xf3\xee\x19\x37\x7b\x65\x00\x7d\x39\x55\x9c\xcd\x5e\x3d\x82\xdc\x9f\x97\xcd\xd9\x3e\x47\x1e\xe0\xd8\x94\xf4\x73\x17\x85\xbd\x67\xe1\x30\x39\xb3\x17\x30\x1e\xc7\x3b\xb9\xcc\x33\x66\x6f\xa7\x22\x3f\x52\x9e\xf5\xaf\x4c\xd3\x53\xee\xdf\x73\xea\xcf\x98\x32\x75\xe4\xf6\x74\x2d\x50\x16\x74\x29\x4d\x1c\x27\xfd\x2f\x39\x1d\x12\x76\x3e\x6e\x49\x7f\xe7\x84\x9d\x7f\xab\xec\x6d\x6b\x5f\xdb\x8a\x25\x43\xd2\xcd\x41\x6d\xe9\x9b\x74\xf3\xb2\x39\xc9\xe6\x03\x28\x2c\x3d\x89\xf4\xbd\x27\xf3\xdc\x2c\xc4\x6e\x4e\xd9\xb9\xab\x20\xdb\x11\x0e\xef\x5a\x44\xe2\x2b\x78\x56\x16\x60\x16\x22\xec\x1b\x4b\x0a\x14\x05\x79\x96\x91\x4c\xca\x6b\x92\xf1\xeb\x5e\x35\xe0\x21\x99\xd9\x7b\x46\xd3\x8c\x0b\xd6\xb3\x64\x5b\xc5\x0c\x9e\x7a\x63\x15\x17\xa1\x86\x98\x62\x19\x85\x24\x69\x8e\x09\x68\x43\x95\xb9\x42\x09\xd0\x95\x43\xb4\xe3\xb6\x04\x60\xca\x7c\x42\x35\xe7\x63\x81\xf6\x2b\x6d\xd8\x92\x18\x05\x1f\x91\xc4\x30\xb5\xe4\xc2\xca\xe9\xdc\xfc\xc9\x11\x1f\x5f\x93\x2d\x97\x56\x4a\xba\x61\xc4\xc3\x41\xdb\x81\xa4\xfd\xd3\x8d\x44\xf7\x74\x4a\x93\x6b\x39\x9b\x7d\xe4\x4b\xbe\x66\x85\xdd\xb8\x30\x71\x42\x1d\x9c\x89\x9b\xe1\x92\xaa\x6b\xa4\x98\x5c\xc3\x3a\xcc\x50\xb6\x21\xef\xa3\x34\x78\x7f\xd8\x37\x20\x36\x41\x61\xaa\x47\x96\xae\xda\xfe\xae\xe5\x07\xd2\x45\x92\x30\xad\x67\x45\x96\xad\x88\x25\x51\x7a\xc1\x52\x44\xa8\xfa\x9d\x2d\xdd\x4a\xaa\x10\x10\xb5\x08\x89\x1c\x8d\x71\x41\xac\x82\x67\x64\xc9\xa8\xd0\xe5\x81\x70\xbd\xfa\xd2\x69\xb9\x4c\x89\xe6\x73\x41\x33\xbd\xf6\x73\x96\x39\x10\x32\x24\xf4\xc3\x98\xc7\x9c\x2a\x9a\x65\x2c\xe3\x7a\x69\x3f\x00\x36\x7c\xec\xc7\x1d\x0f\x44\x7f\x54\x46\xf1\x26\x1e\x43\xdc\x01\xd7\xe8\x80\x40\x1f\xdf\x9b\x90\x09\x33\x1a\x04\xbe\xd3\x3e\x48\xb7\x12\x8d\x74\xb5\xa1\xc0\x7f\x22\x45\xc2\x72\xa3\x4f\x6e\xa5\xba\xce\x24\x4d\xf5\x89\xcb\xfd\x93\x31\xa5\x4f\xac\x4c\x78\xac\x0a\x71\x6c\xe4\x71\xb9\x91\x27\x7b\x4f\x84\x4a\x45\x41\xcb\x9c\x2a\x5d\x89\x60\xe3\xc6\x3e\x55\x91\xae\xa4\x05\x82\x0c\x45\x98\x42\x05\xfd\x3a\xb0\x62\xee\x15\x3d\x26\x1f\x99\xdd\xa7\xaf\xd5\xae\xbe\x62\x7e\x13\x52\x08\x48\xff\xba\x92\x05\xb8\x6c\x7c\x8d\x8c\x5b\xbb\xf2\xfe\x61\x2a\xcb\xac\x28\x33\xab\xa9\x58\x5d\xc1\xa5\x47\x89\x28\x49\xce\x93\x6b\x3f\x8c\x42\xf0\x9f\x0b\x47\x9a\xdc\x05\x84\x73\x94\xe7\x0c\xe2\xb3\xc0\xad\xe3\xda\x96\x49\x09\x89\x61\xcb\xdc\x0a\xb3\x63\x82\x5f\x33\xa0\x1d\xd9\x5f\x0b\x8d\x55\x05\x31\xc4\x4b\x73\xab\x6d\x5a\xb5\xce\x7e\x14\x8a\x4d\xe2\x07\xa3\x55\xa8\x17\x8f\x75\x13\x1f\x13\x50\x73\x0a\x05\xa3\x83\x31\xd3\xca\xdb\x40\x31\x13\x8a\x15\x23\x39\xf6\x85\x99\x4d\xec\x01\x41\x0f\x94\x09\x99\x98\x31\xec\x2c\x31\xd9\x6a\x4c\xc8\x5f\xe5\x2d\xbb\x61\x6a\x44\xfe\xb7\x2c\xa0\x1b\xcd\xd6\x16\xfe\x3f\xed\x9c\xbe\x5a\x42\x8e\xdd\xd9\x85\xbe\x65\x76\xe9\xa1\xee\xa5\x0b\x3f\x86\x48\xb5\x2c\x25\x5f\xd9\x37\xc3\x84\x06\xf1\xe4\xe6\xcd\x94\x19\xfa\xe6\x2b\x39\x3d\x3f\x3b\xec\x91\xff\xae\x5c\xbb\xe3\x95\x2c\xd4\xb1\xbc\x15\xc7\xb9\x4c\x8f\x75\x63\x26\x20\x7f\xec\xa7\x52\x66\x8c\x8a\x96\xa0\xda\xf2\xea\x6f\x45\x1a\x7d\xc2\xde\x75\x12\xd9\x44\x0c\x2d\x25\xa4\x06\x88\x12\xfa\xcb\x0c\x5f\x32\x84\xb7\x61\xea\xca\xfa\xfb\x3e\x42\xda\x32\x56\xc3\x68\xba\x72\xb6\x2a\x0f\x53\x28\x6b\x8d\xc2\x61\x70\x6f\xdf\xda\xc3\xf9\xf2\xe5\xd8\xae\xd3\x38\x22\xfa\xe4\x98\x8c\x5d\x99\xb3\x92\x80\xbf\x22\x93\xe2\xf5\xeb\x1f\x12\x82\xcd\xa3\x85\x78\x35\x22\x50\x36\x14\xba\xb3\x33\xb1\xbb\x44\x32\x36\x83\xec\xb7\x29\xe4\x55\x2d\x07\xb0\xa4\xdf\x62\x02\xfa\xb4\xa8\xde\x83\xe6\xa6\x3a\x75\x37\xfb\xe7\x82\xa9\x15\x91\x37\x4c\xf9\xc3\x43\x43\xca\x08\x88\x16\x0d\x84\x08\x73\x99\x92\xcf\xe0\x6b\xce\x56\x15\x3a\xa7\x19\xf8\x11\xad\x36\x05\x81\xa5\x96\x0c\xad\x64\xb1\xf5\x7e\xd8\x71\xdc\x70\x76\x0b\x1b\x63\xaf\x9a\xbd\xf9\xc7\xae\xa8\xc4\x09\x52\xb2\x93\xef\xe0\xbf\xe1\xe2\xb5\x58\xdd\x3d\xdd\xdc\xda\xee\x9e\x48\xc5\xec\x5a\x9e\xcb\xf4\xca\xf5\xd1\xe9\x96\x78\x5f\x49\x15\x01\x64\x1b\x88\x98\xbb\x31\x81\x8e\xd9\x43\xed\xa4\x66\xc0\x8e\x1f\x9e\x53\x37\xaf\x8d\xc9\x9c\xc8\x7d\x3a\x33\x4c\xfd\xe8\x64\xa9\xae\x70\xc2\xe6\xb7\x1c\x66\xc2\xd9\x1b\x66\x0c\x2c\xae\x60\xd7\xfe\x9b\x9c\xe2\x3a\x2c\xa8\x2e\x05\xb6\x52\x6b\x78\xc9\x38\x30\x91\x75\x7b\x1b\x26\x9f\x8f\x0e\x14\xd7\x2e\x41\x76\xcb\x18\xb0\x66\xbb\x1d\x82\xfd\xa8\xfb\x96\xf6\x79\xd1\x58\xc6\xe7\xdc\x61\x25\xa6\xac\x56\x4d\x37\x65\xf6\xdb\xa9\x63\xe6\xbe\x0b\xae\x1d\xea\xca\xfd\x3c\x82\xd4\xaf\x76\x7e\xc9\x2a\xc9\x18\x99\x17\x54\x51\x61\x18\xd3\x0e\xfb\x31\xe3\x82\x66\xfc\x17\xa6\xf4\xab\xb0\xef\x0b\x29\xa4\x72\xe5\xb0\xab\x93\x89\x44\x05\xfb\xb5\x5b\x29\x5e\x98\x0d\x43\x6b\x5a\x0c\x5f\xff\xb9\xec\x65\xca\x12\xb9\x64\x6b\xd3\x75\xbd\x10\xbe\x5c\xb2\x94\x53\xc3\xb2\x95\x5b\x2f\x6e\xc2\x52\x59\x86\x10\x7f\x00\x12\x5c\x1f\x67\x56\xcf\xf6\xe9\x92\x21\xc6\xd7\x4d\x09\x4a\xd1\x3b\x7b\x0a\x6c\x31\xe6\xba\x86\xa1\x5c\x5d\x7d\xac\x6e\x8e\x4b\x93\x7d\xa0\xe2\xce\x2d\x26\x56\x7f\xfd\xf7\x61\x54\xed\x84\x2b\x85\x36\x6b\xb8\x8a\x75\x6f\xcf\xdf\xfa\x01\x2a\x40\x39\xed\xb2\x5f\x57\xd4\x3d\xea\x2a\x37\x04\x06\x7e\x90\x00\xc7\x92\xb8\xdc\xb7\x3f\xe7\x22\x5a\x5a\x4b\x63\x82\x88\x60\x85\x1d\x70\x46\x39\x3a\x92\x42\x52\x1a\x97\xc5\x26\x5c\x54\x9f\xc3\x5d\x63\x95\x8c\x05\x08\xde\xfa\xd8\x29\xc7\x52\xa5\x4c\xf9\x10\x48\xcd\xac\x50\x61\x37\x2c\x77\x2a\x85\xf6\x5d\xc6\xf1\xa7\x5c\x90\x8b\x1f\xdf\xfd\xf0\xc3\x0f\xff\x13\x73\x39\xba\x7b\xc2\x05\xf9\x72\xf5\xae\xc5\x87\xd4\x3b\x67\xf5\x55\x69\xc4\x2e\xb1\x5e\x98\xef\xd4\x15\x7d\x88\x2d\xe4\x2f\x6a\x8e\xc5\xfb\x94\x84\xf6\x61\x49\xde\x3a\x49\x75\xe5\xa7\x8a\xed\x2d\xb7\xdd\x1e\x2f\x99\x9a\xb3\xe3\x6b\xb6\xf2\x81\xf0\x9d\x6f\x68\x63\xb7\x7c\xbe\x42\x74\xb5\x9a\xb7\x84\x0e\xa1\xd1\x64\xab\x8b\x09\x82\x15\xe6\x95\x57\x8c\x26\x60\xb5\x58\x50\xcd\x9a\x9d\x4b\x7b\x10\x2c\xbd\xd9\xeb\x51\xdd\x4e\x9a\x5c\x0b\x79\x9b\xb1\x74\x5e\x66\x1d\x76\x8e\x37\x77\xde\x1e\xf1\xb5\x05\xd5\x85\xa5\xfb\xda\xf8\x4b\xdf\xdd\x81\x78\xe2\x96\x3c\x0e\x94\xe8\xf1\x3b\x25\xc5\x66\xe0\xa0\x6b\xd1\x1f\x3c\x98\x28\x29\x06\x04\xe1\xa3\xf7\x2b\x0e\xae\xb8\xe7\xe2\x8a\xfb\x55\x23\x08\x2b\x64\x6c\x9f\x50\x42\x4f\xc6\x46\x84\x8b\x24\x2b\xd2\x60\x40\xb5\x24\xbd\xc8\x0e\x7f\xcc\xee\x03\x67\x58\x5d\xbd\xdd\x00\x87\x81\xde\xff\xda\x51\x87\x9e\x97\xb6\x3b\x6c\x61\xb9\x77\xf0\xda\x56\xb6\xa9\x03\xed\x13\xb5\x6a\x42\xfc\xf8\xdd\x1a\x60\x3f\x8f\x9b\x3d\xef\x0c\xfb\x71\xfb\xbf\x6f\xe8\x4f\x55\x5c\xec\xa9\xb0\x0d\x82\xc7\xb3\x16\x3c\x06\x0c\xd0\x3d\xb1\x94\x0e\x1c\xd0\x5e\xd8\x4a\x07\x2a\x28\x6a\xb5\x25\x32\x08\x08\x31\x58\x06\xb8\xf3\x8e\x84\xea\x79\xaa\x10\xfd\x4a\xbe\xa1\x9d\x2b\x59\x9d\xcb\x8c\x27\xab\xde\x8e\x53\x17\x12\x6e\x14\xa3\x10\x5b\xe8\xcd\x65\x61\xa8\xba\x34\xcf\x92\x7f\x40\x26\x4b\x17\x9e\x4d\x15\x7b\x4b\x8e\xc9\xe4\xe8\x34\xcb\xe4\xed\xe4\x88\xbc\x74\x75\x23\x5f\xbd\xf5\x28\x10\x4f\x68\xed\x17\x54\x21\xa2\xfe\xb3\xd5\x9f\xe0\xdd\x1f\xa5\x9a\xf2\x74\x72\xf4\x96\xcc\xe0\x5f\x3a\x1e\x83\x2a\x84\x1e\x11\x7d\xcd\x31\xdb\xba\x60\xdf\xe0\x19\xe1\x33\x92\x2b\x76\xc3\x65\x01\x5e\x59\xb2\xa0\x5a\xbc\x30\xa5\x2b\x65\xc5\x0c\xf6\x7e\xc1\xf2\x8c\x26\xcc\x76\x9f\x50\x91\xb0\x2c\x98\x03\x23\x73\xb0\x47\x1c\x28\x6c\xac\x71\x0f\xcc\x82\x50\x22\xd8\x2d\x91\x62\x87\x14\x8f\x68\x0d\xb3\x53\xff\x2b\xd7\x46\xaa\x55\x1f\xbc\x52\xd5\x48\x82\x5d\x94\x93\xf2\x90\x02\xc5\x0c\xe5\xc2\xf9\x25\x80\x01\x00\x65\xc6\x22\x36\x29\xd7\x96\xf2\x17\x5c\x2f\x42\x21\x59\xf6\x2d\xcf\x78\xc2\x0d\x78\x45\x60\xa6\x50\x57\xd5\xc7\xfa\x56\x71\x4e\x6f\xf6\x6e\x75\xfb\x2f\x39\xbd\xda\xd5\xe7\x58\xbd\x85\x7f\x2b\x7b\xea\xab\xc5\xb0\xd2\xed\xdf\xcf\xf3\xe8\x4e\x6c\x9b\xb9\xcb\x29\x36\x3d\x36\xd2\x37\x25\x5c\x40\xa7\x04\x57\x72\x04\x40\x0f\x4f\xcd\x99\x18\xdf\xf2\x6b\x9e\xb3\x94\xd3\xb1\x54\xf3\x13\xfb\xd7\x89\x6d\xbe\x5b\x90\x81\xb2\xb3\xd8\x0e\x3d\xf8\x93\x2b\x62\x45\x52\xf7\x5a\x0c\x1c\x84\x0a\xd6\xae\xdb\xb0\x90\x7c\x66\x6f\xc8\x92\x6b\xcd\x74\x98\x66\x8a\xd6\x4d\x48\xaa\x29\x56\x2e\x9a\x62\x4c\xc8\x27\x0e\xa5\x97\xe0\xf0\x46\x24\x25\xec\x83\x2c\x7c\xca\x4a\x77\xde\xa5\x60\x1b\x9d\x33\x3b\x81\x06\x4b\x84\xc5\x9d\xae\x64\xd9\xcd\x7d\x5f\xcb\x1f\xf6\x6f\x0c\x2f\x74\xce\x3a\xa5\x4c\x74\x7e\x66\x74\x4e\x0c\xcb\xb2\x60\xd6\x74\x86\x69\xc8\x25\x82\xfd\x58\x69\x50\x5b\x41\xb0\xc2\x3a\xc0\xd1\x9c\x4a\xe6\x0a\x27\xe4\x79\xb6\x82\x70\xa2\x4c\x79\xfc\x8c\x32\xb1\xeb\x5b\x8f\x49\x65\xda\x00\x21\x6b\xb9\x0a\xeb\x10\xa2\x9e\xc2\x4b\xb8\xc4\x2d\x44\xaa\x4b\xac\xd9\x4e\x64\xe8\x72\x91\x56\xda\xf5\x70\x93\x6e\x63\x3a\xee\xe3\x2b\x3d\x0d\x5a\x91\x3b\xaf\xb0\xf0\x8d\x5c\x72\x5f\xfa\x92\x47\x92\xb4\xa6\xa4\xdb\x41\x63\xc2\x4a\x90\xb8\xb1\xf7\xed\xe2\x39\x8b\x4a\x79\x00\x43\xb9\xa5\x4d\x95\x28\xbd\xc3\xa7\x82\xd7\x0d\xf4\x73\x1f\xa9\x57\x37\xb3\xcb\x8d\x6e\xfa\xb8\x65\xad\xc2\x8b\x55\x11\x1c\x6a\xc5\xd9\x1b\x00\xcd\x0b\x33\xf5\x7c\x14\x14\x45\x1a\x40\x99\xbd\x92\xba\x3d\x3a\x1b\x6f\x84\x13\xd6\xd5\x99\x81\x32\x5c\x22\x4e\x9f\xae\x29\x78\xbf\xc1\xe4\x9b\x40\xd5\x8f\xc3\xaa\xd9\x76\x53\x12\x7b\x26\x67\x98\x35\xc7\x2e\xcb\xbb\xf2\xef\x4b\x3e\xb7\x04\xef\x02\xad\x1a\x9b\x28\x77\xdb\x3b\xee\x64\x69\x92\x2b\x79\xc3\x53\x06\xf9\xe5\x92\x05\x15\x0e\x0c\x2f\xa7\x00\x9c\xfe\xf6\xfb\xd7\xff\x93\xc4\x03\x01\xf0\x10\x18\x55\x9c\x30\x1a\xfd\x08\xb8\x76\xfb\xd4\x59\x5b\x42\x6a\x1c\x40\xa4\x1a\x42\xf5\x4a\x24\x0b\x25\x85\x2c\x74\xb6\xb2\xac\x56\xc9\x1b\x57\x63\x9f\x6b\x5d\xb0\x74\x3c\x11\x13\xf1\xf7\x62\xca\x32\x66\xa0\xaa\x34\x9e\xea\xd3\xf3\xb3\x72\x4c\x6f\x27\x82\xbc\x19\x7b\x03\x4f\x65\x6c\x96\x6d\x17\x66\x61\x77\x05\xc6\x63\x24\x64\x78\x3d\xb6\x57\x10\xab\x65\xbe\x0c\x70\xe4\xc9\x51\x15\x52\x51\x6d\x78\x8c\xdd\x83\x4d\x20\x83\xd4\x57\x76\x6e\x4c\x7d\xa6\x4b\xf6\x6a\x3c\x11\xe4\xfb\x31\xd6\x2b\x12\xf3\xea\x10\xac\x70\x79\xf5\xf1\x32\x18\xa3\x74\x7d\x04\x09\x05\x15\x53\xb0\x04\x50\x60\x9a\x25\x85\x62\xd9\xaa\x63\x64\x19\x33\xc7\xee\x7b\x6b\x63\x99\x88\x2b\xbf\x48\xb6\xf3\xa8\x90\xa7\xdb\x87\xfb\x59\xab\xea\xb8\xa0\x04\x41\x79\x8e\xaa\x6b\x04\x35\xa4\x0a\x6d\xe4\x92\x08\x29\x8e\xa3\x6a\x33\xd8\xc3\x60\xd4\x7e\xdc\x46\xed\xc1\xf4\xfb\x5c\x4c\xbf\x91\x3c\xb2\x3f\x46\xde\x9b\x71\x75\x72\x79\xfb\xf9\x5a\x32\xb1\x88\xdd\x54\xd8\x8c\xd5\x68\x97\xcb\xc2\x00\xd6\x0e\x21\xb2\x20\x1e\x71\xab\xe2\x43\x2e\xc3\xa8\xbe\xc4\x28\x22\x55\xf8\x7a\xa1\xe9\x9c\x39\x0c\xad\xf6\x74\x54\x33\x43\xa4\x88\xfb\x01\xcc\xb3\x6b\x04\xb1\x44\x4c\x71\x57\xc3\x3c\xa2\x62\xb6\xc3\x24\x9c\xb4\xa5\x4c\x31\x61\xdd\x74\x05\x71\x3f\xba\xcd\x70\xb3\x9b\x0f\xb8\xff\x6a\x77\xfb\x85\x9d\x3f\x38\xac\x78\x5c\x00\x10\x33\x5e\xc4\x75\x68\x3c\x7b\xb1\xd7\xdc\xf3\x72\xa9\x48\xca\x04\x67\xe9\x28\x44\xc0\xc5\x5b\x86\x6c\xde\x43\xc8\x70\x13\x90\x55\x2c\x18\x58\x57\x0a\x15\xa7\xfb\x88\x12\x6f\x60\x5b\xdf\x66\x87\x92\x2f\x70\x94\xef\xd1\x1d\x50\xd9\x17\xa4\x1f\x2d\xce\x81\x56\xb9\x6e\x2f\x21\xc3\xbd\xcf\x47\x9f\xc4\x38\xdd\x2f\x47\x8a\x19\x8d\x76\x12\xec\x02\x5d\xd2\x68\xbf\x44\x3a\x0f\x97\x95\x66\xfd\xeb\xa1\x58\xd1\x7a\xaa\x9a\x5a\x46\x16\xaf\xa6\x35\x27\xad\x21\x67\x33\x1f\x57\x00\x3a\x2b\x9a\xf5\xa3\xbc\x37\xae\xd6\x13\x4d\x53\xbc\x64\x54\x10\xf6\x0d\x2d\x76\x95\x3c\x30\xae\x6b\xae\x89\x15\xe6\xe7\xf6\x1e\x62\xb8\x20\x88\x74\x69\xb0\x5b\x81\xb2\x28\x2b\x06\x1c\x88\x2d\x6b\xb7\x5c\x7c\x01\x86\xf9\x10\x4b\x5e\x7e\xb9\xb2\xdc\x4e\xb9\x83\x75\x46\x6e\x1e\x02\x34\x93\x75\x48\xf2\xf6\xc9\x80\x7c\xf6\x9f\x40\x0d\x29\x59\x34\xe7\x07\x02\x41\xb9\x9a\x19\x28\xa6\x8f\x60\x19\x3b\x50\x6a\x20\x97\x12\xa8\x4c\xaf\x4a\x09\x24\x0b\xaa\xe7\x0a\xba\xe3\x58\x7a\x25\x07\xd2\xbb\x24\x07\x22\xa7\x8e\x75\x8c\xc8\xfb\x88\x71\x20\xbc\xba\xec\x04\x65\x3f\xc7\x51\x27\x47\xd0\x89\xaf\x9d\xe8\xba\x9a\x1c\x1d\x26\xd3\x90\x2f\xef\x58\x99\xd4\x98\xfc\x1d\x12\xd4\x46\x03\xb4\xf2\xc0\xe4\xc8\x4f\x07\x4b\x3c\xe2\x94\xec\xbf\xed\xa4\xec\xb8\xed\xb4\x26\x47\xa0\xb6\x9d\x8a\x4a\xfb\x98\xef\xf9\x9b\x7e\xc3\x29\x7c\xf7\x04\x19\x2c\xcd\xac\x58\xeb\xc5\xe5\x51\xcc\x1f\xe3\x4d\x06\xc8\x76\xac\x5d\x97\xb1\xf5\x4d\x0c\x18\x07\x13\x8d\x76\xbf\x23\x41\x79\x20\x1e\x87\xdb\xc6\x8d\x63\xf1\x2b\xb5\x71\x2c\xee\xc4\x6d\x1a\x49\x24\x37\xa0\x52\x0c\x5f\xad\x0b\x26\xf8\xd9\x78\xc9\x70\x2d\xea\xfb\xbb\x2c\x9c\xcb\x9b\x7d\x4b\xb2\x42\xf3\x1b\xd6\xff\x00\x97\x12\xa1\x62\x4b\x14\x96\x44\xc2\x70\x4a\xf0\xfd\x90\x71\xbb\xc6\x36\x5d\xe8\xaf\x67\x01\x59\x26\x6f\x1f\x7b\x5a\xab\xde\x42\x47\x17\x0a\x6e\xd3\x7b\x4d\xb8\xb8\x4e\x83\xd7\x60\x59\x78\xcc\x96\x85\xad\xe0\x72\xbb\xef\x7d\xeb\xb7\xf6\xaa\x70\x0d\xf0\xba\xc1\xc6\x12\xc3\xeb\xb6\x26\xca\xf7\x0e\x61\xbb\xbb\xce\xba\xbf\x54\x57\xdb\x59\x91\x76\x60\x21\x97\x7d\x8c\x4b\x3d\x2c\xd1\xec\x9b\x51\x6b\xe7\x85\xa6\xc8\xc1\x69\x76\xde\xfc\x1a\x69\x27\x41\x1b\x8e\x2a\xa9\x93\x92\x76\x62\x52\xa7\x39\xb5\x65\x81\x51\x97\xd3\xc7\x3f\xa9\xc1\x0b\xc7\x82\x14\x0f\x89\x6a\x00\x96\xe4\x9d\x8d\xf6\x69\xeb\x9a\x8e\xc9\xb9\xcc\x8b\x0c\x1a\x3a\xb9\xee\xf4\xfc\xcc\xab\x9f\x91\x2d\x0d\x6d\x76\xde\x60\xd7\x22\xcc\xc8\x4a\x69\xb3\xea\x45\x85\x33\xdb\xc5\x2a\xb0\x51\x39\x4b\xf8\x9b\x2c\xd9\x72\xca\x94\x5e\xf0\xfc\x41\x67\xd9\xc2\x7f\xda\xb7\x7e\xb7\x98\xda\x8c\x6b\x73\x1c\x1a\x1b\xb9\x6c\xab\xb7\xa0\xd6\xbc\x89\x4d\x4b\x1a\x7c\x4a\x41\x2b\x5e\xf7\x12\xd6\x1d\x81\x84\x89\x44\xa6\x18\xbe\x49\xc9\xe4\xe8\xdd\x87\x8b\xab\xb3\x1f\xcf\xde\x9d\x5e\x7d\x20\x17\x1f\xfe\xd7\x97\x0f\x97\x57\x93\x23\x72\xfe\xe1\x13\x99\x66\x32\xb9\x76\xe9\x1c\x34\x53\x1c\xd2\x32\x00\xf4\xea\x6f\x97\x3f\x7d\xb6\xea\xde\xff\x3e\xfd\xf4\x71\x54\xfa\xfc\x51\x27\x70\x57\x2d\x5b\x91\x29\xd5\xec\x0f\xbf\x3b\x76\x1f\x6c\x45\x24\x4d\x57\x1d\x5a\xf0\x1e\xd6\xb3\x34\x31\x77\xe9\xcd\xa1\x61\xad\x4c\x4a\x59\x0d\xd9\x5b\x4a\xa9\xe7\xf8\x3f\x17\x34\x43\xab\xb2\xa0\x4b\x54\x5f\x2c\xe9\x3d\xb9\x85\xbc\x2f\x81\x1f\x5b\xf5\xbf\xf5\x18\xa3\x9d\x7b\xc6\x33\x83\xa7\x36\x4a\x53\x81\xe5\x47\xec\x5e\x41\x92\x9f\x72\x84\xff\xf9\xf9\xf4\xd3\x87\xc9\x11\x36\xf3\xd9\x6a\xe0\xf3\xff\x64\x59\x76\x8c\x55\x5b\xd6\x1d\x7a\x00\xc4\x45\xc7\x6d\x4f\x67\xe2\x5b\x54\xd4\x74\xb3\xf3\x12\xae\x6a\xd5\xd9\xb9\xd9\x9b\x39\x9e\x08\x42\x2e\xe2\x65\x81\xd9\x3a\xed\xd0\xaa\x76\x82\xd9\xcb\x4b\x0b\x23\x8f\x83\xee\x3c\x5d\x61\x37\x25\x9c\xec\x78\x49\x05\x9d\xdb\xad\x70\x9f\xaf\x2a\xb1\x93\xa3\x44\x2b\x77\xfa\x51\x77\xf5\x30\x34\x2e\xda\xba\x72\xee\xe4\x2d\x1d\xd2\xdd\xeb\x73\x5d\xf1\xa3\xdf\x6d\x81\xdc\x64\xd7\x56\x27\xcc\x19\x1f\x6e\x31\xeb\x91\xf7\x92\xec\x6f\x11\x7f\x68\x5e\xc4\xaa\xef\xdc\xad\x5a\xa3\xf3\xbe\x71\xd9\x60\x79\xaa\x3e\xfd\x91\x0b\x0c\xef\xe7\xda\xdf\xff\xd1\xdb\xf7\xca\x4d\x04\x88\xe4\xc1\x82\xa9\xe2\x1a\x45\xd4\x94\x49\x28\xfe\x58\x66\x9f\x50\x1e\x12\x77\x42\x01\x2a\x76\x6c\x8f\x97\x80\xff\xff\xe5\x24\x5a\xd5\x63\x37\x9c\x63\x4f\x93\x4e\xbe\x8b\x88\xa9\x23\x0f\x76\x08\xef\x10\x10\x50\x92\x1a\x24\x4f\x34\xd3\x98\x43\xa0\x04\x9d\x5e\x95\x66\x1d\xa7\x77\x3b\xd2\x72\xa5\x0a\x6d\x00\xc8\x0a\x52\x0c\x97\xe2\x2d\xc6\x0e\xc0\xf3\x97\xef\x4e\xc9\xb4\x10\x69\xc6\xf4\x2b\x74\xde\xf9\x86\x60\x7f\xb1\x77\xf0\x9c\xa9\x25\x37\x40\x70\x0b\x54\x19\xdf\xc2\x62\x07\x40\x91\x33\xce\xa7\x5c\x3b\x33\x8c\x6f\x88\x89\x0a\x1c\xb9\x76\x87\xf1\xc2\x09\xf5\x23\x92\xfb\x7e\xc1\xd7\x85\x51\x04\x29\x73\x8c\xb3\xcc\x89\xe7\xcb\x54\x79\xb6\xf9\xb2\x0c\x59\xf5\x7e\x37\xf7\xb9\xd3\xcc\xe0\x12\xc1\x5e\xe1\x50\xfc\xa9\x04\xfd\x67\x64\x15\x3e\xa3\x78\x62\x7c\x09\x2a\x3f\x60\x34\x02\xbc\xea\x9a\x57\x18\xd5\xda\xcc\x7e\xd7\x67\x66\xd7\x6c\xe5\x7d\xaa\x27\xd8\x97\xe5\xff\xe5\x53\xdb\xd1\xef\xc7\xe4\xc3\xb7\x9c\x63\xee\x81\xf8\xcc\x84\x5c\x54\x6f\xc3\xbc\x31\x19\xd4\x8c\x7f\x5b\xf7\x1e\x86\x14\x06\xf6\xb4\xba\xdf\x68\xba\xe4\xc2\x7e\xe3\x0f\x20\x4c\x40\x17\x52\x81\xe1\xb1\xca\x1b\x4f\xab\x14\x20\x5a\xce\x1d\x8c\xc9\x05\xef\x52\xd9\x0b\x9e\x56\x55\x0e\xfb\xe0\x31\x88\xda\x1b\xa7\x05\x3b\xd6\x35\x33\xdc\xec\xb2\xde\x1d\x45\xf7\xf9\x2c\x3e\x0a\xa5\x40\xe3\x4e\xba\x23\x5f\x75\x4b\x6c\x85\x5a\x5a\xd2\xdb\xc8\xe4\x56\xb9\xcb\xb5\xe5\xba\x7d\x4b\x26\x47\x29\x9f\x73\x43\x33\x4c\xb1\x6a\x0a\xc5\xd0\x0e\x6f\xc7\xc0\x44\xc2\xf3\x05\x53\x4b\x90\x2f\xec\x53\xd7\xab\xa5\x59\xce\x24\xbf\xf6\xe1\x66\x3e\xd1\xf4\xe5\xe6\x4f\xb4\x8c\xc7\xed\x52\xf4\xe5\xb5\xb0\xa5\x89\xb0\xed\x3c\x2d\xdf\xd0\x97\x3d\x4f\x58\x74\x6d\xb9\xe4\xc6\x7d\x1a\xde\x6e\x1e\x92\x7d\x4a\xe7\x8a\xb1\x68\x94\x56\x94\xae\xb5\x84\x1e\xec\xb4\xe1\x7b\xee\x53\x2a\x8b\xfe\xf2\x2f\x40\x76\x31\xd7\x11\x5b\x7b\x44\xc5\xca\xf7\x56\x99\xf5\xda\x06\xb8\x2f\xca\x34\xe8\x0f\xee\x33\x4b\xca\x33\x92\x2b\x69\xd0\xd4\xe7\x56\xf0\x64\xc9\x97\xcc\xbf\xc5\x73\xcd\x12\x02\x18\x7f\xc8\x6a\x88\x6d\xf0\xa9\x29\x84\x60\x59\xfc\xc4\xde\x34\xff\xa6\x25\x33\xda\xd0\x65\x1e\xbe\x27\x13\x9d\x57\x47\xb0\xe4\x89\x92\x5a\xce\x0c\xd1\xf3\x04\x1f\x09\x66\x74\x42\x73\x86\x4f\x1e\xb7\x62\x67\xa7\xdb\xa3\x98\x9e\x6f\x56\x25\x50\x71\x59\xbd\xc7\x45\xa1\x7a\x1a\xd1\xd4\x1a\x98\x22\xd6\xcc\x0e\xee\xe0\xe8\x0e\xae\xd8\xfc\x66\xb9\x1b\x91\x2b\xc9\xeb\x3c\x5e\x5d\x0c\xde\xbe\x13\x74\xb6\x9d\x38\x77\x57\xd5\x23\x5b\xc1\x4b\xb5\x50\xdf\x1e\x61\x9c\x65\xeb\x8e\x03\x55\x05\xfe\x90\x3c\x1c\x06\x8c\x5c\x14\x0d\xdf\xaf\xf2\x76\x87\xe3\xa2\x22\xf8\xd8\xaa\xde\x40\x67\xbc\xae\xe7\x3f\xb4\x7c\x67\x83\x8b\x70\x4c\x7e\x12\x09\x2b\x87\x33\xaa\xe5\x67\x2c\x0f\xa2\xa5\xcb\x67\xb3\x35\xd3\x60\xdd\xba\xc1\x75\x89\x79\xaa\xfa\xee\xc0\x67\x17\xf9\x55\x83\x07\x13\x77\x20\x7c\x55\x59\x1a\x27\x34\x61\xcb\xdc\xac\x5c\xca\x48\x16\xe9\x5e\x56\x6e\x69\xf4\x5b\xb6\x7d\x31\x78\x4f\xfb\x7d\x31\x30\x20\xbc\x8e\xee\x22\x59\x46\xe0\x45\xeb\x78\xfe\x90\x46\xdf\x1d\x4b\xf4\xed\x2b\xb2\xb4\x0a\x44\xb0\xe0\x68\x27\x4f\x9f\x66\x59\xf4\x10\x5f\x84\xc0\x0c\x54\x56\x22\x3b\xd0\xe4\x08\x93\xda\x8e\x42\xc7\x42\x92\x05\xa3\x29\x53\xba\x3c\xb0\xde\x8e\x64\xf9\x95\xd5\xaa\x7c\x42\x7f\x4a\xfe\xfc\xe1\xc2\x1b\x7d\xc8\xe9\xe5\xe7\xf1\x9b\x98\x2c\x11\x6d\x54\x01\xfe\x02\x02\xfe\x68\x04\x28\xa5\x2e\x8a\x10\xa6\xfc\x3b\xbb\x78\x17\x3f\xbe\xfb\xfd\xf7\x7f\x7c\xed\xc4\xf7\xcf\x52\x1c\xdb\xc1\x7b\xfe\xba\xa4\x80\x59\x67\x34\xd4\x76\x96\x2a\x4a\x5e\x5a\x9f\x4e\x34\x6f\x67\xb5\x29\xc4\x0d\xae\x31\x4b\x2d\xef\xc1\x28\xb3\x4c\xde\x12\xac\xd0\x9e\x67\x54\x50\x23\xd5\x8a\x18\xf6\xcd\xb4\x8e\xf4\xf7\xe3\xef\xdd\x58\xff\xe3\x77\x7f\xf8\xa3\x3f\xa3\x4b\xac\x83\x40\x71\x43\xc2\xb7\xa3\x5b\x52\xae\x62\xe9\xc1\xa8\x51\x06\x86\x69\xc6\x23\x73\x4f\x19\x18\x17\x48\x0d\x00\x96\x6e\xb9\x76\x99\xcc\x67\x5c\xd9\x3d\xf0\x1f\x6b\x26\x2b\xf8\xed\x28\xfc\xce\x2d\x4c\x89\x4b\x30\x8e\xa1\x50\x8d\x1e\x4d\x97\xee\xb4\x26\x9d\x8b\x94\x54\x72\xc1\x59\x09\x6d\x41\x45\xaa\x17\xf4\x1a\x74\x8a\x89\xb8\x5a\x43\x1c\xc6\xd6\x47\xbb\x30\x68\x05\x44\x9b\xd5\x9e\xec\x8c\x23\xa2\xa5\x55\x51\x12\x29\x34\xb7\xe2\xa3\x9c\xbd\xb5\xfd\x5b\xaa\x88\x2d\x5f\xe2\x1f\xc7\xf6\x7f\x7f\xfe\xf0\x97\xb3\xcf\x24\x3a\x2d\xf0\x14\x1b\x8c\xc7\xe3\xa8\xe5\x87\xcf\xef\x5b\xda\xbd\x7a\x48\xcb\x66\xef\x44\x98\x31\x7a\x22\xcf\x33\x5e\x16\x40\xf7\xee\x95\x3b\xc2\x68\xee\xd9\xa3\xbb\xc7\x54\x97\xb0\xd8\x4b\x9a\x1f\x5f\xb3\x95\xae\x48\x2c\x65\x37\xd1\xa3\x7f\xf7\xdc\xb6\x25\xcd\xf7\x1f\x7a\xe4\xa2\x45\x77\x88\x3f\x7a\x1f\x83\x41\xdb\x59\xe8\x00\xca\x78\xcc\xa0\x8c\x01\x8a\xf0\x5c\xa0\x08\xf7\x11\xee\xd1\x41\x2c\x3a\x63\x3e\xea\x0c\x3c\x48\xd9\x46\xb3\x6c\x86\x75\x57\xc4\x2a\xe2\xc6\x71\x94\xc2\x41\x43\x2b\xba\x66\xd6\x1d\x5f\xf1\xde\x85\x8b\xac\xc7\x55\xc4\x3c\xf1\x61\x32\xe2\x1d\x34\x5e\x61\xdb\xd4\x46\xdb\xad\x7c\x63\xe4\xc2\x10\x42\x30\x84\x10\x20\x7e\xdb\x5b\xf8\x02\x18\xfe\x60\x21\x03\x8f\x2f\x3e\xe0\xc1\x82\x01\x76\xaa\x14\xbc\xd7\x60\x80\x4a\x96\x96\xc9\x91\xfd\xa0\x7d\x5a\x5e\x93\x46\xed\x33\x34\x7c\xd0\x58\x02\x74\xfc\xed\xac\x08\xed\x05\x0d\xbe\x27\xd3\x68\x07\xed\xae\x03\xc0\x07\x05\xe0\xf1\x29\x00\x8d\xa8\xec\x3d\x29\xdb\x5d\xba\x65\x4f\x45\x7b\x50\x5c\x9e\xb5\xe2\x32\x60\xa8\xef\x4b\x96\xee\x40\x53\x63\xea\xb8\x48\x7d\x69\x88\xbb\xaf\xc5\x86\x3b\x5f\x61\x14\x85\xef\xc3\x32\x2c\x55\xfc\xd2\x23\xf0\x7e\xe4\x2a\x56\xde\x3d\xf0\xfe\x99\x82\xb9\x3f\x00\x7a\x7b\xa3\x56\x09\x55\x45\xb5\xd5\x13\x2e\x19\x7a\x72\xc7\x67\x62\x26\x91\x53\xcd\x68\x82\x79\x11\x9d\x90\x7a\x28\x3c\xf6\x5f\x00\x7f\x7d\xb0\x71\x3e\x36\xc7\x7b\x3f\x44\xf5\x9f\x2b\xae\x04\x72\xfe\xf7\x77\x97\xdf\xbd\x79\x4d\xde\x5d\x5e\x80\xeb\xe1\x49\x40\x98\x2f\x6a\x48\xe5\xba\xaa\xe1\x6b\xf9\xd4\x81\xcb\x1e\x07\x64\xa7\xf5\x96\x7c\xd5\x89\xcc\xd9\xf1\x42\x6a\x03\xa8\x66\x2e\x4f\xec\x7f\xbf\x82\xd0\x0e\x9e\xca\x51\x48\x3e\x0c\xc5\xf1\x40\xbe\x67\xa9\xf3\x51\x9e\xcd\x08\x37\x2f\xec\x47\x1c\x86\xb3\x01\x36\xe4\xcb\x0a\x52\x0d\x03\x4d\xd1\x9b\xb2\x25\xf6\xd6\x79\x37\xd7\xbf\xd7\x80\x16\xea\xff\xc1\x0a\x4e\xd5\xf9\x20\x7f\x2a\x9d\x6d\xd5\x6e\xd6\x7a\xc8\xd8\x9c\x26\xab\xe3\x22\xa8\x3f\x13\xf1\x3e\x02\x42\x82\xb8\x0b\x30\x48\xc8\x97\xea\x50\xd9\xae\x22\x13\xb1\x77\x50\xce\xc8\x94\x8a\x74\x0c\xd5\x7e\x2d\x1d\xc6\x22\x9d\x8d\xc0\xf0\xaf\x35\x37\xe1\xd7\x83\x80\xe5\xbe\x9c\xbd\x3f\x3c\x4d\xbb\x33\xf0\xcd\xc1\x05\xbf\xb4\xe2\xdf\x8a\x90\x45\x80\x7d\x73\x39\x33\xaf\xd9\x2a\x9c\x62\xf0\x09\xdb\x81\xc2\x2c\x4a\x71\xce\x48\x99\xe9\x31\x67\x66\x06\x59\x77\x17\x66\x99\x9d\xa8\x59\xf2\xfb\xef\xff\xf8\xfa\x3b\xe7\x0b\x3e\xfe\xdd\xf8\xfb\xf1\x9b\xf1\x0f\x78\xa6\x76\x78\xf3\xcd\xf7\xdd\xc0\x33\xf8\xb3\x09\x7a\xe6\xe0\x5a\x5b\x80\xcf\xc2\xf3\x18\x7e\x86\xfd\xf7\x01\xa0\xe1\x83\x12\x82\x06\x7f\xd7\x41\x68\xd8\x1d\x6b\x78\xd8\x0a\x44\xc3\x7e\x3b\xa1\x68\xf8\xb9\x75\x30\x1a\xf6\xd8\x05\x47\x8b\x9e\x07\x40\x5a\xf4\x6c\x03\x24\x0d\x9e\xd5\x40\x69\xf0\xac\x0e\x4b\x83\x87\xcf\x10\x98\x76\x76\xef\x34\xa0\xa7\x6e\xa1\xaa\x3a\xea\x81\x2d\x25\xeb\x48\xb2\xbb\x43\xb4\xce\x66\x8d\x49\x23\x46\xf5\x24\xca\x40\xac\x20\xf5\x7c\x0b\xc2\x83\x2c\xd8\x86\x2a\xb1\x8f\x0a\x94\xf0\xae\x0b\x94\x30\x22\xba\x48\x16\x24\xac\x07\xcd\x7c\x5a\x2b\x9a\x1d\x06\x71\xd0\xdb\xbf\xb1\x9f\xbb\xf9\x68\x61\x07\x52\xaa\x94\x0b\xf4\xe4\x59\xad\x9f\x51\xcd\x36\x28\xa3\xf0\x7b\xb0\xf2\x51\x92\xc1\xdf\xae\x2e\xea\x90\x43\xf2\x51\xdb\x14\x07\xdb\xdc\x73\xb1\xcd\xf5\xcc\x69\xfd\xf4\x12\x52\x37\x92\xa3\xdd\x32\x53\xc3\xab\x8f\x38\x07\xf5\x3e\xed\x9f\xf1\xaa\x6d\xb2\x7f\x22\x75\xdf\x4f\xae\x88\xa6\x9d\xea\x48\x2d\x14\xda\x20\x89\xf1\x15\x06\x90\xa7\xb8\x84\x31\x03\x0f\x79\xd4\x3c\xa4\x4f\xb6\xa0\xb3\x32\x5b\x90\xdf\x62\xbf\xd0\xf5\x3d\x6e\xed\x73\x67\x62\x31\x78\xaf\x06\x0e\x39\x14\xd8\xc3\xe7\xf7\xcd\x59\xf6\x98\x89\xa8\x55\x0e\xe8\xe0\x2e\x90\x61\x08\xaf\x67\x5d\x28\xa0\x4e\x24\xe8\x53\x21\x07\x16\x7f\xcf\xa8\xa9\x4f\x3c\x51\xb2\x13\x3a\x15\x7d\x1b\xe7\x01\x20\x35\x80\x97\xc5\xb0\x2f\xd4\xbb\xc0\x80\x80\x2f\xa4\x2d\x20\xb0\x85\xcc\x52\xa6\xce\x52\x7b\xfe\x4c\x57\xfd\xbf\x6a\xe3\x6a\x54\x22\xf7\x4f\x9d\x7c\x85\x6d\x5d\xf5\xa1\x78\x54\x3b\x58\x7d\xe1\xbd\xf7\xae\x24\x7e\xbf\x02\x65\x4d\xaf\xe0\x82\xa5\xbe\xb4\xbe\x4f\x59\x92\x42\x00\x10\x06\x18\x7b\x8d\x55\x30\xb4\x41\xdc\x52\x0e\x99\x23\x66\xd2\x92\x69\xb7\x96\x84\x9b\xb2\x62\xd7\x92\x51\x0d\x61\x4c\x73\xbb\x14\x26\x24\xc2\x05\x44\x9b\x9c\x82\x5d\x33\x25\x17\x4c\xb0\xdb\x2b\xc0\xe2\xb5\x18\x64\x76\xad\xc8\x05\xe3\x2d\xf1\x8b\xbd\xd6\x25\x6a\xee\xb1\x8e\x65\xb9\x32\x13\xfd\x08\xbb\x87\x2b\xe2\x0b\x90\xe1\xbe\x6e\x2c\xb6\xb6\xd3\x3c\x94\x5f\xa1\x7b\xbf\x52\xe1\xcb\x9b\x2e\x54\x7c\x9c\x71\x41\x16\x54\xc7\xb0\x45\x0c\xe4\x72\x27\x7c\xef\x86\x17\x34\x47\x0d\xd6\x97\xe7\x2b\x39\x0f\xb2\xe5\x73\x91\x2d\x7f\x2d\xd6\x97\x88\x26\x0d\x26\x98\xfb\x32\xc1\x6c\x0d\x35\x6b\xdd\xb3\xc1\x18\xf3\xdc\x59\xca\x23\x36\xc6\xc4\xf2\xcc\x60\x91\x19\xb8\xe6\x60\x91\x21\x8f\xd0\x22\xb3\x3f\x66\x33\xd8\x66\x06\xdb\xcc\x60\x9b\x19\x6c\x33\xcf\xc4\x36\x83\x95\xc8\x4f\xff\x79\xf9\xc1\x7e\x85\x27\x7f\xce\x64\x72\x7d\x69\xa4\x62\xff\x90\x59\xb1\x64\x97\x20\x44\x6c\x20\x78\x17\x65\xc5\x76\x4a\xce\x2d\xcd\xd5\x00\xda\x7c\xcf\xf5\x75\x29\x84\x70\x41\x4e\xff\x79\xe9\x2b\x13\x9d\xfe\xf3\x92\x7c\xf8\xf3\x25\x49\x6d\x1b\xc8\xb3\x04\xc1\xc2\x3e\xf5\xd1\x52\x16\x4e\x98\x91\x24\xa4\x91\x67\x0a\x93\xb3\x96\xef\xf8\xec\xad\x0e\xe6\xad\xe9\x92\x41\xcf\xbf\x48\x01\xb9\x98\x00\x0c\x8b\xd8\xe7\x31\xa9\x7f\x35\x81\x6c\x46\xd9\x0a\x63\x39\x0a\xe1\x22\x34\x15\xa3\xe9\xc9\xad\xe2\x86\x41\x01\x9d\x71\x78\xe9\x06\x56\x43\x13\x5d\xe4\xb9\x54\x86\xc8\x5b\xe1\xd2\xbc\x63\xaa\xdb\x25\x00\x3c\x45\x4a\x2e\x3f\x7c\xe4\xa2\xf8\x46\x14\x83\x9c\x53\x5c\xcc\x7b\xd0\xfa\x99\xbe\xea\x8e\xef\xfc\x91\x67\x0c\x21\x9f\x24\x0e\xf5\xc4\x91\x21\x9d\x59\xc9\x82\xdc\x52\x01\xc4\x04\x66\x35\x26\x57\x3c\x7f\x4b\x3e\x08\xa0\x1e\xd0\x06\x13\x2b\x55\xbb\xe2\x61\x62\x65\x3a\xbd\x85\xb4\xa4\x25\x67\xca\xd5\x48\x84\xe6\x63\xf2\xe1\x1b\x5d\xe6\x19\xd3\x6f\xc9\xe4\x88\x7d\x33\xbf\xc3\xd8\xd1\x6f\x33\xed\x72\x17\x1a\xfb\xaf\x31\x39\x5b\xe6\x19\x4f\xb8\xc9\x9c\x70\xa9\x90\xd2\x41\x4c\x2d\xbe\x46\x38\x04\xcb\x96\xa9\x77\x1b\x44\x9f\x2a\x0c\x1d\x72\x03\x3b\x1b\xa0\x3e\xd1\x46\x2a\x3a\x67\x27\x6e\x67\xbe\xa3\xb7\x9a\xe1\x19\xc6\x04\x50\xf6\x0c\x6f\xcf\x04\x72\xaa\x4c\x3d\xdc\xbf\x69\x33\xec\x51\x0c\x6d\xfd\x11\xec\xd8\x8a\xb3\x19\x91\x3e\xa1\xad\xcb\x95\x45\x8b\x0c\xd4\x52\xdf\xc8\x2e\xbe\xeb\x05\xa2\x14\xa2\xe5\xfe\x51\x2a\xff\x93\x15\xf8\x4e\x74\x4a\xdf\x8c\xe0\x33\xb8\x86\xb8\x6b\xe5\x98\x20\xde\xf8\x8d\xdd\x8b\x4b\xbe\xe4\x19\x55\xd9\x6a\x14\x8f\xb2\x6c\x69\x59\x92\xef\xd2\x0e\x66\x72\xf4\x7a\x72\x44\x5e\x4a\x05\xbd\xdb\x9b\x92\x31\x9f\x58\xcd\x9d\xe0\x15\x86\x4c\xbc\x3a\x00\x81\xa6\xe9\x4f\x22\xeb\x92\x11\x2e\xdd\x94\x27\x47\x06\x22\xaa\x23\xee\x29\x52\x00\xc7\x63\x2c\x18\x76\x56\x8e\x9a\x0b\x82\x74\xed\x93\x5d\x6d\x17\xbd\x6d\xca\xe8\xed\xb6\xfd\x99\x1c\xcd\x30\x10\xfc\x1e\x8f\xe9\x54\xca\x8c\xd1\x96\x9c\x01\xd8\xdd\xd9\xfb\xae\x30\x07\xc1\x7f\x2e\x18\x39\x7b\xef\xa9\x45\x5e\x52\xe8\xb4\x81\x42\x93\x97\xa7\x4b\xfa\x8b\x14\x11\xcd\x7b\xf5\x90\x37\xb3\xa7\x72\x12\x56\xa3\x4b\x3f\xe9\x64\x84\x33\x60\xfe\xab\x0d\x0c\xcf\x37\x41\x3e\x8e\x55\x3f\x2c\xc3\xf6\x8f\x75\xb2\x60\x69\x91\x41\x06\xaa\x22\x63\x7d\x4c\x4b\x42\xa6\xac\xe1\xcb\xa4\xa7\x3d\x02\x87\xfe\x39\xee\x64\x93\x24\x52\xe6\xcd\xb2\xdf\x6d\x1f\x78\x88\xb3\xca\x65\x9b\x5c\x9f\xcb\xf4\xce\xe3\x3e\x8f\xfa\xe8\x37\xec\x5c\xa6\x1b\x46\xfd\x92\x8d\xe7\x63\x92\xc8\xe3\x4c\x62\x35\x82\x05\xc7\x57\x62\x39\xc1\xce\x7c\x04\x92\xc2\x88\x30\x93\x8c\x2d\xb5\xd4\x72\xe9\x32\x10\xda\xe6\x2f\xf5\xab\x57\x1b\x66\x2d\x0c\xdf\xcb\xcc\xe3\x7e\xb6\x98\xbd\x30\xfc\xb8\x6b\x09\xe8\x8d\xe4\x29\xc9\x0b\xe3\x0c\x43\x7b\x59\x86\x3b\x4b\x9a\xc6\x50\x3b\x5c\xa4\xc2\x9b\xae\x59\xa5\x61\xa5\xf2\xaf\x63\x60\xd4\xb5\x40\x31\xd1\x4e\xa5\xfb\xa6\xa5\xec\x86\x27\xec\x9c\x9a\x45\x07\xe1\x7c\x1f\x1a\x46\x46\x33\xc7\x15\xec\x2f\x24\xb7\x3f\xdd\x2e\x98\x62\x31\x53\x2d\xd3\x7e\x84\x22\x07\xdb\xcb\x20\x3d\xc2\x56\x3e\x47\x99\x93\xc3\x3a\xe0\x18\xf6\x4b\x59\x61\x2c\xa3\xc6\x05\xbc\x33\xad\xfd\xa5\x50\xcc\xaa\x09\x3d\x35\x8d\xd0\x3e\xde\x11\x2a\x08\x3c\x27\xef\xa9\xa1\xa8\x74\xa0\x20\x25\x45\x29\xc5\x42\x39\x02\x2e\x52\xf7\x93\xb3\x94\x03\x59\xeb\x3c\x31\x09\x28\x7e\xf3\x4f\xf6\x78\x6d\xde\x93\xbf\xda\x4f\xbd\xc3\xe6\x64\x29\x53\xf6\x96\x7c\x86\x9b\x65\xc5\x10\x08\x50\x77\xff\xfc\xa7\xd5\x2f\x76\x30\x50\x58\x86\xdd\x23\x5e\xd6\x8a\xa6\xf1\xf9\x80\xf8\x37\x60\xf6\xee\xea\x4f\x33\x39\x25\x8e\x49\xef\x36\x8a\x2f\x17\x67\x3d\x06\xf1\xe5\xe2\xec\x10\x03\xd8\x49\x59\x2a\xa5\xf0\x4f\x21\xaf\x6f\x5d\x0b\xea\xaf\x02\x8d\xf7\xad\xfc\x1c\xc4\xcb\xfe\xe1\x5b\xce\x12\x13\x1c\x3c\xe4\x72\x41\x15\x4b\xdf\x92\x65\x91\x19\x9e\x67\x6e\x1f\xec\xc6\x68\x2b\x17\xfa\x1d\x21\x34\x49\xe0\x9e\x90\xf7\x0c\xf3\xf2\xa6\x6f\x89\xe6\x62\x1e\xbf\xd1\xfc\xc2\x27\xd0\x85\xd3\xb7\x84\xc2\x9d\x44\xd5\x38\x8d\x0e\xc0\x4b\xd0\xb9\xb9\x08\x3f\x39\x32\xc9\x33\x60\x64\xcc\xbc\x1a\x47\x59\xc0\x24\xd1\x30\xe4\x9d\xf2\x57\xf5\x51\x23\xe2\x2c\x4e\x20\xe0\x93\x97\xa5\x05\xe0\xd5\xb8\x54\x20\x80\xce\x43\xa0\x1a\x6a\x19\x15\xed\x42\x33\x64\xb1\x35\xe5\xa2\x65\x53\xd7\xc5\xfa\x9e\xa4\x38\x5c\xff\x86\xcb\xb8\x17\x5a\x6c\xef\x4c\x69\xc1\xd9\x86\x2a\xdb\x37\x1b\xa9\x32\xfc\x70\xc9\x14\xb0\xcc\xfd\x12\xe6\x27\xb5\xc5\x31\x60\x81\x25\x8a\x99\x1e\x74\x3c\xae\x90\x80\x2f\x39\x63\xb2\x37\x88\xe3\x12\x5f\xba\x4b\x78\xea\x2e\x21\x90\x7e\xbb\xb0\x7f\x67\xab\x1d\xf2\xaf\x85\xd1\xe9\x9c\xfe\xff\xec\xbd\xeb\x72\x1b\x39\x96\x3f\xf8\x7d\x9f\x02\xeb\x9a\x08\x49\xff\x3f\x49\xd9\x75\x71\x75\xbb\x63\x3e\xa8\x24\xd9\xad\x29\x5b\xd6\x48\xb2\x6b\x3b\x5a\x1d\xd5\x60\x26\x48\x62\x94\x04\xb2\x13\x48\x49\xac\xd9\x89\xd8\xd7\xd8\xd7\xdb\x27\xd9\xc0\x39\x07\x48\x64\xf2\x96\xbc\x48\x56\xb9\x18\x33\x51\x6d\x31\x91\x48\x5c\xcf\xfd\xfc\x4e\xd2\x76\x88\xd0\xd6\xf3\x9b\x35\xc7\x5a\x33\x87\x78\x01\x95\xcc\x78\x17\x7a\x0d\x1a\x00\xb4\xa3\xc5\x3a\x03\x59\x64\x8d\x9b\xb5\x05\xd1\x29\xda\xe8\x99\xa3\xda\xda\x9d\xdd\xdd\xd4\x3f\xe4\x4d\xfd\xca\x8f\xf7\x4f\x52\xa5\x6e\x60\xf3\x0f\x34\xb5\x60\xee\xc4\x21\xf4\x23\x46\x39\x54\xc0\xa5\x7f\xa1\xf2\x07\x60\x43\xed\x30\x8e\x0a\xb0\x61\x7d\x5d\xaa\x48\x6f\x74\xf2\x1e\xf7\x6a\xb4\x28\x7a\xec\xc4\x5d\x10\x90\x7c\xdc\x39\x7a\xd5\xfb\xb1\xc3\x72\xf4\xc7\x40\xe1\x3e\x27\xc2\xe2\xb7\x6b\xc5\x3f\xdc\xf6\xe7\x3a\x35\x4c\x2a\x63\x05\x6f\x73\x35\x76\x41\x45\xbb\x38\xd5\x5d\xc4\x0d\xdb\xd0\x03\xdb\x32\x4e\x35\xc4\xdc\xe0\xde\xec\x99\x2f\x1a\x77\x13\x2d\x89\xe5\xc5\x50\x4c\x41\x79\xb5\xb6\x23\xe2\xf4\x2f\x7d\xd1\xcc\xa5\x08\xe8\xf8\xb9\x40\x2d\x9b\xde\x2a\x60\xf3\x74\xf1\x4d\x7d\xc9\x16\x5a\x02\xe7\xc0\xbd\xe2\xdc\x96\x71\x83\x2d\x06\x0e\xcd\x8e\x12\xf2\xec\x64\x7e\x8c\xd0\x4a\xe1\x41\xb8\xf2\xc7\x57\x67\x2b\x2b\x4c\x91\xc3\xdc\xeb\xcf\xb0\x05\xd2\x04\xa5\xd8\xb1\x23\x05\x95\x2d\x81\xda\x1e\x5f\x9d\x79\xfb\x62\x5a\xc8\x3b\x51\xb0\xfd\x9f\x84\xe5\x6c\x20\x00\x2e\xe9\xa0\x85\x11\x2b\xa0\xad\x9c\x3e\xe4\x5c\xa5\x57\xc0\xbb\x2f\xe1\x7c\xad\x77\xe6\x42\x0f\x2d\xce\xdc\xf1\xbc\xaf\x23\x69\x0d\xd5\x5e\xc3\xa1\x43\x11\x8a\xce\x27\x09\x51\x60\x80\x11\x10\x33\x72\x27\x6a\xd0\x5d\x56\xb3\x9c\x9b\xc0\xab\xdc\x6a\xd1\x32\x59\xcd\x12\xed\x58\xbf\x15\xe1\x51\x73\x30\x64\x5f\x4e\x78\x96\x55\xe1\x36\x50\x1b\x36\x1f\x71\x02\x26\x73\x7c\x8e\x4e\xb7\x61\x42\xf1\x3e\xd8\xda\xf1\xfd\xe3\xab\xb3\xcf\x14\x1b\x40\xfb\xc1\x86\xdc\x8a\x66\xdd\x30\x0d\xab\xc1\xb3\x8a\x69\xf6\x05\xfa\x50\x99\x1c\x30\xa5\xfd\xa4\xa9\x20\x2a\xc4\x52\x85\x5a\x5d\xb3\xd6\xc3\x34\xca\x32\x61\xa3\x0e\xe3\x59\x46\xff\x46\x30\x4b\xb7\x34\x73\xe3\xb2\xaa\x73\x71\x51\xf6\x33\x69\x46\x5f\xea\x60\x34\x3f\xff\x65\x4f\x06\x8d\x86\x8e\x86\xdb\xb0\xea\xd9\x27\x95\xd7\x9e\xba\x83\x63\x7e\x1f\xbb\x8d\x73\x5f\xa6\x85\xe1\x02\xc9\xe9\x0a\x8d\xd5\xd2\x39\x21\x38\xd4\x9a\x46\xca\x54\xd5\xed\x5d\xc3\x96\xf9\xec\x2d\xba\x6b\xf8\x70\x74\x2a\xbe\xc8\x9d\x3a\x9f\xf1\xe1\x2f\x71\x9b\xa2\x71\x44\xf7\xc8\xfd\xfa\x3b\xbe\x41\x6e\x57\xaf\x2c\x1f\x8a\xa7\xdf\xd3\xfa\x67\xbf\xd4\x8e\xc2\x28\x1a\xfb\x39\xeb\xb7\x4f\xca\x44\xbf\xfe\x8e\x76\xb8\xa5\xad\xea\x23\x0d\xfe\x0d\xc4\x24\xa2\x56\x18\xad\xe6\x1c\x56\x12\x6a\xd7\x2e\x31\x75\xad\x1d\x0f\x74\x64\xa9\xe8\xfc\x54\x80\x6e\x3b\x98\xe9\xb6\x68\x8d\xd3\xbe\x7a\xfa\x6c\x33\x28\x51\x33\xba\xeb\x6b\xa0\x3e\x63\x1f\x7f\xe5\x2a\xcd\x96\xf1\x86\xcf\x51\x53\xcf\xba\x4a\x0c\x7d\x8a\xa2\xe9\x58\x21\x6c\x59\xa8\x8a\x1b\x44\x82\x75\x9e\x95\x43\xa9\xfe\xbf\xff\xe7\xff\x35\xec\x18\x30\xc5\x3f\x87\x19\xc0\x2d\xf3\x77\x84\x9a\x63\xcd\xfb\xb8\xea\x24\x9d\xf1\x55\xb9\x60\x4b\x2d\x8a\x58\xf7\xbc\xd5\xd9\xd4\xd6\x16\x84\xd8\xd5\xc2\x7d\xc9\xde\x01\x81\x36\x21\xbf\xa1\xda\x7a\x60\xcf\x9d\x45\x5a\x4d\x63\x5a\xf3\xc3\x36\x36\x93\x5c\x62\xc2\xe6\x54\xad\x11\xac\x9a\xa9\xcb\x2f\xc7\x5a\x99\x32\xb3\x58\x50\x67\xa2\xcb\x02\x0b\xfd\x87\x28\xa8\x44\x17\x85\xa3\x36\x8a\xfc\x12\x85\x18\x3a\xbd\xaf\xa8\x0a\xce\x27\x59\xe9\x7e\x78\x7a\x01\x68\xb9\x43\x7a\x00\x15\x6d\xf2\x42\xdf\xc9\xd4\x87\x37\x22\xad\x45\xda\x25\x0d\x91\x45\x7f\xce\xb9\x31\x3a\x91\x60\x01\x8d\x56\xef\x7e\x24\x93\x11\x9a\xde\x53\x61\x45\x31\x96\x4a\xd4\x42\x25\x63\x01\x4c\x03\x04\xe6\xe4\x4b\x0b\x4f\xef\x75\xc2\xb3\x55\x4c\x24\x5f\xa5\x04\xf5\x34\x0c\xb6\x5a\xa1\xed\xb1\xda\xab\x08\xf5\xda\xbd\xd2\x85\x10\x82\x44\xab\x81\x1c\xfa\x24\x1b\x7f\x47\xfd\x5d\xfe\xca\xf8\xeb\xe7\xc6\xc7\xc1\x70\x24\x0c\x1d\x9e\xae\x4f\x32\x63\x15\xf9\x44\x3a\x57\x6d\xc1\xf4\x91\xab\x08\x1e\xd0\x3a\xfc\x71\xcf\xb0\x54\x27\xe5\x38\xf8\x0d\x00\xd0\x3d\x28\x51\x64\xd3\x6f\xc9\xca\x57\x63\x6d\x1b\xb3\x30\x9e\x63\x18\x49\x7d\xe1\xa7\x44\x95\x34\x35\x64\xcf\x19\xeb\x3b\x61\xd8\xc5\xc7\xab\xb3\xff\x8b\x25\xd1\xdb\x68\x90\x2f\x4a\xa5\xa8\x7a\x1d\xa6\x9f\xb4\xca\x11\x4f\x97\x79\x14\x8e\xa0\x42\x5e\xfc\xb9\x47\x84\xd1\x9e\x63\x05\xd0\xf9\xd2\x8a\x0b\x63\x2c\x88\xff\xd4\xc3\x9c\x3a\x32\xab\x1e\x02\x91\x8f\xde\x5e\x6d\x62\x92\xe5\xcc\xf5\xc1\x22\x5e\x4b\x0e\x6f\x77\x9f\x32\x6e\x28\x08\x34\x93\x03\xe1\x73\xf0\xd0\xab\xe8\x5e\x1b\x98\x90\x27\x94\x6a\xe0\xb8\x0b\xd3\x85\x74\xb1\x5e\xb6\xd0\x58\x2b\x69\x75\xb1\x2c\x09\xcf\x8b\xa2\x6f\xd8\x07\x7a\x01\xb9\x58\xe2\x14\x93\xc4\x0b\x6c\x30\x5d\xdf\xe3\x2c\x37\x08\x79\x4f\x7d\xbd\x21\x1f\xd5\x7f\x98\xc0\x84\x0f\x2f\x4f\x8f\x4e\x3e\x9c\xf6\xc6\xe9\x37\x23\x7d\xdf\xb5\xba\x5b\x1a\xd1\x95\xf6\xa9\x4f\x75\xbe\x3c\xa4\xb7\xd2\xd9\x3e\x19\xcc\xf6\x72\x3b\xe9\x93\xbf\x0a\xad\x6d\x87\x15\x1c\x02\x9f\x81\xc5\x41\xa2\x54\x99\x65\xb8\x44\xb6\x10\xa2\x13\xc7\xa8\x1c\x3e\x5a\x54\x5a\x35\xd0\xc7\x0d\x89\x78\xac\xdd\x5e\x21\xb8\xc2\xdd\xb3\xd6\xab\x71\x15\x5e\xf1\x42\x3e\x04\x61\x5b\x0d\x35\x2f\xc0\x3f\xeb\xf8\xd5\x27\x23\x8a\xfa\x4e\x09\x9b\xc0\x04\x0e\x01\xc2\x9f\x44\x95\x47\x9e\xfc\xf2\x20\xab\xa7\xb2\x1e\x35\x17\x90\xc4\xd9\x29\x61\x96\x97\x76\x24\x94\xf5\xc9\xea\xb4\x4c\x33\x57\x14\xa4\xc8\x6d\x9e\x9f\x99\xcb\xe4\x76\x6b\x95\x3b\x1d\x74\xbf\x82\xa7\xda\x40\xbd\x06\xd0\xd6\x6a\x43\x47\xa5\xee\xa9\x37\xbf\xa5\x2c\x14\x28\xfb\xc6\xd2\x10\x30\xc2\x1d\xfb\xdb\xb1\xbf\x1d\xfb\xdb\xb1\xbf\xaf\x8e\xfd\xad\x6c\xd3\xd9\xf1\xc0\x3f\x20\x0f\x94\x2a\x15\xc5\x66\xca\x60\x02\x7d\x78\x9b\x76\x9c\x2c\xfd\x31\x17\xca\x58\x9e\xdc\xf6\xd8\x11\x3b\xae\x35\x5b\x11\xd1\x22\x7e\x6b\x16\xa6\x45\x21\x86\x94\xcf\x5f\x43\xb4\xa8\x7d\xf3\x59\x01\x53\x6c\xd7\x33\xff\x84\x70\x13\xcd\xe3\x3f\x9e\x98\x7f\x65\x5d\x3c\x03\xdd\x3c\xad\xce\xff\x1f\x82\xf7\xad\x38\xfb\x16\xec\xee\xe9\x35\x1e\x88\xa7\x35\x78\xed\xe6\x1a\xeb\x73\x5e\xf0\xb1\xb0\xa2\x00\x7a\x99\xa2\x31\x5e\x29\x0a\x25\x77\x17\xfd\x0a\x2e\xfa\x46\x48\x0c\x74\xcb\x65\x1a\xbe\x81\x58\x56\x84\xdb\xe1\x1f\x2b\x22\x39\x4f\x72\x3e\x5b\x52\xe4\xad\xa1\x2b\x20\xc9\xda\xd1\xe1\x1d\x1d\xde\xd1\xe1\xdf\x2b\x1d\xde\x40\xf4\xde\x11\xe3\x67\x45\x8c\x21\xc1\xe4\xec\xe2\x18\x3c\xa9\x0b\x08\x71\xbd\x61\x13\x0e\xa3\xe6\x88\x85\xf8\x1f\x6c\xcf\xce\x2e\x58\x9f\xbb\xd5\x35\xc2\x40\xde\x92\xc7\x2b\x69\x41\xee\xac\x1c\x0b\x5d\xda\x76\x20\x8c\xf5\xc6\x51\x95\x64\x72\x64\xc3\xaf\x61\x5c\x67\x17\x44\xf8\x68\x54\xc6\xca\xe4\x76\x02\x78\x7c\xbd\x28\x98\x6b\x4c\x14\xf3\xa6\x7c\xf9\xf2\x3b\xf1\x12\xfe\xf7\xdb\xd7\xf8\x5f\xfc\x31\xf9\xf7\x3f\xbd\xfe\xfe\xe5\xcb\x7d\xa7\x1c\xbe\x62\x29\x9f\x1c\x38\xd2\x46\x19\x94\x01\x24\xe8\xdf\xff\x9d\xdd\x84\x15\x74\x14\x92\xe8\x49\x15\x77\xf1\xea\xe5\x9f\xa8\x97\xef\xd8\x48\x97\x85\xd9\x12\xa8\xd6\xd4\x79\x5a\xf5\x7c\xe8\x71\xae\x95\x50\x51\x85\xd0\xf9\x67\x64\x76\x19\xdd\x50\x36\x95\x00\x3a\x7d\x8f\x2d\x4e\x80\x28\x0a\xbd\x4c\xf1\x0d\x03\x63\xd0\x9a\x41\x4d\x65\xc4\xd7\xac\x3e\x05\xb8\x69\x51\x06\xe0\x48\xf0\xcc\x8e\x58\x32\x12\xc9\x6d\xf4\xde\x1a\x51\x2a\x63\x61\x0c\x1f\x2e\x63\xca\x1f\xb0\xd5\xcc\x55\x59\x3c\xd6\xe9\xf2\xe4\xf5\xd1\xaf\x31\x64\xd3\x2c\xf3\x3b\x6b\xc4\x58\x0b\xd8\xc7\x4e\x2d\x18\x6d\xad\xba\xb7\x7b\x7a\xf3\xe2\xaf\x30\xbe\xc9\xcd\x0b\x27\x27\x5c\x03\xae\x9a\x13\x0f\xde\x22\x78\x5a\x87\x41\xa3\x4f\xa1\x8e\xfc\xea\x33\xb0\xcb\xc5\xa0\x6b\x02\x47\x6c\x37\xf2\x37\xf1\xa8\xb7\x4b\xaa\xe1\xfd\xe9\xd5\xdf\x98\x70\xfb\x79\x4c\x17\x6d\x9e\xba\x20\xb5\x96\x6c\x1f\x53\x19\x6a\x3f\xbe\x97\xc6\x1e\x00\xf0\xa8\x89\x83\xd8\xb0\x74\x3c\x1e\x3e\x77\x10\xe3\x9c\xd8\x37\x18\x69\x74\x74\x71\xe6\xe8\x57\x5a\xcb\x95\xbd\x7b\xd5\x7b\xf5\xe7\xff\xbd\x4b\x7c\x7d\xce\x89\xaf\xad\xab\x59\xbf\x27\x1c\xfd\x70\x73\xaa\x3b\x65\x02\xea\xf0\xb6\x50\xf5\xe7\x72\x9d\x96\x7e\x91\xda\xa3\x5a\x16\x61\xce\x6d\x32\xea\x8e\x45\x31\x14\xdd\x5b\x31\x01\x99\xa1\x7e\x35\x67\xbf\x61\x6c\xc1\xad\x18\xc2\x0b\xf0\xf6\x2e\x8f\x78\x97\x47\xfc\xec\xf2\x88\x97\xc9\x79\xe1\xf7\xc7\xca\xac\x6d\xf2\xa3\x5a\xa3\x8d\x33\x6c\xa7\xb9\xd5\x02\x86\x57\x89\x2e\x3c\xcb\xea\xe2\x8b\x89\x02\xb9\x3d\x35\xe3\x71\xb1\x90\x26\xb3\xf4\x55\x43\x76\x8c\xef\xab\x61\x7c\x6d\xca\xc8\xbc\x5f\x72\x1c\x1e\x89\xdd\x5d\x35\x4a\x3a\xed\x2a\xc8\xfc\x81\xf9\xd0\x73\xae\x20\x13\xaf\xd5\xca\x1a\xd1\x93\x17\x91\x69\xc5\xb1\xb6\x59\xcd\xd7\x5f\x6b\x35\x90\xc3\x0f\x3c\x5f\xa8\x9c\x51\x1b\x52\xbe\xea\x19\x0d\x00\x99\xe8\x38\x16\x00\x0a\xa1\x11\xd4\x94\xe3\x56\x85\x63\x76\x1c\xe6\x8b\x71\x98\xbe\x54\xbc\x98\x9c\xcc\x20\x07\xed\x12\x44\x2a\x5b\x5f\x7f\x62\xeb\x1a\xca\xfa\xe9\x23\x3f\x85\x41\xd5\x8b\xe9\xe0\x60\x19\x92\x8d\x53\x9e\x8c\x20\x90\x08\x2c\x9f\xee\xb4\x11\x23\x04\x20\x0c\x55\x8e\x45\x21\x13\x96\x8c\x78\xc1\x13\x2b\x0a\xd3\x61\x7b\xdd\xbd\x0e\xdb\xfb\x75\x8f\xe9\x82\xed\xf5\xf6\x7a\x2c\xfe\x0e\x57\xfe\x5b\xcc\xcd\x84\x61\x9a\x64\x12\x67\xa6\x38\x92\x4f\xfe\xb5\x4f\xd7\x6f\xbb\x7f\x62\x05\x57\x43\x32\xc2\xde\x8a\x09\x65\xb9\x80\x70\x15\xf5\x0c\xc3\x73\xaf\xea\x3b\x51\x64\x3c\xc7\x7c\x3d\xd7\x89\x76\x07\x98\x3a\x84\xa6\x90\x0a\xd5\xc1\xb3\x2b\x0d\x13\x0a\x1c\x33\x29\x4b\x4b\xcf\xfb\xbc\x85\x23\x2f\x74\x22\x8c\xe9\xb1\x4f\x26\x60\x65\x63\x22\x15\x38\x74\x88\x98\xb1\x57\xbd\x57\x2f\xff\x37\x73\xa4\x1a\x0e\x3b\x9c\x55\xef\x07\x5c\x3d\xbf\x75\x16\xd3\x78\xd4\x34\xa2\xe9\x13\x30\x4d\x73\xb6\x72\x10\x3e\xa3\x49\x10\x76\x46\x69\xd5\xc5\xed\x6d\x9c\x03\xe8\xde\xc3\xa9\x45\x1b\x0c\xeb\x3e\xf3\x14\x2c\xd9\x7f\x68\x4d\xfb\xdf\xec\x6f\xa5\x53\xb0\xfa\x56\xca\xf1\xb8\xb4\x00\xf6\xbd\x98\xe2\x9e\xf9\x76\x1d\x26\x07\x58\xa6\x42\x33\x5b\x38\xba\x27\xa0\x44\x0b\x5d\x0f\xa0\xfe\xd5\xc4\x21\x73\x2b\xb0\x8b\xa4\x29\x2d\x11\xaa\x2e\x49\x68\x5e\x12\x80\x3b\x08\xd5\x6d\x52\xf0\xb4\x1e\x84\x34\xd0\xda\x77\x21\xcc\x13\x8e\x7a\xa3\x3d\x73\xd7\x54\x79\xcf\x08\xb9\x2d\xd0\x59\xa6\x64\x8c\x95\xc3\xfa\xc2\x2f\x33\x82\xe3\xa0\x33\x39\xcc\xf5\x34\x1f\x89\xb1\x28\x78\x36\x13\x27\x67\x0d\x27\xe6\x4e\xd0\xfd\x5a\x04\xdd\x9d\xc1\xc5\xf7\xba\x9a\xf8\xea\xa5\xcb\xc7\x11\x5a\x4f\xd5\xdd\xd2\xe8\x9c\xe9\xc6\xcc\x88\xcc\x69\xc8\x8c\x47\xb4\xca\x6a\x96\xeb\xbc\xcc\x38\xe5\x35\x0b\x75\x27\x0b\xad\x20\x18\xe6\x8e\x17\xd2\xd1\x07\x64\x14\x50\x1b\xec\x1a\x79\x92\x05\xef\x32\x39\xa0\x08\xad\x2e\xf4\xb9\x67\x22\xee\xee\xf9\x33\xdd\x55\xcf\x07\xba\x78\xdd\x73\x2e\x0b\xc3\xb8\x99\xfd\xd9\x36\x85\x59\x56\xab\xc4\x40\xe1\xc4\x76\xe5\x8a\x39\x8e\x97\xdd\x49\x71\x7f\x78\xaf\x8b\x5b\xa9\x86\x5d\xb7\x22\x5d\x32\x39\x1c\x02\xc2\xf2\xe1\x37\xf0\x3f\xab\x5f\x5b\x9f\x07\xde\xb2\xa2\xd2\xfd\x48\x50\x0e\x40\xcc\x73\xbc\x3b\x1c\xf5\x84\xd6\x91\x27\xcb\xae\x4a\xeb\x23\xf9\xb3\x98\x5c\xc1\xf1\xaa\x39\x85\xa7\xe6\x10\x4e\xa0\x93\x5f\x80\x3c\x47\x87\xb1\xc5\x7e\xa3\x77\x60\x59\x5d\x03\xd7\xb9\xd5\x74\xde\xd7\x81\x37\xd8\x9d\x2a\x3c\x55\xba\x60\x8e\x45\x06\x61\x73\x0b\x07\x6c\xb6\xdd\xc1\xed\xeb\x32\xab\x43\xeb\xb3\xb8\xc4\x06\x5d\x6b\xe7\x71\x23\x48\xc0\x88\xe2\x9c\x62\xc3\x73\x58\x8f\x5d\x31\xf2\xdf\x81\x8e\xbf\x52\x31\x72\xcc\x96\x6b\x6c\xf4\xf6\xad\xc8\x5e\x20\xd8\xd9\x8f\x77\x62\x75\x4b\xfb\xf1\x33\x10\x9c\x9f\xb9\x91\x38\xa6\xf7\x8f\x23\x69\x9f\xeb\x54\xe0\x1f\xed\x05\xee\xe6\x3b\x8d\x02\xd9\x75\xb8\xa1\x2a\xc1\x2d\x96\xca\x39\xe6\xc1\x42\x38\x27\xdd\x51\xef\x1c\x3d\xaf\xc5\xc2\xcd\x17\x94\xd0\xea\x85\x5d\xfe\xbc\x54\x6a\xfa\xb9\xd1\x9c\xa5\x22\xc9\x78\xe1\x44\x7f\x40\x94\x72\x12\x40\x5d\xda\x49\x44\x1a\x9b\x3c\x74\x51\x08\x93\x43\x24\x27\xb1\x96\x5a\x97\xde\x82\x65\x6c\x51\xc2\x89\x6c\x60\x21\xf9\x83\xc6\x24\xe2\xb6\x25\xdc\xcc\xc5\xb1\xd9\x86\xe4\x46\x84\x3f\x68\xa9\x6a\x5a\x9c\xab\x4d\xb0\x89\xdd\xb4\xcd\xf1\xb6\xa9\xe3\x12\xea\xbd\xcc\x1c\x79\xad\xba\xcb\x53\x0e\xdf\x73\x90\x76\xa2\xce\x65\xbd\xf5\xd4\x54\x9a\xcf\x57\x98\xd0\x40\x17\x7d\x99\xa6\x02\x2a\xfd\xc2\x15\x71\x82\x6d\x27\x06\x86\x4e\xab\x47\xe0\x54\x5a\x63\xba\xa5\x5c\xc6\x7f\x3f\x9d\x9d\x4c\x4d\xeb\x53\x55\xdc\xf5\x0b\x4f\xa5\x25\x7d\xaf\x0e\x65\xf3\x66\x75\x16\x10\x98\xad\x89\xef\x17\x85\xfe\x2f\xcc\xff\x5f\x08\x13\xc5\xf3\x86\x29\x43\x2a\x48\x5c\xc8\xf1\xf5\x50\x6e\x71\x13\xbb\x45\x5f\x30\x92\x86\xe8\xae\x4c\xf5\xee\x48\x35\xa4\xec\xb0\xd2\x78\xe1\x2a\xb6\x73\x47\x3d\x52\x5e\x92\x6b\x8d\x35\x99\x3a\xac\x54\x99\x30\xc4\x17\x40\x20\x15\x19\xe6\x21\x41\x29\x50\x34\xcb\xa4\x68\x40\x0f\x18\x62\x63\x9e\xe7\x50\xd8\x44\x0f\xf0\x4b\x00\x5a\x67\x47\xa6\xc7\xce\xb5\x0d\x35\xc4\xd1\xf6\x8b\x59\x13\x09\xcf\x42\x42\xd5\x40\x0e\xc7\x3c\x0f\xe5\x30\x91\xb9\xb8\x2f\xf8\xe8\x67\x9f\x86\x3c\x6e\xc7\x68\x5a\x09\xdb\xb5\x8c\xa2\x0e\x13\xe4\xc1\x88\xac\x40\x33\xd6\x6b\x11\xbf\xa9\x76\xc7\x6f\x07\xec\x7e\x94\x1b\x02\x2c\x14\xd6\xfa\x7e\xa4\x0d\xc1\x4d\xd2\xd5\x74\xdc\xcc\x5d\x27\x3a\x11\xfe\x67\x18\x0d\x18\xe1\xa3\xb1\x7a\xfd\x40\xa4\xb8\xda\x0b\xbe\x1c\xde\xc2\xfd\xc0\x2b\x5b\xaa\xa9\xb7\x49\x14\xa6\x93\x05\x1f\x44\x83\x88\x34\x51\x1f\xc8\x78\xa5\x21\x60\x48\x34\x9f\x35\x7d\x0d\xb5\x82\xe1\x46\xd8\x92\x96\x06\xe3\xe6\xe9\x78\x49\xaa\x5d\x50\xdc\x8a\x34\xa0\x0e\xf6\xd8\x85\x1b\x64\xd0\xeb\x0b\x91\x71\xc0\x43\xf4\xba\x9f\xfb\xac\xf7\x10\xba\x8f\xec\xf5\x7a\x7b\x08\x68\xa0\x0b\x66\x2c\x2f\x08\x89\xd3\xfd\xbe\x65\x75\xe9\x67\x31\xb9\xd6\x71\x09\x53\xb6\x8e\xba\xb4\xb3\xe2\x4c\x59\x71\xcc\x17\xb7\x13\xb6\x2d\x85\x36\x97\xbc\x3f\x06\x51\x7f\x86\xa4\xbc\x9a\xf7\xe3\xe6\xad\x12\xb5\x6f\x51\x3d\xb7\x4a\x13\x1c\x43\x45\x2e\x77\xa4\x7c\x72\x9e\x11\x96\xe5\xa2\x18\x4b\x48\xd9\x32\x4c\x2b\x96\x00\x48\x73\x4a\x2b\xda\x0f\xd5\x03\xa3\x5c\x57\xc5\x74\x62\xbd\xd1\x89\xf5\x85\xbd\x17\x42\xb1\x97\x2f\x5f\xbe\x84\xf9\xbc\xfc\xf1\xc7\x1f\x19\x24\x86\xa4\x22\x91\xe3\xe9\x86\xd0\xea\x87\x57\xaf\x7a\xec\x6f\x47\x1f\xde\x33\x9e\xc0\x7d\x64\x7d\xed\x68\x14\xf4\xec\x1a\xd4\x5e\x36\x1d\xf6\x1f\x57\x1f\xcf\xab\x62\x21\xf5\xa7\xa0\x65\x85\xe9\xd5\x61\x4a\x5f\xbe\xfe\xfe\xfb\x1e\x3b\x91\x05\x18\xb9\x25\x79\x45\xe8\x6c\x00\x5d\xf4\x31\x13\x7c\x30\x40\xce\x00\x19\xbb\x8e\xa8\x63\x72\x29\x49\x7a\x63\x39\x1c\x59\xca\x5d\x76\x0c\x39\x93\x09\x91\x52\x2c\xea\x8d\x77\xde\xc7\x61\x40\x5f\xd5\x69\x1b\x43\x41\xf0\x4c\xde\x0a\x36\x30\xef\x9c\x82\x8c\x6c\x06\x29\x18\xc0\x85\x92\x9b\x18\x3b\xab\xf6\xca\x4c\xc5\x40\xac\x99\xb7\xb6\xaa\xa5\x6d\xc7\xfc\x77\xcc\x7f\xc7\xfc\xff\xd8\xcc\x1f\x61\x1c\x16\x31\x7c\x5f\xc0\x9a\xe7\x79\xe6\xd1\x9d\x02\xfe\xc3\x74\x0d\xb4\xa2\x54\x9e\xfe\xf2\x96\x55\x4e\x79\x31\x5c\x46\xab\x8e\x8a\x21\x60\x2b\x07\x23\x96\x50\xb6\x98\x80\x8d\x1b\x03\x9e\x52\x9d\xdc\x8a\x82\xc9\x31\x1f\x8a\x3d\xc3\x8e\x3f\x80\xba\x0f\x6c\x50\x0e\x82\xd6\x15\x43\xb9\xf7\xd8\x67\xf2\x67\xc7\xd8\xdb\xff\xb6\xff\xf9\xe8\xf2\xd7\xf3\xa3\x0f\xa7\x07\xc0\x36\x04\x94\xaa\x12\x69\x24\x7a\x84\xc9\xef\xd5\xdc\xe3\x44\x31\xbc\x93\x3c\x0a\x36\x2a\x84\xd1\xd9\x9d\x27\x5b\x95\x61\x91\xae\xb0\x54\x79\x69\xbd\x5b\xc0\x13\xb2\x52\x25\x23\xae\x86\x82\xe2\xb9\xe2\x61\x99\x89\xb2\xfc\xc1\x73\x13\x61\x12\x9e\x7b\x01\x86\xb3\x54\x97\xee\xe3\xff\xf6\x6f\x1d\x26\xc5\x1b\xf6\x6f\xd1\x8b\x3d\x76\x4a\x6d\xa3\xf9\x22\xe9\x13\x77\xa2\x80\xce\x68\xb6\x1d\x56\x88\x21\x2f\x52\x20\x54\x7a\x50\x3b\xc1\x61\x82\x80\x0f\x62\xdc\x39\x56\xda\xce\x74\x25\xb4\xbb\xb2\x96\x9b\x5b\x73\x28\x95\x3b\xb2\xdd\x94\x5b\xde\x8d\x8e\x1a\x12\x25\xd1\x4d\xf4\x78\xcc\x55\xda\xe5\x74\x10\xba\x61\x17\x0e\xbf\x21\xc0\xe9\x2e\x0f\xad\xa4\xea\xf2\xae\x19\x89\x2c\x7b\x6a\x38\x41\x1a\xc1\x92\xe3\x7c\x1a\x4e\x2f\x83\xbe\xc0\x42\xc0\xc4\x83\x48\x4a\x2f\x8c\xc2\xfd\x81\x29\xcc\x3c\xe0\xa7\xe7\xd7\x97\x7f\xbb\xf8\x78\x76\x7e\xbd\x3b\xe7\xbb\x73\xfe\xf4\xe7\x5c\xa8\xbb\x96\xe9\x40\xb3\x03\x97\x48\x37\xf1\xf5\x3f\x2a\x3c\xa1\xe9\xe5\xdd\xae\x14\x73\xaa\xee\x3e\xf3\xe2\x51\x52\x63\xd5\x54\xa5\xe8\xf5\x53\x63\x85\xba\x7b\x5b\xe8\x71\xcb\x35\x26\x8f\x7c\x2d\x68\x6c\xf6\xba\x4f\x2f\x78\x08\x17\x26\xe1\x23\xa2\x3e\x68\x83\x1c\x07\x08\xa4\xe3\x5f\xcf\x4e\x4e\xcf\xaf\xcf\xde\x9e\x9d\x5e\xf6\xd8\x51\x96\x31\xa9\x20\x0a\xb8\x2e\x84\x17\x82\x80\x91\x38\xd4\x83\x14\x77\x6e\x08\xf7\x23\xd1\xf8\x34\x08\xd6\x4e\x62\x05\x0d\xec\x17\xf7\x1c\x05\x6e\xba\x70\x52\xb1\x71\x99\x59\x99\x67\xde\x1c\x6a\x3a\x95\x46\x10\xd7\x59\x09\x81\xcc\x19\x37\xb6\x32\x9d\x66\x19\xb3\xfc\x16\x44\xfa\x44\xa4\x8e\x0e\x84\x00\x6b\x3f\x57\xac\xac\x73\xaa\xee\x02\x5d\x29\xf1\x4a\xa2\x3a\x32\xbb\x8f\x27\x38\xa2\x6e\xef\xc9\x16\xb3\xc9\x2d\x05\x6e\xb1\xac\xf8\x4f\xc4\x58\x40\x1f\x5b\x59\xd4\xae\x0a\x3d\x1c\x42\x2f\x66\x4e\x3d\x15\x30\x75\x67\x99\xbe\x67\x23\x39\x74\x64\x36\x13\x77\x22\xf3\xee\xd4\xc8\x68\x62\x75\x30\x76\xeb\x02\xc2\xd5\x0b\x99\xd6\x4e\x0e\x7e\x46\x2a\xe6\xa4\xfb\x4c\x73\xd4\x1a\xb1\x70\x98\x41\x2d\xfc\x44\xe4\x99\x9e\x8c\xa9\x56\x7f\xca\xae\x2c\xb7\x62\x50\x66\x57\x62\x6e\x4d\xfb\x85\xb1\x2b\xee\x93\x17\x65\x96\x5d\xe8\x4c\x26\xcb\xdc\xb6\x67\xb0\x9a\x79\x99\x65\x2c\x87\xf6\x3d\xf6\x51\x81\x52\x73\x94\xdd\xf3\x89\xe9\xb0\x73\xc7\x8b\x3a\xec\x6c\x70\xae\xed\x85\xd7\x39\x63\xb3\x06\x36\x74\x5c\xfd\x0d\x05\x03\x59\x3e\xac\x29\xa3\x00\x0a\x12\x77\x80\xa6\x85\x7b\x69\x66\x1e\xd2\x8d\xb7\xf5\x1b\xe8\xc9\x71\x20\xfc\x7b\xf5\x45\xcc\xe4\x40\x24\x93\x64\x3a\xda\xbf\x3d\x88\x56\xe8\x61\x51\x84\xc6\x51\x12\x59\x6a\xc0\xe7\x57\x1d\x2e\xc2\x70\xa3\x48\x2c\xb8\xdc\x52\x31\x74\x92\x1b\x41\x09\x63\x74\xce\xc2\x78\x91\x88\x99\x99\x77\x7f\xce\x4c\xef\x84\x12\xc6\x5c\x14\xba\xbf\xfe\x6c\xf1\xed\x45\x33\xbd\x10\x85\xd4\x29\x56\xb0\xe9\x7b\xf0\x96\x30\x7a\x1c\x03\x18\x2d\xe9\xb7\x8a\x46\x03\xe9\xf5\x62\xa3\xa0\xf7\x07\x5c\x66\x33\x67\xb9\xea\xe1\xf1\xf7\xd2\x1c\xe6\x1a\xff\xd3\x0d\x8b\xf9\x4d\x18\x62\x17\xbe\x6a\xb6\x62\x29\xa8\xe6\x5d\x59\x6b\xc0\xdc\x74\x72\x7e\xf5\xeb\xfb\xa3\x9f\x4e\xdf\x53\x86\x4e\x44\x46\x48\x47\x45\x16\x37\xe2\x77\x8e\xc9\x51\xf5\x3b\xb0\x4c\xed\x87\x77\x0f\x96\x93\xfd\x36\x17\xc0\x31\xc6\xb6\x79\xd4\xd0\xd6\x9d\x47\xf1\x90\x6b\x23\xaa\xe8\xae\x88\x79\x9f\xba\x47\x18\x14\x09\x36\x68\x80\xd2\x1b\xca\x3b\x8f\xe1\x85\x67\xbd\xca\x8d\x9a\x01\x8d\xe4\xda\x29\x61\xdd\x86\x79\xbc\x38\xb8\x3b\x11\xca\xa3\xd3\x2f\x4c\x87\xf5\x4b\x34\x9a\x17\x72\xcc\x0b\x89\x40\x85\xbe\x33\x9e\xa1\x0e\x83\x6b\x3f\x69\x0e\xe9\xe4\xe3\xe9\x15\x3b\xff\x78\xed\xf8\xe8\x9d\xf0\xb0\xf8\xf0\x1c\xa6\xd5\x17\xee\x0d\x9c\x68\xda\x63\x47\x6a\x82\x0f\x83\xb9\x0d\xcc\x75\x10\xfe\xa9\x55\xcd\x1b\x7a\xf3\xe2\x65\x0f\xfe\xef\xe6\x85\x9b\x67\x01\xa6\x35\x65\x1c\xbf\x88\x67\xe0\xcf\x3d\x4f\x12\x61\x8c\x74\x72\x7d\x58\x4f\x9a\xfd\xe3\x33\xf6\x70\x0d\x2f\x74\x61\x37\x17\x41\xdd\x9a\x74\xc7\x3c\x77\xf2\xa7\xa9\x45\x0a\x30\x46\x25\xaa\xab\xaf\x35\x12\x22\xf3\x42\x5b\x9d\xe8\x2c\x1e\xc5\x3f\x96\x7c\xca\x8f\x6b\xdc\xcc\x9f\x58\x26\x18\xcf\x1f\xc9\x06\x12\x72\x21\x78\x2a\xbf\x34\x89\x35\x08\x5a\xc7\xc2\x60\x66\xd3\x5a\x2c\x0a\x05\x07\xce\xbf\xe1\x43\x34\xcd\xf3\x25\xc0\x55\xa4\xef\xba\x8b\xeb\x03\x87\xa8\xa2\x04\x08\x63\x0b\xd7\xfa\x58\x8f\xf3\xd2\x0a\xe6\x5f\x8c\x22\xa2\xbc\xcf\x66\xa1\xae\xb8\x86\x8c\x53\x05\xc1\x1d\xa2\x94\xe0\xb4\x6b\x37\x88\x6e\x98\x7f\xa4\x84\xcf\x05\x07\x2d\x0b\x69\x27\x6e\xef\xc5\x83\xdd\x04\xaa\xb9\xd6\xcf\xc2\xd4\x2e\x6a\x1b\xb9\xa5\x04\x30\x33\x92\x6c\xbc\x21\x76\xe5\x35\x41\x81\xf5\xd0\xcf\x09\x26\x2f\x1e\xec\xe1\x4a\x66\x0e\xbf\xb0\xa2\xeb\x4e\x5e\xb5\x7e\x53\xbd\xce\x85\xdb\x2b\x6c\x99\x3f\xf6\xd5\xbe\x8a\x3e\xc3\xa4\x4a\x41\xf3\x8b\xc4\xc6\x0b\x9d\xb2\x11\x37\xcc\x94\xc0\x36\x06\x65\x06\x5c\x4f\x5a\xc9\x33\xf9\x1b\x55\x7d\x8c\xe4\x71\xa5\xc9\xbb\x87\xd7\x8a\x2c\x6b\x64\xd5\x2b\x95\x95\x99\x3f\xc3\x58\xb1\xb2\xde\x33\xd5\x90\x04\x16\x1b\x68\x41\x27\x0c\x64\x4a\x74\xeb\xb0\xff\x02\xc4\xe5\x40\x42\x6a\x42\x27\xbc\x8e\x76\x35\xf7\x45\xb4\xa2\x79\xbf\x30\x19\x07\x59\x2a\x07\xe8\x5f\xa1\x4f\x46\x18\xb2\xb4\x04\x7d\x31\x94\x58\xcf\x0f\x90\x28\x2f\x74\xba\x67\x2a\xb9\xb8\x83\x7a\xbd\xb4\xe4\x3c\x05\x71\x9a\xb3\x4c\xab\x21\xa4\xbf\xba\x6f\x81\x7a\x06\x79\xb5\xba\x60\xf7\xbc\x18\x3b\xc6\xcc\x93\x11\xa4\xd0\x72\xe5\xd3\x89\x8d\x15\x3c\x9d\x74\x8d\x53\xd3\x3c\x8c\xb2\x56\xd5\xf0\x9b\x37\xbd\x99\x45\x4b\xa9\xb1\x51\x1e\xad\x1b\x7e\x6d\x87\x7d\x9b\x41\xc6\x87\x5f\x82\xa0\x1a\x9b\xca\x65\xb1\x98\xbf\x04\x13\x64\x4c\xeb\xfc\xa5\x76\xea\x33\x58\x27\x38\xeb\x97\x6e\xeb\xb0\xce\xa4\xeb\x77\xca\xb4\xe3\x28\x00\xa6\x20\x9f\xd5\x2d\xc3\x46\xd8\x0e\x70\x2c\xca\x18\x98\xf3\x3a\x9c\x37\x8e\x5a\x28\x79\xb0\xa5\x62\xa7\x1f\xdf\x56\x50\xac\x4e\xcb\xe7\x99\x59\x2b\x17\x19\xbe\xfa\x51\x2d\x8d\xb0\xfd\x25\xb2\xc9\x4e\xcd\x2d\x24\xd4\x64\x9a\xf2\xe1\x71\x32\xc9\x88\x2b\x25\x32\xc6\x07\xd6\xc9\xf9\x16\x6e\x71\x5f\x08\xe5\x4e\x96\x37\xfc\x04\xcf\x96\xb5\x3c\x19\x91\x09\x8a\x16\xc3\x40\x92\x77\xd4\xa3\xb1\x85\xe0\x63\x9f\x35\x39\xe6\x12\xbb\x62\x3c\x29\xb4\x31\x95\xa5\x0a\x3b\xf3\x20\xb9\x06\x29\x84\x9f\x2a\xc3\x98\x83\x2a\x87\x3c\x7c\x8d\x86\x55\xf3\xad\xc1\x35\xef\x84\x8a\x29\x81\x80\x08\x36\x90\x85\xb1\x3e\xb1\x03\xbf\x48\x36\x55\xd7\x5f\x08\x3c\x50\x34\x52\x43\x43\x55\x69\x88\xc5\x80\xfb\x58\x75\x48\x5d\xa5\xd2\x90\x0a\x60\x3a\x8e\x00\xa0\xf8\x8d\x0b\xed\x47\x0a\x4b\x9d\xfa\x4a\xa0\xd0\x3b\xfd\x14\x75\x17\xdb\xf8\x02\xbd\xaa\x0e\xa2\xbb\x80\xe1\xf0\x74\x6a\x82\x3a\x41\x09\x78\x2a\x3c\x75\x4c\x23\x43\x7e\x21\x12\x81\xbe\xf1\xd9\xa7\x72\x8d\x43\x89\x95\x99\x81\xf2\x10\xfc\xec\xc5\x2a\xf5\xa1\x2e\x20\xda\x24\xac\x9b\x8f\x0d\xb1\x3a\xfa\x25\x76\xab\x44\x9f\x63\x04\x8a\x1b\xc8\xfc\x7d\x21\xad\x15\xb0\xe4\xbe\xd4\x54\x88\x69\x88\xfb\xa8\x70\xe9\x7b\xcc\x43\xe6\x46\xef\x4a\x65\x05\x38\x76\x10\x4c\xbe\x5f\x48\x31\x60\x03\xe9\x74\x41\x44\x55\xed\x38\x1e\x34\x22\x5b\x2d\x37\x46\x14\x30\x1c\xc7\x3d\x1c\xad\xa4\x61\xf5\xd8\x2f\x34\x2e\x5b\x94\x0a\xb1\xdb\x88\xc4\x2a\x9d\x0a\xc7\x81\x86\x10\x58\x44\x35\xb0\xbe\x7f\xf9\xe7\xd7\x80\x5b\x61\xd0\xc2\x6c\xb5\xe5\x59\x98\x63\x26\xd4\xd0\xad\x14\xde\x1d\x08\x74\x0f\xc6\xa6\xb0\x00\x99\x1c\x4b\x82\x4d\x78\xf5\xed\x6d\xbf\x6e\x1d\x3b\x4c\xc5\xdd\x61\xb4\x7c\xdd\x4c\x0f\xb7\xa3\xa2\xcf\x38\x02\xad\x2c\x7e\x24\x3d\xb0\x91\xbe\xc7\x80\xb7\x19\x7b\x4b\xd4\xca\x31\x5a\x1f\x79\xd6\x83\x92\x71\x38\x69\x8f\xe9\x51\x8b\x9d\x9b\x79\x22\xa7\xd2\xc3\x6b\x54\xc3\x96\x26\x7c\x52\x2b\x8c\xbb\x22\x41\x03\xee\x2d\xed\x6d\x8f\xbd\xe5\x59\xd6\xe7\xc9\xed\xb5\x7e\xaf\x87\xe6\xa3\x3a\x85\x00\x95\xda\x58\xc0\xa4\x9e\x8c\x4a\x75\xdb\x30\x2e\xe9\x21\xd3\xa5\xcd\x4b\xeb\xa5\x8f\x59\x13\x1e\x50\xcd\x2d\x24\x60\x3e\x1e\xaa\xea\x45\x3c\xc8\x60\xc0\xe7\x84\x46\x8d\x07\x26\xee\xdf\xc4\x67\xe1\xdb\x97\xdf\x23\x22\x0a\xb8\xe4\xfe\xf4\x92\x65\x4e\xf1\xea\xe0\x0d\x13\x54\xc7\xde\x8c\x79\x96\x39\x15\x21\x3e\x33\x6e\xa1\xb7\x74\x46\xec\xb2\xe3\xd0\x9a\x8d\x5f\x5f\xff\x0d\x78\xb8\xb4\x46\x64\x83\x0e\xd6\xcf\x08\x51\x70\x7b\x40\xf4\xf6\xe8\xf2\x3a\x9e\xb1\x1d\xe6\x8b\xb1\x49\x27\xc2\xa9\xa2\xcb\xec\x51\xb5\xb6\xcd\xcc\xcc\x7e\xa6\x93\x5b\x96\xd2\x43\x1c\x26\x08\x99\x44\x1c\x2a\x6d\x6d\xbb\xa6\x94\xcf\xd1\xa0\x1e\xc5\x99\x87\x53\x02\xea\xbf\x25\x83\xc5\x5d\x54\xbe\x62\xc9\x92\x3b\x71\xdf\x87\x97\xfa\x5a\x24\xcb\xa9\xff\x63\x9b\xaf\xa2\xfa\x1b\x8f\xb2\xe4\x30\xcd\x6d\xae\x38\x85\x7e\x9d\xc8\x16\x78\xf8\x61\x45\xe9\x25\x96\x52\x40\xe9\xa4\x42\xff\xa9\xc7\x1f\x4e\x09\xa3\x7b\x26\x58\x25\x43\x78\x83\x71\xad\x91\xf9\x87\xf0\xd2\xa0\x1b\xa7\xd3\x42\x37\x78\x56\x36\x20\x52\x53\x21\x61\xf3\x33\x89\xb6\x91\x18\x84\xa3\x3e\x6b\xb8\x19\xa7\x5c\x8c\xf0\x67\xbf\x6e\x91\x45\xdf\xe4\xd2\xe0\x30\x0c\xd1\x6b\x91\x84\xe7\x28\x8e\x97\xb2\x9c\xdc\x03\x1e\x38\x69\x18\x20\xe6\xf7\x98\xe8\x0d\x7b\xec\xef\x37\x2f\xdc\x24\x86\x49\xe1\xf4\xbb\xd1\x24\x17\x85\x3b\x5b\x6f\xee\x5e\xf5\x5e\xf6\x7e\x44\xc4\x7d\x0c\xb4\x19\x95\x7d\xd7\x64\xa8\xf5\x30\x13\xbf\x46\xae\xb0\xe9\x97\xfe\xf1\xd4\xb1\x17\x46\xfe\x26\x7e\x72\x0c\xb0\x05\xe2\x86\x6b\xeb\x3d\x24\xb4\x24\x8a\xe4\xb2\x05\x31\xc7\xaf\xbf\x5f\xbb\x56\xc6\x82\xcc\xb5\xed\x1d\x38\xb0\x23\x2f\xcc\xf8\xad\xda\xc5\x65\x57\x78\xf0\x74\x80\x77\x01\xa3\x1c\x50\x09\x9c\xc1\xa8\xe6\x9e\xc9\x64\xce\x38\x66\x9e\xcd\x72\xdc\x17\x85\xf7\xe7\x44\xee\x1c\xf2\x63\xe4\x60\x50\x39\xbb\xf0\xce\x0b\x1f\x8b\x1e\x82\x2e\x30\xc0\x02\x5e\x56\xd0\x57\x87\xbd\xa4\x3a\x2a\xec\xc1\xff\xe3\xf5\x0f\x3f\x7c\xf7\x7a\xeb\x51\xe4\x23\x6d\xec\xd9\xc5\x52\x49\x87\x5b\xac\x7d\x75\x76\x01\x02\x80\x24\x29\x4f\x3c\x10\x76\x05\x4d\x7c\x0d\x39\xcb\x75\xbb\x85\x35\x76\xdd\x4c\x47\x90\xaf\xbb\xca\xae\xa3\xbf\x6a\x63\xcf\xe9\x28\xd5\x5d\xf2\x55\xbf\x63\xc7\xaa\x58\xed\x2c\xf6\xd8\x07\x6d\x6c\xac\xec\x50\xb9\x67\x25\x9c\x70\x3b\x92\x0b\x6f\xe5\x5a\x7b\xd8\xc2\x8b\xba\x68\x61\x14\x3b\x3b\x3a\x3f\xfa\xf5\xea\xf3\x31\x04\xd7\x51\xf0\x3c\x78\x48\xe3\x2c\x0b\x9d\x92\x73\xd5\x7d\x2e\x8d\x6e\xd7\x02\xef\x6a\x8f\x81\xfb\xd6\xe7\xcf\xe3\xd6\xb9\xc3\x44\xb6\x4a\x88\xde\xf3\x65\xd0\x26\xde\x71\xb2\x4e\xec\x46\x70\x76\x2d\x91\xba\xa8\x19\xa1\xc7\x16\x51\x4a\xcc\xa7\x93\x8b\x0e\xbb\x3e\xbe\x80\x90\x8b\xab\xe3\xeb\x8b\xba\x66\x71\xf3\xe2\xfa\xf8\xa2\x7d\x55\x96\x96\x44\x33\x99\xe5\x2e\xdc\x9c\x78\x42\x20\x4c\x1b\xea\x09\x0d\x09\x63\xd7\xed\x24\xf9\x4d\xc9\x42\x3b\x88\x3d\x31\x50\xaa\x4d\x63\x84\x8b\xb4\x4e\xfb\x74\x77\x08\x01\x4a\xfa\x51\x0e\x06\xc9\x52\xca\xf3\xa4\xf1\xd4\xed\xa9\x3c\xbb\xae\x95\x34\xac\x3e\x9c\x5f\xb8\xb4\xed\x12\xa8\x28\x5a\x72\x6d\xef\x41\xfd\xbb\x97\xd4\xdb\x22\x6f\xc2\x89\xb0\x5c\x66\x26\x94\x1c\xa2\x11\x54\xeb\xb4\xd8\xe0\x20\xa6\xa2\x86\xd7\x1c\xeb\x75\xd5\xe1\x2a\xc3\xad\xc6\xb1\x6c\xc4\xf7\xb8\x09\x5b\x1a\x2e\x6d\xe9\x4a\x63\xa5\x11\xcc\x1c\xe8\xd4\xed\xda\xe8\xa2\x5c\x4e\x1d\xa3\xc5\xf7\x85\xda\x13\x7c\x15\xfd\x11\xae\x0c\x5f\x49\xce\x20\xbb\xe9\xd1\xca\x0e\xc5\x05\x08\x37\xd7\xb2\x19\xa4\xda\x94\x1a\xe5\x58\xd4\x6d\x98\x91\x4b\x80\x1b\x34\x08\xed\x17\xa2\x7b\x40\xc3\x7b\xb4\xa5\xbf\x9e\x75\x31\x16\xaf\x7e\xf5\x0a\x6e\x40\x74\xa6\xd7\xdc\x83\xd0\x76\x69\x69\xc4\x58\x89\x3c\x3b\xf1\xaa\x1d\x72\x70\xb6\x87\x6a\xc5\x9b\xc3\x43\x94\x25\x42\xb7\xbf\xca\x14\x2b\xe5\xed\xad\xce\xd7\xc4\x83\xb4\xc7\xcb\x13\x44\x4f\x1f\xa4\xf5\x66\xc1\x10\xf4\x02\xdb\x18\x9b\xec\x9a\x61\x54\xdb\x16\x44\xdc\x39\x35\xa3\xe7\x74\x9a\x6b\x4b\x50\x3b\xc7\xd1\xb0\x57\xab\x55\x87\xe9\x04\x3e\x83\x62\xc5\x35\x6e\x59\x85\xd5\x2c\xc5\x73\xd9\x07\x2b\xff\x01\xc3\xc6\x6b\xef\x79\xab\xba\x78\x72\xd8\x22\x11\x0e\x1a\x7d\xc1\xb3\xf7\x0c\x08\x69\x5e\x88\x3b\xa9\x4b\x43\xf1\x00\xb3\x66\xcd\x5a\x10\xd4\xd9\x92\x62\x20\x04\xdb\x15\x12\x7f\x99\xe2\xf3\x8b\xa9\x2f\xb5\x47\xd2\xeb\x59\xf4\x9a\x74\x77\xdd\x7b\x77\x3f\x9a\x4c\xbb\x20\x9d\x8a\x35\x11\xd6\xf3\xe3\xb5\x00\x95\x56\xbf\x77\xdb\x1a\xc6\x56\xb9\xea\x92\xb2\x87\xb5\x96\x15\x40\x5a\x4a\xf2\x57\xa8\x04\x55\x16\x10\x35\x62\xa2\x8a\x97\xb5\xd8\xac\xe7\xc4\x58\xd7\x8d\xf6\x6f\x61\x5e\x43\x93\xda\xb4\xcb\x9b\x36\x78\xe3\x90\xfb\x35\x47\xbe\x74\x49\xcf\xb0\xd5\x14\x09\xda\x23\xc3\xe9\x1a\x4b\xe6\x88\x7a\x53\xb5\x64\x1b\xa8\x05\x2b\xe8\x03\xcd\x29\x4c\xf1\x97\x50\xcb\x6c\x4e\xb4\x7e\x0b\x23\x49\xc3\x2a\xb7\x7e\x50\xf9\x76\x3c\x90\x85\xe0\xe9\x32\x1f\xe4\x55\xa8\xe7\x7c\x3f\x33\x86\x66\xc4\x0d\xcb\xb9\x81\xdc\x51\x00\x06\xa5\x18\x56\x8c\x05\x5b\xc7\xad\x48\xa1\x1e\xc7\xe0\x22\x5a\x7e\x7b\x54\xb0\xdb\x59\x39\x16\x66\xc6\xf0\x20\x64\x27\x0a\x78\x23\xba\x93\x4d\xa8\x42\x36\x51\xd9\xaa\xa3\x54\xf0\x34\xb6\xaf\x81\x41\x09\x36\xc1\x13\x5f\xea\x12\x42\x72\x67\x21\x73\x25\x3c\x4b\x08\x14\x06\x04\x96\x46\x8f\x3d\xf6\x13\x9c\x38\x6d\x44\xfc\x1d\x5e\x08\x66\x4a\x44\x6a\xb5\x9a\x0d\x79\xd1\x77\x94\x21\xd1\x59\x86\x01\xf5\x64\xd7\xc5\xdc\x35\x70\x0f\x0d\x85\x65\x09\xcf\x73\x2c\x18\xf1\x03\xeb\x4f\xd8\xbb\xe3\xad\xdb\xff\xbc\x4c\xb1\xd5\xa3\x42\xe1\x99\x74\x50\xd8\x59\x15\x11\x09\x58\x3d\x18\xd5\xd3\x17\x89\x86\x5d\x2d\x4a\x41\x81\x58\xa6\x16\x6f\x69\xb0\x46\x4a\x2a\x0a\xa7\x9e\x85\x40\xc8\x1e\xbb\x14\x46\xa0\x61\x0d\xba\x9a\x93\x3b\x18\x1d\x0b\x5d\x30\x39\xf0\x05\x65\x58\xa6\x8d\x30\x24\x77\x58\x31\xce\x75\x01\xe9\x0a\x3d\x76\x66\x7c\x3c\x1b\x8c\x09\xba\x55\x7a\x6a\x54\x94\x1c\xb8\x5e\x50\xdb\xb3\x20\x80\x9e\x3d\xcf\xa4\x7b\x2d\x65\xca\x26\xae\x20\x52\x9c\x79\x97\x7d\x8a\x77\xce\x60\x49\x9b\x0a\xa7\x27\x5c\x8c\xb5\x3a\xa5\xc0\xf9\x45\xfe\xc6\x5a\xc3\x4a\x8a\x99\x55\x17\x9c\xdc\x3f\xf8\x4a\x88\xca\x6f\x21\xbf\xb4\xf0\x4b\x5c\x54\xee\x04\xcf\x69\x87\xf2\x4e\xcc\xfa\xcc\x26\xb7\xbd\xe5\x86\x6e\xc5\x8a\x7c\xa2\xef\xd5\x3d\x2f\xd2\xa3\x8b\xb3\x56\x70\x90\x97\x95\xf3\x2d\xa5\x57\xb1\x0a\xa8\x1a\x68\xb4\xb3\x53\x2f\x4e\x6d\x98\x83\x13\xb9\x1c\x3e\x31\xad\x46\xf5\xc4\x00\x8a\x1e\xad\xbc\x02\xa5\x8f\x56\x08\x03\x26\x20\x46\x63\xbb\x91\x18\x53\xdf\x78\xeb\x3e\x11\x75\xd6\xce\xa7\xbc\xa9\x62\x31\x7b\x18\x0b\xee\xe5\xac\xf6\xb1\x7f\xb6\x81\xc1\x8c\x50\x65\x55\x1c\x65\x54\x04\xc0\x27\x3b\x40\x92\xf1\xf2\xbd\x84\x66\x97\xb0\xba\xeb\x91\x66\xac\xb7\xf3\xd6\x75\x13\xca\x69\x2c\xa2\xcf\x94\xf1\x92\xbe\x61\x55\x69\x8d\x1a\x80\x56\xae\xd3\x37\x0c\xaa\x4f\x81\x34\x08\x73\x36\x1d\x06\x08\x71\xa6\x83\xe9\x87\x5c\xa5\xac\x82\x11\x46\x11\x23\xc7\xdc\xfa\x39\x82\xec\x78\xeb\x70\x71\x54\xd1\x2d\x13\x9d\xd8\x29\xf8\xdc\xf1\xe1\x66\x47\xec\x10\x69\x88\xa0\xf5\x6a\x81\x3a\x5f\x1f\x0c\x5c\xbe\x3c\x78\xb9\x3a\xa8\x10\x57\x2a\x0d\xa3\xb1\x12\xf0\x18\x60\x8b\xc5\x28\xdc\x3e\xa2\xb9\x2f\x3c\x94\x20\xb9\x49\x49\xa7\xe1\x7d\xa3\xb3\xd2\x0a\x77\x02\x66\x22\x95\x55\x5e\xd5\xd2\x0e\xba\x7f\x62\x42\x25\x3a\xf5\x00\x30\x18\xd9\xee\xe8\x63\x85\x00\x16\x8f\x24\x14\xb1\x6b\x60\x9d\xad\x0f\x91\xfd\x76\x53\xd2\x70\x19\x77\xd4\x8a\x38\x54\x24\x21\x54\x7a\x68\x2a\xe2\x44\x1b\x42\x0a\x1a\x46\xc0\x9a\x00\x36\x0d\x15\x1c\xf6\xf1\xc7\x5e\x92\x97\x1d\x6a\xd0\x1b\x8b\xb1\x2e\x26\x9d\xd0\xc8\x3d\xac\xbd\x45\x2d\x10\xf6\xa7\xd2\xa7\x66\x52\x96\x96\x92\x45\x1e\x81\xc2\x6d\x43\xb2\x68\x89\x45\x3a\xe7\x8d\x7a\xc0\x0f\xdd\xf9\x88\x75\x4c\xc9\x21\xbd\xc0\xb3\x59\x25\x40\x3c\x4f\x5c\x4f\xab\x21\x30\xbb\x1d\x8c\x27\xdb\x21\x83\xee\x90\x41\x9b\x64\x6f\x4d\xa9\x36\x9d\xbe\x21\x5f\xaf\x5c\x7b\x3a\xce\xed\xe4\x44\x16\x2d\xe9\x50\xa4\xe3\x70\x45\xa9\x0e\x21\x7a\x18\xce\x27\xa7\x08\xa9\xc6\xa3\xc7\xa5\x34\x63\x91\xca\x72\x19\x82\x14\x44\xef\xb9\xe5\x01\x18\x29\xab\x0b\x3e\x14\x0c\xdf\x0c\xd9\x2a\x3c\xb9\xc5\x4b\x11\x85\x44\x5f\x47\xfa\x94\x34\xec\xe6\xc5\xcd\x0b\x1f\xe6\x2c\xb8\x0a\x84\xca\xe7\x07\x45\xa1\xd1\xd8\x79\x8d\xa6\xe0\x92\x11\x32\xdc\x3e\x35\x3c\x70\x84\xe4\x03\xf0\xaa\x95\xed\xe8\x34\x91\x43\x5a\xe0\x6f\xe0\x03\xa9\x5c\xcb\xbf\xf9\x9b\x78\xef\x38\xeb\xc6\x9e\xc3\x9e\xe7\xe5\xbd\xff\x2c\xb9\xb2\xd2\x4e\x16\x7b\x0f\x21\x61\x8a\x63\xe8\xbf\x1e\xb0\x4c\x27\x90\xb2\x85\x3b\x14\xb2\xe2\xd1\x21\x23\x0d\xf3\x67\x36\x28\xcd\x21\xfa\x17\x04\x03\xb8\xcd\x99\xd1\x1e\xc6\x13\x00\x30\x1c\xe5\x84\x05\x0e\x9b\x72\x0d\x58\x39\x0f\x72\x5c\x8e\x59\xe9\xf3\x87\x6a\x6d\xaa\x0f\xdd\xfb\x5c\x26\x00\xd8\x91\x0a\x5e\xaa\xd3\x7b\xc8\xc0\xf5\x2b\x18\xe1\xb2\x00\x26\x88\xa7\x81\xa6\x04\x59\x8f\xbe\x42\x72\x0e\x54\x4d\xae\xa5\x85\x05\x40\xd1\xe6\xd9\x53\x32\xab\x1f\x3d\x9f\xbd\x1d\x26\x5e\x2a\x6f\xd2\x6b\x1e\xa4\xd9\xe7\xa8\x34\xa2\xe8\x0e\x4b\x99\xce\x38\x41\x5b\xa4\x32\x64\x04\x3a\xc2\xc0\xdf\x05\x04\xa6\xd1\x92\x42\x5b\xca\x3c\x23\xab\x48\x4a\xf1\xf5\xc6\x5b\xb3\xa2\x70\xe2\xe5\x74\x62\xa4\x8d\x6d\xe5\x00\x11\x10\xf6\x5a\xe9\x02\x50\x13\x9a\x8c\x71\xab\xfb\xa9\xf2\x16\xdf\x3b\xbb\x98\xfa\x52\x8f\x7d\x20\x18\xe4\xbe\x60\x99\xd6\x39\x90\xa7\xfd\x57\xdf\xfe\x88\x30\x30\x87\x7f\x3a\x70\xcc\x56\xdd\x76\xf1\xc6\xec\xbf\x7a\xfd\xe7\xde\xb7\x3f\x7c\x0f\xcf\x5e\xbd\x3e\x00\x63\x71\xf4\x1c\x12\x77\x13\x88\x69\xda\xff\xf6\xdb\xef\xa9\x93\x6f\xbf\x3f\xe8\xb1\xb3\x8b\xbb\xd7\xd5\xbd\x01\x51\xc5\x49\x08\x25\x2a\x20\x08\x06\x10\xc4\x66\x77\x51\xdc\x89\xcd\x33\x6e\x1d\x97\x36\x3d\x76\x94\x19\xdd\x61\x89\x28\x40\x07\xaa\xce\x19\xa4\xff\x6b\xe5\x18\x06\xc9\x05\xee\x59\x37\x2f\xf4\xc3\xa4\x13\x44\x12\xf8\x3a\x18\x5d\xd7\x29\x5f\xa4\x53\x71\xbe\x7c\x4f\x2b\x01\xf1\xdc\x09\x1d\xee\x24\x84\x2a\xee\xd5\x82\xcf\x02\x10\x48\x05\xfa\xd7\x62\x20\x13\x5c\x50\x30\xc8\xa9\x9a\x89\xad\xf5\xb0\xb1\x48\xc0\xe6\x76\x9a\x4b\x0f\xfc\xb9\xc4\x46\xe3\x11\x4a\xad\xf6\x55\xf6\x10\x18\xc1\x5b\x98\x2a\x3b\xed\xca\x3a\x91\xcc\x37\xd6\x88\xfc\xb5\x5f\x92\xed\x10\x37\x5b\x40\x1a\x82\xa9\x1b\x22\x9b\xdb\x14\xca\xcc\x2f\xda\xc5\x4d\xbb\x9b\x1a\xa3\x43\xe7\x71\x1c\x35\xe2\x59\x40\x30\x75\x84\x0a\x38\xd0\x59\xa6\xef\xc1\x49\x83\xf5\xa9\x7f\xae\x6e\x07\x88\x38\x84\xfe\xda\x63\x9f\x54\x37\x2f\xc4\x40\x3e\x08\xb2\x85\xc1\x05\x71\xf2\x56\x71\x47\xfc\xef\xec\xe8\xfc\xa8\xea\xc9\x03\xec\x60\xe3\x7d\x6e\x9c\x9a\xc3\x2e\xdf\x1e\x77\x5f\x7f\xf7\xdd\x0f\xc0\x75\x88\xf2\xdf\xdf\xdf\xf7\x24\x57\xbc\xa7\x8b\xe1\x21\x37\x46\x0e\x01\x2d\xd3\x1c\x52\x17\x5d\xe8\xe2\xa0\xc7\xce\xb5\xea\x86\xfe\xfd\xec\x42\x31\x4f\x27\xe7\x34\x86\xe8\x33\xaa\xc7\x13\x77\xd5\xb9\x9a\xf4\x12\x3d\x3e\x1c\x4f\xba\x49\x69\xac\x1e\x77\x7d\x1f\x73\x6a\xc1\xc3\xce\x49\xc3\x86\x25\x2f\xd2\x08\xcb\x02\x87\x75\x54\x6d\x4c\xad\x20\x3c\x4c\x2d\x82\xbf\xf0\xda\xdb\xa3\x14\x6b\x03\xf7\x6d\xcc\x09\x70\x8b\xa3\xe4\x15\x4c\x7f\x00\xcb\x8f\x6b\xb8\xe7\xf1\x20\xbd\x27\xcf\xd7\xa5\x73\x77\x8d\x66\x76\x51\x8b\xb9\xaf\x39\xd9\x3d\xa5\x42\xb3\x88\x1c\x40\x74\x78\x4e\x27\x7e\xb1\xc3\x6e\x19\x1e\x5b\x8b\x99\xe6\xd3\x8e\x9c\xed\xba\x70\x56\x4f\x56\x20\xf6\x38\xef\xae\x2d\x4f\x5c\x70\x0b\x77\x7d\x7c\xb1\xe5\x9c\x85\x7c\x1b\x4e\x26\x4f\xd1\xae\xca\xbe\x11\x6d\x48\x1f\x36\xc4\x7b\x04\xc5\x29\x41\x7e\x44\x09\x88\xb4\x7e\x08\x3f\x1b\x8f\xb5\x02\xcb\x87\x87\xd7\x43\x61\x32\x80\x5f\xd3\xa3\x08\x9b\x0b\x83\x12\x8e\x79\x61\x85\x91\x1c\x68\x5b\x5a\x26\xd0\xea\x28\xf4\xff\xc0\x2e\xb0\xb3\xb7\xba\x60\xe2\x81\x8f\xf3\x4c\x74\xd0\xd5\xf7\xe6\x46\x31\xf6\xdf\xee\x3f\xac\x7a\xe1\x0d\xfb\xfb\x7f\xdf\xbc\x90\xf9\xcd\x8b\x37\xec\xe6\xc5\xab\x97\x3d\xf7\xff\xbd\x57\x37\x2f\xfe\xa7\xc3\xa6\x1e\x7c\xdb\xfb\xf6\xe6\xc5\xff\xfc\xa3\x83\x7d\xc0\x87\xde\xc0\x62\xb8\x3e\xdc\xcd\xc2\xc6\x1c\xb3\x17\xdd\xac\xdc\x0f\x7f\x7a\xfd\xe3\x0f\xd8\x5b\xd5\xa4\x5f\x6f\xf2\xdd\xcb\x3f\xff\xcf\x3f\x5c\xaf\xff\x83\x15\x7b\xd0\x16\x01\x21\x7b\xcd\x65\x20\xe6\x7f\x27\xc5\x3d\xb8\xf8\xdf\xe0\x60\xf8\x1b\xf6\x77\x16\x86\xff\xc6\x7d\xb3\xc3\xc2\xa8\xe1\x6f\xe6\x07\xde\xaf\xb7\xfd\xee\xe5\x9f\xe3\xa6\xdf\xbd\xfc\x33\xfb\x47\x0b\x9e\xe4\x57\x70\x99\x01\xe3\x22\xde\x7d\xd0\x0d\xf4\x60\x40\x51\x0d\x60\x50\xa6\x24\x25\x6f\xb2\x29\x84\xaf\xc4\xc1\x0d\x09\x5d\xee\x64\x98\x58\xbc\xa9\xc0\x1b\xe2\xb0\x05\x3e\x40\x45\x0a\x50\x8e\xfa\x3c\xe3\x2a\x81\x78\x10\x95\x12\xa8\x0a\xea\xc2\x56\x66\xf2\xb7\xa6\x48\xb4\x39\x50\x70\x5d\x83\x58\xd9\x50\x52\x93\x18\xed\xa5\x9b\xf7\xd1\xf6\x97\xd8\x49\xcc\x5e\xaa\xad\x0c\xce\x8d\xf5\x66\x7d\x91\x70\x32\x19\x4c\xea\x11\x3b\x3e\x72\x3c\xa0\x45\x77\xf0\x79\x21\x12\xec\x0a\x91\xae\xc0\x9c\xee\x43\x98\x92\x91\x48\x6e\x81\xe8\xcd\x69\xea\xb1\xb2\xb0\xe5\x33\xde\x98\x36\x90\xa1\x51\xa0\x81\x61\xfc\x8e\xcb\x0c\x14\x7c\x8a\x8e\xf2\xbb\x11\x6f\xd9\x23\x4d\x78\x15\x60\xcb\xed\x6b\xd2\x6d\x74\x68\x92\xb6\xaa\xc0\xac\x3a\xa5\x43\xd1\xcb\x11\x70\x44\xa2\x76\xa2\x6d\x62\x4b\x9e\x79\xb9\xb2\xc7\x4e\x91\xc0\x03\x0d\x74\x3a\x96\x23\xad\xe3\x89\xb9\x4b\x6e\x5e\x00\xad\x43\x66\xe4\x88\x3c\x52\x3e\xa2\xfe\xdb\xa1\xff\x81\x03\x6c\x8d\xfa\xbb\x95\x5d\x65\xa0\xdf\xf5\xbe\x5b\x79\x3c\x7f\xfe\x6e\xc9\x68\x7e\x7c\x5d\x1b\x4c\x1b\x56\xb0\xab\xe3\xff\xc5\xea\xf8\xef\xea\xdd\x7f\x2d\xf5\xee\xd1\x5c\xb2\xb4\xe2\xfd\x95\x57\x7e\x71\x6f\xf6\x4c\x55\x44\xf9\xb1\x57\x6c\x46\x35\xfc\xd8\x3c\x8f\xb4\xb6\x0d\x10\x06\xca\xb4\x3c\xcb\xa6\xc5\xfb\x52\xf9\x9b\x9e\x65\x8c\xba\xec\x45\xf2\xbd\x13\x5e\xf2\x8c\x27\x1e\x82\x8d\x9a\x30\x9e\x24\x9a\xb2\xbd\xf0\xb6\x9f\x5d\x18\x94\x5f\xcc\x88\x17\xa2\xc7\xaa\xe2\x59\x64\xb9\x05\x4d\x24\x60\x05\x02\x6b\xef\x30\xa3\x51\x8f\x46\x29\x0a\xcd\x1b\x4e\x22\x72\x44\x62\xfa\x99\x3b\xbf\xfb\x35\x61\x29\x71\x6d\x30\x56\x39\xc0\x79\x56\x86\xf3\x03\x8f\x59\xe8\x11\x1c\x81\xa7\xd1\x78\x10\x77\x3b\x95\x26\xcf\xf8\x04\xf1\x68\xaa\x3e\xfc\x34\x7d\xd2\x47\x04\x16\x8a\xea\xce\xb9\x8e\x26\x96\x65\x8c\xe7\xb9\xe0\x10\x01\x0f\x0e\xdd\x68\x01\x55\xca\xce\x9b\x02\xa6\x1f\x8b\xe1\x63\x41\xdf\x72\x37\x9d\x8c\xff\xb5\x77\x23\x51\x3d\xd1\xe3\xbc\x90\x46\x38\xca\x42\x1c\xf9\x71\x44\x19\x52\x3e\xb7\x2e\xcc\x84\xdf\x6b\xb8\x46\xa0\xb5\x76\x89\x29\x75\x89\xc0\x56\x7a\x75\xed\x74\x43\x5b\xd7\x63\x7d\xe2\xf4\x52\x25\xe9\xd4\x1f\xdf\x05\x6e\xf9\xe2\xee\xd5\xf4\x78\xff\xd1\x5a\xc8\x7a\x2f\x4d\x1b\x9d\x1c\xda\xd5\x9d\xc8\xe1\xe2\xb5\x32\x3f\xee\xf8\xfb\x97\xe2\xef\x6d\x62\x04\xde\xcf\xdf\xd3\xad\x5e\xc3\xcd\x94\xa7\x9d\xa4\xf2\xb5\x48\x2a\xee\xbc\xb5\x97\x53\x80\xe2\x3c\x99\x8c\x12\xaf\xd5\xea\x8e\x22\xb8\x28\xcb\x4c\xa6\x4f\xc7\x35\x80\xbc\x6f\x99\x73\xc4\xf5\xac\x16\x71\x8e\xa8\x5d\x1c\xc5\x07\x52\x42\x88\x93\xe4\x5e\x96\x0b\xb5\x54\x4d\xab\x6c\x53\x6c\xbb\x89\x73\x31\x7c\xf0\x54\xdd\xd1\x6c\x16\x86\x70\xd4\xea\xbd\x42\xcc\x5d\xe6\xe8\x85\x23\x06\xf3\x6c\xff\x62\x20\x1f\x96\x31\x3c\x55\x55\xd4\xc2\x3c\x88\x81\x74\x74\x46\xb3\xbc\x10\xb9\x50\xe0\x9f\xf5\xc5\x9c\xa7\x6a\x13\xc7\xfe\x95\x5a\x3d\xb7\x35\x62\x63\x44\x52\x6c\xe6\xad\xbd\x82\x1e\xda\xaf\x26\xb6\x9f\xbf\x94\x9b\x1b\x92\xa0\x38\xe0\xc2\x23\xfa\x99\x17\xb5\x08\x53\x35\xb3\xd2\x5e\x5c\x1b\x9a\x57\x18\x46\x2d\x04\x9f\x15\xcb\x1e\xcd\xfa\xf8\x16\xf7\x18\x98\xe1\x92\xe1\xac\x59\x5f\x34\x20\x22\xf8\x62\x7c\xed\x2a\x16\x22\x8c\xb9\x9a\x44\x95\x54\x66\xbc\xf6\x47\xaf\x52\x5a\x47\x27\x6b\x0f\x4d\xd6\xdc\xfa\x59\x45\x28\x57\xac\xb5\xd9\xe2\x6e\x13\xc9\xf7\x8a\xe6\xac\x1d\xdd\x33\xbe\x12\x7c\x24\x19\x51\xd9\x5b\x94\xd8\x08\x60\x01\x22\xb5\xd6\xcd\x77\x5c\xc6\x86\xdb\x11\x90\x36\x9c\x2e\x34\xab\x87\xab\x9b\xfa\x4a\xe0\xcc\x50\x47\xc1\x97\xda\x21\x2b\x20\xad\xff\x59\x4c\xb6\xc2\xee\x7e\x16\x93\x15\xf3\x1a\x1c\xe7\x01\x56\x5d\xf1\x9d\x79\xa8\x40\x4f\x9c\x98\xb5\x28\x1d\x8b\x82\xb9\x22\xeb\x96\x3b\x14\x9d\xfa\x9f\x90\x8c\xd5\x61\xff\x0c\x3f\x62\xca\xd6\xdf\xf7\x10\x7f\xe2\xe7\xd3\xbf\x11\xec\xc4\x3f\xfe\x19\xb7\x8a\xb2\xbc\x66\x37\x35\xb9\x48\x7a\x3e\x6e\x8b\xfe\x24\x12\x77\x94\x24\xba\x54\x96\x1e\x00\xe4\x46\x0f\xb1\x39\xc3\x9f\xb9\x4e\x9b\x7f\x99\x39\x4b\xfe\x95\x27\xbe\xd0\x9f\x22\x1f\x89\xb1\x28\x78\xd6\xa5\x98\xd9\x7a\x4a\x4c\xa7\x99\x0f\x53\xcf\x91\x99\x7a\xbb\x55\xba\xcc\x94\x6c\xb4\xe1\x05\xbc\xf2\x9d\xac\x7b\xfb\x70\x14\x4c\xc6\x50\xb3\xe1\x0c\x6f\x53\x6e\xf2\xcb\x15\x04\x9d\x05\xc4\xef\x48\xb1\xe9\xf6\xde\x2b\xe7\xff\x04\x5b\x1f\xa1\x47\xf2\x14\xea\x57\x54\x99\xfc\x10\x63\xa8\x90\xe5\x39\x36\x0d\x89\xa0\x1a\xca\x14\x16\x5d\x2c\xcf\x04\xe5\x87\x13\x2b\xef\xa4\xa3\x8f\x21\x20\x2b\x15\xfd\x72\x38\x84\xc4\x8e\x30\x86\x38\xc8\x98\xfc\xce\xd1\xf1\x2c\xc0\xe2\x93\x96\x99\xfb\xd0\xb0\xe4\x05\x57\x56\x08\x13\x52\x38\xa8\x48\x70\x25\x5c\x50\x59\x4d\x8f\x59\x00\xe5\x8c\xa1\x8e\xed\x3d\x56\x38\x76\x83\x05\x33\x14\x16\x85\xd3\x45\xa3\x40\x8a\x9b\xd8\xf4\xd0\x18\xd8\x7b\x0d\xbd\x0f\x08\xb7\x89\x08\xc0\x1d\x34\x58\x2a\x2b\x20\xb5\xea\x84\x04\x59\x5a\x43\x71\x27\x13\xf8\xc2\xcc\x69\x8f\xab\x90\x5a\x5c\xec\xbe\x4f\x53\xc8\x26\xcc\x57\x7d\xad\x0a\x8c\x39\xd2\xe4\x04\xa1\x49\x95\x12\x0a\x6f\xdd\x49\x1e\x1d\xb4\x30\x8b\xe8\x43\xa6\xec\xfb\xd1\x36\x57\xb0\x32\x1e\xc7\xdf\x61\xda\xc9\x66\xd0\x7d\x14\x2c\xa7\x18\xcf\xf2\xd1\xdc\xa2\x4f\xd3\xc7\xcb\xd4\x6b\x3f\xb5\x30\x3f\x16\xc3\x65\x16\xb0\x23\x2a\xd1\x1e\x6c\x81\x22\x54\xf5\x9f\x59\xb2\xff\xf8\xc3\xc9\xae\x56\xff\xae\x56\xff\xd3\xd7\xea\xa7\x11\x2c\x43\x89\x0c\xa7\x97\x41\x5f\x58\xcf\x35\x54\xaf\xab\xaa\xc2\xbb\x29\xcc\x3c\xe0\xa7\xe7\xd7\x97\x7f\xbb\xf8\x78\x76\x7e\xbd\x3b\xe7\xbb\x73\xfe\xf4\xe7\x5c\xa8\xbb\xd6\x4e\x8b\x59\x96\x06\xca\x8a\x6d\x1a\x1c\x9e\xa4\xe0\xff\x67\x5e\x3c\x4a\x4d\x95\x06\x8a\xcf\x46\xe5\x54\x04\xda\x67\x5b\xae\xb1\x97\xdf\xe3\x4a\x55\xed\x2c\x3c\x78\xed\x6e\xc5\xa4\x32\x0d\x55\xd4\x07\x25\x9d\xf1\x6c\xfb\x16\x3b\xca\x32\x26\x15\x82\xf9\x43\x07\x55\xd1\x4c\x4a\xd3\xc1\x3a\x67\x58\x84\x7a\x36\xae\x94\x8f\x32\xa4\x82\x80\x28\x4e\xd3\x85\x93\xaa\xf2\xde\xd3\x04\x3b\x91\xa2\xce\x8d\xd1\x09\x0a\x9f\x40\x13\x02\xd8\x69\x40\xa3\xc9\x32\xac\x91\x99\x17\x22\x11\xa9\xa3\x03\x8e\x16\x42\x22\xb3\x9f\x6b\x7f\x42\xda\x7e\xa0\x2b\x25\x5e\x49\x58\x93\x39\x7d\x3c\xc1\x11\x8d\x6c\xf8\x9b\xdc\xd2\x36\xd0\x8a\x27\x11\x63\x21\xd0\xbc\x2f\x84\xa4\x78\x51\x66\x59\xbb\xfa\x6f\x30\xd6\xbc\xcc\x32\x86\x05\x74\x7b\xec\x23\xc2\xdc\x1f\x01\xe4\x58\x87\x9d\x3b\x4a\xdf\x61\x67\x83\x73\x6d\x2f\xd0\xe2\x53\xb7\xd3\x61\x43\xc7\x33\xdf\x90\x5b\xd9\x62\x99\xc4\x08\xc6\x44\x17\xb5\x0e\x30\x65\xfc\x5e\x9a\x99\x47\x60\xe3\x45\xfb\xc6\xcb\xfe\xdd\x75\x17\x31\x94\x48\x5d\x5b\x09\x7e\x1f\x7a\x58\xa4\xfc\x86\x56\x5e\xd4\x70\xba\xd0\x3d\x25\x08\xcd\xd0\xa7\xe6\x19\x47\x6a\x25\x74\xd7\x1e\x73\x8b\xa2\xe2\x55\x81\xe0\x0d\x46\xbb\xaa\xaf\x60\x86\x5e\x59\x25\xe5\x3a\xca\x18\xa7\xdc\x80\xb6\x05\x39\x3e\x9e\xda\x12\x8a\x25\x1f\x6b\x35\x6c\xa4\xe7\x76\xa0\x2c\x72\x0d\x11\x51\xa5\x73\xa6\xb2\x56\x96\x4e\x9b\x10\xe8\x55\xd6\x73\xab\xd4\x71\xad\xc2\xfe\x73\x8c\x73\x4f\x55\xd5\x7e\x2b\x07\xf0\x0b\x94\x88\xaf\x4a\xc3\xb7\x1e\xfb\x6c\xa3\x47\x69\x04\x33\x39\x65\x13\xfa\x2e\x33\x0a\xbd\xa3\x02\x8d\xa9\xd7\xed\x73\xbd\xc0\xd2\xf7\xc5\x6a\xbf\x53\xdb\x0d\x69\xde\x13\x15\x5b\xdf\xce\x89\xdb\xd5\xd0\x6e\x2e\xc6\xae\x86\xf6\xae\x86\xf6\xb3\xaa\xa1\x0d\x49\xfc\x81\x25\xb6\x80\x21\x70\xdb\xeb\xee\x93\xad\x25\x15\xc7\x4b\x00\x83\xbf\xd0\xe9\x55\x2e\x92\x08\x09\x74\x96\x40\x83\x9f\xf7\x99\x9d\x33\x1a\x04\x95\xb0\x0c\x17\x36\xf8\x44\x0c\xdb\x3f\xbb\x38\xee\xb0\x8b\xb3\x93\x0e\x13\x36\x39\x98\x01\x6d\x1f\xc0\x05\x85\xc5\x03\x32\x4f\xb4\x42\x20\x78\xf7\x8d\xfb\x11\xb7\xb0\xdc\xd1\x87\x00\xce\x71\xc4\x2b\x10\x17\x2a\xa3\x16\x83\x9d\xce\xba\xad\x20\x8c\x79\xc4\x20\x3c\x09\x68\xda\xde\x4e\xad\xeb\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\xa9\x20\x97\xf5\x60\x21\x83\x80\x48\xe8\x99\x1e\xe4\x67\xc4\x55\x9a\x79\x6d\x4a\xe9\x62\x1c\xc1\xfc\xa5\x85\xbc\x6b\x15\x34\xec\x44\xfc\x8f\x2a\x6b\x5f\x11\x06\xb1\x12\xba\x10\x6b\xe5\x37\x08\x79\x59\x08\x3d\x24\x1c\xc1\x98\xa5\x60\x39\x8e\x7d\xf7\xea\xa1\x13\xba\xc4\xc1\xfa\xd4\xf8\x38\xe3\x72\x7c\x2d\xc6\x79\xb6\x49\xc9\x8c\x0b\x51\x18\x69\x9c\xf8\xf0\x79\x46\xaf\x8b\xcc\x11\xbf\x44\x67\x36\x02\x9b\xe7\x88\x24\xd5\xe5\x99\x56\x82\x5d\x7c\x3e\xc6\xc0\x7a\x7d\x27\x21\xc5\x2c\x5e\x99\x6b\x8a\x53\x01\x01\x3f\x14\x9e\x9f\x79\x4c\x50\x28\xe8\x0b\x08\x93\xf1\xb7\xc5\xf5\x05\x90\x9f\x5e\xdf\xb9\xf8\x7c\xdc\x61\xb2\x27\x7a\xfe\xaf\xd0\x34\x15\x99\x40\x81\x60\x88\x8c\x36\xb8\x97\x40\x67\x60\xd7\x0d\xcd\x29\x7e\xf7\x9f\x18\x6d\xe8\x46\x0a\xf9\xf7\x10\x72\xd8\xc5\x1f\xe9\x2c\x56\xbf\xff\x93\xdd\x03\x38\xe3\x3f\xe7\x3e\x27\x8e\x08\x5f\x0b\x69\x4d\xff\x24\xdd\x8c\x88\xa6\xf9\x27\xc6\x10\x60\x48\x4c\x8f\x01\x81\xe7\x99\x4c\xf1\x88\x91\x01\xe0\xbf\x3c\x4c\x2e\x2c\x62\x50\xf9\x9c\xa4\x80\x25\x3b\xe1\x1b\x64\x70\x41\x9f\x1e\x82\xa9\xba\xd9\xed\x0f\x62\xac\x1d\xab\x35\xcb\xb4\x1a\x1e\xf4\x6e\xd4\x8d\x3a\x8a\x62\xc3\x70\x25\x60\xb1\xb8\xc5\x1e\xfd\xcd\x73\xdd\xba\xf5\x0f\xdc\xdb\x8d\x03\xc6\xf6\xbf\x94\xb6\xff\x2b\x1c\x8e\x48\x3d\x83\xc8\xb3\x3b\x2d\x7d\x4c\x02\x57\x90\xdb\x87\xf8\x1a\xb4\x58\xfd\x09\x1b\x4b\x63\xf9\xad\xe8\xb1\x2b\xf2\x25\x56\xd3\x34\xa8\x33\x82\x20\x51\xd3\xf7\xab\x7e\xdc\x90\xab\x08\x31\xb4\x7e\x80\xce\xc2\xf2\x42\x74\x3d\x4a\x33\xb5\x1a\x0b\xae\xec\x0c\x49\x24\xd7\x44\xb7\x5d\xbb\x11\x26\x2c\x12\x71\x0d\xf2\x27\x1e\xbe\x22\x86\xc1\xf3\xe3\x84\xb0\x2b\xff\x07\x3a\x3f\x9d\x6a\xea\xa8\x53\xe6\x21\x92\x51\xb8\x23\xc2\xad\x84\x93\xb7\x79\x31\xe9\x00\xde\x8b\x0c\xd1\x7b\xa5\x11\x83\x32\x43\x5f\xeb\x98\xab\x12\x3a\x28\x44\xa2\x95\xb1\x45\x89\x95\x3f\x38\xeb\x17\xfa\x56\x28\x96\x64\xa5\xb1\xa2\x80\x5d\x8c\xe0\xe2\xa4\x89\xc8\x15\x54\x45\xd0\x0c\x63\x34\x2a\xfd\x69\xcc\x53\x58\xfb\x08\x49\x8e\xe6\xe3\x56\x60\xda\x88\xe5\xc1\xeb\xdd\xa7\x3c\x08\x7e\xa7\xc2\x97\x77\x53\x92\xd9\xc2\x38\xf2\x55\xf9\xc7\x9d\x58\x58\xb5\x06\x9e\x53\xdd\x60\x81\x78\xc0\x83\xca\x57\x6d\xf4\x58\xe0\xd5\xf4\x4c\x94\x96\xaa\x45\x2c\x5b\xb3\x48\xcb\x4c\x72\x08\x38\x48\x88\x88\x72\xef\x8e\x0b\xbf\x15\xea\x90\xe0\x72\xa2\xb2\xa6\xb8\xa4\x97\xe1\x07\xca\x9c\x5d\x5d\xa9\xd8\x25\xf8\x7e\xb9\x04\xdf\x64\xed\x02\x6d\x8e\x8f\xc1\x79\x74\xf7\x48\x27\x10\x10\xdd\x94\xd6\x36\xc7\xc0\x83\x4f\x40\x81\xd5\xed\x25\x90\x7e\x90\x49\xa1\xdb\x15\x6d\xa5\xb8\x10\xc7\xcc\x31\x4e\x84\x1b\x32\x17\xeb\x3e\xe2\x4e\xce\xcd\x66\x28\x0c\x8c\xdb\x58\x3e\x9e\x02\xb8\x7d\xd4\x62\xb3\x23\x81\x36\xe6\x9a\x39\x4e\x34\x86\xef\x0e\x69\x01\xf1\x77\xfb\x30\x51\x3d\x80\x2c\x2a\x6f\x07\xce\x2d\x9a\xd0\xd8\xf5\x24\x17\x1f\xdc\xa7\x0f\xe6\x84\x46\xa8\x3b\x88\xaa\xc3\xe4\x8b\x27\x01\x6b\x75\x13\xa4\x7c\xeb\xc8\xfe\x1b\x48\x66\x5f\x97\x76\xce\xa6\xec\x72\xc0\xbf\x48\x0e\x78\xc6\x9f\xd5\x55\x18\x6b\x3c\xff\x10\x34\x83\x74\x4b\x25\x11\x90\x75\xb8\x29\xe1\x8e\x6c\x52\x0f\xfc\x88\x8d\xca\x31\x57\x5d\x27\xb5\x40\xc0\x66\xf4\xdc\xcb\xe8\x8d\xda\xb9\x8e\x77\x03\xc7\x5a\x83\x97\xee\x90\x81\xa6\x96\xa4\x55\xc1\xe6\xeb\x48\x8e\x85\x68\x42\x33\xd2\x85\xed\x30\x5a\x17\x00\x8e\x2f\x10\xf9\xd7\x6d\x22\x11\x07\xa0\x3f\x43\x79\x47\x82\x88\xaf\xb2\x4e\x5a\x82\x2d\xb8\x32\xb0\xd2\x95\x09\x2b\x2c\x4e\xbd\x6e\xf2\x5a\x75\x5f\x41\x47\x78\x12\x92\x1b\x30\x77\x8d\x93\xd6\x53\x5e\x4c\x3c\xb5\xc3\x9a\x2b\x85\x00\x34\x9e\x4c\x3c\x90\xe0\x38\x3f\x4a\xc4\x89\xb3\x52\x0d\x8f\x3d\xf0\xf9\x0a\x41\x4b\x70\x3a\x74\x96\xf9\xa4\x20\x31\x96\x16\x54\xe1\xc0\x9f\x3b\x4c\xf4\x86\x3d\xf6\xcf\x7a\x68\x1b\x55\x03\xfd\xe7\x5a\x8b\x4c\xe3\x3d\x53\x6e\xf3\x97\xba\xd7\xeb\x85\x94\x69\xb0\x92\xde\x8d\x47\x97\x09\xdb\x7d\x98\xfc\x36\x58\x67\x50\x46\x14\x4d\xc9\x7e\xa5\x00\x4e\xb7\x52\x57\xd8\xc7\xa2\x4d\x3f\xe1\x96\x47\x55\x45\x51\x00\xc2\x6f\xc7\x94\x32\x4a\x5a\xd5\x05\x94\x60\x90\x03\x26\xdd\x11\xf7\x21\x01\x56\x2b\x7c\x7b\x5e\x20\x47\xd3\x7e\xb6\xce\x7c\xda\xc1\x06\x04\xbc\x7d\x16\x76\x36\x9a\x4b\x8f\x5d\x35\x29\xc0\x62\x02\x30\x67\x42\xb4\x89\x0b\xe9\x0d\x15\x5a\x89\x16\x72\x1f\x95\xea\x0e\xfb\x85\x17\x4a\xaa\xe1\x41\x87\x29\x71\x0f\x25\x59\x0c\x4b\xc2\xb8\xc0\x70\xe4\x2b\x9f\x97\x8e\x24\x6e\xd7\x42\x1a\x88\xe9\x7c\x29\x6f\x99\xfd\x34\xfc\xfe\x68\x10\x25\xa0\x40\xd7\x1e\x6d\x0c\x4d\xe2\xba\x5c\x06\x68\xe5\xdb\x34\xc0\xac\xee\xc4\x0e\xc9\xea\xb9\x2b\xba\x2b\x21\x59\xdd\x4d\xc7\x1e\x6e\x1c\x36\x0f\x47\xb6\xa5\xf7\x68\xa7\xbd\x3c\x1f\xed\x65\x87\x60\xf5\xfb\x43\xb0\x0a\xb4\x7c\xfb\x2c\xe2\xaa\x29\x7c\xcd\x64\x12\xd8\x2a\x54\x3d\x8d\xab\x19\x43\xdd\x01\x78\x1a\x28\x4d\x70\xf5\x04\x9d\xe2\x9e\x9b\x43\xf0\x08\xe6\xb9\x80\x52\x95\xae\x27\xa9\x4a\x5d\x9a\x0c\x0b\xc9\x01\x1c\x28\x04\xa4\xb6\x81\x01\x59\x6e\xe4\x3b\x0f\x06\xbe\x4a\x27\xa6\x84\x2c\x08\xb3\x84\x11\x97\x79\xc5\x23\x8c\x65\x23\xc1\x0b\xdb\x17\xdc\xc2\x40\xb6\x6d\xfa\x73\x9f\xf8\x48\x56\xb6\x2f\x67\x01\x24\x71\x1e\xe6\x1b\x5b\x0b\x68\x60\xdb\xf6\x0a\x2c\x07\x8c\xa9\x5a\xcd\x2e\x67\x0f\x8e\x31\xf2\x15\xb4\x3a\x1b\xed\x14\xb1\xa0\xb0\x21\xfd\x6f\x5a\x16\xa5\x61\x43\xa1\x44\xb1\x66\x5c\xd1\x48\x9b\xa5\x07\x54\xa7\xde\xb3\xa9\xb6\xf2\xf9\x8d\xf7\xeb\x41\x24\x47\xcb\xaa\xde\x57\x8d\x6a\x05\x98\x6e\x5e\x50\x3c\x68\x08\x80\xb8\x79\x41\xaa\x73\xbb\x3d\x6b\x91\xc6\x7d\x8c\xad\xbc\x9b\x96\x5e\x82\xa8\x31\x84\x8d\x80\x7c\x6e\xa7\x9d\xca\xb4\x11\x4b\x87\xfe\xc2\xa9\x80\x90\x60\xd9\xf0\x7d\x81\x3b\x4e\x6b\xcb\xf6\xf7\x0e\xf7\x0e\xa6\x82\x3a\x1a\x61\x3a\xd7\xd1\x9b\x8e\xa6\xc8\x71\x9e\x4d\x60\x1c\x7b\x69\x87\xc9\xe0\x89\xc5\xa5\x81\x51\x51\x92\x79\x87\x19\xcd\x6c\xc1\x53\xe9\xed\x10\xee\x57\x50\xac\xc1\x71\xa8\x95\x61\xfb\x7b\xff\xf7\x1e\x45\xea\xde\x6b\xb5\x67\x61\xf8\x3d\x76\x8d\xe5\x27\x43\x47\x13\x5d\x32\x25\x04\x21\x67\xe4\x99\x4c\xa4\xcd\x26\x2c\xe1\x59\xc6\x40\xd5\xd5\x48\x81\x29\xb9\xfd\xf4\x41\xda\xc8\x3e\xf7\x12\x63\xd9\xd1\xef\xca\x0d\xd4\x8e\x38\x1c\x09\x9e\xd9\x91\x77\x47\xaa\xee\x6f\xa2\xd0\x58\x6c\x90\x9e\xb4\x0b\x47\xda\x34\xff\x79\xd3\xf3\xfc\xf6\x78\x8d\x70\x16\xf6\x56\xf6\x0b\xc1\x8e\x29\x43\xc0\x07\x44\xcc\xfa\x15\x8b\xc7\x80\xe3\xb6\x2f\x42\x68\x2f\x55\xfd\xc0\x20\x12\x70\x36\xcf\x7b\xfb\x71\x6a\xa3\x0e\xcc\xf5\x72\x6d\xfd\x6d\x38\xc5\x58\x21\xd5\x87\xa6\xc5\xf0\x7a\x83\x46\x9b\xaa\x1e\x20\xf9\xe1\x1d\x8d\xf3\xb6\x5d\x35\x64\xfe\x56\x9c\x3e\xf4\xd8\xcd\x0b\xf1\x60\xbf\xc7\x42\x08\x0f\x03\x83\xff\x50\xd6\xfd\xab\xc7\xce\xc6\xe1\x94\x82\x14\x5e\x84\x98\x66\xff\x1a\x93\x03\x56\xaa\x10\xa5\xb5\x06\xfd\xcd\xca\x65\x2a\x69\x15\xeb\xfd\xf6\x98\x22\xeb\x59\x56\x2a\x72\x0c\x6e\x9b\xf7\xb7\x8c\x62\xaa\x06\xb5\x24\x36\x89\x5d\x52\x87\x58\x70\x14\x22\x05\x06\xba\xa0\xc8\x86\xf0\x90\x6a\x3d\x3b\x42\x16\xc5\xfc\xcd\xb3\xce\xb6\xc8\x7d\xf8\xe5\x97\xf3\x65\x4a\xe7\xac\x85\xbd\xd7\x45\x96\xde\xcb\x34\xd4\xae\x73\xfd\x1c\x3c\x35\x8a\xc2\xfd\xbd\x4c\x57\x1a\x3d\x85\xbd\xc0\xe8\x19\x0c\xbf\x42\x25\x35\x6c\x1f\xfa\x3b\x60\xa7\x12\xe3\x96\xdc\x5f\x4c\x17\x8e\x25\xf4\x7d\xf8\xb4\x93\xb6\xc2\xc2\xc1\xa5\x76\x67\xcc\x67\x9d\x42\x6a\x88\xaf\xba\x89\xc1\xdd\x72\x5c\x66\x96\x2b\x01\x82\xf1\xef\x84\xce\x66\xe2\xa1\x19\xac\xb6\x94\xe6\xce\x7f\xa9\x8e\x1a\x08\x52\x90\x4c\x58\x1e\xda\xfa\x5d\x89\xd4\x7d\x0c\x7a\x0a\xa1\x6c\x22\x3d\xa4\xac\xa7\x28\x98\xc9\xb1\x65\xd6\xe7\x46\xa4\x2c\xcf\xca\xa1\x6c\x23\x97\x60\x90\xe2\xb2\x8c\x7e\x68\x54\x0b\x1e\x23\x19\x1b\x5f\xf7\x05\xa3\x43\x19\x3b\xe2\x29\xab\x13\xb5\xe7\x4f\xda\xe3\xfa\xc5\xd1\x47\x52\x00\xef\x85\x4a\xfc\x6e\xdf\x71\xb7\x19\x0e\x7b\x8d\x75\xa0\x9a\xf4\xcd\x85\xe0\xa9\x17\xa7\x2e\x66\xef\xe7\x4a\xb7\x65\x2e\x5d\x38\x7d\xb0\x05\x0f\x72\x9f\xaf\x8f\x2f\x07\x8c\xab\x79\xf5\x6c\x75\xcd\xcc\xfc\xb5\x71\x86\x6d\x81\x25\xaf\xe6\xba\x7b\xc3\xc2\x5b\x18\x44\xd7\x08\xf5\x23\x80\x40\x32\x03\x92\x08\x8f\x25\x00\xc1\x89\x79\x27\x6a\x5a\xa6\xd5\x2c\xe7\x26\x98\x8c\x91\x44\xd0\x11\x35\x84\x18\xe0\x01\xe7\x20\x05\x46\x0e\x98\xd2\x8d\xaf\xc4\x80\x16\x94\xce\x38\x67\x20\x06\x9d\x8c\x90\x61\xa5\x95\x6f\xd4\xc1\x32\x2d\xf0\x6f\xaa\xcd\xc2\x8d\x89\x52\xb5\xeb\xa3\x5a\xdd\x9e\x45\x04\x6d\x99\x41\xab\x0d\xc5\x5f\x81\xce\x7f\xf6\x04\x7b\x06\x5d\xdf\x11\xf3\x1d\x31\xdf\x11\xf3\xaf\x89\x98\xbf\xd7\x09\xcf\xd6\x09\xc6\xd8\x51\xf4\x2f\x49\xd1\x01\x97\x6a\x2d\x83\x09\xbe\xea\x29\xb9\xb7\x83\x10\xf1\xf1\x4f\xf9\x10\xe2\x11\x3e\x2a\x2c\xe6\x0d\x56\x13\x8d\x28\x52\x29\xb7\xdc\x08\xc0\x80\x86\x67\xf4\xf7\xa7\x4f\x67\x27\x51\x04\x13\xd4\xd0\xaa\x7f\xcb\xb0\x54\x63\x3e\xd7\x22\x4b\x8a\x2e\xd6\x33\xa4\x44\xc3\x5a\x21\xa6\x87\xde\x82\x3c\x27\xb4\x06\x79\x4f\x17\xc3\xc4\x94\xca\xe6\x1b\x37\x77\xfc\xc4\x4f\x6e\x66\x35\x5e\x40\xf8\xcd\x0b\x01\x09\xdb\xab\x53\xd9\x68\x4d\x97\x4c\x06\x96\xbd\x3e\x99\x0a\x9e\x96\x60\x92\xa2\xda\x1c\x00\xc6\xec\x47\x4e\xed\x9f\xc8\x5e\xfd\xee\xf8\xb4\xd2\x20\x4f\xa4\xb9\x5d\xe7\xf4\x56\x3d\x30\xd7\x45\x25\x88\x48\xc5\xde\x69\x3d\xcc\x04\x3b\xd6\xe3\xbc\xb4\x82\x9d\xaa\xa1\x54\x02\xd3\x70\xd8\xbb\xe3\x53\x76\x71\x82\x9a\x3c\x24\x91\xb0\xbe\x18\x38\x02\x00\xe7\x9f\xf2\x09\x78\x13\xf9\x2f\x75\x9f\x80\x77\x20\x3b\xb8\x2f\x6a\x95\xe2\x5c\x9f\x79\xa1\x81\xaa\xb8\x8b\xf0\x9b\xbb\x20\x1c\x45\x11\x8a\xb1\xea\xb1\xf0\xe9\x76\xc6\x47\x44\x61\xf6\x09\x26\x63\xae\x26\x18\xf0\xde\xa3\x6e\x9e\x95\x19\x92\x8e\x5d\x9c\x46\x38\xd1\x25\xbb\xa7\x3c\x20\x12\x7d\xae\x65\xfe\x86\x9d\x2a\x53\x16\x11\x9a\x44\x53\x0a\x92\x66\x05\x41\x08\x52\xad\xcc\x9b\x6d\x9b\x2d\x57\x05\xa9\xa3\xdc\xc8\x43\xa2\x6e\xdf\x0c\x13\x51\x99\x3d\xdc\xd1\x59\x03\x5f\x8c\x17\x56\xb6\xc8\x91\x81\x84\x3f\xdf\xd6\x1f\xca\x25\xfb\x70\x36\x60\x1a\x23\x16\xd1\xbd\x92\x56\xe9\xec\x21\xd5\xb9\x3f\x61\x51\xa2\x5d\xbc\xd6\x6f\x75\x60\x19\x00\x01\x61\x52\xfe\x0a\xbd\x19\xb8\x80\x94\xeb\x15\xc6\xc4\x0d\xbb\x79\xf1\xca\x6d\xc4\x95\x1c\xcb\x8c\x17\xd9\xa4\x13\x8f\xb2\x6a\xe9\x68\xa9\xef\xd2\x0d\xe6\xe6\xc5\xcb\x9b\x17\x6c\x5f\x17\xd0\xbb\xbb\x36\x99\xe0\x77\x94\x03\x86\xc7\x77\x82\x22\xc0\xc1\x63\x6f\xd9\xe6\x86\xe4\x3c\x6d\xc1\x90\x3e\x21\x99\xae\xa5\x4d\x9e\xd4\x49\xdb\xf1\x69\x8f\x7d\x22\x41\x84\xc8\x39\xae\x38\x90\x28\xdf\xe2\xcb\x1f\xe0\x96\x12\xf5\x66\x72\xf2\xb4\x18\xfe\x54\x53\x9f\x96\xc5\x5b\xca\x7d\x74\x0e\x36\x95\xfb\xde\x49\x7b\x29\x72\xbd\x0e\xe7\x6c\x24\x7b\x07\x1c\x94\x2a\x81\x37\x46\x3f\xe1\x6c\x28\x31\x48\xd5\x48\xcc\xc5\x7f\x47\x7f\xaf\x22\xcc\xcd\x78\xcb\x37\x9f\xc1\xa5\x1c\xa7\x3e\x39\xbd\xb8\x3c\x3d\x3e\xba\x3e\x3d\x79\xc3\x68\xb2\x6e\xb4\x95\x2c\x05\x1e\xd5\x2a\x0b\x9a\xd7\xe0\x94\x00\xa4\xd6\x0f\xbc\x43\x34\x8d\x2b\x76\xea\xa8\xc5\x89\x2c\x30\x0e\x9e\x2b\x76\xa6\x64\x85\x0b\x45\xe5\x5c\x33\xad\x42\x1c\x7d\xae\xc9\x78\x31\x94\x88\x06\xa5\xa8\x33\x88\x44\xae\xf5\x06\xb7\x15\xca\x0c\xcc\x80\xdc\x98\x2f\xad\x7a\x9f\xf6\x32\x42\x8f\x0e\x99\xca\x05\x4e\x18\xb4\x3e\x39\xd4\x47\xf8\x68\x02\x18\xc3\x45\xd8\xeb\xf5\xf6\x7a\xcc\x51\xfc\xbd\xde\x9e\xe7\xad\x59\x00\x50\xa0\xa3\x50\x75\x1a\xe7\x81\x37\xf7\x9d\x7d\xf4\xc0\xae\x1d\xc7\x30\x1b\x58\x0c\xde\xe5\x22\x2b\x28\xa1\x19\xbd\x04\xb1\xa9\xec\xc7\x1f\xa5\x73\x37\x94\x77\x42\xe1\xc4\xd6\x8b\x90\xc7\x8f\x2c\x25\x39\x61\x34\x9f\x2e\xdf\xaf\xf3\x21\x3c\x72\x2d\xa2\x1e\x30\xb9\x77\x14\xc2\x15\x2a\x64\x53\xdf\xc9\x96\x51\x25\xa2\x45\xd8\x98\xc2\x60\x32\xef\xc0\xac\xec\x22\xaa\x51\x9b\xd0\x4d\xb8\x37\xdc\x42\x10\x93\x47\xb1\x19\x08\x4b\xe1\x4d\x1c\x91\x03\xaa\x37\x9e\x42\x5b\x0c\xc5\x62\x97\xd6\x22\xa0\x76\xe7\x84\x00\x50\x0b\x3c\xad\x92\xf8\x53\x61\xb9\xcc\x4c\x34\x0b\xab\x73\x9d\xe9\xe1\x64\x26\x6b\x22\xb8\x00\xe3\xc3\x26\x69\xca\x87\x43\xff\xfa\xe1\xe5\xe9\xd1\xc9\x87\xd3\xde\x38\xfd\x06\xd3\xc3\xbb\xbc\x9b\xeb\x35\x34\x49\x11\x4f\x00\xab\xed\xac\x30\x63\x78\x21\x36\xaf\xe2\x0f\x54\xff\x9a\x0c\x29\xd5\x9c\xfd\xc7\x22\x6c\x40\x9f\x35\x0f\x02\x1b\xd2\x0c\xff\x85\xea\x03\x69\xc4\xcf\x83\x7a\x55\x7d\x8e\x74\xaa\xbe\x2e\x15\xa0\x0d\x7c\xe1\x25\xcd\x97\x23\xd3\x01\x54\x18\x2d\x5b\xf3\x60\x33\xf7\xfe\x17\x9e\xc2\x36\xc4\xb4\xa9\x79\xa1\x76\xe5\x75\x5b\x20\xef\x95\x2a\x9b\x8b\x62\x2c\x3d\x8a\x66\x3b\xf9\x6d\xbb\xcb\xb1\xb6\xe8\x26\x66\x54\x31\xc7\x33\xb0\x35\x5a\xbb\xa3\xb0\xbf\x63\x0a\xbb\x23\x07\x3b\x72\xb0\x15\x72\xf0\xd7\xeb\xeb\x8b\x77\xc2\x2e\x8d\xe9\xad\xb5\x8b\xc3\x7a\x95\x87\x4d\x41\x57\xab\x56\xcc\x35\x65\xef\x84\xad\xea\x09\x2e\xbf\xb8\x2d\x62\xa1\xff\xaa\x8d\xbf\x9a\x9a\x11\xc6\x30\xb3\xba\x33\xc5\xc8\x73\x9d\xb2\xb3\x8b\x1e\xfb\x9b\x2e\x9d\xd2\xd6\xe7\xfd\x6c\x12\xec\x52\x46\x58\x76\x03\x7d\xdd\xbc\x70\x1a\x82\xdb\xe8\xbf\x0a\x9e\x8a\xc2\x40\x68\xad\xe0\x6b\x85\x72\x57\xbd\x2c\x13\xd5\x4b\x63\xf5\x98\x8d\xe8\x93\xf5\xa2\x3b\xb4\x60\x3d\x5c\x42\x80\x08\x87\x3c\x37\x0c\xbd\xa5\x77\xb6\x8c\xf3\xe7\x3e\x85\x43\xdf\x28\x6e\xae\x2d\x41\x72\xaa\x30\x62\x93\x92\x77\x03\xa6\x8a\x30\x1c\x6b\xd6\x46\xd8\x2c\x47\xa2\xb4\x32\xeb\xb9\xab\x65\x8b\xde\x99\xb2\x1f\x8b\x2b\xfc\xdc\x22\x6f\x24\x3a\x73\x8a\x18\x20\x06\xce\x5d\x61\xa7\xe7\x17\x59\xf7\x29\xdd\xc4\x47\xf6\xf9\x4d\xe7\x6a\x28\xd8\x2b\xf7\xe6\xeb\x1f\x7e\xf8\xee\x87\x1e\x3b\x8f\xab\x4e\x70\xc5\xce\x8e\xce\x8f\x7e\xbd\xfa\x7c\x0c\xc5\xb4\xe6\xe5\x13\x27\x23\xb1\xd4\xe6\x77\x05\x8d\xe2\xf8\x04\xba\x47\x11\xb6\x91\xbb\x89\x75\xea\xe8\x76\x68\xcb\xba\x63\x1e\x15\x8a\xd8\x88\x74\xd1\xc9\x5d\x4c\xb7\xb0\x51\x2d\x17\x21\x89\xaf\x61\x8c\x1f\x26\x89\x7e\xe5\x00\xd7\xbf\x9c\x70\xb5\xa8\x41\x72\xed\x56\x15\x3f\x84\x9a\xc9\x74\x55\xaa\x6d\xd5\x22\x9f\xfa\x14\xbe\xb4\xd5\xbd\x6b\x8c\x9e\xc6\xb5\xf1\x66\x02\x0e\xe4\xc2\x9d\xc4\x16\x21\x39\x98\x7b\x13\x47\xe2\x39\x10\xe5\x30\x78\xcf\x28\x60\x78\xb5\x90\x19\x1f\x44\xb2\x7e\x1e\x7e\x95\x0f\xb3\x30\x7c\x61\x86\x4b\x1b\x3c\x52\xda\xd1\x78\x70\x34\x55\x4e\xec\xca\x37\xe4\x7a\x0f\x7f\xa3\x24\xe7\xa7\xaa\x61\x7a\x73\x88\x81\x63\x47\xef\xc4\xfa\xc8\x44\x75\xa1\x60\xd1\xc4\xa8\x65\x63\x90\xee\xfb\x9e\x99\x41\x8c\x85\x28\x06\xba\x18\xcf\x43\x0e\x48\xf2\x2b\x9d\xdc\x6e\x30\xde\xeb\xe3\x0b\xec\xa1\xc5\x88\x43\xdb\x68\xcc\x95\x10\x83\x49\xff\x08\xca\x77\x7d\x7c\x01\x34\xbd\x07\xff\x1a\x69\x7d\x8b\xa9\x3a\x13\x61\x2b\xbf\xe1\x16\x7d\xd5\x4e\x28\x39\xca\x24\x5f\x94\x68\x19\xda\xb0\x91\xce\x52\x5c\xed\x31\xcf\x73\x37\xe2\xbe\xb0\xf7\x42\x28\x76\x76\x01\x67\xcd\x11\x72\x8c\xa4\xc7\xec\x4a\x32\xb7\x62\xb5\xc3\xaa\x14\x9c\xb2\x95\xa9\x14\x2b\xd7\xba\x17\x31\x89\xa9\xa5\xe0\x06\x5f\x69\x21\xbd\xe1\x68\xbc\x81\x92\xf7\xf5\x9d\x80\xc1\xa6\x69\x21\x4c\x4b\xb9\x66\x8b\xa1\xfe\x72\x0a\x97\xa9\x09\x6c\x12\xc6\xe6\xef\x2b\x78\x87\x01\xe6\x1c\xa1\x3d\x9f\x28\x8a\xc1\x2d\x9e\x93\x9e\xd6\x51\xd9\x61\xc8\x4e\x3a\x83\x73\xe2\xeb\x0a\x90\x76\xfe\xd7\xf0\xf0\x29\xb4\xf3\xb6\x32\xa2\x8f\x2c\x09\x56\x7b\x12\xa5\x50\x34\xa1\x00\xab\x9c\xd4\x5b\xce\xcc\x64\x9c\x49\x75\x0b\xd9\x74\xa4\x1f\x3a\xaa\x4a\x16\x09\x75\xeb\x25\x9b\x42\xf0\x6c\xbe\xe2\xbb\x8a\xe3\xce\x0d\x24\x9f\x82\xae\x6e\x85\x25\xdf\x12\x25\xc5\x5d\x12\xbf\xeb\xe4\x87\xac\xc9\x64\x37\x2f\x6e\x5e\x3c\xf1\x2c\xda\x8a\x76\xdb\xd0\x4a\xcf\xae\x8e\xaf\xce\x56\x76\x06\x2c\x78\xab\x16\x58\xac\x18\xb4\x04\x37\x76\x8f\xfe\xbd\x6a\xba\x5e\xfd\xad\xc7\x89\x8f\x49\x46\x3c\x3f\x2a\xed\xe8\x44\x9a\x44\xdf\x89\xa5\xde\x26\x5f\x2b\xd7\x8f\x46\xc2\x18\xc3\xdb\xec\xf8\xaf\x47\x17\x8c\x97\x76\x24\x94\xa5\x22\xb7\x6b\x44\x7f\xfa\x51\x5d\x61\x7d\xa2\xb5\xc6\x44\xef\x6e\x69\x44\xbb\x38\xa2\xcd\xe3\x88\xa4\x49\x8c\x5c\x03\x61\xc6\x49\x65\xdc\xea\x36\x75\x8e\xc8\xf4\x81\x27\xe0\xcc\xbf\x08\xda\x2e\x50\xf5\x5a\x5f\xb5\xa8\x5a\x34\xe4\xc1\x10\xcf\x94\x15\xc5\x80\x27\xa2\x91\x06\x87\xb8\x51\xd8\xb7\x0c\x6d\x10\xc6\x9b\x12\x0c\xdd\x06\xf1\x0c\x03\x2c\xdf\xcc\x01\xf8\x0e\x62\x92\xc7\x99\xae\xb2\xbf\x51\x51\x5e\x0b\xa0\x50\xfe\x6b\x69\x6c\x15\x0e\x11\xc7\xff\x9f\x25\xcf\x70\xde\xe7\xeb\xf9\xa7\xeb\x2b\xb5\xe4\xd3\x7e\x3f\xfc\x9a\x9d\x07\xeb\x77\x69\x50\x36\xc6\x16\x80\xec\x87\xf2\x70\xcc\x89\xf6\xc8\xfc\xb6\xc7\xf6\x6d\x92\xcf\x43\xc4\xdf\x2c\x0f\x17\x07\x40\x6b\xf4\x3e\x24\xe0\x6e\x1d\x78\x17\x4f\xc8\x32\x51\xb6\x36\x9a\x0b\x78\x85\xbd\x97\xc6\x62\xf8\x26\xfd\x20\x0d\x13\x98\xf3\xc9\x41\x22\xd7\x05\x93\xf9\xaf\x4e\x9c\x7c\x83\x74\x30\xb2\x19\x49\x83\x85\x6c\x31\x30\xdc\x87\xc8\xed\xdb\x49\x2e\x13\xc0\x0b\xf7\x9a\x88\x61\x7f\x7a\xfd\x12\xf8\xc9\x77\xdf\xbe\x7e\xd9\x5c\xeb\xc7\x97\x98\xbf\x54\xa0\xd5\xb3\x4f\x38\x03\x3e\x86\x2f\x60\x7d\x1f\xbc\x31\x78\x44\x00\xfa\x21\x90\xbb\x06\xb7\x9b\x2d\x25\xc2\x8b\x78\x92\x56\x3f\x8c\x5f\xfa\x1c\x6e\x2a\x41\xd6\x66\xdf\xa0\xa2\x0d\xb2\xb1\x15\x39\x73\xad\x82\x26\x3b\x09\x72\x27\x41\xee\x24\xc8\x9d\x04\xb9\x93\x20\x77\x12\xe4\x96\x25\xc8\x7c\x27\x41\x7e\x1d\x12\xe4\xca\x59\xae\x3b\x31\xb2\xc5\xa9\x7b\x86\x62\xe4\xcf\x62\x72\xad\x1b\xb5\x83\x9b\x2b\xfc\x81\xe7\x11\x46\xed\xad\x98\x60\xf2\x1f\x98\xb1\x1d\x73\x92\x2a\xe4\x4b\xb4\x10\xec\xb0\x88\xe2\x32\x57\x30\x7d\x85\xf2\x05\xd7\xa9\xac\xa0\xd3\x65\xc4\xbf\xca\xcc\x76\x8d\x59\x5f\x5a\x13\x8a\xca\x19\xc7\x33\xab\xa0\x2b\xb4\xe3\x4b\xf2\x2d\x55\xf0\x04\x8a\xe9\xc4\x7a\xcc\xe5\xe0\xc6\x7a\xf9\xf2\x25\x1e\x8e\x97\x3f\xfe\xf8\x23\x83\xca\x67\xa9\x48\xe4\x78\xba\x21\xb4\xfa\xe1\xd5\xab\x1e\xfb\xdb\xd1\x87\xf7\xa1\x40\x39\x80\x25\x61\xcf\x90\x32\x1c\xbf\x6c\x3a\xec\x3f\xae\x3e\x9e\x57\xb5\x57\xeb\x4f\x09\xe2\x9f\xe6\x33\xaf\x26\xa4\x4f\x69\xc0\x13\xfe\xc1\x35\x8f\x4b\x41\xfa\xfc\x71\x5f\x09\x12\x91\x0f\x07\x99\x4c\x28\x63\x02\x6f\x89\x07\x14\x00\x86\xc9\x07\x03\x5f\x16\x0e\xdc\x4c\x6e\x0c\x1d\x96\xc9\x5b\xc1\x06\xe6\x5d\xa1\xcb\x3c\x94\x66\xf7\x15\xf5\x9d\xbe\xd1\x17\xd4\x59\xb5\x07\x46\x34\x37\x7c\x0b\xdc\x6d\xb9\x03\xe7\x1a\x06\x96\x71\x48\xb5\xcf\x23\x6f\x8e\xaf\x8d\x3d\xe6\x39\x26\xab\xc2\xd9\xec\xb1\x0f\x7c\xe2\x2b\x8e\x71\xc5\x78\xdf\xe8\xac\xb4\x21\x40\x91\x1e\xc6\x59\x1e\xd0\xa9\xc8\x50\x33\xc2\xa4\x13\xdf\x2c\xca\x46\xc1\x12\x23\x70\xd7\xa0\xcd\x76\x69\x8b\xbb\x7e\xdb\x8e\xc4\x7b\x2f\x07\x22\x99\x24\xd9\x22\x1d\x34\xb4\x89\x83\x59\x92\xe8\xfc\xa0\x3f\x38\x28\x8e\xa4\x63\x50\x70\x81\xe5\xb7\x70\x0a\x0b\x61\x72\xad\x8c\x0f\xa4\xf3\x35\x9e\x43\xdf\x84\xed\x0e\xe9\x97\x98\x69\x64\x2c\x94\xf2\x83\xa3\x77\x51\x88\x2b\xab\xf3\xa8\x3d\xd6\xf0\x2c\x4c\xa7\xe6\x24\x6c\x16\xb1\x87\x9a\x7f\x26\x2a\xf9\xe7\x5d\xee\x86\xea\x68\x58\xd1\x61\xa5\xca\x84\x31\x8d\x37\xa9\xa0\x3f\x54\xb2\x36\x9d\xaa\xe0\x64\xc2\xa9\x6c\x35\x0d\x80\x4a\x21\x15\x35\x3c\xd4\xf9\xde\x48\x3f\xab\xf5\xc3\x24\x28\x66\x65\x11\x4b\xaf\xd6\xce\xcd\x93\x67\x99\x48\x99\x1c\x8f\x45\x2a\xb9\x15\xd9\x84\x2a\xf3\xf1\x7a\xdd\x7c\x5f\x9c\xcf\xfb\x3a\xfd\xfc\x68\x01\xea\xab\x23\xab\xca\xf2\x22\x85\x1d\x2a\x04\x5c\x04\xf7\x57\x92\xe8\x50\xb9\x0e\x21\xca\xf1\x8e\xe4\x50\xe5\xbc\x87\x79\x56\xab\x6d\xdb\x48\xeb\xdb\xb0\x63\xb3\xe1\xef\x17\xa9\x8d\x55\xed\xf7\xea\x9f\xdd\x70\x96\xba\x10\x66\x71\xf8\x4d\xf5\x08\x7e\x98\x43\x8e\xf0\x24\x3e\xee\xfe\xd1\x69\x9f\xbd\x7b\x94\xcf\xcf\xe7\x6e\x47\x5a\xc2\x2d\xe3\x8a\x1d\x5d\x9c\x85\x90\x18\x5d\x5b\x72\xaa\x70\x48\x75\xf9\x33\x79\x27\x94\x30\x4e\xbf\xe6\x85\x2d\x73\x8c\x44\xf3\x55\xdc\x3b\x2c\x2f\x84\x18\xc3\xf0\x3a\x55\xb6\x2e\x65\x51\xc2\x8f\xc2\x26\x28\xba\x45\xb7\x02\x68\x28\x0d\xbf\xb9\xc1\x49\xc1\xcd\x08\xeb\xab\x8b\x07\x69\xa9\x84\x7f\x5c\xd6\x27\x2a\xf5\x2e\x4d\x03\x9c\x84\x3e\xe2\x85\xc5\x74\xcf\xd4\xda\x0f\x0b\xa7\x10\xe6\xa2\x90\x3a\x65\x00\xc9\x9d\xea\x7b\xc7\xaf\x86\x52\x19\xbf\x7c\x40\x63\x68\x9d\xdd\x76\x0b\x4c\xde\x41\xac\xde\xb4\x47\xe5\x16\xb3\x28\x0e\x43\x97\x36\xd1\x55\xe2\x32\x0d\xa2\x79\x33\x80\x19\xc3\xea\x62\xd9\xcd\xb0\x2f\x5e\xe0\xb2\x4b\xc7\xbc\x85\x1b\xe2\x16\xb6\x7a\x36\x77\x71\xb0\xc8\x67\x32\x5a\xc3\x12\xb3\xe9\x95\x9a\x62\x7a\x2b\x73\xae\xb1\xb4\x97\x5c\x0d\x17\xb3\x2e\xdf\xc8\x89\x26\xa6\x3a\xbb\xa5\xe1\x43\x81\x35\xff\x51\xee\x72\xab\xc0\x6e\xa5\x4a\xdd\x52\xc7\x09\xe9\x9c\x85\xec\xad\x5d\xe1\x91\x67\x5d\x78\x64\x57\xb6\xe3\x6b\x29\xdb\xf1\x7b\x2f\x84\xe7\x54\xb6\xf5\x0d\x38\x81\x66\x5d\xb9\x6e\x16\x2e\x40\x2e\x92\x1a\xf9\x20\x82\x26\x14\x18\xae\x66\x13\xf5\x6d\x2e\x83\x9b\x68\x97\xab\xb4\x8b\xc0\xed\x2b\x90\xf7\xf0\xfb\x63\x95\x26\x89\xf8\x43\xed\xf9\xa6\xb5\x49\xaa\x7e\xcf\xac\x18\xb7\xe2\x3d\x67\x88\x4e\xe8\x23\xc8\xc7\x52\x1d\x8e\xf9\x43\xcc\x83\xa8\x96\xc4\xa4\x01\x37\x39\xe6\x36\x01\x29\x49\x01\x6b\x6a\x83\xb6\x80\x66\x81\xf5\x40\x0b\x57\xbe\xb1\x3d\x3f\xdc\xde\x7f\x96\x5c\x59\x69\x27\xad\x91\x0e\xc9\x5a\x5a\x4d\x98\x74\x5e\x90\x76\x70\x4d\xc8\xe0\x12\x2d\x0a\x16\xa7\x8f\xf8\x33\x36\x74\xd4\x19\xf1\x7e\xd6\x40\x46\xa4\x15\xbb\x44\x7a\xfc\xbb\x59\x38\x1a\xaf\xcf\xb5\x4c\x17\x2d\xa7\xd7\x00\x5a\x2c\x68\x51\x75\xbb\xfe\x92\x8e\xf9\xc3\xf3\x5f\xc7\x0f\xe1\x06\x62\x59\x7c\x2e\x01\x10\x86\x8c\x85\x20\x09\x36\x57\x6a\xbd\xa5\x40\x3a\x80\xeb\x7a\xe9\xa4\xb7\xdf\xc5\xda\x4c\x8d\x7a\x06\x24\x8a\x5b\x93\xb4\x5a\x22\x48\x1e\x1b\xf1\x3b\x01\xd5\xf4\xf1\x1c\x61\x1d\x14\x77\x49\xd1\xd2\x58\x08\xb4\x90\x86\xea\x1d\x58\x5f\x1f\x9b\xa4\xf2\x4e\xa6\x82\xd6\x3d\x9c\x43\xb2\xcd\x70\x80\x7e\x11\xff\x2a\x79\xe6\xa5\x58\xa1\xca\x31\x56\xa2\xc1\xa3\xfd\x97\x86\xa8\xec\x33\x15\x1e\x58\xbf\x2c\x8c\x0d\x4e\xd1\xfa\xb8\xd7\xd9\x55\x39\x25\xde\x3f\xc3\x4d\x94\xea\x09\x0e\xf8\x0a\x15\x38\xeb\xbc\x0d\x46\x81\xfb\xce\x01\xb2\x07\x44\xe1\x2d\x7b\x63\xdc\xfb\x9b\x9b\x48\x3d\x1f\x5f\x52\xb4\xb2\xde\xb0\x5e\xb9\x32\x52\x44\xc1\xdf\xb9\x53\x25\x9f\xb5\x2a\xd9\xa6\x86\xa5\x93\xea\xcc\xdc\x5d\xc6\xf5\x5c\xcb\x52\x39\x90\xc3\x12\xcb\x92\x1f\xa2\x05\xa8\x9b\x20\xd0\x67\x37\xcc\xa8\x1b\xec\x2a\x87\xdb\x4d\xcc\x8e\xa4\xe6\xb9\x74\x66\x57\x41\xf3\x0f\xa4\x8a\xef\x2a\x68\xe2\xef\x8f\xaf\xa6\x6e\xbf\x8c\x66\xc3\x92\xd0\x86\x73\xd5\x2c\x0a\xf3\x55\xd5\x40\x88\x22\x3d\x75\x05\x2d\x15\xcd\x14\x4b\x08\xc4\x7b\xb4\x65\x48\x6f\xd9\x68\x92\x58\xd0\xaa\x89\xcc\x56\xd2\x65\x30\x7d\x3c\x16\x5d\x04\xad\x7f\x65\xda\xd8\xf2\x50\xd2\xc2\x6c\x2c\xb2\x68\x9e\xfe\xc4\x33\xae\x12\x51\x9c\xa9\x61\x21\xcc\xa2\xf4\xde\x19\xad\x9b\x32\x74\x55\x97\x8f\xb3\x4c\xf3\xb4\xdb\xa7\xf6\x4c\xd2\x0b\x40\x5d\xdf\x30\x5b\xf0\xc1\x40\x26\x20\x0e\xa8\x34\x0a\x44\x34\xa2\xb8\x93\x89\xa8\xe1\xa6\x63\xc8\x2a\x57\xf5\x4e\x56\xc8\xff\x6d\x99\xfe\x0b\x41\x99\x14\xdd\xb4\x60\xf4\xd1\x29\x3a\x39\xbf\x22\x68\x99\x28\x82\xe8\xe8\x97\xab\xfa\xeb\xcd\x42\x61\xad\x24\x8b\x16\xf9\xbf\x2b\x0f\xf7\xec\x62\x7a\xb4\xef\x8e\x4f\x9d\xc2\xf4\x31\x17\xea\xca\xf2\xe4\x76\xcd\xa1\x2f\xb3\xe3\xad\x72\x14\xaf\xd0\x48\xd8\xee\x24\x62\xe3\xd6\x07\xb1\xc5\xa9\x91\x53\x37\x61\xe6\xfa\xd3\x1a\x57\x82\x5d\x54\xd0\xa1\xb1\x01\xfe\x70\xd7\x47\xc2\xae\x57\xbf\x04\x76\x24\x8c\x68\x74\xbf\x6d\x12\x36\x83\x28\x6c\x4e\xc7\x56\x3e\x0e\x33\xa2\x13\x17\x1d\x88\xe9\xe6\x15\x1c\xa3\x50\xba\x1c\x8e\x9a\xb5\x35\x32\x81\x21\xf1\x99\x4e\xb8\x15\x14\xb4\x44\xef\xa6\xa1\x7c\x46\x55\x8b\xb5\x0e\xc1\xd8\xe2\x1c\xb5\xa0\x3c\x71\xe1\x05\xfa\xb8\x5d\x59\x15\xd0\x77\xee\xb8\x88\xfb\x43\x2a\x0f\xdb\xbd\x97\x76\xd4\x25\x8e\x77\x08\x23\x3e\xfc\x06\x61\x10\x9e\xea\x2e\x27\x3c\x6b\x99\xb8\x02\x6d\xe3\xdb\x8b\x89\xf5\xd9\xa4\x1b\x8a\x26\x51\x2c\x3f\x86\x4e\x29\x9d\x0a\xe6\xae\x8d\x13\x08\xd9\xfe\x4f\xc2\x72\x36\x10\xdc\x89\x7e\x07\x8f\x04\xea\x1f\x01\xc6\x57\x36\x08\x48\xa2\xb9\x1f\x09\xf2\xd3\x87\x7c\x7f\xf0\xb7\xb3\x54\xb8\xfb\xfb\xe4\x45\x8e\x50\x35\x42\xf8\x7a\x5e\x5a\xdd\x35\x22\x83\x5a\x0c\xf0\x79\xfc\xfa\xc6\x95\x49\x5b\xc6\xd9\x0d\xca\x0c\x01\x0d\xbc\x01\x80\x02\x12\x09\x2e\xc1\xed\x23\x2c\x28\x45\x08\xfa\x00\xde\x18\x58\xa1\xa8\xad\x26\xdb\x4f\xa5\xb9\xed\x54\x38\xf9\x1d\xd6\xeb\xf5\xb6\x1d\x98\xbb\x95\x68\xb9\xf3\xb7\x57\x6b\xe5\x6d\x9d\xbf\xbd\x6a\x8d\x5d\xe9\xda\x3e\x27\x5c\x0c\x0f\xa3\x2e\x1e\xea\xe7\xda\x8d\x93\x10\xd4\x36\x4d\xe2\x51\x83\x35\x74\xdd\x6d\x04\xf5\xbb\x39\xe0\xbc\xb6\x8e\xe1\xb8\x95\xf9\x2f\x49\x15\x28\x96\x97\x8d\x43\xbb\x88\x57\xa2\xbc\xdc\xec\x0e\xcd\x34\xce\xcc\x17\xd9\xd1\x96\xd7\x97\x26\xbb\xed\xf0\xd7\x59\x50\xd1\xb3\x78\x39\xa2\x33\x03\x18\x7f\x8a\x28\x60\x89\x26\xc0\x14\x78\x0c\x25\x2b\xdc\x3a\x8e\xcb\xcc\xca\x3c\x8b\x04\x0a\x90\x24\x35\xc5\xab\xef\xcc\xbe\xcf\xda\xec\xbb\x33\x5b\x7e\x2d\x66\xcb\x3f\x74\x04\x51\xa0\x58\xab\x07\x10\xf5\xc5\x88\xdf\x49\x1d\xe0\x45\xab\xd8\xc7\x2f\x17\x4a\x14\x2f\x4b\xd3\x82\xb0\xee\xc2\x60\x3f\x4b\x8e\x86\x2d\x4d\x94\xf2\x00\x57\xb0\x2c\x0a\xb8\x83\x91\x19\xe2\x39\x2c\xd1\x32\xcd\xee\xd1\xcd\xd8\x15\x23\xdd\xaa\x05\x3b\x74\x7b\xac\x55\xda\x2c\x17\x36\x97\x51\x87\xc6\x95\xa9\xc0\x63\xaa\xf3\xbe\x2e\x71\xfb\x80\x5d\xaf\xa2\xf6\x3b\xa9\xfd\xba\xe0\x50\xd1\x53\xab\x6b\x39\x6d\x04\xd8\x80\x5e\x41\x77\x73\x88\xa3\x31\x7c\x38\xf5\xad\x96\x22\xb2\x99\x16\x23\xda\xbc\x39\xfb\x9e\xcd\xbe\x21\x55\x68\x7a\x4a\xea\x1b\x61\x8d\x5e\x17\x4e\x22\x78\xeb\x44\xe4\x0e\xfb\xa4\x6e\x95\xbe\x5f\x27\x0b\x7d\x85\x08\x83\xaa\x90\x06\xdc\x30\x9d\x65\xa2\xa8\x06\xf6\x18\xc1\x05\xd3\x6b\xb6\x35\x91\x74\x49\xb4\x41\xad\x5d\xdd\x0d\x1d\x1e\xed\xc2\x0c\x9e\xb7\xbc\xb9\x52\x98\x41\xec\x05\xab\x74\x12\xef\x00\xa3\xc4\x92\x0c\x12\xfa\xb7\x6f\x68\x84\xd3\xb4\xe5\x58\x83\x8a\x67\xac\x6c\x86\xde\xc9\xec\x5f\xa1\xcc\xbe\x0b\x35\xc0\xdf\x1f\x5d\x46\xdb\x7e\xa4\x41\x5d\xe3\x68\xc1\xb4\x48\xf1\x88\x65\x6b\x6e\x71\x63\x30\xde\x7d\xb5\xb4\xab\x81\x54\x3c\x93\xbf\x2d\xaf\x84\xf1\x36\x34\x04\x82\xa0\x98\xce\xf9\xbf\xca\x8a\xb0\x52\x26\x3e\x46\x35\x90\x91\x1f\x8b\xb0\x23\xa2\xf8\x98\x2b\xa1\x6c\xe6\x18\xce\x58\xdf\x79\xf2\x8b\x97\x9f\x8c\x60\x6d\xc9\xaf\xe5\xe6\xd6\x1c\xf2\x74\x2c\x95\x34\x56\x14\xdd\x04\xcb\xbb\xac\x4c\x70\x37\x45\x4a\x59\xa6\x3c\xb4\xdf\xfc\x65\xfe\xdd\x46\x4b\xb7\x05\xb1\xf3\x0e\x85\xf3\xe5\x7a\x56\x0b\x08\x32\x2f\xf3\x2d\x3b\x0f\x97\x75\xf7\x32\x49\x19\xfc\x8e\xcb\x8c\xf7\x33\xb7\xbf\x46\x14\x77\x1c\x93\xdd\x61\x18\x61\x77\xf6\x4c\x6d\x98\xcd\xe0\xd9\xad\x71\xc7\x4a\xf5\x69\xb9\xb3\xb5\x47\x35\x62\x92\x73\x9b\x8c\xba\x63\x51\x0c\x45\x17\xc1\x3c\x9a\x52\xec\xec\x37\x8c\x2d\xb8\x15\x43\x78\x01\xde\x9e\xe3\x41\x1a\x71\xb3\x4c\x54\xbf\x70\x6d\xbc\x38\xe3\xd7\xaf\xca\xea\x87\x2e\xbc\x4a\xa1\x16\x6a\xd6\x5b\xb9\x52\x8f\xe6\x2b\x3d\xaf\x83\x98\x4c\xdd\x04\x9d\x0a\x14\x49\x9c\xcc\x25\x0a\xf4\x7f\x4a\xc5\x7e\xae\x66\xc5\x4e\x79\x42\x8e\x51\xf0\x5b\x50\x68\xfd\x74\xa9\x7b\x92\xfd\x12\x9e\x8c\x04\xdb\x97\x3d\xd1\x73\x3f\x09\x9b\xa4\x07\x3b\x05\xe0\x59\x2b\x00\x3b\xe1\xf5\x6b\x11\x5e\xff\xd8\x06\x67\x9d\x6e\x68\x6b\xe6\x14\x38\xf0\xbb\xb5\x2c\xbb\x15\x58\x6e\x54\xfe\xa0\x0d\xd0\x38\x94\x21\x51\xb8\x80\x48\x98\xd8\x92\x86\x2b\x71\x11\xca\x96\x93\xc3\xdd\x47\x8e\x5c\x7a\xb7\xf4\x1f\xda\xde\xec\xd8\xeb\x76\x55\x18\x9d\x8a\x23\x74\x88\x2f\xe1\xdb\xd4\xaa\x32\x2e\xc7\x32\x6c\xc8\x31\xd3\xa9\x93\x10\xa7\xca\xcc\xcc\x67\xc3\x53\xdf\x9e\xf5\xfd\x6b\xea\x7a\x4e\xfd\x9a\x2d\xd9\x53\xcf\xa3\x2f\x40\x58\x53\xb0\xe9\xfa\x90\xda\x0e\x3b\x7d\x40\x46\x8c\xb8\x7c\x67\xca\xff\xf5\xc8\x56\x56\xbf\x4c\x1b\x9b\x59\xdd\x46\x52\xb8\xd9\x32\x39\x2d\x84\xa5\x01\x1b\x86\x93\x09\xd6\xe6\xda\x33\x27\xae\xa4\x65\xe6\xd8\x71\x51\x66\xad\x4c\xaf\x39\x84\x06\x16\x22\x3d\x29\xdd\xe2\x5c\x85\x1e\xce\x86\x4a\x87\x9f\x4f\x01\x92\x66\xb9\x78\xe6\x8e\x06\x0d\xc2\xc3\xd0\xe0\x07\x00\x14\x8f\x1e\xb0\x5c\xa7\x20\x52\xb9\xc1\x93\x9e\x6b\xb8\x95\x66\x80\x44\x26\x4c\x47\x3c\x38\xa1\x01\x11\xf4\x2a\x40\x5b\x20\x45\xbe\xd8\x75\x87\xf5\x4b\xcb\xa4\x05\x61\x22\x19\x69\x6d\x04\xd1\x71\xec\xf7\x4e\x6a\x10\xda\xf0\xec\x14\x6c\xec\xa8\x15\xd1\xb8\xa8\x7b\x0c\x75\xab\x5e\x93\x86\x8d\xa1\x42\x90\x5f\x1d\xaf\x2d\xb8\x6e\xaa\x52\xfa\x80\x56\x65\x9c\x74\x32\x76\x9d\xde\x0b\x39\x1c\x59\xd3\x61\x20\xfe\x06\x44\x97\xaa\xdb\xb1\x10\xd6\x30\x9e\x65\x7e\x08\xf1\x86\x55\xc9\xd2\x86\xed\x37\x93\xa1\x3b\xfe\xf9\xd4\x3e\xcd\x5c\x2e\x04\x43\x3a\xe8\x30\xca\xda\x72\x92\x5b\x39\x76\x4b\x27\xad\x8f\x02\xb4\xa3\x02\x42\x57\x61\x29\x32\xfa\xb0\xae\x55\x12\x77\x82\x2d\x4f\x01\x46\xeb\xe6\x05\xce\xee\xe6\x45\x28\x1b\x5e\x8e\x3d\xa6\x12\xcc\xd0\x03\x05\xa0\x23\xa6\x40\xac\x35\x78\x17\x9e\x9c\x56\xa3\xfb\x4b\x78\x69\xdf\x1c\x54\xcb\x39\x92\xc3\x91\x5f\x4d\x4e\xe8\x48\xf5\x5d\xd8\xb2\x7a\x7b\xe1\xfb\xad\x56\xf3\x5a\x14\x6b\x64\x56\xd4\xfc\x5d\xb3\xb7\xa9\xdd\x75\x5a\x8d\xd7\x43\x00\xa6\x5e\x0c\xe3\x45\x40\x6a\xe1\x90\xd4\x8e\xd9\x9c\x4b\x05\xab\xef\x24\xeb\xb1\xb0\xcc\x5d\xce\xea\xb0\x59\xe9\xe8\x2e\x95\x4c\xc3\x0b\x4e\x22\xb8\xbf\xdd\x29\xd3\x8a\x4e\x08\xc5\x61\xae\x33\x82\x44\x70\x13\x8a\x1a\xd3\x28\xf4\x58\x60\x54\x3a\x4b\x61\x15\x61\x08\xc2\x2f\x25\xdb\x17\xbd\x61\x2f\xc2\x1d\x43\x9d\xe0\xa0\x13\x09\x2e\x40\x25\x00\x83\x0c\x61\x13\x6d\x01\x36\xb5\x08\x29\x4b\xdc\x49\x42\xa1\x74\x9d\x83\x4a\xe2\xd4\x0e\x98\xc9\x96\x35\xf3\x56\xee\xe4\xb8\x5d\xc5\xec\x83\x69\x69\x8a\xed\x93\x0c\xdb\xce\x93\xfc\x57\xc1\x0b\xdb\x17\xdc\x3e\x86\x23\x79\xd1\xa1\x7c\xcf\x8d\x85\xa3\xc4\xee\x05\x1b\x6a\x5b\x6d\x17\x9a\x5d\x87\xf2\x4e\xa8\xd8\x69\x3a\xf3\xaa\x3d\xbe\x33\xbc\xdd\x1c\x6a\x9e\x67\xc4\xfa\x96\x64\x8e\x75\xec\x82\x04\x6b\x38\x94\x80\x55\x3a\x67\x3a\x73\x9c\xec\xcd\x7c\xa2\x72\xcc\x15\x84\x85\x82\x6d\x90\x5e\x62\x52\xa5\x80\x88\xac\x86\x8d\x30\x83\x0c\x86\x19\x56\x69\x0d\x59\x6d\xb6\x07\xbf\x31\xac\xfd\x7e\x21\xc5\xe0\xa0\x86\x9e\x17\x2f\xcb\x9e\xd9\xc2\x48\x7e\xaf\x11\x01\x8e\x3b\xfe\xde\x22\x00\x90\xf0\x0c\xe4\x70\x69\x98\x79\xb3\x69\x5c\x5e\x94\x91\x14\x13\xad\x42\x95\x59\x0e\x25\x1d\x12\x4b\x85\x61\x4d\xd9\x47\xd2\xbf\x2f\x1e\x92\xac\x44\xc1\x81\xcc\x05\x07\xc1\x0f\xa2\xb4\xea\x2a\xd9\x26\x86\x15\x3f\xf5\x81\xaf\x8f\x92\x79\xec\x7b\x98\x5a\x8c\x45\x74\x21\xbc\x85\x92\x7a\x48\xfb\x41\xd4\xeb\x73\x54\xc9\x42\xa3\xed\xf3\x14\x37\xca\xa5\x3e\x90\x46\xd3\x86\x17\xcc\x34\xaf\xd0\x40\x0e\x19\x37\x46\x0e\x15\x32\x6a\xf7\x7e\xef\x2a\x17\x49\x2f\x5e\x96\x36\x0a\x66\x62\xe5\xdd\xca\x64\x7a\xfe\xa9\x5c\xb4\x11\x47\xf0\x2d\x56\x08\x44\x5c\x87\xa9\x8c\x44\x72\x0b\x22\x84\x48\xfd\xbc\x82\xfc\x2a\x11\x51\xf8\x4e\x64\x13\x56\x1a\xa9\x86\x3d\x46\x5d\x80\x98\x13\x2c\x98\x3e\x9d\x24\x76\x1e\x90\xe2\xef\x97\xec\xc8\xaf\x15\x7e\xa3\xc3\x74\xbd\xb9\xe3\x1d\x3f\x3b\xc2\xf3\x4e\xeb\xaa\x51\x2a\x72\x81\x02\xb3\x56\xcc\x17\x7f\xe1\xd6\x02\xea\x29\x22\xd9\x96\x84\xfb\xdb\xf8\x00\x21\x62\x43\x04\x06\x57\x4c\x14\x85\x9e\xc7\x65\xfc\x36\x3e\xd1\x1e\xf8\x71\xb6\xde\x05\x58\x6b\x92\xcb\x4a\x23\x7a\xec\x97\x91\x50\x73\x0e\x9c\xdb\x32\xb2\xfc\x76\xaa\x1e\xaa\xee\xc9\xa7\x6b\x8c\x4e\x24\x8f\x3e\x96\xf3\x49\xa6\x39\x20\xb9\x66\x90\x22\x86\xc9\x3f\x3c\xd3\x6a\x88\xea\x08\x07\x27\x40\x91\xc6\x7c\x35\x64\x52\x62\x2f\x91\xca\x08\x77\x9c\x9c\x04\xe0\x73\x80\x57\xad\xf6\x0a\xa9\x93\x20\xe9\xd3\xd5\xe0\x3a\x84\x58\xec\xd7\xa5\x7a\x51\xaa\xb0\xbf\xbd\x6a\xa7\x21\x09\x04\x67\x1b\x22\x6d\xe8\xa2\x22\x94\x32\xe6\xf9\x41\x0f\x23\x6e\x58\x5f\x38\x11\x2a\x5e\x6a\xab\xa9\x6c\xd3\x2f\x3e\xb5\xec\xe7\xb2\x2f\x32\x61\x11\x82\x95\xa0\x93\xa1\x9a\xac\x2d\x10\x0b\x87\x8d\xf9\xed\xec\x13\x07\xbf\xe1\xf5\xa0\x5f\xfa\x13\xc8\x41\x05\x95\x54\x81\xe3\x43\xa6\x3c\xb8\x06\x6a\x23\xf1\x1b\x10\xfc\x47\x40\x55\xc2\xa4\x67\x9f\x5c\x38\xd5\x4b\x58\xee\xa9\x6b\x13\x43\x84\xab\x09\xc0\x08\x67\x62\x8c\xcb\xab\x12\x99\xf9\x21\x4d\x9f\x27\xd2\x5b\x6a\xf3\xea\x31\xe8\x14\xdd\x15\x3a\x49\xca\xa2\x83\xaa\x3d\x96\x23\xea\x34\x6e\x68\x35\xcf\xf9\xfd\xe3\xa1\x8b\xee\x86\xdb\xb4\x05\x1d\x81\x3a\x42\x4b\x16\x9d\x66\x38\xa9\x53\x1f\x69\xf6\x03\x6f\xe9\xc2\xef\xc7\xcc\xdd\x24\xec\xe4\xe6\x44\x9d\xd6\x95\xca\x01\xa6\x8e\xfa\x7c\xe3\xfb\x91\xcc\x9c\x3e\xa5\x12\xf7\x81\xb0\x46\xbc\xc8\xa4\x28\x90\xf4\x18\xaf\x8b\xe9\x7b\xe5\x3f\x5f\x4d\xc7\xbd\x86\xcd\x0e\x2a\x05\x92\x20\xfd\x01\xeb\xb6\xd0\x59\xd6\xe7\x09\x94\x2f\xae\x51\xca\xd8\xd3\x66\x74\x76\x27\x18\x4f\x0a\x6d\x4c\x38\xc7\x85\x80\x83\xdb\x63\xef\xb9\x6d\x0e\xc6\x9f\xcd\x6a\x29\xb0\xd8\xf9\x0c\x6a\x74\xe0\x29\x7e\x8b\x31\x81\xcb\x89\x7c\x83\xee\x9b\x09\x77\x72\x25\x02\x02\x96\x06\x95\xca\x5c\x1b\x23\xfb\x58\x05\xc0\x8f\x1c\xac\x2e\x70\x5a\xfb\x13\x36\x90\x0f\xe1\x9e\x34\xb8\xad\x54\xd3\x5b\xdc\x63\x7f\xd3\x25\x24\x37\x0e\x24\x59\x68\x30\xb5\x67\x4a\x1d\x4c\x45\xbf\x1c\x0e\xa1\x46\xfa\x84\x19\x01\xc6\x76\xfa\x10\x7e\xbc\xd2\x1f\x6a\x04\x21\xd3\xfe\xdc\xa3\x14\x33\x72\x5a\x47\x37\x68\x1d\xd1\xad\x0b\xc6\x34\x68\x0c\x41\x08\x7f\x61\xa4\x57\x61\x49\x38\x58\xe0\xc0\xcf\x74\x01\xfb\x1d\xfa\x86\xc0\x16\xb4\xe2\x91\x1b\x16\x8f\x43\x16\x8a\x5f\x1b\xcb\xfb\x32\x93\x76\xe2\x3f\x85\xef\x5a\xf1\x60\x9b\xfb\x4f\x6c\x78\x1d\x8b\x74\x16\x6f\xea\xd3\x30\xc7\xba\x14\xb0\x1a\x87\x1c\xf0\x2c\x63\xfe\x40\x42\xaa\xb0\xb4\x4c\x28\x00\x1a\x77\xbc\xc8\x4b\x01\xed\xe4\x07\xe4\x65\x4d\x12\xdf\x17\x89\x1e\x93\x48\x38\x4b\x62\xa9\x52\x94\x61\x5c\xa9\x40\x88\x6f\x11\x55\x64\x68\x76\x29\x0d\x6c\x67\x26\xe0\x26\x83\x95\x30\xb1\x54\x2e\x44\x86\x58\x96\x6c\xc2\xa4\xa3\xad\x63\xe1\x6b\x08\x72\xf6\xea\x65\x77\x2c\x55\x69\x05\x33\x9a\xdf\x7a\xec\x70\xe0\x59\x6e\x6e\x61\x28\x19\xe5\x7c\x03\x1f\xd4\x83\x59\x23\xa8\x9c\xc5\x33\xa5\x35\xd7\x84\x38\x00\xcd\x42\x20\x22\x37\xf0\x68\xfc\x30\xdc\xf0\xb9\xeb\xd3\x63\xe7\xda\x7a\x4b\xf2\x60\x06\x1f\x40\x7e\x2b\x20\xe3\x53\xc9\x8c\xed\xbb\x7d\x21\x51\x84\x32\x3b\xc9\x6e\x55\x5f\x77\x77\x17\x33\xa3\x6b\x48\xfc\x71\x47\x1d\x37\x26\xee\x37\xb9\xd6\x61\x34\x39\x9e\xdd\xf3\x89\x71\x24\xa6\x1c\x8b\x94\x0d\x61\xc4\x8e\xa2\x44\x17\x10\xf8\x3e\xb4\xa0\x22\x2d\x55\x5c\x14\x79\x95\xc6\xc2\x8e\x34\xac\x8b\xdf\xf8\x8a\x1f\x44\x77\x36\xda\x67\x25\x8c\xe9\xb8\xdd\x84\x85\x44\x83\x3d\xe2\x94\x15\xb4\x96\x95\x7e\xe8\x8e\x08\xd1\xa4\x41\x69\xcb\x62\xeb\xd6\xb7\x13\x2e\xc6\x5a\x9d\x52\xa8\xc1\x32\x65\xa9\xd1\x1a\x42\xf5\x0c\x95\x72\xd2\xb9\x20\xb5\x28\x85\x56\x86\x15\xa5\x52\x24\xc6\x43\xfe\x52\x3b\x8b\xdc\x2d\x12\x31\xff\x91\xb5\x69\x50\x7d\xac\x0b\x29\x90\x6f\x84\x0a\x87\x4c\x46\xb1\x44\x98\x41\x31\x79\x48\xe4\xde\xee\xd2\x2f\x4b\x2a\xa0\x26\xde\xe5\x72\x3f\xd2\x59\x15\x1c\xe9\xe8\xde\x39\xf8\x8d\x70\xc0\x10\x90\x04\xb2\x6e\x21\x86\x10\x70\xe5\x25\xa3\x31\x77\x7f\xed\x82\x8f\x9e\x75\xf0\x51\x9b\xec\x83\xf7\xb4\xf5\xe0\x2e\xdc\x72\x80\xa3\x4e\x77\x91\xff\xbb\xe0\xa9\x5d\xe4\xff\xd3\x44\xcb\x3c\x42\xd0\x7f\xec\x07\x9d\xcf\x53\x8e\x50\x44\x35\xd4\xb2\x89\xe8\x55\xaa\x48\x93\xf1\xb6\x34\x3d\xa8\x05\x0d\x00\xac\x09\xfb\x57\x29\xc0\x34\xa2\xef\x00\x50\xc6\x89\x5e\x9e\x32\xfd\xc5\x87\x0e\x80\x70\xd8\xf8\xc2\xc7\xcb\xe0\xf2\xa7\x31\x44\xec\xa1\x8a\xaf\xaa\x8f\xd2\x89\x55\x6d\x62\x38\x54\xb4\x08\xd7\xee\x9d\xa5\x01\xe7\x78\x4e\x7a\xec\x28\xf0\xd5\x59\x5f\x06\xad\x00\xfe\x09\x1e\xe1\x8f\x97\x5b\xf7\xc0\x9f\x37\x46\xfe\x68\xa0\x86\xd3\x4b\xb4\x0d\x0f\x89\xef\xf1\xb2\x72\x69\xaf\x74\x08\x2b\x78\x7c\xe4\x0f\x61\xf9\xdd\x41\x0a\xde\x5e\x5f\xb7\x91\xb3\x5b\x31\x41\x86\x0f\x49\x23\xa2\xe0\xa1\x31\x54\x1e\x24\x79\xe4\x56\x4c\xbc\x05\xae\x6c\x15\x03\xd4\xae\xa6\x26\x5e\x00\xa8\x5e\xe8\xd5\xbb\x30\xe0\xd5\xd1\xb3\x23\x62\xee\x67\xd2\x3e\x4d\x02\x56\x62\xcf\x50\xbd\x45\xad\x00\x8f\x08\xfc\x2b\x74\x21\xbd\xe0\xf3\x99\x67\x32\x0d\x4b\x85\xc7\xf8\x4c\x75\x9c\x7e\xe6\xfe\xe7\xf4\xc1\xc9\xf1\x1d\x76\xa2\x85\x39\xd7\x16\xfe\xec\xb1\x77\x64\x9b\x7d\xbf\x4e\xe1\x50\xfc\xf2\x32\x41\x52\x31\x38\xc7\x6e\xa8\xb1\x50\x60\x82\x4e\x1a\x76\x57\x1a\xc7\x96\x75\xe1\x87\x0c\x02\x27\x26\x08\x61\x17\xb1\x67\x0c\x8c\x29\x33\xfb\xc0\x99\xba\x7e\xe2\xb9\x2e\xe8\x6e\x7e\x57\xef\x00\xef\xe9\xfd\xdc\x97\x29\x45\xc0\x48\x35\xcc\x42\x64\x51\x87\xc4\x75\x5f\x26\x14\xa4\xd8\xbc\x10\x5e\xbf\x57\x8c\xea\x6f\x92\x31\x00\xfb\x43\x19\x3a\xe3\x09\x14\x94\x2b\xd0\x60\x47\x89\x20\x32\x61\x90\x06\xc2\x20\x3d\xe4\x69\xea\x39\xb7\x24\x36\x8d\x22\x99\xe1\x7c\x6f\x93\xe4\x00\xb5\x5c\x48\x6b\xca\x2c\x83\x6a\x05\x90\x39\x36\x4d\xde\x43\xbc\x96\xd2\x15\x50\x38\x16\xc0\x8b\xe2\x73\x90\x69\x61\x3c\xd6\xd1\xf9\x09\xd6\x76\x15\xec\x5a\xe7\x3a\xd3\xc3\x49\x3c\x1a\x2a\xe8\xef\x0d\x37\x40\xd0\xca\x3e\x5d\x48\xaf\x07\xc7\x2f\xb4\xa0\x4c\xcd\xc8\xb1\x65\xf7\x6a\x0e\x3b\xab\x4d\xa9\x3f\xf1\x26\x0c\xa0\x68\xdb\x86\xb8\x9c\xc7\x17\x36\xd1\x32\x60\x19\xde\x4a\x91\xa5\x5b\x5e\x01\xf0\xb8\x3f\xdb\x15\xd8\x86\xb1\x61\x59\x32\x28\x35\x99\x9f\x07\x8a\x00\xb7\xc1\x45\x4c\x15\x4a\xc1\xc4\xd0\x3a\x0a\x61\x2a\x86\x62\xf5\x05\x6d\x6d\x55\x3e\x9b\x2a\x91\x62\x82\xf3\x69\x28\xec\x8c\x38\x0c\x54\x1e\xdd\xb5\x3e\x99\x28\x3e\x96\x09\x19\x81\xf0\x93\x1e\x01\x93\x0d\xb9\x15\x15\x7b\x50\xbc\x9f\x45\xa8\xb2\xde\x6e\x14\x6c\xcc\x3e\x92\x6f\x8e\x2f\xcf\x07\x6e\x9f\x2c\x39\xcf\x27\x8e\xe9\x27\xa8\x9e\x9e\x6b\x0b\xe6\x1f\x32\x94\x19\x64\x26\x60\xfd\x0c\x9f\xeb\xb1\x4b\x4c\x8a\xa5\x40\x46\xf0\x8c\xbe\xea\xbd\xfa\xae\xc7\x8c\x10\x95\x76\x26\x8d\x71\xec\x96\x14\xb4\xd7\xaf\xfe\xfc\xfa\xf5\x1a\x68\x95\x3a\x3d\x3e\x3b\xb9\x5c\x96\x6d\x88\xad\x9a\x1a\x41\xae\x53\x76\x76\xc1\x0a\xb0\x80\x06\x77\x4f\x1c\x39\xb9\xf6\x80\x96\x11\x09\xdf\xac\x39\x24\x3f\x1c\x33\x73\x3c\xb0\xd7\x08\xc2\xde\x9f\xb0\x0b\x9d\x52\x21\x17\x6e\xe3\x40\xcf\x10\xc1\x29\x4d\xf3\x1c\xbe\xb4\x23\x26\x94\x2d\x48\x4e\x40\xc0\x76\x5a\x0a\x58\x21\xda\xc1\x33\x8a\xe6\xa6\xd2\xd7\xdc\x62\x14\xf0\x2b\x32\x9c\x84\xb8\x6a\x3d\x60\x67\x17\x77\xdf\x83\xac\x76\x76\x71\xf7\xfa\x31\x65\x80\x6d\x65\xa7\x22\x7a\x5f\xb1\xf4\xdc\x9f\x9d\xc4\x99\x38\xb5\xe0\x1b\x34\xec\xe8\x32\xf5\x58\x80\x21\xf9\x12\x7d\x7f\x6f\xd8\x4d\xf9\xf2\xe5\x77\xc9\x05\x3d\x3d\xe7\x63\x01\xbf\x88\x37\x87\x87\xf5\x47\x57\xb8\x41\x89\x23\x30\x67\x27\xd8\x68\x8d\x50\x38\xde\xb0\xa0\xcf\x9c\xd0\x74\xe5\x26\x64\x41\xf8\xf6\x96\x59\xd0\xb5\xeb\x74\x23\x96\x5b\x2a\x0a\x68\x76\x74\x6e\xc9\xdc\x3e\xc5\x6d\x3d\xec\x8f\x21\x0e\xec\x9f\x04\x17\xa6\x12\xf7\x90\x01\xd1\x63\x3f\x4d\xbc\x77\xa6\x13\xf8\x4b\xd4\xd3\xca\x18\x2a\x60\x86\x80\xff\x1e\x7e\x33\xe6\xaa\xe4\x59\xd7\xfd\xd1\xf5\xc9\xc8\x48\xee\xdb\xc2\x7c\x6e\x85\xfb\xb6\x89\x44\x5b\x27\x11\xbf\x65\x94\x33\x65\xea\x2c\x55\xc8\xbc\x89\x39\xb4\xc7\x92\xc4\x9c\x9c\xf6\x55\x30\xfb\x7f\x82\xfd\x87\x22\xc3\xeb\xb7\xb0\xc3\xe4\xa0\xca\xda\xdf\x68\xf3\xaa\x61\x9c\x6b\x2b\xde\xa0\x4a\x14\xc8\x6a\x2a\x92\x8c\x17\xa8\x38\x01\xad\x71\xdf\x43\x17\x3a\xa4\x4c\x80\x56\xe4\xf4\x74\xaa\x7f\x6d\xca\xc1\x40\x26\x12\x1d\xab\x98\xb9\xdd\x09\x85\xe4\x15\x43\x87\x61\xca\x2d\x07\x47\x5d\x89\x6e\x7d\xef\x53\x96\xf4\x8d\xb4\xc7\x8e\x79\x96\x45\x1e\x0b\xa9\x8c\x15\x3c\x05\x7e\xcf\x01\x92\xb9\x4b\xca\x1a\x58\x34\x50\x2d\x63\x57\x42\xc0\xf4\xdf\x1c\x1e\xe6\x85\xe7\xb7\x3f\xfe\xf9\xbb\x3f\xbf\xa2\x7a\x93\x3e\x90\xe6\x11\x84\xd0\xa3\x7a\x9e\xd6\x32\x3a\xb0\x8c\xc6\x3f\x1a\x66\x01\xcf\x00\x27\x7e\x16\xa5\x79\x7e\x25\xdd\x8e\xaa\xc1\x36\xe5\x87\xaa\x22\x4b\xb8\xa3\x55\x7d\x88\x0a\xcf\xc2\xed\x7b\x95\x52\x52\x07\x33\x3e\xe6\x39\x4f\xa4\x9d\xac\x51\x05\x2e\xa1\x57\x9f\xff\x12\xfa\x49\x36\xd7\xcf\x6a\x0b\xb1\x0b\x53\xab\xb8\x36\x16\x72\x2e\x0a\x03\x6e\x5c\xdb\xf5\xb0\xc8\x61\x99\x56\x5f\xe0\xb6\x80\x26\x21\x63\xc5\x03\xdc\x04\x63\x97\x27\xe5\x21\xeb\xb8\x1e\x1b\xbf\x7a\xa9\xb2\x98\x6a\x86\x6e\xb6\x4f\x49\x7e\x3f\xf8\x27\xa8\xd9\x6d\x43\xd5\x6c\x0d\x4f\x3a\x27\x4e\x3c\x56\x1d\xee\x24\x87\x3f\x52\x54\x30\x83\xba\x98\xd4\x54\xcc\x39\x81\x9f\xe9\xdc\x50\x8d\xd5\xe7\xd6\x0c\xfb\x68\x13\x1d\x01\x33\x5c\x18\xdb\x31\x73\xd8\x72\xcc\x87\xad\x05\x8f\x50\x4b\x8f\xe1\x6b\xa1\x46\xa6\x9a\x4a\x32\xdf\xf4\x3c\x1f\xfb\x4f\x9d\xb9\x2f\x6d\x24\x24\xbb\xc1\x9d\xa9\xc1\x54\x35\xd9\xd5\x4c\x45\x90\x9a\x07\xdd\x2c\x3c\x6c\x68\x48\x94\xa9\x39\x2c\x4b\x89\x09\xc4\x28\xcc\x64\x13\x1f\x48\x3c\x89\x24\xb5\x0d\x08\x89\x7b\x6b\x7d\x74\x21\x37\xa7\x1a\xc2\xd0\x34\xd6\xc2\x3c\xac\xa1\x4d\x07\x8e\xbd\x41\x85\x0c\x2f\x2c\x2a\x71\x27\x0a\x96\x7b\x20\x07\xf4\x6c\x28\x7d\x8f\x82\x64\x30\xae\xac\xe1\xe8\x40\x7e\x72\x44\x95\x54\x5a\x9e\x73\x5f\x55\xa2\x12\x0b\x7c\x25\x96\xf9\x96\x8f\x4d\x0f\xbc\x1f\x22\x96\xcd\xd8\xe8\xc0\xd3\xf0\xcf\xd4\xa7\xa5\xc7\x20\xa8\x14\xf0\x75\x10\x7c\xfc\xe4\xa1\x28\xae\x60\xfb\x54\xe9\xe1\x20\xf6\xfe\x7e\x21\x47\xc6\x3a\xba\x5d\x75\x6f\x97\xe8\x77\xa1\xa1\x77\x73\xae\x74\x93\x5b\x68\x79\x51\xf8\x44\x0b\x47\xe6\x51\xd4\x9c\xc2\x6e\xeb\x1e\xf8\xd5\x2f\x43\x5f\x6b\xbb\xd4\xa6\xf3\x93\xd6\x96\x9d\x9d\xcc\xfc\xe4\x1a\x17\x30\xb0\x8c\xcb\x52\x59\x39\x16\xed\x62\xd8\x8e\x1b\x6f\x31\x1f\xd1\x36\x6b\x54\x01\x23\xa0\xa0\xc6\x85\x18\x6b\x2b\xd8\xd1\xc5\x59\x08\xf1\x4f\x6e\x45\xf1\xe6\xf0\xf0\x55\xef\x87\xde\xcb\xd6\x05\x73\xe2\x08\x2a\x47\xd9\xb2\x76\x83\xff\x19\xda\x2e\x1e\x32\x68\xe6\x7b\x25\x94\x18\xe9\x16\x7b\x34\xce\xef\x7a\xaf\x5e\xf7\x5e\x76\x5f\xf6\xfa\xb9\xee\x7d\xdf\xe5\xe3\xf4\xf5\xf7\x6b\x8d\xb6\xec\x8b\x8b\x42\x3f\x4c\x5a\x0e\xd8\x37\x5f\x38\xe6\x35\xc7\x91\x09\xdb\x7e\x14\x4e\xda\xda\xf2\x18\x48\x25\x5a\x7a\xee\x3f\xf8\x76\xb3\x3f\xcc\xde\xea\xc2\x03\xca\x51\x97\x21\x31\x28\xe1\x94\xe5\x4e\x56\x4f\x40\xd2\x6b\x58\x99\x2b\x74\x08\xf6\x5e\xf0\x42\x61\xb8\x0e\x1c\x83\x31\x57\xfb\x3f\x1c\xf8\x5e\xbb\x32\x7d\xe3\x6d\x11\x63\xae\x7e\xec\xe9\x62\x78\x98\x49\x55\x3e\xb8\x3f\xbb\xb9\x93\xbb\xdc\xbf\x7e\x38\xac\x5e\xe8\xfd\xd0\x1b\xd9\x71\xb6\x6e\x50\x83\x54\x43\xa4\x7e\x2d\xc8\xd2\xc7\x50\x9f\x0b\x5f\xd9\x12\x69\xd2\x06\xe5\xbc\xc5\x03\xf8\x78\xc5\xa0\xd9\x82\x3b\x75\x28\x6c\x72\xa8\x4d\xb7\x10\x19\x80\x33\xe0\xc5\x3a\x11\x7d\xc9\x15\x7b\x77\xfe\xe9\x10\x0b\x40\xfd\xc8\xf6\xef\x47\x42\xfc\x36\x39\x58\xe7\x7e\x21\x4e\xc3\xa7\x4f\x4b\x0f\xd5\x55\x68\xb8\xf6\xa9\xaa\xce\x65\xfd\x14\x5d\xcf\x72\x62\x24\x8e\x4b\x5d\x8a\x94\xfd\x95\x5b\xa8\x61\x64\x82\x74\xc6\x93\x44\x18\xd3\x2b\x44\x3a\xe2\xb6\x97\xe8\xb1\x93\xd0\xca\xb1\x8f\xfb\x3d\x14\xaa\x5b\x9a\xc3\x42\xa4\xbf\x8e\xb8\xfd\xd5\x94\xfd\x30\x91\x5f\xab\x1a\x5a\x87\xaf\x0e\xdd\x41\x3b\x2c\x46\x66\x0c\x6c\x71\xbb\x69\xe2\xd5\x5d\x9d\xbd\xd8\xd3\xbc\x6c\x2e\x89\x9e\x71\xb6\x5a\x70\xa5\xf9\xb4\x6b\x11\x75\x5d\x70\xa1\x3a\x73\xf8\x3f\xfd\xbc\x76\x90\x05\x82\xe8\x81\xb3\xbd\x45\x60\xe1\x8c\xd6\xe4\x74\x07\xc3\x47\x15\x31\x2e\x52\x3a\x52\xb5\x28\xf0\x2d\x06\xa7\x7f\xae\xa7\x20\x53\x28\xba\xfb\x27\x8c\xce\x57\x11\xbc\x2f\xa4\xb5\x02\x49\x2a\x44\xf6\xe9\x41\x27\x24\x9d\xb8\x33\x7e\xf3\xe2\xee\xd5\xcd\x8b\x35\xae\xee\xc0\x7f\x66\x99\x3f\xd4\x8d\x84\x46\x89\x4b\x62\x35\xad\x59\xc8\x6b\x0d\xa8\x30\x4e\xd2\xa0\x18\xd1\x2d\x03\x27\x54\xc3\xdd\xce\x89\x69\x53\x4a\x74\xcd\x2a\xa2\x12\x6a\x2a\x5a\x0c\x45\x4d\xbd\x70\x1c\xa0\xa9\xb6\x7f\x96\xa2\x55\x9f\xaa\x20\xfa\x78\x07\xe3\x6c\x40\x73\xa2\x64\x35\xce\x72\x29\x10\x3c\x22\xdc\x98\xe0\x75\xc0\x1f\x1d\x3d\x2f\x3c\x02\x76\x07\x05\x03\x0a\xa8\xab\xf2\x2a\xd0\x8b\x8c\x59\x9f\xec\x3f\xae\x3e\x9e\x1f\xbe\xd3\x3e\x3e\x00\x48\x37\xa6\x2d\x62\x98\x9a\x29\x93\x11\xe3\x80\x88\xe0\xce\xcc\x15\xa0\x2a\x8f\xb9\x92\x03\x61\x1c\x71\x27\xea\x66\xfe\xfe\xed\x3f\x90\xc7\x84\x3c\x60\xc2\xc2\x0a\x31\xfb\x7e\x93\xa9\x64\x66\x64\xe2\xb9\x97\x76\x04\x43\xca\x75\x4a\x83\xbe\x87\xc1\x5a\x7e\x4b\x08\x38\xe8\xea\xce\xe4\xad\x78\xc3\x6e\x00\x18\x33\xfa\xf6\x7f\x3b\xe1\xf6\x7f\x6e\x5e\x00\xa7\x2d\x04\xbb\x81\x72\xb0\x37\x2f\x6a\x89\xe8\x08\x5d\x1c\x19\xe7\xe8\xe3\x18\xbc\x59\xc8\xe1\x10\x52\x65\x20\x67\xe0\x4e\x28\x7b\xe0\x8e\x97\x1c\x30\xa5\xa3\xc6\xa1\x72\x75\xb8\x90\x53\x83\xf9\xfb\xb7\xff\x70\x23\xa9\xcf\x8e\x49\x95\x8a\x07\xf6\x2d\x5e\x68\xc7\x5e\x75\x7a\x40\x9c\xd5\x4c\x94\xe5\x0f\x10\x4b\x33\xd2\x46\x28\xcc\x6c\xb7\x1a\x03\x07\x01\xe5\xe9\x5e\x64\x59\x17\x53\x6c\x52\x76\x8f\xa6\x63\xbf\xa0\x18\x04\x98\xf3\xc2\xce\x21\xa5\xad\xcf\x65\xdb\xdc\x8d\x36\x35\x74\x9f\x4d\x66\xc4\xef\xb6\x30\x70\x63\x0e\xcd\x8a\x88\xf3\x26\x42\x15\x48\x1e\x7f\x36\x2b\x21\x77\x47\x93\xf1\xee\x9c\x76\x94\xd7\x47\x64\xb0\xc6\x6b\x98\xe6\x2b\x21\x60\x06\xa2\x62\x23\xea\x32\xe6\x29\x92\x1f\xae\x1e\x1f\x8f\xd5\x2d\x19\x38\x71\x92\x49\x97\x22\x1d\x00\x9e\x35\xd1\x0a\x3d\x4d\xc9\x1c\xcf\xd2\xa2\x35\x72\xe2\xee\x92\x10\x8b\x2a\x20\xe6\x71\x8f\x6c\x29\x5b\xdf\xba\x4d\x8d\x68\x17\xc1\x39\x47\x96\xc9\xf9\x82\x43\xb3\x29\xdb\xbf\xf8\x7c\xe0\x93\xca\xb0\x82\x75\xc8\x1c\x83\x78\x04\x12\x39\xfb\x13\x70\xbf\x55\xf1\x1f\xba\x80\xf8\x2a\x70\xcb\xf1\x4c\x0f\x35\x21\x93\x6d\xdb\xcd\xb8\xcb\xba\x7c\xce\x59\x97\xbb\xac\xc5\xaf\x25\x6b\xf1\x0f\x0d\xf9\xde\xa4\x8a\xab\xc1\xbf\xf3\x60\xda\xa9\x08\x05\xab\x28\x59\xa8\x29\x7f\x5f\x8b\xbb\x04\x0b\x64\x8f\x5d\x2c\x23\xb2\xdb\x0b\xd8\x98\x41\x5c\x67\x2f\xe5\x66\xe8\xf1\x53\x8b\xd9\xda\xff\xdf\x88\x62\xf1\x31\x1e\x91\x32\x7b\x48\xa1\x7b\x3e\x5a\x7c\x6a\x95\xd7\x86\x9a\x7f\x8c\x35\x5d\xc6\xd7\xc3\xef\x8f\x95\x2a\x3b\x25\x18\xd4\x5a\x6d\x9a\x32\xdb\xec\xfd\x38\xe3\x72\x51\x2a\xd1\xcc\xf6\xc8\x1a\x4a\x23\x8a\xbd\x40\xa1\x29\xa0\x2f\x65\x09\xb4\x40\x0d\xbe\xb9\xd3\x3b\xc1\x60\x27\x18\xec\x04\x83\x9d\x60\xf0\xa4\x82\x01\x90\xac\xd5\x8b\xc3\x90\x0d\x90\x25\x23\x5e\xf0\xc4\x8a\x42\x1a\x2b\x13\x8a\xcb\x24\xf1\x80\x0e\x21\x89\x01\x90\xd5\xc3\x4b\x3b\x7a\x2c\x11\x00\x7f\x01\x02\xfb\x34\x62\x00\x2e\xdd\x23\xc8\x02\x73\xc4\x2d\x98\xda\xa3\x73\xfd\x39\xcb\xf8\xec\x38\x3f\xf2\xe6\xc7\x67\xff\x6d\xb0\xe8\x17\xbf\x48\x46\xe3\x6c\x6e\x99\xf3\xfc\x2e\x69\x87\x4a\x7f\x51\xe8\xbe\xf8\xa2\x88\xf4\xb9\x1b\x41\xea\xed\xe6\xbf\x5f\x0c\x7a\x72\x3b\x3e\x22\x10\x7d\xf7\xd9\x01\xd1\x7f\xa2\xfc\x16\x74\x05\xa1\x30\xd7\x07\x3c\x82\x91\x2e\x6c\x27\xc4\x02\x94\x2a\x15\x85\x01\xee\xe7\x86\x4f\xb2\x0c\x38\x47\x86\xf2\x4e\xf8\xc8\xcd\x80\x66\xbf\x08\xc9\x9e\x9d\x0d\x08\xf2\x05\x00\xe1\x6e\x5e\x5c\x0a\x23\x7f\x73\x1a\x54\x61\x45\x7a\xf3\xc2\x17\x7f\xe1\xca\xc3\xcd\xa4\xa2\xc8\x26\x50\xc2\x62\x8a\x00\x4a\xc3\xfa\x02\x0b\xc2\xb8\x4e\xd6\x09\xcd\x9c\xcd\x02\xd6\x45\xb5\x7f\xa6\x08\xf5\x33\xc9\xd1\x12\x68\xb9\xb9\xef\xd4\x6b\xd7\xcf\xd1\x78\xac\x68\x85\xc6\xb3\xd3\x5f\x9e\x37\x9c\x5c\x05\x91\x30\x47\xfa\x58\x3d\x0b\x65\x75\x99\x63\xab\x01\xce\xb3\xa5\x86\xa8\xb3\x1d\xac\xdd\x1f\x56\x0f\xdc\xc1\xda\xe1\xef\x4f\x2a\xb1\x6f\x1f\xe7\x6e\xbe\x46\xbb\x22\xb7\x9b\x01\x76\xe2\xf6\x51\xab\x5a\xed\xfb\x41\x70\x2b\xa6\xe2\x4e\x26\x80\xa4\x9f\x32\x9e\x65\xfa\xde\xdd\x78\x82\x31\x76\x72\x91\xcf\x7e\xee\x86\x38\xc9\xaa\x9f\x36\xf5\x40\x12\x61\xcc\x07\x00\xf6\x5c\x42\xb5\xab\x96\x55\xd8\x54\xac\xa4\x53\x28\xcf\x98\x6a\x0a\xfa\x6c\x0b\xcf\x10\x47\xfc\x6e\xab\x69\x94\xf8\xb9\x2e\x7c\xae\xfb\xea\x49\x92\x36\x22\x42\xe1\xae\xe7\x86\xa0\x32\xd7\x93\x5c\xa4\xef\x75\xc2\xb3\x66\xfc\xda\x22\x4a\x11\xc5\xc6\x26\x5c\x01\x99\x35\x98\xbc\x83\xfb\x3f\xa1\xea\x28\x6f\xd8\xff\x62\x47\x8a\x89\x07\x69\x80\x13\x90\x4f\x41\xf1\xdc\x8c\xb4\xf5\x1c\x60\xdf\xd0\x0f\x3d\x5a\x69\x4f\x5a\x1a\xcd\xbb\xec\x27\x61\xf9\x41\xa3\xcf\x8b\xcf\xc7\x6c\x7f\xe6\x21\x6f\xb6\x4c\x4a\x63\xf5\x38\x70\xa1\x43\xfa\x3c\xe2\x35\x56\x80\x55\x90\x03\x4f\xa9\x52\x50\x51\xee\x28\xcb\x47\xfc\x00\x01\xd8\x52\x2c\x62\x59\x1a\x31\x67\x32\x40\xcd\x10\xda\x82\xe7\xee\xc0\x17\xd2\xa9\xbe\x0b\xe1\x73\xf6\xeb\x5d\x9d\x84\x6d\x65\xba\x60\x47\x6a\x82\x8f\xab\x9f\x0f\x3c\x20\x5b\xe5\xe4\x07\x48\x7d\x48\xa3\x27\x41\x8e\xa2\x32\x32\x28\x46\xa0\x98\x29\x73\xa7\x96\x34\xe2\x2a\x61\xaa\x86\x0a\x46\x48\x8b\x50\x3a\x88\x6d\xc4\x38\x40\x54\xd0\xf5\xe9\x73\x03\xc5\x47\x42\x14\x59\x04\x0b\x36\xbb\xbf\x00\x1a\x37\xf3\x69\x05\x4a\x90\x63\xd4\x76\x27\xbe\xac\x71\x41\x41\x8f\xb4\xe4\x28\x0f\xc4\x8a\x72\x99\xb9\x85\xf4\x10\x72\x21\xec\x1b\xf1\xe3\x20\x88\x2d\x54\x63\x40\xd0\xf0\x0e\x68\xf3\x19\x87\xf0\x19\xbf\x10\x90\x1e\x10\x8f\x08\x36\x2e\x7c\x26\xae\x08\xdd\x5c\xe9\x0a\xb3\x7c\x8e\xea\x5c\x89\xae\xeb\x5e\xcb\x4b\xea\x21\x02\xce\x5a\x6c\x78\xbb\x0c\xe9\xe2\x0d\xdb\xdb\x58\x2a\x39\x2e\xc7\x51\x3e\xf9\xe3\x53\xc5\x6a\xfe\xb3\x15\xd3\xe9\x80\xea\x56\xab\xb3\x48\xbe\xe1\x7d\x91\xb5\xaa\x84\x79\x14\x41\xb8\x4e\x10\xc0\x35\x64\x23\x42\xcc\xa3\x01\x2c\x1d\xc7\xd4\xfa\x12\xea\x30\xcd\xd9\x64\x9a\xff\x71\xc6\x8d\x39\x5f\x2d\xdc\xee\x2a\x7a\x35\x54\x74\xad\x9c\xcb\x60\xfa\xdc\x62\xaa\xbf\xfb\x4c\x93\x39\xb5\xcf\xed\x74\xcc\x76\xc9\xdc\xaa\x86\x41\x85\xbd\x87\xf8\x52\x2a\x7d\x57\xd9\x34\xe6\x4c\xf6\x33\x28\x0d\x7a\xc0\xde\xca\x4c\x50\x91\x4e\x69\x80\x28\x3b\xc2\x01\x28\x24\x8e\x1e\x48\x95\x64\x65\x8a\xf5\x50\xd0\xbd\x08\x61\xa8\xeb\x4e\xad\xc5\xb6\x7d\x0e\x0d\x7d\x1e\x2f\x9d\x8a\x7a\x49\x37\xf7\x60\x2a\x3a\xab\xcf\x93\x5b\xd4\x7f\xa4\xa1\x99\x7e\xa1\x98\xb2\xd8\x7c\xbf\xaa\xa4\x18\x60\x79\xe6\x81\xf0\xcc\xb3\xde\x3f\x89\xdc\xc7\x13\x5b\xf2\x6c\xae\xd8\x57\x6d\x81\x00\x41\x61\xc4\xb7\xaa\xd6\x7f\x59\xf1\xef\xf7\x03\x75\x72\x59\xe7\x49\xb4\x69\x35\x88\x93\x86\x45\x94\x02\x42\x1e\x13\x9e\x84\x8e\x72\xe5\xbb\x98\x6f\x0b\x02\x61\x66\x25\x7b\xad\x9b\x0f\xca\x20\x55\xff\x5e\x64\xa1\x4a\x2d\x7b\x35\xfb\xf0\xde\xb6\xab\x5a\x2f\x76\xf0\xb4\x3c\x77\xb5\x47\x4f\x09\x60\xd2\x06\x62\x01\xe1\x15\xe6\xf8\x1a\x03\xa4\xc2\xcc\x85\xf8\xa2\x84\xf8\x5a\x8c\xf3\x8c\xdb\x55\x22\x7d\x6b\xef\x61\x51\x31\xd4\xb7\xf2\x42\xa7\x65\x32\xcd\x7c\xd0\x58\x4d\x51\xcd\x4e\x36\x8e\x52\x25\x4e\xf3\x91\x18\x8b\x82\x67\xa4\x76\xb4\x2d\xdb\xf9\xe5\xe2\x13\x3e\x44\x40\x90\x08\xd7\x4b\xf8\xe7\x4a\xa3\x19\x9c\xa0\x24\xfc\x0d\x4b\x74\x2e\x41\x4a\xf0\xac\xf9\xf3\x31\x0a\x11\xa0\x4d\x40\x19\x47\xdb\x63\xe7\x9a\x81\x03\x8c\xf0\x6f\x11\x88\x22\xcb\xf4\x3d\xa9\x1b\x95\x8a\xe1\x06\x59\x81\x4f\xfb\xc2\x71\x73\xdd\x81\x5f\x20\x6a\xe1\xba\xd2\xb4\x92\xaa\xf0\xdb\x2c\xb1\x04\xcf\x3f\xc0\x83\x50\xde\x14\xe9\x73\x90\x8b\x83\x0b\x57\x2a\xd4\x6f\x1a\x4b\x88\x7e\x31\x61\x2b\xfc\x5b\xb2\xcc\x3a\xe9\x80\x0e\x27\xf6\x6c\x9c\xc0\xe4\x97\x15\x0b\x92\xce\x39\xa2\xb8\xe8\x46\x53\x62\xd6\x48\x2c\x29\xf2\x34\xdb\x0c\x08\x2b\xfe\x28\xbe\xa4\xf8\x8e\xac\x7a\x61\xe3\x77\x2b\x79\x91\xbc\x7f\x18\x34\xe7\x96\xd5\xa7\x3b\xba\x35\x0b\x49\x26\x94\x26\x45\xec\x65\x20\x55\x4a\xe2\xa7\x2e\x55\xca\x2e\x3e\xa3\x8b\x46\x97\x48\xf7\x78\x60\x44\x21\xb8\x52\x43\x61\x87\xe5\xe3\x92\xa6\xc3\x84\x01\x5b\x3d\xcf\xb2\x49\x87\x71\x76\x5f\xf0\x3c\x17\x05\xe3\x05\x7c\x8c\xfc\xc4\x4d\x71\x9e\xea\x5c\x54\xa1\xb1\x46\x8f\x85\x56\x82\x89\xcc\x08\xb6\x5f\x45\x6f\x1e\xb4\x41\x48\x76\xe3\x6a\x21\x8f\x1f\xfb\x76\x5e\x22\xf5\xe9\x6d\xf3\xce\xd7\xcc\xc5\xc5\xf2\x63\x88\xbe\x0b\x45\x7e\xf1\x0c\xfb\x28\xd4\xa7\xf5\xfb\xb4\x74\x7a\xa7\x1f\x55\xb6\xac\x40\xc3\x2f\x50\x14\x50\xa3\x8b\x45\x40\xf8\x8c\x7b\xcb\x49\x1c\x54\xbc\x96\xac\x56\x1f\xe0\xe0\x04\xd0\x3d\x36\xe0\x99\x99\x27\x6d\xb5\xc0\x04\x9d\x7d\x29\xab\x3d\xdd\xf6\xcd\x5c\xd1\xc1\xbb\xdc\xb7\xbb\x73\xeb\x7e\x25\x6e\xdd\xf7\xf3\x9c\xba\xdb\xd4\xfb\x1e\x57\x52\xdf\xb9\x6c\x77\x2e\xdb\x9d\xcb\xf6\xc9\x5d\xb6\x8f\xef\xad\x5d\xd1\x51\x0b\x3e\x5a\x92\x72\xda\xe4\x28\x3d\xbe\xc1\x8d\x67\x19\x83\xa2\xb1\x91\x85\x8d\xfc\x7f\x04\x62\xf7\x58\xc6\xb5\xa7\x36\xad\xf1\x7b\x73\x9a\x71\x63\x65\xf2\x53\xa6\x93\xdb\x2b\xab\xa7\x31\xe5\xda\x23\x0f\xfe\x72\x35\xd5\x59\x4d\xad\x58\xe8\xaf\x98\xf1\x72\x6c\xf3\xe0\x8a\x1d\xfd\x72\xc5\x4e\xa4\xb9\x8d\x89\x35\x8a\xe6\x31\xac\x22\xf7\x15\x33\xf6\x0c\x20\x17\x85\x18\x48\x72\x79\x29\x26\x1e\x72\x6d\x2a\x0c\x46\xd0\x20\xd6\xdc\xce\xb0\x87\xf7\x46\xe0\xe8\xfb\x6e\xf4\x06\xd6\x71\xf6\x8a\xff\x56\x16\xc2\xcd\x62\xfd\x65\xf6\x3d\xb4\x5f\x5b\xff\x46\x73\x41\xdd\xef\xec\x84\x5b\x8e\xeb\x0a\x87\xdb\x7b\x3f\x61\xed\xdc\x9a\xf5\xa5\xd7\xc0\xe2\x15\x5b\x30\xbb\xb7\x72\x1a\xd9\x7b\xb5\xd9\xb9\x1e\xa6\xc8\x44\xcb\x79\xba\x77\x67\xce\x13\x1e\x38\x36\x2e\x13\xb1\x85\xa9\xfe\x7e\xac\xd2\x47\xb3\x2a\xd8\x4f\x91\x55\xc8\x6c\xf3\x86\x6a\xc8\x6b\xf3\xe0\xe4\xcf\x03\x8e\x5b\xe4\xa3\xc1\xfa\x8e\xe6\x63\x91\x8f\xde\x5e\xad\x71\xa6\xf0\xc5\xda\x81\x62\xee\x37\xf6\xf6\x6a\xc6\x21\x02\x82\x64\x46\xbc\x80\x8c\xdb\x5c\xa7\x7b\x06\xe0\x6f\xad\x1c\xcf\x43\xb0\x96\x2a\x15\x2b\xbb\x88\xab\x79\xc1\xeb\xeb\xcc\x0b\x5e\xac\xcf\x0b\xc7\xe2\x39\x5e\x20\xaa\xc1\x02\x83\xa1\x11\xa1\x20\x51\x4c\x5d\x67\x1e\x12\x02\x0b\x0a\x85\x87\xc6\x13\xf3\xaf\xac\x8b\x5f\xe9\xe6\xe9\xe1\xe5\xe9\xd1\xc9\x87\xd3\xde\x78\x4e\xd9\x24\xd0\xab\x2f\x61\x21\xd6\x5b\x9c\x55\x42\x7d\x8e\xe9\x63\x80\x8e\xe7\x6d\xc8\xac\x2f\xbb\xa9\x2c\x44\x82\x17\x3a\xf8\x44\xfb\xc2\xde\x0b\xa1\xa6\xd5\x6b\xb7\x54\x73\x0c\x91\xa7\x0f\x39\x5a\x57\xad\xf6\x05\x0c\x95\xcc\xd0\x5c\x0b\xc6\xae\x1e\xf9\x60\xa6\x5d\xb1\x98\x62\x25\x9d\xca\x7c\x87\x8e\xd9\x6a\x04\x68\x20\xbb\xf8\x7c\xbc\xcd\x6b\x4a\xf3\x9c\xb3\x2d\x46\xae\x7f\x5c\xaf\xce\xd6\x39\xab\x57\x67\xf1\x41\xf5\xc1\x7a\x9e\xfb\x8f\xb8\x4a\xb3\x90\x99\x1e\x22\x83\xdc\x5b\x69\x21\xef\x44\xc1\xf6\x7f\x12\x96\xfb\xd8\xa4\x83\x39\x04\x7d\xb0\xbe\x2d\xfb\xed\x71\xeb\xb9\xbc\x3d\xae\xdf\xb9\xb7\xb2\x5f\x08\x76\x3c\xe2\x4a\x89\xec\x11\x24\x9b\x39\x73\xcd\xc4\xc3\x14\x0c\xcb\x8a\x73\xce\xc4\xc3\x1a\x7b\xf9\x36\x7c\xb9\xbe\x0e\x43\xa1\x44\x21\x93\x2a\xd1\xb0\xb1\x10\x11\xce\xcb\x61\x58\x14\xb4\x69\xc2\xa6\x8b\x84\x82\xb7\xf2\xac\x1c\xca\x79\x1e\x8b\x41\x06\x08\xbe\x1b\x4c\x1a\xde\x5f\x61\xb6\xd0\xbe\xb1\xe5\xf4\x63\x93\xce\x2e\xdb\xe2\xe9\xdd\x05\x2b\xb8\xb4\x06\x0b\x95\x91\x29\x3d\x15\xb9\x50\xbe\x5c\x99\x08\x5f\xa3\x40\x39\x66\x48\x02\x22\x37\x2e\x02\xfc\xcf\x5e\xad\x61\x12\x49\x61\x1b\xc9\xac\xef\x8e\x4f\xeb\x3d\xb5\x5e\xc1\xa9\x37\xeb\x6b\xf9\xee\xf8\xf4\xd1\x74\x82\x39\xa8\x17\x1b\x2b\x0b\xc3\x44\x54\x34\x37\x75\xcb\x3a\x7b\xf5\x11\x7d\x63\x03\xa1\xe7\x9d\xef\x61\x8d\x7b\x1a\xde\x6d\xac\x77\xf8\xb9\xe1\x1d\xa9\x2f\x77\x90\xa8\x37\x5d\xd7\xa6\x08\x41\x6b\x78\x18\x16\x67\x99\x10\xe1\x46\x32\x0b\x8d\xb1\xf5\x22\xfe\x95\x3a\x68\xbd\x72\xfe\x85\xfa\xc2\xa1\x18\xa1\x8b\x49\x2c\x2f\x4e\xaf\x05\x03\xe3\x94\xd3\x1b\x18\x54\xae\x45\xfc\x15\xb8\xd7\xe8\x0d\x1f\x94\x19\x96\x14\x82\x82\xc3\x50\xf1\xcc\xbf\x03\x85\xa8\xe0\x44\x0b\x0c\x04\xd6\x2a\x9b\xfc\x9f\xec\xa3\xea\xc2\x76\x78\xb6\xd9\x0c\x49\x05\xaf\xa5\x9a\x00\xf2\xa0\x7b\xfb\x97\xb3\xf7\xef\xd9\xf9\xc7\x6b\xf6\xcb\xc7\xcb\x9f\xd1\xa5\x39\x2e\x33\x2b\xf1\x5b\x01\x13\x66\xc3\x4b\xe0\x86\x94\x47\x78\xa4\x0d\x13\xb8\xd9\x44\xca\x38\xbb\x5a\x4f\xce\x80\xf7\x1a\xba\x23\xfe\xf6\xd4\x24\x66\x4e\xfa\xad\x4e\x78\xb6\xf6\xaa\x40\xf4\x7b\xeb\xb5\x80\xd6\xf1\x5a\xe0\x01\xce\x26\xdd\x30\x6b\x7f\xa0\x00\x02\x13\x0b\x37\x0e\x60\x04\xf3\xea\xfa\x3a\x1d\xe2\x63\xde\x26\x68\xa9\xca\x5a\x23\x1d\x0b\xdf\xea\x30\x40\xe1\xfe\xfb\xcd\x8b\x42\xdf\xbc\xe8\xb0\x9b\x17\x46\x0f\xec\xcd\x8b\x7f\x60\xb9\x54\x0a\x58\x10\x29\xeb\xd2\x7b\x58\x33\x55\x8e\xf3\x6c\x02\x11\xd5\x4c\x0e\x20\x39\x18\xaa\xef\x41\xf3\x2d\x8a\xcd\x87\xdf\xc0\x47\xbb\x34\xd8\xa7\xb6\xe5\xa9\x0d\x38\xc5\xf9\xdb\xab\xd6\x27\xe3\xbc\xa1\x0e\x2b\x76\x3e\x4b\x17\x7e\x3c\xfe\xe9\x26\x3a\x7b\x05\x74\x2a\x8e\xfc\x11\x5c\x77\x29\x48\xfd\x8a\xbb\x5a\xb8\x1a\x51\xc3\xe0\x01\x4d\xb4\x32\xb6\x80\x52\x9f\x48\x2c\x32\x39\x96\x16\x83\x85\x15\xc5\x6e\x56\x41\x0f\x64\x5a\x46\x3b\x30\x05\x9b\xd4\x71\xd9\xd5\x20\x2b\xab\x90\x8a\xaa\x9a\x1c\x78\x00\x75\x4a\x1f\x09\xa5\x88\xbd\x9d\x7c\xe6\x22\xe5\x0d\xba\x78\x89\xce\xfa\x0b\x9d\xc9\x64\xa9\xdf\xdd\x7d\x66\xc4\xf3\x5c\x28\x33\x07\xf1\x08\x15\x5a\x42\xcd\xa7\xc0\x19\x27\xa1\x56\x11\xd0\x32\xf5\xd7\x19\x82\x62\x2e\x05\x84\x3b\xed\xa7\xde\x45\xaf\x0b\x86\xe5\x3c\xb3\x49\x88\xbf\x69\x12\x73\x73\xd0\x61\x27\x8e\xda\x8a\xfa\x8b\x54\x71\x0b\xde\x8d\x91\x21\x67\xbd\xef\x08\xf3\x25\x15\x26\xda\xaf\x8a\x03\x1d\xf4\xc2\xaf\x3e\x7f\xa5\x62\x95\x14\xce\x4d\x53\x45\x55\x23\x0e\x98\x84\xe5\x6f\x7e\x6c\xbb\x29\x07\xb0\x90\x8e\x56\xac\xec\xbc\xcb\x47\xda\x6a\xb5\x25\x89\xfe\x62\x46\x67\xad\x49\xc8\xac\x97\xeb\xe2\x12\xb6\x38\xae\x92\x7b\xa2\x83\xe6\x44\xe6\xd5\xac\x53\x73\xd6\x43\x17\xf6\x5e\x17\x9b\x2a\xc2\x17\xb5\x6e\xda\xcc\xbe\xf6\x42\x7d\xde\x7e\x4c\x6b\x19\xe1\x66\x4f\xf3\x5f\xa5\xee\x4f\xec\xfa\xf3\xfb\x4f\x7c\xbf\xf5\xf4\xa8\x7d\x7d\x5e\xfe\xc7\x6d\x98\x4c\x8b\xfe\x94\xeb\xbf\x7d\xc2\xd1\x4f\x27\x6b\x08\x86\x97\x3f\x9d\xd4\xa7\x73\xc9\x53\x6d\x18\x78\xaa\xd8\x89\x98\xe3\x51\x58\x34\xb3\x95\x94\x9d\xa2\xbf\xd4\x56\x6a\x12\x9e\x89\xb3\x8f\x6b\xaf\xcb\x15\xbe\xbf\xc6\xda\xd0\x9b\xf5\xf5\xf1\x3f\x4e\xb3\x87\x79\x07\xfa\xe7\x40\x0f\x91\x43\x6e\x37\x1b\xa9\x96\x89\x54\x07\x97\x9e\x1e\x62\x5f\x64\x5a\x0d\x4d\x8f\x9d\x8e\x73\x3b\xa1\xb0\x11\x8f\x67\xc2\x6d\x8d\x77\xa7\x5a\x18\x4a\xe1\x73\x2f\x21\xdc\xcc\xa4\xf6\xbd\xb5\x20\x4d\xe0\x75\xbd\xbe\x40\x47\x03\xf8\xb8\x8e\xcb\x23\xbc\xdb\xd8\xd3\xf0\xf3\x02\xd5\xdf\x1d\xfe\x05\x8a\x90\xdf\xf0\x10\x6e\x9b\xeb\x74\x95\x9b\x10\x16\x66\xd9\x7d\xd8\x24\xa7\x4b\x46\x80\x67\xa0\x28\x58\xa1\xd2\x60\xb8\x87\x88\x74\x50\x79\x38\x95\xa0\x87\x00\xe1\x2a\xa1\x4b\x43\xe6\x6c\x21\xc6\x4e\xac\x91\x8a\x15\xfc\x9e\x81\x57\x18\xd1\xa1\xd6\xcb\x02\x5b\x37\xff\xcb\xe4\x23\xe1\xbd\xf0\xeb\x8b\xc4\xd4\x8b\x2c\x6c\xc9\xb3\x95\x38\xfd\xe7\x78\x00\xf5\xf3\x74\x77\x05\x8f\x36\xe5\x74\xff\x47\x63\xd6\x9b\xc6\x5c\xae\x9c\x3e\xb6\x46\xe6\x58\xab\x24\x84\x36\xb0\x54\x47\x6c\xb4\x22\x30\xd5\xfd\xa8\x26\xc2\xc2\xf9\xf6\x95\x44\xdc\xe9\x5c\x47\xac\x6c\x9b\xc2\x42\x83\x9a\xbe\x62\xa1\x5a\x76\x87\xe2\xbe\xb1\x84\x88\x93\x74\x3b\xee\x3e\x05\x75\x02\x4c\x64\x5b\xcf\x1c\xc5\x19\xac\x13\xac\xbc\x1c\xa1\xeb\x12\x41\xb5\x20\x0e\xb1\x5f\x48\x31\xa8\x42\xfd\x6a\x30\x5c\x15\x48\x85\xe3\x1f\x3e\xfb\x9b\x63\x08\xa3\x63\x3e\x5e\x33\x42\x62\x9a\xf3\x82\x7c\x1f\x29\xb3\x32\x9d\x38\xa1\x38\xcf\x20\x36\x11\xb3\xb1\xde\x9f\x3d\x59\xee\xcf\x32\x4d\x60\xfe\x55\xba\x9c\x16\xf9\xd9\x02\x99\x3f\x84\x40\x2c\xbf\x3e\x03\x73\x3d\x03\xdc\xab\xe9\x9d\xa9\xe8\x2f\xc4\xfc\x5b\x8d\x84\xa7\xc7\x3e\x90\xe6\xc7\x63\xc2\x0e\x6d\xa6\x74\x41\x20\x4b\xa1\x5c\x57\x00\x72\x3e\x7d\xe8\xb1\x9b\x17\xe2\xc1\x7e\x8f\x86\xaa\x87\x81\xc1\x7f\x28\xeb\xfe\xd5\x63\x67\x8e\xdc\x27\xd2\x66\x14\x4f\x5a\x04\x0e\xe3\x5f\x73\xb7\xa4\x54\x01\x57\x60\x9d\xab\x99\x2e\xad\x2c\x77\x76\x42\x7c\x9c\xaa\xc5\x09\xb3\x7c\x23\xb6\x5b\x9a\x0a\x06\x49\x7f\xae\x1f\x39\xaf\xd3\x45\x24\x5b\x53\x24\x70\xe2\xe6\x93\xf8\x38\x98\xaa\xac\x0f\xae\x41\xc2\x15\x2b\x4a\x85\x35\x89\xd0\x86\x75\x8d\x31\xeb\x15\x9a\x83\xb7\x48\xf4\x27\x14\xe5\x8b\xc1\x32\x64\x93\x01\x96\x65\x35\x96\xcc\xdb\x85\xd9\x3f\xeb\x30\xfb\x5d\x08\xf9\xd7\x12\x42\xfe\xc7\x46\x7f\xd6\x69\x2b\xac\xe7\x5a\x58\x75\x0c\x25\x35\x05\x01\x33\x27\x1e\x76\x9b\xeb\xe1\x66\x0c\x85\x94\xea\xf0\x98\xdb\xc5\x76\xd6\x69\x0b\x24\xe7\x0f\x8e\x7d\x4f\xd7\xac\xaf\xc4\xf7\xb0\x24\x18\x5c\xc1\x2d\x87\x0b\x1c\x2e\xa0\xa3\x91\x29\xe8\x75\x6b\x16\x75\x78\x9a\x75\x5d\x26\xe5\x3d\x7e\x1e\x82\x4e\xb7\x9c\x76\xa0\xd3\x19\xce\x9e\x59\xac\xdf\xbb\x25\x91\x94\xc3\x38\xa1\x24\xbb\x63\x67\x88\x61\xee\x1b\x44\xae\x95\xa2\xcc\x44\x1b\x16\x1e\x4a\xe9\x9e\x40\xd6\xf4\x55\xe8\xe1\x6c\xa8\x74\xf8\xf9\xf4\x41\x24\xa5\x5d\xce\xe7\xaf\x2b\xff\x0e\x14\x17\xcc\x32\xaa\xd5\x0b\x98\x4e\xf4\x80\x7c\x3e\x3a\xf8\x92\xb8\x65\x86\x5b\x69\xa8\x56\x66\x98\x8e\x78\x70\xdc\xc7\x80\xaf\xa5\xc2\xa7\x82\xd3\xe9\x9d\x4b\x1d\xd6\x2f\x2d\x93\x96\xd0\x9e\xb4\x36\x82\xea\x63\x51\xba\xad\xd4\xc0\xfd\xc1\x6d\x0a\x25\x39\x8b\x80\xef\x13\x75\x8f\xe9\xd0\xd5\x6b\x4e\x69\x71\x37\x2b\xac\x8e\xd7\x8f\x5d\x37\x60\x3d\x71\x7f\x0c\x41\x98\x32\x8e\xcd\x8d\x5d\xa7\xf7\x42\x0e\x47\xd6\x74\x98\xec\x89\x1e\xe8\x3b\x82\x27\xa3\xa8\xdb\xb1\x10\x16\xf3\x33\xa2\xc2\xaf\x7e\xc3\x22\x0c\x29\xb6\x1f\xb8\x31\x71\xce\x4e\xc0\xe4\x69\xee\xd3\xcc\xe5\xea\x30\x61\x93\xde\x41\x87\x25\x7a\x9c\x97\x00\x13\xe6\xc6\xd8\x9f\x30\x69\xbd\xa8\xef\xcb\xc5\xc3\x52\x78\x54\x35\x2f\x80\x51\xc5\x4d\x95\x32\x9e\x42\xcc\xe8\xcd\x0b\x9c\xdd\xcd\x0b\x2f\x55\xb9\x0e\xa9\x8c\x26\xcc\x70\xc4\x0d\xee\x2c\x5a\x27\xc7\xdc\x26\xa3\x00\x5a\x58\x14\xc2\xe4\x1a\xc3\x4f\xf3\xea\xe4\x5f\x8b\x62\xfc\x97\xd0\xc5\xbe\x39\xa8\x16\x77\x24\x87\x23\xbf\xb6\xbc\xc0\x4c\xd9\xfa\x9e\x6c\x19\x8a\xe3\x17\x98\x9f\x48\x2f\xea\xc3\xdb\xc8\xa9\x3d\x6f\xd3\xd6\xba\x5c\x84\xd4\x16\xf6\xbb\x76\x62\xe6\xdc\x0f\x58\x3a\x47\xec\xc7\xc2\x32\x77\xcf\xaa\x73\x63\xe5\x58\x74\x82\x15\x33\x06\x73\x6b\x68\x03\x36\x94\xe9\x5e\x6b\x04\x09\x14\x20\x47\xdd\xd0\x8f\x42\x8f\xdd\x57\x9d\xb0\x48\x60\x0d\x6e\x08\xc2\xaf\x03\x55\x2b\x4f\x4b\x41\x5e\x5a\x9d\x12\x1c\x18\x0a\x8c\x07\x9d\x88\x3f\xc1\xcd\xd7\x45\xe0\x6a\xb6\x80\xfa\xa4\x80\x30\x87\x5e\x58\x71\x27\x13\x5b\xc5\x1c\x7a\x97\x2e\x4e\xe9\x17\x02\x80\x29\x04\x2c\x15\x84\x0a\xe5\x59\x75\x23\xf0\x53\x99\x34\x78\x39\x14\xa5\x5a\xc5\xe7\xd9\x7d\xcd\xdd\xf3\xc6\xb9\x86\xfe\x80\x48\x1b\x88\x9c\x26\xb2\xe0\x6e\x3f\x16\x73\x0e\xfe\x59\xa0\x7d\xd3\x2a\xf2\xc6\x19\xab\x9b\x1e\xe4\x8d\x4d\x2b\x8d\x01\xcc\x67\x73\x27\x55\x99\x2f\x61\x43\x58\xc0\xbe\x72\x3a\x81\x3b\x4c\x8e\xac\x03\x41\xf1\x2a\x4b\x16\x23\xc9\xb1\x42\x64\x18\x5c\x4e\xa7\x75\x28\xef\x84\xaa\x70\x04\xf6\xcd\xc1\x41\xe4\xfb\x70\xa7\xa0\x02\x9b\x4f\x74\x37\xd3\xe0\x3a\x67\xfb\xfe\x60\x43\x79\x5d\x77\x98\x6a\x0f\x95\x95\xdd\xaa\x85\x23\x54\x1d\x86\x35\x7d\xa3\x66\x10\xc1\x8a\xb5\x70\xb9\xf1\xf1\xa9\xa8\x92\x03\x95\xbc\x87\xb9\xdc\x79\x1b\x7a\x98\x0b\x12\xbe\x5b\x31\x61\x37\xe5\xcb\x97\xdf\x25\x56\xe7\x3a\xd3\xc3\xc9\xcf\x62\x02\x3f\x88\x88\xa0\x72\x82\x88\x99\x60\x97\x5a\x11\xc9\xc5\x9b\xe2\x59\x4b\xb4\x90\x32\x8c\xa4\x4d\x55\x87\x18\xa3\xef\x99\x60\xff\x85\x73\x11\x14\xe6\x4e\x30\xfc\x26\x8e\xbc\xb8\x69\xce\xf1\xb9\x55\x05\x61\x97\xd0\xd7\xaa\x61\xa0\x65\x9e\x99\x45\x8f\xa6\x4f\x1f\xcf\xf3\x4c\x22\x30\xe1\xbe\xdf\x24\x3e\xe4\x52\x19\x7b\xf0\x17\xa6\x4a\xc7\xee\x0b\x26\xc0\x1b\x47\x09\xc0\x5c\x19\x76\xf3\xc2\x9f\xc6\x3d\x53\x7d\xe0\xe6\xc5\x53\x07\x5e\x45\x27\x6d\xa9\x74\xb7\xd5\xdb\xe3\x49\xb2\x59\x74\xb5\xa7\x8a\xcc\x57\x5b\xf1\x28\xb7\x2f\x5a\x8d\x36\x37\x4e\x4d\xaa\xfb\x96\x61\x82\x4c\xe3\xc6\x79\x3f\x6c\xdc\x31\xc5\xb0\x12\x8a\xd1\x96\x6b\xe5\xc7\xfb\xb9\x05\xbb\xe4\x91\xb2\xb2\xad\xa2\xa2\xac\x6c\xa1\xad\xd4\x5a\x7d\x25\x2a\x4b\x7c\xba\x77\x7a\x4b\x3b\xbd\x65\xde\x9a\xed\x94\x97\xf0\xf3\xd7\xa7\xbc\xd4\x36\xfd\xcb\x69\x30\xab\x0f\x63\xa7\xc6\xfc\x81\xd5\x98\x56\x25\xd7\xa2\x66\x15\x18\x87\x0f\x5f\xf0\x80\x6f\x3e\xc0\x22\x89\xf1\x4c\xbd\x20\xd8\x82\xf9\xed\x8a\xae\xed\x8a\xae\x6d\xa7\xe8\x9a\x56\xa2\x7b\xaf\x8b\xb4\x13\x85\x74\x44\x35\xd4\x6a\xeb\x35\xa3\x8e\xda\xb6\x2a\x9d\xcd\x2e\x4d\xe9\x01\x75\x6a\x7e\x8c\xea\xa8\xb1\x63\x4c\x3a\xb8\x2e\xdc\x4c\xde\xf2\xcc\x88\x0e\xfb\xa4\x6e\x95\xbe\x5f\x3d\x41\xe3\x5e\x17\xb7\x99\xe6\xa9\x39\x74\x12\x80\xfb\x4f\x37\x93\x03\x0c\xa2\xff\xc6\xfd\x15\x81\x15\xaf\x3c\xe9\x59\x45\xda\x9a\x12\xe8\x24\x0f\xb9\xf2\x1e\xbc\xb1\x31\xdd\x2f\x3e\xa3\xb6\xba\xc7\x23\x95\x8f\xd3\xe9\xc9\xf9\xd5\xb1\x56\x03\x39\x5c\x4c\x81\x43\xb3\x5a\x9c\xc1\xc9\xf9\x15\xcb\x79\xc1\xc7\xc2\xb1\x31\x8a\x6a\xd3\x98\x3a\x98\x7a\x8a\xa0\xc9\xce\x04\xa9\xdc\x15\x6c\xea\xc9\xf9\x15\x26\x97\xb4\x20\xce\xa0\x9b\xa2\x9b\xbc\x75\x86\x98\x1b\x1b\xa0\x63\xe2\x8b\xec\xec\xc2\x8d\xc9\xc9\xc2\xc2\x90\xd7\xce\x23\xdc\x42\xe6\x4a\x5a\x45\xaa\xf6\xdd\x95\x8d\xbe\x39\x7f\xe8\xec\xa4\xcc\x33\x89\x3a\x72\xfc\x42\x85\x9d\x3b\xd6\x77\x6d\x39\xf7\x16\x6d\x0f\x7a\xc5\x74\x3a\xb7\x58\x4e\xc5\xc8\xdc\x4a\xd1\xcb\x8d\x45\x02\xb4\xea\xb4\x12\xc5\x61\x91\x7c\xc6\x4e\xab\x05\x12\xca\x16\x60\xfa\x69\x2c\x0e\xbb\x74\x5f\x46\xd1\x2e\x74\x08\x96\x46\xa9\x18\x25\x06\xe2\x4b\xfa\x4e\x14\x85\x04\xed\x49\x1b\xd2\xa1\xdc\xe6\xf1\x60\xcf\x80\x51\xcd\x38\x5a\x8b\xd6\x7d\x15\x89\x29\xdc\x03\x1c\xd7\x46\x9b\x64\x04\x2f\x9c\x36\xb4\xd2\x2e\xe1\x4b\x2c\xd5\x63\x10\x83\x1c\x47\x19\x69\x63\xbb\x70\xd4\x33\xad\x6f\xcb\xbc\xcd\xe9\xa6\x6e\x72\x6e\x47\x2d\x77\xaf\xf6\xc6\x17\x39\xdf\x5b\x90\x37\x9b\xdb\xd7\x8e\xe6\x61\xe3\x40\xf9\x66\x5d\x96\x40\xfb\x5a\x52\xb3\xa5\xe1\xa1\xc8\x05\xd6\x89\xed\xe6\x59\xb9\x41\xf9\xd2\xd5\xd7\xf4\xec\x62\xc1\x32\x56\x54\x37\x2e\x7f\x8d\xb6\x10\x22\x07\x74\x73\xf7\xf3\xac\x2c\x78\x76\xc0\xa0\x4b\xd2\x0e\x7b\xec\xd4\xa9\x4e\xae\xe9\xc4\x07\xbe\x9b\x37\x37\x8a\x31\x76\x76\xf1\x86\x1d\xa9\x88\xac\x83\xd9\x0f\xcf\x6a\x9c\x4b\x7d\xa9\x4b\x0b\x72\x22\xb7\x2c\x13\x4e\xd8\x72\x24\x8c\x3e\xea\xd3\xd6\x97\x6f\x9a\xcc\x97\x6c\x99\xcc\xc1\x32\x57\x1b\xd1\xfe\xd9\xc5\xdd\xf7\x4e\xfb\x3c\xbb\xb8\x7b\x7d\xc0\xb8\x31\x72\xa8\x6a\xe3\x7b\xaa\x60\x5c\x9d\x2e\x03\x0d\xc6\x16\x0d\x9c\x60\xb0\xfe\xef\xc2\x15\x9f\x71\xb8\xe2\x4a\xa8\xc0\x6e\x3b\x1f\x79\x2e\x5b\xe7\xb8\x3b\x3c\xe0\x5d\x30\xe7\x0e\x0f\xf8\x29\xe2\xf0\x1e\x01\x02\x58\xa7\x97\x82\xa7\x8e\xd0\x9b\x77\x4b\x4a\xbe\x34\x9a\xd6\xeb\x5c\xd5\xaa\x8d\xa1\x8e\x19\x54\xed\x16\xd5\x15\x7c\xd3\x16\xc9\x1f\xc7\x71\x5b\xfc\x2e\x61\x1a\x54\x46\x2e\x12\x1e\xd0\xc3\x5c\xfd\x0c\x87\x0e\xf4\xa3\xca\xef\x3a\xc9\x5b\xe7\x4e\xb5\x3c\x2f\xf5\xc9\x6c\xc1\x02\x70\x25\x92\xb2\x90\x76\x72\xac\x95\x15\x0f\x4b\x64\x84\x46\x63\x36\xd2\x59\x0a\x26\xd6\x6e\xe6\xae\x0b\x33\xf4\x3c\x2e\xa4\x0b\xa8\xa1\x58\x5e\x37\xa4\x56\xf8\x9a\x0c\x8e\x64\xea\xa8\x58\x8a\x2f\x87\x42\x14\x15\x2a\xdd\xf9\x77\x7a\xa6\xfe\xf1\x1e\x63\x6f\xc1\x85\x80\x5c\xba\x96\xba\xd1\x6c\xcb\x2c\xbf\x15\xae\xd7\x44\xa4\x70\x8e\x20\xfc\x61\xd0\x78\x7d\x7a\x82\xad\x72\x8a\xde\xd1\xd5\x5a\xac\xc5\x81\x03\x84\x67\x90\x2a\x84\xde\x03\x9e\x91\x1f\xd7\x2b\xb2\x3e\xdc\x81\x67\x59\x9c\x85\x02\x60\x4b\x20\xcc\xc2\x5a\xf9\x3c\x5b\xac\xd8\x99\x65\xfa\x1e\x8e\xe3\xcf\x98\x11\x09\x75\x1c\xa1\x7c\x0d\x3a\x28\xef\x5d\x17\x23\x99\xa3\x50\x55\x55\x4a\x41\x8f\x4b\xa8\x5e\x42\x07\xfa\xcd\x8d\xba\x51\xaf\xd0\xfd\xa9\xef\xc1\xcb\xff\xee\xec\x24\xe8\x7b\x80\x1c\x77\x05\xf3\x65\xdf\x52\xad\x1b\x61\x87\x32\x65\x7d\x09\xb2\xa3\x11\x96\xed\x2b\x71\x8f\x09\x52\x21\x2d\x86\x6e\x4c\x5c\xe0\x34\xfe\x38\x75\x79\xc0\xbe\xc3\x3e\x73\x51\x8c\x25\x38\x2d\x5d\xbf\x78\x2c\x3e\x5e\xee\x91\xf5\xa1\xb8\xef\x16\xf7\xdd\x6e\xb7\xeb\xc6\x0a\x95\xc9\x8c\xb0\x9d\xda\x1a\x04\x9f\xd5\x58\xa7\x92\x7c\xc9\xd5\x4a\xb8\x03\x59\x7d\xc2\xf8\x10\x84\x99\x45\xd7\x50\x67\x01\x01\x5f\xd9\xd7\xdf\xcf\xbe\xcb\x4e\xa4\x1c\x8a\x62\x0e\xb8\x20\x9e\x8f\x63\xd8\x93\x56\x78\x2a\x33\xde\x08\xf2\x72\x1c\x96\x0f\xdb\x0c\x81\x18\x73\xa6\xe6\x2d\x9e\x21\x83\x7d\xe0\x18\x21\x42\xfc\x79\xdc\x29\x09\x25\x3f\xdd\xd1\xaf\x81\xcb\xa0\xbd\x45\x65\x13\x38\x97\xe0\x33\xab\x9d\x3b\xf4\xe7\xfa\x72\xb2\x34\x62\x5f\x28\xd7\x0f\x67\xbf\xb1\xd2\x07\x3d\x76\x46\x9b\x33\xe2\x77\x82\x29\xcd\xc4\x60\xe0\x64\x28\xad\x98\xf0\x75\xb9\xea\x1f\x32\x65\x32\x62\xdc\xbc\x71\xa4\xa5\x70\xfb\x9c\x80\x4e\x3e\xe6\x39\x52\x16\x88\xff\x49\x65\xe1\x41\x64\xe8\x36\xbb\x23\x73\xf3\xe2\xa3\xba\xd4\xda\x7e\x90\x06\x28\xf2\xcd\x0b\x78\xe3\xe6\xc5\x51\x76\xcf\x27\x98\x6e\x37\x40\xd4\xb3\xaa\x4a\x2f\xc2\xc6\xc0\x35\x8c\x1a\xae\xe1\x33\x28\xd5\x51\x2b\xca\xe0\x0e\xbc\xbb\x63\x56\x43\x96\x19\x4a\x89\xb6\x98\xa0\x9c\x58\xd9\xac\x89\x70\xe6\x85\x4e\x84\x31\x3d\xf6\xc9\x08\x08\x86\x01\x2f\x8c\x47\xbb\x91\x74\x1d\x7a\xec\x03\x9f\x20\x29\xa5\x92\x7b\x52\xb1\x26\x6d\x63\x6e\xfa\xf4\xac\xaf\xed\xa8\xd9\x00\x31\x64\xa7\x68\x22\x15\x2b\x06\x31\xb9\x5a\xb8\xe9\xfe\x81\xe6\x9a\x98\xe8\xa2\xff\x83\xdb\x88\x4e\x6f\xfb\xb6\xc1\xb2\x9f\x6b\xd8\xf7\x65\xae\xf3\x90\x77\x4c\x31\x8c\xf1\x32\x83\xf7\xd5\xed\x07\x37\x10\x40\xa2\xba\x85\xd6\x00\xa6\x54\xa0\xb7\x1b\x3c\x24\x53\x34\xc7\x63\x8d\xc1\x13\x39\xe6\x43\xb0\x3b\xf8\x5d\xb2\x9a\x09\x65\xca\xc2\x47\x95\xd8\x0a\x28\x82\x3e\xf5\xe9\xec\x84\xbd\x64\xfb\xee\x5b\x07\xb0\xfc\x00\x4f\x66\x35\x33\x96\x17\xcd\x31\xca\x81\xef\x82\x2a\x34\x42\x30\x5f\x81\xe5\x8c\x3a\xee\x76\xc1\xe5\xa9\x0a\xb6\x05\xca\x9b\x8b\xc2\x2d\x35\x54\x2c\x78\x7e\xe7\xa4\x75\x25\xa6\xe6\xbe\x7f\x32\xd3\x20\xae\x33\x6e\xdb\xa7\x35\x6e\xdb\x49\x44\x17\xdc\x21\xa8\xcf\x08\x77\xda\x2b\x1c\xcd\x0c\xdd\xe7\xb8\xc6\x4f\x71\x17\x8d\x78\x2f\x55\xf9\x30\x07\xdb\xaf\x3d\x68\xc9\x69\xad\x9b\x45\x0a\xa0\xdb\x5d\x6a\x8e\x75\xfd\x1e\x2c\x09\x3a\x28\x5d\xa5\xd3\xd2\x95\xbf\x3a\x7e\xf1\x3a\x8d\x13\xe0\xef\x2e\x5c\x1d\x6f\x62\x64\x9c\x15\x5c\xa5\x7a\x3c\xf5\xb5\x10\xe5\x55\x2d\x2b\xfb\xdd\xec\xff\x9c\x5d\x4c\x12\x3d\xce\x2f\x0a\x3d\xd8\xa4\x82\xc3\x55\xbd\x9b\x65\xbb\x48\x5f\x0d\xf6\x75\xbc\x76\xa1\x70\x76\x4d\x38\xae\xc2\x3c\x66\x4f\x20\x12\xb8\x81\x21\xb7\xf7\xb8\x80\x78\x6e\xe2\xc3\xe3\xbe\x3e\x90\x05\x84\x9c\x01\x69\x00\x32\x22\x55\x63\xd3\x3b\xd3\x3e\xd0\x68\xd4\x7b\x6e\x27\xe4\xf8\xff\x67\xef\xdd\x9b\x1b\xb9\xad\x7d\xd1\xff\xcf\xa7\x40\xc9\xf7\x94\xa4\x14\x49\xcd\x78\xbc\x9d\x7d\x66\x57\xea\x94\x2c\x69\x62\x9d\xcc\x68\x18\x49\xb6\x6b\xdf\xab\x5d\x09\xd8\x0d\x92\xd8\x6a\x02\xed\x06\x5a\x12\x53\xe7\xc3\xdf\xc2\x5a\x0b\x8f\x6e\xbe\x5a\x14\x35\x9e\x38\xac\x54\xc5\xa3\x26\x1a\x8d\xe7\x7a\xaf\xdf\xe2\xd5\xdc\x71\x7e\xdc\xfb\xc6\x11\x54\xda\x7f\x3a\x78\x71\x72\x72\xe1\x38\x49\x75\xd5\x95\x5d\x61\x6e\x5b\x77\x93\xd7\xdd\xe5\x6d\x7c\x5a\x73\x93\xd9\x62\x63\x30\x02\xb6\x02\xed\x31\x31\x37\x87\x10\xe4\x9c\x51\x3f\x08\xab\xd3\x28\xea\x38\x84\x68\x42\xa7\x07\xd4\x2a\xa2\x2e\xf8\xf6\x47\xed\x03\xe2\xef\xef\x31\x9b\xc9\xc9\xd4\x06\x7e\x5a\xf0\x5a\x65\xd3\x1d\x3b\x08\x71\x5e\x2f\x5a\xc0\x47\xa9\x72\xfd\x68\x5e\x4a\x33\x7f\xc1\x6e\x5a\x54\xa0\x2b\x09\xa5\xb7\x43\xdd\xa5\xa0\xad\x3f\x97\x8c\xea\xe0\xbd\x05\x97\x0b\x6f\x5c\x81\x36\x89\xf2\x47\xdd\xed\xf9\xe0\x8b\x8b\x1c\x3b\x75\xb6\x6c\xaa\x75\x85\x2d\xd0\xec\xdc\xaa\xc2\xd2\xd5\x8b\xc8\x33\x2b\x1f\xc4\xb9\xe0\x79\x21\x95\xb8\x11\x99\x56\xf9\xa6\x7b\x87\xfb\xcf\x0b\x96\xd7\x15\xf7\xa6\x2c\x83\xaf\x86\x08\xc8\x19\x9f\x23\xee\x28\x64\xfe\x10\x72\x1d\x04\xf3\xa6\xe9\x40\x50\xb7\xfb\x56\x46\xad\x32\x09\xb9\x44\x56\x09\xef\x3b\xcd\x11\x23\x2e\x67\xbc\xba\x77\xe2\xaa\xbb\x80\x04\xe7\x74\x0f\xed\x8c\xd1\x99\x04\x2b\x41\x7a\x9a\x10\x0d\x6b\x16\x00\x57\x4a\x6d\x24\x7c\x9b\xa8\xd4\xce\x85\x15\xfe\x52\x84\xd8\x4e\xb8\xb0\xee\x54\x37\xaf\x08\x5a\x11\x93\xe8\xdb\x04\x25\x76\xc5\x48\x6b\xab\x01\x90\x86\xaa\x16\x9d\x66\x99\xfb\xeb\x56\xdf\x8b\x8d\x0e\xb8\x35\xaf\x26\x38\x4c\x8f\x53\x01\x25\x6f\x79\x28\x0b\xc0\xb1\x21\xb3\xd0\x32\xe6\xa9\xc0\x58\xb8\x25\x6c\x55\x5f\x06\x6d\x0b\xf9\x3d\xee\x7d\x47\x67\x56\x22\x02\x20\xc8\x1e\xc5\xda\x06\x46\x71\x16\x1b\x64\xe8\x4c\xa1\x18\xd1\x62\x1e\x19\x2a\x24\xb9\x51\x18\xca\x2d\x84\xf9\x86\x23\xe7\xdd\xc5\x5a\x35\x74\x2e\xa8\xe5\x0c\xfd\x2f\x78\x68\x76\xcb\x4c\xc2\xf8\xbb\xf2\x93\xc6\x4f\x9b\xaa\xd5\x43\x10\xc2\xa6\x37\x3a\x56\xab\xcf\x95\x59\x88\x21\x7b\xde\x5c\x1b\x81\x68\x6b\x3d\x3c\x21\x81\x6c\x4d\xfc\xd9\x80\x0d\xe3\xc3\xc8\x06\x60\x7b\x5b\xe1\x4c\x3e\xb1\x31\x44\xc0\xb8\x2e\xd1\xc2\xe4\x49\x24\xd9\xb4\x54\x1a\x56\xb4\x6a\x19\x3a\x99\xf7\x6e\x84\xc5\x91\xa3\x65\xaf\x21\xdd\x9c\x37\xcc\x4f\x67\x18\x9e\xf0\xc1\xc9\x9b\x77\x07\x4b\x2c\x5c\x87\x69\x8b\x5f\xa4\x9d\xfe\xa8\x8d\xbd\x12\xf6\xb0\xd7\xfc\xc9\xfd\x4d\x5d\x1f\xba\x33\x7f\x78\xa5\x95\x38\x1c\xb4\x17\x30\x44\x5d\xc5\x70\xbf\x55\xe1\x5f\x34\xf8\x90\x9d\x05\x3f\x24\x91\x43\xb7\x1a\x4d\x7c\xee\x0b\x5e\x0a\x70\xfc\x9c\x03\x1e\x26\xb4\x9e\xe2\x58\x1f\x75\x75\xdf\x63\x73\x5d\xe3\x0b\x56\xd3\x96\xcd\xd3\x45\x12\x4f\x01\x16\xcb\xea\xd5\xd3\xde\xc2\x4e\x27\x14\x1f\x15\x82\xe8\xe1\x47\xa9\xee\x37\x11\xa0\x8b\x85\x17\x96\x50\xce\x34\xd8\x05\xa3\x90\x89\x92\x9a\x84\x78\x4a\x45\x95\xf5\x01\xf7\x12\x19\x81\x50\x0f\xb2\xd2\x0a\x8a\x36\x3c\xf0\x4a\xba\x6f\x99\x5e\x33\x93\xcf\xcc\x95\xe5\x4f\x10\x11\x86\x45\x5c\x0a\x37\x8a\x01\xf3\xec\xfd\x7d\xe3\x18\xd9\xaa\xde\xca\xa2\x12\xec\xb1\x67\xcf\x25\xcd\xd1\x92\x9b\x10\x69\x52\x93\x82\xae\xc6\x2e\x96\xb5\x22\xe1\x83\x1a\x43\x09\x1f\x89\x55\x2b\x9c\x68\xe2\x56\x09\x2d\x57\x60\x83\xe9\x03\x49\x81\x6b\xcb\x33\x3a\x62\x68\x2d\x66\xb9\x18\xd5\x93\x09\xa4\x09\x82\x51\x1b\x54\x8c\x2c\x50\xec\x48\x14\x00\x56\x13\xdc\x14\x90\x3b\xe5\x3e\x83\x21\x21\x32\x6d\x0f\x6e\x04\xca\x5d\x01\x6a\xef\xb7\x02\xb2\x36\x4b\x91\x81\x77\x5e\x57\x39\xa6\xb7\xf1\x3c\x87\xb1\x2f\xce\x10\x35\xb8\xc6\xac\x7a\x84\xd0\xee\x45\x81\xf0\x56\xb2\x2c\xa6\x1e\x05\x94\xbb\x06\x04\xbc\x61\xbc\x28\xa7\x9c\xbc\x6f\x84\x0b\x08\x66\xfb\xa9\x86\x6c\x22\xa8\x4c\x4f\x41\x09\xa0\xee\xe3\x79\x87\xef\x5d\x2c\xee\xb0\xaf\x86\xb5\x63\x5e\xb6\xf8\xa5\xaf\x9e\xa9\x39\xea\x74\x5a\x48\x6e\x36\x06\x68\xfe\x18\x5b\x52\x08\x98\xf6\x72\xb6\xd7\x6c\x01\xf8\x0d\xb6\xe7\x72\x48\xfb\xe0\x09\x6b\x93\x08\xc4\x63\x80\xaf\x8c\x65\x21\x98\x4c\x84\xc6\x58\xf5\x05\x76\x19\x6c\xbb\xc0\x42\x94\xc6\x82\x2e\x44\x51\x29\x73\x7b\xa7\xbb\x18\x26\xfa\x2a\x9b\x27\xcb\x5d\x6e\xdd\xe5\xf0\x6c\x53\xbe\x06\xdd\x3a\xd7\xfa\xd0\x30\x59\x66\xd1\x00\xb1\x84\x96\xba\x9b\x0b\x86\xf5\x6d\x68\x69\xb2\x31\x1d\x0e\x13\x53\xd8\xd4\xa7\x81\x0a\x63\x83\x15\xc4\x53\xcf\xd6\xe8\xe9\x8d\x74\x06\x97\x14\x44\x87\x87\x91\x9c\xb3\x5e\xe7\xa8\x6c\xeb\x18\x82\xa1\x25\xa4\x9c\xc5\xd3\xb6\xab\xd9\x0f\x37\x42\x4e\xb6\x66\x54\xca\xfc\x75\xf7\xa3\x43\x18\x6e\x53\xda\xf4\x2f\x79\x2f\xc1\x50\xe7\x0b\xfe\xc3\x5e\xeb\x06\x43\x7b\xbf\xc6\x06\xbd\xf3\x9c\xf4\xe4\xbe\x4f\xa9\x07\x81\x6e\x0b\xd1\x05\xbc\x0e\xc3\xba\x28\x6e\xc0\x35\xba\x89\x4e\x5d\xb6\x9a\xaf\x22\x56\x21\xd8\x06\xc4\x07\xe3\x1b\x13\x60\x80\x9b\x50\xd8\x17\x6f\x96\x75\x67\xb3\xac\x0b\xca\x3f\x0e\xb9\xfb\x30\x40\x32\xe2\xf9\xac\x4f\xb2\x7d\xa0\x81\xa7\xb1\x6c\x10\x96\x8e\x1f\x0b\x7e\x2a\x6e\xa8\x36\x92\x13\xb1\x1e\x64\x5e\xf3\x02\x3e\xe4\x44\xac\x99\xb7\xea\x22\xeb\x27\x39\x7a\x46\x63\x1a\xb0\x0f\xba\x62\x84\x18\xde\xf3\xc3\x07\x50\x0b\x3d\x66\x39\x08\x4e\x3d\x24\xa2\x28\x45\x91\xc0\x8b\x70\xae\x34\x0e\x27\x63\x13\x23\x7d\x76\xb2\x50\x64\xdf\x27\xb8\x0e\xdf\x90\x5c\x2b\xd5\xa4\x0f\x4f\xdc\x44\xe8\x4b\x7d\xad\xfa\xbc\xbf\x10\x10\xfc\x52\x8a\x0d\xe5\x9a\xda\xf5\x4e\xbf\x76\xce\xeb\x26\xf4\x6c\x99\x13\x45\xc1\x42\xfe\x83\xa7\x79\xa2\xab\xad\x03\x97\x4a\xda\xb4\x95\xdb\x69\xcc\x30\x46\x83\x21\xca\x72\x65\x25\x11\xb7\xbd\xd1\x1f\x00\xfa\x5a\x5e\x59\xb2\x53\xba\x13\x2f\x1b\xfd\x81\x95\xcb\xc4\x1c\x6a\x89\xc5\x7f\x64\x2e\x08\xcf\x17\x54\x9d\xc4\x14\x96\xd4\x2b\xe5\x59\xa6\x2b\x9f\x39\x8c\x71\xa1\xf0\xb1\xa0\x59\x4d\xf1\x02\xc2\x81\xe7\xaa\xfd\x65\x10\x05\xaa\x59\x43\xe8\xf4\x74\xbd\x86\x14\x45\xc6\x67\x4e\x07\x5b\xb0\xdf\xb6\x56\xc4\x67\x4c\xc3\x50\x3f\xfa\x34\x37\x2f\x69\xf7\x58\x08\xd7\xc3\xac\x55\xd3\x63\x1f\x9d\xfa\x98\x3e\xd0\x15\xda\x09\xeb\x92\x1e\xe1\xe8\xbd\x28\x7b\x9d\xe6\x87\x63\x70\x77\x6b\x32\x90\xe3\xcf\xd1\x38\xe5\x28\x27\x59\xa1\x28\x2b\x3c\x31\x9a\x8d\xe6\x6c\x4c\x55\x78\x53\x9c\x00\xe2\x9e\x27\x58\x68\x29\xf8\xe6\x62\x18\xef\xbc\xa4\x08\x70\xa8\xc5\x86\x85\x43\x01\x54\x00\xf5\xab\x10\x33\x85\xc8\x26\x55\xc0\x38\xd0\x1e\xe3\xa0\xb9\xd2\x66\xc0\x3e\xca\x99\x0f\x59\x4a\x8c\xe5\xb2\xb5\xb8\x60\x46\x32\x72\x26\x0b\xee\x0e\x8b\x99\x42\x3a\x62\x7b\x0b\xba\xd9\xad\x96\x84\x0a\xbf\x2c\xaf\xd1\x0d\xb6\x9f\x90\xaf\x7f\x55\xbb\x96\xd2\xb9\xe8\x52\x4d\x84\x9a\xa1\x39\x9f\x8e\x5c\x03\xe5\x24\xc0\x63\x01\x6a\x02\x8f\x7e\x95\x00\x9e\x80\xd1\x73\x4e\x86\x87\x78\xa6\x5e\x8a\x06\x22\x2a\x5f\xab\xce\x3f\x30\xad\x1e\xad\xaf\x20\xd6\x63\xdc\x98\x7a\x16\xe0\xe3\xdd\xa1\x27\x12\x12\xe1\x43\xfc\x95\xdb\x42\xe2\x70\xdf\x58\x85\x61\xd5\xad\xc2\x7d\xd7\x24\xb0\x25\x6b\x1c\xb1\x8b\x10\xd0\x8c\xfe\x22\x64\x11\x22\x71\xb6\xaa\x45\x6a\x52\x03\x31\x51\xda\x88\x55\x34\x60\x37\x4b\xde\x04\xfb\x0a\xb5\x80\xa4\xec\x91\x48\xc0\x05\xa8\x9f\x16\x00\x46\x5c\xf6\x6d\x64\x83\x68\x61\x3c\xc1\xbc\x20\xc7\xfd\xa1\x98\xe6\xc9\xf3\xcb\xe0\xeb\x07\x51\x4d\x05\x5f\xc8\x75\xe8\xb6\x27\xcf\x0e\xcb\x1f\x04\x63\xc4\x5f\x6b\xae\x6c\xa3\xb4\xe3\x86\x8d\xfc\x4c\x23\x4d\x8b\x7e\xd8\x84\x27\x30\x3f\x95\xd4\x31\x84\x61\x9f\x84\x3a\xc5\x43\x89\x63\x4e\x06\xcb\x6b\x74\xf1\x62\x59\x9d\x85\x20\x46\xf2\x52\x94\x01\x86\x97\x5b\xa8\x38\x88\x11\x92\x10\xdb\x41\x4e\xe3\xb4\x9f\xa4\x49\x16\x10\xef\x03\xce\xc9\xc6\x96\xee\x8c\xa2\xa5\x25\xef\xc5\x29\xc1\x51\xf3\x26\x28\x74\x6e\x3a\x25\x02\xa3\x64\x43\xfe\x07\x32\xc9\xcd\x9f\x80\xd9\x51\xd6\xd2\x92\x6e\xe8\x78\xa3\x51\x75\x9a\x2e\x6c\x51\x09\x9e\xcf\x19\x84\x09\x5e\x8e\x9b\x5f\x42\x49\x05\x0e\x27\x89\x26\xc1\xc4\x4b\x22\x34\x09\xf0\x3d\x16\xb6\xb2\xa5\xdf\x44\x17\xac\x57\x70\xbc\xf0\xdd\xc0\x45\x49\x3f\xdb\x63\x00\x0b\xf1\x28\x8d\x70\x34\x8b\x66\x06\xa5\x72\x30\xaa\x0d\x58\x34\x05\x13\x73\xc3\xfe\x21\x2a\xbd\x29\xad\x43\xa8\x29\x57\x19\x92\xba\x93\x7b\x51\x1a\xc8\xe5\x80\x0b\xf6\xed\x9b\xb7\xff\xeb\xcd\xb7\xdf\x7e\x0f\x57\xce\xaf\xcb\x60\x96\xaf\x33\xad\x81\x84\x92\x94\xa3\x7a\x78\x3b\x78\xfb\x7d\xef\xb9\x26\xb7\xa1\xce\xc3\xb2\x2d\x37\xb5\x75\xb9\xee\x65\x25\x1c\x9b\x90\x5a\x75\x72\x38\x0c\x5b\xcd\x3d\x28\xc2\x30\x3a\x20\x7c\x8f\x68\x92\xa4\x00\x8b\x42\x3f\x7a\x19\x58\xda\xf9\x80\x7d\x56\xa0\x3b\x5d\x89\x07\xa7\x3a\x51\xaf\x1f\x5d\xa3\x61\x68\x93\x5a\x9e\x97\xb5\x48\x22\x54\x9b\x8b\x3d\x12\x96\xd6\xba\xc7\x26\x29\x5c\xf6\x95\x56\xc3\x30\xba\xd0\x0d\x2d\x5e\x7f\xb2\x65\x75\x1a\xea\xa7\x43\xb4\xa0\x6f\x4a\x6a\x3a\xfb\x99\x57\x52\xd7\xc6\x3b\xbb\x33\x3d\x2b\xb5\x02\x3a\x16\x2a\x6d\xe2\xa4\x80\xf3\xa0\x68\x19\x3b\x49\xa1\xc3\x01\x5c\x28\xcc\xe8\x34\xdc\xf1\xb3\xe5\x64\x44\x02\xcc\xd5\x83\xff\x54\x45\x69\x65\x14\x9b\x91\x7c\x19\x09\xc8\x52\x9a\xe1\xa9\xa0\x49\x07\x0a\xdd\xf8\x71\x84\x1a\x6a\xd8\x0b\x48\xd2\x55\xbc\xd3\xbd\x28\x5f\x57\x8d\x99\xad\x73\xc8\xbf\xfb\x76\x0b\x87\x7c\xd9\x1e\xd0\x66\x24\xac\xc4\x9e\x20\x93\xe0\x5e\x6f\x90\x89\x27\xf9\xee\x80\x4c\x30\x8e\x1c\xf4\xb3\x4a\x82\x07\x3b\xc4\x87\xd3\x8f\x94\x1d\xdc\xf8\xdd\x29\x24\x8f\x3a\x24\x73\xdc\x8b\xf9\xa3\xae\x02\xbe\x99\xff\x6a\x43\x09\xa1\xcf\x22\xf4\x01\xb9\xcf\x20\xfa\xb6\x22\x5d\x72\x49\xe3\xf9\x80\x9d\xaa\x39\x52\x45\xd4\xf6\xbc\x80\xe3\x69\xea\x68\x9e\xba\x2d\x1a\xbb\xe7\x13\x13\xe9\x6b\x4e\x48\x81\xfd\x5c\x69\xac\x8a\xc7\xd3\x93\x72\x1f\x4f\xae\x2b\xa0\xb5\x84\xe9\x56\x51\x99\x70\xff\xf3\x76\x50\x3a\x31\xc9\x6b\xa3\xc5\xaa\xb1\xa5\x1c\x98\x82\x57\x3a\x27\xe8\x6f\xa3\xf1\x0a\x77\x38\xb9\x37\x93\xba\x29\x85\x96\x03\x76\xea\x75\x70\xe4\x7b\xe0\xf2\x71\x9d\x41\x01\xda\xa6\x09\x00\x5b\x9c\x5e\x9d\x7b\xf5\x98\xe0\x5c\x9a\xd1\x44\x28\xb0\x34\x47\x02\x7c\x96\x70\x75\xc4\xaf\x35\x2f\xd0\x85\x7b\x5b\xd5\xe2\xee\x60\x3b\x56\x85\x36\xdd\x93\x37\x6f\xde\xfc\x11\x38\x15\x0c\xee\x7f\x7e\xfb\xc3\xff\xfc\xf6\x87\xd7\xc8\xb4\x6d\xa6\xea\x75\x54\xce\x56\x6c\x72\x62\xb1\xd8\x08\x75\x80\xa1\xed\x89\x37\xbc\x95\xfe\x94\xe4\xeb\x03\xd9\x24\x36\x84\xb9\x19\x3d\xf6\x59\x7d\xc0\xb2\x58\x3d\xe4\x4c\x0d\x9b\x35\x36\xda\x29\xd0\xcf\xc9\x37\x34\xbd\x3e\x0e\x79\xab\xd4\x90\x20\xf9\x74\x20\x6c\xd7\xad\xe6\x8d\xac\xc4\x86\xf0\x46\xf7\x5e\xc6\x98\x2d\x3a\x61\x18\x4d\xda\xf3\x59\x3b\xc1\x03\x5d\x93\x75\x15\x43\xe1\xbd\x6f\x01\x09\x45\xb3\xeb\x20\x9f\xa7\x10\x8e\x8e\xac\xe4\x2c\x43\x09\x6e\x19\x5e\x60\x55\xab\x66\x6a\x42\xa2\xdd\xde\x1d\x14\x62\xc2\xb3\xf9\xdd\x41\xf3\x4b\xa9\x47\xc2\x8f\x18\x2d\xd5\x92\x6a\x63\xe1\x17\xa9\xda\xa2\x22\x04\xe0\x78\xbe\x43\xd9\x6b\x1c\xa4\x27\x65\x3e\x90\x1b\xed\x6c\xd5\x0b\xc4\x47\xea\xa9\x0f\xc3\x08\x62\x23\xd6\x72\x13\x96\x7b\xd9\x64\xb9\xcc\xf8\xdd\x36\x08\x5f\xde\x10\xf0\x6c\x36\xd8\xd8\x14\x47\xd7\xa5\x01\x13\x08\x49\xa9\x81\xa8\x85\x2f\xac\xe3\x12\xcb\x3b\xf1\xeb\x1b\xbb\xd8\x62\x82\x2b\x73\x50\x9f\x4d\xc5\xda\xe9\xac\x6b\xa3\x89\x76\x9f\xcd\xba\x3c\x06\x03\x8e\xe8\x80\xb1\x1b\x41\x50\x64\x69\xd0\x27\x54\x28\xa7\x45\x8c\xb9\xa8\x60\xa8\x44\x71\x6e\xd5\x9a\xa5\x21\x7c\x1b\x4e\xc5\x79\x28\x64\xde\x8c\xfc\xf3\x21\xa8\xee\x57\x8a\xa4\x28\x24\x47\xcb\x47\xb3\x25\x8a\x84\xb1\x9f\xf7\xe0\x82\x34\x0b\x6d\x98\x54\xc6\x3a\x75\x6a\x9b\x53\xd0\xee\x6c\x63\x24\xd5\xe2\xd7\x23\x65\xf2\xb2\x76\x6b\xc6\xe4\xb2\x5a\xa0\x7a\xdd\x58\x84\xe5\xe6\x3e\xda\x6f\x44\x9f\x50\xdf\xf0\x1c\x24\xcf\x69\x2e\x7d\x32\x59\xaf\xb0\xe9\xac\x5f\x0d\xfb\x23\x79\x10\x4f\xcd\x87\xbf\x9e\x5f\x75\x40\x82\xad\x6a\xb1\xce\x01\x99\x6a\xf6\xa9\x60\xec\x7a\xef\xb1\x8a\x5b\x14\xea\x39\xf2\x8f\x42\x70\x8c\xc9\x67\x47\x09\x1d\x3d\x86\x50\x97\x98\xf4\x82\x4c\xba\x87\x0b\x89\x08\xec\x51\x23\x11\xd0\xb5\x67\x48\x61\x3c\xa8\x76\xd0\xf6\xdc\xbb\x25\x2e\xf0\x1b\x8e\xbc\x36\x5b\x18\x5b\xd5\x99\x65\xb5\x35\xee\x39\x7e\xdc\x87\xa7\x77\xf8\x7c\x25\x26\xd2\xd8\x6a\x1e\xb1\xc9\xe3\x20\xc8\xb8\x17\x9a\xdc\x8b\x39\xfb\xf1\x2f\x17\xff\xf9\xb7\x8f\x9f\xcf\x4e\x3f\xfe\xed\xd3\xe9\xd9\x8f\x97\x57\x17\x77\x77\x37\xff\x79\x73\x7b\xf1\xe9\xee\xee\x0c\xcd\xf0\xa4\x9d\xdd\x08\x7b\x77\x47\x47\xcb\xdc\xdd\xdd\x66\xa5\x2c\xef\xee\x92\xc0\x43\xab\x61\xf2\xe8\x21\x02\xfa\x19\x92\xfd\x40\x56\xc4\x45\x87\x71\x4f\xb9\x89\xb9\xb0\xbb\xf1\xb9\x43\x81\xf1\x21\xa6\xa8\x5c\x79\x77\xed\xa6\xeb\x34\x05\xaf\x05\x33\x52\x4d\x0a\x11\x12\x5c\xa2\xb7\x77\x24\xec\xa3\x20\xe1\xb9\x9d\x2a\x97\xa6\xa9\x13\x6a\x2e\x32\x45\xc7\xf9\x1b\xd2\x1c\xd9\xe4\xc0\x24\xa2\xd9\x83\x14\x8f\x68\x67\x92\x13\xc5\x0b\xff\x55\x41\xda\x2d\x6a\x40\xed\x7c\x1f\xf2\x43\x87\x60\xad\xc5\xac\x9c\x85\x8c\x9c\x86\x5c\x12\x90\x98\x86\x97\xe7\xec\xed\x80\xfd\x88\x11\x0a\xd0\xd7\xcd\xb2\x95\x0b\xb1\x60\xda\x4e\xc9\xd4\xb5\xeb\x98\x04\x53\x8f\x10\xd5\xed\xd9\x0c\x7e\x5c\x17\xc5\x9c\x39\x9d\x03\x99\xf9\x50\xe7\x8b\x77\xff\xee\x00\x0b\x60\xf8\x1f\xb0\xfa\xc5\x00\x1f\x86\x6f\x37\x9e\xba\x33\x1b\x0b\x28\xe0\x2f\xe6\x21\xa3\x5f\x49\x3b\x66\xe9\x8b\xcb\x52\xaa\x97\x48\x86\x70\xfe\x39\xbd\x09\xa3\xe4\x80\xda\xbf\x05\xcf\xb0\xa2\x9a\x49\x05\x76\xf4\x3f\x57\x3c\x13\x43\x51\x49\x10\x02\x76\x95\x0e\xa1\x84\x40\x88\x7a\xff\x25\xc1\x26\xee\x43\xb0\xe8\x98\xda\x09\xfa\xb2\x53\xc6\x31\x9f\x9e\xe5\xa2\x10\xd1\x10\xdb\xce\x65\x50\x5a\xf5\x95\x98\xf0\x46\x36\x03\xd8\x5a\x90\x46\xa1\xbe\x1d\xcc\x17\xd4\x99\x9c\xcd\x44\xee\x38\xb4\xfb\xa8\x0f\xed\xc1\x17\x9c\x4a\x2e\x8b\x5e\x43\xd8\x85\x21\xb2\x12\x16\xa3\x19\xe3\xe3\xd9\x33\x7c\xb1\xd1\x8c\x58\xe7\xb2\xc5\xe0\x63\x1b\xcc\x3d\xfe\x7a\x7a\x7b\x7c\x54\xcd\x40\x83\x06\xd8\x0e\xce\x92\x7d\xf1\x37\xdb\x5f\x54\x4c\xa7\x24\x60\xed\xa4\x43\xf7\xf6\x58\x57\x99\x1c\x15\x73\x36\xe5\x85\x8d\x15\xd5\x21\x53\x04\xbb\x19\xb0\x1b\x61\xd3\xe9\x17\x5a\x4d\x52\xb6\x25\x9e\x4a\xb4\x57\x67\xee\xae\xd5\x25\x7e\xcf\x51\xfb\xb9\xae\x57\x64\xf4\xbe\x7b\xe3\xa7\xba\xf3\xbc\x12\xab\x0b\x81\x0b\xfa\x3c\x6b\x47\xe4\xce\x49\x0f\x3b\x0e\xe8\xbb\x0d\x3d\xef\xa4\xd2\xc9\x4d\x59\x09\x9e\x9f\x25\xf9\x2b\x1b\xac\xab\xab\xde\x4b\xca\x5e\x4f\xf5\x63\x5a\xee\x02\x8c\xd3\xba\x9e\x4c\xd1\xc1\x0a\x2f\x32\x9e\x55\xda\x98\x50\x09\xc4\x83\x63\x0e\xd8\x4d\xb3\xfe\x44\xb3\xea\x04\xb0\xab\x47\x3e\xf7\x25\x47\x46\x32\x17\x26\x49\x30\xf5\x83\x19\xb0\xd3\xa2\x60\x2b\xe7\x08\xc7\xf6\xf4\xea\x7c\xe7\xf9\x1f\xab\x56\xe7\xe5\x6e\xf3\x42\x1a\xdb\x9f\xf1\xb2\x7f\x2f\xe6\xa6\x81\x2e\xd4\xd8\xce\xbf\x88\x79\x3b\x55\xd4\xdd\xda\x9f\x14\x21\xd2\x3b\x0e\x9e\x0e\xe6\xbf\x36\x7c\xd1\x0f\x6f\xc6\x37\x47\x7a\x36\x7c\xfa\xab\x06\xf4\x02\xd7\x3e\xd5\x78\xef\x18\x5c\x44\xad\x63\x39\x68\x08\x09\x87\x5c\x27\xb0\xc3\x6e\x0a\x36\xda\xb2\x26\xbd\x1f\xe4\x4e\x8f\x15\xd6\x60\xff\x8a\x62\x2f\x7a\x95\x70\xab\xf7\x17\x77\x16\xe3\x5e\xfd\x8f\xd6\xd8\x56\xa3\x61\xf9\x38\xb1\xff\xd1\x3a\x85\xdb\xa4\x6d\xb6\x91\xd4\x97\x25\x6e\xa2\x89\x37\x71\x5f\x2f\xe6\x7a\xd8\x06\xc4\xba\xc7\x6e\xc2\x07\x33\x3e\x67\xee\x22\x17\xd0\x8a\x67\xb6\xe6\x05\x34\x16\xd8\x16\x7d\x0f\x3d\x26\xc8\xc5\x50\xcc\x1b\x05\x55\xe0\x08\x62\x6c\xb8\xe7\xba\x3e\x4a\xc8\x2d\x45\x16\x31\x42\x2a\x5d\xb0\xb2\xe0\xaa\x4b\x5d\xfc\x04\xb7\x7c\x03\x3c\x1a\x95\x59\xf0\x79\x81\x61\xe0\xdb\x9c\xf3\xad\xe1\xd4\x77\x60\xec\x8e\x95\x27\x5e\xe3\x26\xb4\xf0\xda\x5f\x44\xaa\xc2\x11\xc7\x03\xb4\x91\x68\xdd\x52\x41\x12\xd0\x2a\xb5\x22\x7c\x13\x27\xe4\x35\xd3\x18\x31\xcc\x4d\xc9\x31\xc8\xa8\x29\xce\xae\x49\x22\xce\x20\x72\xa0\xb6\x65\x0d\x84\xf0\xef\x18\x37\xeb\x84\x48\x27\x64\xfd\x7d\xf7\x5b\xce\x55\x62\x4f\xf1\xf5\x8a\x5f\x27\xfe\xec\xa6\x55\x0c\x79\x0b\xc9\x67\x31\x47\xaa\xe3\x26\x11\x31\xc0\x10\xce\xf9\xf2\x8c\x29\xbc\xea\x4e\x55\x5a\xc8\x9d\xea\x96\x02\x54\xa6\x95\xa7\x7f\xfb\x24\xa0\x5d\x2e\x3c\xa6\x78\x6c\x12\xa8\x23\x12\x33\x59\x2b\xdc\x6b\x8e\x33\xa3\xc8\x97\x44\xe7\x7a\x83\x80\xaf\x2a\x27\x51\x89\x9d\x8b\x68\xd7\xde\xc6\xa2\xd9\x08\x65\x7e\xf9\xfd\x6d\x45\xc7\x2e\x5c\xe2\x5b\x5f\x0e\x0b\x2b\x97\x33\x53\x67\x4e\xd7\x19\xd7\x45\xfb\xd5\x88\xc1\x86\x1e\xcf\x3f\x25\x80\x56\xb3\x46\xed\x73\x0a\x74\x5e\xfa\xae\x09\x20\x00\x08\x39\xf6\x2f\x4d\x0b\xba\x15\xaf\x39\x65\xd3\x7a\xc6\x15\xeb\x5e\xbe\xe6\x71\x3a\x4f\x4f\x6a\x28\xcf\x19\xeb\x03\x6d\x11\xc6\x89\x96\x8c\xfc\xaa\x5b\x84\xeb\x42\x7b\x6f\xd7\x03\x32\xf3\x18\xac\x7d\x18\x4a\x00\xb1\x3a\x86\x2c\x77\xa8\xb0\x45\x87\x64\x28\xd0\x97\x24\x63\x86\x98\xca\x0a\x20\x5a\xb8\x53\xca\xb8\x61\x31\xca\x89\x3d\xc8\xcc\xca\x99\x81\x53\x29\x31\x9e\x4d\x56\xc1\x0e\xd3\x30\x36\xa0\x31\xa3\x19\x07\x18\x0c\xaf\x93\x9a\x57\x5c\x59\x21\x22\xe4\x5b\xea\xd8\x6a\x45\x77\x4a\x5f\x05\x2c\xea\x91\x4e\x7a\xcb\x45\x06\x35\x28\xb4\x13\xaf\xb2\x60\x70\x67\xa2\x30\x02\x2b\x67\xca\xb1\x8f\xdc\x80\x7a\x60\x23\x91\xe9\x99\x60\xfc\x81\xcb\x02\xf6\xdc\x68\x0d\xc0\x50\xcd\x7e\x01\x21\x2a\x76\x3e\xa1\x89\xc6\xda\xac\x8d\x51\xa1\xfb\x97\x02\x71\x42\xfc\x06\x44\xaa\x52\xc5\x42\x0f\xbe\x89\xc6\x9b\xb8\x9a\x03\x76\x8a\x81\xca\xa6\x2e\x6c\x2f\x0d\x04\xa2\xec\xdb\x5c\x8e\x21\x57\xc4\xa2\x51\xc5\x67\xec\xf8\x70\xe8\xc4\x76\x83\x47\xf2\x25\x14\xb2\x9c\x72\xb3\xb1\x90\x8f\xfb\xd4\x94\x32\x77\x00\x7d\x81\x42\x80\x25\xe6\xf6\xb8\x45\xf0\x1e\xbb\x7a\x06\xb0\x4a\x7a\x4c\x45\x4c\x7d\xa2\x16\xde\x1c\x69\x0d\x0b\x34\x06\xe9\x65\x12\xe3\x01\x97\xbb\xe7\xa3\x3b\x8c\x13\xe7\x55\x1e\x2e\x28\x42\xd4\x46\x7b\x73\x92\x91\x94\x38\x02\x91\xaf\x43\x4f\xc1\x41\x81\x55\x26\xf1\x56\x27\x1a\x02\x21\x7f\xc0\x1b\x1e\x7d\x02\x6c\x60\x6e\xe3\x4b\x6d\x8c\x74\x67\x05\x27\x8e\x7e\x41\x40\x67\x1d\x0a\x88\x9f\x7c\x8f\x48\xa9\x3a\x07\x3e\x31\x02\xb3\x7c\xe6\x08\x6b\x8c\x9c\x4b\x3c\xcf\x5e\xab\x70\x97\x6f\x49\xe9\xcb\x84\xa7\x60\xca\x16\x7a\x24\x2c\xf6\x4b\x07\xc9\xa7\x9e\x52\x19\x06\x0a\x9d\x4d\x31\x45\xe3\xfd\xe1\x86\x3d\x0a\x40\x77\xc1\x66\xa6\x74\xc7\x29\xd7\x8f\xca\x51\x7c\x30\x1b\xe2\x87\x00\x87\x17\x88\x83\x47\x02\x40\xde\x9c\x41\x88\x02\xa0\xf6\x72\xf7\xc8\x6d\xd7\x35\x5a\x1c\x97\xcc\x7c\xa4\x6b\x85\xa0\x44\x3e\x0c\x5e\xe5\x2b\xbc\x14\xc0\xb8\x9a\xd3\x3a\x5d\x01\xf5\xe1\x36\x07\x22\x51\xf1\xbb\x90\xcf\x22\x83\x07\xc2\x7b\x1a\xc0\x49\xc5\x2b\xa0\xdc\x90\x96\xe1\xff\x1a\xb0\x1b\xc7\x7f\x45\x2e\xf2\xf7\x60\x43\x5a\xf4\x62\xe0\x24\xdc\x3d\xf7\xc6\x65\x30\x20\x13\xdf\xc6\x69\x34\xe2\x29\x44\xc8\x3b\xfa\x00\xc9\x43\xcf\xe8\x98\x16\x65\xf9\x5c\xdd\x4a\x36\xc7\x30\xc6\xa0\x9a\x70\x49\xa8\xa1\x90\x40\xd8\xc4\x93\x0c\xe6\x59\xa5\x55\x1f\x8c\xd6\x5e\xe5\xad\xd8\x63\xb3\x3b\x3a\x8f\x78\x08\x07\xbe\xa0\xd8\x7b\xc8\xd0\x83\x62\x8f\x74\xdd\xbc\xde\x2c\x92\x30\x49\x3a\x09\xb4\x00\x7a\x04\xe3\xc8\x7b\xcc\xce\x4b\x42\x9d\xf1\x85\x20\x15\x13\x55\x85\xa5\x8d\x09\xd2\x9d\xf8\x69\x2c\x1f\xaa\x8d\x4d\x23\x30\xdd\x75\xda\xb5\xd0\x82\x04\xed\xf9\x74\xb0\x55\x48\x65\x19\x1d\xdc\x4d\xad\x93\x45\x09\x37\x74\xb6\x0d\xfd\x86\x6a\x2d\x1b\x06\x8e\x8d\x28\xbc\xc2\x8d\x25\x2d\xc6\xb5\x62\x2e\x97\x8d\xa2\xb3\xd2\xb4\x6d\xe3\x6f\xac\xd7\x57\x93\x04\x0e\x7a\xfb\x72\xe8\x03\x61\x87\x58\x06\x1b\x33\xa7\xc2\x77\xb8\x45\x21\xf7\x2d\xb9\x10\x42\x62\x98\x1e\x33\x28\xd9\x82\x99\xfa\x0f\xdf\xa7\xe8\x11\xd2\x50\xa4\x11\xac\x1c\x24\xf2\x47\x5a\x12\xfb\x9e\x8b\x76\x58\xe4\x0e\xac\x15\x97\xc3\xaf\x3c\xe5\xfe\x57\x6d\x20\x7a\xab\x03\x27\xff\x6b\xcd\x0b\x8a\x84\x26\xf7\x39\x3b\xfa\xeb\xe7\x9b\x63\x8c\xea\x92\x63\xb8\xb5\x8e\xf7\x2e\x56\xcb\x89\x58\x3c\x4b\x13\x9a\x20\xbc\x66\xa8\xf3\xbf\x7e\xbe\xc1\x50\x32\x08\xb5\x01\x1d\x3b\x88\x5e\x7f\xfd\x7c\x83\x1f\x12\x66\xdb\xb2\x10\x98\xac\x53\xe9\x52\x1b\x5e\x98\x13\x0c\x09\xa3\xf1\xf4\x7f\xd5\x8b\x55\x50\x76\x56\x62\xf2\x94\x8d\x2a\x29\xc6\x49\x61\xc9\x6d\xb5\x07\xa0\xb2\x03\x06\x85\x74\x0f\x2f\x9c\x78\x2d\xf2\xc3\xad\x4a\x4f\xa2\x02\xf8\x25\x6b\x8f\x5e\x7f\x38\x63\xef\xde\xbd\xfb\x5f\x0c\x80\x96\x41\x1c\x93\xe8\x42\x8e\x6a\xbd\x8f\x80\xe6\x86\xf1\xcc\x71\x9b\x42\xe4\x93\xa6\x64\x54\x84\x1c\x04\xc8\x3e\x08\x20\x76\x1e\xcf\x19\xd2\xcc\xf3\x65\xe2\xd1\x91\x39\x6e\xa0\x36\xed\x16\x3b\xf0\x56\xcc\xca\x62\x63\xb1\x0c\xdf\x2a\x71\x95\x71\x66\xfd\x43\x37\xba\x10\x1d\x9e\xe9\x52\x0a\x6f\x89\xae\x84\x0f\x20\xef\x08\x33\xb8\xaf\xed\xf4\x9b\xd5\x76\xda\x57\x2f\xfa\xbd\x54\x2f\x42\x08\x86\xee\xf5\x8b\x70\x6f\x0e\xcd\x97\xab\x61\x14\x26\xbd\xdc\xc3\xbf\x48\x93\x3a\x2d\xc9\x32\xba\x06\xd8\xa8\xeb\x56\x21\x21\x6d\x91\x8e\x80\x1d\xa9\x81\x58\xe3\xcd\x1b\x74\x3a\xc9\xfc\xe4\x47\x3a\x78\x95\x55\x72\x32\x28\x98\x25\x4d\xcb\x5e\xb8\x91\xf0\x87\xe7\xaf\x58\xc0\x29\x70\x8e\x46\x83\x1d\x14\x71\xf2\x1d\x6f\xae\x21\x98\xb6\x5c\xa8\x25\xe8\x7f\xdc\xd7\x14\xfc\xba\xf9\xce\x33\x6b\x0a\x86\x3b\xb7\x7b\x2f\x6d\x38\xd1\x2f\x31\xcc\xef\xd9\xe8\xef\x85\x8d\xee\x8b\x00\xe2\xf3\x2f\xc0\x43\x5e\xa5\x18\x60\x43\x04\xe8\xc4\x47\x00\x26\x3d\xaa\x38\x10\x9f\xca\x2d\xa7\x80\x7a\x22\xd3\x60\x86\x89\x40\x9e\x5e\x26\x88\xfa\xd0\x66\x76\xb3\x97\xf9\x16\xee\xaf\x69\x6e\x52\xa7\xe5\x58\xc0\xc0\x5f\x3b\x73\x42\xc1\x09\x8c\x18\x03\x98\x8d\x04\x0c\x85\xa4\xce\xd9\xba\x38\xba\xaf\x43\xba\xdb\x7c\xf6\x2b\xfb\xa8\xab\x27\x0c\xbe\xbb\x01\xf6\xb1\xf6\x02\x2c\x36\x4f\x23\xce\x38\xf3\x2d\x7c\xad\xb4\x00\xc8\xd2\xa5\x5e\x61\x87\x32\x98\x1f\x6e\xa8\xfe\x65\x03\xa4\x05\x8a\xfa\x21\xec\x01\x98\xd6\xac\xc6\x30\x48\xf6\x29\xe0\xf4\xb7\x9b\xc4\x12\x1d\x64\x7a\x41\x1b\x7c\x09\x71\xc7\x6a\x12\x7c\x02\x17\x4f\x03\x76\x77\x20\x9e\xec\x77\x77\x07\x3d\x76\x77\xf0\x34\xc6\xfa\x6c\xb3\x80\xfb\x0c\x9c\x94\xe0\xd3\x20\x9f\x01\x1b\xb7\x8b\x2d\x6d\x97\x92\xfe\x59\x15\x9b\x12\x95\xd3\x78\x71\x48\xf2\x60\x47\xee\xcd\x93\xc7\x4a\x5a\x71\x3c\x00\x3c\xb4\xcf\x00\x03\x12\x70\xc6\xc7\xba\x22\xff\x70\xf8\xd1\x27\x27\x49\xc5\x70\x77\x3f\xb9\x05\x5c\x85\xc5\xb4\x36\x61\x04\xb7\x7e\x23\xae\xe6\xcf\xd4\x8c\xd0\xdf\xdc\x4a\xe6\xee\xd0\x03\xae\xe5\xc2\x49\xda\x6d\xb1\xd2\x30\xc4\x4d\xac\x6d\xe3\x05\x82\x9c\xe7\x4a\xe4\x37\x01\xf3\xed\x56\x54\xb3\x35\x77\xe8\xd4\x27\x06\x97\xfe\xd5\x14\x2f\xce\x8a\x6a\x16\x52\x99\xc1\x51\x08\xe3\xa0\xa4\xe2\x90\x68\xfc\x28\x20\x22\xe1\x0d\x3b\x92\x03\x31\x60\xd2\x91\x67\xce\x94\xee\xeb\xf2\x78\xc0\x4e\x99\xaa\x8b\xa2\xc3\x07\x94\x0e\xfd\x53\x47\x06\xbd\xfd\xa1\xaf\xcd\xd7\xb6\x0c\xb0\x9c\x5b\x13\xe5\x14\x44\x0b\x56\x6f\x1d\x75\x3e\xc5\x28\x83\x00\xb3\xe5\x26\xd4\x5b\x00\x65\x5a\x84\xf5\xc1\x25\x5b\x91\xb3\x8a\x3f\x6e\x38\xb0\xbf\xe0\xa2\xb7\x3f\xd5\x80\x40\x6f\x7e\x53\xb5\x26\x16\xe0\x3e\x2b\xa8\x83\xfa\xb6\xff\xf6\xcd\x9b\xdd\xe0\x93\x74\x3c\xf7\x34\xcf\xde\xd2\xed\x7b\xf9\x5d\xd0\xa3\xb5\xdc\xc3\xfd\xde\xb0\x0b\x4f\x05\x2f\xec\x94\x65\x53\x91\xdd\x13\xf9\x0c\x15\x00\x19\x9f\x70\xa9\x8c\x4d\x8b\xf3\xb8\x36\xb9\x40\x07\xae\x88\x98\xf6\xa8\xd1\x17\x50\x16\xa6\xa2\xc0\x31\xab\x63\x50\x4e\xc5\xc7\x63\x99\x75\x38\xcb\xe2\xe9\x05\xa2\xc5\xc5\x93\xc8\x4e\x01\x84\x72\xed\xf9\xfd\xac\xd0\x37\x00\x21\x4a\x5a\x05\x97\xf2\x58\x17\x85\x7e\x04\xd6\x13\x60\x10\x12\xbc\x63\xd7\x7b\xf8\xdb\xf8\x18\x6d\x5f\xc4\x8b\xdf\x8b\x15\x27\x9b\xdc\xe5\xb7\xd3\x4a\x98\xa9\x2e\x36\x29\x9c\x9f\xa4\x92\xb3\x7a\x06\x79\x26\x22\xab\x21\x17\x8c\xba\x48\x60\xe7\x60\x23\x71\xbf\x12\xf8\x50\x0f\x1b\x0a\x61\x3d\x4e\x4a\x72\x73\xf1\x91\x06\xad\xbc\xa6\x01\xf3\x5f\x0a\xb9\x62\x6f\x77\x8e\xd4\xe3\x64\xb1\x3f\x8b\xed\xb3\xf6\x7f\xbc\xbd\x1d\xfe\x59\xd8\x0e\x9b\x4a\x2d\x5b\x1b\xe4\xbe\x9f\xe2\x2e\xd2\xd9\x5e\xb1\x53\x84\x14\x7b\x2e\x0a\x3e\xef\x96\x27\x78\x55\xcf\x46\x02\x24\xd1\xc5\x7c\xb8\x66\x08\x85\x0f\x96\x24\x77\x52\xd1\x04\x44\x85\xe8\x9e\x50\xb3\x60\xb7\xf1\x92\x31\x4e\x12\xbf\xb5\x73\x34\xa6\x67\xe4\x55\xfe\xa8\x1f\x99\x1e\x5b\xa1\xd8\x51\xcc\x21\x3c\x4e\xab\x37\x84\xd3\xdd\x48\x76\x7e\x1b\xb3\xf0\xbe\xc4\xb1\xa5\x28\x9b\x97\x5c\x59\xea\x62\xf3\x9d\x4d\x22\x71\x1b\xf7\x16\xef\x72\xf3\xd2\xbe\x1d\x04\x79\xfa\x2d\xf4\x1b\x8e\x11\xa4\x49\x23\xa0\xee\x17\x59\x21\x9b\x95\x37\x3a\xbb\x7f\xc1\xd5\xbe\x3d\x1b\x62\x0f\x1d\x2e\x77\x68\x9b\x5c\x6f\xae\x3c\xf9\x95\xea\x41\x17\x0f\x88\x76\x75\x7b\x36\x04\x0c\xfb\x01\xfc\x6b\xaa\xf5\xbd\x89\xe1\xda\x5e\xe1\x58\x31\x25\x39\x13\xba\xb6\x2f\xbb\xf8\x49\xf8\x38\x6e\xb7\x9c\x09\xc3\x74\x6d\x5b\x1b\x49\xaf\x2d\xdd\xab\xaf\xff\xf6\xbf\x58\xe9\xad\x34\x96\xb6\xe8\xa8\xf5\x5e\xa7\x0a\x6e\xe9\x5f\xf6\x1a\x2e\xea\xb7\x9b\x65\x0b\xca\x80\xfe\xa4\xf3\x4d\x3a\xae\x6b\x82\xf5\xe5\x3d\x0c\x92\x11\xb6\x59\x18\x3e\xb1\x28\x41\x3d\xfb\x08\x77\x13\xef\x28\x57\x4c\x67\xd6\xdb\xfe\x03\x46\xc2\x9b\x37\x6f\xde\xc0\x85\x7d\xf3\xc7\x3f\xfe\x91\x01\x5a\x69\x2e\x32\x39\x5b\x6c\x08\xad\xfe\xed\xed\xdb\x01\xfb\xcf\xd3\x4f\x1f\x29\x8a\xd3\x20\xd4\x00\xf6\xec\x1a\x34\x5e\x36\x3d\xf6\x7f\x6e\x3e\x5f\xf9\xe8\x17\xd3\xfa\x15\xa8\xc6\xcc\x4f\x6f\xc0\xce\x65\x05\xb2\xb1\x87\xa0\xf3\x41\x82\xdc\x4e\x81\x27\xb9\xbb\xc3\x01\x7c\x22\x01\xea\x27\x4d\x95\x62\x24\xb0\x7a\x26\xd4\x2b\x01\x18\x91\x42\x7a\x80\x39\x8c\x74\x0e\x75\x5a\xa7\xdc\xf7\x15\x4c\x06\x30\x94\x1e\x2b\xe4\xbd\xf0\x95\xe2\x63\x18\x2d\x86\x21\xfb\xac\x4a\xec\x2c\x0c\x1d\xf2\x0a\x76\x4e\xf7\xc9\x2f\xb2\xfe\x74\x14\x8d\xdc\x4f\x7f\x1e\x77\x9f\x8b\x86\x97\x63\x18\xba\x7f\xbe\xab\xa3\xa3\x4e\xe2\xa7\xfd\x52\xf5\xe3\xaf\xb5\x1e\xcd\xad\xd8\xe6\x52\xd3\xab\x64\x34\x82\xa3\x52\x70\x9f\xca\xe8\xa8\x19\x04\xf2\xc4\x94\x49\xdf\xde\xe7\xdf\xe6\x1a\xa1\x25\x90\xc4\x33\xfd\xa8\x44\x65\xa6\xb2\x64\x33\xae\xf8\x04\x82\xc0\x00\x73\x9e\x6a\x32\x57\x02\x70\x9c\xdd\x21\xde\x4c\x37\x26\x1d\x4a\xf5\xc3\xd1\xc5\x62\x96\xa5\x3f\x18\x1c\x18\xbb\x7b\xe8\x25\x19\x84\x48\xc4\xfe\x5e\xcb\x18\xb5\xd6\xd8\xd4\x5c\x36\x12\x46\x7c\xbe\x32\x62\x29\x0b\x9e\xf7\x31\x47\x2c\x92\xbb\x26\xf3\xda\x1a\xc7\xc4\xe3\xe9\x6c\x9c\x01\xc1\xee\x34\xec\x9a\x04\x3d\xe3\xc8\x57\x5d\x58\x59\x16\x71\x36\xe1\x85\x58\x49\x2d\xc0\x97\xf1\xc4\x75\xc7\x11\xf8\xe8\x3d\x1c\x91\x92\xcb\x8a\x1d\x85\xbe\x84\xb2\x40\x04\x11\xa8\xa2\xe4\x55\x34\x2f\x64\x7a\x36\xe3\xe6\xd8\xa3\x01\x64\x6e\x38\x78\x30\x33\xf7\x16\x2f\x22\x50\x90\xa3\xae\x4b\x73\xb3\xbb\x01\x96\x28\xbe\x11\xae\xeb\x16\x1a\xb9\x03\xee\x0d\x1e\x88\x74\xdd\xda\x59\xa2\xe3\x3f\xf0\xec\x5e\xa8\x9c\xfd\x64\xfc\x64\xf2\xb9\xe2\x33\x0a\x8f\x2e\x2b\xfd\x20\xc9\x17\xde\xba\x50\xbd\x28\x90\x38\xd6\x47\x16\xda\xb2\xa8\x27\x52\x3d\x7f\x66\xf5\xe6\xea\xfb\x3f\x19\x34\x2e\xac\xbb\x3f\x54\x75\xa6\x92\x0f\x99\xf0\x05\x1f\xa0\xeb\x67\x0f\x88\x2c\x9a\x5d\xcc\xa3\x0d\xe7\x2f\x10\xa6\xa4\x0a\x8e\x13\x42\x09\x33\xdb\x8b\x03\xad\x8d\x18\xcd\x11\x62\x75\xb7\xd6\xd3\x70\x93\x16\xe7\xf4\x52\x22\x7e\xfd\xc3\xf9\x50\x54\x46\x1a\x2b\x94\xdd\x86\x94\x5f\xf3\x5c\x1b\xf6\x43\xa1\xb3\x7b\x76\x2e\x20\x8a\xb7\x2b\x55\xbf\xfe\xe1\x3c\x50\xf4\xb5\xa4\x1c\xd0\x98\xb6\xa1\xe5\xdd\x5c\x1c\x2d\x4f\x05\xd9\x87\x3c\xd1\x74\xd3\x98\xeb\x9a\x3d\x72\xc4\x8c\x83\xd9\x0d\xd8\xad\x2c\xdf\xb3\x0b\x65\xea\x2a\xc9\x21\x6b\x3b\x3d\xa4\x79\x86\xdf\x03\x0a\x14\x99\xf7\x8b\xde\x0f\xf7\x0f\x65\xb7\xf5\x83\xbc\x10\x74\xe2\x9b\x6a\xb4\x45\x14\x33\x84\xc7\x76\x88\x01\xaf\xe0\xf4\x40\x6b\xc2\x26\x5e\x32\x5a\xaa\xdd\x64\xbc\x7f\x8f\x46\x76\x52\x8d\xf2\x93\xeb\x8b\xd3\xf3\x4f\x17\x83\x59\xfe\xcd\x54\x3f\xf6\xad\xee\xd7\x46\xf4\xa5\xdd\x22\xc6\x52\xcc\xe1\xc7\x0d\xf1\x21\xd8\xca\x43\x24\x81\xe0\x6c\x35\x20\xc6\xc1\x73\xc7\x11\xae\x7f\x38\x77\xe4\x6d\x90\xca\x01\x27\xc2\x66\x27\x99\x28\xa7\x27\xf4\x9d\xdf\x6e\xa2\x33\xad\xa4\xd5\x1b\xeb\x29\x9d\xb2\x4c\x17\x05\x8a\xa2\xee\x4a\x9c\x89\x72\xca\xfc\xbb\xaf\x33\xfa\x15\x12\x74\xd7\x4a\x21\x1d\x22\x80\x4a\xad\x8b\xce\xa7\xd2\x35\xa6\x43\x99\xec\x64\x35\x5a\x7e\xa5\xbe\xc8\xde\xed\x42\x28\xdc\xe8\x81\x5c\x22\xfd\xbd\xea\x84\xd7\x83\xe1\x41\x59\xb4\x6b\xd0\xa1\xb6\xb3\x3c\xdd\xf8\x1e\xc8\xeb\xb2\x36\x12\xc1\xb7\x05\xd9\x3d\x81\x0e\xe5\xb5\x9d\x0a\x65\x7d\x8c\x02\x8e\xaa\x79\xdb\x2f\xc7\x28\x61\x41\x55\xa6\x07\x51\x55\x00\x23\x15\xae\x7b\xaa\x14\xc8\x62\x67\x2b\xba\xad\x00\x16\x8f\xb9\x6b\xbc\x78\xcc\x79\x3e\x93\xea\x0b\x1f\xf4\x8e\xd2\x50\x20\x60\x0b\xfc\x66\x07\xc2\xd0\x5e\x04\xda\x8b\x40\x7b\x11\x68\x2f\x02\xed\x45\xa0\xbd\x08\xf4\xbb\x11\x81\x96\x56\x7f\xdd\xcb\x41\x7b\x39\x68\x95\x1c\x24\x1c\x87\x85\x2d\x8e\x25\xa8\xd6\x4b\x43\x8b\xed\xdb\x31\xa3\x8d\x52\x87\x28\x02\x55\xf1\xbd\xb4\xb8\xde\x3e\x29\xe8\x6b\x4e\x0a\xda\x67\xd1\xfc\x5e\xb2\x68\x3a\x26\x26\x50\xa9\xcb\x8f\x58\x0a\x15\x2e\xee\xf2\x0b\x0f\xa5\xb3\x43\x5d\x9f\x39\xfc\x4d\x5e\xf2\x20\xa2\x07\xc8\x7e\xee\x4b\x0f\xe6\x47\xe6\x38\xaa\x0f\xcb\x49\x02\x69\x42\x06\xc0\x53\x7f\x87\x59\x12\x4b\xd7\xb3\x53\xde\x44\x83\xac\x99\xe7\x24\x52\xac\x20\xbe\xbf\x5d\x6e\x45\xba\x98\x6d\xfc\xdd\x5d\x2c\xe7\x12\xd8\xc0\xe5\x60\x9c\xa4\xd9\x34\xe1\x0f\xf5\x08\x80\x33\xf3\x04\xcf\x77\xdd\x2a\x42\xac\x04\x64\x28\x11\xe8\x8c\x46\xe0\x54\x80\xaa\x18\xcd\x11\xed\xe8\x11\xea\x97\x40\x57\xd2\xc9\x1d\xc3\x14\xa7\x33\x05\x4a\xba\xf6\x6e\xda\xaf\x38\xf5\x25\x3c\x7f\xad\xa4\xb4\xe5\x52\x49\xa3\xe9\x4b\x53\xd3\x96\x7e\x22\x22\x04\x3f\x53\x02\x0a\x2f\xb6\x12\xd7\x12\x90\xe7\x15\xe4\x8e\x43\x14\xb6\xa8\x00\x34\x0e\x98\x5b\x07\xa1\xa8\xe0\xc6\xde\x56\x5c\x19\xf8\xe6\x97\x06\x63\x01\xb4\x52\x6e\x2c\x62\xb0\xd8\x14\x50\x8f\xd9\x30\x2a\x9f\x92\xa7\x55\x00\xc6\x06\xc4\x2e\x08\xf7\x59\x11\xa7\xfb\x5a\x78\x9a\x50\x82\x22\x8c\x6c\xbb\x7c\xa1\xcd\x50\x3d\xb7\x11\x44\xd0\x87\x86\x86\x85\x81\x02\xe3\x6e\xc9\x5e\x32\x8a\xe5\xb4\x72\x39\x65\x8b\x28\x78\x38\x80\x9e\x0f\x88\xbf\x05\xd0\xd7\x0f\x4e\xd3\xed\x79\x58\xb6\x6d\x8a\xb0\x6c\x36\x35\xde\x92\x7d\x71\xc5\xc9\x7f\x36\x9a\x69\x47\x65\xa9\x05\xc4\x7d\xd0\x24\x6f\xbb\xd5\x94\x36\xa0\x23\xac\x7c\x07\x45\xe6\xa6\xcd\x69\xf9\x32\xed\x81\x13\xbe\x6e\x1d\xe9\x39\xc0\x09\xab\x76\x78\xfb\xb8\xe0\xa4\x97\x93\xa4\xf7\x6c\x05\xd3\x7c\x69\xe0\xe2\x72\xbe\xfc\x12\x1b\xe5\x5e\xc5\xfc\xbd\xa8\x98\x7b\xa0\x06\x7c\xfe\x45\x65\xe2\xdd\x43\x36\xac\xd6\x4f\x9f\xc9\xe6\x40\x65\x95\x2b\xb4\xd5\x17\x18\x04\x67\x52\x39\x1d\xa9\x63\x1e\x97\xcf\xc2\x50\x0b\x69\x1d\x4e\x44\xa3\xc0\x4f\xa6\xc4\x63\x11\x03\xfd\x12\x98\x89\x91\x07\xcb\x7f\x94\x76\xea\x24\x49\xae\x00\xc5\xb2\x51\x46\x9c\x65\x15\x37\x53\x40\x0b\x76\x9d\x4a\xbb\x98\x0b\x14\xc0\x28\x9b\xfe\x86\x37\xec\x28\xc5\x22\x5f\xf6\x02\xe3\x06\xb0\xc3\xdd\x7f\x31\x1b\x13\x06\x74\xbc\xeb\x08\x79\xda\x8f\x4d\xeb\x49\x5b\x1d\x34\xe7\xb8\xae\xde\xf8\xe0\x3b\x1a\x24\x25\x92\x81\xa2\x52\x8e\xa9\x34\x8e\x62\xd7\xd2\x4c\x43\x3a\x84\x78\xa2\xdc\x6b\x80\x14\x76\xf2\x40\xc3\xa5\xdb\x4e\x94\x7a\x35\x66\xf9\xcd\xe3\x94\xdb\xbe\x34\x7d\xde\xef\xc0\x4c\x77\x90\x95\x40\xf9\xcb\xed\x35\xe7\x39\x0a\xc6\xbc\x18\x2e\xbf\x04\xec\x39\x9e\xc2\x05\x87\x0f\x65\x77\x23\x54\x17\x1f\x89\x82\xfd\x5a\x8b\x6a\x8e\xb8\xdc\x11\x74\x8d\xae\x40\x44\xd9\x0d\x7b\x9f\x61\x50\xc0\xe5\x98\xa5\x9d\x91\x3d\x10\x0f\x69\xc3\x18\x88\xc2\x1f\xd8\x14\x89\x11\xfb\xf2\x00\xc3\x06\x7c\x1b\xd8\x1d\xd9\xbd\x98\x63\xda\x1b\x25\xb6\xc0\x60\x12\xc0\x5f\xa9\x98\xae\x72\x3c\x4d\x23\x11\x89\x47\x4c\x63\x59\x4e\x5b\x7a\x4c\x8e\x63\xe1\xf0\x38\x3a\x1a\x99\x56\xad\xd1\x3c\xf3\x9c\xb9\xd5\x7b\x90\xe2\x11\x0e\x9c\x54\x93\xbe\x23\x19\x7d\xc2\x00\x38\xc1\x8f\x9c\x7c\x03\xff\xed\xfb\x8d\x5f\xc1\xb9\x53\x8d\xa4\x7d\x66\x7e\x1b\x58\x3e\xba\xed\x24\x4f\xc1\x8e\x34\x0d\x1d\xa1\x08\x41\x1b\xaa\x4f\x8e\x99\x54\xa6\x1e\x8f\x65\x06\xb2\x94\x27\x0f\x64\x32\xb6\x90\x80\x44\xb4\xc2\xf2\x7b\x01\x47\x24\x13\xb9\x50\x99\xc0\x13\xc9\x99\x1f\xc6\xb5\x18\xbf\xea\xf5\x2f\x75\xde\xb7\x0b\xf0\x63\x2f\x4e\x8a\x5b\x67\xa3\x7c\x2e\x53\x5d\xa8\x44\x06\x62\xaa\xaf\xd0\x95\xd4\x1f\xdb\xde\xe1\xe6\x39\xcf\x75\x37\x8e\x70\xdb\xe0\x02\x91\x6f\x85\x8d\x3e\x42\x0e\x0a\x98\xcc\x1e\xa3\xbc\xc5\xc4\x3d\xb6\xee\xca\xbb\xbb\xf3\x84\xb0\xce\xd5\xcf\xae\x9b\x4b\x4d\x3a\x6c\x9c\x26\x1a\x8b\xb1\x54\xe7\xba\x95\x3f\x34\x8d\x6d\xda\x75\xa1\xa5\x0d\xe6\xcc\x8e\x2a\x5a\xe3\xa7\x2f\x59\xf0\x0c\x2a\xeb\x02\xf9\x17\xf9\x56\xe7\x2e\xb2\x2d\x40\x06\x23\x9a\xde\xc0\x0f\x29\x82\x57\x2b\x10\x2c\x4f\xde\xd6\x5b\xf8\x77\x7d\xf6\xbc\x7f\xe1\xcf\x42\xf9\x52\xac\xeb\xa7\xfa\x79\xe1\x05\x56\x89\x71\x01\xe0\x32\x90\x28\x14\x9f\xd3\x4c\x56\x38\x34\x9e\x3f\xc1\xad\xea\xdf\xc2\x85\xdf\x6a\x1b\x91\x54\x04\xd2\xf1\xa5\xa9\xc2\x96\x42\x70\x7b\xb5\x71\xb1\xd3\x59\x79\x91\xf8\x9f\x5c\x76\xed\xa8\x31\x87\x65\x7c\xb9\xcd\x15\xad\x39\x1f\xa4\x28\xf2\x9b\x45\x69\x79\x71\x63\x96\xb4\x4f\xb9\x65\xd4\xd9\x62\x85\xa5\xa3\xac\xac\x7b\x6c\x26\x66\xba\x9a\x1f\xfb\x1c\x65\x59\xf9\x12\x88\xb4\x54\x1b\xf9\x66\xe8\xba\x43\x71\xad\x50\x83\x0c\xa2\x90\xde\xfb\x9c\xee\x3c\x4d\x33\xec\x51\x7e\x35\x2f\xb0\x56\x85\x7a\x60\x0f\x7c\x95\xc4\xb8\xce\xd6\x93\xcb\x07\x69\x16\x95\x8c\x67\x9b\x7a\x06\x01\x70\xee\xaf\x35\x57\x56\xda\x79\x17\xa8\x3f\x92\x0f\x1b\x8b\xe9\xa9\x94\x78\x2a\xb5\x01\xb2\x44\x7b\xd1\xf3\x92\x39\xe8\x7a\x77\x07\x6f\xef\x0e\x56\x5d\x54\xd3\x8e\xdb\x5e\x7e\x1e\x70\x5d\xdf\x27\x76\x41\x4d\xf8\x56\xbb\xce\xdb\xa3\x01\xed\xea\xc8\xff\xb5\xd6\x0d\xf3\xdc\xaa\xa3\x0e\xed\x98\x11\xd6\x30\x3e\x99\x54\x62\xe2\xf8\xd9\xaf\xf0\xb0\x12\x6e\x36\x98\xc0\xce\x84\x82\xa0\xc8\x1c\x8a\x0a\x86\x0a\xff\x7b\xdf\xc2\xd7\xec\x5b\xd8\x1b\xc7\x7f\x2f\xc6\xf1\x7f\x69\x60\xd8\x06\xa9\x7a\x7e\xa8\x93\x37\x2c\x02\x51\xfb\xd2\x18\xff\xbb\x8c\x54\x4a\x57\xa1\x73\x84\x52\xba\x12\x54\x39\x3c\x90\x72\x24\xf3\x50\xfe\xd7\x46\xf5\xb2\x36\x7c\xf2\xaf\x57\x0b\xa1\xc9\x37\x77\xec\x12\x49\xba\xde\xe8\xf1\x6f\xb5\x6d\x56\x44\x68\x72\x6d\x50\xfa\xf7\xfe\xfd\xaf\x9a\x07\x77\xf1\xef\x5f\xba\x36\xeb\x36\x9a\xac\xc0\xcf\xd6\xff\x4a\x5d\xc8\x6c\x9e\x54\x1a\x73\xbd\x99\x93\x5d\x9b\x8e\xd2\x9b\xd3\xd1\x52\xb4\x97\x57\x7e\xd7\xf2\xca\xde\x99\x8f\xcf\xbf\x08\xb7\x7a\x0d\x27\x7e\x5b\xe2\xea\xc8\xb1\x56\x0a\x5f\x53\xdc\x67\xb8\x39\x56\x7b\x11\x04\x2c\x13\xf0\x62\x07\x2e\xe6\xba\xd8\xce\xd3\xb9\x0b\x53\xc5\x4a\xba\xd6\x5a\x0e\x98\xa8\x0f\x5b\x10\x36\xf5\x6c\xa7\x6b\x10\xca\x87\x3a\x55\x3a\x5a\x30\x5e\x87\xc2\x77\xf1\x0b\x9a\x4c\x97\x62\x89\x89\xac\xd3\x02\x46\x04\x85\x46\x2f\xeb\xd6\xa9\xf1\xbd\x04\xdc\xbc\x19\xd3\x38\x96\x85\x75\x04\x1a\x70\x00\xe1\x95\x45\x7f\x2e\x56\x61\x25\xcf\x62\xc5\xb3\x7b\xf4\xe4\x72\x12\x6f\x47\xb5\x65\xe2\xa9\x84\xc2\xb1\x39\xab\x8d\xe3\x10\x8d\x61\x7e\x86\xec\xf2\x50\x04\x78\xe4\xab\xc2\x03\x2a\x56\xa8\xa9\xed\x25\x8d\x0f\x00\xcb\x98\x9a\x83\x60\x14\x3d\xc4\x5e\xa4\x21\x9e\x5e\x9d\xb3\xe6\x04\x8f\xe4\x38\xc1\x1e\x93\x0a\xfe\x38\xee\xe1\x3c\x46\x82\x60\xdf\xf3\x15\x71\xcd\xd8\xed\x33\x73\x90\xfd\xda\x3d\x6f\xbd\xc0\x2d\x0f\x88\x79\xcd\xda\xb9\xb8\x98\x4b\xe0\xef\xbb\x39\xa2\x5e\x9a\x96\xbc\x49\x3f\x78\x1e\x45\xdb\xec\x3b\x5d\x68\xdd\xa0\x6a\x41\x83\x4a\xaf\x34\x20\x87\x7b\x4f\x49\x6d\xba\xd4\xd5\xf8\xe7\x20\x69\x3f\x2e\x92\xb4\xa5\x0b\xf0\xd5\xd1\xb4\xda\x88\x7f\x82\xe5\x05\x08\x3e\xd9\xf4\xc4\x87\x73\x64\xb5\xe5\x05\xaa\xe4\xd1\xcb\x48\xb4\x87\xa0\xfc\x82\x31\x76\x45\x1c\xfc\xc2\x0a\xed\xea\x2e\x5d\x27\x75\x94\x3b\x5c\xa6\xb4\x79\x2b\xfa\x23\xd3\xb3\xb2\xb6\x62\x79\x89\xe6\x2e\xf9\x2c\x70\x00\xbf\xfe\xad\xfe\x88\x17\xa5\x39\xf9\x19\x7f\x82\x10\x43\x8e\x48\x30\x7a\xbc\xb0\x1c\x58\xef\xfc\x71\x0b\x78\x92\x46\x26\xf5\x09\xa6\x46\xf6\xa9\xfb\x7e\xe8\xbe\x1f\x7c\x4f\x5b\x5c\x32\xaf\x07\x7d\xfd\xab\x7f\xed\x35\xb6\xd6\xfa\x53\x88\xe7\xba\xf5\xf7\xca\x00\x70\xc7\xd0\x8f\x53\x2a\x67\xd2\x5a\x72\xbc\x25\xd5\x30\x20\x8c\x2d\xf5\x45\xd1\xce\xcb\x31\xb2\x63\x69\x42\xd0\x62\x31\x4f\x59\x2d\x64\x37\x3d\x4a\x23\x30\xd9\x09\xca\xca\xc0\x35\x80\x1d\xec\xfb\x42\xcc\x20\x8d\x7c\x35\xa7\xe1\xa5\x04\x85\xd0\x8a\x3e\x97\xed\x80\x9a\x05\x8d\xb1\xd1\x10\x42\xc0\x92\xc8\x0c\x8c\xe7\xe3\x65\x59\xc8\x18\x37\x18\x26\xd3\x81\x8a\x38\x15\x72\x53\x2a\x86\x6b\xe3\xb6\xcf\x23\x2c\xc1\x4b\x14\x06\x89\x40\xd6\xf0\x7d\xb3\xf0\xfd\x6d\xb2\xc6\x74\xb1\xd1\x43\xa9\x0b\x02\x22\x0d\x90\x4f\xee\xc9\xeb\x8c\xa7\x6b\xce\x56\x63\x3c\x00\xed\xf4\x3a\xe3\xe9\x8a\x1e\xdb\x18\x0f\x80\x77\xec\x70\x3c\x2f\x3e\xfc\x19\x2f\xc4\xe5\xe7\x67\x43\xab\xae\x7d\xaf\x89\x90\x5c\x86\x36\x8c\xde\x6a\x57\xee\xda\x2d\x26\x58\xc4\xfd\x7a\xa5\x22\x6f\x29\xc6\x57\x82\xc0\x42\xbf\x3e\xff\x20\x4d\xb8\x15\x8f\x7c\x13\x50\xd0\xad\x1f\x25\xcf\x73\xa7\x4e\x7a\x81\xcc\xaf\xe9\xe9\xf0\x92\xfd\x19\x7b\xda\xe2\x30\x97\x95\xb6\xa8\xbc\x9d\xeb\x19\x97\x5d\x92\x45\x53\xb8\x1d\x3f\x88\x61\xe8\x86\x61\x3f\x69\x2e\x29\x50\x7f\x48\x4c\x07\xd4\xb2\x7f\xa1\xc2\x77\xbf\x15\x38\x64\x02\x09\x4d\x04\x26\x01\x42\xf2\x7b\x06\x24\x09\xd4\x47\x28\x65\x60\x04\xa4\xf8\x3e\x20\x6b\xaf\x66\xc0\xae\x41\xf2\xb0\x94\x11\xe1\xf4\x73\x8f\x9c\xd4\x63\x1f\xf5\x44\x2a\x7f\x75\xc0\x70\xe1\x96\x93\xcb\x62\x95\x35\xc1\x14\x17\x8a\x8f\x8a\x45\xe5\xa8\x7d\xaf\x0b\x3e\x41\x6b\x9d\x6b\x7d\x92\x4b\x03\x21\xab\x37\x37\x1f\x19\x59\x61\xb3\xc4\x54\x42\x47\x3f\xc4\xe0\xe0\xc6\x6f\xb3\x57\x78\x3a\x3b\x94\xe3\xb8\xc4\x84\x6d\x61\x42\xc1\x31\x4c\x9a\x87\xf7\x49\x26\xf3\xb5\x40\x42\x42\xce\xed\x54\x66\xf7\xc3\x04\xe1\x5c\x57\xee\x99\x4a\x1e\x35\xa8\x4a\xfb\xb7\x6d\xf2\xae\x61\x40\xc3\x6e\x78\x6a\xfe\x54\xdc\xd0\x34\xdc\x6b\x4b\x8b\xe8\x45\x8a\xc1\x72\xb8\xea\xdb\x0c\x0d\xc8\xec\x33\x69\x8d\x5f\x60\xa2\xe7\x90\xd1\x11\x68\x8b\x54\x7e\x06\x5b\x0c\x07\x37\xab\x43\x04\x5c\x3a\xa4\xb0\xc7\x6d\xc4\x75\x52\x90\xfd\x82\x7a\xf6\x43\x02\xf8\xe2\x92\x4a\xd3\xac\x1c\xb3\xe3\xc4\x72\xcf\x65\x16\x97\x7f\x29\xa1\xa2\x67\x5b\x47\x82\xd1\xb4\x9f\x27\x4e\xec\x85\x08\x5f\x47\x76\x2f\x45\xec\xa5\x88\xf6\xb8\x7f\x53\x7c\xc5\xbd\x28\xb1\x17\x25\xf6\xa2\x44\xe7\xe1\xec\x45\x89\x5d\x8a\x12\xcb\x9d\xc3\x8b\x2e\x48\xf0\x54\xc6\x0a\xd0\xad\x44\xc3\xd3\xab\xf3\xb0\xf1\x3e\x85\x35\xb6\x49\xc0\xcc\x5c\x2f\x79\x30\x49\xa6\xfd\x3d\xcb\x2f\x00\xee\xca\x0b\x74\xfe\x76\xc8\xd5\x3b\x0d\xe1\x57\x0b\xd3\x48\x5c\x17\xa3\x39\xfd\xdc\xf2\xc7\x74\xf4\x84\x3e\xcf\x97\x9e\x7b\xef\x89\x5f\xfd\xc4\x8b\xf2\xe5\xbd\xa8\x9b\x87\xb4\xf1\x6c\x6c\xd8\x55\x8a\xed\x0a\x15\xc4\xdd\x05\x23\x93\x9c\x09\x75\x0c\x39\x6d\x80\xbb\xb5\x18\x1f\xc8\x3d\xd3\xf2\xef\x54\x02\xa2\x09\xe3\x69\xc2\x2b\x1e\xd3\xc2\x3b\x9c\x1e\xdf\x63\xf7\x0c\x4f\x1a\xd8\xa1\xc1\xef\xbb\x9d\x9d\x4a\xa8\xfe\xc6\xbd\xe7\xd4\xc7\x11\xfc\xcc\x0b\x99\x87\x41\xa3\x2d\xfb\x52\xf5\xd8\x95\xb6\xee\x3f\x17\x4f\xd2\x58\xd3\x63\xe7\x5a\x98\x2b\x6d\xe1\xcf\x6d\x68\xb2\x1b\xce\x33\x69\x60\x5c\xb2\x00\xb5\x19\xf6\x23\x1a\x4b\xb7\xa1\xc8\x30\xf5\x4d\x77\x50\x31\x38\xb5\x70\x0b\x93\x10\x3f\x43\x52\x8b\x88\x1b\x2d\x0d\xbb\x54\x8e\xe5\xd2\x9a\x41\xa8\x2a\xe6\xfc\x63\x17\x3e\xb8\x42\x69\xd5\x87\xc4\xfd\xa5\x7d\xe0\x52\xbb\x7e\xd2\xc5\x5e\xd3\x1d\x75\x05\x29\xe7\xf8\x0b\x65\x18\xf2\x4c\xe4\x2c\xaf\xb1\xa4\x1c\xa3\xd4\x55\x99\x31\x48\x5c\x65\x90\xd0\xfa\x1b\x45\x4b\xac\x28\xef\x18\x4e\x47\x6f\xc9\xa9\x7f\x31\xd3\x10\x59\xa6\x67\xe5\xb0\xd2\x4e\x6d\x5b\xa7\x7a\x36\x1a\x86\x40\x0b\xa8\x7b\x71\x12\xec\xf1\x87\xc6\xc9\xbb\xae\xa1\x93\x56\xa0\x25\x49\xf6\x66\xc0\x3e\xfb\x8a\xed\xe1\x27\x24\x31\x84\xa8\xd9\x28\x09\xba\xda\xff\xe3\x64\x73\xa7\x9a\x2d\x0e\x79\xd9\xb0\xdb\xcd\x3d\x7c\xa0\xa0\x5a\xb4\xc9\x64\x40\x7e\x40\xf5\xd5\x23\x57\x28\x9d\xa7\x92\x64\x6d\x10\xc5\x20\xce\xc0\x9f\xb6\xb2\x12\x89\x48\x94\xbe\x6d\x35\x7b\xd4\xd5\x7d\xaa\x20\xbb\x21\x0a\x95\xbb\x03\x58\x72\x3b\xed\x11\x1d\x7a\x10\x5e\x65\xb8\xaf\x47\xa2\x10\xf6\xb0\x21\x67\xb5\xd7\xd5\xcd\x0c\x15\x05\xe8\x19\x8a\x3e\xe2\x2a\x82\x03\x93\x5c\x3c\x77\x07\x1f\xfd\x0a\x6c\xa5\x2e\x77\xf0\x26\xe1\xa7\x12\xc9\x5c\x66\x53\x76\x2f\x9d\x7a\x33\x5e\x18\xb5\x47\x8e\x20\x07\x60\x24\xb1\xc1\x59\xf8\xfe\x4e\xdd\xa9\x30\x68\xd6\xdf\x7a\x9f\xae\x6b\x65\xe5\x4c\x78\xc9\xbe\xdf\xf4\x1c\xb1\x0a\x7f\x0e\xda\x4b\x38\x94\xad\x6e\x7e\x52\xb0\x09\xee\xbb\x7d\xa6\xf4\x92\x76\x7e\x2e\xaf\x80\x70\xb8\xe9\x7a\x2f\x8f\x61\xad\x15\xc9\x51\x2b\xe2\x56\x73\xe9\x36\x70\x26\x15\x31\xce\x25\x59\xfe\x63\x29\x8a\xdc\xf4\xad\xee\x27\x8d\xc5\x0f\x6d\x63\xc0\xf2\x0b\x19\xcf\x9c\x7f\x96\x12\xc7\x85\x95\xd8\x18\xe9\x8a\xea\xf5\x7a\xe2\xe4\x74\xec\xa9\x2e\x72\xe3\x15\x6e\x00\xeb\x05\x6d\xc1\x03\xaf\xba\x59\xe2\xf5\xc5\x80\x9d\xd1\xdc\x9d\x57\x5f\x1b\x07\x99\x08\xa9\x10\xe7\xee\x65\x58\x83\x70\xc5\x0b\xa8\x66\x39\xe5\x8a\x7d\xe2\x4f\xf8\xc1\x1b\xf9\x0f\x81\xbd\xec\xf3\x3b\xbe\xea\xfc\x8e\x65\x81\xf3\xdd\x42\x5f\x62\x0e\xbd\xdb\xe7\xc6\x97\xb7\x47\x67\x82\xd3\x15\x04\xe6\xc4\x48\x84\xa1\xf5\x17\xdc\x11\x50\x41\xb2\x0c\xe0\x85\xa1\xc2\xc3\x8b\x72\xca\x55\x3d\x13\x95\xcc\x58\x36\xe5\x15\xcf\xac\xa8\x4c\x8f\x1d\xf6\x0f\x7b\xec\xf0\x6f\x87\x4e\x3e\x3a\x1c\x1c\xe2\x21\x37\xa2\x92\xbc\x80\x1d\x72\xb3\x88\x3a\x5d\xbc\x1e\x20\xc7\x8f\xb8\x11\xdf\x7f\xc7\x84\xca\x74\x0e\x06\xc3\x0a\x50\xce\x16\xb2\x35\x78\x35\x92\xb6\xe2\xd5\x9c\x1d\x51\xc0\xed\x1c\x84\x36\x7c\xe1\x18\x7b\xc4\x4c\x8f\xa9\xa8\x00\x04\x0d\x23\x78\x80\x60\xfb\x13\x61\xb5\x2e\xcc\x40\x0a\x3b\x1e\xe8\x6a\x72\x32\xb5\xb3\xe2\xa4\x1a\x67\xdf\x7d\xff\xdd\xbf\x7f\x63\xd0\xba\xd1\x5f\x01\x47\xb1\x2e\xc0\x49\xce\x66\xb5\xe5\xa3\x8d\xf2\xc0\xa5\x6f\x07\x40\x51\x8e\x59\xba\x73\x0f\x68\xb9\x02\x2a\x5f\x51\x28\x2e\x4c\xc6\x58\x5d\x25\x66\x05\x5c\xb8\xac\x9d\x45\xc2\x8e\x80\xf7\x52\xb0\xae\xcf\x90\xf0\x85\xcf\x67\x3a\x87\xa8\xa1\xe3\x18\xb3\x9b\x7e\x14\x4b\x6c\x39\x3a\xd3\x6a\x0f\x98\xd1\x6a\x4e\x48\xe2\xe7\x29\x96\x15\xd4\x59\x89\xb8\x6b\x23\x11\x68\x15\x1a\xee\x40\x43\x0f\x13\xbd\x28\xa7\x62\x26\x2a\x5e\xfc\x4c\x75\xc9\xc6\x82\xbb\x2b\xc6\x26\x8b\x00\x35\x9d\xcc\x75\xfb\x04\xa0\xdf\x4b\x02\xd0\x3f\x7d\xc2\x32\x2c\xd7\xf9\xd6\xc4\x7d\x4b\xf2\x1d\x3f\x8b\x21\x9f\xbe\x60\xf9\xdc\x1d\x6b\x47\x11\x47\x52\x71\xa8\x67\x9e\x50\x5a\xe5\xaf\x82\xa3\xc5\x03\x76\x09\x46\x94\x50\x58\x09\xea\x9c\x83\xc7\x04\xab\xb7\xe3\x32\x48\xc0\x47\x9b\x09\x3b\xd5\xf9\x80\x9d\x16\x8b\xb0\x79\xbc\x12\xa8\xb8\x3a\x2a\x45\x1c\x3c\x8f\xb2\x8b\x56\xd8\x69\x0f\x40\xd6\xdc\x3f\x41\xeb\x55\x73\x26\x9e\x10\xa2\x31\xea\xed\x58\xc2\x49\x3c\x88\x00\x8a\xf2\x38\x15\x88\xbf\x0e\xc3\xf6\xb7\xed\x74\x78\xd9\x35\x86\xf9\x79\x7a\x04\x84\x58\x83\x13\x29\x93\x85\x04\x4c\xfd\xb2\xd2\x93\x8a\xcf\x66\xdc\xca\x8c\x4d\xb9\xca\x0b\x37\x14\x54\x2b\x02\xbf\xdc\x51\x08\xd8\x72\x51\x7a\x87\xe9\x60\x24\xc5\x36\x7e\x7b\x69\x0e\x18\xf6\x79\xa1\x1e\x36\xbb\x8e\x9b\x2d\xc9\x5a\x04\x31\x77\xb8\x96\x56\xb3\x92\xea\x55\x10\x55\x7d\x90\x95\x56\x60\xef\x7b\xe0\x95\x74\xbc\xc4\x80\xe5\x7c\xe0\x34\xb4\x5b\x52\xa6\xc0\xa4\x46\xa2\x85\xe5\xd5\x44\x58\xea\xf0\xd0\xa4\x52\x34\xe8\x7d\x81\xa8\xa3\x96\x2b\xe6\x7d\xe4\x0b\x25\x97\x15\x54\xe5\x5f\xfa\xcd\x0e\xb2\xb5\xda\x6c\x3c\xbb\x4a\x0c\x67\xe4\xa4\xb3\x3b\x86\x7f\x84\x18\xff\x93\x6f\xe0\x3f\xcf\xa7\xef\x1e\x08\x68\x13\xf2\x3f\x92\x9a\x86\x03\x8c\x76\xd0\x6b\x2a\xa4\x26\x77\x65\xed\x2f\xb6\x37\xc3\xd7\xff\x22\xe6\x1d\x7c\x0f\x0b\x6d\x93\x73\xe8\x24\x5e\xd0\xd7\xb0\x51\x87\x6d\x47\x8c\xba\x4d\x26\x53\xea\x37\x91\x7d\x03\x3c\x10\x50\xb5\x01\x4b\x6c\x33\x0f\x60\x8e\xa0\x76\xf7\x62\x1b\xef\xfe\xfe\x30\xba\xb5\x03\x8c\x64\x13\xd5\x98\x1d\x9c\xcb\xe5\x76\x12\x77\x08\x76\x60\x05\xad\x84\xdd\x80\xfa\x10\x1b\x35\x51\x00\x3a\x1f\xd7\xbd\x05\xe0\x9f\x0e\xe1\x81\x08\xc1\xb6\xd0\x0e\xcd\x5c\x0e\xb3\x44\x00\x78\xb1\xff\x11\xfb\x5c\x29\xba\xee\x01\x1d\xfe\x85\xf4\xb9\x3d\xa0\x03\x3e\x7f\x5d\x09\x7e\xf7\x48\x0e\xd8\xef\xb0\xd2\xff\x8d\x06\xb0\x75\x0e\xfa\x9c\x97\xe8\xc3\x46\xca\x04\x5a\x1f\x78\x48\xfe\x1b\x40\xb6\x29\xa0\x65\x6b\x11\x1d\x7d\x59\x14\xe8\x01\x7e\x96\x76\xd7\x4e\x4e\x87\x10\x4f\x4a\xd3\x27\x51\x7e\x99\xe9\x9c\x6a\x42\x82\xbb\x04\x04\x91\x01\xbb\xd2\x36\xb8\xac\xd1\x80\x25\x73\x2c\x40\x5c\x78\x0f\x3c\xcc\xab\x11\x97\x13\x0a\x33\x20\x58\x05\xfa\x6b\x66\x3a\xef\x92\xbd\xdd\x89\xf0\x37\xca\xcb\xf7\x30\x3f\xba\xa9\x9e\x2c\x99\x5d\x53\x7e\xcb\x44\xee\x45\x9f\xb8\x90\x7e\xe5\x82\x6e\x1e\x97\x90\x1c\x58\x8f\x53\x6d\xc8\xab\x4f\xd9\xc5\x4e\x62\x72\xbc\x96\x76\xce\x3f\xa6\x64\xc2\xcb\x71\x3b\xe7\xdf\x5d\x63\x91\xe3\x16\xac\xf9\x72\xc4\x35\x28\xb9\x9d\x9a\x1e\x55\x60\x58\x78\x9b\x08\x2a\x1d\x02\xf8\x20\x8a\xe6\xd2\x24\x7d\xa0\x93\x2f\x44\x26\xa2\x52\xd7\xb0\x93\xf6\xd2\xf9\x1a\x61\xeb\x12\xfb\x17\x55\xa5\x2b\xf7\x61\x61\x7c\xad\x8b\x19\xaf\xee\x45\x1e\x90\x50\x07\x6c\xe8\x46\x18\xc4\xc6\xe0\x1d\xf5\x12\x88\xfb\x26\x59\xcf\xe1\x23\x87\x83\xc1\x21\xd6\xad\x77\xfa\x84\xe5\x95\xc5\x00\x2f\xf7\x7c\xc7\xe1\x3e\x7f\x11\xf3\x5b\xed\x86\xf7\x22\x8e\xbb\xd7\x10\x5e\x49\x43\xd8\x4a\xec\x8f\x21\xbe\x9b\x64\xff\xd0\xb2\x19\x74\x4f\xf3\x09\xbf\x82\x31\x6d\x0a\xe6\x0c\x5d\x4f\xa6\x69\x54\xaf\xa3\x71\x95\xb0\x95\x14\x0f\x22\x92\x70\xb0\xc8\x3d\x03\xae\xb5\xeb\xf9\x91\x86\xd5\x4a\xfe\x5a\x23\x01\x05\x6a\x1e\xbe\x82\x23\xf1\xf3\x09\x74\x37\x24\x6e\x6f\xa7\xf7\xe2\x04\x36\x0f\x0d\x87\xd0\xac\x75\xcb\xb3\x30\x4e\x24\x2f\x89\xc6\x0e\x04\xd2\x9f\x12\x9c\xd3\x17\x4b\xfd\x84\x11\x74\x4c\xd0\x08\xec\xf9\xa6\xc1\x9e\x77\xce\x94\x77\xc1\x8a\x6f\x52\x4e\x6b\x7c\x9a\x06\xd3\x8f\x4a\x54\x10\x11\x87\xb9\xe7\x60\x8c\x73\xa4\x37\xe4\x2e\x0b\x48\xcc\x95\x6a\xd2\x81\xfd\x12\xb7\xee\x10\xdb\xfd\x99\x08\xca\x7b\xe0\xec\x6c\xe4\x68\x43\x4d\x26\x61\x23\x2c\x2b\x45\x35\x93\x18\x21\xca\xb4\x0a\x31\xbf\x38\xff\x51\x28\xf7\x92\x04\xda\x28\xa6\x33\xeb\x15\xd8\x50\x87\xe8\xcd\x9b\x37\x6f\x60\x3e\x6f\xfe\xf8\xc7\x3f\x32\x08\x19\xcf\x45\x26\x67\x8b\x0d\xa1\xd5\xbf\xbd\x7d\x3b\x60\xff\x79\xfa\xe9\x23\xe3\x19\x50\x55\xc4\x10\xc2\x9e\x5d\x83\xc6\xcb\xa6\xc7\xfe\xcf\xcd\xe7\x2b\x1f\x2c\x69\x5a\xbf\x42\x88\x7a\x98\x5e\xab\x4c\xd4\xf7\xdf\x7d\x37\x60\xe7\xb2\x02\xbb\x98\x24\x5b\x2b\xed\x24\x70\x37\x5e\x09\xe0\x7d\x7c\x3c\x46\xe6\xee\x4b\xe1\x50\x88\x15\x39\x05\x67\x72\x32\x85\x05\x00\xa8\x24\x35\x2e\x64\x46\x0c\x11\xd3\x0d\x7c\xac\x0d\x26\x56\x43\x5f\xf1\x6c\xb8\xc1\xf5\x10\xc9\x69\x6c\xfe\xec\xc4\xe1\x9e\x47\x4b\x77\xb4\xc1\x09\x5e\xe4\xa8\xc4\xce\xe2\x5e\x35\xc2\xb7\x18\xdb\x09\x54\xff\x5e\x78\xdb\x0b\x6f\x6c\xed\x69\xf8\xf2\xc2\xdb\x2e\x05\x1f\xb3\xad\xe4\xb3\x90\x40\xd0\x21\x7c\x38\x15\x29\xa3\xe8\x61\xb1\x4c\xca\xa1\x69\x8a\x06\xf5\x0a\xf3\xc9\x3a\x71\x93\xd2\x44\x4e\x88\xa3\x7c\xb3\xcc\xde\xf5\x9a\x6c\xba\xae\xa4\x9d\x9f\xb9\x9b\xf7\xb4\xc1\x8e\x9b\xb6\x8c\x51\x63\xf0\x94\x35\x6c\x76\xcd\x72\x57\x09\x6a\x49\x02\x23\x33\x60\x37\x7a\x46\x51\x1c\xe8\x91\x4d\xee\x14\x30\x8b\xf6\x17\xdd\x5d\x18\xea\xbc\xf5\x78\xc0\xd8\x2f\x53\x41\xaf\xb8\x6e\x8c\x68\x06\x38\x4b\xb5\xd0\x93\xe5\xf7\x22\xa9\xa5\xd5\xc5\x08\x5d\x14\xfa\x71\x58\xc9\x07\x59\x88\x89\xb8\x30\x19\x2f\xba\x54\xa7\x39\x5d\xf1\x9a\x2f\xd4\x12\x33\xb2\xc0\x62\x90\x39\x02\xe1\x18\xc5\xc4\xdd\xf3\x99\x86\x45\xa1\x97\x29\x8a\xce\x5d\x81\x92\x03\x90\x16\xbd\x40\xfc\xcb\x9d\x76\x96\x03\x1f\x44\x4f\x38\xf6\x2f\xc7\x14\xea\xf9\x37\x25\x1e\xff\xe6\x7a\x33\x6c\x5c\xf0\x49\xd8\x1d\x88\xdd\x57\xad\x28\xcf\xd0\xf5\xca\x09\x38\x12\x5d\xd5\x82\xf1\xe2\x91\xcf\x0d\x3a\xbd\x9b\x7d\x48\xf3\x9e\xbd\x3d\x66\x55\x0d\xf5\x19\x43\x1f\x39\xfb\xf6\x18\xc4\xfc\xb3\xd3\xe1\xdf\x6e\xfe\xf3\xe6\x6f\xa7\xe7\x9f\x2e\xaf\xb6\xb8\xc1\x19\x2f\xf9\x48\x16\x72\x49\x90\x42\x77\xe2\x76\x96\x76\xb2\xce\xfe\x07\x02\x68\xd2\x18\x4e\x73\x9e\x9f\xe4\x95\x2e\xc9\xe5\x5f\x2b\xe5\xc4\xc9\xb0\x02\x2d\x49\x25\xb5\xc2\x50\xc2\x44\xa3\xc3\x49\xc5\xd3\x3c\xa1\x85\x90\xdb\x15\x69\x8a\xe1\x80\x6c\xb2\x46\x5f\xd7\x2a\xdd\x1d\x15\x8f\x56\x8e\x56\x21\x36\xc4\x5d\xc7\x3b\x93\xfc\x1a\x67\x04\x17\xcc\x35\x51\x56\xf2\xa2\x98\x33\x27\xb0\x3d\xf0\x02\x9c\xd3\x9a\x55\x5a\x87\xc3\x34\xd5\xc6\x36\x17\x00\x12\x1d\xb7\x09\x9d\x72\xa7\x11\x12\x5b\x37\xcc\x30\xb4\x63\xb9\x50\xda\xa7\xc8\x58\x2a\xb5\xee\x7e\xc5\xb4\x6b\xa2\xd4\x69\xde\x6f\xd8\xb1\xdb\x64\x97\xa4\xf1\xe3\x1f\x86\x9e\x51\x0a\xa8\x4d\x40\x77\x5b\x11\x18\x8d\x42\x6b\x25\x78\x0e\x91\x29\x20\x80\x10\x37\x37\xf7\x5e\x22\xa1\xab\x1b\xc4\x5e\xd7\x63\xf8\x14\xc0\x0d\xf9\xa8\xb3\x31\xe5\x98\x8e\x84\x8f\x56\x7b\x41\x6a\xf2\xb5\xd6\x36\xa6\xa4\x6f\x58\xd4\x5f\x02\x27\x96\x69\x8d\xa0\x29\xc8\x73\xae\x47\x0c\xbd\x81\xad\x8f\x39\xec\x8d\xd4\xd0\xad\x37\xbe\xaa\xd5\x29\x8a\xd3\x1d\x1c\xd6\x7f\xbe\x3c\x87\x33\x58\x2b\x72\x87\xd8\x6a\x8e\x0e\x91\x58\xef\xbf\x4d\xde\x7e\x72\xfb\xd8\x0e\x69\x97\x20\x1a\x0b\xa7\x13\xf1\x39\x62\xb7\xfa\x0c\x01\xb5\x9c\x01\x5d\x8e\xfd\xcf\xcf\x60\x5c\x09\x93\x6a\xc2\xa7\x2e\xe3\x56\x66\x29\xbb\x62\x0b\xfa\xc2\x76\x35\xc9\xdc\x32\x5f\x69\xe5\xce\x45\xe7\x54\xe2\x90\x40\x15\x97\x15\xa4\x32\xa2\xf7\x1c\x42\xba\xe0\x54\xd4\xc6\x71\xfb\xcb\x71\x12\xbb\xf9\x17\x4c\xd5\x40\x26\x04\xc1\x03\x3e\x7e\x46\xce\xf8\x44\x30\x6e\xc3\xae\x40\x62\xb5\xa9\x2b\xb2\x7f\x4b\xcb\x72\x2d\x50\x08\xa7\x4f\xfd\x74\x79\xce\xde\xb0\x23\xf7\x2d\xac\x51\x35\xe6\x12\xcc\xe2\x28\x17\xb7\xb8\xd2\xd8\x77\x01\x43\x82\x8d\x76\xa2\x25\x9c\xd1\x1e\x53\x9a\x99\x3a\x9b\xfa\x31\x85\x3c\x71\xa7\x1e\x88\xca\x2d\x35\x20\x15\xfe\x33\x9c\x8b\xee\x37\xec\xa7\xcd\x58\x63\xee\x82\xfd\xb4\xc5\x05\x4b\xe9\x3f\xe4\xef\x37\x66\x84\x9b\x1d\x62\x7f\xe5\xb8\x59\xdc\xf8\x9f\x62\x99\x5f\x7e\xfd\x8c\x58\x01\x11\xc8\x9e\xe7\xd3\x6e\x22\x0d\x6e\x12\x66\xbc\x5d\x2a\xf3\xd3\x5c\x8b\x30\xe8\x2f\x4b\x53\x0f\x5f\xe4\x7e\x70\x59\x9c\xb0\xec\x88\x84\x63\x10\x5c\xe5\x7a\xb6\xf0\xb1\x00\xa7\x9b\x7c\xe0\xab\xdd\xee\x55\xfa\xe3\xf2\x0c\xc0\x67\x6e\x5a\xb3\x9b\x4d\x9b\xe6\xf3\xc2\x82\x31\x0a\x05\x19\x6f\xd1\x6a\x6e\x57\xbb\x31\xea\x58\x3e\x74\xd6\xe2\xea\x91\x22\xcb\xee\xea\x37\x6f\xbe\xfd\x3e\xd9\x51\x00\x7f\x6c\x6f\xb3\xef\x4a\x3f\x88\xaa\x92\xb9\x08\xaf\xd3\x0f\x2b\x16\xeb\x51\xaa\x5c\x3f\x9a\x97\x9e\xf0\x5f\xb0\x9b\xd6\x8e\x75\x3d\xf0\xf4\x76\x28\xb8\x1f\x52\x2c\x1b\x0a\x6a\x51\x34\xc4\xc1\x65\xa7\xde\x2f\x42\x88\xbc\x58\x3c\x6d\x81\x69\x60\x32\xdc\x6f\x77\x62\x5f\x6e\x1f\xa8\x1e\xe4\x06\x1f\x0f\xb4\xc0\x38\x17\x44\xc7\xe6\x23\x63\x2b\x1e\xc0\xda\x8d\x1e\xdb\x47\xd4\xcc\xb1\xe9\x11\x5c\xff\x27\x3e\x2b\x0b\xd1\x63\xb3\xb9\xf9\xb5\x38\xf6\x09\x3b\x14\xa9\x0c\xe9\x71\x0c\x2c\xeb\x69\x6b\xf6\xee\xdd\x9b\xef\x8f\xa3\xec\x51\x56\xfa\x69\x8e\xe6\x40\xb0\x6f\x47\xab\x6b\x33\xcd\x3e\x17\x56\x54\x33\xf0\x9a\xa0\x00\x0f\x35\x71\x91\x58\x29\xf3\x28\xaa\x18\x21\x43\x81\xb6\x15\xf8\xa0\xc2\x37\xf6\x71\x6a\x5f\x75\x9c\xda\x3e\x18\xeb\xf7\x12\x8c\xf5\x4f\x9f\x5c\xf3\x92\x6a\x80\x44\x4b\x9f\x5f\x07\x70\x24\xa6\xfc\x41\x6a\x2c\x33\xef\xe9\xec\x3f\x6f\x3d\x40\xbf\x0e\x9b\x2b\x01\x7e\x5a\x5e\xcc\x3b\x56\xfb\x47\x5e\x40\xeb\x31\xa4\x4c\x8d\x08\xc6\x43\xc6\x8a\x6b\x6f\xc7\x78\xf5\xd3\xf3\x15\x97\x09\xf4\xbc\x7e\xc7\x41\x7a\xd0\xe9\x69\x96\xb5\x0c\x78\x2b\xe4\x08\x6a\xc8\x46\x8e\x22\x31\xab\x27\x60\x7d\x7a\xcf\xfe\x40\xd2\x45\x8f\xd5\x2a\x17\x95\xb1\x5a\xc3\x2e\x3a\xa5\x92\x3c\x7b\xa5\xa8\xa6\xbc\x04\xaf\x76\x29\x2a\x59\x4e\x45\xc5\x0b\xda\x62\xd3\x43\x9c\x33\x45\x81\x73\x76\x0e\x3d\x96\x95\x54\x99\x2c\x39\xe1\x65\x93\x8f\x96\xd7\x76\x8a\xd1\x75\xee\xa8\x00\x06\x4f\x6d\xa7\xba\x02\x66\xf8\x87\x88\x77\x83\x9e\x1a\xb3\x17\x0d\xbe\x66\xd1\x80\xd7\x56\x83\xd5\xb7\x79\xc0\x6e\xf5\xbd\xd8\xb8\x1b\x6b\x5e\x6d\x40\x77\xa0\x85\x14\x64\x4a\xef\x05\x80\xc8\x11\x08\x32\x40\x99\x97\xd3\xb9\xa6\xcd\x98\x72\x70\xee\x02\x22\xa6\x85\xfe\x60\x9c\x1c\x42\x3a\x8b\x39\xda\xa9\x9d\x30\x70\x46\x61\x03\xa8\x70\xe5\xae\xa1\x0d\x5a\x17\xe8\x68\xdb\x98\x7d\xc0\xf0\x32\xac\x8b\xe2\x86\x8e\xf0\xa6\xf4\xef\x66\xf3\x66\xb4\x7f\x13\xbc\xd1\xf8\x26\x68\x25\x32\x7c\x26\x16\x7c\xa4\x70\x17\xcb\xba\x28\x7c\x5e\x25\x8c\x07\xdd\x0e\x6e\x11\x09\xe6\xca\x87\x59\xc1\x42\x36\xf7\x60\xc0\x16\xc6\xe4\x34\x8c\x1c\x34\x08\xca\x50\x62\xfe\x97\x91\xc8\xb8\xfb\xaa\xff\x3b\xe4\x8c\xd7\x2a\xc1\xbf\x2b\x75\xde\x83\x8a\x5a\x4b\x7b\x06\x23\x37\xcf\x32\x2c\xb5\x45\xec\x83\x10\x67\xb6\x49\x70\x20\x0d\xf3\x04\x67\x7e\xf2\x4d\xcc\x85\xed\xc3\x23\xb7\x3a\xb4\x94\x7d\xad\xfa\xbc\x5f\xea\x7c\xb7\x7e\xfd\xa5\x70\x9d\x2f\x71\xf1\xef\x85\xf0\xbd\x10\xfe\x95\x08\xe1\x9d\xa8\x5a\x42\xcc\x7c\x50\x51\xc2\xd5\x7d\x5d\x22\x32\x8c\xd6\x74\xed\x1b\x44\xde\xc7\x0f\x2e\x21\x4f\x5f\x5d\xca\xd3\x96\x37\xbd\xf1\x53\x43\xf2\x04\xcc\xb7\x3e\xa4\xd1\xf7\x31\xa5\x14\x23\x6c\x37\xbd\x41\xd8\x71\xf0\x02\xbc\xfd\x15\xca\xc0\x5e\x5c\x7d\x45\x51\x78\x63\xda\x64\xbb\x71\x3b\x7d\xb2\x21\x2e\x53\x74\xfa\x5e\x14\xfd\x9a\x45\xd1\x2e\x71\x99\x1f\x97\xee\x6f\xe7\x1c\x4a\xcb\xcd\x7d\xa4\x26\xc2\x49\x0d\x49\xcd\xab\xf8\x9c\xc4\xd2\x3e\x89\xa5\x3b\x2e\x9b\xdd\xba\x45\x7b\xa1\x62\x2f\x54\xec\xd3\x2c\xbf\x2c\xeb\x7a\x8d\x74\xcb\x05\x25\xb8\x53\xee\xe5\xda\xf7\x5a\x75\x38\x42\x0c\x77\x5b\x6d\x46\x1d\x99\x12\x42\x30\x6a\xaa\x8c\x9d\x90\x42\xe7\xf3\x1e\xa4\x32\x8e\xbb\xf0\x15\xbd\x84\xf8\x70\x2f\xcb\x81\xe7\x3a\xa9\xbf\xe1\xb4\x53\xa7\x2f\xf2\x09\x97\xca\x58\xa7\xa4\x1b\x76\xf4\x97\xb0\x6b\xa0\xb5\x23\x9d\x60\xba\x8a\x75\x0d\x8f\xbb\x78\x89\xea\x5c\xb6\xb2\xa6\x96\x2d\xda\x29\x35\xf3\xc2\xa9\x63\x84\x0a\xfc\xb6\xfe\x07\x9f\x04\xe3\xa6\x34\x60\xa7\x8e\x97\xca\x12\xa8\x11\xd8\x80\x71\xaa\x10\x91\x83\x16\xaf\xf1\x9c\x49\x6b\x44\x31\xc6\x40\xf1\x60\x09\x1b\xcb\x76\x54\x06\xa0\xd6\x2d\xfb\x4c\x2f\x56\x5f\x80\x32\x8e\xc4\xcd\x89\x19\x27\xa3\xb9\x4d\x7b\xc8\x5b\x31\x90\xc9\x67\xa9\x73\x47\x26\x60\x35\xb7\x88\x69\x13\x4f\xa5\x44\xa9\xf9\x46\x64\xda\xdd\xdf\xf5\x0b\x7b\xd1\x6e\xef\x57\x98\x68\x37\xa2\x1c\x07\x19\x06\xe2\x80\xa4\x9d\xb7\x4c\xc9\xcd\x13\x35\x60\xa7\x26\x4e\x9f\xf1\xb2\xac\x34\x87\x5a\xd2\x71\x74\xbd\xd4\x60\xe0\x73\x04\xca\xa2\x9e\x48\x8a\x30\x82\x77\xac\x7c\x10\x10\x4c\x67\x7d\x3c\xd4\x8a\x0f\xde\x26\x9d\xc1\xeb\x14\xeb\x54\x01\x9a\x16\x84\x62\x86\x2e\xe8\xd4\x8f\xd3\x3f\x0c\xd3\x45\x0e\xbc\x8d\x2b\xf6\xef\x6f\x58\x29\xaa\x8c\xce\x0e\x94\xb1\xa7\xc8\xab\x42\x3e\x08\x08\xbc\x5f\xfd\xf2\xb7\xdf\xb1\xa9\xae\x2b\x33\x48\x43\x7d\xde\xc2\x33\x14\xd7\x7c\x5e\x91\x65\x85\xe0\xc6\xb2\xb7\x6f\xd8\x4c\xaa\xda\x2e\x80\xca\xbf\x3c\x92\xa6\xe4\x76\xba\x61\xff\x87\xdc\x4e\xfd\x96\x43\xfe\x44\x1b\x45\x18\x23\x44\x1b\x71\x4d\x90\xb5\x62\xb5\xa7\x38\xe9\x52\xa8\xee\x68\xe1\x1d\xb9\x49\x99\x64\x5a\xbc\x00\x99\x05\x4e\x4d\x37\x1d\x03\x44\x4e\x0c\xe7\x4f\x21\x3c\xe0\xb7\x3d\x44\xeb\xef\x47\xa5\xf0\x5b\xfa\x2a\xb2\xfe\x5e\xc8\xdf\x0b\xf9\x7b\x21\xff\x4b\x09\xf9\xaf\x26\xdd\x0f\x75\xd5\x81\x63\xb8\x56\x11\x89\x39\x4d\xd4\xd7\xca\x93\x99\x43\x03\xe1\x5b\x9d\xf8\x47\x39\xac\xb4\xd5\x59\xa7\xba\x4f\x10\xac\x47\x05\xb5\x4a\x7a\x8d\x32\x39\x24\x7d\x12\xf5\x03\xcc\x58\x1d\x6b\xc2\x1a\xf5\x67\x2e\x11\xe3\xb1\x52\xb2\x99\x2b\xcb\x9f\x06\xec\x27\xd5\x2f\x2b\x31\x96\x4f\x22\x47\x87\x15\xf8\x7d\x1c\xc9\x80\x90\x02\xf7\x89\xcb\xd3\xab\xd3\xd8\x93\x17\xcd\xb0\xf1\x11\x37\x4e\x8a\x62\xd7\x1f\xce\xfa\xdf\xbf\x7b\xf7\x6f\xc0\x58\xdc\x31\x7e\x7f\x72\xf2\xf8\xf8\x38\x90\x5c\x71\xc0\x6e\xe6\xc6\xc8\x09\x80\x35\x9a\x13\x6f\x86\x81\x2e\x8e\x07\xec\x0a\x80\xa1\xa9\x7f\x3f\xbb\xc0\xe3\x9c\x4e\xd2\x1a\x22\x04\xab\x73\xc3\x66\xf3\x4c\xcf\x4a\xae\xe6\x83\x4c\xcf\x4e\x66\xf3\x7e\x56\x1b\xab\x67\x7d\xdf\xc7\x0a\xe4\x63\x5f\xe4\x69\x52\xf3\x2a\x8f\x7e\x2d\xaf\xb2\xc5\x8d\x69\xc0\x1f\xc3\xd4\x12\xd0\x64\x9f\x43\xfe\x2a\xa0\x7f\xcd\xf2\x2d\xb4\xc5\x69\x92\x77\x88\xee\xc0\x34\xee\x80\x49\x78\x7e\x75\xf3\xb7\x8f\xa7\x3f\x5c\x7c\x44\x0c\x58\xf7\x9a\x89\x88\x0e\x49\xa8\x0d\xbe\x03\x1e\x59\xc2\x7d\xa0\x54\x7f\xc8\x2b\x84\xb8\xc4\x5c\x54\x9e\xc1\x78\xd6\x60\xa8\x70\x1a\x75\xd4\xc3\xc1\x41\x57\x50\x9a\x09\xd3\x74\x5d\x4f\x87\xb4\xd8\x34\xde\x0b\xea\x60\x08\x47\xd5\xe7\xef\x3b\x11\x5b\xfb\x4a\x1f\xe9\x35\x93\x26\x14\x70\x80\xcc\xaa\xe8\x53\xde\x66\xbd\x75\xde\xbe\xe2\xab\xd6\x1c\x51\x0d\x14\x86\x69\x43\xa5\x08\x1d\x11\x26\x12\xc7\x36\x96\xfb\xd7\x06\x32\xa4\x05\x96\x0b\xf8\xd3\x15\x7d\xc7\xe9\x0e\x1f\x35\xcf\x7f\xe0\x05\x57\x99\xa8\x06\xec\x27\x53\x83\x83\x1b\x6f\xc1\x62\x24\x4e\x33\xd9\x5b\x26\x59\xa4\x14\x54\x9e\xc7\x0a\x81\x34\x80\x31\xab\x15\xa8\xfe\xba\x62\xa2\x30\x02\x41\x0e\x48\x62\x4c\x5b\xc6\x8a\x7f\x69\x76\x92\xd5\xe0\x7b\xef\x27\x51\xeb\x30\x77\xd2\x79\x68\x2f\x6e\xe7\x65\x3c\x82\x3e\xe6\x35\x24\x6e\x69\xb5\x45\xde\x2f\x89\x63\x7d\x25\x2c\x21\xcd\xf8\x67\x27\xc0\xab\xfa\x6e\xd5\xdd\x50\x76\x8d\x0f\x50\x3e\xe3\x04\x34\x32\x79\xfd\x46\x47\x04\x85\x65\x07\x71\x07\x03\xec\xce\x0e\x2e\x87\x2b\xb9\xc0\x0d\x42\x73\x18\x76\x77\x70\x7b\x36\xc4\xa2\xa8\x3f\x9d\xc3\x3f\x1c\x01\xbb\x3b\xb8\x39\xbb\x1d\xb6\x2a\xa4\xde\x9e\x0d\xb7\x29\xf7\x02\x48\x24\xcb\x2e\xd6\xf3\x44\xa9\xda\xca\x62\xe0\x68\x8b\xad\x06\x97\xca\x7e\xae\x6e\xf0\xa3\xeb\x84\xa9\xab\x7a\x36\x42\x3b\x54\x5a\xe4\x0a\xf7\x4e\x53\xc4\x82\xcf\xc9\xc4\xe0\x0a\x18\x6c\x72\xf3\x3c\xfd\xa4\x9e\x3c\x05\x25\x72\x55\x71\x35\x11\xec\xad\xeb\xec\xfb\x7f\xfb\xb7\x77\xff\x36\x60\x57\x29\xaa\x0c\x57\xc0\x15\xff\x76\xf3\xf3\xd9\xdf\xae\x4e\x3f\x5d\x34\x0a\x70\xf2\x50\x16\x21\xb9\xc8\x85\xd6\xf7\x22\x67\x75\x49\x69\x62\x10\x32\x8e\x37\x4e\xa5\xb8\x2e\x43\x48\xaf\x4f\x72\x8a\xdc\x5e\x2e\xd4\xf7\x6c\xc5\xe6\xa3\x56\x40\x8b\x70\xe8\x5e\x09\xd4\x97\x70\x51\x8e\xd2\x18\xb0\x19\x2f\x8f\x1b\xe2\x82\xeb\x78\xa2\xa0\x7e\xc1\x18\x60\x76\xf1\x8e\xa2\xcd\x2c\x2b\x6a\x63\x45\x75\x39\xfc\xd3\x95\x56\xa4\x3a\xc6\x7a\x36\x7a\x26\xad\x45\x2a\x64\x84\x65\xe2\xd7\x1a\xc1\xd9\xda\x23\xd9\x2d\xa1\xc0\x63\xa5\x26\x7d\xee\x7d\x3a\x5b\x98\x1c\xdc\xc1\xdd\x91\xc9\xe1\xa6\x19\xff\xba\x42\x80\xa4\x00\x56\x2c\x74\x81\x56\x00\x6e\x51\xa6\xf7\xa9\x85\x1c\xf3\xc5\x10\xb0\x06\x4e\x30\x5f\xa4\x37\x2b\x65\xca\xb0\x55\x1b\x48\x48\x68\xe7\x6d\x42\x97\xc3\x76\xf1\xe2\x60\x81\x53\x74\x88\x5a\x0c\x0c\x53\x9c\x8a\xb9\xbf\x4f\x33\xee\x7a\x44\x14\x11\x15\x3a\x6b\x40\x89\xcc\xb8\xa2\x4e\xb0\x4f\x77\x90\xa5\xf2\xa9\x3c\x60\x60\x35\x9d\x98\xdf\x7f\x44\x6b\x6c\xaf\x0b\xdb\x4b\x4e\x7a\xc6\x95\x07\x3e\xc9\xa6\xee\x8e\xe7\x21\xeb\x01\x55\xd9\x50\xc8\x2f\x01\xcd\xbf\x3b\x70\x27\xdf\x51\x50\x28\x14\xe7\x75\xf1\xa3\xbb\x83\xbb\x83\xe3\x1e\xc2\x02\x21\x16\x74\x5c\xc7\x41\x78\xcb\xdb\xe9\xe3\x42\xb8\x3b\x36\x15\x3c\x07\x64\x94\x78\xd9\x9c\x1c\x01\x69\x17\x50\xdb\x98\x92\x3d\xe9\xe8\x52\x41\xb4\x58\xad\x0f\x24\x0e\xc3\xce\xfc\x4e\xf6\x98\x97\x3e\xf0\x86\x36\xe5\x8f\x4b\xba\xdd\x49\xb1\xaf\x8b\x27\xb4\x08\x39\xba\xb6\xdb\xcb\xf9\x20\x2b\x5b\xf3\xa2\x2f\x4b\x83\x31\xbf\x24\xee\xbb\xb9\x2d\x00\x0e\x74\xb3\x76\xe3\x50\x2f\x87\x9b\x8c\x3e\x49\xcb\x66\xe0\x40\xdc\x18\x02\x56\x42\x99\xce\xc9\x1a\x21\x68\x8f\x6e\x85\xcf\xe6\x33\x9a\x50\x9c\x98\xad\xf8\x78\x2c\xb3\xc8\x69\x03\xf3\x60\xb7\x53\x61\xdc\xf5\x31\x01\x70\x09\x81\xb0\x80\xcf\x44\xa5\x0b\x5b\xe2\xdd\x06\x13\x9f\x29\x9d\x80\x3d\x2a\x30\x28\x10\x52\x7d\x51\xd4\xe6\xf1\x73\xbc\xaa\xe4\x83\x3b\x82\x16\xf2\x8a\x73\x91\x94\xa2\xbd\x1c\x0e\x18\x3b\x85\x4a\xcb\x4e\x5a\xa5\x3c\x21\x90\x4a\xc9\xd0\x57\x68\x9e\xf7\x47\x74\x02\x3c\x75\xa1\x31\x96\xbc\x0a\x66\xde\x44\x33\x24\x69\xf4\x8b\x14\x34\x5c\xb2\xbd\x1d\x60\x69\xd2\xa6\x9e\x76\x85\x19\xa7\xa1\x93\xdc\x82\xa3\x20\x57\x50\x06\x32\xc1\x6b\xa0\xda\x02\xb6\xae\x28\x61\xfb\xcc\xf1\x6f\x30\xa0\x56\xf9\x92\x1d\xbe\xd2\xf1\x4e\x7a\xba\x24\xd5\x83\x2e\x1e\x20\x57\xb7\x85\x05\xef\xd4\xe0\xb7\x6f\xbf\x7d\x07\x38\x10\x20\x99\x1c\x6d\xa8\x65\xe4\x5a\x63\xfe\x76\x10\xab\x6f\xa9\x58\xfe\x48\x34\x2f\xe9\xf6\x17\xe7\x16\x4f\xd4\x50\x17\x32\xdb\x84\x82\xbf\xf4\x9d\x00\x2d\x21\x5b\xba\x40\x2e\x0c\x62\x38\x68\x56\xe9\xda\x26\xbb\xe1\x4f\xb1\xd5\x70\x76\xfb\x98\xdb\xa6\x2b\x7f\xcd\xfa\x8f\x32\x4f\xf4\xca\x81\xaf\x3e\x78\x77\x80\x90\x38\xd5\x83\x07\x9b\x20\x43\x24\xda\x36\xdd\x45\x56\x39\xe3\x0f\x5a\xe6\x04\x6d\xab\x55\xce\xa6\xba\x84\xcd\x4b\xc9\x1e\x34\xbc\x22\x6d\x02\xe9\x9e\xa7\x5b\x18\xf2\x5a\x49\x73\xef\xc4\x66\x1b\x80\x3d\xe4\x8c\x6e\x4c\x1e\xc6\x6f\x4a\xaa\x6a\xe2\x46\x48\xe4\xf6\xee\x80\xe9\x91\xc9\xea\x6a\xdd\x10\x67\x7c\xce\x30\x02\xb7\x31\x4a\x27\x9e\x2a\xc4\x43\x53\x80\x9f\xe6\x46\x92\xc6\x47\x4f\xb4\xce\x21\xf2\x99\x17\x74\x8b\xe3\x10\x9e\x7f\x04\xa6\x82\x17\x76\x7a\x36\x15\xd9\xfd\x55\x37\x35\x78\xc9\x1b\x81\x77\xe1\x74\xb1\x45\xe6\x5a\x30\xaf\x5b\x07\x58\x91\x70\x73\x7c\x05\xab\x28\xaa\xfe\xb8\xa4\x67\x69\x02\x3a\x5f\x53\x32\x67\xbc\x94\x6c\xc4\xb3\x7b\xa1\x92\xb2\xe6\x51\x24\xf0\x1f\x1e\xb0\x5f\xdc\xb5\x74\xeb\xec\xc8\x6b\x3f\xb2\xd9\x30\x34\x14\x8f\x65\xa2\x63\x07\xb8\x19\xd8\x38\x62\xae\x02\xe0\xed\x88\x11\xdf\x12\x9b\xa4\x02\x5c\x0b\xe7\xea\x62\xe9\x35\x49\x5f\xc8\x78\x3b\x48\x7d\x07\x18\x77\xe5\x07\x3e\x93\xc5\xa6\x3b\xec\x9b\x25\xfb\xf6\x98\x02\x9a\xf8\xdb\x8b\x70\x26\x65\x24\x9c\x68\xdc\x71\xec\x41\x66\x75\xc1\x2b\x77\x96\xc7\xd8\xd5\x91\x18\x4c\x06\xec\x72\xf8\xf0\x1d\x7b\x30\xf0\x8f\xef\x8f\x23\x00\x92\xfb\xf3\xbc\xe6\xc5\x8d\xe5\xd9\x7d\xd3\x6c\xe6\x98\x12\x81\xb7\xb0\x4b\x27\xcf\xe6\x4e\x38\x30\xd0\x90\x68\x41\x8f\xcd\x75\x0d\x72\x12\x05\x84\xb3\x30\x03\xf8\x02\xca\x78\x50\x83\x37\x08\x3c\x61\x12\x56\xc7\x44\xd7\x06\x82\x1a\xa1\x41\x15\x91\xa5\x7b\x53\x87\xc2\x79\xe8\x0a\xc6\x0d\x93\x04\x9c\x35\x14\x9d\x3a\x8f\x25\xc8\x70\x6b\x87\xe2\x05\x5a\xb8\xdc\x8d\xef\x5e\x44\xe2\x77\xa9\x98\x90\xd0\x3c\xe3\x06\xeb\xcd\xb9\x61\xe4\x3a\xb9\x43\x73\x08\x5f\xf0\x83\x11\x4f\x65\x21\x33\x69\x8b\x79\x94\x99\x3d\x96\x8b\xc7\x31\xc0\xb5\x3a\x34\xac\xac\xe4\x8c\x57\xf3\xb8\x9d\x6d\xf5\xcf\x4b\x04\x4e\x76\x2f\xca\x29\xf7\x5b\x18\x57\x84\x48\x14\x8a\x38\xf7\x02\x12\x18\xb8\x31\xf5\xcc\xe7\xd9\x8f\x74\x6d\x19\x82\x3b\xce\xb8\xb2\x32\x33\x04\xfb\x08\x0e\x73\x0b\xf0\x87\x79\xa8\xf2\xc7\x47\xfa\x41\xc0\xbc\xe3\x69\xeb\xb5\x3f\x04\xfd\x47\x08\x14\xb7\x29\x47\x8e\x83\x80\xfb\xe9\x38\x15\xe2\xf9\xd8\x7a\xb5\x09\x90\xd8\xe4\x4c\xfc\x47\xe3\x3d\xb0\x32\xc2\x16\x24\x20\x69\x77\x07\x6e\x3f\xee\x0e\xc8\x32\xe2\x36\xe5\xee\xe0\x3f\x98\xcf\x9f\x76\x93\xc9\xea\xaa\xc2\x0a\x43\xa0\x62\xbb\xf3\x3b\x91\x0f\x42\x85\x3d\xcf\x74\x45\xe8\x63\x95\x18\x63\x79\x1a\x58\x7b\x7a\xcf\x40\x40\x02\xc8\x5a\xdc\xfa\x97\x06\xec\xe8\x83\xae\x16\xcf\xb2\xe9\x81\x9d\xc0\x49\x7c\x51\x45\x83\xec\x12\xd1\x32\xcc\x41\xa9\xec\xe4\x2c\x0d\xd8\x87\x54\xa9\x58\xec\xaf\x61\xc4\xed\x91\xf8\x4b\xc5\x94\x93\x0b\x49\xa2\xf0\xb8\x76\x9b\x8f\x9d\xa6\x32\x48\xd2\x71\x38\x88\x8e\x88\x28\xcd\x66\x82\x2b\x30\x7a\x8c\xe0\x18\x24\x85\x9a\x91\xe5\x31\x59\x55\xa2\x10\x0f\x3c\x2c\x26\x57\xf3\x47\x3e\x1f\x1c\x3f\x9f\xa9\x15\x09\x35\xde\xa8\xec\xb6\x15\x27\xbf\x82\x8e\xc2\xbf\x6f\x12\xf6\xc6\x1f\x70\xa3\x26\xc2\x06\xfe\x14\x98\xd0\xe5\xb0\x1d\x3a\xe4\xaf\x92\xbf\x56\x44\xff\x72\x51\x0a\x95\x1b\xb4\x21\x47\xc2\x04\xb9\x7c\x05\x88\x94\x59\xa1\xeb\xbc\x4f\xf8\x14\x95\xc7\xd5\x6d\x14\x89\x03\x2f\x7e\x63\xc2\x48\x88\x38\x3c\x65\x5e\xc4\x4f\x38\x69\xe3\x72\x07\xa1\x35\x51\x01\x81\x36\x34\x3e\x1c\xd0\x85\x3c\xb2\x2f\x9c\x02\x9c\xc6\x16\x52\x47\x3a\x5e\xc4\x41\xbe\x76\xf7\xb4\x03\x3c\x6b\x5c\x58\xb0\x33\xe1\x68\x22\xc3\x2e\x0b\x6e\x1d\x1b\x25\xc7\x03\x49\xf3\x6e\x28\x59\x54\x9c\x52\x1c\x83\xd6\x3c\x1b\x5a\x51\x58\x1b\xdf\x43\x62\x69\x08\xc3\x20\xd9\xee\x72\x68\x76\xbd\xac\x77\x07\xcf\x0a\x6f\x46\xa3\x66\x3f\xf1\x04\xf6\x89\x48\x24\x11\xce\xcd\xef\xf7\xc7\xb2\x12\x8f\xbc\x28\xba\x45\x3a\xef\x50\xa7\x83\x53\xdc\xc1\x90\xed\xf5\x73\x3c\xf5\x41\x49\x5d\x65\x72\xff\xed\xec\x14\x3b\x0a\x18\x19\x26\x46\xc7\x4d\x0b\xbb\x3a\xa5\xc4\xad\x5a\x7f\xc6\xcb\xfe\xbd\x98\x37\x4b\x77\x87\xc5\x6f\x57\x1f\x0e\xce\x85\xe4\xf1\x7f\x6d\xf8\x82\x1f\xce\x8c\x97\xcf\xcb\x88\x59\x74\xdf\x3c\x33\x23\x26\x3d\x49\xf5\xa8\x90\x66\x7a\xa5\xed\xb5\xe0\xf9\xfc\xd4\x5b\x71\x36\xa1\x22\xae\x78\x2d\xc9\x60\xc5\xd3\xe6\xc4\x98\x89\x08\x18\x87\xb9\xe0\x05\x19\xbe\x9b\x3e\xcf\x86\xe0\x4c\x32\x4a\x2e\x4d\x25\x26\xbc\xca\x31\x9d\x13\x7b\x46\xa8\xa0\x31\xa0\x04\xce\x4f\x94\xb6\x7d\xf8\x17\x46\x2f\x7a\x41\xcc\xa9\x2b\x4e\xd2\x23\x7b\xbb\xb5\x21\xa5\x2a\x88\x64\xe4\x68\x75\xf2\xc3\xb8\x2e\x6e\x00\xec\xfd\xc7\x25\x12\x67\x59\xe9\x92\x83\xa4\x7d\x73\xfd\x33\x3b\xbf\xba\x21\x63\x86\x21\xa1\xd6\xb0\xa1\xce\x4d\xd0\xcf\xca\xba\x72\x77\x0b\x2e\x9d\x70\x24\x4a\x9a\xcc\x69\x9b\x34\xc0\xc4\x1c\x14\xe5\x67\x5a\xab\x89\x50\xc2\xed\x59\x14\x5c\x51\x15\xa2\xbf\x6e\x0a\xf4\x0e\x52\x58\x17\x7c\xd1\xcb\x0b\x18\x80\x56\x42\x41\xbd\x29\xba\x1f\x9d\xc0\x40\x7b\x50\x14\xc9\x62\xbb\xfb\xef\xdd\xcf\xc2\x89\x65\xb0\x7c\x77\x07\x4c\x3c\xc4\x80\xce\x21\x26\xcc\x8a\x99\x11\xc5\x83\x08\xd6\xb7\x01\x3b\x9d\x40\x54\x35\x6e\xa6\xeb\xc6\x09\x90\x20\xfc\x25\x33\xf3\x13\xc9\x93\xcf\xa6\x4c\x23\xce\xcf\xc9\x3f\x2b\xa6\x07\x2a\x02\x1f\x8b\x62\x1e\xe5\x54\x69\x02\x28\xc5\x36\x09\xca\x66\xb1\x28\x22\x3c\x7f\xd5\x0a\xb5\xd7\x60\xb7\xf1\x5a\x77\x62\xb6\x21\xb4\x20\x3b\xa5\x90\x91\x76\x3d\x59\x70\xf8\x87\x73\xeb\xc7\x0e\x8a\x3f\xda\xc9\x75\x95\xa2\x86\xf7\x9a\xfe\x6b\x43\xab\x06\x2c\xd7\x27\x86\x07\xeb\x91\x87\x05\x06\x6b\x2a\xd8\xc3\xad\x59\x94\x5f\x93\x2d\x0d\x90\xe6\x50\x13\x7b\xfe\x4f\x64\x2f\x7f\x7e\x7d\x5c\x23\xa0\xb4\xc1\xe9\x18\x38\xce\x26\x63\x40\xe2\x10\x3e\x03\x59\xe6\x72\x18\x34\x1e\xf4\x50\x00\x22\x28\xec\xc3\x8c\x4b\x44\x5b\xa7\x4f\x30\x4e\xdf\x18\xb0\x0b\xd0\xe1\xa3\x38\x04\xa5\xe0\xf3\x25\x0d\xbd\x4d\xd4\x7f\xcc\x1d\x83\x2b\x08\x15\x48\x63\xa5\xaf\x76\x1e\x3c\xb0\x73\xb7\x43\x6b\x99\xcf\x40\xc8\x7a\x01\xba\xcb\xb2\xde\xd6\x5d\xcc\xa5\xdf\x8f\x01\x68\x64\xe2\x88\x09\xb4\x06\xc3\x5d\x5b\xfb\xb1\xc2\x77\xaf\x4b\x5d\xe8\xc9\xfc\x2f\x28\x40\xac\x3b\x3f\x69\x53\x74\xaa\x44\x83\x51\x5f\x57\x20\x55\x93\x14\xe7\x9b\x52\x95\x01\x2c\x1d\x30\x2b\x0b\xa8\x0b\x92\x8e\x91\x98\x42\x12\xe1\x05\x8c\x8c\x6a\x17\xa1\x2d\xd6\x38\x79\x39\xd2\x67\xd4\x79\x40\x06\x6e\xa7\x1f\xf7\xbc\x92\xef\x83\x52\x0d\x42\xfd\x05\x24\x06\x08\xec\xe7\xd1\x39\xd2\x30\xda\xfd\x09\x4d\x75\xec\xb6\x31\x78\xef\xe9\x47\xbb\x7e\x8b\x00\x72\x47\x66\x8c\x65\x6f\xbf\xa7\xc6\xa4\xeb\x46\x10\xcf\x8b\x26\x3b\x9b\x6a\x23\x14\xdd\x18\x8a\x4a\x18\xcb\xca\xd8\xc6\x8a\x51\x8a\xca\x03\x97\x05\x5c\x35\x32\x7e\x26\xde\xff\x20\x1b\x34\xb5\x24\xe4\x9f\x16\xea\x80\x00\x25\x55\x3a\xbc\x8c\x1c\x36\xc6\x66\x85\x0f\x7a\xf4\x52\xb8\xa5\x4d\xda\x4c\x1a\x7d\xe8\x62\xec\x0d\x22\x74\xf9\xa9\x68\x85\xc2\x3c\xa4\xb0\x8d\xde\xd9\x4a\x0b\x11\x6a\xa4\xdc\x1d\xfc\xe1\xee\xc0\xaf\x91\xcf\x56\x02\xee\x7f\x77\xe0\xe4\x26\x3f\x24\x47\x88\x40\xc3\xca\x40\x3e\xe4\x45\x88\x56\x97\x63\x78\xaf\x87\x8c\x7c\x06\xc8\x7f\x46\x28\x23\x7c\xa9\x9a\x82\x9b\x60\xe6\x55\x21\xaf\x7d\x75\xd8\x04\x38\x85\x1c\x8f\x02\xec\xdb\xb0\x26\x4e\x5e\xb0\x15\xc7\xf3\xd6\xc4\xf1\xff\xe2\x5e\xb1\x0e\x45\xd0\x81\x35\x25\x20\x7f\x53\xfd\xd8\xb6\x11\x91\x22\xd5\xa4\xbd\x81\x09\x7a\x5f\x77\x8a\x95\x99\xf2\xb9\x5e\x57\x7e\x79\x77\x90\xbe\x06\xbb\x5d\x9a\x45\x5d\x5a\x34\x78\x68\x70\xa7\x20\x43\x22\xeb\xac\x23\x30\xde\x45\x14\xb2\x16\x92\xf8\x04\x77\x18\x13\x2d\x9e\x12\x7f\x12\x3f\x52\xf3\xea\x85\xe5\x49\xfc\x0b\x84\x91\xe8\x33\x7c\x30\x18\xb4\xe5\xab\x18\xcd\x29\x5e\x81\x0e\x45\x9d\x25\xd9\x18\x89\x7c\x48\x79\x19\x97\x63\xd6\x08\xaa\x88\x21\x03\x4a\x33\xe2\x4c\x0c\x7f\x8a\x2e\x0c\x8f\xda\xd8\x94\x7d\x49\x73\xf1\x85\xfe\x09\x75\x29\xb6\xa9\x78\xb4\xaa\x72\x66\x2c\xd0\x0a\xb7\x97\xee\x9b\xb8\x45\x77\x07\x6c\x54\xcb\x02\x2d\x4f\xd1\xca\x48\xb4\x22\x2c\x73\x08\x76\x74\xe2\x3f\x79\x98\x81\x66\x83\x2b\xcf\xb4\xcc\xc8\xf8\x89\x74\xdf\x1b\x9f\x09\x1e\x1d\xa0\x0e\x14\xbf\x92\x8a\x74\x4d\xd3\xcb\x91\x1c\x27\xd6\x1d\xef\x81\x27\xa3\x29\x58\x31\x8e\x37\x0d\x66\x97\xc2\x03\x2d\xba\x54\x93\x7e\x68\xe7\x05\x08\x90\x1c\xbf\x58\x65\x92\x14\x03\x6e\x73\x44\x11\x22\xbe\x25\xe9\xa4\x6d\xdb\x33\xe2\xc1\x3d\x27\x88\x28\xb5\xdd\x6d\x2d\xed\xa4\xc7\xa4\x03\xa0\x5d\xc3\xf0\xda\x94\x70\x16\xe6\xe2\xed\xa1\xe1\x2c\xf5\x30\x8a\x18\xe8\x9d\xaf\x66\xb4\xd3\x2d\x59\x2f\x06\x2e\x6e\xcd\x32\xb1\xad\xbd\x45\x1d\x04\xb7\x0e\xe1\x5e\x28\x61\x6f\x5f\x07\x84\x3a\xe8\x20\x8c\xfa\x6f\x6d\x92\x3f\xcf\x36\xe9\x07\xbb\xdc\x19\xac\x21\xf4\xf9\x66\x28\x2a\x03\x68\xb8\x5d\x4b\xef\x5d\x37\x4a\x32\xfa\x6e\x58\x19\xfa\xf1\xb9\xaa\x8b\x25\x0e\x57\xee\xc6\xd8\xdc\x6e\x66\xd9\xb1\x00\x05\x2a\x96\x4e\x12\x22\xe8\x9c\x10\x4a\x32\x6e\xb5\x59\x30\x82\x4f\x9d\xec\xe9\x06\x81\x8e\x48\x1f\x44\x7e\xf1\xe4\x08\xb4\x78\xb2\xdf\x61\xd4\xef\xd3\xd8\xe0\x3f\x94\x75\xff\x1a\xb0\xcb\x99\x77\x19\x62\xfa\x57\x15\x70\x7e\xfc\x6b\x6d\x30\xfa\xed\xab\x6d\x6c\x58\x87\x85\x0a\x29\xec\xc8\xbd\x79\xf2\x58\x49\x2b\x8e\x11\x9a\x12\x34\xf8\xa9\xa8\x7c\x2c\x9f\xc6\xdc\x36\x11\x7f\xf4\x86\x33\xa9\x18\x6e\xfc\x27\x84\x0d\xd9\xba\x32\xd6\x35\x5c\x9c\xed\x2e\x53\x1b\x6a\x68\x6d\x2e\x98\xff\x5a\x2b\xb2\x82\x4a\x6d\x25\x78\x71\x7a\xe4\x6e\x9b\xf7\x03\xc5\xa3\x7a\x3a\xbc\x74\x5c\x36\x47\x75\xc9\x20\x40\x7c\x4b\x86\xf1\xee\x60\xb2\xd7\x04\x89\xd6\x5a\x27\xfb\xba\xed\x5d\xba\x14\x78\xf4\x3b\x44\x63\xfd\x1c\x1a\xfa\x58\xac\x69\x3d\xe3\x0a\xec\x9d\x20\x95\xa4\xb1\xd9\x71\xe8\x1e\xcf\x80\xf6\x2c\x49\x3b\x02\xf1\x7e\x65\x15\xd2\x2d\x4e\x63\x9c\x4a\x97\x62\xa3\x3f\x37\x5b\xb7\xf7\x26\xd3\x65\x98\x0d\x91\x07\x1a\x64\x98\x9b\xdf\x86\x04\xfb\xaf\xa1\xad\x59\x1f\x2f\x31\x6c\x55\x51\x6b\x22\xa7\xa3\x1a\xc4\x31\x87\xab\x15\xa4\x07\x6b\xea\xc6\x42\x92\xef\x48\xb0\x99\xac\x2a\x30\x57\xb5\x87\x83\x9a\x9b\x9c\x4c\x2d\xd4\x3e\xb2\x62\x82\x94\x7a\xc0\x6e\x84\x65\xc9\xf6\x81\x87\x16\xcb\xca\xba\x7f\x37\x80\xee\xfd\x29\x22\xc3\x66\x5d\xe1\xdb\x56\xb3\x3b\x5f\xb1\x13\x09\xc7\x5c\xd7\x21\xc2\x10\x31\xc2\xc2\xfc\xcc\x92\x95\xba\x8a\x3f\x22\x5a\xb9\xf6\xd6\xc2\xbe\x78\x92\xc6\x2e\xce\xc6\x2f\x92\x77\x73\x7e\x29\x99\xcc\x0f\x60\xcf\x5c\xf6\xcc\xe5\x37\x62\x2e\x4b\x61\x2b\xf7\x1c\x66\xcf\x61\xf6\x1c\xe6\xf7\xc0\x61\xe6\x26\xb3\xc5\x3a\x9d\x12\x1a\x04\xfc\x10\xce\xee\xdd\x66\x15\xac\xe4\x15\x9f\x09\xb7\xf6\xd6\x17\x10\xda\x5d\x45\x78\xb0\x1b\x50\x27\x73\xaa\xac\xbd\xc5\x05\x71\xa4\x61\xd3\xb5\xf0\xf9\x6b\xdb\x7e\x6f\x61\x03\x96\xa7\x7c\xb5\x90\x3a\x69\x6c\xf4\xf7\xd6\x39\x60\xb7\x67\xc3\x1b\x9d\xdd\x0b\x7b\xba\x09\x14\xac\xd5\x32\xc9\x05\xe3\x8a\x51\xe9\x98\xe0\x24\xd0\xa5\x40\x4c\x6d\x66\xe0\x9d\xcd\x1b\xeb\x58\x77\xe7\xc2\xe9\x3f\x3a\x3e\xef\xaf\x23\x59\xf3\x99\xd5\xbd\x05\xe4\xaa\x52\xe7\xec\x72\x9b\xfc\xd0\x65\x09\xb7\x5f\x57\x66\x68\x52\x39\x6a\x37\x69\xa0\xbf\x51\x16\xe2\x2d\x97\x6b\xab\x0c\x00\x9a\x80\xce\x29\x42\x01\x5a\x83\x25\xda\x5a\x9e\x4d\xbd\x07\x1e\xf9\xc0\xdd\x01\x86\xc1\xdf\x1d\x40\xb0\xab\x02\xec\x5f\x4f\x3e\x29\x98\xcd\xea\x02\xe3\x40\xdc\x0b\xd0\x5b\x07\x09\x16\xbb\xdd\x54\xad\x35\xa4\xbb\xb9\x21\xe3\x2b\x01\x8c\x0d\x86\xad\x53\xb0\x74\x22\xe8\x8d\xf1\x40\x33\xef\xd8\xf0\x21\xfd\x8e\x69\x5c\xe9\x1b\x37\xd9\xba\x10\x3d\x36\x04\x57\x63\x7c\x42\xa9\x22\x17\x4f\x22\xab\xed\x36\x62\x00\x06\x3e\x75\x9f\x1a\x4e\xe6\x5e\xcc\x17\x2b\xd0\x61\xae\xd7\x36\xf9\xd8\x72\x26\x4e\xf3\x7c\xb1\x24\xee\x0b\x90\x6d\x6e\x65\x1b\xdb\xb8\x7d\xb4\xfc\x47\xdb\x16\x4e\xf4\xb9\xda\x00\x9e\xe0\xe7\xfc\xc8\x0d\xe3\xee\x85\x01\xbb\x84\x53\x08\x22\x99\x13\xcd\xad\x50\x20\x4e\x84\x7d\xc0\x37\x56\x95\x57\xeb\xc2\x58\xe2\x52\xa3\x73\x10\x82\xb5\x4d\xa9\x55\x4e\xb2\x8d\x4d\xf7\x62\xc7\x98\x66\xee\x4c\xf4\x16\x2e\xc0\x8b\xef\x3a\x1e\xf6\x0d\x8c\x86\xe8\x36\xde\xf7\xf0\x46\xfb\xd2\xfb\x8b\x63\xe0\xa2\xe3\x3a\x44\x7f\xb1\xaf\x24\x5c\xc9\xb2\x10\x50\x2a\xef\x5d\x76\x2f\xe6\x3d\x74\xca\x12\x99\x70\x4f\x45\x80\x04\x17\x31\x28\x08\x55\x48\x5d\xd1\x8b\xfe\x4f\x7c\x61\x57\xf4\xe2\x02\x29\x44\x1a\xd3\xe7\xf7\x93\x88\x07\x04\xb5\xd8\x6c\x3a\x60\x17\x10\x93\x34\x13\x5c\x51\xe8\x12\xf8\xcd\xd3\xc6\x1e\xfc\x24\x51\x70\x3c\x1c\x7a\x92\x0d\xfc\x1b\xd3\x91\xbf\x88\xb9\xd7\x85\x12\x22\xe2\x4b\xc3\xd9\xb8\xd7\x31\xf6\x69\xfd\xdc\xef\xc5\xdc\x87\x18\x08\xe8\x4c\x1a\xef\x1b\x0f\x7b\xe8\x19\xde\x85\x13\x9b\xcd\x7f\xf8\xba\x8b\xb3\x91\x54\xf8\x31\xec\xda\x2f\x36\x0b\xbe\x7b\x13\x02\x14\xe0\x33\xcf\x5f\x10\x3f\x84\x8d\x72\x0d\x8d\xb4\x81\xac\x7a\x2f\xe6\x87\x86\xb0\x0e\xb5\x32\x53\x59\xfa\x3b\x0f\x83\x8b\xee\x6f\x7c\xd9\x3b\xc0\xdd\x1c\x31\xb2\xf1\xd7\x9a\x17\x4d\xdf\x39\x3d\xa2\x46\x6e\xa9\x1a\xb5\xc0\x1f\x65\x91\x67\x9c\x32\x49\x29\x7a\xc1\x68\x9f\xdb\xef\xae\x64\xc6\x55\x64\x58\x61\x17\xc8\x4b\x97\x64\x5e\xb9\xf3\x3c\xd1\x55\x67\xa2\xd4\x08\xee\xf1\x87\xa0\x1b\x3a\xe8\x6d\xbb\x7d\x9b\x96\x97\xa2\x92\x3a\x07\x46\x0c\x10\x99\xcd\x83\x76\x44\xc9\x24\x74\x46\xf4\xd8\xdf\xbd\x70\x11\x7a\x09\x7c\xaa\x5d\x06\x3b\x71\x9c\x90\xa2\x84\x89\xff\x10\x50\x96\x20\xc4\xc7\x7b\xe9\x85\x0d\x09\x2c\x74\xec\xda\xfc\xdf\x2d\xbf\x78\x10\x15\x3b\x22\x11\x41\x3c\xc8\xcc\x1e\x0f\xd8\xff\x2b\x2a\x0d\x5b\xab\xc4\x04\x01\x30\x5b\xa6\x0b\x4b\xc9\x1e\xdc\xb0\x37\xec\x08\x5e\x63\x72\x36\x13\xb9\xe4\x56\x14\xf3\xe3\x16\x72\xcf\xae\xb1\x3c\xbb\x6b\x4b\x0d\x1a\x80\xdc\xad\xb5\x2f\x81\x88\xeb\x70\xbd\xc3\x85\x86\x80\x46\x77\x84\x1b\xf5\x36\x03\xaa\x87\xbf\xff\x61\xd7\xfe\xdb\x6d\x2e\x67\x95\x98\xc0\xe1\xc4\xd3\xf7\xa5\xd4\x63\x1f\x99\x75\x43\x91\x1b\x1f\xf9\x48\x14\x24\x4f\xcd\xc4\x5a\xc9\xf7\x34\x06\xf7\x84\xb8\x8f\x2a\xbe\x49\x70\x2d\x8d\xaa\x99\x7e\xd9\x30\xcd\x0b\x22\xbf\x12\x1c\xb1\x56\x7e\x5c\xcc\xf4\x85\x44\xb4\x56\xfe\xd4\x66\x2e\xb7\x99\xde\x43\x96\x84\x0f\x3f\x8b\x84\x3e\x8c\x39\x21\xf3\x5b\x2a\xe7\x9b\xc8\xc3\xa9\x62\x10\xa7\x04\x5e\xea\x04\x86\xd2\x0c\xd8\x67\xe5\xcf\x4e\x0b\x02\x0c\x47\xec\x8d\x12\x05\xc0\x5b\x0f\xd8\x05\xcf\xa6\x58\x41\x1b\xac\xaa\x78\xf3\xa4\x61\x9f\xaf\xbf\x54\x80\xd5\x76\xa2\x1b\x2d\xd3\xcb\x45\xb7\xe6\x39\xbe\x15\xd5\xec\x99\x67\xd7\x8a\x6a\xd6\xa6\xce\x95\x30\x75\x01\x6a\x12\xae\xfa\xaf\xb5\xa8\xa4\xdb\x9d\x53\xa6\xea\xa2\x08\xb1\x6e\xab\xba\xf3\x07\x5e\x69\x5f\x50\x03\x75\x94\xe4\x9e\xf8\xc0\x8b\x19\x70\xc8\xd3\xab\x73\x12\xdf\x29\xd1\x08\x2e\x51\x3d\xa2\x50\xa5\x71\xad\x32\xb4\x32\x48\x3b\x77\x84\xf4\x4a\xe7\x22\x9d\xf3\xeb\x5d\x27\x98\x0a\x90\x87\x8b\x27\xb7\x46\x66\x59\xe5\xe5\x85\x65\x5e\x08\x5f\x5d\x46\x2a\xa0\xc2\x1e\x2c\x70\x5b\x8c\x79\x69\x6a\xd0\x46\xf2\xf6\xf2\x53\xbe\xed\x41\x05\xe0\x81\xb3\x10\x15\xb9\x4e\xe3\x58\xf1\x4a\x62\xe2\x86\xf0\x44\x4d\x80\x0a\x51\x51\x00\x75\x9e\xcf\x34\x29\x10\x48\x76\xfd\x56\x74\x89\x57\x72\xcb\x75\xb3\x22\x73\xe2\x25\xa0\xae\x8d\x7e\xd7\x46\x2f\xa5\x2d\x03\xe4\x96\xd5\x6c\x2c\x55\x6b\xa2\x03\x9f\xb9\x92\x04\xe5\xca\x80\xc9\x19\x68\x3a\xa4\xc0\x60\x9d\xb6\x46\x4e\xb9\x5b\x20\x45\x06\xae\x31\xae\x1c\x5e\x11\x59\x2d\xe8\xb6\x74\x96\x73\x3d\xe3\x52\xad\xd0\xa1\x67\xfc\xe9\xe6\x5e\x3c\x6e\xb8\x21\x9f\xb0\x55\x0b\xba\x2a\x17\x93\x4a\x80\xf5\x30\x29\x2e\xed\xa3\x7c\x95\x78\x10\x4e\xaf\xcf\xa5\x21\x80\xab\x9c\x94\xab\xbf\x3f\x4e\x85\xfa\x49\x19\x6e\xa5\x19\x4b\x3e\x2a\xc4\x9f\xce\xf5\x95\xb6\x5e\x85\xfa\xbb\x17\xf5\x50\x9b\x7c\x92\xb3\x7a\xe6\x04\x50\xc2\x19\xcb\xe5\xd8\x83\x15\x8c\x84\x7d\x14\xe4\xed\x88\x8b\xd2\x3c\x57\x4d\x70\xb5\xb0\x28\x3e\xf2\x72\x52\xe8\x11\x2f\xd8\x4c\x2a\xf7\x19\xcc\x77\x0e\x25\xba\xc1\x37\xf4\xae\xff\x0f\xad\x44\x04\x2a\xf0\x6b\x11\x91\x1e\xde\x52\x1d\xce\x90\x2d\x13\xc2\xce\x1b\x27\xd3\x9f\x7b\x6e\xd8\xdb\x93\xb7\x27\x6f\xde\xb3\xff\xcb\x5c\xd7\x6f\xe9\xbf\xdf\xd2\x7f\xdf\xb1\xff\xcb\xfe\x2f\x63\x6c\xc8\x58\xe3\xbf\x0c\xfe\xdb\x67\x72\x9c\x8e\xe1\xad\x1b\x66\xa6\x67\x34\xe1\x98\xea\xee\xf8\x2e\xad\x28\x9c\x21\xec\x1a\x18\x72\xa6\x67\x02\xc6\xf0\xf6\x3f\x7c\x1b\xcc\xb0\x61\x5a\x51\xcb\xb7\x47\x30\xa4\x63\xf6\x08\x12\x21\x24\xfc\xbb\x69\x9d\x66\xb6\xe6\x85\xfb\xf8\xd1\xb7\xfd\x37\xc7\x4c\xab\x66\xf3\x07\xa9\x0b\x27\x88\xd3\x08\x8f\xde\x1e\x0f\x16\x86\xfc\xed\x92\x21\x37\x46\x0b\xa3\xe0\x6a\x0e\x5d\xaf\x3e\x35\xfe\xc0\x9c\x42\x1a\x79\x38\x36\xfe\xee\x39\x3a\xc2\xa6\x72\x02\x35\x2a\x43\x95\x78\xb4\x7a\xc0\x29\x90\xde\x2d\x84\x9d\xce\x99\xb4\x8e\xa7\x1d\x1a\x90\x73\x51\x2a\xf0\x59\xdd\xe7\xa9\x9f\x13\xd6\x1d\xf6\xfc\x8d\x57\x49\xc8\x4c\xb0\x73\xbc\x8f\x24\xf7\x62\xa3\x0e\x17\x5a\xfa\xcb\xe3\xe4\x45\x3d\x46\xc3\x2f\x31\x2e\x60\xc5\x34\x6d\xcc\xb9\x22\xd2\x13\x91\xa5\xdc\x5b\x00\xd0\x96\x63\x31\xd8\x22\xb5\x7d\x24\x79\x79\x28\xdb\xa5\xf5\x2e\x03\xcd\x66\xbf\xc4\x96\x88\xa4\x1a\x8d\x47\xd8\x1b\x99\x8d\x20\xc0\xf9\xee\x60\x54\x67\xf7\xc2\x7a\x84\x4a\x27\x1d\x5a\xcd\xca\xda\xb2\x00\xc6\xb3\x40\xf3\xac\xc6\x8e\xf1\xd5\x55\xfb\xf6\x7c\x81\x78\xe1\x98\x6d\x58\xf6\x5f\xda\xed\x13\x5b\x14\xf1\xbb\x5c\x70\x5a\x5f\x34\x00\xc8\xb1\x3b\xa9\xb9\x16\x46\x1d\xc6\xc3\x87\x81\xf2\x40\x21\x62\x16\x82\xbb\x3c\x0d\xe2\xc8\x8e\x48\x1f\x3e\x66\x56\x14\x85\x77\x1b\xe3\x8f\x15\x19\xc3\xc3\x03\x38\xd1\x7d\xd6\xbc\x28\x4b\x5f\x4c\x5f\xf2\x3e\x1f\x89\xe6\x7f\x08\x17\x97\x5a\xf5\xee\x14\x03\x6c\x87\x89\x7c\x70\x57\xb7\xd3\xd5\x42\xf2\x31\x15\x45\xc9\x2a\x91\xd7\x18\x62\xe1\x3a\x32\xf7\xe2\x71\x70\xa7\x4e\x93\xc9\x02\x80\x41\x9a\xf7\xd9\x58\xd7\xbb\x83\x50\xca\x38\x25\x1e\x72\x8c\xd5\x59\x1c\xc9\x93\x63\x8a\x64\x2f\xb5\x41\x6c\x35\x38\xfa\x00\x59\x08\xca\x5e\xc8\x63\x71\x6f\xe2\xd0\x3c\xc1\xba\xf3\x4c\x0e\xfd\x1e\x46\x37\xce\xf3\x97\x61\x0b\xef\x1c\x49\x5e\xcf\x16\x86\xf0\xbf\x45\xf6\x70\x39\x66\x4b\x4e\x62\x18\x4b\xe3\x0c\x3d\x87\x63\x7c\x0b\x84\xfd\xdd\x71\xc2\x38\xde\x9d\x7c\x7b\xf2\xf6\xc8\x8d\xf5\xdb\x63\x37\xea\x06\x4b\x78\x1b\x58\x42\x78\x93\x46\x24\x4c\x83\x29\x5c\x2a\x02\x87\x79\xd4\x55\x4e\x46\x08\x8f\xbf\x07\x89\xb5\xd6\xe3\x2b\x04\x44\x2e\x42\xca\x0a\x67\xf6\x51\xbb\xfb\x03\xac\x49\x5a\xf6\x87\x99\xae\xc4\x1f\x92\xe6\x2f\xa4\x09\x1d\x15\x45\x2f\x40\xad\xa0\xd9\x6b\x29\xcb\x8b\xd5\xc9\x79\x29\xf2\xa5\x81\x41\x6b\xc4\xf4\x55\xef\xc4\xb8\x6e\xa1\x20\x0f\x3a\xc5\xb7\xb7\x9a\x15\xc2\x42\xf8\x05\x41\x28\x81\x50\xe5\xfa\x8a\xa8\x7b\xbe\x20\x2a\x93\x70\x87\xe3\x79\x5f\x12\x5e\xb3\xae\xaa\xca\x9f\xa9\x16\xc0\x86\x9a\x2a\xd0\xcc\xb3\x3a\xa8\x1f\x10\x52\xdc\x43\x21\x8c\x91\x70\xa7\x3c\x8e\x10\xec\x60\xe9\xbb\x4b\xb0\x74\x63\x28\x0d\x14\xdf\x68\x39\x84\xdd\xda\x43\x64\x14\x7c\x11\x29\x83\xa3\x92\x1e\xe9\x48\x56\x79\xbf\xe4\x10\xbf\x30\x2f\x85\xe9\x35\xbe\x16\xc0\x3c\xb7\xf0\x0b\x74\xaf\x15\xe2\xb7\x06\x31\x08\x56\xac\xc4\xab\x80\xd6\xa7\x71\x5a\xde\xf9\xfe\xd2\x11\x74\x35\xd8\xb8\xf5\x69\x8f\xf6\xa5\x17\x0c\xc3\x97\xd6\xdc\xa6\x9f\x7d\x1c\x67\xe2\x73\x40\x64\x67\x8a\xde\x02\x5e\x11\x1c\xe8\xa4\x1c\xa5\xf5\xb4\xdd\xd9\x89\x60\xcf\xb1\x26\x77\x97\xab\xf2\x68\x2e\x0a\x6e\xac\xcc\x7e\x28\x74\x76\x7f\x63\x75\xb5\xb0\x41\x9d\x6d\x10\xa7\xbf\xdc\x2c\x74\xd6\x08\x77\x5d\xa7\xff\x2e\x7b\xb9\xb1\x28\x8a\x9d\xfe\x72\xc3\xce\xa5\xb9\x4f\x8b\xd4\xf0\x85\x20\x04\xee\xab\x7b\x1d\x1a\x8c\x43\x25\xf5\xdc\xeb\x6b\x2a\x00\xc3\xc4\xd8\x94\xe7\xe7\x81\x61\xb4\xd7\x09\x6e\x91\xf9\x86\x3f\x1a\x81\xa3\x1f\xb9\xd1\x1b\x58\xc7\xa5\x57\x80\xff\xa3\xae\x84\x9b\xc5\xf6\xcb\xec\x7b\xe8\xbe\xb6\xfe\x8d\xf6\x82\xba\xe7\xec\x9c\x5b\x8e\xeb\x8a\x05\xbc\x28\xae\x05\xd6\xce\xad\xd9\x08\x48\x18\x95\x50\x8b\x67\x6b\xf5\xec\x3e\xc8\x45\x91\xf7\x79\xb3\x73\x3d\x3c\x6f\x76\xee\x8d\xa5\xb3\x83\x1f\x7c\x32\xeb\xcb\x27\x98\x89\x72\x3a\x5e\xb0\x06\x76\x4f\x96\x12\xe5\xf4\xc3\x4d\xe7\xa9\x61\xf3\x26\x6d\x70\xcf\xd8\x87\x9b\x25\x73\x41\x45\x74\xca\x2b\x4a\xcc\xcc\x0f\x0d\x2b\xe4\x58\x58\x39\x5b\x71\x18\x33\xa9\xf2\x17\x24\xe8\x9d\xc1\xeb\xdd\x67\x03\xcd\x9b\xb3\xc1\x11\x78\x52\x17\xee\x31\xf7\x3b\x82\x61\x6c\x74\xa3\x9b\x17\x7a\xe9\xa5\x25\x09\xdb\xf8\xd2\x47\xb3\xb9\xf9\xb5\xe8\xe3\x57\xfa\x65\x7e\x72\x7d\x71\x7a\xfe\xe9\x62\x30\xcb\x57\x2c\x08\xe4\xa2\x7d\xe2\x0b\xb2\x43\xf7\x35\xf1\x3d\x74\x5f\x16\xff\x46\x6b\x65\xc2\x63\xda\x57\xd0\x35\x4a\x5d\xd6\x05\x0a\x4f\xd2\xd0\xb2\xad\x98\x8a\x91\xdb\x4f\xe2\xe6\xb2\xfb\xf0\x6f\x2e\xd9\xd1\x59\x60\x3f\x14\x07\xcb\x2e\x95\x15\xd5\x98\x67\xe2\x38\x9d\x96\x28\xa7\x62\x26\x2a\x5e\x30\xa2\xa0\x81\x84\x4f\xb9\xca\xa9\x28\x4e\x26\x2a\xc0\x0f\x09\x59\xbf\xee\x13\x79\x25\xa1\xee\xd8\xd1\x0f\x50\x83\x07\x4d\xfd\xc7\x2b\x6e\x69\xae\x1f\xd5\x23\xaf\xf2\xd3\xe1\xe5\xd6\x6b\x70\x1e\xfb\xe8\xbc\x16\xc9\x3b\xe9\xac\xfd\x70\x40\xe8\x43\x8c\x4b\x1b\x82\x6b\xb6\xd9\x5b\x70\xc5\x9c\xcb\xed\x6f\xee\x05\x75\xd0\x79\x66\xfe\x85\xe6\x19\xb5\x62\x56\xea\x8a\x57\x73\x96\xcb\x0a\x54\xd1\xf9\x5a\x2a\xf4\x62\x3e\x0b\x13\xcf\xe5\x0a\x4b\x57\x38\x5d\xdb\xaf\x8b\xef\xa1\xfb\xc2\x84\x13\xdd\x58\x19\x22\x68\x4b\x4e\x77\x40\x26\x08\x57\x00\x8f\x36\x3b\x3a\x4d\xbd\x58\xc7\xe8\x3f\xc3\x7e\x68\x09\xb3\x79\x86\x2a\xb9\x95\x0d\xf1\x85\x02\x19\x29\xb0\x5b\x5a\xd6\x4f\x2b\x20\x04\x68\x64\x31\x76\x8b\xef\xdf\x81\xb2\xa7\x06\x0d\x0c\xb9\xa3\xae\xa1\x0c\x91\xb7\xdd\x38\x65\x63\xa6\x1f\x44\x3e\xb8\x53\x77\xea\x27\x1f\x77\x21\xc7\xef\x19\x3f\x4e\xf3\x0b\x7c\x00\x9e\x12\x22\x87\x5e\x64\x62\x02\xaa\x6a\x65\x7a\x6c\x74\xec\x27\x66\xd0\x9e\x58\xcd\x78\x41\xef\xbb\xc9\xdd\x23\x80\xa2\x06\xcf\x30\x14\x13\x34\x8a\x97\x66\xaa\xa1\x10\x52\xc6\x4b\x9e\x49\x3b\xbf\x53\x8c\x31\x5b\xf1\xec\x1e\x82\x9a\x2b\x41\x9f\xec\xdd\xa9\x0c\x47\xd4\x5a\xd3\x56\x5a\x03\xa2\x73\xf1\xd0\x2a\x2b\xb8\xf1\x4b\xb0\xf4\xfd\x80\xa5\x99\xcf\x15\x9f\xc9\x2c\x94\x9f\xad\xf4\x83\x34\x52\x53\xca\x0b\xf4\x0b\x83\xe3\xac\x9d\x47\x7c\x56\x70\x39\x63\x47\x46\x08\xb6\xf4\x74\x81\xc6\x39\xd3\x15\x98\xb4\xda\x15\xe1\x28\xc0\x98\x50\x52\x12\x6f\x45\x20\x10\xa0\xa6\xe1\xa7\x55\xbe\xfc\xe3\xc7\x61\xff\x96\x8f\x4d\x57\x90\xf9\xee\x73\x46\x84\xca\x75\x80\xc0\xce\xb0\x84\x33\x44\x22\xd1\x66\xa1\xf5\x0b\x7b\x22\x24\x0d\x35\x89\x10\xbd\x22\x39\xaa\x88\x74\x21\x55\x2e\x1f\x64\x5e\xf3\x02\x04\x2b\x3f\x18\x47\xd5\xe1\x75\x39\x99\xda\xfe\xa3\x70\xff\x61\x88\xf0\x1e\xd9\x84\xff\x28\x41\xb6\x45\x4e\xe0\xb6\x76\x26\x38\xca\x6c\x01\x13\x06\xec\x85\x7c\xce\xfa\x00\x77\x0b\x1e\x26\x9d\xd5\xb3\xb4\x10\x2a\x3c\xc4\x2e\xfc\xca\xa7\xab\x0e\xc3\x3b\x0d\x56\x2d\x28\x2c\xa2\xed\x94\xa0\xbf\xf4\x78\xc9\xd8\xc0\x44\xd7\x4e\xcc\x33\x0b\xe0\x41\x2b\x78\xd5\x38\xdb\x9a\x5a\x7d\x38\xeb\x4c\xa6\x3e\x9c\x35\xe9\xd3\x07\x39\xaa\x04\x3b\x9b\x72\xa5\x44\xf1\x0a\x0a\xd5\x8a\xb9\x16\xe2\x69\x41\x21\x7e\xe6\x9c\x43\x17\x5d\x66\x1d\x1a\x37\x67\x0f\xd8\x7d\xf1\x36\x2f\x4c\x3f\x5c\x6f\x91\x9f\x84\xa5\xc0\xf8\x54\x40\x23\x11\x19\xa5\x58\x60\x19\xea\x95\xb3\xd5\xd9\xfd\x0b\xc4\xeb\x0f\xf8\xfe\x33\x66\x0b\xed\x5b\x1b\x4d\x0f\xdb\x12\xf6\x9a\x8d\xa5\xd0\x8a\x04\x78\xd8\xed\xaa\xef\x88\x10\x1d\x03\xd0\x13\xd9\x64\x6a\xa5\x56\x9a\x7d\x26\x99\x88\x94\xe7\x45\xba\xef\x9f\xcf\x2e\x9a\x3d\x75\x5e\x9c\x85\x37\x9b\xcb\xf4\xe7\xb3\x8b\xaf\xd5\xb6\x30\xc9\x44\xa4\x2e\xb9\x5b\xbd\xe5\x8b\x2c\xed\xb5\x28\xf5\xf6\x4b\x8b\xef\x77\x5f\x50\x6c\xdf\xba\x58\x12\xaa\x05\x6b\x23\x41\x16\xc4\x80\xd5\x18\x8f\x5a\x09\xbc\x56\x03\x76\x7e\x31\xbc\xbe\x38\x3b\xbd\xbd\x38\x7f\xcf\x7c\x4f\x78\xe6\x2a\x91\x11\xfe\xb4\x8e\xf7\x10\xf5\x21\x52\x31\xc8\x0f\xe6\xbf\xd5\x23\x55\x98\x2b\x16\xa4\x54\x89\xee\x5f\x76\xa9\xa4\x8d\xba\x09\xe1\x8f\x69\x5f\x3e\xdb\xbd\x4d\xd7\x7a\x22\x11\xbf\x4c\x79\x43\xc0\x54\xb4\x7a\x8b\xf9\x90\x31\xe3\x67\xc5\x4e\xa0\x7c\xf7\x02\x33\xc1\x9f\x7d\x0f\xdd\x77\xc3\xbf\xd1\x3a\xd6\xe1\xf1\xf3\xcc\x05\x9d\x74\x6b\x3a\xa0\x27\x61\xbe\x9b\xb4\x6b\xf7\xd9\xe1\x92\x42\xf3\x9d\xd7\xe5\x47\xea\xa0\xf3\xb2\xf8\x17\x9a\xab\x12\x92\x37\x41\xd8\x74\xc2\xaa\xae\x12\x0d\x26\x5d\x24\x7f\xc1\x3d\x35\xc0\x56\x58\x3a\x21\xbd\xe8\x49\x16\x98\x8f\x4b\x43\x80\xd8\xa2\x98\xa3\x6c\x02\x20\xbd\x98\x34\xcf\x11\x5f\xd6\xc9\x5d\x16\xfd\x9f\xf2\x41\x16\x02\x0b\x89\x49\x35\x49\x40\xac\x7d\xee\x00\x01\xf8\xb7\xc7\xe5\xf6\xc9\xd8\xf8\x75\x8a\x41\xbe\xfa\x7c\x0b\x92\x31\x08\x8a\x2f\x26\x40\xee\x83\x69\x6d\xfd\x56\x39\x11\xf3\x12\x4b\xc3\xe5\xcd\x73\x6c\x0d\xd0\xba\x65\xe6\xc3\x67\x5f\x90\x76\xaf\xba\x06\xb0\x10\x9b\xae\x40\x07\x0f\xc8\xcf\x5e\xe5\x53\x88\x12\xbb\x58\x96\x17\x86\xdc\x4c\x40\xdf\x96\xd9\xe8\x07\xc7\xc6\xc5\xe3\x09\xa1\x99\xf5\x5d\x7f\x7d\x0a\xe1\x3c\x01\xaf\xdb\xc9\x37\xf0\x9f\x2d\xbc\x3d\x2f\xa0\x80\x57\xcf\xb0\x92\x5e\xb5\x4c\xa4\x8a\x5d\x3d\xdb\x3e\xfa\xd2\x3b\xe2\xe6\xba\x74\x11\xca\x65\x2a\xd7\xd6\xcb\xb2\x54\x81\xeb\xbc\x50\x1b\xdf\x6e\x92\xc9\xa4\x16\x9a\x5e\xa9\xd8\xa6\xc1\x3b\xd1\x49\xbb\xed\x72\xc6\xd5\xea\xfb\x95\x8d\x8f\xf0\x49\xe6\x3e\xbb\x6a\xb1\xa7\xda\x6a\xb5\x23\x59\x73\xb8\xa4\xb3\xee\x4b\xbd\xe4\xe5\xe6\xea\x62\x8b\xb3\x58\x5f\x28\x51\x21\x9d\x94\xf7\x3c\x63\xf8\xea\xec\xe9\x47\x5d\xbd\x54\xe7\x1a\x36\xba\xe9\x32\xfb\xc6\x0b\x2d\xe6\x4b\xbf\x6d\x65\xf3\x5f\x59\xf4\xf8\xbf\x21\x3b\x60\xfb\x19\xfa\x1e\xba\xb3\x22\x2b\x66\x84\xaf\x5f\x14\xee\x16\x68\x95\x02\xbb\x23\x44\x8a\xe9\x91\x19\x7f\xc6\x4b\x6f\x67\x4a\x6c\xc1\xcb\x67\xf3\x6b\xad\x47\x73\xbb\xfd\x6e\xfd\x15\xdf\xef\x3c\x13\x6a\xdf\xdc\x25\xff\x70\x17\x5e\xa6\x6a\xb4\xfd\xc6\x5c\xff\x70\xde\x79\x22\xd7\x3f\x9c\x37\x27\x71\xcd\x73\x6d\x18\xf8\x93\xd9\xb9\x58\xe1\x01\xdc\x99\x18\x5c\x8d\x36\xba\x97\x4c\xc6\x0b\x71\xf9\x79\x7b\xfc\x6f\x7c\xbf\xf3\x8a\x50\xfb\xe6\xaa\xf8\x87\x8b\x58\x52\xab\xae\x62\x8a\xeb\xa2\x73\xb1\x2a\x99\x1a\xcf\xfc\x0b\xc0\xcd\xdd\xeb\xdd\xe7\x86\x20\x44\x8d\xa9\x79\x60\xa2\x0d\x4e\x95\x17\x4b\xc4\x34\xd3\xe5\xab\x80\x6d\xf5\xf6\xb2\xcf\x72\xac\xb0\xb5\x6b\x11\xc0\x67\xaa\xe5\xb8\x61\xbb\xd9\xe0\x07\x53\x4e\x85\x8f\xe9\xd8\x7a\x7a\x3f\x53\x2f\x08\x68\xfc\x2c\xae\xfa\x73\x3a\x80\x96\xc3\xe5\x06\x7e\x7a\x29\x57\xf9\x1f\xad\x59\xaf\x03\x81\xa1\x3f\x5f\x18\x1a\x84\x84\x69\x4d\x80\xd0\x43\xd2\x2c\x45\x7b\x61\x33\x5e\x02\xbc\x12\x64\xfd\x56\xfc\x91\x41\xec\x09\xcb\x05\xd5\xae\x26\x64\xaa\xc4\x5c\xb1\x31\x1e\x08\xdf\x5d\xa6\xa3\xb7\x06\x15\x1b\xfa\x60\xad\x12\xfe\x8d\x61\x7b\x1e\x17\xbe\x69\x79\xc1\x84\x8f\x58\x58\x7b\x24\x60\x0a\xa0\x71\x6d\x11\xce\xd6\x41\x95\x52\x01\x68\x25\x66\x15\xaa\x08\x4b\xb4\x4e\xa0\x2d\xf5\x8e\xa3\xcb\xda\xb8\x41\xc9\x52\xef\xe6\x20\x01\xb4\xdc\xc6\x40\x33\x68\xd5\x3c\x46\xee\x49\x38\x47\x3f\x37\x20\xc3\x9e\x77\x7a\xa0\xa7\x0e\x87\x07\x8e\x4d\xa2\xb8\xc6\x73\xd2\xc0\xfa\xa0\xab\x1c\x33\x8a\xe9\x1e\x0f\x18\x2a\xc5\x4a\x07\xcb\x07\x3b\x7c\x7f\xb8\xc5\x11\xc2\x01\x53\xed\xa3\x26\x1a\xc6\xb2\x71\xb7\x9b\xb7\x71\xf3\xe1\x77\x02\x60\xf7\x05\x95\x72\xf4\x66\x46\x71\x43\xa7\xd3\xa5\x14\x22\x0a\x63\xe6\x73\xc6\x2b\x5d\x2b\x9f\xe6\x14\x12\xd5\x3f\xb5\x3e\x7c\x45\x48\xd5\x88\xc3\xd6\xac\xc2\x39\x12\x96\xbb\x43\xfc\x76\xf0\xf6\xcd\xeb\xdc\x2a\xf8\x5e\xeb\x56\x45\xb0\x2f\x3c\x40\xaf\x07\xcc\xf8\x89\x88\xb9\x6b\xde\xf7\x31\xfb\xb6\xaa\x45\x0f\x1f\x01\x40\x63\x92\x75\x7e\x84\xe8\x8d\xba\x4a\x71\x23\x8f\x9b\x80\x0c\xd0\x64\x2b\x50\xc6\x7a\xb4\xc5\x79\xa7\x83\x0d\x07\x23\x1e\xf7\x70\x2c\x0e\xcd\x9a\xa3\x9f\x0e\xfb\xee\xe0\xee\x80\x1d\x85\x10\x81\x4a\x6b\x7b\xbc\xc5\xc2\xd3\x24\x2e\x9e\xca\x4d\x08\x19\x17\x4f\x25\x57\xb9\xc8\x91\xd8\xef\x68\x46\x3f\x88\x29\x7f\x70\x2a\x93\x9c\xc9\x82\x57\x05\x64\xee\xdc\xe0\x98\x20\x5c\x5f\xa8\x07\x59\x69\x35\xc3\x12\xaa\x15\x26\x26\x04\xe3\x84\x61\xff\xcf\xd1\xcf\xa7\xd7\x80\x9d\x75\xec\x0b\xff\xe1\x28\x23\xa2\x4c\x3a\x92\xa4\xbb\x0e\xcb\xe9\x47\xe2\x56\x07\xee\xab\x1f\x99\xfb\xd2\xac\x76\x22\x0c\x58\x83\xb3\xa2\x36\xf2\xa1\xf3\xb9\xdf\x92\x69\x44\x0a\xbb\x1b\x9e\x71\xa5\x73\xb1\xa4\x04\xd4\x0a\xc8\xc9\xa4\x71\x88\x36\x49\xcb\x9d\x00\x97\x2f\xe4\x4c\x3a\x2a\xce\x2d\xca\x92\x8d\x60\x05\xca\xd3\x0b\xd1\xcb\xee\xc0\x74\x60\x2c\xc9\xe2\x6c\x69\x4e\x4c\xb2\xc7\xd7\xeb\x90\x3e\xd1\x23\x49\x39\x76\xda\x3a\x64\x01\x2d\xcc\xd5\x07\xf6\xcf\xc4\x4e\xab\x05\xe0\x72\x93\x4d\x62\x3d\x48\x53\x6c\xd4\x08\x0f\x0f\x16\x11\xc6\x0b\xad\x26\xe8\x32\x43\x2e\x13\xc1\x7a\x93\x00\x12\xd3\xa1\x50\xc0\xee\x42\x23\x93\x99\xad\xdb\x8b\x34\x16\x26\x46\xcd\xc5\xb8\xc8\x9c\x5b\x4e\xc5\x0b\x57\xd7\x39\xdb\x71\x28\xe0\x8b\x86\x9e\x8c\xa5\xdb\xe0\x77\xa2\x51\xbf\x68\xc8\xa4\x51\x77\x1c\x2d\x44\x04\x9c\x66\x90\x76\x7e\xab\xef\xc5\x82\x40\xf5\xdc\x52\xa7\x69\x5f\x2f\x9c\xc7\x42\x7f\x6b\x26\xf5\xe2\x0b\xbc\x5e\xc5\xed\x08\xfb\xdd\x52\x69\xf7\x48\xdf\xc9\x5c\x3a\xc9\x35\x68\xfe\xc0\x0a\x6d\x97\xe7\x9b\x4a\x1c\x52\xe4\x1f\x36\x67\x3f\x40\x7c\xcf\x27\xae\xf8\x04\x51\x7e\x8e\x6e\x86\x3f\x7c\x3a\x76\x87\x05\x3c\xc6\x97\xe7\x8c\x1b\xa3\x33\xd9\x2c\xeb\x7d\x93\x7e\x13\x4a\x54\xbd\x70\xdc\x1d\x00\xae\x9f\x39\x72\xb5\xdd\xa8\xf0\x14\x76\x95\x76\xd1\x03\x0b\xe9\xdf\xc0\x44\x5b\x67\xf9\x61\x96\xdf\xef\x56\x52\x4a\x86\xf7\x52\xd1\xe8\x17\x08\x45\x14\xf9\x50\xe7\x5e\xdc\xd9\x80\xb2\x73\x3b\x15\x0c\x03\x18\x11\x83\xad\x28\xbc\x09\x04\x71\x71\x72\xb6\xa2\x4f\x54\xdb\x50\x65\x04\x40\x4b\x56\x8a\xaa\x8f\x30\xab\x04\xfd\x01\xbd\xb8\x5b\x86\xa5\x0d\xdd\x45\x71\xbf\x1f\x99\xe3\xcd\x74\xa0\x5c\x39\x03\xf6\x4c\x07\x50\xb3\x9f\x2e\x12\xd4\x80\x61\x14\xa5\x2f\xda\x03\x38\x41\xbd\xa5\x97\xa6\x89\x3a\x82\x0b\xb9\xc2\x04\x89\x3f\x6e\x38\x81\x14\x4b\xda\xfe\x54\x52\x6b\xb6\xfd\xcd\xd6\x42\xf5\x5a\xd8\xbd\xfd\xb7\x6f\xda\xba\xf4\x96\xb8\x0c\x1d\x4f\x33\x4d\xb3\xb7\x7a\x2b\x5f\x7c\xc8\xa5\xca\xf5\xa3\xb9\x11\x59\x5d\x61\x85\x29\x2b\x9e\x2c\x42\x3b\xaf\x2b\x1a\xb6\xf6\xbd\x60\x8e\xa1\x56\x31\x8a\x38\x54\x07\xc4\xc2\x6e\xa1\x20\xc0\xe6\x33\x3c\x99\x19\x7e\x16\xde\xb8\x29\xc5\x42\xbc\x6c\x3b\x14\xea\xd3\xcd\x69\xf3\x05\x26\xa1\xf4\x27\x05\xbf\xbb\xdf\x19\xcf\x67\x12\x8b\x4a\x3d\x8a\xd1\x54\xeb\x7b\x76\xe4\x1d\x01\x13\x69\xa7\xf5\x68\x90\xe9\x59\xe2\x13\xe8\x1b\x39\x31\x27\x8f\x34\x2d\x37\xa6\x63\x26\x55\x21\x7d\x28\x99\x9b\x78\x82\x71\x85\x1f\x89\x13\x05\x75\x82\xd2\x3a\x89\x73\x2e\x0e\x13\x6c\x28\xdb\x82\x4e\x2c\x2e\x53\x07\xce\xb1\x62\x0c\xad\xf4\xdb\x95\xf3\xc1\x02\x10\xdb\x98\x7a\x6a\x75\x6a\x7e\x32\xa2\xea\x30\x46\x47\x5b\x7d\x53\x16\x8f\x96\xfb\x78\x55\xe3\x2d\x05\x34\x38\xa8\x6c\xb8\x68\x79\xa6\x22\xd0\x4d\x4d\xdf\x35\xa9\x8d\x53\x86\x42\x72\x80\x54\x4c\xce\x1c\x17\x9d\x09\xcb\x41\x32\x6c\xc9\x1f\xec\x13\x9f\x33\x5e\x18\x8f\x91\xef\xde\x18\xea\xbc\x75\x11\x20\x3b\x9c\x7e\x85\xb8\xf1\xd6\xef\x18\xa5\xbf\xf0\x5a\x03\x41\x31\x1d\x53\xfb\x75\x0b\x75\x4b\x23\x60\xc6\x6b\xc3\x27\xc6\xca\xee\x0f\x6f\x47\xc2\xf2\xb7\x03\x5f\xb7\x72\x0d\x8d\xf0\x4d\x5a\xce\x39\xa9\x26\x85\x60\x85\x9e\x00\x22\xcc\xdd\x01\xd5\x86\x75\xa2\x9e\xaf\xef\x4b\x58\xf5\x9d\xeb\x0c\xf2\x8e\x95\xfc\x43\x3b\x3c\x20\x32\xd6\x01\xc7\x34\x9b\xe6\xf5\x0d\xe6\x54\x0e\x5e\x42\x2a\x3a\xef\x94\xe9\x2c\xd3\x55\x0a\xfb\xdc\xe4\x22\xcd\x2a\xef\xf4\x4d\x27\x89\x7b\x08\xa0\x33\xac\x25\x5f\x91\xf9\x14\xb3\x82\x02\x1c\x95\x8d\x49\x06\x71\xbc\x89\x89\xdc\xed\x3f\x9e\x6f\x59\x31\xfd\xa8\x20\x2d\x66\x24\x0b\x69\x01\xa9\x2f\x9a\x65\x3d\x15\xe6\x96\x15\x82\x3b\x01\x5d\x85\xe1\x80\x45\x4d\x69\xcc\x7b\x80\x94\x8d\x45\xde\xb6\x53\xdc\xc4\xc6\x4f\x4f\xfd\x84\xa4\x16\xd2\xd8\x7e\xe8\x74\x95\x3f\x35\x73\x8b\xdb\xe6\x4a\xac\x93\xf8\xb2\xfa\xf0\x9e\xc5\x4e\xd7\xc9\x32\xf1\xdb\x11\xda\x62\x85\x55\x62\x69\x89\xc9\x70\xc8\x56\xc7\xc3\x76\xb0\xb7\xfb\x66\x4b\xcf\x6e\x38\xab\x69\x6d\xe4\x11\x96\x21\xc6\xa3\xd6\x28\xfc\x6a\x35\xc0\xa9\x49\x35\xa9\xa5\x99\x26\x3f\x80\xe9\x16\xe0\x90\xd0\x4c\x74\x24\x06\x93\x81\x3b\x7d\xe7\x57\x37\x18\xd8\x75\xec\x14\xc3\xc2\x02\x90\x77\x5a\x52\x5b\x66\x53\xac\xbe\xed\xc3\xc0\xc2\x78\xa3\xb1\x37\xc1\xe4\x19\xd7\x6a\x02\xc0\x3a\xf8\x85\x99\xef\xf2\xd4\x63\x44\xe1\x37\x8f\x49\x0d\x2d\xb9\x31\x30\x06\x00\xc8\x63\x47\xd7\x1f\xce\xd8\xdb\xb7\xdf\xbe\x3b\xc6\xaa\xda\x98\xb3\xb3\x05\xbc\x31\x80\xb9\x7d\xa9\x52\x7d\xe1\x6b\x88\x15\xdb\x0a\xac\x4b\xbc\xef\x84\x7e\x02\xda\x53\x03\xa1\x33\xdd\xf5\xf5\x30\x5f\xed\x09\xf1\x1c\x8f\x30\x2f\x86\xcb\x89\xe8\xb3\xee\xf6\x8a\xba\xee\xf1\x7a\xf0\x6a\x24\x2d\xa4\x84\x86\xdf\x1a\x37\x66\x89\xf8\xdf\x20\xc5\x06\x30\xc7\x4e\x90\x15\x96\x5c\x56\x91\xa6\xb9\x5e\xe2\x5b\x88\x39\x86\x3d\x0f\x76\x10\xeb\x8a\xe8\x66\xb1\x82\xbb\xbb\x4f\x52\x65\x45\x9d\x0b\xf0\xb5\x23\x88\xa0\x1e\x53\xc1\xf6\x74\x84\x3e\xe6\x1b\x5b\x1b\x04\x19\x22\x64\x18\x30\x87\xc7\xa0\xe2\xb1\x2e\x0a\xfd\x88\x6a\x4e\x51\xb0\x7b\xe5\xe8\xf8\xbd\x98\x9b\xf7\xec\x0f\xac\x39\x78\x7f\x8d\xde\x27\xb2\x41\x13\xa4\xbe\x49\x18\x10\xaa\xea\x4e\xb1\x44\xd6\xf5\x4b\xeb\x46\x43\x15\xa3\x69\xb0\x74\x37\xa3\x07\xaf\xc1\xca\x5c\x2f\x11\xf3\x6d\x70\xa7\xfe\x10\x91\xac\x9a\xa3\xfc\x87\x56\x6b\x46\x08\x00\x57\x61\x38\xae\xd7\x6d\x47\xd4\x71\x38\x95\x98\x48\xad\x56\x0f\x08\x7f\xdf\xfd\x90\x96\x53\xa0\x54\xb8\x62\xcf\x50\xff\xa2\x58\xb3\xad\x9a\xd7\x89\xf5\x6d\x96\xe0\x62\xe3\x55\xf5\xa1\x03\x8b\xa4\x64\xcf\x48\xa5\x3a\x78\x75\x78\xbe\xc9\xdb\x0b\x6d\x1a\x7b\x08\x81\x24\x09\x39\xa4\x8a\xcd\x25\x27\x13\xa2\x13\x8d\xe5\x83\x60\xb6\xe2\xe3\xb1\xcc\x7a\x4d\xa1\xed\x71\xca\x2d\x80\xba\x93\x55\xd3\x89\x4c\x5c\xf1\x89\x37\x0b\x44\x5a\x74\xca\x94\x2c\x16\xce\x10\x57\xac\x56\x78\x6b\x1d\xab\x17\x80\x42\x06\xe6\x99\x8c\x1b\x72\x87\x21\xdb\xa5\xb3\x13\xc4\x47\x1c\x75\xe3\x65\xc6\x0d\xf8\xac\x57\xe1\xf3\x2f\xba\x9e\x77\x2f\xc6\x0f\x9b\x05\x96\x56\x1d\x04\xa8\xca\xde\x8c\x5f\x76\x4f\xea\x00\x41\xd4\x14\x7e\xbb\x80\x74\x95\xc3\x4a\x5b\x9d\xe9\x85\x6c\xfd\x25\x0a\x20\x00\x94\x23\x86\xa0\xd3\xe8\xe0\x35\x82\xea\x72\xdb\xaf\xab\xa6\x2c\x84\x54\xd6\xb8\x55\x56\x39\xaf\xf2\x94\xc5\x12\x4c\xee\x5c\x59\xfe\x34\x60\x3f\xa9\x7e\x59\x89\xb1\x7c\x12\x79\x52\xe1\xcf\xcd\xb2\x7a\xa0\xa4\x9d\xcb\xd3\xab\xd3\xd8\x93\x4f\x7b\xc4\xc6\x47\xdc\xb0\x52\x54\xec\xfa\xc3\x59\xff\xfb\x77\xef\xfe\x0d\xd4\x3b\xc7\x8b\xde\x9f\x9c\x3c\x3e\x3e\x0e\x24\x57\x7c\xa0\xab\xc9\x09\x00\x08\x82\xcf\x39\x14\x91\xef\x7b\xa9\xea\x4a\xab\x7e\xe8\xdf\xcf\x2e\x1c\x20\x27\x5a\xb5\x86\x68\xea\x6c\xea\xce\xce\x6c\x9e\xe9\x59\xc9\xd5\x1c\x8c\x15\xb3\x79\x3f\xab\x8d\xd5\xb3\xbe\xef\xe3\xb5\xc2\x3f\x52\xd3\x40\x58\xfe\xd3\xa2\x60\x98\x2b\x0f\xa0\x8f\x2d\x65\x88\xf4\x1d\x40\x0b\xa5\xcc\x15\x4c\x6f\xa1\xa2\x02\xcd\xd6\x90\x09\xe8\x78\x35\x45\xcf\x34\x64\x24\x5a\xbe\x9e\x2f\x20\xe2\x29\x72\xd0\xec\xc9\x77\x34\x80\xd1\xfc\x7f\xff\x35\xc0\x0f\xc5\xa2\x5b\x42\x82\x84\x8b\xb5\xb7\x10\xd5\x9c\x20\xe9\x75\x15\xe4\x4d\xca\xb4\x89\x42\xa6\x63\xd0\xde\xdf\xdb\xd0\x9f\xbe\x7f\xc7\xb2\x29\xaf\x78\x66\xdd\xb5\x2f\xb4\x9a\x0c\x7c\x53\x10\x7b\x11\x17\xbc\xd0\x8f\x00\x4b\x68\x04\xa2\x95\x2b\x47\x25\x64\x96\xbe\xaa\x2b\x76\xd8\x3f\x0c\x2f\x03\x40\x03\x1c\x28\xa1\x48\x5a\xf2\x50\xe7\x0b\x2f\x47\x74\x59\x5f\x78\xe5\x99\xe5\x15\x5a\x49\x03\x1d\x8e\x00\x54\x43\x8b\x98\xaa\x4d\xe2\x79\x49\x47\x63\x11\x1e\x0f\x8f\x88\x2f\xc0\x58\x09\x37\x12\x74\x54\x37\x80\xf2\xa2\xce\xbd\x54\x01\x66\xc1\xb0\xe8\x09\xee\xce\x61\x73\xcb\xee\xd4\xe9\x72\xb8\x92\x28\x79\x57\xda\x4f\xe7\xc3\x1e\xbb\x3d\x1b\xf6\xdc\x2e\xdf\x9c\xdd\x0e\x1b\x3b\x76\x7b\xd6\xb9\x36\xde\xee\x39\x00\x12\xec\xcd\x2c\x00\xaf\x66\xd3\xa4\x13\xf0\xfa\xd3\xed\x27\x2e\x1d\x8c\x3a\x89\x45\x07\xb1\x0e\x09\x9f\xdd\x93\x52\x0b\xc2\x18\xe9\xaf\x41\x1f\x6c\x7e\x96\xa4\xf4\x5e\x28\x04\x11\x91\xf4\x43\x1d\x17\x5a\xea\xff\xd6\x52\xa1\x28\x50\x56\xda\xe3\xc5\xb2\x71\x5d\x14\x8c\x06\x1b\x06\xda\xdd\xc2\xd4\xc1\x9f\x9a\xda\x7b\x9a\x35\x59\x3d\x92\xa2\x37\xc1\x64\xbc\xaa\xa4\xb7\x04\x4b\xd3\x9c\x2a\x52\xd2\x96\x01\xc8\xc9\xa2\x91\x8e\x8e\x12\x65\xdb\xf5\xdd\x0e\x01\x94\xb3\x59\x6d\x21\x4a\x8a\x8f\x01\x0c\xb5\x12\x54\x50\xf5\xb6\xa1\x82\xf8\xf1\xa0\xd9\x09\xb0\x99\x51\xaa\x2b\xe6\xd1\xd3\xeb\xe8\xde\xe5\xf0\xe1\xbb\xf7\xec\xba\x99\x77\x39\x7c\xf8\x8e\x9d\x62\x0f\x03\x6c\xf3\xfd\x92\x36\xdf\xa7\x6d\x3e\xfc\xf5\xfc\xaa\xd9\x86\x7d\xa8\x8b\x62\xce\xfe\x5a\xf3\x02\x6d\x9e\xe7\x00\x35\xcf\xb6\x74\x9d\xf2\x52\xfe\x2c\x2a\xb3\x39\x94\xf3\x74\x78\x49\x0d\x43\x24\x13\x82\x9f\x54\x08\xfb\x00\x18\xb1\x33\x1e\x78\x5c\x38\xf6\x3c\x91\x75\xf1\x50\x0e\x80\xe1\x24\x22\x5f\xa6\xd5\x83\x00\x71\x29\xd3\x13\x25\xff\x11\x7a\x0b\x1c\xaa\x70\xb2\xa4\x45\x32\xa7\x3c\x3a\x76\x2f\x14\xae\xa8\x04\x58\x01\x6a\x95\xf4\xe0\xab\xa5\x2c\xc9\x5c\x98\x48\xeb\x73\x51\x32\x3d\x9b\xd5\x4a\xda\xf9\x09\xc0\x34\xc8\x51\x6d\x75\x65\x4e\x72\xf1\x20\x8a\x13\x23\x27\x7d\x5e\x65\x53\x69\x45\x66\xeb\x4a\x9c\xf0\x52\xf6\x61\xb0\x0a\x44\xfc\xc1\x2c\xff\x26\x64\x30\x3d\x7f\xed\xc3\xad\xda\xb0\xf4\x91\x4c\x80\x31\xc4\x17\xce\x20\xa9\x20\xf9\x35\x3d\xf8\x54\xf7\x85\x2e\xc1\x4a\xd5\xfc\xcd\x9b\x37\xcb\x6e\x37\x5b\x63\xd5\x7c\x81\x15\x71\xc7\x26\x50\x6e\xf5\x4c\x66\x2f\xc6\x6e\xe5\x8d\x02\x3b\xf1\xe4\x7a\x15\xe7\xfa\xe2\xe6\x36\x4d\x95\x96\xc1\xec\x14\x69\x7b\x3c\xd3\xb8\xd6\x63\x41\x5c\x2d\x04\x33\x07\xf5\x0b\x51\x97\x25\x18\x3f\xeb\xd1\x4c\x5a\xc4\xa8\x15\xc6\x62\xd5\xa8\x33\xae\x1c\xa7\x1f\x09\x56\x97\x39\xea\xd6\x97\x8a\x9d\xf1\x99\x28\xce\xb8\x59\x9e\x8b\xb3\xcb\x13\x0d\xc4\xad\xef\xd6\x6f\x8b\x33\xed\x9d\x41\x3b\x2c\x09\x82\x76\xc3\x4f\xc2\xf2\x0d\x29\x3d\xa4\x10\xe0\xde\x1c\x9a\xe0\x98\x5a\x61\xff\x03\xc1\x6a\xc3\x11\x41\xe1\xab\xc9\x9c\xfc\xfd\x53\xc2\x3e\xea\xea\x9e\x04\x34\x9f\x0b\x3f\x9a\xa3\x51\x38\x6a\xdb\x4b\x6e\x25\x88\x82\x2b\x25\x7c\x08\x65\x27\xcd\x20\x54\x05\x94\x76\x51\xa9\x77\x52\x00\x0a\x86\x44\x93\x73\x7c\x8d\xba\xc0\xd4\x51\xd4\x0d\xf0\x57\x02\x02\x71\x7a\x3a\xfc\x44\x64\xb4\xd1\xf7\xdd\x01\xf7\x8a\xc9\xdd\x41\x67\x2a\x42\x1f\x7e\x6d\x02\x32\x4c\x0a\xf7\xbe\x16\x11\x79\x9e\xc9\x09\xe4\x9c\xa5\x44\x7d\x93\x25\x2a\x3c\x6f\x8c\x0d\x20\xae\xfb\xc4\x56\xfb\x44\xc5\xe2\x67\x1b\x87\x75\x42\xa0\xdd\x07\x71\xc1\x90\x08\x34\xe7\x4e\x9d\x1c\x2c\x37\x38\x40\x93\x87\x20\x03\x1c\xd0\x92\x2f\x2e\xc8\x7f\x6d\x29\x29\x7f\x94\xa6\x8b\xc1\x24\xb4\x6d\x4a\xcc\xfe\xb6\x85\xfb\x04\x67\xb1\x43\xf8\xed\x5e\xb2\xf9\xed\x24\x9b\x65\x17\x7f\xa1\x7e\xd3\x86\x8d\x5d\xd9\xd1\xcb\x28\x08\x1e\xfe\x8e\x24\x64\x2f\x59\xfc\xae\x25\x0b\x77\x04\xbb\xcb\x15\x40\x89\x96\xc9\x14\x1d\x19\x06\x9e\xe5\xaf\x9b\x2b\x00\xad\xde\x1d\x67\x10\x0f\x70\x82\x1f\xde\x0e\x2e\x1e\xd6\x97\x0c\x85\xdf\xbd\xb3\x17\x64\x13\xf2\x8e\xc0\x73\xa3\x67\x02\x3d\x50\xde\xb8\x85\x08\x5a\x50\x0e\x31\xc2\x46\xe5\x42\x69\x30\x78\xea\x99\x20\x87\x41\xb3\xa4\x61\xbb\x7e\xec\x6a\xe6\xd1\x4e\x23\x59\x36\x66\x6c\x84\xb1\x72\xdc\x32\xfa\xf3\xd1\xd1\x76\x7e\x2f\xd4\xc9\x98\xcb\x02\xf2\xee\x26\xbc\x11\x03\x13\x1f\x78\xae\x81\x35\xd9\xe9\xa4\xf6\x2b\xc1\x73\x3e\x2a\x9a\x56\x8a\x8c\x2b\x12\x16\x2d\xba\x4f\xde\x7e\xfb\xef\x89\x2d\x74\xaf\xfa\xff\x53\x31\xc8\x08\xdb\x77\xd6\x4a\x42\x5e\xb6\x01\xad\xd6\x3e\xdc\x30\x3e\xf6\xd1\x57\xc6\xd4\xc0\x6e\x46\x3c\xbb\x07\xcc\x14\x70\x77\x58\x09\x31\x4f\x73\x14\xff\x29\x1c\x83\xe1\x8d\x03\x6b\xd8\xae\x2d\xc1\x71\x60\x1f\x64\x65\xec\xad\x9c\x09\x63\xf9\xec\xd9\x89\x50\x6b\x48\xb7\xeb\x73\x2d\xd9\x5e\x35\x86\xdd\x2f\xde\x86\x25\xf8\xc8\x7f\xf3\x15\x68\x0c\xe1\x8b\x2f\xc0\x42\x0e\x4f\xa7\x99\x47\x84\x71\xf7\xa5\x0e\x50\x17\xed\x0f\x7e\xa1\x79\x02\x83\x82\xbd\xd8\xdd\xd6\x7e\x92\x59\xa5\x37\xee\x6f\xf8\x72\xa8\x3f\xe4\xfe\x4d\x88\xe4\xd2\xd0\xd0\x1d\x3b\x1a\xbb\x1b\xc0\xf4\x08\x7d\xb4\x9e\xdd\xc4\xc2\x48\x7b\x31\xf7\x77\x2d\xe6\x26\x06\xb4\xa5\x9f\x74\x42\xd3\x26\x5c\x10\x6d\x05\xee\xf4\xb4\x9e\x71\x15\x44\x14\x96\xb4\x0b\x9e\xc6\x24\xa2\xd3\xed\x74\x49\xa5\xf1\x07\xec\x13\x7f\x92\x33\x5e\xb0\x42\xa8\x89\x9d\xc6\x20\x2c\xec\xfb\xed\xfd\x0f\x18\x08\x56\xc8\x51\xc5\x2b\x29\x4c\x12\x0f\x99\x06\xac\x50\x14\x30\x45\x3f\xd6\xa5\x7b\xf6\xfd\x77\xf7\x3f\x6c\x07\xa1\x60\x36\xca\x3f\xd8\x08\xe5\x3c\x4c\x45\x68\x8b\x7a\xfe\x4a\x35\x17\xe7\x95\xe5\xb7\x20\x46\x7e\x91\x88\xcc\x28\xb4\x86\xc8\x45\x00\xe2\xf0\xf1\x97\x81\xe0\xb8\x53\x32\xd2\xb5\x6d\x07\xfa\x48\x28\x0c\xa8\xd8\xe7\x70\xf3\x75\x65\x7d\x7f\x84\xe8\x17\x3c\xa0\xa6\xc7\x20\xd8\xf5\x5a\x40\x18\xcb\x8d\xb0\x67\xcb\x5a\x25\xbf\x1b\xc2\x06\x91\x86\x74\x06\x30\x9d\x62\xf9\xe2\x91\xc8\x78\x6d\xa0\x62\x21\xcf\xac\x09\xb5\x26\x51\x39\xc0\xf8\x8b\xa4\x2b\x2f\xab\xae\x5a\x76\x27\x91\x6e\x9f\x59\xff\xbc\x45\x87\x6f\x79\x02\x8f\x39\x41\xbc\x60\x46\x64\xda\x29\xa5\x73\xbf\xfe\x01\x98\xdf\xb1\xb2\x42\x3c\xd1\x09\x35\x03\x76\xe1\x96\x11\x98\x42\x5b\xed\x60\xb6\x92\x93\x89\xa3\xb8\x3c\x38\x3c\x01\xd7\x57\x14\xc2\xdf\x67\x3f\x80\x0d\x2b\x42\x5b\x19\xf7\x68\xe3\x8d\x5a\x78\x63\x59\x0e\x4d\x72\x32\xc0\xe2\xed\xf7\x33\x9e\x36\x3a\x26\x7f\x6f\xc6\x34\x12\x66\xd5\xdf\xdb\x17\x90\xb8\x02\x86\x7b\xb8\x25\x53\xe2\x11\xfb\xd9\xee\xfe\xd1\x24\x2e\x95\xb1\x5c\x2d\x8a\x38\xab\x26\xed\xdb\xfb\x29\x5f\x9e\x2f\x99\xb0\xa4\x46\xe9\x0c\x0b\x61\xfb\x4f\xf3\x7f\x8c\x9f\x33\x31\x2c\x2b\x6c\x5f\x81\xfe\x18\x51\x2d\x46\x46\x6f\xbe\x07\x2d\x9b\xc0\x0d\xf6\xb2\xee\x16\xe0\x87\xc0\x8f\xc1\x2d\x4f\x72\x08\x90\xe0\xd0\xcf\xc9\xd5\x4f\x0c\xc8\x6e\x2d\x64\x81\xe5\x7f\x0f\x63\x52\x8d\xd5\x0a\xdf\x5e\x15\x1b\xbe\x39\x7a\x01\x62\x14\x5a\x95\x1f\x93\x31\x1c\x5d\x41\xc5\x96\x1e\xfb\x85\x57\x4a\xaa\xc9\x71\x0f\x36\x05\x23\x07\x32\xcf\xd6\x30\x85\x95\xac\x13\xe3\xda\x49\x14\x2b\xad\x01\xbb\x4d\xff\x8d\x72\xeb\x17\xb4\x48\xd1\xde\xaf\x35\x47\x81\xa1\x68\xb5\x09\x6a\x7b\xeb\xd3\x26\x3f\x84\x6f\xd3\xf4\xb2\xe3\x19\xa3\x68\x9a\x6e\xb5\x54\xf7\x56\x95\xaf\xd8\xed\x00\x6d\x9a\x5b\xec\x17\xba\xbd\xc7\x2b\xfb\xdc\x82\xcc\xed\x3d\x0e\x7b\x55\xec\x85\x1e\x87\xd7\x5e\xab\x30\xdd\xaf\xdf\xb3\xd1\x95\x8f\x6c\x70\x67\x6c\xcf\x4b\x6e\xda\xb2\xcf\x52\x6e\x82\xad\x42\x76\x69\xab\x54\x19\xc9\x2d\x7a\x8c\x12\x83\xe9\x31\x39\x10\x03\x2c\x68\xe1\x0b\x73\x99\x13\xa8\x85\x57\x96\x42\x79\x55\x49\xaa\x5a\xd7\xa6\x40\x39\x0f\x4b\xe6\x03\xf0\xf2\x8f\xfa\x91\xe9\xb1\x15\x50\x38\x1c\x6f\x5b\x14\x92\x6e\x82\x08\x85\xea\x32\x5c\x62\x2f\x2b\xe9\x0a\x24\x40\x88\x75\xcc\x29\xc6\xb6\xf9\xa3\x93\x50\xee\x0e\xfc\x41\x83\xfb\xde\x9f\xe8\x13\xab\x75\x61\x4e\x70\xf4\xf8\x9f\xbf\x8d\x2a\xcd\xf3\x8c\x83\x73\x66\xa2\xef\x0e\x1c\x47\x7a\x44\xb0\x47\x8c\x82\xb1\x55\x9d\x59\x1c\x48\xce\x09\x63\x76\x2a\x78\x65\x47\x82\x93\xb4\xea\x44\xd5\x49\x2d\x73\xc1\x30\x3c\x1f\xb8\x4f\x1c\x8a\xd7\xfe\x38\x9e\xdc\x2e\x40\x5c\x9b\x4d\xec\x59\x6a\x58\x8f\x41\xda\x3a\xc3\x00\xcf\x2c\x8d\x2b\xc5\xb5\x8c\x0b\x59\x70\x63\xe3\x1c\xa8\x74\xd9\x8e\x4d\xea\xee\x1b\x9f\xc9\x80\xf7\x9b\x58\x1b\xdb\x03\x58\x34\x3a\xc2\x32\xa0\xb8\x14\x18\x05\xad\xd5\x23\x77\xcb\x26\x94\x2f\xa9\xd8\x5c\xb1\x2d\x7c\xa9\xb8\xa5\xeb\xd6\x67\x13\x35\xda\x78\xd1\x29\x6c\x60\xef\xb7\xdc\xfb\x2d\xf7\x12\x76\x5c\xe1\xbd\xdf\x72\xef\xb7\xdc\xfb\x2d\xf7\x7e\xcb\xbd\xdf\x72\xaf\x2c\xef\xfd\x96\x7b\xbf\xe5\xde\x6f\xb9\xf7\x5b\xee\xfd\x96\x7b\xbf\xe5\xbf\x8e\xdf\x32\x31\x0c\xec\x9d\x97\x7b\xe7\xe5\x73\x9c\x97\x5b\xc7\xcf\x27\x67\x6e\xef\xc6\xfc\xbd\x1b\x59\xbe\x4a\x37\x66\x6a\x0e\x4d\xfa\xd8\xfb\x32\xff\x65\xd5\xb3\xbd\x2f\xf3\x6b\xf2\x65\xee\x82\xb5\x7c\x7d\x5e\xcd\xbd\x73\x6f\xef\xdc\xdb\xa5\x73\xef\xc9\x0a\x65\x80\x48\xf8\x83\xff\xe3\xed\xed\xf0\x52\x4d\x2a\x61\x4c\xab\x54\x47\x7b\x91\x5a\x2d\x23\x32\x2b\x94\x41\xf6\xf5\xdd\x18\x67\x04\xd3\xed\xd8\x43\xa6\x67\xee\x84\xd7\x55\x61\x9a\xd5\x14\x4a\x5f\x11\x6d\xac\xab\x47\x5e\xe5\x11\xf0\xd4\xbf\xbd\xf9\xe8\x53\xcb\xe7\x6b\x32\x8b\xab\x40\xf3\xfa\x81\x7a\x5c\x77\x56\xa8\x4d\x43\xda\x0b\xf8\xbc\x11\xee\x2f\xb2\x55\x9d\x14\xb8\x23\x8c\xc9\x50\xce\x34\x9d\xfd\x2a\x98\x8e\x8e\x05\x54\xa4\x09\xb5\x43\xf8\x84\x3b\x35\x34\x2e\x34\x4a\x99\xd2\x6f\x07\xb1\xf5\x01\x3b\x0b\xe8\x4d\xa4\x69\x7a\xa2\x96\x80\xcc\xe5\xd2\xf0\xa2\xd0\x8f\x69\x61\xca\xc8\x6d\x00\x97\xdd\x7d\xe3\xee\x80\x95\x9c\xdc\xbf\xec\xa7\xeb\x8f\x8c\x47\xd8\x8d\xd1\x9c\x5d\x7f\x38\x63\xef\xfe\xd7\xbf\x7f\x3f\x60\x6e\xb0\xc6\xc3\x52\x4d\xa4\xf2\xa7\xe6\xf0\xe4\x90\x70\x3b\x12\x10\xfd\x1e\x94\x46\x29\xe1\x15\xf8\x7a\x7b\x0e\x88\x42\x45\x13\xdf\x06\xbb\x8e\xdb\x69\x07\xa8\xae\x21\x35\x4b\x0b\x78\xba\x85\x08\xb8\x73\x3c\xb5\xa4\xc2\x7e\xf8\xe3\x8e\x33\x86\x97\xa9\x98\x9d\x56\xc1\x52\x12\xa1\xb5\x50\x2c\x7f\xcf\xfe\xc0\x2e\x9e\x78\x66\xdf\xb3\x4f\x30\x27\xfc\x8c\x5b\x4f\xd8\x48\xe1\x7e\x2b\xe6\x03\xf6\x07\x36\x04\x88\xc7\xd8\x6e\x04\x55\x7c\xb4\xa2\xe5\x87\xe6\x08\x03\xc9\x4c\x59\x48\xeb\x76\x01\xd6\xf8\x93\xbf\x87\xd2\xdc\x29\xc6\x72\x18\x8e\xf2\x77\x58\x10\x04\xdb\x68\x1e\xff\xc9\x8d\x34\x50\x9d\x25\x6d\x00\x67\xde\x10\xa5\x74\x1d\x79\x39\x9c\x70\x91\x7d\x59\x5c\xf7\x4e\x18\x80\x7b\x72\x78\x72\xc8\x8c\x28\x79\xc5\xad\xae\x5c\xb7\xb4\x95\x20\xf2\xba\x8e\x10\x3d\x77\x0c\xd8\x8a\x6e\x12\x4c\x02\x33\xad\xe6\x0c\x9c\x60\x5c\xf9\x31\xf4\xa1\x5e\x27\x4d\x52\x8f\x59\x49\xcb\xea\x3a\xf1\x9d\xba\x2e\x06\xec\x4a\x43\x34\x10\xb7\x50\xfb\xd3\xb3\x35\x3f\x15\xda\x8c\x92\xae\x11\xc2\xd4\xc1\xa1\x71\x3d\xe9\x25\x6f\x48\xd5\xf8\x00\x42\xc8\x20\x74\x21\xa7\xf1\x23\x5a\xf9\xc9\x58\xeb\x93\x11\xaf\xc2\xbc\x84\x09\xcf\x4e\x46\xfc\x1f\x68\x39\xcf\xb5\xc0\x97\xf1\x55\xdf\x60\xc4\xff\x71\x0c\xd8\xc5\x97\x8d\x98\x9f\x1b\x82\x32\x7c\xcf\x2e\x37\x1f\xbf\x10\xf3\xe4\x46\x00\x56\x2b\x24\x75\x67\x05\x37\x66\xd0\xea\xd9\xc0\x11\xb5\x95\xf0\x98\xb9\x1c\x8b\xa4\xc3\x66\x89\x70\x90\x61\x55\x2a\x6a\x27\x7d\xd9\xa6\x0c\x62\x39\xac\xa6\x93\xe9\x5a\xc0\x51\xc6\x75\x05\xe9\x7d\x70\xa7\xda\x1f\x44\xf4\x54\xaa\xa1\x68\xb5\x87\x91\x0b\xf7\x9e\x5e\x6c\x54\xe3\x58\xbe\x1c\x3b\xb6\xb1\x78\xee\xf2\x3a\xbc\xf6\xba\x2e\xc4\xcf\xee\xca\x77\x63\xb8\xa1\x79\x53\xe5\x75\xaa\x03\x01\x1c\xea\xca\x30\x60\x38\x14\xb0\x42\xc3\x37\xa0\xa4\x81\x9e\xf7\xc4\xdd\xb2\xbd\xf7\x68\xb3\x77\xf5\x9b\x37\xef\xb2\xa9\x36\x16\xfe\x25\xe8\x01\xd0\x72\x78\xf0\xbf\xf1\x81\x11\x4e\xd9\x70\xb4\x1d\x1f\xb3\x3e\xfd\x97\xbe\x40\xd0\xd8\xf8\xff\xae\x59\x28\x66\x50\x57\x45\x82\xb6\xea\x06\xe5\xb9\x40\xcf\xdb\x42\x48\x77\xf5\xec\x10\xd0\x81\xad\xa6\x6b\xe0\xd9\x18\xdc\x7d\x14\xa0\x11\x9e\x30\x5c\x47\x47\x4a\xb8\xca\xbd\xe4\x05\x14\x15\x7c\xa6\x87\xff\xfb\x10\xd0\x51\xbf\x39\xec\x20\x47\x00\x7b\xd9\x64\xe6\x61\x99\x2e\x0a\x2a\x9c\xe9\x48\x0d\xb0\x24\xaa\xa0\x59\xa6\x8a\x72\x5c\xf9\x1d\x59\x20\x36\xcb\x6c\xcf\xb6\x47\x74\xbc\x02\xb8\x30\x3b\xbc\x00\x34\xe8\x35\x67\x9e\x5a\xe0\x31\x6f\x2e\x79\x55\x17\x1e\xfa\x0b\x04\x12\x26\xd5\x48\xd7\x0a\xcc\x64\x0a\x9b\x61\x91\x1f\xc0\x1f\x6b\xe2\x8b\x26\x92\x48\x22\x9f\x9e\x2a\x4f\x0d\x3d\x6b\xc6\x5a\xa1\x35\xd1\xa2\x89\x7c\x08\x85\x20\x0d\x73\xf3\xa9\x94\x23\x72\x7d\xf8\x04\xf8\x51\x9d\x64\xdb\x63\x85\xe6\x39\x1b\xf1\x02\xbc\x03\x01\x47\x1c\x25\x05\x47\x38\x6f\x6e\x3e\xf6\x98\x1e\x8f\x45\x85\x7e\x12\xe4\xd5\x0f\x58\xed\x11\x50\xf9\xdd\xe1\x16\x36\x1b\xb0\xf3\x8b\xe1\xf5\xc5\xd9\xe9\xed\xc5\x39\xeb\xa3\xb7\x00\x34\x65\x6f\x50\x74\x0b\x91\xac\x51\x12\x24\x31\x9a\x7b\x44\x36\x27\x74\x90\x21\x81\x16\xde\xbf\x32\x60\x37\x42\x90\xc4\x5a\x08\x6e\xd0\x89\x6b\xa2\x1b\x2a\x51\x66\xf7\x46\xd2\xaf\xda\x48\xba\xb7\x23\xfe\x5e\xec\x88\x2f\xc7\x77\xfc\x0d\xac\x89\xa9\x3f\x71\x49\x85\xbd\x17\xe8\xe0\x50\xb0\x6f\xed\x42\x50\x81\x3e\x0c\x12\x33\x58\x7c\x1b\x82\x86\x49\xee\x08\xc4\xee\x95\x97\xc5\x4d\xbc\xcf\x55\xde\xc7\xc8\x99\x55\xb5\x59\xe1\xb7\x1d\xae\x0f\x76\xb8\xe1\xa8\xd8\xda\xab\x66\x8d\x4a\x53\x5f\xd1\x1a\x2d\xc8\x20\xaf\x68\x62\x0e\x8b\xb9\xdc\xbe\xec\xc5\x92\x1d\x5a\x97\x37\x9a\x98\x36\x8a\x40\xd1\xce\xe4\x7e\x1d\x09\x03\x2a\x51\x52\x7f\x6b\x09\x30\xba\x63\x69\x00\x23\xdf\xa5\x96\x8a\x79\x59\x7c\xa7\x53\x04\xf3\x8f\x3a\xe3\xc5\x73\x22\x63\xae\x3d\x9b\x91\x49\x50\xd1\xb5\x18\x43\x61\x2b\x85\x95\xc4\x92\xd2\x0d\x81\x2b\x91\x35\x01\xca\x59\x94\x3c\x6b\x9f\xe3\x18\x91\x3f\x4e\xde\x31\x69\x1d\x01\x5a\x23\xa8\xea\xe0\xd6\x89\xfe\x1e\x06\x28\x5a\x62\x4a\x49\x01\xe9\xe5\x17\x3a\xf6\xb3\xa9\xcc\x72\x03\x36\x37\x0d\x90\x59\xb4\x17\x6e\x17\xc7\xe1\x27\xf0\x32\x6e\x54\x5b\x59\x0c\xdc\x99\xb2\xd5\xe0\x52\xd9\xcf\xd5\x0d\x7e\x75\x13\x11\x8e\x73\xf3\x89\x1f\xab\xe6\xd6\xfd\xd6\x3f\xff\x42\x6d\x88\x07\x48\x5a\x2d\x53\x2a\x3c\x1d\xdc\x0b\xbb\x5f\xb3\xb0\xdb\x25\x22\xe0\xd2\x47\x04\xa4\x18\xd5\x0b\xdb\xbb\xb2\xbb\x97\x31\xe5\x7d\x48\xc0\x5e\x94\x7f\x76\x48\xc0\x57\x21\xc8\x77\x34\x05\x7d\xf9\xb0\x80\x6e\x32\xdb\xae\xa3\x02\x56\xde\xf0\xeb\xba\x58\x67\xab\x4d\x5a\xb5\x0b\xdf\xa1\xdd\x6a\xc6\xcb\x32\x75\x7e\x1a\x56\xab\x5c\x38\x11\x2e\x96\x6f\x9e\x6a\x63\x63\xb2\x21\x46\xf0\x7a\x2b\xab\x37\x43\x25\x5e\xd5\x86\x0b\x0c\xed\x9e\xc2\xd1\x05\xcc\x99\x01\xf1\x10\x7a\x04\x6b\x2a\x14\x8c\x56\xac\xd2\xb5\x5d\xf0\xb5\x2e\x2d\xb2\x19\x1c\x08\x6d\x13\x74\x07\x5e\xe9\x3e\xbb\x81\xa2\xfd\xa8\x4d\x08\x49\x18\x43\x49\x97\x5f\x43\x49\x97\x1c\x4b\xba\x78\x89\x89\x87\x52\x03\xae\xdf\xde\x4a\xcf\x22\x39\x79\x52\xaf\x5a\x2e\x1e\x24\x39\x1a\x02\x75\xbb\x83\xe1\x25\xfe\x4a\xf4\xb0\x5d\xa6\xfd\x4a\x15\xfa\x7d\xcf\xde\x0e\xd8\xe5\x30\x96\xa0\x22\x6f\x68\xea\x3d\xe5\x6a\x61\x95\xc0\xa2\xa8\x95\xfb\xb1\x2c\xc1\x2f\x72\xa7\x18\x79\x60\x86\x5e\x9c\x05\x55\x36\x78\x9f\x40\x4b\xf3\x1c\xeb\x4e\x7d\x8b\x19\xe9\x7f\x7f\xff\x77\x96\x0b\xac\x0a\x5a\x79\x27\x53\x25\xdc\xa9\x49\x63\xe4\x9b\x65\xb2\xfc\x18\xef\xd4\x9d\x65\xc9\x40\x53\x61\x2d\x0e\x1a\x4b\x00\x95\x85\xcc\xa4\x6b\xf4\xfe\xdf\xdf\xc0\xf1\x01\xef\x02\x57\x39\x76\xf2\xfe\xbb\xef\xde\x85\xc7\x6e\x7c\x3f\x68\x3c\x29\x06\x2b\x23\x34\x33\x76\x43\x38\xec\x3a\x7f\x6d\xc3\x51\x0d\x47\x35\x31\xe4\x2f\x1c\x3b\x5f\xf9\x6d\x4a\x27\xa7\xe1\x26\x4e\x75\x01\x38\xe3\xa8\x2e\x79\x7f\x7b\x70\x8e\xda\x69\x5a\x2f\x7d\xe1\x1b\x77\xea\x4e\xfd\x88\xb9\x0f\x60\x0f\xbe\x3b\x28\x2b\x91\x49\x23\xee\x0e\xc8\x8b\x0f\x4c\x38\x3d\xa0\xee\xc2\xf8\x98\x66\x6f\xf1\x85\xa3\xa7\xed\xe2\xe1\x25\xaf\xe0\xdd\xc1\x58\xeb\xc1\x88\x57\x83\x4c\xcf\xee\x0e\x8e\x99\xae\xd8\xdd\xc1\xa3\x2c\xf2\x8c\x57\xf9\xdd\x41\x6f\xd5\xc7\x42\x5d\x3f\x72\x9a\x53\x89\x74\xff\x26\xd5\x2a\xf4\x1f\xf9\xc3\xc0\x7d\x06\x3f\x81\x87\x29\x34\x0c\x0e\x7e\x76\xf8\x87\x43\xd4\x7f\x78\x59\x0a\x5e\xb9\x2b\x25\xad\x11\xc5\xd8\xdd\x87\xe8\x51\x39\xbf\xba\xa1\xde\x51\x94\x44\x57\x26\x1e\xf0\x50\xa9\x1d\x2a\x9b\xb2\xff\xd4\xb5\x0f\x6e\xa7\xf2\x1e\xad\xf1\xc5\x4f\xe0\x48\x61\xc5\xff\xf4\x27\x37\x62\x18\xe9\xb5\x3f\x2b\xde\x2f\xb4\xec\xbc\xc0\x4b\x54\xc1\x4a\xb5\xae\xfd\x23\x9f\xe3\xb5\x1d\x33\x4f\x67\x68\x1f\x7b\x44\x5c\xd1\x77\x3b\x0b\x3e\x76\x27\x87\x3b\xda\x4d\xee\x61\x38\xfa\xb0\x61\x53\xc1\x73\xbc\x77\xc2\x11\x28\x47\x39\x5d\x97\x03\xf6\x6d\xa3\xfb\x38\x47\x22\xb4\x5b\x7f\xc6\xea\xf8\x25\x38\xad\xf5\x78\x2c\x9f\xd8\x51\x25\x66\xfa\xc1\x73\x10\xdc\x13\x58\xcd\x63\x4f\x40\xc2\x22\xbb\x2f\x6c\xa1\x4f\xba\xc1\xec\xc2\x4e\xb5\xd4\xcb\xf9\x9a\x1a\xe0\x4d\xd3\x00\xb9\x82\x35\x03\xad\x8d\xc6\x94\x94\x60\x80\xb3\xd2\x88\x8a\x3d\x4a\x03\xfb\xa4\x99\x78\x92\xa6\x8b\x19\xe5\xb7\x89\x41\x3a\x0d\x38\x25\x9e\x83\x43\x65\xff\x02\xd8\x25\x4a\x0a\x0d\x9a\x0b\x4e\xb3\x5c\xab\x43\x1f\x61\xc0\xd5\x1c\x8f\x09\x3b\x4d\x4b\xfe\xeb\x31\x3b\xa4\x1e\xd1\x7f\x0a\xb2\xcb\x61\x28\x22\x17\x6d\x23\xad\x02\x72\x21\xc3\xc9\x6a\x72\xce\x81\x16\xa6\x79\x4e\x5e\xb1\x2a\xcd\x91\x81\x64\x25\x18\xbf\x1b\x65\xa1\x27\x32\x03\xd7\x3f\xf4\xee\xe8\xc9\xa4\xd0\x23\x5e\xf8\x46\x2b\x0c\x31\x32\x09\x64\xe8\x60\x8d\xb9\x6c\x35\x5f\x96\xb8\x94\xb6\xf1\x58\x15\x41\x9d\x42\x0a\x9a\x88\x4a\x8d\xd6\x5e\xd5\x47\xc2\x9d\x4c\x16\x68\x58\x2c\x6d\x88\x74\x21\xf6\x88\x06\x80\x82\x67\x62\x21\xed\xb9\x95\x1d\x45\xf3\x1d\x64\xee\x7b\x7f\x67\x40\x60\x29\x41\xf3\x83\xae\x42\x56\xb4\x69\xa6\x45\xf7\x7c\x66\x31\xb7\xc9\x2b\x60\x1b\x13\x16\xe2\x56\xfc\xe6\xa2\x29\xd1\x7d\x5d\xe4\x50\x6b\x5e\x3f\x04\xcd\xd0\xed\x33\xce\x3f\x99\x99\xe3\xfa\x62\x26\xad\x23\x7e\x98\x27\xe3\xe9\x1a\x25\x6c\x3b\xc9\x32\x7e\x12\x78\x41\x2e\xc7\x60\x1e\xb2\xc1\xea\xd0\x0e\x08\xf1\x66\x91\xd3\xe1\x65\x28\x89\x3c\x51\x4e\x2a\xa0\xf5\x76\x8b\x4c\x3c\x97\x33\x58\x8c\xf4\x5c\x46\x9f\x2e\xee\x4b\x50\x86\x7d\xb9\x48\x5e\xdd\x3b\x4e\x62\xfc\xe9\xf2\xbc\x96\x38\xbe\x0f\x41\x30\xc2\x75\xef\xaf\x19\xaa\xdb\xa1\x54\x27\xad\xc7\x87\x25\x6e\xd3\x1e\x1a\xc0\x3c\xf5\x6e\x9e\x11\x9d\xd5\x61\xa6\xdb\x64\xae\xb9\xdb\xb8\x31\x50\x21\x04\x87\x38\xbe\x82\xca\x87\x9f\x54\x70\x6f\x37\x7d\x00\x97\xe3\xa6\x30\xa5\x2b\xa6\x34\x32\x2a\x62\x5d\xbd\x86\x34\x05\x87\x47\x05\x55\xa5\x45\x8b\x5e\xdd\xd8\x02\xaa\xd8\x4b\x0c\x2e\xb6\xd8\xb4\x8a\xb7\x1f\x6f\xc2\x62\xd1\x1d\x6b\x0a\xd1\xc1\xee\xac\x62\xe9\xcb\x98\xa1\xc6\xdc\xfb\xee\x51\x8f\x7d\xf7\xdd\x3b\x58\xe0\x50\xa6\x74\x26\x66\x23\x28\xde\x4b\xe7\x1c\xb6\xcb\x93\xbe\x78\x3d\xdc\xee\x19\x90\x25\xe6\x51\x0c\xa2\x3e\x9e\x12\x59\x16\xa4\x42\x08\x98\x4a\xab\x96\xdb\xb4\xd8\x7f\x94\x77\xed\xb4\xd2\xf5\x04\xf5\xbb\x9b\xab\x4b\x18\x66\x58\xe7\x9e\xbf\xbd\xd2\xc7\x44\xc4\xab\x3e\xae\x8b\xb1\x2c\x0a\x2f\x7e\xf8\x16\x61\xe2\x37\x57\x97\xaf\xbe\xed\xb7\x1f\x6f\x76\x10\xe9\xf2\x72\x69\xa3\xed\xd0\x5b\x25\x6f\xa0\x13\xce\x4b\x1c\x9b\x5d\x71\x9b\x85\x0d\xc7\x4f\x7f\x20\x7e\xba\xb5\xdf\xe6\x63\xd2\x49\x07\x5f\x62\xda\xbc\x99\x42\x9e\x4e\xa6\x0e\x41\x5f\x6e\x8c\x7d\xcf\xf4\x5f\xd7\xf2\xff\xff\xb3\xf7\xf6\xcd\x6d\x1c\xd7\x9e\xf0\xff\xfb\x29\xba\xe8\xfb\x94\xa8\x14\x00\x8a\x92\xed\x9b\x28\xb5\x95\x87\x91\x64\x87\x1b\xdb\xe2\x23\xd2\xbe\xb5\x6b\x7a\x8b\x8d\x99\x06\xd0\x57\x83\x69\x64\x7a\x06\x14\x72\x93\xaa\xfb\x41\x76\xbf\xdc\xfd\x24\x4f\xf5\x39\xa7\x7b\xba\xe7\x05\x33\x00\xc1\x17\xcb\x93\xaa\x24\xe2\xa0\xa7\xa7\x5f\xcf\xfb\xf9\x1d\x73\x20\x3a\xb7\xc1\x1c\xf1\x50\xea\xcb\x33\x9e\x6a\xb8\x32\x09\xdf\x88\x8c\x69\x11\x15\x99\xcc\x37\x35\x2b\x48\xa9\x20\xf7\x34\x79\x74\x51\x15\xa3\x2c\xa0\x02\xcc\x03\x2a\xad\x6d\x59\x41\xa7\xca\x00\xfd\x31\x9f\x99\x41\x55\x42\x64\xbd\x04\x9c\x60\x53\x35\x30\xa3\xa8\xb0\xfa\x85\x13\x66\x4e\x88\xde\x53\x57\x79\xa2\x2f\x45\x94\x89\x3c\x8c\xa1\x0c\x34\x06\x60\x15\x5a\xe4\x20\x8f\x21\x97\x6b\x97\xde\x02\x5a\x20\xb5\x5d\x23\x20\x1f\x89\x98\xe5\x3e\x2f\xe9\x47\x14\xda\x78\xdf\x1e\xa4\x5d\xc3\x54\xfb\x38\xe7\x5c\xc3\x26\x41\x10\xbb\x71\x7c\x33\x88\xe4\x72\x6c\x50\xa5\x48\xdd\xbf\xb1\x52\x30\xcc\xbe\x2e\x0a\x9b\x77\x32\x55\xe4\x88\x5d\x43\x86\x08\x43\x7e\x1d\x85\xe6\x89\x4a\x4b\x03\x87\xfd\x09\xf1\x0d\xcc\x36\x8b\x14\xb7\x60\x96\xc8\x28\xd7\xa5\x8d\xee\x1a\x8e\xd4\xf5\x91\x55\x1f\x51\xee\x2a\xa8\x0e\x67\x68\x95\x1a\x55\xfa\xa6\x53\x02\xbb\x6d\xcd\x16\x2a\x05\xa1\x0d\xa5\x1d\x5a\x8a\xbf\x84\xea\xa9\x7b\x89\x66\x74\xdf\x65\xc8\xbd\x98\xb6\xf5\x6f\x32\x5b\x25\x5c\x80\x21\x51\x65\x48\x54\x19\x12\x55\x86\x44\x95\x21\x51\xe5\x89\x26\xaa\x3c\xad\x24\x94\x56\xee\x39\xe4\x9f\x0c\xf9\x27\xfb\xc8\x1f\x7b\xa6\x9e\x04\x3f\x1d\xbe\x16\xf9\xdd\x12\x55\x2a\x12\xd6\xc5\x9f\x13\x15\x7d\xdc\xa6\x59\x62\x0b\x3f\x32\x13\x0e\x9e\x8c\x8a\x84\x67\xec\xcd\xf9\xdb\x0f\xec\xf8\xdd\xa7\x09\xbb\x3e\x3a\xfd\xc3\xcb\xc9\xe9\xd7\xbf\x9f\x9c\x4e\x4e\x4f\x5e\x7e\x79\x7d\x34\xba\x3e\x7a\xf9\xe2\xc5\xe9\xeb\x78\xfa\x87\xd7\xaf\x4f\xbe\xfe\xf2\xfa\xe8\x39\x51\x7b\x6d\x7d\xb6\x56\xb2\x5c\xa9\xb8\x14\x94\x20\x6f\xe5\x07\x1c\xe7\x85\x4a\x64\xb4\x31\xb4\xf5\x99\xb9\x72\xf1\x25\xdd\x3f\x54\x12\xc5\xa7\x48\xac\x72\x26\xd2\x3c\xdb\x78\x23\x34\x83\xa2\xf3\x42\x46\x55\x0a\xdc\x71\x9a\xa7\x91\x6e\xac\x6a\x19\x7a\x90\xda\xb1\x07\x64\xdc\x85\x18\x06\x8b\xe1\x07\x2e\xd5\x42\x96\xce\x2f\x18\x2e\xe7\x4f\x3c\x91\xb1\x25\x13\x48\x6f\xeb\x0b\x88\x9e\xd2\xca\x1a\xee\x2e\x4d\xe1\x2a\x75\x8c\xfd\x1d\x2e\x25\x8e\x3e\x91\x18\x74\xda\x7b\x21\x8d\xf6\x75\xf7\xa9\x31\x1a\x04\xe9\xfe\x96\x50\x61\x18\x9f\x51\xf2\x67\x68\x22\x34\x5d\xaa\x22\xd7\x32\x46\x32\x04\xeb\x9e\xf1\x74\x2e\x1e\x44\x03\xef\x79\x4f\xe1\xc0\x1c\xe8\x9a\x0e\xa9\x64\x1d\xa9\x64\x43\x48\xeb\x53\x0e\x69\x1d\x82\x3e\x3f\x97\xa0\xcf\xdf\x64\xfe\x56\x23\x31\x1e\x52\xb7\xda\x97\x66\xc8\xda\xda\x35\x02\xb8\x96\xcd\xbc\x6f\xf2\xd6\x0e\xf1\xbf\x5b\x8d\xad\x43\xca\xd6\x03\xa7\x6c\x71\x97\x41\x54\xcd\xda\x9a\x6c\x49\xdb\xc2\xa0\x1a\xe0\x9b\xcb\xc2\x48\x45\xc9\xc6\x68\x45\x49\xa1\x51\x06\x43\x2f\x17\x18\x73\xaf\x8f\x2e\xb1\xbf\xeb\xa3\xed\xd9\x5e\x07\x22\x02\xd8\x59\x1f\xe3\x3d\x35\x2d\x0d\xf6\x66\x3a\xf6\x21\x18\xbb\xfe\x6c\x45\xcf\x5d\xa6\x6b\xf7\x32\x9c\xef\x61\x7c\x33\xbe\xbd\xae\xfb\xae\xd8\xe8\x9c\x20\x54\x1e\xa3\x79\xc2\x73\x32\xf2\x9d\x16\xd3\x30\xfa\xc2\xf0\x13\x8a\x92\xa6\x90\x04\xe8\x61\x52\x09\x9c\xd2\x63\x0a\x51\x19\xd7\x62\xa7\xaa\x61\x3f\x32\x8d\xc1\xe3\x6a\x03\xa6\xc2\x00\x9e\x12\xd7\x3e\x52\xa9\xd1\xb5\x0c\x03\xb3\x51\x6a\xe8\x13\x70\x21\x20\xcd\x51\x48\x0b\x4e\x61\xa0\xde\x10\xb4\xc0\x50\x9a\xcc\x48\xb5\xa9\xb8\x2d\x03\x99\xad\x78\xd9\x1e\xf0\xe4\x34\x42\xae\xb5\x9c\xa7\x16\x64\xdb\x86\xe4\xe0\x72\x0c\x9a\xc0\xa0\x09\x0c\x9a\xc0\xa0\x09\x3c\x9c\x26\x00\x54\xef\x60\xea\x00\xb9\x80\x06\xa1\xb7\x2a\xf4\x22\xaf\xbd\x3f\xc9\x17\xfa\xef\x97\x60\xed\x9a\x6e\xc9\xb2\x86\x36\x62\xe0\x47\x4f\x9b\x1f\xdd\x35\xd9\xba\xb6\xcb\xad\xbd\xde\x8d\xbc\x0c\x39\xd7\x03\xd3\xbd\x23\x0c\xfb\xaf\x20\x0f\x7a\x0f\x86\x70\xb8\xaa\xcf\x1d\xbc\xbd\x1f\x53\x00\x2e\xbf\xca\xd4\x5a\xc6\x10\xbd\x5a\xc2\xa5\x97\xc5\x60\x9c\xe2\xb7\x53\xcc\x6d\xd4\xb7\x6e\x91\x57\xae\x88\xa2\x81\x88\x80\x6f\xab\x5a\x44\x5c\x80\xaa\x96\xc1\x6d\x45\x75\x0a\x35\x6e\x70\x1c\xa1\x4d\xa7\x8c\xda\xbf\x3e\x9a\x25\x7c\xad\x32\x7d\x7d\x44\x1a\x64\xe6\x75\xec\xf4\x57\x88\xda\x2f\xbf\x87\x99\x24\xe4\x1e\x1c\xb1\x8d\x2a\x80\x4c\x54\x12\x66\x2e\x78\xc6\x97\x02\x42\xdd\x6c\x88\x2e\xf4\xe3\x72\x8b\xc2\xa2\x5c\x34\xcc\x52\x65\x2d\x75\x46\x5e\xa6\x95\x8e\x5d\x46\x29\xc4\xb0\xa4\x0a\x13\x5a\xf2\x05\x4f\xd9\xcb\xaf\x5e\xf8\xf1\x75\x32\xa5\x02\x70\x54\xda\xe8\xfa\x88\x47\x4b\xe1\x65\x26\x8d\xcb\x8f\x5f\x1f\x55\x33\xc4\xe4\x72\x59\xe4\xbb\x94\xc2\x09\x62\xdf\xec\xcc\x1f\xd8\xf4\xe5\x2d\x39\xc5\xbd\xa4\x1f\xc1\xec\x45\x95\xb9\x4b\xb2\x4f\xf1\x88\x10\x23\x12\xc7\x92\x22\x0e\x83\x14\x12\xb7\x6b\xb5\x3d\xf2\x13\xe8\x64\xed\x30\xba\x98\x2b\xa2\x48\x4c\x7c\xca\x33\x88\x38\xa0\xb1\xdd\x9b\x29\x67\x80\xd6\x19\xa4\xbd\x07\x82\xd6\x69\x76\xee\x0f\x12\xde\x20\xe1\x0d\xa8\x3a\x8f\x26\x4d\xde\xb3\x20\x39\x40\xea\x0c\x90\x3a\x03\xa4\xce\x00\xa9\x33\x40\xea\x0c\x90\x3a\x03\xa4\xce\x2e\x39\x1b\xf7\xa4\xef\x55\xe2\x13\xba\x53\xdc\x83\xf6\x61\xac\x82\x17\x11\xd2\x18\xb6\xd0\xcd\xf1\xd2\xee\x24\x5e\x3f\x7d\xb7\x01\x77\x16\xee\xa7\x0d\xb4\x81\x0b\x09\xb0\x3e\xf6\x70\x83\xf5\xa4\x0c\x4f\xe1\xba\x29\x3c\x65\x0f\x6b\xc5\x1e\x80\xbc\x95\xfd\x08\x17\x16\x10\x7e\xb7\x9a\x29\xb6\xc3\xef\xb2\x33\x64\x50\xc8\xfc\x33\xfa\x03\xcb\x00\x4a\x5d\x26\x35\xa1\x7c\xd3\xb8\xb7\x7b\x58\x4a\x61\xfb\xba\x44\xdb\xdd\x8e\xe7\x23\xe2\x3c\x51\x40\x45\xfd\x6a\xec\xb3\xbd\x3b\x24\xf1\xbe\x0d\xbe\x6b\xcf\xba\x15\x32\x1b\xec\x94\x7d\x30\x9f\xce\x67\xec\x43\x61\x13\x11\x0c\x4f\xf1\xb8\x7e\xe5\x83\x0d\xc8\x4f\xe7\xb3\x6a\x23\x92\xa0\x00\x50\x08\x68\xb0\x19\x0a\x14\xac\x9f\xd5\xc6\xe3\x65\x0f\x9a\x01\xd9\x53\x0b\xc3\x71\x69\x58\xab\x0a\x7c\x8e\x6f\x32\x1b\xc0\xa0\x06\x30\xa8\x01\x0c\xea\x37\x06\x06\xd5\x6e\x3f\xe8\x69\x22\xdc\x37\x01\xd1\x5b\xf0\x01\x35\xea\xe9\xa2\x46\x35\x9e\x8f\x1d\x00\xa3\x0e\x96\x9f\x7a\x27\xf9\x66\x40\x96\x7a\x50\x64\xa9\xd6\x43\x33\x80\x4a\xfd\x66\x41\xa5\x0e\xc0\x27\xee\x1b\x82\xca\x6c\xa3\x07\x41\x05\x87\xae\x17\x0e\x95\x79\x71\xc0\xa1\x3a\x08\xb1\x08\x52\xf1\xb7\xd0\x8b\xa0\x9d\x47\x32\x6e\x8d\x04\x6e\xad\x98\x9e\x24\xe5\x00\x8c\x40\x15\x37\x62\xa7\x9a\xb1\x0b\xe5\x39\xe2\x06\x27\xfa\x13\x74\xa2\x0f\xbe\xe6\xcf\xc5\xd7\x3c\x84\xf0\x4f\x6a\x30\x23\x7d\x0a\x81\x45\x01\xb0\x93\x0d\xe6\x9f\x8a\x05\x5f\x4b\x95\x95\xca\x72\xd0\xf9\x2e\x42\xdc\xc3\x3b\xc1\x43\x1a\x7f\x0f\x6e\xf0\xe0\x03\xef\xfa\xb8\xc4\x5b\xde\x68\x43\xa2\x21\xfe\x61\xf9\x4b\x15\x68\x46\x15\xf0\xf3\x9e\x40\x33\xb6\x57\x4f\x58\x9c\xaa\x7c\x61\xbd\xa6\x00\xb8\x44\x36\x2d\xb3\x95\xe6\xc3\x53\x91\xf3\x71\x62\x4e\xba\x11\x29\x4e\x27\xbf\xef\x81\x8d\x64\x7a\xeb\x20\xad\xdf\x91\xd4\x1b\x0b\x9d\x5b\xf1\x01\x47\x61\x8e\x9d\x2a\xf2\xb9\x02\xea\x8a\x03\x9e\xb0\x77\x3c\x5a\x30\x23\x35\x86\x52\xaf\x04\x63\xd9\x14\x9c\xd5\x85\x86\x48\x3e\xc4\xa6\xe7\x09\x7b\xff\x81\xa4\x22\x3f\xa4\x51\x2c\x57\xf9\x86\xa9\x8c\x2d\xa5\x36\xed\x47\x9e\x37\xca\xfa\xa7\x00\x1d\x0c\xc6\x72\x6c\x17\x8c\x9c\xcd\x79\x26\x23\xaa\xdb\x6c\x1a\x3c\x6f\xf8\x00\xd1\x7b\x58\x4c\xa7\x20\x71\x1f\xb0\xdf\xcc\xc2\x79\xc7\xec\xb7\x29\x32\xb5\x94\x11\x93\x8d\x55\xd2\xdd\xa6\xd9\xe1\xf9\x9d\x81\x24\x49\x02\x7e\x12\x98\xc5\xd9\xe1\x74\xf3\xe0\x6c\x81\x67\xa3\xa7\x64\xde\x6c\x93\x51\xbb\x9f\x8d\xe6\x63\xe1\x6e\x02\xc2\x99\x59\x89\xd4\xa1\x21\x31\x0a\x82\xf3\x4f\x0c\x06\xf7\xb6\x1e\x19\x66\x8e\x34\xd9\x81\xf6\x3e\x3c\xc1\xc0\xb7\x9c\x21\xaf\xdd\xdd\x8e\xd2\x5d\x4f\x51\x79\xb1\x84\x91\xf9\x1e\xe8\x20\x09\x91\x3d\x1c\x38\xf8\x96\x81\xf4\x0b\x6d\x6a\x7b\x65\x4f\x42\x7e\x37\xc4\xb0\x6e\x42\x6e\xc4\xca\x1e\xd6\x0a\xd3\xac\xe7\x75\x74\x79\xcd\x60\x6d\x2f\x63\xd4\x01\x08\xc9\x28\xac\x51\x64\x1d\x76\x4f\xf1\x52\xda\xe1\x6f\xb9\x8f\xd8\xe4\xe9\x5c\x45\x50\x0d\x9e\xf2\x65\x1c\xed\xc7\xf4\xf1\x94\x56\xcf\xd1\x92\xc7\x82\x0e\x91\x84\xb2\x38\x69\xf7\x59\x1a\xc4\x82\x5f\xb7\x58\x70\x0f\xd4\xbc\x23\x01\xa2\xd6\x36\x44\x47\x0d\x8d\x3f\x38\x8a\x21\x1d\xe2\x69\x5b\x72\x76\x4a\x87\x28\xb7\xda\x2e\x74\x75\x8f\xef\xeb\x86\x0c\x99\x11\x83\xb5\xea\x8e\xb9\xaf\x43\x56\xc4\x9d\x0c\x42\xf7\x95\x1b\x51\x97\xa4\x7a\xf2\x1f\xd3\x36\xd4\x1f\x04\x46\x9e\x50\x3d\x3e\xab\x3b\xa8\x13\x10\xe7\xd9\x7b\xc3\xff\x23\x91\x61\x19\x05\x90\x70\xca\xa0\x1b\x90\x35\xc8\xab\x88\x4a\x46\x37\xdb\x92\xab\x2a\x70\x72\xaf\xe3\xdd\x02\xbf\xbc\xed\x44\x97\x00\xcc\xc8\xf4\x56\xc4\x61\xd3\x50\x6b\xa2\x66\x0d\x12\x14\x20\x2e\x19\xe9\x28\x15\x12\xf0\xcb\xc8\x6e\x89\x60\x66\x34\x79\x8c\x01\x6a\x89\x37\x73\x61\xa3\x56\x97\x3a\xe4\xad\xe6\x53\x91\xb8\x7e\xb7\x5e\x6d\x68\xa4\xd9\x0f\x76\x34\x9a\x44\x54\x0a\x57\x1b\xeb\x48\xad\x04\xc5\x88\xeb\x20\x25\x17\x23\xbb\x35\xd3\x8e\x3a\x40\x1c\xb9\x05\x73\x67\x5a\x2c\x79\x9a\xcb\x48\xff\xd1\x08\x89\x56\xe4\x9c\x16\x39\xca\xb7\x10\x2c\xa6\xe9\xf3\x46\x9a\x75\x0b\xa2\x21\xe2\xff\x1c\xdc\x56\x76\x12\xa8\xac\x6a\xe5\x42\x04\x51\x9a\xac\x9f\x5f\x08\x11\xbe\x5d\xa8\x44\xb8\xce\x4d\xc3\x0b\xa7\xd9\x9a\xc9\x05\x1d\x53\x4f\xe5\x02\x38\xf1\x7e\xba\x29\x1f\x97\x1a\xef\x7b\xb3\xc5\x50\x8e\xa1\x32\x01\xf8\xc6\xae\xdd\xb5\xe9\x2f\xf1\xa3\x1e\x8b\x12\x11\xae\xb2\xa9\xa4\x26\xd1\xac\xcd\x8c\xef\xf5\x4c\x18\x75\xcb\x9e\x86\xda\xda\x3d\xf5\x33\xd1\xeb\x1b\x48\x79\x9e\x69\xa6\x6e\xd3\xb2\xe7\xc3\x07\xa7\xd4\xd5\xa3\xbe\x5c\xc1\x28\x6f\x01\x57\x30\x0f\x6a\x5c\x41\xa5\xfd\x4c\xf1\x77\x3b\xce\x45\x2e\x93\x89\x4c\x73\x9d\x67\x93\xf3\x34\x7f\x9f\x5d\xa2\xb8\xb4\xfd\x2c\xdb\xf4\x2a\x5c\x71\x1b\x98\xaa\x72\x15\xa9\x84\x8e\xaf\x21\xd5\x44\xc9\xa7\x82\x71\x96\x16\x4b\x91\x81\x86\xae\x10\x26\x3b\x76\x7d\x98\x15\x88\x1b\x58\x82\x91\x2b\x09\xa4\x22\x26\x8d\xbd\xaa\xac\x23\x8d\x03\x05\x07\xa3\xe7\x75\xdb\xfd\xa7\xd1\x75\x85\x0b\x9a\xa9\x51\x53\x76\x7c\xf5\xe6\x62\xc4\x7e\x7c\x7b\x01\x11\x97\x97\x6f\xae\x2e\x9e\xdb\x72\x4c\x35\xfb\x1c\x0c\xbf\x12\xb7\xed\xcd\x26\xf6\x22\x72\xae\xde\x5c\x3c\x62\x64\x44\x47\xc4\x7e\xad\x6d\x09\x13\xe2\x25\x95\x95\xae\xc5\x8a\x41\xb3\xfb\xc8\x8a\x2a\x46\x7c\xd3\x28\xac\x25\x49\x50\xaa\x1b\x62\xc3\x2b\x38\x49\xab\x55\x22\x4b\x03\xab\x23\x23\x40\xd8\xd8\xfb\xaa\x0b\xc1\x33\xc9\xa2\x61\xc5\x88\x4f\x10\x62\x1f\x0c\x5c\x3a\x8a\xe4\xb2\x57\x55\xcc\x8e\xc1\x9c\x43\x61\xe6\x56\xa2\x71\x84\xc9\x1a\x6f\x4a\x63\xcd\xf3\x11\x7b\xff\xa1\x97\x01\xc7\x9b\x18\xe3\x51\xa6\x34\x1e\x69\x92\x79\x1a\xad\x14\x86\xde\x42\x06\x64\x49\xf1\x96\x5e\x99\xa7\xe6\x2b\x84\x86\xaf\xd2\xea\x14\xf6\x0c\xe9\x96\xf4\xe5\xea\xc2\x1d\x5b\x68\x57\xb3\x32\x2a\x11\x58\x9e\x47\xa4\x1a\xa3\x93\x79\x5e\x5a\xef\x7c\x16\x63\xf4\x17\xad\x28\xa9\x77\x63\xcf\xfd\xf3\x2a\xf4\x48\xbb\xdb\x91\xdd\x93\x7a\xfe\xee\x30\x75\x6a\x65\xad\xc6\xc1\xb6\xf3\x6b\xc3\x6b\xfb\x1f\xe0\xab\xfa\xb9\x05\x70\x13\x73\x1c\x1f\xe9\x00\x97\x38\xc0\xd4\xed\x33\xcd\x12\x65\x28\x79\xaa\x62\xd1\xfb\xc8\xfb\x6b\xf1\x88\x67\xde\x41\xb7\x20\xb7\xe5\xe9\xe6\x9e\x8e\xfc\xbd\x9f\xe8\x43\x95\x5e\x7e\x6c\xd1\xf8\xd2\x93\xee\x60\x71\xbd\xaa\x87\xb5\xed\x23\x53\x16\x5e\x22\x4d\x29\x3f\x66\x6e\xf5\xeb\x66\xae\x50\x79\xd7\xcc\x46\x87\xbe\x06\x00\x7e\x2a\x93\x45\xbe\xb7\x71\xfd\x36\x06\x70\x65\xef\x95\x11\x65\xf0\xad\x32\x52\x9f\xdc\x7f\x78\x69\xcf\xe9\xa4\x45\xdc\xa6\xde\x86\x23\x99\xa9\x8c\x41\xd9\x92\xc0\x11\x86\xa0\x44\x6b\x91\x6c\xaa\xd4\xf1\x87\xf7\x57\x65\xac\x28\x78\xfb\xfa\x6a\x01\x90\x5f\x83\x17\xa0\xe9\xd2\x58\x0d\xc0\xb9\x53\xd2\x26\xf9\x38\x38\x1b\x66\xd5\xaf\x36\xab\xce\xbc\x16\x4b\xf2\xe0\x7a\x83\x51\xae\xbc\x32\xe1\x16\x22\xe6\x03\x5a\x0f\xb1\x0a\x0f\xce\xd5\x16\xe1\xa1\x73\x7d\x7d\x34\x62\xd7\x47\xef\xdc\xbf\x21\x79\xdc\xc6\x20\xdb\xc7\x2d\x52\xa3\x27\x84\xc9\x1c\xb3\x2e\xca\x24\x18\x2f\x47\x1e\x52\x0d\x31\x97\x6a\x56\x66\x82\x64\xec\x9d\xb7\x7b\x7f\x2c\x0f\x02\x4c\xc8\x96\xb9\xe4\xa9\x6d\xa6\x09\x60\x09\x4c\x33\x5a\x17\x4b\x3a\x71\xb3\x99\x39\x32\xef\x28\x6a\x1a\xb2\xad\x60\xfd\xa9\xb7\xe3\xdb\x85\x40\x4b\x47\x06\x83\x86\x0c\x11\xaf\x77\x3b\x1e\xea\xfe\x79\x4b\xff\x7e\x96\xd0\x46\x15\xec\x96\x53\xe1\xd0\x4c\xe6\x02\x0a\x1e\x22\x12\x18\x38\x97\x70\x3f\x09\xcf\x0c\xb3\x6f\x1d\x20\x82\x4d\x5d\xf1\xf6\x9c\xfd\xec\x6d\x01\xfb\x65\xc2\xbe\x93\x1f\xc5\x2d\x24\x98\xcb\xc6\xaf\x59\x26\x83\x59\x90\xb4\x0b\xb4\x70\xa9\xb2\x62\x4f\xc9\xdc\xbc\x91\xd8\xcf\xf3\x60\x00\x68\xe4\x46\xef\x3a\xc6\xce\xfb\x23\x3a\xd6\xd2\x6c\x9e\x2e\xcc\xdd\xb2\xdf\xbe\x75\x25\xa0\xec\x1b\x0d\x5b\x95\xc6\xd4\xae\x64\x87\xf6\x84\xe4\x8a\xfd\xbb\x19\xd0\xcf\xfe\x59\x64\xbf\x1c\x48\x86\x79\xa0\xb2\x4e\x3e\x51\xef\x32\xdb\xf6\xd3\x22\x1a\x12\xa0\xdb\xd5\x88\x7a\x63\x2b\x3f\xd8\xdc\x6f\xd0\xde\xa6\x02\x41\x33\x6c\x7e\xf4\xe1\x53\xd0\xfd\xf0\x7d\x5f\x67\xbd\x2c\xf3\xd1\xfb\x43\xf5\xff\x00\x2a\xe6\xf5\xd1\x1e\xa9\x81\xa8\x9d\x76\x0d\xdc\x25\x80\xc3\xd0\x9d\xc6\xec\x67\x87\x23\x96\xc4\xef\x5f\x3c\xbf\xdb\x4c\xf8\x52\xd4\xe6\x81\x39\x92\x66\x20\x32\xcd\x5f\xbd\x6c\x9e\xa4\x4c\x73\x31\xf7\x83\x09\x0e\xa3\xa4\x62\x15\xf9\xdf\x7a\x2d\xe9\xa0\x96\xfe\x50\x50\x7a\x28\x28\xdd\xba\xc2\x43\x41\xe9\xa1\xa0\xf4\x50\x50\xfa\x91\x0a\x4a\x07\x09\x96\xcd\xcb\xf1\x94\x8b\x4e\xd7\x78\xed\x50\x79\x7a\xa8\x3c\xbd\xb7\xb4\xb2\x67\xf9\xe9\xdd\x35\x9a\xc3\x15\x94\x0e\xc4\xac\xa1\x5c\xed\x50\xae\xf6\x57\x19\x17\x39\xc4\x0c\x7e\x2e\x31\x83\x43\x86\x6b\x40\x91\x87\x9a\xb5\x1d\xeb\x33\x14\xae\x7d\xb4\xc2\xb5\xb0\x11\xfb\x46\x92\x36\x9a\x77\x86\x12\xb6\x0f\x5c\xc2\x96\xd6\xa8\x5a\xbf\x76\x4b\xf9\xda\xad\x75\x68\xfb\xa0\xca\x78\x8e\x90\xd0\x24\xdd\x00\x0d\xba\x3b\x47\xf2\x26\xf0\xf0\xc1\x60\xe1\xdc\x56\xdb\x61\x4f\xef\xc7\x6a\x3c\x54\xb9\x1d\xaa\xdc\x0e\x0a\xc4\xa0\x40\x0c\x0a\xc4\xa0\x40\x0c\xa5\x6e\x9f\x4e\xa9\xdb\xc3\xc9\xca\x43\xd1\xdb\xdf\x20\x7b\x7a\xc2\x45\x6f\x1b\xe4\xce\x9d\xcd\xde\x03\x23\xfe\x0c\x19\xf1\x50\xf9\xb6\x89\x14\x3f\x1c\x8f\x18\x6a\xe0\x0e\x35\x70\x87\x1a\xb8\x9f\x69\x0d\xdc\xe0\xba\x0f\x85\x70\x07\x09\xb0\x4b\x02\xbc\x77\xd1\x6f\x90\xfa\x06\xa9\x6f\xa8\x86\xfb\x64\xab\xe1\x1e\x4e\xb8\x1c\xea\xe2\x0e\x75\x71\x87\xba\xb8\x43\x5d\xdc\xa1\x2e\xee\x50\x17\x77\xa8\x8b\xbb\x73\x58\xf9\x7d\x2a\x82\x8f\x59\x82\xf4\x71\x92\xbe\xce\xaa\x15\xfd\x58\xc4\x57\x10\x00\xac\x66\x24\x29\x04\x34\x77\x4b\xd9\xd1\x33\x1f\xa1\x41\xcd\xd8\x33\xea\x11\x03\xd6\x41\x76\x79\xd6\x54\x70\x34\x34\xa2\xd4\xeb\x1a\xe5\x5b\xea\x4a\xa9\xcc\x8e\xdf\x8c\x12\x70\x7b\x21\xd7\xc2\xe5\xff\xce\x13\x35\xe5\x2e\x63\x7b\xa8\x2e\x3a\x54\x17\x1d\xaa\x8b\xfe\xa6\xab\x8b\xd6\x55\xb1\xbb\xd8\x5d\x86\xa2\xa1\xbf\x92\xa2\xa1\xc1\xb6\xef\x50\x39\xf4\x5e\xa5\x8d\xa1\x20\xe8\xe3\x15\x04\xad\x1d\x88\xa1\x2a\xe8\x6f\xb6\x2a\x68\x23\x69\x1f\xea\x7c\x7e\x96\x75\x3e\x55\x2c\xdc\xed\x7f\xbf\x16\x99\x19\xca\x96\xbb\x6f\x9b\x30\x9d\x67\x05\x18\xc5\x6b\x46\x59\x2b\x16\x2a\xdb\xb4\x7a\xfb\xb3\x22\x45\xaf\x29\x80\xcc\xf5\x41\x62\x8d\xbf\x91\x9f\x44\x4d\x15\x2c\xbd\xae\x17\xcd\x6f\xb2\xbd\x7c\x0f\x13\xa7\x44\xfc\x7f\x05\x4f\x73\x99\x6f\x29\x3f\x50\x75\x1e\xd3\x48\xab\x6b\x32\xa3\x87\x7b\xae\x4c\xeb\x86\x1e\x6e\xeb\x3f\x14\x69\x2e\x97\xa2\x2b\xce\xdf\x6f\xe6\x14\x33\x5e\xc6\x72\x10\x1b\x33\xba\x1d\xb6\xb4\x82\x4c\x49\x35\x49\xf9\x43\xc2\x1b\xf4\x27\x4b\x71\xda\xa1\x6f\x78\x5a\x5f\xd8\xaf\xd7\x38\x2b\x52\x10\xa2\x5d\x23\x8d\x57\x1b\x20\x0c\xfd\x2f\x08\x64\x11\xc7\x91\x15\x38\x9f\xb3\x25\x4f\x11\xce\x27\x48\x1c\x06\x93\x85\xca\x4a\x78\xc7\x4c\xad\x25\xb8\x9a\x33\xf4\xfb\x7a\xd9\x0b\x34\xad\x0b\x15\x97\x89\x0b\x7f\x2d\xa6\x22\x11\x40\x05\x30\x29\x1e\xcb\xf2\xc0\xbd\x16\x5a\x25\xce\xda\xe4\x8f\x0e\x28\xa6\xeb\xd8\x1a\x6c\xed\x91\xc8\x2d\x26\x63\xa9\x1b\xc5\x22\xe7\x32\xd1\x23\xa6\x85\x68\xf2\x6d\x89\x74\x61\x58\x8c\xd1\x8b\xf4\xc9\x47\xb1\xd2\xe0\xd0\x32\xdb\x7e\x42\xab\x88\xa9\x13\x93\x65\x0f\xb8\xfb\xc1\x57\xff\x78\xbe\x7a\x8c\x47\xea\x8a\x78\xfa\x0b\xb6\x0a\xa0\xe1\x04\xfa\xc2\x92\x0d\x18\xad\xe8\xea\x50\x21\x25\x2f\x4c\xc5\xa1\x09\xbe\xf9\x70\x5e\x5a\x54\xf0\x37\x50\x91\x0a\x0d\x75\xca\x28\x30\x0a\x60\x0e\xed\xfe\xb9\x00\x29\xf3\x9c\xea\x4f\x91\x3c\x65\x2e\x9b\x45\x35\x76\xe1\x57\x2a\x16\xec\xba\x78\xf1\xe2\xe5\xd7\xf0\xb5\x8a\x2e\xc8\xce\xd1\xe8\x6b\xa1\xf8\x08\x04\x80\xbe\x9c\x91\x8c\xb7\xe6\x32\xe1\x54\xe8\x0a\x01\x63\x10\x2e\xd5\xcc\xcc\xb5\xb4\x02\x87\xb9\x56\x28\x06\x64\x82\x89\xbf\x15\x72\xcd\x13\x00\x83\xf1\xdf\xad\xc4\x63\x71\xdb\x0d\x8b\x38\x44\x71\x5d\x1f\x65\x45\x1a\x5d\x1f\xb1\xa5\x9c\x2f\x4a\xad\xd2\x2d\x9c\xf9\x95\xbd\x7f\x73\xee\x16\xf9\x18\x2b\x13\x18\xb6\xbf\x16\xec\x3b\x99\x16\x9f\x3c\x02\xf5\xbc\x86\x84\x61\x88\x98\x8d\x02\xaa\x11\x31\xb3\xb8\x76\x7b\x41\x2e\x35\xab\xa6\xb2\xa5\x5d\xd4\xb7\x3f\x5c\xb2\xef\xd0\x41\xf1\xe1\x9b\x37\xec\xf4\xf4\xe5\xab\xe7\x36\x76\x08\xae\x3f\x2e\xcd\x1d\x63\xb2\x86\xa0\x8a\xcf\x25\xa8\xa2\x67\x4e\xcb\xa3\xe6\xad\xa8\xba\x30\xda\x6b\xda\x2d\x22\xed\xb6\x79\x3a\xa1\xf6\x6e\xa2\x6c\x90\x2d\xec\x73\xf6\xc9\x41\x78\xf6\xcb\x17\xa7\x7f\x78\xf1\xf2\xe5\xd7\xe3\x95\x8a\xc7\x76\x44\x93\x65\x5c\x71\x18\xf0\x64\xb5\xb0\xd8\x99\x1c\xa8\xa0\x97\xea\xbb\x3e\x9d\x9c\x7e\xe5\x88\x01\x98\xd8\x16\x2a\x55\x19\x15\x71\xa4\xfb\x06\x54\x4d\xa4\x58\x9d\x12\x65\x1b\xb7\x44\x33\xc1\xc1\xff\xdc\xa2\x24\x46\x0b\x11\x17\x46\x83\xbd\xdb\xb6\x5d\x96\xfd\x6c\x8d\xfb\x71\xcd\xd8\x42\x25\x31\xa1\x60\x96\x0f\x23\x95\xea\x3c\xe3\x90\xca\x5d\x81\x9b\x06\x1e\x66\xb7\x8f\x34\x3e\xa9\x43\x81\x14\xf8\x17\xf6\x86\x44\xda\x8c\x91\x96\xc7\xc2\x57\x49\xcc\x87\xf6\x3e\x2a\x35\x4b\x65\x32\x6a\xe8\xcf\x67\x6c\x80\x57\x5e\x0a\xc7\x46\xec\x4c\x10\xf5\x7b\x7b\x70\x67\x73\x2c\x91\x95\x10\x1e\x32\x9a\xc8\xec\xd7\xb6\x38\xa2\x40\xa5\x38\x60\x20\x51\x9b\xda\xd2\x11\xb5\x5a\x6d\x1a\x02\x6c\x05\xfb\x34\xd4\x2e\xfc\x35\x48\xc5\x4f\xaa\x76\x61\xab\x2e\x7d\x17\x93\xdb\x20\x70\x7d\x2e\x02\xd7\x50\xb9\xf0\xe1\x79\xce\xa1\x03\x58\x5b\xe4\x93\x2d\x40\xdd\xa5\x4c\x10\xea\xe4\x2d\x12\xca\x0c\xbc\xc3\x46\xc2\x20\xb9\x00\x25\xcb\x40\x92\xec\x01\xe2\xad\xe2\xd6\x2a\x7d\xfd\x2c\xa6\x7d\x9d\x06\x95\xe9\xfa\x1f\x86\x23\xac\x2d\x42\x2c\xa2\x27\x52\x30\x84\xad\xa3\xa6\xd2\x26\x71\xaa\x26\x34\x4d\xb0\x2a\x19\x6a\xd3\x75\x91\xca\xc5\x82\x4e\x2b\xa2\x1a\x47\x4b\x83\x57\x1f\x1e\x5e\xd6\x41\x2d\xf8\xa0\xab\x60\xfc\x52\xb3\xa5\xc8\xe6\x65\x3c\x20\xd6\x66\x81\xe0\x25\xd0\xeb\xbd\xc6\x13\x76\x96\x6e\x02\xff\x41\x92\x30\x8c\x1d\x25\xab\x1d\x89\x7b\xc8\x67\xd1\x66\xc8\x63\xa8\x97\xdd\x1a\xad\x50\x33\xf3\xfa\x5e\x76\x95\x50\x51\xf7\x2e\xfe\xe7\xb5\x44\xcb\xc9\x6a\x25\xd2\x58\xc4\xec\x18\xe0\xcb\xc1\xa9\x1d\x17\xab\x04\x7c\x61\xfa\xb9\x19\x67\x1f\xc1\x38\x2e\x32\x4c\x7b\xa2\x39\x8c\x98\x80\x82\x09\x50\x71\x83\x15\xa9\x54\xce\x66\x49\xc5\x3c\x68\xab\x71\x38\x65\x56\x9c\x59\x1b\x23\x85\x54\x6d\xa1\x07\x62\xcb\x2e\x15\xcc\x2d\x43\x5f\x7e\x1c\xfc\x14\x10\x2e\x73\xb2\xc7\xae\x71\xae\x96\x32\x3a\x80\x31\x1e\xeb\x2b\x38\xfa\x72\x86\x51\xc6\x6f\x2e\xcf\xdf\x66\x72\xbd\xb5\x2a\x6a\xb5\xa9\xaf\xc4\xba\xa8\x09\x99\x26\x32\x15\xec\xcd\xe5\x39\xa3\x56\x88\x91\x1c\x54\x42\x22\x6b\xd4\xe1\x0b\x05\x64\x62\x2e\x75\x0e\xb8\x3a\xbe\x2b\xd0\x8c\x26\xc6\xe9\xed\xe9\xe4\x6a\x66\x4b\x30\xba\x2e\xae\xb4\xdb\x46\x7c\x93\x88\x4f\x3f\xa9\xa4\x58\x6e\xcb\x54\xa8\xb5\x6d\xdc\x0a\xf3\xf3\x1a\x7f\xbe\xd3\x1e\xc4\xd5\x83\xd1\x34\x24\x6c\xd4\xe4\x87\xf5\x86\x81\x8d\x0e\x8c\xaa\x4c\xc3\x3b\xec\x36\xfc\x45\xe9\xbc\xa3\x78\x41\xa5\x65\xa0\x6d\x81\x67\x96\x26\x1d\xa9\x14\x79\x21\x31\x20\x6b\x8f\x45\xb3\x07\xf9\x81\xa8\xea\x09\x20\x94\x53\xf5\xa4\xc2\x48\xaf\xe7\x2e\x33\x53\xbb\xb4\x13\x0b\x4f\x8e\x9b\x48\xee\xa4\x9e\xa0\xc4\x08\xa4\xdd\xb1\x97\x65\x43\x57\x2f\xcc\xff\xac\xb5\x44\xfb\x93\x0c\x6a\x28\x7a\xe8\xe3\x96\xdb\xde\xfc\xee\x06\xca\xa2\x49\x14\x52\x12\x0e\x41\xba\x86\x51\xe4\x99\x5c\x2e\x45\x8c\x21\x8e\x6b\x9e\xc8\x98\xe7\x41\x49\x07\xfa\x2c\x71\x47\xf8\x28\x20\xb0\x5f\xa7\xd7\xe9\x3b\x34\xa3\xeb\xd7\xec\xe6\x64\xa6\xd4\x0d\x95\x83\x41\x77\x3d\x3e\x1a\xe1\xff\x9f\xdc\x00\xf9\xbf\xb1\x40\xe8\x37\xe1\x1b\x65\x2d\x31\x78\x1c\xdf\x30\x95\xb1\x9b\x13\x91\x47\xd0\x6a\x8f\x38\x3f\xc1\xe3\xf7\x69\xb2\xe9\x58\x6a\x98\x75\x80\xe0\x05\xc7\x03\x87\xe2\x2d\x70\x43\xad\x0b\x8b\x89\x6e\x64\x12\x39\x03\xa3\x8e\xdd\x0c\x55\xa4\xb9\xc5\x41\xc7\x61\xb4\xdc\xb9\xa9\x52\x89\xe0\xe9\xe1\xd9\xca\xbb\xb5\x8c\xf2\xd0\x58\x51\x9d\xba\x6d\xc2\xc4\x1a\x84\x19\xb2\x6c\x42\x49\x86\x1c\x85\x24\xa3\xf2\x81\xea\x98\x2b\x57\x51\xdb\x55\x5e\x02\xd4\x3f\x3e\x13\xf9\xc6\x97\x6d\xfd\x0a\x2a\xba\x98\x96\x86\x55\xa8\x9b\x3c\x61\x5e\x71\x00\xd3\x29\xc8\x4e\x58\x79\x88\x06\x42\x91\xb5\x51\x26\xac\xf8\x70\xf1\xfe\xf2\x8a\x62\xf2\x26\x93\xc9\x89\xb9\x9f\x16\xd9\x5c\x21\x9f\x21\xb8\x73\xfb\xfe\x60\xcf\x79\xda\xf6\x9c\x58\x24\x22\x17\xef\x57\x8d\x72\xed\x1d\x74\xef\xb7\x41\xbf\xdb\x34\x98\xa0\xa5\x0d\x6b\xb6\x55\x72\x07\x13\xcd\xe7\x6d\xa2\xe9\xe9\x13\x2b\x9b\x55\x82\x1f\x41\xcd\x23\x81\x0e\x6b\x6f\x01\xe1\x09\x21\x4e\xbb\xe8\xf8\x01\x6d\x25\xab\xb0\x68\xb0\x7f\x5a\x1d\x91\x3f\xa0\x79\xa4\xc2\x69\xbe\xb9\xfc\xd6\x0c\xe4\x32\x37\xea\xde\x7c\x53\xbf\xd5\xd5\x75\x6d\x7e\x21\x20\xae\x9a\x7e\x83\x4a\x21\x40\xec\x6c\x71\x43\x17\x85\x0f\xec\x21\x68\xdc\x07\xa5\x97\xa7\xf3\xce\xe8\x7f\x6c\x84\xb2\xd1\x42\x38\x91\x9d\x1e\xab\x19\x9b\x69\x06\x6b\xaf\x27\xcc\x95\x0b\x04\x72\x9e\xc8\x8f\x10\x3c\x31\x53\xe6\x5e\x3b\x3d\xc0\xb6\xc7\xa4\x36\x23\x91\xf9\x09\x7f\xd0\x6f\x19\x89\x88\x75\x31\x73\x9e\xe5\x30\x6f\x28\x6a\xf0\xc1\x16\x53\x31\xe2\xe9\xf7\x85\xce\x3f\x14\xe9\xd9\xa1\x34\xe7\xca\x76\x9e\xbf\xfd\x60\x06\x74\x27\x6b\x76\x16\xe6\x79\x37\x2e\x32\x64\xf0\x55\x77\xdb\x89\xe7\xb1\x8c\x20\xbc\xfb\xd6\x3c\xa1\x03\xe3\x02\xc1\x6c\xe2\x2f\xc5\x1c\xbf\x51\x69\x2e\x3e\xe5\xf7\x1d\x3f\x59\x59\x27\x50\x3b\x54\x96\xe3\x6a\x6d\xa9\xf8\xe2\xb7\xf3\x02\xe9\x70\xdb\x6d\x8a\x09\x66\x00\xec\xae\x9e\x04\xfa\xc9\x54\xd9\x33\xe4\x1f\x9f\x9d\xd5\x94\x25\xef\xd2\x4f\x96\xdc\x29\x26\xe6\x03\x16\xa9\xd8\xcc\x68\x84\x61\xd8\x5a\xae\xab\x71\x27\x7b\xd6\xc5\xf3\x59\x81\xec\x92\xd5\x96\x32\x2d\x0f\x95\x97\x99\x7e\x3f\x43\xeb\xa9\x1f\x9b\x61\x8f\xc2\xe5\x3d\x90\xae\x6c\xef\xea\x96\x00\x7e\x6c\x51\x22\x74\x71\xb6\x94\xe9\x89\xd9\x40\x14\x4c\x03\xea\x06\xa0\x2f\x6f\xfb\x48\xcf\x0f\x71\x46\xbe\xfe\xf2\xc9\x9e\x91\xfe\x43\x7b\xf4\x33\x72\xa1\xe2\xb7\x52\x67\x05\xcc\xff\xcf\x45\x3c\x17\xdb\x5c\xe7\x0d\xad\x09\x5a\x5e\x39\x45\x10\x29\x09\xe1\x5b\x7c\x62\xb1\x6b\x4f\x95\x7d\xa9\xec\x0e\xb7\xac\xba\x8a\x1a\x65\x08\xd8\xa0\x9f\x3d\x65\xfd\x6c\x50\x75\x3e\x43\x55\xa7\xf1\x93\x7b\x41\x46\x77\x53\x98\x5e\xa8\xd1\x98\x97\xe5\x15\x39\xb4\xf0\xd1\x53\xb1\xe0\x6b\xa9\x32\x57\xfc\xb0\xfe\x81\xb6\xa0\xb4\xfd\x8a\xc4\xf4\x98\x50\x77\x92\xdf\xf7\x90\x2a\x2c\x22\xcc\x6f\x55\x53\x08\xb1\x8b\x2b\x99\x7d\x1d\x53\x79\x22\x4a\x63\x13\xcf\xb8\x37\xfd\xb1\xe1\x63\x1d\xf1\x5d\x2d\x6f\x34\x21\x14\x36\x34\x1d\x8c\x83\x4f\x9b\xf9\x34\x06\x7b\x1d\x48\xb9\x6d\x3a\xd8\x77\x51\x74\x07\x46\xf9\xb9\x30\x4a\x17\xb6\xb5\xb3\xe8\xfe\xe0\xa1\x51\x3b\x52\xee\x03\x07\x47\xf5\x64\xfe\x3b\x51\x6f\x5b\x43\xc2\x1a\x5a\x57\x8e\x38\x36\x33\xcc\x3e\xea\xe9\x8f\xa9\xcb\x1d\x7a\xf8\x72\x4e\x67\xa1\x2f\xcb\x2a\xd9\x72\xc6\x78\xce\x96\x46\x50\xb8\xae\x8c\xf1\xfa\x08\x0d\x3b\x18\xb5\x84\x66\x9f\xeb\x23\x1b\xc3\x74\x7d\x04\xe6\xc8\xa2\x6c\xef\x95\xcd\xb5\x5f\x1a\x31\x39\x11\x13\x26\xd6\x22\x85\xb0\xa3\xa9\x46\x04\x9a\x59\xd9\x4a\xc4\x98\x65\x14\x64\x40\xa9\x14\x81\xf6\x56\x99\x79\x35\x77\x8e\xcc\x34\xe7\xd9\xc6\xf5\xae\x21\x6d\x00\x93\xa1\x0c\xcd\x7a\xe1\x3b\xfa\x96\x45\x8e\xb9\x95\x10\x6b\xa4\xb1\xc6\x2a\x66\xc2\x83\x61\xf3\xda\x28\xb8\x67\xe5\x5c\x5b\xc4\x37\xbf\xd1\x13\xdb\x34\xc4\x77\xaa\xce\xa3\x63\xcf\xc0\x94\xa7\x73\x5b\xe2\xa9\xff\xde\x81\xdd\x79\xcb\xfe\xb1\x4b\x30\x32\xdb\x3d\x04\x13\xf4\xee\x5b\x78\x7d\x74\xfa\xe2\xc5\xff\xd3\xba\x1b\xba\x25\xb4\xf0\x2e\x54\x96\x4f\x45\xe2\x42\x16\xb7\x6d\x06\xe6\xb8\xfd\xad\x10\xd9\x06\x31\x94\x60\xa5\x6f\x17\x4a\x0b\x6f\x3e\x88\x83\x98\xf2\x79\x19\x67\xe6\x99\x23\xa6\x3b\xcb\xd7\x77\x20\x7a\x5d\x88\x26\xad\xef\xf8\xa1\x43\xcd\xf8\xf9\xa5\x0a\xd1\x4c\x0f\x19\x75\x64\x84\x82\x3c\xe3\x32\xc1\xf3\x13\x41\x25\x62\x07\x93\xc2\x99\xde\xe8\x5c\x2c\xfb\x40\xef\x63\xd6\xf4\x5f\x04\x4f\xf2\x45\x57\x04\x85\x85\x30\x49\x8b\xe5\x54\x80\xce\xb6\xc0\xf7\x42\x43\x0f\x3b\x8c\x0d\x98\x74\xc4\x7e\x43\x5b\xca\x54\x2e\x8b\xa5\x53\x2c\x1f\x68\x88\xb8\x3f\x22\xbe\x30\x9d\x3f\x0c\x92\x41\x79\xc5\xae\xe4\x72\x8b\xf3\xa6\xea\x06\xf7\x87\x5a\x22\xd3\xd4\x8f\x61\xc3\xed\x63\xb7\x5c\xb3\x55\xa6\x22\xa1\x75\x79\xfd\x00\x71\x0c\x84\xd4\xb2\xa1\x1f\x06\x62\x93\x6d\xa7\x45\x0e\xc5\xf4\x8c\x10\xba\x11\x46\x10\x15\x69\xa9\x34\x53\x67\x4d\xd6\x48\x1f\x5f\xff\x0c\x5c\xb1\xd6\x61\x62\x31\x5d\x96\x7c\x55\x0a\xc4\x90\xa1\x7b\x6b\xc1\x24\xbd\xd1\x95\x23\xf7\xe9\xb0\x1f\x9b\x52\x7f\xdd\x7c\x0d\x22\x8b\x45\x0a\x71\x29\x6f\xff\xec\x63\xba\x70\xcd\x16\x1c\xf2\xfd\x61\x32\x04\x92\x06\x25\x24\x44\x22\xa0\xf7\x63\x95\x11\xf1\xe7\xd0\xb5\x2a\x72\x02\x15\xfd\x28\x36\x96\xf0\x9b\xf1\x37\x84\xf1\xf9\x01\xb4\xa8\x43\x50\xa3\x3d\xa7\xe8\x50\x52\xdc\xe8\x62\x19\xa7\xcf\x72\xa6\xa2\xa8\xc8\x10\x78\xce\xcd\x18\x78\x58\xbe\x10\x46\x27\x28\x5d\x54\x00\xa7\x29\xe2\x72\xb5\x21\x9d\x81\x17\xb9\x32\x87\x27\x02\x89\xc0\xac\xd3\xd6\x6d\xa4\x05\xd1\x6a\x89\x53\x81\x71\x41\xba\x76\x0e\xe1\x56\x73\x25\x34\xd3\x4b\xa5\x6c\x7c\xb2\x59\x9f\xb2\xf0\x85\x58\xae\xf2\x8d\xc3\xdb\x01\xd9\x8a\x16\x0c\x3b\xfb\x8e\x67\x73\xe1\xdd\x7c\x61\xd4\x15\x8b\x00\x84\x8b\x8d\xca\x14\x15\x8e\x5c\x65\x6a\x9a\x88\x25\x61\xc3\x98\xf9\xdb\xf5\xa9\x3a\x5c\xfb\xc4\x6f\x97\xdc\x48\x53\xb8\x62\x57\x30\xad\x1b\x28\x7c\xba\x7c\xdd\xab\x38\x52\x42\x26\x13\x42\xf1\xa1\x29\x98\xf8\x84\xc0\xc8\x4d\x04\xac\x16\x76\x9e\xf3\xc4\x5b\xde\x15\x12\x92\x22\xcd\xbd\x50\xfc\x1a\x4f\x3e\xf4\x80\x2d\xe1\xf8\x56\xa4\x36\xfa\x7b\xfb\xb0\x3d\x63\x1d\x9b\xbb\x97\x4a\x02\x04\xd7\x09\x34\x63\x97\x8c\x60\x6e\x3b\x72\xe2\x09\x7b\x5b\xdb\x56\x0c\x52\x80\x7a\xbb\xc4\xae\x7d\x22\x2a\x35\x46\x56\xba\x60\xc1\xfa\x80\x11\xb0\x16\x4c\x3b\x17\x6f\xff\xfc\xcc\x69\xff\xe5\xe8\x1e\xd4\x21\xd5\x70\x70\x47\xad\x02\x42\x3b\x7f\x6e\x3b\x54\x87\x73\x6e\xd9\x28\x80\x0b\xd4\x8a\xb7\x0a\x60\x61\x5b\x36\x37\x82\x25\x01\xb1\x71\x44\xfa\x34\xcb\xbf\xe4\x1f\x45\x05\xf6\x95\x43\xce\x43\x10\x75\xc0\x28\xec\x20\x74\xda\xf3\xd5\x2a\x91\xd6\xed\x65\x29\xb6\x03\x7a\x18\x2c\x8f\x4f\xda\xf2\x38\x58\xf3\x3e\x17\x6b\xde\x6f\xb2\x92\x6b\x17\x6d\xec\x74\xca\x69\x44\xf7\x2e\x89\x09\x45\x1d\x89\x14\x02\xda\x9e\x62\x78\x63\x9d\x01\xdc\xa7\xa5\x33\xfc\x54\xb7\x97\xaa\xde\x3e\x4c\x50\xaf\xb3\xa4\x01\x8f\xe0\xd7\xc0\x28\xfa\xe0\x11\xc8\x07\xc2\x23\xe8\x94\x88\x06\xff\xd6\xc0\x11\x07\x58\x02\xf6\x08\xbc\xe8\xde\x3d\x6f\x0d\xfc\x7d\x07\x7e\x74\xd9\xc9\xee\xbb\x99\x90\x51\x0d\x2f\x32\xb9\x96\x89\x98\x8b\x77\x3a\xe2\x49\x1f\xed\xbb\xed\xb5\x12\x0c\x54\x83\xdb\x05\x34\xa8\x88\x07\x56\x39\xcc\xcc\x5b\xd9\x97\x99\x70\x6f\xd7\x31\xf8\x63\x1f\xab\x39\x2b\xda\x90\xf0\xea\x49\x78\xa3\xca\x14\xbd\xa4\xeb\xce\xda\x01\xd5\xf6\x14\x3f\x09\xfd\x58\x4e\xe0\x25\x69\xc7\xd4\x2a\x40\x4e\x10\x9f\x5c\x21\x29\xca\x4d\x04\x4b\xd7\x54\xc4\x31\xe1\x14\x58\xc4\x40\xf0\xe7\x40\xc5\x06\x34\x84\x91\x65\x90\xac\x59\x56\x7d\x4d\x37\xde\xb7\x82\x2a\x0d\x33\x95\xd9\xd1\x88\xd5\x42\x2c\x45\xc6\x6d\x1a\x63\x90\xca\x67\xce\x1c\x22\x8f\x35\x63\x8a\x11\xec\xbd\x6f\xfe\x85\xf8\x75\x6d\xf3\xbf\xcf\xe1\x23\x94\x2d\x4d\xd0\x62\x6c\xce\xf3\xea\xa6\x1c\x88\x0f\xd6\xd2\xea\xef\xc2\x06\xed\x19\xe0\x2b\x34\x13\xd4\x6d\xf6\x8d\x27\x3c\x7c\x23\x94\x05\x22\xff\x17\x3f\x6e\x96\x8e\x3a\xd9\x10\x62\x57\x66\xae\x34\x22\xb0\xb0\xd7\xd4\x2b\xa7\x61\x33\xd9\x38\x9c\x13\x4a\x13\x06\x33\x44\x91\x2f\x54\xf6\x0c\x4c\x71\x51\x26\xf0\xba\xfc\x4f\x55\xe0\x89\x33\x9c\x12\x4d\xb7\xe5\xb8\xc0\x1c\x0d\x19\x05\x4d\x73\x41\x64\x5c\x24\xc9\x6f\x33\xb5\xf2\x7f\x7c\x70\xbc\x72\x5e\xcd\xc6\xef\xb9\x3b\xde\x0b\x4d\x97\xb4\xcc\x9b\xd7\x13\xc6\xde\xc1\xf5\x52\x19\x4b\x65\x52\xbb\x5f\x49\xe2\xb7\xb6\xbb\x00\xe9\xfd\x0c\x2f\x91\x2b\xe8\x0b\x55\xb0\x2c\x84\x06\xde\x21\x67\xbb\x2f\x34\x9f\x37\xa4\xed\xeb\xc0\x1d\x9d\x12\x60\x39\xfd\x76\x7d\x44\x95\x54\xee\xf3\x1a\x79\xa0\x08\x07\xd8\x28\x9b\xb1\xdf\x73\x9b\x5c\xf3\xa6\x4d\x72\xe9\xe8\x7a\x42\x5b\xd4\xb0\x37\x65\xa3\x60\x6b\xee\x73\xc5\x1c\x7e\xc1\x01\xd6\xeb\x22\x53\xd1\xf7\xaa\x48\xf3\x2b\x23\x54\xf6\xe3\x3f\xe1\x3b\x4d\x2b\x67\x0f\x54\xd8\x72\xb2\xf5\xa0\xc3\x71\x05\x18\x5a\xe4\xac\xc1\xbb\xe1\xb1\xa7\xaa\x4c\x1e\x74\x42\xd8\xd8\xb2\x80\x59\xc2\xe7\x96\xc1\x61\xc6\xd3\x63\xd1\x8f\x1f\x53\xcd\x67\xe2\x72\xa3\xa3\xee\xda\x36\x4d\xaf\x84\x04\xde\x63\xe1\x76\xa5\x0b\x68\xcd\x34\x36\x0f\xc5\x93\x14\xea\x16\xbc\xe3\xd1\x02\x3c\x54\x1b\x20\x13\x12\xfc\x09\x9c\xad\x12\x2e\x53\x7a\x8f\x7c\x82\x86\xbf\xc6\x40\xfd\xa1\xe0\x9f\xf9\x87\x2d\xc1\xa4\xc1\x47\x27\xc1\x9f\xab\x65\x0c\x60\x2c\x50\x14\x9e\x80\x1c\xbc\xbd\xa7\xa1\x4c\xd8\x25\xe6\x22\xfe\x8e\x2d\x05\x4f\xb1\xec\x63\x38\x5a\xc4\x14\xb2\x55\x3b\x2d\xea\xf9\x02\x15\xfd\xf2\x5c\x71\x8b\x9d\x50\x9b\xae\xbf\x20\xe6\x95\xb5\x92\x31\xa9\xff\x86\x19\x85\x60\x12\x65\x81\xc7\x13\x33\x39\xaa\xc6\x8f\x0f\xa6\x3c\xbb\x3e\x1a\xb9\x3f\xfe\x6e\xfe\x10\x79\x34\xf1\x5e\x9a\x54\x5f\x9a\xf8\x2f\x4d\xbc\x97\x1e\xfa\xa8\xd1\x96\x9f\xc5\xbb\x08\x13\xcd\x2f\x59\xf7\xaf\xad\x1c\x45\xf0\x4b\x75\xc1\xc2\xf9\x26\x40\x28\xa8\x8a\x13\xac\x48\x13\x5b\xbf\xcf\xca\x93\x0e\xca\x1b\xf1\xf2\x33\xb5\xa2\x6a\x35\x4e\x38\x98\x30\x94\x1e\xf8\xa6\x43\x78\x68\x19\xfb\x56\xf9\x21\x14\x70\x70\xd8\xe0\x7a\x36\x67\xd0\xab\xb1\x4a\x07\x0d\x05\xd2\x54\x08\x44\x11\x81\x48\x80\xb0\x12\x4c\x93\x04\x93\x04\xb5\x09\x1f\x78\xfb\xf7\x53\x9b\x3a\xde\xb6\x3e\xf5\xda\xb1\x70\x15\x69\x6e\x17\xc2\x52\x14\x0c\x0d\x00\xa1\x73\x6e\x88\x0b\x40\x16\x3b\xad\x0a\x4e\x4e\x0a\x30\x20\x54\x52\x97\x5e\xd8\x47\x83\x9a\xa9\x6c\x2a\xe3\x58\xa4\xfd\x48\x6b\xb5\x79\x2b\x59\x75\x0d\x9f\x02\x45\xad\x0d\xa6\x91\xa6\xfa\xc4\xd4\xbd\xb1\x9d\xf6\x61\xb3\x5d\x89\x5f\xf0\xd6\x93\xa1\x7e\x33\xfd\x2d\x19\x52\xee\xe4\xd9\x68\x41\x1c\xd8\x66\xd9\xa2\x2f\xf7\xcd\x38\x77\x19\xfb\x36\xe5\x9c\x02\x92\x6a\x29\xe7\x8d\xd3\x34\xe2\xe6\xf9\xc5\x9b\x8e\x73\x4e\xad\x2a\x36\x0f\xcf\x0e\x43\x0c\x0c\x15\x03\x50\x0b\xfe\x42\xaf\xc8\x34\x20\xd7\xfb\x5c\x4a\xf3\xf5\x1f\xb0\x2a\x58\x8f\x71\x52\xcb\x5d\xc7\x6a\x5f\x3b\xd0\x78\x2f\xce\xdf\xf6\x18\xeb\xc5\xf9\xdb\x5d\xc7\x69\x5e\x39\xd4\x18\x55\xd6\x59\xc2\xcc\xb5\xf3\xc7\x89\xb4\xc6\x81\x01\x30\x0f\x85\x22\x04\x8d\x13\x9f\x56\xea\xde\xb4\x97\x10\xd5\xe0\x2e\x77\xdd\xf1\x92\x2e\x07\x42\xd9\xb0\x8f\xf9\x6f\x2a\xb0\x08\x90\x2e\x99\x55\x5b\xf9\xa4\xad\x7b\x65\x71\xb9\x3e\x28\x95\x7f\x23\x13\x81\xb1\xb1\x5d\xa0\x15\x8d\x2f\xb1\x2a\x86\x18\x12\x14\x04\x01\xf1\x8a\x7c\x50\xe9\x0f\xc2\x51\x33\x7d\xa1\x3e\x95\x29\x95\xb3\x99\x4c\x84\x0d\xd0\x65\x36\x32\xaf\x14\xd2\x02\x81\xcc\x73\x74\xf8\x3d\xa6\x2a\x1d\xb7\xf7\x8a\x2a\xd8\xe5\x85\x75\xdd\xc5\x22\x75\xc0\x9c\x88\x6b\x8f\x13\x98\xf1\x84\xd0\x4c\xcb\xaf\x83\xa7\xae\xcf\xd0\xcd\xb6\x41\x7c\x20\xa0\xcb\x4d\x8b\xdc\x45\x0b\x92\x64\x86\x96\x65\x96\xab\xfd\xf6\xac\x59\x60\xec\xdc\xb5\xe6\xd7\x1c\xc2\x4b\xbb\xc8\x6c\x44\xdf\x95\x1f\xe0\xe8\x59\xe1\xd8\x15\x94\xed\x47\x90\x37\xc2\x67\x21\xa8\x0d\x7a\x0b\x62\x7f\x9c\x1f\x0a\xe4\xd8\x07\x67\xb9\x59\x91\x9e\x1d\x86\xeb\x7e\x70\x3d\xed\xc2\x78\xcb\xb7\x7a\xf0\x5e\x27\xab\x43\x96\x84\xf7\x2a\x55\x19\x42\x1b\x39\x5a\x19\xb4\xb0\x11\xac\x41\x0d\xed\xa5\xcc\x73\x81\xf5\xe3\x09\xc8\xd7\xeb\xc6\xd0\x92\x9c\x7f\x14\x60\x10\x87\x3e\x83\x1a\xdc\x81\xb5\xc2\x7b\xcd\xb7\x56\x57\x4d\x15\xed\x8b\xfe\xa3\xde\xa3\xc0\x68\xd3\x9a\x9b\x8e\x76\x59\x72\xf7\xf5\xfd\x56\x1c\xde\x6c\x59\xf0\xd6\xe9\x36\x55\x94\xdb\x77\xc6\xae\xaf\x1d\x27\x1d\x54\xdf\xd8\x75\xde\x7e\xe5\x38\x2c\xee\x62\xe9\x62\xe7\x01\xcb\xaa\x95\xdd\x5c\xe3\x22\xcd\x84\xb9\xc3\x80\x0d\xc6\xde\xa1\x5f\x0d\x2a\x98\xab\xa0\xdf\x58\xac\x40\xf7\xa0\x7a\xc4\x01\x00\x73\x70\xf8\x08\x6d\x6c\xeb\xe1\xd3\x02\x4a\x50\xdd\x75\x23\x2e\xdf\x41\x37\xbb\xec\x01\x7d\x79\xe7\xe5\x0f\xb0\xc3\xbb\x0e\x1b\xc0\x67\x61\xd1\xb2\x04\xae\xe7\x9d\x8f\xdc\x65\xad\xc7\x9d\x26\x5d\x7b\xbb\xaf\x92\xe1\xbf\x49\x80\x62\x98\xe5\xb7\xb3\xc2\xb1\xee\xe5\xf5\x58\xb7\xbb\x3a\x08\xb7\x74\x95\x14\x73\x99\xb6\x59\xd2\x53\xc5\x1a\x1d\x1c\x57\xd6\x29\x5b\x22\xa0\x6a\xc8\x48\x33\xad\x8c\x94\xfd\xec\x77\xcf\x1e\x86\xef\xfd\xb7\x4a\xe3\x96\xa8\x01\x7b\x43\x1a\x29\xf6\xf6\xa3\xd6\xa0\xcc\xd2\x93\xbb\x86\x32\xb7\xb3\xd7\xad\x85\x6e\x9a\xdf\xe9\x00\xd3\x33\xec\xef\x29\x01\xea\xcd\x65\x1c\x5e\x7f\x3c\x58\x7d\xb0\xf5\xe6\x32\x1e\x60\xf5\x76\x86\xd5\xdb\x55\xd0\x3a\x2c\x60\x38\xcc\xe3\x90\xd7\xa6\x49\x42\xea\xb8\x35\x0d\xaf\xfc\xca\x2e\x4d\xb1\xff\xa5\x29\x86\x4b\x73\x98\x4b\xb3\x55\x56\x7e\xca\x77\xa6\x55\xc6\xde\x7a\x6d\xda\xde\xf2\x21\xe1\xee\x2e\x74\xf7\x0c\x3b\x13\x71\xb5\xa4\x72\x4f\xa7\x6d\xed\xb5\x26\x89\x28\xac\x17\x03\xad\x82\x0d\xb6\x41\x66\x46\x66\x27\x5d\xe1\xac\x2c\xf7\x8e\x1e\x04\xb4\xfb\xbb\x08\xac\x5a\x97\x5e\x58\x07\x45\x44\x53\xf8\x97\x59\x28\xcc\x14\x03\x9b\x4a\xea\x72\x2b\xbd\x40\x2f\x18\x68\x55\x63\x6d\xd2\x43\xa8\xd4\x44\x5a\x3f\x93\x0f\xe6\xef\xaa\x8e\xac\x9f\x9f\xab\x36\x9f\x8a\xc3\xb3\xf6\x7b\xae\xd0\x09\x9a\x96\x76\xad\x2b\xaf\xfd\xf7\x3f\x5e\x5e\x81\x21\x86\x48\x29\x89\xd8\xad\xa7\x82\x16\xbc\xdc\xd5\x54\x26\x65\x61\x85\x65\xe1\xce\xf4\x45\x6b\x05\xf7\x7d\x6f\x7b\xeb\x01\x3f\x10\x05\x68\x51\xee\xb6\x14\xb8\x6a\x7c\xe1\xe1\x38\xe6\x3d\x11\xf1\x36\xcd\x73\xe7\x88\x6d\x52\x29\xf6\x84\xb4\x77\xd5\x8b\x68\x99\x77\x50\xb6\xed\x4e\xf8\x26\x48\x34\x90\xff\xb1\x7c\x16\xb0\xea\xa6\x68\xee\x32\x2c\x7a\x22\xd5\x49\xac\x22\x7d\x92\x73\xfd\x51\x9f\xd8\x9a\xdd\x02\x4a\xd1\x3a\xeb\xe7\x89\x26\xbd\x14\x1e\x89\x4f\xf9\xc9\xe3\x72\xb4\x6e\x15\x7e\xcb\xd1\xee\x7a\xf7\x57\x84\x4c\xde\x60\x52\xe8\x89\x51\x5e\x7f\x73\x90\x10\xf7\x43\x2b\x6f\x32\xeb\x3c\x2e\x72\x79\x36\xe5\x91\xa1\x2e\x67\xf3\x79\x26\xe6\x10\x2b\xf2\x21\x9c\x73\x2d\x88\x30\x6c\xe9\xd5\x3f\x58\xa8\x5b\x73\x7a\x12\x05\x60\x09\x6f\x92\x42\xe7\x22\xfb\xa0\x20\xd0\x5b\x31\x4e\xef\x19\xfa\x42\x81\x46\x5e\x93\x1e\xc0\x33\x65\x63\x8b\x12\xd4\x75\x27\xde\x34\xbc\x42\x25\xa2\xbd\xcc\x2b\xf7\x0b\xba\x59\xab\x25\xf9\x67\x32\x8d\xc3\xc9\x80\xef\xa6\xbc\xc9\xe6\x00\x68\x50\xae\x80\xa9\xa1\x7b\xae\xec\x15\x6a\x03\x8d\xf0\xc6\x54\x26\xfd\x4c\xb3\x95\xc8\xa8\x7a\x9e\x0e\x83\xb1\x0e\x72\x25\x7a\xc3\x2d\xdd\xdd\x9c\xb6\xe3\x79\xf3\xb7\xbe\xfd\xac\x79\xad\x08\xc1\x13\x1f\x30\x28\x6c\x3e\x62\x89\x9a\xcb\xc8\x5e\x25\x99\xce\x31\x71\xd2\x50\x01\x73\x34\xab\xc1\xf3\x33\x91\x89\x34\xb2\xf1\x39\x45\x2a\x73\x04\xd0\x37\xdd\xff\x59\xa6\x50\x06\x51\x65\xfe\x06\xd1\xd3\x3e\x6a\x47\xeb\xfd\xe9\xb5\x51\xad\xf7\x70\x1b\x9b\xaf\xde\x44\x02\xe3\x86\xdf\x79\x62\x45\x7c\xb3\x04\xb5\x3b\x3a\x2d\x64\x62\xeb\x2d\x26\xa4\x61\x81\xd3\xc1\x9b\x3c\x1c\xe9\x86\x6f\x68\x91\x7b\xc7\x19\xdf\x07\xec\x91\x12\xb6\xc5\xe2\x6e\x99\x9b\x12\xcb\x4c\x44\x39\x8b\x16\xc8\x89\x72\x45\xaf\xd8\xd3\xae\x73\xb5\x5c\x95\x22\xb7\x87\xe1\xd3\x12\x91\x3b\x24\xb7\x0e\x28\x08\x43\xce\xe7\x1d\xc9\xff\xdd\x51\x10\xda\x05\xa6\x2e\xb6\x8c\xf7\x9f\xf8\x30\x62\x47\x05\x54\xbb\x89\x18\x1d\x46\x42\xb4\x54\xb6\xfc\xda\xe1\x39\xdf\x01\x33\x4a\x61\xb8\x98\x9e\x25\xff\x8e\x79\x8c\xdb\xca\x5e\xb7\x2e\x57\x90\x5a\xba\x43\x56\x69\x03\xb3\x26\x8e\xd8\x8f\x67\x5b\xa6\xea\x58\xaf\x21\x0b\xde\xef\x23\x08\x03\x32\xf7\x92\xb4\x47\x26\x73\xac\x5b\x83\x91\x5d\xf4\x56\xf8\x92\x15\x94\xe7\x89\x9a\x72\x0c\xd0\xd5\x2b\x1e\x11\x6d\xe5\x31\x82\xd1\x05\x10\x4b\x6b\xc9\xd9\x25\x56\x2b\x1c\xd0\x13\x06\x06\x33\x30\x98\xea\xb2\xff\x9a\x18\x8c\x4a\xc4\x07\x18\xd5\x7e\x02\xf6\x07\x7a\x7f\x6b\x60\x1a\xb6\x29\xcb\xca\xef\x48\x8a\x1c\x7c\xa2\xd7\x11\x1d\x0e\x73\x20\x93\xb5\x0d\x12\x3a\x23\xda\x6e\x44\xe6\x02\x6c\xf6\x79\x91\xa5\x50\xee\x34\xcb\x54\x9b\x04\x4c\x85\x57\xbb\xd8\x2c\x51\x3c\xcb\x69\x3d\x22\x4c\x14\x84\xc0\x46\x50\x89\x35\xd3\x41\x84\x32\x5d\x0f\xc1\xbc\x2b\xbf\xa5\xa1\xdc\x5b\xd4\x86\x3d\x14\x5d\x26\xc3\x27\xc1\x9b\x2d\x0b\xbd\x67\x16\xdd\x01\x41\xd4\xfc\x42\x53\x9d\x8c\x7a\xcb\xa1\x44\xd3\x93\x66\xa2\x7d\x20\x88\xce\xeb\x10\x44\xdb\xf6\xb9\xb5\xdf\x5d\xa8\x40\xc3\x1d\xb8\x8b\x6d\x76\x90\x15\x3e\x17\x59\x61\x37\x00\xa2\xad\x92\x42\x4f\x86\xf1\xe0\xe0\x40\x77\x66\x17\x1d\x80\x41\x77\x63\x19\xfd\x79\x45\x0f\x26\x31\x70\x87\xcf\x9c\x3b\xdc\x1f\x5b\x18\xf8\xc1\xc0\x0f\x06\x7e\xe0\xb5\x6f\xe0\x07\x87\x67\x04\x9e\x35\x74\x1b\x44\x9c\x6d\x44\xfa\xa4\x6f\x60\xab\x38\x99\x5c\x4d\xea\xac\xb0\x46\x3e\x17\x1b\xe5\x2c\x7d\xb5\x3a\x12\xb7\x0b\xe5\xfc\xa9\x9e\x2a\xca\x00\x9c\x40\x46\x8b\x52\xbf\x6e\x6a\xd6\xcf\xb0\xd7\x9c\x15\x52\x67\x3a\x61\xb6\x86\x5f\x6a\xc1\xfe\x48\xbe\x45\x5b\x16\x03\x46\x64\x89\x32\xc6\x55\x2c\x8b\x24\x97\xab\x04\x81\xcf\xbc\x1c\x0e\x0f\x84\x8e\xa7\x1b\xc6\x83\xca\x0b\x22\x66\x7c\x6e\x7a\xcc\xa1\xf6\x92\x2d\xf0\x93\x16\x4b\x91\x19\xca\x50\x7e\x04\xea\x38\xa5\x9b\xb2\xf7\xd2\x7f\xdc\x08\xfd\x7f\xff\x11\x7d\xa9\x4a\x3f\xd0\xe8\x7e\xfc\xf0\x5d\xd7\x2a\xff\x10\xb6\x26\xb2\x8c\x40\x25\x2b\x9e\xe5\x92\x27\xac\xc8\x6c\x04\x16\x67\x85\x16\x99\x65\xdd\x0b\xbe\x16\x8c\x47\x00\x53\x61\x08\x28\xfb\x5d\x90\x0d\x8d\x47\x0e\x2c\x37\x1c\xb7\x66\x56\x24\xc9\x88\xcd\x64\x0a\x55\x6f\xc4\xca\xa5\x74\xf3\x7c\xc1\x2e\x65\x1a\x09\x4a\x91\x25\x92\x0f\x23\x32\x3d\x9a\x23\xeb\xce\x1d\x58\x6d\x82\x8c\x2f\xf8\x84\x39\x83\x11\xc4\x8c\xcd\x42\xf7\xb1\xf6\x9d\xce\xc0\x16\x78\x93\x77\x99\x1c\xa2\x11\x4f\x1d\x08\x05\x04\xd6\xe4\x0a\x36\xb7\xdc\xf1\x63\x5d\x44\x0b\x33\xa5\xeb\xa3\x95\x8a\xf5\xf5\x91\xb9\x1b\xd7\x47\x5a\x44\x99\xc8\xf5\xf5\xd1\x73\x80\x66\xaa\xcc\x83\xc0\xad\xbc\x77\x0d\x0b\xb8\x3e\x7a\x3e\x62\xce\xfc\x3e\x55\xf9\xe2\xe1\xd3\x4f\x69\x90\x7d\xc2\x73\x3f\xf8\x6d\xab\x8e\xee\x5b\xc3\xdc\x9c\xa0\xe2\x05\xe4\x36\x91\x09\x56\x86\xc9\x9a\xc3\xe6\xc5\xe1\x7a\x75\x45\xca\xe0\xdb\x47\x5b\x95\xbe\x2b\x52\x11\xd3\xca\xc3\x82\xf2\x70\x6d\xf6\xf6\xbd\xb3\x24\xf1\xab\x4b\x71\xf8\xd3\xd2\xaf\x87\x9e\xf4\x5a\x64\xd3\xae\x09\xff\x64\xda\x84\x93\xc5\x47\x48\x1f\xdc\x8d\xf9\xee\x3b\x14\xe1\x68\x32\x46\xe4\xc3\x90\x9d\xb3\x1c\x65\x23\xf1\x81\x12\x2f\x21\xe8\xc6\xc6\x2d\xc6\x0e\x2d\xd1\xac\xd9\x84\x41\xe7\x0d\x8b\x04\x52\xd2\x93\x4a\x59\xc3\xc5\xeb\x92\x5d\xba\x84\x80\x8e\x48\x9c\x32\x04\xc7\xa7\x86\x07\x8f\xbf\x19\xdc\x73\x4f\x5a\x77\x1c\x54\xac\xcf\x45\xc5\xfa\x55\xc4\x7f\x0c\x81\x1f\xfd\xb4\xc3\xc3\x47\x7c\xf4\x0b\xf5\x68\x8d\xf1\xc8\x54\xbb\xde\xd7\x12\xe1\xe1\xfb\x53\x21\x72\xbc\xd4\xf6\x20\xfb\xab\x9f\xdb\x35\xef\x0c\x00\x41\x59\xa0\xec\xdc\x6f\x36\xdd\xd4\x34\x4d\x99\x33\xf1\x49\x6a\xa8\xbf\x69\xa4\x27\xcf\x39\x02\x0a\x18\x9b\xcb\xb5\x48\xfd\xc1\x02\xf2\xb5\xd1\x4f\x10\xc9\x17\x07\xcb\x3d\x2d\x62\xe0\x71\x03\x8f\x1b\x78\x5c\x75\xd9\x7f\x4d\x3c\xee\x81\x43\x50\xda\xc8\xa4\xab\xae\xbb\x0f\xa5\x1c\x02\x54\x86\x00\x95\xaa\x0c\x71\x2f\x91\x29\xfd\x43\x52\x7a\xc4\xa2\x0c\x41\x28\xbf\x16\x36\xba\xa7\x9b\xf1\xfe\xa2\x4f\x86\xb0\x93\x41\x3e\x18\xdc\x8c\xbd\x99\xc0\xe1\xdd\x8c\x3d\x02\x4d\xb6\x45\x98\x0c\xa1\x25\x9f\x33\xcd\xbf\x07\x62\x3f\x50\xf9\x81\xca\x0f\x54\xde\x6b\xef\x53\xf9\xfb\x21\xef\xa1\x56\xdc\xaa\xd3\xda\xa0\x89\x5a\x08\x09\x9c\x70\x47\x23\x41\xe5\x43\x58\xd3\x42\x7b\x19\xf1\x9d\x01\x1e\x3d\xe3\x3b\x6c\x78\x07\x46\x4f\xa0\xd5\xb9\x8c\xe2\xa0\x2f\x97\x6e\xab\x7b\x35\x25\x99\x2f\x03\x6c\x88\xe7\xc3\x3d\xc0\x08\xd2\x6e\x44\x25\x1f\x3e\xc9\x06\xba\xdc\x75\x04\x3d\x2f\x8a\xdb\xaf\xea\x9a\x55\x67\xd0\x75\x97\xba\xce\xa6\x55\xef\xb7\x21\xbd\x20\x49\x76\x67\x93\x7b\x66\x97\xc0\x1c\xc1\x54\x86\xb1\x28\x32\x36\x54\x0f\xd1\xc2\xe9\xac\x92\x2d\x3c\x70\xb8\x03\x88\xb4\x17\xdb\xb1\x50\x49\xcc\xb8\x4d\x8b\x3f\xbb\x38\x2f\xb9\x01\x7d\x6f\x84\x76\x1c\x64\x27\x33\x0a\xe9\xb0\xb6\x10\x1b\xc6\x01\x43\x30\xe2\x02\x9e\x5e\x30\xed\xec\x10\x03\xd5\xf7\x8a\xa0\x69\x86\x02\x9f\xe8\x5b\x14\x94\xe4\x39\x74\xc9\xe0\x33\xb1\xb5\xbf\xe0\x0a\x5f\x1f\x61\xb1\x11\x60\x6d\x32\x12\x67\x51\xa4\x0a\xe4\x5a\x58\xe4\xb8\xd2\xba\x95\x8a\x51\x37\x3f\xda\x19\xe3\xc8\x5c\x37\xf7\x77\x2f\xd5\xcc\xee\x4d\xf5\x1e\x4c\xd8\x4f\x88\xec\x87\xa2\x23\xa1\x17\x48\xed\xad\x12\xcf\x04\xbb\x3e\x32\x83\xc6\xfa\x2a\x30\x6a\xf3\x4f\x33\x85\xeb\xa3\x70\x51\xae\x8f\x9c\x49\xce\x33\xb9\x39\xe7\x89\x27\x05\x9a\x26\x66\xfc\x56\x62\xac\xbc\x42\x02\x68\x26\xa0\x50\x44\x69\xa7\xbb\x37\xca\x41\x87\xa1\x6d\x9d\xf6\xfb\x30\x18\x29\x7b\x7c\x9d\xac\x9e\xb5\xf3\x68\xc5\x72\xbb\xa6\x34\xba\x8f\x44\x6c\xcd\x7d\xf2\xf2\x86\xcb\xc8\x28\xdc\x2d\x8c\xaa\x0a\xf6\x0b\xf6\x96\xea\xa7\xe2\x96\x60\x08\xd1\x41\x57\xbf\x27\xd5\xbc\x0f\x0a\x49\xf5\x09\x07\x10\xa0\x01\x04\xa8\x7a\x21\xef\x0f\x04\x08\x0f\xdd\xaf\x0b\x09\x88\xbd\x35\x3a\x5b\x04\xa1\xb8\x32\x65\xeb\xd3\xc9\xe9\xbf\x9a\x7f\xcc\xf8\x5a\x65\x20\x3a\xb5\x71\xb1\x93\xf5\x69\x88\x7d\x60\x4e\x10\xd5\x3f\x61\x89\x4a\xe7\x22\x43\x8c\xc1\x6c\xed\xfa\x7e\xf9\xf2\xe1\xa0\x87\x9a\x49\xc0\x36\xa5\x69\xc0\x1f\x1a\x0c\x4c\x83\x6f\x7e\xb0\xca\x3c\x29\xdf\xfc\xaf\x01\x7f\x08\x49\xed\xe7\x19\x8b\xd6\x0f\x84\x08\x56\x60\x77\x23\x53\x4d\x62\xf8\xd5\xc3\x11\x1d\x4c\x9e\xa0\xc9\x1d\x50\xac\x18\xf8\xdc\xc0\xe7\x06\x3e\xf7\x54\xf9\xdc\xdd\x62\xd0\xa8\xd8\xc3\x80\x85\xf4\xe0\xa1\x66\x16\x94\xfc\xb7\x1e\x6f\xb6\x13\x20\xd2\x81\xc5\x85\xfb\x84\x46\x3a\x38\x47\x37\xdf\x1e\xb8\xfa\xe7\xc0\xd5\x9f\x28\x2e\x53\xab\x50\xbd\x33\x71\x1a\x24\x98\xcf\x50\x82\x19\xe2\x27\x2a\x67\x7a\x77\x70\xa6\x43\xb1\xaf\xc3\xc2\x34\x1d\x8e\x53\xe9\x81\x3f\x0d\xfc\xe9\xf0\x51\x7c\x75\xff\xd0\xc0\x91\x06\x8e\x34\x70\x24\x56\x3d\xd3\x3b\xc0\x43\xdd\x89\x15\x0d\x40\x51\x03\x50\xd4\x00\x14\x35\x00\x45\x3d\xf0\x71\x19\x80\xa2\xb6\xad\xca\x7d\x01\x45\x3d\xfb\xdd\xb3\x56\x80\x28\x07\xd4\xe0\x4a\xdd\x3a\x92\x39\x61\xcf\x7e\x77\x32\x53\x2a\x78\x19\xda\x16\x53\x77\xda\x9e\x41\x03\x28\xeb\xdb\xb7\xdb\x01\x92\xea\xb7\x06\x49\x55\xfa\x28\x9e\x00\x2e\xd5\xdd\x74\xe5\x03\x07\x7c\x0d\x3a\xf2\xe0\x99\x1d\xb4\xc8\xa7\xea\x99\x7d\xd2\x08\x58\x9f\x73\xe8\xd1\x7d\xc6\x1c\x0d\x80\x58\xf7\x08\x88\x75\x77\xe6\x3a\x44\x3f\x0d\x3c\x76\xe0\xb1\xbf\x1d\x1e\xfb\x18\xd1\x4f\x03\x0c\xd7\x10\x1b\xf5\x94\xb0\xb8\x0e\x25\xcf\x1c\x16\x95\xeb\x60\xbc\x7c\x88\x7b\xfa\x5c\xf8\xf9\x53\x83\x02\xab\x4b\xf4\x77\x31\x14\x0e\xd2\xca\xe7\x22\xad\x0c\x7e\xe5\xca\x99\xde\x01\x0f\xec\xce\xcc\xe8\xae\xc8\x60\x77\xe7\x3b\x03\xc3\x19\x18\xce\xbd\x44\x30\x0d\xa1\x4b\x03\x8b\x19\x58\xcc\xfe\x60\x64\x77\xe6\x2d\x03\x2c\xd9\x00\x4b\xf6\x04\x61\xc9\x42\x73\xc7\x80\x4d\x36\x60\x93\x0d\xd8\x64\x03\x36\xd9\x80\x4d\x66\xc9\xa4\x51\x55\xe2\x22\x91\xe9\x1c\x4a\x37\x65\x52\x65\x32\xdf\xbc\x49\xb8\xd6\xdb\xe2\x8f\xfd\x76\x4e\xa5\x5a\xf2\x15\x04\x02\x51\x70\xe5\x8a\x1a\xb1\x08\x5a\x01\x83\x21\x4a\xea\x7e\x32\x3a\x91\x51\xff\x60\x69\x27\xec\xca\x28\x65\xb0\xca\x14\x38\xc4\xd3\x8d\x79\x20\x63\xdb\x72\xd0\x0a\x9f\xb4\x56\x18\xae\xf0\xb6\xc5\xf7\xfe\xa4\x10\x52\x9e\x4d\x65\x9e\xf1\x6c\x63\xd5\x2b\x90\x0b\x0b\x5d\xf0\x24\xd9\xb0\x55\xa6\xd6\x32\x16\x9a\xcd\x0b\x19\x8b\x04\x76\x4b\xa5\xec\x16\x31\xaa\xa4\xae\x1e\x37\xda\x07\xc2\x97\xdb\x83\x0e\xa1\x23\x89\x58\x54\xc7\x64\x82\xb6\x2e\xb4\x52\x9b\xd1\x01\xcf\x87\x01\x86\x97\xa6\x1c\x5f\xa4\x52\x2d\x63\x91\x61\x70\x9c\x39\x1a\x31\x75\xe4\xa6\x64\xd8\xdf\x4a\xc5\x14\x54\x17\x2b\xa0\x40\x18\x77\x9d\x6e\x2a\x33\x9f\xb0\xf7\x69\xb2\x81\x80\xf5\xf0\x8b\x74\xa5\x96\x3c\xfb\x88\x9f\xba\x09\x86\x7d\x33\x61\x7f\x51\xb7\x62\x2d\xb2\x11\x93\x33\xb6\x34\x67\x2c\x5f\x00\x22\x41\xa5\x27\xa1\x6d\x78\xc2\xad\xcc\x17\x66\xc4\x32\xab\x76\x46\x61\xd9\x5a\xe4\x70\xde\x33\xcb\xaa\xf4\x92\x27\x89\x39\xf7\x78\xcd\xd5\x0c\xa9\x2f\x79\xed\xec\xc4\xab\x9f\x0b\xa0\x02\x5b\x16\xa9\x65\x8b\xa7\x4a\x25\x82\xa7\x83\xd2\xff\x79\x2b\xfd\x77\xf7\x82\xdf\xf7\x8a\xb9\x49\x37\x2e\xc9\x2a\x13\x46\xa2\x90\x2a\xc5\xb8\xb1\x8e\x53\x79\x51\x69\x6e\xb5\x38\xfa\x0b\xe8\x05\x35\x49\xe7\x48\x3a\xe0\xae\x26\xea\x56\x64\xe5\x95\x61\xef\x31\xad\xe5\x07\xbc\xf6\xd4\xeb\x77\xa6\xd1\x85\x6b\xe3\x4b\xe9\x4d\x2d\x0c\xb5\x28\x52\x2d\xf2\x09\xea\x3a\x2e\x21\xc3\xe8\x5e\x63\xc2\x8e\x9c\x83\xd1\x98\xf0\xff\x7e\x50\xe9\x85\x1b\x9d\xeb\x66\x26\xb8\x59\xbb\xb1\x69\xba\x07\xbd\x86\x7b\xd9\xb1\x6c\xa5\x7c\x61\x79\x7a\x95\x76\xc2\x0c\x68\x31\x79\x94\x17\x3c\x29\x9b\x90\x9d\x02\xfc\xf7\x91\x90\x6b\x61\xb9\x8f\xa0\xe0\xab\x30\x3d\xc9\xa8\x7d\x40\x78\x31\x32\x41\x02\x09\x07\xe6\x50\x99\x1d\x5a\x42\xcc\xf8\x64\x9a\xbf\x7a\xd9\x3c\x75\x92\x7f\xf6\x88\x13\x87\x75\x79\x40\xe3\x94\x27\x52\x6e\x33\x4a\x85\xb2\x66\xbb\x65\x6a\x07\xa3\xd4\x16\x61\xb6\xc3\xf5\x51\x6b\xdb\xe4\x03\x09\xcf\x4a\x5f\x75\x7b\x90\x45\x9f\xb0\x87\x42\x5a\x0f\x05\xac\x02\xf9\x28\x2a\xd2\xc7\x61\xbc\x15\xdb\x14\x2d\xaf\xab\xc1\x6f\xf1\x9b\x15\x61\x76\xf3\x5b\xc0\x61\xb5\xa3\x78\x04\xd9\xa5\x27\xf7\x79\x70\xd7\xc8\x3e\xdc\xe7\x70\x85\x5a\x82\x5b\x4e\x79\x00\x3d\x6d\x2a\x6f\xdf\x5d\x7c\x78\xf7\xe6\xec\xea\xdd\x5b\x36\x46\x31\x04\xed\x88\x34\x94\x1a\x61\x32\x37\x3a\x2e\xfd\xf1\xd3\x0d\xab\x4d\xfd\x64\x7d\x7a\x12\xbc\x33\x61\x83\xe5\x66\xe0\x96\x83\xe5\x66\xb0\xdc\x0c\x96\x9b\x41\xec\x79\x1a\x62\xcf\x60\xb9\x19\x2c\x37\x83\xe5\xe6\x73\xb4\xdc\xec\x1a\x53\xd4\x25\x3c\x0f\x36\x9c\xdf\x9c\x54\xfa\x84\x6d\x38\x4d\xda\xdd\x60\xc8\x19\x24\x9a\xc1\x90\xf3\x64\x0d\x39\x3b\x33\xa4\x5c\x65\x7c\x2e\xcc\x9e\xbe\xb9\x3c\x7f\x9b\xc9\xb5\xc8\xb6\x61\xc3\xda\x36\x2c\xe2\x2b\xb3\x03\xba\x01\x58\x8f\xb3\x37\x04\x3d\x94\xb1\x4b\xec\x9f\x9d\x1b\x9a\x3d\xe3\x91\x60\xc7\x6f\x2e\xcf\x9f\xb3\xb5\x4a\x8a\xa5\x60\x31\x76\x16\x8b\x55\xa2\x36\x22\x66\x8a\x72\x61\x31\xe9\x75\xc2\xfe\xea\x56\x98\xf1\x3c\xe7\xd1\x82\xc5\x02\xfe\xcf\xab\xd2\x55\x68\x8b\x3e\x45\x14\x20\x57\xa6\x95\xc8\x96\x32\x15\x4e\xcb\xa5\xd7\x25\x5e\x6c\xb3\xf9\xd8\x7b\x22\xf2\x9e\x3d\x18\x01\xc9\x9f\x6c\x2a\x44\x0c\xac\x69\x2a\xd8\xca\x90\x60\x18\xfe\x52\x15\x69\x3e\x61\xe5\x42\xd9\xa8\x46\x44\x77\xf3\xa2\xb2\xe2\x81\x31\x3f\x69\xc6\x3c\x70\xab\xcf\x85\x5b\xed\xa7\x7f\x7b\xda\xb7\xfb\x17\x86\x93\xa7\xb1\x8c\xcc\x89\xaf\x81\x75\xbe\xb9\x3c\xb7\x24\x8d\x00\x01\xfd\x9d\x9e\x99\xcd\xcd\xd5\x1f\x99\xcc\xd9\xf7\x3f\x5e\x5e\x99\x0d\x0a\x60\x59\x28\x21\xbf\xd4\x45\x4d\x7f\xdf\x8a\xfc\x22\x29\xe6\x32\x35\xdf\x3e\x7e\xce\x22\x9e\x24\x14\xce\xcf\x73\xfa\x1a\x1a\xa7\xe9\xcb\xd0\x13\xe4\xf7\x4f\x05\xfb\xfa\x15\x8b\x16\x3c\xe3\x51\x6e\x3e\xae\x32\x96\x08\xad\x47\x6c\x2a\xe6\x32\x4d\x21\x90\x3b\x8d\xcd\xc1\x32\xff\x04\x25\x9c\xa7\x8c\x27\xab\x05\x07\x04\x50\x19\x95\x6f\xb3\xe3\x9f\xf9\xf8\xef\x2f\xc6\x7f\x38\x1b\xff\xaf\x5f\x9e\x63\xe3\x98\xeb\x85\xd0\xec\x78\xfc\x7c\xc4\x62\x95\x6b\x76\x3c\x79\x4e\x15\xab\xbc\x3e\x40\xd9\xbe\x15\x22\x7d\x64\x33\x86\xd1\x6e\x77\xc6\x7a\x68\x62\x90\x97\xa6\xa3\xad\x27\x09\x8d\xac\x91\x23\xae\x76\x33\xf1\xfd\x3d\xf2\x6f\x60\xec\x0f\x29\x9a\xd0\xb4\xb7\xc2\x05\x3b\x81\xe1\x30\x8e\xa5\x86\x95\xee\x82\xaa\xf7\xdb\x35\x02\xd5\x57\xd9\xf0\xc0\x73\x9f\x34\xcf\xdd\x5b\x19\x6e\x39\x8b\x7b\xab\xc1\x4d\x62\xf1\xa0\xfa\x0e\xc2\xc4\xa0\xfa\x3e\x02\x7f\x39\x60\xf0\x42\x1b\x37\xef\xc1\x63\x4c\x3b\x4b\x76\x74\x95\xc1\xf3\x92\x02\xf5\x61\x31\xa0\x8c\x7e\x28\xb7\x62\x1b\x5d\x08\x1b\x07\xd2\xa7\xd4\x20\x55\x84\xca\x34\xed\x30\xba\xad\x51\xeb\x35\xa3\xc0\xa1\x1e\x4f\x45\xc4\x0b\x0d\x00\x7c\x72\xb9\x4a\xc4\xd2\x21\x2b\x9b\x9e\xde\x38\xb5\xfa\xa2\x98\x26\x52\x2f\x7e\x82\xae\x8f\x9f\x9b\x33\xbc\x50\xf1\x73\x9b\x2b\x44\x68\xd7\x7d\xf4\x73\xcb\xd1\x2c\x42\x25\x35\xa4\x41\x4b\x67\x18\x40\x88\xc0\x68\x21\xa2\x8f\xc4\x48\xa1\x05\x36\x5f\x02\x7d\xca\x79\x5e\x20\xd0\xe0\x2d\x37\x84\xaa\x48\x73\x99\x78\x6d\x81\x7c\x42\x7b\x23\x43\x8b\x99\xb9\x6e\xab\x4c\x45\x42\x80\x80\x9b\x2b\x54\xcf\x01\x89\xf7\x8a\xa6\x2c\x3e\x21\x03\x1d\xd3\x8b\x19\x8b\x94\xca\x62\x99\xc2\x1a\x83\x98\x5b\x5f\x63\x33\x04\x24\x87\xdb\x87\x6a\x7d\x30\xf5\x8d\x90\x9a\x45\xca\x6c\x40\x5e\xe2\x77\xb9\x23\xf4\x41\xcc\xa5\xce\x33\xe7\x76\x02\x0f\x95\x79\x45\xa4\x7c\x9a\x50\x45\xf2\xdc\xf9\x8b\xa4\xf6\xb0\xae\x73\xc5\x66\x3c\xd1\xe4\xd2\xae\x7d\xd7\xd5\x2b\xff\x28\x57\x2b\x43\xcc\xdf\xe7\x0b\x91\xdd\x4a\x2d\xb6\xb7\x37\xdb\xd7\x1a\xaa\xb0\xd5\x8f\x3d\xd3\x90\x67\xd6\xcb\x75\xf8\x96\xe4\x28\x89\x0b\x52\xa4\xb1\xc8\x92\x0d\x30\x43\x5c\x7f\x5d\xac\x56\x2a\xcb\x35\x16\x62\x07\x4c\xe6\xdb\x54\x64\x7a\x21\x57\xb0\x28\x2b\x91\x2d\xa5\xd6\x9e\xd8\x4d\x2f\xd2\x69\xc0\xec\x3d\x38\x05\x66\xf2\x1f\x04\x70\x46\x15\x5c\x6a\xf6\xcd\xa5\x37\x62\x92\x9a\x10\x66\x3c\x8e\x81\x55\x40\x34\x40\xce\x65\xa2\xab\x6e\x45\xd0\x7b\xac\x5f\x91\xa7\x25\x6a\xff\x42\xa5\x2a\xa3\x20\x26\x62\xcd\x88\x02\x0f\x3b\x6a\xb7\x1f\xaf\x5b\xf8\x7d\xff\x0c\xec\xe1\x7a\x5c\xa9\xf8\x3c\x9d\xa9\xf7\xe9\xf7\x66\xd2\x5d\x70\x16\xb3\x30\x2a\x22\x7c\x79\x17\xda\x53\xae\x54\xd5\x6e\x76\x9c\xc8\x8f\xc2\x3c\x35\x0a\x2d\x7c\xe2\xc7\xf3\xb7\x23\x26\xf2\x68\xf2\x9c\xc5\x45\xe6\x36\xa8\x3c\x85\x1a\xae\x08\x8d\x8c\x4e\x77\xb5\x5b\x42\x5b\xc9\x1b\xcd\x71\x36\xfa\xc5\x6c\x95\x79\xbd\xbc\xfe\x34\xf0\x32\x2c\xa6\x32\x65\xae\xa1\x3a\x84\x39\x4d\x81\xb1\xd2\xdc\x72\xbc\xb8\xb0\x50\xd6\x94\x08\xa3\x30\x9f\xaf\x8d\x8f\x6b\x86\xbb\x6b\x68\xac\xf8\x94\x5b\x34\x3f\x33\x88\x1f\x54\x2c\xaa\x04\xd7\x5c\x38\x5d\x1b\x27\xa8\x11\x7a\xa5\x52\x2d\x6d\x01\x88\x15\xcf\xb4\xd5\xe4\x21\x1c\x8d\x3b\x51\xd1\xff\x3e\xad\x89\xac\x8f\x04\x3f\x32\x53\x49\xa2\x6e\xcd\x9b\xee\x47\x33\x4a\x7b\xff\xed\xeb\xb3\xda\x99\xd0\xfe\x91\xa1\xfb\x80\x62\x8f\x9c\x2f\x72\x36\xcf\xd4\x2d\x62\xd6\x62\x70\x9d\x98\xc9\x4f\x41\xcc\xcc\x84\x5d\x1f\x45\xba\xe4\xcd\x24\x0d\xad\x54\x3c\x49\xf9\x52\x5c\x1f\xbd\x36\x9f\x44\xd3\xcb\xd6\x96\x60\x55\xf5\x9b\x63\xee\x6c\xeb\x3b\x85\x8c\x4d\x6b\xbc\x3c\xc7\xe6\xc9\x8f\xe7\x6f\x9f\x37\xb7\x17\xab\x85\x58\x8a\x8c\x27\xe6\x8d\xeb\x23\x33\xd5\xeb\x23\x26\x67\xb3\x2a\xf7\x49\x99\x6b\xca\x64\x9a\xc8\xd4\xfe\x7a\x9d\xb2\x8e\xff\x78\x89\xd6\xbc\x24\x06\x97\x20\xe7\x8f\x98\x72\x74\xfa\xfa\x08\xce\xf0\xf5\xd1\x75\x7a\x9d\x76\x8d\x96\x50\xed\xc5\xad\xa3\x23\x32\xf5\xd9\xf6\xe9\xe4\xf4\x6b\x00\xf8\xb5\x84\xca\x0a\x88\x70\xb6\xf0\xd4\x69\xe2\xcd\x44\x7c\xa1\x7c\x07\xcc\xfb\xfa\xe8\xc2\x08\x62\x3a\x17\x69\x7e\x7d\x44\x69\xdf\xef\xbc\x8f\xe3\x14\xbe\x93\x33\x11\x6d\xa2\x44\x7c\xaf\x62\x41\x1c\xc7\x75\x1d\xf1\x94\x25\x82\xaf\x85\xbb\x31\x2c\x96\xda\xb1\xb9\x13\x95\x31\x39\x4f\x31\xe0\xcb\x52\xda\x09\x3b\xd3\x95\x49\x7c\x05\xa9\xe4\xe9\xb3\xdc\x8d\xb2\x6c\x3e\x0a\x3e\x06\xb3\xb4\x8d\x54\x2a\xd8\x52\xc5\x14\x2d\xe1\xfb\x21\x30\x65\xda\xba\x22\x1c\xc7\x2d\x6f\x7f\xe9\x22\xb0\xeb\x03\x1d\x01\x55\x97\x7a\x04\xeb\x27\x3e\x71\xc3\xe3\x01\x28\x99\x1b\x86\xbf\x34\xfd\xc0\xa9\x58\xf1\x8c\x2f\x4d\x0f\x96\x51\xc5\x15\xe9\xb1\x3f\x87\xa5\xdd\x7f\xc3\x57\x3c\x92\x79\x17\x8f\xad\xd2\xf8\xca\xdb\x01\x91\x27\x31\xaf\x4e\xe8\x6f\xb9\x11\x1b\x21\x66\xc4\x39\xb1\x4c\x97\x36\x5e\x10\x19\x2a\x39\x7f\x22\xdb\xb5\xeb\xb0\x46\x4a\x91\x22\x50\x56\xf9\x74\xc3\xa2\x4c\x20\x19\x7b\x73\x79\x7e\x59\x19\xa0\xf5\xa8\x80\x6c\x16\x95\xc3\x76\xb4\x6e\x62\x2e\x86\xa1\x69\x20\x4c\xda\xd8\x42\x2b\x3b\xc9\xe5\x52\xc4\x92\xe7\x22\xd9\xf8\xbb\x0e\x24\xd4\xd9\x53\xcf\x53\x5b\xdd\x01\x78\x4d\xa6\xd6\xd2\x08\x15\xa6\x91\xb9\x4b\xb8\x18\x36\x6e\xc9\x08\x67\x16\x18\x83\x18\x80\x11\xb1\x4b\xe9\xb4\x3e\xdd\x85\xe1\x2b\x48\xf1\x45\xcc\xb4\x02\xd1\x46\xe6\x20\x0b\xb4\x4e\x19\xe6\x75\x96\x80\xbc\x9a\xcb\xb5\x48\x36\x23\xbf\x7b\x9a\xa7\x3b\xc4\x36\x00\x92\xa4\x13\x08\x83\x62\x2a\x43\x0e\x88\xc2\x89\x2b\x5f\x31\x4b\x40\x1c\x84\xb9\x64\xb8\x2c\xb5\xdd\xf3\xb9\x89\x19\xff\x54\x88\xb4\x9c\x04\x2d\xba\xb4\xe5\x72\x40\x12\xa2\x4f\x9b\x6f\x61\xed\xa2\x35\x97\x09\x4c\xd2\x49\xc6\x0d\xb3\x75\x94\xca\x09\xbc\x64\xe0\xae\x72\xf1\x3d\xee\xca\xba\x4e\x91\xba\x0c\x4e\x4d\xaf\x38\x8b\xdf\xad\x39\x25\x1f\x09\x4a\xc3\x1e\x8b\x16\xe9\xc8\x0a\xaf\x95\xd9\xcc\x4a\x4b\x96\x99\x31\xa0\x2e\x48\x5d\x21\xae\x23\xa2\x31\xa4\x80\x16\xda\x6c\x4d\x00\xcd\x81\xd7\x34\xd4\x4c\x61\x93\xad\x9a\x87\xdc\xdf\x23\x9b\x86\x2a\x61\x67\x05\x4f\xd8\xc5\x4f\x27\x17\x3f\xbd\x61\x4b\x61\x44\x6b\xa9\x97\x38\x4a\x60\x3b\x48\xd9\x60\x4c\x1e\x75\xa7\x5b\x22\x35\xfc\x3c\x72\xb3\xe7\x59\x39\x32\x62\x81\x12\xa8\x02\x4a\x00\x14\x67\xe6\x54\x2b\x9f\xcd\x59\x32\x2b\x33\x96\xd8\xf5\x86\x29\x93\x66\x83\x0b\x65\x7f\x00\xc2\x89\x61\x6f\x13\x76\x66\x57\x79\xc1\xad\x57\x96\xdf\x9a\xa1\x58\xf3\xab\xaf\xf9\x12\xaf\x9b\x2b\x22\x5b\x73\x91\x33\x5e\x17\xc3\x4a\x67\x0b\x71\x03\x9c\xe2\x84\x7d\xa3\x32\x0c\x42\xae\x7b\xbf\xdd\x72\xa3\x10\xe6\x56\x47\x0b\xe1\x8c\x3e\x9e\xf5\xc4\x70\xef\xb9\xcc\x17\xc5\xd4\x30\xee\x58\x45\xba\xe4\xde\xe3\x44\x45\x3c\x19\xd3\xba\x4e\x16\xf9\x32\x29\xa7\x69\x2e\xae\xcf\xc5\xec\x88\x90\x9b\x68\x64\x6b\xa8\x2c\xc3\x73\xfc\x73\xc9\x37\xb0\x32\x71\x6c\xeb\x02\x09\x36\x2b\xcc\x6d\x6b\x0a\x90\xbc\xcf\x6a\x40\xc1\x4f\x81\x41\xc9\xdc\x84\xb1\xeb\x54\xe4\x3b\x54\x8d\xe8\x67\xf7\x31\xfb\xbc\xdd\xe2\x63\x5a\x34\xd4\x1d\xa4\xf8\x86\x24\xf1\x44\x72\xd3\x42\xe7\xa0\x1d\x1b\xb1\x81\xb3\x14\x84\x1c\xbf\x01\xc5\xc4\xa7\x02\x0f\x31\xf0\x36\xa7\xf2\xc1\xa7\xc8\x80\x8b\x88\x49\xc9\x06\xe4\x9b\x44\x19\x8e\xa4\x31\x84\xb3\x20\xfd\xdc\x74\x3e\xc6\x7e\xc7\x19\x5a\x09\x78\xc6\xcc\xe5\x8a\x78\xe6\x4a\x3e\x65\xc8\x17\x3e\xfa\x4a\x09\x2f\x72\x65\xa6\x11\x61\xc6\x82\x5a\x15\x49\xcb\x28\x2c\x56\x98\xa7\x76\x78\x5a\x90\xed\x74\x05\x4e\x49\x66\x07\x01\x7c\xd7\xf5\xb4\xa0\x38\xf8\xd2\xb5\x09\x45\x91\x70\x69\x42\xc4\x1a\x73\x41\x8c\xc6\x9e\xce\x47\xe6\x6a\x62\x81\x34\x02\x92\x32\xff\x23\x28\x72\xc2\xf3\x9f\x69\x8f\x8f\x50\xc4\x48\x0a\x77\x8c\x06\x6e\x95\x31\x9b\x57\x64\x14\x12\x75\xcb\x44\xaa\x8a\xf9\x82\x04\xb4\xdc\xc9\x8b\x6e\x3b\x9c\x21\x3d\x9c\x07\x4f\xd9\xfb\xdb\x54\x64\x1f\x4a\xb0\xac\x3a\x9a\x5b\xa4\x32\xd4\xcb\x40\x08\x48\xcb\xd5\x1c\x1c\x4e\x4f\xda\xe1\x34\xf8\x65\x3e\x17\xbf\x4c\xcf\x20\x0f\x17\xca\x11\x84\x49\x54\x6c\xd9\x70\x7f\x4d\x83\xb6\x92\x08\x77\x8f\x24\x30\xe4\xa5\x33\x8e\x40\x6f\x73\x39\x58\x46\xf6\xb9\xc4\x12\xc0\x64\xee\xc1\xcb\x63\xfa\xed\x13\xd8\x58\xb6\x6b\xe5\xfc\x8d\xfb\x60\x84\x2f\xdf\x42\x57\x97\x06\x7a\xb0\x80\xc4\x88\x7a\xa0\xfe\xdd\xe5\x5c\xa1\xd4\x6a\x26\xf2\xa1\x99\x24\x56\x5d\x4b\xe5\x67\xab\x75\x36\x49\x73\x29\x8b\x6a\x82\x93\x2b\x75\x16\x0e\x28\x7f\xeb\xb8\x30\x88\xc8\x65\x34\x6b\xa3\x28\xd9\x78\x93\x7a\x60\xf0\xf9\x59\x2f\x3b\x07\x5b\xd1\x50\x0e\x1c\x6e\xb5\x07\xe4\x9f\x8a\xc5\xf9\xdb\x8e\x99\x62\x23\x3b\x3f\x58\x6b\xc7\x17\x68\xa6\xc8\x1b\x8c\xaa\x29\xc5\x6d\xb0\xce\xa8\x29\x07\x66\x31\xb0\xc7\x00\x99\x8f\x8c\x84\x03\x0a\x97\xd5\xea\xf5\x46\x43\x1c\x85\x9f\xb4\xa9\x17\x3c\xf3\xd7\x48\x2d\x45\x1a\x25\xa8\x8b\x23\x48\x67\x6c\xb8\xf9\x37\xa5\x61\x6b\xe4\x7f\x0e\xa5\x00\x72\xa8\xb8\x0a\x5e\x66\x16\x80\x3c\x68\xfe\x75\x6a\x14\x59\x6b\x0b\x0e\x87\x12\xbe\xee\x0d\xc2\x7f\xff\xcc\x68\x9d\xff\xb6\x10\x81\x1a\x2b\xb5\x2e\x84\xf6\xec\x6b\xf6\xfd\xb0\x7f\x33\x28\xf4\x6e\x59\x3d\x0e\xc7\xe9\xdc\x3e\x28\x43\x92\x4d\x04\x05\x6e\xb7\xba\xb9\x0a\xc7\xe6\x38\x04\x2b\xb4\x15\x00\xce\xdf\x96\x06\xae\xca\xb7\x41\x02\x07\x6f\x96\xce\x79\x1a\x8f\x98\x98\xcc\x27\xe5\x9c\x80\x68\x08\x0e\x36\x04\xb7\x50\xd5\x5b\xe4\xe2\x96\x77\x3f\x7d\xb9\x5a\xa9\x44\xcd\x37\x7f\x15\x9b\x2e\x63\x87\xdf\xb4\x1a\x64\xf3\xd1\x3c\x23\x9d\xb3\xbc\x35\xd6\x64\x06\xdb\xc2\x3d\x47\x05\x10\x2b\x9e\x80\x24\x08\xb4\x90\x6c\xa9\xb0\xc6\x2e\x65\xda\x15\xe1\xb6\x5f\xc6\xcf\x58\x29\xbd\x5c\x34\xcd\x8e\x69\xd5\x22\xb5\x5c\xf1\x74\x33\x89\xd4\xf2\xe4\xef\x2a\x15\x88\x3e\xea\x3f\x35\x5a\x89\x4a\xaf\x8f\x9e\xf7\x19\x96\xdb\x77\x37\x26\x77\xfa\xc2\x31\x71\x50\xc9\xe0\x1a\x59\xc9\x36\xf0\xfb\x88\x4f\x2b\x85\x7a\x9a\xae\xbd\xaa\x59\xc2\xa7\x22\x81\xbc\x70\x23\xcb\xa9\xdb\x34\x50\x13\x6a\xa7\x1a\x90\x51\x5d\x27\x68\xca\xf0\xed\x90\xf5\x93\x0a\xdb\x54\x09\x5d\x97\xd1\xc2\x7e\x58\xe6\x25\x78\x67\x9e\x49\xb1\xf6\xa8\x8b\x37\x12\x74\xa3\x72\xad\xd9\x94\x47\x1f\xed\x79\x77\x76\x51\x50\xd8\x56\x4a\x97\xfe\xa7\x58\xce\x40\x31\xca\x91\x3e\x98\x37\xcc\x90\xca\xc7\xc1\x4a\x4c\x4a\xb4\xe0\xa9\xb0\xc6\xae\xd2\xb7\x66\xe1\x60\x9d\x11\x9f\xde\x7d\x52\x75\x89\x81\x69\xd5\x89\x7b\x97\x48\xd5\x5f\x5c\xe9\x0e\x7b\xb4\xad\x5a\x82\x1e\x3d\x75\x7e\x08\x79\x7c\xda\x1a\xe8\x5d\x42\x1e\xeb\x22\xf3\x61\x02\x1e\x43\xbd\x62\x08\x77\xfc\x0d\xab\xd5\x43\xb8\xe3\x03\xab\xc0\xf7\x15\xec\xe8\x0c\x0e\x9d\x7c\x05\x02\x1d\x77\x52\x81\x7b\x58\xc4\xbb\x99\x10\xbd\xdc\x05\xcd\x63\x3f\xe1\x97\xdc\xf1\x87\xe9\x0d\xc7\x5a\x8b\x01\x10\x06\x62\xc5\x52\xdf\x08\x6d\x9a\x95\x23\x2e\x69\xab\x91\xb4\x8a\xd4\xcd\x61\x44\x70\x09\x20\xb1\x44\x6a\x49\x52\xcb\x81\x6a\x56\xb6\xda\x2a\xee\xec\x46\x59\xf1\x3c\x5a\x8c\x97\x22\x9b\x8b\xf1\x47\xb1\x01\x05\x33\x14\x5c\x9a\xdf\x00\x6b\xbe\x98\x6f\xd0\x5a\x96\xcd\xf7\xb0\x30\xd9\xad\x3c\x80\x44\x64\x7d\xc3\x1d\xd0\x62\x7e\x33\x86\xbf\x4d\x49\x38\x71\x81\x16\x14\xc3\x47\xc0\x17\x6a\xe6\x94\x34\xf3\x18\x45\xe5\xd2\xe3\xfa\x13\x39\x33\xad\x53\x7d\x93\xf2\xa5\xf5\x9d\x58\x29\x9c\x9c\xde\xfe\xb7\x45\x53\xa2\xe7\x1f\x6b\xb6\x0b\xe7\x5b\x87\xa1\xf0\x28\x82\x88\x53\x70\x45\x8a\x3c\x8a\x51\x4d\x61\xa5\x49\x13\xc2\x99\xfa\x08\x72\x49\xa2\x6e\x71\xe8\xef\x3e\xad\x78\xda\x47\xa4\x6b\x78\xc5\x88\x64\xb7\x3e\x42\x54\x6d\xc4\xe6\x25\xab\x45\x0b\xf3\x5a\x4b\xf1\x94\xad\xbe\x78\xe8\x45\xc4\x57\x28\xe3\x57\x27\xd3\x50\x62\x47\x18\xe6\x17\xe5\xa5\xca\x92\xbb\x57\xcd\x60\x33\xe1\x7c\xd0\x1d\xdb\xc6\xde\x79\x21\xc8\xe4\xc9\xb2\x02\xad\xd5\xce\x4a\x45\xd7\x29\x30\x01\xe1\xd3\x13\x76\x96\x92\x06\x43\x53\xd8\x5c\x0a\x23\x87\xab\xec\x4a\x64\x4b\xcb\x0c\x79\xaa\xc9\x91\x05\x75\x15\xca\xde\x32\x9a\x0e\x78\xce\x42\x5d\xbf\x6f\xc8\x28\xf9\xce\xcb\x10\x1c\x0a\x9d\x38\x10\x71\x8a\x54\x06\x97\xb0\x69\x7a\x77\x92\x0f\x07\x85\x63\x70\x79\x0d\xb2\x79\xaf\x4b\xf8\x19\xe3\x8a\x41\x70\xf6\x7b\x18\x67\x17\xe9\x7f\xdb\x4c\xc8\x1b\x18\xb6\xa5\x04\x15\x86\x95\x09\x72\xf4\x97\x71\x71\x10\x23\x53\x8e\x80\x8c\xb2\x3f\x5f\x1f\x65\x0a\x2d\x8a\x5a\xcd\xf2\xeb\xa3\x5f\x26\xec\x07\x95\xdb\xd0\x6a\x11\xb3\xb1\x0d\x4f\x47\x5e\x7e\xf1\x13\x61\x00\x6a\xb9\x5c\x25\x1b\x36\xe3\x32\x61\x12\xfd\x42\xc0\xc7\xe1\xcd\x87\x31\x60\xf9\x71\xff\x4e\xec\xa9\x2e\x6d\x19\x9b\x7f\xd1\x2c\x46\xec\x34\x94\x2a\x44\x55\x29\x6d\x95\x85\xb5\x2a\x22\x18\x06\x82\xdb\x4d\x24\xd7\x8a\x25\xca\x18\x8d\xb1\xde\xb6\x9b\x2d\x16\x70\x55\x29\xf8\x1e\x42\xd8\xb9\xcf\x75\xa2\xd7\x95\x03\x0b\x33\xfd\x6d\x05\xbb\xca\xf0\xf7\xb0\xc7\x67\x22\x4a\xb8\x5c\xf6\x4b\x89\x39\xfc\xc9\x07\x3e\xe9\x8d\x20\x84\xd1\x7b\x2b\x20\x29\x69\x0f\x90\x3b\x18\x07\x15\xfa\xfd\x3e\x8c\xb1\x6a\x9a\xd9\x4f\xd5\xf6\xde\x7a\x2f\xd4\x6d\x6d\x86\x6f\xcc\x88\x7d\x70\x52\x7f\x39\x0c\x4f\x9e\xaa\x22\x8d\x27\x0c\x4d\xe9\x10\xee\x3a\x62\xc1\x47\xce\x6d\xe8\xaf\xb9\x98\x98\x7b\x70\xaf\x72\xd7\x5d\xeb\x60\xf9\xa7\xf6\x89\x59\x2b\x02\xbd\xec\xd0\xe6\x0a\xbf\xf3\x0e\x5b\x78\xb5\x69\x93\x41\x3c\xb8\x10\x03\x20\xde\x13\x97\x4f\x77\x2a\xbb\xec\x1b\xc4\x43\x3d\xfc\xe0\xe6\x99\xe0\xc4\x0f\xc6\xf1\x41\x00\x1f\x8c\xe3\x8f\xc3\x6e\xee\xc5\x42\x8e\x1c\xfd\xcc\x65\x70\x6f\x61\x39\xd5\xa6\x25\x16\x1e\xe6\x5c\xe6\xe8\xf4\x76\xb9\xd4\x99\x4d\x8a\xf7\x6c\xe7\x86\x12\xdb\x18\x94\x13\x77\x11\xcb\x1f\xc1\x48\x7d\x9d\x5e\xa7\xb5\x8f\x0d\x78\x72\xbf\x52\xbe\x36\x90\xfd\xcf\x85\xec\xdf\x19\x4f\xee\x57\x0d\x83\x56\xa5\x48\xfb\xa1\xa1\xc5\x42\x43\x96\x31\x12\xc9\x13\xa2\x90\x0e\xac\x61\xc1\xd7\x52\x65\x13\x76\x41\x79\x2a\x2e\xda\xcc\x8b\x90\xc2\xd8\xba\xb6\x10\x6d\x00\xe0\x38\xe8\x3c\xb1\xc7\x8e\x1d\xcf\x0b\x6d\xa7\x58\x23\xdd\x74\xa9\x1a\x66\x05\x65\xd6\x37\x16\x11\xc4\x5e\xf3\x1a\x03\x71\x80\x08\x23\x26\x27\x62\x82\xaf\x56\xf1\x4b\x3e\x13\x74\xb9\x1a\x43\xbe\x6f\x8e\xdf\xa1\x68\x36\x35\x6f\x52\x36\xdb\x18\xf6\xc0\x9d\x9f\x34\x77\xde\x5b\xeb\xac\xee\xf7\xe1\x15\xcf\xda\x4d\x18\x94\xcf\x41\x0a\x19\x94\xcf\xc7\x63\x45\x0f\xa2\x80\x62\x42\xfc\x0e\x0c\x89\x32\xe8\xbd\x3c\x9e\x32\xcf\xc1\x73\xb0\x4c\x85\x83\x48\x9b\xb0\x0f\x00\xd1\x93\xaa\x5b\xb4\x7c\x3b\x8b\x7b\x25\xfa\xc5\x61\xaa\xad\x25\x77\x02\x87\x7d\x9a\x8d\x98\x4c\x29\x89\x9c\xdd\x0a\xb8\xe8\x18\x1f\xc2\x13\xad\x42\x10\x1c\x08\x6b\x59\xa9\x58\x4f\xd8\xbb\x4f\x3c\xca\xa9\x16\xd8\x52\x2c\xa7\x25\x80\x85\x16\x7d\xb2\x66\xb1\x5f\x32\xc4\xef\x23\xd2\xda\xe0\x86\xaa\x9b\xa1\x53\x9e\xad\x7e\xd9\xa6\x5d\x43\x58\x4c\x0d\x77\x29\x15\x91\xd0\x9a\x67\x9b\x20\x01\x65\xe5\x3e\xea\x30\x22\x7c\xf4\x9f\x95\x8a\x9f\x69\xbb\x74\x3e\x40\x42\xd5\x61\xb1\x72\x92\x24\x6c\xa0\x97\xba\xfd\xbd\x9c\x13\x84\x9b\xf5\x4d\xb0\xf3\xbc\x1c\x6a\x9e\xf1\x54\xe3\x9b\xd0\x99\x76\x95\x11\xdb\x3e\x8d\xd9\x32\x4d\xab\xb5\x05\x04\x6d\x07\x0c\xb4\xb8\x7d\xe4\x2d\x3e\xbd\xca\x50\x7e\xe8\xce\x25\xfb\xc1\x8b\xc1\xaa\x6f\x81\xdb\xa0\xbd\xdd\x38\xbb\xc7\xb7\x35\x6a\x53\x3b\x5c\xfa\xed\xa0\x94\xad\x2a\x48\x5f\x8c\xca\x4e\x77\xe9\x99\x45\x4d\x6c\x47\x45\x0f\x41\x50\x60\xc7\x21\x1f\x6f\xc1\xd3\x38\x11\x56\x42\x25\xd5\xa8\x96\xed\xe7\x27\xe9\x55\x92\xf3\xf6\xcc\xc3\xeb\x71\x4e\xae\x5c\x80\x99\x4d\xe8\xb2\xf8\x83\x35\x22\x6a\x64\x93\xdd\xc7\xa1\xab\xd4\xbd\x1f\xcd\xea\xe6\x17\x5b\x85\x81\x1a\x87\xf0\x66\xd6\xc6\x23\x76\xe7\xe1\xee\xe4\xd4\xe7\xdb\xb4\x13\x5d\xcc\x7e\x9f\x4b\x54\x55\xfe\x3b\xaf\x11\x2a\xee\xf6\x22\x39\x35\xfe\x00\x37\xe8\x5d\x96\xa9\xda\x25\xda\x7d\xa3\xb1\x9b\x6d\xbb\x7b\x05\xaa\x99\xce\x99\x30\x4d\x99\x48\x23\x40\xb9\x34\x04\x97\x50\x15\xab\xe0\x9e\x50\x4b\x93\xa7\x9b\x80\x7e\x43\x4a\x3c\x90\x6b\x64\xc5\xfd\x4c\x14\xbb\x1a\x26\x46\xb5\xe3\xd2\xa5\x95\x9c\x07\xf4\xa5\x44\xdc\xd3\x45\x64\x18\xec\xac\x48\x92\x8d\x27\xd9\x3c\xd0\x8c\xf6\x08\x7a\x75\x47\xe9\xfb\x16\x9d\xe0\x5e\xe3\x73\x7e\x5c\x21\xb6\x1d\xad\x19\x4d\x77\xe4\xe7\xba\x06\x62\x05\x15\x85\x08\xd1\xbf\xaa\x89\xd3\x35\xd4\x58\x20\x26\x16\x5c\xc1\x21\x4f\xe6\xca\x68\x76\xda\x5c\xa0\x34\x67\xff\xc6\x65\xfe\x8d\xca\xce\x9c\x91\x0b\xf1\x24\x1d\xee\xe5\xe3\xed\xdf\xb6\x40\x22\xb4\xc4\x3d\xa1\x4b\xdd\x60\x1a\xbc\xeb\xa5\xbe\x67\x6b\xa3\xbb\xf0\x07\xa3\xfc\xd5\xed\x68\x26\xf7\xd0\xaa\x74\xd6\xf1\x74\x0b\xa5\xb4\x04\xc6\xad\x41\x0f\x7a\xbf\x34\x72\xfe\xbc\x4b\xb4\xb8\xcc\xdd\xb6\xc9\xc4\xae\x78\xeb\x40\xca\xdb\xf1\xb6\xb2\x29\xb4\xbf\x64\xa2\x21\x5c\xaf\x44\xcd\xe7\x22\x1e\x31\xa3\x77\x39\x6e\x9e\x2a\x27\xf7\x33\x2d\x52\x2d\x73\xb9\x0e\x74\x94\x7d\x32\xca\x65\x5d\x86\xba\x83\x2d\xe3\x4a\x56\x13\x53\xaa\xf7\x40\x2e\x85\xb7\x52\xb7\x5c\xfb\xab\xb5\xf5\x10\xee\x7b\xa8\x42\x18\x8d\xae\xc3\x15\xb4\x26\xeb\x19\xe6\xb5\x3b\x0b\x59\x22\xc1\xa8\x15\x62\x65\x78\xb0\x81\x3d\x8e\x58\xd4\x03\xc3\xf9\x7b\xfe\x49\x2e\x8b\x25\x4b\x0b\x50\xaa\xd5\x8c\x15\xa9\xfc\x5b\x51\xaa\xe0\x4b\x9e\xf2\x79\x88\x7a\xe1\xcb\xe6\xa4\x85\x17\x3a\x04\x34\x3b\x0b\x04\x45\xa9\x11\x05\xd6\x49\xc1\x88\x33\x07\xb0\xda\xe5\x5b\x88\x72\xee\x2a\x88\x23\x2a\x1f\x75\x1c\x89\x11\x9c\xcc\xfc\x56\x46\x84\xc7\x0c\x29\xf7\x59\x91\x08\xc6\x57\xab\x44\x5a\xd0\xed\x70\xfc\xee\xfb\x80\x56\x11\x33\xbe\x54\xe6\xfc\x17\x49\x2e\x57\x89\xc0\x12\xb8\x04\x0a\xe6\x00\x24\x08\x73\xcc\xe7\x70\x90\x64\x6e\xdd\xed\x00\x97\x46\xef\xb8\xac\x8f\x72\xfd\x5c\x30\x2a\xc1\x1d\xda\xa9\x15\x29\x44\x1c\xd6\x20\x19\x0e\x55\x33\x77\xe7\x93\x8b\x05\x3b\x9f\x62\x21\xbf\xde\x70\x78\x41\xb9\x1e\x0f\x10\xef\x9c\x10\x32\x00\x0d\xcf\x50\x3b\x8b\x88\x47\x9f\xe8\x01\x8a\x47\x18\x0b\x21\x3e\x2a\x0f\xb0\x7b\xf2\x0a\x4c\x1e\x8e\x4d\xfb\xe5\x1d\x6a\x36\x6e\xc7\x35\x09\x22\x61\xa8\x59\x38\x78\xb1\x86\x18\x93\xc1\xbb\x33\xd4\x2c\x1c\x6a\x16\x3e\x76\xb0\x4e\x45\x20\x18\x0a\x17\xf6\x2e\x5c\xb8\x7f\x21\xe5\xca\x9a\x0f\x25\x0c\x7f\x5b\x2c\xf8\xe9\x95\x30\xac\x6a\x05\xad\xa6\xc2\x21\x7c\xe4\x37\x24\x60\x0c\xe1\x23\x4f\xad\x8e\xe1\xc1\x58\xce\x50\xd1\x70\xa8\x68\x38\x54\x34\x1c\x2a\x1a\x0e\x15\x0d\x87\x8a\x86\x43\x45\xc3\xa1\xa2\xe1\x50\xd1\x70\xa8\x68\x38\x54\x34\x1c\x2a\x1a\x0e\x15\x0d\x87\x8a\x86\x5e\xc8\xc2\x50\xd1\x70\xa8\x68\xf8\x59\x57\x34\x7c\x9c\x9a\x01\xfb\x47\x6d\x74\xd4\x25\x7c\xfb\xee\xe2\xc3\xbb\x37\x67\x57\xef\xde\xb2\x31\x0a\xa5\x60\x86\x72\x65\xee\x3c\xe8\x7f\x69\xae\xf3\x2a\x13\x91\x4d\x32\xa6\xaf\x9d\xac\x4f\x4f\xa8\xcd\x84\x5d\x0a\x3c\xbf\x99\x48\x04\xd7\xc2\xa8\x1a\xa4\x15\x56\x0f\x82\x57\x10\x6f\xa8\x89\x38\xd4\x44\x1c\x6a\x22\x7e\xd6\x1e\xac\xc1\xc7\xf3\xb9\xf8\x78\x7e\x45\x35\x11\x03\x26\x38\x14\x46\xdc\xa1\x30\xe2\x01\xdc\x46\xbf\x9d\x12\x89\x38\xe5\xa7\x52\x27\x71\xa8\x89\x38\xd4\x44\x1c\x6a\x22\x0e\x35\x11\x87\x9a\x88\x43\x4d\xc4\xa1\x26\x62\x0f\x21\x65\x28\x8c\xf8\xdb\x51\x43\x9f\x5a\x61\xc4\xd0\x4c\x37\x04\x51\x0e\x0a\xf6\x10\x44\xf9\xe0\x7a\xf0\xfd\x87\x50\x0e\x75\x12\x9f\x78\x9d\xc4\x26\xab\x45\x4f\x6a\x1c\xfc\xf4\xf9\x15\x4b\xc4\x95\x19\x2a\x26\x0e\x15\x13\xf3\xa1\x62\xe2\x50\x31\x71\xd0\x44\x06\x87\xd8\x20\xaf\x0f\x15\x13\x87\x8a\x89\x43\xc5\xc4\xa1\x62\xe2\x50\x31\x71\xa8\x98\xf8\x64\x4a\x58\xdd\xa3\x09\x63\xa8\x9d\xf8\x1b\x96\x54\x9f\x68\xed\xc4\x06\xc3\xc4\x60\x3f\x1f\xe4\xf1\xc1\x7e\xfe\x38\xdc\xe7\x9e\x8d\xe8\x43\x29\xc5\x81\xcd\x0d\x06\x99\x81\x01\x0c\xa5\x14\x77\x08\x46\xfd\xec\xeb\x29\xb6\x4c\x76\x28\xaa\x88\xcf\x9f\x5c\x51\xc5\x43\x4b\x01\x43\x79\xc5\xdf\x32\xc7\x7e\xba\xe5\x15\x5b\x64\xd6\x41\x3f\x1d\xc4\x93\x41\x3f\x7d\x3c\xce\xf4\xc0\x3a\xea\x50\x6d\x11\x67\x3d\x54\x5b\x1c\xaa\x2d\x7e\xbe\xd5\x16\xb7\x28\x5c\x43\xc9\xc5\xb2\x93\xa1\xe4\xe2\xee\x9c\x63\xab\x80\xf0\x99\xd6\x5d\xdc\xaa\xd2\x7f\x16\xc5\x17\xfd\x19\x0e\x15\x18\x87\x0a\x8c\x8c\x35\x7c\x6c\xa8\xc0\xf8\x2b\xac\xc0\x78\xe8\x9b\xfd\x9b\x2e\xc3\x58\x5f\xcc\xa1\x16\xe3\x50\x8b\xf1\xd0\x12\xfb\x50\x90\xf1\xb3\x2e\xc8\x28\x93\x5f\x75\x19\x46\x43\x92\x21\x15\x48\x8f\xcd\x75\x02\x8d\xbb\xbc\x5c\x41\x03\x73\xcb\xde\x14\x3a\x57\x4b\x7b\x40\xdf\x98\xa9\xa5\x6f\xdd\x55\xdd\x96\x7c\xb8\xf5\x45\x0f\xf6\x1b\x3c\x27\xc5\x32\xc5\xf3\x0d\xe3\x01\x50\x3c\xb6\xca\x24\x56\x0c\xe8\x91\x6b\x18\x7c\x7b\x6b\xbe\x61\xf9\x27\x5e\xb6\x45\xb1\xe4\x46\x4e\xe1\x31\xc4\x80\xfa\xbf\x5b\xbf\x09\x8e\x6f\x0f\x8a\xe7\x76\x76\xdb\x88\xb0\x11\x61\xb7\xaa\x15\xca\x73\xec\xfd\x4a\xa4\x67\x17\xe7\x18\x9a\x5c\xd2\x46\xb2\xe5\x94\x83\x82\xf3\xff\xcc\xa8\xc3\xcf\x98\xd7\x13\x5c\x03\x87\xa6\xb2\xca\xe4\x92\x67\x1b\x26\x63\xc3\xc1\x67\x12\x4a\x2d\xc0\x9a\xe7\x8a\x71\xad\xc1\x87\x95\x92\xc5\x5d\xdb\x66\x00\xcc\x4b\xed\x48\xe9\x71\x24\x09\x00\xb6\x00\x99\xd1\xb3\x19\x2f\x8a\x29\x20\x78\xbc\x3f\x3b\x3f\xa1\xf1\x8f\x03\x27\xf0\xc9\x34\x51\xd3\x93\x25\xd7\xb9\xc8\x4e\xc8\x4e\xaa\x4f\x5e\x4e\x5e\x4c\x96\xf1\x17\x46\xc0\x1d\x83\x61\x1d\xa1\x29\x08\xe6\x7f\xf7\x55\xff\x77\xad\xd2\x0b\x9e\x2f\x3a\xd6\xdd\x36\x23\x9a\x0b\xe8\xa1\xec\x7f\x5c\xbe\xff\x81\xad\xcc\xd3\x63\x10\x62\x50\xa8\xcd\x32\xbe\x31\x34\x07\x26\xf1\xbc\xc4\x83\x15\x6b\x9e\x14\x20\xfc\xf2\x39\x97\xa9\x91\xbb\xa0\x04\x07\x1c\x7d\xcf\x1d\xa2\xd8\x2a\x53\x71\x11\x21\x3b\x42\x17\x4a\x75\x23\xf7\x30\x58\x74\x1b\x2b\xc0\x4c\xd2\x74\xcc\xe1\x07\x6b\x17\xdc\x7b\x04\xab\x4c\xaa\xac\x1b\xf7\xda\x36\xa3\x33\x4e\xa4\x8c\x4e\x35\x49\x33\x99\x48\x38\xca\x18\x4b\x43\x50\x79\x1a\x89\xca\xfd\x03\xb1\x93\x13\x3b\x00\x70\x5c\x3d\x61\xdf\xa9\x5b\x91\x11\xed\xa5\x88\xf8\x92\x6d\x2c\xe4\x1c\x8a\x8b\xd2\xe7\x27\x0c\xa9\x10\xd9\x17\x49\xfc\x51\x4b\x99\x13\x40\x2f\xf0\x59\x11\x33\x44\xaf\xd7\x91\x48\x79\x26\x95\x1f\x97\x8e\xb8\x48\xdc\x75\xc9\xe6\x10\x7f\x0f\x0c\x30\x65\x2f\x0e\x43\xd8\x7d\x91\x09\x1b\x6d\x05\xfd\x31\x04\x02\x17\xb6\x37\xcd\x78\x42\xf7\xb6\xa7\x12\x50\x85\x6d\x81\xfe\x9a\xee\xfc\x9e\x4a\xc2\x1d\xb9\x62\xba\xae\x39\xec\xbb\xf8\xa1\x7d\xc5\xcb\x69\x5e\xa8\x5b\x42\x72\x07\xd7\x7b\x89\xc2\x63\x97\x9c\xea\x1d\x7d\xe8\xc1\x11\xbd\x84\xef\x6d\xa7\xc7\x36\xf3\xf8\xb1\x19\x45\x85\x82\xb9\x9b\x65\xc6\x05\x05\x7e\xa0\xe6\xa4\x1b\xd7\x84\x9d\x61\xc2\xaf\x2d\xd9\xc2\x33\xf1\x9a\x8d\xd9\xcd\x0f\x2a\x15\x37\xaf\x81\x47\xd9\xb7\x33\x54\x2c\xa1\x8a\x0c\x55\xbe\x71\xf1\x0e\x58\x60\xc8\x29\x20\xb9\x02\xec\xe7\x74\x43\x58\xd8\x24\x83\x51\xc9\xe6\x70\x88\x13\xf3\xb9\x7f\x13\xd3\x85\x52\x1f\x6f\x5e\x33\x73\x0d\xd0\xdb\x8c\x19\x5c\x58\x03\x49\x81\x02\x67\x3d\x55\xb7\xd8\x1a\x60\x97\x2c\x12\xac\xdd\x95\x09\x3b\x2b\xeb\xa8\x78\x6a\xcf\x75\xca\x40\x08\x14\x22\xa6\x42\x0d\xe8\xeb\x5e\x79\xea\x95\x2b\xc5\x62\xd6\x74\x02\xb6\xd4\x6c\x2d\x7e\x4c\x3f\xa6\xea\x36\xfd\x06\xdd\x2a\x28\xd1\x52\x41\x15\x33\x6b\x68\xeb\x7d\xdf\x1b\x5c\xd5\xf9\xd5\x9b\x3c\x53\x1f\xbb\xea\x5c\x3b\xde\x05\x5a\x74\xef\x12\x6c\x53\xca\xec\xbc\xea\xa7\xde\xba\xc9\xca\x45\xb0\x3b\x34\x61\xae\x06\x17\x80\xd7\xdf\xd8\x53\x7b\xe3\xd5\x40\x71\x9b\xbf\x4f\x08\x94\xbd\x2c\x8f\x41\x3d\xf6\x90\xa6\x3d\x39\x3a\x70\xec\x7a\x01\x18\x81\xb1\x1e\xc1\xcd\x5c\xb5\x73\x73\x39\x68\x90\x8c\x9d\xe7\x1a\xa5\x01\x8b\xb3\x68\xb1\xc9\x51\x98\xbc\x2e\x5e\xbc\x78\x15\x4d\xe0\x78\x42\x51\x18\xf3\xb7\x98\xf8\x8f\xc1\x7f\x4e\xcf\x87\xe8\xa6\xa7\x1c\xdd\x34\x04\xfc\x7c\x2e\x01\x3f\x5e\x3c\x72\xe3\x27\xf7\x89\xf8\x3d\x10\x15\xeb\x07\x8a\x5c\xa1\xff\x50\x0b\xc3\x55\xb7\xf1\x55\x4d\xb8\x91\x7c\xb5\x12\xbc\x45\x46\xde\x2f\xe2\xf7\x50\x93\xed\x8e\x0b\x26\x47\x61\xe8\x04\xe7\x51\x5e\xf0\x04\x9c\x88\x25\x28\x6e\x1b\x5b\xd8\x9d\x9f\x3d\x70\x48\x6f\xb8\x5c\x5b\xe1\xb1\xda\xe6\xd8\x1e\x42\xd5\x3f\x7a\xea\x40\x7b\xfa\x46\xa5\xf1\xbe\xfc\xd8\xbd\x5b\xc6\xd4\x90\x42\x54\x6a\xdb\x45\x06\x42\x7d\xe4\x9a\x5a\x0e\xb6\x52\x7d\x12\x7a\x12\xae\xf3\xab\x8c\x83\x4d\x5e\xa5\x57\x0f\x6c\x54\xaf\x7f\x1d\x1d\x4e\xb9\x35\xb6\x97\xd3\xca\x5d\x33\x23\x2a\x1b\x92\xaf\x52\xe7\x37\x07\x59\x1c\xc4\xfa\x16\x67\x6f\x3f\xcf\x08\xb5\xf2\x6c\x1c\x63\x67\xe3\x70\xbf\xe1\xcd\x2b\x3d\x28\x9a\xb0\xcf\x70\xe0\x6e\x94\x7b\xa5\xfb\x73\xdd\x29\xc8\x60\x23\x1c\x22\x5a\xa4\x47\x66\x25\xc6\xb7\x2a\x8b\x47\x25\x0f\x63\xd4\xae\xb4\xca\xd0\x42\x3e\xd3\x07\x18\x69\x33\x95\x6c\x21\x55\xd5\x08\x87\x60\x38\xc0\x8c\x0d\x27\xbe\x82\x22\x66\xdf\xa0\x0e\x43\xea\xcd\x3e\x6e\xa1\xfe\x36\x8e\x2a\x56\x83\x37\xa6\x2b\x30\x40\xc8\x34\x4a\x8a\x58\xb0\x77\x3a\xe7\x54\x1d\x6b\xc4\xa0\x20\xe1\x59\x14\x89\x55\x4e\xfe\x86\x2b\xc0\xd8\xe5\xa1\x71\x79\xfb\x80\x7b\x52\xde\xaa\x5d\x82\x96\xfd\x71\xf5\x8a\x2e\x34\xda\x2d\xaf\x85\xb8\x7c\xad\x5a\xc8\x90\xdc\xf0\x6b\x10\xff\xfb\x23\xd5\x62\x49\xb4\x34\x96\x6b\x19\x1b\x39\xa5\x6b\xe3\x0f\x92\xec\x70\x28\x2d\xda\xfb\xea\x90\x12\xf1\x9b\xd5\x90\x5c\x4a\xc4\xce\x34\xfc\xc1\xf3\x0e\xee\x2e\x3e\x77\x64\x21\x3c\xb8\x08\x0d\x2c\x77\x0f\x96\x03\xef\x35\xc4\x0b\x03\x5d\x86\xd1\x50\x85\xc7\x2e\x35\xa2\x3d\x10\x82\xe7\x62\xae\xb2\x6e\x48\xca\xb2\x61\xc8\x03\x61\xd7\x44\xec\xeb\xa7\xe0\x5a\xa9\xf8\xfc\xa6\x22\x51\xe9\x1c\xc6\x8d\xa5\x0f\x9e\xf1\x24\x79\xf6\xbc\x8c\x62\x2e\x6b\x90\xca\x14\x2c\x72\xb1\xd4\x91\x5a\x8b\x6c\xc3\x62\x15\x15\x90\x43\x86\x0c\x07\xe2\x1e\xa6\x1b\xe7\x9e\x85\xe0\x38\x84\xd8\x97\xe9\x5a\x11\x66\x25\x83\xe2\xde\x37\xe6\x2c\x46\x79\x82\x75\x15\x93\xe4\xe6\xc1\xd1\xc9\x7a\x50\xd0\x8f\x44\x41\x41\xc8\x14\x99\x2d\xe8\x60\x6b\x79\xfa\xda\xbf\xad\x5a\x90\xaa\x6c\x09\x40\x59\xa5\xb8\x0c\x56\x73\x99\xce\x8b\x84\x67\x13\x3a\x11\xe5\xfa\x03\xdc\x6f\x1a\x09\x42\x70\x73\x85\x16\x90\x58\x53\x89\xbb\x1b\xf3\xc9\x1b\xc6\x73\x24\x78\xc2\x6e\x05\x46\x16\xee\x4e\xc6\xcc\x19\xf9\x6b\xf7\xfc\x6d\xb3\x8e\x35\x80\x13\xe7\x5c\x0c\xe5\x8a\xf8\x90\x5e\xd7\x47\x38\x07\x43\x00\xae\x8f\xf6\x71\xe1\x26\x45\xc6\x93\x2e\x07\x2e\x34\xb2\xc3\xa5\xbf\xfc\x38\x7e\xdf\xd5\x0d\xd7\x14\xe3\x12\x1a\xdd\x48\xf0\x7b\x8c\xc5\x41\xd8\x8d\x61\x25\xfa\x04\xcd\xc9\x9e\x21\x99\x9e\x10\x15\xa3\x67\x93\xc9\x84\x9e\xe3\x10\xf0\xf1\xcd\x84\x7d\x5f\xe8\x9c\x2d\x79\x4e\x80\x1b\x41\xa5\xa1\x36\xc9\xe5\xd8\xb3\x73\xb3\x1b\xec\x16\x48\xcd\xc4\xef\x7c\x52\x1b\xd9\xcd\x73\xfa\xde\x54\x40\x66\x4f\xa2\x6e\x45\x16\xf1\xd6\x9a\xb8\x5b\x95\xb2\x85\xca\xf2\x2a\xad\x6c\xda\x80\xb2\x21\x2e\xa1\xf9\x93\x08\xa3\x55\x17\xed\x22\x8f\x9c\xb5\xff\xde\xe8\x0a\xae\x09\x0c\xa2\x74\x09\xdc\xc0\x55\x5d\xf6\x58\x99\xfb\xa7\x41\x96\x2c\x74\xad\x2a\x35\x73\xf7\xd0\xfe\xdd\x74\xb4\xb7\x4c\x2f\xb8\x91\xee\x71\x4c\xe4\xe5\xd0\xc8\x71\x78\x61\xab\x14\xf7\x71\x35\xcc\x2e\x20\xfa\x2d\xaf\x55\x2c\xc1\xbc\x62\x07\x96\x59\x40\x5c\xc8\x10\xdc\x23\xde\xb1\xc1\x25\xcf\xee\x5d\x0b\xe9\xe9\x04\x8d\x7c\xef\x3f\xea\xb6\xde\x23\x2d\x72\xa3\x44\x94\x57\xfb\xcd\x87\xb7\x2d\x46\x32\x2b\x42\x6e\x3b\xe5\x58\x7c\x97\x8e\xb8\x21\x08\xf8\xc0\xe1\x71\x60\x82\x61\xcd\x9d\x7e\x47\xfa\x3d\x99\x4c\x1e\x9e\x30\xef\x17\x43\xf5\x58\xbe\x03\x24\xfc\xdb\xce\x09\x52\x78\x0c\xcd\xd8\x84\x8c\xd6\x10\x70\x10\x16\x42\x2e\x50\xdd\xc6\xb6\xb8\xad\x86\x98\x84\xce\x20\xae\xa6\x38\x06\x5f\x54\xe7\xb9\xab\x42\x8c\x3f\x62\x9c\x1c\xa2\x56\xe5\x1e\xd2\x15\x6d\xb0\x0d\x57\x22\x43\x8e\x8f\xfe\x29\xe8\x90\x81\xbb\x9f\x52\x32\x09\x45\xdf\xc6\x5c\x7b\x61\x23\x23\x58\x89\x51\x99\xd2\x0e\x8b\x63\x46\x69\x47\x42\x55\xd0\xcb\x06\x99\xa1\xe1\xb7\x7c\xa3\xcb\x8f\x55\xf3\x55\xbd\xc2\xd4\x32\x65\x33\xbe\x56\x10\xdd\x4b\xb7\x93\xdd\x7c\x1a\xdb\x57\xc7\x05\xae\xc9\x18\xbf\x76\x03\x46\xa4\xac\x00\x71\xf2\x06\x5c\xe4\x36\x50\xe6\xe7\xdf\xfd\x32\xc1\xe9\x4e\x14\xce\xfe\xa7\x57\x97\xf0\xf7\x4d\x18\x95\x55\xaa\x94\xae\x38\x79\xce\xf5\x47\x7d\xc2\x21\x1f\xc7\x57\x39\xf9\x4a\x9e\xe0\xb6\x8f\xdd\x45\xad\x3e\x18\xfb\x07\xf9\x8b\x55\x56\xa4\x32\x9d\x83\x9a\x5a\x68\x3b\x0d\xf3\x24\x9c\x48\x8f\x78\xae\xad\x09\x4c\x3a\x52\x9d\xa6\x5d\x68\xe3\x1d\x23\xbf\x32\x41\x0b\x6d\x82\xe0\x70\x2c\x47\x37\x66\x0a\xb9\x35\x84\xec\x8d\xa1\xb3\xb8\x29\x1a\x89\xdd\xbc\xc1\x37\x6e\xe0\x70\xdc\xfc\xe0\x20\xd4\x7a\xf3\x67\x6f\x62\x76\x3b\x3b\xe6\xe6\xc2\xb6\x2a\x58\x21\x46\x7a\x30\x07\xdf\x0f\xeb\xda\x4a\x8b\xad\x21\x34\x75\x12\x20\xc8\x6e\x58\x23\x72\x55\x50\x29\x70\x95\xc5\x90\x6c\x4b\xf7\x8e\xae\x90\xfb\x88\x79\xcd\x8c\xa0\x41\x32\x74\x75\xbd\x1d\x0b\x42\xcb\x96\xd4\xec\xfa\xc8\x1c\xb5\xb1\x11\x02\xaf\x8f\xa0\x6e\x1d\x22\x62\x1b\x29\x91\x4f\xd5\x1a\x10\xe9\xc2\x56\x95\x5e\xf4\xc8\x23\x04\x30\x46\x11\xb3\x44\x7c\x92\x91\x9a\x67\x7c\xb5\x40\x04\xe4\x09\xbb\x3e\xfa\x6b\xbd\x0f\xcd\x74\xce\xb3\x9c\xe2\x70\xd9\xf5\xd1\xda\x8c\x02\xc2\xef\x39\x54\xb6\xa4\x9d\x86\xfc\x78\x0a\xc1\x3f\x36\x33\x59\xf2\x7f\x57\x99\xed\xe5\x39\xbd\x62\xa3\xab\x93\x0d\x39\x38\x60\x96\xd7\x47\x90\x9a\x7e\x7d\x64\x0e\xd3\xf5\xd1\x54\xe4\xe6\xdf\xe6\x98\x90\x87\x2a\xec\x58\xa6\x5e\xc7\xc0\x27\x35\xd6\x39\xd7\x98\x08\x30\x93\x99\x86\x8c\xa9\x6f\xcf\x50\x52\x16\xcc\x74\x69\xff\x0d\xdf\x62\xc7\x58\xd4\xe2\xdb\x33\x34\x2e\xb8\x80\x27\x33\xcd\xd4\xc8\xe1\xb3\x99\xfc\xc4\x34\xc4\xbf\x69\x7c\x5f\x65\xf8\xee\x73\x94\xde\x61\x42\xd3\x0d\x45\xc5\x62\x3e\x8f\x37\x65\x9a\x71\x30\x5a\x2c\x6b\x81\xd5\x3f\xed\x68\xed\x99\xb4\xeb\xfd\x9a\xad\x4f\x5f\x8c\xd8\xfa\xe5\x88\xad\x4f\xcd\x7f\x21\xb5\x05\xfe\x7a\x61\xfe\xf5\x6a\xc4\xd6\xaf\x20\xdb\xc5\x3c\x7a\x09\x23\xc2\x76\xf0\xcf\x97\x23\x36\x53\xea\x14\xff\xb7\x1a\x0f\xfb\xb8\x76\x61\xeb\x76\xd8\x59\xb1\xe8\x29\x98\xa3\x2c\x56\x93\x2d\x6a\xf4\xb0\x89\x8e\x3c\xb2\xf4\xde\x95\x09\xbd\xfd\xc5\x8a\xbd\xae\x5f\x4c\x43\xb7\xa3\x88\x1c\x76\x8d\xea\xf1\x93\x91\xd0\x82\x51\x32\x5b\x82\x97\x4c\x96\xae\xae\x32\x04\x7b\x40\x36\xa5\xb9\xa7\x96\x76\xa3\x3d\xd3\x23\xc2\x57\x0b\xb1\xb1\x61\xe9\x5e\x09\xce\x05\x4f\xbd\x5e\x25\xe6\xce\xb4\x48\x76\xce\x23\xda\x69\xde\x74\x0d\xdd\xf6\xd1\xce\x19\xa6\xbf\xe2\x59\x2e\x23\xd0\x85\xb9\xf9\x5a\x6e\x43\x8f\x7b\x85\x6f\x3c\xee\x3d\x2f\xc3\x37\xee\x64\x42\xc8\x55\x26\xe2\x9f\xfa\x31\xfa\xb0\x31\xd0\x54\x84\x7d\xf1\x39\x7c\x38\x5e\x3a\x1e\xb7\x86\x0b\x08\xa8\x0e\x4d\xc0\x23\x46\x0e\xcd\x78\xf4\x91\xdc\x48\x5a\x78\x1c\xdc\x30\x3b\xc3\x2e\x96\x0e\x0b\x05\x52\x55\x20\x71\x0a\x86\x50\xb6\x95\x29\xd4\x9b\x42\x3d\xce\xc9\xb4\xcb\x02\x8b\x83\x6b\x15\xf4\x02\x2e\x1f\x95\x24\x84\xb6\x63\x56\x52\x2f\x82\x16\x65\xb8\x86\xe3\x55\xc7\x22\xd5\x98\x70\x9a\x2a\xa6\x92\x38\x80\xa9\x4d\xc4\x0c\x52\x8a\x48\x5a\xf7\x79\x56\x26\x96\x6a\x2d\xac\x36\xe3\x8a\x6d\xb8\x91\x93\xeb\x8b\x8a\xe2\x3a\xe1\x07\x5d\x64\xe4\xe2\xc2\x3e\x28\xaa\x24\x14\xb1\x6f\x8c\xb4\x81\x60\xfe\x1b\xac\x14\x87\xfa\x86\xed\xef\x41\x6c\x51\x35\x96\xf1\xa0\xf4\xbc\xee\x60\xef\x4b\xd0\x7f\xaa\xe5\x24\x94\xb2\x89\x39\x65\x60\x89\xe8\x26\xdd\x1e\x2c\x01\x78\xd0\x29\xef\xa6\xe3\x16\xb5\xbd\xe6\xe7\x0a\x96\x41\xf9\x11\xfd\xe8\x10\x06\x64\xca\xae\xe0\x70\xab\x22\x5f\x15\x79\xa7\x3e\x05\x35\xc1\x45\x1a\x89\x13\x28\x03\x0e\x7a\x14\xf9\x35\x0d\x4d\xd7\x27\x5f\x64\x22\x12\x12\xf4\x22\xa7\x58\x8d\xb9\x1e\xe7\x58\xac\xdd\x57\x8e\x8c\xfc\x9c\x2a\x37\x26\x90\x06\xad\xba\x3b\x82\xec\xb2\x74\x9e\xd8\x44\x2b\x43\xf2\x57\x09\xdf\x38\x1c\x82\x79\x19\xd0\x52\xd7\x74\xa0\x98\xc5\xe3\xd3\xd7\x5a\xe6\xe7\x5d\x88\x6b\xa9\x5a\x77\x66\x6b\x7a\x3a\x78\x29\x64\x48\xed\x4e\x65\xcb\xc2\x19\xf5\x26\xd0\xe1\xa9\x48\x37\x25\x0b\xe4\x10\xba\x64\x1a\x79\x3e\xf4\xb0\x63\xdc\x7c\xc1\x38\xbb\xe5\x19\xa4\xa9\x2d\x04\x27\x05\x8b\x9c\x36\x86\x6c\x67\x42\xaf\x54\x5a\x35\x02\x43\x62\xc7\x3e\x2a\xb3\x1d\xb0\x54\xe9\xbf\xe1\x67\x7b\xae\x50\xf9\x02\x33\xd2\x44\xe6\x6a\xa1\xc7\x38\x2c\x37\x0b\x77\x5f\x72\x85\xbe\x2e\xb4\xfe\x4f\xd8\xf7\x7c\x13\x60\x3e\x60\xaa\x45\xb9\x82\x90\x6c\x61\x16\x0e\x79\x4a\xb5\xdf\x96\xfd\x09\x0d\x29\x86\x09\x64\x22\x52\xcb\xa5\x48\x63\x38\xdb\x76\x03\x53\x71\x6b\x98\x41\xa8\xb4\x9a\x1f\xc5\xdf\x0a\x9e\x18\xe5\xc7\xa6\xda\xe9\x9c\x4f\x65\x22\xf3\xcd\xc8\xd6\x62\x02\x2a\xbf\x8f\xbf\x6e\x87\x0c\x4a\x5f\x3b\x36\xcf\xa8\xa6\xd4\x7f\xfd\xe7\xff\x59\x9f\xfe\xd7\x7f\xfe\xdf\x11\xfc\xeb\x25\x28\x46\xf0\xa7\xc8\xa3\xbe\x36\xd4\x60\xbd\x78\xbe\xb3\x4f\xec\xc6\xac\xc3\x0d\x76\x59\x6e\xd2\x1e\xde\x28\x30\x44\x3d\xa8\xa8\xfd\x13\x96\xde\xea\xb2\x97\x93\x85\x30\xac\xfe\x49\x0f\x41\x9a\x36\xb4\x78\xed\xfa\x1a\x31\xb2\x70\xa1\xd4\x41\x27\x95\x30\x13\x7a\x50\x8f\x36\x68\x69\x58\xe1\x2e\x51\x10\x77\x16\xb4\xfa\x59\xc2\xe7\x08\x63\x27\xd3\xf9\x49\x2c\x35\xfe\x2b\x1c\x02\x88\x30\xa8\x18\xd8\xc3\x2f\x39\x06\x0f\x9d\x5d\x9c\xb7\xc4\xd2\x6c\x37\xbb\xa1\xcc\xd5\x43\x66\xf5\xa2\x63\xab\xf7\xb6\xb4\xc6\xc2\x02\x57\x0d\xb1\xb5\x53\xed\x5b\x66\xaf\xc0\xb6\x61\x7d\x65\xc2\x83\x74\x0c\xec\x1c\xd4\xfe\xbf\x6f\x39\xae\xdb\xe7\x59\x4c\xb3\x06\x98\x8d\xfb\x3f\xb5\x97\xfe\x87\xb7\x9e\x5b\xaf\xa1\x33\xe3\xdf\x42\x6e\x96\xff\x4b\xd3\x91\x6c\xb3\x7d\x2e\xf8\x5a\xec\x91\xe1\x56\xcd\x9f\xa5\xb3\xdc\x70\x6a\x1e\xc3\x14\xe1\x2d\xe8\x65\xc4\x93\x6d\xf8\xa6\xdb\x5f\x74\xee\x34\x4a\x2a\xb4\x21\x43\x86\x5a\x98\x9f\xbd\x65\x47\x79\x36\xd4\xc9\x7a\x45\xdf\x4f\x45\x62\xab\xa5\xf6\x40\x19\xa8\xb5\x0f\xa2\x59\x4b\xb8\x01\xf2\x50\x80\x96\x5d\xc3\x0f\x00\x74\x15\x95\xa1\xac\x81\xd9\xa3\x38\xdd\x1b\x8c\x2f\x9e\x68\xfa\xc0\xcd\x84\xbd\x37\x2c\xdc\xf5\xab\xe1\xaa\xd9\x42\xdf\x21\x90\x01\x79\x41\xc0\x80\xea\xc5\x34\xe0\xcb\x30\x54\xf2\xf1\x4d\xf0\x2b\x37\x86\x0b\xdf\x40\xce\xdf\x4d\xd9\x9e\x24\xaa\x5b\x95\x7d\xc4\x6b\xfd\x17\x95\xc9\xbf\xab\x34\xe7\xc9\x85\x8a\xcf\x8a\x5c\xc1\xd2\x67\xbe\x26\x0a\x11\x8d\x16\x48\x46\x6a\x6f\x19\x9c\x83\xdd\x1a\x67\xf1\x85\x63\xa3\xf7\x71\x02\x9e\xfa\xc4\xec\x74\x4d\xa3\x22\xca\x2d\x22\x43\x89\xb8\xea\x87\xd4\xc0\x0e\x94\xaf\x48\x67\xdd\x9e\xa9\x6c\xd9\x18\x16\x79\x8f\xce\x97\x2f\x60\x31\xc6\xfe\x39\x44\xd3\xbb\x2b\x22\x8c\x01\x4a\x56\x32\xb0\x90\x03\x74\x46\x9a\xb8\xd5\x08\x43\x99\xaa\x27\x81\x3a\xa2\x77\x6e\x4e\xe0\xc3\x37\xc1\x0d\x00\x4b\xbe\x95\xe3\x28\xf0\x19\xab\x1e\xe3\x0a\xed\x23\x43\xac\x44\xf4\x41\xac\x12\x19\x71\xdd\xe3\x76\x54\x9b\x1f\xf8\x72\xac\x44\x34\xc9\xa8\xfb\xfb\xba\x1a\x78\x1b\x0e\xb4\x89\xad\xbb\x84\x52\x7b\x89\x3f\xa6\x52\xf6\xed\xbb\xab\xbd\xf3\x40\x76\xd9\xa2\xda\x0b\xf7\x42\xc1\xee\x7b\x9b\x90\x82\x1d\x6c\xa3\xaa\xa3\xde\xe3\xb6\x55\xbd\x23\x77\x0d\x0c\xaa\x5d\xbd\xed\xbb\xfe\xd8\x7c\x7e\x37\x9f\x43\xed\xcd\x2d\x9c\x1e\x7f\xef\x62\xf5\xac\x84\x73\x75\xf1\xf8\x25\xb6\x59\xc9\xf3\x9a\x0f\x78\xd8\x5b\x69\x5c\x18\xb1\xdf\x51\xfc\x9d\xe1\x42\x27\x2d\x63\x69\xb2\x58\xfc\x8e\x5d\xfc\x78\x55\x31\x47\x88\xc6\x1e\x72\xfe\x51\x34\xdc\x31\xdc\x37\x54\x79\xe4\x3c\x35\x6c\x0d\x41\x36\x28\xd9\x6e\x93\x2f\x0c\xd7\x13\x9f\x22\xb1\xca\x83\x95\xca\x79\xfa\x77\x8e\x03\x38\xb9\x78\x7f\x79\x75\x72\x71\x76\xf5\xe6\x2f\xb5\xb1\xd4\x8c\x53\xb5\x8f\xd4\x3a\x3d\x7a\xa4\xd3\xb5\xd7\xc1\xd2\x01\x61\xa3\x79\x40\x94\x71\x55\x76\xd4\x7b\x0a\x8f\xba\x22\xdc\xb2\x87\x54\x55\x50\xb2\xde\xae\x66\x9b\x79\x86\xde\xbc\xea\xa6\x93\x5e\x88\xd7\x8d\x37\x53\x3a\xa0\xf6\xc8\xb1\x00\x97\xe8\x86\x93\x14\x68\xd4\xe0\xf5\xe9\x0d\x91\x7e\x4a\xce\x7a\x32\x59\xdd\x75\xea\xb4\x73\x5a\x77\xf7\x6a\x11\x55\xf1\x96\x8b\x88\x07\xc1\xdd\xbf\x66\xa7\x93\xce\x9b\x67\xf1\xdc\x5c\x72\x50\xf3\x55\xbc\x71\x5f\xc3\x1b\x4e\xaa\xa5\x4d\x8a\x7b\xd9\xfd\xa1\xc6\x01\x6f\xa3\x2e\x8a\x82\x77\xc8\x65\xb9\x7d\x04\x8f\xec\x30\xf1\x8c\x4f\x7d\xa9\x45\xf9\x4a\x98\x14\x52\xda\x9e\xd8\x52\xe4\x0b\x15\xef\x4b\x21\x2a\x51\x61\xf7\x7c\xfe\x0d\x6f\xc3\x0f\x5d\x64\x6a\xb5\xfd\xbc\x57\x46\x66\x6d\xa2\x36\x88\x6f\xfd\xca\x1a\xe4\x72\x05\x76\xdd\xd0\x24\x07\x74\x94\xac\x72\x0f\xbf\xef\xef\x08\xf2\xe9\x2d\x05\xc0\x77\x6d\x7a\x63\x7b\xeb\x7e\xb5\x7e\x23\xc0\xfc\xf5\xe0\xa4\x02\x0e\x0f\xdf\x8f\x45\xec\x62\xee\xfb\x02\x02\x6f\x41\xb2\xec\x23\xde\x17\x59\x2d\x97\xe3\xd0\x75\x2a\xf6\x38\x63\x5b\x96\x1a\xc4\x2b\x1f\xc4\x28\xdd\xe0\xb1\x41\xc1\x0b\xc4\x6a\x1b\x64\x85\x20\x73\x60\x3f\xb7\xb0\xab\xaf\xd9\x54\xa9\x64\xc4\x64\x9a\x7f\xfd\xe5\x88\xcd\x12\xc5\xe1\x1f\x38\xd9\x11\xfb\xf9\x17\xf0\x24\xce\x78\x24\xfe\xe3\x9f\x23\xb6\xe4\xab\x9f\xf1\x27\xff\x39\x1c\xce\x54\x26\x93\x03\x4e\xd9\xbf\x56\xdb\x67\xef\xb5\x44\xa2\x62\x1e\x8e\xe9\x96\x61\x80\x9b\x39\x6a\x61\x35\xc5\xb7\x19\x9f\xe5\xec\x4b\x76\xbc\xc8\xf3\xd5\xeb\x93\x93\x7f\xd7\x2a\x1d\xdb\xc8\xd2\x6c\x7e\xf2\xbc\xc7\x51\x23\x62\xb2\xf3\x19\xfb\x97\x66\x47\x41\x9f\x57\x4b\xff\xed\x79\x53\x2e\xf2\xfd\x92\xb7\xf7\xd9\x9f\x95\x4a\xba\x06\xd6\x8a\xa4\xff\x98\xa3\x4b\x92\xf7\xb5\xad\x7a\x18\x2f\x70\xf5\x2c\xdf\xc5\xed\xcb\xd3\xcd\xe7\x30\x0d\xd2\xe1\x1f\xe0\x78\x6c\x65\xc8\xd6\x94\x00\x34\xc3\xfe\x51\x62\xcb\x16\xa9\x75\x21\x04\x41\xf9\xce\x4f\x4d\xf1\xbd\x1c\x83\x4b\xa9\xa6\x92\x67\x09\xa9\x85\x88\xd8\x97\x6c\xd3\x39\xcf\x45\xd0\xdb\x8e\xb8\x87\x2d\x82\xbf\xb7\x78\xfb\x95\xbb\x78\xec\x93\xb3\xbd\x26\xc4\xca\x88\x05\x69\xd4\x40\x5e\x9e\xc2\xec\xde\x67\x58\x6a\xe0\x2c\x3c\xfd\xfb\x4d\xf5\x4e\x82\x8c\x48\x8b\xe5\xe3\x91\x8a\x3b\xd1\x07\x8a\xb0\x7e\x08\xfa\xd0\xf2\xfd\x28\x29\xb4\x5c\x0b\x02\xf4\x6f\x5b\xfe\xad\xce\xd5\xb2\x13\x99\xde\xa1\x13\x27\x47\xdf\x37\x37\x6d\x16\xf1\x1b\x47\xb5\x3b\x2a\xbb\xa7\xe4\xd0\x73\x72\x90\x58\xd8\x23\x7a\x8c\xc2\x29\xaa\xc7\x36\xf4\xd2\x09\x70\x7e\x13\x52\x8c\x44\xfc\xfa\x3a\xbd\x4e\xc7\x6c\xaa\x55\x8a\x97\x49\xc6\xaf\x0d\x4d\xd6\x0e\x5b\x85\x9d\xbf\xa5\x82\x2a\x9c\xbd\xfc\xd2\x28\xdd\x19\x8f\x72\x91\x69\xb6\x10\x9f\xac\x2b\x6b\xcc\x8a\x4c\xbe\x36\x43\xfd\xf1\xc3\x39\xe3\x9a\xad\x78\x46\xd9\xbd\xdf\xaa\x84\xa7\x73\x96\x8a\xfc\xa4\xc8\x92\xc9\x85\xf9\xe1\x03\xaa\xfd\xa6\xed\x98\x89\x25\x97\x09\xbc\x0b\xff\x62\x3c\x8e\x33\xa1\x75\x6b\x2f\xa6\x11\x76\x73\x46\x2d\xc7\x6c\xa1\x34\xa4\x02\x9b\xb1\xa3\xf4\x5e\x81\xe3\x81\x7a\x0c\x29\x3b\x07\x3c\x1d\x91\xc3\x0b\x14\x47\xc3\xb5\x5f\xe5\xf0\xc3\x37\x6f\xd8\xe9\x8b\x57\x46\x84\xa7\x62\xca\xaf\x26\xa7\xec\xe7\x0f\xdf\xbc\x31\x4f\x7f\x99\xb0\x31\x93\xab\xf5\x97\x30\xde\xf3\x8b\xf5\x97\xec\xfc\xa2\x6d\xa4\x38\xc8\xf3\x0b\x7c\xe5\x6b\xfb\xca\xd7\xfd\x5e\x89\x64\x9c\x99\xe9\xbc\x39\x7f\xfb\x61\x7b\x73\x68\x31\x66\x4b\x1e\x99\xf6\xdf\x9f\xbd\xe9\x5a\x42\x7c\xcd\x34\x1c\xb3\xa2\x80\x1d\x4f\xd9\x8f\x3f\x9e\xbf\xa5\x90\x71\xd4\x33\x8b\xd5\x0a\x13\x89\xfd\xe5\xc1\xa8\xd9\xb9\xf8\xc4\x8e\xff\x24\x9f\xff\xef\x9f\x5f\x8c\xff\xc0\xc7\xb3\x5f\xfe\xe3\xf7\xff\x1c\xff\xc9\xfd\xf1\x65\xbf\x3f\x4e\x5f\xfe\xf3\x5f\x68\x04\xaf\xdc\x10\x5e\x1d\x70\x0c\xaf\xdc\x5f\xaf\xfa\x0c\xe2\x4b\x37\x88\x2f\x0f\x38\x88\x2f\xc3\x41\xfc\xfe\x0f\x7c\xfa\x4b\xf3\xb8\xbc\xa1\x7c\xe5\x86\xf2\xd5\x01\x87\xf2\xd5\xae\x43\x91\x7a\x9a\xe2\xb1\xbd\xfc\xf3\x0f\xa7\x2f\x98\xca\xf0\x5f\xaf\x6c\x46\x12\x5d\x7f\x48\xd1\xbf\x3e\x7a\xf1\xea\xe5\xe9\xbf\x7e\x75\xfa\xe2\xcb\x57\x36\x97\xe9\x0f\xff\xfa\xfb\xb1\x7b\x7a\x7a\x7d\x44\x7d\x9e\xbe\xf0\x7b\xed\xee\x8b\xde\x7a\x55\xbe\xd5\x32\x82\x86\xef\x45\x99\x88\x65\x1e\xf1\x0c\x08\x1b\xfe\xc5\xcc\x9f\xb6\x87\xc6\x95\xfc\xdf\xc7\x7f\x7a\x0d\x3b\x07\x6b\x71\xfc\xa7\xd7\xf8\xef\x57\xff\x7c\xfe\xa7\x7f\x7c\xf5\xf3\xe9\xf8\xab\x5f\xe8\xc7\x2f\xff\xf9\x8f\xaf\x8f\xff\xf4\xfa\xc5\xe9\xe9\x3f\x60\x79\xf1\xf9\x73\xf7\xea\x3f\x5e\xfd\xfc\xe5\xbf\xda\xc6\xaf\xfe\xf9\x8f\x57\xa6\xf1\xcf\x2f\xc6\x5f\xfd\xf2\x8f\x9f\xbf\xfe\x7d\xd8\xfa\xf4\x9f\xff\x38\xfe\xd3\xeb\x97\xa7\xaf\x4e\xff\x71\xfa\xfb\x17\x2f\xfe\xf1\xea\xab\xeb\xeb\xd8\x7c\xd3\xfc\xdf\xe9\xe9\x3f\x9f\xff\x4b\x59\xe4\x2c\x55\x29\x8b\xe5\xdc\xcc\xa5\xa4\xc8\x4b\xf9\x09\x03\x91\xc7\x4c\x6b\xb3\x73\xec\xc7\xc9\xe5\x84\x69\x15\x49\x9e\x18\x82\x56\x40\xd1\x00\x9a\x78\xc9\x1a\xbc\x79\xe3\x17\x7f\x1e\xb3\x5f\xfe\x64\xfe\xf9\xb2\xfc\xe7\x97\x70\x24\x16\xe2\x53\xa4\x12\x95\xc1\x56\x2c\xc4\x27\x1e\x8b\x48\x2e\x31\x1e\x5a\x65\x2c\x52\xb1\xb0\x9b\xf1\xc5\x37\xf0\x9f\xd7\xcd\x1f\xfa\xe2\x4f\xc7\x74\xdc\xce\xc6\xdf\x98\x95\xfd\x87\xff\xe7\xd7\x66\xb2\x63\x96\xcd\xa7\xe5\xd7\x3e\x7c\xfb\xe7\xda\x57\xb2\xf9\xd4\x7e\x2e\x9b\x4f\x8f\x5f\x7e\xf5\xd5\x88\xfe\xfb\x07\xd8\xfd\xe9\x26\x17\xaf\xd9\x94\x6b\xf1\xf5\x97\x50\x7d\x29\x36\x3b\x2d\x53\x9e\x6d\x18\x64\xe2\x8e\xa1\xe8\xdb\xad\x82\xe3\x91\x6e\x1c\x00\x8a\x63\x6c\x86\x4d\x9a\x95\x8c\x31\x43\xc5\x3f\x6d\x2f\x5f\xbc\xf8\x7a\xfc\xe2\x74\xfc\xe2\xe5\xf5\x51\x85\x8d\xcc\x8a\x24\x19\xc3\x2b\x32\x35\x3c\xe5\xd5\xab\x57\x7f\x30\x9d\x15\x98\xcf\x00\x1d\xd2\xbf\xab\x9d\xbe\x64\xa9\xc6\xfe\x6a\xb4\x3b\x97\x4b\x81\xc4\xfb\xad\x7d\x19\x56\x63\xb9\xe2\xb9\x9c\x26\x02\x8f\xc7\x65\xc4\x13\xaf\x7b\x92\x18\x70\x26\xa6\x07\x37\x1b\xc0\xcc\xac\x4e\xe9\xf4\xcb\xf1\xe9\xcb\xf1\xe9\x57\x57\xa7\x7f\x78\xfd\xea\xc5\xeb\x97\x2f\x26\x2f\x5e\xbc\xf8\x5f\xb5\x09\x9a\x0e\xc6\xd0\x41\x39\xc1\x3d\xc2\x01\x64\x2d\x9e\x71\x6f\x20\xb9\xfb\xd6\x4c\xce\xda\x25\xee\x25\xff\xd4\x68\x4f\x0a\x0a\x70\x7c\xfd\xe5\x1e\x05\x38\x96\xfc\xd3\x77\x22\x9d\xd7\xa3\x24\x0e\xd2\x75\xbb\xad\xe9\x20\xdd\x37\xc9\xed\x65\xc7\xb1\x2a\xa6\x55\x87\xa0\xed\x19\x29\x54\x4b\xc7\x32\xbd\xaf\xc5\x96\xe9\xbd\x2d\xb6\x4c\xef\x75\xb1\x9b\x95\xa4\x03\x2c\x36\x95\x27\xab\xdb\xcd\xee\xde\x77\xaa\x1e\xc2\x86\xd5\x68\x3b\x09\x86\x51\x24\x09\x9f\xd6\xf5\xe5\x5e\x1a\xa6\x4a\x1b\x96\xe6\xd7\x67\x52\x5c\xf1\xdc\x28\x46\xfb\xd0\x62\x7a\xb5\xfd\x74\x3f\x05\xbb\xd2\xdd\x4c\x49\x2d\x0e\x8c\xcf\x62\x6e\x5e\x2c\x57\x9f\x33\x7c\x40\x90\xac\x5c\xe6\xed\x97\x6e\x57\xc0\xe6\x5e\xbe\x49\xc0\xbe\x6e\xe4\x1d\xbd\xee\x7a\x00\xb4\x29\x96\x53\x11\xc7\x22\x76\x51\xb6\x1d\xf6\x9c\xed\x2f\x7b\x91\x3f\xb6\xa8\x3b\xc6\xf3\x61\xc9\x57\x6a\xce\xfe\xea\xba\x60\x59\x91\x82\x34\xf8\x9e\xa2\xae\x40\xf2\xbb\xda\xac\xc4\xf7\x82\x00\x68\xca\x12\x0d\x68\x09\x02\xe0\x6a\x1b\xdf\x6c\x63\x30\x10\xdd\x90\x42\x18\x21\x73\xac\xc8\x20\x84\x22\x13\x66\x29\xa3\x9c\x82\x72\x69\x00\xf6\x35\xc4\xbb\xa9\x14\x4e\x0a\xd0\x6d\x9c\x85\x89\xf1\x22\x57\x4b\x9e\x5b\x98\x8d\x60\x21\x5a\x10\x6c\x2a\x63\x9a\x0a\x4a\x98\x9b\x16\x39\x8b\x95\xd0\x90\x86\xbb\xe0\x6b\x41\xbf\x4a\x3f\xac\xc3\xbc\x8c\x35\xb6\x4b\xc4\x9f\xe3\x62\x65\x9a\x56\x87\x5d\x42\xf6\xb4\x61\x37\xf5\x3f\x10\x32\xcd\xc7\x2a\x1b\xd3\x01\xdc\xe1\x30\x04\x2f\x7a\xb9\xa6\x74\x14\x1c\x66\xa4\xd4\x4c\x48\xd8\x1b\xaf\x86\x1d\x94\x19\xb5\xc6\x40\x5b\x2b\x94\x52\xb0\x46\x78\x76\x56\xf9\x86\xb9\x22\x6d\xb4\xa8\x90\x0c\x6d\x9e\x71\xcd\xa2\x85\x4c\x62\xc4\xab\xde\xbc\x9f\x01\x34\xa8\xc8\x6c\x51\xba\x99\xa7\xbc\xa9\xd4\x65\xcb\x95\x0f\x89\xfc\x6b\x30\x24\x9e\x3e\xc7\x4e\x5e\x5f\xa7\x8c\xb1\x31\x7c\xe2\xb5\x1d\x6b\xf0\x0c\x87\x7c\x9d\xbe\x7c\xce\xc0\xb9\x68\xdf\xf0\x5e\x6f\xee\xa0\xde\x05\x3c\x9a\x4c\x26\xec\xef\x22\x53\x66\x41\x96\x2a\x6b\x91\x46\xfa\xef\x66\x22\x75\x3e\x5e\xf2\xd5\xf8\xa3\xd8\x74\xe5\x0d\xb7\xbf\xc8\x00\x13\x19\xa2\xb3\x78\x4a\xb1\xc3\x70\x51\xcd\x1a\xd6\x5f\x83\x1d\xb9\x59\xf2\xd5\x8d\xd1\xb0\x28\x5f\xc7\xaa\xcd\xd0\x1f\xe4\x42\x11\x78\xa8\x4c\x63\xf1\xc9\x6e\xc8\x92\xaf\x26\x66\x07\x00\x42\x2a\xe7\x73\xac\xa6\x64\xd3\x29\x6d\x49\x5c\x04\x06\x80\x83\x85\xb7\x67\x61\x74\xbe\xe6\x81\x5c\x1f\x31\xc7\x76\x6c\x92\xc5\xf5\xd1\x92\xaf\xae\x8f\x26\xec\x2c\xd1\x6a\x54\xd2\x29\xed\x5d\x35\x07\x18\x5a\xa2\x9a\x7a\x49\x15\x46\x35\xcd\x60\x03\x63\x4a\xad\xb0\x29\x70\x70\x0a\x31\x9f\xa2\xc8\x04\x3b\x4e\x15\x4b\x85\xb6\x6e\x42\x17\x70\xf1\x9c\xa6\x29\x58\xc9\x95\xbd\xaf\xc3\xa7\xe8\x9a\x40\x9e\x3e\xd5\xed\x52\x19\xce\xb8\xe2\xa9\x1c\x99\x59\x01\x8e\x80\x59\x0c\xa5\x83\x5e\x0d\x19\x23\x23\x32\xda\x8f\x93\x84\x80\xc9\x0d\x0b\x79\x70\x50\xc9\xe6\x6d\xda\xf9\x6c\xe2\xb5\xaf\x9f\x4b\x8f\xf6\xdb\x3c\x47\x26\x21\x32\x6f\xa5\x12\x35\xb7\x05\xda\xcb\x33\x11\x14\x69\x0f\x4f\x98\x85\xa9\x87\x25\x7f\xc5\x56\x4a\x6b\x30\x4f\xe0\x61\xb1\xa4\xe2\x86\xe7\x6a\x29\xa3\x9b\xd7\x25\x38\x15\x50\x2e\x81\x6c\x43\x97\x79\xeb\x58\xf7\x7d\x84\x46\x0a\x7b\x8a\x26\x44\x0f\xce\xa0\x17\xfa\x32\x04\xb9\x4f\xf1\x8d\x4c\x24\x1b\x96\x89\x55\xc2\x23\x9b\x41\xe8\xa0\xc9\xc3\xb9\x50\x4f\x04\x7d\xe2\x0a\x48\xa7\x1b\x57\xed\x01\x46\x77\x8c\xc7\x73\x44\x03\x18\x19\xaa\x63\xce\xe3\xcb\xe7\xec\x46\x8b\xfc\xc6\xd2\xad\x4b\x91\x97\x70\x57\xb6\xda\xa7\x59\x2d\xc7\xb6\x5c\xd5\x67\x84\xbb\x77\x34\x01\x0a\x3f\x53\xcc\xd1\x3b\x1e\x2d\xa8\x43\x64\x00\xd5\x6b\x34\x2a\x2b\x0c\x60\x0f\xc1\x66\x1b\x1a\x84\x04\x85\x96\x19\x78\x85\x9d\xaa\x47\x8b\xda\xe8\x10\xbd\x36\xb9\x4e\x5f\x3d\x47\xaa\x64\xe7\x87\xd1\x50\xb4\xd5\x19\x59\xe2\x96\x7c\xa5\x31\xff\x00\x25\x18\x99\x31\x91\x08\x80\x7b\xb5\x57\x2f\x55\xe9\x18\xa9\xd6\x47\xb1\xa1\xbe\x2c\x18\x8d\xad\xf9\x6b\x5e\x5d\x4e\xd8\x7b\xc4\x12\xf3\xe0\xf1\x58\xb1\x82\xe8\xc6\x8c\x32\x3c\xcd\x07\x0d\xa5\xb3\x7b\xd7\x74\x1a\x29\x40\x12\xa6\xe9\x06\x63\x08\x0e\xec\x2a\xca\x32\xd7\xa9\x9f\x38\x8f\x93\xc6\xeb\x6e\x96\x68\x9f\xac\xee\xc6\x6d\xd8\xe5\x9e\xba\xad\x0b\xae\x29\xed\xf4\x01\xee\x29\x5c\x05\x2b\x12\x50\xb7\xc1\x95\x7d\xd9\x7a\x65\xe7\x19\x4f\x8b\x84\x67\x95\xb3\x00\x9b\x5f\x42\x0d\xe1\xdf\xc7\x1f\xc5\x66\x8c\x47\x77\xc5\x65\xa6\x9f\xc3\x47\xa0\x42\x31\x89\x79\xe0\xad\x4c\x6d\x50\x42\x4e\x5d\x42\x46\x32\x34\xc3\x68\xde\x63\x80\x52\x89\x8c\x30\x63\x1e\x4e\xcd\xe7\x52\xb9\x2a\x12\x4e\x09\x13\x5a\xac\x78\xc6\x73\xf8\xba\xca\x74\x09\x72\x4e\x1d\xfa\x30\x04\x53\xb1\xe0\x6b\xa9\x8a\xcc\x91\x74\x33\x56\xba\xc4\x07\x25\x48\xb0\x06\x3d\xe9\xd1\x1d\x0f\x59\x8b\x18\xbd\xcb\x99\x6b\x93\xc4\x75\xae\x56\x25\x74\x2b\x81\x4e\xc4\x22\x52\x31\x48\xab\xb9\x58\xe1\x7e\x51\x6c\x6d\x4f\xe8\x4d\x2f\x30\x97\x82\x06\x71\xcb\xf8\x6c\x06\x10\x3e\xd4\x4b\x26\xa2\x22\xd3\x72\x2d\x92\x0d\x0a\xff\xfa\x56\xe6\xd1\x42\x68\x36\xe5\x11\xd4\x26\x45\x5c\x76\xf7\xf5\x72\x77\xe5\x0c\xc4\x07\x11\xfb\x1c\xdd\xec\x78\x83\xc6\x1e\xe2\xa5\x38\x80\x0d\x7f\x60\x70\xfa\x9c\x58\x01\xe0\x9a\x7e\x8c\xd3\x04\xcb\x10\x81\xea\xa1\xb2\xa9\x8c\x63\xd1\x56\x8a\xa8\x2e\x83\xfe\xb7\xca\xee\xde\x5f\x1c\x6c\x83\x3d\xbb\x77\x6c\x28\xbd\x10\x16\xfc\xc4\xdb\x8d\xd9\x75\xc1\x0a\x61\x14\xa9\x1f\x5a\x8a\x0e\x78\xe4\x3b\x6a\x56\xfd\x79\xc2\xbe\xe7\xd2\xd0\x28\xc8\x8d\xa3\x4a\xfc\x90\x41\x4b\x38\x53\x45\x06\x49\x4d\xf7\x14\x22\x4b\xc1\x8f\x3b\x2c\x86\x69\xef\xaf\x45\xd3\x74\x19\xed\xb5\xe5\xe8\x3e\xa3\x81\x23\x64\x73\xb1\x6c\x3b\x3a\xaa\x9b\x7b\x9b\xa5\x1f\x5d\xb5\xc3\x64\xbd\xd7\xc2\xfd\x6f\x9c\x35\x69\xb2\xb0\xd5\x87\x9a\xc9\xa5\xc8\xd6\x32\x12\x1f\x2c\x66\xd2\x96\xd1\x57\x9b\xb2\x85\x02\x5e\xe3\x02\xe7\xc1\x6a\x40\xad\x26\x89\x98\xf3\x68\x53\x2d\x7a\xd2\x1a\xb3\xbc\x23\x62\x8b\x0f\x38\xad\xe9\x8b\xae\x98\xf0\x9e\x68\xd1\x2b\xde\x69\x6c\x72\xed\xfc\x71\xe0\x83\xc3\x0d\x66\xd5\x9d\xbb\x8b\x69\x8b\x28\xbd\x10\xf4\x29\xfb\xf1\xc3\x77\x98\xce\xc8\x73\xe2\x12\x66\x3c\xb6\x2c\xb3\xe5\x97\x90\x4a\x1f\xed\xc7\x1a\x8d\xa2\xd8\x35\x30\x28\x32\x10\x0e\x8c\x96\x84\xc1\x6f\x3d\x07\xc7\x6e\x4c\xeb\x1b\x0f\xad\xc4\xc6\x1f\x41\x2f\x16\xb7\xf5\x74\xfc\xf5\x57\x5f\xbd\xfa\x6a\x84\xf5\xe1\x0c\x43\x7b\x1e\x52\x83\x2f\xbf\x84\xc8\x2e\x60\x6b\xb7\x3c\x8b\x9d\x4f\x17\x80\x86\x0e\x53\xd6\xbf\xc6\x66\xda\x91\x3a\xf0\x8c\x55\x81\x8a\xe8\xcf\x7b\xce\xd8\xb5\xe5\xbc\x01\x16\xea\x8d\x4a\x67\x72\xbe\xe5\xb2\x37\xb4\x2e\x61\x18\xd0\x4a\xe2\x6a\xa7\x9b\x85\x5e\x62\xee\xea\xd5\x77\x97\xa6\x59\x4a\x21\x5e\x4e\xff\xb2\x05\xbf\xfb\xd4\xf1\xf9\x73\x91\xc6\x75\x03\x76\xad\x8a\x0f\x36\xc3\x50\xe7\x8b\x77\xdf\xbb\x20\x84\x37\x67\x6c\x8a\x3f\xe1\x41\xb3\x87\xcb\x2a\x44\xd6\x80\xea\x8f\xeb\x99\xb6\x12\x58\x64\xc6\x04\xd9\x18\x02\xec\x7e\x45\xea\xe1\xbd\xe9\x8d\xce\xc5\xd2\xb0\x18\x9d\xb3\x4c\x29\xa3\xf4\xa0\x4c\xe3\x36\xc0\x81\x38\xb7\x9e\xad\xe9\x26\x6f\xb1\xa2\x6d\x4d\xef\xc7\x4b\x74\xcf\x7e\xbd\x1a\x37\xd8\x9a\x28\x49\xf7\x5a\xd6\x78\x80\x47\x08\x4b\xb3\x95\xab\xf9\xfe\x0e\x85\x19\xdb\xc0\x88\x7b\x59\xe2\x94\x70\xb7\xdc\x60\x8f\x22\xf8\x6a\x4b\x28\x24\xd8\xe7\x41\x22\x35\x47\xcb\x66\xf2\x23\x02\x38\x21\x23\x6f\x54\x61\xc9\x46\xa1\x05\xe2\x67\xc9\x48\xdc\xb4\x84\xa5\x37\x24\x56\x55\xe6\x69\x46\x37\x97\x6b\xca\x04\x4d\xa8\x7e\x8a\x25\xf8\x34\xb4\x11\xe2\x8f\xf0\x34\x36\x54\xc6\xd0\x62\x28\x73\x70\x7c\x03\xd2\xae\x78\x7d\x72\xb2\x50\x3a\x7f\x6d\xa8\xd7\x89\xa1\xd2\x37\xcf\x27\xec\x9d\x07\xa0\xa4\x66\xec\xa6\xc8\x12\x84\x62\xb1\x43\x6e\x59\x14\xa3\xa4\xdf\x98\xee\x1c\x7d\x34\xba\x00\xec\x00\xa8\xda\x6e\x69\xed\x5a\x85\xeb\xf4\x47\x2a\x9a\xe4\xad\x8d\x05\x12\x4d\x75\x2e\x38\x05\xb8\x42\x24\xe7\x52\xce\x17\x04\xcc\xa9\x55\x62\x41\xac\x5c\x6a\xdc\xdb\x1f\x2e\x61\xde\x6a\xe9\x5d\x01\x8d\x85\xb1\x46\x58\x5b\xa6\x3c\x77\x37\x46\x94\xc5\x91\x42\x5f\x4c\xa6\x63\x1a\x12\x74\xc4\x2d\x74\x6a\x49\xf2\x13\xbe\x11\x58\x8a\x4f\xaa\x04\x96\xfd\xf9\xc4\x4e\xdd\x28\xd5\x3c\xd1\xe0\xa7\x80\x00\x50\x1b\x9d\x09\x6b\x74\x91\x08\xae\x41\x49\x22\x31\x1a\xb0\x20\xd9\x8d\xd9\xbe\x04\x3b\x30\x2b\x7d\xfa\xf2\x5f\x27\x2f\x26\x2f\x26\xa7\x37\xa8\x86\x52\xdf\xe6\x9c\x49\xfd\x71\xc3\x8a\x34\x11\x5a\xc3\x99\x82\xec\x7c\xc0\xaa\x63\x11\xe0\x01\x2b\xb3\xbe\xc1\xd9\x66\x98\x4c\x08\x4b\x67\x55\x35\xd3\xc6\xc8\xe7\x8e\x40\xe0\x63\x5c\xd8\x54\x20\x4d\x02\xea\x09\xc5\xa9\x1c\x5c\xa1\xbb\x2e\x97\x45\xb4\xc0\xaa\x57\xe6\x67\x6b\x16\x4a\x36\xe4\xa2\x49\x55\x3a\x36\xa7\x8a\x4f\x13\x81\xf1\xc4\x23\x38\x0e\x82\x6b\x68\x02\xf0\x22\xc5\xca\x6c\x13\x67\xa9\xb8\xb5\xa7\xc0\x9d\x24\x3c\xa0\xee\xa8\x5d\x1f\x01\x5a\xce\xf5\xd1\x1f\xe1\x88\x98\x93\x4c\x3f\xcd\x25\x11\x74\x6a\xf2\xfa\xe4\xe4\xfa\x08\xba\x39\x63\x56\x20\xb1\x4c\x9f\xd0\x0a\x66\xce\xce\x4b\x26\x40\x9e\x5a\x0c\x1a\x74\x86\x90\x31\x04\x06\xf7\xe3\x87\xef\x26\xec\x7f\xaa\x02\xda\xda\x23\x0a\x1d\xe7\x0a\x82\xc9\x50\xcf\x99\xca\x3c\xe3\x99\xeb\x86\xc8\x8d\xbb\x86\x98\xa4\x09\x81\xfa\x23\xc6\xed\x6c\xad\x19\x4c\xd2\xc4\xcf\xf2\x5c\x2c\x57\xb6\xf4\x84\xf9\x18\xd5\xa7\x01\x59\x41\xcb\x88\xf1\x22\x5f\x20\x14\xe0\xf5\x91\xf9\xe5\xb5\x0d\x67\xfb\x7f\xaf\x8f\x10\x63\x24\x2f\x11\x4a\xbe\xc9\xf8\x1c\x8d\x60\xc7\xd7\x47\x5f\x4c\x26\x93\xeb\x23\x34\xca\xfc\xad\x10\xd9\x86\xad\x78\xc6\x97\x02\x22\x09\x8f\xaf\x8f\xfe\x64\x7f\x27\x25\x9e\x7a\x19\x91\x96\xb7\x37\x7a\xc8\xbd\x4a\x0d\x4d\x65\x77\xda\x64\x06\xbf\x08\x4e\x50\x0c\x5e\xc1\x19\x07\xbc\x27\xd7\x84\x36\xae\x87\x60\xd0\x2c\xb8\xdc\x07\x1b\x6c\x12\x95\xb6\x71\x42\x7f\x68\x56\x33\x30\x37\x36\x2b\x22\x44\xe2\x36\x87\xd2\x5f\x81\x80\xa7\x41\x4c\x24\xcf\xc5\x7c\x63\xde\xbd\xa1\x8f\xb7\xf1\xab\x72\xe9\x3e\x88\xb5\x14\xb7\x3d\x91\xac\xdb\x5e\xb3\xc2\xba\x2d\xdf\x40\x79\xef\x2b\xe0\x26\xe6\xc9\xcd\x9b\xca\x9b\x37\x25\xa2\xb3\x99\x06\x0d\x97\x89\x4f\x00\x27\x8e\xbc\xc3\x33\x69\x79\x55\xfa\x04\x95\x50\x70\x10\xa2\x69\x69\x0f\x44\xaa\x28\x73\xeb\x90\xb2\xd0\xbb\xa5\x6b\xb4\x2c\x1c\x11\x1a\x94\x08\xff\x39\x4c\x1f\x66\xd3\x8d\x37\x88\x51\x70\xe0\xcc\x80\x66\x5c\x26\xad\xb5\x75\xcc\x97\x79\x89\xdb\xed\xa6\x18\xc1\x06\xbb\xe8\xd2\x12\xbc\xd8\x56\x25\x71\x78\xde\x69\x5c\xba\xd3\x6d\xe9\x6a\x48\x80\xb6\x2d\x30\xb9\x84\x68\x97\x19\xe8\xa5\x1d\x68\xc9\x04\x2a\xfa\x91\x19\xf2\x23\x81\x5c\x37\x2b\x34\xad\x27\xf1\x41\xf4\x19\x40\x64\xed\xc2\x32\xee\x0b\xff\x50\x7d\xd1\xdf\x5c\x0b\xee\x4c\xb6\x33\x73\xa6\x01\x2e\x68\x95\xc9\x34\x2c\x34\xde\x4a\xba\xfe\xc7\xe5\xfb\x1f\x7a\x20\x72\xd9\x66\x54\x84\x58\x42\x39\x8f\x12\xa6\xe8\x18\x92\x85\x30\x50\x3d\x40\xcb\xb2\x30\x79\x52\x33\xb1\xe6\x49\x81\x56\xf5\xb9\x51\xd5\x72\x34\xed\xd7\x60\xbb\x14\x5b\x65\x2a\x2e\x22\xe1\xc5\xc4\x38\x49\x1d\x27\xbc\x87\x81\x60\x4b\x6a\x60\x2d\xc7\xd5\xfd\xe9\x95\xf8\x67\xae\xc4\xbf\xff\xbb\xc5\x76\xdd\x7b\x58\xbb\xe7\x85\x39\xdb\x85\x4d\x10\x03\xa7\x4e\xc9\x5b\x6a\x6b\x05\x54\xef\x99\xd1\xe6\x9f\x31\xaf\xa7\xd5\x2a\x91\x28\xe1\x81\x2c\x43\xe8\x2e\xa5\x2c\x62\xcf\x96\x91\xda\xb5\x26\x48\x7b\x5b\xb6\xd1\x7a\xee\x00\x96\x15\xdb\x11\x6f\x71\xfb\x68\x3e\x18\xe2\xa1\xcf\x65\xbe\x28\xa6\x93\x48\x2d\x4f\xde\x9f\x9d\x9f\xd0\xf8\xc7\x01\xc8\xc0\xc9\x34\x51\xd3\x93\x25\x37\x82\xd1\x89\x25\x49\x27\x2f\x27\x2f\x26\xcb\xf8\x8b\x98\xe7\x7c\x8c\x80\x0c\xdd\x55\xa2\x0e\x84\xc1\x5c\xdb\x7e\xf8\xc1\x91\xe7\x7d\xf7\x7d\x95\x49\x95\xc9\x7c\xd3\x59\x00\x0d\x9b\xd1\xde\xdb\x08\x20\xdc\x6d\x97\x5b\x61\xd4\x0f\xa3\xb3\x2c\x41\xd8\x4e\xad\xc5\xcf\x1d\x01\xaa\xd7\x83\xbb\x0d\xfe\x35\x3d\x61\xdf\xa9\x5b\x57\x65\x08\x65\xf7\x48\x01\xd8\x98\x69\xb7\x90\x73\xa3\x07\xdb\xcf\x4f\x98\x85\xc5\x47\xbf\x36\x0a\xcc\xca\x06\x0c\xa5\x2c\x91\x4b\x69\xfe\x89\xf6\x46\x1d\x89\x94\x67\x52\x69\xcf\x46\x86\x20\x77\xdc\x75\xe9\xa0\xb5\x01\xb7\xa7\x8a\x4b\xb7\xa7\xb9\xab\x23\x60\xb0\xb2\xb8\x2e\x40\x2a\xed\x7f\x97\x9e\xd0\x79\xde\xc1\xb6\x77\x54\x5d\x98\x51\x03\x03\x78\x44\xd6\xd8\x43\x80\x6f\x7b\xa5\x41\x8e\x87\xdf\x72\xaf\x9a\x8d\x5f\x11\x85\xb3\x37\x1f\xfa\x98\xfa\x06\x51\xf6\x37\x2c\xca\x06\x76\xfa\x9b\x9f\xaf\x8f\xe8\xe0\x5e\x1f\xfd\xf2\xf0\xc5\xcd\xad\x06\xd6\x89\x99\x4a\x8a\x5a\xb9\x62\xe6\x42\x34\x96\x02\xa0\x2b\x62\x36\x50\xe4\xb7\x42\xa4\x6e\xc9\x9a\xea\x18\xbe\x66\x63\x76\xf3\x83\x4a\xc5\xcd\x6b\xac\x2e\x40\x6f\x67\x18\x61\x82\x90\x6c\xd6\xd4\xec\x07\x07\xdf\x3a\x03\x60\xae\xa0\xaa\x5c\xba\xa1\xf0\x0e\x6b\xd3\x6b\x3e\x18\xe3\x52\xd3\x7c\xed\x6d\x1b\x6e\x10\x2a\xa9\x2a\x80\xc1\xb2\x3b\x98\x2b\x16\x13\xa8\x9c\x3b\x89\x13\x76\x56\x16\x70\xf1\x3c\x03\xd7\x29\x03\x5b\x89\x10\xb1\x1f\xc1\x88\xe2\x15\x45\x00\xec\x88\x2e\x82\x96\x25\x68\xeb\x7d\xff\xb6\xc1\x5d\x81\x2f\x69\x51\x2d\x0d\xd4\x47\x74\x68\xe8\xef\x7e\x6d\x0e\x48\xb3\x77\x35\x3c\x34\x4d\xfb\x60\xf6\x07\xe7\xc2\xa4\x8a\x21\xb6\x15\x98\x47\x29\x70\xb5\xd1\x5a\xd1\x93\x69\xba\x3b\xf7\x68\x4c\x71\x0f\x4d\xd1\xd3\x11\x03\x87\x7d\x88\x91\x59\x8a\x64\xb6\x66\x3b\xf9\x89\x4a\x42\x3e\x61\xec\x3c\xd7\x28\xe9\x42\x4c\xf1\xd4\xa1\x0c\x93\x02\x81\x55\x41\x00\x88\x7a\x52\x96\x63\x9f\xf8\x8f\xbd\x22\x22\x86\x9e\xfa\x75\x6d\xd7\xa7\x93\xd3\xaf\x47\x6c\x95\xf0\x34\xa5\xbb\x07\xc5\xb5\xe0\x82\x9a\x5f\x5f\xbe\x9c\xb0\x1f\x35\xd0\x13\x6f\xa1\xd0\x5f\x7f\xb2\x3e\x6d\xaf\xe3\x6c\xbd\x04\x3d\xea\x45\x39\x52\xd5\x41\x57\xcf\x2e\xce\x7f\xaa\xd4\xcd\xf6\xf8\xa4\x91\x79\x11\x35\xcd\x8a\xdc\x15\x10\x0a\x88\xb1\x77\x39\x14\x97\xe4\x85\xa0\x4d\xb0\xa2\x4a\x26\x22\x35\x4f\x01\x39\x1e\x7b\x73\xbc\x29\xe1\xb9\x00\xd5\x8b\x28\x1d\x45\x30\xdb\xc8\xbd\x4c\x40\x20\x5f\x91\x7a\x3d\x20\xe1\x6e\x04\x99\x9f\xcb\xdc\xae\x62\xa4\x96\xcb\x22\x95\xf9\xe6\x04\x0a\xb1\xc9\x69\x91\xab\x4c\x9f\xc4\x62\x2d\x92\x13\x2d\xe7\x63\x9e\x45\x0b\x99\x0b\x88\xcc\xb6\x35\xaa\xd6\x46\xeb\x33\x5b\xb1\x8c\xbf\x68\xa9\x46\xd1\x87\x82\x41\xf1\xf8\xed\xab\xfe\x57\x99\x52\x41\x13\xb2\xa5\xa3\x1d\xc0\x2d\xae\x55\x7e\xa0\x66\x89\x77\xc0\xcb\xe0\xc6\xf2\x0a\x94\xcb\x6e\x96\x4c\xa6\x33\x5b\xff\x86\xaa\xbe\x89\x12\xd3\x14\x5d\x51\x86\x62\x31\x5d\x4c\x97\x32\xd7\x3e\x5c\xe9\x84\xbd\x41\x2f\xd1\x54\x94\x51\xc5\xe7\x29\x7b\xc3\x97\x22\x79\x03\x55\xf9\xef\x79\xd1\x41\x59\x18\x9b\xf5\xdb\x63\xd9\x6d\xde\xcb\xae\xdc\x62\xc9\xa3\x85\x4c\x45\xb6\x29\x29\x98\xe9\x6a\xb2\x3e\x9d\x94\xf9\x46\xed\xd0\xfc\x0f\xc1\x9c\xb6\x15\xfb\xdf\xee\x28\x5e\x89\xa8\xaa\x42\x2c\x04\xfa\x5b\x6e\x79\x9a\x87\x46\x0d\x0c\x17\x5e\xad\x04\x6f\xd1\x3a\x1f\x02\x41\xb8\x63\xc6\x7b\xa2\x08\x53\x10\x6f\xbf\x42\xaa\xbb\xf3\x53\xb3\x0f\x5d\xbc\xd4\x3d\x0f\x82\x54\x81\x8f\x8c\x89\xdc\x8e\x89\x74\x94\x5d\x07\x0b\x8d\xe5\x70\x5f\x03\x75\xaf\x31\x8e\x70\x4d\xa8\xa3\x56\x16\x1a\xb6\x2e\xf5\x53\xab\x0a\xd4\xd7\xe0\x97\x07\x90\x05\xca\x3a\xa3\xbb\x0b\x05\xee\xdd\x32\x58\x86\x2c\x0e\x9e\x8a\x96\x81\xc2\xec\x0a\xb5\x3a\xae\xb6\x52\x7d\x98\x6a\xc2\x75\x7e\x95\xf1\x54\xc3\xcb\x57\xb2\x6e\x65\xbb\x03\xad\x81\xee\xb6\x9d\xeb\xfa\xd7\x99\x79\x84\x90\x17\xa4\x14\xd0\xb4\x72\xd7\xcc\x16\xf4\x34\x2a\x30\x5d\x8c\xb2\xee\x68\x8b\x9f\x6b\x29\xb4\xee\x2e\x76\x45\xad\x3c\x23\xe2\xd8\x19\x11\xdd\x6f\x78\x07\x0d\x37\xb3\x7b\xc1\xa7\xaa\xc8\x69\xe0\x6e\x94\x7b\xa8\x09\x99\xe0\xba\x53\xb8\xc1\x46\x38\x44\x4c\x95\x1d\x99\x95\x18\xdf\xaa\x2c\x1e\x95\x7c\x8d\x51\xbb\xd2\xec\x49\x0b\xf9\x4c\x1f\x60\xa4\xcd\x44\xb3\x85\x68\x05\x40\xf9\x36\x8f\xcc\x0e\x07\x18\xb4\xe1\xce\x57\x90\x0a\xf9\x0d\x2a\x65\xa4\xaf\xed\x31\xb2\x1d\x8c\x88\xb9\xcd\xb6\xad\x8f\xe9\x0a\x2c\x7c\xd6\x40\xf1\x4e\xe7\x7c\x9a\x48\xbd\x10\xf1\x88\x41\x09\xe7\x33\xaa\xe7\x0c\x52\xdd\x95\xc8\x96\x32\xe5\xf9\x0e\xa5\x70\x7a\xd2\xe0\xaa\xe1\x8f\x96\xfd\x09\x68\x38\xdf\x49\x9d\xef\x41\xd0\xbe\xa3\x64\x8d\x12\x12\xbd\x55\x2f\xa0\x32\xc1\x83\x5e\xf0\xa4\xf5\x82\x46\x88\x9f\xca\xb2\x63\xf2\x1c\xe6\xe9\xa4\xb1\x5c\xcb\xd8\x88\x2d\x5d\x1b\xff\x08\xb5\x6c\x3b\x94\xfa\xbb\x58\x04\x07\xfd\xe9\x73\xd1\x9f\x0c\x09\xab\x68\x4f\x3d\xa9\x39\x9e\xe1\x5f\x95\x48\x0d\x64\xfe\x49\x8a\xd5\xc0\x86\xf7\xe0\x40\xf0\x5e\x45\x91\x82\x58\x7a\xbf\x3a\x94\xd4\xed\x8a\x54\x8f\x90\xf3\x5c\xcc\x55\xd6\x00\x43\x53\x0b\x3a\xb7\x0d\x43\x96\x08\xfb\x27\x62\x56\xa9\xfc\x59\x8d\xba\x98\x8a\x44\xa5\x73\x18\x37\x44\xc8\xb2\x67\x3c\x49\x9e\x95\x59\x95\x6c\x55\x90\xd0\xc2\x64\x0a\xa6\xc2\x58\xea\x48\xad\x45\xb6\x71\xe5\x26\x34\xf2\x9f\x82\xf0\xeb\x6c\xac\x80\x59\x0a\x74\x18\x31\x99\xae\x29\x44\x59\x63\x1a\x25\x84\xe1\x46\x79\xc2\xe6\x02\x82\x0d\x1f\xde\xbb\xd2\x83\x96\x7e\x24\x5a\x4a\xa1\xe3\xb6\xc6\xa3\x45\x0d\xf4\x0d\x04\x16\x5c\x05\x53\x14\x93\x8d\x27\x42\x83\x6b\x40\xa6\xf3\x22\xe1\xd9\x84\x4e\x84\x57\xd7\x2a\xd5\xe0\xb9\xd7\xbe\x27\xcf\xc1\x80\x10\xfa\xc3\x8d\xf9\xe4\x8d\x07\xb2\x40\x5b\x01\xde\xac\x3d\xc4\x5b\x73\x46\xfe\xda\x3d\x7f\xdb\xac\x63\x0d\xe0\xc4\x39\x3f\x4a\xb9\x22\xbe\x2f\xed\xfa\x08\xe7\x60\x48\xc1\xf5\xd1\x3e\x71\x13\x49\x91\xf1\xae\xa8\x78\x6c\x64\x87\x4b\x7f\xf9\x69\x59\x7e\xb0\x11\x5c\xd3\xbe\x65\xb3\x77\x2d\x93\x4d\xcf\x71\x08\xf8\xd8\x96\x31\x5d\xf2\x9c\x52\x8d\xfc\x91\xb5\x0a\x32\xc7\x9e\x01\x9e\xdd\x60\xb7\x40\x6a\x26\x7e\xe7\x93\xda\xc8\x6e\x9e\x7b\x45\x0a\x93\x84\x25\xea\x16\xd1\x64\xf7\x51\xd4\x16\x2a\xcb\xab\xb4\xb2\x69\x03\xca\x86\xb8\x84\x0b\x48\x8c\x82\xbf\xad\x0a\x59\xd6\x36\xb4\x6e\x88\x7b\xa3\x2b\xb8\x26\x30\x88\xd2\x57\x71\x03\x57\x75\xd9\x63\x65\x1e\xc0\xc3\x4b\x64\xa1\x6b\x55\xa9\x99\xbb\x87\xf6\xef\xa6\xa3\xbd\x65\x7a\xc1\x8d\x74\x8f\x63\x22\x2f\x07\xd6\x3a\xe9\xc2\x56\x29\xee\x13\xd0\x3a\x2f\x43\xdb\x74\x5f\x9e\x7f\x59\xb7\x18\xf3\x8a\xbd\x58\x66\x01\x85\x21\x83\x71\xb7\xea\xe9\xa5\xa9\x83\x62\x47\x41\x57\x1d\xc7\xa2\xed\x35\x3f\x74\xa2\xf4\x80\x47\xf4\x23\x96\xca\xc3\x6b\x77\x05\x36\x29\x55\xe4\xab\x22\x0f\x43\x9c\x1a\xaa\x12\xbb\x6c\xaa\x13\x48\x5b\x81\x6a\xc4\x24\x69\x47\x62\x95\xeb\x93\x2f\x32\x11\x09\xb9\x36\xbf\x39\x4a\x3a\xe6\x7a\x0c\x69\x20\x61\xa4\x13\x3b\x77\x59\x18\x23\x52\x29\x20\x30\xc0\x86\x80\x08\xed\xc6\x6b\x91\x1b\xca\x40\x85\x2b\xb5\x1a\x27\x46\xf2\xc7\x3a\x5f\x22\xb3\x12\xad\x7b\x87\x43\x45\xf8\xbc\x00\x4e\xec\x8a\x0b\x50\xc8\x0b\xcb\xdd\xfb\x2a\x6b\x7d\xdd\xcb\xb0\x73\x40\x10\x14\x54\x17\x4b\xbd\x4a\xb8\xc3\x6a\xe2\x73\xd1\x52\xda\xdf\xdc\xd7\x86\xb4\xbb\x47\xd3\x42\x6b\xa1\xc8\x77\xa1\x5d\x51\x53\xf0\xd6\x83\x4d\xc4\x7d\x7b\x6b\x0a\x84\x1f\x2c\x86\x96\x1a\xef\x91\x16\xb9\xd1\x86\x4b\xce\xf4\xe6\xc3\xdb\x16\xbb\xaf\xd5\x85\xb6\xdd\x46\x68\x63\x29\xb4\xe1\x67\xf8\x60\x7b\x85\xfd\x3b\x8b\x1f\x93\xc9\xe4\xe1\xe5\x8a\x3d\x73\xd9\x1f\xd3\x3b\x86\xc2\xcb\xb6\xc3\x82\x52\x0a\xe1\xb0\x85\xc2\xa2\x21\x33\x20\xf0\x86\x92\x4c\x75\x2f\xdb\x02\x7e\x1b\x82\x87\x3a\xa3\x7f\x9b\x02\x8e\x7c\x75\x93\xe7\x61\xa5\xa5\x2e\x0c\x16\x1b\xe7\x4a\xb6\xc9\x32\x16\xa4\x84\x5c\x82\x80\x1a\x8a\xca\xa3\x1c\x34\x9d\xab\x8c\xcf\xc5\x24\x40\x51\x44\x5c\xc5\x12\xff\xd1\x2c\x0e\x96\x25\xb1\xc3\x84\x54\x84\x00\x20\x92\x27\xb7\x7c\xe3\xe1\x3b\x01\x29\xa6\xd0\x29\x6b\xe0\xb4\x32\x8b\xbd\x2a\x75\xc2\x5f\x83\xd4\x80\xa0\x11\x2c\x29\xe5\xe5\xd3\xeb\x4a\x42\xbd\x17\x84\xf2\xda\x65\x5e\x3b\xb0\x38\x2f\x8c\x8b\x82\x50\xd8\x05\x0e\xd3\xd9\x6b\x8b\x34\x98\x60\x84\xae\x86\x6e\x9c\x1b\xca\xef\x04\x0d\xae\x0f\xfe\xce\x6b\x98\xd5\x4d\x09\xe7\xd4\xc9\x93\x73\xae\x3f\xea\x13\x1e\x45\x42\x6b\xff\x03\x86\x37\xe3\xf1\x2c\x59\x71\xf5\xc1\xd8\xbf\x75\x5f\x10\xa8\x0e\xf0\xc2\xc2\x8d\xd0\x3c\xa9\x60\x04\x75\x07\x2c\x6f\x05\x5e\xd4\x91\xea\x74\xad\x40\x1b\xef\xb8\xdf\x2e\x04\x55\x7a\x6d\x25\xa4\x86\xf0\x52\x5a\xe5\xd8\xb0\x75\x07\x6c\x30\x86\xce\xe2\xa6\xf0\x46\x76\xf3\x06\xdf\xb8\x81\x43\x7c\xf3\x83\x7d\x27\xbe\x71\x67\x0d\xa2\xcf\xfc\x1f\xf6\x50\x9e\x9a\x2b\x45\x3f\x10\x09\x0c\xea\x54\x6f\x0d\x0e\xf0\x2b\x4e\x5b\x32\x78\x0b\x81\x63\xfe\x2f\xdb\xf6\x60\xc1\x7b\x49\x76\xb5\xda\xd6\x7d\xc5\xbb\xe0\xc5\x16\x19\xaf\x79\x0f\xd6\x4d\xd5\x77\x1f\x68\x07\xbc\xca\xbf\xdb\xd6\xdf\xa3\x1e\xa5\x92\x51\x42\x53\xa1\x16\xdc\x5e\xe7\xb6\x45\x04\x6d\xd8\x8f\x3a\x99\x22\x31\x35\x00\xa2\xe8\xbd\x27\x44\xbd\x77\xdb\x8e\x5e\x8e\x36\x17\xc7\x5e\xca\x54\xf6\xd1\x3d\x4b\x55\x2d\x46\x9d\xed\x92\x16\x06\xdf\x1b\xe1\xde\x32\x84\x1b\xbb\x80\x37\xe4\xb7\x9a\xb9\x47\x44\x72\xca\x06\x66\x70\x53\x95\x2f\x3c\x58\x05\xf6\xde\x66\x7c\x79\x2f\x6a\x8c\x74\x2d\x1b\xf9\xcc\x0d\xb0\x25\xbc\x86\xd5\xa0\xc8\xde\x34\x6b\xdd\x2f\xeb\x61\xed\x65\x39\x38\x4b\xa0\x9a\xc1\xe1\xf1\xb6\x4b\x77\xee\x57\xd3\x4c\xab\x13\xbd\xda\x79\xbd\x97\xe1\x66\x95\x1d\x53\x14\xfa\x8e\xdb\x61\xbd\xbe\xa9\xb3\x6f\xd9\x5b\x63\xe4\x8d\x82\xd0\x5b\x14\x82\x59\xa6\x24\x91\xd1\x81\x2b\x73\x17\x08\x29\xb4\xc1\xee\x45\x98\xce\xce\x95\x6c\x3d\x78\x52\xb3\xeb\x23\x80\xad\x48\xe4\x47\x71\x7d\x34\x62\x32\x47\x39\x46\x03\x7a\xd1\x54\xad\x01\x72\x21\x6c\x55\xe9\x45\x8f\x3c\x11\xd1\xa5\xa3\x88\x4f\x32\x52\xf3\x8c\xaf\x16\x16\xb1\xfb\xfa\xe8\xaf\xf5\x3e\x34\xd3\x39\xcf\x08\x5b\x93\xb3\xeb\xa3\xb5\x19\x05\x20\x9b\xf0\xcc\x02\x44\xa3\x91\x8e\x3b\x1c\x24\x44\x2a\xfe\x77\x43\xb1\xb0\x97\xe7\xf4\x8a\x4d\x64\x4c\x36\x14\xd2\x01\xb3\xbc\x3e\xe2\xc9\x6a\xc1\x6d\x31\x29\x43\x49\xaf\x8f\x60\x5b\x28\x26\x27\xec\x58\xa6\x5e\xc7\xb6\x66\x33\xdc\x70\x4c\x50\xc1\xd3\x31\xdd\xb0\x6f\xcf\xd0\x0e\x28\xb0\xf6\x28\xfd\x1b\xbe\xc5\x8e\x6f\x01\x81\xee\xdb\x33\x74\x9d\x94\x29\x2c\xf9\x82\xa5\x8a\xe9\x62\x36\x93\x9f\x98\x86\x14\x06\x8d\xef\x03\xbb\x5a\x2d\xf8\x73\xb4\x4d\xc2\x84\xa6\x1b\x4a\xb4\x33\xf3\x08\xa6\x4c\x33\x0e\x46\x3b\x61\x67\xa9\x45\x83\xb0\xa3\x75\xa5\xdd\x69\xbd\x5f\xb3\xf5\xe9\x8b\x11\x5b\xbf\x1c\xb1\xf5\xa9\xf9\x2f\x70\x16\xf8\xeb\x85\xf9\xd7\xab\x11\x5b\xbf\x02\x66\x63\x1e\xbd\x84\x11\x61\x3b\xf8\xe7\xcb\x11\x9b\x29\x75\x8a\xff\x5b\x4d\xb1\x7b\x02\x4e\x70\x1b\x68\xb1\xb3\xfd\xa1\xa7\xed\x11\xf5\xf5\x9a\xfe\x59\x13\x43\x9f\x82\x31\xb2\x1a\x03\xd5\xdb\x1c\xd9\x14\xcc\xd9\x2f\x8a\xb3\xdb\x20\x49\x81\x49\x8d\x26\xff\xa7\xa5\xb6\x07\x43\x05\x02\xe0\xf9\x62\xa1\x98\x9e\x03\xaa\x05\x50\x5c\x73\x45\x2d\xd9\x46\x47\xad\x47\x7f\xaf\x16\x62\x63\x93\x5c\xcb\x2c\x42\x48\x54\x2d\x7b\x95\x98\x9b\xd6\x0e\x85\x11\x37\x17\x14\xae\x1b\xa7\xa8\xa1\xdb\x43\xda\x3e\x23\xe4\xad\x78\x96\xcb\x08\x8c\xfc\x5c\x43\xe6\x1f\xe5\x30\xf6\x8a\x5a\x7d\x02\x57\xbc\x0c\x58\xbd\x93\x83\x24\x57\x99\x88\x7b\xe6\x60\x86\x8d\x2d\x64\xb5\x27\xc7\xd6\x23\xc5\x2c\xba\x93\xe1\x02\x62\x2d\xb2\x32\x2b\x71\xc2\xae\x32\x1e\x7d\x24\xfd\x5d\x7b\xf9\x91\x54\x9d\x91\xb3\xa5\x9c\x53\xae\x22\x40\x21\x00\x16\x03\x0c\xa1\x6c\x2b\x53\x26\xf2\xc8\x56\x67\x45\xa9\x43\x1b\x39\x19\x0c\xef\x5a\x05\xbd\x40\x68\x8b\x4a\x12\x91\x81\x89\xc1\xac\xa4\x5e\x04\x2d\xca\x00\x55\xc7\xab\x8e\x01\xd0\xde\x0c\x33\x55\x4c\x25\xb6\x6a\x07\x09\x1a\x62\x96\x23\x06\x18\xd8\x71\x7c\x9e\x05\x79\x37\xc2\xda\xb9\xf2\x5a\x16\x28\x85\xf8\x50\xf6\xa7\x13\x7e\x30\x14\x88\x42\x79\xb0\x0f\x8a\xa3\xbd\x81\x4b\x51\x4a\x50\xb7\x0b\x99\x40\xff\x46\x1d\x20\x14\x81\xb2\xbf\xc7\xc1\x0c\x79\x78\xf2\x5e\x0f\x29\xec\x4b\xdf\x7f\xaa\xa5\x39\x97\x02\x8a\x39\x6a\x60\xad\x1e\x5c\x4b\x75\xd7\xd2\xfe\xee\xa1\x8b\x86\xb6\x0e\xca\x9f\xa3\xdd\x90\x72\x0c\x11\x07\x23\xb2\x01\x98\x9a\x1d\x97\x5e\x25\xfb\x6a\x69\x64\x2d\xd0\xcd\x0d\xda\xd8\xf3\xc1\x0d\x75\x48\x37\x54\xec\xd4\xdf\x4e\x74\x17\x2f\x13\xb1\x94\x99\xa4\xae\x1a\x15\xaa\xab\x67\x74\x34\xa9\x59\xf9\xfe\x84\xfd\x9b\xa1\xa0\x74\x12\xb0\xf8\x8e\x69\xe4\x05\x3c\x86\x1d\xe3\xe1\x15\x8c\xb3\x5b\x9e\x81\xb1\x66\x21\x38\x69\x89\x16\x96\x12\xab\x30\xad\x54\x5a\xf5\xd3\x83\x65\x7a\x1f\x4b\xab\x1d\xb0\x54\xe9\xbf\xe1\x67\x7b\xae\x50\xf9\x02\x33\x72\x51\x26\xe3\xd2\xee\x07\x36\x51\x3b\x0b\x77\xdf\x73\x85\xe1\x48\x18\xa0\x31\x61\xdf\xf3\x8d\x2b\x42\x60\x96\x09\x73\x75\xcb\x15\xbc\xb1\x55\x8b\x90\x31\x56\xfb\x6d\xd9\x9f\x60\x13\xe0\x72\x67\x22\x52\xcb\xa5\x48\x63\x38\xe0\x76\x03\x53\x71\x6b\x38\x5a\xa8\x79\x9b\x1f\xc5\xdf\x0a\x0e\xb7\xcd\x42\x90\xe8\x9c\xa3\x8f\x60\xc4\xe4\x0c\x32\x41\x80\x55\xdd\x33\xb2\x8c\xaf\xe2\x63\x55\x72\x08\xbc\xfb\xaf\xff\xfc\x3f\xeb\xd3\xff\xfa\xcf\xff\x3b\x82\x7f\xbd\x84\x9b\x03\x7f\x8a\x3c\xea\x6b\xd1\x0a\xd6\x8b\xe7\xbb\x5b\xb8\xc0\x28\x82\x5d\x96\x9b\xb4\x87\xcd\x1b\xac\x82\x4f\xd6\xd6\x4a\x76\xcf\xfd\xed\xac\x9d\x54\xe3\x0e\x26\xd3\x80\x0d\x05\xce\xb1\xdd\xd8\x50\xdd\xce\xdb\xc6\x90\xda\xd1\x7d\x3b\xa9\x2a\x9d\x3e\x30\x9f\xcc\x12\x3e\x67\x22\xe5\xd3\x44\xa6\xf3\x93\x58\x6a\xfc\x57\xb8\x5c\x20\x2b\xa2\x1a\x66\x2f\xa8\xe4\x18\x8d\x7e\x76\x71\xde\x12\x9c\xbd\xdd\xa3\x84\xc2\x6d\x0f\xe5\xc0\x4b\xbc\xaa\xd2\x96\xca\xd2\x54\x7d\xa1\xb5\x9b\xe7\x3b\x47\xaf\xc0\x88\x64\xdd\x97\xc2\x03\xd0\x0d\x0c\x4a\xd4\xfe\xbf\x6f\xb9\x52\xdb\xe7\xf9\x99\xf9\x91\xea\x77\xa8\xdd\xaf\xb4\xde\x7e\xa1\x7a\xf8\x85\xc2\x5b\xe5\xbf\xb0\xc7\xd5\x0a\xe7\xd8\x7d\xab\x7a\x9a\xad\xaa\x88\x4d\x74\x03\x1b\xce\xfa\xa3\x19\xae\xbc\x63\x70\x19\xf1\x64\x5b\x69\x86\xed\x2f\xba\x88\x1c\x82\x00\xb1\x41\xf3\x02\xea\xeb\x08\x7f\x89\x51\xdd\x09\xf5\xf6\x5e\x39\xa9\x53\x91\x5c\x8a\x44\x44\xb9\xca\x7a\x20\x1d\xd6\xda\x07\xe9\x5d\x25\xe4\x21\xc5\x37\x80\x39\xa6\x86\x61\x08\xc5\x51\x54\x86\xa2\x1c\x82\xc4\xe0\x74\x6f\x30\xeb\x6e\xa2\xe9\x03\x37\x13\xf6\xde\x48\x48\xae\x5f\x2c\x0c\xa6\x0a\xcc\xa5\x09\xc1\x14\x29\x86\x82\x80\x7d\x5d\x54\x2f\xbe\x0c\x43\x25\x87\xd6\x04\xbf\x82\x38\xd2\x00\xc7\x71\x53\xb6\xa7\x83\x7d\xab\xb2\x8f\x48\x91\xfe\xa2\x32\xf9\x77\x95\xe6\x3c\xb9\x50\xf1\x59\x91\x2b\x58\xfa\xcc\xb7\x56\x40\x76\x0f\x5a\xf6\xe1\xc6\x96\xcb\xe0\x15\x28\x43\x03\x3e\xbe\x70\x0c\x37\x09\xec\xe1\x89\xf8\xc4\xec\x74\xa9\xd8\x9f\x45\x85\x74\x89\xc8\xdc\x0f\x2a\x87\x1d\x28\x5f\x91\xce\x03\x32\x53\xd9\xb2\x31\x45\xe8\x1e\x43\x22\xbe\x80\xc5\x18\xfb\xe7\x10\xdd\x33\x99\xc0\x40\x7f\x0a\xd1\xb7\x82\x97\x45\xba\xa3\x33\xd2\x24\x14\x8c\x08\xe0\xbc\x72\x12\x6c\xc9\x4f\x72\x62\x9d\xc0\x87\x6f\x82\x1b\x00\xde\x1e\x2b\x26\x53\x26\x20\x16\xfb\xa4\x72\xa0\x7b\x88\x68\x2b\x11\x7d\x10\xab\x44\x46\x5c\xf7\xb8\x1d\xd5\xe6\x07\xbe\x1c\x2b\x11\x4d\x32\xea\xfe\xbe\xae\x06\xde\x86\x03\x6d\x62\xeb\x2e\xa1\x52\x04\x28\x55\x59\xa6\x32\xa6\x52\xf6\xed\xbb\xab\xbd\xb3\xa3\x77\xd9\xa2\xda\x0b\xf7\x42\xc1\xee\x7b\x9b\x90\x82\x1d\x6c\xa3\xaa\xa3\xde\xe3\xb6\x55\x3d\x68\x77\x0d\x8d\xaf\x5d\xbd\xed\xbb\xfe\x24\x98\xfd\x6e\x6e\xaa\xda\x9b\x5b\xd8\x3d\xfe\xde\xc5\xef\xd9\xa5\xc3\x01\x70\x09\xaa\x96\x2f\x09\x8f\xf1\x35\x9f\xf2\xb0\xb7\xd2\x80\x33\x62\xbf\xa3\x34\x14\xc3\x8a\x4e\x5a\xc6\xd2\x64\x15\xfa\x1d\xbb\xf8\xf1\xaa\x62\xf2\x11\x8d\x3d\xe4\x58\x85\xa6\xda\x81\xa2\x5a\xde\x50\x93\x60\x9e\x1a\xde\x86\x80\x7a\x84\x43\xb1\xc9\x17\x86\xf5\x89\x4f\x91\x58\xe5\xc1\x4a\xe5\x3c\xfd\x3b\xc7\x01\x9c\x5c\xbc\xbf\xbc\x3a\xb9\x38\xbb\x7a\xf3\x97\xda\x58\x6a\x56\xc0\xda\x47\x6a\x9d\x1e\x3d\xe6\x11\xdb\xeb\x74\xe9\x80\xc4\xd1\x64\x20\xe3\xae\x2a\x45\xea\x3d\xc5\x48\x5d\x11\x73\xd9\x83\xeb\x5b\x28\x68\x6f\xb7\x67\xf0\x44\x54\x5c\xc1\xd5\xed\x27\x35\x05\x2f\x1e\x6f\x26\x7c\x40\xfc\x91\x81\x01\x6c\xe9\x0d\x27\xa1\xd0\x28\xf4\xeb\xd3\x1b\xe2\x04\x04\x5e\xf0\xb4\x90\x90\xea\xc4\x6a\x67\x28\xa4\xee\x25\x23\x22\xe3\xad\x19\xd1\x12\x30\x7b\x88\xf8\x35\x3b\x9d\x74\x5e\x44\x0b\xb9\xed\x92\xe7\x9b\x6f\xe6\x8d\xfb\x1a\x5e\x78\xe5\xd7\xbd\x9f\xb0\x97\xdd\x1f\x6a\x1c\xf0\x36\x62\xa3\x28\xcc\x96\xfc\xdd\xdb\x47\xf0\x14\x1c\x6d\x3f\x35\xc5\x75\x6e\x27\x1e\xe5\x2b\x61\xbe\xb4\x67\x2e\x5b\x8a\x7c\xa1\xe2\x7d\x09\x86\xc2\x50\xfb\x9f\x5e\x5d\x3e\x98\x11\xb4\x52\x99\x71\xeb\xc9\xaf\x0c\xcf\x1a\xa4\x6d\x82\xc0\xfa\x95\xb5\x16\x52\x0d\x9a\x76\x53\xe8\x23\x9d\x80\x77\x04\xfe\xfa\x96\xb2\x44\xbb\xb6\xbf\xb1\xbd\xf5\xe2\x5b\xcf\x23\xd4\xb0\xf4\x80\x65\x03\xfe\x0f\x83\x88\x45\xec\x12\x53\xa1\x8b\x1e\x47\x61\x4b\xed\x81\x3e\x1a\x40\x43\x19\xb0\xc7\xad\xbc\x53\x9e\xb6\x8e\x82\xa2\x01\x0e\x69\xba\xa1\x32\x89\xf0\x0b\x95\x47\xc5\x80\x3d\xc4\x40\x0f\xa0\xa5\x5f\x43\x81\xd4\x11\x93\x69\xfe\xf5\x97\x23\x36\x4b\x14\x87\x7f\xe0\x8c\x47\xec\xe7\x5f\xc0\x21\x3d\xe3\x91\xf8\x8f\x7f\x8e\xd8\x92\xaf\x7e\xc6\x9f\xfc\xe7\x70\x4c\x53\x99\x1c\xa8\x22\x69\xf3\x2d\xeb\x5d\x53\x15\x09\x8d\x79\x38\xa6\x4b\x87\x11\x93\xe6\xd0\x05\xa0\xf1\xec\x6d\xc6\x67\x39\xfb\x92\x1d\x2f\xf2\x7c\xf5\xfa\xe4\xe4\xdf\xb5\x4a\xc7\x54\x9b\x58\x65\xf3\x93\xe7\x3d\x0e\x1d\x11\x98\x9d\x4f\xdb\xbf\x34\x3b\x6d\xfa\xbc\x5a\xc6\x02\x9c\x37\x21\xf9\x3c\x00\xc9\xa3\x9a\xbe\x1d\xa3\xbb\x68\x5e\xb2\x27\x30\xc4\x24\x79\x5f\xdb\xb4\x07\x74\xd0\x57\x8f\xf6\x5d\x3c\xf2\x3c\xdd\x7c\x36\x73\x21\x23\xc0\x43\x9d\x96\xad\x8c\x3b\x2e\x33\x92\xb8\xb3\x4e\x94\x55\x72\x5c\x79\xf2\x30\x31\xd0\x05\x13\x50\x24\x39\xc7\x30\xe6\x99\xe0\x79\x91\xf9\xf6\x94\x5a\x1c\x92\x7d\xc9\x36\x9d\x43\xf9\xd1\xb6\x70\x25\x34\xfe\xd8\x71\x95\xd9\x7c\x11\x15\xd4\x2f\x53\xe1\xd6\xa7\xec\x58\x65\xe0\xa5\xcf\x9e\xb7\xe7\xa7\x9e\x5d\x9c\xb7\x68\x18\xde\x9a\x57\x37\xa6\xc7\x55\x7f\x2a\xa7\xce\xe7\xcb\xf5\x19\xae\x8c\xc0\x91\x46\x0d\x94\xea\xc9\x4c\x31\x2c\x30\x7e\xc7\xf9\xde\x49\x4e\x12\x69\xb1\x7c\x64\x82\x73\x27\x2a\x43\xc9\x00\x0f\x46\x65\x5a\x06\x41\xae\xd2\xef\xf9\x27\xb9\xac\x2f\x68\x2f\x1f\x75\xd9\x89\x4c\xef\xd0\x89\x13\xd8\x1f\x84\x4f\x37\x2b\x14\x8d\x43\xdb\xbd\x6a\x97\xa7\x57\xd1\x73\xf2\xd8\x58\x74\x52\x7a\x8c\x52\x30\xea\xe6\x36\x5e\xd8\x09\x89\x7e\x13\x9b\xa1\x17\xbf\xbe\x4e\xaf\xd3\x31\x9b\x6a\x95\xe2\xdd\x92\xf1\x6b\x43\xde\xb5\x43\x3f\x64\xe7\x6f\xb1\xfa\x2a\xe3\xec\xe5\x97\x46\xe3\xcf\x78\x04\x15\x3f\x17\xe2\x93\xf5\xad\x8d\x59\x91\xc9\xd7\x66\xa8\x3f\x7e\x38\x67\x5c\xb3\x15\xcf\x08\x70\xe7\x5b\x95\xf0\x74\xce\x52\x91\x9f\x14\x59\x32\xb9\x30\x3f\x7c\x40\x9b\x83\x69\x3b\x66\x62\xc9\x65\x02\xef\xc2\xbf\x6c\xb1\xdb\xd6\x5e\x4c\x23\xec\xe6\x8c\x5a\x8e\xa1\x2e\x6d\xca\x97\xe2\xb5\xab\xa6\x5e\x01\xcc\x84\x0c\xd1\x94\x9d\x03\xe2\xe5\xff\xcf\xde\xbb\x37\x37\x72\x5b\xfb\xa2\xff\xfb\x53\xa0\x94\x53\x25\x4d\x36\x49\x49\x33\x63\x27\x19\xd7\xae\x5c\x79\x1e\x89\x8e\x67\x3c\xba\xa3\xb1\x73\x72\x23\xef\x63\xb0\x1b\x24\x11\x35\x81\x0e\xd0\x2d\x0d\x13\xfb\xbb\xdf\xc2\x5a\x00\x1a\xdd\x6c\x8a\x0f\xf1\x25\x09\xbb\x6a\xc7\x1a\x76\x37\xde\x58\x58\x58\x8f\xdf\x8f\x15\xc8\x01\x8c\x71\x53\x54\xfb\x98\x81\xfe\x84\x7c\x7a\xf7\x9a\x9c\x9e\xbc\x30\x77\x05\x4b\xf5\xfd\xa2\x77\x4a\xfe\xf1\xe9\xdd\x6b\xf3\xeb\xcf\x3d\xd2\x25\x3c\xbf\x79\xf9\x0a\x99\x79\x6f\x5e\x02\x3d\x6f\x7b\x4b\xb1\x91\xe7\x17\xf8\xc9\x37\xee\x93\x6f\x16\xfb\x24\xe1\xa9\x32\xdd\x79\x7d\xfe\xe6\xd3\xdd\xaf\xc3\x1b\x5d\x32\xa6\x89\x79\xff\xc3\xd9\xeb\x79\x43\x88\x9f\x99\x17\xbb\xa4\x2c\x61\xc6\x05\xf9\xf1\xc7\xf3\x37\x36\xd9\x01\x6f\xb5\x65\x9e\x23\xb6\x4f\x38\x3c\x18\xea\x3d\x64\x5f\xc8\xd1\x9f\xf9\xb3\xff\xf9\xc7\x49\xf7\x4f\xb4\x3b\xf8\xf9\x3f\x7f\xfc\xad\xfb\x67\xff\x8f\x97\x8b\xfd\xe3\xf4\xf9\x6f\xff\xcb\xb6\xe0\x85\x6f\xc2\x8b\x35\xb6\xe1\x85\xff\xd7\x8b\x45\x1a\xf1\xd2\x37\xe2\xe5\x1a\x1b\xf1\xb2\xde\x88\x3f\xfe\x89\xf6\x7f\x6e\x6f\x57\xd0\x94\xaf\x7d\x53\xbe\x5e\x63\x53\xbe\x5e\xb6\x29\x5c\xf7\x05\x2e\xdb\xcb\xef\x7e\x38\x3d\x21\x52\xe1\x5f\x2f\x5c\x1a\x9d\xdd\xfe\x80\x9a\x75\x75\x70\xf2\xe2\xf9\xe9\x1f\xbe\x3e\x3d\x79\xf9\xc2\x25\xe0\xfd\xe9\x0f\x7f\xec\xfa\x5f\x4f\xaf\x0e\x6c\x99\xa7\x27\x61\xa9\xf3\xcb\xb2\x5f\xbd\xa8\xbe\x9a\xd1\x82\x96\xfa\x12\xc5\x52\x5e\x24\x54\x81\x60\xc3\x7f\x11\xf3\x4f\x57\x42\xeb\x48\xfe\xcf\xd1\x9f\x5f\xc1\xcc\xc1\x58\x1c\xfd\xf9\x15\xfe\xfd\xe2\xb7\x67\x7f\xfe\xf5\xeb\x7f\x9c\x76\xbf\xfe\xd9\x3e\x7c\xf9\xdb\xaf\xdf\x1c\xfd\xf9\xd5\xc9\xe9\xe9\xaf\x30\xbc\xf8\xfb\x33\xff\xe9\xaf\x2f\xfe\xf1\xf2\x0f\xee\xe5\x17\xbf\xfd\xfa\xc2\xbc\xfc\x8f\x93\xee\xd7\x3f\xff\xfa\x8f\x6f\xfe\x58\x7f\xfb\xf4\xb7\x5f\x8f\xfe\xfc\xea\xf9\xe9\x8b\xd3\x5f\x4f\xff\x78\x72\xf2\xeb\x8b\xaf\xaf\xae\x52\x53\xa7\xf9\xcf\xe9\xe9\x6f\xcf\xfe\x97\x4d\x9e\x14\x13\x48\xd5\x4c\xf9\xd0\xf4\xa5\x92\xc8\x63\xfe\x05\x03\xe7\xbb\x44\x6b\x33\x73\xe4\xc7\xde\x65\x8f\x68\x99\x70\x9a\x19\x81\x56\x02\x79\x9e\xed\x78\x75\x34\x04\xfd\xc6\x1a\xff\xd1\x25\x3f\xff\xd9\xfc\xf9\xbc\xfa\xf3\x25\x2c\x89\x11\xfb\x92\xc8\x4c\x2a\x98\x8a\x11\xfb\x42\x53\x96\xf0\x31\xc6\xef\x4b\x45\x12\x99\x32\x37\x19\xbf\x7b\x07\xff\xf7\xaa\xbd\xa2\xdf\xfd\xf9\xc8\x2e\xb7\xb3\xee\x3b\x33\xb2\xbf\x86\xff\xfc\xc6\x74\xb6\x4b\xd4\xb0\x5f\xd5\xf6\xe9\x2f\xdf\x4d\xd5\xa2\x86\x7d\x57\x9d\x1a\xf6\x8f\x9e\x7f\xfd\x75\xc7\xfe\xff\x9f\x60\xf6\xfb\x93\x82\xbd\x22\x7d\xaa\xd9\x37\x2f\x09\x13\xe6\xc3\x94\xf4\xb9\xa0\x6a\x42\x00\x58\xa4\x4b\x1c\xfd\xf5\x2b\x18\x57\x87\x49\xe8\x0f\x36\x73\x4c\x9a\x91\x4c\x31\xb7\x2a\x5c\x6d\xcf\x4f\x4e\xbe\xe9\x9e\x9c\x76\x4f\x9e\x5f\x1d\x34\x8e\x91\x41\x99\x65\x5d\xf8\x84\x0b\x73\xa6\xbc\x78\xf1\xe2\x4f\xa6\x30\x4b\x4c\x06\x05\x7a\x92\xb2\x7a\xa1\xcf\x89\xd0\x58\xde\x94\xec\x2e\xf8\x98\xa1\xf0\x7e\xe3\x3e\x86\xd1\x40\xa0\x92\x8c\xe1\xf2\xb8\x4c\x68\x16\x14\x6f\x35\x06\xec\x89\x29\xc1\xf7\x06\xa0\xed\x9b\x5d\x3a\x7d\xd9\x3d\x7d\xde\x3d\xfd\xfa\xf3\xe9\x9f\x5e\xbd\x38\x79\xf5\xfc\xa4\x77\x72\x72\xf2\xff\x4d\x75\xd0\x14\xd0\x85\x02\xaa\x0e\xae\x10\x9f\xc0\xa7\x62\x43\x57\x86\x7a\xde\xca\x6d\xe5\x6c\xb6\x02\x3e\xa6\x5f\x5a\x0d\x57\x35\x36\xca\x6f\x5e\xae\xc0\x46\x39\xa6\x5f\xde\x33\x31\x9c\x8e\xdd\x58\x4b\xd1\xb3\xed\x59\x6b\x29\xbe\x4d\x83\xaf\x0a\x4e\x65\xd9\x6f\xfa\x25\x5d\xc9\x28\xa6\x66\x14\xcc\xc5\xa6\x06\x9b\x8b\x8d\x0d\x36\x17\x1b\x1d\xec\xf6\xeb\xd2\x1a\x06\xbb\xcc\x0a\x9e\x67\x6c\xda\x22\x77\xff\xb2\x85\xdc\x9a\x61\xac\xd5\xb2\x52\x6b\x4b\x99\x65\xb4\x3f\x7d\x87\x5e\xe8\xc2\x29\x45\xcb\xf8\x3c\x50\x8b\x65\x4e\x0b\x73\x4f\x5a\x45\x34\xdb\x4f\x67\xaf\xf3\xbd\x31\x3d\xdd\xcf\xda\x34\xc3\x71\xf2\x78\x3a\x18\x44\x9d\x2d\xb2\xa4\xd7\x08\x68\x5b\xf0\x62\xf6\x1e\x5c\x96\x70\x65\x21\x17\x29\x70\xd7\xb4\x9e\x27\x0b\x6d\xfd\x1a\x2c\x1b\x1b\xf7\x59\x9a\xb2\xd4\xc7\x03\xcf\x31\xf4\xdc\xfd\x71\x10\x99\x44\x0b\x07\x10\x57\x3a\xe2\x69\xf7\x3a\xf9\xde\x17\x41\x54\x29\x40\x4d\xfc\x68\x43\xc3\x40\x25\xfc\x3c\xc9\xd9\x07\x66\x81\xf6\x2a\xda\x35\x34\x11\x01\xf1\x8c\x33\xb5\xbb\xc8\x10\x44\x22\x77\xac\xb9\x85\x24\x83\x52\x41\x60\x87\x62\x66\x28\x93\xc2\x86\x0f\xdb\x06\xb8\xcf\x10\xd7\xaf\xc1\xe4\x5a\x43\xf1\xf3\xa6\x27\x42\xcb\x42\x8e\x69\xe1\x40\x63\x16\x01\xb7\x6b\xb4\xa9\xcf\x6c\xe6\x64\xbf\x2c\x2a\x32\xdf\x11\xbd\x61\xf6\x29\x0f\x83\x4d\xcc\xc7\x46\x2f\x9f\x04\xa8\x7b\x47\x65\x6e\x5e\x6d\x36\xbb\x82\x26\x9c\x05\x54\xb9\xf8\x82\xe0\xa2\xe8\x4a\xd5\xb5\x0b\x70\x89\xc5\x50\xfb\x30\x48\x9a\xb6\x4b\xc1\xe3\xbb\x73\x4d\x18\x87\xb9\x09\x48\xde\xa5\xf2\x41\xf5\x36\x0a\x16\x91\xf8\x71\xbc\x60\xed\xe4\xc5\x84\x78\x16\x73\x3b\xa8\x90\xda\x6f\x7e\xa3\x9a\x24\x23\x9e\xa5\x48\x35\x33\xf9\x38\x00\x18\x7f\xa6\x1c\x6b\xfb\x20\xb8\xd5\x05\x04\xd0\xd5\x8f\xf6\x20\xd0\x60\x61\x3c\x7d\x86\x85\xbc\xba\x12\x84\x90\x2e\x54\xf1\xca\xb5\xb5\xf6\x1b\x36\xf9\x4a\x3c\x7f\x46\xc0\x9f\xe9\xbe\x08\x3e\x6f\x2f\x60\xba\x08\xf8\xa9\xd7\xeb\x91\x7f\x33\x25\xcd\x80\x8c\xa5\x9a\xa1\xa1\x2c\x3e\x9b\x19\xd7\x45\x77\x4c\xf3\xee\x35\x9b\xcc\x4b\x80\x9f\xfd\x21\x01\x26\x13\x88\x19\xa3\xc2\x46\x39\xc3\x46\x35\x63\x38\xfd\x19\xcc\xc8\x2f\x63\x9a\xff\x62\xae\x5e\x36\x1f\xca\xdd\xa7\xa1\x3c\xc8\x1a\xa2\x8e\x20\x37\x65\x5f\xdc\x84\x8c\x69\xde\x33\x33\x00\x4c\x0c\x05\x1d\x22\x25\xab\xcb\xab\x2d\x2d\x83\x2b\xc2\x5c\xc0\xc2\xc2\xdd\x33\x32\x97\xc1\xf6\x86\x5c\x1d\x54\xd8\x92\x2e\x1d\xe4\xea\x60\x4c\xf3\xab\x83\x1e\x39\xcb\xb4\xec\x54\x72\x2a\x24\x02\xf7\xe0\xfe\x15\x03\x41\x90\xfe\x61\xee\xac\x0a\x26\x30\xb5\x49\x20\x2e\x27\x12\x56\x21\x66\x7e\x94\x8a\x91\x23\x21\x89\x60\xda\xb9\x22\x7d\xc8\xc7\x33\xdb\x4d\x46\xaa\xa3\x39\xa8\x1d\xaa\xb2\xdb\x24\x44\xee\x94\x0a\x7b\xdc\xf0\x86\x76\x4c\xaf\x00\x15\xc3\x0c\x86\xd4\xb5\x52\x8d\x18\xb3\xd6\x65\x0f\x3d\x88\xd8\x6c\xe6\x08\xd9\x3a\x00\x7c\xfb\x34\x2d\xbd\x36\x71\xdb\x4f\xaf\xcb\x40\xf6\xbb\x5c\x57\xc2\x21\x5e\x30\x97\x99\x1c\x4e\x2c\xcb\x47\xb5\x26\x60\xa8\xdb\x57\x98\x63\x98\x82\x21\x7f\x41\x72\xa9\x35\xd8\x2d\x70\xb1\x38\x51\xf1\x0b\x2d\xe4\x98\x27\xbf\xbc\xaa\xf0\xe0\x40\x72\xa1\x13\x98\xea\x0a\xc5\x80\x89\x02\x12\xaf\xc1\x7a\xe1\x56\x51\xcf\xca\x83\x33\x28\xc5\xd6\xec\x20\x5b\xcd\x17\x8a\x65\x13\xa2\x58\x9e\xd1\xc4\xa5\x69\x7a\x42\xa1\x7a\x5f\x6c\x49\x16\xcd\xc7\xf5\x85\x8a\x89\x67\x6b\x83\xd6\x1d\xe1\xf2\xec\xd8\x06\x74\x8c\xd4\x31\xeb\xf1\xf9\x33\xf2\x8b\x66\xc5\x2f\x4e\x6e\x5d\xb2\xa2\x02\x6f\xb3\xfb\xcd\x67\x0e\xc2\x98\xb8\xab\x16\x2e\xa5\x4a\x26\x68\x3a\x66\x2e\xea\xe9\x2d\x4d\x46\xb6\x40\x3c\x00\x9a\xdb\xa8\x53\x91\x83\x61\x09\xb5\xc9\x36\x32\x08\x05\x8a\x1d\x66\x38\x2b\x5c\x57\x03\x59\x34\x4b\x0e\xd9\xcf\x7a\x57\xe2\xc5\x33\x94\x4a\xae\x7f\x18\x8f\x65\xa7\x5a\x59\x13\xdd\x98\xe6\x1a\x33\x25\x50\x83\xe1\x8a\xb0\x8c\x01\x35\x83\xdb\x7a\x42\x8a\x2e\x4a\xad\x6b\x36\xb1\x65\x39\x7c\x25\x4c\xa1\x44\x34\xe5\x71\x8f\x7c\x44\x64\xbc\x00\x06\x98\x94\x39\x84\x5b\x2a\x9b\x46\x6b\x2a\x34\x92\xce\xcd\x5d\xdb\x6a\xb4\x11\x9b\xd0\x4d\xdf\x18\x23\x70\x60\x56\x51\x97\xb9\x12\x21\x82\x02\x76\x1a\xb7\xbb\x19\xa2\x55\xd2\xfb\x5b\xa7\x61\x99\x7d\xea\xa7\xae\xb6\x4d\xed\x4c\xaf\x61\x9f\xc2\x56\x70\x2a\x81\x2d\xb6\xb6\x65\x9f\xcf\xdc\xb2\x43\x45\x45\x99\x51\xd5\x58\x0b\x30\xf9\x15\x7a\x16\xfe\xfb\xe8\x9a\x4d\xba\xb8\x74\x73\xca\x95\x7e\x06\x95\x30\x9a\x8c\x1c\x3a\x32\xb8\x31\x85\x8b\x60\x28\x6c\x91\x90\xf6\x0d\xaf\x61\x8c\xf1\x11\x00\x03\x25\x46\x99\x31\x3f\xf6\x4d\x75\x82\xe7\x65\x46\x6d\x56\x87\x66\x39\x55\x00\x44\x9a\x14\x52\xe9\x8a\x90\xc8\x16\x18\xe2\x51\xf4\xd9\x88\xde\x70\x59\x2a\x2f\xd2\x4d\x5b\xed\x26\x5e\xab\x40\x82\x31\x58\x50\x1e\xdd\x73\x91\xcd\x50\xa3\x97\x59\x73\xb3\x34\x71\x5d\xc8\xbc\xc2\x54\xb5\xe8\x23\x29\x4b\x64\x0a\xda\x6a\xc1\x72\x9c\x2f\x07\x79\xb0\x18\xc4\xf8\x14\xde\x80\x9d\x32\x3a\x18\x00\x20\x95\x2d\x45\xb1\xa4\x54\x9a\xdf\xb0\x6c\x82\xca\xbf\xbe\xe5\x45\x32\x62\x1a\xf0\xbb\xcd\x56\x40\x0e\x25\x5f\x7b\x35\xbb\x7c\x00\xea\x03\x4b\xc3\x13\xdd\xcc\x78\xcb\xb5\xbd\x8e\x9e\xe3\x91\x56\xc2\x86\xc1\xea\xf3\x6a\x05\x00\x8a\x87\x71\x54\x3d\xa4\x11\x85\xab\x87\x54\x7d\x9e\xa6\x6c\x16\x95\xe8\xb4\x0e\xfa\x55\x63\x76\x37\x1c\x8e\xdb\x62\xe8\x5e\x38\x3a\xd5\x7e\x50\x0b\xd9\xb5\xa7\x13\x26\x03\xd6\x86\x09\xe3\x58\xc3\xe0\x56\x74\xcf\xe3\xe1\x23\x07\xcd\xc7\x3d\xf2\x81\x72\x23\xa8\x20\x95\x0f\x30\xd2\x6c\xc2\xaf\x85\x4e\x2b\x15\xa4\x5f\x6d\x32\x52\xd7\x46\x5e\x2e\x31\x22\xe6\xfd\x70\x40\xda\xfa\x4c\xec\xac\xbb\xb3\x7d\x0a\x9d\xde\xa5\x8e\xb9\xf7\xec\xa2\x9d\x6c\xb6\xab\x61\x50\xd6\x12\x3d\x0e\x3e\xab\xaf\x84\xd6\xae\xdb\x8b\x2d\x4c\xfa\x5a\xbb\x73\xc9\xd4\x0d\x4f\xd8\x27\x07\x08\x76\x47\x17\x9a\xaf\x92\x91\x84\xf3\xc7\xc7\xf4\x83\x25\xc1\xbe\xd5\xcb\xd8\x90\x26\x93\x26\x7d\xe1\xcc\x20\xea\x25\xe1\x7c\x42\x5c\x62\x6d\x6b\x24\x9f\x9c\x19\x6e\x25\x30\x21\x00\x9c\x5f\xa0\x09\xf0\x5e\xd8\x0e\xfc\x61\x7d\x8d\xc9\xe7\x67\x1e\x63\xbe\x25\x6a\x34\x0e\xc9\xf9\xc7\x4f\xef\x31\x0f\x93\x16\xf6\xe4\x30\xed\xb9\x65\xfd\x91\x94\xd7\xfe\x0c\x05\x20\x80\x64\xb5\xe3\xd2\x5c\x1e\xe7\x35\x0c\x48\xc2\xea\x0d\xb3\x43\x42\xe0\xd9\x82\x8d\x23\xbf\x98\xb7\x7f\x09\xb0\x3e\x5c\xb0\x12\x94\xe2\x90\x89\x4f\xbb\xdf\x7c\xfd\xf5\x8b\xaf\x3b\xc8\xf9\x6c\x0e\xb9\x67\x75\xb9\xf0\xf2\xe5\x8b\x1a\x55\x45\x83\xa9\xa2\x3e\x06\x35\xb7\xd2\x8b\xe7\x8b\xba\x95\xa6\x8e\x9e\xd9\x60\x23\xb8\xc6\x9a\x28\x56\xf6\x9f\xdb\xc8\x37\xfe\x1b\x8e\xf8\x6b\x00\x0e\x7b\x0d\x14\x01\x77\xec\xf8\x96\xb7\x2b\x24\x09\x34\x9f\xe0\x98\x59\xac\xcc\x31\x66\xde\x7e\x7e\x7f\x69\x5e\x13\x36\x28\xcc\x5f\xcc\xec\x74\x2f\x90\x52\x91\xd0\xef\x4a\x91\x4e\x5b\xb6\xa7\xa8\x38\xf1\x35\x8c\xb3\xbe\x78\xfb\xc1\x87\x2d\xbc\x3e\x23\x7d\x7c\x84\xab\xcd\xad\xb0\x29\xd8\xfd\xa0\x5d\x87\xda\xa9\x66\x89\x69\x13\xe4\x88\x20\x9e\x7f\x29\x02\x58\x40\x3d\xd1\x05\x1b\x9b\x13\x47\x17\x44\x49\x69\x6e\x43\xa8\xec\xf8\x59\xf0\x58\xe5\x33\x17\x58\x7f\x52\xcc\x30\xaf\xdd\x89\x50\x80\x3b\x69\x1b\x4e\xc0\xa9\x73\xe1\xce\xe4\x4e\xbb\xc3\xf9\xd4\x69\x10\x88\xc4\xca\xa8\xe5\xd6\x01\x79\x8b\x5a\x8e\x7b\xc1\x28\x83\x2a\xf3\x57\xf4\x0a\x09\xde\x5c\x9c\x2c\x54\xbb\x13\x19\x1c\xac\xf7\xa0\xaf\x9a\xf5\xe5\x10\x09\x90\x5f\xc4\xa2\x80\x4f\x64\xe9\x04\x08\x00\xf5\xdb\x7a\x7e\x99\x11\xe6\xde\x92\xfd\xd5\xe8\xa7\x69\xdd\x90\xdf\xd8\xec\xd5\xcc\x32\x21\x3a\xd1\x6f\x9b\xd6\x41\x1c\x15\x2a\x52\x23\x6f\x8c\x54\x06\xc6\xa7\xa3\x5f\x40\x17\x66\xaf\x8e\x8f\x47\x52\x17\xaf\x8c\x1c\x3b\x36\xf2\xfa\x97\x67\x3d\xf2\x36\xc0\xb0\x92\x03\xf2\x4b\xa9\x32\x84\x94\x71\x4d\x9e\x31\x28\xe6\x0a\xff\x8b\x29\xce\x4b\x4a\x73\x53\x80\x19\x80\x8b\xb8\x1f\x5a\x37\x56\xf5\x71\xfa\xd6\xd2\x9f\x06\x63\xe3\x40\x73\x2d\x93\x01\x18\x09\x20\x00\x74\xcc\x87\x23\x0b\x42\xab\x65\xe6\x70\xc4\x7c\xfe\xde\x9b\x1f\x2e\xa1\xdf\x72\x1c\xec\x03\x8d\x14\xb7\x1d\x64\x89\xac\x16\xdf\x2f\x46\xc7\xc5\x96\x42\x59\x84\x8b\xae\x6d\x12\x14\x44\x1d\x4c\x70\x25\xfc\x33\x3a\x61\x48\xaf\xcd\x65\x06\xc3\xfe\xac\xe7\xba\x6e\xae\xdc\x34\xd3\xe0\xc5\x80\xb8\x51\x17\xd4\x09\x63\x74\x91\x31\xaa\xe1\x0a\x65\xf5\x6b\xcc\x8c\xf8\xc5\x4c\x5f\x86\x05\x98\x91\x3e\x7d\xfe\x87\xde\x49\xef\xa4\x77\xfa\x0b\x5e\x52\x6d\xd9\x66\x9d\x71\x7d\x3d\x21\xa5\xc8\x98\xd6\xb0\xa6\x00\x60\x00\x20\x0d\x49\x02\x00\xd8\xd2\x8c\x6f\x6d\x6d\x13\xcc\x78\x84\xa1\x73\x17\x39\xf3\x8e\x51\xdc\xbd\x94\xc0\x9f\x71\x60\x05\x43\xc1\x04\x22\x14\x68\x66\x3d\xaa\xa5\xdf\x2e\x97\x65\x32\x42\xfe\x5a\xf3\xd8\x19\x8d\xb2\x89\x75\xe0\x08\x29\xba\x66\x55\xd1\x7e\xc6\x30\x0c\xb9\x03\xcb\x81\x51\x0d\xaf\x00\x4c\x4a\x99\x9b\x69\xa2\x44\xb0\x5b\xb7\x0a\xfc\x4a\xc2\x05\xea\x97\xda\xd5\x01\xa0\xfe\x5c\x1d\x7c\x0b\x4b\xc4\xac\x64\xfb\x68\xc8\xad\x54\xb7\xaf\xbc\x3a\x3e\xbe\x3a\x80\x62\xce\x88\x53\x4d\xdc\xf1\x6f\x01\x17\x3c\x29\x8a\x33\x10\x52\xe1\xb0\x74\xd0\x55\x62\x4d\x25\xd0\xb8\x1f\x3f\xbd\xef\x91\xbf\xcb\x12\xde\x75\x4b\x14\x0a\x2e\x24\xc4\xa0\xe1\x05\xa8\xcf\x0b\x45\x95\x2f\xc6\x8a\x1b\xbf\x0d\x31\x93\x14\x22\xfd\x3b\x84\xba\xde\x3a\x23\x19\xb7\x1d\x3f\x2b\x0a\x36\xce\x1d\x01\x97\xa9\xcc\x92\x4c\x82\xd6\xa0\x79\x42\x68\x59\x8c\x10\x31\xf2\xea\xc0\x3c\x79\xe5\xa2\xe0\xfe\x9f\xab\x03\xc4\x4a\x29\x2a\xa4\x95\x77\x8a\x0e\xd1\x44\x76\x74\x75\xf0\xbb\x5e\xaf\x77\x75\x80\x26\x9b\x7f\x95\x4c\x4d\x48\x4e\x15\x1d\x33\x08\x40\x3c\xba\x3a\xf8\xb3\x7b\x6e\xaf\xf8\xb6\x94\x8e\xbd\xfe\xad\x8c\x82\xb2\x98\xfe\x30\xc5\x96\xde\xf3\x39\xf6\xff\x6f\x49\xc1\x38\x73\x87\x6e\xe0\x5e\xb1\x50\x84\xfc\x0b\x4b\xbb\x98\x5d\xdf\x08\x27\x07\x3c\x10\x54\xd8\xc0\x55\x9a\x2b\x79\x03\x08\xa7\xc8\x18\xcf\x71\x4d\x28\x3d\x42\xd4\x83\x52\x54\xff\x30\xab\x01\x72\x58\xcd\x00\xfe\xfd\xec\xc3\x7b\x90\xad\xce\xfa\x00\xb7\x0d\x18\x8b\x23\x1c\xe2\x33\x7d\x2e\x8a\x6f\x5e\x9a\x7f\x01\x1a\x95\x54\xba\x5a\xdb\xb5\x4b\xb0\xcf\x18\x00\x9b\x1c\x62\x73\xfe\xcb\x76\xc8\x12\x56\xd8\xff\x7b\xf5\xea\xbf\x1d\xad\x2d\x1f\x0a\x96\xfe\x00\x1d\xc1\x77\xec\xef\x40\x5a\x61\x7f\x11\x84\x1c\xfd\xe0\x25\xcd\xf4\x0b\x6e\xf5\x83\x47\xb1\x53\xf1\xfa\x5f\x1d\x5c\x1d\x10\x08\x56\xe6\xc2\x7e\x66\x83\x45\x2f\xcf\x2d\x31\xe0\x33\xd7\x50\x08\x65\xad\xb7\xd2\x36\xf4\x84\xfc\x4a\x4e\xc9\xaf\xe0\xc8\xfb\x95\xfc\x89\x04\xef\xeb\xe6\x07\x55\xc7\xc2\xf2\x7e\x9d\xfe\xad\xa5\x10\x4b\x5e\x18\x0c\xc5\xcc\x72\x75\x5b\xc1\xba\xc6\x75\x38\xff\x3d\xd3\xa5\x99\xcd\x30\xf3\x32\x35\x1a\xd8\x8c\x83\xff\xba\x3a\x30\x25\x1e\x74\xaf\x0e\x66\xce\x62\xbd\xd1\xb5\x4e\xfd\x3a\x55\x45\xcb\x4b\x2d\x93\xdc\x32\x18\x18\x47\xeb\x26\xb3\xea\x26\x4e\xf2\xdb\x2f\xb9\x14\x4c\x4c\xcd\x42\x7d\x09\xb4\x17\x15\x54\xf5\x3d\x27\xbf\x92\x0f\xe6\x7f\xfe\x62\xfe\xe7\xb3\xf9\x9f\x0b\xf3\x3f\x6f\x39\xac\x4c\x4c\xe9\xa0\xf6\x5e\x76\x89\x8a\x2c\xf0\xed\xf1\x42\x7f\x4b\x2e\x19\x43\xa4\xb7\x57\xc7\xc7\xf9\x68\xa2\x79\xa2\x7b\x82\xeb\xa2\x37\x94\x37\xc7\x49\x59\x1e\xff\x68\xde\x3b\xc6\xfa\x7b\xa3\x62\x9c\x55\x6b\xb2\xd1\xd2\xaa\x4d\x63\x98\x00\x98\x87\x6b\xd3\x3a\xd3\x38\xd3\x36\xd3\x34\xd3\xb2\xc6\x96\x39\x3d\x79\xfe\x92\xfc\x37\x39\xfd\x9e\x83\xad\xf2\xf4\xe4\xe4\xc4\xfc\xf3\xfa\x5b\x72\x4e\x52\x9e\x8a\xc3\x82\x24\x23\x29\xed\x99\x90\xd0\x9c\x17\x7e\x5b\xf7\x9a\xcd\x69\x0c\x2b\xae\x09\x76\xd7\x5a\x30\x6d\x7d\x7b\xc7\x0b\x46\x5c\xfc\x60\x4e\xe9\xa2\xf0\x07\xb8\x55\xff\x8a\x91\x62\x0c\xc0\x8d\x84\x75\x76\x8e\xb5\x43\x02\x37\x07\x31\x71\x02\x06\x64\x80\x17\x92\x15\x81\x8f\x03\x49\x06\x38\x90\xe7\xff\xf3\xcd\x8b\xee\xa9\x91\x06\x63\x3a\x14\xbc\x28\x53\x66\x0a\x51\xf0\x31\x77\x1e\x30\x09\x2e\x57\x2a\xc8\x0b\xe2\x62\xcb\xc1\x32\xae\x7b\x04\x5b\xad\x49\x46\x95\x8d\x71\x80\xb7\x73\xc5\x12\xae\x59\x75\xe5\xa6\x79\x8e\xae\x5d\x25\x4b\xc0\x5c\x28\xf3\x1e\x39\x7a\xdb\x1b\xf6\x5e\x91\x93\xde\xe9\xd8\x82\xac\xf9\x87\x46\xea\x9e\x8e\x7b\xcf\xd0\xa4\xeb\xc4\x99\x03\x6c\x70\x1c\xa7\x25\xf8\x9f\xf9\x80\xdc\x7a\xff\x71\xd0\x12\x3d\xa6\xc0\xba\x60\x47\x84\x33\x94\xd3\x00\xec\x42\x49\x78\xb2\xd8\xb0\x6e\x90\x93\xd4\x43\x12\x38\x3a\x26\xc5\xc6\x0c\x86\xae\x70\xa1\x39\x72\xe0\x48\x84\x60\x8c\x52\xd4\x3e\x02\xa6\x7f\xeb\x1e\x44\xcf\xd0\x90\x02\x6d\x14\x13\xe6\x6d\xae\x03\x68\x44\x68\xcf\x77\x6c\x20\x55\x75\x74\x40\xd5\xbe\x71\x6e\x00\xf3\x12\x98\x16\xae\x0e\x12\x2a\xa4\x00\xfc\x52\x33\xf5\x57\x07\xd6\xe8\x3d\x66\x54\x58\x75\xd6\x2d\xc7\x63\xdb\x44\x57\x04\x4d\xff\x59\x82\x95\xbd\xcc\xcd\xe8\xa4\xf2\x56\x90\x23\x4b\xfd\x54\x21\xc3\xe1\x79\x98\x28\xd0\x66\x01\x7f\xdf\xfe\xcd\x05\xf9\x60\x1a\xa5\x35\x7d\x86\xdc\x49\xa6\x36\xf0\x2d\xd1\x1e\xf9\x41\xda\x39\xb7\x00\x2c\x99\xd4\xe0\x23\xea\xc3\xa3\x81\xa2\x89\x15\x07\x28\x5a\x2b\x67\x0b\x46\xaf\x98\x57\x2d\x1a\xb6\x5f\xda\x47\x66\x0a\xa1\x0b\xcf\xe0\xf4\xb7\x8b\x0c\xc2\xf0\xad\xcb\xab\x67\x4f\x5d\x3e\x14\xbe\x44\x69\xe3\x61\xac\x26\x0d\xe6\x33\x5c\xf9\x46\x89\x62\x43\x5a\xf0\x1b\x06\x03\xff\x16\xb5\x36\x0d\x7d\x38\xed\x7d\xed\x8b\x08\xb0\x2b\xa9\x26\x57\x07\xa7\x5f\x9f\x9c\x8c\xaf\x0e\xec\x6b\x7f\xe1\x77\xbc\xf8\xe2\x9b\x0f\xdc\xbc\x69\xf6\xaf\x13\x36\xa6\x09\xff\xaa\x4d\xe8\x0f\x6f\x7f\x7a\xfb\x09\xa2\xa1\x50\x54\x66\xd9\xa4\x09\x7f\x46\x11\x22\x03\x14\x57\xd0\x77\x9c\x6e\xf3\x79\x84\x49\x88\xa0\x84\x8e\x64\xc6\xec\x73\x07\x60\xcd\xbe\x30\x65\xf6\x5e\x0f\x1b\x21\xba\xd5\x8a\xb1\x01\x20\xc8\x31\x56\x98\xff\x85\x85\x0f\x43\x2b\xc5\xd0\x46\xab\x4c\x40\x51\xbc\x65\x19\x2e\x31\x23\x56\x8c\x8c\xac\x18\x56\xbb\xcc\x85\x1c\x09\xeb\x3d\xae\x2f\xca\x1e\x39\xba\x94\x8e\x1b\xd6\xec\x87\xfa\xe3\x0e\xae\x3e\x23\x63\x53\x3e\x18\x80\x38\xc5\x60\x98\x2a\xc3\xd2\x8c\x0b\xec\x74\x77\x57\xe1\xf8\x32\x4f\x2c\x76\x9f\xdd\x66\xda\x4d\x6e\x05\x52\x78\xab\x38\x8c\x1a\xdc\x11\x81\x49\xcd\xec\x56\x73\x9f\xa5\x19\x19\x51\x91\x82\xca\x07\xf9\x2a\x56\x8c\x8c\x64\x5e\xc5\x70\x51\xdb\xd3\x84\x9a\x2a\xb8\x59\x20\x46\xd1\x96\x0a\x7d\xce\xe6\xfe\x87\xda\x3b\xe8\xa2\x76\xec\xfd\x6b\x4d\x04\x99\x36\x65\x7a\x01\x15\x59\xf7\xc6\xac\xa0\xbd\x9b\xd3\xde\xd9\xc5\xf9\x5f\x1a\x2c\xd5\x4d\x15\xd9\xbd\x52\xb7\x99\x61\x26\x25\x48\x22\x17\x8f\xe3\x59\x60\x3c\x5f\x8c\xd9\xb3\x03\xa6\x54\x1d\x4f\x9f\x22\xc7\xf5\x22\x34\x24\x3e\x3c\x6f\x8e\x49\xe3\xec\xe2\xfc\xa7\x06\x65\x77\x00\x97\xcf\x52\x07\x4e\xe4\x16\x71\x8b\x72\x2f\x7c\x44\xe3\xa5\xbd\xf5\x5b\x5b\x04\x72\x7f\x17\xc0\x1a\x30\x14\xb0\x19\x1d\xbc\xba\xbd\xab\x65\xb4\x60\xc0\x54\x63\xad\x08\x36\x9e\xc8\xf9\xd1\x15\x03\xb7\x7a\x29\x82\x12\x70\xab\xb4\x82\xd3\x0e\x79\x61\xfd\x0d\xc7\x89\x1c\x8f\x8d\x56\x33\x39\x06\x92\x1f\xde\x2f\xcd\x42\x39\x4e\xd9\x0d\xcb\x8e\x35\x1f\x76\xa9\x4a\x46\xbc\x60\x10\x27\xe5\xa8\x4f\x6e\xcc\xc5\x50\x0a\xdd\x1b\xa7\xbf\x9b\x81\xbd\xbd\x88\x95\xee\x9a\x8b\x79\x28\xee\xdf\x73\x61\x31\xdc\xed\xdd\x15\xdd\x7f\x7e\x70\x5d\xbc\x1a\xc0\xb4\x07\x68\x71\x55\xa8\x41\xe5\x32\xaa\x86\x1d\x54\x03\x31\x70\xb4\x04\xfe\x72\xe1\x71\xcf\xd0\xf4\x03\x37\x2e\x5d\xf6\xc7\x46\xdc\x07\x90\x66\x3d\xf2\x1a\xad\x32\x7d\x56\xc5\xf8\x9c\x0b\xf2\x9a\x8e\x59\xf6\x9a\x6a\xb6\xf1\x41\x07\x74\xa2\xae\x19\xbf\x15\x86\xfd\x1e\x1e\xa4\xc6\xae\x5a\xb8\x4a\xbf\x49\x67\xec\xb5\x79\x86\xd9\x3b\xc4\x0b\x08\x0e\x5b\xec\x3b\xa9\xde\x38\xce\xb4\x3b\xed\xb0\xcd\xf6\x34\xc9\x2f\x2a\xa1\x62\x13\x38\xab\x70\x04\xc7\x56\x99\x2b\xd9\xa7\xfd\x6c\xe2\x3e\x75\x30\xfe\x8e\x4b\xf1\x0e\xea\x02\x65\x73\xcc\xbf\x9b\x58\x87\xc1\xf9\x9b\x4f\x73\x79\x8f\x20\x02\x49\x0e\xdc\xb2\x84\xfc\x6c\x07\x57\xaa\x7c\x72\x76\x61\x8f\x56\x4b\x91\x8d\xeb\x1b\x67\xcd\x85\xa9\x98\xaf\x46\x2c\xcb\x1d\x29\x0a\x51\x10\xe8\xe2\x0c\x91\xf6\x44\x19\x43\x2e\x3b\x2b\x6e\xa5\xba\xee\x32\x73\x6c\x41\xb5\xb7\x74\x52\xa9\x2e\xe4\xb5\x2d\x21\xa1\xc2\x6b\x8d\x34\x37\xa2\x56\x71\xc8\x6c\xac\x37\x8e\x42\xb0\x2f\x62\xba\x40\xf3\xad\x6a\x31\x41\x2a\x54\xd8\x43\x70\xb5\x97\x83\x2a\x66\x0d\x1e\x31\xdd\xf1\xcd\x0d\x0c\xd5\x68\x5c\x16\x43\xe6\xd8\x54\x4d\x97\x4d\xd1\xa8\x87\x79\xf6\x1a\x84\x8d\x84\xa8\x24\x8c\xbb\x84\x11\xb7\x83\x05\x61\xcf\xe2\x3a\x88\x86\xb7\x43\x6c\x7a\x65\x1b\xf6\xae\xb2\x90\xbd\xb2\x11\xb0\x60\x22\x6b\xe0\x2a\x7b\xf1\x7c\x7e\x81\x3d\x34\x55\x76\x5c\xc0\xb8\x2d\x16\x86\xdb\xc1\x82\x62\x0b\xd1\xd0\x5a\x2f\xc0\x49\x2b\x92\x49\x79\xad\x09\x2d\xc8\xff\xe9\xbe\x93\xea\x96\xaa\x94\xa5\xe6\x2f\x47\xd5\x23\x15\xf9\x3f\xdd\x4f\x8c\x66\xdd\xf3\x3c\xf8\xcd\xca\xab\xde\x27\x36\x96\x05\xa0\x1a\x90\x23\x17\x30\x07\x2c\xab\xcf\xcc\x42\x18\xb2\x5a\x97\xcf\x2f\xd6\x43\xc5\x74\xc7\x7e\xbd\x9c\xb5\x03\xee\x15\xae\xba\x2c\x2d\xb0\xa3\x63\xac\x68\x64\xbd\x8a\xe1\xd8\xe0\xda\x64\xdd\xfa\x87\x63\xa6\xf8\x5a\x7a\x34\x96\xf0\xae\x1e\xb4\x8d\xdc\x3c\xe7\xaa\xff\xbd\x16\xc9\x05\xa3\xe4\xe8\x2b\xba\xf6\x44\xaf\xaa\xab\x4d\xc6\xd0\xaa\x81\x07\xf5\x41\xb5\x1f\x79\x2d\xb0\xfe\xb4\x62\xe4\x3e\xb8\x39\x9d\xee\xee\xcf\xab\x2b\xa4\xef\xb9\x2e\x16\x50\x4a\xdf\xdb\xc8\xbc\x0a\x90\xd3\x3d\xe9\xa0\x3e\x9d\xc9\x5b\x2f\x9c\x0a\xe9\x59\x3b\xfd\xb9\x41\x0b\x02\x64\x47\x51\x1b\xdd\x6b\x6d\x14\x56\xe7\x3c\x01\x82\x2f\xb5\x2f\x87\x8d\xcb\x0a\xbf\x41\xee\x23\x29\xa3\xd2\xbd\x3d\xa5\x7b\x41\x91\x6c\x57\xde\xde\x08\x60\x10\x8c\x9b\x17\xc2\x9f\xa6\x73\x19\x5b\xc4\xdc\x27\x8f\x79\x1d\xe4\xaa\x55\xb7\x12\x5a\x2d\x40\x30\x60\x8e\x18\x44\x4a\xa0\x99\xd2\x47\x12\xa5\x0b\x85\xd2\x14\x6c\x28\x55\x4b\xf2\xed\x54\x30\x8d\x7b\xb1\x2e\x07\xfc\x05\x89\xa5\xa4\x41\x27\xe5\xdb\xd8\x67\x46\x5f\x05\x41\x0a\x1e\x7f\x72\x48\xb3\xec\xf0\xd9\xb6\xb3\x7b\x86\x0d\x83\x4c\x5b\x37\xe1\x1d\x77\xbb\xa9\x2e\x44\xf8\xb3\xed\x6e\x85\x35\x4e\xde\x42\xea\x1f\x1f\xe7\x99\x9b\xa2\xda\x9b\xd6\xb2\x83\xe4\x8c\x76\x30\x90\xbf\xf7\x1d\x18\x49\x2b\x34\xfc\x0e\x0e\x99\x4f\x0f\xa0\x01\xe1\xb5\x3d\x68\x06\xa1\x3a\x0e\xc8\xef\x57\x07\x2b\xdc\x4a\x17\x10\x85\xd7\x56\x14\x42\x4e\x9c\xf9\xdb\x85\xce\xfa\x4e\xd8\x69\x7c\x27\xe5\xe1\xd4\x8b\xc1\xe2\x3c\x1c\x48\xd9\x9c\xe7\x0d\x5c\xd6\xf3\xac\x54\x34\xab\xdd\xd9\xfd\x1c\xdd\x23\xda\x73\xde\x30\x55\x2f\x06\xc0\xf5\xbc\xb6\x3b\x6b\xdb\xd1\x5c\x50\x84\x6c\x92\x2d\x2f\x46\x36\x37\x92\xaa\x68\xa5\x7f\x6f\xc6\x5a\xf9\x17\xeb\xdb\x54\x97\xc3\x21\xc6\xea\xc3\x1b\x96\x3b\xfd\xee\xc1\xda\xfc\x8e\x34\x37\xc0\x32\xa3\xea\x87\xf9\xf3\x1d\xbe\xea\xad\x0f\xf6\xb7\xf6\x99\x27\x36\xdf\x01\xf1\xbe\x02\x5d\x15\x8c\xc9\x7e\xd5\x00\x3b\x85\x2b\x48\xe6\xf4\x5f\x25\xcb\x26\xf6\x2a\xdd\xa8\x13\x5c\x64\xe0\x72\x49\x30\x5d\x51\x31\x73\x7d\xc2\x2c\x0d\x20\x30\x80\x84\x28\x9b\xc0\x62\x86\x0f\x4a\xef\xcb\x62\x54\x55\x01\x88\xed\xb6\xea\x8a\x84\xa7\xd2\x0c\xcc\x29\x97\x14\x19\x79\xfd\xfe\x9c\x78\x08\xed\x95\xf8\x8a\xc0\x34\x63\x15\xe6\xbf\x52\x3d\x2f\x6a\x18\x62\xb9\xa8\x1e\x59\xc5\xc7\x45\x2c\xd7\x2d\x3c\x9d\x9a\xc5\xa8\x2e\xe6\xb9\x76\x5a\x34\x3a\x00\xc0\x75\x76\xab\x78\x51\x30\xe1\x94\x68\x48\x5e\x07\x5a\xf6\x1e\xf9\xa9\x96\x72\x17\xe4\x00\xe1\x2c\x90\xfe\xa4\xa2\xb0\x05\x6a\x23\x20\x8c\xe5\xc5\x04\xc3\x74\x15\x07\x68\x45\x51\xcf\xe5\x87\xd0\xcd\xca\xec\x43\x05\xa1\x59\x3e\xaa\x10\x76\x9d\xba\x8e\x7c\x0b\x10\xc6\x53\x31\xa7\xd7\xfc\x93\x0d\x96\xf8\x5c\x06\xe9\x50\xf5\x78\x4e\xb0\xb1\x58\x7b\xc7\xe5\xd4\xb0\xd7\x10\x7b\x21\xc5\x1c\xc9\x29\x6c\x23\xb1\x02\xe7\xb0\xa4\x3c\x08\x8d\x66\x37\x4c\x98\x72\x79\x41\x86\x8a\xa6\xa5\x11\x30\x2b\xac\x84\x1b\xa6\xfa\x0b\xd8\x08\xfa\x53\x22\xc3\x19\x07\xcc\x92\x24\xf8\xc6\x11\x66\xbf\x8b\x24\x2b\x53\xa6\xc9\x90\x15\x1d\xf8\xa0\x43\x6e\x69\x91\x8c\x3a\x16\x60\xb8\x63\xb5\xd5\x0e\xc9\xf1\xe7\x94\x65\xcc\xfc\x13\xff\x9b\xc8\x2c\xc3\xf0\xdf\x8e\x65\x30\x90\x5f\x26\x5b\xd7\x07\x6e\x16\xba\x74\xde\xd4\x8d\xa5\xad\x9e\x97\xb9\x5a\x41\x93\x9d\x76\x86\x5e\x70\x6f\xb5\xe0\xe6\x94\x1c\x21\xd3\xbf\xa5\x5b\xa2\xc4\x86\xec\x4e\x37\x41\x55\x6d\x3e\xb4\x86\x9f\x67\x8b\x6b\x14\x2b\x1a\x5e\x6a\x12\xbf\xfd\xd0\x6d\xea\x2a\x53\x2b\x79\xde\x95\xe1\x5e\x7a\xf9\x7c\xfb\x48\xf8\xe6\xd4\x9d\xf8\x93\x67\x3b\x43\x65\xdc\x45\x94\x23\xab\xd5\x94\x6b\x21\xa0\x2d\x0d\x4d\x71\xd4\xe9\xfd\x89\xd5\x27\xcd\x26\xf1\x12\xd8\x46\x4c\xd6\x14\xb2\x65\xf5\xfe\x68\x73\xd9\xb1\xcd\x65\xb1\xd1\x0f\x5f\x75\x12\x68\x6a\x45\xe0\xc0\xb7\xac\xcc\x81\x5c\x38\x48\x34\xda\x4a\x76\xed\xa0\x9c\x49\x26\xdd\x18\xfb\x4a\x64\x4c\xc5\x0d\x4c\x4b\x95\x4a\x54\x60\x74\x48\x9b\x8c\x20\x1b\xb3\xdb\x79\x5b\xc7\xd2\xa7\xf4\x32\x36\x24\xb7\x93\x5a\xc7\x72\x1f\xcc\x4b\xb5\xa3\x65\xf3\x16\xa6\x9f\xa6\xbd\x42\xb3\x85\xba\xf6\x00\x1a\x81\x5b\x08\x71\x92\x8d\xb2\x7c\x43\x79\x86\x09\x03\xcb\x18\xfd\x9d\xb7\xd8\x0a\x2c\x25\x65\x81\xf1\xf9\x76\x7d\x62\xf2\xa7\x51\x56\x80\x55\x22\x1e\x56\x7b\x7c\x58\xc5\xd3\x60\x27\xa7\x41\x0c\x99\x88\x21\x13\x31\x64\x62\x7f\x42\x26\x68\xce\xef\x3a\x1f\xb7\x63\x39\x5d\x50\x2b\xf2\x7d\x5c\x4c\x9e\xec\x83\x8a\xf4\xd3\x74\x93\x37\xa2\x1e\xbd\x01\xf3\xd3\xc7\xbc\xc9\x56\xd5\x9c\xff\xda\x7b\x2e\x8d\xc1\xa6\xa6\x59\x5c\x21\xb0\x64\xd9\xed\x68\x74\x1f\x47\xc3\x1a\xb5\x99\x3d\xd6\x66\x52\x35\xf9\x54\xce\x1b\x77\x48\x34\xb1\x43\xd9\xa9\x71\x12\xd3\x82\x8c\x65\xea\xf9\x21\x75\x98\x56\x6d\x16\x88\x99\x19\x0d\x9a\xc6\x99\x91\xd1\x08\x49\x01\x20\x46\xc1\x28\x61\x1b\x48\xca\x15\x4b\x0a\x7e\xc3\xdc\xe1\xa0\x81\x4d\x0e\xce\x07\xa6\x14\x48\x66\x9d\x4b\xa1\xd1\x66\x2d\x2a\x4c\xb2\x5c\xc9\x84\x69\x38\x0a\xfc\x85\x0f\x65\x38\x01\x36\x5d\x97\x2f\x40\x15\x7b\x45\xba\xe4\x2c\xcb\x5e\x41\xb6\x71\xaa\x26\x90\x65\xac\x0b\x3a\x64\x55\x2a\x87\x2d\xae\x89\x45\xb2\x0d\x7f\x2c\x4d\xd8\x05\x53\x5c\xa6\x97\x2c\x91\x62\x2e\x9a\x96\x39\xab\x3d\x19\x03\x17\x44\xe3\x57\xa4\x8f\x99\x38\x45\x85\x4f\x5b\x01\x83\xa0\xc1\x39\x6d\x7a\x1b\x84\x14\x5d\x97\x54\xe2\xc0\x4f\x51\x19\x40\xe5\x15\x80\x4e\xab\xa9\xc7\x52\x08\x1f\x8f\x59\x6a\x34\x96\x6c\x52\x41\xc1\x7a\xd7\x83\xe0\x19\xba\x47\x1c\x10\x1a\x74\xd0\xac\x0a\x2e\x2b\x1f\x6a\x05\x82\x05\x59\x46\x21\xf4\x44\x1d\x9c\x84\x82\x12\x64\x3b\x64\x2b\x19\xd4\xb1\xbe\x2c\x20\x2b\x26\x11\xb5\xb4\xf1\x0e\x00\x93\x95\x70\xf1\xe3\x65\x60\x27\x97\x01\xa9\xf2\x11\x15\x6f\x1c\x86\xdf\xbc\x6d\xf2\xc6\x0c\x60\x02\x9c\x64\x24\x47\x78\x03\xa7\x04\x5f\x28\x99\xd3\x21\x6c\xa0\x0b\x99\xf1\x64\x62\x1d\x0c\x81\x13\x0a\xf6\x8c\x2b\xc0\xec\xb2\xd3\xde\x1f\x7a\xe4\x12\x37\x14\xae\x6e\xdb\x0e\x3b\x61\x1a\xb2\xb7\xa0\x89\x30\xac\x03\x80\xdb\x3a\x1e\xd0\x4c\xdb\x4c\x96\x2b\xdb\x83\xab\x03\x32\xe0\x02\x12\xaf\x54\x90\xde\x86\xf9\x42\xc7\xce\x09\xe7\x27\x17\x8b\x3f\xd4\xd5\x47\xda\x46\x4f\x58\x64\x90\xa0\xe9\x52\x4d\xf7\xcd\x9d\xdb\x9a\x15\x98\x0a\x05\x2b\x40\x16\xa3\x55\x3c\xf0\x66\x44\xa4\x48\xdb\x79\x2e\xef\xa1\xe6\x5e\xd4\xca\xbd\x2b\x7c\xff\x83\x15\x5d\x83\x32\x1b\xf0\x2c\x63\xa9\x93\x7b\xd4\xea\x22\x68\x22\x4e\xa8\x52\x46\xba\xc8\xb2\x80\xc9\x30\x9d\x76\x37\xb1\x0e\xa1\xe4\xe5\xc9\x9f\xc8\x6b\x29\x06\x19\x37\x72\x12\xdd\xd6\x55\x8e\x98\xb9\xa1\xb0\x74\x46\x1c\x7f\xde\x1c\xe1\xf9\x07\xa9\x05\xd3\x4e\xc9\x48\xde\x92\x21\x55\x7d\x3a\x64\xa4\x72\xff\x55\x87\x10\x53\x98\xb4\x36\x63\x72\x3f\x36\xb6\xc0\xec\xb9\x05\x21\xee\x24\x70\x8e\x0b\x81\x6b\x48\x80\x4d\x2b\xe7\x2d\xfb\xc2\x11\xf8\xb8\x5a\x90\x9a\x15\xfe\x52\x6b\x21\xcb\x7b\xc1\xca\x73\xa9\x57\x4e\x66\x75\xbd\x8b\xa6\x5e\x59\x8f\x9c\x25\x09\xcb\x01\x67\xa3\x76\x12\x1f\x62\x1f\x0e\x49\xd7\xee\x96\xfa\x6e\xd2\xdf\x92\xc3\xef\x68\x72\x3d\x84\x64\x5a\xf3\x16\xda\xdb\xc0\xe4\x5f\x1f\x38\x09\xf0\x2d\x56\xde\xd7\x0b\x71\x3d\xe8\xfb\x92\xbe\x25\x87\xef\xa4\x62\x41\xb1\xe6\xee\x9c\xd0\x14\x53\x14\x61\x7c\x40\xb3\xc1\xf2\x34\xaa\x0a\x53\x05\x0e\x7c\x19\xeb\xc2\x9d\xd8\xf8\xbd\xa2\xae\xec\x2f\x74\xb3\xe8\xcc\xa9\x88\xa6\x00\x45\x22\x45\x13\xb9\xee\x61\x55\x0c\x1e\xe1\x55\x6a\x57\x6c\xc8\x75\x81\x1a\xd8\xce\x86\x60\xed\x8d\x58\x7a\x38\x6a\x98\x58\xdb\x1e\x86\xb5\x57\xbe\x42\xf7\x77\xba\x0e\x36\x50\xfd\xf2\x43\x90\xeb\x2d\x76\xf8\xbe\x95\x6d\xbf\x7b\xa6\xc6\xe7\xcb\xd4\x58\x16\x23\xa3\x2e\x27\xbb\x59\x52\xeb\xaf\x7d\xe9\x21\x2f\x8b\x91\x54\x0e\xaa\x64\x07\xfd\x5f\x6f\xe5\x2b\x74\x5f\xea\x04\x60\x9d\xb6\xd9\xeb\xb5\xd4\xf9\x7c\x57\x9d\x7d\xbe\xec\x2e\xeb\xd3\x22\x19\x6d\x6d\x7c\xd7\x50\xdb\xb2\x23\x7b\xff\x2a\x9f\x43\xb8\xe8\x32\x75\x06\x70\xa0\x5b\x57\x06\xd6\x5e\xf7\xb2\x03\x9e\x48\xa9\x52\x2e\x76\x22\xb5\xd6\x5e\xf7\xb2\x9d\x77\xf1\x0f\x53\x38\xd6\x2b\xd5\xbe\xf4\xc2\x5b\x6f\xf5\xcb\x76\x9e\xdd\x80\x89\x6e\xcb\x73\xbe\xc6\x5a\x97\xee\xb0\xd7\xba\xb7\x5b\xef\x20\x93\xb7\x60\x75\x94\x59\xaf\x02\xe8\xdd\xc9\x8a\xe3\x63\x3a\x64\xd6\xcc\xb1\x93\x06\xd8\x40\x03\x2e\x86\xdb\x5e\x78\x6b\xae\x79\xd9\x45\x20\x64\xca\x76\x34\xe4\xeb\xaa\x79\xd9\x2e\xe3\x3a\xdb\x6e\x9d\xaa\x4f\x93\xde\x4e\x55\xf1\x0d\xb5\x60\xe9\x69\xdf\x50\x3b\x96\x9d\x10\x9d\x8c\x58\x5a\x66\x3b\xd8\xf0\x6b\xae\x79\xe9\x09\x58\x73\xfd\x4b\x0f\x3c\x2b\x0a\x2e\x86\xeb\x39\x6a\x97\xef\x3c\x66\x51\x6d\x7d\xce\xd7\x58\xed\x4e\xfb\xdc\x9c\x6d\xfb\xd7\x0a\x11\x33\xef\x80\x26\xea\xa7\xd3\x3b\x82\x65\xdc\x2b\x98\xd7\x07\xae\x5f\x06\xf9\x30\x8e\x69\x56\x10\xea\x12\xff\x1c\xf7\xa4\x65\xf5\xfa\xac\x38\xeb\x78\x1c\x67\x74\x50\x23\xc6\x23\x4d\x46\xe4\x9a\x4d\x42\x4a\x56\x72\xd8\x3b\x9c\x76\x24\xdb\x04\xbd\x42\xb3\x6c\x10\xe0\x79\x5a\x18\x43\x60\xb0\x93\x15\x4b\x2b\xf8\x8b\x42\xce\x9c\x5a\x79\x94\xe8\xb2\xdf\xf5\x4e\x27\x5e\xb0\xb1\x8d\x10\xc4\x97\xa1\x64\x24\x66\x0d\xa8\x5a\x35\x23\x03\xcb\x76\x36\xa6\x85\x7e\x45\x0e\x07\xaf\x2c\x12\x30\x1d\x23\x26\x30\x3b\xec\x90\x5b\xa0\x5c\x6a\x3e\x68\x02\x8e\x51\x0f\xb1\x4f\xdc\x78\x41\x83\x61\x2c\xcc\x6f\xa6\x47\x87\x37\xb6\x02\xf0\x2f\xb5\xd6\x10\x3c\x71\x55\xb0\x2f\x34\x29\xc8\x3f\xb5\x47\xb8\x2e\x5c\xcc\x0e\x56\xec\x89\x37\xc9\x21\xb7\xe5\x03\x95\x60\x6b\xf9\xc1\x13\xcc\x8e\xd4\xdc\x47\x1d\x61\x21\xdc\x93\x03\x1e\x5e\xdb\xe2\xae\xd9\x44\xb7\x96\x56\x3d\xc0\xd8\x01\x1b\xc3\x1a\x36\xea\x50\xc3\x18\xd8\x35\x85\x41\x4a\x5c\x11\x64\x9c\x76\x8e\xb6\x73\x53\xfb\x35\x04\x8a\xe6\xba\x36\xf1\xb8\x48\x3d\x25\xa9\x5f\x38\xe0\xfa\x32\x5f\x04\x2c\x4b\x88\x2c\x5b\x54\xa4\x3d\x85\x07\x0a\xc7\x31\xac\x00\x2f\x2d\x39\x19\x44\xa3\x70\x2f\x2d\x8f\xfd\x42\x4f\xbb\x40\xa7\xd8\x4d\xf9\x60\x50\x79\xbc\xee\x9d\xb0\x36\x13\x40\x69\xf6\x2e\x0d\x3f\xa9\xa7\x8e\x5c\xa1\x0c\x3a\xb6\x12\xe4\xea\x00\x76\xd1\xd5\x41\xf5\x6f\xbb\xfc\x61\x6e\x1d\xd4\x9b\xe5\xb5\x1e\x53\xc8\x32\xc4\x0e\x03\x01\x34\x63\xb9\xa3\x46\x6c\xf2\xe8\xcc\x8c\x89\x5b\x35\x25\xaa\x0e\x8f\x71\x76\x71\xde\x92\x1d\x55\x39\x30\xc7\xd3\x5d\x5d\x3e\x18\x63\xb9\xac\xd1\x7a\x03\xdb\x9a\x24\x07\xe1\x50\xd7\xa2\xaf\xb5\x23\x10\xf6\x39\x17\x23\x46\x0a\x25\xcb\x7e\x86\x58\xc6\x79\xc6\x0b\x2f\x08\xc3\x09\x5e\x73\x16\xe7\xac\x3c\x1b\x37\x16\xee\x78\x59\xdf\x02\x7f\x4f\xfb\x2c\xbb\x64\xe8\xed\xbe\x2b\x93\x85\x64\xe6\x4d\xa2\xed\xab\x36\x21\x13\x7e\x43\x4e\x05\x48\x50\xf1\x47\x92\x8f\x1d\x44\xb9\x6e\xa3\xee\xe4\x00\x03\xb8\xa1\x56\xc7\xad\x5b\x24\xa3\xb7\x5f\x8c\x4c\xa8\x22\x81\xcf\x7e\x78\x63\x83\xfb\x50\xa8\x34\xea\xb6\x21\xe8\xe0\x41\xb7\xb1\x31\x3d\x72\x46\x44\x99\x65\xb3\x5e\x15\xd2\xbf\x39\x7f\x97\x34\xdb\x34\x67\x0d\x4e\x75\xa1\x96\xac\xda\x68\x90\x9d\xf8\x31\xc6\x5d\x7d\x1e\xb1\xda\x2f\x41\xef\x37\x1d\xf7\x5d\x9b\xf9\x4f\x55\x1b\xee\x15\x6a\x18\xcc\x6e\x73\xd0\xda\xd8\x2a\x57\x0f\x7b\x6c\x9b\x02\xbb\xaa\xc2\x83\xed\x3f\xd7\x6c\xd2\x81\xb3\xe8\x37\x24\x6e\x35\xeb\xc4\xe2\x46\x84\xcf\x5c\x3c\x4a\x50\x8c\x29\xc1\x28\x45\xff\x2a\xf9\x0d\xcd\x98\x28\xdc\x31\x87\x48\xc6\x7e\x2d\x07\x13\x6f\xce\x5a\xa9\x59\x75\x7e\x9a\x02\xae\x0e\xae\xd9\xe4\xea\x00\xcf\x42\xd3\x71\x6a\xb7\xcf\xd5\xc1\xb9\x30\xbf\xbb\x80\x17\x1f\xc3\xa2\xe8\xa4\x3a\x38\x20\x49\xe2\xea\x00\xd5\x8c\x83\x25\x56\x4c\x9b\x68\x68\x97\x45\xeb\x15\x22\xe1\x52\x5a\x42\x9e\x04\x7d\xb2\x61\x8d\xee\x09\xb2\x71\xba\xf1\xc0\x51\xea\xa0\xfa\x81\x83\x07\x2c\x77\x76\x5c\xe1\x65\xc5\x32\x1b\x48\x8c\x73\x01\xa7\x14\xc6\x4c\xcf\xdf\xfc\xd7\x6c\x5e\xb8\x95\x55\x97\x31\x78\xdb\x74\xc2\xfc\xe0\x93\x55\x7c\xbb\x69\x6e\x71\x09\xe4\xdd\xa7\x44\xed\x59\x9d\xc8\xd6\xac\x2f\xab\xd8\x60\xb3\xa0\x75\xf3\x3e\x00\x8f\x3d\x1b\xc2\xfb\xf0\xf1\x8c\x68\x47\x3b\x66\x73\x7a\xeb\x87\xb6\x46\x8f\x79\xcd\x26\x87\x1a\x07\xda\xac\xfc\x11\xcf\x1d\xd3\x15\xec\x0c\x17\xa1\x8e\x71\xd2\xae\x08\x5c\xac\xe7\xa2\x43\x7e\x90\x85\xf9\xcf\xdb\x2f\x9e\x63\xfd\x8d\x64\xfa\x07\x59\xc0\x2f\xab\x60\x6f\x40\x85\xf3\x94\x05\xdc\x61\x5c\xd7\x98\x5b\xc3\xf8\x59\x6d\xc3\x8d\xeb\x3b\xf5\x5c\x98\x9b\x81\x6d\xf3\xd4\x56\x0d\x43\x9d\xe1\xb8\x6a\x2d\xc3\x76\x55\xaa\x5a\x4f\xef\x28\xce\x16\x85\xd8\x3a\xf0\x04\x53\x0f\x90\x72\x39\x2d\x95\xbd\x48\xe1\x64\xf3\x04\xf9\xc4\x11\x07\x64\xaf\xd2\x64\xea\x4b\xb6\x5a\x76\x1b\x50\x66\xb8\x2e\x3e\xb0\x82\xde\x21\x77\xdc\x2b\x9e\x70\x5c\xfb\x20\x44\xdc\xc2\x7a\x22\x8a\x11\x2b\x78\x12\x64\x77\xc3\x94\x8c\xe8\x0d\xb3\x0c\x97\x10\xd2\x97\xf9\xa5\x7b\x43\x15\x97\xa5\xf6\xd8\x44\x95\x46\xe2\xe3\xae\x3d\xb0\x08\x88\x73\x7b\xa5\xfd\xcf\x47\x78\xd3\x34\xa7\x43\x5c\xc3\x7e\x5b\x04\x4c\x4e\x9a\x6b\x74\x39\x97\x97\xd1\xbe\x16\xc4\x70\xba\xd4\x37\xa0\xd6\x32\xff\x36\x7a\xca\x98\x17\x0e\xde\xc7\x32\x41\xc8\x81\x65\xf3\x77\x81\xaa\x16\x0c\xa3\x9e\xa2\x11\x24\xcc\x8d\xa8\x45\x6d\x82\x81\xac\xd2\xb5\x82\x48\x7f\xee\xf1\x86\x5c\x6a\x4b\x40\x04\xc9\xb5\x86\x07\xc8\x92\x6e\x23\xca\x5d\x86\x4c\x10\x7c\x6e\x26\x08\x29\xf4\x21\x6c\x15\x74\xac\x42\x9a\x66\x2a\xce\xac\x12\x2f\xd8\x97\xc2\xc9\x21\xdf\x92\x6a\x56\x5e\xe3\xa8\xe0\xee\x49\xa4\x80\x4c\x12\x51\x60\x59\xa6\x59\x2e\xc9\xc4\xd1\xc6\xf3\x41\xd8\xd3\x04\xf8\x37\x5d\x72\x84\xe9\x37\x22\x1c\xa5\x9e\xdb\x05\x98\x60\x28\x19\xb0\x5b\x32\xe6\xa2\x34\xc3\x05\x53\x9f\x53\xad\x59\xea\xf5\x61\x58\x18\xee\x7e\x85\xda\x82\x1b\x6d\x4b\xa8\xae\x7d\xc2\xa8\x9f\x49\x1c\x4a\x17\xcc\x8b\x1c\x6a\x09\xcd\xdc\x48\xd9\x91\xb6\xb7\x1e\xae\x74\xe1\x93\x5b\x3a\x21\x75\x1e\xb4\x47\xb1\x84\x71\x3f\x94\x85\xbc\x66\xc2\x32\xbc\xb8\xc4\x98\x31\xd3\x9a\x0e\x57\x01\xc5\x42\x84\x25\x2e\x86\xe7\x05\x1b\xbf\x96\xa5\x98\xc7\x58\x3b\xfd\x81\x37\xd8\xf8\x25\xa9\xcb\xbe\x36\x2b\x43\x14\x76\x75\xda\x8e\xc2\xcc\xd5\x59\xda\x2d\x70\x52\x85\xb7\x0c\xef\xb8\xb1\xf0\x02\xda\xfe\x8a\xab\xcd\xaa\x18\x2c\xb5\xa7\xba\x54\x76\x5a\xdc\x89\xae\x2d\xa1\x65\xbd\x55\xbe\xe5\xae\x51\x9a\x58\xde\x79\xaf\xd9\xd5\xa3\xfe\x33\x36\x28\x48\x29\x60\xf7\x89\xd4\xf3\xb1\x58\x89\x5e\x63\x48\xab\x37\x14\x16\xc2\x38\x87\x68\xe4\x23\x4f\x4d\x6e\x89\x38\x0a\xc7\x81\x97\x8c\x4a\x71\x0d\x56\x84\xea\x69\xe1\xee\xba\xa0\xb2\x68\xfb\xd2\xb3\xaa\x3f\x8a\xd9\xa1\xc3\x25\xdc\xec\x13\x76\x64\x2a\x7f\x61\xa9\x9e\xb8\x14\x13\x99\xa5\x8e\x5d\xe9\xe6\xb4\x77\xfa\x35\x49\x25\x26\xdb\x40\xe6\xab\xab\x03\xb7\x89\xa7\x39\x29\x75\x00\xba\xd1\xb6\x52\x7e\xcf\x74\xc1\xc7\xc0\x07\xf3\x7b\x8b\x59\xf7\x6f\x6b\x6e\xab\xa2\xe0\xab\x04\xe9\x1a\x4d\x27\x48\xe4\x59\x65\x23\xa9\x23\x88\x13\x65\xff\x01\xb6\xa9\xb5\xe7\xfc\x34\x44\xc2\x9c\xfd\x72\x69\xc9\x16\x21\x63\xda\x51\x29\x86\x39\xcc\x87\x3a\x48\x29\x0c\x21\xa9\xaa\x04\x20\x4f\x73\xef\x04\x71\x05\x04\x87\x71\xef\x05\x53\x63\x2e\x18\x8a\x23\x97\x84\x02\xb2\xc3\xca\xbc\x65\xb0\xe5\x10\x80\x0c\x64\x20\x29\x05\xa6\xf7\x99\x3a\x69\x72\x1d\x52\xd4\x32\xd5\x23\x17\x4d\x08\x38\x24\xfb\xed\x91\x4f\x8c\xa6\x5d\x73\x84\x6e\x3c\x8f\x28\x91\x22\x29\x95\x62\x22\x99\x74\x6d\x50\x40\x97\x8a\xb4\xeb\x0f\x8c\xa6\xc7\x74\x31\xb0\x81\x6c\xf0\x9e\x8b\xeb\x79\x10\x8c\xf6\x35\xbc\x07\xfd\xf8\xe9\x7d\xd3\x18\xef\xa7\x70\xa1\xa1\xba\x12\x57\xe2\xcd\xdb\x8b\x4f\x6f\x5f\x9f\x7d\x7e\xfb\x86\x7c\xef\xaf\x0b\x8e\xe8\x48\xe6\xc4\x67\x9c\xb8\xf2\xbd\x71\xfc\xb4\xf7\xfc\xc4\xec\x11\x48\x6f\xaa\x0b\x34\xae\x49\x9e\x51\x21\xf0\x08\xaf\xc3\xfb\x9d\xf6\x9e\x9f\xba\xcf\xb6\x4d\xa0\x59\x29\x84\x1f\xa8\xa0\x43\x96\xa2\x4d\xfa\xad\x28\xee\x34\xdc\x4e\xbf\x8c\x13\x70\x2b\xd5\xf5\x20\x93\xb7\x5d\x6e\xd4\x20\x34\x70\x5f\x5a\x91\x57\xe1\x44\xcd\x40\xa9\xab\x34\x25\x34\xa8\x9b\xef\x5a\xee\x85\x9b\x4e\x62\x0e\x72\x97\xeb\xed\xf2\x53\xdd\x68\x19\x62\x32\x7a\xf3\xfb\xb4\xe9\xfa\x9f\x66\xcb\x83\x77\x09\x8c\xa5\x32\xef\x66\x66\x73\x91\xa0\x1d\x56\x90\xa3\xfd\x5a\xb0\xc4\x68\x13\x0a\x39\x70\x15\xec\xfa\x7a\xfb\x68\xd0\x92\xe0\x58\x4b\x7c\x46\x21\x2d\x0b\x69\x44\x7c\x02\x7c\x60\x1e\x02\x73\x05\xf5\x04\xe7\xe2\x33\xbe\x79\xd7\xa8\xbe\xf3\x2f\xba\xe3\x33\xe5\xe6\x85\x31\x17\x70\xb1\x73\xc9\xa6\x15\x5a\xa0\xf5\x9b\xd8\xa1\x0b\xec\xe3\x30\xa4\x0a\xd1\x3b\x41\xb2\x20\xd3\xb4\xbd\x0e\x78\x6d\x13\x54\xb8\x57\xe4\xca\x7b\xfb\x56\xb1\x9d\x0f\xa6\x9d\x89\xe4\x9e\xe6\x42\xef\x9f\xbc\xcb\x0c\xe7\x3d\x94\x23\x09\xce\x23\xaf\x85\x82\xdb\xd1\xcd\xb5\x1b\x1b\xed\x2f\x61\x1e\x11\x34\xec\x36\xe4\xed\xce\xc8\x90\x1b\xc3\x5e\x9d\x67\xba\xc0\x1d\xad\xec\x85\xbf\x62\x1c\xf6\x54\xe1\x76\x67\x13\x28\xce\xda\xf7\xb5\xdb\xaa\x2b\xac\x2b\xbc\xdb\xce\xdf\xac\x1f\xdd\x7b\x6e\x55\x39\xd6\x44\x5f\x80\xd5\x67\x33\x46\x53\xcf\x40\xdd\x22\xa0\xfa\x0c\xc8\xda\xf0\xd8\xc5\x4d\x0b\x4b\xea\x26\xcc\x4f\xf7\x8c\xef\xb8\xbf\x8c\xa2\x77\x78\x96\xe7\xd9\xe4\x10\xd6\xe7\xe1\x8f\x90\xa9\x7b\xb8\x42\x7f\x0b\x3e\x8d\x27\x7c\x8f\x35\xf6\x99\x8f\xef\x66\xb8\x37\x2f\xc0\x90\xf1\x31\xd3\x05\x1d\x83\x8d\xf7\xd6\xea\xb0\x7e\xe2\xc8\x2d\x53\xe8\x4d\x34\xb2\xc7\xaa\x7a\xd6\x4f\xed\x0c\x2b\xe6\x56\x57\x9b\x05\x3b\x22\x9b\x3d\x8e\x78\xa2\xe4\xe7\xfa\x98\x4d\xad\x59\xf7\x0e\x80\xec\x56\xd2\x11\x7e\x02\x36\xca\xb1\x79\x03\x53\xf2\x09\xca\x5c\xcf\x2c\x19\x1c\x28\x95\x42\x6a\x26\xb7\x5b\x84\x43\x7b\x7f\xda\xbd\xca\x72\x71\x47\x57\xaa\x97\xc0\x81\x59\x33\xb3\xd0\x2c\xab\x60\x1c\xda\x4d\x2d\x16\xdb\xcc\x41\xe0\x06\xce\x1e\x30\x5f\xd8\x77\x71\xed\x2f\x72\x92\x9a\x63\x84\xb6\xa6\x15\x6f\xd4\x35\x71\x56\xd5\x6b\x05\x51\x29\x2a\xb7\x35\xd8\x8e\xf1\xda\x3e\xa6\x39\x46\x76\xa4\xc4\xb2\x8e\xd6\x0f\xeb\xc0\x8a\xd3\x9f\x54\x94\xff\x85\x94\xc8\x52\x0f\xdf\xc2\x8e\xf6\xe6\x90\x8a\x9c\xdd\x67\xda\x1a\x19\x31\xf1\xf7\x64\x70\xdd\x81\x7d\x04\xe0\xb9\x3d\x9a\x03\xa8\x9b\x60\x67\x81\xdd\x05\xda\xfa\x04\x2e\x95\xce\x8c\xd2\xd0\xbf\x5f\x1d\x1f\x57\x76\x68\xa3\x81\xa7\x32\xd1\xc7\x66\x9e\xba\xc3\x92\xa7\xec\x38\x1c\xfe\xc5\xfc\x14\x81\x9c\xb1\xa4\xf1\x0b\xc0\x97\x7f\x6e\x40\x34\x3a\xba\x79\x5c\x4c\x01\x72\x45\xc5\x95\x50\xb9\x82\x9d\x35\x2a\xc5\x9c\xe5\x92\xeb\x51\xb0\x34\x61\x52\x80\xb6\x16\x2a\x00\xb0\x10\x07\xf3\x68\xce\xaf\x4a\x07\xb0\x95\xea\x1a\xf2\xb4\xbd\x9e\xe3\x65\x79\x82\x41\x19\x8a\x0f\x47\x05\x11\xf2\x16\xfd\x18\x1e\xe8\x9a\x6b\x32\x94\x96\x0b\x9f\x0f\x05\x0c\x35\xd8\xee\x6c\xee\x34\x2e\x7a\x40\x3c\x01\xd9\xed\x81\x49\x96\x17\xe1\x50\x14\x97\xe2\xb3\x13\xa9\xdb\x94\xe7\xaf\x9b\x95\xa3\xc6\x5d\x89\xf7\xa9\x28\x24\x3b\x40\x05\x48\x43\x14\xfc\xd5\x85\xf6\x96\xea\xea\x2c\x3c\xf7\x16\x91\x61\x49\x15\x15\x05\xf3\xf7\x14\x3b\x8a\x23\x9a\xe7\x4c\xe8\xae\x4d\xef\x07\x10\x2e\x42\x8d\x70\xd5\x44\xb3\x9c\x2a\x18\x63\x77\x48\xe8\xca\x7a\xe0\xac\x84\xde\x64\x01\x1b\xd8\x55\x19\x12\xd5\x72\x41\x3e\xbd\x7b\xfd\xe2\xc5\x8b\x3f\x61\x10\x02\x45\xd0\x0e\x2e\xc8\x8f\x9f\x5f\xc3\xcd\x6c\x91\xbb\xee\x0f\x25\x72\xcd\xa2\xcd\x79\xe3\x77\x5f\x27\x2b\x66\x40\xfb\x58\x0c\x84\xbf\x2c\x8b\x2a\xf3\x43\x65\xc8\xb3\x78\x32\x1e\x93\xdf\x29\x28\xce\x30\x21\x11\xd2\x65\x50\x1a\x45\x1f\xad\x10\x66\x2e\xec\x44\xf1\x90\x6c\xb7\x81\x65\xe1\x46\x0f\x70\xec\xcd\xfc\x04\x18\x52\xcd\x75\x96\x69\x89\x5a\xc2\x07\x6a\x35\x71\xb3\x36\x46\x52\x15\x0c\x10\x36\xaa\x19\x58\xb7\xad\x67\xaa\x3d\xdb\xdc\x74\x6f\xda\x06\xe3\xd3\xbb\xd7\x04\x96\x29\x88\x13\xb8\xda\x9a\x2d\x46\x0b\x2f\x39\xc3\xcb\x63\x05\x60\x62\x41\x7f\xea\x72\xce\x1e\x51\xc1\x7e\xbd\x45\x4e\x71\x37\xab\x35\x20\x0d\x2b\xbb\xaa\x1d\x60\x4e\x8d\x8e\xdb\x2a\x66\x9f\x21\x84\x13\x4e\x28\xe2\x3d\x00\x01\x34\x1a\x96\xea\x06\x75\x70\xd9\x7f\xc9\x59\x52\xf8\xdd\x6e\x1b\x49\x8e\x84\x44\x70\x42\x45\x6e\x38\x5e\xb6\x60\xd9\xd4\x90\xe1\x2d\xf7\x2f\x1a\x06\x69\x32\x72\xb5\x19\x49\xff\x8c\xd0\x41\xe1\x68\xce\x41\x43\x13\x81\x5e\xdd\x21\x52\x24\xcc\xde\x79\x6a\x38\x2a\xd0\x26\xf4\xe6\x9d\xd5\x98\xa4\xa7\x5e\xf4\x5e\x6e\x30\xbb\x76\x6a\xc3\xd4\xcf\x64\x72\x6d\xc6\xfa\xa3\xab\xa6\x75\x55\x43\xe0\x65\x80\x97\x14\x78\x34\xd0\x52\x8b\x4c\x0c\xe6\x2f\x87\x73\xc5\x85\xb5\xbf\x21\x1f\x43\x87\xd0\xac\x18\xc9\x72\x38\x32\x3b\xcd\x69\x1d\x6e\x5b\x90\x26\x45\x8d\x7d\xc1\x8d\x72\xae\x38\x1a\x4a\xd1\xab\xc0\xc7\xac\x86\xd6\xd8\x21\x14\x9d\x4f\x88\x6d\x66\xfd\x3c\xa0\x11\x92\x5c\xa6\x18\xea\x87\x25\x71\x41\x5e\x9c\x38\x59\x81\xb3\xfc\x7d\xd9\x37\x0f\x1d\x92\x17\x4d\x60\x9d\x69\x86\xb4\xec\xc1\xfa\x72\x32\x03\x42\xc3\xf8\x50\x54\x2e\x12\x67\xe5\xaf\x90\x35\x73\x99\xf6\xc8\x99\x9d\x59\x5a\x04\x95\xa2\x77\xb6\x56\xa9\xa9\x8b\x50\x32\xa2\x2a\x6d\xab\xe4\xe8\xf2\xfc\x2f\xdf\x9f\xbf\x7f\xff\x6c\xaa\x3a\x3c\xe1\xa1\x96\x24\x63\x54\x94\x79\xc7\x4a\x2f\xd7\x88\x4a\x88\x9d\x5d\x9c\x03\x6c\x52\x31\xb2\x9a\x98\x99\x71\x39\x70\xf0\x9f\x10\x34\x89\x22\xa1\x53\x93\x9b\x66\x4c\x91\xb7\x1c\x60\x57\xfc\x72\x0d\x6f\x4c\x1d\x52\x8a\x82\x67\xe0\x01\x4f\xc7\x5c\x60\x7e\xbf\x04\x88\x4a\x6b\x60\x81\x59\x04\xac\x32\xb0\x0e\x57\x76\xe0\x26\x12\x7e\x43\x3e\xa7\x1e\x07\x07\x16\xe1\xf4\x66\xb7\x3a\x99\x6d\xed\x88\x6a\xbb\x32\x99\xa8\x84\xc0\x5d\x87\xe2\x62\x62\x64\x9b\x66\xe2\xbb\x8f\xca\x6a\x7b\xcf\x33\x54\x84\x3e\xff\x16\x98\xb5\x60\x57\xf8\x45\x62\xb1\x19\x26\x3d\x02\x31\xdc\xcc\x1b\x2c\x6b\x96\x8e\x80\x51\x2a\x97\x02\xa5\x5e\x22\xc7\xb9\x14\x4c\x84\x74\xee\xc1\x52\xc4\x92\x7c\x3d\x88\x04\x65\xfd\x50\xd3\x22\xa7\x3e\xa7\x20\xb0\x45\x17\x10\xda\x4c\x39\x40\x63\x16\xba\xe0\xcc\x82\x72\x47\xad\x3d\xbc\x7b\xe4\x5d\x25\x06\x2b\x08\x48\xc4\xca\xb3\xf7\x19\x6f\x57\xa6\x62\x82\x8a\x5a\x8f\x90\x8f\xa0\xb0\x71\x4d\x7e\xf8\xf8\x99\x30\x31\x90\x2a\x01\xb0\xa6\xca\x23\x26\x0a\x25\xd3\x12\x68\x1f\xf8\x50\x40\x02\xaf\x28\x88\xe2\xfa\x1a\x03\x3f\xca\xe4\x3a\x90\xc1\xbd\x50\x1e\x63\x0c\xd2\x88\x9a\xeb\x98\x95\xef\xa6\x6e\x0a\xa1\x3d\x70\x15\xc8\xcd\xba\xd7\x18\xe6\x4b\xcd\x0a\x46\x05\x92\x57\xa3\x55\x61\x1e\xb9\x63\xa0\xea\x17\x17\xd8\x0f\xef\x83\xe3\xb8\xdb\x9c\xc5\x87\x12\xcd\x8b\xd2\x43\xf0\x55\xf7\x97\x6a\xf6\xc2\x39\x75\xf3\x8c\xe6\xb6\xaa\xe2\xd0\x45\xca\x35\xb9\xa5\x48\xfe\x8f\xfc\x61\x4e\x68\xe1\xc1\x6d\x43\xb6\xfd\xc5\x12\xf7\x1c\x04\xc5\x83\x5b\xfe\x99\x69\xbd\x19\xcd\xd4\x1e\xbf\x33\x1b\x42\xc3\x9e\xd3\xa2\xde\x8c\x8e\x0d\x06\x05\xef\x22\x64\x2c\x30\x9a\x9a\xb3\xad\x47\xfe\xc6\xcd\xb9\x53\x54\x73\x09\x23\x54\x43\x8f\xc2\x10\xa2\x81\x62\xcc\x0c\x92\x55\xd9\xc7\xe6\x26\x07\x56\xf6\xb1\x66\xd9\x8d\xc5\xe3\x77\x77\xdc\x9b\x32\x13\x4c\xc1\x41\xee\x3e\x01\xa3\x19\xb8\xb0\x6a\x4e\xe4\x4d\x86\xcd\xac\x29\x68\x6b\xc8\x4c\x5f\x0a\xb6\xc0\x55\xf8\x2f\xc1\xab\x56\x30\x78\xc6\xa3\x5c\xb1\x01\xff\xd2\xf1\x6e\xbf\x4a\x55\xeb\x20\x0a\x31\x7e\x6a\x0e\x6b\x8c\xfb\x87\x2b\xef\xc7\x1f\xde\xff\x9d\x9c\xbf\x83\xb7\xa1\x54\x5c\x38\x35\x41\xee\xc0\x5b\x2b\xdc\x46\xaf\x16\x9a\xca\x3a\x55\x12\x86\x8f\x76\x70\x47\x25\xc2\x0a\x7a\xdd\xd2\x5f\xa7\x0b\x87\xe1\x05\x9f\x55\x61\x14\x5e\xc7\xb1\x89\x28\x1a\xd4\xbd\x44\x8e\xfb\xe0\xc5\xb7\x46\x14\xdb\x01\x5d\x0e\x06\xfc\x0b\xaa\x11\x1e\x60\x16\x3f\x1f\x59\x6d\x0c\xee\xf6\x60\x39\xc5\x6d\xa7\xca\x8c\x69\xa7\xaa\x55\xfd\xed\x84\x01\x2c\x85\x2a\x45\x12\x9e\x54\x19\x13\xc3\x0a\x81\x1f\x6b\x75\xc1\x8d\xd0\xd5\x31\xb5\x3e\x13\xac\xdc\x36\xcf\x3a\xa0\xad\x07\xd4\x9c\x81\x53\xc3\x57\x01\x5a\x7a\xcf\x93\x9d\x26\x34\x44\xe0\xa1\x6f\x95\x16\xa7\x77\x9b\x91\x31\xe2\xd1\x61\x62\x03\x2c\x5d\x97\x70\xa1\x0b\x46\xd3\x8e\xbf\x4b\xd9\x70\x02\xfb\xda\xf3\x93\x53\xf2\xda\xfa\x72\xa5\x22\x5f\x9f\x9c\xe0\x68\x7e\x62\x54\x4b\x61\x5d\xf9\xe6\x0c\x30\xbb\xd5\x46\x05\xa1\x06\x16\x2e\x97\x24\xc4\x6c\x1d\xc8\x52\x78\x33\x3f\xde\x2d\xb2\x4c\x16\x85\x8b\x2d\x0a\x81\x25\xd1\x0c\xa5\x98\x39\x87\x8e\xdc\x9a\xcd\x26\xd3\xea\x37\x86\x23\xf9\x62\x3f\x99\x2f\xba\xa8\xca\x21\xf0\xf6\x33\x18\xca\x33\xf0\x6b\xa5\x9e\x3f\xcc\xed\x88\x06\xc6\xe7\x86\x75\x05\x9e\xb2\x71\x2e\x57\x74\x1d\xdb\xa9\x5e\xc0\x0f\x48\x30\x46\x26\xf1\x31\x2a\xcd\xcc\x2b\xcf\x78\xe4\x8b\x74\xab\x35\x65\x1a\x56\xa9\x2e\x68\xc1\x16\xf2\x2d\xaf\xfb\x62\x9c\x6d\x3f\x74\xfc\x03\x46\x8a\xdb\x28\xd0\x6b\x36\xd1\x41\xbc\xf0\x74\x8c\x04\x1c\x21\x43\x2a\xf8\xbf\xf1\x9a\xec\xf8\x5a\xff\xcd\xc8\x91\x4e\x64\x6e\x2d\xa9\x10\x32\xf4\x2c\x30\x97\x52\x0b\xaa\x5f\x45\x13\x61\xf0\x50\x9e\x59\x34\x24\x62\xc3\x0c\x32\x07\x82\x08\x94\x01\x49\x0b\xce\xf3\x5c\x5b\xab\x1d\xc5\xa5\xcd\xac\xe3\xd0\xc1\xb4\x90\x6f\xcd\xbe\x8b\x69\x60\x81\xa3\xbc\x4e\x9b\xe4\xa2\x3b\xc2\x64\x45\x8f\xed\x6e\x2b\xc5\x35\x66\xd4\x51\x5b\x4a\x65\x96\x1d\x4b\x6d\x2e\xff\x46\xb3\xf0\x21\x2d\x23\x59\x6a\x76\xcd\x58\xce\xc5\x10\x05\x08\xfa\x04\x8a\x49\x6e\xfd\xc3\x28\x45\xc4\x61\x41\x84\xb5\xfc\xd9\xdb\x6f\x29\x52\xa6\x74\x51\x8f\x69\xea\x91\xb3\xca\x1d\x68\xe7\xdb\xd9\x22\x0e\x91\xf3\xab\x83\xf1\x82\x76\x8e\xfc\x8f\x56\xf1\xaa\xf2\x0a\xfd\x06\xa3\x79\x9e\x4d\x90\x90\x05\x1c\xe5\x57\x07\x09\xef\x26\xa9\x8b\xe2\x6f\x24\x6f\x6a\xe7\xa2\xb2\xc2\xac\x22\x9d\xb2\x01\x04\xbe\x79\xb0\x0e\x1b\x76\xf9\x4a\x07\xdf\x78\xe2\x48\x4b\x50\xc5\xd2\xa1\xc3\xc1\xa2\x5b\x80\x83\x16\xe4\xb5\x8b\x31\xb2\x27\x8c\x39\x8f\x40\x7d\xf4\x36\xf8\x1e\x39\xd7\xd5\x49\x0b\xe3\x83\xc6\xed\x80\xfd\x4f\x07\xc6\x0d\x2d\xc7\x21\x85\x93\x39\xd0\x11\x09\xd4\x59\x96\x30\xb2\xd4\x99\x28\x58\x43\x60\x9a\x0b\x74\x40\xad\x81\x3e\x81\x30\x42\xa1\xe7\xcf\x99\x5c\xf1\x31\x55\xdc\x1c\x3e\x2e\xa0\xcd\x2c\x66\x67\x7a\x27\xd5\xc9\x60\x65\x4a\x2d\xc6\xb4\x9a\xa0\x56\x78\xe5\x65\x85\x43\x75\x39\xd4\xbf\x83\xb1\x5b\xfe\x30\xf2\x43\xbe\xc0\xbc\xa1\x7b\x24\x0c\x49\xc1\x5f\xec\xfc\xe1\xbd\x06\x08\x4f\xc4\xf4\x2c\x07\x29\x60\x81\xab\xa5\x99\x94\x83\x81\x03\x16\x1d\xf6\xea\xa0\x7a\x15\x11\x6b\xc3\x47\xd6\xdd\x9e\x50\x21\x05\x04\xce\xd6\xb1\xfc\x7b\xe4\x07\x59\xd4\x3c\x8d\x54\xb1\x9a\xf6\xd6\x67\x04\xa4\xbc\xbd\xa3\x55\xad\xea\x06\x3a\x9d\xac\xa9\x6e\x78\x35\x93\xda\xc7\x20\x7b\x15\x17\x8d\x82\x46\x43\x71\x06\x00\x4a\xde\xfc\x70\xf9\x7f\xdf\x9f\x7d\xf7\xf6\xfd\x5a\x26\xdb\xb7\x6f\x15\x34\xec\x5b\xc1\xd4\x27\x06\x4a\xf8\x7c\xba\xb4\xf7\x36\xdd\xcd\xf5\xd1\x22\xdb\x5a\xb9\x1e\x44\xac\x9d\x0f\xc8\xd9\xfb\xf7\xfe\xbd\xf0\x82\x0a\xa1\x85\x70\x8b\xb0\xd6\x8e\xba\x79\xcb\x0d\x5b\x03\xa5\x37\xbc\x6b\x54\x66\x88\xe0\x58\x09\xc5\xb6\xbd\x6e\x53\xe1\x0c\x26\xa1\x71\x02\x2a\xb0\xa1\xe6\xb2\x8a\xbc\x76\x5f\x82\x0a\xec\x8c\x7a\xf8\x63\x10\xb2\x04\x61\x4d\x25\x73\x61\x3e\x55\xd8\x52\x15\x14\x2e\x05\xab\x42\x4d\xaa\x42\x36\x2e\xb1\x3f\xd6\x66\x72\x5d\x37\xd6\x5a\x5e\x52\xc9\xd3\x75\x5d\x71\x97\x0b\x84\x3d\x13\x2e\xd4\x14\xf7\x9e\x4d\x00\xf3\xa9\x4a\x85\x0d\x23\xde\x74\x20\xec\x87\x20\xa1\xc1\xec\x78\x73\x6d\x19\x73\x5d\xf0\x84\x04\xb1\xa4\x1d\xc7\x87\x6c\xca\x0c\x88\x79\xe1\x7c\x07\xf5\xb0\x8a\x00\x02\x8e\x6b\x6f\x6e\x95\xaa\x25\xb5\xd6\x3b\x24\x8d\xf8\x80\xe0\x5b\x1b\x08\xe3\x32\x8a\x6a\x39\x17\x8b\x05\xdf\x7e\x46\xfe\xa7\xca\x23\x86\xb1\x44\x68\xd7\x01\xcb\x73\x02\xfc\xda\x77\xb6\x6c\x51\xcf\xe6\x92\xe1\xc3\x8f\x3a\xec\xf7\xf2\x89\x86\xfd\x06\x23\x65\xa4\xc8\xdd\x83\xf4\xe3\xf9\x1b\x77\x88\x5b\x45\xd0\x48\x70\x6e\xe3\x31\xf0\x28\x46\x41\xd0\x70\x2a\x3b\xef\x7c\x75\x41\xa8\xac\x27\x75\x5f\xa5\x14\x44\x97\x49\xc2\xb4\x1e\x94\x59\xa5\xa4\x81\x6e\xef\x17\x7d\xe0\x9d\x74\x5e\xec\x42\x7a\xb2\x73\x41\x2e\x7e\xfc\x1c\x86\x0e\x2c\xba\x1f\xee\xa3\xcc\x95\x7c\x61\xce\x8b\xf5\x87\xb6\x35\x8e\x98\x3b\x82\xc2\x6a\x2f\x56\x1e\x4f\x26\xd0\xe3\x28\xd0\x88\x60\xef\x8d\x19\x2b\x20\x61\xc9\xf6\x73\x02\x46\xcc\x5b\x51\x45\x22\x81\x86\x58\xfb\xc5\x4b\x13\xab\x59\xf8\x88\x1d\x5c\x1c\xd6\x9c\xe7\x81\xf7\x3b\xd6\x21\x6a\x63\x76\xba\xa8\xdd\x75\x88\x96\x36\x2f\x06\x66\x39\x28\x00\xaf\x8b\xeb\x8d\xdc\x9e\x8e\x1e\x47\xd3\xe7\x0a\x5b\x08\xdc\xc4\x30\xc8\xce\xcf\x3f\xa7\x7a\xcb\x23\xd2\x21\x67\x3f\xbc\x71\xb9\x6e\xa0\xfa\x79\xbb\xe8\xd5\x41\x45\x4a\xe0\x0a\x0d\x29\x46\x82\xb4\x28\xfc\xb0\xd2\x7d\xa6\xbc\x56\xd7\x6c\xd2\xc5\xfd\x89\xe1\x6a\xe8\x8c\xb4\xd1\x05\x6e\x51\xc0\x3f\xac\x6f\x28\x64\xea\x01\xaa\x93\x1e\xf9\x2c\x1b\xc9\x42\xde\xa9\x6c\x6e\xfa\x1a\x14\x7e\x53\xed\xd5\x41\xe8\xa3\x91\x41\xd7\x3a\xe8\xd1\xb8\xe5\x9a\x91\x97\xcf\x9f\x93\xa3\x1f\x85\xf5\xcc\x80\x9b\xe0\xad\x28\x78\x31\x79\xd6\x42\xd7\xd1\x3a\x1d\x77\xf2\x99\x54\x6a\xde\xa2\xf3\xd0\x18\x0c\xd0\x47\x3d\x5b\xd8\x7c\xf5\x71\xa1\x56\x2d\x4a\x30\xd4\x5c\x8f\x7b\x4d\xdf\xb3\xa8\x25\x61\x5e\xa7\xb6\x71\x85\x5e\xec\xa4\x5b\x6b\x4b\xef\x73\x3e\xb4\x67\x76\x07\x22\xae\xb9\xb6\x9a\xd3\xd2\xe8\xba\xfd\xd7\x1a\x73\xbf\x2f\x00\x91\x7a\xf6\xb9\x03\xcf\xad\x0b\x16\x9d\x3f\x85\x24\x43\x7e\xc3\xf0\x7a\x98\x28\x56\x04\x81\x9d\x10\x8f\x6f\xb7\x5c\xa0\x39\x5d\x9c\x7d\x7e\xfd\x57\x6f\x13\xea\xcb\x34\xc4\x5c\xba\x7f\x17\x66\x50\x1f\x4d\x75\x25\x7c\xcf\x1f\x77\xd3\x74\x45\x22\xb8\x4c\x1c\xa1\x09\xc1\x86\x14\xb1\x0e\x61\x45\xd2\x7b\xd6\xe4\x31\x9a\x7f\xaa\x2d\x99\xa5\x58\x43\x65\x2a\xa8\x1a\xb2\x82\x7c\x6a\x14\xb1\x81\xbd\xd3\x5a\xef\x8f\xe7\x6f\x76\x97\x89\x36\x9b\x65\x75\xf6\x3c\xcf\xfc\x06\xe8\x82\x75\xe8\x32\xab\xdd\x52\x03\x5d\xb6\x46\x43\x0c\xcc\xbe\x15\x5b\x6f\xc7\x2a\x41\xa0\x3a\x89\xa0\xb4\x56\x2e\xe0\x05\x50\x09\xda\xfa\xd4\xd6\xaf\xcf\x8e\x6f\x18\x0c\x2a\x68\x01\x4c\x02\xe6\x62\xf4\x93\x20\xec\xdc\xf9\x05\x1c\xfc\x7c\x58\x2a\x66\x96\xe8\xa2\x9d\x5b\x41\x73\xaa\x51\xb7\xce\xd3\xd9\x6c\xd5\xce\x90\xe0\x7c\xe7\xba\xe4\x18\xa0\x88\xd7\x65\x37\x3b\x18\xbe\x5f\x78\x9a\x61\xda\x97\x37\xcc\x13\x23\xdb\xc8\x0f\x30\xff\x8d\xa4\x2e\xd0\xaf\xe0\xfe\x7a\x95\x4b\x55\x74\xcc\x40\x48\x33\x1c\xf0\xcf\x35\xc3\x8e\x05\x33\x37\x73\x3c\xd6\x2f\xb1\x2f\x01\x2e\xe3\xae\xf5\x8f\x78\x1a\x70\x1d\xb6\x8e\xe9\xea\x6a\x67\xee\x70\x76\xea\x53\x29\x0e\x0b\xf7\x06\x22\x48\x2c\x8e\xf5\x15\x59\x62\x77\xc7\x12\x9b\xc8\x74\x9e\xc2\x76\x59\x0e\x87\x18\x1c\xfc\xd7\xcf\x9f\x2f\xdc\x24\x9b\x0f\xab\x0b\x3e\xe2\xae\x74\xc8\x89\xe7\xed\x64\x77\xa6\xe7\xbf\x78\xbe\x52\xc8\x76\x41\xf9\xb4\x6b\xfa\x3e\xc4\xdb\xd0\xec\x37\xb6\xdc\xbb\x5c\xd4\x6f\xbf\x58\xaf\x11\xa2\xab\x68\x2d\x13\x0e\x86\x04\x6f\x91\x56\x10\x98\xd1\x23\x18\x0b\x88\xff\x82\x85\x81\x4b\x95\xf0\x42\x9b\x9b\x0f\xe2\x45\x42\x49\x58\x6d\x33\x72\xdb\x07\x08\x39\x93\x0f\xd4\xe8\x23\x75\x5a\x13\x2a\x12\x09\x77\x76\x84\x47\x9b\xb8\x6d\xc0\xbe\x24\x2c\x2f\x1c\xe3\x1d\x82\x77\x5a\xbb\x87\x6d\xde\x1d\xe9\x9d\x91\xff\x74\x27\x17\x28\x8b\xf7\x32\x37\xc2\x64\x54\x8e\xa9\xe8\x2a\x46\x53\x38\xeb\x82\xe7\x3e\xee\xc9\x42\x21\x39\x3b\xbb\xd3\x43\x57\x38\x96\x7d\x88\xed\xfa\x76\x9e\xc7\x89\xba\x6b\xd3\x5d\x16\x54\xa4\x54\xa5\x16\x18\xc8\xe7\xcf\x6d\x71\x02\x67\xb8\x47\xcc\xee\x99\x3b\x47\xb6\xfb\x33\x67\xe9\x76\x34\x69\xcc\x8d\x4d\x4c\xb2\x69\xd8\x94\x67\xa5\x62\x80\x49\x6b\xa6\xb2\x85\x86\x19\xfd\xb2\xa1\x91\x2c\x34\xde\x05\x18\x50\x67\x2e\x6e\x2c\xc9\xa8\x42\xb5\x9c\x0a\x94\xe7\x76\x9d\x80\x3c\xef\x97\xe6\x28\x67\x28\x62\xe4\x0d\x53\x8a\xa7\x46\x72\xad\xa2\xca\x35\x55\x8b\x19\x13\xec\xd7\x68\x90\xe7\xd5\x23\x1f\x01\x9e\xeb\x15\xb9\x3a\xb8\x44\x3b\xf0\xd5\x81\xd1\xbd\x82\x41\xd9\xf8\x2a\xd0\x39\x4b\xc0\xf1\x60\x7b\xb2\x9e\x6b\x8b\xff\x7d\x53\x4c\xa0\x97\x2d\xad\x9d\x85\x11\xef\x14\xca\x55\x15\xc7\xd7\xb4\xd4\x77\x19\x9a\x83\xb7\xdc\x9d\xdf\x62\x94\xd5\x96\x69\xdf\x5c\x2a\x20\x96\x83\xdb\x82\xc9\x00\xa7\x39\x04\x7b\x4b\xa8\x66\xda\xc6\xdc\x94\x59\xc1\xf3\x8c\x21\x46\x16\x46\x08\x30\x91\xc8\xd2\xa8\x66\x6c\x11\xcb\x30\x9c\xb6\x0b\xdc\x91\x2c\x3e\x7a\x1b\xa0\x08\xe0\x8e\x51\x0c\x48\x33\x9b\x12\xda\xd2\x21\x14\x83\x92\xe0\xa4\x35\x47\x13\xc0\x2e\x34\x70\x98\x3e\xc0\x11\x07\x49\xd5\x24\x95\x08\x51\x91\x4b\x5d\x0c\xf8\x17\xe2\x52\x74\x41\xb7\x12\xa8\x77\xd1\x02\x17\xb0\x51\x25\xcf\x94\xa2\x13\xec\xf2\xbf\x99\x92\x5d\x00\x27\x37\x67\x1c\xf1\x71\x60\x13\x42\xf3\x9c\x51\x55\x73\x7b\x63\x82\x6c\x08\xba\x08\x8d\xd7\x24\x2d\x19\xde\xef\xe0\xeb\x11\xbd\x31\x83\xdd\x18\xe1\x1e\xf9\x68\xb5\x12\x44\xac\xc7\x44\x22\xfd\xea\x4a\x10\x72\x05\xd6\xa5\xab\x03\x1b\x7e\x81\x23\xe6\x7f\x74\xb7\x5a\x84\xdb\xf0\x43\x88\x1f\x82\x9b\xfd\x1f\x27\x3f\xf7\x16\x28\x01\xa3\xea\xb1\xf1\x3e\x6e\xc0\x16\xb1\x0a\x3e\xc7\xfa\x0e\x5a\xcc\x75\xb0\xff\x80\xf1\xea\x91\x50\xa7\xf3\xf9\x14\x2e\x23\x95\xea\x2e\xb7\xb4\xf7\x0a\x42\x64\x57\x42\x77\x5b\xcb\x11\x34\xab\xfd\x2b\x9f\x34\xbb\xb3\xee\xd4\x54\xf9\x79\x32\xc9\xbe\xe7\x60\x6e\x11\xa8\xd0\x87\xb8\x92\x4a\x6c\xe0\x5e\xff\x70\xf6\xf7\x20\xef\x3f\x4c\x82\x96\x4e\xb0\x85\x9f\xb7\x48\xb7\x00\xf8\xee\x33\x84\x49\xc3\x69\xec\xc5\x0b\x25\x97\x21\x72\xa5\xbf\xde\xde\x42\x88\xa6\xdf\xfe\xde\x1d\x02\x39\xb3\xb5\xd0\x03\x9b\xa3\x1e\x86\x76\x5a\x54\x37\x6f\xcb\xf1\x97\x00\x07\x75\x02\x31\x5f\xbe\xf4\x4e\x08\x40\x40\xb5\x2e\xc7\x56\xd2\x41\xd2\x8d\x7b\xcb\x2d\x67\x58\x10\x46\x3e\x43\x6c\x42\xc7\x47\x75\xba\x4a\x16\xb1\x56\x81\x00\x5a\xc4\x52\x85\x92\xca\x42\xb0\x3a\x34\x0a\x04\xbb\xb4\x13\xd9\x76\x23\xc3\x21\x75\x43\x8d\x27\x4a\x15\x5e\x16\x3e\x45\xa9\xe9\x66\x12\xcb\x64\xa9\x95\x90\x1b\x8f\x0d\x0a\x0f\xd3\xa0\xd0\xa5\xc3\x38\x9d\x66\x30\x6f\x38\x2d\x6f\x80\x9f\xd1\xe6\xf1\xd6\x36\x96\x56\x4b\x0c\x07\x6d\x05\xa9\xb5\xc0\xa5\xd2\x34\xd0\xbc\xb6\x86\xf6\x91\x8f\x02\x23\x4c\xab\x28\x00\xbc\x90\x43\x5a\x4b\x98\xc6\xe7\xb2\x9f\x7d\x15\xe6\x6a\xbb\xdf\x17\xc5\x05\x3c\x6d\x1e\x88\xe3\xde\x43\x49\x8e\x6e\x2b\x94\x4a\x94\x99\x08\xe0\x0e\xc5\x5b\xf3\x31\xda\x4f\x3d\x9e\xd4\xb3\x95\x4e\xb5\x42\x4d\x20\x79\x64\x31\x3c\x83\xf3\x41\x95\x3c\xd2\x09\xb3\x52\x3c\xbe\x41\x98\xc8\xe9\x6f\x59\x15\xc8\x0a\xc2\xb4\xa4\x3d\x72\x69\xd6\x89\x55\x27\xd1\x02\x81\x89\x2d\xa1\xb5\x01\x43\xbc\xe8\x35\xf8\x75\x68\x06\x66\xc0\x82\x11\x0a\x41\x64\xa4\x1b\x44\x99\xda\x82\x8a\xba\x12\xe0\xcb\x1c\xc9\x5b\xcc\x41\x2f\x24\xa4\x03\xfa\x56\xd2\x6b\x67\x33\x69\x16\xbf\x76\x63\xda\x92\xde\x4f\x5c\x2f\xbd\x99\x0b\xa1\xc2\x25\x98\xb1\x18\x1e\x6e\x5c\xcd\x1c\xb4\x28\x07\x14\x45\xc9\xad\x32\x7a\xb7\x22\x14\xc2\x34\x30\xf1\x1e\x31\xa3\x60\x4c\x74\x99\xe7\x52\x15\xe6\xaa\xad\x14\xe6\x8a\x2b\x3d\x02\x6a\x64\xb3\x10\xfe\x7e\xf6\xe1\x3d\x9c\xc0\xe6\xc6\xd0\x23\xe4\x6f\x58\x1a\xaa\xfa\xde\x63\x3a\x00\x42\x0d\x31\x71\x33\x33\x80\x6c\x58\x00\x17\x1a\xc9\x34\x40\x85\x86\x8d\x90\xd3\xe4\x9a\x0e\xcd\xb6\x1f\x30\xa5\xb7\x06\x4d\xf5\x37\x20\x65\xb8\xb9\x9b\x7e\x00\x9e\xd7\x11\xed\xed\x5a\x02\xe2\x53\xd4\x8f\x21\x20\x33\x10\xcc\x0b\x68\x15\x76\x9e\xef\x65\xaa\x52\xa5\x80\xd9\xfb\x44\x6f\xdf\x3a\x2a\xd4\x3b\x2d\x55\x1f\x5d\xd0\xb3\xb9\x12\xfd\xde\xa8\xcf\x0e\xb0\xf0\x2c\x4d\x31\x83\xef\x83\x8d\xf8\x7c\x85\xb9\x2a\xec\x16\x73\xbc\xea\xd9\xdb\xbd\xe6\xe7\xc8\x82\x66\x3f\x6a\xf9\x80\xf0\xf1\x98\xa5\x46\x82\x67\x3e\x6b\xdd\x65\x88\x4f\x15\xf6\xd6\x88\xa5\x57\xe4\xf7\x95\x57\x47\x31\x73\x8a\x81\x3d\xfa\x5b\xeb\xb7\x81\x53\x09\xe4\x15\xa4\x49\x6a\x26\x34\x5c\xd7\xea\xae\x4a\x73\xe4\xb1\x2f\xc5\x0c\xe3\x71\xd1\x02\xeb\x78\x5f\x0f\x19\x7c\xdf\x99\x9a\xe7\x79\x4e\xb1\x8d\x1b\x5c\x82\xc5\xbe\x90\xd1\xa5\x33\xa7\x16\x9a\xda\x70\xa9\x3b\xd9\xf1\xf6\xb8\xd6\xa5\x29\xe2\x5d\xd5\x16\x4e\x61\x3e\x03\xe7\xc6\x3a\xbf\xde\x16\x2c\x3d\x10\x39\xaf\x88\x97\xb7\x3b\x00\xeb\xad\x79\x85\x8e\xef\x6e\xee\xd7\x5d\xf7\xf2\x9d\xcf\x67\xb0\x6c\xaf\xbf\xab\xf7\xaa\x69\xcb\x1d\x33\xd5\x3d\x5f\xa6\xba\xb2\x18\x21\x17\xc3\xf6\xd7\xd0\x9a\xab\x5e\x7a\xa4\x17\xe6\x2e\xde\x44\xcf\xd7\x58\xf3\x0a\x1d\x97\x3a\x01\x15\x7a\x6b\xfd\xbd\x7f\x85\xcf\x77\xd2\xcd\xe7\xcb\x6e\xa8\x3e\x84\x73\x6e\x65\x58\xef\x5b\xd5\xb2\x03\x7a\xcf\xfa\x9e\x2f\x4d\x78\x9c\x98\x9b\xca\x00\x99\x7b\xb6\xba\x41\xd7\x5b\xf1\xb2\xe3\x9c\x48\xa9\x52\x8b\xcf\xb6\xdd\x6e\xaf\xb5\xe2\x65\xbb\x9d\x3a\x8e\xda\xfb\x57\xbd\xf4\x4a\x5b\x63\xdd\xcb\x76\x1b\xee\xed\xdb\x5d\xde\xeb\xaa\x72\xe9\xae\x7a\x6d\x79\x8b\x95\x0e\x32\x79\x6b\x73\x4e\x7a\x1e\xa8\x78\x07\x4b\x8c\x8f\xe9\x90\xe5\x32\xe3\xc9\x2e\x16\xb8\x45\x60\xe4\x62\xb8\xd5\x95\xb6\xce\x6a\x97\x9d\x78\x21\xd3\xbb\xb9\xf2\x37\x34\xd2\x6b\xa9\x76\xd9\xce\xe2\xc2\xda\x62\x85\xaa\x4f\x93\xde\xee\x54\xe8\x4d\x54\xbf\xf4\x54\x6f\xa2\x11\xcb\xce\x83\x4e\x46\x2c\x2d\xb3\x6d\x6f\xec\x75\x56\xbb\xf4\xb8\xaf\xb3\xf2\xa5\xc7\x9b\x01\xa1\xfa\x1a\x4e\xcf\xe5\xbb\x5d\x48\x45\x87\x6b\x10\x2e\xbb\xa8\x73\x77\xbd\x6d\xce\xb0\xfd\x6b\xb1\xf8\xbd\x56\x9f\xc6\x6c\xf7\x4c\xf8\x5a\x48\xcc\x30\x92\x59\x4a\x2a\xf5\x87\x70\x51\xc1\x95\xda\xc6\x62\xae\xfd\x67\x49\x1c\xef\x61\x07\x5d\x09\x8e\x5d\x0a\xdd\x61\x23\xaa\x49\xad\x12\xaa\x21\x60\x0e\x82\x53\xb8\x20\x13\x59\x2a\x5f\x74\x27\x4c\xf2\x00\xe6\x0e\x8c\x56\x71\x7e\x17\xfb\xba\xcf\xcd\xc0\x77\x7a\xe4\xef\xb2\x44\x54\x4a\x07\x40\x86\xb6\x3e\xa6\xf0\x7d\x47\x1b\x9b\x67\xe5\x90\x63\x38\x3c\x36\xfe\xf8\x98\x9c\xbb\xb2\xac\x13\xed\x15\xb6\xec\xc3\xe4\xec\xe2\xdc\x56\x8b\xb5\x90\xff\x5c\x89\xab\xc2\x0d\xef\xe7\x49\xce\x80\x6f\xe5\x97\x7f\x6a\x29\x5e\x5d\x1d\x74\xb8\xc8\xb8\x60\x57\x07\xbf\x98\xd7\x3e\x4c\x2e\xb0\x2e\xf7\xbe\x2d\xca\xbd\x3d\xb6\xcf\xe1\xf5\xdf\xb0\x4a\xfc\xe5\xac\x56\xdd\x19\x06\xe4\xb9\xc8\x7b\xf7\x39\xc5\x9f\xf1\x6b\xdb\x91\xb7\x5f\xb6\xd2\x91\xda\x5c\x6e\xb0\x3b\x1f\x31\x1e\xf0\x96\x2b\x86\x2e\x7f\x88\xb0\x84\xc0\xa8\x4c\xca\x6b\x88\xf8\x28\x46\x48\x0f\x7c\x8d\xeb\xef\x15\x56\x72\x05\xbb\xed\xea\xe0\xd5\xd5\x41\xd0\xf9\xab\x83\x0e\x3e\xac\xd2\x90\xe0\x95\x9b\x53\xff\xa4\xea\x85\x2b\x29\x2c\xcb\xf6\xc7\xbd\x5d\x04\xcd\x7e\x75\x75\x30\x90\xd2\x3e\xf9\xad\x63\x3b\x71\x29\x31\xae\xcb\x92\x5f\xfc\x99\xbc\x61\x98\x4d\x03\x21\x8e\x10\xea\x64\xfa\x4f\xa4\x22\x13\x3a\x06\xd8\xf4\x52\x58\x67\xb1\x0b\x3e\x83\x70\x52\x97\x8e\x02\xe8\xf1\xb5\xfd\x12\xce\x6e\x8f\x7c\x46\x70\x1d\x28\x19\xdc\xf9\xf4\x16\x47\xcd\xa2\x69\x01\xe3\x0d\x22\x75\x09\x59\x90\x52\x98\x95\xe2\xc8\xac\x90\xcb\xb7\x60\x00\x6d\x0f\xb9\x26\xf9\x84\x1c\x21\x33\x6e\x7e\x3d\x3c\xc6\xc4\x29\x33\x6c\xcf\x2a\x18\xfb\xa9\x8d\x08\x04\x01\xb8\x52\xdc\x3a\x3c\xd4\x0e\x59\xe0\x32\x19\xb1\x31\x82\xc0\x56\xa5\x91\x41\x29\x92\xc2\xca\x18\x5d\x50\xc8\xab\x45\xd1\x01\x93\x8d\xad\xac\x56\x80\xe5\xed\xe1\xa2\x26\x55\x3a\xa4\x28\x95\xa5\x51\xad\x9a\xe7\x3c\xf0\x0e\x7c\x68\x92\xbb\xe8\xb7\x42\x2a\xff\x32\xbc\xea\xc6\xf0\xe8\xf3\xc7\x37\x1f\x5f\x39\x48\xf8\x84\x6a\x80\x22\x9a\xc2\x08\xc7\x1c\x33\xc7\x3e\x6b\x0b\xf6\x7b\xe4\x47\xfb\x7b\x03\x4d\x2b\x71\xa0\x3b\xb6\x05\x2c\xed\x3d\x9b\x76\xc7\x2f\x13\xc0\x50\x16\x3c\xeb\x71\x51\xe8\x42\xf5\xce\x45\xf1\x51\x21\x59\xe9\x1d\xf2\x3e\x78\xcb\x32\xc0\x40\xfe\xb5\x83\x65\x02\xb1\x4f\x05\x81\x70\x13\x82\xd0\xd5\xf0\x72\x8f\x90\xbf\x21\x55\x32\x0e\x3e\xcc\x85\x54\x18\xce\x60\x17\x2d\x84\x38\x00\x40\xa4\x08\x7e\x01\xe4\xdb\xdc\xa1\x83\x4b\xe0\x75\xd6\xe5\x98\x39\xc0\x28\x61\x9d\xd1\x2e\x9a\x16\x40\x5e\x90\x3c\xd9\x9c\x43\x40\x50\x35\xa8\xd3\x1a\x40\xe5\x78\xc8\xf8\x96\xd3\x04\xb2\xa0\xa8\x85\x87\x54\x16\x93\xb5\x35\x18\x82\x8b\xa2\x2b\x55\xd7\xba\xa8\xa7\x66\x60\x99\x80\x08\x47\x39\x78\x2e\x06\xf2\xce\x61\x1f\xc8\x0a\x81\xc5\x7e\x84\xb8\xdc\x3e\x86\xb4\x07\x01\x43\xb7\xec\x30\xcb\xc8\x2d\xb5\xa9\xc6\x5c\xbb\x98\x2e\x24\xa0\x0d\x5e\x9f\x1f\x23\xd1\x2f\x79\x96\xbe\xa1\xc5\xe2\x4e\xfa\x4a\x29\x39\x48\xe4\x38\xe7\x2d\x60\x1a\x0b\x61\xe8\xf2\xe2\xb5\x1c\x8f\xf9\x54\x7c\xc6\x82\x1f\x7f\x56\x8c\x5d\x16\x2b\x36\x7c\xc8\x8b\x19\x79\xa6\x0b\x7d\x2d\xef\xf1\xf1\x98\xfe\x53\xae\x34\x60\x63\x2e\x56\xfb\x30\xcf\x68\x61\x96\xc4\xba\xc3\x30\xb0\x27\x53\x2d\x6c\x1f\xe6\xd6\x99\x9f\x35\xa3\x9d\xb6\xf5\xd9\x3a\x01\x6d\x8b\xb1\xad\xeb\x4e\x3f\x5e\x46\x94\x5e\x97\x7d\xd6\xa5\xc3\xa1\x62\x43\x5a\x48\x55\x05\x37\x35\x1d\xc5\x37\xa7\xbd\xb3\x8b\xf3\x4b\x44\x08\xbe\x63\x87\x57\x2f\x35\x82\x9d\x30\x82\x7c\x0a\xd4\xed\x2f\xe6\xda\xf0\x93\x23\x2c\xad\xe1\xae\x5e\xb9\xeb\x40\x0f\xee\x16\x57\x07\x31\xb9\x7a\xaf\x93\xab\x63\x0e\xed\x8e\x72\x68\xd7\x9e\xae\x1a\x90\x6d\xb6\x56\xa9\x73\x96\x2c\x55\xdd\x6a\x62\xe6\xd2\x54\xd3\xb9\x63\x39\x99\x17\x02\x0a\xab\x20\x0f\x05\xb8\xeb\xa4\x23\x09\x00\x84\x63\x98\x23\xfb\x8b\x65\x6a\x40\xa1\xb4\x4c\x46\xe7\x26\x7a\xd9\x92\xc2\xd8\x9e\x38\xea\x7b\x9a\x32\xc5\x11\xff\xb0\x25\xaf\xf0\xec\xe2\x7c\xba\x63\x53\xc7\xdd\xe6\xe2\x06\x97\x09\x31\x0a\x8e\x94\x85\xac\x5e\x77\x99\x80\x56\x1b\xfd\xd7\x0e\xd7\x68\xa1\x33\xcd\xbf\xed\x63\xbd\x75\x3d\x54\x15\xc7\xdf\x9d\x80\x48\x32\x56\x1d\x76\x20\x8d\xe6\x1f\x62\x19\xd5\xc5\x67\x45\x85\x86\xaa\x3e\x6f\x99\xf2\xf8\x3d\xd5\x05\xc6\x53\x5b\xe4\x61\xdb\xe3\xc2\xb7\xc8\xc1\xeb\x49\xe1\xd3\x27\x00\x8a\x01\x22\x6a\x67\xf1\x67\x2f\x94\x80\xf8\xd7\x7a\xfa\xa1\xfd\x28\x24\xfc\xf0\x19\x50\xb0\xdc\x33\x68\xab\x6f\xd8\xa6\x32\x0b\x7f\x04\xe0\xcf\x8e\xe9\x70\xf7\x56\xaa\xb4\x53\x9d\x0d\x0e\x5b\xc2\xd1\x21\xf9\xf1\x3a\xd4\x6b\x68\xdd\x32\x69\xe5\x5c\x4f\x01\x21\x04\xcd\x81\x43\xce\x9c\x70\x9f\x01\xf2\xef\x1d\xcd\x34\xeb\x10\x7b\x43\x5f\x85\x88\x7b\x3e\x95\x7d\x48\x62\xef\x72\xf0\xea\x6d\x5a\x35\xc9\x61\xb1\x90\x69\x3b\x78\xdb\x53\x8b\xdf\x73\x7d\x57\x0a\x40\xfd\x45\x54\x83\x32\x0b\x62\x1e\x08\x8d\x88\x24\xf4\x10\x94\xdd\xb6\xbc\xc8\x95\x92\x25\x57\xbc\x81\x05\x35\x2c\x9d\x39\x19\x15\xf5\xc7\xa2\xa8\x7b\x5c\x99\xa5\x85\x25\x2e\xd5\x79\xb2\x71\xe7\x6a\x21\x88\xd4\x1d\xa9\x86\x97\xf5\x5b\xce\x6c\x71\xbe\x9e\x6b\x88\xa5\x90\x86\x65\x0b\xec\x6b\x98\x40\x87\xa9\x9e\x00\x55\x3d\x91\x25\xa4\xc7\x39\x66\xc1\x94\x23\x7a\x70\x10\xf5\x68\x64\x3a\xfe\xb9\x98\x69\x34\xa1\xdf\x95\x22\xcd\xe6\x1d\xe5\xaf\xcf\xf0\x35\x14\x09\x17\x6f\x3f\x00\x00\x49\xca\x52\xf2\xfa\x8c\xf4\xf1\x51\xe0\xac\x08\xa8\xab\x2c\xbb\x1d\xab\xdf\x4c\x0e\x11\xc0\x10\x80\x4e\xaa\xc6\x03\x10\x43\x29\x82\x1c\x57\xcb\xc2\x5a\xa8\x52\x17\x44\x49\x59\x68\x07\x90\x51\x51\xd7\x9b\x11\x31\xb5\xcd\xcc\x19\xed\x4f\x0a\x76\xe7\x6e\xad\x3d\xab\xad\x74\x73\x3c\x77\xbd\x44\x2d\xe4\x98\x27\xab\x27\xa3\x83\xa9\xcb\x29\x44\x66\x2c\x30\x33\x1d\x0c\xf5\x01\xa6\x23\xe0\x30\xae\x20\x5e\xa0\xb4\x0b\xc5\xa5\xe2\xc5\xe4\x03\x17\x7c\x5c\x4e\x99\x43\xdb\x5a\x14\x7e\x22\xca\xb1\x6b\x60\x6e\x7f\xc6\xa6\x61\x53\xed\x91\x0f\x3c\x14\xb4\x20\x19\xa3\xba\xe8\x91\xbf\xf2\xe1\x88\xa9\xea\x83\x31\xa3\x22\x48\xcd\x1c\xba\x6e\xe7\x80\x2a\xac\xea\x6c\x17\xd2\xf4\x38\x93\xb7\x61\x01\x52\x98\xb3\xff\x07\xe9\xac\xfd\x98\xa9\xe7\xdc\xed\x5e\x4b\xc1\x82\xc7\x7c\x38\x72\xa4\x7a\x13\x48\xa6\x24\x23\x6c\x50\x6b\xef\x2c\x4f\x85\x2e\x01\x24\xc2\x11\x5d\x8d\x64\xe6\x1a\x3a\x64\x60\xaf\x1c\xd5\x3b\xe5\x68\x1c\xf9\x98\xaa\x09\xd1\x52\x81\xfe\xd6\xa7\x1a\x48\xfe\xa6\xab\x1a\x97\xc0\x63\x9a\x32\xd3\x5d\x28\x4b\x17\x8e\x1e\xaf\x90\xd0\x61\x5d\x90\xa3\xe7\x27\x2e\x8b\xf1\xf4\xe4\x99\x23\xe9\x32\xfa\x71\x6b\x2d\x98\x29\x9d\x8f\x68\x9f\x01\xe3\x13\x10\xa2\x52\xc5\x75\x85\x6e\x22\x02\xb8\x69\xa7\xb0\x91\xa3\x9b\xd3\x5e\x9f\x2a\x57\xd5\xcd\x69\x6f\x20\xe5\x33\xf2\x37\x76\x98\x56\x29\x91\x0d\x4f\xf2\x2b\xf2\x7b\x2b\xa2\xc9\x91\x45\xd6\xab\xc2\x20\x9e\x99\xd9\x3f\xfd\xe3\xc9\xc9\x09\x08\xb5\x0b\x4a\x2f\x99\x26\x47\x1f\x73\x26\x2e\x47\x7c\x50\x74\xc8\x1b\xc6\xcd\x5b\xc0\x65\xe4\x73\x2e\xad\x03\xd6\xba\x1a\x9f\x9f\x9c\x9c\xe8\x59\x7b\x76\xd5\x3c\x6f\x2e\x34\x4b\x4a\xc5\x2e\xaf\x79\xfe\xf9\xfd\xe5\x4f\x46\x1a\x4e\xe6\xa5\xd5\xb7\x7d\xe3\x84\xab\x26\x9f\xdf\x5f\xce\x94\xb0\x96\xf4\x6b\x5a\xa8\x07\xfb\xb9\xa2\x95\xd3\x85\x92\x62\x98\x41\xd9\x89\x2c\x15\x05\x1e\x17\x88\xda\xa8\x70\x64\x61\x6c\x2a\x79\x8b\xb4\x99\xab\x20\xae\xeb\x29\x5b\x3d\x59\xab\x32\x6a\x0f\xbf\x8a\x82\xe1\x4e\x0b\x96\xbd\xdc\x58\x68\x55\x07\x35\x1f\x30\xc1\x98\xa7\x1e\x60\xb3\x3a\x29\x7a\x84\x9c\x5b\x2c\x82\x6a\x98\x81\xf0\xc2\x1c\x8e\xe4\xe5\xcb\x17\x9e\xfc\x38\xa8\x03\xe8\xa0\x11\x04\xd7\x0a\x23\x46\x46\x54\xa4\x99\xa3\x22\xae\x89\x60\xe7\x82\xe7\x1a\x5f\x62\x29\x1c\xda\x59\x36\xc1\x5d\x57\x9b\x4a\x06\x40\xb0\x96\xd2\x84\x8f\x73\x33\x9d\x2c\x33\xe3\xe5\xbb\x23\xcc\x32\xce\x6c\x59\x8a\x24\x23\xca\x85\x5d\xfb\x1e\x33\x7b\x86\x99\xe4\x66\xa1\xfb\xdc\x4f\x55\x83\x5d\x47\x2a\xf2\xbe\xc6\x41\xd2\x23\x75\x36\x7c\x0c\xf5\x58\xfe\x78\xb1\x15\x38\x21\xb7\x58\x0b\xdd\xdb\x8e\x3c\x00\xdb\xeb\x19\x91\x9d\x24\x0f\x3b\xc0\x85\xe6\x29\xc8\x30\xa3\xfd\xc3\xfc\xf4\x08\x71\x74\x65\x43\x88\x1d\x50\x08\xf3\xf5\x6f\xa6\xe4\x1c\xc1\xdc\x68\xc7\xb4\x4c\x9e\x2d\x8c\x2f\x39\xa0\x88\x15\x87\x3a\x68\x13\xc5\x16\x59\x52\x61\x94\xe7\x16\xfd\x41\x8f\x69\x96\x75\x48\xae\x64\x9f\xf6\xb3\x89\x13\x73\xa7\x27\x1a\x2e\x29\x10\x43\x21\x07\x84\xfd\xab\x0c\x78\xa1\xec\xf9\xc2\x99\x65\xd1\x75\xbf\xdb\x5b\x57\x53\x9b\x32\x02\xbf\xb4\x30\x1d\x96\xfc\x1b\x9b\x46\xdd\x48\xd9\xbd\xd0\x28\x87\x6b\x72\x75\x00\x9b\xdb\xc8\xf6\xab\x83\x8a\x86\x17\x46\x0c\xd1\xa1\x85\x14\xf5\xb7\x1a\xa5\xe8\x8e\xd5\xf1\x8c\x58\x77\xe3\x98\xb1\x2f\x3c\x91\x43\x45\xf3\x91\x23\x21\xbc\x3a\xf8\x7e\xba\x0c\x00\xcd\x55\x85\x53\x79\xaf\x0e\x6e\x4c\x2b\x90\x1a\x4d\x99\x9d\x6f\x39\x6d\x80\x3d\xcd\x0e\xec\x11\xf2\x4f\xfc\x53\xfa\xc3\xff\x99\xfd\x24\xa0\xe8\x45\x9b\x17\xf4\xf2\xea\x00\x4e\x47\x07\x9e\xd8\x67\x85\xf9\x1b\x98\xb9\xd1\x36\x59\x2f\x98\x8b\xa0\x60\x58\x47\x9a\x41\x63\x34\xa8\xdd\x36\x40\xa9\x3f\x21\x7f\x39\x23\x57\xe5\xc9\xc9\x0b\x46\x4c\x91\xee\x6f\xa8\x0b\x10\x42\x14\x33\xaf\x80\x68\x73\x23\x06\xdd\x14\xd2\xd1\x31\x83\xba\x41\x35\x7e\x2f\x15\x7e\xfb\xcc\x33\x71\x09\xd0\x88\xf0\x30\x17\xc3\x7a\x97\x6d\x8f\x6b\xad\x45\x96\x42\xdc\xd1\xae\xb5\xce\x92\xe4\xc6\xfb\x15\xb9\x39\x3d\xe9\x90\x9b\xe7\x1d\x72\x73\x6a\xfe\x1f\x53\x4c\xcd\x5f\x27\xe6\xaf\x17\x1d\x72\xf3\x02\x42\x2c\xcd\x4f\x36\xc7\x0b\xde\x83\x3f\x9f\x77\xc8\x40\xca\x53\xfc\xdf\x93\xf5\xe0\xb1\x2c\x78\x35\x6d\x55\x64\xef\x90\x44\xdb\x33\xf0\xcd\x05\x10\x6f\xbe\xba\xbc\xcb\x66\xfe\x8d\xad\x8d\xb0\xa1\xad\x2d\xaf\x2d\x08\xa1\x3b\x5c\x2b\x1f\x45\xce\x6d\x23\xd7\x80\xf5\x75\x5f\xaf\xcb\x82\x76\xac\x39\x57\xb4\x31\xcd\xbb\xd7\x6c\xa2\x6b\x0b\xa9\x2a\x26\xf8\xe9\xe7\x05\x2f\x7b\x63\x9a\xdf\x51\x69\x0b\x1f\x61\xc3\xfa\xbc\x3c\x21\xe1\xd4\xee\x58\xf3\x32\x9e\xd2\xd7\xee\xe6\x81\x08\x5f\x85\x78\xb8\x29\xcd\xcd\x2d\x22\xa3\xfc\x4c\xe7\x46\xcd\x5c\xc0\x8b\x92\xe6\x58\xe5\x26\xbc\xd1\xe8\x36\x5f\xe1\x66\xf8\x63\x83\xda\xf1\x87\xfb\x36\xc1\xa8\xab\x4b\xe3\x7b\x81\x8e\x1b\x30\xf5\x73\x0f\xc7\x2a\x35\x5e\x36\x58\x7f\x24\xe5\xb5\x67\xad\x32\xf3\xf2\xf2\xe5\x0b\xd0\x71\xfb\x34\xb9\xbe\xa5\x2a\xc5\x93\xa5\xe0\x7d\x9e\xc1\x4d\xf6\x17\x53\xea\x2f\x01\x2c\x18\xb5\x8c\x8b\x50\x9b\x3b\x22\x4f\xbb\xdf\x7c\xfd\xf5\x8b\xaf\x2d\x26\xad\xe6\x37\xac\x09\x71\xb6\xae\x53\x60\xbd\xeb\x1c\x8e\xb4\x18\xab\x14\xdd\x37\x31\x56\xe9\x49\xb8\x40\x76\x19\xab\xd4\x94\x35\x8f\x38\x60\x69\xaa\xab\x31\x6a\xe9\xee\xa8\xa5\x65\xb2\xd7\xee\x31\x0f\x31\x7e\x29\xc6\x2f\xc5\xf8\xa5\x18\xbf\xb4\x36\x81\x12\x83\x98\x9e\x8e\x16\xbc\x8b\x20\xa6\xa9\xfb\xd9\x82\x16\xa0\xa8\xc6\x3f\x6a\x35\xfe\xa9\x47\x32\x6d\x49\x5d\x8c\x31\x4d\x31\xa6\x29\xc6\x34\xc5\x98\xa6\x18\xd3\x14\x63\x9a\x62\x4c\x53\xfb\x69\x19\x03\x9b\x62\x60\xd3\xbc\x16\xc6\xc0\xa6\x18\xd8\x14\x03\x9b\x62\x60\x13\x4a\x93\x05\x6f\xaa\x7b\x16\xd8\x34\xc3\xa5\x13\xa3\x9b\xd6\x62\xd7\x8a\x21\x4e\x5b\x0f\x71\x9a\xa1\xbe\xc5\x38\xa7\x18\xe7\xb4\xb7\x71\x4e\x5f\xd9\x37\x0e\x78\x88\x9c\x76\x50\xf0\x02\x0c\x58\xa0\x71\xe0\xfe\xb2\xf5\xd6\xcd\x86\xbd\xd3\x3f\xf5\x4e\x0e\x7c\x21\x39\x2d\x46\xd5\x32\x3c\x38\xa6\x39\x3f\x0e\xd7\xff\x90\x15\x53\xf2\x16\x40\xe8\x1a\x52\xe5\x80\xe6\x79\x66\xef\x83\xc7\xff\xd4\x4d\x3a\xb8\xf0\xe9\x84\x8e\xb3\xd9\x4f\x6f\x44\xda\x0b\x88\x0f\x73\x25\x0b\xd9\x2f\x07\xd5\x30\x05\xc2\xaa\xb9\x4c\x86\xac\xa8\xa8\x96\x43\x55\x3a\xbc\x61\x1f\x78\x9e\xcb\xf3\xd4\x7e\xf4\x5a\x2a\x56\x39\x8b\x6a\x2f\x3b\xfc\xbd\xbd\xe8\xae\xe3\x48\x9e\x3a\xea\x9e\x9f\x9c\x4c\x9f\x53\x4d\x0a\xbe\xef\x6b\xad\x20\x08\xae\x3c\x6e\x9a\xe4\xc9\x3d\xcd\xf2\xe1\x38\xd6\x8a\xfd\x6d\xe6\xa9\xf6\xf2\xe4\x74\x6e\xeb\x7f\x14\x0e\x7d\x9b\xa5\xb5\xf3\xb1\xfd\xd6\x0f\x80\x99\x53\x93\x06\x56\xe5\xf6\xa1\x2d\xe8\x70\xea\xf5\x44\xaa\xe0\x2c\xfa\xf9\xab\xb0\x46\x77\xe6\xc0\x86\xb9\x39\x7d\x2c\x7b\xa6\xcd\x35\x38\x63\xc3\xfc\x74\x7a\x76\x71\xfe\xa9\xed\xfd\xb8\x67\x96\xdf\x33\x6e\x20\xc1\xe9\xf3\x08\xf6\xcd\xff\x0d\x53\xed\xef\xde\x3a\xe6\x10\x96\x82\x89\x02\xc3\x17\x6a\x33\xb5\xf8\x5e\xfa\xfd\xf1\xef\x17\x5a\xef\x78\x39\xc4\x60\x03\xa3\xba\x00\x97\xf6\x6b\xd7\x84\xa9\x20\xb5\xe6\xe2\x37\x9f\xe3\xea\xbf\xe3\x9b\x5d\x6d\x80\x99\x1f\x98\xca\xbe\xd5\x85\x62\x74\xfc\xdf\xb7\xd3\xdc\x4e\x0b\x94\x5d\xff\x7a\xbf\x77\x5a\xcf\x2c\x40\xb3\xaf\x1a\x53\xf4\x38\xf7\x56\xf0\x41\xed\x72\x85\xbc\xd8\x6e\xcd\x1e\xcc\x7a\xad\xd5\xa1\xdd\xee\xc6\x6e\x77\x58\xcf\xde\x07\xf3\xb1\x37\x2a\x55\x37\xa7\x8a\x8e\x59\xc1\x94\x9e\xed\x4f\x6f\x0c\x3f\xe0\x1d\x03\x2f\xc0\x77\x52\x5e\x8f\xa9\xba\x0e\x22\x26\x60\x9d\x22\x53\xb2\xb6\xce\x88\x49\xce\xc8\xd5\xc1\x77\x1f\x3f\x7e\xff\xe1\xec\xd3\xf7\x57\x07\x55\x6c\x06\x5c\x1c\x52\x09\xe0\xde\x7c\x9c\x67\x6c\xcc\x44\x41\xfa\xbe\x54\x88\xdd\x18\x0a\x24\x4a\xe7\x9a\x0c\x32\x8a\x8e\xec\xea\x15\x30\x96\x99\xaf\xac\x33\xcd\x7b\x78\x53\xae\x13\xc5\x6c\x40\x9a\x75\xf7\xd9\x0b\x86\xa9\x8e\x6a\x23\xcd\x1a\x05\x29\x56\x94\x4a\xb0\x14\xc2\x29\xc5\xc4\xdd\x7d\x12\x0c\x26\xba\xa1\x59\x87\x08\xe0\xb9\x06\x9b\xdf\xc4\x15\x52\xd5\x6b\x0d\x9a\x0c\xec\x7d\x13\xe2\xfa\x6c\x99\xa3\xd3\x12\x6c\x6b\x94\x68\x86\x94\xb6\x68\x2a\x45\xf7\x0c\x34\x0a\x87\xaf\x13\x12\xb4\x9b\xa7\x30\x04\xa9\xb7\xac\x0e\x18\x2d\x4a\xc5\x08\x18\xfc\x1b\x13\x61\x4b\x62\xc2\xa8\x15\x00\x7c\xed\x7d\xd5\xb3\x8a\x6d\x18\x5f\x60\x8e\xff\x55\x32\xd5\x30\x74\xd8\x5b\x72\xdb\xf4\xdf\xed\x1f\xaa\x3d\x2c\x21\xc0\xf1\xdc\x5a\x78\x0a\x55\xb2\xb6\x4d\x7b\x67\xb0\x1f\x06\xf6\x15\x5c\x94\xcc\x5a\x61\x83\x9b\xa3\x66\x05\xba\xc5\x90\x41\x1f\x9c\xfc\x63\x09\x73\xab\xcb\xac\x08\x02\x80\x9c\x3f\x05\x8d\xec\x30\x34\x18\x70\x54\x79\x2f\x30\x7a\x2d\xed\x78\x7f\xb1\x99\x79\x29\xb2\x89\x77\x95\xf9\x86\xe0\xa7\x50\x38\x25\xb9\x62\x37\xc0\xdf\x00\xc3\x68\xab\xc6\xdd\x80\xec\xf1\x09\xcd\xec\xb3\x6a\xff\x79\x4f\xa7\x73\x0e\x61\x91\x72\xe0\x2b\x79\xe6\x8c\xb5\xae\x7d\x41\x3c\x1b\x6d\x36\x85\x9b\x9d\xc5\x70\x35\xf8\x50\x37\xbf\x84\xfc\xad\x7e\xea\x33\xf3\x05\xc9\xa4\x18\x32\x65\x2f\xe1\xb7\x23\x06\x96\xeb\xb4\x04\x23\x0b\xfb\x92\x73\x3c\x99\xc9\xd1\x90\x09\xa6\xc0\x06\x3e\xe0\x37\xf0\x74\xc0\x07\x05\x43\x63\x71\x59\x30\xfd\x0c\x21\xd9\x13\x29\x06\x7c\x58\xda\xcf\x92\x11\x15\x43\x16\x5a\x11\x70\x71\xd6\x77\x11\x1e\x6b\xa9\x33\xd7\xbf\x3c\x3d\x21\x4e\x59\x7b\x6b\x9a\xc0\x52\xc2\x94\x32\x63\x25\x87\xd8\x40\xfb\xa6\xef\x51\x21\xaf\x99\xf0\x5d\xb6\x31\x5e\x82\x31\x30\x1c\x19\x7d\x86\xeb\xc2\xfc\x64\xe4\x34\xb8\x23\xc0\xc7\xa7\x18\xba\x09\x8a\x11\xe3\x0a\x6d\xda\xa6\x60\x59\x16\xf5\x19\x87\x7d\xd4\x23\x1f\x4d\xd5\xb7\x5c\x5b\xd2\x07\x5b\x8b\x99\x19\x2b\x06\xd0\xec\x0f\xe5\x58\x29\xe9\x9c\xb4\xb6\x85\x66\x7a\x18\x18\x65\xfd\xef\xa6\xb3\xd0\xb9\xb9\xc3\x02\xe5\x42\x83\xc1\xaf\xe8\x16\x37\x90\x23\x5c\xb3\x09\x92\x27\xf8\x9f\x6d\x6c\xa4\x16\x34\xd7\x23\x59\x38\x6f\x8a\x11\x06\x22\x18\x10\xff\xbe\x5f\xc8\xb6\xf9\xb8\x85\xba\x5e\x8f\x03\x01\x6e\x24\xa7\x65\x0a\xe8\x90\xb1\x65\x93\xef\x98\x89\x4f\x91\x24\x9e\xd0\x01\x3a\xcc\x1c\x95\x44\x63\x30\xd0\xc1\x04\x56\x9d\x14\x65\x16\x90\x41\x58\xb5\xa6\x43\xa8\x86\x05\x69\xfe\x8b\x93\x72\xcd\x26\x28\xb0\xab\x82\xaf\x0e\x5c\x97\xaf\x0e\x90\xe6\xa5\x26\xeb\xcc\x2e\xf0\x21\x4d\x28\x20\xf0\xa4\xe2\x1a\x84\x50\x75\x46\xc0\xcc\xc1\x02\xb0\xd2\x38\x1c\x3d\x1c\x04\x58\x83\xce\x01\xea\x82\x14\xed\xc9\xd1\x9f\x84\x33\x66\xf6\xab\xa9\x7a\xcc\xb5\x86\x13\x01\x87\x07\x55\x3e\xbd\xac\xe4\x75\x4b\x6f\xf1\x70\xa2\xfb\x4b\xdb\x33\xa2\x59\xc6\x92\x02\xf6\x19\xec\x0d\xc5\x13\xdc\x09\xce\xdd\xe3\xfb\xee\x56\x05\x8e\x01\x57\x38\xfc\xda\x9b\x02\x21\x44\x97\xdd\x30\x35\x81\x48\x8f\x65\xbb\x0f\xa5\x5d\xda\xd6\x3c\x98\x31\xc8\x68\x9f\x65\x6b\x1b\x03\x28\x6d\x17\x63\x90\xf1\x31\xb7\x41\xe4\x63\xfa\x85\x8f\xcb\xb1\xb3\xcb\x42\xef\xed\x0d\x04\xc7\xc7\x0c\x85\xcd\xc9\x84\xf1\x49\x68\x96\x81\x18\x86\x83\x18\xbc\x3b\x84\x7d\x01\xa1\x3b\xad\x3a\xe1\xb8\xfe\xe2\xd6\xfa\x2f\x76\x0f\xdb\xc3\x02\xca\x73\x41\xad\x90\x0b\x62\x37\xa0\xa7\xd5\x70\xae\x6a\x2f\x4b\x35\x98\xee\xcd\x6d\xc5\x1f\xba\xd8\x4a\xa3\x1e\xb0\x4a\x5a\x9a\xaa\xb1\x2f\x66\x9a\x8c\x92\x5a\x60\xe0\x24\xc1\xbe\xe3\x61\x8b\x7d\x63\xb7\x2e\x00\x00\x25\x15\x48\x32\x23\xe8\xc6\xb2\x14\x05\x46\x0e\x98\x5e\x1e\x95\xb9\xa9\xec\xdf\x4c\x49\xfc\xe5\x99\x93\x6e\xa8\x11\x52\x10\xe8\xee\x6b\xb7\x76\xc0\x1b\xcd\xb3\x02\xbc\xdb\xe8\x9a\x4b\xbd\x0a\x62\x55\x9d\x9a\x16\x82\x51\xcf\x49\x98\xf7\x10\x9c\x51\x10\xac\x69\x54\x8c\x31\x17\xcc\x9f\xe6\x35\xa5\x08\x64\xa9\x33\x46\xd5\x63\xa7\x93\x91\x94\x9a\x81\x14\x2b\xa4\x93\xa1\x76\x2e\xcc\xb0\x50\x35\x2c\x41\x6d\xa7\x70\x28\x41\x87\x60\x90\x4c\xdf\x6c\x7b\x6a\x76\x2e\x1c\xdd\xf3\x01\xf1\x4b\xaa\x52\x46\x9c\x7e\xd3\xe8\x00\xd7\x84\x8d\xf3\x62\x52\x57\xc4\xbc\xf6\x4d\x0b\xa3\xb3\xdc\xd5\xa1\xbb\x0e\x03\x3e\x68\x1c\x05\x78\x7a\xf8\x75\x39\x2c\xa9\xa2\xa2\x60\x2c\x88\x2a\x74\x33\xe5\xb7\xfd\x2d\x52\xcd\x40\x48\xa9\x6b\xbb\x3f\xd8\xbc\xca\x57\x48\xc2\xb5\x2e\xed\x25\x80\x8b\x61\xc6\xaa\x1d\xe2\xb5\x0c\xb7\xe0\xba\x96\x41\x45\x9b\x5b\x87\xaf\x72\xb9\x93\xd6\x1d\xb2\x70\xc7\xd0\x25\x4b\x5b\x8f\x5b\xb8\xeb\x94\x7d\x6d\x5e\x16\x85\xef\x41\xea\xaf\x75\x41\x14\x99\x1c\xb3\x82\x8f\x99\x26\x3e\x9e\xd2\xec\xc2\x86\x46\x55\x29\x18\x66\x46\x99\xd0\xa5\x72\xc3\x47\x9d\x8a\x64\x3b\x67\x47\x0d\xbb\x0c\x1b\x13\x94\x21\x8c\x65\x81\xd0\xa5\x52\x5c\x23\x7f\x11\x31\x62\x93\x64\x54\x0d\xdd\x44\xc3\x8e\xc7\xe2\xf1\x46\xa6\x19\x83\x85\x97\x4b\xad\xb9\x59\x70\x2e\xbd\xc5\x2c\xb8\x70\x7f\xd9\x58\xfe\xea\x4e\x06\xf5\xb8\x20\x86\x30\x7e\xa5\x16\xcf\x88\xad\xbe\xa5\xda\xee\x39\x7f\xef\xf4\x69\x6c\x35\x0d\x07\xf5\x7e\xaa\xcd\x04\x27\x65\x06\x35\xf2\x6a\xd9\x2c\x2d\xfd\x79\x9d\xa7\xa4\xc5\xab\xb5\x66\xb1\x7f\x3e\x20\x87\xe6\xbb\x43\x1b\x03\x02\x23\x51\x16\x79\x59\xd8\x98\xda\xa2\x98\x90\x5c\x99\xda\x97\xee\x0d\x7e\xbd\xcd\x43\xac\xa9\xbb\x69\x8c\xb6\x35\x0b\xb7\x50\x94\x0b\xf0\x6c\x02\x05\x9a\x4f\x2f\xf1\xb1\x43\xd4\xef\x25\x23\x7b\xfa\x56\x3c\x60\x7e\xa2\x91\x98\xcc\x27\x7f\x04\x56\x3c\x2e\x8f\x53\x99\xe8\x63\xef\xa5\x3e\x86\xd5\xde\xa5\x39\x77\xa9\x1e\xe6\xca\xa7\x8f\x7d\x6e\x50\xd7\x57\x38\x80\x6d\x0d\x39\x88\x20\x92\x42\x05\xa2\x14\x9a\x15\x4b\x0e\x77\xa3\xf3\x3b\x1c\xf7\x0f\x20\x6e\xfd\x91\xa4\x81\x46\xaa\x39\x37\x46\xd5\xc8\xf3\x8c\xa3\x80\xf1\x52\xd2\xec\x64\x58\x7b\x23\x3e\x1c\x65\x93\x7a\x80\x6f\x38\x73\xb5\xba\xac\x61\x00\x12\x22\x7c\x49\x96\x27\xad\xa5\x62\xf3\xee\xc3\x9b\xd1\x0f\xd3\x06\xe6\xcd\x4e\xeb\x67\x3e\x66\xe6\xc0\x72\x06\x0b\x33\xb4\xc7\x78\x96\xa2\xca\x07\x87\x06\x08\x2d\x8c\x5d\x48\x9d\x05\xc0\xe9\x29\x10\xae\xa8\xd8\x90\xaa\x34\x63\xda\xb2\xd4\x4d\x08\x4d\x0a\x7e\x03\xb1\xf8\x8a\x70\xe1\xfe\xb5\xac\x7c\x29\xb0\x79\x97\x10\xd2\x3e\xc3\x46\xb5\x21\xb1\xf9\x37\xbc\x38\x4a\x65\x6d\x1d\x3e\x39\xd1\x25\x73\xa7\x95\xc7\x0f\x8e\x48\xab\x33\x15\x23\x36\xc6\xc3\x14\xcd\xfe\x30\x20\x69\xda\xb1\xc7\x55\xc7\xbe\x3b\xc6\x58\xc9\x22\xb8\x4a\x92\x4b\x9b\x83\xd0\x58\x14\xcb\x0e\x5a\x8b\x97\x62\x65\x7b\x9e\xfd\xeb\xe7\xc5\xbc\x4f\xc7\xff\x31\x6d\xf8\x6d\xa3\x4e\x28\xc5\x68\xda\xb0\x7f\x2d\xee\x82\x32\x1f\xef\xad\x0b\xea\x61\x7a\x86\x9e\xa2\x57\x68\xc8\x1e\xa3\x53\x28\x0c\x8a\xbb\xb3\x11\x28\x81\x72\x5a\x8c\xda\x05\x10\xfc\xb7\xf6\x24\x08\xd1\x35\xf2\x65\x8b\x07\xdc\x43\xd1\x7e\xe7\x08\x5a\x31\xe0\xc3\x31\xcd\xb7\xe1\xdf\x57\xf6\x2e\x3d\xed\xe8\x37\x8d\xf8\x50\x8b\x63\xbd\xcb\xc5\x6f\xdf\x7e\x27\xd5\x59\x96\xf9\x18\xc8\xbd\x90\xb4\xd1\xd9\xdf\x14\xe9\x76\xb2\xa2\x9b\xbf\xe5\xb5\x35\x48\xf4\xe9\x9d\x13\x1d\xfc\xd1\xc1\x1f\x1d\xfc\xd1\xc1\x1f\x1d\xfc\xd1\xc1\x1f\x1d\xfc\xd1\xc1\x1f\x1d\xfc\xd1\xc1\x1f\x1d\xfc\xd1\xc1\x1f\x1d\xfc\xd1\xc1\x1f\x1d\xfc\xd1\xc1\xbf\x84\xd8\x7f\x28\x26\xce\xe8\xe0\x8f\x0e\xfe\xe8\xe0\x8f\x0e\xfe\xe8\xe0\x7f\x28\x0e\x7e\x07\xb0\xbb\x4b\xb7\xd3\x5b\xdf\x86\x45\xdc\x4e\xfe\xed\xe8\x76\x6a\x8e\xfa\xfe\xb9\x9d\xfc\x64\x45\xb7\x53\xcb\x6b\xf7\x76\x3b\xb5\xed\x9c\xe8\x76\x8a\x6e\xa7\xe8\x76\x8a\x6e\xa7\xe8\x76\x8a\x6e\xa7\xe8\x76\x8a\x6e\xa7\xe8\x76\x8a\x6e\xa7\xe8\x76\x8a\x6e\xa7\xe8\x76\x8a\x6e\xa7\xe8\x76\x8a\x6e\xa7\x25\xc4\x7e\x74\x3b\x45\xb7\x53\x74\x3b\x3d\x8c\x19\x8d\x6e\xa7\xfa\xf0\x44\xb7\xd3\x5e\xbb\x9d\xc0\x44\xbc\x4b\x9f\x93\x69\xc0\x62\xfe\x26\xf3\x66\xf4\x35\x35\x47\x7b\x0f\x7d\x4d\x66\xa2\xa2\x9f\xa9\xe5\xb5\xfb\xfb\x99\x1a\xbb\x25\xfa\x98\xa2\x8f\x29\xfa\x98\xa2\x8f\x29\xfa\x98\xa2\x8f\x29\xfa\x98\xa2\x8f\x29\xfa\x98\xa2\x8f\x29\xfa\x98\xa2\x8f\x29\xfa\x98\xa2\x8f\x29\xfa\x98\xa2\x8f\x69\x09\xb1\x1f\x7d\x4c\xd1\xc7\x14\x7d\x4c\x0f\x63\x46\xa3\x8f\xa9\x3e\x3c\xd1\xc7\xb4\xcf\x3e\x26\x58\x16\x0a\x06\x67\x87\x8e\xa6\xf7\xa6\x15\x9f\x4c\x2b\x16\xf2\x36\x55\xaf\x47\x97\x53\x73\xdc\xf7\xcf\xe5\x54\xcd\x56\xf4\x3b\xb5\xbc\x76\x6f\xbf\x53\xeb\xe6\x89\xce\xa7\xe8\x7c\x8a\xce\xa7\xe8\x7c\x8a\xce\xa7\xe8\x7c\x8a\xce\xa7\xe8\x7c\x8a\xce\xa7\xe8\x7c\x8a\xce\xa7\xe8\x7c\x8a\xce\xa7\xe8\x7c\x8a\xce\xa7\xe8\x7c\x5a\x42\xec\x47\xe7\x53\x74\x3e\x45\xe7\xd3\xc3\x98\xd1\xe8\x7c\xaa\x0f\x4f\x74\x3e\xed\xb3\xf3\x49\x54\x7e\x9b\xdd\xf9\x9e\xbc\xf3\x68\x21\xd7\x53\xeb\xdb\x33\x0c\xe8\x64\x8e\xfb\x22\x1a\xd1\x1f\xb1\x11\xfd\x8e\x8d\xb6\x84\x21\x7d\xce\xd6\xbb\x7b\xf3\x35\x5c\x6a\x77\x2f\xc6\x68\x52\x8f\x26\xf5\x68\x52\x8f\x26\xf5\xc7\x66\x52\x5f\x4c\x0e\xb7\x9a\xd5\xef\x56\x9e\xd7\x28\x7b\xb7\x66\x60\x5f\x6c\x30\x66\x1b\xd9\x1f\xc6\x88\x2c\x63\x6e\x5f\x6c\x44\x66\x9b\xdc\xb7\x36\x22\xd1\xf8\x1e\x8d\xef\xd1\xf8\x1e\x8d\xef\xd1\xf8\xbe\x31\xe3\xfb\x82\x67\xc1\x94\x01\x7e\x8e\x2d\x69\x8d\x87\xc0\x23\x36\x5e\x2f\x36\xf8\x77\x19\xb0\xb7\x76\x14\x47\x53\xf6\xb6\xe6\x77\xda\x9c\xbd\xb5\x49\xde\xa9\x61\x7b\xb1\xc1\xba\xc3\xb8\xbd\x3d\x91\xb4\xaf\x66\xee\xc5\x86\x70\xda\xd4\x7d\x5f\x8b\x5b\xab\x41\x3a\xa6\x22\xec\x47\x2a\x82\xb7\xde\xc7\x4c\x84\x96\xd7\xee\x9d\x89\xd0\xe6\x1c\xd9\x70\x22\xc2\x43\x09\x4e\xf8\xaa\x31\x45\x07\xb9\xd4\x6b\x76\x73\xe1\xc5\x84\xd0\x85\x3c\x5a\xf8\xf2\x1a\x7c\x5a\x38\x8a\x7d\x99\xce\x94\xb1\x6d\xcf\x8c\x2a\xca\x15\x4b\xed\x38\x6d\x70\xa7\x2f\xb8\xcb\xe7\x1c\x72\x66\x69\xd9\x0b\x47\x87\x70\x91\x1a\xe1\xe8\x2e\x54\x35\xe3\x63\xe8\x1a\xeb\x33\x92\x9b\xa5\xaf\xcd\xda\x23\x67\x82\x70\x81\xa6\x7f\xa9\x48\x29\xbc\xf7\x20\x25\xa9\x9a\x7c\x2a\x05\x49\xb9\x62\x46\x1d\x60\xde\x24\x6d\x6e\x2f\x70\x3d\xb4\x36\x79\x27\x51\xad\x05\x94\x0c\x4a\x05\xb6\x84\x5c\xc9\x84\x69\xb8\xc7\x59\xed\xc3\xea\xfa\x3d\xf2\x13\xd4\x08\x36\x1a\xb8\x78\xbd\x22\x5d\x72\x96\x65\xaf\xe0\x96\x96\xaa\x09\x51\xa5\x20\xba\xa0\xe6\xe4\x76\x57\x53\x5b\x1c\x4b\x57\x38\x51\xb1\x2f\xbb\xd1\xd9\xc0\xc0\xf0\x81\x0a\x3a\x64\x0a\x4d\x65\xa6\x55\x84\x6a\x2d\x13\x0e\x77\x3f\x6f\x94\xa2\x60\x5b\x94\x8a\x30\x51\x18\x65\xcc\x5d\x86\xc7\xf4\xda\x8c\x62\x31\x62\x9a\x39\x8d\xc6\xe8\x7a\xce\x91\x03\xbe\x8c\x3e\x23\xa0\xd1\x81\x01\x4a\x2a\x72\xfa\xfc\x8f\xe6\x5d\x45\x13\xf0\x38\x65\x52\x0c\x51\x7f\x01\x23\x91\xb9\xcd\x53\x2e\x50\x0a\x81\x11\xa6\x7a\x17\xac\xf0\xd6\x1f\x46\xfa\x13\xaf\xa2\x0f\x65\x46\xc5\xb0\x27\xd5\xf0\x38\xbf\x1e\x1e\x97\x82\x27\x32\x65\xc7\xbf\x3b\xd7\x17\xa6\x94\x95\xad\xba\x76\x70\xd6\x39\x3d\x7b\xa5\xf0\x3c\x34\x3d\x64\x51\x1d\xe4\xf9\x02\x3a\xc8\x6b\x34\x4c\xed\x47\x73\x9f\xcf\x6d\xee\x59\x62\x6e\x96\xfb\xd1\xde\xc7\xa4\xe2\x81\x62\xb1\x6f\x2a\xde\x57\xe4\xce\xf0\x9f\xe3\xff\xf8\xbf\x7f\x3b\xee\x9b\xf3\x55\x0c\x6b\x31\x41\x2b\x68\x86\xf1\xcc\x5e\x48\xc9\x6d\x39\xaf\x37\x1c\x32\xf8\x44\x4f\xe9\x05\x93\x9b\xda\x4e\xe8\x0d\x4f\x88\xb5\xac\xe3\x2c\x88\x94\x18\x39\x47\x74\x22\x73\xd6\x21\xba\x4c\x46\xa6\xf7\x60\x06\x63\x74\x8c\x36\x9c\x5c\x49\xb0\xe4\xb7\x75\x30\xa7\xc5\xa8\xbd\x7f\xa2\x5d\x76\xdc\x71\x17\xd8\x70\xc7\xe3\xe5\x71\xfa\xf2\xf8\x1d\x4a\xdf\x65\xaf\x8e\x69\xcb\x77\x0f\xfc\x0a\xe9\x7a\x34\x5b\x87\x88\xaa\xef\x26\x46\x75\x8f\x14\xdf\xa5\x1b\xbb\x53\xb5\x77\xc9\xd6\x46\xa5\xd7\xbf\x3e\x47\xe9\x9d\x96\x6d\x6b\x56\x79\x31\x90\x73\x4c\xf3\x9a\xd2\x8b\x31\x05\xeb\x95\xf3\x58\x26\x49\x64\x96\xb1\xc4\xb9\xab\x5e\x43\xf5\x1f\x68\x7e\x87\xd4\xc7\x0f\x51\xea\xbf\xf6\x5f\x57\xf2\xbf\xb5\x8c\xcd\x9e\x00\xab\x6f\x99\x31\x4d\x46\x5c\x30\x35\xe9\xe5\xd7\x43\xf3\x83\xee\x8d\x59\x41\xcd\x26\x7a\x03\xfd\xfc\x08\x03\xa6\xd7\x62\x3c\x8c\x91\xd5\x31\xb2\x3a\x46\x56\xc7\xc8\xea\x18\x59\x1d\x3e\xdf\x8e\x47\x20\x1a\x81\x16\x9e\xa8\x5d\x3a\x6e\x62\x00\x7c\x9b\xd2\xe0\x23\x8a\xb8\x20\x1a\x83\x7c\x48\x9f\x0d\x30\x8b\xcf\x07\x44\x56\xaa\x84\x95\x5e\xb0\x74\x02\x23\x98\x90\xa2\x2b\xd8\x90\xc2\x02\xb5\xd1\x40\xa1\xb1\x0c\x83\xa3\xfd\xd6\xb0\x1a\x22\x1f\x8f\x59\xca\x69\xc1\xb2\x49\x95\x5e\x57\x1d\xb9\x3c\xeb\xd8\x28\x1f\x18\x74\x32\x54\x34\x81\x5d\xc3\x65\xea\x15\x82\xea\xd0\x86\xdc\x45\xb7\x4a\x4b\x6d\x1a\x19\x4e\x17\x35\x5f\xba\x0e\xd9\x4a\x06\x28\x03\x5d\x11\x3d\x6c\xe7\x98\x51\xd1\xda\xc6\x15\xa6\x19\xda\x7c\x01\x4d\xde\x6d\x0c\x55\xcc\x76\x88\xd9\x0e\x31\xdb\x21\x66\x3b\xc4\x6c\x87\x98\xed\x10\xb3\x1d\xfc\x21\xf0\x86\xe5\x8a\x19\xa5\x24\x7d\x45\xf2\x8c\x51\xcd\xbc\x08\xba\x50\x32\xa7\x43\xd0\x8e\x2e\x64\xc6\x93\x49\x2d\x27\xdf\x2d\xba\xd4\x17\x60\x96\xdd\x69\xef\x0f\x3d\x72\x89\xf2\x0c\x55\x97\x9c\x09\xb3\x59\xaa\x33\x95\x11\xa9\xf2\x11\x15\x0e\x23\x40\x95\xec\x78\x40\x33\x77\x57\xbe\x3a\xc0\xc7\x57\x07\x64\xc0\x05\xcd\xf8\xbf\xdd\x41\xd2\x67\x84\xa6\x10\xb4\x2f\x8f\x31\x68\x39\xad\xae\x61\x58\xfc\xa1\xae\x3e\xc2\xfb\x69\x8f\xbc\xe5\x20\x1c\x83\xa6\x4b\x35\xdd\xb7\x2a\x61\xa3\xc0\xeb\x31\xdc\x51\x64\x31\x5a\x65\x42\xb1\x07\x6f\x5c\xdf\x77\x05\x37\xf0\x37\x7b\x2e\x98\x0d\x3b\x92\xb7\x64\x48\x55\x9f\x0e\x6b\x86\x49\x7f\xa9\x61\x6a\x20\xd5\xd8\xcc\x49\xeb\x78\x7d\x6c\xf4\x68\xf6\x70\x81\xd2\xeb\x34\xd6\x1c\xc7\x96\x1b\x6d\x32\xe1\x69\x75\x15\x06\x5d\x01\x8c\x13\x7e\x8e\xcd\x61\x6d\x4f\x52\xa7\x0d\xf4\x82\xc9\x74\xe7\x88\xcf\x91\xf0\x78\x17\xf5\xca\x7a\x04\xad\xff\x70\x36\x85\x37\xbb\x43\xec\xc3\x21\xe9\xda\x05\x58\x5f\xa0\xfa\x5b\x72\xf8\x1d\x4d\xae\x87\x4a\x96\x22\x35\x6f\x01\x6e\x04\xbc\xd4\x18\x38\x54\x21\xad\x7e\x5c\x2f\xc4\xf5\xa0\xef\x4b\xfa\x96\x1c\xbe\x93\x8a\x05\xc5\x92\x84\xea\x84\xa6\xa6\xf7\x76\x7c\x10\x5a\x04\xca\xd3\x78\xf5\x9c\x2a\x70\xe0\xcb\x58\x65\x41\xe6\xcd\xe5\xbe\x17\x49\x3d\x31\xb5\x6a\x1f\x66\x21\xa6\x56\xc5\xd4\xaa\xc7\x96\x5a\xd5\xea\xa5\x8b\x41\x03\x4b\xba\xe9\x2e\x0b\x5a\x94\x8b\xfa\xe7\x1e\x95\xab\x1b\xcf\xe2\x4a\x4f\xda\x9c\xdb\xbb\xcd\xa5\xbb\x4c\x3a\xcf\x96\x81\xdc\x16\xf1\x62\xb7\x00\xb9\xdd\xcf\x73\x1d\x21\xdd\x22\xa4\x1b\x3e\x8a\x90\x6e\x31\xf0\x20\x06\x1e\xc4\xc0\x83\x18\x78\x10\x03\x0f\xa2\x47\x3b\x3a\x39\xe7\x8f\x48\x74\x72\x46\x27\x67\x74\x72\x46\x27\x67\x74\x72\x3e\x61\x27\x67\xf4\x3b\x44\xbf\x43\xf4\x3b\x44\xbf\x43\x84\x74\x8b\x90\x6e\x11\xd2\xcd\x3f\x59\x38\xe9\xd1\x5b\xef\x23\xa4\x5b\xcb\x6b\x3b\xf7\x01\xad\x00\xdc\x11\xe1\x08\x22\x1c\x81\x87\x23\x58\xc4\xa9\xd7\x0e\x48\xb0\x83\x84\xd4\x8d\x43\x12\x54\x7d\x5a\x4c\xd0\xc5\xe4\xa8\x47\x90\x1c\xf5\x44\xf1\x72\x22\xaa\xdd\x03\x89\xd2\x59\x59\x3a\xed\x18\xdc\x63\x85\xe6\xee\x14\xde\x63\xe9\xf6\x3e\x26\x2d\x77\xb3\x00\x1f\x2b\x6a\xb9\x5f\x91\x55\x20\x3e\xf0\xe7\xdf\xb6\x84\xf4\xb1\x98\x0a\x15\xa2\x7b\x44\x4c\x8f\x96\xde\x44\xd5\xe9\x21\xaa\x4e\x31\x8b\xfa\x09\x65\x51\xc7\x74\xb1\x98\x2e\x16\xd3\xc5\x62\xba\x58\xbc\xf5\xcd\xda\x45\x7b\x99\x9b\xb1\x9b\x5b\x55\x4c\x2d\x99\x99\x5a\xb2\x77\xd7\x2c\x6f\x67\x5e\x7b\x42\x89\x62\x34\x6d\xe8\x58\x8b\xdc\x96\xcc\x67\x9b\xcc\x22\x09\xb4\x0e\xf6\x05\x62\xc3\xfa\xe6\x2f\x9a\x14\x3d\x42\xde\x9a\xff\xba\xdf\xc7\x94\x83\x19\x4e\x93\x24\x2b\x75\xc1\x54\x75\x96\x60\x10\x29\xc9\xf8\x35\x23\x87\xbe\x9d\x87\x46\x65\x74\x6a\x4e\x8f\x5c\x64\x54\x08\x86\xba\x26\x28\x22\x34\x43\xdd\xe7\xf4\x8f\xab\x08\x67\x68\xe3\x8e\x54\x04\x3f\x68\x5e\xc3\xee\xbb\xe1\x33\x3d\x25\x6f\x71\xc4\xcc\xb1\x90\x6b\x37\x3a\x36\x7c\xaa\xd4\x4c\x41\xdc\x53\xa5\x2c\x4f\x36\x3c\x50\xa6\x31\x8f\xd7\x4b\xbd\xdf\x67\x57\x34\xa9\xc1\xc5\x8d\xed\x9f\x45\xed\x3e\x7e\x63\xf0\x8a\x58\x6b\xc7\x8c\xea\x17\x71\x09\xef\x8b\x37\x38\xba\xc1\x1f\x9c\x1b\x1c\xe2\x66\x16\x52\x50\x9a\xf2\xb7\x0b\xdf\xfe\xd7\xdd\xa2\x78\xcc\xd4\x90\x2d\xf4\xa6\x2e\x14\x2d\xd8\x90\x27\xdd\xc5\xbf\x31\x7f\x4f\xec\x9b\x20\xf4\x17\x51\xa0\x72\xaa\x0a\x0e\x69\x6d\x18\xe3\xb5\x82\x32\x05\x35\xee\x81\xe5\x79\x53\xce\xfb\x3b\x6e\x1a\x17\xf5\x40\x2b\x12\xed\xd1\x8f\xdc\x1e\xfd\x74\x5c\xf9\x8d\xf4\x10\xb7\xb9\x30\x85\xc9\x48\x9a\x2a\x2d\xfe\x68\x86\x14\x7a\x06\xd6\x38\xcc\x5b\xa6\x19\x7c\x29\xa4\xe8\xe2\xd7\xf0\x06\x18\xc4\x35\x39\xfa\xdf\x5a\x8a\x0b\xcc\x0e\xff\x60\xe4\x9d\xfd\xfb\xd2\x49\xc1\xea\xc7\x67\xfb\x14\x63\xb0\xf8\xba\x79\x27\x55\x02\x1e\x83\xa1\x84\xc9\x97\xe4\xea\x60\x60\x7e\xbb\x3a\x20\x67\xb5\xd1\x84\xe0\x73\x34\xef\xc3\xa5\xc6\x6e\xd4\x2e\x4d\x60\x02\x20\xbf\x38\xe3\x89\x35\x58\xc2\x1d\x48\xde\xda\xb9\xc5\xfc\xdb\x9c\xc9\x3c\x63\x3d\x82\x75\x02\xac\x80\x5b\x53\x10\x02\xde\x3a\x11\xbe\xfa\x55\x86\xd7\x54\x14\xaf\x42\xf8\x20\x5e\x85\x76\x12\x5d\xd0\x88\x97\xde\xb7\xcb\x50\xb9\x76\xbb\x57\x9e\xd1\x64\x15\x6d\xcd\x7e\xf9\x88\xf5\xb5\x18\x6c\x19\x35\xb4\xa7\xa0\xa1\xed\x91\x22\x14\xcf\x6b\xff\x24\x06\x5b\xda\x92\x1f\x95\x7a\x51\xee\x9f\xa5\xf5\x2b\xb2\x78\xec\x22\x13\x69\x2e\xb9\x28\x76\xc3\x4e\xf6\xd6\xd7\x3e\x5b\x2d\x99\xc7\x4e\xd6\x5a\x46\x8c\x64\x8c\x20\x61\x11\x24\x2c\x82\x84\x45\x90\xb0\x08\x12\xb6\x93\xcb\x46\xbc\x13\x2e\x3c\x51\x91\x9d\x6c\x9f\xb0\xdc\x62\x5c\xfd\x13\x8a\xab\x8f\xc0\x7d\x11\xb8\x2f\x02\xf7\x45\xe0\xbe\x08\xdc\x17\x81\xfb\x22\x70\x5f\x4c\x37\x8b\xe9\x66\x31\xdd\x2c\xa6\x9b\x35\x57\x64\x64\x27\x8b\x28\xa1\x11\x25\x34\xa2\x84\x3e\x70\x94\xd0\x56\x2f\x5d\x74\xc5\xc7\x14\xd2\xe6\x07\x3b\x67\x27\x6b\x73\xe9\xee\x31\x3b\xd9\x22\x5e\xec\x36\x76\xb2\x7b\x79\xae\x23\x3b\x59\x64\x27\xc3\x47\x91\x9d\x2c\x06\x1e\xc4\xc0\x83\x18\x78\x10\x03\x0f\x62\xe0\x41\xf4\x68\x47\x27\xe7\xfc\x11\x89\x4e\xce\xe8\xe4\x8c\x4e\xce\xe8\xe4\x8c\x4e\xce\x27\xec\xe4\x8c\x7e\x87\xe8\x77\x88\x7e\x87\xe8\x77\x88\xec\x64\x91\x9d\x2c\xb2\x93\xf9\x27\x0b\xa7\x3d\x7a\xeb\x7d\x64\x27\x6b\x79\x6d\xe7\x3e\xa0\xc8\x4e\xf6\x14\x60\xd9\x36\xc5\x4e\xb6\x88\x4b\xaf\x9d\x9b\x6c\x07\xe9\xa8\x1b\x87\xcb\xa8\xfa\xb4\x98\x98\x8b\xa9\x51\x8f\x20\x35\x2a\xc2\x65\x44\xb8\x8c\x96\xc6\xec\xb1\x22\xf6\x30\xe0\x32\x56\x68\xee\x4e\xb9\xc9\x96\x6e\xef\x63\xd2\x71\x37\xcb\x4d\xb6\xa2\x8e\xfb\x15\x59\x01\xdf\x63\xbb\xd4\x64\xcb\x02\x7b\x44\x38\x8f\x96\xde\x44\xbd\xe9\x21\xea\x4d\x31\x81\xfa\x09\x25\x50\xc7\x4c\xb1\x98\x29\x16\x33\xc5\x62\xa6\x58\xbc\xf2\xcd\xda\x45\x7b\x99\x96\x11\x89\xc9\xf6\xe6\x86\xb5\x69\x62\xb2\xbd\xcb\x25\x69\x21\x26\x5b\xe4\xb6\xd4\x46\x4c\xb6\xce\x04\x92\x48\x4c\xe6\xd7\xc0\xe2\x2a\x42\x24\x26\xb3\xff\x17\xcf\xae\x68\x4f\xdb\x39\x31\xd9\x0e\x5c\xc6\x21\x31\xd9\x8c\xea\x23\x31\x59\x7b\x9f\xa3\x07\x3c\x12\x93\x6d\x82\x98\x6c\x11\x65\xaa\x95\x98\xec\x11\x79\xee\x23\x31\x59\xb4\x47\x3f\x3d\x3f\x7e\x24\x26\x5b\xe7\xba\x89\xc4\x64\xf1\x2a\x14\xaf\x42\xd3\xc3\xf8\x40\x88\xc9\xee\x7d\x19\xda\x0e\x31\xd9\x62\xa6\xaf\x56\x62\xb2\x47\xa4\xaf\xc5\x48\xcb\xa8\xa1\x3d\x05\x0d\x6d\x8f\x14\xa1\x78\x5e\xfb\x27\x31\xd2\xd2\x96\xfc\xa8\xd4\x8b\x4d\x12\x93\x6d\x23\x70\x11\xd0\xca\x76\xc3\x4a\x66\xaa\x5e\x30\x70\xb1\x95\x91\xac\xf9\x7d\x0c\x5f\x8c\xa0\x60\x11\x14\x2c\x82\x82\x45\x50\xb0\x08\x0a\xb6\x93\x1b\x46\xbc\x08\x2e\x3c\x51\x91\x8d\x6c\x9f\xb0\xdb\x62\x30\xfd\x13\x0a\xa6\x8f\x40\x7d\x11\xa8\x2f\x02\xf5\x45\xa0\xbe\x08\xd4\x17\x81\xfa\x22\x50\x5f\xcc\x31\x8b\x39\x66\x31\xc7\x2c\xe6\x98\x35\x57\x64\x64\x23\x8b\xa8\xa0\x11\x15\x34\xa2\x82\x3e\x70\x54\xd0\x56\xef\x5c\xf4\xbf\xc7\xbc\xd1\xe6\x07\xbb\x67\x23\x6b\xb8\x73\xf7\x99\x89\x6c\x8e\xe7\xba\x95\x85\x6c\x55\x6f\x75\x64\x20\x8b\x0c\x64\xf8\x28\x32\x90\xc5\x60\x83\x18\x6c\x10\x83\x0d\x62\xb0\x41\x0c\x36\x88\x5e\xec\xe8\xd8\x9c\x3f\x22\xd1\xb1\x19\x1d\x9b\xd1\xb1\x19\x1d\x9b\xd1\xb1\xf9\x84\x1d\x9b\xd1\xd7\x10\x7d\x0d\xd1\xd7\x10\x7d\x0d\x91\x81\x2c\x32\x90\x45\x06\x32\xff\x64\xf1\xfc\x46\xa3\xf4\x47\xf6\xb1\x96\xd7\x76\xea\xf3\x89\xcc\x63\x4f\x01\x77\x6d\x53\xcc\x63\x54\xcc\xf5\xe2\xcd\x20\x1e\xdb\x6e\xd6\xe9\xe6\xa1\x30\xa0\x3f\x8b\x49\xb6\x98\xfd\xf4\x08\xb2\x9f\x22\x0c\x46\x84\xc1\x68\x69\xcc\x9e\xea\x5d\x0f\x04\x02\x63\xb9\xa6\xee\x96\x68\x6c\x99\xb6\x3e\x26\x55\x76\xc3\x24\x63\xcb\xab\xb2\x5f\x91\x65\x71\x3a\xb6\xcb\x2e\xb6\x80\x8e\x34\x83\x5c\x2c\x22\x73\x44\xfd\xe8\xa1\xea\x47\x31\x17\xfa\x09\xe5\x42\xc7\xa4\xaf\x98\xf4\x15\x93\xbe\x62\xd2\x57\xbc\xda\xcd\xda\x45\x7b\x99\x61\x11\x89\xc5\xf6\xe6\x56\xb5\x71\x62\xb1\x7d\x4a\x0b\x69\x23\x15\x9b\x73\x43\x6a\x25\x14\x5b\x53\x2e\x48\x24\x13\xf3\x73\xbf\xb8\x5a\x10\xc9\xc4\xec\xff\xc5\xf3\x2a\xda\xcc\xfc\xc3\x9d\x10\x89\x6d\xd7\xfb\x5b\x23\x11\x9b\xae\x3a\x12\x88\xb5\xf7\x39\x3a\xb2\x23\x81\xd8\x46\x08\xc4\xe6\x28\x4e\xed\xe4\x61\x8f\xc3\xfb\x1e\x89\xc3\xa2\xbd\xf9\xe9\xf9\xe3\x23\x71\xd8\x3a\xd7\x4d\x24\x0e\x8b\xd7\x9e\x78\xed\x79\x98\xa4\x61\xf7\xb9\xf8\x6c\x89\x30\x6c\xae\x59\xab\x9d\x2c\xec\x71\xe8\x67\x31\x3a\x32\x6a\x63\x8f\x5d\x1b\xdb\x23\xa5\x27\x9e\xcd\xfe\xc9\x93\x8f\x8e\x7c\x54\x6a\xc4\x46\xc9\xc1\x36\x1b\x70\x08\x49\x8a\x0a\x84\xd7\x4e\xd8\xc1\xde\x9b\xfa\x3f\x99\xfa\x17\x0c\x3f\x6c\xa3\x08\x6b\x2f\x24\x46\x23\x46\xe8\xae\x08\xdd\x15\xa1\xbb\x22\x74\x57\x84\xee\xda\xc9\x25\x23\xde\x05\x17\x9e\xa8\xc8\x13\xb6\x4f\x08\x6b\x31\x36\xfe\x09\xc5\xc6\x47\x38\xbd\x08\xa7\x17\xe1\xf4\x22\x9c\x5e\x84\xd3\x8b\x70\x7a\x11\x4e\x2f\xa6\x8c\xc5\x94\xb1\x98\x32\x16\x53\xc6\x9a\x2b\x32\xf2\x84\x45\xec\xce\x88\xdd\x19\xb1\x3b\x1f\x38\x76\x67\xab\x9f\x2e\xba\xe0\x63\x1a\x68\xf3\x83\x9d\xf3\x84\xb5\xfa\x74\xf7\x98\x2c\x6c\x21\x47\x76\x1b\x63\xd8\xfd\x9c\xd7\x91\x36\x2c\xd2\x86\xe1\xa3\x48\x1b\x16\x63\x0f\x62\xec\x41\x8c\x3d\x88\xb1\x07\x31\xf6\x20\x3a\xb5\xa3\x9f\x73\xfe\x88\x44\x3f\x67\xf4\x73\x46\x3f\x67\xf4\x73\x46\x3f\xe7\x13\xf6\x73\x46\xd7\x43\x74\x3d\x44\xd7\x43\x74\x3d\x44\xda\xb0\x48\x1b\x16\x69\xc3\xfc\x93\x85\xb3\x1e\x2b\xf3\x7d\xe4\x0e\x6b\x79\x6d\xf7\x7e\xa0\x48\x20\xf6\x14\x70\xd7\x36\x46\x20\xb6\x98\x63\xaf\x9d\x44\x6c\x17\x79\xa9\x1b\xc7\xca\x08\x3a\xb5\x98\xb0\x8b\x49\x52\x8f\x20\x49\x2a\x02\x66\x44\xc0\x8c\x96\xc6\xec\xb3\x3e\xf6\x30\x50\x33\x56\x69\xef\x4e\x89\xc5\x96\x6f\xf0\x63\x52\x76\x37\xcb\x2e\xb6\xaa\xb2\xfb\x15\x59\x09\xf1\x63\xcb\x3c\x63\xcb\x83\x7d\x44\x88\x8f\xb6\xde\x44\x0d\xea\x21\x6a\x50\x31\xa9\xfa\x09\x25\x55\xc7\xec\xb1\x98\x3d\x16\xb3\xc7\x62\xf6\x58\xbc\xfc\xcd\xda\x45\x7b\x99\xaa\x11\x09\xc7\xf6\xe6\xa2\xb5\x69\xc2\xb1\xfd\xcb\x2f\x69\x61\x1d\x5b\xe8\xc2\xd4\x46\x3d\xb6\xd6\xa4\x92\xc8\x3f\xe6\x57\xc1\xe2\x5a\x42\xe4\x1f\xb3\xff\x17\x8f\xaf\x68\x5a\xdb\x3d\x09\xd9\x2e\xdc\xc8\x21\x13\xd9\xac\xfa\x23\x1d\x59\x7b\x9f\xa3\x5b\x3c\xd2\x91\x6d\x82\x8e\x6c\x21\x8d\xaa\x95\x93\xec\x31\x39\xf3\x23\x31\x59\xb4\x4b\x3f\x3d\xcf\x7e\x24\x26\x5b\xe7\xba\x89\xc4\x64\xf1\x3e\x14\xef\x43\x2d\xe3\xf8\x40\xd8\xc9\xee\x7f\x23\xda\x0e\x45\xd9\x82\x36\xb0\x56\x9e\xb2\xc7\xa4\xb3\xc5\x00\xcc\xa8\xa6\x3d\x09\x35\x6d\x8f\xb4\xa1\x78\x68\xfb\x27\x31\x00\xd3\x17\xfd\xa8\x94\x8c\x4d\x72\x97\x6d\x23\x9c\xd1\x9d\x42\xa2\xb8\x91\x59\x39\x66\x49\x46\xf9\x78\x37\x5c\x66\x17\xbe\x29\x3f\x41\x53\x5e\x9b\xa6\x2c\x18\xe9\xd8\x46\x6b\x36\xb7\xbc\x18\xfe\x18\x51\xc6\x22\xca\x58\x44\x19\x8b\x28\x63\x11\x65\x6c\x27\x97\x92\x78\x77\x5c\x78\xa2\x22\xc3\xd9\x3e\x81\xc1\xc5\x60\xfc\x27\x14\x8c\x1f\x91\xff\x22\xf2\x5f\x44\xfe\x8b\xc8\x7f\x11\xf9\x2f\x22\xff\x45\xe4\xbf\x98\xa3\x16\x73\xd4\x62\x8e\x5a\xcc\x51\x6b\xae\xc8\xc8\x70\x16\x61\x46\x23\xcc\x68\x84\x19\x7d\xe0\x30\xa3\xad\xde\xbb\xe8\xb2\x8f\x79\xa7\xcd\x0f\x76\xce\x70\x36\xcf\xbd\xbb\xc7\x64\x67\xcb\x7a\xba\xdb\x78\xcf\xd6\xe6\xdd\x8e\x14\x68\x91\x02\x0d\x1f\x45\x0a\xb4\x18\x9c\x10\x83\x13\x62\x70\x42\x0c\x4e\x88\xc1\x09\xd1\xeb\x1d\x1d\xa1\xf3\x47\x24\x3a\x42\xa3\x23\x34\x3a\x42\xa3\x23\x34\x3a\x42\x9f\xb0\x23\x34\xfa\x26\xa2\x6f\x22\xfa\x26\xa2\x6f\x22\x52\xa0\x45\x0a\xb4\x48\x81\xe6\x9f\x2c\x9c\x41\xd9\x6a\xc9\x8f\x6c\x68\x2d\xaf\xed\x95\xcf\x28\x12\xa3\x3d\x05\x04\xb8\xcd\x11\xa3\x2d\xeb\x04\x6c\xe7\x48\xdb\x71\x92\xeb\xc6\xd1\x3a\xda\xfb\xb7\x98\x60\x8c\xc9\x57\x8f\x20\xf9\x2a\x02\x77\x44\xe0\x8e\x96\xc6\x3c\x10\x35\xee\x61\x60\x78\xdc\xb3\xe9\x3b\xe5\x53\xbb\x57\xdb\x1f\x93\xe6\xbc\x59\x6a\xb5\x35\x68\xce\x5f\x91\xfb\xc2\x92\x6c\x9b\x70\xed\x3e\x88\x24\x7b\xa3\xa2\x3d\x10\x1c\x92\xa8\x8e\x85\x93\xbc\xb7\xea\x58\xcc\xfc\x7e\x42\x99\xdf\x31\xc5\x2d\xa6\xb8\xc5\x14\xb7\x98\xe2\x16\x6f\x92\xb3\x76\xd1\x3e\xde\x24\xe3\x75\x6c\x1f\xae\x63\x9b\x26\x60\xdb\xeb\xf4\x97\x16\x2e\xb6\x65\xef\x52\x6d\xb4\x6c\x9b\xca\x79\x89\x0c\x6d\x7e\x6d\x2c\xae\x40\x44\x86\x36\xfb\x7f\xf1\x64\x8b\xa7\xc3\x5e\x91\xb5\xed\xd8\xcb\x1d\xf2\xb6\x2d\xd0\x94\x48\xe1\xd6\xde\xe7\xe8\xc0\x8f\x14\x6e\x9b\xa0\x70\x5b\x56\x11\x6b\x65\x73\x7b\xa4\x61\x07\x91\xd8\x2d\x5a\xba\x9f\x5e\xe0\x41\x24\x76\x5b\xe7\xba\x89\xc4\x6e\xf1\x1a\x15\xaf\x51\x8f\x82\xe3\x6d\xad\x17\xa9\xed\xd0\xbd\x2d\x6f\x66\x6b\x65\x7e\x7b\xa4\xfa\x5d\x0c\x2b\x8d\xda\xdd\x53\xd3\xee\xf6\x48\x89\x8a\x67\xbd\x7f\x12\xc3\x4a\xe7\x34\xfd\x51\xa9\x29\x9b\x64\x89\xdb\xa7\xc8\xcc\x63\x8d\xc0\x87\x41\x80\xe6\x66\x7c\x8b\x58\x8f\x3b\xc1\xb6\xe0\x65\xb4\x88\x8e\x51\x6e\xc5\xcd\x1f\x5d\x3d\xd1\xd5\x13\x5d\x3d\xd1\xd5\xb3\x8f\xae\x9e\x75\x9d\x8b\x8b\x3b\x7d\x5a\x0e\xc6\x07\x69\x1a\x88\xae\x9f\x68\x1c\x78\x7a\xc6\x81\xe8\xfa\x59\xe7\xba\x89\xae\x9f\x68\x0e\x8a\xd7\xaa\xe8\xfa\xa9\x0f\xd3\xe6\x5c\x3f\xeb\xb3\x82\x2c\xee\x04\x7a\x2c\xfa\x5e\x74\x05\x45\x6d\xef\xa9\x69\x7b\x7b\xa4\x54\xc5\xb3\xdf\x3f\x89\xae\xa0\x39\x4d\x7f\x54\x6a\xcb\x63\x72\x05\xc9\x54\x6f\x09\x8b\x23\xc8\x4a\x96\x03\x72\x21\xd3\x3b\xb4\x99\x10\x85\xe3\xb5\xff\x2e\x50\x6b\xea\x5f\x47\xf4\x8d\x48\xb4\x13\x89\x76\x22\xd1\x4e\x24\xda\x89\x44\x3b\x3b\xb9\x7f\xc4\x6b\xe2\xc2\x13\xb5\xcb\x6b\x62\xe4\x43\x8a\x58\x50\x4f\x18\x0b\x2a\x92\x5f\x45\xf2\xab\x48\x7e\x15\xc9\xaf\x22\xf9\x55\x24\xbf\x8a\xe4\x57\x11\x22\x31\x42\x24\x46\x88\xc4\x08\x91\xd8\x5c\x91\x5b\xe5\x78\x8b\x4c\x7b\xfb\x30\x0b\x91\x69\x2f\x32\xed\x3d\x36\xa6\xbd\x56\xcf\x5c\xf4\xce\x2f\xe9\xa6\xb3\xa1\x52\x4f\xd0\xcb\x8d\x67\x71\xa5\x27\x6d\xd0\xe5\x2d\xd3\x15\xa3\xf2\xd6\x9e\x98\x88\x66\x30\x65\xaf\xce\x4e\x5f\x97\x03\x62\xda\x3a\xc7\x67\x6d\xbe\x9d\x0a\xbf\x5b\xcd\x4f\xdd\x68\x15\x68\x61\xc0\x87\xf9\x9d\x94\xd7\x63\xaa\xae\x75\x15\xd3\x8d\x4d\x05\xc3\x8b\xb6\xe6\xa1\x49\x6e\xee\x10\xdf\x7d\xfc\xf8\xfd\x87\xb3\x4f\xdf\x5f\x1d\x54\xa6\x0f\xd4\xb2\x24\xa8\xaa\x7c\x9c\x67\x0c\x6c\x1c\x7d\x5f\xaa\xd1\x2b\xf8\x50\xa0\xe9\xd7\x28\xbf\x19\x1d\x82\xda\x59\xbd\x62\xae\x99\xe1\x15\x11\xed\x09\x87\x9a\xa4\x5c\x27\x8a\x99\x36\x57\x4e\xa3\xc0\xd9\x61\xed\x1a\xf5\x82\xbc\xa5\xc1\x5c\xa1\xcd\x75\xdd\x29\xb4\x46\xe4\xa9\x1b\x9a\x75\x88\x90\xe8\xcf\x85\x8b\xb0\x37\x8e\x34\xed\x6b\xe0\x51\x9c\x10\xd7\x67\x6b\x88\xf2\xd7\x60\xcd\x34\x30\x79\x7a\x0b\xb3\xb5\x97\x58\x57\x56\xed\x56\x67\x9e\xc2\x10\xa4\xde\x45\x3a\x60\xb4\x30\x97\xf1\x21\x2d\x18\x69\x4c\x84\x2d\x89\x09\xa3\x6d\xa3\xdd\x21\xe7\x95\xef\xb6\xad\xd8\x15\x0e\x8a\x96\x25\xb0\xa3\x1b\x55\x0c\x33\x88\x61\x06\x31\xcc\x20\x86\x19\xc4\x30\x83\x36\xe1\x1b\xfd\xd7\x0f\x68\x44\xa2\x4b\x33\xba\x34\xa3\x4b\x33\xba\x34\xa3\x4b\x33\xba\x34\x1f\x97\x4b\x33\x7a\x19\xa2\x97\x21\x7a\x19\xa2\x97\x61\xe3\x5e\x86\x25\x3c\xf1\x78\x99\x93\xca\x25\x57\x9a\xe9\x47\xcf\xb1\x79\xaf\x0f\x87\x18\x4e\x2a\x7a\xba\xad\x76\x52\x8c\xd8\x18\x8f\x2d\x5d\x28\x46\xc7\x30\x3c\x69\xda\xb1\x07\x43\xc7\xbe\x3b\x96\x37\xa0\xfb\x04\xd7\x3b\x72\x89\xac\x44\xcd\xa5\xbe\xca\x10\xde\xde\xb5\xc0\x1e\x3e\x72\xc2\xcc\x0f\x4c\x65\xdf\xe2\xc0\xff\xf7\xf4\x18\x2c\x52\x76\xfd\xeb\xfd\x76\x04\x55\xb9\x8e\x32\x7d\xcf\x75\xf1\x14\xfd\x3e\x46\x7e\xed\xa3\xaf\x67\x05\x68\xbb\x88\xff\xf6\xe0\xf0\xdf\xa4\x5e\xb3\x47\x0f\x6f\x61\x84\xce\x71\xde\xe1\x6b\x6b\x72\xdf\xed\x2b\x4a\x86\x4c\x23\x26\xc6\xd3\x49\x76\x8a\x98\x18\x11\x13\xa3\xa5\x31\x7b\xa9\x6c\x3d\x10\x04\x8c\x65\x1a\xba\x5b\x0a\xe7\xc5\x5b\xfa\x98\x74\x57\x50\x1f\xf6\x47\x77\xfd\x8a\x2c\x07\xc4\x61\x11\xd8\xb7\x84\xc7\x31\x4f\x25\x0a\x31\x38\x22\xf2\x46\xad\xf6\xa8\x10\x3d\x44\x85\x28\xe6\x3a\x3f\xa1\x5c\xe7\x98\xd4\x15\x93\xba\x62\x52\x57\x4c\xea\x8a\x77\xb9\x59\xbb\x68\xf7\x77\xb9\x78\x45\xda\x55\x5a\xc7\x1e\x5d\x92\xbc\xed\x77\x33\x2c\x53\x75\x9d\xe9\xee\x1b\x4f\x2b\x93\xd4\x5a\x32\x38\x02\xcd\x81\x7d\x81\xb8\xac\xbe\xf9\x8b\x26\x45\x8f\x90\xb7\xe6\xbf\xee\xf7\x31\xe5\x60\x20\xd3\x24\xc9\x4a\x5d\x30\x55\x9d\x07\x16\x44\x3e\xe3\xd7\x8c\x1c\xfa\x16\x1e\x1a\xb5\xcf\xa9\x2a\x3d\x72\x91\x51\x21\x2c\xfa\x3f\x28\x13\x34\x43\xfd\xe5\xf4\x8f\xab\x08\x58\x68\xe3\x8e\x8e\x79\x3f\x68\x5e\x4b\xee\xbb\xe1\x33\x3d\x25\x6f\x71\xc4\x8c\x68\xcf\xb5\x1b\x1d\x1b\xba\x04\x88\xfc\x09\x15\x81\xc2\x3b\xd9\xf0\x40\x99\xc6\x3c\x5e\x0f\xf1\xe3\x3b\x7f\x1e\x93\x54\xdf\x2c\x41\xd9\x36\x7d\xb6\x35\x3a\xb2\x66\xc5\x91\x7c\xac\xbd\xcf\xd1\xf9\x1c\xc9\xc7\xd6\x43\x3e\xb6\x8c\xba\xd4\x4e\x30\xf6\x18\x5c\xe6\x91\x48\x2c\x5a\x8d\x9f\x9e\x1b\x3d\x12\x89\xad\x73\xdd\x44\x22\xb1\x78\xd9\x89\x97\x9d\x87\x48\x1b\xb6\xfa\x75\x67\x53\x24\x61\xcb\x19\xb1\xda\x89\xc0\x1e\x83\x5e\x16\x43\x19\xa3\x0e\xf6\xb8\x75\xb0\x3d\x52\x75\xe2\x89\xec\x9f\x3c\xe9\x50\xc6\x47\xa5\x3a\x6c\x94\xba\x6b\x4b\xf1\x81\xc7\xb4\x28\x68\xcd\x52\xb5\x7e\xdf\x59\x22\x85\x60\x49\x41\xfe\xf2\xf6\x73\x75\xeb\x2b\x24\xc1\xaa\xe7\x13\x78\xd9\xef\x51\x0b\xf9\x0b\x2b\x6a\x8a\xc8\x19\xb6\x7f\x01\xb1\x32\xb3\xb9\x5b\xdb\xfa\x0d\x09\xfa\x04\xf7\x8c\x9d\xca\x8d\xee\x1b\x5c\x11\x2e\x26\x73\x6b\xce\x06\x87\x65\x46\xb9\x30\x8a\x85\xb0\x78\x4c\x80\xb2\xc5\x92\xb2\x70\x20\x63\xe3\x31\x15\x8d\xf0\xba\x50\x03\x30\xdf\x82\x76\xa6\xe0\xc2\x0f\x8f\xa4\x68\x14\x0d\xf0\x1f\x72\x69\x8b\xb7\x2f\x63\x3d\x46\xef\xc5\x4c\xf8\x0d\x27\xcc\x1d\xb3\x13\x3d\x32\xed\x7d\xde\x2b\x8f\xcc\x65\x91\x32\x85\x6b\x54\x95\xac\x79\xcd\xd1\xf6\x29\x2c\xeb\xbe\xb9\x61\xe0\x7d\x85\x55\x41\xa7\x56\xea\x63\x3e\x7b\xb8\x0b\x00\x86\x65\xc9\x15\x8d\xf5\xb5\x2f\xe7\x36\xd3\xd1\x7a\x06\x80\x0b\xd7\xff\x8e\xef\x21\xe6\xe3\xeb\x82\x8a\x94\xaa\x94\x70\x91\x97\x45\x90\x65\x6e\x77\xac\x1d\x05\xae\x5b\xfa\x0f\xf1\x9d\x2b\x0c\x00\x17\xdb\xee\xbf\x2c\x8b\x3b\x16\x80\x44\xe7\xdc\xd6\x16\x80\x2c\x8b\xad\x0e\xc0\xe7\xcf\x7f\x9f\xd5\x7b\x4a\x8a\x62\x52\x05\xe2\x66\x99\xc4\xa0\xdf\xd6\xae\x3b\x70\x9d\x9c\x9a\x5b\x34\x29\x46\x4a\x96\xc3\x91\x47\x42\x42\x61\xaf\x4a\x01\x20\x33\x1a\xf1\x0d\x4c\xf1\x5c\x07\x25\x5b\x84\xac\x5b\xa9\xae\x99\x22\x42\xa6\xcc\x45\x8f\x4e\x95\xb1\x86\xd5\x36\xd3\x5f\xba\xf4\x50\xdb\xbf\x36\x9a\xad\x6b\xd5\xce\x8b\x8f\x97\x6b\xd0\x3b\x2f\xa4\x8e\x8a\x67\x54\x3c\x37\xa4\x78\xae\x7a\x7b\xeb\x1b\x01\x24\x86\xe1\xf5\x6d\x05\xd5\x35\x5a\x2e\x17\x92\x7e\x2d\x56\xcb\x0d\x2b\x5b\x4f\xd4\x56\x39\x7f\x2a\x66\xda\x29\xb7\x78\x99\xf9\xce\xee\xbd\x78\x87\x79\x68\x77\x98\x87\x1b\x55\xb6\x29\x48\x13\x7b\x8e\x20\xe0\xe2\x8a\xe8\x26\xd3\xfb\xe1\xa1\x7b\x06\x5d\x8f\x66\xeb\x4b\xad\x43\x1c\xfd\x1a\xf7\x1c\xd5\x3d\xf2\x6d\x2c\xdd\xd8\x9d\xe6\x21\x2d\xd9\xda\xc7\xa4\xe0\x6f\x16\xae\xa1\xf5\xac\xdf\x94\x52\xcf\x6e\xb8\xeb\x56\xd4\xea\xa3\x56\x1f\xb5\xfa\x6d\x6a\xf5\x6f\xdd\xe6\x8b\x6a\x7d\x54\xeb\x1f\xba\x5a\xef\x4e\x92\x7b\xe9\xf5\x2d\x3b\xe2\xa1\x2a\xf6\x16\xfd\xe0\xe6\xb4\xcf\x0a\x7a\xda\xf3\x3d\x8b\x0a\xfe\x6e\x46\x77\x0f\x14\xfd\x7b\x37\x7a\x27\x0a\xff\x3d\x5b\x1d\x15\x7f\xff\xba\x57\xfc\xf3\x69\xcc\x0f\xaf\xfe\xb7\x2b\x05\x35\xfd\x1f\x26\x62\x9d\x97\x80\x2f\x2c\xd9\x49\x54\x96\xa9\xf8\x9e\x31\x59\x6f\x4d\xdb\xa3\x63\xec\x41\x6c\x9f\x6d\x38\xc6\xcc\x7a\xd8\x7a\x3c\xd6\x6b\x8c\xb4\x82\x50\x04\xb8\x5b\x8e\x65\xe1\xe3\xaf\x82\xb0\xac\x1e\xa1\x6a\x78\x43\xa8\x52\x74\xd2\x23\x3f\xc8\xc2\x3d\xc0\x6b\x98\xb9\xc9\x12\x3d\x62\x59\xb6\x7c\xb4\x15\x54\xb5\xcd\x8b\xcc\xeb\x18\x7f\x36\x2f\xfe\x6c\xe6\x5a\x8c\x57\xbc\xf6\x3e\xef\xd5\x15\xef\x93\x0d\x27\xaa\x07\x5b\xa1\x9d\x69\xa9\x60\xab\x07\x12\x6c\xd6\xde\xdf\xc7\x1b\x5c\xd6\xde\x5f\x7b\x89\xdf\xc6\x04\x3f\xa0\x60\x32\x50\xd4\xd6\x34\xd3\x8f\x23\xb0\x6b\x05\xd5\x75\x2a\xac\x2b\xea\xae\x51\x77\x5d\x8b\xee\xba\xea\xc5\x2f\x93\xc3\x8d\xde\xfb\x00\xc9\x2e\x93\xde\xe9\x72\x4f\x40\xbb\xf7\x72\xb8\xc8\x76\x29\xd8\x97\xe2\x38\xcf\x68\xf3\x3c\x79\xdc\x26\xb3\xb8\x45\x1f\x0f\x98\x58\x3d\xbf\xc7\x1c\xc2\xfe\x82\x65\x15\x93\x4c\x0e\xf5\x12\x17\xab\x07\x7c\xa7\x7a\x27\x3d\xec\xaf\x91\x24\x53\x8a\xd9\x1a\x34\x92\x01\x54\xb1\x55\x5d\x8c\x0b\xcd\x92\x52\xb1\xcb\x6b\x9e\x7f\x7e\x7f\xf9\x13\x53\x7c\x30\xf9\x8e\x26\xd7\x4c\xa4\x4d\xe5\x0c\x9c\xb3\x39\xb7\x6c\xc1\x81\xff\x3c\x91\x62\xc0\x15\xe2\x6d\x83\xe3\x1c\x58\x17\x07\x9e\xf3\x1a\xc8\x82\x99\xb2\xdc\x82\xfe\x66\xda\x77\xd5\x80\xaf\xca\x1e\x6c\x88\xf5\xd2\x23\x98\x2a\x00\x9a\xe0\x98\x5e\xe3\x45\xfe\xaf\x9f\x3f\x5f\x5c\xfa\x17\xa5\x20\x7d\x56\xdc\x32\xeb\xf5\xaa\x5a\xe6\x10\xa1\x7d\xf9\xb6\x8f\x36\xfd\x00\x91\x62\xea\x9f\x24\x54\x98\x8e\xdc\x40\xf7\xfd\x1c\x03\xf5\x36\xb6\x0e\xc9\x7a\xa1\x23\xe6\x02\xea\xe1\xc5\x15\xa3\x19\x31\xfb\x3b\x63\x45\x8f\x20\x28\x3d\x73\x3f\xd8\x6e\x0d\xf8\xb0\xb4\xf4\xc1\x41\x05\xbe\xf2\x43\x4d\x3e\xbf\xbf\x24\x89\x62\x40\x9f\x4c\x33\xdd\x31\x95\xa6\x92\x21\x81\xb3\x69\xaf\xcb\x6e\x70\x1d\xb7\xd4\x8f\x61\xed\xa6\xb2\x9b\x32\x13\x4c\x81\x23\x1b\x10\xec\xc7\x54\x78\xe8\x6c\x9e\xa6\x99\xcd\xc6\xb8\x26\x47\xac\x37\xec\x11\x2a\xec\xbf\xcd\x08\xf8\xd9\xe4\xa2\x60\x2a\x61\x79\xe1\xbc\xf1\x25\xcd\xaa\xe1\x48\xe4\x18\x70\x74\xda\x06\xe0\xd9\xb2\x0b\xfe\xae\xd5\xb7\xd5\x6d\x70\x3e\x40\xc4\x72\xe0\x48\xf7\x6c\xef\xfd\x49\xe1\x98\xde\x69\x00\x29\x6f\xd7\x8c\xa3\x3d\x00\x36\x5a\x5a\xd8\xd8\x04\x54\x33\xe0\xf2\xe6\xd6\x1b\x9d\xc0\xb8\xa6\x5c\xe7\x19\x9d\x00\x8d\xf0\x38\x07\x8c\x70\x80\x31\x27\x19\x17\xb0\x27\x32\x39\x1c\x72\x17\x9f\x10\x90\xb0\xeb\x8c\x0f\x47\x45\x36\x41\xe2\x6f\x73\xeb\x77\x3f\x54\xa1\x0e\x75\xad\x06\xd8\x52\x97\x9d\x0c\xf8\xe8\x3b\xd3\xe5\xf6\xa1\x6f\x23\x1c\x58\xbf\xad\x2a\x1a\xa8\x1e\x9c\x81\xea\xa1\xc4\x20\x2c\x6a\x8e\x81\x4d\x97\x2b\x76\xc3\x65\xa9\xfd\xfe\x66\x69\xa0\xbb\x4c\xab\x3d\x2b\x1d\xf8\xae\x92\xad\xca\xba\x33\xa2\x58\x86\xcc\x2b\x90\x66\xd7\xce\xe4\x92\x94\x4a\x01\x79\x3d\x77\xc7\x5d\xa5\xfa\x8d\xe4\xad\x1d\x81\x3a\x09\x4b\x6e\x4e\xc9\x94\xe9\x8a\x27\x9e\x82\xc9\xea\x96\x6a\xa2\x0b\xaa\x80\xcd\x1f\xf4\x43\xf3\x35\xd1\x5c\x58\x6c\x26\xf3\x12\xbc\xe0\x4d\x3f\x9e\x38\x7e\x9a\xe7\xc5\x11\x1f\x94\x45\xa9\x58\x87\x08\x89\xa5\x4d\x7f\xf9\xd1\xd9\xf1\xe5\x00\xeb\xb2\x8c\x2a\x20\x42\xcd\xbf\x3f\x9b\x26\x3a\xc2\x0a\x4f\xea\xb2\xac\x01\x2d\x28\x79\xab\x82\xb3\xfd\xcc\xca\x80\x19\xdd\x9f\x55\x46\xff\xb1\xc2\x15\x46\xc9\x4e\x1f\x0c\x6b\x8d\xcb\xa6\x83\xcf\xa9\x62\xf0\x82\xa8\x8a\x80\x20\x99\x90\x6f\xdb\xef\x02\x37\x8e\x6d\xe3\xba\xac\x31\x8e\xf2\xec\xbd\x69\xfa\xb6\x87\x10\x33\x9a\x69\x9a\x1a\x6d\xe8\xd3\xbb\xd7\x2f\x5e\xbc\xf8\x93\xe9\x88\xfd\xf3\x07\x2a\x24\x2c\x65\x5d\xd0\x71\x4e\xac\x16\xdc\x67\x43\x2e\x84\x8d\xe2\x64\x37\x4c\x4d\xc2\x43\xdc\x1f\xff\xf7\x37\x51\xba\x8a\xd7\x25\x21\xec\x5f\x3f\xaf\x6a\xa8\xc9\xa5\x2a\x06\x52\xdd\x52\x95\xee\xc4\x51\x1f\xd4\x7f\x4f\x7f\xfd\x45\xd0\x93\x68\xfa\x7c\x10\x76\x95\x6d\x98\x3e\xcd\xb2\x78\x87\xcb\x62\xeb\xde\xfb\x86\x26\x3c\xaf\x29\x51\x37\x6e\xef\xf3\x5e\xe9\xc6\xef\xb9\x2e\xcc\x9c\x1a\xc1\x85\xe7\x80\x95\x5e\x9f\x1c\x3a\xf0\xad\x51\x99\x4b\x48\x09\xf8\x1b\xeb\x5f\xca\xe4\x9a\xb5\xf7\xfa\x2e\x3d\xd2\x94\xbe\xa6\x93\xd3\x1d\x11\xbb\x70\x66\xad\x2e\xde\xa7\x7c\x5a\x51\xbe\x47\xf9\xee\x7e\x5e\xa3\x7c\x5f\x59\x71\x52\xf2\xcb\x64\xd3\xc4\xb4\x6e\x5f\xbd\x79\xfb\xfe\xed\xe7\xb7\xf5\x9d\x65\xea\x5f\x72\x4f\x21\xd1\x6b\x7d\x57\x41\x37\xe2\x7e\x8a\xfb\xc9\xed\x27\xb3\x20\xee\xa7\x29\x6d\xef\xf2\xb0\xc2\x1e\x98\xba\x36\xc4\x0d\x10\x37\xc0\x9a\x37\xc0\x88\xd1\x74\x33\x3b\xe0\xaf\x6f\xcf\xde\xdc\x7b\x0b\xfc\x95\xd1\x34\xee\x81\xb8\x07\x36\xba\x07\xa4\xfd\x7a\x23\xdb\xe0\xe3\xc5\xe7\xf3\x8f\x3f\x5c\xde\x7b\x27\xd8\x2e\xc6\xcd\x10\x37\xc3\x46\x37\xc3\x1a\x6c\x47\x33\x1b\x11\xad\x46\xed\x7d\xde\x2b\xab\xd1\x05\x2d\x46\x2e\x89\xe7\xc7\x4f\xef\x89\x69\xba\x11\x5a\xa5\x66\x3e\x14\xda\x39\xe8\x50\x90\x59\xd1\x86\x46\x94\xe5\xbd\xac\x53\x43\xb3\x0b\x52\xc0\xa5\xcd\x47\x67\x9f\x5f\xff\xf5\xde\x42\x1d\x38\xb2\xa2\x48\x8f\x22\x7d\xb3\x22\x7d\x8b\x46\xd4\x55\x36\xc1\x94\xf9\x34\xee\x81\xb8\x07\xd6\xbd\x07\xd6\x4d\xef\xe5\xb7\xc0\x8f\x6b\xd8\x01\x65\xdc\x00\x71\x03\x6c\x64\x03\x7c\x45\xee\xe1\x33\x38\xfe\x8f\x51\xce\x7e\x7b\x24\xae\x83\xbf\xf1\x62\x74\x51\x57\x36\xe3\xc6\x8a\x1b\xeb\xe9\xb9\x10\xe2\x46\x88\x1b\x81\xac\x7f\x23\x3c\x48\x57\x42\xdc\x0b\x71\x2f\x90\xf5\xef\x85\x87\xed\x52\x88\x9b\x22\x6e\x0a\xb2\x81\x3b\x78\x74\x2d\x3c\x6d\xd7\x82\x73\x25\x60\xee\xa6\x96\xa5\x6a\xb6\x6d\x5e\x97\xa6\x9f\x44\x47\xc9\x13\x76\x94\xc4\x83\x2a\x1e\x54\x64\x03\x07\xd5\x43\x74\x98\xc4\xbd\x10\xf7\x02\xd9\xc0\x5e\x78\x70\x8e\x93\xb8\x11\xe2\x46\x20\x6b\xdb\x08\x5f\x91\xd5\x1c\x28\xba\xa0\x45\xa9\x37\x8f\x2c\x86\xf5\xac\x09\x5c\xec\x12\x1b\xbd\xc0\xc6\x79\xdc\x38\x62\x0b\x13\x40\x99\x51\x7e\x82\x5b\xf6\xf1\xa0\x8c\x45\x04\x98\x87\x6e\x54\x78\x28\x08\x30\xf6\xaf\x95\x2e\xdd\x4d\x69\xdb\x85\x6f\xff\xeb\x6e\xc1\x3b\x66\x6a\xc8\x16\x7a\x53\x17\x8a\x16\x6c\xc8\x93\xee\xe2\xdf\x98\xbf\x27\xf6\x4d\x10\xf1\x8b\x9c\x58\x39\x55\x05\xa7\x59\x36\x21\x65\x9e\xd2\x82\xad\x78\x7a\x41\xad\x8b\x1d\x5f\x0f\x92\x37\x67\x4c\x93\x11\x17\x4c\x4d\x7a\xf9\xf5\xd0\xfc\xa0\x7b\x63\x56\x50\x38\x70\x60\xd1\x2c\x76\xe4\xdc\x7d\xd6\x44\xba\xba\x70\xea\xa7\x85\xc0\xdd\x94\x75\x77\x0b\x82\xbb\x45\xc1\x52\xd3\xf4\x74\xc8\xeb\x10\xb1\x0e\xfa\x8b\xa8\x87\x16\xa4\xc0\x9c\x5a\x20\x6d\xaa\xeb\xe2\xd1\x0c\x49\xf4\x8c\xf4\xcb\x82\xa0\xf3\x8d\x66\xf0\xa5\x90\xa2\x8b\x5f\xc3\x1b\xc4\xcc\x9a\x26\x47\xff\x5b\x4b\x01\x7b\xa9\x43\x3e\x18\x99\x67\xff\xbe\x74\x92\xb0\xfa\xb1\x01\x2c\xb8\xd8\x8a\x99\xc9\xac\xb7\xb5\x75\xf3\x4e\xaa\x04\x20\xab\x86\x12\x61\x2d\xc9\xd5\xc1\xc0\xfc\x76\x75\x40\xce\x6a\xa3\xd9\x23\xe7\x85\x05\xa6\x2c\x35\x53\x6e\xa3\x76\x69\x02\x13\x00\x28\x92\x19\x47\x74\x4c\xe8\x97\x26\xf2\xd6\xce\xad\xc4\xad\xca\x64\x9e\xb1\x1e\xc1\x3a\x07\x19\x1d\xfa\x35\x55\x0a\xcd\x8a\xd6\x89\xf0\xd5\xaf\x32\xbc\xb2\xe9\x39\x98\x03\x4c\x34\x77\x60\x5b\x4f\xaf\x78\xf9\x89\x97\x9f\x16\x02\x2c\x38\x82\xf7\xf1\xfa\xb3\x6e\x53\x9d\x62\x79\x46\x93\x55\xb5\x34\xfb\xf5\x23\xd6\xd3\x56\xd8\x09\x51\x27\x8b\x3a\xd9\x03\xd2\xc9\xf6\x48\xf5\x89\x27\xb4\x7f\xb2\x89\x13\x7a\xb7\xb4\xff\x4f\x55\x95\x28\xf7\xc9\x8e\xfa\x15\x59\xca\xd5\x51\xb0\x71\x9e\x99\xe3\x69\xd3\xf9\x21\x58\x26\x49\x64\x96\x31\x4f\xaf\x7c\x21\xd3\xcf\xb6\x01\x77\xe8\x20\xf8\x29\xaa\x20\xaf\xfd\xf7\x35\x65\xa4\xad\x94\xcd\xaa\x23\x1b\x31\x0c\x61\xd6\x8b\x73\x71\xad\x43\x19\x71\x04\x1c\x5c\x94\xcc\xde\xa9\x9d\xd6\xd1\x67\xc4\x5c\xeb\x00\x3e\x50\xb1\x42\x71\x06\xf4\x04\x80\x11\x8f\xea\x84\x6e\x42\xd6\xf7\xc8\xa5\x85\x5c\x0e\xf1\x94\x2d\x9c\xbd\x3d\x99\x3a\x24\xc9\x38\x13\x05\xe2\xd6\xc3\xa1\x56\x6a\xe6\x81\x7f\xa1\x21\xf8\x29\x14\x4e\x2b\xa0\x6c\x38\x91\x9c\x26\x03\x87\x2f\x07\x42\x83\x84\x66\xf6\x59\x35\xa5\xe4\x88\x7d\x01\x8a\x01\x17\xa4\x85\x45\xca\x81\xaf\xe4\x99\xa7\x71\xb0\xed\x43\x40\x7c\x30\xb0\xd3\x66\x53\x42\xba\x04\xaf\x6b\xf5\x1c\x1b\x43\xa5\x2c\x37\x3f\xd3\x88\x1e\x2d\x8c\x0e\x81\xea\xda\xed\x88\x81\x96\x95\x96\x0c\xd9\xb5\x72\x8e\x6b\x99\x1c\x0d\x99\x60\x0a\x0c\xa7\x03\xc0\xce\x96\x64\xc0\x07\x05\x63\x82\x8c\xb9\x28\x0b\xa6\x9f\x19\xfd\x80\x7a\xc6\x07\xfc\x0c\xf5\x0a\x22\x45\xd0\x97\x4e\xd8\x2f\xa7\xff\xe5\x52\x58\x9d\x85\x92\x97\xa7\x27\xe4\x93\x0d\xce\x7b\x6b\x9a\xc0\x1c\xe1\x5f\x21\x87\xd8\x40\xfb\xa6\xef\x51\x21\xaf\x99\xf0\x5d\xc6\x39\x24\x82\xb1\x54\xe3\x5b\xa0\x9a\x8a\x82\x64\x5c\x17\xc0\x2f\x01\xda\x8d\x62\x08\xbb\x5d\x8c\x18\x57\xf0\x0c\x0a\x96\x65\x51\x9f\x71\x50\x28\x7a\xe4\xa3\xa9\xfa\x96\x6b\xd6\x09\x6b\x31\x33\xa3\x99\x48\x09\x15\x68\x8b\x80\x72\x5c\xa0\x9d\x57\xc3\xa0\x85\x96\x48\x23\x54\xcf\x4c\x67\xa1\x73\x73\x87\x05\xca\x85\x06\xd7\x28\x28\x04\xfb\x52\x90\x6b\x36\xe9\x80\xe5\xc9\xff\x0c\x72\xb1\x20\x5a\xd0\x5c\x8f\x64\xd1\xb1\x00\xe6\x80\x20\x1e\x0c\x88\x7f\xdf\x2f\x64\xdb\x7c\xdc\x42\x5d\x82\x5e\x1d\x47\x50\xa7\x2c\x20\xb6\xd9\x29\x78\x1b\x00\x50\x73\xb3\x7f\xcc\xe6\x4f\x09\x1d\x14\x0c\xd7\xf4\x80\x2b\x5d\x34\x07\x03\xb5\x6e\x2e\x92\xac\x4c\x59\xea\xc0\xcc\x9d\xda\x02\x3a\xa2\x59\x90\xe6\xbf\x38\x29\xd7\x6c\x82\xb0\xdc\x55\xc1\x57\x07\xae\xcb\x57\x07\xbd\x2b\x71\x25\xea\x56\x3b\xc0\xf5\x2e\xf3\x5c\xaa\xc2\xe1\x8b\xde\x82\xb9\x87\x6b\xa4\x08\x24\xaf\x83\x2d\x8e\x0b\x80\xda\x57\x82\xd1\xc3\x41\x80\x35\xf8\x13\x9e\x5a\x76\xdb\x38\x84\x75\xa3\xc4\x06\x33\x86\xf7\x94\x82\x8c\xb9\xd6\x84\x8a\x49\xfd\xb2\xb4\x8a\x1a\xeb\x96\xdf\x6e\x6e\x18\xf1\x22\xb8\xf0\x44\xed\xf2\x22\x78\x46\x34\x33\x3a\x05\x08\x47\x10\x68\x8a\x5b\x32\xcd\xcc\x82\xef\xfa\x05\xeb\xb6\x32\x2e\x5c\xae\xac\x2d\xb5\x8e\xd4\x0e\x78\xee\xc5\x88\x8b\xe1\xca\x57\xaf\x4b\xdb\xa2\xdd\x8c\x88\x51\x1a\x52\x77\xfe\xb4\xb3\x3b\x58\x4f\x75\xa5\x4a\x58\xe9\x05\x4b\x27\xb8\xfa\x0a\x29\xba\x82\x0d\x91\x2d\xc2\x42\x09\x87\x57\xe4\x7f\x33\x25\x83\xad\x61\xb5\x44\x3e\x1e\xb3\xd4\x5c\xc2\xb3\x49\x0b\x7f\x83\xe0\x19\x4a\xfa\x14\x07\x9d\x0c\x15\x4d\x60\xd7\x70\x59\x31\x7d\x56\x87\xb6\x19\x34\xbf\x4a\x4b\xcd\x1a\x4c\x5b\xd4\x7c\xe9\x3a\x64\x2b\x69\x70\x1b\xf4\xb0\x9d\x68\x5f\x6f\x69\xe3\x0a\xd3\x0c\x6d\xbe\x80\x26\xb7\x71\x3f\xcc\x01\x60\xde\x97\xe5\x9f\xd1\x3e\xcb\xd6\xba\xfc\xa1\xc4\xdd\x2e\x7f\xe0\x31\x42\x93\xd0\x98\x7e\xe1\xe3\x72\x1c\xd0\x63\x78\xfb\x00\x8e\x16\x50\xbd\x80\x73\x0b\x47\x0b\xa9\x65\xcf\x07\xa8\x46\x73\xd3\x16\xc2\xbe\x80\xca\xd4\xd4\x4d\x8c\xf2\x6d\x7e\xfb\xc5\x9d\x52\xbf\xd8\x13\xd8\xaa\x7a\x50\x9e\xb9\x19\x00\x6d\x16\x2c\x54\x5c\x9d\x70\x7e\x24\x54\xb8\xe5\x5c\x69\x42\x9a\x02\x1d\x0b\x2f\xb8\x57\x99\xb1\x95\x46\xb9\x67\x95\xae\x63\xaa\xc6\xbe\x98\x49\xeb\x91\x4b\x56\x80\x46\x44\x91\xf8\x29\xe4\x8e\x1a\xb0\x5b\x50\x1a\xa8\x08\x4f\x08\xa3\xa6\x8c\x65\x29\xa0\x18\xec\xe5\x51\x99\x9b\xca\x70\x43\x9b\x5f\x9e\x39\xdd\x84\xdd\x18\x35\x89\xc2\xe1\xe4\xbe\x76\x2b\xc9\xe8\x25\x03\x9e\x15\xcc\x68\xa8\x46\x6b\x34\x67\x94\xbb\x40\x58\xe9\x52\xbb\x43\xe0\x79\x9a\xb0\x90\x4c\xa4\xd2\x30\x4d\x0b\x52\x86\x8c\x3b\xcc\xeb\xe2\xb5\x2b\x0d\x68\x42\x37\x94\x67\xb4\x9f\x31\xd3\x75\x33\x23\xa8\xc9\x24\x23\x29\x35\x83\xad\x5f\x48\xa7\x01\xd9\xb9\x30\xc3\x42\xd5\xb0\x1c\x43\x5f\x40\xa5\x84\x0e\xc1\x20\x99\xbe\xd9\xf6\xf8\xa2\xab\xd1\x3d\x1f\x10\xbf\xa4\x2a\xa9\xe4\x6e\x27\x8d\x0e\x70\x4d\xd8\x38\x2f\x26\xf5\x6b\x14\xd5\xe6\xf2\x8d\x33\x2f\xe4\x9d\x1d\xba\x4b\x95\xe3\x83\x86\x22\x87\xba\x9f\x5f\x97\xc3\x92\x2a\x2a\x0a\x16\x12\xf6\xb9\x99\xf2\x42\x20\xc0\x9b\xf7\x6d\xf7\x6a\xa9\xbf\xb0\x15\x92\x70\xad\x4b\x5c\x55\xe6\xe5\x8c\x55\x3b\xc4\xdf\x11\xdc\x82\xeb\x3a\x9b\x2a\xd0\xf1\xb8\x2a\x97\xd3\x93\x9d\x8a\x6c\xf4\x73\xad\x4b\x96\xb6\x2a\xcb\x46\xaf\xd4\x65\x5f\x9b\x97\x45\xe1\x7b\x90\x06\x9e\x54\x18\x41\x33\x57\x72\xcc\x80\x40\x85\x28\x36\x60\xca\x32\xf0\xd1\xc6\x7d\xa8\xba\x1e\x98\x19\x65\x42\x97\xaa\x22\xa3\xb6\x17\x1c\x67\x30\xc6\x51\xc3\x2e\xc3\xc6\x84\xab\x0c\xd1\x63\x9a\x65\x4c\x91\x64\x54\x8a\x6b\x70\xd1\x50\x82\x9c\x30\x54\x0d\xdd\x44\xc3\x8e\xc7\xe2\x4d\xa7\xcd\x8d\x09\x08\xae\x49\x2e\xb5\xe6\x66\xc1\xd9\x61\x83\x05\x17\xee\x2f\x0c\xd3\x49\xcd\x91\x8e\xd3\x01\xf5\x00\xcb\x9b\xc6\x39\xb6\x46\x25\xb7\x86\xed\x59\x08\xad\xbe\xa5\xda\xe9\xb0\x8e\xbc\x06\x88\x99\xa6\xee\x27\x78\x6b\xa7\x40\x2b\x9e\x94\x19\xd4\xc8\xab\x65\xb3\xd2\x59\x60\x06\x6a\x47\xc7\xe2\x1b\x96\x2b\x06\xdc\xe1\xaf\x48\x9e\x31\xaa\x99\x17\x41\x17\x4a\xe6\x74\x08\xda\xd1\x85\xcc\x78\x32\xe9\xa0\x82\x82\x9b\xce\x2d\xba\xd4\x17\x60\x96\xdd\x69\xef\x0f\x3d\x72\x89\xf2\x0c\x55\x97\x9c\x09\xb3\x59\xaa\x33\x95\x11\xa9\xf2\x11\xf5\x9c\x55\xaa\x64\xc7\x40\xfa\xd3\xb1\x77\x36\x7c\x7c\x75\x80\xac\x7f\xfc\xdf\xee\x20\xe9\x33\x42\xd3\x14\x56\xe7\xb1\x62\x63\x69\x2e\xc7\xfe\x1a\x86\xc5\x1f\xea\xea\x23\xbc\x9f\xf6\xc8\x5b\x0e\xc2\x31\x68\xba\x54\xd3\x7d\xf3\xf4\x56\xac\xc0\xeb\x31\xdc\x51\x64\x31\x5a\x65\x42\xb1\x07\x6f\x5c\xdf\x67\xaa\x3c\x2b\x79\xff\x97\xba\x98\x41\xd7\xcd\x86\x1d\xc9\x5b\x32\xa4\xaa\x4f\x87\x35\xe3\xa4\xbf\xd4\x30\x35\x90\x6a\x6c\xe6\xa4\x75\xbc\x3e\x36\x7a\x34\x7b\xb8\x40\xe9\x75\x1a\x6b\x8e\x63\xcb\x8d\x36\x99\xf0\xb4\xba\x0a\x83\xae\x80\x41\x1a\x6e\x8e\xcd\x61\xed\x38\x38\xad\x36\xd0\x0b\x26\xd3\x9d\x23\xee\xaa\xdd\xb5\x47\x4c\xd2\xa8\xac\x47\xce\x92\x84\xe5\xe8\x54\x0a\x6f\x76\x87\xd8\x87\x43\xd2\xb5\x0b\xb0\xbe\x40\xf5\xb7\xe4\xf0\x3b\x9a\x5c\x0f\x95\x2c\x45\x6a\xde\xa2\x9e\xc7\xb6\x31\x70\xa8\x42\x5a\xfd\xb8\x5e\x88\xeb\x41\xdf\x97\xf4\x2d\x39\x7c\x27\x15\x0b\x8a\x25\x09\xd5\x09\x4d\x4d\xef\xed\xf8\x80\x04\xc2\xf2\x34\x5e\x3d\xa7\x0a\x1c\xf8\x32\x56\x59\x90\x79\x73\xb9\xef\x46\xe3\x6c\x9a\x49\x34\x2b\xdc\x29\x53\x28\xca\x8d\x94\x10\xe4\xd6\x0c\x86\x7b\xd3\x89\x6c\xf3\x9a\x3b\xf8\xfc\xd2\x53\x4e\x02\x18\xf5\x86\x79\x3f\x61\xe0\x03\xe3\xf2\x38\x95\x89\x3e\x86\x83\xcd\xa8\x53\xc7\x70\x34\x75\x69\xce\x8f\x69\xce\xbb\x89\x14\x66\xad\xe8\xe3\xdf\xf9\x65\xe5\x2b\x1c\xc0\x19\x5c\x50\x9e\x69\xd0\x1f\x42\xdd\x1f\x22\x85\x56\x98\x87\xc6\x00\xec\xc5\x2c\x7c\x00\x4d\xc9\x6b\x93\x1a\x44\x45\x73\xa6\xcc\x2d\x21\xcf\x33\x8e\xba\x81\x57\x70\x30\x1e\x8b\x6b\x32\xe2\xc3\x11\x84\x69\x25\x72\x3c\x36\x4b\x37\xc5\x45\xdd\x5a\x97\xb5\xc8\x9b\x01\xae\x4a\x32\xfa\x96\x62\x6d\x15\x9b\x77\x1f\xe6\xfc\x7e\x68\x44\xdf\x6c\x71\x92\x3f\xf3\x31\x33\x9a\xa7\x33\x13\x98\x81\x3e\x46\xa5\x18\xef\x6e\xa0\xfd\x81\xe6\x81\x59\xe1\xde\x10\xe2\x2e\x1c\x34\xcb\x3a\x44\xb1\x21\x55\x29\x38\xf6\x8d\xba\x26\x26\x84\x26\x05\xbf\x01\xde\x6a\x45\xb8\x70\xff\x5a\x45\x28\x15\xd8\xc4\x4d\x98\x05\x5a\x3d\x75\xd1\xff\xbe\xa4\x9b\xce\x86\x3e\x3d\x41\x5f\x37\x9e\xc5\x95\x9e\xb4\x51\xc7\x77\x8b\x53\x77\xa7\x98\x6e\x68\x0e\x53\xf6\x0a\xed\xf4\x76\x39\x20\xa6\xcd\x0b\xfa\xb2\x4d\x19\x2d\xc1\x74\xf7\xf1\x5f\x37\x5a\x09\xda\xd9\xdf\x4c\x13\xbf\x93\xf2\x7a\x4c\xd5\xb5\xae\x62\xae\xb1\xe9\x60\x90\xd1\xd6\x6c\x34\xc9\xcd\xdd\xe2\xbb\x8f\x1f\xbf\xff\x70\xf6\xe9\xfb\xab\x83\xca\x24\x82\xda\x97\x44\x4e\xf7\x71\x9e\x31\xb0\x7d\xf4\x7d\xa9\x46\xdf\xe0\x43\x81\x26\x61\xa3\x14\x67\x74\x08\xea\x68\xf5\x0a\xb0\xc1\x06\x57\x47\x4f\x58\x9f\x72\x9d\x28\x66\xda\x5c\x39\x93\x02\x27\x88\xb5\x77\xd4\x0b\xf2\x16\x08\x73\xb5\x36\xd7\x78\xa7\xe8\x02\xe1\xfc\x0d\xcd\x3a\x44\x48\xf4\xf3\xc2\x05\xd9\x1b\x4d\x9a\x76\x37\xf0\x34\x4e\x88\xeb\xb3\x35\x50\xf9\xeb\xb1\x66\xfa\xff\x67\xef\xdd\x9a\xdb\x46\xae\xbd\xef\x7b\x7f\x8a\x2e\xe5\x42\x76\x45\xa2\x1e\x4f\x3d\x55\x99\x9a\xa9\x5d\x6f\x69\x6c\x4d\xe2\x64\x1c\x6b\xdb\xde\x93\x1b\xa7\x76\x5a\x40\x93\x42\x09\x44\x63\x03\xa0\x64\x65\xd7\xf3\xdd\xdf\xea\xd5\x07\x00\x24\x48\x82\x10\x40\x1c\xf8\xcf\xcd\x38\x22\x01\xf6\xb9\xd7\x5a\xbf\x75\x48\xa9\x61\xd6\xf2\x6c\xec\x28\x06\x71\x95\xb4\x3d\xf5\x29\x0d\x81\xef\xd0\xe9\x5c\xf0\x4c\x29\xe9\x0b\x9e\x09\xb6\x36\x11\xe6\x4d\x22\x52\x52\xb8\xb6\x47\xd8\x2a\xfe\xdb\x5e\xdb\xe0\x02\xa9\x58\x02\x3d\x69\x5a\x70\x3f\x80\xfb\x01\xdc\x0f\xe0\x7e\x00\xf7\x83\xaa\xc3\x17\x5c\x7b\x44\x23\x02\xd4\x09\xd4\x09\xd4\x09\xd4\x09\xd4\x09\xd4\x39\x2d\xd4\x09\xfa\x00\xfa\x00\xfa\x00\xfa\xd0\x39\x7d\x38\x80\xd0\x6b\x65\x4e\x26\x36\xac\xd2\x66\x1c\xd6\xdf\xbb\xa3\x4b\x4c\x4f\xaa\x26\xe0\x46\x3a\xc9\xee\xc5\x52\x5f\x5b\x69\x96\x08\xbe\xa4\xe1\xf1\xfd\x0b\x73\x31\x5c\x98\xef\x2e\xe5\x23\xc9\x3e\x05\xf5\x8e\x7d\x21\x71\xe5\x79\x7d\xa9\x37\x19\xc2\xa7\x5d\x0b\x6c\xfc\x99\x0d\xb6\x3e\xa0\x7e\xec\x67\x3d\xf0\xff\xb1\x39\x06\x75\xde\x5d\x7e\x7a\xd8\x80\xa8\x18\xf7\x68\xed\xf7\xbf\x05\x69\x76\x8a\x5c\x48\x9d\x63\x43\x66\x41\x0d\x92\xca\x21\x17\xdb\xe8\x72\xb1\xb5\x9f\xf1\x99\xb4\x32\xc6\x6b\xc2\x3d\xfd\xf5\x96\xf1\xde\x70\xb3\x65\xb8\x5e\xd5\x3b\xf0\x10\x2c\x35\x81\x60\x29\x64\xcd\x40\xd6\x8c\x8a\xc6\x0c\x5a\x28\x1b\x4d\xf6\x8c\xc3\x1b\xfc\xc3\xde\x06\x6b\xa7\xdf\xa1\xb4\x78\x4a\x32\x2f\x89\x1b\xc3\x93\x79\x5f\xb1\x66\x09\x40\x4c\xce\xf3\x23\xe5\x01\xa9\x2b\x52\x15\x73\x7f\x20\xe3\x47\x65\x6f\x20\x48\x8d\x51\x90\x42\x8c\xf5\x09\xc5\x58\x23\x98\x0c\xc1\x64\x08\x26\x43\x30\x19\x74\xc0\x6d\xbb\x68\x38\x3a\x20\x54\xaa\xbe\xc3\x4b\x06\xa8\x54\x39\x1b\x73\x37\xf5\x9f\xb2\xf5\x8c\xcc\x35\x34\xa3\x2d\xd5\x9f\x5a\x8c\x24\x29\x48\x18\xe2\x3b\xf9\x87\xdd\xa9\x7f\x71\x2f\x9b\x31\x76\xa3\xfe\x6b\xff\xbe\xe4\x01\x19\xe0\x52\xe6\x85\xab\x34\x13\x49\x7e\x6f\x98\x64\xf3\x61\xf0\x20\xd8\xb9\x6b\xe9\xb9\x12\x0f\xad\x48\x33\x63\xb7\x21\x8f\x22\x53\x25\x80\x84\x0e\x1e\x6a\x39\xe7\xed\x8f\x4d\x0e\x62\x6a\x63\x4f\xe2\x80\x1b\x34\x27\x4d\xdf\xd9\xe1\x53\x3d\x65\x37\x7a\xc4\xd4\x15\x10\xa7\x76\x74\x8c\x0b\x15\x65\xee\xf7\x78\x54\x10\x8c\x9f\x3b\x1e\x28\xd5\x98\xe9\x92\xea\xe9\xde\x53\x53\x3a\xf5\xbb\x2e\x44\x76\x7c\x76\xbc\x56\x90\xac\xba\x01\x28\x4c\x56\xdd\x67\xc0\x70\x14\x26\x6b\xa7\x30\x59\x13\xb1\x6a\x5b\x59\xb2\xe9\x20\x7c\x14\x26\x83\x15\xfa\xf4\x70\x3e\x0a\x93\xb5\xb9\x6e\x50\x98\x0c\x4a\x11\x94\xa2\xaa\x81\x1c\x4f\x81\xb2\x97\xaa\x45\x5d\x15\x2a\x6b\x66\x0c\xdb\x56\xa6\x6c\x3a\x72\x1b\x5c\x2f\x21\xab\x9d\x86\xac\x36\x20\x91\x08\x37\xb7\xfb\x04\xae\x97\x85\x77\x4f\x4a\xd4\xe8\xb8\x80\x59\xf7\x7e\x8c\xea\xfa\x37\x9b\x47\x9d\x47\x89\x0c\x43\x7d\xb9\x1f\xbf\xa4\xd9\xe7\xbc\x29\xef\x5c\x53\x6a\x3a\x38\x56\x15\x37\xdb\xfb\x3e\x38\x3d\x22\xcf\x18\xf2\x8c\x21\xcf\x18\xf2\x8c\x21\xcf\x58\x2f\x7a\x09\xd4\xc7\xda\x13\x85\x32\x67\x43\x4a\x07\x07\x17\xfc\x13\x72\xc1\x47\xee\x3f\xe4\xfe\x43\xee\x3f\xe4\xfe\x43\xee\x3f\xe4\xfe\x43\xee\x3f\x44\xa6\x21\x32\x0d\x91\x69\x88\x4c\x5b\x5f\x91\x28\x73\x86\x44\xa3\x48\x34\x8a\x44\xa3\x23\x4f\x34\x5a\x49\xef\x40\xed\x51\xe6\x6c\xfd\x81\xde\xcb\x9c\xed\xc3\xbb\x03\x2e\x78\x76\x28\xe9\xae\x2a\x7d\xd6\x1a\xdd\x46\x11\x34\x14\x41\xd3\x1f\xa1\x08\x1a\x9c\x13\xe0\x9c\x00\xe7\x04\x38\x27\xc0\x39\x01\xd4\x1b\x20\x74\xff\x88\x00\x84\x02\x84\x02\x84\x02\x84\x02\x84\x9e\x30\x08\x05\x9b\x00\x9b\x00\x9b\x00\x9b\x40\x11\x34\x14\x41\x43\x11\x34\xf7\x49\xed\x18\xca\x4a\x4b\x3e\xca\xa1\x55\x7c\x6d\x50\xcc\x08\x85\xd1\x4e\x21\x17\x5c\x77\x85\xd1\x0e\x85\x80\xd5\x25\xd2\x7a\x0e\x72\xed\x3c\x63\x47\x75\xff\xea\x1d\x8c\x08\xbe\x9a\x40\xf0\x15\x72\x77\x20\x77\x47\x45\x63\x46\x22\xc6\x8d\x23\x8b\xc7\x0b\x9b\xde\x6b\xde\xff\x17\xb5\x7d\x4a\x92\x73\xb7\x45\xd5\x5a\x90\x9c\x5f\xb1\x97\xa6\x25\x39\x76\xa1\xb5\x97\x64\x24\x19\x8c\x88\x36\x92\x3c\x24\x10\xc7\x8a\x93\x3c\x58\x71\x0c\x91\xdf\x27\x14\xf9\x8d\x10\x37\x84\xb8\x21\xc4\x0d\x21\x6e\xd0\x24\xb7\xed\xa2\x41\xc6\x93\xf4\xa3\x91\x21\x1c\xa6\x87\xb2\x6c\x83\x0e\x82\xa9\x28\xd0\x76\xa8\x46\x55\x55\xaa\xad\xab\xc8\x17\x14\x6d\x73\x6b\xa3\xbe\x18\x81\xa2\x6d\xe6\x7f\xb8\xdf\x60\xb2\x1b\x54\xf9\xb6\x9e\x59\x77\xb1\x90\x5b\x8d\xa6\xa0\xa4\x5b\x75\x9f\x81\xf1\x51\xd2\xad\x8b\x92\x6e\x87\x0a\x62\x95\xc5\xdd\x26\xea\x7c\x80\x32\x6f\xb0\x77\x9f\x9e\xfb\x01\xca\xbc\xb5\xb9\x6e\x50\xe6\x0d\x6a\x14\xd4\xa8\x49\x14\x7c\x6b\x55\x91\x3a\x4e\xe9\xb7\xc3\xcd\x6c\x95\x45\xe0\x26\x2a\xdf\xc1\xb9\x14\xd2\xdd\xa9\x49\x77\x03\x12\xa2\x70\xd7\xbb\x4f\xe0\x5c\xba\xa7\xe9\x93\x12\x53\xba\x2c\x16\x37\x24\xff\xcc\xab\xd4\xe3\x61\xd1\x27\xb3\x23\xb4\x48\x3f\x63\xef\xaf\x23\x30\xc6\x2f\xd4\x2d\x1c\x5a\xfb\x76\x3e\x5f\x65\x52\xcd\x4d\x10\x2d\x88\xfe\xd3\xb0\x9d\xe0\x86\x6f\x09\xef\x14\x86\xb3\x7a\xef\xaf\xaf\xcb\x23\x92\x9d\x8a\x9f\x06\xc9\xa9\xee\x33\x48\x0e\x48\x4e\x3b\x24\xa7\xa5\x7b\xaf\x3e\xd2\xd9\xbc\xf8\x46\xa9\xf7\x83\xeb\x40\xf3\x3f\x3d\xcd\x1f\x5c\xa7\xcd\x75\x03\xae\x03\x5b\x0f\xd4\xa6\x4e\xd5\xa6\xd6\x70\x4e\xb7\x8a\x53\x57\x24\xa7\x35\xab\x46\x7d\xa4\x33\x11\xf9\xee\x25\x3b\x08\x42\x1d\x84\xba\x11\x09\x75\x03\x92\x9d\x70\xc5\xbb\x4f\x3a\xbd\xe2\xfb\xa1\x38\x10\x4a\x5a\x85\x37\x5d\x88\x24\xaf\x58\x6b\xdc\x46\xc7\xe9\x75\x0f\x6e\xe8\x77\x8e\x49\x6e\x74\xc7\x70\x40\x01\xda\x22\x44\x07\x21\x3a\x00\x3b\x00\x3b\x83\x04\x3b\x2d\xdd\x8b\x07\x90\x9d\xcd\x8b\x71\x94\xaa\x3f\xd0\x0e\xac\x00\xa7\x67\x05\x00\xda\x69\x73\xdd\x00\xed\xc0\xee\x03\xb5\x6a\x64\x8c\x67\xc4\x21\x3b\xed\x59\x41\x0e\x20\x3d\x13\x91\xf7\x10\xc2\x03\x69\xef\xd4\xa4\xbd\x01\x09\x55\xb8\xfb\xdd\x27\x08\xe1\xd9\xd3\xf4\x49\x89\x2d\x93\x0a\xe1\xd1\xb9\x52\xff\x67\x25\x33\x9e\x1e\x29\xa7\x7a\x21\xbb\xac\x9c\xbb\x1a\xef\xff\xa9\x9a\xb0\x43\xc2\x29\xe6\x55\x7f\xe7\xde\x50\x14\x75\xb6\xbc\x07\x99\xd5\x4d\xca\x6e\x57\x7e\x56\x6b\xfa\x85\xe4\xdc\x4a\xd9\xa4\x3a\xb5\xa6\xf6\xb1\xba\x09\x4b\x45\x73\x5d\x16\x65\x5d\xf9\x76\xc6\xbe\x04\x11\x05\x9c\x17\xf3\x6e\x9b\xaa\xb8\xe6\x56\x2b\x57\xe4\x2d\x15\x25\x76\x0d\xd1\x8f\xd2\xcb\x79\x5e\x7b\x5e\x57\x62\xb6\x25\x52\xd5\xc5\x9d\xd7\xc9\xd5\x9f\xe5\x53\xca\x5e\x8b\xef\x9e\x88\xf3\x6a\x88\xfa\x95\x72\xee\x7e\xe4\x8d\x4b\x0c\x6c\xda\xa7\xab\x35\x13\x1a\xe0\xeb\x4d\x09\x32\xe6\x4b\xa1\xeb\x00\x3b\x39\xcd\xa4\x18\x2f\x8a\xe7\xeb\x8f\xa9\x27\xe8\xfa\x17\x09\xd3\xa2\x9e\x2d\xa6\xec\xaf\x04\x55\xf9\xfe\x1e\x07\x26\x61\xfa\xeb\x85\x88\x44\x42\x26\xdf\xb9\x92\xf9\x32\xc9\xe6\xc1\x3c\x13\x22\x62\xcb\x20\x5a\x65\x22\x7d\xc3\xa8\x42\xb6\x27\xa3\x79\xb0\xb0\x79\xd6\xb5\x4c\x62\xab\x5d\xeb\xbe\x6c\x56\xc9\xd6\x57\x9e\x91\x77\x38\xfb\xbf\x6f\xff\x8f\xdb\x60\x37\xaa\x09\xc2\x37\x12\x65\x26\x17\xba\x81\xe6\x9b\xae\x47\x99\x7c\x10\x91\xeb\xb2\xa9\xc8\x1b\x09\xe1\xaf\x15\xf2\x0d\xa9\x4a\x77\x90\x69\xc9\x28\x11\xba\x86\xbe\xa9\x73\x1e\xa4\x99\x2b\x5a\xbc\x59\xb5\x79\xc6\x3e\xa9\x9f\x7e\x0a\x6c\x4a\x6f\xf3\x2b\x54\x8a\x5f\x44\x3e\xe3\x91\xb6\x90\x98\x5a\xb9\xba\x38\xac\x13\xe1\xa8\x85\xb6\x1a\x70\x41\xb4\x53\x9d\xa5\xce\xed\x1d\x16\x7a\x2f\x35\x98\xac\x33\x76\x71\x53\xb1\xef\x07\xf1\xac\x13\x56\xbb\x3f\x87\x4a\xe4\x2f\x56\x2e\x7e\xba\x0f\x74\x51\xe8\x20\x2a\x0c\x88\xfb\xbe\x5b\xc8\x85\x52\xbf\x29\xbb\x74\x09\xce\x75\xe6\xcb\x44\x1c\x58\xb0\x79\x6d\x30\x36\x6b\x35\x9b\xe4\xd7\x24\xf2\x90\x7c\xa9\x16\xa4\xfa\xaf\x9e\x94\x07\xf1\x6c\xaa\x5f\xbb\x17\x7f\x3b\xb3\x5d\xfe\x76\x66\x8a\x5b\x6f\xaf\x86\x4d\x07\x44\xb9\x1e\x36\x7b\x57\xd8\xe2\x7a\x01\x70\xf3\x95\xc2\xe8\xa5\x1b\xc5\x62\xcd\xb6\x71\x35\xb2\x4d\xce\x6f\x33\x63\x5a\xc7\xc9\xd8\x32\x48\x53\x2a\x4c\x5a\x52\xb4\x9a\x88\xc0\x76\xf9\xf5\xa3\x9d\x40\x89\xac\x3d\x51\x7d\x2a\x91\xd7\x2c\x15\x79\xf2\x76\x75\xa0\x25\x81\x97\xb9\x12\xbb\x6a\x6c\xdc\x82\x75\xb5\x0a\x9e\xcd\xe6\xd2\x16\xde\x72\xe1\x08\xf1\x28\x92\xe7\xec\x3e\x88\x16\x8d\xd5\xb6\x2f\xa6\x45\xfd\x8c\x08\xea\x7c\x9c\x50\x9d\x8f\x17\x2d\xff\x90\xdf\x89\xb0\xd5\xe5\x4f\x6f\xec\x77\xf9\x53\x09\x6d\x6d\x4e\x5a\xf2\xef\xc1\x72\xb5\x64\xd1\x6a\x79\xa7\x16\xc9\xdc\x1d\xa6\xa9\x1e\x2d\xaa\x1c\x4d\xc8\x2d\x2f\x7c\x4e\x4b\x96\xc4\xe8\x40\xb5\x45\x97\xb4\xd8\x94\x4d\x94\xf0\xad\xfe\xf6\x2f\x7b\x4b\xfd\xcb\x56\xd5\x88\xf2\xd1\xb7\x05\x2f\xf4\x42\xd5\xab\x93\xee\x0f\x8f\x47\x76\x39\xe7\x92\x50\xca\x97\x6a\x97\x05\x59\xe0\x44\x66\xdd\x4a\x25\xdc\x8b\x5c\xd6\x51\x3f\xad\xfb\xa2\x26\x6d\xc6\xbe\x88\x8c\x24\x22\xae\xcb\x87\x1b\x51\x59\xf7\x4d\x3c\x91\xd0\xc0\xa3\xe2\x0d\xa1\xc4\x94\xa5\x5c\x45\xf4\x1a\xdd\xcb\xd7\xab\x58\xfd\x98\xde\xd0\xea\x2f\x6f\xac\x6c\x22\x1e\x95\x98\xc4\xe9\x72\xb2\x4f\xdb\x95\xa4\xe4\x92\x79\x10\x66\x42\x49\xa8\x4a\x6a\x54\x77\x94\x55\x20\xcc\xe9\x52\xd2\x21\xf4\x7d\xea\x39\xdf\xa5\xb2\x84\xa9\xcb\x6f\x98\xba\xf7\x4e\x16\x2f\xa9\x34\x24\x09\x3d\xf2\x20\xe4\x77\xa1\x50\x5d\x57\x33\xa2\x25\x19\xef\x5e\xca\x94\x8a\x7b\xab\xf7\x18\x09\xc8\xcc\x85\x1a\x16\x9e\x2c\x56\x4b\xea\x4b\xe4\xdb\xdb\x96\x06\x49\xf5\xcd\xb4\xc7\xbd\x3a\x1f\xdd\x0f\x73\xe6\x96\x54\x7e\x2a\x59\xed\x64\xad\x03\x41\xca\xc4\x32\xce\x9e\xcb\x6a\x14\x4f\x95\x02\xae\x67\x3e\x92\x3b\x3b\xb4\x4b\x94\x0b\xe6\x6b\x82\x9c\x96\xfd\xdc\xba\x5c\xac\x78\xc2\xa3\x4c\x58\x21\x25\x3f\xe9\xd3\xfc\x10\x20\x79\x90\x8a\xf2\xe7\x6d\x77\x62\xa9\x53\xd8\x32\xc9\x82\x34\x5d\xe9\x55\xa5\xbe\x1c\x8a\x7c\x87\x38\x1d\xc1\x2e\xb8\x4b\x6b\x8f\xbd\x50\xdd\xb3\x3f\x79\x98\x9c\x6c\x45\x64\x25\x9f\xa7\xe9\x4a\xf8\x95\xc2\xb2\x92\x2b\xd3\xd5\x5d\xaa\xbe\x1c\x65\xae\x07\x7e\x81\xef\xd2\x08\xaa\xb9\x92\x4b\x91\x05\x4b\xa1\xfa\x3e\x17\x49\x42\x05\x86\x74\x85\xf8\x82\xf8\x9f\xab\x07\x6a\x46\x45\x94\xae\x12\xe1\xb2\xdc\x1b\x05\xc7\x1a\x9b\xf5\xa8\xe9\x2e\xd3\xc6\x24\x55\x86\xa5\x4b\x1e\x86\x22\x61\xde\xfd\x2a\x7a\xd0\x65\xf9\x99\x3a\x44\x59\xc8\x93\x85\x9d\x68\xda\xf1\xfa\xf5\xaa\xd3\x4a\x63\x12\xb4\xf0\x62\x99\xa6\x81\x5a\x70\x66\xd8\x68\xc1\x15\xf7\x97\x76\x30\xf2\xd5\x95\xae\xa7\x83\x7e\x47\xf8\x7a\x3e\x48\x79\x36\xe2\xb9\x59\xc3\xe6\x2e\xa4\x56\x3f\xf1\xd4\xca\xb0\xcc\xac\x08\x35\x26\x9b\xfa\x89\xd6\xda\x79\xaa\x26\xd8\x5b\x85\xba\xee\x53\xbe\x6c\x1a\xdd\x05\x6a\xa0\x7a\xba\x16\x51\xfe\x0a\xe5\xaf\x50\xfe\x0a\xe5\xaf\x8e\x22\x71\xae\x9b\x49\x52\x91\xd9\x5b\x26\x4b\x78\xa0\x4e\x89\x88\x3d\xa9\xc1\xb0\xdf\xb4\x47\xb6\xfa\x9a\xbd\xf8\xdc\xd2\x4b\xec\x09\xa0\xc4\x1b\xe1\x18\x63\x81\x9f\x05\xf2\xca\x97\x5e\x7a\x45\x17\x9b\x12\xa7\xae\xe8\x6a\xba\xe4\x71\x70\xc5\xe3\xe0\xd2\x93\x91\x5a\x2b\xe9\xd5\x1f\xdc\xb2\x72\x3f\x38\xa7\x3b\x38\xe3\x41\x98\x92\xfc\x50\x94\xfd\xc9\x7f\xa9\xc1\x3c\xac\x0d\xc0\x20\x66\xe1\x23\x49\x4a\x4e\x9a\x4c\xe9\xa8\x58\x9f\x29\xa5\x25\xc4\x71\x18\x68\xd9\xc0\x09\x38\xda\x4b\x2c\x48\xd9\x7d\xb0\xb8\x27\xe7\x31\x4f\x2e\x97\x6a\xe9\xfa\x7a\x51\x57\xfe\x96\xb1\xc8\xab\x01\xce\xdf\xa4\xe4\xad\x44\x54\xfd\xb0\xfa\xee\x38\xe7\xf7\xe3\x9a\x07\xd0\x11\x27\xf9\x6b\xb0\x14\x4a\xf2\xb4\x66\x02\x35\xd0\x57\x5a\x28\xd6\xba\x1b\x49\x7f\x24\x79\xa4\xfa\x0c\xb3\x86\x10\xab\x70\xf0\x30\xbc\x60\x89\x58\xf0\xc4\x27\xa7\x00\x25\xae\x45\xcf\x8c\x7b\x59\xf0\x18\x64\xcf\xea\x56\x08\x22\xfb\xff\x9a\x1c\x4a\x99\x6e\x62\x17\x66\x81\x4a\x5a\x07\x76\x8f\x92\x76\xeb\x0f\xec\x2c\x69\x97\xcb\x49\x5d\x02\xf1\x6a\xac\xdb\x6b\x51\x3b\x6d\x10\x4b\x8c\x12\x6d\x25\x77\x39\x67\xaa\xd5\xb5\x89\xb6\x7a\xcb\xa6\xc3\xde\x0b\x29\xf6\x5a\x4b\x49\x46\xfb\x87\x6a\xe6\x2f\x52\x3e\x2c\x79\xf2\x90\xe6\xfe\xe0\xba\xf9\x64\x96\x49\x8d\xf1\xe8\x39\x56\x1a\xc6\x2f\x9f\x3e\xfd\xed\xe3\xf5\xe7\xbf\x7d\x3b\xcb\x0d\x23\x5a\x06\x93\x24\xc8\x06\xcb\x38\x14\x64\x01\xb9\x73\x6f\x55\x52\x47\xb0\x88\xb4\x61\x58\x89\xc6\x21\x5f\x90\x50\x9a\x7f\x45\x29\xa1\x45\x05\x52\x5b\x1b\xce\x53\xe6\x07\xa9\x97\x08\xd5\xe6\x1c\x29\x15\x50\x88\xb1\x7a\x94\x5f\xe4\xec\x10\x4a\xc1\x56\xca\xbc\x15\x77\xd5\x81\x98\x3c\xf2\xf0\x82\x45\x52\xd3\x5e\x52\x93\x9d\xe9\x64\xdd\xfa\x46\xbc\xf1\x99\xd9\x3e\x1b\x33\x95\x53\x92\x53\x91\xa6\xd4\x30\x6b\x7f\x36\xd6\x14\x03\xba\x4a\x3a\x9f\xfa\x94\x86\xc0\x77\x00\x75\x2e\x78\xa6\x54\xf5\x05\xcf\x04\x5b\x9b\x08\xf3\x26\x11\x29\x59\x5c\x5b\x25\xe2\x20\x27\xbb\x55\xaf\x6d\x70\x8d\x54\x2c\x81\x9e\xf4\x2d\x38\x21\xc0\x09\x01\x4e\x08\x70\x42\x80\x13\x42\xd5\xe1\x0b\xba\x3d\xa2\x11\x01\xf0\x04\xf0\x04\xf0\x04\xf0\x04\xf0\x04\xf0\x9c\x16\xf0\x04\x83\x00\x83\x00\x83\x00\x83\xe8\x9c\x41\x1c\xc0\xe9\xb5\x32\x27\x13\x1b\x98\xa9\xa6\x5f\x73\x65\xf5\xbd\x3b\xba\xc4\xf4\xa4\x6a\x0e\x6e\xa4\x93\xec\x5e\x2c\xf5\xb5\x95\x66\x89\xe0\x4b\x1a\x1e\xdf\xbf\x30\x17\xc3\x85\xf9\xee\x52\x3e\x92\xec\x53\x50\xef\xd8\x17\x12\x57\x9e\xd7\x97\x7a\x93\x21\x7c\xda\xb5\xc0\xc6\x9f\x75\x61\xeb\x03\xea\xc7\x7e\xd6\x03\xff\x1f\x9b\x63\x50\xe7\xdd\xe5\xa7\x87\x8d\x89\x0a\x71\x92\x05\x0b\xfe\x6f\x41\x9a\x9d\x22\x1f\x52\x27\xd9\xb0\x99\x50\x83\x54\x79\xc8\x27\x37\xba\x7c\x72\x32\x6d\x99\xfc\x69\xcd\x8c\xf1\xda\x90\x4f\x3f\xd0\x3a\xe6\x1b\x6c\x26\x8e\x62\xbf\xea\x1d\x7c\x08\x9e\x9a\x40\xf0\x14\x32\x70\x20\x03\x47\x45\x63\x06\x2e\x9e\x8d\x25\xf3\x46\xa3\x26\xff\xb0\xb7\xc9\xda\x11\x78\x38\x6d\x9e\x92\x04\x4c\xa2\xc7\x10\x25\xe0\x57\xac\x69\x7a\x10\x93\x21\xfe\x48\x59\x42\xea\x8b\x58\xc5\xcc\x20\xbd\x8b\x58\x23\xc9\x07\x02\xb1\xaa\x38\xc9\x83\x15\xab\x10\x81\x7d\x42\x11\xd8\x08\x35\x43\xa8\x19\x42\xcd\x10\x6a\x06\x8d\x70\xdb\x2e\x1a\x92\x46\x08\xf5\xaa\xff\x00\x94\x41\x2a\x58\xce\xfa\xdc\x4d\xdd\xac\x6c\x2d\x4f\x74\x3d\x1d\xa9\xba\x4a\x56\xbb\xb1\x26\x05\x59\x43\x7c\x27\x0f\xb2\x3b\xf5\x2f\xee\x65\x33\xc6\x6e\xd4\x7f\xed\xdf\x97\x3c\x20\xc3\x5c\xca\xbc\x70\x95\x66\x22\xc9\x6f\x10\x93\x2a\x3f\x0c\x1e\x04\x3b\x77\x6d\x3d\x57\x82\xa2\x15\x6e\x66\xec\x36\xe4\x51\x64\x6a\x1c\x90\xf8\xc1\x43\x2d\xf1\xbc\xfd\xb1\xc9\x91\x4c\x6d\xec\x49\x30\x70\x83\xe6\xe4\xea\x3b\x3b\x7c\xaa\xa7\xec\x46\x8f\x98\xba\x0c\xe2\xd4\x8e\x8e\x71\xb2\xa2\xba\x03\x1e\x8f\x0a\x22\xf2\x73\xc7\x03\xa5\x1a\x33\x5d\x96\x3d\xe5\x1b\x6b\x4a\xa7\x7f\xc7\x05\xd9\x7a\xa1\xcb\xe5\x42\x6c\x5b\x9b\x80\x02\x6c\xd5\x7d\x06\x30\x47\x01\xb6\x76\x0a\xb0\x35\x13\xb0\xb6\x94\x5b\x9b\x14\xe6\x47\x81\x35\x58\xa6\x4f\x0f\xf8\xa3\xc0\x5a\x9b\xeb\x06\x05\xd6\xa0\x1e\x41\x3d\x1a\x79\x61\xb5\x16\x14\xa4\xae\x0a\xaa\x35\x35\x8f\x6d\x29\x9f\x36\x29\xf9\x0d\x6e\x9a\x90\xda\x4e\x45\x6a\x1b\x90\x70\x84\x3b\xdc\x7d\x02\x37\xcd\x29\x8b\x1d\xdd\x16\x46\xeb\xcf\xe3\xf1\x4a\x57\x69\x2d\x3a\x3e\x76\xc3\xf6\xb6\x57\x83\x6d\x89\xf2\x55\x94\x7e\xc5\x39\x84\x4d\xbd\x63\x53\x03\xb5\x00\xb5\x00\xb5\xbc\xbc\x37\xe6\x5f\x40\x2d\x45\xd4\xf2\xd2\xfb\x6e\x3f\x74\x99\x4a\xad\x73\xa0\x17\x28\xf1\xa7\xa7\xc4\x03\xbd\xb4\xb9\x6e\x80\x5e\x60\xb6\x81\xba\x04\xf4\xd2\x15\x7a\x79\xb9\xf5\x62\x3f\x84\x99\x8a\x3c\x07\x14\x03\x29\xee\x54\xa4\xb8\x01\x09\x4b\xb8\xd3\xdd\x27\x40\x31\x53\x16\x43\x26\x80\x62\x52\xe1\x25\x22\x4b\x8f\x94\x6e\xa2\x10\x88\x2b\xe7\xec\x0b\xfd\xf6\x0e\x59\xa5\x98\x73\xe2\x9d\x7b\x34\x17\x5a\x36\x5f\x80\xb4\x13\xa8\x00\x83\x0a\x30\xa8\x00\x83\x0a\x30\xa8\x00\xd3\x8b\xc2\x01\xbd\xb0\xf6\x44\xf5\xa9\x17\xa2\x50\x0f\x92\x20\x9d\x70\x12\x24\x54\x65\x42\x55\x26\x54\x65\x42\x55\x26\x54\x65\x42\x55\x26\x54\x65\x42\x6e\x40\xe4\x06\x44\x6e\x40\xe4\x06\x5c\x5f\x91\x47\x2d\x3e\x86\x12\x70\x43\x98\x05\x94\x80\x43\x09\xb8\xa9\x95\x80\xab\xe4\x73\xc0\xf1\x07\x62\x3a\xe3\x13\x75\x82\x98\x5b\xdf\xc5\xb9\x9c\xd4\x1d\xf3\xde\xe0\xb9\xbd\x26\x02\xd5\x96\xb0\xc4\x68\xcf\x56\x64\x97\x73\xa6\x9a\xbb\x1f\x5e\xab\xc7\xd7\xbd\xec\x9a\x03\xeb\xb5\xb6\x91\x38\x46\x15\x1b\x7f\x91\xf2\x61\xc9\x93\x87\x34\xf7\xd2\xd6\x0d\x26\x0b\x4c\x6a\xec\x44\xcf\xb1\x52\x26\x7e\xf9\xf4\xe9\x6f\x1f\xaf\x3f\xff\xed\xdb\x59\x6e\x03\xd1\xe2\x96\x24\x99\x35\x58\xc6\xa1\x20\x63\xc7\x9d\x7b\xab\x12\x30\x82\x45\xa4\x6d\xc0\x4a\x0a\x0e\xf9\x82\xe4\xcf\xfc\x2b\x4a\xdf\x2c\xea\x8a\xda\xb0\x70\x9e\x32\x3f\x48\x55\x7f\x03\x19\xe5\xf4\xa8\x40\x3d\x8c\x81\xa3\xfc\x22\x67\x72\x50\xba\xb4\xd2\xdb\xad\x64\xab\xce\xbe\xe4\x91\x87\x17\x2c\x92\x1a\xec\x92\x46\xec\xac\x24\xeb\x86\x36\x42\x8b\xcf\xcc\xf6\xd9\x58\xa4\x9c\x3e\x9c\x8a\x94\x6a\x4d\x3a\x53\xb3\x31\x9c\x18\xa6\x55\x52\xef\xd4\xa7\x34\x04\xbe\x63\xa5\x73\xc1\x33\xa5\x95\x2f\x78\x26\xd8\xda\x44\x98\x37\x89\x48\x89\xdd\xda\x00\x11\x07\x39\xc4\xad\x7a\x6d\x83\x1b\xa3\x62\x09\xf4\xa4\x5a\xc1\xdf\x00\xfe\x06\xf0\x37\x80\xbf\x01\xfc\x0d\xaa\x0e\x5f\x80\xec\x11\x8d\x08\xd8\x26\xd8\x26\xd8\x26\xd8\x26\xd8\x26\xd8\xe6\xb4\xd8\x26\x70\x03\x70\x03\x70\x03\x70\x43\xe7\xb8\xe1\x00\x24\xaf\x95\x39\x99\xd8\xb0\x4a\x35\xfd\x1a\x21\xab\xef\xdd\xd1\x25\xa6\x27\x55\x23\x6f\x23\x9d\x64\xf7\x62\xa9\xaf\xad\x34\x4b\x04\x5f\xd2\xf0\xf8\xfe\x85\xb9\x18\x2e\xcc\x77\x97\xf2\x91\x64\x9f\x82\x7a\xc7\xbe\xe8\xfa\x3d\xeb\x4b\xbd\xc9\x10\x3e\xed\x5a\x60\xe3\xcf\x85\xb0\xf5\x01\xf5\x63\x3f\xeb\x81\xff\x8f\xcd\x31\xa8\xf3\xee\xf2\xd3\xc3\x26\x42\x2e\xda\x51\x9b\xee\x7f\x0b\xd2\xec\x14\x19\x90\x3a\xc2\x06\xca\x7d\x1a\xa4\xa6\x43\x1e\xb7\xd1\xe5\x71\x93\x69\xcb\x74\x4f\xeb\x62\x8c\xef\x07\x79\xfa\x9b\xed\xa1\xbc\x81\xe6\xc8\x30\x1d\xaa\x77\xb8\x21\x08\x6a\x02\x41\x50\x48\x8e\x81\xe4\x18\x15\x8d\x19\xaa\xec\x35\x8e\xac\x18\x87\xb6\xb5\xd7\x0a\xc7\x87\x35\x76\x4a\x02\x2d\x09\x14\x83\x12\x68\x5f\xb1\x83\xb3\x76\x98\xcc\xe9\x47\x4a\xde\x51\x43\x54\x2a\x26\xec\x40\x9a\x0e\x48\x49\x53\x90\x92\x10\x18\x7d\x42\x81\xd1\x88\x00\x43\x04\x18\x22\xc0\x10\x01\x06\x05\x6f\xdb\x2e\x1a\x64\xb8\x45\x3f\x6a\x14\xa2\x45\xb6\x46\x8b\x0c\x4b\xb5\x72\x66\xe4\x6e\x0a\x4a\x95\x05\xac\xbd\x4a\x52\x55\xfd\xa8\xd6\x02\x43\x0a\xc2\x86\xf8\x4e\xee\x5e\x77\xea\x5f\xdc\xcb\x66\x8c\xdd\xa8\xff\xda\xbf\x2f\x79\x40\x86\xb6\x94\x79\xe1\x2a\xcd\x44\x92\x5f\x21\x26\xdb\x7c\x18\x3c\x08\x76\xee\x1a\x79\xae\x24\x45\x2b\xdd\xcc\xd8\x6d\xc8\xa3\xc8\x94\x09\x20\xf9\x83\x87\x5a\xe4\x79\xfb\x63\x93\x33\x99\xda\xd8\x93\x64\xe0\x06\xcd\x09\xd6\x77\x76\xf8\x54\x4f\xd9\x8d\x1e\x31\x75\x1b\xc4\xa9\x1d\x1d\xe3\x11\x45\xa9\xfb\x3d\x1e\x15\x64\xe4\xe7\x8e\x07\x4a\x35\x66\xba\xe0\x79\xd8\x57\x16\x4c\x67\xdd\x16\x2b\x3b\x36\x0a\x2e\x56\x29\xab\xfa\x6d\x94\x27\xab\xee\x33\xb0\x36\xca\x93\xb5\x53\x9e\xec\x40\xe9\xa9\xb2\x1a\xd9\x54\x60\x3c\x0a\x90\xc1\xee\x7c\x7a\x74\x1e\x05\xc8\xda\x5c\x37\x28\x40\x06\xdd\x07\xba\xcf\x38\x2b\x8f\xbd\x4c\xfb\xe9\xaa\xe4\xd8\xc1\xf6\xad\xca\x0a\x63\x53\x91\xd1\xe0\x30\x09\x91\x6c\xf2\x22\xd9\x80\x24\x1f\x5c\xd0\xee\x13\x38\x4c\x4e\x4b\x98\xe8\xb2\x7e\x58\xf7\x2e\x88\xc9\x63\xe0\x09\xee\x79\x72\x15\xf5\x56\x40\x8c\xda\x70\xad\xdb\x50\xd3\x2f\xb1\xba\x90\xd8\xb6\x17\xc1\x53\x11\x09\xbe\x90\xe0\x0b\x09\xbe\x90\xe0\x0b\x09\xbe\x7a\xd1\x39\xa0\x1a\xd6\x9e\x28\x14\x14\x1b\x52\x1e\x36\xf8\xcd\x9f\x90\xdf\x3c\x92\xee\x21\xe9\x1e\x92\xee\x21\xe9\x1e\x92\xee\x21\xe9\x1e\x92\xee\x21\x9c\x0c\xe1\x64\x08\x27\x43\x38\xd9\xfa\x8a\x44\x41\x31\x64\xf8\x44\x86\x4f\x64\xf8\x1c\x79\x86\xcf\x4a\x5e\x07\x22\x8f\x10\xd1\xf5\x07\x06\x50\x50\x6c\x0b\xd7\x1d\x74\x61\xb1\x9a\x50\xbb\xba\xc0\xd8\x4b\x41\x36\x0a\x8d\xa1\xd0\x98\xfe\x08\x85\xc6\xe0\x87\x00\x3f\x04\xf8\x21\xc0\x0f\x01\x7e\x08\x00\xdc\x60\x9e\xfb\x47\x04\xcc\x13\xcc\x13\xcc\x13\xcc\x13\xcc\xf3\x84\x99\x27\x30\x04\x30\x04\x30\x04\x30\x04\x0a\x8d\xa1\xd0\x18\x0a\x8d\xb9\x4f\x0e\x88\x87\x2c\x9a\xf0\x51\x70\xac\xe2\x6b\xc3\xe0\x42\x28\x3c\x76\x0a\x19\xda\xba\x2c\x3c\x56\x13\xf4\x6d\x2b\x40\xd6\x4f\xcc\xea\x11\xf2\x6a\x94\x3a\x56\xef\xf0\x43\x10\xd5\x04\x82\xa8\x90\x5f\x03\xf9\x35\x2a\x1a\x33\x74\x19\x6d\x2c\x79\x36\x9a\xb5\xb9\xe7\x02\x65\x4d\x1a\x3d\x25\x41\xb8\xeb\x42\x65\xcd\x05\xe1\x57\xac\x71\xb6\x90\xe3\x17\x2e\x6b\x90\x28\xa4\x7f\x51\x6b\x24\xe9\x41\x20\x5d\x15\x27\x79\xb0\xd2\x15\x02\xb2\x4f\x28\x20\x1b\x91\x67\x88\x3c\x43\xe4\x19\x22\xcf\xa0\x18\x6e\xdb\x45\x83\x52\x0c\xa1\x64\x0d\x20\x22\x65\x98\x6a\x96\x33\x45\x1f\xa7\x78\x59\x4d\x45\xa9\xba\x88\x59\xcb\xc1\x27\x28\x66\xe6\x56\x43\x7d\xe9\x00\xc5\xcc\xcc\xff\x70\x6d\xe1\x06\xd8\x7c\xa0\x9f\xa2\x66\xfd\xe0\xe6\x72\x71\xb3\xed\x6d\x40\x91\xb3\xea\x3e\x03\xa1\xa3\xc8\x59\x37\x45\xce\x6a\x4a\x59\x5b\x8a\x9d\x4d\x0b\xfc\xa3\xe8\x19\x6c\xd4\xa7\xe7\x01\x80\xa2\x67\x6d\xae\x1b\x14\x3d\x83\x8e\x04\x1d\x69\xec\xc5\xcf\xda\xd0\x92\x8e\x55\x04\xad\xb6\x9d\x6c\x4b\x31\xb4\x69\xc9\x70\x70\xde\x84\xe8\x76\x32\xa2\xdb\x80\x24\x24\x5c\xe4\xee\x13\x38\x6f\x4e\x5b\xf8\xe8\xb6\x58\xda\x51\xdd\x20\x4b\xd5\xd2\xfa\x49\x2f\xb7\x43\x64\xd9\x91\x57\xae\x05\xa6\x87\x84\x72\x48\x28\x87\x84\x72\x48\x28\x87\x84\x72\x48\x28\x87\x84\x72\x48\x28\x87\x84\x72\x48\x28\xb7\x75\x44\x90\x50\x0e\x09\xe5\x90\x50\x0e\x09\xe5\x90\x50\x0e\x09\xe5\x90\x50\x0e\x09\xe5\x90\x50\x0e\x09\xe5\x90\x50\x0e\x09\xe5\x90\x50\xee\x70\x76\x84\x4c\x72\x15\x5f\x6b\x8b\x1c\x1d\xcf\xa7\x1f\xfe\xef\xa3\xf3\x7f\xef\x3c\x85\xdc\x0e\x98\xb7\x33\x77\xdc\xf4\xfc\x8e\xe0\x70\x04\x87\x23\x38\x1c\xc1\xe1\x68\x88\x02\xd8\xa8\x3c\x8d\xc6\x95\xba\xe0\x14\xe5\xda\xa3\x24\x86\xeb\xde\x15\xaa\xa7\x54\x70\x3b\x44\xa6\x9d\x39\xe0\x8e\x27\x32\x21\xf9\x1b\x84\x25\x24\x7f\x43\xf2\xb7\x06\x93\x8d\xe4\x6f\x48\xfe\x86\xe4\x6f\x48\xfe\x06\x3d\x6f\xdb\x2e\x1a\x64\x8d\xff\x7e\x74\xa9\xd6\x9a\x3f\x25\xe5\xea\x48\x09\xe1\x1a\x62\x83\x23\x66\x82\xdb\x19\xda\xba\x35\x05\x5c\x0b\x71\x22\xc8\xfd\xe6\xe6\xbf\xbe\x70\x80\xdc\x6f\xe6\x7f\xb8\xb5\x60\x42\xdb\x7f\xca\x1f\x23\xe9\xdb\xf1\xc8\x70\x45\xb6\xb7\xc3\x91\xef\x50\x68\x2f\x30\xf7\xe8\x30\x37\xd2\xbc\x1d\x2c\x42\xed\xca\xef\x36\x7e\x38\x8f\xc4\x6e\xb0\x3f\x9f\x1e\xac\x47\x62\xb7\x36\xd7\x0d\x12\xbb\x41\x01\x82\x02\xb4\x3e\x88\xe3\xca\xe8\xd6\x54\x05\x3a\x6a\x2a\xb7\x9d\x86\xae\x5d\x39\xdc\xc6\x2f\xa7\xc1\x89\x12\x72\xd9\xf4\xe5\xb2\x01\x89\x3f\xb8\xa5\xdd\x27\x70\xa2\x9c\x9a\x48\x71\x84\x3c\x6d\x47\xf3\x4a\xbc\x8a\x13\xf9\xfd\xb9\x6b\xdf\x44\x4f\x46\x91\xf0\x32\xf6\xfe\xe6\xb7\x9b\xaf\x37\xb9\x7a\x98\x49\x46\xbf\xaf\x2e\xa8\x1a\x91\x1e\xfa\x2d\x5a\x4a\xd1\x7e\x7e\x1b\xb2\xca\x2d\x75\xa7\xc6\xa1\xb3\xb5\xe9\x47\x3b\x18\xd6\xce\xd7\x13\xdc\x49\x66\x42\x3b\xdf\x4d\xb4\x28\xac\x4b\xe8\x40\x80\xb4\xdd\x12\x7f\xbe\xf9\xda\xca\x7e\xf8\xb3\xc8\xb0\x19\xaa\x5a\x81\xcd\xd0\xfa\x66\xb8\x17\xdc\xef\x66\x37\xfc\xe5\xe6\xfa\x7d\x2b\xdb\xe1\x2f\x82\xfb\xd8\x0f\x55\xad\xc0\x7e\x68\x7d\x3f\x48\xf3\x74\x27\x5b\xe2\xd3\xed\xd7\x0f\x9f\xfe\xfe\xa5\x95\x5d\x61\xba\x89\x8d\x51\xd5\x0a\x6c\x8c\xd6\x37\x46\x3b\x3e\x1e\xdb\x1b\x02\x7f\x8f\xea\x3e\x0f\xca\xdf\xe3\x96\x67\x3a\x09\xdc\xbd\x60\x31\x4f\x28\x8d\xdf\x7f\x7d\xfe\xcd\x18\x4a\x4d\xbe\x34\x66\xf4\x52\x26\x22\x3f\x96\x41\x94\xa5\x6a\x54\xe6\xf3\xe0\xbb\x48\xb5\xd9\xac\x90\xfb\x37\x93\x14\xed\x61\x83\x66\xbc\x55\x92\x88\x28\x33\xa7\xa2\x4d\x87\x95\x49\xfb\x4e\xe2\x5d\x4c\x7c\xe7\xcb\x38\x34\xe1\x1a\x4f\xf7\x32\x74\xf6\x50\xd5\x1a\x4a\xd6\x94\x65\xf1\x4f\x57\x57\xa1\xf4\x78\x78\x2f\xd3\xac\x42\x93\x56\xdb\xec\x32\x7d\x4e\x33\xb1\xcc\x35\x69\x11\xf2\x34\x0b\xbc\x54\xf0\xc4\xbb\xbf\x0c\xe5\x62\x11\x44\x8b\xab\xff\xd6\xff\xff\xff\xfb\x9f\xff\x58\xa5\x22\xf9\xe9\x21\x58\x7a\xf7\xcf\x33\x66\x47\xa3\xfa\xe3\x43\xdd\x5d\x36\x56\x41\x1f\xce\x2e\x87\xde\x68\xb7\xd7\x5f\xdf\xfd\xa5\x95\xfb\x8c\xb8\x2f\x6e\xb3\xaa\x56\xe0\x36\x6b\xff\x36\x6b\x3f\xcd\x89\xdd\x11\x9f\xbe\xb4\x63\x05\xb8\x95\x29\xcc\x00\x95\xad\xc0\x7e\x68\x7f\x3f\xb4\x8d\xaf\xdd\x76\xf8\xaf\x96\x76\xc3\x0a\x9b\xa1\xb2\x15\xd8\x0c\x6d\x6d\x86\x57\xec\x85\xe8\xe5\xea\x7f\x95\x10\xd7\x79\x76\x88\x23\x13\x98\x7f\x04\xd9\xfd\x6d\x59\x38\xc5\x46\xc3\x46\x3b\x6d\x12\x83\x4d\x81\x4d\xc1\xba\xd9\x14\xa3\x26\x32\xd8\x17\xd8\x17\xac\x9b\x7d\x31\x0d\x32\x83\x0d\x82\x0d\xc2\x3a\xd2\xe1\x41\x68\x40\x68\x54\x53\x6d\x7e\x7f\x9b\xa8\xe8\xb0\x2e\x6d\x7e\x02\xde\x04\xde\x74\x4a\xbc\x09\x77\x34\xee\x68\xd6\xd1\x1d\x3d\x66\xee\x84\x7d\x81\x7d\xc1\x3a\xda\x17\xa3\xe5\x4f\xd8\x14\xd8\x14\xac\xd5\x4d\xf1\x8a\x35\xe7\x50\xa9\x4e\x82\x58\x20\x50\xdd\xa4\xdf\xd3\xbf\x63\x55\xc7\x96\x12\xf1\x99\x0c\x8e\x35\x36\x12\xc2\x0c\x4f\x3d\x72\x0f\xd9\xd0\x18\x6c\x2f\x03\xb3\xbd\x20\x1b\xda\x96\x2f\x8e\x21\x1b\x5a\xf3\x1b\x6d\x57\x5e\xb4\x8a\x2b\x6d\x94\x59\x37\x90\x1d\x0d\x59\x38\x4e\x2f\x0b\x07\xb2\xa3\xb5\xb9\x6e\x90\x1d\xed\xa0\x81\xad\xbc\xc5\xa0\x10\x41\x21\x42\x76\xb4\x3c\x3b\xda\x4b\xec\x10\xbb\xf2\xa4\x4d\x45\x6e\x43\xb6\x34\xc8\x69\xd3\x97\xd3\x06\x24\x0e\xe1\xd6\x76\x9f\x20\x5b\xda\xd4\x44\x8c\x71\x66\x4b\x3b\x5e\xb9\xd6\xbf\x57\x58\x24\x6b\x15\x6c\x3d\x9e\xa0\x81\x42\xad\x10\x31\x50\xa8\x15\x85\x5a\x1b\x4c\x36\x0a\xb5\xa2\x50\x2b\x0a\xb5\xa2\x50\x2b\xb4\xa3\x6d\xbb\x08\x85\x5a\x51\xa8\x95\xed\x50\xa0\xba\x2e\xd4\x5a\xa5\x4f\x0c\xad\x54\x6b\x1d\x1d\xa9\xc2\x47\xac\x89\x86\x84\x22\xad\x28\xd2\x0a\x0a\x77\xb4\x1b\xcb\x99\xc8\xf2\x4d\x7b\x82\x67\x7c\xa7\x8e\x89\x2f\x3d\xe0\x5f\xe8\x9a\xb8\xe5\xe7\xc7\xe4\x9c\x08\x1f\xbd\x2d\x5f\x1c\x83\x8f\xde\xe1\x92\x44\x95\x6f\xde\xf8\xa9\x2e\xbc\xf1\x60\x82\x3d\x3d\xca\x0b\x6f\xbc\x36\xd7\x0d\xbc\xf1\xa0\x07\x40\x0f\xd8\x1c\xc6\x91\xf8\xe3\xbd\x58\x13\x38\x4e\xbd\xd2\x7a\xd6\x9e\x2a\x4f\xbc\xf1\x4b\x69\x8d\xf7\x01\xe4\x32\xc8\x65\x23\x92\xcb\x06\x24\xfe\xe0\x96\x76\x9f\x74\x77\x4b\xf7\xeb\x7f\x77\xda\x42\x45\x97\x1e\x78\x0d\x45\x8a\x57\xac\x8e\x0f\xde\x95\xe5\xf3\x45\x67\xbc\x06\xe6\x48\xdc\x7e\xb5\x4c\x91\x15\x37\x5f\xc7\x86\xd5\x13\xbd\xef\xf6\x4f\xc5\xd6\xbb\xae\xe3\x09\x81\xe1\xbe\xf6\x14\x75\x6b\xb8\xef\x4a\xd3\xb2\x27\xea\x66\xf4\x53\x73\xad\xeb\x57\x7b\x4a\x9f\x96\xf6\x05\xb9\xb1\x9b\x71\x85\xdc\x08\xb9\xf1\x85\x72\x63\xdf\x19\xad\x1a\xfa\x2b\x21\x97\x95\xfe\x04\xfb\x13\x4e\x23\x90\x3d\xe1\x34\x32\xbc\xc4\x4e\x4d\xdd\x47\xa6\x92\x1a\x00\x4e\x24\x80\x15\xa7\x67\xbc\x81\x13\x49\x9b\xeb\x06\x4e\x24\xc0\x53\xd0\x0b\x36\x87\x11\x4e\x24\xdd\xa4\x75\x6a\x6e\xd8\x9c\x8a\xd4\x06\xa7\x12\xc8\x69\xa7\x20\xa7\x0d\x48\x1c\xc2\xad\xed\x3e\x01\x1c\x30\x6f\x9e\x94\x90\x31\x1a\x38\x20\xfd\xd2\x12\xef\x32\x99\x53\x21\xf1\x85\x9c\xb3\xbf\x4b\xbf\x6e\x4e\xa7\x77\xee\xc1\xf5\x87\x90\xd8\xc9\x64\x0c\x52\xf7\x45\x10\xad\x84\xd1\xa1\x0b\xb9\x81\x94\x1a\xf7\xa4\x44\x91\x44\x64\x49\x20\x1e\xd5\x4d\xb5\x94\x89\x30\xa2\x42\x9a\x27\x71\x49\x45\xf2\x28\x92\x19\xfb\x12\x44\xe4\x74\x5c\x4c\xfb\xa3\x3f\xb3\xb7\xce\x05\xf3\xc2\xc0\x25\x22\xa1\x0b\xcb\xa6\xad\x71\x0d\xd1\x8f\xd2\xcb\xb9\x12\x83\x1e\x03\xb9\x4a\x19\xdd\x36\x56\x4a\xa1\x8b\x35\xf0\xd5\x6d\xea\xf1\xd0\x7c\x56\x28\x2c\xf8\x5a\x7c\xf7\x44\x9c\xb9\xac\x42\xfa\x95\x72\xee\x7e\xe4\x8d\xcb\x4b\x62\xda\xa7\x9a\x93\x08\x4a\x26\xc4\xd7\x9b\x12\x64\xcc\x97\x22\x25\x29\xcb\xc9\x51\x26\xc3\x51\x51\x20\x5e\x7f\x4c\x3d\x41\xd7\xb3\x48\x98\x16\xc5\x9e\x4c\x66\x17\x7f\x25\x94\x7e\x2e\xbe\xc7\x81\xc9\xd7\xf4\x7a\x21\x22\x91\x90\xa9\x74\xae\x64\xb2\x4c\xb2\x79\x30\xcf\x84\x88\xd8\x32\x88\x56\x99\x48\xdf\xa8\xbb\x9f\xda\x36\x0f\x16\x36\xcd\x93\x96\x19\x98\x8c\x0a\x7d\xb9\x28\xf6\xcb\xca\x76\xb1\x8c\x8c\x3c\xc2\xd9\xff\x7d\xfb\x7f\xd8\x67\x93\x8e\xe5\x46\x35\x41\xf8\x46\xe2\xcb\xe4\x42\x37\xd0\x7c\xd3\xf5\x28\x93\x0f\x22\x72\x5d\xd6\x73\xc8\x22\x21\xfc\x54\x7f\x8b\xc4\xce\x28\xa3\xd4\x3d\x17\x6a\xc0\x48\x72\x49\x44\x9a\xf1\x24\x53\xcf\x04\x09\x7d\x46\x2f\x96\xab\xac\x3c\xe3\x24\x2c\xcc\xd8\x27\xf5\xd3\x4f\x81\xcd\x28\x64\x7e\x45\xcd\x4c\x2a\x22\x9f\xf1\x48\xdb\x1e\xe8\x3d\xb6\xe4\xa3\x13\xb1\xa8\x85\x6a\x7a\x44\xf0\x58\x14\xbd\x54\x67\xa9\x73\x7b\x87\x85\xde\x4b\x0d\x26\xbb\x87\x5d\xdc\x91\xf8\x9e\xb1\x07\xf1\xac\xf3\xe5\xb8\x3f\x87\x4a\x24\xcf\x58\x1a\xf1\x38\xbd\x97\xd9\x05\x7b\xba\x0f\x3c\xaa\x08\x19\x44\x85\x01\x71\xdf\x77\x0b\xd9\x34\x5f\x6f\xa1\x4b\x97\x5f\x49\x87\xe9\x27\x82\x79\xfa\x62\xbd\x30\x92\xbe\xfa\x97\x4c\x6c\xa2\x2e\xc6\xe7\x99\xd0\x6b\x7a\x1e\x24\x69\xb6\x3e\x18\x5a\xa2\x36\xb5\x38\x7d\x9b\x84\xc6\x8a\x24\x24\xff\xa9\x05\xa9\xfe\xab\x27\xe5\x41\x3c\x93\xa0\x5e\x78\xf1\xb7\x33\xdb\xe5\x6f\x67\xb3\x6f\xd1\xb7\xa8\x6c\xa5\xa3\xfc\x01\xab\x58\x27\x1d\xd0\x07\xc4\x13\x99\x77\x82\x94\xa4\xb5\x19\x7b\x57\xd8\xe2\x7a\x01\x70\xf3\x95\xc2\xe8\xe9\x41\xa0\x35\xf8\xbb\xbe\x7f\xcc\xb6\x49\x44\xb6\x4a\xa2\x3c\xe5\x90\x99\x31\xad\x83\x64\x6c\x19\xa4\x29\xe3\xd1\x73\x59\x11\x6a\x22\xa2\xda\xe5\xd7\x8f\xf6\x00\x25\xaf\xf6\x44\xf5\xa9\xe4\x5d\xb3\x54\xe4\xb9\xa3\xd4\x81\x96\x04\x9e\x3e\xbe\x68\xeb\xc9\x79\xbe\x60\x5d\xaa\xb4\x67\xb3\xb9\xb4\xed\xb4\x9c\xb7\x4e\x3c\x8a\xe4\x39\xbb\x0f\xa2\x45\x63\xb5\xea\x8b\x69\x51\x3f\x23\x82\x34\x83\x27\x94\x66\xf0\x45\xcb\x3f\xe4\x77\x22\x6c\x75\xf9\xd3\x1b\xfb\x5d\xfe\x61\xb0\x0c\x32\x6d\xee\x59\xf2\xef\xc1\x72\xb5\x64\xd1\x6a\x79\xa7\x16\xc9\xdc\x1d\xa6\xa9\x1e\x2d\x35\x30\x1a\x66\xe9\xd1\xf2\x78\x18\xd2\x92\x25\x31\x3a\x50\x6d\xd1\x19\xf5\x36\x65\x13\x25\x7c\xab\xbf\xfd\xcb\xde\x52\xff\xb2\x49\xfd\xa2\x7c\xf4\x6d\xbe\x3d\xbd\x50\xf5\xea\xa4\xfb\xc3\xe3\x91\x5d\xce\xb9\x24\x94\xf2\xa5\xda\x65\x41\x16\x38\x91\x59\xb7\x52\x09\xf7\x22\x97\x75\xd4\x4f\xeb\xbe\xa8\x49\x9b\xb1\x2f\x22\x23\x89\x48\x75\x42\xf5\x5d\x8b\xca\xba\x6f\xe2\x89\x84\x06\x1e\x15\x6f\x08\x25\xa6\x2c\xe5\x2a\xa2\xd7\xe8\x5e\xbe\x5e\xc5\xea\xc7\xf4\x86\x56\x7f\x79\x63\x65\x13\xf1\xa8\xc4\x24\x4e\x97\x93\x7d\xda\xae\x24\x25\x97\xcc\x83\x30\x13\x4a\x42\x55\x52\xa3\xba\xa3\xac\x02\x61\x4e\x97\x92\x0e\xa1\xef\x53\xcf\xb9\xbb\x94\x25\x4c\x9d\xfd\x2f\x13\xc9\x32\x88\x84\x93\xc5\x4b\x2a\x0d\x49\x42\x8f\x3c\x08\xf9\x5d\x28\x66\x54\xb9\x40\xe9\x13\xaa\xcb\xde\xbd\x94\xa9\xa0\xad\x9f\x49\x2b\x01\x99\xb9\x50\xc3\xc2\x93\xc5\x6a\x49\x7d\x89\x7c\x7b\xdb\xd2\x20\xa9\xbe\x99\xf6\xb8\x57\xe7\xa3\xfb\x61\xce\xdc\x92\xca\x4f\x25\xab\x9d\xac\x75\x20\x48\x99\x58\xc6\xd9\x73\x59\x8d\xe2\xa9\x52\xb2\xf5\xcc\x47\x72\x67\x87\x76\x89\x72\xc1\x7c\x4d\x90\xd3\xb2\x9f\x5b\x97\x8b\x15\x4f\x78\x94\x09\x2b\xa4\xe4\x27\x7d\x9a\x1f\x02\x24\x0f\xae\x48\x6c\x70\x6d\x77\x62\xa9\x53\xd8\x32\xc9\x82\x34\x5d\xe9\x55\xa5\xbe\x1c\x8a\x7c\x87\x38\x1d\xc1\x2e\xb8\x4b\x6b\x2f\xbd\x50\xdd\xb3\x3f\x79\x98\x9c\x6c\x45\x64\x25\x9f\xa7\xe9\x4a\xf8\x95\xc2\xb2\x92\x2b\xd3\xd5\x5d\xaa\xbe\x1c\x65\xae\x07\x7e\x81\x9c\xd2\x08\xaa\xb9\x92\x4b\x91\x05\x4b\xa1\xfa\x3e\x17\x49\x42\xf9\x4d\x95\x5c\x5d\xd2\x87\x72\xf5\x40\xcd\xa8\x88\xd2\x55\x22\x5c\x4a\x2e\xa3\xe0\x58\x63\xb0\x1e\x35\xdd\x65\xda\x98\xa4\xca\xb0\x74\xc9\xc3\x50\x24\xcc\xbb\x5f\x45\x0f\x84\x61\x38\x53\x87\x28\x0b\x79\xb2\xb0\x13\x4d\x3b\x5e\xbf\x5e\x75\x5a\x69\x4c\x82\x16\x5e\x2c\xd3\x34\x50\x0b\xce\x0c\x1b\x2d\xb8\xe2\xfe\xd2\x8e\x39\xbe\xba\xd2\xf5\x74\xd0\xef\x08\x5f\xcf\x07\x29\xcf\x46\x3c\x37\x6b\xd8\xdc\x85\xd4\xea\x27\x9e\x5a\x19\x96\x99\x15\xa1\xc6\x64\x53\x3f\xd1\x5a\x3b\x4f\xd5\x04\x7b\xab\x50\xa7\x9d\xcd\x97\x4d\xa3\xbb\x40\x0d\x54\x4f\xd7\x22\xb2\xef\x22\xfb\x2e\xb2\xef\x22\xfb\xee\x51\x24\xce\x75\x33\x49\x2a\x32\x7b\xcb\x64\x09\x0f\xd4\x29\x11\xb1\x27\x35\x18\xf6\x9b\xf6\xc8\x56\x5f\xb3\x17\x9f\x5b\x7a\x89\x3d\x01\x94\x78\x23\x1c\x03\x2c\xf0\xad\x40\x5e\xf9\xd2\x4b\xaf\xe8\x62\x53\xe2\xd4\x15\x5d\x4d\x97\x3c\x0e\xae\x78\x1c\x5c\x7a\x32\x52\x6b\x25\xbd\xfa\x83\x5b\x56\xee\x07\xe7\x74\x07\x67\x3c\x08\x53\x92\x1f\x8a\xb2\x3f\x79\x06\x35\x98\x87\xb5\x01\x18\xc4\x2c\x7c\x24\x49\xc9\x49\x93\x29\x1d\x15\xeb\x33\xa5\xb4\x84\x38\x0e\x03\x2d\x1b\x38\x01\x47\xfb\x5f\x05\x29\xbb\x0f\x16\xf7\xe4\x96\xe5\xc9\xe5\x52\x2d\x5d\x5f\x2f\xea\xca\xdf\x32\x16\x79\x35\xc0\xf9\x9b\x94\xbc\x95\x88\xaa\x1f\x56\xdf\x1d\xe7\xfc\x7e\x5c\xf3\xb3\x39\xe2\x24\x7f\x0d\x96\x42\x49\x9e\xd6\x4c\xa0\x06\xfa\x4a\x0b\xc5\x5a\x77\x23\xe9\x8f\x24\x8f\x54\x9f\x61\xd6\x10\x62\x15\x0e\x1e\x86\x17\x2c\x11\x0b\x9e\xf8\x04\xed\x95\xb8\x16\x3d\x33\xee\x65\xc1\x63\x90\x3d\xab\x5b\x21\x88\xec\xff\x6b\x72\x28\x65\xba\x89\x5d\x98\x05\x2a\x89\x1c\xd8\x3a\x32\x6a\xaf\x3f\xb0\x33\xa3\x76\x2e\x27\x75\x08\xb2\xcb\x34\xb7\xd7\xb4\xda\xda\x0e\x96\x18\xdd\xd9\x0a\xec\x72\xce\x54\x63\xf7\xc1\x6a\xf5\xb0\x71\x8e\x6b\x08\xa8\xd7\x5a\x43\xe2\xd7\x3f\x54\x53\x7e\x91\xf2\x61\xc9\x93\x87\x34\x77\xa2\xd6\x4d\x24\x8b\x4b\x6a\xec\x42\xcf\xb1\x52\x1e\x7e\xf9\xf4\xe9\x6f\x1f\xaf\x3f\xff\xed\xdb\x59\x6e\xf3\xd0\xe2\x95\x24\x19\x35\x58\xc6\xa1\x20\xe3\xc6\x9d\x7b\xab\x12\x28\x82\x45\xa4\x6d\xbe\x4a\xea\x0d\xf9\x82\xe4\xcd\xfc\x2b\x4a\xbf\x2c\xea\x86\xda\x90\x70\x9e\x32\x3f\x48\xbd\x44\xa8\x36\xe7\xb4\xa8\x40\x39\x8c\x41\xa3\xfc\x22\x67\x62\x50\xba\xb3\xd2\xd3\xad\x24\xab\xce\xba\xe4\x91\x87\x17\x2c\x92\x1a\xe4\x92\x06\xec\xac\x22\xeb\x86\x35\x42\x89\xcf\xcc\xf6\xd9\x58\xa0\x9c\xfe\x9b\x8a\x34\xa5\x86\x59\xd3\xb2\x31\x94\x18\x86\x55\x52\xe7\xd4\xa7\x34\x04\xbe\x63\xa3\x73\xc1\x33\xa5\x85\x2f\x78\x26\xd8\xda\x44\x98\x37\x89\x48\x89\xd9\xda\xe0\x10\x07\x39\xb4\xad\x7a\x6d\x83\x1b\xa2\x62\x09\xf4\xa4\x4a\xc1\xbf\x00\xfe\x05\xf0\x2f\x80\x7f\x01\xfc\x0b\xaa\x0e\x5f\x80\xeb\x11\x8d\x08\x58\x26\x58\x26\x58\x26\x58\x26\x58\x26\x58\xe6\xb4\x58\x26\xf0\x02\xf0\x02\xf0\x02\xf0\x42\xe7\x78\xe1\x00\x04\xaf\x95\x39\x99\xd8\x98\x48\x35\xfd\x1a\x19\xab\xef\xdd\xd1\x25\xa6\x27\x55\x23\x6e\x23\x9d\x64\xf7\x62\xa9\xaf\xad\x34\x4b\x04\x5f\xd2\xf0\xf8\xfe\x85\xb9\x18\x2e\xcc\x77\x97\xf2\x91\x64\x9f\x82\x7a\xc7\xbe\xe8\x8a\x78\xeb\x4b\xbd\xc9\x10\x3e\xed\x5a\x60\xe3\x4f\x55\xb0\xf5\x01\xf5\x63\x3f\xeb\x81\xff\x8f\xcd\x31\xa8\xf3\xee\xf2\xd3\xc3\x26\x40\x79\xb8\xa2\xf4\xc5\x6f\x41\x9a\x9d\x22\xf1\x51\x07\xd8\x20\x29\x4f\x83\x34\x69\xe3\xcd\x2b\x26\xd3\x96\x91\x96\x56\x47\x18\xdf\x47\xaf\xf4\xf7\x5e\xc6\xaf\x86\x9a\xd1\x41\x75\xa7\xde\x8e\x46\x9c\xcf\x04\xe2\x7c\x90\xcc\x01\xc9\x1c\x2a\x1a\x33\x4c\x71\x63\x24\x79\x1c\x0e\x6a\x69\x1f\x75\xf1\x1b\x35\x75\x4a\xf2\x1b\x89\x0e\x03\x92\xdf\x5e\xb1\x6d\x99\x26\x4c\x06\xea\x23\x25\x9c\xd8\x2b\xf9\x14\x93\x4c\x20\xb5\x04\xc4\x9e\xb1\x8a\x3d\x08\xe6\x3d\xa1\x60\x5e\x44\x2d\x21\x6a\x09\x51\x4b\x88\x5a\x82\xc6\xb6\x6d\x17\x0d\x32\x44\xa0\x1f\xdd\x08\x11\x0e\x5b\x23\x1c\x86\xa4\x31\x39\x2b\x70\x37\x85\x78\xca\xe2\xd5\x1e\xa5\xa8\x50\x79\xa7\x9d\x60\x86\x82\x70\x21\xbe\x93\x8b\xd2\x9d\xfa\x17\xf7\xb2\x19\x63\x37\xea\xbf\xf6\xef\x4b\x1e\x90\xa5\x2c\x65\x5e\xb8\x4a\x33\x91\xe4\x57\x86\x49\x60\x1e\x06\x0f\x82\x9d\xbb\x0c\x88\xe7\x4a\x32\xb4\xd2\xcc\x8c\xdd\x86\x3c\x8a\x4c\xe6\x79\x92\x37\x78\xa8\x45\x9c\xb7\x3f\x36\x39\x83\xa9\x8d\x3d\x49\x02\x6e\xd0\x9c\x20\x7d\x67\x87\x4f\xf5\x94\xdd\xe8\x11\x53\xa7\x7f\x9c\xda\xd1\x31\x5e\x3c\x94\x0d\xde\xe3\x51\x41\x26\x7e\xee\x78\xa0\x54\x63\xa6\x0b\x4b\x87\x7d\x45\x9d\xbc\xfd\xab\xdb\x52\x4f\x47\xc5\x97\xa5\x2a\x4f\x1b\xbf\x8c\x02\x4f\x28\xf0\x74\x94\x02\x4f\x07\x09\x0c\xc5\x8a\x4e\x93\xc0\xc7\x28\xe3\x04\xd3\xea\xe9\x11\x65\x94\x71\x6a\x73\xdd\xa0\x8c\x13\xc4\x7d\x88\xfb\xa3\xac\xe0\xf4\x02\x81\xbf\xab\xe2\x4d\x07\x1a\x70\x8a\xd5\x9a\x26\x21\x91\xc1\xa1\x0f\xe2\xd7\xc4\xc5\xaf\x01\x49\x39\xb8\x8c\xdd\x27\x27\xee\xd0\x37\x29\xb1\xa1\xd3\x9a\x4c\xed\x3b\xc9\x5d\xc5\x89\xfc\xfe\xdc\xb5\xab\x9c\x27\xa3\x48\x78\x19\x7b\x7f\xf3\xdb\xcd\xd7\x9b\x5c\xc5\xcb\x24\xa3\xdf\xaf\x51\xaa\xc9\xbc\x42\xcb\x1b\xda\x07\x4d\x3d\x71\x4b\xcd\xaf\x71\x82\x6c\x6d\xea\xd1\x76\xf9\xda\x61\x79\x82\x9b\xc3\xcc\x61\xb7\x1b\x84\x56\x84\x75\x4f\x1c\x08\x1f\xb5\xeb\xff\xcf\x37\x5f\x5f\xbe\xf8\xff\x2c\x32\xac\x7c\xac\x7c\xfd\xe7\x96\x57\xfe\xbd\xe0\x7e\x37\x4b\xff\x2f\x37\xd7\xef\x5f\xbe\xf6\xff\x22\xb8\x8f\xc5\x8f\xc5\xaf\xff\xdc\xf2\xe2\x97\xe6\xe9\x4e\xd6\xff\xa7\xdb\xaf\x1f\x3e\xfd\xfd\xcb\xcb\xb7\x80\xe9\x23\x76\x01\x76\x81\xfe\x73\xcb\xbb\xa0\x05\x7f\x82\xed\xad\x18\x93\x6f\xc1\x2d\xcf\x74\x4e\xa8\x7b\xc1\xfe\xeb\xf3\x6f\x4c\xb5\x9a\x72\x8b\xa4\xc2\x85\x13\x78\xab\x24\x11\x51\x66\x76\xb2\x4d\x70\x93\x49\xa6\x74\xac\x83\x1d\x0e\x36\x86\xa5\x0f\x77\x83\x43\x0f\xb6\xdb\xeb\xaf\xef\xfe\xf2\xf2\x63\x8d\x30\x1c\x0e\x35\x1c\x6a\xfa\xcf\x6d\x1f\x6a\xed\xe7\x3d\xb0\xcb\xff\xd3\x97\x16\x74\xba\x5b\x99\x42\xa9\xc3\xe2\x37\x7f\x6e\x7b\xf1\xb7\x0d\x0c\xdd\xda\xff\xaf\x36\x96\xfe\x0a\x2b\x1f\x2b\xdf\xfc\xb9\x9d\x95\xff\x8a\xd5\xb2\x7a\x5f\xfd\xaf\x92\xb8\x3a\x8f\x13\xef\xd8\xf8\xfd\x8f\x20\xbb\xbf\x2d\x4b\x8e\xd8\x3b\xd8\x3b\x27\x64\x04\xc7\x0e\xc0\x0e\x60\x1d\xec\x80\x51\x19\xc3\xb1\x09\xb0\x09\x58\x07\x9b\x60\x9c\x46\x71\xec\x06\xec\x06\xd6\x85\x2a\x0d\xe3\xb8\x73\x8f\xbe\xb7\x99\x96\x6d\xea\x8d\xc3\x7a\xb3\xf9\x09\x4c\xfd\xa7\x68\xea\xc7\x51\x8d\xa3\x9a\x75\x71\x54\x8f\xc9\xe4\x8f\x4d\x80\x4d\xc0\xba\xd8\x04\xa3\x31\xfd\x63\x07\x60\x07\xb0\xf6\x76\xc0\x2b\xb6\x0f\x01\xa4\x3a\x33\x55\xc1\xf8\xdf\x4d\x5a\x24\xfd\x3b\x56\x03\x68\x98\x20\xc9\xa4\xd1\xaa\xb1\x37\x10\x29\x73\xd2\xf1\x27\xc8\x52\x33\x40\x65\x19\x59\x6a\xb6\x7c\x71\x0c\x59\x6a\x1a\x9e\xdf\x6b\xf9\x6a\x2a\x0e\xf0\x51\xc6\x48\x23\x6b\x0d\xc2\xa6\x4f\x2f\x6c\x1a\x59\x6b\xda\x5c\x37\xc8\x5a\x73\xd0\xc0\x56\xde\x5a\x10\xff\x21\xfe\x23\x6b\x0d\xf7\x1a\xcb\x67\x1b\xf9\x6b\xa6\x22\xa1\x21\x8b\x0d\xc4\xb1\x89\x8b\x63\x03\x92\x7a\x70\x39\xbb\x4f\x90\xc5\x66\x3a\x62\xc4\x08\xb2\xd8\xd8\xcb\x25\xca\x1e\x65\xb8\x5a\x0a\x2f\xe4\xc1\xb2\x5b\x7b\x3e\x15\xbb\x97\x09\xd3\x65\xd8\x6d\xe5\x22\x39\x67\xaa\x6b\xec\xd6\x35\xe8\x77\x6a\xd0\x3b\xd5\xa0\x1d\x12\x88\x7a\x9b\xe1\x60\x55\x4f\xfe\x2a\x93\xeb\x30\x74\x45\x08\x06\x61\xfc\xdf\xfa\xc0\x89\xd6\xf3\xae\x9c\x38\x14\xf8\xae\xf8\xda\x8b\x4f\x8d\x7d\xbb\xab\x63\x18\x41\x45\x9f\xfe\xa1\xd6\xe6\x2f\x52\x3e\x2c\x79\xf2\x90\xe6\x36\x1f\x7d\x1e\x88\x47\x2a\xcc\xa4\x85\xac\xe7\x58\xb0\x6f\x67\xbf\x7c\xfa\xf4\xb7\x8f\xd7\x9f\xff\xf6\xed\x6c\xc6\xbe\x88\x44\x35\xd0\x14\x75\x92\x24\x23\x07\xcb\x38\x14\x4b\x11\x65\xec\xce\xbd\x75\xc9\x9f\x59\xb0\x88\x74\x49\xbd\x20\xd5\x36\x0b\x25\x4e\xe5\x5f\xe1\x89\x60\x4a\x18\x67\x3c\xd3\x4a\x0f\xbd\xfa\x3c\x65\x7e\x90\x7a\x89\x50\x6d\x9e\xb1\x77\x61\x40\xed\x29\x88\xe4\x3c\x55\xc7\xdf\xda\x8b\x12\x91\xad\x12\x25\x80\xf1\x8c\xf1\xe8\x99\xb9\x62\x28\x41\x94\x89\xe4\x91\x87\x17\x2c\x92\x09\x35\x2b\xbb\x17\xcf\xf6\x25\xf9\xef\x6a\xc1\x39\x15\x91\x4f\xcf\xdb\x3e\xeb\xf1\x60\xfe\x4a\x09\x55\x8c\xb3\x54\x89\xe8\xaa\x61\xb6\x72\x5f\x90\xea\x46\xe9\xe1\x2b\x15\x91\x53\x9f\xd2\x10\x98\x5a\x70\xf7\x82\xcd\x05\xcf\x56\x89\x60\x0b\x9e\x09\xb6\x36\x11\xe6\x4d\x22\x52\xf2\x25\xd5\x9b\xe3\x71\xa0\x1b\xb7\xed\xb5\x07\x52\x96\x8a\xe9\xaf\x46\x2e\x55\x16\x9e\x16\x08\x92\x12\xc1\x95\x24\x1d\x44\x2b\x61\x8c\x88\x85\x2a\x8b\xa9\xc8\xd8\x93\x52\xd2\x12\x91\x25\x81\x78\x54\x03\xbe\x94\x34\xb7\x29\xd5\x33\x74\xe5\xf0\xf4\xa0\xcc\xd8\x97\x20\xf2\xc4\x5a\x01\x45\x33\x9b\x46\x1e\xbf\x60\x9e\x59\x40\x6a\xe6\x49\x94\xb7\x05\x00\x5d\x43\xf4\xa3\xf4\x72\xae\x14\xc4\xc7\x40\xae\x52\x46\xc3\x68\xf5\x37\xda\x0d\x81\xaf\xf4\x0c\x8f\x87\xe6\xb3\x7c\xff\xb1\xd7\xe2\xbb\x27\xe2\xcc\x79\x59\xea\x57\xca\xb9\xfb\x91\x37\xae\xc2\x9b\x69\x9f\x6a\x4e\x22\xa8\x2c\x23\x5f\x6f\x4a\xa0\x76\x96\xd0\xab\xc1\x69\x98\x6e\x09\xe5\xb6\x81\xf5\xc7\xd4\x13\xa4\xb8\x88\x84\x69\x25\xf5\xc9\xd4\xc8\xf3\x57\x82\x65\x92\x89\xef\x71\x60\x2a\x5f\xbe\x5e\x88\x48\x24\x44\x88\xe6\x4a\x5b\xcd\x24\x9b\x07\xf3\x4c\x88\x88\x2d\x83\x68\x95\x89\xf4\x8d\x92\x11\xa8\x6d\xf3\x60\x61\x0b\x66\x6a\x6d\x8a\xc9\xa8\xd0\x97\x8b\x8d\x5d\xa4\xaf\x38\xa3\xa9\x71\xf6\x7f\xdf\xfe\x1f\xf6\xd9\x78\xd7\xde\xa8\x26\x08\xdf\xe8\xc2\x99\x5c\xe8\x06\x9a\x6f\xba\x1e\x65\xf2\x41\x44\xae\xcb\x7a\x0e\x59\x24\x84\x9f\xea\x6f\x99\x43\x94\x8a\x20\x5e\xa8\x01\x23\x9d\x2e\x11\x69\xc6\x13\x3a\x4d\x82\x84\x3e\xa3\x17\xcb\x55\x56\x9e\x71\xda\x47\x33\xf6\x49\xfd\xf4\x53\x60\x6b\x33\x9a\x5f\x51\x33\x63\x8e\x01\x6d\x7c\xa5\xf7\x58\x4f\x59\xa7\x7c\x52\x0b\xd5\xf4\x88\xe0\xb1\xa8\x94\xaa\xce\x52\xe7\xf6\x0e\x0b\xbd\x97\x1a\x4c\x86\x5f\xbb\xb8\x23\xf1\x3d\x63\x0f\xe2\x59\x57\x1e\x74\x7f\x0e\x79\xa6\x7e\x3f\x8d\x78\x9c\xde\xcb\xec\x82\x3d\xdd\x07\x1e\xb9\xfb\x06\x51\x61\x40\xdc\xf7\xdd\x42\x36\xcd\xd7\x5b\xe8\xd2\xc9\x7b\xba\xfe\x51\x22\x98\xa7\xf5\x8e\x0b\x63\x03\x51\xff\x92\x89\x2d\x79\xca\xf8\x3c\x13\x7a\x4d\xcf\x83\x24\xcd\xd6\x07\x43\xdb\x1a\x82\xc8\x0b\x57\xbe\x3e\xb3\x8c\x2b\x35\x89\x38\xa4\x19\xab\x05\xa9\xfe\xab\x27\xe5\x41\x3c\xeb\x03\x3b\x7f\xf1\xb7\x33\xdb\xe5\x6f\x67\xb3\x6f\xd1\xb7\xa8\x8c\x29\xa8\x30\xd3\x2a\xd6\xd5\x9c\xf4\x01\xa1\x6f\xaa\x20\xa5\x43\x28\xbf\x23\x68\xe6\x68\x01\x98\xd3\xb8\x38\x7a\x7a\x10\x68\x0d\xfe\xae\x6f\x58\xb3\x6d\xdc\xcd\x61\x8a\x37\x9a\x19\xd3\xd6\x99\x8c\x2d\x83\x34\xa5\x1b\xa1\x64\x22\x3a\xf4\xe4\xb5\x4b\xaf\x1d\xc2\x5d\xef\xb4\xbd\x66\xa9\xc8\x0b\x3a\xaa\xbd\x91\x04\x9e\xde\x09\x5a\x05\x98\xe7\x7d\x77\xf5\x4b\x9f\xcd\x3c\x69\x0e\x51\x2e\x26\x2b\x1e\x45\xf2\x9c\xdd\x07\xd1\xe2\xd0\xee\xd3\xdb\xbe\x98\xd6\x8c\x66\x0c\x42\x7e\x27\xc2\xd6\xc6\x80\xde\xd6\xc7\x18\x84\xc1\x32\xc8\xb4\x29\x6d\xc9\xbf\x07\xcb\xd5\x92\x45\xab\xe5\x9d\x48\x74\xef\x8d\x36\xa2\xc7\x47\x0d\x85\xe6\x81\x7a\x7c\x3c\x1e\x86\x74\x0c\xd3\x45\x1c\xa8\x56\xe8\xea\xa6\x9b\xa7\x9b\xba\xbe\xd5\xdf\xfe\x65\xd7\xfa\xbf\x6c\x81\xd5\x28\x1f\x6f\x5b\xfb\x54\xd7\x26\xd6\x1b\x90\x4e\x22\x8f\x47\xb6\x82\x71\x7e\x96\xa6\x7c\xa9\x0e\x97\x20\x0b\xdc\xa5\xab\x5b\xa9\xc4\x03\x91\x9f\x96\xea\xa7\x75\x5f\xd4\x34\x29\x21\x35\xcb\xb4\xb8\xa6\xfb\xae\x2f\x5b\xdd\x37\xf1\x44\xc7\x0e\x8f\x8a\x26\x56\x75\xd0\x2d\xe5\x2a\xa2\xd7\xe8\x5e\xbe\x5e\xc5\xea\xc7\x74\x0d\x67\xf5\x97\x37\xf6\x74\xd3\x12\x21\xa7\x03\xdd\x3e\x6d\xd7\x8e\x3a\xd9\xe6\x41\x98\x09\x75\xc7\xa9\x7b\x47\x1d\x23\x5e\x59\x86\x2d\x49\x21\xda\x20\xed\x39\x17\xa1\xf2\x1d\xa5\x2b\xb1\x66\x22\x59\x06\x91\x70\xb7\x79\x49\x28\xa2\xb3\xf4\x91\x07\xa1\x92\x1a\x73\xf9\x5c\x75\xd9\xbb\x97\x32\x15\x74\x8a\x65\xd2\x9e\xa1\x66\x2e\xd4\xb0\xf0\x64\xb1\x22\xb1\x9d\x47\xbe\xbd\xa1\x68\x90\x54\xdf\x4c\x7b\xdc\xab\xf3\xd1\xfd\x30\x67\x6e\x49\xe5\xc2\x88\x95\x6f\xd6\x3a\x10\xa4\x4c\x2c\xe3\xec\xb9\x2c\x88\x39\xe9\x9b\x67\x4a\x66\xd9\xd5\xa1\x5d\x97\x41\x30\x5f\xbb\x0a\xf4\xed\xe1\xd6\xe5\x62\xc5\x13\x1e\x65\xc2\x5a\xf9\xf3\x52\xca\x69\xbe\xed\xe9\x46\x59\x91\xdd\xdd\xb5\xdd\x5d\x6c\x4e\xe4\xcb\x24\x0b\xd2\x74\x65\x94\x80\x20\x5a\x84\x22\xdf\x21\x4e\xca\xb0\x0b\xee\xd2\xda\xa2\x95\xd6\xe1\x7e\xf2\xb0\x9b\xd6\x5e\xb2\xa4\x63\xa4\x2b\xe1\x57\x5e\xb7\xa4\xeb\xac\xee\x52\xf5\xe5\x28\x73\x3d\xf0\x0b\xf0\xf9\xab\x51\x53\x52\xb9\x14\x59\xb0\x14\xaa\xef\x73\x91\x24\x54\x6b\x5a\xdd\xcc\x25\x89\x2a\x17\x30\xd4\x8c\x8a\x28\x5d\x25\xc2\x55\x4b\x34\x22\x92\x35\xb4\xeb\x51\xd3\x5d\xa6\x8d\x49\xc2\x10\x4b\x97\x3c\x0c\x45\xc2\xbc\xfb\x55\xf4\x40\x96\x25\xce\xd4\xb1\xc9\x42\x9e\x2c\xec\x44\xd3\x8e\xd7\xaf\xd7\x1a\x59\x2a\x04\x2d\xbc\x58\xa6\x69\xa0\x16\x9c\x19\x36\x5a\x70\xc5\xfd\xa5\x3d\x9a\xfc\x5c\x27\xa3\xdf\x11\xbe\x9e\x0f\x12\xbf\xcd\x05\x6f\xd6\xb0\x29\x7f\x4e\xad\x7e\xe2\xa9\x85\x40\x56\xef\x54\x63\xb2\x29\xe1\x68\xb9\x9f\xa7\x6a\x82\xbd\x55\xa8\x4b\x80\xe7\xcb\xe6\xe0\xd3\x5f\x0d\x52\xf5\xa9\x5f\x55\x03\xfd\x84\xdc\xf5\xea\xf5\x66\x5d\x76\x4b\x45\x66\x17\x6e\x96\xf0\x40\x9d\xdc\x11\x7b\x52\x33\x6c\xbf\x69\x57\x81\xfa\x9a\xdd\x4b\xae\xae\x77\x62\xcb\xab\xab\x13\x53\x38\x64\x53\xb0\xe8\x05\xf2\xca\x97\x5e\x7a\x45\x7b\x45\x9d\xd0\x57\xb4\xda\x2f\x79\x1c\x5c\xf1\x38\xb8\xf4\x64\xa4\x54\xbe\xf4\xea\x0f\xae\x66\xb7\xfb\xc1\x39\x6d\xeb\x8c\x07\x61\x4a\x47\x52\x51\x80\x20\x7f\x8d\x03\x87\x7b\xad\xf3\x3d\x8e\xfb\x47\x3a\x6e\xdd\x95\x94\x52\xe5\xf5\xf5\xb9\x51\xa2\x46\x1c\x87\x81\x3e\x60\xdc\x29\xa9\xfd\x60\x82\x94\xdd\x07\x8b\x7b\x72\x8f\xf1\xe4\x72\x29\x22\x2a\x7a\x5f\x9c\xb9\xd2\x6f\x19\xc3\x80\x1a\xd2\xfc\x4d\xea\xd0\x4e\x44\xd5\x0f\xab\xef\x8e\x6f\x46\x3f\x6e\x1a\x9b\xbb\x9d\xd6\xaf\xc1\x52\xa8\x0b\xcb\x1a\x2c\xd4\xd0\x5e\xe9\xbb\x54\x8b\x7c\x74\x69\xd0\xa1\xa5\xe3\x49\x7d\x6b\x01\xb0\x72\x0a\x0f\xc3\x0b\x96\x88\x05\x4f\x7c\xe2\xa8\xea\x94\x8f\x9e\x19\xf7\xb2\xe0\x31\xc8\x9e\xd5\xcd\x16\x44\xf6\xff\x1d\x7a\xbe\x64\xba\x79\x5f\x84\x27\x23\x7f\x8b\x8d\xaa\xa3\x63\xf3\x1f\x5a\x71\x94\x89\x25\xc7\x36\x3e\x58\x7f\xef\x8e\xae\x56\x3d\x79\xba\x6c\xbf\x91\x99\xb2\x7b\xb1\xd4\x97\xa9\x46\x00\x34\x20\xbe\x7f\x61\xae\xab\x0b\xf3\xdd\xa5\x7c\x24\x89\xac\xa0\x4a\xb2\x2f\xba\xec\xf0\xfa\x72\x3e\x74\xd0\x2a\x88\x45\x63\x7b\x9e\xf9\xd7\x3f\x6b\x31\xab\xb4\xeb\xdc\x53\xfa\x9d\xcc\x93\xa1\xd2\x9e\xcc\x2a\x5c\x37\xa5\xef\x60\x54\xfa\x79\x4d\xa9\xde\xb9\x97\xec\x7a\x41\xb7\x4e\x33\x9d\x38\x2e\xeb\x84\x5a\x36\xcc\xa8\x1e\xb9\xd9\x8d\x6c\x60\xae\x85\xb9\x16\xe6\x5a\x98\x6b\xa7\x66\xae\xad\xe7\x6b\x55\x69\xb2\x3d\x9a\x1b\x1c\xbc\x15\x6b\x4f\x54\x9f\xde\x8a\x47\xb3\xb1\x1f\xe0\x1f\x58\x69\x63\x3e\xda\x88\x7c\x2d\x2a\x0b\x81\x52\xd4\x49\x86\x67\x77\x62\xae\x9d\x01\x9c\x3d\x26\x17\x25\xcc\xe9\x45\x4b\xa7\xe0\x9f\x19\xc9\xe8\x32\x12\x0b\x4e\x0b\xd4\x88\xfb\x45\x3f\x4e\x6d\x9b\x75\x5b\xc3\x48\x89\xc1\x72\x29\xfc\x80\x67\x22\x7c\xce\x29\x7d\x7e\xe5\x06\xe1\x85\x11\xe7\x69\xd0\xd9\x22\xe1\x1e\xed\x9a\x40\xfa\x4e\x20\xc8\x2f\x6d\x72\x81\xb0\xab\x74\x95\xaa\x46\x16\xa7\x8b\xab\x27\x6d\x87\xcc\x8f\xcc\xf5\x19\x68\x5f\x31\xd3\xed\xd4\xf1\x1f\x15\x6d\x6c\x30\xcd\xd4\xe6\x5b\x6a\x72\x95\x8a\xb4\x47\x49\x1a\xca\xf2\x3f\x04\xaf\xd4\x1b\x97\xed\x88\xe5\x68\xcb\x1f\xb0\x05\xb0\x05\xb0\x05\xb0\x05\xb0\xa5\x33\xd8\x52\xf3\x2e\xd8\x00\x2e\xc7\xbb\x16\xdf\x8b\x38\x11\x4a\x28\xf1\x7f\x62\x71\x28\x78\x2a\xdc\x11\x74\x9b\xc8\x98\x2f\x48\x3a\xba\x95\x61\xe0\x3d\x97\x5c\xfb\xec\xa2\xf3\xdd\x0b\xd4\xb2\x7b\x3b\xfb\xd3\x8c\x7d\xd1\xe7\x99\x16\x5d\x62\x11\xa9\xcd\x92\xdf\xa9\x82\xc9\x24\xbe\xe7\x91\x75\x35\x4c\x56\xe2\x6a\xce\x43\xab\x2b\x7f\x3b\xd3\x1f\x7f\x3b\x63\xf3\x20\xe2\x61\xf0\x6f\x7b\x91\xdc\x09\xc6\x7d\xb2\xc0\xcb\x2b\x6d\x9d\xf4\x73\x35\x4c\xbf\xfe\x3c\xcd\x1f\xd2\xfa\xe9\x8c\xdd\x04\x74\x38\x16\x9a\x2e\x93\xcd\xbe\xe5\xbc\x25\xd3\xea\x31\xe9\x28\x32\xbb\x6f\x32\xa1\xba\x07\xef\x6d\xdf\xb7\x8a\x3c\x8d\xa2\x53\x0f\x52\xcc\xa8\xeb\x6a\xc3\xde\xcb\x27\xb6\xe0\xc9\x1d\x5f\x94\x8c\x93\x4e\xa9\x11\xc9\x5c\x26\x4b\x35\x27\x95\xe3\xf5\x69\xad\x47\xdb\x87\x8b\x84\x5e\x2b\xb1\xc6\x7a\x6c\x03\x25\x4d\x7a\x81\x9f\xab\xc2\x24\x2b\xe8\x20\x62\x3b\xc7\xea\xb2\x36\x37\xa9\x95\x06\x66\x85\xc9\xb4\xf7\x88\x03\x1e\xce\x6d\xb6\xfc\x63\x33\x76\xed\x79\x22\xd6\x91\x4f\x45\xcd\xee\x5c\xf7\xe1\x9c\x5d\x9a\x05\x58\x5e\xa0\xe9\xcf\xec\xfc\x17\xee\x3d\x2c\x12\xb9\x8a\x7c\xf5\x2d\x72\x41\xa5\x2f\xad\x0d\x9c\x16\x21\x8d\x7c\x5c\x7e\x89\xed\xc1\x9d\x7b\xd3\xcf\xec\xfc\x57\x99\x88\xc2\x6b\x99\xc7\x53\x8f\xfb\xaa\xf7\x66\x7c\xb4\x87\x32\xbd\x2f\xd5\xaa\xe7\xc6\x0b\xe7\xee\x1d\x4d\x16\x64\xbc\xbe\xdc\xfb\x91\x38\x27\x4c\x46\xeb\xcd\xc3\x2e\x3a\xda\xd7\x2c\x80\x93\x76\x36\xbf\x9b\xac\xf4\x78\xb6\x8d\x3e\xa9\x69\xbd\xc1\xda\x41\x4e\x5f\x2a\xff\x54\x92\x3a\x04\x89\x1e\x88\xe9\x4c\x80\x7e\x3d\x3e\x37\xa9\xc8\x2a\x7d\x17\xe7\x72\xd2\xf1\xa2\xac\x1a\x06\x58\xf5\x1c\x79\xd9\x28\xe8\xb2\x09\xc4\x46\x90\xd8\xe9\x04\x89\xd5\xbb\x45\xf6\x05\x8a\x1d\x4f\xdd\x82\x0f\x02\x7c\x10\xe0\x83\x00\x1f\x04\xf8\x20\x54\x1d\xbe\x80\xdb\x23\x1a\x11\xf0\x4e\xf0\x4e\xf0\x4e\xf0\x4e\xf0\x4e\xf0\xce\x69\xf1\x4e\x20\x08\x20\x08\x20\x08\x20\x88\xce\x11\xc4\x01\x98\x7e\xa0\x61\x5c\xf5\x86\x70\x33\x94\x6b\x52\xe9\xb7\xb7\x3e\x80\x04\x7c\x64\xc4\x47\xee\xbd\x8a\xaf\x0d\x85\x0a\x35\x48\xbb\x37\x96\x50\xfc\x57\x6b\x33\xd5\x45\xf5\x49\x52\x53\x18\x3f\x84\x76\xe9\x67\xda\xe3\x5d\x03\xcd\x74\xbe\xd1\xb5\x7a\x27\x00\xe2\x88\x26\x10\x47\x84\xac\xe7\xc8\x7a\x5e\xd1\x98\xe1\x8b\x2a\xe3\xc8\x80\xde\xbc\xd5\x3f\xec\x6d\xb5\xf6\x8c\x1d\x54\xb3\xa7\x24\x13\x92\x08\x32\x50\x99\xf0\x15\xab\x93\x1d\xc3\x94\x6a\x3d\x52\x92\x8c\x83\x24\xab\x62\x62\x0c\xa4\xc3\x80\x28\x35\x05\x51\x0a\x01\xc8\x27\x14\x80\x8c\x48\x2b\x44\x5a\x21\xd2\x0a\x91\x56\xd0\x02\xb7\xed\xa2\x81\x69\x81\xd0\xa7\x58\xbf\xfa\x94\x51\x3d\x06\xaa\x51\x39\xcb\x73\xeb\xb1\x17\x89\xe0\xfe\x9a\x68\x75\x80\xa2\xa4\x9e\xee\x2c\xe0\xa2\x20\x70\x88\xef\xe4\x46\x75\xa7\xfe\xc5\xbd\x6c\xc6\xd8\x8d\xfa\xaf\xfd\xfb\x92\x07\x64\x91\x4b\x99\x17\xae\xd2\x4c\x24\xf9\x35\x62\x0a\x07\x87\xc1\x83\x60\xe7\xae\xde\xd6\xb9\x92\x16\xad\x84\x33\x63\xb7\x21\x8f\x22\x53\xf1\x99\x64\x10\x1e\x6a\xb1\xe7\xed\x8f\x4d\xce\x65\x6a\x63\x4f\xd2\x81\x1b\x34\x27\x5c\xdf\xd9\xe1\x53\x3d\x65\x37\x7a\xc4\xd4\x8d\x10\xa7\x76\x74\x8c\xa7\x11\x55\x61\xf6\x78\x54\x90\x93\x9f\x3b\x1e\x28\xd5\x98\xe9\x02\xdd\x89\x5f\x5b\x53\x3a\xff\x17\x62\xb0\xe6\xb4\x97\x20\x56\xc2\x25\xc6\xec\xb1\xbb\x15\x81\x2d\x31\x7d\x5f\x0d\x54\xe9\xbf\xa5\x4f\x76\x90\xbf\x8e\xd3\x34\x8f\x17\x1c\x93\xfb\x45\xad\x0b\x7c\xfd\x6c\xba\xa4\x67\xff\xb8\xfb\x98\x5a\x8a\x64\x21\x6a\x7d\x33\xcd\x12\x9e\x89\x45\xe0\x5d\xd6\x7f\x86\xaa\xe8\x9b\x6f\xd2\x81\x58\x47\xc0\x88\x79\x92\x05\x14\x1d\xa5\x5d\x85\x9a\x0b\x1b\xf4\xc3\x7d\x1b\x65\xbb\xc2\xdd\x3b\x4c\xb6\xb7\x65\x9f\x1d\x06\x53\xed\xc4\x4d\xb5\xa7\x43\xbd\xd7\x22\x0d\xec\xe6\xd2\xd1\x30\xea\xb4\xc9\x23\xac\x5f\x6f\x39\x89\xde\x90\xa1\x4a\x87\xc0\xf2\x90\x9e\x8c\x64\x74\xa9\x9f\xa6\x6f\x90\xad\x38\x65\xaf\xff\x9a\xca\xe8\x56\x07\x1a\x7f\x54\x67\x9e\xf9\xf7\x17\x7b\x12\xe6\x7f\x7c\x33\x24\x1c\x5f\x7f\xdd\xfc\x2a\x13\x8f\x8c\xe9\x0b\x49\x93\x2f\xd9\xb7\xb3\xb9\xfa\xdb\xb7\x33\x76\x5d\x1a\x4d\xf2\x63\xd6\x96\x6f\x12\xfa\xcd\x46\xbd\xe4\x1e\x4d\x00\x85\xaa\x86\x81\x67\x6c\x79\xa4\x23\xc8\x27\x33\xb7\x3a\x94\x33\x16\x32\x0e\xc5\x8c\xe9\xdf\xa4\x08\x75\xbb\xa6\xc8\x9b\xb8\x72\x22\xdc\xcf\x37\x19\x5e\xf5\x43\x50\x15\xf4\x07\x50\x15\xfa\x44\xef\x6b\x1e\xb8\x03\x55\x16\x56\xad\x5b\x8a\xe2\x90\x7b\x2f\x90\xdf\xcc\x0b\xa6\x2a\xc1\xc1\x61\x11\xa2\xdb\x09\x89\x6e\x03\x92\x90\x70\x91\xbb\x4f\xe0\xb0\x58\xd9\xea\x49\x89\x1f\xab\xc1\x5a\x2a\x5f\xb1\x03\x1c\xff\xae\x52\x9d\xf2\xad\xe0\xff\xd7\x0d\xdd\xd2\xbf\x63\xaf\xa5\x96\x39\x97\xc9\x5b\x87\x83\x07\x5b\xb8\xe2\x01\xc0\x06\xc0\x06\xc0\x86\x1e\x61\x43\x0b\x67\xff\x0e\xec\x50\x71\xf8\x8f\x52\x75\x05\x7c\x80\x06\x7b\x7a\x1a\x2c\xe0\x43\x9b\xeb\x06\xf0\x01\x36\x0b\xa8\x0e\x80\x0f\xf4\xc5\xce\xe0\x43\x2b\xba\xfc\x0e\x0c\x31\x15\x89\x0e\x30\x02\xa2\xdc\x09\x89\x72\x03\x92\x98\x70\xb1\xbb\x4f\x00\x23\x2a\x5b\x3d\x29\x71\x64\x6c\x30\x42\xfa\xdd\x12\x87\x3d\xb5\x4c\xa4\xbf\x43\x32\x29\x94\x2f\x91\xfe\xaf\x32\xb9\x0e\x43\x17\xb1\x32\x08\xc4\xb0\xf5\x81\x53\x4d\x50\x27\x7d\xe4\xa4\xab\xf8\xda\xcb\x77\xbe\xf4\x8f\x87\x2d\x50\xd8\x67\xc2\x85\x7d\xf6\x33\x98\x7d\x45\x7d\x76\xda\x79\x5a\xe0\x4b\x28\xe5\x83\x52\x3e\x28\xe5\x83\x52\x3e\x53\x2b\xe5\xb3\xff\xe4\xad\x2c\xe3\xd3\x31\xcd\x3f\x5a\xf1\x9e\xfd\xdd\xdf\x5e\xb8\x67\xc8\x63\x70\x48\xb9\x9e\xfd\x63\xb0\xbd\x54\x4f\xc7\x63\x80\x02\x3d\x28\xd0\x83\x02\x3d\x28\xd0\x83\x02\x3d\x9d\x15\xe8\xa9\x71\xfa\x6f\x14\xe7\xd9\x99\x20\xef\x84\x9c\xf9\xea\xf5\x66\xc2\x05\x86\xf6\x0f\xf7\xae\xe2\x42\xc7\x1d\x77\x94\x14\xea\x64\x46\x37\xcb\x09\x75\x3c\xad\xbd\x16\x11\xda\x3f\x3c\x3b\x0a\x08\x75\x7d\x6c\x0e\xb5\x6c\xd0\xfe\x41\xab\xa0\x11\x8d\xed\x79\xe6\x5f\xff\xdc\x46\x96\x32\xb1\x8c\xc9\x22\xd1\x2f\x61\xfa\x6a\x9a\x51\x97\x34\xd9\xef\x83\x38\xad\x8f\xfc\x20\x89\x93\x9d\x2e\x90\xa7\x8a\xaf\xb5\x41\x9e\x2a\xf6\x0f\x08\x14\x08\x14\x08\x14\x08\x14\x08\x14\x08\x14\x08\x14\x08\x14\x08\x14\x08\x14\x08\x14\x08\x14\x08\x14\x08\x14\x08\x14\x08\xd4\x01\xc7\x3e\x08\x14\x08\x14\x08\xd4\x38\x66\x14\x04\xaa\x3c\x3c\x20\x50\x43\x26\x50\x89\x70\xcc\x43\xc9\x1b\x89\x54\xb7\x7d\x9f\x2c\xea\x73\xde\xa0\x77\xae\x41\xb5\xa8\x54\xe5\x93\xe0\x53\xeb\xb3\x31\x3c\x3e\x55\x39\x71\x20\x55\x15\x5f\x7b\x31\xa9\xda\xb7\xbb\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\x0e\x38\xf6\xc1\xac\xc0\xac\xc0\xac\xc6\x31\xa3\x60\x56\xe5\xe1\x01\xb3\x1a\x36\xb3\xd2\xed\xfc\x9f\x95\xcc\x78\xbf\xac\x4a\x37\xe4\x3f\x55\x43\x6a\x32\xaa\xc2\x13\x60\x53\xeb\xa3\x3f\x44\x36\x55\x98\x30\x30\xa9\x8a\xaf\xb5\xc0\xa4\xaa\x77\x11\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\xd4\x01\xc7\x3e\x58\x14\x58\x14\x58\xd4\x38\x66\x14\x2c\xaa\x3c\x3c\x60\x51\x43\x66\x51\xa9\xf0\x12\x91\xf5\x09\xa1\xbe\x50\x0b\x6a\xd1\x27\xfd\x55\x60\xa7\xf5\xf1\x1e\x1e\x76\xd2\x33\x05\xde\x54\xf1\xb5\x17\xf3\xa6\x8d\x0d\x03\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x74\xc0\xb1\x0f\xd0\x04\xd0\x04\xd0\x34\x8e\x19\x05\x68\x2a\x0f\x0f\x40\xd3\xb0\x41\x53\xf2\x18\x78\x82\x7b\x9e\x12\x99\xfb\x05\x4e\xd4\x92\x6b\xdd\x92\x9a\xe0\xa9\xf8\x08\x00\xd4\xfa\xf8\x0f\x11\x40\x15\x67\x0c\x20\xaa\xe2\x6b\x2d\x80\xa8\x2d\x1b\x09\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\x0a\x40\xea\x80\x63\x1f\x40\x0a\x40\x0a\x40\x6a\x1c\x33\x0a\x20\x55\x1e\x1e\x00\xa9\x11\x00\xa9\x01\x90\xa8\x43\x10\x14\xd8\xd3\xfa\x88\x0f\x96\x3d\x01\x3a\x55\x7c\xad\x2d\xe8\x04\xda\x04\xda\x04\xda\x04\xda\x04\xda\x04\xda\x04\xda\x04\xda\xd4\xd2\x69\x0b\xda\x04\xda\x04\xda\x04\xda\x04\xda\x04\xda\x04\xda\x04\xda\x04\xda\x04\xda\x04\xda\x34\xc8\x19\x05\x6d\x2a\x0f\x0f\x68\xd3\x90\x69\x13\xfd\xd0\x95\x36\x0c\x2d\x79\xdc\x2d\x75\x32\x02\x5e\xe4\x07\x8f\x81\xbf\xe2\x61\x71\x5a\xb8\x53\xe2\xde\x51\x63\x3e\xf2\x78\xc6\x7c\x11\x27\xc2\x53\xf7\xf5\x4f\x4e\xca\x3e\xa7\xb7\x9c\xe7\x26\xbb\x92\x0d\xc6\x71\x2a\x16\x44\x69\x26\x78\xe9\x3a\x5c\xa7\x58\xf4\x26\x8d\xb1\xdc\x8f\xfe\x16\xa4\x08\xa4\xda\x98\xc8\xc1\xc0\xac\x25\xf7\xee\x83\x48\x24\xcf\xb3\xf8\x61\xa1\xfe\x90\xce\x94\x1e\x3a\x7b\x7c\x3b\xa3\xdd\x7e\xa3\x14\xba\x53\xa4\x5b\x34\x79\xdd\x22\x2e\xb7\x47\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x5a\x3a\x6d\x01\xb9\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x00\xb9\x06\x39\xa3\x80\x5c\xe5\xe1\x01\xe4\x1a\x3e\xe4\x12\x91\x1f\xcb\xa0\xeb\x1c\x7f\xf5\x18\xd7\x8d\x6d\xcb\x31\x19\x97\xfb\x51\x30\xae\xaa\x89\x04\xe3\x02\xe3\x3a\x73\x7b\x04\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x0b\x8c\xab\xa5\xd3\x16\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x0b\x8c\x6b\x90\x33\x0a\xc6\x55\x1e\x1e\x30\xae\x11\x30\x2e\x32\x14\x0f\x01\x70\xa9\x86\x1c\x15\x6e\xa9\x1f\x04\xd8\xaa\x9a\x40\x80\x2d\x80\xad\x33\x3d\xb6\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x03\x00\x3a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\xe5\xde\x00\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\x9d\x2e\xd4\xa2\xc5\x91\xd0\x10\x0d\x80\x6c\xfd\xa6\x5a\xf3\x59\x7d\x70\x4c\xbc\x95\xff\x2a\x18\x57\xd5\x54\x82\x71\x81\x71\x9d\xe5\x9b\x04\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\xab\xa5\xd3\x16\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x6b\x90\x33\x0a\xd0\x55\x1e\x1e\x80\xae\xe1\x83\xae\x28\x07\x3a\xfd\x73\x2e\x47\x97\x8e\x89\xb9\xdc\x8f\xfe\xb6\x06\x0a\x40\xb5\x40\xb5\xd8\x69\x52\x2d\xb7\x27\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x5a\x3a\x6d\x01\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x06\x39\xa3\x80\x5a\xe5\xe1\x01\xd4\x1a\x13\xd4\xba\xfa\x5f\xf7\xef\xff\x77\xa5\xed\x45\x4b\x1e\x0f\x81\x75\xbd\xa3\xc6\x7c\xe4\x71\x2f\xac\xcb\x77\x3f\x0f\xea\x05\xea\x05\xea\x45\x1b\xc5\xed\x09\x50\x2f\x50\x2f\x50\x2f\x50\x2f\x50\x2f\x50\x2f\x50\x2f\x50\xaf\x96\x4e\x5b\x50\x2f\x50\x2f\x50\x2f\x50\x2f\x50\x2f\x50\x2f\x50\xaf\x93\xa3\x5e\xa6\xd7\xaa\x01\x34\x95\x7c\x95\xdd\xb3\xd4\x93\xb1\xb8\x60\xe9\xca\xbb\x57\x33\x4f\xfa\x8a\xe0\x4b\x6d\xbf\x8d\x13\x49\xa3\x5c\xd5\xb5\x98\x67\xf7\xd5\x3d\x8b\xaa\x9d\x77\xd5\xfa\x53\x92\xbe\x69\xfd\x11\xef\x3b\xe0\x3e\xe0\x3e\xe0\xbe\x71\xcc\x28\x70\x5f\x79\x78\x80\xfb\x26\x80\xfb\xf4\x9f\xff\xdf\x11\xa8\x5f\x11\xf5\x45\x56\xce\x91\x73\xf6\x10\x44\x7e\xcb\xc8\xef\x22\xd7\x6b\x48\x77\x33\x32\xb0\x52\x8d\x72\x85\xed\xbc\xa4\xe8\x17\xde\xdd\x1c\x18\x02\x16\x02\x16\x8e\x02\x16\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\x02\x14\xd6\x3d\xfd\x8f\x0e\x0a\x89\x10\x9a\x11\xd8\x62\x6a\xa8\xc3\x00\x87\x82\xff\xc0\x3d\xc1\x3d\xc1\x3d\xc1\x3d\x07\x3d\xa3\xe0\x9e\xe5\xe1\x01\xf7\x1c\x2d\xf7\x14\x91\x1f\xcb\x20\xca\x86\x10\xe5\x78\x63\xdb\xd2\x4f\x94\xa3\xfb\x79\x44\x39\x02\x5c\x8e\x06\x5c\x76\x1b\xe5\xe8\xf6\x04\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x65\x4b\xa7\x2d\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\xe5\xc9\xc1\x4b\xd0\x3e\xd0\x3e\xd0\x3e\xd0\xbe\x41\xcf\x28\x68\x5f\x79\x78\x40\xfb\xc6\x4f\xfb\x06\x12\xe4\xd8\x2e\xf1\x3b\x72\x90\x63\x15\x1b\x01\x2b\x04\x2b\x5c\x7b\xeb\x80\x58\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x61\xdd\xd3\xbf\xd7\x20\xc7\x2d\xa6\x06\x04\x39\x56\xf7\x19\xd8\x13\xd8\x13\xd8\x13\xd8\x13\xd8\x13\xd8\xf3\x64\xb1\x27\x71\x80\x21\x44\x38\xaa\x86\xf4\x14\xdd\xa8\x7e\x1a\x91\x8d\xa0\x95\xa3\xa1\x95\x1d\x47\x36\xd2\xd8\x82\x56\x82\x56\x82\x56\x82\x56\x82\x56\x82\x56\x82\x56\x82\x56\x0e\x80\xd4\x81\x56\x82\x56\x82\x56\x82\x56\x82\x56\x82\x56\x82\x56\x8e\x91\x56\x02\xef\x01\xef\x01\xef\x01\xef\x0d\x7a\x46\x81\xf7\xca\xc3\x03\xbc\x37\x72\xbc\x37\x94\x90\xc6\xd6\x10\xdf\xb1\xc3\x19\xd7\x80\x08\xe0\x20\xe0\xe0\xda\x5b\x07\x04\x07\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x01\x06\x07\x09\x06\x4b\x61\x8c\x9b\x66\x06\x84\x30\x56\xf7\x19\x8c\x13\x8c\x13\x8c\x13\x8c\x13\x8c\x13\x8c\xf3\x54\x19\x27\xad\x99\x84\x46\x6e\x00\x71\x8c\xbf\xa9\xd6\x7c\x56\x1f\xf4\x13\xcc\x98\xff\x3e\x22\x1a\x01\x2d\x47\x03\x2d\xbb\x8d\x68\xcc\x37\x05\xe8\x25\xe8\x25\xe8\x25\xe8\x25\xe8\x25\xe8\x25\xe8\x25\xe8\x65\x4b\xa7\x2d\xe8\x25\xe8\x25\xe8\x25\xe8\x25\xe8\x25\xe8\x25\xe8\xe5\xc9\xd1\x4b\x20\x3f\x20\x3f\x20\x3f\x20\xbf\x41\xcf\x28\x90\x5f\x79\x78\x80\xfc\xa6\x80\xfc\x06\x12\xdb\xd8\x32\xf6\x3b\x72\x80\x63\x25\x1f\x01\x30\x04\x30\x5c\x7b\xeb\x80\x80\x21\x60\x21\x60\x21\x60\x21\x03\x2c\x04\x2c\x04\x2c\x04\x2c\x04\x2c\x04\x2c\x04\x2c\x04\x2c\x04\x2c\x04\x2c\x04\x2c\x04\x2c\x04\x2c\xac\x7b\xfa\xf7\x1a\xea\xb8\xcd\xd6\x80\x78\xc7\xea\x3e\x03\x7e\x02\x7e\x02\x7e\x02\x7e\x02\x7e\x02\x7e\x9e\x2a\xfc\x8c\x55\xe3\x49\x26\x7c\x94\xe1\x6a\x29\xbc\x90\x07\xcb\x21\x84\x3e\xde\xba\x86\xfd\x4e\x0d\x7b\xa7\x1a\xd6\x4f\x14\x64\x65\x53\x10\x10\x09\xbe\x39\x1a\xbe\xd9\x6d\x40\x64\xe5\xfe\x00\xee\x04\xee\x04\xee\x04\xee\x04\xee\x04\xee\x04\xee\x04\xee\x6c\xe9\xb4\x05\xee\x04\xee\x04\xee\x04\xee\x04\xee\x04\xee\x04\xee\x3c\x39\xdc\x09\x3c\x08\x3c\x08\x3c\x08\x3c\x38\xe8\x19\x05\x1e\x2c\x0f\x0f\xf0\xe0\xc4\xf0\xe0\x40\xc2\x24\xbb\x43\x84\x47\x8e\x98\xdc\x07\x50\x00\x17\x01\x17\xd7\xde\x3a\x20\xb8\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x08\xb0\x38\x0a\xb0\x58\x8c\xa3\xac\x61\x76\x40\x48\x65\x75\x9f\xc1\x4c\xc1\x4c\xc1\x4c\xc1\x4c\xc1\x4c\xc1\x4c\x4f\x96\x99\x4a\x7f\x10\x01\x94\xd2\xef\x29\x5c\x52\xfa\x08\x8e\x04\xbf\x1c\x0d\xbf\xec\x38\x38\x52\xfa\x20\x96\x20\x96\x20\x96\x20\x96\x20\x96\x20\x96\x20\x96\x20\x96\x2d\x9d\xb6\x20\x96\x20\x96\x20\x96\x20\x96\x20\x96\x20\x96\x20\x96\x27\x47\x2c\x81\xf5\x80\xf5\x80\xf5\x80\xf5\x06\x3d\xa3\xc0\x7a\xe5\xe1\x01\xd6\x1b\x35\xd6\x1b\x4a\xe0\x63\x4b\x68\xef\xd8\x61\x8e\x25\x14\x02\x28\x08\x28\xb8\xf6\xd6\x01\x41\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\xc1\x01\x02\xc1\x52\x08\xe3\xba\x91\x01\x01\x8b\xd5\x7d\x06\xd9\x04\xd9\x04\xd9\x04\xd9\x04\xd9\x04\xd9\x3c\x61\xb2\x99\x89\x65\x4c\x06\xa7\x61\x04\x2e\x7e\x35\xcd\xe9\x2d\x80\xd1\x36\x00\x81\x8c\x60\x96\xa3\x61\x96\x9d\x07\x32\xda\x5d\x01\x7e\x09\x7e\x09\x7e\x09\x7e\x09\x7e\x09\x7e\x09\x7e\x09\x7e\xd9\xd2\x69\x0b\x7e\x09\x7e\x09\x7e\x09\x7e\x09\x7e\x09\x7e\x09\x7e\x79\x72\xfc\x12\xd8\x0f\xd8\x0f\xd8\x0f\xd8\x6f\xd0\x33\x0a\xec\x57\x1e\x1e\x60\xbf\x49\x60\xbf\xe1\x04\x36\xb6\x8a\xfe\x8e\x1f\xe0\x58\x81\x48\x00\x0d\x01\x0d\xd7\xde\x3a\x20\x68\x08\x60\x08\x60\x08\x60\xa8\x3f\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x1c\x24\x30\x5c\x0b\x78\xac\x36\x36\x20\xf0\xb1\xba\xcf\x20\xa0\x20\xa0\x20\xa0\x20\xa0\x20\xa0\x20\xa0\xa7\x4a\x40\x13\xe1\x40\x97\x12\x2b\x13\xa9\x84\xba\x21\x84\x40\x7e\xce\x1b\xf6\xce\x35\xac\x9f\x60\xc8\xca\xa6\x20\x2c\x12\x84\x73\x34\x84\xb3\xdb\xb0\xc8\xca\xfd\x01\xde\x09\xde\x09\xde\x09\xde\x09\xde\x09\xde\x09\xde\x09\xde\xd9\xd2\x69\x0b\xde\x09\xde\x09\xde\x09\xde\x09\xde\x09\xde\x09\xde\x79\x72\xbc\x13\x78\x10\x78\x10\x78\x10\x78\x70\xd0\x33\x0a\x3c\x58\x1e\x1e\xe0\xc1\x89\xe1\xc1\x81\x84\x4a\x76\x87\x08\x8f\x1c\x34\xb9\x0f\xa0\x00\x2e\x02\x2e\xae\xbd\x75\x40\x70\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x71\x14\x60\xb1\x18\x48\x59\xc3\xec\x80\x90\xca\xea\x3e\x83\x99\x82\x99\x82\x99\x82\x99\x82\x99\x82\x99\x9e\x2e\x33\xd5\x9d\xf8\x9f\x95\xcc\xf8\x30\x42\x29\x75\x83\xfe\x53\x35\xa8\xaf\x10\xca\x42\x13\x10\x3a\x09\xba\x39\x1a\xba\xd9\x75\xe8\x64\x61\x5f\x80\x6c\x82\x6c\x82\x6c\x82\x6c\x82\x6c\x82\x6c\x82\x6c\x82\x6c\xb6\x74\xda\x82\x6c\x82\x6c\x82\x6c\x82\x6c\x82\x6c\x82\x6c\x82\x6c\x9e\x1c\xd9\x04\xfe\x03\xfe\x03\xfe\x03\xfe\x1b\xf4\x8c\x02\xff\x95\x87\x07\xf8\x6f\x22\xf8\x6f\x30\xa1\x92\x6d\x23\xc0\xa3\x87\x48\x56\x83\x12\xc0\x43\xc0\xc3\xb5\xb7\x0e\x08\x1e\x02\x1c\x02\x1c\x02\x1c\xda\x0f\x01\x0e\x01\x0e\x01\x0e\x01\x0e\x01\x0e\x01\x0e\x01\x0e\x01\x0e\x01\x0e\x01\x0e\x01\x0e\x01\x0e\x01\x0e\x07\x09\x0e\xcb\x21\x91\x5b\xcd\x0d\x08\x85\xac\xee\x33\x58\x28\x58\x28\x58\x28\x58\x28\x58\x28\x58\xe8\xa9\xb2\xd0\x54\x78\x89\xc8\x86\x10\x03\xf9\x85\x5a\xd2\x4f\xf0\xa3\xfe\x6d\x44\x3d\x02\x5c\x8e\x06\x5c\x76\x1b\xf5\xa8\x37\x04\xa8\x25\xa8\x25\xa8\x25\xa8\x25\xa8\x25\xa8\x25\xa8\x25\xa8\x65\x4b\xa7\x2d\xa8\x25\xa8\x25\xa8\x25\xa8\x25\xa8\x25\xa8\x25\xa8\xe5\xc9\x51\x4b\x20\x3e\x20\x3e\x20\x3e\x20\xbe\x41\xcf\x28\x10\x5f\x79\x78\x80\xf8\xc6\x8e\xf8\x06\x12\xe7\xd8\x22\xe6\x3b\x72\x80\xe3\x06\x13\x01\x20\x04\x20\x5c\x7b\xeb\x80\x00\x21\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\x20\xe0\xe0\x30\xe1\x60\x31\xa4\xb1\xca\xce\x80\x58\xc6\xea\x3e\x03\x74\x02\x74\x02\x74\x02\x74\x02\x74\x02\x74\x9e\x2e\xe8\x4c\x1e\x03\x4f\x70\xcf\x53\x4a\xd1\x30\x62\x1a\xa9\x45\xd7\xba\x45\x7d\xc5\x36\x16\xdb\x80\x18\x47\x20\xcc\xd1\x20\xcc\xae\x63\x1c\x8b\x1b\x03\x38\x13\x38\x13\x38\x13\x38\x13\x38\x13\x38\x13\x38\x13\x38\xb3\xa5\xd3\x16\x38\x13\x38\x13\x38\x13\x38\x13\x38\x13\x38\x13\x38\xf3\xe4\x70\x26\x10\x20\x10\x20\x10\x20\x10\xe0\xa0\x67\x14\x08\xb0\x3c\x3c\x40\x80\x53\x41\x80\x83\x89\x79\x6c\x1d\x03\x1e\x3d\xf6\x71\x0b\x2b\x01\x40\x04\x40\x5c\x7b\xeb\x80\x00\x22\xe0\x21\xe0\x21\xe0\xa1\xfb\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x10\xf0\x70\x90\xf0\xb0\x1c\x0b\xb9\xdd\xde\x80\x98\xc8\xea\x3e\x03\x88\x02\x88\x02\x88\x02\x88\x02\x88\x02\x88\x9e\x38\x10\x1d\x50\x30\x64\xaf\x51\x90\x08\x7f\x04\xbd\x1c\x0d\xbd\x3c\x4a\xf8\x23\xd0\x25\xd0\x25\xd0\x25\xd0\x25\xd0\x25\xd0\x25\xd0\x25\xd0\x65\x4b\xa7\x2d\xd0\x25\xd0\x25\xd0\x25\xd0\x25\xd0\x25\xd0\x25\xd0\xe5\xc9\xa1\x4b\x60\x3e\x60\x3e\x60\x3e\x60\xbe\x41\xcf\x28\x30\x5f\x79\x78\x80\xf9\x46\x8f\xf9\x86\x15\xf0\x38\xe2\x48\x47\x40\x42\x40\xc2\x51\x40\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\x42\x00\xc2\x81\x02\xc2\x8a\xd8\x46\x04\x35\x82\x76\x82\x76\x0e\x84\x8d\x81\x76\x82\x76\x82\x76\x82\x76\xae\x0d\x5a\xcf\xb4\xb3\x77\xb0\xe9\x38\xe1\x08\xd1\x26\x90\x26\x90\xe6\x89\x23\xcd\xaa\xbd\x00\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x09\xa8\x79\xc0\xb1\x5f\x84\x9a\x5b\x4c\x0d\x63\xc2\x9a\xa0\x7b\xa0\x7b\xa0\x7b\xe3\x98\x51\xd0\xbd\xf2\xf0\x80\xee\x8d\x80\xee\x49\x7f\x10\x89\x49\xff\x2e\xfd\xe3\x66\x25\x95\x3e\x12\x91\x32\x00\xb9\xd1\x00\xb9\x6e\x13\x91\xaa\xed\x00\x1e\x07\x1e\x07\x1e\x07\x1e\x07\x1e\x07\x1e\x07\x1e\x07\x1e\xd7\xd2\x69\x0b\x1e\x07\x1e\x07\x1e\x07\x1e\x07\x1e\x07\x1e\x07\x1e\x77\x72\x3c\x0e\x00\x0b\x00\x0b\x00\x6b\x1c\x33\x0a\x80\x55\x1e\x1e\x00\xac\x91\x00\xac\xa1\x44\xa6\xb5\x05\xb1\x8e\x13\x94\x56\xb6\xf9\x03\x7f\x01\x7f\xad\xbd\x75\x40\xf8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x0b\xe8\x6b\x88\xe8\xab\x14\x8a\xb6\x61\x65\x40\x14\x1a\x20\x5e\xff\xc8\x07\x10\x0f\x10\x0f\x10\x0f\x10\x6f\x6d\xd0\x8e\x0c\xf1\x62\xd5\x4a\x92\x7e\x1e\x65\xb8\x5a\x0a\x2f\xe4\xc1\x72\x08\x61\x69\xb7\xae\x61\xbf\x53\xc3\xde\xa9\x86\x1d\x33\x4e\xad\xb2\x01\xbf\x05\x69\xf6\xab\x4c\xae\xc3\xd0\x45\xb8\xa7\x20\x79\x20\x79\xa3\x20\x79\xdd\x06\xb2\x55\xee\x17\xe0\x3d\xe0\x3d\xe0\x3d\xe0\x3d\xe0\x3d\xe0\x3d\xe0\x3d\xe0\xbd\x96\x4e\x5b\xe0\x3d\xe0\x3d\xe0\x3d\xe0\x3d\xe0\x3d\xe0\x3d\xe0\xbd\x93\xc3\x7b\x80\x62\x80\x62\x80\x62\xe3\x98\x51\x40\xb1\xf2\xf0\x00\x8a\x8d\x0f\x8a\x0d\x91\x87\xf5\x89\xc2\x90\xbe\x11\xd4\x0b\xd4\xab\x92\x7a\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\xb5\x74\xda\x02\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x0d\x72\x46\x01\xbc\xca\xc3\x03\xe0\x35\x42\xe0\x35\x90\xb4\x8e\x9d\x40\xaf\xa3\xa4\x78\xdc\xc1\x05\x80\xcb\x80\xcb\xd6\xde\x3a\x20\x5c\x06\x54\x06\x54\x06\x54\x56\xf8\x10\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x6c\x90\xa8\xac\x98\xfa\x71\xb7\xc5\x01\x69\x20\x01\x00\xfb\xc7\x45\x00\x80\x00\x80\x00\x80\x00\x80\x6b\x83\x76\x6c\x00\x28\xfd\x41\x04\xb9\x49\xff\xa8\x71\x6d\xd2\x47\x42\xc7\xaa\xc9\x03\xab\x1b\x05\xab\xeb\x38\xb4\x4d\xfa\x40\x74\x40\x74\x40\x74\x40\x74\x40\x74\x40\x74\x40\x74\x40\x74\x2d\x9d\xb6\x40\x74\x40\x74\x40\x74\x40\x74\x40\x74\x40\x74\x40\x74\x27\x87\xe8\x00\xb3\x00\xb3\x00\xb3\xc6\x31\xa3\x80\x59\xe5\xe1\x01\xcc\x1a\x05\xcc\xca\xc4\x32\x26\xbb\xc4\x30\xa0\xd6\x57\xd3\x9c\x23\xc3\x2d\xfb\xb3\x80\x5c\x55\x93\x09\xc8\x05\xc8\x75\x56\xd8\x25\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x2d\x9d\xb6\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x80\x5d\x83\x9c\x51\xc0\xae\xf2\xf0\x00\x76\x0d\x1f\x76\x25\xc2\xb1\x10\x25\x75\x24\x52\xdd\xf9\x43\xc0\x5e\x9f\xf3\x86\xbd\x73\x0d\x3b\x26\x00\xab\x6c\x00\x50\x58\xd5\x04\x03\x85\x01\x85\x9d\x55\xee\x17\x40\x31\x40\x31\x40\x31\x40\x31\x40\x31\x40\x31\x40\x31\x40\xb1\x96\x4e\x5b\x40\x31\x40\x31\x40\x31\x40\x31\x40\x31\x40\x31\x40\x31\x40\x31\x40\x31\x40\x31\x40\xb1\x41\xce\x28\xa0\x58\x79\x78\x00\xc5\xc6\x00\xc5\x74\x6b\xff\x67\x25\x33\x3e\x0c\x18\xa6\x1b\xf4\x9f\xaa\x41\xc7\x85\x60\x85\x1f\x06\xfc\xaa\x9a\x50\xc0\x2f\xc0\xaf\xb3\xd2\x3e\x01\xf4\x02\xf4\x02\xf4\x02\xf4\x02\xf4\x02\xf4\x02\xf4\x02\xf4\x6a\xe9\xb4\x05\xf4\x02\xf4\x02\xf4\x02\xf4\x02\xf4\x02\xf4\x02\xf4\x02\xf4\x02\xf4\x02\xf4\x02\xf4\x1a\xe4\x8c\x02\x7a\x95\x87\x07\xd0\x6b\xf8\xd0\x2b\x15\x5e\x22\xb2\x21\xd0\xae\x2f\xd4\x92\x63\x62\x2e\xfd\x8b\xe0\x5b\x55\x53\x08\xbe\x05\xbe\x75\xa6\x37\x08\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x56\x4b\xa7\x2d\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\xd6\x20\x67\x14\x60\xab\x3c\x3c\x00\x5b\x63\x00\x5b\xc9\x63\xe0\x09\xee\x79\x4a\x70\x1e\x06\xe0\xa2\x16\x5d\xeb\x16\x1d\x17\x74\x15\x7f\x19\xc0\xab\x6a\x4a\x01\xbc\x00\xbc\xce\xca\x1b\x05\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\xab\xa5\xd3\x16\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x6b\x90\x33\x0a\xf0\x55\x1e\x1e\x80\xaf\xd1\x80\xaf\x01\x11\xaf\x1e\x50\x17\x18\x57\xd5\x24\x82\x71\x81\x71\x59\xc6\x05\xb8\x05\xb8\x05\xb8\x05\xb8\x05\xb8\x05\xb8\x05\xb8\x05\xb8\xd5\xd2\x69\x0b\xb8\x05\xb8\x05\xb8\x05\xb8\x05\xb8\x05\xb8\x05\xb8\x05\xb8\x05\xb8\x05\xb8\x05\xb8\x35\xc8\x19\x05\xdc\x2a\x0f\x0f\xe0\xd6\x50\xe1\x56\x7a\xd5\x08\x66\x75\x0d\x73\xea\x80\xb2\x85\xc8\x0a\xe2\xec\xf5\xed\x07\x77\x43\xec\xe0\x59\x0b\x91\x5d\xdf\x7e\xf8\xbd\xe2\x8b\x7d\x71\xab\xd1\xe2\xa4\xeb\xdb\x0f\x7f\x4e\xe4\x2a\xfe\x2d\x48\x47\x0f\x94\x54\xc7\x0a\xdf\x7e\x55\xfc\xc5\xf2\x76\xe1\xfe\x32\x20\x64\x90\x88\x45\xa0\x64\x15\xe2\x1a\x6a\xb4\x02\x39\xee\xbd\x14\x44\x73\x99\x2c\xdd\xad\xc0\x99\xa6\x5d\xbb\xf7\x52\xd5\x68\xd8\x85\x81\xdd\xd5\xc2\xee\x1a\xfd\xce\xaa\x5a\x21\x2d\x6c\xb5\xc7\xb7\xe3\xde\x6d\x25\x43\x8c\x16\x3f\x1a\x6c\xb5\xdf\xdf\x5e\xdf\x7e\xf8\x5c\xf5\x02\x6c\xb8\xc3\x37\x9c\x1d\xc8\x49\xdc\x68\x55\xcb\xa5\xec\x33\xf1\x82\xad\xb7\x5c\x65\x3c\x0b\xa2\xc5\x93\xb8\xbb\x97\xf2\xa1\x04\x15\x4b\xee\x51\xda\x1a\xd6\xae\x87\x94\x7e\x27\xf3\x64\x18\x0a\xcf\x5e\x57\x1f\x4d\x8b\xfe\xa1\x5b\xf4\xae\xd8\xa2\x1d\x1b\x4b\xbf\x6b\xcb\xde\x7a\xe7\x7e\xa1\xee\xdb\xb7\xf8\x70\xb0\xf5\x05\xa2\x85\xff\x3b\xe9\x3f\xaf\xaf\x6d\x2b\xfd\x57\x7d\xd6\xc9\xba\x7f\x4f\x23\xf0\x29\xd6\x53\x57\x6f\xd5\xef\x5e\xee\x70\x0b\x80\x5b\x00\xdc\x02\xe0\x16\x30\x35\xb7\x80\x1d\x46\x9b\x7d\xae\x01\xbb\x0d\x80\xbb\x8d\x37\x07\x9d\xbd\xff\x50\x03\x67\x80\xc8\x05\x79\x11\x7b\x6a\x45\xe9\x75\x50\xea\x5b\xd1\x05\xef\x4e\xb0\x58\x8d\x56\x9a\x09\x7f\xc6\xae\x23\x16\x44\xfa\x64\x91\x09\x5b\x45\xee\x70\xf2\x99\x9f\x3c\x7f\x5e\x45\xcc\x0f\x12\x75\x2f\x3e\x0a\xb7\xe2\xd5\xf1\x49\xf8\xca\x6c\x79\xbb\x36\xcc\x00\xb3\xf9\x2a\xa1\x5d\x16\x27\xd2\x13\x29\x71\x26\x63\x79\x34\xab\x6c\xc6\x7e\xa7\x5f\xa4\xd9\xa2\xb5\xf3\x13\xbb\x64\xd7\x61\xf8\x13\x51\x24\x5f\x9d\xd2\xab\x48\x4d\xfc\x42\xa4\x6e\x49\x9a\xd7\x09\xbf\xc1\x44\xe9\xbe\xf4\x33\x4d\x47\xf3\xe5\xa8\x37\x14\xdb\xfd\x39\x8e\x36\x22\x5f\x8b\x46\xe9\x20\x62\xa9\xb6\x15\xb3\x3b\x31\xd7\x4e\xa7\x8e\xfb\xe5\xa2\x84\x39\xbd\x68\xe9\xac\x84\xbe\x1c\xee\x04\x8b\x64\x74\x19\x89\x05\xa7\x05\x6a\xcc\xca\x33\xf6\xd5\x5d\xd8\xda\x07\xc0\x6d\x0d\x23\x4e\x06\xcb\xa5\xf0\x03\x9e\x89\xf0\x39\xf7\x06\xcd\xaf\xdc\x20\xbc\x30\x66\x63\x1a\x74\xb6\x48\xb8\x47\xbb\x26\x90\xbe\x13\x08\xf2\x4b\x9b\x5c\x6d\xed\x2a\x5d\xa5\xaa\x91\xc5\xe9\xe2\xea\x49\xdb\x21\xf3\x23\x73\x7d\x06\xda\x57\xcc\x74\x3b\x97\x82\x47\x95\x6d\x6c\x30\xcd\xd4\xe6\x5b\x6a\x72\x95\x29\x7e\x8f\x31\x7e\x28\xcb\xff\x10\x37\x9e\x7a\xe3\xb2\xdd\x95\xe7\x68\xcb\x1f\x4e\x3d\x70\xea\x81\x53\x0f\x9c\x7a\xe0\xd4\xd3\x99\x53\x4f\xcd\xbb\x60\xc3\xb1\xe7\x78\xd7\xe2\xfb\x42\x2c\x5f\x1c\x0a\x9e\x0a\x77\x04\xdd\x26\x32\xe6\x0b\x92\x8e\x6e\x65\x18\x78\xcf\xa5\x10\x12\xbb\xe8\xf2\x60\x40\xb5\xec\xde\xce\xfe\x34\x63\x5f\xf4\x79\xa6\x45\x97\x58\x44\x6a\xb3\xe4\x77\xaa\x60\x32\x89\xef\x79\x64\x43\x5a\x92\x95\xb8\x9a\xf3\xd0\xea\xca\xdf\xce\xf4\xc7\xdf\xce\xd8\x3c\x88\x78\x18\xfc\xdb\x5e\x24\x77\x82\x71\x9f\x3c\x3d\xe4\x95\xa6\xe0\x7e\xae\x86\xe9\xd7\x9f\xa7\xf9\x43\x5a\x3f\x9d\xb1\x9b\x80\x0e\xc7\x42\xd3\x65\xb2\xd9\xb7\xdc\xaf\x27\xd3\xea\x31\xe9\x28\x32\xbb\x6f\x32\xa1\xba\x07\xef\x6d\xdf\xb7\x8a\x3c\x55\x4c\xbd\x5d\xc5\x8c\xba\xae\x36\xec\xbd\x7c\x62\x0b\x9e\xdc\xf1\x45\xc9\x8a\xe9\x94\x1a\x91\xcc\x65\xb2\x54\x73\x52\x39\x5e\x9f\xd6\x7a\xb4\x7d\xb8\x48\xe8\xb5\x12\x6b\xac\xc7\x36\x50\xd2\xa4\x17\xf8\xb9\x2a\x4c\xb2\x02\x19\x27\xdc\x1c\xa7\xc4\x03\xe9\x53\x2b\x0d\xcc\x0a\x93\x69\xef\x11\xe7\x58\xe3\xc2\xb3\xca\x3f\x36\x63\xd7\x9e\x27\xe2\x8c\xee\xa6\xa2\x66\x77\xae\xfb\x70\xce\x2e\xcd\x02\x2c\x2f\xd0\xf4\x67\x76\xfe\x0b\xf7\x1e\x16\x89\x5c\x45\xbe\xfa\x16\x85\x3a\xd1\x97\xd6\x06\x4e\x8b\x90\x46\x3e\x2e\xbf\xc4\xf6\xe0\xce\xbd\xe9\x67\x76\xfe\xab\x4c\x44\xe1\xb5\xcc\xe3\xa9\xc7\x7d\xd5\x7b\x33\x3e\x3a\x12\x8e\xde\x97\x6a\xd5\x73\xe3\x85\x73\xf7\x8e\x26\x0b\x32\x5e\x5f\xee\xfd\x48\x9c\x13\xf6\xc0\xab\x37\x0f\xbb\xbc\xf0\xfa\x9a\x05\xf8\xe3\x75\x36\xbf\x9b\x3e\x79\xc7\xb3\x6d\xf4\xe9\x9d\x57\x6f\xb0\x76\x78\xe8\xbd\x54\xfe\xa9\x44\x7a\xc0\xd3\x07\x62\xba\x2f\x19\xcf\x56\x75\xf9\xdc\x98\xa9\x74\xe1\x0d\x5b\x22\xf9\xf5\xe5\x9c\x0b\x4e\x6d\x04\xf4\xef\x02\xde\xd5\xc1\xfe\x35\x91\xf0\x21\x19\x00\x5a\xcf\x25\xa2\x8d\x69\x89\x51\xc0\xad\xd4\x2f\xe7\x4c\x75\xa2\x29\x32\x57\x2f\xdd\x02\xcc\xdb\xc6\xe4\x48\x77\x70\x3a\xe9\x0e\xea\xdd\x53\xfb\x52\x1e\x1c\x4f\xa1\x83\x97\x03\xbc\x1c\xe0\xe5\x00\x2f\x07\x78\x39\x54\x1d\xbe\xc0\xe7\x23\x1a\x11\x10\x55\x10\x55\x10\x55\x10\x55\x10\x55\x10\xd5\x69\x11\x55\x40\x0e\x40\x0e\x40\x0e\x40\x8e\xce\x21\xc7\x01\x8e\x00\x03\x4d\x48\x50\x6f\x08\x37\x93\x12\xbc\xd4\xe2\x36\x28\x3c\xb4\xf5\x81\xd3\x4a\x22\x3d\xab\xc6\x21\x8f\x6f\x67\xbb\x2c\xfc\x27\x12\x36\xb9\x1f\x50\xb5\x95\x65\x7a\x10\x50\xaa\x41\x5a\xea\xb1\xa4\xaa\x7a\xb5\x36\xa3\x67\xb1\x4c\x5b\x26\x70\x5a\xf9\x61\xbc\x29\x6c\xd3\xcf\x1f\x09\xb7\x35\x8b\x4a\x55\x52\x72\x90\x08\xdf\x0c\x6f\xcf\x87\x50\x2b\x11\xac\x88\xa2\x2a\x2e\x88\xc1\x46\x51\x91\x7d\xe4\x23\x8f\xf8\x42\x24\xda\xd2\xa7\x5a\xc5\x78\x9a\x4a\x2f\x20\xd5\xd5\xd9\xd4\x38\x99\x46\x65\xc2\x44\x94\x29\x59\xd2\xea\xf2\x4b\xfe\xa0\x46\x31\xbb\x17\xa9\xb0\x02\x59\x31\x56\xc8\xc6\x14\x91\x40\x4a\xf6\x33\x99\xb0\xb7\x3f\xfc\xa8\xbe\x9b\x70\x8f\x80\x59\x28\xa3\x85\x16\xbf\xc8\xc6\xe5\xc9\x28\xe3\x41\xa4\x0f\x38\xb2\x21\xe5\xdf\x25\x88\x60\x70\x1e\xbb\x7b\x76\x1a\xc6\x42\x86\x3c\x5a\xcc\x64\xb2\xb8\x8a\x1f\x16\x57\xab\x28\xf0\xa4\x2f\xae\xfe\xf0\x21\xbd\x55\x6f\x69\x6c\x94\x36\x83\xd3\xe6\xf4\x0c\x4a\x5e\x9b\xa2\x18\x55\x57\x84\xfa\xa1\x86\x08\xf5\x4e\xdb\xde\xc6\xd3\xa5\x1f\xf6\x76\x49\x7b\x14\x8f\xa7\x4f\x93\x96\x74\x49\x60\x1a\xb9\xa4\xfb\x8a\xb5\x9b\xfe\xe4\xea\x7f\xd5\x11\xfc\xff\x8e\x94\x05\xa5\xb1\x64\xb9\x33\xf3\xc9\x30\x24\xcb\x91\xe4\x3b\x81\xb4\x58\x9c\xe4\xc1\x4a\x8b\x88\x30\x3f\xa1\x08\x73\x84\xd2\x21\x94\x0e\xa1\x74\x08\xa5\x83\xa2\xbb\x6d\x17\x0d\x32\x6e\xa5\x1f\x05\x10\x61\x37\xf5\xc3\x6e\xc6\xae\xed\x39\x5b\x7f\xeb\xc1\x36\x89\xe0\xfe\x9a\x8c\xd6\x50\x35\x53\x6f\xea\x27\xc2\xa6\x20\xe2\x88\xef\xe4\x37\x77\xa7\xfe\xc5\xbd\x6c\xc6\xd8\x8d\xfa\xaf\xfd\xfb\x92\x07\x64\xe6\x4c\x99\x17\xae\xd2\x4c\x24\xf9\xc5\xa5\x1d\x6c\x59\x18\x3c\x08\x76\xee\x8a\x04\x9f\x2b\xf9\xd4\xca\x54\x33\x76\x1b\xf2\x28\x12\x5a\xb0\x25\xa9\x87\x87\x5a\xd0\x7a\xfb\x63\x93\x9b\x80\xda\xd8\x93\x3c\xe2\x06\xcd\x89\xf3\x77\x76\xf8\x54\x4f\xd9\x8d\x1e\x31\x75\x07\xc5\xa9\x1d\x1d\xe3\x5a\xb6\x4a\x45\x42\x3e\x61\xb9\x64\xfe\xdc\xf1\x40\xa9\xc6\x4c\x97\xe0\x0f\xfb\xa2\x84\xa9\xb1\xf1\xf5\xb3\x10\xa3\xb7\x34\xbe\x84\xa9\x13\xd9\x32\xe6\x9b\xfa\x2d\xd2\x07\x42\xcc\xb3\xfb\x6a\x9a\x4e\xff\x2d\x7d\xb2\x83\xe6\x76\x5c\xc3\x66\xbc\x5e\x03\xe4\xd1\xd3\x28\xfb\xfc\x25\x3d\xfb\xc7\xdd\x07\xe1\x52\x24\x0b\x51\xeb\x9b\xb4\x9e\xc5\x22\xf0\x2e\xeb\x3f\xa3\xfe\xfd\x6c\xbe\x49\x47\x6e\x1d\x59\x27\xe6\x49\x16\x50\xc0\x9d\xf6\x3e\x6b\x47\xee\xa1\x46\x0c\xda\x22\xdd\x95\xaf\xc3\x0e\x0d\xe4\xb6\xec\x2f\xc6\x60\xa7\x9e\xb8\x9d\xfa\x74\xbc\x1a\xd6\xa2\x5c\xec\xe6\xd2\x91\x58\xea\x58\xca\xa3\xfb\x5f\x6f\x39\xb2\xde\x90\x95\x4e\x87\x5f\xf3\x90\x9e\x8c\x64\x74\xa9\x9f\xa6\x6f\x90\xa1\x3c\x65\xaf\xff\x9a\xca\xe8\x56\x07\xb9\x7f\x54\x87\xa3\xf9\xf7\x17\x7b\x64\xe6\x7f\x7c\x33\x24\x77\x8b\xfa\xeb\xe6\x57\x99\x78\x44\x12\x16\x92\x26\x5f\xb2\x6f\x67\x73\xf5\xb7\x6f\x67\xec\xba\x34\x9a\xe4\x43\xaf\xcd\xfe\xa4\x7f\x98\x8d\x7a\xc9\x3d\x9a\x00\x0a\x93\x0e\x03\xcf\x18\x32\x49\x5d\x91\x4f\x66\x6e\x75\x18\x71\x2c\x64\x1c\x8a\x19\xd3\xbf\x49\xd9\x11\xec\x9a\x22\x4f\xf6\xca\x89\x70\x3f\xdf\x64\x78\xd5\x0f\x41\x6b\xd1\x1f\x40\x6b\xd9\x7c\xeb\x40\xb5\x96\x78\xcd\x57\x7c\xe4\x7a\xcb\xaa\x75\x9b\x59\x1c\x72\xaf\x25\xf1\xd1\xbc\xec\x24\x05\x48\x38\xcb\x42\xac\x84\x58\x09\x67\x59\x08\x19\xee\xdf\x6b\x60\x71\x72\xce\xb2\xd3\x96\x9b\x56\xa3\xb7\xf6\xbe\x62\x07\xfb\x95\xd2\x0d\x38\xb0\xc2\x7a\xbf\xbb\x36\x75\x53\x5a\xaf\xfe\xfb\xe1\x6c\x8a\xb4\x73\x48\x3b\x87\xb4\x73\x48\x3b\x87\xb4\x73\xbd\xa8\x50\xd0\x74\x6b\x4f\x14\x8a\xeb\x0d\x29\x3b\x20\x42\x1f\x4e\x28\xf4\x01\xa9\x20\x91\x0a\x12\xa9\x20\x91\x0a\x12\xa9\x20\x91\x0a\x12\xa9\x20\x11\x11\x88\x88\x40\x44\x04\x22\x22\x70\x7d\x45\xa2\xb8\x1e\xf2\xce\x22\xef\x2c\xf2\xce\x8e\x3c\xef\x6c\x25\xd6\x83\x83\x01\xa2\x7c\xc7\x5d\x5c\xaf\x36\x14\x1e\x70\x79\xbd\xc6\xe0\x7c\x47\x81\xbd\xf6\x61\x39\x4a\xec\xa1\xc4\x9e\xfe\x08\x25\xf6\xe0\xeb\x00\x5f\x07\xf8\x3a\xc0\xd7\x01\xbe\x0e\x80\xe8\xe0\xaa\xfb\x47\x04\x5c\x15\x5c\x15\x5c\x15\x5c\x15\x5c\xf5\x84\xb9\x2a\x50\x07\x50\x07\x50\x07\x50\x07\x4a\xec\xa1\xc4\x1e\x4a\xec\xb9\x4f\x9a\xc7\x86\xee\xb6\xf1\xa3\xc8\x5e\xef\x45\xf6\x3a\x81\x53\x28\xb3\xd7\x4a\x99\xbd\xc6\xd0\x6d\x67\xa1\xbd\xa1\xc4\xa8\x1e\x3f\x7b\xc8\x9e\x9e\xd7\x3b\x88\x10\x55\x35\x81\xa8\x2a\xe4\x0f\x41\xfe\x90\x8a\xc6\x8c\x5e\xa0\x1a\x69\x06\x91\xb6\x3a\x35\xac\x82\x7b\xed\xf4\x6a\xd2\x72\x6f\x7f\x25\xf7\xda\x94\x7b\x5f\xb1\xb6\x93\xa3\x1c\xbb\xec\x5e\x37\x79\x51\x86\x22\x69\x8e\x24\x1b\x0a\x64\xc7\xe2\x24\x0f\x56\x76\x44\xfc\xf9\x09\xc5\x9f\x23\xd0\x0e\x81\x76\x08\xb4\x43\xa0\x1d\xd4\xde\x6d\xbb\x68\x90\x51\x2d\x28\xbd\x37\x5c\x9d\xaf\xcf\xd2\x7b\xe3\x08\xc5\xa9\x28\xbe\xd7\x58\x41\xdb\x51\x7e\xaf\xf3\xf8\x1b\x14\xe0\x73\x8b\xa6\xbe\x54\x82\x02\x7c\xe6\x7f\xb8\x2e\x61\x7a\x9c\x62\x09\xbe\xa1\x10\xf7\x62\x11\xbe\x43\xda\x84\x32\x7c\x28\xc3\xd7\x43\x19\xbe\xc6\x12\xd0\xae\x42\x7c\x43\xb1\x50\xa3\x14\x1f\xec\xd6\xf0\x79\x40\x29\xbe\xcd\x15\x83\x52\x7c\x28\xc5\x07\xfd\x05\xfa\xcb\x90\x8a\xf1\x75\xa3\xc1\x1c\xa7\x1c\xdf\x0b\x0c\x69\xbb\x0a\xf2\x4d\x5d\x90\x84\x53\x2d\x04\x4c\x08\x98\x70\xaa\x85\xb8\x71\x62\x4e\xb5\xd3\x96\xa1\xfa\x2a\xcc\xd7\xb3\xf7\x29\xc5\x14\x5e\x2d\x4d\x75\xc0\xbd\xe5\xf9\x5a\x07\x9c\x26\x1d\x45\xe4\x07\x8f\x81\xbf\xe2\x61\x31\xb4\x95\xbb\x04\x34\xbb\xaa\x17\xce\x0a\x8e\x55\x3f\x39\x97\xac\x73\x7a\xf1\x79\x9e\x9d\xac\x94\x6e\xca\x09\x74\x2c\x88\xd2\x4c\xf0\x92\xc5\x77\x5d\xdc\x7b\xda\x61\x35\xdc\xd5\xb0\xdf\xd6\x22\xf9\x10\x99\x3a\x54\x8f\x12\x0a\xac\xbe\x79\x14\x11\x42\x50\xdd\x82\xef\x2f\x0e\xb5\x8b\x02\xef\x87\x33\x31\x64\x0c\x9d\x70\xc6\xd0\xfd\x48\x6f\x5f\xb6\xd0\x9d\x96\xc1\x16\x70\x25\x72\x84\x22\x47\x28\x72\x84\x22\x47\xe8\xd4\x72\x84\xee\x3f\x79\x2b\xf3\x83\x76\xec\x1c\x72\xb4\xac\xa0\xfb\xbb\xbf\x3d\x23\xe8\x90\xc7\xe0\x90\x3c\xa0\xfb\xc7\x60\x7b\x0e\xd0\x8e\xc7\x00\x99\x3f\x91\xf9\x13\x99\x3f\x91\xf9\x13\x99\x3f\x3b\xcb\xfc\x59\xe3\xf4\xdf\xc8\xfa\xb9\x33\xc4\xf3\x84\x7c\x43\xeb\xf5\x66\xc2\x99\x4b\xf7\x0f\xf7\xae\xac\xa5\xc7\x1d\x77\xe4\x2a\xed\x64\x46\x37\xf3\x94\x76\x3c\xad\xbd\x66\x27\xdd\x3f\x3c\x3b\x32\x93\x76\x7d\x6c\x0e\x35\x1f\xe9\xfe\x41\xab\xa0\x1d\x8d\xed\x79\xe6\x5f\xff\xec\x06\xbe\x55\xa4\x7f\xe9\x88\xc1\x15\xc1\x5b\x64\x05\x01\x5b\xf4\xab\x73\x00\x77\x91\xeb\x02\xa4\xef\x18\xb9\x51\xa9\x13\xb9\x92\x73\x5e\x52\x8e\x0b\xef\xee\x02\xdf\x01\xdd\x01\xdd\x8d\x13\xdd\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x01\xdb\x4d\x05\xdb\x15\xd3\xd6\xd4\xb7\x3e\x20\x69\x0d\xc0\x64\xff\x18\x0b\x60\x12\x60\x12\x60\x12\x60\x72\x6d\xd0\x06\x05\x26\xf7\x54\xa6\x18\x40\x5c\xe0\xee\xe0\xc9\x5e\x23\x03\x6b\x94\x3b\x04\x60\x04\x60\x1c\x25\x60\x44\x8d\x4a\x60\x46\x60\x46\x60\x46\x60\x46\x60\x46\x60\x46\x60\x46\x60\x46\x60\x46\x60\x46\x60\x46\x60\x46\x60\x46\x60\x46\x60\xc6\x69\x61\x46\x40\x38\x40\x38\x40\xb8\x71\xcc\x28\x20\x5c\x79\x78\x00\xe1\x26\x0e\xe1\x06\x12\x1f\x78\x04\x10\xd7\x4f\x84\xe0\x01\xd9\xdc\x81\xf0\x80\xf0\x46\x83\xf0\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\x80\xef\xa6\x83\xef\x50\xdc\x1e\x88\x12\x88\xb2\xc1\xb8\x03\x51\x02\x51\x02\x51\x02\x51\x6e\x47\x94\x77\x22\xe3\x6f\xaf\x1a\xb1\xc7\x5e\xea\x8f\xae\x4d\xff\x42\x64\x65\xb9\x5e\xcf\xf4\x0e\x52\xb8\x10\xd9\x16\x4e\x48\x43\x71\x7d\xfb\xe1\x73\xd5\x5b\x50\x84\xf5\x40\x62\x57\x18\x48\x8a\x94\x9c\x28\xb6\xa3\x45\x53\x78\xcd\xab\x62\x53\x1a\xec\xc4\xda\x65\x3c\xb5\xae\xd5\xae\x97\x80\x7e\x27\xf3\x64\x18\x0a\xcf\x5e\x1f\x75\x13\xec\xae\xed\x33\xfd\xae\x5d\x5b\xed\x9d\xfb\x99\xda\x39\x7c\x3b\xad\xb6\xde\xc9\x36\x78\x4f\xc3\xf0\x29\xd6\xf3\x57\x6f\x13\xec\x5e\xfd\x20\x4f\x20\x4f\x20\x4f\x20\x4f\x53\x23\x4f\xf5\x2a\xef\x57\xd2\xa7\x17\x56\xdd\xaf\x7f\xf6\xfe\x43\x0d\x9c\xb1\xb9\x5d\x50\x6a\x0b\x4f\xad\x28\xbd\x0e\x4a\x7d\x2b\x7a\x79\xdc\x09\x16\xab\xd1\x4a\x33\xe1\xcf\xd8\x75\xc4\x82\x48\x9f\x2c\x32\x61\xab\xc8\x1d\x4e\x3e\xf3\x93\xe7\xcf\xab\x88\xf9\x41\xa2\xee\xc5\x47\xe1\x56\xbc\x3a\x3e\xc9\x42\x6a\xb6\xbc\x5d\x1b\x66\x80\xd9\x7c\x95\xd0\x2e\x8b\x13\xe9\x89\x94\x4c\x99\x46\xf1\x33\xab\x6c\xa6\xed\x66\x7a\xb6\x68\xed\xfc\xc4\x2e\xd9\x75\x18\xfe\x44\x86\x4a\x5f\x9d\xd2\xab\x48\x4d\xbc\x52\xa1\xec\x92\x34\xaf\xdb\xac\x70\x5f\x63\xa2\x74\x5f\xfa\x99\xa6\xa3\xe1\xc2\x7a\x43\xb1\x1d\x19\x1e\x6d\x44\xbe\x16\x6d\x02\x41\xc4\x52\xad\xaa\xb3\x3b\x31\xd7\x7e\x4d\xce\xb4\x9c\x8b\x12\xe6\xf4\xa2\xa5\xb3\x12\xfa\x72\xb8\x53\xda\x70\x74\x19\x89\x05\xa7\x05\x6a\xb4\xfa\x19\xfb\xea\x2e\x6c\x8d\x99\xdc\xd6\x30\x32\x65\xb0\x5c\x0a\x3f\xe0\x99\x08\x9f\x73\x87\xa3\xfc\xca\x0d\xc2\x0b\xa3\xb5\xd3\xa0\xb3\x45\xc2\x3d\xda\x35\x81\xf4\x9d\x40\x90\x5f\xda\xe4\xcd\x65\x57\xe9\x2a\x55\x8d\x2c\x4e\x17\x57\x4f\xda\x0e\x99\x1f\x99\xeb\x33\xd0\xbe\x62\xa6\xdb\xb9\x14\x3c\xaa\x6c\x63\x83\x69\xa6\x36\xdf\x52\x93\xab\x2c\x21\x7b\x6c\x21\x43\x59\xfe\x87\x90\xe2\x7a\xe3\xb2\x9d\x16\x1f\x6d\xf9\x83\x1b\x83\x1b\x83\x1b\x83\x1b\x83\x1b\x77\xc6\x8d\x6b\xde\x05\x1b\xec\xf8\x78\xd7\xe2\xfb\x42\x00\x4b\x1c\x0a\x9e\x0a\x77\x04\xdd\x26\x32\xe6\x0b\x92\x8e\x6e\x65\x18\x78\xcf\x25\x2f\x65\xbb\xe8\xf2\x08\x18\xb5\xec\xde\xce\xfe\x34\x63\x5f\xf4\x79\xa6\x45\x97\x58\x44\x6a\xb3\xe4\x77\xaa\x60\x32\x89\xef\x79\x64\xbd\xa6\x93\x95\xb8\x9a\xf3\xd0\xea\xca\xdf\xce\xf4\xc7\xdf\xce\xd8\x3c\x88\x78\x18\xfc\xdb\x5e\x24\x77\x82\x71\x9f\x40\x9b\xbc\xd2\x10\xc2\xcf\xd5\x30\xfd\xfa\xf3\x34\x7f\x48\xeb\xa7\x33\x76\x13\xd0\xe1\x58\x68\xba\x4c\x36\xfb\x96\x63\xd5\x4c\xab\xc7\xa4\xa3\xc8\xec\xbe\xc9\x84\xea\x1e\xbc\xb7\x7d\xdf\x2a\xf2\x54\x21\x8d\x76\x15\x33\xea\xba\xda\xb0\xf7\xf2\x89\x2d\x78\x72\xc7\x17\x25\x53\xa6\x53\x6a\x44\x32\x97\xc9\x52\xcd\x49\xe5\x78\x7d\x5a\xeb\xd1\xf6\xe1\x22\xa1\xd7\x4a\xac\xb1\x1e\xdb\x40\x49\x93\x5e\xe0\xe7\xaa\x30\xc9\x0a\x64\x9c\x70\x73\xac\x2e\x6b\x73\x93\x5a\x69\x60\x56\x98\x4c\x7b\x8f\x38\xae\xe9\x22\x00\xca\x3f\x36\x63\xd7\x9e\x27\xe2\x8c\xee\xa6\xa2\x66\x77\xae\xfb\x70\xce\x2e\xcd\x02\x2c\x2f\xd0\xf4\x67\x76\xfe\x0b\xf7\x1e\x16\x89\x5c\x45\xbe\xfa\x16\x79\xd3\xd3\x97\xd6\x06\x4e\x8b\x90\x46\x3e\x2e\xbf\xc4\xf6\xe0\xce\xbd\xe9\x67\x76\xfe\xab\x4c\x44\xe1\xb5\xcc\xe3\xa9\xc7\x7d\xd5\x7b\x33\x3e\x3a\xd8\x82\xde\x97\x6a\xd5\x73\xe3\x85\x73\xf7\x8e\x26\x0b\x32\x5e\x5f\xee\xfd\x48\x9c\x13\x76\x80\xa8\x37\x0f\xbb\x9c\x20\xfa\x9a\x05\xb8\x43\x74\x36\xbf\x9b\x2e\x11\xc7\xb3\x6d\xf4\xe9\x1c\x51\x6f\xb0\x76\x38\x48\xbc\x54\xfe\xa9\xe4\x7a\xa0\xd5\x07\x62\xba\x2f\x19\xcf\x56\x75\xf9\xdc\xe8\x21\x75\xe1\x35\x5b\x02\x4c\xf5\x0d\x9d\x4b\x4f\xfd\xc4\x9a\x36\xac\x47\xb9\xd6\xdd\xcd\x70\xd3\xd6\xc3\xeb\xb5\x59\x2d\x31\xaa\xb8\x95\xff\xeb\x54\xde\xdd\x41\xd0\xd5\x4b\x77\xf1\xf3\xb6\xa9\x39\x02\x6c\x4f\x27\xc0\xb6\xde\xb5\xb5\x2f\xc8\xf6\x78\xfa\x1d\x9c\x1e\xe0\xf4\x00\xa7\x07\x38\x3d\xc0\xe9\xa1\xea\xf0\x05\x4d\x1f\xd1\x88\x00\xb0\x02\xb0\x02\xb0\x02\xb0\x02\xb0\x02\xb0\x4e\x0b\xb0\x82\x79\x80\x79\x80\x79\x80\x79\x74\xce\x3c\x0e\xf0\x0b\x18\x68\x78\x68\xbd\x21\xdc\x0c\x11\x7d\xa9\xc5\x6d\x50\xb4\x68\xeb\x03\xa7\x95\xf6\x74\x56\x0d\x46\x0c\xc7\x98\xed\x32\xf3\x9f\x52\x64\xe5\x7e\x68\xd5\x5f\x4d\xc3\xae\x40\x55\x83\xbc\xa8\x63\xc9\x23\xf2\x6a\x6d\x5a\xcf\x62\x99\xb6\x4c\xe5\xb4\x2e\xc4\x78\x53\x00\xa7\x9f\x3f\x26\x82\x6b\x16\xb8\xba\x23\x69\x4d\x5f\x07\x53\x2b\x91\xae\x88\xb6\x2a\xae\x8a\xc1\x46\x5b\x91\xe1\xe4\x23\x8f\xf8\x42\x24\xda\x04\x48\xf9\x9a\x78\x9a\x4a\x2f\x20\x9d\xd6\x19\xdb\x38\xd9\x4c\x65\xc2\x44\x94\x29\x21\xd3\x2a\xf9\x4b\xfe\xa0\x46\x31\xbb\x17\xa9\xb0\x92\x5a\x31\xa6\xc8\xc6\x1e\x91\xa4\x4a\x86\x35\x99\xb0\xb7\x3f\xfc\xa8\xbe\x9b\x70\x8f\x48\x5a\x28\xa3\x85\x96\xcb\xc8\xf8\xe5\xc9\x28\xe3\x41\xa4\x8f\x3a\x32\x2e\xe5\xdf\x25\xba\x60\x38\x1f\xbb\x7b\x76\xaa\xc7\x42\x86\x3c\x5a\xcc\x64\xb2\xb8\x8a\x1f\x16\x57\xab\x28\xf0\xa4\x2f\xae\xfe\xf0\x21\xbd\x55\x6f\x69\x6c\xad\x36\x83\xd3\xe6\xf4\x0c\x4a\x90\x9b\xac\x7c\x55\x57\xb6\xfa\xa1\x86\x6c\xf5\x4e\x5b\xe6\x46\xd6\xaf\x1f\xf6\xf6\x4b\xfb\x20\x8f\xac\x63\xd3\x17\x86\x49\x9c\x9a\x82\x30\xfc\x8a\x75\x90\x49\xa5\xa2\xe6\x4a\x87\x09\x55\x1a\x4b\xa0\xfb\x93\xa8\x0c\x43\x02\x1d\x49\xea\x14\x08\x94\xc5\x49\x1e\xac\x40\x89\x60\xf5\x13\x0a\x56\x47\x54\x1e\xa2\xf2\x10\x95\x87\xa8\x3c\xe8\xc2\xdb\x76\xd1\x20\x43\x60\xfa\xd1\x0c\x11\xc1\xb3\xf9\x9a\x9d\x11\x3c\x93\xd0\x00\x1d\x22\x68\x3d\x6e\x27\x11\xdc\x5f\x93\xd6\x1a\x6a\x6a\xea\x4d\x3d\x06\xeb\x14\x24\x1e\xf1\x9d\x5c\xf0\xee\xd4\xbf\xb8\x97\xcd\x18\xbb\x51\xff\xb5\x7f\x5f\xf2\x80\x0c\xa3\x29\xf3\xc2\x55\x9a\x89\x24\xbf\xc7\xb4\xaf\x2e\x0b\x83\x07\xc1\xce\xff\xce\x97\x22\x8d\xb9\x27\xce\x95\xb8\x6a\x45\xac\x19\xbb\x0d\x79\x14\x09\x2d\xe7\x92\x10\xc4\x43\x2d\x77\xbd\xfd\xb1\xc9\xc5\x40\x6d\xec\x49\x3c\x71\x83\xe6\xa4\xfb\x3b\x3b\x7c\xaa\xa7\xec\x46\x8f\x98\xba\x92\xe2\xd4\x8e\x8e\xf1\x52\x5b\xa5\x22\x21\xf7\xb2\x5c\x50\x7f\xee\x78\xa0\x54\x63\xa6\xeb\x0c\x30\xec\x7b\x13\x26\xc9\x16\xae\xa4\x85\x98\x86\x45\xf2\x25\x78\xbe\x58\xca\xa4\x7e\xb3\x50\xc8\xe4\x18\x0e\x08\xe4\x2b\xd4\x28\xf5\xfd\x25\x3d\xfb\xc7\xdd\xe7\xe2\x52\x24\x0b\x51\xeb\x9b\xb4\xa8\xc5\x22\xf0\x2e\xeb\x3f\xa3\xfe\xfd\x6c\xbe\x49\x27\x70\x1d\xf9\x27\xe6\x49\x16\x50\x28\x9f\xf6\x6b\x6b\x47\x16\x8a\x77\x14\xe3\x1e\x90\xd1\xba\x2b\xb7\x89\x1d\x4a\xca\x6d\xd9\x1d\x8d\xc1\x94\x3d\x71\x53\xf6\xe9\xf8\x46\xac\x05\xd1\xd8\xcd\xa5\x03\xbd\xd4\xd9\x94\x27\x0f\x78\xbd\xe5\xdc\x7a\x43\x86\x3c\x1d\xdd\xcd\x43\x7a\x32\x92\xd1\xa5\x7e\x9a\xbe\x41\xb6\xf4\x94\xbd\xfe\x6b\x2a\xa3\x5b\x1d\x43\xff\x51\x9d\x90\xe6\xdf\x5f\xec\xb9\x99\xff\xf1\xcd\x90\x9c\x36\xea\xaf\x9b\x5f\x65\xe2\x11\x6c\x58\x48\x9a\x7c\xc9\xbe\x9d\xcd\xd5\xdf\xbe\x9d\xb1\xeb\xd2\x68\x92\x8b\xbe\x26\x03\xa4\x93\x98\x8d\x7a\xc9\x3d\x9a\x00\x8a\xc2\x0e\x03\xcf\xd8\x3a\x49\x85\x91\x4f\x66\x6e\x75\x94\x72\x2c\x64\x1c\x8a\x19\xd3\xbf\x49\xc9\x17\xec\x9a\x22\x47\xf9\xca\x89\x70\x3f\xdf\x64\x78\xd5\x0f\x41\x93\xd1\x1f\x40\x93\x19\xa1\x26\x13\xaf\x39\xa5\x4f\x41\x97\x59\xb5\x6e\x5b\x8b\x43\xee\xb5\x24\x52\x9a\x97\x9d\xae\x50\x09\x5f\x5c\xc8\x9b\x35\xa6\xe9\x74\xe4\xcd\x01\x89\x75\x90\x3e\xdc\x27\xfd\x1f\x63\x93\xf5\xc5\x3d\x01\xa9\x6a\x35\x0d\xfb\xf0\x2b\xd6\xcc\x63\xf5\xd1\x95\xb6\x1e\x4e\xf5\xbf\xda\xe5\xb6\x5f\x52\xff\xaf\xfe\x8f\xc0\x8d\x15\xc9\xf0\x90\x0c\x0f\xc9\xf0\x90\x0c\x0f\xc9\xf0\x7a\x51\xb0\xa0\x07\xd7\x9e\x28\x54\x00\x1c\x52\xce\x42\x04\x55\x9c\x50\x50\x05\x12\x54\x22\x41\x25\x12\x54\x22\x41\x25\x12\x54\x22\x41\x25\x12\x54\x22\xd6\x10\xb1\x86\x88\x35\x44\xac\xe1\xfa\x8a\x44\x05\x40\x64\xc3\x45\x36\x5c\x64\xc3\x1d\x79\x36\xdc\x4a\xb6\x07\xf7\x03\xc4\x0f\x4f\xa0\x02\x60\x6d\x32\xdc\x7f\x2c\xf1\xee\x1a\x80\x8d\x39\xfa\xbe\x2a\x80\xed\xb3\x73\xd4\x01\x44\x1d\x40\xfd\x11\xea\x00\xc2\xf5\x01\xae\x0f\x70\x7d\x80\xeb\x03\x5c\x1f\xc0\xd4\x81\x59\xf7\x8f\x08\x30\x2b\x30\x2b\x30\x2b\x30\x2b\x30\xeb\x09\x63\x56\x90\x0f\x90\x0f\x90\x0f\x90\x0f\xd4\x01\x44\x1d\x40\xd4\x01\x74\x9f\xbc\x30\x86\x74\xb7\xa1\x1f\x95\x00\x87\x51\x09\xb0\x3b\x60\x85\x5a\x80\xad\xd4\x02\x6c\x0c\xe2\xf6\x57\x03\x1c\x4a\x18\x6b\x4f\x39\x48\xf6\x74\xbf\xde\xe1\x84\xe8\xab\x09\x44\x5f\x21\x0b\x09\xb2\x90\x54\x34\x66\x1a\x92\xd6\x98\xf3\x90\xb4\xd5\xb3\x01\x56\x05\x6c\xa7\x6b\xd3\x17\x8d\xfb\xab\x0b\xd8\xba\x68\xfc\x8a\x75\x92\x67\xe5\xd8\xb5\x01\x3b\x4c\xb1\x32\x14\x89\x74\x24\x89\x55\x20\x5e\x16\x27\x79\xb0\xe2\x25\x42\xd9\x4f\x28\x94\x1d\x31\x7b\x88\xd9\x43\xcc\x1e\x62\xf6\xa0\x19\x6f\xdb\x45\x83\x0c\x90\x41\x7d\xc0\x81\xeb\x81\x7d\xd6\x07\x1c\x51\x54\x4f\x45\x85\xc0\xc6\xfa\xda\xbe\x1a\x81\x9d\x87\xf2\xa0\x4a\xa0\x5b\x39\xf5\x85\x14\x54\x09\x34\xff\xc3\xed\x09\x13\xa5\xf9\x68\xa2\x75\x02\x07\x05\xef\x8b\x95\x02\x0f\x69\x18\x6a\x05\xa2\x56\x60\x0f\xb5\x02\x1b\x4b\x45\x7b\xab\x05\x0e\xc5\x88\x8d\x7a\x81\x30\x6d\xc3\x73\x02\xf5\x02\x37\x57\x0c\xea\x05\xa2\x5e\x20\x74\x1a\xe8\x34\x3b\x74\x9a\x1e\x2b\x06\x76\xa8\xd5\x1c\xa7\x66\xe0\x0b\x0c\x6e\x7b\xab\x06\x4e\x5d\xb8\x84\xcf\x2e\x24\xcf\x5a\xd3\x74\x3a\x92\xe7\x80\x04\x3c\xc8\x21\xee\x93\x21\x1c\x64\x13\xf6\xd9\x3d\x01\x09\xab\xaf\xea\x81\x83\xf1\x6b\xa5\x20\xc7\xab\xa5\x29\x66\xb8\xb7\x86\x60\xeb\xac\xd4\xe4\xc7\x88\xfc\xe0\x31\xf0\x57\x3c\x2c\xc6\xda\x72\x97\x11\x67\x57\xb1\xc5\x59\xc1\x5b\xeb\x27\xe7\xe7\x75\x4e\x2f\x3e\xcf\xd3\xa5\x95\xf2\x5f\x39\x99\x8f\x05\x51\x9a\x09\x5e\x32\x14\xaf\x4b\x84\x4f\xfb\x8c\x8d\xbb\x5a\xf7\xdb\x5a\x54\x21\xe2\x65\x87\xea\xab\x42\xe1\xde\x37\x8f\x22\x42\x4c\xac\x57\xda\x9d\xfd\x05\xc6\x76\x56\xb7\xfe\x70\xb2\x86\x8c\xa6\x13\xce\x68\xba\x1f\x0c\xee\xcb\x66\xba\xd3\xb4\xd8\x02\xf4\x44\x0e\x53\xe4\x30\x45\x0e\x53\xe4\x30\x9d\x5a\x0e\xd3\xfd\x27\x6f\x65\xfe\xd2\x8e\x5d\x4c\x8e\x96\xb5\x74\x7f\xf7\xb7\x67\x2c\x1d\xf2\x18\x1c\x92\xa7\x74\xff\x18\x6c\xcf\x51\xda\xf1\x18\x20\x33\x29\x32\x93\x22\x33\x29\x32\x93\x22\x33\x69\x67\x99\x49\x6b\x9c\xfe\x1b\x59\x49\x77\x86\x91\x9e\x90\x87\x69\xbd\xde\x4c\x38\xb3\xea\xfe\xe1\xde\x95\x55\xf5\xb8\xe3\x8e\x5c\xaa\x9d\xcc\xe8\x66\x1e\xd5\x8e\xa7\xb5\xd7\xec\xa9\xfb\x87\x67\x47\xe6\xd4\xae\x8f\xcd\xa1\xe6\x4b\xdd\x3f\x68\x15\xdc\xa3\xb1\x3d\xcf\xfc\xeb\x9f\x1d\x02\xb9\x8a\x64\x33\x1d\x71\xb9\x22\x8c\x8b\xac\x34\x60\xcb\x93\x75\x0e\xe5\x2e\x72\x85\x80\x94\x1e\x23\x3c\x2a\x9d\x22\xd7\x74\xce\x4b\x1a\x72\xe1\xdd\x9d\x21\x3d\xe0\x3c\xe0\xbc\x11\xe3\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\xbc\x49\xa1\xbc\x62\x42\x9c\xfa\x26\x08\xa4\xc3\x01\xac\xec\x1f\x6d\x01\x56\x02\x56\x02\x56\x02\x56\xae\x0d\xda\xf0\x60\xe5\x9e\xda\x18\x03\x88\x1f\xdc\x1d\x6e\xd9\x7f\x04\x61\x8d\x3a\x8d\x80\x8e\x80\x8e\xe3\x85\x8e\x28\xae\x09\xf4\x08\xf4\x08\xf4\x08\xf4\x08\xf4\x08\xf4\x08\xf4\x08\xf4\x08\xf4\x08\xf4\x08\xf4\x08\xf4\x08\xf4\x08\xf4\x08\xf4\x38\x41\xf4\x08\x30\x07\x30\x07\x30\x37\x8e\x19\x05\x98\x2b\x0f\x0f\xc0\xdc\x29\x80\xb9\x81\xc4\x11\x1e\x01\xce\xf5\x18\x49\x78\x40\xb2\x78\x60\x3d\x60\xbd\x71\x61\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\x3d\x20\xbd\x89\x21\x3d\x94\xd7\x07\xb6\x04\xb6\x6c\x30\xee\xc0\x96\xc0\x96\xc0\x96\xa7\x8d\x2d\xe3\x40\x7c\xcf\x44\x44\x1b\xc3\xe2\xca\x46\xe8\xb1\x97\x9a\xa6\x6b\xd3\xbd\x10\x19\x0b\xa2\xb9\x4c\x96\x6e\x79\x73\xa6\x91\xc6\x76\x56\xb8\x10\xd9\x75\x71\x14\xae\x6f\x3f\xfc\x79\xfd\x11\x14\x72\x3d\x90\xcd\xb9\x41\x1c\x3b\x99\x2b\xae\x8c\xc2\x63\xaf\x8a\x3f\x5d\x63\x4b\x3d\xbe\x1d\xf7\xae\x2a\x69\xc7\xfa\xbc\x3c\x60\x4b\xfd\xfe\xf6\xfa\xf6\xc3\xe7\xaa\x07\xb1\xb1\x0e\xdf\x58\x76\x20\x29\x00\x79\x4a\xfb\xeb\xbf\x1f\xdf\xbe\x6c\x8b\x79\xab\x34\x93\x4b\xbb\x42\x0b\x63\x5b\xdc\x7b\xda\x0c\xd1\xae\x3f\x8d\x7e\x27\xf3\x64\x18\x0a\xcf\x5e\x3d\xef\xa8\x35\x76\xb6\xde\xbb\xd6\xec\xd8\x38\xfa\x3d\x6b\x7b\xe7\x9d\x7b\x6b\x9d\x37\x6e\x81\xe5\x1b\x45\xe3\xb5\x04\x72\x27\xfd\xad\xa5\xd2\xab\x3e\xeb\x64\x4d\xbf\xa7\x5e\x7f\x8a\xb3\xf2\x21\xcb\x76\xad\xe8\xdd\x4b\x19\xfc\x15\xfc\x15\xfc\x15\xfc\x75\x6a\xfc\x75\x87\xe6\xb8\x8f\xc1\xee\xb6\x42\xec\xd6\x20\x0f\x3a\x7b\xff\xa1\x06\xce\x58\x9e\x2f\x28\x07\x8c\xa7\x56\x94\x5e\x07\xa5\xbe\x15\x7d\x9d\xee\x04\x8b\xd5\x68\xa5\x99\xf0\x67\xec\x3a\x62\x41\xa4\x4f\x16\x99\xb0\x55\xe4\x0e\x27\x9f\xf9\xc9\xf3\xe7\x55\xc4\xfc\x20\x51\x77\xe2\xa3\x70\x2b\x5e\x1d\x9f\xc4\x09\xcc\x96\xb7\x6b\xc3\x0c\x30\x9b\xaf\x12\xda\x65\x71\x22\x3d\x91\x92\x41\xdf\x98\x3f\xcc\x2a\x9b\x69\xeb\xb1\x9e\x2d\x5a\x3b\x3f\xb1\x4b\x76\x1d\x86\x3f\x91\xb9\xde\x57\xa7\xf4\x2a\x52\x13\xbf\x10\xa9\x5b\x92\xe6\x75\xc2\x6f\x30\x51\xba\x2f\xfd\x4c\xd3\xd1\xa0\x79\xbd\xa1\xd8\x0e\xce\x8f\x36\x22\x5f\x8b\x96\xb1\x20\x62\xa9\x36\x58\xb1\x3b\x31\xd7\xde\x7d\x0e\xb0\xe4\xa2\x84\x39\xbd\x68\xe9\xac\x84\xbe\x1c\xee\x04\x8b\x64\x74\x19\x89\x05\xa7\x05\x6a\x6c\x5b\x33\xf6\xd5\x5d\xd8\x1a\xb6\xba\xad\x61\xc4\xc7\x60\xb9\x14\x7e\xc0\x33\x11\x3e\xe7\x6e\x77\xf9\x95\x1b\x84\x17\xc6\x76\x45\x83\xce\x16\x09\xf7\x68\xd7\x04\xd2\x77\x02\x41\x7e\x69\x93\x4f\xa3\x5d\xa5\xab\x54\x35\xb2\x38\x5d\x5c\x3d\x69\x3b\x64\x7e\x64\xae\xcf\x40\xfb\x8a\x99\x6e\xe7\x52\xf0\xa8\xb2\x8d\x0d\xa6\x99\xda\x7c\x4b\x4d\xae\xb2\x07\xee\xb1\x08\x0e\x65\xf9\x1f\xe2\x2f\x51\x6f\x5c\xb6\xfb\x4c\x1c\x6d\xf9\xc3\x7b\x02\xde\x13\xf0\x9e\x80\xf7\x04\xbc\x27\x3a\xf3\x9e\xa8\x79\x17\x6c\x78\x50\x1c\xef\x5a\x7c\x5f\x88\xea\x8a\x43\xc1\x53\xe1\x8e\xa0\xdb\x44\xc6\x7c\x41\xd2\xd1\xad\x0c\x03\xef\xb9\xe4\xab\x6f\x17\x5d\x1e\x16\xa6\x96\xdd\xdb\xd9\x9f\x66\xec\x8b\x3e\xcf\xb4\xe8\x12\x8b\x48\x6d\x96\xfc\x4e\x15\x4c\x26\xf1\x3d\x8f\x6c\xec\x40\xb2\x12\x57\x73\x1e\x5a\x5d\xf9\xdb\x99\xfe\xf8\xdb\x19\x9b\x07\x11\x0f\x83\x7f\xdb\x8b\xe4\x4e\x30\xee\x13\x6e\x96\x57\x1a\xc5\xf9\xb9\x1a\xa6\x5f\x7f\x9e\xe6\x0f\x69\xfd\x74\xc6\x6e\x02\x3a\x1c\x0b\x4d\x97\xc9\x66\xdf\x72\xe7\x82\x4c\xab\xc7\xa4\xa3\xc8\xec\xbe\xc9\x84\xea\x1e\xbc\xb7\x7d\xdf\x2a\xf2\x54\x81\xbd\x76\x15\x33\xea\xba\xda\xb0\xf7\xf2\x89\x2d\x78\x72\xc7\x17\x25\xab\xa5\x53\x6a\x44\x32\x97\xc9\x52\xcd\x49\xe5\x78\x7d\x5a\xeb\xd1\xf6\xe1\x22\xa1\xd7\x4a\xac\xb1\x1e\xdb\x40\x49\x93\x5e\xe0\xe7\xaa\x30\xc9\x0a\x64\x9c\x70\x73\x9c\x12\xcb\xa3\x4f\xad\x34\x30\x2b\x4c\xa6\xbd\x47\x1c\xdd\x77\x71\x30\xe5\x1f\x9b\xb1\x6b\xcf\x13\x71\x46\x77\x53\x51\xb3\x3b\xd7\x7d\x38\x67\x97\x66\x01\x96\x17\x68\xfa\x33\x3b\xff\x85\x7b\x0f\x8b\x44\xae\x22\x5f\x7d\x8b\x62\x4a\xe8\x4b\x6b\x03\xa7\x45\x48\x23\x1f\x97\x5f\x62\x7b\x70\xe7\xde\xf4\x33\x3b\xff\x55\x26\xa2\xf0\x5a\xe6\xf1\xd4\xe3\xbe\xea\xbd\x19\x1f\x1d\x72\x44\xef\x4b\xb5\xea\xb9\xf1\xc2\xb9\x7b\x47\x93\x05\x19\xaf\x2f\xf7\x7e\x24\xce\x09\xbb\x01\xd5\x9b\x87\x5d\xae\x40\x7d\xcd\x02\x9c\x82\x3a\x9b\xdf\x4d\xc7\xa0\xe3\xd9\x36\xfa\x74\x11\xaa\x37\x58\x3b\xdc\x84\x5e\x2a\xff\x54\x22\x3c\xa0\xe7\x03\x31\xdd\x97\x8c\x67\xab\xba\x7c\x6e\x8c\xc4\xb9\xf0\xe4\x96\xf0\x6a\x7d\x29\xe7\x02\x53\x2b\x91\xd6\x15\x30\xbb\x3a\xc2\xba\x06\xfe\x5d\x8f\xad\xde\x15\x56\xdd\x7a\x56\x09\x6d\x38\x4b\x8c\xb2\x6d\x25\x7c\x9b\x50\xa2\x01\x0e\x57\x2f\x5c\x87\xe1\x2d\x22\x70\xc4\x8c\x9f\x4e\xcc\x78\xbd\x3b\x68\x5f\xdc\xf8\xf1\x94\x35\x78\x30\xc0\x83\x01\x1e\x0c\xf0\x60\x80\x07\x43\xd5\xe1\x0b\x34\x3e\xa2\x11\x01\x2d\x05\x2d\x05\x2d\x05\x2d\x05\x2d\x05\x2d\x9d\x16\x2d\x05\xc0\x00\xc0\x00\xc0\x00\xc0\xe8\x1c\x60\x1c\x00\xf9\x07\x1a\xf1\x5c\x6f\x08\x37\xa3\x9e\x5f\x6a\x71\x1b\x14\xfa\xd9\xfa\xc0\x69\xe5\xf4\xcd\xed\xf9\x97\xce\x88\x9b\xe3\xa6\x32\x0f\x79\x7c\x3b\xdb\x66\xf2\x9f\x78\xfc\xe3\x7e\x1a\xd5\x5a\xf9\xce\xbe\x08\x54\x83\xc4\xbe\x63\x49\x84\xf3\x6a\x6d\x16\xcf\x62\x99\xb6\x8c\xdb\xb4\xe6\xc3\x78\x13\xb2\xa6\x9f\xed\x90\xad\x35\x0b\x2f\xdd\x91\x60\x69\x08\x27\x4e\x2b\xb1\xa9\x88\x8f\x2a\xae\x90\xc1\xc6\x47\x91\x75\xe4\x23\x8f\xf8\x42\x24\xda\xce\x47\x79\xc6\x78\x9a\x4a\x2f\x20\xc5\xd5\x59\xd4\x38\x19\x46\x65\xc2\x44\x94\x29\x49\xd2\x6a\xf2\x4b\xfe\xa0\x46\x31\xbb\x17\xa9\xb0\xe2\x58\x31\x0a\xc8\x46\x0b\x91\x38\x4a\xd6\x33\x99\xb0\xb7\x3f\xfc\xa8\xbe\x9b\x70\x8f\x70\x59\x28\xa3\x85\x16\xbe\xc8\xc2\xe5\xc9\x28\xe3\x41\xa4\x4f\x38\xb2\x20\xe5\xdf\x25\x84\x60\x60\x1e\xbb\x7b\x76\xfa\xc5\x42\x86\x3c\x5a\xcc\x64\xb2\xb8\x8a\x1f\x16\x57\xab\x28\xf0\xa4\x2f\xae\xfe\xf0\x21\xbd\x55\x6f\x69\x6c\x92\x36\x83\xd3\xe6\xf4\x0c\x4a\x5a\x3b\x09\x21\xaa\xae\x00\xf5\x43\x0d\x01\xea\x9d\x36\xc5\x8d\xb8\x8f\x3f\xec\xed\xa3\xf6\x26\x1e\x71\x27\x27\x29\x09\x93\x70\x35\x42\x49\xf8\x15\x7b\x79\x6e\x93\x8a\x7a\x41\x1d\xa6\x38\x69\x24\x6d\x56\xa7\x35\xe9\x5d\xda\x1c\x49\x32\x13\x08\x8c\xc5\x49\x1e\xac\xc0\x88\xf0\xf1\x13\x0a\x1f\x47\x9c\x1c\xe2\xe4\x10\x27\x87\x38\x39\xe8\xba\xdb\x76\xd1\x20\x83\x52\xfa\xd1\xf0\x10\x53\xc3\x76\xe8\x6e\x46\x59\x19\xa1\xf6\xe6\x6c\xfb\xad\x47\xd2\x24\x82\xfb\x6b\xf2\x58\x03\xb5\x4b\xbd\xe5\x78\xe1\x33\x05\xf1\x45\x7c\x27\xa7\xb8\x3b\xf5\x2f\xee\x65\x33\xc6\x6e\xd4\x7f\xed\xdf\x97\x3c\x20\x2b\x66\xca\xbc\x70\x95\x66\x22\xc9\x2f\x25\xed\x3d\xcb\xc2\xe0\x41\xb0\xf3\xbf\xf3\xa5\x48\x63\xee\x89\x73\x25\x7b\x5a\x79\x69\xc6\x6e\x43\x1e\x45\x42\x0b\xad\x24\xd1\xf0\x50\x0b\x51\x6f\x7f\x6c\x72\xca\x53\x1b\x7b\x92\x35\xdc\xa0\x39\x51\xfd\xce\x0e\x9f\xea\x29\xbb\xd1\x23\xa6\xee\x97\x38\xb5\xa3\x63\xfc\xc6\x56\xa9\x48\xc8\xe1\x2b\x97\xba\x9f\x3b\x1e\x28\xd5\x98\xe9\xe2\xf9\x61\x5f\x82\xb0\x13\xb2\x17\xdf\x35\x0b\x31\x4a\x33\xe1\x4b\x80\x79\xb1\x3a\x4e\xbd\xd6\xa0\x2e\xce\x31\xdc\x01\xc8\x4f\xa7\x51\x0e\xf8\x4b\x7a\xf6\x8f\xbb\x4f\xc0\xa5\x48\x16\xa2\xd6\x37\xa9\xb8\xb3\x58\x04\xde\x65\xfd\x67\xd4\xbf\x9f\xcd\x37\xe9\xac\xad\x23\xd4\xc4\x3c\xc9\x02\x0a\xa3\xd3\x3e\x65\x2f\x17\x70\xa8\x01\x83\x33\x2b\x77\xe5\xc4\xb0\x43\x8d\xb8\x2d\x7b\x7d\x31\x18\x9b\x27\x6e\x6c\x3e\x1d\xef\x84\xb5\x58\x15\xbb\xb9\x74\x3c\x95\x3a\x86\xf2\x18\xfd\xd7\x5b\x8e\xa8\x37\x64\x6a\xd3\x41\xd4\x3c\xa4\x27\x23\x19\x5d\xea\xa7\xe9\x1b\x64\xed\x4e\xd9\xeb\xbf\xa6\x32\xba\xd5\xa1\xea\x1f\xd5\x61\x68\xfe\xfd\xc5\x1e\x91\xf9\x1f\xdf\x0c\xc9\x6d\xa2\xfe\xba\xf9\x55\x26\x1e\xe1\x80\x85\xa4\xc9\x97\xec\xdb\xd9\x5c\xfd\xed\xdb\x19\xbb\x2e\x8d\x26\x79\xc2\x6b\xdb\x3d\x29\x1a\x66\xa3\x5e\x72\x8f\x26\x80\x82\x9d\xc3\xc0\x33\xd6\x48\xd2\x4b\xe4\x93\x99\x5b\x1d\x0c\x1c\x0b\x19\x87\x62\xc6\xf4\x6f\x52\x8e\x03\xbb\xa6\xc8\x1f\xbd\x72\x22\xdc\xcf\x37\x19\x5e\xf5\x43\x50\x4f\xf4\x07\x50\x4f\xc6\xa7\x9e\xc4\x6b\xae\xdf\x23\x54\x50\x56\xad\x5b\xc2\xe2\x90\x7b\x2d\xc8\x8a\xe6\x45\x27\x23\x2d\xc2\xe5\x15\x42\xe5\x81\xd3\x74\x3a\x42\xe5\x80\x64\x37\x88\x18\xee\x93\x61\x1d\x69\x27\xe1\xf2\x3a\x4d\x31\x6a\x35\x4a\x2b\xef\x2b\xd6\x9a\x33\xe8\x55\xaa\xb9\x72\x93\x92\x93\x07\x31\x4a\xfd\x3b\xf6\xd6\x3c\x16\xad\x34\xd4\x1c\x07\x26\x0e\x93\xf5\xb1\x07\x32\x2a\x0f\x22\x90\x11\x90\xd1\x84\x90\x51\x8b\xf7\xcd\x21\xf0\xa8\xe2\xc2\x19\xa5\x51\x00\x08\x09\xda\xfe\xe9\x69\xfb\x40\x48\x6d\xae\x1b\x20\x24\xd8\x77\xa0\xae\x0c\x55\x5d\x01\x42\xda\x8a\x90\x5a\xb5\x55\x1c\x02\x93\xa6\x22\x3d\x02\x29\x41\xc8\x3c\x70\x9a\x4e\x47\xc8\x1c\x90\x2c\x07\x91\xc3\x7d\x32\xac\x23\x0d\x48\x69\xb4\x62\xd5\xe4\x91\x12\x25\x8e\xdc\x0e\x96\x3a\x45\x49\x26\xdf\x78\xe4\x07\x8f\x81\xbf\xe2\x61\x31\x77\x29\x77\x15\x06\xb6\x0d\xc9\xac\x10\x4c\xff\x93\x0b\xc3\x3f\xa7\x97\x9e\xe7\xa5\x67\x4a\xb5\x44\x9c\x3c\xc7\x82\x28\xcd\x04\x2f\x59\x7a\xd7\xa5\xbd\xa7\x03\x2c\x85\xbf\xad\xe5\x64\x44\xaa\xd1\xa1\x46\x0e\x53\xa6\xdc\x9b\x47\x11\x9d\x76\x12\x51\x9a\xc5\x53\xcc\x24\x8a\x72\x6f\x13\x2e\xf7\xb6\x1f\xd5\xed\x2b\xf5\xb6\xd3\xea\xd7\x02\x86\x44\x81\x37\x14\x78\x43\x81\x37\x14\x78\x9b\x5a\x81\xb7\xfd\x27\x6f\x65\x71\xb7\x8e\x9d\x3e\x8e\x56\xd2\x6d\x7f\xf7\xb7\x97\x73\x1b\xf2\x18\x1c\x52\xc4\x6d\xff\x18\x6c\x2f\xe0\xd6\xf1\x18\xa0\x6c\x1b\xca\xb6\xa1\x6c\x1b\xca\xb6\xa1\x6c\x5b\x67\x65\xdb\x6a\x9c\xfe\x1b\x25\xdb\x76\xa6\xed\x3c\x21\x9f\xcf\x7a\xbd\x99\x70\xd9\xb9\xfd\xc3\xbd\xab\xe4\xdc\x71\xc7\x1d\x85\xe6\x3a\x99\xd1\xcd\x22\x73\x1d\x4f\x6b\xaf\xa5\xe5\xf6\x0f\xcf\x8e\xb2\x72\x5d\x1f\x9b\x43\x2d\x26\xb7\x7f\xd0\x2a\xc8\x46\x63\x7b\x9e\xf9\xd7\x3f\xdb\x83\x69\x15\x29\xfb\x3b\x62\x6a\x45\x90\x16\xd9\xcb\x5f\xce\xd9\x43\x10\x6d\x77\x7c\x6a\x05\xa8\x5d\xe4\xb2\x3f\xe9\x37\x46\x4e\x54\xea\x43\xae\xd4\x9c\x97\x94\xe1\xc2\xbb\xdb\xc2\x71\x40\x71\x40\x71\xe3\x42\x71\xc0\x70\xc0\x70\xc0\x70\xf9\x17\x81\xe1\x80\xe1\x80\xe1\x80\xe1\x80\xe1\x80\xe1\x80\xe1\x80\xe1\x80\xe1\x80\xe1\x80\xe1\x80\xe1\x80\xe1\xc6\x87\xe1\x90\x58\x06\x90\x11\x90\x11\x90\xb1\xff\x19\x05\x64\x2c\x0f\x0f\x20\xe3\xe8\x20\xe3\x9d\xc8\xf8\xdb\xab\x46\x0c\xb1\x97\x98\xdf\xb5\x69\x5f\x88\xac\x2c\xc9\xeb\x19\xde\xc1\xfd\x16\x22\x5b\xa3\x7e\x34\x04\xd7\xb7\x1f\x3e\x57\x3d\x8d\x80\xe7\x03\x29\x5c\x61\x20\x29\x8a\x71\x62\x28\x8e\x16\x4b\xe1\xf1\x57\xc5\x26\x1c\xb0\xe3\x6a\x85\xc8\x76\x58\x81\xbf\x50\x86\x78\x47\x50\xec\x8e\x7d\x54\x59\x8d\x9f\xfa\xf6\xce\xbd\xba\xff\xbc\xf8\x23\x29\xce\x0f\x7e\x04\x7e\x04\x7e\x04\x7e\x34\x35\x7e\x54\x2f\x83\x4d\x25\x43\x3a\x5a\x72\x21\xe4\x80\xaa\x3d\x51\x7d\xe6\x80\x3a\x1a\xf4\x3b\x20\xeb\x52\x25\xf4\x3a\xda\x88\x7c\x2d\xea\xf7\x41\xc4\x52\xad\x76\xb3\x3b\x31\xd7\xde\x49\xce\x40\x9c\x8b\x12\xe6\xf4\xa2\xa5\x53\xc8\x7a\x15\xc9\xe8\x32\x12\x0b\x4e\x0b\xd4\x68\xe8\xc5\xec\x58\x1a\x16\xb9\xad\x61\x64\xc8\x60\xb9\x14\x7e\xc0\x33\x11\x3e\xe7\x6e\x43\xf9\x95\x1b\x84\x17\x46\x03\xa7\x41\x67\x8b\x84\x7b\xb4\x6b\x02\xe9\x3b\x81\x20\xbf\xb4\xc9\x27\xcb\xae\xd2\x55\xaa\x1a\x59\x9c\x2e\xae\x9e\xb4\x1d\x32\x3f\x32\x2f\x14\xad\x0e\xd4\x03\xd4\x4e\x9d\x2b\xb4\xa2\x8d\x0d\xa6\x99\xda\x7c\x4b\x4d\xae\xb2\x6a\xec\xb1\x6b\x0c\x65\xf9\x1f\xc2\x7b\xeb\x8d\xcb\x76\xe6\x7b\xb4\xe5\x0f\xfa\x0b\xfa\x0b\xfa\x0b\xfa\x0b\xfa\xdb\x19\xfd\xad\x79\x17\x6c\x10\xe0\xe3\x5d\x8b\xef\x0b\x21\x26\x71\x28\x78\x2a\xdc\x11\x74\x9b\xc8\x98\x2f\x48\x3a\xba\x95\x61\xe0\x3d\x97\x7c\x8d\xed\xa2\xcb\x63\x54\xd4\xb2\x7b\x3b\xfb\xd3\x8c\x7d\xd1\xe7\x99\x16\x5d\x62\x11\xa9\xcd\x92\xdf\xa9\x82\xc9\x24\xbe\xe7\x91\xf5\x7d\x4e\x56\xe2\x6a\xce\x43\xab\x2b\x7f\x3b\xd3\x1f\x7f\x3b\x63\xf3\x20\xe2\x61\xf0\x6f\x7b\x91\xdc\x09\xc6\x7d\x82\x66\xf2\x4a\x03\x05\x3f\x57\xc3\xf4\xeb\xcf\xd3\xfc\x21\xad\x9f\xce\xd8\x4d\x40\x87\x63\xa1\xe9\x32\xd9\xec\x5b\x8e\x48\x33\xad\x1e\x93\x8e\x22\xb3\xfb\x26\x13\xaa\x7b\xf0\xde\xf6\x7d\xab\xc8\xd3\x28\x93\xf9\x41\x8a\x19\x75\x5d\x6d\xd8\x7b\xf9\xc4\x16\x3c\xb9\xe3\x8b\x92\xe9\xd2\x29\x35\x22\x99\xcb\x64\xa9\xe6\xa4\x72\xbc\x3e\xad\xf5\x68\xfb\x70\x91\xd0\x6b\x25\xd6\x58\x8f\x6d\xa0\xa4\x49\x2f\xf0\x73\x55\x98\x64\x05\x9d\x70\xde\xce\xb1\xba\xac\xcd\x4d\x6a\xa5\x81\x59\x61\x32\xed\x3d\xe2\x18\xa5\xf3\xe3\x2f\xff\xd8\x8c\x5d\x7b\x9e\x88\x75\x3e\xd9\xa2\x66\x77\xae\xfb\x70\xce\x2e\xcd\x02\x2c\x2f\xd0\xf4\x67\x76\xfe\x0b\xf7\x1e\x16\x89\x5c\x45\xbe\xfa\x16\xf9\xc4\xd3\x97\xd6\x06\x4e\x8b\x90\x46\x3e\x2e\xbf\xc4\xf6\xe0\xce\xbd\xe9\x67\x76\xfe\xab\x4c\x44\xe1\xb5\xcc\xe3\xa9\xc7\x7d\xd5\x7b\x33\x3e\x3a\x64\x82\xde\x97\x6a\xd5\x73\xe3\x85\x73\xf7\x8e\x26\x0b\x32\x5e\x5f\xee\xfd\x48\x9c\x13\x76\x66\xa8\x37\x0f\xbb\x1c\x1a\xfa\x9a\x05\xb8\x36\x74\x36\xbf\x9b\xee\x0d\xc7\xb3\x6d\xf4\xe9\xe8\x50\x6f\xb0\x76\x38\x3b\xbc\x54\xfe\xa9\xe4\x78\x20\xd1\x07\x62\x3a\x53\x30\x61\xe2\x00\xba\xf0\xf8\x96\x80\x50\x7d\x33\xe7\x52\xd3\xe0\x63\x43\xd7\xba\xb8\x19\x20\xda\x7a\x98\xbb\x36\xa1\x25\x46\xed\xb6\xb2\xfe\xbe\x08\xf7\x1d\x74\x5c\xbd\xb0\x92\x8d\xb7\x48\xc4\x11\x02\x7b\x3a\x21\xb0\xf5\xae\xa4\x7d\x61\xb0\xc7\xd3\xdd\xe0\xd0\x00\x87\x06\x38\x34\xc0\xa1\x01\x0e\x0d\x55\x87\x2f\x48\xf9\x88\x46\x04\xf0\x14\xf0\x14\xf0\x14\xf0\x14\xf0\x14\xf0\x74\x5a\xf0\x14\x3c\x03\x3c\x03\x3c\x03\x3c\xa3\x73\x9e\x71\x00\xf3\x1f\x68\x18\x67\xbd\x21\xdc\x0c\xe5\x9c\x54\xdd\xf7\xad\x0f\x9c\x56\x0a\xd2\xc3\x2a\xa1\x92\xd9\x7f\x6b\x39\xd4\x53\x08\x91\xdc\x4f\xa8\x46\x51\x38\x70\x2f\x95\x6a\x90\xb6\x74\x2c\xc9\x3e\x5e\xad\x4d\xe5\x59\x2c\xd3\x96\x11\x9c\x56\x84\x18\x6f\x42\xdb\xf4\xb3\x5d\xf3\xb6\x31\x97\xd1\xdf\x7d\x0a\xa1\x96\xfe\xe9\xc4\x51\xa1\x96\x3e\x6a\xe9\x57\x34\x66\x92\xd2\xd5\x84\x0a\xea\xb7\xd5\xd1\x1f\xf6\x76\x54\xfb\x1f\x8f\xbd\xa7\xd3\x15\x96\x49\xf4\x1a\xab\xb0\xfc\x8a\xb5\x94\x26\xa5\xa2\xf8\x49\x87\xd9\x52\x1a\x49\xa5\x3b\x32\xa4\xf4\x2e\x95\x8e\x24\x2f\x0a\x64\xca\xe2\x24\x0f\x56\xa6\x44\x24\xfa\x09\x45\xa2\x23\xe4\x0e\x21\x77\x08\xb9\x43\xc8\x1d\xd4\xe1\x6d\xbb\x68\x90\xf1\x2d\xfd\xa8\x7e\x08\xcf\xd9\xab\xcf\x19\xb5\x65\xac\x1a\x9d\x43\x02\xad\x07\xe5\x24\x82\xfb\x6b\x92\x59\x03\x2d\x4c\xbd\xe5\xc8\x91\x38\x05\x69\x46\x7c\x27\xff\xba\x3b\xf5\x2f\xee\x65\x33\xc6\x6e\xd4\x7f\xed\xdf\x97\x3c\x20\xbb\x67\xca\xbc\x70\x95\x66\x22\xc9\xef\x28\xed\x88\xcb\xc2\xe0\x41\xb0\xf3\xbf\xf3\xa5\x48\x63\xee\x89\x73\x25\x8a\x5a\xf1\x69\xc6\x6e\x43\x1e\x45\x42\xcb\xb0\x24\xe0\xf0\x50\xcb\x54\x6f\x7f\x6c\x72\xe8\x53\x1b\x7b\x12\x3d\xdc\xa0\x39\xc9\xfd\xce\x0e\x9f\xea\x29\xbb\xd1\x23\xa6\xae\x9b\x38\xb5\xa3\x63\x5c\xd0\x56\xa9\x48\xc8\x77\x2c\x17\xc2\x9f\x3b\x1e\x28\xd5\x98\xe9\x92\xfe\x61\xdf\x89\xb0\x27\x16\x67\xf3\xa5\xf7\xcf\x42\x8c\xd7\x9c\xf8\x12\xf6\x8e\x32\x22\xc3\xf4\x2c\x20\x0f\xa0\x46\x09\xe8\x2f\xe9\xd9\x3f\xee\x3e\x10\x97\x22\x59\x88\x5a\xdf\x4c\xb3\x84\x67\x62\x11\x78\x97\xf5\x9f\x51\xff\x7e\x36\xdf\xa4\xa3\xb7\x8e\xa0\x13\xf3\x24\x0b\x28\x40\x4f\x7b\xab\xbd\x5c\xe8\x89\x2b\x8a\x5b\x0f\xc4\xf2\xdc\x95\x3f\xc4\x0e\x4d\xe3\xb6\xec\x54\xc6\x60\x8f\x9e\xb8\x3d\xfa\x74\x7c\x1c\xd6\x42\x61\xec\xe6\xd2\xe1\x5a\xea\x2c\xca\x53\x00\xbc\xde\x72\x4e\xbd\x21\x6b\x9c\x8e\xd1\xe6\x21\x3d\x19\xc9\xe8\x52\x3f\x4d\xdf\x20\x83\x78\xca\x5e\xff\x35\x95\xd1\xad\x8e\x84\xff\xa8\x4e\x44\xf3\xef\x2f\xf6\x9c\xcc\xff\xf8\x66\x48\xce\x17\xf5\xd7\xcd\xaf\x32\xf1\x88\x18\x2c\x24\x4d\xbe\x64\xdf\xce\xe6\xea\x6f\xdf\xce\xd8\x75\x69\x34\xc9\xd1\x5e\x9b\xf7\x49\xf9\x30\x1b\xf5\x92\x7b\x34\x01\x14\x4b\x1d\x06\x9e\x31\x58\x92\xae\x22\x9f\xcc\xdc\xea\x58\xe3\x58\xc8\x38\x14\x33\xa6\x7f\x93\x52\x28\xd8\x35\x45\xee\xee\x95\x13\xe1\x7e\xbe\xc9\xf0\xaa\x1f\x82\xca\xa2\x3f\x80\xca\x32\x66\x95\x25\x5e\xf3\x31\x1f\xab\xd2\xb2\x6a\xdd\x62\x16\x87\xdc\x6b\x41\x7e\x34\x2f\x3a\x2d\x09\x12\x1e\xb5\x90\x36\x9b\x4c\xd3\xe9\x48\x9b\x03\x12\xea\x20\x7b\xb8\x4f\x06\x78\xae\x9d\x8e\x47\xed\x84\x85\xac\xd5\x78\xed\xc2\xaf\x58\xbb\x6e\xa6\x57\xa9\x86\xd5\x4d\xca\x64\x1e\x84\x3b\xf5\xef\xd8\xeb\xf4\xa8\xe0\xd3\xf0\x78\x1c\xa7\x38\x65\x8e\x78\xca\x80\x3e\x81\x3e\x81\x3e\x55\x7c\xb3\x3f\xfa\xd4\xe2\x1d\x74\x30\x87\xaa\xb8\x84\x46\x69\x4b\x00\x8d\x82\x7d\xe0\xf4\xec\x03\xa0\x51\x6d\xae\x1b\xd0\x28\x58\x84\xa0\xc2\xb0\xc1\xab\x30\xa0\x51\xd5\xb3\x69\x69\x54\xab\x36\x8d\x83\xb9\xd4\x54\x24\x4a\xd0\x29\x48\x9f\x4d\xa6\xe9\x74\xa4\xcf\x01\x09\x79\x90\x45\xdc\x27\x03\x3c\xd7\x40\xa7\x26\x20\x74\x9d\x10\x9d\xa2\xa4\x98\xdb\x19\x55\xa7\x54\xca\xe4\x52\x8f\xfc\xe0\x31\xf0\x57\x3c\x2c\xe6\x65\xe5\xae\x7a\xc2\xb6\xc1\x99\x15\x82\xfd\x7f\x72\x69\x02\xce\xe9\xa5\xe7\x79\x59\x9d\x52\x9d\x14\x27\xf2\xb1\x20\x4a\x33\xc1\x4b\x06\xe2\x75\x81\xf0\xe9\x50\x03\xe3\x6f\x6b\xa9\x26\x91\x4b\x75\xa8\xe1\xcd\x94\x0a\xf8\xe6\x51\x44\x48\x90\xaa\x97\xf9\xc9\x66\x49\x45\x65\xbb\x09\x57\xb6\xdb\x0f\xfc\xf6\x55\xb5\xdb\x69\x36\x6c\x01\x66\xa2\x96\x1d\x6a\xd9\xa1\x96\x1d\x6a\xd9\x4d\xad\x96\xdd\xfe\x93\xb7\xb2\x8e\x5d\xc7\xae\x23\x47\xab\x5e\xb7\xbf\xfb\xdb\x2b\xd7\x0d\x79\x0c\x0e\xa9\x57\xb7\x7f\x0c\xb6\xd7\xaa\xeb\x78\x0c\x50\xa1\x0e\x15\xea\x50\xa1\x0e\x15\xea\x50\xa1\xae\xb3\x0a\x75\x35\x4e\xff\x8d\xea\x74\x3b\xb3\x8c\x9e\x90\xe7\x68\xbd\xde\x4c\xb8\xc2\xde\xfe\xe1\xde\x55\x5d\xef\xb8\xe3\x8e\x9a\x7a\x9d\xcc\xe8\x66\x3d\xbd\x8e\xa7\xb5\xd7\x2a\x7a\xfb\x87\x67\x47\x05\xbd\xae\x8f\xcd\xa1\xd6\xcd\xdb\x3f\x68\x15\x8c\xa3\xb1\x3d\xcf\xfc\xeb\x9f\x2d\x03\xb6\x8a\x5a\x03\x1d\x71\xb6\x22\x5c\x8b\xac\x04\x20\xe7\xec\x21\x88\xb6\xfb\x4b\xb5\x02\xd9\x2e\x72\x05\x80\x94\x1c\x23\x2c\x2a\x1d\x22\xd7\x6c\xce\x4b\x1a\x71\xe1\xdd\xad\x22\x3a\xe0\x39\xe0\xb9\x11\xe2\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\x39\xa0\xb9\xd1\xa3\x39\xa4\xac\x01\x78\x04\x78\x04\x78\xec\x7f\x46\x01\x1e\xcb\xc3\x03\xf0\x38\x68\xf0\x98\x88\x45\x40\xe9\xbc\x54\x2b\x0d\x7a\x6c\x04\x13\x7b\x89\x14\x5e\x9b\xf0\x05\x15\x5d\x9d\xcb\x64\xe9\x16\x38\x67\x1a\x60\x6c\x67\x80\x0b\x91\x5d\x97\xc7\xe1\xfa\xf6\xc3\x9f\xd7\x1f\x42\x80\xf4\x81\x0c\xce\x0d\xe2\xf8\x09\x5c\x71\x6d\x14\x1e\x7c\x55\xfc\xf1\x5a\x1b\xeb\xf1\xed\xb8\xf7\x56\x49\x3f\xd6\xe7\xe6\x41\x1b\xeb\xf7\xb7\xd7\xb7\x1f\x3e\x57\x3d\x8a\xed\x75\xf8\xf6\xb2\x03\x49\x61\xc3\xd3\xda\x65\xff\xfd\xf8\xf6\xa5\x1b\xcd\xe0\xc4\xc0\x2b\x4d\xa3\xad\x68\xdb\xaa\x7f\x8c\xa9\x9d\x5d\x28\x44\x2e\xe7\xec\xfa\xf6\xc3\x17\xfd\xfb\x3b\xb6\x88\x7e\x72\x63\x97\xbc\x73\x6f\xaa\x7e\x4b\xb7\x59\x82\x3a\x59\xaf\xef\xa9\xa7\x9f\x62\x9d\x15\xa0\xde\x6a\xdd\xbd\x4c\xc1\x57\xc1\x57\xc1\x57\xc1\x57\xa7\xc6\x57\xeb\x65\x87\xaa\x64\xac\x47\x4b\xdc\x85\xfc\x6a\xb5\x27\xaa\xcf\xfc\x6a\x47\x83\xe2\x07\x64\x34\xab\x84\xc2\x47\x1b\x91\xaf\x45\xfb\x57\x10\xb1\x54\x9b\xa5\xd8\x9d\x98\x6b\xef\x3d\x07\x50\x72\x51\xc2\x9c\x5e\xb4\x74\x0a\x19\xe5\x22\x19\x5d\x46\x62\xc1\x69\x81\x1a\x0b\x56\x31\xf3\x9c\x86\xa9\x6e\x6b\x18\x21\x31\x58\x2e\x85\x1f\xf0\x4c\x84\xcf\xb9\x5b\x5d\x7e\xe5\x06\xe1\x85\xb1\x50\xd1\xa0\xb3\x45\xc2\x3d\xda\x35\x81\xf4\x9d\x40\x90\x5f\xda\xe4\xb3\x68\x57\xe9\x2a\x55\x8d\x2c\x4e\x17\x57\x4f\xda\x0e\x99\x1f\x99\x17\x0a\xd1\x07\xea\x01\x6a\xa7\x4e\xd0\x5b\xd1\xc6\x06\xd3\x4c\x6d\xbe\xa5\x26\x57\x59\xfd\xf6\xd8\xfd\x86\xb2\xfc\x0f\xf1\x87\xa8\x37\x2e\xdb\x7d\x22\x8e\xb6\xfc\xe1\x1d\x01\xef\x08\x78\x47\xc0\x3b\x02\xde\x11\x9d\x79\x47\xd4\xbc\x0b\x36\x3c\x24\x8e\x77\x2d\xbe\x2f\x44\x64\xc5\xa1\xe0\xa9\x70\x47\xd0\x6d\x22\x63\xbe\x20\xe9\xe8\x56\x86\x81\xf7\x5c\xf2\xc5\xb7\x8b\x2e\x0f\xe9\x52\xcb\xee\xed\xec\x4f\x33\xf6\x45\x9f\x67\x5a\x74\x89\x45\xa4\x36\x4b\x7e\xa7\x0a\x26\x93\xf8\x9e\x47\x36\x36\x20\x59\x89\xab\x39\x0f\xad\xae\xfc\xed\x4c\x7f\xfc\xed\x8c\xcd\x83\x88\x87\xc1\xbf\xed\x45\x72\x27\x18\xf7\x09\x2a\xcb\x2b\x0d\xdc\xfc\x5c\x0d\xd3\xaf\x3f\x4f\xf3\x87\xb4\x7e\x3a\x63\x37\x01\x1d\x8e\x85\xa6\xcb\x64\xb3\x6f\xb9\x0b\x41\xa6\xd5\x63\xd2\x51\x64\x76\xdf\x64\x42\x75\x0f\xde\xdb\xbe\x6f\x15\x79\x1a\x95\x0f\x38\x48\x31\xa3\xae\xab\x0d\x7b\x2f\x9f\xd8\x82\x27\x77\x7c\x51\xb2\x4d\x3a\xa5\x46\x24\x73\x99\x2c\xd5\x9c\x54\x8e\xd7\xa7\xb5\x1e\x6d\x1f\x2e\x12\x7a\xad\xc4\x1a\xeb\xb1\x0d\x94\x34\xe9\x05\x7e\xae\x0a\x93\xac\xa0\xab\x3c\xd8\x39\x4e\x89\xd7\xd1\xa7\x56\x1a\x98\x15\x26\xd3\xde\x23\x8e\xe1\xbb\x38\x97\xf2\x8f\xcd\xd8\xb5\xe7\x89\x58\xe7\x6a\x2e\x6a\x76\xe7\xba\x0f\xe7\xec\xd2\x2c\xc0\xf2\x02\x4d\x7f\x66\xe7\xbf\x70\xef\x61\x91\xc8\x55\xe4\xab\x6f\x51\xcc\x08\x7d\x69\x6d\xe0\xb4\x08\x69\xe4\xe3\xf2\x4b\x6c\x0f\xee\xdc\x9b\x7e\x66\xe7\xbf\xca\x44\x14\x5e\xcb\x3c\x9e\x7a\xdc\x57\xbd\x37\xe3\xa3\x43\x8a\xe8\x7d\xa9\x56\x3d\x37\x5e\x38\x77\xef\x68\xb2\x20\xe3\xf5\xe5\xde\x8f\xc4\x39\x61\x67\x9f\x7a\xf3\xb0\xcb\xe1\xa7\xaf\x59\x80\xeb\x4f\x67\xf3\xbb\xe9\xfe\x73\x3c\xdb\x46\x9f\x8e\x40\xf5\x06\x6b\x87\x33\xd0\x4b\xe5\x9f\x4a\x50\x07\xac\x7c\x20\xa6\x33\x15\x49\xa6\x4c\x93\x0b\xcf\x6e\x09\x99\xd6\xd7\x72\x2e\x32\xb5\x14\x3d\x5d\x01\xaa\xab\xe3\xa7\x2b\xa1\xef\x7a\xc4\xf4\xae\x60\xe9\xd6\x33\x40\x68\x73\x59\x62\x54\x6c\x2b\xd7\xdb\xe4\x0f\xb5\x50\xb7\x7a\x45\x95\x3b\xc8\x0b\xf0\x36\xe2\xbd\x4f\x27\xde\xbb\xde\xfd\xb2\x2f\xe6\xfb\x78\x8a\x18\xbc\x13\xe0\x9d\x00\xef\x04\x78\x27\xc0\x3b\xa1\xea\xf0\x05\xf6\x1e\xd1\x88\x80\x84\x82\x84\x82\x84\x82\x84\x82\x84\x82\x84\x4e\x8b\x84\x02\x4e\x00\x4e\x00\x4e\x00\x4e\x74\x0e\x27\x0e\x00\xf8\x03\x8d\x59\xae\x37\x84\x9b\x71\xcb\x2f\xb5\xb8\x0d\x0a\xeb\x6c\x7d\xe0\x84\x32\xef\xaa\xb6\x5f\xf2\xc5\x42\xed\xc4\x4c\x96\xab\x04\x97\x08\x87\x0e\x52\x34\xe6\xfd\xc9\xc7\x28\xee\xa7\x4a\x2d\x96\xc8\x3c\x1e\x49\x6a\x90\x76\x77\x2c\xc9\x6a\x5e\xad\xcd\xdc\x59\x2c\xd3\x96\xb1\x99\xd6\x6d\x18\x8f\xea\x21\x32\xfd\xf5\x96\x21\x59\xb3\x18\xd0\x1d\xb9\x8e\x8e\x7d\x74\xb4\x12\x2c\x8a\x80\xa5\xe2\x6a\x18\x6c\xc0\x12\x99\x34\x3e\xf2\x88\x2f\x44\xa2\x8d\x73\x94\xd8\x8b\xa7\xa9\xf4\x02\xd2\x36\x9d\x19\x8c\x93\x35\x53\x26\x4c\x44\x99\x12\xff\xac\xfa\xbd\xe4\x0f\x6a\x14\xb3\x7b\x91\x0a\x2b\x43\x15\xc3\x72\x6c\xf8\x0e\xc9\x90\x64\xf2\x92\x09\x7b\xfb\xc3\x8f\xea\xbb\x09\xf7\x88\x71\x85\x32\x5a\x68\x89\x89\xcc\x52\x9e\x8c\x32\x1e\x44\xfa\xd0\x22\xb3\x4f\xfe\x5d\xb2\xfb\x1b\x02\xc7\xee\x9e\x9d\x52\xb0\x90\x21\x8f\x16\x33\x99\x2c\xae\xe2\x87\xc5\xd5\x2a\x0a\x3c\xe9\x8b\xab\x3f\x7c\x48\x6f\xd5\x5b\x1a\xdb\x91\xcd\xe0\xb4\x39\x3d\x83\x12\xb1\x26\x27\xf9\xd4\x95\x7a\x7e\xa8\x21\xf5\xbc\xd3\xb6\xb2\x91\xf4\xe7\x87\xbd\xfd\xd1\x6e\xbb\x23\xe9\xd0\x44\xc5\x52\x92\x7a\x46\x22\x96\xbe\x62\xcd\x12\x80\x54\x14\xc9\xe9\x30\x0f\x48\x5d\x71\x6f\x4b\xf2\x0f\xa4\xfc\x60\xdb\x06\x18\x52\x5c\x71\x92\x07\x2b\xc5\x21\xc8\xfa\x84\x82\xac\x11\x4d\x86\x68\x32\x44\x93\x21\x9a\x0c\x0a\xe8\xb6\x5d\x34\xc8\xd0\x8d\x1e\xd4\x33\x44\x9e\xec\x55\xc6\x8c\x56\x32\x12\x75\xcc\x59\xce\x5b\x8f\x37\x49\x04\xf7\xd7\xa4\xb0\x5a\x2a\x95\x7a\xae\xdb\x20\x93\x82\x68\x22\xbe\x93\xeb\xd8\x9d\xfa\x17\xf7\xb2\x19\x63\x37\xea\xbf\xf6\xef\x4b\x1e\x90\xd9\x30\x65\x5e\xb8\x4a\x33\x91\xe4\x17\x8e\xf6\x31\x65\x61\xf0\x20\xd8\xf9\xdf\xf9\x52\xa4\x31\xf7\xc4\xb9\x92\x2b\xad\x2c\x34\x63\xb7\x21\x8f\x22\xa1\x05\x52\x92\x56\x78\xa8\x05\xa4\xb7\x3f\x36\x39\xc1\xa9\x8d\x3d\xc9\x11\x6e\xd0\x9c\x18\x7e\x67\x87\x4f\xf5\x94\xdd\xe8\x11\x53\x77\x47\x9c\xda\xd1\x31\xde\x55\xab\x54\x24\xe4\x16\x95\x4b\xd4\xcf\x1d\x0f\x94\x6a\xcc\x74\x21\xf6\x80\x2f\x38\x18\xf0\x1a\xdc\x19\x0b\x31\x1a\xfb\xdd\x4b\xb0\x72\xb1\xc2\xcb\xb6\xdf\x47\x4d\x97\x63\x60\x72\xf2\x50\x69\x94\xb7\xfc\x92\x9e\xfd\xe3\xee\x53\x6d\x29\x92\x85\xa8\xf5\x4d\x5a\xab\x62\x11\x78\x97\xf5\x9f\x51\xff\x7e\x36\xdf\xa4\xf3\xb3\x8e\x38\x12\xf3\x24\x0b\x28\x80\x4c\x7b\x53\x35\x11\x4d\x62\x53\x6a\xbc\x7f\x63\x6f\x27\x6c\x7f\xb7\x70\x7f\x5b\xf6\x6a\x62\x30\x01\x4f\xdc\x04\x7c\x3a\x20\x7f\x2d\x16\xc3\x6e\x2e\x1d\x2f\xa4\x0e\x9b\x3c\x06\xfd\xf5\x96\x83\xe8\x0d\x19\xc0\x74\x90\x30\x0f\xe9\xc9\x48\x46\x97\xfa\x69\xfa\x06\xd9\xa0\x53\xf6\xfa\xaf\xa9\x8c\x6e\x75\x28\xf6\x47\x75\xe4\x99\x7f\x7f\xb1\x07\x61\xfe\xc7\x37\x43\xf2\x30\xa8\xbf\x6e\x7e\x95\x89\x47\x46\xfa\x85\xa4\xc9\x97\xec\xdb\xd9\x5c\xfd\xed\xdb\x19\xbb\x2e\x8d\x26\x79\x7a\x6b\x8b\x3a\xa9\x08\x66\xa3\x5e\x72\x8f\x26\x80\x82\x79\xc3\xc0\x33\x36\x42\xd2\x28\xe4\x93\x99\x5b\x1d\xec\x1a\x0b\x19\x87\x62\xc6\xf4\x6f\x52\x0c\xbf\x5d\x53\xe4\x6f\x5d\x39\x11\xee\xe7\x9b\x0c\xaf\xfa\x21\x28\x16\xfa\x03\x28\x16\x6b\x6f\x1d\x9c\x62\x11\xaf\x39\x32\x8f\x44\xb5\x58\xb5\x6e\x8b\x8a\x43\xee\x35\x92\xf9\xcc\xa3\xd3\x95\xfa\xe0\xd1\x09\x41\x10\x82\x20\x3c\x3a\x21\x16\xe8\x7f\xaf\x21\xb6\x69\x79\x74\x4e\x55\xcc\x59\x8d\xc6\x7e\xfa\x8a\xbd\xc8\xff\xf1\x2a\xd5\x8c\xb5\x49\x09\xc2\x83\xc8\x9d\xfe\x1d\x7b\xef\xb5\xcb\xf0\x0c\x27\xc6\xc1\x86\x83\x00\x20\x05\x20\x05\x20\x65\xd4\x20\xe5\x45\x37\xc5\x3e\xa4\x52\x71\x55\x8c\x4f\xc5\x06\x58\x81\x3e\x7d\x92\xfa\x34\xc0\x4a\x9b\xeb\x06\x60\x05\x16\x14\x28\x1a\xc3\x50\x34\x00\x56\x4a\x60\xe5\x85\xd6\x82\x7d\x88\x65\x12\x52\x20\x40\x0b\x04\x43\x08\x86\x00\x2d\x10\x13\xf4\xbf\x01\x5a\x46\x28\xf6\x4c\x14\xb4\x50\xca\xbe\x22\x6e\xe9\x14\xb0\x98\xdc\xce\x91\x1f\x3c\x06\xfe\x8a\x87\xc5\x3c\x91\xdc\x65\x73\xcf\x3b\x3e\x2b\x04\x58\xff\xe4\x42\xb3\xcf\xe9\x35\xe7\x79\x61\x8f\x52\xa5\x06\x27\x63\xb1\x20\x4a\x33\xc1\x4b\x76\xd3\x75\x09\xec\x69\x8f\x15\xee\xb7\xb5\xbc\x77\x48\xde\x38\xd4\x08\x52\xca\x3d\x7a\xf3\x28\xa2\x53\x4f\xd5\x48\xf3\x78\x2a\xf9\x1a\x51\x36\x6b\xc2\x65\xb3\xf6\x23\xae\x7d\x25\xb3\x76\xda\xd1\x5a\xc0\x77\x28\x94\x85\x42\x59\x28\x94\x85\x42\x59\x53\x2b\x94\xb5\xff\xe4\xad\x2c\x92\xd5\xb1\xb3\xc4\xd1\x4a\x63\xed\xef\xfe\xf6\xb2\x58\x43\x1e\x83\x43\x8a\x61\xed\x1f\x83\xed\x85\xb0\x3a\x1e\x03\x94\xbf\x42\xf9\x2b\x94\xbf\x42\xf9\x2b\x94\xbf\xea\xac\xfc\x55\x8d\xd3\x7f\xa3\xf4\xd5\xce\xa4\x8d\x27\xe4\x2b\x59\xaf\x37\x13\x2e\xdf\xb5\x7f\xb8\x77\x95\xee\x3a\xee\xb8\xa3\x60\x57\x27\x33\xba\x59\xac\xab\xe3\x69\xed\xb5\x44\xd7\xfe\xe1\xd9\x51\x9e\xab\xeb\x63\x73\xa8\x45\xb9\xf6\x0f\x5a\x05\xcf\x68\x6c\xcf\x33\xff\xfa\xe7\xcb\xe0\x58\x45\x2e\xf6\x8e\x18\x59\x11\x8c\x45\xf6\xc2\x97\x73\xf6\x10\x44\x7e\xdb\x80\xec\x22\x97\xf0\x49\x8b\x31\xd2\xa0\x52\x12\x72\xd5\xe5\xbc\xa4\xf2\x16\xde\xfd\x12\xbc\x06\xb4\x06\xb4\x36\x36\xb4\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x06\xac\x36\x36\xac\x86\x94\x2a\xf5\x67\x07\x98\x10\x98\x10\x98\x10\x98\x10\x98\x10\x98\xd0\x61\xc2\x3b\x91\xf1\xb7\x57\x8d\x98\x60\x2f\x51\xb5\x6b\x13\xbf\x10\x59\x59\x7a\xd7\x73\xbc\x83\xea\x2d\x44\xb6\xc1\xf4\x68\x10\xae\x6f\x3f\x7c\xae\x7a\x1e\x41\xc5\x07\x12\xb7\xc2\x40\x52\x04\xe2\xe4\xb0\x1b\x2d\x97\xc2\x0b\x5e\x15\x1b\x71\xd0\xbe\xdb\x12\xba\xda\x61\x89\xf4\x42\x01\xd9\x52\xb0\xea\x8e\x1d\xb3\xa5\x5a\x3a\xf5\xe0\x9d\x7b\x1d\x8a\xa7\xb3\x6d\x43\x0f\x22\x04\x22\x04\x22\x04\x22\x34\x35\x22\x54\x2f\x03\x4c\x25\x15\x3a\x5a\x72\x1e\xe4\x50\xaa\x3d\x51\x7d\xe6\x50\x3a\x1a\xc6\x3b\x20\x6b\x51\x25\xc6\x3a\xda\x88\x7c\x2d\xea\xef\x41\xc4\x52\xad\x56\xb3\x3b\x31\xd7\xfe\x46\xce\xe4\x9b\x8b\x12\xe6\xf4\xa2\xa5\x53\xc8\x1a\x15\xc9\xe8\x32\x12\x0b\x4e\x0b\xd4\x68\xe0\xc5\xec\x52\x1a\xff\xb8\xad\x61\x24\xc5\x60\xb9\x14\x7e\xc0\x33\x11\x3e\xe7\x8e\x40\xf9\x95\x1b\x84\x17\x46\xc3\xd6\x25\xfc\x17\x09\xf7\x68\xd7\x04\xd2\x77\x02\x41\x7e\x69\x93\x97\x95\x5d\xa5\xab\x54\x35\xb2\x38\x5d\x5c\x3d\x69\x3b\x64\x7e\x64\x5e\x28\x3c\x1c\xa8\x07\xa8\x9d\x3a\x3f\x66\x45\x1b\x1b\x4c\x33\xb5\xf9\x96\x9a\x5c\x65\xb5\xd8\x63\xb7\x18\xca\xf2\x3f\x84\xe0\xd6\x1b\x97\xed\x14\xf7\x68\xcb\x1f\x3c\x17\x3c\x17\x3c\x17\x3c\x17\x3c\xb7\x33\x9e\x5b\xf3\x2e\xd8\x60\xba\xc7\xbb\x16\xdf\x17\xc2\x43\xe2\x50\xf0\x54\xb8\x23\xe8\x36\x91\x31\x5f\x90\x74\x74\x2b\xc3\xc0\x7b\x2e\x79\x0f\xdb\x45\x97\xc7\x97\xa8\x65\xf7\x76\xf6\xa7\x19\xfb\xa2\xcf\x33\x2d\xba\xc4\x22\x52\x9b\x25\xbf\x53\x05\x93\x49\x7c\xcf\x23\xeb\xcd\x9c\xac\xc4\xd5\x9c\x87\x56\x57\xfe\x76\xa6\x3f\xfe\x76\xc6\xe6\x41\xc4\xc3\xe0\xdf\xf6\x22\xb9\x13\x8c\xfb\x04\xc5\xe4\x95\x06\x06\x7e\xae\x86\xe9\xd7\x9f\xa7\xf9\x43\x5a\x3f\x9d\xb1\x9b\x80\x0e\xc7\x42\xd3\x65\xb2\xd9\xb7\x1c\x81\x66\x5a\x3d\x26\x1d\x45\x66\xf7\x4d\x26\x54\xf7\xe0\xbd\xed\xfb\x56\x91\xa7\x51\xf6\xee\x83\x14\x33\xea\xba\xda\xb0\xf7\xf2\x89\x2d\x78\x72\xc7\x17\x25\x03\xa5\x53\x6a\x44\x32\x97\xc9\x52\xcd\x49\xe5\x78\x7d\x5a\xeb\xd1\xf6\xe1\x22\xa1\xd7\x4a\xac\xb1\x1e\xdb\x40\x49\x93\x5e\xe0\xe7\xaa\x30\xc9\x0a\x3a\xc9\xba\x9d\x63\x75\x59\x9b\x9b\xd4\x4a\x03\xb3\xc2\x64\xda\x7b\xc4\x31\x48\xe7\x99\x5f\xfe\xb1\x19\xbb\xf6\x3c\x11\xeb\x7c\xac\x45\xcd\xee\x5c\xf7\xe1\x9c\x5d\x9a\x05\x58\x5e\xa0\xe9\xcf\xec\xfc\x17\xee\x3d\x2c\x12\xb9\x8a\x7c\xf5\x2d\xf2\x72\xa7\x2f\xad\x0d\x9c\x16\x21\x8d\x7c\x5c\x7e\x89\xed\xc1\x9d\x7b\xd3\xcf\xec\xfc\x57\x99\x88\xc2\x6b\x99\xc7\x53\x8f\xfb\xaa\xf7\x66\x7c\x74\x10\x04\xbd\x2f\xd5\xaa\xe7\xc6\x0b\xe7\xee\x1d\x4d\x16\x64\xbc\xbe\xdc\xfb\x91\x38\x27\xec\xac\x50\x6f\x1e\x76\x39\x2c\xf4\x35\x0b\x70\x5d\xe8\x6c\x7e\x37\xdd\x17\x8e\x67\xdb\xe8\xd3\x91\xa1\xde\x60\xed\x70\x66\x78\xa9\xfc\x53\x49\xeb\x40\x99\x0f\xc4\x74\xa6\xb8\xc0\xe4\xe1\x72\xe1\x05\x5b\x02\x3b\xf5\xdd\x9c\xcb\x4d\x83\x8c\xf1\x5c\xeb\xd6\x66\xa0\x67\xeb\xa1\xe8\xda\x70\x96\x18\x65\xdb\x4a\xf8\x9b\x51\xe8\x3b\xc8\xb7\x7a\xc5\x56\x67\x91\x17\xd0\x6e\x04\xac\x9e\x4e\xc0\x6a\xbd\xeb\x66\x5f\xd0\xea\xf1\xf4\x32\x38\x2b\xc0\x59\x01\xce\x0a\x70\x56\x80\xb3\x42\xd5\xe1\x0b\x0a\x3e\xa2\x11\x01\x18\x05\x18\x05\x18\x05\x18\x05\x18\x05\x18\x9d\x16\x18\x05\xab\x00\xab\x00\xab\x00\xab\xe8\x9c\x55\x1c\xc0\xf3\x07\x1a\x82\x59\x6f\x08\x37\xc3\x30\x27\x55\xc7\x7c\xeb\x03\x27\x94\x26\xf4\x80\xca\xa1\x64\xe2\x9f\xad\x15\x52\x04\x69\x3a\x1b\x6c\x61\xbe\xbd\x74\xa9\x41\x1a\xd1\xb1\xa4\xe2\x78\xb5\x36\x7d\x67\xb1\x4c\x5b\x46\x69\x5a\xd5\x61\x3c\xaa\x87\xcd\xf4\xd7\xbb\x00\x67\xe3\xac\x0b\xbf\x7e\x9c\xa0\x38\xfc\xe9\x04\x36\xa1\x38\x3c\x8a\xc3\x57\x34\x66\xf4\x22\xd1\x24\x2a\xc4\x37\xef\xd4\x0f\x7b\x3b\xa5\x1d\x7d\xc7\xd4\xab\x29\x4b\xae\x24\x13\x8d\x49\x72\x7d\xc5\x5e\x90\x4b\xa4\xa2\xd2\x47\x87\x29\x45\xea\x8a\x85\xbb\xf2\x88\x20\x7b\x08\xdb\x36\xca\x10\xf4\x8a\x93\x3c\x58\x41\x0f\xf1\xda\x27\x14\xaf\x8d\xc0\x34\x04\xa6\x21\x30\x0d\x81\x69\xd0\x51\xb7\xed\xa2\x41\x46\x81\xf4\xa0\xb7\x21\x88\xe5\x90\x20\x96\x51\xa9\x68\xce\xe0\xde\x7a\xe8\x4a\x22\xb8\xbf\x26\x8f\xd5\xd2\xb0\xd4\x73\x47\x88\x57\x29\x48\x2a\xe2\x3b\x79\xa1\xdd\xa9\x7f\x71\x2f\x9b\x31\x76\xa3\xfe\x6b\xff\xbe\xe4\x01\x19\x1a\x53\xe6\x85\xab\x34\x13\x49\x7e\xff\x68\x77\x55\x16\x06\x0f\x82\x9d\xff\x9d\x2f\x45\x1a\x73\x4f\x9c\x2b\x31\xd3\x8a\x46\x33\x76\x1b\xf2\x28\x12\x5a\x3e\x25\xe1\x85\x87\x5a\x5e\x7a\xfb\x63\x93\x03\x9d\xda\xd8\x93\x58\xe1\x06\xcd\x49\xe5\x77\x76\xf8\x54\x4f\xd9\x8d\x1e\x31\x75\x95\xc4\xa9\x1d\x1d\xe3\xa8\xb5\x4a\x45\x42\x1e\x56\xb9\x80\xfd\xdc\xf1\x40\xa9\xc6\x4c\x97\x87\x0f\xf8\xbe\x83\xa1\xef\x45\xf7\xc8\x42\x8c\xcb\xce\xf7\x12\x42\x8d\xe2\x17\x6b\xdd\xec\x8d\xb8\x93\xef\x4b\xa3\xa4\xe9\x97\xf4\xec\x1f\x77\x1f\x72\x4b\x91\x2c\x44\xad\x6f\xd2\x82\x15\x8b\xc0\xbb\xac\xff\x8c\xfa\xf7\xb3\xf9\x26\x1d\xa7\x75\x44\x94\x98\x27\x59\x40\xa1\x69\xda\x4f\xab\x89\xb8\x12\x57\x16\x58\x9e\x96\x9b\xc0\x6e\xf9\xff\xb6\xec\x34\xc5\x60\x25\x9e\xb8\x95\xf8\x74\xdc\x01\xd6\x42\x3d\xec\xe6\xd2\xe1\x48\xea\xc4\xc9\x43\xdc\x5f\x6f\x39\x8d\xde\x90\x8d\x4c\xc7\x20\xf3\x90\x9e\x8c\x64\x74\xa9\x9f\xa6\x6f\x90\x99\x3a\x65\xaf\xff\x9a\xca\xe8\x56\x47\x7a\x7f\x54\xe7\x9e\xf9\xf7\x17\x7b\x1a\xe6\x7f\x7c\x33\x24\x3f\x85\xfa\xeb\xe6\x57\x99\x78\x64\xc7\x5f\x48\x9a\x7c\xc9\xbe\x9d\xcd\xd5\xdf\xbe\x9d\xb1\xeb\xd2\x68\x92\x23\xb9\x36\xba\x93\xda\x60\x36\xea\x25\xf7\x68\x02\x28\x56\x38\x0c\x3c\x63\x46\x24\x2d\x43\x3e\x99\xb9\xd5\xb1\xb4\xb1\x90\x71\x28\x66\x4c\xff\x26\xa5\x08\xb0\x6b\x8a\xdc\xb9\x2b\x27\xc2\xfd\x7c\x93\xe1\x55\x3f\x04\x65\x43\x7f\x00\x65\xa3\xea\xad\xc3\x54\x36\xe2\xc1\x96\xd4\xdf\xaf\x6e\xac\x5a\xb7\x59\xc5\x21\xf7\x1a\xc9\x81\xe6\xd1\x89\x4b\x82\x70\x18\x85\x84\x58\x63\x9a\x4e\x47\x42\x1c\x90\x20\x06\x79\xc1\x7d\xd2\xb7\xbc\x30\x49\x87\xd1\x49\x0b\x41\xab\x71\x59\x5c\x5f\xb1\x97\x7b\x56\x5e\xa5\x1a\xdc\x36\x29\x9b\x78\x10\x04\xd4\xbf\x63\x2f\xc4\x0e\x70\xa0\x21\xd0\x38\xf6\x70\x42\x80\xc9\xac\x0d\x22\x98\x0c\x98\xcc\xa8\x99\xcc\x8b\x6e\x8f\x5a\x74\xa6\xe2\xfa\x18\x9f\x66\x0e\x46\x03\x0d\xfc\x24\x35\x70\x30\x9a\x36\xd7\x0d\x18\x0d\x6c\x2e\x50\x3e\x0a\x7d\x1d\x84\xf2\x01\x46\xb3\xc9\x68\x5e\x68\x55\xa8\x45\x6b\x26\x21\x19\x82\xd9\x40\x62\xac\x31\x4d\xa7\x23\x31\x0e\x48\x30\x83\xfc\xe0\x3e\xe9\x5b\x7e\x00\xb3\x19\x9b\x50\x34\x79\x66\x43\xe9\x08\x8b\xe4\xa6\x53\x56\x63\xf2\x56\x47\x7e\xf0\x18\xf8\x2b\x1e\x16\x73\x60\x72\x97\xa9\x3e\x1f\x82\x59\x21\x00\xfc\x27\x17\x3a\x7e\x4e\xaf\x39\xcf\x8b\x96\x94\xaa\x50\x38\x31\x8c\x05\x51\x9a\x09\x5e\x32\xb7\xae\x0b\x69\x4f\x75\x8c\x77\xbf\xad\xa5\xf3\x43\x76\xca\xa1\x86\xb9\x52\x72\xd5\x9b\x47\x11\x21\x0d\xa5\x5d\xdc\x27\x95\x8b\x12\x15\xc2\x26\x5c\x21\x6c\x3f\x28\xdb\x57\x1d\x6c\xa7\x21\xae\x05\x08\x88\x9a\x60\xa8\x09\x86\x9a\x60\xa8\x09\x36\xb5\x9a\x60\xfb\x4f\xde\xca\x7a\x60\x1d\xbb\x5c\x1c\xad\x0a\xd8\xfe\xee\x6f\xaf\x00\x36\xe4\x31\x38\xa4\xee\xd7\xfe\x31\xd8\x5e\xf3\xab\xe3\x31\x40\xa5\x2f\x54\xfa\x42\xa5\x2f\x54\xfa\x42\xa5\xaf\xce\x2a\x7d\xd5\x38\xfd\x37\xaa\x7c\xed\xcc\x31\x79\x42\x1e\x97\xf5\x7a\x33\xe1\x4a\x65\xfb\x87\x7b\x57\x95\xb2\xe3\x8e\x3b\x6a\x93\x75\x32\xa3\x9b\x75\xc9\x3a\x9e\xd6\x5e\xab\x91\xed\x1f\x9e\x1d\x95\xc8\xba\x3e\x36\x87\x5a\x7f\x6c\xff\xa0\x55\x90\x8d\xc6\xf6\x3c\xf3\xaf\x7f\xb6\x00\xcc\x2a\x92\xc8\x77\xc4\xcd\x8a\xb0\x2c\xb2\xb7\xbe\x9c\xb3\x87\x20\xf2\xdb\x86\x66\x17\xb9\x98\x4f\xaa\x8c\x11\x09\x95\xa6\x90\xeb\x2f\xe7\x25\xbd\xb7\xf0\xee\x17\x23\x37\xe0\x36\xe0\xb6\x51\xe2\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\x36\xa0\xb6\x51\xa2\x36\x24\x6b\xa9\x3f\x3b\x40\x87\x40\x87\x40\x87\x40\x87\x40\x87\xa7\x88\x0e\xe3\xf4\xaa\x11\x08\xec\x25\xee\x76\x6d\x7a\x17\x54\x22\x73\x2e\x93\xa5\x5b\xce\x9c\x69\x28\xb1\x9d\xe6\x2d\x44\x76\x1d\xc7\xe9\xf5\xed\x87\x3f\xaf\x7f\x13\x31\xc6\x07\xe2\x34\x37\x88\xa3\x87\x69\xa5\x6f\xbf\x2a\xfe\x62\xc5\x86\x79\x7c\x3b\xee\x3d\x53\xd2\x6b\xf5\xe9\xb7\x7f\xc3\xfc\xfe\xf6\xfa\xf6\xc3\xe7\xaa\xef\x63\xdb\x1c\xbe\x6d\xec\x40\x52\xa4\xee\x04\x76\xcf\x7f\x3f\xbe\x3d\x6c\x03\x29\x65\x3d\x91\x4a\x55\x4e\xfe\x7f\xf6\xde\xae\xc7\x6d\xe4\x7a\xf7\xbd\xf7\xa7\x28\x38\x17\x6d\x23\xdd\xea\x6d\x63\x03\x19\xcc\xe0\x7f\xd1\x33\xf6\xec\x33\x49\x0c\x37\xdc\x83\xe4\xc6\xc1\x4e\x89\x2c\xa9\xeb\x34\xc5\x22\x58\x64\xf7\x28\x07\xf9\xee\x07\xb5\xea\x85\xa4\x44\x49\x94\x9a\x92\x28\xe9\xc9\xcd\x38\x2d\xbe\xd5\xfb\xb3\xd6\x6f\x55\x2d\xf1\x2c\x49\x98\xed\x35\x20\xc5\x7a\x3c\x73\xe7\x33\xf1\x26\xb5\x8f\x45\xf9\x25\x7c\xcd\x37\xf7\x35\x6b\x06\x84\x79\x94\x1d\x11\xcb\xb7\xfd\xaa\xf2\xbb\x24\x09\x59\x2f\x07\x31\x4e\x10\x16\x42\x03\x72\x64\xba\x9e\x19\x7e\xcb\xad\x76\x9e\xa3\x70\x73\x00\x48\x7f\x5b\xad\x33\xdd\x1e\xed\xb1\x76\x60\x2d\x46\x7d\x20\xe0\x03\x01\x1f\x08\xf8\x40\xc0\x07\x02\x3e\x10\xf0\x81\x80\x0f\x04\x7c\x6c\x33\xdb\x22\xe0\x03\x01\x1f\x08\xf8\x40\xc0\x07\x02\x3e\x10\xf0\x81\x80\x8f\x8b\x0b\xf8\x40\x80\x04\x02\x24\x10\x20\x71\x1a\x2d\x8a\x00\x89\x66\xf5\x20\x40\x62\xe0\x01\x12\xcf\x1f\x6e\x63\x2e\x66\xc6\x72\x28\x8e\x49\xa9\x3e\xd1\x47\x3c\x34\x93\xee\xad\x84\x53\xe1\x6a\x30\xa9\xc5\x5a\x1f\x1e\x93\x0a\x8d\x05\x14\xd5\x72\x59\x2f\x28\xaa\x6d\xf4\x80\x40\x81\x40\x81\x40\x81\x40\x81\x40\x81\x40\x81\x40\x81\x40\x81\x40\x81\x40\x81\x40\x81\x40\x81\x40\x81\x40\x81\x40\x81\x40\x6d\x31\xed\x83\x40\x81\x40\x81\x40\x9d\x46\x8b\x82\x40\x35\xab\x07\x04\xea\x04\x08\x94\xc8\x12\x35\x37\xfa\xf1\xa8\x08\x2a\x7c\x45\x37\x06\x15\x2e\x07\x84\x5a\xac\xf7\x01\x42\xa8\xd0\x5a\xa0\x50\x2d\x97\xf5\x43\xa1\xda\x06\x10\x30\x14\x30\x14\x30\x14\x30\x14\x30\x14\x30\x14\x30\x14\x30\x14\x30\x14\x30\x14\x30\x14\x30\x14\x30\x14\x30\x14\x30\x14\x30\xd4\x16\xd3\x3e\x30\x14\x30\x14\x30\xd4\x69\xb4\x28\x30\x54\xb3\x7a\x80\xa1\x86\x8f\xa1\xd2\x40\x70\x6c\x1a\x49\xfa\xf7\x7f\x37\x1d\xe7\x67\xd5\x4e\xbf\xa0\xca\x3e\x93\x45\xe6\xad\x91\xef\xa4\x5b\x1d\xe4\x67\x9f\xe0\x8f\xf2\xf3\x8f\x09\x8c\x2a\x5e\xff\xb0\x15\x8e\x78\xb6\x88\x42\x6c\x0b\x8e\x55\x3c\x5f\x44\x36\xbe\x09\xdb\x7e\xdb\xcb\xc1\x93\x9f\xa8\xc0\x5f\xa9\x0a\x75\x47\xbe\xb3\x1e\xec\xc0\xb7\x0b\xdf\x2e\x7c\xbb\xf0\xed\x9e\x9b\x6f\x77\xcd\xca\xbb\xc9\xbf\xbb\x5e\xc5\xad\x5f\x81\xb7\x9a\x7b\xff\x69\x2a\xce\x59\xb5\xd7\x4c\xa6\xb1\x29\x8a\xb7\xda\x1b\x65\xab\x73\xd4\xb1\x60\x99\xa9\x2d\x6d\x0c\x40\x76\x97\x32\x99\xda\x99\x45\xe5\xac\x4c\xc3\xe4\x14\xb3\x38\x9f\x7f\x2b\x53\x16\xcb\xdc\xac\x8b\xcf\x22\xf4\x78\x33\x7d\x92\x0f\xc2\x0d\x79\xdf\x37\x5c\x05\xb3\x49\x99\xd3\x28\xcb\x72\x15\x09\x4d\xce\x02\x27\x1f\x5d\x2f\x1b\xb1\x7f\xd0\x1b\xa9\xb5\xa8\xef\xfc\xc8\x6e\xd8\x5d\x92\xfc\x48\xae\x80\xd8\xcc\xd2\x65\x6a\x1a\xde\x08\x31\xdf\x25\xdd\xe3\x44\xbc\x43\x43\xd9\xb2\x1c\xa7\x99\x0e\xe6\x90\xef\x56\x15\xab\x9d\xf2\x07\xab\x91\xdf\xeb\x96\x85\x34\x56\x3d\x09\x7e\x36\x16\x13\x1b\x39\x10\x9c\x37\x95\x94\x70\xb3\x17\x75\x9d\x52\xd8\xc5\x61\x6c\x34\x75\x7a\x93\x8a\x29\xa7\x0e\xea\x6c\x03\x63\xc6\xf8\x15\xd4\x3a\x72\xc3\xd0\x70\x9a\x51\xce\x66\x22\x96\xbc\x10\xc9\xbc\x42\xfa\xd5\x92\x2b\x93\x6b\xa7\xfd\xa9\xd2\xd9\x34\xe7\x11\x8d\x1a\xa9\xe2\x20\x08\xaa\x45\x9b\xe2\x25\x7c\x2f\x2d\xb5\xf9\xc8\x7a\x73\x71\x73\xa7\x2f\x90\x7b\xc9\xc4\xce\x81\xfe\x11\x23\xfb\x9d\x33\xc1\xd3\xd6\x6f\xdc\xa1\x99\xe9\x9b\xef\xe9\x93\xdb\xec\xa9\x0d\x16\xd5\x50\xba\xff\x36\x2c\xa6\x5b\xbd\xac\xe6\x31\x07\xeb\xfe\x20\x33\x20\x33\x20\x33\x20\x33\x20\x33\x7b\x23\x33\x1d\xd7\x82\x25\x3a\x73\xb8\x65\xf1\x93\xc8\x72\x61\x44\x49\xfc\x23\xcb\x12\xc1\xb5\x08\x53\xd0\x7d\xae\x32\x3e\x25\x75\x74\xaf\x12\x19\xcd\x1b\x71\x80\xbe\xd3\xc5\xe1\x01\xa6\xdb\x7d\x18\xfd\x65\xc4\x1e\xec\x7c\x66\xa5\x4b\x26\x52\x33\x58\xaa\x35\x55\x30\x95\x67\x8f\x3c\xf5\x71\x89\x79\x29\x6e\x27\x3c\xf1\xb6\xf2\xf7\xb7\xf6\xe7\xef\x6f\xd9\x44\xa6\x3c\x91\xff\xf1\x0b\xc9\x58\x30\x1e\x93\xbb\x5e\xdd\x5a\x57\x66\x5c\x99\x61\xf6\xf1\x57\xba\xba\xc9\xda\xa7\x23\xf6\x59\xd2\xe4\x58\xfb\x74\x95\x2f\x97\xad\x82\x33\x85\x35\x8f\xc9\x46\x51\xc5\xe3\x2e\x0d\x6a\x4b\xf0\xc9\x97\x7d\xa5\xe4\x69\x73\x8c\xf6\x6b\x98\x51\xd1\xcd\x80\x7d\x54\x2f\x6c\xca\xf3\x31\x9f\x36\x5c\x95\xc1\xa8\x11\xf9\x44\xe5\x33\xd3\x26\xad\xf5\xf5\x75\xa1\x44\xab\xab\x8b\x44\xaf\x57\xac\x99\xad\x5b\x69\xd4\x64\x24\xe3\xca\x14\x26\xad\x40\xce\x89\xd0\xc6\x9a\xb2\x68\xd1\xaf\x5e\x0d\x8c\x6a\x8d\xe9\xd7\x91\x40\x47\x42\x8c\x6d\xf3\x65\x23\x76\x17\x45\x22\x2b\x68\x6d\xaa\x5b\x76\x57\xb6\x0c\x57\xec\xc6\x75\xc0\x66\x07\xd5\x3f\xb1\xab\x9f\x79\xf4\x34\xcd\x55\x99\xc6\xe6\x2a\x8a\x57\xa5\x8b\x16\x2a\xce\x4a\x48\xa7\x8f\x9b\x0f\xf1\x25\x18\x87\x27\xfd\xc4\xae\x7e\x55\xb9\xa8\x3d\x96\x45\x5c\x47\x3c\x36\xa5\x77\xf5\x63\xc3\x99\xe9\x79\xda\x9a\x9e\x4b\x0f\x9c\x84\x67\xec\xd2\x21\xb3\xc5\xee\x7e\x1c\xc5\x79\xc6\x18\xb5\x5b\x3b\xac\x43\xa9\xc7\x6a\x05\x40\xd5\xbd\xb5\xef\x32\x58\x3d\x9c\x6f\xe3\x98\x88\xb5\x5b\x65\xad\xc1\xac\xaf\xd5\x3f\xad\xdc\x0e\xf9\xe1\xb6\xc4\x74\x0f\x05\x2f\xca\xae\x7c\xee\xac\xf6\x5f\xd9\xb5\xb8\xd2\x49\xfb\xdd\x8b\xd5\x5b\x72\xaa\xd3\xc8\x56\xd7\x37\xd8\xc6\x2e\xb3\xcb\xd9\x65\xd6\x6d\x65\xd9\xb4\xd3\xec\x70\x26\x18\xe2\x12\x10\x97\x80\xb8\x04\xc4\x25\x20\x2e\xa1\x6d\xf2\x05\xf0\x3e\xa1\x1a\x01\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x3d\x2f\x06\x0a\x2c\x01\x2c\x01\x2c\x01\x2c\xb1\x77\x2c\xb1\x05\xba\x1f\xe8\x3e\xb0\x6e\x55\xb8\xbc\x17\xec\xb5\x1e\xb7\x41\x01\x9d\x95\x37\x5c\xe8\x79\x7d\xcb\x6e\x7c\x9c\xdb\xd7\x72\xd9\xb0\x58\xd1\x0e\xe7\xf7\x39\xad\x68\x46\x39\xcd\x23\xa6\x4d\x98\x8e\x54\x26\xae\x99\x2e\xa3\x47\x33\xf1\xd0\xc4\x2e\xf8\xcc\xce\x4a\x59\xae\x48\x9b\xb6\xed\x25\xcd\x78\xf1\xd8\xbe\x95\x34\xec\xe7\x6c\xfe\x6c\x84\x96\xcc\x45\xec\xa6\x87\xc6\x6f\xfb\xdd\xaf\x7c\x2a\x87\x19\xb8\x7f\xfd\xab\x6a\x64\xa5\x7b\x26\x82\xd6\x4e\x63\x7c\x3b\xf8\x67\xef\xda\x0f\xfe\xdb\x6d\x5f\xeb\x9a\xce\xb4\xaf\x49\xb1\x97\x8d\xae\xd8\x6c\x55\x6f\xf5\xc1\x6e\xb6\x22\xa7\xcc\x17\x9e\xf2\xa9\xc8\xad\x7b\xd1\xce\x9a\x5a\xab\x48\x92\xbd\x1c\x1c\x79\x9c\xfc\xb1\x2a\x67\x22\x2d\x8c\x80\xf5\x0e\x84\x19\x7f\x32\xb5\x58\x3c\x0a\x2d\xbc\x0a\xac\x6f\x29\xf2\x5b\x8f\x48\x05\x93\xd3\x4e\xe5\xec\xc3\xc7\x1f\xcc\xb5\x39\x8f\x88\xd2\x25\x2a\x9d\x5a\xcd\x47\x8e\xb5\x48\xa5\x05\x97\xa9\x9d\xaa\xc8\x71\x55\x5d\x4b\xe4\xc2\x31\x44\x36\x9e\x07\xb3\x66\xaa\x12\x9e\x4e\x47\x2a\x9f\xde\x66\x4f\xd3\xdb\x32\x95\x91\x8a\xc5\xed\x9f\x7e\xd3\xf7\xe6\x29\x3b\x7b\xc2\x5d\xe5\xf4\xd9\x3c\x83\x12\x89\x27\xab\xdd\xba\xea\xb6\x8f\x1d\x74\xdb\x2f\xd6\xab\x37\xb0\xef\xfe\xb8\xf1\xbb\x6d\x08\xf1\xc0\x3e\xfc\x9c\x84\x32\x09\x93\x41\x0b\xe5\x37\xac\x87\xb3\x47\xec\xef\xff\x3d\xd0\x11\x24\x5b\x8a\xb2\xfa\xb1\x23\xc3\x10\x65\x27\x72\xd8\x08\x34\x58\xbd\x91\x07\xab\xc1\xb0\xbd\xfb\x82\xb6\x77\x63\x1f\x1b\xf6\xb1\x61\x1f\x1b\xf6\xb1\xc1\x7c\x5c\x35\x8a\x06\xb9\x69\xe4\x38\xc6\x18\xf6\xbc\xac\xdc\xf3\x32\x6c\xa3\x2c\x38\xb6\x7b\xdf\xe9\x92\x0b\x1e\x2f\x08\xae\xad\x8c\x29\x73\xff\x41\xb6\xb7\xd4\x44\x89\xf8\x83\x82\xd6\xc6\xe6\x5f\x3c\x2a\x46\x8c\x7d\x36\xff\xf5\x7f\x9f\x71\x49\xee\x3e\xcd\xa2\xa4\xd4\x85\xc8\xab\xa5\xc6\x46\xb7\xb2\x44\x3e\x09\x76\x15\x3e\xf8\xca\x28\x4a\xaf\x82\x46\xec\x3e\xe1\x69\x2a\xac\x14\x25\x9d\xc2\x13\x2b\x8d\x3e\xfc\xb0\xcb\xdc\x4d\xdf\x78\x24\x05\x11\x2a\x2d\x08\xf0\xb1\xaf\x3e\x53\x52\xf6\xd9\xd6\x98\x59\x35\x32\xed\x6b\xc7\xc5\x75\x95\x5a\xe4\x14\x90\x55\x69\xe9\xf9\x9e\x2b\xca\x7c\xcc\xf9\xe2\xf3\x61\x2f\x6d\x70\xd4\x35\x56\x85\xa9\x18\xb8\x9f\xee\x35\x40\x9b\x98\x8c\x73\x91\x6c\xfa\x8e\x2e\xd0\x7a\x28\xbc\x1a\xa0\xfe\xe4\x40\x3d\xc5\xfb\x74\x52\x34\x8b\xd3\xf3\x0d\xdd\xfb\xe7\xf5\x33\xf5\x4c\xe4\x53\xd1\xe9\x4a\x5d\xe4\xbc\x10\x53\x19\xdd\x74\xbf\xc7\xfc\x7b\xee\xae\xa4\x35\xa1\x8b\xe2\xca\x78\x5e\x48\xda\x8e\x67\x63\xd3\x5e\xa3\xbe\xe8\xd5\x43\xf2\x64\xef\x2b\xbc\x60\x8d\xe5\x72\xdf\x0c\x19\x63\xf0\x6f\x9f\xb9\x7f\xfb\x72\x62\x0c\x16\x36\xba\xf8\xc1\x65\x37\x63\x99\xb9\xa7\xda\xe0\xff\x6e\xc5\xbc\xf4\x9e\xbc\x7b\x76\x07\x36\x4f\xe8\xce\x54\xa5\x37\xf6\x6e\xba\x82\x1c\xec\x9a\xbd\xfb\xab\x56\xe9\xbd\xdd\xe7\xfe\xc5\xcc\x80\xee\xdf\x0f\x7e\x5e\xac\xfe\xf8\x7e\x48\xc1\x0f\xdd\xfb\xcd\xaf\x2a\x8f\x88\x40\x4c\x15\x35\xbe\x62\xdf\xdf\x4e\xcc\xdf\xbe\xbf\x65\x77\x8d\xda\xa4\x30\x7a\x8b\x0b\xc8\x0a\x72\x03\xf5\x86\x47\xd4\x00\xb4\x53\x3a\x91\x91\x73\x80\x92\xd1\xa4\x5e\x5c\xdb\xda\x9d\xc4\x99\x50\x59\x22\x46\xcc\xbe\x93\x0e\x48\xf0\x7d\x8a\x82\xd9\x5b\x1b\x22\xbc\x7e\x97\xea\x35\x2f\x82\xed\x64\x7f\x80\xed\x74\xdc\x20\x87\x85\x10\xf0\x41\x5b\x4f\x65\xef\x0e\xb5\x2c\xe1\xd1\xab\x54\x9d\x7b\xc4\x25\xe8\x3a\x84\x8d\x42\xd2\x5d\x94\xa4\x1b\x90\x72\xc2\x02\x1f\x7e\x41\xd8\xe8\x65\x08\x93\x72\xe0\x4e\xdd\x37\x6c\xdb\xe0\xcb\x98\x8b\x99\x19\x22\xc5\x71\xf2\xbd\x7d\xa2\xd7\x3f\x34\x9d\xe5\x5b\xa6\x79\x6b\x7d\x06\x02\x2e\x71\x8a\x1a\x4e\x51\xc3\x29\x6a\x38\x45\x0d\xa7\xa8\x1d\xc5\x24\x81\xe5\xd8\xb9\xa1\x90\xdd\x6d\x48\x87\xdd\x21\xfc\xff\x82\xc2\xff\x71\xb2\x21\x4e\x36\xc4\xc9\x86\x38\xd9\x10\x27\x1b\xe2\x64\x43\x9c\x6c\x88\x5d\x71\xd8\x15\x87\x5d\x71\xd8\x15\xb7\xd8\x23\x91\xdd\x0d\xc7\xa8\xe2\x18\x55\x1c\xa3\x7a\xe2\xc7\xa8\xb6\x52\x3a\x00\x7b\xec\x74\x5d\xbc\x61\x10\xd9\xdd\xda\xb0\xee\x80\x93\xba\x75\x21\xd9\x6d\xb9\xdc\x5e\x45\xaf\x91\xc2\x0d\x29\xdc\xec\x4f\x48\xe1\x86\xe0\x03\x04\x1f\x20\xf8\x00\xc1\x07\x08\x3e\x00\xd5\x06\xe8\xdc\x5c\x23\x00\x9d\x00\x9d\x00\x9d\x00\x9d\x00\x9d\x17\x0c\x3a\xc1\x1e\xc0\x1e\xc0\x1e\xc0\x1e\x90\xc2\x0d\x29\xdc\x90\xc2\x2d\xfc\xd2\x79\x5f\x64\xf0\xde\x23\x73\x5b\xcb\x65\x83\xe0\x40\x48\xd8\x76\x09\xe7\xc0\xed\x2f\x61\x5b\x17\xb0\xd7\x9e\xa7\xed\x08\x1b\x53\xf7\x7e\xce\x46\x55\xa6\x6e\x93\x1d\x36\x49\x9d\xc1\x26\x29\x1c\xaf\x81\xe3\x35\x5a\x3e\x66\xc0\x72\xec\x34\x4e\xd5\xd8\xe1\x73\x8f\x9a\x83\x6d\xeb\xef\x3d\x27\xa5\xbb\xff\xd4\x6b\x3b\x2a\xdd\x37\x6c\xf7\x43\x3f\x0e\x9d\x68\x6d\xdb\xf3\x3e\x70\xca\x47\x4b\x69\x20\xa2\x4e\x51\x44\x61\x5f\xf5\x05\xed\xab\xc6\x06\x32\x6c\x20\xc3\x06\x32\x6c\x20\x83\xfd\xb7\x6a\x14\x0d\x72\xb7\x06\xd2\xaa\x0d\xc6\xdc\x3a\x44\x5a\xb5\xc1\x6d\x31\x69\xc9\xa6\xd6\xc5\x62\x6a\x4b\xa2\xd6\xe7\xbe\x12\xe4\x4e\x0b\x7d\xa0\xbb\x4c\x40\xee\x34\xf7\x3f\xac\x5f\x70\xb0\x0d\x22\x65\xda\x11\x48\x72\x3d\x53\xda\x8a\xd7\x23\x41\x5a\x7b\x99\x01\xc6\x91\x20\x6d\x1f\x09\xd2\xba\x08\xaa\xd6\xbc\x68\x67\x84\xf3\x91\x0e\x0d\x7e\xe9\xcb\x83\xfb\x48\x87\xd6\x67\xbf\x41\x3a\x34\x98\x43\x30\x87\x96\xab\xf1\x84\xb2\xa0\xbd\xda\x20\x3a\x4c\xf2\xb3\x6e\x2e\xb0\xd6\x9c\x67\x67\xa4\xd9\x10\x82\x09\x95\x76\x09\x2a\x6d\x40\x62\x08\x6b\x76\xf8\x05\x21\x98\xee\xc9\x67\x25\x31\xf6\x9d\xcf\xec\x78\x11\x8d\xb7\xda\x92\xd3\x5a\x60\xe3\x7e\x68\x9d\x7d\x8f\x5f\x9b\x7a\xe4\x76\x0e\xfd\x62\xe6\xc1\x50\x06\x3c\x01\x3c\xd9\xae\xcc\x80\x27\x80\x27\xfd\xc0\x93\xd7\xac\x6f\xeb\x31\x4a\xcb\x02\x77\x92\x86\x39\x60\x0a\xcc\xf4\xcb\x33\xd3\x01\x53\xfa\xec\x37\x80\x29\x70\xcc\xc0\x3c\x5a\xae\x46\xc0\x94\xd7\xc3\x94\xd7\x79\x28\xd6\x63\x95\x73\xd1\x70\x80\x2b\x50\x6d\x97\xa0\xda\x06\x24\x8e\xb0\x86\x87\x5f\x00\x57\xdc\x93\xcf\x4a\x72\x9c\x0f\x5c\x11\x59\xa2\xe6\x33\xda\x72\x7b\x98\x83\x22\x6a\x5b\x69\xd5\x84\x7d\x0a\xef\x5f\xa3\x54\xea\xa7\x46\xfc\x12\x6e\xaf\x49\x96\xd6\x87\xe0\x00\x09\x64\x6a\x41\xa6\x16\x64\x6a\x41\xa6\x16\x64\x6a\x39\x8a\xe9\x01\x0b\xb1\x73\x43\x1d\xd3\x42\x44\x42\x1d\x1c\x67\x74\xc1\xc7\x19\x21\x7b\x12\xb2\x27\x21\x7b\x12\xb2\x27\x21\x7b\x12\xb2\x27\x21\x7b\x12\x4e\xf9\xc3\x29\x7f\x38\xe5\x0f\xa7\xfc\x2d\xf6\xc8\x83\x26\x09\x43\xaa\xb6\x21\xb4\x02\x52\xb5\x21\x55\xdb\xb9\xa5\x6a\x6b\xe5\x74\x00\xf3\x38\xb9\x73\xf1\x86\xb5\x27\x77\x56\x3a\x69\xcf\x14\xbc\x8d\xeb\x1e\xf5\x10\x4f\xeb\x11\xcb\x9d\x15\xed\xa5\xbb\x9a\x30\xf3\xc9\xdd\x60\xb6\x79\xc4\x52\xcc\xdd\xab\x00\xf6\xc2\x37\x92\x3c\xa3\x4c\x8b\x3f\x2b\xf5\x34\xe3\xf9\x93\xae\xe2\xb5\xed\x87\x93\x47\x46\x3b\xbf\xd1\x3c\x33\xc6\xc5\xcf\x5f\xbf\xfe\xed\xcb\xdd\xb7\xbf\x7d\x7f\x5b\xf9\x44\xac\xfc\x52\xa4\x61\xe5\x2c\x4b\x04\x39\x3f\xc6\xe1\xa9\x46\x70\xc8\x69\x6a\x7d\xc2\x46\x15\x27\x7c\x4a\x7a\xb4\xba\xc4\xd8\x9f\x75\xdb\xd1\x3a\x1a\xae\x34\x8b\xa5\x8e\x72\x61\xbe\xb9\xa2\x49\x35\x0a\xe2\x1c\x1e\xcd\x07\x05\x17\x84\xb1\xad\x8d\x1d\xef\x95\xae\x99\x0b\xf3\x67\x9e\x5c\xb3\x54\x59\xd0\x4b\x16\x72\xf0\x9a\x2c\x3a\xde\x08\x35\xce\x99\x2f\xb3\xf3\x50\x05\xfb\x58\x0b\x4d\x39\x22\x83\xeb\xd9\x39\x52\x1c\xe3\x6a\x98\x7b\xe6\x57\xaa\x82\x38\xb0\xd3\x89\xe0\x85\xb1\xd2\xa7\xbc\x10\x6c\xa1\x21\xdc\x93\x44\x6a\x64\xb8\x75\x48\x64\xb2\x82\xba\x6d\x8f\xdd\x61\x05\x69\xe9\x02\x47\x32\xb5\x10\x7f\x80\xf8\x03\xc4\x1f\x20\xfe\x00\xf1\x07\x6d\x93\x2f\xc0\xf6\x09\xd5\x08\x58\x27\x58\x27\x58\x27\x58\x27\x58\x27\x58\xe7\x79\xb1\x4e\xe0\x07\xe0\x07\xe0\x07\xe0\x87\xbd\xe3\x87\x2d\x10\xbd\x35\xe6\x54\xee\x37\x5c\x9a\xe6\xb7\x48\xd9\x5c\x37\xa6\x45\xcc\x36\xaa\x45\xe0\x4e\x9d\x14\x8f\x62\x66\x97\x2d\x5d\xe4\x82\xcf\xa8\x7a\xe2\xf8\xda\x2d\x0c\xd7\xee\xda\x99\x7a\x26\xed\x53\x33\xef\xd8\x83\xcd\xc5\xb3\xd8\xd5\x77\xa9\xc2\x97\x75\x1d\xec\xf4\x4f\x45\x58\x79\x83\x79\xd9\x4f\xb6\xe2\xff\x67\xb9\x0e\xba\x3c\xbb\x79\xf7\xb0\x09\x51\xb5\x17\x32\xb8\xef\xff\x2e\xf5\x45\x6e\x88\x34\xd3\xd8\xc0\x59\xd0\x0e\x87\xd4\xe1\x54\xb7\x93\x3b\xd5\x4d\xe9\x9e\x89\x9f\xb5\xcb\x18\xef\x06\xf7\xec\xd5\xfd\xe2\xbd\xa1\x9e\xa6\x51\x15\xaa\xdb\x84\x87\xcd\x52\x67\xb0\x59\x0a\xc7\x69\xe0\x38\x8d\x96\x8f\x19\xb2\x26\x3b\x91\xf3\x34\x76\xf8\xde\x63\x24\x34\x7e\xc5\x07\x9f\x93\xe0\x25\xa1\x31\x48\xc1\xfb\x86\xbd\xe2\x0c\x10\x77\xc2\xfa\x81\x8e\x02\xe9\x28\xaa\xea\xc7\x7f\xe0\xd0\x8f\xb6\xd2\x40\x4b\x9d\xa2\x96\xc2\x36\xeb\x0b\xda\x66\x8d\xfd\x64\xd8\x4f\x86\xfd\x64\xd8\x4f\x06\x33\x70\xd5\x28\x1a\xe4\xe6\x8d\xe3\x18\x59\xd8\x7b\xb2\x72\xef\xc9\x30\x8d\xae\xe0\x80\xde\x4f\x22\xaa\xa6\xd0\xea\x64\x34\xb5\xe6\x9f\xea\x73\x9b\x49\x4d\x7c\x88\x3f\x28\x78\x6c\x6c\xfe\xc5\xa3\x62\xc4\xd8\x67\xf3\x5f\xff\xf7\x19\x97\xe4\x9e\xd3\x2c\x4a\x4a\x5d\x88\xbc\x5a\x52\xdc\x29\xf6\x89\x7c\x12\xec\x2a\x7c\xe8\x95\x51\x8e\x5e\xed\x8c\xd8\x7d\xc2\xd3\xd4\xa5\x1f\x20\x3d\xc2\x13\x2b\x81\x3e\xfc\xb0\xcb\x1c\x4d\xdf\x78\x24\xa5\x10\x2a\x2d\x08\xed\xb1\xaf\x3e\x53\x52\xf6\xd9\xd6\x98\x59\x1d\x32\xed\x6b\xc7\xc5\x57\x51\x4a\x80\x88\xa7\x35\xcd\x3c\xdf\x73\x45\x99\x8f\x39\x5f\x8c\x3d\xec\x25\x0c\x8e\xb6\x03\x25\x3f\x3b\x02\x58\x6e\x64\x3f\x5b\xf1\x7e\xa4\x3f\x6b\x2f\x33\x40\x39\xd2\x9f\xf5\x93\xfe\x6c\x07\x55\xd5\x9e\xf5\xec\x8c\xf0\x3e\x12\x9e\xc1\x3f\x7d\x79\xac\x1f\x09\xcf\xfa\xec\x37\x48\x78\x06\x9b\x08\x36\x51\x4b\x3d\x9e\x52\xc6\xb3\x57\x5b\x45\xfb\x4a\x79\xb6\x93\x2f\xac\x3d\xd3\xd9\x19\xe9\x36\x84\x65\x42\xaa\x5d\x84\x54\x1b\x90\x22\xc2\xc2\x1d\x7e\x41\x58\x66\x78\xf4\x59\x09\x8d\xbd\xe7\x39\x3b\x62\x90\xe3\xad\x8e\x78\x52\x0f\x6c\xdc\x13\xbc\xa3\xd7\xb4\xa4\x68\x7d\x3d\xc5\x7b\xa0\x02\x60\xf2\xd9\x38\x98\xcb\x42\x99\x56\x90\xe9\x94\x10\x3a\x55\xdb\x05\x0e\xe7\xbe\x58\x4a\x55\x9d\xed\xa3\x7a\xb1\x5f\x1e\x90\xa6\xb4\xbc\x1a\x20\xa5\xbd\xcc\x00\x29\x00\x29\xfd\x80\x94\xd7\xac\x70\x1b\x88\xca\xf2\x12\x77\x92\xe6\x39\xb0\x0a\x6c\xf5\xcb\xb3\xd5\x81\x55\xfa\xec\x37\xc0\x2a\xf0\xce\xc0\x40\xda\xab\x81\xd4\x1f\x58\xd9\xab\x89\xb4\x2f\xb4\xf2\x3a\x4f\xc5\x06\xc6\x72\x26\x4a\xee\x35\x63\x05\xf2\x0d\xf2\xed\x84\xe4\xdb\x80\x54\x12\x16\xf3\xf0\xcb\x5e\x17\xf3\x23\xc1\x16\xc8\x8f\x5e\x71\xcb\x1e\xc4\xc7\x1b\xd6\x07\x70\xb1\x7b\xd7\xf6\x4f\x5c\xe8\x3d\xfb\x41\x2e\xb6\x08\x98\x85\x00\x50\xb1\x7b\x05\xbb\x57\x00\x5d\x00\x5d\x8e\x05\x5d\x5e\xb3\xc8\x6d\xa2\x2e\xcb\xab\xdc\x49\x1a\xeb\xc0\x2e\xb0\xdb\x2f\xcf\x6e\x07\x76\xe9\xb3\xdf\x00\xbb\xc0\x53\x03\x1b\xa9\xa5\x1e\x87\x07\x5d\x4e\x70\x37\xcb\x2b\x5d\x15\x9b\x98\xcb\x99\xe8\x38\xec\x6e\x81\x74\xbb\x08\xe9\x36\x20\x85\x84\x85\x3c\xfc\x82\xdd\x2d\xe1\xd1\x67\x25\x3c\xce\x67\x77\x8b\x51\x02\x32\xe2\x5a\x14\xfa\x40\x67\x77\xd7\xce\x36\x55\x13\xf6\xcd\xbe\xff\x41\x74\x3d\xc7\xfb\x97\x70\x7b\xa5\x5b\xda\x1f\x82\x13\xbd\x91\x46\x1f\x69\xf4\x91\x46\x1f\x69\xf4\x91\x46\xff\x28\xd6\x07\x8c\xc4\xce\x0d\x75\x4c\x23\xf1\x55\xb9\xfd\xad\x3b\xb6\xcf\xdc\xfe\xf4\xc4\xe3\xe6\xf6\x47\x7e\x89\x0b\xca\x2f\xf1\xaa\xee\x9f\xf0\xb1\x48\x7a\xed\xfe\xf4\xc4\xe3\x76\x7f\x9b\x7a\x9e\xdc\x45\x33\xfe\x87\x9c\x95\x33\x96\x96\xb3\xb1\xe9\x24\x93\x30\x99\x6a\x5b\x5b\x94\x3b\x98\xf8\x58\x95\xfa\x9a\xba\x2c\xc9\x68\x69\xbe\xc5\xa6\x52\x58\xd6\x26\x46\x7c\x9b\xbf\xfd\xdb\xaf\x52\xff\xf6\xd9\x1c\xd2\xaa\xf6\x7d\xa2\x05\xdb\x51\x6d\xef\xa4\xf5\x23\xe2\xa9\xef\xce\x95\x12\xd2\x7c\x66\x46\x99\x2c\x64\x90\xcc\xf6\x2b\x8d\xb8\x17\x95\xd6\x31\xaf\xb6\x65\x31\x8d\x36\x62\x0f\xa2\x28\x6c\xd6\x7b\x5b\x76\x2b\x95\x6d\xd9\xc4\x0b\x89\x06\x9e\xd6\x57\x08\x23\x53\x66\xaa\x4c\xe9\x31\xb6\x94\xef\xca\xcc\xbc\xcc\x0e\x68\xf3\x97\xf7\x5e\x9b\x88\x67\xca\x8b\x4f\x8b\x93\xbf\xbb\x9e\x7a\x7f\x22\x93\x42\x18\x85\x6a\x54\xa3\x59\xa3\xbc\x01\xe1\x66\x97\x86\x0d\x61\xd7\xd3\x28\xc4\x11\x35\x15\xa6\x4d\xfb\xe0\x32\x9f\x07\x2d\xde\x30\x69\x48\x09\x3d\x73\x99\xf0\x71\x22\x4c\xd1\x4d\x8b\x58\x25\x13\x3d\x2a\xa5\x29\xbd\xb3\x79\x8e\x53\x40\xae\x2d\x4c\xb5\xf0\x7c\x5a\xce\xa8\x2c\x69\xec\x57\x5b\xaa\x24\x53\x36\xf7\x3d\xe1\xd1\x55\xed\xfe\x36\x61\xa1\x4b\x55\xb3\x92\xb7\x4e\x16\x0a\x20\x35\x13\xb3\xac\x98\x37\xcd\x28\xae\x8d\xe9\x6d\x5b\x3e\x55\x6b\x0b\xb4\x4e\xca\xc9\xc9\x82\x90\xb3\xda\x2f\xf4\xcb\x69\xc9\x73\x9e\x16\xc2\x8b\x94\x6a\xa6\xd7\xd5\x24\x40\x7a\x90\xd2\xb2\x57\xdf\x1e\x64\x69\x30\xd8\x0a\xc5\xa4\xd6\xa5\xed\x55\xe6\xe2\x44\x54\x23\x24\xd8\x08\xbe\xc3\xdd\x78\x7f\xeb\xb5\x29\x9e\x7f\xe5\x76\x3a\xd9\x4b\x64\xa3\xcf\xb5\x2e\x45\xdc\x2a\x96\x8d\xae\xd4\xe5\x58\x9b\x8b\xd3\x22\x94\x20\xae\xc1\x58\xaa\x41\xd3\x56\x6a\x26\x0a\x39\x13\xa6\xec\x13\x91\xe7\x36\x57\x3e\x5f\xb0\x87\x2a\xf3\xc0\xb4\xa8\x48\x75\x99\x8b\x70\xf4\xba\x33\x70\xbc\x33\xd9\xd6\x9a\x2d\x32\x0d\x4c\x32\x65\x98\x9e\xf1\x24\x11\x39\x8b\x1e\xcb\xf4\xc9\x26\x66\x67\x66\x12\x65\x09\xcf\xa7\xbe\xa1\x69\xc4\xdb\xc7\x9b\x42\x1b\x8b\x49\x50\xc7\xcb\x94\xd6\xd2\x74\x38\x57\x6d\xd4\xe1\xea\xe3\xcb\xc6\xfd\xc4\x66\x49\xb7\xcd\x41\xef\x11\xb1\x6d\x0f\x32\x9e\x9d\x3c\x77\x7d\xd8\xad\x85\xf4\xd5\x2f\x5c\x7b\x0d\xcb\x5c\x8f\x30\x75\xb2\x6c\x9f\x58\xab\x9d\x6b\xd3\xc0\x51\x99\xd8\x7c\x43\x55\xb7\xd9\x69\x2d\x30\x15\x75\xa4\x65\x11\x69\x97\x90\x76\x09\x69\x97\x90\x76\xe9\x20\x8a\x73\xd1\x4d\xa2\x45\xe1\x57\x99\x22\xe7\xd2\xcc\x12\x29\x7b\x31\x95\xe1\xaf\xf4\x53\xb6\xb9\xcc\x2f\x7c\xa1\xeb\xe5\x7e\x06\x30\xf2\x46\x04\x86\x58\xe3\x63\x52\xdd\xc6\x2a\xd2\xb7\xb4\xb0\x19\x39\x75\x4b\x4b\xd3\x0d\xcf\xe4\x2d\xcf\xe4\x4d\xa4\x52\xd3\x57\xf4\xed\x9f\x42\xb7\x0a\x2f\x9c\xd0\x1a\x5c\x70\x99\x68\xd2\x0f\x75\xed\x4f\xc1\x46\x3b\xb4\xc3\x42\x05\x0c\xa2\x15\xbe\x90\x52\x0a\x6a\x52\xd3\x54\xb1\xd8\x52\xc6\x4a\xc8\xb2\x44\x5a\x6d\x10\x04\x8e\x0d\xe9\x92\x9a\x3d\xca\xe9\x23\x45\x7a\x45\x6a\x36\x33\x5d\x37\xb6\x9d\xba\xf5\x5d\xce\x23\x6f\x2a\xb8\x7a\x92\xd1\x5b\xb9\x68\x7b\xb1\xb9\xf6\x34\xdb\xf7\xcb\x42\xe4\xce\x01\x1b\xf9\x77\x39\x13\x46\x79\x7a\x37\x81\xa9\xe8\x5b\x2b\x8a\xad\xed\x46\xea\x8f\x94\x87\xb6\x73\x98\x77\x84\x78\x83\x83\x27\xc9\x35\xcb\xc5\x94\xe7\x31\x41\x7f\x23\xd7\xd2\x39\xe3\x51\x21\x9f\x65\x31\x37\xab\x82\x4c\xfd\xff\xdb\x65\x52\x2a\xec\x27\xee\xc3\x2d\xd0\xca\xe9\xc0\xe6\x91\x4a\x6d\xf1\x86\xb5\xa9\xd4\x2a\x9d\xb4\x5f\x0c\xde\xca\x75\x8f\x9a\x54\xcd\x7a\xc4\x72\x67\x45\x7b\xe9\xae\x26\xcc\x7c\x72\x37\x98\x6d\x1e\xb1\x18\x78\xf7\x3a\x80\xbd\xf0\x8d\x24\xcf\xfe\x69\x3e\xf0\x67\xa5\x9e\x66\x3c\x7f\xd2\x55\xdc\xb6\xfd\x70\xf2\xc8\x68\xe7\x37\x9a\x67\xc6\xb8\xf8\xf9\xeb\xd7\xbf\x7d\xb9\xfb\xf6\xb7\xef\x6f\x2b\x9f\x88\x95\x5f\x8a\x34\xac\x9c\x65\x89\x20\xe7\xc7\x38\x3c\xd5\x08\x0e\x39\x4d\xad\x4f\xd8\xa8\xe2\x84\x4f\x49\x8f\x56\x97\x18\xfb\xb3\x6e\x3b\x5a\x47\xc3\x95\x66\xb1\xd4\x51\x2e\xcc\x37\x57\x34\xa9\x46\x41\x9c\xc3\xa3\xf9\xa0\xe0\x82\x30\xb6\xb5\xb1\xe3\xbd\xd2\x35\x73\x61\xfe\xcc\x93\x6b\x96\x2a\x0b\x7a\xc9\x42\x0e\x5e\x93\x45\xc7\x1b\xa1\xc6\x39\xf3\x65\x76\x1e\xaa\x60\x1f\x6b\xa1\x35\x7d\x98\x77\x3d\x3b\x47\x8a\x63\x5c\x0d\x73\xcf\xfc\x4a\x55\x10\x07\x76\x3a\x11\xbc\x30\x56\xfa\x94\x17\x82\x2d\x34\x84\x7b\x92\x48\x8d\x0c\xb7\x0e\x89\x4c\x56\x50\xb7\xed\xb1\x3b\xac\x20\x2d\x5d\xe0\x48\xa6\x16\xe2\x0f\x10\x7f\x80\xf8\x03\xc4\x1f\x20\xfe\xa0\x6d\xf2\x05\xd8\x3e\xa1\x1a\x01\xeb\x04\xeb\x04\xeb\x04\xeb\x04\xeb\x04\xeb\x3c\x2f\xd6\x09\xfc\x00\xfc\x00\xfc\x00\xfc\xb0\x77\xfc\xb0\x05\xa2\xb7\xc6\x9c\xca\xfd\x9e\x4b\xd3\xfc\x16\x29\x9b\xeb\xc6\xb4\x88\xd9\x46\xb5\x08\xdc\xa9\x93\xe2\x51\xcc\xec\xb2\xa5\x8b\x5c\xf0\x19\x55\x4f\x1c\x5f\xbb\x85\xe1\xda\x5d\x3b\x53\xcf\xa4\x7d\x6a\xe6\x1d\x7b\x20\xb9\x32\x5f\xec\xea\xbb\x54\xe1\xcb\xba\x0e\x76\xfa\xa7\x23\xac\xbc\xc1\xbc\xec\x27\x5b\xf1\xff\xb3\x5c\x07\x5d\x9e\xdd\xbc\x7b\xd8\x84\x28\xec\x86\xac\xdc\xf7\x7f\x97\xfa\x22\x77\x44\x9a\x69\x6c\xe0\x2c\x68\x87\xf3\xea\x70\xbe\xdb\xc9\x9d\xef\xa6\x74\xcf\xc4\xcf\xda\x65\x8c\x77\x83\x7b\xf6\xea\x7e\xf1\xde\x40\x4f\xd4\xa8\x15\xaa\xdb\x84\x87\xcd\x52\x67\xb0\x59\x0a\x27\x6a\xe0\x44\x8d\x96\x8f\x19\xb2\x26\x3b\x8d\x13\x35\x76\xf9\xde\x8f\x1b\xbf\xd7\x86\xfc\x0e\xe4\x83\xcf\x49\xf0\x92\xd0\x18\xa4\xe0\x7d\xc3\x5e\x71\x06\x88\x3b\x70\xfd\x40\x47\x81\x74\x14\x55\xf5\xe3\x3f\x70\xe8\x47\x5b\x69\xa0\xa5\x4e\x51\x4b\x61\x9b\xf5\x05\x6d\xb3\xc6\x7e\x32\xec\x27\xc3\x7e\x32\xec\x27\x83\x19\xb8\x6a\x14\x0d\x72\xf3\xc6\x71\x8c\x2c\xec\x3d\x59\xb9\xf7\x64\x98\x46\x57\x70\x40\xef\x27\x2f\x55\x53\x68\x75\x32\x9a\xda\xb2\x51\xf5\xba\xcd\xa4\x26\x3e\xc4\x1f\x14\x3c\x36\x36\xff\xe2\x51\x31\x62\xec\xb3\xf9\xaf\xff\xfb\x8c\x4b\x72\xcf\x69\x16\x25\xa5\x2e\x44\x5e\x2d\x29\xee\x34\xfb\x44\x3e\x09\x76\x15\x3e\xf4\xca\x28\x47\xaf\x76\x46\xec\x3e\xe1\x69\xea\xd2\x10\x90\x1e\xe1\x89\x95\x40\x1f\x7e\xd8\x65\x8e\xa6\x6f\x3c\x92\x52\x08\x95\x16\x84\xf6\xd8\x57\x9f\x29\x29\xfb\x6c\x6b\xcc\xac\x0e\x99\xf6\xb5\xe3\xe2\xab\x28\x35\x40\xc4\xd3\x9a\x66\x9e\xef\xb9\xa2\xcc\xc7\x9c\x2f\xc6\x1e\xf6\x12\x06\x47\xdb\x61\x12\xa1\x1d\x03\x2c\xd7\x13\xa1\xad\x7a\x3f\x12\xa1\xb5\x97\x19\xa0\x1c\x89\xd0\xfa\x49\x84\xb6\x83\xaa\x6a\x4d\x7f\x76\x4e\x78\x1f\x89\xcf\xe0\x9f\xbe\x3c\xd6\x8f\xc4\x67\x7d\xf6\x1b\x24\x3e\x83\x4d\x04\x9b\xa8\xa5\x1e\x4f\x28\xf1\xd9\xeb\xad\xa2\x7d\x25\x3e\xdb\xc9\x17\xd6\x9a\xee\xec\x9c\x74\x1b\xc2\x32\x21\xd5\x2e\x42\xaa\x0d\x48\x11\x61\xe1\x0e\xbf\x20\x2c\x33\x3c\xfa\xac\x84\xc6\xbe\x13\x9d\x1d\x33\xc8\xf1\x56\x47\x3c\xa9\x07\x36\xee\x09\xde\xd1\x6b\x96\x13\xb5\xf6\x40\xf1\x1e\xa8\x00\x98\x7c\x36\x0e\xe6\xb2\x50\xa6\x15\x64\x3a\x25\x84\x4e\xd5\x76\x81\xc3\xb9\x2f\x96\x52\x55\x67\xfb\xa8\x5e\xec\x97\x07\xa4\x29\x2d\xaf\x06\x48\x69\x2f\x33\x40\x0a\x40\x4a\x3f\x20\xe5\x35\x2b\xdc\x06\xa2\xb2\xbc\xc4\x9d\xa4\x79\x0e\xac\x02\x5b\xfd\xf2\x6c\x75\x60\x95\x3e\xfb\x0d\xb0\x0a\xbc\x33\x30\x90\xf6\x6a\x20\xf5\x07\x56\xf6\x6a\x22\xed\x0b\xad\xbc\xce\x53\xb1\x81\xb1\x9c\x89\x92\x7b\xcd\x58\x81\x7c\x83\x7c\x3b\x21\xf9\x36\x20\x95\x84\xc5\x3c\xfc\xb2\xd7\xc5\xfc\x48\xb0\x05\xf2\xa3\x57\xdc\xb2\x07\xf1\xf1\x86\xf5\x01\x5c\xec\xde\xb5\xfd\x13\x17\x7a\xcf\x7e\x90\x8b\x2d\x02\x66\x21\x00\x54\xec\x5e\xc1\xee\x15\x40\x17\x40\x97\x63\x41\x97\xd7\x2c\x72\x9b\xa8\xcb\xf2\x2a\x77\x92\xc6\x3a\xb0\x0b\xec\xf6\xcb\xb3\xdb\x81\x5d\xfa\xec\x37\xc0\x2e\xf0\xd4\xc0\x46\x6a\xa9\xc7\xe1\x41\x97\x13\xdc\xcd\xf2\x4a\x57\xc5\x26\xe6\x72\x26\x3a\x0e\xbb\x5b\x20\xdd\x2e\x42\xba\x0d\x48\x21\x61\x21\x0f\xbf\x60\x77\x4b\x78\xf4\x59\x09\x8f\xf3\xd9\xdd\x62\x64\x84\x98\x94\x89\x16\x85\x3e\xd0\xe1\xdd\xb5\xc3\x4d\xd5\x84\x3d\xb8\x0f\xe8\x7e\x92\xf7\x2f\xe1\xfe\x4a\xb9\xac\x78\x0a\x0e\xf5\x46\x26\x7d\x64\xd2\x47\x26\x7d\x64\xd2\x47\x26\xfd\xa3\x18\x20\xb0\x13\x3b\x37\xd4\x31\xed\xc4\x57\xa5\xf7\xb7\x1e\xd9\x3e\xd3\xfb\xd3\x13\x8f\x9b\xde\x1f\x29\x26\x2e\x28\xc5\xc4\xab\xba\x7f\xc2\xc7\x22\xe9\xb5\xfb\xd3\x13\x8f\xdb\xfd\x6d\xf6\x79\xf2\x18\xcd\xf8\x1f\x72\x56\xce\x58\x5a\xce\xc6\xa6\x93\x4c\xc2\x64\xaa\x6d\x6d\x51\xfa\x60\x42\x64\x55\xf6\x6b\xea\xb2\x24\xa3\xa5\xf9\x16\x9b\x4d\x61\x59\x9b\x18\xf1\x6d\xfe\xf6\x6f\xbf\x4a\xfd\xdb\x27\x74\x48\xab\xda\xf7\xb9\x16\x6c\x47\xb5\xbd\x93\xd6\x8f\x88\xa7\xbe\x3b\x57\x4a\x48\xf3\x99\x19\x65\xb2\x90\x41\x32\xdb\xaf\x34\xe2\x5e\x54\x5a\xc7\xbc\xda\x96\xc5\x34\xda\x88\x3d\x88\xa2\xb0\x89\xef\x6d\xd9\xad\x54\xb6\x65\x13\x2f\x24\x1a\x78\x5a\x5f\x21\x8c\x4c\x99\xa9\x32\xa5\xc7\xd8\x52\xbe\x2b\x33\xf3\x32\x3b\xa0\xcd\x5f\xde\x7b\x6d\x22\x9e\x29\x35\x3e\x2d\x4e\xfe\xee\x7a\xf6\xfd\x89\x4c\x0a\x61\x14\xaa\x51\x8d\x66\x8d\xf2\x06\x84\x9b\x5d\x1a\x36\x84\x5d\x4f\xa3\x10\x4a\xd4\x54\x98\x36\xf3\x83\x4b\x7e\x1e\xb4\x78\xc3\xa4\x21\x25\xf4\xcc\x65\xc2\xc7\x89\x30\x45\x37\x2d\x62\x95\x4c\xf4\xa8\x94\xa6\x0c\xcf\xe6\x39\x4e\x01\xb9\xb6\x30\xd5\xc2\xf3\x69\x39\xa3\xb2\xa4\xb1\x5f\x6d\xa9\x92\x4c\xd9\xdc\xf7\x84\x47\x57\xb5\xfb\xdb\x84\x85\x2e\x55\xcd\x4a\xde\x3a\x59\x28\x80\xd4\x4c\xcc\xb2\x62\xde\x34\xa3\xb8\x36\xc6\xb7\x6d\xf9\x54\xad\x2d\xd0\x3a\x29\x27\x27\x0b\x42\xce\x6a\xbf\xd0\x2f\xa7\x25\xcf\x79\x5a\x08\x2f\x52\xaa\x99\x5e\x57\x93\x00\xe9\x41\xca\xcc\x5e\x7d\x7b\x90\xa5\xc1\x60\x2b\x14\x93\x5a\x97\xb6\x57\x99\x8b\x13\x51\x8d\x90\x60\x23\xf8\x0e\x77\xe3\x5d\xae\xd7\xa6\x78\xfe\x95\xdb\xe9\x64\x2f\x91\x8d\x3e\xd7\xba\x14\x71\xab\x58\x36\xba\x52\x97\x63\x6d\x2e\x4e\x8b\x50\x82\xb8\xc6\x63\xa9\x06\x4d\x5b\xa9\x99\x28\xe4\x4c\x98\xb2\x4f\x44\x9e\xdb\x74\xf9\x7c\xc1\x1e\xaa\xcc\x03\xd3\xa2\x22\xd5\x65\x2e\xc2\xe9\xeb\xce\xc0\xf1\xfe\x64\x5b\x6b\xb6\xc8\x34\x30\xc9\x94\x61\x7a\xc6\x93\x44\xe4\x2c\x7a\x2c\xd3\x27\x9b\x9b\x9d\x99\x49\x94\x25\x3c\x9f\xfa\x86\xa6\x11\x6f\x1f\x6f\x0a\x6d\x2c\x26\x41\x1d\x2f\x53\x5a\x4b\xd3\xe1\x5c\xb5\x51\x87\xab\x8f\x2f\x1b\xfa\x13\x9b\x25\xdd\x36\x07\xbd\x47\xc4\xb6\x3d\xc8\x78\x76\xf2\xdc\xf5\x61\xb7\x16\xd2\x57\xbf\x70\xed\x35\x2c\x73\x3d\xc2\xd4\xc9\xb2\x7d\x62\xad\x76\xae\x4d\x03\x47\x65\x62\x53\x0e\x55\xdd\x66\xa7\xb5\xc0\x54\xd4\x91\x96\x45\x64\x5e\x42\xe6\x25\x64\x5e\x42\xe6\xa5\x83\x28\xce\x45\x37\x89\x16\x85\x5f\x65\x8a\x9c\x4b\x33\x4b\xa4\xec\xc5\x54\x86\xbf\xd2\x4f\xd9\xe6\x32\xbf\xf0\x85\xae\x97\xfb\x19\xc0\xc8\x1b\x11\x30\x62\x0d\x91\x49\x75\x1b\xab\x48\xdf\xd2\xc2\x66\xe4\xd4\x2d\x2d\x4d\x37\x3c\x93\xb7\x3c\x93\x37\x91\x4a\x4d\x5f\xd1\xb7\x7f\x0a\xdd\x2a\xbc\x70\x42\x6b\x70\xc1\x65\xa2\x49\x3f\xd4\xb5\x3f\xc5\x1b\xed\xd0\x0e\x0b\x15\x30\x88\x56\xf8\x42\x4a\x29\xa8\x49\x4d\x53\xc5\x62\x4b\x19\x2b\x21\xcb\x12\x69\xb5\x41\x10\x38\x36\xaa\x4b\x6a\xf6\x28\xa7\x8f\x14\xec\x15\xa9\xd9\xcc\x74\xdd\xd8\x76\xea\xd6\x77\x39\x8f\xbc\xa9\xe0\xea\x49\x46\x6f\xe5\xa2\xed\xc5\xe6\xda\xd3\x6c\xdf\x2f\x0b\xc1\x3b\x07\x6c\xe4\xdf\xe5\x4c\x18\xe5\xe9\xdd\x04\xa6\xa2\x6f\xad\x28\xb6\xb6\x1b\xa9\x3f\x52\x1e\xda\xce\x61\xde\x11\xe2\x0d\x0e\x9e\x24\xd7\x2c\x17\x53\x9e\xc7\xc4\xfd\x8d\x5c\x4b\xe7\x8c\x47\x85\x7c\x96\xc5\xdc\xac\x0a\x32\xf5\xff\x6f\x97\x49\xa9\xb0\x9f\xb8\x0f\xb7\x40\x2b\xa9\x03\x9e\x47\x36\xb5\xc5\x1b\xd6\x66\x53\xab\x74\xd2\x7e\x49\x78\x3b\xd8\x3d\x6a\x62\x35\xeb\x12\xcb\x9d\x19\xed\xb5\xbb\x9a\x30\xf3\xcd\x1d\x79\xb6\x79\xc6\x62\xf4\xdd\x2b\x19\xf6\xc2\x57\x92\x42\xfb\xa7\xf9\xc4\x9f\x95\x7a\x9a\xf1\xfc\x49\x57\xd1\xdb\xf6\xd3\xc9\x29\xa3\x9d\xeb\x68\x9e\x19\xfb\xe2\xe7\xaf\x5f\xff\xf6\xe5\xee\xdb\xdf\xbe\xbf\xad\xdc\x22\x56\x81\x29\x92\xb1\x72\x96\x25\x82\xfc\x1f\xe3\xf0\x54\xa3\x39\xe4\x34\xb5\x6e\x61\x23\x8c\x13\x3e\x25\x49\x5a\x5d\x62\x4c\xd0\xba\xf9\x68\x7d\x0d\x57\x9a\xc5\x52\x47\xb9\x30\xdf\x5c\x01\xa5\x1a\x08\x71\x3e\x8f\xe6\x83\x82\x17\xc2\x98\xd7\xc6\x94\xf7\x62\xd7\x4c\x87\xf9\x33\x4f\xae\x59\xaa\x2c\xeb\x25\x23\x39\x38\x4e\x16\x7d\x6f\x44\x1b\xe7\xcc\x97\xd9\x39\xa9\x82\x89\xac\x85\xd6\xf4\x61\xde\xfb\xec\x7c\x29\x0e\x73\x35\x2c\x3e\xf3\x2b\x55\x41\x1c\xf0\xe9\x44\xf0\xc2\x18\xea\x53\x5e\x08\xb6\xd0\x10\xee\x49\x22\x35\x4a\xdc\xfa\x24\x32\x59\x71\xdd\xb6\xc7\xee\xb0\x88\xb4\x74\x81\x23\x59\x5b\x08\x41\x40\x08\x02\x42\x10\x10\x82\x80\x10\x84\xb6\xc9\x17\x6c\xfb\x84\x6a\x04\xb8\x13\xb8\x13\xb8\x13\xb8\x13\xb8\x13\xb8\xf3\xbc\x70\x27\x08\x04\x08\x04\x08\x04\x08\xc4\xde\x09\xc4\x16\x94\xde\x1a\x73\x2a\xf7\x3b\x2f\x4d\xf3\x5b\xaa\x6c\xae\x1b\xd3\x22\x66\x1b\xd5\x52\x70\xa7\x4e\x8a\x47\x31\xb3\xcb\x96\x2e\x72\xc1\x67\x54\x3d\x71\x7c\xed\x16\x86\x6b\x77\xed\x4c\x3d\x93\xf6\xa9\x99\x77\xec\x81\xe4\xca\x7c\xb1\xab\xef\x52\x85\x2f\xeb\x3a\xd8\xe9\x9f\x91\xb0\xf2\x06\xf3\xb2\x9f\x6c\xc5\xff\xcf\x72\x1d\x74\x79\x76\xf3\xee\x61\x43\xa2\xb0\x27\xb2\xe6\xbf\xff\xbb\xd4\x17\xb9\x31\xd2\xcc\x63\x43\xe7\x41\x3b\x9c\x5b\x87\x73\xde\x4e\xee\x9c\x37\xa5\x7b\xa6\x7e\xd6\x32\x63\xbc\x23\xe0\xb3\x97\xf7\x8c\xf8\x06\x7a\xb6\x46\xbd\x54\xdd\x26\x3d\x6c\x9a\x3a\x83\x4d\x53\x38\x5c\x03\x87\x6b\xb4\x7c\xcc\xa0\x85\xd9\x69\x9c\xae\xb1\xd3\x07\x7f\xdc\xf8\xc1\x36\xf8\x77\x28\x5f\x7c\x4e\xba\x97\xe4\xc6\x30\x75\xef\x1b\xf6\x9a\x23\x41\xdc\x01\xec\x07\x3a\x19\xa4\xab\xb8\xaa\x9f\x06\x82\x33\x40\x5a\x4b\x03\x49\x75\x8a\x92\x0a\xbb\xae\x2f\x68\xd7\x35\xb6\x97\x61\x7b\x19\xb6\x97\x61\x7b\x19\xac\xc1\x55\xa3\x68\x90\x7b\x39\x8e\x63\x69\x61\x2b\xca\xca\xad\x28\x03\x35\xbc\x82\x2f\x7a\x3f\xa9\xaa\x9a\x4a\xab\x9b\xdd\xd4\x96\xa1\xaa\xdf\x5d\x27\x35\xfd\x21\xfe\xa0\x58\xb2\xb1\xf9\x17\x8f\x8a\x11\x63\x9f\xcd\x7f\xfd\xdf\x67\x5c\x92\xa3\x4e\xb3\x28\x29\x75\x21\xf2\x6a\x55\x71\x47\xdc\x27\xf2\x49\xb0\xab\xf0\xa5\x57\x46\x3c\x7a\xc1\x33\x62\xf7\x09\x4f\x53\x97\x9b\x80\x24\x09\x4f\xac\x0a\xfa\xf0\xc3\x2e\xd3\x34\x7d\xe3\x91\xc4\x42\xa8\xb4\xa0\xb5\xc7\xbe\xfa\x4c\x49\xd9\x67\x5b\x63\x66\x81\xc8\xb4\xaf\x1d\x17\x6e\x45\xf9\x02\x22\x9e\xd6\x64\xf3\x7c\xcf\x15\x65\x3e\xe6\x7c\xa9\xf6\xb0\x57\x31\x38\xdc\x0e\x94\x1e\xed\x28\x9c\xb9\x9e\x1f\x6d\xe5\x07\x20\x41\x5a\x7b\x99\x01\xce\x91\x20\xad\x9f\x04\x69\xbb\x48\xab\xd6\xbc\x68\x67\x85\xfb\x91\x12\x0d\x7e\xea\xcb\x43\xff\x48\x89\xd6\x67\xbf\x41\x4a\x34\x18\x46\x30\x8c\xda\x2a\xf2\x84\x72\xa2\xf5\x60\x1a\xed\x2b\x29\xda\x6e\x4e\xb1\xd6\x5c\x68\x67\xa5\xdd\x10\xaa\x09\xbd\x76\x19\x7a\x6d\x40\xb2\x08\xab\x77\xf8\x05\xa1\x9a\xb5\x67\x9f\x95\xdc\xd8\x77\x26\xb4\xe3\xc6\x3d\xde\xea\x88\x27\xf5\x58\xc7\x3d\xc1\x3c\x7a\xcd\x72\x2e\xd7\x5e\xa8\xde\x03\x15\x01\x53\xd0\xc6\x11\x5d\x16\xca\xb4\x83\x4c\xa7\x34\xb0\xa9\xda\x2e\x70\x48\xf7\x85\x56\xaa\xea\x5c\x31\xb2\x17\xfa\xe5\x21\xd9\xca\xf2\xab\x41\x55\xda\xcb\x0c\xaa\x02\xaa\xd2\x0f\x55\x79\xd5\x1a\xb7\x09\xaf\x2c\x2f\x72\x27\x69\xa7\x83\xb1\xc0\x66\xbf\x3c\x9b\x1d\x8c\xa5\xcf\x7e\x03\xc6\x02\x2f\x0d\x4c\xa4\xbd\x9a\x48\xfd\x41\x96\xbd\x1a\x49\xfb\xa2\x2c\xaf\xf4\x56\x6c\xc2\x2d\x67\xa2\xe5\x5e\x33\x5a\x20\xe0\x20\xe0\x4e\x48\xc0\x0d\x48\x27\x61\x39\x0f\xbf\xec\x75\x39\x3f\x12\x75\x81\x00\xe9\x15\xbb\xec\x41\x7e\xbc\x61\xbd\x70\x17\xbb\xa7\x6d\xff\xe0\x85\xde\xb3\x2f\xf2\x62\x0b\x81\x89\x08\x30\x15\x9b\x5a\xb0\xa9\x05\xf8\x05\xf8\xe5\x88\xf8\xe5\x55\x2b\xdd\x46\xfe\xb2\xbc\xd4\x9d\xa4\xd1\x0e\x00\x03\xfb\xfd\xf2\xec\x77\x00\x98\x3e\xfb\x0d\x00\x0c\x3c\x36\x30\x94\xda\x2a\x72\x78\xfc\xe5\x14\x37\xb9\xbc\xd6\x67\xb1\x91\xbf\x9c\x89\x96\xc3\xa6\x17\xe8\xb7\xcb\xd0\x6f\x03\x92\x49\x58\xcd\xc3\x2f\xd8\xf4\x52\x7b\xf6\x59\xc9\x8f\x53\xdc\xf4\x62\xd6\x7d\x19\x71\x2d\x8a\xfd\x62\x15\x9b\x41\x37\x77\x59\x37\xfd\xd1\xb3\x6a\xc2\x4c\xe1\xd8\x37\xfb\x15\xeb\x25\x8a\x79\x84\xd5\x27\xd5\xe5\xbf\xaa\xfc\x2e\x49\x82\x5e\x19\x04\x55\x59\x79\xc3\x85\x26\xc0\xaa\x5a\x0b\xf9\xaf\x5a\x2e\xeb\x65\x6a\x68\x1d\x40\x7b\x26\x38\x74\x1a\x2f\xa5\xe2\xfb\x59\xa9\xa7\x19\xcf\x9f\x74\xe5\x10\xb2\xe3\x9c\x12\x1e\x6b\x27\xa8\xe6\x99\x60\xdf\xdf\xfe\xfc\xf5\xeb\xdf\xbe\xdc\x7d\xfb\xdb\xf7\xb7\x55\xca\x61\x7b\xda\xae\x22\x3d\x2c\x67\x59\x22\x28\xb7\xf0\x38\x3c\x75\xc6\xe7\x4c\x4e\x53\x7b\xd6\xb9\xd4\xd6\xa1\x61\xa4\x53\x75\x09\xcf\x05\xab\xa7\x66\xb5\x79\x7c\xaf\x34\x8b\xa5\x8e\x72\x61\xbe\xb9\x4a\x0c\x5f\x93\xdf\x2e\x9f\x70\xf3\x41\x21\xc3\x2f\x2f\x6c\x9a\x5c\x7f\x04\xa5\x4c\x0b\x91\x3f\xf3\xe4\x9a\xa5\x2a\xa7\xcf\xa2\x04\xb4\x21\x29\xf1\x62\x5e\xeb\x34\xa6\xfb\x7d\x99\x5d\x02\xe8\x90\x7e\x56\x1b\x39\x6e\x3e\xcc\x1f\xa9\xee\xf2\x14\xbb\x74\xf5\x8d\xd3\xbd\xcd\xaf\x54\x05\xee\x90\xee\x47\xc1\x26\x82\x17\x65\x2e\xd8\x94\x17\x82\x2d\x34\x84\x7b\x92\x48\x8d\x96\xb4\xf9\x7e\x33\x69\x3f\x6e\xd5\x63\xb7\x44\x33\x2d\xcd\xdf\xce\x69\xda\xdc\x3f\x3d\x60\xa7\xdf\xeb\x29\xa3\xad\x87\xb1\x76\xfc\xbd\x16\x85\xcd\xcf\xec\x72\x7e\x9b\x0a\x6f\x24\x8b\x0e\xe7\x94\xdb\x4a\x19\xb1\x07\x99\x46\x62\xe1\x64\x7b\xd7\x9a\x4e\x7b\x37\x33\x51\x37\x92\x71\x87\x0f\xb1\xb7\xd2\xc3\xb9\x31\x06\x9f\xa5\x2a\xb5\xcb\x40\xee\x53\x03\x9b\xd1\x50\xe5\x87\xb6\xbf\x55\xe3\x8f\xbd\x13\x7f\x44\x22\xab\xb2\x80\xda\x47\xaa\x49\x78\xc9\xfb\x70\xf4\xb6\xfb\x3e\x9b\xa5\x9c\xf0\x23\x5f\xfc\x14\x69\x46\x96\xb0\xbd\x21\x58\x93\xa1\x0b\x55\x6e\x82\xc5\xdb\xcc\x1d\x64\xa4\x88\x9c\x59\x83\xd4\x27\x11\x8f\x4b\x41\xd9\xed\xff\xc8\xa4\x4b\x49\xf0\x6e\x2a\x52\x91\x13\x56\x9a\x18\xcb\xb4\x50\x6c\x22\x27\x85\x10\x29\x9b\xc9\xb4\x2c\x84\x7e\xcf\x28\x33\x7c\xa4\xd2\x89\x9c\xfa\x4c\x06\xd6\x72\xf2\x59\xde\xab\xce\xd9\x1c\x45\x76\x41\x73\x56\x19\x67\xff\xfb\xc3\xff\x62\xdf\xdc\x89\xe3\x9f\xcd\x27\x88\xd8\xd9\xbd\x85\x9a\xda\x0f\x74\x57\x86\x12\x15\xea\x49\xa4\xa1\xc8\x2e\x13\x75\x2a\x44\xbc\x90\xc0\x3a\xa1\xec\xf4\xb2\xb0\xf6\x5b\x2e\x74\xc1\x6d\xd6\x73\xe9\x72\xde\xfa\x64\xdd\xcb\xd9\xca\x47\xec\xab\x79\xf5\x8b\xf4\x87\xe6\xbb\xb7\x98\x96\x71\xd3\x80\xf5\xcc\xba\x1c\xd1\x36\x29\x72\x30\x34\xe9\x0b\x7d\x16\xec\x9a\x01\x6a\x0a\x4b\x85\xdb\x58\x2d\xf4\x5c\xfa\x60\xf2\x0a\xfb\xce\x4d\x49\xee\x9f\xc4\xdc\x1e\x09\x1f\xfe\x9c\xf0\xc2\xbc\xbf\xca\xd8\xfd\xf2\x28\x6d\x32\x74\x99\xd6\x2a\x24\x5c\x1f\x3a\x72\x2d\xc5\xb5\x66\x37\x41\xc7\xd9\x53\x67\x73\xb1\x65\xa2\xf2\x85\xca\x58\xce\x51\xee\x8e\x97\x27\x41\x43\x56\xb0\xe9\x90\xe6\xbf\xb6\x51\x9e\xc4\xdc\x65\x7d\x0f\x0f\xfe\xfe\xd6\x17\xf9\xfb\x5b\x97\xd4\x7d\x75\x16\x78\x9a\x20\x9a\x79\xe0\xc3\x1a\x41\x2d\x47\x1d\xc0\xcd\xc6\xf5\xda\xd3\x4b\x49\x92\xdd\xb0\x09\x2b\x87\x3b\x55\xdf\xb5\x98\xf5\xc4\x14\x6c\x26\xb5\xa6\x15\xa1\xe1\x0e\xda\x76\xe6\xf5\x5d\xaf\x1f\x2c\xde\x6d\xb6\xbd\x63\x5a\x54\x27\xed\x9b\xb1\x91\xcb\xa8\x08\x59\x8a\xcd\xf4\x14\xca\x1e\x12\x4b\xcc\x5d\x3b\x59\x48\xd1\xcc\xf2\x21\x9e\x45\x3e\x2f\x1e\x65\x3a\xdd\xb6\xf8\xf4\xb4\x07\xf7\x35\x27\x53\x07\x09\x1f\x8b\xa4\xb7\x3a\xa0\xa7\x1d\xa3\x0e\x6c\xca\x7e\x72\x9b\xcd\xf8\x1f\x72\x56\xce\x58\x5a\xce\xc6\x22\xb7\xa5\x77\xb6\x87\xad\x1f\xca\xb9\x4c\xb0\xb0\x4a\x19\x4e\xd3\x30\x2d\xc4\xd2\x7c\x85\x4d\x3b\xb1\x3c\xbb\x99\xe5\xdb\xfc\xed\xdf\xbe\xaf\xff\xdb\x67\xbe\x48\xab\xfa\xf6\x49\x29\x6c\xd2\x18\x3b\x00\x69\x26\x8a\x78\xea\x53\xcb\x54\x73\xa9\xe6\x33\x33\xb9\xc8\x42\x86\x45\xd7\x7e\xa5\x91\x07\xa2\x9a\x2d\xcd\xab\x6d\x59\x4c\x33\x19\x91\x5a\x14\x56\xae\xd9\xb2\xdb\xc5\xd6\x96\x4d\xbc\xd0\xb4\xc3\xd3\xba\x3b\xd5\x4c\x74\x33\x55\xa6\xf4\x18\x5b\xca\x77\x65\x66\x5e\x66\x93\xeb\x98\xbf\xbc\xf7\xb3\x9b\x55\x84\x9c\x26\x74\x7f\xb7\xef\x3b\x66\x66\x9b\xc8\xa4\x10\x66\x8d\x33\xeb\x8e\x99\x46\xa2\xa6\x86\x6d\xa8\x10\xeb\x7c\x8e\x42\x5c\x55\x73\x8d\xb2\x29\x32\x5c\xc6\xf8\xb0\x9a\x37\x44\x11\xcd\xa5\xcf\x5c\x26\x46\x35\x56\xfa\xdc\x14\x39\x7a\x54\x4a\x53\x5a\x6c\xf3\x1c\x37\x87\xba\xb6\x30\xd5\xc2\xf3\x69\x49\xb2\x9d\xa7\xb1\x5f\xa1\xa8\x92\x4c\xd9\xdc\xf7\x84\x47\x57\xb5\xfb\xdb\x84\x85\x2e\x55\x89\x11\xaf\x6f\x16\x0a\x20\x35\x13\xb3\xac\x98\x37\x85\x58\x50\xdf\xbc\x30\x9a\x65\x5d\x81\xd6\x2d\x06\x72\xb2\xb0\x14\xd8\xd5\x23\xf4\xcb\x69\xc9\x73\x9e\x16\xc2\x7b\xf4\xab\x1c\x37\xba\x1a\xf6\xb4\xa2\x50\x3a\xfb\xea\xdb\xc3\xc2\x16\x24\x5f\xa1\x98\xd4\xba\x74\x46\x80\x4c\xa7\x89\xa8\x46\x48\x50\x19\xbe\xc3\xdd\x78\xbf\xb3\xb1\x3a\xc2\x2b\xb7\x5b\x69\xfd\x22\x4b\x36\x86\x2e\x45\xdc\xba\xdc\x92\xad\x53\x8e\xb5\xb9\x38\x2d\x42\x09\xe2\x1a\x99\xfe\xdd\x99\x29\x5a\xcd\x44\x21\x67\xc2\x94\x7d\x22\xf2\x9c\x92\x00\xd9\xdc\xea\x35\x01\x51\x09\x0c\xd3\xa2\x22\xd5\x65\x2e\xc2\x19\xf5\x4e\x22\x79\xa7\xba\xad\x35\x5b\x64\x1a\x98\x24\x86\x98\x9e\xf1\x24\x11\x39\x8b\x1e\xcb\xf4\xc9\x26\xb4\x67\x66\xda\x64\x09\xcf\xa7\xbe\xa1\x69\xc4\xdb\xc7\x5b\x8b\x4c\x0b\x41\x1d\x2f\x53\x5a\x4b\xd3\xe1\x5c\xb5\x51\x87\xab\x8f\x2f\x1b\x06\x15\x57\x36\x19\xbd\x47\xc4\xb6\x3d\x48\x7e\xbb\x05\xde\xf5\x61\x17\xe6\x47\x5f\xfd\xc2\xb5\x07\x3e\xde\xee\x34\x75\xb2\xac\x70\xac\xee\xe7\xda\x34\x70\x54\x26\x36\x37\x53\xd5\x6d\xb6\x9e\xfd\x4d\x25\xb5\xcf\xfa\x6d\xc9\xa9\x2e\x28\xc6\xaf\x5b\x69\x16\xb5\x9b\x16\x85\xef\xb8\x45\xce\xa5\x99\xb9\x53\xf6\x62\x5a\xd8\x5f\xe9\x7b\x81\xb9\xcc\x8f\xa5\x90\x70\x29\xf7\x79\xaf\xcc\x8c\x29\x02\x9e\xa9\xf9\xef\xa4\xba\x8d\x55\xa4\x6f\x69\xac\x98\x19\xfa\x96\x7a\xfb\x0d\xcf\xe4\x2d\xcf\xe4\x4d\xa4\x52\x63\xf2\xe9\xdb\x3f\x85\x64\x4a\xe1\x85\x13\x1a\xd6\x05\x97\x89\xa6\x29\xa9\x2e\x20\x28\x98\x63\xcb\xea\x5e\x28\xfc\x11\xeb\xfd\x0b\x4d\xb7\x61\x49\xd2\x94\x12\x6b\xb1\x6d\x8c\xd4\xc8\xb2\x44\xda\x09\x26\xcc\x92\x36\x48\x46\x6a\xf6\x28\xa7\x8f\x14\x3b\x13\xa9\xd9\x4c\xa4\x94\x8d\xac\xde\x72\x8d\x77\x39\xc7\x80\xa9\xd2\xea\x49\x66\xd2\xce\x45\xdb\x8b\xcd\xb5\xa7\xd7\xa2\x5f\x96\x5d\xcb\xfb\x6d\xd6\xdf\xe5\x4c\x98\x05\xcb\x3b\x2c\x4c\xd5\xde\xda\xb5\xd4\x4a\x3e\x5a\x34\x68\xd2\xd2\x36\x3b\x97\xf7\x00\x78\x9d\xc2\x93\xe4\x9a\xe5\x62\xca\xf3\x98\x98\xa9\x99\xe5\xd3\x39\xe3\x51\x21\x9f\x65\x31\x37\x2b\x9b\x4c\xfd\xff\xdb\x76\x7e\x29\xec\xe7\xb5\x65\xf5\xdb\xf7\xb4\xf9\x4f\x6b\x38\xaa\xdc\x53\x62\xd3\xc4\x36\x3f\x99\xb9\x6e\x4c\x4b\xab\x6d\x3c\x1b\x12\xee\x34\x53\xf1\x28\x66\x76\x31\xb5\x0e\x7f\xaa\x90\x38\xbe\x76\xcb\xd5\xb5\xbb\x76\xa6\x9e\x49\x91\xd5\x4c\x49\xf6\x60\x93\xbd\x2c\x76\xe7\x6d\x2b\xad\x85\x4f\xec\xec\xcf\x73\xff\xfa\xd7\x1a\x0c\x55\xdf\xec\x73\x44\x0e\xd5\x2d\x56\xa6\x02\x51\xb5\xeb\x41\xa2\x16\x6b\x7e\x78\x24\xaa\xd6\x5c\x40\x51\x2d\x97\x0d\x25\x44\x0e\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\x0a\x2c\xea\x14\x5a\x14\x2c\xaa\x59\x3d\x60\x51\xc3\x67\x51\xf4\xba\x5b\x23\x38\x72\x65\x96\xfb\x5c\x3c\x4b\x1a\x2c\x7b\x05\x53\x4e\xef\xa5\xb1\x7c\x96\x71\xc9\x93\x7a\x2b\xf1\x60\xd3\xfd\x12\xbe\xea\x9b\xfb\xaa\x11\x8b\x45\x96\x8b\xc8\xac\xe3\x3f\x06\xf5\x7d\x45\x8f\xbb\xaa\x5c\x79\x0d\xdf\x4c\xe0\x59\x4c\xa6\xba\x10\xbc\xb1\x4c\x2e\xd2\xae\x97\xea\x8c\x9f\xe5\xb7\xff\x5d\x6a\x90\xaf\xa5\xa6\x1d\x0c\xf9\x5a\x73\x6e\x11\x4d\x07\x9f\x8d\xc5\x77\x89\x18\x8c\x1a\x6f\xff\x2c\x6c\x79\xc0\x00\x89\x01\x89\x01\x89\x01\x89\x01\x89\x01\x89\x01\x89\x01\x89\xf5\x34\xdb\x02\x89\x01\x89\x01\x89\x01\x89\x01\x89\x01\x89\x01\x89\x01\x89\x01\x89\x01\x89\x01\x89\x0d\xb2\x45\x81\xc4\x9a\xd5\x03\x24\x76\x2a\x48\x2c\xe6\x62\x66\xec\x87\x3d\x6f\xd1\xea\x46\xc2\x3e\xd1\xc7\x3c\x88\xe2\x90\x00\x2c\xbc\x14\xdc\xab\xad\x21\xc1\xbd\xc0\xbd\x68\xc8\x84\x71\x02\xdc\x05\xdc\x05\xdc\x05\xdc\x05\xdc\x05\xdc\x05\xdc\x05\xdc\xd5\xd3\x6c\x0b\xdc\x05\xdc\x05\xdc\x05\xdc\x05\xdc\x05\xdc\x05\xdc\x05\xdc\x05\xdc\x05\xdc\x05\xdc\x35\xc8\x16\x05\xee\x6a\x56\x0f\x70\xd7\xc9\xe0\x2e\x91\x25\x6a\x6e\x54\xe4\x20\x78\x57\xf8\x9a\x83\x02\xaf\xf0\x56\x10\xaf\xb6\xa6\x04\xf1\x02\xf1\xb2\xc4\x2b\x0c\x14\x20\x2f\x20\x2f\x20\x2f\x20\x2f\x20\x2f\x20\x2f\x20\x2f\x20\xaf\x9e\x66\x5b\x20\x2f\x20\x2f\x20\x2f\x20\x2f\x20\x2f\x20\x2f\x20\x2f\x20\x2f\x20\x2f\x20\x2f\x20\xaf\x41\xb6\x28\x90\x57\xb3\x7a\x80\xbc\x4e\x05\x79\xa5\x01\xed\xdc\xfe\x7f\xe1\xdf\xff\xc5\x59\x88\x2d\x64\x2c\x50\xb0\xb8\xfd\x54\x44\xb0\x31\xb0\x31\xb0\x31\x9c\x82\x08\x46\x06\x46\x06\x46\x06\x46\x06\x46\x06\x46\x06\x46\x36\x60\x3e\x04\x46\x06\x46\x06\x46\x06\x46\x06\x46\x06\x46\x06\x46\x76\x8a\x8c\xcc\x95\xda\x7c\x00\x35\x25\x2f\x8b\x47\xa6\x23\x95\x89\x6b\xa6\xcb\xe8\xd1\xb4\x3c\xd9\x2b\x82\xcf\xac\xb7\x37\xcb\x15\xd5\x72\x5b\xd1\x32\x5e\x3c\xb6\x97\x2c\x78\x46\x9b\x3f\x9b\xfe\x67\x94\xbe\xfb\xfa\x03\xae\x77\x80\x83\x80\x83\x80\x83\xa7\xd1\xa2\x80\x83\xcd\xea\x01\x1c\x3c\x3f\x38\x68\x7f\xff\xef\x01\x18\x61\x1d\x0c\xa6\x5e\xf6\xa8\x09\x7b\x92\x69\xbc\x2f\x40\x78\x5d\xd9\x3b\x64\xd3\x39\x6d\x6c\x4c\xa6\xca\x90\xbb\x6a\x38\x00\x6a\xcf\xee\x01\x2f\x02\x2d\x02\x2d\x9e\x04\x5a\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x04\x56\x3c\x0d\xac\x48\x3c\xd1\xd5\xc0\x26\x9f\x43\x17\x74\x38\x14\x6a\x08\x5c\x0a\x5c\x0a\x5c\x0a\x5c\x3a\xe8\x16\x05\x2e\x6d\x56\x0f\x70\xe9\x89\xe3\x52\x24\xd1\xab\xd0\x66\x23\x9d\x1e\xa8\x26\xa8\xe6\x49\x50\x4d\xa4\xcf\x03\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x04\xd0\x1c\x3c\xd0\x04\xf8\x03\xf8\x03\xf8\x03\xf8\x1b\x74\x8b\x02\xfc\x35\xab\x07\xe0\xef\x6c\xc0\xdf\x40\xb6\x47\xf6\x0b\xff\x0e\xbc\x2b\xb2\x0d\x91\x00\x1b\x02\x1b\x2e\x3c\x75\x40\xd8\x10\xc8\x10\xc8\x10\xc8\xd0\xff\x08\x64\x08\x64\x08\x64\x08\x64\x08\x64\x08\x64\x08\x64\x08\x64\x08\x64\x08\x64\x08\x64\x08\x64\x08\x64\x38\x48\x64\x58\xdf\x03\xb9\xc2\xd5\x80\xad\x8f\xed\x65\x06\x01\x05\x01\x05\x01\x05\x01\x05\x01\x05\x01\xbd\x70\x02\x2a\xb2\x44\xcd\x8d\x91\x30\x88\xbd\x8f\xe1\x6b\x8e\xb4\xf9\x31\xbc\x1f\xbb\x1f\x81\x31\x4f\x06\x63\x1e\x60\xf7\x63\x18\x18\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x3d\xcd\xb6\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x17\xc7\x32\x01\xff\x00\xff\x00\xff\x00\xff\x06\xdd\xa2\x80\x7f\xcd\xea\x01\xfc\x3b\x1f\xf8\x37\x94\xfd\x8f\xfd\x02\xc0\x43\x6f\x80\x6c\xa3\x24\x40\x87\x40\x87\x0b\x4f\x1d\x10\x3a\x04\x36\x04\x36\x04\x36\x0c\x3f\x02\x1b\x02\x1b\x02\x1b\x02\x1b\x02\x1b\x02\x1b\x02\x1b\x02\x1b\x02\x1b\x02\x1b\x02\x1b\x02\x1b\x02\x1b\x0e\x12\x1b\x36\xb6\x40\xae\xf0\x35\x60\x0f\x64\x7b\x99\x81\x41\x81\x41\x81\x41\x81\x41\x81\x41\x81\x41\x2f\x1b\x83\xe6\x82\x80\xd7\x40\xf2\x3f\x7e\xb3\x5f\x73\xb4\x04\x90\xd5\xfb\xb1\x07\x12\x20\xf3\x64\x40\xe6\xfe\xf7\x40\x56\x03\x03\x30\x13\x30\x13\x30\x13\x30\x13\x30\x13\x30\x13\x30\x13\x30\xb3\xa7\xd9\x16\x30\x13\x30\x13\x30\x13\x30\x13\x30\x13\x30\x13\x30\xf3\xe2\x60\x26\xe0\x1f\xe0\x1f\xe0\x1f\xe0\xdf\xa0\x5b\x14\xf0\xaf\x59\x3d\x80\x7f\xe7\x03\xff\x06\xb2\x07\xb2\x67\x00\x78\xe0\x3d\x90\xad\x94\x04\xe8\x10\xe8\x70\xe1\xa9\x03\x42\x87\xc0\x86\xc0\x86\xc0\x86\xe1\x47\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\xc3\x41\x62\xc3\xfa\x1e\xc8\x55\xbe\x06\xec\x81\x6c\x2f\x33\x30\x28\x30\x28\x30\x28\x30\x28\x30\x28\x30\xe8\x65\x63\x50\x5d\xf0\x42\x4c\xca\x64\x20\x9b\x20\x1f\xdc\xe7\x1c\x6d\x17\x64\xed\x03\xb0\x0d\x12\x2c\xf3\x64\x58\xe6\xfe\xb7\x41\xd6\x46\x06\x80\x26\x80\x26\x80\x26\x80\x26\x80\x26\x80\x26\x80\x26\x80\x66\x4f\xb3\x2d\x80\x26\x80\x26\x80\x26\x80\x26\x80\x26\x80\x26\x80\xe6\xc5\x01\x4d\x00\x40\x00\x40\x00\x40\x00\xc0\x41\xb7\x28\x00\x60\xb3\x7a\x00\x00\xcf\x08\x00\x0e\x64\x23\x64\xdf\x10\xf0\xc0\x3b\x21\xdb\x41\x09\xf0\x21\xf0\xe1\xc2\x53\x07\x84\x0f\x81\x0e\x81\x0e\x81\x0e\xab\x1f\x81\x0e\x81\x0e\x81\x0e\x81\x0e\x81\x0e\x81\x0e\x81\x0e\x81\x0e\x81\x0e\x81\x0e\x81\x0e\x81\x0e\x81\x0e\x07\x89\x0e\xeb\x7b\x21\x57\x3a\x1b\xb0\x19\xb2\xbd\xcc\x60\xa1\x60\xa1\x60\xa1\x60\xa1\x60\xa1\x60\xa1\x17\xc2\x42\x91\xf9\xf1\x1f\x1f\x9a\xf9\x1e\x7f\x55\xf9\x5d\x92\x04\x88\xa9\x41\x2e\x41\x2e\x4f\x82\x5c\x22\xff\x23\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\xe5\xf0\xe1\x25\x90\x17\x90\x17\x90\xd7\x69\xb4\x28\x90\x57\xb3\x7a\x80\xbc\x4e\x05\x79\xe1\xa0\xcf\x4c\xff\xe3\xc3\xc2\xf1\x9e\xa0\x5e\x8b\x8d\x09\xea\x05\xea\x85\x3d\x7b\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\x43\x44\x3e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xcd\xd2\x00\x7b\x01\x7b\x01\x7b\x01\x7b\x01\x7b\x5d\x20\xf6\x2a\xcd\x72\x52\xb8\xcf\x27\x9c\x20\xd5\xed\x4e\xc8\x6b\xdf\xa8\xa7\x0b\x4e\x9b\x8a\x82\xc9\x74\xa2\xf2\x59\xe8\xdf\x9c\x59\xff\xfd\x6a\xe2\x35\x15\xc5\x5d\xa3\x1a\xee\xee\x7f\xfb\x3f\x8b\xf7\x1c\x0b\x70\x9d\x2c\x77\x0a\x95\x78\xea\xd4\xa9\xd1\x35\x6a\xf7\xbd\xa9\xbf\xbb\xcb\xa8\x7a\xfe\x70\xda\x03\xab\x61\x3d\xda\x39\x73\x9b\x51\xf5\x8f\x0f\x77\xf7\xbf\x7d\x6b\xbb\x13\x63\x6b\xfb\xb1\xe5\x2b\x92\xf2\x6e\x9e\xd5\x10\x6b\x22\xde\x5d\x46\x19\x79\xf3\x73\xf1\x2c\xc5\x4b\x23\x7a\x63\x07\xc6\xfa\x4f\x63\x6c\x39\x13\xf3\x9a\xe2\x34\x22\x5e\x78\x13\xba\xe1\x44\xae\x43\xcd\xb1\x60\x99\x59\xf6\xb5\xb1\xc6\xd8\x5d\xca\x64\x6a\x11\x8e\xca\x59\x99\x06\x0a\x14\xb3\x38\x9f\x7f\x2b\x53\x16\xcb\x5c\x18\x71\x25\x02\x5a\x30\xf6\x2a\x39\x04\x1c\x5b\xf1\xbd\xd2\x79\xb2\xd9\xa4\xcc\xc9\x7b\x94\xe5\x2a\x12\x9a\x2c\x77\xa7\xe5\x9c\x75\x34\x62\xff\xa0\x37\x92\x57\x8e\x4c\xed\x1f\xd9\x0d\xbb\x4b\x92\x1f\xc9\x2e\x8f\xf3\x39\xcb\xcb\x94\xe9\x82\x1b\x55\xe4\x9d\x11\xee\x71\x22\xde\x52\xad\xd8\x72\x1c\x52\xf3\x92\x13\xe9\x0b\x4f\xf9\x54\xe4\xd6\x1d\x6a\x8f\x7f\xd1\x5a\x45\x92\xec\xfb\xe0\x78\xe4\xe4\x31\x56\x39\x33\x9d\xa5\x98\x07\x87\xc7\x8c\x3f\x99\x7a\x2b\x1e\x85\x16\x5e\x1f\x1a\xad\xec\x11\x1c\x51\xa8\xb1\x60\xa4\x88\xc9\xc9\xa8\x72\xf6\xe1\xe3\x0f\xe6\xda\x9c\x47\xc4\x0a\x13\x95\x4e\xad\x1a\x24\x47\x60\xa4\xd2\x82\xcb\xd4\x5a\xe2\x34\x55\x56\xd7\x12\x3f\x71\x24\x93\x8d\xe7\xc1\xa8\x99\xaa\x84\xa7\xd3\x91\xca\xa7\xb7\xd9\xd3\xf4\xb6\x4c\x65\xa4\x62\x71\xfb\xa7\xdf\xf4\xbd\x79\xca\x4e\xde\x79\x57\x31\x87\x6c\x90\x53\xf1\x50\x78\x31\x5c\x45\x5e\x28\xdd\x73\x50\x97\x75\x0d\x32\xce\x7e\x37\x13\xd1\x37\x9a\x88\xd6\xac\x94\xf6\xf2\xc5\xc5\x72\xc5\xbd\x2b\xe6\x30\xb6\x38\xad\xdb\x3a\x1d\xab\x78\xbe\xb8\x22\xf9\x4a\x6d\xfb\x6d\xcd\x51\x46\xaf\x5a\xcb\x46\x0b\x73\xf5\xf3\x87\x51\xbd\x7c\xab\xd7\xaf\xd6\xea\x86\x5e\xe8\xb5\x8e\xaf\x9b\x5f\xbd\x59\x23\xfc\x62\x5d\xdf\xc3\xfb\xf4\x8f\x1b\x3f\xfd\x2e\x8a\x44\x36\xc0\x6f\x3f\x45\x69\xb6\x39\xfa\x8e\xa6\xd6\x3e\x02\xef\xda\x94\x5e\x7b\x24\x5e\xfb\xb4\xd9\x21\x12\x6f\x0b\x81\x39\x16\x05\xbf\x74\x5b\x8e\xea\x00\x06\x5d\xfd\x17\x18\x74\xa1\xad\x16\x67\x0d\xea\x2d\xaf\xb3\xea\xec\xa0\x83\x69\x07\xd3\x0e\xa6\x1d\x4c\xbb\x93\x36\xed\x68\x2a\x3b\x73\xfb\x8e\xca\x08\x23\x6f\xff\x46\xde\x36\x15\x3d\x44\x4b\xef\x15\xdf\x3f\x0c\x73\x6f\xe7\x02\x9c\xac\x7a\x3b\x61\xc3\x6f\xa1\x28\x9b\xac\x3f\x53\xf1\x20\xe3\xa1\x16\x00\xc6\xfd\x2f\x00\xe3\x6f\x1b\xe3\xa3\xbb\x6d\xb7\x34\xa4\x2e\x12\x8b\x87\x5a\x00\x15\x6f\xfc\x0f\x4e\x94\xaa\xad\xea\xdd\x64\x2b\x28\xde\x36\xc4\x56\x24\x34\x4e\x54\xc4\x13\x5d\x52\x4c\x35\x8f\x22\xa1\x35\x9c\x2b\x70\xae\xc0\xb9\x72\xb8\x06\x41\xf2\x1a\x78\x95\x82\x57\xe9\xef\x66\x3a\x7e\xb0\xd3\xf1\x1d\x4d\xc7\x5b\xb8\x98\x6a\x9a\xa2\xca\xaf\xde\xe5\x89\x27\xec\x73\xaa\x96\xba\xe7\x0f\xa3\x95\x65\x5d\xad\x04\x5a\x5b\x07\xca\x6b\x6f\xf5\x3d\x10\x0f\x54\xcf\xc5\x38\x9a\x23\xaa\xd7\x72\x9c\xa0\x10\x3e\xac\x27\x6a\x51\x57\xb7\x3b\xa2\x3a\xcc\xb8\xbb\x87\x23\xb4\x49\x7b\x2d\x92\x09\x24\x3c\x24\x3c\x24\x3c\xf8\xe8\x60\x94\xec\x83\x48\x26\x3d\x08\xd9\x0e\x8f\x39\x17\xf5\xba\xaa\xa8\x10\xaf\x03\xa9\xee\x21\x6a\xd7\x57\x97\x62\x18\xd2\xf5\x95\xc5\x80\x72\xed\x45\xb9\x6e\x9e\x6c\xf7\x26\x5c\xf3\x32\x11\xd0\xad\xd0\xad\xd0\xad\xd0\xad\x43\xd1\xad\xdf\xcc\x9c\xf4\x6a\xd9\xba\xe2\x29\x67\xa8\x5a\xeb\x25\x85\x68\x1d\x46\x6d\x0f\x5c\xb3\xee\x54\x88\xc1\x49\xd6\x1d\x4a\x01\xc5\xda\xb7\x62\x6d\x9f\x67\x7b\x16\xac\xf0\xb2\x42\xad\x42\xad\x42\xad\x0e\x46\xad\xf6\xe0\x61\xbd\x10\xef\x2a\x3c\xab\x07\x13\xa9\xa7\xef\x55\x3d\x03\x8f\x2a\xbc\xa9\xc7\xd6\xa6\x87\xf3\xa4\x5e\xea\x81\x04\xb5\x65\x0c\xe7\x11\x20\x94\x9e\x75\x9d\x39\xb6\x3c\x8e\x60\xe5\x88\x43\x50\x3d\x6c\x45\xd8\x8a\x03\xb4\x15\x11\x54\x0f\x23\xb9\xf7\xa0\x7a\x9a\xf3\x2f\x32\xb2\xde\x6e\x71\x47\x78\xfd\x41\xed\xe8\x9d\x2b\x7d\x80\x16\x75\x5f\x65\x19\x84\x6d\xdd\x4f\x61\x4e\x55\x2b\x0f\xd1\xd4\xde\x21\xe4\xfe\xb5\x07\x41\x78\x13\x00\xc1\xf7\x90\xfa\x90\xfa\xc0\x42\x1b\x4b\x73\x48\xc5\xdb\x53\xf0\x3d\xcd\x70\x97\x13\x81\x6f\xd7\x75\x84\xe1\x1f\x5e\xe4\x9e\x45\x2c\x7e\x4f\x45\x19\x90\xc4\xbd\x90\xa8\xfc\x53\x50\xb8\xdb\x87\xe6\xef\x41\xe0\x22\x48\x1f\xfa\x16\xfa\x16\xfa\x76\x48\xfa\xf6\x15\x41\xfa\x8b\xf2\xf6\xbc\x23\xf5\x97\x96\x74\x84\xeb\x1f\x5c\xdc\x9e\x6c\xcc\x7e\x3f\x25\x19\xa6\xb4\x3d\xe3\xe8\xfd\x13\x53\xb6\xdd\x42\xf8\x7b\x13\xb6\xf0\xda\x42\xd5\x42\xd5\x42\xd5\x0e\x46\xd5\xf6\xe5\xb1\xbd\x24\x6f\x2d\x3c\xb5\x87\x15\xb3\x67\xe2\xa5\x3d\x17\x0f\x2d\xbc\xb3\x83\xd0\xb0\x7b\xf4\xcc\x2a\x1d\xf1\x44\xa6\xd3\xd3\x0e\xef\xdf\x31\xf5\x84\x2f\x3c\x12\x4f\xf8\x5f\x90\x78\xe2\x6d\x6d\x50\x74\x8e\xe1\x0f\xa3\xe8\x12\xb3\x4d\xf8\xc2\x23\xd7\x44\xe3\x7f\xd8\x20\x53\xb5\x55\xd5\x49\xb6\xc9\x34\x51\x1f\x55\xf4\xc5\xc6\xa0\x4d\x32\x15\xfb\xdf\xac\x91\xb1\xfd\x68\xeb\x6a\x3b\x25\x52\x17\xc6\xce\x7e\xe1\x45\xf4\xc8\x6c\xd4\xbf\x36\x0b\x8c\x59\x99\xd9\xff\x13\x3e\xe9\x5e\xc5\x77\xe1\x93\xd6\x8c\x17\xf3\xbc\xc6\x80\x59\xf1\x88\x5f\x55\x7e\x97\x24\x21\x16\x7c\x10\x63\x69\xe5\x0d\xe6\x65\x3f\xe9\x22\x17\x7c\xf6\x3f\x54\x51\x5b\x3f\xbb\x79\xf7\xb0\x07\xed\xa8\xd6\x2f\xcd\x48\x5d\xd1\x82\x67\x3d\x6a\x37\x6b\x64\xd3\xd1\x7b\xd2\xc8\x61\x2d\x6e\x95\xc6\x9b\xc7\x60\x87\x9d\xb0\x95\xf7\x65\x7b\x9f\x2c\x4f\x12\xf5\xf2\x4f\xd3\x71\x7f\x56\xea\x69\xc6\xf3\x27\xed\xbd\x9e\xda\xcd\x1b\xe2\x59\xa4\xe6\xff\x90\x0b\x70\x9e\x09\xf6\xfd\xed\xcf\x5f\xbf\xfe\xed\xcb\xdd\xb7\xbf\x7d\x7f\x3b\x62\x0f\x22\x37\x1f\x68\x3d\x81\xb1\x22\x9f\xad\x9c\x65\x89\x98\x89\xb4\x60\xe3\xf0\xd4\x19\x9f\x33\x39\x4d\x55\x2e\x58\xf1\x28\x35\x9b\x24\x7c\x4a\xce\xbe\xea\x12\x9e\x0b\xa6\xcd\x5d\xbc\x20\x97\x97\xa6\x47\x5f\x69\x16\x4b\x1d\xe5\x82\x0c\x0d\xf6\x4b\x22\xe9\x7b\x6a\x2e\x62\xae\xcd\x34\xb9\xf0\xa0\x5c\x14\x65\x9e\x8a\xd8\x3c\x8c\xa7\x73\xa6\x33\x11\xc9\x89\x8c\x98\x4c\x0b\x91\x3f\xf3\xe4\x9a\xa5\x2a\xa7\xcf\x2a\x1e\xc5\xdc\x3f\xa4\x7a\xaf\x75\xe4\x6a\x91\xc6\x74\xbf\x2f\xb3\xad\x0f\x16\x97\xb9\x4c\xa7\x8c\x33\x2d\xb4\xa6\x0f\xfb\x6d\x62\x0b\x26\xb5\xfd\x28\x5b\x7d\xd7\xae\xb4\x52\x24\xb1\xf9\xc9\x56\x41\xec\x2e\x17\x6c\x22\x78\x51\xe6\x82\x4d\x79\x21\xd8\x42\x43\xb8\x27\x89\xd4\x28\x9a\x98\x7c\xd8\x99\xb4\x1f\xb7\xea\xb1\x5b\x3a\x03\x5b\x9a\xbf\xdd\x33\x38\x56\x2a\x11\x3c\xed\xdb\xd1\xf9\xfb\xa3\x20\x3f\xaf\x4c\x4b\xc1\x14\xfd\xd9\x37\xec\xd8\xb4\x43\xc1\x5e\x1e\x45\x6a\xda\x32\x97\xe2\xd9\x54\xf8\x4c\x51\xdb\xea\x32\x29\x34\x9b\xe4\x6a\x56\x6b\xb1\x11\x7b\x90\x69\xe4\xfa\x97\xf5\x3b\x4b\xed\x5b\xd3\x79\x8b\xaf\x59\xe4\x3a\x90\x69\x79\x72\x34\x97\xda\x36\x7b\xf8\x10\x7b\x2b\x3d\x9c\xb3\x2c\x17\xcf\x52\x95\x9a\x51\x35\x7a\x9e\x40\xa3\x41\xc6\x36\xfb\x62\xe2\x7e\xab\xc6\x1f\x7b\x27\xfe\x88\x44\x56\xd8\x6d\x74\xc1\x0b\xae\x26\xe1\x25\xef\xa9\xef\xd7\x7a\x9b\xf9\x9c\x5c\xd0\xc6\x3c\xbe\xf8\x29\xd2\x8c\x2c\x61\x7b\x43\x20\x1e\xa1\x0b\xb9\x9e\x2d\xe2\xa5\xdb\xcc\x1d\xe4\x56\x17\x39\xb3\xd0\xe4\xe5\x51\x10\xeb\x88\x4b\xc1\x0a\xc5\xc4\x1f\x99\xb4\x2b\x3c\x7b\x37\x15\xa9\xc8\x79\x92\xcc\xd9\x44\x3e\xd3\xaf\x13\x39\x29\x84\x48\xd9\x4c\xa6\x65\x21\xf4\x7b\xa3\x25\xe8\xdb\x26\x72\x5a\xba\xdb\xac\xaf\x9f\xa9\xb4\x56\x96\xeb\xa5\x51\x64\xd7\x3f\xc7\x11\x38\xfb\xdf\x1f\xfe\x17\xf3\x02\xf1\xb3\xf9\x04\x11\x3b\x36\x53\xa8\xa9\xfd\x40\x77\x65\x28\x11\xa5\x36\x0f\x45\xb6\x6d\xc8\x52\x21\x62\x6d\xaf\x22\x40\x94\x16\xcc\x4c\xdd\xd7\xa6\xc2\x88\x38\xe4\x42\x17\x3c\xa7\xd9\x44\xe6\xf4\x1b\x3d\x58\x95\x45\xb3\xc5\x69\x1c\x8d\xd8\x57\xf3\xea\x17\xa9\xc5\x75\xfd\x2d\xa6\x65\xdc\x34\xa0\xe8\xdb\xe8\x39\x6e\x96\xac\xd0\x08\x7d\xa1\x69\x1e\x21\x9f\xeb\xc8\xc4\x14\x96\x0a\xb7\xb1\x5a\xe8\xb9\xf4\xc1\xa6\xa7\x87\xce\x9d\x8a\x3f\x0a\xf6\x24\xe6\xd7\x6c\x5c\x16\xd5\x9f\x13\x5e\x98\xf7\xeb\x94\x67\xfa\x51\x15\xd7\xec\xe5\x51\x46\x8f\x34\x19\xa4\xb5\x0a\x09\xd7\x87\x8e\xec\x3e\xdf\x0e\xa1\x9b\xa0\x0b\x69\x02\x37\x33\xa7\xf5\x9d\xc7\xd7\x8e\xc9\x99\x7f\x29\x33\x7e\x12\x51\x98\xe9\x74\x52\x08\xdb\xa7\x27\x32\xd7\xc5\x62\x65\x58\xf6\x25\xd3\x28\x29\x63\x3b\x67\x59\x90\x66\xf5\x0f\x71\x1b\xd3\x21\xcd\x7f\x6d\xa3\x3c\x89\xb9\x9d\xb0\xab\x07\x7f\x7f\xeb\x8b\xfc\xfd\xed\xe8\x7b\xfa\x3d\xfd\xbd\x31\xd7\x99\x51\xa0\xcb\x2c\x53\x39\xa1\x29\x33\x41\xd8\x95\x4a\x6a\x9a\x84\xaa\x35\x82\x5a\x8e\x3a\x80\x9b\x8d\xeb\xb5\x67\x2b\x81\xfa\xe0\x3f\xec\x0a\xeb\x86\x4d\x58\x39\xc6\xf3\x7a\x8b\x59\x5a\x58\xb0\x99\xd4\x9a\x56\x84\x06\xb2\xdc\x76\xe6\xf5\x5d\xef\x90\x58\xe9\x8e\x69\x91\x08\x22\x78\x85\xa2\xb1\x91\xcb\xc8\x8e\x04\x6b\x2a\x4c\xaa\xb2\xfb\x5e\x61\xeb\x40\xe6\xb6\xfa\xf5\x88\x7d\x12\x13\x4e\x3d\xc7\x4c\x1f\xcf\x22\x9f\x17\x8f\x46\x4b\xee\x42\xd6\x1e\xdc\xd7\x9c\x4c\x1d\x24\x7c\x2c\x92\xde\xea\x80\x9e\x76\x8c\x3a\x48\xe4\x4c\x16\x16\xf4\xce\xf8\x1f\x72\x56\xce\x58\x5a\xce\xc6\x22\xb7\xa5\x77\xa6\x8a\xad\x1f\x53\x15\xb4\x8a\xb9\xe9\x29\xe2\x49\x42\xd3\x30\x2d\xc4\xd2\x7c\x05\x13\x7f\xd0\xa4\xbb\x2c\x9d\x6c\xbd\xfe\xdb\xf7\xf5\x7f\xbb\x31\xec\x16\x0b\x7a\xde\x4c\x14\x3c\xe6\x05\x37\x6f\xe3\x6e\x00\xd2\x4c\x14\xf1\xd4\xcc\x24\xa5\xae\xcf\xa5\x9a\xcf\xcc\xe4\x22\x0b\x19\x16\x5d\xfb\x95\x46\x1e\x88\x6a\xb6\x34\xaf\xb6\x65\x31\xcd\x64\x44\x6a\x51\x58\xb9\x66\xcb\x6e\x17\x5b\x5b\x36\xf1\x42\xd3\x0e\x4f\xeb\xc8\xdf\x4c\x74\x33\x55\xa6\xf4\x18\x5b\xca\x77\x65\x66\x5e\xf6\x1f\x91\x2b\xfb\x97\xf7\x7e\x76\xb3\x8a\x90\xd3\x84\xee\xef\xf6\x7d\xc7\xcc\x6c\x13\x99\x14\xc2\xac\x71\x66\xdd\x31\xd3\x48\xd4\xd4\xb0\x0d\x15\x62\x03\x24\x22\xe1\x63\x10\x9a\x6b\x94\xf9\x82\xd8\x48\x8c\x99\x4c\x45\x58\xcd\x1b\xa2\x88\xe6\x52\xef\x07\xab\xf4\xb9\x29\x72\xf4\xa8\x94\x16\x34\x8b\x15\xca\xcf\xa1\xae\x2d\x4c\xb5\xf0\x7c\x5a\x92\x6c\xe7\xb4\x28\x51\x81\xa8\x92\x4c\xd9\xdc\xf7\x34\x5c\x6c\xb6\x76\x7f\x9b\xb0\xd0\xa5\x2a\x31\xe2\xf5\xcd\x42\x01\xa4\x66\x62\x96\x15\xf3\xa6\x10\x0b\xea\x9b\x17\x46\xb3\xac\x2b\xd0\xba\xc5\x40\x4e\x16\x96\x02\xbb\x7a\x84\x7e\x39\x2d\x79\xce\xd3\x42\xf8\xa8\x13\x02\xeb\xae\xa5\xc2\xb0\xa7\x15\xa5\xa4\x38\x90\xf0\xed\x61\x61\x0b\x92\xaf\x50\x4c\x6a\x5d\x3a\x23\x40\xa6\xd3\x44\x54\x23\x24\xa8\x0c\xdf\xe1\x6e\x7c\xa4\x84\xb1\x3a\xc2\x2b\xb7\x5b\x69\xfd\x22\x4b\x36\x86\x2e\x45\xdc\xba\xdc\x92\xad\x53\x8e\xb5\xb9\x38\x2d\x42\x09\xe2\x60\xd6\xb9\x1a\x34\x6d\xa5\x66\xa2\x90\x33\x61\xca\x3e\x11\xb9\xe9\xa1\x66\x14\x2e\x28\xaa\x4a\x60\x98\x16\x15\xa9\x2e\x73\x5f\x7d\xdc\x4b\x24\x1f\x06\x62\x6b\xcd\x16\x99\x06\x26\x89\x21\xa6\x67\x3c\x49\x44\xce\xa2\xc7\x32\x7d\xd2\x16\x71\x98\x69\x93\x25\x3c\x9f\xfa\x86\xa6\x11\x6f\x1f\x6f\x2d\x32\x2d\x04\x75\xbc\x4c\x69\x2d\x4d\x87\x73\xd5\x46\x1d\xae\x3e\xbe\xca\x2c\xa6\x28\x95\x60\x93\xd1\x7b\x44\x6c\xdb\x83\xe4\xb7\x5b\xe0\x5d\x1f\x76\x07\x60\xd0\x57\xbf\x70\xed\x83\x92\xbc\xdd\x69\xea\x64\x59\xe1\x58\xdd\xcf\xb5\x69\xe0\xa8\x4c\xe8\x8d\xb2\xea\x36\x5b\xcf\xfe\xa6\x92\xda\x67\x7d\x63\xa1\x2e\x45\x9c\x5c\x4e\x54\x49\xb7\xd2\x2c\x6a\x37\x2d\x0a\xdf\x71\x8b\x9c\x4b\x33\x73\xa7\xec\xc5\xb4\xb0\xbf\xd2\xf7\x02\x73\x99\x1f\x4b\x66\xee\x19\xbb\xe9\x21\x26\x75\x68\x66\x4c\x11\x02\x8a\x6a\xee\x3e\xa9\x6e\x63\x15\xe9\x5b\x1a\x2b\x66\x86\xbe\xa5\xde\x7e\xc3\x33\x79\xcb\x33\x79\x13\xa9\xd4\x98\x7c\xfa\xf6\x4f\xfe\x85\x37\xe1\x85\x13\x1a\xd6\x05\x97\x89\xa6\x29\xa9\x2e\x20\xca\x54\x8b\x62\xcb\xea\x5e\x28\xfc\x11\xeb\xfd\x0b\x4d\xb7\x61\x49\xd2\xec\x51\xbd\x2c\xe9\x6a\x23\x35\xb2\x2c\x91\x76\x82\x09\xb3\xa4\x19\xc9\xd4\xf7\x1e\xe5\xf4\x31\x99\x93\x69\x3b\x9b\x89\xd4\xcc\x64\x45\xbd\xe5\x1a\xef\x72\x8e\x01\x53\xa5\xd5\x93\xcc\xa4\x9d\x8b\xb6\x17\x9b\x6b\x4f\xaf\x45\xbf\x2c\x7b\xa2\xf7\xdb\xac\xbf\xcb\x99\x30\x0b\x96\x77\x58\x98\xaa\xbd\xb5\x6b\xa9\x95\x7c\xb4\x68\xd0\xa4\x45\x96\x9b\x99\x6c\x03\xb0\xa6\x65\x9e\x27\xc9\x35\xcb\xc5\x94\xe7\x31\x45\xf9\x99\x59\x3e\x9d\x33\x1e\x15\xf2\x59\x16\x73\xb3\xb2\xc9\xd4\xff\xbf\x6d\xe7\x97\xc2\x7e\xde\x83\x88\x54\x1a\xaf\xf0\x51\xed\x69\xda\xfc\xa7\x35\x1c\x55\xee\xe3\x1a\x4d\x13\x53\x0d\xd0\x75\x63\x5a\x5a\x1d\x35\xa4\x25\xd2\x69\xa6\xe2\x51\xcc\xec\x62\x6a\xf9\x00\x55\x48\x1c\x5f\xbb\xe5\xea\xda\x5d\x3b\x53\xcf\xa4\xc8\x6a\xa6\x24\x7b\x20\x11\x35\x5f\xec\xce\xdb\x56\x5a\x0b\xce\xd8\xd9\x9f\xe7\xfe\xf5\xaf\xcd\xa8\x6b\xc5\xb1\x6f\x5d\x08\x98\x55\x3e\xfd\x42\x30\xfb\x4c\x16\xa9\xc4\x18\x5a\xae\xc3\x6e\xcf\xbe\xec\x63\x1a\xf4\xeb\x97\xf0\xc8\xea\xd8\xa3\x0e\x0f\xde\x6f\x84\xe1\x5e\x78\xee\x27\x2a\xfc\x57\xaa\x53\xdd\x91\x0b\xad\x07\x42\x70\xfc\xc2\xf1\x0b\xc7\x2f\x1c\xbf\xe7\xe6\xf8\x5d\xb3\x2c\x6f\x72\xfe\xae\x97\x78\xeb\x97\xe7\xad\xe6\x5e\xec\xc3\xe9\xdc\x50\x2d\x7b\x71\x0e\xd6\x4c\x07\xf3\xd6\x77\xab\x8a\xd5\x1e\xfb\x83\xd5\xc8\xef\x75\xb3\x43\x1a\x93\x9f\xac\x01\x36\x16\x13\x1b\x56\x10\x3c\x3b\x95\x94\x70\xb3\x17\x75\x9d\xda\x3e\xa4\x54\xa5\x37\xa9\x98\x72\xea\xa0\xce\x70\xa8\xef\x57\xb2\x5e\xde\x30\x34\x9c\x88\x94\xb3\x99\x88\x25\x2f\x44\x32\xaf\x78\x7f\xb5\xe4\xca\xe4\xda\x19\x06\x54\xe9\x6c\x9a\xf3\x88\x46\x8d\x54\x71\x10\x04\xd5\xa2\x4d\xc1\x14\xbe\x97\x96\xda\x7c\x64\xbd\xb9\xb8\xb9\xd3\x17\xc8\xbd\x64\x62\xe7\x40\xff\x88\x91\xfd\xce\x99\xe0\x69\xeb\x37\xee\xd0\xcc\xf4\xcd\xf7\xf4\xc9\x6d\xc6\xd6\x06\x73\x6b\x28\xdd\x7f\x1b\x50\xd3\xad\x5e\x56\xc3\x9a\x83\x75\x7f\x60\x1b\x60\x1b\x60\x1b\x60\x1b\x60\x9b\xbd\x61\x9b\x8e\x6b\xc1\x12\xba\x39\xdc\xb2\xf8\x49\x64\xb9\x30\xa2\x24\xfe\x91\x65\x89\xe0\x5a\x84\x29\xe8\x3e\x57\x19\x9f\x92\x3a\xba\x57\x89\x8c\xe6\x8d\x20\x41\xdf\xe9\xe2\xf0\x00\xd3\xed\x3e\x8c\xfe\x32\x62\x0f\x76\x3e\xb3\xd2\x25\x13\xa9\x19\x2c\xd5\x9a\x2a\x98\xca\xb3\x47\x9e\xfa\xa0\xc5\xbc\x14\xb7\x13\x9e\x78\x5b\xf9\xfb\x5b\xfb\xf3\xf7\xb7\x6c\x22\x53\x9e\xc8\xff\xf8\x85\x64\x2c\x18\x8f\xc9\x97\xaf\x6e\xad\x9f\x33\xae\xcc\x30\xfb\xf8\x2b\x5d\xdd\x64\xed\xd3\x11\xfb\x2c\x69\x72\xac\x7d\xba\xca\x97\xcb\x56\x91\x9b\xc2\x9a\xc7\x64\xa3\xa8\xe2\x71\x97\x06\xb5\x25\xf8\xe4\xcb\xbe\x52\xf2\xb4\x79\x4d\xfb\x35\xcc\xa8\xe8\x66\xc0\x3e\xaa\x17\x36\xe5\xf9\x98\x4f\x1b\xbe\xcb\x60\xd4\x88\x7c\xa2\xf2\x99\x69\x93\xd6\xfa\xfa\xba\x50\xa2\xd5\xd5\x45\xa2\xd7\x2b\xd6\xcc\xd6\xad\x34\x6a\x32\x92\x71\x65\x0a\x93\x56\x20\xe7\x44\x68\x63\x4d\x1b\xd7\xe8\x57\xaf\x06\x46\xb5\xc6\xf4\xeb\x48\x40\x27\x21\x00\xb7\xf9\xb2\x11\xb3\xfb\x41\x69\x6d\xaa\x5b\x76\x57\xb6\x0c\x57\xec\xc6\x75\xc0\x66\x07\xd5\x3f\xb1\xab\x9f\x79\xf4\x34\xcd\x55\x99\xc6\xe6\x2a\x0a\x66\xa5\x8b\x16\x2a\xce\x4a\x48\xa7\x8f\x9b\x0f\xf1\x25\x18\x87\x27\xfd\xc4\xae\x7e\x55\xb9\xa8\x3d\x96\x45\x5c\x47\x3c\x36\xa5\x77\xf5\x63\x63\x9d\xe9\x79\xda\x9a\x9e\x4b\x0f\x9c\x84\x67\xec\xd2\x21\xb3\xc5\xee\x7e\x1c\xc5\x79\xc6\x8c\xb5\x5b\x3b\xac\xe3\xac\xc7\x6a\x05\x10\xd7\xbd\xb5\xef\x32\x75\x3d\x9c\x6f\xe3\x98\xfc\xb5\x5b\x65\xad\x61\xb0\xaf\xd5\x3f\xad\x20\x0f\xdb\x2e\xb7\xc4\x74\x0f\x05\x2f\xca\xae\x7c\xee\x1c\xf7\x6d\xd9\x25\xb9\x92\x4b\x27\xb8\x87\xeb\xf4\x36\x81\xee\x05\x7e\x63\x9b\xda\xe5\x6c\x53\xeb\xb6\xfa\x6c\xda\xaa\x76\x38\x33\x0d\xb1\x0b\x88\x5d\x40\xec\x02\x62\x17\x10\xbb\xd0\x36\xf9\x02\x8a\x9f\x50\x8d\x80\x93\x82\x93\x82\x93\x82\x93\x82\x93\x82\x93\x9e\x17\x27\x05\xba\x00\xba\x00\xba\x00\xba\xd8\x3b\xba\xd8\x02\xef\x0f\x74\x23\x59\xb7\x2a\x5c\xde\x4c\xf6\x5a\x8f\xdb\xa0\xa0\xcf\xca\x1b\x70\x3e\x20\xce\x07\xbc\xdc\xf3\x01\x9d\x94\xb4\xf9\x40\xd2\x98\x99\x66\x62\x3a\x52\x99\xb8\x66\xba\x8c\x1e\xcd\xbc\x44\xf3\xbe\xe0\x33\x3b\x69\x65\xb9\x22\xe9\xda\xb6\x57\x35\xe3\xc5\x63\xfb\x56\xd5\xb0\x51\xb4\xf9\xf3\x9a\x7c\x09\x48\xc1\xc1\x0e\x9d\x82\x63\x7b\x58\x18\xd2\x70\xec\x19\x17\x0e\x2f\x1b\x47\x87\x49\xb4\x97\x8d\xb4\xd8\xcc\x55\xef\x01\x83\xdd\xcc\x75\xa1\x29\x96\xb6\xf0\xa2\xb7\xa5\x59\x7a\x65\xf3\x0c\x4a\x60\x9e\x85\xee\x1b\x7c\x36\x9b\x5e\xcb\x70\xac\x54\x36\x3d\x16\xe2\x0c\xc5\x77\x8f\x09\x6c\x0e\x20\xbe\xdf\xb0\x9e\xcf\x4b\xb1\x17\xfd\xf7\x40\xc7\xa6\xec\x22\xfa\x5a\x8e\x4a\x19\x90\xe8\x3b\x91\x03\x52\xa0\xeb\xea\x8d\x3c\x58\x5d\x87\x2d\xe9\x17\xb4\x25\x1d\x7b\xef\xb0\xf7\x0e\x7b\xef\xb0\xf7\x0e\x26\xe9\xaa\x51\x34\xc8\x8d\x2e\xc7\x31\xe4\xb0\x4f\x67\xd3\x3e\x9d\xd3\x31\xe2\x82\x73\xbd\xf7\xdd\x39\xb9\xe0\xf1\x82\x06\xdb\xde\xe0\x32\x0f\x39\xf8\x96\x9c\x9a\x70\x11\x7f\x50\xa0\xdd\xd8\xfc\x8b\x47\xc5\x88\xb1\xcf\xe6\xbf\xfe\xef\x33\x2e\xc9\xcd\xa8\x59\x94\x94\xba\x10\x79\xb5\x1c\xd9\x88\x5c\x96\xc8\x27\xc1\xae\xc2\x57\x5f\x19\xd5\xe9\x95\xd2\x88\xdd\x27\x3c\x4d\x85\x95\xab\xa4\x65\x78\x62\xe5\xd3\x87\x1f\x76\x99\xdf\xe9\x1b\x8f\xa4\x32\x42\xa5\x05\x91\x3e\xf6\xd5\x67\x4a\xca\x3e\xdb\x1a\x33\x2b\x4b\xa6\x7d\xed\xb8\x58\xb4\x52\x8b\x9c\x82\xc8\x2a\xbd\x3d\xdf\x73\x45\x99\x8f\x39\x5f\xe4\x3f\xec\xe5\x0f\x8e\xc0\x70\xcd\x8a\x55\x64\x2a\x4e\xc8\x0f\xf8\x1a\x08\x4f\xa8\xc8\x79\x59\x3a\x7d\x4c\x17\xda\x3e\x14\xd0\x8e\x08\x83\x93\x8b\x30\xa0\x38\xa6\x9d\xf2\x42\xdf\xd0\xbd\x7f\x5e\x3f\x9b\xcf\x44\x3e\x15\x9d\xae\xd4\x45\xce\x0b\x31\x95\xd1\x4d\xf7\x7b\xcc\xbf\xe7\xee\x4a\x5a\x37\xba\xc8\xb4\x8c\xe7\x85\xa4\x6d\x86\x36\xe6\xee\xd5\x92\x8d\xde\x3f\x54\x17\xf9\xbe\xe2\x22\xd6\x98\x44\xf7\xcd\xd8\x38\x06\xc7\xf9\x99\x3b\xce\x2f\x27\x20\x62\x61\x47\x8f\x1f\x5c\x76\xd7\x99\x99\x8c\xaa\x93\x0c\xde\xad\x98\xa8\xde\x93\xdb\xd0\x6e\x35\xe7\x09\xdd\x99\xaa\xf4\xc6\xde\x4d\x57\x90\xe7\x5e\xb3\x77\x7f\xd5\x2a\xbd\xb7\x1b\xfa\xbf\x98\x29\xd1\xfd\xfb\xc1\x4f\x94\xd5\x1f\xdf\x0f\x29\x52\xa3\x7b\xbf\xf9\x55\xe5\x11\xa1\x8d\xa9\xa2\xc6\x57\xec\xfb\xdb\x89\xf9\xdb\xf7\xb7\xec\xae\x51\x9b\xb4\x5f\xc0\x72\x08\x32\x9d\xdc\x40\xbd\xe1\x11\x35\x00\x6d\x09\x4f\x64\xe4\x3c\xab\x64\x69\xa9\x17\xd7\xb6\x76\xcb\x74\x26\x54\x96\x88\x11\xb3\xef\xa4\x93\x20\x7c\x9f\xa2\xa8\xfd\xd6\x86\x08\xaf\xdf\xa5\x7a\xcd\x8b\x60\x70\xd9\x1f\x60\x70\x0d\xcd\xe0\xca\x16\xc2\xdf\x4f\xc6\xe4\x2a\x7b\xf7\xda\x65\x09\x8f\x5e\xaf\x02\xdd\x73\x2e\x4d\x07\x22\x3e\x16\x72\xf0\x62\xe5\xe0\x80\x54\x17\xc4\x41\xf8\x05\xf1\xb1\x10\x38\x56\x28\x9c\x8c\xbc\x79\xc3\xf6\x13\x59\x7a\xab\x2d\x9e\xae\x05\x98\xee\x07\x7b\xda\xf7\xf8\x65\xef\xb0\x00\xd4\x21\x78\xcc\x7b\x98\x33\x5e\x39\x67\x80\x42\x81\x42\x6d\x57\x66\x50\x28\x50\xa8\x7e\x28\x54\x7f\x2b\xe8\x0e\x3c\xaa\x65\x09\x3d\x49\x6f\x04\xa8\x14\xdc\x10\x97\xe7\x86\x00\x95\xea\xb3\xdf\x80\x4a\xc1\xf1\x04\x03\xec\x38\x06\x18\xa8\xd4\x02\x95\xea\xd3\xaf\xb2\x03\x9f\x3a\x17\x5d\x08\x4a\x05\x79\x78\xb1\xf2\x70\x40\x2a\x0c\x62\x21\xfc\x02\x4a\x05\xc1\x73\x76\x94\x8a\x8e\xc5\x5c\x09\xa5\xf6\x8a\xa1\xdc\x61\xea\x69\x2c\x9f\x65\x5c\xf2\xa4\x7e\x30\x2b\x0f\xe9\x13\x56\xd4\xc3\xa8\xb6\x9d\xff\xc7\x70\x10\xc0\x15\x3d\xf3\xaa\x4a\xab\xd3\xc8\x93\x12\xf4\x15\x93\xa9\x2e\x04\x6f\xb8\x54\x17\xd5\xd7\xcb\x92\x4f\x6e\xcd\x69\x9c\xbf\xaa\xfc\x2e\x49\x82\x38\x1b\x04\xda\x5a\x79\xc3\x65\x9d\xa9\xba\xc6\xc1\x48\x47\x02\x7f\x7e\x16\xe9\x25\x9f\xa6\x4a\x6d\x78\x39\x47\xaa\x22\x97\xdd\x19\xe7\xb2\xdb\x0c\xc5\x36\xe5\xb1\x5b\xeb\x59\xeb\x01\xf8\x21\x7b\x1d\xb2\xd7\x21\x7b\x1d\xb2\xd7\x9d\x5b\xf6\xba\xcd\x33\x6f\x6b\xe6\xba\x3d\x87\x57\x1c\x2c\x5f\xdd\xe6\xe2\xaf\xce\x55\x37\xe4\x3a\xd8\x26\x43\xdd\xe6\x3a\x58\x9d\x9d\x6e\xcf\x75\x80\x9c\x74\xc8\x49\x87\x9c\x74\xc8\x49\x87\x9c\x74\x7b\xcb\x49\xd7\x61\xf6\x5f\xca\x47\xb7\xf6\xe4\xd0\x0b\x8a\xae\xec\x56\x9a\x33\xce\xa9\xb7\xb9\xba\xd7\xe5\xd3\x3b\x6c\xbd\x23\x8b\xde\x5e\x5a\x74\x39\x83\xde\x9e\x9b\xf5\xa8\x79\xf3\x36\x57\xcf\x9a\x9c\x79\xfb\x9e\x36\x87\x9a\x29\x6f\x73\xa5\xb5\xd0\x8c\x9d\xfd\x79\xee\x5f\xff\xea\x8a\xd0\xb6\xdc\xee\x05\xb2\xb6\x4d\x54\xd3\xdf\x17\xf8\x04\x98\x1a\x98\x1a\x03\x53\x03\x53\x03\x53\x03\x53\x03\x53\x03\x53\x03\x53\x03\x53\x03\x53\x6b\x4e\xb7\x03\xe4\x49\x60\x6a\x60\x6a\x60\x6a\x60\x6a\x60\x6a\x60\x6a\x60\x6a\xa7\xc8\xd4\x70\x54\x0b\x60\x22\x60\x22\x60\xe2\xa0\x5b\x14\x30\xb1\x59\x3d\x80\x89\xe7\x0d\x13\x5b\xb2\x92\xef\x89\x29\xd6\x41\x62\xea\x25\x90\x9a\xb0\x27\x99\xae\x3c\xe2\xa0\x17\xa0\x78\x5d\x19\x40\x64\xe4\x39\xb1\x6c\x6c\xa8\xca\xb2\xbb\x6a\x78\x04\x6a\xcf\xee\x19\x47\x02\x45\x02\x45\x9e\x12\x8a\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x04\x86\x3c\x3d\x0c\x89\x74\x18\x60\xac\x60\xac\xa7\x43\xe4\xc0\x58\xc1\x58\xc1\x58\xc1\x58\x17\x2a\xed\x18\x8c\xf5\xe3\x58\x14\xfc\xc3\xed\x4e\xb0\xf4\x28\x07\x1c\x2f\xb4\xf6\x54\x14\x4d\xc3\xc5\x36\xec\x1a\xc2\x39\x15\x45\x9d\x6f\xda\x0a\xb8\xbb\xff\xed\x5b\xdb\xbd\x38\xdb\x79\x4b\xcc\x58\xab\x48\xda\xa6\x7a\x4e\xac\xd1\x76\x95\xda\xcd\x6f\xea\x1f\xb0\x79\x90\x1d\x65\xf7\xb3\xf5\x7d\xe5\xce\x7a\xf6\xc6\xd5\x86\x20\x85\x35\xc3\xc7\x3c\x6f\x79\xfc\xac\x78\x0e\x4e\x02\x5e\x6c\x9d\xc1\x8c\xe1\xe6\xd9\xe6\xb6\x15\x57\x1d\x70\x7e\xfe\x23\x79\x73\xe8\xc0\x70\x37\x30\x2f\x16\x06\xe1\x03\x08\x1f\x40\xf8\x00\xc2\x07\x10\x3e\x80\xf0\x01\x84\x0f\x20\x7c\x60\xf3\x6c\x8b\xf0\x01\x84\x0f\x20\x7c\x00\xe1\x03\x08\x1f\x40\xf8\x00\xc2\x07\x2e\x2e\x7c\x00\xa0\x19\xa0\x19\xa0\xf9\x34\x5a\x14\xa0\xb9\x59\x3d\x00\xcd\xa7\x05\x9a\x5f\x71\x30\xb0\x95\x3f\xfd\xd2\x31\xfb\x4c\x16\xa9\xc4\x58\x5b\xae\xd7\x6e\x0f\xc5\xec\x63\x96\xb1\xd8\x2f\xe1\xb9\xdb\xed\xa2\xdd\x6b\x92\xf2\xbd\x70\xdf\x4f\x54\x03\x5f\xa9\x62\x75\x2f\x79\xc8\xe1\x02\x86\x0b\x18\x2e\x60\xb8\x80\xcf\xcd\x05\xdc\x2d\x83\x7d\xab\x1b\xf8\x95\xd9\xeb\xbb\xcf\xbd\xff\x34\x15\xe7\x8c\xdf\x6b\x3a\x3a\x3f\x32\x3d\xca\xf6\x83\x46\xd9\xea\xb8\x75\x2c\x58\x66\x6a\x4b\x1b\x3b\x91\xdd\xa5\x4c\xa6\x76\x66\x51\x39\x2b\xd3\x30\x39\xc5\x2c\xce\xe7\xdf\xca\x94\xc5\x32\x37\x8b\xe3\xb3\x08\x3d\xde\x4c\x9f\xe4\xaa\x70\x43\xde\xf7\x0d\x57\xc1\x6c\x52\xe6\x34\xca\xb2\x5c\x45\x42\x93\x4f\xc1\xa9\x4c\xd7\xcb\x46\xec\x1f\xf4\x46\x6a\x2d\xea\x3b\x3f\xb2\x1b\x76\x97\x24\x3f\x92\xc7\x20\x36\xb3\x74\x99\x9a\x86\x37\x7a\xcd\x77\x49\xf7\xb8\xe5\xd4\xf1\x1d\x1a\xca\x96\xe5\x38\xcd\x74\x30\xbf\x7d\xb7\xaa\x58\xed\xbb\x3f\x58\x8d\xfc\x5e\x37\x40\xa4\x31\xfe\xc9\x2e\x60\x63\x31\xb1\x01\x06\xc1\xc7\x53\x49\x09\x37\x7b\x51\xd7\x29\x85\x5d\x1c\xc6\x46\x7a\xa7\x37\xa9\x98\x72\xea\xa0\xce\x84\x30\xd6\x8e\x5f\x41\xad\xbf\x37\x0c\x0d\xa7\x24\xe5\x6c\x26\x62\xc9\x0b\x91\xcc\x2b\xf2\x5f\x2d\xb9\x32\xb9\x76\x26\x02\x55\x3a\x9b\xe6\x3c\xa2\x51\x23\x55\x1c\x04\x41\xb5\x68\x53\x58\x85\xef\xa5\xa5\x36\x1f\x59\x6f\x2e\x6e\xee\xf4\x05\x72\x2f\x99\xd8\x39\xd0\x3f\x62\x64\xbf\x73\x26\x78\xda\xfa\x8d\x3b\x34\x33\x7d\xf3\x3d\x7d\x72\x9b\xd9\xb5\xc1\xf0\x1a\x4a\xf7\xdf\x06\xd9\x74\xab\x97\xd5\xd8\xe6\x60\xdd\x1f\x00\x07\x00\x07\x00\x07\x00\x07\x00\x67\x6f\x00\xa7\xe3\x5a\xb0\x04\x71\x0e\xb7\x2c\x7e\xaa\x9d\x2f\x97\x25\x82\x6b\x11\xa6\xa0\xfb\x5c\x65\x7c\x4a\xea\xe8\x5e\x25\x32\x9a\x37\xc2\x05\x7d\xa7\xab\x0e\xa8\x33\xdd\xee\xc3\xe8\x2f\x23\xf6\x60\xe7\x33\x2b\x5d\x32\x91\x9a\xc1\x52\xad\xa9\x82\xa9\x3c\x7b\xe4\xa9\x0f\x5f\xcc\x4b\x71\x3b\xe1\x89\xb7\x95\xbf\xbf\xb5\x3f\x7f\x7f\xcb\x26\x32\xe5\x89\xfc\x8f\x5f\x48\xc6\x82\xf1\x98\xbc\xfa\xea\xd6\x7a\x3c\xe3\xca\x0c\xb3\x8f\xbf\xd2\xd5\x4d\xd6\x3e\x1d\xb1\xcf\x92\x26\xc7\xda\xa7\xab\x7c\xb9\x6c\x15\xc3\x29\xac\x79\x4c\x36\x8a\x2a\x1e\x77\x69\x50\x5b\x82\x4f\xbe\xec\x2b\x25\x4f\x9b\xff\xb4\x5f\xc3\x8c\x8a\x6e\x06\xec\xa3\x7a\x61\x53\x9e\x8f\xf9\xb4\xe1\xc0\x0c\x46\x8d\xc8\x27\x2a\x9f\x99\x36\x69\xad\xaf\xaf\x0b\x25\x5a\x5d\x5d\x24\x7a\xbd\x62\xcd\x6c\xdd\x4a\xa3\x26\x23\x19\x57\xa6\x30\x69\x05\x72\x4e\x84\x36\x36\x8b\xb5\x5b\x49\xbd\x1a\x18\xd5\x1a\xd3\xaf\x23\x01\xa2\x84\x50\xdc\xe6\xcb\x46\xec\x2e\x8a\x44\x56\xd0\xda\x54\xb7\xec\xae\x6c\x19\xae\xd8\x8d\xeb\x80\xcd\x0e\xaa\x7f\x62\x57\x3f\xf3\xe8\x69\x9a\xab\x32\x8d\xcd\x55\x14\xd6\x4a\x17\x2d\x54\x9c\x95\x90\x4e\x1f\x37\x1f\xe2\x4b\x30\x0e\x4f\xfa\x89\x5d\xfd\xaa\x72\x51\x7b\x2c\x8b\xb8\x8e\x78\x6c\x4a\xef\xea\xc7\x46\x3d\xd3\xf3\xb4\x35\x3d\x97\x1e\x38\x09\xcf\xd8\xa5\x43\x66\x8b\xdd\xfd\x38\x8a\xf3\x8c\x69\x6b\xb7\x76\x58\x47\x5c\x8f\xd5\x0a\x60\xaf\x7b\x6b\xdf\x65\xfe\x7a\x38\xdf\xc6\x31\x49\x6c\xb7\xca\x5a\x43\x63\x5f\xab\x7f\x5a\x69\x1e\xb6\x67\x6e\x89\xe9\x1e\x0a\x5e\x94\x5d\xf9\xdc\xd9\xee\xe5\xb2\xeb\x72\xa5\x99\x4e\x75\x5f\xd7\x89\x6e\x16\xdd\x0b\x0b\xc7\xfe\xb5\xcb\xd9\xbf\xd6\x6d\x31\xda\xb4\x87\xed\x70\x56\x1b\x42\x19\x10\xca\x80\x50\x06\x84\x32\x20\x94\xa1\x6d\xf2\x05\x23\x3f\xa1\x1a\x01\x36\x05\x36\x05\x36\x05\x36\x05\x36\x05\x36\x3d\x2f\x6c\x0a\x92\x01\x92\x01\x92\x01\x92\xb1\x77\x92\xb1\x05\xed\x1f\xe8\x0e\xb3\x6e\x55\xb8\xbc\xcb\xec\xb5\x1e\xb7\x41\x31\xa0\x95\x37\xe0\x1c\x41\x9c\x23\x88\x73\x04\x71\x7a\xff\x69\x1c\xaa\xe0\xfe\xf5\xaf\xaa\x91\x95\xee\x99\x2a\x5a\xab\x8e\xf1\x1d\x00\xa2\xbd\xf5\x40\x08\x71\xb7\xed\xb4\x6b\xba\xd8\xc1\x26\xd6\x5e\x36\xdc\x62\xd3\x57\xbd\x1b\x0c\x76\xd3\x17\x79\x7a\xbe\xf0\x94\x4f\x45\x6e\x7d\x96\x76\x72\xd5\x5a\x45\x92\x8c\xf0\xe0\x1d\xe4\xe4\xe4\x55\x39\x13\x69\x61\x54\xb1\xf7\x4a\xcc\xf8\x93\xa9\xc5\xe2\x51\x68\xe1\xa5\x65\x7d\x6b\x93\xdf\x02\x45\xd2\x9a\x3c\x81\x2a\x67\x1f\x3e\xfe\x60\xae\xcd\x79\x44\xe8\x2f\x51\xe9\xd4\x0a\x49\xf2\xd6\x45\xa6\x53\xca\xd4\xce\x68\xe4\x0d\xab\xae\x25\x1c\xe2\xc0\x24\x1b\xcf\x83\xad\x34\x55\x09\x4f\xa7\x23\x95\x4f\x6f\xb3\xa7\xe9\x6d\x99\xca\x48\xc5\xe2\xf6\x4f\xbf\xe9\x7b\xf3\x94\x9d\xdd\xeb\xae\x72\xfa\x6c\x9e\x41\x29\xcf\xf3\x11\x84\x5d\xc5\xe0\xc7\x0e\x62\xf0\x17\xeb\x3b\x1c\x7a\x41\x3e\x6e\x2c\x88\x0d\x76\x1e\x7a\x49\xce\x55\x9f\x93\xfc\x39\x2d\x7d\xfe\x86\xed\xe3\xe8\x15\x7b\xd1\x7f\x0f\x74\x02\xcb\x2e\xe2\x70\xd5\xa9\x2b\x03\x12\x87\x27\x72\xd6\x0a\xa4\x5f\xbd\x91\x07\x2b\xfd\xb0\xbb\xfd\x82\x76\xb7\x63\x1b\x1f\xb6\xf1\x61\x1b\x1f\xb6\xf1\xc1\x6a\x5d\x35\x8a\x06\xb9\x67\xe6\x38\x16\x1e\xb6\xfc\xf8\x0b\xd7\x6e\xf9\x39\x31\xc3\x2e\xf8\xe4\x7b\xdf\xe8\x93\x0b\x1e\x2f\xa8\xb1\xed\xed\x2f\xf3\x90\xe3\xec\xee\xa9\xe9\x18\xf1\x07\xc5\xec\x8d\xcd\xbf\x78\x54\x8c\x18\xfb\x6c\xfe\xeb\xff\x3e\xe3\x92\x1c\x93\x9a\x45\x49\xa9\x0b\x91\x57\xab\x93\x0d\xee\x65\x89\x7c\x12\xec\x2a\x7c\xf5\x95\x11\xa1\x5e\x38\x8d\xd8\x7d\xc2\xd3\x54\x58\xf5\x4a\xd2\x86\x27\x56\x4d\x7d\xf8\x61\x97\xe9\x9e\xbe\xf1\x48\xa2\x23\x54\x5a\xd0\xec\x63\x5f\x7d\xa6\xa4\xec\xb3\xad\x31\xb3\xd0\x64\xda\xd7\x8e\x0b\x6b\x2b\xb5\xc8\x29\x1e\xad\x92\xdf\xf3\x3d\x57\x94\xf9\x98\xf3\x8d\x1e\x18\xf6\x6a\x08\x87\x61\xcb\xcd\x2b\x56\x96\xa9\x38\x35\x7f\xe1\x6b\x78\x3e\xb1\x26\xe7\x83\xe9\xf4\x45\x5d\xc0\xfd\x50\x98\x3d\x82\x15\x4e\x2e\x58\x81\x22\xa4\x76\xca\x56\x7d\x43\xf7\xfe\x79\xfd\xe4\x3e\x13\xf9\x54\x74\xba\x52\x17\x39\x2f\xc4\x54\x46\x37\xdd\xef\x31\xff\x9e\xbb\x2b\x69\x19\xe9\x22\xdd\x32\x9e\x17\x92\x36\x30\xda\x68\xbe\x57\xcb\x38\x7a\xff\xa0\xbd\xe8\xfb\x0a\xb1\x58\x63\x35\xdd\x37\x43\xef\x18\x7c\xeb\x67\xee\x5b\xbf\x9c\xb0\x8a\x85\x0d\x43\x7e\x70\xd9\x4d\x6d\x66\x46\xaa\x0e\x4a\x78\xb7\x62\xb6\x7a\x4f\x9e\x45\xbb\x93\x9d\x27\x74\x67\xaa\xd2\x1b\x7b\x37\x5d\x41\xce\x7d\xcd\xde\xfd\x55\xab\xf4\xde\x9e\x17\xf0\xc5\xcc\x8b\xee\xdf\x0f\x7e\xb6\xac\xfe\xf8\x7e\x48\xf1\x1e\xdd\xfb\xcd\xaf\x2a\x8f\x88\x7e\x4c\x15\x35\xbe\x62\xdf\xdf\x4e\xcc\xdf\xbe\xbf\x65\x77\x8d\xda\xa4\xed\x08\x16\x55\x90\x39\xe5\x06\xea\x0d\x8f\xa8\x01\x68\xc7\x79\x22\x23\xe7\x7c\x25\xeb\x4b\xbd\xb8\xb6\xb5\x3b\xb2\x33\xa1\xb2\x44\x8c\x98\x7d\x27\x1d\x34\xe1\xfb\x14\x6d\x0a\x68\x6d\x88\xf0\xfa\x5d\xaa\xd7\xbc\x08\x46\x98\xfd\x01\x46\x58\xcb\x33\x07\x62\x84\x65\x0b\x71\xf6\xa7\x65\x86\x95\xbd\x7b\xf7\xb2\x84\x47\xaf\x57\x86\xee\x39\x17\xa9\x0d\x11\x7e\x0b\x9d\xd8\xd6\x4c\x97\xa3\x13\x07\x24\xc7\xa0\x1a\xc2\x2f\x08\xbf\x85\xfc\x59\x96\x3f\xe5\xa9\xf9\xa0\xdf\xb0\x3d\xc6\xac\xde\x6a\xcb\xbc\x6b\xa1\xab\xfb\x21\xa8\xf6\x3d\x7e\x3d\x3c\x02\x4b\x75\x70\x1f\xb3\x22\x26\x93\xaa\xb5\x00\xb4\x00\xb4\x00\xb4\x00\xb4\xda\x2e\x3c\x05\xa0\xd5\xdf\xaa\xba\x2b\xda\x6a\x59\x56\x4f\xd2\x89\x01\xc0\x05\xc7\xc5\xe5\x39\x2e\x00\xb8\xfa\xec\x37\x00\x5c\x70\x55\xc1\x28\x3b\xb6\x51\x06\xc0\xd5\x06\xb8\xfa\xf4\xbf\xec\x8a\xba\xce\x45\x2b\x02\x78\x41\x37\xb6\x35\xd3\xe5\xe8\xc6\x01\xc9\x33\xa8\x88\xf0\x0b\x80\x17\xe4\xd0\xe5\x00\x2f\x3a\xf2\x73\x25\xdf\xda\x2b\xd1\x72\x07\xc5\xa7\xb1\x7c\x96\x71\xc9\x93\xfa\xa1\xb3\x3c\xa4\x86\x58\x51\x23\xa3\xda\x71\x03\x3f\x86\x83\x0a\xae\xe8\x99\x57\x55\xca\xa0\x46\x0e\x98\x20\xc1\x98\x4c\x75\x21\x78\xc3\x13\xbb\x28\xd0\x5e\xda\x5d\x79\x6b\x4e\x1a\xfd\x55\xe5\x77\x49\x12\xf4\xdb\x20\x28\xd9\xca\x1b\x2e\xeb\xd0\xd8\x35\x7e\x49\x3a\xf3\xf8\xf3\xb3\x48\x2f\xfe\xa4\x58\x6a\xc8\x0b\x3b\x2e\x16\x69\xfb\xce\x38\x6d\xdf\x66\xb4\xb6\x29\x65\xdf\x5a\xd7\x5c\x0f\xd8\x10\x89\xfa\x90\xa8\x0f\x89\xfa\x90\xa8\xef\xdc\x12\xf5\x6d\x9e\x79\x5b\x93\xf4\xed\x39\x48\xe3\x60\xa9\xf9\x36\x17\x7f\x75\x5a\xbe\x21\xd7\xc1\x36\xc9\xf8\x36\xd7\xc1\xea\x44\x7c\x7b\xae\x03\xa4\xdf\x43\xfa\x3d\xa4\xdf\x43\xfa\x3d\xa4\xdf\xdb\x5b\xfa\xbd\x0e\xb3\xff\x52\xea\xbd\xb5\x07\x9d\x5e\x50\x8c\x66\xb7\xd2\x9c\x71\xfa\xc0\xcd\xd5\xbd\x2e\x75\xe0\x61\xeb\x1d\x09\x03\xf7\xd2\xa2\xcb\xc9\x02\xf7\xdc\xac\x47\x4d\x11\xb8\xb9\x7a\xd6\xa4\x07\xdc\xf7\xb4\x39\xd4\xa4\x80\x9b\x2b\xad\x85\x6b\xec\xec\xcf\x73\xff\xfa\xd7\x56\x58\x6d\xcb\xdd\x64\xa0\x6d\x5b\x07\x43\xfd\x7d\x01\x57\x80\xb3\x81\xb3\x31\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\x36\x70\xb6\xbd\x3a\x8c\x71\x08\x0c\x00\x23\x00\x23\x00\xe3\xa0\x5b\x14\x80\xb1\x59\x3d\x00\x8c\x17\x00\x18\x5b\x52\xac\xef\x89\x33\xd6\xe1\x62\xea\x75\x90\x9a\xb0\x27\x99\xae\x3c\x2d\xa1\x17\xc8\x78\x5d\x59\x41\x64\xe9\x39\xc5\x6c\x0c\xa9\xca\xbc\xbb\x6a\xb8\x05\x6a\xcf\xde\x07\xa2\x04\x9e\x04\x9e\x3c\x39\x3c\x09\x34\x09\x34\x09\x34\xc9\x80\x26\x81\x26\x81\x26\x81\x26\x81\x26\x81\x26\x81\x26\x81\x26\x81\x26\x81\x26\x81\x26\x81\x26\x81\x26\x4f\x13\x4d\x22\xf9\x06\xb8\x2b\xb8\xeb\xe9\x50\x3a\x70\x57\x70\x57\x70\x57\x70\xd7\x85\x4a\x3b\x1a\x77\xfd\x78\xbb\x13\x3b\x3d\xca\x81\xc9\x0b\xad\x3d\x15\x45\xd3\x70\xb1\x0d\xbb\x06\x78\x4e\x45\xb1\x84\x3b\x3f\xde\xdd\xff\xf6\xad\xed\x5e\x9c\x15\xbd\x25\x70\xac\x55\x24\x6d\x62\x3d\x3b\xea\xf8\xb1\x76\xf3\x9b\xfa\x07\x6c\x1e\x64\x47\xd9\x20\x6d\x7d\x5f\xb9\xb3\x9e\xbd\x71\xb5\x21\x66\x61\xcd\xf0\x31\xcf\x5b\x1e\x3f\x2b\x9e\x83\xb3\x83\x17\x5b\x67\x30\x63\xb8\xe5\x98\xf4\x8f\xab\x8e\x49\x3f\xff\x91\xbc\x39\x7e\x60\xe0\x3b\x9b\x3f\x22\x7c\x00\xe1\x03\x08\x1f\x40\xf8\x00\xc2\x07\x10\x3e\x80\xf0\x01\x84\x0f\x6c\x33\xdb\x22\x7c\x00\xe1\x03\x08\x1f\x40\xf8\x00\xc2\x07\x10\x3e\x80\xf0\x81\x8b\x0b\x1f\x00\x68\x06\x68\x06\x68\x3e\x8d\x16\x05\x68\x6e\x56\x0f\x40\xf3\x69\x81\xe6\x57\x9c\x1d\x6c\xe5\x4f\xbf\x74\xcc\x3e\x93\x45\x2a\x31\xd6\x96\xeb\xb5\xdb\x43\x31\xfb\x98\x65\x2c\xf6\x4b\x78\xee\x76\xfb\x69\xf7\x9a\xf9\x7c\x2f\xdc\xf7\x13\xd5\xc0\x57\xaa\x58\xdd\x4b\x5e\x73\xb8\x80\xe1\x02\x86\x0b\x18\x2e\xe0\x73\x73\x01\x77\xcb\x88\xdf\xea\x06\x7e\x65\x36\xfc\xee\x73\xef\x3f\x4d\xc5\x39\xe3\xf7\x9a\x4e\xd7\x8f\x4c\x8f\xb2\xfd\xa0\x51\xb6\x3a\x6e\x1d\x0b\x96\x99\xda\xd2\xc6\x4e\x64\x77\x29\x93\xa9\x9d\x59\x54\xce\xca\x34\x4c\x4e\x31\x8b\xf3\xf9\xb7\x32\x65\xb1\xcc\xcd\xe2\xf8\x2c\x42\x8f\x37\xd3\x27\xb9\x2a\xdc\x90\xf7\x7d\xc3\x55\x30\x9b\x94\x39\x8d\xb2\x2c\x57\x91\xd0\xe4\x53\x70\x2a\xd3\xf5\xb2\x11\xfb\x07\xbd\x91\x5a\x8b\xfa\xce\x8f\xec\x86\xdd\x25\xc9\x8f\xe4\x31\x88\xcd\x2c\x5d\xa6\xa6\xe1\x8d\x5e\xf3\x5d\xd2\x3d\x6e\x39\x0b\x7d\x87\x86\xb2\x65\x39\x4e\x33\x1d\xcc\x6f\xdf\xad\x2a\x56\xfb\xee\x0f\x56\x23\xbf\xd7\x0d\x10\x69\x8c\x7f\xb2\x0b\xd8\x58\x4c\x6c\x80\x41\xf0\xf1\x54\x52\xc2\xcd\x5e\xd4\x75\x4a\x61\x17\x87\xb1\x91\xde\xe9\x4d\x2a\xa6\x9c\x3a\xa8\x33\x21\x8c\xb5\xe3\x57\x50\xeb\xef\x0d\x43\xc3\x29\x49\x39\x9b\x89\x58\xf2\x42\x24\xf3\x8a\xfc\x57\x4b\xae\x4c\xae\x9d\x89\x40\x95\xce\xa6\x39\x8f\x68\xd4\x48\x15\x07\x41\x50\x2d\xda\x14\x56\xe1\x7b\x69\xa9\xcd\x47\xd6\x9b\x8b\x9b\x3b\x7d\x81\xdc\x4b\x26\x76\x0e\xf4\x8f\x18\xd9\xef\x9c\x09\x9e\xb6\x7e\xe3\x0e\xcd\x4c\xdf\x7c\x4f\x9f\xdc\x66\x76\x6d\x30\xbc\x86\xd2\xfd\xb7\x41\x36\xdd\xea\x65\x35\xb6\x39\x58\xf7\x07\xc0\x01\xc0\x01\xc0\x01\xc0\x01\xc0\xd9\x1b\xc0\xe9\xb8\x16\x2c\x41\x9c\xc3\x2d\x8b\x9f\x6a\xc7\xcd\x65\x89\xe0\x5a\x84\x29\xe8\x3e\x57\x19\x9f\x92\x3a\xba\x57\x89\x8c\xe6\x8d\x70\x41\xdf\xe9\xaa\xf3\xea\x4c\xb7\xfb\x30\xfa\xcb\x88\x3d\xd8\xf9\xcc\x4a\x97\x4c\xa4\x66\xb0\x54\x6b\xaa\x60\x2a\xcf\x1e\x79\xea\xc3\x17\xf3\x52\xdc\x4e\x78\xe2\x6d\xe5\xef\x6f\xed\xcf\xdf\xdf\xb2\x89\x4c\x79\x22\xff\xe3\x17\x92\xb1\x60\x3c\x26\xaf\xbe\xba\xb5\x1e\xcf\xb8\x32\xc3\xec\xe3\xaf\x74\x75\x93\xb5\x4f\x47\xec\xb3\xa4\xc9\xb1\xf6\xe9\x2a\x5f\x2e\x5b\xc5\x70\x0a\x6b\x1e\x93\x8d\xa2\x8a\xc7\x5d\x1a\xd4\x96\xe0\x93\x2f\xfb\x4a\xc9\xd3\xe6\x3f\xed\xd7\x30\xa3\xa2\x9b\x01\xfb\xa8\x5e\xd8\x94\xe7\x63\x3e\x6d\x38\x30\x83\x51\x23\xf2\x89\xca\x67\xa6\x4d\x5a\xeb\xeb\xeb\x42\x89\x56\x57\x17\x89\x5e\xaf\x58\x33\x5b\xb7\xd2\xa8\xc9\x48\xc6\x95\x29\x4c\x5a\x81\x9c\x13\xa1\x8d\xcd\x62\xed\x56\x52\xaf\x06\x46\xb5\xc6\xf4\xeb\x48\x80\x28\x21\x14\xb7\xf9\xb2\x11\xbb\x8b\x22\x91\x15\xb4\x36\xd5\x2d\xbb\x2b\x5b\x86\x2b\x76\xe3\x3a\x60\xb3\x83\xea\x9f\xd8\xd5\xcf\x3c\x7a\x9a\xe6\xaa\x4c\x63\x73\x15\x85\xb5\xd2\x45\x0b\x15\x67\x25\xa4\xd3\xc7\xcd\x87\xf8\x12\x8c\xc3\x93\x7e\x62\x57\xbf\xaa\x5c\xd4\x1e\xcb\x22\xae\x23\x1e\x9b\xd2\xbb\xfa\xb1\x51\xcf\xf4\x3c\x6d\x4d\xcf\xa5\x07\x4e\xc2\x33\x76\xe9\x90\xd9\x62\x77\x3f\x8e\xe2\x3c\x63\xda\xda\xad\x1d\xd6\x11\xd7\x63\xb5\x02\xd8\xeb\xde\xda\x77\x99\xbf\x1e\xce\xb7\x71\x4c\x12\xdb\xad\xb2\xd6\xd0\xd8\xd7\xea\x9f\x56\x9a\x87\xed\x99\x5b\x62\xba\x87\x82\x17\x65\x57\x3e\x77\xb6\x7b\xb9\xec\xba\x5c\x69\xa6\x53\xdd\xd7\x75\xa2\x9b\x45\xf7\xc2\xc2\xb1\x7f\xed\x72\xf6\xaf\x75\x5b\x8c\x36\xed\x61\x3b\x9c\xd5\x86\x50\x06\x84\x32\x20\x94\x01\xa1\x0c\x08\x65\x68\x9b\x7c\xc1\xc8\x4f\xa8\x46\x80\x4d\x81\x4d\x81\x4d\x81\x4d\x81\x4d\x81\x4d\xcf\x0b\x9b\x82\x64\x80\x64\x80\x64\x80\x64\xec\x9d\x64\x6c\x41\xfb\x07\xba\xc3\xac\x5b\x15\x2e\xef\x32\x7b\xad\xc7\x6d\x50\x0c\x68\xe5\x0d\x38\x47\x10\xe7\x08\xe2\x1c\x41\x9c\xde\x7f\x1a\x87\x2a\xb8\x7f\xfd\xab\x6a\x64\xa5\x7b\xa6\x8a\xd6\xaa\x63\x7c\x07\x80\x68\x6f\x3d\x10\x42\xdc\x6d\x3b\xed\x9a\x2e\x76\xb0\x89\xb5\x97\x0d\xb7\xd8\xf4\x55\xef\x06\x83\xdd\xf4\x45\x9e\x9e\x2f\x3c\xe5\x53\x91\x5b\x9f\xa5\x9d\x5c\xb5\x56\x91\x24\x23\x3c\x78\x07\x39\x39\x79\x55\xce\x44\x5a\x18\x55\xec\xbd\x12\x33\xfe\x64\x6a\xb1\x78\x14\x5a\x78\x69\x59\xdf\xda\xe4\xb7\x40\x91\xb4\x26\x4f\xa0\xca\xd9\x87\x8f\x3f\x98\x6b\x73\x1e\x11\xfa\x4b\x54\x3a\xb5\x42\x92\xbc\x75\x91\xe9\x94\x32\xb5\x33\x1a\x79\xc3\xaa\x6b\x09\x87\x38\x30\xc9\xc6\xf3\x60\x2b\x4d\x55\xc2\xd3\xe9\x48\xe5\xd3\xdb\xec\x69\x7a\x5b\xa6\x32\x52\xb1\xb8\xfd\xd3\x6f\xfa\xde\x3c\x65\x67\xf7\xba\xab\x9c\x3e\x9b\x67\x50\xca\xf3\x7c\x04\x61\x57\x31\xf8\xb1\x83\x18\xfc\xc5\xfa\x0e\x87\x5e\x90\x8f\x1b\x0b\x62\x83\x9d\x87\x5e\x92\x73\xd5\xe7\x24\x7f\x4e\x4b\x9f\xbf\x61\xfb\x38\x7a\xc5\x5e\xf4\xdf\x03\x9d\xc0\xb2\x8b\x38\x5c\x75\xea\xca\x80\xc4\xe1\x89\x9c\xb5\x02\xe9\x57\x6f\xe4\xc1\x4a\x3f\xec\x6e\xbf\xa0\xdd\xed\xd8\xc6\x87\x6d\x7c\xd8\xc6\x87\x6d\x7c\xb0\x5a\x57\x8d\xa2\x41\xee\x99\x39\x8e\x85\x87\x2d\x3f\xfe\xc2\xb5\x5b\x7e\x4e\xcc\xb0\x0b\x3e\xf9\xde\x37\xfa\xe4\x82\xc7\x0b\x6a\x6c\x7b\xfb\xcb\x3c\xe4\x38\xbb\x7b\x6a\x3a\x46\xfc\x41\x31\x7b\x63\xf3\x2f\x1e\x15\x23\xc6\x3e\x9b\xff\xfa\xbf\xcf\xb8\x24\xc7\xa4\x66\x51\x52\xea\x42\xe4\xd5\xea\x64\x83\x7b\x59\x22\x9f\x04\xbb\x0a\x5f\x7d\x65\x44\xa8\x17\x4e\x23\x76\x9f\xf0\x34\x15\x56\xbd\x92\xb4\xe1\x89\x55\x53\x1f\x7e\xd8\x65\xba\xa7\x6f\x3c\x92\xe8\x08\x95\x16\x34\xfb\xd8\x57\x9f\x29\x29\xfb\x6c\x6b\xcc\x2c\x34\x99\xf6\xb5\xe3\xc2\xda\x4a\x2d\x72\x8a\x47\xab\xe4\xf7\x7c\xcf\x15\x65\x3e\xe6\x7c\xa3\x07\x86\xbd\x1a\xc2\x61\xd8\x72\xf3\x8a\x95\x65\x2a\x4e\xcd\x5f\xf8\x1a\x9e\x4f\xac\xc9\xf9\x60\x3a\x7d\x51\x17\x70\x3f\x14\x66\x8f\x60\x85\x93\x0b\x56\xa0\x08\xa9\x9d\xb2\x55\xdf\xd0\xbd\x7f\x5e\x3f\xb9\xcf\x44\x3e\x15\x9d\xae\xd4\x45\xce\x0b\x31\x95\xd1\x4d\xf7\x7b\xcc\xbf\xe7\xee\x4a\x5a\x46\xba\x48\xb7\x8c\xe7\x85\xa4\x0d\x8c\x36\x9a\xef\xd5\x32\x8e\xde\x3f\x68\x2f\xfa\xbe\x42\x2c\xd6\x58\x4d\xf7\xcd\xd0\x3b\x06\xdf\xfa\x99\xfb\xd6\x2f\x27\xac\x62\x61\xc3\x90\x1f\x5c\x76\x53\x9b\x99\x91\xaa\x83\x12\xde\xad\x98\xad\xde\x93\x67\xd1\xee\x64\xe7\x09\xdd\x99\xaa\xf4\xc6\xde\x4d\x57\x90\x73\x5f\xb3\x77\x7f\xd5\x2a\xbd\xb7\xe7\x05\x7c\x31\xf3\xa2\xfb\xf7\x83\x9f\x2d\xab\x3f\xbe\x1f\x52\xbc\x47\xf7\x7e\xf3\xab\xca\x23\xa2\x1f\x53\x45\x8d\xaf\xd8\xf7\xb7\x13\xf3\xb7\xef\x6f\xd9\x5d\xa3\x36\x69\x3b\x82\x45\x15\x64\x4e\xb9\x81\x7a\xc3\x23\x6a\x00\xda\x71\x9e\xc8\xc8\x39\x5f\xc9\xfa\x52\x2f\xae\x6d\xed\x8e\xec\x4c\xa8\x2c\x11\x23\x66\xdf\x49\x07\x4d\xf8\x3e\x45\x9b\x02\x5a\x1b\x22\xbc\x7e\x97\xea\x35\x2f\x82\x11\x66\x7f\x80\x11\xd6\xf2\xcc\x81\x18\x61\xd9\x42\x9c\xfd\x69\x99\x61\x65\xef\xde\xbd\x2c\xe1\xd1\xeb\x95\xa1\x7b\xce\x45\x6a\x43\x84\xdf\x42\x27\xb6\x35\xd3\xe5\xe8\xc4\x01\xc9\x31\xa8\x86\xf0\x0b\xc2\x6f\x21\x7f\x96\xe5\x4f\x79\x6a\x3e\xe8\x37\x6c\x8f\x31\xab\xb7\xda\x32\xef\x5a\xe8\xea\x7e\x08\xaa\x7d\x8f\x5f\x0f\x8f\xc0\x52\x1d\xdc\xc7\xac\x88\xc9\xa4\x6a\x2d\x00\x2d\x00\x2d\x00\x2d\x00\xad\xb6\x0b\x4f\x01\x68\xf5\xb7\xaa\xee\x8a\xb6\x5a\x96\xd5\x93\x74\x62\x00\x70\xc1\x71\x71\x79\x8e\x0b\x00\xae\x3e\xfb\x0d\x00\x17\x5c\x55\x30\xca\x8e\x6d\x94\x01\x70\xb5\x01\xae\x3e\xfd\x2f\xbb\xa2\xae\x73\xd1\x8a\x00\x5e\xd0\x8d\x6d\xcd\x74\x39\xba\x71\x40\xf2\x0c\x2a\x22\xfc\x02\xe0\x05\x39\x74\x39\xc0\x8b\x8e\xfc\x5c\xc9\xb7\xf6\x4a\xb4\xdc\x41\xf1\x69\x2c\x9f\x65\x5c\xf2\xa4\x7e\xe8\x2c\x0f\xa9\x21\x56\xd4\xc8\xa8\x76\xdc\xc0\x8f\xe1\xa0\x82\x2b\x7a\xe6\x55\x95\x32\xa8\x91\x03\x26\x48\x30\x26\x53\x5d\x08\xde\xf0\xc4\x2e\x0a\xb4\x97\x76\x57\xde\x9a\x93\x46\x7f\x55\xf9\x5d\x92\x04\xfd\x36\x08\x4a\xb6\xf2\x86\xcb\x3a\x34\x76\x8d\x5f\x92\xce\x3c\xfe\xfc\x2c\xd2\x8b\x3f\x29\x96\x1a\xf2\xc2\x8e\x8b\x45\xda\xbe\x33\x4e\xdb\xb7\x19\xad\x6d\x4a\xd9\xb7\xd6\x35\xd7\x03\x36\x44\xa2\x3e\x24\xea\x43\xa2\x3e\x24\xea\x3b\xb7\x44\x7d\x9b\x67\xde\xd6\x24\x7d\x7b\x0e\xd2\x38\x58\x6a\xbe\xcd\xc5\x5f\x9d\x96\x6f\xc8\x75\xb0\x4d\x32\xbe\xcd\x75\xb0\x3a\x11\xdf\x9e\xeb\x00\xe9\xf7\x90\x7e\x0f\xe9\xf7\x90\x7e\x0f\xe9\xf7\xf6\x96\x7e\xaf\xc3\xec\xbf\x94\x7a\x6f\xed\x41\xa7\x17\x14\xa3\xd9\xad\x34\x67\x9c\x3e\x70\x73\x75\xaf\x4b\x1d\x78\xd8\x7a\x47\xc2\xc0\xbd\xb4\xe8\x72\xb2\xc0\x3d\x37\xeb\x51\x53\x04\x6e\xae\x9e\x35\xe9\x01\xf7\x3d\x6d\x0e\x35\x29\xe0\xe6\x4a\x6b\xe1\x1a\x3b\xfb\xf3\xdc\xbf\xfe\xb5\x15\x56\xdb\x72\x37\x19\x68\xdb\xd6\xc1\x50\x7f\x5f\xc0\x15\xe0\x6c\xe0\x6c\x0c\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x0d\x9c\x6d\xaf\x0e\x63\x1c\x02\x03\xc0\x08\xc0\x08\xc0\x38\xe8\x16\x05\x60\x6c\x56\x0f\x00\xe3\x05\x00\xc6\x96\x14\xeb\x7b\xe2\x8c\x75\xb8\x98\x7a\x1d\xa4\x26\xec\x49\xa6\x2b\x4f\x4b\xe8\x05\x32\x5e\x57\x56\x10\x59\x7a\x4e\x31\x1b\x43\xaa\x32\xef\xae\x1a\x6e\x81\xda\xb3\xf7\x81\x28\x81\x27\x81\x27\x4f\x0e\x4f\x02\x4d\x02\x4d\x02\x4d\x32\xa0\x49\xa0\x49\xa0\x49\xa0\x49\xa0\x49\xa0\x49\xa0\x49\xa0\x49\xa0\x49\xa0\x49\xa0\x49\xa0\x49\xa0\xc9\xd3\x44\x93\x48\xbe\x01\xee\x0a\xee\x7a\x3a\x94\x0e\xdc\x15\xdc\x15\xdc\x15\xdc\x75\xa1\xd2\x0e\xc4\x5d\xc7\xc4\x58\x77\xa2\xa5\x47\x39\x22\x79\xa1\x7d\xa7\xa2\x60\x32\x9d\xa8\x7c\x16\xfa\x33\x67\x96\xce\xac\xa6\x9c\x53\x51\xfc\x4c\xa0\xf3\xfe\xb7\xff\xb3\x78\x29\xce\x83\xde\x12\x2a\x86\x4a\x3c\x71\xa4\x38\x5e\x60\xbb\x6f\xea\xaf\x6c\x1b\x33\xcf\x1f\x4e\x7b\xd8\x34\x2c\x7c\x3b\x03\x76\x18\x33\xff\xf8\x70\x77\xff\xdb\xb7\xb6\x1b\x30\x72\xb6\x1f\x39\xbe\x22\x69\x8b\xf7\x39\x0c\xa0\xff\xfb\xfc\x61\xcb\x31\xf4\xff\xaa\xf1\x7e\x0f\x05\xb0\xfe\xde\xdc\x79\x8c\xbc\x43\xc1\xc7\xe9\xfc\x55\x8d\xd7\xf4\x7a\x73\xaf\xeb\xf6\x7f\x55\x63\x1c\x7e\xbd\x58\xd5\x83\x19\x66\x23\xea\x4f\x66\x54\xfd\x55\x8d\xcf\x74\x34\x6d\x0e\x6b\xe9\x6b\xc3\xfd\x78\xb9\xbf\xf8\x78\x96\xe6\x78\x59\x88\x5d\xf9\x80\xb0\x15\x84\xad\x20\x6c\x05\x61\x2b\x08\x5b\x41\xd8\x0a\xc2\x56\x10\xb6\xb2\xcd\x6c\x8b\xb0\x15\x84\xad\x20\x6c\x05\x61\x2b\x08\x5b\x41\xd8\x0a\xc2\x56\x2e\x2e\x6c\x05\x01\x0e\x08\x70\x40\x80\xc3\x69\xb4\x28\x02\x1c\x9a\xd5\x83\x00\x87\xa1\x07\x38\x3c\x7f\x58\xb5\x8f\x7c\x91\x3f\x59\x7d\xd3\x2f\x82\xb2\xcf\x64\x91\x4a\x8c\x39\xe5\xba\xe5\x7a\xf2\x64\x6f\x71\xec\xe9\x97\x70\x63\xb5\x13\x7b\xe1\xf6\xfd\xe6\xc7\xdf\x0b\xff\xfc\x44\x45\xfc\x4a\xb5\xa4\x7b\xc9\x7e\x0f\x87\x2d\x1c\xb6\x70\xd8\xc2\x61\x7b\x6e\x0e\xdb\x35\xcb\xe9\x26\xa7\xed\x7a\x69\xb6\x7e\x59\xdd\x6a\xee\xfd\xa7\xa9\x38\x67\xaa\x5e\x53\x0e\x86\xc8\xf4\x28\xdb\x0f\x1a\x65\xab\xc3\xd1\xb1\x60\x99\xa9\x2d\x6d\xac\x3a\x76\x97\x32\x99\xda\x99\x45\xe5\xac\x4c\xc3\xe4\x14\xb3\x38\x9f\x7f\x2b\x53\x16\xcb\xdc\x2c\x84\xcf\x22\xf4\x78\x33\x7d\x92\x63\xc1\x0d\x79\xdf\x37\x5c\x05\xb3\x49\x99\xd3\x28\xcb\x72\x15\x09\x4d\x1e\x00\xa7\x09\x5d\x2f\x1b\xb1\x7f\xd0\x1b\xa9\xb5\xa8\xef\xfc\xc8\x6e\xd8\x5d\x92\xfc\x48\xf6\x7d\x6c\x66\xe9\x32\x35\x0d\x6f\xd4\x95\xef\x92\xee\x71\x22\xde\xa1\xa1\x6c\x59\x8e\xd3\x4c\x07\xf3\xb2\x77\xab\x8a\xd5\x9e\xf6\x83\xd5\xc8\xef\x75\x73\x41\x1a\x53\x9d\x54\x3c\x1b\x8b\x89\x0d\x07\x08\x1e\x99\x4a\x4a\xb8\xd9\x8b\xba\x4e\x29\xec\xe2\x30\x36\x42\x39\xbd\x49\xc5\x94\x53\x07\x75\x82\xdf\xd8\x26\x7e\x05\xb5\xde\xd9\x30\x34\x9c\x2c\x94\xb3\x99\x88\x25\x2f\x44\x32\xaf\x38\x7d\xb5\xe4\xca\xe4\xda\x09\x7a\xaa\x74\x36\xcd\x79\x44\xa3\x46\xaa\x38\x08\x82\x6a\xd1\xa6\x20\x08\xdf\x4b\x4b\x6d\x3e\xb2\xde\x5c\xdc\xdc\xe9\x0b\xe4\x5e\x32\xb1\x73\xa0\x7f\xc4\xc8\x7e\xe7\x4c\xf0\xb4\xf5\x1b\x77\x68\x66\xfa\xe6\x7b\xfa\xe4\x36\x23\x69\x83\x99\x34\x94\xee\xbf\x0d\x60\xe9\x56\x2f\xab\x21\xcb\xc1\xba\x3f\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\xcb\xde\x70\x4b\xc7\xb5\x60\x09\xb9\x1c\x6e\x59\xfc\x54\x3b\x94\x30\x4b\x04\xd7\x22\x4c\x41\xf7\xb9\xca\xf8\x94\xd4\xd1\xbd\x4a\x64\x34\x6f\x04\xf7\xf9\x4e\x57\x9d\x6a\x68\xba\xdd\x87\xd1\x5f\x46\xec\xc1\xce\x67\x56\xba\x64\x22\x35\x83\xa5\x5a\x53\x05\x53\x79\xf6\xc8\x53\x1f\x6c\x98\x97\xe2\x76\xc2\x13\x6f\x2b\x7f\x7f\x6b\x7f\xfe\xfe\x96\x4d\x64\xca\x13\xf9\x1f\xbf\x90\x8c\x05\xe3\x31\xf9\xe0\xd5\xad\xf5\x4f\xc6\x95\x19\x66\x1f\x7f\xa5\xab\x9b\xac\x7d\x3a\x62\x9f\x25\x4d\x8e\xb5\x4f\x57\xf9\x72\xd9\x2a\xe2\x52\x58\xf3\x98\x6c\x14\x55\x3c\xee\xd2\xa0\xb6\x04\x9f\x7c\xd9\x57\x4a\x9e\x36\x6f\x67\xbf\x86\x19\x15\xdd\x0c\xd8\x47\xf5\xc2\xa6\x3c\x1f\xf3\x69\xc3\x1b\x19\x8c\x1a\x91\x4f\x54\x3e\x33\x6d\xd2\x5a\x5f\x5f\x17\x4a\xb4\xba\xba\x48\xf4\x7a\xc5\x9a\xd9\xba\x95\x46\x4d\x46\x32\xae\x4c\x61\xd2\x0a\xe4\x9c\x08\x6d\xac\x69\x43\x17\xfd\xea\xd5\xc0\xa8\xd6\x98\x7e\x1d\x09\xc8\x23\x04\xce\x36\x5f\x36\x62\x77\x51\x24\xb2\x82\xd6\xa6\xba\x65\x77\x65\xcb\x70\xc5\x6e\x5c\x07\x6c\x76\x50\xfd\x13\xbb\xfa\x99\x47\x4f\xd3\x5c\x95\x69\x6c\xae\xa2\x20\x54\xba\x68\xa1\xe2\xac\x84\x74\xfa\xb8\xf9\x10\x5f\x82\x71\x78\xd2\x4f\xec\xea\x57\x95\x8b\xda\x63\x59\xc4\x75\xc4\x63\x53\x7a\x57\x3f\x36\x46\x99\x9e\xa7\xad\xe9\xb9\xf4\xc0\x49\x78\xc6\x2e\x1d\x32\x5b\xec\xee\xc7\x51\x9c\x67\xcc\x46\xbb\xb5\xc3\x3a\x3e\x7a\xac\x56\x00\x29\xdd\x5b\xfb\x2e\xd3\xd2\xc3\xf9\x36\x8e\xc9\x4d\xbb\x55\xd6\x1a\x76\xfa\x5a\xfd\xd3\x8a\xe6\xb0\x4d\x71\x4b\x4c\xf7\x50\xf0\xa2\xec\xca\xe7\xce\x6b\x3f\x95\x5d\x8c\x2b\xa1\x34\xd8\xbd\x55\x43\xdd\x34\xf9\x6a\x5c\x8d\x0d\x61\x97\xb3\x21\xac\xdb\x7a\xb1\x69\x53\xd8\xe1\x0c\x2b\x44\x1b\x20\xda\x00\xd1\x06\x88\x36\x40\xb4\x41\xdb\xe4\x0b\x8c\x7d\x42\x35\x02\xb2\x09\xb2\x09\xb2\x09\xb2\x09\xb2\x09\xb2\x79\x5e\x64\x13\xb0\x01\xb0\x01\xb0\x01\xb0\x61\xef\xb0\x61\x0b\x20\x3f\xd0\x2d\x5b\xdd\xaa\x70\x79\xdb\xd6\x6b\x3d\x6e\x83\xc2\x34\x2b\x6f\xc0\x79\x7a\xac\xad\xcd\xce\x9a\xff\x9c\xdb\x79\x7a\xc8\x9e\x30\xf0\xc3\x05\xdc\xbf\xfe\x55\x35\xb2\xd2\x3d\x93\x3d\x6b\x8c\x31\xbe\x01\xe2\xd9\xcb\xfa\xc2\x78\xbb\xed\x3a\x5d\xd3\x5f\xfa\x9b\xdc\x7a\xd9\x78\x8a\xcd\x4f\xf5\x76\x1e\xec\xe6\x27\x72\xa7\x7c\xe1\x29\x9f\x8a\xdc\x3a\x06\xed\x54\xa8\xb5\x8a\x24\x59\xba\xc1\x05\xc7\xc9\x93\xaa\x72\x26\xd2\xc2\x48\x4f\x6f\xfa\xcf\xf8\x93\xa9\xc5\xe2\x51\x68\xe1\xf5\x5b\x7d\x8b\x8f\xdf\x0a\x44\xfa\x95\xdc\x6d\x2a\x67\x1f\x3e\xfe\x60\xae\xcd\x79\x44\x7c\x2d\x51\xe9\xd4\xaa\x35\x72\x89\x45\x2a\x2d\xb8\x4c\xed\xfc\x43\x2e\xa7\xea\x5a\x62\x0e\x8e\xfe\xb1\xf1\x3c\x18\x24\x53\x95\xf0\x74\x3a\x52\xf9\xf4\x36\x7b\x9a\xde\x96\xa9\x8c\x54\x2c\x6e\xff\xf4\x9b\xbe\x37\x4f\xd9\xd9\x87\xed\x2a\xa7\xcf\xe6\x19\x94\xbc\x3b\x21\xd5\xd5\x55\x71\x7d\xec\xa0\xb8\x7e\xb1\x1e\xb8\xa3\x7f\xe9\xc7\x8d\x5f\x6a\xc3\x76\x8f\xfe\xa9\x67\x25\x63\x49\x44\x0c\x4c\xc6\xbe\x61\x3b\x9d\xd4\x61\xff\xf0\xdf\x03\x1d\xd8\xb1\x49\x24\x35\x0e\xe9\xc0\xd1\x1c\x8d\xb7\x43\x21\x9d\xa2\x42\xc2\x66\xe8\x0b\xda\x0c\x8d\x5d\x5f\xd8\xf5\x85\x5d\x5f\xd8\xf5\x05\xe3\x6e\xd5\x28\x1a\xe4\x16\x8b\xe3\x98\x51\xd8\x21\xb2\x7a\x87\xc8\xd0\x8c\xab\xe0\x3e\xee\x7d\x5f\x48\x2e\x78\xbc\xa0\xb1\xd6\x9b\x48\xe6\x86\x3d\x6d\x06\xa9\x49\x0d\xf1\x07\x85\x78\x8d\xcd\xbf\x78\x54\x8c\x18\xfb\x6c\xfe\xeb\xff\x3e\xe3\x92\x5c\x6c\x9a\x45\x49\xa9\x0b\x91\x57\x0b\x88\x8d\x05\x65\x89\x7c\x12\xec\x2a\x7c\xe1\x95\xd1\x89\x5e\xdb\x8c\xd8\x7d\xc2\xd3\x54\x58\x81\x49\xea\x83\x27\x56\xf0\x7c\xf8\x61\x97\x19\x99\xbe\xf1\x48\xba\x20\x54\x5a\x90\xd5\x63\x5f\x7d\xa6\xa4\xec\xb3\xad\x31\xb3\x16\x64\xda\xd7\x8e\x8b\x82\x2a\xb5\xc8\x29\x7c\xa9\x52\xc8\xf3\x3d\x57\x94\xf9\x98\xf3\x85\xcd\xc3\x5e\xb0\xe0\x38\x9b\x8a\xc1\xf9\xcd\x5e\x83\x7f\x09\x76\x38\xef\xc6\xd2\x8b\xbb\x30\xdd\xa1\xe0\x5c\x70\xec\x93\xe3\xd8\x34\x04\x76\xca\x8f\x7b\x43\xf7\xfe\x79\xfd\xfc\x3b\x13\xf9\x54\x74\xba\x52\x17\x39\x2f\xc4\x54\x46\x37\xdd\xef\x31\xff\x9e\xbb\x2b\x69\xa6\xef\x22\x95\x32\x9e\x17\x92\xb6\xa4\xd9\xf8\xac\xad\x64\x13\xbd\xeb\x3c\xe9\xfb\x1a\x43\xe2\xbe\x19\x19\xc5\xe0\x6e\x3e\x73\x77\xf3\xe5\x00\xf9\x85\xfd\x1c\x7e\x70\xd9\x3d\x47\x66\x7a\xa9\xf6\xb1\xbf\x5b\x31\xf5\xbc\x27\x67\x9b\xdd\x68\xcc\x13\xba\x33\x55\xe9\x8d\xbd\x9b\xae\x20\x7f\xb7\x66\xef\xfe\xaa\x55\x7a\x6f\xb7\x73\x7f\x31\x93\x9c\xfb\xf7\x83\x9f\xfa\xaa\x3f\xbe\x1f\x52\xa4\x40\xf7\x7e\xf3\xab\xca\x23\x02\x02\x53\x45\x8d\xaf\xd8\xf7\xb7\x13\xf3\xb7\xef\x6f\xd9\x5d\xa3\x36\x29\x5a\xdc\x7a\xef\xc9\x7c\x71\x03\xf5\x86\x47\xd4\x00\xb4\x21\x38\x91\x91\xf3\x47\x92\xb5\xa3\x5e\x5c\xdb\xda\x0d\xb3\x99\x50\x59\x22\x46\xcc\xbe\x93\xce\x01\xf0\x7d\x8a\x62\xb6\x5b\x1b\x22\xbc\x7e\x97\xea\x35\x2f\x82\xd1\x63\x7f\x80\xd1\x73\x68\xa3\x27\x5b\xb0\x56\x06\x66\xf6\x94\xbd\x7b\xb4\xb2\x84\x47\xdb\xa9\x33\x77\xcf\x79\xea\x33\x44\x47\x42\x8c\x9d\xb9\x18\x1b\x90\xe6\xc1\xd2\x1c\x7e\xb9\xf0\xe8\xc8\xf3\x12\x11\xe5\xe0\x3c\xa7\x6f\xd8\x6b\x22\x0e\x6f\xb5\x85\x9c\xb5\xc0\xc3\xfd\xc0\x35\xfb\x1e\xbf\x10\xbd\x16\xb3\x39\x34\x8b\xb9\x05\x23\xd6\xff\x0a\xd6\x01\xd6\xb1\xa2\xcc\x60\x1d\x60\x1d\xfd\xb0\x8e\xdd\x56\xb1\x95\xd4\xa3\x65\x19\x3b\x49\xdb\x1a\xec\x03\xe6\xf6\xe5\x99\xdb\x60\x1f\x7d\xf6\x1b\xb0\x0f\x38\x58\x60\x04\x81\x7d\xf4\xc8\x3e\x76\xf5\x39\xac\xa4\x20\xe7\xa2\xd7\xc0\x42\x20\xce\xce\x5c\x9c\x0d\x48\x03\x61\xa9\x0e\xbf\x80\x85\x9c\x91\xa8\x38\x2d\x16\x42\xc7\xd3\x11\xfa\xd8\x2b\xec\x70\x07\x18\xa7\xb1\x7c\x96\x71\xc9\x93\xfa\x61\x88\x3c\x1c\x59\xfe\x57\x35\x1e\xd5\xb6\x19\xff\x18\x36\x28\x5f\xd1\xfd\x57\x55\xda\x8a\x46\x1e\x82\xa0\x54\x98\x4c\x75\x21\x78\xc3\x41\xb8\xa8\x63\x5e\x6a\x5e\x27\x77\xda\xdd\xaf\x2a\xbf\x4b\x92\x20\x69\x06\x01\x50\x56\xde\x70\x59\x27\x13\xae\x71\xa1\xd1\xc1\x9a\x9f\x9f\x45\x7a\x99\xa7\x15\x52\xeb\x9d\xdb\x91\x85\xc8\xf8\x74\xc6\x19\x9f\x36\x83\x9a\x4d\xd9\x9e\xd6\xfa\x86\x7a\x80\x50\xc8\xf1\x84\x1c\x4f\xc8\xf1\x84\x1c\x4f\xe7\x96\xe3\x69\xf3\xcc\xdb\x9a\xdf\x69\xcf\xc8\xff\x60\x59\x9d\x36\x17\x7f\x75\x46\xa7\x21\xd7\xc1\x36\x79\x9c\x36\xd7\xc1\xea\x1c\x4e\x7b\xae\x03\x64\x6e\x42\xe6\x26\x64\x6e\x42\xe6\x26\x64\x6e\xda\x5b\xe6\xa6\x0e\xb3\xff\x52\xd6\xa6\xb5\xe7\x12\x5e\x50\xc4\x5f\xb7\xd2\x9c\x71\xe6\xa9\xcd\xd5\xbd\x2e\xeb\xd4\x61\xeb\x1d\xb9\xa6\xf6\xd2\xa2\xcb\x79\xa6\xf6\xdc\xac\x47\xcd\x2e\xb5\xb9\x7a\xd6\x64\x96\xda\xf7\xb4\x39\xd4\x7c\x52\x9b\x2b\xad\x85\x56\xec\xec\xcf\x73\xff\xfa\xd7\x66\xb4\xb5\x66\xb3\xcf\x05\x12\xaf\x46\xdc\xce\xdf\x17\xe8\x01\x58\x17\x58\x17\x03\xeb\xaa\xfd\x00\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x05\xd6\x85\x63\x3d\x00\xf9\x00\xf9\x00\xf9\x00\xf9\x00\xf9\xfa\xac\x19\x40\xbe\xde\x20\x5f\x4b\x0e\xe1\x3d\xb1\xbe\x3a\xe0\x4b\xbd\xd0\x51\x13\xf6\x24\xd3\xb8\x37\xd0\x77\x5d\x99\x34\x64\xb6\x39\xf9\x6b\xac\xa2\xca\x56\xbb\x6a\xd8\xf8\xb5\x67\xef\x84\x09\x81\x08\x81\x08\x4f\x03\x11\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x02\x0f\x76\x9c\xfd\x0f\x8e\x07\x91\xbe\x00\x9c\x13\x9c\x73\x98\x54\x0c\x9c\x13\x9c\x13\x9c\x13\x9c\x73\xa1\xd2\x0e\xcc\x39\xc7\xa2\xe0\x1f\x6e\x77\x82\x98\x47\x39\x3a\x77\xa1\x9d\xa7\xa2\x68\x9a\x27\xb6\x49\xd7\xd0\xc8\xa9\x28\x1c\x8b\xa4\xa2\xdf\xdd\xff\xf6\xad\xed\x2e\x9c\x17\xbc\x25\x26\xac\x55\x24\x6d\xff\x3c\x13\x56\x48\x9d\xa4\x76\xdb\x9b\xfa\xab\xd7\x0d\xa9\x28\x57\xe9\xde\xf7\x02\x5b\xff\x55\xee\x2c\x60\x6f\x20\xf9\xd0\x80\x5f\x72\x95\xae\x3f\x7b\xdf\xdc\x5f\x1f\x0d\xee\x0e\x9c\x5b\xbb\x58\xef\x83\x19\x81\xe1\x1c\x6c\x6a\xaf\x91\x6b\xb0\x73\x1e\x71\x9b\x11\xfd\x01\x36\xf0\x2e\x0f\xa5\x45\x4a\xbf\xf0\xd9\x40\xf5\x40\xf5\x40\xf5\x40\xf5\x40\xf5\x40\xf5\x40\xf5\x40\xf5\x9b\x67\x5b\xa0\x7a\xa0\x7a\xa0\x7a\xa0\x7a\xa0\x7a\xa0\x7a\xa0\xfa\x8b\x43\xf5\x00\xbd\x00\xbd\x00\xbd\xa7\xd1\xa2\x00\xbd\xcd\xea\x01\xe8\x3d\x15\xd0\xbb\x62\x3f\x6b\x1b\xac\xb2\x42\xa7\x5f\x5e\x65\x9f\xc9\x22\x95\x18\xbb\xca\xf5\xcf\xcd\x98\xca\xde\xd6\x00\x55\xe1\x09\xd5\x8e\xd2\x96\xe7\xec\x37\x5d\xf4\x5e\x38\xea\x27\x2a\xeb\x57\xaa\x32\xdd\x4b\xae\x68\xb8\x71\xe1\xc6\x85\x1b\x17\x6e\xdc\x73\x73\xe3\x76\xcb\x32\xde\xea\xca\x3d\x58\x02\x78\xe4\xe9\xef\xdc\x50\xc7\xcc\xd3\x7f\x30\xdf\xfb\x16\x99\xf1\x5b\x7d\xcf\x07\xab\x91\xdf\xeb\x46\x84\x34\x06\x3c\x69\x7b\x36\x16\x13\x1b\x24\x10\xfc\x34\x95\x94\x70\xb3\x17\x75\x9d\x52\xd8\xc5\x61\x6c\xe4\x73\x7a\x93\x8a\x29\xa7\x0e\xea\xcc\x00\x63\xb1\xf8\x15\xd4\xfa\x6c\xc3\xd0\x70\x1a\x51\xce\x66\x22\x96\xbc\x10\xc9\xbc\xa2\xf7\xd5\x92\x2b\x93\x6b\x27\xf3\xa9\xd2\xd9\x34\xe7\x11\x8d\x1a\xa9\xe2\x20\x08\xaa\x45\x9b\x42\x23\x7c\x2f\x2d\xb5\xf9\xc8\x7a\x73\x71\x73\xa7\x2f\x90\x7b\xc9\xc4\xce\x81\xfe\x11\x23\xfb\x9d\x33\xc1\xd3\xd6\x6f\xdc\xa1\x99\xe9\x9b\xef\xe9\x93\xdb\x4c\xa7\x0d\xc6\xd3\x50\xba\xff\x36\xd8\xa5\x5b\xbd\xac\x46\x2f\x07\xeb\xfe\x80\x30\x80\x30\x80\x30\x80\x30\x80\x30\x7b\x83\x30\x1d\xd7\x82\x25\x10\x73\xb8\x65\xf1\x53\xed\x54\xb5\x2c\x11\x5c\x8b\x30\x05\xdd\xe7\x2a\xe3\x53\x52\x47\xf7\x2a\x91\xd1\xbc\x11\xf2\xe7\x3b\x5d\x75\x2c\x9b\xe9\x76\x1f\x46\x7f\x19\xb1\x07\x3b\x9f\x59\xe9\x92\x89\xd4\x0c\x96\x6a\x4d\x15\x4c\xe5\xd9\x23\x4f\x7d\x08\x62\x5e\x8a\xdb\x09\x4f\xbc\xad\xfc\xfd\xad\xfd\xf9\xfb\x5b\x36\x91\x29\x4f\xe4\x7f\xfc\x42\x32\x16\x8c\xc7\xe4\x99\x57\xb7\xd6\x6b\x19\x57\x66\x98\x7d\xfc\x95\xae\x6e\xb2\xf6\xe9\x88\x7d\x96\x34\x39\xd6\x3e\x5d\xe5\xcb\x65\xab\x38\x4c\x61\xcd\x63\xb2\x51\x54\xf1\xb8\x4b\x83\xda\x12\x7c\xf2\x65\x5f\x29\x79\xda\x7c\xa0\xfd\x1a\x66\x54\x74\x33\x60\x1f\xd5\x0b\x9b\xf2\x7c\xcc\xa7\x0d\xd7\x64\x30\x6a\x44\x3e\x51\xf9\xcc\xb4\x49\x6b\x7d\x7d\x5d\x28\xd1\xea\xea\x22\xd1\xeb\x15\x6b\x66\xeb\x56\x1a\x35\x19\xc9\xb8\x32\x85\x49\x2b\x90\x73\x22\xb4\xb1\x59\xac\xdd\x4a\xea\xd5\xc0\xa8\xd6\x98\x7e\x1d\x09\x20\x24\x84\xd3\x36\x5f\x36\x62\x77\x51\x24\xb2\x82\xd6\xa6\xba\x65\x77\x65\xcb\x70\xc5\x6e\x5c\x07\x6c\x76\x50\xfd\x13\xbb\xfa\x99\x47\x4f\xd3\x5c\x95\x69\x6c\xae\xa2\xd0\x54\xba\x68\xa1\xe2\xac\x84\x74\xfa\xb8\xf9\x10\x5f\x82\x71\x78\xd2\x4f\xec\xea\x57\x95\x8b\xda\x63\x59\xc4\x75\xc4\x63\x53\x7a\x57\x3f\x36\x72\x99\x9e\xa7\xad\xe9\xb9\xf4\xc0\x49\x78\xc6\x2e\x1d\x32\x5b\xec\xee\xc7\x51\x9c\x67\x4c\x4c\xbb\xb5\xc3\x3a\x6a\x7a\xac\x56\x00\x3f\xdd\x5b\xfb\x2e\x33\xd4\xc3\xf9\x36\x8e\x49\x53\xbb\x55\xd6\x1a\xa2\xfa\x5a\xfd\xd3\xca\xe9\xb0\xdd\x71\x4b\x4c\xf7\x50\xf0\xa2\xec\xca\xe7\xce\x70\xcf\x95\x5d\x91\x2b\xb5\x34\xfc\xfd\x57\x83\xdf\x7c\xd9\x0b\xc9\xc6\x0e\xb2\xcb\xd9\x41\xd6\x6d\x29\xd9\xb4\x8b\xec\x70\x36\x17\x02\x11\x10\x88\x80\x40\x04\x04\x22\x20\x10\xa1\x6d\xf2\x05\xe1\x3e\xa1\x1a\x01\xf4\x04\xf4\x04\xf4\x04\xf4\x04\xf4\x04\xf4\x3c\x2f\xe8\x09\x0e\x01\x0e\x01\x0e\x01\x0e\xb1\x77\x0e\xb1\x05\xab\x1f\xe8\x1e\xaf\x6e\x55\xb8\xbc\xcf\xeb\xb5\x1e\xb7\x41\x11\x9c\x95\x37\xe0\x5c\x3e\x9c\xcb\x77\xa6\xe7\xf2\xe1\x34\xfa\x81\x1f\x52\xe0\xfe\xf5\xaf\xaa\x91\x95\xee\x99\xfe\x59\x1b\x8d\xf1\x0e\xa0\xcf\x5e\xda\x3b\xea\xdb\x6d\xd3\xea\x9a\xce\xb3\x87\x09\xb0\x97\x0d\xac\xd8\x44\x55\x6f\xf0\xc1\x6e\xa2\x22\xdf\xcb\x17\x9e\xf2\xa9\xc8\xad\x17\xd1\x4e\x90\x5a\xab\x48\x92\x59\x1c\xfc\x75\x9c\xdc\xae\x2a\x67\x22\x2d\x8c\x4e\xf5\x7e\x82\x19\x7f\x32\xb5\x58\x3c\x0a\x2d\xbc\xd8\xab\x6f\x15\xf2\x5b\x8a\x48\xec\x92\x6f\x4e\xe5\xec\xc3\xc7\x1f\xcc\xb5\x39\x8f\x08\xc6\x25\x2a\x9d\x5a\x69\x47\xfe\xb3\x48\xa5\x05\x97\xa9\x9d\x95\xc8\x3f\x55\x5d\x4b\x80\xc2\xa1\x42\x36\x9e\x07\xeb\x65\xaa\x12\x9e\x4e\x47\x2a\x9f\xde\x66\x4f\xd3\xdb\x32\x95\x91\x8a\xc5\xed\x9f\x7e\xd3\xf7\xe6\x29\x3b\x3b\xbc\x5d\xe5\xf4\xd9\x3c\x83\xd2\x82\xa7\x28\xd1\xba\xca\xb3\x8f\x1d\xe4\xd9\x2f\xd6\x6f\x37\x9c\x4f\xfe\xb8\xf1\x93\x6d\x40\xf0\x70\xbe\xf9\xfc\x54\x30\x49\x8f\xa1\xaa\xe0\x37\xec\x75\x07\x86\xb4\x24\xc1\xdf\xe3\xb9\x21\x5d\xc4\xd6\xf2\x59\x21\x38\x21\x04\x02\xeb\x2c\x04\x16\xf6\x64\x5f\xd0\x9e\x6c\x6c\x3e\xc3\xe6\x33\x6c\x3e\xc3\xe6\x33\xd8\x86\xab\x46\xd1\x20\x77\x7a\x1c\xc7\xe6\xc2\x46\x95\x0d\x1b\x55\x06\x6b\x80\x05\x0f\x75\xef\xdb\x53\x72\xc1\xe3\x05\xc5\xb5\xd9\x7a\x32\x37\xed\x7b\x4f\x4a\x4d\x85\x88\x3f\x28\xd2\x6c\x6c\xfe\xc5\xa3\x62\xc4\xd8\x67\xf3\x5f\xff\xf7\x19\x97\xe4\xbc\xd3\x2c\x4a\x4a\x5d\x88\xbc\x5a\x5b\x6c\x48\x2a\x4b\xe4\x93\x60\x57\xe1\x2b\xaf\x8c\x84\xf4\xb2\x67\xc4\xee\x13\x9e\xa6\xc2\x6a\x4f\x12\x26\x3c\xb1\x5a\xe8\xc3\x0f\xbb\x4c\xd6\xf4\x8d\x47\x92\x0c\xa1\xd2\x82\xe2\x1e\xfb\xea\x33\x25\x65\x9f\x6d\x8d\x99\x65\x22\xd3\xbe\x76\x5c\x30\x56\xa9\x45\x4e\x51\x54\x95\x78\x9e\xef\xb9\xa2\xcc\xc7\x9c\x2f\xf3\x1e\xf6\x5a\x06\x07\x5c\x73\x05\x98\x8a\xe1\xfa\xdf\x5e\x43\xa1\xeb\xc9\xdd\x5b\xbf\x00\x09\xde\xdb\xcb\x0c\xa4\xde\x0b\x52\xa7\xf1\xb0\x53\xa6\xe0\x1b\xba\xf7\xcf\xeb\xa7\xe6\x99\xc8\xa7\xa2\xd3\x95\xba\xc8\x79\x21\xa6\x32\xba\xe9\x7e\x8f\xf9\xf7\xdc\x5d\x49\x8b\x40\x17\x49\x95\xf1\xbc\x90\xb4\x69\xce\x46\x90\x6d\x2d\xaf\xe8\x7d\x03\xf1\x4d\xef\x2b\x10\x60\x8d\x2d\x72\xdf\x0c\xe4\x62\xf0\x58\x9f\xb9\xc7\xfa\x72\x42\x02\x16\xb6\x9f\xf8\xc1\x65\xb7\x48\x99\xb9\xa6\xda\x76\xff\x6e\xc5\x3c\xf4\x9e\xfc\x75\x76\x5f\x34\x4f\xe8\xce\x54\xa5\x37\xf6\x6e\xba\x82\x5c\xe6\x9a\xbd\xfb\xab\x56\xe9\xbd\xdd\x7d\xfe\xc5\xcc\x78\xee\xdf\x0f\x7e\x1e\xac\xfe\xf8\x7e\x48\xb1\x0a\xdd\xfb\xcd\xaf\x2a\x8f\x88\x29\x4c\x15\x35\xbe\x62\xdf\xdf\x4e\xcc\xdf\xbe\xbf\x65\x77\x8d\xda\xa4\xe0\x76\x0b\x00\xc8\xcc\x71\x03\xf5\x86\x47\xd4\x00\xb4\x7f\x39\x91\x91\x73\x69\x92\x55\xa4\x5e\x5c\xdb\xda\xfd\xbd\x99\x50\x59\x22\x46\xcc\xbe\x93\x8e\x2d\xf0\x7d\x8a\x42\xcc\x5b\x1b\x22\xbc\x7e\x97\xea\x35\x2f\x82\x71\x64\x7f\x80\x71\x74\xe4\xe8\x84\x05\xab\x66\xa8\xe6\x51\xd9\xbb\x77\x2c\x4b\x78\xb4\xbd\x82\x73\xf7\x9d\xb9\x86\x43\x30\x27\x94\xdb\xa5\x28\xb7\x01\x09\x24\xac\xe3\xe1\x17\x04\x73\x9e\xbf\xf4\x28\x87\xeb\x97\x7d\xc3\x7a\x89\x8b\xbc\xd5\x96\xbe\xd6\xc2\x23\xf7\xc3\xf9\xec\x7b\xfc\x8a\xd5\x2b\xf1\x73\x00\x19\x33\x12\x86\x37\xb0\x0b\xb0\x0b\xb0\x0b\xb0\xcb\xb1\xb1\xcb\xee\xab\xdd\x66\x00\xd3\xb2\xdc\x9d\xa4\x09\x0f\x0c\x03\x63\xfe\xf2\x8c\x79\x60\x98\x3e\xfb\x0d\x30\x0c\xdc\x37\x30\x96\x80\x61\xf6\x8f\x61\x5e\xe3\xbf\xd8\x0c\x64\xce\x45\xd3\x01\xcb\x40\xc9\x5d\x8a\x92\x1b\x90\x60\xc2\xba\x1e\x7e\x01\x96\x39\x7f\x29\x72\xca\x58\x86\x8e\x0a\x0c\x14\x66\xaf\xdc\xc5\x1d\x28\x9d\xc6\xf2\x59\xc6\x25\x4f\xea\x87\x53\xf2\x70\x84\xbc\x2b\xeb\xa8\xb6\x1d\xfb\xc7\xb0\x91\xfb\x8a\x9e\x71\x55\xa5\x12\x69\xe4\x86\x08\x42\x87\xc9\x54\x17\x82\x37\xfc\x90\x8b\x32\xe8\x65\xd1\xb1\x55\x3b\x81\xf0\x57\x95\xdf\x25\x49\x50\x45\x83\x60\x39\x2b\x6f\xb8\xac\x63\x23\xd7\x78\xe9\xe8\xd4\xd3\xcf\xcf\x22\xbd\xe0\x13\x24\xa9\x09\xcf\xf6\x18\x49\x24\xe7\x3a\xe3\xe4\x5c\x9b\x31\xd1\xa6\xc4\x5c\x6b\x9d\x51\x3d\x20\x30\xa4\xe3\x42\x3a\x2e\xa4\xe3\x42\x3a\xae\x73\x4b\xc7\xb5\x79\xe6\x6d\x4d\xc5\xb5\xe7\x80\x83\x83\x25\xe0\xda\x5c\xfc\xd5\xc9\xb7\x86\x5c\x07\xdb\xa4\xdc\xda\x5c\x07\xab\xd3\x6d\xed\xb9\x0e\x90\x64\x0b\x49\xb6\x90\x64\x0b\x49\xb6\x90\x64\x6b\x6f\x49\xb6\x3a\xcc\xfe\x4b\x09\xb6\xd6\x1e\xeb\x78\x41\xf1\x86\xdd\x4a\x73\xc6\x49\xc2\x36\x57\xf7\xba\x04\x61\x87\xad\x77\xa4\x05\xdb\x4b\x8b\x2e\xa7\x04\xdb\x73\xb3\x1e\x35\x11\xd8\xe6\xea\x59\x93\x04\x6c\xdf\xd3\xe6\x50\x53\x7f\x6d\xae\xb4\x16\x76\xb1\xb3\x3f\xcf\xfd\xeb\x5f\x1d\xf1\xd7\x86\xbd\x49\x97\x4c\xc5\x96\x42\x83\xfe\xbe\x00\x17\xc0\xc3\xc0\xc3\x18\x78\x18\x78\x18\x78\x18\x78\x18\x78\x18\x78\x18\x78\x18\x78\x18\x78\xd8\xc0\x58\x10\x78\x18\x78\x18\x78\x18\x78\x18\x78\x18\x78\x18\x78\xd8\x29\xf2\x30\x1c\x3c\x02\x10\x08\x10\x08\x10\x38\xe8\x16\x05\x08\x6c\x56\x0f\x40\xe0\x59\x81\xc0\x96\xe4\xcd\x7b\xe2\x81\x75\x08\x98\x7a\xc5\xa3\x26\xec\x49\xa6\x71\xaf\x30\xf0\xba\xb2\x6f\xc8\x86\x73\x5a\xd8\x98\x48\x95\xe1\x76\xd5\x30\xf8\x6b\xcf\x7e\x1d\x4a\x04\x46\x04\x46\x3c\x21\x8c\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x08\x84\x38\x78\x84\x88\x44\x0c\xe0\xa1\xe0\xa1\xc3\xa5\x67\xe0\xa1\xe0\xa1\xe0\xa1\xe0\xa1\x0b\x95\x76\x20\x1e\x1a\x89\xdc\x7d\xbd\xd0\x84\x85\xa4\xba\xdd\x89\x74\x1e\xe5\x40\xdf\x85\xd6\x9e\x8a\x82\xc9\x74\xa2\xf2\x59\xe8\xdd\x9c\x59\x0a\xb3\x9a\x58\x4e\x45\xf1\x4b\xad\x12\xee\xee\x7f\xfb\x3f\x8b\x77\xe0\x10\xe3\x2d\xe9\x61\xa8\xc4\x13\x67\x87\xf5\xd1\x51\xbb\xeb\x4d\xfd\xcd\x9b\xc7\xd3\xf3\x87\xd3\x1e\x52\x0d\xdb\xdf\xce\x95\xdd\xc7\xd3\x3f\x3e\xdc\xdd\xff\xf6\xad\xed\x3e\x8c\xaa\xed\x47\x95\xaf\x48\xda\x8f\x7d\x46\x83\xeb\xff\x3e\x7f\x78\xd5\xf8\xaa\xff\x59\x4e\x53\x99\x4e\xbd\xdf\xa3\x3e\xf2\xac\x8b\xa5\xdf\xc8\x1d\xfb\x4c\x16\xa9\x24\x11\x91\x5f\x75\x6a\x03\xe0\xc1\x7e\xce\x37\xfb\x39\x6b\xc6\x8d\x7d\x50\x73\xe8\xfc\x12\x9e\xda\xe9\x89\xfb\x4d\xd7\xb1\x97\x3e\xfd\x89\x4a\xfd\x95\xaa\x53\xf7\x92\xa2\x03\x70\x19\x70\x19\x70\x19\x70\xf9\xdc\xe0\x72\xb7\xe4\x2e\xad\x80\xf9\x60\x79\x77\x90\x1e\xa9\x73\x43\x1d\x33\x3d\xd2\xc1\x22\x02\xb6\x48\x48\xd4\x4a\xc4\x0f\x56\x23\xbf\xd7\x9d\x62\x32\x65\xda\xfa\xaa\xd8\x58\x4c\x6c\xe8\x62\xa0\x47\x95\x94\x70\xb3\x17\x75\x9d\x5a\x42\xa8\x54\xa5\x37\xa9\x98\x72\xea\xa0\xce\xad\x55\x4f\x1c\x65\x49\x72\x18\x1a\x4e\x3f\xca\xd9\x4c\xc4\x92\x17\x22\x99\x57\x31\x85\xd5\x92\x2b\x93\x6b\xe7\xb6\xa2\x4a\x67\xd3\x9c\x47\x34\x6a\xa4\x8a\x83\x20\xa8\x16\x6d\x0a\xd8\xf4\xbd\xb4\xd4\xe6\x23\xeb\xcd\xc5\xcd\x9d\xbe\x40\xee\x25\x13\x3b\x07\xfa\x47\x8c\xec\x77\xda\x5c\x95\x2d\xdf\xb8\x43\x33\xd3\x37\xdf\xd3\x27\xb7\xb9\x02\x37\x38\x03\x87\xd2\xfd\xb7\x09\x06\xe9\x56\x2f\xab\x03\x42\x0e\xd6\xfd\x11\x1a\x82\xd0\x10\x84\x86\x20\x34\x04\xa1\x21\x7b\x0b\x0d\xe9\xb8\x16\x2c\x85\x87\x1c\x6e\x59\xfc\x54\xdb\x57\x96\x25\x82\x6b\x11\xa6\xa0\xfb\x5c\x65\x7c\x4a\xea\xe8\x5e\x25\x32\x9a\x37\x36\x22\xf8\x4e\x57\x6d\x4c\x33\xdd\xee\xc3\xe8\x2f\x23\xf6\x60\xe7\x33\x2b\x5d\x32\x91\x9a\xc1\x52\xad\xa9\x82\xa9\x3c\x7b\xe4\xa9\xdf\x18\x91\x97\xe2\x76\xc2\x13\x6f\x2b\x7f\x7f\x6b\x7f\xfe\xfe\x96\x4d\x64\xca\x13\xf9\x1f\xbf\x90\x8c\x05\xe3\x31\x91\x66\x75\x6b\x29\x5c\x5c\x99\x61\xf6\xf1\x57\xba\xba\xc9\xda\xa7\x23\xf6\x59\xd2\xe4\x58\xfb\x74\x95\x2f\x97\xad\x8a\x2b\x28\xac\x79\x4c\x36\x8a\x2a\x1e\x77\x69\x50\x5b\x82\x4f\xbe\xec\x2b\x25\xcf\x4e\x99\xb4\xb7\x32\xcc\xa8\xe8\x66\xc0\x3e\xaa\x17\x36\xe5\xf9\x98\x4f\x1b\x6e\xcb\x60\xd4\x88\x7c\xa2\xf2\x99\x69\x93\xd6\xfa\xfa\xba\x50\xa2\xd5\xd5\x45\xa2\xd7\x2b\xd6\xcc\xd6\xad\x34\x6a\x32\x92\x71\x65\x0a\x93\x56\xb0\x09\xcf\x7d\x1b\x6b\xe2\x78\xf4\xab\x57\x03\xa3\x5a\x63\xfa\x75\x24\x80\xfd\xb0\xc9\xa7\xf9\xb2\x11\xbb\x8b\x22\x91\xd9\x54\xab\x75\xcb\xee\xca\x96\xe1\x8a\xdd\xb8\x0e\xd8\xec\xa0\xfa\x27\x76\xf5\x33\x8f\x9e\xa6\xb9\x2a\xd3\xd8\x5c\x45\x1b\x66\xe8\xa2\x85\x8a\xb3\x12\xd2\xe9\xe3\xe6\x43\x7c\x09\xc6\xe1\x49\x3f\xb1\xab\x5f\x55\x2e\x6a\x8f\x65\x11\xd7\x11\x8f\x4d\xe9\x5d\xfd\xd8\xfd\x54\xf4\x3c\x6d\x4d\xcf\xa5\x07\x4e\xc2\x33\x76\xe9\x90\xd9\x62\x77\x3f\x8e\xe2\x3c\xe3\x08\xa0\x6e\xed\xb0\x2e\x0a\xe8\x58\xad\x80\x78\xa0\xbd\xb5\xef\x72\x4c\xd0\xe1\x7c\x1b\xc7\x8c\x0e\xea\x56\x59\x6b\x22\x84\x5e\xab\x7f\x5a\x19\x1e\xd0\xf3\x96\x98\xee\xa1\xe0\x45\xd9\x95\xcf\x9d\x20\x71\xae\xdd\xb8\x62\x33\xb8\x5d\x93\x2b\xbd\xd4\xc7\xbe\xf0\x16\x98\xbd\x62\x97\x78\x07\xfa\xbb\xb8\x6f\x7c\xdd\x96\xf1\xde\xcf\xaf\xb0\x7e\xb3\xdc\xd9\xda\x5e\xe0\x87\xa3\x2b\x76\xc0\xe1\xe6\x89\x0b\x30\xbc\x4f\x04\x8e\x0d\xf1\x97\xb3\x21\xbe\xdb\x1a\xb4\x69\x53\xfc\xe1\x8c\x35\x44\x30\x20\x82\x01\x11\x0c\x88\x60\x40\x04\x43\xdb\xe4\x0b\x34\x7e\x42\x35\x02\x5a\x0a\x5a\x0a\x5a\x0a\x5a\x0a\x5a\x0a\x5a\x7a\x5e\xb4\x14\x00\x03\x00\x03\x00\x03\x00\x63\xef\x00\x63\x0b\xc8\x3f\xd0\xcd\xce\xdd\xaa\x70\x79\xc3\xf3\x6b\x3d\x6e\x83\x42\x3f\x2b\x6f\xb8\xac\x23\x87\x47\x0d\xe6\xf1\xfc\x61\xb4\xd2\xab\x7f\xde\x5b\x1c\x37\x03\xa7\xbe\xf2\x97\x1e\x0d\x32\xed\x70\x2e\xf1\xa9\x9c\x72\xf3\x66\xa1\x15\xdf\x66\x4a\xf7\x4c\xd4\xac\x6d\xc3\xf8\x4e\xf0\xcc\xde\xbc\x47\x7c\xb6\xdb\x0e\xd2\x35\xc7\x27\x1d\x68\x52\xe9\x65\x87\x29\x76\x39\xd5\x3b\xc1\x60\x77\x39\x91\x8f\xe3\x0b\x4f\xf9\x54\xe4\xd6\x5b\x67\x8f\x0d\xd3\x5a\x45\x92\xcc\xcf\xe0\x17\xe3\xe4\xde\x54\x39\x13\x69\x61\xf4\xa0\xb7\xc7\x67\xfc\xc9\xd4\x62\xf1\x28\xb4\xf0\xa2\xaa\xbe\x97\xc7\xef\xf9\x21\x51\x49\x3e\x30\x95\xb3\x0f\x1f\x7f\x30\xd7\xe6\x3c\x22\xe8\x95\xa8\x74\x6a\x25\x14\xf9\xa9\x22\x95\x16\x5c\xa6\x76\x16\x23\x3f\x50\x75\x2d\x81\x00\x87\xe4\xd8\x78\x1e\xac\x84\xa9\x4a\x78\x3a\x1d\xa9\x7c\x7a\x9b\x3d\x4d\x6f\xcb\x54\x46\x2a\x16\xb7\x7f\xfa\x4d\xdf\x9b\xa7\xec\xec\x58\x76\x95\xd3\x67\xf3\x0c\x4a\x73\x9d\x8b\x14\xea\x2a\x83\x3e\x76\x90\x41\xbf\x58\x9f\xd9\xb0\x8b\xf1\x71\x63\x31\x6c\x64\xef\xb0\xcb\x71\x8e\xaa\x94\x84\xce\x09\xaa\xd2\x37\xec\xf5\x47\x89\xb4\x24\x02\xda\xe3\x89\x22\xbb\x29\xbf\xd6\x53\x44\x8e\xaf\xfc\x4e\xe4\xec\x10\x28\xbb\x7a\x23\x0f\x56\xd9\x61\xb7\xf6\x05\xed\xd6\xc6\xb6\x34\x6c\x4b\xc3\xb6\x34\x6c\x4b\x83\x51\xba\x6a\x14\x0d\x72\x0f\xc8\x71\x8c\x38\x6c\x61\x59\x63\xbb\x39\x63\xe5\x04\xad\xb7\xe0\x67\xef\x7d\xe3\x4a\x2e\x78\xbc\x20\xc7\x76\x31\xbb\xcc\x63\x0e\xb7\x5b\xa5\x26\x5f\xc4\x1f\x14\x83\x36\x36\xff\xe2\x51\x31\x62\xec\xb3\xf9\xaf\xff\xfb\x8c\x4b\x72\x37\x6a\x16\x25\xa5\x2e\x44\x5e\x2d\x4a\x36\x58\x95\x25\xf2\x49\xb0\xab\x90\xa5\xf5\xca\x68\x4f\xaf\x97\x46\xec\x3e\xe1\x69\x2a\xac\x68\x25\x45\xc3\x13\x2b\xa2\x3e\xfc\xb0\xcb\x2c\x4f\xdf\x78\x24\xad\x11\x2a\x2d\x48\xf5\xb1\xaf\x3e\x53\x52\xf6\xd9\xd6\x98\x59\x5f\x32\xed\x6b\xc7\x85\x69\x95\x5a\xe4\x14\x5f\x55\xa9\xee\xf9\x9e\x2b\xca\x7c\xcc\xf9\xd2\xf0\x61\x2f\x82\x70\x05\x76\x59\x4e\xa6\xe2\x24\x3d\x81\xaf\xe1\xd3\x8d\x5c\x3a\xdd\x3e\xe7\x94\xb2\xeb\x9c\x2e\x7e\xa7\xc8\x97\x9d\x0e\x55\xbf\xa1\x7b\xff\xbc\x7e\x92\x9b\x89\x7c\x2a\x3a\x5d\xa9\x8b\x9c\x17\x62\x2a\xa3\x9b\xee\xf7\x98\x7f\xcf\xdd\x95\x34\x9d\x76\x11\x2e\x19\xcf\x0b\x49\x1b\xd3\x6c\x94\x56\x0f\x22\x86\xbe\x60\x70\xae\xe3\x7d\x05\x0d\xac\x31\x15\xee\x9b\x81\x54\x0c\x0e\xe5\x33\x77\x28\x5f\x4e\xa8\xc0\xc2\xf6\x0f\x3f\xb8\xec\x16\x25\x33\x0f\x55\xdb\xde\xdf\xad\x98\xa3\xde\x93\x3b\xcd\xee\x4b\xe6\x09\xdd\x99\xaa\xf4\xc6\xde\x4d\x57\x90\x47\x5b\xb3\x77\x7f\xd5\x2a\xbd\xb7\xbb\xbf\xbf\x98\xd9\xd0\xfd\xfb\xc1\xcf\x91\xd5\x1f\xdf\x0f\x29\x86\xa1\x7b\xbf\xf9\x55\xe5\x11\xb9\xfc\xa7\x8a\x1a\x5f\xb1\xef\x6f\x27\xe6\x6f\xdf\xdf\xb2\xbb\x46\x6d\x52\x70\xb9\xf5\xcf\x93\x31\xe1\x06\xea\x0d\x8f\xa8\x01\x68\xff\x70\x22\x23\xe7\x71\x24\xdb\x43\xbd\xb8\xb6\xb5\xfb\x6b\x33\xa1\xb2\x44\x8c\x98\x7d\x27\x1d\x1b\xe0\xfb\x14\x85\x78\xb7\x36\x44\x78\xfd\x2e\xd5\x6b\x5e\x04\x13\xc4\xfe\x00\x13\x64\xe9\x99\x03\x30\x41\xb2\x85\x78\xe9\x13\x34\x42\xca\xde\x1d\x5a\x59\xc2\xa3\x3e\xe4\xa0\x7b\xd2\xc5\x08\x42\x44\x91\x42\x1a\x5e\xb2\x34\x1c\x90\x02\x83\x50\x08\xbf\x20\x8a\x14\x7a\xa7\xd2\x3b\xe5\x49\xba\x5c\xdf\xb0\xde\x82\x2f\x8d\x21\x9a\xab\x67\x9e\xec\x94\x51\x71\x2b\x2a\xe8\xdf\xe4\x97\xbf\x83\x11\xc2\x3b\x5f\x44\x4c\x7e\x98\x35\xdc\xdf\x00\x6a\x00\x6a\x00\x6a\xce\x02\xd4\xf4\xbb\xae\x6c\x03\x6d\x5a\x17\x96\x93\xb4\xd5\x01\x6f\x60\xa1\x5f\x9e\x85\x0e\x78\xd3\x67\xbf\x01\xbc\x81\x4f\x06\x66\x09\xe0\xcd\x00\xe1\x4d\xdf\xae\x87\x6d\x40\xce\xf9\x88\x44\x00\x1d\xc8\xc5\x4b\x96\x8b\x03\x52\x65\x10\x0f\xe1\x17\x00\x1d\x68\x20\x00\x9d\x0a\xe8\x68\xbb\x2f\x6f\xef\x38\xc7\xbe\xe7\xe0\x30\xc7\x6d\x3b\xc4\xb4\x87\xf9\xc2\xfd\x0d\x28\x07\x28\x07\x28\xe7\x2c\x50\x4e\x9f\x6b\xca\x36\x20\xa7\x65\x51\x39\x49\x0b\x1d\x18\x07\x76\xf9\xe5\xd9\xe5\xc0\x38\x7d\xf6\x1b\x60\x1c\x78\x62\x60\x92\x00\xe3\x0c\x10\xe3\xf4\xeb\x72\xd8\x06\xe2\x9c\x8b\x40\x04\xc2\x81\x54\xbc\x64\xa9\x38\x20\x45\x06\xe1\x10\x7e\x01\xc2\x81\xfe\xb9\x1c\x84\x43\x69\xa5\xd6\x80\x9c\xbd\xa2\x1b\x97\x8e\x34\x8d\xe5\xb3\x8c\x4b\x9e\xd4\x53\x9b\xf1\x90\x80\x78\x65\x9d\x8c\x6a\xa7\xff\xfe\x18\xce\x0d\xbe\xa2\xa7\x5e\x55\xa9\xe9\x1b\xb9\xc6\x83\xf0\x62\x32\xd5\x85\xe0\x0d\xb7\xeb\xa2\x2c\x7b\xd9\xc2\x6b\xf7\xf7\x85\x8c\x4e\x48\x45\x36\xd4\xa3\x4e\x29\x93\xde\xe7\x67\x91\x5e\xf4\xcc\x46\x8d\x78\x89\x69\xc8\xe8\x5c\x65\xea\x03\x3f\x2b\xf5\x34\xe3\xf9\x93\xae\x5c\x72\x76\x46\xa2\x9c\xd5\xda\xe9\xcc\x79\x26\xd8\xf7\xb7\x3f\x7f\xfd\xfa\xb7\x2f\x77\xdf\xfe\xf6\xfd\x6d\x95\x35\xda\x9e\x9b\xac\xc8\x4c\x90\xb3\x2c\x11\x94\x1e\x7a\x1c\x9e\x3a\xe3\x73\x26\xa7\xa9\x3d\xb5\x5e\x6a\xeb\x52\x32\x8a\xb2\xba\x84\xe7\x82\xd5\xb3\xeb\xda\x54\xcc\x57\x9a\xc5\x52\x47\xb9\x30\xdf\x5c\xe5\xf6\xaf\x59\x25\x2e\x25\x74\xf3\x41\x21\x49\x33\x2f\x6c\xa6\x63\x7f\x1a\xa8\x4c\x0b\x91\x3f\xf3\xe4\x9a\xa5\x2a\xa7\xcf\xa2\x1c\xc2\x21\xaf\xf4\x62\x6a\xf2\x34\xa6\xfb\x7d\x99\x5d\x0e\xef\x90\x41\x58\x1b\x2b\xc5\x7c\x98\x3f\x1c\xdf\xa5\x9a\xe6\xb6\xfa\x1a\xe7\xb4\x9b\x5f\xa9\x0a\xdc\x71\xeb\x8f\x82\x4d\x04\x2f\xca\x5c\xb0\x29\x2f\x04\x5b\x68\x08\xf7\x24\x91\x1a\x89\x6d\x53\x36\x67\xd2\x7e\xdc\xaa\xc7\x6e\x89\xcd\x5a\x9a\xbf\x9d\xa1\xb5\x39\xe0\x7a\x40\x82\xbf\xd7\xb3\x7e\x5b\x1f\x6f\x2d\x91\x81\x16\x85\x4d\xb1\xed\xd2\xb6\x9b\x0a\x6f\xe4\xfb\x0e\x27\xce\xdb\x4a\x19\xb1\x07\x99\x46\x62\x21\x47\x81\x6b\x4d\x67\x92\x34\x93\x89\x37\xf2\xa9\x87\x0f\xb1\xb7\xd2\xc3\xb9\xb1\x91\x9f\xa5\x2a\xb5\x4b\x22\xef\xb3\x3b\x9b\xd1\x50\xa5\xf8\xb6\xbf\x55\xe3\x8f\xbd\x13\x7f\x44\x22\xab\x12\xb9\xda\x47\xaa\x49\x78\xc9\xfb\x70\x88\xba\xfb\x3e\x9b\x68\x9e\x32\x1f\xf0\xc5\x4f\x91\x66\x64\x09\xdb\x1b\x82\x91\x1d\xba\x50\xe5\x6d\x59\xbc\xcd\xdc\x41\xb6\x9b\xc8\x99\xb5\xd3\x7d\x1e\xf8\xb8\x14\x46\x57\x88\x3f\x32\xe9\x14\xc0\xbb\xa9\x48\x45\x4e\xc8\x6f\x62\x0c\xf6\x42\xb1\x89\x9c\x14\x42\xa4\x6c\x26\xd3\xb2\x10\xfa\x3d\xa3\xe4\xfe\x91\x4a\x27\x72\xea\x73\x52\x58\x91\xe2\x13\xf5\x57\x9d\xb3\x39\x8a\xec\x4a\x18\x7b\xf1\xf1\xbf\x3f\xfc\x2f\xf6\xcd\x9d\x1d\xff\xd9\x7c\x82\x88\x9d\x3b\xa0\x50\x53\xfb\x81\xee\xca\x50\xa2\x42\x3d\x89\x34\x14\xd9\x25\x13\x4f\x85\x88\x17\x72\x90\x9b\x49\xfc\xda\x54\x18\x99\xb5\xb9\xd0\x05\xb7\x89\xeb\xa5\x4b\x5b\xec\xf3\xad\x2f\x27\x9c\x1f\xb1\xaf\xe6\xd5\x2f\xd2\xa7\x3f\x70\x6f\x31\x2d\xe3\xa6\x01\xeb\x1b\x77\x69\xbe\x6d\x5e\xeb\x60\x7f\xd3\x17\xfa\x44\xe6\x35\xbb\xdc\x14\x96\x0a\xb7\xb1\x5a\xe8\xb9\xf4\xc1\xe4\x97\xf7\x9d\x3b\x15\x7f\x14\xec\x49\xcc\xed\xe1\xfe\xe1\xcf\x89\x59\x5f\xea\x49\xd7\x5f\x1e\xa5\xcd\x67\x2f\xd3\x5a\x85\x84\xeb\x43\x47\xae\x65\x29\xd7\xec\x26\x24\x83\xb0\x07\x00\xe7\x62\xcb\x5c\xf3\x0b\x95\xb1\x9c\x66\xde\x25\x0a\x20\x25\x44\xce\x01\xd3\x21\xcd\x7f\x6d\xa3\x3c\x89\xb9\x4b\xdc\x1f\x1e\xfc\xfd\xad\x2f\xf2\xf7\xb7\x2e\x2f\xff\xea\x44\xfe\x34\x41\x34\x53\xf9\x87\x35\x82\x5a\x8e\x3a\x80\x9b\x8d\xeb\xb5\xa7\x97\xf2\x5c\xbb\x61\x13\x56\x0e\x97\x1f\xc1\xb5\x98\x75\x50\x15\x6c\x26\xb5\xa6\x15\xa1\xe1\x25\xdb\x76\xe6\xf5\x5d\xaf\x9f\x90\x85\x6e\xb3\xed\x1d\xd3\xa2\xca\x99\x60\xc6\x46\x2e\xa3\x22\x24\x9a\x36\xd3\x53\x28\x7b\x48\x11\x32\x77\xed\x64\x31\x51\x33\x5f\x8b\x78\x16\xf9\xbc\x78\x94\xe9\x74\xdb\xe2\xd3\xd3\x1e\xdc\xd7\x9c\x4c\x1d\x24\x7c\x2c\x92\xde\xea\x80\x9e\x76\x8c\x3a\xa0\xfc\xe1\xd6\x9b\x38\xe3\x7f\xc8\x59\x39\x63\x69\x39\x1b\x8b\xdc\x96\xde\x19\x2d\xb6\x7e\x28\x6d\x36\xe1\xda\x2a\xeb\x3b\x4d\xc3\xb4\x10\x4b\xf3\x15\x36\x81\xc8\xf2\xec\x66\x96\x6f\xf3\xb7\x7f\xfb\xbe\xfe\x6f\x9f\xc3\x24\xad\xea\xdb\xa7\x17\xb1\x56\xae\x1d\x80\x34\x13\x45\x3c\xf5\x49\x82\xaa\xb9\x54\xf3\x99\x99\x5c\x64\x21\xc3\xa2\x6b\xbf\xd2\xc8\x03\x51\xcd\x96\xe6\xd5\xb6\x2c\xa6\x99\x8c\x48\x2d\x0a\x2b\xd7\x6c\xd9\xed\x62\x6b\xcb\x26\x5e\x68\xda\xe1\x69\xdd\xcb\x6c\x26\xba\x99\x2a\x53\x7a\x8c\x2d\xe5\xbb\x32\x33\x2f\xb3\x69\x92\xcc\x5f\xde\xfb\xd9\xcd\x2a\x42\x4e\x13\xba\xbf\xdb\xf7\x1d\x33\xb3\x4d\x64\x52\x08\xb3\xc6\x99\x75\xc7\x4c\x23\x51\x53\xc3\x36\x54\x88\xf5\xc9\x47\x21\x10\xac\xb9\x46\xd9\x64\x27\x2e\xe9\x7f\x58\xcd\x1b\xa2\x88\xe6\xd2\x67\x2e\x13\xa3\x1a\x2b\x7d\x6e\x8a\x1c\x3d\x2a\xa5\x29\xb3\xb9\x79\x8e\x9b\x43\x5d\x5b\x98\x6a\xe1\xf9\xb4\x24\xd9\xce\xd3\xd8\xaf\x50\x54\x49\xa6\x6c\xee\x7b\xc2\xa3\xab\xda\xfd\x6d\xc2\x42\x97\xaa\xc4\x88\xd7\x37\x0b\x05\x90\x9a\x89\x59\x56\xcc\x9b\x42\x2c\xa8\x6f\x5e\x18\xcd\xb2\xae\x40\xeb\x16\x03\x39\x59\x58\x0a\xec\xea\x11\xfa\xe5\xb4\xe4\x39\x4f\x0b\xe1\x41\x47\x95\xad\x48\x57\xc3\x9e\x56\x94\x92\xd0\x43\xf8\xf6\xb0\xb0\x05\xc9\x57\x28\x26\xb5\x2e\x9d\x11\x20\xd3\x69\x22\xaa\x11\x12\x54\x86\xef\x70\x37\xde\x1d\x6f\xac\x8e\xf0\xca\xed\x56\x5a\xbf\xc8\x92\x8d\xa1\x4b\x11\xb7\x2e\xb7\x64\xeb\x94\x63\x6d\x2e\x4e\x8b\x50\x82\xb8\x16\x1b\xf0\xbb\x33\x53\xb4\x9a\x89\x42\xce\x84\x29\xfb\x44\xe4\x39\xa5\x73\xb2\xe9\xf1\x6b\x02\xa2\x12\x18\xa6\x45\x45\xaa\xcb\x5c\x84\x74\x01\x4e\x22\x79\xd6\x60\x6b\xcd\x16\x99\x06\x26\x89\x21\xa6\x67\x3c\x49\x44\xce\xa2\xc7\x32\x7d\x22\x4a\xc8\x99\x99\x36\x59\xc2\xf3\xa9\x6f\x68\x1a\xf1\xf6\xf1\xd6\x22\xd3\x42\x50\xc7\xcb\x94\xd6\xd2\x74\x38\x57\x6d\xd4\xe1\xea\xe3\xcb\x86\xa8\xc5\x95\x4d\x46\xef\x11\xb1\x6d\x0f\x92\xdf\x6e\x81\x77\x7d\xd8\x65\x18\xa3\xaf\x7e\xe1\xda\x73\x30\x6f\x77\x9a\x3a\x59\x56\x38\x56\xf7\x73\x6d\x1a\x38\x2a\x13\x9b\x65\xab\xea\x36\x5b\xcf\xfe\xa6\x92\xda\x67\xfd\xb6\x34\x63\x17\x14\x7f\xd9\xad\x34\x8b\xda\x4d\x8b\xc2\x77\xdc\x22\xe7\xd2\xcc\xdc\x29\x7b\x31\x2d\xec\xaf\xf4\xbd\xc0\x5c\xe6\xc7\x52\x48\x9d\x95\xfb\x0c\x66\x66\xc6\x14\x81\x5a\xd5\x1c\x7f\x52\xdd\xc6\x2a\xd2\xb7\x34\x56\xcc\x0c\x7d\x4b\xbd\xfd\x86\x67\xf2\x96\x67\xf2\x26\x52\xa9\x31\xf9\xf4\xed\x9f\x42\x5a\xac\xf0\xc2\x09\x0d\xeb\x82\xcb\x44\xd3\x94\x54\x17\x10\x14\x4e\xb3\x65\x75\x2f\x14\xfe\x88\xf5\xfe\x85\xa6\xdb\xb0\x24\x69\x4a\x6e\xb6\xd8\x36\x46\x6a\x64\x59\x22\xed\x04\x13\x66\x49\x1b\xa6\x24\x35\x7b\x94\xd3\x47\x8a\x5e\x8a\xd4\x6c\x26\x52\xca\x2b\x57\x6f\xb9\xc6\xbb\x9c\x63\xc0\x54\x69\xf5\x24\x33\x69\xe7\xa2\xed\xc5\xe6\xda\xd3\x6b\xd1\x2f\xcb\x3e\xe9\xfd\x36\xeb\xef\x72\x26\xcc\x82\xe5\x1d\x16\xa6\x6a\x2d\x0f\x71\x92\x8f\x16\x0d\x9a\xb4\xb4\xcd\xb3\xe6\x3d\x00\x5e\xa7\xf0\x24\xb9\x66\xb9\x98\xf2\x3c\x26\x94\x6c\x66\xf9\x74\xce\x78\x54\xc8\x67\x59\xcc\xcd\xca\x26\x53\xff\xff\xb6\x9d\x5f\x0a\xfb\x79\x6d\xf9\x19\xf7\x3d\x6d\xfe\xd3\x1a\x8e\x2a\xaf\x03\x19\x9b\x69\xce\x5c\x37\xa6\xa5\xd5\x36\x9e\xcd\x8c\xe7\x34\x53\xf1\x28\x66\x76\x31\xb5\xa4\x80\x2a\x24\x8e\xaf\xdd\x72\x75\xed\xae\x9d\xa9\x67\x52\x64\x35\x53\x92\x3d\xd8\xbc\x3b\x8b\xdd\x79\xdb\x4a\x6b\x01\x1b\x3b\xfb\xf3\xdc\xbf\xfe\xd5\x1f\x4c\x6b\xc9\x31\xbc\x27\xa6\x56\x07\x69\xa9\x5f\xfc\xd5\x84\x3d\xc9\x74\x4d\x84\x52\x2f\x40\xed\xba\x12\xff\x64\xe0\x38\xa1\x68\xec\x87\xca\xaa\xb9\x6a\x58\xc3\xb5\x67\xf7\x85\xe3\x80\xe2\x80\xe2\x4e\x0a\xc5\x01\xc3\x01\xc3\x01\xc3\x55\x17\x02\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x9d\x1e\x86\xc3\x29\x2f\xa0\x8c\xa0\x8c\xa0\x8c\x03\x68\x51\x50\xc6\x66\xf5\x80\x32\x9e\x1a\x65\x1c\x8b\x82\x7f\xb8\xdd\x89\x21\x1e\x65\xe3\xee\x42\xab\x4f\x45\xd1\x54\xf2\xb6\x81\xd7\x60\xbf\xa9\x28\x9a\xd0\x8f\x6a\xe0\xee\xfe\xb7\x6f\x6d\x37\x63\xd3\xf2\x96\x0c\xae\x56\x91\xb4\x87\xf1\xbc\x40\x1c\xf5\x95\xda\xdd\x6f\xea\x5f\xd0\x7d\xb8\x75\xdb\x20\x6b\xed\xa7\x7e\x79\xbe\x7d\x26\x8b\x54\x92\x88\xc8\xaf\x0b\xbb\x9c\x31\x62\x1f\xd4\x32\x92\x7e\x09\x8f\x1e\x40\xfe\xdf\xbd\x74\xf1\x4f\x54\xf4\xaf\x54\xa7\xba\x97\xb3\x44\x80\x8f\x80\x8f\x80\x8f\x80\x8f\xce\x0d\x1f\x75\x3b\x85\xa6\x15\x21\x1d\xec\x80\x20\x9c\xe3\xd4\xb9\xa1\x8e\x79\x8e\xd3\xc1\x98\xdf\x16\x27\x27\xb5\x32\xaf\x83\xd5\xc8\xef\x75\xeb\x5e\xa6\x4c\x5b\xa3\x9b\x8d\xc5\xc4\x06\x27\x05\xff\x70\x25\x25\xdc\xec\x45\x5d\xa7\x76\x72\x55\xaa\xd2\x9b\x54\x4c\x39\x75\x50\x67\x9f\xd7\x4f\xb8\xb2\xac\x28\x0c\x0d\x27\x22\xe5\x6c\x26\x62\xc9\x0b\x91\xcc\xab\xa8\xa1\x6a\xc9\x95\xc9\xb5\xb3\xbf\xa9\xd2\xd9\x34\xe7\x11\x8d\x1a\xa9\xe2\x20\x08\xaa\x45\x9b\x42\xb2\x7c\x2f\x2d\xb5\xf9\xc8\x7a\x73\x71\x73\xa7\x2f\x90\x7b\xc9\xc4\xce\x81\xfe\x11\x23\xfb\x9d\xf6\xd4\xce\x96\x6f\xdc\xa1\x99\xe9\x9b\xef\xe9\x93\xdb\x7c\x1a\x1b\xbc\x1a\x43\xe9\xfe\xdb\xe0\xde\x6e\xf5\xb2\x1a\xf9\x1e\xac\xfb\x03\xfe\x02\xfe\x02\xfe\x02\xfe\x02\xfe\xee\x0d\xfe\x76\x5c\x0b\x96\x00\xf0\xe1\x96\xc5\x4f\xb5\x0d\x26\x59\x22\xb8\x16\x61\x0a\xba\xcf\x55\xc6\xa7\xa4\x8e\xee\x55\x22\xa3\x79\x23\xd4\xd8\x77\xba\x6a\x87\x8a\xe9\x76\x1f\x46\x7f\x19\xb1\x07\x3b\x9f\x59\xe9\x92\x89\xd4\x0c\x96\x6a\x4d\x15\x4c\xe5\xd9\x23\x4f\x7d\xe8\x73\x5e\x8a\xdb\x09\x4f\xbc\xad\xfc\xfd\xad\xfd\xf9\xfb\x5b\x36\x91\x29\x4f\xe4\x7f\xfc\x42\x32\x16\x8c\xc7\x84\xcc\xd4\xad\xc5\x09\x71\x65\x86\xd9\xc7\x5f\xe9\xea\x26\x6b\x9f\x8e\xfe\x7f\xf6\xde\xae\xc7\x4d\x64\xfb\xff\xbd\xcf\xab\x28\xf5\xbe\x70\xa2\x49\xbb\x4f\x47\x47\xda\xd1\x8c\xce\x45\x4f\xd2\xd9\xca\xfc\x26\xbf\xb1\x26\xa3\xbd\x6f\x7a\xf4\xff\x97\xa1\x4c\xa3\xc6\x14\x02\x9c\x4c\x6f\x69\xde\xfb\x51\xad\xaa\xe2\xc9\xd8\x60\x37\xd8\x80\xbf\x57\x71\xda\x80\x61\x55\x51\xb5\xd6\xfa\xac\x07\x76\xef\xd3\xe2\x58\xb8\x75\x19\x6f\x3f\x5b\x0e\x48\x53\x6d\x1e\x93\x8d\x22\xd3\xc7\x63\x06\x54\x3f\xc1\x47\xfb\xec\x3b\x55\x9e\xa3\x6a\x8a\x1f\x64\x98\xd1\xa3\xab\x17\xf6\x51\x7e\x67\x1e\x8f\x97\xdc\x2b\xf9\x2e\x33\xa3\x46\xc4\x2b\x19\xaf\xd5\x98\xd4\xca\xeb\xb7\xca\x13\xed\x16\x17\x29\xbd\x56\x63\x8d\xb4\x6c\x7d\xa5\x4d\x3a\xbe\x9b\x9b\xc2\xa4\x2b\xe8\xd2\xef\x76\x8c\xd5\x66\x6d\x76\x52\xab\x0d\xcc\x0b\x83\x69\xf7\x91\x8c\x50\x66\x61\xfc\xe5\x1f\x9b\xb3\x3b\xc7\x11\x91\xae\x09\x5b\xb4\xec\x66\xfa\x19\x66\xec\xda\x4c\xc0\xf2\x04\x4d\x7e\x62\xb3\x9f\xb9\xf3\xe4\xc5\x72\x13\xba\xea\x28\x0a\x89\xa7\x83\x2a\x82\xd3\x2a\xa4\xd1\x8f\xcb\x17\xb1\x4f\xb0\xcc\xae\xf4\x13\x9b\x7d\x92\xb1\x28\x5c\x96\x39\x3c\x71\xb8\xab\x9e\xde\xc8\x47\x67\x4c\xd0\xf5\x12\x6d\x7a\x6e\x5d\x70\x95\x5d\xe3\x98\x09\x19\x55\xa7\xfb\x79\x34\xce\x09\x87\x32\xb4\x1b\x87\x7d\xe1\x0c\xe7\x1a\x05\x04\x36\xf4\x36\xbe\xdb\xc1\x0d\xa7\xf3\x6d\x9c\x33\xcc\xa1\x9d\xb0\xf6\x84\x3a\xbc\x54\xff\xa9\x05\x79\x20\xd1\x07\x62\x3a\xd3\xd7\x60\xda\x00\xba\x70\xf6\x8e\x74\x50\xbd\x31\xe7\x4a\xd3\xe0\x33\x43\x2b\x8f\xb8\x9d\x1e\xda\x79\x92\xbb\xf6\xa0\xc5\xc6\xea\xb6\xaa\x7e\x63\x7e\xfb\x1e\x3a\xae\xae\x58\xc7\xc6\xbb\x24\xe2\xc8\x80\xbd\x9c\x0c\xd8\x76\x5b\x52\x53\x16\xec\xe9\x6c\x37\x04\x34\x20\xa0\x01\x01\x0d\x08\x68\x40\x40\x43\xdd\xe2\x0b\x52\x3e\x22\x89\x00\x9e\x02\x9e\x02\x9e\x02\x9e\x02\x9e\x02\x9e\x4e\x0b\x9e\x82\x67\x80\x67\x80\x67\x80\x67\xf4\xce\x33\x0e\x60\xfe\x03\x4d\xe2\x6c\x27\xc2\xed\x44\xce\x49\x75\x60\xdf\x79\xc2\x65\x15\x20\xad\xb6\x3a\x25\xcf\xfe\xee\x7e\xa7\x17\x90\x05\xd9\x0c\xa1\x46\xd1\x19\xb0\x11\x3c\x1d\x51\x97\x74\x2c\xc5\x3c\x5e\x55\x86\xf2\x2a\x92\x49\xc7\x94\x4d\x9b\x3a\x8c\x1f\x05\xd4\xf4\xc9\x7d\x23\xb5\x61\x37\xb4\x6f\x58\x68\xd0\xd5\xfe\x72\xb2\xa1\xd0\xd5\x1e\x5d\xed\x6b\x6e\x66\xac\x3a\xd2\xa8\x5a\xdb\x77\xf6\x2c\xef\x1a\x9f\x45\xc7\x02\x8f\xe0\x61\x26\xab\xb8\x92\x1a\x34\x56\xc5\xf5\x15\xeb\xa8\x2a\x49\x4d\xa7\x91\x1e\x8b\x93\x1c\xa7\x21\xee\x2e\x48\x72\x7e\x0d\x71\x24\x65\x48\xa0\xfc\x15\x07\x79\xb0\xca\x1f\x12\xbf\x2f\x28\xf1\x1b\x19\x6e\xc8\x70\x43\x86\x1b\x32\xdc\x60\xb7\xee\x7a\x8b\x06\x99\x4e\x72\x1e\xeb\x0e\xd9\x30\xd9\x91\x7b\xb3\x61\x46\x6b\xd1\x65\xee\xf9\xce\x73\x60\x62\xc1\xdd\x8a\x62\x76\x8c\x15\xa6\x2e\x73\xe2\xc4\x97\x82\x36\x23\xfe\xa2\x70\xb6\xa5\xfa\xc4\x9d\x74\xce\xd8\xbd\xfa\xd7\xfe\x7d\xcd\x7d\x72\x50\x26\xcc\x09\x36\x49\x2a\xe2\x7c\x8f\xd2\x71\xaf\x2c\xf0\x9f\x04\x9b\xfd\x2f\x5f\x8b\x24\xe2\x8e\x98\x29\x55\xd4\xaa\x4f\x73\xb6\x08\x78\x18\x0a\xad\xc3\x92\x82\xc3\x03\xad\x53\xdd\xbe\x3f\x66\xd1\xa7\x7b\x3c\x93\xea\x91\x09\x2d\xd3\xdc\x97\x56\x7c\xea\x49\xd9\xbd\x96\x98\xda\x6e\xa2\xc4\x4a\xc7\x44\x7c\x6d\x12\x11\x53\xa8\x56\xae\x84\x3f\xf7\x2c\x28\x75\x33\xd3\x05\xeb\xc3\xde\x13\xe1\x32\x3c\x6c\x8b\xf1\xc4\x78\x3d\x86\x2f\x41\xdd\x68\xcb\x31\x50\x92\x4f\x31\x35\x47\x55\x74\xbf\xa6\x73\x7f\xd8\xbf\xe6\xad\x45\xec\x89\x56\x47\x26\x69\xcc\x53\xe1\xf9\xce\x75\xfb\x73\xd4\xe7\x67\x73\x24\xad\xae\x6d\x94\x99\x88\xc7\xa9\x4f\x29\x6f\x3a\xfe\xab\x03\xc5\x26\xda\xee\x16\x3d\x14\xef\x72\x5f\xf1\x07\x7b\xac\x89\x45\x39\x4e\x8b\xc1\xe7\x3c\x71\x9f\xf3\xe5\x04\x1c\x54\xb2\x4b\xec\xcb\xa5\x33\xa0\xd4\x62\x94\x67\xd5\xbf\xde\xb1\x50\xbd\x21\x8f\x9b\x4e\x7b\xe6\x01\x9d\x19\xca\xf0\x5a\x9f\x4d\x47\x90\xd3\x3b\x61\xaf\x7f\x49\x64\xb8\xd0\xc9\xe5\x5f\xd4\x92\x68\x3e\x7f\xb5\x0b\x65\xfe\xc7\x37\x43\x8a\x84\x68\x3f\x6f\x3e\xc9\xd8\x21\x2a\xe0\x49\x1a\x7c\xc9\x1e\xae\x56\xea\x6f\x0f\x57\xec\xae\x24\x4d\x8a\x5d\xd7\x2e\x7c\x32\x30\xcc\x8b\x7a\xcd\x1d\x1a\x00\x4a\x4f\x0e\x7c\xc7\x38\x25\xc9\x1e\x91\xdf\xcd\xd8\xea\xf4\xdd\x48\xc8\x28\x10\x73\xa6\x7f\x93\xaa\x12\xd8\x39\x45\x11\xe4\xb5\x03\x91\xfd\xfc\x31\xe2\x55\x3f\x04\xb3\x44\x7f\x01\xb3\x64\xd8\x66\x49\x54\x09\xcc\x1e\xab\x61\xb2\xe9\xdc\xf1\x15\x05\xdc\xe9\x42\x45\x34\x57\xba\x2c\x25\x11\x41\xaa\xd0\x19\x77\x0c\xd3\xe5\xe8\x8c\x03\x52\xcd\xa0\x41\x64\xdf\x20\x48\x15\xda\xd0\x4e\x6d\x68\x33\x5e\x27\xed\x2b\xd6\x6d\x58\xa7\x32\x5d\x63\xf9\x8d\x07\x47\x75\x81\x3c\x08\x30\xda\x5f\xb2\xfb\xe2\x69\x61\xe3\x9d\x7d\x4e\x2c\x8d\x58\x4e\x3a\x5d\x4e\xc0\x7c\xc0\x7c\xc0\x7c\xea\x8e\x3c\x1f\xf3\xe9\x76\xaf\x39\x98\xff\xd4\x6e\x36\xa3\x34\xf1\xc1\x81\x60\xd3\x5f\x9e\x4d\x0f\x0e\xd4\xe5\xbc\x01\x07\x82\x17\x07\xa6\xca\x10\x4c\x15\x70\xa0\xfa\xc1\xb4\x1c\xa8\x6b\x17\xc5\xc1\x4c\x68\x3a\x8a\x23\xd8\x10\xf4\xc8\x1d\xc3\x74\x39\x7a\xe4\x80\xd4\x35\x68\x15\xd9\x37\x60\x43\xd0\x90\xc0\x86\x5a\xb0\xa1\x44\xe7\x0d\xf6\x4e\x86\xf4\xef\x9c\x87\x0b\x99\xdc\x48\x2c\x8a\x58\x48\x3a\x5d\x48\x40\x85\x40\x85\x40\x85\xea\x8e\x3c\x1f\x15\xea\x72\x9f\x39\x98\x09\xd5\x6c\x34\xa3\x34\xec\x41\x84\x60\xc9\x5f\x9e\x25\x0f\x22\xd4\xe5\xbc\x01\x11\x82\xef\x06\x66\xca\x10\xcc\x14\x10\xa1\xfa\xc1\xb4\x44\xa8\x5b\xd7\xc4\xc1\x3c\x68\x2a\x4a\x23\x68\x10\x74\xc8\x1d\xc3\x74\x39\x3a\xe4\x80\x54\x35\x68\x14\xd9\x37\xa0\x41\xd0\x8e\x40\x83\x74\x43\xba\x3d\x4c\xa8\x57\x0a\x64\xba\xb6\x86\xae\xff\xcd\x77\x37\x3c\x28\x76\x80\xe3\x59\x9f\xe6\x9d\xd2\x99\x17\x0a\x1d\xff\x98\x95\x48\x9e\xd1\x55\x67\x79\x07\xff\x52\x4b\xf6\x4c\x37\x63\x7e\x98\xa4\x82\x97\xbc\xb5\x55\xcd\xed\xfb\xa1\xce\xbe\x5f\x2b\x3d\xaf\xd0\xb6\x6d\xa8\xa5\x5d\xa9\xeb\xe0\xfd\x37\x11\x62\xb5\xa3\x91\xbc\xd8\x6e\x6d\x54\x51\x9a\x66\xc3\xcf\x52\x3e\xad\x79\xfc\x94\xe4\x3e\x3d\xbd\x40\x51\xa7\xef\xc4\xe8\xa3\xcf\x91\x60\x0f\x57\x3f\xff\xf6\xdb\xff\x7c\xb9\xfb\xfd\x7f\x1e\xae\xf2\x5e\xdb\xba\x62\xb4\x24\x73\xc2\x5f\x47\x81\xa0\xa6\xda\xcb\xec\xaa\x6b\xfe\xcc\x7c\x2f\xd4\xf5\xfa\xfd\x44\xfb\xa4\x94\xe6\x99\x1f\xc2\x63\xc1\x8a\x3d\x89\x75\x03\xeb\x59\xc2\x5c\x3f\x71\x62\xa1\xee\x79\xce\x3e\x94\xfb\x88\xab\x9f\x33\x8d\xb4\xcb\x17\xca\x5a\x5b\xf3\x54\xf7\x87\xb6\x85\x4f\xfd\x30\x15\xf1\x37\x1e\xbc\x65\xa1\x8c\xe9\xb6\xa8\xf3\x72\xd6\x8d\xbb\xda\xd0\x3d\x74\xe9\x7c\xfb\xcc\xa6\xf3\x79\xd6\x77\x39\x51\xd6\x8c\xba\x31\xdb\x16\xc0\x34\xe8\xe6\x5a\x7c\xa5\x0a\xf5\xea\x5b\x12\x81\x29\x34\xff\x28\xd8\x4a\xf0\x74\x13\x0b\xe6\xf1\x54\xb0\xca\x40\x98\x2b\x89\x50\xa9\xe2\xba\xd1\x75\xe4\xeb\x9b\xdb\x75\xd9\x03\xe1\x5b\xcd\xf0\xd7\x93\xb8\x3a\x0f\x5e\x07\x60\xf1\x8f\x62\xaf\x74\xed\x24\x2e\xb4\x70\x48\x44\xaa\x1b\x93\x9b\x66\xf7\x4a\xe0\xa5\x2e\xe9\x59\xad\x7d\x2d\x94\x39\xfb\xea\x87\x8e\xa8\x74\x67\x30\xa3\x69\x4c\x97\x72\x0b\xf6\x52\x17\xfa\xec\x46\xf4\xa9\x74\x71\xae\x6c\xe9\x6f\xbe\xdc\x24\xa6\xf5\xbe\xed\x89\xad\xde\x86\xbc\x31\xba\xfe\x2e\x7f\xff\xd8\x6b\xf1\x97\x23\xa2\xbc\xfd\xad\xbe\xa4\x5c\x65\x3f\xf2\x26\x2b\x1f\x6f\xee\x4f\xb7\xe7\xa7\x9e\x0f\xbc\x7a\x2b\xbe\x7a\xb3\x84\x9e\x0d\x99\x31\x9e\x4d\xa1\xdc\x3f\x53\x3d\x4d\x9d\x41\x36\x9e\x88\x99\xb6\xe7\x6d\xf7\x7c\x77\x23\x94\x9a\x21\xfe\x8a\x7c\xa3\x10\xbc\xf6\x44\x28\x62\x02\x87\x2b\x65\xd8\xa7\x92\xad\xfc\x55\x2a\x44\xc8\xd6\x7e\xb8\x49\x45\xf2\x46\x19\x90\x74\x6f\x2b\xdf\xb3\xdd\x38\xb4\xce\xc2\x64\x58\x78\x96\xb7\x5b\x6f\x91\xde\x13\x5d\xab\x8b\xfc\xbf\xb7\xff\x0f\xfb\xdd\x54\xcd\xbf\x57\xb7\x20\x5c\xe3\x36\x48\xa5\xa7\x6f\xd0\x1c\x99\x3d\x51\x2a\x9f\x44\x98\x3d\xb2\x69\xc1\x1e\x0a\xe1\x56\x3a\xb7\xab\x95\xfc\xad\x12\x18\x99\xbf\xb1\x48\x52\xae\xdb\xfd\xfb\xa6\xd9\xb3\xed\x52\xbf\xdd\xa6\x7f\xce\x7e\x53\x3f\xfd\xdd\xb7\x8d\x1f\xcc\xaf\xa8\x91\x31\xcb\x80\x76\xae\x9b\xe6\xe8\xba\x1b\x78\x66\xa7\xd3\x1d\xda\xf6\xef\x05\xfb\x5d\x3d\x2c\x3d\x5c\xa3\x58\xe8\xba\x74\xc3\xe4\xd8\xb7\x93\x3b\x14\x7f\xa5\xec\x49\x3c\xeb\xb6\x06\xd9\x9f\x03\xb5\xc9\x14\x5b\xd5\x7f\x7f\xf4\x95\x3e\x99\x30\x3f\x2c\x08\x24\x3b\x3e\x9b\xc8\x85\xde\xee\x09\xbb\xce\xda\x60\xe8\x5a\xc7\xb1\x38\xb0\x43\x7f\x45\x18\xdb\xcd\xf9\x4d\x8b\x04\xd2\x89\xc8\x89\xa0\x26\xa4\xfa\x57\x0f\xca\x93\x78\xd6\x0b\x76\x7e\xe1\x87\x2b\xfb\xc8\x0f\x57\xd4\x1a\xbb\x8c\xa1\xa8\x08\xf3\x26\xd2\x95\x9b\xf5\x02\x61\x54\xe9\x84\x16\xa1\x7c\x8f\xa0\x91\xa3\x09\x60\x56\xe3\xa2\xf4\x92\xad\xee\xe0\xe6\xb5\xc9\x76\x0e\xd3\x19\xc2\x8c\x98\x76\x64\xa5\x6c\xed\x27\x09\xed\x08\x25\x6f\xda\xa1\x2b\xaf\x9d\x7a\xdd\x04\x3e\xb4\x5b\x6d\xef\x58\x22\xf2\x6e\x11\xea\xdd\x88\x7d\x27\xcd\xda\x73\xab\xe5\x29\x7b\xf6\xac\x39\xca\xb3\x19\x27\xcd\x99\xca\x9d\x6a\xc4\x37\x11\x3f\xa7\x8f\x7e\xe8\x1d\xfa\xf8\x74\xb5\xaf\xe6\x6e\x46\x23\x83\x80\x2f\x45\xd0\x99\x0c\xe8\x6a\xe7\x90\x01\x75\x5d\xd7\x5e\xc7\x35\xff\xcb\x5f\x6f\xd6\x2c\xdc\xac\x97\x22\xd6\x4f\x6f\xcc\x17\x2d\x1f\x6a\x36\x4e\xbc\x37\xef\x95\x4f\xcb\x30\x6d\xc4\xbe\xba\x0b\xdd\x3a\x65\x7b\x75\x53\xdb\xb7\xfa\xdb\xff\xb5\x73\xfd\xff\xda\xee\x2d\x61\x2e\x6f\xdb\x58\x45\x1b\xbd\xfa\x05\xa4\x95\xc8\xe1\xa1\x6d\x8f\x94\xaf\xa5\x09\x5f\xab\xc5\xc5\x4f\xfd\x6c\xd3\xd5\x77\xa9\xd4\x03\x91\xaf\x96\xea\xa7\xf5\xb3\xa8\x61\x52\x4a\x6a\x9a\x6a\x75\x4d\x3f\xbb\xde\x6c\xf5\xb3\x89\xef\xb4\xec\xf0\xb0\xe8\x8d\x56\x0b\xdd\x5a\x6e\x42\xba\x8c\x7e\xca\xd7\x9b\x48\xfd\x98\x6e\x10\xa5\xfe\xf2\xc6\xae\x6e\x5a\x23\xe4\xb4\xa0\xdb\xb3\xed\xdc\x51\x2b\xdb\xca\x0f\x52\xa1\xf6\x38\xb5\xef\xa8\x65\xc4\x29\xeb\xb0\x25\x2d\x44\xfb\xee\x9d\x2c\x9c\xac\xbc\x47\xe9\x36\x2f\xa9\x88\xd7\x7e\x28\xb2\xdd\xbc\xa4\x14\xd1\x5a\xfa\x8d\xfb\x81\xd2\x1a\x73\xfd\x5c\x3d\xb2\xf3\x28\x65\x42\xfd\xe0\xd5\x75\xcc\x1a\x6a\xc6\x42\x89\x85\xc7\xde\x86\xd4\x76\x1e\xba\x76\x87\x22\x21\xa9\x67\x33\xf7\x93\x5d\x3a\x97\xee\xe7\x15\xcb\xa6\x54\xae\x8c\x58\xfd\xa6\xf2\x00\x7e\xc2\xc4\x3a\x4a\x9f\xcb\x8a\x58\xa6\x7d\xf3\x54\xe9\x2c\xfb\x1e\x68\xdf\x66\xe0\xaf\x2a\x5b\x81\xde\x3d\xb2\x79\xe9\x6d\x78\xcc\xc3\x54\x58\x20\x92\xf7\x69\x4a\xf2\xd7\x9e\x76\x94\x0d\x21\x8a\xec\xde\xb3\x8d\x2d\x53\xf9\x52\xc9\xfc\x24\xd9\x18\x23\xc0\x0f\xbd\x40\xe4\x6f\x48\xa6\x65\xd8\x09\x77\x6d\xdd\xf6\xca\xea\xc8\x7e\xf2\xb0\x9d\xd6\x6e\xb2\x64\x63\x24\x1b\xe1\xd6\x6e\xb7\x64\xeb\x6c\x96\x89\x3a\x38\x4c\xb3\x27\x70\x0b\xc1\x05\x7f\x18\x33\x25\x91\x6b\x91\xfa\x6b\xa1\x9e\x7d\x25\xe2\x98\x1a\x59\xa9\x9d\xb9\xa4\x51\xe5\x0a\x86\x1a\x51\x11\x26\x9b\x58\x64\x9d\x11\x8c\x8a\x64\x99\x84\x96\x9a\x7e\x64\x7a\x31\x49\x19\x62\xc9\x9a\x07\x81\x88\x99\xf3\xb8\x09\x9f\x88\x2b\x72\xa6\x96\x4d\x16\xf0\xd8\xb3\x03\x4d\x6f\xbc\xbe\xbc\xb6\xc8\x12\x21\x68\xe2\x45\x32\x49\x7c\x35\xe1\x8c\xd8\x68\xc2\x15\xdf\x2f\x1d\xe8\xe6\xe6\x36\x19\xfd\x8e\x70\xf5\x78\x90\xfa\x6d\x36\x78\x33\x87\x4d\x6f\x35\xba\xeb\xef\x3c\xb1\xbc\xcc\xda\x9d\x4a\x26\xdb\x1a\x8e\xd6\xfb\x79\xa2\x06\xd8\xd9\x04\xba\xbf\x58\x3e\x6d\x0e\x5e\xfd\x95\x90\xea\x57\xfd\xba\x06\x6b\x17\x14\xc5\xd9\xee\x69\xaa\xba\x5b\x22\x52\x3b\x71\xd3\x98\xfb\x6a\xe5\x0e\xd9\x77\x35\xc2\xf6\x48\x3b\x0b\xd4\x61\xf6\x5d\xca\x9a\x86\xc5\xb6\x77\x9b\x5a\x31\x45\x46\xb7\x0a\x2e\x40\x5f\xde\xb8\xd2\x49\x6e\xe8\x5d\x51\x2b\xf4\x0d\xcd\xf6\x6b\x1e\xf9\x37\x3c\xf2\xaf\x1d\x19\x2a\x93\x2f\xb9\xf9\x47\xd6\x10\x2c\xfb\xc1\x15\xbd\xd6\x29\xf7\x83\x84\x96\xa4\xa2\x02\x41\xf1\x38\x07\x8a\xbb\xf2\xf0\x67\x94\xfb\x17\x5a\x6e\xb3\x2d\x29\xa1\xb6\x6e\xd5\xb1\x51\xaa\x46\x14\x05\xbe\x5e\x60\xb2\x55\x52\xc7\x39\xf9\x09\x7b\xf4\xbd\x47\x0a\x7f\x72\xe4\x7a\x2d\x42\xea\xa8\x57\x1c\xb9\xd2\x6f\x19\xc7\x80\x12\x69\x7e\x25\xb5\x68\xc7\xa2\xee\x87\xd5\xb1\xe3\x1b\xd1\x2f\xdb\xde\xe9\x7e\x87\xf5\x0f\x7f\x2d\xd4\x86\x65\x1d\x16\x4a\xb4\x1a\x8f\x18\x95\x8f\x36\x0d\x5a\xb4\x12\xdd\x61\xce\x7a\x00\xac\x9e\xc2\x83\xe0\x2d\x8b\x85\xc7\x63\x97\x90\xb3\x5a\xe5\xc3\x67\xc6\x9d\xd4\xff\xe6\xa7\xcf\x6a\x67\xf3\x43\xfb\xbf\x43\xd7\x97\x54\xdf\x5e\x5d\x67\xca\xbe\x97\xcd\xff\x68\xc3\x51\xc6\x45\x3e\xa3\x7b\xec\xa9\xe3\x96\xb4\xb5\xea\xc1\xd3\x3d\x01\x8d\xce\x94\x3e\x8a\xb5\xde\x4c\x35\x33\x20\x81\xb8\xee\x5b\xb3\x5d\xbd\x35\xc7\xae\xe5\x37\xd2\xc8\x0a\xa6\x24\xfb\xaa\x5b\x0c\x55\xa7\xf3\xa1\x42\xab\x41\x1c\x47\xfb\xf3\xcc\xa7\x3f\x3b\x06\x6c\x35\x7d\x96\x7b\xe2\x6c\x45\xb8\x16\x5a\x0d\x40\xae\xd8\x93\x1f\xee\x09\x6c\xea\x04\xb2\xbd\xcd\x2d\x00\xb2\x72\x8c\xb6\xa8\x8c\x88\xdc\xb4\x99\x95\x4c\xe2\xc2\xb5\x3b\x45\x74\xc0\x73\xc0\x73\xe3\xc3\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\xa3\x47\x73\xa8\x1f\x03\xf2\x08\xf2\x08\xf2\x38\x80\x11\x05\x79\x2c\x8b\x07\xe4\x71\xc0\xe4\x51\xca\xd8\xf5\x43\xba\x79\x4b\x1e\x8f\x42\x89\x67\x49\xf6\xad\x8c\xb6\x27\x52\xe6\x87\x2b\x19\xaf\xb3\xd9\xcd\x99\xc6\x17\xbb\x01\xa0\x27\xd2\x0f\x05\x21\xdc\x2d\x3e\xff\xab\x7a\x06\x12\x9c\x0f\xa4\x6f\x99\x10\xc7\xce\xde\x0a\x13\xa3\x70\xd6\xab\xe2\x2f\x37\xbf\x4f\xdf\x6e\xc7\xfd\x4a\x95\x8c\x62\xbd\x56\xb6\x7f\x9f\xfe\x7d\x7b\xb7\xf8\xfc\x7b\xdd\x79\x78\xab\x0e\x7f\xab\xac\x20\x29\x4f\x78\x42\x2f\xd7\xff\xf9\x76\xfb\xa2\xf7\x2b\x10\xbc\x3c\x76\xdd\xc7\xc0\x68\x07\x6a\x6c\x5c\x30\xd6\x42\xb7\xe1\x2f\xbf\xaa\x1b\xd8\xf3\x56\xa8\xb3\xcb\xaf\x05\x9d\xf1\x49\xc6\x77\x41\xf0\xbf\x7c\x2d\x92\x88\x0f\xe4\xfd\x40\x70\x89\xa9\x79\x51\x9c\x6a\xdf\x6e\xe7\x34\x60\xd3\x7e\xf1\x9a\x83\x49\x3a\x4b\xf3\xde\x7e\x8f\xeb\x63\x49\xaa\x2f\x56\x35\x6e\x04\x21\x23\x08\x19\x41\xc8\x08\x42\x46\x10\x32\x82\x90\x11\x84\x8c\x20\x64\xe4\x90\xd5\x16\x21\x23\x08\x19\x41\xc8\x08\x42\x46\x10\x32\x82\x90\x11\x84\x8c\x5c\x5c\xc8\x08\x62\x2a\x10\x53\x81\x98\x8a\x71\x8c\x28\x62\x2a\xca\xe2\x41\x4c\xc5\xb8\x62\x2a\xbe\xdd\xde\x84\x19\xe5\xd1\x29\xdb\xf4\xf9\xef\x1a\x74\xa5\xf5\x9d\x6e\xe9\x95\xbe\x26\x73\x64\xa0\xcc\x2b\x33\x4d\x9b\xa0\x95\x3e\xa9\x8c\xad\x3e\x64\x57\xc8\xa8\x95\xbb\x75\x9d\x7e\x9b\x4d\xf4\x02\x57\x3f\xd2\xb3\xfe\x46\x02\x4b\x3a\xe9\x23\x01\x5f\x2e\x7c\xb9\xf0\xe5\xc2\x97\x3b\x35\x5f\x6e\xbb\x0e\x24\xb5\xfe\xdc\x93\x35\x87\x41\x0f\x9f\xd6\x03\x75\xce\x1e\x3e\x27\x73\xc0\x1f\xd0\x35\xa7\xd6\x01\x7d\x32\x89\xfc\x51\xb4\x24\x7c\x65\xc5\x93\x82\xcf\x96\x62\xa5\x23\x05\x32\x67\x4d\xae\x4a\x98\xd5\x8b\xa6\x4e\xa1\x6b\x51\x28\xc3\xeb\x50\x78\x9c\x26\xa8\xb1\x05\x8a\xdd\x8d\xb4\xe3\x36\x7b\x35\x8c\x86\xe8\xaf\xd7\xc2\xf5\x79\x2a\x82\xe7\x1c\xe1\xe7\x5b\xae\x1f\xbc\x35\xba\x3e\x09\x9d\x79\x31\x77\xe8\xad\xf1\xa5\x9b\x29\x04\xf9\xa6\x4d\xf1\x11\x76\x96\x6e\x12\x75\x93\xc5\xe1\xe2\xea\x4c\xfb\x40\xe6\x47\x56\x7a\x0d\xb4\x97\x98\xeb\xfb\xd4\xad\x1c\x6b\xee\xf1\x88\x61\xa6\x7b\x5e\xd0\x2d\xd7\xd9\x4f\x0d\x16\xd4\x50\xa6\xff\x21\xec\xa5\x9d\x5c\x76\xf3\x97\x93\x4d\x7f\x90\x18\x90\x18\x90\x18\x90\x18\x90\x98\xde\x48\x4c\xcb\xbd\x60\x8b\xc6\x9c\x6e\x5b\xfc\x58\xa8\x17\x18\x91\x7b\x2c\x5b\x82\x16\xb1\x8c\xb8\x47\xda\xd1\x42\x06\xbe\xf3\x5c\x8a\xfb\xb3\x93\x2e\x2f\x38\xa8\xa6\xdd\xed\xfc\x9f\x73\xf6\x55\xaf\x67\x5a\x75\x89\x44\xa8\x5e\x96\x7c\x4f\x15\x4c\xc6\xd1\x23\x0f\x6d\x1c\x62\xbc\x11\x37\x2b\x1e\x58\x5b\xf9\xe1\x4a\x7f\xfd\x70\xc5\x56\x7e\xc8\x03\xff\xbf\x76\x23\x59\x0a\xc6\x5d\x72\xcf\xcb\x1b\xed\xba\x74\x73\x33\x4c\x5f\x7e\x96\xe4\x27\x69\xfb\x74\xce\xee\x7d\x5a\x1c\x0b\xb7\x2e\xe3\xed\x67\xcb\x61\x4c\xaa\xcd\x63\xb2\x51\x64\xfa\x78\xcc\x80\xea\x27\xf8\x68\x9f\x7d\xa7\xca\x73\x54\xa3\xe9\x83\x0c\x33\x7a\x74\xf5\xc2\x3e\xca\xef\xcc\xe3\xf1\x92\x7b\x25\xc7\x64\x66\xd4\x88\x78\x25\xe3\xb5\x1a\x93\x5a\x79\xfd\x56\x79\xa2\xdd\xe2\x22\xa5\xd7\x6a\xac\x91\x96\xad\xaf\xb4\x49\xc7\x77\x73\x53\x98\x74\x05\xdd\x0f\xdc\x8e\x71\x42\x09\x65\xf4\xad\xd5\x06\xe6\x85\xc1\xb4\xfb\x48\x46\x43\xb2\x98\xda\xf2\x8f\xcd\xd9\x9d\xe3\x88\x48\xf7\x03\x2d\x5a\x76\x33\xfd\x0c\x33\x76\x6d\x26\x60\x79\x82\x26\x3f\xb1\xd9\xcf\xdc\x79\xf2\x62\xb9\x09\x5d\x75\x14\xc5\xa7\xd2\x41\x15\xc1\x69\x15\xd2\xe8\xc7\xe5\x8b\xd8\x27\x58\x66\x57\xfa\x89\xcd\x3e\xc9\x58\x14\x2e\xcb\x1c\x9e\x38\xdc\x55\x4f\x6f\xe4\xa3\xc3\x97\xe9\x7a\x89\x36\x3d\xb7\x2e\xb8\xca\xae\x71\xcc\x84\x8c\xaa\xd3\xfd\x3c\x1a\xe7\x84\xb1\x69\xbb\x71\xd8\x87\x4e\xcf\x35\x0a\x80\xa8\xbd\x8d\xef\x36\x48\x3d\x9d\x6f\xe3\x9c\x48\xb5\x9d\xb0\xf6\x60\xd5\x97\xea\x3f\xb5\x94\x0e\x39\x90\x07\x62\x3a\xd3\xd8\xbe\x1d\x9f\x9b\x64\x06\x96\xde\x93\x73\x7d\x69\x34\xd9\x58\x83\xcf\xc8\xec\x00\x68\x23\x9b\xec\x72\xb2\xc9\xda\xed\x28\x4d\x19\x65\xa7\x33\xbd\x10\x8f\x80\x78\x04\xc4\x23\x20\x1e\x01\xf1\x08\x75\x8b\x2f\x40\xf7\x88\x24\x02\xf6\x09\xf6\x09\xf6\x09\xf6\x09\xf6\x09\xf6\x39\x2d\xf6\x09\x1c\x01\x1c\x01\x1c\x01\x1c\xd1\x3b\x8e\x38\x00\xd9\x0f\x34\xdf\xab\x9d\x08\xb7\x73\xbe\x5e\xea\x71\x1b\x14\xc8\xd9\x79\x02\x8a\xf5\xa1\x58\xdf\xd4\x8b\xf5\x19\x85\x91\x5a\x3f\xa8\xc5\x44\x8d\x0e\x4b\x1c\x19\x89\xb7\x2c\xd9\x38\x8f\x6a\xf5\xa1\xd5\x5d\xf0\xb5\x5e\x9a\xa2\x58\x92\x82\x5a\x97\x38\xba\xbf\x11\x04\x81\xa1\xf2\xd7\xe8\x06\xd1\xf4\x34\xe6\xd3\x9f\xf9\x20\xcb\xa4\x63\x08\xa8\x8d\x35\xc6\x1b\x79\x9f\x3e\xb0\x73\xe2\x77\x5c\x0a\xeb\x9e\xa9\xd3\xc3\x3a\xd8\x49\x3a\x2b\x52\xaa\x8a\x03\x3e\xd8\x94\x2a\x72\xc1\x7c\xe1\x21\xf7\x44\xac\x9d\x89\x7a\x79\x4c\x12\xe9\xf8\x64\x1d\x67\x6e\x3b\x4e\xde\x57\x19\x33\x11\xa6\x4a\x5d\xb5\xee\x82\x35\x7f\x52\x52\x4c\x1f\x45\x22\xac\xce\x57\x4c\x1c\xb2\x09\x46\xa4\xf3\x92\x8b\x4e\xc6\xec\xf6\xdd\x7b\x75\x6c\xcc\x1d\x62\x72\x81\x0c\x3d\xad\xe1\x91\x1b\xcd\x91\x61\xca\xfd\x50\xaf\x49\xe4\xa6\xca\x8f\x25\x4e\x61\x88\x21\x5b\x3e\x67\x46\x8c\x27\x03\x1e\x7a\x73\x19\x7b\x37\xd1\x93\x77\xb3\x09\x7d\x47\xba\xe2\xe6\x1f\x9f\x93\x85\xba\xca\xd1\x7e\x6f\x23\x9c\x2e\x87\x67\x50\x2a\xe1\x18\x35\xb5\xb6\x5a\xda\xbb\x16\x5a\xda\x07\xed\xbe\x1b\xce\x2d\xbf\x6b\xbc\x65\x1d\x1e\x3c\x9c\x7b\x9e\xa2\x32\x4c\xaa\xc7\xc0\x95\xe1\x57\xac\x93\x62\x22\xfa\x4f\x7f\x9f\xa8\xa6\x48\xb3\xea\x55\x57\x47\x04\xd5\x43\xa0\x6e\x4d\x40\xdd\x42\xbe\xf6\x05\xe5\x6b\x23\x31\x0d\x89\x69\x48\x4c\x43\x62\x1a\x2c\xc5\x5d\x6f\xd1\x20\xb3\x40\xce\x63\x81\x21\x89\x65\x8f\x31\x66\xcc\x91\x81\x9b\x63\x99\xdb\xba\xf3\xd4\x95\x58\x70\xb7\xa2\x7a\x35\x19\x51\xea\x94\xbe\xf3\x55\x0a\xca\x88\xf8\x8b\xa2\xd0\x96\xea\x13\x77\xd2\x39\x63\xf7\xea\x5f\xfb\xf7\x35\xf7\xc9\xa3\x97\x30\x27\xd8\x24\xa9\x88\xf3\x2d\x46\x87\xab\xb2\xc0\x7f\x12\x6c\x96\xdd\xe3\x4c\x69\x92\x56\xfb\x99\xb3\x45\xc0\xc3\x50\x68\x15\x94\xf4\x13\x1e\x68\x95\xe8\xf6\xfd\x31\x6b\x36\xdd\xe3\x99\x34\x87\x4c\x68\x99\xe2\xbd\xb4\xe2\x53\x4f\xca\xee\xb5\xc4\xd4\x6e\x11\x25\x56\x3a\x26\x50\x6b\x93\x88\x98\x22\xac\x72\x1d\xfa\xb9\x67\x41\xa9\x9b\x99\x2e\x0f\x1f\xf6\x96\x06\xaf\x5c\x75\x23\xf0\xc4\xe0\x9d\x72\x2f\x21\xd4\xc4\x5e\x8c\x7f\xa4\xe6\xa7\xdb\x80\xe7\xa1\x30\x67\xc0\xf6\xd1\xc1\x76\x0a\xdc\x39\xaa\xd5\xf0\x35\x9d\xfb\xc3\xfe\x15\x7a\x2d\x62\x4f\xb4\x3a\x32\x49\x63\x9e\x0a\xcf\x77\xae\xdb\x9f\xa3\x3e\x3f\x9b\x23\x69\x2f\x68\xa3\x57\x45\x3c\x4e\x7d\xca\xab\xd3\x41\x66\x07\xea\x58\xf4\x6b\x03\xf1\x53\xf7\x15\x22\xb0\xc7\x2e\x59\x94\x23\xbd\x18\xbc\xd7\x13\xf7\x5e\x5f\x4e\xb0\x40\x25\x3f\xc5\xbe\x5c\x3a\x87\x4a\xad\x34\x79\x5e\xfe\xeb\x1d\xab\xd0\x1b\xf2\xdd\xe9\xc4\x69\x1e\xd0\x99\xa1\x0c\xaf\xf5\xd9\x74\x04\xb9\xcf\x13\xf6\xfa\x97\x44\x86\x0b\x9d\x9e\xfe\x45\xad\x77\xe6\xf3\x57\xbb\x0a\xe6\x7f\x7c\x33\xa4\x28\x86\xf6\xf3\xe6\x93\x8c\x1d\xe2\x0b\x9e\xa4\xc1\x97\xec\xe1\x6a\xa5\xfe\xf6\x70\xc5\xee\x4a\xd2\xa4\xe8\x77\x0d\x03\xc8\xd6\x31\x2f\xea\x35\x77\x68\x00\x28\xc1\x39\xf0\x1d\xe3\xde\x24\xd3\x48\x7e\x37\x63\xab\x13\x80\x23\x21\xa3\x40\xcc\x99\xfe\x4d\xaa\x6b\x60\xe7\x14\xc5\xa0\xd7\x0e\x44\xf6\xf3\xc7\x88\x57\xfd\x10\x2c\x24\xfd\x05\x2c\xa4\x73\x5b\x48\x51\x25\x78\x7b\xe0\x36\xd2\xa6\x73\x4f\x59\x14\x70\xe7\x50\x45\xce\x9c\x35\x71\x55\x0e\xd1\x9e\x50\xe0\x2e\x45\x81\x1b\x90\x9e\x84\xed\x3c\xfb\x06\xd1\x9e\x97\xa0\x81\x6c\x06\xef\xa3\x7d\xc5\xda\x06\x4e\x52\x36\x5b\x4d\xd3\xb5\xce\x11\x9f\xa9\x78\x10\xba\xfe\x37\xdf\xdd\xf0\xa0\x98\x3d\xc9\xb3\x1a\x27\xf4\xac\xf3\x42\x60\xd0\x8f\x59\x48\xd1\x8c\xae\x30\xcb\x2b\x5d\x95\x4a\x17\x65\x0a\x0f\xf3\xc3\x24\x15\xbc\xe4\x7a\xac\xaa\x43\xdf\xb7\xfd\x5a\x59\x82\xdc\x27\x19\xdf\x05\x41\xa6\x1b\x25\x57\x03\x58\xd4\x76\x9e\x70\x59\x59\x8d\x7b\x5c\x75\x94\x94\x7b\xff\x4d\x84\x17\x9d\xe0\x48\x83\x38\xf5\x2c\x47\x14\x91\x9c\x70\x11\xc9\x66\x44\xd4\x54\x40\xf2\xf8\x16\xa6\xed\xf0\x17\xca\x46\xa2\x6c\x24\xca\x46\xa2\x6c\xe4\xd4\xca\x46\x36\xaf\xbc\xb5\x25\x23\x7b\x0e\x36\x38\x59\xa1\xc8\xe6\xc7\xdf\x5d\x24\x72\xc8\x32\x38\xa4\x34\x64\xb3\x0c\x76\x97\x85\xec\x59\x06\x28\x06\x89\x62\x90\x28\x06\x89\x62\x90\x28\x06\xd9\x5b\x31\xc8\x16\xab\xff\x56\x21\xc8\xbd\x99\x86\x17\x14\x6b\xd8\xee\x69\x26\x5c\xcc\xb2\x59\xdc\xfb\x0a\x59\x9e\x56\xee\x28\x5f\xd9\xcb\x88\x6e\x97\xae\xec\x79\x58\xcf\x5a\xb0\xb2\x59\x3c\x7b\x8a\x55\xf6\xbd\x6c\x0e\xb5\x44\x65\xb3\xd0\x6a\x20\xc6\xd1\xfe\x3c\xf3\xe9\xcf\x43\x61\xd8\xde\x5a\x22\x97\xcc\xc8\x2a\x01\x43\xbf\x56\x40\x03\xe8\x18\xe8\x18\x03\x1d\x33\x47\x82\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x0d\x8e\x0c\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x81\x8e\x8d\x91\x8e\xa1\x04\x09\xb0\x20\xb0\x20\xb0\xe0\xa0\x47\x14\x58\xb0\x2c\x1e\x60\xc1\x29\x62\xc1\x9a\x16\x03\x3d\xd1\xc1\x22\x12\x0c\xad\xe2\x23\x57\xec\xc9\x0f\xdd\x0e\xd1\xe0\xdb\xdc\xc8\x21\x43\xce\x28\xc4\xca\x4e\xca\xad\xb7\x59\xc9\xea\x2f\x5c\xfb\x65\x60\x11\x50\x11\x50\x71\x54\x50\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x11\x40\x71\x2c\x40\x11\xed\x19\xc0\x46\xc1\x46\x87\x4a\xd2\xc0\x46\xc1\x46\xc1\x46\xc1\x46\x2b\x42\x3b\x2b\x1b\x5d\x8a\x94\xdf\xde\x1c\x85\x3d\xcf\x52\x09\xb8\x32\xea\x9e\x48\xcb\xe6\x8a\x1e\xe0\x3d\xf4\xd2\x13\x69\x99\x5d\x92\x04\xee\x16\x9f\x7f\xaf\x3b\x19\x55\x90\x0f\x84\x8a\x05\x41\x52\x7a\xe9\xb4\xc8\x22\xcd\x95\xc2\xd9\xaf\x8a\x77\xd0\xfe\x75\x3b\x41\x26\xb2\xf6\x74\xc5\xc6\x56\xb6\xa6\x54\x29\xcc\x60\xcf\x4b\xa2\xce\xae\x79\x4b\xe8\x34\xd4\xd7\xad\x8a\x7e\x30\xef\x65\xb5\xd4\x37\x0d\xda\x3c\xcf\xf5\x9e\xf6\xcb\xd8\xcc\xfa\x07\x97\x3b\x5c\x79\x04\xf0\x7e\xf0\x7e\xf0\x7e\xf0\x7e\xf0\x7e\xf0\x7e\xf0\x7e\xf0\xfe\xe6\xd5\x16\xbc\x1f\xbc\x1f\xbc\x1f\xbc\x1f\xbc\x1f\xbc\x1f\xbc\xff\xe2\x78\x3f\x58\x31\x58\x31\x58\xf1\x38\x46\x14\xac\xb8\x2c\x1e\xb0\xe2\x71\xb2\xe2\xd6\xd5\x75\xb5\xd2\xd3\x2d\xd6\xd2\xd7\x64\x8e\x0c\x94\x8d\x65\xe6\x6a\x13\xcd\xd2\x27\xd5\xf0\xac\x0f\xd9\x65\xce\xd6\x4a\xbb\x17\x08\xfb\x91\x1e\xf8\x37\x92\x5a\xd2\x49\xfb\x6c\x78\x75\xe1\xd5\x85\x57\x17\x5e\xdd\xa9\x79\x75\xdb\x35\x5e\xaf\xf5\xec\x9e\xac\x27\xfe\x7f\x94\xe0\x8c\x3d\xfb\x96\x8a\xcb\x3b\x6a\x46\xe9\x79\x50\x7a\xb6\x22\x41\x5d\x0a\x16\x29\x69\x25\xca\xf4\x63\x77\x21\xf3\x43\xbd\xb2\xc8\x98\x6d\xc2\x6c\x71\x72\x99\x6e\xf7\xcf\x5c\x3f\x56\x5b\xe1\x37\x91\xcd\x78\xb5\x7c\x92\xf7\xc1\xbc\xf2\x76\x6e\x18\x01\xb3\xd5\x26\xa6\xb7\x2c\x8a\xa5\x23\x12\x72\x13\x18\xc5\xd1\xcc\xb2\x39\xfb\x37\xfd\x22\x8d\x16\xcd\x9d\x1f\xd9\x35\xbb\x0b\x82\x1f\xc9\x09\xe0\xaa\x55\x7a\x13\xaa\x81\x57\x2a\x98\x9d\x92\xe6\x72\xdb\x2d\xd0\x5b\x0c\x94\x7e\x96\xf3\x0c\xd3\xc9\x5c\xf1\xed\x44\xb1\xdb\x1d\x7f\x32\x89\xfc\x51\xb4\x29\x7c\x65\xcf\x93\xaa\xcf\x96\x62\xa5\x63\x06\x32\xb7\x4d\xae\x4a\x98\xd5\x8b\xa6\xce\x46\xe8\xcd\x61\xa9\xb4\xe9\xf0\x3a\x14\x1e\xa7\x09\x6a\xac\x02\x65\xc0\xd8\x1d\x54\xbb\x70\xb3\x57\xc3\xa8\x89\xfe\x7a\x2d\x5c\x9f\xa7\x22\x78\xce\x61\x7e\xbe\xe5\xfa\xc1\x5b\xa3\xf5\x93\xd0\x99\x17\x73\x87\xde\x1a\x5f\xba\x99\x42\x90\x6f\xda\x14\x29\x61\x67\xe9\x26\x51\x37\x59\x1c\x2e\xae\xce\xb4\x0f\x64\x7e\x64\xa5\xd7\x40\x7b\x89\xb9\xbe\xcf\xb5\xe0\x61\xed\x3d\x1e\x31\xcc\x74\xcf\x0b\xba\xe5\x3a\x4b\xaa\xc1\x96\x1a\xca\xf4\x3f\x84\xc2\xb4\x93\xcb\x6e\x12\x73\xb2\xe9\x0f\x26\x03\x26\x03\x26\x03\x26\x03\x26\xd3\x1b\x93\x69\xb9\x17\x6c\x71\x99\xd3\x6d\x8b\x1f\x0b\x95\xdc\x22\xf2\x91\x65\x4b\xd0\x22\x96\x11\xf7\x48\x3b\x5a\xc8\xc0\x77\x9e\x4b\x11\x80\x76\xd2\xe5\xa5\xe0\xd4\xb4\xbb\x9d\xff\x73\xce\xbe\xea\xf5\x4c\xab\x2e\x91\x08\xd5\xcb\x92\xef\xa9\x82\xc9\x38\x7a\xe4\xa1\x8d\x48\x8c\x37\xe2\x66\xc5\x03\x6b\x2b\x3f\x5c\xe9\xaf\x1f\xae\xd8\xca\x0f\x79\xe0\xff\xd7\x6e\x24\x4b\xc1\xb8\x4b\x8e\x7a\x79\xa3\x9d\x98\x6e\x6e\x86\xe9\xcb\xcf\x92\xfc\x24\x6d\x9f\xce\xd9\xbd\x4f\x8b\x63\xe1\xd6\x65\xbc\xfd\x6c\x39\x96\x49\xb5\x79\x4c\x36\x8a\x4c\x1f\x8f\x19\x50\xfd\x04\x1f\xed\xb3\xef\x54\x79\xea\x5c\xa2\xdd\x1a\x66\xf4\xe8\xea\x85\x7d\x94\xdf\x99\xc7\xe3\x25\xf7\x4a\xde\xc9\xcc\xa8\x11\xf1\x4a\xc6\x6b\x35\x26\xb5\xf2\xfa\xad\xf2\x44\xbb\xc5\x45\x4a\xaf\xd5\x58\x23\x2d\x5b\x5f\x69\x93\x8e\xef\xe6\xa6\x30\xe9\x0a\xe4\x9c\xc8\xc6\x58\x6d\xd6\x66\x27\xb5\xda\xc0\xbc\x30\x98\x76\x1f\xc9\xb8\x48\x16\x5d\x5b\xfe\xb1\x39\xbb\x73\x1c\x11\xa5\xb4\x37\x15\x2d\xbb\x99\x7e\x86\x19\xbb\x36\x13\xb0\x3c\x41\x93\x9f\xd8\xec\x67\xee\x3c\x79\xb1\xdc\x84\xae\x3a\x8a\x22\x55\xe9\xa0\x8a\xe0\xb4\x0a\x69\xf4\xe3\xf2\x45\xec\x13\x2c\xb3\x2b\xfd\xc4\x66\x9f\x64\x2c\x0a\x97\x65\x0e\x4f\x1c\xee\xaa\xa7\x37\xf2\xd1\x81\xcc\x74\xbd\x44\x9b\x9e\x5b\x17\x5c\x65\xd7\x38\x66\x42\x46\xd5\xe9\x7e\x1e\x8d\x73\xc2\x00\xb5\xdd\x38\xec\x83\xa8\xe7\x1a\x05\xe0\xd4\xde\xc6\x77\x1b\xa9\x9e\xce\xb7\x71\x4e\xb8\xda\x4e\x58\x7b\x00\xeb\x4b\xf5\x9f\x5a\x54\x87\x5c\xc9\x03\x31\xdd\xd7\x94\xa7\x9b\xb6\x7c\x6e\xba\x59\x59\x7a\x63\xce\x95\xa6\x71\x65\x68\x8d\x23\x73\xb3\x03\xbe\x8d\x34\xb3\xcb\x49\x33\x6b\xb7\xc1\x34\xa5\x9a\x9d\xce\x12\x43\x78\x02\xc2\x13\x10\x9e\x80\xf0\x04\x84\x27\xd4\x2d\xbe\xe0\xde\x23\x92\x08\x50\x28\x50\x28\x50\x28\x50\x28\x50\x28\x50\xe8\xb4\x50\x28\xe8\x04\xe8\x04\xe8\x04\xe8\x44\xef\x74\xe2\x00\x82\x3f\xd0\x44\xb0\x76\x22\xdc\x4e\x06\x7b\xa9\xc7\x6d\x50\x5c\x67\xe7\x09\x28\xea\x87\xa2\x7e\x17\x56\xd4\x0f\xd5\xf0\x07\x5e\xe1\xc0\x7c\xfa\x33\x1f\x64\x99\x74\x0c\x06\xb5\xed\xc6\x78\x23\x03\xd4\x07\xf6\x43\x01\x8f\xcb\x72\xdd\x33\x7f\xfa\x5a\x1b\x3b\x49\x7b\x45\xea\x55\x71\xd4\x07\x9b\x7a\x45\xbe\x99\x2f\x3c\xe4\x9e\x88\xb5\x97\x51\x2f\x94\x49\x22\x1d\x9f\xcc\xe6\xcc\x9f\xc7\xc9\x2d\x2b\x63\x26\xc2\x54\xe9\xb1\xd6\x8f\xb0\xe6\x4f\x4a\x8a\xe9\xa3\x48\x84\x55\x06\x8b\x09\x46\x36\x11\x89\x94\x61\xf2\xdd\xc9\x98\xdd\xbe\x7b\xaf\x8e\x8d\xb9\x43\xb0\x2e\x90\xa1\xa7\x55\x3f\xf2\xaf\x39\x32\x4c\xb9\x1f\xea\xd5\x89\xfc\x57\xf9\xb1\x04\x30\x0c\x4a\x64\xcb\xe7\xcc\xba\xf1\x64\xc0\x43\x6f\x2e\x63\xef\x26\x7a\xf2\x6e\x36\xa1\xef\x48\x57\xdc\xfc\xe3\x73\xb2\x50\x57\x39\xda\x21\x6e\x84\xd3\xe5\xf0\x0c\x4a\x57\x1c\xad\x0a\xd7\x56\x7d\x7b\xd7\x42\x7d\xfb\xa0\x9d\x7b\x03\xbb\xef\x77\x8d\xf7\xad\x03\x8a\x07\x76\xe3\x93\xd5\x97\x49\x31\x19\x83\xbe\xfc\x8a\x75\x57\x97\xa4\xa6\xbd\x7f\x8f\xe5\x49\x9a\x55\xb4\x9d\x25\x49\x50\x88\x04\x1a\xd9\x04\x34\x32\xa4\x7e\x5f\x50\xea\x37\x72\xdc\x90\xe3\x86\x1c\x37\xe4\xb8\xc1\x98\xdc\xf5\x16\x0d\x32\xa1\xe4\x3c\xa6\x19\xf2\x61\xb2\x23\xf7\xe6\xc3\x8c\xc2\x44\xcb\xbc\xdd\x9d\x67\xc1\xc4\x82\xbb\x15\x25\xac\xc9\xa6\x52\xa7\x9c\x24\xf5\xa5\xa0\x9b\x88\xbf\x28\xa0\x6d\xa9\x3e\x71\x27\x9d\x33\x76\xaf\xfe\xb5\x7f\x5f\x73\x9f\x7c\x80\x09\x73\x82\x4d\x92\x8a\x38\xdf\x71\x74\xe4\x2b\x0b\xfc\x27\xc1\x66\xd9\x3d\xce\x94\x62\x69\x95\xa1\x39\x5b\x04\x3c\x0c\x85\xd6\x48\x49\x5d\xe1\x81\xd6\x90\x6e\xdf\x1f\xb3\x84\xd3\x3d\x9e\x49\x91\xc8\x84\x96\xe9\xe1\x4b\x2b\x3e\xf5\xa4\xec\x5e\x4b\x4c\x6d\x1e\x51\x62\xa5\x63\x62\xbe\x36\x89\x88\x29\x58\x2b\x57\xa9\x9f\x7b\x16\x94\xba\x99\xe9\xa2\xf5\x61\xef\x70\xf0\xde\xed\xde\x1c\x3c\x31\x0e\xe7\xdd\x4b\x60\x37\xba\xd8\x83\xdb\x9f\x8f\xdb\x53\x48\xd0\x51\x0d\x90\xaf\xe9\xdc\x1f\xf6\x2f\xd8\x6b\x11\x7b\xa2\xd5\x91\x49\x1a\xf3\x54\x78\xbe\x73\xdd\xfe\x1c\xf5\xf9\xd9\x1c\x49\x5b\x43\x1b\x5d\x2b\xe2\x71\xea\x53\xc6\x9e\x0e\x5f\x3b\x50\xef\xa2\x5f\x1b\x92\x2b\xbb\xaf\x68\x83\x3d\xa6\xcb\xa2\x1c\x48\xc6\xe0\xe0\x9e\xb8\x83\xfb\x72\x42\x0e\x2a\xe9\x2f\xf6\xe5\xd2\x29\x5a\x6a\xb9\xc9\xd3\xfe\x5f\xef\x58\x8a\xde\x90\x7b\x4f\xe7\x65\xf3\x80\xce\x0c\x65\x78\xad\xcf\xa6\x23\xc8\xc3\x9e\xb0\xd7\xbf\x24\x32\x5c\xe8\xec\xf7\x2f\x6a\xd1\x33\x9f\xbf\xda\xa5\x30\xff\xe3\x9b\x21\xc5\x42\xb4\x9f\x37\x9f\x64\xec\x10\x82\xf0\x24\x0d\xbe\x64\x0f\x57\x2b\xf5\xb7\x87\x2b\x76\x57\x92\x26\x05\xd7\x6b\x5e\x40\xf6\x8f\x79\x51\xaf\xb9\x43\x03\x40\xf9\xd3\x81\xef\x18\x0f\x28\x99\x4b\xf2\xbb\x19\x5b\x9d\x5f\x1c\x09\x19\x05\x62\xce\xf4\x6f\x52\xd9\x04\x3b\xa7\x28\xc4\xbd\x76\x20\xb2\x9f\x3f\x46\xbc\xea\x87\x60\x35\xe9\x2f\x60\x35\x0d\xc7\x6a\x8a\x2a\x51\xe2\x63\xb0\x9b\x36\x9d\x7b\xd4\xa2\x80\x3b\x87\x2a\x77\xe6\xac\x4b\x50\xef\x10\x4c\x0a\xcd\xee\xa2\x34\xbb\x01\x29\x50\xd8\xe7\xb3\x6f\x10\x4c\x7a\x81\xfa\xc9\x66\x1c\x5e\xdd\x57\xec\xa0\x90\x4c\x4a\xaf\xab\xe9\x0c\xd7\x39\x2d\x34\x25\x18\x42\xd7\xff\xe6\xbb\x1b\x1e\x14\xd3\x39\x79\x56\x74\x85\x9e\x7a\x5e\x88\x36\xfa\x31\x8b\x53\x9a\xd1\x15\x66\x79\xe9\xad\x52\x2d\xa5\x4c\x27\x62\x7e\x98\xa4\x82\x97\x3c\x96\x55\x8d\xe9\xfb\x0e\x77\x58\x96\xb1\xf7\x49\xc6\x77\x41\x90\xa9\x4f\xc9\xd5\x00\x96\xbc\x9d\x27\x5c\x56\xae\xe5\x1e\x0f\x1f\xa5\x0a\xdf\x7f\x13\x21\x32\x2e\x69\x24\x2f\x22\xed\x12\x45\x2e\x27\x5c\xe4\xb2\x19\x34\x35\x15\xb8\x3c\xbe\xf7\x6a\x3b\x88\x86\xb2\x96\x28\x6b\x89\xb2\x96\x28\x6b\x39\xb5\xb2\x96\xcd\x2b\x6f\x6d\x49\xcb\x9e\x43\x16\x4e\x56\xc8\xb2\xf9\xf1\x77\x17\xb1\x1c\xb2\x0c\x0e\x29\x5d\xd9\x2c\x83\xdd\x65\x2b\x7b\x96\x01\x8a\x55\xa2\x58\x25\x8a\x55\xa2\x58\x25\x8a\x55\xf6\x56\xac\xb2\xc5\xea\xbf\x55\xa8\x72\x6f\x36\xe3\x05\x45\x2c\xb6\x7b\x9a\x09\x17\xdb\x6c\x16\xf7\xbe\x42\x9b\xa7\x95\x3b\xca\x6b\xf6\x32\xa2\xdb\xa5\x35\x7b\x1e\xd6\xb3\x16\xd4\x6c\x16\xcf\x9e\x62\x9a\x7d\x2f\x9b\x43\x2d\xa1\xd9\x2c\xb4\x1a\x9c\x71\xb4\x3f\xcf\x7c\xfa\xf3\x28\x40\xb6\xb7\x72\xc9\xc5\x73\xb3\x4a\x9c\xd1\xaf\x15\xee\x00\x62\x06\x62\xc6\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x40\xcc\x2a\xcb\xed\x00\x69\x11\x88\x19\x88\x19\x88\x19\x88\x19\x88\x19\x88\x19\x88\xd9\x18\x89\x19\x8a\x9b\x00\x15\x02\x15\x02\x15\x0e\x7a\x44\x81\x0a\xcb\xe2\x01\x2a\x9c\x2c\x2a\xac\x69\x72\xd0\x13\x31\x2c\x62\xc2\xd0\x6a\x3f\x72\xc5\x9e\xfc\xd0\xed\x10\x17\xbe\xcd\x2d\x1d\xb2\xe6\x8c\x56\xac\x8c\xa5\xdc\x84\x9b\x95\x4c\xff\xc2\xb5\x3b\x80\x8d\x00\x8d\x00\x8d\xe3\x03\x8d\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\x80\x8c\xa3\x82\x8c\x68\x06\x01\x5e\x0a\x5e\x3a\x54\xba\x06\x5e\x0a\x5e\x0a\x5e\x0a\x5e\x5a\x11\xda\x89\x78\xa9\xeb\x27\x8e\x54\x2a\x99\x85\xa5\x47\xa1\xcf\xb3\x94\x13\xae\x0c\xb5\x47\x8d\x6b\x57\x32\x5e\x67\x53\x9b\x33\x0d\x63\x76\x43\x4c\x4f\xa4\x1f\xad\x04\xee\x16\x9f\xff\x55\x3d\x1c\xf5\x93\x0f\x04\x89\x99\x10\x47\x8e\x11\xb3\xf7\xa2\x70\xca\xab\xe2\xcf\x36\xbc\x46\x36\xe6\x60\xd4\xaf\x53\xc9\xe4\xd7\x8b\x64\xcb\x77\xc9\xc4\x02\xdc\x2d\x3e\xff\x5e\x77\x26\x5e\xab\xc3\x5f\x2b\x2b\x48\xca\xde\x9e\xca\xdb\x55\x43\xe8\x8f\x79\xcb\x44\xe8\x46\xd2\x0f\xd3\x24\xf0\x9d\x9e\xf3\xfd\xb5\xb3\x38\x36\xee\x26\xeb\x8d\xb0\x81\x3b\xf7\xe6\x46\xbe\xaa\x1b\xd9\xf3\xae\xa8\xab\x54\x5f\x96\xd2\xb9\xa8\x70\x5d\x1d\x87\xc1\xbc\xa6\xf3\x7c\x1a\xda\x12\xfc\xa5\xa1\x9b\xfa\x0b\xda\x1c\x42\xd3\x55\x9a\x7e\xf5\x7d\xaf\x0f\x9f\xd9\xf5\xce\x21\x8c\x06\x61\x34\x08\xa3\x41\x18\x0d\xc2\x68\x10\x46\x83\x30\x1a\x84\xd1\x20\x8c\xe6\xdc\x32\x40\x18\x0d\xc2\x68\x10\x46\x83\x30\x1a\x84\xd1\x20\x8c\x66\x7c\x61\x34\x08\xc1\x40\x08\x06\x42\x30\xc6\x31\xa2\x08\xc1\x28\x8b\x07\x21\x18\x23\x0a\xc1\xb0\x54\x6b\x47\xa6\xfa\x6e\xd8\xa5\x35\x9f\x6e\x79\x97\xbe\x26\x73\x64\xa0\x0c\x2d\x33\x61\xdb\x62\x2e\x7d\x72\x15\x74\x7d\xc8\xae\x95\xe7\x8a\xef\xbc\x62\xbf\x8d\xf0\x7b\x81\xb5\x1f\xe9\xa9\x7f\x23\x11\x26\x9d\xf4\xbd\x87\x9f\x17\x7e\x5e\xf8\x79\xe1\xe7\x9d\x9a\x9f\x77\xcf\x2e\xdc\xe4\xeb\xdd\xaf\xd1\xed\xdf\x8d\x0f\x5a\x7b\xff\xa3\x04\x67\x2c\xdc\xb7\xd4\xe8\xc1\x51\x33\x4a\xcf\x83\xd2\xb3\x15\x99\xea\x52\xb0\x48\x49\x2b\x51\xc6\x20\xbb\x0b\x99\x1f\xea\x95\x45\xc6\x6c\x13\x66\x8b\x93\xcb\xdc\xf8\xf9\xf7\x4d\xc8\x5c\x3f\x56\x5b\xe2\x37\x91\xcd\x78\xb5\x7c\x92\x3f\xc2\xbc\xf2\x76\x6e\x18\x01\xb3\xd5\x26\xa6\xb7\x2c\x8a\xa5\x23\x12\x72\x1c\x18\x55\xd2\xcc\xb2\x39\xfb\x37\xfd\x22\x8d\x16\xcd\x9d\x1f\xd9\x35\xbb\x0b\x82\x1f\xc9\x2d\xe0\xaa\x55\x7a\x13\xaa\x81\x57\x4a\x99\x9d\x92\xe6\x72\xc2\x3d\x62\xa0\xf4\xb3\x9c\x67\x98\x4e\xe6\x9c\x6f\x27\x8a\xdd\x0e\xfa\x93\x49\xe4\x8f\xa2\x95\xe1\x2b\x0b\x9f\x94\x7f\xb6\x14\x2b\x1d\x45\x90\x39\x72\x72\x55\xc2\xac\x5e\x34\x75\x36\x42\x6f\x0e\x4b\xa5\x5f\x87\xd7\xa1\xf0\x38\x4d\x50\x63\x27\x28\x93\xc6\xee\xa0\xda\xa9\x9b\xbd\x1a\x46\x67\xf4\xd7\x6b\xe1\xfa\x3c\x15\xc1\x73\x8e\xf7\xf3\x2d\xd7\x0f\xde\x1a\x3b\x80\x84\xce\xbc\x98\x3b\xf4\xd6\xf8\xd2\xcd\x14\x82\x7c\xd3\xa6\xd8\x09\x3b\x4b\x37\x89\xba\xc9\xe2\x70\x71\x75\xa6\x7d\x20\xf3\x23\x2b\xbd\x06\xda\x4b\xcc\xf5\x7d\xae\x05\x0f\x6b\xef\xf1\x88\x61\xa6\x7b\x5e\xd0\x2d\xd7\xd9\x56\x0d\xd6\xd5\x50\xa6\xff\x21\x5c\xa6\x9d\x5c\x76\xb3\x99\x93\x4d\x7f\x50\x1a\x50\x1a\x50\x1a\x50\x1a\x50\x9a\xde\x28\x4d\xcb\xbd\x60\x8b\xd4\x9c\x6e\x5b\xfc\x58\xa8\xa0\x18\x51\x89\xc7\x6c\x09\x5a\xc4\x32\xe2\x1e\x69\x47\x0b\x19\xf8\xce\x73\x29\x26\xd0\x4e\xba\xbc\x04\xa3\x9a\x76\xb7\xf3\x7f\xce\xd9\x57\xbd\x9e\x69\xd5\x25\x12\xa1\x7a\x59\xf2\x3d\x55\x30\x19\x47\x8f\x3c\xb4\x31\x8a\xf1\x46\xdc\xac\x78\x60\x6d\xe5\x87\x2b\xfd\xf5\xc3\x15\x5b\xf9\x21\x0f\xfc\xff\xda\x8d\x64\x29\x18\x77\xc9\x75\x2f\x6f\xb4\x5b\xd3\xcd\xcd\x30\x7d\xf9\x59\x92\x9f\xa4\xed\xd3\x39\xbb\xf7\x69\x71\x2c\xdc\xba\x8c\xb7\x9f\x2d\x07\x35\xa9\x36\x8f\xc9\x46\x91\xe9\xe3\x31\x03\xaa\x9f\xe0\xa3\x7d\xf6\x9d\x2a\x4f\x9d\x93\xb4\x5b\xc3\x8c\x1e\x5d\xbd\xb0\x8f\xf2\x3b\xf3\x78\xbc\xe4\x5e\xc9\x55\x99\x19\x35\x22\x5e\xc9\x78\xad\xc6\xa4\x56\x5e\xbf\x55\x9e\x68\xb7\xb8\x48\xe9\xb5\x1a\x6b\xa4\x65\xeb\x2b\x6d\xd2\xf1\xdd\xdc\x14\x26\x5d\x81\x9c\x13\xd9\x18\x27\x94\x9e\x46\xdf\x5a\x6d\x60\x5e\x18\x4c\xbb\x8f\x64\xa4\x24\x8b\xb7\x2d\xff\xd8\x9c\xdd\x39\x8e\x88\x52\xda\x9b\x8a\x96\xdd\x4c\x3f\xc3\x8c\x5d\x9b\x09\x58\x9e\xa0\xc9\x4f\x6c\xf6\x33\x77\x9e\xbc\x58\x6e\x42\x57\x1d\x45\xb1\xab\x74\x50\x45\x70\x5a\x85\x34\xfa\x71\xf9\x22\xf6\x09\x96\xd9\x95\x7e\x62\xb3\x4f\x32\x16\x85\xcb\x32\x87\x27\x0e\x77\xd5\xd3\x1b\xf9\xe8\xd0\x66\xba\x5e\xa2\x4d\xcf\xad\x0b\xae\xb2\x6b\x1c\x33\x21\xa3\xea\x74\x3f\x8f\xc6\x39\x61\xa4\xda\x6e\x1c\xf6\x61\xd5\x73\x8d\x02\x00\x6b\x6f\xe3\xbb\x0d\x59\x4f\xe7\xdb\x38\x27\x6e\x6d\x27\xac\x3d\xc8\xf5\xa5\xfa\x4f\x2d\xb7\x43\x4e\xe5\x81\x98\xee\x6b\xca\xd3\x4d\x5b\x3e\x37\xd1\x4c\x2d\xbd\x2b\xe7\x1a\xd3\x08\xb3\xb6\x46\x94\xe1\xd9\x21\xee\x46\x1e\xda\xe5\xe4\xa1\xb5\xdb\x6f\x9a\x72\xd1\x4e\x67\x98\x21\x5a\x01\xd1\x0a\x88\x56\x40\xb4\x02\xa2\x15\xea\x16\x5f\x60\xf0\x11\x49\x04\x64\x14\x64\x14\x64\x14\x64\x14\x64\x14\x64\x74\x5a\x64\x14\xb0\x02\xb0\x02\xb0\x02\xb0\xa2\x77\x58\x71\x00\xd0\x1f\x68\xa6\x58\x3b\x11\x6e\x67\x8b\xbd\xd4\xe3\x36\x28\xcc\xb3\xf3\x04\x14\xff\x43\xf1\xbf\xcb\x2c\xfe\x87\x66\x14\x03\xaf\x84\x60\x3e\xfd\x99\x0f\xb2\x4c\x3a\x86\x85\xda\x84\x63\x3c\x6c\x0d\x06\xf5\x19\x3d\xa2\xc1\xe3\x32\x61\xf7\xcc\xa6\x5e\x17\xcc\x4e\xf2\x63\x91\xa3\x55\x1c\xfa\xc1\xe6\x68\x91\xd7\xe6\x0b\x0f\xb9\x27\x62\xed\x7f\xd4\x6b\x67\x92\x48\xc7\x27\x83\x3a\xf3\xf4\x71\x72\xd8\xca\x98\x89\x30\x55\x1a\xae\xf5\x30\xac\xf9\x93\x92\x62\xfa\x28\x12\x61\xd5\xc4\x62\x26\x92\xcd\x58\x22\x35\x99\xbc\x7a\x32\x66\xb7\xef\xde\xab\x63\x63\xee\x10\xc6\x0b\x64\xe8\x69\xa5\x90\x3c\x6f\x8e\x0c\x53\xee\x87\x7a\xc1\x22\xcf\x56\x7e\x2c\xa1\x0d\x03\x19\xd9\xf2\x39\xb3\x7b\x3c\x19\xf0\xd0\x9b\xcb\xd8\xbb\x89\x9e\xbc\x9b\x4d\xe8\x3b\xd2\x15\x37\xff\xf8\x9c\x2c\xd4\x55\x8e\x76\x95\x1b\xe1\x74\x39\x3c\x83\xd2\x22\xc7\xad\xdc\xb5\x55\xec\xde\xb5\x50\xec\x3e\x68\xdf\xdf\x10\x6f\xfe\x5d\xe3\xcd\xeb\x18\xe4\x21\xde\xfd\x34\x75\x6a\xd2\x5b\x46\xa3\x53\xbf\x62\x1d\xd7\x38\xd1\x5f\xfd\x7d\xa2\x52\x27\x07\xe8\x72\xf5\xf5\x4d\xce\xae\xcb\x8d\xa4\xaa\x09\xb4\xb6\xe2\x20\x0f\x56\x6b\x43\x1e\xf9\x05\xe5\x91\x23\x61\x0e\x09\x73\x48\x98\x43\xc2\x1c\x0c\xce\x5d\x6f\xd1\x20\xb3\x53\xce\x63\xb4\x21\xb9\x46\x1f\xb6\x37\xb9\x66\x3c\x76\x5b\xe6\x26\xef\x3c\xa5\x26\x16\xdc\xad\xa8\x61\x6d\x4d\x2c\x75\xea\xe9\xf2\x68\x0a\xaa\x8a\xf8\x8b\xa2\xe3\x96\xea\x13\x77\xd2\x39\x63\xf7\xea\x5f\xfb\xf7\x35\xf7\xc9\x6d\x98\x30\x27\xd8\x24\xa9\x88\xf3\x0d\x48\x87\xd1\xb2\xc0\x7f\x12\x6c\x96\xdd\xeb\x4c\xe9\x99\x56\x37\x9a\xb3\x45\xc0\xc3\x50\x68\x05\x95\xb4\x17\x1e\x68\x85\xe9\xf6\xfd\x31\x2b\x3a\xdd\xe3\x99\xf4\x8a\x4c\x68\x99\x5a\xbe\xb4\xe2\x53\x4f\xca\xee\xb5\xc4\xd4\x5e\x12\x25\x56\x3a\x26\x80\x6c\x93\x88\x98\x22\xbf\x72\x0d\xfb\xb9\x67\x41\xa9\x9b\x99\x2e\xa7\x1f\xf6\x86\x07\x37\x1f\xdb\xb3\x61\x78\x62\x44\x5e\xbe\x97\x90\x73\xc2\x3e\xc6\xa7\xb2\xe7\x3e\xda\x80\xf1\xa1\x30\x71\x04\x03\x8c\x2e\x18\x80\xc2\x8d\x8e\x6a\xc8\x7c\x4d\xe7\xfe\xb0\x7f\xfd\x5e\x8b\xd8\x13\xad\x8e\x4c\xd2\x98\xa7\xc2\xf3\x9d\xeb\xf6\xe7\xa8\xcf\xcf\xe6\x48\xda\x29\xda\xe8\x61\x11\x8f\x53\x9f\xb2\x01\x75\x68\xdc\x91\x3a\x19\xfd\xea\xe0\xbc\xde\x7d\x45\x30\xec\xb1\x72\x16\xe5\x88\x35\x06\x5f\xf8\xc4\x7d\xe1\x97\x13\xc1\x50\xc9\xb3\xb1\x2f\x97\xce\x05\x53\x6b\x4f\x5e\x5f\xe0\xf5\x8e\x75\xe9\x0d\x79\x02\x75\x02\x38\x0f\xe8\xcc\x50\x86\xd7\xfa\x6c\x3a\x82\x9c\xf1\x09\x7b\xfd\x4b\x22\xc3\x85\x4e\xb3\xff\xa2\x56\x40\xf3\xf9\xab\x5d\x17\xf3\x3f\xbe\x19\x52\x68\x45\xfb\x79\xf3\x49\xc6\x0e\xd1\x0a\x4f\xd2\xe0\x4b\xf6\x70\xb5\x52\x7f\x7b\xb8\x62\x77\x25\x69\x52\x14\xbf\x46\x0b\x64\x1b\x99\x17\xf5\x9a\x3b\x34\x00\x94\xa8\x1d\xf8\x8e\x71\x96\x92\x29\x25\xbf\x9b\xb1\xd5\x89\xcc\x91\x90\x51\x20\xe6\x4c\xff\x26\xd5\x67\xb0\x73\x8a\x62\xe9\x6b\x07\x22\xfb\xf9\x63\xc4\xab\x7e\x08\x16\x95\xfe\x02\x16\x55\xe9\x99\xce\x1d\x38\x51\x09\x48\x1f\x8d\x4d\xb5\xe9\xdc\x03\x17\x05\xdc\x39\x56\xe1\x33\x67\x5f\x8c\xca\x87\xa0\x55\xa8\x7c\x97\xa7\xf2\x0d\x48\xb3\x82\x02\x90\x7d\x83\xa0\xd5\x16\x37\x3f\x51\xed\x65\x33\x22\x7f\xf0\x2b\xd6\x3e\xea\x93\x32\xfd\xf6\x34\xb2\xeb\x1c\x40\x9a\xaa\x10\xa1\xeb\x7f\xf3\xdd\x0d\x0f\x8a\x19\xa6\x3c\xab\x03\x53\x12\xc1\xbc\x10\xca\xf4\x63\x16\x04\x35\xa3\x2b\xcd\xf2\xaa\x60\xa5\x32\x4f\x99\xda\xc4\xfc\x30\x49\x05\x2f\x39\x3c\xab\x4a\xd5\xf7\x3a\x2f\xda\x56\x32\xe1\x27\x19\xdf\x05\x41\xa6\x69\x25\x57\x03\x58\x10\x77\x9e\x70\x59\xb9\xa0\x7b\x1c\x83\x94\xca\x7c\xff\x4d\x84\x17\x9e\x0c\x4a\xc3\x78\x39\x19\xa1\x28\xc3\x39\xe1\x32\x9c\xcd\xb8\xaa\xa9\x04\xe7\xf1\xed\x63\xdb\xa1\x38\x14\xde\x44\xe1\x4d\x14\xde\x44\xe1\xcd\xa9\x15\xde\x6c\x5e\x79\x6b\x8b\x6e\xf6\x1c\xf8\x70\xb2\x52\x9b\xcd\x8f\xbf\xbb\xcc\xe6\x90\x65\x70\x48\x71\xcd\x66\x19\xec\x2e\xac\xd9\xb3\x0c\x50\x4e\x13\xe5\x34\x51\x4e\x13\xe5\x34\x51\x4e\xb3\xb7\x72\x9a\x2d\x56\xff\xad\x52\x9a\x7b\x33\x26\x2f\x28\xee\xb1\xdd\xd3\x4c\xb8\x1c\x68\xb3\xb8\xf7\x95\x02\x3d\xad\xdc\x51\x00\xb4\x97\x11\xdd\x2e\xfe\xd9\xf3\xb0\x9e\xb5\xe4\x67\xb3\x78\xf6\x94\xfb\xec\x7b\xd9\x1c\x6a\x91\xcf\x66\xa1\xd5\x00\x8d\xa3\xfd\x79\xe6\xd3\x9f\x87\x43\xb3\x56\x05\x53\xc0\xd2\xf6\x84\x27\xfd\x5a\xc1\x11\xa0\x68\xa0\x68\x0c\x14\x4d\x1f\x06\x8a\x06\x8a\x06\x8a\x06\x8a\x06\x8a\x06\x8a\x06\x8a\x06\x8a\x36\x6c\x82\x04\x8a\x06\x8a\x06\x8a\x06\x8a\x06\x8a\x06\x8a\x06\x8a\x36\x46\x8a\x86\xb2\x29\xc0\x87\xc0\x87\xc0\x87\x83\x1e\x51\xe0\xc3\xb2\x78\x80\x0f\xa7\x8d\x0f\x6b\xfa\x2d\xf4\x44\x11\x8b\xe8\x30\xb4\x2a\x90\x5c\xb1\x27\x3f\x74\x7b\x40\x88\x6f\x73\xb3\x87\x4c\x3b\xa3\x22\x2b\xcb\x29\xb7\xe7\x66\x25\x3f\x40\xe1\xda\x5d\x01\x48\xc0\x47\xc0\xc7\x91\xc1\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\x47\x80\xc7\xf1\x81\x47\xb4\xa0\x00\x4b\x05\x4b\x1d\x3a\x79\x03\x4b\x05\x4b\x05\x4b\x05\x4b\xad\x08\xed\x44\x2c\x55\x3b\xfb\x2d\x48\x3d\x0a\x87\x9e\xa5\x36\x71\x65\x9c\x3d\xea\xa4\xbb\x92\xf1\x3a\x9b\xd7\x9c\x69\x2c\xb3\x1b\x68\x7a\x22\x25\xf8\x95\xdc\x2d\x3e\xff\xab\x7a\x2c\x2a\x31\x1f\x08\x13\x33\x21\x8e\x1c\x25\xea\x37\xa2\x70\xfc\xab\xe2\x6f\xee\x7b\x7b\xbe\xdd\x8e\xfb\x05\x2a\x59\xfa\x7a\x4d\x6c\xf3\xf6\xfc\xfb\xf6\x6e\xf1\xf9\xf7\xba\x33\xf0\x0e\x1d\xfe\x0e\x59\x41\x52\x0a\xf7\x24\x5e\xa5\xff\xf3\xed\xf6\xc8\xb7\xc9\xbc\x8a\x7d\xc6\xe8\x68\x1f\x70\x6c\xbc\x48\xd6\xc9\x90\x85\xe7\x50\x6c\xc4\xee\x77\x40\x9d\x6d\x5f\x02\xfa\x17\xa5\xac\xab\xf2\x1e\xcc\x6b\x37\x37\xd3\xeb\xdb\xed\x9c\x86\x6a\xaa\x2f\x58\x73\xb8\x4b\x57\x69\xf6\xa5\xf7\x75\x47\xa8\x4b\xe5\x05\xaa\x86\xb8\x20\xba\x05\xd1\x2d\x88\x6e\x41\x74\x0b\xa2\x5b\x10\xdd\x82\xe8\x16\x44\xb7\x1c\xb2\xda\x22\xba\x05\xd1\x2d\x88\x6e\x41\x74\x0b\xa2\x5b\x10\xdd\x82\xe8\x96\x8b\x8b\x6e\x41\x44\x04\x22\x22\x10\x11\x31\x8e\x11\x45\x44\x44\x59\x3c\x88\x88\x18\x4b\x44\xc4\xb7\xdb\x9d\xf9\xe4\x5b\x70\x4a\x6b\x3a\xdd\xf2\x29\x7d\x4d\xe6\xc8\x40\x19\x56\x66\x82\x36\x61\x29\x7d\x92\x05\x53\x1f\xb2\x73\x0b\xc9\xda\xd5\x2b\xf4\xdb\xc4\xbe\x17\x58\xfa\x91\x9e\xf2\x37\x12\x55\xd2\x49\xbb\x7a\xf8\x6f\xe1\xbf\x85\xff\x16\xfe\xdb\xa9\xf9\x6f\xf7\xec\xae\x4d\x3e\xdc\xfd\x9a\xda\xfe\x5d\xf6\xa0\xb5\xf7\x3f\x4a\x70\xc6\x72\x7d\x4b\xad\x17\x1c\x35\xa3\xf4\x3c\x28\x3d\x5b\x91\x95\x2e\x05\x8b\x94\xb4\x12\x65\xe4\xb1\xbb\x90\xf9\xa1\x5e\x59\x64\xcc\x36\x61\xb6\x38\xb9\xcc\x8d\x9f\x7f\xdf\x84\xcc\xf5\x63\xb5\x15\x7e\x13\xd9\x8c\x57\xcb\x27\xf9\x19\xcc\x2b\x6f\xe7\x86\x11\x30\x5b\x6d\x62\x7a\xcb\xa2\x58\x3a\x22\x21\x87\x80\x51\x11\xcd\x2c\x9b\xb3\x7f\xd3\x2f\xd2\x68\xd1\xdc\xf9\x91\x5d\xb3\xbb\x20\xf8\x91\xcc\x7d\x57\xad\xd2\x9b\x50\x0d\xbc\x52\xb6\xec\x94\x34\x97\x13\xee\x11\x03\xa5\x9f\xe5\x3c\xc3\x74\x32\xa7\x7b\x3b\x51\xec\x76\xbc\x9f\x4c\x22\x7f\x14\xad\x07\x5f\x59\xee\xa4\xd4\xb3\xa5\x58\xe9\xe8\x80\xcc\x41\x93\xab\x12\x66\xf5\xa2\xa9\xb3\x11\x7a\x73\x58\x2a\xbd\x39\xbc\x0e\x85\xc7\x69\x82\x1a\xfd\x5f\x99\x2a\x76\x07\xd5\xce\xda\xec\xd5\x30\xba\xa1\xbf\x5e\x0b\xd7\xe7\xa9\x08\x9e\x73\x6c\x9f\x6f\xb9\x7e\xf0\xd6\xe8\xf7\x24\x74\xe6\xc5\xdc\xa1\xb7\xc6\x97\x6e\xa6\x10\xe4\x9b\x36\xc5\x44\xd8\x59\xba\x49\xd4\x4d\x16\x87\x8b\xab\x33\xed\x03\x99\x1f\x59\xe9\x35\xd0\x5e\x62\xae\xef\x73\x2d\x78\x58\x7b\x8f\x47\x0c\x33\xdd\xf3\x82\x6e\xb9\xce\x66\x6a\xb0\x9a\x86\x32\xfd\x0f\xe1\x2d\xed\xe4\xb2\x9b\xb9\x9c\x6c\xfa\x83\xbe\x80\xbe\x80\xbe\x80\xbe\x80\xbe\xf4\x46\x5f\x5a\xee\x05\x5b\x04\xe6\x74\xdb\xe2\xc7\x42\xdd\xc2\x28\x10\x3c\x11\xd9\x12\xb4\x88\x65\xc4\x3d\xd2\x8e\x16\x32\xf0\x9d\xe7\x52\xac\x9f\x9d\x74\x79\xe1\x43\x35\xed\x6e\xe7\xff\x9c\xb3\xaf\x7a\x3d\xd3\xaa\x4b\x24\x42\xf5\xb2\xe4\x7b\xaa\x60\x32\x8e\x1e\x79\x68\x63\x0f\xe3\x8d\xb8\x59\xf1\xc0\xda\xca\x0f\x57\xfa\xeb\x87\x2b\xb6\xf2\x43\x1e\xf8\xff\xb5\x1b\xc9\x52\x30\xee\x92\x4b\x5e\xde\x68\x77\xa5\x9b\x9b\x61\xfa\xf2\xb3\x24\x3f\x49\xdb\xa7\x73\x76\xef\xd3\xe2\x58\xb8\x75\x19\x6f\x3f\x5b\x0e\x60\x52\x6d\x1e\x93\x8d\x22\xd3\xc7\x63\x06\x54\x3f\xc1\x47\xfb\xec\x3b\x55\x9e\x3a\xe7\x67\xb7\x86\x19\x3d\xba\x7a\x61\x1f\xe5\x77\xe6\xf1\x78\xc9\xbd\x92\x4b\x32\x33\x6a\x44\xbc\x92\xf1\x5a\x8d\x49\xad\xbc\x7e\xab\x3c\xd1\x6e\x71\x91\xd2\x6b\x35\xd6\x48\xcb\xd6\x57\xda\xa4\xe3\xbb\xb9\x29\x4c\xba\x02\x39\x27\xb2\x31\x4e\x28\x11\x8c\xbe\xb5\xda\xc0\xbc\x30\x98\x76\x1f\xc9\x08\x48\x16\x47\x5b\xfe\xb1\x39\xbb\x73\x1c\x11\xa5\xb4\x37\x15\x2d\xbb\x99\x7e\x86\x19\xbb\x36\x13\xb0\x3c\x41\x93\x9f\xd8\xec\x67\xee\x3c\x79\xb1\xdc\x84\xae\x3a\x8a\x62\x52\xe9\xa0\x8a\xe0\xb4\x0a\x69\xf4\xe3\xf2\x45\xec\x13\x2c\xb3\x2b\xfd\xc4\x66\x9f\x64\x2c\x0a\x97\x65\x0e\x4f\x1c\xee\xaa\xa7\x37\xf2\xd1\x21\xcb\x74\xbd\x44\x9b\x9e\x5b\x17\x5c\x65\xd7\x38\x66\x42\x46\xd5\xe9\x7e\x1e\x8d\x73\xc2\xa8\xb4\xdd\x38\xec\xc3\xa5\xe7\x1a\x05\x80\xd3\xde\xc6\x77\x1b\x9e\x9e\xce\xb7\x71\x4e\x8c\xda\x4e\x58\x7b\x50\xea\x4b\xf5\x9f\x5a\x3e\x87\x9c\xc6\x03\x31\xdd\xd7\x94\xa7\x9b\xb6\x7c\x6e\x62\x99\x56\x7a\x37\xce\x35\xa5\x11\x64\x5d\x0d\x38\xc3\xb2\x03\x7c\x8d\x7c\xb1\xcb\xc9\x17\x6b\xb7\x7f\x34\xe5\x8c\x9d\xce\xd0\x42\xf4\x01\xa2\x0f\x10\x7d\x80\xe8\x03\x44\x1f\xd4\x2d\xbe\xc0\xda\x23\x92\x08\x48\x27\x48\x27\x48\x27\x48\x27\x48\x27\x48\xe7\xb4\x48\x27\xe0\x03\xe0\x03\xe0\x03\xe0\x43\xef\xf0\xe1\x00\x40\x3f\xd0\x8c\xae\x76\x22\xdc\xce\xea\x7a\xa9\xc7\x6d\x50\xd8\x66\xe7\x09\x28\xbe\x77\x99\x48\x68\xba\xc5\xf7\xd0\x9b\x61\xe0\x95\x08\xcc\xa7\x3f\xf3\x41\x96\x49\xc7\xb0\x4f\x9b\x66\x8c\x87\x8d\x60\x4f\x1f\xd9\x21\xda\x3b\x2e\x33\x75\xcf\xac\xe9\x74\xc1\xeb\x24\x3f\x15\x39\x52\xc5\xa1\x1e\x6c\x8e\x14\x79\x59\xbe\xf0\x90\x7b\x22\xd6\xfe\x42\xbd\x26\x26\x89\x74\x7c\x32\x80\x33\xcf\x1c\x27\x07\xab\x8c\x99\x08\x53\xa5\x91\x5a\x8f\xc0\x9a\x3f\x29\x29\xa6\x8f\x22\x11\x56\xad\x2b\x66\x02\xd9\x8c\x21\x52\x6b\xc9\x0b\x27\x63\x76\xfb\xee\xbd\x3a\x36\xe6\x0e\x61\xb7\x40\x86\x9e\x56\xe2\xc8\x53\xe6\xc8\x30\xe5\x7e\xa8\x17\x22\xf2\x44\xe5\xc7\x12\x8a\x30\x50\x90\x2d\x9f\x33\x3b\xc5\x93\x01\x0f\xbd\xb9\x8c\xbd\x9b\xe8\xc9\xbb\xd9\x84\xbe\x23\x5d\x71\xf3\x8f\xcf\xc9\x42\x5d\xe5\x68\xd7\xb6\x11\x4e\x97\xc3\x33\x28\xad\x6f\x5c\xca\x58\x5b\x45\xec\x5d\x0b\x45\xec\x83\xf6\xcd\x0d\xe1\x66\xdf\x35\xde\xac\x8e\xf1\x1d\xc2\xdd\x4e\x4b\xc7\x25\xbd\x62\xb0\x3a\xee\x2b\xf6\xc2\x9a\x1f\xfa\x4f\x7f\x9f\xa8\xf4\x47\x0b\x5d\xaa\x5c\xef\x03\x55\x3e\xa0\x45\x4d\x40\x8b\x42\x5e\xf5\x05\xe5\x55\x23\x81\x0c\x09\x64\x48\x20\x43\x02\x19\x0c\xc0\x5d\x6f\xd1\x20\xb3\x35\xce\x63\x64\x21\xd9\x64\x4f\xb2\xc9\x70\xed\xae\xcc\xed\xdc\x79\x8a\x49\x2c\xb8\x5b\x51\xb7\x9a\x4c\x26\x75\x4a\x7f\x79\x25\x05\xd5\x43\xfc\x45\xd1\x62\x4b\xf5\x89\x3b\xe9\x9c\xb1\x7b\xf5\xaf\xfd\xfb\x9a\xfb\xe4\x96\x4b\x98\x13\x6c\x92\x54\xc4\xf9\x86\xa2\xc3\x4a\x59\xe0\x3f\x09\x36\xcb\xee\x71\xa6\xf4\x46\xab\xeb\xcc\xd9\x22\xe0\x61\x28\xb4\xc2\x49\xda\x08\x0f\xb4\x02\x74\xfb\xfe\x98\x15\x9a\xee\xf1\x4c\x7a\x42\x26\xb4\x4c\xcd\x5e\x5a\xf1\xa9\x27\x65\xf7\x5a\x62\x6a\x6f\x88\x12\x2b\x1d\x13\x50\xb5\x49\x44\x4c\x91\x50\xb9\xc6\xfc\xdc\xb3\xa0\xd4\xcd\x4c\x97\x5b\x0f\x7b\x03\x83\x9b\xed\x4a\x77\xe0\x1c\xc1\x6a\x7f\x04\x49\x26\x5c\x62\x7c\x1f\x35\x3f\xdd\x06\x10\x0f\x85\x0d\x03\x8a\x8f\x0e\x8a\x53\x38\xcd\x51\x8d\x7b\xaf\xe9\xdc\x1f\xf6\xaf\xc7\x6b\x11\x7b\xa2\xd5\x91\x49\x1a\xf3\x54\x78\xbe\x73\xdd\xfe\x1c\xf5\xf9\xd9\x1c\x49\x2b\x7f\x1b\xfd\x29\xe2\x71\xea\x53\xb6\x9b\x0e\xfd\x3a\x50\x97\xa2\x5f\x3b\xbb\xf7\xb9\x2f\x92\xbf\xc7\xda\x58\x94\x23\xaf\x18\x7c\xd2\x13\xf7\x49\x5f\x0e\xd9\xaf\xe4\x8b\xd8\x97\x4b\xe7\x34\xa9\x35\x26\xcf\x93\x7f\xbd\x63\xfd\x79\x43\x1e\x39\x9d\xc8\xcc\x03\x3a\x33\x94\xe1\xb5\x3e\x9b\x8e\x20\xa7\x78\xc2\x5e\xff\x92\xc8\x70\xa1\xd3\xc5\xbf\xa8\x95\xce\x7c\xfe\x6a\xd7\xbf\xfc\x8f\x6f\x86\x14\x72\xd0\x7e\xde\x7c\x92\xb1\x43\xd4\xc0\x93\x34\xf8\x92\x3d\x5c\xad\xd4\xdf\x1e\xae\xd8\x5d\x49\x9a\x14\x8d\xae\x5d\xfc\x64\xd3\x98\x17\xf5\x9a\x3b\x34\x00\x94\x70\x1c\xf8\x8e\x71\x5a\x92\x09\x24\xbf\x9b\xb1\xd5\x09\xb9\x91\x90\x51\x20\xe6\x4c\xff\x26\xd5\x19\xb0\x73\x8a\x62\xc2\x6b\x07\x22\xfb\xf9\x63\xc4\xab\x7e\x08\x96\x90\xfe\x02\x96\xd0\x59\x02\x0e\x2a\x01\xd4\x83\xb5\x85\x36\x9d\x7b\xbe\xa2\x80\x3b\x87\x2a\x6c\xe6\xac\xc9\xaa\x6c\x08\xbe\x84\x8a\x36\x7d\x15\x6d\x40\x9a\x10\x36\xec\xec\x1b\x04\x5f\x4e\x4f\xbb\xd8\x0c\xd8\xcf\xfa\x8a\x35\x47\x33\x52\x86\x58\x4d\xc3\xb2\xce\x41\x9c\xa9\x22\x10\xba\xfe\x37\xdf\xdd\xf0\xa0\x98\x91\xc8\xb3\xba\x21\xf4\x94\xf3\x42\xc8\xce\x8f\x59\xb0\xcf\x8c\xae\x30\xcb\xab\x47\x95\xca\x01\x65\x6a\x0c\xf3\xc3\x24\x15\xbc\xe4\x38\xac\x2a\x39\xdf\x8b\x5e\xa9\x2c\xe9\xec\x93\x8c\xef\x82\x20\xd3\x78\x92\xab\x01\x2c\x58\x3b\x4f\xb8\xac\x1c\xc1\x3d\x8e\xb6\xff\x64\x63\x79\x99\x2b\x10\x0d\xdf\x74\x33\x07\x51\x86\x71\xc2\x65\x18\x9b\x71\x4e\x53\x09\xc6\xe3\xdb\x7c\xb6\x43\x55\x28\xbc\x88\xc2\x8b\x28\xbc\x88\xc2\x8b\x53\x2b\xbc\xd8\xbc\xf2\xd6\x16\x5d\xec\x39\x30\xe0\x64\xa5\x16\x9b\x1f\x7f\x77\x99\xc5\x21\xcb\xe0\x90\xe2\x8a\xcd\x32\xd8\x5d\x58\xb1\x67\x19\xa0\x9c\x22\xca\x29\xa2\x9c\x22\xca\x29\xa2\x9c\x62\x6f\xe5\x14\x5b\xac\xfe\x5b\xa5\x14\xf7\x66\xfc\x5d\x50\x5c\x60\xbb\xa7\x99\x70\x39\xc8\x66\x71\xef\x2b\x05\x79\x5a\xb9\xa3\x00\x64\x2f\x23\xba\x5d\xfc\xb1\xe7\x61\x3d\x6b\xc9\xc7\x66\xf1\xec\x29\xf7\xd8\xf7\xb2\x39\xd4\x22\x8f\xcd\x42\xab\x01\x17\x47\xfb\xf3\xcc\xa7\x3f\xdb\x43\xaf\xbd\x85\x3c\x2e\x93\x85\x55\xc2\x7d\x7e\xad\x60\x05\x50\x30\x50\x30\x06\x0a\x06\x0a\x06\x0a\x06\x0a\x06\x0a\x06\x0a\x06\x0a\x06\x0a\x06\x0a\x36\x24\x02\x04\x0a\x06\x0a\x06\x0a\x06\x0a\x06\x0a\x06\x0a\x06\x0a\x36\x46\x0a\x86\xb2\x20\xc0\x7f\xc0\x7f\xc0\x7f\x83\x1e\x51\xe0\xbf\xb2\x78\x80\xff\xa6\x85\xff\x6a\xea\xf8\xf7\x44\x01\x8b\xe8\x2f\xb4\x2a\x8f\x5c\xb1\x27\x3f\x74\x3b\x44\x80\x6f\x73\xf3\x86\x4c\x38\xa3\x0a\x2b\x0b\x29\xb7\xdb\x66\x25\x7b\xbf\x70\xed\x63\x01\x22\xe0\x21\xe0\xe1\x48\xe0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\xe1\xf0\xc1\x21\x5a\x23\x80\x81\x82\x81\x0e\x95\x98\x81\x81\x82\x81\x82\x81\x82\x81\x56\x84\x76\x26\x06\xba\x14\x29\xbf\xbd\x39\x0a\x6f\x9e\xa5\x46\x6f\x65\xbc\x3d\x91\x96\x0d\x15\x3d\xb4\x7b\x28\xa5\x27\x52\xcb\x28\xe9\xd9\xef\x16\x9f\x7f\xaf\x3b\x0d\x95\x89\x0f\x84\x87\x05\x41\x52\xba\xe8\x54\x08\x22\xcd\x92\xc2\x79\xaf\x8a\xbf\xdd\xe6\xe5\x3a\x41\x1e\xb1\xf6\x68\xc5\xc6\x26\xb6\x26\x53\x29\x78\x60\xcf\x2b\xa1\xce\x2e\xbd\x13\xf4\x1f\x54\xc1\xad\x0a\x7d\x30\x6f\x61\x5e\x72\x9b\x86\x6b\x9e\xe7\x68\x4f\xf5\xa5\x6b\x66\xf7\x03\xca\xf9\xad\xdc\x3c\xf8\x3d\xf8\x3d\xf8\x3d\xf8\x3d\xf8\x3d\xf8\x3d\xf8\x3d\xf8\x7d\xf3\x6a\x0b\x7e\x0f\x7e\x0f\x7e\x0f\x7e\x0f\x7e\x0f\x7e\x0f\x7e\x7f\x71\xfc\x1e\xec\x17\xec\x17\xec\x77\x1c\x23\x0a\xf6\x5b\x16\x0f\xd8\xef\xd8\xd8\x6f\xeb\xea\xb7\x5a\xdd\xe9\x16\x5c\xe9\x6b\x32\x47\x06\xca\xba\x32\xb3\xb4\x89\x57\xe9\x93\x4a\xc4\xea\x43\x76\x81\xb3\x35\xaa\xee\x05\xaa\x7e\xa4\x47\xfd\x8d\xe4\x95\x74\xd2\xa2\x1a\x9e\x5c\x78\x72\xe1\xc9\x85\x27\x77\x6a\x9e\xdc\x76\xcd\xcd\x6b\xbd\xb9\x27\xeb\x3b\xff\x1f\x25\x38\x63\xc3\xbe\xa5\xb2\xef\x8e\x9a\x51\x7a\x1e\x94\x9e\xad\x48\x4d\x97\x82\x45\x4a\x5a\x89\x32\xf7\xd8\x5d\xc8\xfc\x50\xaf\x2c\x32\x66\x9b\x30\x5b\x9c\x5c\xa6\x5b\xea\x33\xd7\x8f\xd5\x56\xf8\x4d\x64\x33\x5e\x2d\x9f\xe4\x71\x30\xaf\xbc\x9d\x1b\x46\xc0\x6c\xb5\x89\xe9\x2d\x33\xfd\xfc\xd5\xab\x60\x94\x45\x33\xcb\xe6\xec\xdf\xf4\x8b\x34\x5a\x34\x77\x7e\x64\xd7\xec\x2e\x08\x7e\x24\xc3\xdf\x55\xab\xf4\x26\x54\x03\xaf\xd4\x2e\x3b\x25\xcd\xe5\xb6\x9b\x8d\xb7\x18\x28\xfd\x2c\xe7\x19\xa6\x93\xb9\xdf\x0f\x68\xc8\x5f\xeb\x7e\x3e\x99\x44\xfe\x28\xda\x11\xbe\xb2\xe1\x49\xbd\x67\x4b\xb1\xd2\x71\x02\x99\xab\x26\x57\x25\xcc\xea\x45\x53\x67\x23\xf4\xe6\xb0\x54\x1a\x74\x78\x1d\x0a\x8f\xd3\x04\x35\x96\x80\x32\x5a\xec\x0e\xaa\xdd\xb6\xd9\xab\x61\x14\x44\x7f\xbd\x16\xae\xcf\x53\x11\x3c\xe7\x00\x3f\xdf\x72\xfd\xe0\xad\xd1\xf4\x49\xe8\xcc\x8b\xb9\x43\x6f\x8d\x2f\xdd\x4c\x21\xc8\x37\x6d\x8a\x8e\xb0\xb3\x74\x93\xa8\x9b\x2c\x0e\x17\x57\x67\xda\x07\x32\x3f\xb2\xd2\x6b\xa0\xbd\xc4\x5c\xdf\xe7\x5a\xf0\xb0\xf6\x1e\x8f\x18\x66\xba\xe7\x05\xdd\x72\x9d\xf5\xd4\x60\x3f\x0d\x65\xfa\x1f\x42\x5e\xda\xc9\x65\x37\x7d\x39\xd9\xf4\x07\x87\x01\x87\x01\x87\x01\x87\x01\x87\xe9\x8d\xc3\xb4\xdc\x0b\xb6\x58\xcc\xe9\xb6\xc5\x8f\x85\xda\x6b\x51\x20\x78\x22\xb2\x25\x68\x11\xcb\x88\x7b\xa4\x1d\x2d\x64\xe0\x3b\xcf\xa5\xa8\x3f\x3b\xe9\xf2\xe2\x6d\x6a\xda\xdd\xce\xff\x39\x67\x5f\xf5\x7a\xa6\x55\x97\x48\x84\xea\x65\xc9\xf7\x54\xc1\x64\x1c\x3d\xf2\xd0\x46\x21\xc6\x1b\x71\xb3\xe2\x81\xb5\x95\x1f\xae\xf4\xd7\x0f\x57\x6c\xe5\x87\x3c\xf0\xff\x6b\x37\x92\xa5\x60\xdc\x25\xe7\xbc\xbc\xd1\x8e\x4b\x37\x37\xc3\xf4\xe5\x67\x49\x7e\x92\xb6\x4f\xe7\xec\xde\xa7\xc5\xb1\x70\xeb\x32\xde\x7e\xb6\x1c\xc5\xa4\xda\x3c\x26\x1b\x45\xa6\x8f\xc7\x0c\xa8\x7e\x82\x8f\xf6\xd9\x77\xaa\x3c\x75\x6e\xd0\x6e\x0d\x33\x7a\x74\xf5\xc2\x3e\xca\xef\xcc\xe3\xf1\x92\x7b\x25\xbf\x64\x66\xd4\x88\x78\x25\xe3\xb5\x1a\x93\x5a\x79\xfd\x56\x79\xa2\xdd\xe2\x22\xa5\xd7\x6a\xac\x91\x96\xad\xaf\xb4\x49\xc7\x77\x73\x53\x98\x74\x05\x72\x4e\x64\x63\xac\x36\x6b\xb3\x93\x5a\x6d\x60\x5e\x18\x4c\xbb\x8f\x64\x2c\x24\x8b\xa8\x2d\xff\xd8\x9c\xdd\x39\x8e\x88\x52\xda\x9b\x8a\x96\xdd\x4c\x3f\xc3\x8c\x5d\x9b\x09\x58\x9e\xa0\xc9\x4f\x6c\xf6\x33\x77\x9e\xbc\x58\x6e\x42\x57\x1d\x45\xd1\xa9\x74\x50\x45\x70\x5a\x85\x34\xfa\x71\xf9\x22\xf6\x09\x96\xd9\x95\x7e\x62\xb3\x4f\x32\x16\x85\xcb\x32\x87\x27\x0e\x77\xd5\xd3\x1b\xf9\xe8\xe0\x65\xba\x5e\xa2\x4d\xcf\xad\x0b\xae\xb2\x6b\x1c\x33\x21\xa3\xea\x74\x3f\x8f\xc6\x39\x61\x68\xda\x6e\x1c\xf6\x81\xd3\x73\x8d\x02\x10\x6a\x6f\xe3\xbb\x8d\x51\x4f\xe7\xdb\x38\x27\x50\x6d\x27\xac\x3d\x50\xf5\xa5\xfa\x4f\x2d\xa4\x43\xee\xe3\x81\x98\xee\x6b\xca\xd3\x4d\x5b\x3e\x37\xc5\xec\x2b\xbd\x25\xe7\xea\xd2\x58\x32\xb1\x86\x9e\x89\xd9\x01\xcd\x46\x22\xd9\xe5\x24\x92\xb5\xdb\x4e\x9a\x92\xc9\x4e\x67\x77\x21\x18\x01\xc1\x08\x08\x46\x40\x30\x02\x82\x11\xea\x16\x5f\x50\xee\x11\x49\x04\xe0\x13\xe0\x13\xe0\x13\xe0\x13\xe0\x13\xe0\x73\x5a\xe0\x13\x2c\x02\x2c\x02\x2c\x02\x2c\xa2\x77\x16\x71\x00\xaf\x1f\x68\xaa\x57\x3b\x11\x6e\xa7\x7b\xbd\xd4\xe3\x36\x28\x8a\xb3\xf3\x04\x14\xe9\x43\x91\xbe\x49\x17\xe9\x43\xb5\xfa\x81\x57\x2c\x30\x9f\xfe\xcc\x07\x59\x26\x1d\x03\x40\x6d\xa9\x31\x1e\x36\xc2\x3e\x7d\x64\xd7\xb8\xef\xb8\xe4\xd5\x3d\x53\xa7\xfb\x45\xb0\x93\x3c\x56\xe4\x52\x15\xc7\x7b\xb0\xb9\x54\xe4\x7e\xf9\xc2\x43\xee\x89\x58\x3b\x12\xf5\xea\x98\x24\xd2\xf1\xc9\x32\xce\x5c\x76\x9c\x3c\xaf\x32\x66\x22\x4c\x95\xaa\x6a\x5d\x05\x6b\xfe\xa4\xa4\x98\x3e\x8a\x44\x58\x7d\xaf\x98\x31\x64\x33\x8b\x48\xdf\x25\xf7\x9c\x8c\xd9\xed\xbb\xf7\xea\xd8\x98\x3b\xc4\xe3\x02\x19\x7a\x5a\xbb\x23\x17\x9a\x23\xc3\x94\xfb\xa1\x5e\x92\xc8\x45\x95\x1f\x4b\x8c\xc2\xd0\x42\xb6\x7c\xce\x0c\x18\x4f\x06\x3c\xf4\xe6\x32\xf6\x6e\xa2\x27\xef\x66\x13\xfa\x8e\x74\xc5\xcd\x3f\x3e\x27\x0b\x75\x95\xa3\x7d\xde\x46\x38\x5d\x0e\xcf\xa0\xd4\xc1\x11\x6a\x69\x6d\x35\xb4\x77\x2d\x34\xb4\x0f\xda\x73\x37\x98\x3b\x7e\xd7\x78\xc7\x3a\x2a\x78\x30\xb7\x3c\x41\x35\x98\xb4\x8e\x61\xab\xc1\xaf\x58\x17\xe5\x43\x6a\xba\xe7\xf7\x58\x45\xa4\x85\xce\x55\x53\x3a\x04\x05\x43\xa0\x68\x4d\x40\xd1\x42\x8a\xf6\x05\xa5\x68\x23\x17\x0d\xb9\x68\xc8\x45\x43\x2e\x1a\x6c\xc4\x5d\x6f\xd1\x20\x13\x3f\xce\x63\x7d\x21\x6f\xa5\x29\x6f\x65\xe0\xb6\x58\xe6\xad\xee\x3c\x5b\x25\x16\xdc\xad\x28\x5e\x4d\x16\x94\x3a\xa5\xe7\x14\x95\x82\x26\x22\xfe\xa2\xc0\xb3\xa5\xfa\xc4\x9d\x74\xce\xd8\xbd\xfa\xd7\xfe\x7d\xcd\x7d\x72\xe4\x25\xcc\x09\x36\x49\x2a\xe2\x7c\x7f\xd1\x11\xaa\x2c\xf0\x9f\x04\x9b\x65\xf7\x38\x53\x6a\xa4\x55\x7d\xe6\x6c\x11\xf0\x30\x14\x5a\xff\x24\xe5\x84\x07\x5a\x1f\xba\x7d\x7f\xcc\x82\x4d\xf7\x78\x26\xb5\x21\x13\x5a\xa6\x75\x2f\xad\xf8\xd4\x93\xb2\x7b\x2d\x31\xb5\x55\x44\x89\x95\x8e\x89\xcd\xda\x24\x22\xa6\xa0\xaa\x5c\x81\x7e\xee\x59\x50\xea\x66\xa6\x8b\xc0\x87\xbd\x9f\xc1\x1d\x57\xde\x04\x3c\x31\x74\x6f\xdc\x4b\xa0\x34\xba\xc1\x83\xaf\x9f\x8f\xaf\x53\xa0\xce\x51\xed\x84\xaf\xe9\xdc\x1f\xf6\x2f\xcf\x6b\x11\x7b\xa2\xd5\x91\x49\x1a\xf3\x54\x78\xbe\x73\xdd\xfe\x1c\xf5\xf9\xd9\x1c\x49\x1b\x41\x1b\x9d\x2a\xe2\x71\xea\x53\x1e\x9d\x0e\x2a\x3b\x50\xbf\xa2\x5f\x1b\x86\x83\xba\xaf\xa0\x80\x3d\x06\xc9\xa2\x1c\xd8\xc5\xe0\xb6\x9e\xb8\xdb\xfa\x72\xe2\x03\x2a\xe9\x28\xf6\xe5\xd2\x29\x53\x6a\xa1\xc9\xd3\xf0\x5f\xef\x58\x84\xde\x90\xd3\x4e\xe7\x49\xf3\x80\xce\x0c\x65\x78\xad\xcf\xa6\x23\xc8\x6f\x9e\xb0\xd7\xbf\x24\x32\x5c\xe8\x6c\xf4\x2f\x6a\xb9\x33\x9f\xbf\xda\x45\x30\xff\xe3\x9b\x21\x05\x2e\xb4\x9f\x37\x9f\x64\xec\x10\x58\xf0\x24\x0d\xbe\x64\x0f\x57\x2b\xf5\xb7\x87\x2b\x76\x57\x92\x26\x05\xbb\x6b\x0a\x40\x76\x8e\x79\x51\xaf\xb9\x43\x03\x40\xf9\xcc\x81\xef\x18\xbf\x26\x99\x45\xf2\xbb\x19\x5b\x9d\xef\x1b\x09\x19\x05\x62\xce\xf4\x6f\x52\x19\x03\x3b\xa7\x28\xe4\xbc\x76\x20\xb2\x9f\x3f\x46\xbc\xea\x87\x60\x1d\xe9\x2f\x60\x1d\x9d\x39\x58\xa1\x12\xa9\x3d\x6c\xfb\x68\xd3\xb9\x87\x2c\x0a\xb8\x73\xa8\x12\x67\xce\x9a\xb6\x1a\x87\xd8\x4e\xe8\x6e\x17\xa2\xbb\x0d\x48\x45\xc2\x4e\x9e\x7d\x83\xd8\xce\xc9\xeb\x1e\x9b\xa1\x7b\x66\x5f\xb1\x96\x71\x92\x94\xb2\x56\xd3\x55\xad\x73\xa6\x67\xca\x1a\x84\xae\xff\xcd\x77\x37\x3c\x28\xa6\x48\xf2\xac\x90\x09\x3d\xef\xbc\x10\x07\xf4\x63\x16\x41\x34\xa3\x2b\xcc\xf2\x72\x56\xa5\xfa\x44\x99\xa6\xc3\xfc\x30\x49\x05\x2f\xf9\x1b\xab\x7a\xd0\xf7\x2d\x67\x56\x96\x05\xf7\x49\xc6\x77\x41\x90\x29\x45\xc9\xd5\x00\x96\xb3\x9d\x27\x5c\x56\xe6\xe2\x1e\xff\xdc\x7f\xb2\x01\xbd\xe0\x55\x89\xc6\x70\xe2\xa9\x8c\x28\x13\x39\xe1\x32\x91\xcd\x50\xa8\xa9\x44\xe4\xf1\xfd\x49\xdb\x01\x2f\x14\x86\x44\x61\x48\x14\x86\x44\x61\xc8\xa9\x15\x86\x6c\x5e\x79\x6b\x8b\x42\xf6\x1c\x5e\x70\xb2\x52\x90\xcd\x8f\xbf\xbb\x0c\xe4\x90\x65\x70\x48\xf1\xc7\x66\x19\xec\x2e\xfc\xd8\xb3\x0c\x50\xee\x11\xe5\x1e\x51\xee\x11\xe5\x1e\x51\xee\xb1\xb7\x72\x8f\x2d\x56\xff\xad\x52\x8f\x7b\xb3\x0a\x2f\x28\xba\xb0\xdd\xd3\x4c\xb8\x5c\x65\xb3\xb8\xf7\x95\xaa\x3c\xad\xdc\x51\xa0\xb2\x97\x11\xdd\x2e\x4e\xd9\xf3\xb0\x9e\xb5\x24\x65\xb3\x78\xf6\x94\xa3\xec\x7b\xd9\x1c\x6a\x11\xca\x66\xa1\xd5\x20\x8c\xa3\xfd\x79\xe6\xd3\x9f\x07\x82\xb0\xbd\x65\x43\x2e\x98\x8f\x55\xa2\x84\x7e\xad\x50\x06\x90\x31\x90\x31\x06\x32\x06\x32\x06\x32\x06\x32\x06\x32\x06\x32\x06\x32\x06\x32\x06\x32\x36\x4c\x2a\x04\x32\x06\x32\x06\x32\x06\x32\x06\x32\x06\x32\x06\x32\x36\x46\x32\x86\x82\x23\x40\x82\x40\x82\x40\x82\x83\x1e\x51\x20\xc1\xb2\x78\x80\x04\x27\x88\x04\x6b\x3a\x09\xf4\x44\x06\x8b\x38\x30\xb4\x7a\x8f\x5c\xb1\x27\x3f\x74\x3b\xc4\x82\x6f\x73\x1b\x87\xec\x38\xa3\x0f\x2b\x33\x29\x37\xde\x66\x25\xa3\xbf\x70\xed\x17\x41\x45\x00\x45\x00\xc5\x31\x01\x45\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\x44\xc0\xc4\x91\xc0\x44\x34\x62\x00\x17\x05\x17\x1d\x2a\x45\x03\x17\x05\x17\x05\x17\x05\x17\xad\x08\xed\x54\x5c\xf4\xaf\x54\x84\xf4\x56\xdc\x1c\x85\x38\xcf\x52\xe8\xb7\x32\xc8\x1e\xb5\x82\x5d\xc9\x78\x9d\x4d\x6a\xce\x34\x80\xd9\x0d\x2b\x3d\x91\xde\x67\xcf\x7e\xb7\xf8\xfc\xaf\xea\xf1\x28\x6d\x7c\x20\x37\xcc\x84\x38\x76\x6a\x98\x4d\x8b\xc2\x39\xaf\x8a\xbf\xbb\xf3\x15\xb2\x71\x05\xa3\x7e\x95\x4a\x86\xbe\x5e\x1a\xdb\xbe\x47\x06\xfb\xdf\x2d\x3e\xff\x5e\x77\x2a\x5e\xa9\xc3\x5f\x29\x2b\x48\x4a\xc8\x9e\xcc\x9b\x55\xc3\xe4\x0f\x7b\xc3\xfc\xd0\x8b\x45\x52\x1e\xbd\xee\x03\x73\xb4\x67\x38\x36\xbe\x25\xeb\x7a\xb0\x31\x39\x9f\xf5\x3d\xec\x79\x39\xd4\xf9\x5b\x6f\x87\x39\x0d\x75\xa8\xab\xc2\x1f\xcc\x1b\x39\xcf\x27\x5c\x56\x11\xdf\x8c\xda\xe4\x5f\xc3\xe6\xd0\x98\xce\xd2\xec\xf3\x7d\xb6\x36\x2c\x66\xfb\xf5\x42\x60\x0c\x02\x63\x10\x18\x83\xc0\x18\x04\xc6\x20\x30\x06\x81\x31\x08\x8c\x41\x60\xcc\xb9\x65\x80\xc0\x18\x04\xc6\x20\x30\x06\x81\x31\x08\x8c\x41\x60\xcc\xf8\x02\x63\x10\x54\x81\xa0\x0a\x04\x55\x8c\x63\x44\x11\x54\x51\x16\x0f\x82\x2a\x46\x11\x54\x61\x79\xd5\x8e\x1c\xf3\x5a\x8c\xa5\xd5\x9d\x6e\x49\x96\xbe\x26\x73\x64\xa0\xac\x2b\x33\x4b\x9b\x01\x96\x3e\x6d\x0b\x61\x7d\xc8\x2e\x93\x67\x78\xd7\x5c\xac\xdf\xf6\xf2\xbd\x10\xd7\x8f\xf4\xc0\xbf\x91\xdc\x92\x4e\x7a\xca\xc3\xa3\x0b\x8f\x2e\x3c\xba\xf0\xe8\x4e\xcd\xa3\xbb\x67\xbf\x6d\xf2\xea\xee\xd7\xdd\xf6\xef\xbb\x07\xad\xbd\xff\x51\x82\x33\xb6\xec\x5b\x6a\xbd\xe0\xa8\x19\xa5\xe7\x41\xe9\xd9\x8a\xf4\x74\x29\x58\xa4\xa4\x95\x28\xb3\x8f\xdd\x85\xcc\x0f\xf5\xca\x22\x63\xb6\x09\xb3\xc5\xc9\x65\x6e\xfc\xfc\xfb\x26\x64\xae\x1f\xab\xcd\xf0\x9b\xc8\x66\xbc\x5a\x3e\xc9\xf3\x60\x5e\x79\x3b\x37\x8c\x80\xd9\x6a\x13\xd3\x5b\x16\xc5\xd2\x11\x09\xb9\x08\x8c\xd2\x68\x66\xd9\x9c\xfd\x9b\x7e\x91\x46\x8b\xe6\xce\x8f\xec\x9a\xdd\x05\xc1\x8f\xe4\x00\x70\xd5\x2a\xbd\x09\xd5\xc0\x2b\xf5\xcb\x4e\x49\x73\x39\xe1\x1e\x31\x50\xfa\x59\xce\x33\x4c\x27\x73\xc3\xb7\x13\xc5\x6e\x57\xfc\xc9\x24\xf2\x47\xd1\x9e\xf0\x95\x2d\x4f\x6a\x3e\x5b\x8a\x95\x8e\x17\xc8\x5c\x36\xb9\x2a\x61\x56\x2f\x9a\x3a\x1b\xa1\x37\x87\xa5\xd2\xa4\xc3\xeb\x50\x78\x9c\x26\xa8\xb1\x08\x94\xf1\x62\x77\x50\xed\xbe\xcd\x5e\x0d\xa3\x28\xfa\xeb\xb5\x70\x7d\x9e\x8a\xe0\x39\x07\xf9\xf9\x96\xeb\x07\x6f\x8d\xc6\x4f\x42\x67\x5e\xcc\x1d\x7a\x6b\x7c\xe9\x66\x0a\x41\xbe\x69\x53\x94\x84\x9d\xa5\x9b\x44\xdd\x64\x71\xb8\xb8\x3a\xd3\x3e\x90\xf9\x91\x95\x5e\x03\xed\x25\xe6\xfa\x3e\xd7\x82\x87\xb5\xf7\x78\xc4\x30\xd3\x3d\x2f\xe8\x96\xeb\xac\xa8\x06\x3b\x6a\x28\xd3\xff\x10\x02\xd3\x4e\x2e\xbb\x29\xcc\xc9\xa6\x3f\x78\x0c\x78\x0c\x78\x0c\x78\x0c\x78\x4c\x6f\x3c\xa6\xe5\x5e\xb0\xc5\x64\x4e\xb7\x2d\x7e\x2c\xd4\x3a\x8c\x02\xc1\x13\x91\x2d\x41\x8b\x58\x46\xdc\x23\xed\x68\x21\x03\xdf\x79\x2e\x45\xff\xd9\x49\x97\x17\x4b\x54\xd3\xee\x76\xfe\xcf\x39\xfb\xaa\xd7\x33\xad\xba\x44\x22\x54\x2f\x4b\xbe\xa7\x0a\x26\xe3\xe8\x91\x87\x36\x1a\x31\xde\x88\x9b\x15\x0f\xac\xad\xfc\x70\xa5\xbf\x7e\xb8\x62\x2b\x3f\xe4\x81\xff\x5f\xbb\x91\x2c\x05\xe3\x2e\x39\xe9\xe5\x8d\x76\x60\xba\xb9\x19\xa6\x2f\x3f\x4b\xf2\x93\xb4\x7d\x3a\x67\xf7\x3e\x2d\x8e\x85\x5b\x97\xf1\xf6\xb3\xe5\x48\x26\xd5\xe6\x31\xd9\x28\x32\x7d\x3c\x66\x40\xf5\x13\x7c\xb4\xcf\xbe\x53\xe5\xa9\x73\x87\x76\x6b\x98\xd1\xa3\xab\x17\xf6\x51\x7e\x67\x1e\x8f\x97\xdc\x2b\xf9\x27\x33\xa3\x46\xc4\x2b\x19\xaf\xd5\x98\xd4\xca\xeb\xb7\xca\x13\xed\x16\x17\x29\xbd\x56\x63\x8d\xb4\x6c\x7d\xa5\x4d\x3a\xbe\x9b\x9b\xc2\xa4\x2b\x90\x73\x22\x1b\xe3\x84\x12\xcc\xe8\x5b\xab\x0d\xcc\x0b\x83\x69\xf7\x91\x8c\x89\x64\x91\xb5\xe5\x1f\x9b\xb3\x3b\xc7\x11\x51\x4a\x7b\x53\xd1\xb2\x9b\xe9\x67\x98\xb1\x6b\x33\x01\xcb\x13\x34\xf9\x89\xcd\x7e\xe6\xce\x93\x17\xcb\x4d\xe8\xaa\xa3\x28\x4a\x95\x0e\xaa\x08\x4e\xab\x90\x46\x3f\x2e\x5f\xc4\x3e\xc1\x32\xbb\xd2\x4f\x6c\xf6\x49\xc6\xa2\x70\x59\xe6\xf0\xc4\xe1\xae\x7a\x7a\x23\x1f\x1d\xc4\x4c\xd7\x4b\xb4\xe9\xb9\x75\xc1\x55\x76\x8d\x63\x26\x64\x54\x9d\xee\xe7\xd1\x38\x27\x0c\x4f\xdb\x8d\xc3\x3e\x80\x7a\xae\x51\x00\x4a\xed\x6d\x7c\xb7\x71\xea\xe9\x7c\x1b\xe7\x04\xab\xed\x84\xb5\x07\xae\xbe\x54\xff\xa9\x85\x75\x48\x8c\x3c\x10\xd3\x7d\x4d\x79\xba\x69\xcb\xe7\xa6\x9a\x88\xa5\xb7\xe5\x5c\x65\x1a\x49\x52\xd6\x38\xb2\x34\x3b\x01\xdb\xc8\x2d\xbb\x9c\xdc\xb2\x76\x3b\x4b\x53\x7e\xd9\xe9\x4c\x30\xc4\x25\x20\x2e\x01\x71\x09\x88\x4b\x40\x5c\x42\xdd\xe2\x0b\xe0\x3d\x22\x89\x80\x81\x82\x81\x82\x81\x82\x81\x82\x81\x82\x81\x4e\x8b\x81\x02\x4b\x00\x4b\x00\x4b\x00\x4b\xf4\x8e\x25\x0e\x40\xf7\x03\xcd\xfe\x6a\x27\xc2\xed\x0c\xb0\x97\x7a\xdc\x06\x05\x74\x76\x9e\x80\x02\x7e\x28\xe0\x77\x19\x05\xfc\xd0\x22\x62\xe0\xd5\x0c\xcc\xa7\x3f\xf3\x41\x96\x49\xc7\x44\x50\x9b\x6c\x8c\x87\x2d\xe8\x9f\x3e\xb6\x1f\xfe\x77\x5c\x62\xeb\x9e\x29\xd4\xd7\xaa\xd8\x49\xa6\x2b\xb2\xad\x8a\xa3\x3e\xd8\x6c\x2b\xf2\xca\x7c\xe1\x21\xf7\x44\xac\xfd\x8b\x7a\xad\x4c\x12\xe9\xf8\x64\x30\x67\x9e\x3c\x4e\x0e\x59\x19\x33\x11\xa6\x4a\x83\xb5\x1e\x84\x35\x7f\x52\x52\x4c\x1f\x45\x22\xac\x1a\x58\xcc\x29\xb2\xb9\x47\xa4\x06\x93\xd7\x4e\xc6\xec\xf6\xdd\x7b\x75\x6c\xcc\x1d\xc2\x74\x81\x0c\x3d\xad\xf4\x91\x67\xcd\x91\x61\xca\xfd\x50\x2f\x50\xe4\xb9\xca\x8f\x25\x74\x61\x20\x22\x5b\x3e\x67\x76\x8d\x27\x03\x1e\x7a\x73\x19\x7b\x37\xd1\x93\x77\xb3\x09\x7d\x47\xba\xe2\xe6\x1f\x9f\x93\x85\xba\xca\xd1\xae\x70\x23\x9c\x2e\x87\x67\x50\x5a\xe2\x68\x95\xb7\xb6\x8a\xdb\xbb\x16\x8a\xdb\x07\xed\xd6\x1b\xd8\x7d\xbf\x6b\xbc\x6f\x1d\x43\x3c\xb0\x1b\x9f\xa8\xa6\x4c\x9a\xc9\xa0\x35\xe5\x57\xac\x8b\xea\x23\xfa\xaf\x7f\x9f\xa8\x08\x49\x2b\xb5\x6c\x47\xe5\x11\xd4\x1b\x81\x16\x36\x09\x2d\x0c\x19\xde\x17\x94\xe1\x8d\x54\x36\xa4\xb2\x21\x95\x0d\xa9\x6c\x30\x20\x77\xbd\x45\x83\xcc\x1b\x39\x8f\x39\x86\xb4\x17\x73\xdc\xde\xb4\x97\x61\x9b\x65\x99\x6f\xbb\xf3\x64\x97\x58\x70\xb7\xa2\x7b\x35\x1b\x53\xea\xa4\x93\x64\xb8\x14\x94\x12\xf1\x17\xc5\xad\x2d\xd5\x27\xee\xa4\x73\xc6\xee\xd5\xbf\xf6\xef\x6b\xee\x93\xc3\x2f\x61\x4e\xb0\x49\x52\x11\xe7\x5b\x8d\x0e\x70\x65\x81\xff\x24\xd8\x2c\xbb\xcb\x99\xd2\x28\xad\x16\x34\x67\x8b\x80\x87\xa1\xd0\xaa\x28\xe9\x29\x3c\xd0\xaa\xd1\xed\xfb\x63\xd6\x6e\xba\xc7\x33\x69\x10\x99\xd0\x32\x05\x7c\x69\xc5\xa7\x9e\x94\xdd\x6b\x89\xa9\x5d\x23\x4a\xac\x74\x4c\x68\xd7\x26\x11\x31\xc5\x64\xe5\xba\xf4\x73\xcf\x82\x52\x37\x33\x5d\x82\x3e\xec\xad\x0d\xae\xba\x5d\xbb\x82\x27\x06\xee\xa9\x7b\x09\xd3\x26\x40\x63\xbc\x25\xb5\x77\xd0\x06\x56\x0f\x85\x53\x03\xd0\x8f\x0e\xd0\x53\xc8\xcf\x51\x4d\x8c\xaf\xe9\xdc\x1f\xf6\xaf\xd4\x6b\x11\x7b\xa2\xd5\x91\x49\x1a\xf3\x54\x78\xbe\x73\xdd\xfe\x1c\xf5\xf9\xd9\x1c\x49\x7b\x42\x1b\x35\x2b\xe2\x71\xea\x53\x46\x9e\x0e\x4f\x3b\x58\xe5\xa2\xdf\x1b\x92\xfb\xba\xaf\xa8\x82\x3d\xe6\xca\xa2\x1c\x2a\xc6\xe0\xd4\x9e\xb8\x53\xfb\x72\x42\x0b\x2a\x09\x2e\xf6\xe5\xd2\x49\x58\x6a\xc1\xc9\x13\xfb\x5f\xef\x58\x8c\xde\x90\x4b\x4f\x67\x5e\xf3\x80\xce\x0c\x65\x78\xad\xcf\xa6\x23\xc8\xab\x9e\xb0\xd7\xbf\x24\x32\x5c\xe8\xfc\xf6\x2f\x6a\xd9\x33\x9f\xbf\xda\xc5\x30\xff\xe3\x9b\x21\xc5\x3c\xb4\x9f\x37\x9f\x64\xec\x10\x76\xf0\x24\x0d\xbe\x64\x0f\x57\x2b\xf5\xb7\x87\x2b\x76\x57\x92\x26\x85\xcf\x6b\x46\x40\xa6\x8f\x79\x51\xaf\xb9\x43\x03\x40\x19\xd2\x81\xef\x18\xaf\x27\x59\x4a\xf2\xbb\x19\x5b\x9d\x41\x1c\x09\x19\x05\x62\xce\xf4\x6f\x52\x61\x04\x3b\xa7\x28\x88\xbd\x76\x20\xb2\x9f\x3f\x46\xbc\xea\x87\x60\x30\xe9\x2f\x60\x30\x0d\xc5\x60\x8a\x2a\x51\xe0\x83\x36\x99\x36\x9d\x7b\xd1\xa2\x80\x3b\x87\x6b\x75\xe6\xbc\x4b\xd0\xeb\x10\x2d\x0a\x95\xee\xa2\x54\xba\x01\x69\x4e\xd8\xe0\xb3\x6f\x10\x2d\x7a\x71\x8a\xc9\x66\xe0\x9e\xdc\x57\xac\xc3\x98\xcb\x9b\x44\x33\xdd\x42\xe8\x65\x3f\xcc\x50\xff\x8e\xdd\xcb\xba\xa7\x87\x86\x4d\x63\xc1\xc2\x8b\x0f\x84\x03\x84\x03\x84\x03\x84\x53\x7b\xe4\xf9\x10\xce\xf1\x3b\x60\x4b\x98\x53\xb3\x05\x8e\xd2\xf4\x07\xd2\x81\xfd\x7f\x79\xf6\x3f\x90\x4e\x97\xf3\x06\x48\x07\x1e\x1f\x18\x50\x40\x3a\x65\xa1\x9d\x00\xe9\xbc\xc4\xcf\xd1\x12\xee\x4c\x45\xcf\x03\xe2\x81\x8a\x77\x51\x2a\xde\x80\x34\x29\x6c\xf8\xd9\x37\x40\x3c\x17\xa7\xa8\x4c\x03\xf1\x50\x29\xc4\x9c\xe8\xf4\xca\x70\x4c\xc5\xec\xd0\xf5\xbf\xf9\xee\x86\x07\xc5\xea\x9b\x3c\xab\x91\x6f\x9e\x78\x5e\x48\x18\xff\x31\x4b\x35\x9f\xd1\x35\x66\x79\xaf\x94\x52\xf3\x8b\x4c\x19\x62\x7e\x98\xa4\x82\x97\xfc\x97\x55\x55\xe9\x7b\xad\x43\xac\x50\x62\xf1\x93\x8c\xef\x82\x20\xd3\x9c\x06\xc1\x85\x76\x9e\x70\x59\xc5\x31\xf7\x78\xf7\xa8\xb6\xeb\xfd\x37\x11\x5e\x7a\x89\x4c\x1a\xc7\x69\xd7\xc9\x44\x33\xb2\x09\x37\x23\x6b\xa6\x4d\x4d\x8d\xc8\xf6\xba\xb3\x3a\x20\x69\x68\x3f\x86\xf6\x63\x68\x3f\x86\xf6\x63\x53\x6b\x3f\xd6\xbc\xf2\xd6\xb6\x1e\xeb\x39\x6e\xe1\x64\x0d\xc7\x9a\x1f\x7f\x77\xb3\xb1\x21\xcb\xe0\x90\x16\x63\xcd\x32\xd8\xdd\x5e\xac\x67\x19\xa0\xa9\x18\x9a\x8a\xa1\xa9\x18\x9a\x8a\xa1\xa9\x58\x6f\x4d\xc5\x5a\xac\xfe\x5b\x0d\xc5\xf6\xd6\xa1\xbc\xa0\xb0\xc5\x76\x4f\x33\xe1\xa6\x68\xcd\xe2\xde\xd7\x10\xed\xb4\x72\x47\x1b\xb4\x5e\x46\x74\xbb\x05\x5a\xcf\xc3\x7a\xd6\xc6\x67\xcd\xe2\xd9\xd3\xf4\xac\xef\x65\x73\xa8\xad\xce\x9a\x85\x56\x43\x31\x8e\xf6\xe7\x99\x4f\x7f\x1e\xc2\xc4\x9a\x92\x9f\x2e\x1e\x95\x6d\xc5\x14\xfd\x5a\x81\x0d\x80\x64\x80\x64\x0c\x90\x0c\x90\x0c\x90\x0c\x90\x0c\x90\x0c\x90\x0c\x90\x0c\x90\x0c\x90\x6c\xb0\x80\x08\x90\x0c\x90\x0c\x90\x0c\x90\x0c\x90\x0c\x90\x0c\x90\x6c\x8c\x90\x0c\x45\x4d\x40\x07\x41\x07\x41\x07\x07\x3d\xa2\xa0\x83\x65\xf1\x80\x0e\x4e\x90\x0e\xd6\xb4\xa3\xee\x09\x12\x16\xc9\x60\x68\xf5\x1e\xb9\x62\x4f\x7e\xe8\x76\x4a\x08\xdf\xe6\x56\x0e\x59\x72\x46\x23\x56\x86\x52\x6e\xbe\xcd\x4a\x66\x7f\xe1\xda\x1d\xf0\x45\xb0\x45\xb0\xc5\xb1\xb1\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\x45\x70\xc5\x71\x70\x45\x74\x7e\x00\x24\x05\x24\x1d\x2e\x52\x03\x24\x05\x24\x05\x24\x05\x24\xad\x08\xed\x44\x90\x34\x14\xe9\x77\x19\x3f\x29\x3b\xf6\xe9\x3d\xbd\x55\x47\x61\xcf\xb3\x54\x08\xae\x8c\xb5\x27\x52\xe6\x87\x2b\x19\xaf\xb3\xb9\xcd\x99\x06\x31\xbb\xf1\xa5\x27\xd2\xff\xcd\x44\x70\xb7\xf8\xfc\xaf\xea\xf1\xa8\x89\x7c\x20\x43\xcc\x84\x38\x72\x82\x98\xbf\x19\x85\x73\x5e\x15\x7f\xb7\xe9\x4d\xfa\x76\x3b\xee\x97\xa9\x64\xf3\xeb\x35\xb2\xed\x9b\xf4\xef\xdb\xbb\xc5\xe7\xdf\xeb\xce\xc2\xfb\x74\xf8\xfb\x64\x05\x49\x49\xda\x93\x79\xad\xfe\xcf\xb7\xdb\x17\xbc\x59\x26\x5a\xc7\x09\x78\x35\xa1\x5f\x3b\x52\xba\x0d\xd7\xd1\xd7\x64\x8e\x0c\x02\xe1\xd8\xdd\xc5\x58\xd3\x1f\xd4\x2d\xec\x79\x31\xf4\xb9\xc5\x77\xe3\x43\x76\x99\x5d\x97\xe8\xb7\xa1\x47\x2f\xf3\xf4\x23\x3d\xe6\x6f\x24\xb2\x6e\xfa\x77\x00\x13\x03\x13\x03\x13\x03\x13\x4f\x0d\x13\xb7\xeb\xfc\x52\x8b\x8a\x4f\xd6\x94\x07\xbd\x93\x5a\x0f\xd4\x39\x7b\x27\x9d\x8c\xed\x1f\xd0\xad\xa8\x96\x6d\x9f\x4c\x22\x7f\x14\xdd\x5b\x7e\xc8\x12\xed\x75\x62\x4b\xb1\xd2\x41\x88\x19\x07\xca\x55\x09\xb3\x7a\xd1\xd4\x29\x74\x8b\x0a\x65\x78\x1d\x0a\x8f\xd3\x04\x35\x0e\xaa\x62\x57\x29\xcd\x84\xb3\x57\xc3\xe8\x88\xfe\x7a\x2d\x5c\x9f\xa7\x22\x78\xce\xa3\x03\xf3\x2d\xd7\x0f\xde\x1a\x07\x14\x09\x9d\x79\x31\x77\xe8\xad\xf1\xa5\x9b\x29\x04\xf9\xa6\x4d\xa1\x97\x76\x96\x6e\x12\x75\x93\xc5\xe1\xe2\xea\x4c\xfb\x40\xe6\x47\x56\x7a\x0d\xb4\x97\x98\xeb\xfb\xd4\x1d\x2e\x6b\xee\xf1\x88\x61\xa6\x7b\x5e\xd0\x2d\xd7\x39\xf5\x1a\xdc\x7a\x43\x99\xfe\x87\x84\x75\xb4\x93\xcb\xee\xd0\x8e\x93\x4d\x7f\x04\x79\x20\xc8\x03\x41\x1e\x08\xf2\x40\x90\x47\x6f\x41\x1e\x2d\xf7\x82\xad\x40\x8f\xd3\x6d\x8b\x1f\x0b\x09\x63\x51\x20\x78\x22\xb2\x25\x68\x11\xcb\x88\x7b\xa4\x1d\x2d\x64\xe0\x3b\xcf\xa5\x94\x02\x3b\xe9\xf2\x8c\x33\x35\xed\x6e\xe7\xff\x9c\xb3\xaf\x7a\x3d\xd3\xaa\x4b\x24\x42\xf5\xb2\xe4\x7b\xaa\x60\x32\x8e\x1e\x79\x68\x53\x1c\xe2\x8d\xb8\x59\xf1\xc0\xda\xca\x0f\x57\xfa\xeb\x87\x2b\xb6\xf2\x43\x1e\xf8\xff\xb5\x1b\xc9\x52\x30\xee\x12\x33\x96\x37\x9a\xa7\xb9\xb9\x19\xa6\x2f\x3f\x4b\xf2\x93\xb4\x7d\x3a\x67\xf7\x3e\x2d\x8e\x85\x5b\x97\xf1\xf6\xb3\xe5\x11\x02\xa9\x36\x8f\xc9\x46\x91\xe9\xe3\x31\x03\xaa\x9f\xe0\xa3\x7d\xf6\x9d\x2a\xcf\x51\xfd\xb7\x0f\x32\xcc\xe8\xd1\xd5\x0b\xfb\x28\xbf\x33\x8f\xc7\x4b\xee\x95\x5c\x93\x99\x51\x23\xe2\x95\x8c\xd7\x6a\x4c\x6a\xe5\xf5\x5b\xe5\x89\x76\x8b\x8b\x94\x5e\xab\xb1\x46\x5a\xb6\xbe\xd2\x26\x1d\xdf\xcd\x4d\x61\xd2\x15\x74\x9b\x74\x3b\xc6\x09\x31\x39\xfa\xd6\x6a\x03\xf3\xc2\x60\xda\x7d\x24\x43\xf4\x59\xba\x4e\xf9\xc7\xe6\xec\xce\x71\x44\xa4\xfb\xb0\x16\x2d\xbb\x99\x7e\x86\x19\xbb\x36\x13\xb0\x3c\x41\x93\x9f\xd8\xec\x67\xee\x3c\x79\xb1\xdc\x84\xae\x3a\x8a\x52\x5f\xe8\xa0\x8a\xe0\xb4\x0a\x69\xf4\xe3\xf2\x45\xec\x13\x2c\xb3\x2b\xfd\xc4\x66\x9f\x64\x2c\x0a\x97\x65\x0e\x4f\x1c\xee\xaa\xa7\x37\xf2\xd1\x99\x51\x74\xbd\x44\x9b\x9e\x5b\x17\x5c\x65\xd7\x38\x66\x42\x46\xd5\xe9\x7e\x1e\x8d\x73\xc2\xb1\x3c\xed\xc6\x61\x5f\x3c\xcf\xb9\x46\x01\x91\x3d\xbd\x8d\xef\x76\x74\xcf\xe9\x7c\x1b\xe7\x8c\xf3\x69\x27\xac\x3d\xb1\x3e\x2f\xd5\x7f\x6a\x39\x1d\x70\xf2\x81\x98\xee\x6b\xca\xd3\xcd\xe8\x1b\x40\xef\xa2\xc8\x85\xd3\x76\x64\x76\xeb\x1d\x39\xd7\x96\xba\x48\xf2\xde\x02\xd4\x7b\x73\xbd\xab\xb0\xb7\x9a\xf0\xbd\x2f\xd7\xbb\xf3\x3a\x14\xda\x4d\x16\x1b\xd3\xda\xea\xf3\x95\x12\x14\x4d\x84\x5b\x5d\xa4\xc8\xb7\x5f\x4a\xb5\x91\xad\x7e\x39\xd9\xea\xed\xb6\x95\xa6\x8c\xf5\xd3\xd9\x5f\x08\x4a\x40\x50\x02\x82\x12\x10\x94\x80\xa0\x84\xba\xc5\x17\xb4\x7b\x44\x12\x01\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x9d\x16\x00\x05\x93\x00\x93\x00\x93\x00\x93\xe8\x9d\x49\x1c\xc0\xed\x07\x9a\x89\xdc\x4e\x84\xdb\xd9\xc8\x2f\xf5\xb8\x0d\x8a\xe6\xec\x3c\xe1\xb2\x2a\x03\xcf\x0b\x20\xe3\xdb\xed\xbc\xe8\xc6\x9f\x72\xea\x61\x33\x34\xea\xaa\xcb\xe8\xe9\x40\xd1\x11\x45\x81\xc7\x52\x62\xe6\x55\x65\xd8\xae\x22\x99\x74\x4c\xc5\xb4\xed\xc2\x78\xd8\x96\x80\xe9\x13\xba\x64\x60\xc7\x65\x76\xee\x29\x50\xd4\xd7\xca\xd0\x49\xaa\x27\xd2\x8d\x8a\xa3\x3e\xd8\x74\x23\xf2\x4c\x7c\xe1\x21\xf7\x44\xac\x7d\x6c\xba\x12\x57\x92\x48\xc7\x27\xa3\x31\xf3\x66\x71\x72\x4a\xca\x98\x89\x30\x55\x5a\x9c\xb5\xa2\xd7\x5c\x4d\x22\x75\x48\x22\xac\x2a\x54\x4c\xaa\xb1\xc9\x37\xa4\x0a\x92\xe7\x4a\xc6\xec\xf6\xdd\x7b\x75\x6c\xcc\x1d\x42\x55\x81\x0c\x3d\xad\xf8\x90\x77\xc9\x91\x61\xca\xfd\x50\xaf\x4d\xe4\xbd\xc9\x8f\x25\xf7\xbd\x01\x69\x6c\xf9\x9c\xe9\xf6\x9e\x0c\x78\xe8\xcd\x65\xec\xdd\x44\x4f\xde\xcd\x26\xf4\x1d\xe9\x8a\x9b\x7f\x7c\x4e\x16\xea\x2a\x47\xbb\x83\x8d\x70\xba\x1c\x9e\x41\x69\x4a\xa3\x55\x60\xda\x2a\x2f\xef\x5a\x28\x2f\x1f\xb4\x6b\x6b\x60\xf7\xfd\xae\xf1\xbe\x75\x10\xed\xc0\x6e\x7c\x7a\xda\x22\xe9\x23\x63\xd0\x16\x5f\xb1\x63\x6a\x6d\xd4\xb4\xc7\xe9\xb1\xe4\x46\x7b\x1d\x6c\xbb\xce\x06\xaa\x6b\x14\x7f\x1d\x2a\xd7\x18\x55\x2e\xe4\x33\x5f\x50\x3e\x33\x12\xb7\x90\xb8\x85\xc4\x2d\x24\x6e\xc1\x5a\xdc\xf5\x16\x0d\x32\x4b\xe2\x3c\xb6\x17\x92\x3c\x1a\x92\x3c\x46\x61\x83\x65\x5e\xec\xce\x53\x3b\x62\xc1\xdd\x8a\xf6\xd5\xd2\x92\x52\x67\xf6\x98\xcf\x51\xd0\x48\xc4\x5f\x14\xa5\xb5\x54\x9f\xb8\x93\xce\x19\xbb\x57\xff\xda\xbf\xaf\xb9\x4f\xae\xbd\x84\x39\xc1\x26\x49\x45\x9c\xef\x33\x3a\x9c\x93\x05\xfe\x93\x60\xb3\xac\xdd\xe8\x4c\xa9\x93\x56\x05\x9a\xb3\x45\xc0\xc3\x50\x68\x3d\x94\x94\x14\x1e\x68\xbd\xe8\xf6\xfd\x31\x0b\x37\xdd\xe3\x99\xd4\x87\x4c\x68\x99\xf6\xbd\xb4\xe2\x53\x4f\xca\xee\xb5\xc4\xd4\x96\x11\x25\x56\x3a\x26\x90\x69\x93\x88\x98\x22\x90\x72\x45\xfa\xb9\x67\x41\xa9\x9b\x99\x2e\x2f\x1e\xf6\xbe\x06\xa7\x5c\xcd\x96\xe0\x89\x71\xf8\xe4\x5e\x42\x70\x6b\x5a\xbd\xd4\xdc\xc1\x98\xfa\xbd\x8c\x97\x49\x53\xb8\xc7\x51\xe5\xbe\xaf\xe9\xdc\x1f\xf6\xaf\x5b\x6b\x11\x7b\xa2\xd5\x91\x49\x1a\xf3\x54\x78\xbe\x73\xdd\xfe\x1c\xf5\xf9\xd9\x1c\x49\x2b\x64\x1b\x7d\x23\xe2\x71\xea\x53\x36\x96\x0e\x4d\x3a\x4e\xf7\xa0\x1f\x3d\xbf\x13\xb7\x2f\x90\xbe\x47\x69\x5f\x94\x23\x84\x18\x5c\xbb\x13\x77\xed\x5e\x0e\x4d\xaf\xe4\x35\xd8\x97\x4b\xe7\xde\xa8\xb5\x26\xcf\xe7\x7e\xbd\x63\x1d\x7a\x43\x8e\x2d\x9d\x70\xcb\x03\x3a\x33\x94\xe1\xb5\x3e\x9b\x8e\x20\xdf\x72\xc2\x5e\xff\x92\xc8\x70\xa1\xd3\x9a\xbf\xa8\x15\xcf\x7c\xfe\x6a\xd7\xc1\xfc\x8f\x6f\x86\x84\xf9\xdb\xcf\x9b\x4f\x32\x76\xc8\xf9\xee\x49\x1a\x7c\xc9\x1e\xae\x56\xea\x6f\x0f\x57\xec\xae\x24\x4d\x8a\x9a\xd6\x9e\x72\xb2\x01\xcc\x8b\x7a\xcd\x1d\x1a\x00\x4a\x8c\x0d\x7c\xc7\xf8\xfe\xc8\x64\x90\xdf\xcd\xd8\xea\xc4\xd1\x48\xc8\x28\x10\x73\xa6\x7f\x93\xf2\xe1\xed\x9c\xa2\xd8\xe5\xda\x81\xc8\x7e\xfe\x18\xf1\xaa\x1f\x82\xe5\xa0\xbf\x80\xe5\x30\x00\xcb\x21\xaa\xc4\xfd\x8e\xc1\x76\xd8\x74\xee\x4b\x8a\x02\xee\x1c\xa9\xd2\x99\x93\xa7\xab\xd4\x21\x3a\x12\xfa\xdc\x45\xe9\x73\x03\x52\x9b\xb0\xbb\x67\xdf\x20\x3a\xf2\x92\xb4\x92\xcd\x38\xfc\x99\xaf\xd8\x41\x31\x86\xe5\x56\x5e\xe7\x29\x77\xb6\x47\x95\xd9\x51\xe9\xec\x93\x8c\xef\x82\x20\xa3\x50\x83\x68\x78\xb7\xf3\x04\xe4\xb4\x21\x9d\xed\x1c\x01\xca\xa7\xe3\x20\x28\x18\x38\xe1\x82\x81\xcd\x60\xa7\xa9\x58\xe0\xf1\x8d\x94\xdb\x41\x2b\x94\x08\x44\x89\x40\x94\x08\x44\x89\xc0\xa9\x95\x08\x6c\x5e\x79\x6b\xcb\x03\xf6\x1c\x22\x70\xb2\xa2\x80\xcd\x8f\xbf\xbb\x20\xe0\x90\x65\x70\x48\x19\xc0\x66\x19\xec\x2e\x01\xd8\xb3\x0c\x50\xf8\x0f\x85\xff\x50\xf8\x0f\x85\xff\x50\xf8\xaf\xb7\xc2\x7f\x2d\x56\xff\xad\xa2\x7f\x7b\x53\xe7\x2e\x28\x42\xb0\xdd\xd3\x4c\xb8\x70\x61\xb3\xb8\xf7\x15\x2d\x3c\xad\xdc\x51\xaa\xb0\x97\x11\xdd\x2e\x53\xd8\xf3\xb0\x9e\xb5\x38\x61\xb3\x78\xf6\x14\x26\xec\x7b\xd9\x1c\x6a\x39\xc2\x66\xa1\xd5\x20\x8b\xa3\xfd\x79\xe6\xd3\x9f\x6d\x21\x55\x98\x11\x1e\x5d\x04\x83\x3e\xff\x5d\xcf\xae\x7a\xac\x89\x51\x48\x19\x96\xab\x16\xd4\x6a\xbb\x32\xc6\x87\xec\x0a\x19\xb4\x72\x6b\xae\x83\x42\x19\x70\xe7\xc2\x9d\x0b\x77\x2e\xdc\xb9\x13\x74\xe7\x8e\xa1\xe3\x0b\x22\x1f\x5b\x0f\xd4\x39\x23\x1f\xd1\x98\x07\x65\x9b\x2e\xb8\x6c\x13\xba\x30\x01\xc6\x00\xc6\x00\xc6\x00\xc6\x00\xc6\xa0\x0b\x13\xaa\x19\xa2\x9a\x21\xaa\x19\xa2\x9a\x61\x75\x46\x9e\xb4\xd9\xd8\x94\xc8\x29\x5a\xbe\x4d\x9b\xa3\xa2\xe5\xdb\x98\x5a\xbe\xd5\x72\x3a\x24\x9c\xa2\x42\xe9\x11\x15\x4a\x73\x6d\x69\x34\xe9\x58\x83\x4f\xc9\xec\x04\x68\x23\xa1\xec\x72\x12\xca\xda\xed\x28\x4d\x49\x65\xa7\x33\xbd\x10\x8f\x80\x78\x04\xc4\x23\x20\x1e\x01\xf1\x08\x75\x8b\x2f\x40\xf7\x88\x24\x02\xf6\x09\xf6\x09\xf6\x09\xf6\x09\xf6\x09\xf6\x39\x2d\xf6\x09\x1c\x01\x1c\x01\x1c\x01\x1c\xd1\x3b\x8e\x38\x00\xd9\x0f\x34\xe5\xab\x9d\x08\xb7\xd3\xbe\x26\x55\x17\x7c\xe7\x09\xa8\xd6\x87\x6a\x7d\xd3\xae\xd6\x67\xd4\x45\x5d\x2b\x39\x74\x99\x1a\x1b\x96\x38\x32\x12\x6f\x59\xb2\x71\x1e\xd5\xda\x43\x6b\xbb\xe0\x6b\xbd\x30\x45\xb1\x24\xf5\xb4\x2e\x73\x74\x7f\x5f\x23\x02\x43\xe5\xaf\xd1\xdc\xa8\xe9\x69\xcc\xa7\x42\x73\x23\x99\x74\x0c\x01\xb5\xa9\x56\x68\xf6\xbe\x07\xf8\xe9\x63\x3b\x47\x7e\x63\x28\x29\x8f\x6a\xf2\x97\x93\x53\x85\x6a\xf2\xa8\x26\x5f\x73\x33\x03\x57\xd5\x46\x58\x48\x7e\xd8\x5d\x9e\x5f\x76\xcf\xd3\xd3\x86\x49\xf7\x18\xb8\x36\xfc\x8a\x75\x53\x4e\x44\xff\xf5\xef\x13\x55\x15\x69\xa5\x7c\x6d\x97\x12\x41\x01\x11\x28\x5c\x93\x50\xb8\x90\xb2\x7d\x41\x29\xdb\xc8\x4d\x43\x6e\x1a\x72\xd3\x90\x9b\x06\x5b\x71\xd7\x5b\x34\xc8\x44\x90\xf3\xd8\x60\xc8\x63\x69\xc8\x63\x19\xba\x41\x96\x79\xae\x3b\xcf\x5e\x89\x05\x77\x2b\x8a\x57\xb3\x11\xa5\x4e\xea\x3b\x65\xa5\xa0\x8c\x88\xbf\x28\x10\x6d\xa9\x3e\x71\x27\x9d\x33\x76\xaf\xfe\xb5\x7f\x5f\x73\x9f\x7c\x7a\x09\x73\x82\x4d\x92\x8a\x38\xdf\x62\x4c\x4f\xe8\xc0\x7f\x12\x6c\x96\xdd\xe5\x4c\x69\x92\x56\xfb\x99\xb3\x45\xc0\xc3\xd0\x34\xf3\x26\xfd\x84\x07\x5a\x25\xba\x7d\x7f\xcc\x9a\x4d\xf7\x78\x26\xcd\x21\x13\x5a\xa6\x78\x2f\xad\xf8\xd4\x93\xb2\x7b\x2d\x31\xb5\x5b\x44\x89\x95\x8e\x89\xd5\xa2\x06\xdb\x0e\x0f\x0b\x3a\xf4\x73\xcf\x82\x52\x37\x33\x5d\x24\x3e\xec\x2d\x0d\x7e\xb9\xf2\x46\xe0\x89\xc1\xbb\xe5\x5e\x02\xa9\x89\xbd\x18\xef\x48\xed\x8f\xb7\xa1\xcf\x43\x01\xcf\x20\xee\xa3\x23\xee\x14\xbb\xd3\x4a\x73\xa9\x2e\xcb\xd7\x74\xee\x0f\xfb\x57\xe8\xb5\x88\x3d\xd1\xea\xc8\x24\x8d\x79\x2a\x3c\xdf\xb9\x6e\x7f\x8e\xfa\xfc\x6c\x8e\xa4\xbd\xa0\x8d\x66\x15\xf1\x38\xf5\x29\xb5\x4e\xc7\x99\x1d\xac\x65\xd1\xef\x0d\xc4\x53\xdd\x57\x98\xc0\x1e\xcb\x64\x51\x0e\xf7\x62\xf0\x5f\x4f\xdc\x7f\x7d\x39\x01\x03\x95\x24\x15\xfb\x72\xe9\x44\x2a\xb5\xd6\xe4\xc9\xf9\xaf\x77\xac\x43\x6f\xc8\x7b\xa7\xb3\xa7\x79\x40\x67\x86\x32\xbc\xd6\x67\xd3\x11\xe4\x40\x4f\xd8\xeb\x5f\x12\x19\x2e\x74\x8e\xfa\x17\xb5\xe2\x99\xcf\x5f\xed\x3a\x98\xff\xf1\xcd\x90\x22\x19\xda\xcf\x9b\x4f\x32\x76\x88\x30\x78\x92\x06\x5f\xb2\x87\xab\x95\xfa\xdb\xc3\x15\xbb\x2b\x49\x93\x42\xe0\x35\x0e\x20\x6b\xc7\xbc\xa8\xd7\xdc\xa1\x01\xa0\x2c\xe7\xc0\x77\x8c\x83\x93\x8c\x23\xf9\xdd\x8c\xad\xce\x02\x8e\x84\x8c\x02\x31\x67\xfa\x37\xa9\xb8\x81\x9d\x53\x14\x88\x5e\x3b\x10\xd9\xcf\x1f\x23\x5e\xf5\x43\xb0\x91\xf4\x17\xb0\x91\xce\x1c\xbb\x50\x89\xdf\x1e\xb8\x95\xb4\xe9\xdc\x57\x16\x05\xdc\x39\x5c\x91\x33\xe7\x4d\x5c\x95\x43\xc4\x27\x14\xb8\x4b\x51\xe0\x06\xa4\x27\x61\x3b\xcf\xbe\x41\xc4\xe7\xf4\x35\x90\xcd\xe0\xbd\xb4\xaf\x58\xa7\xc1\x93\x37\x89\x26\xb4\x85\x18\xca\x7e\x20\xa0\xfe\x1d\xbb\x81\x75\x8a\x03\x0d\x64\xc6\x02\x85\xb7\x1d\x4c\x06\x4c\x06\x4c\xa6\xf4\xac\x60\x32\xe7\x63\x32\xc7\x6f\x7a\xcd\x74\xa6\x66\xd7\x1b\xa5\x61\x0f\x46\x03\x13\xff\xf2\x4c\x7c\x30\x9a\x2e\xe7\x0d\x18\x0d\x9c\x3a\xb0\x99\xc0\x68\x2a\xf2\xea\x8f\xd1\xbc\xc4\x9b\xd1\x4c\x6b\xa6\xa2\xda\x81\xd9\x40\xa1\xbb\x14\x85\x6e\x40\x7a\x13\xb6\xf7\xec\x1b\x30\x9b\xe9\x6b\x24\x93\x67\x36\xe6\x58\xca\x0a\xf5\x4b\xef\x4c\x9f\xf5\x2e\x0a\xe9\xc0\x72\xc5\x8c\xbe\xb2\x95\x26\xda\x5c\x00\xe3\x43\x76\x9d\x5c\xcf\xd9\x79\x35\x14\xc4\x40\x07\x1b\x74\xb0\x41\x07\x1b\x74\xb0\x41\x07\x9b\xb3\x18\x2c\xb0\x2b\x5b\x0f\xd4\x39\xed\x4a\x34\x1a\x42\x79\xa6\x0b\x2e\xcf\x84\xae\x52\xe8\x2a\x85\xae\x52\xe8\x2a\x85\xae\x52\xe8\x2a\x85\xae\x52\xa8\x5a\x88\xaa\x85\xa8\x5a\x88\xaa\x85\xd5\x19\x79\xd2\xe6\x69\x68\x61\x37\x84\x51\x40\x0b\x3b\xb4\xb0\x9b\x5a\x0b\xbb\x5a\x66\x07\x9c\x8f\x4a\xa4\x47\x54\x22\xcd\xb5\xa5\x13\x32\xf3\x5d\xb4\xf7\xac\x95\x49\xb5\x9f\x2c\x36\xb6\xb5\x55\xe8\xe5\x8a\xa9\xbb\x6e\x8d\xbb\xd5\x55\xea\x43\xf9\x5e\x8c\xb8\x2b\xf7\x4b\x0a\x1c\xf5\xa8\xfc\x59\xca\xa7\x35\x8f\x9f\x92\x3c\x44\x5c\x3f\x04\xf9\x6c\x12\xe3\x59\x7a\x8e\x94\xf9\xf1\xf3\x6f\xbf\xfd\xcf\x97\xbb\xdf\xff\xe7\xe1\x2a\xf7\x9a\x68\x05\x4d\x92\x96\xeb\xaf\xa3\x40\x90\x7b\x64\x99\x5d\x55\xa9\x24\xbe\x17\x6a\xaf\xb1\xd2\x9b\x03\xee\x91\xc6\x9a\x1f\xa2\x2c\xd4\xa2\x75\xa9\x5d\x11\xb3\x84\xb9\x7e\xe2\xc4\x42\xdd\x73\xce\x9b\x0a\x9c\xc4\xb8\x44\xca\x17\xca\x9c\x14\xca\xfa\x56\x96\xbe\xd5\x85\xd5\x6a\x19\x7f\xe3\xc1\x5b\x16\x4a\x8d\x82\xc9\x86\xce\xfc\x2a\x55\xd7\x1c\xc1\xc8\x67\x66\x9f\xd9\xf8\xb0\x32\x0b\x3a\x11\x09\x75\xd7\xcc\x9c\xd3\xc6\xd5\x62\x28\x58\xc9\x20\x54\xdf\x92\x08\xdc\x8c\xae\xae\x04\x4f\x95\x1d\xef\xf1\x54\xb0\xca\x40\x98\x2b\x89\x50\x29\xea\xda\x65\x11\xf9\x39\xf6\xad\xbb\xec\x11\x7b\x4c\xcd\x14\x38\x93\x31\x86\x08\x05\x44\x28\x20\x42\x01\x11\x0a\x88\x50\xa8\x5b\x7c\x81\xbe\x47\x24\x11\xd0\x50\xd0\x50\xd0\x50\xd0\x50\xd0\x50\xd0\xd0\x69\xd1\x50\x00\x0a\x00\x0a\x00\x0a\x00\x8a\xde\x01\xc5\x01\x10\x5f\x1b\x73\x32\xb6\x89\x9c\x6a\xf8\x35\x74\x56\xc7\x2d\x69\x13\xd3\x83\xaa\x21\xb9\xd1\x4e\xd2\x47\xb1\xd6\xdb\x56\x92\xc6\x82\xaf\x49\x3c\xae\xfb\xd6\x6c\x0c\x6f\xcd\xb1\x6b\xf9\x8d\x74\x9f\x82\x79\xc7\xbe\xea\x56\x43\xd5\xa9\x7e\x8c\x08\xbf\xef\x9b\x60\xe3\x2f\xc4\xb0\xf3\x04\xf5\x63\x3f\x69\xc1\xff\x7f\xdb\x32\x68\x73\xed\xf2\xd9\xc3\x66\x48\x95\xfc\xca\x92\x1f\xff\x57\x3f\x49\x2f\x17\x21\xa9\x55\x6d\x64\xd8\xe8\x88\xb2\x79\xa8\x34\x37\xba\x4a\x73\x32\xe9\x18\x0e\x6a\xb3\x8d\xf1\xd6\x1c\x50\x9f\xd0\x13\x09\x1c\x74\x51\x8f\xf2\xd3\xb5\x5b\x1b\x91\x82\x35\x81\x14\x2c\x94\xf6\x40\x69\x8f\x9a\x9b\x19\x85\x1e\x37\xa6\x02\x1f\x47\xde\xf8\x39\x1a\x41\x77\x71\xe7\xd3\x53\x9b\x49\x3d\x19\x85\xda\xfc\x8a\x75\x59\xa7\xc4\x54\x98\x3f\x51\xb9\x92\xf6\xba\xda\x76\x89\x92\xb3\xeb\x6a\x23\x29\x4c\x02\xcd\xac\x38\xc8\x83\xd5\xcc\x90\x0a\x7e\x41\xa9\xe0\xc8\x79\x43\xce\x1b\x72\xde\x90\xf3\x06\xa3\x72\xd7\x5b\x34\xc8\x04\x93\xf3\x18\x68\xc8\x8f\x69\xc8\x8f\x19\x87\x9d\x96\x79\xbe\xfb\x69\xd5\x55\x56\xbf\xda\x9a\x55\xbb\xdb\x74\x75\x9d\x0a\x53\x50\x4f\xc4\x5f\x14\xe0\xb6\x54\x9f\xb8\x93\xce\x19\xbb\x57\xff\xda\xbf\xaf\xb9\x4f\xee\xc0\x84\x39\xc1\x26\x49\x45\x9c\x6f\x3a\xa6\xb8\x7f\xe0\x3f\x09\x36\xcb\xee\x75\xa6\x74\x4b\xab\x0f\xcd\xd9\x22\xe0\x61\x68\xba\x32\x90\xc6\xc2\x03\xad\x24\xdd\xbe\x3f\x66\x15\xa7\x7b\x3c\x93\x2e\x91\x09\x2d\x53\xc5\x97\x56\x7c\xea\x49\xd9\xbd\x96\x98\xda\x3f\xa2\xc4\x4a\xc7\xc4\x80\x51\xa7\x04\x87\x87\x05\xad\xfa\xb9\x67\x41\xa9\x9b\x99\x2e\x6a\x1f\xf6\x26\x07\x37\xde\xf9\xbb\xc5\x9d\x09\x7e\x17\x7b\xc6\xed\xb9\x05\x74\x8e\xab\x7f\x66\xf0\x7c\x74\x8e\xeb\xa6\x73\xdc\x71\x3a\xd8\x9e\xae\x71\x13\x8b\x42\x40\xd7\x38\xf8\xbb\x2f\x2f\x12\x01\x5d\xe3\xba\x9c\x37\xe8\x1a\x07\x0b\x0a\x16\xd4\x74\x7b\xc7\x75\x62\x43\xf5\xd5\x41\xee\x58\x27\xdb\x9e\xee\x71\x13\x53\xf1\x10\x68\x0a\xf5\xee\xb2\xd4\xbb\x01\x69\x51\xd8\xec\xb3\x6f\x10\x68\x7a\x59\x5a\xca\x49\xfb\xc9\x9d\x22\x5a\x73\x77\xfb\xb8\xb1\x54\xd5\x2b\x9e\xf7\x49\xc6\x77\x41\x90\x69\x3d\xe5\x36\xb9\x48\x9d\x1c\xea\x4a\x88\xd4\xc9\x71\xac\x2a\x2f\xa1\x47\xa8\x51\x39\xe1\x1a\x95\xcd\x50\xa8\xa9\x3e\xe5\x5e\xf7\x53\x07\xc0\x0b\x55\x29\x51\x95\x12\x55\x29\x51\x95\x72\x6a\x55\x29\x9b\x57\xde\xda\x8a\x94\x3d\x87\x17\x9c\xac\x0e\x65\xf3\xe3\xef\xae\x41\x39\x64\x19\x1c\x52\x79\xb2\x59\x06\xbb\xab\x4e\xf6\x2c\x03\xd4\x9a\x44\xad\x49\xd4\x9a\x44\xad\x49\xd4\x9a\xec\xad\xd6\x64\x8b\xd5\x7f\xab\xce\xe4\xde\xfc\xc3\x0b\x8a\x2e\x6c\xf7\x34\x13\xae\x95\xd9\x2c\xee\x7d\x75\x32\x4f\x2b\x77\x54\xc7\xec\x65\x44\xb7\x2b\x63\xf6\x3c\xac\x67\xad\x87\xd9\x2c\x9e\x3d\xb5\x30\xfb\x5e\x36\x87\x5a\x01\xb3\x59\x68\x35\xf8\xe2\x68\x7f\x9e\xf9\xf4\x67\x5b\x84\x45\xbf\x7d\xe3\x87\x5e\x2c\x92\xc4\x09\x78\x92\xf4\xcc\xb1\x8c\xde\x17\xba\xfe\x37\xdf\xdd\xf0\xa0\x38\x5a\x3c\xb3\xed\x3e\xeb\x1b\xfa\xa0\x6e\x68\x5e\x48\xa4\xff\x31\xd3\xbf\x67\x74\xa1\x59\xee\xcc\x2b\x79\x67\x32\xec\xc5\xfc\x30\x49\x05\x2f\x6d\x94\x55\x28\xf6\xbd\x1a\xdb\x5d\xfc\xf5\x5f\x2b\x7c\x01\x20\x6c\xa8\x69\xc2\xb4\x00\xdc\x2b\x1b\xef\x72\x69\x18\x0d\xe1\x89\x91\x58\xf1\x6d\x01\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\xeb\x68\xb5\x05\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x1b\xe4\x88\x82\x88\x95\xc5\x03\x22\x36\x01\x22\x56\x53\x70\xbf\x27\x30\x56\xa4\x61\xa1\xdd\xee\x6d\x96\x57\xe7\x54\xec\x6d\xae\xe1\x93\x15\x63\xb4\x41\x65\x24\xe4\xa6\xcb\xac\x64\xf2\x16\xae\x7d\x34\x53\x03\x4f\x03\x4f\x1b\x11\x4f\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x03\x4b\x1b\x15\x4b\x2b\xf6\x21\xd8\xed\x6d\x18\x53\x1b\x02\xd0\x41\xd0\x41\xd0\xc1\x71\x8c\x28\xe8\x60\x59\x3c\xa0\x83\x63\xa6\x83\x43\x4a\x95\x3b\x5b\x96\xdc\xaf\x7e\x92\xa2\x72\x64\x75\x28\x01\xf8\x46\x04\xf8\xce\x93\x30\x07\xbe\x07\xbe\x07\xbe\x07\xbe\x07\xbe\x07\xbe\x07\xbe\x07\xbe\xd7\xd1\x6a\x0b\xbe\x07\xbe\x07\xbe\x07\xbe\x07\xbe\x07\xbe\x07\xbe\x77\x71\x7c\x0f\x34\x0c\x34\x0c\x34\x6c\x1c\x23\x0a\x1a\x56\x16\x0f\x68\xd8\x28\x69\x58\x98\x71\x1f\x9d\x27\x47\x9f\xff\x06\x24\x2b\xf7\x90\x2d\xe0\x32\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\xb1\xea\x72\x3b\x40\x34\x04\x3c\x06\x3c\x06\x3c\x06\x3c\x06\x3c\x06\x3c\x06\x3c\x36\x46\x3c\x66\x9e\x9a\xb2\xe0\xd4\x50\xf2\x4d\xfa\xc8\x12\x47\x46\xe2\x2d\x4b\x36\xce\xa3\x1a\x79\xb2\x57\x04\x5f\x6b\x47\x6f\x14\x4b\x92\xf2\xe1\x09\x72\xe4\xf7\x43\x96\x1c\xb8\x20\xb8\x20\xb8\x20\xb8\x20\xb8\x20\xb8\x60\x89\x0b\x0e\xab\xaa\xe6\xd8\x0a\x6a\x6e\x91\x45\x50\x45\x50\xc5\x11\x51\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\x45\x10\xc5\xb1\x10\xc5\x9a\x82\x9a\x87\xa3\xc2\xa1\x50\x42\xe0\x51\xe0\x51\xe0\x51\xe0\xd1\x41\x8f\x28\xf0\x68\x59\x3c\xc0\xa3\x53\xc2\xa3\xe6\x8c\x48\x06\xbe\xe3\x0f\x22\x79\xd2\x50\xc7\x85\xba\xa3\xe7\x73\xa6\x50\x96\x6e\x04\x89\x94\x40\x9e\x23\x43\x9e\x27\x4e\xa4\x2c\xbd\x2e\x80\x9f\x80\x9f\x80\x9f\x80\x9f\x80\x9f\x80\x9f\x80\x9f\x80\x9f\x1d\xad\xb6\x80\x9f\x80\x9f\x80\x9f\x80\x9f\x80\x9f\x80\x9f\x80\x9f\x17\x07\x3f\xc1\x0b\xc1\x0b\xc1\x0b\xc1\x0b\x07\x3d\xa2\xe0\x85\x65\xf1\x80\x17\x4e\x98\x17\x0e\x24\xa9\xb2\x7b\x66\x78\x96\xd4\xca\x5d\x08\x05\xb4\x11\xb4\xb1\x72\xd5\xc1\xd1\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\x46\x90\xc6\x71\x91\xc6\x62\x9a\xe5\x1e\x77\x03\x92\x2d\xeb\x9f\x19\xf0\x14\xf0\x14\xf0\x14\xf0\x14\xf0\x14\xf0\xf4\x22\xe1\x29\xb2\x2a\x2b\x8c\xb3\x9a\x4b\xf9\x49\xc6\x77\x41\x90\xa1\x4f\x94\x93\x05\xed\x1c\x13\xed\x44\x6e\x25\x88\x27\x88\x27\x88\x27\x88\x27\x88\x27\x88\x27\x88\x27\x88\x27\x88\x27\x88\x27\x88\x27\x88\x27\x88\x27\x88\x27\x88\xe7\xf8\x88\x27\x28\x19\x28\x19\x28\xd9\x38\x46\x14\x94\xac\x2c\x1e\x50\xb2\x71\x51\xb2\xa5\x48\xf9\xed\xcd\x51\x54\xac\x6f\x06\xd4\x86\xb8\x79\x22\x2d\x2b\xba\x7a\x78\xf7\xf0\x30\x4f\xa4\x45\x1a\x46\xcf\x7f\xb7\xf8\xfc\x7b\xdd\xa9\xe7\xa2\x5f\xa3\x85\x52\x05\x41\x52\x95\xd6\x29\x91\x29\x9a\x29\x85\x73\x5f\x15\x7f\xbf\xed\x8b\x66\x5a\xa0\x3a\x01\x4f\xca\x23\x79\xa5\x8d\x89\x6e\x79\xb4\xbe\x26\x73\x64\x10\x08\xc7\xee\x01\xa6\x55\xc1\x07\x75\x0b\x7b\xde\x13\x7d\xee\xd6\xab\xf2\x21\xbb\xd6\xae\xeb\xec\x80\x5b\xac\x3a\xbe\x7a\x55\x5c\x4a\xf7\xb9\x3a\x35\xed\xb2\x58\xf7\x5d\x2f\xd3\xf6\x23\x3d\xeb\x6f\x24\xb7\xa4\xe5\xa4\xdd\x3f\x5b\xc1\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xa6\xc6\x4b\xf6\x68\xb3\x4d\xcc\x64\xbf\x65\xb4\x5f\xab\x3d\x68\xed\xfd\x8f\x12\x9c\xf1\x14\xbd\xa5\x68\x2c\x47\xcd\x28\x3d\x0f\x4a\xcf\x56\x8c\x4d\x58\x0a\x16\x29\x69\x25\xa9\x70\xe7\xec\x2e\x64\x7e\xa8\x57\x16\x19\xb3\x4d\x98\x2d\x4e\x2e\x73\xe3\xe7\xdf\x37\x21\x73\xfd\x58\xed\x83\xdf\x44\x36\xe3\xd5\xf2\x49\x7e\x3d\xf3\xca\xdb\xb9\x61\x04\xcc\x56\x9b\x98\xde\xb2\x28\x96\x8e\x48\xc8\x01\x67\x4c\x32\x33\xcb\xe6\xec\xdf\xf4\x8b\x34\x5a\x34\x77\x7e\x64\xd7\xec\x2e\x08\x7e\x24\xf7\x9a\xab\x56\xe9\x4d\xa8\x06\x5e\x19\x37\x76\x4a\x9a\xcb\x09\xf7\x88\x81\xd2\xcf\x72\x9e\x61\x3a\x19\xe4\x6a\x27\x8a\xdd\xa0\xeb\x64\x12\xf9\xa3\x68\xad\xfb\x21\x4b\xb4\x11\xcd\x96\x62\xa5\xa3\x71\x32\x87\x68\xae\x4a\x98\xd5\x8b\xa6\xce\x46\xe8\xcd\x61\xa9\xec\xd4\xf0\x3a\x14\x1e\xa7\x09\x6a\xec\xed\x39\xfb\x23\xdb\xb0\x35\x1c\xc9\x5e\x0d\xa3\x28\xfa\xeb\xb5\x70\x7d\x9e\x8a\xe0\x39\x0f\x93\xc9\xb7\x5c\x3f\x78\x6b\xec\x69\x12\x3a\xf3\x62\xee\xd0\x5b\xe3\x4b\x37\x53\x08\xf2\x4d\x9b\x62\x90\xec\x2c\xdd\x24\xea\x26\x8b\xc3\xc5\xd5\x99\xf6\x81\xcc\x8f\xac\xf4\x1a\x68\x2f\x31\xd7\xf7\xb9\x16\x3c\xac\xbd\xc7\x23\x86\x99\xee\x79\x41\xb7\x5c\xe7\xa3\x68\xf0\x52\x0c\x65\xfa\x1f\xc2\x37\xdb\xc9\x65\x37\xe3\x3c\xd9\xf4\x07\xed\x04\xed\x04\xed\x04\xed\x04\xed\xec\x8d\x76\xb6\xdc\x0b\xb6\x88\xe7\xe9\xb6\xc5\x8f\x85\x6c\x88\x28\x10\x3c\x11\xd9\x12\xb4\x88\x65\xc4\x3d\xd2\x8e\x74\xf4\x75\x29\xb6\xd6\x4e\xba\x3c\x9d\x42\x4d\xbb\xdb\xf9\x3f\xe7\xec\xab\x5e\xcf\xb4\xea\x12\x89\x50\xbd\x2c\xf9\x9e\x2a\x98\x8c\xa3\x47\x1e\xda\x58\xdf\x78\x23\x6e\x56\x3c\xb0\xb6\xf2\xc3\x95\xfe\xfa\xe1\x8a\xad\xfc\x90\x07\xfe\x7f\xed\x46\xb2\x14\x8c\xbb\x84\xc0\xe4\x8d\xc6\x03\x6e\x6e\x86\xe9\xcb\xcf\x92\xfc\x24\x6d\x9f\xce\xd9\xbd\x4f\x8b\x63\xe1\xd6\x65\xbc\xfd\x6c\x39\xf0\x4c\xb5\x79\x4c\x36\x8a\x4c\x1f\x8f\x19\x50\xfd\x04\x1f\xed\xb3\xef\x54\x79\xea\x60\x43\xb7\x86\x19\x3d\xba\x7a\x61\x1f\xe5\x77\xe6\xf1\x78\xc9\xbd\x92\x7f\x32\x33\x6a\x44\xbc\x92\xf1\x5a\x8d\x49\xad\xbc\x7e\xab\x3c\xd1\x6e\x71\x91\xd2\x6b\x35\xd6\x48\xcb\xd6\x57\xda\xa4\xe3\xbb\xb9\x29\x4c\xba\x02\x39\x27\xb2\x31\x56\x9b\xb5\xd9\x49\xad\x36\x30\x2f\x0c\xa6\xdd\x47\x32\xe2\x98\xc5\xad\x97\x7f\x6c\xce\xee\x1c\x47\x44\x29\xed\x4d\x45\xcb\x6e\xa6\x9f\x61\xc6\xae\xcd\x04\x2c\x4f\xd0\xe4\x27\x36\xfb\x99\x3b\x4f\x5e\x2c\x37\xa1\xab\x8e\xa2\x18\x70\x3a\xa8\x22\x38\xad\x42\x1a\xfd\xb8\x7c\x11\xfb\x04\xcb\xec\x4a\x3f\xb1\xd9\x27\x19\x8b\xc2\x65\x99\xc3\x13\x87\xbb\xea\xe9\x8d\x7c\x74\x8a\x00\x5d\x2f\xd1\xa6\xe7\xd6\x05\x57\xd9\x35\x8e\x99\x90\x51\x75\xba\x9f\x47\xe3\x9c\x70\x68\x42\xbb\x71\xd8\x17\x9e\x70\xae\x51\x40\xa0\x42\x6f\xe3\xbb\x1d\xac\x70\x3a\xdf\xc6\x39\xc3\x16\xda\x09\x6b\x4f\xe8\xc2\x4b\xf5\x9f\x5a\x58\x07\xba\x7c\x20\xa6\xfb\x9a\xf2\x74\xd3\x96\xcf\x8d\x13\x2a\x17\xce\xdd\x91\xf3\xa8\xb7\xe5\x5c\x65\x3a\x61\xea\xe3\x0e\xe2\x5b\xcd\x7c\xac\x3c\xd3\x76\xfa\x63\xe7\x79\xd7\xda\x61\x16\x1b\x23\xdb\x6a\xf6\xb6\x22\x75\x4b\xe0\xad\x2e\xb2\x85\xbb\x5f\x0a\xb9\x91\xc5\x79\x39\x59\x9c\xed\x76\x99\xa6\x4c\xce\xd3\x99\x63\x88\x51\x40\x8c\x02\x62\x14\x10\xa3\x80\x18\x85\xba\xc5\x17\xf0\x7b\x44\x12\x01\x0f\x05\x0f\x05\x0f\x05\x0f\x05\x0f\x05\x0f\x9d\x16\x0f\x05\xa2\x00\xa2\x00\xa2\x00\xa2\xe8\x1d\x51\x1c\x80\xf1\x07\x9a\x67\xd9\x4e\x84\xdb\xb9\x96\x2f\xf5\xb8\x0d\x0a\xee\xec\x3c\xe1\xb2\x0a\x67\xce\x0b\x48\xc3\x10\x89\x79\xd1\x97\x3f\xf9\xec\xc4\x66\x90\x74\xe2\xba\x99\x5d\xc1\xa3\x23\x6a\x67\x8e\xa5\x9e\xc6\xab\xca\xd8\x5d\x45\x32\xe9\x98\x94\x69\x53\x86\xf1\xb0\x2d\x15\xd3\x27\x74\xce\xc5\x8e\x4b\xfe\xdc\xd3\xb8\xa0\xd7\xd5\xa2\x93\x94\x50\xa4\x25\x15\x87\x7e\xb0\x69\x49\xe4\xb2\xf8\xc2\x43\xee\x89\x58\x3b\xdf\x74\x9b\x8e\x24\x91\x8e\x4f\xd6\x64\xe6\xe6\xe2\xe4\xad\x94\x31\x13\x61\xaa\xd4\x3b\x6b\x5e\xaf\xb9\x9a\x49\xea\x90\x44\x58\x1d\xa9\x98\x7c\x63\x93\x74\x48\x47\x24\x97\x96\x8c\xd9\xed\xbb\xf7\xea\xd8\x98\x3b\xc4\xb0\x02\x19\x7a\x5a\x23\x22\xb7\x93\x23\xc3\x94\xfb\xa1\x5e\xa5\xc8\xad\x93\x1f\x4b\x7e\x7d\x43\xd8\xd8\xf2\x39\x53\xfa\x3d\x19\xf0\xd0\x9b\xcb\xd8\xbb\x89\x9e\xbc\x9b\x4d\xe8\x3b\xd2\x15\x37\xff\xf8\x9c\x2c\xd4\x55\x8e\xf6\x13\x1b\xe1\x74\x39\x3c\x83\x52\xa1\xc6\xad\xd9\xb4\xd5\x6a\xde\xb5\xd0\x6a\x3e\x68\xc7\xd7\x10\x6f\xfe\x5d\xe3\xcd\xeb\xb0\xdb\x21\xde\xfd\x44\x15\x4a\xd2\x56\x46\xa3\x50\xbe\x62\x47\x97\xed\xa8\xe9\xb4\xdf\x63\xf5\x8e\xf6\xba\xda\x8e\x92\x1d\x28\xd4\x51\xfc\x75\x68\x65\x63\xd4\xca\x90\x1a\x7d\x41\xa9\xd1\xc8\x01\x43\x0e\x18\x72\xc0\x90\x03\x06\x83\x72\xd7\x5b\x34\xc8\x84\x8b\xf3\x18\x65\xc8\x17\x31\xc7\xed\xcd\x17\x19\x8f\x5d\x96\x39\xbf\x3b\xcf\x12\x89\x05\x77\x2b\x7a\x58\x4b\xc3\x4a\x9d\xd9\x77\x6a\x48\x41\x41\x11\x7f\x51\xc0\xd7\x52\x7d\xe2\x4e\x3a\x67\xec\x5e\xfd\x6b\xff\xbe\xe6\x3e\x39\x03\x13\xe6\x04\x9b\x24\x15\x71\xbe\xed\xe8\xc8\x50\x16\xf8\x4f\x82\xcd\xb2\x8e\x7e\x33\xa5\x5d\x5a\x8d\x68\xce\x16\x01\x0f\x43\xa1\xd5\x52\xd2\x59\x78\xa0\xd5\xa4\xdb\xf7\xc7\xac\xe3\x74\x8f\x67\xd2\x26\x32\xa1\x65\xca\xf8\xd2\x8a\x4f\x3d\x29\xbb\xd7\x12\x53\x3b\x48\x94\x58\xe9\x98\x98\xa8\x4d\x22\x62\x0a\x66\xca\xf5\xea\xe7\x9e\x05\xa5\x6e\x66\xba\xe8\x79\xd8\xdb\x1c\x9c\x77\xfa\xb8\x1d\xdb\x84\x27\x46\xe4\xbb\x7b\x09\x0c\x2e\xb6\x93\xdf\x7d\x1b\x63\xea\x26\x3f\x5e\xbc\x4d\x81\x24\x47\xd5\x1a\xbf\xa6\x73\x7f\xd8\xbf\x8c\xad\x45\xec\x89\x56\x47\x26\x69\xcc\x53\xe1\xf9\xce\x75\xfb\x73\xd4\xe7\x67\x73\x24\x2d\x98\x6d\x74\x90\x88\xc7\xa9\x4f\x79\x5e\x3a\xe8\xe9\x38\x7d\x24\xaa\xf6\xf4\x9d\x20\x93\xdf\xa3\xd7\x2f\xca\x01\x48\x0c\xde\xdf\x89\x7b\x7f\x2f\x87\xc9\x57\xd2\x26\xec\xcb\xa5\x53\x7b\xd4\x82\x93\xa7\x8b\xbf\xde\xb1\x18\xbd\x21\xdf\x97\xce\xe7\xe5\x01\x9d\x19\xca\xf0\x5a\x9f\x4d\x47\x90\xfb\x39\x61\xaf\x7f\x49\x64\xb8\xd0\x59\xd3\x5f\xd4\xb2\x67\x3e\x7f\xb5\x8b\x61\xfe\xc7\x37\x43\x0a\x16\x68\x3f\x6f\x3e\xc9\xd8\x21\xff\xbc\x27\x69\xf0\x25\x7b\xb8\x5a\xa9\xbf\x3d\x5c\xb1\xbb\x92\x34\x29\x28\x5b\x3b\xd3\xc9\x2e\x30\x2f\xea\x35\x77\x68\x00\x28\xef\x36\xf0\x1d\xe3\x1e\x24\x33\x42\x7e\x37\x63\xab\xf3\x52\x23\x21\xa3\x40\xcc\x99\xfe\x4d\x4a\xb7\xb7\x73\x8a\x42\xa3\x6b\x07\x22\xfb\xf9\x63\xc4\xab\x7e\x08\xd6\x84\xfe\x02\xd6\x44\xe9\x99\xce\x6d\x4d\x44\x95\x00\xe3\xd1\xd8\x13\x9b\xce\x7d\x4e\x51\xc0\x9d\x23\xd5\x3c\x73\xf2\xc4\x15\x3d\x04\x5f\x42\xd1\xbb\x3c\x45\x6f\x40\xfa\x14\xb6\xfd\xec\x1b\x04\x5f\xb6\xb8\xf9\xa9\xea\x2c\x9b\x11\x79\x40\x5f\xb1\xc3\xa3\x17\xcb\xfd\xc6\xce\x53\x84\x6d\x8f\xb6\xb3\xaf\xfe\xda\x27\x19\xdf\x05\x41\x06\xb4\x06\xd1\xa4\x6f\xe7\x09\xc8\xb4\x33\xa3\x86\x24\xbb\x33\x25\xd9\x9d\x18\xa9\xa0\xaa\xe1\x84\xab\x1a\x36\x33\xa2\xa6\x8a\x86\xc7\xf7\xb2\x6d\xc7\xbf\x50\xc7\x10\x75\x0c\x51\xc7\x10\x75\x0c\xa7\x56\xc7\xb0\x79\xe5\xad\xad\x61\xd8\x73\xb4\xc1\xc9\x2a\x17\x36\x3f\xfe\xee\xaa\x85\x43\x96\xc1\x21\xb5\x0a\x9b\x65\xb0\xbb\x4e\x61\xcf\x32\x40\x75\x42\x54\x27\x44\x75\x42\x54\x27\x44\x75\xc2\xde\xaa\x13\xb6\x58\xfd\xb7\x2a\x13\xee\xcd\xd1\xbb\xa0\x60\xc3\x76\x4f\x33\xe1\xea\x8a\xcd\xe2\xde\x57\x59\xf1\xb4\x72\x47\x3d\xc5\x5e\x46\x74\xbb\x96\x62\xcf\xc3\x7a\xd6\x0a\x8a\xcd\xe2\xd9\x53\x3d\xb1\xef\x65\x73\xa8\x35\x13\x9b\x85\x56\x43\x30\x8e\xf6\xe7\x99\x4f\x7f\x1e\x44\xaf\xc2\x8c\xfa\xe8\xba\x1b\xf4\xf9\xef\x7a\xa8\xd5\x63\x19\x8e\x42\x82\xb2\x5c\xb5\xc0\x59\x3b\x8a\x71\x7c\xc8\x2e\x93\xd1\x2c\xb7\xe6\x62\xa8\xcd\x01\xc7\x2e\x1c\xbb\x70\xec\xc2\xb1\x3b\x41\xc7\xee\x18\x1a\xd4\x20\x60\xb2\xf5\x40\x9d\x33\x60\x12\x7d\x84\x50\x29\xea\x82\x2b\x45\xa1\x69\x14\xb0\x0c\xb0\x0c\xb0\x0c\xb0\x0c\xb0\x0c\x9a\x46\xa1\x80\x22\x0a\x28\xa2\x80\x22\x0a\x28\x56\x67\xe4\x49\x7b\xa3\x4d\x89\xa1\xa2\x43\xdd\xb4\x89\x2a\x3a\xd4\x8d\xa9\x43\x5d\x2d\xac\x43\x9e\x2a\x8a\xa2\x1e\x5b\x14\x35\x57\x99\xc6\x95\xa2\x35\x8e\xd4\xcd\x4e\xf8\x36\x32\xcd\x2e\x27\xd3\xac\xdd\x06\xd3\x94\x6d\x76\x3a\x4b\x0c\xe1\x09\x08\x4f\x40\x78\x02\xc2\x13\x10\x9e\x50\xb7\xf8\x82\x7b\x8f\x48\x22\x40\xa1\x40\xa1\x40\xa1\x40\xa1\x40\xa1\x40\xa1\xd3\x42\xa1\xa0\x13\xa0\x13\xa0\x13\xa0\x13\xbd\xd3\x89\x03\x08\xfe\x40\x73\xc1\xda\x89\x70\x3b\x1f\x6c\x52\x65\xc7\x77\x9e\x80\xaa\x7e\xa8\xea\x77\x51\x55\xfd\x8c\xf6\xa8\x0b\x30\x87\x2e\x53\xa3\xc4\x12\x47\x46\xe2\x2d\x4b\x36\xce\xa3\x5a\x8a\x68\xa9\x17\x7c\xad\xd7\xa9\x28\x96\xa4\xad\xd6\x65\x98\xee\x6f\xa5\x44\x9c\xa8\xfc\x35\xfa\x29\x35\x3d\x8d\xf9\x54\xe8\xa7\x24\x93\x8e\xc1\xa0\xb6\xdc\x0a\x2d\xe8\xf7\x40\x40\x7d\x6c\x3f\x18\x70\x34\x15\xeb\x51\xac\xfe\x72\x72\xaf\x50\xac\x1e\xc5\xea\x6b\x6e\x66\x0c\x3a\xdc\x58\xeb\xd4\x0f\xbb\x15\x75\x07\x37\x3e\x51\x85\x99\x34\x93\x31\x28\xcc\xaf\x58\x87\x95\x49\xf4\x5f\xff\x3e\x51\x81\x92\x56\x4a\xda\x8e\xaa\x24\xa8\x45\x02\x9d\x6c\x12\x3a\x19\xb2\xbf\x2f\x28\xfb\x1b\x69\x6e\x48\x73\x43\x9a\x1b\xd2\xdc\x60\x4e\xee\x7a\x8b\x06\x99\x53\x72\x1e\xe3\x0c\x29\x31\xe6\xb8\xbd\x29\x31\xa3\x30\xd2\x32\x87\x77\xe7\x89\x30\xb1\xe0\x6e\x45\x05\x6b\xb6\xa9\xd4\x49\x27\xc9\x7e\x29\xe8\x26\xe2\x2f\x8a\x69\x5b\xaa\x4f\xdc\x49\xe7\x8c\xdd\xab\x7f\xed\xdf\xd7\xdc\x27\x2f\x60\xc2\x9c\x60\x93\xa4\x22\xce\x77\x1c\xd3\xbd\x3a\xf0\x9f\x04\x9b\x65\x77\x39\x53\x8a\xa5\x55\x86\xe6\x6c\x11\xf0\x30\x34\x6d\xc7\x49\x5d\xe1\x81\xd6\x90\x6e\xdf\x1f\xb3\x84\xd3\x3d\x9e\x49\x91\xc8\x84\x96\xe9\xe1\x4b\x2b\x3e\xf5\xa4\xec\x5e\x4b\x4c\x6d\x1e\x51\x62\xa5\x63\xc2\xbe\xa8\x15\xb8\xc3\xc3\x82\x4a\xfd\xdc\xb3\xa0\xd4\xcd\x4c\x97\xae\x0f\x7b\x87\x83\xff\x6e\xd7\xe6\xe0\x89\x71\xb8\xef\x5e\xc2\xbb\x09\xde\x18\xdf\x49\xed\x1d\xb4\x01\xd9\x43\x61\xd8\x80\xf7\xa3\x83\xf7\x14\x15\xd4\x4a\x9b\xa9\xae\xd2\xd7\x74\xee\x0f\xfb\x17\xec\xb5\x88\x3d\xd1\xea\xc8\x24\x8d\x79\x2a\x3c\xdf\xb9\x6e\x7f\x8e\xfa\xfc\x6c\x8e\xa4\xad\xa1\x8d\xb6\x15\xf1\x38\xf5\x29\x69\x4f\x47\xb0\x1d\xac\x79\xd1\xef\x0d\xc9\x99\xdd\x57\xc4\xc1\x1e\xe3\x65\x51\x8e\x26\x63\x70\x71\x4f\xdc\xc5\x7d\x39\x61\x07\x95\x1c\x18\xfb\x72\xe9\x3c\x2d\xb5\xe0\xe4\xb9\xff\xaf\x77\x2c\x46\x6f\xc8\xc1\xa7\x93\xb3\x79\x40\x67\x86\x32\xbc\xd6\x67\xd3\x11\xe4\x63\x4f\xd8\xeb\x5f\x12\x19\x2e\x74\x0a\xfc\x17\xb5\xec\x99\xcf\x5f\xed\x62\x98\xff\xf1\xcd\x90\xe2\x21\xda\xcf\x9b\x4f\x32\x76\x08\x42\x78\x92\x06\x5f\xb2\x87\xab\x95\xfa\xdb\xc3\x15\xbb\x2b\x49\x93\x22\xec\x35\x31\x20\x0b\xc8\xbc\xa8\xd7\xdc\xa1\x01\xa0\x24\xea\xc0\x77\x8c\x0f\x94\x0c\x26\xf9\xdd\x8c\xad\x4e\x32\x8e\x84\x8c\x02\x31\x67\xfa\x37\xa9\x76\x82\x9d\x53\x14\xe7\x5e\x3b\x10\xd9\xcf\x1f\x23\x5e\xf5\x43\xb0\x9b\xf4\x17\xb0\x9b\x86\x62\x37\x45\x95\x40\xf1\x31\x58\x4e\x9b\xce\x7d\x6a\x51\xc0\x9d\xc3\x95\x3b\x73\xde\x25\xa8\x77\x08\x28\x85\x66\x77\x51\x9a\xdd\x80\x14\x28\xec\xf3\xd9\x37\x08\x28\xbd\x38\xfd\x64\x33\x0e\xbf\xee\x2b\xd6\x7d\x58\xe6\x4d\xa2\xb1\x6f\x21\x3a\xb3\x1f\x9e\xa8\x7f\xc7\xee\x6c\xdd\x93\x45\x83\xaf\xb1\x7c\x61\x19\x00\xde\xd9\x39\x2c\xc0\x3b\xc0\x3b\xc0\x3b\x67\xc5\x3b\xc7\x6f\x84\x2d\x41\x4f\xcd\x4e\x38\x4a\x7f\x00\x70\x0f\x9c\x02\x97\xe7\x14\x00\xee\xe9\x72\xde\x00\xf7\xc0\x0d\x04\x3b\x0a\xb8\xe7\x5c\xb8\xe7\x25\x5e\x8f\x96\xe0\x67\x2a\xea\x1e\xf0\x0f\x34\xbd\x8b\xd2\xf4\x06\xa4\x50\x61\xdf\xcf\xbe\x01\xfe\xb9\x38\x7d\x65\x8a\xf8\x87\xca\x2b\x5a\xda\xe3\x04\x3c\x29\xbf\x3a\xdd\x43\x1e\x53\x8a\x3b\x74\xfd\x6f\xbe\xbb\xe1\x41\xb1\xac\x27\xcf\x8a\xef\x9b\xa7\xff\xa0\x6e\x68\x5e\xc8\x3c\xff\x31\xcb\x59\x9f\xd1\x85\x66\x79\x27\x96\x52\x6b\x8d\x4c\x49\x62\x7e\x98\xa4\x82\x97\xdc\x9b\x55\x15\xea\x7b\xad\xbf\xac\x78\x0b\xbf\x56\x4a\x18\xa2\xde\xe6\x50\x93\x6b\xa9\x5c\xec\xfd\x37\x11\x5e\x7a\xd5\x4d\x1a\xc7\xf3\x94\xde\xa4\x57\xe6\xc4\xc0\x0a\xbd\xce\x26\xdc\xeb\xac\x99\x46\x35\xf5\x39\xdb\xeb\xee\xea\x80\xb4\xa1\xbb\x19\xba\x9b\xa1\xbb\x19\xba\x9b\x4d\xad\xbb\x59\xf3\xca\x5b\xdb\xd9\xac\xe7\xb8\x86\x93\xf5\x33\x6b\x7e\xfc\xdd\xbd\xcc\x86\x2c\x83\x43\x3a\x98\x35\xcb\x60\x77\xf7\xb2\x9e\x65\x80\x9e\x65\xe8\x59\x86\x9e\x65\xe8\x59\x86\x9e\x65\xbd\xf5\x2c\x6b\xb1\xfa\x6f\xf5\x2b\xdb\x5b\xd1\xf2\x82\xc2\x1a\xdb\x3d\xcd\x84\x7b\xae\x35\x8b\x7b\x5f\xbf\xb5\xd3\xca\x1d\x5d\xd6\x7a\x19\xd1\xed\x0e\x6b\x3d\x0f\xeb\x59\xfb\xaa\x35\x8b\x67\x4f\x4f\xb5\xbe\x97\xcd\xa1\x76\x52\x6b\x16\x5a\x0d\xd1\x38\xda\x9f\x67\x3e\xfd\xf9\x62\x4a\x56\x53\xaf\xbe\x27\x58\x56\x24\x64\xa1\xdd\xf3\xe5\x8a\x3d\xf9\xa1\xdb\x3d\x29\x7b\x9b\xab\xf9\x64\xca\x18\x95\x50\x59\x0a\xb9\xfd\x32\x2b\xd9\xbd\x85\x6b\xbf\x8c\xb3\x81\xb1\x81\xb1\x8d\x8d\xb1\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x81\xaf\x8d\x8f\xaf\xd5\x14\x7f\xa9\x71\x39\x8c\xa9\x02\x0c\x88\x21\x88\x21\x88\xe1\x38\x46\x14\xc4\xb0\x2c\x1e\x10\xc3\xd1\x13\xc3\x21\xa5\xd4\x9d\x37\x9b\xee\x57\x3f\x49\x3f\xc9\xf8\x2e\x08\xb2\xfa\x04\x80\x7e\x80\x7e\xa3\x83\x7e\xe7\x49\xac\x03\xf3\x03\xf3\x03\xf3\x03\xf3\x03\xf3\x03\xf3\x03\xf3\x03\xf3\xeb\x72\xb5\x05\xf3\x03\xf3\x03\xf3\x03\xf3\x03\xf3\x03\xf3\x03\xf3\xbb\x38\xe6\x07\x42\x06\x42\x06\x42\x36\x8e\x11\x05\x21\x2b\x8b\x07\x84\x6c\xbc\x84\xac\xa9\xfd\xd8\xc5\x83\xb3\xad\x3a\xde\xa8\x45\x09\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x06\x64\x76\x02\xdf\x2f\xda\x8a\x83\x15\x82\x15\x82\x15\x0e\x7a\x44\xc1\x0a\xcb\xe2\x01\x2b\x9c\x2e\x2b\x1c\x56\x45\xce\x51\x16\xe3\xdc\xa2\x8d\x20\x8d\x20\x8d\x63\x23\x8d\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa0\x8c\xa3\xa2\x8c\x35\xc5\x38\x0f\xc7\x87\x43\x21\x87\x40\xa6\x40\xa6\x40\xa6\x40\xa6\x83\x1e\x51\x20\xd3\xb2\x78\x80\x4c\x07\x8c\x4c\xa5\x2b\x2c\x2c\x3d\x8a\x7b\xf6\xcd\xee\x6a\xe1\x4d\x65\x94\x3d\x91\x32\x3f\x5c\xc9\x78\x9d\xcd\x6a\xce\x34\x89\xd9\xcd\x2f\x3d\x91\xfe\xaf\x74\xc5\xdd\xe2\xf3\xbf\xaa\x47\x9e\x8b\x53\x8e\x16\x1f\x66\x42\x1c\x3b\x3c\x94\xae\x28\x1c\xfd\xaa\xf8\x8b\xbb\xdf\x1b\x1b\x64\x30\xea\xf7\xa7\x64\xe0\xeb\x05\xb1\xf9\xe5\x31\xd0\xff\x6e\xf1\xf9\xf7\xba\x93\xf0\x1e\x1d\xfe\x1e\x59\x41\x52\x96\xf6\x04\x5e\xa7\x1a\x0a\x7f\xe0\x6b\x15\x6f\x42\xa5\x41\x98\xae\xb9\xc5\x97\x4c\xbb\x4c\xba\x8d\xcf\xd1\xd7\x64\x8e\x0c\x02\xe1\xd8\xdd\xe4\x77\x7d\x0b\x5b\x2d\x66\x2b\x6f\x85\x3e\xb7\xf0\x62\x7c\xc8\xae\xb2\xeb\x0a\x3b\xe0\x3d\xab\x8e\xa6\xd6\x17\x96\xd2\x7d\xae\x4e\x44\xab\x30\xd4\x7d\xd7\xcb\x24\xfd\x48\x4f\xf9\x1b\x49\x2c\x69\x39\x45\xf7\xcf\x4d\xf0\x60\xf0\x60\xf0\x60\xf0\xe0\xa9\xf1\xe0\x3d\x76\x5e\x13\x13\xde\xef\x33\xd8\x6f\xef\x1d\xb4\xf6\xfe\x47\x09\xce\x78\xc2\xdf\x52\x29\x1b\x47\xcd\x28\x3d\x0f\x4a\xcf\x56\x8c\xbd\x5a\x0a\x16\x29\x69\x25\xa9\x70\xe7\xec\x2e\x64\x7e\xa8\x57\x16\x19\xb3\x4d\x98\x2d\x4e\x2e\x73\xe3\xe7\xdf\x37\x21\x73\xfd\x58\xed\x83\xdf\x44\x36\xe3\xd5\xf2\x49\xdc\xc2\xbc\xf2\x76\x6e\x18\x01\xb3\xd5\x26\xa6\xb7\x2c\x8a\xa5\x23\x12\x02\x0c\xc6\x59\x61\x66\xd9\x9c\xfd\x9b\x7e\x91\x46\x8b\xe6\xce\x8f\xec\x9a\xdd\x05\xc1\x8f\x84\x0f\x5c\xb5\x4a\x6f\x42\x35\xf0\xca\xec\xb7\x53\xd2\x5c\x4e\xb8\x47\x0c\x94\x7e\x96\xf3\x0c\xd3\xc9\x20\x7e\x3b\x51\xec\x06\xf9\x27\x93\xc8\x1f\x45\x3f\x96\x1f\xb2\x44\xbb\x97\xd8\x52\xac\x74\xb4\x61\x06\x7c\x72\x55\xc2\xac\x5e\x34\x75\x36\x42\x6f\x0e\x4b\xc1\x42\x19\x5e\x87\xc2\xe3\x34\x41\x8d\x27\x6a\xce\xfe\xc8\x36\x6c\x0d\x7f\xb3\x57\xc3\xa8\x88\xfe\x7a\x2d\x5c\x9f\xa7\x22\x78\xce\xc3\x00\xf3\x2d\xd7\x0f\xde\x1a\x4f\x13\x09\x9d\x79\x31\x77\xe8\xad\xf1\xa5\x9b\x29\x04\xf9\xa6\x4d\x31\x96\x76\x96\x6e\x12\x75\x93\xc5\xe1\xe2\xea\x4c\xfb\x40\xe6\x47\x56\x7a\x0d\xb4\x97\x98\xeb\xfb\x5c\x0b\x1e\xd6\xde\xe3\x11\xc3\x4c\xf7\xbc\xa0\x5b\xae\xf3\xde\x35\xf8\xef\x86\x32\xfd\x0f\x89\xdf\x68\x27\x97\xdd\x31\x1c\x27\x9b\xfe\x88\xe6\x40\x34\x07\xa2\x39\x10\xcd\x81\x68\x8e\xde\xa2\x39\x5a\xee\x05\x5b\x11\x1d\xa7\xdb\x16\x3f\x16\x12\xc4\xa2\x40\xf0\x44\x64\x4b\xd0\x22\x96\x11\xf7\x48\x3b\x5a\xc8\xc0\x77\x9e\x4b\xb9\x03\x76\xd2\xe5\x19\x66\x6a\xda\xdd\xce\xff\x39\x67\x5f\xf5\x7a\xa6\x55\x97\x48\x84\xea\x65\xc9\xf7\x54\xc1\x64\x1c\x3d\xf2\xd0\xe6\x32\xc4\x1b\x71\xb3\xe2\x81\xb5\x95\x1f\xae\xf4\xd7\x0f\x57\x6c\xe5\x87\x3c\xf0\xff\x6b\x37\x92\xa5\x60\xdc\x25\x38\x2c\x6f\x34\x38\x73\x73\x33\x4c\x5f\x7e\x96\xe4\x27\x69\xfb\x74\xce\xee\x7d\x5a\x1c\x0b\xb7\x2e\xe3\xed\x67\xcb\x43\x01\x52\x6d\x1e\x93\x8d\x22\xd3\xc7\x63\x06\x54\x3f\xc1\x47\xfb\xec\x3b\x55\x9e\x3a\x0c\xd7\xad\x61\x46\x8f\xae\x5e\xd8\x47\xf9\x9d\x79\x3c\x5e\x72\xaf\xe4\x99\xcc\x8c\x1a\x11\xaf\x64\xbc\x56\x63\x52\x2b\xaf\xdf\x2a\x4f\xb4\x5b\x5c\xa4\xf4\x5a\x8d\x35\xd2\xb2\xf5\x95\x36\xe9\xf8\x6e\x6e\x0a\x93\xae\x40\xce\x89\x6c\x8c\x13\x42\x70\xf4\xad\xd5\x06\xe6\x85\xc1\xb4\xfb\x48\xc6\xe2\xb3\xbc\x9c\xf2\x8f\xcd\xd9\x9d\xe3\x88\x28\xa5\xbd\xa9\x68\xd9\xcd\xf4\x33\xcc\xd8\xb5\x99\x80\xe5\x09\x9a\xfc\xc4\x66\x3f\x73\xe7\xc9\x8b\xe5\x26\x74\xd5\x51\x94\xe3\x42\x07\x55\x04\xa7\x55\x48\xa3\x1f\x97\x2f\x62\x9f\x60\x99\x5d\xe9\x27\x36\xfb\x24\x63\x51\xb8\x2c\x73\x78\xe2\x70\x57\x3d\xbd\x91\x8f\x4e\x81\xa2\xeb\x25\xda\xf4\xdc\xba\xe0\x2a\xbb\xc6\x31\x13\x32\xaa\x4e\xf7\xf3\x68\x9c\x13\x0e\xda\x69\x37\x0e\xfb\x02\x77\xce\x35\x0a\x08\xe1\xe9\x6d\x7c\xb7\xc3\x78\x4e\xe7\xdb\x38\x67\x40\x4f\x3b\x61\xed\x09\xea\x79\xa9\xfe\x53\x8b\xe9\xc0\x92\x0f\xc4\x74\x5f\x53\x9e\x6e\xda\xf2\xb9\xb1\x21\xe4\xc2\x59\x3b\x12\xb9\xf5\x86\x9c\x2b\x4b\x9d\xe4\x74\xe7\x74\xba\x3e\x9b\x7b\x07\xe5\x3d\x38\xa5\xbb\xf3\xaa\x13\xda\x49\x16\x1b\xc3\xda\x6a\xf3\xb6\xe0\x44\x4b\xbc\xad\x2e\x52\x80\xdb\x2f\x45\xda\xc8\x49\xbf\x9c\x9c\xf4\x76\x7b\x4a\x53\x5e\xfa\xe9\x8c\x2f\x44\x24\x20\x22\x01\x11\x09\x88\x48\x40\x44\x42\xdd\xe2\x0b\xd4\x3d\x22\x89\x80\x7e\x82\x7e\x82\x7e\x82\x7e\x82\x7e\x82\x7e\x4e\x8b\x7e\x02\x48\x00\x48\x00\x48\x00\x48\xf4\x0e\x24\x0e\x80\xf6\x03\xcd\x37\x6e\x27\xc2\xed\x9c\xe3\x97\x7a\xdc\x06\x85\x72\x76\x9e\x70\x59\x65\x80\xe7\x84\x31\x0c\x85\x98\x17\xbd\xf8\x13\xce\x39\x6c\x06\x46\x9d\xb5\x17\x3d\x15\x24\x3a\xa2\xee\xef\x58\xaa\xc8\xbc\xaa\x8c\xda\x55\x24\x93\x8e\x89\x98\x36\x5c\x18\x6f\x0b\xbf\xf4\xf1\x1d\xe2\xaf\xe3\x32\x3a\xf7\x54\x20\xea\x69\x51\xe8\x24\xc3\x13\x59\x46\xc5\x41\x1f\x6c\x96\x11\xf9\x24\xbe\xf0\x90\x7b\x22\xd6\xde\x35\x5d\x69\x2b\x49\xa4\xe3\x93\xb9\x98\xf9\xb1\x38\xb9\x23\x65\xcc\x44\x98\x2a\xfd\xcd\xda\xcf\x6b\xfe\xa4\xa4\x98\x3e\x8a\x44\x58\x25\xa8\x98\x4b\x63\x73\x6e\x48\x09\x24\x9f\x95\x8c\xd9\xed\xbb\xf7\xea\xd8\x98\x3b\x04\xa9\x02\x19\x7a\x5a\xe5\x21\xbf\x92\x23\xc3\x94\xfb\xa1\x5e\x98\xc8\x6f\x93\x1f\x4b\x8e\x7b\x83\xd0\xd8\xf2\x39\xd3\xea\x3d\x19\xf0\xd0\x9b\xcb\xd8\xbb\x89\x9e\xbc\x9b\x4d\xe8\x3b\xd2\x15\x37\xff\xf8\x9c\x2c\xd4\x55\x8e\x76\x04\x1b\xe1\x74\x39\x3c\x83\xd2\x91\xc6\xaa\xba\xb4\x55\x5b\xde\xb5\x50\x5b\x3e\x68\x9f\xd6\xb0\x6e\xfb\x5d\xe3\x6d\xeb\xc8\xd9\x61\xdd\xf7\xe4\xb4\x44\x52\x44\x46\xa0\x25\xbe\x62\x47\xd4\xd6\xa8\xe9\x7f\xd3\x63\x89\x8d\xd6\xaa\xd7\x56\x59\x0d\x14\xd3\x28\xfe\x3a\x54\xad\x31\xaa\x5a\x48\x5f\xbe\xa0\xf4\x65\xe4\x69\x21\x4f\x0b\x79\x5a\xc8\xd3\x82\x95\xb8\xeb\x2d\x1a\x64\x52\xc4\x79\xac\x2e\xe4\x74\xec\xcf\xe9\x18\x83\xf9\x95\x39\xae\x3b\xcf\xe4\x88\x05\x77\x2b\xba\x57\x4b\x33\x4a\x9d\xd9\x5f\xfa\x46\x41\x1d\x11\x7f\x51\x50\xd6\x52\x7d\xe2\x4e\x3a\x67\xec\x5e\xfd\x6b\xff\xbe\xe6\x3e\xf9\xf3\x12\xe6\x04\x9b\x24\x15\x71\xbe\xc9\xe8\xe8\x4d\x16\xf8\x4f\x82\xcd\xb2\x56\xa2\x33\xa5\x4b\x5a\xfd\x67\xce\x16\x01\x0f\x43\xa1\x95\x50\xd2\x50\x78\xa0\x95\xa2\xdb\xf7\xc7\xac\xda\x74\x8f\x67\xd2\x1d\x32\xa1\x65\xaa\xf7\xd2\x8a\x4f\x3d\x29\xbb\xd7\x12\x53\xfb\x45\x94\x58\xe9\x98\xb8\xa5\x4d\x22\x62\x0a\x38\xca\xb5\xe8\xe7\x9e\x05\xa5\x6e\x66\xba\x78\x78\xd8\x9b\x1a\x7c\x71\x5b\xdb\x81\x27\x46\xe1\x8a\x7b\x09\xb0\x2d\x36\x6f\xd9\x7d\x1b\x63\xea\xe0\x32\x5e\x04\x4d\xa1\x1d\x47\xd5\xf4\xbe\xa6\x73\x7f\xd8\xbf\x68\xad\x45\xec\x89\x56\x47\x26\x69\xcc\x53\xe1\xf9\xce\x75\xfb\x73\xd4\xe7\x67\x73\x24\x2d\x8f\x6d\x74\x8d\x88\xc7\xa9\x4f\x99\x57\x3a\x0c\xe9\x38\xbd\x83\x7e\xf4\xec\xde\xdb\xbe\xc0\xf9\x1e\x6d\x7d\x51\x0e\x06\x62\xf0\xe9\x4e\xdc\xa7\x7b\x39\xf8\xbc\x92\xc2\x60\x5f\x2e\x9d\x66\xa3\x96\x9a\x3c\x75\xfb\xf5\x8e\x65\xe8\x0d\x79\xb4\x74\x6e\x2d\x0f\xe8\xcc\x50\x86\xd7\xfa\x6c\x3a\x82\x9c\xca\x09\x7b\xfd\x4b\x22\xc3\x85\xce\x60\xfe\xa2\x16\x3c\xf3\xf9\xab\x5d\x06\xf3\x3f\xbe\x19\x12\xd7\x6f\x3f\x6f\x3e\xc9\xd8\x21\xaf\xbb\x27\x69\xf0\x25\x7b\xb8\x5a\xa9\xbf\x3d\x5c\xb1\xbb\x92\x34\x29\x40\x5a\xbb\xc8\x49\xff\x37\x2f\xea\x35\x77\x68\x00\x28\x07\x36\xf0\x1d\xe3\xf4\x23\x73\x41\x7e\x37\x63\xab\x73\x44\x23\x21\xa3\x40\xcc\x99\xfe\x4d\x4a\x7d\xb7\x73\x8a\xc2\x94\x6b\x07\x22\xfb\xf9\x63\xc4\xab\x7e\x08\x56\x83\xfe\x02\x56\xc3\xd9\xad\x86\xa8\x12\xe0\x3b\x02\xbb\x61\xd3\xb9\x0f\x29\x0a\xb8\x73\xa4\x3a\x67\x4e\x9e\xac\x42\x87\x48\x48\xa8\x72\x97\xa4\xca\x0d\x48\x63\xc2\xc6\x9e\x7d\x83\x48\xc8\x1d\xb7\x3d\x3d\x7d\x64\x33\x0a\x2f\xe6\x2b\xd6\x2a\xa0\x90\x12\xa0\xf6\xb4\xec\xea\x9c\x87\x99\x64\xf9\xd0\xf5\xbf\xf9\xee\x86\x07\xc5\xc4\x3b\x9e\x95\xc7\x28\x3e\xfc\xbc\x10\x4d\xf3\x63\x16\x87\x33\xa3\x0b\xcd\xf2\x5a\x49\xa5\xe2\x37\x99\x0e\xc4\xfc\x30\x49\x05\x2f\xb9\x26\xab\x1a\xd2\xf7\x3d\x0e\xaf\x5f\x2b\x59\x46\xc8\x85\x1b\x6a\xa8\x00\xa5\x72\xde\x7f\x13\xe1\xe5\xa6\xc4\xd1\x08\x5e\x42\x5e\x1c\x6a\x0f\x4e\xb8\xf6\x60\x33\x37\x6a\xaa\x3b\x78\x7c\xe7\xe5\x76\x4c\x0c\xd5\x06\x51\x6d\x10\xd5\x06\x51\x6d\x70\x6a\xd5\x06\x9b\x57\xde\xda\x4a\x83\x3d\x47\x20\x9c\xac\xbe\x60\xf3\xe3\xef\xae\x2d\x38\x64\x19\x1c\x52\x51\xb0\x59\x06\xbb\xab\x09\xf6\x2c\x03\xd4\x10\x44\x0d\x41\xd4\x10\x44\x0d\x41\xd4\x10\xec\xad\x86\x60\x8b\xd5\x7f\xab\x7e\xe0\xde\x9c\xbc\x0b\x0a\x40\x6c\xf7\x34\x13\xae\x81\xd8\x2c\xee\x7d\xf5\x0f\x4f\x2b\x77\x54\x3d\xec\x65\x44\xb7\x2b\x1e\xf6\x3c\xac\x67\xad\x73\xd8\x2c\x9e\x3d\x35\x0e\xfb\x5e\x36\x87\x5a\xd9\xb0\x59\x68\x35\x14\xe3\x68\x7f\x9e\xf9\xf4\xe7\x0b\x68\x58\x4d\x91\x8d\x9e\xa0\x58\x91\x84\x85\x76\xb7\xaf\xeb\xf9\xd3\x09\x11\x7b\x9b\x2b\xf8\x64\xc4\x18\x65\x50\xd9\x08\xb9\xe5\x32\x2b\x59\xbc\x85\x6b\x1f\xcb\xd3\xc0\xd2\xc0\xd2\xc6\xc3\xd2\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc0\xd1\xc6\xc4\xd1\x50\x9a\xe4\x90\xf1\x01\x19\x04\x19\x04\x19\x04\x19\x04\x19\xbc\x3c\x32\xa8\xeb\xcf\xde\x1c\x45\xfc\xce\x92\xe5\x5a\x19\x60\x8f\x6a\x06\xaf\x64\xbc\xce\x26\x34\x67\x9a\x47\xec\x86\x76\x9e\x48\x75\x11\xdc\xbb\xc5\xe7\x7f\x55\x8f\x45\x4e\xef\x81\x00\x2d\x13\xe2\xc8\xf1\x99\x7e\x15\x0a\xc7\xbf\x2a\xfe\x66\xed\x6b\x63\x59\xfa\xa8\x5f\x9f\x92\x99\xab\x97\xc2\x36\xef\x8e\x01\xde\x77\x8b\xcf\xbf\xd7\x9d\x86\xd7\xe8\xf0\xd7\xc8\x0a\x72\x0a\xbd\x0e\xf5\x1b\x52\x83\xa3\xdb\xbf\x55\xa1\x2d\xb2\x6b\xe2\x52\xe8\xf3\xdf\x37\x91\x74\x5d\x3f\x89\x37\xf4\x78\xcb\x8d\xeb\x89\x34\x39\x51\x5b\x98\x42\xdd\x7c\xb9\x62\x0b\xe9\x7e\xcc\x6e\xe4\x67\xba\x91\x3d\x2f\x8e\xbe\x44\xe9\xdd\xf9\x90\x5d\x2e\xab\x27\xec\x36\x5c\x14\x6d\x64\xc0\x52\xc1\x52\xc1\x52\xc1\x52\x27\xc8\x52\xdb\x55\x38\xaa\xe5\xa9\x27\x2b\x3e\x85\x1a\x61\xad\x07\xea\x9c\x35\xc2\x4e\x06\xc0\x0f\xa8\xca\x55\x0b\x80\xd1\xd4\x0c\x4d\xcd\x06\x36\xfd\x0f\x89\x7d\x68\x27\x97\xdd\xf1\x0f\x27\x9b\xfe\x88\x84\x40\x24\x04\x22\x21\x10\x09\x81\x48\x88\xde\x22\x21\x5a\xee\x05\x5b\xd1\x10\xe8\xf5\x89\x5e\x9f\xe8\xf5\x89\x5e\x9f\xa3\xe8\xf5\xd9\x7e\x42\x4e\x38\xc8\xa7\xdd\x38\xec\x0b\xf4\x39\xd7\x28\x20\xe4\xa7\xb7\xf1\xdd\x0e\xfb\x39\x9d\x6f\xe3\x9c\x01\x40\xed\x84\xb5\x27\x08\xe8\xa5\xfa\x4f\x2d\xc0\x03\x7f\xbe\xc8\xfe\xbd\x3b\xb1\x73\xe1\xbc\xbd\x1d\x7c\x73\x75\xa9\x8b\x84\xe8\x68\x7b\xff\xcd\x72\xa1\xf7\x93\xde\xf3\x77\xf3\xd5\x8e\xb2\xd8\x18\xd7\x56\xa3\xb7\x35\x1a\x0e\x83\xdf\xea\x5a\x25\xf4\xdd\x39\xf0\x46\xb6\xf7\xe5\x64\x7b\xb7\xdb\x71\x9a\x32\xbe\x4f\x67\x9a\x21\x5e\x01\xf1\x0a\x88\x57\x40\xbc\x02\xe2\x15\xea\x16\x5f\x80\xf0\x11\x49\x04\x6c\x14\x6c\x14\x6c\x14\x6c\x14\x6c\x14\x6c\x74\x5a\x6c\x14\xb8\x02\xb8\x02\xb8\x02\xb8\xa2\x77\x5c\x71\x00\xd2\x1f\x68\xf6\x72\x3b\x11\x6e\x67\x30\x4f\xaa\xb9\xfe\xce\x13\x2e\xab\xb2\xee\xdc\x04\x62\xd8\xbe\xb9\x35\xee\xfc\x49\xa7\x33\x36\x73\xa5\xae\x9a\x54\x9e\x90\x25\x1d\x51\x5e\xd7\xa8\x90\xba\x13\x79\xe8\x32\x35\x44\x2c\x71\x64\x24\xde\xb2\x64\xe3\x3c\xaa\xf5\x88\xd6\x7b\xc1\xd7\x7a\xb1\x8a\x62\x49\x2a\x6b\x5d\x61\x84\xfd\x45\x79\x08\x1c\x95\xbf\x46\x65\x9e\xa6\xa7\x31\x9f\xfe\xcc\x07\x59\x26\x1d\x13\x43\x6d\xbe\x31\x7e\x20\x1c\xd4\xa7\xf5\x8b\x07\x8f\xcb\x87\xdd\x33\xab\xfa\x5e\x34\x3b\x49\x94\x45\xb2\x56\x71\xf4\x07\x9b\xac\x45\xce\x9b\x2f\x3c\xe4\x9e\x88\xb5\x1b\x52\x2f\xa3\x49\x22\x1d\x9f\xec\xea\xcc\xe1\xc7\xc9\x6f\x2b\x63\x26\xc2\x54\x29\xba\xd6\xd1\xb0\xe6\x4f\x4a\x8a\xe9\xa3\x48\x84\xd5\x16\x8b\x29\x49\x36\x75\x89\xb4\x65\x72\xee\xc9\x98\xdd\xbe\x7b\xaf\x8e\x8d\xb9\x43\x34\x2f\x90\xa1\xa7\x75\x43\x72\xc0\x39\x32\x4c\xb9\x1f\xea\xb5\x8b\x1c\x5c\xf9\xb1\x44\x38\x0c\x6b\x64\xcb\xe7\xcc\xfc\xf1\x64\xc0\x43\x6f\x2e\x63\xef\x26\x7a\xf2\x6e\x36\xa1\xef\x48\x57\xdc\xfc\xe3\x73\xb2\x50\x57\x39\xda\x63\x6e\x84\xd3\xe5\xf0\x0c\x4a\x99\x1c\xbd\x8e\xd7\x56\xbf\x7b\xd7\x42\xbf\xfb\xa0\xbd\x80\x03\xbd\xff\x77\x8d\xf7\xaf\x43\x92\x07\xfa\x00\x13\x54\xb0\x49\x91\x19\x85\x82\xfd\x8a\x75\x58\xf3\xa4\xa6\x59\x4f\x8f\xa5\x4f\x0e\x55\xea\x6a\xca\x9d\x0c\x44\xa9\x1b\x49\x91\x13\xe8\x6e\xc5\x41\x1e\xac\xee\x86\xb4\xf2\x0b\x4a\x2b\x47\xfe\x1c\xf2\xe7\x90\x3f\x87\xfc\x39\x98\x9d\xbb\xde\xa2\x41\x26\xab\x9c\xc7\x68\x43\xae\x4d\x53\xae\xcd\x38\x8c\xb6\xcc\x61\xde\x79\x86\x4d\x2c\xb8\x5b\xd1\xbf\x0e\x33\xb2\xd4\x05\x4e\x9a\x56\x53\x50\x56\xc4\x5f\x14\x2c\xb7\x54\x9f\xb8\x93\xce\x19\xbb\x57\xff\xda\xbf\xaf\xb9\x4f\xee\xc3\x84\x39\xc1\x26\x49\x45\x9c\x6f\x41\x3a\xaa\x96\x05\xfe\x93\x60\xb3\xec\x8e\x67\x4a\xd3\xb4\xda\xd1\x9c\x2d\x02\x1e\x86\x42\xab\xa8\xa4\xbf\xf0\x40\xab\x4c\xb7\xef\x8f\x59\xd3\xe9\x1e\xcf\xa4\x59\x64\x42\xcb\x14\xf3\xa5\x15\x9f\x7a\x52\x76\xaf\x25\xa6\x76\x93\x28\xb1\xd2\x31\xf1\x64\x9b\x44\xc4\x14\x08\x96\xeb\xd8\xcf\x3d\x0b\x4a\xdd\xcc\x74\xb1\xfd\xb0\xb7\x3c\x38\xfa\xd8\x9e\x5d\xa3\xb2\x86\x8d\x60\xcb\x38\x02\xa4\x17\x7b\xd7\x34\xde\xcd\x98\x5a\xd8\x20\x42\x60\x74\x11\x02\x14\x7f\x74\x54\x31\xfb\x6b\x3a\xf7\x87\xfd\x2b\xf8\x5a\xc4\x9e\x68\x75\x64\x92\xc6\x3c\x15\x9e\xef\x5c\xb7\x3f\x47\x7d\x7e\x36\x47\xd2\x5e\xd1\x46\x25\x8b\x78\x9c\xfa\x94\x1e\xa8\x63\xe5\x5e\xa4\x9e\xd1\x6f\x0f\xd1\x05\xde\x57\x5c\xc3\x1e\x93\x67\x51\x8e\x65\x63\x70\x8c\x4f\xdc\x31\x7e\x39\x41\x0d\x95\x0c\x1c\xfb\x72\xe9\x2c\x31\xb5\x08\xe5\x95\x07\x5e\xef\x58\xa0\xde\x90\x5b\x50\xa7\x86\xf3\x80\xce\x0c\x65\x78\xad\xcf\xa6\x23\xc8\x33\x9f\xb0\xd7\xbf\x24\x32\x5c\xe8\x04\xfc\x2f\x6a\x29\x34\x9f\xbf\xda\x05\x32\xff\xe3\x9b\x21\x45\x5b\xb4\x9f\x37\x9f\x64\xec\x10\xba\xf0\x24\x0d\xbe\x64\x0f\x57\x2b\xf5\xb7\x87\x2b\x76\x57\x92\x26\xc5\xf7\x6b\xce\x40\x66\x92\x79\x51\xaf\xb9\x43\x03\x40\x29\xdc\x81\xef\x18\xcf\x29\x59\x55\xf2\xbb\x19\x5b\x9d\xe2\x1c\x09\x19\x05\x62\xce\xf4\x6f\x52\xe5\x06\x3b\xa7\x28\xca\xbe\x76\x20\xb2\x9f\x3f\x46\xbc\xea\x87\x60\x5c\xe9\x2f\x60\x5c\x0d\xc9\xb8\x8a\x2a\xa1\xea\xa3\x30\xaf\x36\x9d\x7b\xe4\xa2\x80\x3b\x2f\xd3\xfa\xcc\x35\x2e\x49\xef\x43\x3c\x2b\x54\xbf\x8b\x54\xfd\x06\xa4\x61\x41\x11\xc8\xbe\x41\x3c\xeb\x45\x2b\x32\x9b\x91\x78\x89\x5f\xb1\xee\xa3\x41\x6f\x12\x8d\x96\x8f\x69\x48\x79\x10\xb6\xd4\xbf\x63\xb7\xb9\xd3\x00\x4c\x83\xcd\xb1\xbe\x61\x7d\x00\x45\x02\x45\x02\x45\x02\x45\x1a\x09\x45\xea\x66\xb7\x3c\x90\x27\xd5\x6c\x97\xa3\xf4\x2e\x80\x2a\xc1\xb5\x70\x79\xae\x05\x50\xa5\x2e\xe7\x0d\xa8\x12\x9c\x49\x30\xb6\xec\x9f\x41\x95\xce\x42\x95\xba\xf2\x99\x1c\xc8\x97\xa6\xa2\x07\x82\x32\x41\x15\xbc\x48\x55\x70\x40\x1a\x17\x14\x83\xec\x1b\x50\xa6\x8b\x56\x6c\xa6\x43\x99\xea\x70\x52\xaf\x00\xa9\xd7\xce\x52\x35\xa7\x7f\x92\xf1\x5d\x10\x64\x3a\xd2\x20\x08\xd2\xce\x13\x50\x3e\x14\xe5\x43\x2f\xaf\x7c\x28\xfa\xb5\x4d\xb8\x5f\x5b\x33\x80\x6a\xea\xd5\xb6\xd7\x9b\xd5\x01\x5c\x43\x87\x36\x74\x68\x43\x87\x36\x74\x68\x9b\x5a\x87\xb6\xe6\x95\xb7\xb6\x3b\x5b\xcf\xa1\x0c\x27\xeb\xc9\xd6\xfc\xf8\xbb\xfb\xb1\x0d\x59\x06\x87\x74\x61\x6b\x96\xc1\xee\x0e\x6c\x3d\xcb\x00\x7d\xd7\xd0\x77\x0d\x7d\xd7\xd0\x77\x0d\x7d\xd7\x7a\xeb\xbb\xd6\x62\xf5\xdf\xea\xb9\xb6\xb7\x9a\xe6\x05\x45\x32\xb6\x7b\x9a\x09\xf7\x8d\x6b\x16\xf7\xbe\x9e\x71\xa7\x95\x3b\x3a\xc5\xf5\x32\xa2\xdb\x5d\xe2\x7a\x1e\xd6\xb3\xf6\x86\x6b\x16\xcf\x9e\xbe\x70\x7d\x2f\x9b\x43\xed\x06\xd7\x2c\xb4\x1a\x8c\x71\xb4\x3f\xcf\x7c\xfa\xb3\x15\xd6\x4a\x84\xb3\x89\xfd\xf4\x99\xbe\xf1\x4b\xb4\xa3\xcf\x5a\xf9\x85\x92\xc1\x72\xc5\x16\x54\xb5\x9a\xee\x63\xab\x9c\x6c\x8b\xaa\xf9\x1f\xb2\x8b\xed\xbd\x10\x6a\xe6\xc3\x8d\x0b\x37\x2e\xdc\xb8\x70\xe3\x4e\xd0\x8d\xdb\x2e\xe6\xab\xd6\x95\x7b\xb2\x70\x3c\x44\x4d\xb6\x1e\xa8\x73\x46\x4d\x9e\xcc\xf7\x7e\x40\x9c\x62\xad\xef\x19\x1d\x5c\xd0\xc1\x65\x60\xd3\xff\x10\xec\xd2\x4e\x2e\xbb\xd1\xcb\xc9\xa6\x3f\x20\x0c\x20\x0c\x20\x0c\x20\x0c\x20\x4c\x6f\x10\xa6\xe5\x5e\xb0\x05\x62\xd0\xd8\x0c\x8d\xcd\xd0\xd8\x0c\x8d\xcd\x46\xd1\xd8\xac\xfd\x84\x9c\x30\x31\x6d\x37\x0e\xfb\xa8\xe9\xb9\x46\x01\xfc\xb4\xb7\xf1\xdd\x66\xa8\xa7\xf3\x6d\x9c\x93\xa6\xb6\x13\xd6\x1e\xa2\xfa\x52\xfd\xa7\x16\xd9\x21\x59\x15\xcd\x0a\x8f\x69\x56\x98\xab\x4b\x27\xc8\xc6\xda\xc9\x79\xcf\xdf\xb4\xb0\x31\x79\xb3\x35\xec\xae\x4b\xdd\x7c\x39\xe0\x46\x62\xd9\xe5\x24\x96\xb5\xdb\x61\x9a\x92\xcb\x4e\x67\x8a\x21\x3e\x01\xf1\x09\x88\x4f\x40\x7c\x02\xe2\x13\xea\x16\x5f\x80\xef\x11\x49\x04\x2c\x14\x2c\x14\x2c\x14\x2c\x14\x2c\x14\x2c\x74\x5a\x2c\x14\x78\x02\x78\x02\x78\x02\x78\xa2\x77\x3c\x71\x00\xc2\x1f\x68\xea\x57\x3b\x11\x6e\xa7\x7f\x4d\xaa\x3c\xf9\xce\x13\x2e\xbe\x92\x5f\xd9\x99\x8f\x3a\x7e\xa7\xa8\xe3\xd7\x1d\x39\x3a\xa2\x8a\xdf\x58\x32\xfb\x5f\x55\x46\xed\x2a\x92\x49\xc7\x98\x4c\x5b\x30\x8c\x1f\x44\xc4\xf4\x49\xdd\x33\xb1\xc1\xd7\x71\xaf\x3c\x62\xbb\x55\x02\xf9\x48\x13\xc8\x47\x42\x15\x77\x54\x71\xaf\xb9\x99\xf1\xa8\x35\x63\xab\xe1\x7e\xec\xdd\xbf\x6b\xbc\x7b\x1d\x71\x3b\xc8\xdb\x9f\xa0\x3e\x49\x2a\xcb\x08\xf4\xc9\x57\xec\x88\x42\x1d\xa6\x9b\xf1\x89\xea\x75\x1c\xa6\xa4\xd5\xd4\xe8\x40\x65\x0e\x68\x63\x93\xd0\xc6\x90\x0b\x7d\x41\xb9\xd0\x48\xfa\x42\xd2\x17\x92\xbe\x90\xf4\x05\x43\x72\xd7\x5b\x34\x50\x43\x12\xa6\xd8\xb0\x4c\x31\x63\x9a\x8c\xc0\x18\xcb\x1c\xde\x9d\xa7\x85\xc4\x82\xbb\x15\xed\xeb\x10\xa3\x4a\x9d\xde\x7b\x2e\x48\x41\x39\x11\x7f\x51\x84\xd7\x52\x7d\xe2\x4e\x3a\x67\xec\x5e\xfd\x6b\xff\xbe\xe6\x3e\x39\x00\x13\xe6\x04\x9b\x24\x15\x71\xbe\xe5\x98\x9e\xcf\x81\xff\x24\xd8\x2c\xeb\x29\x36\x53\x9a\xa5\xd5\x86\xe6\x6c\x11\xf0\x30\x34\xcd\xba\x49\x5f\xe1\x81\x56\x91\x6e\xdf\x1f\xb3\x86\xd3\x3d\x9e\x49\x93\xc8\x84\x96\x29\xe2\x4b\x2b\x3e\xf5\xa4\xec\x5e\x4b\x4c\xed\x1e\x51\x62\xa5\x63\x82\xa0\xa8\x81\xb6\xc3\xc3\x82\x4e\xfd\xdc\xb3\xa0\xd4\xcd\x4c\x97\x35\x5f\xc8\x16\x37\xc1\x3d\xa2\xd2\xc5\x70\xf0\x1b\xc4\x11\xf4\x97\xc0\x8d\xf1\x9e\x34\xdc\x8b\x6f\x9b\x83\x3f\xd6\xc3\x5e\xfa\xb7\xf4\xcd\x1e\x18\xd9\x73\x45\xea\xf1\x42\x6d\x8a\x1a\x69\xb5\xcb\x57\xd7\xad\x6b\x3a\xf7\x87\xfd\x4b\xd8\x5a\xc4\x9e\x68\x75\x64\x92\xc6\x3c\x15\x9e\xef\x5c\xb7\x3f\x47\x7d\x7e\x36\x47\xd2\x62\xd9\x46\x0b\x89\x78\x9c\xfa\x94\xd4\xa5\x23\x9c\x5e\xa0\x91\xd0\x2f\x0f\xc5\xcb\xdb\x17\x8a\xdf\xe3\x03\x5e\x94\x63\x8e\x18\x7c\xbf\x13\xf7\xfd\x5e\x0e\x89\xaf\x64\x4a\xd8\x97\x4b\x67\xf3\xa8\x65\x27\xcf\x10\x7f\xbd\x63\x49\x7a\x43\x9e\x2f\x9d\xc2\xcb\x03\x3a\x33\x94\xe1\xb5\x3e\x9b\x8e\x20\xe7\x73\xc2\x5e\xff\x92\xc8\x70\xa1\x13\xa5\xbf\xa8\xc5\xcf\x7c\xfe\x6a\x97\xc4\xfc\x8f\x6f\x86\x14\x22\xd0\x7e\xde\x7c\x92\xb1\x43\xde\x79\x4f\xd2\xe0\x4b\xf6\x70\xb5\x52\x7f\x7b\xb8\x62\x77\x25\x69\x52\x1c\xb6\x76\xa5\x93\x65\x60\x5e\xd4\x6b\xee\xd0\x00\x50\xaa\x6d\xe0\x3b\xc6\x39\x48\x86\x84\xfc\x6e\xc6\x56\xa7\xa2\x46\x42\x46\x81\x98\x33\xfd\x9b\x94\x61\x6f\xe7\x14\x45\x43\xd7\x0e\x44\xf6\xf3\xc7\x88\x57\xfd\x10\xec\x09\xfd\x05\xec\x89\xf2\x43\x9d\x15\xff\x57\x02\x8a\x47\x60\x51\x6c\x3a\x77\x39\x45\x01\x77\x5e\xa2\xe3\x99\x2b\x4c\x5d\xcb\x43\xc0\x25\xd4\xbc\x0b\x54\xf3\x06\xa4\x4d\x61\xd3\xcf\xbe\x41\xc0\x65\xab\xbb\x9f\xa2\xca\xb2\x19\x85\x0b\xf4\x15\x6b\x0a\x58\xa4\x74\xac\x9b\xd0\xb2\x1f\x13\xad\x48\x9f\xff\xbe\x89\xa4\xeb\xfa\x49\xbc\xa1\x51\x5a\x6e\x5c\x4f\xa4\xa5\xbe\x63\x9d\x93\x37\x93\xd7\x1f\xba\xfe\x37\xdf\xdd\xf0\xa0\x98\x23\xc8\xb3\x4a\x1e\x0b\xe9\x7e\xcc\x6e\xeb\x67\xba\xad\x79\x21\x80\xe7\xc7\x2c\xf4\x67\x46\xd7\x9b\xe5\xd5\x9d\x4a\xe5\x7a\x32\x05\x8a\xf9\x61\x92\x0a\x5e\xf2\x78\x56\xd5\xab\xef\x5b\x2e\xb4\x8c\x97\xb9\x35\xf7\xf3\x6b\x25\x43\x0a\x09\x7d\x43\x2d\x09\x49\xf9\xa8\xf7\xdf\x44\x78\xc9\x09\x7d\x34\x86\x27\xca\xea\xab\xbe\x2a\x27\x26\x3b\x28\xa2\x38\xe1\x22\x8a\xcd\x94\xaa\xa9\x80\xe2\xf1\xdd\x3c\xdb\x11\x38\x94\x4d\x44\xd9\x44\x94\x4d\x44\xd9\xc4\xa9\x95\x4d\x6c\x5e\x79\x6b\x4b\x26\xf6\x1c\xef\x70\xb2\x42\x89\xcd\x8f\xbf\xbb\x48\xe2\x90\x65\x70\x48\x69\xc4\x66\x19\xec\x2e\x8b\xd8\xb3\x0c\x50\x0c\x11\xc5\x10\x51\x0c\x11\xc5\x10\x51\x0c\xb1\xb7\x62\x88\x2d\x56\xff\xad\x42\x88\x7b\xb3\x03\x3b\x58\xf6\xcd\x53\x6b\x28\xa4\xd4\xd9\x4d\xfa\xc8\x12\x47\x46\xe2\x2d\x4b\x36\xce\xa3\x1a\x79\xb2\x57\x04\x5f\xeb\xd4\xac\x28\x96\x24\xe5\xc3\x43\x3c\xc9\x15\x88\x38\xcf\x3e\x9e\x66\xc2\x55\x2c\x9b\xc5\xbd\xaf\x82\xe5\x69\xe5\x8e\xba\x95\xbd\x8c\xe8\x76\xcd\xca\x9e\x87\xf5\xac\x95\x2a\x9b\xc5\xb3\xa7\x4a\x65\xdf\xfb\xc5\x50\x6b\x53\x36\x0b\xad\x06\xe1\x1c\xed\xc8\x34\x9f\xfe\xec\x01\x1e\xd6\xd4\x42\xe9\x89\x21\x16\xc1\x61\x68\xd5\x9f\x42\x67\xa7\x5e\x00\xe2\xdb\xdc\xf0\x21\xe3\xce\x28\xc9\xca\x76\xca\x2d\xba\x59\xc9\x13\x50\xb8\x76\x87\xf8\x11\xe8\x11\xe8\x71\x4c\xe8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x11\xd8\x71\x5c\xd8\xb1\x52\x3c\x66\xbf\xe7\x61\x4c\xe5\x63\xc0\x53\xc1\x53\xc1\x53\xc1\x53\x07\x3d\xa2\xe0\xa9\x65\xf1\x80\xa7\x8e\x8c\xa7\x22\xeb\x72\x0f\xf6\xdc\x91\x6b\xf9\x49\xc6\x77\x41\x90\x31\xd1\x04\x00\x14\x00\x74\x4c\x00\x14\xb9\x97\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\x80\xa0\xe3\x83\xa0\x40\x66\x40\x66\x40\x66\xe3\x18\x51\x20\xb3\xb2\x78\x80\xcc\xc6\x87\xcc\xaa\x6d\xd7\x87\x41\xcc\xca\x15\x5c\xcf\xc3\xcb\xca\xf7\x80\xca\xa4\xa0\x63\xa0\x63\xf9\x97\x43\xe9\x38\x07\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\x06\x36\xd6\xf6\x69\xc0\xc6\xc0\xc6\xc0\xc6\xc0\xc6\xc0\xc6\xc0\xc6\x76\xb1\xb1\xe1\x94\xe1\xec\x81\x8f\x9d\xb2\x08\xe7\xfe\x06\xcb\x20\x6b\x20\x6b\x03\x27\x6b\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\xa0\x6a\x63\xa2\x6a\x95\xb2\x9b\xfb\xfc\x0e\x63\x2a\xba\x09\x58\x08\x58\x08\x58\x38\x8e\x11\x05\x2c\x2c\x8b\x07\xb0\x70\xb8\xb0\x30\x5e\x72\x67\x6e\x89\x05\x3d\x02\x91\x13\x5f\xde\x1c\xc5\x05\xfb\xa6\x5a\x6d\x98\xa3\x27\x52\xe6\x87\x2b\x19\xaf\xb3\x39\xce\x99\xe6\x14\xff\x3f\x7b\xef\xd3\x1c\xa9\x91\xae\x7d\xef\xf5\x29\x32\x34\x0b\xd9\x31\xad\xd2\xdb\xbd\x39\x0e\xcf\x4a\xd3\xdd\x3e\x6f\xcf\x33\xb6\x15\x6e\x87\xcf\xe2\x69\xc7\x09\x44\xa5\x4a\x44\x23\xa8\x80\x2a\xf5\xd1\x9c\x98\xef\xfe\x04\x99\x40\x01\xc5\xbf\x42\x14\x24\xf0\xf3\xc6\x8a\xae\x82\x82\xcc\x24\xb9\x33\x7f\xf7\x7d\x5d\xd5\x54\x6f\x23\x77\xbf\xdd\x5b\xf6\x6d\xb6\x25\x6e\xef\x3e\xfd\x67\xf1\xb0\xb1\x70\xde\x64\x29\x5b\xda\x88\x13\x67\x6c\x41\x71\x74\x64\x0e\xbd\xc8\xfe\x7c\xdb\xe7\xeb\xf9\xed\xb4\x1f\xb1\xdc\x12\x59\xcf\xa0\x27\x3e\x5f\x7f\xbc\xbd\xbd\xfb\xf4\x5b\xd9\xc1\x3c\x65\xa7\x3f\x65\x49\x43\xaa\xd2\xde\xb9\x3d\x6c\xff\xfd\xfc\xb6\x87\xe7\xcd\x76\xf7\xe1\x4e\x06\x81\xef\xca\x7b\xc7\x5b\x3b\xde\x26\x57\x20\xae\xb7\x24\xfa\x4d\x80\xd1\xe7\x14\xb6\xef\xba\xd2\x4e\x5e\x47\xef\xf5\x75\xfc\xe6\xbb\xf2\xef\xfa\x3a\x6a\x9e\x1c\x7d\x86\x92\x87\xe7\x7d\x7a\xce\xfa\xf3\x55\x00\x73\x51\xec\x77\x1d\x92\xdc\xfb\xeb\x97\xe2\x90\x4d\x62\x92\xb2\xcf\xce\x32\x9c\x3f\xa8\x7b\xfe\x55\xb5\x62\xd8\x72\x30\xd7\x8f\x62\x18\x2c\x0c\x16\x06\x0b\x83\x9d\x1b\x83\xad\x59\x4a\x36\x71\xd8\xfa\x6d\x89\xfa\x25\xe5\x49\x73\xef\x7f\x45\x0d\x17\xef\x3e\xbf\x51\x7a\x29\x76\x34\xa2\xf4\x38\xc8\xdd\x5b\x36\xdf\xe9\x5e\x8a\x6d\xd4\x5a\xe1\x4e\xae\x57\xe2\xd6\x13\x8e\xa7\x67\x16\x3f\x10\x7b\x2f\x9d\x9c\xd6\x62\x1d\xbc\xfc\xb6\xf7\xc4\xda\x09\xa2\xb7\xe1\xb3\x4c\x47\x7c\x34\x7d\x2a\x56\x10\x3f\xf2\xc9\xd8\x88\x1b\x58\x3c\xec\x03\xf5\x94\x6d\x03\xdf\x96\xa1\xda\xd4\x8f\xf7\x43\xe2\x51\xb6\x12\x7f\xa8\x5f\x54\xbd\xa5\xc6\xce\x8f\xe2\x5a\xdc\xba\xee\x8f\x6a\xcb\x7e\x1d\xcd\xd2\x7b\x2f\xea\xf8\x8d\x0c\xd3\x21\x19\x9f\x4e\xae\x3b\x74\x94\xbe\x97\x71\xba\x69\x30\x70\xde\xae\x29\xaa\xe1\xf9\x60\x2d\xf2\x7b\x76\xab\xcc\xf1\x44\xa8\x77\xb0\xc4\xbd\x7c\xd0\x19\x7e\x29\x64\x39\x84\x12\xf1\xec\xa5\x86\xce\x5e\xea\x97\xc3\xbd\x14\x9e\xef\x5d\x7b\x72\x63\xa9\x01\x1a\x6f\x76\xad\xc4\xef\xe9\x0b\x5b\x03\xd7\xf4\xd1\x88\xc3\x46\xe7\xe9\x49\xae\x1d\x6b\x27\xdd\x97\x43\xea\xdd\xe1\x95\xeb\xb8\x6f\xe2\xcd\x2c\xd5\xe8\x62\x13\x58\xb6\x7a\x6a\x1c\x7f\x9d\x06\x04\x87\x97\xb6\xca\x6b\x4c\x46\xe9\x3e\x8c\x2e\x32\xdb\x5d\x56\x74\x64\x72\x43\xf1\x8f\x3c\xe8\x39\x30\x39\xc5\x4a\x5f\xe7\x93\xb4\xbc\xd2\x6b\xec\xd0\xcd\xea\x9a\xef\xd4\x25\x97\x6d\x10\x36\x6c\x11\x9a\x32\xfc\x4f\xc9\x99\x68\xd7\x2e\xd5\x79\x13\x83\x0d\x7f\x32\x28\xc8\xa0\x20\x83\x82\x0c\x0a\x32\x28\xce\x96\x41\xd1\xf2\x5d\x70\x94\x45\x31\xdc\x6b\xf1\x43\xa6\x16\x6b\xeb\x4a\x2b\x94\xe9\x14\x74\x17\xf8\x5b\x6b\xa3\xa2\x23\x9d\x5e\x91\xcb\xd7\x4f\x06\xdd\xa1\x98\x2b\x1a\x76\x6f\x57\xff\xb1\x12\x9f\xf5\x7c\xa6\x43\x97\xad\xf4\xa2\x87\xe5\xf0\x4e\x95\xc2\x0f\xb6\x8f\x96\x97\xd4\x0f\x04\x7b\x79\xf3\x60\xb9\xc9\x5a\xf9\xcb\xa5\xfe\xf8\xcb\xa5\x78\x70\x3c\xcb\x75\xfe\x95\xbc\x48\xee\xa5\xb0\xd6\x8a\x3f\xfb\x37\x9a\xcd\xad\x0f\xcb\x30\x7d\xfa\xab\xf0\x70\x90\x5e\x9f\xae\xc4\x47\x47\x4d\x8e\x99\x4b\xf7\x83\xe3\x7b\x3b\x64\x1b\xec\xf4\xf2\x58\xad\x51\xfc\xdd\x63\x97\x0e\xd5\x77\xf0\x21\xb9\xf7\xca\x90\xa7\x8c\xf4\xf5\xbb\x30\x53\xb7\x1e\x3d\xb0\x8f\xfe\x37\xb1\xb1\x82\x7b\x6b\x93\xdb\xad\x4c\x17\x35\x32\x78\xf0\x83\xa7\xa8\x4f\x4a\xdb\xeb\xd7\xc2\x1d\x55\x37\x97\x0a\x7a\x93\x88\x55\x57\x0d\x45\xcf\xc7\x5a\xda\xce\xfa\xb0\x14\x56\xb1\x82\xda\x9c\x48\xfb\x38\x54\x5c\x4f\x7d\x9a\x44\x03\xab\x4c\x67\x26\xef\x91\x14\xf7\xa7\xb5\x30\xf9\x1f\x5b\x89\x5b\xdb\x96\xdb\x9d\x7a\x37\x65\x57\x76\x57\xfa\x1e\xae\xc4\x75\x3c\x00\xf3\x03\x34\xfc\x9b\xb8\xfa\xbb\x65\x7f\xdd\x04\xfe\xde\x5b\x47\xdf\x52\x75\x25\xea\x4b\x85\x86\xd3\x21\x64\x1c\x1f\xe7\x4f\x92\xdc\xc1\x7d\x7a\xa6\xbf\x89\xab\x9f\xfc\x40\x66\x4e\x2b\x6c\x2b\xb4\xad\x75\x74\xf7\x71\xfb\xe8\xb2\x23\x75\xbe\x50\x2f\x3d\x8f\x4e\xf8\x90\x9e\xa3\xcb\x80\xdc\x16\x87\xfb\x38\x11\xe7\x8c\xf3\x82\xda\xf5\x43\x5d\x6e\xd0\x58\xbd\x40\x96\xd0\xd9\xfa\xf7\x38\x53\x68\xb8\xbd\x8d\x31\x73\x86\xda\x35\x56\x4d\xde\xd0\x6b\xe3\x9f\x52\x74\x07\x75\x3e\x11\xd3\x7d\xde\x59\xbb\x7d\x5b\x3e\x37\x55\xd8\x9c\x39\xba\xa2\x86\x5a\xbf\x98\x0f\x41\x53\x1f\xe5\xd4\x95\x1c\xbb\xbc\xc2\xba\x96\x00\x17\x4b\xac\xeb\xaa\xab\x7b\x57\x80\xd0\x7b\x67\x41\xbc\xde\x4e\x82\xfc\x44\xfc\xe1\x24\x12\x1e\x9d\xaa\x8c\x83\xf7\x42\xbf\x29\x19\x5f\x4e\xc9\x78\xbb\xd7\x4f\x53\xd9\xf8\x70\xeb\x34\x92\x17\x48\x5e\x20\x79\x81\xe4\x05\x92\x17\xca\x26\x5f\xa8\xf8\x84\x5a\x04\x50\x0a\x28\x05\x94\x02\x4a\x01\xa5\x80\xd2\x79\x81\x52\xd8\x05\xec\x02\x76\x01\xbb\x38\x3b\xbb\x38\x81\xef\x1b\x5a\xfd\xdc\xae\x09\x8f\x2b\xa0\x5f\xbb\xe3\x66\x14\xf5\xa9\x3c\x60\x59\x02\xbd\x2b\x45\x3a\x9e\xdf\xae\x8e\xb7\xf1\x17\x50\xc9\xd8\x0c\x97\xfa\x72\xbd\x1c\x0b\x28\x75\x90\xeb\x9d\x8a\xd6\xcd\x45\xa1\x13\x2f\xb7\x7e\xd8\x33\x3d\xd3\x0b\x1a\x61\x9d\x06\xca\xf4\x51\x67\x43\x65\xdd\x0a\x45\x6b\xb4\x93\xce\x35\x81\xf4\x52\x39\x4a\xf5\x52\xb6\xd7\x8d\xad\x5e\x52\x1b\x18\x3f\x5b\x9e\xb5\x91\x81\xde\x8a\x53\x4a\x60\x56\x18\xfa\xb6\xa3\xd6\x96\xe9\xa6\x97\xa5\xf6\x2e\xfd\x40\x48\x6f\x17\x05\x7b\xc9\x62\xfb\xc9\xfa\x1a\xb5\xe2\xee\x51\x86\x32\x89\x98\xb2\x35\x3a\x49\x2d\x8f\x8a\x18\xd5\x06\x97\x1f\x88\xb7\xef\x7e\x88\xbe\x1b\x58\xb6\x22\x5a\xae\xef\x6d\x74\x7c\xa4\x36\xa1\x6c\xdf\xdb\x59\x8e\xa7\x67\x2b\xb5\xc9\x73\xf8\xae\xda\xe5\x8f\x79\x9b\xb8\x7f\x49\x97\x00\x1b\xdf\xb5\xbc\xcd\xca\x0f\x36\x37\xdb\xaf\x9b\x9b\xbd\xe7\xd8\xfe\x5a\xde\xfc\xe5\x53\x78\x17\x9d\xa5\xf3\xae\x71\xdc\x38\x7d\x76\x8f\x51\x01\xd5\x64\xe3\x9c\xb6\x31\xce\xbb\x16\x31\xce\x7b\xbd\x03\x66\xd8\x75\xbf\x6b\xbc\x6e\x9d\x93\x6b\xd8\x85\xcf\x36\xa8\x54\x81\xca\xf4\x82\xca\x0b\xf1\x6a\xbd\x8f\x12\xd3\x9b\x33\xca\x7e\x9c\x18\xb7\x55\x4b\x7d\x20\xf0\x41\x98\x36\x8b\x30\x8d\x92\xea\x05\x95\x54\x53\x3b\x46\xed\x18\xb5\x63\xd4\x8e\xb1\xc2\xac\x7a\x8a\x8c\x2c\xd4\x18\x67\xbd\x46\x9d\x49\xfa\xcd\xda\x3a\x93\x09\xae\xdb\xd2\x0d\xf2\xde\xab\x4b\x02\x69\xad\x0b\x21\xd9\x49\x2b\xae\xe8\xf8\xd3\xd7\x5b\x4c\x3f\xec\xb7\x9c\xf4\xe4\x6e\xe4\x14\xb7\x5b\x5e\xc3\xf0\xb2\x36\x1c\x4d\xd7\x81\x0f\xc7\x10\x6c\x52\xe5\x02\x74\x52\x98\xbe\x56\xc7\xfe\xb5\x7e\x4a\x7b\x92\xc1\x46\xb6\xfa\x66\xb8\x0b\xac\x9d\xdc\x38\xf6\x75\xfb\x63\xa2\xbf\x5f\xe2\x6f\xaa\xc9\xb3\xcd\xcb\x61\x6b\x05\x3b\x47\x95\xea\xe8\xbc\x95\xd7\xbc\x28\xd4\x4f\x1b\xb6\x33\x77\x2e\xa2\x5a\x13\x89\xdd\xe5\x33\x4a\x04\xfb\x75\x33\xdf\xaf\x5b\x0e\x56\x2d\xe4\xc1\x27\x0f\x97\xae\xd5\x88\xa6\x9f\x43\xfd\xef\x77\x15\x53\xd3\xf7\x6a\xb7\x42\x17\x68\x5a\xae\x3a\xd2\xf3\xbd\x6b\x7d\xb4\xfa\x86\xda\x30\x0c\xc5\x77\xff\x08\x7d\xef\x4e\x97\xc1\xfe\x1c\x4d\x82\xf1\xdf\x9f\x93\xa9\xf1\xf0\x8f\xdf\x9b\xc4\x7b\xdb\x8f\x9b\x9f\xfc\xc0\x56\x3b\xaa\x1b\x5f\x75\xbe\x2f\xbe\x5c\x3e\x44\xff\xf6\xe5\x52\xdc\xe6\x5a\x53\x65\xd9\xea\xed\xcf\x7d\x78\x28\xf9\xbb\xb6\x6c\xd5\x01\xaa\x90\xd2\x75\xec\x78\x43\x47\xba\xeb\x50\xf8\xdf\xe2\xbe\xd5\x85\x86\x5b\xe9\x6f\x5d\xb9\x12\xfa\x37\x55\xfd\x74\x32\xa6\x54\xae\x6b\x69\x47\xa4\x3f\xdf\xa5\x79\xa3\x1f\x9a\x6f\x66\x22\xeb\x8c\xa9\xae\x33\xb6\x7d\xb9\xf9\x8f\xb6\xd2\xd8\xf7\xbe\x41\xb0\x75\x2d\xfb\x55\xa1\x5f\x7c\x8a\x85\x04\x7f\xa4\xd3\x11\xf7\x2d\x2a\xee\x33\x28\xbc\x22\x0a\x48\x3f\x21\x9d\x6e\x81\xd1\xcb\x7e\x8a\xbb\xa4\x17\xa2\x73\x52\xda\xe8\xee\x53\x9d\x72\xd1\xca\x6c\xa7\x48\x47\x43\xb2\x09\xc9\x26\x24\x9b\x90\x6c\x42\xb2\x69\x74\xc9\x26\x96\x98\xad\x3b\x0a\xbf\x29\x93\x94\xb5\x48\x8e\x5e\x50\x72\x34\x32\x6a\xc8\xa8\x21\xa3\x86\x8c\x1a\x32\x6a\xc8\xa8\x21\xa3\x46\xcd\x10\x35\x43\xd4\x0c\x51\x33\x54\x1c\x91\xf8\x4d\xa1\xd9\x88\x66\x23\x9a\x8d\x13\xd7\x6c\x2c\x85\x75\x90\x7d\xea\x00\xbb\xd7\x01\x9a\xe2\x37\x65\x4a\x29\x60\x6b\xa3\xa9\x1a\xe8\xdd\xec\x30\xd5\x05\x74\x63\x2d\x85\xb5\x94\xfe\x08\x6b\x29\xf2\x14\xc8\x53\x20\x4f\x81\x3c\x05\xf2\x14\x00\xe0\x30\xd1\xe6\x16\x81\x89\xc2\x44\x61\xa2\x30\x51\x98\xe8\x82\x99\x28\x98\x02\x4c\x01\xa6\x00\x53\x60\x2d\x85\xb5\x14\xd6\x52\xe9\x27\x5d\x6a\x2d\xf1\x94\x32\xc2\x53\xaa\xab\x3c\x04\x66\x52\x3d\x9b\x49\xd5\xc0\xb0\x36\x2e\x52\xf3\xd4\xbb\x40\xe8\x62\x39\x55\x48\x08\x5d\x20\x74\x51\x72\x31\x46\x07\x31\x93\x53\xb8\x30\x5b\x79\xfc\x35\x57\x3c\xdb\x18\x71\x7c\x8b\xa8\xe1\x64\x38\x46\x34\x85\xea\xa4\xc0\x81\xee\x86\xa8\x6a\x63\xa2\xae\x6c\x27\x1b\x1b\x75\x51\xe9\xbc\xa0\x4a\x67\x4a\xba\x28\xe9\xa2\xa4\x8b\x92\x2e\x16\x8c\x55\x4f\x91\x91\xf5\x13\xd8\x40\x99\xb9\x32\x33\xc1\x06\xca\x94\xa2\x8f\x7a\xff\xa7\x9a\xc5\x55\xb3\xf1\xd3\x25\x33\x0d\xfb\x26\x13\xb4\x7a\x1a\x0e\xad\x55\x78\x3c\x95\x41\x34\xcc\x9d\x30\x77\xaa\x3c\xe6\xcc\xe6\x4e\x35\x6f\x81\x16\xae\x4e\xd3\x27\x9c\xd8\x39\xb1\xef\xb6\x3c\xda\x89\x9d\x53\x9f\xe3\x06\x3b\x27\xb6\x2b\x58\x44\x94\x35\xe4\x5c\x7d\x9c\xba\x2e\x23\x06\x37\x70\xaa\x5d\xe4\xb7\x70\x6e\x9a\x7e\x80\x47\x0a\x1b\x41\xdd\x32\x82\x3a\x83\x62\x27\x5e\xf1\xe9\x27\xa4\xb0\x65\xce\x3d\xdf\x98\x64\x6c\x77\xa6\xf3\xe6\x83\x45\xf3\x45\xb8\xb5\xec\x24\x1b\x4c\xfd\xfd\xef\x9b\xc0\x77\xe5\xbd\xb6\x85\x1a\xc7\xad\xa9\x9d\x47\x65\x0b\xb7\xa6\x5f\x92\x9b\x5a\x8f\xe2\x57\x39\x91\xfc\x31\xf4\x90\xd0\x43\x42\x0f\x09\x3d\x24\xf4\x90\xb2\x9f\xe3\xdb\xc4\x72\x13\xd9\xaa\xca\x16\x21\x9b\x79\x41\xd9\xcc\x68\x94\xa1\x51\x86\x46\x19\x1a\x65\x68\x94\xa1\x51\x86\x46\x19\x45\x3e\x14\xf9\x50\xe4\x43\x91\x4f\x71\x44\xe2\xdb\x84\x20\x22\x82\x88\x08\x22\x4e\x5c\x10\xb1\x14\xdb\x41\xf9\x29\xdc\xeb\x5e\xb8\x37\xaa\x6f\x53\x39\xfa\x35\xd8\xb7\xa9\x1d\xfe\xae\xf0\x6d\xea\x0d\x79\xe3\xe0\x84\x83\x93\xfe\x08\x07\x27\x32\x16\xc8\x58\x20\x63\x81\x8c\x05\x32\x16\x40\xe1\xd0\xd1\xe6\x16\x81\x8e\x42\x47\xa1\xa3\xd0\x51\xe8\xe8\x82\xe9\x28\xc0\x02\x60\x01\xb0\x00\x58\xe0\xe0\x84\x83\x13\x0e\x4e\xe9\x27\xad\x0b\x31\x33\xfb\xf7\x38\x38\x8d\xe7\xe0\xf4\x7a\x7c\xd4\x41\x66\x2e\x8e\x1f\x75\x4d\xbb\xb7\x16\xd1\xe5\x8a\xd0\xf6\xb7\xf2\x8d\x08\xf7\xf6\x63\x34\x19\xa9\xc9\x5e\x5a\x4f\x7a\xa6\xda\x06\xbe\x8a\x57\xf3\xd7\xd8\x46\x89\x4e\xd1\xa2\xfc\xc7\xc8\xd1\x35\xdd\x4d\xfc\xd7\x20\xd6\x55\xed\x78\x60\xa5\x75\xd5\xc8\x45\xb0\x67\x57\x00\xc9\xde\x55\xbb\x39\x92\x92\xac\x19\x94\x64\xa1\x00\x82\x02\x48\xc9\xc5\x18\x1d\xc7\x4d\x43\x01\xa4\xd3\x05\x8f\x6a\x62\xd5\xe1\x8a\x67\x1b\x26\x8f\x64\x62\xd5\x39\x4c\xbe\x10\xbd\x8b\x96\x0c\xed\x6d\xf5\x4a\xbd\x12\x54\x4a\x4a\xef\x86\xb0\x6c\x8a\x61\x19\x75\xe1\x0b\xaa\x0b\xa7\x00\x8e\x02\x38\x0a\xe0\x28\x80\x63\x45\x59\xf5\x14\x19\x59\x6d\x82\xcb\x95\x99\x4b\xb7\xd1\x5c\xae\x0c\x2c\x91\x29\x71\xb9\x6a\xb7\xcc\xaa\x70\xb9\x6a\x5e\x64\x31\xe7\xb0\xc5\x62\xb2\xdf\xd5\x28\x20\x32\xeb\x77\x55\x79\x01\x53\xf2\xbb\x82\xac\x4e\x8e\xac\x62\xf4\xd5\xe9\x45\x58\x65\xf4\x35\x53\x1e\x8c\xe5\x17\x9b\x90\xcb\x63\xc3\x58\x7e\xf5\x39\x6e\xb0\xfc\x62\xef\x86\x75\x54\x59\x43\xce\xca\xf2\xab\x87\x95\xd4\x30\x96\x5f\x6d\x77\x3c\xaa\x2c\xbf\x66\x1a\xea\x91\xfa\x47\x78\xb7\x8c\xf0\xce\xa0\x28\x8a\x97\x7d\xfa\x09\xa9\x7f\x99\x73\xcf\x37\x3a\x19\xc5\xfc\xcb\x84\x3c\xba\xf1\x5c\xbf\xba\xa4\xcf\x55\xd9\x7d\x91\x41\x87\x6a\x16\xaa\x59\xa8\x66\xa1\x9a\x85\x6a\xd6\xe8\xaa\x59\xac\x2c\x5b\x77\x14\x3e\x5f\x26\x89\x9b\x91\xcf\xbd\xa0\x7c\x6e\x94\xec\x50\xb2\x43\xc9\x0e\x25\x3b\x94\xec\x50\xb2\x43\xc9\x8e\x32\x27\xca\x9c\x28\x73\xa2\xcc\xa9\x38\x22\xf1\xf9\x42\x36\x13\xd9\x4c\x64\x33\x27\x2e\x9b\x59\x0a\xea\x00\xfa\x94\x2e\x76\x2f\x5d\x1c\xdd\xe7\xcb\x94\xea\xc5\x66\x83\xaf\x1a\xd2\xdd\xca\xd9\xab\x0b\xdd\xc6\xd2\x0b\x4b\x2f\xfd\x11\x96\x5e\x24\x27\x90\x9c\x40\x72\x02\xc9\x09\x24\x27\x40\xbd\x01\xa1\xcd\x2d\x02\x08\x05\x84\x02\x42\x01\xa1\x80\xd0\x05\x83\x50\xd8\x04\x6c\x02\x36\x01\x9b\xc0\xd2\x0b\x4b\x2f\x2c\xbd\xd2\x4f\x4e\x2a\xaf\xc4\xcb\x6b\x5c\x2f\xaf\xae\x8a\x0f\x98\x78\x2d\x40\x6a\xee\xbc\x26\x5e\x35\xcc\xaf\xa5\x7b\xd7\xcc\xb4\x3b\x10\xed\x58\x4e\x69\x15\xa2\x1d\x88\x76\x94\x5c\x8c\x99\x41\xda\x74\xd4\x3a\xcc\xd6\x7c\xef\x74\xa9\xb3\x8d\x7a\x47\xb4\xe6\x1a\x4f\x4b\x64\x0c\x33\xae\x2e\x32\x22\x88\x87\x10\x65\x4d\x3f\xca\xa2\x5c\x7b\x41\xe5\xda\xd4\xa5\x51\x97\x46\x5d\x1a\x75\x69\x2c\x10\xab\x9e\x22\x23\x8b\x40\xb0\xdf\x32\x73\x79\x36\xaa\xfd\x96\x29\x95\x2b\x15\xbe\x5b\x35\x2b\xaa\x56\x86\x5b\x97\x4c\x2f\x6c\x95\x94\x1d\x6d\x9c\xc5\xd6\x70\x7c\xb0\xe8\xad\x75\x3a\xf5\x33\x05\xf8\x41\x3a\x27\x47\x3a\x31\xd5\x3a\xed\x2d\xd7\xce\x4d\x6b\xfa\x7c\x16\x1b\x2d\x36\x13\x97\x87\x6c\xb1\xd1\xea\x73\xdc\x60\xa3\xc5\x1e\x0c\x8b\xa4\x79\xfb\x67\x75\x5d\x26\x0d\x67\x9c\x55\xbb\x65\xd1\xce\x31\x6b\xfa\xe1\x1c\xe9\x76\xc4\x6e\x33\x8f\xdd\x0c\x0a\x91\x78\x93\xa7\x9f\x2c\x3c\xdd\x6e\xbe\x31\xc7\x68\xae\x58\xe7\x4d\x61\x0b\x7c\x57\xde\x6b\xdf\xad\x9c\xfd\xd5\x08\xd2\x60\xcd\x8e\x9f\x15\x0a\x61\x99\x83\x7f\xf2\x83\x5b\xd7\x4d\xa3\x99\xd0\x04\xfe\x52\x79\xc0\x82\xab\xc1\xe2\xee\xa2\x28\x6c\xdc\xa2\xb0\x57\xba\x01\x9f\xce\x7e\xd0\xde\x9b\xb1\xf6\x5e\x33\xdb\x69\xd2\xdd\xab\xdd\x50\xea\x81\x5b\xa1\xb6\x87\xda\x1e\x6a\x7b\xa8\xed\xcd\x4d\x6d\xaf\x79\xe6\x2d\x55\xda\x3b\x73\x96\xc0\x60\xfa\x7a\xcd\xb7\x5f\xad\xad\x67\x72\x1b\x9c\xa2\xa8\xd7\xdc\x06\xd5\x6a\x7a\x67\x6e\x03\x34\xf4\xd0\xd0\x43\x43\x0f\x0d\x3d\x34\xf4\xce\xa6\xa1\xd7\x62\xf6\x3f\xd2\xcf\xab\x2d\xd7\x5a\x50\x92\x60\xbb\xbb\x99\xb1\x06\x60\x73\x73\xd7\xe9\xff\x0d\xdb\xee\xa8\xfe\x9d\xa5\x47\x8f\x15\xff\xce\xdc\xad\xa3\xea\xfc\x35\x37\x4f\x8d\xc6\xdf\xb9\xa7\x4d\x53\x95\xfd\x9a\x1b\xad\x84\x61\x74\xde\xcf\x8b\xff\xfa\xb3\x0b\xcf\x1a\x1b\x64\x75\x23\x58\xa0\xab\x62\xc3\x9b\x89\xae\x60\x56\x4b\x11\x32\x04\x56\x01\xab\x80\x55\xc0\x2a\x60\x15\xb0\x0a\x58\x05\xac\x02\x56\x01\xab\x80\x55\xc0\x2a\x60\x15\xb0\x0a\x58\x05\xac\x6a\x7b\x37\xc0\x2a\x60\x15\xb0\x0a\x58\x05\xac\x02\x56\xe5\x60\x95\xba\x86\x1b\xdb\xdd\x87\x3b\x19\x0c\x56\x89\x15\x07\x81\xde\xda\x79\x76\xd6\x7b\xcb\xcd\x76\x9d\x95\x2e\xf4\xde\xeb\xab\xca\x54\x89\xac\x32\xba\xb9\x3f\xa6\x21\xf9\x95\x3a\xdd\xd5\x61\x7f\x2f\xb7\x61\x93\xe2\x2f\xe1\x78\xe1\x4e\x5a\xb9\x77\x67\x11\x8e\x7d\xab\xd0\x1a\x3a\xbe\x94\x7f\x16\xf0\x03\x7c\xcc\x54\x89\x50\x35\x41\x7c\x8c\xd6\x80\x8b\x67\x66\xaa\x27\x47\x02\x67\xc7\x8f\x10\x18\x0d\x8c\x06\x46\x03\xa3\x81\xd1\xc0\x68\x60\x34\x30\x5a\x4f\xb3\x2d\x18\x0d\x8c\x06\x46\x03\xa3\x81\xd1\xc0\x68\x60\x34\x30\x1a\x18\x0d\x8c\x06\x46\x33\xb2\x47\xc1\x68\xf9\xe6\x01\xa3\xcd\x0d\xa3\x95\x78\xf0\x9e\x89\xa6\x65\x11\x9a\x97\xbc\xfb\x93\x9a\xb0\x33\xa1\xb4\x37\x87\xa0\x5f\x2d\x6c\xe2\x00\x31\x5a\x37\x1c\x56\x33\x57\xb9\x55\x70\xe6\xdc\xfd\x80\x38\x20\x1c\x10\x6e\x7a\x10\x0e\x00\x07\x80\x03\xc0\x1d\x1e\x34\x00\x1c\x00\x0e\x00\x07\x80\x03\xc0\x01\xe0\x00\x70\x00\x38\x00\x1c\x00\x0e\x00\x07\x80\x03\xc0\x4d\x0e\xc0\x65\xcd\xb5\x9b\xf6\x1c\xa6\x64\xb5\x0d\x58\x04\x2c\x02\x16\xa7\xd1\xa3\x80\xc5\x7c\xf3\x00\x16\xe7\x02\x16\x0d\x2b\xcc\x33\xa1\x22\x8f\x52\x3c\x28\xe0\x34\x29\xe0\xf8\xa5\x78\x20\x40\x10\x20\x08\x10\x04\x08\x02\x04\x01\x82\x00\x41\x80\x3d\xcd\xb6\x20\x40\x10\x20\x08\x10\x04\x08\x02\x04\x01\x82\x00\x17\x87\x00\x41\x65\xa0\x32\x50\xd9\x34\x7a\x14\x54\x96\x6f\x1e\x50\xd9\x6c\x50\x99\x79\xc5\x77\xd3\xaf\xba\x03\xb4\x01\xda\xa6\x07\xda\x80\x6c\x40\x36\x20\x1b\x90\x0d\xc8\x06\x64\x03\xb2\x01\xd9\x80\x6c\x40\x36\x20\x1b\x90\x0d\xc8\x06\x64\x03\xb2\x01\xd9\xa6\x08\xd9\x2a\xea\xec\x28\xb0\x83\x1a\x9a\xc6\x98\xa0\x86\x50\x43\xa8\x21\xd4\xb0\xd0\x68\xe6\x50\xc3\xe8\x8a\xc2\xad\x65\x27\xcc\x50\xfd\xfd\xef\x1b\xc3\x0c\xf1\x4c\x70\xc2\xfb\x25\x69\x9d\x35\x66\x78\x80\xc1\xc9\x83\xc1\x91\x2a\xf0\x10\xe1\x04\x0e\x02\x07\x81\x83\xc0\x41\xe0\x20\x70\x10\x38\x68\x18\x18\x03\x0e\x02\x07\x81\x83\xc0\x41\xe0\x20\x70\x10\x38\x38\x45\x38\x18\xdf\xb5\x62\x84\x51\x57\x5a\xfb\xdd\xa3\x08\x6d\x7f\x2b\xdf\x88\x70\x6f\x3f\x46\x3d\xaf\xd6\x2b\xd2\x7a\xd2\xbb\xc2\xdb\xc0\x57\xad\x7c\x3a\x3f\x54\xdb\x81\x40\x44\x20\x22\x10\x11\x88\x08\x44\x04\x22\x02\x11\xab\x20\xa2\x21\x15\x89\xd3\xf7\x01\x2c\xc5\x90\x20\x48\x10\xe4\xf4\x10\x24\xf8\x11\xfc\x08\x7e\x04\x3f\x82\x1f\xc1\x8f\xe0\x47\xf0\x23\xf8\x11\xfc\x08\x7e\x04\x3f\x82\x1f\xc1\x8f\xe0\x47\xf0\xe3\x14\xf1\x63\xb6\x36\x71\x16\xe6\x7f\xf0\x54\x78\x2a\x3c\x15\x9e\x6a\x74\x8f\xc2\x53\xf3\xcd\x03\x4f\x9d\x2b\x4f\x35\xa5\x1a\xd3\x90\x32\x4c\xea\x2f\x81\x9f\xd3\x84\x9f\x23\xd6\x5f\x42\x3e\x21\x9f\x90\x4f\xc8\x27\xe4\x13\xf2\x09\xf9\x84\x7c\xf6\x34\xdb\x42\x3e\x21\x9f\x90\x4f\xc8\x27\xe4\x13\xf2\x09\xf9\x5c\x1c\xf9\x04\x14\x02\x0a\x01\x85\x80\x42\xa3\x7b\x14\x50\x98\x6f\x1e\x40\xe1\x6c\x41\xa1\x41\x15\x97\xb3\x28\xb5\x04\x33\x82\x19\xa7\x87\x19\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x27\x85\x18\x8b\xc5\x95\x54\x55\x02\x4b\x81\xa5\x86\xa0\x35\x60\x29\xb0\x14\x58\x0a\x2c\x2d\x34\x9a\x39\xb0\x14\x4f\xcb\x23\xc2\x59\x70\xb2\xfc\xc9\x0f\x6e\x5d\x37\xc5\x9e\x21\xc8\x13\xe4\x39\x3d\xe4\x89\xb3\x25\xf4\x13\xfa\x19\x3f\x65\xd0\x4f\xe8\x27\xf4\x13\xfa\x09\xfd\x84\x7e\x42\x3f\xa1\x9f\xd0\x4f\xe8\x27\xf4\x13\xfa\x09\xfd\x9c\x1c\xfd\x04\x9d\x81\xce\x40\x67\xd3\xe8\x51\xd0\x59\xbe\x79\x40\x67\x93\x47\x67\xa6\x30\xb3\x51\x61\x19\x94\xac\xac\x2f\xa1\x64\x50\x32\x8a\x03\xc1\x63\xe0\x31\xf0\x18\x78\x0c\x3c\x06\x1e\x03\x8f\x81\xc7\xc0\x63\xe0\x31\xf0\x18\x78\x0c\x3c\x06\x1e\x03\x8f\x81\xc7\x4e\xba\x1b\xf0\x18\x78\x0c\x3c\xd6\x5b\xb7\x82\xc7\xaa\x5a\x06\x3c\xf6\x0a\x3c\x76\x2f\x77\xd6\xdb\x9b\x4e\x60\xec\xdc\x44\xa8\x0d\x74\xdb\xc8\x5d\x3e\xe0\xd5\xdd\x5c\xc3\xc6\x36\x72\x57\x42\xc6\x54\x33\xdc\xde\x7d\xfa\xad\xec\x0c\x63\x21\xb1\xc9\x92\xaa\x4c\x43\x2a\x7b\xc3\x19\xe2\x2a\x35\x60\x32\xa7\xb8\xc8\x5e\xc6\xa9\x8f\x9f\xed\xee\xc3\x9d\x0c\xaa\xca\x3b\xf5\x7a\xa3\x5f\x5a\xad\xcf\x29\x6c\xdf\x75\xa5\x9d\xbc\x26\xde\xeb\xeb\x28\xaf\x03\x2b\x3e\x48\xfa\x0c\x55\xcf\xd2\xfb\xf4\xc4\xf5\x27\xad\x40\x62\xa2\x38\x0c\xf4\x5c\x7a\xef\xaf\x5f\x8a\x23\x38\x99\x4c\xcb\x3e\x3b\xcb\xe8\xfe\xa0\x6e\xfc\x57\xd5\x94\x61\xcb\xb1\x5d\x3f\xa8\xa1\x2c\x50\x16\x28\x0b\x94\x65\x6e\x94\xa5\x26\x06\x6e\x22\x2d\xf5\xeb\xa9\xfa\x58\xf8\xa4\xb9\xf7\xbf\xa2\x86\x8b\xf7\x97\xde\xa8\xf4\x2d\x3b\x1a\x51\x7a\x1c\xe4\xee\x2d\x9b\xd1\x70\x2f\xc5\x36\x6a\xad\x70\x27\xd7\x2b\x71\xeb\x09\xc7\xd3\x33\x8b\x1f\x88\xbd\x97\x4e\x4e\x6b\xb1\x0e\x5e\x7e\xdb\x7b\x62\xed\x04\xd1\xdb\xf0\x59\xa6\x23\x3e\x9a\x3e\xd5\x6e\x60\xfc\xc8\x27\x63\x23\x6e\x60\xf1\xb0\x0f\xd4\x53\xb6\x0d\x7c\x5b\x86\x6a\xdb\x2e\x5e\xc8\xc5\xa3\x6c\x25\xfe\x50\xbf\xa8\x7a\x4b\x8d\x9d\x1f\xc5\xb5\xb8\x75\xdd\x1f\xd5\xa6\xdc\x3a\x9a\xa5\xf7\x5e\xd4\xf1\xd1\x92\x28\x19\x92\xf1\xe9\xe4\xba\x43\x47\xe9\x7b\x19\xa7\x9b\x06\x43\x63\xed\x9a\xa2\x1a\x8f\x0d\xd6\x22\xbf\x67\xd7\xf8\x8e\x27\x42\xbd\xf4\x16\xf7\xf2\x41\xe7\xf0\xa4\xdb\xa8\x87\x50\x22\x9e\xbd\xd4\xd0\xd9\x4b\xfd\x72\xb8\x8f\x56\xb7\xde\xb5\x27\x37\x96\x1a\xa0\xf1\x2a\x7d\x25\x7e\x4f\x5f\xd8\x1a\xa9\xa4\x8f\x46\x1c\x3b\x3a\x4f\x4f\x72\xed\x58\x3b\xe9\xbe\x1c\x92\x6b\x0e\xaf\x5c\xc7\x7d\x13\xaf\xc2\x55\xa3\x8b\x4d\x60\xd9\xea\xa9\x71\xfc\x75\x1a\x10\x1c\x5e\xda\x2a\x73\x29\x19\xa5\xfb\x30\xba\xc8\x6c\x77\x59\xd1\x91\xc9\x0d\xc5\x3f\xf2\xa0\xe7\xc0\xe4\x14\x2b\x7d\x9d\x4f\xd2\xf2\x4a\xaf\xb1\x43\x37\xab\x6b\xbe\x53\x97\x5c\xb6\xb3\xd1\xb0\xb7\x61\xca\xf0\x3f\x85\x8a\xb6\x6b\x97\x6a\x32\x3a\xd8\xf0\x87\x91\xc2\x48\x61\xa4\x30\x52\x18\xe9\xd9\x18\x69\xcb\x77\xc1\x11\x27\x1d\xee\xb5\xf8\x21\x53\x47\xb1\x75\xa5\x15\xca\x74\x0a\xba\x0b\xfc\xad\xb5\x51\xd1\xd1\x9d\xef\x3a\xf6\x4b\x2e\x23\x37\x19\x74\x87\x42\x8c\x68\xd8\xbd\x5d\xfd\xc7\x4a\x7c\xd6\xf3\x99\x0e\x5d\xb6\xd2\x8b\x1e\x96\xc3\x3b\x55\x0a\x3f\xd8\x3e\x5a\x5e\x92\x21\x1c\xec\xe5\xcd\x83\xe5\x26\x6b\xe5\x2f\x97\xfa\xe3\x2f\x97\xe2\xc1\xf1\x2c\xd7\xf9\x57\xf2\x22\xb9\x97\xc2\x5a\x2b\x70\xe6\xdf\x68\xa8\xb0\x3e\x2c\xc3\xf4\xe9\xaf\xc2\xc3\x41\x7a\x7d\xba\x12\x1f\x1d\x35\x39\x66\x2e\xdd\x0f\x8e\xef\xed\x80\x49\x77\x7a\x79\xac\xd6\x28\xfe\xee\xb1\x4b\x87\xea\x3b\xf8\x90\xdc\x7b\x65\xc8\x53\x86\x28\xfa\x5d\x98\xa9\x5b\x8f\x1e\xd8\x47\xff\x9b\xd8\x58\xc1\xbd\xb5\xc9\x6d\x59\xa6\x8b\x1a\x19\x3c\xf8\xc1\x53\xd4\x27\xa5\xed\xf5\x6b\xe1\x8e\xaa\x9b\x4b\x05\xbd\x49\xc4\xba\xd5\x6d\xeb\x44\xd1\xa4\xed\xac\x0f\x4b\x61\x15\x2b\xa8\xcd\x89\xb4\x8f\xa3\x97\x75\xfc\x26\x4d\xa2\x81\x55\xa6\x33\x93\xf7\x48\xca\x29\xd3\x6c\xf7\xfc\x8f\xad\xc4\xad\x6d\xcb\xed\x4e\xbd\x9b\xb2\x2b\xbb\x2b\x7d\x0f\x57\xe2\x3a\x1e\x80\xf9\x01\x1a\xfe\x4d\x5c\xfd\xdd\xb2\xbf\x6e\x02\x7f\xef\xad\xa3\x6f\xa9\xcc\x71\xf5\xa5\x42\xc3\xe9\x10\x32\x8e\x8f\xf3\x27\x49\xee\xe0\x3e\x3d\xd3\xdf\xc4\xd5\x4f\x7e\x20\x33\xa7\x15\xb6\x15\xda\xd6\x3a\xba\xfb\xb8\x7d\x74\x61\x81\x3a\x5f\xa8\x97\x9e\x47\x27\x7c\x48\xcf\xd1\x65\x40\x6e\x8b\xc3\x7d\x9c\x88\x73\xc6\x09\x0d\xed\xfa\xa1\x2e\xa9\x61\xac\x5e\x20\xbd\xe1\x6c\xfd\x7b\x9c\xe2\x30\xdc\xde\xc6\x98\xc9\x0e\xed\x1a\xab\x26\xe1\xe1\xb5\xf1\x4f\x29\xbf\x03\x42\x9f\x88\xe9\x3e\xef\xac\xdd\xbe\x2d\x9f\x9b\x34\x7b\xce\x9c\xa2\xa2\x5e\x52\xbf\x9d\x0f\x91\xd3\x08\x65\x93\xb5\x18\xb8\x58\x44\x59\xb8\xc3\xe3\x4a\xca\xde\xab\xb7\xf5\x2e\x5a\x10\xaf\xbc\x93\x70\x3f\xb1\x80\x3d\x09\x8c\x47\xa7\xaa\xc4\xe2\xbd\xc0\x70\x6a\x44\x97\x53\x23\xda\xee\x6d\xd4\x54\x27\x3a\xdc\xb2\x8d\x5c\x06\x72\x19\xc8\x65\x20\x97\x81\x5c\x86\xb2\xc9\x17\x48\x3e\xa1\x16\x81\x9b\xc2\x4d\xe1\xa6\x70\x53\xb8\x29\xdc\x74\x5e\xdc\x14\x94\x01\xca\x00\x65\x80\x32\xce\x8e\x32\x4e\xc0\xfd\x86\x56\x71\xb6\x6b\xc2\xe3\x4a\xce\xd7\xee\xb8\x19\x05\x81\x2a\x0f\x58\x96\x38\xe7\x4a\x31\x8f\x18\x4f\xac\x8e\xf7\xf2\x97\x52\xec\xd8\x0c\x9c\x46\xd2\xe6\xec\x17\x32\x75\x90\xeb\x9c\x8a\x84\xc7\x45\xa1\x27\x2f\xb7\x7e\xd8\x33\x51\xd3\xeb\x1b\x61\x9d\x06\xcf\xf4\x51\xe7\xc5\x67\xdd\x6a\x49\x6b\x1c\xc7\xcf\x3a\xa9\xf4\x52\x61\x4a\x95\x53\xb6\xeb\x8d\xad\x72\x52\x3b\x1b\x3f\x5b\x9e\xb5\x91\x81\xde\xa3\xd3\xfe\xfa\x61\xe8\xdb\x8e\x5a\x74\xa6\xbb\x61\x96\xda\xd4\xf4\x03\x21\xbd\x5d\x14\x05\x26\xab\xf0\x27\xeb\x6b\xd4\x8a\xbb\x47\x19\xca\x24\x94\xca\xd6\xf2\x24\x35\x3f\x2a\x94\x54\x3b\x5f\x7e\x20\xde\xbe\xfb\x21\xfa\x6e\x60\xd9\x0a\x75\xb9\xbe\xb7\xd1\x81\x93\xda\x9d\xb2\x7d\x6f\x67\x39\x9e\x9e\xb7\xd4\xee\xcf\xe1\xbb\x6a\xfb\x3f\x06\x71\xe2\xfe\x25\x5d\x1b\x6c\x7c\xd7\xf2\x36\x2b\x3f\xd8\xdc\x6c\xbf\x6e\x6e\xf6\x9e\x63\xfb\x6b\x79\xf3\x97\x4f\xe1\x5d\x74\x96\xce\xdb\xc9\x71\xe3\xf4\xd9\x3d\x46\x45\x5a\xd3\x0e\x80\xda\x06\x3f\xef\x5a\x04\x3f\xef\xf5\xfe\x98\x89\x17\xff\xae\xf1\xe2\x75\x16\xaf\x89\x57\x3f\xef\xb8\x53\x85\x31\x13\x8d\x3b\x2f\x44\x3f\xd2\x21\x37\xff\x1b\xcd\x98\xff\x1e\x48\x41\xe4\xc4\xf8\xae\x41\x35\x04\xad\x10\x22\xb9\x59\x44\x72\x54\x67\x2f\xa8\x3a\x9b\x32\x34\xca\xd0\x28\x43\xa3\x0c\x8d\x45\x68\xd5\x53\x64\x64\xcd\xc7\x38\x0b\x39\x4a\x56\x4e\x28\x59\x99\xea\x5a\x2e\xdd\x57\xef\xbd\x50\x25\x90\xd6\xba\x10\x9c\x9d\xb4\x00\x8b\x8e\xef\xb8\xfc\x62\x36\x62\x5f\xa6\xe3\xd3\xbc\x91\x93\xdd\x96\x79\x0d\x0e\x54\xbb\xf7\xf1\x32\xb8\xe9\x62\x74\x04\xb2\xb5\x76\x8f\xe5\xf8\x4f\xfd\x3f\xf7\x49\x0d\x91\x3a\xb3\x18\xf9\x74\x31\xa7\xca\x32\xe8\x24\x6f\x7d\xad\x8e\xfd\x6b\xfd\x0c\xf7\x24\x83\x8d\x6c\xf5\xcd\x70\x17\x58\x3b\xb9\x71\xec\xeb\xf6\xc7\x44\x7f\xbf\xc4\xdf\x54\x73\x69\x9b\x17\xc6\xd6\x0a\x76\x8e\x2a\x02\xd2\x19\x31\xaf\x79\x79\x6c\x2b\x8c\x65\x47\xdf\xbc\x3b\x17\x9c\xad\x09\xd6\xee\xf2\x09\x2b\x82\x2d\xbd\x99\x6f\xe9\x2d\x07\xce\x16\xd2\xec\x93\x87\x4b\x97\x82\x44\x73\xd0\xa1\xbc\xf8\xbb\x8a\xf9\xe9\x7b\xb5\xa1\xa1\xeb\x3f\x2d\x57\x1d\xe9\xf9\xde\xb5\x3e\x5a\x7d\x43\xed\x29\x86\xe2\xbb\x7f\x84\xbe\x77\xa7\xab\x6c\x7f\x8e\x66\xc2\xf8\xef\xcf\xc9\xfc\x78\xf8\xc7\xef\x4d\xa2\xc6\xed\xc7\xcd\x4f\x7e\x60\xab\x4d\xd7\x8d\xaf\x3a\xdf\x17\x5f\x2e\x1f\xa2\x7f\xfb\x72\x29\x6e\x73\xad\xa9\x92\x78\xf5\x0e\xe9\x3e\x3c\x54\x14\x5e\x5b\xb6\xea\x00\x55\xa7\xe9\x3a\x76\xbc\xe7\x23\xdd\x75\x28\xfc\x6f\x71\xdf\xea\x3a\xc6\xad\xf4\xb7\xae\x5c\x09\xfd\x9b\xaa\x3c\x3b\x19\x53\x2a\x95\xb6\xb4\x23\xd2\x9f\xef\xd2\xbc\xd1\x0f\xcd\x37\xf1\x91\xb5\xc7\xf4\xd7\x1e\xdb\x42\x5e\xea\x44\x57\x1f\xfb\xde\x37\x12\xb6\xae\x65\xbf\x2a\x1c\x8c\x4f\xb1\xa4\x80\x90\x6c\x3d\x02\xc2\xe5\x05\x84\x06\xc5\x5d\x84\x07\xe9\x27\x64\xeb\xb5\xb8\xf8\x99\xc7\x36\xfb\xc9\xee\xab\x5e\x88\xd7\xa5\xbb\x8d\x6e\x91\xd5\x3d\xcb\xad\xcc\x1b\x8b\x44\x37\x84\xa4\x10\x92\x42\x48\x0a\x21\x29\x84\xa4\x46\x17\x92\x62\x01\xda\xba\xa3\x30\xc5\x32\x49\xef\x8b\xb4\xeb\x05\xa5\x5d\x23\xee\x86\xb8\x1b\xe2\x6e\x88\xbb\x21\xee\x86\xb8\x1b\xe2\x6e\x54\x23\x51\x8d\x44\x35\x12\xd5\x48\xc5\x11\x89\x29\x16\x4a\x92\x28\x49\xa2\x24\x39\x71\x25\xc9\x52\x62\x07\xf7\xa7\xc2\xf0\x95\x15\x86\xa6\x98\x62\x19\x55\x64\xd8\xda\x0d\xab\x86\x81\xb7\xb4\xc1\xea\xc2\xbd\xf1\xbf\xc2\xff\x4a\x7f\x84\xff\x15\x69\x0b\xa4\x2d\x90\xb6\x40\xda\x02\x69\x0b\xf0\x70\x10\x69\x73\x8b\x80\x48\x41\xa4\x20\x52\x10\x29\x88\x74\xc1\x88\x14\x6a\x01\xb5\x80\x5a\x40\x2d\xf0\xbf\xc2\xff\x0a\xff\xab\xf4\x93\xce\x35\x99\x18\x5f\xed\x8c\x31\xbe\x7a\x95\xc8\x04\x8e\x57\x3d\x3b\x5e\xd5\x00\xb2\xd6\x56\x57\x33\x56\xcd\x40\x2e\x63\x39\xd5\x4a\xc8\x65\x20\x97\x51\x72\x31\xe6\x47\x37\xd3\xd4\xc9\x30\x5b\x05\xfd\xd5\x97\x3d\xef\x30\x72\x7c\x1f\xab\x31\x14\x3d\x46\x74\xae\xea\x2e\xe6\x81\x84\x87\xa8\x6a\x68\x02\xb3\x6c\x27\x1b\x1b\x98\x51\x34\xbd\xa0\xa2\x69\xaa\xc3\xa8\x0e\xa3\x3a\x8c\xea\x30\xd6\x94\x55\x4f\x91\x91\xa5\x18\x78\x55\x19\xbc\x5a\x33\xc1\xab\xca\xa8\xfa\x91\x7a\x93\xaa\x9a\xb5\x56\x4b\x77\xaa\x4b\x26\x1e\xf6\x57\x26\xed\x47\x35\x30\xa5\xab\x30\xa2\x2a\xe3\x71\x38\x50\xe1\x40\x55\x79\xcc\x99\x1d\xa8\x6a\xde\x0c\x6d\xad\xa7\xa6\x0f\x4b\xf1\x9c\x62\x6b\x6e\x79\xcc\x14\xcf\xa9\x3e\xc7\x0d\x9e\x53\xec\x68\xb0\xb0\x58\xa6\xd9\xd4\xab\x96\x16\x83\xbb\x4c\xd5\x6e\x06\xb4\xb5\x97\x9a\x7e\xd0\x47\x86\x1c\xd1\xde\x82\xa2\x3d\x83\x82\x2a\xde\xfd\xe9\x27\x64\xc8\x95\x5e\xf5\xcc\x23\x96\xb1\x2d\xa4\x86\xca\x34\x8b\x26\x92\x70\x6b\xd9\x49\x9e\x99\xfa\xfb\xdf\x37\x81\xef\xca\x7b\xed\x62\x35\x8e\xa5\x54\x3b\xaf\xcd\xb6\x96\x52\xbf\x24\x77\xb6\x1e\xc5\x77\x73\x22\x99\x69\xa8\x34\xa1\xd2\x84\x4a\x13\x2a\x4d\xa8\x34\x65\x3f\xc7\x5c\x8a\xc5\x28\x62\x5a\x95\x2d\x42\x9e\xf4\x82\xf2\xa4\x51\x4e\x43\x39\x0d\xe5\x34\x94\xd3\x50\x4e\x43\x39\x0d\xe5\x34\xca\x87\x28\x1f\xa2\x7c\x88\xf2\xa1\xe2\x88\xc4\x5c\x0a\x99\x46\x64\x1a\x91\x69\x9c\xb8\x4c\x63\x29\xbb\x23\x07\x80\x92\xc0\x57\x96\x04\x8e\x6a\x2e\x55\xce\x7f\xc7\x2f\x0e\xac\x37\x97\x6a\x47\xc3\xeb\xcc\xa5\x7a\x23\xe0\xd8\x4c\x61\x33\xa5\x3f\xc2\x66\x8a\x04\x06\x12\x18\x48\x60\x20\x81\x81\x04\x06\xc8\x38\xb0\xb4\xb9\x45\x80\xa5\xc0\x52\x60\x29\xb0\x14\x58\xba\x60\x58\x0a\xbf\x80\x5f\xc0\x2f\xe0\x17\xd8\x4c\x61\x33\x85\xcd\x54\xfa\xc9\x69\x05\x9b\x99\x4d\x7c\x6c\xa6\x76\xe3\xda\x4c\xf5\x84\x94\x3a\x08\xd8\xc5\xe1\xa4\xae\x87\xf7\xd6\x22\xba\x66\x11\xda\xfe\x56\xbe\x11\xe1\xde\x7e\x8c\xe6\x26\x35\xf7\x4b\xeb\x49\x4f\x5c\xdb\xc0\x57\xe1\x6b\xfe\x42\xdb\x68\xdc\x29\x78\x94\xff\x18\xa1\xbb\xa6\xbb\x89\xff\x1a\xc4\x5f\xab\x1d\x23\xac\xf7\xd7\x1a\xb9\x4e\x76\x18\x1d\x91\xec\xad\xb5\x9b\x37\x29\xdd\x9a\x41\xe9\x16\x3a\x22\xe8\x88\x94\x5c\x8c\xf9\x01\xde\x84\x74\x44\x3a\x5d\xf5\xf8\x4e\x5b\x1d\x2e\x7b\xde\x91\xf4\x48\x4e\x5b\xaf\x8b\xa4\x2f\xc4\x79\xf4\x4f\x86\x36\xe0\xea\x43\xfa\x04\xc1\x93\xd2\xbb\x21\x72\x9b\x62\xe4\x46\x89\xf9\x82\x4a\xcc\xa9\xa5\xa3\x96\x8e\x5a\x3a\x6a\xe9\x58\x74\x56\x3d\x45\x46\x16\xae\x60\xc5\x65\xf0\x72\x6e\x34\x2b\x2e\x53\xab\x6d\x4a\xac\xb8\xda\xad\xba\xea\xac\xb8\x9a\xd7\x5c\x4c\x41\x6c\xc5\x4c\xc3\x94\x6b\x3c\xa6\x99\x35\xe5\xaa\xbc\x8a\x29\x99\x72\x01\x69\x27\x07\x69\x71\x23\xeb\xf4\x72\xac\x75\x23\x9b\x29\x5a\xc6\x97\x8c\x7d\xca\xe5\x11\x66\x7c\xc9\xfa\x1c\x37\xf8\x92\xb1\xbd\xc3\xda\x6a\x41\xbe\x64\x7d\xad\xae\x86\xf1\x25\x6b\xbb\x33\x52\xeb\x4b\x36\xd3\xf0\x8f\xcc\x42\xe2\xbe\x05\xc5\x7d\x06\x85\x57\x44\x01\xe9\x27\x64\x16\x96\x5e\xf5\xcc\x63\x97\x51\x1c\xca\xcc\xca\xd0\x1b\xcf\x9a\xac\x73\x62\x5e\x95\x27\x19\xb9\x79\x68\x79\xa1\xe5\x85\x96\x17\x5a\x5e\x68\x79\x8d\xae\xe5\xc5\xba\xb3\x75\x47\x61\x46\x66\x92\xe4\x1a\x99\xe2\x0b\xca\x14\x47\x5f\x0f\x7d\x3d\xf4\xf5\xd0\xd7\x43\x5f\x0f\x7d\x3d\xf4\xf5\x28\xa0\xa2\x80\x8a\x02\x2a\x0a\xa8\x8a\x23\x12\x33\x32\xc4\x3c\x11\xf3\x44\xcc\x73\xe2\x62\x9e\xa5\xb4\x0e\xdc\x4f\x51\xe4\x2b\x8b\x22\x47\x37\x23\x33\xaa\x2e\xb2\xd9\x85\xac\x06\x7c\xb7\xb7\x1f\xeb\x02\xbb\xf1\x1d\xc3\x77\x4c\x7f\x84\xef\x18\xb9\x0a\xe4\x2a\x90\xab\x40\xae\x02\xb9\x0a\x40\x70\xb8\x68\x73\x8b\xc0\x45\xe1\xa2\x70\x51\xb8\x28\x5c\x74\xc1\x5c\x14\x54\x01\xaa\x00\x55\x80\x2a\xf0\x1d\xc3\x77\x0c\xdf\xb1\xf4\x93\xd3\xcb\x30\x31\x1c\xdb\x8d\x6f\x38\xf6\x2a\xdd\x08\x9c\xc6\x16\x20\x62\x77\x5e\xa7\xb1\x1a\x0e\x78\x8a\xc5\xd8\x1c\x15\x40\x90\xfe\x58\x4e\x09\x16\xd2\x1f\x48\x7f\x94\x5c\x8c\xc1\xd1\xdb\xc4\x34\x3f\xcc\xd6\x9f\xef\x7e\xbd\xf3\x0e\x8c\x47\xf4\x0f\x33\x41\x96\x64\x0c\xc7\xb0\xce\x8a\x24\xe8\x90\x10\x88\x4d\x3f\x10\xa3\xf2\x7b\x41\x95\xdf\x94\xb8\x51\xe2\x46\x89\x1b\x25\x6e\xac\x21\xab\x9e\x22\x23\xeb\x49\xf0\x08\x33\x78\xc9\x36\xaa\x47\x98\x51\x45\x30\x15\xe6\x60\x35\x0b\xac\xf6\xae\x60\x97\xcc\x36\x6c\xa9\x4c\xcc\x07\x6c\x60\xd4\x58\x34\x00\x3b\x1d\x20\x9a\xc2\x0e\x81\xa6\x93\x83\xa6\x38\x7f\x9d\xf6\xe6\x3b\xc1\xf2\x6b\xfa\xa8\x17\xaf\x2f\xf6\x1b\x97\x07\x7e\xf1\xfa\xea\x73\xdc\xe0\xf5\xc5\x36\x0d\x0b\xa7\xe3\x66\x9c\xa7\xc9\xd7\xab\x96\x4e\xc3\xb9\x7b\xd5\x6e\x6d\x9c\x60\xeb\x35\xfd\x10\x8f\x6c\x3e\x82\xba\x25\x04\x75\x06\xc5\x4e\xbc\xe2\xd3\x4f\xc8\xe6\x8b\xcf\x3c\xf3\x88\x64\x34\xeb\xae\xa1\x92\xe3\x02\xdf\x95\xf7\xda\x26\x2c\xe7\xd1\x35\x82\x60\x59\xb3\x73\x69\x9d\x6e\x59\xe6\x0c\x3f\xf9\xc1\xad\xeb\xa6\x01\x4f\x68\x02\xca\xa9\x3c\x60\xe9\x35\x6a\x71\x9f\x51\xaa\x66\x40\xa9\x5a\x1f\x4e\xc7\xa7\x63\x24\x04\x02\x67\x2c\x10\xd8\x8c\x89\x9a\xc4\x01\x6b\xb7\xa5\x7a\x40\x60\x48\x02\x22\x09\x88\x24\x20\x92\x80\x73\x93\x04\x6c\x9e\x79\x4b\xe5\x00\xcf\x9c\x70\x30\x98\x08\x60\xf3\xed\x57\x0b\x00\x9a\xdc\x06\xa7\xc8\xfe\x35\xb7\x41\xb5\xe4\xdf\x99\xdb\x00\xa1\x3f\x84\xfe\x10\xfa\x43\xe8\x0f\xa1\xbf\xb3\x09\xfd\xb5\x98\xfd\x8f\x44\xfe\x6a\xeb\xc2\x16\x94\x6f\xd8\xee\x6e\x66\x2c\x54\xd8\xdc\xdc\x75\x22\x85\xc3\xb6\x3b\xd2\x84\x67\xe9\xd1\x63\x59\xc2\x33\x77\xeb\xa8\x62\x84\xcd\xcd\x53\x23\x44\x78\xee\x69\xd3\x54\xf9\xc1\xe6\x46\x2b\x41\x1a\x9d\xf7\xf3\xe2\xbf\xfe\xec\x0c\xba\xc6\x26\x5c\xaf\x40\x5b\x30\xad\x62\xeb\x1b\xcc\xb4\x80\x59\x06\xc0\x2c\x28\x16\x14\x0b\x8a\x05\xc5\x82\x62\x41\xb1\xa0\x58\x50\xac\x3e\x67\x5b\x28\x16\x14\x0b\x8a\x05\xc5\x82\x62\x41\xb1\xa0\x58\x50\x2c\x28\x16\x14\x0b\x8a\x65\x64\x8f\x42\xb1\xf2\xcd\x03\xc5\x9a\x32\xc5\x52\x17\x72\x63\xbb\xfb\x70\x27\x83\xc1\x6a\xb7\xe2\x48\xd0\x5b\x3b\xcf\xce\x7a\x6f\xb9\xd9\xfe\xb3\xd2\xd5\xde\x7b\x7d\x55\x99\x42\x92\x55\x46\xbe\xf7\xc7\x34\x2e\xbf\x52\xa7\xbb\x3a\x6c\xf2\xe5\x76\x6d\x52\x2e\x26\x1c\x2f\xdc\x49\x2b\xf7\x02\x2d\x52\xb3\x6f\x75\xa2\x46\xc7\xd7\xf3\xcf\x02\x8d\x00\x9c\x99\x2a\x57\xaa\xa6\x8a\x8f\xd1\x6a\x10\x8e\x96\x0e\xf4\x91\x60\xda\xf1\x73\x04\x5a\x03\xad\x81\xd6\x40\x6b\xa0\x35\xd0\x1a\x68\x0d\xb4\xd6\xe7\x6c\x0b\x5a\x03\xad\x81\xd6\x40\x6b\xa0\x35\xd0\x1a\x68\x0d\xb4\x06\x5a\x03\xad\x81\xd6\x8c\xec\x51\xd0\x5a\xbe\x79\x40\x6b\xb3\x44\x6b\x25\x1e\xc1\x67\x22\x6c\x59\xac\xe6\x25\x01\x40\x52\x40\x76\x26\xbc\xf6\xe6\x10\xf9\xab\xd5\x4d\x1c\x25\x46\x8b\x87\xc3\x92\xe6\x2a\xb7\x14\xce\x9c\xbb\x47\x38\x07\x98\x03\xcc\x4d\x14\xcc\x01\xe5\x80\x72\x40\x39\xa0\x1c\x50\x0e\x28\x07\x94\x03\xca\x01\xe5\x80\x72\x40\x39\xa0\x1c\x50\x0e\x28\x07\x94\x03\xca\x4d\x1d\xca\x65\x8d\xbe\x9b\x36\x1e\xa6\x64\xfb\x0d\x6c\x04\x36\x02\x1b\xa7\xd1\xa3\xc0\xc6\x7c\xf3\x00\x1b\x67\x05\x1b\x0d\x2b\xe0\x33\xa6\x72\x8f\x92\x3d\xc8\xe0\x84\xc9\xe0\xf8\x25\x7b\x60\x41\xb0\x20\x58\x10\x2c\x08\x16\x04\x0b\x82\x05\xc1\x82\x7d\xce\xb6\x60\x41\xb0\x20\x58\x10\x2c\x08\x16\x04\x0b\x82\x05\x17\x87\x05\xc1\x67\xe0\x33\xf0\xd9\x34\x7a\x14\x7c\x96\x6f\x1e\xf0\xd9\xbc\xf0\x99\x79\x45\x7a\x33\xa9\xce\x03\xbe\x01\xdf\x26\x0a\xdf\x00\x6f\x80\x37\xc0\x5b\xf2\xac\x01\xde\x00\x6f\x80\x37\xc0\x1b\xe0\x0d\xf0\x06\x78\x03\xbc\x01\xde\x00\x6f\x80\x37\xc0\x1b\xe0\x6d\x72\xe0\xad\xa2\x1e\x8f\x42\x3c\x48\xa2\x69\xdc\x09\x92\x08\x49\x84\x24\x42\x12\x0b\x8d\x66\x18\x49\x8c\x2e\x2b\xdc\x5a\x76\xc2\x11\xd5\xdf\xff\xbe\x31\xcc\x60\xcf\x18\x67\xbd\x5f\x92\x26\x5a\x63\xae\x07\x2c\x9c\x07\x2c\x1c\xa9\x52\x0f\x01\x4f\x80\x21\xc0\x10\x60\x08\x30\x04\x18\x02\x0c\x01\x86\x26\xc2\x32\x80\x21\xc0\x10\x60\x08\x30\x04\x18\x02\x0c\x01\x86\x53\x04\x86\xf1\x5d\x2b\x6e\x18\x75\xa5\xb5\xdf\x3d\x8a\xd0\xf6\xb7\xf2\x8d\x08\xf7\xf6\x63\xd4\xf3\x6a\xbd\x22\xad\x27\xbd\x53\xbc\x0d\x7c\xd5\xca\xa7\x33\x45\xb5\x31\x08\x58\x04\x2c\x02\x16\x01\x8b\x80\x45\xc0\x22\x60\xb1\x16\x2c\x1a\x52\xb9\x38\x13\x5f\xc1\x52\x34\x09\x96\x04\x4b\x4e\x14\x4b\x82\x24\x41\x92\x20\xc9\xe4\x59\x03\x49\x82\x24\x41\x92\x20\x49\x90\x24\x48\x12\x24\x09\x92\x04\x49\x82\x24\x41\x92\x20\x49\x90\xe4\xe4\x90\x64\xb6\x86\x71\x16\x66\x82\x30\x56\x18\x2b\x8c\x15\xc6\x6a\x74\x8f\xc2\x58\xf3\xcd\x03\x63\x9d\x35\x63\x35\xa5\x6a\xd3\xa4\x72\x4d\xea\x34\x01\xa2\x13\x06\xa2\x23\xd6\x69\x42\x43\xa1\xa1\xd0\x50\x68\x28\x34\x14\x1a\x0a\x0d\x85\x86\xf6\x39\xdb\x42\x43\xa1\xa1\xd0\x50\x68\x28\x34\x14\x1a\x0a\x0d\x5d\x1c\x0d\x05\x1e\x02\x0f\x81\x87\xc0\x43\xa3\x7b\x14\x78\x98\x6f\x1e\xe0\xe1\xbc\xe1\xa1\x41\x95\x99\xf3\x29\xc9\x04\x3d\x82\x1e\x27\x8a\x1e\xc1\x8e\x60\x47\xb0\x23\xd8\x11\xec\x08\x76\x04\x3b\x82\x1d\xc1\x8e\x60\x47\xb0\x23\xd8\x11\xec\x08\x76\x04\x3b\x82\x1d\xa7\x87\x1d\x8b\x45\x98\x54\x5f\x02\x50\x01\xa8\x86\xe0\x36\x00\x2a\x00\x15\x80\x0a\x40\x2d\x34\x9a\x61\x00\x15\x8f\xcc\x72\xea\x59\x70\xc6\xfc\xc9\x0f\x6e\x5d\x37\x45\xa1\x21\x18\x14\x0c\x3a\x51\x0c\x8a\x53\x26\x44\x14\x22\x9a\xf9\x22\x44\x14\x22\x0a\x11\x85\x88\x42\x44\x21\xa2\x10\x51\x88\x28\x44\x14\x22\x0a\x11\x85\x88\x42\x44\xa7\x47\x44\xc1\x69\xe0\x34\x70\xda\x34\x7a\x14\x9c\x96\x6f\x1e\x70\xda\x3c\x70\x9a\x29\x1c\x6d\x7c\x80\x06\x39\x2b\xeb\x50\xc8\x19\xe4\x8c\x22\x42\x90\x19\xc8\xac\x6a\xf8\x81\xcc\x40\x66\x20\x33\x90\x19\xc8\x2c\x3f\xdd\x1a\x88\x8b\x40\x66\x20\x33\x90\x19\xc8\x0c\x64\x06\x32\x03\x99\x81\xcc\xf2\x77\x03\x32\x03\x99\x81\xcc\x40\x66\x20\xb3\xe5\x21\xb3\xd0\x7e\x94\xeb\xbd\x1b\xad\x80\x62\x54\xd6\x89\x8b\x9d\x9b\x05\xb5\x61\x6e\x1b\xb9\x13\x8e\xf7\xe0\x07\x4f\xe9\xd8\xb6\x84\xde\xce\xaf\xa6\x63\x1b\xb9\xfb\x9c\x36\xc1\xed\xdd\xa7\xff\x2c\x7e\x7f\x2c\xfa\x35\x59\x28\x95\x36\xe2\xc4\x91\xd4\xe1\xc9\xc8\x1c\x73\x91\xfd\xdd\xa6\x27\xe9\xf9\xed\xb4\x1f\xa6\xdc\x6a\x51\xcf\x91\x6d\x9f\xa4\x3f\xde\xde\xde\x7d\xfa\xad\xec\x28\x9e\xa7\xd3\x9f\xa7\xa4\x21\x95\xab\xe8\x6c\x1e\xab\xff\x7e\x7e\xfb\x8a\x27\x6b\x1b\x38\x7e\xe0\xec\x5e\x6c\xd7\x0a\xf3\x1d\x78\xa9\xd7\xe0\xfd\x26\x74\xe8\x73\x0a\xdb\x77\x5d\x69\x27\xaf\x97\xbb\xf8\x1a\xde\x47\xd7\x50\xf3\x68\xe8\x83\xb3\x4f\xc7\xfb\xf4\x3c\x95\xe7\xa8\x00\xc2\xa2\xd8\xa7\x3a\x92\xb8\xf7\xd7\x2f\xc5\xe1\x98\x84\x12\x65\x9f\x9d\x65\xa8\x7e\x50\xf7\xf9\xab\x6a\xb4\xb0\xe5\x40\xad\x1f\xa1\x30\x46\x18\x23\x8c\x11\xc6\x38\x37\xc6\x58\xb3\x02\x6c\xe2\x8c\xf5\xbb\x09\xf5\x2b\xc1\x93\xe6\xde\xff\x8a\x1a\x2e\xde\x5d\x7d\xa3\x72\x19\xed\x68\x44\xe9\x71\x90\xbb\xb7\x6c\x3e\xcf\xbd\x14\xdb\xa8\xb5\xc2\x9d\x5c\xaf\xc4\xad\x27\x1c\x4f\xcf\x2c\x7e\x20\xf6\x5e\x3a\x39\xad\xc5\x3a\x78\xf9\x6d\xef\x89\xb5\x13\x44\x2f\xc2\x67\x99\x8e\xf8\x68\xfa\x54\x7b\xe1\xf1\x23\x9f\x8c\x8d\xb8\x81\xc5\xc3\x3e\x50\x4f\xd9\x36\xf0\x6d\x19\xaa\x4d\xeb\x78\x1b\x23\x1e\x65\x2b\xf1\x87\xfa\x45\xd5\x5b\x6a\xec\xfc\x28\xae\xc5\xad\xeb\xfe\xa8\xb6\xa4\xd7\xd1\x2c\xbd\xf7\xa2\x8e\xdf\xc8\x30\x1d\x92\xf1\xe9\xe4\xba\x43\x47\xe9\x7b\x19\xa7\x9b\x06\x03\xc3\xed\x9a\xa2\x1a\x0e\x0f\xd6\x22\xbf\x67\x77\xb8\x1c\x4f\x84\x7a\xe3\x49\xdc\xcb\x07\x9d\xc1\x96\x42\x84\x43\x28\x11\xcf\x5e\x6a\xe8\xec\xa5\x7e\x39\xdc\x4b\xe1\xf9\xde\xb5\x27\x37\x96\x1a\xa0\xf1\x1e\xd5\x4a\xfc\x9e\xbe\xb0\x35\x50\x4c\x1f\x8d\x38\x4a\x74\x9e\x9e\xe4\xda\xb1\x76\xd2\x7d\x39\xa4\x96\x1d\x5e\xb9\x8e\xfb\x26\xde\x83\x52\x8d\x2e\x36\x81\x65\xab\xa7\xc6\xf1\xd7\x69\x40\x70\x78\x69\xab\xbc\xbd\x64\x94\xee\xc3\xe8\x22\xb3\xdd\x65\x45\x47\x26\x37\x14\xff\xc8\x83\x9e\x03\x93\x53\xac\xf4\x75\x3e\x49\xcb\x2b\xbd\xc6\x0e\xdd\xac\xae\xf9\x4e\x5d\x72\xd9\xbe\x5e\xc3\xce\x9e\x29\xc3\xff\x94\x9c\x80\x76\xed\x52\x9d\x17\x30\xd8\xf0\x27\x43\x80\x0c\x01\x32\x04\xc8\x10\x20\x43\xe0\x6c\x19\x02\x2d\xdf\x05\x47\x59\x02\xc3\xbd\x16\x3f\x64\x8a\x8a\xb6\xae\xb4\x42\x99\x4e\x41\x77\x81\xbf\xb5\x36\x2a\x3a\xba\xf3\x5d\xc7\x7e\xc9\xe5\xa3\x27\x83\xee\x50\x95\x14\x0d\xbb\xb7\xab\xff\x58\x89\xcf\x7a\x3e\xd3\xa1\xcb\x56\x7a\xd1\xc3\x72\x78\xa7\x4a\xe1\x07\xdb\x47\xcb\x4b\xf2\xe3\x83\xbd\xbc\x79\xb0\xdc\x64\xad\xfc\xe5\x52\x7f\xfc\xe5\x52\x3c\x38\x9e\xe5\x3a\xff\x4a\x5e\x24\xf7\x52\x58\x6b\x85\x8d\xfd\x1b\x8d\xd4\xd6\x87\x65\x98\x3e\xfd\x55\x78\x38\x48\xaf\x4f\x57\xe2\xa3\xa3\x26\xc7\xcc\xa5\xfb\xc1\xf1\xbd\x1d\x92\x04\x76\x7a\x79\xac\xd6\x28\xfe\xee\xb1\x4b\x87\xea\x3b\xf8\x90\xdc\x7b\x65\xc8\x53\x06\xe8\xfa\x5d\x98\xa9\x5b\x8f\x1e\xd8\x47\xff\x9b\xd8\x58\xc1\xbd\xb5\xc9\x6d\x4e\xa6\x8b\x1a\x19\x3c\xf8\xc1\x53\xd4\x27\xa5\xed\xf5\x6b\xe1\x8e\xaa\x9b\x4b\x05\xbd\x49\xc4\xba\xd5\x6d\xeb\x44\xd1\xa4\xed\xac\x0f\x4b\x61\x15\x2b\xa8\xcd\x89\xb4\x8f\x43\x85\xe5\xd4\xa7\x49\x34\xb0\xca\x74\x66\xf2\x1e\x49\x29\x7d\x5a\xeb\x91\xff\xb1\x95\xb8\xb5\x6d\xb9\xdd\xa9\x77\x53\x76\x65\x77\xa5\xef\xe1\x4a\x5c\xc7\x03\x30\x3f\x40\xc3\xbf\x89\xab\xbf\x5b\xf6\xd7\x4d\xe0\xef\xbd\x75\xf4\x2d\x55\x37\xa1\xbe\x54\x68\x38\x1d\x42\xc6\xf1\x71\xfe\x24\xc9\x1d\xdc\xa7\x67\xfa\x9b\xb8\xfa\xc9\x0f\x64\xe6\xb4\xc2\xb6\x42\xdb\x5a\x47\x77\x1f\xb7\x8f\x2e\xab\x51\xe7\x0b\xf5\xd2\xf3\xe8\x84\x0f\xe9\x39\xba\x0c\xc8\x6d\x71\xb8\x8f\x13\x71\xce\x38\x9d\xa7\x5d\x3f\xd4\xa5\xf4\x8c\xd5\x0b\x24\xf7\x9c\xad\x7f\x8f\x13\x7c\x86\xdb\xdb\x18\x33\xd5\xa7\x5d\x63\xd5\xa4\xfb\xbc\x36\xfe\x29\x25\x75\x10\xe5\x13\x31\xdd\xe7\x9d\xb5\xdb\xb7\xe5\x73\x93\x03\xc9\x99\xc3\x2a\xca\x84\xf5\x1b\xf9\x10\x2d\xf5\x51\x2d\x7c\xc4\xa8\xcb\xab\x84\xab\x68\x6f\xb1\x5c\xb8\xae\x52\xb8\x77\xb1\x02\xbd\x4f\x16\xc4\x6b\xeb\x24\xa0\x4f\x9c\x91\xdb\x42\xee\xe8\x2c\x59\xc4\xfd\x6a\xb0\x4d\xb5\xf3\x72\xaa\x9d\xdb\xbd\x59\x9a\x2a\x9e\x87\x5b\x82\x91\x97\x40\x5e\x02\x79\x09\xe4\x25\x90\x97\x50\x36\xf9\x02\xbc\x27\xd4\x22\x30\x50\x18\x28\x0c\x14\x06\x0a\x03\x85\x81\xce\x8b\x81\x82\x25\xc0\x12\x60\x09\xb0\xc4\xd9\xb1\xc4\x09\xe8\xde\xd0\x7a\xe4\x76\x4d\x78\x5c\x93\xfc\xda\x1d\x37\xa3\x80\x4e\xe5\x01\xcb\x12\x9c\x5d\x65\x58\xc6\xf3\xdb\x55\x6e\x1f\x7f\xce\x15\x88\xcd\xe0\xa8\x2f\x69\xd9\x01\x61\x51\x07\x59\xd9\xa9\x48\xcd\x5c\x14\xfa\xed\x72\xeb\x87\x3d\x93\x31\xbd\x7a\x11\x56\x6b\x08\xa6\x0f\xe8\x15\x83\x75\xab\xef\xac\xf1\xca\x3f\xdb\xe4\xd0\x4b\xc5\x27\x55\x47\xd9\x6e\x37\xb6\xea\x48\xed\x4e\xfc\x6c\x79\xd6\x46\x06\x7a\x9f\x2d\xba\x2a\x61\x85\xa1\x6f\x3b\x6a\xe1\x98\xee\x68\x59\x6a\x63\xd2\x0f\x84\xf4\x76\x51\x24\x97\xac\xa4\x9f\xac\xaf\x51\x2b\xee\x1e\x65\x28\x93\x70\x28\x5b\x5b\x93\xd4\xe0\xa8\x70\x50\xed\x5e\xf9\x81\x78\xfb\xee\x87\xe8\xbb\x81\x65\x2b\x5c\xe5\xfa\xde\x46\x07\x3f\x6a\x87\xc9\xf6\xbd\x9d\xe5\x78\x7a\x76\x52\x3b\x38\x87\xef\xaa\x2d\xfc\x18\xa6\x89\xfb\x97\x34\xbe\xdf\xf8\xae\xe5\x6d\x56\x7e\xb0\xb9\xd9\x7e\xdd\xdc\xec\x3d\xc7\xf6\xd7\xf2\xe6\x2f\x9f\xc2\xbb\xe8\x2c\x9d\xb7\x84\xe3\xc6\xe9\xb3\x7b\x8c\x8a\x96\xa6\x1b\xc4\xb4\x0d\x60\xde\xb5\x08\x60\xde\xeb\xfd\x2d\xd3\x2e\xfc\x5d\xe3\x85\xeb\x6c\x5a\xd3\xae\x7c\x7e\x31\xa3\x0a\x4a\x26\x11\x33\x5e\x88\x4e\xca\x1b\x37\xff\x1b\x4d\x7b\xff\x1e\x48\x80\xa3\x7d\x28\x76\x2c\xba\x81\xd4\x46\xee\xd7\x09\xbc\xa6\x18\x78\x51\xdc\xbc\xa0\xe2\x66\xaa\xb8\xa8\xe2\xa2\x8a\x8b\x2a\x2e\xd6\x8c\x55\x4f\x91\x91\x25\x13\xe3\xac\xbf\xa8\xf8\x68\xa8\xf8\x98\xc6\x32\x2c\xdd\xce\xee\xbd\xce\x23\x90\xd6\xba\x10\x7e\xb5\x5d\x4c\x45\x87\x9e\xb3\xb8\x23\x13\x94\xc8\xff\x51\x29\x5b\xf7\xd1\x5f\x96\xbd\x5b\x09\xf1\x31\xfa\x7f\xf2\xef\x4f\x96\xa3\xf6\xf8\x42\x61\xbb\xfb\x70\x27\x83\xc3\xab\x46\xe7\x76\x0a\xd7\xf9\x2a\xc5\x55\xea\x65\x79\x15\x45\x94\x49\x14\xb4\x12\x77\xae\xe5\x79\x52\x87\xa2\x2a\x4e\xb1\x5c\x1d\x1a\xbd\xfd\xa1\xcb\xdc\xad\xae\x71\xa4\x08\x22\x6d\xb4\x34\x00\xbf\x4f\x9a\x2f\xba\x53\xf1\x51\xb7\x58\xf4\xd6\xd8\x86\x49\xeb\xc4\x59\x4d\xfb\x50\x06\x2a\x1d\xe9\x10\x4b\xbf\x9c\xb9\xa1\xa2\x8b\x99\x2f\x3c\x36\xfb\xd5\xc6\xde\x5c\xd9\x6b\x61\x23\x27\xb2\x35\xf7\x1a\x9c\xab\xb8\x4c\xbc\x63\x52\x73\x09\xfa\x11\xde\x5a\xbb\xc7\x72\x72\xab\xfe\x9f\xfb\xa4\x06\x31\x9e\xd9\xef\x60\xba\x84\x5a\xa5\x7f\x74\x12\x01\xbf\x56\xc7\xfe\xb5\x7e\xea\x7a\x92\xc1\x46\xb6\xfa\x66\xb8\x0b\xac\x9d\xdc\x38\xf6\x75\xfb\x63\xa2\xbf\x5f\xe2\x6f\xaa\x49\xb2\x4d\xd0\xb1\xb5\x82\x9d\xa3\xaa\xb3\x74\xaa\x52\xc7\x00\x44\xfd\xaa\x01\x9b\xb9\xe7\xe2\xea\x35\xc1\xfb\x5d\x3e\x67\x48\xb0\xc5\x3b\xf3\x2d\xde\xe5\xb0\xf5\x42\xa5\x43\xf2\x70\xe9\x6a\x9c\x68\xb6\x39\x54\x78\x7f\x57\x31\x13\x7d\xaf\x36\xb8\x74\x09\xae\xe5\xaa\x23\x3d\xdf\xbb\xd6\x47\xab\x6f\xa8\x3d\xe6\x50\x7c\xf7\x8f\xd0\xf7\xee\x74\xa1\xf3\xcf\xd1\x9c\x17\xff\xfd\x39\x99\x09\x0f\xff\xf8\xbd\x49\xd0\xbf\xfd\xb8\xf9\xc9\x0f\x6c\xb5\x09\xbf\xf1\x55\xe7\xfb\xe2\xcb\xe5\x43\xf4\x6f\x5f\x2e\xc5\x6d\xae\x35\x55\x1e\xb5\xde\x31\x57\x0b\x81\xf8\x41\xbd\xb6\x6c\xd5\x01\xaa\x54\xd6\x75\xec\x78\x0f\x50\xad\x1b\xfc\x6f\x71\xdf\xea\x52\xd2\xad\xf4\xb7\xae\x5c\x09\xfd\x9b\xaa\x42\x3e\x19\x53\x2a\x9b\xb9\xb4\x23\xd2\x9f\xef\xd2\xbc\xd1\x0f\xb1\x7c\xd0\x1f\xb0\x7c\x30\x61\xf9\xb0\x2d\xa4\x02\x4f\x62\x01\xb1\xef\x7d\x53\x69\xeb\x5a\x76\xd7\xb0\x2e\x3e\x7a\xc6\x81\x1d\x09\x93\x04\x75\xcb\x0a\xea\x0c\x8a\x9d\x78\xc5\xa7\x9f\x90\x30\xb9\xac\xd8\x64\x3f\x91\xad\xcd\x0b\xd1\x2e\xeb\x50\x55\x4e\xd5\xb9\x7e\xf5\x8e\xcb\xe2\x32\x7b\x6f\xed\x3c\x3b\xeb\xbd\xe5\x66\x4b\xf6\xac\x54\x58\x23\x77\xeb\xab\x4c\xc2\xcd\x8f\x69\xaa\xce\x95\x3a\xd3\xd5\x41\x66\x29\xa7\x9b\x93\x46\x44\xc2\xf1\xc2\x9d\xb4\x72\x3b\x96\xc5\x78\xe9\x5b\xed\x36\xd8\x3f\x0b\xf5\x49\x14\xd2\x99\x9a\x4f\xa0\xea\x40\x3f\x3e\x4b\x6f\xc1\xd5\x74\xaa\x0b\x97\x51\x52\x87\x76\xe1\x8c\xb5\x0b\x9b\x99\x52\x93\x6e\x61\x77\x67\xe7\x76\xbc\x0c\xb5\x42\xd4\x0a\x51\x2b\x44\xad\x70\x6e\x6a\x85\xcd\x33\x6f\xa9\x52\xe1\x99\xb3\x13\x06\xd3\x27\x6c\xbe\xfd\x6a\x6d\x42\x93\xdb\xe0\x14\x45\xc2\xe6\x36\xa8\x56\x23\x3c\x73\x1b\xa0\x41\x88\x06\x21\x1a\x84\x68\x10\xa2\x41\x78\x36\x0d\xc2\x16\xb3\xff\x91\xfe\x60\x6d\xed\xde\x82\x92\x13\xdb\xdd\xcd\x8c\x35\x14\x9b\x9b\xbb\x4e\x3f\x71\xd8\x76\x47\x35\xf1\x2c\x3d\x7a\xac\x98\x78\xe6\x6e\x1d\x55\x27\xb1\xb9\x79\x6a\x34\x12\xcf\x3d\x6d\x9a\xaa\x8c\xd8\xdc\x68\x25\x20\xa3\xf3\x7e\x5e\xfc\xd7\x9f\xaf\xa2\x62\x25\x8a\x1c\x67\x82\x63\x59\x22\xe6\x25\xef\xfb\x52\xe3\xa0\x5e\xc8\xd8\x9b\x43\x8c\xaf\xd6\x31\x71\x3c\x18\x2d\x13\x0e\x8b\x97\xab\xdc\xa2\x37\x73\xee\xee\x5c\x0d\xa6\x06\x53\x9b\x10\x53\x83\xa7\xc1\xd3\xe0\x69\xf0\x34\x78\x1a\x3c\x0d\x9e\x06\x4f\x83\xa7\xc1\xd3\xe0\x69\xf0\x34\x78\x1a\x3c\x0d\x9e\x06\x4f\x9b\x16\x4f\x43\xbf\x04\x44\x38\x19\xa0\x04\x22\x04\x11\x82\x08\x41\x84\x85\x46\x1b\x11\x11\xde\xcb\x9d\xf5\xf6\xa6\x13\x0b\x1c\xa5\x20\xb6\xd0\xe7\x1b\xb9\xcb\xc7\xee\xba\x7b\x6b\x50\xde\x46\xee\xb2\x20\x4f\xdd\xff\xed\xdd\xa7\xdf\xca\x0e\xa5\x14\xf8\x44\xc6\x96\x69\xc8\xd9\x59\xc1\xa9\x91\x92\x39\xf6\x22\xfb\xfb\x6d\x1f\xb4\x9a\x02\xd5\x33\xba\x62\x64\x34\xc3\x8b\x25\xa9\x35\x4f\xca\xb1\x43\x86\xba\x87\xf7\xe9\xc9\x30\xcc\xc8\xfd\x3a\x14\x08\x0a\x04\x05\x82\x02\xcd\x9c\x02\xb5\x93\x6c\x29\x25\x41\x83\xa9\xe9\x20\x7a\xd4\xba\xa3\xc6\x14\x3d\x1a\x0c\xdd\x9d\x20\x33\x54\x8a\xae\xb0\x6f\xc2\xbe\xc9\xb0\xe1\x7f\x0a\xb5\x6d\xd7\x2e\xd5\xe4\x76\xb0\xe1\x0f\xc3\x85\xe1\xc2\x70\x61\xb8\x30\xdc\xb3\x31\xdc\x96\xef\x82\x23\x8e\x8b\xab\x21\xae\x86\xb8\x1a\xe2\x6a\x38\x09\x57\xc3\xf6\x03\x72\xc6\xd9\x09\xed\xfa\xa1\x2e\x43\x61\xac\x5e\x20\x57\xe1\x6c\xfd\x7b\x9c\xaf\x30\xdc\xde\xc6\x98\x99\x0b\xed\x1a\xab\x26\x7b\xe1\xb5\xf1\x4f\x29\xae\x03\x30\xe3\x54\x5a\xe4\xca\x99\x63\x6b\xed\x4a\x0f\x21\x93\x81\x05\x9d\x85\x9b\x1a\xc0\xbd\x54\xef\x98\x05\xf1\x2a\x3b\x09\xed\x4b\x8b\xcd\x6b\x98\x77\x74\x96\x23\xe2\xdd\xb7\x9b\x29\xe5\xa9\x33\x2e\x4f\x6d\xf7\xa2\x69\x2a\x51\x1d\x6e\x45\x46\x9a\x02\x69\x0a\xa4\x29\x90\xa6\x40\x9a\x42\xd9\xe4\x0b\xff\x9e\x50\x8b\x80\x44\x41\xa2\x20\x51\x90\x28\x48\x14\x24\x3a\x2f\x24\x0a\xa5\x80\x52\x40\x29\xa0\x14\x67\xa7\x14\x27\x90\x7c\x43\xab\x2d\xdb\x35\xe1\x71\xc5\xe5\xac\xec\xc2\x2b\x0f\x58\x96\x1a\x68\xde\xfb\x53\xed\xe5\xaf\x8e\x1d\x11\x97\x0d\x93\x0c\x75\xd8\x6b\x04\x48\x1d\x64\x41\xa7\xa2\xab\x71\x51\xe8\xbc\xcb\xad\x1f\xf6\x4c\xcb\xf4\x62\x46\x58\xad\xc1\x98\x3e\xa0\x7f\x34\x66\xb2\x1b\x7b\xc9\x84\x81\x25\xfb\x72\xaa\x93\xb0\x64\xc7\x92\xbd\xe4\x62\xa6\x13\xdd\x4c\xc8\x97\xfd\x55\x57\xff\xae\xf1\xea\x75\xfe\xad\x91\x97\x3f\xd3\xb0\x52\x85\x2c\xd3\x09\x2b\x2f\x44\x77\x11\x8f\x12\x3f\x8d\x33\x6a\x79\xb4\x0f\xd9\x2a\xf4\x3b\x50\xed\xc8\xfd\x3a\xb1\xd9\x14\x63\x33\xea\xa4\x17\x54\x27\x4d\x41\x18\x05\x61\x14\x84\x51\x10\xc6\xb2\xb2\xea\x29\x32\xb2\xfa\x62\x9c\x85\x19\xc5\x23\xf1\xf7\x6a\x8b\x47\x26\xb4\x34\x4b\x77\xc1\x7b\x2f\x19\x09\xa4\xb5\x2e\x04\x62\x6d\xd7\x56\xd1\xa1\x67\xaf\x13\xc9\xc4\x28\xf2\x7f\x54\xf6\xd7\x7d\xf4\x97\x65\xef\x56\x42\x7c\x8c\xfe\x9f\xfc\xfb\x93\xe5\xa8\x5d\xc1\x50\xd8\xee\x3e\xdc\xc9\xe0\xf0\xe6\xd1\x69\xa2\xc2\x75\xbe\x4a\x71\xf5\x8b\xf5\x24\xc3\xad\x65\xcb\xab\x28\xc0\x4c\x82\xa2\x95\xb8\x73\x2d\xcf\x93\x3a\x32\x55\x61\x8b\xe5\xea\x48\xe9\xed\x0f\x5d\xa6\x72\x75\x8d\x23\x05\x14\x69\xa3\xa5\xf1\xf8\x7d\xd2\x7c\xd1\x9d\x8a\x8f\xba\xc5\xa2\x97\xc8\x36\x4c\x5a\x27\x4e\x90\xda\x87\x32\x50\x99\x4d\x87\xd0\xfa\xe5\xcc\x0d\x15\x5d\xcc\x7c\x39\xb4\xd9\x6f\x3a\xf6\xf0\xe2\xef\x55\xbc\x2a\x36\x72\x4a\x5b\x78\xaf\x21\xc3\x98\x48\x1c\xdf\xe6\x68\xb0\x5b\x25\x96\x74\x52\x20\xbf\x56\xc7\xfe\xb5\x7e\x26\x7b\x92\xc1\x46\xb6\xfa\x66\xb8\x0b\xac\x9d\xdc\x38\xf6\x75\xfb\x63\xa2\xbf\x5f\xe2\x6f\xaa\x39\xb3\x4d\x20\xb2\xb5\x82\x9d\xa3\xea\xbe\x74\x12\x54\xc7\xa0\x64\x5b\x74\x29\x9e\x23\xa2\xaf\x89\xef\xef\xf2\x29\x49\x82\x5d\xe0\x99\xef\x02\x2f\x87\xd0\x17\x0a\x29\x92\x87\x4b\x17\xfb\x44\x53\xce\xa1\x80\xfc\xbb\x8a\xe9\xe8\x7b\xb5\x07\xa6\x2b\x7c\x2d\x57\x1d\xe9\xf9\xde\xb5\x3e\x5a\x7d\x43\x6d\x43\x87\xe2\xbb\x7f\x84\xbe\x77\xa7\xeb\xa8\x7f\x8e\x26\xbe\xf8\xef\xcf\xc9\x74\x78\xf8\xc7\xef\x4d\x4a\x1d\x68\x3f\x6e\x7e\xf2\x03\x5b\xed\xd3\x6f\x7c\xd5\xf9\xbe\xf8\x72\xf9\x10\xfd\xdb\x97\x4b\x71\x9b\x6b\x4d\x95\xa6\xad\x37\xd5\xd5\xe2\x20\x7e\x50\xaf\x2d\x5b\x75\x80\xaa\xc4\x75\x1d\x3b\xde\x26\x54\x6b\x09\xff\x5b\xdc\xb7\xba\x52\x75\x2b\xfd\xad\x2b\x57\x42\xff\xa6\x2a\xc0\x4f\xc6\x94\x4a\x96\x2e\xed\x88\xf4\xe7\xbb\x34\x6f\xf4\x43\x2c\x29\xf4\x07\x2c\x29\xf2\x37\x35\xf6\x92\x62\x6b\xa8\x01\x7d\xf3\xa2\x62\xdf\xfb\xe6\xd3\xd6\xb5\xec\xae\xa1\x5e\x7c\xf4\xdc\x83\x3d\xf2\x31\x89\xf6\x16\x18\xed\x19\x14\x54\xf1\xee\x4f\x3f\x21\x1f\xb3\xd5\xd5\xcf\x35\x72\xd9\x4f\x69\x33\xf4\x42\x9c\x90\xcf\xa8\x4a\xb9\xea\xac\xc9\x7a\x27\x6f\x71\xdd\xbf\xb7\x76\x9e\x9d\xf5\xde\x72\xb3\x35\x84\x56\xaa\xf4\x91\x6b\x84\x55\x26\x8b\xe7\xc7\x34\xff\xe7\x4a\x9d\xe9\xea\xa0\xfb\x94\x13\xf2\x49\x83\x26\xe1\x78\xe1\x4e\x5a\xb9\x8d\xce\x62\x48\xf5\xad\x79\xf7\xec\x9f\x85\x5a\x29\xca\xfb\x4c\xcd\x54\x50\xd5\xa9\x1f\x9f\xa5\xb7\xf4\xf2\x3e\xd5\x8f\x0b\xaa\xf1\x43\x5b\x71\xc6\xda\x8a\xcd\x64\xaa\x49\x57\xb1\xbb\xaf\x6e\x3b\xea\x86\x9a\x22\x6a\x8a\xa8\x29\xa2\xa6\x38\x37\x35\xc5\xe6\x99\xb7\x54\x49\xf1\xcc\x39\x0e\x83\xe9\x27\x36\xdf\x7e\xb5\x76\xa2\xc9\x6d\x70\x8a\x62\x62\x73\x1b\x54\xab\x25\x9e\xb9\x0d\xd0\x48\x44\x23\x11\x8d\x44\x34\x12\xd1\x48\x3c\x9b\x46\x62\x8b\xd9\xff\x48\x1f\xb1\xb6\x3e\x70\x41\x29\x8e\xed\xee\x66\xc6\x1a\x8f\xcd\xcd\x5d\xa7\xef\x38\x6c\xbb\xa3\xea\x78\x96\x1e\x3d\x56\x74\x3c\x73\xb7\x8e\xaa\xe3\xd8\xdc\x3c\x35\x1a\x8e\xe7\x9e\x36\x4d\x55\x6e\x6c\x6e\xb4\x12\xa4\xd1\x79\x3f\x2f\xfe\xeb\xcf\xd7\x93\xb2\x12\xfd\x8f\x33\x01\xb3\x2c\x25\xf3\x92\x97\x7e\xa9\xc5\x51\x2f\xb4\xec\xcd\x21\xd0\x57\x8b\x99\x38\x28\x8c\xd6\x0a\x87\x15\xcc\x55\x6e\xe5\x9b\x39\xf7\x2b\x59\x1b\x9c\x0d\xce\x36\x35\xce\x06\x63\x83\xb1\xc1\xd8\x60\x6c\x30\x36\x18\x1b\x8c\x0d\xc6\x06\x63\x83\xb1\xc1\xd8\x60\x6c\x30\x36\x18\x1b\x8c\x0d\xc6\x36\x41\xc6\x86\x32\x0a\xd8\x70\x32\x90\x09\x6c\x08\x36\x04\x1b\x82\x0d\x0b\x8d\x36\x14\x36\xdc\xf9\x81\xb5\x91\x09\x33\xec\xc4\x03\x47\xa9\xa0\x2d\x74\xf4\x46\x89\x1c\x3f\xf8\xc1\x53\x3a\xb0\x2d\xa1\xf9\x44\x35\xd1\xdb\xc8\xdd\x67\x7d\xff\xb7\x77\x9f\xfe\xb3\xf8\x65\x0a\x86\x4f\xe4\x6a\x69\x23\x4e\x9d\xaa\xe9\x31\x91\x39\xe0\x22\xfb\xa3\xb5\x0f\xd0\xf3\xdb\x69\x3f\x43\xb9\x45\xaf\x9e\x17\x5b\x3d\x40\x7f\xbc\xbd\xbd\xfb\xf4\x5b\xd9\x21\x3c\x46\xa7\x3f\x46\x49\x43\xce\xc2\xea\x51\x0f\x90\xff\x7e\x7e\xdb\xf5\x81\xb2\x43\x67\x1d\x38\xcf\x9a\xf6\x0e\x61\x57\x93\xd1\xf1\xf7\x1f\xc4\xfb\xcf\x9f\x3e\xa8\x9f\xaf\x79\x10\x62\xdb\x9a\xe4\x59\x78\x9f\x9e\xa0\xf4\x60\x4c\x6b\x20\xa2\x10\x51\x88\x28\x44\x74\x86\x44\xb4\x9d\xf4\x51\x29\x15\x1d\x4c\x95\x0a\xf1\xb0\xd6\x1d\x35\xa6\x78\xd8\x60\x18\xfb\x04\xb9\xae\x52\x8c\x8b\x85\x1a\x16\x6a\x86\x0d\xff\x53\x32\x18\xda\xb5\x4b\x75\x16\xc3\x60\xc3\x9f\x7c\x06\xf2\x19\xc8\x67\x20\x9f\x81\x7c\x86\xb3\xe5\x33\xb4\x7c\x17\x1c\xe5\x34\xe0\x2c\x8a\xb3\x28\xce\xa2\x38\x8b\x4e\xc2\x59\xb4\xfd\x80\x9c\x71\xa6\x4e\xbb\x7e\xa8\xcb\xd6\x19\xab\x17\xc8\xdb\x39\x5b\xff\x1e\xe7\xee\x0c\xb7\xb7\x31\x66\x16\x4f\xbb\xc6\xaa\xc9\xe4\x79\x6d\xfc\x53\x8a\xe7\x60\xc7\xcb\x74\x0b\x2e\x43\xc6\x99\x63\x6a\x5d\x82\x0f\xa1\x52\x2f\x95\xcd\x39\x1a\x5d\x5e\xd6\x5c\xc6\x78\x8b\x25\xcd\x83\x7a\x04\xeb\xdd\xb1\x20\x5e\x51\x27\x61\x7c\xa2\xb9\xd0\x86\x67\x47\x67\x38\xd0\xec\xd7\x30\x6c\xca\xb0\x97\x53\x86\xdd\xee\x25\xd2\x54\x8a\x3d\xdc\x6a\x8b\x14\x04\x52\x10\x48\x41\x20\x05\x81\x14\x84\xb2\xc9\x17\xb6\x3d\xa1\x16\x01\x77\x82\x3b\xc1\x9d\xe0\x4e\x70\x27\xb8\x73\x5e\xb8\x13\x02\x01\x81\x80\x40\x40\x20\xce\x4e\x20\x4e\xa0\xf4\x86\x56\x15\xb7\x6b\xc2\xe3\xca\xe2\x59\x79\xed\x57\x1e\xb0\x2c\xfd\xdb\x55\x42\x2e\x9e\xdf\xae\xd2\x0d\xfc\xd9\xd6\x13\x36\xc3\xa1\xde\xec\x24\x07\x00\x42\x1d\xe4\x6d\xa7\xa2\x0f\x73\x51\xe8\xb0\xcb\xad\x1f\xf6\x4c\xbf\xf4\x62\x45\x58\xad\x40\x97\xfe\x72\x3f\xa8\xab\x5b\xb9\x66\x8d\xa6\x50\xff\x13\x40\x2f\x95\x9b\x54\x0f\x65\xfb\xdb\xd8\xea\xa1\xac\xbb\xbe\xde\x44\x53\xba\x58\x56\x18\xfa\xb6\xa3\x56\x85\xe9\x76\x95\xa5\x76\x1d\xfd\x40\x48\x6f\x17\x85\x69\xc9\x32\xf9\xc9\xfa\x1a\xb5\xe2\xee\x51\x86\x32\x89\x75\xb2\x35\x32\x49\x2d\x8d\x8a\xf5\xd4\xd6\x94\x1f\x88\xb7\xef\x7e\x88\xbe\x1b\x58\xb6\x62\x51\xae\xef\x6d\x74\x64\xa3\xb6\x8f\xa2\x75\xbe\xe5\x78\x7a\x2e\x52\xdb\x33\x87\xef\xaa\xfd\xf9\x98\x94\x89\xfb\x97\x34\x78\xdf\xf8\xae\xe5\x6d\x56\x7e\xb0\xb9\xd9\x7e\xdd\xdc\xec\x3d\xc7\xf6\xd7\xf2\xe6\x2f\x9f\xc2\xbb\xe8\x2c\x9d\xf7\x7b\xe3\xc6\xe9\xb3\x7b\x8c\x0a\x85\x26\x18\xa1\xb4\x8d\x4e\xde\xb5\x88\x4e\xde\xeb\x5d\x2b\x63\xae\xf8\x5d\xe3\x15\xeb\x3c\x58\x63\x2e\x79\x66\x21\xa0\x0a\x35\xcc\x0e\x01\x2f\xc4\x49\x7a\x18\x25\x2e\x2e\x67\x94\xc5\x68\x17\x51\x15\xa5\x30\x10\xc0\xa8\x68\x55\xc2\xa8\x6c\x27\x1b\x1b\x46\x51\x72\xbc\xa0\x92\x63\x6a\xab\xa8\xad\xa2\xb6\x8a\xda\x2a\x56\x80\x55\x4f\x91\x41\x2b\x40\xd6\x53\x26\xd4\x5b\x18\xbe\xa2\x4a\x37\x9a\x7b\xaf\xb2\x08\xa4\xb5\x2e\x04\x57\x6d\xd6\x47\xd1\x61\x67\x29\xad\xc8\xc4\x19\xf2\x7f\x54\xc2\xd4\x7d\xf4\x97\x65\xef\x56\x42\x7c\x8c\xfe\x9f\xfc\xfb\x93\xe5\xa8\x4d\xb8\x50\xd8\xee\x3e\xdc\xc9\xe0\xf0\xf6\xd0\x99\x95\xc2\x75\xbe\x4a\x71\xf5\x8b\xf5\x24\xc3\xad\x65\xcb\xab\x28\x48\x4c\x02\x9b\x95\xb8\x73\x2d\xcf\x93\x3a\xba\x54\xa1\x87\xe5\xea\x68\xe7\xed\x0f\x5d\xa6\x63\x75\x8d\x23\x05\x05\x69\xa3\xa5\x31\xf5\x7d\xd2\x7c\xd1\x9d\x8a\x8f\xba\xc5\xa2\x17\xc1\x36\x4c\x5a\x27\xce\x29\xda\x87\x32\x50\xc9\x40\x87\xf0\xf8\xe5\xcc\x0d\x15\x5d\xcc\x7c\xd1\xed\x8c\xdf\x56\x33\x9b\xfa\x37\xd2\xf4\x9d\xb4\xd7\xc0\xd4\xac\x7f\x48\xc5\xcf\xe3\x1d\x32\x04\x1b\x56\x79\x16\x9d\xf4\xb3\xaf\xd5\xb1\x7f\xad\x9f\xa5\x9e\x64\xb0\x91\xad\xbe\x19\xee\x02\x6b\x27\x37\x8e\x7d\xdd\xfe\x98\xe8\xef\x97\xf8\x9b\x6a\x3e\x6c\x13\x54\x6c\xad\x60\xe7\xa8\x32\x28\x9d\x13\xd4\x21\xc0\x50\xbf\x38\x47\xa2\x5d\xb3\x3b\x7b\x97\xcf\xc8\x11\xec\xca\xce\x7c\x57\x76\x39\x70\xbb\x50\x47\x90\x3c\x5c\xba\xd6\x25\x9a\x62\x0e\xf5\xd3\xdf\x55\x4c\x3f\xdf\xab\x3d\x29\x5d\xe0\x6a\xb9\xea\x48\xcf\xf7\xae\xf5\xd1\xea\x1b\x6a\x5b\x38\x14\xdf\xfd\x23\xf4\xbd\x3b\x5d\x46\xfc\x73\x34\xd1\xc5\x7f\x7f\x4e\xa6\xbf\xc3\x3f\x7e\x6f\x12\x75\x6f\x3f\x6e\x7e\xf2\x03\x5b\xed\x9b\x6f\x7c\xd5\xf9\xbe\xf8\x72\xf9\x10\xfd\xdb\x97\x4b\x71\x9b\x6b\x4d\x95\xa5\xac\x37\xb9\x55\xa0\x1f\x3f\xa8\xd7\x96\xad\x3a\x40\x15\xa2\xba\x8e\x1d\x6f\xdb\xa9\x75\x81\xff\x2d\xee\x5b\x5d\xa8\xb9\x95\xfe\xd6\x95\x2b\xa1\x7f\x53\xd5\x9f\x27\x63\x4a\xe5\x0a\x97\x76\x44\xfa\xf3\x5d\x9a\x37\xfa\x21\x96\x07\xfa\x03\x96\x07\x23\x92\xf6\x42\x7a\xad\xd9\x0b\x84\x7d\xef\x1b\x43\x5b\xd7\xb2\xbb\x84\x6e\xf1\x91\x73\x0c\xde\x48\x47\x24\x62\x5b\x48\xc4\x66\x50\x60\xc4\xfb\x3b\xfd\x84\x74\xc4\x59\x47\x1c\x7b\xd3\x37\x24\x2f\x44\xbb\xd4\x3e\xcf\x5f\xcb\xd1\x8c\xae\x7e\xf1\xd7\xf2\x84\xdc\xbe\xac\xcd\x55\xf1\x50\x72\xfc\x50\x98\x42\x61\x0a\x85\x29\x14\xa6\x50\x98\x1a\x65\xc1\xc1\xba\xb0\x75\x47\x61\x72\x65\x92\x10\x18\x19\xe7\x0b\xca\x38\x47\xf5\x0d\xd5\x37\x54\xdf\x50\x7d\x43\xf5\x0d\xd5\x37\x54\xdf\x28\xc4\xa2\x10\x8b\x42\x2c\x0a\xb1\x8a\x23\x12\x93\x2b\x24\x26\x91\x98\x44\x62\x72\xe2\x12\x93\xa5\x68\x0e\x1c\x8f\xc9\x55\xc9\x31\xe6\x99\x5c\x15\x08\xaf\xd9\x16\x57\x0d\x24\xbb\x68\x70\xd5\x95\x5e\x63\x6f\x85\xbd\x95\xfe\x08\x7b\x2b\x92\x0f\x48\x3e\x20\xf9\x80\xe4\x03\x92\x0f\xa0\xda\x80\xce\xe6\x16\x01\x74\x02\x3a\x01\x9d\x80\x4e\x40\xe7\x82\x41\x27\xec\x01\xf6\x00\x7b\x80\x3d\x60\x6f\x85\xbd\x15\xf6\x56\xe9\x27\x27\xd6\x3e\xfe\xe2\xaf\x25\xe6\x56\xe5\x5f\x33\x0a\x04\x61\x6d\xd5\x97\xb5\x55\x03\xe0\x3a\x36\xb6\x1a\xb6\x40\x73\x20\x1d\x09\x75\x53\xed\x1e\x7a\xaa\x85\x66\x50\x2d\x84\x8a\x04\x2a\x12\x25\x17\x63\x72\x5c\x32\x25\x0d\x89\xd3\xae\xd7\x00\x01\xf6\x53\x2e\x78\x66\x41\xdf\xc0\x76\x56\xa7\x07\x7d\x17\xe2\x04\xc5\x8b\x11\xac\xac\x4e\x14\xbb\x40\xe2\xa2\xb4\x45\x09\x9c\xb2\x9d\x6c\x6c\xe0\x44\x51\xf1\x82\x8a\x8a\xa9\x9e\xa2\x7a\x8a\xea\x29\xaa\xa7\x58\xf3\x55\x3d\x45\xc6\xac\xf9\x58\x43\x8d\x5f\x4d\x61\xf4\x2a\x2a\xdd\x4e\x1e\xc8\xc0\xaa\x61\x55\x54\xb4\xaf\xea\xa9\x70\x02\xf3\xaa\xb4\xe3\xdb\x87\x02\x98\x57\xc5\xff\xf1\x8e\x62\xca\x3f\x3a\xc6\x08\xeb\xaa\x61\x51\x69\xc1\xb8\xea\xf8\xc7\xb1\xad\xc2\xb6\x6a\x1c\xdb\xaa\x86\xb0\xe2\xc8\xb4\x6a\x1e\xb4\x1a\xcb\x2a\x76\x60\x97\x87\xae\xb1\xac\xea\x73\xdc\x60\x59\xc5\xa2\x80\x45\x41\x49\x3b\x4e\xd8\xb0\xea\x35\xcb\x82\xc1\xec\xaa\x1a\x77\x82\x8e\xcc\xaa\xe6\x11\xb4\x91\x62\x48\x9c\xb6\x88\x38\xcd\xa0\x70\x88\xb7\x76\xfa\x09\x29\x86\xe9\xa9\xe7\x16\x65\x0c\x6a\x52\x75\xa6\x84\xbd\xf8\x5f\x6c\xd7\x0a\xc3\x91\x8c\xaa\xe2\x90\xe3\x7d\x74\x09\x27\x24\xf0\xa5\xe7\xa8\x3a\x9e\x7c\x3e\x54\xa3\x50\x8d\x42\x35\x0a\xd5\x28\x54\xa3\x46\x59\x7a\xb0\x42\x6c\xdd\x51\x58\x56\x99\x24\xee\x45\x76\xf9\x82\xb2\xcb\x51\x72\x43\xc9\x0d\x25\x37\x94\xdc\x50\x72\x43\xc9\x0d\x25\x37\x8a\xae\x28\xba\xa2\xe8\x8a\xa2\xab\xe2\x88\xc4\xb2\x0a\xd9\x48\x64\x23\x91\x8d\x9c\xb8\x6c\x64\x29\xa4\x03\xcc\x63\x59\x55\x72\x8c\x61\x96\x55\x15\x98\xd7\x60\xdf\xaa\x96\x60\x3b\x67\x5e\xf5\x5a\x98\x8d\x83\x15\x0e\x56\xfa\x23\x1c\xac\xc8\x45\x20\x17\x81\x5c\x04\x72\x11\xc8\x45\x00\x72\xc3\x3d\x9b\x5b\x04\xee\x09\xf7\x84\x7b\xc2\x3d\xe1\x9e\x0b\xe6\x9e\xa0\x08\x50\x04\x28\x02\x14\x81\x83\x15\x0e\x56\x38\x58\xa5\x9f\x9c\x52\x16\x99\xdd\xc3\xc7\xc6\xaa\xfc\x6b\xe6\xc1\x21\xbc\xac\x7a\xf1\xb2\x6a\x09\xbd\x0a\x86\x56\xe3\xd4\x70\x0e\x21\x39\x91\xbb\xb3\x76\x13\x01\x55\x45\x33\xa8\x2a\x42\x77\x02\xdd\x89\x92\x8b\x31\x3e\x60\x99\x8c\xf8\x44\xb7\x8b\x1e\x5b\xa0\xbd\xcb\x55\xcf\x2c\x2e\x1c\xd2\xe9\xaa\x7b\x5c\x78\x21\x4e\x56\xcf\x18\xda\xf4\xaa\x9b\x70\x06\x72\x19\xd9\x5f\x27\xb8\x9a\x62\x70\x45\x81\xf2\x82\x0a\x94\xa9\xc4\xa2\x12\x8b\x4a\x2c\x2a\xb1\x58\x17\x56\x3d\x45\x66\xad\x0b\x59\x62\x8d\xbe\xc4\x1a\xd6\x08\xcb\xc4\xca\x8c\x12\x37\xac\x96\xcb\xa5\x9c\x25\x56\xcf\xe5\x18\xf8\x62\xa5\x43\xa0\x7d\x8c\x80\x2f\x56\xfc\x1f\x2f\x2f\x5e\x03\xa6\x9a\x63\x8d\x03\x60\xb3\x0e\x59\xd5\x57\x80\x4d\x16\x36\x59\x23\xd8\x64\xb5\x8c\x37\xf2\x5e\x59\xf3\x02\xe1\x18\x66\xb1\x67\xbb\x3c\x20\x8e\x61\x56\x9f\xe3\x06\xc3\x2c\x56\x0b\xac\x16\xe6\xe6\x9a\xd5\xc7\x7a\x61\x18\xeb\xac\xd6\xdb\x46\x79\xff\xac\x79\x05\x72\x64\x34\x12\xc0\x2d\x27\x80\x33\x28\x4e\xe2\x75\x9e\x7e\x42\x46\x63\xc9\x45\xcf\x2d\x06\x19\xce\x53\xeb\xcc\xa9\x81\xcf\xbe\xbb\x7f\x92\xd6\x6e\x67\xd9\x8f\x4f\x2a\xc3\x62\x0c\x6f\xad\x3f\xd4\x55\xdc\xa6\x57\xd1\x3e\x4d\xf0\xe0\xaf\x55\x77\x0e\x92\x06\xd1\xb5\x42\xd7\x0a\x5d\x2b\x74\xad\xd0\xb5\x1a\x65\x51\xc2\xda\xb1\x75\x47\xe1\xb1\x65\x92\xfc\x18\x29\xec\x0b\x4a\x61\x47\x6b\x0e\xad\x39\xb4\xe6\xd0\x9a\x43\x6b\x0e\xad\x39\xb4\xe6\xa8\xec\xa2\xb2\x8b\xca\x2e\x2a\xbb\x8a\x23\x12\x8f\x2d\x84\x2d\x11\xb6\x44\xd8\x72\xe2\xc2\x96\xa5\xb0\x0e\x64\x8f\xc7\x56\xc9\x31\x86\x79\x6c\xd5\xa0\x5e\x83\x7d\xb6\x4e\x80\xdc\x39\xaf\xad\x3e\xc0\x36\x7e\x5b\xf8\x6d\xe9\x8f\xf0\xdb\x22\x2f\x81\xbc\x04\xf2\x12\xc8\x4b\x20\x2f\x01\xe0\x0d\x03\x6d\x6e\x11\x18\x28\x0c\x14\x06\x0a\x03\x85\x81\x2e\x98\x81\x82\x25\xc0\x12\x60\x09\xb0\x04\x7e\x5b\xf8\x6d\xe1\xb7\x95\x7e\x72\x4a\xdd\x64\x71\x1f\x1f\xcf\xad\xf2\xaf\x99\x09\x8b\xf0\xdd\xea\xc5\x77\xeb\x04\x08\x56\xf0\xde\x1a\xaf\xbe\x73\x08\xb5\x8a\xa3\xbb\x6b\x37\x31\x50\x75\x34\x83\xaa\x23\x14\x2b\x50\xac\x28\xb9\x98\x49\x04\x31\x93\x51\xad\xe8\x7e\xe1\x63\x0b\xc5\x77\xbd\xf2\x99\xc5\x8c\x43\xfa\x71\xbd\x2e\x66\xbc\x10\x5d\x84\x37\x86\xb6\xe5\xea\xae\xb9\x81\xd2\x06\x71\xd7\x1c\xe2\x2e\x6a\x9b\x17\x54\xdb\x4c\x11\x17\x45\x5c\x14\x71\x51\xc4\xc5\x92\xb1\xea\x29\x32\x6f\xc9\xc8\xca\x2b\x77\x3f\xcb\xb0\xe9\x32\xb5\xb8\xa3\xc4\xaa\xeb\x84\x25\x54\xce\xae\xeb\x0c\x15\x1d\x58\x76\xa5\x43\xa1\x7d\xdc\x80\x65\x57\xfc\x1f\x2f\x34\x5e\x0b\x26\xdb\x76\x8d\xc7\x70\xb3\xd6\x5d\xf5\x57\x81\x7d\x17\xf6\x5d\x23\xd8\x77\x9d\x10\x83\xe4\x2d\xbc\xe6\xc7\xd3\xb1\xf1\x62\x6f\x77\x79\x4c\x1d\x1b\xaf\x3e\xc7\x0d\x36\x5e\xac\x20\x58\x41\xcc\xd1\xca\xab\xaf\x35\xc4\x30\x76\x5e\x27\x6d\x2d\xe5\x2d\xbd\xe6\x17\xd8\x91\x28\x49\x50\xb7\xac\xa0\xce\xa0\xd8\x89\x57\x7c\xfa\x09\x89\x92\x0b\x8a\x4d\x86\xb3\xf8\x1a\x31\xdb\xf0\x26\xd4\xfa\x75\x99\xa4\xc3\xf3\x80\x33\xfd\x3b\xc9\xdb\xab\x7f\x84\x16\xeb\xf0\x31\x45\xf1\xa4\xc3\x31\x4a\xfa\x03\x8e\x01\xc7\x28\xfd\xe6\x78\x1c\xa3\x87\x57\x42\x3d\xd1\x28\x79\x27\x4c\x72\xf9\x0b\xd7\x60\x09\xbc\xbc\x25\x30\x5c\xa3\xcf\x71\x03\xd7\x60\xd3\x83\x15\x05\x5c\xa3\xd0\x68\x03\x70\x8d\x5e\x56\xfe\xf5\x84\x63\x2e\x81\x1e\x9c\x83\x20\x6f\x59\x41\x9e\x41\xb1\x14\xaf\xfc\xf4\x13\x38\xc7\x82\x62\x95\x59\x71\x0e\xa5\x09\x77\x63\x87\xce\x3a\x70\x9e\xf5\xdb\xff\x7c\x60\x23\xd6\x0e\xf6\xd6\xce\xb3\xb3\xde\x5b\x6e\x56\x87\xd0\x4a\xd5\xc2\xdf\x7f\xfe\xf4\x41\x5d\xcc\x2a\x53\x42\xfc\x63\x5a\x7c\x7c\xa5\xce\x72\x75\xf0\x8d\xc8\x19\x01\xa4\x81\x90\x70\xbc\x70\x27\xad\xdc\x2e\x66\x31\x4c\xfa\x96\xdb\x0d\x4b\x7f\xf7\x9f\x05\xb1\x35\x24\x01\x4d\x35\x93\x52\x8a\x96\x1f\x9f\x97\x3b\x19\xa9\xfe\x1b\x52\x1c\x30\x7d\x48\x86\x23\x31\x78\x2f\xcd\xd8\x7b\xa9\x19\x2b\x35\xf9\x2e\xd5\xee\x5b\xf5\x80\xcc\x70\x5b\xc2\x6d\x09\xb7\x25\xdc\x96\xe6\xe6\xb6\xd4\x3c\xf3\x96\x3a\x2d\x9d\x39\x41\x61\x30\x7f\xa5\xe6\xdb\xaf\xf6\x56\x32\xb9\x0d\x4e\x71\x54\x6a\x6e\x83\x6a\x37\xa5\x33\xb7\x01\x1e\x4a\x78\x28\xe1\xa1\x84\x87\x12\x1e\x4a\x67\xf3\x50\x6a\x31\xfb\x1f\xf9\x27\xd5\x8a\x0f\x2e\x28\x3f\xb1\xdd\xdd\xcc\xd8\x03\xaa\xb9\xb9\xeb\xfc\x9f\x86\x6d\x77\x5c\x9f\xce\xd2\xa3\xc7\x8e\x4f\x67\xee\xd6\x51\x7d\x9e\x9a\x9b\xa7\xc6\xe3\xe9\xdc\xd3\xa6\xa9\xce\x4e\xcd\x8d\x56\x82\x2f\x3a\xef\xe7\xc5\x7f\xfd\xd9\x09\x7c\x95\xa8\x89\x9f\x89\x7f\x65\xa1\x97\x97\xbc\xe7\xfd\x07\xf1\xd5\xf1\xd6\x3d\xc3\xaf\x37\x87\xb8\x5e\xad\x5d\xe2\x18\x30\x5a\x1a\x1c\x16\x2c\x57\xb9\x85\x6e\xe6\xdc\x1d\xd0\x19\xd8\x0c\x6c\x36\x15\x6c\x06\x32\x03\x99\x81\xcc\x40\x66\x20\x33\x90\x19\xc8\x0c\x64\x06\x32\x03\x99\x81\xcc\x40\x66\x20\x33\x90\x19\xc8\x0c\x64\x36\x11\x64\x96\x15\x2a\xa9\xd8\x6a\x40\xa1\x04\x02\x38\x3e\x2f\x82\x00\x42\x00\x21\x80\x10\xc0\x42\xa3\x8d\x4f\x00\x3d\x7f\x2d\x0d\x29\x7c\xfb\xc5\x5f\xcb\xe1\xcb\xde\xa2\x5f\xa5\xe8\x0d\x7a\x37\x25\x7a\x37\x70\xd1\x5b\xf4\x88\xc0\xef\xe0\x77\xf0\x3b\xf8\x1d\xfc\x0e\x7e\x07\xbf\x83\xdf\xf5\x34\xdb\xc2\xef\xe0\x77\xf0\x3b\xf8\x1d\xfc\x0e\x7e\x07\xbf\x5b\x1c\xbf\x03\x78\x01\xbc\x00\x5e\xd3\xe8\x51\x80\x57\xbe\x79\x00\x5e\xd3\x05\x5e\xe6\x14\xbc\xf5\x06\xbd\x06\x2c\x77\x2b\xf0\x00\x70\x19\xb8\xac\x70\x56\xb3\x70\x19\xa8\x0c\x54\x06\x2a\x03\x95\x81\xca\x40\x65\xa0\x32\x50\x19\xa8\x0c\x54\x06\x2a\x03\x95\x81\xca\x40\x65\xa0\x32\x50\xd9\x24\x50\x59\xa1\xd4\xed\x78\xa3\x81\x42\x37\xb8\xdf\xf8\x94\x08\xee\x07\xf7\x83\xfb\xc1\xfd\x0a\x8d\x36\x32\xf7\x8b\xff\xdd\x76\xad\x30\x34\xa2\xdc\x2d\xc6\x69\xef\xa3\x0b\x1a\xb8\xe6\x2d\xfb\xd3\x14\xbe\x41\xf2\xa6\x44\xf2\x86\x2c\x7c\xcb\x3e\x27\x20\x3d\x90\x1e\x48\x0f\xa4\x07\xd2\x03\xe9\x81\xf4\x40\x7a\x3d\xcd\xb6\x20\x3d\x90\x1e\x48\x0f\xa4\x07\xd2\x03\xe9\x81\xf4\x16\x87\xf4\xa0\x60\x50\x30\x28\xd8\x34\x7a\x14\x0a\x96\x6f\x1e\x28\xd8\xd4\x29\x98\x21\x35\x70\xbd\x93\xb0\xa1\x0a\xe1\x2a\xf8\x00\x0c\x0d\x86\x56\x38\xab\x59\x0c\x0d\x7e\x06\x3f\x83\x9f\xc1\xcf\xe0\x67\xf0\x33\xf8\x19\xfc\x0c\x7e\x06\x3f\x83\x9f\xc1\xcf\xe0\x67\xf0\x33\xf8\x19\xfc\x6c\x3a\xfc\x2c\x5b\x12\x57\xbd\xdb\x40\x5d\x1c\x44\x70\x7c\x7e\x04\x11\x84\x08\x42\x04\x21\x82\x85\x46\x1b\x99\x08\x3e\xfb\xee\xfe\x49\x5a\xbb\x9d\x65\x3f\x46\x71\xb2\x09\xa5\x71\x7f\xa8\x6b\xba\x4d\xaf\x69\xe0\xf2\xb8\xe2\xcf\x53\x22\x07\xde\x9b\x12\xde\x1b\xb2\x44\xae\xf8\xac\x80\xf9\xc0\x7c\x60\x3e\x30\x1f\x98\x0f\xcc\x07\xe6\x03\xf3\xf5\x34\xdb\x82\xf9\xc0\x7c\x60\x3e\x30\x1f\x98\x0f\xcc\x07\xe6\x5b\x1c\xe6\x03\x8a\x01\xc5\x80\x62\xd3\xe8\x51\xa0\x58\xbe\x79\x80\x62\x33\x80\x62\x86\x54\xca\x9d\x05\x8c\x0d\x55\x2d\x57\x83\x0a\x40\x6a\x20\xb5\xc2\x59\xcd\x42\x6a\xe0\x34\x70\x1a\x38\x0d\x9c\x06\x4e\x03\xa7\x81\xd3\xc0\x69\xe0\x34\x70\x1a\x38\x0d\x9c\x06\x4e\x03\xa7\x81\xd3\xc0\x69\xd3\xc2\x69\xd9\xaa\xb9\xfa\x1d\x07\x2a\xe7\x80\x84\xe3\x23\x25\x20\x21\x90\x10\x48\x08\x24\x2c\x34\xda\x58\x90\xf0\x5e\xee\xac\xb7\x37\x9d\x58\xe0\xb9\x79\x56\x1b\xce\xb8\x91\xbb\x7c\xec\xae\xfb\xb6\x86\xe3\x6d\xe4\x2e\xa5\x78\xea\xe6\x6f\xef\x3e\xfd\x56\x76\xdc\x58\x18\x6f\xb2\x74\x2d\xd3\x90\xaa\xca\x70\x36\x88\x4d\x0d\x93\xcc\x81\x17\xd9\x1f\x6f\xf5\x7c\xd9\xa1\xb3\x0e\x9c\x67\xcd\xb0\xd2\x27\x4d\x2f\x89\xfa\x05\xef\xfa\x9c\xc2\xf6\x5d\x57\xda\xc9\x9c\xff\xfe\xf3\xa7\x0f\xea\xe7\x6b\x9e\x0b\x7d\x60\xfe\xd1\x78\x9f\x9e\xa5\xf4\x0c\x15\x64\x4e\x14\x3b\x53\x4f\x7e\xf7\xfe\xfa\xa5\x38\x0e\x93\xd9\xaf\xec\xb3\xb3\x8c\xd1\x0f\xea\x2e\x7f\x55\xcd\x15\xb6\x1c\xa1\xf5\x43\x13\xd8\x03\xec\x01\xf6\x00\x7b\xe6\x06\x7b\x6a\x82\xd6\x26\xe0\x53\xbf\x00\xaa\x0f\x5e\x4f\x9a\x7b\xff\x2b\x6a\xb8\x78\x9b\xeb\x8d\x52\x62\xb0\xa3\x11\xa5\xc7\x41\xee\xde\xb2\x89\x15\xf7\x52\x6c\xa3\xd6\x0a\x77\x72\xbd\x12\xb7\x9e\x70\x3c\x3d\xb3\xf8\x81\xd8\x7b\xe9\xe4\xb4\x16\xeb\xe0\xe5\xb7\xbd\x27\xd6\x4e\x10\xbd\x04\x9f\x65\x3a\xe2\xa3\xe9\x53\x6d\x4a\xc6\x8f\x7c\x32\x36\xe2\x06\x16\x0f\xfb\x40\x3d\x65\xdb\xc0\xb7\x65\xa8\x76\x0f\xe3\x95\x57\x3c\xca\x56\xe2\x0f\xf5\x8b\xaa\xb7\xd4\xd8\xf9\x51\x5c\x8b\x5b\xd7\xfd\x51\xed\x0d\xae\xa3\x59\x7a\xef\x45\x1d\x1f\xad\x61\x92\x21\x19\x9f\x4e\xae\x3b\x74\x94\xbe\x97\x71\xba\x69\x30\x42\xd7\xae\x29\xaa\x29\xdd\x60\x2d\xf2\x7b\x76\x51\xee\x78\x22\xd4\x6b\x65\x71\x2f\x1f\x74\x2a\x51\xba\x9b\x7b\x08\x25\xe2\xd9\x4b\x0d\x9d\xbd\xd4\x2f\x87\xfb\x68\x39\xea\x5d\x7b\x72\x63\xa9\x01\x1a\x2f\xab\x57\xe2\xf7\xf4\x85\xad\xc9\x4e\xfa\x68\xc4\xf1\xa1\xf3\xf4\x24\xd7\x8e\xb5\x93\xee\xcb\x21\xc7\xe7\xf0\xca\x75\xdc\x37\xf1\xb2\x59\x35\xba\xd8\x04\x96\xad\x9e\x1a\xc7\x5f\xa7\x01\xc1\xe1\xa5\xad\x12\xa8\x92\x51\xba\x0f\xa3\x8b\xcc\x76\x97\x15\x1d\x99\xdc\x50\xfc\x23\x0f\x7a\x0e\x4c\x4e\xb1\xd2\xd7\xf9\x24\x2d\xaf\xf4\x1a\x3b\x74\xb3\xba\xe6\x3b\x75\xc9\x65\x5b\x11\x0d\x9b\x11\xa6\x0c\xff\x53\xe0\x6c\xbb\x76\xa9\x06\xb4\x83\x0d\x7f\x50\x2d\xa8\x16\x54\x0b\xaa\x05\xd5\x9e\x0d\xd5\xb6\x7c\x17\x1c\xe1\xda\xe1\x5e\x8b\x1f\x32\xd5\x1e\x5b\x57\x5a\xa1\x4c\xa7\xa0\xbb\xc0\xdf\x5a\x1b\x15\x1d\xdd\xf9\xae\x63\xbf\xe4\x12\x83\x93\x41\x77\x28\x17\x89\x86\xdd\xdb\xd5\x7f\xac\xc4\x67\x3d\x9f\xe9\xd0\x65\x2b\xbd\xe8\x61\x39\xbc\x53\xa5\xf0\x83\xed\xa3\xe5\x25\x89\xca\xc1\x5e\xde\x3c\x58\x6e\xb2\x56\xfe\x72\xa9\x3f\xfe\x72\x29\x1e\x1c\xcf\x72\x9d\x7f\x25\x2f\x92\x7b\x29\xac\xb5\x22\x5d\xfe\x8d\xa6\x00\xeb\xc3\x32\x4c\x9f\xfe\x2a\x3c\x1c\xa4\xd7\xa7\x2b\xf1\xd1\x51\x93\x63\xe6\xd2\xfd\xe0\xf8\xde\x0e\x5c\x73\xa7\x97\xc7\x6a\x8d\xe2\xef\x1e\xbb\x74\xa8\xbe\x83\x0f\xc9\xbd\x57\x86\x3c\x65\x4c\xa1\xdf\x85\x99\xba\xf5\xe8\x81\x7d\xf4\xbf\x89\x8d\x15\xdc\x5b\x9b\xdc\xb6\x64\xba\xa8\x91\xc1\x83\x1f\x3c\x45\x7d\x52\xda\x5e\xbf\x16\xee\xa8\xba\xb9\x54\xd0\x9b\x44\xac\x5b\xdd\xb6\x4e\x14\x4d\xda\xce\xfa\xb0\x14\x56\xb1\x82\xda\x9c\x48\xfb\x38\x7a\x59\xc7\x6f\xd2\x24\x1a\x58\x65\x3a\x33\x79\x8f\xa4\x60\x31\x4d\xba\xcf\xff\xd8\x4a\xdc\xda\xb6\xdc\xee\xd4\xbb\x29\xbb\xb2\xbb\xd2\xf7\x70\x25\xae\xe3\x01\x98\x1f\xa0\xe1\xdf\xc4\xd5\xdf\x2d\xfb\xeb\x26\xf0\xf7\xde\x3a\xfa\x96\x4a\x60\x57\x5f\x2a\x34\x9c\x0e\x21\xe3\xf8\x38\x7f\x92\xe4\x0e\xee\xd3\x33\xfd\x4d\x5c\xfd\xe4\x07\x32\x73\x5a\x61\x5b\xa1\x6d\xad\xa3\xbb\x8f\xdb\x47\xd7\x37\xa8\xf3\x85\x7a\xe9\x79\x74\xc2\x87\xf4\x1c\x5d\x06\xe4\xb6\x38\xdc\xc7\x89\x38\x67\x9c\x81\xd0\xae\x1f\xea\xb2\x10\xc6\xea\x05\xf2\x11\xce\xd6\xbf\xc7\x39\x09\xc3\xed\x6d\x8c\x99\x9d\xd0\xae\xb1\x6a\x32\x14\x5e\x1b\xff\x94\x32\x3a\x50\xf2\x89\x98\xee\xf3\xce\xda\xed\xdb\xf2\xb9\x09\x12\xe4\xcc\x81\x15\x95\x9a\xfa\x9d\x7c\x88\x97\x86\x2a\xda\x2c\x03\xbd\xc5\x6a\xcd\xc2\xdd\x1c\x97\x6c\xf6\x5e\x4e\xae\xf7\xc9\x82\x78\x6d\x9d\x04\xf4\x49\x25\x79\x1b\xbc\x1d\x9d\xa1\x00\xb7\x5f\x83\xb4\x29\x38\x5d\x4e\xc1\x69\xbb\x77\x4a\x53\xd1\xe9\x70\x8b\x2f\x32\x12\xc8\x48\x20\x23\x81\x8c\x04\x32\x12\xca\x26\x5f\x50\xf7\x84\x5a\x04\xfa\x09\xfd\x84\x7e\x42\x3f\xa1\x9f\xd0\xcf\x79\xd1\x4f\x80\x04\x40\x02\x20\x01\x90\x38\x3b\x90\x38\x01\xda\x1b\x5a\x3c\xd9\xae\x09\x8f\x0b\x28\x5f\xbb\xe3\x66\x14\xca\xa9\x3c\x60\x59\xe2\x9e\xab\x84\x61\xc4\x14\x62\x95\xee\xe2\xcf\xbb\xe4\xb0\x19\x18\x0d\x69\x94\xd7\x0b\x24\xea\xa0\xeb\x39\x15\x55\x8c\x8b\x42\xaf\x5d\x6e\xfd\xb0\x67\x22\xa6\xd7\x2e\xc2\x6a\x05\xbf\xf4\x97\x7b\xc4\x5f\xdd\x2a\x3a\x6b\xe4\x54\xce\x34\x29\xf4\x52\xe1\x49\x95\x51\xb6\xd3\x8d\xad\x32\x52\x7b\x12\x3f\x5b\x9e\xb5\x91\x81\xde\x5d\x53\xd2\x40\x56\x18\xfa\xb6\xa3\x96\x8b\xe9\x3e\x96\xa5\xb6\x23\xfd\x40\x48\x6f\x17\xc5\x6f\xc9\xfa\xf9\xc9\xfa\x1a\xb5\xe2\xee\x51\x86\x32\x09\x82\xb2\xb5\x34\x49\xcd\x8d\x0a\x02\xd5\x9e\x95\x1f\x88\xb7\xef\x7e\x88\xbe\x1b\x58\xb6\x82\x54\xae\xef\x6d\x74\xc8\xa3\xf6\x95\x6c\xdf\xdb\x59\x8e\xa7\x67\x25\xb5\x6f\x73\xf8\xae\xda\xb8\x8f\x11\x9a\xb8\x7f\x49\xa3\xfa\x8d\xef\x5a\xde\x66\xe5\x07\x9b\x9b\xed\xd7\xcd\xcd\xde\x73\x6c\x7f\x2d\x6f\xfe\xf2\x29\xbc\x8b\xce\xd2\x79\x23\x38\x6e\x9c\x3e\xbb\xc7\xa8\x18\x69\xaa\xa1\x4b\xdb\xb0\xe5\x5d\x8b\xb0\xe5\xbd\xde\xd3\x32\xeb\xb2\xdf\x35\x5e\xb6\xce\x9c\x35\xeb\xba\xe7\x18\x25\xaa\x40\x64\x02\x51\xe2\x85\x38\x5d\x5a\xa3\xc4\xd7\xe2\x8c\x0a\x1b\xed\x22\xaf\x52\x55\x0d\xb4\x34\x2a\x9a\x96\x48\x2b\xdb\xc9\xc6\x46\x5a\x54\x2f\x2f\xa8\x7a\x99\x32\x2d\xca\xb4\x28\xd3\xa2\x4c\x8b\x45\x62\xd5\x53\x64\xda\x22\x91\xd5\x56\xe6\x6e\x0c\x28\xe2\x98\xc2\x7a\x2b\xdd\xa9\xee\xbd\x74\x23\x90\xd6\xba\x10\x70\xb5\x59\x38\x45\x87\x9d\xaf\x5e\x23\x13\x80\xc8\xff\x51\x59\x58\xf7\xd1\x5f\x96\xbd\x5b\x09\xf1\x31\xfa\x7f\xf2\xef\x4f\x96\xa3\x36\xf0\x42\x61\xbb\xfb\x70\x27\x83\xc3\x6b\x45\xa7\x6b\x0a\xd7\xf9\x2a\xc5\xd5\x2f\xd6\x93\x0c\xb7\x96\x2d\xaf\xa2\xe8\x31\x89\x78\x56\xe2\xce\xb5\x3c\x4f\xea\xb0\x53\xc5\x24\x96\xab\xc3\xa0\xb7\x3f\x74\x99\xa7\xd5\x35\x8e\x14\x2d\xa4\x8d\x96\x06\xdb\xf7\x49\xf3\x45\x77\x2a\x3e\xea\x16\x8b\xde\x10\xdb\x30\x69\x9d\x38\x51\x69\x1f\xca\x40\x65\x18\x1d\xe2\xe6\x97\x33\x37\x54\x74\x31\xf3\xe5\xc1\x73\x7f\x8d\xcd\xf1\x75\xb0\x91\x93\xd8\x7b\x7b\x0d\xa1\xcd\xba\x31\x54\x5c\x03\x36\x0c\x43\x00\x67\x95\xcb\xd1\x49\xc6\xfb\x5a\x1d\xfb\xd7\xfa\x49\xeb\x49\x06\x1b\xd9\xea\x9b\xe1\x2e\xb0\x76\x72\xe3\xd8\xd7\xed\x8f\x89\xfe\x7e\x89\xbf\xa9\xa6\xc7\x36\x81\xc6\xd6\x0a\x76\x8e\x2a\xb5\xd2\x79\x47\x1d\x82\x8e\x6d\xce\xe3\x77\x6e\x98\xbc\x66\x2b\xf7\x2e\x9f\xfa\x23\xd8\xc2\x9d\xf9\x16\xee\x72\x60\x79\xa1\x60\x21\x79\xb8\x74\x51\x4d\x34\xcf\x1c\x0a\xb5\xbf\xab\x98\x83\xbe\x57\x1b\x58\xba\x92\xd6\x72\xd5\x91\x9e\xef\x5d\xeb\xa3\xd5\x37\xd4\x1e\x72\x28\xbe\xfb\x47\xe8\x7b\x77\xba\x5e\xf9\xe7\x68\xb6\x8b\xff\xfe\x9c\xcc\x81\x87\x7f\xfc\xde\x24\x8a\xdf\x7e\xdc\xfc\xe4\x07\xb6\xda\x64\xdf\xf8\xaa\xf3\x7d\xf1\xe5\xf2\x21\xfa\xb7\x2f\x97\xe2\x36\xd7\x9a\x2a\x1d\x5a\xef\x88\xab\xe0\x3f\x7e\x50\xaf\x2d\x5b\x75\x80\xaa\x78\x75\x1d\x3b\xde\xe3\x53\x6b\x05\xff\x5b\xdc\xb7\xba\x22\x74\x2b\xfd\xad\x2b\x57\x42\xff\xa6\x2a\x74\x4f\xc6\x94\x4a\x4a\x2e\xed\x88\xf4\xe7\xbb\x34\x6f\xf4\x43\x2c\x19\xf4\x07\x2c\x19\x4c\x58\x32\x6c\x87\x34\x6c\xef\x67\xd1\xb0\xef\x7d\x03\x69\xeb\x5a\x76\x97\x70\x2e\x3e\x72\xb6\x01\x1d\x79\x8f\x84\x72\x4b\x0a\xe5\x0c\x8a\x98\x78\xb1\xa7\x9f\x90\xf7\x58\x71\xd9\xb3\x8c\x47\xf6\x93\xd8\xc2\xbc\x10\x27\xa4\x0f\x7a\xfe\x5a\x8e\xe6\xcb\xf5\x8b\xbf\x96\xa7\xe6\x0f\x66\x5d\xb9\x8a\xc7\x93\x47\x88\x02\x16\x0a\x58\x28\x60\xa1\x80\x85\x02\xd6\x28\xcb\x11\x56\x8d\xad\x3b\x0a\x4f\x2e\x93\x84\xca\xc8\x6a\x5f\x50\x56\x3b\xaa\x74\xa8\xd2\xa1\x4a\x87\x2a\x1d\xaa\x74\xa8\xd2\xa1\x4a\x47\xb1\x17\xc5\x5e\x14\x7b\x51\xec\x55\x1c\x91\x78\x72\x21\x81\x89\x04\x26\x12\x98\x13\x97\xc0\x2c\xe5\x73\xc0\x7a\x3c\xb9\xa6\xe3\xc9\x55\xc0\xbc\xe3\x97\x75\x36\x3a\x72\x35\x80\xed\x52\x3f\xae\xae\x30\x1b\x37\x2e\xdc\xb8\xf4\x47\xb8\x71\x91\x8b\x40\x2e\x02\xb9\x08\xe4\x22\x90\x8b\x00\xe4\x86\x7b\x36\xb7\x08\xdc\x13\xee\x09\xf7\x84\x7b\xc2\x3d\x17\xcc\x3d\x41\x11\xa0\x08\x50\x04\x28\x02\x37\x2e\xdc\xb8\x70\xe3\x4a\x3f\xe9\x52\x23\xf9\x8b\xbf\x96\x78\x71\x0d\xea\xb2\xf0\x5a\x38\x84\x13\x57\x5f\x4e\x5c\x0d\xd0\xab\xc2\x87\x6b\xd8\x1a\xce\x21\xd5\x28\xd4\x9d\xb5\x9b\x08\xa8\x2a\x9a\x41\x55\x11\x5a\x14\x68\x51\x94\x5c\x8c\xf1\x01\xcb\xe4\x94\x28\x4e\xbb\x68\x53\x14\xe1\x4f\xb9\xea\x39\xc6\x85\x03\xbb\x6f\x75\x8c\x0b\x2f\xc4\xa9\xe2\x19\x23\x38\x6f\x75\xd1\xcd\x40\x2d\xa3\xb4\x59\x89\xad\xb2\x9d\x6c\x6c\x6c\x45\x7d\xf2\x82\xea\x93\x29\xc4\xa2\x10\x8b\x42\x2c\x0a\xb1\x58\x16\x56\x3d\x45\x66\x2d\x0b\x59\x61\x99\xb1\xc2\x1a\xdc\x71\xcb\xb8\xc2\x8c\x72\xbf\xad\x86\xe5\x52\xa9\xdb\x56\x4f\xd5\x18\x78\x6d\xa5\xbd\xdf\x3e\x46\xc0\x6b\x2b\xfe\x8f\x97\x17\xaf\x01\xd3\x9d\xb6\x46\xe0\xaf\x05\x9f\xad\xe3\x2b\xc0\x65\x0b\x97\xad\x71\x5c\xb6\x1a\x42\x8d\x72\x8f\xad\x79\x20\x70\x1c\xb6\xd8\xae\x5d\x1e\x0a\xc7\x61\xab\xcf\x71\x83\xc3\x16\x0b\x05\x16\x0a\x73\xf5\xd7\x7a\xf5\x52\x61\x30\x77\xad\xc6\x1d\xa3\x72\x6f\xad\x79\x04\x72\xe4\x32\x12\xc0\x2d\x27\x80\x33\x28\x4e\xe2\x75\x9e\x7e\x42\x2e\x63\xc9\x45\xcf\x32\x06\x19\xd4\x53\xeb\xec\x49\x81\xf1\x3f\xdb\xae\x15\x86\x23\xf9\x6a\xc5\x51\xc9\xfb\xe8\x12\x4e\x4d\x12\x4c\x4f\x54\x75\x12\x72\x06\x51\xb5\x42\xd5\x0a\x55\x2b\x54\xad\x50\xb5\x1a\x65\x61\xc2\xfa\xb1\x75\x47\xe1\xb0\x65\x92\xf8\x18\x19\xec\x0b\xca\x60\x47\x69\x0e\xa5\x39\x94\xe6\x50\x9a\x43\x69\x0e\xa5\x39\x94\xe6\x28\xec\xa2\xb0\x8b\xc2\x2e\x0a\xbb\x8a\x23\x12\x87\x2d\x64\x2d\x91\xb5\x44\xd6\x72\xe2\xb2\x96\xa5\xa4\x0e\x6c\x8f\xc3\xd6\x44\x1c\xb6\x2a\x58\xef\xf8\xd5\x9c\xf5\x36\x5b\x2d\x39\xf7\xb1\xd7\xd6\x6b\xd9\x36\x86\x5b\x18\x6e\xe9\x8f\x30\xdc\x22\x35\x81\xd4\x04\x52\x13\x48\x4d\x20\x35\x01\xe6\x0d\x06\x6d\x6e\x11\x30\x28\x18\x14\x0c\x0a\x06\x05\x83\x2e\x18\x83\x42\x26\x20\x13\x90\x09\xc8\x04\x86\x5b\x18\x6e\x61\xb8\x95\x7e\x72\x72\xf9\x64\x76\x23\x1f\xd7\xad\xe1\xdc\x15\xfa\x02\x46\x58\x6f\xf5\x62\xbd\xd5\x12\x84\x95\xf9\x6f\x8d\x53\xe6\x39\x98\x70\x45\xee\xf6\xda\x4d\x0e\x54\x1f\xcd\xa0\xfa\x08\xf5\x0a\xd4\x2b\x4a\x2e\x66\x1a\x91\xcc\xb4\x24\x2c\xba\x5d\xb9\x11\x8a\xf1\x5d\x2e\x7d\x8e\xa1\xe3\x90\xc6\x5c\xaf\x0c\x1d\x2f\x44\x37\x21\x8e\xa1\x3d\xba\x5e\xa1\xc1\x81\xf2\x46\xf6\xd7\x89\xbf\xa6\x18\x7f\x51\xeb\xbc\xa0\x5a\x67\x8a\xba\x28\xea\xa2\xa8\x8b\xa2\x2e\x96\x8e\x55\x4f\x91\x81\x4b\x47\x16\x60\xf9\x1b\x32\xa0\xf0\x63\x22\x4b\xb0\x74\x47\x7b\x08\xf3\xae\x96\xeb\xa8\x63\x07\xaf\x9e\x6b\x3c\xb0\xf1\x4a\xc7\x41\xfb\xe0\x01\x1b\xaf\xf8\x3f\xde\x6a\xbc\x1a\xcc\xf7\xf2\x1a\x91\xea\x66\x0d\xbd\xaa\x2f\x03\x57\x2f\x5c\xbd\x46\x70\xf5\x6a\x19\x83\x94\x58\x7b\xcd\x8b\xae\xe3\xef\xc5\x06\xef\xf2\x00\x3b\xfe\x5e\x7d\x8e\x1b\xfc\xbd\x58\x41\xb0\x82\x98\xaf\xc9\x57\x6f\x6b\x88\x61\x9c\xbe\x5a\x6f\x2f\x95\xd8\x7d\xcd\x2b\xb8\x23\x75\x92\xc8\x6e\x61\x91\x9d\x41\x01\x14\xef\xf9\xf4\x13\x52\x27\x97\x17\xa1\x0c\x67\x01\x36\x58\xfa\xe1\xb3\xef\xee\x9f\xa4\xb5\xdb\x59\xf6\xe3\x93\x4a\xe0\x18\xc3\x0a\xec\x0f\x75\x15\xb7\xe9\x55\x9c\x98\x8a\x78\xb0\x03\xab\x3b\x11\x89\x89\xe8\x6e\xa1\xbb\x85\xee\x16\xba\x5b\xe8\x6e\x8d\xb2\x64\x61\x65\xd9\xba\xa3\xb0\x04\x33\x49\x1e\x8d\x34\xf9\x05\xa5\xc9\xa3\x85\x87\x16\x1e\x5a\x78\x68\xe1\xa1\x85\x87\x16\x1e\x5a\x78\x54\x8f\x51\x3d\x46\xf5\x18\xd5\x63\xc5\x11\x89\x25\x18\xc2\x9b\x08\x6f\x22\xbc\x39\x71\xe1\xcd\x52\x62\x07\xd0\xc7\x12\x6c\x22\x96\x60\x35\xbc\x77\xfc\x3a\xd1\x7a\x5b\xb0\x13\x98\xf7\xb1\x35\x58\x1f\x9c\x1b\x7b\x30\xec\xc1\xf4\x47\xd8\x83\x91\xa6\x40\x9a\x02\x69\x0a\xa4\x29\x90\xa6\x00\xff\x06\x89\x36\xb7\x08\x48\x14\x24\x0a\x12\x05\x89\x82\x44\x17\x8c\x44\xa1\x14\x50\x0a\x28\x05\x94\x02\x7b\x30\xec\xc1\xb0\x07\x4b\x3f\x39\xb9\xbe\xb2\xb8\x99\x8f\x45\xd8\x70\x3e\x0f\x7d\x02\x24\x6c\xc2\x7a\xb1\x09\x3b\x01\x8c\x95\x59\x85\x8d\x57\x02\x3a\x98\xe6\xc5\xd1\x2d\xb6\x9b\x2c\xa8\x4e\x9a\x41\x75\x12\xba\x17\xe8\x5e\x94\x5c\xcc\x74\xa2\x9b\x69\x69\x5f\x74\xbf\x7a\x23\x94\xeb\xbb\x5e\xfe\x1c\xc3\xca\x21\xed\xc3\x7a\x08\x2b\x2f\x44\x67\x0d\x8f\xa1\x5d\xc4\x5e\x29\xdf\x81\x68\x07\xa1\xd9\x1c\x42\x33\xca\xa4\x17\x54\x26\x4d\x3d\x18\xf5\x60\xd4\x83\x51\x0f\xc6\xaa\xb2\xea\x29\x32\x74\x55\xc9\xba\xcc\xb0\x75\xd9\xb0\xae\x62\x46\x57\x8c\x94\x38\x8b\x9d\xb0\xb6\x3a\x76\x17\x3b\x43\x99\x08\x0e\x63\xe9\x78\x68\x1f\x50\xe0\x30\x16\xff\xc7\x9b\x8e\x57\xc5\x34\x5c\xc6\x46\x06\xc3\x59\xa7\xb1\xfa\x4b\xc1\x6d\x0c\xb7\xb1\x11\xdc\xc6\x4e\x88\x4b\x4a\x1c\xc7\xe6\x07\xe9\x71\x1d\x63\x23\x78\x79\x8c\x1e\xd7\xb1\x3e\xc7\x0d\xae\x63\xac\x2a\x58\x55\xe8\x7f\x9e\xab\xf3\x58\xaf\xeb\x8a\x61\xdc\xc7\x4e\xda\x82\x2a\x71\x20\x9b\x5f\xb0\x47\x46\x26\xd1\xde\x02\xa3\x3d\x83\x82\x2a\xde\xfd\xe9\x27\x64\x64\xb6\xba\xfa\x59\x46\x2e\xc3\x39\x92\x0d\x9a\xd1\xa8\xca\xb8\x6e\xec\xd0\x59\x07\xce\xb3\x8e\x0d\xd2\x4c\xc6\xde\xa1\x5b\x5c\xee\xef\xad\x9d\x67\x67\xbd\xb7\xdc\x6c\xe9\xa0\x95\x0a\x7c\xbc\xff\xfc\xe9\x83\xba\x98\x55\x26\x73\xe7\xc7\x34\xe7\xe7\x4a\x9d\xe5\xea\x20\xf5\x94\xd3\xee\x49\xa3\x24\xe1\x78\xe1\x4e\x5a\xb9\xcd\xcd\x62\x0c\xf5\xed\x78\xbb\x2c\xfd\xf1\x7f\x16\x4a\xa3\x28\xe5\x33\x55\x13\x52\x55\xa2\x7e\x7c\x5e\xf8\x04\xa5\x3a\x71\xc8\x7a\xbe\xf4\x49\x19\x98\xd7\xa0\x9e\x38\x63\xf5\xc4\x66\xf8\xd4\xa4\x9c\x58\xbb\xd1\xd5\x03\x58\x43\x2f\x11\xbd\x44\xf4\x12\xd1\x4b\x9c\x9b\x5e\x62\xf3\xcc\x5b\xaa\x95\x78\xe6\x34\x86\xc1\x14\x12\x9b\x6f\xbf\x5a\x1d\xd1\xe4\x36\x38\x45\x13\xb1\xb9\x0d\xaa\xf5\x10\xcf\xdc\x06\xa8\x20\xa2\x82\x88\x0a\x22\x2a\x88\xa8\x20\x9e\x4d\x05\xb1\xc5\xec\x7f\xa4\x80\x58\x5b\x02\xb8\xa0\x2c\xc6\x76\x77\x33\x63\x15\xc7\xe6\xe6\xae\x53\x70\x1c\xb6\xdd\xd1\x6d\x3c\x4b\x8f\x1e\x6b\x36\x9e\xb9\x5b\x47\x55\x6a\x6c\x6e\x9e\x1a\x95\xc6\x73\x4f\x9b\xa6\x6a\x33\x36\x37\x5a\x09\xc8\xe8\xbc\x9f\x17\xff\xf5\x67\x77\x18\x56\xa2\xee\x71\x26\x26\x96\x05\x61\x5e\xf2\xb2\x4f\xfc\x8b\xfa\x05\x62\x6f\x0e\xc1\xbd\x5a\xc0\xc4\x81\x60\xb4\x3e\x38\xac\x5a\xae\x72\xab\xdd\xcc\xb9\xbb\xe2\x34\x50\x1a\x28\x6d\x52\x28\x0d\x8c\x06\x46\x03\xa3\x81\xd1\xc0\x68\x60\x34\x30\x1a\x18\x0d\x8c\x06\x46\x03\xa3\x81\xd1\xc0\x68\x60\x34\x30\x1a\x18\x6d\x4a\x18\x2d\x2b\x71\x52\xb1\xdf\x80\xb6\x09\x54\x70\x7c\x86\x04\x15\x84\x0a\x42\x05\xa1\x82\x85\x46\x33\x84\x0a\x7a\xfe\x5a\x1a\x52\x20\xf7\x8b\xbf\x96\x23\x95\xc7\x45\x3f\x4d\x71\x1c\x44\x6f\x72\x44\x6f\xe0\xe2\xb8\xe8\x39\x81\xe9\xc1\xf4\x60\x7a\x30\x3d\x98\x1e\x4c\x0f\xa6\x07\xd3\xeb\x73\xb6\x85\xe9\xc1\xf4\x60\x7a\x30\x3d\x98\x1e\x4c\x0f\xa6\xb7\x38\xa6\x07\x04\x03\x82\x01\xc1\xa6\xd1\xa3\x40\xb0\x7c\xf3\x00\xc1\x26\x0e\xc1\xcc\x29\x8c\xeb\x0d\x84\x0d\x5d\x16\x57\xc0\x03\x20\x34\x10\x5a\xe1\xac\x06\x22\x34\xf0\x19\xf8\x0c\x7c\x06\x3e\x03\x9f\x81\xcf\xc0\x67\xe0\x33\xf0\x19\xf8\x0c\x7c\x06\x3e\x03\x9f\x81\xcf\xc0\x67\xe0\xb3\xe9\xe0\xb3\x42\x49\xdc\xf1\x6e\x03\x05\x71\xb0\xc0\xf1\xc9\x11\x2c\x10\x16\x08\x0b\x84\x05\x16\x1a\xcd\x04\x16\x18\x7f\x68\xbb\x56\x18\x1a\x51\x16\x17\x23\xb6\xf7\xd1\x05\x8d\x51\x1b\x97\xfd\x7d\x0a\xe4\xa0\x7b\x93\xa3\x7b\x43\x16\xc8\x65\x1f\x16\x30\x1f\x98\x0f\xcc\x07\xe6\x03\xf3\x81\xf9\xc0\x7c\x60\xbe\x3e\x67\x5b\x30\x1f\x98\x0f\xcc\x07\xe6\x03\xf3\x81\xf9\xc0\x7c\x8b\xc3\x7c\x90\x31\xc8\x18\x64\x6c\x1a\x3d\x0a\x19\xcb\x37\x0f\x64\x6c\x16\x64\xcc\x90\x5a\xb9\xde\xe9\xd8\xa0\x05\x73\x15\xb8\x00\xae\x06\x57\x2b\x9c\xd5\x40\xae\x06\x53\x83\xa9\xc1\xd4\x60\x6a\x30\x35\x98\x1a\x4c\x0d\xa6\x06\x53\x83\xa9\xc1\xd4\x60\x6a\x30\x35\x98\x1a\x4c\x0d\xa6\x36\x31\xa6\x96\x2d\x9d\xab\xde\x72\xa0\x7e\x0e\x4a\x38\x3e\x53\x82\x12\x42\x09\xa1\x84\x50\xc2\x42\xa3\x99\x40\x09\x9f\x7d\x77\xff\x24\xad\xdd\xce\xb2\x1f\xa3\x60\xd9\x84\x12\xba\x3f\xd4\x35\xdd\xa6\xd7\x34\x46\x19\x5d\xf1\x1a\x28\xa5\x03\xf9\x4d\x0e\xf9\x0d\x59\x4a\x57\x7c\x60\x40\x7f\xa0\x3f\xd0\x1f\xe8\x0f\xf4\x07\xfa\x03\xfd\x81\xfe\xfa\x9c\x6d\x41\x7f\xa0\x3f\xd0\x1f\xe8\x0f\xf4\x07\xfa\x03\xfd\x2d\x0e\xfd\x01\xca\x00\x65\x80\xb2\x69\xf4\x28\xa0\x2c\xdf\x3c\x80\xb2\xb9\x80\x32\x43\x2a\xea\xce\x02\xcb\x06\xad\xaa\xab\x21\x07\x60\x36\x30\x5b\xe1\xac\x06\x62\x36\x10\x1b\x88\x0d\xc4\x06\x62\x03\xb1\x81\xd8\x40\x6c\x20\x36\x10\x1b\x88\x0d\xc4\x06\x62\x03\xb1\x81\xd8\x40\x6c\x20\xb6\x09\x22\xb6\x6c\x75\x5d\xfd\xb6\x03\x15\x76\x80\xc3\xf1\x31\x13\xe0\x10\x70\x08\x38\x04\x1c\x16\x1a\xed\xfc\xe0\xd0\xf5\x37\xe1\x4d\x2d\x03\x2c\x00\x30\xd7\xdf\xfc\xe4\xb8\xf2\x9f\x4e\xb8\xfb\xff\x2d\x6f\xed\xe6\xba\xab\x9a\xfc\x98\x0a\x4f\xa2\xfb\xcf\x7c\xfb\x22\xfb\x8b\xf9\x46\xfa\x5f\xd7\xdf\x44\x61\x42\x3d\x31\x2d\x6f\xad\x19\xb7\xd4\x6b\x88\x4c\xd4\x9c\xc9\xb3\xe8\xfa\x9b\xd3\x02\xb3\xb8\x3b\xce\x1f\x9b\x95\x3f\x38\xf1\x7b\xa4\xfe\xd9\xa9\xe2\xe7\x47\xf8\xb7\xb4\x17\x0a\xad\xb5\x91\xc9\x4e\xee\x3a\x8d\x84\x6a\x48\xf5\x46\xee\xde\xfb\xeb\x92\x00\xa3\x3d\x94\x2e\xbd\x2a\x43\xe1\x6e\xdc\x20\xab\x4f\xde\x83\x3f\x75\xa2\x9b\x74\x6e\xd5\xbc\x74\x11\xff\xe8\x65\x28\xed\x7d\xe0\xec\x5e\xd2\x13\xa4\x43\xf1\xef\xd2\x0a\x64\xf0\xbb\xff\x55\x46\x77\xf1\x7f\xff\x4c\x0f\xfc\x33\x77\xe0\x87\x43\xcb\xa6\x2d\x51\x38\x36\x3d\x65\xa1\x61\xf4\xb7\x84\xfa\x9a\x88\xda\x48\xef\x16\xec\xb2\x83\x2d\x7e\x88\x1f\xa5\xb5\xce\xcc\x7e\x07\x24\x17\xb7\x6c\xe1\xa0\xe4\x41\xb5\xb6\xce\xff\x91\x2f\x97\xc5\x7b\xfe\x66\x6d\xa2\x20\xe1\x47\x71\xf9\x6e\xf5\xff\x5d\x5e\xfc\xfb\xe2\xff\x05\x00\x00\xff\xff\x19\xec\xed\x77\x29\xd8\x46\x00") - -func kubernetesapiV1190SwaggerJsonBytes() ([]byte, error) { - return bindataRead( - _kubernetesapiV1190SwaggerJson, - "kubernetesapi/v1190/swagger.json", - ) -} - -func kubernetesapiV1190SwaggerJson() (*asset, error) { - bytes, err := kubernetesapiV1190SwaggerJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "kubernetesapi/v1190/swagger.json", size: 4642857, mode: os.FileMode(420), modTime: time.Unix(1605140845, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -// Asset loads and returns the asset for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func Asset(name string) ([]byte, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) - } - return a.bytes, nil - } - return nil, fmt.Errorf("Asset %s not found", name) -} - -// MustAsset is like Asset but panics when Asset would return an error. -// It simplifies safe initialization of global variables. -func MustAsset(name string) []byte { - a, err := Asset(name) - if err != nil { - panic("asset: Asset(" + name + "): " + err.Error()) - } - - return a -} - -// AssetInfo loads and returns the asset info for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func AssetInfo(name string) (os.FileInfo, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) - } - return a.info, nil - } - return nil, fmt.Errorf("AssetInfo %s not found", name) -} - -// AssetNames returns the names of the assets. -func AssetNames() []string { - names := make([]string, 0, len(_bindata)) - for name := range _bindata { - names = append(names, name) - } - return names -} - -// _bindata is a table, holding each asset generator, mapped to its name. -var _bindata = map[string]func() (*asset, error){ - "kubernetesapi/v1190/swagger.json": kubernetesapiV1190SwaggerJson, -} - -// AssetDir returns the file names below a certain -// directory embedded in the file by go-bindata. -// For example if you run go-bindata on data/... and data contains the -// following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png -// then AssetDir("data") would return []string{"foo.txt", "img"} -// AssetDir("data/img") would return []string{"a.png", "b.png"} -// AssetDir("foo.txt") and AssetDir("notexist") would return an error -// AssetDir("") will return []string{"data"}. -func AssetDir(name string) ([]string, error) { - node := _bintree - if len(name) != 0 { - cannonicalName := strings.Replace(name, "\\", "/", -1) - pathList := strings.Split(cannonicalName, "/") - for _, p := range pathList { - node = node.Children[p] - if node == nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - } - } - if node.Func != nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - rv := make([]string, 0, len(node.Children)) - for childName := range node.Children { - rv = append(rv, childName) - } - return rv, nil -} - -type bintree struct { - Func func() (*asset, error) - Children map[string]*bintree -} - -var _bintree = &bintree{nil, map[string]*bintree{ - "kubernetesapi": &bintree{nil, map[string]*bintree{ - "v1190": &bintree{nil, map[string]*bintree{ - "swagger.json": &bintree{kubernetesapiV1190SwaggerJson, map[string]*bintree{}}, - }}, - }}, -}} - -// RestoreAsset restores an asset under the given directory -func RestoreAsset(dir, name string) error { - data, err := Asset(name) - if err != nil { - return err - } - info, err := AssetInfo(name) - if err != nil { - return err - } - err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) - if err != nil { - return err - } - err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) - if err != nil { - return err - } - err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) - if err != nil { - return err - } - return nil -} - -// RestoreAssets restores an asset under the given directory recursively -func RestoreAssets(dir, name string) error { - children, err := AssetDir(name) - // File - if err != nil { - return RestoreAsset(dir, name) - } - // Dir - for _, child := range children { - err = RestoreAssets(dir, filepath.Join(name, child)) - if err != nil { - return err - } - } - return nil -} - -func _filePath(dir, name string) string { - cannonicalName := strings.Replace(name, "\\", "/", -1) - return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) -} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1190/swagger.json b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1190/swagger.json deleted file mode 100644 index 6efa7099eb..0000000000 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1190/swagger.json +++ /dev/null @@ -1,92486 +0,0 @@ -{ - "definitions": { - "io.k8s.api.admissionregistration.v1.MutatingWebhook": { - "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "reinvocationPolicy": { - "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - "type": "string" - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig", - "sideEffects", - "admissionReviewVersions" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration": { - "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList": { - "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of MutatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfigurationList", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scope": { - "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "`name` is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "`namespace` is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "`path` is an optional URL path which will be sent in any request to this service.", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhook": { - "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig", - "sideEffects", - "admissionReviewVersions" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration": { - "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList": { - "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of ValidatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfigurationList", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "properties": { - "caBundle": { - "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ServiceReference", - "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhook": { - "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "reinvocationPolicy": { - "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - "type": "string" - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration": { - "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList": { - "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of MutatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scope": { - "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "`name` is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "`namespace` is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "`path` is an optional URL path which will be sent in any request to this service.", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook": { - "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration": { - "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList": { - "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of ValidatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "properties": { - "caBundle": { - "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ServiceReference", - "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.ControllerRevision": { - "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", - "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" - }, - "data": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", - "description": "Data is the serialized representation of the state." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "revision": { - "description": "Revision indicates the revision of the state represented by Data.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "revision" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ControllerRevisionList": { - "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", - "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" - }, - "items": { - "description": "Items is the list of ControllerRevisions", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevisionList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSet": { - "description": "DaemonSet represents the configuration of a daemon set.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec", - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus", - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetCondition": { - "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of DaemonSet condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetList": { - "description": "DaemonSetList is a collection of daemon sets.", - "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" - }, - "items": { - "description": "A list of daemon sets.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetSpec": { - "description": "DaemonSetSpec is the specification of a daemon set.", - "properties": { - "minReadySeconds": { - "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - }, - "updateStrategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy", - "description": "An update strategy to replace existing DaemonSet pods with new pods." - } - }, - "required": [ - "selector", - "template" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetStatus": { - "description": "DaemonSetStatus represents the current status of a daemon set.", - "properties": { - "collisionCount": { - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a DaemonSet's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentNumberScheduled": { - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "desiredNumberScheduled": { - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "numberAvailable": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "format": "int32", - "type": "integer" - }, - "numberMisscheduled": { - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "numberReady": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - "format": "int32", - "type": "integer" - }, - "numberUnavailable": { - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "The most recent generation observed by the daemon set controller.", - "format": "int64", - "type": "integer" - }, - "updatedNumberScheduled": { - "description": "The total number of nodes that are running updated daemon pod", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetUpdateStrategy": { - "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet", - "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." - }, - "type": { - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.Deployment": { - "description": "Deployment enables declarative updates for Pods and ReplicaSets.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentSpec", - "description": "Specification of the desired behavior of the Deployment." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStatus", - "description": "Most recently observed status of the Deployment." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentCondition": { - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time this condition was updated." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of deployment condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentList": { - "description": "DeploymentList is a list of Deployments.", - "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" - }, - "items": { - "description": "Items is the list of Deployments.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DeploymentList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentSpec": { - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "paused": { - "description": "Indicates that the deployment is paused.", - "type": "boolean" - }, - "progressDeadlineSeconds": { - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels." - }, - "strategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStrategy", - "description": "The deployment strategy to use to replace existing pods with new ones.", - "x-kubernetes-patch-strategy": "retainKeys" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template describes the pods that will be created." - } - }, - "required": [ - "selector", - "template" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentStatus": { - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "availableReplicas": { - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - "format": "int32", - "type": "integer" - }, - "collisionCount": { - "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a deployment's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "observedGeneration": { - "description": "The generation observed by the deployment controller.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "Total number of ready pods targeted by this deployment.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - "format": "int32", - "type": "integer" - }, - "unavailableReplicas": { - "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - "format": "int32", - "type": "integer" - }, - "updatedReplicas": { - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentStrategy": { - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment", - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." - }, - "type": { - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSet": { - "description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec", - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus", - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetCondition": { - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replica set condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSetList": { - "description": "ReplicaSetList is a collection of ReplicaSets.", - "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" - }, - "items": { - "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetSpec": { - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - } - }, - "required": [ - "selector" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSetStatus": { - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a replica set's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replica set.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateDaemonSet": { - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateDeployment": { - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxSurge": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods." - }, - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy": { - "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - "properties": { - "partition": { - "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSet": { - "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetSpec", - "description": "Spec defines the desired identities of pods in this set." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetStatus", - "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetCondition": { - "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of statefulset condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetList": { - "description": "StatefulSetList is a collection of StatefulSets.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetSpec": { - "description": "A StatefulSetSpec is the specification of a StatefulSet.", - "properties": { - "podManagementPolicy": { - "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - "type": "string" - }, - "replicas": { - "description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "serviceName": { - "description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - "type": "string" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet." - }, - "updateStrategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy", - "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template." - }, - "volumeClaimTemplates": { - "description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "type": "array" - } - }, - "required": [ - "selector", - "template", - "serviceName" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetStatus": { - "description": "StatefulSetStatus represents the current state of a StatefulSet.", - "properties": { - "collisionCount": { - "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a statefulset's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentReplicas": { - "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - "format": "int32", - "type": "integer" - }, - "currentRevision": { - "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - "type": "string" - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "replicas is the number of Pods created by the StatefulSet controller.", - "format": "int32", - "type": "integer" - }, - "updateRevision": { - "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", - "type": "string" - }, - "updatedReplicas": { - "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetUpdateStrategy": { - "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy", - "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType." - }, - "type": { - "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus", - "description": "Status is filled in by the server and indicates whether the request can be authenticated." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authentication.v1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - "items": { - "type": "string" - }, - "type": "array" - }, - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - "items": { - "type": "string" - }, - "type": "array" - }, - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", - "description": "User is the UserInfo associated with the provided token." - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Any additional information provided by the authenticator.", - "type": "object" - }, - "groups": { - "description": "The names of groups this user is a part of.", - "items": { - "type": "string" - }, - "type": "array" - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus", - "description": "Status is filled in by the server and indicates whether the request can be authenticated." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authentication.v1beta1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - "items": { - "type": "string" - }, - "type": "array" - }, - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - "items": { - "type": "string" - }, - "type": "array" - }, - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.UserInfo", - "description": "User is the UserInfo associated with the provided token." - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Any additional information provided by the authenticator.", - "type": "object" - }, - "groups": { - "description": "The names of groups this user is a part of.", - "items": { - "type": "string" - }, - "type": "array" - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "properties": { - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. user and groups must be empty" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec", - "description": "Spec holds information about the request being evaluated." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus", - "description": "Status is filled in by the server and indicates the set of actions a user can perform." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object" - }, - "groups": { - "description": "Groups is the groups you're testing for.", - "items": { - "type": "string" - }, - "type": "array" - }, - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - }, - "required": [ - "allowed" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceRule" - }, - "type": "array" - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceRule" - }, - "type": "array" - } - }, - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "properties": { - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. user and groups must be empty" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec", - "description": "Spec holds information about the request being evaluated." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus", - "description": "Status is filled in by the server and indicates the set of actions a user can perform." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object" - }, - "group": { - "description": "Groups is the groups you're testing for.", - "items": { - "type": "string" - }, - "type": "array" - }, - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - }, - "required": [ - "allowed" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceRule" - }, - "type": "array" - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceRule" - }, - "type": "array" - } - }, - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler": { - "description": "configuration of a horizontal pod autoscaler.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec", - "description": "behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus", - "description": "current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList": { - "description": "list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec": { - "description": "specification of a horizontal pod autoscaler.", - "properties": { - "maxReplicas": { - "description": "upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.", - "format": "int32", - "type": "integer" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference", - "description": "reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource." - }, - "targetCPUUtilizationPercentage": { - "description": "target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus": { - "description": "current status of a horizontal pod autoscaler", - "properties": { - "currentCPUUtilizationPercentage": { - "description": "current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.", - "format": "int32", - "type": "integer" - }, - "currentReplicas": { - "description": "current number of replicas of pods managed by this autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desired number of replicas of pods managed by this autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.Scale": { - "description": "Scale represents a scaling request for a resource.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec", - "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus", - "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.ScaleSpec": { - "description": "ScaleSpec describes the attributes of a scale subresource.", - "properties": { - "replicas": { - "description": "desired number of instances for the scaled object.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v1.ScaleStatus": { - "description": "ScaleStatus represents the current status of a scale subresource.", - "properties": { - "replicas": { - "description": "actual number of observed instances of the scaled object.", - "format": "int32", - "type": "integer" - }, - "selector": { - "description": "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors", - "type": "string" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricSource": { - "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one \"target\" type should be set.", - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "metricSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "metricSelector is used to identify a specific time series within a given metric." - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue." - }, - "targetValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue." - } - }, - "required": [ - "metricName" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus": { - "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - "properties": { - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of metric averaged over autoscaled pods." - }, - "currentValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentValue is the current value of the metric (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of a metric used for autoscaling in metric system.", - "type": "string" - }, - "metricSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "metricSelector is used to identify a specific time series within a given metric." - } - }, - "required": [ - "metricName", - "currentValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler": { - "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec", - "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus", - "description": "status is the current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition": { - "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the last time the condition transitioned from one status to another" - }, - "message": { - "description": "message is a human-readable explanation containing details about the transition", - "type": "string" - }, - "reason": { - "description": "reason is the reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition (True, False, Unknown)", - "type": "string" - }, - "type": { - "description": "type describes the current condition", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList": { - "description": "HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "items is the list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "metadata is the standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec": { - "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - "properties": { - "maxReplicas": { - "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - "format": "int32", - "type": "integer" - }, - "metrics": { - "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricSpec" - }, - "type": "array" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus": { - "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - "properties": { - "conditions": { - "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition" - }, - "type": "array" - }, - "currentMetrics": { - "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricStatus" - }, - "type": "array" - }, - "currentReplicas": { - "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas", - "conditions" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.MetricSpec": { - "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricSource", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricSource", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricSource", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricSource", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.MetricStatus": { - "description": "MetricStatus describes the last-read state of a single metric.", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricStatus", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricSource": { - "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "target is the described Kubernetes object." - }, - "targetValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetValue is the target value of the metric (as a quantity)." - } - }, - "required": [ - "target", - "metricName", - "targetValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus": { - "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "currentValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentValue is the current value of the metric (as a quantity)." - }, - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "target is the described Kubernetes object." - } - }, - "required": [ - "target", - "metricName", - "currentValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricSource": { - "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - } - }, - "required": [ - "metricName", - "targetAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricStatus": { - "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - "properties": { - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - } - }, - "required": [ - "metricName", - "currentAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricSource": { - "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "properties": { - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - }, - "targetAverageUtilization": { - "description": "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - "format": "int32", - "type": "integer" - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus": { - "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "properties": { - "currentAverageUtilization": { - "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", - "format": "int32", - "type": "integer" - }, - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification." - }, - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - } - }, - "required": [ - "name", - "currentAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ExternalMetricSource": { - "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - "properties": { - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "metric", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus": { - "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy": { - "description": "HPAScalingPolicy is a single policy which must hold true for a specified past interval.", - "properties": { - "periodSeconds": { - "description": "PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "Type is used to specify the scaling policy.", - "type": "string" - }, - "value": { - "description": "Value contains the amount of change which is permitted by the policy. It must be greater than zero", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "type", - "value", - "periodSeconds" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HPAScalingRules": { - "description": "HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.", - "properties": { - "policies": { - "description": "policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy" - }, - "type": "array" - }, - "selectPolicy": { - "description": "selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.", - "type": "string" - }, - "stabilizationWindowSeconds": { - "description": "StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler": { - "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec", - "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus", - "description": "status is the current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - ] - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior": { - "description": "HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).", - "properties": { - "scaleDown": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", - "description": "scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used)." - }, - "scaleUp": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", - "description": "scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\n * increase no more than 4 pods per 60 seconds\n * double the number of pods per 60 seconds\nNo stabilization is used." - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition": { - "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the last time the condition transitioned from one status to another" - }, - "message": { - "description": "message is a human-readable explanation containing details about the transition", - "type": "string" - }, - "reason": { - "description": "reason is the reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition (True, False, Unknown)", - "type": "string" - }, - "type": { - "description": "type describes the current condition", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList": { - "description": "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "items is the list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "metadata is the standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v2beta2" - } - ] - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec": { - "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - "properties": { - "behavior": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior", - "description": "behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used." - }, - "maxReplicas": { - "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - "format": "int32", - "type": "integer" - }, - "metrics": { - "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricSpec" - }, - "type": "array" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference", - "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus": { - "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - "properties": { - "conditions": { - "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition" - }, - "type": "array" - }, - "currentMetrics": { - "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricStatus" - }, - "type": "array" - }, - "currentReplicas": { - "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas", - "conditions" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricIdentifier": { - "description": "MetricIdentifier defines the name and optionally selector for a metric", - "properties": { - "name": { - "description": "name is the name of the given metric", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricSpec": { - "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricSource", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricSource", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricSource", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricSource", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricStatus": { - "description": "MetricStatus describes the last-read state of a single metric.", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricStatus", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricTarget": { - "description": "MetricTarget defines the target value, average value, or average utilization of a specific metric", - "properties": { - "averageUtilization": { - "description": "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type", - "format": "int32", - "type": "integer" - }, - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - }, - "type": { - "description": "type represents whether the metric type is Utilization, Value, or AverageValue", - "type": "string" - }, - "value": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "value is the target value of the metric (as a quantity)." - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricValueStatus": { - "description": "MetricValueStatus holds the current value for a metric", - "properties": { - "averageUtilization": { - "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - "format": "int32", - "type": "integer" - }, - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "value": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "value is the current value of the metric (as a quantity)." - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ObjectMetricSource": { - "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "describedObject": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "describedObject", - "target", - "metric" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus": { - "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "describedObject": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current", - "describedObject" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.PodsMetricSource": { - "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "properties": { - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "metric", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.PodsMetricStatus": { - "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ResourceMetricSource": { - "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "properties": { - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "name", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus": { - "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "name": { - "description": "Name is the name of the resource in question.", - "type": "string" - } - }, - "required": [ - "name", - "current" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.Job": { - "description": "Job represents the configuration of a single job.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", - "description": "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobStatus", - "description": "Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "Job", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobCondition": { - "description": "JobCondition describes current state of a job.", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition was checked." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transit from one status to another." - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of job condition, Complete or Failed.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.JobList": { - "description": "JobList is a collection of jobs.", - "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" - }, - "items": { - "description": "items is the list of Jobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "JobList", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobSpec": { - "description": "JobSpec describes how the job execution will look like.", - "properties": { - "activeDeadlineSeconds": { - "description": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", - "format": "int64", - "type": "integer" - }, - "backoffLimit": { - "description": "Specifies the number of retries before marking this job failed. Defaults to 6", - "format": "int32", - "type": "integer" - }, - "completions": { - "description": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "format": "int32", - "type": "integer" - }, - "manualSelector": { - "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", - "type": "boolean" - }, - "parallelism": { - "description": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) \u003c .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/" - }, - "ttlSecondsAfterFinished": { - "description": "ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "template" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.JobStatus": { - "description": "JobStatus represents the current state of a Job.", - "properties": { - "active": { - "description": "The number of actively running pods.", - "format": "int32", - "type": "integer" - }, - "completionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC." - }, - "conditions": { - "description": "The latest available observations of an object's current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "failed": { - "description": "The number of pods which reached phase Failed.", - "format": "int32", - "type": "integer" - }, - "startTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job was acknowledged by the job controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC." - }, - "succeeded": { - "description": "The number of pods which reached phase Succeeded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.batch.v1beta1.CronJob": { - "description": "CronJob represents the configuration of a single cron job.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobSpec", - "description": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobStatus", - "description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobList": { - "description": "CronJobList is a collection of cron jobs.", - "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" - }, - "items": { - "description": "items is the list of CronJobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJobList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobSpec": { - "description": "CronJobSpec describes how the job execution will look like and when it will actually run.", - "properties": { - "concurrencyPolicy": { - "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", - "type": "string" - }, - "failedJobsHistoryLimit": { - "description": "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "format": "int32", - "type": "integer" - }, - "jobTemplate": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.JobTemplateSpec", - "description": "Specifies the job that will be created when executing a CronJob." - }, - "schedule": { - "description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", - "type": "string" - }, - "startingDeadlineSeconds": { - "description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - "format": "int64", - "type": "integer" - }, - "successfulJobsHistoryLimit": { - "description": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.", - "format": "int32", - "type": "integer" - }, - "suspend": { - "description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", - "type": "boolean" - } - }, - "required": [ - "schedule", - "jobTemplate" - ], - "type": "object" - }, - "io.k8s.api.batch.v1beta1.CronJobStatus": { - "description": "CronJobStatus represents the current state of a cron job.", - "properties": { - "active": { - "description": "A list of pointers to currently running jobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array" - }, - "lastScheduleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Information when was the last time the job was successfully scheduled." - } - }, - "type": "object" - }, - "io.k8s.api.batch.v1beta1.JobTemplateSpec": { - "description": "JobTemplateSpec describes the data a Job should have when created from a template", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", - "description": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object" - }, - "io.k8s.api.certificates.v1.CertificateSigningRequest": { - "description": "CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.\n\nKubelets use this API to obtain:\n 1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName).\n 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName).\n\nThis API can be used to request client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client\" signerName), or to obtain certificates from custom non-Kubernetes signers.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestSpec", - "description": "spec contains the certificate request, and is immutable after creation. Only the request, signerName, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestStatus", - "description": "status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - ] - }, - "io.k8s.api.certificates.v1.CertificateSigningRequestCondition": { - "description": "CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time." - }, - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastUpdateTime is the time of the last update to this condition" - }, - "message": { - "description": "message contains a human readable message with details about the request state", - "type": "string" - }, - "reason": { - "description": "reason indicates a brief reason for the request state", - "type": "string" - }, - "status": { - "description": "status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".", - "type": "string" - }, - "type": { - "description": "type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n\nAn \"Approved\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer.\n\nA \"Denied\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer.\n\nA \"Failed\" condition is added via the /status subresource, indicating the signer failed to issue the certificate.\n\nApproved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added.\n\nOnly one condition of a given type is allowed.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1.CertificateSigningRequestList": { - "description": "CertificateSigningRequestList is a collection of CertificateSigningRequest objects", - "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" - }, - "items": { - "description": "items is a collection of CertificateSigningRequest objects", - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequestList", - "version": "v1" - } - ] - }, - "io.k8s.api.certificates.v1.CertificateSigningRequestSpec": { - "description": "CertificateSigningRequestSpec contains the certificate request.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - "type": "object" - }, - "groups": { - "description": "groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "request": { - "description": "request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "signerName": { - "description": "signerName indicates the requested signer, and is a qualified name.\n\nList/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector.\n\nWell-known Kubernetes signers are:\n 1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver.\n Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver.\n Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\n Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\nMore details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\n\nCustom signerNames can also be specified. The signer defines:\n 1. Trust distribution: how trust (CA bundles) are distributed.\n 2. Permitted subjects: and behavior when a disallowed subject is requested.\n 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\n 4. Required, permitted, or forbidden key usages / extended key usages.\n 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\n 6. Whether or not requests for CA certificates are allowed.", - "type": "string" - }, - "uid": { - "description": "uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - "type": "string" - }, - "usages": { - "description": "usages specifies a set of key usages requested in the issued certificate.\n\nRequests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\".\n\nRequests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\".\n\nValid values are:\n \"signing\", \"digital signature\", \"content commitment\",\n \"key encipherment\", \"key agreement\", \"data encipherment\",\n \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\",\n \"server auth\", \"client auth\",\n \"code signing\", \"email protection\", \"s/mime\",\n \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\",\n \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "username": { - "description": "username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - "type": "string" - } - }, - "required": [ - "request", - "signerName" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1.CertificateSigningRequestStatus": { - "description": "CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.", - "properties": { - "certificate": { - "description": "certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable.\n\nIf the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty.\n\nValidation requirements:\n 1. certificate must contain one or more PEM blocks.\n 2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data\n must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\n 3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated,\n to allow for explanatory text as described in section 5.2 of RFC7468.\n\nIf more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\n\nThe certificate is encoded in PEM format.\n\nWhen serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\n\n base64(\n -----BEGIN CERTIFICATE-----\n ...\n -----END CERTIFICATE-----\n )", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "conditions": { - "description": "conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".", - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestCondition" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "type" - ], - "x-kubernetes-list-type": "map" - } - }, - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequest": { - "description": "Describes a certificate signing request", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec", - "description": "The certificate request itself and any additional information." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus", - "description": "Derived information about the request." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition": { - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time." - }, - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "timestamp for the last update to this condition" - }, - "message": { - "description": "human readable message with details about the request state", - "type": "string" - }, - "reason": { - "description": "brief reason for the request state", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\". Defaults to \"True\". If unset, should be treated as \"True\".", - "type": "string" - }, - "type": { - "description": "type of the condition. Known conditions include \"Approved\", \"Denied\", and \"Failed\".", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestList": { - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequestList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec": { - "description": "This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra information about the requesting user. See user.Info interface for details.", - "type": "object" - }, - "groups": { - "description": "Group information about the requesting user. See user.Info interface for details.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "request": { - "description": "Base64-encoded PKCS#10 CSR data", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "signerName": { - "description": "Requested signer for the request. It is a qualified name in the form: `scope-hostname.io/name`. If empty, it will be defaulted:\n 1. If it's a kubelet client certificate, it is assigned\n \"kubernetes.io/kube-apiserver-client-kubelet\".\n 2. If it's a kubelet serving certificate, it is assigned\n \"kubernetes.io/kubelet-serving\".\n 3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\nDistribution of trust for signers happens out of band. You can select on this field using `spec.signerName`.", - "type": "string" - }, - "uid": { - "description": "UID information about the requesting user. See user.Info interface for details.", - "type": "string" - }, - "usages": { - "description": "allowedUsages specifies a set of usage contexts the key will be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3\n https://tools.ietf.org/html/rfc5280#section-4.2.1.12\nValid values are:\n \"signing\",\n \"digital signature\",\n \"content commitment\",\n \"key encipherment\",\n \"key agreement\",\n \"data encipherment\",\n \"cert sign\",\n \"crl sign\",\n \"encipher only\",\n \"decipher only\",\n \"any\",\n \"server auth\",\n \"client auth\",\n \"code signing\",\n \"email protection\",\n \"s/mime\",\n \"ipsec end system\",\n \"ipsec tunnel\",\n \"ipsec user\",\n \"timestamping\",\n \"ocsp signing\",\n \"microsoft sgc\",\n \"netscape sgc\"", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "username": { - "description": "Information about the requesting user. See user.Info interface for details.", - "type": "string" - } - }, - "required": [ - "request" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus": { - "properties": { - "certificate": { - "description": "If request was approved, the controller will place the issued certificate here.", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "conditions": { - "description": "Conditions applied to the request, such as approval or denial.", - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "type" - ], - "x-kubernetes-list-type": "map" - } - }, - "type": "object" - }, - "io.k8s.api.coordination.v1.Lease": { - "description": "Lease defines a lease concept.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseSpec", - "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - ] - }, - "io.k8s.api.coordination.v1.LeaseList": { - "description": "LeaseList is a list of Lease objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "LeaseList", - "version": "v1" - } - ] - }, - "io.k8s.api.coordination.v1.LeaseSpec": { - "description": "LeaseSpec is a specification of a Lease.", - "properties": { - "acquireTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "acquireTime is a time when the current lease was acquired." - }, - "holderIdentity": { - "description": "holderIdentity contains the identity of the holder of a current lease.", - "type": "string" - }, - "leaseDurationSeconds": { - "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - "format": "int32", - "type": "integer" - }, - "leaseTransitions": { - "description": "leaseTransitions is the number of transitions of a lease between holders.", - "format": "int32", - "type": "integer" - }, - "renewTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "renewTime is a time when the current holder of a lease has last updated the lease." - } - }, - "type": "object" - }, - "io.k8s.api.coordination.v1beta1.Lease": { - "description": "Lease defines a lease concept.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseSpec", - "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.coordination.v1beta1.LeaseList": { - "description": "LeaseList is a list of Lease objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "LeaseList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.coordination.v1beta1.LeaseSpec": { - "description": "LeaseSpec is a specification of a Lease.", - "properties": { - "acquireTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "acquireTime is a time when the current lease was acquired." - }, - "holderIdentity": { - "description": "holderIdentity contains the identity of the holder of a current lease.", - "type": "string" - }, - "leaseDurationSeconds": { - "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - "format": "int32", - "type": "integer" - }, - "leaseTransitions": { - "description": "leaseTransitions is the number of transitions of a lease between holders.", - "format": "int32", - "type": "integer" - }, - "renewTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "renewTime is a time when the current holder of a lease has last updated the lease." - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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).", - "format": "int32", - "type": "integer" - }, - "readOnly": { - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "boolean" - }, - "volumeID": { - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Affinity": { - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity", - "description": "Describes node affinity scheduling rules for the pod." - }, - "podAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity", - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." - }, - "podAntiAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity", - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.AttachedVolume": { - "description": "AttachedVolume describes a volume attached to a node", - "properties": { - "devicePath": { - "description": "DevicePath represents the device path where the volume should be available", - "type": "string" - }, - "name": { - "description": "Name of the attached volume", - "type": "string" - } - }, - "required": [ - "name", - "devicePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureDiskVolumeSource": { - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "properties": { - "cachingMode": { - "description": "Host Caching mode: None, Read Only, Read Write.", - "type": "string" - }, - "diskName": { - "description": "The Name of the data disk in the blob storage", - "type": "string" - }, - "diskURI": { - "description": "The URI the data disk in the blob storage", - "type": "string" - }, - "fsType": { - "description": "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": "Expected values 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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - } - }, - "required": [ - "diskName", - "diskURI" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "secretNamespace": { - "description": "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - }, - "required": [ - "secretName", - "shareName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureFileVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - }, - "required": [ - "secretName", - "shareName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Binding": { - "description": "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The target object that you want to bind to the standard object." - } - }, - "required": [ - "target" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Binding", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.CSIPersistentVolumeSource": { - "description": "Represents storage that is managed by an external CSI volume driver (Beta feature)", - "properties": { - "controllerExpandSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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 is an alpha field and requires enabling ExpandCSIVolumes feature gate. 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." - }, - "controllerPublishSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "driver": { - "description": "Driver is the name of the driver to use for this volume. Required.", - "type": "string" - }, - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".", - "type": "string" - }, - "nodePublishSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "nodeStageSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "readOnly": { - "description": "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "Attributes of the volume to publish.", - "type": "object" - }, - "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" - } - }, - "required": [ - "driver", - "volumeHandle" - ], - "type": "object" - }, - "io.k8s.api.core.v1.CSIVolumeSource": { - "description": "Represents a source location of a volume to mount, managed by an external CSI 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": "Filesystem type 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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "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." - }, - "readOnly": { - "description": "Specifies a read-only configuration for the volume. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - "type": "object" - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Capabilities": { - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "description": "Added capabilities", - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "description": "Removed capabilities", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "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" - }, - "user": { - "description": "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" - } - }, - "required": [ - "monitors" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "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" - }, - "user": { - "description": "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" - } - }, - "required": [ - "monitors" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ClientIPConfig": { - "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", - "properties": { - "timeoutSeconds": { - "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ComponentCondition": { - "description": "Information about the condition of a component.", - "properties": { - "error": { - "description": "Condition error code for a component. For example, a health check error code.", - "type": "string" - }, - "message": { - "description": "Message about the condition for a component. For example, information about a health check.", - "type": "string" - }, - "status": { - "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".", - "type": "string" - }, - "type": { - "description": "Type of condition for a component. Valid value: \"Healthy\"", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ComponentStatus": { - "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+", - "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" - }, - "conditions": { - "description": "List of component conditions observed", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ComponentStatusList": { - "description": "Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+", - "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" - }, - "items": { - "description": "List of ComponentStatus objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatusList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMap": { - "description": "ConfigMap holds configuration data for pods to consume.", - "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" - }, - "binaryData": { - "additionalProperties": { - "format": "byte", - "type": "string" - }, - "description": "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.", - "type": "object" - }, - "data": { - "additionalProperties": { - "type": "string" - }, - "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.", - "type": "object" - }, - "immutable": { - "description": "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is a beta field enabled by ImmutableEphemeralVolumes feature gate.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapEnvSource": { - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "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 must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ConfigMapKeySelector": { - "description": "Selects a key from a ConfigMap.", - "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" - } - }, - "required": [ - "key" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ConfigMapList": { - "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", - "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" - }, - "items": { - "description": "Items is the list of ConfigMaps.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMapList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapNodeConfigSource": { - "description": "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.", - "properties": { - "kubeletConfigKey": { - "description": "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.", - "type": "string" - }, - "name": { - "description": "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "resourceVersion": { - "description": "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - }, - "uid": { - "description": "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - } - }, - "required": [ - "namespace", - "name", - "kubeletConfigKey" - ], - "type": "object" - }, - "io.k8s.api.core.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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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 keys must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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 keys must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Container": { - "description": "A single application container that you want to run within a pod.", - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - }, - "type": "array" - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." - }, - "livenessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "name": { - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", - "type": "string" - }, - "ports": { - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "containerPort", - "protocol" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "containerPort", - "x-kubernetes-patch-strategy": "merge" - }, - "readinessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "startupProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeDevices": { - "description": "volumeDevices is the list of block devices to be used by the container.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerImage": { - "description": "Describe a container image", - "properties": { - "names": { - "description": "Names by which this image is known. e.g. [\"k8s.gcr.io/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]", - "items": { - "type": "string" - }, - "type": "array" - }, - "sizeBytes": { - "description": "The size of the image in bytes.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "names" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerPort": { - "description": "ContainerPort represents a network port in a single container.", - "properties": { - "containerPort": { - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536.", - "format": "int32", - "type": "integer" - }, - "hostIP": { - "description": "What host IP to bind the external port to.", - "type": "string" - }, - "hostPort": { - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", - "format": "int32", - "type": "integer" - }, - "name": { - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", - "type": "string" - }, - "protocol": { - "description": "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".", - "type": "string" - } - }, - "required": [ - "containerPort" - ], - "type": "object" - }, - "io.k8s.api.core.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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning", - "description": "Details about a running container" - }, - "terminated": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated", - "description": "Details about a terminated container" - }, - "waiting": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting", - "description": "Details about a waiting container" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStateRunning": { - "description": "ContainerStateRunning is a running state of a container.", - "properties": { - "startedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which the container was last (re-)started" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStateTerminated": { - "description": "ContainerStateTerminated is a terminated state of a container.", - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'", - "type": "string" - }, - "exitCode": { - "description": "Exit status from the last termination of the container", - "format": "int32", - "type": "integer" - }, - "finishedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which the container last terminated" - }, - "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", - "format": "int32", - "type": "integer" - }, - "startedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which previous execution of the container started" - } - }, - "required": [ - "exitCode" - ], - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStatus": { - "description": "ContainerStatus contains details for the current status of this container.", - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'.", - "type": "string" - }, - "image": { - "description": "The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images", - "type": "string" - }, - "imageID": { - "description": "ImageID of the container's image.", - "type": "string" - }, - "lastState": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", - "description": "Details about the container's last termination condition." - }, - "name": { - "description": "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.", - "type": "string" - }, - "ready": { - "description": "Specifies whether the container has passed its readiness probe.", - "type": "boolean" - }, - "restartCount": { - "description": "The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.", - "format": "int32", - "type": "integer" - }, - "started": { - "description": "Specifies whether the container has 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. Is always true when no startupProbe is defined.", - "type": "boolean" - }, - "state": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", - "description": "Details about the container's current condition." - } - }, - "required": [ - "name", - "ready", - "restartCount", - "image", - "imageID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.DaemonEndpoint": { - "description": "DaemonEndpoint contains information about a single Daemon endpoint.", - "properties": { - "Port": { - "description": "Port number of the given endpoint.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "Port" - ], - "type": "object" - }, - "io.k8s.api.core.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", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.DownwardAPIVolumeFile": { - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "properties": { - "fieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." - }, - "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.", - "format": "int32", - "type": "integer" - }, - "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "Items is a list of downward API volume file", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EmptyDirVolumeSource": { - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "description": "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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "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: http://kubernetes.io/docs/user-guide/volumes#emptydir" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EndpointAddress": { - "description": "EndpointAddress is a tuple that describes single IP address.", - "properties": { - "hostname": { - "description": "The Hostname of this endpoint", - "type": "string" - }, - "ip": { - "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.", - "type": "string" - }, - "nodeName": { - "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.", - "type": "string" - }, - "targetRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Reference to object providing the endpoint." - } - }, - "required": [ - "ip" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EndpointPort": { - "description": "EndpointPort is a tuple that describes a single port.", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. This is a beta field that is guarded by the ServiceAppProtocol feature gate and enabled by default.", - "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.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - "type": "string" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EndpointSubset": { - "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309 ]", - "properties": { - "addresses": { - "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - }, - "type": "array" - }, - "notReadyAddresses": { - "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - }, - "type": "array" - }, - "ports": { - "description": "Port numbers available on the related IP addresses.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Endpoints": { - "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "subsets": { - "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EndpointsList": { - "description": "EndpointsList is a list of endpoints.", - "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" - }, - "items": { - "description": "List of endpoints.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EndpointsList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EnvFromSource": { - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "configMapRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource", - "description": "The ConfigMap to select from" - }, - "prefix": { - "description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - "type": "string" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource", - "description": "The Secret to select from" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EnvVar": { - "description": "EnvVar represents an environment variable present in a Container.", - "properties": { - "name": { - "description": "Name of the environment variable. Must be a C_IDENTIFIER.", - "type": "string" - }, - "value": { - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", - "type": "string" - }, - "valueFrom": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource", - "description": "Source for the environment variable's value. Cannot be used if value is not empty." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EnvVarSource": { - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "configMapKeyRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector", - "description": "Selects a key of a ConfigMap." - }, - "fieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", - "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." - }, - "resourceFieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", - "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." - }, - "secretKeyRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector", - "description": "Selects a key of a secret in the pod's namespace" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EphemeralContainer": { - "description": "An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag.", - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - }, - "type": "array" - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", - "description": "Lifecycle is not allowed for ephemeral containers." - }, - "livenessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "name": { - "description": "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.", - "type": "string" - }, - "ports": { - "description": "Ports are not allowed for ephemeral containers.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "type": "array" - }, - "readinessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", - "description": "SecurityContext is not allowed for ephemeral containers." - }, - "startupProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "targetContainerName": { - "description": "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container is run in whatever namespaces are shared for the pod. Note that the container runtime must support this feature.", - "type": "string" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeDevices": { - "description": "volumeDevices is the list of block devices to be used by the container.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EphemeralVolumeSource": { - "description": "Represents an ephemeral volume that is handled by a normal storage driver.", - "properties": { - "readOnly": { - "description": "Specifies a read-only configuration for the volume. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeClaimTemplate": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimTemplate", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Event": { - "description": "Event is a report of an event somewhere in the cluster.", - "properties": { - "action": { - "description": "What action was taken/failed regarding to the Regarding object.", - "type": "string" - }, - "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" - }, - "count": { - "description": "The number of times this event has occurred.", - "format": "int32", - "type": "integer" - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time when this Event was first observed." - }, - "firstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)" - }, - "involvedObject": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The object that this event is about." - }, - "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" - }, - "lastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The time at which the most recent occurrence of this event was recorded." - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "reason": { - "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", - "type": "string" - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Optional secondary object for more complex actions." - }, - "reportingComponent": { - "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", - "type": "string" - }, - "reportingInstance": { - "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSeries", - "description": "Data about the Event series this event represents or nil if it's a singleton Event." - }, - "source": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "The component reporting this event. Should be a short machine understandable string." - }, - "type": { - "description": "Type of this event (Normal, Warning), new types could be added in the future", - "type": "string" - } - }, - "required": [ - "metadata", - "involvedObject" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Event", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventList": { - "description": "EventList is a list of events.", - "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" - }, - "items": { - "description": "List of events", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EventList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "properties": { - "count": { - "description": "Number of occurrences in this series up to the last heartbeat time", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time of the last occurrence observed" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EventSource": { - "description": "EventSource contains information for an event.", - "properties": { - "component": { - "description": "Component from which the event is generated.", - "type": "string" - }, - "host": { - "description": "Node name on which the event is generated.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "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": "Optional: FC target lun number", - "format": "int32", - "type": "integer" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "targetWWNs": { - "description": "Optional: FC target worldwide names (WWNs)", - "items": { - "type": "string" - }, - "type": "array" - }, - "wwids": { - "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.FlexPersistentVolumeSource": { - "description": "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.", - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional: Extra command options if any.", - "type": "object" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "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." - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.v1.FlexVolumeSource": { - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional: Extra command options if any.", - "type": "object" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "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." - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.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": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated", - "type": "string" - }, - "datasetUUID": { - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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", - "format": "int32", - "type": "integer" - }, - "pdName": { - "description": "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" - } - }, - "required": [ - "pdName" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "directory": { - "description": "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 URL", - "type": "string" - }, - "revision": { - "description": "Commit hash for the specified revision.", - "type": "string" - } - }, - "required": [ - "repository" - ], - "type": "object" - }, - "io.k8s.api.core.v1.GlusterfsPersistentVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "properties": { - "endpoints": { - "description": "EndpointsName 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" - } - }, - "required": [ - "endpoints", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.GlusterfsVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "properties": { - "endpoints": { - "description": "EndpointsName 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" - } - }, - "required": [ - "endpoints", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.HTTPGetAction": { - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" - }, - "type": "array" - }, - "path": { - "description": "Path to access on the HTTP server.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "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." - }, - "scheme": { - "description": "Scheme to use for connecting to the host. Defaults to HTTP.", - "type": "string" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.HTTPHeader": { - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "properties": { - "name": { - "description": "The header field name", - "type": "string" - }, - "value": { - "description": "The header field value", - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Handler": { - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.HostAlias": { - "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", - "properties": { - "hostnames": { - "description": "Hostnames for the above IP address.", - "items": { - "type": "string" - }, - "type": "array" - }, - "ip": { - "description": "IP address of the host file entry.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.HostPathVolumeSource": { - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "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": "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": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "format": "int32", - "type": "integer" - }, - "portals": { - "description": "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).", - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "CHAP Secret for iSCSI target and initiator authentication" - }, - "targetPortal": { - "description": "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" - } - }, - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "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": "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": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "format": "int32", - "type": "integer" - }, - "portals": { - "description": "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).", - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "CHAP Secret for iSCSI target and initiator authentication" - }, - "targetPortal": { - "description": "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" - } - }, - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "type": "object" - }, - "io.k8s.api.core.v1.KeyToPath": { - "description": "Maps a string key to a path within a volume.", - "properties": { - "key": { - "description": "The key to project.", - "type": "string" - }, - "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.", - "format": "int32", - "type": "integer" - }, - "path": { - "description": "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" - } - }, - "required": [ - "key", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Lifecycle": { - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "$ref": "#/definitions/io.k8s.api.core.v1.Handler", - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - }, - "preStop": { - "$ref": "#/definitions/io.k8s.api.core.v1.Handler", - "description": "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LimitRange": { - "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec", - "description": "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeItem": { - "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", - "properties": { - "default": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Default resource requirement limit value by resource name if resource limit is omitted.", - "type": "object" - }, - "defaultRequest": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.", - "type": "object" - }, - "max": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Max usage constraints on this kind by resource name.", - "type": "object" - }, - "maxLimitRequestRatio": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.", - "type": "object" - }, - "min": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Min usage constraints on this kind by resource name.", - "type": "object" - }, - "type": { - "description": "Type of resource that this limit applies to.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.core.v1.LimitRangeList": { - "description": "LimitRangeList is a list of LimitRange items.", - "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" - }, - "items": { - "description": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRangeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeSpec": { - "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", - "properties": { - "limits": { - "description": "Limits is the list of LimitRangeItem objects that are enforced.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" - }, - "type": "array" - } - }, - "required": [ - "limits" - ], - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerIngress": { - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "hostname": { - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", - "type": "string" - }, - "ip": { - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerStatus": { - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LocalVolumeSource": { - "description": "Local represents directly-attached storage with node affinity (Beta feature)", - "properties": { - "fsType": { - "description": "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 fileystem if unspecified.", - "type": "string" - }, - "path": { - "description": "The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).", - "type": "string" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NFSVolumeSource": { - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "server", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Namespace": { - "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec", - "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus", - "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Namespace", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceCondition": { - "description": "NamespaceCondition contains details about state of namespace.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of namespace controller condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NamespaceList": { - "description": "NamespaceList is a list of Namespaces.", - "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" - }, - "items": { - "description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NamespaceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceSpec": { - "description": "NamespaceSpec describes the attributes on a Namespace.", - "properties": { - "finalizers": { - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NamespaceStatus": { - "description": "NamespaceStatus is information about the current status of a Namespace.", - "properties": { - "conditions": { - "description": "Represents the latest available observations of a namespace's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "phase": { - "description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Node": { - "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec", - "description": "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus", - "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Node", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeAddress": { - "description": "NodeAddress contains information for the node's address.", - "properties": { - "address": { - "description": "The node address.", - "type": "string" - }, - "type": { - "description": "Node address type, one of Hostname, ExternalIP or InternalIP.", - "type": "string" - } - }, - "required": [ - "type", - "address" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeAffinity": { - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeCondition": { - "description": "NodeCondition contains condition information for a node.", - "properties": { - "lastHeartbeatTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we got an update on a given condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transit from one status to another." - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of node condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeConfigSource": { - "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", - "properties": { - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource", - "description": "ConfigMap is a reference to a Node's ConfigMap" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeConfigStatus": { - "description": "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.", - "properties": { - "active": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error." - }, - "assigned": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned." - }, - "error": { - "description": "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.", - "type": "string" - }, - "lastKnownGood": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeDaemonEndpoints": { - "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", - "properties": { - "kubeletEndpoint": { - "$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint", - "description": "Endpoint on which Kubelet is listening." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeList": { - "description": "NodeList is the whole list of all Nodes which have been registered with master.", - "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" - }, - "items": { - "description": "List of nodes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NodeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeSelector": { - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "properties": { - "nodeSelectorTerms": { - "description": "Required. A list of node selector terms. The terms are ORed.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" - }, - "type": "array" - } - }, - "required": [ - "nodeSelectorTerms" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeSelectorRequirement": { - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "operator": { - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - "type": "string" - }, - "values": { - "description": "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "operator" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeSelectorTerm": { - "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.", - "properties": { - "matchExpressions": { - "description": "A list of node selector requirements by node's labels.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - }, - "type": "array" - }, - "matchFields": { - "description": "A list of node selector requirements by node's fields.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeSpec": { - "description": "NodeSpec describes the attributes that a node is created with.", - "properties": { - "configSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field" - }, - "externalID": { - "description": "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966", - "type": "string" - }, - "podCIDR": { - "description": "PodCIDR represents the pod IP range assigned to the node.", - "type": "string" - }, - "podCIDRs": { - "description": "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-patch-strategy": "merge" - }, - "providerID": { - "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e", - "type": "string" - }, - "taints": { - "description": "If specified, the node's taints.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Taint" - }, - "type": "array" - }, - "unschedulable": { - "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeStatus": { - "description": "NodeStatus is information about the current status of a node.", - "properties": { - "addresses": { - "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See http://pr.k8s.io/79391 for an example.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "allocatable": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.", - "type": "object" - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object" - }, - "conditions": { - "description": "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "config": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigStatus", - "description": "Status of the config assigned to the node via the dynamic Kubelet config feature." - }, - "daemonEndpoints": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints", - "description": "Endpoints of daemons running on the Node." - }, - "images": { - "description": "List of container images on this node", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" - }, - "type": "array" - }, - "nodeInfo": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo", - "description": "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info" - }, - "phase": { - "description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", - "type": "string" - }, - "volumesAttached": { - "description": "List of volumes that are attached to the node.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume" - }, - "type": "array" - }, - "volumesInUse": { - "description": "List of attachable volumes in use (mounted) by the node.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeSystemInfo": { - "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", - "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. docker://1.5.0).", - "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" - } - }, - "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion", - "operatingSystem", - "architecture" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ObjectFieldSelector": { - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "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" - } - }, - "required": [ - "fieldPath" - ], - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolume": { - "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus", - "description": "Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaim": { - "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", - "description": "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus", - "description": "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { - "description": "PersistentVolumeClaimCondition contails details about state of pvc", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized.", - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimList": { - "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", - "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" - }, - "items": { - "description": "A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaimList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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", - "items": { - "type": "string" - }, - "type": "array" - }, - "dataSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot - Beta) * An existing PVC (PersistentVolumeClaim) * An existing custom resource/object that implements data population (Alpha) In order to use VolumeSnapshot object types, the appropriate feature gate must be enabled (VolumeSnapshotDataSource or AnyVolumeDataSource) 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. If the specified data source is not supported, the volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change." - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over volumes to consider for binding." - }, - "storageClassName": { - "description": "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { - "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", - "properties": { - "accessModes": { - "description": "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - "items": { - "type": "string" - }, - "type": "array" - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Represents the actual resources of the underlying volume.", - "type": "object" - }, - "conditions": { - "description": "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "phase": { - "description": "Phase represents the current phase of PersistentVolumeClaim.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": { - "description": "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "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." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", - "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." - } - }, - "required": [ - "spec" - ], - "type": "object" - }, - "io.k8s.api.core.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).", - "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": "Will force the ReadOnly setting in VolumeMounts. Default false.", - "type": "boolean" - } - }, - "required": [ - "claimName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeList": { - "description": "PersistentVolumeList is a list of PersistentVolume items.", - "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" - }, - "items": { - "description": "List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeSpec": { - "description": "PersistentVolumeSpec is the specification of a persistent volume.", - "properties": { - "accessModes": { - "description": "AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", - "items": { - "type": "string" - }, - "type": "array" - }, - "awsElasticBlockStore": { - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", - "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" - }, - "azureDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "azureFile": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object" - }, - "cephfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "cinder": { - "$ref": "#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" - }, - "claimRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding" - }, - "csi": { - "$ref": "#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource", - "description": "CSI represents storage that is handled by an external CSI driver (Beta feature)." - }, - "fc": { - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flexVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." - }, - "flocker": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", - "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" - }, - "gcePersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", - "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" - }, - "glusterfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource", - "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" - }, - "hostPath": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", - "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" - }, - "iscsi": { - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource", - "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." - }, - "local": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalVolumeSource", - "description": "Local represents directly-attached storage with node affinity" - }, - "mountOptions": { - "description": "A list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", - "items": { - "type": "string" - }, - "type": "array" - }, - "nfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" - }, - "nodeAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity", - "description": "NodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume." - }, - "persistentVolumeReclaimPolicy": { - "description": "What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", - "type": "string" - }, - "photonPersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "rbd": { - "$ref": "#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource", - "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" - }, - "scaleIO": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "storageClassName": { - "description": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", - "type": "string" - }, - "storageos": { - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource", - "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" - }, - "volumeMode": { - "description": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.", - "type": "string" - }, - "vsphereVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeStatus": { - "description": "PersistentVolumeStatus is the current status of a persistent volume.", - "properties": { - "message": { - "description": "A human-readable message indicating details about why the volume is in this state.", - "type": "string" - }, - "phase": { - "description": "Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase", - "type": "string" - }, - "reason": { - "description": "Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { - "description": "Represents a Photon Controller persistent disk resource.", - "properties": { - "fsType": { - "description": "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": "ID that identifies Photon Controller persistent disk", - "type": "string" - } - }, - "required": [ - "pdID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Pod": { - "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodStatus", - "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Pod", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodAffinity": { - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodAffinityTerm": { - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over a set of resources, in this case pods." - }, - "namespaces": { - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - "type": "string" - } - }, - "required": [ - "topologyKey" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodAntiAffinity": { - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodCondition": { - "description": "PodCondition contains details for the current condition of this pod.", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodDNSConfig": { - "description": "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.", - "properties": { - "nameservers": { - "description": "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "options": { - "description": "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfigOption" - }, - "type": "array" - }, - "searches": { - "description": "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodDNSConfigOption": { - "description": "PodDNSConfigOption defines DNS resolver options of a pod.", - "properties": { - "name": { - "description": "Required.", - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodIP": { - "description": "IP address information for entries in the (plural) PodIPs field. Each entry includes:\n IP: An IP address allocated to the pod. Routable at least within the cluster.", - "properties": { - "ip": { - "description": "ip is an IP address (IPv4 or IPv6) assigned to the pod", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodList": { - "description": "PodList is a list of Pods.", - "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" - }, - "items": { - "description": "List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodReadinessGate": { - "description": "PodReadinessGate contains the reference to a pod condition", - "properties": { - "conditionType": { - "description": "ConditionType refers to a condition in the pod's condition list with matching type.", - "type": "string" - } - }, - "required": [ - "conditionType" - ], - "type": "object" - }, - "io.k8s.api.core.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----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.", - "format": "int64", - "type": "integer" - }, - "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 defaults to \"Always\".", - "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.", - "format": "int64", - "type": "integer" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "seccompProfile": { - "$ref": "#/definitions/io.k8s.api.core.v1.SeccompProfile", - "description": "The seccomp options to use by the containers in this pod." - }, - "supplementalGroups": { - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", - "items": { - "format": "int64", - "type": "integer" - }, - "type": "array" - }, - "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Sysctl" - }, - "type": "array" - }, - "windowsOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodSpec": { - "description": "PodSpec is a description of a pod.", - "properties": { - "activeDeadlineSeconds": { - "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", - "format": "int64", - "type": "integer" - }, - "affinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.Affinity", - "description": "If specified, the pod's scheduling constraints" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", - "type": "boolean" - }, - "containers": { - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "dnsConfig": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig", - "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy." - }, - "dnsPolicy": { - "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", - "type": "string" - }, - "enableServiceLinks": { - "description": "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.", - "type": "boolean" - }, - "ephemeralContainers": { - "description": "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralContainer" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "hostAliases": { - "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "hostIPC": { - "description": "Use the host's ipc namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostNetwork": { - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.", - "type": "boolean" - }, - "hostPID": { - "description": "Use the host's pid namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostname": { - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", - "type": "string" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "initContainers": { - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "nodeName": { - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.", - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", - "type": "object" - }, - "overhead": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.", - "type": "object" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", - "type": "string" - }, - "priority": { - "description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", - "format": "int32", - "type": "integer" - }, - "priorityClassName": { - "description": "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", - "type": "string" - }, - "readinessGates": { - "description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodReadinessGate" - }, - "type": "array" - }, - "restartPolicy": { - "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", - "type": "string" - }, - "runtimeClassName": { - "description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.", - "type": "string" - }, - "schedulerName": { - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", - "type": "string" - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext", - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." - }, - "serviceAccount": { - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", - "type": "string" - }, - "serviceAccountName": { - "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "type": "string" - }, - "setHostnameAsFQDN": { - "description": "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.", - "type": "boolean" - }, - "shareProcessNamespace": { - "description": "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.", - "type": "boolean" - }, - "subdomain": { - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all.", - "type": "string" - }, - "terminationGracePeriodSeconds": { - "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. 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. Defaults to 30 seconds.", - "format": "int64", - "type": "integer" - }, - "tolerations": { - "description": "If specified, the pod's tolerations.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - }, - "type": "array" - }, - "topologySpreadConstraints": { - "description": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "topologyKey", - "whenUnsatisfiable" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "topologyKey", - "x-kubernetes-patch-strategy": "merge" - }, - "volumes": { - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Volume" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge,retainKeys" - } - }, - "required": [ - "containers" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodStatus": { - "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.", - "properties": { - "conditions": { - "description": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "containerStatuses": { - "description": "The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "ephemeralContainerStatuses": { - "description": "Status for any ephemeral containers that have run in this pod. This field is alpha-level and is only populated by servers that enable the EphemeralContainers feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "hostIP": { - "description": "IP address of the host to which the pod is assigned. Empty if not yet scheduled.", - "type": "string" - }, - "initContainerStatuses": { - "description": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "message": { - "description": "A human readable message indicating details about why the pod is in this condition.", - "type": "string" - }, - "nominatedNodeName": { - "description": "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.", - "type": "string" - }, - "phase": { - "description": "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", - "type": "string" - }, - "podIP": { - "description": "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", - "type": "string" - }, - "podIPs": { - "description": "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodIP" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "qosClass": { - "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md", - "type": "string" - }, - "reason": { - "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", - "type": "string" - }, - "startTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodTemplate": { - "description": "PodTemplate describes a template for creating copies of a predefined pod.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateList": { - "description": "PodTemplateList is a list of PodTemplates.", - "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" - }, - "items": { - "description": "List of pod templates", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplateList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateSpec": { - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PortworxVolumeSource": { - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "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": "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" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PreferredSchedulingTerm": { - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "properties": { - "preference": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm", - "description": "A node selector term, associated with the corresponding weight." - }, - "weight": { - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "weight", - "preference" - ], - "type": "object" - }, - "io.k8s.api.core.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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "failureThreshold": { - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - "format": "int32", - "type": "integer" - }, - "httpGet": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "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", - "format": "int32", - "type": "integer" - }, - "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - "format": "int32", - "type": "integer" - }, - "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.", - "format": "int32", - "type": "integer" - }, - "tcpSocket": { - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - }, - "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", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ProjectedVolumeSource": { - "description": "Represents a projected volume source", - "properties": { - "defaultMode": { - "description": "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.", - "format": "int32", - "type": "integer" - }, - "sources": { - "description": "list of volume projections", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" - }, - "type": "array" - } - }, - "required": [ - "sources" - ], - "type": "object" - }, - "io.k8s.api.core.v1.QuobyteVolumeSource": { - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "registry", - "volume" - ], - "type": "object" - }, - "io.k8s.api.core.v1.RBDPersistentVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - }, - "required": [ - "monitors", - "image" - ], - "type": "object" - }, - "io.k8s.api.core.v1.RBDVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "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" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - }, - "required": [ - "monitors", - "image" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationController": { - "description": "ReplicationController represents the configuration of a replication controller.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec", - "description": "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus", - "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerCondition": { - "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replication controller condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationControllerList": { - "description": "ReplicationControllerList is a collection of replication controllers.", - "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" - }, - "items": { - "description": "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationControllerList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerSpec": { - "description": "ReplicationControllerSpec is the specification of a replication controller.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "description": "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "type": "object" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationControllerStatus": { - "description": "ReplicationControllerStatus represents the current status of a replication controller.", - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a replication controller's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replication controller.", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed replication controller.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replication controller.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ResourceFieldSelector": { - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "properties": { - "containerName": { - "description": "Container name: required for volumes, optional for env vars", - "type": "string" - }, - "divisor": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "Specifies the output format of the exposed resources, defaults to \"1\"" - }, - "resource": { - "description": "Required: resource to select", - "type": "string" - } - }, - "required": [ - "resource" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ResourceQuota": { - "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec", - "description": "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus", - "description": "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaList": { - "description": "ResourceQuotaList is a list of ResourceQuota items.", - "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" - }, - "items": { - "description": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuotaList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaSpec": { - "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - "properties": { - "hard": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object" - }, - "scopeSelector": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScopeSelector", - "description": "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched." - }, - "scopes": { - "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ResourceQuotaStatus": { - "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", - "properties": { - "hard": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object" - }, - "used": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Used is the current observed total usage of the resource in the namespace.", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ResourceRequirements": { - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object" - }, - "requests": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { - "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", - "properties": { - "fsType": { - "description": "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": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - }, - "required": [ - "gateway", - "system", - "secretRef" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ScaleIOVolumeSource": { - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "properties": { - "fsType": { - "description": "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": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - }, - "required": [ - "gateway", - "system", - "secretRef" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ScopeSelector": { - "description": "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.", - "properties": { - "matchExpressions": { - "description": "A list of scope selector requirements by scope of the resources.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ScopedResourceSelectorRequirement": { - "description": "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.", - "properties": { - "operator": { - "description": "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.", - "type": "string" - }, - "scopeName": { - "description": "The name of the scope that the selector applies to.", - "type": "string" - }, - "values": { - "description": "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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "scopeName", - "operator" - ], - "type": "object" - }, - "io.k8s.api.core.v1.SeccompProfile": { - "description": "SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.", - "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 only be set if type is \"Localhost\".", - "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" - } - }, - "required": [ - "type" - ], - "type": "object", - "x-kubernetes-unions": [ - { - "discriminator": "type", - "fields-to-discriminateBy": { - "localhostProfile": "LocalhostProfile" - } - } - ] - }, - "io.k8s.api.core.v1.Secret": { - "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", - "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" - }, - "data": { - "additionalProperties": { - "format": "byte", - "type": "string" - }, - "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", - "type": "object" - }, - "immutable": { - "description": "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is a beta field enabled by ImmutableEphemeralVolumes feature gate.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "stringData": { - "additionalProperties": { - "type": "string" - }, - "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.", - "type": "object" - }, - "type": { - "description": "Used to facilitate programmatic handling of secret data.", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Secret", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.SecretEnvSource": { - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "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 must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SecretKeySelector": { - "description": "SecretKeySelector selects a key of a Secret.", - "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" - } - }, - "required": [ - "key" - ], - "type": "object" - }, - "io.k8s.api.core.v1.SecretList": { - "description": "SecretList is a list of Secret.", - "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" - }, - "items": { - "description": "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "SecretList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "optional": { - "description": "Specify whether the Secret or its keys must be defined", - "type": "boolean" - }, - "secretName": { - "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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", - "type": "boolean" - }, - "capabilities": { - "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities", - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." - }, - "privileged": { - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", - "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.", - "type": "string" - }, - "readOnlyRootFilesystem": { - "description": "Whether this container has a read-only root filesystem. Default is false.", - "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.", - "format": "int64", - "type": "integer" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "seccompProfile": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "windowsOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Service": { - "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec", - "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus", - "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Service", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccount": { - "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", - "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" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.", - "type": "boolean" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "secrets": { - "description": "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccountList": { - "description": "ServiceAccountList is a list of ServiceAccount objects", - "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" - }, - "items": { - "description": "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccountList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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).", - "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.", - "format": "int64", - "type": "integer" - }, - "path": { - "description": "Path is the path relative to the mount point of the file to project the token into.", - "type": "string" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ServiceList": { - "description": "ServiceList holds a list of services.", - "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" - }, - "items": { - "description": "List of services", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServicePort": { - "description": "ServicePort contains information on service's port.", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. This is a beta field that is guarded by the ServiceAppProtocol feature gate and enabled by default.", - "type": "string" - }, - "name": { - "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.", - "type": "string" - }, - "nodePort": { - "description": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", - "format": "int32", - "type": "integer" - }, - "port": { - "description": "The port that will be exposed by this service.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.", - "type": "string" - }, - "targetPort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ServiceSpec": { - "description": "ServiceSpec describes the attributes that a user creates on a service.", - "properties": { - "clusterIP": { - "description": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "externalIPs": { - "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", - "items": { - "type": "string" - }, - "type": "array" - }, - "externalName": { - "description": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.", - "type": "string" - }, - "externalTrafficPolicy": { - "description": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", - "type": "string" - }, - "healthCheckNodePort": { - "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.", - "format": "int32", - "type": "integer" - }, - "ipFamily": { - "description": "ipFamily specifies whether this Service has a preference for a particular IP family (e.g. IPv4 vs. IPv6) when the IPv6DualStack feature gate is enabled. In a dual-stack cluster, you can specify ipFamily when creating a ClusterIP Service to determine whether the controller will allocate an IPv4 or IPv6 IP for it, and you can specify ipFamily when creating a headless Service to determine whether it will have IPv4 or IPv6 Endpoints. In either case, if you do not specify an ipFamily explicitly, it will default to the cluster's primary IP family. This field is part of an alpha feature, and you should not make any assumptions about its semantics other than those described above. In particular, you should not assume that it can (or cannot) be changed after creation time; that it can only have the values \"IPv4\" and \"IPv6\"; or that its current value on a given Service correctly reflects the current state of that Service. (For ClusterIP Services, look at clusterIP to see if the Service is IPv4 or IPv6. For headless Services, look at the endpoints, which may be dual-stack in the future. For ExternalName Services, ipFamily has no meaning, but it may be set to an irrelevant value anyway.)", - "type": "string" - }, - "loadBalancerIP": { - "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.", - "type": "string" - }, - "loadBalancerSourceRanges": { - "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/", - "items": { - "type": "string" - }, - "type": "array" - }, - "ports": { - "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "port", - "protocol" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "port", - "x-kubernetes-patch-strategy": "merge" - }, - "publishNotReadyAddresses": { - "description": "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.", - "type": "boolean" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", - "type": "object" - }, - "sessionAffinity": { - "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "sessionAffinityConfig": { - "$ref": "#/definitions/io.k8s.api.core.v1.SessionAffinityConfig", - "description": "sessionAffinityConfig contains the configurations of session affinity." - }, - "topologyKeys": { - "description": "topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value \"*\" may be used to mean \"any topology\". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied.", - "items": { - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ServiceStatus": { - "description": "ServiceStatus represents the current status of a service.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer, if one is present." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SessionAffinityConfig": { - "description": "SessionAffinityConfig represents the configurations of session affinity.", - "properties": { - "clientIP": { - "$ref": "#/definitions/io.k8s.api.core.v1.ClientIPConfig", - "description": "clientIP contains the configurations of Client IP based session affinity." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.StorageOSVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Sysctl": { - "description": "Sysctl defines a kernel parameter to be set", - "properties": { - "name": { - "description": "Name of a property to set", - "type": "string" - }, - "value": { - "description": "Value of a property to set", - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TCPSocketAction": { - "description": "TCPSocketAction describes an action based on opening a socket", - "properties": { - "host": { - "description": "Optional: Host name to connect to, defaults to the pod IP.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "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." - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Taint": { - "description": "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", - "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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints." - }, - "value": { - "description": "The taint value corresponding to the taint key.", - "type": "string" - } - }, - "required": [ - "key", - "effect" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Toleration": { - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "effect": { - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - "type": "string" - }, - "key": { - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - "type": "string" - }, - "operator": { - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - "type": "string" - }, - "tolerationSeconds": { - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - "format": "int64", - "type": "integer" - }, - "value": { - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.TopologySelectorLabelRequirement": { - "description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.", - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "values": { - "description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "values" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TopologySelectorTerm": { - "description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.", - "properties": { - "matchLabelExpressions": { - "description": "A list of topology selector requirements by labels.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.TopologySpreadConstraint": { - "description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology.", - "properties": { - "labelSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain." - }, - "maxSkew": { - "description": "MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - "format": "int32", - "type": "integer" - }, - "topologyKey": { - "description": "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each \u003ckey, value\u003e as a \"bucket\", and try to put balanced number of pods into each bucket. It's a required field.", - "type": "string" - }, - "whenUnsatisfiable": { - "description": "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n but giving higher precedence to topologies that would help reduce the\n skew.\nA constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assigment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - "type": "string" - } - }, - "required": [ - "maxSkew", - "topologyKey", - "whenUnsatisfiable" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TypedLocalObjectReference": { - "description": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Volume": { - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "properties": { - "awsElasticBlockStore": { - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", - "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" - }, - "azureDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "azureFile": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "cephfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "cinder": { - "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" - }, - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource", - "description": "ConfigMap represents a configMap that should populate this volume" - }, - "csi": { - "$ref": "#/definitions/io.k8s.api.core.v1.CSIVolumeSource", - "description": "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." - }, - "downwardAPI": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource", - "description": "DownwardAPI represents downward API about the pod that should populate this volume" - }, - "emptyDir": { - "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource", - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" - }, - "ephemeral": { - "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralVolumeSource", - "description": "Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature). 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." - }, - "fc": { - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flexVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." - }, - "flocker": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" - }, - "gcePersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", - "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" - }, - "gitRepo": { - "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource", - "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." - }, - "glusterfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource", - "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" - }, - "hostPath": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", - "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" - }, - "iscsi": { - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource", - "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" - }, - "name": { - "description": "Volume's name. 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": { - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", - "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" - }, - "persistentVolumeClaim": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "photonPersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "projected": { - "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource", - "description": "Items for all in one resources secrets, configmaps, and downward API" - }, - "quobyte": { - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "rbd": { - "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource", - "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" - }, - "scaleIO": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "secret": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource", - "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" - }, - "storageos": { - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource", - "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." - }, - "vsphereVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeDevice": { - "description": "volumeDevice describes a mapping of a raw block device within a container.", - "properties": { - "devicePath": { - "description": "devicePath is the path inside of the container that the device will be mapped to.", - "type": "string" - }, - "name": { - "description": "name must match the name of a persistentVolumeClaim in the pod", - "type": "string" - } - }, - "required": [ - "name", - "devicePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeMount": { - "description": "VolumeMount describes a mounting of a Volume within a container.", - "properties": { - "mountPath": { - "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", - "type": "string" - }, - "mountPropagation": { - "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - "type": "string" - }, - "name": { - "description": "This must match the Name of a Volume.", - "type": "string" - }, - "readOnly": { - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - "type": "boolean" - }, - "subPath": { - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", - "type": "string" - }, - "subPathExpr": { - "description": "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.", - "type": "string" - } - }, - "required": [ - "name", - "mountPath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeNodeAffinity": { - "description": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", - "properties": { - "required": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", - "description": "Required specifies hard node constraints that must be met." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VolumeProjection": { - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection", - "description": "information about the configMap data to project" - }, - "downwardAPI": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection", - "description": "information about the downwardAPI data to project" - }, - "secret": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection", - "description": "information about the secret data to project" - }, - "serviceAccountToken": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection", - "description": "information about the serviceAccountToken data to project" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { - "description": "Represents a vSphere volume resource.", - "properties": { - "fsType": { - "description": "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": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - "type": "string" - }, - "storagePolicyName": { - "description": "Storage Policy Based Management (SPBM) profile name.", - "type": "string" - }, - "volumePath": { - "description": "Path that identifies vSphere volume vmdk", - "type": "string" - } - }, - "required": [ - "volumePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.WeightedPodAffinityTerm": { - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "properties": { - "podAffinityTerm": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm", - "description": "Required. A pod affinity term, associated with the corresponding weight." - }, - "weight": { - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "weight", - "podAffinityTerm" - ], - "type": "object" - }, - "io.k8s.api.core.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" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.Endpoint": { - "description": "Endpoint represents a single logical \"backend\" implementing a service.", - "properties": { - "addresses": { - "description": "addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "conditions": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointConditions", - "description": "conditions contains information about the current status of the endpoint." - }, - "hostname": { - "description": "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must pass DNS Label (RFC 1123) validation.", - "type": "string" - }, - "targetRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "targetRef is a reference to a Kubernetes object that represents this endpoint." - }, - "topology": { - "additionalProperties": { - "type": "string" - }, - "description": "topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\n where the endpoint is located. This should match the corresponding\n node label.\n* topology.kubernetes.io/zone: the value indicates the zone where the\n endpoint is located. This should match the corresponding node label.\n* topology.kubernetes.io/region: the value indicates the region where the\n endpoint is located. This should match the corresponding node label.", - "type": "object" - } - }, - "required": [ - "addresses" - ], - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointConditions": { - "description": "EndpointConditions represents the current condition of an endpoint.", - "properties": { - "ready": { - "description": "ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointPort": { - "description": "EndpointPort represents a Port used by an EndpointSlice", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.", - "type": "string" - }, - "name": { - "description": "The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", - "type": "string" - }, - "port": { - "description": "The port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointSlice": { - "description": "EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.", - "properties": { - "addressType": { - "description": "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.", - "type": "string" - }, - "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" - }, - "endpoints": { - "description": "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.Endpoint" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "ports": { - "description": "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \"all ports\". Each slice may include a maximum of 100 ports.", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointPort" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "required": [ - "addressType", - "endpoints" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.discovery.v1beta1.EndpointSliceList": { - "description": "EndpointSliceList represents a list of endpoint slices", - "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" - }, - "items": { - "description": "List of endpoint slices", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "discovery.k8s.io", - "kind": "EndpointSliceList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1.Event": { - "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", - "properties": { - "action": { - "description": "action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field can have at most 128 characters.", - "type": "string" - }, - "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" - }, - "deprecatedCount": { - "description": "deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.", - "format": "int32", - "type": "integer" - }, - "deprecatedFirstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "deprecatedLastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "deprecatedSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "eventTime is the time when this Event was first observed. It is required." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "note": { - "description": "note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", - "type": "string" - }, - "reason": { - "description": "reason is why the action was taken. It is human-readable. This field can have at most 128 characters.", - "type": "string" - }, - "regarding": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object." - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object." - }, - "reportingController": { - "description": "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", - "type": "string" - }, - "reportingInstance": { - "description": "reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.events.v1.EventSeries", - "description": "series is data about the Event series this event represents or nil if it's a singleton Event." - }, - "type": { - "description": "type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable.", - "type": "string" - } - }, - "required": [ - "eventTime" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - ] - }, - "io.k8s.api.events.v1.EventList": { - "description": "EventList is a list of Event objects.", - "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" - }, - "items": { - "description": "items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "EventList", - "version": "v1" - } - ] - }, - "io.k8s.api.events.v1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows how this struct is updated on heartbeats and can guide customized reporter implementations.", - "properties": { - "count": { - "description": "count is the number of occurrences in this series up to the last heartbeat time.", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "lastObservedTime is the time when last Event from the series was seen before last heartbeat." - } - }, - "required": [ - "count", - "lastObservedTime" - ], - "type": "object" - }, - "io.k8s.api.events.v1beta1.Event": { - "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", - "properties": { - "action": { - "description": "action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field can have at most 128 characters.", - "type": "string" - }, - "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" - }, - "deprecatedCount": { - "description": "deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.", - "format": "int32", - "type": "integer" - }, - "deprecatedFirstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "deprecatedLastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "deprecatedSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "eventTime is the time when this Event was first observed. It is required." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "note": { - "description": "note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", - "type": "string" - }, - "reason": { - "description": "reason is why the action was taken. It is human-readable. This field can have at most 128 characters.", - "type": "string" - }, - "regarding": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object." - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object." - }, - "reportingController": { - "description": "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", - "type": "string" - }, - "reportingInstance": { - "description": "reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventSeries", - "description": "series is data about the Event series this event represents or nil if it's a singleton Event." - }, - "type": { - "description": "type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable.", - "type": "string" - } - }, - "required": [ - "eventTime" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventList": { - "description": "EventList is a list of Event objects.", - "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" - }, - "items": { - "description": "items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "EventList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "properties": { - "count": { - "description": "count is the number of occurrences in this series up to the last heartbeat time.", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "lastObservedTime is the time when last Event from the series was seen before last heartbeat." - } - }, - "required": [ - "count", - "lastObservedTime" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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. Defaults to ImplementationSpecific.", - "type": "string" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath" - }, - "type": "array" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." - }, - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Specifies the port of the referenced service." - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "IngressList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.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/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressRule" - }, - "type": "array" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "secretName": { - "description": "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL 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" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.networking.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.HTTPIngressPath" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.networking.v1.IPBlock": { - "description": "IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\",\"2001:db9::/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.", - "properties": { - "cidr": { - "description": "CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\"", - "type": "string" - }, - "except": { - "description": "Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\" Except values will be rejected if they are outside the CIDR range", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "cidr" - ], - "type": "object" - }, - "io.k8s.api.networking.v1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "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\"." - }, - "service": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressServiceBackend", - "description": "Service references a Service as a Backend. This is a mutually exclusive setting with \"Resource\"." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IngressClass": { - "description": "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClassSpec", - "description": "Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.IngressClassList": { - "description": "IngressClassList is a collection of IngressClasses.", - "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" - }, - "items": { - "description": "Items is the list of IngressClasses.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.IngressClassSpec": { - "description": "IngressClassSpec provides information about the class of an Ingress.", - "properties": { - "controller": { - "description": "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", - "type": "string" - }, - "parameters": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressList", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.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/io.k8s.api.networking.v1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IngressServiceBackend": { - "description": "IngressServiceBackend references a Kubernetes Service as a Backend.", - "properties": { - "name": { - "description": "Name is the referenced service. The service must exist in the same namespace as the Ingress object.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceBackendPort", - "description": "Port of the referenced service. A port name or port number is required for a IngressServiceBackend." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.networking.v1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "defaultBackend": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressBackend", - "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." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressRule" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressTLS" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicy": { - "description": "NetworkPolicy describes what network traffic is allowed for a set of Pods", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec", - "description": "Specification of the desired behavior for this NetworkPolicy." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.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": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - }, - "type": "array" - }, - "to": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.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": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - }, - "type": "array" - }, - "ports": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicyList": { - "description": "NetworkPolicyList is a list of NetworkPolicy objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicyList", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.NetworkPolicyPeer": { - "description": "NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed", - "properties": { - "ipBlock": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPBlock", - "description": "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be." - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "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." - }, - "podSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "This 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." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicyPort": { - "description": "NetworkPolicyPort describes a port to allow traffic on", - "properties": { - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "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." - }, - "protocol": { - "description": "The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicySpec": { - "description": "NetworkPolicySpec provides the specification of a NetworkPolicy", - "properties": { - "egress": { - "description": "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule" - }, - "type": "array" - }, - "ingress": { - "description": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule" - }, - "type": "array" - }, - "podSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace." - }, - "policyTypes": { - "description": "List of rule types that the NetworkPolicy relates to. Valid options are \"Ingress\", \"Egress\", or \"Ingress,Egress\". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "podSelector" - ], - "type": "object" - }, - "io.k8s.api.networking.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\".", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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. Defaults to ImplementationSpecific.", - "type": "string" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.HTTPIngressPath" - }, - "type": "array" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." - }, - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Specifies the port of the referenced service." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressClass": { - "description": "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassSpec", - "description": "Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressClassList": { - "description": "IngressClassList is a collection of IngressClasses.", - "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" - }, - "items": { - "description": "Items is the list of IngressClasses.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressClassSpec": { - "description": "IngressClassSpec provides information about the class of an Ingress.", - "properties": { - "controller": { - "description": "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", - "type": "string" - }, - "parameters": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.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/io.k8s.api.networking.v1beta1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressRule" - }, - "type": "array" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressTLS" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.node.v1beta1.Overhead": { - "description": "Overhead structure represents the resource overhead associated with running a pod.", - "properties": { - "podFixed": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "PodFixed represents the fixed resource overhead associated with running a pod.", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.node.v1beta1.RuntimeClass": { - "description": "RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md", - "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" - }, - "handler": { - "description": "Handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node \u0026 CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must conform to the DNS Label (RFC 1123) requirements, and is immutable.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "overhead": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.Overhead", - "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.15, and is only honored by servers that enable the PodOverhead feature." - }, - "scheduling": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.Scheduling", - "description": "Scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes." - } - }, - "required": [ - "handler" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.node.v1beta1.RuntimeClassList": { - "description": "RuntimeClassList is a list of RuntimeClass objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "node.k8s.io", - "kind": "RuntimeClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.node.v1beta1.Scheduling": { - "description": "Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.", - "properties": { - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "description": "nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.", - "type": "object" - }, - "tolerations": { - "description": "tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedCSIDriver": { - "description": "AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.", - "properties": { - "name": { - "description": "Name is the registered name of the CSI driver", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedFlexVolume": { - "description": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", - "properties": { - "driver": { - "description": "driver is the name of the Flexvolume driver.", - "type": "string" - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedHostPath": { - "description": "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", - "properties": { - "pathPrefix": { - "description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", - "type": "string" - }, - "readOnly": { - "description": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.Eviction": { - "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/\u003cpod name\u003e/evictions.", - "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" - }, - "deleteOptions": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions", - "description": "DeleteOptions may be provided" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "ObjectMeta describes the pod that is being evicted." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.FSGroupStrategyOptions": { - "description": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.HostPortRange": { - "description": "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "format": "int32", - "type": "integer" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "min", - "max" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.IDRange": { - "description": "IDRange provides a min/max of an allowed range of IDs.", - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "format": "int64", - "type": "integer" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "min", - "max" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudget": { - "description": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec", - "description": "Specification of the desired behavior of the PodDisruptionBudget." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus", - "description": "Most recently observed status of the PodDisruptionBudget." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetList": { - "description": "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudgetList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec": { - "description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", - "properties": { - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\"." - }, - "minAvailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\"." - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Label query over pods whose evictions are managed by the disruption budget." - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus": { - "description": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.", - "properties": { - "currentHealthy": { - "description": "current number of healthy pods", - "format": "int32", - "type": "integer" - }, - "desiredHealthy": { - "description": "minimum desired number of healthy pods", - "format": "int32", - "type": "integer" - }, - "disruptedPods": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "description": "DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.", - "type": "object" - }, - "disruptionsAllowed": { - "description": "Number of pod disruptions that are currently allowed.", - "format": "int32", - "type": "integer" - }, - "expectedPods": { - "description": "total number of pods counted by this disruption budget", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "disruptionsAllowed", - "currentHealthy", - "desiredHealthy", - "expectedPods" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicy": { - "description": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicySpec", - "description": "spec defines the policy enforced." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicyList": { - "description": "PodSecurityPolicyList is a list of PodSecurityPolicy objects.", - "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" - }, - "items": { - "description": "items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicyList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicySpec": { - "description": "PodSecurityPolicySpec defines the policy enforced.", - "properties": { - "allowPrivilegeEscalation": { - "description": "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - "type": "boolean" - }, - "allowedCSIDrivers": { - "description": "AllowedCSIDrivers is an allowlist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes. This is a beta field, and is only honored if the API server enables the CSIInlineVolume feature gate.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedCSIDriver" - }, - "type": "array" - }, - "allowedCapabilities": { - "description": "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedFlexVolumes": { - "description": "allowedFlexVolumes is an allowlist of Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedFlexVolume" - }, - "type": "array" - }, - "allowedHostPaths": { - "description": "allowedHostPaths is an allowlist of host paths. Empty indicates that all host paths may be used.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedHostPath" - }, - "type": "array" - }, - "allowedProcMountTypes": { - "description": "AllowedProcMountTypes is an allowlist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedUnsafeSysctls": { - "description": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to allowlist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultAddCapabilities": { - "description": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultAllowPrivilegeEscalation": { - "description": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - "type": "boolean" - }, - "forbiddenSysctls": { - "description": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.", - "items": { - "type": "string" - }, - "type": "array" - }, - "fsGroup": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.FSGroupStrategyOptions", - "description": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext." - }, - "hostIPC": { - "description": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", - "type": "boolean" - }, - "hostNetwork": { - "description": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", - "type": "boolean" - }, - "hostPID": { - "description": "hostPID determines if the policy allows the use of HostPID in the pod spec.", - "type": "boolean" - }, - "hostPorts": { - "description": "hostPorts determines which host port ranges are allowed to be exposed.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.HostPortRange" - }, - "type": "array" - }, - "privileged": { - "description": "privileged determines if a pod can request to be run as privileged.", - "type": "boolean" - }, - "readOnlyRootFilesystem": { - "description": "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - "type": "boolean" - }, - "requiredDropCapabilities": { - "description": "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - "items": { - "type": "string" - }, - "type": "array" - }, - "runAsGroup": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions", - "description": "RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled." - }, - "runAsUser": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions", - "description": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set." - }, - "runtimeClass": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions", - "description": "runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod. If this field is omitted, the pod's runtimeClassName field is unrestricted. Enforcement of this field depends on the RuntimeClass feature gate being enabled." - }, - "seLinux": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SELinuxStrategyOptions", - "description": "seLinux is the strategy that will dictate the allowable labels that may be set." - }, - "supplementalGroups": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions", - "description": "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext." - }, - "volumes": { - "description": "volumes is an allowlist of volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "seLinux", - "runAsUser", - "supplementalGroups", - "fsGroup" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions": { - "description": "RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsGroup values that may be set.", - "type": "string" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions": { - "description": "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", - "type": "string" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions": { - "description": "RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.", - "properties": { - "allowedRuntimeClassNames": { - "description": "allowedRuntimeClassNames is an allowlist of RuntimeClass names that may be specified on a pod. A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultRuntimeClassName": { - "description": "defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.", - "type": "string" - } - }, - "required": [ - "allowedRuntimeClassNames" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.SELinuxStrategyOptions": { - "description": "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "rule": { - "description": "rule is the strategy that will dictate the allowable labels that may be set.", - "type": "string" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", - "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions": { - "description": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - "properties": { - "aggregationRule": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.AggregationRule", - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.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.", - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings", - "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" - }, - "items": { - "description": "Items is a list of RoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleList": { - "description": "RoleList is a collection of Roles", - "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" - }, - "items": { - "description": "Items is a list of Roles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "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" - } - }, - "required": [ - "apiGroup", - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.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.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.", - "properties": { - "aggregationRule": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.AggregationRule", - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.22.", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.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.", - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.", - "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" - }, - "items": { - "description": "Items is a list of RoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleList": { - "description": "RoleList is a collection of Roles Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.", - "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" - }, - "items": { - "description": "Items is a list of Roles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "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" - } - }, - "required": [ - "apiGroup", - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.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.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.scheduling.v1.PriorityClass": { - "description": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "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" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", - "type": "string" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "value" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - ] - }, - "io.k8s.api.scheduling.v1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "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" - }, - "items": { - "description": "items is the list of PriorityClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClass": { - "description": "DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "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" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", - "type": "string" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "value" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "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" - }, - "items": { - "description": "items is the list of PriorityClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriver": { - "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverSpec", - "description": "Specification of the CSI Driver." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriverList": { - "description": "CSIDriverList is a collection of CSIDriver objects.", - "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" - }, - "items": { - "description": "items is the list of CSIDriver", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriverList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriverSpec": { - "description": "CSIDriverSpec is the specification of a CSIDriver.", - "properties": { - "attachRequired": { - "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "type": "boolean" - }, - "fsGroupPolicy": { - "description": "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.", - "type": "string" - }, - "podInfoOnMount": { - "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "type": "boolean" - }, - "storageCapacity": { - "description": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.", - "type": "boolean" - }, - "volumeLifecycleModes": { - "description": "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.CSINode": { - "description": "CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata.name must be the Kubernetes node name." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeSpec", - "description": "spec is the specification of CSINode" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSINodeDriver": { - "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - "properties": { - "allocatable": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeNodeResources", - "description": "allocatable represents the volume resources of a node that are available for scheduling. This field is beta." - }, - "name": { - "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - "type": "string" - }, - "nodeID": { - "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - "type": "string" - }, - "topologyKeys": { - "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "nodeID" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.CSINodeList": { - "description": "CSINodeList is a collection of CSINode objects.", - "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" - }, - "items": { - "description": "items is the list of CSINode", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINodeList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSINodeSpec": { - "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - "properties": { - "drivers": { - "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeDriver" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "required": [ - "drivers" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "allowedTopologies": { - "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "items": { - "type": "string" - }, - "type": "array" - }, - "parameters": { - "additionalProperties": { - "type": "string" - }, - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object" - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "required": [ - "provisioner" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "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" - }, - "items": { - "description": "Items is the list of StorageClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSpec", - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentStatus", - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "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" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "inlineVolumeSpec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." - }, - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSource", - "description": "Source represents the volume that should be attached." - } - }, - "required": [ - "attacher", - "source", - "nodeName" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "properties": { - "attachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object" - }, - "detachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." - } - }, - "required": [ - "attached" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time the error was encountered." - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeNodeResources": { - "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - "properties": { - "count": { - "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSIDriver": { - "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. CSI drivers do not need to create the CSIDriver object directly. Instead they may use the cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically creates a CSIDriver object representing the driver. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverSpec", - "description": "Specification of the CSI Driver." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSIDriverList": { - "description": "CSIDriverList is a collection of CSIDriver objects.", - "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" - }, - "items": { - "description": "items is the list of CSIDriver", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriverList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSIDriverSpec": { - "description": "CSIDriverSpec is the specification of a CSIDriver.", - "properties": { - "attachRequired": { - "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "type": "boolean" - }, - "fsGroupPolicy": { - "description": "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.", - "type": "string" - }, - "podInfoOnMount": { - "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "type": "boolean" - }, - "storageCapacity": { - "description": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.", - "type": "boolean" - }, - "volumeLifecycleModes": { - "description": "VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSINode": { - "description": "DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode. See the release notes for more information. CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata.name must be the Kubernetes node name." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeSpec", - "description": "spec is the specification of CSINode" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSINodeDriver": { - "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - "properties": { - "allocatable": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeNodeResources", - "description": "allocatable represents the volume resources of a node that are available for scheduling." - }, - "name": { - "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - "type": "string" - }, - "nodeID": { - "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - "type": "string" - }, - "topologyKeys": { - "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "nodeID" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSINodeList": { - "description": "CSINodeList is a collection of CSINode objects.", - "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" - }, - "items": { - "description": "items is the list of CSINode", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINodeList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSINodeSpec": { - "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - "properties": { - "drivers": { - "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeDriver" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "required": [ - "drivers" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "allowedTopologies": { - "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "items": { - "type": "string" - }, - "type": "array" - }, - "parameters": { - "additionalProperties": { - "type": "string" - }, - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object" - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "required": [ - "provisioner" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "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" - }, - "items": { - "description": "Items is the list of StorageClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSpec", - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentStatus", - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "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" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "inlineVolumeSpec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." - }, - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSource", - "description": "Source represents the volume that should be attached." - } - }, - "required": [ - "attacher", - "source", - "nodeName" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "properties": { - "attachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object" - }, - "detachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." - } - }, - "required": [ - "attached" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time the error was encountered." - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeNodeResources": { - "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - "properties": { - "count": { - "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is nil, then the supported number of volumes on this node is unbounded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition": { - "description": "CustomResourceColumnDefinition specifies a column for server side printing.", - "properties": { - "description": { - "description": "description is a human readable description of this column.", - "type": "string" - }, - "format": { - "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - }, - "jsonPath": { - "description": "jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - "type": "string" - }, - "name": { - "description": "name is a human readable name for the column.", - "type": "string" - }, - "priority": { - "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - } - }, - "required": [ - "name", - "type", - "jsonPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion": { - "description": "CustomResourceConversion describes how to convert different versions of a CR.", - "properties": { - "strategy": { - "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.", - "type": "string" - }, - "webhook": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion", - "description": "webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`." - } - }, - "required": [ - "strategy" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition": { - "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec", - "description": "spec describes how the user wants the resources to appear" - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus", - "description": "status indicates the actual state of the CustomResourceDefinition" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition": { - "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime last time the condition transitioned from one status to another." - }, - "message": { - "description": "message is a human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList": { - "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - "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" - }, - "items": { - "description": "items list individual CustomResourceDefinition objects", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinitionList", - "version": "v1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames": { - "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - "properties": { - "categories": { - "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - "type": "string" - }, - "listKind": { - "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - "type": "string" - }, - "plural": { - "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", - "type": "string" - }, - "shortNames": { - "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singular": { - "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - "type": "string" - } - }, - "required": [ - "plural", - "kind" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec": { - "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - "properties": { - "conversion": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion", - "description": "conversion defines conversion settings for the CRD." - }, - "group": { - "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", - "type": "string" - }, - "names": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", - "description": "names specify the resource and kind names for the custom resource." - }, - "preserveUnknownFields": { - "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting `x-preserve-unknown-fields` to true in `spec.versions[*].schema.openAPIV3Schema`. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - "type": "boolean" - }, - "scope": { - "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.", - "type": "string" - }, - "versions": { - "description": "versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion" - }, - "type": "array" - } - }, - "required": [ - "group", - "names", - "scope", - "versions" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus": { - "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - "properties": { - "acceptedNames": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", - "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." - }, - "conditions": { - "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition" - }, - "type": "array" - }, - "storedVersions": { - "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion": { - "description": "CustomResourceDefinitionVersion describes a version for CRD.", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "deprecated": { - "description": "deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.", - "type": "boolean" - }, - "deprecationWarning": { - "description": "deprecationWarning overrides the default warning returned to API clients. May only be set when `deprecated` is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists.", - "type": "string" - }, - "name": { - "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", - "type": "string" - }, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation", - "description": "schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource." - }, - "served": { - "description": "served is a flag enabling/disabling this version from being served via REST APIs", - "type": "boolean" - }, - "storage": { - "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - "type": "boolean" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources", - "description": "subresources specify what subresources this version of the defined custom resource have." - } - }, - "required": [ - "name", - "served", - "storage" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale": { - "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - "properties": { - "labelSelectorPath": { - "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - "type": "string" - }, - "specReplicasPath": { - "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - "type": "string" - }, - "statusReplicasPath": { - "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - "type": "string" - } - }, - "required": [ - "specReplicasPath", - "statusReplicasPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus": { - "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources": { - "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - "properties": { - "scale": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale", - "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus", - "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation": { - "description": "CustomResourceValidation is a list of validation methods for CustomResources.", - "properties": { - "openAPIV3Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps", - "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation": { - "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps": { - "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - "properties": { - "$ref": { - "type": "string" - }, - "$schema": { - "type": "string" - }, - "additionalItems": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" - }, - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" - }, - "allOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "anyOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "default": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON", - "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false." - }, - "definitions": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "dependencies": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray" - }, - "type": "object" - }, - "description": { - "type": "string" - }, - "enum": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" - }, - "type": "array" - }, - "example": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" - }, - "exclusiveMaximum": { - "type": "boolean" - }, - "exclusiveMinimum": { - "type": "boolean" - }, - "externalDocs": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation" - }, - "format": { - "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - "type": "string" - }, - "id": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray" - }, - "maxItems": { - "format": "int64", - "type": "integer" - }, - "maxLength": { - "format": "int64", - "type": "integer" - }, - "maxProperties": { - "format": "int64", - "type": "integer" - }, - "maximum": { - "format": "double", - "type": "number" - }, - "minItems": { - "format": "int64", - "type": "integer" - }, - "minLength": { - "format": "int64", - "type": "integer" - }, - "minProperties": { - "format": "int64", - "type": "integer" - }, - "minimum": { - "format": "double", - "type": "number" - }, - "multipleOf": { - "format": "double", - "type": "number" - }, - "not": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "nullable": { - "type": "boolean" - }, - "oneOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "patternProperties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "properties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uniqueItems": { - "type": "boolean" - }, - "x-kubernetes-embedded-resource": { - "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - "type": "boolean" - }, - "x-kubernetes-int-or-string": { - "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - "type": "boolean" - }, - "x-kubernetes-list-map-keys": { - "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - "items": { - "type": "string" - }, - "type": "array" - }, - "x-kubernetes-list-type": { - "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - "type": "string" - }, - "x-kubernetes-map-type": { - "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - "type": "string" - }, - "x-kubernetes-preserve-unknown-fields": { - "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "name is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "namespace is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "path is an optional URL path at which the webhook will be contacted.", - "type": "string" - }, - "port": { - "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - "properties": { - "caBundle": { - "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference", - "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion": { - "description": "WebhookConversion describes how to call a conversion webhook", - "properties": { - "clientConfig": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig", - "description": "clientConfig is the instructions for how to call the webhook if strategy is `Webhook`." - }, - "conversionReviewVersions": { - "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "conversionReviewVersions" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition": { - "description": "CustomResourceColumnDefinition specifies a column for server side printing.", - "properties": { - "JSONPath": { - "description": "JSONPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - "type": "string" - }, - "description": { - "description": "description is a human readable description of this column.", - "type": "string" - }, - "format": { - "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - }, - "name": { - "description": "name is a human readable name for the column.", - "type": "string" - }, - "priority": { - "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - } - }, - "required": [ - "name", - "type", - "JSONPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion": { - "description": "CustomResourceConversion describes how to convert different versions of a CR.", - "properties": { - "conversionReviewVersions": { - "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail. Defaults to `[\"v1beta1\"]`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "strategy": { - "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhookClientConfig to be set.", - "type": "string" - }, - "webhookClientConfig": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig", - "description": "webhookClientConfig is the instructions for how to call the webhook if strategy is `Webhook`. Required when `strategy` is set to `Webhook`." - } - }, - "required": [ - "strategy" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition": { - "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e. Deprecated in v1.16, planned for removal in v1.22. Use apiextensions.k8s.io/v1 CustomResourceDefinition instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec", - "description": "spec describes how the user wants the resources to appear" - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus", - "description": "status indicates the actual state of the CustomResourceDefinition" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition": { - "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime last time the condition transitioned from one status to another." - }, - "message": { - "description": "message is a human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList": { - "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - "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" - }, - "items": { - "description": "items list individual CustomResourceDefinition objects", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinitionList", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames": { - "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - "properties": { - "categories": { - "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - "type": "string" - }, - "listKind": { - "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - "type": "string" - }, - "plural": { - "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", - "type": "string" - }, - "shortNames": { - "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singular": { - "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - "type": "string" - } - }, - "required": [ - "plural", - "kind" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec": { - "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If present, this field configures columns for all versions. Top-level and per-version columns are mutually exclusive. If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "conversion": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion", - "description": "conversion defines conversion settings for the CRD." - }, - "group": { - "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", - "type": "string" - }, - "names": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", - "description": "names specify the resource and kind names for the custom resource." - }, - "preserveUnknownFields": { - "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. If false, schemas must be defined for all versions. Defaults to true in v1beta for backwards compatibility. Deprecated: will be required to be false in v1. Preservation of unknown fields can be specified in the validation schema using the `x-kubernetes-preserve-unknown-fields: true` extension. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - "type": "boolean" - }, - "scope": { - "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`.", - "type": "string" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", - "description": "subresources specify what subresources the defined custom resource has. If present, this field configures subresources for all versions. Top-level and per-version subresources are mutually exclusive." - }, - "validation": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", - "description": "validation describes the schema used for validation and pruning of the custom resource. If present, this validation schema is used to validate all versions. Top-level and per-version schemas are mutually exclusive." - }, - "version": { - "description": "version is the API version of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/...`. Must match the name of the first item in the `versions` list if `version` and `versions` are both specified. Optional if `versions` is specified. Deprecated: use `versions` instead.", - "type": "string" - }, - "versions": { - "description": "versions is the list of all API versions of the defined custom resource. Optional if `version` is specified. The name of the first item in the `versions` list must match the `version` field if `version` and `versions` are both specified. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion" - }, - "type": "array" - } - }, - "required": [ - "group", - "names", - "scope" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus": { - "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - "properties": { - "acceptedNames": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", - "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." - }, - "conditions": { - "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition" - }, - "type": "array" - }, - "storedVersions": { - "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion": { - "description": "CustomResourceDefinitionVersion describes a version for CRD.", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. Top-level and per-version columns are mutually exclusive. Per-version columns must not all be set to identical values (top-level columns should be used instead). If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "deprecated": { - "description": "deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.", - "type": "boolean" - }, - "deprecationWarning": { - "description": "deprecationWarning overrides the default warning returned to API clients. May only be set when `deprecated` is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists.", - "type": "string" - }, - "name": { - "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", - "type": "string" - }, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", - "description": "schema describes the schema used for validation and pruning of this version of the custom resource. Top-level and per-version schemas are mutually exclusive. Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)." - }, - "served": { - "description": "served is a flag enabling/disabling this version from being served via REST APIs", - "type": "boolean" - }, - "storage": { - "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - "type": "boolean" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", - "description": "subresources specify what subresources this version of the defined custom resource have. Top-level and per-version subresources are mutually exclusive. Per-version subresources must not all be set to identical values (top-level subresources should be used instead)." - } - }, - "required": [ - "name", - "served", - "storage" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale": { - "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - "properties": { - "labelSelectorPath": { - "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - "type": "string" - }, - "specReplicasPath": { - "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - "type": "string" - }, - "statusReplicasPath": { - "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - "type": "string" - } - }, - "required": [ - "specReplicasPath", - "statusReplicasPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus": { - "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources": { - "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - "properties": { - "scale": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale", - "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus", - "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation": { - "description": "CustomResourceValidation is a list of validation methods for CustomResources.", - "properties": { - "openAPIV3Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps", - "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation": { - "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps": { - "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - "properties": { - "$ref": { - "type": "string" - }, - "$schema": { - "type": "string" - }, - "additionalItems": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "allOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "anyOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "default": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON", - "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. CustomResourceDefinitions with defaults must be created using the v1 (or newer) CustomResourceDefinition API." - }, - "definitions": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "dependencies": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray" - }, - "type": "object" - }, - "description": { - "type": "string" - }, - "enum": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "type": "array" - }, - "example": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "exclusiveMaximum": { - "type": "boolean" - }, - "exclusiveMinimum": { - "type": "boolean" - }, - "externalDocs": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation" - }, - "format": { - "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - "type": "string" - }, - "id": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray" - }, - "maxItems": { - "format": "int64", - "type": "integer" - }, - "maxLength": { - "format": "int64", - "type": "integer" - }, - "maxProperties": { - "format": "int64", - "type": "integer" - }, - "maximum": { - "format": "double", - "type": "number" - }, - "minItems": { - "format": "int64", - "type": "integer" - }, - "minLength": { - "format": "int64", - "type": "integer" - }, - "minProperties": { - "format": "int64", - "type": "integer" - }, - "minimum": { - "format": "double", - "type": "number" - }, - "multipleOf": { - "format": "double", - "type": "number" - }, - "not": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "nullable": { - "type": "boolean" - }, - "oneOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "patternProperties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "properties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uniqueItems": { - "type": "boolean" - }, - "x-kubernetes-embedded-resource": { - "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - "type": "boolean" - }, - "x-kubernetes-int-or-string": { - "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - "type": "boolean" - }, - "x-kubernetes-list-map-keys": { - "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - "items": { - "type": "string" - }, - "type": "array" - }, - "x-kubernetes-list-type": { - "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - "type": "string" - }, - "x-kubernetes-map-type": { - "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - "type": "string" - }, - "x-kubernetes-preserve-unknown-fields": { - "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "name is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "namespace is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "path is an optional URL path at which the webhook will be contacted.", - "type": "string" - }, - "port": { - "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - "properties": { - "caBundle": { - "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference", - "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.api.resource.Quantity": { - "description": "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n (Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\u003cdigit\u003e ::= 0 | 1 | ... | 9 \u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e \u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e \u003csign\u003e ::= \"+\" | \"-\" \u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e \u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e \u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup": { - "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", - "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" - }, - "name": { - "description": "name is the name of the group.", - "type": "string" - }, - "preferredVersion": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery", - "description": "preferredVersion is the version preferred by the API server, which probably is the storage version." - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - }, - "type": "array" - }, - "versions": { - "description": "versions are the versions supported in this group.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" - }, - "type": "array" - } - }, - "required": [ - "name", - "versions" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroup", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList": { - "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", - "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" - }, - "groups": { - "description": "groups is a list of APIGroup.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - }, - "type": "array" - }, - "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" - } - }, - "required": [ - "groups" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroupList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": { - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "properties": { - "categories": { - "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')", - "items": { - "type": "string" - }, - "type": "array" - }, - "group": { - "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".", - "type": "string" - }, - "kind": { - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')", - "type": "string" - }, - "name": { - "description": "name is the plural name of the resource.", - "type": "string" - }, - "namespaced": { - "description": "namespaced indicates if a resource is namespaced or not.", - "type": "boolean" - }, - "shortNames": { - "description": "shortNames is a list of suggested short names of the resource.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singularName": { - "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", - "type": "string" - }, - "storageVersionHash": { - "description": "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.", - "type": "string" - }, - "verbs": { - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)", - "items": { - "type": "string" - }, - "type": "array" - }, - "version": { - "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".", - "type": "string" - } - }, - "required": [ - "name", - "singularName", - "namespaced", - "kind", - "verbs" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList": { - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "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" - }, - "groupVersion": { - "description": "groupVersion is the group and version this APIResourceList is for.", - "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" - }, - "resources": { - "description": "resources contains the name of the resources and if they are namespaced.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" - }, - "type": "array" - } - }, - "required": [ - "groupVersion", - "resources" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIResourceList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions": { - "description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", - "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" - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - }, - "type": "array" - }, - "versions": { - "description": "versions are the api versions that are available.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "versions", - "serverAddressByClientCIDRs" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIVersions", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions": { - "description": "DeleteOptions may be provided when deleting an API object.", - "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" - }, - "dryRun": { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "items": { - "type": "string" - }, - "type": "array" - }, - "gracePeriodSeconds": { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "format": "int64", - "type": "integer" - }, - "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" - }, - "orphanDependents": { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "type": "boolean" - }, - "preconditions": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." - }, - "propagationPolicy": { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta2" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v2beta1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v2beta2" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "certificates.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "coordination.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "coordination.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "discovery.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "discovery.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "events.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "flowcontrol.apiserver.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "networking.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "node.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "node.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "policy", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": { - "description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:\u003cname\u003e', where \u003cname\u003e is the name of a field in a struct, or key in a map 'v:\u003cvalue\u003e', where \u003cvalue\u003e is the exact json formatted value of a list item 'i:\u003cindex\u003e', where \u003cindex\u003e is position of a item in a list 'k:\u003ckeys\u003e', where \u003ckeys\u003e is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff", - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery": { - "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", - "properties": { - "groupVersion": { - "description": "groupVersion specifies the API group and version in the form \"group/version\"", - "type": "string" - }, - "version": { - "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.", - "type": "string" - } - }, - "required": [ - "groupVersion", - "version" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "properties": { - "key": { - "description": "key is the label key that the selector applies to.", - "type": "string", - "x-kubernetes-patch-merge-key": "key", - "x-kubernetes-patch-strategy": "merge" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "operator" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": { - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "continue": { - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", - "type": "string" - }, - "remainingItemCount": { - "description": "remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.", - "format": "int64", - "type": "integer" - }, - "resourceVersion": { - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - "type": "string" - }, - "selfLink": { - "description": "selfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1", - "description": "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type." - }, - "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" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": { - "description": "MicroTime is version of Time with microsecond level precision.", - "format": "date-time", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "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: http://kubernetes.io/docs/user-guide/annotations", - "type": "object" - }, - "clusterName": { - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", - "type": "string" - }, - "creationTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "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" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "deletionTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "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" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-patch-strategy": "merge" - }, - "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 NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\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.", - "format": "int64", - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "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: http://kubernetes.io/docs/user-guide/labels", - "type": "object" - }, - "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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry" - }, - "type": "array" - }, - "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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "uid", - "x-kubernetes-patch-strategy": "merge" - }, - "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": "SelfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - "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: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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.", - "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. 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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "uid": { - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Patch": { - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions": { - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "resourceVersion": { - "description": "Specifies the target ResourceVersion", - "type": "string" - }, - "uid": { - "description": "Specifies the target UID.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR": { - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "properties": { - "clientCIDR": { - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.", - "type": "string" - }, - "serverAddress": { - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", - "type": "string" - } - }, - "required": [ - "clientCIDR", - "serverAddress" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Status": { - "description": "Status is a return value for calls that don't return other objects.", - "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" - }, - "code": { - "description": "Suggested HTTP return code for this status, 0 if not set.", - "format": "int32", - "type": "integer" - }, - "details": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." - }, - "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" - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - }, - "reason": { - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", - "type": "string" - }, - "status": { - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Status", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause": { - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "field": { - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", - "type": "string" - }, - "message": { - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", - "type": "string" - }, - "reason": { - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails": { - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "causes": { - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" - }, - "type": "array" - }, - "group": { - "description": "The group attribute of the resource associated with the status StatusReason.", - "type": "string" - }, - "kind": { - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", - "type": "string" - }, - "retryAfterSeconds": { - "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", - "format": "int32", - "type": "integer" - }, - "uid": { - "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { - "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", - "format": "date-time", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent": { - "description": "Event represents a single event to a watched resource.", - "properties": { - "object": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", - "description": "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context." - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "object" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta2" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v2beta1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v2beta2" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "certificates.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "coordination.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "coordination.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "discovery.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "discovery.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "events.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "flowcontrol.apiserver.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "networking.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "node.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "node.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "policy", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.runtime.RawExtension": { - "description": "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.Object `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// External package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// On the wire, the JSON will look something like this: {\n\t\"kind\":\"MyAPIObject\",\n\t\"apiVersion\":\"v1\",\n\t\"myPlugin\": {\n\t\t\"kind\":\"PluginA\",\n\t\t\"aOption\":\"foo\",\n\t},\n}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)", - "type": "object" - }, - "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { - "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.", - "format": "int-or-string", - "type": "string" - }, - "io.k8s.apimachinery.pkg.version.Info": { - "description": "Info contains versioning information. how we'll want to distribute that information.", - "properties": { - "buildDate": { - "type": "string" - }, - "compiler": { - "type": "string" - }, - "gitCommit": { - "type": "string" - }, - "gitTreeState": { - "type": "string" - }, - "gitVersion": { - "type": "string" - }, - "goVersion": { - "type": "string" - }, - "major": { - "type": "string" - }, - "minor": { - "type": "string" - }, - "platform": { - "type": "string" - } - }, - "required": [ - "major", - "minor", - "gitVersion", - "gitCommit", - "gitTreeState", - "buildDate", - "goVersion", - "compiler", - "platform" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec", - "description": "Spec contains information for locating and communicating with a server" - }, - "status": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus", - "description": "Status contains derived information about an API server" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition": { - "description": "APIServiceCondition describes the state of an APIService at a particular point", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "format": "int32", - "type": "integer" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference", - "description": "Service is a reference to the service for this API server. It must communicate on port 443. If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "groupPriorityMinimum", - "versionPriority" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "type" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec", - "description": "Spec contains information for locating and communicating with a server" - }, - "status": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus", - "description": "Status contains derived information about an API server" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition": { - "description": "APIServiceCondition describes the state of an APIService at a particular point", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "format": "int32", - "type": "integer" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference", - "description": "Service is a reference to the service for this API server. It must communicate on port 443. If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "groupPriorityMinimum", - "versionPriority" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "type" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - } - }, - "info": { - "title": "Kubernetes", - "version": "v1.19.0" - }, - "paths": { - "/api/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available API versions", - "operationId": "getCoreAPIVersions", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core" - ] - } - }, - "/api/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoreV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ] - } - }, - "/api/v1/componentstatuses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list objects of kind ComponentStatus", - "operationId": "listCoreV1ComponentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatusList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/componentstatuses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ComponentStatus", - "operationId": "readCoreV1ComponentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ComponentStatus", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ] - }, - "/api/v1/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ConfigMap", - "operationId": "listCoreV1ConfigMapForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Endpoints", - "operationId": "listCoreV1EndpointsForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listCoreV1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind LimitRange", - "operationId": "listCoreV1LimitRangeForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/namespaces": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Namespace", - "operationId": "listCoreV1Namespace", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Namespace", - "operationId": "createCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/bindings": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Binding", - "operationId": "createCoreV1NamespacedBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/configmaps": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ConfigMap", - "operationId": "deleteCoreV1CollectionNamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ConfigMap", - "operationId": "listCoreV1NamespacedConfigMap", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ConfigMap", - "operationId": "createCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/configmaps/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ConfigMap", - "operationId": "deleteCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ConfigMap", - "operationId": "readCoreV1NamespacedConfigMap", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ConfigMap", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ConfigMap", - "operationId": "patchCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ConfigMap", - "operationId": "replaceCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/endpoints": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Endpoints", - "operationId": "deleteCoreV1CollectionNamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Endpoints", - "operationId": "listCoreV1NamespacedEndpoints", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create Endpoints", - "operationId": "createCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/endpoints/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete Endpoints", - "operationId": "deleteCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Endpoints", - "operationId": "readCoreV1NamespacedEndpoints", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Endpoints", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Endpoints", - "operationId": "patchCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Endpoints", - "operationId": "replaceCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteCoreV1CollectionNamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listCoreV1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readCoreV1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/limitranges": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of LimitRange", - "operationId": "deleteCoreV1CollectionNamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind LimitRange", - "operationId": "listCoreV1NamespacedLimitRange", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LimitRange", - "operationId": "createCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/limitranges/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a LimitRange", - "operationId": "deleteCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified LimitRange", - "operationId": "readCoreV1NamespacedLimitRange", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the LimitRange", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified LimitRange", - "operationId": "patchCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified LimitRange", - "operationId": "replaceCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PersistentVolumeClaim", - "operationId": "deleteCoreV1CollectionNamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolumeClaim", - "operationId": "listCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PersistentVolumeClaim", - "operationId": "createCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PersistentVolumeClaim", - "operationId": "deleteCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PersistentVolumeClaim", - "operationId": "readCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PersistentVolumeClaim", - "operationId": "patchCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PersistentVolumeClaim", - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PersistentVolumeClaim", - "operationId": "readCoreV1NamespacedPersistentVolumeClaimStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PersistentVolumeClaim", - "operationId": "patchCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PersistentVolumeClaim", - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Pod", - "operationId": "deleteCoreV1CollectionNamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Pod", - "operationId": "listCoreV1NamespacedPod", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Pod", - "operationId": "createCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Pod", - "operationId": "deleteCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Pod", - "operationId": "readCoreV1NamespacedPod", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Pod", - "operationId": "patchCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Pod", - "operationId": "replaceCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/attach": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to attach of Pod", - "operationId": "connectCoreV1GetNamespacedPodAttach", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodAttachOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the PodAttachOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", - "in": "query", - "name": "stderr", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", - "in": "query", - "name": "stdin", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", - "in": "query", - "name": "stdout", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", - "in": "query", - "name": "tty", - "type": "boolean", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to attach of Pod", - "operationId": "connectCoreV1PostNamespacedPodAttach", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodAttachOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/binding": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Binding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create binding of a Pod", - "operationId": "createCoreV1NamespacedPodBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/eviction": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Eviction", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create eviction of a Pod", - "operationId": "createCoreV1NamespacedPodEviction", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/exec": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to exec of Pod", - "operationId": "connectCoreV1GetNamespacedPodExec", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodExecOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "Command is the remote command to execute. argv array. Not executed within a shell.", - "in": "query", - "name": "command", - "type": "string", - "uniqueItems": true - }, - { - "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the PodExecOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Redirect the standard error stream of the pod for this call. Defaults to true.", - "in": "query", - "name": "stderr", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", - "in": "query", - "name": "stdin", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Redirect the standard output stream of the pod for this call. Defaults to true.", - "in": "query", - "name": "stdout", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", - "in": "query", - "name": "tty", - "type": "boolean", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to exec of Pod", - "operationId": "connectCoreV1PostNamespacedPodExec", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodExecOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/log": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read log of the specified Pod", - "operationId": "readCoreV1NamespacedPodLog", - "produces": [ - "text/plain", - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "The container for which to stream logs. Defaults to only container if there is one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "Follow the log stream of the pod. Defaults to false.", - "in": "query", - "name": "follow", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).", - "in": "query", - "name": "insecureSkipTLSVerifyBackend", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", - "in": "query", - "name": "limitBytes", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "Return previous terminated container logs. Defaults to false.", - "in": "query", - "name": "previous", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "in": "query", - "name": "sinceSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", - "in": "query", - "name": "tailLines", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", - "in": "query", - "name": "timestamps", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/portforward": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to portforward of Pod", - "operationId": "connectCoreV1GetNamespacedPodPortforward", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodPortForwardOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodPortForwardOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "List of ports to forward Required when using WebSockets", - "in": "query", - "name": "ports", - "type": "integer", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to portforward of Pod", - "operationId": "connectCoreV1PostNamespacedPodPortforward", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodPortForwardOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Pod", - "operationId": "connectCoreV1DeleteNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Pod", - "operationId": "connectCoreV1GetNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Pod", - "operationId": "connectCoreV1HeadNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Pod", - "operationId": "connectCoreV1OptionsNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to pod.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Pod", - "operationId": "connectCoreV1PatchNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Pod", - "operationId": "connectCoreV1PostNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Pod", - "operationId": "connectCoreV1PutNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Pod", - "operationId": "connectCoreV1DeleteNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Pod", - "operationId": "connectCoreV1GetNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Pod", - "operationId": "connectCoreV1HeadNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Pod", - "operationId": "connectCoreV1OptionsNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to pod.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Pod", - "operationId": "connectCoreV1PatchNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Pod", - "operationId": "connectCoreV1PostNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Pod", - "operationId": "connectCoreV1PutNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Pod", - "operationId": "readCoreV1NamespacedPodStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Pod", - "operationId": "patchCoreV1NamespacedPodStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Pod", - "operationId": "replaceCoreV1NamespacedPodStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/podtemplates": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodTemplate", - "operationId": "deleteCoreV1CollectionNamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodTemplate", - "operationId": "listCoreV1NamespacedPodTemplate", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodTemplate", - "operationId": "createCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/podtemplates/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodTemplate", - "operationId": "deleteCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodTemplate", - "operationId": "readCoreV1NamespacedPodTemplate", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodTemplate", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodTemplate", - "operationId": "patchCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodTemplate", - "operationId": "replaceCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ReplicationController", - "operationId": "deleteCoreV1CollectionNamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicationController", - "operationId": "listCoreV1NamespacedReplicationController", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ReplicationController", - "operationId": "createCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ReplicationController", - "operationId": "deleteCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationController", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationControllerScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationControllerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ResourceQuota", - "operationId": "deleteCoreV1CollectionNamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ResourceQuota", - "operationId": "listCoreV1NamespacedResourceQuota", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ResourceQuota", - "operationId": "createCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ResourceQuota", - "operationId": "deleteCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ResourceQuota", - "operationId": "readCoreV1NamespacedResourceQuota", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ResourceQuota", - "operationId": "patchCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ResourceQuota", - "operationId": "replaceCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ResourceQuota", - "operationId": "readCoreV1NamespacedResourceQuotaStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ResourceQuota", - "operationId": "patchCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ResourceQuota", - "operationId": "replaceCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/secrets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Secret", - "operationId": "deleteCoreV1CollectionNamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Secret", - "operationId": "listCoreV1NamespacedSecret", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Secret", - "operationId": "createCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/secrets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Secret", - "operationId": "deleteCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Secret", - "operationId": "readCoreV1NamespacedSecret", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Secret", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Secret", - "operationId": "patchCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Secret", - "operationId": "replaceCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/serviceaccounts": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ServiceAccount", - "operationId": "deleteCoreV1CollectionNamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ServiceAccount", - "operationId": "listCoreV1NamespacedServiceAccount", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ServiceAccount", - "operationId": "createCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/serviceaccounts/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ServiceAccount", - "operationId": "deleteCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ServiceAccount", - "operationId": "readCoreV1NamespacedServiceAccount", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceAccount", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ServiceAccount", - "operationId": "patchCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ServiceAccount", - "operationId": "replaceCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Service", - "operationId": "listCoreV1NamespacedService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Service", - "operationId": "createCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Service", - "operationId": "deleteCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Service", - "operationId": "readCoreV1NamespacedService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Service", - "operationId": "patchCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Service", - "operationId": "replaceCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Service", - "operationId": "connectCoreV1DeleteNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Service", - "operationId": "connectCoreV1GetNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Service", - "operationId": "connectCoreV1HeadNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Service", - "operationId": "connectCoreV1OptionsNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Service", - "operationId": "connectCoreV1PatchNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Service", - "operationId": "connectCoreV1PostNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Service", - "operationId": "connectCoreV1PutNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Service", - "operationId": "connectCoreV1DeleteNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Service", - "operationId": "connectCoreV1GetNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Service", - "operationId": "connectCoreV1HeadNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Service", - "operationId": "connectCoreV1OptionsNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Service", - "operationId": "connectCoreV1PatchNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Service", - "operationId": "connectCoreV1PostNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Service", - "operationId": "connectCoreV1PutNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Service", - "operationId": "readCoreV1NamespacedServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Service", - "operationId": "patchCoreV1NamespacedServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Service", - "operationId": "replaceCoreV1NamespacedServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Namespace", - "operationId": "deleteCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Namespace", - "operationId": "readCoreV1Namespace", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Namespace", - "operationId": "patchCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Namespace", - "operationId": "replaceCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}/finalize": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "put": { - "consumes": [ - "*/*" - ], - "description": "replace finalize of the specified Namespace", - "operationId": "replaceCoreV1NamespaceFinalize", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Namespace", - "operationId": "readCoreV1NamespaceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Namespace", - "operationId": "patchCoreV1NamespaceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Namespace", - "operationId": "replaceCoreV1NamespaceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/nodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Node", - "operationId": "deleteCoreV1CollectionNode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Node", - "operationId": "listCoreV1Node", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Node", - "operationId": "createCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Node", - "operationId": "deleteCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Node", - "operationId": "readCoreV1Node", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Node", - "operationId": "patchCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Node", - "operationId": "replaceCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Node", - "operationId": "connectCoreV1DeleteNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Node", - "operationId": "connectCoreV1GetNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Node", - "operationId": "connectCoreV1HeadNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Node", - "operationId": "connectCoreV1OptionsNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NodeProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to node.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Node", - "operationId": "connectCoreV1PatchNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Node", - "operationId": "connectCoreV1PostNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Node", - "operationId": "connectCoreV1PutNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Node", - "operationId": "connectCoreV1DeleteNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Node", - "operationId": "connectCoreV1GetNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Node", - "operationId": "connectCoreV1HeadNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Node", - "operationId": "connectCoreV1OptionsNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NodeProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to node.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Node", - "operationId": "connectCoreV1PatchNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Node", - "operationId": "connectCoreV1PostNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Node", - "operationId": "connectCoreV1PutNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Node", - "operationId": "readCoreV1NodeStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Node", - "operationId": "patchCoreV1NodeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Node", - "operationId": "replaceCoreV1NodeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolumeClaim", - "operationId": "listCoreV1PersistentVolumeClaimForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/persistentvolumes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PersistentVolume", - "operationId": "deleteCoreV1CollectionPersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolume", - "operationId": "listCoreV1PersistentVolume", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PersistentVolume", - "operationId": "createCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PersistentVolume", - "operationId": "deleteCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PersistentVolume", - "operationId": "readCoreV1PersistentVolume", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PersistentVolume", - "operationId": "patchCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PersistentVolume", - "operationId": "replaceCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumes/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PersistentVolume", - "operationId": "readCoreV1PersistentVolumeStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PersistentVolume", - "operationId": "patchCoreV1PersistentVolumeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PersistentVolume", - "operationId": "replaceCoreV1PersistentVolumeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Pod", - "operationId": "listCoreV1PodForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodTemplate", - "operationId": "listCoreV1PodTemplateForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicationController", - "operationId": "listCoreV1ReplicationControllerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ResourceQuota", - "operationId": "listCoreV1ResourceQuotaForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Secret", - "operationId": "listCoreV1SecretForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ServiceAccount", - "operationId": "listCoreV1ServiceAccountForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Service", - "operationId": "listCoreV1ServiceForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ConfigMapListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1EndpointsListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1LimitRangeListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespaceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedConfigMapList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ConfigMap. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedConfigMap", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ConfigMap", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedEndpointsList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Endpoints. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedEndpoints", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Endpoints", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedLimitRangeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind LimitRange. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedLimitRange", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the LimitRange", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPersistentVolumeClaimList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPersistentVolumeClaim", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPodList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Pod. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPod", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPodTemplateList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodTemplate. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPodTemplate", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodTemplate", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedReplicationControllerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ReplicationController. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedReplicationController", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedResourceQuotaList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedResourceQuota", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedSecretList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Secret. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedSecret", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Secret", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedServiceAccountList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedServiceAccount", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ServiceAccount", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Service. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Namespace. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1Namespace", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/nodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/nodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Node. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1Node", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PersistentVolumeClaimListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PersistentVolumeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1PersistentVolume", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PodListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PodTemplateListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ReplicationControllerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ResourceQuotaListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1SecretListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ServiceAccountListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ServiceListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available API versions", - "operationId": "getAPIVersions", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apis" - ] - } - }, - "/apis/admissionregistration.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAdmissionregistrationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAdmissionregistrationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1CollectionMutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind MutatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a MutatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified MutatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified MutatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified MutatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1CollectionValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ValidatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ValidatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ValidatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ValidatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ValidatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1MutatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1MutatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAdmissionregistrationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1CollectionMutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind MutatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a MutatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified MutatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified MutatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified MutatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1CollectionValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ValidatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ValidatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ValidatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ValidatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ValidatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getApiextensionsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions" - ] - } - }, - "/apis/apiextensions.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiextensionsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ] - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CustomResourceDefinition", - "operationId": "deleteApiextensionsV1CollectionCustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CustomResourceDefinition", - "operationId": "listApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CustomResourceDefinition", - "operationId": "createApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CustomResourceDefinition", - "operationId": "deleteApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1CustomResourceDefinitionStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiextensionsV1CustomResourceDefinitionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiextensionsV1CustomResourceDefinition", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiextensionsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ] - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CustomResourceDefinition", - "operationId": "deleteApiextensionsV1beta1CollectionCustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CustomResourceDefinition", - "operationId": "listApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CustomResourceDefinition", - "operationId": "createApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CustomResourceDefinition", - "operationId": "deleteApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1beta1CustomResourceDefinitionStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiextensionsV1beta1CustomResourceDefinitionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiextensionsV1beta1CustomResourceDefinition", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getApiregistrationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration" - ] - } - }, - "/apis/apiregistration.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiregistrationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ] - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of APIService", - "operationId": "deleteApiregistrationV1CollectionAPIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind APIService", - "operationId": "listApiregistrationV1APIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an APIService", - "operationId": "createApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an APIService", - "operationId": "deleteApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified APIService", - "operationId": "readApiregistrationV1APIService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified APIService", - "operationId": "patchApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified APIService", - "operationId": "replaceApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified APIService", - "operationId": "readApiregistrationV1APIServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified APIService", - "operationId": "patchApiregistrationV1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified APIService", - "operationId": "replaceApiregistrationV1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiregistrationV1APIServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiregistrationV1APIService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiregistrationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ] - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of APIService", - "operationId": "deleteApiregistrationV1beta1CollectionAPIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind APIService", - "operationId": "listApiregistrationV1beta1APIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an APIService", - "operationId": "createApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an APIService", - "operationId": "deleteApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified APIService", - "operationId": "readApiregistrationV1beta1APIService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified APIService", - "operationId": "patchApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified APIService", - "operationId": "replaceApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified APIService", - "operationId": "readApiregistrationV1beta1APIServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified APIService", - "operationId": "patchApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified APIService", - "operationId": "replaceApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiregistrationV1beta1APIServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiregistrationV1beta1APIService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAppsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps" - ] - } - }, - "/apis/apps/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAppsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ] - } - }, - "/apis/apps/v1/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ControllerRevision", - "operationId": "listAppsV1ControllerRevisionForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind DaemonSet", - "operationId": "listAppsV1DaemonSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Deployment", - "operationId": "listAppsV1DeploymentForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ControllerRevision", - "operationId": "deleteAppsV1CollectionNamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ControllerRevision", - "operationId": "listAppsV1NamespacedControllerRevision", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ControllerRevision", - "operationId": "createAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ControllerRevision", - "operationId": "deleteAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ControllerRevision", - "operationId": "readAppsV1NamespacedControllerRevision", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ControllerRevision", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ControllerRevision", - "operationId": "patchAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ControllerRevision", - "operationId": "replaceAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of DaemonSet", - "operationId": "deleteAppsV1CollectionNamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind DaemonSet", - "operationId": "listAppsV1NamespacedDaemonSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a DaemonSet", - "operationId": "createAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a DaemonSet", - "operationId": "deleteAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified DaemonSet", - "operationId": "readAppsV1NamespacedDaemonSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified DaemonSet", - "operationId": "patchAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified DaemonSet", - "operationId": "replaceAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified DaemonSet", - "operationId": "readAppsV1NamespacedDaemonSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified DaemonSet", - "operationId": "patchAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified DaemonSet", - "operationId": "replaceAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Deployment", - "operationId": "deleteAppsV1CollectionNamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Deployment", - "operationId": "listAppsV1NamespacedDeployment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Deployment", - "operationId": "createAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Deployment", - "operationId": "deleteAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Deployment", - "operationId": "readAppsV1NamespacedDeployment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Deployment", - "operationId": "patchAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified Deployment", - "operationId": "readAppsV1NamespacedDeploymentScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified Deployment", - "operationId": "patchAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Deployment", - "operationId": "readAppsV1NamespacedDeploymentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Deployment", - "operationId": "patchAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ReplicaSet", - "operationId": "deleteAppsV1CollectionNamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicaSet", - "operationId": "listAppsV1NamespacedReplicaSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ReplicaSet", - "operationId": "createAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ReplicaSet", - "operationId": "deleteAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSetScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StatefulSet", - "operationId": "deleteAppsV1CollectionNamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StatefulSet", - "operationId": "listAppsV1NamespacedStatefulSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StatefulSet", - "operationId": "createAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StatefulSet", - "operationId": "deleteAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSetScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicaSet", - "operationId": "listAppsV1ReplicaSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StatefulSet", - "operationId": "listAppsV1StatefulSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1ControllerRevisionListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1DaemonSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1DeploymentListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedControllerRevisionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedControllerRevision", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ControllerRevision", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedDaemonSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind DaemonSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedDaemonSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedDeploymentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Deployment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedDeployment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedReplicaSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedReplicaSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedStatefulSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StatefulSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedStatefulSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1ReplicaSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1StatefulSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/authentication.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAuthenticationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication" - ] - } - }, - "/apis/authentication.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthenticationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ] - } - }, - "/apis/authentication.k8s.io/v1/tokenreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a TokenReview", - "operationId": "createAuthenticationV1TokenReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - } - }, - "/apis/authentication.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthenticationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ] - } - }, - "/apis/authentication.k8s.io/v1beta1/tokenreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a TokenReview", - "operationId": "createAuthenticationV1beta1TokenReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAuthorizationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization" - ] - } - }, - "/apis/authorization.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthorizationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ] - } - }, - "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LocalSubjectAccessReview", - "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectAccessReview", - "operationId": "createAuthorizationV1SelfSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectRulesReview", - "operationId": "createAuthorizationV1SelfSubjectRulesReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/subjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SubjectAccessReview", - "operationId": "createAuthorizationV1SubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthorizationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ] - } - }, - "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LocalSubjectAccessReview", - "operationId": "createAuthorizationV1beta1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectAccessReview", - "operationId": "createAuthorizationV1beta1SelfSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectRulesReview", - "operationId": "createAuthorizationV1beta1SelfSubjectRulesReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SubjectAccessReview", - "operationId": "createAuthorizationV1beta1SubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/autoscaling/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAutoscalingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling" - ] - } - }, - "/apis/autoscaling/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ] - } - }, - "/apis/autoscaling/v1/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV2beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ] - } - }, - "/apis/autoscaling/v2beta1/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV2beta2APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ] - } - }, - "/apis/autoscaling/v2beta2/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta2HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta2CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta2HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getBatchAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch" - ] - } - }, - "/apis/batch/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getBatchV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ] - } - }, - "/apis/batch/v1/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Job", - "operationId": "listBatchV1JobForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/namespaces/{namespace}/jobs": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Job", - "operationId": "deleteBatchV1CollectionNamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Job", - "operationId": "listBatchV1NamespacedJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Job", - "operationId": "createBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Job", - "operationId": "deleteBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Job", - "operationId": "readBatchV1NamespacedJob", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Job", - "operationId": "patchBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Job", - "operationId": "replaceBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Job", - "operationId": "readBatchV1NamespacedJobStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Job", - "operationId": "patchBatchV1NamespacedJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Job", - "operationId": "replaceBatchV1NamespacedJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/watch/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1JobListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1NamespacedJobList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Job. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchBatchV1NamespacedJob", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getBatchV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ] - } - }, - "/apis/batch/v1beta1/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CronJob", - "operationId": "listBatchV1beta1CronJobForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CronJob", - "operationId": "deleteBatchV1beta1CollectionNamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CronJob", - "operationId": "listBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CronJob", - "operationId": "createBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CronJob", - "operationId": "deleteBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CronJob", - "operationId": "readBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CronJob", - "operationId": "patchBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CronJob", - "operationId": "replaceBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CronJob", - "operationId": "readBatchV1beta1NamespacedCronJobStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CronJob", - "operationId": "patchBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CronJob", - "operationId": "replaceBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/watch/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1beta1CronJobListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1beta1NamespacedCronJobList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CronJob. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchBatchV1beta1NamespacedCronJob", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getCertificatesAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates" - ] - } - }, - "/apis/certificates.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCertificatesV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ] - } - }, - "/apis/certificates.k8s.io/v1/certificatesigningrequests": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CertificateSigningRequest", - "operationId": "deleteCertificatesV1CollectionCertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CertificateSigningRequest", - "operationId": "listCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CertificateSigningRequest", - "operationId": "createCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - } - }, - "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CertificateSigningRequest", - "operationId": "deleteCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CertificateSigningRequest", - "operationId": "readCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - } - }, - "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/approval": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read approval of the specified CertificateSigningRequest", - "operationId": "readCertificatesV1CertificateSigningRequestApproval", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update approval of the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1CertificateSigningRequestApproval", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace approval of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1CertificateSigningRequestApproval", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - } - }, - "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CertificateSigningRequest", - "operationId": "readCertificatesV1CertificateSigningRequestStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - } - }, - "/apis/certificates.k8s.io/v1/watch/certificatesigningrequests": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCertificatesV1CertificateSigningRequestList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/v1/watch/certificatesigningrequests/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCertificatesV1CertificateSigningRequest", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCertificatesV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ] - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CertificateSigningRequest", - "operationId": "deleteCertificatesV1beta1CollectionCertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CertificateSigningRequest", - "operationId": "listCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CertificateSigningRequest", - "operationId": "createCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CertificateSigningRequest", - "operationId": "deleteCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read approval of the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequestApproval", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update approval of the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequestApproval", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace approval of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestApproval", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequestStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCertificatesV1beta1CertificateSigningRequestList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCertificatesV1beta1CertificateSigningRequest", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getCoordinationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination" - ] - } - }, - "/apis/coordination.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoordinationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ] - } - }, - "/apis/coordination.k8s.io/v1/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1LeaseForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Lease", - "operationId": "deleteCoordinationV1CollectionNamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1NamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Lease", - "operationId": "createCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - } - }, - "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Lease", - "operationId": "deleteCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Lease", - "operationId": "readCoordinationV1NamespacedLease", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Lease", - "operationId": "patchCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Lease", - "operationId": "replaceCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - } - }, - "/apis/coordination.k8s.io/v1/watch/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1LeaseListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1NamespacedLeaseList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoordinationV1NamespacedLease", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoordinationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ] - } - }, - "/apis/coordination.k8s.io/v1beta1/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1beta1LeaseForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Lease", - "operationId": "deleteCoordinationV1beta1CollectionNamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Lease", - "operationId": "createCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - } - }, - "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Lease", - "operationId": "deleteCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Lease", - "operationId": "readCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Lease", - "operationId": "patchCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Lease", - "operationId": "replaceCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - } - }, - "/apis/coordination.k8s.io/v1beta1/watch/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1beta1LeaseListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1beta1NamespacedLeaseList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoordinationV1beta1NamespacedLease", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getDiscoveryAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery" - ] - } - }, - "/apis/discovery.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getDiscoveryV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ] - } - }, - "/apis/discovery.k8s.io/v1beta1/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind EndpointSlice", - "operationId": "listDiscoveryV1beta1EndpointSliceForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of EndpointSlice", - "operationId": "deleteDiscoveryV1beta1CollectionNamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind EndpointSlice", - "operationId": "listDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an EndpointSlice", - "operationId": "createDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - } - }, - "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an EndpointSlice", - "operationId": "deleteDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified EndpointSlice", - "operationId": "readDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the EndpointSlice", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified EndpointSlice", - "operationId": "patchDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified EndpointSlice", - "operationId": "replaceDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - } - }, - "/apis/discovery.k8s.io/v1beta1/watch/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchDiscoveryV1beta1EndpointSliceListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchDiscoveryV1beta1NamespacedEndpointSliceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchDiscoveryV1beta1NamespacedEndpointSlice", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the EndpointSlice", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getEventsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events" - ] - } - }, - "/apis/events.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getEventsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ] - } - }, - "/apis/events.k8s.io/v1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteEventsV1CollectionNamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createEventsV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - } - }, - "/apis/events.k8s.io/v1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteEventsV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readEventsV1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchEventsV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceEventsV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - } - }, - "/apis/events.k8s.io/v1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchEventsV1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getEventsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ] - } - }, - "/apis/events.k8s.io/v1beta1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1beta1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteEventsV1beta1CollectionNamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1beta1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - } - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readEventsV1beta1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - } - }, - "/apis/events.k8s.io/v1beta1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1beta1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1beta1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchEventsV1beta1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getExtensionsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions" - ] - } - }, - "/apis/extensions/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getExtensionsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ] - } - }, - "/apis/extensions/v1beta1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listExtensionsV1beta1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteExtensionsV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readExtensionsV1beta1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchExtensionsV1beta1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchExtensionsV1beta1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchExtensionsV1beta1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getNetworkingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking" - ] - } - }, - "/apis/networking.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNetworkingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ] - } - }, - "/apis/networking.k8s.io/v1/ingressclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of IngressClass", - "operationId": "deleteNetworkingV1CollectionIngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind IngressClass", - "operationId": "listNetworkingV1IngressClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an IngressClass", - "operationId": "createNetworkingV1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/ingressclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an IngressClass", - "operationId": "deleteNetworkingV1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified IngressClass", - "operationId": "readNetworkingV1IngressClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified IngressClass", - "operationId": "patchNetworkingV1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified IngressClass", - "operationId": "replaceNetworkingV1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteNetworkingV1CollectionNamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createNetworkingV1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteNetworkingV1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readNetworkingV1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchNetworkingV1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceNetworkingV1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readNetworkingV1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchNetworkingV1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceNetworkingV1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of NetworkPolicy", - "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind NetworkPolicy", - "operationId": "listNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a NetworkPolicy", - "operationId": "createNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a NetworkPolicy", - "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified NetworkPolicy", - "operationId": "readNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NetworkPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified NetworkPolicy", - "operationId": "patchNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified NetworkPolicy", - "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind NetworkPolicy", - "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/ingressclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1IngressClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/ingressclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1IngressClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1NamespacedNetworkPolicy", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the NetworkPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNetworkingV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ] - } - }, - "/apis/networking.k8s.io/v1beta1/ingressclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of IngressClass", - "operationId": "deleteNetworkingV1beta1CollectionIngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind IngressClass", - "operationId": "listNetworkingV1beta1IngressClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an IngressClass", - "operationId": "createNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/ingressclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an IngressClass", - "operationId": "deleteNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified IngressClass", - "operationId": "readNetworkingV1beta1IngressClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified IngressClass", - "operationId": "patchNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified IngressClass", - "operationId": "replaceNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1beta1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteNetworkingV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readNetworkingV1beta1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchNetworkingV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceNetworkingV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/watch/ingressclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1IngressClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/ingressclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1beta1IngressClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1beta1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/node.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getNodeAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node" - ] - } - }, - "/apis/node.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNodeV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ] - } - }, - "/apis/node.k8s.io/v1beta1/runtimeclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RuntimeClass", - "operationId": "deleteNodeV1beta1CollectionRuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RuntimeClass", - "operationId": "listNodeV1beta1RuntimeClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RuntimeClass", - "operationId": "createNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - } - }, - "/apis/node.k8s.io/v1beta1/runtimeclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RuntimeClass", - "operationId": "deleteNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RuntimeClass", - "operationId": "readNodeV1beta1RuntimeClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the RuntimeClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RuntimeClass", - "operationId": "patchNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RuntimeClass", - "operationId": "replaceNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - } - }, - "/apis/node.k8s.io/v1beta1/watch/runtimeclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNodeV1beta1RuntimeClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/node.k8s.io/v1beta1/watch/runtimeclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNodeV1beta1RuntimeClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RuntimeClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getPolicyAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy" - ] - } - }, - "/apis/policy/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getPolicyV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ] - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodDisruptionBudget", - "operationId": "deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodDisruptionBudget", - "operationId": "listPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodDisruptionBudget", - "operationId": "createPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodDisruptionBudget", - "operationId": "deletePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodDisruptionBudget", - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodDisruptionBudget", - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodDisruptionBudget", - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PodDisruptionBudget", - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PodDisruptionBudget", - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PodDisruptionBudget", - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodDisruptionBudget", - "operationId": "listPolicyV1beta1PodDisruptionBudgetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/podsecuritypolicies": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodSecurityPolicy", - "operationId": "deletePolicyV1beta1CollectionPodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodSecurityPolicy", - "operationId": "listPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodSecurityPolicy", - "operationId": "createPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/podsecuritypolicies/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodSecurityPolicy", - "operationId": "deletePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodSecurityPolicy", - "operationId": "readPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodSecurityPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodSecurityPolicy", - "operationId": "patchPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodSecurityPolicy", - "operationId": "replacePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudgetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudget", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1PodSecurityPolicyList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchPolicyV1beta1PodSecurityPolicy", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodSecurityPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getRbacAuthorizationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getRbacAuthorizationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1CollectionClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRoleBinding", - "operationId": "listRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRoleBinding", - "operationId": "createRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRoleBinding", - "operationId": "readRbacAuthorizationV1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRoleBinding", - "operationId": "patchRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRoleBinding", - "operationId": "replaceRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRole", - "operationId": "deleteRbacAuthorizationV1CollectionClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRole", - "operationId": "listRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRole", - "operationId": "createRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRole", - "operationId": "deleteRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRole", - "operationId": "readRbacAuthorizationV1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRole", - "operationId": "patchRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRole", - "operationId": "replaceRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RoleBinding", - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RoleBinding", - "operationId": "createRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RoleBinding", - "operationId": "deleteRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RoleBinding", - "operationId": "readRbacAuthorizationV1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RoleBinding", - "operationId": "patchRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RoleBinding", - "operationId": "replaceRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Role", - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Role", - "operationId": "createRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Role", - "operationId": "deleteRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Role", - "operationId": "readRbacAuthorizationV1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Role", - "operationId": "patchRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Role", - "operationId": "replaceRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1ClusterRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1ClusterRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1RoleBindingListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1RoleListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getRbacAuthorizationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRoleBinding", - "operationId": "listRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRoleBinding", - "operationId": "createRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRoleBinding", - "operationId": "readRbacAuthorizationV1beta1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRoleBinding", - "operationId": "patchRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRoleBinding", - "operationId": "replaceRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRole", - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRole", - "operationId": "listRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRole", - "operationId": "createRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRole", - "operationId": "deleteRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRole", - "operationId": "readRbacAuthorizationV1beta1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRole", - "operationId": "patchRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRole", - "operationId": "replaceRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RoleBinding", - "operationId": "createRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RoleBinding", - "operationId": "readRbacAuthorizationV1beta1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RoleBinding", - "operationId": "patchRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RoleBinding", - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Role", - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Role", - "operationId": "createRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Role", - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Role", - "operationId": "readRbacAuthorizationV1beta1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Role", - "operationId": "patchRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Role", - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1beta1RoleBindingForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1beta1RoleForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1RoleListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getSchedulingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling" - ] - } - }, - "/apis/scheduling.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getSchedulingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ] - } - }, - "/apis/scheduling.k8s.io/v1/priorityclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PriorityClass", - "operationId": "deleteSchedulingV1CollectionPriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PriorityClass", - "operationId": "listSchedulingV1PriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PriorityClass", - "operationId": "createSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - } - }, - "/apis/scheduling.k8s.io/v1/priorityclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PriorityClass", - "operationId": "deleteSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PriorityClass", - "operationId": "readSchedulingV1PriorityClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PriorityClass", - "operationId": "patchSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PriorityClass", - "operationId": "replaceSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - } - }, - "/apis/scheduling.k8s.io/v1/watch/priorityclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchSchedulingV1PriorityClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1/watch/priorityclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchSchedulingV1PriorityClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getSchedulingV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ] - } - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PriorityClass", - "operationId": "deleteSchedulingV1beta1CollectionPriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PriorityClass", - "operationId": "listSchedulingV1beta1PriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PriorityClass", - "operationId": "createSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - } - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PriorityClass", - "operationId": "deleteSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PriorityClass", - "operationId": "readSchedulingV1beta1PriorityClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PriorityClass", - "operationId": "patchSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PriorityClass", - "operationId": "replaceSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - } - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchSchedulingV1beta1PriorityClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchSchedulingV1beta1PriorityClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getStorageAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage" - ] - } - }, - "/apis/storage.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getStorageV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ] - } - }, - "/apis/storage.k8s.io/v1/csidrivers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSIDriver", - "operationId": "deleteStorageV1CollectionCSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSIDriver", - "operationId": "listStorageV1CSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSIDriver", - "operationId": "createStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csidrivers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSIDriver", - "operationId": "deleteStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSIDriver", - "operationId": "readStorageV1CSIDriver", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSIDriver", - "operationId": "patchStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSIDriver", - "operationId": "replaceStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csinodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSINode", - "operationId": "deleteStorageV1CollectionCSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSINode", - "operationId": "listStorageV1CSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSINode", - "operationId": "createStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csinodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSINode", - "operationId": "deleteStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSINode", - "operationId": "readStorageV1CSINode", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSINode", - "operationId": "patchStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSINode", - "operationId": "replaceStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/storageclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StorageClass", - "operationId": "deleteStorageV1CollectionStorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StorageClass", - "operationId": "listStorageV1StorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StorageClass", - "operationId": "createStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/storageclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StorageClass", - "operationId": "deleteStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StorageClass", - "operationId": "readStorageV1StorageClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StorageClass", - "operationId": "patchStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StorageClass", - "operationId": "replaceStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of VolumeAttachment", - "operationId": "deleteStorageV1CollectionVolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind VolumeAttachment", - "operationId": "listStorageV1VolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a VolumeAttachment", - "operationId": "createStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a VolumeAttachment", - "operationId": "deleteStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified VolumeAttachment", - "operationId": "readStorageV1VolumeAttachment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified VolumeAttachment", - "operationId": "patchStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified VolumeAttachment", - "operationId": "replaceStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified VolumeAttachment", - "operationId": "readStorageV1VolumeAttachmentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified VolumeAttachment", - "operationId": "patchStorageV1VolumeAttachmentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified VolumeAttachment", - "operationId": "replaceStorageV1VolumeAttachmentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/watch/csidrivers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1CSIDriverList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csidrivers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1CSIDriver", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csinodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1CSINodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csinodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1CSINode", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1StorageClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1StorageClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/volumeattachments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1VolumeAttachmentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/volumeattachments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1VolumeAttachment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getStorageV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ] - } - }, - "/apis/storage.k8s.io/v1beta1/csidrivers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSIDriver", - "operationId": "deleteStorageV1beta1CollectionCSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSIDriver", - "operationId": "listStorageV1beta1CSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSIDriver", - "operationId": "createStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csidrivers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSIDriver", - "operationId": "deleteStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSIDriver", - "operationId": "readStorageV1beta1CSIDriver", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSIDriver", - "operationId": "patchStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSIDriver", - "operationId": "replaceStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csinodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSINode", - "operationId": "deleteStorageV1beta1CollectionCSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSINode", - "operationId": "listStorageV1beta1CSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSINode", - "operationId": "createStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csinodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSINode", - "operationId": "deleteStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSINode", - "operationId": "readStorageV1beta1CSINode", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSINode", - "operationId": "patchStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSINode", - "operationId": "replaceStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StorageClass", - "operationId": "deleteStorageV1beta1CollectionStorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StorageClass", - "operationId": "listStorageV1beta1StorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StorageClass", - "operationId": "createStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StorageClass", - "operationId": "deleteStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StorageClass", - "operationId": "readStorageV1beta1StorageClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StorageClass", - "operationId": "patchStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StorageClass", - "operationId": "replaceStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of VolumeAttachment", - "operationId": "deleteStorageV1beta1CollectionVolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind VolumeAttachment", - "operationId": "listStorageV1beta1VolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a VolumeAttachment", - "operationId": "createStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a VolumeAttachment", - "operationId": "deleteStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified VolumeAttachment", - "operationId": "readStorageV1beta1VolumeAttachment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified VolumeAttachment", - "operationId": "patchStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified VolumeAttachment", - "operationId": "replaceStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/watch/csidrivers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1CSIDriverList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csidrivers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1CSIDriver", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csinodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1CSINodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csinodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1CSINode", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1StorageClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1StorageClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1VolumeAttachmentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1VolumeAttachment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/logs/": { - "get": { - "operationId": "logFileListHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "logs" - ] - } - }, - "/logs/{logpath}": { - "get": { - "operationId": "logFileHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "logs" - ] - }, - "parameters": [ - { - "description": "path to the log", - "in": "path", - "name": "logpath", - "required": true, - "type": "string", - "uniqueItems": true - } - ] - }, - "/version/": { - "get": { - "consumes": [ - "application/json" - ], - "description": "get the code version", - "operationId": "getCodeVersion", - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "version" - ] - } - } - }, - "security": [ - { - "BearerToken": [] - } - ], - "securityDefinitions": { - "BearerToken": { - "description": "Bearer Token authentication", - "in": "header", - "name": "authorization", - "type": "apiKey" - } - }, - "swagger": "2.0" -} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1191/swagger.go b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1191/swagger.go deleted file mode 100644 index 1c45ddb2e8..0000000000 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1191/swagger.go +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright 2019 The Kubernetes Authors. -// SPDX-License-Identifier: Apache-2.0 - -// Code generated for package v1191 by go-bindata DO NOT EDIT. (@generated) -// sources: -// kubernetesapi/v1191/swagger.json -package v1191 - -import ( - "bytes" - "compress/gzip" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - "time" -) - -func bindataRead(data []byte, name string) ([]byte, error) { - gz, err := gzip.NewReader(bytes.NewBuffer(data)) - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - - var buf bytes.Buffer - _, err = io.Copy(&buf, gz) - clErr := gz.Close() - - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - if clErr != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -type asset struct { - bytes []byte - info os.FileInfo -} - -type bindataFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} - -// Name return file name -func (fi bindataFileInfo) Name() string { - return fi.name -} - -// Size return file size -func (fi bindataFileInfo) Size() int64 { - return fi.size -} - -// Mode return file mode -func (fi bindataFileInfo) Mode() os.FileMode { - return fi.mode -} - -// Mode return file modify time -func (fi bindataFileInfo) ModTime() time.Time { - return fi.modTime -} - -// IsDir return file whether a directory -func (fi bindataFileInfo) IsDir() bool { - return fi.mode&os.ModeDir != 0 -} - -// Sys return file is sys mode -func (fi bindataFileInfo) Sys() interface{} { - return nil -} - -var _kubernetesapiV1191SwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7b\x93\xdb\xb8\xb5\x2f\xfa\xff\xf9\x14\xa8\x9e\x9b\xb2\x9d\x52\xab\xed\x99\x24\x3b\xc7\xa9\x5d\xf7\x76\x6c\x4f\xd2\x89\xed\xe9\xd3\xdd\x4e\xea\xdc\x28\x75\x0c\x91\x90\x84\xdd\x14\xc0\x01\xc0\x6e\x6b\x6e\xed\xef\x7e\x0b\x6b\x01\x20\x48\x91\x22\xa5\x96\xfa\x35\xcc\x1f\x19\x37\x05\x82\x78\xae\xe7\x6f\xad\xf5\xff\xfd\x0f\x42\x8e\x52\x36\xe3\x82\x1b\x2e\x85\x3e\x7a\x4b\xec\x23\x42\x8e\xb8\x1c\x5f\xff\x51\x8f\x69\xce\xc7\x34\x5d\x72\xad\xb9\x14\x8a\xcd\xb9\x36\x8a\xda\xa6\xe3\x9b\x37\xe3\x4f\x85\xa1\x86\x8b\xf9\x3f\xd9\x74\x21\xe5\x75\x78\x19\xfa\xd4\x89\xe2\xb9\x6d\x79\xf4\x96\x1c\xd5\x5a\x12\xfc\x79\xca\x34\xa1\x82\x84\xfe\xc9\xad\xfb\x99\x8a\x94\x98\x05\x23\x8a\x69\x59\xa8\x04\x9a\xa5\x44\xe6\x0c\xbf\xad\x09\x37\x84\xe6\x79\xc6\x99\x26\x46\x8e\x8f\x46\xfe\xb3\xb9\xb2\x8d\x0c\x67\x3a\x1a\x0c\x21\x47\xe1\x13\x17\xec\x86\xb3\xdb\x7f\x30\xa5\x2b\xd3\x6d\x1e\xf5\x69\xf3\x5b\x84\xc3\xb0\xa5\x4a\x99\x62\x29\xc9\xb8\x36\x44\xce\x48\xae\xd8\x8c\x29\xfb\xe4\x6b\xed\xc5\xaf\xe4\xc6\xbf\x6a\x67\xe5\x17\x81\x7d\xcb\x59\x62\xf4\x98\x9c\x9e\x9f\x11\xcd\xd4\x0d\x53\xe4\x96\x67\x19\x31\x6a\x45\x8c\x24\x85\x66\x64\xc6\x95\x36\xfe\x75\xc2\x05\x74\x00\x5f\xbc\x5d\xf0\x64\x61\x17\x42\x17\x79\x2e\x95\xed\xe7\x6c\x46\x84\x14\xcc\x0e\xc6\x36\x0b\x1f\xd5\x39\x4b\xf8\x8c\xb3\x14\x3b\xe0\x1a\x7b\x70\x2f\xb2\x94\x4c\x57\xd1\x18\x46\xe4\x86\x66\x3c\x85\x95\xc6\xf1\xcc\x28\xcf\xc8\x4c\x2a\x7c\x57\x4e\xff\x8b\x25\x06\xbe\x46\x49\x6e\xbf\xa1\x6d\x1f\x7e\xef\x12\x29\x66\x7c\x5e\xe0\x4e\x85\x4f\x6b\x42\xb3\x4c\xde\xb2\xb4\x1c\x95\xdd\xd2\x54\x32\x4d\x84\x34\x84\x8b\x24\x2b\x52\x46\xa8\x58\x95\x2d\xae\x85\xbc\x15\x76\x25\xec\x6c\xec\x00\x2f\xdd\x00\x13\x9a\x65\xda\xff\xe0\x3f\x5c\x0e\xd5\xf6\x3c\x65\x44\x17\x30\x52\xdf\xce\xfe\x54\x28\x46\x72\x99\xf1\x64\x55\x1e\x1a\x3c\xee\x86\x2d\xeb\xc7\x81\x90\x23\xb3\xca\x99\x3d\x09\xda\x28\x2e\xe6\x47\xd1\x8f\xff\x5d\x79\xdd\xb7\xa3\x4a\xd1\x55\xd9\x2c\x6a\x74\x94\x64\x9c\x09\xf3\x0e\x56\xa7\x7e\xee\xfe\x2f\xc5\x66\xf6\xf5\xef\x4e\xa2\xbb\x78\xd2\xe7\x0a\xba\xb3\xf4\x2e\xee\x7c\xb4\xe1\x48\xc7\x0d\x09\x7c\x8c\x69\xb2\x90\xb7\x76\x91\x12\xb9\x5c\x16\x82\x27\xd4\x30\x72\xcb\xcd\x02\x56\xcd\xf6\x3e\x26\x17\xec\xe7\x82\x2b\x96\x36\x4f\xcd\xad\xec\x39\x2c\x6c\xc7\x9d\xfa\x31\x6e\x5b\x19\x41\x21\x14\x4b\xe4\x5c\xf0\x5f\x58\x4a\x98\x52\x52\x69\x32\x53\x72\x09\xc3\x28\x69\x04\x13\x69\x2e\xb9\x30\x84\x2a\x46\x16\x54\xa4\x19\x4b\xc9\x71\x79\xbc\x68\x56\xd8\xd3\xa6\x18\x39\x9b\x0b\xa9\x18\x91\x8a\xd8\x8f\x8e\xc9\x7b\x36\xa3\x45\x66\xe0\xe0\xc0\x93\xa3\xc6\x3d\xac\xef\x75\x3c\xd3\x25\x35\xc9\xa2\xd7\x3c\xa3\x96\xd5\x75\x5e\x30\x32\x39\x52\x45\xc6\xf4\xe4\x08\xef\x21\xd7\xf6\xaa\xa7\x76\x58\xf0\x96\xbd\x0c\x72\xc9\xc5\x9c\x28\xf6\x73\xc1\x34\x90\x88\xf5\xe9\x4d\x8e\x3e\x7c\xa3\x89\x99\x1c\xd9\x19\x4e\x8e\x3e\xfc\x5c\xf0\x1b\x9a\x31\x61\x26\x47\xe3\x89\x98\x88\x63\x02\xbf\xbf\x75\x9d\x52\xdf\x1b\x91\x22\x5b\x11\x3e\xb3\xb4\x83\xd9\x16\xd9\x0a\x9b\xd8\x7e\x23\x5a\x61\xc7\x38\x26\x3f\x4a\x65\x5b\x2d\xf3\x8c\x8d\xec\x4b\x29\xcb\x33\xb9\x5a\x32\x61\x34\x49\xa8\xb0\xf7\x6c\x29\x53\x7c\xe3\x86\x53\x4b\x96\xf5\xc9\xcd\x9b\x91\xff\xc7\x94\x19\x6a\xff\x12\x29\x61\xdf\x0c\x13\x70\xb3\xcb\xe7\xd3\xc2\x44\xcb\x81\x23\x43\x52\x90\x92\xaf\x34\xe7\x7f\x51\xb2\xc8\xf5\xdb\x7f\x4d\x8e\x6c\x7f\x93\xa3\x7f\xdb\x8e\xb9\xa7\xc4\xf6\xf9\xcd\x1b\x78\x1a\x58\xc5\x5b\xf2\xaf\xc9\x51\x34\xca\xc9\xd1\xbf\xbf\x8e\xa2\xd9\x1b\x59\x19\x1a\x81\xf9\xd5\x07\x46\x6e\x65\x91\xa5\x40\x99\x2c\x21\x61\xc2\xd4\xa8\x8d\x5f\xe1\xb0\xe8\xeb\xcb\xcc\x67\x7e\x65\x34\x3c\xc5\xf1\xc1\x96\x23\x25\x86\x59\x8f\x08\xbb\x61\x02\x97\x4e\x48\xb3\x60\x0a\x28\xdd\xdc\xce\xdb\x8e\xcd\x11\xc3\x83\x6f\x84\x7d\xfe\x78\x37\x62\xca\x2c\x5f\xb9\x61\xc0\xad\xca\x17\x61\xd4\x6d\xbb\x13\x5f\xf7\xea\xf5\xd8\xfe\xde\x0b\xba\x64\x1d\x17\xfe\x6a\xc1\x88\x6d\xe6\xb9\xef\x9a\x54\x33\x26\x9f\xed\xcf\x7a\xe1\x67\x34\x2b\xb2\x6c\x45\x7e\x2e\x68\x06\xbb\x36\x22\x6c\x3c\x1f\x8f\x08\x5f\xd2\x39\x73\x4c\xea\xba\x98\x32\x25\x98\x61\x7a\xcc\xe5\x88\xdc\x2e\x18\x5c\xfc\xa8\xc9\xe4\xc8\xd2\x0f\x53\xfb\xb8\xfb\x24\x6e\x6b\xa5\x93\xa6\xd6\x52\xcd\xa9\xe0\xbf\x20\x53\x09\xb4\x7e\x07\xf2\x68\x3b\xd5\x39\x4d\xd8\x25\xcb\x58\x62\xa4\xda\x96\xd1\x2d\x69\xb2\xe0\x82\xa9\xd5\x38\xbf\x9e\xdb\x07\x7a\xbc\x64\x86\x5a\x4e\xf7\x91\x4e\x59\x16\xfa\xdd\xc4\xe3\x3e\xd7\x47\x41\x52\x96\xf0\x94\x69\xbb\x7e\x70\xc3\x8c\x24\xaa\x10\x15\xe9\x41\x0a\x90\xe9\x50\x62\x98\x52\x4b\x8f\xed\xd6\xf9\x17\xdc\x8a\x41\xb7\x4e\x14\xa2\xc6\x37\xf7\xd4\xd3\xb6\xd2\xee\x9b\x20\x1f\xc1\xe2\x62\x1b\x6e\x34\xcb\x66\x20\x3a\x96\x3d\x8d\xa0\x05\xbc\x6e\xc9\x3d\xd7\x56\x9e\x9a\x49\xb5\xc4\xaf\x3b\x49\xcb\xae\x40\x4a\x0d\x1d\x67\x76\x09\xf4\x5a\xcf\x3a\x50\x8e\x24\x2b\xb4\x61\x8a\xe8\x44\xe6\x96\x82\xbb\xab\x38\xb2\xa4\x5e\x30\x2b\x5f\xea\x6b\x9e\xeb\xb5\xab\x52\xa1\x2d\x6d\x8b\xb3\x72\x1f\xb4\xcb\x28\x75\xbc\x1e\x1c\x65\x38\xaa\xb5\x4c\x38\x05\x61\xd0\x8a\x0f\x96\x9c\x88\x8c\xdd\xb0\xcc\x52\x94\x19\x99\x1c\xbd\xf6\xcc\xea\xcd\xe4\xe8\x4f\x84\xac\x64\x81\x52\x9b\x66\xa6\xb2\x78\x84\x6a\x32\x93\x96\xe5\xe9\xb7\x64\xb2\x7e\xac\x26\xf6\x5c\x4d\x04\x21\x13\xe4\xb3\x1f\xbe\xe5\x8a\xc1\x65\xd3\xf6\xa7\x7f\xd9\x9f\x08\xb6\xb0\xff\x9b\x1c\x5d\xb3\x95\xfd\x21\x1e\xd1\xa8\xfc\x15\x15\x0b\xec\x76\x72\xf4\x59\x9a\x33\x51\xf9\x1d\x99\x6e\xd4\x33\x3e\x7e\x1d\x35\x22\x38\x29\xff\xe7\xbf\xf1\x1f\xff\x6d\xff\xf3\xef\x89\xf8\x6f\xbb\xc8\x67\x33\xc2\x85\x36\x8c\xa6\x38\x71\x8a\x64\x0b\x48\xed\xf6\x0b\x5e\x5f\x6c\x94\x2b\x98\xb8\xe1\x4a\x8a\x25\x90\x39\x5c\xf3\x5c\xc9\xd4\x2f\xbb\x36\x74\xce\xc5\xdc\x2e\xfe\x03\xac\x7d\x65\x70\xad\xcb\xdf\x6f\xed\x71\x56\x95\xe5\x0f\x93\xdb\xb4\x09\x97\x8c\x91\x85\x31\xb9\x7e\x7b\x72\x52\xa1\x8b\x27\xa9\x4c\xf4\x49\x22\x45\xc2\x72\xa3\x4f\xe4\x0d\x53\x56\x75\x3b\xb9\x95\xea\x9a\x8b\xf9\xb1\x5d\xe4\x63\xb7\x1f\x27\x78\x11\x4f\x80\x10\x2c\xad\x8c\xe9\x2e\x8f\xb6\x4b\x0e\x3f\x86\xe5\xd4\x31\x2f\xf2\x6c\x8a\x2d\x73\xb3\x22\x15\x8a\x36\x72\x0a\x9d\xa7\x25\xf6\xb6\xae\x8c\x25\x0b\xe3\x66\x5a\x8b\x63\x79\x50\x42\xfb\x53\x65\x08\x7d\xa8\x6c\x20\xac\xbc\x42\xc2\x16\x54\x97\x54\xd0\x53\xb9\xea\x04\xed\x99\x67\xf6\x30\xc0\x91\xa7\x73\x6a\xef\x12\x99\x4a\x77\xf4\x65\x96\xe2\x68\x80\xe3\x09\x76\xeb\xfe\x02\x32\x1d\x64\x88\x06\x51\x01\x59\x24\xd7\x56\xbe\xd0\x1c\x35\xfa\x52\x10\x9f\x11\xc6\x61\x2e\x1b\x29\xfd\x29\x11\x45\x96\xf9\x36\x2f\xcb\xb1\x38\x7d\x3d\xa1\x1a\x78\x6d\xa2\x18\x35\x6c\x64\xef\x62\x39\xc2\x5a\x9b\x94\x65\xcc\xb0\x57\xb6\x4d\xc9\x8f\x60\x16\x09\x15\x96\xca\x2e\xe8\x0d\x73\x6b\x44\x5e\x66\xfc\x9a\x11\x4a\xde\x07\x29\xeb\x42\x66\xd9\x94\x26\xd7\xf0\x3e\x39\x97\xe9\xb9\x92\xdf\x56\x3f\xe5\x68\x36\xc1\xee\x5e\x79\x82\xdd\x30\xe5\x31\xf9\xa2\x59\xbc\x35\x81\x2c\x78\xad\x21\xde\x4e\xae\x89\xcc\xcd\x31\x17\x23\x32\x65\x09\x2d\x34\xb3\xea\x99\xd5\x66\x94\xdd\xd0\x15\xb0\x9b\x66\x69\x88\x4c\x57\x96\xf4\x18\xbb\xe3\x60\xd3\x70\xbb\x7e\x80\x9b\xa2\x18\x17\x37\x32\x01\xf1\xa6\x97\xee\xb6\xfe\x02\xe1\x22\x05\xc5\x38\x3a\xdd\x0b\xae\xc3\x64\x4a\xa1\x2e\xa1\x99\x55\x48\x97\x45\x66\x78\x9e\x31\x62\xf8\xd2\xca\xff\x9a\xe4\x54\x81\x99\x88\x12\xcd\xc5\x3c\xab\xa8\xb4\x78\xae\x41\xfa\x6a\x54\xf4\x3e\xdb\x39\x4e\x8e\x9c\x90\x7e\x36\xfb\xcc\x58\xca\x52\xa7\xe7\xc1\x8f\x6f\xd7\x4d\x21\x4e\x79\xf1\x03\xb2\x64\xca\x2c\xec\x99\x12\x96\x83\x88\x8e\x81\x20\xc7\xc2\x0f\x35\x74\x5e\x76\x4c\x0d\xc9\x18\x05\xb5\xd2\x76\x95\x02\xa9\xa1\x19\x4c\x3c\x9e\x77\x4d\x8b\x0f\x5f\xaa\x91\x82\x29\xb3\x27\xc2\x36\x34\xa0\x26\xe9\x52\xab\x99\xae\x08\x8a\x39\x65\x37\x79\x56\xcc\xb9\xd0\x84\xce\x8c\x93\xd2\x80\xd6\xd1\xac\x34\x47\xd1\x2c\x1b\x7b\x93\x9b\xc6\x9b\x84\x3a\xee\xca\x99\xb3\x60\xdb\xc9\x6f\x97\x85\x36\xbf\xb5\xf3\xe2\x29\x5b\xe6\xd2\x30\x61\x46\x84\x4e\xed\x16\x4a\x92\x2b\x99\x30\xad\x03\x43\x36\x0b\xb6\x22\xb9\x62\x37\x5c\x16\x3a\x5b\x85\xf1\x8e\xc9\x67\x69\xd8\x5b\xf2\x5b\x94\x18\x8b\xe5\xd4\xd2\x8e\x59\xbc\x2e\xe5\xd1\xd2\xfe\x1e\xce\x0b\xaa\xa8\x30\x0c\xef\xe1\x94\x05\xb5\x5c\x0a\x36\x26\xbf\xb5\x2b\xd4\xd2\x81\x62\xda\x5e\x16\x2e\xc8\xac\x50\xb0\x36\xb8\x5a\xfe\x77\x77\x8b\x70\xd8\x23\xbf\x28\x78\xac\x1a\xbf\x6c\x3b\xbf\xf6\x04\xd6\x7e\xfb\xb6\xb2\x72\x05\x10\x87\x72\xd5\xec\x1d\x9f\x32\xa2\x98\x37\x86\x5a\x3a\xc2\x05\x5f\xf2\x5f\x58\xaf\x25\xb0\x9f\x30\xd2\x5b\x1c\x59\x44\xf3\x70\x4b\x69\x96\x91\x25\x18\x8f\xc1\x64\xa8\x58\x3c\xe4\x44\x5a\xa6\x6b\x29\xaa\x1d\x17\x0d\x76\x4b\x77\x80\xaa\xf4\xc6\xc9\x5e\x0d\xaa\xa1\xbb\x5d\x3b\xe8\x3b\xa0\x2e\x77\x10\x93\x0b\xdb\x26\x32\x78\xdf\x82\xe2\x50\x9a\xb2\x41\xcb\xa0\xa6\xd4\x9b\x4f\x74\x31\x2d\x0d\xdf\xf1\xcd\x4b\xa8\xb2\x24\x61\x2a\x0b\x33\x26\x57\xcd\x3f\xc0\x0a\xfa\xde\x9d\x95\xc7\x53\xca\xff\x43\xc5\xea\xff\x90\x0b\xb0\xeb\xfc\x55\xde\x32\xb0\xa5\x72\x67\xc9\xc6\x63\xce\x6e\x2c\x8b\xfc\x47\x58\xc8\x60\xc9\x0e\x37\xc8\xd2\x20\x6f\xce\x5f\xff\x15\x0c\x76\x79\x51\xd2\x75\xaf\x92\x20\xc1\x31\x60\x5b\x04\xf2\xed\xd8\x19\x9c\x9e\xc4\x8a\x5b\x2c\xc5\xb7\xad\xa4\x65\x27\xe2\x77\x37\x5b\x91\x94\x6b\x3a\xcd\x7c\x97\x78\xe9\x47\x77\x18\x25\x1c\x7f\xd0\x87\x1c\x11\x93\xb1\x17\xc2\x5b\xdd\x40\xbc\x2b\x3f\xe2\x4d\xad\x15\xfb\x76\xfc\x9d\xc6\x06\x8e\x62\xf4\x33\x37\xef\x6e\x07\xb6\x9b\xfa\x4f\x6e\x16\x3f\x85\x83\x75\x27\x63\xb5\x15\x0b\x3e\xcc\x66\x76\xe4\x1d\xc7\xfb\xb2\x6c\x89\xdb\xdb\xc2\x21\xad\x88\x67\x7b\x25\x0c\x1b\x8f\xc9\x69\x62\x45\x6d\xa0\xb0\x25\xb3\x7b\x4b\x3e\x4b\xc1\x46\xf0\xff\x3f\x89\xf7\x6a\x75\x51\x08\xf2\x32\x10\x21\x94\xa0\xd0\xc0\xe5\x2d\x44\x96\x06\xd1\x4c\xcb\x40\xd6\x2f\xe5\x12\xac\xbe\x5f\x04\x38\x10\x5e\x45\xe4\x1f\x54\xa5\x78\x18\xe4\xd3\x97\xcb\x2b\xc2\xed\x49\xb3\xe2\x13\x98\xa7\xac\x12\xc0\x33\xee\x1c\x18\x2b\x6d\xd8\x72\x64\x79\x65\xc2\x22\xeb\x55\xa0\x7c\x76\x7b\x91\x39\x51\x32\x2b\x4c\xa1\x18\xd1\x86\xe5\x5e\xae\x2b\x8f\x55\xb2\xa0\x62\xce\x82\x6f\xab\x32\x0a\xbb\x5e\x6c\x26\xe1\x58\x06\x5a\x5c\x88\x14\x18\xc0\x85\x3f\x8f\x41\xd1\x4b\x71\x5d\xa8\x31\x8a\x4f\x0b\x30\xd7\x23\x4f\xa6\x85\x91\xc7\x61\x4c\xc8\x59\x57\xc1\x32\x59\x72\x70\xb7\x0a\x7e\xe3\xfe\xf3\x3f\xfd\x62\xd9\x75\xb3\xeb\xb7\x03\x31\xb4\x0c\x5f\x16\xe6\xd2\xae\x5f\xda\x75\x6c\xae\x2a\x8d\x23\x37\x91\x9d\x9e\xeb\xa9\x74\x39\x05\x0b\xda\x69\xe0\xf3\xbe\x4d\x4e\xb5\x66\x7a\x54\xa3\x93\x59\x16\x96\x84\x83\x17\x20\x25\x52\x05\x37\x52\xf9\x3b\xb8\x8b\x82\x52\xd2\xe0\x25\x02\x32\xeb\xbf\x05\xc7\x94\x58\x41\xc1\x76\x3c\x65\xe6\x96\x31\x41\xd0\x0a\xf9\xc3\x6b\xa2\x71\x32\x15\x19\xf6\x4d\xf9\xb8\xba\xa2\x33\xa9\x96\xd4\xd8\xa5\xe0\xc2\xfc\xf0\x7d\xf3\x72\x73\x61\xd8\x9c\xa9\x68\xbd\xff\x47\x6d\xdd\x8f\x94\xf7\xcc\xbc\x25\xff\xaa\xd9\x2b\xdb\x9c\x4f\x2d\xf7\x7c\xd4\xed\x2e\x75\x2d\xfe\x1d\xbe\xee\x07\x8a\x54\x0e\x7f\x77\x63\xdb\xc5\x83\x5c\x21\x9d\xfd\xdd\xc9\x55\x8a\x5b\xb2\x5a\xe0\x3f\x55\x6a\x3c\x83\xcd\x5a\x97\x0e\x40\xba\xa1\x40\x91\xec\x49\xc1\x2b\x04\x6d\xed\x45\x77\x57\xb7\x14\xa5\xfa\xb8\x9c\x83\x75\xbc\xcb\xcb\x7c\x7e\xe6\x1a\x06\x47\x51\xe4\xbd\x65\x29\xd1\xc9\x82\x2d\x29\xca\xd0\xdc\xca\x7c\xb9\x62\x56\x93\x8d\xa6\x14\x9c\xb2\xe8\x21\xd5\x5e\x21\x71\x46\x73\x12\x79\xd6\xb0\xb7\x20\x1a\x66\x96\x64\x5b\x09\xd2\x30\x65\x65\x33\x38\xe3\xa3\x30\x73\xb7\x10\x15\xdf\x1c\x52\xeb\x31\xf9\x64\xe9\x15\x17\x33\xf9\x36\x98\x54\xe6\xdc\xc0\xa6\x73\x79\xe2\xbc\x89\x66\x75\x92\x48\x81\x74\x4a\x2a\x7d\x92\xb2\x1b\x96\x9d\x68\x3e\x3f\xa6\x2a\x59\x70\xc3\x12\x4b\x32\x4f\x68\xce\x8f\x61\xb0\x02\xc5\xc2\x65\xfa\x5d\x90\x81\xb6\x27\x45\xd7\x5c\xa4\x1d\xab\xfe\x77\x8e\x6a\xbf\x15\x4a\x6c\x47\xee\x72\x87\xc5\xf5\xc2\xc6\xc5\x87\xcb\xab\xd2\x79\x13\x39\xc0\xcb\xa6\xba\x5c\x76\xbb\x64\x5c\xcc\x3c\xf3\x0b\xee\xcb\xe0\xb4\x44\x91\xc8\x5e\x46\xa2\x8b\xe9\x92\x1b\x5d\x8a\x1b\x46\x8e\xc9\xbb\x20\x15\x15\xb9\x15\x88\xd3\x31\x39\x13\xe4\x1d\x5d\xb2\xec\x1d\xd5\xec\xe0\x8b\x6e\x57\x57\x1f\xdb\xf5\xdb\x61\xd9\xbd\xa1\x7a\x8f\xc6\x28\x34\x92\x7c\x62\x86\x6e\xb4\x44\x5d\x1a\x2a\x52\xaa\xd2\x60\xa7\x71\x23\xf9\xd3\xa1\xd7\x2b\xd8\xe6\x9b\x57\xc4\x0b\x2e\x1d\x87\x31\xc8\x27\x70\x20\x3d\xa0\xe4\x36\x16\x66\x41\x96\x00\x4a\x1d\x19\xf6\xeb\xb8\x98\x43\x4b\x99\x75\xc0\x4f\x4f\x11\xb3\xf2\xd3\xb7\xe3\xd2\xee\x7a\x9c\x5b\xc9\xe4\x78\xc9\xd4\x9c\x1d\x5f\xb3\x95\x7d\xa5\xc6\xba\x9a\xdf\x80\x41\xb1\x39\xbc\x00\x6f\x6f\x62\x91\x35\x26\x15\x9e\x57\xfa\x05\x87\xeb\xb1\x23\xba\xc7\x8e\x80\x94\x1c\xb5\xb2\x7b\xd0\x16\xa6\xd7\xb8\x50\x78\xb6\xaa\x73\x70\x1d\x6e\xe4\x5c\xd5\x37\x6e\x02\xf3\x38\xba\x79\xb3\x3e\xbd\x7f\xef\x95\xd7\x7e\xe4\xda\xec\xc8\x6f\x3f\x3a\x08\x43\x79\x6e\x37\xb5\x1e\x18\xe7\xa3\x66\x9c\x4d\x14\xa3\xbe\xec\x1f\xb7\xda\xe6\xd6\x6e\xf7\x49\x88\xaa\xd7\xe8\x2e\x8a\xef\x20\x39\x3c\x17\xc9\xc1\x1e\xd3\xfe\x72\x03\xd0\xae\xc0\xcc\xef\x73\xad\xb6\xd6\xed\xf0\x32\x75\xa9\x62\x8f\x96\xcb\x01\xab\x39\x2c\xa7\x6b\x30\x86\xb5\xf3\xb6\xf5\xc6\x78\xb9\x4d\x91\x67\xe0\x91\x8b\x7e\xb0\xc4\xfd\xc2\x53\xd7\x31\x39\x03\xc6\x67\x09\xfc\x72\xc9\x44\xea\xdd\x68\xd7\x8c\xe8\x02\xbd\x2d\x06\x0c\xd8\x60\xaf\x80\xee\xd8\xb7\x9c\x0a\x1d\x6c\xd9\x60\xb0\xee\xc7\x12\x11\x7f\xd5\xcd\x11\xb1\x9d\x47\xf9\x04\x28\x99\xae\xe1\xa9\xa7\x2c\x93\x96\x4e\xc9\x31\x79\xf1\xdb\x17\x30\xe3\x2c\x73\x4d\x01\x60\xe2\x9e\x3a\x42\x85\xf6\x95\x8c\x89\xb9\x59\x78\x67\x8e\xce\x78\x52\x5a\x43\x82\xa5\xaa\x01\x3a\x74\x78\x70\x6d\x04\x45\xeb\x2d\x34\x54\x16\xa9\x02\xd0\xee\x5a\x26\xdf\xf8\x09\x2e\x94\x6c\xba\x12\x4d\xeb\x54\xbd\x0e\x60\xf9\x28\x9f\x54\x0d\x9b\x6b\x2e\x88\x63\xf2\xee\xe2\xc3\xe9\xd5\x87\x11\xf9\x72\xfe\x1e\xfe\xfb\xfe\xc3\xc7\x0f\xf6\xbf\xef\x7e\xfa\xfc\xf9\xc3\xbb\x2b\x22\x15\xf9\x2d\x98\xf7\xec\x72\xc2\x32\x49\x5d\xf9\x02\x58\x69\xc4\xca\x5b\x54\xcb\x8f\x55\x46\x41\x11\x05\x4c\xd3\x14\xd8\xdd\x53\xdb\x8c\x52\x50\xeb\x70\x21\x85\xf3\x58\x91\xb3\x63\x27\x91\xa5\x43\x45\xc6\xe2\xa8\x88\x1a\xb0\xeb\x2d\x79\x91\xcb\x54\xbf\x20\x4b\x46\x85\x26\xf6\xdf\x63\x7c\x74\x92\xc9\xb9\x7f\x0c\x0b\x26\xe7\x24\xf2\x41\x41\x6c\x03\xb6\xfe\xad\x6f\x66\xb7\x2d\x7c\x1e\x51\xbc\x56\xf8\x88\x3d\x57\xbe\xf3\xca\x3b\x15\xd7\x56\xd4\xef\x89\x4e\x68\xc6\x2a\x2d\xed\x83\x7a\x87\xbf\x3d\x69\x1e\x81\xd7\x90\xb9\xaa\xbe\xe1\x60\x57\xb7\x3c\x4b\x13\xcb\xe5\xeb\x47\x23\x0a\x74\x80\xd5\x03\x9b\x30\x13\x40\xbd\xcb\xce\x53\x09\x93\x93\x37\x4c\x65\x34\x47\xeb\x39\xa3\xc9\x02\xbd\xd1\xce\xa1\x98\x33\x91\x5a\xc9\xcf\x99\x91\x99\x48\x32\xa9\xe1\x81\xf3\xbd\x56\xa6\xbe\xe4\xf3\x85\xf1\x1e\x7a\x07\x5d\x7f\xc0\x83\x08\x78\xc1\x8e\x43\x08\x6d\x6a\x86\x7a\x7c\x16\xf4\x2b\x70\x2c\x82\xc3\xac\x0a\x5f\x78\x87\x3e\xc0\xc9\xd1\x88\x4c\x4a\x74\x66\x6a\xff\x46\x44\xc3\x6f\x27\x47\x71\xb3\x70\x16\xa9\x03\xab\x3b\x27\xe2\x71\x0d\xd7\xa8\x71\xc3\xd0\xbd\x11\x0d\x21\x7c\x02\x48\xbb\xf7\xd9\xdb\xb1\x54\x3b\x1a\xd7\x86\xb3\xf6\xdd\x00\x7e\xeb\xfe\x26\x4e\x22\xea\x00\x5c\x3a\xce\xd1\xee\x16\x4a\x31\xbb\x57\x89\x73\x7c\x5f\x56\x0e\x84\xeb\xaf\xb2\xa6\xf6\x3c\xe7\x54\x59\x91\xdf\xb7\x2c\x9d\x0b\x5c\xe3\x37\xfb\x7a\x6a\xba\xcc\x22\x5b\x4b\x59\x56\x73\xe1\x09\xbb\x60\x33\xa6\x98\x48\xd8\x06\x19\xab\xde\x94\x2c\x64\x96\x22\x2a\xde\x3f\x31\x92\xb8\x56\xe3\x8c\xcd\x69\xb2\xaa\x0b\x98\xad\xc2\x51\x0f\x6c\xf6\x57\xdb\xe6\x6b\x13\xf4\x59\xbb\x6f\x96\x11\x2e\xbb\x83\x9e\xfb\x0c\x02\x1a\x56\x46\x82\x07\x75\x7f\xc3\xc9\xa9\x59\x74\x8d\xc4\xb6\xf9\xea\xc3\xd8\x72\x87\xca\xf8\x72\xf1\x91\xd8\x1f\x9c\x7f\xde\xfb\xcf\x00\x33\xc7\x11\x8f\x1a\x41\xf7\xe1\xe8\xfb\xe1\xee\x30\x4a\xa9\x4c\xc7\x28\xcf\x66\x65\x30\x0a\x92\x6b\xfb\x92\x27\xb0\xee\xd3\x78\xd7\x16\x52\x83\xda\x1d\xfc\x84\x91\x07\xee\x77\xbf\xfb\x01\x24\x8d\x29\x4d\xae\x6f\x2d\x13\x48\xe4\x32\xa7\x86\x4f\x79\xc6\xcd\x6a\x4c\xbe\xda\x5e\xbf\x46\x08\x2e\x87\x23\xc1\xaf\x39\xfc\xca\xcb\x37\xc7\x7f\xf8\xfd\xef\x7f\xf8\xfd\x08\x83\x22\x34\xbf\x61\xaf\xee\xdd\xa1\x87\x87\xac\x1e\x95\xd0\xa5\x08\x6e\x7d\xaf\xd7\x10\x0f\x1b\x2e\xf6\x5a\xdb\x21\xb2\x73\x88\xec\x1c\x22\x3b\xcb\xd7\x87\xc8\xce\x21\xb2\x73\x88\xec\x7c\x7c\x01\x85\x43\x64\xe7\x23\xd9\x88\x21\xb2\x73\x88\xec\x1c\x22\x3b\x87\xc8\xce\x21\xb2\x73\x88\xec\x7c\x34\x91\x9d\x43\x60\xe7\x10\xd8\x39\x04\x76\x3e\xfe\xc0\xce\x21\xfc\x6a\x08\xbf\x1a\xc2\xaf\x86\xf0\xab\x21\xfc\x6a\x08\xbf\x1a\xc2\xaf\xf6\xe0\xea\xe9\x1b\x80\xd5\x41\x96\xf7\x1c\x82\xe5\x24\x96\xc0\x99\xec\x4d\x06\xad\x7a\x88\xc3\x7a\xdc\x70\xf2\x01\x4d\xfd\x5c\xd0\xd4\x43\x1c\xd6\x63\x8a\xc3\x5a\x77\xd1\xf7\x94\x36\x87\x48\xac\x80\x51\xef\xe0\x7d\x87\x45\xa8\x6f\xfe\x78\x47\x34\x56\xf7\xcb\xd5\xf3\xbb\xb9\xfd\xc0\x42\x1f\x35\x0b\xdd\x26\x22\xab\xef\x46\xb7\x76\xbc\x5f\xa2\x34\x44\x65\x0d\x72\xc4\x10\x95\xf5\x54\x38\xde\x3d\xc4\x65\x35\x41\x9a\xda\xd9\x5c\x43\x6b\xcb\x04\x0c\xe5\x0e\x6d\x67\x4f\x82\xd5\xe2\x2d\xeb\xf0\x81\x57\x94\x5c\x7d\xbc\xb4\xcd\x04\x4b\x1c\xcc\xcd\x19\x6d\x9c\x14\xd7\xcd\xed\x12\xfa\xe7\x42\xa4\x59\x27\x9c\xd7\xb7\x43\x20\x2d\x39\xff\xf0\x89\x30\x91\xc8\x94\xa5\xe4\xdd\x29\x99\xc2\x6f\x35\x2c\xad\x07\x03\x85\x74\x67\xd1\xc0\x5e\x68\x8f\x14\x4c\xec\xa8\x20\x87\x1b\x03\x8f\x70\x21\x22\x1c\x2c\x1a\xc4\x88\x51\x85\x36\x44\x49\x69\xb4\x37\x9d\xd8\x7b\x86\x1d\x50\x85\x9f\x6a\xb5\x79\x4c\x57\x86\x6d\x4f\x0e\x1c\xe4\x76\x7f\x10\xb7\x35\x04\xf9\x26\xa2\xf0\xd5\x7d\xde\x2d\x77\x05\x39\x1e\x03\x82\xd7\xad\x56\x1f\xd0\xd3\x53\x76\x20\x15\xf9\x5a\xa8\xec\x6b\xb0\x25\x85\xf5\xf5\x11\x23\x35\x5f\x88\x2a\x84\x00\x7c\x31\x37\x0b\xef\xd6\x41\xc3\x3a\x58\xbe\x04\xf8\x5c\x9d\x9c\x52\x68\x56\x7e\xaa\x45\x1d\x29\x54\xd6\x75\xba\x60\x7c\x73\x7e\xc3\x7c\x4c\x4e\x12\x64\xa4\x8a\x93\x8b\x0b\xa2\x3d\xb9\xfc\x72\xf1\xd1\x4e\x7f\x49\x5e\x7e\x05\xd1\x88\xbd\x3d\x39\x59\x48\x6d\xde\xe6\x52\x99\x13\x00\x7d\xbf\x1a\x23\x76\x0c\x93\x0b\xda\xde\xf0\x4b\x32\x5e\x9f\xe6\x65\xb9\x5a\x30\xf2\xd5\x76\x17\xc0\xd2\x96\xb3\xc1\x3e\x00\x70\x27\xec\x80\x5f\xad\xea\x4a\xfd\xc9\x25\x0f\x8c\x56\x87\xcc\x38\xcb\xd2\x90\x99\x0f\x8c\x7d\xf6\x03\x2e\x3c\x66\x8a\x30\xe1\xec\xc6\x59\x9c\xd9\x37\x27\xd8\xbd\xff\x7c\x09\xf3\x96\xcb\xe8\xd4\x6b\xf2\x12\x51\x36\x5f\x2d\x65\x3d\x0e\xcf\xbf\x7a\x57\x87\xeb\x8b\x70\x71\xec\xbd\x22\xb6\x23\xaa\x6b\xbe\x44\x4a\x32\xba\x62\x28\x43\x70\x99\xc1\xb2\xbf\x1a\xfb\xa9\x07\x73\xf7\x14\x92\x15\x9e\x9d\x13\x9a\xa6\x8a\x69\x74\x07\x9f\x67\x8c\x6a\x48\xad\xc8\x7c\xc2\x44\xdb\xcf\x57\xbb\x7d\x19\x76\x60\x57\xfa\xcd\xf7\xff\x31\x7e\x3d\x7e\x3d\x7e\xf3\xd5\x7e\x9e\xfa\xbe\xed\x49\xe3\xfa\x7a\x45\x0a\x91\x31\xad\xe1\x54\x19\x4b\xd5\xe6\x8a\x81\x9f\x50\xb1\xd2\xf7\x1a\x19\xf7\xa5\x80\x70\x28\xdb\x89\x76\x14\xc7\xb6\xa1\x22\xa2\x09\xce\xb5\x86\x71\x47\x2c\x0a\x55\x8d\x10\xb7\xf1\xa5\xb9\x2c\x00\xae\xa8\x0d\xfc\x6c\xbf\x9c\xf1\x6b\x96\xad\x9c\x71\x5c\x48\x71\x6c\x4f\x15\x9d\x02\x68\x6d\xcc\xc6\x23\x38\x0e\x8c\x6a\x68\x62\x0a\x25\x48\x91\xa3\xdf\x49\xb0\x5b\x7f\x0a\xc2\x49\xc2\x03\x1a\x8e\xda\xe4\x08\x38\xfa\xe4\xe8\x4f\x70\x44\xec\x49\x76\x3f\xcd\xb9\xf0\xa0\x13\xcf\xf4\x1d\x0c\xf2\x14\xc3\x15\x42\x36\x4a\x9a\x39\x9f\xef\xcc\x47\x79\x79\x37\x01\x15\x2b\x2f\x16\xe6\x4c\x01\x35\x9a\x66\x2e\x09\xea\x97\x8b\x8f\x63\xf2\xbf\x65\x01\x6d\xfd\x11\x85\x8e\x8d\x04\xf3\x36\xac\xa3\x9a\x72\xa3\xa8\x0a\xdd\xd4\x7d\xcd\xb3\x18\x67\x43\x4b\xb7\x5b\x6a\xe5\x8b\x19\x77\x13\x3f\x35\x86\x2d\x73\xe3\x3a\xc0\xa4\x95\x85\x66\x8a\x40\x7c\x82\xe6\x09\xa1\x85\x59\x00\x5a\x8c\x4c\x8e\xec\x2f\x6f\xed\x08\x6e\xa5\x4a\xff\x1f\x84\x83\x01\x1a\xc7\xc7\x8b\xfd\xa8\xe8\x1c\x61\x82\x2f\x27\x47\xdf\x8d\xc7\xe3\xc9\xd1\x2b\x58\x81\x9f\x0b\xa6\x56\x24\xa7\x8a\x2e\x99\x81\xab\x31\x39\xfa\xbf\xfd\xef\x2e\xf5\xa7\xeb\x65\xe4\x1c\xe1\x0f\x15\x46\x04\x4e\xa4\xa1\x92\xd4\x10\x6f\xf0\x74\xe3\x0d\x62\x87\xd3\xd7\x7f\xbd\x70\x67\xfa\xc5\xbf\xbf\x3e\x8f\x48\x04\xbc\xa1\x43\x38\xc2\x6e\xe1\x08\xf8\xdb\x10\x90\x30\x04\x24\x0c\x01\x09\xbf\x96\x80\x04\xbc\x2b\x43\x2c\xc2\x10\x8b\x30\xc4\x22\x0c\xb1\x08\xfe\xd7\x21\x16\x61\x88\x45\x18\xaa\x4c\x0d\xc1\x08\x43\x30\xc2\xf3\x0c\x46\x18\xaa\x4c\x0d\x55\xa6\x86\x2a\x53\x43\x95\xa9\xa1\xca\xd4\x10\xe6\xf4\x3c\xc3\x9c\xd0\x12\xfc\x7c\x62\x9d\x5c\xd0\xcd\xc8\x05\x3d\x5d\xca\x65\x3d\xf4\x69\x88\x5c\xda\x3a\x72\xa9\x62\xfd\x76\x3f\x0e\xe1\x4c\xfb\x09\x67\xfa\xe1\x11\x86\x33\x75\x41\xde\xf6\xe2\x10\x7e\x3a\x85\xa1\xac\x96\xa4\x58\x42\x9d\xe1\xfd\xe6\xcd\xf8\xcd\x1f\x46\x24\xcf\xa8\x10\x96\xf5\x40\x17\x4b\x79\x03\xf2\x09\xfc\xfa\x3f\x51\x19\xda\x04\xe7\x3b\xb9\x79\xb3\x99\xfc\x7b\xa9\x63\x80\x72\x3f\x66\x28\xf7\x80\x62\x7e\x2e\x28\xe6\x21\x1a\xea\x11\x45\x43\x35\x23\x88\x7a\x8a\xa4\x43\x40\xd4\x5d\x4b\x53\xc1\xf2\xef\x01\x1d\xde\xcd\xf7\x87\x22\x55\x03\x1f\xdd\x36\x24\xea\x01\x8b\x54\xf5\x10\x64\xef\xa2\x37\x0f\xd2\xc4\x73\x91\x26\x86\x98\x28\x7c\xfe\xd8\x98\x5e\x47\x44\xd4\x7e\x19\xdf\x50\xb3\x6a\xa8\x59\xb5\x61\x89\x86\x9a\x55\x43\xcd\xaa\x47\xb1\x19\x43\xcd\xaa\xa1\x66\xd5\x50\xb3\x6a\xa8\x59\xf5\x24\x6b\x56\xa1\xa8\x35\x14\xae\x2a\xbf\x3f\x14\xae\xda\x76\x94\x43\xe1\xaa\x96\xbb\xf9\xd0\x85\xab\xf0\x72\x0f\xd5\xab\x86\x68\xd2\x21\x9a\x74\x88\x26\x1d\xa2\x49\x87\x68\xd2\x21\x9a\x74\x88\x26\x1d\xa2\x49\x37\xdc\xf5\x21\x9a\x74\x88\x26\x1d\xa2\x49\x87\x68\x52\xf8\xdf\x10\x4d\xfa\x2b\x88\x26\x1d\x82\x49\x87\x60\xd2\x21\x98\xf4\xf1\x07\x93\x0e\x21\x5f\x43\xc8\xd7\x10\xf2\x35\x84\x7c\x0d\x21\x5f\x2d\x27\x63\x08\xf9\x7a\x6e\x21\x5f\x4f\xbf\x18\xd5\xa1\x62\xbf\x3a\x26\x38\x44\x7f\x3d\x05\xd4\xfa\x80\xd7\x7e\x2e\x78\xed\x21\xfa\xeb\xd1\x45\x7f\x0d\x05\xb1\xdc\x8b\x0f\x51\x10\x6b\xbf\x40\xf8\xa1\x34\xd6\xc0\x51\x9f\x59\x69\xac\x5e\xf2\xed\x5d\x14\xea\x41\xb6\x78\x2e\xb2\xc5\x10\x0b\x86\xcf\x1f\x1f\x03\xbc\xd7\x68\xb0\xa1\x52\xd6\x50\x29\xab\x1b\xb7\xbe\x89\x46\x0c\xe5\xb2\xcc\x50\x2e\x6b\x28\x97\x35\x94\xcb\x1a\xca\x65\x3d\xc9\x72\x59\x79\xae\xad\x3c\xf8\xce\x8a\x6a\x32\xcb\x98\xba\x60\x37\x5c\x6f\x36\x84\xaf\x37\x2e\xbd\x55\xb0\x2f\x7c\xb9\x2c\xd0\x27\xa6\x05\xcd\xf5\x42\x82\x6e\x84\xce\x53\x14\x21\x51\x86\xc0\x13\xac\x98\xce\xa5\xc0\xbd\xb7\x1b\xa6\x99\xe2\x34\xe3\xbf\x40\xe6\x53\x91\x92\x94\xc5\x4f\x4a\x07\xbc\xa3\x10\x4e\x02\x71\x31\x61\x41\xf5\x84\xaf\x8d\xc9\x4f\xe8\x22\x6b\x18\xf2\x82\x6a\x32\x65\x4c\x10\x5d\x24\x09\xd3\x1a\x21\x87\x08\x44\x48\x01\x16\x96\x50\x41\xea\x5a\xc3\x55\x05\x8a\x1f\x39\x67\xa2\xa0\x01\xab\x44\x43\x08\xa6\x57\x40\xc0\xc8\x8f\x87\x0c\x2e\x78\x61\xbc\xa8\xf1\x9e\x1a\x8a\xf4\x76\xdc\x30\x46\x50\x7c\x46\x64\xe1\x5d\xdd\x53\xe6\x40\x10\x2e\x35\x2f\xf4\x3c\x22\x69\x01\x04\xc8\x2a\x3d\xf6\xf0\x4e\x57\x25\xf8\xe3\x3d\x65\x4b\x29\x2e\x19\xfa\x14\x2e\xed\x77\x67\x45\x66\xff\x4e\xc2\xd7\xd0\x4f\x8c\x33\x84\x66\xca\x21\x25\x46\x15\xbd\x8c\xdb\xe5\xb2\x7b\x57\x7a\xde\xc3\x4d\x8e\x42\x0d\x00\x3c\x09\xbd\x54\x2d\x0b\xe8\x6a\xd4\x98\xdd\xd7\x60\x14\x29\x90\x65\x8d\xe4\x21\x71\x27\x22\x62\x62\x29\x44\x8e\x02\x26\x06\xfd\xb2\x3e\x24\x09\x93\x0b\xe4\x8a\x2f\xa9\xe2\xd9\x0a\xc6\x1f\x36\xde\x2d\x41\x34\xbf\xc1\xbe\xf2\xa8\xed\x2b\x77\x57\x6d\x55\x21\x0c\x5f\xb2\xf1\x05\xbd\xfd\xe0\x11\xd2\x1b\xa5\x56\xb8\x76\xdc\x83\x95\x90\xb8\xb0\xb5\x23\xeb\x63\x0e\x81\x92\x0c\x16\x91\xe7\x6d\x11\xd9\xcd\xdb\xf2\x42\xdf\x9f\x5d\x24\x4c\xba\x71\x49\xd4\x3a\xdf\x6e\x1a\x7f\xc9\xb1\x43\x0d\x00\x8c\x34\x74\x8f\xe3\x33\x5f\x1e\x3c\x04\x93\xbc\x07\x67\x4f\x3b\x3a\xe0\x0f\xbf\xdb\x33\x3a\x20\xcc\xe9\x3e\xed\x39\x79\xae\x9b\xed\x36\x0d\x32\x52\xbb\x9d\x66\x1b\x13\x4d\xab\x0c\xd6\xe1\x85\x68\x7e\xc1\x2b\xe2\x8e\x90\x38\xf1\x08\x84\xa9\xe0\x8f\x68\x10\x87\xd6\x70\x5e\x03\xaf\x7c\x84\xbc\xb2\x8f\x2f\xe2\xcc\xb6\xf1\xdc\xad\x7d\xc7\xf5\x9e\x9c\x11\xed\x1a\xc4\xe0\x6a\x18\x18\x6b\x4f\x57\xc3\xfd\xb3\xce\x47\xeb\x4f\xd8\x82\xff\x74\xf8\x0a\x76\xe0\x41\x41\x5f\xdc\xc0\x76\x4a\x9d\xb2\xbc\x3f\x2d\x98\x37\x92\x42\x5b\xa2\x99\x19\x18\xcb\xa3\x66\x2c\x03\xbd\x7d\x2e\xf4\xf6\xa9\x2b\x32\x3a\x67\xc9\xf6\x1e\xad\x3a\xfd\xba\xb4\xbd\x6c\x9a\xff\xd5\x82\x91\x94\x69\x4b\xf1\xc9\x94\x2d\xe8\x0d\x97\x2a\x10\x8c\x88\x6c\x1d\x7a\x31\xec\x74\x8f\xa9\x48\x8f\xad\xca\x55\xe8\x96\x35\xc1\xdf\xee\xbe\x2a\xd8\x4f\xd7\xba\x24\x85\x82\xcc\x5a\xf8\xd9\xc6\x55\xb9\xc2\x07\x86\x7a\x13\xa0\x2c\x40\xce\x04\x23\xe2\x74\x85\x5e\xa0\x5b\x2e\x52\x79\x0b\xef\xf3\x25\x1b\x93\x73\x99\x17\x19\x75\xda\x24\xa8\x99\xe0\x3b\x1d\x93\x0b\x46\xd3\x63\x29\xb2\xd5\x03\x2e\x77\x97\x09\xfd\x5e\x78\x7c\xc9\x7f\x0f\xc3\xd6\xdf\x49\x81\x85\xcb\xfa\xf0\xf7\xd0\xb8\x86\x6d\x47\xe3\x00\xf0\xf7\xc8\xbe\x6c\x08\x05\x47\x39\xe5\x82\x00\xe5\xee\xc1\xf1\x33\xaa\xcd\x95\xa2\x42\xc3\x67\xae\xf8\x7a\x26\x81\x3b\x10\x42\xe8\x6e\xd3\x51\xff\x48\xb5\xc1\xca\x7e\x4e\x7a\x71\xb3\x35\x61\x44\x3e\xa4\x4b\x0a\xe6\x2f\x83\x91\x3e\xa4\xbc\xc5\x24\xb8\x64\x5a\xd3\x79\x17\x58\xe1\x94\x2c\x8a\x25\x15\x44\x31\x9a\x82\xa7\xc4\xbd\xe6\xed\x32\x96\x99\xa6\xcc\x50\x9e\xf9\xb8\x38\x08\x26\x09\x23\xdb\xa5\xbe\x1b\xa3\xba\x53\xb4\xba\x02\x63\x90\x6d\xe8\x5c\xf6\xd1\xc2\xbc\xd0\x24\x83\x25\xbb\xcb\x28\x9a\x49\xd9\x3a\x73\x0a\x84\x27\x1a\xc0\xc8\x7b\xc7\xaf\x94\x95\xb8\x7e\xa4\x99\x66\xa3\xbb\x44\x02\xad\x3a\x53\x3b\x5e\xad\x30\xe3\x60\x79\xd0\xc3\x68\x76\xf6\xcd\x35\x6b\x1a\xf0\xfe\xfa\x42\x75\xa9\x1e\xbd\xaf\x7e\x87\x31\xa9\xd2\x0e\xc5\xbc\xc4\x2a\x1b\x89\x17\x99\x4b\xea\x3f\x18\x89\x1e\xb7\x2c\xdf\xc7\x48\x74\x1a\x2c\x43\x8d\xfb\xda\xda\xcf\x4e\x62\xc7\x60\x09\x1a\x34\x93\x47\x0e\x3a\x7d\x16\x16\xa2\x2a\xad\x3f\x8c\x04\x79\x59\x55\xcf\x5a\xd9\x88\x6d\x17\x5c\xac\x88\x58\x4b\x76\x35\x0c\x2d\xb9\xb0\x1a\xc2\xaa\x67\xc8\xee\x82\x61\xd9\xde\x62\x19\x55\xec\x75\xd1\xad\x20\xd5\x20\xea\x0a\x10\x50\x25\xe4\x23\x62\xf1\xb9\x4c\xa3\x5c\x54\x56\x44\x5b\x85\x40\x4c\xc8\x3d\x33\x03\x44\x82\x73\xad\x30\x45\x12\x45\xf5\x82\x8b\x39\x22\x8e\xb8\x71\x70\xac\x28\x8b\x04\xbd\xa1\x3c\xb3\x82\x5e\x35\x8a\xf9\x35\x79\x69\x3f\x16\xaa\x50\x37\xbc\x40\xa8\x26\x5a\x4a\x61\xff\xcb\x5d\x55\x05\x9a\xae\xf6\x94\x5e\xb5\xc1\x83\xf8\x57\xae\x8d\x54\xab\x8f\x7c\xc9\xbb\x52\xd0\x5e\x55\x8a\x22\xcb\x2c\x25\x0b\x7c\x19\x00\x71\x0c\x71\x39\x12\x41\x4d\x01\x56\xe2\x94\x47\xa0\xd7\x40\x48\x11\xa9\x98\x72\xc8\x51\x5b\x70\xbd\x08\x21\xcb\xec\x5b\x9e\xf1\x84\x1b\xf2\x0b\x53\x12\xf3\x97\x48\x13\x01\x20\x2b\x6b\xf9\xe6\xf5\xde\x97\x44\x3f\x64\x0e\x99\x53\x97\x2f\x07\x61\x63\xf2\x86\x29\xc8\x09\x5f\xe6\xf6\x5f\x52\x41\xe7\xa5\x32\x5d\x31\x5a\x14\xda\x84\x64\x89\x65\x7e\x0c\x3c\x62\x68\x45\x4e\x01\x47\xb3\x2c\x1b\x62\x06\xe1\x94\x18\xb6\xcc\xad\x5c\x04\xe2\x3e\xa6\x1e\x69\x20\xbe\x77\xcd\x10\x74\xf2\x1d\xfc\xf7\x38\x64\x03\x6a\x11\xd1\xdd\x60\xb6\xb6\x7d\x24\x52\x31\xbb\xde\xe7\x32\xbd\x72\x7d\x74\xda\x84\x4e\xab\x69\x65\xaa\x5a\x2f\x2c\x0d\x40\x52\xfd\x65\x45\xba\x81\x98\xb0\x92\x78\xc0\xcf\xf8\x5b\x5c\xfa\x9c\x24\x32\x5f\x05\x29\xd6\x76\x06\x85\xe3\xed\xd6\x0a\x99\x3a\x5c\x6a\x9c\x44\x27\xda\x06\x68\x10\xd2\xcd\xbc\x84\x94\x33\xf1\xbb\x7c\x46\x84\xac\xb5\xe2\x51\xde\xdb\x57\x5b\xef\xa0\xdd\xb8\x4c\xd2\x54\x9f\x44\x38\xaa\x13\xc5\xec\x75\x04\x2a\x5e\x3e\xfe\x2e\x97\xe9\x71\xd8\xa6\xc6\x4d\x44\xf1\xe7\xb2\x8c\x58\xbc\xa3\x19\xeb\x4b\xb5\xbf\x8e\x2d\x75\xc8\x36\x1f\x30\x89\xa4\x29\xcf\x68\x62\xf7\x07\x89\x4e\x95\xf6\xbb\xac\x16\x82\xdd\x62\x11\x86\xed\x65\x02\xbd\x7e\xbf\x8f\xea\x4b\x74\x77\x8d\xee\xb2\xae\x4a\xb7\x33\x63\xd4\xa7\xeb\xfe\x9a\x35\x33\xdf\x96\x7c\xd9\x2a\x88\xc0\x32\xde\xc9\x42\x74\xf1\x0a\x68\x63\x3f\xb2\xa0\x7a\x41\xc2\xab\x3a\xd8\x19\xc2\x68\xeb\x37\xaa\x3c\x6b\xa4\xd0\xbe\xa4\x07\x82\xd4\xa9\xd7\x53\x11\xc4\x40\x6f\x24\x4f\xa9\x48\x18\x59\xb2\x64\x41\x05\xd7\x4b\x72\xbb\x60\x02\x93\xfc\xb1\x14\xf8\x84\xbb\x9b\x21\xd3\xa3\xff\xbe\x60\xb7\x56\x17\x5c\x77\xb3\xed\x9d\xad\x04\x13\x42\x77\x75\x93\xca\x86\x39\x6d\xb5\x14\x0d\xe4\x54\x33\x75\xe3\x13\x31\x55\x0c\x72\x2f\x74\x65\x7f\xeb\xc9\x7c\xf7\xa6\xdb\x95\x16\xc5\x9e\x4a\x5e\x57\x60\x73\x25\x14\xba\x66\x14\xd9\x3e\x14\x3a\x5e\x75\x5c\x8e\xcf\x20\xaf\x5c\x26\x0b\x96\x16\x19\xeb\x52\x2d\xab\x12\x8e\x25\xb1\x11\x03\xf6\x21\x15\xd4\x90\x8c\x51\x6d\xc8\x1b\x7f\x7f\x2c\x7d\x87\x8c\x1f\x8a\x61\x9e\x71\x17\x67\xe4\xb3\xbe\x95\xcd\xf6\x44\x9a\xb1\x43\xcd\xcc\xc9\xbe\x0f\xab\x73\x92\x6c\xbf\x6c\x46\x1a\x9a\x35\x2f\x5e\x24\x5c\xbb\x25\xac\x2e\x0a\x79\x89\xb9\x75\xed\x2f\xf8\x5a\x22\x95\x62\xc0\x4b\x9b\xdf\xd8\x17\x8b\x3b\xdc\x3a\xe2\x42\x9c\xfa\xbb\xbb\xeb\xb9\xeb\x5c\x3a\x7b\xec\x20\x13\x1e\xd8\x4a\x5d\x16\x46\x67\x49\x8d\x9a\x85\xb3\x2b\x62\x5d\xe3\x25\x2a\x3b\x50\x7e\xca\x1f\x6a\x2b\x46\x8c\x6b\x2a\xd8\xab\xc3\xac\xce\x27\xae\xf5\x3e\x2f\x66\x75\xce\x98\x4d\xdb\x47\x5a\x3c\xf1\x6b\x89\x73\x87\x3d\x79\x4c\x47\x09\xce\xcf\xde\x19\x26\x0e\xff\x8b\xa0\xf7\x77\x7b\xe2\x4a\x12\x8f\xf7\xda\xa0\x00\xc0\xd2\xbf\x30\xc1\xd6\x12\x58\xb5\xad\xcc\x52\x6a\xb0\x89\x5b\xd9\x60\x1e\x5e\x24\xbe\xaf\x75\x7d\x32\x92\xc0\xf6\x83\xff\x5d\xd3\x0d\xf6\xcb\x5e\x62\x12\xe0\xfa\x8f\xf6\xf0\x3e\xf3\x9b\xb5\xc8\x1c\x9b\x09\x5f\x37\xf3\x6d\xa1\x03\x7b\xd3\x2c\xbe\xb4\x29\x6c\xad\x1a\x46\xf5\x8d\x60\x8c\x2f\x12\x13\x62\xac\xdd\x21\x82\xb3\x55\xd7\xc9\xe0\xe6\x44\x1a\x40\xb7\xee\x61\x8f\x23\x17\x73\xfc\xee\xce\x2a\xe5\x45\xdc\x4b\x8b\xf3\xbd\x2e\x93\xe3\x2b\x7e\x0a\x08\x7a\xc3\xa8\x3e\x3d\x26\xe7\x2e\xc4\x31\xe4\x84\x5d\xe5\x8c\xfc\x27\x99\x1c\x55\xbe\x34\x39\x6a\x71\x1e\x6f\xe1\x91\x8c\xae\x27\x0e\x05\x1c\x0e\x18\xb5\x59\xfb\x18\x66\xb8\xfe\x49\xbc\x87\xe0\xb1\xc9\x51\xa5\x52\x5a\xa5\xed\x7d\xc5\x1b\x96\x69\x79\x37\x1d\xae\xd0\x88\x30\x61\xe9\xac\x26\x29\x4b\x32\x6a\xe9\xd5\x8d\x3f\x43\xa8\x3f\x9e\x5b\xad\x1d\x4b\xd0\x82\x89\xe2\x72\xf0\x52\x3e\x76\x2f\xe5\xe0\xd7\x7b\x2e\x7e\xbd\x3b\x26\xaa\x6b\x21\x85\x77\xc3\x01\x06\xd2\xd1\x69\xf4\xbd\xac\x3b\xa7\x4c\x2b\x32\x90\x45\xe9\xc4\xdb\x46\x7d\x47\xa4\x5e\x39\xee\x6e\xa8\xde\xa7\x52\x8e\xcb\x56\xa5\xf8\xa6\x2b\xe0\x99\xe6\x11\x77\xd1\xef\xfb\x71\x57\x96\x4c\x60\xbf\xbe\xca\xd0\x6f\x2f\xb8\xdb\x7a\xeb\x76\xbc\x5b\x59\xae\x67\x00\xbc\xc5\x73\x42\xe9\xe1\xbe\xe7\x73\x05\xbc\xb1\x9c\x13\xd6\x2a\x70\x93\xba\xa5\x3a\xd0\xe7\x01\xa9\xf7\xeb\x41\xea\x45\x57\xf4\xa9\x41\xf5\xc2\xc8\xbb\xb0\x7a\x95\x86\xd5\x54\x93\xe5\x6f\x83\x00\xfc\xb8\x05\xe0\x9d\x63\x39\x1b\xb7\xb8\xb5\xcb\xdd\xc4\x8f\x01\xb2\x37\x88\xf6\x77\x84\xec\x3d\x6d\x28\x5d\x95\x16\x1f\x48\x3e\xed\x02\xd3\x55\x1a\xb6\xa2\xe9\xfa\x2a\x2c\x7b\xc6\xd9\x7d\xda\x01\x63\xf7\x24\x90\x75\xfb\x36\xd2\xe7\xb4\xd0\x9d\x26\xed\xb3\x28\x1f\x07\x35\x6e\x4f\x83\x24\xc3\x35\xc1\x5e\x5a\x24\x99\xa9\x94\x19\xa3\xa2\xe5\xfb\x4a\xce\x15\xd3\xfa\x3d\xa3\x69\xc6\x05\xdb\x02\x46\x49\xbf\xc1\x16\x83\x7c\xcd\x45\x65\x83\x2b\xca\x90\x4f\x5b\xe7\x3f\x45\xa6\x58\x3a\x06\x97\xb5\x5a\x4d\x6b\x8a\xc5\x4b\x3c\x72\xaa\x2a\xaf\x79\xa0\x07\xa2\xa8\xa4\x65\x04\x98\xdd\x2a\x57\x32\xb1\x1d\xe3\xab\x95\xea\xae\xe0\x8b\x89\x25\x7f\x6e\xec\xc9\x3b\xaf\x4d\xfb\xc3\xb7\x84\xb1\x14\xd2\xfc\x80\xd4\x1c\x0a\xf8\x17\x6a\x46\x13\x5f\x1d\xbc\x32\x20\x14\xec\xa2\x64\x5b\xe5\x04\xe1\x6d\xc7\x2b\x98\x36\x7c\x89\x5e\x86\x42\x79\xce\x05\x6b\x46\x9b\x37\xb1\x72\x52\xff\xf0\xfa\xf5\x9e\x8a\xae\x54\x54\x08\xb0\x83\x76\x6d\xf2\xe7\x70\x77\x3d\x01\x01\xc4\xd3\xa1\x10\x9a\x8f\x13\xb3\x1a\xd9\x8c\x07\xdc\xea\xdd\x71\xab\x1f\x2b\x55\x1e\x81\x56\xe0\xa1\xfa\xe0\xd1\x76\xf1\x82\x63\xfd\x4e\x40\xdd\x01\x58\x06\x5e\xf3\x4e\x48\xae\xc3\x2d\x85\xbc\x7f\x56\xed\x08\x95\x20\x7c\x8b\xf2\x86\xf5\x47\xb4\xb6\x69\xbc\x77\x45\x28\x46\xe6\xbb\x1e\xe0\xc4\xab\x3a\xb5\x29\x11\x8a\x90\xf2\xb2\x01\xa8\x58\x85\x27\xda\x05\x19\x6f\x85\x8f\xc2\xc3\xfd\x77\xb6\x7a\x0c\x78\x5b\xdf\x70\x1d\x69\xab\x9b\xa1\xb6\x8f\x0d\x89\x59\xb7\xd6\xf6\x12\xe5\xd0\x62\xe2\x84\xb9\xe5\xb6\x36\xdc\x6e\x95\xde\x8b\x37\x17\xfd\x58\xc0\x55\xcd\x8f\x5e\x8a\x47\xb0\x0f\x4d\xd0\x86\x3a\xaa\x81\x18\xaa\xe6\xac\xe5\x4e\xee\x1f\x3c\xb9\x57\xd0\x69\x44\x3c\xae\x2a\x7f\xdf\x33\xec\xb4\xa4\x89\x4f\x09\x6e\x5a\xee\xf3\xa1\xf1\xa6\x0d\x36\xfd\x9e\x26\x8a\x07\x03\x9c\xee\x04\xce\xd9\x04\xc8\x69\x3a\x9b\x7b\x07\xe4\xc0\x7d\xdf\x91\x76\x20\xad\x40\xfa\x7d\x8f\x24\xa1\xa7\xb0\x5b\x1f\xad\x90\xe2\xd8\x30\xb5\xe4\xc2\xeb\xa6\x1b\x87\x4d\x5e\x62\x8a\x61\x57\x61\xb8\x14\x31\x3c\x8f\xd9\x7f\x48\x56\x21\xee\x4a\xcd\xa3\x1e\xba\xf7\x25\x08\xb8\xa6\x01\x5f\x55\x8d\x3d\xd2\x86\xbb\x14\xc7\xa0\x35\x78\x62\x56\x55\x09\x01\x48\xf7\xe6\xf5\xeb\xdf\x44\x34\x24\xa1\x39\x4d\x20\x8b\xef\x15\xd6\x01\x5d\xf9\x42\xd2\x53\x56\xfb\x86\x87\x70\x4d\x0b\x03\xf2\xf3\x8a\x55\x88\x51\x1c\x0e\x85\xc3\x71\xc0\x3d\x83\x79\x9d\x83\xd0\xb0\xef\x4d\x41\xcb\xe0\x8e\x1b\xb2\xed\xa1\x83\xe9\xc1\xc4\x62\x33\x8f\x17\x61\x10\x65\x78\x18\x44\xdb\x1d\x84\xa1\x6e\xdc\xd8\x5a\xe3\x48\x06\x5c\xc8\xdb\xad\x65\xdf\x7b\xc5\x89\xb5\xf8\xad\xef\x04\x14\x5b\x5f\x91\x2b\x84\x8e\xd5\xf0\x59\xcd\x52\xfb\x2e\xee\xb1\x18\x2f\xc6\xf0\xb2\x78\xa8\x58\x1d\xac\xf6\xe0\x78\xb1\x52\x3a\xda\x70\xa8\xca\x46\x84\x09\x5d\xa8\x00\x07\x2d\x35\xef\x2a\x3d\x23\x9e\x71\xd4\xa3\x39\xa8\x58\x41\x95\x0f\x81\x89\x8b\x06\x3f\xda\x63\xf6\xa3\x0d\xde\xa6\xe7\xe2\x6d\xea\x09\x24\x73\x95\x80\x3e\xa2\x1c\x06\x7a\x48\x74\xf5\xed\x55\x66\xcb\xdc\xac\xa0\x08\xd0\x0a\xfe\x4e\x91\x7c\x05\xfb\x33\x48\x6d\x50\xa8\x00\xaf\xdf\xb9\x4c\x5f\x5a\x35\xd6\x5b\xde\xa3\xee\x30\xc8\xda\xee\xfa\xb3\x4c\x98\x57\xce\xb4\x17\x50\xae\x42\xb4\xb6\x72\x44\x45\xfa\xed\x73\x48\xa9\x17\xad\x5b\x37\x50\x6f\x07\x93\x4f\xbc\x5c\x43\xae\xbd\x83\xb8\x78\x23\x99\x62\xaf\xee\xdd\xb2\xdf\x3e\xf0\xc3\x86\xd6\xed\xf0\x43\x27\xaf\x00\xe8\xff\x09\xe2\x0f\xeb\x78\xbd\x21\xe9\xde\x00\xe5\x6b\x5c\x0f\xa7\xab\xc4\xc7\xfd\x89\x61\xf9\xca\x6b\xdd\x81\xe5\xab\x36\x6c\x4a\xbc\x37\x84\xb4\x3c\x15\x4d\x64\x9b\x4a\xd1\xf1\xae\x1e\x30\x3b\xcb\x7e\xad\xf0\x11\xcb\xec\x69\x7c\x1f\x34\xb6\x67\xad\xb1\x3d\xe6\x94\x7e\x4f\xac\x8e\x74\x0f\x39\x75\xff\x50\xc4\x9a\xfa\xd7\x87\x4d\x75\x24\xf6\x6b\xf2\x63\x0e\x80\xc3\xfb\x05\x1c\xf6\xf4\x87\x79\x0f\x86\xdf\x4d\xb1\x06\x06\xf3\x1d\xdd\x09\xfa\x14\x55\xcb\xae\xc3\xc1\x0e\xc8\xf8\x4e\xbe\xbb\x5d\x50\x73\xcc\xf5\x31\x3d\xee\xc1\x19\x9f\x38\xe6\xea\x32\x4a\xfb\x46\x37\xe5\x0d\x74\x77\xa1\x74\x5e\x7a\x19\x3b\x91\x85\x30\x63\x34\xaa\x91\x6b\xb6\x42\x58\x25\xca\x5c\x2e\x39\x5d\x8f\x9c\x82\xc1\x83\x15\x89\xee\x43\x9e\xc1\x56\xdc\x93\xbb\x78\xdb\x27\x1d\x24\x7c\x46\xb8\xd0\xc5\x6c\xc6\x13\x90\x56\x2a\x9e\x8c\x94\x19\x80\xc8\x3d\x44\xda\xbf\x9e\xfc\x35\xdc\x96\xfd\x29\x5a\x9d\x18\xac\x7a\xd3\x3e\xf9\xf0\xb6\x62\x67\x5b\x3b\xeb\x2b\x44\xb7\x64\x13\x61\x33\x7b\x81\xaf\x42\x69\xfd\xf8\xce\x3d\x21\x0c\x51\x34\xec\x03\x83\x88\x9a\x2c\x73\x3d\xf5\x98\x07\x03\x11\x41\x59\x6a\xa0\xca\xfd\x21\x07\x95\x63\x55\xd2\x7e\x40\x11\xc4\xe8\x15\xaf\x44\x65\xc1\x93\x52\xa7\xcd\xfe\x99\x3f\x91\x07\x38\x59\x5b\xa3\xa4\x7e\x5a\x7b\x81\x28\x36\xcb\x5c\x45\xf0\x2a\x82\x6a\xb6\xc9\xe2\xde\x0f\x72\x77\x78\x10\x55\x65\xbb\xf0\xc6\x07\x0a\x70\x2f\x97\x7b\x47\x79\xb1\xbe\xac\xb8\xaa\xf1\x54\xbc\xf4\xf8\xd4\xc5\xbc\x9e\x4c\x2d\xac\xe3\x9d\x99\x5a\x73\x5a\xa2\x76\xd6\x06\x4a\x59\x2d\xc7\x52\x93\x27\x2e\x4a\x1a\xa4\x2a\xf0\x94\x3e\xca\x1a\xfd\xb6\x21\x03\xdb\x76\x62\x6e\x61\x78\x36\xe6\xc2\x68\xa3\xc6\x67\xc2\xfc\xa4\x2e\xd1\x6e\xd1\xe5\x3d\xf0\x01\x49\xe5\x21\xab\x65\xee\x05\x42\x97\x20\xae\x25\xc6\xbe\x45\x81\x39\x3e\x5b\xd2\x3f\xc0\xa2\xe4\xda\x52\x41\xe8\x54\xcb\xac\x30\xe1\x32\xbe\x64\xdf\xde\x92\xdf\xbf\x22\x10\xeb\x94\x33\x65\xcf\x39\x9d\x23\x49\xac\x81\xba\x6a\x83\x70\x5e\x64\x6d\xa8\x32\x9e\x06\x39\x14\x10\x74\xfa\xe6\xf5\x6f\x5e\x8d\xc9\x69\xed\x7b\x5c\x93\x84\x66\x89\xf3\xda\x81\x6d\x2a\xfa\xea\x74\x45\x94\x2c\x44\x8a\x5b\xe6\x14\xb2\x24\x98\xa3\x5e\x97\x18\x1d\xb4\x94\x71\x6d\xf5\xab\x0f\xdf\xe8\x32\xcf\xd8\x5b\x84\x23\x1b\xa7\xc4\xd9\xed\x37\x92\xfc\xf0\xfa\x37\x23\x3b\x56\xb8\xc7\x3f\xbc\xfe\x8d\x1f\xea\xdd\x12\x77\x8e\xd9\xd8\xc7\x4d\x35\x67\x2f\x7b\x05\x6b\xee\x21\x6d\xdc\x69\x27\xda\xc8\x3c\x77\x48\x42\x1a\x92\x36\xaf\x63\x71\x00\xa5\x1d\xd2\x87\x51\x65\x34\xb8\x40\xed\xdb\x0e\xbc\x53\x9d\x8e\xd4\x6c\x6d\x7b\x84\x15\xaa\x99\x20\x53\x7b\x26\x34\x29\x72\x00\x94\xd5\x5a\x61\x34\x98\x1d\x5e\x46\x13\x36\x26\x3f\x89\x84\x79\xc0\x76\x19\xaf\x12\x4e\xd8\x08\x6c\x05\xb6\x57\x88\x54\x63\xa9\x26\x52\x18\x49\xc0\x6b\x55\xeb\x7b\x44\xcc\xa2\xd0\x08\x52\xc2\x35\xa4\xa6\x14\xf0\xfe\x03\x87\x2e\x15\x9f\x73\xb1\xf1\x98\xc5\xdf\x87\xa5\xca\x32\x58\x24\xdd\x70\xdc\xf7\x09\xc6\x6a\x01\xc3\xdd\x9d\x3c\xed\x42\x93\x2e\x0b\xb5\xee\xf8\x7b\x28\x6a\xb4\x46\x83\x42\x56\x3f\x42\xa7\xb2\x06\xe2\xac\xbe\x76\x27\x82\x14\x47\xef\xc5\x34\xc6\x53\x09\x1f\xa9\xf8\xda\x2a\x8e\x9f\x2a\x84\xdc\x12\x84\xd7\x77\xa5\x46\xb1\x59\xe7\xfb\xdf\xff\xa6\x0f\xe1\xf1\x57\x29\xc2\xda\x84\x35\xa3\x76\xc1\x8a\x9c\xf0\xe5\x92\xa5\x9c\x1a\x96\xad\x7c\x47\xac\x76\x48\x1c\x11\x18\x11\x5d\x80\x6d\xc1\xd1\xde\x3a\x0d\x93\x19\xe6\xf6\x0c\x97\x37\x95\xb0\x26\x0c\x82\x42\xc9\x1b\x47\x2f\xaa\x51\x90\x70\xe5\xed\x9b\xf0\x06\x50\x2c\x40\x16\x5f\xf3\x2c\x63\xe9\xa8\x73\xf8\xb3\x42\xd9\xdb\x3f\xaa\xdd\xf4\x46\x64\x75\x0d\x7d\x08\x1e\xf2\xb5\x5b\x0c\xe6\x1d\x47\xe1\x1a\x87\xdc\x62\xf8\x7f\x94\x9c\xfb\x1e\xf9\x75\xdb\xf5\xd8\xfd\xd0\xa7\xf2\x56\xb4\x5f\x2f\xa0\x49\xee\x62\xed\x78\x35\xaa\x81\xa9\xb5\xb3\x65\xbf\x6e\x5b\xff\xc7\xfa\x11\xd8\xe2\xce\xb8\x03\x5e\xe1\x67\xa0\x7e\x8c\x7a\x7c\x3d\x9c\xed\x99\xcc\x32\x79\x8b\xa6\x3f\xdb\x00\x3f\xd3\x70\xbd\xd7\xae\x41\x5b\x90\x41\x5f\x9e\xe6\x6e\x43\x85\x6b\xb6\xdd\x86\xbd\xf2\xbc\x4b\x43\x0d\x9b\x15\x19\x58\x92\x3a\xb1\xee\x5d\xaf\xda\x69\x94\x39\x52\xc1\xe9\x95\xd8\xd9\x01\x52\x9c\x19\x86\x21\xb4\x5d\xbd\x5c\xad\xf2\x3e\x0c\x33\xa7\xca\xd4\x21\x49\x4d\x83\x3e\xf7\xed\x3c\x36\xc6\x19\x24\xa5\x4a\x41\x28\xa1\xc6\x39\x5c\xec\xc3\x68\x38\x91\x84\x18\x3e\x15\xd9\xfd\x4b\xe1\x74\x4f\x41\xcf\x77\xdd\xd7\x68\xe8\x9b\xe4\x97\x68\x82\x91\xd1\x10\x91\x29\xfe\xd8\x42\x64\x02\xb8\x7d\xb4\x81\x70\xff\x94\x09\xbb\x00\x4c\x8f\xc9\x59\xf8\xb7\xc7\xa3\x72\x61\x65\x02\xfd\x76\x22\xc8\x31\xf9\xcc\x8c\xd5\x79\xdf\x92\x53\xa2\xb9\x98\x67\x70\x43\xed\x05\x78\xff\xf9\x12\x53\x52\x4b\x6d\x04\x5d\xb2\x31\x34\xbf\x34\x52\xd1\x39\x7b\x4b\x4e\x35\x59\x5a\x6e\xf1\x0f\x99\x15\x4b\xf6\x2e\xa3\x7c\xa9\x09\x0d\x3e\x6b\x96\x8e\x27\xe2\xaa\xb6\x41\xf3\x82\x2a\x2a\x0c\x2b\xd1\xf1\x28\x5d\x0b\x1c\x83\x1f\xf6\x0a\x4d\xce\x34\xbb\xa5\x2b\xfb\x95\xdc\x23\x37\x00\x37\xab\x71\x04\xa1\xf1\x00\x4c\x79\xd4\xc0\x94\x01\x70\xf1\x5c\x00\x17\x11\x44\xbe\xd9\x0b\x79\x17\x30\x78\xcc\x56\xb6\x46\x83\x7b\xce\x5b\x92\xbd\x40\x19\xb9\x13\x73\xc0\x76\xd9\x3c\xec\xbb\xa1\xb1\x2b\xfc\x70\x4b\x38\xf6\xba\xd7\xe7\x3c\x1e\x73\xd4\xf5\x6e\x48\xec\xc7\x06\x7b\x8e\x39\xde\x5e\xb1\x24\x51\xc7\x7d\x80\xcf\x4d\xcd\xdb\x91\xcf\xda\xb5\x7e\xa2\xc8\xe7\xa1\xd4\xf8\x80\x7a\xee\x8b\x7a\x8e\x8f\xfa\x13\x43\x3d\x47\x77\xba\x03\xf6\x5c\x6b\xd9\x84\x7b\x8e\x9a\x0c\xc0\xe7\xc7\x2d\x5f\x36\x02\x9f\xef\xea\xad\x8f\x19\x55\xd4\xc5\x80\x36\xfe\xd5\x0a\xbf\x01\x6d\xbc\x35\xbd\x7b\x44\x70\xde\x3a\x8d\x3c\x94\x0c\xd6\x01\xe8\x3d\x25\xb5\xb6\x1b\x30\xbd\xb1\x0c\xdc\xc3\xc4\x24\xd3\x4f\x10\x34\xbb\x64\xc2\x9c\xcb\x8c\x27\x5d\x15\xca\x1a\xde\xf0\xae\x22\xcc\x06\x11\xcc\x93\x1e\xfe\xe6\x6c\x81\x70\x7c\x68\x86\x86\x49\x52\xe4\x23\xb4\x78\x62\xe6\x88\x90\x32\x42\x0a\x74\x61\x8e\x08\xc0\x84\x99\x08\x76\x4a\x6f\xc5\x0d\x11\xc2\x24\xc7\xaf\x73\x4d\xbe\xfe\xa4\x00\xbe\x0b\x60\xab\xaf\xd0\xb3\x62\xeb\x23\xe1\x82\x70\x61\xff\xd0\xb6\x43\x44\x45\xbe\xcc\x65\x7a\xfc\x7a\xe4\xdc\x81\x32\x3d\x7e\x33\x22\xcc\x24\xaf\xbc\xe7\x71\x2d\xd1\xe5\x2d\xe5\x96\xe6\x1b\x9e\x11\x46\x93\x05\x78\x52\x3d\x3a\xd8\xa7\xd2\x74\xc9\x30\xb9\x98\x8f\xc9\x3f\xeb\x93\x18\x95\x89\xd3\xd0\x8a\xbb\x94\x37\x65\x46\x4b\x99\xe7\x52\x73\xc3\x70\x78\x38\x61\x9a\x01\x03\x82\x4a\x3a\xd1\xa4\xcf\xa9\xa2\x59\xc6\xb2\xaf\xce\xbc\x17\x57\x33\xf6\xba\x5c\xee\xda\x60\xd6\x4f\x0f\xe9\xf4\xfa\x1f\xee\x85\xc7\x58\xdb\x99\x01\x9a\xda\x4e\x5d\x0a\xf7\x2b\x58\x90\xa1\xeb\x14\x4a\x12\x81\x95\xd7\xbb\xce\xa5\x48\x7a\xe7\x95\xd8\x1e\xc4\xa2\x6a\x20\x96\x75\x67\x5c\x68\xe1\x64\x42\x34\x8f\x79\xcc\x26\xac\x9e\x66\x6e\x99\x7d\x5f\xc2\x25\x02\x12\x9a\x05\xe3\x36\x86\x9e\x73\xa1\x0d\x15\x86\x97\x88\xb7\x60\x44\xf3\x5d\x62\x5d\x42\x2b\x8d\xdf\xf0\xb4\xa0\x59\x04\xe6\xcc\xb4\xcb\xa2\x43\x1b\x2c\x8b\xab\x31\x39\x9b\xc5\xf0\xea\x91\x3f\xc6\x8f\x27\xdb\x66\xd3\x2b\x01\x3f\xb4\xe6\x12\xf2\xad\x6b\xe9\xff\x96\x94\x23\x3c\x3f\x9c\xe8\x88\x22\xbd\xd0\xe1\x35\x5f\x7d\x1e\x4f\x78\xfd\xa9\x5f\x41\x84\x1d\x42\xf6\x22\xff\x35\xcb\x65\x03\x07\x47\x57\x06\xf5\x86\x81\x6c\x45\x68\x9e\x67\x9c\xa5\x6b\x14\xd3\x51\xeb\x2a\x05\x29\xe1\x17\xcf\x2c\xaf\xa7\xde\x17\xc6\xfc\x09\xc0\xc1\xb5\xed\x29\x61\x9f\xe9\xba\x99\x60\x6d\x55\x42\xcb\x10\x47\x61\xff\xed\x2f\x3a\xfe\x8c\x0b\x33\xb7\x23\x14\xba\xcd\xb0\xe4\xdb\xc2\xe2\x40\xd6\x23\x4f\xfb\x6b\x47\x1e\xa9\x29\x30\x08\x9d\xdb\x43\x6d\xb5\xfa\x32\x9f\x60\xcd\x8e\x1f\x46\x62\xc6\x68\xda\x9a\x33\x43\xde\x7f\xbe\x3c\xf1\x4e\x05\xb7\x6d\xe8\xc8\xc3\xfd\xa0\xc6\x72\x87\xb7\xc0\xbc\xbc\x40\x70\x8c\xd4\x77\x1c\xcd\x78\xec\x0e\xfd\x58\xdf\x24\xe3\x24\x2b\xb4\x61\x6a\x9c\xc9\x84\x66\x8e\x5d\x4e\x8e\x1a\x7a\x98\x1c\xd9\xb1\x63\x62\x8d\x90\x9e\x20\x76\x51\xb4\x66\xb7\xeb\xa5\x69\xdf\x27\x92\xdf\xdc\x1b\x92\xff\x83\x97\x0b\xb4\xa1\xcb\x9c\xa5\x60\x7a\x6c\x58\x3b\xe8\x7e\x56\x64\x33\xfb\x5f\x38\x68\x55\x36\xe3\xb8\x49\x21\xf8\xcf\x45\xe9\xbf\x29\x95\x13\xc5\x74\xc0\xac\x55\xe4\xbe\xc6\xc5\xde\x53\x65\xff\xe8\x43\x5b\xd4\xf6\x2f\x6a\x35\x27\x2b\x8e\xca\xd6\x2e\xab\xbb\x60\xd7\x46\xae\xd0\xf9\xea\xbc\xca\xa5\xf9\xb7\xb6\xb2\x56\xe8\xa2\x25\x5b\x81\x33\x9c\x42\x9a\xde\x20\x1c\x34\xaf\xd2\x4d\xe9\x9e\xf3\x2d\xbb\xc4\x94\xa6\x57\xaa\x85\x5e\x12\xf4\xf6\x61\x56\xf2\x00\x07\x73\xbe\x78\x48\x9f\x36\x63\x8a\x59\x59\x8a\xd4\x5d\x80\x91\xf8\xd9\x40\x44\x96\x14\xa1\x74\x35\x42\xc2\x19\xa6\x31\xc5\xcf\x72\xbb\x14\xb7\xd4\xad\xa6\x67\xd0\xb8\xf4\x31\xe5\xa1\x58\x4c\xf9\xc3\x8d\xe5\x13\xf0\x6e\xb0\xac\x63\x34\xa8\xa5\x75\x78\x26\xbd\x27\x5f\x0a\x56\xc2\xd3\x5f\x4e\x57\x40\x4f\x5f\x11\x5c\x91\x4f\x90\xd0\x95\x0b\x68\x55\x46\xed\xb9\xed\x32\x41\x48\x3b\x6d\xfa\x98\xa1\xd7\x4c\x93\x5c\xb1\x84\xa5\x0c\xb0\x3d\x96\x71\x51\xb1\x72\x9d\xeb\x7a\x3f\x23\x74\xea\x06\x89\x0d\x5c\xb0\xfb\x89\x49\x08\xd4\xc6\xca\x10\x20\xd6\x45\x4e\xdc\xed\xed\x1d\x3d\xf5\xe0\x8d\xe9\x90\x5b\xf8\xdf\x1e\x8d\x82\x9d\x21\x3a\x6b\x6d\x37\xc5\xe8\xb0\x5d\xb4\xd3\xad\xd2\x07\x57\x1b\x07\x8f\x51\x57\x52\xe1\x1a\x6b\x6f\xbd\x7c\xf7\x90\x56\xf8\x5d\xf8\xda\x85\xa3\x5b\x4f\x29\x34\x28\x32\x85\x1f\x38\x34\xa8\xd1\x79\xd5\xf3\x16\x3e\x58\x6c\x90\x5b\x90\x9e\x71\x26\xb5\xd6\xeb\x51\xbf\xc0\xf8\xbc\x58\xb2\x51\x2c\x2b\xc5\x85\xf8\x77\xa7\x0e\x05\x46\x0c\x9d\x84\xaf\x1e\xea\xf4\x55\xfb\xef\xbb\x06\xd8\x7a\x64\xa5\x2f\x80\x81\x62\xc2\xb8\xaa\x08\xe1\xe7\xb3\x2e\x0d\x05\xbc\x96\x8b\x35\xaa\x0a\x0d\x9a\xfd\x5c\x00\x7b\xf9\xd7\xeb\x51\x6d\xd1\xeb\x29\x82\xfb\x08\xb4\x5b\x07\x48\xad\xbf\xd0\x10\xb1\xd3\x98\x68\x3a\x44\x1b\x55\x28\xd8\x99\xdd\x7a\x85\x62\x42\x1a\x1c\x19\x55\x15\xbc\xec\x6d\xe4\x2c\x47\x3c\x94\x5f\x24\x52\x90\x65\xe1\xdc\x27\xee\x5c\x9d\x9e\x9f\x39\x3b\xf9\x83\xc6\x5e\x55\xda\xde\xe9\x46\x94\x11\x76\x14\x52\xac\xad\xc8\xbb\x16\xdf\xdd\xbd\xc5\x6b\xd5\x4d\x5d\xbb\xcc\xeb\x40\xd9\x93\x7b\x5e\xd7\x6a\xe3\x43\xdf\x56\xbf\x5e\xc7\xb5\x0c\xcf\x23\xff\xc3\xab\xed\x2f\xef\x76\xc9\xa2\x6b\xad\xef\x89\x44\x57\x57\xf9\x40\xb8\xcc\x03\x47\xcc\xb5\x6b\x90\xbd\x84\xcd\x2f\x9b\x54\x49\x5d\xd1\x1c\x37\x2c\x39\x28\x95\xae\x72\x4b\xce\x94\x5d\x3a\x5f\xa5\x1e\xa8\x28\x17\x49\x56\xa4\x4c\x83\xca\x41\x53\xa4\x0e\x34\x2b\x91\xbe\x9a\x08\x96\x30\xad\xa9\x5a\xc5\x7d\x44\x90\x67\x2f\xde\x95\x1b\xe8\x47\xf7\x30\xb9\xb0\x9b\xa0\xd0\x9b\x74\xf6\xca\xcb\x9d\xc8\x67\x8d\xf2\x2e\x20\x23\xea\xa9\xa7\x5b\x31\xd0\xcd\x56\xa1\x9e\xf8\x8b\xea\xce\x1b\x07\xc9\xd8\x68\x50\x78\xc0\xec\xd8\x85\x59\x58\x55\x1b\x7d\x75\x00\x44\x92\xd7\x4c\xd8\x9b\xcc\x6e\x37\x1c\xfc\xa8\x15\xa1\xc6\xea\x7f\xe8\x31\x88\xfa\xb3\x6c\xcc\xd8\x66\xf0\x9c\x00\xec\xc5\xee\x95\xc2\x62\x68\x6f\x49\xdc\x47\x70\x5a\x3b\x54\x5c\x42\x93\x45\x49\x9f\x6e\xd9\x74\x21\xe5\xb5\xeb\x2e\xfa\x86\x54\x24\xcf\x8a\x39\x78\xd0\xa0\xa5\x95\x83\x8f\x69\xce\x75\x4d\x30\x18\x30\x1f\x8f\x10\xf3\x31\xc0\x2a\x9e\x0b\xac\xe2\x30\x98\xe2\x4d\xb4\xa9\x1f\xba\x78\x21\x33\x10\xd3\x50\x04\x01\x8b\x48\x80\x27\xba\x0d\x25\x53\x66\x0f\x11\xb3\x07\xcb\xee\xe4\x7e\xd1\xc5\x1b\xa7\xb0\x0d\xce\x78\x06\x01\x83\x96\xcc\xf9\x64\xcc\x70\x96\xd1\x8d\x13\x38\xce\xed\x82\x41\xb0\x70\x3c\x3f\x1f\xee\x16\x51\xe6\x9d\xca\xa0\xd9\x05\xef\x92\xb1\xf6\x09\x7f\xa9\x2e\x1d\xde\x9c\x66\x3c\x4c\xcc\xb2\xf6\x83\x85\xe9\x3c\x79\xbd\x38\xa3\xc7\xc4\x50\x12\xb5\x29\x43\xe4\x6b\xbc\x0c\xb3\x90\xc0\x9e\xf5\xe1\x5b\x45\xca\xad\xce\xd1\xa5\x0f\x9c\xfa\x76\x55\xd3\x7f\x69\x64\x9f\x71\x4b\x11\x83\x5c\x1a\x68\xa8\x3b\x5f\xa5\x47\x3b\xd8\xb1\x71\xe4\xe1\x6d\x4d\xa8\x1e\x13\xff\x9d\x63\x7a\x4b\x55\xc3\xec\xa4\x72\x85\x18\x6f\x98\xe2\xb3\x55\x1c\xbf\x67\x5b\xde\x02\x04\xc2\x30\x91\xfa\x00\xfe\xd8\x96\xef\x06\x4c\xcb\xb9\x44\x36\x79\x80\x30\x08\x19\xfd\x6a\x07\x90\x2b\x79\xc3\x53\x96\x8e\x2a\x6f\x7a\xc4\x08\x0a\x5b\x8e\xb7\x86\x1f\xdd\x67\xfe\x1e\x4e\x2e\x69\x90\x24\xc8\x06\x5b\x61\x1b\xf5\xdd\x01\x72\x08\xcb\xd2\x59\x18\x08\x36\xc2\xf9\x0d\x73\xfa\x73\xc1\xc8\x94\x51\x05\x59\xd5\xae\xd9\xee\x88\xdf\x7d\x08\x8f\x9d\x86\xfa\xb5\xb6\x7e\x26\x8a\x69\xbb\x3b\x0f\x75\x4f\xc0\x09\xe6\x8f\x44\x7c\x47\x92\x85\xd4\x2c\xd0\xdf\xaa\x14\x1a\x2a\x4e\x25\x72\x99\x53\x03\x9e\x30\xb8\x30\x53\xe9\x6e\x4d\x45\x62\x16\xa9\xdb\x21\x72\x1a\xdd\x24\xc4\x45\x88\x55\xe5\x89\x70\xca\x9a\xd5\x65\x4a\x64\x73\xad\x47\xa0\x34\xd1\x05\x70\x20\x31\xf8\xc6\x0b\x5d\xfe\x82\x5e\x2d\x90\x6b\xd6\x3b\x01\x8b\x1a\xc2\x2f\x98\x29\x91\x7c\xe3\xb2\x5f\xf4\x31\x38\xa1\xf5\x86\x66\x3c\xa5\xbe\xaa\x31\x8d\x67\xde\xb0\x7c\xe8\x26\x34\x85\x8a\x20\x38\x2e\xc7\x47\xbd\x7f\x23\x5d\xf1\x9d\x92\x48\xc4\xa3\x74\x84\x89\x97\xd3\x22\x40\x73\x80\x0e\xd0\x9a\x56\x61\x3f\x68\xd7\x03\x0d\x3e\xf5\x2f\xba\x0f\x22\xd0\x20\xfc\x16\xf1\x49\xfb\x95\xc9\x91\x51\x05\x9b\x1c\x8d\x62\xe2\xa7\x71\xfa\x84\xce\x29\x17\xda\x74\xd1\x11\xbb\xb2\x0f\x44\x48\x2a\xf3\xe9\xbc\x04\x95\xb9\xaf\xd7\x13\x2f\x89\x35\xd5\x5a\x26\x9c\x06\xc6\x50\x51\xf0\x9a\xe9\xce\xc6\x0a\xe3\x4c\xa9\x75\x50\x52\x6d\x78\x1f\x6c\x9b\xf6\x61\x25\xf6\x58\x8a\x17\x20\x96\x27\x0b\x96\x5c\xb3\x74\x07\x6b\x9b\x66\x5b\x63\xa3\x1a\x08\xe1\x17\xcd\xd4\x99\x98\xc9\x8d\xd2\x9d\x6d\xe4\x89\x9e\x7f\x61\x6d\x61\x01\xf9\xe1\x98\x99\x27\xeb\x87\x20\xdd\x61\xc4\xed\x14\x3b\x8c\x11\xc5\x6a\xa4\x4b\x4d\xa2\xb5\x5d\x44\xf0\x2f\xa2\x61\x86\x2f\xf3\x8c\xb9\x52\x74\xf8\xe3\x18\xba\x01\xa2\x36\xa3\x49\x9f\xa8\x73\xf6\xcd\xa8\x35\x8d\xa5\x34\x80\x9d\x37\xbf\x46\xda\xef\xd8\xc6\x5b\x56\xbb\x67\xed\x37\xad\x7e\x21\xeb\x17\xaa\x6a\xa5\x8b\x57\x2b\xec\x69\x13\x3f\x69\xb9\x41\xf1\xa6\xd6\x0f\x2e\x08\xce\xbd\x12\xc5\x01\x5e\x4b\xce\x08\xbe\x81\x82\x54\xe1\x8e\x22\x85\x98\x7b\x22\x67\xf7\x4e\xa7\x0a\xde\x49\x9d\x3c\xe4\x08\x6d\x00\x70\xfb\x23\x29\xb4\x9c\x07\x4d\x94\xd4\xda\x25\x7b\x3a\x9b\x55\x67\x88\x70\x61\x4c\xe5\xe2\x62\xe3\xf0\x37\xaf\x57\x79\x94\x06\x2c\x47\xea\x45\x48\x17\xcc\x0e\xee\x99\x94\xcf\x00\x18\x63\xc8\x97\xb3\xf7\xf5\xea\xd9\x7d\x89\x8c\xe8\x06\x06\xfa\xdd\xc2\xa9\xe2\xe4\xb3\x55\xcb\x9c\x97\x52\xcc\x01\x93\x4a\x13\x40\x64\xdb\xa7\xbd\xc7\xb6\x37\x32\x32\x65\x86\x0e\x36\xc4\xd6\x13\x3c\xd8\x10\x07\x1b\xe2\x60\x43\x7c\x48\x1b\xe2\x1a\x81\x7a\xa2\x86\xc4\xf5\x79\x0c\xd6\x44\xf8\xdf\x3d\x59\x13\x61\xfd\xef\x62\x52\x6c\x3e\x88\x83\x5d\x71\xb0\x2b\x0e\x76\xc5\xbe\xc4\x6e\x30\x2e\x0e\xc6\xc5\xc1\xb8\x38\x18\x17\x7f\x5d\xc6\x45\xa4\x86\x4f\xce\xc2\x58\x1b\xf6\x60\x66\x24\x83\x99\x71\x30\x33\x0e\x66\xc6\x9e\xb4\x44\x2a\xfe\x4b\x70\x56\x7c\x94\x09\xcd\x2e\x0b\x78\xeb\x34\x49\x98\xd6\x9d\xd6\xc6\xb6\x57\x90\x9a\x97\xca\xae\x54\x00\x10\xa7\x38\x5f\xa9\xf0\xfc\x82\xde\xeb\xc1\xb4\x54\xc0\xec\x01\x04\x5d\x26\x3f\xb5\xe7\x3d\x87\x3c\xff\x7f\xa5\x37\x90\x87\xbb\x7c\x46\x74\x22\x73\xa8\x86\xe7\xb4\xa0\x25\xc4\x11\x72\x43\x96\x45\xb2\x20\x8c\x6a\x8e\xa5\xd0\xe6\x8a\x0a\xb3\xfe\x9e\x4b\xaf\x81\x67\xd1\x43\x80\x73\xa6\x96\x5c\x63\xdc\x18\x4c\x82\x8b\xf9\x60\xad\x1c\xac\x95\x83\xb5\xb2\xbe\xec\x4f\xc9\x5a\x59\xa1\x73\x0d\xf4\xea\x60\xf6\xca\x31\x41\x8d\xac\x24\x3e\x10\x59\x3d\x65\x84\xfd\x5c\xd0\xcc\xdf\xcb\xf2\xe7\x95\x2c\x5c\xf8\x7a\xd4\xa9\xd3\x59\xc6\xc4\x72\x44\x1f\x65\x63\x90\x23\x82\x75\xa4\x6a\x2e\xdc\x8f\x65\xb4\x73\xcd\xee\xc7\x36\x6a\x6f\xad\x8b\x9e\x47\x2e\xf2\x34\xec\xa2\xe5\xea\x6d\x32\x8b\xb6\xb2\xdc\xbd\x21\x2e\x2b\xbb\xf8\x59\x8a\x0b\x47\xdc\x4e\x0d\x12\x0c\xb6\xc9\xe0\xd3\xd8\xbe\xe4\x95\x5e\xf4\x0d\xdf\x20\xb4\x6c\x55\xc6\x0f\xcf\x60\xdf\xc4\x71\xa0\xab\x11\x0d\xc4\xa0\x43\xd7\x07\x18\x4f\x9c\x5a\xd1\x27\x65\xbe\x59\x74\x66\xcb\x37\x8b\xa0\xa9\x5d\x7c\x24\xf6\x95\xb2\x74\x1e\x0c\x62\x7b\xba\x77\xc3\xd4\xb4\xe3\xbb\xff\x60\x6a\x1a\xf2\xb6\xf9\x2a\xdb\x7f\xbd\xba\x3a\x27\xf0\xf2\x3d\xcb\x75\xd1\x2e\x5e\x14\x95\x3a\x23\x1b\xf6\xdb\xb6\x6c\x20\x78\xb5\x0c\x2a\x94\xa8\x22\xce\x71\x13\xed\x72\xf7\x06\x8a\xf2\x6b\x5f\x2e\x3e\x76\xa9\x3f\x9f\xab\xad\x1d\x37\x77\x79\xfe\xa9\x82\x7c\x73\x85\xca\x42\xf6\x7c\x90\x34\x9d\x60\x84\xf1\x9f\x70\xbf\x80\xef\x92\xdf\x56\xd2\x72\x60\x06\x16\x29\xb2\x15\xa1\xb8\x69\xb3\x22\xcb\x46\x64\x06\x25\x15\xb4\x61\xb9\xb7\x7f\xd9\x03\x34\x26\x64\x72\xf4\xdb\xc9\x11\x59\x32\x2a\x80\x38\xdd\xbb\xbe\x65\x4f\x51\xd7\x7a\xf9\x33\x58\xba\x11\x4a\xb2\x56\xbd\x8e\xa7\xe7\x67\x70\x2e\xf5\x88\x64\xfc\x9a\xbd\x25\x73\x66\x46\x24\x97\xda\xfe\x7f\x61\x46\x4e\xed\x1a\x11\x08\x82\x1f\x91\x05\xa3\xe9\x88\xc8\x1c\xc5\x88\x07\x5a\x8d\x9e\xa4\x1f\x57\xaa\x8b\xf6\xf7\xbe\x4a\x5b\x51\xcf\x3d\x91\xce\x3d\x93\x4d\xcf\xa5\x36\x9d\x9d\xbf\x80\x76\xe6\x08\x98\x3d\x1e\xf8\xc0\x51\x4e\x3f\xaf\xce\xad\xef\x43\x4d\x7b\xa8\xd2\x6d\x39\xbc\xc2\xc2\xa0\xcc\x15\x8a\x6b\xa0\x4b\x8a\x4c\x8e\xe6\xcc\x4c\x8e\xac\xd4\xe0\xed\x06\xfe\x07\xfc\x7b\x72\x34\x26\x93\xa3\xc9\x11\x79\x09\x22\xd5\xab\x3b\xcf\x03\x24\xb8\x1e\x93\x41\x49\x2f\x9a\x11\x3e\xf0\x8e\x33\xd4\x82\x6b\x93\x1a\x13\xf2\xce\x27\xbe\x03\xa3\x86\x82\x1e\x84\xaf\xf6\xee\x5f\xc2\x6a\xef\x42\x46\xfd\x82\xb5\x24\xcb\xca\x27\xba\x3a\xed\x58\x8c\x84\x25\x6a\x93\x4a\xd6\xdf\x43\x1b\xbd\x7d\xc7\x65\x19\x3b\xae\xe9\xe4\xba\x69\x85\x27\x47\x34\xcb\x26\x47\x28\x18\xb4\x69\xf3\x4e\x9f\xa2\xa4\xc9\xbc\x20\x15\xb9\x64\xd9\xac\x53\x72\xea\x97\xa0\xd2\x31\xac\xae\x2c\x29\xee\xb4\x59\x9d\xb0\x74\x73\x42\x3e\x38\xdc\x29\xaf\x35\x5a\xa5\x6a\x2f\x77\x43\x17\xd3\x9e\x83\xbb\x2c\x5b\x6e\x31\xbe\x30\x3c\x21\xc5\x2e\xa9\x3d\xb7\x90\x84\x68\xcc\x7d\xd6\x38\x4f\x85\xf1\x58\x76\x35\x22\xb7\xc8\x6b\x30\xa6\x7e\xe4\xf4\xe3\x88\x15\x29\xf9\x6d\xb5\x97\x45\xbe\xe9\x65\xb6\xf1\x36\x9b\x88\x26\xfe\xa3\x9a\xd8\xe0\xee\x54\x71\x6f\x02\x5f\x4f\x69\xaf\x22\xea\xb9\x89\x79\x59\x01\x89\x90\x93\x60\xf1\x96\xc5\x9a\x58\x14\x04\x0f\xbe\x5d\x77\x65\x31\xab\x12\xf6\xa1\x52\x86\xb9\x80\xb5\x78\x61\x88\xe6\x73\x01\xd9\x8b\x85\x19\x81\xdd\xc4\xe5\x08\x23\x69\x81\xc5\x81\x99\x46\x33\x54\x2e\xb5\xe6\xd3\x0c\xb0\x86\x5c\x24\x72\x99\xdb\x0d\xef\x67\x81\xfb\x4b\x1f\x33\xfa\xe9\xf9\x19\xb6\x6b\x62\x29\xfe\x47\x57\xff\x4e\x46\xd9\xd3\xa2\x49\x5a\x2d\x7c\x59\x64\x86\xe7\x19\x1e\x05\x67\x8d\xb7\x22\x65\x94\xf4\x15\xb2\x09\x24\xb1\xf7\x9b\x95\xee\xc7\xf8\x8a\x8a\x62\x09\xf9\x2f\x62\xe2\xc7\x05\xbc\x1f\x7a\x0f\x99\xf1\xdc\x16\x3c\x02\x29\xd4\x0f\x16\x58\x5a\x4f\xea\x09\x6d\xd1\x69\xee\x24\x48\xc8\x49\xc9\x4d\x79\xf4\xa2\xd4\x97\xb0\xee\xf6\x74\x62\xa6\x57\x27\xbc\x9f\x06\xdf\x30\x33\x6e\xfa\xd0\x9a\xdd\x30\xb5\x32\x0b\x3c\x74\x8f\x70\x9d\xfa\xae\x51\x0d\xfd\x53\x9e\x09\x34\x08\xaf\xad\x47\x6d\x7e\xc1\x57\xef\x4f\x22\x09\x57\x63\x3c\x11\xb6\xf5\xc9\x4c\xca\xc9\x51\x3d\x85\x5b\xc4\x6d\xc8\x8b\x99\x94\x2f\x50\x5c\x82\x84\xbc\xd1\xa9\x6c\xeb\xfa\xc9\xe9\x40\x1d\xfa\xcf\x1e\xd9\xd0\xb3\x52\x81\xda\xe4\xae\x0d\xf9\x5c\x9a\xdf\x68\xf0\x11\x99\x28\x93\x20\xe8\xef\x8d\x0e\xa2\x31\x21\x9f\xa5\x01\x93\x22\x26\x9b\x27\x74\xcd\xc8\xea\xe4\x4c\xfb\x5b\x45\xf2\xb5\x32\x3f\x88\x8e\xce\x7e\x60\x0f\x32\xcd\x48\x42\x35\x1b\x91\x29\x4b\x68\xa1\x9d\xfb\xcd\xdb\x0e\x5c\xa5\x3d\x4b\x79\xad\x46\x66\x24\x8e\x3b\xb6\x55\xae\x9a\xc7\x39\x78\x8d\x06\xaf\xd1\xe0\x35\x7a\x36\x5e\xa3\x66\x2a\x76\x48\xcf\x11\x82\x03\x44\xea\xe5\xcb\xe0\x3a\xb2\xd2\xcf\xe0\xef\x79\x82\xfe\x9e\x5e\x46\x8b\xbd\xb9\x7b\x36\x1d\xd9\xad\xd9\xf5\x46\x7c\xbc\xb3\xad\x7b\x90\x2f\x21\x1f\xbe\xd1\xc4\x64\x2b\xaf\xe6\x04\x53\x68\x3c\xc4\xc8\x2e\x6a\x8f\x45\xec\x6c\x6a\x69\xe6\x2f\x80\x8e\x6a\x24\xf6\x71\x2f\x34\x9a\x6b\x77\xbc\x19\xcd\x3e\xb4\x4d\xb7\xa2\xd9\x8b\x56\x3a\x51\x62\xb2\x80\x16\xca\x8a\x79\xbe\xba\xb6\x9b\x55\x8c\x7d\x4e\x74\xcb\x59\x76\xed\xdd\xa6\xf9\x76\xcf\x75\x6f\xb6\x91\xe8\x74\x5f\x14\x19\xdb\x4a\x7a\x8d\x5e\x28\x95\x76\xa7\x3c\xb1\x35\xb3\x49\xab\x20\x7b\xcb\xad\x92\x1a\x23\x99\x7c\x61\x14\x07\xb6\xae\x1b\x61\x5c\xe8\x65\x69\x0e\x21\x29\xcb\x19\x16\xbc\x97\x22\x22\xaf\x00\x1c\x8f\x9d\x0a\x4b\x99\x3a\x41\x8d\x8a\x15\x01\xc4\xae\x26\xec\x5b\xce\x14\xe0\x9e\xd3\xb8\x78\xbb\xe3\x3c\x20\x60\xb7\x4c\xba\x2c\x22\x0e\xe9\x01\xa7\x2b\xf2\xe5\x0c\xa4\x44\xbd\x90\xb7\x27\x0b\x9e\x7a\xeb\x35\xd6\x74\x32\x92\xfc\x5c\xf0\xe4\x3a\x5b\x91\x8c\x19\xc0\x74\x8b\x14\xd7\xc3\x15\x98\x0c\x5c\x90\xab\x18\x79\x05\x59\x19\xdd\xc7\x3e\xff\x74\x45\xfe\x5c\x7e\x90\x7d\x73\x42\xa8\x5e\x69\xab\x56\xd9\x8f\xa4\x8a\xdf\xd4\xdd\x29\x29\x4b\x5c\xf6\x6f\xea\x15\x67\xca\x35\xd3\x56\xdc\x9d\x41\x67\x29\xcb\x0b\xb3\x1a\x61\x44\x2b\xc9\xf8\x8c\x19\xbe\x64\x27\x8a\xdd\xc8\xc4\x65\xcc\xb5\x0b\x07\x29\x76\x13\x23\xec\xb9\x84\x92\x26\xca\x8e\xaf\x81\x40\x62\x73\xb0\x9d\x57\xd4\x1c\xaa\x7c\x75\x51\xe8\x08\xb3\xf3\x4b\x2b\xc7\x5b\x7e\xd8\x32\x68\xef\xe2\x69\x40\xa1\x0f\xda\xc4\xa0\x4d\x0c\xda\x04\xb6\x79\x0e\xda\x44\x44\x60\x0f\xa7\x4c\xdc\x8b\xb6\x10\xcf\x64\xff\xca\x42\x03\x9b\xa5\x6b\xcc\xf5\x89\x44\xcd\x6e\xad\x2d\xc4\xb2\xca\xc1\x95\x85\xfa\x89\x8c\x84\xa3\x56\x61\x7b\x6b\xf7\xb7\x91\xe1\x78\x82\x4d\x1b\xca\x74\x8c\xc9\x85\xdb\xa3\x7b\x77\x9a\x6d\x69\xd3\xdc\x2f\xe6\x7d\xe0\xee\x03\x77\x1f\xb8\x7b\x7d\xd9\x9f\x2e\x77\xbf\x47\x3b\xe1\x60\x07\x7c\x8a\x9c\xfd\xfe\x6c\x80\xdb\xdb\xff\x9e\x81\xed\xef\x69\x46\x9c\x7e\xb0\xa3\x6e\xaa\xe9\x13\xc2\x6e\xc7\x7f\x61\x06\x5a\xbd\x7c\x45\x96\xcc\x2c\x64\x5a\xf2\x84\x6a\x10\x2a\x21\x97\x5c\xf8\x02\xa7\xdc\xd2\x94\xbc\x88\x92\x68\x94\xc8\x51\x5f\xb3\x8c\x12\xc5\x66\x99\xcb\x57\xb0\x60\xaa\x0d\x10\x76\xe7\x38\xd6\x2a\xfa\xc6\xb9\x36\x56\xb2\x78\xa1\x18\xb1\xb2\x83\xa5\x6e\xb3\xb5\x30\xda\xc3\x03\x0a\x06\x7b\xf1\x33\xb2\x17\x47\x73\xed\x0e\x4e\xfe\x72\xf6\x7e\x33\xcf\xb5\x47\x72\x43\x9a\x84\x6d\xb3\x13\x6c\xc8\x27\x00\xba\x42\xc3\x65\x20\x67\x33\x08\x0d\x43\xe4\xcd\x8a\x4c\xe0\xad\xc9\x11\x44\x2e\x58\x09\x6f\xe2\xee\x95\xcb\x7a\x01\x48\x45\xee\xe4\xf0\x5c\x61\xd4\xb4\x26\x93\xa3\x7f\x02\x3d\x98\x41\xe2\x02\x72\xcb\x14\x73\x4a\xca\x92\xf9\x5a\x46\x54\xac\xdc\xad\x7c\x04\x2a\x58\x77\x65\xca\x4e\x01\xa5\x5d\xa3\x42\xf1\xa2\x4b\x9d\x72\x42\x08\xc7\x63\x06\xba\x29\xb9\x52\x05\xb3\xab\x18\xe1\xb5\x6f\xbd\x69\x3c\x04\x95\xcc\x68\xa6\x19\x81\x28\xf5\x5b\xae\xdb\xe8\xe9\xc6\x1c\x1b\x29\x13\xbc\x73\x84\xef\xa1\x11\xe0\x7e\x1d\xa2\x6e\xf3\x00\xb1\xd3\x51\x39\x32\x1c\x29\x9c\x31\x48\x7e\x43\xcb\x29\xe3\x1c\x2c\x8b\x4e\xc3\x57\xe0\x99\x3b\x65\x35\x6e\xb2\xa0\x00\x49\x97\x39\x17\x20\x21\x88\x52\xb4\x93\x65\xbb\x68\x54\x63\xe2\x46\x6f\x35\x1d\xa7\xa9\x18\x37\xf6\x68\xe5\xed\xa3\x9d\x72\x94\x04\x9f\xc6\x87\x3e\xd9\x4a\xaa\xad\x1d\x4c\xd1\x89\xa9\x21\xfa\x49\xcb\x25\x43\x57\x0a\x91\x09\x38\x79\x2a\x6e\x94\xaa\x45\x1f\x6c\x02\x58\x64\x4a\x13\xcb\x9d\x15\xcb\x56\x1e\xe4\xca\xb0\xf8\x19\x7a\x46\xa0\x43\xbb\xd0\x31\xd2\x48\x5a\xc5\xb1\xc0\x7a\xd3\x6a\xc9\x45\xbd\x7b\xed\x04\x6d\x41\x74\xce\xb1\xf0\x2a\x37\x63\xf2\x23\x24\x5d\xd1\x86\x8a\x84\x8d\xc8\xc5\x9f\x4f\xdf\xf9\x14\x73\xe0\x61\x81\x30\x7a\x25\x33\x57\x7a\x9a\x09\x59\xcc\x17\xf0\xc0\x61\x58\x0d\xcf\x32\x9f\x4c\x0c\xc7\x24\x0b\xe1\xaa\x17\x57\xfd\x36\xeb\x79\x9d\x7a\x53\x46\xec\xaa\x13\x13\x09\xdf\xab\x9c\x6d\x2c\xd9\x55\xea\x0e\x2b\xe0\x08\xa8\x35\x40\xa2\x9b\x52\x6d\xc0\x43\xbb\xb3\x2d\xa9\x59\xad\xf0\x74\xa3\x4b\xb3\xd8\x96\xee\xad\x9b\x4f\x3b\xc9\xde\xda\x2b\x6b\x98\x65\x97\x97\x8b\x3a\x1b\x9b\x3b\x8f\x50\xd7\x1e\x71\x6c\xee\x60\x6c\x76\x2e\x62\x1f\xe1\x9e\xeb\x58\x95\xe3\xe8\x53\xe3\xf3\x42\x85\xd4\x42\x9d\x0e\xc7\xd8\xd9\xf8\x67\x07\xbb\xab\x1e\x6d\x1c\x2f\x44\xe9\x81\xdc\x7e\xc3\xa0\xce\x20\x0d\x00\x58\x46\x95\xab\x77\x0d\xfe\x52\x6e\x5e\x68\xa2\xe9\x0c\x2e\x0e\xd5\xba\x58\xb2\x0a\x7a\x7d\x41\x7d\x51\xee\xe0\x67\x1c\x11\x76\x63\x39\xe5\x0c\x7f\xc0\x6e\xf4\x76\xb0\xf3\xbb\x51\x18\xbb\xf8\x38\x15\x3b\x93\x44\x2e\xa7\x5c\xe0\xf4\x61\x1d\x61\x7b\xc7\xd5\xf3\x1e\x68\x45\x9d\xf8\xc0\xba\x94\xc3\x19\x11\x5d\x24\x0b\xa8\x5d\x2c\x62\x12\x8d\x11\x9c\x92\x21\x2c\xbf\xc8\x73\xa9\xcc\xfa\xbb\x98\x8f\x8c\x1a\x12\x07\x09\x80\xae\x76\x22\x15\xa9\xc5\x89\x36\x78\xa8\x77\xa0\x07\xe5\xcb\x1d\x8b\x78\x56\x1e\x55\xc7\x1a\xb0\x1c\x9d\x47\x8b\x47\x69\xcb\xc0\xe8\x60\x0f\x28\x24\x57\x51\x95\x11\xe2\x25\xe0\x1a\xab\xaf\x26\x72\xb9\x84\x08\x50\x26\xa0\x8e\x34\x83\xc3\x0c\xa5\xe5\xe3\xe5\xab\xac\x6a\xf0\x45\xc7\xbf\x37\x2d\xad\x8e\xcf\xfb\x0e\x6c\x4c\xd4\xd6\xbb\x7f\xa8\x2c\x6e\xcf\x5d\x82\x3b\x62\xdd\xe2\x3e\x02\x3c\xc8\x06\x6d\xef\x4e\xda\x17\x44\xc3\xdc\x45\x41\x54\x5b\x6c\xc1\xfe\xd6\xff\xe9\xae\xfd\xdd\x16\xbe\x27\x33\xae\x6e\xca\xa6\x3b\xd3\x4c\x6a\xf6\xc5\xc4\x31\x11\xdb\x90\x42\x69\x48\xa1\x34\x38\xb8\x06\x07\xd7\x33\x77\x70\x21\xb1\x1b\xf2\x28\xed\x71\xe1\x06\xa7\xda\x43\x24\x53\xda\x25\xe1\xfc\xfa\x7e\x0e\x69\x95\x7e\x85\x69\x95\xd6\xb6\x7e\xc8\xad\x34\xe4\x56\x1a\x72\x2b\xdd\xf1\x3e\x0d\x09\x96\x86\x04\x4b\x43\x82\xa5\x21\xc1\xd2\x90\x60\x69\x4b\x99\x68\x48\xb0\xd4\x3d\xa8\xfd\x8a\x7e\x43\x96\xa5\xcd\x36\xba\x21\xcb\xd2\x90\x65\xe9\x01\xd6\x69\xc8\xb2\xf4\xa8\xb4\xa1\x21\xcb\xd2\xee\x1c\x66\x48\xb5\x34\xa4\x5a\x1a\xbc\x4b\x83\x77\xe9\xd7\xe9\x5d\xfa\x35\xe5\x5b\x1a\xfc\x42\x8f\x2a\xe9\xd2\x7e\xdc\x42\x43\xfa\xa5\xfd\x47\x99\x6c\x72\xb8\x3d\xbf\x98\x9a\x56\x9b\xf8\xc3\x05\xd6\xec\xd7\x86\x32\x64\x63\x1a\xb2\x31\x0d\xd9\x98\x06\x85\x63\x50\x38\x06\x85\xe3\x11\x29\x1c\x4f\x3f\x25\x53\x45\xa1\x18\xf2\x32\x3d\x70\x5e\xa6\xbd\xeb\x13\xbf\xc6\x0c\x4d\xad\x3a\xf2\x90\xa6\x69\x60\xfb\x64\x60\xfb\x03\xdb\x7f\xf4\x28\xf6\xc1\x86\xf8\x64\x59\xfe\x43\xd8\x0f\x87\xd4\x4d\xfe\xe1\x90\xba\xe9\x5e\x52\x37\x0d\x99\x9b\x06\x53\xf3\xe3\x31\x35\x47\x13\xfe\x55\xe5\x70\x7a\xc2\x29\x9c\xba\x64\x90\x21\x8f\xd3\x86\x11\x0e\x79\x9c\x86\x3c\x4e\x43\x1e\xa7\xa7\x9b\xc7\xa9\xc3\xe6\x3a\x24\x73\x1a\x92\x39\x0d\xc9\x9c\x86\x64\x4e\x43\x32\x27\x7c\x7c\x77\x85\x6c\xc8\xe8\xf4\x10\x1b\xf0\xdc\xd3\x3a\x49\x9d\xd0\x8c\x8b\xf9\xf8\xe6\xcd\xf8\x9d\x92\x5a\x3b\x37\x0d\xda\xa4\x2f\xd8\x8c\x29\xcb\xfd\x36\xf0\xf3\x0d\x6f\x95\x2c\xdd\x49\x6b\x95\x04\x00\x12\x90\x39\x56\x47\xe4\xa9\x15\x32\x67\x2b\xc7\xf9\x67\x0c\x98\x83\x5f\x95\x3d\xfb\xa1\xbc\xd3\xa9\x8c\xfb\x85\xd1\xee\x90\xc4\xa1\xaf\x07\xa6\xf6\xa1\x3f\xdd\xa3\x7f\x63\x72\x74\xb8\x18\xea\xae\x69\xbd\x3d\x39\x29\x4d\xd6\x76\x62\xa9\x4c\xf4\x49\xa1\x99\x3a\x9e\x17\x3c\x65\x27\x6e\xdb\x39\x53\xfa\x3b\x70\xd8\xee\x57\xe2\x85\xed\xa9\xcf\x6b\x4f\x57\xe5\xaf\x96\x52\xd8\xc3\x9d\x9d\xcb\xf4\xd4\xfd\x56\xb1\x9b\xd4\x97\xcc\x0b\x9a\xa5\x43\x93\x2c\x42\x27\x24\x97\x29\xa1\xa1\x9b\xc1\xf3\x3a\x78\x5e\x07\xcf\x6b\x7d\xd9\x0f\xeb\x79\xed\x70\x18\x62\xfa\x1d\xb7\x37\x7e\x24\x07\x5f\xaf\x30\xe5\xc6\x05\xd9\xd5\x2f\xdc\x83\x90\x75\x3a\x85\xa7\x6c\x41\x6f\xb8\x2c\x94\x53\xaf\x3d\xe5\x3a\xf4\x8a\xd8\x39\x1f\x53\x91\x1e\xa3\x11\x69\xef\xb8\xb2\x3e\x6b\xd3\xed\x61\xf6\xf8\xeb\x66\x1b\x7d\x4c\xe8\xfb\x5b\xa5\xf7\xeb\x09\xf6\xf3\x6c\x76\x00\xb7\xb1\xb7\x76\x27\xf0\x76\xfe\xdf\x1e\xab\xfc\x91\x6b\xb3\x81\x9d\x7a\x5d\xa4\x95\x87\xba\xbb\xaa\x07\x5e\xfa\xa8\x79\x69\x93\xb6\xb6\x87\xbd\x6e\xed\x7b\x7f\x64\xe0\x4e\xba\xf8\x20\x42\x3c\x17\x11\xc2\xd2\xa9\xfe\x02\x04\x1c\xe5\x20\x3e\x6c\xaf\xd3\xe0\x91\xee\x52\x62\x1e\x01\xab\x00\xf2\x7d\x8f\xec\xa2\x03\x2b\xe4\xb2\x4b\x24\x7b\xd2\xbe\x96\xf4\xdb\x05\x03\xdb\x54\x17\xed\x2a\xf2\x9c\x29\x92\xf1\x25\x37\x65\x72\xc3\xc2\xbb\xae\x73\x99\x3a\xd3\xbe\xf3\x65\x68\x66\x3c\x14\xad\x1c\xd0\x9f\xec\xaf\xee\xd2\xe9\x25\xcd\x32\xb4\x85\x0b\xf2\x89\x0b\x3f\x8c\x1a\xe9\x43\xb1\xc3\x0e\x80\x0b\xf3\xc3\xf7\xcd\x37\xc5\x72\x92\x79\x4c\xc8\x2a\x57\xa5\xec\xbb\x63\x8a\x51\xcb\x60\x29\x94\xb7\x1b\x66\xad\x7c\x6b\x23\xc9\xed\x82\x27\x8b\xda\x7c\x61\x31\xe0\x9f\x24\x95\xb7\x02\x7d\x67\x2e\xa7\x18\xbc\xf4\xc6\x2e\xdc\x98\x90\xda\x97\x23\x03\xe4\x94\x91\xd7\xc1\x93\x9c\xe5\x0b\x4a\x66\x8c\x5a\x92\x42\xe6\xd4\x30\xf2\xd7\xf3\xd3\x4b\xdb\xff\x95\xfc\x7f\x99\x92\xe8\xe5\xa4\xd3\x8c\xa5\xe8\xff\x31\x24\x63\xd4\x25\xd4\x41\x15\x81\x48\x45\x3e\x78\x9b\xf9\x92\x19\xc5\x93\xaa\xf7\x68\x4c\xc8\x25\x1e\x52\x18\x49\x62\x20\x2c\x4c\x93\x4c\x8a\x39\xd8\xdc\xe3\x3e\x5d\x07\x48\xd0\x79\x94\xa1\x6f\xef\xbb\x08\xab\x78\x45\xd5\x9c\x99\x0b\x20\x71\x77\x12\x88\x37\x19\x08\x37\x91\x3f\x15\x0c\x82\x46\xe2\xc6\x96\xd6\xbd\x3f\x6d\x60\xeb\x90\x9f\x28\x63\x54\x89\x4a\x54\x63\x60\x76\x89\x14\xba\x58\x22\xc8\xcf\x6e\x1c\xb4\xb7\x57\xc8\xb6\x4e\x99\xb6\xf4\xb3\x7e\xdb\xa6\x2b\x52\x80\x33\xd9\x72\x36\x38\x04\x71\x96\x9a\x16\x7d\xc2\xc0\x0a\xbe\x3b\xff\xf2\xc5\xf0\xcc\x99\x88\xcf\x99\x4a\xac\x68\x37\xef\x32\x96\xe1\xcb\x84\xde\x30\x45\xe7\x8c\xbc\x3b\xff\x42\x8a\xb2\x1b\xf2\x32\xb0\x69\x84\xbc\x50\x92\x87\x9e\xf1\xb6\xf8\x3c\x4f\xef\xce\xbf\xbc\x22\x12\xf0\xa9\x59\x86\x59\x44\x65\xaa\xff\x64\xcf\xb9\xa5\x0e\x65\x06\x1d\x9c\x3e\xdc\x17\x12\x6d\xa1\x4f\x60\xef\xd3\x3e\x15\x7a\xcd\xcb\xbc\xe3\x89\xeb\xc9\xbd\x6a\xa7\x71\xd4\x4c\x50\x0f\x6b\xa2\xeb\xf4\x4f\xfb\x53\xe6\x50\x0a\x9b\x79\x45\x37\xab\x70\xdd\xed\x78\x76\xfc\x60\xda\x0e\x4f\x38\x0d\xf6\x24\x8c\xc8\x36\x47\x69\x44\xd8\x78\x3e\x26\xff\xf1\x3a\xce\x77\x45\x45\xf8\x94\x9d\x28\xd7\xee\xb2\x08\x79\x4b\xfe\xe3\xf5\x6f\x10\xaa\xa1\xab\x1d\xed\x9d\x68\xb9\x49\xf7\x64\x3f\x7e\x89\x1a\xf8\x8b\xbf\xf3\x4b\x2a\xe8\x3c\xf2\xa9\x36\xf1\xfa\x3d\x8d\xdd\x51\x9d\x9e\x63\x5f\xa7\x51\x0f\x39\xf6\x8c\x6a\x83\x6c\x91\xaf\x7b\x00\xee\x20\x22\x43\x77\x9b\xf8\x83\xfd\x30\x31\xdc\xc1\x1e\x5a\x2e\xae\x67\x1c\xeb\x12\xd4\x9f\x42\x84\x76\x4d\x8e\x70\x60\x24\x25\x33\xb2\x90\xb7\x44\xce\x8c\xf3\xb5\xd7\x78\x02\x20\x4a\xa8\x98\xb7\xc6\x29\xca\x29\x20\x46\xd2\xbf\x30\xc1\xd0\x82\xdf\x25\x13\x49\x0d\xaa\xbc\x3d\x98\xf3\xf0\x12\xf1\xfd\x6c\xb9\x9b\x7f\xf8\xdd\x9e\x09\x71\xfd\x86\x6d\x38\xc0\x7b\xa2\xc6\x70\xae\x36\xa1\x82\x80\x13\x47\xe9\xe3\x28\xf1\x5c\xcb\xa3\xa4\xaa\x48\xda\xc1\xae\xf3\xa8\xed\x3a\x83\x81\xe3\xb9\x18\x38\xee\xe8\x23\x39\xb8\xb7\xbb\xc9\x9a\xb2\x67\x27\x09\x10\xa7\x4e\x97\x48\x4c\x3a\x9c\x7b\x44\x79\x27\x39\xd0\xf8\x67\xe5\x1c\xc1\x35\xe9\xef\x0a\x29\xc5\xe9\x87\x5b\x0f\x72\xc1\x68\x7a\x2c\x45\xb6\x7a\xac\x8e\x17\x64\x93\x87\xb0\x9b\x95\x67\xb8\x83\x09\x43\x0c\x5d\x19\xcb\x02\x22\x55\x19\xe4\x02\xea\x90\x5e\x57\x9b\x3b\x99\xb1\xda\x55\x22\xf6\x90\x70\x1d\x2c\x49\x4e\x10\x74\x0c\xf7\x30\x0a\xec\x1d\xa4\x9c\x6e\x04\x74\xd9\xaa\x9e\x30\xb7\x49\xf9\x3c\xe0\x6a\xd3\xc4\x14\x34\x8b\x16\x3b\x08\xa8\xe5\xaa\xc7\x37\x76\xbf\x8b\x1e\xd3\x24\x96\xb1\xc4\x74\x82\x90\x33\x3a\x65\x19\xf9\xb9\x60\x6a\x85\xaa\x6f\x69\x40\x75\xe2\xd6\x92\x1a\x67\x4f\x0c\x9a\x14\x80\x62\x4b\xcc\xac\xa6\x4b\xe6\xab\xb3\x60\x7f\xfe\xe3\x10\x57\xe0\xd3\x11\xa3\x48\x82\x33\x03\x5c\xf6\x8d\xe4\x76\x59\x8c\x92\x96\xac\x80\xe0\x37\x5d\x39\x49\xc2\x81\x1b\xdd\x4b\xde\xbe\xe2\xbb\xb2\x1f\x74\x1d\xb9\xef\xc2\x0c\x8e\x73\xaa\xe8\x92\xe8\x95\x30\xf4\x5b\x44\x0b\x9d\xa7\xb8\x3a\x36\xdd\x13\x53\x05\x6f\xe9\xef\xe0\x3f\xc7\xe1\xe5\xfd\x02\xab\xd4\x5e\x75\x83\xef\x11\x68\x39\x80\x0f\x7b\x6c\xd0\x00\x3e\x1c\xc0\x87\xee\xbe\x78\x6f\xc4\x27\xf0\x25\x5c\xd6\xcb\x7a\x34\x84\x6c\xaf\x35\x8f\x42\x33\x16\xf2\x36\xd8\xe6\x89\x14\x10\x5f\x09\x3e\x0a\x08\xb6\xd4\x5a\x26\x1c\x8a\x09\xb8\x18\x99\x15\xf9\x7b\x99\xf4\xdc\x09\xfc\x2f\x2d\x7b\x66\xdf\xe8\x32\xcf\x18\xc9\x98\x98\x63\x99\xb4\x9f\x0b\x56\x00\x29\x4c\x32\x59\xa4\x64\xc9\xb4\xa6\x73\x4b\x25\x2d\xa3\xe1\x09\x83\x6c\x7d\xff\xeb\xfc\x12\x35\xb5\x4c\xd2\x74\x4a\x33\xcb\x79\x14\x51\x85\x10\x10\xcb\x53\x18\xcd\x53\xd8\x73\x57\x17\xe6\xd5\xb8\x12\xbc\x3f\x71\x36\xf6\xc9\x11\x94\x23\x89\x72\x05\x6a\x66\xfa\xb8\xf3\x60\xae\x9f\xbb\x8f\x5e\xd9\xb0\xa9\xd2\x83\xf7\x0b\x09\x82\x31\xb8\xad\x11\x13\x1d\x1a\x9c\xdd\xa0\x16\x7e\x78\x17\x47\xb5\x65\x09\xa1\xdf\x4d\x22\x7b\x75\x08\x68\x04\x46\xb7\x5a\xa0\x95\xd4\x7b\x1b\x12\xb4\xdb\x69\xa6\x38\xd3\x65\x7a\x49\xac\xc6\x8b\x1d\x6d\xf4\xa9\x9c\xa2\xb5\xf9\x1f\x56\xf5\xbf\xf3\x64\xc7\x81\x6a\xff\xaf\x82\x0a\xc3\xcd\x6a\xe3\x3c\xd7\x47\xe0\x77\xd5\xb9\x6c\x72\xa6\x8e\x73\xe9\xcc\x2d\x76\x97\xe7\x99\x9c\x96\x0e\xc0\x97\x60\x62\xff\xd9\x7d\xea\xd5\x98\x7c\x2a\xac\x38\x95\xad\x08\xfb\x66\x0f\x2a\xbf\x61\x78\x61\xd0\xe5\x01\x5f\xd8\xb8\x18\x0f\xb8\x0a\x4d\xd3\x0f\xd3\x8e\x0e\xf7\x96\x73\x8e\x17\x77\x07\xb8\x43\x74\x31\x0f\x48\x3b\xbb\xe4\xf5\xa6\xe6\xb5\x94\x70\x5e\x6e\x0f\x4b\x46\x6b\x67\xa5\x37\x1d\xed\x41\xae\xdc\xc7\x1e\xf2\xea\x34\x0c\xc1\x1f\x9e\xb5\xa5\x70\x2b\xe0\xfc\x4a\xa9\xf3\x59\x79\xc3\x77\x0a\x32\x7c\xcb\xb5\x70\x7d\x3d\xe4\x14\x37\xcf\xad\xfd\x66\x6c\xa2\xee\x77\xe2\x34\x81\x35\x03\x51\x06\xa3\x78\xe4\xe2\xe5\x9e\xea\xba\x24\xb5\x03\x07\xaa\x71\xa0\xed\x29\x4f\xdb\x79\xdc\x27\x45\xda\x3e\x9e\xa4\xcd\x4b\xe6\x4f\x6a\x25\xdc\x04\x5d\x27\xad\x5e\xec\x91\x83\xe1\xd8\x27\x56\x41\x4a\x80\xa0\xa3\xe7\x51\xc7\xca\x34\xea\xd2\x3e\xe9\x46\x59\x23\xce\xca\x7c\xcb\xc8\x64\xbf\x66\xb2\x20\x53\x6a\x37\xd0\x45\x65\xe3\xe2\xea\x12\xb1\x30\x38\x73\x06\x67\xce\xe0\xcc\x69\x20\xc4\x0f\xe4\xcc\xf1\x5f\x5e\xab\x3f\xfd\xdc\x02\x60\x36\x93\xdf\x4e\x97\x8f\x76\xf9\xe6\xa2\x02\x66\x49\x49\x71\x23\x47\x50\x11\x3c\x41\xcf\x32\x56\xa6\x63\x19\xbb\xbd\x44\x3a\xa4\x64\x8c\xc5\xac\x5f\x4d\xf8\xcc\xf7\x3b\xe4\x50\xec\xbb\xfa\xef\xa4\xc0\x74\x82\xdb\x0b\x13\xe1\xd5\x9a\x3f\xc8\xee\x96\x93\x45\xdb\xc4\x10\xa8\x9c\x9e\x30\x05\x71\xfc\x40\xab\x7b\xf0\xf8\x8c\x6a\x73\xa5\xa8\xd0\xf0\xd1\x87\x40\x21\x55\xbf\x1e\xe0\xcc\x15\x7c\x52\x12\x56\xc5\x84\xd6\xcc\xe5\x37\x94\x82\x79\xdf\x8d\x91\x84\x0a\xc8\x56\xd5\x46\xdd\xb5\xee\x06\x00\xba\x56\xc8\x5a\x17\xc5\x92\x8a\x63\xc5\x68\x0a\xb9\x96\xd8\xb7\x3c\xa3\x2e\xe9\x8a\x33\x76\x5b\x36\x9b\x32\x43\x79\xa6\xa3\x1b\x53\x8e\xf3\x40\x09\x8f\x54\x48\x78\x84\xc2\x22\xfc\xe5\x49\x60\x58\xaf\x17\xda\xad\x64\x18\xce\x2e\x55\x8c\x1b\xc9\xd5\x46\x72\x52\x75\x3d\x97\xdb\xf7\xf2\x4a\x59\xd9\xec\x47\xcc\x0c\xf6\x45\x5c\x0b\x79\x2b\x5e\x6d\x3f\x24\xd7\x66\x23\x06\x78\x95\xb3\xda\x25\xf2\x44\x2e\x8c\x67\xbf\x06\x68\x78\x7f\x7d\xdd\xee\x41\x69\xe9\x88\xdc\xdb\xa0\xb8\x94\x35\x35\x87\xb0\xbe\xa7\xad\x31\xf4\x09\xeb\x83\x36\xf5\xdc\x32\x0f\x12\xe3\xd7\xa1\x84\x47\x5d\x0f\x81\x7e\xbf\x5a\xd5\xa9\x57\xa0\x5f\xab\xe2\x34\x04\xfe\x1d\x5c\xd0\xed\x00\x37\x6d\x78\xab\xc6\x99\x3d\x06\x69\x56\x08\xc0\x79\xd0\x8c\x9b\x95\x17\x1f\x5a\xba\xd9\x6b\xd0\x60\xd4\x32\xa4\xd9\xdd\x18\x47\xb8\x45\x44\x5d\x91\x43\x56\xbe\x32\xa2\x30\x63\xda\x41\x68\x96\x87\x0c\x27\x44\x93\x5f\x2f\xab\x77\x2d\x15\x64\x45\xb1\x46\x14\x98\x9b\xa3\x24\x85\xc6\x94\xa3\x34\x4b\x0a\xcb\x48\x2b\xfb\x57\x35\x5a\xbe\x04\xcb\x23\xfd\xc6\x97\xc5\xb2\xf6\x13\x4d\x94\xd4\x58\xe8\xdc\x8f\x20\x8e\x91\x7a\x35\x26\x00\xef\x69\xee\x17\x73\xf4\xe1\xe7\x53\x5f\xc3\x7f\xe5\x89\x36\x18\x60\xc9\x94\x99\x5b\xe6\x62\x0f\x2a\xce\x35\x4c\x56\x58\x77\x2c\xb8\x48\x86\xf5\xc8\x16\x70\x95\x10\xf2\x41\xcd\xe5\x28\x0c\x15\x4c\xe3\x90\x75\x3e\x65\x89\x95\xbd\x03\xbc\xc9\x72\xd0\x30\x48\x2e\xf0\xc7\x14\x65\x8b\x1b\x9e\x30\xa0\x09\x14\x0a\x57\xe3\xca\x71\x91\xf2\x1b\x9e\x16\xa5\xdf\xca\x73\x1b\x4b\x8c\x61\xe9\x97\x9e\xea\x57\x15\xf3\x85\xbc\x25\x8c\xda\x4d\xb1\x92\x6e\xe9\xf5\x81\x71\xb9\x34\xf1\x07\x64\xdd\xce\x35\x17\x55\x54\x20\xbb\x70\xeb\x21\xe8\x75\x08\x7a\xdd\x1a\x9d\xb6\xd1\xae\x55\x19\x0a\x1a\x42\x82\xe4\xef\x28\x41\x29\xd2\x39\x00\x0e\x5e\xd0\xc8\xe9\xe5\x43\x3d\x23\xda\x17\x5c\x28\x01\xea\x92\xc8\x2c\x63\x89\x81\xfb\xad\xc9\x2d\xcb\x32\x82\xa7\x0d\x41\x9e\xd9\xca\xc5\x38\xad\xfb\x73\x76\x29\x57\x76\x7f\x91\x9c\xbd\x6c\x8b\xdb\xb3\x7d\xb4\x09\x34\xab\xe4\xbd\x42\x3f\xfb\x38\xea\xbd\x6a\xdf\x19\xc3\x18\x1a\x06\xc1\x11\x13\x17\x47\x3f\xf8\x8d\x70\xb4\xa5\x12\x3c\x56\x62\xb7\xac\x18\x8f\xe7\x6a\xd4\x52\xc5\xc6\x95\x00\x33\x0b\xa9\x59\xdc\x3f\x55\x70\x47\xef\x5f\xbf\x2a\x0d\x94\x77\x21\xdd\x6e\xef\x3e\xf5\x92\x33\xaa\x8d\x2b\x66\x3e\xc5\x68\x5a\x1a\x38\x63\x6f\x65\x19\x64\xb8\x29\x70\xef\x00\x5c\xad\x62\xb9\xb9\xcb\xe2\x6c\x17\x51\x1b\x73\x99\x3b\x05\xd9\x02\x41\x82\xc5\xd5\x56\x08\x5a\x8b\xd3\x7c\x1c\x41\xb8\x75\x76\x7e\xa7\xd8\xdc\x72\xca\x91\x6c\x78\xf8\x89\x3f\x68\x04\x6f\xf8\x70\xb3\xd9\x7c\xeb\xb0\xde\xd1\xe3\x0b\xeb\x5d\x7f\xc1\xcf\xf5\xf9\x04\xfc\x8e\x1a\xf9\xd7\x3e\x59\x79\x24\xac\xb7\xf3\xed\xb2\x51\x80\x89\xd4\x60\xca\x01\x52\x42\x89\xe6\x62\x9e\x95\x48\x2c\xc8\x86\xfe\xd5\x8e\xf0\x2b\x30\x41\x28\xf0\x05\xcc\x0f\xc2\x43\x20\xb0\x83\xb3\x2c\xad\x02\x85\xad\xb8\x2a\x45\xc2\x5e\xf5\xc9\x9d\xef\xc4\xe2\xbd\x08\x97\x8d\x50\xee\x4d\xb7\x2d\x64\x6f\x07\xf8\x3b\x0a\x79\x35\xbc\xa1\x2f\xa7\xd5\x1f\x77\x68\xf5\x0d\x50\x26\x74\x05\x50\x16\x56\x39\xd6\xf9\x12\xb9\x84\x45\x54\x72\x69\xff\x9d\x4b\x01\x11\x4c\xed\x80\xed\x7b\x46\x87\xb7\x5d\x77\x38\xaa\xfb\xd8\xb2\x80\xa3\xe8\xb7\x61\xc1\x4e\x5b\x6e\x97\xdb\x27\x27\x80\x62\x75\x13\x77\x8c\xaf\x37\x62\xeb\x47\x64\xc1\x8d\x3e\xce\x99\x3a\xd6\xcc\xde\x50\xb8\x02\x82\x9c\x89\xb9\x62\xda\xbf\xd2\xb6\x06\x96\x30\xee\x65\x05\xce\x65\xaa\x7b\xcf\x1f\xc8\xf1\xe6\xd9\x83\xf1\x00\x72\x8e\x54\x93\xfd\xe0\x5d\x77\xaa\x52\x75\x1d\xc0\x8f\xe8\x92\xd1\x1f\xe7\x4a\x26\x4c\x6b\x96\x46\x2b\xe3\x0d\x37\xe8\x2f\x09\x36\x9d\x80\x44\x35\x72\x8e\x32\xf1\x94\xcd\xa4\x62\xae\x80\xa5\x3d\xd0\x54\x95\x9a\x57\x6c\xb0\x69\x59\x55\xaf\xc2\xed\x65\x65\x7d\xc6\xf7\xde\xab\x1b\x14\xc8\x78\x85\xc3\x43\x4f\x14\x7d\xf5\x07\x14\xfc\xcb\x64\x41\x5c\x94\x76\x7f\x4b\x2c\xc1\x80\xa1\x5f\x11\xf0\x86\xda\xbe\x22\x52\xb1\xf5\x7e\x41\x8a\x99\x77\xe7\x5f\xec\x35\x5e\xb2\xa5\x54\xab\x57\x63\x72\x59\x44\x0a\xac\x55\x3b\xa6\x05\xcf\x30\xf2\x2e\xfe\x1a\x2a\x30\x0b\x7a\xe3\x46\x4b\xb3\x90\x12\x02\xcb\xea\x68\xc0\x13\xca\x1c\x05\x75\x3b\xab\x60\x53\xb0\x3d\x09\x4b\xae\xb2\x00\xe2\x2f\xc5\x78\x6f\x9b\x9b\xc0\xb9\x9c\x1c\x91\xcd\xb9\x9f\x7a\x7a\x77\x3d\x76\xbe\x6a\xff\x72\x5d\x83\x35\xa7\xe4\x36\xae\xe2\xe4\xe4\x08\xe9\xc8\xe4\x68\x44\x26\x47\xe7\x38\x18\xa9\xc8\x24\xd4\x5f\xb0\xbf\xc0\x4a\x2f\x69\x9e\xc3\xb8\xe1\xf6\x54\xb9\x98\xdb\x81\xc6\xd0\xcc\xbd\xb8\x91\x0f\xc0\xfc\xbb\xd4\xf6\x0a\xd6\xbe\xaa\xa5\x5b\xb1\xf2\xb8\xaa\xa6\xd5\x24\x80\x07\x66\xe0\xdd\x70\xa7\x81\x81\x3f\x2a\x06\xde\xbd\x61\xcf\x9b\x81\x77\xcf\x7f\x60\xe0\xbb\x33\xf0\xee\xd5\x1d\x18\xf8\xd3\x60\xe0\xfe\xfc\x6d\xcf\xbe\x6b\xb5\x92\x9f\x36\x0b\x6f\x50\x7e\xda\x19\xf9\x7a\xe3\x3e\x61\xc7\x15\xaa\xba\x27\x72\xda\x0d\x18\x7b\xc0\x80\x3a\xda\x1e\x85\x5a\x09\x36\xf3\xd9\x19\xab\xb1\x67\x91\x03\x5b\xb1\x8c\xdd\x50\x61\xd0\x04\x76\x5f\x41\x69\x7b\x0b\x7f\x6e\x4b\x04\x72\x2f\x61\x67\x3a\x0a\x38\x2b\x93\x80\x1c\x33\x91\xc8\x14\x1d\x2f\x4b\x27\x6d\x7a\x58\x4f\x74\x34\x6b\xb9\x44\xbc\x07\x38\x8e\x43\x23\xff\x5c\x30\x41\x34\x33\x23\x28\x75\xac\x49\x4e\x2d\xc3\xf3\x95\x0e\x43\xd9\x77\x02\x99\x41\x98\x41\x5b\x67\x25\x62\x0a\x0b\x57\x06\x47\x7c\x88\x81\x0b\x0d\x12\x09\x7a\x02\x7c\xa9\x10\xf0\xad\xff\x2a\xb4\x89\x7a\x81\xfd\x8b\xf1\x0d\x50\xd0\x95\xa2\x7d\x0c\xbb\xd9\x18\xa5\xfc\xa0\x0e\x55\x77\x27\x4a\x1b\x3d\x28\x06\x69\x53\x1c\xed\x86\x29\x3c\xc1\x40\xeb\x1d\xe8\x3e\xee\x56\xf3\x45\x6f\x59\x92\x83\xb1\x89\x2e\x7d\x6f\xbd\x71\x77\x84\xf5\xc0\x2b\x3a\x22\x93\x0f\xc1\x2c\x9e\x70\x48\x76\x0b\x49\x18\xd8\xdf\x7d\xb3\x3f\x2f\xee\xae\xcb\x86\x07\x67\x8c\xe3\x81\x33\x1e\x90\x95\x1c\x2c\x3e\x7e\xcd\xdb\xd0\xce\x49\xea\x4d\xb7\x54\x37\x0e\x64\xc6\xd8\xb7\x15\xa3\x1b\x6d\x7c\x28\xaa\x36\x10\xb5\x67\x28\xd3\x3f\xea\x34\x4c\x87\x91\x69\x7a\x92\xbe\x4d\x32\x73\x65\xd5\x0e\x44\xee\xba\x04\xe7\x7a\xd3\x5d\xc4\xe6\xc3\xd0\xbc\x67\x97\xc8\xe8\xc9\xd9\x5f\x06\x52\xbd\x59\xfe\xac\x8b\x0a\x4f\x4a\xfa\xbc\x13\xfd\x6a\xba\x79\xfb\x24\x60\x8d\x18\x86\x76\x22\xd6\xd4\x7c\xa3\xdc\x56\x77\x8e\x34\xf8\x3a\x00\x82\xd9\xe5\x25\x19\xed\xc9\x23\xb2\x37\xf9\x6e\x4c\x1e\xad\x77\x85\x90\x9f\xc4\x9e\x12\x6e\xf6\xc8\xf2\x2a\x5a\xa8\x5c\x99\x74\xea\x4e\x8a\x76\x85\x81\x47\x95\x99\x7a\xd5\xf2\x5a\x7f\x6d\x0b\x89\xa5\x7e\x74\xdb\x78\x47\x67\x35\x27\xec\xcc\x17\x62\xaa\x7c\x32\x7c\xc3\x93\x41\xcc\xb1\xb7\x67\xb4\xf1\x13\x17\x1d\xfb\x6f\x04\x2c\xbe\xa2\xb7\xae\xbb\x97\x5c\x68\xc3\x28\xe4\x56\xde\xbc\x2f\xaf\x46\x44\xf3\x25\xcf\x68\xe0\x18\xe1\x52\xad\xc7\xd7\xed\x40\xdc\xf7\x9e\x55\xb8\xd1\x75\xdd\x9b\x6e\xf7\x14\x40\x1f\x1d\xf1\x7e\xac\x14\x77\x5b\x09\xba\x3f\x1d\x6b\x7d\x6f\x1b\xe1\xf7\xe1\x28\x59\xe9\x8d\x07\xa8\xf7\x94\x11\xd7\x3f\xe1\x33\xf2\x75\x9d\x2a\x7c\x25\xb7\xf6\x3c\x95\x92\x5f\xe9\x8f\xb7\x6b\xef\xef\x62\x1c\x68\x7c\xa8\xaa\x76\x4f\x58\xd9\x79\x74\x04\x33\x9c\x02\x9a\xdd\xd2\x95\x76\xf2\x87\x3d\x6e\x73\xaa\x52\x08\x6c\x0f\x49\x7f\xba\xf7\xbb\x71\xd7\x1e\x48\x52\xd9\x86\xfe\xdf\x9b\x58\xff\xfd\x50\xa4\xa1\xcf\xde\x45\xfb\x31\x14\x69\xd8\x38\xad\x67\x5e\xa4\xe1\xfb\x5f\x7b\x91\x86\xbe\x5e\x8a\x3d\xf8\xcd\xbe\x77\xc0\xf2\xb3\x70\x62\x7a\x24\x98\x26\xe1\x7c\x55\x94\x06\xf7\xe3\x74\x85\xe4\xdc\x0a\x7d\xc1\x2e\xb6\x41\x11\xda\xe3\x2c\xae\xea\xfe\xb6\x56\x77\x5f\x19\x1b\xb7\xa6\xf5\x34\x99\xc0\x76\xb5\x1f\xad\xdb\xbe\x0f\x79\x4f\x9e\x68\x42\xfe\x3d\x1e\x00\x60\xdd\x5b\x54\xd7\xab\x24\xcc\xa9\xce\xbd\xe3\x18\xac\xd9\xa1\x9f\xe4\x65\xdc\xf9\x30\xfb\xad\xdb\xe7\x69\x76\x89\x56\xb8\x98\x9f\x43\xc1\xf5\x4d\xd9\x29\x6a\x4d\x5d\x1e\x38\x0c\x23\xf0\xe5\xda\x31\xe1\x47\xa1\x0d\x59\xc8\x2c\x25\x46\xb9\x5d\xa5\x91\x86\x9c\x53\x9f\x43\xf0\x86\x66\x3d\x8e\x6c\xce\x14\x97\xe9\x25\xb8\x6a\xba\x02\xe4\xcf\xe3\xb6\x35\x8a\x73\xcb\x45\x0a\x31\xd8\x18\xe8\x1d\x25\x67\x5a\x84\x09\x38\xeb\x60\x18\xfc\x98\x54\x7b\x84\xa9\x4d\x19\x99\x2b\x46\xc1\xb8\xbe\xa0\x82\xfc\xc2\x94\x44\x5d\xdf\xe5\xa7\x12\x96\x07\xb1\x9f\x0b\x9a\x41\x36\x9c\x3f\xbe\x7e\x4d\x5e\xfe\xf0\x9a\x2c\xb9\x78\xb5\x7f\xcb\x56\x37\x64\xfc\xca\x41\xc6\xbd\xa1\x1e\x97\x05\x05\x54\x5d\xa9\xb7\xbf\x83\x75\xf2\xa6\x49\x3b\xac\x0d\x00\xd5\xb7\xca\xc5\xa7\x4b\x9f\x9e\xdf\xa5\x7a\xc1\xad\xe0\xda\x2a\x5c\x4b\x6e\xa2\x24\x04\x6e\x68\x56\x83\x6a\x5d\xfe\xbd\xac\x6a\xcf\x9b\x59\x4f\x57\x8a\x2b\x30\x6a\x3b\xb0\x87\xb9\xae\x17\x45\xc6\x36\xe6\x92\xa9\xb6\x2c\x33\x21\xe9\xca\xb6\x87\xe2\xaf\xf6\x36\x48\xc1\x48\xca\x15\x56\x0c\x04\x1c\x88\x66\x04\x5f\xa7\x8a\x11\x9a\xe7\x99\xbd\xbf\x74\x66\x20\x07\x14\x26\x8b\xb0\xbd\xbc\xaf\xa5\xa5\x00\xd1\xcb\xdb\x8c\x3c\x51\xff\xeb\xf9\x29\xf4\xb9\x82\xf4\x51\x98\x7b\x2a\x1e\xca\x0d\xcb\x64\xc2\xcd\xca\x6e\xbb\x3b\xa1\x20\xd6\xc5\x07\x94\x33\x1d\xf5\x91\x2b\x66\x35\x05\x32\xcb\x5c\xc4\x61\xf5\x4d\xf4\xcb\xd1\x69\x69\x30\x42\x0a\x30\x22\x5a\x62\xcc\x9a\x69\x4e\x7b\xe5\x42\xd9\xd0\x06\xa3\x0d\x15\x26\x5b\x8d\x88\x33\x0c\x8c\xb0\x5f\x3a\x63\x3a\xb0\x2d\x9f\xb0\xb2\xe9\x6b\x98\xda\x41\x6a\x26\xfa\x90\x3a\x37\xc9\x8e\xfb\xe4\x9b\x55\x13\xd1\xe6\xd2\x58\xae\x14\x99\xfa\xa0\x1d\xe4\xd3\xb1\x77\xcb\x2e\x99\x77\xd7\xa5\x85\x8a\x16\x77\x4c\x4e\xe3\xf4\x57\x8e\x16\xfa\xcb\x16\x28\xf7\x08\x33\x13\xdc\x72\xcd\xfc\x8e\x56\xce\x98\xf7\x26\xa5\x5c\x27\x54\xa5\x68\x40\xe3\xe2\x86\x66\x3c\x3d\x54\xe6\x99\x06\x16\x16\xf5\xb9\x75\xf6\x19\xe4\xd7\x6b\xbc\xb0\x69\x13\xe2\xa6\x4d\xd4\x15\x17\xbd\xca\x57\xdc\xf2\x8f\xc9\xd9\xcc\x1f\xb1\x91\xc3\xc0\x41\xf6\x34\x77\xa0\x3e\xd1\x6f\xd8\x2f\xfa\xa2\x7d\xef\xbb\xa5\xa0\x2e\x4f\xe4\x3f\xe1\x40\xf6\x63\xa4\x97\xad\x2f\x06\xfb\x51\xb8\x38\xda\xfd\x50\x72\xd4\x1c\xd3\x13\x59\xe5\x9f\x89\xd4\x65\x43\x8c\xf3\x7f\x09\xab\x80\x29\x2b\xcc\x2e\x78\x56\xd2\x80\x22\xb7\x9c\xd3\xff\x85\xc9\xe5\x36\x8c\xa4\x91\x1d\xc4\xac\xb7\x83\x33\xff\xf0\x07\xcb\x99\xed\x91\x5f\xc8\x42\xbd\xaa\x6e\x4b\xa1\xd9\xfa\xd6\xe8\xb7\xe4\x98\xfc\xe8\xc6\xc8\x48\x91\xbf\x25\xaf\xc9\x4b\x3e\x66\x63\x22\x64\xed\xfe\x73\x4d\x52\x29\xd8\xab\x71\xe5\x15\x3b\xa9\xb7\xe4\x87\xd7\xfe\xb5\x4d\x74\xc3\xb6\xf2\x8b\x9b\x49\x31\xdf\x93\xf4\xb0\xc6\xe7\xee\xc2\x91\x86\x6a\x40\x1d\x34\x7d\xc8\xed\x3d\x54\x03\x1a\x52\x5a\x93\x3b\x42\xb3\x86\x6a\x40\xdb\x90\xdf\xa1\x1a\xd0\x7e\x96\x71\xa8\x06\xd4\xa7\x1a\xd0\xf7\x77\x4a\x92\xde\xba\xfa\x7f\x76\xba\xe9\xf6\xb2\x84\x7f\xb3\x53\xeb\x75\x47\xdb\xc7\xa3\x08\x32\x95\x66\x41\xbe\xe4\xc0\xf6\xde\xcb\x5b\x51\xea\xc3\x9a\xbc\x84\xce\xdd\x8f\xf0\x6f\x68\x01\x51\xf1\x1a\x12\x47\x33\x48\x2b\x9c\xad\xfa\xb8\x13\x42\x07\xfb\x39\xc0\x35\xc3\xc0\xc6\x23\x1b\x86\xce\x75\xcd\xfe\x03\xb7\xdf\x3f\x7a\x0f\xe2\xf7\x66\x4d\x85\x63\x8e\x80\x2c\x8b\xfd\x3d\xa9\xc3\xc8\xc4\xe9\x9f\xd1\xd9\x8e\xa6\xeb\x48\xae\x6d\x16\x7d\x41\x32\xc6\xcf\x2d\xf8\x7c\xc1\xd6\x94\x89\x40\xa5\x20\x6f\xe3\x0f\xaf\x5f\x6b\x24\x67\x98\x02\x7d\x43\xaa\xe5\x2f\xf9\xc3\x2c\xf7\x97\xbc\x63\xb1\xbf\xe4\x7d\x96\xda\x2f\x88\x3d\xb9\x6f\x27\x82\x90\xdf\x86\x5c\xe9\x56\xff\x00\x40\x2f\x68\x39\xbf\x43\x4c\x77\xce\x14\xf9\x43\xd0\x21\xf0\x85\x54\x16\x00\xf2\x59\x4f\x42\x59\x6f\xfd\xb9\x41\xa3\x41\x3d\xf4\x5e\x75\x89\xa1\x2a\xd8\x50\x15\x6c\xa8\x0a\x36\x54\x05\xdb\x77\x55\xb0\x56\x82\xb3\x5b\x55\x30\xfb\xd6\x50\x19\xec\x39\x59\x0f\x9e\x60\x65\xb0\x76\x83\xdc\x5d\xac\xe2\x83\x19\xe5\xb9\x98\x51\x86\xca\x60\x95\x13\x7d\x87\xca\x60\x07\x52\x7a\x1f\x7b\x65\xb0\xe9\xba\x52\xde\xeb\x4c\xee\xa4\xf8\x6f\x3a\xa4\xd3\x07\xd7\xf1\x5b\xf5\xb5\xba\x5f\x74\x16\xf9\x8b\xca\x8e\x51\x4d\xa6\x8a\xad\xe9\x54\x31\x09\x18\x0a\xb1\x0d\x85\xd8\x7e\xd5\x85\xd8\x5a\x6f\x99\x6b\xec\x17\x5d\x33\x63\x77\xf5\x8f\xaf\x7f\x13\x62\x41\xde\x9d\x7f\x21\x45\x19\x2f\x74\x40\xa1\x6b\xa8\xe9\x36\xd4\x74\x0b\x8d\xf4\xbe\x6b\xba\x6d\x0e\x66\xe9\xb4\x3d\x0e\x35\xdd\x0e\x67\x2a\x18\x6a\xba\x3d\x95\x9a\x6e\x3d\xcc\xcb\x77\x21\xdd\xcf\xaf\xa6\xdb\xf7\x43\x4d\xb7\xa1\xa6\xdb\x76\x13\x1f\x6a\xba\x0d\x35\xdd\x1e\x7b\x4d\xb7\x86\x80\x9f\xae\xd2\x2e\x65\xd3\x8a\x69\x3d\x04\xf9\x60\x46\x05\x90\x71\x2a\x49\x9d\x7c\xd0\xe3\x41\x93\xcc\x54\x62\xa5\xb6\x77\x46\xfd\x2a\x92\x68\x3d\xc7\x64\x59\x7b\x0f\x00\x1e\x4a\x1d\xf6\x08\x88\xde\x74\x9c\x87\x4a\x49\x0f\x5b\x29\xe9\xfb\x5f\x7d\xa9\xc3\xef\x87\x52\x87\x07\xaa\x94\xf4\xfd\x50\xea\xf0\xb9\x56\x4a\x1a\x4a\x1d\xd6\x55\xfd\x67\x51\xea\xb0\x25\x53\xc3\xc0\xc0\x9f\x0c\x03\xff\x15\x96\x3a\xfc\x7e\x28\x75\x78\x5f\x0c\x7c\x28\x75\xf8\x5c\x18\xf8\x50\xea\x70\x3d\x1d\x53\x17\x0b\xc7\x66\x15\x73\x56\x7c\x1f\x47\xc1\x87\xee\xfe\x94\x2a\x3c\x89\x3c\xea\x8e\xc9\x57\x8d\x22\xbd\x0b\x52\xf5\x4f\x01\xba\xfe\xc2\x93\x48\x62\x4c\xde\xe1\xe5\x85\x4c\xd4\xd9\x8a\x40\x22\x04\x68\x72\x51\x1b\x53\x84\x98\xd8\xb7\x4d\xfe\xb1\x55\xff\xba\xaf\x4a\x91\x7d\xe9\x4b\x09\x3b\x0d\x2e\xca\x68\x0c\x9e\x04\x45\x47\x6f\x44\xfe\x11\xee\x44\x25\x7b\xe5\xd6\xc6\xd7\xc6\xd4\x39\x87\xde\x93\x9b\xfb\x2b\xea\x77\x18\x0a\x17\xe7\x1b\xeb\x22\x73\x51\x5b\xc8\xe9\xd4\x96\x74\xac\xbf\xa5\x7e\x6b\xda\xf5\xc4\xd3\x17\x3f\x77\x72\x74\x6f\x95\x53\x1e\xfe\xb2\xef\x58\x7e\x70\xed\xb6\xdf\xe1\x06\x3f\xd7\x72\xcc\xa1\x84\xdd\x4f\xfb\xd3\x85\x37\x61\xbe\x1a\x4f\xd8\x13\xce\x89\x18\xf3\xed\x67\x9c\xa0\xb4\x7e\x4c\xd6\xa7\xbd\xbe\x9d\xfb\x64\xa0\xcf\xba\xcc\xed\x33\xc9\x6c\x3a\x90\x92\x07\x4e\xaf\xba\x61\x2f\xf6\x79\x17\x87\x32\xa1\xbb\x95\x09\x7d\x92\x87\xf2\x57\xc2\xdf\xee\x25\x01\xf7\xaf\xab\xe0\xe4\x53\x67\x67\x4f\xf8\xd2\xde\x99\x93\xec\xf3\xd4\x0f\x55\x0a\x87\x2a\x85\x4f\xa0\x4a\xe1\xf3\xe4\x6b\xf5\xda\x45\x07\xe0\x6a\x43\x35\xbb\xc7\x74\x33\x7f\x35\xec\xb9\x6f\x79\xa4\x47\x55\x33\x6c\xe7\x8b\x37\xa5\x26\x59\x8c\x6f\xde\x8c\xff\x26\xa7\x1b\x2e\xd7\xdf\xe4\x34\x76\x0b\x99\xb5\xac\xc4\x31\xb6\xe9\xbf\xe4\x74\x48\xe3\xf3\xa8\xd3\xf8\x0c\xd9\x6b\x9e\x4b\xf6\x9a\x9e\x49\x80\x2f\xab\x49\x7f\x5f\xe8\x27\x9d\xf6\x37\x26\x5a\x9d\x79\x7d\x2f\x2b\xb9\x7c\x1d\xa5\xf6\xa1\x84\x71\x4a\x14\x0a\x84\xeb\x9e\x13\xf9\xee\x35\x8f\x6f\x65\x5d\xba\xd9\xe6\xbb\x86\xe0\xea\x87\x5d\x82\x35\x26\x78\xb8\x3c\x48\xb0\x56\xcd\x19\x90\x2c\x2b\xac\xfc\x10\x67\x3a\x7a\xb3\x45\x92\xa3\x78\x3f\xfa\xa4\xec\x8c\x9b\x45\x58\xe2\x38\x08\x9e\x95\xdb\xd4\x2f\xf7\xe6\xb9\x92\xd3\x7b\x0f\x3e\xfd\xd8\x92\x5c\xf3\x96\x6a\x92\x2c\x58\x72\xdd\x1a\x00\xfa\xb0\xe9\x42\xdb\xc6\xed\xb2\x5b\x6e\xc8\x07\xda\x96\xac\xa8\x57\x42\xd0\xbf\x16\x4b\x2a\x48\xc8\x01\x1a\xf2\x83\xa2\xf2\xb2\x9e\xff\xf3\xee\x19\x37\x7b\x65\x00\x7d\x39\x55\x9c\xcd\x5e\x3d\x82\xdc\x9f\x97\xcd\xd9\x3e\x47\x1e\xe0\xd8\x94\xf4\x73\x17\x85\xbd\x67\xe1\x30\x39\xb3\x17\x30\x1e\xc7\x3b\xb9\xcc\x33\x66\x6f\xa7\x22\x3f\x52\x9e\xf5\xaf\x4c\xd3\x53\xee\xdf\x73\xea\xcf\x98\x32\x75\xe4\xf6\x74\x2d\x50\x16\x74\x29\x4d\x1c\x27\xfd\x2f\x39\x1d\x12\x76\x3e\x6e\x49\x7f\xe7\x84\x9d\x7f\xab\xec\x6d\x6b\x5f\xdb\x8a\x25\x43\xd2\xcd\x41\x6d\xe9\x9b\x74\xf3\xb2\x39\xc9\xe6\x03\x28\x2c\x3d\x89\xf4\xbd\x27\xf3\xdc\x2c\xc4\x6e\x4e\xd9\xb9\xab\x20\xdb\x11\x0e\xef\x5a\x44\xe2\x2b\x78\x56\x16\x60\x16\x22\xec\x1b\x4b\x0a\x14\x05\x79\x96\x91\x4c\xca\x6b\x92\xf1\xeb\x5e\x35\xe0\x21\x99\xd9\x7b\x46\xd3\x8c\x0b\xd6\xb3\x64\x5b\xc5\x0c\x9e\x7a\x63\x15\x17\xa1\x86\x98\x62\x19\x85\x24\x69\x8e\x09\x68\x43\x95\xb9\x42\x09\xd0\x95\x43\xb4\xe3\xb6\x04\x60\xca\x7c\x42\x35\xe7\x63\x81\xf6\x2b\x6d\xd8\x92\x18\x05\x1f\x91\xc4\x30\xb5\xe4\xc2\xca\xe9\xdc\xfc\xc9\x11\x1f\x5f\x93\x2d\x97\x56\x4a\xba\x61\xc4\xc3\x41\xdb\x81\xa4\xfd\xd3\x8d\x44\xf7\x74\x4a\x93\x6b\x39\x9b\x7d\xe4\x4b\xbe\x66\x85\xdd\xb8\x30\x71\x42\x1d\x9c\x89\x9b\xe1\x92\xaa\x6b\xa4\x98\x5c\xc3\x3a\xcc\x50\xb6\x21\xef\xa3\x34\x78\x7f\xd8\x37\x20\x36\x41\x61\xaa\x47\x96\xae\xda\xfe\xae\xe5\x07\xd2\x45\x92\x30\xad\x67\x45\x96\xad\x88\x25\x51\x7a\xc1\x52\x44\xa8\xfa\x9d\x2d\xdd\x4a\xaa\x10\x10\xb5\x08\x89\x1c\x8d\x71\x41\xac\x82\x67\x64\xc9\xa8\xd0\xe5\x81\x70\xbd\xfa\xd2\x69\xb9\x4c\x89\xe6\x73\x41\x33\xbd\xf6\x73\x96\x39\x10\x32\x24\xf4\xc3\x98\xc7\x9c\x2a\x9a\x65\x2c\xe3\x7a\x69\x3f\x00\x36\x7c\xec\xc7\x1d\x0f\x44\x7f\x54\x46\xf1\x26\x1e\x43\xdc\x01\xd7\xe8\x80\x40\x1f\xdf\x9b\x90\x09\x33\x1a\x04\xbe\xd3\x3e\x48\xb7\x12\x8d\x74\xb5\xa1\xc0\x7f\x22\x45\xc2\x72\xa3\x4f\x6e\xa5\xba\xce\x24\x4d\xf5\x89\xcb\xfd\x93\x31\xa5\x4f\xac\x4c\x78\xac\x0a\x71\x6c\xe4\x71\xb9\x91\x27\x7b\x4f\x84\x4a\x45\x41\xcb\x9c\x2a\x5d\x89\x60\xe3\xc6\x3e\x55\x91\xae\xa4\x05\x82\x0c\x45\x98\x42\x05\xfd\x3a\xb0\x62\xee\x15\x3d\x26\x1f\x99\xdd\xa7\xaf\xd5\xae\xbe\x62\x7e\x13\x52\x08\x48\xff\xba\x92\x05\xb8\x6c\x7c\x8d\x8c\x5b\xbb\xf2\xfe\x61\x2a\xcb\xac\x28\x33\xab\xa9\x58\x5d\xc1\xa5\x47\x89\x28\x49\xce\x93\x6b\x3f\x8c\x42\xf0\x9f\x0b\x47\x9a\xdc\x05\x84\x73\x94\xe7\x0c\xe2\xb3\xc0\xad\xe3\xda\x96\x49\x09\x89\x61\xcb\xdc\x0a\xb3\x63\x82\x5f\x33\xa0\x1d\xd9\x5f\x0b\x8d\x55\x05\x31\xc4\x4b\x73\xab\x6d\x5a\xb5\xce\x7e\x14\x8a\x4d\xe2\x07\xa3\x55\xa8\x17\x8f\x75\x13\x1f\x13\x50\x73\x0a\x05\xa3\x83\x31\xd3\xca\xdb\x40\x31\x13\x8a\x15\x23\x39\xf6\x85\x99\x4d\xec\x01\x41\x0f\x94\x09\x99\x98\x31\xec\x2c\x31\xd9\x6a\x4c\xc8\x5f\xe5\x2d\xbb\x61\x6a\x44\xfe\xb7\x2c\xa0\x1b\xcd\xd6\x16\xfe\x3f\xed\x9c\xbe\x5a\x42\x8e\xdd\xd9\x85\xbe\x65\x76\xe9\xa1\xee\xa5\x0b\x3f\x86\x48\xb5\x2c\x25\x5f\xd9\x37\xc3\x84\x06\xf1\xe4\xe6\xcd\x94\x19\xfa\xe6\x2b\x39\x3d\x3f\x3b\xec\x91\xff\xae\x5c\xbb\xe3\x95\x2c\xd4\xb1\xbc\x15\xc7\xb9\x4c\x8f\x75\x63\x26\x20\x7f\xec\xa7\x52\x66\x8c\x8a\x96\xa0\xda\xf2\xea\x6f\x45\x1a\x7d\xc2\xde\x75\x12\xd9\x44\x0c\x2d\x25\xa4\x06\x88\x12\xfa\xcb\x0c\x5f\x32\x84\xb7\x61\xea\xca\xfa\xfb\x3e\x42\xda\x32\x56\xc3\x68\xba\x72\xb6\x2a\x0f\x53\x28\x6b\x8d\xc2\x61\x70\x6f\xdf\xda\xc3\xf9\xf2\xe5\xd8\xae\xd3\x38\x22\xfa\xe4\x98\x8c\x5d\x99\xb3\x92\x80\xbf\x22\x93\xe2\xf5\xeb\x1f\x12\x82\xcd\xa3\x85\x78\x35\x22\x50\x36\x14\xba\xb3\x33\xb1\xbb\x44\x32\x36\x83\xec\xb7\x29\xe4\x55\x2d\x07\xb0\xa4\xdf\x62\x02\xfa\xb4\xa8\xde\x83\xe6\xa6\x3a\x75\x37\xfb\xe7\x82\xa9\x15\x91\x37\x4c\xf9\xc3\x43\x43\xca\x08\x88\x16\x0d\x84\x08\x73\x99\x92\xcf\xe0\x6b\xce\x56\x15\x3a\xa7\x19\xf8\x11\xad\x36\x05\x81\xa5\x96\x0c\xad\x64\xb1\xf5\x7e\xd8\x71\xdc\x70\x76\x0b\x1b\x63\xaf\x9a\xbd\xf9\xc7\xae\xa8\xc4\x09\x52\xb2\x93\xef\xe0\xbf\xe1\xe2\xb5\x58\xdd\x3d\xdd\xdc\xda\xee\x9e\x48\xc5\xec\x5a\x9e\xcb\xf4\xca\xf5\xd1\xe9\x96\x78\x5f\x49\x15\x01\x64\x1b\x88\x98\xbb\x31\x81\x8e\xd9\x43\xed\xa4\x66\xc0\x8e\x1f\x9e\x53\x37\xaf\x8d\xc9\x9c\xc8\x7d\x3a\x33\x4c\xfd\xe8\x64\xa9\xae\x70\xc2\xe6\xb7\x1c\x66\xc2\xd9\x1b\x66\x0c\x2c\xae\x60\xd7\xfe\x9b\x9c\xe2\x3a\x2c\xa8\x2e\x05\xb6\x52\x6b\x78\xc9\x38\x30\x91\x75\x7b\x1b\x26\x9f\x8f\x0e\x14\xd7\x2e\x41\x76\xcb\x18\xb0\x66\xbb\x1d\x82\xfd\xa8\xfb\x96\xf6\x79\xd1\x58\xc6\xe7\xdc\x61\x25\xa6\xac\x56\x4d\x37\x65\xf6\xdb\xa9\x63\xe6\xbe\x0b\xae\x1d\xea\xca\xfd\x3c\x82\xd4\xaf\x76\x7e\xc9\x2a\xc9\x18\x99\x17\x54\x51\x61\x18\xd3\x0e\xfb\x31\xe3\x82\x66\xfc\x17\xa6\xf4\xab\xb0\xef\x0b\x29\xa4\x72\xe5\xb0\xab\x93\x89\x44\x05\xfb\xb5\x5b\x29\x5e\x98\x0d\x43\x6b\x5a\x0c\x5f\xff\xb9\xec\x65\xca\x12\xb9\x64\x6b\xd3\x75\xbd\x10\xbe\x5c\xb2\x94\x53\xc3\xb2\x95\x5b\x2f\x6e\xc2\x52\x59\x86\x10\x7f\x00\x12\x5c\x1f\x67\x56\xcf\xf6\xe9\x92\x21\xc6\xd7\x4d\x09\x4a\xd1\x3b\x7b\x0a\x6c\x31\xe6\xba\x86\xa1\x5c\x5d\x7d\xac\x6e\x8e\x4b\x93\x7d\xa0\xe2\xce\x2d\x26\x56\x7f\xfd\xf7\x61\x54\xed\x84\x2b\x85\x36\x6b\xb8\x8a\x75\x6f\xcf\xdf\xfa\x01\x2a\x40\x39\xed\xb2\x5f\x57\xd4\x3d\xea\x2a\x37\x04\x06\x7e\x90\x00\xc7\x92\xb8\xdc\xb7\x3f\xe7\x22\x5a\x5a\x4b\x63\x82\x88\x60\x85\x1d\x70\x46\x39\x3a\x92\x42\x52\x1a\x97\xc5\x26\x5c\x54\x9f\xc3\x5d\x63\x95\x8c\x05\x08\xde\xfa\xd8\x29\xc7\x52\xa5\x4c\xf9\x10\x48\xcd\xac\x50\x61\x37\x2c\x77\x2a\x85\xf6\x5d\xc6\xf1\xa7\x5c\x90\x8b\x1f\xdf\xfd\xf0\xc3\x0f\xff\x13\x73\x39\xba\x7b\xc2\x05\xf9\x72\xf5\xae\xc5\x87\xd4\x3b\x67\xf5\x55\x69\xc4\x2e\xb1\x5e\x98\xef\xd4\x15\x7d\x88\x2d\xe4\x2f\x6a\x8e\xc5\xfb\x94\x84\xf6\x61\x49\xde\x3a\x49\x75\xe5\xa7\x8a\xed\x2d\xb7\xdd\x1e\x2f\x99\x9a\xb3\xe3\x6b\xb6\xf2\x81\xf0\x9d\x6f\x68\x63\xb7\x7c\xbe\x42\x74\xb5\x9a\xb7\x84\x0e\xa1\xd1\x64\xab\x8b\x09\x82\x15\xe6\x95\x57\x8c\x26\x60\xb5\x58\x50\xcd\x9a\x9d\x4b\x7b\x10\x2c\xbd\xd9\xeb\x51\xdd\x4e\x9a\x5c\x0b\x79\x9b\xb1\x74\x5e\x66\x1d\x76\x8e\x37\x77\xde\x1e\xf1\xb5\x05\xd5\x85\xa5\xfb\xda\xf8\x4b\xdf\xdd\x81\x78\xe2\x96\x3c\x0e\x94\xe8\xf1\x3b\x25\xc5\x66\xe0\xa0\x6b\xd1\x1f\x3c\x98\x28\x29\x06\x04\xe1\xa3\xf7\x2b\x0e\xae\xb8\xe7\xe2\x8a\xfb\x55\x23\x08\x2b\x64\x6c\x9f\x50\x42\x4f\xc6\x46\x84\x8b\x24\x2b\xd2\x60\x40\xb5\x24\xbd\xc8\x0e\x7f\xcc\xee\x03\x67\x58\x5d\xbd\xdd\x00\x87\x81\xde\xff\xda\x51\x87\x9e\x97\xb6\x3b\x6c\x61\xb9\x77\xf0\xda\x56\xb6\xa9\x03\xed\x13\xb5\x6a\x42\xfc\xf8\xdd\x1a\x60\x3f\x8f\x9b\x3d\xef\x0c\xfb\x71\xfb\xbf\x6f\xe8\x4f\x55\x5c\xec\xa9\xb0\x0d\x82\xc7\xb3\x16\x3c\x06\x0c\xd0\x3d\xb1\x94\x0e\x1c\xd0\x5e\xd8\x4a\x07\x2a\x28\x6a\xb5\x25\x32\x08\x08\x31\x58\x06\xb8\xf3\x8e\x84\xea\x79\xaa\x10\xfd\x4a\xbe\xa1\x9d\x2b\x59\x9d\xcb\x8c\x27\xab\xde\x8e\x53\x17\x12\x6e\x14\xa3\x10\x5b\xe8\xcd\x65\x61\xa8\xba\x34\xcf\x92\x7f\x40\x26\x4b\x17\x9e\x4d\x15\x7b\x4b\x8e\xc9\xe4\xe8\x34\xcb\xe4\xed\xe4\x88\xbc\x74\x75\x23\x5f\xbd\xf5\x28\x10\x4f\x68\xed\x17\x54\x21\xa2\xfe\xb3\xd5\x9f\xe0\xdd\x1f\xa5\x9a\xf2\x74\x72\xf4\x96\xcc\xe0\x5f\x3a\x1e\x83\x2a\x84\x1e\x11\x7d\xcd\x31\xdb\xba\x60\xdf\xe0\x19\xe1\x33\x92\x2b\x76\xc3\x65\x01\x5e\x59\xb2\xa0\x5a\xbc\x30\xa5\x2b\x65\xc5\x0c\xf6\x7e\xc1\xf2\x8c\x26\xcc\x76\x9f\x50\x91\xb0\x2c\x98\x03\x23\x73\xb0\x47\x1c\x28\x6c\xac\x71\x0f\xcc\x82\x50\x22\xd8\x2d\x91\x62\x87\x14\x8f\x68\x0d\xb3\x53\xff\x2b\xd7\x46\xaa\x55\x1f\xbc\x52\xd5\x48\x82\x5d\x94\x93\xf2\x90\x02\xc5\x0c\xe5\xc2\xf9\x25\x80\x01\x00\x65\xc6\x22\x36\x29\xd7\x96\xf2\x17\x5c\x2f\x42\x21\x59\xf6\x2d\xcf\x78\xc2\x0d\x78\x45\x60\xa6\x50\x57\xd5\xc7\xfa\x56\x71\x4e\x6f\xf6\x6e\x75\xfb\x2f\x39\xbd\xda\xd5\xe7\x58\xbd\x85\x7f\x2b\x7b\xea\xab\xc5\xb0\xd2\xed\xdf\xcf\xf3\xe8\x4e\x6c\x9b\xb9\xcb\x29\x36\x3d\x36\xd2\x37\x25\x5c\x40\xa7\x04\x57\x72\x04\x40\x0f\x4f\xcd\x99\x18\xdf\xf2\x6b\x9e\xb3\x94\xd3\xb1\x54\xf3\x13\xfb\xd7\x89\x6d\xbe\x5b\x90\x81\xb2\xb3\xd8\x0e\x3d\xf8\x93\x2b\x62\x45\x52\xf7\x5a\x0c\x1c\x84\x0a\xd6\xae\xdb\xb0\x90\x7c\x66\x6f\xc8\x92\x6b\xcd\x74\x98\x66\x8a\xd6\x4d\x48\xaa\x29\x56\x2e\x9a\x62\x4c\xc8\x27\x0e\xa5\x97\xe0\xf0\x46\x24\x25\xec\x83\x2c\x7c\xca\x4a\x77\xde\xa5\x60\x1b\x9d\x33\x3b\x81\x06\x4b\x84\xc5\x9d\xae\x64\xd9\xcd\x7d\x5f\xcb\x1f\xf6\x6f\x0c\x2f\x74\xce\x3a\xa5\x4c\x74\x7e\x66\x74\x4e\x0c\xcb\xb2\x60\xd6\x74\x86\x69\xc8\x25\x82\xfd\x58\x69\x50\x5b\x41\xb0\xc2\x3a\xc0\xd1\x9c\x4a\xe6\x0a\x27\xe4\x79\xb6\x82\x70\xa2\x4c\x79\xfc\x8c\x32\xb1\xeb\x5b\x8f\x49\x65\xda\x00\x21\x6b\xb9\x0a\xeb\x10\xa2\x9e\xc2\x4b\xb8\xc4\x2d\x44\xaa\x4b\xac\xd9\x4e\x64\xe8\x72\x91\x56\xda\xf5\x70\x93\x6e\x63\x3a\xee\xe3\x2b\x3d\x0d\x5a\x91\x3b\xaf\xb0\xf0\x8d\x5c\x72\x5f\xfa\x92\x47\x92\xb4\xa6\xa4\xdb\x41\x63\xc2\x4a\x90\xb8\xb1\xf7\xed\xe2\x39\x8b\x4a\x79\x00\x43\xb9\xa5\x4d\x95\x28\xbd\xc3\xa7\x82\xd7\x0d\xf4\x73\x1f\xa9\x57\x37\xb3\xcb\x8d\x6e\xfa\xb8\x65\xad\xc2\x8b\x55\x11\x1c\x6a\xc5\xd9\x1b\x00\xcd\x0b\x33\xf5\x7c\x14\x14\x45\x1a\x40\x99\xbd\x92\xba\x3d\x3a\x1b\x6f\x84\x13\xd6\xd5\x99\x81\x32\x5c\x22\x4e\x9f\xae\x29\x78\xbf\xc1\xe4\x9b\x40\xd5\x8f\xc3\xaa\xd9\x76\x53\x12\x7b\x26\x67\x98\x35\xc7\x2e\xcb\xbb\xf2\xef\x4b\x3e\xb7\x04\xef\x02\xad\x1a\x9b\x28\x77\xdb\x3b\xee\x64\x69\x92\x2b\x79\xc3\x53\x06\xf9\xe5\x92\x05\x15\x0e\x0c\x2f\xa7\x00\x9c\xfe\xf6\xfb\xd7\xff\x93\xc4\x03\x01\xf0\x10\x18\x55\x9c\x30\x1a\xfd\x08\xb8\x76\xfb\xd4\x59\x5b\x42\x6a\x1c\x40\xa4\x1a\x42\xf5\x4a\x24\x0b\x25\x85\x2c\x74\xb6\xb2\xac\x56\xc9\x1b\x57\x63\x9f\x6b\x5d\xb0\x74\x3c\x11\x13\xf1\xf7\x62\xca\x32\x66\xa0\xaa\x34\x9e\xea\xd3\xf3\xb3\x72\x4c\x6f\x27\x82\xbc\x19\x7b\x03\x4f\x65\x6c\x96\x6d\x17\x66\x61\x77\x05\xc6\x63\x24\x64\x78\x3d\xb6\x57\x10\xab\x65\xbe\x0c\x70\xe4\xc9\x51\x15\x52\x51\x6d\x78\x8c\xdd\x83\x4d\x20\x83\xd4\x57\x76\x6e\x4c\x7d\xa6\x4b\xf6\x6a\x3c\x11\xe4\xfb\x31\xd6\x2b\x12\xf3\xea\x10\xac\x70\x79\xf5\xf1\x32\x18\xa3\x74\x7d\x04\x09\x05\x15\x53\xb0\x04\x50\x60\x9a\x25\x85\x62\xd9\xaa\x63\x64\x19\x33\xc7\xee\x7b\x6b\x63\x99\x88\x2b\xbf\x48\xb6\xf3\xa8\x90\xa7\xdb\x87\xfb\x59\xab\xea\xb8\xa0\x04\x41\x79\x8e\xaa\x6b\x04\x35\xa4\x0a\x6d\xe4\x92\x08\x29\x8e\xa3\x6a\x33\xd8\xc3\x60\xd4\x7e\xdc\x46\xed\xc1\xf4\xfb\x5c\x4c\xbf\x91\x3c\xb2\x3f\x46\xde\x9b\x71\x75\x72\x79\xfb\xf9\x5a\x32\xb1\x88\xdd\x54\xd8\x8c\xd5\x68\x97\xcb\xc2\x00\xd6\x0e\x21\xb2\x20\x1e\x71\xab\xe2\x43\x2e\xc3\xa8\xbe\xc4\x28\x22\x55\xf8\x7a\xa1\xe9\x9c\x39\x0c\xad\xf6\x74\x54\x33\x43\xa4\x88\xfb\x01\xcc\xb3\x6b\x04\xb1\x44\x4c\x71\x57\xc3\x3c\xa2\x62\xb6\xc3\x24\x9c\xb4\xa5\x4c\x31\x61\xdd\x74\x05\x71\x3f\xba\xcd\x70\xb3\x9b\x0f\xb8\xff\x6a\x77\xfb\x85\x9d\x3f\x38\xac\x78\x5c\x00\x10\x33\x5e\xc4\x75\x68\x3c\x7b\xb1\xd7\xdc\xf3\x72\xa9\x48\xca\x04\x67\xe9\x28\x44\xc0\xc5\x5b\x86\x6c\xde\x43\xc8\x70\x13\x90\x55\x2c\x18\x58\x57\x0a\x15\xa7\xfb\x88\x12\x6f\x60\x5b\xdf\x66\x87\x92\x2f\x70\x94\xef\xd1\x1d\x50\xd9\x17\xa4\x1f\x2d\xce\x81\x56\xb9\x6e\x2f\x21\xc3\xbd\xcf\x47\x9f\xc4\x38\xdd\x2f\x47\x8a\x19\x8d\x76\x12\xec\x02\x5d\xd2\x68\xbf\x44\x3a\x0f\x97\x95\x66\xfd\xeb\xa1\x58\xd1\x7a\xaa\x9a\x5a\x46\x16\xaf\xa6\x35\x27\xad\x21\x67\x33\x1f\x57\x00\x3a\x2b\x9a\xf5\xa3\xbc\x37\xae\xd6\x13\x4d\x53\xbc\x64\x54\x10\xf6\x0d\x2d\x76\x95\x3c\x30\xae\x6b\xae\x89\x15\xe6\xe7\xf6\x1e\x62\xb8\x20\x88\x74\x69\xb0\x5b\x81\xb2\x28\x2b\x06\x1c\x88\x2d\x6b\xb7\x5c\x7c\x01\x86\xf9\x10\x4b\x5e\x7e\xb9\xb2\xdc\x4e\xb9\x83\x75\x46\x6e\x1e\x02\x34\x93\x75\x48\xf2\xf6\xc9\x80\x7c\xf6\x9f\x40\x0d\x29\x59\x34\xe7\x07\x02\x41\xb9\x9a\x19\x28\xa6\x8f\x60\x19\x3b\x50\x6a\x20\x97\x12\xa8\x4c\xaf\x4a\x09\x24\x0b\xaa\xe7\x0a\xba\xe3\x58\x7a\x25\x07\xd2\xbb\x24\x07\x22\xa7\x8e\x75\x8c\xc8\xfb\x88\x71\x20\xbc\xba\xec\x04\x65\x3f\xc7\x51\x27\x47\xd0\x89\xaf\x9d\xe8\xba\x9a\x1c\x1d\x26\xd3\x90\x2f\xef\x58\x99\xd4\x98\xfc\x1d\x12\xd4\x46\x03\xb4\xf2\xc0\xe4\xc8\x4f\x07\x4b\x3c\xe2\x94\xec\xbf\xed\xa4\xec\xb8\xed\xb4\x26\x47\xa0\xb6\x9d\x8a\x4a\xfb\x98\xef\xf9\x9b\x7e\xc3\x29\x7c\xf7\x04\x19\x2c\xcd\xac\x58\xeb\xc5\xe5\x51\xcc\x1f\xe3\x4d\x06\xc8\x76\xac\x5d\x97\xb1\xf5\x4d\x0c\x18\x07\x13\x8d\x76\xbf\x23\x41\x79\x20\x1e\x87\xdb\xc6\x8d\x63\xf1\x2b\xb5\x71\x2c\xee\xc4\x6d\x1a\x49\x24\x37\xa0\x52\x0c\x5f\xad\x0b\x26\xf8\xd9\x78\xc9\x70\x2d\xea\xfb\xbb\x2c\x9c\xcb\x9b\x7d\x4b\xb2\x42\xf3\x1b\xd6\xff\x00\x97\x12\xa1\x62\x4b\x14\x96\x44\xc2\x70\x4a\xf0\xfd\x90\x71\xbb\xc6\x36\x5d\xe8\xaf\x67\x01\x59\x26\x6f\x1f\x7b\x5a\xab\xde\x42\x47\x17\x0a\x6e\xd3\x7b\x4d\xb8\xb8\x4e\x83\xd7\x60\x59\x78\xcc\x96\x85\xad\xe0\x72\xbb\xef\x7d\xeb\xb7\xf6\xaa\x70\x0d\xf0\xba\xc1\xc6\x12\xc3\xeb\xb6\x26\xca\xf7\x0e\x61\xbb\xbb\xce\xba\xbf\x54\x57\xdb\x59\x91\x76\x60\x21\x97\x7d\x8c\x4b\x3d\x2c\xd1\xec\x9b\x51\x6b\xe7\x85\xa6\xc8\xc1\x69\x76\xde\xfc\x1a\x69\x27\x41\x1b\x8e\x2a\xa9\x93\x92\x76\x62\x52\xa7\x39\xb5\x65\x81\x51\x97\xd3\xc7\x3f\xa9\xc1\x0b\xc7\x82\x14\x0f\x89\x6a\x00\x96\xe4\x9d\x8d\xf6\x69\xeb\x9a\x8e\xc9\xb9\xcc\x8b\x0c\x1a\x3a\xb9\xee\xf4\xfc\xcc\xab\x9f\x91\x2d\x0d\x6d\x76\xde\x60\xd7\x22\xcc\xc8\x4a\x69\xb3\xea\x45\x85\x33\xdb\xc5\x2a\xb0\x51\x39\x4b\xf8\x9b\x2c\xd9\x72\xca\x94\x5e\xf0\xfc\x41\x67\xd9\xc2\x7f\xda\xb7\x7e\xb7\x98\xda\x8c\x6b\x73\x1c\x1a\x1b\xb9\x6c\xab\xb7\xa0\xd6\xbc\x89\x4d\x4b\x1a\x7c\x4a\x41\x2b\x5e\xf7\x12\xd6\x1d\x81\x84\x89\x44\xa6\x18\xbe\x49\xc9\xe4\xe8\xdd\x87\x8b\xab\xb3\x1f\xcf\xde\x9d\x5e\x7d\x20\x17\x1f\xfe\xd7\x97\x0f\x97\x57\x93\x23\x72\xfe\xe1\x13\x99\x66\x32\xb9\x76\xe9\x1c\x34\x53\x1c\xd2\x32\x00\xf4\xea\x6f\x97\x3f\x7d\xb6\xea\xde\xff\x3e\xfd\xf4\x71\x54\xfa\xfc\x51\x27\x70\x57\x2d\x5b\x91\x29\xd5\xec\x0f\xbf\x3b\x76\x1f\x6c\x45\x24\x4d\x57\x1d\x5a\xf0\x1e\xd6\xb3\x34\x31\x77\xe9\xcd\xa1\x61\xad\x4c\x4a\x59\x0d\xd9\x5b\x4a\xa9\xe7\xf8\x3f\x17\x34\x43\xab\xb2\xa0\x4b\x54\x5f\x2c\xe9\x3d\xb9\x85\xbc\x2f\x81\x1f\x5b\xf5\xbf\xf5\x18\xa3\x9d\x7b\xc6\x33\x83\xa7\x36\x4a\x53\x81\xe5\x47\xec\x5e\x41\x92\x9f\x72\x84\xff\xf9\xf9\xf4\xd3\x87\xc9\x11\x36\xf3\xd9\x6a\xe0\xf3\xff\x64\x59\x76\x8c\x55\x5b\xd6\x1d\x7a\x00\xc4\x45\xc7\x6d\x4f\x67\xe2\x5b\x54\xd4\x74\xb3\xf3\x12\xae\x6a\xd5\xd9\xb9\xd9\x9b\x39\x9e\x08\x42\x2e\xe2\x65\x81\xd9\x3a\xed\xd0\xaa\x76\x82\xd9\xcb\x4b\x0b\x23\x8f\x83\xee\x3c\x5d\x61\x37\x25\x9c\xec\x78\x49\x05\x9d\xdb\xad\x70\x9f\xaf\x2a\xb1\x93\xa3\x44\x2b\x77\xfa\x51\x77\xf5\x30\x34\x2e\xda\xba\x72\xee\xe4\x2d\x1d\xd2\xdd\xeb\x73\x5d\xf1\xa3\xdf\x6d\x81\xdc\x64\xd7\x56\x27\xcc\x19\x1f\x6e\x31\xeb\x91\xf7\x92\xec\x6f\x11\x7f\x68\x5e\xc4\xaa\xef\xdc\xad\x5a\xa3\xf3\xbe\x71\xd9\x60\x79\xaa\x3e\xfd\x91\x0b\x0c\xef\xe7\xda\xdf\xff\xd1\xdb\xf7\xca\x4d\x04\x88\xe4\xc1\x82\xa9\xe2\x1a\x45\xd4\x94\x49\x28\xfe\x58\x66\x9f\x50\x1e\x12\x77\x42\x01\x2a\x76\x6c\x8f\x97\x80\xff\xff\xe5\x24\x5a\xd5\x63\x37\x9c\x63\x4f\x93\x4e\xbe\x8b\x88\xa9\x23\x0f\x76\x08\xef\x10\x10\x50\x92\x1a\x24\x4f\x34\xd3\x98\x43\xa0\x04\x9d\x5e\x95\x66\x1d\xa7\x77\x3b\xd2\x72\xa5\x0a\x6d\x00\xc8\x0a\x52\x0c\x97\xe2\x2d\xc6\x0e\xc0\xf3\x97\xef\x4e\xc9\xb4\x10\x69\xc6\xf4\x2b\x74\xde\xf9\x86\x60\x7f\xb1\x77\xf0\x9c\xa9\x25\x37\x40\x70\x0b\x54\x19\xdf\xc2\x62\x07\x40\x91\x33\xce\xa7\x5c\x3b\x33\x8c\x6f\x88\x89\x0a\x1c\xb9\x76\x87\xf1\xc2\x09\xf5\x23\x92\xfb\x7e\xc1\xd7\x85\x51\x04\x29\x73\x8c\xb3\xcc\x89\xe7\xcb\x54\x79\xb6\xf9\xb2\x0c\x59\xf5\x7e\x37\xf7\xb9\xd3\xcc\xe0\x12\xc1\x5e\xe1\x50\xfc\xa9\x04\xfd\x67\x64\x15\x3e\xa3\x78\x62\x7c\x09\x2a\x3f\x60\x34\x02\xbc\xea\x9a\x57\x18\xd5\xda\xcc\x7e\xd7\x67\x66\xd7\x6c\xe5\x7d\xaa\x27\xd8\x97\xe5\xff\xe5\x53\xdb\xd1\xef\xc7\xe4\xc3\xb7\x9c\x63\xee\x81\xf8\xcc\x84\x5c\x54\x6f\xc3\xbc\x31\x19\xd4\x8c\x7f\x5b\xf7\x1e\x86\x14\x06\xf6\xb4\xba\xdf\x68\xba\xe4\xc2\x7e\xe3\x0f\x20\x4c\x40\x17\x52\x81\xe1\xb1\xca\x1b\x4f\xab\x14\x20\x5a\xce\x1d\x8c\xc9\x05\xef\x52\xd9\x0b\x9e\x56\x55\x0e\xfb\xe0\x31\x88\xda\x1b\xa7\x05\x3b\xd6\x35\x33\xdc\xec\xb2\xde\x1d\x45\xf7\xf9\x2c\x3e\x0a\xa5\x40\xe3\x4e\xba\x23\x5f\x75\x4b\x6c\x85\x5a\x5a\xd2\xdb\xc8\xe4\x56\xb9\xcb\xb5\xe5\xba\x7d\x4b\x26\x47\x29\x9f\x73\x43\x33\x4c\xb1\x6a\x0a\xc5\xd0\x0e\x6f\xc7\xc0\x44\xc2\xf3\x05\x53\x4b\x90\x2f\xec\x53\xd7\xab\xa5\x59\xce\x24\xbf\xf6\xe1\x66\x3e\xd1\xf4\xe5\xe6\x4f\xb4\x8c\xc7\xed\x52\xf4\xe5\xb5\xb0\xa5\x89\xb0\xed\x3c\x2d\xdf\xd0\x97\x3d\x4f\x58\x74\x6d\xb9\xe4\xc6\x7d\x1a\xde\x6e\x1e\x92\x7d\x4a\xe7\x8a\xb1\x68\x94\x56\x94\xae\xb5\x84\x1e\xec\xb4\xe1\x7b\xee\x53\x2a\x8b\xfe\xf2\x2f\x40\x76\x31\xd7\x11\x5b\x7b\x44\xc5\xca\xf7\x56\x99\xf5\xda\x06\xb8\x2f\xca\x34\xe8\x0f\xee\x33\x4b\xca\x33\x92\x2b\x69\xd0\xd4\xe7\x56\xf0\x64\xc9\x97\xcc\xbf\xc5\x73\xcd\x12\x02\x18\x7f\xc8\x6a\x88\x6d\xf0\xa9\x29\x84\x60\x59\xfc\xc4\xde\x34\xff\xa6\x25\x33\xda\xd0\x65\x1e\xbe\x27\x13\x9d\x57\x47\xb0\xe4\x89\x92\x5a\xce\x0c\xd1\xf3\x04\x1f\x09\x66\x74\x42\x73\x86\x4f\x1e\xb7\x62\x67\xa7\xdb\xa3\x98\x9e\x6f\x56\x25\x50\x71\x59\xbd\xc7\x45\xa1\x7a\x1a\xd1\xd4\x1a\x98\x22\xd6\xcc\x0e\xee\xe0\xe8\x0e\xae\xd8\xfc\x66\xb9\x1b\x91\x2b\xc9\xeb\x3c\x5e\x5d\x0c\xde\xbe\x13\x74\xb6\x9d\x38\x77\x57\xd5\x23\x5b\xc1\x4b\xb5\x50\xdf\x1e\x61\x9c\x65\xeb\x8e\x03\x55\x05\xfe\x90\x3c\x1c\x06\x8c\x5c\x14\x0d\xdf\xaf\xf2\x76\x87\xe3\xa2\x22\xf8\xd8\xaa\xde\x40\x67\xbc\xae\xe7\x3f\xb4\x7c\x67\x83\x8b\x70\x4c\x7e\x12\x09\x2b\x87\x33\xaa\xe5\x67\x2c\x0f\xa2\xa5\xcb\x67\xb3\x35\xd3\x60\xdd\xba\xc1\x75\x89\x79\xaa\xfa\xee\xc0\x67\x17\xf9\x55\x83\x07\x13\x77\x20\x7c\x55\x59\x1a\x27\x34\x61\xcb\xdc\xac\x5c\xca\x48\x16\xe9\x5e\x56\x6e\x69\xf4\x5b\xb6\x7d\x31\x78\x4f\xfb\x7d\x31\x30\x20\xbc\x8e\xee\x22\x59\x46\xe0\x45\xeb\x78\xfe\x90\x46\xdf\x1d\x4b\xf4\xed\x2b\xb2\xb4\x0a\x44\xb0\xe0\x68\x27\x4f\x9f\x66\x59\xf4\x10\x5f\x84\xc0\x0c\x54\x56\x22\x3b\xd0\xe4\x08\x93\xda\x8e\x42\xc7\x42\x92\x05\xa3\x29\x53\xba\x3c\xb0\xde\x8e\x64\xf9\x95\xd5\xaa\x7c\x42\x7f\x4a\xfe\xfc\xe1\xc2\x1b\x7d\xc8\xe9\xe5\xe7\xf1\x9b\x98\x2c\x11\x6d\x54\x01\xfe\x02\x02\xfe\x68\x04\x28\xa5\x2e\x8a\x10\xa6\xfc\x3b\xbb\x78\x17\x3f\xbe\xfb\xfd\xf7\x7f\x7c\xed\xc4\xf7\xcf\x52\x1c\xdb\xc1\x7b\xfe\xba\xa4\x80\x59\x67\x34\xd4\x76\x96\x2a\x4a\x5e\x5a\x9f\x4e\x34\x6f\x67\xb5\x29\xc4\x0d\xae\x31\x4b\x2d\xef\xc1\x28\xb3\x4c\xde\x12\xac\xd0\x9e\x67\x54\x50\x23\xd5\x8a\x18\xf6\xcd\xb4\x8e\xf4\xf7\xe3\xef\xdd\x58\xff\xe3\x77\x7f\xf8\xa3\x3f\xa3\x4b\xac\x83\x40\x71\x43\xc2\xb7\xa3\x5b\x52\xae\x62\xe9\xc1\xa8\x51\x06\x86\x69\xc6\x23\x73\x4f\x19\x18\x17\x48\x0d\x00\x96\x6e\xb9\x76\x99\xcc\x67\x5c\xd9\x3d\xf0\x1f\x6b\x26\x2b\xf8\xed\x28\xfc\xce\x2d\x4c\x89\x4b\x30\x8e\xa1\x50\x8d\x1e\x4d\x97\xee\xb4\x26\x9d\x8b\x94\x54\x72\xc1\x59\x09\x6d\x41\x45\xaa\x17\xf4\x1a\x74\x8a\x89\xb8\x5a\x43\x1c\xc6\xd6\x47\xbb\x30\x68\x05\x44\x9b\xd5\x9e\xec\x8c\x23\xa2\xa5\x55\x51\x12\x29\x34\xb7\xe2\xa3\x9c\xbd\xb5\xfd\x5b\xaa\x88\x2d\x5f\xe2\x1f\xc7\xf6\x7f\x7f\xfe\xf0\x97\xb3\xcf\x24\x3a\x2d\xf0\x14\x1b\x8c\xc7\xe3\xa8\xe5\x87\xcf\xef\x5b\xda\xbd\x7a\x48\xcb\x66\xef\x44\x98\x31\x7a\x22\xcf\x33\x5e\x16\x40\xf7\xee\x95\x3b\xc2\x68\xee\xd9\xa3\xbb\xc7\x54\x97\xb0\xd8\x4b\x9a\x1f\x5f\xb3\x95\xae\x48\x2c\x65\x37\xd1\xa3\x7f\xf7\xdc\xb6\x25\xcd\xf7\x1f\x7a\xe4\xa2\x45\x77\x88\x3f\x7a\x1f\x83\x41\xdb\x59\xe8\x00\xca\x78\xcc\xa0\x8c\x01\x8a\xf0\x5c\xa0\x08\xf7\x11\xee\xd1\x41\x2c\x3a\x63\x3e\xea\x0c\x3c\x48\xd9\x46\xb3\x6c\x86\x75\x57\xc4\x2a\xe2\xc6\x71\x94\xc2\x41\x43\x2b\xba\x66\xd6\x1d\x5f\xf1\xde\x85\x8b\xac\xc7\x55\xc4\x3c\xf1\x61\x32\xe2\x1d\x34\x5e\x61\xdb\xd4\x46\xdb\xad\x7c\x63\xe4\xc2\x10\x42\x30\x84\x10\x20\x7e\xdb\x5b\xf8\x02\x18\xfe\x60\x21\x03\x8f\x2f\x3e\xe0\xc1\x82\x01\x76\xaa\x14\xbc\xd7\x60\x80\x4a\x96\x96\xc9\x91\xfd\xa0\x7d\x5a\x5e\x93\x46\xed\x33\x34\x7c\xd0\x58\x02\x74\xfc\xed\xac\x08\xed\x05\x0d\xbe\x27\xd3\x68\x07\xed\xae\x03\xc0\x07\x05\xe0\xf1\x29\x00\x8d\xa8\xec\x3d\x29\xdb\x5d\xba\x65\x4f\x45\x7b\x50\x5c\x9e\xb5\xe2\x32\x60\xa8\xef\x4b\x96\xee\x40\x53\x63\xea\xb8\x48\x7d\x69\x88\xbb\xaf\xc5\x86\x3b\x5f\x61\x14\x85\xef\xc3\x32\x2c\x55\xfc\xd2\x23\xf0\x7e\xe4\x2a\x56\xde\x3d\xf0\xfe\x99\x82\xb9\x3f\x00\x7a\x7b\xa3\x56\x09\x55\x45\xb5\xd5\x13\x2e\x19\x7a\x72\xc7\x67\x62\x26\x91\x53\xcd\x68\x82\x79\x11\x9d\x90\x7a\x28\x3c\xf6\x5f\x00\x7f\x7d\xb0\x71\x3e\x36\xc7\x7b\x3f\x44\xf5\x9f\x2b\xae\x04\x72\xfe\xf7\x77\x97\xdf\xbd\x79\x4d\xde\x5d\x5e\x80\xeb\xe1\x49\x40\x98\x2f\x6a\x48\xe5\xba\xaa\xe1\x6b\xf9\xd4\x81\xcb\x1e\x07\x64\xa7\xf5\x96\x7c\xd5\x89\xcc\xd9\xf1\x42\x6a\x03\xa8\x66\x2e\x4f\xec\x7f\xbf\x82\xd0\x0e\x9e\xca\x51\x48\x3e\x0c\xc5\xf1\x40\xbe\x67\xa9\xf3\x51\x9e\xcd\x08\x37\x2f\xec\x47\x1c\x86\xb3\x01\x36\xe4\xcb\x0a\x52\x0d\x03\x4d\xd1\x9b\xb2\x25\xf6\xd6\x79\x37\xd7\xbf\xd7\x80\x16\xea\xff\xc1\x0a\x4e\xd5\xf9\x20\x7f\x2a\x9d\x6d\xd5\x6e\xd6\x7a\xc8\xd8\x9c\x26\xab\xe3\x22\xa8\x3f\x13\xf1\x3e\x02\x42\x82\xb8\x0b\x30\x48\xc8\x97\xea\x50\xd9\xae\x22\x13\xb1\x77\x50\xce\xc8\x94\x8a\x74\x0c\xd5\x7e\x2d\x1d\xc6\x22\x9d\x8d\xc0\xf0\xaf\x35\x37\xe1\xd7\x83\x80\xe5\xbe\x9c\xbd\x3f\x3c\x4d\xbb\x33\xf0\xcd\xc1\x05\xbf\xb4\xe2\xdf\x8a\x90\x45\x80\x7d\x73\x39\x33\xaf\xd9\x2a\x9c\x62\xf0\x09\xdb\x81\xc2\x2c\x4a\x71\xce\x48\x99\xe9\x31\x67\x66\x06\x59\x77\x17\x66\x99\x9d\xa8\x59\xf2\xfb\xef\xff\xf8\xfa\x3b\xe7\x0b\x3e\xfe\xdd\xf8\xfb\xf1\x9b\xf1\x0f\x78\xa6\x76\x78\xf3\xcd\xf7\xdd\xc0\x33\xf8\xb3\x09\x7a\xe6\xe0\x5a\x5b\x80\xcf\xc2\xf3\x18\x7e\x86\xfd\xf7\x01\xa0\xe1\x83\x12\x82\x06\x7f\xd7\x41\x68\xd8\x1d\x6b\x78\xd8\x0a\x44\xc3\x7e\x3b\xa1\x68\xf8\xb9\x75\x30\x1a\xf6\xd8\x05\x47\x8b\x9e\x07\x40\x5a\xf4\x6c\x03\x24\x0d\x9e\xd5\x40\x69\xf0\xac\x0e\x4b\x83\x87\xcf\x10\x98\x76\x76\xef\x34\xa0\xa7\x6e\xa1\xaa\x3a\xea\x81\x2d\x25\xeb\x48\xb2\xbb\x43\xb4\xce\x66\x8d\x49\x23\x46\xf5\x24\xca\x40\xac\x20\xf5\x7c\x0b\xc2\x83\x2c\xd8\x86\x2a\xb1\x8f\x0a\x94\xf0\xae\x0b\x94\x30\x22\xba\x48\x16\x24\xac\x07\xcd\x7c\x5a\x2b\x9a\x1d\x06\x71\xd0\xdb\xbf\xb1\x9f\xbb\xf9\x68\x61\x07\x52\xaa\x94\x0b\xf4\xe4\x59\xad\x9f\x51\xcd\x36\x28\xa3\xf0\x7b\xb0\xf2\x51\x92\xc1\xdf\xae\x2e\xea\x90\x43\xf2\x51\xdb\x14\x07\xdb\xdc\x73\xb1\xcd\xf5\xcc\x69\xfd\xf4\x12\x52\x37\x92\xa3\xdd\x32\x53\xc3\xab\x8f\x38\x07\xf5\x3e\xed\x9f\xf1\xaa\x6d\xb2\x7f\x22\x75\xdf\x4f\xae\x88\xa6\x9d\xea\x48\x2d\x14\xda\x20\x89\xf1\x15\x06\x90\xa7\xb8\x84\x31\x03\x0f\x79\xd4\x3c\xa4\x4f\xb6\xa0\xb3\x32\x5b\x90\xdf\x62\xbf\xd0\xf5\x3d\x6e\xed\x73\x67\x62\x31\x78\xaf\x06\x0e\x39\x14\xd8\xc3\xe7\xf7\xcd\x59\xf6\x98\x89\xa8\x55\x0e\xe8\xe0\x2e\x90\x61\x08\xaf\x67\x5d\x28\xa0\x4e\x24\xe8\x53\x21\x07\x16\x7f\xcf\xa8\xa9\x4f\x3c\x51\xb2\x13\x3a\x15\x7d\x1b\xe7\x01\x20\x35\x80\x97\xc5\xb0\x2f\xd4\xbb\xc0\x80\x80\x2f\xa4\x2d\x20\xb0\x85\xcc\x52\xa6\xce\x52\x7b\xfe\x4c\x57\xfd\xbf\x6a\xe3\x6a\x54\x22\xf7\x4f\x9d\x7c\x85\x6d\x5d\xf5\xa1\x78\x54\x3b\x58\x7d\xe1\xbd\xf7\xae\x24\x7e\xbf\x02\x65\x4d\xaf\xe0\x82\xa5\xbe\xb4\xbe\x4f\x59\x92\x42\x00\x10\x06\x18\x7b\x8d\x55\x30\xb4\x41\xdc\x52\x0e\x99\x23\x66\xd2\x92\x69\xb7\x96\x84\x9b\xb2\x62\xd7\x92\x51\x0d\x61\x4c\x73\xbb\x14\x26\x24\xc2\x05\x44\x9b\x9c\x82\x5d\x33\x25\x17\x4c\xb0\xdb\x2b\xc0\xe2\xb5\x18\x64\x76\xad\xc8\x05\xe3\x2d\xf1\x8b\xbd\xd6\x25\x6a\xee\xb1\x8e\x65\xb9\x32\x13\xfd\x08\xbb\x87\x2b\xe2\x0b\x90\xe1\xbe\x6e\x2c\xb6\xb6\xd3\x3c\x94\x5f\xa1\x7b\xbf\x52\xe1\xcb\x9b\x2e\x54\x7c\x9c\x71\x41\x16\x54\xc7\xb0\x45\x0c\xe4\x72\x27\x7c\xef\x86\x17\x34\x47\x0d\xd6\x97\xe7\x2b\x39\x0f\xb2\xe5\x73\x91\x2d\x7f\x2d\xd6\x97\x88\x26\x0d\x26\x98\xfb\x32\xc1\x6c\x0d\x35\x6b\xdd\xb3\xc1\x18\xf3\xdc\x59\xca\x23\x36\xc6\xc4\xf2\xcc\x60\x91\x19\xb8\xe6\x60\x91\x21\x8f\xd0\x22\xb3\x3f\x66\x33\xd8\x66\x06\xdb\xcc\x60\x9b\x19\x6c\x33\xcf\xc4\x36\x83\x95\xc8\x4f\xff\x79\xf9\xc1\x7e\x85\x27\x7f\xce\x64\x72\x7d\x69\xa4\x62\xff\x90\x59\xb1\x64\x97\x20\x44\x6c\x20\x78\x17\x65\xc5\x76\x4a\xce\x2d\xcd\xd5\x00\xda\x7c\xcf\xf5\x75\x29\x84\x70\x41\x4e\xff\x79\xe9\x2b\x13\x9d\xfe\xf3\x92\x7c\xf8\xf3\x25\x49\x6d\x1b\xc8\xb3\x04\xc1\xc2\x3e\xf5\xd1\x52\x16\x4e\x98\x91\x24\xa4\x91\x67\x0a\x93\xb3\x96\xef\xf8\xec\xad\x0e\xe6\xad\xe9\x92\x41\xcf\xbf\x48\x01\xb9\x98\x00\x0c\x8b\xd8\xe7\x31\xa9\x7f\x35\x81\x6c\x46\xd9\x0a\x63\x39\x0a\xe1\x22\x34\x15\xa3\xe9\xc9\xad\xe2\x86\x41\x01\x9d\x71\x78\xe9\x06\x56\x43\x13\x5d\xe4\xb9\x54\x86\xc8\x5b\xe1\xd2\xbc\x63\xaa\xdb\x25\x00\x3c\x45\x4a\x2e\x3f\x7c\xe4\xa2\xf8\x46\x14\x83\x9c\x53\x5c\xcc\x7b\xd0\xfa\x99\xbe\xea\x8e\xef\xfc\x91\x67\x0c\x21\x9f\x24\x0e\xf5\xc4\x91\x21\x9d\x59\xc9\x82\xdc\x52\x01\xc4\x04\x66\x35\x26\x57\x3c\x7f\x4b\x3e\x08\xa0\x1e\xd0\x06\x13\x2b\x55\xbb\xe2\x61\x62\x65\x3a\xbd\x85\xb4\xa4\x25\x67\xca\xd5\x48\x84\xe6\x63\xf2\xe1\x1b\x5d\xe6\x19\xd3\x6f\xc9\xe4\x88\x7d\x33\xbf\xc3\xd8\xd1\x6f\x33\xed\x72\x17\x1a\xfb\xaf\x31\x39\x5b\xe6\x19\x4f\xb8\xc9\x9c\x70\xa9\x90\xd2\x41\x4c\x2d\xbe\x46\x38\x04\xcb\x96\xa9\x77\x1b\x44\x9f\x2a\x0c\x1d\x72\x03\x3b\x1b\xa0\x3e\xd1\x46\x2a\x3a\x67\x27\x6e\x67\xbe\xa3\xb7\x9a\xe1\x19\xc6\x04\x50\xf6\x0c\x6f\xcf\x04\x72\xaa\x4c\x3d\xdc\xbf\x69\x33\xec\x51\x0c\x6d\xfd\x11\xec\xd8\x8a\xb3\x19\x91\x3e\xa1\xad\xcb\x95\x45\x8b\x0c\xd4\x52\xdf\xc8\x2e\xbe\xeb\x05\xa2\x14\xa2\xe5\xfe\x51\x2a\xff\x93\x15\xf8\x4e\x74\x4a\xdf\x8c\xe0\x33\xb8\x86\xb8\x6b\xe5\x98\x20\xde\xf8\x8d\xdd\x8b\x4b\xbe\xe4\x19\x55\xd9\x6a\x14\x8f\xb2\x6c\x69\x59\x92\xef\xd2\x0e\x66\x72\xf4\x7a\x72\x44\x5e\x4a\x05\xbd\xdb\x9b\x92\x31\x9f\x58\xcd\x9d\xe0\x15\x86\x4c\xbc\x3a\x00\x81\xa6\xe9\x4f\x22\xeb\x92\x11\x2e\xdd\x94\x27\x47\x06\x22\xaa\x23\xee\x29\x52\x00\xc7\x63\x2c\x18\x76\x56\x8e\x9a\x0b\x82\x74\xed\x93\x5d\x6d\x17\xbd\x6d\xca\xe8\xed\xb6\xfd\x99\x1c\xcd\x30\x10\xfc\x1e\x8f\xe9\x54\xca\x8c\xd1\x96\x9c\x01\xd8\xdd\xd9\xfb\xae\x30\x07\xc1\x7f\x2e\x18\x39\x7b\xef\xa9\x45\x5e\x52\xe8\xb4\x81\x42\x93\x97\xa7\x4b\xfa\x8b\x14\x11\xcd\x7b\xf5\x90\x37\xb3\xa7\x72\x12\x56\xa3\x4b\x3f\xe9\x64\x84\x33\x60\xfe\xab\x0d\x0c\xcf\x37\x41\x3e\x8e\x55\x3f\x2c\xc3\xf6\x8f\x75\xb2\x60\x69\x91\x41\x06\xaa\x22\x63\x7d\x4c\x4b\x42\xa6\xac\xe1\xcb\xa4\xa7\x3d\x02\x87\xfe\x39\xee\x64\x93\x24\x52\xe6\xcd\xb2\xdf\x6d\x1f\x78\x88\xb3\xca\x65\x9b\x5c\x9f\xcb\xf4\xce\xe3\x3e\x8f\xfa\xe8\x37\xec\x5c\xa6\x1b\x46\xfd\x92\x8d\xe7\x63\x92\xc8\xe3\x4c\x62\x35\x82\x05\xc7\x57\x62\x39\xc1\xce\x7c\x04\x92\xc2\x88\x30\x93\x8c\x2d\xb5\xd4\x72\xe9\x32\x10\xda\xe6\x2f\xf5\xab\x57\x1b\x66\x2d\x0c\xdf\xcb\xcc\xe3\x7e\xb6\x98\xbd\x30\xfc\xb8\x6b\x09\xe8\x8d\xe4\x29\xc9\x0b\xe3\x0c\x43\x7b\x59\x86\x3b\x4b\x9a\xc6\x50\x3b\x5c\xa4\xc2\x9b\xae\x59\xa5\x61\xa5\xf2\xaf\x63\x60\xd4\xb5\x40\x31\xd1\x4e\xa5\xfb\xa6\xa5\xec\x86\x27\xec\x9c\x9a\x45\x07\xe1\x7c\x1f\x1a\x46\x46\x33\xc7\x15\xec\x2f\x24\xb7\x3f\xdd\x2e\x98\x62\x31\x53\x2d\xd3\x7e\x84\x22\x07\xdb\xcb\x20\x3d\xc2\x56\x3e\x47\x99\x93\xc3\x3a\xe0\x18\xf6\x4b\x59\x61\x2c\xa3\xc6\x05\xbc\x33\xad\xfd\xa5\x50\xcc\xaa\x09\x3d\x35\x8d\xd0\x3e\xde\x11\x2a\x08\x3c\x27\xef\xa9\xa1\xa8\x74\xa0\x20\x25\x45\x29\xc5\x42\x39\x02\x2e\x52\xf7\x93\xb3\x94\x03\x59\xeb\x3c\x31\x09\x28\x7e\xf3\x4f\xf6\x78\x6d\xde\x93\xbf\xda\x4f\xbd\xc3\xe6\x64\x29\x53\xf6\x96\x7c\x86\x9b\x65\xc5\x10\x08\x50\x77\xff\xfc\xa7\xd5\x2f\x76\x30\x50\x58\x86\xdd\x23\x5e\xd6\x8a\xa6\xf1\xf9\x80\xf8\x37\x60\xf6\xee\xea\x4f\x33\x39\x25\x8e\x49\xef\x36\x8a\x2f\x17\x67\x3d\x06\xf1\xe5\xe2\xec\x10\x03\xd8\x49\x59\x2a\xa5\xf0\x4f\x21\xaf\x6f\x5d\x0b\xea\xaf\x02\x8d\xf7\xad\xfc\x1c\xc4\xcb\xfe\xe1\x5b\xce\x12\x13\x1c\x3c\xe4\x72\x41\x15\x4b\xdf\x92\x65\x91\x19\x9e\x67\x6e\x1f\xec\xc6\x68\x2b\x17\xfa\x1d\x21\x34\x49\xe0\x9e\x90\xf7\x0c\xf3\xf2\xa6\x6f\x89\xe6\x62\x1e\xbf\xd1\xfc\xc2\x27\xd0\x85\xd3\xb7\x84\xc2\x9d\x44\xd5\x38\x8d\x0e\xc0\x4b\xd0\xb9\xb9\x08\x3f\x39\x32\xc9\x33\x60\x64\xcc\xbc\x1a\x47\x59\xc0\x24\xd1\x30\xe4\x9d\xf2\x57\xf5\x51\x23\xe2\x2c\x4e\x20\xe0\x93\x97\xa5\x05\xe0\xd5\xb8\x54\x20\x80\xce\x43\xa0\x1a\x6a\x19\x15\xed\x42\x33\x64\xb1\x35\xe5\xa2\x65\x53\xd7\xc5\xfa\x9e\xa4\x38\x5c\xff\x86\xcb\xb8\x17\x5a\x6c\xef\x4c\x69\xc1\xd9\x86\x2a\xdb\x37\x1b\xa9\x32\xfc\x70\xc9\x14\xb0\xcc\xfd\x12\xe6\x27\xb5\xc5\x31\x60\x81\x25\x8a\x99\x1e\x74\x3c\xae\x90\x80\x2f\x39\x63\xb2\x37\x88\xe3\x12\x5f\xba\x4b\x78\xea\x2e\x21\x90\x7e\xbb\xb0\x7f\x67\xab\x1d\xf2\xaf\x85\xd1\xe9\x9c\xfe\xff\xec\xbd\xeb\x72\x1b\x39\x96\x3f\xf8\x7d\x9f\x02\xeb\x9a\x08\x49\xff\x3f\x49\xd9\x75\x71\x75\xbb\x63\x3e\xa8\x24\xd9\xad\x29\x5b\xd6\x48\xb2\x6b\x3b\x5a\x1d\xd5\x60\x26\x48\x62\x94\x04\xb2\x13\x48\x49\xac\xd9\x89\xd8\xd7\xd8\xd7\xdb\x27\xd9\xc0\x39\x07\x48\x64\xf2\x96\xbc\x48\x56\xb9\x18\x33\x51\x6d\x31\x91\x48\x5c\xcf\xfd\xfc\x4e\xd2\x76\x88\xd0\xd6\xf3\x9b\x35\xc7\x5a\x33\x87\x78\x01\x95\xcc\x78\x17\x7a\x0d\x1a\x00\xb4\xa3\xc5\x3a\x03\x59\x64\x8d\x9b\xb5\x05\xd1\x29\xda\xe8\x99\xa3\xda\xda\x9d\xdd\xdd\xd4\x3f\xe4\x4d\xfd\xca\x8f\xf7\x4f\x52\xa5\x6e\x60\xf3\x0f\x34\xb5\x60\xee\xc4\x21\xf4\x23\x46\x39\x54\xc0\xa5\x7f\xa1\xf2\x07\x60\x43\xed\x30\x8e\x0a\xb0\x61\x7d\x5d\xaa\x48\x6f\x74\xf2\x1e\xf7\x6a\xb4\x28\x7a\xec\xc4\x5d\x10\x90\x7c\xdc\x39\x7a\xd5\xfb\xb1\xc3\x72\xf4\xc7\x40\xe1\x3e\x27\xc2\xe2\xb7\x6b\xc5\x3f\xdc\xf6\xe7\x3a\x35\x4c\x2a\x63\x05\x6f\x73\x35\x76\x41\x45\xbb\x38\xd5\x5d\xc4\x0d\xdb\xd0\x03\xdb\x32\x4e\x35\xc4\xdc\xe0\xde\xec\x99\x2f\x1a\x77\x13\x2d\x89\xe5\xc5\x50\x4c\x41\x79\xb5\xb6\x23\xe2\xf4\x2f\x7d\xd1\xcc\xa5\x08\xe8\xf8\xb9\x40\x2d\x9b\xde\x2a\x60\xf3\x74\xf1\x4d\x7d\xc9\x16\x5a\x02\xe7\xc0\xbd\xe2\xdc\x96\x71\x83\x2d\x06\x0e\xcd\x8e\x12\xf2\xec\x64\x7e\x8c\xd0\x4a\xe1\x41\xb8\xf2\xc7\x57\x67\x2b\x2b\x4c\x91\xc3\xdc\xeb\xcf\xb0\x05\xd2\x04\xa5\xd8\xb1\x23\x05\x95\x2d\x81\xda\x1e\x5f\x9d\x79\xfb\x62\x5a\xc8\x3b\x51\xb0\xfd\x9f\x84\xe5\x6c\x20\x00\x2e\xe9\xa0\x85\x11\x2b\xa0\xad\x9c\x3e\xe4\x5c\xa5\x57\xc0\xbb\x2f\xe1\x7c\xad\x77\xe6\x42\x0f\x2d\xce\xdc\xf1\xbc\xaf\x23\x69\x0d\xd5\x5e\xc3\xa1\x43\x11\x8a\xce\x27\x09\x51\x60\x80\x11\x10\x33\x72\x27\x6a\xd0\x5d\x56\xb3\x9c\x9b\xc0\xab\xdc\x6a\xd1\x32\x59\xcd\x12\xed\x58\xbf\x15\xe1\x51\x73\x30\x64\x5f\x4e\x78\x96\x55\xe1\x36\x50\x1b\x36\x1f\x71\x02\x26\x73\x7c\x8e\x4e\xb7\x61\x42\xf1\x3e\xd8\xda\xf1\xfd\xe3\xab\xb3\xcf\x14\x1b\x40\xfb\xc1\x86\xdc\x8a\x66\xdd\x30\x0d\xab\xc1\xb3\x8a\x69\xf6\x05\xfa\x50\x99\x1c\x30\xa5\xfd\xa4\xa9\x20\x2a\xc4\x52\x85\x5a\x5d\xb3\xd6\xc3\x34\xca\x32\x61\xa3\x0e\xe3\x59\x46\xff\x46\x30\x4b\xb7\x34\x73\xe3\xb2\xaa\x73\x71\x51\xf6\x33\x69\x46\x5f\xea\x60\x34\x3f\xff\x65\x4f\x06\x8d\x86\x8e\x86\xdb\xb0\xea\xd9\x27\x95\xd7\x9e\xba\x83\x63\x7e\x1f\xbb\x8d\x73\x5f\xa6\x85\xe1\x02\xc9\xe9\x0a\x8d\xd5\xd2\x39\x21\x38\xd4\x9a\x46\xca\x54\xd5\xed\x5d\xc3\x96\xf9\xec\x2d\xba\x6b\xf8\x70\x74\x2a\xbe\xc8\x9d\x3a\x9f\xf1\xe1\x2f\x71\x9b\xa2\x71\x44\xf7\xc8\xfd\xfa\x3b\xbe\x41\x6e\x57\xaf\x2c\x1f\x8a\xa7\xdf\xd3\xfa\x67\xbf\xd4\x8e\xc2\x28\x1a\xfb\x39\xeb\xb7\x4f\xca\x44\xbf\xfe\x8e\x76\xb8\xa5\xad\xea\x23\x0d\xfe\x0d\xc4\x24\xa2\x56\x18\xad\xe6\x1c\x56\x12\x6a\xd7\x2e\x31\x75\xad\x1d\x0f\x74\x64\xa9\xe8\xfc\x54\x80\x6e\x3b\x98\xe9\xb6\x68\x8d\xd3\xbe\x7a\xfa\x6c\x33\x28\x51\x33\xba\xeb\x6b\xa0\x3e\x63\x1f\x7f\xe5\x2a\xcd\x96\xf1\x86\xcf\x51\x53\xcf\xba\x4a\x0c\x7d\x8a\xa2\xe9\x58\x21\x6c\x59\xa8\x8a\x1b\x44\x82\x75\x9e\x95\x43\xa9\xfe\xbf\xff\xe7\xff\x35\xec\x18\x30\xc5\x3f\x87\x19\xc0\x2d\xf3\x77\x84\x9a\x63\xcd\xfb\xb8\xea\x24\x9d\xf1\x55\xb9\x60\x4b\x2d\x8a\x58\xf7\xbc\xd5\xd9\xd4\xd6\x16\x84\xd8\xd5\xc2\x7d\xc9\xde\x01\x81\x36\x21\xbf\xa1\xda\x7a\x60\xcf\x9d\x45\x5a\x4d\x63\x5a\xf3\xc3\x36\x36\x93\x5c\x62\xc2\xe6\x54\xad\x11\xac\x9a\xa9\xcb\x2f\xc7\x5a\x99\x32\xb3\x58\x50\x67\xa2\xcb\x02\x0b\xfd\x87\x28\xa8\x44\x17\x85\xa3\x36\x8a\xfc\x12\x85\x18\x3a\xbd\xaf\xa8\x0a\xce\x27\x59\xe9\x7e\x78\x7a\x01\x68\xb9\x43\x7a\x00\x15\x6d\xf2\x42\xdf\xc9\xd4\x87\x37\x22\xad\x45\xda\x25\x0d\x91\x45\x7f\xce\xb9\x31\x3a\x91\x60\x01\x8d\x56\xef\x7e\x24\x93\x11\x9a\xde\x53\x61\x45\x31\x96\x4a\xd4\x42\x25\x63\x01\x4c\x03\x04\xe6\xe4\x4b\x0b\x4f\xef\x75\xc2\xb3\x55\x4c\x24\x5f\xa5\x04\xf5\x34\x0c\xb6\x5a\xa1\xed\xb1\xda\xab\x08\xf5\xda\xbd\xd2\x85\x10\x82\x44\xab\x81\x1c\xfa\x24\x1b\x7f\x47\xfd\x5d\xfe\xca\xf8\xeb\xe7\xc6\xc7\xc1\x70\x24\x0c\x1d\x9e\xae\x4f\x32\x63\x15\xf9\x44\x3a\x57\x6d\xc1\xf4\x91\xab\x08\x1e\xd0\x3a\xfc\x71\xcf\xb0\x54\x27\xe5\x38\xf8\x0d\x00\xd0\x3d\x28\x51\x64\xd3\x6f\xc9\xca\x57\x63\x6d\x1b\xb3\x30\x9e\x63\x18\x49\x7d\xe1\xa7\x44\x95\x34\x35\x64\xcf\x19\xeb\x3b\x61\xd8\xc5\xc7\xab\xb3\xff\x8b\x25\xd1\xdb\x68\x90\x2f\x4a\xa5\xa8\x7a\x1d\xa6\x9f\xb4\xca\x11\x4f\x97\x79\x14\x8e\xa0\x42\x5e\xfc\xb9\x47\x84\xd1\x9e\x63\x05\xd0\xf9\xd2\x8a\x0b\x63\x2c\x88\xff\xd4\xc3\x9c\x3a\x32\xab\x1e\x02\x91\x8f\xde\x5e\x6d\x62\x92\xe5\xcc\xf5\xc1\x22\x5e\x4b\x0e\x6f\x77\x9f\x32\x6e\x28\x08\x34\x93\x03\xe1\x73\xf0\xd0\xab\xe8\x5e\x1b\x98\x90\x27\x94\x6a\xe0\xb8\x0b\xd3\x85\x74\xb1\x5e\xb6\xd0\x58\x2b\x69\x75\xb1\x2c\x09\xcf\x8b\xa2\x6f\xd8\x07\x7a\x01\xb9\x58\xe2\x14\x93\xc4\x0b\x6c\x30\x5d\xdf\xe3\x2c\x37\x08\x79\x4f\x7d\xbd\x21\x1f\xd5\x7f\x98\xc0\x84\x0f\x2f\x4f\x8f\x4e\x3e\x9c\xf6\xc6\xe9\x37\x23\x7d\xdf\xb5\xba\x5b\x1a\xd1\x95\xf6\xa9\x4f\x75\xbe\x3c\xa4\xb7\xd2\xd9\x3e\x19\xcc\xf6\x72\x3b\xe9\x93\xbf\x0a\xad\x6d\x87\x15\x1c\x02\x9f\x81\xc5\x41\xa2\x54\x99\x65\xb8\x44\xb6\x10\xa2\x13\xc7\xa8\x1c\x3e\x5a\x54\x5a\x35\xd0\xc7\x0d\x89\x78\xac\xdd\x5e\x21\xb8\xc2\xdd\xb3\xd6\xab\x71\x15\x5e\xf1\x42\x3e\x04\x61\x5b\x0d\x35\x2f\xc0\x3f\xeb\xf8\xd5\x27\x23\x8a\xfa\x4e\x09\x9b\xc0\x04\x0e\x01\xc2\x9f\x44\x95\x47\x9e\xfc\xf2\x20\xab\xa7\xb2\x1e\x35\x17\x90\xc4\xd9\x29\x61\x96\x97\x76\x24\x94\xf5\xc9\xea\xb4\x4c\x33\x57\x14\xa4\xc8\x6d\x9e\x9f\x99\xcb\xe4\x76\x6b\x95\x3b\x1d\x74\xbf\x82\xa7\xda\x40\xbd\x06\xd0\xd6\x6a\x43\x47\xa5\xee\xa9\x37\xbf\xa5\x2c\x14\x28\xfb\xc6\xd2\x10\x30\xc2\x1d\xfb\xdb\xb1\xbf\x1d\xfb\xdb\xb1\xbf\xaf\x8e\xfd\xad\x6c\xd3\xd9\xf1\xc0\x3f\x20\x0f\x94\x2a\x15\xc5\x66\xca\x60\x02\x7d\x78\x9b\x76\x9c\x2c\xfd\x31\x17\xca\x58\x9e\xdc\xf6\xd8\x11\x3b\xae\x35\x5b\x11\xd1\x22\x7e\x6b\x16\xa6\x45\x21\x86\x94\xcf\x5f\x43\xb4\xa8\x7d\xf3\x59\x01\x53\x6c\xd7\x33\xff\x84\x70\x13\xcd\xe3\x3f\x9e\x98\x7f\x65\x5d\x3c\x03\xdd\x3c\xad\xce\xff\x1f\x82\xf7\xad\x38\xfb\x16\xec\xee\xe9\x35\x1e\x88\xa7\x35\x78\xed\xe6\x1a\xeb\x73\x5e\xf0\xb1\xb0\xa2\x00\x7a\x99\xa2\x31\x5e\x29\x0a\x25\x77\x17\xfd\x0a\x2e\xfa\x46\x48\x0c\x74\xcb\x65\x1a\xbe\x81\x58\x56\x84\xdb\xe1\x1f\x2b\x22\x39\x4f\x72\x3e\x5b\x52\xe4\xad\xa1\x2b\x20\xc9\xda\xd1\xe1\x1d\x1d\xde\xd1\xe1\xdf\x2b\x1d\xde\x40\xf4\xde\x11\xe3\x67\x45\x8c\x21\xc1\xe4\xec\xe2\x18\x3c\xa9\x0b\x08\x71\xbd\x61\x13\x0e\xa3\xe6\x88\x85\xf8\x1f\x6c\xcf\xce\x2e\x58\x9f\xbb\xd5\x35\xc2\x40\xde\x92\xc7\x2b\x69\x41\xee\xac\x1c\x0b\x5d\xda\x76\x20\x8c\xf5\xc6\x51\x95\x64\x72\x64\xc3\xaf\x61\x5c\x67\x17\x44\xf8\x68\x54\xc6\xca\xe4\x76\x02\x78\x7c\xbd\x28\x98\x6b\x4c\x14\xf3\xa6\x7c\xf9\xf2\x3b\xf1\x12\xfe\xf7\xdb\xd7\xf8\x5f\xfc\x31\xf9\xf7\x3f\xbd\xfe\xfe\xe5\xcb\x7d\xa7\x1c\xbe\x62\x29\x9f\x1c\x38\xd2\x46\x19\x94\x01\x24\xe8\xdf\xff\x9d\xdd\x84\x15\x74\x14\x92\xe8\x49\x15\x77\xf1\xea\xe5\x9f\xa8\x97\xef\xd8\x48\x97\x85\xd9\x12\xa8\xd6\xd4\x79\x5a\xf5\x7c\xe8\x71\xae\x95\x50\x51\x85\xd0\xf9\x67\x64\x76\x19\xdd\x50\x36\x95\x00\x3a\x7d\x8f\x2d\x4e\x80\x28\x0a\xbd\x4c\xf1\x0d\x03\x63\xd0\x9a\x41\x4d\x65\xc4\xd7\xac\x3e\x05\xb8\x69\x51\x06\xe0\x48\xf0\xcc\x8e\x58\x32\x12\xc9\x6d\xf4\xde\x1a\x51\x2a\x63\x61\x0c\x1f\x2e\x63\xca\x1f\xb0\xd5\xcc\x55\x59\x3c\xd6\xe9\xf2\xe4\xf5\xd1\xaf\x31\x64\xd3\x2c\xf3\x3b\x6b\xc4\x58\x0b\xd8\xc7\x4e\x2d\x18\x6d\xad\xba\xb7\x7b\x7a\xf3\xe2\xaf\x30\xbe\xc9\xcd\x0b\x27\x27\x5c\x03\xae\x9a\x13\x0f\xde\x22\x78\x5a\x87\x41\xa3\x4f\xa1\x8e\xfc\xea\x33\xb0\xcb\xc5\xa0\x6b\x02\x47\x6c\x37\xf2\x37\xf1\xa8\xb7\x4b\xaa\xe1\xfd\xe9\xd5\xdf\x98\x70\xfb\x79\x4c\x17\x6d\x9e\xba\x20\xb5\x96\x6c\x1f\x53\x19\x6a\x3f\xbe\x97\xc6\x1e\x00\xf0\xa8\x89\x83\xd8\xb0\x74\x3c\x1e\x3e\x77\x10\xe3\x9c\xd8\x37\x18\x69\x74\x74\x71\xe6\xe8\x57\x5a\xcb\x95\xbd\x7b\xd5\x7b\xf5\xe7\xff\xbd\x4b\x7c\x7d\xce\x89\xaf\xad\xab\x59\xbf\x27\x1c\xfd\x70\x73\xaa\x3b\x65\x02\xea\xf0\xb6\x50\xf5\xe7\x72\x9d\x96\x7e\x91\xda\xa3\x5a\x16\x61\xce\x6d\x32\xea\x8e\x45\x31\x14\xdd\x5b\x31\x01\x99\xa1\x7e\x35\x67\xbf\x61\x6c\xc1\xad\x18\xc2\x0b\xf0\xf6\x2e\x8f\x78\x97\x47\xfc\xec\xf2\x88\x97\xc9\x79\xe1\xf7\xc7\xca\xac\x6d\xf2\xa3\x5a\xa3\x8d\x33\x6c\xa7\xb9\xd5\x02\x86\x57\x89\x2e\x3c\xcb\xea\xe2\x8b\x89\x02\xb9\x3d\x35\xe3\x71\xb1\x90\x26\xb3\xf4\x55\x43\x76\x8c\xef\xab\x61\x7c\x6d\xca\xc8\xbc\x5f\x72\x1c\x1e\x89\xdd\x5d\x35\x4a\x3a\xed\x2a\xc8\xfc\x81\xf9\xd0\x73\xae\x20\x13\xaf\xd5\xca\x1a\xd1\x93\x17\x91\x69\xc5\xb1\xb6\x59\xcd\xd7\x5f\x6b\x35\x90\xc3\x0f\x3c\x5f\xa8\x9c\x51\x1b\x52\xbe\xea\x19\x0d\x00\x99\xe8\x38\x16\x00\x0a\xa1\x11\xd4\x94\xe3\x56\x85\x63\x76\x1c\xe6\x8b\x71\x98\xbe\x54\xbc\x98\x9c\xcc\x20\x07\xed\x12\x44\x2a\x5b\x5f\x7f\x62\xeb\x1a\xca\xfa\xe9\x23\x3f\x85\x41\xd5\x8b\xe9\xe0\x60\x19\x92\x8d\x53\x9e\x8c\x20\x90\x08\x2c\x9f\xee\xb4\x11\x23\x04\x20\x0c\x55\x8e\x45\x21\x13\x96\x8c\x78\xc1\x13\x2b\x0a\xd3\x61\x7b\xdd\xbd\x0e\xdb\xfb\x75\x8f\xe9\x82\xed\xf5\xf6\x7a\x2c\xfe\x0e\x57\xfe\x5b\xcc\xcd\x84\x61\x9a\x64\x12\x67\xa6\x38\x92\x4f\xfe\xb5\x4f\xd7\x6f\xbb\x7f\x62\x05\x57\x43\x32\xc2\xde\x8a\x09\x65\xb9\x80\x70\x15\xf5\x0c\xc3\x73\xaf\xea\x3b\x51\x64\x3c\xc7\x7c\x3d\xd7\x89\x76\x07\x98\x3a\x84\xa6\x90\x0a\xd5\xc1\xb3\x2b\x0d\x13\x0a\x1c\x33\x29\x4b\x4b\xcf\xfb\xbc\x85\x23\x2f\x74\x22\x8c\xe9\xb1\x4f\x26\x60\x65\x63\x22\x15\x38\x74\x88\x98\xb1\x57\xbd\x57\x2f\xff\x37\x73\xa4\x1a\x0e\x3b\x9c\x55\xef\x07\x5c\x3d\xbf\x75\x16\xd3\x78\xd4\x34\xa2\xe9\x13\x30\x4d\x73\xb6\x72\x10\x3e\xa3\x49\x10\x76\x46\x69\xd5\xc5\xed\x6d\x9c\x03\xe8\xde\xc3\xa9\x45\x1b\x0c\xeb\x3e\xf3\x14\x2c\xd9\x7f\x68\x4d\xfb\xdf\xec\x6f\xa5\x53\xb0\xfa\x56\xca\xf1\xb8\xb4\x00\xf6\xbd\x98\xe2\x9e\xf9\x76\x1d\x26\x07\x58\xa6\x42\x33\x5b\x38\xba\x27\xa0\x44\x0b\x5d\x0f\xa0\xfe\xd5\xc4\x21\x73\x2b\xb0\x8b\xa4\x29\x2d\x11\xaa\x2e\x49\x68\x5e\x12\x80\x3b\x08\xd5\x6d\x52\xf0\xb4\x1e\x84\x34\xd0\xda\x77\x21\xcc\x13\x8e\x7a\xa3\x3d\x73\xd7\x54\x79\xcf\x08\xb9\x2d\xd0\x59\xa6\x64\x8c\x95\xc3\xfa\xc2\x2f\x33\x82\xe3\xa0\x33\x39\xcc\xf5\x34\x1f\x89\xb1\x28\x78\x36\x13\x27\x67\x0d\x27\xe6\x4e\xd0\xfd\x5a\x04\xdd\x9d\xc1\xc5\xf7\xba\x9a\xf8\xea\xa5\xcb\xc7\x11\x5a\x4f\xd5\xdd\xd2\xe8\x9c\xe9\xc6\xcc\x88\xcc\x69\xc8\x8c\x47\xb4\xca\x6a\x96\xeb\xbc\xcc\x38\xe5\x35\x0b\x75\x27\x0b\xad\x20\x18\xe6\x8e\x17\xd2\xd1\x07\x64\x14\x50\x1b\xec\x1a\x79\x92\x05\xef\x32\x39\xa0\x08\xad\x2e\xf4\xb9\x67\x22\xee\xee\xf9\x33\xdd\x55\xcf\x07\xba\x78\xdd\x73\x2e\x0b\xc3\xb8\x99\xfd\xd9\x36\x85\x59\x56\xab\xc4\x40\xe1\xc4\x76\xe5\x8a\x39\x8e\x97\xdd\x49\x71\x7f\x78\xaf\x8b\x5b\xa9\x86\x5d\xb7\x22\x5d\x32\x39\x1c\x02\xc2\xf2\xe1\x37\xf0\x3f\xab\x5f\x5b\x9f\x07\xde\xb2\xa2\xd2\xfd\x48\x50\x0e\x40\xcc\x73\xbc\x3b\x1c\xf5\x84\xd6\x91\x27\xcb\xae\x4a\xeb\x23\xf9\xb3\x98\x5c\xc1\xf1\xaa\x39\x85\xa7\xe6\x10\x4e\xa0\x93\x5f\x80\x3c\x47\x87\xb1\xc5\x7e\xa3\x77\x60\x59\x5d\x03\xd7\xb9\xd5\x74\xde\xd7\x81\x37\xd8\x9d\x2a\x3c\x55\xba\x60\x8e\x45\x06\x61\x73\x0b\x07\x6c\xb6\xdd\xc1\xed\xeb\x32\xab\x43\xeb\xb3\xb8\xc4\x06\x5d\x6b\xe7\x71\x23\x48\xc0\x88\xe2\x9c\x62\xc3\x73\x58\x8f\x5d\x31\xf2\xdf\x81\x8e\xbf\x52\x31\x72\xcc\x96\x6b\x6c\xf4\xf6\xad\xc8\x5e\x20\xd8\xd9\x8f\x77\x62\x75\x4b\xfb\xf1\x33\x10\x9c\x9f\xb9\x91\x38\xa6\xf7\x8f\x23\x69\x9f\xeb\x54\xe0\x1f\xed\x05\xee\xe6\x3b\x8d\x02\xd9\x75\xb8\xa1\x2a\xc1\x2d\x96\xca\x39\xe6\xc1\x42\x38\x27\xdd\x51\xef\x1c\x3d\xaf\xc5\xc2\xcd\x17\x94\xd0\xea\x85\x5d\xfe\xbc\x54\x6a\xfa\xb9\xd1\x9c\xa5\x22\xc9\x78\xe1\x44\x7f\x40\x94\x72\x12\x40\x5d\xda\x49\x44\x1a\x9b\x3c\x74\x51\x08\x93\x43\x24\x27\xb1\x96\x5a\x97\xde\x82\x65\x6c\x51\xc2\x89\x6c\x60\x21\xf9\x83\xc6\x24\xe2\xb6\x25\xdc\xcc\xc5\xb1\xd9\x86\xe4\x46\x84\x3f\x68\xa9\x6a\x5a\x9c\xab\x4d\xb0\x89\xdd\xb4\xcd\xf1\xb6\xa9\xe3\x12\xea\xbd\xcc\x1c\x79\xad\xba\xcb\x53\x0e\xdf\x73\x90\x76\xa2\xce\x65\xbd\xf5\xd4\x54\x9a\xcf\x57\x98\xd0\x40\x17\x7d\x99\xa6\x02\x2a\xfd\xc2\x15\x71\x82\x6d\x27\x06\x86\x4e\xab\x47\xe0\x54\x5a\x63\xba\xa5\x5c\xc6\x7f\x3f\x9d\x9d\x4c\x4d\xeb\x53\x55\xdc\xf5\x0b\x4f\xa5\x25\x7d\xaf\x0e\x65\xf3\x66\x75\x16\x10\x98\xad\x89\xef\x17\x85\xfe\x2f\xcc\xff\x5f\x08\x13\xc5\xf3\x86\x29\x43\x2a\x48\x5c\xc8\xf1\xf5\x50\x6e\x71\x13\xbb\x45\x5f\x30\x92\x86\xe8\xae\x4c\xf5\xee\x48\x35\xa4\xec\xb0\xd2\x78\xe1\x2a\xb6\x73\x47\x3d\x52\x5e\x92\x6b\x8d\x35\x99\x3a\xac\x54\x99\x30\xc4\x17\x40\x20\x15\x19\xe6\x21\x41\x29\x50\x34\xcb\xa4\x68\x40\x0f\x18\x62\x63\x9e\xe7\x50\xd8\x44\x0f\xf0\x4b\x00\x5a\x67\x47\xa6\xc7\xce\xb5\x0d\x35\xc4\xd1\xf6\x8b\x59\x13\x09\xcf\x42\x42\xd5\x40\x0e\xc7\x3c\x0f\xe5\x30\x91\xb9\xb8\x2f\xf8\xe8\x67\x9f\x86\x3c\x6e\xc7\x68\x5a\x09\xdb\xb5\x8c\xa2\x0e\x13\xe4\xc1\x88\xac\x40\x33\xd6\x6b\x11\xbf\xa9\x76\xc7\x6f\x07\xec\x7e\x94\x1b\x02\x2c\x14\xd6\xfa\x7e\xa4\x0d\xc1\x4d\xd2\xd5\x74\xdc\xcc\x5d\x27\x3a\x11\xfe\x67\x18\x0d\x18\xe1\xa3\xb1\x7a\xfd\x40\xa4\xb8\xda\x0b\xbe\x1c\xde\xc2\xfd\xc0\x2b\x5b\xaa\xa9\xb7\x49\x14\xa6\x93\x05\x1f\x44\x83\x88\x34\x51\x1f\xc8\x78\xa5\x21\x60\x48\x34\x9f\x35\x7d\x0d\xb5\x82\xe1\x46\xd8\x92\x96\x06\xe3\xe6\xe9\x78\x49\xaa\x5d\x50\xdc\x8a\x34\xa0\x0e\xf6\xd8\x85\x1b\x64\xd0\xeb\x0b\x91\x71\xc0\x43\xf4\xba\x9f\xfb\xac\xf7\x10\xba\x8f\xec\xf5\x7a\x7b\x08\x68\xa0\x0b\x66\x2c\x2f\x08\x89\xd3\xfd\xbe\x65\x75\xe9\x67\x31\xb9\xd6\x71\x09\x53\xb6\x8e\xba\xb4\xb3\xe2\x4c\x59\x71\xcc\x17\xb7\x13\xb6\x2d\x85\x36\x97\xbc\x3f\x06\x51\x7f\x86\xa4\xbc\x9a\xf7\xe3\xe6\xad\x12\xb5\x6f\x51\x3d\xb7\x4a\x13\x1c\x43\x45\x2e\x77\xa4\x7c\x72\x9e\x11\x96\xe5\xa2\x18\x4b\x48\xd9\x32\x4c\x2b\x96\x00\x48\x73\x4a\x2b\xda\x0f\xd5\x03\xa3\x5c\x57\xc5\x74\x62\xbd\xd1\x89\xf5\x85\xbd\x17\x42\xb1\x97\x2f\x5f\xbe\x84\xf9\xbc\xfc\xf1\xc7\x1f\x19\x24\x86\xa4\x22\x91\xe3\xe9\x86\xd0\xea\x87\x57\xaf\x7a\xec\x6f\x47\x1f\xde\x33\x9e\xc0\x7d\x64\x7d\xed\x68\x14\xf4\xec\x1a\xd4\x5e\x36\x1d\xf6\x1f\x57\x1f\xcf\xab\x62\x21\xf5\xa7\xa0\x65\x85\xe9\xd5\x61\x4a\x5f\xbe\xfe\xfe\xfb\x1e\x3b\x91\x05\x18\xb9\x25\x79\x45\xe8\x6c\x00\x5d\xf4\x31\x13\x7c\x30\x40\xce\x00\x19\xbb\x8e\xa8\x63\x72\x29\x49\x7a\x63\x39\x1c\x59\xca\x5d\x76\x0c\x39\x93\x09\x91\x52\x2c\xea\x8d\x77\xde\xc7\x61\x40\x5f\xd5\x69\x1b\x43\x41\xf0\x4c\xde\x0a\x36\x30\xef\x9c\x82\x8c\x6c\x06\x29\x18\xc0\x85\x92\x9b\x18\x3b\xab\xf6\xca\x4c\xc5\x40\xac\x99\xb7\xb6\xaa\xa5\x6d\xc7\xfc\x77\xcc\x7f\xc7\xfc\xff\xd8\xcc\x1f\x61\x1c\x16\x31\x7c\x5f\xc0\x9a\xe7\x79\xe6\xd1\x9d\x02\xfe\xc3\x74\x0d\xb4\xa2\x54\x9e\xfe\xf2\x96\x55\x4e\x79\x31\x5c\x46\xab\x8e\x8a\x21\x60\x2b\x07\x23\x96\x50\xb6\x98\x80\x8d\x1b\x03\x9e\x52\x9d\xdc\x8a\x82\xc9\x31\x1f\x8a\x3d\xc3\x8e\x3f\x80\xba\x0f\x6c\x50\x0e\x82\xd6\x15\x43\xb9\xf7\xd8\x67\xf2\x67\xc7\xd8\xdb\xff\xb6\xff\xf9\xe8\xf2\xd7\xf3\xa3\x0f\xa7\x07\xc0\x36\x04\x94\xaa\x12\x69\x24\x7a\x84\xc9\xef\xd5\xdc\xe3\x44\x31\xbc\x93\x3c\x0a\x36\x2a\x84\xd1\xd9\x9d\x27\x5b\x95\x61\x91\xae\xb0\x54\x79\x69\xbd\x5b\xc0\x13\xb2\x52\x25\x23\xae\x86\x82\xe2\xb9\xe2\x61\x99\x89\xb2\xfc\xc1\x73\x13\x61\x12\x9e\x7b\x01\x86\xb3\x54\x97\xee\xe3\xff\xf6\x6f\x1d\x26\xc5\x1b\xf6\x6f\xd1\x8b\x3d\x76\x4a\x6d\xa3\xf9\x22\xe9\x13\x77\xa2\x80\xce\x68\xb6\x1d\x56\x88\x21\x2f\x52\x20\x54\x7a\x50\x3b\xc1\x61\x82\x80\x0f\x62\xdc\x39\x56\xda\xce\x74\x25\xb4\xbb\xb2\x96\x9b\x5b\x73\x28\x95\x3b\xb2\xdd\x94\x5b\xde\x8d\x8e\x1a\x12\x25\xd1\x4d\xf4\x78\xcc\x55\xda\xe5\x74\x10\xba\x61\x17\x0e\xbf\x21\xc0\xe9\x2e\x0f\xad\xa4\xea\xf2\xae\x19\x89\x2c\x7b\x6a\x38\x41\x1a\xc1\x92\xe3\x7c\x1a\x4e\x2f\x83\xbe\xc0\x42\xc0\xc4\x83\x48\x4a\x2f\x8c\xc2\xfd\x81\x29\xcc\x3c\xe0\xa7\xe7\xd7\x97\x7f\xbb\xf8\x78\x76\x7e\xbd\x3b\xe7\xbb\x73\xfe\xf4\xe7\x5c\xa8\xbb\x96\xe9\x40\xb3\x03\x97\x48\x37\xf1\xf5\x3f\x2a\x3c\xa1\xe9\xe5\xdd\xae\x14\x73\xaa\xee\x3e\xf3\xe2\x51\x52\x63\xd5\x54\xa5\xe8\xf5\x53\x63\x85\xba\x7b\x5b\xe8\x71\xcb\x35\x26\x8f\x7c\x2d\x68\x6c\xf6\xba\x4f\x2f\x78\x08\x17\x26\xe1\x23\xa2\x3e\x68\x83\x1c\x07\x08\xa4\xe3\x5f\xcf\x4e\x4e\xcf\xaf\xcf\xde\x9e\x9d\x5e\xf6\xd8\x51\x96\x31\xa9\x20\x0a\xb8\x2e\x84\x17\x82\x80\x91\x38\xd4\x83\x14\x77\x6e\x08\xf7\x23\xd1\xf8\x34\x08\xd6\x4e\x62\x05\x0d\xec\x17\xf7\x1c\x05\x6e\xba\x70\x52\xb1\x71\x99\x59\x99\x67\xde\x1c\x6a\x3a\x95\x46\x10\xd7\x59\x09\x81\xcc\x19\x37\xb6\x32\x9d\x66\x19\xb3\xfc\x16\x44\xfa\x44\xa4\x8e\x0e\x84\x00\x6b\x3f\x57\xac\xac\x73\xaa\xee\x02\x5d\x29\xf1\x4a\xa2\x3a\x32\xbb\x8f\x27\x38\xa2\x6e\xef\xc9\x16\xb3\xc9\x2d\x05\x6e\xb1\xac\xf8\x4f\xc4\x58\x40\x1f\x5b\x59\xd4\xae\x0a\x3d\x1c\x42\x2f\x66\x4e\x3d\x15\x30\x75\x67\x99\xbe\x67\x23\x39\x74\x64\x36\x13\x77\x22\xf3\xee\xd4\xc8\x68\x62\x75\x30\x76\xeb\x02\xc2\xd5\x0b\x99\xd6\x4e\x0e\x7e\x46\x2a\xe6\xa4\xfb\x4c\x73\xd4\x1a\xb1\x70\x98\x41\x2d\xfc\x44\xe4\x99\x9e\x8c\xa9\x56\x7f\xca\xae\x2c\xb7\x62\x50\x66\x57\x62\x6e\x4d\xfb\x85\xb1\x2b\xee\x93\x17\x65\x96\x5d\xe8\x4c\x26\xcb\xdc\xb6\x67\xb0\x9a\x79\x99\x65\x2c\x87\xf6\x3d\xf6\x51\x81\x52\x73\x94\xdd\xf3\x89\xe9\xb0\x73\xc7\x8b\x3a\xec\x6c\x70\xae\xed\x85\xd7\x39\x63\xb3\x06\x36\x74\x5c\xfd\x0d\x05\x03\x59\x3e\xac\x29\xa3\x00\x0a\x12\x77\x80\xa6\x85\x7b\x69\x66\x1e\xd2\x8d\xb7\xf5\x1b\xe8\xc9\x71\x20\xfc\x7b\xf5\x45\xcc\xe4\x40\x24\x93\x64\x3a\xda\xbf\x3d\x88\x56\xe8\x61\x51\x84\xc6\x51\x12\x59\x6a\xc0\xe7\x57\x1d\x2e\xc2\x70\xa3\x48\x2c\xb8\xdc\x52\x31\x74\x92\x1b\x41\x09\x63\x74\xce\xc2\x78\x91\x88\x99\x99\x77\x7f\xce\x4c\xef\x84\x12\xc6\x5c\x14\xba\xbf\xfe\x6c\xf1\xed\x45\x33\xbd\x10\x85\xd4\x29\x56\xb0\xe9\x7b\xf0\x96\x30\x7a\x1c\x03\x18\x2d\xe9\xb7\x8a\x46\x03\xe9\xf5\x62\xa3\xa0\xf7\x07\x5c\x66\x33\x67\xb9\xea\xe1\xf1\xf7\xd2\x1c\xe6\x1a\xff\xd3\x0d\x8b\xf9\x4d\x18\x62\x17\xbe\x6a\xb6\x62\x29\xa8\xe6\x5d\x59\x6b\xc0\xdc\x74\x72\x7e\xf5\xeb\xfb\xa3\x9f\x4e\xdf\x53\x86\x4e\x44\x46\x48\x47\x45\x16\x37\xe2\x77\x8e\xc9\x51\xf5\x3b\xb0\x4c\xed\x87\x77\x0f\x96\x93\xfd\x36\x17\xc0\x31\xc6\xb6\x79\xd4\xd0\xd6\x9d\x47\xf1\x90\x6b\x23\xaa\xe8\xae\x88\x79\x9f\xba\x47\x18\x14\x09\x36\x68\x80\xd2\x1b\xca\x3b\x8f\xe1\x85\x67\xbd\xca\x8d\x9a\x01\x8d\xe4\xda\x29\x61\xdd\x86\x79\xbc\x38\xb8\x3b\x11\xca\xa3\xd3\x2f\x4c\x87\xf5\x4b\x34\x9a\x17\x72\xcc\x0b\x89\x40\x85\xbe\x33\x9e\xa1\x0e\x83\x6b\x3f\x69\x0e\xe9\xe4\xe3\xe9\x15\x3b\xff\x78\xed\xf8\xe8\x9d\xf0\xb0\xf8\xf0\x1c\xa6\xd5\x17\xee\x0d\x9c\x68\xda\x63\x47\x6a\x82\x0f\x83\xb9\x0d\xcc\x75\x10\xfe\xa9\x55\xcd\x1b\x7a\xf3\xe2\x65\x0f\xfe\xef\xe6\x85\x9b\x67\x01\xa6\x35\x65\x1c\xbf\x88\x67\xe0\xcf\x3d\x4f\x12\x61\x8c\x74\x72\x7d\x58\x4f\x9a\xfd\xe3\x33\xf6\x70\x0d\x2f\x74\x61\x37\x17\x41\xdd\x9a\x74\xc7\x3c\x77\xf2\xa7\xa9\x45\x0a\x30\x46\x25\xaa\xab\xaf\x35\x12\x22\xf3\x42\x5b\x9d\xe8\x2c\x1e\xc5\x3f\x96\x7c\xca\x8f\x6b\xdc\xcc\x9f\x58\x26\x18\xcf\x1f\xc9\x06\x12\x72\x21\x78\x2a\xbf\x34\x89\x35\x08\x5a\xc7\xc2\x60\x66\xd3\x5a\x2c\x0a\x05\x07\xce\xbf\xe1\x43\x34\xcd\xf3\x25\xc0\x55\xa4\xef\xba\x8b\xeb\x03\x87\xa8\xa2\x04\x08\x63\x0b\xd7\xfa\x58\x8f\xf3\xd2\x0a\xe6\x5f\x8c\x22\xa2\xbc\xcf\x66\xa1\xae\xb8\x86\x8c\x53\x05\xc1\x1d\xa2\x94\xe0\xb4\x6b\x37\x88\x6e\x98\x7f\xa4\x84\xcf\x05\x07\x2d\x0b\x69\x27\x6e\xef\xc5\x83\xdd\x04\xaa\xb9\xd6\xcf\xc2\xd4\x2e\x6a\x1b\xb9\xa5\x04\x30\x33\x92\x6c\xbc\x21\x76\xe5\x35\x41\x81\xf5\xd0\xcf\x09\x26\x2f\x1e\xec\xe1\x4a\x66\x0e\xbf\xb0\xa2\xeb\x4e\x5e\xb5\x7e\x53\xbd\xce\x85\xdb\x2b\x6c\x99\x3f\xf6\xd5\xbe\x8a\x3e\xc3\xa4\x4a\x41\xf3\x8b\xc4\xc6\x0b\x9d\xb2\x11\x37\xcc\x94\xc0\x36\x06\x65\x06\x5c\x4f\x5a\xc9\x33\xf9\x1b\x55\x7d\x8c\xe4\x71\xa5\xc9\xbb\x87\xd7\x8a\x2c\x6b\x64\xd5\x2b\x95\x95\x99\x3f\xc3\x58\xb1\xb2\xde\x33\xd5\x90\x04\x16\x1b\x68\x41\x27\x0c\x64\x4a\x74\xeb\xb0\xff\x02\xc4\xe5\x40\x42\x6a\x42\x27\xbc\x8e\x76\x35\xf7\x45\xb4\xa2\x79\xbf\x30\x19\x07\x59\x2a\x07\xe8\x5f\xa1\x4f\x46\x18\xb2\xb4\x04\x7d\x31\x94\x58\xcf\x0f\x90\x28\x2f\x74\xba\x67\x2a\xb9\xb8\x83\x7a\xbd\xb4\xe4\x3c\x05\x71\x9a\xb3\x4c\xab\x21\xa4\xbf\xba\x6f\x81\x7a\x06\x79\xb5\xba\x60\xf7\xbc\x18\x3b\xc6\xcc\x93\x11\xa4\xd0\x72\xe5\xd3\x89\x8d\x15\x3c\x9d\x74\x8d\x53\xd3\x3c\x8c\xb2\x56\xd5\xf0\x9b\x37\xbd\x99\x45\x4b\xa9\xb1\x51\x1e\xad\x1b\x7e\x6d\x87\x7d\x9b\x41\xc6\x87\x5f\x82\xa0\x1a\x9b\xca\x65\xb1\x98\xbf\x04\x13\x64\x4c\xeb\xfc\xa5\x76\xea\x33\x58\x27\x38\xeb\x97\x6e\xeb\xb0\xce\xa4\xeb\x77\xca\xb4\xe3\x28\x00\xa6\x20\x9f\xd5\x2d\xc3\x46\xd8\x0e\x70\x2c\xca\x18\x98\xf3\x3a\x9c\x37\x8e\x5a\x28\x79\xb0\xa5\x62\xa7\x1f\xdf\x56\x50\xac\x4e\xcb\xe7\x99\x59\x2b\x17\x19\xbe\xfa\x51\x2d\x8d\xb0\xfd\x25\xb2\xc9\x4e\xcd\x2d\x24\xd4\x64\x9a\xf2\xe1\x71\x32\xc9\x88\x2b\x25\x32\xc6\x07\xd6\xc9\xf9\x16\x6e\x71\x5f\x08\xe5\x4e\x96\x37\xfc\x04\xcf\x96\xb5\x3c\x19\x91\x09\x8a\x16\xc3\x40\x92\x77\xd4\xa3\xb1\x85\xe0\x63\x9f\x35\x39\xe6\x12\xbb\x62\x3c\x29\xb4\x31\x95\xa5\x0a\x3b\xf3\x20\xb9\x06\x29\x84\x9f\x2a\xc3\x98\x83\x2a\x87\x3c\x7c\x8d\x86\x55\xf3\xad\xc1\x35\xef\x84\x8a\x29\x81\x80\x08\x36\x90\x85\xb1\x3e\xb1\x03\xbf\x48\x36\x55\xd7\x5f\x08\x3c\x50\x34\x52\x43\x43\x55\x69\x88\xc5\x80\xfb\x58\x75\x48\x5d\xa5\xd2\x90\x0a\x60\x3a\x8e\x00\xa0\xf8\x8d\x0b\xed\x47\x0a\x4b\x9d\xfa\x4a\xa0\xd0\x3b\xfd\x14\x75\x17\xdb\xf8\x02\xbd\xaa\x0e\xa2\xbb\x80\xe1\xf0\x74\x6a\x82\x3a\x41\x09\x78\x2a\x3c\x75\x4c\x23\x43\x7e\x21\x12\x81\xbe\xf1\xd9\xa7\x72\x8d\x43\x89\x95\x99\x81\xf2\x10\xfc\xec\xc5\x2a\xf5\xa1\x2e\x20\xda\x24\xac\x9b\x8f\x0d\xb1\x3a\xfa\x25\x76\xab\x44\x9f\x63\x04\x8a\x1b\xc8\xfc\x7d\x21\xad\x15\xb0\xe4\xbe\xd4\x54\x88\x69\x88\xfb\xa8\x70\xe9\x7b\xcc\x43\xe6\x46\xef\x4a\x65\x05\x38\x76\x10\x4c\xbe\x5f\x48\x31\x60\x03\xe9\x74\x41\x44\x55\xed\x38\x1e\x34\x22\x5b\x2d\x37\x46\x14\x30\x1c\xc7\x3d\x1c\xad\xa4\x61\xf5\xd8\x2f\x34\x2e\x5b\x94\x0a\xb1\xdb\x88\xc4\x2a\x9d\x0a\xc7\x81\x86\x10\x58\x44\x35\xb0\xbe\x7f\xf9\xe7\xd7\x80\x5b\x61\xd0\xc2\x6c\xb5\xe5\x59\x98\x63\x26\xd4\xd0\xad\x14\xde\x1d\x08\x74\x0f\xc6\xa6\xb0\x00\x99\x1c\x4b\x82\x4d\x78\xf5\xed\x6d\xbf\x6e\x1d\x3b\x4c\xc5\xdd\x61\xb4\x7c\xdd\x4c\x0f\xb7\xa3\xa2\xcf\x38\x02\xad\x2c\x7e\x24\x3d\xb0\x91\xbe\xc7\x80\xb7\x19\x7b\x4b\xd4\xca\x31\x5a\x1f\x79\xd6\x83\x92\x71\x38\x69\x8f\xe9\x51\x8b\x9d\x9b\x79\x22\xa7\xd2\xc3\x6b\x54\xc3\x96\x26\x7c\x52\x2b\x8c\xbb\x22\x41\x03\xee\x2d\xed\x6d\x8f\xbd\xe5\x59\xd6\xe7\xc9\xed\xb5\x7e\xaf\x87\xe6\xa3\x3a\x85\x00\x95\xda\x58\xc0\xa4\x9e\x8c\x4a\x75\xdb\x30\x2e\xe9\x21\xd3\xa5\xcd\x4b\xeb\xa5\x8f\x59\x13\x1e\x50\xcd\x2d\x24\x60\x3e\x1e\xaa\xea\x45\x3c\xc8\x60\xc0\xe7\x84\x46\x8d\x07\x26\xee\xdf\xc4\x67\xe1\xdb\x97\xdf\x23\x22\x0a\xb8\xe4\xfe\xf4\x92\x65\x4e\xf1\xea\xe0\x0d\x13\x54\xc7\xde\x8c\x79\x96\x39\x15\x21\x3e\x33\x6e\xa1\xb7\x74\x46\xec\xb2\xe3\xd0\x9a\x8d\x5f\x5f\xff\x0d\x78\xb8\xb4\x46\x64\x83\x0e\xd6\xcf\x08\x51\x70\x7b\x40\xf4\xf6\xe8\xf2\x3a\x9e\xb1\x1d\xe6\x8b\xb1\x49\x27\xc2\xa9\xa2\xcb\xec\x51\xb5\xb6\xcd\xcc\xcc\x7e\xa6\x93\x5b\x96\xd2\x43\x1c\x26\x08\x99\x44\x1c\x2a\x6d\x6d\xbb\xa6\x94\xcf\xd1\xa0\x1e\xc5\x99\x87\x53\x02\xea\xbf\x25\x83\xc5\x5d\x54\xbe\x62\xc9\x92\x3b\x71\xdf\x87\x97\xfa\x5a\x24\xcb\xa9\xff\x63\x9b\xaf\xa2\xfa\x1b\x8f\xb2\xe4\x30\xcd\x6d\xae\x38\x85\x7e\x9d\xc8\x16\x78\xf8\x61\x45\xe9\x25\x96\x52\x40\xe9\xa4\x42\xff\xa9\xc7\x1f\x4e\x09\xa3\x7b\x26\x58\x25\x43\x78\x83\x71\xad\x91\xf9\x87\xf0\xd2\xa0\x1b\xa7\xd3\x42\x37\x78\x56\x36\x20\x52\x53\x21\x61\xf3\x33\x89\xb6\x91\x18\x84\xa3\x3e\x6b\xb8\x19\xa7\x5c\x8c\xf0\x67\xbf\x6e\x91\x45\xdf\xe4\xd2\xe0\x30\x0c\xd1\x6b\x91\x84\xe7\x28\x8e\x97\xb2\x9c\xdc\x03\x1e\x38\x69\x18\x20\xe6\xf7\x98\xe8\x0d\x7b\xec\xef\x37\x2f\xdc\x24\x86\x49\xe1\xf4\xbb\xd1\x24\x17\x85\x3b\x5b\x6f\xee\x5e\xf5\x5e\xf6\x7e\x44\xc4\x7d\x0c\xb4\x19\x95\x7d\xd7\x64\xa8\xf5\x30\x13\xbf\x46\xae\xb0\xe9\x97\xfe\xf1\xd4\xb1\x17\x46\xfe\x26\x7e\x72\x0c\xb0\x05\xe2\x86\x6b\xeb\x3d\x24\xb4\x24\x8a\xe4\xb2\x05\x31\xc7\xaf\xbf\x5f\xbb\x56\xc6\x82\xcc\xb5\xed\x1d\x38\xb0\x23\x2f\xcc\xf8\xad\xda\xc5\x65\x57\x78\xf0\x74\x80\x77\x01\xa3\x1c\x50\x09\x9c\xc1\xa8\xe6\x9e\xc9\x64\xce\x38\x66\x9e\xcd\x72\xdc\x17\x85\xf7\xe7\x44\xee\x1c\xf2\x63\xe4\x60\x50\x39\xbb\xf0\xce\x0b\x1f\x8b\x1e\x82\x2e\x30\xc0\x02\x5e\x56\xd0\x57\x87\xbd\xa4\x3a\x2a\xec\xc1\xff\xe3\xf5\x0f\x3f\x7c\xf7\x7a\xeb\x51\xe4\x23\x6d\xec\xd9\xc5\x52\x49\x87\x5b\xac\x7d\x75\x76\x01\x02\x80\x24\x29\x4f\x3c\x10\x76\x05\x4d\x7c\x0d\x39\xcb\x75\xbb\x85\x35\x76\xdd\x4c\x47\x90\xaf\xbb\xca\xae\xa3\xbf\x6a\x63\xcf\xe9\x28\xd5\x5d\xf2\x55\xbf\x63\xc7\xaa\x58\xed\x2c\xf6\xd8\x07\x6d\x6c\xac\xec\x50\xb9\x67\x25\x9c\x70\x3b\x92\x0b\x6f\xe5\x5a\x7b\xd8\xc2\x8b\xba\x68\x61\x14\x3b\x3b\x3a\x3f\xfa\xf5\xea\xf3\x31\x04\xd7\x51\xf0\x3c\x78\x48\xe3\x2c\x0b\x9d\x92\x73\xd5\x7d\x2e\x8d\x6e\xd7\x02\xef\x6a\x8f\x81\xfb\xd6\xe7\xcf\xe3\xd6\xb9\xc3\x44\xb6\x4a\x88\xde\xf3\x65\xd0\x26\xde\x71\xb2\x4e\xec\x46\x70\x76\x2d\x91\xba\xa8\x19\xa1\xc7\x16\x51\x4a\xcc\xa7\x93\x8b\x0e\xbb\x3e\xbe\x80\x90\x8b\xab\xe3\xeb\x8b\xba\x66\x71\xf3\xe2\xfa\xf8\xa2\x7d\x55\x96\x96\x44\x33\x99\xe5\x2e\xdc\x9c\x78\x42\x20\x4c\x1b\xea\x09\x0d\x09\x63\xd7\xed\x24\xf9\x4d\xc9\x42\x3b\x88\x3d\x31\x50\xaa\x4d\x63\x84\x8b\xb4\x4e\xfb\x74\x77\x08\x01\x4a\xfa\x51\x0e\x06\xc9\x52\xca\xf3\xa4\xf1\xd4\xed\xa9\x3c\xbb\xae\x95\x34\xac\x3e\x9c\x5f\xb8\xb4\xed\x12\xa8\x28\x5a\x72\x6d\xef\x41\xfd\xbb\x97\xd4\xdb\x22\x6f\xc2\x89\xb0\x5c\x66\x26\x94\x1c\xa2\x11\x54\xeb\xb4\xd8\xe0\x20\xa6\xa2\x86\xd7\x1c\xeb\x75\xd5\xe1\x2a\xc3\xad\xc6\xb1\x6c\xc4\xf7\xb8\x09\x5b\x1a\x2e\x6d\xe9\x4a\x63\xa5\x11\xcc\x1c\xe8\xd4\xed\xda\xe8\xa2\x5c\x4e\x1d\xa3\xc5\xf7\x85\xda\x13\x7c\x15\xfd\x11\xae\x0c\x5f\x49\xce\x20\xbb\xe9\xd1\xca\x0e\xc5\x05\x08\x37\xd7\xb2\x19\xa4\xda\x94\x1a\xe5\x58\xd4\x6d\x98\x91\x4b\x80\x1b\x34\x08\xed\x17\xa2\x7b\x40\xc3\x7b\xb4\xa5\xbf\x9e\x75\x31\x16\xaf\x7e\xf5\x0a\x6e\x40\x74\xa6\xd7\xdc\x83\xd0\x76\x69\x69\xc4\x58\x89\x3c\x3b\xf1\xaa\x1d\x72\x70\xb6\x87\x6a\xc5\x9b\xc3\x43\x94\x25\x42\xb7\xbf\xca\x14\x2b\xe5\xed\xad\xce\xd7\xc4\x83\xb4\xc7\xcb\x13\x44\x4f\x1f\xa4\xf5\x66\xc1\x10\xf4\x02\xdb\x18\x9b\xec\x9a\x61\x54\xdb\x16\x44\xdc\x39\x35\xa3\xe7\x74\x9a\x6b\x4b\x50\x3b\xc7\xd1\xb0\x57\xab\x55\x87\xe9\x04\x3e\x83\x62\xc5\x35\x6e\x59\x85\xd5\x2c\xc5\x73\xd9\x07\x2b\xff\x01\xc3\xc6\x6b\xef\x79\xab\xba\x78\x72\xd8\x22\x11\x0e\x1a\x7d\xc1\xb3\xf7\x0c\x08\x69\x5e\x88\x3b\xa9\x4b\x43\xf1\x00\xb3\x66\xcd\x5a\x10\xd4\xd9\x92\x62\x20\x04\xdb\x15\x12\x7f\x99\xe2\xf3\x8b\xa9\x2f\xb5\x47\xd2\xeb\x59\xf4\x9a\x74\x77\xdd\x7b\x77\x3f\x9a\x4c\xbb\x20\x9d\x8a\x35\x11\xd6\xf3\xe3\xb5\x00\x95\x56\xbf\x77\xdb\x1a\xc6\x56\xb9\xea\x92\xb2\x87\xb5\x96\x15\x40\x5a\x4a\xf2\x57\xa8\x04\x55\x16\x10\x35\x62\xa2\x8a\x97\xb5\xd8\xac\xe7\xc4\x58\xd7\x8d\xf6\x6f\x61\x5e\x43\x93\xda\xb4\xcb\x9b\x36\x78\xe3\x90\xfb\x35\x47\xbe\x74\x49\xcf\xb0\xd5\x14\x09\xda\x23\xc3\xe9\x1a\x4b\xe6\x88\x7a\x53\xb5\x64\x1b\xa8\x05\x2b\xe8\x03\xcd\x29\x4c\xf1\x97\x50\xcb\x6c\x4e\xb4\x7e\x0b\x23\x49\xc3\x2a\xb7\x7e\x50\xf9\x76\x3c\x90\x85\xe0\xe9\x32\x1f\xe4\x55\xa8\xe7\x7c\x3f\x33\x86\x66\xc4\x0d\xcb\xb9\x81\xdc\x51\x00\x06\xa5\x18\x56\x8c\x05\x5b\xc7\xad\x48\xa1\x1e\xc7\xe0\x22\x5a\x7e\x7b\x54\xb0\xdb\x59\x39\x16\x66\xc6\xf0\x20\x64\x27\x0a\x78\x23\xba\x93\x4d\xa8\x42\x36\x51\xd9\xaa\xa3\x54\xf0\x34\xb6\xaf\x81\x41\x09\x36\xc1\x13\x5f\xea\x12\x42\x72\x67\x21\x73\x25\x3c\x4b\x08\x14\x06\x04\x96\x46\x8f\x3d\xf6\x13\x9c\x38\x6d\x44\xfc\x1d\x5e\x08\x66\x4a\x44\x6a\xb5\x9a\x0d\x79\xd1\x77\x94\x21\xd1\x59\x86\x01\xf5\x64\xd7\xc5\xdc\x35\x70\x0f\x0d\x85\x65\x09\xcf\x73\x2c\x18\xf1\x03\xeb\x4f\xd8\xbb\xe3\xad\xdb\xff\xbc\x4c\xb1\xd5\xa3\x42\xe1\x99\x74\x50\xd8\x59\x15\x11\x09\x58\x3d\x18\xd5\xd3\x17\x89\x86\x5d\x2d\x4a\x41\x81\x58\xa6\x16\x6f\x69\xb0\x46\x4a\x2a\x0a\xa7\x9e\x85\x40\xc8\x1e\xbb\x14\x46\xa0\x61\x0d\xba\x9a\x93\x3b\x18\x1d\x0b\x5d\x30\x39\xf0\x05\x65\x58\xa6\x8d\x30\x24\x77\x58\x31\xce\x75\x01\xe9\x0a\x3d\x76\x66\x7c\x3c\x1b\x8c\x09\xba\x55\x7a\x6a\x54\x94\x1c\xb8\x5e\x50\xdb\xb3\x20\x80\x9e\x3d\xcf\xa4\x7b\x2d\x65\xca\x26\xae\x20\x52\x9c\x79\x97\x7d\x8a\x77\xce\x60\x49\x9b\x0a\xa7\x27\x5c\x8c\xb5\x3a\xa5\xc0\xf9\x45\xfe\xc6\x5a\xc3\x4a\x8a\x99\x55\x17\x9c\xdc\x3f\xf8\x4a\x88\xca\x6f\x21\xbf\xb4\xf0\x4b\x5c\x54\xee\x04\xcf\x69\x87\xf2\x4e\xcc\xfa\xcc\x26\xb7\xbd\xe5\x86\x6e\xc5\x8a\x7c\xa2\xef\xd5\x3d\x2f\xd2\xa3\x8b\xb3\x56\x70\x90\x97\x95\xf3\x2d\xa5\x57\xb1\x0a\xa8\x1a\x68\xb4\xb3\x53\x2f\x4e\x6d\x98\x83\x13\xb9\x1c\x3e\x31\xad\x46\xf5\xc4\x00\x8a\x1e\xad\xbc\x02\xa5\x8f\x56\x08\x03\x26\x20\x46\x63\xbb\x91\x18\x53\xdf\x78\xeb\x3e\x11\x75\xd6\xce\xa7\xbc\xa9\x62\x31\x7b\x18\x0b\xee\xe5\xac\xf6\xb1\x7f\xb6\x81\xc1\x8c\x50\x65\x55\x1c\x65\x54\x04\xc0\x27\x3b\x40\x92\xf1\xf2\xbd\x84\x66\x97\xb0\xba\xeb\x91\x66\xac\xb7\xf3\xd6\x75\x13\xca\x69\x2c\xa2\xcf\x94\xf1\x92\xbe\x61\x55\x69\x8d\x1a\x80\x56\xae\xd3\x37\x0c\xaa\x4f\x81\x34\x08\x73\x36\x1d\x06\x08\x71\xa6\x83\xe9\x87\x5c\xa5\xac\x82\x11\x46\x11\x23\xc7\xdc\xfa\x39\x82\xec\x78\xeb\x70\x71\x54\xd1\x2d\x13\x9d\xd8\x29\xf8\xdc\xf1\xe1\x66\x47\xec\x10\x69\x88\xa0\xf5\x6a\x81\x3a\x5f\x1f\x0c\x5c\xbe\x3c\x78\xb9\x3a\xa8\x10\x57\x2a\x0d\xa3\xb1\x12\xf0\x18\x60\x8b\xc5\x28\xdc\x3e\xa2\xb9\x2f\x3c\x94\x20\xb9\x49\x49\xa7\xe1\x7d\xa3\xb3\xd2\x0a\x77\x02\x66\x22\x95\x55\x5e\xd5\xd2\x0e\xba\x7f\x62\x42\x25\x3a\xf5\x00\x30\x18\xd9\xee\xe8\x63\x85\x00\x16\x8f\x24\x14\xb1\x6b\x60\x9d\xad\x0f\x91\xfd\x76\x53\xd2\x70\x19\x77\xd4\x8a\x38\x54\x24\x21\x54\x7a\x68\x2a\xe2\x44\x1b\x42\x0a\x1a\x46\xc0\x9a\x00\x36\x0d\x15\x1c\xf6\xf1\xc7\x5e\x92\x97\x1d\x6a\xd0\x1b\x8b\xb1\x2e\x26\x9d\xd0\xc8\x3d\xac\xbd\x45\x2d\x10\xf6\xa7\xd2\xa7\x66\x52\x96\x96\x92\x45\x1e\x81\xc2\x6d\x43\xb2\x68\x89\x45\x3a\xe7\x8d\x7a\xc0\x0f\xdd\xf9\x88\x75\x4c\xc9\x21\xbd\xc0\xb3\x59\x25\x40\x3c\x4f\x5c\x4f\xab\x21\x30\xbb\x1d\x8c\x27\xdb\x21\x83\xee\x90\x41\x9b\x64\x6f\x4d\xa9\x36\x9d\xbe\x21\x5f\xaf\x5c\x7b\x3a\xce\xed\xe4\x44\x16\x2d\xe9\x50\xa4\xe3\x70\x45\xa9\x0e\x21\x7a\x18\xce\x27\xa7\x08\xa9\xc6\xa3\xc7\xa5\x34\x63\x91\xca\x72\x19\x82\x14\x44\xef\xb9\xe5\x01\x18\x29\xab\x0b\x3e\x14\x0c\xdf\x0c\xd9\x2a\x3c\xb9\xc5\x4b\x11\x85\x44\x5f\x47\xfa\x94\x34\xec\xe6\xc5\xcd\x0b\x1f\xe6\x2c\xb8\x0a\x84\xca\xe7\x07\x45\xa1\xd1\xd8\x79\x8d\xa6\xe0\x92\x11\x32\xdc\x3e\x35\x3c\x70\x84\xe4\x03\xf0\xaa\x95\xed\xe8\x34\x91\x43\x5a\xe0\x6f\xe0\x03\xa9\x5c\xcb\xbf\xf9\x9b\x78\xef\x38\xeb\xc6\x9e\xc3\x9e\xe7\xe5\xbd\xff\x2c\xb9\xb2\xd2\x4e\x16\x7b\x0f\x21\x61\x8a\x63\xe8\xbf\x1e\xb0\x4c\x27\x90\xb2\x85\x3b\x14\xb2\xe2\xd1\x21\x23\x0d\xf3\x67\x36\x28\xcd\x21\xfa\x17\x04\x03\xb8\xcd\x99\xd1\x1e\xc6\x13\x00\x30\x1c\xe5\x84\x05\x0e\x9b\x72\x0d\x58\x39\x0f\x72\x5c\x8e\x59\xe9\xf3\x87\x6a\x6d\xaa\x0f\xdd\xfb\x5c\x26\x00\xd8\x91\x0a\x5e\xaa\xd3\x7b\xc8\xc0\xf5\x2b\x18\xe1\xb2\x00\x26\x88\xa7\x81\xa6\x04\x59\x8f\xbe\x42\x72\x0e\x54\x4d\xae\xa5\x85\x05\x40\xd1\xe6\xd9\x53\x32\xab\x1f\x3d\x9f\xbd\x1d\x26\x5e\x2a\x6f\xd2\x6b\x1e\xa4\xd9\xe7\xa8\x34\xa2\xe8\x0e\x4b\x99\xce\x38\x41\x5b\xa4\x32\x64\x04\x3a\xc2\xc0\xdf\x05\x04\xa6\xd1\x92\x42\x5b\xca\x3c\x23\xab\x48\x4a\xf1\xf5\xc6\x5b\xb3\xa2\x70\xe2\xe5\x74\x62\xa4\x8d\x6d\xe5\x00\x11\x10\xf6\x5a\xe9\x02\x50\x13\x9a\x8c\x71\xab\xfb\xa9\xf2\x16\xdf\x3b\xbb\x98\xfa\x52\x8f\x7d\x20\x18\xe4\xbe\x60\x99\xd6\x39\x90\xa7\xfd\x57\xdf\xfe\x88\x30\x30\x87\x7f\x3a\x70\xcc\x56\xdd\x76\xf1\xc6\xec\xbf\x7a\xfd\xe7\xde\xb7\x3f\x7c\x0f\xcf\x5e\xbd\x3e\x00\x63\x71\xf4\x1c\x12\x77\x13\x88\x69\xda\xff\xf6\xdb\xef\xa9\x93\x6f\xbf\x3f\xe8\xb1\xb3\x8b\xbb\xd7\xd5\xbd\x01\x51\xc5\x49\x08\x25\x2a\x20\x08\x06\x10\xc4\x66\x77\x51\xdc\x89\xcd\x33\x6e\x1d\x97\x36\x3d\x76\x94\x19\xdd\x61\x89\x28\x40\x07\xaa\xce\x19\xa4\xff\x6b\xe5\x18\x06\xc9\x05\xee\x59\x37\x2f\xf4\xc3\xa4\x13\x44\x12\xf8\x3a\x18\x5d\xd7\x29\x5f\xa4\x53\x71\xbe\x7c\x4f\x2b\x01\xf1\xdc\x09\x1d\xee\x24\x84\x2a\xee\xd5\x82\xcf\x02\x10\x48\x05\xfa\xd7\x62\x20\x13\x5c\x50\x30\xc8\xa9\x9a\x89\xad\xf5\xb0\xb1\x48\xc0\xe6\x76\x9a\x4b\x0f\xfc\xb9\xc4\x46\xe3\x11\x4a\xad\xf6\x55\xf6\x10\x18\xc1\x5b\x98\x2a\x3b\xed\xca\x3a\x91\xcc\x37\xd6\x88\xfc\xb5\x5f\x92\xed\x10\x37\x5b\x40\x1a\x82\xa9\x1b\x22\x9b\xdb\x14\xca\xcc\x2f\xda\xc5\x4d\xbb\x9b\x1a\xa3\x43\xe7\x71\x1c\x35\xe2\x59\x40\x30\x75\x84\x0a\x38\xd0\x59\xa6\xef\xc1\x49\x83\xf5\xa9\x7f\xae\x6e\x07\x88\x38\x84\xfe\xda\x63\x9f\x54\x37\x2f\xc4\x40\x3e\x08\xb2\x85\xc1\x05\x71\xf2\x56\x71\x47\xfc\xef\xec\xe8\xfc\xa8\xea\xc9\x03\xec\x60\xe3\x7d\x6e\x9c\x9a\xc3\x2e\xdf\x1e\x77\x5f\x7f\xf7\xdd\x0f\xc0\x75\x88\xf2\xdf\xdf\xdf\xf7\x24\x57\xbc\xa7\x8b\xe1\x21\x37\x46\x0e\x01\x2d\xd3\x1c\x52\x17\x5d\xe8\xe2\xa0\xc7\xce\xb5\xea\x86\xfe\xfd\xec\x42\x31\x4f\x27\xe7\x34\x86\xe8\x33\xaa\xc7\x13\x77\xd5\xb9\x9a\xf4\x12\x3d\x3e\x1c\x4f\xba\x49\x69\xac\x1e\x77\x7d\x1f\x73\x6a\xc1\xc3\xce\x49\xc3\x86\x25\x2f\xd2\x08\xcb\x02\x87\x75\x54\x6d\x4c\xad\x20\x3c\x4c\x2d\x82\xbf\xf0\xda\xdb\xa3\x14\x6b\x03\xf7\x6d\xcc\x09\x70\x8b\xa3\xe4\x15\x4c\x7f\x00\xcb\x8f\x6b\xb8\xe7\xf1\x20\xbd\x27\xcf\xd7\xa5\x73\x77\x8d\x66\x76\x51\x8b\xb9\xaf\x39\xd9\x3d\xa5\x42\xb3\x88\x1c\x40\x74\x78\x4e\x27\x7e\xb1\xc3\x6e\x19\x1e\x5b\x8b\x99\xe6\xd3\x8e\x9c\xed\xba\x70\x56\x4f\x56\x20\xf6\x38\xef\xae\x2d\x4f\x5c\x70\x0b\x77\x7d\x7c\xb1\xe5\x9c\x85\x7c\x1b\x4e\x26\x4f\xd1\xae\xca\xbe\x11\x6d\x48\x1f\x36\xc4\x7b\x04\xc5\x29\x41\x7e\x44\x09\x88\xb4\x7e\x08\x3f\x1b\x8f\xb5\x02\xcb\x87\x87\xd7\x43\x61\x32\x80\x5f\xd3\xa3\x08\x9b\x0b\x83\x12\x8e\x79\x61\x85\x91\x1c\x68\x5b\x5a\x26\xd0\xea\x28\xf4\xff\xc0\x2e\xb0\xb3\xb7\xba\x60\xe2\x81\x8f\xf3\x4c\x74\xd0\xd5\xf7\xe6\x46\x31\xf6\xdf\xee\x3f\xac\x7a\xe1\x0d\xfb\xfb\x7f\xdf\xbc\x90\xf9\xcd\x8b\x37\xec\xe6\xc5\xab\x97\x3d\xf7\xff\xbd\x57\x37\x2f\xfe\xa7\xc3\xa6\x1e\x7c\xdb\xfb\xf6\xe6\xc5\xff\xfc\xa3\x83\x7d\xc0\x87\xde\xc0\x62\xb8\x3e\xdc\xcd\xc2\xc6\x1c\xb3\x17\xdd\xac\xdc\x0f\x7f\x7a\xfd\xe3\x0f\xd8\x5b\xd5\xa4\x5f\x6f\xf2\xdd\xcb\x3f\xff\xcf\x3f\x5c\xaf\xff\x83\x15\x7b\xd0\x16\x01\x21\x7b\xcd\x65\x20\xe6\x7f\x27\xc5\x3d\xb8\xf8\xdf\xe0\x60\xf8\x1b\xf6\x77\x16\x86\xff\xc6\x7d\xb3\xc3\xc2\xa8\xe1\x6f\xe6\x07\xde\xaf\xb7\xfd\xee\xe5\x9f\xe3\xa6\xdf\xbd\xfc\x33\xfb\x47\x0b\x9e\xe4\x57\x70\x99\x01\xe3\x22\xde\x7d\xd0\x0d\xf4\x60\x40\x51\x0d\x60\x50\xa6\x24\x25\x6f\xb2\x29\x84\xaf\xc4\xc1\x0d\x09\x5d\xee\x64\x98\x58\xbc\xa9\xc0\x1b\xe2\xb0\x05\x3e\x40\x45\x0a\x50\x8e\xfa\x3c\xe3\x2a\x81\x78\x10\x95\x12\xa8\x0a\xea\xc2\x56\x66\xf2\xb7\xa6\x48\xb4\x39\x50\x70\x5d\x83\x58\xd9\x50\x52\x93\x18\xed\xa5\x9b\xf7\xd1\xf6\x97\xd8\x49\xcc\x5e\xaa\xad\x0c\xce\x8d\xf5\x66\x7d\x91\x70\x32\x19\x4c\xea\x11\x3b\x3e\x72\x3c\xa0\x45\x77\xf0\x79\x21\x12\xec\x0a\x91\xae\xc0\x9c\xee\x43\x98\x92\x91\x48\x6e\x81\xe8\xcd\x69\xea\xb1\xb2\xb0\xe5\x33\xde\x98\x36\x90\xa1\x51\xa0\x81\x61\xfc\x8e\xcb\x0c\x14\x7c\x8a\x8e\xf2\xbb\x11\x6f\xd9\x23\x4d\x78\x15\x60\xcb\xed\x6b\xd2\x6d\x74\x68\x92\xb6\xaa\xc0\xac\x3a\xa5\x43\xd1\xcb\x11\x70\x44\xa2\x76\xa2\x6d\x62\x4b\x9e\x79\xb9\xb2\xc7\x4e\x91\xc0\x03\x0d\x74\x3a\x96\x23\xad\xe3\x89\xb9\x4b\x6e\x5e\x00\xad\x43\x66\xe4\x88\x3c\x52\x3e\xa2\xfe\xdb\xa1\xff\x81\x03\x6c\x8d\xfa\xbb\x95\x5d\x65\xa0\xdf\xf5\xbe\x5b\x79\x3c\x7f\xfe\x6e\xc9\x68\x7e\x7c\x5d\x1b\x4c\x1b\x56\xb0\xab\xe3\xff\xc5\xea\xf8\xef\xea\xdd\x7f\x2d\xf5\xee\xd1\x5c\xb2\xb4\xe2\xfd\x95\x57\x7e\x71\x6f\xf6\x4c\x55\x44\xf9\xb1\x57\x6c\x46\x35\xfc\xd8\x3c\x8f\xb4\xb6\x0d\x10\x06\xca\xb4\x3c\xcb\xa6\xc5\xfb\x52\xf9\x9b\x9e\x65\x8c\xba\xec\x45\xf2\xbd\x13\x5e\xf2\x8c\x27\x1e\x82\x8d\x9a\x30\x9e\x24\x9a\xb2\xbd\xf0\xb6\x9f\x5d\x18\x94\x5f\xcc\x88\x17\xa2\xc7\xaa\xe2\x59\x64\xb9\x05\x4d\x24\x60\x05\x02\x6b\xef\x30\xa3\x51\x8f\x46\x29\x0a\xcd\x1b\x4e\x22\x72\x44\x62\xfa\x99\x3b\xbf\xfb\x35\x61\x29\x71\x6d\x30\x56\x39\xc0\x79\x56\x86\xf3\x03\x8f\x59\xe8\x11\x1c\x81\xa7\xd1\x78\x10\x77\x3b\x95\x26\xcf\xf8\x04\xf1\x68\xaa\x3e\xfc\x34\x7d\xd2\x47\x04\x16\x8a\xea\xce\xb9\x8e\x26\x96\x65\x8c\xe7\xb9\xe0\x10\x01\x0f\x0e\xdd\x68\x01\x55\xca\xce\x9b\x02\xa6\x1f\x8b\xe1\x63\x41\xdf\x72\x37\x9d\x8c\xff\xb5\x77\x23\x51\x3d\xd1\xe3\xbc\x90\x46\x38\xca\x42\x1c\xf9\x71\x44\x19\x52\x3e\xb7\x2e\xcc\x84\xdf\x6b\xb8\x46\xa0\xb5\x76\x89\x29\x75\x89\xc0\x56\x7a\x75\xed\x74\x43\x5b\xd7\x63\x7d\xe2\xf4\x52\x25\xe9\xd4\x1f\xdf\x05\x6e\xf9\xe2\xee\xd5\xf4\x78\xff\xd1\x5a\xc8\x7a\x2f\x4d\x1b\x9d\x1c\xda\xd5\x9d\xc8\xe1\xe2\xb5\x32\x3f\xee\xf8\xfb\x97\xe2\xef\x6d\x62\x04\xde\xcf\xdf\xd3\xad\x5e\xc3\xcd\x94\xa7\x9d\xa4\xf2\xb5\x48\x2a\xee\xbc\xb5\x97\x53\x80\xe2\x3c\x99\x8c\x12\xaf\xd5\xea\x8e\x22\xb8\x28\xcb\x4c\xa6\x4f\xc7\x35\x80\xbc\x6f\x99\x73\xc4\xf5\xac\x16\x71\x8e\xa8\x5d\x1c\xc5\x07\x52\x42\x88\x93\xe4\x5e\x96\x0b\xb5\x54\x4d\xab\x6c\x53\x6c\xbb\x89\x73\x31\x7c\xf0\x54\xdd\xd1\x6c\x16\x86\x70\xd4\xea\xbd\x42\xcc\x5d\xe6\xe8\x85\x23\x06\xf3\x6c\xff\x62\x20\x1f\x96\x31\x3c\x55\x55\xd4\xc2\x3c\x88\x81\x74\x74\x46\xb3\xbc\x10\xb9\x50\xe0\x9f\xf5\xc5\x9c\xa7\x6a\x13\xc7\xfe\x95\x5a\x3d\xb7\x35\x62\x63\x44\x52\x6c\xe6\xad\xbd\x82\x1e\xda\xaf\x26\xb6\x9f\xbf\x94\x9b\x1b\x92\xa0\x38\xe0\xc2\x23\xfa\x99\x17\xb5\x08\x53\x35\xb3\xd2\x5e\x5c\x1b\x9a\x57\x18\x46\x2d\x04\x9f\x15\xcb\x1e\xcd\xfa\xf8\x16\xf7\x18\x98\xe1\x92\xe1\xac\x59\x5f\x34\x20\x22\xf8\x62\x7c\xed\x2a\x16\x22\x8c\xb9\x9a\x44\x95\x54\x66\xbc\xf6\x47\xaf\x52\x5a\x47\x27\x6b\x0f\x4d\xd6\xdc\xfa\x59\x45\x28\x57\xac\xb5\xd9\xe2\x6e\x13\xc9\xf7\x8a\xe6\xac\x1d\xdd\x33\xbe\x12\x7c\x24\x19\x51\xd9\x5b\x94\xd8\x08\x60\x01\x22\xb5\xd6\xcd\x77\x5c\xc6\x86\xdb\x11\x90\x36\x9c\x2e\x34\xab\x87\xab\x9b\xfa\x4a\xe0\xcc\x50\x47\xc1\x97\xda\x21\x2b\x20\xad\xff\x59\x4c\xb6\xc2\xee\x7e\x16\x93\x15\xf3\x1a\x1c\xe7\x01\x56\x5d\xf1\x9d\x79\xa8\x40\x4f\x9c\x98\xb5\x28\x1d\x8b\x82\xb9\x22\xeb\x96\x3b\x14\x9d\xfa\x9f\x90\x8c\xd5\x61\xff\x0c\x3f\x62\xca\xd6\xdf\xf7\x10\x7f\xe2\xe7\xd3\xbf\x11\xec\xc4\x3f\xfe\x19\xb7\x8a\xb2\xbc\x66\x37\x35\xb9\x48\x7a\x3e\x6e\x8b\xfe\x24\x12\x77\x94\x24\xba\x54\x96\x1e\x00\xe4\x46\x0f\xb1\x39\xc3\x9f\xb9\x4e\x9b\x7f\x99\x39\x4b\xfe\x95\x27\xbe\xd0\x9f\x22\x1f\x89\xb1\x28\x78\xd6\xa5\x98\xd9\x7a\x4a\x4c\xa7\x99\x0f\x53\xcf\x91\x99\x7a\xbb\x55\xba\xcc\x94\x6c\xb4\xe1\x05\xbc\xf2\x9d\xac\x7b\xfb\x70\x14\x4c\xc6\x50\xb3\xe1\x0c\x6f\x53\x6e\xf2\xcb\x15\x04\x9d\x05\xc4\xef\x48\xb1\xe9\xf6\xde\x2b\xe7\xff\x04\x5b\x1f\xa1\x47\xf2\x14\xea\x57\x54\x99\xfc\x10\x63\xa8\x90\xe5\x39\x36\x0d\x89\xa0\x1a\xca\x14\x16\x5d\x2c\xcf\x04\xe5\x87\x13\x2b\xef\xa4\xa3\x8f\x21\x20\x2b\x15\xfd\x72\x38\x84\xc4\x8e\x30\x86\x38\xc8\x98\xfc\xce\xd1\xf1\x2c\xc0\xe2\x93\x96\x99\xfb\xd0\xb0\xe4\x05\x57\x56\x08\x13\x52\x38\xa8\x48\x70\x25\x5c\x50\x59\x4d\x8f\x59\x00\xe5\x8c\xa1\x8e\xed\x3d\x56\x38\x76\x83\x05\x33\x14\x16\x85\xd3\x45\xa3\x40\x8a\x9b\xd8\xf4\xd0\x18\xd8\x7b\x0d\xbd\x0f\x08\xb7\x89\x08\xc0\x1d\x34\x58\x2a\x2b\x20\xb5\xea\x84\x04\x59\x5a\x43\x71\x27\x13\xf8\xc2\xcc\x69\x8f\xab\x90\x5a\x5c\xec\xbe\x4f\x53\xc8\x26\xcc\x57\x7d\xad\x0a\x8c\x39\xd2\xe4\x04\xa1\x49\x95\x12\x0a\x6f\xdd\x49\x1e\x1d\xb4\x30\x8b\xe8\x43\xa6\xec\xfb\xd1\x36\x57\xb0\x32\x1e\xc7\xdf\x61\xda\xc9\x66\xd0\x7d\x14\x2c\xa7\x18\xcf\xf2\xd1\xdc\xa2\x4f\xd3\xc7\xcb\xd4\x6b\x3f\xb5\x30\x3f\x16\xc3\x65\x16\xb0\x23\x2a\xd1\x1e\x6c\x81\x22\x54\xf5\x9f\x59\xb2\xff\xf8\xc3\xc9\xae\x56\xff\xae\x56\xff\xd3\xd7\xea\xa7\x11\x2c\x43\x89\x0c\xa7\x97\x41\x5f\x58\xcf\x35\x54\xaf\xab\xaa\xc2\xbb\x29\xcc\x3c\xe0\xa7\xe7\xd7\x97\x7f\xbb\xf8\x78\x76\x7e\xbd\x3b\xe7\xbb\x73\xfe\xf4\xe7\x5c\xa8\xbb\xd6\x4e\x8b\x59\x96\x06\xca\x8a\x6d\x1a\x1c\x9e\xa4\xe0\xff\x67\x5e\x3c\x4a\x4d\x95\x06\x8a\xcf\x46\xe5\x54\x04\xda\x67\x5b\xae\xb1\x97\xdf\xe3\x4a\x55\xed\x2c\x3c\x78\xed\x6e\xc5\xa4\x32\x0d\x55\xd4\x07\x25\x9d\xf1\x6c\xfb\x16\x3b\xca\x32\x26\x15\x82\xf9\x43\x07\x55\xd1\x4c\x4a\xd3\xc1\x3a\x67\x58\x84\x7a\x36\xae\x94\x8f\x32\xa4\x82\x80\x28\x4e\xd3\x85\x93\xaa\xf2\xde\xd3\x04\x3b\x91\xa2\xce\x8d\xd1\x09\x0a\x9f\x40\x13\x02\xd8\x69\x40\xa3\xc9\x32\xac\x91\x99\x17\x22\x11\xa9\xa3\x03\x8e\x16\x42\x22\xb3\x9f\x6b\x7f\x42\xda\x7e\xa0\x2b\x25\x5e\x49\x58\x93\x39\x7d\x3c\xc1\x11\x8d\x6c\xf8\x9b\xdc\xd2\x36\xd0\x8a\x27\x11\x63\x21\xd0\xbc\x2f\x84\xa4\x78\x51\x66\x59\xbb\xfa\x6f\x30\xd6\xbc\xcc\x32\x86\x05\x74\x7b\xec\x23\xc2\xdc\x1f\x01\xe4\x58\x87\x9d\x3b\x4a\xdf\x61\x67\x83\x73\x6d\x2f\xd0\xe2\x53\xb7\xd3\x61\x43\xc7\x33\xdf\x90\x5b\xd9\x62\x99\xc4\x08\xc6\x44\x17\xb5\x0e\x30\x65\xfc\x5e\x9a\x99\x47\x60\xe3\x45\xfb\xc6\xcb\xfe\xdd\x75\x17\x31\x94\x48\x5d\x5b\x09\x7e\x1f\x7a\x58\xa4\xfc\x86\x56\x5e\xd4\x70\xba\xd0\x3d\x25\x08\xcd\xd0\xa7\xe6\x19\x47\x6a\x25\x74\xd7\x1e\x73\x8b\xa2\xe2\x55\x81\xe0\x0d\x46\xbb\xaa\xaf\x60\x86\x5e\x59\x25\xe5\x3a\xca\x18\xa7\xdc\x80\xb6\x05\x39\x3e\x9e\xda\x12\x8a\x25\x1f\x6b\x35\x6c\xa4\xe7\x76\xa0\x2c\x72\x0d\x11\x51\xa5\x73\xa6\xb2\x56\x96\x4e\x9b\x10\xe8\x55\xd6\x73\xab\xd4\x71\xad\xc2\xfe\x73\x8c\x73\x4f\x55\xd5\x7e\x2b\x07\xf0\x0b\x94\x88\xaf\x4a\xc3\xb7\x1e\xfb\x6c\xa3\x47\x69\x04\x33\x39\x65\x13\xfa\x2e\x33\x0a\xbd\xa3\x02\x8d\xa9\xd7\xed\x73\xbd\xc0\xd2\xf7\xc5\x6a\xbf\x53\xdb\x0d\x69\xde\x13\x15\x5b\xdf\xce\x89\xdb\xd5\xd0\x6e\x2e\xc6\xae\x86\xf6\xae\x86\xf6\xb3\xaa\xa1\x0d\x49\xfc\x81\x25\xb6\x80\x21\x70\xdb\xeb\xee\x93\xad\x25\x15\xc7\x4b\x00\x83\xbf\xd0\xe9\x55\x2e\x92\x08\x09\x74\x96\x40\x83\x9f\xf7\x99\x9d\x33\x1a\x04\x95\xb0\x0c\x17\x36\xf8\x44\x0c\xdb\x3f\xbb\x38\xee\xb0\x8b\xb3\x93\x0e\x13\x36\x39\x98\x01\x6d\x1f\xc0\x05\x85\xc5\x03\x32\x4f\xb4\x42\x20\x78\xf7\x8d\xfb\x11\xb7\xb0\xdc\xd1\x87\x00\xce\x71\xc4\x2b\x10\x17\x2a\xa3\x16\x83\x9d\xce\xba\xad\x20\x8c\x79\xc4\x20\x3c\x09\x68\xda\xde\x4e\xad\xeb\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\xa9\x20\x97\xf5\x60\x21\x83\x80\x48\xe8\x99\x1e\xe4\x67\xc4\x55\x9a\x79\x6d\x4a\xe9\x62\x1c\xc1\xfc\xa5\x85\xbc\x6b\x15\x34\xec\x44\xfc\x8f\x2a\x6b\x5f\x11\x06\xb1\x12\xba\x10\x6b\xe5\x37\x08\x79\x59\x08\x3d\x24\x1c\xc1\x98\xa5\x60\x39\x8e\x7d\xf7\xea\xa1\x13\xba\xc4\xc1\xfa\xd4\xf8\x38\xe3\x72\x7c\x2d\xc6\x79\xb6\x49\xc9\x8c\x0b\x51\x18\x69\x9c\xf8\xf0\x79\x46\xaf\x8b\xcc\x11\xbf\x44\x67\x36\x02\x9b\xe7\x88\x24\xd5\xe5\x99\x56\x82\x5d\x7c\x3e\xc6\xc0\x7a\x7d\x27\x21\xc5\x2c\x5e\x99\x6b\x8a\x53\x01\x01\x3f\x14\x9e\x9f\x79\x4c\x50\x28\xe8\x0b\x08\x93\xf1\xb7\xc5\xf5\x05\x90\x9f\x5e\xdf\xb9\xf8\x7c\xdc\x61\xb2\x27\x7a\xfe\xaf\xd0\x34\x15\x99\x40\x81\x60\x88\x8c\x36\xb8\x97\x40\x67\x60\xd7\x0d\xcd\x29\x7e\xf7\x9f\x18\x6d\xe8\x46\x0a\xf9\xf7\x10\x72\xd8\xc5\x1f\xe9\x2c\x56\xbf\xff\x93\xdd\x03\x38\xe3\x3f\xe7\x3e\x27\x8e\x08\x5f\x0b\x69\x4d\xff\x24\xdd\x8c\x88\xa6\xf9\x27\xc6\x10\x60\x48\x4c\x8f\x01\x81\xe7\x99\x4c\xf1\x88\x91\x01\xe0\xbf\x3c\x4c\x2e\x2c\x62\x50\xf9\x9c\xa4\x80\x25\x3b\xe1\x1b\x64\x70\x41\x9f\x1e\x82\xa9\xba\xd9\xed\x0f\x62\xac\x1d\xab\x35\xcb\xb4\x1a\x1e\xf4\x6e\xd4\x8d\x3a\x8a\x62\xc3\x70\x25\x60\xb1\xb8\xc5\x1e\xfd\xcd\x73\xdd\xba\xf5\x0f\xdc\xdb\x8d\x03\xc6\xf6\xbf\x94\xb6\xff\x2b\x1c\x8e\x48\x3d\x83\xc8\xb3\x3b\x2d\x7d\x4c\x02\x57\x90\xdb\x87\xf8\x1a\xb4\x58\xfd\x09\x1b\x4b\x63\xf9\xad\xe8\xb1\x2b\xf2\x25\x56\xd3\x34\xa8\x33\x82\x20\x51\xd3\xf7\xab\x7e\xdc\x90\xab\x08\x31\xb4\x7e\x80\xce\xc2\xf2\x42\x74\x3d\x4a\x33\xb5\x1a\x0b\xae\xec\x0c\x49\x24\xd7\x44\xb7\x5d\xbb\x11\x26\x2c\x12\x71\x0d\xf2\x27\x1e\xbe\x22\x86\xc1\xf3\xe3\x84\xb0\x2b\xff\x07\x3a\x3f\x9d\x6a\xea\xa8\x53\xe6\x21\x92\x51\xb8\x23\xc2\xad\x84\x93\xb7\x79\x31\xe9\x00\xde\x8b\x0c\xd1\x7b\xa5\x11\x83\x32\x43\x5f\xeb\x98\xab\x12\x3a\x28\x44\xa2\x95\xb1\x45\x89\x95\x3f\x38\xeb\x17\xfa\x56\x28\x96\x64\xa5\xb1\xa2\x80\x5d\x8c\xe0\xe2\xa4\x89\xc8\x15\x54\x45\xd0\x0c\x63\x34\x2a\xfd\x69\xcc\x53\x58\xfb\x08\x49\x8e\xe6\xe3\x56\x60\xda\x88\xe5\xc1\xeb\xdd\xa7\x3c\x08\x7e\xa7\xc2\x97\x77\x53\x92\xd9\xc2\x38\xf2\x55\xf9\xc7\x9d\x58\x58\xb5\x06\x9e\x53\xdd\x60\x81\x78\xc0\x83\xca\x57\x6d\xf4\x58\xe0\xd5\xf4\x4c\x94\x96\xaa\x45\x2c\x5b\xb3\x48\xcb\x4c\x72\x08\x38\x48\x88\x88\x72\xef\x8e\x0b\xbf\x15\xea\x90\xe0\x72\xa2\xb2\xa6\xb8\xa4\x97\xe1\x07\xca\x9c\x5d\x5d\xa9\xd8\x25\xf8\x7e\xb9\x04\xdf\x64\xed\x02\x6d\x8e\x8f\xc1\x79\x74\xf7\x48\x27\x10\x10\xdd\x94\xd6\x36\xc7\xc0\x83\x4f\x40\x81\xd5\xed\x25\x90\x7e\x90\x49\xa1\xdb\x15\x6d\xa5\xb8\x10\xc7\xcc\x31\x4e\x84\x1b\x32\x17\xeb\x3e\xe2\x4e\xce\xcd\x66\x28\x0c\x8c\xdb\x58\x3e\x9e\x02\xb8\x7d\xd4\x62\xb3\x23\x81\x36\xe6\x9a\x39\x4e\x34\x86\xef\x0e\x69\x01\xf1\x77\xfb\x30\x51\x3d\x80\x2c\x2a\x6f\x07\xce\x2d\x9a\xd0\xd8\xf5\x24\x17\x1f\xdc\xa7\x0f\xe6\x84\x46\xa8\x3b\x88\xaa\xc3\xe4\x8b\x27\x01\x6b\x75\x13\xa4\x7c\xeb\xc8\xfe\x1b\x48\x66\x5f\x97\x76\xce\xa6\xec\x72\xc0\xbf\x48\x0e\x78\xc6\x9f\xd5\x55\x18\x6b\x3c\xff\x10\x34\x83\x74\x4b\x25\x11\x90\x75\xb8\x29\xe1\x8e\x6c\x52\x0f\xfc\x88\x8d\xca\x31\x57\x5d\x27\xb5\x40\xc0\x66\xf4\xdc\xcb\xe8\x8d\xda\xb9\x8e\x77\x03\xc7\x5a\x83\x97\xee\x90\x81\xa6\x96\xa4\x55\xc1\xe6\xeb\x48\x8e\x85\x68\x42\x33\xd2\x85\xed\x30\x5a\x17\x00\x8e\x2f\x10\xf9\xd7\x6d\x22\x11\x07\xa0\x3f\x43\x79\x47\x82\x88\xaf\xb2\x4e\x5a\x82\x2d\xb8\x32\xb0\xd2\x95\x09\x2b\x2c\x4e\xbd\x6e\xf2\x5a\x75\x5f\x41\x47\x78\x12\x92\x1b\x30\x77\x8d\x93\xd6\x53\x5e\x4c\x3c\xb5\xc3\x9a\x2b\x85\x00\x34\x9e\x4c\x3c\x90\xe0\x38\x3f\x4a\xc4\x89\xb3\x52\x0d\x8f\x3d\xf0\xf9\x0a\x41\x4b\x70\x3a\x74\x96\xf9\xa4\x20\x31\x96\x16\x54\xe1\xc0\x9f\x3b\x4c\xf4\x86\x3d\xf6\xcf\x7a\x68\x1b\x55\x03\xfd\xe7\x5a\x8b\x4c\xe3\x3d\x53\x6e\xf3\x97\xba\xd7\xeb\x85\x94\x69\xb0\x92\xde\x8d\x47\x97\x09\xdb\x7d\x98\xfc\x36\x58\x67\x50\x46\x14\x4d\xc9\x7e\xa5\x00\x4e\xb7\x52\x57\xd8\xc7\xa2\x4d\x3f\xe1\x96\x47\x55\x45\x51\x00\xc2\x6f\xc7\x94\x32\x4a\x5a\xd5\x05\x94\x60\x90\x03\x26\xdd\x11\xf7\x21\x01\x56\x2b\x7c\x7b\x5e\x20\x47\xd3\x7e\xb6\xce\x7c\xda\xc1\x06\x04\xbc\x7d\x16\x76\x36\x9a\x4b\x8f\x5d\x35\x29\xc0\x62\x02\x30\x67\x42\xb4\x89\x0b\xe9\x0d\x15\x5a\x89\x16\x72\x1f\x95\xea\x0e\xfb\x85\x17\x4a\xaa\xe1\x41\x87\x29\x71\x0f\x25\x59\x0c\x4b\xc2\xb8\xc0\x70\xe4\x2b\x9f\x97\x8e\x24\x6e\xd7\x42\x1a\x88\xe9\x7c\x29\x6f\x99\xfd\x34\xfc\xfe\x68\x10\x25\xa0\x40\xd7\x1e\x6d\x0c\x4d\xe2\xba\x5c\x06\x68\xe5\xdb\x34\xc0\xac\xee\xc4\x0e\xc9\xea\xb9\x2b\xba\x2b\x21\x59\xdd\x4d\xc7\x1e\x6e\x1c\x36\x0f\x47\xb6\xa5\xf7\x68\xa7\xbd\x3c\x1f\xed\x65\x87\x60\xf5\xfb\x43\xb0\x0a\xb4\x7c\xfb\x2c\xe2\xaa\x29\x7c\xcd\x64\x12\xd8\x2a\x54\x3d\x8d\xab\x19\x43\xdd\x01\x78\x1a\x28\x4d\x70\xf5\x04\x9d\xe2\x9e\x9b\x43\xf0\x08\xe6\xb9\x80\x52\x95\xae\x27\xa9\x4a\x5d\x9a\x0c\x0b\xc9\x01\x1c\x28\x04\xa4\xb6\x81\x01\x59\x6e\xe4\x3b\x0f\x06\xbe\x4a\x27\xa6\x84\x2c\x08\xb3\x84\x11\x97\x79\xc5\x23\x8c\x65\x23\xc1\x0b\xdb\x17\xdc\xc2\x40\xb6\x6d\xfa\x73\x9f\xf8\x48\x56\xb6\x2f\x67\x01\x24\x71\x1e\xe6\x1b\x5b\x0b\x68\x60\xdb\xf6\x0a\x2c\x07\x8c\xa9\x5a\xcd\x2e\x67\x0f\x8e\x31\xf2\x15\xb4\x3a\x1b\xed\x14\xb1\xa0\xb0\x21\xfd\x6f\x5a\x16\xa5\x61\x43\xa1\x44\xb1\x66\x5c\xd1\x48\x9b\xa5\x07\x54\xa7\xde\xb3\xa9\xb6\xf2\xf9\x8d\xf7\xeb\x41\x24\x47\xcb\xaa\xde\x57\x8d\x6a\x05\x98\x6e\x5e\x50\x3c\x68\x08\x80\xb8\x79\x41\xaa\x73\xbb\x3d\x6b\x91\xc6\x7d\x8c\xad\xbc\x9b\x96\x5e\x82\xa8\x31\x84\x8d\x80\x7c\x6e\xa7\x9d\xca\xb4\x11\x4b\x87\xfe\xc2\xa9\x80\x90\x60\xd9\xf0\x7d\x81\x3b\x4e\x6b\xcb\xf6\xf7\x0e\xf7\x0e\xa6\x82\x3a\x1a\x61\x3a\xd7\xd1\x9b\x8e\xa6\xc8\x71\x9e\x4d\x60\x1c\x7b\x69\x87\xc9\xe0\x89\xc5\xa5\x81\x51\x51\x92\x79\x87\x19\xcd\x6c\xc1\x53\xe9\xed\x10\xee\x57\x50\xac\xc1\x71\xa8\x95\x61\xfb\x7b\xff\xf7\x1e\x45\xea\xde\x6b\xb5\x67\x61\xf8\x3d\x76\x8d\xe5\x27\x43\x47\x13\x5d\x32\x25\x04\x21\x67\xe4\x99\x4c\xa4\xcd\x26\x2c\xe1\x59\xc6\x40\xd5\xd5\x48\x81\x29\xb9\xfd\xf4\x41\xda\xc8\x3e\xf7\x12\x63\xd9\xd1\xef\xca\x0d\xd4\x8e\x38\x1c\x09\x9e\xd9\x91\x77\x47\xaa\xee\x6f\xa2\xd0\x58\x6c\x90\x9e\xb4\x0b\x47\xda\x34\xff\x79\xd3\xf3\xfc\xf6\x78\x8d\x70\x16\xf6\x56\xf6\x0b\xc1\x8e\x29\x43\xc0\x07\x44\xcc\xfa\x15\x8b\xc7\x80\xe3\xb6\x2f\x42\x68\x2f\x55\xfd\xc0\x20\x12\x70\x36\xcf\x7b\xfb\x71\x6a\xa3\x0e\xcc\xf5\x72\x6d\xfd\x6d\x38\xc5\x58\x21\xd5\x87\xa6\xc5\xf0\x7a\x83\x46\x9b\xaa\x1e\x20\xf9\xe1\x1d\x8d\xf3\xb6\x5d\x35\x64\xfe\x56\x9c\x3e\xf4\xd8\xcd\x0b\xf1\x60\xbf\xc7\x42\x08\x0f\x03\x83\xff\x50\xd6\xfd\xab\xc7\xce\xc6\xe1\x94\x82\x14\x5e\x84\x98\x66\xff\x1a\x93\x03\x56\xaa\x10\xa5\xb5\x06\xfd\xcd\xca\x65\x2a\x69\x15\xeb\xfd\xf6\x98\x22\xeb\x59\x56\x2a\x72\x0c\x6e\x9b\xf7\xb7\x8c\x62\xaa\x06\xb5\x24\x36\x89\x5d\x52\x87\x58\x70\x14\x22\x05\x06\xba\xa0\xc8\x86\xf0\x90\x6a\x3d\x3b\x42\x16\xc5\xfc\xcd\xb3\xce\xb6\xc8\x7d\xf8\xe5\x97\xf3\x65\x4a\xe7\xac\x85\xbd\xd7\x45\x96\xde\xcb\x34\xd4\xae\x73\xfd\x1c\x3c\x35\x8a\xc2\xfd\xbd\x4c\x57\x1a\x3d\x85\xbd\xc0\xe8\x19\x0c\xbf\x42\x25\x35\x6c\x1f\xfa\x3b\x60\xa7\x12\xe3\x96\xdc\x5f\x4c\x17\x8e\x25\xf4\x7d\xf8\xb4\x93\xb6\xc2\xc2\xc1\xa5\x76\x67\xcc\x67\x9d\x42\x6a\x88\xaf\xba\x89\xc1\xdd\x72\x5c\x66\x96\x2b\x01\x82\xf1\xef\x84\xce\x66\xe2\xa1\x19\xac\xb6\x94\xe6\xce\x7f\xa9\x8e\x1a\x08\x52\x90\x4c\x58\x1e\xda\xfa\x5d\x89\xd4\x7d\x0c\x7a\x0a\xa1\x6c\x22\x3d\xa4\xac\xa7\x28\x98\xc9\xb1\x65\xd6\xe7\x46\xa4\x2c\xcf\xca\xa1\x6c\x23\x97\x60\x90\xe2\xb2\x8c\x7e\x68\x54\x0b\x1e\x23\x19\x1b\x5f\xf7\x05\xa3\x43\x19\x3b\xe2\x29\xab\x13\xb5\xe7\x4f\xda\xe3\xfa\xc5\xd1\x47\x52\x00\xef\x85\x4a\xfc\x6e\xdf\x71\xb7\x19\x0e\x7b\x8d\x75\xa0\x9a\xf4\xcd\x85\xe0\xa9\x17\xa7\x2e\x66\xef\xe7\x4a\xb7\x65\x2e\x5d\x38\x7d\xb0\x05\x0f\x72\x9f\xaf\x8f\x2f\x07\x8c\xab\x79\xf5\x6c\x75\xcd\xcc\xfc\xb5\x71\x86\x6d\x81\x25\xaf\xe6\xba\x7b\xc3\xc2\x5b\x18\x44\xd7\x08\xf5\x23\x80\x40\x32\x03\x92\x08\x8f\x25\x00\xc1\x89\x79\x27\x6a\x5a\xa6\xd5\x2c\xe7\x26\x98\x8c\x91\x44\xd0\x11\x35\x84\x18\xe0\x01\xe7\x20\x05\x46\x0e\x98\xd2\x8d\xaf\xc4\x80\x16\x94\xce\x38\x67\x20\x06\x9d\x8c\x90\x61\xa5\x95\x6f\xd4\xc1\x32\x2d\xf0\x6f\xaa\xcd\xc2\x8d\x89\x52\xb5\xeb\xa3\x5a\xdd\x9e\x45\x04\x6d\x99\x41\xab\x0d\xc5\x5f\x81\xce\x7f\xf6\x04\x7b\x06\x5d\xdf\x11\xf3\x1d\x31\xdf\x11\xf3\xaf\x89\x98\xbf\xd7\x09\xcf\xd6\x09\xc6\xd8\x51\xf4\x2f\x49\xd1\x01\x97\x6a\x2d\x83\x09\xbe\xea\x29\xb9\xb7\x83\x10\xf1\xf1\x4f\xf9\x10\xe2\x11\x3e\x2a\x2c\xe6\x0d\x56\x13\x8d\x28\x52\x29\xb7\xdc\x08\xc0\x80\x86\x67\xf4\xf7\xa7\x4f\x67\x27\x51\x04\x13\xd4\xd0\xaa\x7f\xcb\xb0\x54\x63\x3e\xd7\x22\x4b\x8a\x2e\xd6\x33\xa4\x44\xc3\x5a\x21\xa6\x87\xde\x82\x3c\x27\xb4\x06\x79\x4f\x17\xc3\xc4\x94\xca\xe6\x1b\x37\x77\xfc\xc4\x4f\x6e\x66\x35\x5e\x40\xf8\xcd\x0b\x01\x09\xdb\xab\x53\xd9\x68\x4d\x97\x4c\x06\x96\xbd\x3e\x99\x0a\x9e\x96\x60\x92\xa2\xda\x1c\x00\xc6\xec\x47\x4e\xed\x9f\xc8\x5e\xfd\xee\xf8\xb4\xd2\x20\x4f\xa4\xb9\x5d\xe7\xf4\x56\x3d\x30\xd7\x45\x25\x88\x48\xc5\xde\x69\x3d\xcc\x04\x3b\xd6\xe3\xbc\xb4\x82\x9d\xaa\xa1\x54\x02\xd3\x70\xd8\xbb\xe3\x53\x76\x71\x82\x9a\x3c\x24\x91\xb0\xbe\x18\x38\x02\x00\xe7\x9f\xf2\x09\x78\x13\xf9\x2f\x75\x9f\x80\x77\x20\x3b\xb8\x2f\x6a\x95\xe2\x5c\x9f\x79\xa1\x81\xaa\xb8\x8b\xf0\x9b\xbb\x20\x1c\x45\x11\x8a\xb1\xea\xb1\xf0\xe9\x76\xc6\x47\x44\x61\xf6\x09\x26\x63\xae\x26\x18\xf0\xde\xa3\x6e\x9e\x95\x19\x92\x8e\x5d\x9c\x46\x38\xd1\x25\xbb\xa7\x3c\x20\x12\x7d\xae\x65\xfe\x86\x9d\x2a\x53\x16\x11\x9a\x44\x53\x0a\x92\x66\x05\x41\x08\x52\xad\xcc\x9b\x6d\x9b\x2d\x57\x05\xa9\xa3\xdc\xc8\x43\xa2\x6e\xdf\x0c\x13\x51\x99\x3d\xdc\xd1\x59\x03\x5f\x8c\x17\x56\xb6\xc8\x91\x81\x84\x3f\xdf\xd6\x1f\xca\x25\xfb\x70\x36\x60\x1a\x23\x16\xd1\xbd\x92\x56\xe9\xec\x21\xd5\xb9\x3f\x61\x51\xa2\x5d\xbc\xd6\x6f\x75\x60\x19\x00\x01\x61\x52\xfe\x0a\xbd\x19\xb8\x80\x94\xeb\x15\xc6\xc4\x0d\xbb\x79\xf1\xca\x6d\xc4\x95\x1c\xcb\x8c\x17\xd9\xa4\x13\x8f\xb2\x6a\xe9\x68\xa9\xef\xd2\x0d\xe6\xe6\xc5\xcb\x9b\x17\x6c\x5f\x17\xd0\xbb\xbb\x36\x99\xe0\x77\x94\x03\x86\xc7\x77\x82\x22\xc0\xc1\x63\x6f\xd9\xe6\x86\xe4\x3c\x6d\xc1\x90\x3e\x21\x99\xae\xa5\x4d\x9e\xd4\x49\xdb\xf1\x69\x8f\x7d\x22\x41\x84\xc8\x39\xae\x38\x90\x28\xdf\xe2\xcb\x1f\xe0\x96\x12\xf5\x66\x72\xf2\xb4\x18\xfe\x54\x53\x9f\x96\xc5\x5b\xca\x7d\x74\x0e\x36\x95\xfb\xde\x49\x7b\x29\x72\xbd\x0e\xe7\x6c\x24\x7b\x07\x1c\x94\x2a\x81\x37\x46\x3f\xe1\x6c\x28\x31\x48\xd5\x48\xcc\xc5\x7f\x47\x7f\xaf\x22\xcc\xcd\x78\xcb\x37\x9f\xc1\xa5\x1c\xa7\x3e\x39\xbd\xb8\x3c\x3d\x3e\xba\x3e\x3d\x79\xc3\x68\xb2\x6e\xb4\x95\x2c\x05\x1e\xd5\x2a\x0b\x9a\xd7\xe0\x94\x00\xa4\xd6\x0f\xbc\x43\x34\x8d\x2b\x76\xea\xa8\xc5\x89\x2c\x30\x0e\x9e\x2b\x76\xa6\x64\x85\x0b\x45\xe5\x5c\x33\xad\x42\x1c\x7d\xae\xc9\x78\x31\x94\x88\x06\xa5\xa8\x33\x88\x44\xae\xf5\x06\xb7\x15\xca\x0c\xcc\x80\xdc\x98\x2f\xad\x7a\x9f\xf6\x32\x42\x8f\x0e\x99\xca\x05\x4e\x18\xb4\x3e\x39\xd4\x47\xf8\x68\x02\x18\xc3\x45\xd8\xeb\xf5\xf6\x7a\xcc\x51\xfc\xbd\xde\x9e\xe7\xad\x59\x00\x50\xa0\xa3\x50\x75\x1a\xe7\x81\x37\xf7\x9d\x7d\xf4\xc0\xae\x1d\xc7\x30\x1b\x58\x0c\xde\xe5\x22\x2b\x28\xa1\x19\xbd\x04\xb1\xa9\xec\xc7\x1f\xa5\x73\x37\x94\x77\x42\xe1\xc4\xd6\x8b\x90\xc7\x8f\x2c\x25\x39\x61\x34\x9f\x2e\xdf\xaf\xf3\x21\x3c\x72\x2d\xa2\x1e\x30\xb9\x77\x14\xc2\x15\x2a\x64\x53\xdf\xc9\x96\x51\x25\xa2\x45\xd8\x98\xc2\x60\x32\xef\xc0\xac\xec\x22\xaa\x51\x9b\xd0\x4d\xb8\x37\xdc\x42\x10\x93\x47\xb1\x19\x08\x4b\xe1\x4d\x1c\x91\x03\xaa\x37\x9e\x42\x5b\x0c\xc5\x62\x97\xd6\x22\xa0\x76\xe7\x84\x00\x50\x0b\x3c\xad\x92\xf8\x53\x61\xb9\xcc\x4c\x34\x0b\xab\x73\x9d\xe9\xe1\x64\x26\x6b\x22\xb8\x00\xe3\xc3\x26\x69\xca\x87\x43\xff\xfa\xe1\xe5\xe9\xd1\xc9\x87\xd3\xde\x38\xfd\x06\xd3\xc3\xbb\xbc\x9b\xeb\x35\x34\x49\x11\x4f\x00\xab\xed\xac\x30\x63\x78\x21\x36\xaf\xe2\x0f\x54\xff\x9a\x0c\x29\xd5\x9c\xfd\xc7\x22\x6c\x40\x9f\x35\x0f\x02\x1b\xd2\x0c\xff\x85\xea\x03\x69\xc4\xcf\x83\x7a\x55\x7d\x8e\x74\xaa\xbe\x2e\x15\xa0\x0d\x7c\xe1\x25\xcd\x97\x23\xd3\x01\x54\x18\x2d\x5b\xf3\x60\x33\xf7\xfe\x17\x9e\xc2\x36\xc4\xb4\xa9\x79\xa1\x76\xe5\x75\x5b\x20\xef\x95\x2a\x9b\x8b\x62\x2c\x3d\x8a\x66\x3b\xf9\x6d\xbb\xcb\xb1\xb6\xe8\x26\x66\x54\x31\xc7\x33\xb0\x35\x5a\xbb\xa3\xb0\xbf\x63\x0a\xbb\x23\x07\x3b\x72\xb0\x15\x72\xf0\xd7\xeb\xeb\x8b\x77\xc2\x2e\x8d\xe9\xad\xb5\x8b\xc3\x7a\x95\x87\x4d\x41\x57\xab\x56\xcc\x35\x65\xef\x84\xad\xea\x09\x2e\xbf\xb8\x2d\x62\xa1\xff\xaa\x8d\xbf\x9a\x9a\x11\xc6\x30\xb3\xba\x33\xc5\xc8\x73\x9d\xb2\xb3\x8b\x1e\xfb\x9b\x2e\x9d\xd2\xd6\xe7\xfd\x6c\x12\xec\x52\x46\x58\x76\x03\x7d\xdd\xbc\x70\x1a\x82\xdb\xe8\xbf\x0a\x9e\x8a\xc2\x40\x68\xad\xe0\x6b\x85\x72\x57\xbd\x2c\x13\xd5\x4b\x63\xf5\x98\x8d\xe8\x93\xf5\xa2\x3b\xb4\x60\x3d\x5c\x42\x80\x08\x87\x3c\x37\x0c\xbd\xa5\x77\xb6\x8c\xf3\xe7\x3e\x85\x43\xdf\x28\x6e\xae\x2d\x41\x72\xaa\x30\x62\x93\x92\x77\x03\xa6\x8a\x30\x1c\x6b\xd6\x46\xd8\x2c\x47\xa2\xb4\x32\xeb\xb9\xab\x65\x8b\xde\x99\xb2\x1f\x8b\x2b\xfc\xdc\x22\x6f\x24\x3a\x73\x8a\x18\x20\x06\xce\x5d\x61\xa7\xe7\x17\x59\xf7\x29\xdd\xc4\x47\xf6\xf9\x4d\xe7\x6a\x28\xd8\x2b\xf7\xe6\xeb\x1f\x7e\xf8\xee\x87\x1e\x3b\x8f\xab\x4e\x70\xc5\xce\x8e\xce\x8f\x7e\xbd\xfa\x7c\x0c\xc5\xb4\xe6\xe5\x13\x27\x23\xb1\xd4\xe6\x77\x05\x8d\xe2\xf8\x04\xba\x47\x11\xb6\x91\xbb\x89\x75\xea\xe8\x76\x68\xcb\xba\x63\x1e\x15\x8a\xd8\x88\x74\xd1\xc9\x5d\x4c\xb7\xb0\x51\x2d\x17\x21\x89\xaf\x61\x8c\x1f\x26\x89\x7e\xe5\x00\xd7\xbf\x9c\x70\xb5\xa8\x41\x72\xed\x56\x15\x3f\x84\x9a\xc9\x74\x55\xaa\x6d\xd5\x22\x9f\xfa\x14\xbe\xb4\xd5\xbd\x6b\x8c\x9e\xc6\xb5\xf1\x66\x02\x0e\xe4\xc2\x9d\xc4\x16\x21\x39\x98\x7b\x13\x47\xe2\x39\x10\xe5\x30\x78\xcf\x28\x60\x78\xb5\x90\x19\x1f\x44\xb2\x7e\x1e\x7e\x95\x0f\xb3\x30\x7c\x61\x86\x4b\x1b\x3c\x52\xda\xd1\x78\x70\x34\x55\x4e\xec\xca\x37\xe4\x7a\x0f\x7f\xa3\x24\xe7\xa7\xaa\x61\x7a\x73\x88\x81\x63\x47\xef\xc4\xfa\xc8\x44\x75\xa1\x60\xd1\xc4\xa8\x65\x63\x90\xee\xfb\x9e\x99\x41\x8c\x85\x28\x06\xba\x18\xcf\x43\x0e\x48\xf2\x2b\x9d\xdc\x6e\x30\xde\xeb\xe3\x0b\xec\xa1\xc5\x88\x43\xdb\x68\xcc\x95\x10\x83\x49\xff\x08\xca\x77\x7d\x7c\x01\x34\xbd\x07\xff\x1a\x69\x7d\x8b\xa9\x3a\x13\x61\x2b\xbf\xe1\x16\x7d\xd5\x4e\x28\x39\xca\x24\x5f\x94\x68\x19\xda\xb0\x91\xce\x52\x5c\xed\x31\xcf\x73\x37\xe2\xbe\xb0\xf7\x42\x28\x76\x76\x01\x67\xcd\x11\x72\x8c\xa4\xc7\xec\x4a\x32\xb7\x62\xb5\xc3\xaa\x14\x9c\xb2\x95\xa9\x14\x2b\xd7\xba\x17\x31\x89\xa9\xa5\xe0\x06\x5f\x69\x21\xbd\xe1\x68\xbc\x81\x92\xf7\xf5\x9d\x80\xc1\xa6\x69\x21\x4c\x4b\xb9\x66\x8b\xa1\xfe\x72\x0a\x97\xa9\x09\x6c\x12\xc6\xe6\xef\x2b\x78\x87\x01\xe6\x1c\xa1\x3d\x9f\x28\x8a\xc1\x2d\x9e\x93\x9e\xd6\x51\xd9\x61\xc8\x4e\x3a\x83\x73\xe2\xeb\x0a\x90\x76\xfe\xd7\xf0\xf0\x29\xb4\xf3\xb6\x32\xa2\x8f\x2c\x09\x56\x7b\x12\xa5\x50\x34\xa1\x00\xab\x9c\xd4\x5b\xce\xcc\x64\x9c\x49\x75\x0b\xd9\x74\xa4\x1f\x3a\xaa\x4a\x16\x09\x75\xeb\x25\x9b\x42\xf0\x6c\xbe\xe2\xbb\x8a\xe3\xce\x0d\x24\x9f\x82\xae\x6e\x85\x25\xdf\x12\x25\xc5\x5d\x12\xbf\xeb\xe4\x87\xac\xc9\x64\x37\x2f\x6e\x5e\x3c\xf1\x2c\xda\x8a\x76\xdb\xd0\x4a\xcf\xae\x8e\xaf\xce\x56\x76\x06\x2c\x78\xab\x16\x58\xac\x18\xb4\x04\x37\x76\x8f\xfe\xbd\x6a\xba\x5e\xfd\xad\xc7\x89\x8f\x49\x46\x3c\x3f\x2a\xed\xe8\x44\x9a\x44\xdf\x89\xa5\xde\x26\x5f\x2b\xd7\x8f\x46\xc2\x18\xc3\xdb\xec\xf8\xaf\x47\x17\x8c\x97\x76\x24\x94\xa5\x22\xb7\x6b\x44\x7f\xfa\x51\x5d\x61\x7d\xa2\xb5\xc6\x44\xef\x6e\x69\x44\xbb\x38\xa2\xcd\xe3\x88\xa4\x49\x8c\x5c\x03\x61\xc6\x49\x65\xdc\xea\x36\x75\x8e\xc8\xf4\x81\x27\xe0\xcc\xbf\x08\xda\x2e\x50\xf5\x5a\x5f\xb5\xa8\x5a\x34\xe4\xc1\x10\xcf\x94\x15\xc5\x80\x27\xa2\x91\x06\x87\xb8\x51\xd8\xb7\x0c\x6d\x10\xc6\x9b\x12\x0c\xdd\x06\xf1\x0c\x03\x2c\xdf\xcc\x01\xf8\x0e\x62\x92\xc7\x99\xae\xb2\xbf\x51\x51\x5e\x0b\xa0\x50\xfe\x6b\x69\x6c\x15\x0e\x11\xc7\xff\x9f\x25\xcf\x70\xde\xe7\xeb\xf9\xa7\xeb\x2b\xb5\xe4\xd3\x7e\x3f\xfc\x9a\x9d\x07\xeb\x77\x69\x50\x36\xc6\x16\x80\xec\x87\xf2\x70\xcc\x89\xf6\xc8\xfc\xb6\xc7\xf6\x6d\x92\xcf\x43\xc4\xdf\x2c\x0f\x17\x07\x40\x6b\xf4\x3e\x24\xe0\x6e\x1d\x78\x17\x4f\xc8\x32\x51\xb6\x36\x9a\x0b\x78\x85\xbd\x97\xc6\x62\xf8\x26\xfd\x20\x0d\x13\x98\xf3\xc9\x41\x22\xd7\x05\x93\xf9\xaf\x4e\x9c\x7c\x83\x74\x30\xb2\x19\x49\x83\x85\x6c\x31\x30\xdc\x87\xc8\xed\xdb\x49\x2e\x13\xc0\x0b\xf7\x9a\x88\x61\x7f\x7a\xfd\x12\xf8\xc9\x77\xdf\xbe\x7e\xd9\x5c\xeb\xc7\x97\x98\xbf\x54\xa0\xd5\xb3\x4f\x38\x03\x3e\x86\x2f\x60\x7d\x1f\xbc\x31\x78\x44\x00\xfa\x21\x90\xbb\x06\xb7\x9b\x2d\x25\xc2\x8b\x78\x92\x56\x3f\x8c\x5f\xfa\x1c\x6e\x2a\x41\xd6\x66\xdf\xa0\xa2\x0d\xb2\xb1\x15\x39\x73\xad\x82\x26\x3b\x09\x72\x27\x41\xee\x24\xc8\x9d\x04\xb9\x93\x20\x77\x12\xe4\x96\x25\xc8\x7c\x27\x41\x7e\x1d\x12\xe4\xca\x59\xae\x3b\x31\xb2\xc5\xa9\x7b\x86\x62\xe4\xcf\x62\x72\xad\x1b\xb5\x83\x9b\x2b\xfc\x81\xe7\x11\x46\xed\xad\x98\x60\xf2\x1f\x98\xb1\x1d\x73\x92\x2a\xe4\x4b\xb4\x10\xec\xb0\x88\xe2\x32\x57\x30\x7d\x85\xf2\x05\xd7\xa9\xac\xa0\xd3\x65\xc4\xbf\xca\xcc\x76\x8d\x59\x5f\x5a\x13\x8a\xca\x19\xc7\x33\xab\xa0\x2b\xb4\xe3\x4b\xf2\x2d\x55\xf0\x04\x8a\xe9\xc4\x7a\xcc\xe5\xe0\xc6\x7a\xf9\xf2\x25\x1e\x8e\x97\x3f\xfe\xf8\x23\x83\xca\x67\xa9\x48\xe4\x78\xba\x21\xb4\xfa\xe1\xd5\xab\x1e\xfb\xdb\xd1\x87\xf7\xa1\x40\x39\x80\x25\x61\xcf\x90\x32\x1c\xbf\x6c\x3a\xec\x3f\xae\x3e\x9e\x57\xb5\x57\xeb\x4f\x09\xe2\x9f\xe6\x33\xaf\x26\xa4\x4f\x69\xc0\x13\xfe\xc1\x35\x8f\x4b\x41\xfa\xfc\x71\x5f\x09\x12\x91\x0f\x07\x99\x4c\x28\x63\x02\x6f\x89\x07\x14\x00\x86\xc9\x07\x03\x5f\x16\x0e\xdc\x4c\x6e\x0c\x1d\x96\xc9\x5b\xc1\x06\xe6\x5d\xa1\xcb\x3c\x94\x66\xf7\x15\xf5\x9d\xbe\xd1\x17\xd4\x59\xb5\x07\x46\x34\x37\x7c\x0b\xdc\x6d\xb9\x03\xe7\x1a\x06\x96\x71\x48\xb5\xcf\x23\x6f\x8e\xaf\x8d\x3d\xe6\x39\x26\xab\xc2\xd9\xec\xb1\x0f\x7c\xe2\x2b\x8e\x71\xc5\x78\xdf\xe8\xac\xb4\x21\x40\x91\x1e\xc6\x59\x1e\xd0\xa9\xc8\x50\x33\xc2\xa4\x13\xdf\x2c\xca\x46\xc1\x12\x23\x70\xd7\xa0\xcd\x76\x69\x8b\xbb\x7e\xdb\x8e\xc4\x7b\x2f\x07\x22\x99\x24\xd9\x22\x1d\x34\xb4\x89\x83\x59\x92\xe8\xfc\xa0\x3f\x38\x28\x8e\xa4\x63\x50\x70\x81\xe5\xb7\x70\x0a\x0b\x61\x72\xad\x8c\x0f\xa4\xf3\x35\x9e\x43\xdf\x84\xed\x0e\xe9\x97\x98\x69\x64\x2c\x94\xf2\x83\xa3\x77\x51\x88\x2b\xab\xf3\xa8\x3d\xd6\xf0\x2c\x4c\xa7\xe6\x24\x6c\x16\xb1\x87\x9a\x7f\x26\x2a\xf9\xe7\x5d\xee\x86\xea\x68\x58\xd1\x61\xa5\xca\x84\x31\x8d\x37\xa9\xa0\x3f\x54\xb2\x36\x9d\xaa\xe0\x64\xc2\xa9\x6c\x35\x0d\x80\x4a\x21\x15\x35\x3c\xd4\xf9\xde\x48\x3f\xab\xf5\xc3\x24\x28\x66\x65\x11\x4b\xaf\xd6\xce\xcd\x93\x67\x99\x48\x99\x1c\x8f\x45\x2a\xb9\x15\xd9\x84\x2a\xf3\xf1\x7a\xdd\x7c\x5f\x9c\xcf\xfb\x3a\xfd\xfc\x68\x01\xea\xab\x23\xab\xca\xf2\x22\x85\x1d\x2a\x04\x5c\x04\xf7\x57\x92\xe8\x50\xb9\x0e\x21\xca\xf1\x8e\xe4\x50\xe5\xbc\x87\x79\x56\xab\x6d\xdb\x48\xeb\xdb\xb0\x63\xb3\xe1\xef\x17\xa9\x8d\x55\xed\xf7\xea\x9f\xdd\x70\x96\xba\x10\x66\x71\xf8\x4d\xf5\x08\x7e\x98\x43\x8e\xf0\x24\x3e\xee\xfe\xd1\x69\x9f\xbd\x7b\x94\xcf\xcf\xe7\x6e\x47\x5a\xc2\x2d\xe3\x8a\x1d\x5d\x9c\x85\x90\x18\x5d\x5b\x72\xaa\x70\x48\x75\xf9\x33\x79\x27\x94\x30\x4e\xbf\xe6\x85\x2d\x73\x8c\x44\xf3\x55\xdc\x3b\x2c\x2f\x84\x18\xc3\xf0\x3a\x55\xb6\x2e\x65\x51\xc2\x8f\xc2\x26\x28\xba\x45\xb7\x02\x68\x28\x0d\xbf\xb9\xc1\x49\xc1\xcd\x08\xeb\xab\x8b\x07\x69\xa9\x84\x7f\x5c\xd6\x27\x2a\xf5\x2e\x4d\x03\x9c\x84\x3e\xe2\x85\xc5\x74\xcf\xd4\xda\x0f\x0b\xa7\x10\xe6\xa2\x90\x3a\x65\x00\xc9\x9d\xea\x7b\xc7\xaf\x86\x52\x19\xbf\x7c\x40\x63\x68\x9d\xdd\x76\x0b\x4c\xde\x41\xac\xde\xb4\x47\xe5\x16\xb3\x28\x0e\x43\x97\x36\xd1\x55\xe2\x32\x0d\xa2\x79\x33\x80\x19\xc3\xea\x62\xd9\xcd\xb0\x2f\x5e\xe0\xb2\x4b\xc7\xbc\x85\x1b\xe2\x16\xb6\x7a\x36\x77\x71\xb0\xc8\x67\x32\x5a\xc3\x12\xb3\xe9\x95\x9a\x62\x7a\x2b\x73\xae\xb1\xb4\x97\x5c\x0d\x17\xb3\x2e\xdf\xc8\x89\x26\xa6\x3a\xbb\xa5\xe1\x43\x81\x35\xff\x51\xee\x72\xab\xc0\x6e\xa5\x4a\xdd\x52\xc7\x09\xe9\x9c\x85\xec\xad\x5d\xe1\x91\x67\x5d\x78\x64\x57\xb6\xe3\x6b\x29\xdb\xf1\x7b\x2f\x84\xe7\x54\xb6\xf5\x0d\x38\x81\x66\x5d\xb9\x6e\x16\x2e\x40\x2e\x92\x1a\xf9\x20\x82\x26\x14\x18\xae\x66\x13\xf5\x6d\x2e\x83\x9b\x68\x97\xab\xb4\x8b\xc0\xed\x2b\x90\xf7\xf0\xfb\x63\x95\x26\x89\xf8\x43\xed\xf9\xa6\xb5\x49\xaa\x7e\xcf\xac\x18\xb7\xe2\x3d\x67\x88\x4e\xe8\x23\xc8\xc7\x52\x1d\x8e\xf9\x43\xcc\x83\xa8\x96\xc4\xa4\x01\x37\x39\xe6\x36\x01\x29\x49\x01\x6b\x6a\x83\xb6\x80\x66\x81\xf5\x40\x0b\x57\xbe\xb1\x3d\x3f\xdc\xde\x7f\x96\x5c\x59\x69\x27\xad\x91\x0e\xc9\x5a\x5a\x4d\x98\x74\x5e\x90\x76\x70\x4d\xc8\xe0\x12\x2d\x0a\x16\xa7\x8f\xf8\x33\x36\x74\xd4\x19\xf1\x7e\xd6\x40\x46\xa4\x15\xbb\x44\x7a\xfc\xbb\x59\x38\x1a\xaf\xcf\xb5\x4c\x17\x2d\xa7\xd7\x00\x5a\x2c\x68\x51\x75\xbb\xfe\x92\x8e\xf9\xc3\xf3\x5f\xc7\x0f\xe1\x06\x62\x59\x7c\x2e\x01\x10\x86\x8c\x85\x20\x09\x36\x57\x6a\xbd\xa5\x40\x3a\x80\xeb\x7a\xe9\xa4\xb7\xdf\xc5\xda\x4c\x8d\x7a\x06\x24\x8a\x5b\x93\xb4\x5a\x22\x48\x1e\x1b\xf1\x3b\x01\xd5\xf4\xf1\x1c\x61\x1d\x14\x77\x49\xd1\xd2\x58\x08\xb4\x90\x86\xea\x1d\x58\x5f\x1f\x9b\xa4\xf2\x4e\xa6\x82\xd6\x3d\x9c\x43\xb2\xcd\x70\x80\x7e\x11\xff\x2a\x79\xe6\xa5\x58\xa1\xca\x31\x56\xa2\xc1\xa3\xfd\x97\x86\xa8\xec\x33\x15\x1e\x58\xbf\x2c\x8c\x0d\x4e\xd1\xfa\xb8\xd7\xd9\x55\x39\x25\xde\x3f\xc3\x4d\x94\xea\x09\x0e\xf8\x0a\x15\x38\xeb\xbc\x0d\x46\x81\xfb\xce\x01\xb2\x07\x44\xe1\x2d\x7b\x63\xdc\xfb\x9b\x9b\x48\x3d\x1f\x5f\x52\xb4\xb2\xde\xb0\x5e\xb9\x32\x52\x44\xc1\xdf\xb9\x53\x25\x9f\xb5\x2a\xd9\xa6\x86\xa5\x93\xea\xcc\xdc\x5d\xc6\xf5\x5c\xcb\x52\x39\x90\xc3\x12\xcb\x92\x1f\xa2\x05\xa8\x9b\x20\xd0\x67\x37\xcc\xa8\x1b\xec\x2a\x87\xdb\x4d\xcc\x8e\xa4\xe6\xb9\x74\x66\x57\x41\xf3\x0f\xa4\x8a\xef\x2a\x68\xe2\xef\x8f\xaf\xa6\x6e\xbf\x8c\x66\xc3\x92\xd0\x86\x73\xd5\x2c\x0a\xf3\x55\xd5\x40\x88\x22\x3d\x75\x05\x2d\x15\xcd\x14\x4b\x08\xc4\x7b\xb4\x65\x48\x6f\xd9\x68\x92\x58\xd0\xaa\x89\xcc\x56\xd2\x65\x30\x7d\x3c\x16\x5d\x04\xad\x7f\x65\xda\xd8\xf2\x50\xd2\xc2\x6c\x2c\xb2\x68\x9e\xfe\xc4\x33\xae\x12\x51\x9c\xa9\x61\x21\xcc\xa2\xf4\xde\x19\xad\x9b\x32\x74\x55\x97\x8f\xb3\x4c\xf3\xb4\xdb\xa7\xf6\x4c\xd2\x0b\x40\x5d\xdf\x30\x5b\xf0\xc1\x40\x26\x20\x0e\xa8\x34\x0a\x44\x34\xa2\xb8\x93\x89\xa8\xe1\xa6\x63\xc8\x2a\x57\xf5\x4e\x56\xc8\xff\x6d\x99\xfe\x0b\x41\x99\x14\xdd\xb4\x60\xf4\xd1\x29\x3a\x39\xbf\x22\x68\x99\x28\x82\xe8\xe8\x97\xab\xfa\xeb\xcd\x42\x61\xad\x24\x8b\x16\xf9\xbf\x2b\x0f\xf7\xec\x62\x7a\xb4\xef\x8e\x4f\x9d\xc2\xf4\x31\x17\xea\xca\xf2\xe4\x76\xcd\xa1\x2f\xb3\xe3\xad\x72\x14\xaf\xd0\x48\xd8\xee\x24\x62\xe3\xd6\x07\xb1\xc5\xa9\x91\x53\x37\x61\xe6\xfa\xd3\x1a\x57\x82\x5d\x54\xd0\xa1\xb1\x01\xfe\x70\xd7\x47\xc2\xae\x57\xbf\x04\x76\x24\x8c\x68\x74\xbf\x6d\x12\x36\x83\x28\x6c\x4e\xc7\x56\x3e\x0e\x33\xa2\x13\x17\x1d\x88\xe9\xe6\x15\x1c\xa3\x50\xba\x1c\x8e\x9a\xb5\x35\x32\x81\x21\xf1\x99\x4e\xb8\x15\x14\xb4\x44\xef\xa6\xa1\x7c\x46\x55\x8b\xb5\x0e\xc1\xd8\xe2\x1c\xb5\xa0\x3c\x71\xe1\x05\xfa\xb8\x5d\x59\x15\xd0\x77\xee\xb8\x88\xfb\x43\x2a\x0f\xdb\xbd\x97\x76\xd4\x25\x8e\x77\x08\x23\x3e\xfc\x06\x61\x10\x9e\xea\x2e\x27\x3c\x6b\x99\xb8\x02\x6d\xe3\xdb\x8b\x89\xf5\xd9\xa4\x1b\x8a\x26\x51\x2c\x3f\x86\x4e\x29\x9d\x0a\xe6\xae\x8d\x13\x08\xd9\xfe\x4f\xc2\x72\x36\x10\xdc\x89\x7e\x07\x8f\x04\xea\x1f\x01\xc6\x57\x36\x08\x48\xa2\xb9\x1f\x09\xf2\xd3\x87\x7c\x7f\xf0\xb7\xb3\x54\xb8\xfb\xfb\xe4\x45\x8e\x50\x35\x42\xf8\x7a\x5e\x5a\xdd\x35\x22\x83\x5a\x0c\xf0\x79\xfc\xfa\xc6\x95\x49\x5b\xc6\xd9\x0d\xca\x0c\x01\x0d\xbc\x01\x80\x02\x12\x09\x2e\xc1\xed\x23\x2c\x28\x45\x08\xfa\x00\xde\x18\x58\xa1\xa8\xad\x26\xdb\x4f\xa5\xb9\xed\x54\x38\xf9\x1d\xd6\xeb\xf5\xb6\x1d\x98\xbb\x95\x68\xb9\xf3\xb7\x57\x6b\xe5\x6d\x9d\xbf\xbd\x6a\x8d\x5d\xe9\xda\x3e\x27\x5c\x0c\x0f\xa3\x2e\x1e\xea\xe7\xda\x8d\x93\x10\xd4\x36\x4d\xe2\x51\x83\x35\x74\xdd\x6d\x04\xf5\xbb\x39\xe0\xbc\xb6\x8e\xe1\xb8\x95\xf9\x2f\x49\x15\x28\x96\x97\x8d\x43\xbb\x88\x57\xa2\xbc\xdc\xec\x0e\xcd\x34\xce\xcc\x17\xd9\xd1\x96\xd7\x97\x26\xbb\xed\xf0\xd7\x59\x50\xd1\xb3\x78\x39\xa2\x33\x03\x18\x7f\x8a\x28\x60\x89\x26\xc0\x14\x78\x0c\x25\x2b\xdc\x3a\x8e\xcb\xcc\xca\x3c\x8b\x04\x0a\x90\x24\x35\xc5\xab\xef\xcc\xbe\xcf\xda\xec\xbb\x33\x5b\x7e\x2d\x66\xcb\x3f\x74\x04\x51\xa0\x58\xab\x07\x10\xf5\xc5\x88\xdf\x49\x1d\xe0\x45\xab\xd8\xc7\x2f\x17\x4a\x14\x2f\x4b\xd3\x82\xb0\xee\xc2\x60\x3f\x4b\x8e\x86\x2d\x4d\x94\xf2\x00\x57\xb0\x2c\x0a\xb8\x83\x91\x19\xe2\x39\x2c\xd1\x32\xcd\xee\xd1\xcd\xd8\x15\x23\xdd\xaa\x05\x3b\x74\x7b\xac\x55\xda\x2c\x17\x36\x97\x51\x87\xc6\x95\xa9\xc0\x63\xaa\xf3\xbe\x2e\x71\xfb\x80\x5d\xaf\xa2\xf6\x3b\xa9\xfd\xba\xe0\x50\xd1\x53\xab\x6b\x39\x6d\x04\xd8\x80\x5e\x41\x77\x73\x88\xa3\x31\x7c\x38\xf5\xad\x96\x22\xb2\x99\x16\x23\xda\xbc\x39\xfb\x9e\xcd\xbe\x21\x55\x68\x7a\x4a\xea\x1b\x61\x8d\x5e\x17\x4e\x22\x78\xeb\x44\xe4\x0e\xfb\xa4\x6e\x95\xbe\x5f\x27\x0b\x7d\x85\x08\x83\xaa\x90\x06\xdc\x30\x9d\x65\xa2\xa8\x06\xf6\x18\xc1\x05\xd3\x6b\xb6\x35\x91\x74\x49\xb4\x41\xad\x5d\xdd\x0d\x1d\x1e\xed\xc2\x0c\x9e\xb7\xbc\xb9\x52\x98\x41\xec\x05\xab\x74\x12\xef\x00\xa3\xc4\x92\x0c\x12\xfa\xb7\x6f\x68\x84\xd3\xb4\xe5\x58\x83\x8a\x67\xac\x6c\x86\xde\xc9\xec\x5f\xa1\xcc\xbe\x0b\x35\xc0\xdf\x1f\x5d\x46\xdb\x7e\xa4\x41\x5d\xe3\x68\xc1\xb4\x48\xf1\x88\x65\x6b\x6e\x71\x63\x30\xde\x7d\xb5\xb4\xab\x81\x54\x3c\x93\xbf\x2d\xaf\x84\xf1\x36\x34\x04\x82\xa0\x98\xce\xf9\xbf\xca\x8a\xb0\x52\x26\x3e\x46\x35\x90\x91\x1f\x8b\xb0\x23\xa2\xf8\x98\x2b\xa1\x6c\xe6\x18\xce\x58\xdf\x79\xf2\x8b\x97\x9f\x8c\x60\x6d\xc9\xaf\xe5\xe6\xd6\x1c\xf2\x74\x2c\x95\x34\x56\x14\xdd\x04\xcb\xbb\xac\x4c\x70\x37\x45\x4a\x59\xa6\x3c\xb4\xdf\xfc\x65\xfe\xdd\x46\x4b\xb7\x05\xb1\xf3\x0e\x85\xf3\xe5\x7a\x56\x0b\x08\x32\x2f\xf3\x2d\x3b\x0f\x97\x75\xf7\x32\x49\x19\xfc\x8e\xcb\x8c\xf7\x33\xb7\xbf\x46\x14\x77\x1c\x93\xdd\x61\x18\x61\x77\xf6\x4c\x6d\x98\xcd\xe0\xd9\xad\x71\xc7\x4a\xf5\x69\xb9\xb3\xb5\x47\x35\x62\x92\x73\x9b\x8c\xba\x63\x51\x0c\x45\x17\xc1\x3c\x9a\x52\xec\xec\x37\x8c\x2d\xb8\x15\x43\x78\x01\xde\x9e\xe3\x41\x1a\x71\xb3\x4c\x54\xbf\x70\x6d\xbc\x38\xe3\xd7\xaf\xca\xea\x87\x2e\xbc\x4a\xa1\x16\x6a\xd6\x5b\xb9\x52\x8f\xe6\x2b\x3d\xaf\x83\x98\x4c\xdd\x04\x9d\x0a\x14\x49\x9c\xcc\x25\x0a\xf4\x7f\x4a\xc5\x7e\xae\x66\xc5\x4e\x79\x42\x8e\x51\xf0\x5b\x50\x68\xfd\x74\xa9\x7b\x92\xfd\x12\x9e\x8c\x04\xdb\x97\x3d\xd1\x73\x3f\x09\x9b\xa4\x07\x3b\x05\xe0\x59\x2b\x00\x3b\xe1\xf5\x6b\x11\x5e\xff\xd8\x06\x67\x9d\x6e\x68\x6b\xe6\x14\x38\xf0\xbb\xb5\x2c\xbb\x15\x58\x6e\x54\xfe\xa0\x0d\xd0\x38\x94\x21\x51\xb8\x80\x48\x98\xd8\x92\x86\x2b\x71\x11\xca\x96\x93\xc3\xdd\x47\x8e\x5c\x7a\xb7\xf4\x1f\xda\xde\xec\xd8\xeb\x76\x55\x18\x9d\x8a\x23\x74\x88\x2f\xe1\xdb\xd4\xaa\x32\x2e\xc7\x32\x6c\xc8\x31\xd3\xa9\x93\x10\xa7\xca\xcc\xcc\x67\xc3\x53\xdf\x9e\xf5\xfd\x6b\xea\x7a\x4e\xfd\x9a\x2d\xd9\x53\xcf\xa3\x2f\x40\x58\x53\xb0\xe9\xfa\x90\xda\x0e\x3b\x7d\x40\x46\x8c\xb8\x7c\x67\xca\xff\xf5\xc8\x56\x56\xbf\x4c\x1b\x9b\x59\xdd\x46\x52\xb8\xd9\x32\x39\x2d\x84\xa5\x01\x1b\x86\x93\x09\xd6\xe6\xda\x33\x27\xae\xa4\x65\xe6\xd8\x71\x51\x66\xad\x4c\xaf\x39\x84\x06\x16\x22\x3d\x29\xdd\xe2\x5c\x85\x1e\xce\x86\x4a\x87\x9f\x4f\x01\x92\x66\xb9\x78\xe6\x8e\x06\x0d\xc2\xc3\xd0\xe0\x07\x00\x14\x8f\x1e\xb0\x5c\xa7\x20\x52\xb9\xc1\x93\x9e\x6b\xb8\x95\x66\x80\x44\x26\x4c\x47\x3c\x38\xa1\x01\x11\xf4\x2a\x40\x5b\x20\x45\xbe\xd8\x75\x87\xf5\x4b\xcb\xa4\x05\x61\x22\x19\x69\x6d\x04\xd1\x71\xec\xf7\x4e\x6a\x10\xda\xf0\xec\x14\x6c\xec\xa8\x15\xd1\xb8\xa8\x7b\x0c\x75\xab\x5e\x93\x86\x8d\xa1\x42\x90\x5f\x1d\xaf\x2d\xb8\x6e\xaa\x52\xfa\x80\x56\x65\x9c\x74\x32\x76\x9d\xde\x0b\x39\x1c\x59\xd3\x61\x20\xfe\x06\x44\x97\xaa\xdb\xb1\x10\xd6\x30\x9e\x65\x7e\x08\xf1\x86\x55\xc9\xd2\x86\xed\x37\x93\xa1\x3b\xfe\xf9\xd4\x3e\xcd\x5c\x2e\x04\x43\x3a\xe8\x30\xca\xda\x72\x92\x5b\x39\x76\x4b\x27\xad\x8f\x02\xb4\xa3\x02\x42\x57\x61\x29\x32\xfa\xb0\xae\x55\x12\x77\x82\x2d\x4f\x01\x46\xeb\xe6\x05\xce\xee\xe6\x45\x28\x1b\x5e\x8e\x3d\xa6\x12\xcc\xd0\x03\x05\xa0\x23\xa6\x40\xac\x35\x78\x17\x9e\x9c\x56\xa3\xfb\x4b\x78\x69\xdf\x1c\x54\xcb\x39\x92\xc3\x91\x5f\x4d\x4e\xe8\x48\xf5\x5d\xd8\xb2\x7a\x7b\xe1\xfb\xad\x56\xf3\x5a\x14\x6b\x64\x56\xd4\xfc\x5d\xb3\xb7\xa9\xdd\x75\x5a\x8d\xd7\x43\x00\xa6\x5e\x0c\xe3\x45\x40\x6a\xe1\x90\xd4\x8e\xd9\x9c\x4b\x05\xab\xef\x24\xeb\xb1\xb0\xcc\x5d\xce\xea\xb0\x59\xe9\xe8\x2e\x95\x4c\xc3\x0b\x4e\x22\xb8\xbf\xdd\x29\xd3\x8a\x4e\x08\xc5\x61\xae\x33\x82\x44\x70\x13\x8a\x1a\xd3\x28\xf4\x58\x60\x54\x3a\x4b\x61\x15\x61\x08\xc2\x2f\x25\xdb\x17\xbd\x61\x2f\xc2\x1d\x43\x9d\xe0\xa0\x13\x09\x2e\x40\x25\x00\x83\x0c\x61\x13\x6d\x01\x36\xb5\x08\x29\x4b\xdc\x49\x42\xa1\x74\x9d\x83\x4a\xe2\xd4\x0e\x98\xc9\x96\x35\xf3\x56\xee\xe4\xb8\x5d\xc5\xec\x83\x69\x69\x8a\xed\x93\x0c\xdb\xce\x93\xfc\x57\xc1\x0b\xdb\x17\xdc\x3e\x86\x23\x79\xd1\xa1\x7c\xcf\x8d\x85\xa3\xc4\xee\x05\x1b\x6a\x5b\x6d\x17\x9a\x5d\x87\xf2\x4e\xa8\xd8\x69\x3a\xf3\xaa\x3d\xbe\x33\xbc\xdd\x1c\x6a\x9e\x67\xc4\xfa\x96\x64\x8e\x75\xec\x82\x04\x6b\x38\x94\x80\x55\x3a\x67\x3a\x73\x9c\xec\xcd\x7c\xa2\x72\xcc\x15\x84\x85\x82\x6d\x90\x5e\x62\x52\xa5\x80\x88\xac\x86\x8d\x30\x83\x0c\x86\x19\x56\x69\x0d\x59\x6d\xb6\x07\xbf\x31\xac\xfd\x7e\x21\xc5\xe0\xa0\x86\x9e\x17\x2f\xcb\x9e\xd9\xc2\x48\x7e\xaf\x11\x01\x8e\x3b\xfe\xde\x22\x00\x90\xf0\x0c\xe4\x70\x69\x98\x79\xb3\x69\x5c\x5e\x94\x91\x14\x13\xad\x42\x95\x59\x0e\x25\x1d\x12\x4b\x85\x61\x4d\xd9\x47\xd2\xbf\x2f\x1e\x92\xac\x44\xc1\x81\xcc\x05\x07\xc1\x0f\xa2\xb4\xea\x2a\xd9\x26\x86\x15\x3f\xf5\x81\xaf\x8f\x92\x79\xec\x7b\x98\x5a\x8c\x45\x74\x21\xbc\x85\x92\x7a\x48\xfb\x41\xd4\xeb\x73\x54\xc9\x42\xa3\xed\xf3\x14\x37\xca\xa5\x3e\x90\x46\xd3\x86\x17\xcc\x34\xaf\xd0\x40\x0e\x19\x37\x46\x0e\x15\x32\x6a\xf7\x7e\xef\x2a\x17\x49\x2f\x5e\x96\x36\x0a\x66\x62\xe5\xdd\xca\x64\x7a\xfe\xa9\x5c\xb4\x11\x47\xf0\x2d\x56\x08\x44\x5c\x87\xa9\x8c\x44\x72\x0b\x22\x84\x48\xfd\xbc\x82\xfc\x2a\x11\x51\xf8\x4e\x64\x13\x56\x1a\xa9\x86\x3d\x46\x5d\x80\x98\x13\x2c\x98\x3e\x9d\x24\x76\x1e\x90\xe2\xef\x97\xec\xc8\xaf\x15\x7e\xa3\xc3\x74\xbd\xb9\xe3\x1d\x3f\x3b\xc2\xf3\x4e\xeb\xaa\x51\x2a\x72\x81\x02\xb3\x56\xcc\x17\x7f\xe1\xd6\x02\xea\x29\x22\xd9\x96\x84\xfb\xdb\xf8\x00\x21\x62\x43\x04\x06\x57\x4c\x14\x85\x9e\xc7\x65\xfc\x36\x3e\xd1\x1e\xf8\x71\xb6\xde\x05\x58\x6b\x92\xcb\x4a\x23\x7a\xec\x97\x91\x50\x73\x0e\x9c\xdb\x32\xb2\xfc\x76\xaa\x1e\xaa\xee\xc9\xa7\x6b\x8c\x4e\x24\x8f\x3e\x96\xf3\x49\xa6\x39\x20\xb9\x66\x90\x22\x86\xc9\x3f\x3c\xd3\x6a\x88\xea\x08\x07\x27\x40\x91\xc6\x7c\x35\x64\x52\x62\x2f\x91\xca\x08\x77\x9c\x9c\x04\xe0\x73\x80\x57\xad\xf6\x0a\xa9\x93\x20\xe9\xd3\xd5\xe0\x3a\x84\x58\xec\xd7\xa5\x7a\x51\xaa\xb0\xbf\xbd\x6a\xa7\x21\x09\x04\x67\x1b\x22\x6d\xe8\xa2\x22\x94\x32\xe6\xf9\x41\x0f\x23\x6e\x58\x5f\x38\x11\x2a\x5e\x6a\xab\xa9\x6c\xd3\x2f\x3e\xb5\xec\xe7\xb2\x2f\x32\x61\x11\x82\x95\xa0\x93\xa1\x9a\xac\x2d\x10\x0b\x87\x8d\xf9\xed\xec\x13\x07\xbf\xe1\xf5\xa0\x5f\xfa\x13\xc8\x41\x05\x95\x54\x81\xe3\x43\xa6\x3c\xb8\x06\x6a\x23\xf1\x1b\x10\xfc\x47\x40\x55\xc2\xa4\x67\x9f\x5c\x38\xd5\x4b\x58\xee\xa9\x6b\x13\x43\x84\xab\x09\xc0\x08\x67\x62\x8c\xcb\xab\x12\x99\xf9\x21\x4d\x9f\x27\xd2\x5b\x6a\xf3\xea\x31\xe8\x14\xdd\x15\x3a\x49\xca\xa2\x83\xaa\x3d\x96\x23\xea\x34\x6e\x68\x35\xcf\xf9\xfd\xe3\xa1\x8b\xee\x86\xdb\xb4\x05\x1d\x81\x3a\x42\x4b\x16\x9d\x66\x38\xa9\x53\x1f\x69\xf6\x03\x6f\xe9\xc2\xef\xc7\xcc\xdd\x24\xec\xe4\xe6\x44\x9d\xd6\x95\xca\x01\xa6\x8e\xfa\x7c\xe3\xfb\x91\xcc\x9c\x3e\xa5\x12\xf7\x81\xb0\x46\xbc\xc8\xa4\x28\x90\xf4\x18\xaf\x8b\xe9\x7b\xe5\x3f\x5f\x4d\xc7\xbd\x86\xcd\x0e\x2a\x05\x92\x20\xfd\x01\xeb\xb6\xd0\x59\xd6\xe7\x09\x94\x2f\xae\x51\xca\xd8\xd3\x66\x74\x76\x27\x18\x4f\x0a\x6d\x4c\x38\xc7\x85\x80\x83\xdb\x63\xef\xb9\x6d\x0e\xc6\x9f\xcd\x6a\x29\xb0\xd8\xf9\x0c\x6a\x74\xe0\x29\x7e\x8b\x31\x81\xcb\x89\x7c\x83\xee\x9b\x09\x77\x72\x25\x02\x02\x96\x06\x95\xca\x5c\x1b\x23\xfb\x58\x05\xc0\x8f\x1c\xac\x2e\x70\x5a\xfb\x13\x36\x90\x0f\xe1\x9e\x34\xb8\xad\x54\xd3\x5b\xdc\x63\x7f\xd3\x25\x24\x37\x0e\x24\x59\x68\x30\xb5\x67\x4a\x1d\x4c\x45\xbf\x1c\x0e\xa1\x46\xfa\x84\x19\x01\xc6\x76\xfa\x10\x7e\xbc\xd2\x1f\x6a\x04\x21\xd3\xfe\xdc\xa3\x14\x33\x72\x5a\x47\x37\x68\x1d\xd1\xad\x0b\xc6\x34\x68\x0c\x41\x08\x7f\x61\xa4\x57\x61\x49\x38\x58\xe0\xc0\xcf\x74\x01\xfb\x1d\xfa\x86\xc0\x16\xb4\xe2\x91\x1b\x16\x8f\x43\x16\x8a\x5f\x1b\xcb\xfb\x32\x93\x76\xe2\x3f\x85\xef\x5a\xf1\x60\x9b\xfb\x4f\x6c\x78\x1d\x8b\x74\x16\x6f\xea\xd3\x30\xc7\xba\x14\xb0\x1a\x87\x1c\xf0\x2c\x63\xfe\x40\x42\xaa\xb0\xb4\x4c\x28\x00\x1a\x77\xbc\xc8\x4b\x01\xed\xe4\x07\xe4\x65\x4d\x12\xdf\x17\x89\x1e\x93\x48\x38\x4b\x62\xa9\x52\x94\x61\x5c\xa9\x40\x88\x6f\x11\x55\x64\x68\x76\x29\x0d\x6c\x67\x26\xe0\x26\x83\x95\x30\xb1\x54\x2e\x44\x86\x58\x96\x6c\xc2\xa4\xa3\xad\x63\xe1\x6b\x08\x72\xf6\xea\x65\x77\x2c\x55\x69\x05\x33\x9a\xdf\x7a\xec\x70\xe0\x59\x6e\x6e\x61\x28\x19\xe5\x7c\x03\x1f\xd4\x83\x59\x23\xa8\x9c\xc5\x33\xa5\x35\xd7\x84\x38\x00\xcd\x42\x20\x22\x37\xf0\x68\xfc\x30\xdc\xf0\xb9\xeb\xd3\x63\xe7\xda\x7a\x4b\xf2\x60\x06\x1f\x40\x7e\x2b\x20\xe3\x53\xc9\x8c\xed\xbb\x7d\x21\x51\x84\x32\x3b\xc9\x6e\x55\x5f\x77\x77\x17\x33\xa3\x6b\x48\xfc\x71\x47\x1d\x37\x26\xee\x37\xb9\xd6\x61\x34\x39\x9e\xdd\xf3\x89\x71\x24\xa6\x1c\x8b\x94\x0d\x61\xc4\x8e\xa2\x44\x17\x10\xf8\x3e\xb4\xa0\x22\x2d\x55\x5c\x14\x79\x95\xc6\xc2\x8e\x34\xac\x8b\xdf\xf8\x8a\x1f\x44\x77\x36\xda\x67\x25\x8c\xe9\xb8\xdd\x84\x85\x44\x83\x3d\xe2\x94\x15\xb4\x96\x95\x7e\xe8\x8e\x08\xd1\xa4\x41\x69\xcb\x62\xeb\xd6\xb7\x13\x2e\xc6\x5a\x9d\x52\xa8\xc1\x32\x65\xa9\xd1\x1a\x42\xf5\x0c\x95\x72\xd2\xb9\x20\xb5\x28\x85\x56\x86\x15\xa5\x52\x24\xc6\x43\xfe\x52\x3b\x8b\xdc\x2d\x12\x31\xff\x91\xb5\x69\x50\x7d\xac\x0b\x29\x90\x6f\x84\x0a\x87\x4c\x46\xb1\x44\x98\x41\x31\x79\x48\xe4\xde\xee\xd2\x2f\x4b\x2a\xa0\x26\xde\xe5\x72\x3f\xd2\x59\x15\x1c\xe9\xe8\xde\x39\xf8\x8d\x70\xc0\x10\x90\x04\xb2\x6e\x21\x86\x10\x70\xe5\x25\xa3\x31\x77\x7f\xed\x82\x8f\x9e\x75\xf0\x51\x9b\xec\x83\xf7\xb4\xf5\xe0\x2e\xdc\x72\x80\xa3\x4e\x77\x91\xff\xbb\xe0\xa9\x5d\xe4\xff\xd3\x44\xcb\x3c\x42\xd0\x7f\xec\x07\x9d\xcf\x53\x8e\x50\x44\x35\xd4\xb2\x89\xe8\x55\xaa\x48\x93\xf1\xb6\x34\x3d\xa8\x05\x0d\x00\xac\x09\xfb\x57\x29\xc0\x34\xa2\xef\x00\x50\xc6\x89\x5e\x9e\x32\xfd\xc5\x87\x0e\x80\x70\xd8\xf8\xc2\xc7\xcb\xe0\xf2\xa7\x31\x44\xec\xa1\x8a\xaf\xaa\x8f\xd2\x89\x55\x6d\x62\x38\x54\xb4\x08\xd7\xee\x9d\xa5\x01\xe7\x78\x4e\x7a\xec\x28\xf0\xd5\x59\x5f\x06\xad\x00\xfe\x09\x1e\xe1\x8f\x97\x5b\xf7\xc0\x9f\x37\x46\xfe\x68\xa0\x86\xd3\x4b\xb4\x0d\x0f\x89\xef\xf1\xb2\x72\x69\xaf\x74\x08\x2b\x78\x7c\xe4\x0f\x61\xf9\xdd\x41\x0a\xde\x5e\x5f\xb7\x91\xb3\x5b\x31\x41\x86\x0f\x49\x23\xa2\xe0\xa1\x31\x54\x1e\x24\x79\xe4\x56\x4c\xbc\x05\xae\x6c\x15\x03\xd4\xae\xa6\x26\x5e\x00\xa8\x5e\xe8\xd5\xbb\x30\xe0\xd5\xd1\xb3\x23\x62\xee\x67\xd2\x3e\x4d\x02\x56\x62\xcf\x50\xbd\x45\xad\x00\x8f\x08\xfc\x2b\x74\x21\xbd\xe0\xf3\x99\x67\x32\x0d\x4b\x85\xc7\xf8\x4c\x75\x9c\x7e\xe6\xfe\xe7\xf4\xc1\xc9\xf1\x1d\x76\xa2\x85\x39\xd7\x16\xfe\xec\xb1\x77\x64\x9b\x7d\xbf\x4e\xe1\x50\xfc\xf2\x32\x41\x52\x31\x38\xc7\x6e\xa8\xb1\x50\x60\x82\x4e\x1a\x76\x57\x1a\xc7\x96\x75\xe1\x87\x0c\x02\x27\x26\x08\x61\x17\xb1\x67\x0c\x8c\x29\x33\xfb\xc0\x99\xba\x7e\xe2\xb9\x2e\xe8\x6e\x7e\x57\xef\x00\xef\xe9\xfd\xdc\x97\x29\x45\xc0\x48\x35\xcc\x42\x64\x51\x87\xc4\x75\x5f\x26\x14\xa4\xd8\xbc\x10\x5e\xbf\x57\x8c\xea\x6f\x92\x31\x00\xfb\x43\x19\x3a\xe3\x09\x14\x94\x2b\xd0\x60\x47\x89\x20\x32\x61\x90\x06\xc2\x20\x3d\xe4\x69\xea\x39\xb7\x24\x36\x8d\x22\x99\xe1\x7c\x6f\x93\xe4\x00\xb5\x5c\x48\x6b\xca\x2c\x83\x6a\x05\x90\x39\x36\x4d\xde\x43\xbc\x96\xd2\x15\x50\x38\x16\xc0\x8b\xe2\x73\x90\x69\x61\x3c\xd6\xd1\xf9\x09\xd6\x76\x15\xec\x5a\xe7\x3a\xd3\xc3\x49\x3c\x1a\x2a\xe8\xef\x0d\x37\x40\xd0\xca\x3e\x5d\x48\xaf\x07\xc7\x2f\xb4\xa0\x4c\xcd\xc8\xb1\x65\xf7\x6a\x0e\x3b\xab\x4d\xa9\x3f\xf1\x26\x0c\xa0\x68\xdb\x86\xb8\x9c\xc7\x17\x36\xd1\x32\x60\x19\xde\x4a\x91\xa5\x5b\x5e\x01\xf0\xb8\x3f\xdb\x15\xd8\x86\xb1\x61\x59\x32\x28\x35\x99\x9f\x07\x8a\x00\xb7\xc1\x45\x4c\x15\x4a\xc1\xc4\xd0\x3a\x0a\x61\x2a\x86\x62\xf5\x05\x6d\x6d\x55\x3e\x9b\x2a\x91\x62\x82\xf3\x69\x28\xec\x8c\x38\x0c\x54\x1e\xdd\xb5\x3e\x99\x28\x3e\x96\x09\x19\x81\xf0\x93\x1e\x01\x93\x0d\xb9\x15\x15\x7b\x50\xbc\x9f\x45\xa8\xb2\xde\x6e\x14\x6c\xcc\x3e\x92\x6f\x8e\x2f\xcf\x07\x6e\x9f\x2c\x39\xcf\x27\x8e\xe9\x27\xa8\x9e\x9e\x6b\x0b\xe6\x1f\x32\x94\x19\x64\x26\x60\xfd\x0c\x9f\xeb\xb1\x4b\x4c\x8a\xa5\x40\x46\xf0\x8c\xbe\xea\xbd\xfa\xae\xc7\x8c\x10\x95\x76\x26\x8d\x71\xec\x96\x14\xb4\xd7\xaf\xfe\xfc\xfa\xf5\x1a\x68\x95\x3a\x3d\x3e\x3b\xb9\x5c\x96\x6d\x88\xad\x9a\x1a\x41\xae\x53\x76\x76\xc1\x0a\xb0\x80\x06\x77\x4f\x1c\x39\xb9\xf6\x80\x96\x11\x09\xdf\xac\x39\x24\x3f\x1c\x33\x73\x3c\xb0\xd7\x08\xc2\xde\x9f\xb0\x0b\x9d\x52\x21\x17\x6e\xe3\x40\xcf\x10\xc1\x29\x4d\xf3\x1c\xbe\xb4\x23\x26\x94\x2d\x48\x4e\x40\xc0\x76\x5a\x0a\x58\x21\xda\xc1\x33\x8a\xe6\xa6\xd2\xd7\xdc\x62\x14\xf0\x2b\x32\x9c\x84\xb8\x6a\x3d\x60\x67\x17\x77\xdf\x83\xac\x76\x76\x71\xf7\xfa\x31\x65\x80\x6d\x65\xa7\x22\x7a\x5f\xb1\xf4\xdc\x9f\x9d\xc4\x99\x38\xb5\xe0\x1b\x34\xec\xe8\x32\xf5\x58\x80\x21\xf9\x12\x7d\x7f\x6f\xd8\x4d\xf9\xf2\xe5\x77\xc9\x05\x3d\x3d\xe7\x63\x01\xbf\x88\x37\x87\x87\xf5\x47\x57\xb8\x41\x89\x23\x30\x67\x27\xd8\x68\x8d\x50\x38\xde\xb0\xa0\xcf\x9c\xd0\x74\xe5\x26\x64\x41\xf8\xf6\x96\x59\xd0\xb5\xeb\x74\x23\x96\x5b\x2a\x0a\x68\x76\x74\x6e\xc9\xdc\x3e\xc5\x6d\x3d\xec\x8f\x21\x0e\xec\x9f\x04\x17\xa6\x12\xf7\x90\x01\xd1\x63\x3f\x4d\xbc\x77\xa6\x13\xf8\x4b\xd4\xd3\xca\x18\x2a\x60\x86\x80\xff\x1e\x7e\x33\xe6\xaa\xe4\x59\xd7\xfd\xd1\xf5\xc9\xc8\x48\xee\xdb\xc2\x7c\x6e\x85\xfb\xb6\x89\x44\x5b\x27\x11\xbf\x65\x94\x33\x65\xea\x2c\x55\xc8\xbc\x89\x39\xb4\xc7\x92\xc4\x9c\x9c\xf6\x55\x30\xfb\x7f\x82\xfd\x87\x22\xc3\xeb\xb7\xb0\xc3\xe4\xa0\xca\xda\xdf\x68\xf3\xaa\x61\x9c\x6b\x2b\xde\xa0\x4a\x14\xc8\x6a\x2a\x92\x8c\x17\xa8\x38\x01\xad\x71\xdf\x43\x17\x3a\xa4\x4c\x80\x56\xe4\xf4\x74\xaa\x7f\x6d\xca\xc1\x40\x26\x12\x1d\xab\x98\xb9\xdd\x09\x85\xe4\x15\x43\x87\x61\xca\x2d\x07\x47\x5d\x89\x6e\x7d\xef\x53\x96\xf4\x8d\xb4\xc7\x8e\x79\x96\x45\x1e\x0b\xa9\x8c\x15\x3c\x05\x7e\xcf\x01\x92\xb9\x4b\xca\x1a\x58\x34\x50\x2d\x63\x57\x42\xc0\xf4\xdf\x1c\x1e\xe6\x85\xe7\xb7\x3f\xfe\xf9\xbb\x3f\xbf\xa2\x7a\x93\x3e\x90\xe6\x11\x84\xd0\xa3\x7a\x9e\xd6\x32\x3a\xb0\x8c\xc6\x3f\x1a\x66\x01\xcf\x00\x27\x7e\x16\xa5\x79\x7e\x25\xdd\x8e\xaa\xc1\x36\xe5\x87\xaa\x22\x4b\xb8\xa3\x55\x7d\x88\x0a\xcf\xc2\xed\x7b\x95\x52\x52\x07\x33\x3e\xe6\x39\x4f\xa4\x9d\xac\x51\x05\x2e\xa1\x57\x9f\xff\x12\xfa\x49\x36\xd7\xcf\x6a\x0b\xb1\x0b\x53\xab\xb8\x36\x16\x72\x2e\x0a\x03\x6e\x5c\xdb\xf5\xb0\xc8\x61\x99\x56\x5f\xe0\xb6\x80\x26\x21\x63\xc5\x03\xdc\x04\x63\x97\x27\xe5\x21\xeb\xb8\x1e\x1b\xbf\x7a\xa9\xb2\x98\x6a\x86\x6e\xb6\x4f\x49\x7e\x3f\xf8\x27\xa8\xd9\x6d\x43\xd5\x6c\x0d\x4f\x3a\x27\x4e\x3c\x56\x1d\xee\x24\x87\x3f\x52\x54\x30\x83\xba\x98\xd4\x54\xcc\x39\x81\x9f\xe9\xdc\x50\x8d\xd5\xe7\xd6\x0c\xfb\x68\x13\x1d\x01\x33\x5c\x18\xdb\x31\x73\xd8\x72\xcc\x87\xad\x05\x8f\x50\x4b\x8f\xe1\x6b\xa1\x46\xa6\x9a\x4a\x32\xdf\xf4\x3c\x1f\xfb\x4f\x9d\xb9\x2f\x6d\x24\x24\xbb\xc1\x9d\xa9\xc1\x54\x35\xd9\xd5\x4c\x45\x90\x9a\x07\xdd\x2c\x3c\x6c\x68\x48\x94\xa9\x39\x2c\x4b\x89\x09\xc4\x28\xcc\x64\x13\x1f\x48\x3c\x89\x24\xb5\x0d\x08\x89\x7b\x6b\x7d\x74\x21\x37\xa7\x1a\xc2\xd0\x34\xd6\xc2\x3c\xac\xa1\x4d\x07\x8e\xbd\x41\x85\x0c\x2f\x2c\x2a\x71\x27\x0a\x96\x7b\x20\x07\xf4\x6c\x28\x7d\x8f\x82\x64\x30\xae\xac\xe1\xe8\x40\x7e\x72\x44\x95\x54\x5a\x9e\x73\x5f\x55\xa2\x12\x0b\x7c\x25\x96\xf9\x96\x8f\x4d\x0f\xbc\x1f\x22\x96\xcd\xd8\xe8\xc0\xd3\xf0\xcf\xd4\xa7\xa5\xc7\x20\xa8\x14\xf0\x75\x10\x7c\xfc\xe4\xa1\x28\xae\x60\xfb\x54\xe9\xe1\x20\xf6\xfe\x7e\x21\x47\xc6\x3a\xba\x5d\x75\x6f\x97\xe8\x77\xa1\xa1\x77\x73\xae\x74\x93\x5b\x68\x79\x51\xf8\x44\x0b\x47\xe6\x51\xd4\x9c\xc2\x6e\xeb\x1e\xf8\xd5\x2f\x43\x5f\x6b\xbb\xd4\xa6\xf3\x93\xd6\x96\x9d\x9d\xcc\xfc\xe4\x1a\x17\x30\xb0\x8c\xcb\x52\x59\x39\x16\xed\x62\xd8\x8e\x1b\x6f\x31\x1f\xd1\x36\x6b\x54\x01\x23\xa0\xa0\xc6\x85\x18\x6b\x2b\xd8\xd1\xc5\x59\x08\xf1\x4f\x6e\x45\xf1\xe6\xf0\xf0\x55\xef\x87\xde\xcb\xd6\x05\x73\xe2\x08\x2a\x47\xd9\xb2\x76\x83\xff\x19\xda\x2e\x1e\x32\x68\xe6\x7b\x25\x94\x18\xe9\x16\x7b\x34\xce\xef\x7a\xaf\x5e\xf7\x5e\x76\x5f\xf6\xfa\xb9\xee\x7d\xdf\xe5\xe3\xf4\xf5\xf7\x6b\x8d\xb6\xec\x8b\x8b\x42\x3f\x4c\x5a\x0e\xd8\x37\x5f\x38\xe6\x35\xc7\x91\x09\xdb\x7e\x14\x4e\xda\xda\xf2\x18\x48\x25\x5a\x7a\xee\x3f\xf8\x76\xb3\x3f\xcc\xde\xea\xc2\x03\xca\x51\x97\x21\x31\x28\xe1\x94\xe5\x4e\x56\x4f\x40\xd2\x6b\x58\x99\x2b\x74\x08\xf6\x5e\xf0\x42\x61\xb8\x0e\x1c\x83\x31\x57\xfb\x3f\x1c\xf8\x5e\xbb\x32\x7d\xe3\x6d\x11\x63\xae\x7e\xec\xe9\x62\x78\x98\x49\x55\x3e\xb8\x3f\xbb\xb9\x93\xbb\xdc\xbf\x7e\x38\xac\x5e\xe8\xfd\xd0\x1b\xd9\x71\xb6\x6e\x50\x83\x54\x43\xa4\x7e\x2d\xc8\xd2\xc7\x50\x9f\x0b\x5f\xd9\x12\x69\xd2\x06\xe5\xbc\xc5\x03\xf8\x78\xc5\xa0\xd9\x82\x3b\x75\x28\x6c\x72\xa8\x4d\xb7\x10\x19\x80\x33\xe0\xc5\x3a\x11\x7d\xc9\x15\x7b\x77\xfe\xe9\x10\x0b\x40\xfd\xc8\xf6\xef\x47\x42\xfc\x36\x39\x58\xe7\x7e\x21\x4e\xc3\xa7\x4f\x4b\x0f\xd5\x55\x68\xb8\xf6\xa9\xaa\xce\x65\xfd\x14\x5d\xcf\x72\x62\x24\x8e\x4b\x5d\x8a\x94\xfd\x95\x5b\xa8\x61\x64\x82\x74\xc6\x93\x44\x18\xd3\x2b\x44\x3a\xe2\xb6\x97\xe8\xb1\x93\xd0\xca\xb1\x8f\xfb\x3d\x14\xaa\x5b\x9a\xc3\x42\xa4\xbf\x8e\xb8\xfd\xd5\x94\xfd\x30\x91\x5f\xab\x1a\x5a\x87\xaf\x0e\xdd\x41\x3b\x2c\x46\x66\x0c\x6c\x71\xbb\x69\xe2\xd5\x5d\x9d\xbd\xd8\xd3\xbc\x6c\x2e\x89\x9e\x71\xb6\x5a\x70\xa5\xf9\xb4\x6b\x11\x75\x5d\x70\xa1\x3a\x73\xf8\x3f\xfd\xbc\x76\x90\x05\x82\xe8\x81\xb3\xbd\x45\x60\xe1\x8c\xd6\xe4\x74\x07\xc3\x47\x15\x31\x2e\x52\x3a\x52\xb5\x28\xf0\x2d\x06\xa7\x7f\xae\xa7\x20\x53\x28\xba\xfb\x27\x8c\xce\x57\x11\xbc\x2f\xa4\xb5\x02\x49\x2a\x44\xf6\xe9\x41\x27\x24\x9d\xb8\x33\x7e\xf3\xe2\xee\xd5\xcd\x8b\x35\xae\xee\xc0\x7f\x66\x99\x3f\xd4\x8d\x84\x46\x89\x4b\x62\x35\xad\x59\xc8\x6b\x0d\xa8\x30\x4e\xd2\xa0\x18\xd1\x2d\x03\x27\x54\xc3\xdd\xce\x89\x69\x53\x4a\x74\xcd\x2a\xa2\x12\x6a\x2a\x5a\x0c\x45\x4d\xbd\x70\x1c\xa0\xa9\xb6\x7f\x96\xa2\x55\x9f\xaa\x20\xfa\x78\x07\xe3\x6c\x40\x73\xa2\x64\x35\xce\x72\x29\x10\x3c\x22\xdc\x98\xe0\x75\xc0\x1f\x1d\x3d\x2f\x3c\x02\x76\x07\x05\x03\x0a\xa8\xab\xf2\x2a\xd0\x8b\x8c\x59\x9f\xec\x3f\xae\x3e\x9e\x1f\xbe\xd3\x3e\x3e\x00\x48\x37\xa6\x2d\x62\x98\x9a\x29\x93\x11\xe3\x80\x88\xe0\xce\xcc\x15\xa0\x2a\x8f\xb9\x92\x03\x61\x1c\x71\x27\xea\x66\xfe\xfe\xed\x3f\x90\xc7\x84\x3c\x60\xc2\xc2\x0a\x31\xfb\x7e\x93\xa9\x64\x66\x64\xe2\xb9\x97\x76\x04\x43\xca\x75\x4a\x83\xbe\x87\xc1\x5a\x7e\x4b\x08\x38\xe8\xea\xce\xe4\xad\x78\xc3\x6e\x00\x18\x33\xfa\xf6\x7f\x3b\xe1\xf6\x7f\x6e\x5e\x00\xa7\x2d\x04\xbb\x81\x72\xb0\x37\x2f\x6a\x89\xe8\x08\x5d\x1c\x19\xe7\xe8\xe3\x18\xbc\x59\xc8\xe1\x10\x52\x65\x20\x67\xe0\x4e\x28\x7b\xe0\x8e\x97\x1c\x30\xa5\xa3\xc6\xa1\x72\x75\xb8\x90\x53\x83\xf9\xfb\xb7\xff\x70\x23\xa9\xcf\x8e\x49\x95\x8a\x07\xf6\x2d\x5e\x68\xc7\x5e\x75\x7a\x40\x9c\xd5\x4c\x94\xe5\x0f\x10\x4b\x33\xd2\x46\x28\xcc\x6c\xb7\x1a\x03\x07\x01\xe5\xe9\x5e\x64\x59\x17\x53\x6c\x52\x76\x8f\xa6\x63\xbf\xa0\x18\x04\x98\xf3\xc2\xce\x21\xa5\xad\xcf\x65\xdb\xdc\x8d\x36\x35\x74\x9f\x4d\x66\xc4\xef\xb6\x30\x70\x63\x0e\xcd\x8a\x88\xf3\x26\x42\x15\x48\x1e\x7f\x36\x2b\x21\x77\x47\x93\xf1\xee\x9c\x76\x94\xd7\x47\x64\xb0\xc6\x6b\x98\xe6\x2b\x21\x60\x06\xa2\x62\x23\xea\x32\xe6\x29\x92\x1f\xae\x1e\x1f\x8f\xd5\x2d\x19\x38\x71\x92\x49\x97\x22\x1d\x00\x9e\x35\xd1\x0a\x3d\x4d\xc9\x1c\xcf\xd2\xa2\x35\x72\xe2\xee\x92\x10\x8b\x2a\x20\xe6\x71\x8f\x6c\x29\x5b\xdf\xba\x4d\x8d\x68\x17\xc1\x39\x47\x96\xc9\xf9\x82\x43\xb3\x29\xdb\xbf\xf8\x7c\xe0\x93\xca\xb0\x82\x75\xc8\x1c\x83\x78\x04\x12\x39\xfb\x13\x70\xbf\x55\xf1\x1f\xba\x80\xf8\x2a\x70\xcb\xf1\x4c\x0f\x35\x21\x93\x6d\xdb\xcd\xb8\xcb\xba\x7c\xce\x59\x97\xbb\xac\xc5\xaf\x25\x6b\xf1\x0f\x0d\xf9\xde\xa4\x8a\xab\xc1\xbf\xf3\x60\xda\xa9\x08\x05\xab\x28\x59\xa8\x29\x7f\x5f\x8b\xbb\x04\x0b\x64\x8f\x5d\x2c\x23\xb2\xdb\x0b\xd8\x98\x41\x5c\x67\x2f\xe5\x66\xe8\xf1\x53\x8b\xd9\xda\xff\xdf\x88\x62\xf1\x31\x1e\x91\x32\x7b\x48\xa1\x7b\x3e\x5a\x7c\x6a\x95\xd7\x86\x9a\x7f\x8c\x35\x5d\xc6\xd7\xc3\xef\x8f\x95\x2a\x3b\x25\x18\xd4\x5a\x6d\x9a\x32\xdb\xec\xfd\x38\xe3\x72\x51\x2a\xd1\xcc\xf6\xc8\x1a\x4a\x23\x8a\xbd\x40\xa1\x29\xa0\x2f\x65\x09\xb4\x40\x0d\xbe\xb9\xd3\x3b\xc1\x60\x27\x18\xec\x04\x83\x9d\x60\xf0\xa4\x82\x01\x90\xac\xd5\x8b\xc3\x90\x0d\x90\x25\x23\x5e\xf0\xc4\x8a\x42\x1a\x2b\x13\x8a\xcb\x24\xf1\x80\x0e\x21\x89\x01\x90\xd5\xc3\x4b\x3b\x7a\x2c\x11\x00\x7f\x01\x02\xfb\x34\x62\x00\x2e\xdd\x23\xc8\x02\x73\xc4\x2d\x98\xda\xa3\x73\xfd\x39\xcb\xf8\xec\x38\x3f\xf2\xe6\xc7\x67\xff\x6d\xb0\xe8\x17\xbf\x48\x46\xe3\x6c\x6e\x99\xf3\xfc\x2e\x69\x87\x4a\x7f\x51\xe8\xbe\xf8\xa2\x88\xf4\xb9\x1b\x41\xea\xed\xe6\xbf\x5f\x0c\x7a\x72\x3b\x3e\x22\x10\x7d\xf7\xd9\x01\xd1\x7f\xa2\xfc\x16\x74\x05\xa1\x30\xd7\x07\x3c\x82\x91\x2e\x6c\x27\xc4\x02\x94\x2a\x15\x85\x01\xee\xe7\x86\x4f\xb2\x0c\x38\x47\x86\xf2\x4e\xf8\xc8\xcd\x80\x66\xbf\x08\xc9\x9e\x9d\x0d\x08\xf2\x05\x00\xe1\x6e\x5e\x5c\x0a\x23\x7f\x73\x1a\x54\x61\x45\x7a\xf3\xc2\x17\x7f\xe1\xca\xc3\xcd\xa4\xa2\xc8\x26\x50\xc2\x62\x8a\x00\x4a\xc3\xfa\x02\x0b\xc2\xb8\x4e\xd6\x09\xcd\x9c\xcd\x02\xd6\x45\xb5\x7f\xa6\x08\xf5\x33\xc9\xd1\x12\x68\xb9\xb9\xef\xd4\x6b\xd7\xcf\xd1\x78\xac\x68\x85\xc6\xb3\xd3\x5f\x9e\x37\x9c\x5c\x05\x91\x30\x47\xfa\x58\x3d\x0b\x65\x75\x99\x63\xab\x01\xce\xb3\xa5\x86\xa8\xb3\x1d\xac\xdd\x1f\x56\x0f\xdc\xc1\xda\xe1\xef\x4f\x2a\xb1\x6f\x1f\xe7\x6e\xbe\x46\xbb\x22\xb7\x9b\x01\x76\xe2\xf6\x51\xab\x5a\xed\xfb\x41\x70\x2b\xa6\xe2\x4e\x26\x80\xa4\x9f\x32\x9e\x65\xfa\xde\xdd\x78\x82\x31\x76\x72\x91\xcf\x7e\xee\x86\x38\xc9\xaa\x9f\x36\xf5\x40\x12\x61\xcc\x07\x00\xf6\x5c\x42\xb5\xab\x96\x55\xd8\x54\xac\xa4\x53\x28\xcf\x98\x6a\x0a\xfa\x6c\x0b\xcf\x10\x47\xfc\x6e\xab\x69\x94\xf8\xb9\x2e\x7c\xae\xfb\xea\x49\x92\x36\x22\x42\xe1\xae\xe7\x86\xa0\x32\xd7\x93\x5c\xa4\xef\x75\xc2\xb3\x66\xfc\xda\x22\x4a\x11\xc5\xc6\x26\x5c\x01\x99\x35\x98\xbc\x83\xfb\x3f\xa1\xea\x28\x6f\xd8\xff\x62\x47\x8a\x89\x07\x69\x80\x13\x90\x4f\x41\xf1\xdc\x8c\xb4\xf5\x1c\x60\xdf\xd0\x0f\x3d\x5a\x69\x4f\x5a\x1a\xcd\xbb\xec\x27\x61\xf9\x41\xa3\xcf\x8b\xcf\xc7\x6c\x7f\xe6\x21\x6f\xb6\x4c\x4a\x63\xf5\x38\x70\xa1\x43\xfa\x3c\xe2\x35\x56\x80\x55\x90\x03\x4f\xa9\x52\x50\x51\xee\x28\xcb\x47\xfc\x00\x01\xd8\x52\x2c\x62\x59\x1a\x31\x67\x32\x40\xcd\x10\xda\x82\xe7\xee\xc0\x17\xd2\xa9\xbe\x0b\xe1\x73\xf6\xeb\x5d\x9d\x84\x6d\x65\xba\x60\x47\x6a\x82\x8f\xab\x9f\x0f\x3c\x20\x5b\xe5\xe4\x07\x48\x7d\x48\xa3\x27\x41\x8e\xa2\x32\x32\x28\x46\xa0\x98\x29\x73\xa7\x96\x34\xe2\x2a\x61\xaa\x86\x0a\x46\x48\x8b\x50\x3a\x88\x6d\xc4\x38\x40\x54\xd0\xf5\xe9\x73\x03\xc5\x47\x42\x14\x59\x04\x0b\x36\xbb\xbf\x00\x1a\x37\xf3\x69\x05\x4a\x90\x63\xd4\x76\x27\xbe\xac\x71\x41\x41\x8f\xb4\xe4\x28\x0f\xc4\x8a\x72\x99\xb9\x85\xf4\x10\x72\x21\xec\x1b\xf1\xe3\x20\x88\x2d\x54\x63\x40\xd0\xf0\x0e\x68\xf3\x19\x87\xf0\x19\xbf\x10\x90\x1e\x10\x8f\x08\x36\x2e\x7c\x26\xae\x08\xdd\x5c\xe9\x0a\xb3\x7c\x8e\xea\x5c\x89\xae\xeb\x5e\xcb\x4b\xea\x21\x02\xce\x5a\x6c\x78\xbb\x0c\xe9\xe2\x0d\xdb\xdb\x58\x2a\x39\x2e\xc7\x51\x3e\xf9\xe3\x53\xc5\x6a\xfe\xb3\x15\xd3\xe9\x80\xea\x56\xab\xb3\x48\xbe\xe1\x7d\x91\xb5\xaa\x84\x79\x14\x41\xb8\x4e\x10\xc0\x35\x64\x23\x42\xcc\xa3\x01\x2c\x1d\xc7\xd4\xfa\x12\xea\x30\xcd\xd9\x64\x9a\xff\x71\xc6\x8d\x39\x5f\x2d\xdc\xee\x2a\x7a\x35\x54\x74\xad\x9c\xcb\x60\xfa\xdc\x62\xaa\xbf\xfb\x4c\x93\x39\xb5\xcf\xed\x74\xcc\x76\xc9\xdc\xaa\x86\x41\x85\xbd\x87\xf8\x52\x2a\x7d\x57\xd9\x34\xe6\x4c\xf6\x33\x28\x0d\x7a\xc0\xde\xca\x4c\x50\x91\x4e\x69\x80\x28\x3b\xc2\x01\x28\x24\x8e\x1e\x48\x95\x64\x65\x8a\xf5\x50\xd0\xbd\x08\x61\xa8\xeb\x4e\xad\xc5\xb6\x7d\x0e\x0d\x7d\x1e\x2f\x9d\x8a\x7a\x49\x37\xf7\x60\x2a\x3a\xab\xcf\x93\x5b\xd4\x7f\xa4\xa1\x99\x7e\xa1\x98\xb2\xd8\x7c\xbf\xaa\xa4\x18\x60\x79\xe6\x81\xf0\xcc\xb3\xde\x3f\x89\xdc\xc7\x13\x5b\xf2\x6c\xae\xd8\x57\x6d\x81\x00\x41\x61\xc4\xb7\xaa\xd6\x7f\x59\xf1\xef\xf7\x03\x75\x72\x59\xe7\x49\xb4\x69\x35\x88\x93\x86\x45\x94\x02\x42\x1e\x13\x9e\x84\x8e\x72\xe5\xbb\x98\x6f\x0b\x02\x61\x66\x25\x7b\xad\x9b\x0f\xca\x20\x55\xff\x5e\x64\xa1\x4a\x2d\x7b\x35\xfb\xf0\xde\xb6\xab\x5a\x2f\x76\xf0\xb4\x3c\x77\xb5\x47\x4f\x09\x60\xd2\x06\x62\x01\xe1\x15\xe6\xf8\x1a\x03\xa4\xc2\xcc\x85\xf8\xa2\x84\xf8\x5a\x8c\xf3\x8c\xdb\x55\x22\x7d\x6b\xef\x61\x51\x31\xd4\xb7\xf2\x42\xa7\x65\x32\xcd\x7c\xd0\x58\x4d\x51\xcd\x4e\x36\x8e\x52\x25\x4e\xf3\x91\x18\x8b\x82\x67\xa4\x76\xb4\x2d\xdb\xf9\xe5\xe2\x13\x3e\x44\x40\x90\x08\xd7\x4b\xf8\xe7\x4a\xa3\x19\x9c\xa0\x24\xfc\x0d\x4b\x74\x2e\x41\x4a\xf0\xac\xf9\xf3\x31\x0a\x11\xa0\x4d\x40\x19\x47\xdb\x63\xe7\x9a\x81\x03\x8c\xf0\x6f\x11\x88\x22\xcb\xf4\x3d\xa9\x1b\x95\x8a\xe1\x06\x59\x81\x4f\xfb\xc2\x71\x73\xdd\x81\x5f\x20\x6a\xe1\xba\xd2\xb4\x92\xaa\xf0\xdb\x2c\xb1\x04\xcf\x3f\xc0\x83\x50\xde\x14\xe9\x73\x90\x8b\x83\x0b\x57\x2a\xd4\x6f\x1a\x4b\x88\x7e\x31\x61\x2b\xfc\x5b\xb2\xcc\x3a\xe9\x80\x0e\x27\xf6\x6c\x9c\xc0\xe4\x97\x15\x0b\x92\xce\x39\xa2\xb8\xe8\x46\x53\x62\xd6\x48\x2c\x29\xf2\x34\xdb\x0c\x08\x2b\xfe\x28\xbe\xa4\xf8\x8e\xac\x7a\x61\xe3\x77\x2b\x79\x91\xbc\x7f\x18\x34\xe7\x96\xd5\xa7\x3b\xba\x35\x0b\x49\x26\x94\x26\x45\xec\x65\x20\x55\x4a\xe2\xa7\x2e\x55\xca\x2e\x3e\xa3\x8b\x46\x97\x48\xf7\x78\x60\x44\x21\xb8\x52\x43\x61\x87\xe5\xe3\x92\xa6\xc3\x84\x01\x5b\x3d\xcf\xb2\x49\x87\x71\x76\x5f\xf0\x3c\x17\x05\xe3\x05\x7c\x8c\xfc\xc4\x4d\x71\x9e\xea\x5c\x54\xa1\xb1\x46\x8f\x85\x56\x82\x89\xcc\x08\xb6\x5f\x45\x6f\x1e\xb4\x41\x48\x76\xe3\x6a\x21\x8f\x1f\xfb\x76\x5e\x22\xf5\xe9\x6d\xf3\xce\xd7\xcc\xc5\xc5\xf2\x63\x88\xbe\x0b\x45\x7e\xf1\x0c\xfb\x28\xd4\xa7\xf5\xfb\xb4\x74\x7a\xa7\x1f\x55\xb6\xac\x40\xc3\x2f\x50\x14\x50\xa3\x8b\x45\x40\xf8\x8c\x7b\xcb\x49\x1c\x54\xbc\x96\xac\x56\x1f\xe0\xe0\x04\xd0\x3d\x36\xe0\x99\x99\x27\x6d\xb5\xc0\x04\x9d\x7d\x29\xab\x3d\xdd\xf6\xcd\x5c\xd1\xc1\xbb\xdc\xb7\xbb\x73\xeb\x7e\x25\x6e\xdd\xf7\xf3\x9c\xba\xdb\xd4\xfb\x1e\x57\x52\xdf\xb9\x6c\x77\x2e\xdb\x9d\xcb\xf6\xc9\x5d\xb6\x8f\xef\xad\x5d\xd1\x51\x0b\x3e\x5a\x92\x72\xda\xe4\x28\x3d\xbe\xc1\x8d\x67\x19\x83\xa2\xb1\x91\x85\x8d\xfc\x7f\x04\x62\xf7\x58\xc6\xb5\xa7\x36\xad\xf1\x7b\x73\x9a\x71\x63\x65\xf2\x53\xa6\x93\xdb\x2b\xab\xa7\x31\xe5\xda\x23\x0f\xfe\x72\x35\xd5\x59\x4d\xad\x58\xe8\xaf\x98\xf1\x72\x6c\xf3\xe0\x8a\x1d\xfd\x72\xc5\x4e\xa4\xb9\x8d\x89\x35\x8a\xe6\x31\xac\x22\xf7\x15\x33\xf6\x0c\x20\x17\x85\x18\x48\x72\x79\x29\x26\x1e\x72\x6d\x2a\x0c\x46\xd0\x20\xd6\xdc\xce\xb0\x87\xf7\x46\xe0\xe8\xfb\x6e\xf4\x06\xd6\x71\xf6\x8a\xff\x56\x16\xc2\xcd\x62\xfd\x65\xf6\x3d\xb4\x5f\x5b\xff\x46\x73\x41\xdd\xef\xec\x84\x5b\x8e\xeb\x0a\x87\xdb\x7b\x3f\x61\xed\xdc\x9a\xf5\xa5\xd7\xc0\xe2\x15\x5b\x30\xbb\xb7\x72\x1a\xd9\x7b\xb5\xd9\xb9\x1e\xa6\xc8\x44\xcb\x79\xba\x77\x67\xce\x13\x1e\x38\x36\x2e\x13\xb1\x85\xa9\xfe\x7e\xac\xd2\x47\xb3\x2a\xd8\x4f\x91\x55\xc8\x6c\xf3\x86\x6a\xc8\x6b\xf3\xe0\xe4\xcf\x03\x8e\x5b\xe4\xa3\xc1\xfa\x8e\xe6\x63\x91\x8f\xde\x5e\xad\x71\xa6\xf0\xc5\xda\x81\x62\xee\x37\xf6\xf6\x6a\xc6\x21\x02\x82\x64\x46\xbc\x80\x8c\xdb\x5c\xa7\x7b\x06\xe0\x6f\xad\x1c\xcf\x43\xb0\x96\x2a\x15\x2b\xbb\x88\xab\x79\xc1\xeb\xeb\xcc\x0b\x5e\xac\xcf\x0b\xc7\xe2\x39\x5e\x20\xaa\xc1\x02\x83\xa1\x11\xa1\x20\x51\x4c\x5d\x67\x1e\x12\x02\x0b\x0a\x85\x87\xc6\x13\xf3\xaf\xac\x8b\x5f\xe9\xe6\xe9\xe1\xe5\xe9\xd1\xc9\x87\xd3\xde\x78\x4e\xd9\x24\xd0\xab\x2f\x61\x21\xd6\x5b\x9c\x55\x42\x7d\x8e\xe9\x63\x80\x8e\xe7\x6d\xc8\xac\x2f\xbb\xa9\x2c\x44\x82\x17\x3a\xf8\x44\xfb\xc2\xde\x0b\xa1\xa6\xd5\x6b\xb7\x54\x73\x0c\x91\xa7\x0f\x39\x5a\x57\xad\xf6\x05\x0c\x95\xcc\xd0\x5c\x0b\xc6\xae\x1e\xf9\x60\xa6\x5d\xb1\x98\x62\x25\x9d\xca\x7c\x87\x8e\xd9\x6a\x04\x68\x20\xbb\xf8\x7c\xbc\xcd\x6b\x4a\xf3\x9c\xb3\x2d\x46\xae\x7f\x5c\xaf\xce\xd6\x39\xab\x57\x67\xf1\x41\xf5\xc1\x7a\x9e\xfb\x8f\xb8\x4a\xb3\x90\x99\x1e\x22\x83\xdc\x5b\x69\x21\xef\x44\xc1\xf6\x7f\x12\x96\xfb\xd8\xa4\x83\x39\x04\x7d\xb0\xbe\x2d\xfb\xed\x71\xeb\xb9\xbc\x3d\xae\xdf\xb9\xb7\xb2\x5f\x08\x76\x3c\xe2\x4a\x89\xec\x11\x24\x9b\x39\x73\xcd\xc4\xc3\x14\x0c\xcb\x8a\x73\xce\xc4\xc3\x1a\x7b\xf9\x36\x7c\xb9\xbe\x0e\x43\xa1\x44\x21\x93\x2a\xd1\xb0\xb1\x10\x11\xce\xcb\x61\x58\x14\xb4\x69\xc2\xa6\x8b\x84\x82\xb7\xf2\xac\x1c\xca\x79\x1e\x8b\x41\x06\x08\xbe\x1b\x4c\x1a\xde\x5f\x61\xb6\xd0\xbe\xb1\xe5\xf4\x63\x93\xce\x2e\xdb\xe2\xe9\xdd\x05\x2b\xb8\xb4\x06\x0b\x95\x91\x29\x3d\x15\xb9\x50\xbe\x5c\x99\x08\x5f\xa3\x40\x39\x66\x48\x02\x22\x37\x2e\x02\xfc\xcf\x5e\xad\x61\x12\x49\x61\x1b\xc9\xac\xef\x8e\x4f\xeb\x3d\xb5\x5e\xc1\xa9\x37\xeb\x6b\xf9\xee\xf8\xf4\xd1\x74\x82\x39\xa8\x17\x1b\x2b\x0b\xc3\x44\x54\x34\x37\x75\xcb\x3a\x7b\xf5\x11\x7d\x63\x03\xa1\xe7\x9d\xef\x61\x8d\x7b\x1a\xde\x6d\xac\x77\xf8\xb9\xe1\x1d\xa9\x2f\x77\x90\xa8\x37\x5d\xd7\xa6\x08\x41\x6b\x78\x18\x16\x67\x99\x10\xe1\x46\x32\x0b\x8d\xb1\xf5\x22\xfe\x95\x3a\x68\xbd\x72\xfe\x85\xfa\xc2\xa1\x18\xa1\x8b\x49\x2c\x2f\x4e\xaf\x05\x03\xe3\x94\xd3\x1b\x18\x54\xae\x45\xfc\x15\xb8\xd7\xe8\x0d\x1f\x94\x19\x96\x14\x82\x82\xc3\x50\xf1\xcc\xbf\x03\x85\xa8\xe0\x44\x0b\x0c\x04\xd6\x2a\x9b\xfc\x9f\xec\xa3\xea\xc2\x76\x78\xb6\xd9\x0c\x49\x05\xaf\xa5\x9a\x00\xf2\xa0\x7b\xfb\x97\xb3\xf7\xef\xd9\xf9\xc7\x6b\xf6\xcb\xc7\xcb\x9f\xd1\xa5\x39\x2e\x33\x2b\xf1\x5b\x01\x13\x66\xc3\x4b\xe0\x86\x94\x47\x78\xa4\x0d\x13\xb8\xd9\x44\xca\x38\xbb\x5a\x4f\xce\x80\xf7\x1a\xba\x23\xfe\xf6\xd4\x24\x66\x4e\xfa\xad\x4e\x78\xb6\xf6\xaa\x40\xf4\x7b\xeb\xb5\x80\xd6\xf1\x5a\xe0\x01\xce\x26\xdd\x30\x6b\x7f\xa0\x00\x02\x13\x0b\x37\x0e\x60\x04\xf3\xea\xfa\x3a\x1d\xe2\x63\xde\x26\x68\xa9\xca\x5a\x23\x1d\x0b\xdf\xea\x30\x40\xe1\xfe\xfb\xcd\x8b\x42\xdf\xbc\xe8\xb0\x9b\x17\x46\x0f\xec\xcd\x8b\x7f\x60\xb9\x54\x0a\x58\x10\x29\xeb\xd2\x7b\x58\x33\x55\x8e\xf3\x6c\x02\x11\xd5\x4c\x0e\x20\x39\x18\xaa\xef\x41\xf3\x2d\x8a\xcd\x87\xdf\xc0\x47\xbb\x34\xd8\xa7\xb6\xe5\xa9\x0d\x38\xc5\xf9\xdb\xab\xd6\x27\xe3\xbc\xa1\x0e\x2b\x76\x3e\x4b\x17\x7e\x3c\xfe\xe9\x26\x3a\x7b\x05\x74\x2a\x8e\xfc\x11\x5c\x77\x29\x48\xfd\x8a\xbb\x5a\xb8\x1a\x51\xc3\xe0\x01\x4d\xb4\x32\xb6\x80\x52\x9f\x48\x2c\x32\x39\x96\x16\x83\x85\x15\xc5\x6e\x56\x41\x0f\x64\x5a\x46\x3b\x30\x05\x9b\xd4\x71\xd9\xd5\x20\x2b\xab\x90\x8a\xaa\x9a\x1c\x78\x00\x75\x4a\x1f\x09\xa5\x88\xbd\x9d\x7c\xe6\x22\xe5\x0d\xba\x78\x89\xce\xfa\x0b\x9d\xc9\x64\xa9\xdf\xdd\x7d\x66\xc4\xf3\x5c\x28\x33\x07\xf1\x08\x15\x5a\x42\xcd\xa7\xc0\x19\x27\xa1\x56\x11\xd0\x32\xf5\xd7\x19\x82\x62\x2e\x05\x84\x3b\xed\xa7\xde\x45\xaf\x0b\x86\xe5\x3c\xb3\x49\x88\xbf\x69\x12\x73\x73\xd0\x61\x27\x8e\xda\x8a\xfa\x8b\x54\x71\x0b\xde\x8d\x91\x21\x67\xbd\xef\x08\xf3\x25\x15\x26\xda\xaf\x8a\x03\x1d\xf4\xc2\xaf\x3e\x7f\xa5\x62\x95\x14\xce\x4d\x53\x45\x55\x23\x0e\x98\x84\xe5\x6f\x7e\x6c\xbb\x29\x07\xb0\x90\x8e\x56\xac\xec\xbc\xcb\x47\xda\x6a\xb5\x25\x89\xfe\x62\x46\x67\xad\x49\xc8\xac\x97\xeb\xe2\x12\xb6\x38\xae\x92\x7b\xa2\x83\xe6\x44\xe6\xd5\xac\x53\x73\xd6\x43\x17\xf6\x5e\x17\x9b\x2a\xc2\x17\xb5\x6e\xda\xcc\xbe\xf6\x42\x7d\xde\x7e\x4c\x6b\x19\xe1\x66\x4f\xf3\x5f\xa5\xee\x4f\xec\xfa\xf3\xfb\x4f\x7c\xbf\xf5\xf4\xa8\x7d\x7d\x5e\xfe\xc7\x6d\x98\x4c\x8b\xfe\x94\xeb\xbf\x7d\xc2\xd1\x4f\x27\x6b\x08\x86\x97\x3f\x9d\xd4\xa7\x73\xc9\x53\x6d\x18\x78\xaa\xd8\x89\x98\xe3\x51\x58\x34\xb3\x95\x94\x9d\xa2\xbf\xd4\x56\x6a\x12\x9e\x89\xb3\x8f\x6b\xaf\xcb\x15\xbe\xbf\xc6\xda\xd0\x9b\xf5\xf5\xf1\x3f\x4e\xb3\x87\x79\x07\xfa\xe7\x40\x0f\x91\x43\x6e\x37\x1b\xa9\x96\x89\x54\x07\x97\x9e\x1e\x62\x5f\x64\x5a\x0d\x4d\x8f\x9d\x8e\x73\x3b\xa1\xb0\x11\x8f\x67\xc2\x6d\x8d\x77\xa7\x5a\x18\x4a\xe1\x73\x2f\x21\xdc\xcc\xa4\xf6\xbd\xb5\x20\x4d\xe0\x75\xbd\xbe\x40\x47\x03\xf8\xb8\x8e\xcb\x23\xbc\xdb\xd8\xd3\xf0\xf3\x02\xd5\xdf\x1d\xfe\x05\x8a\x90\xdf\xf0\x10\x6e\x9b\xeb\x74\x95\x9b\x10\x16\x66\xd9\x7d\xd8\x24\xa7\x4b\x46\x80\x67\xa0\x28\x58\xa1\xd2\x60\xb8\x87\x88\x74\x50\x79\x38\x95\xa0\x87\x00\xe1\x2a\xa1\x4b\x43\xe6\x6c\x21\xc6\x4e\xac\x91\x8a\x15\xfc\x9e\x81\x57\x18\xd1\xa1\xd6\xcb\x02\x5b\x37\xff\xcb\xe4\x23\xe1\xbd\xf0\xeb\x8b\xc4\xd4\x8b\x2c\x6c\xc9\xb3\x95\x38\xfd\xe7\x78\x00\xf5\xf3\x74\x77\x05\x8f\x36\xe5\x74\xff\x47\x63\xd6\x9b\xc6\x5c\xae\x9c\x3e\xb6\x46\xe6\x58\xab\x24\x84\x36\xb0\x54\x47\x6c\xb4\x22\x30\xd5\xfd\xa8\x26\xc2\xc2\xf9\xf6\x95\x44\xdc\xe9\x5c\x47\xac\x6c\x9b\xc2\x42\x83\x9a\xbe\x62\xa1\x5a\x76\x87\xe2\xbe\xb1\x84\x88\x93\x74\x3b\xee\x3e\x05\x75\x02\x4c\x64\x5b\xcf\x1c\xc5\x19\xac\x13\xac\xbc\x1c\xa1\xeb\x12\x41\xb5\x20\x0e\xb1\x5f\x48\x31\xa8\x42\xfd\x6a\x30\x5c\x15\x48\x85\xe3\x1f\x3e\xfb\x9b\x63\x08\xa3\x63\x3e\x5e\x33\x42\x62\x9a\xf3\x82\x7c\x1f\x29\xb3\x32\x9d\x38\xa1\x38\xcf\x20\x36\x11\xb3\xb1\xde\x9f\x3d\x59\xee\xcf\x32\x4d\x60\xfe\x55\xba\x9c\x16\xf9\xd9\x02\x99\x3f\x84\x40\x2c\xbf\x3e\x03\x73\x3d\x03\xdc\xab\xe9\x9d\xa9\xe8\x2f\xc4\xfc\x5b\x8d\x84\xa7\xc7\x3e\x90\xe6\xc7\x63\xc2\x0e\x6d\xa6\x74\x41\x20\x4b\xa1\x5c\x57\x00\x72\x3e\x7d\xe8\xb1\x9b\x17\xe2\xc1\x7e\x8f\x86\xaa\x87\x81\xc1\x7f\x28\xeb\xfe\xd5\x63\x67\x8e\xdc\x27\xd2\x66\x14\x4f\x5a\x04\x0e\xe3\x5f\x73\xb7\xa4\x54\x01\x57\x60\x9d\xab\x99\x2e\xad\x2c\x77\x76\x42\x7c\x9c\xaa\xc5\x09\xb3\x7c\x23\xb6\x5b\x9a\x0a\x06\x49\x7f\xae\x1f\x39\xaf\xd3\x45\x24\x5b\x53\x24\x70\xe2\xe6\x93\xf8\x38\x98\xaa\xac\x0f\xae\x41\xc2\x15\x2b\x4a\x85\x35\x89\xd0\x86\x75\x8d\x31\xeb\x15\x9a\x83\xb7\x48\xf4\x27\x14\xe5\x8b\xc1\x32\x64\x93\x01\x96\x65\x35\x96\xcc\xdb\x85\xd9\x3f\xeb\x30\xfb\x5d\x08\xf9\xd7\x12\x42\xfe\xc7\x46\x7f\xd6\x69\x2b\xac\xe7\x5a\x58\x75\x0c\x25\x35\x05\x01\x33\x27\x1e\x76\x9b\xeb\xe1\x66\x0c\x85\x94\xea\xf0\x98\xdb\xc5\x76\xd6\x69\x0b\x24\xe7\x0f\x8e\x7d\x4f\xd7\xac\xaf\xc4\xf7\xb0\x24\x18\x5c\xc1\x2d\x87\x0b\x1c\x2e\xa0\xa3\x91\x29\xe8\x75\x6b\x16\x75\x78\x9a\x75\x5d\x26\xe5\x3d\x7e\x1e\x82\x4e\xb7\x9c\x76\xa0\xd3\x19\xce\x9e\x59\xac\xdf\xbb\x25\x91\x94\xc3\x38\xa1\x24\xbb\x63\x67\x88\x61\xee\x1b\x44\xae\x95\xa2\xcc\x44\x1b\x16\x1e\x4a\xe9\x9e\x40\xd6\xf4\x55\xe8\xe1\x6c\xa8\x74\xf8\xf9\xf4\x41\x24\xa5\x5d\xce\xe7\xaf\x2b\xff\x0e\x14\x17\xcc\x32\xaa\xd5\x0b\x98\x4e\xf4\x80\x7c\x3e\x3a\xf8\x92\xb8\x65\x86\x5b\x69\xa8\x56\x66\x98\x8e\x78\x70\xdc\xc7\x80\xaf\xa5\xc2\xa7\x82\xd3\xe9\x9d\x4b\x1d\xd6\x2f\x2d\x93\x96\xd0\x9e\xb4\x36\x82\xea\x63\x51\xba\xad\xd4\xc0\xfd\xc1\x6d\x0a\x25\x39\x8b\x80\xef\x13\x75\x8f\xe9\xd0\xd5\x6b\x4e\x69\x71\x37\x2b\xac\x8e\xd7\x8f\x5d\x37\x60\x3d\x71\x7f\x0c\x41\x98\x32\x8e\xcd\x8d\x5d\xa7\xf7\x42\x0e\x47\xd6\x74\x98\xec\x89\x1e\xe8\x3b\x82\x27\xa3\xa8\xdb\xb1\x10\x16\xf3\x33\xa2\xc2\xaf\x7e\xc3\x22\x0c\x29\xb6\x1f\xb8\x31\x71\xce\x4e\xc0\xe4\x69\xee\xd3\xcc\xe5\xea\x30\x61\x93\xde\x41\x87\x25\x7a\x9c\x97\x00\x13\xe6\xc6\xd8\x9f\x30\x69\xbd\xa8\xef\xcb\xc5\xc3\x52\x78\x54\x35\x2f\x80\x51\xc5\x4d\x95\x32\x9e\x42\xcc\xe8\xcd\x0b\x9c\xdd\xcd\x0b\x2f\x55\xb9\x0e\xa9\x8c\x26\xcc\x70\xc4\x0d\xee\x2c\x5a\x27\xc7\xdc\x26\xa3\x00\x5a\x58\x14\xc2\xe4\x1a\xc3\x4f\xf3\xea\xe4\x5f\x8b\x62\xfc\x97\xd0\xc5\xbe\x39\xa8\x16\x77\x24\x87\x23\xbf\xb6\xbc\xc0\x4c\xd9\xfa\x9e\x6c\x19\x8a\xe3\x17\x98\x9f\x48\x2f\xea\xc3\xdb\xc8\xa9\x3d\x6f\xd3\xd6\xba\x5c\x84\xd4\x16\xf6\xbb\x76\x62\xe6\xdc\x0f\x58\x3a\x47\xec\xc7\xc2\x32\x77\xcf\xaa\x73\x63\xe5\x58\x74\x82\x15\x33\x06\x73\x6b\x68\x03\x36\x94\xe9\x5e\x6b\x04\x09\x14\x20\x47\xdd\xd0\x8f\x42\x8f\xdd\x57\x9d\xb0\x48\x60\x0d\x6e\x08\xc2\xaf\x03\x55\x2b\x4f\x4b\x41\x5e\x5a\x9d\x12\x1c\x18\x0a\x8c\x07\x9d\x88\x3f\xc1\xcd\xd7\x45\xe0\x6a\xb6\x80\xfa\xa4\x80\x30\x87\x5e\x58\x71\x27\x13\x5b\xc5\x1c\x7a\x97\x2e\x4e\xe9\x17\x02\x80\x29\x04\x2c\x15\x84\x0a\xe5\x59\x75\x23\xf0\x53\x99\x34\x78\x39\x14\xa5\x5a\xc5\xe7\xd9\x7d\xcd\xdd\xf3\xc6\xb9\x86\xfe\x80\x48\x1b\x88\x9c\x26\xb2\xe0\x6e\x3f\x16\x73\x0e\xfe\x59\xa0\x7d\xd3\x2a\xf2\xc6\x19\xab\x9b\x1e\xe4\x8d\x4d\x2b\x8d\x01\xcc\x67\x73\x27\x55\x99\x2f\x61\x43\x58\xc0\xbe\x72\x3a\x81\x3b\x4c\x8e\xac\x03\x41\xf1\x2a\x4b\x16\x23\xc9\xb1\x42\x64\x18\x5c\x4e\xa7\x75\x28\xef\x84\xaa\x70\x04\xf6\xcd\xc1\x41\xe4\xfb\x70\xa7\xa0\x02\x9b\x4f\x74\x37\xd3\xe0\x3a\x67\xfb\xfe\x60\x43\x79\x5d\x77\x98\x6a\x0f\x95\x95\xdd\xaa\x85\x23\x54\x1d\x86\x35\x7d\xa3\x66\x10\xc1\x8a\xb5\x70\xb9\xf1\xf1\xa9\xa8\x92\x03\x95\xbc\x87\xb9\xdc\x79\x1b\x7a\x98\x0b\x12\xbe\x5b\x31\x61\x37\xe5\xcb\x97\xdf\x25\x56\xe7\x3a\xd3\xc3\xc9\xcf\x62\x02\x3f\x88\x88\xa0\x72\x82\x88\x99\x60\x97\x5a\x11\xc9\xc5\x9b\xe2\x59\x4b\xb4\x90\x32\x8c\xa4\x4d\x55\x87\x18\xa3\xef\x99\x60\xff\x85\x73\x11\x14\xe6\x4e\x30\xfc\x26\x8e\xbc\xb8\x69\xce\xf1\xb9\x55\x05\x61\x97\xd0\xd7\xaa\x61\xa0\x65\x9e\x99\x45\x8f\xa6\x4f\x1f\xcf\xf3\x4c\x22\x30\xe1\xbe\xdf\x24\x3e\xe4\x52\x19\x7b\xf0\x17\xa6\x4a\xc7\xee\x0b\x26\xc0\x1b\x47\x09\xc0\x5c\x19\x76\xf3\xc2\x9f\xc6\x3d\x53\x7d\xe0\xe6\xc5\x53\x07\x5e\x45\x27\x6d\xa9\x74\xb7\xd5\xdb\xe3\x49\xb2\x59\x74\xb5\xa7\x8a\xcc\x57\x5b\xf1\x28\xb7\x2f\x5a\x8d\x36\x37\x4e\x4d\xaa\xfb\x96\x61\x82\x4c\xe3\xc6\x79\x3f\x6c\xdc\x31\xc5\xb0\x12\x8a\xd1\x96\x6b\xe5\xc7\xfb\xb9\x05\xbb\xe4\x91\xb2\xb2\xad\xa2\xa2\xac\x6c\xa1\xad\xd4\x5a\x7d\x25\x2a\x4b\x7c\xba\x77\x7a\x4b\x3b\xbd\x65\xde\x9a\xed\x94\x97\xf0\xf3\xd7\xa7\xbc\xd4\x36\xfd\xcb\x69\x30\xab\x0f\x63\xa7\xc6\xfc\x81\xd5\x98\x56\x25\xd7\xa2\x66\x15\x18\x87\x0f\x5f\xf0\x80\x6f\x3e\xc0\x22\x89\xf1\x4c\xbd\x20\xd8\x82\xf9\xed\x8a\xae\xed\x8a\xae\x6d\xa7\xe8\x9a\x56\xa2\x7b\xaf\x8b\xb4\x13\x85\x74\x44\x35\xd4\x6a\xeb\x35\xa3\x8e\xda\xb6\x2a\x9d\xcd\x2e\x4d\xe9\x01\x75\x6a\x7e\x8c\xea\xa8\xb1\x63\x4c\x3a\xb8\x2e\xdc\x4c\xde\xf2\xcc\x88\x0e\xfb\xa4\x6e\x95\xbe\x5f\x3d\x41\xe3\x5e\x17\xb7\x99\xe6\xa9\x39\x74\x12\x80\xfb\x4f\x37\x93\x03\x0c\xa2\xff\xc6\xfd\x15\x81\x15\xaf\x3c\xe9\x59\x45\xda\x9a\x12\xe8\x24\x0f\xb9\xf2\x1e\xbc\xb1\x31\xdd\x2f\x3e\xa3\xb6\xba\xc7\x23\x95\x8f\xd3\xe9\xc9\xf9\xd5\xb1\x56\x03\x39\x5c\x4c\x81\x43\xb3\x5a\x9c\xc1\xc9\xf9\x15\xcb\x79\xc1\xc7\xc2\xb1\x31\x8a\x6a\xd3\x98\x3a\x98\x7a\x8a\xa0\xc9\xce\x04\xa9\xdc\x15\x6c\xea\xc9\xf9\x15\x26\x97\xb4\x20\xce\xa0\x9b\xa2\x9b\xbc\x75\x86\x98\x1b\x1b\xa0\x63\xe2\x8b\xec\xec\xc2\x8d\xc9\xc9\xc2\xc2\x90\xd7\xce\x23\xdc\x42\xe6\x4a\x5a\x45\xaa\xf6\xdd\x95\x8d\xbe\x39\x7f\xe8\xec\xa4\xcc\x33\x89\x3a\x72\xfc\x42\x85\x9d\x3b\xd6\x77\x6d\x39\xf7\x16\x6d\x0f\x7a\xc5\x74\x3a\xb7\x58\x4e\xc5\xc8\xdc\x4a\xd1\xcb\x8d\x45\x02\xb4\xea\xb4\x12\xc5\x61\x91\x7c\xc6\x4e\xab\x05\x12\xca\x16\x60\xfa\x69\x2c\x0e\xbb\x74\x5f\x46\xd1\x2e\x74\x08\x96\x46\xa9\x18\x25\x06\xe2\x4b\xfa\x4e\x14\x85\x04\xed\x49\x1b\xd2\xa1\xdc\xe6\xf1\x60\xcf\x80\x51\xcd\x38\x5a\x8b\xd6\x7d\x15\x89\x29\xdc\x03\x1c\xd7\x46\x9b\x64\x04\x2f\x9c\x36\xb4\xd2\x2e\xe1\x4b\x2c\xd5\x63\x10\x83\x1c\x47\x19\x69\x63\xbb\x70\xd4\x33\xad\x6f\xcb\xbc\xcd\xe9\xa6\x6e\x72\x6e\x47\x2d\x77\xaf\xf6\xc6\x17\x39\xdf\x5b\x90\x37\x9b\xdb\xd7\x8e\xe6\x61\xe3\x40\xf9\x66\x5d\x96\x40\xfb\x5a\x52\xb3\xa5\xe1\xa1\xc8\x05\xd6\x89\xed\xe6\x59\xb9\x41\xf9\xd2\xd5\xd7\xf4\xec\x62\xc1\x32\x56\x54\x37\x2e\x7f\x8d\xb6\x10\x22\x07\x74\x73\xf7\xf3\xac\x2c\x78\x76\xc0\xa0\x4b\xd2\x0e\x7b\xec\xd4\xa9\x4e\xae\xe9\xc4\x07\xbe\x9b\x37\x37\x8a\x31\x76\x76\xf1\x86\x1d\xa9\x88\xac\x83\xd9\x0f\xcf\x6a\x9c\x4b\x7d\xa9\x4b\x0b\x72\x22\xb7\x2c\x13\x4e\xd8\x72\x24\x8c\x3e\xea\xd3\xd6\x97\x6f\x9a\xcc\x97\x6c\x99\xcc\xc1\x32\x57\x1b\xd1\xfe\xd9\xc5\xdd\xf7\x4e\xfb\x3c\xbb\xb8\x7b\x7d\xc0\xb8\x31\x72\xa8\x6a\xe3\x7b\xaa\x60\x5c\x9d\x2e\x03\x0d\xc6\x16\x0d\x9c\x60\xb0\xfe\xef\xc2\x15\x9f\x71\xb8\xe2\x4a\xa8\xc0\x6e\x3b\x1f\x79\x2e\x5b\xe7\xb8\x3b\x3c\xe0\x5d\x30\xe7\x0e\x0f\xf8\x29\xe2\xf0\x1e\x01\x02\x58\xa7\x97\x82\xa7\x8e\xd0\x9b\x77\x4b\x4a\xbe\x34\x9a\xd6\xeb\x5c\xd5\xaa\x8d\xa1\x8e\x19\x54\xed\x16\xd5\x15\x7c\xd3\x16\xc9\x1f\xc7\x71\x5b\xfc\x2e\x61\x1a\x54\x46\x2e\x12\x1e\xd0\xc3\x5c\xfd\x0c\x87\x0e\xf4\xa3\xca\xef\x3a\xc9\x5b\xe7\x4e\xb5\x3c\x2f\xf5\xc9\x6c\xc1\x02\x70\x25\x92\xb2\x90\x76\x72\xac\x95\x15\x0f\x4b\x64\x84\x46\x63\x36\xd2\x59\x0a\x26\xd6\x6e\xe6\xae\x0b\x33\xf4\x3c\x2e\xa4\x0b\xa8\xa1\x58\x5e\x37\xa4\x56\xf8\x9a\x0c\x8e\x64\xea\xa8\x58\x8a\x2f\x87\x42\x14\x15\x2a\xdd\xf9\x77\x7a\xa6\xfe\xf1\x1e\x63\x6f\xc1\x85\x80\x5c\xba\x96\xba\xd1\x6c\xcb\x2c\xbf\x15\xae\xd7\x44\xa4\x70\x8e\x20\xfc\x61\xd0\x78\x7d\x7a\x82\xad\x72\x8a\xde\xd1\xd5\x5a\xac\xc5\x81\x03\x84\x67\x90\x2a\x84\xde\x03\x9e\x91\x1f\xd7\x2b\xb2\x3e\xdc\x81\x67\x59\x9c\x85\x02\x60\x4b\x20\xcc\xc2\x5a\xf9\x3c\x5b\xac\xd8\x99\x65\xfa\x1e\x8e\xe3\xcf\x98\x11\x09\x75\x1c\xa1\x7c\x0d\x3a\x28\xef\x5d\x17\x23\x99\xa3\x50\x55\x55\x4a\x41\x8f\x4b\xa8\x5e\x42\x07\xfa\xcd\x8d\xba\x51\xaf\xd0\xfd\xa9\xef\xc1\xcb\xff\xee\xec\x24\xe8\x7b\x80\x1c\x77\x05\xf3\x65\xdf\x52\xad\x1b\x61\x87\x32\x65\x7d\x09\xb2\xa3\x11\x96\xed\x2b\x71\x8f\x09\x52\x21\x2d\x86\x6e\x4c\x5c\xe0\x34\xfe\x38\x75\x79\xc0\xbe\xc3\x3e\x73\x51\x8c\x25\x38\x2d\x5d\xbf\x78\x2c\x3e\x5e\xee\x91\xf5\xa1\xb8\xef\x16\xf7\xdd\x6e\xb7\xeb\xc6\x0a\x95\xc9\x8c\xb0\x9d\xda\x1a\x04\x9f\xd5\x58\xa7\x92\x7c\xc9\xd5\x4a\xb8\x03\x59\x7d\xc2\xf8\x10\x84\x99\x45\xd7\x50\x67\x01\x01\x5f\xd9\xd7\xdf\xcf\xbe\xcb\x4e\xa4\x1c\x8a\x62\x0e\xb8\x20\x9e\x8f\x63\xd8\x93\x56\x78\x2a\x33\xde\x08\xf2\x72\x1c\x96\x0f\xdb\x0c\x81\x18\x73\xa6\xe6\x2d\x9e\x21\x83\x7d\xe0\x18\x21\x42\xfc\x79\xdc\x29\x09\x25\x3f\xdd\xd1\xaf\x81\xcb\xa0\xbd\x45\x65\x13\x38\x97\xe0\x33\xab\x9d\x3b\xf4\xe7\xfa\x72\xb2\x34\x62\x5f\x28\xd7\x0f\x67\xbf\xb1\xd2\x07\x3d\x76\x46\x9b\x33\xe2\x77\x82\x29\xcd\xc4\x60\xe0\x64\x28\xad\x98\xf0\x75\xb9\xea\x1f\x32\x65\x32\x62\xdc\xbc\x71\xa4\xa5\x70\xfb\x9c\x80\x4e\x3e\xe6\x39\x52\x16\x88\xff\x49\x65\xe1\x41\x64\xe8\x36\xbb\x23\x73\xf3\xe2\xa3\xba\xd4\xda\x7e\x90\x06\x28\xf2\xcd\x0b\x78\xe3\xe6\xc5\x51\x76\xcf\x27\x98\x6e\x37\x40\xd4\xb3\xaa\x4a\x2f\xc2\xc6\xc0\x35\x8c\x1a\xae\xe1\x33\x28\xd5\x51\x2b\xca\xe0\x0e\xbc\xbb\x63\x56\x43\x96\x19\x4a\x89\xb6\x98\xa0\x9c\x58\xd9\xac\x89\x70\xe6\x85\x4e\x84\x31\x3d\xf6\xc9\x08\x08\x86\x01\x2f\x8c\x47\xbb\x91\x74\x1d\x7a\xec\x03\x9f\x20\x29\xa5\x92\x7b\x52\xb1\x26\x6d\x63\x6e\xfa\xf4\xac\xaf\xed\xa8\xd9\x00\x31\x64\xa7\x68\x22\x15\x2b\x06\x31\xb9\x5a\xb8\xe9\xfe\x81\xe6\x9a\x98\xe8\xa2\xff\x83\xdb\x88\x4e\x6f\xfb\xb6\xc1\xb2\x9f\x6b\xd8\xf7\x65\xae\xf3\x90\x77\x4c\x31\x8c\xf1\x32\x83\xf7\xd5\xed\x07\x37\x10\x40\xa2\xba\x85\xd6\x00\xa6\x54\xa0\xb7\x1b\x3c\x24\x53\x34\xc7\x63\x8d\xc1\x13\x39\xe6\x43\xb0\x3b\xf8\x5d\xb2\x9a\x09\x65\xca\xc2\x47\x95\xd8\x0a\x28\x82\x3e\xf5\xe9\xec\x84\xbd\x64\xfb\xee\x5b\x07\xb0\xfc\x00\x4f\x66\x35\x33\x96\x17\xcd\x31\xca\x81\xef\x82\x2a\x34\x42\x30\x5f\x81\xe5\x8c\x3a\xee\x76\xc1\xe5\xa9\x0a\xb6\x05\xca\x9b\x8b\xc2\x2d\x35\x54\x2c\x78\x7e\xe7\xa4\x75\x25\xa6\xe6\xbe\x7f\x32\xd3\x20\xae\x33\x6e\xdb\xa7\x35\x6e\xdb\x49\x44\x17\xdc\x21\xa8\xcf\x08\x77\xda\x2b\x1c\xcd\x0c\xdd\xe7\xb8\xc6\x4f\x71\x17\x8d\x78\x2f\x55\xf9\x30\x07\xdb\xaf\x3d\x68\xc9\x69\xad\x9b\x45\x0a\xa0\xdb\x5d\x6a\x8e\x75\xfd\x1e\x2c\x09\x3a\x28\x5d\xa5\xd3\xd2\x95\xbf\x3a\x7e\xf1\x3a\x8d\x13\xe0\xef\x2e\x5c\x1d\x6f\x62\x64\x9c\x15\x5c\xa5\x7a\x3c\xf5\xb5\x10\xe5\x55\x2d\x2b\xfb\xdd\xec\xff\x9c\x5d\x4c\x12\x3d\xce\x2f\x0a\x3d\xd8\xa4\x82\xc3\x55\xbd\x9b\x65\xbb\x48\x5f\x0d\xf6\x75\xbc\x76\xa1\x70\x76\x4d\x38\xae\xc2\x3c\x66\x4f\x20\x12\xb8\x81\x21\xb7\xf7\xb8\x80\x78\x6e\xe2\xc3\xe3\xbe\x3e\x90\x05\x84\x9c\x01\x69\x00\x32\x22\x55\x63\xd3\x3b\xd3\x3e\xd0\x68\xd4\x7b\x6e\x27\xe4\xf8\xff\x67\xef\xdd\x9b\x1b\xb9\xad\x7d\xd1\xff\xcf\xa7\x40\xc9\xf7\x94\xa4\x14\x49\xcd\x78\xbc\x9d\x7d\x66\x57\xea\x94\x2c\x69\x62\x9d\xcc\x68\x18\x49\xb6\x6b\xdf\xab\x5d\x09\xd8\x0d\x92\xd8\x6a\x02\xed\x06\x5a\x12\x53\xe7\xc3\xdf\xc2\x5a\x0b\x8f\x6e\xbe\x5a\x14\x35\x9e\x38\xac\x54\xc5\xa3\x26\x1a\x8d\xe7\x7a\xaf\xdf\xe2\xd5\xdc\x71\x7e\xdc\xfb\xc6\x11\x54\xda\x7f\x3a\x78\x71\x72\x72\xe1\x38\x49\x75\xd5\x95\x5d\x61\x6e\x5b\x77\x93\xd7\xdd\xe5\x6d\x7c\x5a\x73\x93\xd9\x62\x63\x30\x02\xb6\x02\xed\x31\x31\x37\x87\x10\xe4\x9c\x51\x3f\x08\xab\xd3\x28\xea\x38\x84\x68\x42\xa7\x07\xd4\x2a\xa2\x2e\xf8\xf6\x47\xed\x03\xe2\xef\xef\x31\x9b\xc9\xc9\xd4\x06\x7e\x5a\xf0\x5a\x65\xd3\x1d\x3b\x08\x71\x5e\x2f\x5a\xc0\x47\xa9\x72\xfd\x68\x5e\x4a\x33\x7f\xc1\x6e\x5a\x54\xa0\x2b\x09\xa5\xb7\x43\xdd\xa5\xa0\xad\x3f\x97\x8c\xea\xe0\xbd\x05\x97\x0b\x6f\x5c\x81\x36\x89\xf2\x47\xdd\xed\xf9\xe0\x8b\x8b\x1c\x3b\x75\xb6\x6c\xaa\x75\x85\x2d\xd0\xec\xdc\xaa\xc2\xd2\xd5\x8b\xc8\x33\x2b\x1f\xc4\xb9\xe0\x79\x21\x95\xb8\x11\x99\x56\xf9\xa6\x7b\x87\xfb\xcf\x0b\x96\xd7\x15\xf7\xa6\x2c\x83\xaf\x86\x08\xc8\x19\x9f\x23\xee\x28\x64\xfe\x10\x72\x1d\x04\xf3\xa6\xe9\x40\x50\xb7\xfb\x56\x46\xad\x32\x09\xb9\x44\x56\x09\xef\x3b\xcd\x11\x23\x2e\x67\xbc\xba\x77\xe2\xaa\xbb\x80\x04\xe7\x74\x0f\xed\x8c\xd1\x99\x04\x2b\x41\x7a\x9a\x10\x0d\x6b\x16\x00\x57\x4a\x6d\x24\x7c\x9b\xa8\xd4\xce\x85\x15\xfe\x52\x84\xd8\x4e\xb8\xb0\xee\x54\x37\xaf\x08\x5a\x11\x93\xe8\xdb\x04\x25\x76\xc5\x48\x6b\xab\x01\x90\x86\xaa\x16\x9d\x66\x99\xfb\xeb\x56\xdf\x8b\x8d\x0e\xb8\x35\xaf\x26\x38\x4c\x8f\x53\x01\x25\x6f\x79\x28\x0b\xc0\xb1\x21\xb3\xd0\x32\xe6\xa9\xc0\x58\xb8\x25\x6c\x55\x5f\x06\x6d\x0b\xf9\x3d\xee\x7d\x47\x67\x56\x22\x02\x20\xc8\x1e\xc5\xda\x06\x46\x71\x16\x1b\x64\xe8\x4c\xa1\x18\xd1\x62\x1e\x19\x2a\x24\xb9\x51\x18\xca\x2d\x84\xf9\x86\x23\xe7\xdd\xc5\x5a\x35\x74\x2e\xa8\xe5\x0c\xfd\x2f\x78\x68\x76\xcb\x4c\xc2\xf8\xbb\xf2\x93\xc6\x4f\x9b\xaa\xd5\x43\x10\xc2\xa6\x37\x3a\x56\xab\xcf\x95\x59\x88\x21\x7b\xde\x5c\x1b\x81\x68\x6b\x3d\x3c\x21\x81\x6c\x4d\xfc\xd9\x80\x0d\xe3\xc3\xc8\x06\x60\x7b\x5b\xe1\x4c\x3e\xb1\x31\x44\xc0\xb8\x2e\xd1\xc2\xe4\x49\x24\xd9\xb4\x54\x1a\x56\xb4\x6a\x19\x3a\x99\xf7\x6e\x84\xc5\x91\xa3\x65\xaf\x21\xdd\x9c\x37\xcc\x4f\x67\x18\x9e\xf0\xc1\xc9\x9b\x77\x07\x4b\x2c\x5c\x87\x69\x8b\x5f\xa4\x9d\xfe\xa8\x8d\xbd\x12\xf6\xb0\xd7\xfc\xc9\xfd\x4d\x5d\x1f\xba\x33\x7f\x78\xa5\x95\x38\x1c\xb4\x17\x30\x44\x5d\xc5\x70\xbf\x55\xe1\x5f\x34\xf8\x90\x9d\x05\x3f\x24\x91\x43\xb7\x1a\x4d\x7c\xee\x0b\x5e\x0a\x70\xfc\x9c\x03\x1e\x26\xb4\x9e\xe2\x58\x1f\x75\x75\xdf\x63\x73\x5d\xe3\x0b\x56\xd3\x96\xcd\xd3\x45\x12\x4f\x01\x16\xcb\xea\xd5\xd3\xde\xc2\x4e\x27\x14\x1f\x15\x82\xe8\xe1\x47\xa9\xee\x37\x11\xa0\x8b\x85\x17\x96\x50\xce\x34\xd8\x05\xa3\x90\x89\x92\x9a\x84\x78\x4a\x45\x95\xf5\x01\xf7\x12\x19\x81\x50\x0f\xb2\xd2\x0a\x8a\x36\x3c\xf0\x4a\xba\x6f\x99\x5e\x33\x93\xcf\xcc\x95\xe5\x4f\x10\x11\x86\x45\x5c\x0a\x37\x8a\x01\xf3\xec\xfd\x7d\xe3\x18\xd9\xaa\xde\xca\xa2\x12\xec\xb1\x67\xcf\x25\xcd\xd1\x92\x9b\x10\x69\x52\x93\x82\xae\xc6\x2e\x96\xb5\x22\xe1\x83\x1a\x43\x09\x1f\x89\x55\x2b\x9c\x68\xe2\x56\x09\x2d\x57\x60\x83\xe9\x03\x49\x81\x6b\xcb\x33\x3a\x62\x68\x2d\x66\xb9\x18\xd5\x93\x09\xa4\x09\x82\x51\x1b\x54\x8c\x2c\x50\xec\x48\x14\x00\x56\x13\xdc\x14\x90\x3b\xe5\x3e\x83\x21\x21\x32\x6d\x0f\x6e\x04\xca\x5d\x01\x6a\xef\xb7\x02\xb2\x36\x4b\x91\x81\x77\x5e\x57\x39\xa6\xb7\xf1\x3c\x87\xb1\x2f\xce\x10\x35\xb8\xc6\xac\x7a\x84\xd0\xee\x45\x81\xf0\x56\xb2\x2c\xa6\x1e\x05\x94\xbb\x06\x04\xbc\x61\xbc\x28\xa7\x9c\xbc\x6f\x84\x0b\x08\x66\xfb\xa9\x86\x6c\x22\xa8\x4c\x4f\x41\x09\xa0\xee\xe3\x79\x87\xef\x5d\x2c\xee\xb0\xaf\x86\xb5\x63\x5e\xb6\xf8\xa5\xaf\x9e\xa9\x39\xea\x74\x5a\x48\x6e\x36\x06\x68\xfe\x18\x5b\x52\x08\x98\xf6\x72\xb6\xd7\x6c\x01\xf8\x0d\xb6\xe7\x72\x48\xfb\xe0\x09\x6b\x93\x08\xc4\x63\x80\xaf\x8c\x65\x21\x98\x4c\x84\xc6\x58\xf5\x05\x76\x19\x6c\xbb\xc0\x42\x94\xc6\x82\x2e\x44\x51\x29\x73\x7b\xa7\xbb\x18\x26\xfa\x2a\x9b\x27\xcb\x5d\x6e\xdd\xe5\xf0\x6c\x53\xbe\x06\xdd\x3a\xd7\xfa\xd0\x30\x59\x66\xd1\x00\xb1\x84\x96\xba\x9b\x0b\x86\xf5\x6d\x68\x69\xb2\x31\x1d\x0e\x13\x53\xd8\xd4\xa7\x81\x0a\x63\x83\x15\xc4\x53\xcf\xd6\xe8\xe9\x8d\x74\x06\x97\x14\x44\x87\x87\x91\x9c\xb3\x5e\xe7\xa8\x6c\xeb\x18\x82\xa1\x25\xa4\x9c\xc5\xd3\xb6\xab\xd9\x0f\x37\x42\x4e\xb6\x66\x54\xca\xfc\x75\xf7\xa3\x43\x18\x6e\x53\xda\xf4\x2f\x79\x2f\xc1\x50\xe7\x0b\xfe\xc3\x5e\xeb\x06\x43\x7b\xbf\xc6\x06\xbd\xf3\x9c\xf4\xe4\xbe\x4f\xa9\x07\x81\x6e\x0b\xd1\x05\xbc\x0e\xc3\xba\x28\x6e\xc0\x35\xba\x89\x4e\x5d\xb6\x9a\xaf\x22\x56\x21\xd8\x06\xc4\x07\xe3\x1b\x13\x60\x80\x9b\x50\xd8\x17\x6f\x96\x75\x67\xb3\xac\x0b\xca\x3f\x0e\xb9\xfb\x30\x40\x32\xe2\xf9\xac\x4f\xb2\x7d\xa0\x81\xa7\xb1\x6c\x10\x96\x8e\x1f\x0b\x7e\x2a\x6e\xa8\x36\x92\x13\xb1\x1e\x64\x5e\xf3\x02\x3e\xe4\x44\xac\x99\xb7\xea\x22\xeb\x27\x39\x7a\x46\x63\x1a\xb0\x0f\xba\x62\x84\x18\xde\xf3\xc3\x07\x50\x0b\x3d\x66\x39\x08\x4e\x3d\x24\xa2\x28\x45\x91\xc0\x8b\x70\xae\x34\x0e\x27\x63\x13\x23\x7d\x76\xb2\x50\x64\xdf\x27\xb8\x0e\xdf\x90\x5c\x2b\xd5\xa4\x0f\x4f\xdc\x44\xe8\x4b\x7d\xad\xfa\xbc\xbf\x10\x10\xfc\x52\x8a\x0d\xe5\x9a\xda\xf5\x4e\xbf\x76\xce\xeb\x26\xf4\x6c\x99\x13\x45\xc1\x42\xfe\x83\xa7\x79\xa2\xab\xad\x03\x97\x4a\xda\xb4\x95\xdb\x69\xcc\x30\x46\x83\x21\xca\x72\x65\x25\x11\xb7\xbd\xd1\x1f\x00\xfa\x5a\x5e\x59\xb2\x53\xba\x13\x2f\x1b\xfd\x81\x95\xcb\xc4\x1c\x6a\x89\xc5\x7f\x64\x2e\x08\xcf\x17\x54\x9d\xc4\x14\x96\xd4\x2b\xe5\x59\xa6\x2b\x9f\x39\x8c\x71\xa1\xf0\xb1\xa0\x59\x4d\xf1\x02\xc2\x81\xe7\xaa\xfd\x65\x10\x05\xaa\x59\x43\xe8\xf4\x74\xbd\x86\x14\x45\xc6\x67\x4e\x07\x5b\xb0\xdf\xb6\x56\xc4\x67\x4c\xc3\x50\x3f\xfa\x34\x37\x2f\x69\xf7\x58\x08\xd7\xc3\xac\x55\xd3\x63\x1f\x9d\xfa\x98\x3e\xd0\x15\xda\x09\xeb\x92\x1e\xe1\xe8\xbd\x28\x7b\x9d\xe6\x87\x63\x70\x77\x6b\x32\x90\xe3\xcf\xd1\x38\xe5\x28\x27\x59\xa1\x28\x2b\x3c\x31\x9a\x8d\xe6\x6c\x4c\x55\x78\x53\x9c\x00\xe2\x9e\x27\x58\x68\x29\xf8\xe6\x62\x18\xef\xbc\xa4\x08\x70\xa8\xc5\x86\x85\x43\x01\x54\x00\xf5\xab\x10\x33\x85\xc8\x26\x55\xc0\x38\xd0\x1e\xe3\xa0\xb9\xd2\x66\xc0\x3e\xca\x99\x0f\x59\x4a\x8c\xe5\xb2\xb5\xb8\x60\x46\x32\x72\x26\x0b\xee\x0e\x8b\x99\x42\x3a\x62\x7b\x0b\xba\xd9\xad\x96\x84\x0a\xbf\x2c\xaf\xd1\x0d\xb6\x9f\x90\xaf\x7f\x55\xbb\x96\xd2\xb9\xe8\x52\x4d\x84\x9a\xa1\x39\x9f\x8e\x5c\x03\xe5\x24\xc0\x63\x01\x6a\x02\x8f\x7e\x95\x00\x9e\x80\xd1\x73\x4e\x86\x87\x78\xa6\x5e\x8a\x06\x22\x2a\x5f\xab\xce\x3f\x30\xad\x1e\xad\xaf\x20\xd6\x63\xdc\x98\x7a\x16\xe0\xe3\xdd\xa1\x27\x12\x12\xe1\x43\xfc\x95\xdb\x42\xe2\x70\xdf\x58\x85\x61\xd5\xad\xc2\x7d\xd7\x24\xb0\x25\x6b\x1c\xb1\x8b\x10\xd0\x8c\xfe\x22\x64\x11\x22\x71\xb6\xaa\x45\x6a\x52\x03\x31\x51\xda\x88\x55\x34\x60\x37\x4b\xde\x04\xfb\x0a\xb5\x80\xa4\xec\x91\x48\xc0\x05\xa8\x9f\x16\x00\x46\x5c\xf6\x6d\x64\x83\x68\x61\x3c\xc1\xbc\x20\xc7\xfd\xa1\x98\xe6\xc9\xf3\xcb\xe0\xeb\x07\x51\x4d\x05\x5f\xc8\x75\xe8\xb6\x27\xcf\x0e\xcb\x1f\x04\x63\xc4\x5f\x6b\xae\x6c\xa3\xb4\xe3\x86\x8d\xfc\x4c\x23\x4d\x8b\x7e\xd8\x84\x27\x30\x3f\x95\xd4\x31\x84\x61\x9f\x84\x3a\xc5\x43\x89\x63\x4e\x06\xcb\x6b\x74\xf1\x62\x59\x9d\x85\x20\x46\xf2\x52\x94\x01\x86\x97\x5b\xa8\x38\x88\x11\x92\x10\xdb\x41\x4e\xe3\xb4\x9f\xa4\x49\x16\x10\xef\x03\xce\xc9\xc6\x96\xee\x8c\xa2\xa5\x25\xef\xc5\x29\xc1\x51\xf3\x26\x28\x74\x6e\x3a\x25\x02\xa3\x64\x43\xfe\x07\x32\xc9\xcd\x9f\x80\xd9\x51\xd6\xd2\x92\x6e\xe8\x78\xa3\x51\x75\x9a\x2e\x6c\x51\x09\x9e\xcf\x19\x84\x09\x5e\x8e\x9b\x5f\x42\x49\x05\x0e\x27\x89\x26\xc1\xc4\x4b\x22\x34\x09\xf0\x3d\x16\xb6\xb2\xa5\xdf\x44\x17\xac\x57\x70\xbc\xf0\xdd\xc0\x45\x49\x3f\xdb\x63\x00\x0b\xf1\x28\x8d\x70\x34\x8b\x66\x06\xa5\x72\x30\xaa\x0d\x58\x34\x05\x13\x73\xc3\xfe\x21\x2a\xbd\x29\xad\x43\xa8\x29\x57\x19\x92\xba\x93\x7b\x51\x1a\xc8\xe5\x80\x0b\xf6\xed\x9b\xb7\xff\xeb\xcd\xb7\xdf\x7e\x0f\x57\xce\xaf\xcb\x60\x96\xaf\x33\xad\x81\x84\x92\x94\xa3\x7a\x78\x3b\x78\xfb\x7d\xef\xb9\x26\xb7\xa1\xce\xc3\xb2\x2d\x37\xb5\x75\xb9\xee\x65\x25\x1c\x9b\x90\x5a\x75\x72\x38\x0c\x5b\xcd\x3d\x28\xc2\x30\x3a\x20\x7c\x8f\x68\x92\xa4\x00\x8b\x42\x3f\x7a\x19\x58\xda\xf9\x80\x7d\x56\xa0\x3b\x5d\x89\x07\xa7\x3a\x51\xaf\x1f\x5d\xa3\x61\x68\x93\x5a\x9e\x97\xb5\x48\x22\x54\x9b\x8b\x3d\x12\x96\xd6\xba\xc7\x26\x29\x5c\xf6\x95\x56\xc3\x30\xba\xd0\x0d\x2d\x5e\x7f\xb2\x65\x75\x1a\xea\xa7\x43\xb4\xa0\x6f\x4a\x6a\x3a\xfb\x99\x57\x52\xd7\xc6\x3b\xbb\x33\x3d\x2b\xb5\x02\x3a\x16\x2a\x6d\xe2\xa4\x80\xf3\xa0\x68\x19\x3b\x49\xa1\xc3\x01\x5c\x28\xcc\xe8\x34\xdc\xf1\xb3\xe5\x64\x44\x02\xcc\xd5\x83\xff\x54\x45\x69\x65\x14\x9b\x91\x7c\x19\x09\xc8\x52\x9a\xe1\xa9\xa0\x49\x07\x0a\xdd\xf8\x71\x84\x1a\x6a\xd8\x0b\x48\xd2\x55\xbc\xd3\xbd\x28\x5f\x57\x8d\x99\xad\x73\xc8\xbf\xfb\x76\x0b\x87\x7c\xd9\x1e\xd0\x66\x24\xac\xc4\x9e\x20\x93\xe0\x5e\x6f\x90\x89\x27\xf9\xee\x80\x4c\x30\x8e\x1c\xf4\xb3\x4a\x82\x07\x3b\xc4\x87\xd3\x8f\x94\x1d\xdc\xf8\xdd\x29\x24\x8f\x3a\x24\x73\xdc\x8b\xf9\xa3\xae\x02\xbe\x99\xff\x6a\x43\x09\xa1\xcf\x22\xf4\x01\xb9\xcf\x20\xfa\xb6\x22\x5d\x72\x49\xe3\xf9\x80\x9d\xaa\x39\x52\x45\xd4\xf6\xbc\x80\xe3\x69\xea\x68\x9e\xba\x2d\x1a\xbb\xe7\x13\x13\xe9\x6b\x4e\x48\x81\xfd\x5c\x69\xac\x8a\xc7\xd3\x93\x72\x1f\x4f\xae\x2b\xa0\xb5\x84\xe9\x56\x51\x99\x70\xff\xf3\x76\x50\x3a\x31\xc9\x6b\xa3\xc5\xaa\xb1\xa5\x1c\x98\x82\x57\x3a\x27\xe8\x6f\xa3\xf1\x0a\x77\x38\xb9\x37\x93\xba\x29\x85\x96\x03\x76\xea\x75\x70\xe4\x7b\xe0\xf2\x71\x9d\x41\x01\xda\xa6\x09\x00\x5b\x9c\x5e\x9d\x7b\xf5\x98\xe0\x5c\x9a\xd1\x44\x28\xb0\x34\x47\x02\x7c\x96\x70\x75\xc4\xaf\x35\x2f\xd0\x85\x7b\x5b\xd5\xe2\xee\x60\x3b\x56\x85\x36\xdd\x93\x37\x6f\xde\xfc\x11\x38\x15\x0c\xee\x7f\x7e\xfb\xc3\xff\xfc\xf6\x87\xd7\xc8\xb4\x6d\xa6\xea\x75\x54\xce\x56\x6c\x72\x62\xb1\xd8\x08\x75\x80\xa1\xed\x89\x37\xbc\x95\xfe\x94\xe4\xeb\x03\xd9\x24\x36\x84\xb9\x19\x3d\xf6\x59\x7d\xc0\xb2\x58\x3d\xe4\x4c\x0d\x9b\x35\x36\xda\x29\xd0\xcf\xc9\x37\x34\xbd\x3e\x0e\x79\xab\xd4\x90\x20\xf9\x74\x20\x6c\xd7\xad\xe6\x8d\xac\xc4\x86\xf0\x46\xf7\x5e\xc6\x98\x2d\x3a\x61\x18\x4d\xda\xf3\x59\x3b\xc1\x03\x5d\x93\x75\x15\x43\xe1\xbd\x6f\x01\x09\x45\xb3\xeb\x20\x9f\xa7\x10\x8e\x8e\xac\xe4\x2c\x43\x09\x6e\x19\x5e\x60\x55\xab\x66\x6a\x42\xa2\xdd\xde\x1d\x14\x62\xc2\xb3\xf9\xdd\x41\xf3\x4b\xa9\x47\xc2\x8f\x18\x2d\xd5\x92\x6a\x63\xe1\x17\xa9\xda\xa2\x22\x04\xe0\x78\xbe\x43\xd9\x6b\x1c\xa4\x27\x65\x3e\x90\x1b\xed\x6c\xd5\x0b\xc4\x47\xea\xa9\x0f\xc3\x08\x62\x23\xd6\x72\x13\x96\x7b\xd9\x64\xb9\xcc\xf8\xdd\x36\x08\x5f\xde\x10\xf0\x6c\x36\xd8\xd8\x14\x47\xd7\xa5\x01\x13\x08\x49\xa9\x81\xa8\x85\x2f\xac\xe3\x12\xcb\x3b\xf1\xeb\x1b\xbb\xd8\x62\x82\x2b\x73\x50\x9f\x4d\xc5\xda\xe9\xac\x6b\xa3\x89\x76\x9f\xcd\xba\x3c\x06\x03\x8e\xe8\x80\xb1\x1b\x41\x50\x64\x69\xd0\x27\x54\x28\xa7\x45\x8c\xb9\xa8\x60\xa8\x44\x71\x6e\xd5\x9a\xa5\x21\x7c\x1b\x4e\xc5\x79\x28\x64\xde\x8c\xfc\xf3\x21\xa8\xee\x57\x8a\xa4\x28\x24\x47\xcb\x47\xb3\x25\x8a\x84\xb1\x9f\xf7\xe0\x82\x34\x0b\x6d\x98\x54\xc6\x3a\x75\x6a\x9b\x53\xd0\xee\x6c\x63\x24\xd5\xe2\xd7\x23\x65\xf2\xb2\x76\x6b\xc6\xe4\xb2\x5a\xa0\x7a\xdd\x58\x84\xe5\xe6\x3e\xda\x6f\x44\x9f\x50\xdf\xf0\x1c\x24\xcf\x69\x2e\x7d\x32\x59\xaf\xb0\xe9\xac\x5f\x0d\xfb\x23\x79\x10\x4f\xcd\x87\xbf\x9e\x5f\x75\x40\x82\xad\x6a\xb1\xce\x01\x99\x6a\xf6\xa9\x60\xec\x7a\xef\xb1\x8a\x5b\x14\xea\x39\xf2\x8f\x42\x70\x8c\xc9\x67\x47\x09\x1d\x3d\x86\x50\x97\x98\xf4\x82\x4c\xba\x87\x0b\x89\x08\xec\x51\x23\x11\xd0\xb5\x67\x48\x61\x3c\xa8\x76\xd0\xf6\xdc\xbb\x25\x2e\xf0\x1b\x8e\xbc\x36\x5b\x18\x5b\xd5\x99\x65\xb5\x35\xee\x39\x7e\xdc\x87\xa7\x77\xf8\x7c\x25\x26\xd2\xd8\x6a\x1e\xb1\xc9\xe3\x20\xc8\xb8\x17\x9a\xdc\x8b\x39\xfb\xf1\x2f\x17\xff\xf9\xb7\x8f\x9f\xcf\x4e\x3f\xfe\xed\xd3\xe9\xd9\x8f\x97\x57\x17\x77\x77\x37\xff\x79\x73\x7b\xf1\xe9\xee\xee\x0c\xcd\xf0\xa4\x9d\xdd\x08\x7b\x77\x47\x47\xcb\xdc\xdd\xdd\x66\xa5\x2c\xef\xee\x92\xc0\x43\xab\x61\xf2\xe8\x21\x02\xfa\x19\x92\xfd\x40\x56\xc4\x45\x87\x71\x4f\xb9\x89\xb9\xb0\xbb\xf1\xb9\x43\x81\xf1\x21\xa6\xa8\x5c\x79\x77\xed\xa6\xeb\x34\x05\xaf\x05\x33\x52\x4d\x0a\x11\x12\x5c\xa2\xb7\x77\x24\xec\xa3\x20\xe1\xb9\x9d\x2a\x97\xa6\xa9\x13\x6a\x2e\x32\x45\xc7\xf9\x1b\xd2\x1c\xd9\xe4\xc0\x24\xa2\xd9\x83\x14\x8f\x68\x67\x92\x13\xc5\x0b\xff\x55\x41\xda\x2d\x6a\x40\xed\x7c\x1f\xf2\x43\x87\x60\xad\xc5\xac\x9c\x85\x8c\x9c\x86\x5c\x12\x90\x98\x86\x97\xe7\xec\xed\x80\xfd\x88\x11\x0a\xd0\xd7\xcd\xb2\x95\x0b\xb1\x60\xda\x4e\xc9\xd4\xb5\xeb\x98\x04\x53\x8f\x10\xd5\xed\xd9\x0c\x7e\x5c\x17\xc5\x9c\x39\x9d\x03\x99\xf9\x50\xe7\x8b\x77\xff\xee\x00\x0b\x60\xf8\x1f\xb0\xfa\xc5\x00\x1f\x86\x6f\x37\x9e\xba\x33\x1b\x0b\x28\xe0\x2f\xe6\x21\xa3\x5f\x49\x3b\x66\xe9\x8b\xcb\x52\xaa\x97\x48\x86\x70\xfe\x39\xbd\x09\xa3\xe4\x80\xda\xbf\x05\xcf\xb0\xa2\x9a\x49\x05\x76\xf4\x3f\x57\x3c\x13\x43\x51\x49\x10\x02\x76\x95\x0e\xa1\x84\x40\x88\x7a\xff\x25\xc1\x26\xee\x43\xb0\xe8\x98\xda\x09\xfa\xb2\x53\xc6\x31\x9f\x9e\xe5\xa2\x10\xd1\x10\xdb\xce\x65\x50\x5a\xf5\x95\x98\xf0\x46\x36\x03\xd8\x5a\x90\x46\xa1\xbe\x1d\xcc\x17\xd4\x99\x9c\xcd\x44\xee\x38\xb4\xfb\xa8\x0f\xed\xc1\x17\x9c\x4a\x2e\x8b\x5e\x43\xd8\x85\x21\xb2\x12\x16\xa3\x19\xe3\xe3\xd9\x33\x7c\xb1\xd1\x8c\x58\xe7\xb2\xc5\xe0\x63\x1b\xcc\x3d\xfe\x7a\x7a\x7b\x7c\x54\xcd\x40\x83\x06\xd8\x0e\xce\x92\x7d\xf1\x37\xdb\x5f\x54\x4c\xa7\x24\x60\xed\xa4\x43\xf7\xf6\x58\x57\x99\x1c\x15\x73\x36\xe5\x85\x8d\x15\xd5\x21\x53\x04\xbb\x19\xb0\x1b\x61\xd3\xe9\x17\x5a\x4d\x52\xb6\x25\x9e\x4a\xb4\x57\x67\xee\xae\xd5\x25\x7e\xcf\x51\xfb\xb9\xae\x57\x64\xf4\xbe\x7b\xe3\xa7\xba\xf3\xbc\x12\xab\x0b\x81\x0b\xfa\x3c\x6b\x47\xe4\xce\x49\x0f\x3b\x0e\xe8\xbb\x0d\x3d\xef\xa4\xd2\xc9\x4d\x59\x09\x9e\x9f\x25\xf9\x2b\x1b\xac\xab\xab\xde\x4b\xca\x5e\x4f\xf5\x63\x5a\xee\x02\x8c\xd3\xba\x9e\x4c\xd1\xc1\x0a\x2f\x32\x9e\x55\xda\x98\x50\x09\xc4\x83\x63\x0e\xd8\x4d\xb3\xfe\x44\xb3\xea\x04\xb0\xab\x47\x3e\xf7\x25\x47\x46\x32\x17\x26\x49\x30\xf5\x83\x19\xb0\xd3\xa2\x60\x2b\xe7\x08\xc7\xf6\xf4\xea\x7c\xe7\xf9\x1f\xab\x56\xe7\xe5\x6e\xf3\x42\x1a\xdb\x9f\xf1\xb2\x7f\x2f\xe6\xa6\x81\x2e\xd4\xd8\xce\xbf\x88\x79\x3b\x55\xd4\xdd\xda\x9f\x14\x21\xd2\x3b\x0e\x9e\x0e\xe6\xbf\x36\x7c\xd1\x0f\x6f\xc6\x37\x47\x7a\x36\x7c\xfa\xab\x06\xf4\x02\xd7\x3e\xd5\x78\xef\x18\x5c\x44\xad\x63\x39\x68\x08\x09\x87\x5c\x27\xb0\xc3\x6e\x0a\x36\xda\xb2\x26\xbd\x1f\xe4\x4e\x8f\x15\xd6\x60\xff\x8a\x62\x2f\x7a\x95\x70\xab\xf7\x17\x77\x16\xe3\x5e\xfd\x8f\xd6\xd8\x56\xa3\x61\xf9\x38\xb1\xff\xd1\x3a\x85\xdb\xa4\x6d\xb6\x91\xd4\x97\x25\x6e\xa2\x89\x37\x71\x5f\x2f\xe6\x7a\xd8\x06\xc4\xba\xc7\x6e\xc2\x07\x33\x3e\x67\xee\x22\x17\xd0\x8a\x67\xb6\xe6\x05\x34\x16\xd8\x16\x7d\x0f\x3d\x26\xc8\xc5\x50\xcc\x1b\x05\x55\xe0\x08\x62\x6c\xb8\xe7\xba\x3e\x4a\xc8\x2d\x45\x16\x31\x42\x2a\x5d\xb0\xb2\xe0\xaa\x4b\x5d\xfc\x04\xb7\x7c\x03\x3c\x1a\x95\x59\xf0\x79\x81\x61\xe0\xdb\x9c\xf3\xad\xe1\xd4\x77\x60\xec\x8e\x95\x27\x5e\xe3\x26\xb4\xf0\xda\x5f\x44\xaa\xc2\x11\xc7\x03\xb4\x91\x68\xdd\x52\x41\x12\xd0\x2a\xb5\x22\x7c\x13\x27\xe4\x35\xd3\x18\x31\xcc\x4d\xc9\x31\xc8\xa8\x29\xce\xae\x49\x22\xce\x20\x72\xa0\xb6\x65\x0d\x84\xf0\xef\x18\x37\xeb\x84\x48\x27\x64\xfd\x7d\xf7\x5b\xce\x55\x62\x4f\xf1\xf5\x8a\x5f\x27\xfe\xec\xa6\x55\x0c\x79\x0b\xc9\x67\x31\x47\xaa\xe3\x26\x11\x31\xc0\x10\xce\xf9\xf2\x8c\x29\xbc\xea\x4e\x55\x5a\xc8\x9d\xea\x96\x02\x54\xa6\x95\xa7\x7f\xfb\x24\xa0\x5d\x2e\x3c\xa6\x78\x6c\x12\xa8\x23\x12\x33\x59\x2b\xdc\x6b\x8e\x33\xa3\xc8\x97\x44\xe7\x7a\x83\x80\xaf\x2a\x27\x51\x89\x9d\x8b\x68\xd7\xde\xc6\xa2\xd9\x08\x65\x7e\xf9\xfd\x6d\x45\xc7\x2e\x5c\xe2\x5b\x5f\x0e\x0b\x2b\x97\x33\x53\x67\x4e\xd7\x19\xd7\x45\xfb\xd5\x88\xc1\x86\x1e\xcf\x3f\x25\x80\x56\xb3\x46\xed\x73\x0a\x74\x5e\xfa\xae\x09\x20\x00\x08\x39\xf6\x2f\x4d\x0b\xba\x15\xaf\x39\x65\xd3\x7a\xc6\x15\xeb\x5e\xbe\xe6\x71\x3a\x4f\x4f\x6a\x28\xcf\x19\xeb\x03\x6d\x11\xc6\x89\x96\x8c\xfc\xaa\x5b\x84\xeb\x42\x7b\x6f\xd7\x03\x32\xf3\x18\xac\x7d\x18\x4a\x00\xb1\x3a\x86\x2c\x77\xa8\xb0\x45\x87\x64\x28\xd0\x97\x24\x63\x86\x98\xca\x0a\x20\x5a\xb8\x53\xca\xb8\x61\x31\xca\x89\x3d\xc8\xcc\xca\x99\x81\x53\x29\x31\x9e\x4d\x56\xc1\x0e\xd3\x30\x36\xa0\x31\xa3\x19\x07\x18\x0c\xaf\x93\x9a\x57\x5c\x59\x21\x22\xe4\x5b\xea\xd8\x6a\x45\x77\x4a\x5f\x05\x2c\xea\x91\x4e\x7a\xcb\x45\x06\x35\x28\xb4\x13\xaf\xb2\x60\x70\x67\xa2\x30\x02\x2b\x67\xca\xb1\x8f\xdc\x80\x7a\x60\x23\x91\xe9\x99\x60\xfc\x81\xcb\x02\xf6\xdc\x68\x0d\xc0\x50\xcd\x7e\x01\x21\x2a\x76\x3e\xa1\x89\xc6\xda\xac\x8d\x51\xa1\xfb\x97\x02\x71\x42\xfc\x06\x44\xaa\x52\xc5\x42\x0f\xbe\x89\xc6\x9b\xb8\x9a\x03\x76\x8a\x81\xca\xa6\x2e\x6c\x2f\x0d\x04\xa2\xec\xdb\x5c\x8e\x21\x57\xc4\xa2\x51\xc5\x67\xec\xf8\x70\xe8\xc4\x76\x83\x47\xf2\x25\x14\xb2\x9c\x72\xb3\xb1\x90\x8f\xfb\xd4\x94\x32\x77\x00\x7d\x81\x42\x80\x25\xe6\xf6\xb8\x45\xf0\x1e\xbb\x7a\x06\xb0\x4a\x7a\x4c\x45\x4c\x7d\xa2\x16\xde\x1c\x69\x0d\x0b\x34\x06\xe9\x65\x12\xe3\x01\x97\xbb\xe7\xa3\x3b\x8c\x13\xe7\x55\x1e\x2e\x28\x42\xd4\x46\x7b\x73\x92\x91\x94\x38\x02\x91\xaf\x43\x4f\xc1\x41\x81\x55\x26\xf1\x56\x27\x1a\x02\x21\x7f\xc0\x1b\x1e\x7d\x02\x6c\x60\x6e\xe3\x4b\x6d\x8c\x74\x67\x05\x27\x8e\x7e\x41\x40\x67\x1d\x0a\x88\x9f\x7c\x8f\x48\xa9\x3a\x07\x3e\x31\x02\xb3\x7c\xe6\x08\x6b\x8c\x9c\x4b\x3c\xcf\x5e\xab\x70\x97\x6f\x49\xe9\xcb\x84\xa7\x60\xca\x16\x7a\x24\x2c\xf6\x4b\x07\xc9\xa7\x9e\x52\x19\x06\x0a\x9d\x4d\x31\x45\xe3\xfd\xe1\x86\x3d\x0a\x40\x77\xc1\x66\xa6\x74\xc7\x29\xd7\x8f\xca\x51\x7c\x30\x1b\xe2\x87\x00\x87\x17\x88\x83\x47\x02\x40\xde\x9c\x41\x88\x02\xa0\xf6\x72\xf7\xc8\x6d\xd7\x35\x5a\x1c\x97\xcc\x7c\xa4\x6b\x85\xa0\x44\x3e\x0c\x5e\xe5\x2b\xbc\x14\xc0\xb8\x9a\xd3\x3a\x5d\x01\xf5\xe1\x36\x07\x22\x51\xf1\xbb\x90\xcf\x22\x83\x07\xc2\x7b\x1a\xc0\x49\xc5\x2b\xa0\xdc\x90\x96\xe1\xff\x1a\xb0\x1b\xc7\x7f\x45\x2e\xf2\xf7\x60\x43\x5a\xf4\x62\xe0\x24\xdc\x3d\xf7\xc6\x65\x30\x20\x13\xdf\xc6\x69\x34\xe2\x29\x44\xc8\x3b\xfa\x00\xc9\x43\xcf\xe8\x98\x16\x65\xf9\x5c\xdd\x4a\x36\xc7\x30\xc6\xa0\x9a\x70\x49\xa8\xa1\x90\x40\xd8\xc4\x93\x0c\xe6\x59\xa5\x55\x1f\x8c\xd6\x5e\xe5\xad\xd8\x63\xb3\x3b\x3a\x8f\x78\x08\x07\xbe\xa0\xd8\x7b\xc8\xd0\x83\x62\x8f\x74\xdd\xbc\xde\x2c\x92\x30\x49\x3a\x09\xb4\x00\x7a\x04\xe3\xc8\x7b\xcc\xce\x4b\x42\x9d\xf1\x85\x20\x15\x13\x55\x85\xa5\x8d\x09\xd2\x9d\xf8\x69\x2c\x1f\xaa\x8d\x4d\x23\x30\xdd\x75\xda\xb5\xd0\x82\x04\xed\xf9\x74\xb0\x55\x48\x65\x19\x1d\xdc\x4d\xad\x93\x45\x09\x37\x74\xb6\x0d\xfd\x86\x6a\x2d\x1b\x06\x8e\x8d\x28\xbc\xc2\x8d\x25\x2d\xc6\xb5\x62\x2e\x97\x8d\xa2\xb3\xd2\xb4\x6d\xe3\x6f\xac\xd7\x57\x93\x04\x0e\x7a\xfb\x72\xe8\x03\x61\x87\x58\x06\x1b\x33\xa7\xc2\x77\xb8\x45\x21\xf7\x2d\xb9\x10\x42\x62\x98\x1e\x33\x28\xd9\x82\x99\xfa\x0f\xdf\xa7\xe8\x11\xd2\x50\xa4\x11\xac\x1c\x24\xf2\x47\x5a\x12\xfb\x9e\x8b\x76\x58\xe4\x0e\xac\x15\x97\xc3\xaf\x3c\xe5\xfe\x57\x6d\x20\x7a\xab\x03\x27\xff\x6b\xcd\x0b\x8a\x84\x26\xf7\x39\x3b\xfa\xeb\xe7\x9b\x63\x8c\xea\x92\x63\xb8\xb5\x8e\xf7\x2e\x56\xcb\x89\x58\x3c\x4b\x13\x9a\x20\xbc\x66\xa8\xf3\xbf\x7e\xbe\xc1\x50\x32\x08\xb5\x01\x1d\x3b\x88\x5e\x7f\xfd\x7c\x83\x1f\x12\x66\xdb\xb2\x10\x98\xac\x53\xe9\x52\x1b\x5e\x98\x13\x0c\x09\xa3\xf1\xf4\x7f\xd5\x8b\x55\x50\x76\x56\x62\xf2\x94\x8d\x2a\x29\xc6\x49\x61\xc9\x6d\xb5\x07\xa0\xb2\x03\x06\x85\x74\x0f\x2f\x9c\x78\x2d\xf2\xc3\xad\x4a\x4f\xa2\x02\xf8\x25\x6b\x8f\x5e\x7f\x38\x63\xef\xde\xbd\xfb\x5f\x0c\x80\x96\x41\x1c\x93\xe8\x42\x8e\x6a\xbd\x8f\x80\xe6\x86\xf1\xcc\x71\x9b\x42\xe4\x93\xa6\x64\x54\x84\x1c\x04\xc8\x3e\x08\x20\x76\x1e\xcf\x19\xd2\xcc\xf3\x65\xe2\xd1\x91\x39\x6e\xa0\x36\xed\x16\x3b\xf0\x56\xcc\xca\x62\x63\xb1\x0c\xdf\x2a\x71\x95\x71\x66\xfd\x43\x37\xba\x10\x1d\x9e\xe9\x52\x0a\x6f\x89\xae\x84\x0f\x20\xef\x08\x33\xb8\xaf\xed\xf4\x9b\xd5\x76\xda\x57\x2f\xfa\xbd\x54\x2f\x42\x08\x86\xee\xf5\x8b\x70\x6f\x0e\xcd\x97\xab\x61\x14\x26\xbd\xdc\xc3\xbf\x48\x93\x3a\x2d\xc9\x32\xba\x06\xd8\xa8\xeb\x56\x21\x21\x6d\x91\x8e\x80\x1d\xa9\x81\x58\xe3\xcd\x1b\x74\x3a\xc9\xfc\xe4\x47\x3a\x78\x95\x55\x72\x32\x28\x98\x25\x4d\xcb\x5e\xb8\x91\xf0\x87\xe7\xaf\x58\xc0\x29\x70\x8e\x46\x83\x1d\x14\x71\xf2\x1d\x6f\xae\x21\x98\xb6\x5c\xa8\x25\xe8\x7f\xdc\xd7\x14\xfc\xba\xf9\xce\x33\x6b\x0a\x86\x3b\xb7\x7b\x2f\x6d\x38\xd1\x2f\x31\xcc\xef\xd9\xe8\xef\x85\x8d\xee\x8b\x00\xe2\xf3\x2f\xc0\x43\x5e\xa5\x18\x60\x43\x04\xe8\xc4\x47\x00\x26\x3d\xaa\x38\x10\x9f\xca\x2d\xa7\x80\x7a\x22\xd3\x60\x86\x89\x40\x9e\x5e\x26\x88\xfa\xd0\x66\x76\xb3\x97\xf9\x16\xee\xaf\x69\x6e\x52\xa7\xe5\x58\xc0\xc0\x5f\x3b\x73\x42\xc1\x09\x8c\x18\x03\x98\x8d\x04\x0c\x85\xa4\xce\xd9\xba\x38\xba\xaf\x43\xba\xdb\x7c\xf6\x2b\xfb\xa8\xab\x27\x0c\xbe\xbb\x01\xf6\xb1\xf6\x02\x2c\x36\x4f\x23\xce\x38\xf3\x2d\x7c\xad\xb4\x00\xc8\xd2\xa5\x5e\x61\x87\x32\x98\x1f\x6e\xa8\xfe\x65\x03\xa4\x05\x8a\xfa\x21\xec\x01\x98\xd6\xac\xc6\x30\x48\xf6\x29\xe0\xf4\xb7\x9b\xc4\x12\x1d\x64\x7a\x41\x1b\x7c\x09\x71\xc7\x6a\x12\x7c\x02\x17\x4f\x03\x76\x77\x20\x9e\xec\x77\x77\x07\x3d\x76\x77\xf0\x34\xc6\xfa\x6c\xb3\x80\xfb\x0c\x9c\x94\xe0\xd3\x20\x9f\x01\x1b\xb7\x8b\x2d\x6d\x97\x92\xfe\x59\x15\x9b\x12\x95\xd3\x78\x71\x48\xf2\x60\x47\xee\xcd\x93\xc7\x4a\x5a\x71\x3c\x00\x3c\xb4\xcf\x00\x03\x12\x70\xc6\xc7\xba\x22\xff\x70\xf8\xd1\x27\x27\x49\xc5\x70\x77\x3f\xb9\x05\x5c\x85\xc5\xb4\x36\x61\x04\xb7\x7e\x23\xae\xe6\xcf\xd4\x8c\xd0\xdf\xdc\x4a\xe6\xee\xd0\x03\xae\xe5\xc2\x49\xda\x6d\xb1\xd2\x30\xc4\x4d\xac\x6d\xe3\x05\x82\x9c\xe7\x4a\xe4\x37\x01\xf3\xed\x56\x54\xb3\x35\x77\xe8\xd4\x27\x06\x97\xfe\xd5\x14\x2f\xce\x8a\x6a\x16\x52\x99\xc1\x51\x08\xe3\xa0\xa4\xe2\x90\x68\xfc\x28\x20\x22\xe1\x0d\x3b\x92\x03\x31\x60\xd2\x91\x67\xce\x94\xee\xeb\xf2\x78\xc0\x4e\x99\xaa\x8b\xa2\xc3\x07\x94\x0e\xfd\x53\x47\x06\xbd\xfd\xa1\xaf\xcd\xd7\xb6\x0c\xb0\x9c\x5b\x13\xe5\x14\x44\x0b\x56\x6f\x1d\x75\x3e\xc5\x28\x83\x00\xb3\xe5\x26\xd4\x5b\x00\x65\x5a\x84\xf5\xc1\x25\x5b\x91\xb3\x8a\x3f\x6e\x38\xb0\xbf\xe0\xa2\xb7\x3f\xd5\x80\x40\x6f\x7e\x53\xb5\x26\x16\xe0\x3e\x2b\xa8\x83\xfa\xb6\xff\xf6\xcd\x9b\xdd\xe0\x93\x74\x3c\xf7\x34\xcf\xde\xd2\xed\x7b\xf9\x5d\xd0\xa3\xb5\xdc\xc3\xfd\xde\xb0\x0b\x4f\x05\x2f\xec\x94\x65\x53\x91\xdd\x13\xf9\x0c\x15\x00\x19\x9f\x70\xa9\x8c\x4d\x8b\xf3\xb8\x36\xb9\x40\x07\xae\x88\x98\xf6\xa8\xd1\x17\x50\x16\xa6\xa2\xc0\x31\xab\x63\x50\x4e\xc5\xc7\x63\x99\x75\x38\xcb\xe2\xe9\x05\xa2\xc5\xc5\x93\xc8\x4e\x01\x84\x72\xed\xf9\xfd\xac\xd0\x37\x00\x21\x4a\x5a\x05\x97\xf2\x58\x17\x85\x7e\x04\xd6\x13\x60\x10\x12\xbc\x63\xd7\x7b\xf8\xdb\xf8\x18\x6d\x5f\xc4\x8b\xdf\x8b\x15\x27\x9b\xdc\xe5\xb7\xd3\x4a\x98\xa9\x2e\x36\x29\x9c\x9f\xa4\x92\xb3\x7a\x06\x79\x26\x22\xab\x21\x17\x8c\xba\x48\x60\xe7\x60\x23\x71\xbf\x12\xf8\x50\x0f\x1b\x0a\x61\x3d\x4e\x4a\x72\x73\xf1\x91\x06\xad\xbc\xa6\x01\xf3\x5f\x0a\xb9\x62\x6f\x77\x8e\xd4\xe3\x64\xb1\x3f\x8b\xed\xb3\xf6\x7f\xbc\xbd\x1d\xfe\x59\xd8\x0e\x9b\x4a\x2d\x5b\x1b\xe4\xbe\x9f\xe2\x2e\xd2\xd9\x5e\xb1\x53\x84\x14\x7b\x2e\x0a\x3e\xef\x96\x27\x78\x55\xcf\x46\x02\x24\xd1\xc5\x7c\xb8\x66\x08\x85\x0f\x96\x24\x77\x52\xd1\x04\x44\x85\xe8\x9e\x50\xb3\x60\xb7\xf1\x92\x31\x4e\x12\xbf\xb5\x73\x34\xa6\x67\xe4\x55\xfe\xa8\x1f\x99\x1e\x5b\xa1\xd8\x51\xcc\x21\x3c\x4e\xab\x37\x84\xd3\xdd\x48\x76\x7e\x1b\xb3\xf0\xbe\xc4\xb1\xa5\x28\x9b\x97\x5c\x59\xea\x62\xf3\x9d\x4d\x22\x71\x1b\xf7\x16\xef\x72\xf3\xd2\xbe\x1d\x04\x79\xfa\x2d\xf4\x1b\x8e\x11\xa4\x49\x23\xa0\xee\x17\x59\x21\x9b\x95\x37\x3a\xbb\x7f\xc1\xd5\xbe\x3d\x1b\x62\x0f\x1d\x2e\x77\x68\x9b\x5c\x6f\xae\x3c\xf9\x95\xea\x41\x17\x0f\x88\x76\x75\x7b\x36\x04\x0c\xfb\x01\xfc\x6b\xaa\xf5\xbd\x89\xe1\xda\x5e\xe1\x58\x31\x25\x39\x13\xba\xb6\x2f\xbb\xf8\x49\xf8\x38\x6e\xb7\x9c\x09\xc3\x74\x6d\x5b\x1b\x49\xaf\x2d\xdd\xab\xaf\xff\xf6\xbf\x58\xe9\xad\x34\x96\xb6\xe8\xa8\xf5\x5e\xa7\x0a\x6e\xe9\x5f\xf6\x1a\x2e\xea\xb7\x9b\x65\x0b\xca\x80\xfe\xa4\xf3\x4d\x3a\xae\x6b\x82\xf5\xe5\x3d\x0c\x92\x11\xb6\x59\x18\x3e\xb1\x28\x41\x3d\xfb\x08\x77\x13\xef\x28\x57\x4c\x67\xd6\xdb\xfe\x03\x46\xc2\x9b\x37\x6f\xde\xc0\x85\x7d\xf3\xc7\x3f\xfe\x91\x01\x5a\x69\x2e\x32\x39\x5b\x6c\x08\xad\xfe\xed\xed\xdb\x01\xfb\xcf\xd3\x4f\x1f\x29\x8a\xd3\x20\xd4\x00\xf6\xec\x1a\x34\x5e\x36\x3d\xf6\x7f\x6e\x3e\x5f\xf9\xe8\x17\xd3\xfa\x15\xa8\xc6\xcc\x4f\x6f\xc0\xce\x65\x05\xb2\xb1\x87\xa0\xf3\x41\x82\xdc\x4e\x81\x27\xb9\xbb\xc3\x01\x7c\x22\x01\xea\x27\x4d\x95\x62\x24\xb0\x7a\x26\xd4\x2b\x01\x18\x91\x42\x7a\x80\x39\x8c\x74\x0e\x75\x5a\xa7\xdc\xf7\x15\x4c\x06\x30\x94\x1e\x2b\xe4\xbd\xf0\x95\xe2\x63\x18\x2d\x86\x21\xfb\xac\x4a\xec\x2c\x0c\x1d\xf2\x0a\x76\x4e\xf7\xc9\x2f\xb2\xfe\x74\x14\x8d\xdc\x4f\x7f\x1e\x77\x9f\x8b\x86\x97\x63\x18\xba\x7f\xbe\xab\xa3\xa3\x4e\xe2\xa7\xfd\x52\xf5\xe3\xaf\xb5\x1e\xcd\xad\xd8\xe6\x52\xd3\xab\x64\x34\x82\xa3\x52\x70\x9f\xca\xe8\xa8\x19\x04\xf2\xc4\x94\x49\xdf\xde\xe7\xdf\xe6\x1a\xa1\x25\x90\xc4\x33\xfd\xa8\x44\x65\xa6\xb2\x64\x33\xae\xf8\x04\x82\xc0\x00\x73\x9e\x6a\x32\x57\x02\x70\x9c\xdd\x21\xde\x4c\x37\x26\x1d\x4a\xf5\xc3\xd1\xc5\x62\x96\xa5\x3f\x18\x1c\x18\xbb\x7b\xe8\x25\x19\x84\x48\xc4\xfe\x5e\xcb\x18\xb5\xd6\xd8\xd4\x5c\x36\x12\x46\x7c\xbe\x32\x62\x29\x0b\x9e\xf7\x31\x47\x2c\x92\xbb\x26\xf3\xda\x1a\xc7\xc4\xe3\xe9\x6c\x9c\x01\xc1\xee\x34\xec\x9a\x04\x3d\xe3\xc8\x57\x5d\x58\x59\x16\x71\x36\xe1\x85\x58\x49\x2d\xc0\x97\xf1\xc4\x75\xc7\x11\xf8\xe8\x3d\x1c\x91\x92\xcb\x8a\x1d\x85\xbe\x84\xb2\x40\x04\x11\xa8\xa2\xe4\x55\x34\x2f\x64\x7a\x36\xe3\xe6\xd8\xa3\x01\x64\x6e\x38\x78\x30\x33\xf7\x16\x2f\x22\x50\x90\xa3\xae\x4b\x73\xb3\xbb\x01\x96\x28\xbe\x11\xae\xeb\x16\x1a\xb9\x03\xee\x0d\x1e\x88\x74\xdd\xda\x59\xa2\xe3\x3f\xf0\xec\x5e\xa8\x9c\xfd\x64\xfc\x64\xf2\xb9\xe2\x33\x0a\x8f\x2e\x2b\xfd\x20\xc9\x17\xde\xba\x50\xbd\x28\x90\x38\xd6\x47\x16\xda\xb2\xa8\x27\x52\x3d\x7f\x66\xf5\xe6\xea\xfb\x3f\x19\x34\x2e\xac\xbb\x3f\x54\x75\xa6\x92\x0f\x99\xf0\x05\x1f\xa0\xeb\x67\x0f\x88\x2c\x9a\x5d\xcc\xa3\x0d\xe7\x2f\x10\xa6\xa4\x0a\x8e\x13\x42\x09\x33\xdb\x8b\x03\xad\x8d\x18\xcd\x11\x62\x75\xb7\xd6\xd3\x70\x93\x16\xe7\xf4\x52\x22\x7e\xfd\xc3\xf9\x50\x54\x46\x1a\x2b\x94\xdd\x86\x94\x5f\xf3\x5c\x1b\xf6\x43\xa1\xb3\x7b\x76\x2e\x20\x8a\xb7\x2b\x55\xbf\xfe\xe1\x3c\x50\xf4\xb5\xa4\x1c\xd0\x98\xb6\xa1\xe5\xdd\x5c\x1c\x2d\x4f\x05\xd9\x87\x3c\xd1\x74\xd3\x98\xeb\x9a\x3d\x72\xc4\x8c\x83\xd9\x0d\xd8\xad\x2c\xdf\xb3\x0b\x65\xea\x2a\xc9\x21\x6b\x3b\x3d\xa4\x79\x86\xdf\x03\x0a\x14\x99\xf7\x8b\xde\x0f\xf7\x0f\x65\xb7\xf5\x83\xbc\x10\x74\xe2\x9b\x6a\xb4\x45\x14\x33\x84\xc7\x76\x88\x01\xaf\xe0\xf4\x40\x6b\xc2\x26\x5e\x32\x5a\xaa\xdd\x64\xbc\x7f\x8f\x46\x76\x52\x8d\xf2\x93\xeb\x8b\xd3\xf3\x4f\x17\x83\x59\xfe\xcd\x54\x3f\xf6\xad\xee\xd7\x46\xf4\xa5\xdd\x22\xc6\x52\xcc\xe1\xc7\x0d\xf1\x21\xd8\xca\x43\x24\x81\xe0\x6c\x35\x20\xc6\xc1\x73\xc7\x11\xae\x7f\x38\x77\xe4\x6d\x90\xca\x01\x27\xc2\x66\x27\x99\x28\xa7\x27\xf4\x9d\xdf\x6e\xa2\x33\xad\xa4\xd5\x1b\xeb\x29\x9d\xb2\x4c\x17\x05\x8a\xa2\xee\x4a\x9c\x89\x72\xca\xfc\xbb\xaf\x33\xfa\x15\x12\x74\xd7\x4a\x21\x1d\x22\x80\x4a\xad\x8b\xce\xa7\xd2\x35\xa6\x43\x99\xec\x64\x35\x5a\x7e\xa5\xbe\xc8\xde\xed\x42\x28\xdc\xe8\x81\x5c\x22\xfd\xbd\xea\x84\xd7\x83\xe1\x41\x59\xb4\x6b\xd0\xa1\xb6\xb3\x3c\xdd\xf8\x1e\xc8\xeb\xb2\x36\x12\xc1\xb7\x05\xd9\x3d\x81\x0e\xe5\xb5\x9d\x0a\x65\x7d\x8c\x02\x8e\xaa\x79\xdb\x2f\xc7\x28\x61\x41\x55\xa6\x07\x51\x55\x00\x23\x15\xae\x7b\xaa\x14\xc8\x62\x67\x2b\xba\xad\x00\x16\x8f\xb9\x6b\xbc\x78\xcc\x79\x3e\x93\xea\x0b\x1f\xf4\x8e\xd2\x50\x20\x60\x0b\xfc\x66\x07\xc2\xd0\x5e\x04\xda\x8b\x40\x7b\x11\x68\x2f\x02\xed\x45\xa0\xbd\x08\xf4\xbb\x11\x81\x96\x56\x7f\xdd\xcb\x41\x7b\x39\x68\x95\x1c\x24\x1c\x87\x85\x2d\x8e\x25\xa8\xd6\x4b\x43\x8b\xed\xdb\x31\xa3\x8d\x52\x87\x28\x02\x55\xf1\xbd\xb4\xb8\xde\x3e\x29\xe8\x6b\x4e\x0a\xda\x67\xd1\xfc\x5e\xb2\x68\x3a\x26\x26\x50\xa9\xcb\x8f\x58\x0a\x15\x2e\xee\xf2\x0b\x0f\xa5\xb3\x43\x5d\x9f\x39\xfc\x4d\x5e\xf2\x20\xa2\x07\xc8\x7e\xee\x4b\x0f\xe6\x47\xe6\x38\xaa\x0f\xcb\x49\x02\x69\x42\x06\xc0\x53\x7f\x87\x59\x12\x4b\xd7\xb3\x53\xde\x44\x83\xac\x99\xe7\x24\x52\xac\x20\xbe\xbf\x5d\x6e\x45\xba\x98\x6d\xfc\xdd\x5d\x2c\xe7\x12\xd8\xc0\xe5\x60\x9c\xa4\xd9\x34\xe1\x0f\xf5\x08\x80\x33\xf3\x04\xcf\x77\xdd\x2a\x42\xac\x04\x64\x28\x11\xe8\x8c\x46\xe0\x54\x80\xaa\x18\xcd\x11\xed\xe8\x11\xea\x97\x40\x57\xd2\xc9\x1d\xc3\x14\xa7\x33\x05\x4a\xba\xf6\x6e\xda\xaf\x38\xf5\x25\x3c\x7f\xad\xa4\xb4\xe5\x52\x49\xa3\xe9\x4b\x53\xd3\x96\x7e\x22\x22\x04\x3f\x53\x02\x0a\x2f\xb6\x12\xd7\x12\x90\xe7\x15\xe4\x8e\x43\x14\xb6\xa8\x00\x34\x0e\x98\x5b\x07\xa1\xa8\xe0\xc6\xde\x56\x5c\x19\xf8\xe6\x97\x06\x63\x01\xb4\x52\x6e\x2c\x62\xb0\xd8\x14\x50\x8f\xd9\x30\x2a\x9f\x92\xa7\x55\x00\xc6\x06\xc4\x2e\x08\xf7\x59\x11\xa7\xfb\x5a\x78\x9a\x50\x82\x22\x8c\x6c\xbb\x7c\xa1\xcd\x50\x3d\xb7\x11\x44\xd0\x87\x86\x86\x85\x81\x02\xe3\x6e\xc9\x5e\x32\x8a\xe5\xb4\x72\x39\x65\x8b\x28\x78\x38\x80\x9e\x0f\x88\xbf\x05\xd0\xd7\x0f\x4e\xd3\xed\x79\x58\xb6\x6d\x8a\xb0\x6c\x36\x35\xde\x92\x7d\x71\xc5\xc9\x7f\x36\x9a\x69\x47\x65\xa9\x05\xc4\x7d\xd0\x24\x6f\xbb\xd5\x94\x36\xa0\x23\xac\x7c\x07\x45\xe6\xa6\xcd\x69\xf9\x32\xed\x81\x13\xbe\x6e\x1d\xe9\x39\xc0\x09\xab\x76\x78\xfb\xb8\xe0\xa4\x97\x93\xa4\xf7\x6c\x05\xd3\x7c\x69\xe0\xe2\x72\xbe\xfc\x12\x1b\xe5\x5e\xc5\xfc\xbd\xa8\x98\x7b\xa0\x06\x7c\xfe\x45\x65\xe2\xdd\x43\x36\xac\xd6\x4f\x9f\xc9\xe6\x40\x65\x95\x2b\xb4\xd5\x17\x18\x04\x67\x52\x39\x1d\xa9\x63\x1e\x97\xcf\xc2\x50\x0b\x69\x1d\x4e\x44\xa3\xc0\x4f\xa6\xc4\x63\x11\x03\xfd\x12\x98\x89\x91\x07\xcb\x7f\x94\x76\xea\x24\x49\xae\x00\xc5\xb2\x51\x46\x9c\x65\x15\x37\x53\x40\x0b\x76\x9d\x4a\xbb\x98\x0b\x14\xc0\x28\x9b\xfe\x86\x37\xec\x28\xc5\x22\x5f\xf6\x02\xe3\x06\xb0\xc3\xdd\x7f\x31\x1b\x13\x06\x74\xbc\xeb\x08\x79\xda\x8f\x4d\xeb\x49\x5b\x1d\x34\xe7\xb8\xae\xde\xf8\xe0\x3b\x1a\x24\x25\x92\x81\xa2\x52\x8e\xa9\x34\x8e\x62\xd7\xd2\x4c\x43\x3a\x84\x78\xa2\xdc\x6b\x80\x14\x76\xf2\x40\xc3\xa5\xdb\x4e\x94\x7a\x35\x66\xf9\xcd\xe3\x94\xdb\xbe\x34\x7d\xde\xef\xc0\x4c\x77\x90\x95\x40\xf9\xcb\xed\x35\xe7\x39\x0a\xc6\xbc\x18\x2e\xbf\x04\xec\x39\x9e\xc2\x05\x87\x0f\x65\x77\x23\x54\x17\x1f\x89\x82\xfd\x5a\x8b\x6a\x8e\xb8\xdc\x11\x74\x8d\xae\x40\x44\xd9\x0d\x7b\x9f\x61\x50\xc0\xe5\x98\xa5\x9d\x91\x3d\x10\x0f\x69\xc3\x18\x88\xc2\x1f\xd8\x14\x89\x11\xfb\xf2\x00\xc3\x06\x7c\x1b\xd8\x1d\xd9\xbd\x98\x63\xda\x1b\x25\xb6\xc0\x60\x12\xc0\x5f\xa9\x98\xae\x72\x3c\x4d\x23\x11\x89\x47\x4c\x63\x59\x4e\x5b\x7a\x4c\x8e\x63\xe1\xf0\x38\x3a\x1a\x99\x56\xad\xd1\x3c\xf3\x9c\xb9\xd5\x7b\x90\xe2\x11\x0e\x9c\x54\x93\xbe\x23\x19\x7d\xc2\x00\x38\xc1\x8f\x9c\x7c\x03\xff\xed\xfb\x8d\x5f\xc1\xb9\x53\x8d\xa4\x7d\x66\x7e\x1b\x58\x3e\xba\xed\x24\x4f\xc1\x8e\x34\x0d\x1d\xa1\x08\x41\x1b\xaa\x4f\x8e\x99\x54\xa6\x1e\x8f\x65\x06\xb2\x94\x27\x0f\x64\x32\xb6\x90\x80\x44\xb4\xc2\xf2\x7b\x01\x47\x24\x13\xb9\x50\x99\xc0\x13\xc9\x99\x1f\xc6\xb5\x18\xbf\xea\xf5\x2f\x75\xde\xb7\x0b\xf0\x63\x2f\x4e\x8a\x5b\x67\xa3\x7c\x2e\x53\x5d\xa8\x44\x06\x62\xaa\xaf\xd0\x95\xd4\x1f\xdb\xde\xe1\xe6\x39\xcf\x75\x37\x8e\x70\xdb\xe0\x02\x91\x6f\x85\x8d\x3e\x42\x0e\x0a\x98\xcc\x1e\xa3\xbc\xc5\xc4\x3d\xb6\xee\xca\xbb\xbb\xf3\x84\xb0\xce\xd5\xcf\xae\x9b\x4b\x4d\x3a\x6c\x9c\x26\x1a\x8b\xb1\x54\xe7\xba\x95\x3f\x34\x8d\x6d\xda\x75\xa1\xa5\x0d\xe6\xcc\x8e\x2a\x5a\xe3\xa7\x2f\x59\xf0\x0c\x2a\xeb\x02\xf9\x17\xf9\x56\xe7\x2e\xb2\x2d\x40\x06\x23\x9a\xde\xc0\x0f\x29\x82\x57\x2b\x10\x2c\x4f\xde\xd6\x5b\xf8\x77\x7d\xf6\xbc\x7f\xe1\xcf\x42\xf9\x52\xac\xeb\xa7\xfa\x79\xe1\x05\x56\x89\x71\x01\xe0\x32\x90\x28\x14\x9f\xd3\x4c\x56\x38\x34\x9e\x3f\xc1\xad\xea\xdf\xc2\x85\xdf\x6a\x1b\x91\x54\x04\xd2\xf1\xa5\xa9\xc2\x96\x42\x70\x7b\xb5\x71\xb1\xd3\x59\x79\x91\xf8\x9f\x5c\x76\xed\xa8\x31\x87\x65\x7c\xb9\xcd\x15\xad\x39\x1f\xa4\x28\xf2\x9b\x45\x69\x79\x71\x63\x96\xb4\x4f\xb9\x65\xd4\xd9\x62\x85\xa5\xa3\xac\xac\x7b\x6c\x26\x66\xba\x9a\x1f\xfb\x1c\x65\x59\xf9\x12\x88\xb4\x54\x1b\xf9\x66\xe8\xba\x43\x71\xad\x50\x83\x0c\xa2\x90\xde\xfb\x9c\xee\x3c\x4d\x33\xec\x51\x7e\x35\x2f\xb0\x56\x85\x7a\x60\x0f\x7c\x95\xc4\xb8\xce\xd6\x93\xcb\x07\x69\x16\x95\x8c\x67\x9b\x7a\x06\x01\x70\xee\xaf\x35\x57\x56\xda\x79\x17\xa8\x3f\x92\x0f\x1b\x8b\xe9\xa9\x94\x78\x2a\xb5\x01\xb2\x44\x7b\xd1\xf3\x92\x39\xe8\x7a\x77\x07\x6f\xef\x0e\x56\x5d\x54\xd3\x8e\xdb\x5e\x7e\x1e\x70\x5d\xdf\x27\x76\x41\x4d\xf8\x56\xbb\xce\xdb\xa3\x01\xed\xea\xc8\xff\xb5\xd6\x0d\xf3\xdc\xaa\xa3\x0e\xed\x98\x11\xd6\x30\x3e\x99\x54\x62\xe2\xf8\xd9\xaf\xf0\xb0\x12\x6e\x36\x98\xc0\xce\x84\x82\xa0\xc8\x1c\x8a\x0a\x86\x0a\xff\x7b\xdf\xc2\xd7\xec\x5b\xd8\x1b\xc7\x7f\x2f\xc6\xf1\x7f\x69\x60\xd8\x06\xa9\x7a\x7e\xa8\x93\x37\x2c\x02\x51\xfb\xd2\x18\xff\xbb\x8c\x54\x4a\x57\xa1\x73\x84\x52\xba\x12\x54\x39\x3c\x90\x72\x24\xf3\x50\xfe\xd7\x46\xf5\xb2\x36\x7c\xf2\xaf\x57\x0b\xa1\xc9\x37\x77\xec\x12\x49\xba\xde\xe8\xf1\x6f\xb5\x6d\x56\x44\x68\x72\x6d\x50\xfa\xf7\xfe\xfd\xaf\x9a\x07\x77\xf1\xef\x5f\xba\x36\xeb\x36\x9a\xac\xc0\xcf\xd6\xff\x4a\x5d\xc8\x6c\x9e\x54\x1a\x73\xbd\x99\x93\x5d\x9b\x8e\xd2\x9b\xd3\xd1\x52\xb4\x97\x57\x7e\xd7\xf2\xca\xde\x99\x8f\xcf\xbf\x08\xb7\x7a\x0d\x27\x7e\x5b\xe2\xea\xc8\xb1\x56\x0a\x5f\x53\xdc\x67\xb8\x39\x56\x7b\x11\x04\x2c\x13\xf0\x62\x07\x2e\xe6\xba\xd8\xce\xd3\xb9\x0b\x53\xc5\x4a\xba\xd6\x5a\x0e\x98\xa8\x0f\x5b\x10\x36\xf5\x6c\xa7\x6b\x10\xca\x87\x3a\x55\x3a\x5a\x30\x5e\x87\xc2\x77\xf1\x0b\x9a\x4c\x97\x62\x89\x89\xac\xd3\x02\x46\x04\x85\x46\x2f\xeb\xd6\xa9\xf1\xbd\x04\xdc\xbc\x19\xd3\x38\x96\x85\x75\x04\x1a\x70\x00\xe1\x95\x45\x7f\x2e\x56\x61\x25\xcf\x62\xc5\xb3\x7b\xf4\xe4\x72\x12\x6f\x47\xb5\x65\xe2\xa9\x84\xc2\xb1\x39\xab\x8d\xe3\x10\x8d\x61\x7e\x86\xec\xf2\x50\x04\x78\xe4\xab\xc2\x03\x2a\x56\xa8\xa9\xed\x25\x8d\x0f\x00\xcb\x98\x9a\x83\x60\x14\x3d\xc4\x5e\xa4\x21\x9e\x5e\x9d\xb3\xe6\x04\x8f\xe4\x38\xc1\x1e\x93\x0a\xfe\x38\xee\xe1\x3c\x46\x82\x60\xdf\xf3\x15\x71\xcd\xd8\xed\x33\x73\x90\xfd\xda\x3d\x6f\xbd\xc0\x2d\x0f\x88\x79\xcd\xda\xb9\xb8\x98\x4b\xe0\xef\xbb\x39\xa2\x5e\x9a\x96\xbc\x49\x3f\x78\x1e\x45\xdb\xec\x3b\x5d\x68\xdd\xa0\x6a\x41\x83\x4a\xaf\x34\x20\x87\x7b\x4f\x49\x6d\xba\xd4\xd5\xf8\xe7\x20\x69\x3f\x2e\x92\xb4\xa5\x0b\xf0\xd5\xd1\xb4\xda\x88\x7f\x82\xe5\x05\x08\x3e\xd9\xf4\xc4\x87\x73\x64\xb5\xe5\x05\xaa\xe4\xd1\xcb\x48\xb4\x87\xa0\xfc\x82\x31\x76\x45\x1c\xfc\xc2\x0a\xed\xea\x2e\x5d\x27\x75\x94\x3b\x5c\xa6\xb4\x79\x2b\xfa\x23\xd3\xb3\xb2\xb6\x62\x79\x89\xe6\x2e\xf9\x2c\x70\x00\xbf\xfe\xad\xfe\x88\x17\xa5\x39\xf9\x19\x7f\x82\x10\x43\x8e\x48\x30\x7a\xbc\xb0\x1c\x58\xef\xfc\x71\x0b\x78\x92\x46\x26\xf5\x09\xa6\x46\xf6\xa9\xfb\x7e\xe8\xbe\x1f\x7c\x4f\x5b\x5c\x32\xaf\x07\x7d\xfd\xab\x7f\xed\x35\xb6\xd6\xfa\x53\x88\xe7\xba\xf5\xf7\xca\x00\x70\xc7\xd0\x8f\x53\x2a\x67\xd2\x5a\x72\xbc\x25\xd5\x30\x20\x8c\x2d\xf5\x45\xd1\xce\xcb\x31\xb2\x63\x69\x42\xd0\x62\x31\x4f\x59\x2d\x64\x37\x3d\x4a\x23\x30\xd9\x09\xca\xca\xc0\x35\x80\x1d\xec\xfb\x42\xcc\x20\x8d\x7c\x35\xa7\xe1\xa5\x04\x85\xd0\x8a\x3e\x97\xed\x80\x9a\x05\x8d\xb1\xd1\x10\x42\xc0\x92\xc8\x0c\x8c\xe7\xe3\x65\x59\xc8\x18\x37\x18\x26\xd3\x81\x8a\x38\x15\x72\x53\x2a\x86\x6b\xe3\xb6\xcf\x23\x2c\xc1\x4b\x14\x06\x89\x40\xd6\xf0\x7d\xb3\xf0\xfd\x6d\xb2\xc6\x74\xb1\xd1\x43\xa9\x0b\x02\x22\x0d\x90\x4f\xee\xc9\xeb\x8c\xa7\x6b\xce\x56\x63\x3c\x00\xed\xf4\x3a\xe3\xe9\x8a\x1e\xdb\x18\x0f\x80\x77\xec\x70\x3c\x2f\x3e\xfc\x19\x2f\xc4\xe5\xe7\x67\x43\xab\xae\x7d\xaf\x89\x90\x5c\x86\x36\x8c\xde\x6a\x57\xee\xda\x2d\x26\x58\xc4\xfd\x7a\xa5\x22\x6f\x29\xc6\x57\x82\xc0\x42\xbf\x3e\xff\x20\x4d\xb8\x15\x8f\x7c\x13\x50\xd0\xad\x1f\x25\xcf\x73\xa7\x4e\x7a\x81\xcc\xaf\xe9\xe9\xf0\x92\xfd\x19\x7b\xda\xe2\x30\x97\x95\xb6\xa8\xbc\x9d\xeb\x19\x97\x5d\x92\x45\x53\xb8\x1d\x3f\x88\x61\xe8\x86\x61\x3f\x69\x2e\x29\x50\x7f\x48\x4c\x07\xd4\xb2\x7f\xa1\xc2\x77\xbf\x15\x38\x64\x02\x09\x4d\x04\x26\x01\x42\xf2\x7b\x06\x24\x09\xd4\x47\x28\x65\x60\x04\xa4\xf8\x3e\x20\x6b\xaf\x66\xc0\xae\x41\xf2\xb0\x94\x11\xe1\xf4\x73\x8f\x9c\xd4\x63\x1f\xf5\x44\x2a\x7f\x75\xc0\x70\xe1\x96\x93\xcb\x62\x95\x35\xc1\x14\x17\x8a\x8f\x8a\x45\xe5\xa8\x7d\xaf\x0b\x3e\x41\x6b\x9d\x6b\x7d\x92\x4b\x03\x21\xab\x37\x37\x1f\x19\x59\x61\xb3\xc4\x54\x42\x47\x3f\xc4\xe0\xe0\xc6\x6f\xb3\x57\x78\x3a\x3b\x94\xe3\xb8\xc4\x84\x6d\x61\x42\xc1\x31\x4c\x9a\x87\xf7\x49\x26\xf3\xb5\x40\x42\x42\xce\xed\x54\x66\xf7\xc3\x04\xe1\x5c\x57\xee\x99\x4a\x1e\x35\xa8\x4a\xfb\xb7\x6d\xf2\xae\x61\x40\xc3\x6e\x78\x6a\xfe\x54\xdc\xd0\x34\xdc\x6b\x4b\x8b\xe8\x45\x8a\xc1\x72\xb8\xea\xdb\x0c\x0d\xc8\xec\x33\x69\x8d\x5f\x60\xa2\xe7\x90\xd1\x11\x68\x8b\x54\x7e\x06\x5b\x0c\x07\x37\xab\x43\x04\x5c\x3a\xa4\xb0\xc7\x6d\xc4\x75\x52\x90\xfd\x82\x7a\xf6\x43\x02\xf8\xe2\x92\x4a\xd3\xac\x1c\xb3\xe3\xc4\x72\xcf\x65\x16\x97\x7f\x29\xa1\xa2\x67\x5b\x47\x82\xd1\xb4\x9f\x27\x4e\xec\x85\x08\x5f\x47\x76\x2f\x45\xec\xa5\x88\xf6\xb8\x7f\x53\x7c\xc5\xbd\x28\xb1\x17\x25\xf6\xa2\x44\xe7\xe1\xec\x45\x89\x5d\x8a\x12\xcb\x9d\xc3\x8b\x2e\x48\xf0\x54\xc6\x0a\xd0\xad\x44\xc3\xd3\xab\xf3\xb0\xf1\x3e\x85\x35\xb6\x49\xc0\xcc\x5c\x2f\x79\x30\x49\xa6\xfd\x3d\xcb\x2f\x00\xee\xca\x0b\x74\xfe\x76\xc8\xd5\x3b\x0d\xe1\x57\x0b\xd3\x48\x5c\x17\xa3\x39\xfd\xdc\xf2\xc7\x74\xf4\x84\x3e\xcf\x97\x9e\x7b\xef\x89\x5f\xfd\xc4\x8b\xf2\xe5\xbd\xa8\x9b\x87\xb4\xf1\x6c\x6c\xd8\x55\x8a\xed\x0a\x15\xc4\xdd\x05\x23\x93\x9c\x09\x75\x0c\x39\x6d\x80\xbb\xb5\x18\x1f\xc8\x3d\xd3\xf2\xef\x54\x02\xa2\x09\xe3\x69\xc2\x2b\x1e\xd3\xc2\x3b\x9c\x1e\xdf\x63\xf7\x0c\x4f\x1a\xd8\xa1\xc1\xef\xbb\x9d\x9d\x4a\xa8\xfe\xc6\xbd\xe7\xd4\xc7\x11\xfc\xcc\x0b\x99\x87\x41\xa3\x2d\xfb\x52\xf5\xd8\x95\xb6\xee\x3f\x17\x4f\xd2\x58\xd3\x63\xe7\x5a\x98\x2b\x6d\xe1\xcf\x6d\x68\xb2\x1b\xce\x33\x69\x60\x5c\xb2\x00\xb5\x19\xf6\x23\x1a\x4b\xb7\xa1\xc8\x30\xf5\x4d\x77\x50\x31\x38\xb5\x70\x0b\x93\x10\x3f\x43\x52\x8b\x88\x1b\x2d\x0d\xbb\x54\x8e\xe5\xd2\x9a\x41\xa8\x2a\xe6\xfc\x63\x17\x3e\xb8\x42\x69\xd5\x87\xc4\xfd\xa5\x7d\xe0\x52\xbb\x7e\xd2\xc5\x5e\xd3\x1d\x75\x05\x29\xe7\xf8\x0b\x65\x18\xf2\x4c\xe4\x2c\xaf\xb1\xa4\x1c\xa3\xd4\x55\x99\x31\x48\x5c\x65\x90\xd0\xfa\x1b\x45\x4b\xac\x28\xef\x18\x4e\x47\x6f\xc9\xa9\x7f\x31\xd3\x10\x59\xa6\x67\xe5\xb0\xd2\x4e\x6d\x5b\xa7\x7a\x36\x1a\x86\x40\x0b\xa8\x7b\x71\x12\xec\xf1\x87\xc6\xc9\xbb\xae\xa1\x93\x56\xa0\x25\x49\xf6\x66\xc0\x3e\xfb\x8a\xed\xe1\x27\x24\x31\x84\xa8\xd9\x28\x09\xba\xda\xff\xe3\x64\x73\xa7\x9a\x2d\x0e\x79\xd9\xb0\xdb\xcd\x3d\x7c\xa0\xa0\x5a\xb4\xc9\x64\x40\x7e\x40\xf5\xd5\x23\x57\x28\x9d\xa7\x92\x64\x6d\x10\xc5\x20\xce\xc0\x9f\xb6\xb2\x12\x89\x48\x94\xbe\x6d\x35\x7b\xd4\xd5\x7d\xaa\x20\xbb\x21\x0a\x95\xbb\x03\x58\x72\x3b\xed\x11\x1d\x7a\x10\x5e\x65\xb8\xaf\x47\xa2\x10\xf6\xb0\x21\x67\xb5\xd7\xd5\xcd\x0c\x15\x05\xe8\x19\x8a\x3e\xe2\x2a\x82\x03\x93\x5c\x3c\x77\x07\x1f\xfd\x0a\x6c\xa5\x2e\x77\xf0\x26\xe1\xa7\x12\xc9\x5c\x66\x53\x76\x2f\x9d\x7a\x33\x5e\x18\xb5\x47\x8e\x20\x07\x60\x24\xb1\xc1\x59\xf8\xfe\x4e\xdd\xa9\x30\x68\xd6\xdf\x7a\x9f\xae\x6b\x65\xe5\x4c\x78\xc9\xbe\xdf\xf4\x1c\xb1\x0a\x7f\x0e\xda\x4b\x38\x94\xad\x6e\x7e\x52\xb0\x09\xee\xbb\x7d\xa6\xf4\x92\x76\x7e\x2e\xaf\x80\x70\xb8\xe9\x7a\x2f\x8f\x61\xad\x15\xc9\x51\x2b\xe2\x56\x73\xe9\x36\x70\x26\x15\x31\xce\x25\x59\xfe\x63\x29\x8a\xdc\xf4\xad\xee\x27\x8d\xc5\x0f\x6d\x63\xc0\xf2\x0b\x19\xcf\x9c\x7f\x96\x12\xc7\x85\x95\xd8\x18\xe9\x8a\xea\xf5\x7a\xe2\xe4\x74\xec\xa9\x2e\x72\xe3\x15\x6e\x00\xeb\x05\x6d\xc1\x03\xaf\xba\x59\xe2\xf5\xc5\x80\x9d\xd1\xdc\x9d\x57\x5f\x1b\x07\x99\x08\xa9\x10\xe7\xee\x65\x58\x83\x70\xc5\x0b\xa8\x66\x39\xe5\x8a\x7d\xe2\x4f\xf8\xc1\x1b\xf9\x0f\x81\xbd\xec\xf3\x3b\xbe\xea\xfc\x8e\x65\x81\xf3\xdd\x42\x5f\x62\x0e\xbd\xdb\xe7\xc6\x97\xb7\x47\x67\x82\xd3\x15\x04\xe6\xc4\x48\x84\xa1\xf5\x17\xdc\x11\x50\x41\xb2\x0c\xe0\x85\xa1\xc2\xc3\x8b\x72\xca\x55\x3d\x13\x95\xcc\x58\x36\xe5\x15\xcf\xac\xa8\x4c\x8f\x1d\xf6\x0f\x7b\xec\xf0\x6f\x87\x4e\x3e\x3a\x1c\x1c\xe2\x21\x37\xa2\x92\xbc\x80\x1d\x72\xb3\x88\x3a\x5d\xbc\x1e\x20\xc7\x8f\xb8\x11\xdf\x7f\xc7\x84\xca\x74\x0e\x06\xc3\x0a\x50\xce\x16\xb2\x35\x78\x35\x92\xb6\xe2\xd5\x9c\x1d\x51\xc0\xed\x1c\x84\x36\x7c\xe1\x18\x7b\xc4\x4c\x8f\xa9\xa8\x00\x04\x0d\x23\x78\x80\x60\xfb\x13\x61\xb5\x2e\xcc\x40\x0a\x3b\x1e\xe8\x6a\x72\x32\xb5\xb3\xe2\xa4\x1a\x67\xdf\x7d\xff\xdd\xbf\x7f\x63\xd0\xba\xd1\x5f\x01\x47\xb1\x2e\xc0\x49\xce\x66\xb5\xe5\xa3\x8d\xf2\xc0\xa5\x6f\x07\x40\x51\x8e\x59\xba\x73\x0f\x68\xb9\x02\x2a\x5f\x51\x28\x2e\x4c\xc6\x58\x5d\x25\x66\x05\x5c\xb8\xac\x9d\x45\xc2\x8e\x80\xf7\x52\xb0\xae\xcf\x90\xf0\x85\xcf\x67\x3a\x87\xa8\xa1\xe3\x18\xb3\x9b\x7e\x14\x4b\x6c\x39\x3a\xd3\x6a\x0f\x98\xd1\x6a\x4e\x48\xe2\xe7\x29\x96\x15\xd4\x59\x89\xb8\x6b\x23\x11\x68\x15\x1a\xee\x40\x43\x0f\x13\xbd\x28\xa7\x62\x26\x2a\x5e\xfc\x4c\x75\xc9\xc6\x82\xbb\x2b\xc6\x26\x8b\x00\x35\x9d\xcc\x75\xfb\x04\xa0\xdf\x4b\x02\xd0\x3f\x7d\xc2\x32\x2c\xd7\xf9\xd6\xc4\x7d\x4b\xf2\x1d\x3f\x8b\x21\x9f\xbe\x60\xf9\xdc\x1d\x6b\x47\x11\x47\x52\x71\xa8\x67\x9e\x50\x5a\xe5\xaf\x82\xa3\xc5\x03\x76\x09\x46\x94\x50\x58\x09\xea\x9c\x83\xc7\x04\xab\xb7\xe3\x32\x48\xc0\x47\x9b\x09\x3b\xd5\xf9\x80\x9d\x16\x8b\xb0\x79\xbc\x12\xa8\xb8\x3a\x2a\x45\x1c\x3c\x8f\xb2\x8b\x56\xd8\x69\x0f\x40\xd6\xdc\x3f\x41\xeb\x55\x73\x26\x9e\x10\xa2\x31\xea\xed\x58\xc2\x49\x3c\x88\x00\x8a\xf2\x38\x15\x88\xbf\x0e\xc3\xf6\xb7\xed\x74\x78\xd9\x35\x86\xf9\x79\x7a\x04\x84\x58\x83\x13\x29\x93\x85\x04\x4c\xfd\xb2\xd2\x93\x8a\xcf\x66\xdc\xca\x8c\x4d\xb9\xca\x0b\x37\x14\x54\x2b\x02\xbf\xdc\x51\x08\xd8\x72\x51\x7a\x87\xe9\x60\x24\xc5\x36\x7e\x7b\x69\x0e\x18\xf6\x79\xa1\x1e\x36\xbb\x8e\x9b\x2d\xc9\x5a\x04\x31\x77\xb8\x96\x56\xb3\x92\xea\x55\x10\x55\x7d\x90\x95\x56\x60\xef\x7b\xe0\x95\x74\xbc\xc4\x80\xe5\x7c\xe0\x34\xb4\x5b\x52\xa6\xc0\xa4\x46\xa2\x85\xe5\xd5\x44\x58\xea\xf0\xd0\xa4\x52\x34\xe8\x7d\x81\xa8\xa3\x96\x2b\xe6\x7d\xe4\x0b\x25\x97\x15\x54\xe5\x5f\xfa\xcd\x0e\xb2\xb5\xda\x6c\x3c\xbb\x4a\x0c\x67\xe4\xa4\xb3\x3b\x86\x7f\x84\x18\xff\x93\x6f\xe0\x3f\xcf\xa7\xef\x1e\x08\x68\x13\xf2\x3f\x92\x9a\x86\x03\x8c\x76\xd0\x6b\x2a\xa4\x26\x77\x65\xed\x2f\xb6\x37\xc3\xd7\xff\x22\xe6\x1d\x7c\x0f\x0b\x6d\x93\x73\xe8\x24\x5e\xd0\xd7\xb0\x51\x87\x6d\x47\x8c\xba\x4d\x26\x53\xea\x37\x91\x7d\x03\x3c\x10\x50\xb5\x01\x4b\x6c\x33\x0f\x60\x8e\xa0\x76\xf7\x62\x1b\xef\xfe\xfe\x30\xba\xb5\x03\x8c\x64\x13\xd5\x98\x1d\x9c\xcb\xe5\x76\x12\x77\x08\x76\x60\x05\xad\x84\xdd\x80\xfa\x10\x1b\x35\x51\x00\x3a\x1f\xd7\xbd\x05\xe0\x9f\x0e\xe1\x81\x08\xc1\xb6\xd0\x0e\xcd\x5c\x0e\xb3\x44\x00\x78\xb1\xff\x11\xfb\x5c\x29\xba\xee\x01\x1d\xfe\x85\xf4\xb9\x3d\xa0\x03\x3e\x7f\x5d\x09\x7e\xf7\x48\x0e\xd8\xef\xb0\xd2\xff\x8d\x06\xb0\x75\x0e\xfa\x9c\x97\xe8\xc3\x46\xca\x04\x5a\x1f\x78\x48\xfe\x1b\x40\xb6\x29\xa0\x65\x6b\x11\x1d\x7d\x59\x14\xe8\x01\x7e\x96\x76\xd7\x4e\x4e\x87\x10\x4f\x4a\xd3\x27\x51\x7e\x99\xe9\x9c\x6a\x42\x82\xbb\x04\x04\x91\x01\xbb\xd2\x36\xb8\xac\xd1\x80\x25\x73\x2c\x40\x5c\x78\x0f\x3c\xcc\xab\x11\x97\x13\x0a\x33\x20\x58\x05\xfa\x6b\x66\x3a\xef\x92\xbd\xdd\x89\xf0\x37\xca\xcb\xf7\x30\x3f\xba\xa9\x9e\x2c\x99\x5d\x53\x7e\xcb\x44\xee\x45\x9f\xb8\x90\x7e\xe5\x82\x6e\x1e\x97\x90\x1c\x58\x8f\x53\x6d\xc8\xab\x4f\xd9\xc5\x4e\x62\x72\xbc\x96\x76\xce\x3f\xa6\x64\xc2\xcb\x71\x3b\xe7\xdf\x5d\x63\x91\xe3\x16\xac\xf9\x72\xc4\x35\x28\xb9\x9d\x9a\x1e\x55\x60\x58\x78\x9b\x08\x2a\x1d\x02\xf8\x20\x8a\xe6\xd2\x24\x7d\xa0\x93\x2f\x44\x26\xa2\x52\xd7\xb0\x93\xf6\xd2\xf9\x1a\x61\xeb\x12\xfb\x17\x55\xa5\x2b\xf7\x61\x61\x7c\xad\x8b\x19\xaf\xee\x45\x1e\x90\x50\x07\x6c\xe8\x46\x18\xc4\xc6\xe0\x1d\xf5\x12\x88\xfb\x26\x59\xcf\xe1\x23\x87\x83\xc1\x21\xd6\xad\x77\xfa\x84\xe5\x95\xc5\x00\x2f\xf7\x7c\xc7\xe1\x3e\x7f\x11\xf3\x5b\xed\x86\xf7\x22\x8e\xbb\xd7\x10\x5e\x49\x43\xd8\x4a\xec\x8f\x21\xbe\x9b\x64\xff\xd0\xb2\x19\x74\x4f\xf3\x09\xbf\x82\x31\x6d\x0a\xe6\x0c\x5d\x4f\xa6\x69\x54\xaf\xa3\x71\x95\xb0\x95\x14\x0f\x22\x92\x70\xb0\xc8\x3d\x03\xae\xb5\xeb\xf9\x91\x86\xd5\x4a\xfe\x5a\x23\x01\x05\x6a\x1e\xbe\x82\x23\xf1\xf3\x09\x74\x37\x24\x6e\x6f\xa7\xf7\xe2\x04\x36\x0f\x0d\x87\xd0\xac\x75\xcb\xb3\x30\x4e\x24\x2f\x89\xc6\x0e\x04\xd2\x9f\x12\x9c\xd3\x17\x4b\xfd\x84\x11\x74\x4c\xd0\x08\xec\xf9\xa6\xc1\x9e\x77\xce\x94\x77\xc1\x8a\x6f\x52\x4e\x6b\x7c\x9a\x06\xd3\x8f\x4a\x54\x10\x11\x87\xb9\xe7\x60\x8c\x73\xa4\x37\xe4\x2e\x0b\x48\xcc\x95\x6a\xd2\x81\xfd\x12\xb7\xee\x10\xdb\xfd\x99\x08\xca\x7b\xe0\xec\x6c\xe4\x68\x43\x4d\x26\x61\x23\x2c\x2b\x45\x35\x93\x18\x21\xca\xb4\x0a\x31\xbf\x38\xff\x51\x28\xf7\x92\x04\xda\x28\xa6\x33\xeb\x15\xd8\x50\x87\xe8\xcd\x9b\x37\x6f\x60\x3e\x6f\xfe\xf8\xc7\x3f\x32\x08\x19\xcf\x45\x26\x67\x8b\x0d\xa1\xd5\xbf\xbd\x7d\x3b\x60\xff\x79\xfa\xe9\x23\xe3\x19\x50\x55\xc4\x10\xc2\x9e\x5d\x83\xc6\xcb\xa6\xc7\xfe\xcf\xcd\xe7\x2b\x1f\x2c\x69\x5a\xbf\x42\x88\x7a\x98\x5e\xab\x4c\xd4\xf7\xdf\x7d\x37\x60\xe7\xb2\x02\xbb\x98\x24\x5b\x2b\xed\x24\x70\x37\x5e\x09\xe0\x7d\x7c\x3c\x46\xe6\xee\x4b\xe1\x50\x88\x15\x39\x05\x67\x72\x32\x85\x05\x00\xa8\x24\x35\x2e\x64\x46\x0c\x11\xd3\x0d\x7c\xac\x0d\x26\x56\x43\x5f\xf1\x6c\xb8\xc1\xf5\x10\xc9\x69\x6c\xfe\xec\xc4\xe1\x9e\x47\x4b\x77\xb4\xc1\x09\x5e\xe4\xa8\xc4\xce\xe2\x5e\x35\xc2\xb7\x18\xdb\x09\x54\xff\x5e\x78\xdb\x0b\x6f\x6c\xed\x69\xf8\xf2\xc2\xdb\x2e\x05\x1f\xb3\xad\xe4\xb3\x90\x40\xd0\x21\x7c\x38\x15\x29\xa3\xe8\x61\xb1\x4c\xca\xa1\x69\x8a\x06\xf5\x0a\xf3\xc9\x3a\x71\x93\xd2\x44\x4e\x88\xa3\x7c\xb3\xcc\xde\xf5\x9a\x6c\xba\xae\xa4\x9d\x9f\xb9\x9b\xf7\xb4\xc1\x8e\x9b\xb6\x8c\x51\x63\xf0\x94\x35\x6c\x76\xcd\x72\x57\x09\x6a\x49\x02\x23\x33\x60\x37\x7a\x46\x51\x1c\xe8\x91\x4d\xee\x14\x30\x8b\xf6\x17\xdd\x5d\x18\xea\xbc\xf5\x78\xc0\xd8\x2f\x53\x41\xaf\xb8\x6e\x8c\x68\x06\x38\x4b\xb5\xd0\x93\xe5\xf7\x22\xa9\xa5\xd5\xc5\x08\x5d\x14\xfa\x71\x58\xc9\x07\x59\x88\x89\xb8\x30\x19\x2f\xba\x54\xa7\x39\x5d\xf1\x9a\x2f\xd4\x12\x33\xb2\xc0\x62\x90\x39\x02\xe1\x18\xc5\xc4\xdd\xf3\x99\x86\x45\xa1\x97\x29\x8a\xce\x5d\x81\x92\x03\x90\x16\xbd\x40\xfc\xcb\x9d\x76\x96\x03\x1f\x44\x4f\x38\xf6\x2f\xc7\x14\xea\xf9\x37\x25\x1e\xff\xe6\x7a\x33\x6c\x5c\xf0\x49\xd8\x1d\x88\xdd\x57\xad\x28\xcf\xd0\xf5\xca\x09\x38\x12\x5d\xd5\x82\xf1\xe2\x91\xcf\x0d\x3a\xbd\x9b\x7d\x48\xf3\x9e\xbd\x3d\x66\x55\x0d\xf5\x19\x43\x1f\x39\xfb\xf6\x18\xc4\xfc\xb3\xd3\xe1\xdf\x6e\xfe\xf3\xe6\x6f\xa7\xe7\x9f\x2e\xaf\xb6\xb8\xc1\x19\x2f\xf9\x48\x16\x72\x49\x90\x42\x77\xe2\x76\x96\x76\xb2\xce\xfe\x07\x02\x68\xd2\x18\x4e\x73\x9e\x9f\xe4\x95\x2e\xc9\xe5\x5f\x2b\xe5\xc4\xc9\xb0\x02\x2d\x49\x25\xb5\xc2\x50\xc2\x44\xa3\xc3\x49\xc5\xd3\x3c\xa1\x85\x90\xdb\x15\x69\x8a\xe1\x80\x6c\xb2\x46\x5f\xd7\x2a\xdd\x1d\x15\x8f\x56\x8e\x56\x21\x36\xc4\x5d\xc7\x3b\x93\xfc\x1a\x67\x04\x17\xcc\x35\x51\x56\xf2\xa2\x98\x33\x27\xb0\x3d\xf0\x02\x9c\xd3\x9a\x55\x5a\x87\xc3\x34\xd5\xc6\x36\x17\x00\x12\x1d\xb7\x09\x9d\x72\xa7\x11\x12\x5b\x37\xcc\x30\xb4\x63\xb9\x50\xda\xa7\xc8\x58\x2a\xb5\xee\x7e\xc5\xb4\x6b\xa2\xd4\x69\xde\x6f\xd8\xb1\xdb\x64\x97\xa4\xf1\xe3\x1f\x86\x9e\x51\x0a\xa8\x4d\x40\x77\x5b\x11\x18\x8d\x42\x6b\x25\x78\x0e\x91\x29\x20\x80\x10\x37\x37\xf7\x5e\x22\xa1\xab\x1b\xc4\x5e\xd7\x63\xf8\x14\xc0\x0d\xf9\xa8\xb3\x31\xe5\x98\x8e\x84\x8f\x56\x7b\x41\x6a\xf2\xb5\xd6\x36\xa6\xa4\x6f\x58\xd4\x5f\x02\x27\x96\x69\x8d\xa0\x29\xc8\x73\xae\x47\x0c\xbd\x81\xad\x8f\x39\xec\x8d\xd4\xd0\xad\x37\xbe\xaa\xd5\x29\x8a\xd3\x1d\x1c\xd6\x7f\xbe\x3c\x87\x33\x58\x2b\x72\x87\xd8\x6a\x8e\x0e\x91\x58\xef\xbf\x4d\xde\x7e\x72\xfb\xd8\x0e\x69\x97\x20\x1a\x0b\xa7\x13\xf1\x39\x62\xb7\xfa\x0c\x01\xb5\x9c\x01\x5d\x8e\xfd\xcf\xcf\x60\x5c\x09\x93\x6a\xc2\xa7\x2e\xe3\x56\x66\x29\xbb\x62\x0b\xfa\xc2\x76\x35\xc9\xdc\x32\x5f\x69\xe5\xce\x45\xe7\x54\xe2\x90\x40\x15\x97\x15\xa4\x32\xa2\xf7\x1c\x42\xba\xe0\x54\xd4\xc6\x71\xfb\xcb\x71\x12\xbb\xf9\x17\x4c\xd5\x40\x26\x04\xc1\x03\x3e\x7e\x46\xce\xf8\x44\x30\x6e\xc3\xae\x40\x62\xb5\xa9\x2b\xb2\x7f\x4b\xcb\x72\x2d\x50\x08\xa7\x4f\xfd\x74\x79\xce\xde\xb0\x23\xf7\x2d\xac\x51\x35\xe6\x12\xcc\xe2\x28\x17\xb7\xb8\xd2\xd8\x77\x01\x43\x82\x8d\x76\xa2\x25\x9c\xd1\x1e\x53\x9a\x99\x3a\x9b\xfa\x31\x85\x3c\x71\xa7\x1e\x88\xca\x2d\x35\x20\x15\xfe\x33\x9c\x8b\xee\x37\xec\xa7\xcd\x58\x63\xee\x82\xfd\xb4\xc5\x05\x4b\xe9\x3f\xe4\xef\x37\x66\x84\x9b\x1d\x62\x7f\xe5\xb8\x59\xdc\xf8\x9f\x62\x99\x5f\x7e\xfd\x8c\x58\x01\x11\xc8\x9e\xe7\xd3\x6e\x22\x0d\x6e\x12\x66\xbc\x5d\x2a\xf3\xd3\x5c\x8b\x30\xe8\x2f\x4b\x53\x0f\x5f\xe4\x7e\x70\x59\x9c\xb0\xec\x88\x84\x63\x10\x5c\xe5\x7a\xb6\xf0\xb1\x00\xa7\x9b\x7c\xe0\xab\xdd\xee\x55\xfa\xe3\xf2\x0c\xc0\x67\x6e\x5a\xb3\x9b\x4d\x9b\xe6\xf3\xc2\x82\x31\x0a\x05\x19\x6f\xd1\x6a\x6e\x57\xbb\x31\xea\x58\x3e\x74\xd6\xe2\xea\x91\x22\xcb\xee\xea\x37\x6f\xbe\xfd\x3e\xd9\x51\x00\x7f\x6c\x6f\xb3\xef\x4a\x3f\x88\xaa\x92\xb9\x08\xaf\xd3\x0f\x2b\x16\xeb\x51\xaa\x5c\x3f\x9a\x97\x9e\xf0\x5f\xb0\x9b\xd6\x8e\x75\x3d\xf0\xf4\x76\x28\xb8\x1f\x52\x2c\x1b\x0a\x6a\x51\x34\xc4\xc1\x65\xa7\xde\x2f\x42\x88\xbc\x58\x3c\x6d\x81\x69\x60\x32\xdc\x6f\x77\x62\x5f\x6e\x1f\xa8\x1e\xe4\x06\x1f\x0f\xb4\xc0\x38\x17\x44\xc7\xe6\x23\x63\x2b\x1e\xc0\xda\x8d\x1e\xdb\x47\xd4\xcc\xb1\xe9\x11\x5c\xff\x27\x3e\x2b\x0b\xd1\x63\xb3\xb9\xf9\xb5\x38\xf6\x09\x3b\x14\xa9\x0c\xe9\x71\x0c\x2c\xeb\x69\x6b\xf6\xee\xdd\x9b\xef\x8f\xa3\xec\x51\x56\xfa\x69\x8e\xe6\x40\xb0\x6f\x47\xab\x6b\x33\xcd\x3e\x17\x56\x54\x33\xf0\x9a\xa0\x00\x0f\x35\x71\x91\x58\x29\xf3\x28\xaa\x18\x21\x43\x81\xb6\x15\xf8\xa0\xc2\x37\xf6\x71\x6a\x5f\x75\x9c\xda\x3e\x18\xeb\xf7\x12\x8c\xf5\x4f\x9f\x5c\xf3\x92\x6a\x80\x44\x4b\x9f\x5f\x07\x70\x24\xa6\xfc\x41\x6a\x2c\x33\xef\xe9\xec\x3f\x6f\x3d\x40\xbf\x0e\x9b\x2b\x01\x7e\x5a\x5e\xcc\x3b\x56\xfb\x47\x5e\x40\xeb\x31\xa4\x4c\x8d\x08\xc6\x43\xc6\x8a\x6b\x6f\xc7\x78\xf5\xd3\xf3\x15\x97\x09\xf4\xbc\x7e\xc7\x41\x7a\xd0\xe9\x69\x96\xb5\x0c\x78\x2b\xe4\x08\x6a\xc8\x46\x8e\x22\x31\xab\x27\x60\x7d\x7a\xcf\xfe\x40\xd2\x45\x8f\xd5\x2a\x17\x95\xb1\x5a\xc3\x2e\x3a\xa5\x92\x3c\x7b\xa5\xa8\xa6\xbc\x04\xaf\x76\x29\x2a\x59\x4e\x45\xc5\x0b\xda\x62\xd3\x43\x9c\x33\x45\x81\x73\x76\x0e\x3d\x96\x95\x54\x99\x2c\x39\xe1\x65\x93\x8f\x96\xd7\x76\x8a\xd1\x75\xee\xa8\x00\x06\x4f\x6d\xa7\xba\x02\x66\xf8\x87\x88\x77\x83\x9e\x1a\xb3\x17\x0d\xbe\x66\xd1\x80\xd7\x56\x83\xd5\xb7\x79\xc0\x6e\xf5\xbd\xd8\xb8\x1b\x6b\x5e\x6d\x40\x77\xa0\x85\x14\x64\x4a\xef\x05\x80\xc8\x11\x08\x32\x40\x99\x97\xd3\xb9\xa6\xcd\x98\x72\x70\xee\x02\x22\xa6\x85\xfe\x60\x9c\x1c\x42\x3a\x8b\x39\xda\xa9\x9d\x30\x70\x46\x61\x03\xa8\x70\xe5\xae\xa1\x0d\x5a\x17\xe8\x68\xdb\x98\x7d\xc0\xf0\x32\xac\x8b\xe2\x86\x8e\xf0\xa6\xf4\xef\x66\xf3\x66\xb4\x7f\x13\xbc\xd1\xf8\x26\x68\x25\x32\x7c\x26\x16\x7c\xa4\x70\x17\xcb\xba\x28\x7c\x5e\x25\x8c\x07\xdd\x0e\x6e\x11\x09\xe6\xca\x87\x59\xc1\x42\x36\xf7\x60\xc0\x16\xc6\xe4\x34\x8c\x1c\x34\x08\xca\x50\x62\xfe\x97\x91\xc8\xb8\xfb\xaa\xff\x3b\xe4\x8c\xd7\x2a\xc1\xbf\x2b\x75\xde\x83\x8a\x5a\x4b\x7b\x06\x23\x37\xcf\x32\x2c\xb5\x45\xec\x83\x10\x67\xb6\x49\x70\x20\x0d\xf3\x04\x67\x7e\xf2\x4d\xcc\x85\xed\xc3\x23\xb7\x3a\xb4\x94\x7d\xad\xfa\xbc\x5f\xea\x7c\xb7\x7e\xfd\xa5\x70\x9d\x2f\x71\xf1\xef\x85\xf0\xbd\x10\xfe\x95\x08\xe1\x9d\xa8\x5a\x42\xcc\x7c\x50\x51\xc2\xd5\x7d\x5d\x22\x32\x8c\xd6\x74\xed\x1b\x44\xde\xc7\x0f\x2e\x21\x4f\x5f\x5d\xca\xd3\x96\x37\xbd\xf1\x53\x43\xf2\x04\xcc\xb7\x3e\xa4\xd1\xf7\x31\xa5\x14\x23\x6c\x37\xbd\x41\xd8\x71\xf0\x02\xbc\xfd\x15\xca\xc0\x5e\x5c\x7d\x45\x51\x78\x63\xda\x64\xbb\x71\x3b\x7d\xb2\x21\x2e\x53\x74\xfa\x5e\x14\xfd\x9a\x45\xd1\x2e\x71\x99\x1f\x97\xee\x6f\xe7\x1c\x4a\xcb\xcd\x7d\xa4\x26\xc2\x49\x0d\x49\xcd\xab\xf8\x9c\xc4\xd2\x3e\x89\xa5\x3b\x2e\x9b\xdd\xba\x45\x7b\xa1\x62\x2f\x54\xec\xd3\x2c\xbf\x2c\xeb\x7a\x8d\x74\xcb\x05\x25\xb8\x53\xee\xe5\xda\xf7\x5a\x75\x38\x42\x0c\x77\x5b\x6d\x46\x1d\x99\x12\x42\x30\x6a\xaa\x8c\x9d\x90\x42\xe7\xf3\x1e\xa4\x32\x8e\xbb\xf0\x15\xbd\x84\xf8\x70\x2f\xcb\x81\xe7\x3a\xa9\xbf\xe1\xb4\x53\xa7\x2f\xf2\x09\x97\xca\x58\xa7\xa4\x1b\x76\xf4\x97\xb0\x6b\xa0\xb5\x23\x9d\x60\xba\x8a\x75\x0d\x8f\xbb\x78\x89\xea\x5c\xb6\xb2\xa6\x96\x2d\xda\x29\x35\xf3\xc2\xa9\x63\x84\x0a\xfc\xb6\xfe\x07\x9f\x04\xe3\xa6\x34\x60\xa7\x8e\x97\xca\x12\xa8\x11\xd8\x80\x71\xaa\x10\x91\x83\x16\xaf\xf1\x9c\x49\x6b\x44\x31\xc6\x40\xf1\x60\x09\x1b\xcb\x76\x54\x06\xa0\xd6\x2d\xfb\x4c\x2f\x56\x5f\x80\x32\x8e\xc4\xcd\x89\x19\x27\xa3\xb9\x4d\x7b\xc8\x5b\x31\x90\xc9\x67\xa9\x73\x47\x26\x60\x35\xb7\x88\x69\x13\x4f\xa5\x44\xa9\xf9\x46\x64\xda\xdd\xdf\xf5\x0b\x7b\xd1\x6e\xef\x57\x98\x68\x37\xa2\x1c\x07\x19\x06\xe2\x80\xa4\x9d\xb7\x4c\xc9\xcd\x13\x35\x60\xa7\x26\x4e\x9f\xf1\xb2\xac\x34\x87\x5a\xd2\x71\x74\xbd\xd4\x60\xe0\x73\x04\xca\xa2\x9e\x48\x8a\x30\x82\x77\xac\x7c\x10\x10\x4c\x67\x7d\x3c\xd4\x8a\x0f\xde\x26\x9d\xc1\xeb\x14\xeb\x54\x01\x9a\x16\x84\x62\x86\x2e\xe8\xd4\x8f\xd3\x3f\x0c\xd3\x45\x0e\xbc\x8d\x2b\xf6\xef\x6f\x58\x29\xaa\x8c\xce\x0e\x94\xb1\xa7\xc8\xab\x42\x3e\x08\x08\xbc\x5f\xfd\xf2\xb7\xdf\xb1\xa9\xae\x2b\x33\x48\x43\x7d\xde\xc2\x33\x14\xd7\x7c\x5e\x91\x65\x85\xe0\xc6\xb2\xb7\x6f\xd8\x4c\xaa\xda\x2e\x80\xca\xbf\x3c\x92\xa6\xe4\x76\xba\x61\xff\x87\xdc\x4e\xfd\x96\x43\xfe\x44\x1b\x45\x18\x23\x44\x1b\x71\x4d\x90\xb5\x62\xb5\xa7\x38\xe9\x52\xa8\xee\x68\xe1\x1d\xb9\x49\x99\x64\x5a\xbc\x00\x99\x05\x4e\x4d\x37\x1d\x03\x44\x4e\x0c\xe7\x4f\x21\x3c\xe0\xb7\x3d\x44\xeb\xef\x47\xa5\xf0\x5b\xfa\x2a\xb2\xfe\x5e\xc8\xdf\x0b\xf9\x7b\x21\xff\x4b\x09\xf9\xaf\x26\xdd\x0f\x75\xd5\x81\x63\xb8\x56\x11\x89\x39\x4d\xd4\xd7\xca\x93\x99\x43\x03\xe1\x5b\x9d\xf8\x47\x39\xac\xb4\xd5\x59\xa7\xba\x4f\x10\xac\x47\x05\xb5\x4a\x7a\x8d\x32\x39\x24\x7d\x12\xf5\x03\xcc\x58\x1d\x6b\xc2\x1a\xf5\x67\x2e\x11\xe3\xb1\x52\xb2\x99\x2b\xcb\x9f\x06\xec\x27\xd5\x2f\x2b\x31\x96\x4f\x22\x47\x87\x15\xf8\x7d\x1c\xc9\x80\x90\x02\xf7\x89\xcb\xd3\xab\xd3\xd8\x93\x17\xcd\xb0\xf1\x11\x37\x4e\x8a\x62\xd7\x1f\xce\xfa\xdf\xbf\x7b\xf7\x6f\xc0\x58\xdc\x31\x7e\x7f\x72\xf2\xf8\xf8\x38\x90\x5c\x71\xc0\x6e\xe6\xc6\xc8\x09\x80\x35\x9a\x13\x6f\x86\x81\x2e\x8e\x07\xec\x0a\x80\xa1\xa9\x7f\x3f\xbb\xc0\xe3\x9c\x4e\xd2\x1a\x22\x04\xab\x73\xc3\x66\xf3\x4c\xcf\x4a\xae\xe6\x83\x4c\xcf\x4e\x66\xf3\x7e\x56\x1b\xab\x67\x7d\xdf\xc7\x0a\xe4\x63\x5f\xe4\x69\x52\xf3\x2a\x8f\x7e\x2d\xaf\xb2\xc5\x8d\x69\xc0\x1f\xc3\xd4\x12\xd0\x64\x9f\x43\xfe\x2a\xa0\x7f\xcd\xf2\x2d\xb4\xc5\x69\x92\x77\x88\xee\xc0\x34\xee\x80\x49\x78\x7e\x75\xf3\xb7\x8f\xa7\x3f\x5c\x7c\x44\x0c\x58\xf7\x9a\x89\x88\x0e\x49\xa8\x0d\xbe\x03\x1e\x59\xc2\x7d\xa0\x54\x7f\xc8\x2b\x84\xb8\xc4\x5c\x54\x9e\xc1\x78\xd6\x60\xa8\x70\x1a\x75\xd4\xc3\xc1\x41\x57\x50\x9a\x09\xd3\x74\x5d\x4f\x87\xb4\xd8\x34\xde\x0b\xea\x60\x08\x47\xd5\xe7\xef\x3b\x11\x5b\xfb\x4a\x1f\xe9\x35\x93\x26\x14\x70\x80\xcc\xaa\xe8\x53\xde\x66\xbd\x75\xde\xbe\xe2\xab\xd6\x1c\x51\x0d\x14\x86\x69\x43\xa5\x08\x1d\x11\x26\x12\xc7\x36\x96\xfb\xd7\x06\x32\xa4\x05\x96\x0b\xf8\xd3\x15\x7d\xc7\xe9\x0e\x1f\x35\xcf\x7f\xe0\x05\x57\x99\xa8\x06\xec\x27\x53\x83\x83\x1b\x6f\xc1\x62\x24\x4e\x33\xd9\x5b\x26\x59\xa4\x14\x54\x9e\xc7\x0a\x81\x34\x80\x31\xab\x15\xa8\xfe\xba\x62\xa2\x30\x02\x41\x0e\x48\x62\x4c\x5b\xc6\x8a\x7f\x69\x76\x92\xd5\xe0\x7b\xef\x27\x51\xeb\x30\x77\xd2\x79\x68\x2f\x6e\xe7\x65\x3c\x82\x3e\xe6\x35\x24\x6e\x69\xb5\x45\xde\x2f\x89\x63\x7d\x25\x2c\x21\xcd\xf8\x67\x27\xc0\xab\xfa\x6e\xd5\xdd\x50\x76\x8d\x0f\x50\x3e\xe3\x04\x34\x32\x79\xfd\x46\x47\x04\x85\x65\x07\x71\x07\x03\xec\xce\x0e\x2e\x87\x2b\xb9\xc0\x0d\x42\x73\x18\x76\x77\x70\x7b\x36\xc4\xa2\xa8\x3f\x9d\xc3\x3f\x1c\x01\xbb\x3b\xb8\x39\xbb\x1d\xb6\x2a\xa4\xde\x9e\x0d\xb7\x29\xf7\x02\x48\x24\xcb\x2e\xd6\xf3\x44\xa9\xda\xca\x62\xe0\x68\x8b\xad\x06\x97\xca\x7e\xae\x6e\xf0\xa3\xeb\x84\xa9\xab\x7a\x36\x42\x3b\x54\x5a\xe4\x0a\xf7\x4e\x53\xc4\x82\xcf\xc9\xc4\xe0\x0a\x18\x6c\x72\xf3\x3c\xfd\xa4\x9e\x3c\x05\x25\x72\x55\x71\x35\x11\xec\xad\xeb\xec\xfb\x7f\xfb\xb7\x77\xff\x36\x60\x57\x29\xaa\x0c\x57\xc0\x15\xff\x76\xf3\xf3\xd9\xdf\xae\x4e\x3f\x5d\x34\x0a\x70\xf2\x50\x16\x21\xb9\xc8\x85\xd6\xf7\x22\x67\x75\x49\x69\x62\x10\x32\x8e\x37\x4e\xa5\xb8\x2e\x43\x48\xaf\x4f\x72\x8a\xdc\x5e\x2e\xd4\xf7\x6c\xc5\xe6\xa3\x56\x40\x8b\x70\xe8\x5e\x09\xd4\x97\x70\x51\x8e\xd2\x18\xb0\x19\x2f\x8f\x1b\xe2\x82\xeb\x78\xa2\xa0\x7e\xc1\x18\x60\x76\xf1\x8e\xa2\xcd\x2c\x2b\x6a\x63\x45\x75\x39\xfc\xd3\x95\x56\xa4\x3a\xc6\x7a\x36\x7a\x26\xad\x45\x2a\x64\x84\x65\xe2\xd7\x1a\xc1\xd9\xda\x23\xd9\x2d\xa1\xc0\x63\xa5\x26\x7d\xee\x7d\x3a\x5b\x98\x1c\xdc\xc1\xdd\x91\xc9\xe1\xa6\x19\xff\xba\x42\x80\xa4\x00\x56\x2c\x74\x81\x56\x00\x6e\x51\xa6\xf7\xa9\x85\x1c\xf3\xc5\x10\xb0\x06\x4e\x30\x5f\xa4\x37\x2b\x65\xca\xb0\x55\x1b\x48\x48\x68\xe7\x6d\x42\x97\xc3\x76\xf1\xe2\x60\x81\x53\x74\x88\x5a\x0c\x0c\x53\x9c\x8a\xb9\xbf\x4f\x33\xee\x7a\x44\x14\x11\x15\x3a\x6b\x40\x89\xcc\xb8\xa2\x4e\xb0\x4f\x77\x90\xa5\xf2\xa9\x3c\x60\x60\x35\x9d\x98\xdf\x7f\x44\x6b\x6c\xaf\x0b\xdb\x4b\x4e\x7a\xc6\x95\x07\x3e\xc9\xa6\xee\x8e\xe7\x21\xeb\x01\x55\xd9\x50\xc8\x2f\x01\xcd\xbf\x3b\x70\x27\xdf\x51\x50\x28\x14\xe7\x75\xf1\xa3\xbb\x83\xbb\x83\xe3\x1e\xc2\x02\x21\x16\x74\x5c\xc7\x41\x78\xcb\xdb\xe9\xe3\x42\xb8\x3b\x36\x15\x3c\x07\x64\x94\x78\xd9\x9c\x1c\x01\x69\x17\x50\xdb\x98\x92\x3d\xe9\xe8\x52\x41\xb4\x58\xad\x0f\x24\x0e\xc3\xce\xfc\x4e\xf6\x98\x97\x3e\xf0\x86\x36\xe5\x8f\x4b\xba\xdd\x49\xb1\xaf\x8b\x27\xb4\x08\x39\xba\xb6\xdb\xcb\xf9\x20\x2b\x5b\xf3\xa2\x2f\x4b\x83\x31\xbf\x24\xee\xbb\xb9\x2d\x00\x0e\x74\xb3\x76\xe3\x50\x2f\x87\x9b\x8c\x3e\x49\xcb\x66\xe0\x40\xdc\x18\x02\x56\x42\x99\xce\xc9\x1a\x21\x68\x8f\x6e\x85\xcf\xe6\x33\x9a\x50\x9c\x98\xad\xf8\x78\x2c\xb3\xc8\x69\x03\xf3\x60\xb7\x53\x61\xdc\xf5\x31\x01\x70\x09\x81\xb0\x80\xcf\x44\xa5\x0b\x5b\xe2\xdd\x06\x13\x9f\x29\x9d\x80\x3d\x2a\x30\x28\x10\x52\x7d\x51\xd4\xe6\xf1\x73\xbc\xaa\xe4\x83\x3b\x82\x16\xf2\x8a\x73\x91\x94\xa2\xbd\x1c\x0e\x18\x3b\x85\x4a\xcb\x4e\x5a\xa5\x3c\x21\x90\x4a\xc9\xd0\x57\x68\x9e\xf7\x47\x74\x02\x3c\x75\xa1\x31\x96\xbc\x0a\x66\xde\x44\x33\x24\x69\xf4\x8b\x14\x34\x5c\xb2\xbd\x1d\x60\x69\xd2\xa6\x9e\x76\x85\x19\xa7\xa1\x93\xdc\x82\xa3\x20\x57\x50\x06\x32\xc1\x6b\xa0\xda\x02\xb6\xae\x28\x61\xfb\xcc\xf1\x6f\x30\xa0\x56\xf9\x92\x1d\xbe\xd2\xf1\x4e\x7a\xba\x24\xd5\x83\x2e\x1e\x20\x57\xb7\x85\x05\xef\xd4\xe0\xb7\x6f\xbf\x7d\x07\x38\x10\x20\x99\x1c\x6d\xa8\x65\xe4\x5a\x63\xfe\x76\x10\xab\x6f\xa9\x58\xfe\x48\x34\x2f\xe9\xf6\x17\xe7\x16\x4f\xd4\x50\x17\x32\xdb\x84\x82\xbf\xf4\x9d\x00\x2d\x21\x5b\xba\x40\x2e\x0c\x62\x38\x68\x56\xe9\xda\x26\xbb\xe1\x4f\xb1\xd5\x70\x76\xfb\x98\xdb\xa6\x2b\x7f\xcd\xfa\x8f\x32\x4f\xf4\xca\x81\xaf\x3e\x78\x77\x80\x90\x38\xd5\x83\x07\x9b\x20\x43\x24\xda\x36\xdd\x45\x56\x39\xe3\x0f\x5a\xe6\x04\x6d\xab\x55\xce\xa6\xba\x84\xcd\x4b\xc9\x1e\x34\xbc\x22\x6d\x02\xe9\x9e\xa7\x5b\x18\xf2\x5a\x49\x73\xef\xc4\x66\x1b\x80\x3d\xe4\x8c\x6e\x4c\x1e\xc6\x6f\x4a\xaa\x6a\xe2\x46\x48\xe4\xf6\xee\x80\xe9\x91\xc9\xea\x6a\xdd\x10\x67\x7c\xce\x30\x02\xb7\x31\x4a\x27\x9e\x2a\xc4\x43\x53\x80\x9f\xe6\x46\x92\xc6\x47\x4f\xb4\xce\x21\xf2\x99\x17\x74\x8b\xe3\x10\x9e\x7f\x04\xa6\x82\x17\x76\x7a\x36\x15\xd9\xfd\x55\x37\x35\x78\xc9\x1b\x81\x77\xe1\x74\xb1\x45\xe6\x5a\x30\xaf\x5b\x07\x58\x91\x70\x73\x7c\x05\xab\x28\xaa\xfe\xb8\xa4\x67\x69\x02\x3a\x5f\x53\x32\x67\xbc\x94\x6c\xc4\xb3\x7b\xa1\x92\xb2\xe6\x51\x24\xf0\x1f\x1e\xb0\x5f\xdc\xb5\x74\xeb\xec\xc8\x6b\x3f\xb2\xd9\x30\x34\x14\x8f\x65\xa2\x63\x07\xb8\x19\xd8\x38\x62\xae\x02\xe0\xed\x88\x11\xdf\x12\x9b\xa4\x02\x5c\x0b\xe7\xea\x62\xe9\x35\x49\x5f\xc8\x78\x3b\x48\x7d\x07\x18\x77\xe5\x07\x3e\x93\xc5\xa6\x3b\xec\x9b\x25\xfb\xf6\x98\x02\x9a\xf8\xdb\x8b\x70\x26\x65\x24\x9c\x68\xdc\x71\xec\x41\x66\x75\xc1\x2b\x77\x96\xc7\xd8\xd5\x91\x18\x4c\x06\xec\x72\xf8\xf0\x1d\x7b\x30\xf0\x8f\xef\x8f\x23\x00\x92\xfb\xf3\xbc\xe6\xc5\x8d\xe5\xd9\x7d\xd3\x6c\xe6\x98\x12\x81\xb7\xb0\x4b\x27\xcf\xe6\x4e\x38\x30\xd0\x90\x68\x41\x8f\xcd\x75\x0d\x72\x12\x05\x84\xb3\x30\x03\xf8\x02\xca\x78\x50\x83\x37\x08\x3c\x61\x12\x56\xc7\x44\xd7\x06\x82\x1a\xa1\x41\x15\x91\xa5\x7b\x53\x87\xc2\x79\xe8\x0a\xc6\x0d\x93\x04\x9c\x35\x14\x9d\x3a\x8f\x25\xc8\x70\x6b\x87\xe2\x05\x5a\xb8\xdc\x8d\xef\x5e\x44\xe2\x77\xa9\x98\x90\xd0\x3c\xe3\x06\xeb\xcd\xb9\x61\xe4\x3a\xb9\x43\x73\x08\x5f\xf0\x83\x11\x4f\x65\x21\x33\x69\x8b\x79\x94\x99\x3d\x96\x8b\xc7\x31\xc0\xb5\x3a\x34\xac\xac\xe4\x8c\x57\xf3\xb8\x9d\x6d\xf5\xcf\x4b\x04\x4e\x76\x2f\xca\x29\xf7\x5b\x18\x57\x84\x48\x14\x8a\x38\xf7\x02\x12\x18\xb8\x31\xf5\xcc\xe7\xd9\x8f\x74\x6d\x19\x82\x3b\xce\xb8\xb2\x32\x33\x04\xfb\x08\x0e\x73\x0b\xf0\x87\x79\xa8\xf2\xc7\x47\xfa\x41\xc0\xbc\xe3\x69\xeb\xb5\x3f\x04\xfd\x47\x08\x14\xb7\x29\x47\x8e\x83\x80\xfb\xe9\x38\x15\xe2\xf9\xd8\x7a\xb5\x09\x90\xd8\xe4\x4c\xfc\x47\xe3\x3d\xb0\x32\xc2\x16\x24\x20\x69\x77\x07\x6e\x3f\xee\x0e\xc8\x32\xe2\x36\xe5\xee\xe0\x3f\x98\xcf\x9f\x76\x93\xc9\xea\xaa\xc2\x0a\x43\xa0\x62\xbb\xf3\x3b\x91\x0f\x42\x85\x3d\xcf\x74\x45\xe8\x63\x95\x18\x63\x79\x1a\x58\x7b\x7a\xcf\x40\x40\x02\xc8\x5a\xdc\xfa\x97\x06\xec\xe8\x83\xae\x16\xcf\xb2\xe9\x81\x9d\xc0\x49\x7c\x51\x45\x83\xec\x12\xd1\x32\xcc\x41\xa9\xec\xe4\x2c\x0d\xd8\x87\x54\xa9\x58\xec\xaf\x61\xc4\xed\x91\xf8\x4b\xc5\x94\x93\x0b\x49\xa2\xf0\xb8\x76\x9b\x8f\x9d\xa6\x32\x48\xd2\x71\x38\x88\x8e\x88\x28\xcd\x66\x82\x2b\x30\x7a\x8c\xe0\x18\x24\x85\x9a\x91\xe5\x31\x59\x55\xa2\x10\x0f\x3c\x2c\x26\x57\xf3\x47\x3e\x1f\x1c\x3f\x9f\xa9\x15\x09\x35\xde\xa8\xec\xb6\x15\x27\xbf\x82\x8e\xc2\xbf\x6f\x12\xf6\xc6\x1f\x70\xa3\x26\xc2\x06\xfe\x14\x98\xd0\xe5\xb0\x1d\x3a\xe4\xaf\x92\xbf\x56\x44\xff\x72\x51\x0a\x95\x1b\xb4\x21\x47\xc2\x04\xb9\x7c\x05\x88\x94\x59\xa1\xeb\xbc\x4f\xf8\x14\x95\xc7\xd5\x6d\x14\x89\x03\x2f\x7e\x63\xc2\x48\x88\x38\x3c\x65\x5e\xc4\x4f\x38\x69\xe3\x72\x07\xa1\x35\x51\x01\x81\x36\x34\x3e\x1c\xd0\x85\x3c\xb2\x2f\x9c\x02\x9c\xc6\x16\x52\x47\x3a\x5e\xc4\x41\xbe\x76\xf7\xb4\x03\x3c\x6b\x5c\x58\xb0\x33\xe1\x68\x22\xc3\x2e\x0b\x6e\x1d\x1b\x25\xc7\x03\x49\xf3\x6e\x28\x59\x54\x9c\x52\x1c\x83\xd6\x3c\x1b\x5a\x51\x58\x1b\xdf\x43\x62\x69\x08\xc3\x20\xd9\xee\x72\x68\x76\xbd\xac\x77\x07\xcf\x0a\x6f\x46\xa3\x66\x3f\xf1\x04\xf6\x89\x48\x24\x11\xce\xcd\xef\xf7\xc7\xb2\x12\x8f\xbc\x28\xba\x45\x3a\xef\x50\xa7\x83\x53\xdc\xc1\x90\xed\xf5\x73\x3c\xf5\x41\x49\x5d\x65\x72\xff\xed\xec\x14\x3b\x0a\x18\x19\x26\x46\xc7\x4d\x0b\xbb\x3a\xa5\xc4\xad\x5a\x7f\xc6\xcb\xfe\xbd\x98\x37\x4b\x77\x87\xc5\x6f\x57\x1f\x0e\xce\x85\xe4\xf1\x7f\x6d\xf8\x82\x1f\xce\x8c\x97\xcf\xcb\x88\x59\x74\xdf\x3c\x33\x23\x26\x3d\x49\xf5\xa8\x90\x66\x7a\xa5\xed\xb5\xe0\xf9\xfc\xd4\x5b\x71\x36\xa1\x22\xae\x78\x2d\xc9\x60\xc5\xd3\xe6\xc4\x98\x89\x08\x18\x87\xb9\xe0\x05\x19\xbe\x9b\x3e\xcf\x86\xe0\x4c\x32\x4a\x2e\x4d\x25\x26\xbc\xca\x31\x9d\x13\x7b\x46\xa8\xa0\x31\xa0\x04\xce\x4f\x94\xb6\x7d\xf8\x17\x46\x2f\x7a\x41\xcc\xa9\x2b\x4e\xd2\x23\x7b\xbb\xb5\x21\xa5\x2a\x88\x64\xe4\x68\x75\xf2\xc3\xb8\x2e\x6e\x00\xec\xfd\xc7\x25\x12\x67\x59\xe9\x92\x83\xa4\x7d\x73\xfd\x33\x3b\xbf\xba\x21\x63\x86\x21\xa1\xd6\xb0\xa1\xce\x4d\xd0\xcf\xca\xba\x72\x77\x0b\x2e\x9d\x70\x24\x4a\x9a\xcc\x69\x9b\x34\xc0\xc4\x1c\x14\xe5\x67\x5a\xab\x89\x50\xc2\xed\x59\x14\x5c\x51\x15\xa2\xbf\x6e\x0a\xf4\x0e\x52\x58\x17\x7c\xd1\xcb\x0b\x18\x80\x56\x42\x41\xbd\x29\xba\x1f\x9d\xc0\x40\x7b\x50\x14\xc9\x62\xbb\xfb\xef\xdd\xcf\xc2\x89\x65\xb0\x7c\x77\x07\x4c\x3c\xc4\x80\xce\x21\x26\xcc\x8a\x99\x11\xc5\x83\x08\xd6\xb7\x01\x3b\x9d\x40\x54\x35\x6e\xa6\xeb\xc6\x09\x90\x20\xfc\x25\x33\xf3\x13\xc9\x93\xcf\xa6\x4c\x23\xce\xcf\xc9\x3f\x2b\xa6\x07\x2a\x02\x1f\x8b\x62\x1e\xe5\x54\x69\x02\x28\xc5\x36\x09\xca\x66\xb1\x28\x22\x3c\x7f\xd5\x0a\xb5\xd7\x60\xb7\xf1\x5a\x77\x62\xb6\x21\xb4\x20\x3b\xa5\x90\x91\x76\x3d\x59\x70\xf8\x87\x73\xeb\xc7\x0e\x8a\x3f\xda\xc9\x75\x95\xa2\x86\xf7\x9a\xfe\x6b\x43\xab\x06\x2c\xd7\x27\x86\x07\xeb\x91\x87\x05\x06\x6b\x2a\xd8\xc3\xad\x59\x94\x5f\x93\x2d\x0d\x90\xe6\x50\x13\x7b\xfe\x4f\x64\x2f\x7f\x7e\x7d\x5c\x23\xa0\xb4\xc1\xe9\x18\x38\xce\x26\x63\x40\xe2\x10\x3e\x03\x59\xe6\x72\x18\x34\x1e\xf4\x50\x00\x22\x28\xec\xc3\x8c\x4b\x44\x5b\xa7\x4f\x30\x4e\xdf\x18\xb0\x0b\xd0\xe1\xa3\x38\x04\xa5\xe0\xf3\x25\x0d\xbd\x4d\xd4\x7f\xcc\x1d\x83\x2b\x08\x15\x48\x63\xa5\xaf\x76\x1e\x3c\xb0\x73\xb7\x43\x6b\x99\xcf\x40\xc8\x7a\x01\xba\xcb\xb2\xde\xd6\x5d\xcc\xa5\xdf\x8f\x01\x68\x64\xe2\x88\x09\xb4\x06\xc3\x5d\x5b\xfb\xb1\xc2\x77\xaf\x4b\x5d\xe8\xc9\xfc\x2f\x28\x40\xac\x3b\x3f\x69\x53\x74\xaa\x44\x83\x51\x5f\x57\x20\x55\x93\x14\xe7\x9b\x52\x95\x01\x2c\x1d\x30\x2b\x0b\xa8\x0b\x92\x8e\x91\x98\x42\x12\xe1\x05\x8c\x8c\x6a\x17\xa1\x2d\xd6\x38\x79\x39\xd2\x67\xd4\x79\x40\x06\x6e\xa7\x1f\xf7\xbc\x92\xef\x83\x52\x0d\x42\xfd\x05\x24\x06\x08\xec\xe7\xd1\x39\xd2\x30\xda\xfd\x09\x4d\x75\xec\xb6\x31\x78\xef\xe9\x47\xbb\x7e\x8b\x00\x72\x47\x66\x8c\x65\x6f\xbf\xa7\xc6\xa4\xeb\x46\x10\xcf\x8b\x26\x3b\x9b\x6a\x23\x14\xdd\x18\x8a\x4a\x18\xcb\xca\xd8\xc6\x8a\x51\x8a\xca\x03\x97\x05\x5c\x35\x32\x7e\x26\xde\xff\x20\x1b\x34\xb5\x24\xe4\x9f\x16\xea\x80\x00\x25\x55\x3a\xbc\x8c\x1c\x36\xc6\x66\x85\x0f\x7a\xf4\x52\xb8\xa5\x4d\xda\x4c\x1a\x7d\xe8\x62\xec\x0d\x22\x74\xf9\xa9\x68\x85\xc2\x3c\xa4\xb0\x8d\xde\xd9\x4a\x0b\x11\x6a\xa4\xdc\x1d\xfc\xe1\xee\xc0\xaf\x91\xcf\x56\x02\xee\x7f\x77\xe0\xe4\x26\x3f\x24\x47\x88\x40\xc3\xca\x40\x3e\xe4\x45\x88\x56\x97\x63\x78\xaf\x87\x8c\x7c\x06\xc8\x7f\x46\x28\x23\x7c\xa9\x9a\x82\x9b\x60\xe6\x55\x21\xaf\x7d\x75\xd8\x04\x38\x85\x1c\x8f\x02\xec\xdb\xb0\x26\x4e\x5e\xb0\x15\xc7\xf3\xd6\xc4\xf1\xff\xe2\x5e\xb1\x0e\x45\xd0\x81\x35\x25\x20\x7f\x53\xfd\xd8\xb6\x11\x91\x22\xd5\xa4\xbd\x81\x09\x7a\x5f\x77\x8a\x95\x99\xf2\xb9\x5e\x57\x7e\x79\x77\x90\xbe\x06\xbb\x5d\x9a\x45\x5d\x5a\x34\x78\x68\x70\xa7\x20\x43\x22\xeb\xac\x23\x30\xde\x45\x14\xb2\x16\x92\xf8\x04\x77\x18\x13\x2d\x9e\x12\x7f\x12\x3f\x52\xf3\xea\x85\xe5\x49\xfc\x0b\x84\x91\xe8\x33\x7c\x30\x18\xb4\xe5\xab\x18\xcd\x29\x5e\x81\x0e\x45\x9d\x25\xd9\x18\x89\x7c\x48\x79\x19\x97\x63\xd6\x08\xaa\x88\x21\x03\x4a\x33\xe2\x4c\x0c\x7f\x8a\x2e\x0c\x8f\xda\xd8\x94\x7d\x49\x73\xf1\x85\xfe\x09\x75\x29\xb6\xa9\x78\xb4\xaa\x72\x66\x2c\xd0\x0a\xb7\x97\xee\x9b\xb8\x45\x77\x07\x6c\x54\xcb\x02\x2d\x4f\xd1\xca\x48\xb4\x22\x2c\x73\x08\x76\x74\xe2\x3f\x79\x98\x81\x66\x83\x2b\xcf\xb4\xcc\xc8\xf8\x89\x74\xdf\x1b\x9f\x09\x1e\x1d\xa0\x0e\x14\xbf\x92\x8a\x74\x4d\xd3\xcb\x91\x1c\x27\xd6\x1d\xef\x81\x27\xa3\x29\x58\x31\x8e\x37\x0d\x66\x97\xc2\x03\x2d\xba\x54\x93\x7e\x68\xe7\x05\x08\x90\x1c\xbf\x58\x65\x92\x14\x03\x6e\x73\x44\x11\x22\xbe\x25\xe9\xa4\x6d\xdb\x33\xe2\xc1\x3d\x27\x88\x28\xb5\xdd\x6d\x2d\xed\xa4\xc7\xa4\x03\xa0\x5d\xc3\xf0\xda\x94\x70\x16\xe6\xe2\xed\xa1\xe1\x2c\xf5\x30\x8a\x18\xe8\x9d\xaf\x66\xb4\xd3\x2d\x59\x2f\x06\x2e\x6e\xcd\x32\xb1\xad\xbd\x45\x1d\x04\xb7\x0e\xe1\x5e\x28\x61\x6f\x5f\x07\x84\x3a\xe8\x20\x8c\xfa\x6f\x6d\x92\x3f\xcf\x36\xe9\x07\xbb\xdc\x19\xac\x21\xf4\xf9\x66\x28\x2a\x03\x68\xb8\x5d\x4b\xef\x5d\x37\x4a\x32\xfa\x6e\x58\x19\xfa\xf1\xb9\xaa\x8b\x25\x0e\x57\xee\xc6\xd8\xdc\x6e\x66\xd9\xb1\x00\x05\x2a\x96\x4e\x12\x22\xe8\x9c\x10\x4a\x32\x6e\xb5\x59\x30\x82\x4f\x9d\xec\xe9\x06\x81\x8e\x48\x1f\x44\x7e\xf1\xe4\x08\xb4\x78\xb2\xdf\x61\xd4\xef\xd3\xd8\xe0\x3f\x94\x75\xff\x1a\xb0\xcb\x99\x77\x19\x62\xfa\x57\x15\x70\x7e\xfc\x6b\x6d\x30\xfa\xed\xab\x6d\x6c\x58\x87\x85\x0a\x29\xec\xc8\xbd\x79\xf2\x58\x49\x2b\x8e\x11\x9a\x12\x34\xf8\xa9\xa8\x7c\x2c\x9f\xc6\xdc\x36\x11\x7f\xf4\x86\x33\xa9\x18\x6e\xfc\x27\x84\x0d\xd9\xba\x32\xd6\x35\x5c\x9c\xed\x2e\x53\x1b\x6a\x68\x6d\x2e\x98\xff\x5a\x2b\xb2\x82\x4a\x6d\x25\x78\x71\x7a\xe4\x6e\x9b\xf7\x03\xc5\xa3\x7a\x3a\xbc\x74\x5c\x36\x47\x75\xc9\x20\x40\x7c\x4b\x86\xf1\xee\x60\xb2\xd7\x04\x89\xd6\x5a\x27\xfb\xba\xed\x5d\xba\x14\x78\xf4\x3b\x44\x63\xfd\x1c\x1a\xfa\x58\xac\x69\x3d\xe3\x0a\xec\x9d\x20\x95\xa4\xb1\xd9\x71\xe8\x1e\xcf\x80\xf6\x2c\x49\x3b\x02\xf1\x7e\x65\x15\xd2\x2d\x4e\x63\x9c\x4a\x97\x62\xa3\x3f\x37\x5b\xb7\xf7\x26\xd3\x65\x98\x0d\x91\x07\x1a\x64\x98\x9b\xdf\x86\x04\xfb\xaf\xa1\xad\x59\x1f\x2f\x31\x6c\x55\x51\x6b\x22\xa7\xa3\x1a\xc4\x31\x87\xab\x15\xa4\x07\x6b\xea\xc6\x42\x92\xef\x48\xb0\x99\xac\x2a\x30\x57\xb5\x87\x83\x9a\x9b\x9c\x4c\x2d\xd4\x3e\xb2\x62\x82\x94\x7a\xc0\x6e\x84\x65\xc9\xf6\x81\x87\x16\xcb\xca\xba\x7f\x37\x80\xee\xfd\x29\x22\xc3\x66\x5d\xe1\xdb\x56\xb3\x3b\x5f\xb1\x13\x09\xc7\x5c\xd7\x21\xc2\x10\x31\xc2\xc2\xfc\xcc\x92\x95\xba\x8a\x3f\x22\x5a\xb9\xf6\xd6\xc2\xbe\x78\x92\xc6\x2e\xce\xc6\x2f\x92\x77\x73\x7e\x29\x99\xcc\x0f\x60\xcf\x5c\xf6\xcc\xe5\x37\x62\x2e\x4b\x61\x2b\xf7\x1c\x66\xcf\x61\xf6\x1c\xe6\xf7\xc0\x61\xe6\x26\xb3\xc5\x3a\x9d\x12\x1a\x04\xfc\x10\xce\xee\xdd\x66\x15\xac\xe4\x15\x9f\x09\xb7\xf6\xd6\x17\x10\xda\x5d\x45\x78\xb0\x1b\x50\x27\x73\xaa\xac\xbd\xc5\x05\x71\xa4\x61\xd3\xb5\xf0\xf9\x6b\xdb\x7e\x6f\x61\x03\x96\xa7\x7c\xb5\x90\x3a\x69\x6c\xf4\xf7\xd6\x39\x60\xb7\x67\xc3\x1b\x9d\xdd\x0b\x7b\xba\x09\x14\xac\xd5\x32\xc9\x05\xe3\x8a\x51\xe9\x98\xe0\x24\xd0\xa5\x40\x4c\x6d\x66\xe0\x9d\xcd\x1b\xeb\x58\x77\xe7\xc2\xe9\x3f\x3a\x3e\xef\xaf\x23\x59\xf3\x99\xd5\xbd\x05\xe4\xaa\x52\xe7\xec\x72\x9b\xfc\xd0\x65\x09\xb7\x5f\x57\x66\x68\x52\x39\x6a\x37\x69\xa0\xbf\x51\x16\xe2\x2d\x97\x6b\xab\x0c\x00\x9a\x80\xce\x29\x42\x01\x5a\x83\x25\xda\x5a\x9e\x4d\xbd\x07\x1e\xf9\xc0\xdd\x01\x86\xc1\xdf\x1d\x40\xb0\xab\x02\xec\x5f\x4f\x3e\x29\x98\xcd\xea\x02\xe3\x40\xdc\x0b\xd0\x5b\x07\x09\x16\xbb\xdd\x54\xad\x35\xa4\xbb\xb9\x21\xe3\x2b\x01\x8c\x0d\x86\xad\x53\xb0\x74\x22\xe8\x8d\xf1\x40\x33\xef\xd8\xf0\x21\xfd\x8e\x69\x5c\xe9\x1b\x37\xd9\xba\x10\x3d\x36\x04\x57\x63\x7c\x42\xa9\x22\x17\x4f\x22\xab\xed\x36\x62\x00\x06\x3e\x75\x9f\x1a\x4e\xe6\x5e\xcc\x17\x2b\xd0\x61\xae\xd7\x36\xf9\xd8\x72\x26\x4e\xf3\x7c\xb1\x24\xee\x0b\x90\x6d\x6e\x65\x1b\xdb\xb8\x7d\xb4\xfc\x47\xdb\x16\x4e\xf4\xb9\xda\x00\x9e\xe0\xe7\xfc\xc8\x0d\xe3\xee\x85\x01\xbb\x84\x53\x08\x22\x99\x13\xcd\xad\x50\x20\x4e\x84\x7d\xc0\x37\x56\x95\x57\xeb\xc2\x58\xe2\x52\xa3\x73\x10\x82\xb5\x4d\xa9\x55\x4e\xb2\x8d\x4d\xf7\x62\xc7\x98\x66\xee\x4c\xf4\x16\x2e\xc0\x8b\xef\x3a\x1e\xf6\x0d\x8c\x86\xe8\x36\xde\xf7\xf0\x46\xfb\xd2\xfb\x8b\x63\xe0\xa2\xe3\x3a\x44\x7f\xb1\xaf\x24\x5c\xc9\xb2\x10\x50\x2a\xef\x5d\x76\x2f\xe6\x3d\x74\xca\x12\x99\x70\x4f\x45\x80\x04\x17\x31\x28\x08\x55\x48\x5d\xd1\x8b\xfe\x4f\x7c\x61\x57\xf4\xe2\x02\x29\x44\x1a\xd3\xe7\xf7\x93\x88\x07\x04\xb5\xd8\x6c\x3a\x60\x17\x10\x93\x34\x13\x5c\x51\xe8\x12\xf8\xcd\xd3\xc6\x1e\xfc\x24\x51\x70\x3c\x1c\x7a\x92\x0d\xfc\x1b\xd3\x91\xbf\x88\xb9\xd7\x85\x12\x22\xe2\x4b\xc3\xd9\xb8\xd7\x31\xf6\x69\xfd\xdc\xef\xc5\xdc\x87\x18\x08\xe8\x4c\x1a\xef\x1b\x0f\x7b\xe8\x19\xde\x85\x13\x9b\xcd\x7f\xf8\xba\x8b\xb3\x91\x54\xf8\x31\xec\xda\x2f\x36\x0b\xbe\x7b\x13\x02\x14\xe0\x33\xcf\x5f\x10\x3f\x84\x8d\x72\x0d\x8d\xb4\x81\xac\x7a\x2f\xe6\x87\x86\xb0\x0e\xb5\x32\x53\x59\xfa\x3b\x0f\x83\x8b\xee\x6f\x7c\xd9\x3b\xc0\xdd\x1c\x31\xb2\xf1\xd7\x9a\x17\x4d\xdf\x39\x3d\xa2\x46\x6e\xa9\x1a\xb5\xc0\x1f\x65\x91\x67\x9c\x32\x49\x29\x7a\xc1\x68\x9f\xdb\xef\xae\x64\xc6\x55\x64\x58\x61\x17\xc8\x4b\x97\x64\x5e\xb9\xf3\x3c\xd1\x55\x67\xa2\xd4\x08\xee\xf1\x87\xa0\x1b\x3a\xe8\x6d\xbb\x7d\x9b\x96\x97\xa2\x92\x3a\x07\x46\x0c\x10\x99\xcd\x83\x76\x44\xc9\x24\x74\x46\xf4\xd8\xdf\xbd\x70\x11\x7a\x09\x7c\xaa\x5d\x06\x3b\x71\x9c\x90\xa2\x84\x89\xff\x10\x50\x96\x20\xc4\xc7\x7b\xe9\x85\x0d\x09\x2c\x74\xec\xda\xfc\xdf\x2d\xbf\x78\x10\x15\x3b\x22\x11\x41\x3c\xc8\xcc\x1e\x0f\xd8\xff\x2b\x2a\x0d\x5b\xab\xc4\x04\x01\x30\x5b\xa6\x0b\x4b\xc9\x1e\xdc\xb0\x37\xec\x08\x5e\x63\x72\x36\x13\xb9\xe4\x56\x14\xf3\xe3\x16\x72\xcf\xae\xb1\x3c\xbb\x6b\x4b\x0d\x1a\x80\xdc\xad\xb5\x2f\x81\x88\xeb\x70\xbd\xc3\x85\x86\x80\x46\x77\x84\x1b\xf5\x36\x03\xaa\x87\xbf\xff\x61\xd7\xfe\xdb\x6d\x2e\x67\x95\x98\xc0\xe1\xc4\xd3\xf7\xa5\xd4\x63\x1f\x99\x75\x43\x91\x1b\x1f\xf9\x48\x14\x24\x4f\xcd\xc4\x5a\xc9\xf7\x34\x06\xf7\x84\xb8\x8f\x2a\xbe\x49\x70\x2d\x8d\xaa\x99\x7e\xd9\x30\xcd\x0b\x22\xbf\x12\x1c\xb1\x56\x7e\x5c\xcc\xf4\x85\x44\xb4\x56\xfe\xd4\x66\x2e\xb7\x99\xde\x43\x96\x84\x0f\x3f\x8b\x84\x3e\x8c\x39\x21\xf3\x5b\x2a\xe7\x9b\xc8\xc3\xa9\x62\x10\xa7\x04\x5e\xea\x04\x86\xd2\x0c\xd8\x67\xe5\xcf\x4e\x0b\x02\x0c\x47\xec\x8d\x12\x05\xc0\x5b\x0f\xd8\x05\xcf\xa6\x58\x41\x1b\xac\xaa\x78\xf3\xa4\x61\x9f\xaf\xbf\x54\x80\xd5\x76\xa2\x1b\x2d\xd3\xcb\x45\xb7\xe6\x39\xbe\x15\xd5\xec\x99\x67\xd7\x8a\x6a\xd6\xa6\xce\x95\x30\x75\x01\x6a\x12\xae\xfa\xaf\xb5\xa8\xa4\xdb\x9d\x53\xa6\xea\xa2\x08\xb1\x6e\xab\xba\xf3\x07\x5e\x69\x5f\x50\x03\x75\x94\xe4\x9e\xf8\xc0\x8b\x19\x70\xc8\xd3\xab\x73\x12\xdf\x29\xd1\x08\x2e\x51\x3d\xa2\x50\xa5\x71\xad\x32\xb4\x32\x48\x3b\x77\x84\xf4\x4a\xe7\x22\x9d\xf3\xeb\x5d\x27\x98\x0a\x90\x87\x8b\x27\xb7\x46\x66\x59\xe5\xe5\x85\x65\x5e\x08\x5f\x5d\x46\x2a\xa0\xc2\x1e\x2c\x70\x5b\x8c\x79\x69\x6a\xd0\x46\xf2\xf6\xf2\x53\xbe\xed\x41\x05\xe0\x81\xb3\x10\x15\xb9\x4e\xe3\x58\xf1\x4a\x62\xe2\x86\xf0\x44\x4d\x80\x0a\x51\x51\x00\x75\x9e\xcf\x34\x29\x10\x48\x76\xfd\x56\x74\x89\x57\x72\xcb\x75\xb3\x22\x73\xe2\x25\xa0\xae\x8d\x7e\xd7\x46\x2f\xa5\x2d\x03\xe4\x96\xd5\x6c\x2c\x55\x6b\xa2\x03\x9f\xb9\x92\x04\xe5\xca\x80\xc9\x19\x68\x3a\xa4\xc0\x60\x9d\xb6\x46\x4e\xb9\x5b\x20\x45\x06\xae\x31\xae\x1c\x5e\x11\x59\x2d\xe8\xb6\x74\x96\x73\x3d\xe3\x52\xad\xd0\xa1\x67\xfc\xe9\xe6\x5e\x3c\x6e\xb8\x21\x9f\xb0\x55\x0b\xba\x2a\x17\x93\x4a\x80\xf5\x30\x29\x2e\xed\xa3\x7c\x95\x78\x10\x4e\xaf\xcf\xa5\x21\x80\xab\x9c\x94\xab\xbf\x3f\x4e\x85\xfa\x49\x19\x6e\xa5\x19\x4b\x3e\x2a\xc4\x9f\xce\xf5\x95\xb6\x5e\x85\xfa\xbb\x17\xf5\x50\x9b\x7c\x92\xb3\x7a\xe6\x04\x50\xc2\x19\xcb\xe5\xd8\x83\x15\x8c\x84\x7d\x14\xe4\xed\x88\x8b\xd2\x3c\x57\x4d\x70\xb5\xb0\x28\x3e\xf2\x72\x52\xe8\x11\x2f\xd8\x4c\x2a\xf7\x19\xcc\x77\x0e\x25\xba\xc1\x37\xf4\xae\xff\x0f\xad\x44\x04\x2a\xf0\x6b\x11\x91\x1e\xde\x52\x1d\xce\x90\x2d\x13\xc2\xce\x1b\x27\xd3\x9f\x7b\x6e\xd8\xdb\x93\xb7\x27\x6f\xde\xb3\xff\xcb\x5c\xd7\x6f\xe9\xbf\xdf\xd2\x7f\xdf\xb1\xff\xcb\xfe\x2f\x63\x6c\xc8\x58\xe3\xbf\x0c\xfe\xdb\x67\x72\x9c\x8e\xe1\xad\x1b\x66\xa6\x67\x34\xe1\x98\xea\xee\xf8\x2e\xad\x28\x9c\x21\xec\x1a\x18\x72\xa6\x67\x02\xc6\xf0\xf6\x3f\x7c\x1b\xcc\xb0\x61\x5a\x51\xcb\xb7\x47\x30\xa4\x63\xf6\x08\x12\x21\x24\xfc\xbb\x69\x9d\x66\xb6\xe6\x85\xfb\xf8\xd1\xb7\xfd\x37\xc7\x4c\xab\x66\xf3\x07\xa9\x0b\x27\x88\xd3\x08\x8f\xde\x1e\x0f\x16\x86\xfc\xed\x92\x21\x37\x46\x0b\xa3\xe0\x6a\x0e\x5d\xaf\x3e\x35\xfe\xc0\x9c\x42\x1a\x79\x38\x36\xfe\xee\x39\x3a\xc2\xa6\x72\x02\x35\x2a\x43\x95\x78\xb4\x7a\xc0\x29\x90\xde\x2d\x84\x9d\xce\x99\xb4\x8e\xa7\x1d\x1a\x90\x73\x51\x2a\xf0\x59\xdd\xe7\xa9\x9f\x13\xd6\x1d\xf6\xfc\x8d\x57\x49\xc8\x4c\xb0\x73\xbc\x8f\x24\xf7\x62\xa3\x0e\x17\x5a\xfa\xcb\xe3\xe4\x45\x3d\x46\xc3\x2f\x31\x2e\x60\xc5\x34\x6d\xcc\xb9\x22\xd2\x13\x91\xa5\xdc\x5b\x00\xd0\x96\x63\x31\xd8\x22\xb5\x7d\x24\x79\x79\x28\xdb\xa5\xf5\x2e\x03\xcd\x66\xbf\xc4\x96\x88\xa4\x1a\x8d\x47\xd8\x1b\x99\x8d\x20\xc0\xf9\xee\x60\x54\x67\xf7\xc2\x7a\x84\x4a\x27\x1d\x5a\xcd\xca\xda\xb2\x00\xc6\xb3\x40\xf3\xac\xc6\x8e\xf1\xd5\x55\xfb\xf6\x7c\x81\x78\xe1\x98\x6d\x58\xf6\x5f\xda\xed\x13\x5b\x14\xf1\xbb\x5c\x70\x5a\x5f\x34\x00\xc8\xb1\x3b\xa9\xb9\x16\x46\x1d\xc6\xc3\x87\x81\xf2\x40\x21\x62\x16\x82\xbb\x3c\x0d\xe2\xc8\x8e\x48\x1f\x3e\x66\x56\x14\x85\x77\x1b\xe3\x8f\x15\x19\xc3\xc3\x03\x38\xd1\x7d\xd6\xbc\x28\x4b\x5f\x4c\x5f\xf2\x3e\x1f\x89\xe6\x7f\x08\x17\x97\x5a\xf5\xee\x14\x03\x6c\x87\x89\x7c\x70\x57\xb7\xd3\xd5\x42\xf2\x31\x15\x45\xc9\x2a\x91\xd7\x18\x62\xe1\x3a\x32\xf7\xe2\x71\x70\xa7\x4e\x93\xc9\x02\x80\x41\x9a\xf7\xd9\x58\xd7\xbb\x83\x50\xca\x38\x25\x1e\x72\x8c\xd5\x59\x1c\xc9\x93\x63\x8a\x64\x2f\xb5\x41\x6c\x35\x38\xfa\x00\x59\x08\xca\x5e\xc8\x63\x71\x6f\xe2\xd0\x3c\xc1\xba\xf3\x4c\x0e\xfd\x1e\x46\x37\xce\xf3\x97\x61\x0b\xef\x1c\x49\x5e\xcf\x16\x86\xf0\xbf\x45\xf6\x70\x39\x66\x4b\x4e\x62\x18\x4b\xe3\x0c\x3d\x87\x63\x7c\x0b\x84\xfd\xdd\x71\xc2\x38\xde\x9d\x7c\x7b\xf2\xf6\xc8\x8d\xf5\xdb\x63\x37\xea\x06\x4b\x78\x1b\x58\x42\x78\x93\x46\x24\x4c\x83\x29\x5c\x2a\x02\x87\x79\xd4\x55\x4e\x46\x08\x8f\xbf\x07\x89\xb5\xd6\xe3\x2b\x04\x44\x2e\x42\xca\x0a\x67\xf6\x51\xbb\xfb\x03\xac\x49\x5a\xf6\x87\x99\xae\xc4\x1f\x92\xe6\x2f\xa4\x09\x1d\x15\x45\x2f\x40\xad\xa0\xd9\x6b\x29\xcb\x8b\xd5\xc9\x79\x29\xf2\xa5\x81\x41\x6b\xc4\xf4\x55\xef\xc4\xb8\x6e\xa1\x20\x0f\x3a\xc5\xb7\xb7\x9a\x15\xc2\x42\xf8\x05\x41\x28\x81\x50\xe5\xfa\x8a\xa8\x7b\xbe\x20\x2a\x93\x70\x87\xe3\x79\x5f\x12\x5e\xb3\xae\xaa\xca\x9f\xa9\x16\xc0\x86\x9a\x2a\xd0\xcc\xb3\x3a\xa8\x1f\x10\x52\xdc\x43\x21\x8c\x91\x70\xa7\x3c\x8e\x10\xec\x60\xe9\xbb\x4b\xb0\x74\x63\x28\x0d\x14\xdf\x68\x39\x84\xdd\xda\x43\x64\x14\x7c\x11\x29\x83\xa3\x92\x1e\xe9\x48\x56\x79\xbf\xe4\x10\xbf\x30\x2f\x85\xe9\x35\xbe\x16\xc0\x3c\xb7\xf0\x0b\x74\xaf\x15\xe2\xb7\x06\x31\x08\x56\xac\xc4\xab\x80\xd6\xa7\x71\x5a\xde\xf9\xfe\xd2\x11\x74\x35\xd8\xb8\xf5\x69\x8f\xf6\xa5\x17\x0c\xc3\x97\xd6\xdc\xa6\x9f\x7d\x1c\x67\xe2\x73\x40\x64\x67\x8a\xde\x02\x5e\x11\x1c\xe8\xa4\x1c\xa5\xf5\xb4\xdd\xd9\x89\x60\xcf\xb1\x26\x77\x97\xab\xf2\x68\x2e\x0a\x6e\xac\xcc\x7e\x28\x74\x76\x7f\x63\x75\xb5\xb0\x41\x9d\x6d\x10\xa7\xbf\xdc\x2c\x74\xd6\x08\x77\x5d\xa7\xff\x2e\x7b\xb9\xb1\x28\x8a\x9d\xfe\x72\xc3\xce\xa5\xb9\x4f\x8b\xd4\xf0\x85\x20\x04\xee\xab\x7b\x1d\x1a\x8c\x43\x25\xf5\xdc\xeb\x6b\x2a\x00\xc3\xc4\xd8\x94\xe7\xe7\x81\x61\xb4\xd7\x09\x6e\x91\xf9\x86\x3f\x1a\x81\xa3\x1f\xb9\xd1\x1b\x58\xc7\xa5\x57\x80\xff\xa3\xae\x84\x9b\xc5\xf6\xcb\xec\x7b\xe8\xbe\xb6\xfe\x8d\xf6\x82\xba\xe7\xec\x9c\x5b\x8e\xeb\x8a\x05\xbc\x28\xae\x05\xd6\xce\xad\xd9\x08\x48\x18\x95\x50\x8b\x67\x6b\xf5\xec\x3e\xc8\x45\x91\xf7\x79\xb3\x73\x3d\x3c\x6f\x76\xee\x8d\xa5\xb3\x83\x1f\x7c\x32\xeb\xcb\x27\x98\x89\x72\x3a\x5e\xb0\x06\x76\x4f\x96\x12\xe5\xf4\xc3\x4d\xe7\xa9\x61\xf3\x26\x6d\x70\xcf\xd8\x87\x9b\x25\x73\x41\x45\x74\xca\x2b\x4a\xcc\xcc\x0f\x0d\x2b\xe4\x58\x58\x39\x5b\x71\x18\x33\xa9\xf2\x17\x24\xe8\x9d\xc1\xeb\xdd\x67\x03\xcd\x9b\xb3\xc1\x11\x78\x52\x17\xee\x31\xf7\x3b\x82\x61\x6c\x74\xa3\x9b\x17\x7a\xe9\xa5\x25\x09\xdb\xf8\xd2\x47\xb3\xb9\xf9\xb5\xe8\xe3\x57\xfa\x65\x7e\x72\x7d\x71\x7a\xfe\xe9\x62\x30\xcb\x57\x2c\x08\xe4\xa2\x7d\xe2\x0b\xb2\x43\xf7\x35\xf1\x3d\x74\x5f\x16\xff\x46\x6b\x65\xc2\x63\xda\x57\xd0\x35\x4a\x5d\xd6\x05\x0a\x4f\xd2\xd0\xb2\xad\x98\x8a\x91\xdb\x4f\xe2\xe6\xb2\xfb\xf0\x6f\x2e\xd9\xd1\x59\x60\x3f\x14\x07\xcb\x2e\x95\x15\xd5\x98\x67\xe2\x38\x9d\x96\x28\xa7\x62\x26\x2a\x5e\x30\xa2\xa0\x81\x84\x4f\xb9\xca\xa9\x28\x4e\x26\x2a\xc0\x0f\x09\x59\xbf\xee\x13\x79\x25\xa1\xee\xd8\xd1\x0f\x50\x83\x07\x4d\xfd\xc7\x2b\x6e\x69\xae\x1f\xd5\x23\xaf\xf2\xd3\xe1\xe5\xd6\x6b\x70\x1e\xfb\xe8\xbc\x16\xc9\x3b\xe9\xac\xfd\x70\x40\xe8\x43\x8c\x4b\x1b\x82\x6b\xb6\xd9\x5b\x70\xc5\x9c\xcb\xed\x6f\xee\x05\x75\xd0\x79\x66\xfe\x85\xe6\x19\xb5\x62\x56\xea\x8a\x57\x73\x96\xcb\x0a\x54\xd1\xf9\x5a\x2a\xf4\x62\x3e\x0b\x13\xcf\xe5\x0a\x4b\x57\x38\x5d\xdb\xaf\x8b\xef\xa1\xfb\xc2\x84\x13\xdd\x58\x19\x22\x68\x4b\x4e\x77\x40\x26\x08\x57\x00\x8f\x36\x3b\x3a\x4d\xbd\x58\xc7\xe8\x3f\xc3\x7e\x68\x09\xb3\x79\x86\x2a\xb9\x95\x0d\xf1\x85\x02\x19\x29\xb0\x5b\x5a\xd6\x4f\x2b\x20\x04\x68\x64\x31\x76\x8b\xef\xdf\x81\xb2\xa7\x06\x0d\x0c\xb9\xa3\xae\xa1\x0c\x91\xb7\xdd\x38\x65\x63\xa6\x1f\x44\x3e\xb8\x53\x77\xea\x27\x1f\x77\x21\xc7\xef\x19\x3f\x4e\xf3\x0b\x7c\x00\x9e\x12\x22\x87\x5e\x64\x62\x02\xaa\x6a\x65\x7a\x6c\x74\xec\x27\x66\xd0\x9e\x58\xcd\x78\x41\xef\xbb\xc9\xdd\x23\x80\xa2\x06\xcf\x30\x14\x13\x34\x8a\x97\x66\xaa\xa1\x10\x52\xc6\x4b\x9e\x49\x3b\xbf\x53\x8c\x31\x5b\xf1\xec\x1e\x82\x9a\x2b\x41\x9f\xec\xdd\xa9\x0c\x47\xd4\x5a\xd3\x56\x5a\x03\xa2\x73\xf1\xd0\x2a\x2b\xb8\xf1\x4b\xb0\xf4\xfd\x80\xa5\x99\xcf\x15\x9f\xc9\x2c\x94\x9f\xad\xf4\x83\x34\x52\x53\xca\x0b\xf4\x0b\x83\xe3\xac\x9d\x47\x7c\x56\x70\x39\x63\x47\x46\x08\xb6\xf4\x74\x81\xc6\x39\xd3\x15\x98\xb4\xda\x15\xe1\x28\xc0\x98\x50\x52\x12\x6f\x45\x20\x10\xa0\xa6\xe1\xa7\x55\xbe\xfc\xe3\xc7\x61\xff\x96\x8f\x4d\x57\x90\xf9\xee\x73\x46\x84\xca\x75\x80\xc0\xce\xb0\x84\x33\x44\x22\xd1\x66\xa1\xf5\x0b\x7b\x22\x24\x0d\x35\x89\x10\xbd\x22\x39\xaa\x88\x74\x21\x55\x2e\x1f\x64\x5e\xf3\x02\x04\x2b\x3f\x18\x47\xd5\xe1\x75\x39\x99\xda\xfe\xa3\x70\xff\x61\x88\xf0\x1e\xd9\x84\xff\x28\x41\xb6\x45\x4e\xe0\xb6\x76\x26\x38\xca\x6c\x01\x13\x06\xec\x85\x7c\xce\xfa\x00\x77\x0b\x1e\x26\x9d\xd5\xb3\xb4\x10\x2a\x3c\xc4\x2e\xfc\xca\xa7\xab\x0e\xc3\x3b\x0d\x56\x2d\x28\x2c\xa2\xed\x94\xa0\xbf\xf4\x78\xc9\xd8\xc0\x44\xd7\x4e\xcc\x33\x0b\xe0\x41\x2b\x78\xd5\x38\xdb\x9a\x5a\x7d\x38\xeb\x4c\xa6\x3e\x9c\x35\xe9\xd3\x07\x39\xaa\x04\x3b\x9b\x72\xa5\x44\xf1\x0a\x0a\xd5\x8a\xb9\x16\xe2\x69\x41\x21\x7e\xe6\x9c\x43\x17\x5d\x66\x1d\x1a\x37\x67\x0f\xd8\x7d\xf1\x36\x2f\x4c\x3f\x5c\x6f\x91\x9f\x84\xa5\xc0\xf8\x54\x40\x23\x11\x19\xa5\x58\x60\x19\xea\x95\xb3\xd5\xd9\xfd\x0b\xc4\xeb\x0f\xf8\xfe\x33\x66\x0b\xed\x5b\x1b\x4d\x0f\xdb\x12\xf6\x9a\x8d\xa5\xd0\x8a\x04\x78\xd8\xed\xaa\xef\x88\x10\x1d\x03\xd0\x13\xd9\x64\x6a\xa5\x56\x9a\x7d\x26\x99\x88\x94\xe7\x45\xba\xef\x9f\xcf\x2e\x9a\x3d\x75\x5e\x9c\x85\x37\x9b\xcb\xf4\xe7\xb3\x8b\xaf\xd5\xb6\x30\xc9\x44\xa4\x2e\xb9\x5b\xbd\xe5\x8b\x2c\xed\xb5\x28\xf5\xf6\x4b\x8b\xef\x77\x5f\x50\x6c\xdf\xba\x58\x12\xaa\x05\x6b\x23\x41\x16\xc4\x80\xd5\x18\x8f\x5a\x09\xbc\x56\x03\x76\x7e\x31\xbc\xbe\x38\x3b\xbd\xbd\x38\x7f\xcf\x7c\x4f\x78\xe6\x2a\x91\x11\xfe\xb4\x8e\xf7\x10\xf5\x21\x52\x31\xc8\x0f\xe6\xbf\xd5\x23\x55\x98\x2b\x16\xa4\x54\x89\xee\x5f\x76\xa9\xa4\x8d\xba\x09\xe1\x8f\x69\x5f\x3e\xdb\xbd\x4d\xd7\x7a\x22\x11\xbf\x4c\x79\x43\xc0\x54\xb4\x7a\x8b\xf9\x90\x31\xe3\x67\xc5\x4e\xa0\x7c\xf7\x02\x33\xc1\x9f\x7d\x0f\xdd\x77\xc3\xbf\xd1\x3a\xd6\xe1\xf1\xf3\xcc\x05\x9d\x74\x6b\x3a\xa0\x27\x61\xbe\x9b\xb4\x6b\xf7\xd9\xe1\x92\x42\xf3\x9d\xd7\xe5\x47\xea\xa0\xf3\xb2\xf8\x17\x9a\xab\x12\x92\x37\x41\xd8\x74\xc2\xaa\xae\x12\x0d\x26\x5d\x24\x7f\xc1\x3d\x35\xc0\x56\x58\x3a\x21\xbd\xe8\x49\x16\x98\x8f\x4b\x43\x80\xd8\xa2\x98\xa3\x6c\x02\x20\xbd\x98\x34\xcf\x11\x5f\xd6\xc9\x5d\x16\xfd\x9f\xf2\x41\x16\x02\x0b\x89\x49\x35\x49\x40\xac\x7d\xee\x00\x01\xf8\xb7\xc7\xe5\xf6\xc9\xd8\xf8\x75\x8a\x41\xbe\xfa\x7c\x0b\x92\x31\x08\x8a\x2f\x26\x40\xee\x83\x69\x6d\xfd\x56\x39\x11\xf3\x12\x4b\xc3\xe5\xcd\x73\x6c\x0d\xd0\xba\x65\xe6\xc3\x67\x5f\x90\x76\xaf\xba\x06\xb0\x10\x9b\xae\x40\x07\x0f\xc8\xcf\x5e\xe5\x53\x88\x12\xbb\x58\x96\x17\x86\xdc\x4c\x40\xdf\x96\xd9\xe8\x07\xc7\xc6\xc5\xe3\x09\xa1\x99\xf5\x5d\x7f\x7d\x0a\xe1\x3c\x01\xaf\xdb\xc9\x37\xf0\x9f\x2d\xbc\x3d\x2f\xa0\x80\x57\xcf\xb0\x92\x5e\xb5\x4c\xa4\x8a\x5d\x3d\xdb\x3e\xfa\xd2\x3b\xe2\xe6\xba\x74\x11\xca\x65\x2a\xd7\xd6\xcb\xb2\x54\x81\xeb\xbc\x50\x1b\xdf\x6e\x92\xc9\xa4\x16\x9a\x5e\xa9\xd8\xa6\xc1\x3b\xd1\x49\xbb\xed\x72\xc6\xd5\xea\xfb\x95\x8d\x8f\xf0\x49\xe6\x3e\xbb\x6a\xb1\xa7\xda\x6a\xb5\x23\x59\x73\xb8\xa4\xb3\xee\x4b\xbd\xe4\xe5\xe6\xea\x62\x8b\xb3\x58\x5f\x28\x51\x21\x9d\x94\xf7\x3c\x63\xf8\xea\xec\xe9\x47\x5d\xbd\x54\xe7\x1a\x36\xba\xe9\x32\xfb\xc6\x0b\x2d\xe6\x4b\xbf\x6d\x65\xf3\x5f\x59\xf4\xf8\xbf\x21\x3b\x60\xfb\x19\xfa\x1e\xba\xb3\x22\x2b\x66\x84\xaf\x5f\x14\xee\x16\x68\x95\x02\xbb\x23\x44\x8a\xe9\x91\x19\x7f\xc6\x4b\x6f\x67\x4a\x6c\xc1\xcb\x67\xf3\x6b\xad\x47\x73\xbb\xfd\x6e\xfd\x15\xdf\xef\x3c\x13\x6a\xdf\xdc\x25\xff\x70\x17\x5e\xa6\x6a\xb4\xfd\xc6\x5c\xff\x70\xde\x79\x22\xd7\x3f\x9c\x37\x27\x71\xcd\x73\x6d\x18\xf8\x93\xd9\xb9\x58\xe1\x01\xdc\x99\x18\x5c\x8d\x36\xba\x97\x4c\xc6\x0b\x71\xf9\x79\x7b\xfc\x6f\x7c\xbf\xf3\x8a\x50\xfb\xe6\xaa\xf8\x87\x8b\x58\x52\xab\xae\x62\x8a\xeb\xa2\x73\xb1\x2a\x99\x1a\xcf\xfc\x0b\xc0\xcd\xdd\xeb\xdd\xe7\x86\x20\x44\x8d\xa9\x79\x60\xa2\x0d\x4e\x95\x17\x4b\xc4\x34\xd3\xe5\xab\x80\x6d\xf5\xf6\xb2\xcf\x72\xac\xb0\xb5\x6b\x11\xc0\x67\xaa\xe5\xb8\x61\xbb\xd9\xe0\x07\x53\x4e\x85\x8f\xe9\xd8\x7a\x7a\x3f\x53\x2f\x08\x68\xfc\x2c\xae\xfa\x73\x3a\x80\x96\xc3\xe5\x06\x7e\x7a\x29\x57\xf9\x1f\xad\x59\xaf\x03\x81\xa1\x3f\x5f\x18\x1a\x84\x84\x69\x4d\x80\xd0\x43\xd2\x2c\x45\x7b\x61\x33\x5e\x02\xbc\x12\x64\xfd\x56\xfc\x91\x41\xec\x09\xcb\x05\xd5\xae\x26\x64\xaa\xc4\x5c\xb1\x31\x1e\x08\xdf\x5d\xa6\xa3\xb7\x06\x15\x1b\xfa\x60\xad\x12\xfe\x8d\x61\x7b\x1e\x17\xbe\x69\x79\xc1\x84\x8f\x58\x58\x7b\x24\x60\x0a\xa0\x71\x6d\x11\xce\xd6\x41\x95\x52\x01\x68\x25\x66\x15\xaa\x08\x4b\xb4\x4e\xa0\x2d\xf5\x8e\xa3\xcb\xda\xb8\x41\xc9\x52\xef\xe6\x20\x01\xb4\xdc\xc6\x40\x33\x68\xd5\x3c\x46\xee\x49\x38\x47\x3f\x37\x20\xc3\x9e\x77\x7a\xa0\xa7\x0e\x87\x07\x8e\x4d\xa2\xb8\xc6\x73\xd2\xc0\xfa\xa0\xab\x1c\x33\x8a\xe9\x1e\x0f\x18\x2a\xc5\x4a\x07\xcb\x07\x3b\x7c\x7f\xb8\xc5\x11\xc2\x01\x53\xed\xa3\x26\x1a\xc6\xb2\x71\xb7\x9b\xb7\x71\xf3\xe1\x77\x02\x60\xf7\x05\x95\x72\xf4\x66\x46\x71\x43\xa7\xd3\xa5\x14\x22\x0a\x63\xe6\x73\xc6\x2b\x5d\x2b\x9f\xe6\x14\x12\xd5\x3f\xb5\x3e\x7c\x45\x48\xd5\x88\xc3\xd6\xac\xc2\x39\x12\x96\xbb\x43\xfc\x76\xf0\xf6\xcd\xeb\xdc\x2a\xf8\x5e\xeb\x56\x45\xb0\x2f\x3c\x40\xaf\x07\xcc\xf8\x89\x88\xb9\x6b\xde\xf7\x31\xfb\xb6\xaa\x45\x0f\x1f\x01\x40\x63\x92\x75\x7e\x84\xe8\x8d\xba\x4a\x71\x23\x8f\x9b\x80\x0c\xd0\x64\x2b\x50\xc6\x7a\xb4\xc5\x79\xa7\x83\x0d\x07\x23\x1e\xf7\x70\x2c\x0e\xcd\x9a\xa3\x9f\x0e\xfb\xee\xe0\xee\x80\x1d\x85\x10\x81\x4a\x6b\x7b\xbc\xc5\xc2\xd3\x24\x2e\x9e\xca\x4d\x08\x19\x17\x4f\x25\x57\xb9\xc8\x91\xd8\xef\x68\x46\x3f\x88\x29\x7f\x70\x2a\x93\x9c\xc9\x82\x57\x05\x64\xee\xdc\xe0\x98\x20\x5c\x5f\xa8\x07\x59\x69\x35\xc3\x12\xaa\x15\x26\x26\x04\xe3\x84\x61\xff\xcf\xd1\xcf\xa7\xd7\x80\x9d\x75\xec\x0b\xff\xe1\x28\x23\xa2\x4c\x3a\x92\xa4\xbb\x0e\xcb\xe9\x47\xe2\x56\x07\xee\xab\x1f\x99\xfb\xd2\xac\x76\x22\x0c\x58\x83\xb3\xa2\x36\xf2\xa1\xf3\xb9\xdf\x92\x69\x44\x0a\xbb\x1b\x9e\x71\xa5\x73\xb1\xa4\x04\xd4\x0a\xc8\xc9\xa4\x71\x88\x36\x49\xcb\x9d\x00\x97\x2f\xe4\x4c\x3a\x2a\xce\x2d\xca\x92\x8d\x60\x05\xca\xd3\x0b\xd1\xcb\xee\xc0\x74\x60\x2c\xc9\xe2\x6c\x69\x4e\x4c\xb2\xc7\xd7\xeb\x90\x3e\xd1\x23\x49\x39\x76\xda\x3a\x64\x01\x2d\xcc\xd5\x07\xf6\xcf\xc4\x4e\xab\x05\xe0\x72\x93\x4d\x62\x3d\x48\x53\x6c\xd4\x08\x0f\x0f\x16\x11\xc6\x0b\xad\x26\xe8\x32\x43\x2e\x13\xc1\x7a\x93\x00\x12\xd3\xa1\x50\xc0\xee\x42\x23\x93\x99\xad\xdb\x8b\x34\x16\x26\x46\xcd\xc5\xb8\xc8\x9c\x5b\x4e\xc5\x0b\x57\xd7\x39\xdb\x71\x28\xe0\x8b\x86\x9e\x8c\xa5\xdb\xe0\x77\xa2\x51\xbf\x68\xc8\xa4\x51\x77\x1c\x2d\x44\x04\x9c\x66\x90\x76\x7e\xab\xef\xc5\x82\x40\xf5\xdc\x52\xa7\x69\x5f\x2f\x9c\xc7\x42\x7f\x6b\x26\xf5\xe2\x0b\xbc\x5e\xc5\xed\x08\xfb\xdd\x52\x69\xf7\x48\xdf\xc9\x5c\x3a\xc9\x35\x68\xfe\xc0\x0a\x6d\x97\xe7\x9b\x4a\x1c\x52\xe4\x1f\x36\x67\x3f\x40\x7c\xcf\x27\xae\xf8\x04\x51\x7e\x8e\x6e\x86\x3f\x7c\x3a\x76\x87\x05\x3c\xc6\x97\xe7\x8c\x1b\xa3\x33\xd9\x2c\xeb\x7d\x93\x7e\x13\x4a\x54\xbd\x70\xdc\x1d\x00\xae\x9f\x39\x72\xb5\xdd\xa8\xf0\x14\x76\x95\x76\xd1\x03\x0b\xe9\xdf\xc0\x44\x5b\x67\xf9\x61\x96\xdf\xef\x56\x52\x4a\x86\xf7\x52\xd1\xe8\x17\x08\x45\x14\xf9\x50\xe7\x5e\xdc\xd9\x80\xb2\x73\x3b\x15\x0c\x03\x18\x11\x83\xad\x28\xbc\x09\x04\x71\x71\x72\xb6\xa2\x4f\x54\xdb\x50\x65\x04\x40\x4b\x56\x8a\xaa\x8f\x30\xab\x04\xfd\x01\xbd\xb8\x5b\x86\xa5\x0d\xdd\x45\x71\xbf\x1f\x99\xe3\xcd\x74\xa0\x5c\x39\x03\xf6\x4c\x07\x50\xb3\x9f\x2e\x12\xd4\x80\x61\x14\xa5\x2f\xda\x03\x38\x41\xbd\xa5\x97\xa6\x89\x3a\x82\x0b\xb9\xc2\x04\x89\x3f\x6e\x38\x81\x14\x4b\xda\xfe\x54\x52\x6b\xb6\xfd\xcd\xd6\x42\xf5\x5a\xd8\xbd\xfd\xb7\x6f\xda\xba\xf4\x96\xb8\x0c\x1d\x4f\x33\x4d\xb3\xb7\x7a\x2b\x5f\x7c\xc8\xa5\xca\xf5\xa3\xb9\x11\x59\x5d\x61\x85\x29\x2b\x9e\x2c\x42\x3b\xaf\x2b\x1a\xb6\xf6\xbd\x60\x8e\xa1\x56\x31\x8a\x38\x54\x07\xc4\xc2\x6e\xa1\x20\xc0\xe6\x33\x3c\x99\x19\x7e\x16\xde\xb8\x29\xc5\x42\xbc\x6c\x3b\x14\xea\xd3\xcd\x69\xf3\x05\x26\xa1\xf4\x27\x05\xbf\xbb\xdf\x19\xcf\x67\x12\x8b\x4a\x3d\x8a\xd1\x54\xeb\x7b\x76\xe4\x1d\x01\x13\x69\xa7\xf5\x68\x90\xe9\x59\xe2\x13\xe8\x1b\x39\x31\x27\x8f\x34\x2d\x37\xa6\x63\x26\x55\x21\x7d\x28\x99\x9b\x78\x82\x71\x85\x1f\x89\x13\x05\x75\x82\xd2\x3a\x89\x73\x2e\x0e\x13\x6c\x28\xdb\x82\x4e\x2c\x2e\x53\x07\xce\xb1\x62\x0c\xad\xf4\xdb\x95\xf3\xc1\x02\x10\xdb\x98\x7a\x6a\x75\x6a\x7e\x32\xa2\xea\x30\x46\x47\x5b\x7d\x53\x16\x8f\x96\xfb\x78\x55\xe3\x2d\x05\x34\x38\xa8\x6c\xb8\x68\x79\xa6\x22\xd0\x4d\x4d\xdf\x35\xa9\x8d\x53\x86\x42\x72\x80\x54\x4c\xce\x1c\x17\x9d\x09\xcb\x41\x32\x6c\xc9\x1f\xec\x13\x9f\x33\x5e\x18\x8f\x91\xef\xde\x18\xea\xbc\x75\x11\x20\x3b\x9c\x7e\x85\xb8\xf1\xd6\xef\x18\xa5\xbf\xf0\x5a\x03\x41\x31\x1d\x53\xfb\x75\x0b\x75\x4b\x23\x60\xc6\x6b\xc3\x27\xc6\xca\xee\x0f\x6f\x47\xc2\xf2\xb7\x03\x5f\xb7\x72\x0d\x8d\xf0\x4d\x5a\xce\x39\xa9\x26\x85\x60\x85\x9e\x00\x22\xcc\xdd\x01\xd5\x86\x75\xa2\x9e\xaf\xef\x4b\x58\xf5\x9d\xeb\x0c\xf2\x8e\x95\xfc\x43\x3b\x3c\x20\x32\xd6\x01\xc7\x34\x9b\xe6\xf5\x0d\xe6\x54\x0e\x5e\x42\x2a\x3a\xef\x94\xe9\x2c\xd3\x55\x0a\xfb\xdc\xe4\x22\xcd\x2a\xef\xf4\x4d\x27\x89\x7b\x08\xa0\x33\xac\x25\x5f\x91\xf9\x14\xb3\x82\x02\x1c\x95\x8d\x49\x06\x71\xbc\x89\x89\xdc\xed\x3f\x9e\x6f\x59\x31\xfd\xa8\x20\x2d\x66\x24\x0b\x69\x01\xa9\x2f\x9a\x65\x3d\x15\xe6\x96\x15\x82\x3b\x01\x5d\x85\xe1\x80\x45\x4d\x69\xcc\x7b\x80\x94\x8d\x45\xde\xb6\x53\xdc\xc4\xc6\x4f\x4f\xfd\x84\xa4\x16\xd2\xd8\x7e\xe8\x74\x95\x3f\x35\x73\x8b\xdb\xe6\x4a\xac\x93\xf8\xb2\xfa\xf0\x9e\xc5\x4e\xd7\xc9\x32\xf1\xdb\x11\xda\x62\x85\x55\x62\x69\x89\xc9\x70\xc8\x56\xc7\xc3\x76\xb0\xb7\xfb\x66\x4b\xcf\x6e\x38\xab\x69\x6d\xe4\x11\x96\x21\xc6\xa3\xd6\x28\xfc\x6a\x35\xc0\xa9\x49\x35\xa9\xa5\x99\x26\x3f\x80\xe9\x16\xe0\x90\xd0\x4c\x74\x24\x06\x93\x81\x3b\x7d\xe7\x57\x37\x18\xd8\x75\xec\x14\xc3\xc2\x02\x90\x77\x5a\x52\x5b\x66\x53\xac\xbe\xed\xc3\xc0\xc2\x78\xa3\xb1\x37\xc1\xe4\x19\xd7\x6a\x02\xc0\x3a\xf8\x85\x99\xef\xf2\xd4\x63\x44\xe1\x37\x8f\x49\x0d\x2d\xb9\x31\x30\x06\x00\xc8\x63\x47\xd7\x1f\xce\xd8\xdb\xb7\xdf\xbe\x3b\xc6\xaa\xda\x98\xb3\xb3\x05\xbc\x31\x80\xb9\x7d\xa9\x52\x7d\xe1\x6b\x88\x15\xdb\x0a\xac\x4b\xbc\xef\x84\x7e\x02\xda\x53\x03\xa1\x33\xdd\xf5\xf5\x30\x5f\xed\x09\xf1\x1c\x8f\x30\x2f\x86\xcb\x89\xe8\xb3\xee\xf6\x8a\xba\xee\xf1\x7a\xf0\x6a\x24\x2d\xa4\x84\x86\xdf\x1a\x37\x66\x89\xf8\xdf\x20\xc5\x06\x30\xc7\x4e\x90\x15\x96\x5c\x56\x91\xa6\xb9\x5e\xe2\x5b\x88\x39\x86\x3d\x0f\x76\x10\xeb\x8a\xe8\x66\xb1\x82\xbb\xbb\x4f\x52\x65\x45\x9d\x0b\xf0\xb5\x23\x88\xa0\x1e\x53\xc1\xf6\x74\x84\x3e\xe6\x1b\x5b\x1b\x04\x19\x22\x64\x18\x30\x87\xc7\xa0\xe2\xb1\x2e\x0a\xfd\x88\x6a\x4e\x51\xb0\x7b\xe5\xe8\xf8\xbd\x98\x9b\xf7\xec\x0f\xac\x39\x78\x7f\x8d\xde\x27\xb2\x41\x13\xa4\xbe\x49\x18\x10\xaa\xea\x4e\xb1\x44\xd6\xf5\x4b\xeb\x46\x43\x15\xa3\x69\xb0\x74\x37\xa3\x07\xaf\xc1\xca\x5c\x2f\x11\xf3\x6d\x70\xa7\xfe\x10\x91\xac\x9a\xa3\xfc\x87\x56\x6b\x46\x08\x00\x57\x61\x38\xae\xd7\x6d\x47\xd4\x71\x38\x95\x98\x48\xad\x56\x0f\x08\x7f\xdf\xfd\x90\x96\x53\xa0\x54\xb8\x62\xcf\x50\xff\xa2\x58\xb3\xad\x9a\xd7\x89\xf5\x6d\x96\xe0\x62\xe3\x55\xf5\xa1\x03\x8b\xa4\x64\xcf\x48\xa5\x3a\x78\x75\x78\xbe\xc9\xdb\x0b\x6d\x1a\x7b\x08\x81\x24\x09\x39\xa4\x8a\xcd\x25\x27\x13\xa2\x13\x8d\xe5\x83\x60\xb6\xe2\xe3\xb1\xcc\x7a\x4d\xa1\xed\x71\xca\x2d\x80\xba\x93\x55\xd3\x89\x4c\x5c\xf1\x89\x37\x0b\x44\x5a\x74\xca\x94\x2c\x16\xce\x10\x57\xac\x56\x78\x6b\x1d\xab\x17\x80\x42\x06\xe6\x99\x8c\x1b\x72\x87\x21\xdb\xa5\xb3\x13\xc4\x47\x1c\x75\xe3\x65\xc6\x0d\xf8\xac\x57\xe1\xf3\x2f\xba\x9e\x77\x2f\xc6\x0f\x9b\x05\x96\x56\x1d\x04\xa8\xca\xde\x8c\x5f\x76\x4f\xea\x00\x41\xd4\x14\x7e\xbb\x80\x74\x95\xc3\x4a\x5b\x9d\xe9\x85\x6c\xfd\x25\x0a\x20\x00\x94\x23\x86\xa0\xd3\xe8\xe0\x35\x82\xea\x72\xdb\xaf\xab\xa6\x2c\x84\x54\xd6\xb8\x55\x56\x39\xaf\xf2\x94\xc5\x12\x4c\xee\x5c\x59\xfe\x34\x60\x3f\xa9\x7e\x59\x89\xb1\x7c\x12\x79\x52\xe1\xcf\xcd\xb2\x7a\xa0\xa4\x9d\xcb\xd3\xab\xd3\xd8\x93\x4f\x7b\xc4\xc6\x47\xdc\xb0\x52\x54\xec\xfa\xc3\x59\xff\xfb\x77\xef\xfe\x0d\xd4\x3b\xc7\x8b\xde\x9f\x9c\x3c\x3e\x3e\x0e\x24\x57\x7c\xa0\xab\xc9\x09\x00\x08\x82\xcf\x39\x14\x91\xef\x7b\xa9\xea\x4a\xab\x7e\xe8\xdf\xcf\x2e\x1c\x20\x27\x5a\xb5\x86\x68\xea\x6c\xea\xce\xce\x6c\x9e\xe9\x59\xc9\xd5\x1c\x8c\x15\xb3\x79\x3f\xab\x8d\xd5\xb3\xbe\xef\xe3\xb5\xc2\x3f\x52\xd3\x40\x58\xfe\xd3\xa2\x60\x98\x2b\x0f\xa0\x8f\x2d\x65\x88\xf4\x1d\x40\x0b\xa5\xcc\x15\x4c\x6f\xa1\xa2\x02\xcd\xd6\x90\x09\xe8\x78\x35\x45\xcf\x34\x64\x24\x5a\xbe\x9e\x2f\x20\xe2\x29\x72\xd0\xec\xc9\x77\x34\x80\xd1\xfc\x7f\xff\x35\xc0\x0f\xc5\xa2\x5b\x42\x82\x84\x8b\xb5\xb7\x10\xd5\x9c\x20\xe9\x75\x15\xe4\x4d\xca\xb4\x89\x42\xa6\x63\xd0\xde\xdf\xdb\xd0\x9f\xbe\x7f\xc7\xb2\x29\xaf\x78\x66\xdd\xb5\x2f\xb4\x9a\x0c\x7c\x53\x10\x7b\x11\x17\xbc\xd0\x8f\x00\x4b\x68\x04\xa2\x95\x2b\x47\x25\x64\x96\xbe\xaa\x2b\x76\xd8\x3f\x0c\x2f\x03\x40\x03\x1c\x28\xa1\x48\x5a\xf2\x50\xe7\x0b\x2f\x47\x74\x59\x5f\x78\xe5\x99\xe5\x15\x5a\x49\x03\x1d\x8e\x00\x54\x43\x8b\x98\xaa\x4d\xe2\x79\x49\x47\x63\x11\x1e\x0f\x8f\x88\x2f\xc0\x58\x09\x37\x12\x74\x54\x37\x80\xf2\xa2\xce\xbd\x54\x01\x66\xc1\xb0\xe8\x09\xee\xce\x61\x73\xcb\xee\xd4\xe9\x72\xb8\x92\x28\x79\x57\xda\x4f\xe7\xc3\x1e\xbb\x3d\x1b\xf6\xdc\x2e\xdf\x9c\xdd\x0e\x1b\x3b\x76\x7b\xd6\xb9\x36\xde\xee\x39\x00\x12\xec\xcd\x2c\x00\xaf\x66\xd3\xa4\x13\xf0\xfa\xd3\xed\x27\x2e\x1d\x8c\x3a\x89\x45\x07\xb1\x0e\x09\x9f\xdd\x93\x52\x0b\xc2\x18\xe9\xaf\x41\x1f\x6c\x7e\x96\xa4\xf4\x5e\x28\x04\x11\x91\xf4\x43\x1d\x17\x5a\xea\xff\xd6\x52\xa1\x28\x50\x56\xda\xe3\xc5\xb2\x71\x5d\x14\x8c\x06\x1b\x06\xda\xdd\xc2\xd4\xc1\x9f\x9a\xda\x7b\x9a\x35\x59\x3d\x92\xa2\x37\xc1\x64\xbc\xaa\xa4\xb7\x04\x4b\xd3\x9c\x2a\x52\xd2\x96\x01\xc8\xc9\xa2\x91\x8e\x8e\x12\x65\xdb\xf5\xdd\x0e\x01\x94\xb3\x59\x6d\x21\x4a\x8a\x8f\x01\x0c\xb5\x12\x54\x50\xf5\xb6\xa1\x82\xf8\xf1\xa0\xd9\x09\xb0\x99\x51\xaa\x2b\xe6\xd1\xd3\xeb\xe8\xde\xe5\xf0\xe1\xbb\xf7\xec\xba\x99\x77\x39\x7c\xf8\x8e\x9d\x62\x0f\x03\x6c\xf3\xfd\x92\x36\xdf\xa7\x6d\x3e\xfc\xf5\xfc\xaa\xd9\x86\x7d\xa8\x8b\x62\xce\xfe\x5a\xf3\x02\x6d\x9e\xe7\x00\x35\xcf\xb6\x74\x9d\xf2\x52\xfe\x2c\x2a\xb3\x39\x94\xf3\x74\x78\x49\x0d\x43\x24\x13\x82\x9f\x54\x08\xfb\x00\x18\xb1\x33\x1e\x78\x5c\x38\xf6\x3c\x91\x75\xf1\x50\x0e\x80\xe1\x24\x22\x5f\xa6\xd5\x83\x00\x71\x29\xd3\x13\x25\xff\x11\x7a\x0b\x1c\xaa\x70\xb2\xa4\x45\x32\xa7\x3c\x3a\x76\x2f\x14\xae\xa8\x04\x58\x01\x6a\x95\xf4\xe0\xab\xa5\x2c\xc9\x5c\x98\x48\xeb\x73\x51\x32\x3d\x9b\xd5\x4a\xda\xf9\x09\xc0\x34\xc8\x51\x6d\x75\x65\x4e\x72\xf1\x20\x8a\x13\x23\x27\x7d\x5e\x65\x53\x69\x45\x66\xeb\x4a\x9c\xf0\x52\xf6\x61\xb0\x0a\x44\xfc\xc1\x2c\xff\x26\x64\x30\x3d\x7f\xed\xc3\xad\xda\xb0\xf4\x91\x4c\x80\x31\xc4\x17\xce\x20\xa9\x20\xf9\x35\x3d\xf8\x54\xf7\x85\x2e\xc1\x4a\xd5\xfc\xcd\x9b\x37\xcb\x6e\x37\x5b\x63\xd5\x7c\x81\x15\x71\xc7\x26\x50\x6e\xf5\x4c\x66\x2f\xc6\x6e\xe5\x8d\x02\x3b\xf1\xe4\x7a\x15\xe7\xfa\xe2\xe6\x36\x4d\x95\x96\xc1\xec\x14\x69\x7b\x3c\xd3\xb8\xd6\x63\x41\x5c\x2d\x04\x33\x07\xf5\x0b\x51\x97\x25\x18\x3f\xeb\xd1\x4c\x5a\xc4\xa8\x15\xc6\x62\xd5\xa8\x33\xae\x1c\xa7\x1f\x09\x56\x97\x39\xea\xd6\x97\x8a\x9d\xf1\x99\x28\xce\xb8\x59\x9e\x8b\xb3\xcb\x13\x0d\xc4\xad\xef\xd6\x6f\x8b\x33\xed\x9d\x41\x3b\x2c\x09\x82\x76\xc3\x4f\xc2\xf2\x0d\x29\x3d\xa4\x10\xe0\xde\x1c\x9a\xe0\x98\x5a\x61\xff\x03\xc1\x6a\xc3\x11\x41\xe1\xab\xc9\x9c\xfc\xfd\x53\xc2\x3e\xea\xea\x9e\x04\x34\x9f\x0b\x3f\x9a\xa3\x51\x38\x6a\xdb\x4b\x6e\x25\x88\x82\x2b\x25\x7c\x08\x65\x27\xcd\x20\x54\x05\x94\x76\x51\xa9\x77\x52\x00\x0a\x86\x44\x93\x73\x7c\x8d\xba\xc0\xd4\x51\xd4\x0d\xf0\x57\x02\x02\x71\x7a\x3a\xfc\x44\x64\xb4\xd1\xf7\xdd\x01\xf7\x8a\xc9\xdd\x41\x67\x2a\x42\x1f\x7e\x6d\x02\x32\x4c\x0a\xf7\xbe\x16\x11\x79\x9e\xc9\x09\xe4\x9c\xa5\x44\x7d\x93\x25\x2a\x3c\x6f\x8c\x0d\x20\xae\xfb\xc4\x56\xfb\x44\xc5\xe2\x67\x1b\x87\x75\x42\xa0\xdd\x07\x71\xc1\x90\x08\x34\xe7\x4e\x9d\x1c\x2c\x37\x38\x40\x93\x87\x20\x03\x1c\xd0\x92\x2f\x2e\xc8\x7f\x6d\x29\x29\x7f\x94\xa6\x8b\xc1\x24\xb4\x6d\x4a\xcc\xfe\xb6\x85\xfb\x04\x67\xb1\x43\xf8\xed\x5e\xb2\xf9\xed\x24\x9b\x65\x17\x7f\xa1\x7e\xd3\x86\x8d\x5d\xd9\xd1\xcb\x28\x08\x1e\xfe\x8e\x24\x64\x2f\x59\xfc\xae\x25\x0b\x77\x04\xbb\xcb\x15\x40\x89\x96\xc9\x14\x1d\x19\x06\x9e\xe5\xaf\x9b\x2b\x00\xad\xde\x1d\x67\x10\x0f\x70\x82\x1f\xde\x0e\x2e\x1e\xd6\x97\x0c\x85\xdf\xbd\xb3\x17\x64\x13\xf2\x8e\xc0\x73\xa3\x67\x02\x3d\x50\xde\xb8\x85\x08\x5a\x50\x0e\x31\xc2\x46\xe5\x42\x69\x30\x78\xea\x99\x20\x87\x41\xb3\xa4\x61\xbb\x7e\xec\x6a\xe6\xd1\x4e\x23\x59\x36\x66\x6c\x84\xb1\x72\xdc\x32\xfa\xf3\xd1\xd1\x76\x7e\x2f\xd4\xc9\x98\xcb\x02\xf2\xee\x26\xbc\x11\x03\x13\x1f\x78\xae\x81\x35\xd9\xe9\xa4\xf6\x2b\xc1\x73\x3e\x2a\x9a\x56\x8a\x8c\x2b\x12\x16\x2d\xba\x4f\xde\x7e\xfb\xef\x89\x2d\x74\xaf\xfa\xff\x53\x31\xc8\x08\xdb\x77\xd6\x4a\x42\x5e\xb6\x01\xad\xd6\x3e\xdc\x30\x3e\xf6\xd1\x57\xc6\xd4\xc0\x6e\x46\x3c\xbb\x07\xcc\x14\x70\x77\x58\x09\x31\x4f\x73\x14\xff\x29\x1c\x83\xe1\x8d\x03\x6b\xd8\xae\x2d\xc1\x71\x60\x1f\x64\x65\xec\xad\x9c\x09\x63\xf9\xec\xd9\x89\x50\x6b\x48\xb7\xeb\x73\x2d\xd9\x5e\x35\x86\xdd\x2f\xde\x86\x25\xf8\xc8\x7f\xf3\x15\x68\x0c\xe1\x8b\x2f\xc0\x42\x0e\x4f\xa7\x99\x47\x84\x71\xf7\xa5\x0e\x50\x17\xed\x0f\x7e\xa1\x79\x02\x83\x82\xbd\xd8\xdd\xd6\x7e\x92\x59\xa5\x37\xee\x6f\xf8\x72\xa8\x3f\xe4\xfe\x4d\x88\xe4\xd2\xd0\xd0\x1d\x3b\x1a\xbb\x1b\xc0\xf4\x08\x7d\xb4\x9e\xdd\xc4\xc2\x48\x7b\x31\xf7\x77\x2d\xe6\x26\x06\xb4\xa5\x9f\x74\x42\xd3\x26\x5c\x10\x6d\x05\xee\xf4\xb4\x9e\x71\x15\x44\x14\x96\xb4\x0b\x9e\xc6\x24\xa2\xd3\xed\x74\x49\xa5\xf1\x07\xec\x13\x7f\x92\x33\x5e\xb0\x42\xa8\x89\x9d\xc6\x20\x2c\xec\xfb\xed\xfd\x0f\x18\x08\x56\xc8\x51\xc5\x2b\x29\x4c\x12\x0f\x99\x06\xac\x50\x14\x30\x45\x3f\xd6\xa5\x7b\xf6\xfd\x77\xf7\x3f\x6c\x07\xa1\x60\x36\xca\x3f\xd8\x08\xe5\x3c\x4c\x45\x68\x8b\x7a\xfe\x4a\x35\x17\xe7\x95\xe5\xb7\x20\x46\x7e\x91\x88\xcc\x28\xb4\x86\xc8\x45\x00\xe2\xf0\xf1\x97\x81\xe0\xb8\x53\x32\xd2\xb5\x6d\x07\xfa\x48\x28\x0c\xa8\xd8\xe7\x70\xf3\x75\x65\x7d\x7f\x84\xe8\x17\x3c\xa0\xa6\xc7\x20\xd8\xf5\x5a\x40\x18\xcb\x8d\xb0\x67\xcb\x5a\x25\xbf\x1b\xc2\x06\x91\x86\x74\x06\x30\x9d\x62\xf9\xe2\x91\xc8\x78\x6d\xa0\x62\x21\xcf\xac\x09\xb5\x26\x51\x39\xc0\xf8\x8b\xa4\x2b\x2f\xab\xae\x5a\x76\x27\x91\x6e\x9f\x59\xff\xbc\x45\x87\x6f\x79\x02\x8f\x39\x41\xbc\x60\x46\x64\xda\x29\xa5\x73\xbf\xfe\x01\x98\xdf\xb1\xb2\x42\x3c\xd1\x09\x35\x03\x76\xe1\x96\x11\x98\x42\x5b\xed\x60\xb6\x92\x93\x89\xa3\xb8\x3c\x38\x3c\x01\xd7\x57\x14\xc2\xdf\x67\x3f\x80\x0d\x2b\x42\x5b\x19\xf7\x68\xe3\x8d\x5a\x78\x63\x59\x0e\x4d\x72\x32\xc0\xe2\xed\xf7\x33\x9e\x36\x3a\x26\x7f\x6f\xc6\x34\x12\x66\xd5\xdf\xdb\x17\x90\xb8\x02\x86\x7b\xb8\x25\x53\xe2\x11\xfb\xd9\xee\xfe\xd1\x24\x2e\x95\xb1\x5c\x2d\x8a\x38\xab\x26\xed\xdb\xfb\x29\x5f\x9e\x2f\x99\xb0\xa4\x46\xe9\x0c\x0b\x61\xfb\x4f\xf3\x7f\x8c\x9f\x33\x31\x2c\x2b\x6c\x5f\x81\xfe\x18\x51\x2d\x46\x46\x6f\xbe\x07\x2d\x9b\xc0\x0d\xf6\xb2\xee\x16\xe0\x87\xc0\x8f\xc1\x2d\x4f\x72\x08\x90\xe0\xd0\xcf\xc9\xd5\x4f\x0c\xc8\x6e\x2d\x64\x81\xe5\x7f\x0f\x63\x52\x8d\xd5\x0a\xdf\x5e\x15\x1b\xbe\x39\x7a\x01\x62\x14\x5a\x95\x1f\x93\x31\x1c\x5d\x41\xc5\x96\x1e\xfb\x85\x57\x4a\xaa\xc9\x71\x0f\x36\x05\x23\x07\x32\xcf\xd6\x30\x85\x95\xac\x13\xe3\xda\x49\x14\x2b\xad\x01\xbb\x4d\xff\x8d\x72\xeb\x17\xb4\x48\xd1\xde\xaf\x35\x47\x81\xa1\x68\xb5\x09\x6a\x7b\xeb\xd3\x26\x3f\x84\x6f\xd3\xf4\xb2\xe3\x19\xa3\x68\x9a\x6e\xb5\x54\xf7\x56\x95\xaf\xd8\xed\x00\x6d\x9a\x5b\xec\x17\xba\xbd\xc7\x2b\xfb\xdc\x82\xcc\xed\x3d\x0e\x7b\x55\xec\x85\x1e\x87\xd7\x5e\xab\x30\xdd\xaf\xdf\xb3\xd1\x95\x8f\x6c\x70\x67\x6c\xcf\x4b\x6e\xda\xb2\xcf\x52\x6e\x82\xad\x42\x76\x69\xab\x54\x19\xc9\x2d\x7a\x8c\x12\x83\xe9\x31\x39\x10\x03\x2c\x68\xe1\x0b\x73\x99\x13\xa8\x85\x57\x96\x42\x79\x55\x49\xaa\x5a\xd7\xa6\x40\x39\x0f\x4b\xe6\x03\xf0\xf2\x8f\xfa\x91\xe9\xb1\x15\x50\x38\x1c\x6f\x5b\x14\x92\x6e\x82\x08\x85\xea\x32\x5c\x62\x2f\x2b\xe9\x0a\x24\x40\x88\x75\xcc\x29\xc6\xb6\xf9\xa3\x93\x50\xee\x0e\xfc\x41\x83\xfb\xde\x9f\xe8\x13\xab\x75\x61\x4e\x70\xf4\xf8\x9f\xbf\x8d\x2a\xcd\xf3\x8c\x83\x73\x66\xa2\xef\x0e\x1c\x47\x7a\x44\xb0\x47\x8c\x82\xb1\x55\x9d\x59\x1c\x48\xce\x09\x63\x76\x2a\x78\x65\x47\x82\x93\xb4\xea\x44\xd5\x49\x2d\x73\xc1\x30\x3c\x1f\xb8\x4f\x1c\x8a\xd7\xfe\x38\x9e\xdc\x2e\x40\x5c\x9b\x4d\xec\x59\x6a\x58\x8f\x41\xda\x3a\xc3\x00\xcf\x2c\x8d\x2b\xc5\xb5\x8c\x0b\x59\x70\x63\xe3\x1c\xa8\x74\xd9\x8e\x4d\xea\xee\x1b\x9f\xc9\x80\xf7\x9b\x58\x1b\xdb\x03\x58\x34\x3a\xc2\x32\xa0\xb8\x14\x18\x05\xad\xd5\x23\x77\xcb\x26\x94\x2f\xa9\xd8\x5c\xb1\x2d\x7c\xa9\xb8\xa5\xeb\xd6\x67\x13\x35\xda\x78\xd1\x29\x6c\x60\xef\xb7\xdc\xfb\x2d\xf7\x12\x76\x5c\xe1\xbd\xdf\x72\xef\xb7\xdc\xfb\x2d\xf7\x7e\xcb\xbd\xdf\x72\xaf\x2c\xef\xfd\x96\x7b\xbf\xe5\xde\x6f\xb9\xf7\x5b\xee\xfd\x96\x7b\xbf\xe5\xbf\x8e\xdf\x32\x31\x0c\xec\x9d\x97\x7b\xe7\xe5\x73\x9c\x97\x5b\xc7\xcf\x27\x67\x6e\xef\xc6\xfc\xbd\x1b\x59\xbe\x4a\x37\x66\x6a\x0e\x4d\xfa\xd8\xfb\x32\xff\x65\xd5\xb3\xbd\x2f\xf3\x6b\xf2\x65\xee\x82\xb5\x7c\x7d\x5e\xcd\xbd\x73\x6f\xef\xdc\xdb\xa5\x73\xef\xc9\x0a\x65\x80\x48\xf8\x83\xff\xe3\xed\xed\xf0\x52\x4d\x2a\x61\x4c\xab\x54\x47\x7b\x91\x5a\x2d\x23\x32\x2b\x94\x41\xf6\xf5\xdd\x18\x67\x04\xd3\xed\xd8\x43\xa6\x67\xee\x84\xd7\x55\x61\x9a\xd5\x14\x4a\x5f\x11\x6d\xac\xab\x47\x5e\xe5\x11\xf0\xd4\xbf\xbd\xf9\xe8\x53\xcb\xe7\x6b\x32\x8b\xab\x40\xf3\xfa\x81\x7a\x5c\x77\x56\xa8\x4d\x43\xda\x0b\xf8\xbc\x11\xee\x2f\xb2\x55\x9d\x14\xb8\x23\x8c\xc9\x50\xce\x34\x9d\xfd\x2a\x98\x8e\x8e\x05\x54\xa4\x09\xb5\x43\xf8\x84\x3b\x35\x34\x2e\x34\x4a\x99\xd2\x6f\x07\xb1\xf5\x01\x3b\x0b\xe8\x4d\xa4\x69\x7a\xa2\x96\x80\xcc\xe5\xd2\xf0\xa2\xd0\x8f\x69\x61\xca\xc8\x6d\x00\x97\xdd\x7d\xe3\xee\x80\x95\x9c\xdc\xbf\xec\xa7\xeb\x8f\x8c\x47\xd8\x8d\xd1\x9c\x5d\x7f\x38\x63\xef\xfe\xd7\xbf\x7f\x3f\x60\x6e\xb0\xc6\xc3\x52\x4d\xa4\xf2\xa7\xe6\xf0\xe4\x90\x70\x3b\x12\x10\xfd\x1e\x94\x46\x29\xe1\x15\xf8\x7a\x7b\x0e\x88\x42\x45\x13\xdf\x06\xbb\x8e\xdb\x69\x07\xa8\xae\x21\x35\x4b\x0b\x78\xba\x85\x08\xb8\x73\x3c\xb5\xa4\xc2\x7e\xf8\xe3\x8e\x33\x86\x97\xa9\x98\x9d\x56\xc1\x52\x12\xa1\xb5\x50\x2c\x7f\xcf\xfe\xc0\x2e\x9e\x78\x66\xdf\xb3\x4f\x30\x27\xfc\x8c\x5b\x4f\xd8\x48\xe1\x7e\x2b\xe6\x03\xf6\x07\x36\x04\x88\xc7\xd8\x6e\x04\x55\x7c\xb4\xa2\xe5\x87\xe6\x08\x03\xc9\x4c\x59\x48\xeb\x76\x01\xd6\xf8\x93\xbf\x87\xd2\xdc\x29\xc6\x72\x18\x8e\xf2\x77\x58\x10\x04\xdb\x68\x1e\xff\xc9\x8d\x34\x50\x9d\x25\x6d\x00\x67\xde\x10\xa5\x74\x1d\x79\x39\x9c\x70\x91\x7d\x59\x5c\xf7\x4e\x18\x80\x7b\x72\x78\x72\xc8\x8c\x28\x79\xc5\xad\xae\x5c\xb7\xb4\x95\x20\xf2\xba\x8e\x10\x3d\x77\x0c\xd8\x8a\x6e\x12\x4c\x02\x33\xad\xe6\x0c\x9c\x60\x5c\xf9\x31\xf4\xa1\x5e\x27\x4d\x52\x8f\x59\x49\xcb\xea\x3a\xf1\x9d\xba\x2e\x06\xec\x4a\x43\x34\x10\xb7\x50\xfb\xd3\xb3\x35\x3f\x15\xda\x8c\x92\xae\x11\xc2\xd4\xc1\xa1\x71\x3d\xe9\x25\x6f\x48\xd5\xf8\x00\x42\xc8\x20\x74\x21\xa7\xf1\x23\x5a\xf9\xc9\x58\xeb\x93\x11\xaf\xc2\xbc\x84\x09\xcf\x4e\x46\xfc\x1f\x68\x39\xcf\xb5\xc0\x97\xf1\x55\xdf\x60\xc4\xff\x71\x0c\xd8\xc5\x97\x8d\x98\x9f\x1b\x82\x32\x7c\xcf\x2e\x37\x1f\xbf\x10\xf3\xe4\x46\x00\x56\x2b\x24\x75\x67\x05\x37\x66\xd0\xea\xd9\xc0\x11\xb5\x95\xf0\x98\xb9\x1c\x8b\xa4\xc3\x66\x89\x70\x90\x61\x55\x2a\x6a\x27\x7d\xd9\xa6\x0c\x62\x39\xac\xa6\x93\xe9\x5a\xc0\x51\xc6\x75\x05\xe9\x7d\x70\xa7\xda\x1f\x44\xf4\x54\xaa\xa1\x68\xb5\x87\x91\x0b\xf7\x9e\x5e\x6c\x54\xe3\x58\xbe\x1c\x3b\xb6\xb1\x78\xee\xf2\x3a\xbc\xf6\xba\x2e\xc4\xcf\xee\xca\x77\x63\xb8\xa1\x79\x53\xe5\x75\xaa\x03\x01\x1c\xea\xca\x30\x60\x38\x14\xb0\x42\xc3\x37\xa0\xa4\x81\x9e\xf7\xc4\xdd\xb2\xbd\xf7\x68\xb3\x77\xf5\x9b\x37\xef\xb2\xa9\x36\x16\xfe\x25\xe8\x01\xd0\x72\x78\xf0\xbf\xf1\x81\x11\x4e\xd9\x70\xb4\x1d\x1f\xb3\x3e\xfd\x97\xbe\x40\xd0\xd8\xf8\xff\xae\x59\x28\x66\x50\x57\x45\x82\xb6\xea\x06\xe5\xb9\x40\xcf\xdb\x42\x48\x77\xf5\xec\x10\xd0\x81\xad\xa6\x6b\xe0\xd9\x18\xdc\x7d\x14\xa0\x11\x9e\x30\x5c\x47\x47\x4a\xb8\xca\xbd\xe4\x05\x14\x15\x7c\xa6\x87\xff\xfb\x10\xd0\x51\xbf\x39\xec\x20\x47\x00\x7b\xd9\x64\xe6\x61\x99\x2e\x0a\x2a\x9c\xe9\x48\x0d\xb0\x24\xaa\xa0\x59\xa6\x8a\x72\x5c\xf9\x1d\x59\x20\x36\xcb\x6c\xcf\xb6\x47\x74\xbc\x02\xb8\x30\x3b\xbc\x00\x34\xe8\x35\x67\x9e\x5a\xe0\x31\x6f\x2e\x79\x55\x17\x1e\xfa\x0b\x04\x12\x26\xd5\x48\xd7\x0a\xcc\x64\x0a\x9b\x61\x91\x1f\xc0\x1f\x6b\xe2\x8b\x26\x92\x48\x22\x9f\x9e\x2a\x4f\x0d\x3d\x6b\xc6\x5a\xa1\x35\xd1\xa2\x89\x7c\x08\x85\x20\x0d\x73\xf3\xa9\x94\x23\x72\x7d\xf8\x04\xf8\x51\x9d\x64\xdb\x63\x85\xe6\x39\x1b\xf1\x02\xbc\x03\x01\x47\x1c\x25\x05\x47\x38\x6f\x6e\x3e\xf6\x98\x1e\x8f\x45\x85\x7e\x12\xe4\xd5\x0f\x58\xed\x11\x50\xf9\xdd\xe1\x16\x36\x1b\xb0\xf3\x8b\xe1\xf5\xc5\xd9\xe9\xed\xc5\x39\xeb\xa3\xb7\x00\x34\x65\x6f\x50\x74\x0b\x91\xac\x51\x12\x24\x31\x9a\x7b\x44\x36\x27\x74\x90\x21\x81\x16\xde\xbf\x32\x60\x37\x42\x90\xc4\x5a\x08\x6e\xd0\x89\x6b\xa2\x1b\x2a\x51\x66\xf7\x46\xd2\xaf\xda\x48\xba\xb7\x23\xfe\x5e\xec\x88\x2f\xc7\x77\xfc\x0d\xac\x89\xa9\x3f\x71\x49\x85\xbd\x17\xe8\xe0\x50\xb0\x6f\xed\x42\x50\x81\x3e\x0c\x12\x33\x58\x7c\x1b\x82\x86\x49\xee\x08\xc4\xee\x95\x97\xc5\x4d\xbc\xcf\x55\xde\xc7\xc8\x99\x55\xb5\x59\xe1\xb7\x1d\xae\x0f\x76\xb8\xe1\xa8\xd8\xda\xab\x66\x8d\x4a\x53\x5f\xd1\x1a\x2d\xc8\x20\xaf\x68\x62\x0e\x8b\xb9\xdc\xbe\xec\xc5\x92\x1d\x5a\x97\x37\x9a\x98\x36\x8a\x40\xd1\xce\xe4\x7e\x1d\x09\x03\x2a\x51\x52\x7f\x6b\x09\x30\xba\x63\x69\x00\x23\xdf\xa5\x96\x8a\x79\x59\x7c\xa7\x53\x04\xf3\x8f\x3a\xe3\xc5\x73\x22\x63\xae\x3d\x9b\x91\x49\x50\xd1\xb5\x18\x43\x61\x2b\x85\x95\xc4\x92\xd2\x0d\x81\x2b\x91\x35\x01\xca\x59\x94\x3c\x6b\x9f\xe3\x18\x91\x3f\x4e\xde\x31\x69\x1d\x01\x5a\x23\xa8\xea\xe0\xd6\x89\xfe\x1e\x06\x28\x5a\x62\x4a\x49\x01\xe9\xe5\x17\x3a\xf6\xb3\xa9\xcc\x72\x03\x36\x37\x0d\x90\x59\xb4\x17\x6e\x17\xc7\xe1\x27\xf0\x32\x6e\x54\x5b\x59\x0c\xdc\x99\xb2\xd5\xe0\x52\xd9\xcf\xd5\x0d\x7e\x75\x13\x11\x8e\x73\xf3\x89\x1f\xab\xe6\xd6\xfd\xd6\x3f\xff\x42\x6d\x88\x07\x48\x5a\x2d\x53\x2a\x3c\x1d\xdc\x0b\xbb\x5f\xb3\xb0\xdb\x25\x22\xe0\xd2\x47\x04\xa4\x18\xd5\x0b\xdb\xbb\xb2\xbb\x97\x31\xe5\x7d\x48\xc0\x5e\x94\x7f\x76\x48\xc0\x57\x21\xc8\x77\x34\x05\x7d\xf9\xb0\x80\x6e\x32\xdb\xae\xa3\x02\x56\xde\xf0\xeb\xba\x58\x67\xab\x4d\x5a\xb5\x0b\xdf\xa1\xdd\x6a\xc6\xcb\x32\x75\x7e\x1a\x56\xab\x5c\x38\x11\x2e\x96\x6f\x9e\x6a\x63\x63\xb2\x21\x46\xf0\x7a\x2b\xab\x37\x43\x25\x5e\xd5\x86\x0b\x0c\xed\x9e\xc2\xd1\x05\xcc\x99\x01\xf1\x10\x7a\x04\x6b\x2a\x14\x8c\x56\xac\xd2\xb5\x5d\xf0\xb5\x2e\x2d\xb2\x19\x1c\x08\x6d\x13\x74\x07\x5e\xe9\x3e\xbb\x81\xa2\xfd\xa8\x4d\x08\x49\x18\x43\x49\x97\x5f\x43\x49\x97\x1c\x4b\xba\x78\x89\x89\x87\x52\x03\xae\xdf\xde\x4a\xcf\x22\x39\x79\x52\xaf\x5a\x2e\x1e\x24\x39\x1a\x02\x75\xbb\x83\xe1\x25\xfe\x4a\xf4\xb0\x5d\xa6\xfd\x4a\x15\xfa\x7d\xcf\xde\x0e\xd8\xe5\x30\x96\xa0\x22\x6f\x68\xea\x3d\xe5\x6a\x61\x95\xc0\xa2\xa8\x95\xfb\xb1\x2c\xc1\x2f\x72\xa7\x18\x79\x60\x86\x5e\x9c\x05\x55\x36\x78\x9f\x40\x4b\xf3\x1c\xeb\x4e\x7d\x8b\x19\xe9\x7f\x7f\xff\x77\x96\x0b\xac\x0a\x5a\x79\x27\x53\x25\xdc\xa9\x49\x63\xe4\x9b\x65\xb2\xfc\x18\xef\xd4\x9d\x65\xc9\x40\x53\x61\x2d\x0e\x1a\x4b\x00\x95\x85\xcc\xa4\x6b\xf4\xfe\xdf\xdf\xc0\xf1\x01\xef\x02\x57\x39\x76\xf2\xfe\xbb\xef\xde\x85\xc7\x6e\x7c\x3f\x68\x3c\x29\x06\x2b\x23\x34\x33\x76\x43\x38\xec\x3a\x7f\x6d\xc3\x51\x0d\x47\x35\x31\xe4\x2f\x1c\x3b\x5f\xf9\x6d\x4a\x27\xa7\xe1\x26\x4e\x75\x01\x38\xe3\xa8\x2e\x79\x7f\x7b\x70\x8e\xda\x69\x5a\x2f\x7d\xe1\x1b\x77\xea\x4e\xfd\x88\xb9\x0f\x60\x0f\xbe\x3b\x28\x2b\x91\x49\x23\xee\x0e\xc8\x8b\x0f\x4c\x38\x3d\xa0\xee\xc2\xf8\x98\x66\x6f\xf1\x85\xa3\xa7\xed\xe2\xe1\x25\xaf\xe0\xdd\xc1\x58\xeb\xc1\x88\x57\x83\x4c\xcf\xee\x0e\x8e\x99\xae\xd8\xdd\xc1\xa3\x2c\xf2\x8c\x57\xf9\xdd\x41\x6f\xd5\xc7\x42\x5d\x3f\x72\x9a\x53\x89\x74\xff\x26\xd5\x2a\xf4\x1f\xf9\xc3\xc0\x7d\x06\x3f\x81\x87\x29\x34\x0c\x0e\x7e\x76\xf8\x87\x43\xd4\x7f\x78\x59\x0a\x5e\xb9\x2b\x25\xad\x11\xc5\xd8\xdd\x87\xe8\x51\x39\xbf\xba\xa1\xde\x51\x94\x44\x57\x26\x1e\xf0\x50\xa9\x1d\x2a\x9b\xb2\xff\xd4\xb5\x0f\x6e\xa7\xf2\x1e\xad\xf1\xc5\x4f\xe0\x48\x61\xc5\xff\xf4\x27\x37\x62\x18\xe9\xb5\x3f\x2b\xde\x2f\xb4\xec\xbc\xc0\x4b\x54\xc1\x4a\xb5\xae\xfd\x23\x9f\xe3\xb5\x1d\x33\x4f\x67\x68\x1f\x7b\x44\x5c\xd1\x77\x3b\x0b\x3e\x76\x27\x87\x3b\xda\x4d\xee\x61\x38\xfa\xb0\x61\x53\xc1\x73\xbc\x77\xc2\x11\x28\x47\x39\x5d\x97\x03\xf6\x6d\xa3\xfb\x38\x47\x22\xb4\x5b\x7f\xc6\xea\xf8\x25\x38\xad\xf5\x78\x2c\x9f\xd8\x51\x25\x66\xfa\xc1\x73\x10\xdc\x13\x58\xcd\x63\x4f\x40\xc2\x22\xbb\x2f\x6c\xa1\x4f\xba\xc1\xec\xc2\x4e\xb5\xd4\xcb\xf9\x9a\x1a\xe0\x4d\xd3\x00\xb9\x82\x35\x03\xad\x8d\xc6\x94\x94\x60\x80\xb3\xd2\x88\x8a\x3d\x4a\x03\xfb\xa4\x99\x78\x92\xa6\x8b\x19\xe5\xb7\x89\x41\x3a\x0d\x38\x25\x9e\x83\x43\x65\xff\x02\xd8\x25\x4a\x0a\x0d\x9a\x0b\x4e\xb3\x5c\xab\x43\x1f\x61\xc0\xd5\x1c\x8f\x09\x3b\x4d\x4b\xfe\xeb\x31\x3b\xa4\x1e\xd1\x7f\x0a\xb2\xcb\x61\x28\x22\x17\x6d\x23\xad\x02\x72\x21\xc3\xc9\x6a\x72\xce\x81\x16\xa6\x79\x4e\x5e\xb1\x2a\xcd\x91\x81\x64\x25\x18\xbf\x1b\x65\xa1\x27\x32\x03\xd7\x3f\xf4\xee\xe8\xc9\xa4\xd0\x23\x5e\xf8\x46\x2b\x0c\x31\x32\x09\x64\xe8\x60\x8d\xb9\x6c\x35\x5f\x96\xb8\x94\xb6\xf1\x58\x15\x41\x9d\x42\x0a\x9a\x88\x4a\x8d\xd6\x5e\xd5\x47\xc2\x9d\x4c\x16\x68\x58\x2c\x6d\x88\x74\x21\xf6\x88\x06\x80\x82\x67\x62\x21\xed\xb9\x95\x1d\x45\xf3\x1d\x64\xee\x7b\x7f\x67\x40\x60\x29\x41\xf3\x83\xae\x42\x56\xb4\x69\xa6\x45\xf7\x7c\x66\x31\xb7\xc9\x2b\x60\x1b\x13\x16\xe2\x56\xfc\xe6\xa2\x29\xd1\x7d\x5d\xe4\x50\x6b\x5e\x3f\x04\xcd\xd0\xed\x33\xce\x3f\x99\x99\xe3\xfa\x62\x26\xad\x23\x7e\x98\x27\xe3\xe9\x1a\x25\x6c\x3b\xc9\x32\x7e\x12\x78\x41\x2e\xc7\x60\x1e\xb2\xc1\xea\xd0\x0e\x08\xf1\x66\x91\xd3\xe1\x65\x28\x89\x3c\x51\x4e\x2a\xa0\xf5\x76\x8b\x4c\x3c\x97\x33\x58\x8c\xf4\x5c\x46\x9f\x2e\xee\x4b\x50\x86\x7d\xb9\x48\x5e\xdd\x3b\x4e\x62\xfc\xe9\xf2\xbc\x96\x38\xbe\x0f\x41\x30\xc2\x75\xef\xaf\x19\xaa\xdb\xa1\x54\x27\xad\xc7\x87\x25\x6e\xd3\x1e\x1a\xc0\x3c\xf5\x6e\x9e\x11\x9d\xd5\x61\xa6\xdb\x64\xae\xb9\xdb\xb8\x31\x50\x21\x04\x87\x38\xbe\x82\xca\x87\x9f\x54\x70\x6f\x37\x7d\x00\x97\xe3\xa6\x30\xa5\x2b\xa6\x34\x32\x2a\x62\x5d\xbd\x86\x34\x05\x87\x47\x05\x55\xa5\x45\x8b\x5e\xdd\xd8\x02\xaa\xd8\x4b\x0c\x2e\xb6\xd8\xb4\x8a\xb7\x1f\x6f\xc2\x62\xd1\x1d\x6b\x0a\xd1\xc1\xee\xac\x62\xe9\xcb\x98\xa1\xc6\xdc\xfb\xee\x51\x8f\x7d\xf7\xdd\x3b\x58\xe0\x50\xa6\x74\x26\x66\x23\x28\xde\x4b\xe7\x1c\xb6\xcb\x93\xbe\x78\x3d\xdc\xee\x19\x90\x25\xe6\x51\x0c\xa2\x3e\x9e\x12\x59\x16\xa4\x42\x08\x98\x4a\xab\x96\xdb\xb4\xd8\x7f\x94\x77\xed\xb4\xd2\xf5\x04\xf5\xbb\x9b\xab\x4b\x18\x66\x58\xe7\x9e\xbf\xbd\xd2\xc7\x44\xc4\xab\x3e\xae\x8b\xb1\x2c\x0a\x2f\x7e\xf8\x16\x61\xe2\x37\x57\x97\xaf\xbe\xed\xb7\x1f\x6f\x76\x10\xe9\xf2\x72\x69\xa3\xed\xd0\x5b\x25\x6f\xa0\x13\xce\x4b\x1c\x9b\x5d\x71\x9b\x85\x0d\xc7\x4f\x7f\x20\x7e\xba\xb5\xdf\xe6\x63\xd2\x49\x07\x5f\x62\xda\xbc\x99\x42\x9e\x4e\xa6\x0e\x41\x5f\x6e\x8c\x7d\xcf\xf4\x5f\xd7\xf2\xff\xff\xb3\xf7\xf6\xcd\x6d\x1c\xd7\x9e\xf0\xff\xfb\x29\xba\xe8\xfb\x94\xa8\x14\x00\x8a\x92\xed\x9b\x28\xb5\x95\x87\x91\x64\x87\x1b\xdb\xe2\x23\xd2\xbe\xb5\x6b\x7a\x8b\x8d\x99\x06\xd0\x57\x83\x69\x64\x7a\x06\x14\x72\x93\xaa\xfb\x41\x76\xbf\xdc\xfd\x24\x4f\xf5\x39\xa7\x7b\xba\xe7\x05\x33\x00\xc1\x17\xcb\x93\xaa\x24\xe2\xa0\xa7\xa7\x5f\xcf\xfb\xf9\x1d\x73\x20\x3a\xb7\xc1\x1c\xf1\x50\xea\xcb\x33\x9e\x6a\xb8\x32\x09\xdf\x88\x8c\x69\x11\x15\x99\xcc\x37\x35\x2b\x48\xa9\x20\xf7\x34\x79\x74\x51\x15\xa3\x2c\xa0\x02\xcc\x03\x2a\xad\x6d\x59\x41\xa7\xca\x00\xfd\x31\x9f\x99\x41\x55\x42\x64\xbd\x04\x9c\x60\x53\x35\x30\xa3\xa8\xb0\xfa\x85\x13\x66\x4e\x88\xde\x53\x57\x79\xa2\x2f\x45\x94\x89\x3c\x8c\xa1\x0c\x34\x06\x60\x15\x5a\xe4\x20\x8f\x21\x97\x6b\x97\xde\x02\x5a\x20\xb5\x5d\x23\x20\x1f\x89\x98\xe5\x3e\x2f\xe9\x47\x14\xda\x78\xdf\x1e\xa4\x5d\xc3\x54\xfb\x38\xe7\x5c\xc3\x26\x41\x10\xbb\x71\x7c\x33\x88\xe4\x72\x6c\x50\xa5\x48\xdd\xbf\xb1\x52\x30\xcc\xbe\x2e\x0a\x9b\x77\x32\x55\xe4\x88\x5d\x43\x86\x08\x43\x7e\x1d\x85\xe6\x89\x4a\x4b\x03\x87\xfd\x09\xf1\x0d\xcc\x36\x8b\x14\xb7\x60\x96\xc8\x28\xd7\xa5\x8d\xee\x1a\x8e\xd4\xf5\x91\x55\x1f\x51\xee\x2a\xa8\x0e\x67\x68\x95\x1a\x55\xfa\xa6\x53\x02\xbb\x6d\xcd\x16\x2a\x05\xa1\x0d\xa5\x1d\x5a\x8a\xbf\x84\xea\xa9\x7b\x89\x66\x74\xdf\x65\xc8\xbd\x98\xb6\xf5\x6f\x32\x5b\x25\x5c\x80\x21\x51\x65\x48\x54\x19\x12\x55\x86\x44\x95\x21\x51\xe5\x89\x26\xaa\x3c\xad\x24\x94\x56\xee\x39\xe4\x9f\x0c\xf9\x27\xfb\xc8\x1f\x7b\xa6\x9e\x04\x3f\x1d\xbe\x16\xf9\xdd\x12\x55\x2a\x12\xd6\xc5\x9f\x13\x15\x7d\xdc\xa6\x59\x62\x0b\x3f\x32\x13\x0e\x9e\x8c\x8a\x84\x67\xec\xcd\xf9\xdb\x0f\xec\xf8\xdd\xa7\x09\xbb\x3e\x3a\xfd\xc3\xcb\xc9\xe9\xd7\xbf\x9f\x9c\x4e\x4e\x4f\x5e\x7e\x79\x7d\x34\xba\x3e\x7a\xf9\xe2\xc5\xe9\xeb\x78\xfa\x87\xd7\xaf\x4f\xbe\xfe\xf2\xfa\xe8\x39\x51\x7b\x6d\x7d\xb6\x56\xb2\x5c\xa9\xb8\x14\x94\x20\x6f\xe5\x07\x1c\xe7\x85\x4a\x64\xb4\x31\xb4\xf5\x99\xb9\x72\xf1\x25\xdd\x3f\x54\x12\xc5\xa7\x48\xac\x72\x26\xd2\x3c\xdb\x78\x23\x34\x83\xa2\xf3\x42\x46\x55\x0a\xdc\x71\x9a\xa7\x91\x6e\xac\x6a\x19\x7a\x90\xda\xb1\x07\x64\xdc\x85\x18\x06\x8b\xe1\x07\x2e\xd5\x42\x96\xce\x2f\x18\x2e\xe7\x4f\x3c\x91\xb1\x25\x13\x48\x6f\xeb\x0b\x88\x9e\xd2\xca\x1a\xee\x2e\x4d\xe1\x2a\x75\x8c\xfd\x1d\x2e\x25\x8e\x3e\x91\x18\x74\xda\x7b\x21\x8d\xf6\x75\xf7\xa9\x31\x1a\x04\xe9\xfe\x96\x50\x61\x18\x9f\x51\xf2\x67\x68\x22\x34\x5d\xaa\x22\xd7\x32\x46\x32\x04\xeb\x9e\xf1\x74\x2e\x1e\x44\x03\xef\x79\x4f\xe1\xc0\x1c\xe8\x9a\x0e\xa9\x64\x1d\xa9\x64\x43\x48\xeb\x53\x0e\x69\x1d\x82\x3e\x3f\x97\xa0\xcf\xdf\x64\xfe\x56\x23\x31\x1e\x52\xb7\xda\x97\x66\xc8\xda\xda\x35\x02\xb8\x96\xcd\xbc\x6f\xf2\xd6\x0e\xf1\xbf\x5b\x8d\xad\x43\xca\xd6\x03\xa7\x6c\x71\x97\x41\x54\xcd\xda\x9a\x6c\x49\xdb\xc2\xa0\x1a\xe0\x9b\xcb\xc2\x48\x45\xc9\xc6\x68\x45\x49\xa1\x51\x06\x43\x2f\x17\x18\x73\xaf\x8f\x2e\xb1\xbf\xeb\xa3\xed\xd9\x5e\x07\x22\x02\xd8\x59\x1f\xe3\x3d\x35\x2d\x0d\xf6\x66\x3a\xf6\x21\x18\xbb\xfe\x6c\x45\xcf\x5d\xa6\x6b\xf7\x32\x9c\xef\x61\x7c\x33\xbe\xbd\xae\xfb\xae\xd8\xe8\x9c\x20\x54\x1e\xa3\x79\xc2\x73\x32\xf2\x9d\x16\xd3\x30\xfa\xc2\xf0\x13\x8a\x92\xa6\x90\x04\xe8\x61\x52\x09\x9c\xd2\x63\x0a\x51\x19\xd7\x62\xa7\xaa\x61\x3f\x32\x8d\xc1\xe3\x6a\x03\xa6\xc2\x00\x9e\x12\xd7\x3e\x52\xa9\xd1\xb5\x0c\x03\xb3\x51\x6a\xe8\x13\x70\x21\x20\xcd\x51\x48\x0b\x4e\x61\xa0\xde\x10\xb4\xc0\x50\x9a\xcc\x48\xb5\xa9\xb8\x2d\x03\x99\xad\x78\xd9\x1e\xf0\xe4\x34\x42\xae\xb5\x9c\xa7\x16\x64\xdb\x86\xe4\xe0\x72\x0c\x9a\xc0\xa0\x09\x0c\x9a\xc0\xa0\x09\x3c\x9c\x26\x00\x54\xef\x60\xea\x00\xb9\x80\x06\xa1\xb7\x2a\xf4\x22\xaf\xbd\x3f\xc9\x17\xfa\xef\x97\x60\xed\x9a\x6e\xc9\xb2\x86\x36\x62\xe0\x47\x4f\x9b\x1f\xdd\x35\xd9\xba\xb6\xcb\xad\xbd\xde\x8d\xbc\x0c\x39\xd7\x03\xd3\xbd\x23\x0c\xfb\xaf\x20\x0f\x7a\x0f\x86\x70\xb8\xaa\xcf\x1d\xbc\xbd\x1f\x53\x00\x2e\xbf\xca\xd4\x5a\xc6\x10\xbd\x5a\xc2\xa5\x97\xc5\x60\x9c\xe2\xb7\x53\xcc\x6d\xd4\xb7\x6e\x91\x57\xae\x88\xa2\x81\x88\x80\x6f\xab\x5a\x44\x5c\x80\xaa\x96\xc1\x6d\x45\x75\x0a\x35\x6e\x70\x1c\xa1\x4d\xa7\x8c\xda\xbf\x3e\x9a\x25\x7c\xad\x32\x7d\x7d\x44\x1a\x64\xe6\x75\xec\xf4\x57\x88\xda\x2f\xbf\x87\x99\x24\xe4\x1e\x1c\xb1\x8d\x2a\x80\x4c\x54\x12\x66\x2e\x78\xc6\x97\x02\x42\xdd\x6c\x88\x2e\xf4\xe3\x72\x8b\xc2\xa2\x5c\x34\xcc\x52\x65\x2d\x75\x46\x5e\xa6\x95\x8e\x5d\x46\x29\xc4\xb0\xa4\x0a\x13\x5a\xf2\x05\x4f\xd9\xcb\xaf\x5e\xf8\xf1\x75\x32\xa5\x02\x70\x54\xda\xe8\xfa\x88\x47\x4b\xe1\x65\x26\x8d\xcb\x8f\x5f\x1f\x55\x33\xc4\xe4\x72\x59\xe4\xbb\x94\xc2\x09\x62\xdf\xec\xcc\x1f\xd8\xf4\xe5\x2d\x39\xc5\xbd\xa4\x1f\xc1\xec\x45\x95\xb9\x4b\xb2\x4f\xf1\x88\x10\x23\x12\xc7\x92\x22\x0e\x83\x14\x12\xb7\x6b\xb5\x3d\xf2\x13\xe8\x64\xed\x30\xba\x98\x2b\xa2\x48\x4c\x7c\xca\x33\x88\x38\xa0\xb1\xdd\x9b\x29\x67\x80\xd6\x19\xa4\xbd\x07\x82\xd6\x69\x76\xee\x0f\x12\xde\x20\xe1\x0d\xa8\x3a\x8f\x26\x4d\xde\xb3\x20\x39\x40\xea\x0c\x90\x3a\x03\xa4\xce\x00\xa9\x33\x40\xea\x0c\x90\x3a\x03\xa4\xce\x2e\x39\x1b\xf7\xa4\xef\x55\xe2\x13\xba\x53\xdc\x83\xf6\x61\xac\x82\x17\x11\xd2\x18\xb6\xd0\xcd\xf1\xd2\xee\x24\x5e\x3f\x7d\xb7\x01\x77\x16\xee\xa7\x0d\xb4\x81\x0b\x09\xb0\x3e\xf6\x70\x83\xf5\xa4\x0c\x4f\xe1\xba\x29\x3c\x65\x0f\x6b\xc5\x1e\x80\xbc\x95\xfd\x08\x17\x16\x10\x7e\xb7\x9a\x29\xb6\xc3\xef\xb2\x33\x64\x50\xc8\xfc\x33\xfa\x03\xcb\x00\x4a\x5d\x26\x35\xa1\x7c\xd3\xb8\xb7\x7b\x58\x4a\x61\xfb\xba\x44\xdb\xdd\x8e\xe7\x23\xe2\x3c\x51\x40\x45\xfd\x6a\xec\xb3\xbd\x3b\x24\xf1\xbe\x0d\xbe\x6b\xcf\xba\x15\x32\x1b\xec\x94\x7d\x30\x9f\xce\x67\xec\x43\x61\x13\x11\x0c\x4f\xf1\xb8\x7e\xe5\x83\x0d\xc8\x4f\xe7\xb3\x6a\x23\x92\xa0\x00\x50\x08\x68\xb0\x19\x0a\x14\xac\x9f\xd5\xc6\xe3\x65\x0f\x9a\x01\xd9\x53\x0b\xc3\x71\x69\x58\xab\x0a\x7c\x8e\x6f\x32\x1b\xc0\xa0\x06\x30\xa8\x01\x0c\xea\x37\x06\x06\xd5\x6e\x3f\xe8\x69\x22\xdc\x37\x01\xd1\x5b\xf0\x01\x35\xea\xe9\xa2\x46\x35\x9e\x8f\x1d\x00\xa3\x0e\x96\x9f\x7a\x27\xf9\x66\x40\x96\x7a\x50\x64\xa9\xd6\x43\x33\x80\x4a\xfd\x66\x41\xa5\x0e\xc0\x27\xee\x1b\x82\xca\x6c\xa3\x07\x41\x05\x87\xae\x17\x0e\x95\x79\x71\xc0\xa1\x3a\x08\xb1\x08\x52\xf1\xb7\xd0\x8b\xa0\x9d\x47\x32\x6e\x8d\x04\x6e\xad\x98\x9e\x24\xe5\x00\x8c\x40\x15\x37\x62\xa7\x9a\xb1\x0b\xe5\x39\xe2\x06\x27\xfa\x13\x74\xa2\x0f\xbe\xe6\xcf\xc5\xd7\x3c\x84\xf0\x4f\x6a\x30\x23\x7d\x0a\x81\x45\x01\xb0\x93\x0d\xe6\x9f\x8a\x05\x5f\x4b\x95\x95\xca\x72\xd0\xf9\x2e\x42\xdc\xc3\x3b\xc1\x43\x1a\x7f\x0f\x6e\xf0\xe0\x03\xef\xfa\xb8\xc4\x5b\xde\x68\x43\xa2\x21\xfe\x61\xf9\x4b\x15\x68\x46\x15\xf0\xf3\x9e\x40\x33\xb6\x57\x4f\x58\x9c\xaa\x7c\x61\xbd\xa6\x00\xb8\x44\x36\x2d\xb3\x95\xe6\xc3\x53\x91\xf3\x71\x62\x4e\xba\x11\x29\x4e\x27\xbf\xef\x81\x8d\x64\x7a\xeb\x20\xad\xdf\x91\xd4\x1b\x0b\x9d\x5b\xf1\x01\x47\x61\x8e\x9d\x2a\xf2\xb9\x02\xea\x8a\x03\x9e\xb0\x77\x3c\x5a\x30\x23\x35\x86\x52\xaf\x04\x63\xd9\x14\x9c\xd5\x85\x86\x48\x3e\xc4\xa6\xe7\x09\x7b\xff\x81\xa4\x22\x3f\xa4\x51\x2c\x57\xf9\x86\xa9\x8c\x2d\xa5\x36\xed\x47\x9e\x37\xca\xfa\xa7\x00\x1d\x0c\xc6\x72\x6c\x17\x8c\x9c\xcd\x79\x26\x23\xaa\xdb\x6c\x1a\x3c\x6f\xf8\x00\xd1\x7b\x58\x4c\xa7\x20\x71\x1f\xb0\xdf\xcc\xc2\x79\xc7\xec\xb7\x29\x32\xb5\x94\x11\x93\x8d\x55\xd2\xdd\xa6\xd9\xe1\xf9\x9d\x81\x24\x49\x02\x7e\x12\x98\xc5\xd9\xe1\x74\xf3\xe0\x6c\x81\x67\xa3\xa7\x64\xde\x6c\x93\x51\xbb\x9f\x8d\xe6\x63\xe1\x6e\x02\xc2\x99\x59\x89\xd4\xa1\x21\x31\x0a\x82\xf3\x4f\x0c\x06\xf7\xb6\x1e\x19\x66\x8e\x34\xd9\x81\xf6\x3e\x3c\xc1\xc0\xb7\x9c\x21\xaf\xdd\xdd\x8e\xd2\x5d\x4f\x51\x79\xb1\x84\x91\xf9\x1e\xe8\x20\x09\x91\x3d\x1c\x38\xf8\x96\x81\xf4\x0b\x6d\x6a\x7b\x65\x4f\x42\x7e\x37\xc4\xb0\x6e\x42\x6e\xc4\xca\x1e\xd6\x0a\xd3\xac\xe7\x75\x74\x79\xcd\x60\x6d\x2f\x63\xd4\x01\x08\xc9\x28\xac\x51\x64\x1d\x76\x4f\xf1\x52\xda\xe1\x6f\xb9\x8f\xd8\xe4\xe9\x5c\x45\x50\x0d\x9e\xf2\x65\x1c\xed\xc7\xf4\xf1\x94\x56\xcf\xd1\x92\xc7\x82\x0e\x91\x84\xb2\x38\x69\xf7\x59\x1a\xc4\x82\x5f\xb7\x58\x70\x0f\xd4\xbc\x23\x01\xa2\xd6\x36\x44\x47\x0d\x8d\x3f\x38\x8a\x21\x1d\xe2\x69\x5b\x72\x76\x4a\x87\x28\xb7\xda\x2e\x74\x75\x8f\xef\xeb\x86\x0c\x99\x11\x83\xb5\xea\x8e\xb9\xaf\x43\x56\xc4\x9d\x0c\x42\xf7\x95\x1b\x51\x97\xa4\x7a\xf2\x1f\xd3\x36\xd4\x1f\x04\x46\x9e\x50\x3d\x3e\xab\x3b\xa8\x13\x10\xe7\xd9\x7b\xc3\xff\x23\x91\x61\x19\x05\x90\x70\xca\xa0\x1b\x90\x35\xc8\xab\x88\x4a\x46\x37\xdb\x92\xab\x2a\x70\x72\xaf\xe3\xdd\x02\xbf\xbc\xed\x44\x97\x00\xcc\xc8\xf4\x56\xc4\x61\xd3\x50\x6b\xa2\x66\x0d\x12\x14\x20\x2e\x19\xe9\x28\x15\x12\xf0\xcb\xc8\x6e\x89\x60\x66\x34\x79\x8c\x01\x6a\x89\x37\x73\x61\xa3\x56\x97\x3a\xe4\xad\xe6\x53\x91\xb8\x7e\xb7\x5e\x6d\x68\xa4\xd9\x0f\x76\x34\x9a\x44\x54\x0a\x57\x1b\xeb\x48\xad\x04\xc5\x88\xeb\x20\x25\x17\x23\xbb\x35\xd3\x8e\x3a\x40\x1c\xb9\x05\x73\x67\x5a\x2c\x79\x9a\xcb\x48\xff\xd1\x08\x89\x56\xe4\x9c\x16\x39\xca\xb7\x10\x2c\xa6\xe9\xf3\x46\x9a\x75\x0b\xa2\x21\xe2\xff\x1c\xdc\x56\x76\x12\xa8\xac\x6a\xe5\x42\x04\x51\x9a\xac\x9f\x5f\x08\x11\xbe\x5d\xa8\x44\xb8\xce\x4d\xc3\x0b\xa7\xd9\x9a\xc9\x05\x1d\x53\x4f\xe5\x02\x38\xf1\x7e\xba\x29\x1f\x97\x1a\xef\x7b\xb3\xc5\x50\x8e\xa1\x32\x01\xf8\xc6\xae\xdd\xb5\xe9\x2f\xf1\xa3\x1e\x8b\x12\x11\xae\xb2\xa9\xa4\x26\xd1\xac\xcd\x8c\xef\xf5\x4c\x18\x75\xcb\x9e\x86\xda\xda\x3d\xf5\x33\xd1\xeb\x1b\x48\x79\x9e\x69\xa6\x6e\xd3\xb2\xe7\xc3\x07\xa7\xd4\xd5\xa3\xbe\x5c\xc1\x28\x6f\x01\x57\x30\x0f\x6a\x5c\x41\xa5\xfd\x4c\xf1\x77\x3b\xce\x45\x2e\x93\x89\x4c\x73\x9d\x67\x93\xf3\x34\x7f\x9f\x5d\xa2\xb8\xb4\xfd\x2c\xdb\xf4\x2a\x5c\x71\x1b\x98\xaa\x72\x15\xa9\x84\x8e\xaf\x21\xd5\x44\xc9\xa7\x82\x71\x96\x16\x4b\x91\x81\x86\xae\x10\x26\x3b\x76\x7d\x98\x15\x88\x1b\x58\x82\x91\x2b\x09\xa4\x22\x26\x8d\xbd\xaa\xac\x23\x8d\x03\x05\x07\xa3\xe7\x75\xdb\xfd\xa7\xd1\x75\x85\x0b\x9a\xa9\x51\x53\x76\x7c\xf5\xe6\x62\xc4\x7e\x7c\x7b\x01\x11\x97\x97\x6f\xae\x2e\x9e\xdb\x72\x4c\x35\xfb\x1c\x0c\xbf\x12\xb7\xed\xcd\x26\xf6\x22\x72\xae\xde\x5c\x3c\x62\x64\x44\x47\xc4\x7e\xad\x6d\x09\x13\xe2\x25\x95\x95\xae\xc5\x8a\x41\xb3\xfb\xc8\x8a\x2a\x46\x7c\xd3\x28\xac\x25\x49\x50\xaa\x1b\x62\xc3\x2b\x38\x49\xab\x55\x22\x4b\x03\xab\x23\x23\x40\xd8\xd8\xfb\xaa\x0b\xc1\x33\xc9\xa2\x61\xc5\x88\x4f\x10\x62\x1f\x0c\x5c\x3a\x8a\xe4\xb2\x57\x55\xcc\x8e\xc1\x9c\x43\x61\xe6\x56\xa2\x71\x84\xc9\x1a\x6f\x4a\x63\xcd\xf3\x11\x7b\xff\xa1\x97\x01\xc7\x9b\x18\xe3\x51\xa6\x34\x1e\x69\x92\x79\x1a\xad\x14\x86\xde\x42\x06\x64\x49\xf1\x96\x5e\x99\xa7\xe6\x2b\x84\x86\xaf\xd2\xea\x14\xf6\x0c\xe9\x96\xf4\xe5\xea\xc2\x1d\x5b\x68\x57\xb3\x32\x2a\x11\x58\x9e\x47\xa4\x1a\xa3\x93\x79\x5e\x5a\xef\x7c\x16\x63\xf4\x17\xad\x28\xa9\x77\x63\xcf\xfd\xf3\x2a\xf4\x48\xbb\xdb\x91\xdd\x93\x7a\xfe\xee\x30\x75\x6a\x65\xad\xc6\xc1\xb6\xf3\x6b\xc3\x6b\xfb\x1f\xe0\xab\xfa\xb9\x05\x70\x13\x73\x1c\x1f\xe9\x00\x97\x38\xc0\xd4\xed\x33\xcd\x12\x65\x28\x79\xaa\x62\xd1\xfb\xc8\xfb\x6b\xf1\x88\x67\xde\x41\xb7\x20\xb7\xe5\xe9\xe6\x9e\x8e\xfc\xbd\x9f\xe8\x43\x95\x5e\x7e\x6c\xd1\xf8\xd2\x93\xee\x60\x71\xbd\xaa\x87\xb5\xed\x23\x53\x16\x5e\x22\x4d\x29\x3f\x66\x6e\xf5\xeb\x66\xae\x50\x79\xd7\xcc\x46\x87\xbe\x06\x00\x7e\x2a\x93\x45\xbe\xb7\x71\xfd\x36\x06\x70\x65\xef\x95\x11\x65\xf0\xad\x32\x52\x9f\xdc\x7f\x78\x69\xcf\xe9\xa4\x45\xdc\xa6\xde\x86\x23\x99\xa9\x8c\x41\xd9\x92\xc0\x11\x86\xa0\x44\x6b\x91\x6c\xaa\xd4\xf1\x87\xf7\x57\x65\xac\x28\x78\xfb\xfa\x6a\x01\x90\x5f\x83\x17\xa0\xe9\xd2\x58\x0d\xc0\xb9\x53\xd2\x26\xf9\x38\x38\x1b\x66\xd5\xaf\x36\xab\xce\xbc\x16\x4b\xf2\xe0\x7a\x83\x51\xae\xbc\x32\xe1\x16\x22\xe6\x03\x5a\x0f\xb1\x0a\x0f\xce\xd5\x16\xe1\xa1\x73\x7d\x7d\x34\x62\xd7\x47\xef\xdc\xbf\x21\x79\xdc\xc6\x20\xdb\xc7\x2d\x52\xa3\x27\x84\xc9\x1c\xb3\x2e\xca\x24\x18\x2f\x47\x1e\x52\x0d\x31\x97\x6a\x56\x66\x82\x64\xec\x9d\xb7\x7b\x7f\x2c\x0f\x02\x4c\xc8\x96\xb9\xe4\xa9\x6d\xa6\x09\x60\x09\x4c\x33\x5a\x17\x4b\x3a\x71\xb3\x99\x39\x32\xef\x28\x6a\x1a\xb2\xad\x60\xfd\xa9\xb7\xe3\xdb\x85\x40\x4b\x47\x06\x83\x86\x0c\x11\xaf\x77\x3b\x1e\xea\xfe\x79\x4b\xff\x7e\x96\xd0\x46\x15\xec\x96\x53\xe1\xd0\x4c\xe6\x02\x0a\x1e\x22\x12\x18\x38\x97\x70\x3f\x09\xcf\x0c\xb3\x6f\x1d\x20\x82\x4d\x5d\xf1\xf6\x9c\xfd\xec\x6d\x01\xfb\x65\xc2\xbe\x93\x1f\xc5\x2d\x24\x98\xcb\xc6\xaf\x59\x26\x83\x59\x90\xb4\x0b\xb4\x70\xa9\xb2\x62\x4f\xc9\xdc\xbc\x91\xd8\xcf\xf3\x60\x00\x68\xe4\x46\xef\x3a\xc6\xce\xfb\x23\x3a\xd6\xd2\x6c\x9e\x2e\xcc\xdd\xb2\xdf\xbe\x75\x25\xa0\xec\x1b\x0d\x5b\x95\xc6\xd4\xae\x64\x87\xf6\x84\xe4\x8a\xfd\xbb\x19\xd0\xcf\xfe\x59\x64\xbf\x1c\x48\x86\x79\xa0\xb2\x4e\x3e\x51\xef\x32\xdb\xf6\xd3\x22\x1a\x12\xa0\xdb\xd5\x88\x7a\x63\x2b\x3f\xd8\xdc\x6f\xd0\xde\xa6\x02\x41\x33\x6c\x7e\xf4\xe1\x53\xd0\xfd\xf0\x7d\x5f\x67\xbd\x2c\xf3\xd1\xfb\x43\xf5\xff\x00\x2a\xe6\xf5\xd1\x1e\xa9\x81\xa8\x9d\x76\x0d\xdc\x25\x80\xc3\xd0\x9d\xc6\xec\x67\x87\x23\x96\xc4\xef\x5f\x3c\xbf\xdb\x4c\xf8\x52\xd4\xe6\x81\x39\x92\x66\x20\x32\xcd\x5f\xbd\x6c\x9e\xa4\x4c\x73\x31\xf7\x83\x09\x0e\xa3\xa4\x62\x15\xf9\xdf\x7a\x2d\xe9\xa0\x96\xfe\x50\x50\x7a\x28\x28\xdd\xba\xc2\x43\x41\xe9\xa1\xa0\xf4\x50\x50\xfa\x91\x0a\x4a\x07\x09\x96\xcd\xcb\xf1\x94\x8b\x4e\xd7\x78\xed\x50\x79\x7a\xa8\x3c\xbd\xb7\xb4\xb2\x67\xf9\xe9\xdd\x35\x9a\xc3\x15\x94\x0e\xc4\xac\xa1\x5c\xed\x50\xae\xf6\x57\x19\x17\x39\xc4\x0c\x7e\x2e\x31\x83\x43\x86\x6b\x40\x91\x87\x9a\xb5\x1d\xeb\x33\x14\xae\x7d\xb4\xc2\xb5\xb0\x11\xfb\x46\x92\x36\x9a\x77\x86\x12\xb6\x0f\x5c\xc2\x96\xd6\xa8\x5a\xbf\x76\x4b\xf9\xda\xad\x75\x68\xfb\xa0\xca\x78\x8e\x90\xd0\x24\xdd\x00\x0d\xba\x3b\x47\xf2\x26\xf0\xf0\xc1\x60\xe1\xdc\x56\xdb\x61\x4f\xef\xc7\x6a\x3c\x54\xb9\x1d\xaa\xdc\x0e\x0a\xc4\xa0\x40\x0c\x0a\xc4\xa0\x40\x0c\xa5\x6e\x9f\x4e\xa9\xdb\xc3\xc9\xca\x43\xd1\xdb\xdf\x20\x7b\x7a\xc2\x45\x6f\x1b\xe4\xce\x9d\xcd\xde\x03\x23\xfe\x0c\x19\xf1\x50\xf9\xb6\x89\x14\x3f\x1c\x8f\x18\x6a\xe0\x0e\x35\x70\x87\x1a\xb8\x9f\x69\x0d\xdc\xe0\xba\x0f\x85\x70\x07\x09\xb0\x4b\x02\xbc\x77\xd1\x6f\x90\xfa\x06\xa9\x6f\xa8\x86\xfb\x64\xab\xe1\x1e\x4e\xb8\x1c\xea\xe2\x0e\x75\x71\x87\xba\xb8\x43\x5d\xdc\xa1\x2e\xee\x50\x17\x77\xa8\x8b\xbb\x73\x58\xf9\x7d\x2a\x82\x8f\x59\x82\xf4\x71\x92\xbe\xce\xaa\x15\xfd\x58\xc4\x57\x10\x00\xac\x66\x24\x29\x04\x34\x77\x4b\xd9\xd1\x33\x1f\xa1\x41\xcd\xd8\x33\xea\x11\x03\xd6\x41\x76\x79\xd6\x54\x70\x34\x34\xa2\xd4\xeb\x1a\xe5\x5b\xea\x4a\xa9\xcc\x8e\xdf\x8c\x12\x70\x7b\x21\xd7\xc2\xe5\xff\xce\x13\x35\xe5\x2e\x63\x7b\xa8\x2e\x3a\x54\x17\x1d\xaa\x8b\xfe\xa6\xab\x8b\xd6\x55\xb1\xbb\xd8\x5d\x86\xa2\xa1\xbf\x92\xa2\xa1\xc1\xb6\xef\x50\x39\xf4\x5e\xa5\x8d\xa1\x20\xe8\xe3\x15\x04\xad\x1d\x88\xa1\x2a\xe8\x6f\xb6\x2a\x68\x23\x69\x1f\xea\x7c\x7e\x96\x75\x3e\x55\x2c\xdc\xed\x7f\xbf\x16\x99\x19\xca\x96\xbb\x6f\x9b\x30\x9d\x67\x05\x18\xc5\x6b\x46\x59\x2b\x16\x2a\xdb\xb4\x7a\xfb\xb3\x22\x45\xaf\x29\x80\xcc\xf5\x41\x62\x8d\xbf\x91\x9f\x44\x4d\x15\x2c\xbd\xae\x17\xcd\x6f\xb2\xbd\x7c\x0f\x13\xa7\x44\xfc\x7f\x05\x4f\x73\x99\x6f\x29\x3f\x50\x75\x1e\xd3\x48\xab\x6b\x32\xa3\x87\x7b\xae\x4c\xeb\x86\x1e\x6e\xeb\x3f\x14\x69\x2e\x97\xa2\x2b\xce\xdf\x6f\xe6\x14\x33\x5e\xc6\x72\x10\x1b\x33\xba\x1d\xb6\xb4\x82\x4c\x49\x35\x49\xf9\x43\xc2\x1b\xf4\x27\x4b\x71\xda\xa1\x6f\x78\x5a\x5f\xd8\xaf\xd7\x38\x2b\x52\x10\xa2\x5d\x23\x8d\x57\x1b\x20\x0c\xfd\x2f\x08\x64\x11\xc7\x91\x15\x38\x9f\xb3\x25\x4f\x11\xce\x27\x48\x1c\x06\x93\x85\xca\x4a\x78\xc7\x4c\xad\x25\xb8\x9a\x33\xf4\xfb\x7a\xd9\x0b\x34\xad\x0b\x15\x97\x89\x0b\x7f\x2d\xa6\x22\x11\x40\x05\x30\x29\x1e\xcb\xf2\xc0\xbd\x16\x5a\x25\xce\xda\xe4\x8f\x0e\x28\xa6\xeb\xd8\x1a\x6c\xed\x91\xc8\x2d\x26\x63\xa9\x1b\xc5\x22\xe7\x32\xd1\x23\xa6\x85\x68\xf2\x6d\x89\x74\x61\x58\x8c\xd1\x8b\xf4\xc9\x47\xb1\xd2\xe0\xd0\x32\xdb\x7e\x42\xab\x88\xa9\x13\x93\x65\x0f\xb8\xfb\xc1\x57\xff\x78\xbe\x7a\x8c\x47\xea\x8a\x78\xfa\x0b\xb6\x0a\xa0\xe1\x04\xfa\xc2\x92\x0d\x18\xad\xe8\xea\x50\x21\x25\x2f\x4c\xc5\xa1\x09\xbe\xf9\x70\x5e\x5a\x54\xf0\x37\x50\x91\x0a\x0d\x75\xca\x28\x30\x0a\x60\x0e\xed\xfe\xb9\x00\x29\xf3\x9c\xea\x4f\x91\x3c\x65\x2e\x9b\x45\x35\x76\xe1\x57\x2a\x16\xec\xba\x78\xf1\xe2\xe5\xd7\xf0\xb5\x8a\x2e\xc8\xce\xd1\xe8\x6b\xa1\xf8\x08\x04\x80\xbe\x9c\x91\x8c\xb7\xe6\x32\xe1\x54\xe8\x0a\x01\x63\x10\x2e\xd5\xcc\xcc\xb5\xb4\x02\x87\xb9\x56\x28\x06\x64\x82\x89\xbf\x15\x72\xcd\x13\x00\x83\xf1\xdf\xad\xc4\x63\x71\xdb\x0d\x8b\x38\x44\x71\x5d\x1f\x65\x45\x1a\x5d\x1f\xb1\xa5\x9c\x2f\x4a\xad\xd2\x2d\x9c\xf9\x95\xbd\x7f\x73\xee\x16\xf9\x18\x2b\x13\x18\xb6\xbf\x16\xec\x3b\x99\x16\x9f\x3c\x02\xf5\xbc\x86\x84\x61\x88\x98\x8d\x02\xaa\x11\x31\xb3\xb8\x76\x7b\x41\x2e\x35\xab\xa6\xb2\xa5\x5d\xd4\xb7\x3f\x5c\xb2\xef\xd0\x41\xf1\xe1\x9b\x37\xec\xf4\xf4\xe5\xab\xe7\x36\x76\x08\xae\x3f\x2e\xcd\x1d\x63\xb2\x86\xa0\x8a\xcf\x25\xa8\xa2\x67\x4e\xcb\xa3\xe6\xad\xa8\xba\x30\xda\x6b\xda\x2d\x22\xed\xb6\x79\x3a\xa1\xf6\x6e\xa2\x6c\x90\x2d\xec\x73\xf6\xc9\x41\x78\xf6\xcb\x17\xa7\x7f\x78\xf1\xf2\xe5\xd7\xe3\x95\x8a\xc7\x76\x44\x93\x65\x5c\x71\x18\xf0\x64\xb5\xb0\xd8\x99\x1c\xa8\xa0\x97\xea\xbb\x3e\x9d\x9c\x7e\xe5\x88\x01\x98\xd8\x16\x2a\x55\x19\x15\x71\xa4\xfb\x06\x54\x4d\xa4\x58\x9d\x12\x65\x1b\xb7\x44\x33\xc1\xc1\xff\xdc\xa2\x24\x46\x0b\x11\x17\x46\x83\xbd\xdb\xb6\x5d\x96\xfd\x6c\x8d\xfb\x71\xcd\xd8\x42\x25\x31\xa1\x60\x96\x0f\x23\x95\xea\x3c\xe3\x90\xca\x5d\x81\x9b\x06\x1e\x66\xb7\x8f\x34\x3e\xa9\x43\x81\x14\xf8\x17\xf6\x86\x44\xda\x8c\x91\x96\xc7\xc2\x57\x49\xcc\x87\xf6\x3e\x2a\x35\x4b\x65\x32\x6a\xe8\xcf\x67\x6c\x80\x57\x5e\x0a\xc7\x46\xec\x4c\x10\xf5\x7b\x7b\x70\x67\x73\x2c\x91\x95\x10\x1e\x32\x9a\xc8\xec\xd7\xb6\x38\xa2\x40\xa5\x38\x60\x20\x51\x9b\xda\xd2\x11\xb5\x5a\x6d\x1a\x02\x6c\x05\xfb\x34\xd4\x2e\xfc\x35\x48\xc5\x4f\xaa\x76\x61\xab\x2e\x7d\x17\x93\xdb\x20\x70\x7d\x2e\x02\xd7\x50\xb9\xf0\xe1\x79\xce\xa1\x03\x58\x5b\xe4\x93\x2d\x40\xdd\xa5\x4c\x10\xea\xe4\x2d\x12\xca\x0c\xbc\xc3\x46\xc2\x20\xb9\x00\x25\xcb\x40\x92\xec\x01\xe2\xad\xe2\xd6\x2a\x7d\xfd\x2c\xa6\x7d\x9d\x06\x95\xe9\xfa\x1f\x86\x23\xac\x2d\x42\x2c\xa2\x27\x52\x30\x84\xad\xa3\xa6\xd2\x26\x71\xaa\x26\x34\x4d\xb0\x2a\x19\x6a\xd3\x75\x91\xca\xc5\x82\x4e\x2b\xa2\x1a\x47\x4b\x83\x57\x1f\x1e\x5e\xd6\x41\x2d\xf8\xa0\xab\x60\xfc\x52\xb3\xa5\xc8\xe6\x65\x3c\x20\xd6\x66\x81\xe0\x25\xd0\xeb\xbd\xc6\x13\x76\x96\x6e\x02\xff\x41\x92\x30\x8c\x1d\x25\xab\x1d\x89\x7b\xc8\x67\xd1\x66\xc8\x63\xa8\x97\xdd\x1a\xad\x50\x33\xf3\xfa\x5e\x76\x95\x50\x51\xf7\x2e\xfe\xe7\xb5\x44\xcb\xc9\x6a\x25\xd2\x58\xc4\xec\x18\xe0\xcb\xc1\xa9\x1d\x17\xab\x04\x7c\x61\xfa\xb9\x19\x67\x1f\xc1\x38\x2e\x32\x4c\x7b\xa2\x39\x8c\x98\x80\x82\x09\x50\x71\x83\x15\xa9\x54\xce\x66\x49\xc5\x3c\x68\xab\x71\x38\x65\x56\x9c\x59\x1b\x23\x85\x54\x6d\xa1\x07\x62\xcb\x2e\x15\xcc\x2d\x43\x5f\x7e\x1c\xfc\x14\x10\x2e\x73\xb2\xc7\xae\x71\xae\x96\x32\x3a\x80\x31\x1e\xeb\x2b\x38\xfa\x72\x86\x51\xc6\x6f\x2e\xcf\xdf\x66\x72\xbd\xb5\x2a\x6a\xb5\xa9\xaf\xc4\xba\xa8\x09\x99\x26\x32\x15\xec\xcd\xe5\x39\xa3\x56\x88\x91\x1c\x54\x42\x22\x6b\xd4\xe1\x0b\x05\x64\x62\x2e\x75\x0e\xb8\x3a\xbe\x2b\xd0\x8c\x26\xc6\xe9\xed\xe9\xe4\x6a\x66\x4b\x30\xba\x2e\xae\xb4\xdb\x46\x7c\x93\x88\x4f\x3f\xa9\xa4\x58\x6e\xcb\x54\xa8\xb5\x6d\xdc\x0a\xf3\xf3\x1a\x7f\xbe\xd3\x1e\xc4\xd5\x83\xd1\x34\x24\x6c\xd4\xe4\x87\xf5\x86\x81\x8d\x0e\x8c\xaa\x4c\xc3\x3b\xec\x36\xfc\x45\xe9\xbc\xa3\x78\x41\xa5\x65\xa0\x6d\x81\x67\x96\x26\x1d\xa9\x14\x79\x21\x31\x20\x6b\x8f\x45\xb3\x07\xf9\x81\xa8\xea\x09\x20\x94\x53\xf5\xa4\xc2\x48\xaf\xe7\x2e\x33\x53\xbb\xb4\x13\x0b\x4f\x8e\x9b\x48\xee\xa4\x9e\xa0\xc4\x08\xa4\xdd\xb1\x97\x65\x43\x57\x2f\xcc\xff\xac\xb5\x44\xfb\x93\x0c\x6a\x28\x7a\xe8\xe3\x96\xdb\xde\xfc\xee\x06\xca\xa2\x49\x14\x52\x12\x0e\x41\xba\x86\x51\xe4\x99\x5c\x2e\x45\x8c\x21\x8e\x6b\x9e\xc8\x98\xe7\x41\x49\x07\xfa\x2c\x71\x47\xf8\x28\x20\xb0\x5f\xa7\xd7\xe9\x3b\x34\xa3\xeb\xd7\xec\xe6\x64\xa6\xd4\x0d\x95\x83\x41\x77\x3d\x3e\x1a\xe1\xff\x9f\xdc\x00\xf9\xbf\xb1\x40\xe8\x37\xe1\x1b\x65\x2d\x31\x78\x1c\xdf\x30\x95\xb1\x9b\x13\x91\x47\xd0\x6a\x8f\x38\x3f\xc1\xe3\xf7\x69\xb2\xe9\x58\x6a\x98\x75\x80\xe0\x05\xc7\x03\x87\xe2\x2d\x70\x43\xad\x0b\x8b\x89\x6e\x64\x12\x39\x03\xa3\x8e\xdd\x0c\x55\xa4\xb9\xc5\x41\xc7\x61\xb4\xdc\xb9\xa9\x52\x89\xe0\xe9\xe1\xd9\xca\xbb\xb5\x8c\xf2\xd0\x58\x51\x9d\xba\x6d\xc2\xc4\x1a\x84\x19\xb2\x6c\x42\x49\x86\x1c\x85\x24\xa3\xf2\x81\xea\x98\x2b\x57\x51\xdb\x55\x5e\x02\xd4\x3f\x3e\x13\xf9\xc6\x97\x6d\xfd\x0a\x2a\xba\x98\x96\x86\x55\xa8\x9b\x3c\x61\x5e\x71\x00\xd3\x29\xc8\x4e\x58\x79\x88\x06\x42\x91\xb5\x51\x26\xac\xf8\x70\xf1\xfe\xf2\x8a\x62\xf2\x26\x93\xc9\x89\xb9\x9f\x16\xd9\x5c\x21\x9f\x21\xb8\x73\xfb\xfe\x60\xcf\x79\xda\xf6\x9c\x58\x24\x22\x17\xef\x57\x8d\x72\xed\x1d\x74\xef\xb7\x41\xbf\xdb\x34\x98\xa0\xa5\x0d\x6b\xb6\x55\x72\x07\x13\xcd\xe7\x6d\xa2\xe9\xe9\x13\x2b\x9b\x55\x82\x1f\x41\xcd\x23\x81\x0e\x6b\x6f\x01\xe1\x09\x21\x4e\xbb\xe8\xf8\x01\x6d\x25\xab\xb0\x68\xb0\x7f\x5a\x1d\x91\x3f\xa0\x79\xa4\xc2\x69\xbe\xb9\xfc\xd6\x0c\xe4\x32\x37\xea\xde\x7c\x53\xbf\xd5\xd5\x75\x6d\x7e\x21\x20\xae\x9a\x7e\x83\x4a\x21\x40\xec\x6c\x71\x43\x17\x85\x0f\xec\x21\x68\xdc\x07\xa5\x97\xa7\xf3\xce\xe8\x7f\x6c\x84\xb2\xd1\x42\x38\x91\x9d\x1e\xab\x19\x9b\x69\x06\x6b\xaf\x27\xcc\x95\x0b\x04\x72\x9e\xc8\x8f\x10\x3c\x31\x53\xe6\x5e\x3b\x3d\xc0\xb6\xc7\xa4\x36\x23\x91\xf9\x09\x7f\xd0\x6f\x19\x89\x88\x75\x31\x73\x9e\xe5\x30\x6f\x28\x6a\xf0\xc1\x16\x53\x31\xe2\xe9\xf7\x85\xce\x3f\x14\xe9\xd9\xa1\x34\xe7\xca\x76\x9e\xbf\xfd\x60\x06\x74\x27\x6b\x76\x16\xe6\x79\x37\x2e\x32\x64\xf0\x55\x77\xdb\x89\xe7\xb1\x8c\x20\xbc\xfb\xd6\x3c\xa1\x03\xe3\x02\xc1\x6c\xe2\x2f\xc5\x1c\xbf\x51\x69\x2e\x3e\xe5\xf7\x1d\x3f\x59\x59\x27\x50\x3b\x54\x96\xe3\x6a\x6d\xa9\xf8\xe2\xb7\xf3\x02\xe9\x70\xdb\x6d\x8a\x09\x66\x00\xec\xae\x9e\x04\xfa\xc9\x54\xd9\x33\xe4\x1f\x9f\x9d\xd5\x94\x25\xef\xd2\x4f\x96\xdc\x29\x26\xe6\x03\x16\xa9\xd8\xcc\x68\x84\x61\xd8\x5a\xae\xab\x71\x27\x7b\xd6\xc5\xf3\x59\x81\xec\x92\xd5\x96\x32\x2d\x0f\x95\x97\x99\x7e\x3f\x43\xeb\xa9\x1f\x9b\x61\x8f\xc2\xe5\x3d\x90\xae\x6c\xef\xea\x96\x00\x7e\x6c\x51\x22\x74\x71\xb6\x94\xe9\x89\xd9\x40\x14\x4c\x03\xea\x06\xa0\x2f\x6f\xfb\x48\xcf\x0f\x71\x46\xbe\xfe\xf2\xc9\x9e\x91\xfe\x43\x7b\xf4\x33\x72\xa1\xe2\xb7\x52\x67\x05\xcc\xff\xcf\x45\x3c\x17\xdb\x5c\xe7\x0d\xad\x09\x5a\x5e\x39\x45\x10\x29\x09\xe1\x5b\x7c\x62\xb1\x6b\x4f\x95\x7d\xa9\xec\x0e\xb7\xac\xba\x8a\x1a\x65\x08\xd8\xa0\x9f\x3d\x65\xfd\x6c\x50\x75\x3e\x43\x55\xa7\xf1\x93\x7b\x41\x46\x77\x53\x98\x5e\xa8\xd1\x98\x97\xe5\x15\x39\xb4\xf0\xd1\x53\xb1\xe0\x6b\xa9\x32\x57\xfc\xb0\xfe\x81\xb6\xa0\xb4\xfd\x8a\xc4\xf4\x98\x50\x77\x92\xdf\xf7\x90\x2a\x2c\x22\xcc\x6f\x55\x53\x08\xb1\x8b\x2b\x99\x7d\x1d\x53\x79\x22\x4a\x63\x13\xcf\xb8\x37\xfd\xb1\xe1\x63\x1d\xf1\x5d\x2d\x6f\x34\x21\x14\x36\x34\x1d\x8c\x83\x4f\x9b\xf9\x34\x06\x7b\x1d\x48\xb9\x6d\x3a\xd8\x77\x51\x74\x07\x46\xf9\xb9\x30\x4a\x17\xb6\xb5\xb3\xe8\xfe\xe0\xa1\x51\x3b\x52\xee\x03\x07\x47\xf5\x64\xfe\x3b\x51\x6f\x5b\x43\xc2\x1a\x5a\x57\x8e\x38\x36\x33\xcc\x3e\xea\xe9\x8f\xa9\xcb\x1d\x7a\xf8\x72\x4e\x67\xa1\x2f\xcb\x2a\xd9\x72\xc6\x78\xce\x96\x46\x50\xb8\xae\x8c\xf1\xfa\x08\x0d\x3b\x18\xb5\x84\x66\x9f\xeb\x23\x1b\xc3\x74\x7d\x04\xe6\xc8\xa2\x6c\xef\x95\xcd\xb5\x5f\x1a\x31\x39\x11\x13\x26\xd6\x22\x85\xb0\xa3\xa9\x46\x04\x9a\x59\xd9\x4a\xc4\x98\x65\x14\x64\x40\xa9\x14\x81\xf6\x56\x99\x79\x35\x77\x8e\xcc\x34\xe7\xd9\xc6\xf5\xae\x21\x6d\x00\x93\xa1\x0c\xcd\x7a\xe1\x3b\xfa\x96\x45\x8e\xb9\x95\x10\x6b\xa4\xb1\xc6\x2a\x66\xc2\x83\x61\xf3\xda\x28\xb8\x67\xe5\x5c\x5b\xc4\x37\xbf\xd1\x13\xdb\x34\xc4\x77\xaa\xce\xa3\x63\xcf\xc0\x94\xa7\x73\x5b\xe2\xa9\xff\xde\x81\xdd\x79\xcb\xfe\xb1\x4b\x30\x32\xdb\x3d\x04\x13\xf4\xee\x5b\x78\x7d\x74\xfa\xe2\xc5\xff\xd3\xba\x1b\xba\x25\xb4\xf0\x2e\x54\x96\x4f\x45\xe2\x42\x16\xb7\x6d\x06\xe6\xb8\xfd\xad\x10\xd9\x06\x31\x94\x60\xa5\x6f\x17\x4a\x0b\x6f\x3e\x88\x83\x98\xf2\x79\x19\x67\xe6\x99\x23\xa6\x3b\xcb\xd7\x77\x20\x7a\x5d\x88\x26\xad\xef\xf8\xa1\x43\xcd\xf8\xf9\xa5\x0a\xd1\x4c\x0f\x19\x75\x64\x84\x82\x3c\xe3\x32\xc1\xf3\x13\x41\x25\x62\x07\x93\xc2\x99\xde\xe8\x5c\x2c\xfb\x40\xef\x63\xd6\xf4\x5f\x04\x4f\xf2\x45\x57\x04\x85\x85\x30\x49\x8b\xe5\x54\x80\xce\xb6\xc0\xf7\x42\x43\x0f\x3b\x8c\x0d\x98\x74\xc4\x7e\x43\x5b\xca\x54\x2e\x8b\xa5\x53\x2c\x1f\x68\x88\xb8\x3f\x22\xbe\x30\x9d\x3f\x0c\x92\x41\x79\xc5\xae\xe4\x72\x8b\xf3\xa6\xea\x06\xf7\x87\x5a\x22\xd3\xd4\x8f\x61\xc3\xed\x63\xb7\x5c\xb3\x55\xa6\x22\xa1\x75\x79\xfd\x00\x71\x0c\x84\xd4\xb2\xa1\x1f\x06\x62\x93\x6d\xa7\x45\x0e\xc5\xf4\x8c\x10\xba\x11\x46\x10\x15\x69\xa9\x34\x53\x67\x4d\xd6\x48\x1f\x5f\xff\x0c\x5c\xb1\xd6\x61\x62\x31\x5d\x96\x7c\x55\x0a\xc4\x90\xa1\x7b\x6b\xc1\x24\xbd\xd1\x95\x23\xf7\xe9\xb0\x1f\x9b\x52\x7f\xdd\x7c\x0d\x22\x8b\x45\x0a\x71\x29\x6f\xff\xec\x63\xba\x70\xcd\x16\x1c\xf2\xfd\x61\x32\x04\x92\x06\x25\x24\x44\x22\xa0\xf7\x63\x95\x11\xf1\xe7\xd0\xb5\x2a\x72\x02\x15\xfd\x28\x36\x96\xf0\x9b\xf1\x37\x84\xf1\xf9\x01\xb4\xa8\x43\x50\xa3\x3d\xa7\xe8\x50\x52\xdc\xe8\x62\x19\xa7\xcf\x72\xa6\xa2\xa8\xc8\x10\x78\xce\xcd\x18\x78\x58\xbe\x10\x46\x27\x28\x5d\x54\x00\xa7\x29\xe2\x72\xb5\x21\x9d\x81\x17\xb9\x32\x87\x27\x02\x89\xc0\xac\xd3\xd6\x6d\xa4\x05\xd1\x6a\x89\x53\x81\x71\x41\xba\x76\x0e\xe1\x56\x73\x25\x34\xd3\x4b\xa5\x6c\x7c\xb2\x59\x9f\xb2\xf0\x85\x58\xae\xf2\x8d\xc3\xdb\x01\xd9\x8a\x16\x0c\x3b\xfb\x8e\x67\x73\xe1\xdd\x7c\x61\xd4\x15\x8b\x00\x84\x8b\x8d\xca\x14\x15\x8e\x5c\x65\x6a\x9a\x88\x25\x61\xc3\x98\xf9\xdb\xf5\xa9\x3a\x5c\xfb\xc4\x6f\x97\xdc\x48\x53\xb8\x62\x57\x30\xad\x1b\x28\x7c\xba\x7c\xdd\xab\x38\x52\x42\x26\x13\x42\xf1\xa1\x29\x98\xf8\x84\xc0\xc8\x4d\x04\xac\x16\x76\x9e\xf3\xc4\x5b\xde\x15\x12\x92\x22\xcd\xbd\x50\xfc\x1a\x4f\x3e\xf4\x80\x2d\xe1\xf8\x56\xa4\x36\xfa\x7b\xfb\xb0\x3d\x63\x1d\x9b\xbb\x97\x4a\x02\x04\xd7\x09\x34\x63\x97\x8c\x60\x6e\x3b\x72\xe2\x09\x7b\x5b\xdb\x56\x0c\x52\x80\x7a\xbb\xc4\xae\x7d\x22\x2a\x35\x46\x56\xba\x60\xc1\xfa\x80\x11\xb0\x16\x4c\x3b\x17\x6f\xff\xfc\xcc\x69\xff\xe5\xe8\x1e\xd4\x21\xd5\x70\x70\x47\xad\x02\x42\x3b\x7f\x6e\x3b\x54\x87\x73\x6e\xd9\x28\x80\x0b\xd4\x8a\xb7\x0a\x60\x61\x5b\x36\x37\x82\x25\x01\xb1\x71\x44\xfa\x34\xcb\xbf\xe4\x1f\x45\x05\xf6\x95\x43\xce\x43\x10\x75\xc0\x28\xec\x20\x74\xda\xf3\xd5\x2a\x91\xd6\xed\x65\x29\xb6\x03\x7a\x18\x2c\x8f\x4f\xda\xf2\x38\x58\xf3\x3e\x17\x6b\xde\x6f\xb2\x92\x6b\x17\x6d\xec\x74\xca\x69\x44\xf7\x2e\x89\x09\x45\x1d\x89\x14\x02\xda\x9e\x62\x78\x63\x9d\x01\xdc\xa7\xa5\x33\xfc\x54\xb7\x97\xaa\xde\x3e\x4c\x50\xaf\xb3\xa4\x01\x8f\xe0\xd7\xc0\x28\xfa\xe0\x11\xc8\x07\xc2\x23\xe8\x94\x88\x06\xff\xd6\xc0\x11\x07\x58\x02\xf6\x08\xbc\xe8\xde\x3d\x6f\x0d\xfc\x7d\x07\x7e\x74\xd9\xc9\xee\xbb\x99\x90\x51\x0d\x2f\x32\xb9\x96\x89\x98\x8b\x77\x3a\xe2\x49\x1f\xed\xbb\xed\xb5\x12\x0c\x54\x83\xdb\x05\x34\xa8\x88\x07\x56\x39\xcc\xcc\x5b\xd9\x97\x99\x70\x6f\xd7\x31\xf8\x63\x1f\xab\x39\x2b\xda\x90\xf0\xea\x49\x78\xa3\xca\x14\xbd\xa4\xeb\xce\xda\x01\xd5\xf6\x14\x3f\x09\xfd\x58\x4e\xe0\x25\x69\xc7\xd4\x2a\x40\x4e\x10\x9f\x5c\x21\x29\xca\x4d\x04\x4b\xd7\x54\xc4\x31\xe1\x14\x58\xc4\x40\xf0\xe7\x40\xc5\x06\x34\x84\x91\x65\x90\xac\x59\x56\x7d\x4d\x37\xde\xb7\x82\x2a\x0d\x33\x95\xd9\xd1\x88\xd5\x42\x2c\x45\xc6\x6d\x1a\x63\x90\xca\x67\xce\x1c\x22\x8f\x35\x63\x8a\x11\xec\xbd\x6f\xfe\x85\xf8\x75\x6d\xf3\xbf\xcf\xe1\x23\x94\x2d\x4d\xd0\x62\x6c\xce\xf3\xea\xa6\x1c\x88\x0f\xd6\xd2\xea\xef\xc2\x06\xed\x19\xe0\x2b\x34\x13\xd4\x6d\xf6\x8d\x27\x3c\x7c\x23\x94\x05\x22\xff\x17\x3f\x6e\x96\x8e\x3a\xd9\x10\x62\x57\x66\xae\x34\x22\xb0\xb0\xd7\xd4\x2b\xa7\x61\x33\xd9\x38\x9c\x13\x4a\x13\x06\x33\x44\x91\x2f\x54\xf6\x0c\x4c\x71\x51\x26\xf0\xba\xfc\x4f\x55\xe0\x89\x33\x9c\x12\x4d\xb7\xe5\xb8\xc0\x1c\x0d\x19\x05\x4d\x73\x41\x64\x5c\x24\xc9\x6f\x33\xb5\xf2\x7f\x7c\x70\xbc\x72\x5e\xcd\xc6\xef\xb9\x3b\xde\x0b\x4d\x97\xb4\xcc\x9b\xd7\x13\xc6\xde\xc1\xf5\x52\x19\x4b\x65\x52\xbb\x5f\x49\xe2\xb7\xb6\xbb\x00\xe9\xfd\x0c\x2f\x91\x2b\xe8\x0b\x55\xb0\x2c\x84\x06\xde\x21\x67\xbb\x2f\x34\x9f\x37\xa4\xed\xeb\xc0\x1d\x9d\x12\x60\x39\xfd\x76\x7d\x44\x95\x54\xee\xf3\x1a\x79\xa0\x08\x07\xd8\x28\x9b\xb1\xdf\x73\x9b\x5c\xf3\xa6\x4d\x72\xe9\xe8\x7a\x42\x5b\xd4\xb0\x37\x65\xa3\x60\x6b\xee\x73\xc5\x1c\x7e\xc1\x01\xd6\xeb\x22\x53\xd1\xf7\xaa\x48\xf3\x2b\x23\x54\xf6\xe3\x3f\xe1\x3b\x4d\x2b\x67\x0f\x54\xd8\x72\xb2\xf5\xa0\xc3\x71\x05\x18\x5a\xe4\xac\xc1\xbb\xe1\xb1\xa7\xaa\x4c\x1e\x74\x42\xd8\xd8\xb2\x80\x59\xc2\xe7\x96\xc1\x61\xc6\xd3\x63\xd1\x8f\x1f\x53\xcd\x67\xe2\x72\xa3\xa3\xee\xda\x36\x4d\xaf\x84\x04\xde\x63\xe1\x76\xa5\x0b\x68\xcd\x34\x36\x0f\xc5\x93\x14\xea\x16\xbc\xe3\xd1\x02\x3c\x54\x1b\x20\x13\x12\xfc\x09\x9c\xad\x12\x2e\x53\x7a\x8f\x7c\x82\x86\xbf\xc6\x40\xfd\xa1\xe0\x9f\xf9\x87\x2d\xc1\xa4\xc1\x47\x27\xc1\x9f\xab\x65\x0c\x60\x2c\x50\x14\x9e\x80\x1c\xbc\xbd\xa7\xa1\x4c\xd8\x25\xe6\x22\xfe\x8e\x2d\x05\x4f\xb1\xec\x63\x38\x5a\xc4\x14\xb2\x55\x3b\x2d\xea\xf9\x02\x15\xfd\xf2\x5c\x71\x8b\x9d\x50\x9b\xae\xbf\x20\xe6\x95\xb5\x92\x31\xa9\xff\x86\x19\x85\x60\x12\x65\x81\xc7\x13\x33\x39\xaa\xc6\x8f\x0f\xa6\x3c\xbb\x3e\x1a\xb9\x3f\xfe\x6e\xfe\x10\x79\x34\xf1\x5e\x9a\x54\x5f\x9a\xf8\x2f\x4d\xbc\x97\x1e\xfa\xa8\xd1\x96\x9f\xc5\xbb\x08\x13\xcd\x2f\x59\xf7\xaf\xad\x1c\x45\xf0\x4b\x75\xc1\xc2\xf9\x26\x40\x28\xa8\x8a\x13\xac\x48\x13\x5b\xbf\xcf\xca\x93\x0e\xca\x1b\xf1\xf2\x33\xb5\xa2\x6a\x35\x4e\x38\x98\x30\x94\x1e\xf8\xa6\x43\x78\x68\x19\xfb\x56\xf9\x21\x14\x70\x70\xd8\xe0\x7a\x36\x67\xd0\xab\xb1\x4a\x07\x0d\x05\xd2\x54\x08\x44\x11\x81\x48\x80\xb0\x12\x4c\x93\x04\x93\x04\xb5\x09\x1f\x78\xfb\xf7\x53\x9b\x3a\xde\xb6\x3e\xf5\xda\xb1\x70\x15\x69\x6e\x17\xc2\x52\x14\x0c\x0d\x00\xa1\x73\x6e\x88\x0b\x40\x16\x3b\xad\x0a\x4e\x4e\x0a\x30\x20\x54\x52\x97\x5e\xd8\x47\x83\x9a\xa9\x6c\x2a\xe3\x58\xa4\xfd\x48\x6b\xb5\x79\x2b\x59\x75\x0d\x9f\x02\x45\xad\x0d\xa6\x91\xa6\xfa\xc4\xd4\xbd\xb1\x9d\xf6\x61\xb3\x5d\x89\x5f\xf0\xd6\x93\xa1\x7e\x33\xfd\x2d\x19\x52\xee\xe4\xd9\x68\x41\x1c\xd8\x66\xd9\xa2\x2f\xf7\xcd\x38\x77\x19\xfb\x36\xe5\x9c\x02\x92\x6a\x29\xe7\x8d\xd3\x34\xe2\xe6\xf9\xc5\x9b\x8e\x73\x4e\xad\x2a\x36\x0f\xcf\x0e\x43\x0c\x0c\x15\x03\x50\x0b\xfe\x42\xaf\xc8\x34\x20\xd7\xfb\x5c\x4a\xf3\xf5\x1f\xb0\x2a\x58\x8f\x71\x52\xcb\x5d\xc7\x6a\x5f\x3b\xd0\x78\x2f\xce\xdf\xf6\x18\xeb\xc5\xf9\xdb\x5d\xc7\x69\x5e\x39\xd4\x18\x55\xd6\x59\xc2\xcc\xb5\xf3\xc7\x89\xb4\xc6\x81\x01\x30\x0f\x85\x22\x04\x8d\x13\x9f\x56\xea\xde\xb4\x97\x10\xd5\xe0\x2e\x77\xdd\xf1\x92\x2e\x07\x42\xd9\xb0\x8f\xf9\x6f\x2a\xb0\x08\x90\x2e\x99\x55\x5b\xf9\xa4\xad\x7b\x65\x71\xb9\x3e\x28\x95\x7f\x23\x13\x81\xb1\xb1\x5d\xa0\x15\x8d\x2f\xb1\x2a\x86\x18\x12\x14\x04\x01\xf1\x8a\x7c\x50\xe9\x0f\xc2\x51\x33\x7d\xa1\x3e\x95\x29\x95\xb3\x99\x4c\x84\x0d\xd0\x65\x36\x32\xaf\x14\xd2\x02\x81\xcc\x73\x74\xf8\x3d\xa6\x2a\x1d\xb7\xf7\x8a\x2a\xd8\xe5\x85\x75\xdd\xc5\x22\x75\xc0\x9c\x88\x6b\x8f\x13\x98\xf1\x84\xd0\x4c\xcb\xaf\x83\xa7\xae\xcf\xd0\xcd\xb6\x41\x7c\x20\xa0\xcb\x4d\x8b\xdc\x45\x0b\x92\x64\x86\x96\x65\x96\xab\xfd\xf6\xac\x59\x60\xec\xdc\xb5\xe6\xd7\x1c\xc2\x4b\xbb\xc8\x6c\x44\xdf\x95\x1f\xe0\xe8\x59\xe1\xd8\x15\x94\xed\x47\x90\x37\xc2\x67\x21\xa8\x0d\x7a\x0b\x62\x7f\x9c\x1f\x0a\xe4\xd8\x07\x67\xb9\x59\x91\x9e\x1d\x86\xeb\x7e\x70\x3d\xed\xc2\x78\xcb\xb7\x7a\xf0\x5e\x27\xab\x43\x96\x84\xf7\x2a\x55\x19\x42\x1b\x39\x5a\x19\xb4\xb0\x11\xac\x41\x0d\xed\xa5\xcc\x73\x81\xf5\xe3\x09\xc8\xd7\xeb\xc6\xd0\x92\x9c\x7f\x14\x60\x10\x87\x3e\x83\x1a\xdc\x81\xb5\xc2\x7b\xcd\xb7\x56\x57\x4d\x15\xed\x8b\xfe\xa3\xde\xa3\xc0\x68\xd3\x9a\x9b\x8e\x76\x59\x72\xf7\xf5\xfd\x56\x1c\xde\x6c\x59\xf0\xd6\xe9\x36\x55\x94\xdb\x77\xc6\xae\xaf\x1d\x27\x1d\x54\xdf\xd8\x75\xde\x7e\xe5\x38\x2c\xee\x62\xe9\x62\xe7\x01\xcb\xaa\x95\xdd\x5c\xe3\x22\xcd\x84\xb9\xc3\x80\x0d\xc6\xde\xa1\x5f\x0d\x2a\x98\xab\xa0\xdf\x58\xac\x40\xf7\xa0\x7a\xc4\x01\x00\x73\x70\xf8\x08\x6d\x6c\xeb\xe1\xd3\x02\x4a\x50\xdd\x75\x23\x2e\xdf\x41\x37\xbb\xec\x01\x7d\x79\xe7\xe5\x0f\xb0\xc3\xbb\x0e\x1b\xc0\x67\x61\xd1\xb2\x04\xae\xe7\x9d\x8f\xdc\x65\xad\xc7\x9d\x26\x5d\x7b\xbb\xaf\x92\xe1\xbf\x49\x80\x62\x98\xe5\xb7\xb3\xc2\xb1\xee\xe5\xf5\x58\xb7\xbb\x3a\x08\xb7\x74\x95\x14\x73\x99\xb6\x59\xd2\x53\xc5\x1a\x1d\x1c\x57\xd6\x29\x5b\x22\xa0\x6a\xc8\x48\x33\xad\x8c\x94\xfd\xec\x77\xcf\x1e\x86\xef\xfd\xb7\x4a\xe3\x96\xa8\x01\x7b\x43\x1a\x29\xf6\xf6\xa3\xd6\xa0\xcc\xd2\x93\xbb\x86\x32\xb7\xb3\xd7\xad\x85\x6e\x9a\xdf\xe9\x00\xd3\x33\xec\xef\x29\x01\xea\xcd\x65\x1c\x5e\x7f\x3c\x58\x7d\xb0\xf5\xe6\x32\x1e\x60\xf5\x76\x86\xd5\xdb\x55\xd0\x3a\x2c\x60\x38\xcc\xe3\x90\xd7\xa6\x49\x42\xea\xb8\x35\x0d\xaf\xfc\xca\x2e\x4d\xb1\xff\xa5\x29\x86\x4b\x73\x98\x4b\xb3\x55\x56\x7e\xca\x77\xa6\x55\xc6\xde\x7a\x6d\xda\xde\xf2\x21\xe1\xee\x2e\x74\xf7\x0c\x3b\x13\x71\xb5\xa4\x72\x4f\xa7\x6d\xed\xb5\x26\x89\x28\xac\x17\x03\xad\x82\x0d\xb6\x41\x66\x46\x66\x27\x5d\xe1\xac\x2c\xf7\x8e\x1e\x04\xb4\xfb\xbb\x08\xac\x5a\x97\x5e\x58\x07\x45\x44\x53\xf8\x97\x59\x28\xcc\x14\x03\x9b\x4a\xea\x72\x2b\xbd\x40\x2f\x18\x68\x55\x63\x6d\xd2\x43\xa8\xd4\x44\x5a\x3f\x93\x0f\xe6\xef\xaa\x8e\xac\x9f\x9f\xab\x36\x9f\x8a\xc3\xb3\xf6\x7b\xae\xd0\x09\x9a\x96\x76\xad\x2b\xaf\xfd\xf7\x3f\x5e\x5e\x81\x21\x86\x48\x29\x89\xd8\xad\xa7\x82\x16\xbc\xdc\xd5\x54\x26\x65\x61\x85\x65\xe1\xce\xf4\x45\x6b\x05\xf7\x7d\x6f\x7b\xeb\x01\x3f\x10\x05\x68\x51\xee\xb6\x14\xb8\x6a\x7c\xe1\xe1\x38\xe6\x3d\x11\xf1\x36\xcd\x73\xe7\x88\x6d\x52\x29\xf6\x84\xb4\x77\xd5\x8b\x68\x99\x77\x50\xb6\xed\x4e\xf8\x26\x48\x34\x90\xff\xb1\x7c\x16\xb0\xea\xa6\x68\xee\x32\x2c\x7a\x22\xd5\x49\xac\x22\x7d\x92\x73\xfd\x51\x9f\xd8\x9a\xdd\x02\x4a\xd1\x3a\xeb\xe7\x89\x26\xbd\x14\x1e\x89\x4f\xf9\xc9\xe3\x72\xb4\x6e\x15\x7e\xcb\xd1\xee\x7a\xf7\x57\x84\x4c\xde\x60\x52\xe8\x89\x51\x5e\x7f\x73\x90\x10\xf7\x43\x2b\x6f\x32\xeb\x3c\x2e\x72\x79\x36\xe5\x91\xa1\x2e\x67\xf3\x79\x26\xe6\x10\x2b\xf2\x21\x9c\x73\x2d\x88\x30\x6c\xe9\xd5\x3f\x58\xa8\x5b\x73\x7a\x12\x05\x60\x09\x6f\x92\x42\xe7\x22\xfb\xa0\x20\xd0\x5b\x31\x4e\xef\x19\xfa\x42\x81\x46\x5e\x93\x1e\xc0\x33\x65\x63\x8b\x12\xd4\x75\x27\xde\x34\xbc\x42\x25\xa2\xbd\xcc\x2b\xf7\x0b\xba\x59\xab\x25\xf9\x67\x32\x8d\xc3\xc9\x80\xef\xa6\xbc\xc9\xe6\x00\x68\x50\xae\x80\xa9\xa1\x7b\xae\xec\x15\x6a\x03\x8d\xf0\xc6\x54\x26\xfd\x4c\xb3\x95\xc8\xa8\x7a\x9e\x0e\x83\xb1\x0e\x72\x25\x7a\xc3\x2d\xdd\xdd\x9c\xb6\xe3\x79\xf3\xb7\xbe\xfd\xac\x79\xad\x08\xc1\x13\x1f\x30\x28\x6c\x3e\x62\x89\x9a\xcb\xc8\x5e\x25\x99\xce\x31\x71\xd2\x50\x01\x73\x34\xab\xc1\xf3\x33\x91\x89\x34\xb2\xf1\x39\x45\x2a\x73\x04\xd0\x37\xdd\xff\x59\xa6\x50\x06\x51\x65\xfe\x06\xd1\xd3\x3e\x6a\x47\xeb\xfd\xe9\xb5\x51\xad\xf7\x70\x1b\x9b\xaf\xde\x44\x02\xe3\x86\xdf\x79\x62\x45\x7c\xb3\x04\xb5\x3b\x3a\x2d\x64\x62\xeb\x2d\x26\xa4\x61\x81\xd3\xc1\x9b\x3c\x1c\xe9\x86\x6f\x68\x91\x7b\xc7\x19\xdf\x07\xec\x91\x12\xb6\xc5\xe2\x6e\x99\x9b\x12\xcb\x4c\x44\x39\x8b\x16\xc8\x89\x72\x45\xaf\xd8\xd3\xae\x73\xb5\x5c\x95\x22\xb7\x87\xe1\xd3\x12\x91\x3b\x24\xb7\x0e\x28\x08\x43\xce\xe7\x1d\xc9\xff\xdd\x51\x10\xda\x05\xa6\x2e\xb6\x8c\xf7\x9f\xf8\x30\x62\x47\x05\x54\xbb\x89\x18\x1d\x46\x42\xb4\x54\xb6\xfc\xda\xe1\x39\xdf\x01\x33\x4a\x61\xb8\x98\x9e\x25\xff\x8e\x79\x8c\xdb\xca\x5e\xb7\x2e\x57\x90\x5a\xba\x43\x56\x69\x03\xb3\x26\x8e\xd8\x8f\x67\x5b\xa6\xea\x58\xaf\x21\x0b\xde\xef\x23\x08\x03\x32\xf7\x92\xb4\x47\x26\x73\xac\x5b\x83\x91\x5d\xf4\x56\xf8\x92\x15\x94\xe7\x89\x9a\x72\x0c\xd0\xd5\x2b\x1e\x11\x6d\xe5\x31\x82\xd1\x05\x10\x4b\x6b\xc9\xd9\x25\x56\x2b\x1c\xd0\x13\x06\x06\x33\x30\x98\xea\xb2\xff\x9a\x18\x8c\x4a\xc4\x07\x18\xd5\x7e\x02\xf6\x07\x7a\x7f\x6b\x60\x1a\xb6\x29\xcb\xca\xef\x48\x8a\x1c\x7c\xa2\xd7\x11\x1d\x0e\x73\x20\x93\xb5\x0d\x12\x3a\x23\xda\x6e\x44\xe6\x02\x6c\xf6\x79\x91\xa5\x50\xee\x34\xcb\x54\x9b\x04\x4c\x85\x57\xbb\xd8\x2c\x51\x3c\xcb\x69\x3d\x22\x4c\x14\x84\xc0\x46\x50\x89\x35\xd3\x41\x84\x32\x5d\x0f\xc1\xbc\x2b\xbf\xa5\xa1\xdc\x5b\xd4\x86\x3d\x14\x5d\x26\xc3\x27\xc1\x9b\x2d\x0b\xbd\x67\x16\xdd\x01\x41\xd4\xfc\x42\x53\x9d\x8c\x7a\xcb\xa1\x44\xd3\x93\x66\xa2\x7d\x20\x88\xce\xeb\x10\x44\xdb\xf6\xb9\xb5\xdf\x5d\xa8\x40\xc3\x1d\xb8\x8b\x6d\x76\x90\x15\x3e\x17\x59\x61\x37\x00\xa2\xad\x92\x42\x4f\x86\xf1\xe0\xe0\x40\x77\x66\x17\x1d\x80\x41\x77\x63\x19\xfd\x79\x45\x0f\x26\x31\x70\x87\xcf\x9c\x3b\xdc\x1f\x5b\x18\xf8\xc1\xc0\x0f\x06\x7e\xe0\xb5\x6f\xe0\x07\x87\x67\x04\x9e\x35\x74\x1b\x44\x9c\x6d\x44\xfa\xa4\x6f\x60\xab\x38\x99\x5c\x4d\xea\xac\xb0\x46\x3e\x17\x1b\xe5\x2c\x7d\xb5\x3a\x12\xb7\x0b\xe5\xfc\xa9\x9e\x2a\xca\x00\x9c\x40\x46\x8b\x52\xbf\x6e\x6a\xd6\xcf\xb0\xd7\x9c\x15\x52\x67\x3a\x61\xb6\x86\x5f\x6a\xc1\xfe\x48\xbe\x45\x5b\x16\x03\x46\x64\x89\x32\xc6\x55\x2c\x8b\x24\x97\xab\x04\x81\xcf\xbc\x1c\x0e\x0f\x84\x8e\xa7\x1b\xc6\x83\xca\x0b\x22\x66\x7c\x6e\x7a\xcc\xa1\xf6\x92\x2d\xf0\x93\x16\x4b\x91\x19\xca\x50\x7e\x04\xea\x38\xa5\x9b\xb2\xf7\xd2\x7f\xdc\x08\xfd\x7f\xff\x11\x7d\xa9\x4a\x3f\xd0\xe8\x7e\xfc\xf0\x5d\xd7\x2a\xff\x10\xb6\x26\xb2\x8c\x40\x25\x2b\x9e\xe5\x92\x27\xac\xc8\x6c\x04\x16\x67\x85\x16\x99\x65\xdd\x0b\xbe\x16\x8c\x47\x00\x53\x61\x08\x28\xfb\x5d\x90\x0d\x8d\x47\x0e\x2c\x37\x1c\xb7\x66\x56\x24\xc9\x88\xcd\x64\x0a\x55\x6f\xc4\xca\xa5\x74\xf3\x7c\xc1\x2e\x65\x1a\x09\x4a\x91\x25\x92\x0f\x23\x32\x3d\x9a\x23\xeb\xce\x1d\x58\x6d\x82\x8c\x2f\xf8\x84\x39\x83\x11\xc4\x8c\xcd\x42\xf7\xb1\xf6\x9d\xce\xc0\x16\x78\x93\x77\x99\x1c\xa2\x11\x4f\x1d\x08\x05\x04\xd6\xe4\x0a\x36\xb7\xdc\xf1\x63\x5d\x44\x0b\x33\xa5\xeb\xa3\x95\x8a\xf5\xf5\x91\xb9\x1b\xd7\x47\x5a\x44\x99\xc8\xf5\xf5\xd1\x73\x80\x66\xaa\xcc\x83\xc0\xad\xbc\x77\x0d\x0b\xb8\x3e\x7a\x3e\x62\xce\xfc\x3e\x55\xf9\xe2\xe1\xd3\x4f\x69\x90\x7d\xc2\x73\x3f\xf8\x6d\xab\x8e\xee\x5b\xc3\xdc\x9c\xa0\xe2\x05\xe4\x36\x91\x09\x56\x86\xc9\x9a\xc3\xe6\xc5\xe1\x7a\x75\x45\xca\xe0\xdb\x47\x5b\x95\xbe\x2b\x52\x11\xd3\xca\xc3\x82\xf2\x70\x6d\xf6\xf6\xbd\xb3\x24\xf1\xab\x4b\x71\xf8\xd3\xd2\xaf\x87\x9e\xf4\x5a\x64\xd3\xae\x09\xff\x64\xda\x84\x93\xc5\x47\x48\x1f\xdc\x8d\xf9\xee\x3b\x14\xe1\x68\x32\x46\xe4\xc3\x90\x9d\xb3\x1c\x65\x23\xf1\x81\x12\x2f\x21\xe8\xc6\xc6\x2d\xc6\x0e\x2d\xd1\xac\xd9\x84\x41\xe7\x0d\x8b\x04\x52\xd2\x93\x4a\x59\xc3\xc5\xeb\x92\x5d\xba\x84\x80\x8e\x48\x9c\x32\x04\xc7\xa7\x86\x07\x8f\xbf\x19\xdc\x73\x4f\x5a\x77\x1c\x54\xac\xcf\x45\xc5\xfa\x55\xc4\x7f\x0c\x81\x1f\xfd\xb4\xc3\xc3\x47\x7c\xf4\x0b\xf5\x68\x8d\xf1\xc8\x54\xbb\xde\xd7\x12\xe1\xe1\xfb\x53\x21\x72\xbc\xd4\xf6\x20\xfb\xab\x9f\xdb\x35\xef\x0c\x00\x41\x59\xa0\xec\xdc\x6f\x36\xdd\xd4\x34\x4d\x99\x33\xf1\x49\x6a\xa8\xbf\x69\xa4\x27\xcf\x39\x02\x0a\x18\x9b\xcb\xb5\x48\xfd\xc1\x02\xf2\xb5\xd1\x4f\x10\xc9\x17\x07\xcb\x3d\x2d\x62\xe0\x71\x03\x8f\x1b\x78\x5c\x75\xd9\x7f\x4d\x3c\xee\x81\x43\x50\xda\xc8\xa4\xab\xae\xbb\x0f\xa5\x1c\x02\x54\x86\x00\x95\xaa\x0c\x71\x2f\x91\x29\xfd\x43\x52\x7a\xc4\xa2\x0c\x41\x28\xbf\x16\x36\xba\xa7\x9b\xf1\xfe\xa2\x4f\x86\xb0\x93\x41\x3e\x18\xdc\x8c\xbd\x99\xc0\xe1\xdd\x8c\x3d\x02\x4d\xb6\x45\x98\x0c\xa1\x25\x9f\x33\xcd\xbf\x07\x62\x3f\x50\xf9\x81\xca\x0f\x54\xde\x6b\xef\x53\xf9\xfb\x21\xef\xa1\x56\xdc\xaa\xd3\xda\xa0\x89\x5a\x08\x09\x9c\x70\x47\x23\x41\xe5\x43\x58\xd3\x42\x7b\x19\xf1\x9d\x01\x1e\x3d\xe3\x3b\x6c\x78\x07\x46\x4f\xa0\xd5\xb9\x8c\xe2\xa0\x2f\x97\x6e\xab\x7b\x35\x25\x99\x2f\x03\x6c\x88\xe7\xc3\x3d\xc0\x08\xd2\x6e\x44\x25\x1f\x3e\xc9\x06\xba\xdc\x75\x04\x3d\x2f\x8a\xdb\xaf\xea\x9a\x55\x67\xd0\x75\x97\xba\xce\xa6\x55\xef\xb7\x21\xbd\x20\x49\x76\x67\x93\x7b\x66\x97\xc0\x1c\xc1\x54\x86\xb1\x28\x32\x36\x54\x0f\xd1\xc2\xe9\xac\x92\x2d\x3c\x70\xb8\x03\x88\xb4\x17\xdb\xb1\x50\x49\xcc\xb8\x4d\x8b\x3f\xbb\x38\x2f\xb9\x01\x7d\x6f\x84\x76\x1c\x64\x27\x33\x0a\xe9\xb0\xb6\x10\x1b\xc6\x01\x43\x30\xe2\x02\x9e\x5e\x30\xed\xec\x10\x03\xd5\xf7\x8a\xa0\x69\x86\x02\x9f\xe8\x5b\x14\x94\xe4\x39\x74\xc9\xe0\x33\xb1\xb5\xbf\xe0\x0a\x5f\x1f\x61\xb1\x11\x60\x6d\x32\x12\x67\x51\xa4\x0a\xe4\x5a\x58\xe4\xb8\xd2\xba\x95\x8a\x51\x37\x3f\xda\x19\xe3\xc8\x5c\x37\xf7\x77\x2f\xd5\xcc\xee\x4d\xf5\x1e\x4c\xd8\x4f\x88\xec\x87\xa2\x23\xa1\x17\x48\xed\xad\x12\xcf\x04\xbb\x3e\x32\x83\xc6\xfa\x2a\x30\x6a\xf3\x4f\x33\x85\xeb\xa3\x70\x51\xae\x8f\x9c\x49\xce\x33\xb9\x39\xe7\x89\x27\x05\x9a\x26\x66\xfc\x56\x62\xac\xbc\x42\x02\x68\x26\xa0\x50\x44\x69\xa7\xbb\x37\xca\x41\x87\xa1\x6d\x9d\xf6\xfb\x30\x18\x29\x7b\x7c\x9d\xac\x9e\xb5\xf3\x68\xc5\x72\xbb\xa6\x34\xba\x8f\x44\x6c\xcd\x7d\xf2\xf2\x86\xcb\xc8\x28\xdc\x2d\x8c\xaa\x0a\xf6\x0b\xf6\x96\xea\xa7\xe2\x96\x60\x08\xd1\x41\x57\xbf\x27\xd5\xbc\x0f\x0a\x49\xf5\x09\x07\x10\xa0\x01\x04\xa8\x7a\x21\xef\x0f\x04\x08\x0f\xdd\xaf\x0b\x09\x88\xbd\x35\x3a\x5b\x04\xa1\xb8\x32\x65\xeb\xd3\xc9\xe9\xbf\x9a\x7f\xcc\xf8\x5a\x65\x20\x3a\xb5\x71\xb1\x93\xf5\x69\x88\x7d\x60\x4e\x10\xd5\x3f\x61\x89\x4a\xe7\x22\x43\x8c\xc1\x6c\xed\xfa\x7e\xf9\xf2\xe1\xa0\x87\x9a\x49\xc0\x36\xa5\x69\xc0\x1f\x1a\x0c\x4c\x83\x6f\x7e\xb0\xca\x3c\x29\xdf\xfc\xaf\x01\x7f\x08\x49\xed\xe7\x19\x8b\xd6\x0f\x84\x08\x56\x60\x77\x23\x53\x4d\x62\xf8\xd5\xc3\x11\x1d\x4c\x9e\xa0\xc9\x1d\x50\xac\x18\xf8\xdc\xc0\xe7\x06\x3e\xf7\x54\xf9\xdc\xdd\x62\xd0\xa8\xd8\xc3\x80\x85\xf4\xe0\xa1\x66\x16\x94\xfc\xb7\x1e\x6f\xb6\x13\x20\xd2\x81\xc5\x85\xfb\x84\x46\x3a\x38\x47\x37\xdf\x1e\xb8\xfa\xe7\xc0\xd5\x9f\x28\x2e\x53\xab\x50\xbd\x33\x71\x1a\x24\x98\xcf\x50\x82\x19\xe2\x27\x2a\x67\x7a\x77\x70\xa6\x43\xb1\xaf\xc3\xc2\x34\x1d\x8e\x53\xe9\x81\x3f\x0d\xfc\xe9\xf0\x51\x7c\x75\xff\xd0\xc0\x91\x06\x8e\x34\x70\x24\x56\x3d\xd3\x3b\xc0\x43\xdd\x89\x15\x0d\x40\x51\x03\x50\xd4\x00\x14\x35\x00\x45\x3d\xf0\x71\x19\x80\xa2\xb6\xad\xca\x7d\x01\x45\x3d\xfb\xdd\xb3\x56\x80\x28\x07\xd4\xe0\x4a\xdd\x3a\x92\x39\x61\xcf\x7e\x77\x32\x53\x2a\x78\x19\xda\x16\x53\x77\xda\x9e\x41\x03\x28\xeb\xdb\xb7\xdb\x01\x92\xea\xb7\x06\x49\x55\xfa\x28\x9e\x00\x2e\xd5\xdd\x74\xe5\x03\x07\x7c\x0d\x3a\xf2\xe0\x99\x1d\xb4\xc8\xa7\xea\x99\x7d\xd2\x08\x58\x9f\x73\xe8\xd1\x7d\xc6\x1c\x0d\x80\x58\xf7\x08\x88\x75\x77\xe6\x3a\x44\x3f\x0d\x3c\x76\xe0\xb1\xbf\x1d\x1e\xfb\x18\xd1\x4f\x03\x0c\xd7\x10\x1b\xf5\x94\xb0\xb8\x0e\x25\xcf\x1c\x16\x95\xeb\x60\xbc\x7c\x88\x7b\xfa\x5c\xf8\xf9\x53\x83\x02\xab\x4b\xf4\x77\x31\x14\x0e\xd2\xca\xe7\x22\xad\x0c\x7e\xe5\xca\x99\xde\x01\x0f\xec\xce\xcc\xe8\xae\xc8\x60\x77\xe7\x3b\x03\xc3\x19\x18\xce\xbd\x44\x30\x0d\xa1\x4b\x03\x8b\x19\x58\xcc\xfe\x60\x64\x77\xe6\x2d\x03\x2c\xd9\x00\x4b\xf6\x04\x61\xc9\x42\x73\xc7\x80\x4d\x36\x60\x93\x0d\xd8\x64\x03\x36\xd9\x80\x4d\x66\xc9\xa4\x51\x55\xe2\x22\x91\xe9\x1c\x4a\x37\x65\x52\x65\x32\xdf\xbc\x49\xb8\xd6\xdb\xe2\x8f\xfd\x76\x4e\xa5\x5a\xf2\x15\x04\x02\x51\x70\xe5\x8a\x1a\xb1\x08\x5a\x01\x83\x21\x4a\xea\x7e\x32\x3a\x91\x51\xff\x60\x69\x27\xec\xca\x28\x65\xb0\xca\x14\x38\xc4\xd3\x8d\x79\x20\x63\xdb\x72\xd0\x0a\x9f\xb4\x56\x18\xae\xf0\xb6\xc5\xf7\xfe\xa4\x10\x52\x9e\x4d\x65\x9e\xf1\x6c\x63\xd5\x2b\x90\x0b\x0b\x5d\xf0\x24\xd9\xb0\x55\xa6\xd6\x32\x16\x9a\xcd\x0b\x19\x8b\x04\x76\x4b\xa5\xec\x16\x31\xaa\xa4\xae\x1e\x37\xda\x07\xc2\x97\xdb\x83\x0e\xa1\x23\x89\x58\x54\xc7\x64\x82\xb6\x2e\xb4\x52\x9b\xd1\x01\xcf\x87\x01\x86\x97\xa6\x1c\x5f\xa4\x52\x2d\x63\x91\x61\x70\x9c\x39\x1a\x31\x75\xe4\xa6\x64\xd8\xdf\x4a\xc5\x14\x54\x17\x2b\xa0\x40\x18\x77\x9d\x6e\x2a\x33\x9f\xb0\xf7\x69\xb2\x81\x80\xf5\xf0\x8b\x74\xa5\x96\x3c\xfb\x88\x9f\xba\x09\x86\x7d\x33\x61\x7f\x51\xb7\x62\x2d\xb2\x11\x93\x33\xb6\x34\x67\x2c\x5f\x00\x22\x41\xa5\x27\xa1\x6d\x78\xc2\xad\xcc\x17\x66\xc4\x32\xab\x76\x46\x61\xd9\x5a\xe4\x70\xde\x33\xcb\xaa\xf4\x92\x27\x89\x39\xf7\x78\xcd\xd5\x0c\xa9\x2f\x79\xed\xec\xc4\xab\x9f\x0b\xa0\x02\x5b\x16\xa9\x65\x8b\xa7\x4a\x25\x82\xa7\x83\xd2\xff\x79\x2b\xfd\x77\xf7\x82\xdf\xf7\x8a\xb9\x49\x37\x2e\xc9\x2a\x13\x46\xa2\x90\x2a\xc5\xb8\xb1\x8e\x53\x79\x51\x69\x6e\xb5\x38\xfa\x0b\xe8\x05\x35\x49\xe7\x48\x3a\xe0\xae\x26\xea\x56\x64\xe5\x95\x61\xef\x31\xad\xe5\x07\xbc\xf6\xd4\xeb\x77\xa6\xd1\x85\x6b\xe3\x4b\xe9\x4d\x2d\x0c\xb5\x28\x52\x2d\xf2\x09\xea\x3a\x2e\x21\xc3\xe8\x5e\x63\xc2\x8e\x9c\x83\xd1\x98\xf0\xff\x7e\x50\xe9\x85\x1b\x9d\xeb\x66\x26\xb8\x59\xbb\xb1\x69\xba\x07\xbd\x86\x7b\xd9\xb1\x6c\xa5\x7c\x61\x79\x7a\x95\x76\xc2\x0c\x68\x31\x79\x94\x17\x3c\x29\x9b\x90\x9d\x02\xfc\xf7\x91\x90\x6b\x61\xb9\x8f\xa0\xe0\xab\x30\x3d\xc9\xa8\x7d\x40\x78\x31\x32\x41\x02\x09\x07\xe6\x50\x99\x1d\x5a\x42\xcc\xf8\x64\x9a\xbf\x7a\xd9\x3c\x75\x92\x7f\xf6\x88\x13\x87\x75\x79\x40\xe3\x94\x27\x52\x6e\x33\x4a\x85\xb2\x66\xbb\x65\x6a\x07\xa3\xd4\x16\x61\xb6\xc3\xf5\x51\x6b\xdb\xe4\x03\x09\xcf\x4a\x5f\x75\x7b\x90\x45\x9f\xb0\x87\x42\x5a\x0f\x05\xac\x02\xf9\x28\x2a\xd2\xc7\x61\xbc\x15\xdb\x14\x2d\xaf\xab\xc1\x6f\xf1\x9b\x15\x61\x76\xf3\x5b\xc0\x61\xb5\xa3\x78\x04\xd9\xa5\x27\xf7\x79\x70\xd7\xc8\x3e\xdc\xe7\x70\x85\x5a\x82\x5b\x4e\x79\x00\x3d\x6d\x2a\x6f\xdf\x5d\x7c\x78\xf7\xe6\xec\xea\xdd\x5b\x36\x46\x31\x04\xed\x88\x34\x94\x1a\x61\x32\x37\x3a\x2e\xfd\xf1\xd3\x0d\xab\x4d\xfd\x64\x7d\x7a\x12\xbc\x33\x61\x83\xe5\x66\xe0\x96\x83\xe5\x66\xb0\xdc\x0c\x96\x9b\x41\xec\x79\x1a\x62\xcf\x60\xb9\x19\x2c\x37\x83\xe5\xe6\x73\xb4\xdc\xec\x1a\x53\xd4\x25\x3c\x0f\x36\x9c\xdf\x9c\x54\xfa\x84\x6d\x38\x4d\xda\xdd\x60\xc8\x19\x24\x9a\xc1\x90\xf3\x64\x0d\x39\x3b\x33\xa4\x5c\x65\x7c\x2e\xcc\x9e\xbe\xb9\x3c\x7f\x9b\xc9\xb5\xc8\xb6\x61\xc3\xda\x36\x2c\xe2\x2b\xb3\x03\xba\x01\x58\x8f\xb3\x37\x04\x3d\x94\xb1\x4b\xec\x9f\x9d\x1b\x9a\x3d\xe3\x91\x60\xc7\x6f\x2e\xcf\x9f\xb3\xb5\x4a\x8a\xa5\x60\x31\x76\x16\x8b\x55\xa2\x36\x22\x66\x8a\x72\x61\x31\xe9\x75\xc2\xfe\xea\x56\x98\xf1\x3c\xe7\xd1\x82\xc5\x02\xfe\xcf\xab\xd2\x55\x68\x8b\x3e\x45\x14\x20\x57\xa6\x95\xc8\x96\x32\x15\x4e\xcb\xa5\xd7\x25\x5e\x6c\xb3\xf9\xd8\x7b\x22\xf2\x9e\x3d\x18\x01\xc9\x9f\x6c\x2a\x44\x0c\xac\x69\x2a\xd8\xca\x90\x60\x18\xfe\x52\x15\x69\x3e\x61\xe5\x42\xd9\xa8\x46\x44\x77\xf3\xa2\xb2\xe2\x81\x31\x3f\x69\xc6\x3c\x70\xab\xcf\x85\x5b\xed\xa7\x7f\x7b\xda\xb7\xfb\x17\x86\x93\xa7\xb1\x8c\xcc\x89\xaf\x81\x75\xbe\xb9\x3c\xb7\x24\x8d\x00\x01\xfd\x9d\x9e\x99\xcd\xcd\xd5\x1f\x99\xcc\xd9\xf7\x3f\x5e\x5e\x99\x0d\x0a\x60\x59\x28\x21\xbf\xd4\x45\x4d\x7f\xdf\x8a\xfc\x22\x29\xe6\x32\x35\xdf\x3e\x7e\xce\x22\x9e\x24\x14\xce\xcf\x73\xfa\x1a\x1a\xa7\xe9\xcb\xd0\x13\xe4\xf7\x4f\x05\xfb\xfa\x15\x8b\x16\x3c\xe3\x51\x6e\x3e\xae\x32\x96\x08\xad\x47\x6c\x2a\xe6\x32\x4d\x21\x90\x3b\x8d\xcd\xc1\x32\xff\x04\x25\x9c\xa7\x8c\x27\xab\x05\x07\x04\x50\x19\x95\x6f\xb3\xe3\x9f\xf9\xf8\xef\x2f\xc6\x7f\x38\x1b\xff\xaf\x5f\x9e\x63\xe3\x98\xeb\x85\xd0\xec\x78\xfc\x7c\xc4\x62\x95\x6b\x76\x3c\x79\x4e\x15\xab\xbc\x3e\x40\xd9\xbe\x15\x22\x7d\x64\x33\x86\xd1\x6e\x77\xc6\x7a\x68\x62\x90\x97\xa6\xa3\xad\x27\x09\x8d\xac\x91\x23\xae\x76\x33\xf1\xfd\x3d\xf2\x6f\x60\xec\x0f\x29\x9a\xd0\xb4\xb7\xc2\x05\x3b\x81\xe1\x30\x8e\xa5\x86\x95\xee\x82\xaa\xf7\xdb\x35\x02\xd5\x57\xd9\xf0\xc0\x73\x9f\x34\xcf\xdd\x5b\x19\x6e\x39\x8b\x7b\xab\xc1\x4d\x62\xf1\xa0\xfa\x0e\xc2\xc4\xa0\xfa\x3e\x02\x7f\x39\x60\xf0\x42\x1b\x37\xef\xc1\x63\x4c\x3b\x4b\x76\x74\x95\xc1\xf3\x92\x02\xf5\x61\x31\xa0\x8c\x7e\x28\xb7\x62\x1b\x5d\x08\x1b\x07\xd2\xa7\xd4\x20\x55\x84\xca\x34\xed\x30\xba\xad\x51\xeb\x35\xa3\xc0\xa1\x1e\x4f\x45\xc4\x0b\x0d\x00\x7c\x72\xb9\x4a\xc4\xd2\x21\x2b\x9b\x9e\xde\x38\xb5\xfa\xa2\x98\x26\x52\x2f\x7e\x82\xae\x8f\x9f\x9b\x33\xbc\x50\xf1\x73\x9b\x2b\x44\x68\xd7\x7d\xf4\x73\xcb\xd1\x2c\x42\x25\x35\xa4\x41\x4b\x67\x18\x40\x88\xc0\x68\x21\xa2\x8f\xc4\x48\xa1\x05\x36\x5f\x02\x7d\xca\x79\x5e\x20\xd0\xe0\x2d\x37\x84\xaa\x48\x73\x99\x78\x6d\x81\x7c\x42\x7b\x23\x43\x8b\x99\xb9\x6e\xab\x4c\x45\x42\x80\x80\x9b\x2b\x54\xcf\x01\x89\xf7\x8a\xa6\x2c\x3e\x21\x03\x1d\xd3\x8b\x19\x8b\x94\xca\x62\x99\xc2\x1a\x83\x98\x5b\x5f\x63\x33\x04\x24\x87\xdb\x87\x6a\x7d\x30\xf5\x8d\x90\x9a\x45\xca\x6c\x40\x5e\xe2\x77\xb9\x23\xf4\x41\xcc\xa5\xce\x33\xe7\x76\x02\x0f\x95\x79\x45\xa4\x7c\x9a\x50\x45\xf2\xdc\xf9\x8b\xa4\xf6\xb0\xae\x73\xc5\x66\x3c\xd1\xe4\xd2\xae\x7d\xd7\xd5\x2b\xff\x28\x57\x2b\x43\xcc\xdf\xe7\x0b\x91\xdd\x4a\x2d\xb6\xb7\x37\xdb\xd7\x1a\xaa\xb0\xd5\x8f\x3d\xd3\x90\x67\xd6\xcb\x75\xf8\x96\xe4\x28\x89\x0b\x52\xa4\xb1\xc8\x92\x0d\x30\x43\x5c\x7f\x5d\xac\x56\x2a\xcb\x35\x16\x62\x07\x4c\xe6\xdb\x54\x64\x7a\x21\x57\xb0\x28\x2b\x91\x2d\xa5\xd6\x9e\xd8\x4d\x2f\xd2\x69\xc0\xec\x3d\x38\x05\x66\xf2\x1f\x04\x70\x46\x15\x5c\x6a\xf6\xcd\xa5\x37\x62\x92\x9a\x10\x66\x3c\x8e\x81\x55\x40\x34\x40\xce\x65\xa2\xab\x6e\x45\xd0\x7b\xac\x5f\x91\xa7\x25\x6a\xff\x42\xa5\x2a\xa3\x20\x26\x62\xcd\x88\x02\x0f\x3b\x6a\xb7\x1f\xaf\x5b\xf8\x7d\xff\x0c\xec\xe1\x7a\x5c\xa9\xf8\x3c\x9d\xa9\xf7\xe9\xf7\x66\xd2\x5d\x70\x16\xb3\x30\x2a\x22\x7c\x79\x17\xda\x53\xae\x54\xd5\x6e\x76\x9c\xc8\x8f\xc2\x3c\x35\x0a\x2d\x7c\xe2\xc7\xf3\xb7\x23\x26\xf2\x68\xf2\x9c\xc5\x45\xe6\x36\xa8\x3c\x85\x1a\xae\x08\x8d\x8c\x4e\x77\xb5\x5b\x42\x5b\xc9\x1b\xcd\x71\x36\xfa\xc5\x6c\x95\x79\xbd\xbc\xfe\x34\xf0\x32\x2c\xa6\x32\x65\xae\xa1\x3a\x84\x39\x4d\x81\xb1\xd2\xdc\x72\xbc\xb8\xb0\x50\xd6\x94\x08\xa3\x30\x9f\xaf\x8d\x8f\x6b\x86\xbb\x6b\x68\xac\xf8\x94\x5b\x34\x3f\x33\x88\x1f\x54\x2c\xaa\x04\xd7\x5c\x38\x5d\x1b\x27\xa8\x11\x7a\xa5\x52\x2d\x6d\x01\x88\x15\xcf\xb4\xd5\xe4\x21\x1c\x8d\x3b\x51\xd1\xff\x3e\xad\x89\xac\x8f\x04\x3f\x32\x53\x49\xa2\x6e\xcd\x9b\xee\x47\x33\x4a\x7b\xff\xed\xeb\xb3\xda\x99\xd0\xfe\x91\xa1\xfb\x80\x62\x8f\x9c\x2f\x72\x36\xcf\xd4\x2d\x62\xd6\x62\x70\x9d\x98\xc9\x4f\x41\xcc\xcc\x84\x5d\x1f\x45\xba\xe4\xcd\x24\x0d\xad\x54\x3c\x49\xf9\x52\x5c\x1f\xbd\x36\x9f\x44\xd3\xcb\xd6\x96\x60\x55\xf5\x9b\x63\xee\x6c\xeb\x3b\x85\x8c\x4d\x6b\xbc\x3c\xc7\xe6\xc9\x8f\xe7\x6f\x9f\x37\xb7\x17\xab\x85\x58\x8a\x8c\x27\xe6\x8d\xeb\x23\x33\xd5\xeb\x23\x26\x67\xb3\x2a\xf7\x49\x99\x6b\xca\x64\x9a\xc8\xd4\xfe\x7a\x9d\xb2\x8e\xff\x78\x89\xd6\xbc\x24\x06\x97\x20\xe7\x8f\x98\x72\x74\xfa\xfa\x08\xce\xf0\xf5\xd1\x75\x7a\x9d\x76\x8d\x96\x50\xed\xc5\xad\xa3\x23\x32\xf5\xd9\xf6\xe9\xe4\xf4\x6b\x00\xf8\xb5\x84\xca\x0a\x88\x70\xb6\xf0\xd4\x69\xe2\xcd\x44\x7c\xa1\x7c\x07\xcc\xfb\xfa\xe8\xc2\x08\x62\x3a\x17\x69\x7e\x7d\x44\x69\xdf\xef\xbc\x8f\xe3\x14\xbe\x93\x33\x11\x6d\xa2\x44\x7c\xaf\x62\x41\x1c\xc7\x75\x1d\xf1\x94\x25\x82\xaf\x85\xbb\x31\x2c\x96\xda\xb1\xb9\x13\x95\x31\x39\x4f\x31\xe0\xcb\x52\xda\x09\x3b\xd3\x95\x49\x7c\x05\xa9\xe4\xe9\xb3\xdc\x8d\xb2\x6c\x3e\x0a\x3e\x06\xb3\xb4\x8d\x54\x2a\xd8\x52\xc5\x14\x2d\xe1\xfb\x21\x30\x65\xda\xba\x22\x1c\xc7\x2d\x6f\x7f\xe9\x22\xb0\xeb\x03\x1d\x01\x55\x97\x7a\x04\xeb\x27\x3e\x71\xc3\xe3\x01\x28\x99\x1b\x86\xbf\x34\xfd\xc0\xa9\x58\xf1\x8c\x2f\x4d\x0f\x96\x51\xc5\x15\xe9\xb1\x3f\x87\xa5\xdd\x7f\xc3\x57\x3c\x92\x79\x17\x8f\xad\xd2\xf8\xca\xdb\x01\x91\x27\x31\xaf\x4e\xe8\x6f\xb9\x11\x1b\x21\x66\xc4\x39\xb1\x4c\x97\x36\x5e\x10\x19\x2a\x39\x7f\x22\xdb\xb5\xeb\xb0\x46\x4a\x91\x22\x50\x56\xf9\x74\xc3\xa2\x4c\x20\x19\x7b\x73\x79\x7e\x59\x19\xa0\xf5\xa8\x80\x6c\x16\x95\xc3\x76\xb4\x6e\x62\x2e\x86\xa1\x69\x20\x4c\xda\xd8\x42\x2b\x3b\xc9\xe5\x52\xc4\x92\xe7\x22\xd9\xf8\xbb\x0e\x24\xd4\xd9\x53\xcf\x53\x5b\xdd\x01\x78\x4d\xa6\xd6\xd2\x08\x15\xa6\x91\xb9\x4b\xb8\x18\x36\x6e\xc9\x08\x67\x16\x18\x83\x18\x80\x11\xb1\x4b\xe9\xb4\x3e\xdd\x85\xe1\x2b\x48\xf1\x45\xcc\xb4\x02\xd1\x46\xe6\x20\x0b\xb4\x4e\x19\xe6\x75\x96\x80\xbc\x9a\xcb\xb5\x48\x36\x23\xbf\x7b\x9a\xa7\x3b\xc4\x36\x00\x92\xa4\x13\x08\x83\x62\x2a\x43\x0e\x88\xc2\x89\x2b\x5f\x31\x4b\x40\x1c\x84\xb9\x64\xb8\x2c\xb5\xdd\xf3\xb9\x89\x19\xff\x54\x88\xb4\x9c\x04\x2d\xba\xb4\xe5\x72\x40\x12\xa2\x4f\x9b\x6f\x61\xed\xa2\x35\x97\x09\x4c\xd2\x49\xc6\x0d\xb3\x75\x94\xca\x09\xbc\x64\xe0\xae\x72\xf1\x3d\xee\xca\xba\x4e\x91\xba\x0c\x4e\x4d\xaf\x38\x8b\xdf\xad\x39\x25\x1f\x09\x4a\xc3\x1e\x8b\x16\xe9\xc8\x0a\xaf\x95\xd9\xcc\x4a\x4b\x96\x99\x31\xa0\x2e\x48\x5d\x21\xae\x23\xa2\x31\xa4\x80\x16\xda\x6c\x4d\x00\xcd\x81\xd7\x34\xd4\x4c\x61\x93\xad\x9a\x87\xdc\xdf\x23\x9b\x86\x2a\x61\x67\x05\x4f\xd8\xc5\x4f\x27\x17\x3f\xbd\x61\x4b\x61\x44\x6b\xa9\x97\x38\x4a\x60\x3b\x48\xd9\x60\x4c\x1e\x75\xa7\x5b\x22\x35\xfc\x3c\x72\xb3\xe7\x59\x39\x32\x62\x81\x12\xa8\x02\x4a\x00\x14\x67\xe6\x54\x2b\x9f\xcd\x59\x32\x2b\x33\x96\xd8\xf5\x86\x29\x93\x66\x83\x0b\x65\x7f\x00\xc2\x89\x61\x6f\x13\x76\x66\x57\x79\xc1\xad\x57\x96\xdf\x9a\xa1\x58\xf3\xab\xaf\xf9\x12\xaf\x9b\x2b\x22\x5b\x73\x91\x33\x5e\x17\xc3\x4a\x67\x0b\x71\x03\x9c\xe2\x84\x7d\xa3\x32\x0c\x42\xae\x7b\xbf\xdd\x72\xa3\x10\xe6\x56\x47\x0b\xe1\x8c\x3e\x9e\xf5\xc4\x70\xef\xb9\xcc\x17\xc5\xd4\x30\xee\x58\x45\xba\xe4\xde\xe3\x44\x45\x3c\x19\xd3\xba\x4e\x16\xf9\x32\x29\xa7\x69\x2e\xae\xcf\xc5\xec\x88\x90\x9b\x68\x64\x6b\xa8\x2c\xc3\x73\xfc\x73\xc9\x37\xb0\x32\x71\x6c\xeb\x02\x09\x36\x2b\xcc\x6d\x6b\x0a\x90\xbc\xcf\x6a\x40\xc1\x4f\x81\x41\xc9\xdc\x84\xb1\xeb\x54\xe4\x3b\x54\x8d\xe8\x67\xf7\x31\xfb\xbc\xdd\xe2\x63\x5a\x34\xd4\x1d\xa4\xf8\x86\x24\xf1\x44\x72\xd3\x42\xe7\xa0\x1d\x1b\xb1\x81\xb3\x14\x84\x1c\xbf\x01\xc5\xc4\xa7\x02\x0f\x31\xf0\x36\xa7\xf2\xc1\xa7\xc8\x80\x8b\x88\x49\xc9\x06\xe4\x9b\x44\x19\x8e\xa4\x31\x84\xb3\x20\xfd\xdc\x74\x3e\xc6\x7e\xc7\x19\x5a\x09\x78\xc6\xcc\xe5\x8a\x78\xe6\x4a\x3e\x65\xc8\x17\x3e\xfa\x4a\x09\x2f\x72\x65\xa6\x11\x61\xc6\x82\x5a\x15\x49\xcb\x28\x2c\x56\x98\xa7\x76\x78\x5a\x90\xed\x74\x05\x4e\x49\x66\x07\x01\x7c\xd7\xf5\xb4\xa0\x38\xf8\xd2\xb5\x09\x45\x91\x70\x69\x42\xc4\x1a\x73\x41\x8c\xc6\x9e\xce\x47\xe6\x6a\x62\x81\x34\x02\x92\x32\xff\x23\x28\x72\xc2\xf3\x9f\x69\x8f\x8f\x50\xc4\x48\x0a\x77\x8c\x06\x6e\x95\x31\x9b\x57\x64\x14\x12\x75\xcb\x44\xaa\x8a\xf9\x82\x04\xb4\xdc\xc9\x8b\x6e\x3b\x9c\x21\x3d\x9c\x07\x4f\xd9\xfb\xdb\x54\x64\x1f\x4a\xb0\xac\x3a\x9a\x5b\xa4\x32\xd4\xcb\x40\x08\x48\xcb\xd5\x1c\x1c\x4e\x4f\xda\xe1\x34\xf8\x65\x3e\x17\xbf\x4c\xcf\x20\x0f\x17\xca\x11\x84\x49\x54\x6c\xd9\x70\x7f\x4d\x83\xb6\x92\x08\x77\x8f\x24\x30\xe4\xa5\x33\x8e\x40\x6f\x73\x39\x58\x46\xf6\xb9\xc4\x12\xc0\x64\xee\xc1\xcb\x63\xfa\xed\x13\xd8\x58\xb6\x6b\xe5\xfc\x8d\xfb\x60\x84\x2f\xdf\x42\x57\x97\x06\x7a\xb0\x80\xc4\x88\x7a\xa0\xfe\xdd\xe5\x5c\xa1\xd4\x6a\x26\xf2\xa1\x99\x24\x56\x5d\x4b\xe5\x67\xab\x75\x36\x49\x73\x29\x8b\x6a\x82\x93\x2b\x75\x16\x0e\x28\x7f\xeb\xb8\x30\x88\xc8\x65\x34\x6b\xa3\x28\xd9\x78\x93\x7a\x60\xf0\xf9\x59\x2f\x3b\x07\x5b\xd1\x50\x0e\x1c\x6e\xb5\x07\xe4\x9f\x8a\xc5\xf9\xdb\x8e\x99\x62\x23\x3b\x3f\x58\x6b\xc7\x17\x68\xa6\xc8\x1b\x8c\xaa\x29\xc5\x6d\xb0\xce\xa8\x29\x07\x66\x31\xb0\xc7\x00\x99\x8f\x8c\x84\x03\x0a\x97\xd5\xea\xf5\x46\x43\x1c\x85\x9f\xb4\xa9\x17\x3c\xf3\xd7\x48\x2d\x45\x1a\x25\xa8\x8b\x23\x48\x67\x6c\xb8\xf9\x37\xa5\x61\x6b\xe4\x7f\x0e\xa5\x00\x72\xa8\xb8\x0a\x5e\x66\x16\x80\x3c\x68\xfe\x75\x6a\x14\x59\x6b\x0b\x0e\x87\x12\xbe\xee\x0d\xc2\x7f\xff\xcc\x68\x9d\xff\xb6\x10\x81\x1a\x2b\xb5\x2e\x84\xf6\xec\x6b\xf6\xfd\xb0\x7f\x33\x28\xf4\x6e\x59\x3d\x0e\xc7\xe9\xdc\x3e\x28\x43\x92\x4d\x04\x05\x6e\xb7\xba\xb9\x0a\xc7\xe6\x38\x04\x2b\xb4\x15\x00\xce\xdf\x96\x06\xae\xca\xb7\x41\x02\x07\x6f\x96\xce\x79\x1a\x8f\x98\x98\xcc\x27\xe5\x9c\x80\x68\x08\x0e\x36\x04\xb7\x50\xd5\x5b\xe4\xe2\x96\x77\x3f\x7d\xb9\x5a\xa9\x44\xcd\x37\x7f\x15\x9b\x2e\x63\x87\xdf\xb4\x1a\x64\xf3\xd1\x3c\x23\x9d\xb3\xbc\x35\xd6\x64\x06\xdb\xc2\x3d\x47\x05\x10\x2b\x9e\x80\x24\x08\xb4\x90\x6c\xa9\xb0\xc6\x2e\x65\xda\x15\xe1\xb6\x5f\xc6\xcf\x58\x29\xbd\x5c\x34\xcd\x8e\x69\xd5\x22\xb5\x5c\xf1\x74\x33\x89\xd4\xf2\xe4\xef\x2a\x15\x88\x3e\xea\x3f\x35\x5a\x89\x4a\xaf\x8f\x9e\xf7\x19\x96\xdb\x77\x37\x26\x77\xfa\xc2\x31\x71\x50\xc9\xe0\x1a\x59\xc9\x36\xf0\xfb\x88\x4f\x2b\x85\x7a\x9a\xae\xbd\xaa\x59\xc2\xa7\x22\x81\xbc\x70\x23\xcb\xa9\xdb\x34\x50\x13\x6a\xa7\x1a\x90\x51\x5d\x27\x68\xca\xf0\xed\x90\xf5\x93\x0a\xdb\x54\x09\x5d\x97\xd1\xc2\x7e\x58\xe6\x25\x78\x67\x9e\x49\xb1\xf6\xa8\x8b\x37\x12\x74\xa3\x72\xad\xd9\x94\x47\x1f\xed\x79\x77\x76\x51\x50\xd8\x56\x4a\x97\xfe\xa7\x58\xce\x40\x31\xca\x91\x3e\x98\x37\xcc\x90\xca\xc7\xc1\x4a\x4c\x4a\xb4\xe0\xa9\xb0\xc6\xae\xd2\xb7\x66\xe1\x60\x9d\x11\x9f\xde\x7d\x52\x75\x89\x81\x69\xd5\x89\x7b\x97\x48\xd5\x5f\x5c\xe9\x0e\x7b\xb4\xad\x5a\x82\x1e\x3d\x75\x7e\x08\x79\x7c\xda\x1a\xe8\x5d\x42\x1e\xeb\x22\xf3\x61\x02\x1e\x43\xbd\x62\x08\x77\xfc\x0d\xab\xd5\x43\xb8\xe3\x03\xab\xc0\xf7\x15\xec\xe8\x0c\x0e\x9d\x7c\x05\x02\x1d\x77\x52\x81\x7b\x58\xc4\xbb\x99\x10\xbd\xdc\x05\xcd\x63\x3f\xe1\x97\xdc\xf1\x87\xe9\x0d\xc7\x5a\x8b\x01\x10\x06\x62\xc5\x52\xdf\x08\x6d\x9a\x95\x23\x2e\x69\xab\x91\xb4\x8a\xd4\xcd\x61\x44\x70\x09\x20\xb1\x44\x6a\x49\x52\xcb\x81\x6a\x56\xb6\xda\x2a\xee\xec\x46\x59\xf1\x3c\x5a\x8c\x97\x22\x9b\x8b\xf1\x47\xb1\x01\x05\x33\x14\x5c\x9a\xdf\x00\x6b\xbe\x98\x6f\xd0\x5a\x96\xcd\xf7\xb0\x30\xd9\xad\x3c\x80\x44\x64\x7d\xc3\x1d\xd0\x62\x7e\x33\x86\xbf\x4d\x49\x38\x71\x81\x16\x14\xc3\x47\xc0\x17\x6a\xe6\x94\x34\xf3\x18\x45\xe5\xd2\xe3\xfa\x13\x39\x33\xad\x53\x7d\x93\xf2\xa5\xf5\x9d\x58\x29\x9c\x9c\xde\xfe\xb7\x45\x53\xa2\xe7\x1f\x6b\xb6\x0b\xe7\x5b\x87\xa1\xf0\x28\x82\x88\x53\x70\x45\x8a\x3c\x8a\x51\x4d\x61\xa5\x49\x13\xc2\x99\xfa\x08\x72\x49\xa2\x6e\x71\xe8\xef\x3e\xad\x78\xda\x47\xa4\x6b\x78\xc5\x88\x64\xb7\x3e\x42\x54\x6d\xc4\xe6\x25\xab\x45\x0b\xf3\x5a\x4b\xf1\x94\xad\xbe\x78\xe8\x45\xc4\x57\x28\xe3\x57\x27\xd3\x50\x62\x47\x18\xe6\x17\xe5\xa5\xca\x92\xbb\x57\xcd\x60\x33\xe1\x7c\xd0\x1d\xdb\xc6\xde\x79\x21\xc8\xe4\xc9\xb2\x02\xad\xd5\xce\x4a\x45\xd7\x29\x30\x01\xe1\xd3\x13\x76\x96\x92\x06\x43\x53\xd8\x5c\x0a\x23\x87\xab\xec\x4a\x64\x4b\xcb\x0c\x79\xaa\xc9\x91\x05\x75\x15\xca\xde\x32\x9a\x0e\x78\xce\x42\x5d\xbf\x6f\xc8\x28\xf9\xce\xcb\x10\x1c\x0a\x9d\x38\x10\x71\x8a\x54\x06\x97\xb0\x69\x7a\x77\x92\x0f\x07\x85\x63\x70\x79\x0d\xb2\x79\xaf\x4b\xf8\x19\xe3\x8a\x41\x70\xf6\x7b\x18\x67\x17\xe9\x7f\xdb\x4c\xc8\x1b\x18\xb6\xa5\x04\x15\x86\x95\x09\x72\xf4\x97\x71\x71\x10\x23\x53\x8e\x80\x8c\xb2\x3f\x5f\x1f\x65\x0a\x2d\x8a\x5a\xcd\xf2\xeb\xa3\x5f\x26\xec\x07\x95\xdb\xd0\x6a\x11\xb3\xb1\x0d\x4f\x47\x5e\x7e\xf1\x13\x61\x00\x6a\xb9\x5c\x25\x1b\x36\xe3\x32\x61\x12\xfd\x42\xc0\xc7\xe1\xcd\x87\x31\x60\xf9\x71\xff\x4e\xec\xa9\x2e\x6d\x19\x9b\x7f\xd1\x2c\x46\xec\x34\x94\x2a\x44\x55\x29\x6d\x95\x85\xb5\x2a\x22\x18\x06\x82\xdb\x4d\x24\xd7\x8a\x25\xca\x18\x8d\xb1\xde\xb6\x9b\x2d\x16\x70\x55\x29\xf8\x1e\x42\xd8\xb9\xcf\x75\xa2\xd7\x95\x03\x0b\x33\xfd\x6d\x05\xbb\xca\xf0\xf7\xb0\xc7\x67\x22\x4a\xb8\x5c\xf6\x4b\x89\x39\xfc\xc9\x07\x3e\xe9\x8d\x20\x84\xd1\x7b\x2b\x20\x29\x69\x0f\x90\x3b\x18\x07\x15\xfa\xfd\x3e\x8c\xb1\x6a\x9a\xd9\x4f\xd5\xf6\xde\x7a\x2f\xd4\x6d\x6d\x86\x6f\xcc\x88\x7d\x70\x52\x7f\x39\x0c\x4f\x9e\xaa\x22\x8d\x27\x0c\x4d\xe9\x10\xee\x3a\x62\xc1\x47\xce\x6d\xe8\xaf\xb9\x98\x98\x7b\x70\xaf\x72\xd7\x5d\xeb\x60\xf9\xa7\xf6\x89\x59\x2b\x02\xbd\xec\xd0\xe6\x0a\xbf\xf3\x0e\x5b\x78\xb5\x69\x93\x41\x3c\xb8\x10\x03\x20\xde\x13\x97\x4f\x77\x2a\xbb\xec\x1b\xc4\x43\x3d\xfc\xe0\xe6\x99\xe0\xc4\x0f\xc6\xf1\x41\x00\x1f\x8c\xe3\x8f\xc3\x6e\xee\xc5\x42\x8e\x1c\xfd\xcc\x65\x70\x6f\x61\x39\xd5\xa6\x25\x16\x1e\xe6\x5c\xe6\xe8\xf4\x76\xb9\xd4\x99\x4d\x8a\xf7\x6c\xe7\x86\x12\xdb\x18\x94\x13\x77\x11\xcb\x1f\xc1\x48\x7d\x9d\x5e\xa7\xb5\x8f\x0d\x78\x72\xbf\x52\xbe\x36\x90\xfd\xcf\x85\xec\xdf\x19\x4f\xee\x57\x0d\x83\x56\xa5\x48\xfb\xa1\xa1\xc5\x42\x43\x96\x31\x12\xc9\x13\xa2\x90\x0e\xac\x61\xc1\xd7\x52\x65\x13\x76\x41\x79\x2a\x2e\xda\xcc\x8b\x90\xc2\xd8\xba\xb6\x10\x6d\x00\xe0\x38\xe8\x3c\xb1\xc7\x8e\x1d\xcf\x0b\x6d\xa7\x58\x23\xdd\x74\xa9\x1a\x66\x05\x65\xd6\x37\x16\x11\xc4\x5e\xf3\x1a\x03\x71\x80\x08\x23\x26\x27\x62\x82\xaf\x56\xf1\x4b\x3e\x13\x74\xb9\x1a\x43\xbe\x6f\x8e\xdf\xa1\x68\x36\x35\x6f\x52\x36\xdb\x18\xf6\xc0\x9d\x9f\x34\x77\xde\x5b\xeb\xac\xee\xf7\xe1\x15\xcf\xda\x4d\x18\x94\xcf\x41\x0a\x19\x94\xcf\xc7\x63\x45\x0f\xa2\x80\x62\x42\xfc\x0e\x0c\x89\x32\xe8\xbd\x3c\x9e\x32\xcf\xc1\x73\xb0\x4c\x85\x83\x48\x9b\xb0\x0f\x00\xd1\x93\xaa\x5b\xb4\x7c\x3b\x8b\x7b\x25\xfa\xc5\x61\xaa\xad\x25\x77\x02\x87\x7d\x9a\x8d\x98\x4c\x29\x89\x9c\xdd\x0a\xb8\xe8\x18\x1f\xc2\x13\xad\x42\x10\x1c\x08\x6b\x59\xa9\x58\x4f\xd8\xbb\x4f\x3c\xca\xa9\x16\xd8\x52\x2c\xa7\x25\x80\x85\x16\x7d\xb2\x66\xb1\x5f\x32\xc4\xef\x23\xd2\xda\xe0\x86\xaa\x9b\xa1\x53\x9e\xad\x7e\xd9\xa6\x5d\x43\x58\x4c\x0d\x77\x29\x15\x91\xd0\x9a\x67\x9b\x20\x01\x65\xe5\x3e\xea\x30\x22\x7c\xf4\x9f\x95\x8a\x9f\x69\xbb\x74\x3e\x40\x42\xd5\x61\xb1\x72\x92\x24\x6c\xa0\x97\xba\xfd\xbd\x9c\x13\x84\x9b\xf5\x4d\xb0\xf3\xbc\x1c\x6a\x9e\xf1\x54\xe3\x9b\xd0\x99\x76\x95\x11\xdb\x3e\x8d\xd9\x32\x4d\xab\xb5\x05\x04\x6d\x07\x0c\xb4\xb8\x7d\xe4\x2d\x3e\xbd\xca\x50\x7e\xe8\xce\x25\xfb\xc1\x8b\xc1\xaa\x6f\x81\xdb\xa0\xbd\xdd\x38\xbb\xc7\xb7\x35\x6a\x53\x3b\x5c\xfa\xed\xa0\x94\xad\x2a\x48\x5f\x8c\xca\x4e\x77\xe9\x99\x45\x4d\x6c\x47\x45\x0f\x41\x50\x60\xc7\x21\x1f\x6f\xc1\xd3\x38\x11\x56\x42\x25\xd5\xa8\x96\xed\xe7\x27\xe9\x55\x92\xf3\xf6\xcc\xc3\xeb\x71\x4e\xae\x5c\x80\x99\x4d\xe8\xb2\xf8\x83\x35\x22\x6a\x64\x93\xdd\xc7\xa1\xab\xd4\xbd\x1f\xcd\xea\xe6\x17\x5b\x85\x81\x1a\x87\xf0\x66\xd6\xc6\x23\x76\xe7\xe1\xee\xe4\xd4\xe7\xdb\xb4\x13\x5d\xcc\x7e\x9f\x4b\x54\x55\xfe\x3b\xaf\x11\x2a\xee\xf6\x22\x39\x35\xfe\x00\x37\xe8\x5d\x96\xa9\xda\x25\xda\x7d\xa3\xb1\x9b\x6d\xbb\x7b\x05\xaa\x99\xce\x99\x30\x4d\x99\x48\x23\x40\xb9\x34\x04\x97\x50\x15\xab\xe0\x9e\x50\x4b\x93\xa7\x9b\x80\x7e\x43\x4a\x3c\x90\x6b\x64\xc5\xfd\x4c\x14\xbb\x1a\x26\x46\xb5\xe3\xd2\xa5\x95\x9c\x07\xf4\xa5\x44\xdc\xd3\x45\x64\x18\xec\xac\x48\x92\x8d\x27\xd9\x3c\xd0\x8c\xf6\x08\x7a\x75\x47\xe9\xfb\x16\x9d\xe0\x5e\xe3\x73\x7e\x5c\x21\xb6\x1d\xad\x19\x4d\x77\xe4\xe7\xba\x06\x62\x05\x15\x85\x08\xd1\xbf\xaa\x89\xd3\x35\xd4\x58\x20\x26\x16\x5c\xc1\x21\x4f\xe6\xca\x68\x76\xda\x5c\xa0\x34\x67\xff\xc6\x65\xfe\x8d\xca\xce\x9c\x91\x0b\xf1\x24\x1d\xee\xe5\xe3\xed\xdf\xb6\x40\x22\xb4\xc4\x3d\xa1\x4b\xdd\x60\x1a\xbc\xeb\xa5\xbe\x67\x6b\xa3\xbb\xf0\x07\xa3\xfc\xd5\xed\x68\x26\xf7\xd0\xaa\x74\xd6\xf1\x74\x0b\xa5\xb4\x04\xc6\xad\x41\x0f\x7a\xbf\x34\x72\xfe\xbc\x4b\xb4\xb8\xcc\xdd\xb6\xc9\xc4\xae\x78\xeb\x40\xca\xdb\xf1\xb6\xb2\x29\xb4\xbf\x64\xa2\x21\x5c\xaf\x44\xcd\xe7\x22\x1e\x31\xa3\x77\x39\x6e\x9e\x2a\x27\xf7\x33\x2d\x52\x2d\x73\xb9\x0e\x74\x94\x7d\x32\xca\x65\x5d\x86\xba\x83\x2d\xe3\x4a\x56\x13\x53\xaa\xf7\x40\x2e\x85\xb7\x52\xb7\x5c\xfb\xab\xb5\xf5\x10\xee\x7b\xa8\x42\x18\x8d\xae\xc3\x15\xb4\x26\xeb\x19\xe6\xb5\x3b\x0b\x59\x22\xc1\xa8\x15\x62\x65\x78\xb0\x81\x3d\x8e\x58\xd4\x03\xc3\xf9\x7b\xfe\x49\x2e\x8b\x25\x4b\x0b\x50\xaa\xd5\x8c\x15\xa9\xfc\x5b\x51\xaa\xe0\x4b\x9e\xf2\x79\x88\x7a\xe1\xcb\xe6\xa4\x85\x17\x3a\x04\x34\x3b\x0b\x04\x45\xa9\x11\x05\xd6\x49\xc1\x88\x33\x07\xb0\xda\xe5\x5b\x88\x72\xee\x2a\x88\x23\x2a\x1f\x75\x1c\x89\x11\x9c\xcc\xfc\x56\x46\x84\xc7\x0c\x29\xf7\x59\x91\x08\xc6\x57\xab\x44\x5a\xd0\xed\x70\xfc\xee\xfb\x80\x56\x11\x33\xbe\x54\xe6\xfc\x17\x49\x2e\x57\x89\xc0\x12\xb8\x04\x0a\xe6\x00\x24\x08\x73\xcc\xe7\x70\x90\x64\x6e\xdd\xed\x00\x97\x46\xef\xb8\xac\x8f\x72\xfd\x5c\x30\x2a\xc1\x1d\xda\xa9\x15\x29\x44\x1c\xd6\x20\x19\x0e\x55\x33\x77\xe7\x93\x8b\x05\x3b\x9f\x62\x21\xbf\xde\x70\x78\x41\xb9\x1e\x0f\x10\xef\x9c\x10\x32\x00\x0d\xcf\x50\x3b\x8b\x88\x47\x9f\xe8\x01\x8a\x47\x18\x0b\x21\x3e\x2a\x0f\xb0\x7b\xf2\x0a\x4c\x1e\x8e\x4d\xfb\xe5\x1d\x6a\x36\x6e\xc7\x35\x09\x22\x61\xa8\x59\x38\x78\xb1\x86\x18\x93\xc1\xbb\x33\xd4\x2c\x1c\x6a\x16\x3e\x76\xb0\x4e\x45\x20\x18\x0a\x17\xf6\x2e\x5c\xb8\x7f\x21\xe5\xca\x9a\x0f\x25\x0c\x7f\x5b\x2c\xf8\xe9\x95\x30\xac\x6a\x05\xad\xa6\xc2\x21\x7c\xe4\x37\x24\x60\x0c\xe1\x23\x4f\xad\x8e\xe1\xc1\x58\xce\x50\xd1\x70\xa8\x68\x38\x54\x34\x1c\x2a\x1a\x0e\x15\x0d\x87\x8a\x86\x43\x45\xc3\xa1\xa2\xe1\x50\xd1\x70\xa8\x68\x38\x54\x34\x1c\x2a\x1a\x0e\x15\x0d\x87\x8a\x86\x5e\xc8\xc2\x50\xd1\x70\xa8\x68\xf8\x59\x57\x34\x7c\x9c\x9a\x01\xfb\x47\x6d\x74\xd4\x25\x7c\xfb\xee\xe2\xc3\xbb\x37\x67\x57\xef\xde\xb2\x31\x0a\xa5\x60\x86\x72\x65\xee\x3c\xe8\x7f\x69\xae\xf3\x2a\x13\x91\x4d\x32\xa6\xaf\x9d\xac\x4f\x4f\xa8\xcd\x84\x5d\x0a\x3c\xbf\x99\x48\x04\xd7\xc2\xa8\x1a\xa4\x15\x56\x0f\x82\x57\x10\x6f\xa8\x89\x38\xd4\x44\x1c\x6a\x22\x7e\xd6\x1e\xac\xc1\xc7\xf3\xb9\xf8\x78\x7e\x45\x35\x11\x03\x26\x38\x14\x46\xdc\xa1\x30\xe2\x01\xdc\x46\xbf\x9d\x12\x89\x38\xe5\xa7\x52\x27\x71\xa8\x89\x38\xd4\x44\x1c\x6a\x22\x0e\x35\x11\x87\x9a\x88\x43\x4d\xc4\xa1\x26\x62\x0f\x21\x65\x28\x8c\xf8\xdb\x51\x43\x9f\x5a\x61\xc4\xd0\x4c\x37\x04\x51\x0e\x0a\xf6\x10\x44\xf9\xe0\x7a\xf0\xfd\x87\x50\x0e\x75\x12\x9f\x78\x9d\xc4\x26\xab\x45\x4f\x6a\x1c\xfc\xf4\xf9\x15\x4b\xc4\x95\x19\x2a\x26\x0e\x15\x13\xf3\xa1\x62\xe2\x50\x31\x71\xd0\x44\x06\x87\xd8\x20\xaf\x0f\x15\x13\x87\x8a\x89\x43\xc5\xc4\xa1\x62\xe2\x50\x31\x71\xa8\x98\xf8\x64\x4a\x58\xdd\xa3\x09\x63\xa8\x9d\xf8\x1b\x96\x54\x9f\x68\xed\xc4\x06\xc3\xc4\x60\x3f\x1f\xe4\xf1\xc1\x7e\xfe\x38\xdc\xe7\x9e\x8d\xe8\x43\x29\xc5\x81\xcd\x0d\x06\x99\x81\x01\x0c\xa5\x14\x77\x08\x46\xfd\xec\xeb\x29\xb6\x4c\x76\x28\xaa\x88\xcf\x9f\x5c\x51\xc5\x43\x4b\x01\x43\x79\xc5\xdf\x32\xc7\x7e\xba\xe5\x15\x5b\x64\xd6\x41\x3f\x1d\xc4\x93\x41\x3f\x7d\x3c\xce\xf4\xc0\x3a\xea\x50\x6d\x11\x67\x3d\x54\x5b\x1c\xaa\x2d\x7e\xbe\xd5\x16\xb7\x28\x5c\x43\xc9\xc5\xb2\x93\xa1\xe4\xe2\xee\x9c\x63\xab\x80\xf0\x99\xd6\x5d\xdc\xaa\xd2\x7f\x16\xc5\x17\xfd\x19\x0e\x15\x18\x87\x0a\x8c\x8c\x35\x7c\x6c\xa8\xc0\xf8\x2b\xac\xc0\x78\xe8\x9b\xfd\x9b\x2e\xc3\x58\x5f\xcc\xa1\x16\xe3\x50\x8b\xf1\xd0\x12\xfb\x50\x90\xf1\xb3\x2e\xc8\x28\x93\x5f\x75\x19\x46\x43\x92\x21\x15\x48\x8f\xcd\x75\x02\x8d\xbb\xbc\x5c\x41\x03\x73\xcb\xde\x14\x3a\x57\x4b\x7b\x40\xdf\x98\xa9\xa5\x6f\xdd\x55\xdd\x96\x7c\xb8\xf5\x45\x0f\xf6\x1b\x3c\x27\xc5\x32\xc5\xf3\x0d\xe3\x01\x50\x3c\xb6\xca\x24\x56\x0c\xe8\x91\x6b\x18\x7c\x7b\x6b\xbe\x61\xf9\x27\x5e\xb6\x45\xb1\xe4\x46\x4e\xe1\x31\xc4\x80\xfa\xbf\x5b\xbf\x09\x8e\x6f\x0f\x8a\xe7\x76\x76\xdb\x88\xb0\x11\x61\xb7\xaa\x15\xca\x73\xec\xfd\x4a\xa4\x67\x17\xe7\x18\x9a\x5c\xd2\x46\xb2\xe5\x94\x83\x82\xf3\xff\xcc\xa8\xc3\xcf\x98\xd7\x13\x5c\x03\x87\xa6\xb2\xca\xe4\x92\x67\x1b\x26\x63\xc3\xc1\x67\x12\x4a\x2d\xc0\x9a\xe7\x8a\x71\xad\xc1\x87\x95\x92\xc5\x5d\xdb\x66\x00\xcc\x4b\xed\x48\xe9\x71\x24\x09\x00\xb6\x00\x99\xd1\xb3\x19\x2f\x8a\x29\x20\x78\xbc\x3f\x3b\x3f\xa1\xf1\x8f\x03\x27\xf0\xc9\x34\x51\xd3\x93\x25\xd7\xb9\xc8\x4e\xc8\x4e\xaa\x4f\x5e\x4e\x5e\x4c\x96\xf1\x17\x46\xc0\x1d\x83\x61\x1d\xa1\x29\x08\xe6\x7f\xf7\x55\xff\x77\xad\xd2\x0b\x9e\x2f\x3a\xd6\xdd\x36\x23\x9a\x0b\xe8\xa1\xec\x7f\x5c\xbe\xff\x81\xad\xcc\xd3\x63\x10\x62\x50\xa8\xcd\x32\xbe\x31\x34\x07\x26\xf1\xbc\xc4\x83\x15\x6b\x9e\x14\x20\xfc\xf2\x39\x97\xa9\x91\xbb\xa0\x04\x07\x1c\x7d\xcf\x1d\xa2\xd8\x2a\x53\x71\x11\x21\x3b\x42\x17\x4a\x75\x23\xf7\x30\x58\x74\x1b\x2b\xc0\x4c\xd2\x74\xcc\xe1\x07\x6b\x17\xdc\x7b\x04\xab\x4c\xaa\xac\x1b\xf7\xda\x36\xa3\x33\x4e\xa4\x8c\x4e\x35\x49\x33\x99\x48\x38\xca\x18\x4b\x43\x50\x79\x1a\x89\xca\xfd\x03\xb1\x93\x13\x3b\x00\x70\x5c\x3d\x61\xdf\xa9\x5b\x91\x11\xed\xa5\x88\xf8\x92\x6d\x2c\xe4\x1c\x8a\x8b\xd2\xe7\x27\x0c\xa9\x10\xd9\x17\x49\xfc\x51\x4b\x99\x13\x40\x2f\xf0\x59\x11\x33\x44\xaf\xd7\x91\x48\x79\x26\x95\x1f\x97\x8e\xb8\x48\xdc\x75\xc9\xe6\x10\x7f\x0f\x0c\x30\x65\x2f\x0e\x43\xd8\x7d\x91\x09\x1b\x6d\x05\xfd\x31\x04\x02\x17\xb6\x37\xcd\x78\x42\xf7\xb6\xa7\x12\x50\x85\x6d\x81\xfe\x9a\xee\xfc\x9e\x4a\xc2\x1d\xb9\x62\xba\xae\x39\xec\xbb\xf8\xa1\x7d\xc5\xcb\x69\x5e\xa8\x5b\x42\x72\x07\xd7\x7b\x89\xc2\x63\x97\x9c\xea\x1d\x7d\xe8\xc1\x11\xbd\x84\xef\x6d\xa7\xc7\x36\xf3\xf8\xb1\x19\x45\x85\x82\xb9\x9b\x65\xc6\x05\x05\x7e\xa0\xe6\xa4\x1b\xd7\x84\x9d\x61\xc2\xaf\x2d\xd9\xc2\x33\xf1\x9a\x8d\xd9\xcd\x0f\x2a\x15\x37\xaf\x81\x47\xd9\xb7\x33\x54\x2c\xa1\x8a\x0c\x55\xbe\x71\xf1\x0e\x58\x60\xc8\x29\x20\xb9\x02\xec\xe7\x74\x43\x58\xd8\x24\x83\x51\xc9\xe6\x70\x88\x13\xf3\xb9\x7f\x13\xd3\x85\x52\x1f\x6f\x5e\x33\x73\x0d\xd0\xdb\x8c\x19\x5c\x58\x03\x49\x81\x02\x67\x3d\x55\xb7\xd8\x1a\x60\x97\x2c\x12\xac\xdd\x95\x09\x3b\x2b\xeb\xa8\x78\x6a\xcf\x75\xca\x40\x08\x14\x22\xa6\x42\x0d\xe8\xeb\x5e\x79\xea\x95\x2b\xc5\x62\xd6\x74\x02\xb6\xd4\x6c\x2d\x7e\x4c\x3f\xa6\xea\x36\xfd\x06\xdd\x2a\x28\xd1\x52\x41\x15\x33\x6b\x68\xeb\x7d\xdf\x1b\x5c\xd5\xf9\xd5\x9b\x3c\x53\x1f\xbb\xea\x5c\x3b\xde\x05\x5a\x74\xef\x12\x6c\x53\xca\xec\xbc\xea\xa7\xde\xba\xc9\xca\x45\xb0\x3b\x34\x61\xae\x06\x17\x80\xd7\xdf\xd8\x53\x7b\xe3\xd5\x40\x71\x9b\xbf\x4f\x08\x94\xbd\x2c\x8f\x41\x3d\xf6\x90\xa6\x3d\x39\x3a\x70\xec\x7a\x01\x18\x81\xb1\x1e\xc1\xcd\x5c\xb5\x73\x73\x39\x68\x90\x8c\x9d\xe7\x1a\xa5\x01\x8b\xb3\x68\xb1\xc9\x51\x98\xbc\x2e\x5e\xbc\x78\x15\x4d\xe0\x78\x42\x51\x18\xf3\xb7\x98\xf8\x8f\xc1\x7f\x4e\xcf\x87\xe8\xa6\xa7\x1c\xdd\x34\x04\xfc\x7c\x2e\x01\x3f\x5e\x3c\x72\xe3\x27\xf7\x89\xf8\x3d\x10\x15\xeb\x07\x8a\x5c\xa1\xff\x50\x0b\xc3\x55\xb7\xf1\x55\x4d\xb8\x91\x7c\xb5\x12\xbc\x45\x46\xde\x2f\xe2\xf7\x50\x93\xed\x8e\x0b\x26\x47\x61\xe8\x04\xe7\x51\x5e\xf0\x04\x9c\x88\x25\x28\x6e\x1b\x5b\xd8\x9d\x9f\x3d\x70\x48\x6f\xb8\x5c\x5b\xe1\xb1\xda\xe6\xd8\x1e\x42\xd5\x3f\x7a\xea\x40\x7b\xfa\x46\xa5\xf1\xbe\xfc\xd8\xbd\x5b\xc6\xd4\x90\x42\x54\x6a\xdb\x45\x06\x42\x7d\xe4\x9a\x5a\x0e\xb6\x52\x7d\x12\x7a\x12\xae\xf3\xab\x8c\x83\x4d\x5e\xa5\x57\x0f\x6c\x54\xaf\x7f\x1d\x1d\x4e\xb9\x35\xb6\x97\xd3\xca\x5d\x33\x23\x2a\x1b\x92\xaf\x52\xe7\x37\x07\x59\x1c\xc4\xfa\x16\x67\x6f\x3f\xcf\x08\xb5\xf2\x6c\x1c\x63\x67\xe3\x70\xbf\xe1\xcd\x2b\x3d\x28\x9a\xb0\xcf\x70\xe0\x6e\x94\x7b\xa5\xfb\x73\xdd\x29\xc8\x60\x23\x1c\x22\x5a\xa4\x47\x66\x25\xc6\xb7\x2a\x8b\x47\x25\x0f\x63\xd4\xae\xb4\xca\xd0\x42\x3e\xd3\x07\x18\x69\x33\x95\x6c\x21\x55\xd5\x08\x87\x60\x38\xc0\x8c\x0d\x27\xbe\x82\x22\x66\xdf\xa0\x0e\x43\xea\xcd\x3e\x6e\xa1\xfe\x36\x8e\x2a\x56\x83\x37\xa6\x2b\x30\x40\xc8\x34\x4a\x8a\x58\xb0\x77\x3a\xe7\x54\x1d\x6b\xc4\xa0\x20\xe1\x59\x14\x89\x55\x4e\xfe\x86\x2b\xc0\xd8\xe5\xa1\x71\x79\xfb\x80\x7b\x52\xde\xaa\x5d\x82\x96\xfd\x71\xf5\x8a\x2e\x34\xda\x2d\xaf\x85\xb8\x7c\xad\x5a\xc8\x90\xdc\xf0\x6b\x10\xff\xfb\x23\xd5\x62\x49\xb4\x34\x96\x6b\x19\x1b\x39\xa5\x6b\xe3\x0f\x92\xec\x70\x28\x2d\xda\xfb\xea\x90\x12\xf1\x9b\xd5\x90\x5c\x4a\xc4\xce\x34\xfc\xc1\xf3\x0e\xee\x2e\x3e\x77\x64\x21\x3c\xb8\x08\x0d\x2c\x77\x0f\x96\x03\xef\x35\xc4\x0b\x03\x5d\x86\xd1\x50\x85\xc7\x2e\x35\xa2\x3d\x10\x82\xe7\x62\xae\xb2\x6e\x48\xca\xb2\x61\xc8\x03\x61\xd7\x44\xec\xeb\xa7\xe0\x5a\xa9\xf8\xfc\xa6\x22\x51\xe9\x1c\xc6\x8d\xa5\x0f\x9e\xf1\x24\x79\xf6\xbc\x8c\x62\x2e\x6b\x90\xca\x14\x2c\x72\xb1\xd4\x91\x5a\x8b\x6c\xc3\x62\x15\x15\x90\x43\x86\x0c\x07\xe2\x1e\xa6\x1b\xe7\x9e\x85\xe0\x38\x84\xd8\x97\xe9\x5a\x11\x66\x25\x83\xe2\xde\x37\xe6\x2c\x46\x79\x82\x75\x15\x93\xe4\xe6\xc1\xd1\xc9\x7a\x50\xd0\x8f\x44\x41\x41\xc8\x14\x99\x2d\xe8\x60\x6b\x79\xfa\xda\xbf\xad\x5a\x90\xaa\x6c\x09\x40\x59\xa5\xb8\x0c\x56\x73\x99\xce\x8b\x84\x67\x13\x3a\x11\xe5\xfa\x03\xdc\x6f\x1a\x09\x42\x70\x73\x85\x16\x90\x58\x53\x89\xbb\x1b\xf3\xc9\x1b\xc6\x73\x24\x78\xc2\x6e\x05\x46\x16\xee\x4e\xc6\xcc\x19\xf9\x6b\xf7\xfc\x6d\xb3\x8e\x35\x80\x13\xe7\x5c\x0c\xe5\x8a\xf8\x90\x5e\xd7\x47\x38\x07\x43\x00\xae\x8f\xf6\x71\xe1\x26\x45\xc6\x93\x2e\x07\x2e\x34\xb2\xc3\xa5\xbf\xfc\x38\x7e\xdf\xd5\x0d\xd7\x14\xe3\x12\x1a\xdd\x48\xf0\x7b\x8c\xc5\x41\xd8\x8d\x61\x25\xfa\x04\xcd\xc9\x9e\x21\x99\x9e\x10\x15\xa3\x67\x93\xc9\x84\x9e\xe3\x10\xf0\xf1\xcd\x84\x7d\x5f\xe8\x9c\x2d\x79\x4e\x80\x1b\x41\xa5\xa1\x36\xc9\xe5\xd8\xb3\x73\xb3\x1b\xec\x16\x48\xcd\xc4\xef\x7c\x52\x1b\xd9\xcd\x73\xfa\xde\x54\x40\x66\x4f\xa2\x6e\x45\x16\xf1\xd6\x9a\xb8\x5b\x95\xb2\x85\xca\xf2\x2a\xad\x6c\xda\x80\xb2\x21\x2e\xa1\xf9\x93\x08\xa3\x55\x17\xed\x22\x8f\x9c\xb5\xff\xde\xe8\x0a\xae\x09\x0c\xa2\x74\x09\xdc\xc0\x55\x5d\xf6\x58\x99\xfb\xa7\x41\x96\x2c\x74\xad\x2a\x35\x73\xf7\xd0\xfe\xdd\x74\xb4\xb7\x4c\x2f\xb8\x91\xee\x71\x4c\xe4\xe5\xd0\xc8\x71\x78\x61\xab\x14\xf7\x71\x35\xcc\x2e\x20\xfa\x2d\xaf\x55\x2c\xc1\xbc\x62\x07\x96\x59\x40\x5c\xc8\x10\xdc\x23\xde\xb1\xc1\x25\xcf\xee\x5d\x0b\xe9\xe9\x04\x8d\x7c\xef\x3f\xea\xb6\xde\x23\x2d\x72\xa3\x44\x94\x57\xfb\xcd\x87\xb7\x2d\x46\x32\x2b\x42\x6e\x3b\xe5\x58\x7c\x97\x8e\xb8\x21\x08\xf8\xc0\xe1\x71\x60\x82\x61\xcd\x9d\x7e\x47\xfa\x3d\x99\x4c\x1e\x9e\x30\xef\x17\x43\xf5\x58\xbe\x03\x24\xfc\xdb\xce\x09\x52\x78\x0c\xcd\xd8\x84\x8c\xd6\x10\x70\x10\x16\x42\x2e\x50\xdd\xc6\xb6\xb8\xad\x86\x98\x84\xce\x20\xae\xa6\x38\x06\x5f\x54\xe7\xb9\xab\x42\x8c\x3f\x62\x9c\x1c\xa2\x56\xe5\x1e\xd2\x15\x6d\xb0\x0d\x57\x22\x43\x8e\x8f\xfe\x29\xe8\x90\x81\xbb\x9f\x52\x32\x09\x45\xdf\xc6\x5c\x7b\x61\x23\x23\x58\x89\x51\x99\xd2\x0e\x8b\x63\x46\x69\x47\x42\x55\xd0\xcb\x06\x99\xa1\xe1\xb7\x7c\xa3\xcb\x8f\x55\xf3\x55\xbd\xc2\xd4\x32\x65\x33\xbe\x56\x10\xdd\x4b\xb7\x93\xdd\x7c\x1a\xdb\x57\xc7\x05\xae\xc9\x18\xbf\x76\x03\x46\xa4\xac\x00\x71\xf2\x06\x5c\xe4\x36\x50\xe6\xe7\xdf\xfd\x32\xc1\xe9\x4e\x14\xce\xfe\xa7\x57\x97\xf0\xf7\x4d\x18\x95\x55\xaa\x94\xae\x38\x79\xce\xf5\x47\x7d\xc2\x21\x1f\xc7\x57\x39\xf9\x4a\x9e\xe0\xb6\x8f\xdd\x45\xad\x3e\x18\xfb\x07\xf9\x8b\x55\x56\xa4\x32\x9d\x83\x9a\x5a\x68\x3b\x0d\xf3\x24\x9c\x48\x8f\x78\xae\xad\x09\x4c\x3a\x52\x9d\xa6\x5d\x68\xe3\x1d\x23\xbf\x32\x41\x0b\x6d\x82\xe0\x70\x2c\x47\x37\x66\x0a\xb9\x35\x84\xec\x8d\xa1\xb3\xb8\x29\x1a\x89\xdd\xbc\xc1\x37\x6e\xe0\x70\xdc\xfc\xe0\x20\xd4\x7a\xf3\x67\x6f\x62\x76\x3b\x3b\xe6\xe6\xc2\xb6\x2a\x58\x21\x46\x7a\x30\x07\xdf\x0f\xeb\xda\x4a\x8b\xad\x21\x34\x75\x12\x20\xc8\x6e\x58\x23\x72\x55\x50\x29\x70\x95\xc5\x90\x6c\x4b\xf7\x8e\xae\x90\xfb\x88\x79\xcd\x8c\xa0\x41\x32\x74\x75\xbd\x1d\x0b\x42\xcb\x96\xd4\xec\xfa\xc8\x1c\xb5\xb1\x11\x02\xaf\x8f\xa0\x6e\x1d\x22\x62\x1b\x29\x91\x4f\xd5\x1a\x10\xe9\xc2\x56\x95\x5e\xf4\xc8\x23\x04\x30\x46\x11\xb3\x44\x7c\x92\x91\x9a\x67\x7c\xb5\x40\x04\xe4\x09\xbb\x3e\xfa\x6b\xbd\x0f\xcd\x74\xce\xb3\x9c\xe2\x70\xd9\xf5\xd1\xda\x8c\x02\xc2\xef\x39\x54\xb6\xa4\x9d\x86\xfc\x78\x0a\xc1\x3f\x36\x33\x59\xf2\x7f\x57\x99\xed\xe5\x39\xbd\x62\xa3\xab\x93\x0d\x39\x38\x60\x96\xd7\x47\x90\x9a\x7e\x7d\x64\x0e\xd3\xf5\xd1\x54\xe4\xe6\xdf\xe6\x98\x90\x87\x2a\xec\x58\xa6\x5e\xc7\xc0\x27\x35\xd6\x39\xd7\x98\x08\x30\x93\x99\x86\x8c\xa9\x6f\xcf\x50\x52\x16\xcc\x74\x69\xff\x0d\xdf\x62\xc7\x58\xd4\xe2\xdb\x33\x34\x2e\xb8\x80\x27\x33\xcd\xd4\xc8\xe1\xb3\x99\xfc\xc4\x34\xc4\xbf\x69\x7c\x5f\x65\xf8\xee\x73\x94\xde\x61\x42\xd3\x0d\x45\xc5\x62\x3e\x8f\x37\x65\x9a\x71\x30\x5a\x2c\x6b\x81\xd5\x3f\xed\x68\xed\x99\xb4\xeb\xfd\x9a\xad\x4f\x5f\x8c\xd8\xfa\xe5\x88\xad\x4f\xcd\x7f\x21\xb5\x05\xfe\x7a\x61\xfe\xf5\x6a\xc4\xd6\xaf\x20\xdb\xc5\x3c\x7a\x09\x23\xc2\x76\xf0\xcf\x97\x23\x36\x53\xea\x14\xff\xb7\x1a\x0f\xfb\xb8\x76\x61\xeb\x76\xd8\x59\xb1\xe8\x29\x98\xa3\x2c\x56\x93\x2d\x6a\xf4\xb0\x89\x8e\x3c\xb2\xf4\xde\x95\x09\xbd\xfd\xc5\x8a\xbd\xae\x5f\x4c\x43\xb7\xa3\x88\x1c\x76\x8d\xea\xf1\x93\x91\xd0\x82\x51\x32\x5b\x82\x97\x4c\x96\xae\xae\x32\x04\x7b\x40\x36\xa5\xb9\xa7\x96\x76\xa3\x3d\xd3\x23\xc2\x57\x0b\xb1\xb1\x61\xe9\x5e\x09\xce\x05\x4f\xbd\x5e\x25\xe6\xce\xb4\x48\x76\xce\x23\xda\x69\xde\x74\x0d\xdd\xf6\xd1\xce\x19\xa6\xbf\xe2\x59\x2e\x23\xd0\x85\xb9\xf9\x5a\x6e\x43\x8f\x7b\x85\x6f\x3c\xee\x3d\x2f\xc3\x37\xee\x64\x42\xc8\x55\x26\xe2\x9f\xfa\x31\xfa\xb0\x31\xd0\x54\x84\x7d\xf1\x39\x7c\x38\x5e\x3a\x1e\xb7\x86\x0b\x08\xa8\x0e\x4d\xc0\x23\x46\x0e\xcd\x78\xf4\x91\xdc\x48\x5a\x78\x1c\xdc\x30\x3b\xc3\x2e\x96\x0e\x0b\x05\x52\x55\x20\x71\x0a\x86\x50\xb6\x95\x29\xd4\x9b\x42\x3d\xce\xc9\xb4\xcb\x02\x8b\x83\x6b\x15\xf4\x02\x2e\x1f\x95\x24\x84\xb6\x63\x56\x52\x2f\x82\x16\x65\xb8\x86\xe3\x55\xc7\x22\xd5\x98\x70\x9a\x2a\xa6\x92\x38\x80\xa9\x4d\xc4\x0c\x52\x8a\x48\x5a\xf7\x79\x56\x26\x96\x6a\x2d\xac\x36\xe3\x8a\x6d\xb8\x91\x93\xeb\x8b\x8a\xe2\x3a\xe1\x07\x5d\x64\xe4\xe2\xc2\x3e\x28\xaa\x24\x14\xb1\x6f\x8c\xb4\x81\x60\xfe\x1b\xac\x14\x87\xfa\x86\xed\xef\x41\x6c\x51\x35\x96\xf1\xa0\xf4\xbc\xee\x60\xef\x4b\xd0\x7f\xaa\xe5\x24\x94\xb2\x89\x39\x65\x60\x89\xe8\x26\xdd\x1e\x2c\x01\x78\xd0\x29\xef\xa6\xe3\x16\xb5\xbd\xe6\xe7\x0a\x96\x41\xf9\x11\xfd\xe8\x10\x06\x64\xca\xae\xe0\x70\xab\x22\x5f\x15\x79\xa7\x3e\x05\x35\xc1\x45\x1a\x89\x13\x28\x03\x0e\x7a\x14\xf9\x35\x0d\x4d\xd7\x27\x5f\x64\x22\x12\x12\xf4\x22\xa7\x58\x8d\xb9\x1e\xe7\x58\xac\xdd\x57\x8e\x8c\xfc\x9c\x2a\x37\x26\x90\x06\xad\xba\x3b\x82\xec\xb2\x74\x9e\xd8\x44\x2b\x43\xf2\x57\x09\xdf\x38\x1c\x82\x79\x19\xd0\x52\xd7\x74\xa0\x98\xc5\xe3\xd3\xd7\x5a\xe6\xe7\x5d\x88\x6b\xa9\x5a\x77\x66\x6b\x7a\x3a\x78\x29\x64\x48\xed\x4e\x65\xcb\xc2\x19\xf5\x26\xd0\xe1\xa9\x48\x37\x25\x0b\xe4\x10\xba\x64\x1a\x79\x3e\xf4\xb0\x63\xdc\x7c\xc1\x38\xbb\xe5\x19\xa4\xa9\x2d\x04\x27\x05\x8b\x9c\x36\x86\x6c\x67\x42\xaf\x54\x5a\x35\x02\x43\x62\xc7\x3e\x2a\xb3\x1d\xb0\x54\xe9\xbf\xe1\x67\x7b\xae\x50\xf9\x02\x33\xd2\x44\xe6\x6a\xa1\xc7\x38\x2c\x37\x0b\x77\x5f\x72\x85\xbe\x2e\xb4\xfe\x4f\xd8\xf7\x7c\x13\x60\x3e\x60\xaa\x45\xb9\x82\x90\x6c\x61\x16\x0e\x79\x4a\xb5\xdf\x96\xfd\x09\x0d\x29\x86\x09\x64\x22\x52\xcb\xa5\x48\x63\x38\xdb\x76\x03\x53\x71\x6b\x98\x41\xa8\xb4\x9a\x1f\xc5\xdf\x0a\x9e\x18\xe5\xc7\xa6\xda\xe9\x9c\x4f\x65\x22\xf3\xcd\xc8\xd6\x62\x02\x2a\xbf\x8f\xbf\x6e\x87\x0c\x4a\x5f\x3b\x36\xcf\xa8\xa6\xd4\x7f\xfd\xe7\xff\x59\x9f\xfe\xd7\x7f\xfe\xdf\x11\xfc\xeb\x25\x28\x46\xf0\xa7\xc8\xa3\xbe\x36\xd4\x60\xbd\x78\xbe\xb3\x4f\xec\xc6\xac\xc3\x0d\x76\x59\x6e\xd2\x1e\xde\x28\x30\x44\x3d\xa8\xa8\xfd\x13\x96\xde\xea\xb2\x97\x93\x85\x30\xac\xfe\x49\x0f\x41\x9a\x36\xb4\x78\xed\xfa\x1a\x31\xb2\x70\xa1\xd4\x41\x27\x95\x30\x13\x7a\x50\x8f\x36\x68\x69\x58\xe1\x2e\x51\x10\x77\x16\xb4\xfa\x59\xc2\xe7\x08\x63\x27\xd3\xf9\x49\x2c\x35\xfe\x2b\x1c\x02\x88\x30\xa8\x18\xd8\xc3\x2f\x39\x06\x0f\x9d\x5d\x9c\xb7\xc4\xd2\x6c\x37\xbb\xa1\xcc\xd5\x43\x66\xf5\xa2\x63\xab\xf7\xb6\xb4\xc6\xc2\x02\x57\x0d\xb1\xb5\x53\xed\x5b\x66\xaf\xc0\xb6\x61\x7d\x65\xc2\x83\x74\x0c\xec\x1c\xd4\xfe\xbf\x6f\x39\xae\xdb\xe7\x59\x4c\xb3\x06\x98\x8d\xfb\x3f\xb5\x97\xfe\x87\xb7\x9e\x5b\xaf\xa1\x33\xe3\xdf\x42\x6e\x96\xff\x4b\xd3\x91\x6c\xb3\x7d\x2e\xf8\x5a\xec\x91\xe1\x56\xcd\x9f\xa5\xb3\xdc\x70\x6a\x1e\xc3\x14\xe1\x2d\xe8\x65\xc4\x93\x6d\xf8\xa6\xdb\x5f\x74\xee\x34\x4a\x2a\xb4\x21\x43\x86\x5a\x98\x9f\xbd\x65\x47\x79\x36\xd4\xc9\x7a\x45\xdf\x4f\x45\x62\xab\xa5\xf6\x40\x19\xa8\xb5\x0f\xa2\x59\x4b\xb8\x01\xf2\x50\x80\x96\x5d\xc3\x0f\x00\x74\x15\x95\xa1\xac\x81\xd9\xa3\x38\xdd\x1b\x8c\x2f\x9e\x68\xfa\xc0\xcd\x84\xbd\x37\x2c\xdc\xf5\xab\xe1\xaa\xd9\x42\xdf\x21\x90\x01\x79\x41\xc0\x80\xea\xc5\x34\xe0\xcb\x30\x54\xf2\xf1\x4d\xf0\x2b\x37\x86\x0b\xdf\x40\xce\xdf\x4d\xd9\x9e\x24\xaa\x5b\x95\x7d\xc4\x6b\xfd\x17\x95\xc9\xbf\xab\x34\xe7\xc9\x85\x8a\xcf\x8a\x5c\xc1\xd2\x67\xbe\x26\x0a\x11\x8d\x16\x48\x46\x6a\x6f\x19\x9c\x83\xdd\x1a\x67\xf1\x85\x63\xa3\xf7\x71\x02\x9e\xfa\xc4\xec\x74\x4d\xa3\x22\xca\x2d\x22\x43\x89\xb8\xea\x87\xd4\xc0\x0e\x94\xaf\x48\x67\xdd\x9e\xa9\x6c\xd9\x18\x16\x79\x8f\xce\x97\x2f\x60\x31\xc6\xfe\x39\x44\xd3\xbb\x2b\x22\x8c\x01\x4a\x56\x32\xb0\x90\x03\x74\x46\x9a\xb8\xd5\x08\x43\x99\xaa\x27\x81\x3a\xa2\x77\x6e\x4e\xe0\xc3\x37\xc1\x0d\x00\x4b\xbe\x95\xe3\x28\xf0\x19\xab\x1e\xe3\x0a\xed\x23\x43\xac\x44\xf4\x41\xac\x12\x19\x71\xdd\xe3\x76\x54\x9b\x1f\xf8\x72\xac\x44\x34\xc9\xa8\xfb\xfb\xba\x1a\x78\x1b\x0e\xb4\x89\xad\xbb\x84\x52\x7b\x89\x3f\xa6\x52\xf6\xed\xbb\xab\xbd\xf3\x40\x76\xd9\xa2\xda\x0b\xf7\x42\xc1\xee\x7b\x9b\x90\x82\x1d\x6c\xa3\xaa\xa3\xde\xe3\xb6\x55\xbd\x23\x77\x0d\x0c\xaa\x5d\xbd\xed\xbb\xfe\xd8\x7c\x7e\x37\x9f\x43\xed\xcd\x2d\x9c\x1e\x7f\xef\x62\xf5\xac\x84\x73\x75\xf1\xf8\x25\xb6\x59\xc9\xf3\x9a\x0f\x78\xd8\x5b\x69\x5c\x18\xb1\xdf\x51\xfc\x9d\xe1\x42\x27\x2d\x63\x69\xb2\x58\xfc\x8e\x5d\xfc\x78\x55\x31\x47\x88\xc6\x1e\x72\xfe\x51\x34\xdc\x31\xdc\x37\x54\x79\xe4\x3c\x35\x6c\x0d\x41\x36\x28\xd9\x6e\x93\x2f\x0c\xd7\x13\x9f\x22\xb1\xca\x83\x95\xca\x79\xfa\x77\x8e\x03\x38\xb9\x78\x7f\x79\x75\x72\x71\x76\xf5\xe6\x2f\xb5\xb1\xd4\x8c\x53\xb5\x8f\xd4\x3a\x3d\x7a\xa4\xd3\xb5\xd7\xc1\xd2\x01\x61\xa3\x79\x40\x94\x71\x55\x76\xd4\x7b\x0a\x8f\xba\x22\xdc\xb2\x87\x54\x55\x50\xb2\xde\xae\x66\x9b\x79\x86\xde\xbc\xea\xa6\x93\x5e\x88\xd7\x8d\x37\x53\x3a\xa0\xf6\xc8\xb1\x00\x97\xe8\x86\x93\x14\x68\xd4\xe0\xf5\xe9\x0d\x91\x7e\x4a\xce\x7a\x32\x59\xdd\x75\xea\xb4\x73\x5a\x77\xf7\x6a\x11\x55\xf1\x96\x8b\x88\x07\xc1\xdd\xbf\x66\xa7\x93\xce\x9b\x67\xf1\xdc\x5c\x72\x50\xf3\x55\xbc\x71\x5f\xc3\x1b\x4e\xaa\xa5\x4d\x8a\x7b\xd9\xfd\xa1\xc6\x01\x6f\xa3\x2e\x8a\x82\x77\xc8\x65\xb9\x7d\x04\x8f\xec\x30\xf1\x8c\x4f\x7d\xa9\x45\xf9\x4a\x98\x14\x52\xda\x9e\xd8\x52\xe4\x0b\x15\xef\x4b\x21\x2a\x51\x61\xf7\x7c\xfe\x0d\x6f\xc3\x0f\x5d\x64\x6a\xb5\xfd\xbc\x57\x46\x66\x6d\xa2\x36\x88\x6f\xfd\xca\x1a\xe4\x72\x05\x76\xdd\xd0\x24\x07\x74\x94\xac\x72\x0f\xbf\xef\xef\x08\xf2\xe9\x2d\x05\xc0\x77\x6d\x7a\x63\x7b\xeb\x7e\xb5\x7e\x23\xc0\xfc\xf5\xe0\xa4\x02\x0e\x0f\xdf\x8f\x45\xec\x62\xee\xfb\x02\x02\x6f\x41\xb2\xec\x23\xde\x17\x59\x2d\x97\xe3\xd0\x75\x2a\xf6\x38\x63\x5b\x96\x1a\xc4\x2b\x1f\xc4\x28\xdd\xe0\xb1\x41\xc1\x0b\xc4\x6a\x1b\x64\x85\x20\x73\x60\x3f\xb7\xb0\xab\xaf\xd9\x54\xa9\x64\xc4\x64\x9a\x7f\xfd\xe5\x88\xcd\x12\xc5\xe1\x1f\x38\xd9\x11\xfb\xf9\x17\xf0\x24\xce\x78\x24\xfe\xe3\x9f\x23\xb6\xe4\xab\x9f\xf1\x27\xff\x39\x1c\xce\x54\x26\x93\x03\x4e\xd9\xbf\x56\xdb\x67\xef\xb5\x44\xa2\x62\x1e\x8e\xe9\x96\x61\x80\x9b\x39\x6a\x61\x35\xc5\xb7\x19\x9f\xe5\xec\x4b\x76\xbc\xc8\xf3\xd5\xeb\x93\x93\x7f\xd7\x2a\x1d\xdb\xc8\xd2\x6c\x7e\xf2\xbc\xc7\x51\x23\x62\xb2\xf3\x19\xfb\x97\x66\x47\x41\x9f\x57\x4b\xff\xed\x79\x53\x2e\xf2\xfd\x92\xb7\xf7\xd9\x9f\x95\x4a\xba\x06\xd6\x8a\xa4\xff\x98\xa3\x4b\x92\xf7\xb5\xad\x7a\x18\x2f\x70\xf5\x2c\xdf\xc5\xed\xcb\xd3\xcd\xe7\x30\x0d\xd2\xe1\x1f\xe0\x78\x6c\x65\xc8\xd6\x94\x00\x34\xc3\xfe\x51\x62\xcb\x16\xa9\x75\x21\x04\x41\xf9\xce\x4f\x4d\xf1\xbd\x1c\x83\x4b\xa9\xa6\x92\x67\x09\xa9\x85\x88\xd8\x97\x6c\xd3\x39\xcf\x45\xd0\xdb\x8e\xb8\x87\x2d\x82\xbf\xb7\x78\xfb\x95\xbb\x78\xec\x93\xb3\xbd\x26\xc4\xca\x88\x05\x69\xd4\x40\x5e\x9e\xc2\xec\xde\x67\x58\x6a\xe0\x2c\x3c\xfd\xfb\x4d\xf5\x4e\x82\x8c\x48\x8b\xe5\xe3\x91\x8a\x3b\xd1\x07\x8a\xb0\x7e\x08\xfa\xd0\xf2\xfd\x28\x29\xb4\x5c\x0b\x02\xf4\x6f\x5b\xfe\xad\xce\xd5\xb2\x13\x99\xde\xa1\x13\x27\x47\xdf\x37\x37\x6d\x16\xf1\x1b\x47\xb5\x3b\x2a\xbb\xa7\xe4\xd0\x73\x72\x90\x58\xd8\x23\x7a\x8c\xc2\x29\xaa\xc7\x36\xf4\xd2\x09\x70\x7e\x13\x52\x8c\x44\xfc\xfa\x3a\xbd\x4e\xc7\x6c\xaa\x55\x8a\x97\x49\xc6\xaf\x0d\x4d\xd6\x0e\x5b\x85\x9d\xbf\xa5\x82\x2a\x9c\xbd\xfc\xd2\x28\xdd\x19\x8f\x72\x91\x69\xb6\x10\x9f\xac\x2b\x6b\xcc\x8a\x4c\xbe\x36\x43\xfd\xf1\xc3\x39\xe3\x9a\xad\x78\x46\xd9\xbd\xdf\xaa\x84\xa7\x73\x96\x8a\xfc\xa4\xc8\x92\xc9\x85\xf9\xe1\x03\xaa\xfd\xa6\xed\x98\x89\x25\x97\x09\xbc\x0b\xff\x62\x3c\x8e\x33\xa1\x75\x6b\x2f\xa6\x11\x76\x73\x46\x2d\xc7\x6c\xa1\x34\xa4\x02\x9b\xb1\xa3\xf4\x5e\x81\xe3\x81\x7a\x0c\x29\x3b\x07\x3c\x1d\x91\xc3\x0b\x14\x47\xc3\xb5\x5f\xe5\xf0\xc3\x37\x6f\xd8\xe9\x8b\x57\x46\x84\xa7\x62\xca\xaf\x26\xa7\xec\xe7\x0f\xdf\xbc\x31\x4f\x7f\x99\xb0\x31\x93\xab\xf5\x97\x30\xde\xf3\x8b\xf5\x97\xec\xfc\xa2\x6d\xa4\x38\xc8\xf3\x0b\x7c\xe5\x6b\xfb\xca\xd7\xfd\x5e\x89\x64\x9c\x99\xe9\xbc\x39\x7f\xfb\x61\x7b\x73\x68\x31\x66\x4b\x1e\x99\xf6\xdf\x9f\xbd\xe9\x5a\x42\x7c\xcd\x34\x1c\xb3\xa2\x80\x1d\x4f\xd9\x8f\x3f\x9e\xbf\xa5\x90\x71\xd4\x33\x8b\xd5\x0a\x13\x89\xfd\xe5\xc1\xa8\xd9\xb9\xf8\xc4\x8e\xff\x24\x9f\xff\xef\x9f\x5f\x8c\xff\xc0\xc7\xb3\x5f\xfe\xe3\xf7\xff\x1c\xff\xc9\xfd\xf1\x65\xbf\x3f\x4e\x5f\xfe\xf3\x5f\x68\x04\xaf\xdc\x10\x5e\x1d\x70\x0c\xaf\xdc\x5f\xaf\xfa\x0c\xe2\x4b\x37\x88\x2f\x0f\x38\x88\x2f\xc3\x41\xfc\xfe\x0f\x7c\xfa\x4b\xf3\xb8\xbc\xa1\x7c\xe5\x86\xf2\xd5\x01\x87\xf2\xd5\xae\x43\x91\x7a\x9a\xe2\xb1\xbd\xfc\xf3\x0f\xa7\x2f\x98\xca\xf0\x5f\xaf\x6c\x46\x12\x5d\x7f\x48\xd1\xbf\x3e\x7a\xf1\xea\xe5\xe9\xbf\x7e\x75\xfa\xe2\xcb\x57\x36\x97\xe9\x0f\xff\xfa\xfb\xb1\x7b\x7a\x7a\x7d\x44\x7d\x9e\xbe\xf0\x7b\xed\xee\x8b\xde\x7a\x55\xbe\xd5\x32\x82\x86\xef\x45\x99\x88\x65\x1e\xf1\x0c\x08\x1b\xfe\xc5\xcc\x9f\xb6\x87\xc6\x95\xfc\xdf\xc7\x7f\x7a\x0d\x3b\x07\x6b\x71\xfc\xa7\xd7\xf8\xef\x57\xff\x7c\xfe\xa7\x7f\x7c\xf5\xf3\xe9\xf8\xab\x5f\xe8\xc7\x2f\xff\xf9\x8f\xaf\x8f\xff\xf4\xfa\xc5\xe9\xe9\x3f\x60\x79\xf1\xf9\x73\xf7\xea\x3f\x5e\xfd\xfc\xe5\xbf\xda\xc6\xaf\xfe\xf9\x8f\x57\xa6\xf1\xcf\x2f\xc6\x5f\xfd\xf2\x8f\x9f\xbf\xfe\x7d\xd8\xfa\xf4\x9f\xff\x38\xfe\xd3\xeb\x97\xa7\xaf\x4e\xff\x71\xfa\xfb\x17\x2f\xfe\xf1\xea\xab\xeb\xeb\xd8\x7c\xd3\xfc\xdf\xe9\xe9\x3f\x9f\xff\x4b\x59\xe4\x2c\x55\x29\x8b\xe5\xdc\xcc\xa5\xa4\xc8\x4b\xf9\x09\x03\x91\xc7\x4c\x6b\xb3\x73\xec\xc7\xc9\xe5\x84\x69\x15\x49\x9e\x18\x82\x56\x40\xd1\x00\x9a\x78\xc9\x1a\xbc\x79\xe3\x17\x7f\x1e\xb3\x5f\xfe\x64\xfe\xf9\xb2\xfc\xe7\x97\x70\x24\x16\xe2\x53\xa4\x12\x95\xc1\x56\x2c\xc4\x27\x1e\x8b\x48\x2e\x31\x1e\x5a\x65\x2c\x52\xb1\xb0\x9b\xf1\xc5\x37\xf0\x9f\xd7\xcd\x1f\xfa\xe2\x4f\xc7\x74\xdc\xce\xc6\xdf\x98\x95\xfd\x87\xff\xe7\xd7\x66\xb2\x63\x96\xcd\xa7\xe5\xd7\x3e\x7c\xfb\xe7\xda\x57\xb2\xf9\xd4\x7e\x2e\x9b\x4f\x8f\x5f\x7e\xf5\xd5\x88\xfe\xfb\x07\xd8\xfd\xe9\x26\x17\xaf\xd9\x94\x6b\xf1\xf5\x97\x50\x7d\x29\x36\x3b\x2d\x53\x9e\x6d\x18\x64\xe2\x8e\xa1\xe8\xdb\xad\x82\xe3\x91\x6e\x1c\x00\x8a\x63\x6c\x86\x4d\x9a\x95\x8c\x31\x43\xc5\x3f\x6d\x2f\x5f\xbc\xf8\x7a\xfc\xe2\x74\xfc\xe2\xe5\xf5\x51\x85\x8d\xcc\x8a\x24\x19\xc3\x2b\x32\x35\x3c\xe5\xd5\xab\x57\x7f\x30\x9d\x15\x98\xcf\x00\x1d\xd2\xbf\xab\x9d\xbe\x64\xa9\xc6\xfe\x6a\xb4\x3b\x97\x4b\x81\xc4\xfb\xad\x7d\x19\x56\x63\xb9\xe2\xb9\x9c\x26\x02\x8f\xc7\x65\xc4\x13\xaf\x7b\x92\x18\x70\x26\xa6\x07\x37\x1b\xc0\xcc\xac\x4e\xe9\xf4\xcb\xf1\xe9\xcb\xf1\xe9\x57\x57\xa7\x7f\x78\xfd\xea\xc5\xeb\x97\x2f\x26\x2f\x5e\xbc\xf8\x5f\xb5\x09\x9a\x0e\xc6\xd0\x41\x39\xc1\x3d\xc2\x01\x64\x2d\x9e\x71\x6f\x20\xb9\xfb\xd6\x4c\xce\xda\x25\xee\x25\xff\xd4\x68\x4f\x0a\x0a\x70\x7c\xfd\xe5\x1e\x05\x38\x96\xfc\xd3\x77\x22\x9d\xd7\xa3\x24\x0e\xd2\x75\xbb\xad\xe9\x20\xdd\x37\xc9\xed\x65\xc7\xb1\x2a\xa6\x55\x87\xa0\xed\x19\x29\x54\x4b\xc7\x32\xbd\xaf\xc5\x96\xe9\xbd\x2d\xb6\x4c\xef\x75\xb1\x9b\x95\xa4\x03\x2c\x36\x95\x27\xab\xdb\xcd\xee\xde\x77\xaa\x1e\xc2\x86\xd5\x68\x3b\x09\x86\x51\x24\x09\x9f\xd6\xf5\xe5\x5e\x1a\xa6\x4a\x1b\x96\xe6\xd7\x67\x52\x5c\xf1\xdc\x28\x46\xfb\xd0\x62\x7a\xb5\xfd\x74\x3f\x05\xbb\xd2\xdd\x4c\x49\x2d\x0e\x8c\xcf\x62\x6e\x5e\x2c\x57\x9f\x33\x7c\x40\x90\xac\x5c\xe6\xed\x97\x6e\x57\xc0\xe6\x5e\xbe\x49\xc0\xbe\x6e\xe4\x1d\xbd\xee\x7a\x00\xb4\x29\x96\x53\x11\xc7\x22\x76\x51\xb6\x1d\xf6\x9c\xed\x2f\x7b\x91\x3f\xb6\xa8\x3b\xc6\xf3\x61\xc9\x57\x6a\xce\xfe\xea\xba\x60\x59\x91\x82\x34\xf8\x9e\xa2\xae\x40\xf2\xbb\xda\xac\xc4\xf7\x82\x00\x68\xca\x12\x0d\x68\x09\x02\xe0\x6a\x1b\xdf\x6c\x63\x30\x10\xdd\x90\x42\x18\x21\x73\xac\xc8\x20\x84\x22\x13\x66\x29\xa3\x9c\x82\x72\x69\x00\xf6\x35\xc4\xbb\xa9\x14\x4e\x0a\xd0\x6d\x9c\x85\x89\xf1\x22\x57\x4b\x9e\x5b\x98\x8d\x60\x21\x5a\x10\x6c\x2a\x63\x9a\x0a\x4a\x98\x9b\x16\x39\x8b\x95\xd0\x90\x86\xbb\xe0\x6b\x41\xbf\x4a\x3f\xac\xc3\xbc\x8c\x35\xb6\x4b\xc4\x9f\xe3\x62\x65\x9a\x56\x87\x5d\x42\xf6\xb4\x61\x37\xf5\x3f\x10\x32\xcd\xc7\x2a\x1b\xd3\x01\xdc\xe1\x30\x04\x2f\x7a\xb9\xa6\x74\x14\x1c\x66\xa4\xd4\x4c\x48\xd8\x1b\xaf\x86\x1d\x94\x19\xb5\xc6\x40\x5b\x2b\x94\x52\xb0\x46\x78\x76\x56\xf9\x86\xb9\x22\x6d\xb4\xa8\x90\x0c\x6d\x9e\x71\xcd\xa2\x85\x4c\x62\xc4\xab\xde\xbc\x9f\x01\x34\xa8\xc8\x6c\x51\xba\x99\xa7\xbc\xa9\xd4\x65\xcb\x95\x0f\x89\xfc\x6b\x30\x24\x9e\x3e\xc7\x4e\x5e\x5f\xa7\x8c\xb1\x31\x7c\xe2\xb5\x1d\x6b\xf0\x0c\x87\x7c\x9d\xbe\x7c\xce\xc0\xb9\x68\xdf\xf0\x5e\x6f\xee\xa0\xde\x05\x3c\x9a\x4c\x26\xec\xef\x22\x53\x66\x41\x96\x2a\x6b\x91\x46\xfa\xef\x66\x22\x75\x3e\x5e\xf2\xd5\xf8\xa3\xd8\x74\xe5\x0d\xb7\xbf\xc8\x00\x13\x19\xa2\xb3\x78\x4a\xb1\xc3\x70\x51\xcd\x1a\xd6\x5f\x83\x1d\xb9\x59\xf2\xd5\x8d\xd1\xb0\x28\x5f\xc7\xaa\xcd\xd0\x1f\xe4\x42\x11\x78\xa8\x4c\x63\xf1\xc9\x6e\xc8\x92\xaf\x26\x66\x07\x00\x42\x2a\xe7\x73\xac\xa6\x64\xd3\x29\x6d\x49\x5c\x04\x06\x80\x83\x85\xb7\x67\x61\x74\xbe\xe6\x81\x5c\x1f\x31\xc7\x76\x6c\x92\xc5\xf5\xd1\x92\xaf\xae\x8f\x26\xec\x2c\xd1\x6a\x54\xd2\x29\xed\x5d\x35\x07\x18\x5a\xa2\x9a\x7a\x49\x15\x46\x35\xcd\x60\x03\x63\x4a\xad\xb0\x29\x70\x70\x0a\x31\x9f\xa2\xc8\x04\x3b\x4e\x15\x4b\x85\xb6\x6e\x42\x17\x70\xf1\x9c\xa6\x29\x58\xc9\x95\xbd\xaf\xc3\xa7\xe8\x9a\x40\x9e\x3e\xd5\xed\x52\x19\xce\xb8\xe2\xa9\x1c\x99\x59\x01\x8e\x80\x59\x0c\xa5\x83\x5e\x0d\x19\x23\x23\x32\xda\x8f\x93\x84\x80\xc9\x0d\x0b\x79\x70\x50\xc9\xe6\x6d\xda\xf9\x6c\xe2\xb5\xaf\x9f\x4b\x8f\xf6\xdb\x3c\x47\x26\x21\x32\x6f\xa5\x12\x35\xb7\x05\xda\xcb\x33\x11\x14\x69\x0f\x4f\x98\x85\xa9\x87\x25\x7f\xc5\x56\x4a\x6b\x30\x4f\xe0\x61\xb1\xa4\xe2\x86\xe7\x6a\x29\xa3\x9b\xd7\x25\x38\x15\x50\x2e\x81\x6c\x43\x97\x79\xeb\x58\xf7\x7d\x84\x46\x0a\x7b\x8a\x26\x44\x0f\xce\xa0\x17\xfa\x32\x04\xb9\x4f\xf1\x8d\x4c\x24\x1b\x96\x89\x55\xc2\x23\x9b\x41\xe8\xa0\xc9\xc3\xb9\x50\x4f\x04\x7d\xe2\x0a\x48\xa7\x1b\x57\xed\x01\x46\x77\x8c\xc7\x73\x44\x03\x18\x19\xaa\x63\xce\xe3\xcb\xe7\xec\x46\x8b\xfc\xc6\xd2\xad\x4b\x91\x97\x70\x57\xb6\xda\xa7\x59\x2d\xc7\xb6\x5c\xd5\x67\x84\xbb\x77\x34\x01\x0a\x3f\x53\xcc\xd1\x3b\x1e\x2d\xa8\x43\x64\x00\xd5\x6b\x34\x2a\x2b\x0c\x60\x0f\xc1\x66\x1b\x1a\x84\x04\x85\x96\x19\x78\x85\x9d\xaa\x47\x8b\xda\xe8\x10\xbd\x36\xb9\x4e\x5f\x3d\x47\xaa\x64\xe7\x87\xd1\x50\xb4\xd5\x19\x59\xe2\x96\x7c\xa5\x31\xff\x00\x25\x18\x99\x31\x91\x08\x80\x7b\xb5\x57\x2f\x55\xe9\x18\xa9\xd6\x47\xb1\xa1\xbe\x2c\x18\x8d\xad\xf9\x6b\x5e\x5d\x4e\xd8\x7b\xc4\x12\xf3\xe0\xf1\x58\xb1\x82\xe8\xc6\x8c\x32\x3c\xcd\x07\x0d\xa5\xb3\x7b\xd7\x74\x1a\x29\x40\x12\xa6\xe9\x06\x63\x08\x0e\xec\x2a\xca\x32\xd7\xa9\x9f\x38\x8f\x93\xc6\xeb\x6e\x96\x68\x9f\xac\xee\xc6\x6d\xd8\xe5\x9e\xba\xad\x0b\xae\x29\xed\xf4\x01\xee\x29\x5c\x05\x2b\x12\x50\xb7\xc1\x95\x7d\xd9\x7a\x65\xe7\x19\x4f\x8b\x84\x67\x95\xb3\x00\x9b\x5f\x42\x0d\xe1\xdf\xc7\x1f\xc5\x66\x8c\x47\x77\xc5\x65\xa6\x9f\xc3\x47\xa0\x42\x31\x89\x79\xe0\xad\x4c\x6d\x50\x42\x4e\x5d\x42\x46\x32\x34\xc3\x68\xde\x63\x80\x52\x89\x8c\x30\x63\x1e\x4e\xcd\xe7\x52\xb9\x2a\x12\x4e\x09\x13\x5a\xac\x78\xc6\x73\xf8\xba\xca\x74\x09\x72\x4e\x1d\xfa\x30\x04\x53\xb1\xe0\x6b\xa9\x8a\xcc\x91\x74\x33\x56\xba\xc4\x07\x25\x48\xb0\x06\x3d\xe9\xd1\x1d\x0f\x59\x8b\x18\xbd\xcb\x99\x6b\x93\xc4\x75\xae\x56\x25\x74\x2b\x81\x4e\xc4\x22\x52\x31\x48\xab\xb9\x58\xe1\x7e\x51\x6c\x6d\x4f\xe8\x4d\x2f\x30\x97\x82\x06\x71\xcb\xf8\x6c\x06\x10\x3e\xd4\x4b\x26\xa2\x22\xd3\x72\x2d\x92\x0d\x0a\xff\xfa\x56\xe6\xd1\x42\x68\x36\xe5\x11\xd4\x26\x45\x5c\x76\xf7\xf5\x72\x77\xe5\x0c\xc4\x07\x11\xfb\x1c\xdd\xec\x78\x83\xc6\x1e\xe2\xa5\x38\x80\x0d\x7f\x60\x70\xfa\x9c\x58\x01\xe0\x9a\x7e\x8c\xd3\x04\xcb\x10\x81\xea\xa1\xb2\xa9\x8c\x63\xd1\x56\x8a\xa8\x2e\x83\xfe\xb7\xca\xee\xde\x5f\x1c\x6c\x83\x3d\xbb\x77\x6c\x28\xbd\x10\x16\xfc\xc4\xdb\x8d\xd9\x75\xc1\x0a\x61\x14\xa9\x1f\x5a\x8a\x0e\x78\xe4\x3b\x6a\x56\xfd\x79\xc2\xbe\xe7\xd2\xd0\x28\xc8\x8d\xa3\x4a\xfc\x90\x41\x4b\x38\x53\x45\x06\x49\x4d\xf7\x14\x22\x4b\xc1\x8f\x3b\x2c\x86\x69\xef\xaf\x45\xd3\x74\x19\xed\xb5\xe5\xe8\x3e\xa3\x81\x23\x64\x73\xb1\x6c\x3b\x3a\xaa\x9b\x7b\x9b\xa5\x1f\x5d\xb5\xc3\x64\xbd\xd7\xc2\xfd\x6f\x9c\x35\x69\xb2\xb0\xd5\x87\x9a\xc9\xa5\xc8\xd6\x32\x12\x1f\x2c\x66\xd2\x96\xd1\x57\x9b\xb2\x85\x02\x5e\xe3\x02\xe7\xc1\x6a\x40\xad\x26\x89\x98\xf3\x68\x53\x2d\x7a\xd2\x1a\xb3\xbc\x23\x62\x8b\x0f\x38\xad\xe9\x8b\xae\x98\xf0\x9e\x68\xd1\x2b\xde\x69\x6c\x72\xed\xfc\x71\xe0\x83\xc3\x0d\x66\xd5\x9d\xbb\x8b\x69\x8b\x28\xbd\x10\xf4\x29\xfb\xf1\xc3\x77\x98\xce\xc8\x73\xe2\x12\x66\x3c\xb6\x2c\xb3\xe5\x97\x90\x4a\x1f\xed\xc7\x1a\x8d\xa2\xd8\x35\x30\x28\x32\x10\x0e\x8c\x96\x84\xc1\x6f\x3d\x07\xc7\x6e\x4c\xeb\x1b\x0f\xad\xc4\xc6\x1f\x41\x2f\x16\xb7\xf5\x74\xfc\xf5\x57\x5f\xbd\xfa\x6a\x84\xf5\xe1\x0c\x43\x7b\x1e\x52\x83\x2f\xbf\x84\xc8\x2e\x60\x6b\xb7\x3c\x8b\x9d\x4f\x17\x80\x86\x0e\x53\xd6\xbf\xc6\x66\xda\x91\x3a\xf0\x8c\x55\x81\x8a\xe8\xcf\x7b\xce\xd8\xb5\xe5\xbc\x01\x16\xea\x8d\x4a\x67\x72\xbe\xe5\xb2\x37\xb4\x2e\x61\x18\xd0\x4a\xe2\x6a\xa7\x9b\x85\x5e\x62\xee\xea\xd5\x77\x97\xa6\x59\x4a\x21\x5e\x4e\xff\xb2\x05\xbf\xfb\xd4\xf1\xf9\x73\x91\xc6\x75\x03\x76\xad\x8a\x0f\x36\xc3\x50\xe7\x8b\x77\xdf\xbb\x20\x84\x37\x67\x6c\x8a\x3f\xe1\x41\xb3\x87\xcb\x2a\x44\xd6\x80\xea\x8f\xeb\x99\xb6\x12\x58\x64\xc6\x04\xd9\x18\x02\xec\x7e\x45\xea\xe1\xbd\xe9\x8d\xce\xc5\xd2\xb0\x18\x9d\xb3\x4c\x29\xa3\xf4\xa0\x4c\xe3\x36\xc0\x81\x38\xb7\x9e\xad\xe9\x26\x6f\xb1\xa2\x6d\x4d\xef\xc7\x4b\x74\xcf\x7e\xbd\x1a\x37\xd8\x9a\x28\x49\xf7\x5a\xd6\x78\x80\x47\x08\x4b\xb3\x95\xab\xf9\xfe\x0e\x85\x19\xdb\xc0\x88\x7b\x59\xe2\x94\x70\xb7\xdc\x60\x8f\x22\xf8\x6a\x4b\x28\x24\xd8\xe7\x41\x22\x35\x47\xcb\x66\xf2\x23\x02\x38\x21\x23\x6f\x54\x61\xc9\x46\xa1\x05\xe2\x67\xc9\x48\xdc\xb4\x84\xa5\x37\x24\x56\x55\xe6\x69\x46\x37\x97\x6b\xca\x04\x4d\xa8\x7e\x8a\x25\xf8\x34\xb4\x11\xe2\x8f\xf0\x34\x36\x54\xc6\xd0\x62\x28\x73\x70\x7c\x03\xd2\xae\x78\x7d\x72\xb2\x50\x3a\x7f\x6d\xa8\xd7\x89\xa1\xd2\x37\xcf\x27\xec\x9d\x07\xa0\xa4\x66\xec\xa6\xc8\x12\x84\x62\xb1\x43\x6e\x59\x14\xa3\xa4\xdf\x98\xee\x1c\x7d\x34\xba\x00\xec\x00\xa8\xda\x6e\x69\xed\x5a\x85\xeb\xf4\x47\x2a\x9a\xe4\xad\x8d\x05\x12\x4d\x75\x2e\x38\x05\xb8\x42\x24\xe7\x52\xce\x17\x04\xcc\xa9\x55\x62\x41\xac\x5c\x6a\xdc\xdb\x1f\x2e\x61\xde\x6a\xe9\x5d\x01\x8d\x85\xb1\x46\x58\x5b\xa6\x3c\x77\x37\x46\x94\xc5\x91\x42\x5f\x4c\xa6\x63\x1a\x12\x74\xc4\x2d\x74\x6a\x49\xf2\x13\xbe\x11\x58\x8a\x4f\xaa\x04\x96\xfd\xf9\xc4\x4e\xdd\x28\xd5\x3c\xd1\xe0\xa7\x80\x00\x50\x1b\x9d\x09\x6b\x74\x91\x08\xae\x41\x49\x22\x31\x1a\xb0\x20\xd9\x8d\xd9\xbe\x04\x3b\x30\x2b\x7d\xfa\xf2\x5f\x27\x2f\x26\x2f\x26\xa7\x37\xa8\x86\x52\xdf\xe6\x9c\x49\xfd\x71\xc3\x8a\x34\x11\x5a\xc3\x99\x82\xec\x7c\xc0\xaa\x63\x11\xe0\x01\x2b\xb3\xbe\xc1\xd9\x66\x98\x4c\x08\x4b\x67\x55\x35\xd3\xc6\xc8\xe7\x8e\x40\xe0\x63\x5c\xd8\x54\x20\x4d\x02\xea\x09\xc5\xa9\x1c\x5c\xa1\xbb\x2e\x97\x45\xb4\xc0\xaa\x57\xe6\x67\x6b\x16\x4a\x36\xe4\xa2\x49\x55\x3a\x36\xa7\x8a\x4f\x13\x81\xf1\xc4\x23\x38\x0e\x82\x6b\x68\x02\xf0\x22\xc5\xca\x6c\x13\x67\xa9\xb8\xb5\xa7\xc0\x9d\x24\x3c\xa0\xee\xa8\x5d\x1f\x01\x5a\xce\xf5\xd1\x1f\xe1\x88\x98\x93\x4c\x3f\xcd\x25\x11\x74\x6a\xf2\xfa\xe4\xe4\xfa\x08\xba\x39\x63\x56\x20\xb1\x4c\x9f\xd0\x0a\x66\xce\xce\x4b\x26\x40\x9e\x5a\x0c\x1a\x74\x86\x90\x31\x04\x06\xf7\xe3\x87\xef\x26\xec\x7f\xaa\x02\xda\xda\x23\x0a\x1d\xe7\x0a\x82\xc9\x50\xcf\x99\xca\x3c\xe3\x99\xeb\x86\xc8\x8d\xbb\x86\x98\xa4\x09\x81\xfa\x23\xc6\xed\x6c\xad\x19\x4c\xd2\xc4\xcf\xf2\x5c\x2c\x57\xb6\xf4\x84\xf9\x18\xd5\xa7\x01\x59\x41\xcb\x88\xf1\x22\x5f\x20\x14\xe0\xf5\x91\xf9\xe5\xb5\x0d\x67\xfb\x7f\xaf\x8f\x10\x63\x24\x2f\x11\x4a\xbe\xc9\xf8\x1c\x8d\x60\xc7\xd7\x47\x5f\x4c\x26\x93\xeb\x23\x34\xca\xfc\xad\x10\xd9\x86\xad\x78\xc6\x97\x02\x22\x09\x8f\xaf\x8f\xfe\x64\x7f\x27\x25\x9e\x7a\x19\x91\x96\xb7\x37\x7a\xc8\xbd\x4a\x0d\x4d\x65\x77\xda\x64\x06\xbf\x08\x4e\x50\x0c\x5e\xc1\x19\x07\xbc\x27\xd7\x84\x36\xae\x87\x60\xd0\x2c\xb8\xdc\x07\x1b\x6c\x12\x95\xb6\x71\x42\x7f\x68\x56\x33\x30\x37\x36\x2b\x22\x44\xe2\x36\x87\xd2\x5f\x81\x80\xa7\x41\x4c\x24\xcf\xc5\x7c\x63\xde\xbd\xa1\x8f\xb7\xf1\xab\x72\xe9\x3e\x88\xb5\x14\xb7\x3d\x91\xac\xdb\x5e\xb3\xc2\xba\x2d\xdf\x40\x79\xef\x2b\xe0\x26\xe6\xc9\xcd\x9b\xca\x9b\x37\x25\xa2\xb3\x99\x06\x0d\x97\x89\x4f\x00\x27\x8e\xbc\xc3\x33\x69\x79\x55\xfa\x04\x95\x50\x70\x10\xa2\x69\x69\x0f\x44\xaa\x28\x73\xeb\x90\xb2\xd0\xbb\xa5\x6b\xb4\x2c\x1c\x11\x1a\x94\x08\xff\x39\x4c\x1f\x66\xd3\x8d\x37\x88\x51\x70\xe0\xcc\x80\x66\x5c\x26\xad\xb5\x75\xcc\x97\x79\x89\xdb\xed\xa6\x18\xc1\x06\xbb\xe8\xd2\x12\xbc\xd8\x56\x25\x71\x78\xde\x69\x5c\xba\xd3\x6d\xe9\x6a\x48\x80\xb6\x2d\x30\xb9\x84\x68\x97\x19\xe8\xa5\x1d\x68\xc9\x04\x2a\xfa\x91\x19\xf2\x23\x81\x5c\x37\x2b\x34\xad\x27\xf1\x41\xf4\x19\x40\x64\xed\xc2\x32\xee\x0b\xff\x50\x7d\xd1\xdf\x5c\x0b\xee\x4c\xb6\x33\x73\xa6\x01\x2e\x68\x95\xc9\x34\x2c\x34\xde\x4a\xba\xfe\xc7\xe5\xfb\x1f\x7a\x20\x72\xd9\x66\x54\x84\x58\x42\x39\x8f\x12\xa6\xe8\x18\x92\x85\x30\x50\x3d\x40\xcb\xb2\x30\x79\x52\x33\xb1\xe6\x49\x81\x56\xf5\xb9\x51\xd5\x72\x34\xed\xd7\x60\xbb\x14\x5b\x65\x2a\x2e\x22\xe1\xc5\xc4\x38\x49\x1d\x27\xbc\x87\x81\x60\x4b\x6a\x60\x2d\xc7\xd5\xfd\xe9\x95\xf8\x67\xae\xc4\xbf\xff\xbb\xc5\x76\xdd\x7b\x58\xbb\xe7\x85\x39\xdb\x85\x4d\x10\x03\xa7\x4e\xc9\x5b\x6a\x6b\x05\x54\xef\x99\xd1\xe6\x9f\x31\xaf\xa7\xd5\x2a\x91\x28\xe1\x81\x2c\x43\xe8\x2e\xa5\x2c\x62\xcf\x96\x91\xda\xb5\x26\x48\x7b\x5b\xb6\xd1\x7a\xee\x00\x96\x15\xdb\x11\x6f\x71\xfb\x68\x3e\x18\xe2\xa1\xcf\x65\xbe\x28\xa6\x93\x48\x2d\x4f\xde\x9f\x9d\x9f\xd0\xf8\xc7\x01\xc8\xc0\xc9\x34\x51\xd3\x93\x25\x37\x82\xd1\x89\x25\x49\x27\x2f\x27\x2f\x26\xcb\xf8\x8b\x98\xe7\x7c\x8c\x80\x0c\xdd\x55\xa2\x0e\x84\xc1\x5c\xdb\x7e\xf8\xc1\x91\xe7\x7d\xf7\x7d\x95\x49\x95\xc9\x7c\xd3\x59\x00\x0d\x9b\xd1\xde\xdb\x08\x20\xdc\x6d\x97\x5b\x61\xd4\x0f\xa3\xb3\x2c\x41\xd8\x4e\xad\xc5\xcf\x1d\x01\xaa\xd7\x83\xbb\x0d\xfe\x35\x3d\x61\xdf\xa9\x5b\x57\x65\x08\x65\xf7\x48\x01\xd8\x98\x69\xb7\x90\x73\xa3\x07\xdb\xcf\x4f\x98\x85\xc5\x47\xbf\x36\x0a\xcc\xca\x06\x0c\xa5\x2c\x91\x4b\x69\xfe\x89\xf6\x46\x1d\x89\x94\x67\x52\x69\xcf\x46\x86\x20\x77\xdc\x75\xe9\xa0\xb5\x01\xb7\xa7\x8a\x4b\xb7\xa7\xb9\xab\x23\x60\xb0\xb2\xb8\x2e\x40\x2a\xed\x7f\x97\x9e\xd0\x79\xde\xc1\xb6\x77\x54\x5d\x98\x51\x03\x03\x78\x44\xd6\xd8\x43\x80\x6f\x7b\xa5\x41\x8e\x87\xdf\x72\xaf\x9a\x8d\x5f\x11\x85\xb3\x37\x1f\xfa\x98\xfa\x06\x51\xf6\x37\x2c\xca\x06\x76\xfa\x9b\x9f\xaf\x8f\xe8\xe0\x5e\x1f\xfd\xf2\xf0\xc5\xcd\xad\x06\xd6\x89\x99\x4a\x8a\x5a\xb9\x62\xe6\x42\x34\x96\x02\xa0\x2b\x62\x36\x50\xe4\xb7\x42\xa4\x6e\xc9\x9a\xea\x18\xbe\x66\x63\x76\xf3\x83\x4a\xc5\xcd\x6b\xac\x2e\x40\x6f\x67\x18\x61\x82\x90\x6c\xd6\xd4\xec\x07\x07\xdf\x3a\x03\x60\xae\xa0\xaa\x5c\xba\xa1\xf0\x0e\x6b\xd3\x6b\x3e\x18\xe3\x52\xd3\x7c\xed\x6d\x1b\x6e\x10\x2a\xa9\x2a\x80\xc1\xb2\x3b\x98\x2b\x16\x13\xa8\x9c\x3b\x89\x13\x76\x56\x16\x70\xf1\x3c\x03\xd7\x29\x03\x5b\x89\x10\xb1\x1f\xc1\x88\xe2\x15\x45\x00\xec\x88\x2e\x82\x96\x25\x68\xeb\x7d\xff\xb6\xc1\x5d\x81\x2f\x69\x51\x2d\x0d\xd4\x47\x74\x68\xe8\xef\x7e\x6d\x0e\x48\xb3\x77\x35\x3c\x34\x4d\xfb\x60\xf6\x07\xe7\xc2\xa4\x8a\x21\xb6\x15\x98\x47\x29\x70\xb5\xd1\x5a\xd1\x93\x69\xba\x3b\xf7\x68\x4c\x71\x0f\x4d\xd1\xd3\x11\x03\x87\x7d\x88\x91\x59\x8a\x64\xb6\x66\x3b\xf9\x89\x4a\x42\x3e\x61\xec\x3c\xd7\x28\xe9\x42\x4c\xf1\xd4\xa1\x0c\x93\x02\x81\x55\x41\x00\x88\x7a\x52\x96\x63\x9f\xf8\x8f\xbd\x22\x22\x86\x9e\xfa\x75\x6d\xd7\xa7\x93\xd3\xaf\x47\x6c\x95\xf0\x34\xa5\xbb\x07\xc5\xb5\xe0\x82\x9a\x5f\x5f\xbe\x9c\xb0\x1f\x35\xd0\x13\x6f\xa1\xd0\x5f\x7f\xb2\x3e\x6d\xaf\xe3\x6c\xbd\x04\x3d\xea\x45\x39\x52\xd5\x41\x57\xcf\x2e\xce\x7f\xaa\xd4\xcd\xf6\xf8\xa4\x91\x79\x11\x35\xcd\x8a\xdc\x15\x10\x0a\x88\xb1\x77\x39\x14\x97\xe4\x85\xa0\x4d\xb0\xa2\x4a\x26\x22\x35\x4f\x01\x39\x1e\x7b\x73\xbc\x29\xe1\xb9\x00\xd5\x8b\x28\x1d\x45\x30\xdb\xc8\xbd\x4c\x40\x20\x5f\x91\x7a\x3d\x20\xe1\x6e\x04\x99\x9f\xcb\xdc\xae\x62\xa4\x96\xcb\x22\x95\xf9\xe6\x04\x0a\xb1\xc9\x69\x91\xab\x4c\x9f\xc4\x62\x2d\x92\x13\x2d\xe7\x63\x9e\x45\x0b\x99\x0b\x88\xcc\xb6\x35\xaa\xd6\x46\xeb\x33\x5b\xb1\x8c\xbf\x68\xa9\x46\xd1\x87\x82\x41\xf1\xf8\xed\xab\xfe\x57\x99\x52\x41\x13\xb2\xa5\xa3\x1d\xc0\x2d\xae\x55\x7e\xa0\x66\x89\x77\xc0\xcb\xe0\xc6\xf2\x0a\x94\xcb\x6e\x96\x4c\xa6\x33\x5b\xff\x86\xaa\xbe\x89\x12\xd3\x14\x5d\x51\x86\x62\x31\x5d\x4c\x97\x32\xd7\x3e\x5c\xe9\x84\xbd\x41\x2f\xd1\x54\x94\x51\xc5\xe7\x29\x7b\xc3\x97\x22\x79\x03\x55\xf9\xef\x79\xd1\x41\x59\x18\x9b\xf5\xdb\x63\xd9\x6d\xde\xcb\xae\xdc\x62\xc9\xa3\x85\x4c\x45\xb6\x29\x29\x98\xe9\x6a\xb2\x3e\x9d\x94\xf9\x46\xed\xd0\xfc\x0f\xc1\x9c\xb6\x15\xfb\xdf\xee\x28\x5e\x89\xa8\xaa\x42\x2c\x04\xfa\x5b\x6e\x79\x9a\x87\x46\x0d\x0c\x17\x5e\xad\x04\x6f\xd1\x3a\x1f\x02\x41\xb8\x63\xc6\x7b\xa2\x08\x53\x10\x6f\xbf\x42\xaa\xbb\xf3\x53\xb3\x0f\x5d\xbc\xd4\x3d\x0f\x82\x54\x81\x8f\x8c\x89\xdc\x8e\x89\x74\x94\x5d\x07\x0b\x8d\xe5\x70\x5f\x03\x75\xaf\x31\x8e\x70\x4d\xa8\xa3\x56\x16\x1a\xb6\x2e\xf5\x53\xab\x0a\xd4\xd7\xe0\x97\x07\x90\x05\xca\x3a\xa3\xbb\x0b\x05\xee\xdd\x32\x58\x86\x2c\x0e\x9e\x8a\x96\x81\xc2\xec\x0a\xb5\x3a\xae\xb6\x52\x7d\x98\x6a\xc2\x75\x7e\x95\xf1\x54\xc3\xcb\x57\xb2\x6e\x65\xbb\x03\xad\x81\xee\xb6\x9d\xeb\xfa\xd7\x99\x79\x84\x90\x17\xa4\x14\xd0\xb4\x72\xd7\xcc\x16\xf4\x34\x2a\x30\x5d\x8c\xb2\xee\x68\x8b\x9f\x6b\x29\xb4\xee\x2e\x76\x45\xad\x3c\x23\xe2\xd8\x19\x11\xdd\x6f\x78\x07\x0d\x37\xb3\x7b\xc1\xa7\xaa\xc8\x69\xe0\x6e\x94\x7b\xa8\x09\x99\xe0\xba\x53\xb8\xc1\x46\x38\x44\x4c\x95\x1d\x99\x95\x18\xdf\xaa\x2c\x1e\x95\x7c\x8d\x51\xbb\xd2\xec\x49\x0b\xf9\x4c\x1f\x60\xa4\xcd\x44\xb3\x85\x68\x05\x40\xf9\x36\x8f\xcc\x0e\x07\x18\xb4\xe1\xce\x57\x90\x0a\xf9\x0d\x2a\x65\xa4\xaf\xed\x31\xb2\x1d\x8c\x88\xb9\xcd\xb6\xad\x8f\xe9\x0a\x2c\x7c\xd6\x40\xf1\x4e\xe7\x7c\x9a\x48\xbd\x10\xf1\x88\x41\x09\xe7\x33\xaa\xe7\x0c\x52\xdd\x95\xc8\x96\x32\xe5\xf9\x0e\xa5\x70\x7a\xd2\xe0\xaa\xe1\x8f\x96\xfd\x09\x68\x38\xdf\x49\x9d\xef\x41\xd0\xbe\xa3\x64\x8d\x12\x12\xbd\x55\x2f\xa0\x32\xc1\x83\x5e\xf0\xa4\xf5\x82\x46\x88\x9f\xca\xb2\x63\xf2\x1c\xe6\xe9\xa4\xb1\x5c\xcb\xd8\x88\x2d\x5d\x1b\xff\x08\xb5\x6c\x3b\x94\xfa\xbb\x58\x04\x07\xfd\xe9\x73\xd1\x9f\x0c\x09\xab\x68\x4f\x3d\xa9\x39\x9e\xe1\x5f\x95\x48\x0d\x64\xfe\x49\x8a\xd5\xc0\x86\xf7\xe0\x40\xf0\x5e\x45\x91\x82\x58\x7a\xbf\x3a\x94\xd4\xed\x8a\x54\x8f\x90\xf3\x5c\xcc\x55\xd6\x00\x43\x53\x0b\x3a\xb7\x0d\x43\x96\x08\xfb\x27\x62\x56\xa9\xfc\x59\x8d\xba\x98\x8a\x44\xa5\x73\x18\x37\x44\xc8\xb2\x67\x3c\x49\x9e\x95\x59\x95\x6c\x55\x90\xd0\xc2\x64\x0a\xa6\xc2\x58\xea\x48\xad\x45\xb6\x71\xe5\x26\x34\xf2\x9f\x82\xf0\xeb\x6c\xac\x80\x59\x0a\x74\x18\x31\x99\xae\x29\x44\x59\x63\x1a\x25\x84\xe1\x46\x79\xc2\xe6\x02\x82\x0d\x1f\xde\xbb\xd2\x83\x96\x7e\x24\x5a\x4a\xa1\xe3\xb6\xc6\xa3\x45\x0d\xf4\x0d\x04\x16\x5c\x05\x53\x14\x93\x8d\x27\x42\x83\x6b\x40\xa6\xf3\x22\xe1\xd9\x84\x4e\x84\x57\xd7\x2a\xd5\xe0\xb9\xd7\xbe\x27\xcf\xc1\x80\x10\xfa\xc3\x8d\xf9\xe4\x8d\x07\xb2\x40\x5b\x01\xde\xac\x3d\xc4\x5b\x73\x46\xfe\xda\x3d\x7f\xdb\xac\x63\x0d\xe0\xc4\x39\x3f\x4a\xb9\x22\xbe\x2f\xed\xfa\x08\xe7\x60\x48\xc1\xf5\xd1\x3e\x71\x13\x49\x91\xf1\xae\xa8\x78\x6c\x64\x87\x4b\x7f\xf9\x69\x59\x7e\xb0\x11\x5c\xd3\xbe\x65\xb3\x77\x2d\x93\x4d\xcf\x71\x08\xf8\xd8\x96\x31\x5d\xf2\x9c\x52\x8d\xfc\x91\xb5\x0a\x32\xc7\x9e\x01\x9e\xdd\x60\xb7\x40\x6a\x26\x7e\xe7\x93\xda\xc8\x6e\x9e\x7b\x45\x0a\x93\x84\x25\xea\x16\xd1\x64\xf7\x51\xd4\x16\x2a\xcb\xab\xb4\xb2\x69\x03\xca\x86\xb8\x84\x0b\x48\x8c\x82\xbf\xad\x0a\x59\xd6\x36\xb4\x6e\x88\x7b\xa3\x2b\xb8\x26\x30\x88\xd2\x57\x71\x03\x57\x75\xd9\x63\x65\x1e\xc0\xc3\x4b\x64\xa1\x6b\x55\xa9\x99\xbb\x87\xf6\xef\xa6\xa3\xbd\x65\x7a\xc1\x8d\x74\x8f\x63\x22\x2f\x07\xd6\x3a\xe9\xc2\x56\x29\xee\x13\xd0\x3a\x2f\x43\xdb\x74\x5f\x9e\x7f\x59\xb7\x18\xf3\x8a\xbd\x58\x66\x01\x85\x21\x83\x71\xb7\xea\xe9\xa5\xa9\x83\x62\x47\x41\x57\x1d\xc7\xa2\xed\x35\x3f\x74\xa2\xf4\x80\x47\xf4\x23\x96\xca\xc3\x6b\x77\x05\x36\x29\x55\xe4\xab\x22\x0f\x43\x9c\x1a\xaa\x12\xbb\x6c\xaa\x13\x48\x5b\x81\x6a\xc4\x24\x69\x47\x62\x95\xeb\x93\x2f\x32\x11\x09\xb9\x36\xbf\x39\x4a\x3a\xe6\x7a\x0c\x69\x20\x61\xa4\x13\x3b\x77\x59\x18\x23\x52\x29\x20\x30\xc0\x86\x80\x08\xed\xc6\x6b\x91\x1b\xca\x40\x85\x2b\xb5\x1a\x27\x46\xf2\xc7\x3a\x5f\x22\xb3\x12\xad\x7b\x87\x43\x45\xf8\xbc\x00\x4e\xec\x8a\x0b\x50\xc8\x0b\xcb\xdd\xfb\x2a\x6b\x7d\xdd\xcb\xb0\x73\x40\x10\x14\x54\x17\x4b\xbd\x4a\xb8\xc3\x6a\xe2\x73\xd1\x52\xda\xdf\xdc\xd7\x86\xb4\xbb\x47\xd3\x42\x6b\xa1\xc8\x77\xa1\x5d\x51\x53\xf0\xd6\x83\x4d\xc4\x7d\x7b\x6b\x0a\x84\x1f\x2c\x86\x96\x1a\xef\x91\x16\xb9\xd1\x86\x4b\xce\xf4\xe6\xc3\xdb\x16\xbb\xaf\xd5\x85\xb6\xdd\x46\x68\x63\x29\xb4\xe1\x67\xf8\x60\x7b\x85\xfd\x3b\x8b\x1f\x93\xc9\xe4\xe1\xe5\x8a\x3d\x73\xd9\x1f\xd3\x3b\x86\xc2\xcb\xb6\xc3\x82\x52\x0a\xe1\xb0\x85\xc2\xa2\x21\x33\x20\xf0\x86\x92\x4c\x75\x2f\xdb\x02\x7e\x1b\x82\x87\x3a\xa3\x7f\x9b\x02\x8e\x7c\x75\x93\xe7\x61\xa5\xa5\x2e\x0c\x16\x1b\xe7\x4a\xb6\xc9\x32\x16\xa4\x84\x5c\x82\x80\x1a\x8a\xca\xa3\x1c\x34\x9d\xab\x8c\xcf\xc5\x24\x40\x51\x44\x5c\xc5\x12\xff\xd1\x2c\x0e\x96\x25\xb1\xc3\x84\x54\x84\x00\x20\x92\x27\xb7\x7c\xe3\xe1\x3b\x01\x29\xa6\xd0\x29\x6b\xe0\xb4\x32\x8b\xbd\x2a\x75\xc2\x5f\x83\xd4\x80\xa0\x11\x2c\x29\xe5\xe5\xd3\xeb\x4a\x42\xbd\x17\x84\xf2\xda\x65\x5e\x3b\xb0\x38\x2f\x8c\x8b\x82\x50\xd8\x05\x0e\xd3\xd9\x6b\x8b\x34\x98\x60\x84\xae\x86\x6e\x9c\x1b\xca\xef\x04\x0d\xae\x0f\xfe\xce\x6b\x98\xd5\x4d\x09\xe7\xd4\xc9\x93\x73\xae\x3f\xea\x13\x1e\x45\x42\x6b\xff\x03\x86\x37\xe3\xf1\x2c\x59\x71\xf5\xc1\xd8\xbf\x75\x5f\x10\xa8\x0e\xf0\xc2\xc2\x8d\xd0\x3c\xa9\x60\x04\x75\x07\x2c\x6f\x05\x5e\xd4\x91\xea\x74\xad\x40\x1b\xef\xb8\xdf\x2e\x04\x55\x7a\x6d\x25\xa4\x86\xf0\x52\x5a\xe5\xd8\xb0\x75\x07\x6c\x30\x86\xce\xe2\xa6\xf0\x46\x76\xf3\x06\xdf\xb8\x81\x43\x7c\xf3\x83\x7d\x27\xbe\x71\x67\x0d\xa2\xcf\xfc\x1f\xf6\x50\x9e\x9a\x2b\x45\x3f\x10\x09\x0c\xea\x54\x6f\x0d\x0e\xf0\x2b\x4e\x5b\x32\x78\x0b\x81\x63\xfe\x2f\xdb\xf6\x60\xc1\x7b\x49\x76\xb5\xda\xd6\x7d\xc5\xbb\xe0\xc5\x16\x19\xaf\x79\x0f\xd6\x4d\xd5\x77\x1f\x68\x07\xbc\xca\xbf\xdb\xd6\xdf\xa3\x1e\xa5\x92\x51\x42\x53\xa1\x16\xdc\x5e\xe7\xb6\x45\x04\x6d\xd8\x8f\x3a\x99\x22\x31\x35\x00\xa2\xe8\xbd\x27\x44\xbd\x77\xdb\x8e\x5e\x8e\x36\x17\xc7\x5e\xca\x54\xf6\xd1\x3d\x4b\x55\x2d\x46\x9d\xed\x92\x16\x06\xdf\x1b\xe1\xde\x32\x84\x1b\xbb\x80\x37\xe4\xb7\x9a\xb9\x47\x44\x72\xca\x06\x66\x70\x53\x95\x2f\x3c\x58\x05\xf6\xde\x66\x7c\x79\x2f\x6a\x8c\x74\x2d\x1b\xf9\xcc\x0d\xb0\x25\xbc\x86\xd5\xa0\xc8\xde\x34\x6b\xdd\x2f\xeb\x61\xed\x65\x39\x38\x4b\xa0\x9a\xc1\xe1\xf1\xb6\x4b\x77\xee\x57\xd3\x4c\xab\x13\xbd\xda\x79\xbd\x97\xe1\x66\x95\x1d\x53\x14\xfa\x8e\xdb\x61\xbd\xbe\xa9\xb3\x6f\xd9\x5b\x63\xe4\x8d\x82\xd0\x5b\x14\x82\x59\xa6\x24\x91\xd1\x81\x2b\x73\x17\x08\x29\xb4\xc1\xee\x45\x98\xce\xce\x95\x6c\x3d\x78\x52\xb3\xeb\x23\x80\xad\x48\xe4\x47\x71\x7d\x34\x62\x32\x47\x39\x46\x03\x7a\xd1\x54\xad\x01\x72\x21\x6c\x55\xe9\x45\x8f\x3c\x11\xd1\xa5\xa3\x88\x4f\x32\x52\xf3\x8c\xaf\x16\x16\xb1\xfb\xfa\xe8\xaf\xf5\x3e\x34\xd3\x39\xcf\x08\x5b\x93\xb3\xeb\xa3\xb5\x19\x05\x20\x9b\xf0\xcc\x02\x44\xa3\x91\x8e\x3b\x1c\x24\x44\x2a\xfe\x77\x43\xb1\xb0\x97\xe7\xf4\x8a\x4d\x64\x4c\x36\x14\xd2\x01\xb3\xbc\x3e\xe2\xc9\x6a\xc1\x6d\x31\x29\x43\x49\xaf\x8f\x60\x5b\x28\x26\x27\xec\x58\xa6\x5e\xc7\xb6\x66\x33\xdc\x70\x4c\x50\xc1\xd3\x31\xdd\xb0\x6f\xcf\xd0\x0e\x28\xb0\xf6\x28\xfd\x1b\xbe\xc5\x8e\x6f\x01\x81\xee\xdb\x33\x74\x9d\x94\x29\x2c\xf9\x82\xa5\x8a\xe9\x62\x36\x93\x9f\x98\x86\x14\x06\x8d\xef\x03\xbb\x5a\x2d\xf8\x73\xb4\x4d\xc2\x84\xa6\x1b\x4a\xb4\x33\xf3\x08\xa6\x4c\x33\x0e\x46\x3b\x61\x67\xa9\x45\x83\xb0\xa3\x75\xa5\xdd\x69\xbd\x5f\xb3\xf5\xe9\x8b\x11\x5b\xbf\x1c\xb1\xf5\xa9\xf9\x2f\x70\x16\xf8\xeb\x85\xf9\xd7\xab\x11\x5b\xbf\x02\x66\x63\x1e\xbd\x84\x11\x61\x3b\xf8\xe7\xcb\x11\x9b\x29\x75\x8a\xff\x5b\x4d\xb1\x7b\x02\x4e\x70\x1b\x68\xb1\xb3\xfd\xa1\xa7\xed\x11\xf5\xf5\x9a\xfe\x59\x13\x43\x9f\x82\x31\xb2\x1a\x03\xd5\xdb\x1c\xd9\x14\xcc\xd9\x2f\x8a\xb3\xdb\x20\x49\x81\x49\x8d\x26\xff\xa7\xa5\xb6\x07\x43\x05\x02\xe0\xf9\x62\xa1\x98\x9e\x03\xaa\x05\x50\x5c\x73\x45\x2d\xd9\x46\x47\xad\x47\x7f\xaf\x16\x62\x63\x93\x5c\xcb\x2c\x42\x48\x54\x2d\x7b\x95\x98\x9b\xd6\x0e\x85\x11\x37\x17\x14\xae\x1b\xa7\xa8\xa1\xdb\x43\xda\x3e\x23\xe4\xad\x78\x96\xcb\x08\x8c\xfc\x5c\x43\xe6\x1f\xe5\x30\xf6\x8a\x5a\x7d\x02\x57\xbc\x0c\x58\xbd\x93\x83\x24\x57\x99\x88\x7b\xe6\x60\x86\x8d\x2d\x64\xb5\x27\xc7\xd6\x23\xc5\x2c\xba\x93\xe1\x02\x62\x2d\xb2\x32\x2b\x71\xc2\xae\x32\x1e\x7d\x24\xfd\x5d\x7b\xf9\x91\x54\x9d\x91\xb3\xa5\x9c\x53\xae\x22\x40\x21\x00\x16\x03\x0c\xa1\x6c\x2b\x53\x26\xf2\xc8\x56\x67\x45\xa9\x43\x1b\x39\x19\x0c\xef\x5a\x05\xbd\x40\x68\x8b\x4a\x12\x91\x81\x89\xc1\xac\xa4\x5e\x04\x2d\xca\x00\x55\xc7\xab\x8e\x01\xd0\xde\x0c\x33\x55\x4c\x25\xb6\x6a\x07\x09\x1a\x62\x96\x23\x06\x18\xd8\x71\x7c\x9e\x05\x79\x37\xc2\xda\xb9\xf2\x5a\x16\x28\x85\xf8\x50\xf6\xa7\x13\x7e\x30\x14\x88\x42\x79\xb0\x0f\x8a\xa3\xbd\x81\x4b\x51\x4a\x50\xb7\x0b\x99\x40\xff\x46\x1d\x20\x14\x81\xb2\xbf\xc7\xc1\x0c\x79\x78\xf2\x5e\x0f\x29\xec\x4b\xdf\x7f\xaa\xa5\x39\x97\x02\x8a\x39\x6a\x60\xad\x1e\x5c\x4b\x75\xd7\xd2\xfe\xee\xa1\x8b\x86\xb6\x0e\xca\x9f\xa3\xdd\x90\x72\x0c\x11\x07\x23\xb2\x01\x98\x9a\x1d\x97\x5e\x25\xfb\x6a\x69\x64\x2d\xd0\xcd\x0d\xda\xd8\xf3\xc1\x0d\x75\x48\x37\x54\xec\xd4\xdf\x4e\x74\x17\x2f\x13\xb1\x94\x99\xa4\xae\x1a\x15\xaa\xab\x67\x74\x34\xa9\x59\xf9\xfe\x84\xfd\x9b\xa1\xa0\x74\x12\xb0\xf8\x8e\x69\xe4\x05\x3c\x86\x1d\xe3\xe1\x15\x8c\xb3\x5b\x9e\x81\xb1\x66\x21\x38\x69\x89\x16\x96\x12\xab\x30\xad\x54\x5a\xf5\xd3\x83\x65\x7a\x1f\x4b\xab\x1d\xb0\x54\xe9\xbf\xe1\x67\x7b\xae\x50\xf9\x02\x33\x72\x51\x26\xe3\xd2\xee\x07\x36\x51\x3b\x0b\x77\xdf\x73\x85\xe1\x48\x18\xa0\x31\x61\xdf\xf3\x8d\x2b\x42\x60\x96\x09\x73\x75\xcb\x15\xbc\xb1\x55\x8b\x90\x31\x56\xfb\x6d\xd9\x9f\x60\x13\xe0\x72\x67\x22\x52\xcb\xa5\x48\x63\x38\xe0\x76\x03\x53\x71\x6b\x38\x5a\xa8\x79\x9b\x1f\xc5\xdf\x0a\x0e\xb7\xcd\x42\x90\xe8\x9c\xa3\x8f\x60\xc4\xe4\x0c\x32\x41\x80\x55\xdd\x33\xb2\x8c\xaf\xe2\x63\x55\x72\x08\xbc\xfb\xaf\xff\xfc\x3f\xeb\xd3\xff\xfa\xcf\xff\x3b\x82\x7f\xbd\x84\x9b\x03\x7f\x8a\x3c\xea\x6b\xd1\x0a\xd6\x8b\xe7\xbb\x5b\xb8\xc0\x28\x82\x5d\x96\x9b\xb4\x87\xcd\x1b\xac\x82\x4f\xd6\xd6\x4a\x76\xcf\xfd\xed\xac\x9d\x54\xe3\x0e\x26\xd3\x80\x0d\x05\xce\xb1\xdd\xd8\x50\xdd\xce\xdb\xc6\x90\xda\xd1\x7d\x3b\xa9\x2a\x9d\x3e\x30\x9f\xcc\x12\x3e\x67\x22\xe5\xd3\x44\xa6\xf3\x93\x58\x6a\xfc\x57\xb8\x5c\x20\x2b\xa2\x1a\x66\x2f\xa8\xe4\x18\x8d\x7e\x76\x71\xde\x12\x9c\xbd\xdd\xa3\x84\xc2\x6d\x0f\xe5\xc0\x4b\xbc\xaa\xd2\x96\xca\xd2\x54\x7d\xa1\xb5\x9b\xe7\x3b\x47\xaf\xc0\x88\x64\xdd\x97\xc2\x03\xd0\x0d\x0c\x4a\xd4\xfe\xbf\x6f\xb9\x52\xdb\xe7\xf9\x99\xf9\x91\xea\x77\xa8\xdd\xaf\xb4\xde\x7e\xa1\x7a\xf8\x85\xc2\x5b\xe5\xbf\xb0\xc7\xd5\x0a\xe7\xd8\x7d\xab\x7a\x9a\xad\xaa\x88\x4d\x74\x03\x1b\xce\xfa\xa3\x19\xae\xbc\x63\x70\x19\xf1\x64\x5b\x69\x86\xed\x2f\xba\x88\x1c\x82\x00\xb1\x41\xf3\x02\xea\xeb\x08\x7f\x89\x51\xdd\x09\xf5\xf6\x5e\x39\xa9\x53\x91\x5c\x8a\x44\x44\xb9\xca\x7a\x20\x1d\xd6\xda\x07\xe9\x5d\x25\xe4\x21\xc5\x37\x80\x39\xa6\x86\x61\x08\xc5\x51\x54\x86\xa2\x1c\x82\xc4\xe0\x74\x6f\x30\xeb\x6e\xa2\xe9\x03\x37\x13\xf6\xde\x48\x48\xae\x5f\x2c\x0c\xa6\x0a\xcc\xa5\x09\xc1\x14\x29\x86\x82\x80\x7d\x5d\x54\x2f\xbe\x0c\x43\x25\x87\xd6\x04\xbf\x82\x38\xd2\x00\xc7\x71\x53\xb6\xa7\x83\x7d\xab\xb2\x8f\x48\x91\xfe\xa2\x32\xf9\x77\x95\xe6\x3c\xb9\x50\xf1\x59\x91\x2b\x58\xfa\xcc\xb7\x56\x40\x76\x0f\x5a\xf6\xe1\xc6\x96\xcb\xe0\x15\x28\x43\x03\x3e\xbe\x70\x0c\x37\x09\xec\xe1\x89\xf8\xc4\xec\x74\xa9\xd8\x9f\x45\x85\x74\x89\xc8\xdc\x0f\x2a\x87\x1d\x28\x5f\x91\xce\x03\x32\x53\xd9\xb2\x31\x45\xe8\x1e\x43\x22\xbe\x80\xc5\x18\xfb\xe7\x10\xdd\x33\x99\xc0\x40\x7f\x0a\xd1\xb7\x82\x97\x45\xba\xa3\x33\xd2\x24\x14\x8c\x08\xe0\xbc\x72\x12\x6c\xc9\x4f\x72\x62\x9d\xc0\x87\x6f\x82\x1b\x00\xde\x1e\x2b\x26\x53\x26\x20\x16\xfb\xa4\x72\xa0\x7b\x88\x68\x2b\x11\x7d\x10\xab\x44\x46\x5c\xf7\xb8\x1d\xd5\xe6\x07\xbe\x1c\x2b\x11\x4d\x32\xea\xfe\xbe\xae\x06\xde\x86\x03\x6d\x62\xeb\x2e\xa1\x52\x04\x28\x55\x59\xa6\x32\xa6\x52\xf6\xed\xbb\xab\xbd\xb3\xa3\x77\xd9\xa2\xda\x0b\xf7\x42\xc1\xee\x7b\x9b\x90\x82\x1d\x6c\xa3\xaa\xa3\xde\xe3\xb6\x55\x3d\x68\x77\x0d\x8d\xaf\x5d\xbd\xed\xbb\xfe\x24\x98\xfd\x6e\x6e\xaa\xda\x9b\x5b\xd8\x3d\xfe\xde\xc5\xef\xd9\xa5\xc3\x01\x70\x09\xaa\x96\x2f\x09\x8f\xf1\x35\x9f\xf2\xb0\xb7\xd2\x80\x33\x62\xbf\xa3\x34\x14\xc3\x8a\x4e\x5a\xc6\xd2\x64\x15\xfa\x1d\xbb\xf8\xf1\xaa\x62\xf2\x11\x8d\x3d\xe4\x58\x85\xa6\xda\x81\xa2\x5a\xde\x50\x93\x60\x9e\x1a\xde\x86\x80\x7a\x84\x43\xb1\xc9\x17\x86\xf5\x89\x4f\x91\x58\xe5\xc1\x4a\xe5\x3c\xfd\x3b\xc7\x01\x9c\x5c\xbc\xbf\xbc\x3a\xb9\x38\xbb\x7a\xf3\x97\xda\x58\x6a\x56\xc0\xda\x47\x6a\x9d\x1e\x3d\xe6\x11\xdb\xeb\x74\xe9\x80\xc4\xd1\x64\x20\xe3\xae\x2a\x45\xea\x3d\xc5\x48\x5d\x11\x73\xd9\x83\xeb\x5b\x28\x68\x6f\xb7\x67\xf0\x44\x54\x5c\xc1\xd5\xed\x27\x35\x05\x2f\x1e\x6f\x26\x7c\x40\xfc\x91\x81\x01\x6c\xe9\x0d\x27\xa1\xd0\x28\xf4\xeb\xd3\x1b\xe2\x04\x04\x5e\xf0\xb4\x90\x90\xea\xc4\x6a\x67\x28\xa4\xee\x25\x23\x22\xe3\xad\x19\xd1\x12\x30\x7b\x88\xf8\x35\x3b\x9d\x74\x5e\x44\x0b\xb9\xed\x92\xe7\x9b\x6f\xe6\x8d\xfb\x1a\x5e\x78\xe5\xd7\xbd\x9f\xb0\x97\xdd\x1f\x6a\x1c\xf0\x36\x62\xa3\x28\xcc\x96\xfc\xdd\xdb\x47\xf0\x14\x1c\x6d\x3f\x35\xc5\x75\x6e\x27\x1e\xe5\x2b\x61\xbe\xb4\x67\x2e\x5b\x8a\x7c\xa1\xe2\x7d\x09\x86\xc2\x50\xfb\x9f\x5e\x5d\x3e\x98\x11\xb4\x52\x99\x71\xeb\xc9\xaf\x0c\xcf\x1a\xa4\x6d\x82\xc0\xfa\x95\xb5\x16\x52\x0d\x9a\x76\x53\xe8\x23\x9d\x80\x77\x04\xfe\xfa\x96\xb2\x44\xbb\xb6\xbf\xb1\xbd\xf5\xe2\x5b\xcf\x23\xd4\xb0\xf4\x80\x65\x03\xfe\x0f\x83\x88\x45\xec\x12\x53\xa1\x8b\x1e\x47\x61\x4b\xed\x81\x3e\x1a\x40\x43\x19\xb0\xc7\xad\xbc\x53\x9e\xb6\x8e\x82\xa2\x01\x0e\x69\xba\xa1\x32\x89\xf0\x0b\x95\x47\xc5\x80\x3d\xc4\x40\x0f\xa0\xa5\x5f\x43\x81\xd4\x11\x93\x69\xfe\xf5\x97\x23\x36\x4b\x14\x87\x7f\xe0\x8c\x47\xec\xe7\x5f\xc0\x21\x3d\xe3\x91\xf8\x8f\x7f\x8e\xd8\x92\xaf\x7e\xc6\x9f\xfc\xe7\x70\x4c\x53\x99\x1c\xa8\x22\x69\xf3\x2d\xeb\x5d\x53\x15\x09\x8d\x79\x38\xa6\x4b\x87\x11\x93\xe6\xd0\x05\xa0\xf1\xec\x6d\xc6\x67\x39\xfb\x92\x1d\x2f\xf2\x7c\xf5\xfa\xe4\xe4\xdf\xb5\x4a\xc7\x54\x9b\x58\x65\xf3\x93\xe7\x3d\x0e\x1d\x11\x98\x9d\x4f\xdb\xbf\x34\x3b\x6d\xfa\xbc\x5a\xc6\x02\x9c\x37\x21\xf9\x3c\x00\xc9\xa3\x9a\xbe\x1d\xa3\xbb\x68\x5e\xb2\x27\x30\xc4\x24\x79\x5f\xdb\xb4\x07\x74\xd0\x57\x8f\xf6\x5d\x3c\xf2\x3c\xdd\x7c\x36\x73\x21\x23\xc0\x43\x9d\x96\xad\x8c\x3b\x2e\x33\x92\xb8\xb3\x4e\x94\x55\x72\x5c\x79\xf2\x30\x31\xd0\x05\x13\x50\x24\x39\xc7\x30\xe6\x99\xe0\x79\x91\xf9\xf6\x94\x5a\x1c\x92\x7d\xc9\x36\x9d\x43\xf9\xd1\xb6\x70\x25\x34\xfe\xd8\x71\x95\xd9\x7c\x11\x15\xd4\x2f\x53\xe1\xd6\xa7\xec\x58\x65\xe0\xa5\xcf\x9e\xb7\xe7\xa7\x9e\x5d\x9c\xb7\x68\x18\xde\x9a\x57\x37\xa6\xc7\x55\x7f\x2a\xa7\xce\xe7\xcb\xf5\x19\xae\x8c\xc0\x91\x46\x0d\x94\xea\xc9\x4c\x31\x2c\x30\x7e\xc7\xf9\xde\x49\x4e\x12\x69\xb1\x7c\x64\x82\x73\x27\x2a\x43\xc9\x00\x0f\x46\x65\x5a\x06\x41\xae\xd2\xef\xf9\x27\xb9\xac\x2f\x68\x2f\x1f\x75\xd9\x89\x4c\xef\xd0\x89\x13\xd8\x1f\x84\x4f\x37\x2b\x14\x8d\x43\xdb\xbd\x6a\x97\xa7\x57\xd1\x73\xf2\xd8\x58\x74\x52\x7a\x8c\x52\x30\xea\xe6\x36\x5e\xd8\x09\x89\x7e\x13\x9b\xa1\x17\xbf\xbe\x4e\xaf\xd3\x31\x9b\x6a\x95\xe2\xdd\x92\xf1\x6b\x43\xde\xb5\x43\x3f\x64\xe7\x6f\xb1\xfa\x2a\xe3\xec\xe5\x97\x46\xe3\xcf\x78\x04\x15\x3f\x17\xe2\x93\xf5\xad\x8d\x59\x91\xc9\xd7\x66\xa8\x3f\x7e\x38\x67\x5c\xb3\x15\xcf\x08\x70\xe7\x5b\x95\xf0\x74\xce\x52\x91\x9f\x14\x59\x32\xb9\x30\x3f\x7c\x40\x9b\x83\x69\x3b\x66\x62\xc9\x65\x02\xef\xc2\xbf\x6c\xb1\xdb\xd6\x5e\x4c\x23\xec\xe6\x8c\x5a\x8e\xa1\x2e\x6d\xca\x97\xe2\xb5\xab\xa6\x5e\x01\xcc\x84\x0c\xd1\x94\x9d\x03\xe2\xe5\xff\xcf\xde\xbb\x37\x37\x72\x5b\xfb\xa2\xff\xfb\x53\xa0\x94\x53\x25\x4d\x36\x49\x49\x33\x63\x27\x19\xd7\xae\x5c\x79\x1e\x89\x8e\x67\x3c\xba\xa3\xb1\x73\x72\x23\xef\x63\xb0\x1b\x24\x11\x35\x81\x0e\xd0\x2d\x0d\x13\xfb\xbb\xdf\xc2\x5a\x00\x1a\xdd\x6c\x8a\x0f\xf1\x25\x09\xbb\x6a\xc7\x1a\x76\x37\xde\x58\x58\x58\x8f\xdf\x8f\x15\xc8\x01\x8c\x71\x53\x54\xfb\x98\x81\xfe\x84\x7c\x7a\xf7\x9a\x9c\x9e\xbc\x30\x77\x05\x4b\xf5\xfd\xa2\x77\x4a\xfe\xf1\xe9\xdd\x6b\xf3\xeb\xcf\x3d\xd2\x25\x3c\xbf\x79\xf9\x0a\x99\x79\x6f\x5e\x02\x3d\x6f\x7b\x4b\xb1\x91\xe7\x17\xf8\xc9\x37\xee\x93\x6f\x16\xfb\x24\xe1\xa9\x32\xdd\x79\x7d\xfe\xe6\xd3\xdd\xaf\xc3\x1b\x5d\x32\xa6\x89\x79\xff\xc3\xd9\xeb\x79\x43\x88\x9f\x99\x17\xbb\xa4\x2c\x61\xc6\x05\xf9\xf1\xc7\xf3\x37\x36\xd9\x01\x6f\xb5\x65\x9e\x23\xb6\x4f\x38\x3c\x18\xea\x3d\x64\x5f\xc8\xd1\x9f\xf9\xb3\xff\xf9\xc7\x49\xf7\x4f\xb4\x3b\xf8\xf9\x3f\x7f\xfc\xad\xfb\x67\xff\x8f\x97\x8b\xfd\xe3\xf4\xf9\x6f\xff\xcb\xb6\xe0\x85\x6f\xc2\x8b\x35\xb6\xe1\x85\xff\xd7\x8b\x45\x1a\xf1\xd2\x37\xe2\xe5\x1a\x1b\xf1\xb2\xde\x88\x3f\xfe\x89\xf6\x7f\x6e\x6f\x57\xd0\x94\xaf\x7d\x53\xbe\x5e\x63\x53\xbe\x5e\xb6\x29\x5c\xf7\x05\x2e\xdb\xcb\xef\x7e\x38\x3d\x21\x52\xe1\x5f\x2f\x5c\x1a\x9d\xdd\xfe\x80\x9a\x75\x75\x70\xf2\xe2\xf9\xe9\x1f\xbe\x3e\x3d\x79\xf9\xc2\x25\xe0\xfd\xe9\x0f\x7f\xec\xfa\x5f\x4f\xaf\x0e\x6c\x99\xa7\x27\x61\xa9\xf3\xcb\xb2\x5f\xbd\xa8\xbe\x9a\xd1\x82\x96\xfa\x12\xc5\x52\x5e\x24\x54\x81\x60\xc3\x7f\x11\xf3\x4f\x57\x42\xeb\x48\xfe\xcf\xd1\x9f\x5f\xc1\xcc\xc1\x58\x1c\xfd\xf9\x15\xfe\xfd\xe2\xb7\x67\x7f\xfe\xf5\xeb\x7f\x9c\x76\xbf\xfe\xd9\x3e\x7c\xf9\xdb\xaf\xdf\x1c\xfd\xf9\xd5\xc9\xe9\xe9\xaf\x30\xbc\xf8\xfb\x33\xff\xe9\xaf\x2f\xfe\xf1\xf2\x0f\xee\xe5\x17\xbf\xfd\xfa\xc2\xbc\xfc\x8f\x93\xee\xd7\x3f\xff\xfa\x8f\x6f\xfe\x58\x7f\xfb\xf4\xb7\x5f\x8f\xfe\xfc\xea\xf9\xe9\x8b\xd3\x5f\x4f\xff\x78\x72\xf2\xeb\x8b\xaf\xaf\xae\x52\x53\xa7\xf9\xcf\xe9\xe9\x6f\xcf\xfe\x97\x4d\x9e\x14\x13\x48\xd5\x4c\xf9\xd0\xf4\xa5\x92\xc8\x63\xfe\x05\x03\xe7\xbb\x44\x6b\x33\x73\xe4\xc7\xde\x65\x8f\x68\x99\x70\x9a\x19\x81\x56\x02\x79\x9e\xed\x78\x75\x34\x04\xfd\xc6\x1a\xff\xd1\x25\x3f\xff\xd9\xfc\xf9\xbc\xfa\xf3\x25\x2c\x89\x11\xfb\x92\xc8\x4c\x2a\x98\x8a\x11\xfb\x42\x53\x96\xf0\x31\xc6\xef\x4b\x45\x12\x99\x32\x37\x19\xbf\x7b\x07\xff\xf7\xaa\xbd\xa2\xdf\xfd\xf9\xc8\x2e\xb7\xb3\xee\x3b\x33\xb2\xbf\x86\xff\xfc\xc6\x74\xb6\x4b\xd4\xb0\x5f\xd5\xf6\xe9\x2f\xdf\x4d\xd5\xa2\x86\x7d\x57\x9d\x1a\xf6\x8f\x9e\x7f\xfd\x75\xc7\xfe\xff\x9f\x60\xf6\xfb\x93\x82\xbd\x22\x7d\xaa\xd9\x37\x2f\x09\x13\xe6\xc3\x94\xf4\xb9\xa0\x6a\x42\x00\x58\xa4\x4b\x1c\xfd\xf5\x2b\x18\x57\x87\x49\xe8\x0f\x36\x73\x4c\x9a\x91\x4c\x31\xb7\x2a\x5c\x6d\xcf\x4f\x4e\xbe\xe9\x9e\x9c\x76\x4f\x9e\x5f\x1d\x34\x8e\x91\x41\x99\x65\x5d\xf8\x84\x0b\x73\xa6\xbc\x78\xf1\xe2\x4f\xa6\x30\x4b\x4c\x06\x05\x7a\x92\xb2\x7a\xa1\xcf\x89\xd0\x58\xde\x94\xec\x2e\xf8\x98\xa1\xf0\x7e\xe3\x3e\x86\xd1\x40\xa0\x92\x8c\xe1\xf2\xb8\x4c\x68\x16\x14\x6f\x35\x06\xec\x89\x29\xc1\xf7\x06\xa0\xed\x9b\x5d\x3a\x7d\xd9\x3d\x7d\xde\x3d\xfd\xfa\xf3\xe9\x9f\x5e\xbd\x38\x79\xf5\xfc\xa4\x77\x72\x72\xf2\xff\x4d\x75\xd0\x14\xd0\x85\x02\xaa\x0e\xae\x10\x9f\xc0\xa7\x62\x43\x57\x86\x7a\xde\xca\x6d\xe5\x6c\xb6\x02\x3e\xa6\x5f\x5a\x0d\x57\x35\x36\xca\x6f\x5e\xae\xc0\x46\x39\xa6\x5f\xde\x33\x31\x9c\x8e\xdd\x58\x4b\xd1\xb3\xed\x59\x6b\x29\xbe\x4d\x83\xaf\x0a\x4e\x65\xd9\x6f\xfa\x25\x5d\xc9\x28\xa6\x66\x14\xcc\xc5\xa6\x06\x9b\x8b\x8d\x0d\x36\x17\x1b\x1d\xec\xf6\xeb\xd2\x1a\x06\xbb\xcc\x0a\x9e\x67\x6c\xda\x22\x77\xff\xb2\x85\xdc\x9a\x61\xac\xd5\xb2\x52\x6b\x4b\x99\x65\xb4\x3f\x7d\x87\x5e\xe8\xc2\x29\x45\xcb\xf8\x3c\x50\x8b\x65\x4e\x0b\x73\x4f\x5a\x45\x34\xdb\x4f\x67\xaf\xf3\xbd\x31\x3d\xdd\xcf\xda\x34\xc3\x71\xf2\x78\x3a\x18\x44\x9d\x2d\xb2\xa4\xd7\x08\x68\x5b\xf0\x62\xf6\x1e\x5c\x96\x70\x65\x21\x17\x29\x70\xd7\xb4\x9e\x27\x0b\x6d\xfd\x1a\x2c\x1b\x1b\xf7\x59\x9a\xb2\xd4\xc7\x03\xcf\x31\xf4\xdc\xfd\x71\x10\x99\x44\x0b\x07\x10\x57\x3a\xe2\x69\xf7\x3a\xf9\xde\x17\x41\x54\x29\x40\x4d\xfc\x68\x43\xc3\x40\x25\xfc\x3c\xc9\xd9\x07\x66\x81\xf6\x2a\xda\x35\x34\x11\x01\xf1\x8c\x33\xb5\xbb\xc8\x10\x44\x22\x77\xac\xb9\x85\x24\x83\x52\x41\x60\x87\x62\x66\x28\x93\xc2\x86\x0f\xdb\x06\xb8\xcf\x10\xd7\xaf\xc1\xe4\x5a\x43\xf1\xf3\xa6\x27\x42\xcb\x42\x8e\x69\xe1\x40\x63\x16\x01\xb7\x6b\xb4\xa9\xcf\x6c\xe6\x64\xbf\x2c\x2a\x32\xdf\x11\xbd\x61\xf6\x29\x0f\x83\x4d\xcc\xc7\x46\x2f\x9f\x04\xa8\x7b\x47\x65\x6e\x5e\x6d\x36\xbb\x82\x26\x9c\x05\x54\xb9\xf8\x82\xe0\xa2\xe8\x4a\xd5\xb5\x0b\x70\x89\xc5\x50\xfb\x30\x48\x9a\xb6\x4b\xc1\xe3\xbb\x73\x4d\x18\x87\xb9\x09\x48\xde\xa5\xf2\x41\xf5\x36\x0a\x16\x91\xf8\x71\xbc\x60\xed\xe4\xc5\x84\x78\x16\x73\x3b\xa8\x90\xda\x6f\x7e\xa3\x9a\x24\x23\x9e\xa5\x48\x35\x33\xf9\x38\x00\x18\x7f\xa6\x1c\x6b\xfb\x20\xb8\xd5\x05\x04\xd0\xd5\x8f\xf6\x20\xd0\x60\x61\x3c\x7d\x86\x85\xbc\xba\x12\x84\x90\x2e\x54\xf1\xca\xb5\xb5\xf6\x1b\x36\xf9\x4a\x3c\x7f\x46\xc0\x9f\xe9\xbe\x08\x3e\x6f\x2f\x60\xba\x08\xf8\xa9\xd7\xeb\x91\x7f\x33\x25\xcd\x80\x8c\xa5\x9a\xa1\xa1\x2c\x3e\x9b\x19\xd7\x45\x77\x4c\xf3\xee\x35\x9b\xcc\x4b\x80\x9f\xfd\x21\x01\x26\x13\x88\x19\xa3\xc2\x46\x39\xc3\x46\x35\x63\x38\xfd\x19\xcc\xc8\x2f\x63\x9a\xff\x62\xae\x5e\x36\x1f\xca\xdd\xa7\xa1\x3c\xc8\x1a\xa2\x8e\x20\x37\x65\x5f\xdc\x84\x8c\x69\xde\x33\x33\x00\x4c\x0c\x05\x1d\x22\x25\xab\xcb\xab\x2d\x2d\x83\x2b\xc2\x5c\xc0\xc2\xc2\xdd\x33\x32\x97\xc1\xf6\x86\x5c\x1d\x54\xd8\x92\x2e\x1d\xe4\xea\x60\x4c\xf3\xab\x83\x1e\x39\xcb\xb4\xec\x54\x72\x2a\x24\x02\xf7\xe0\xfe\x15\x03\x41\x90\xfe\x61\xee\xac\x0a\x26\x30\xb5\x49\x20\x2e\x27\x12\x56\x21\x66\x7e\x94\x8a\x91\x23\x21\x89\x60\xda\xb9\x22\x7d\xc8\xc7\x33\xdb\x4d\x46\xaa\xa3\x39\xa8\x1d\xaa\xb2\xdb\x24\x44\xee\x94\x0a\x7b\xdc\xf0\x86\x76\x4c\xaf\x00\x15\xc3\x0c\x86\xd4\xb5\x52\x8d\x18\xb3\xd6\x65\x0f\x3d\x88\xd8\x6c\xe6\x08\xd9\x3a\x00\x7c\xfb\x34\x2d\xbd\x36\x71\xdb\x4f\xaf\xcb\x40\xf6\xbb\x5c\x57\xc2\x21\x5e\x30\x97\x99\x1c\x4e\x2c\xcb\x47\xb5\x26\x60\xa8\xdb\x57\x98\x63\x98\x82\x21\x7f\x41\x72\xa9\x35\xd8\x2d\x70\xb1\x38\x51\xf1\x0b\x2d\xe4\x98\x27\xbf\xbc\xaa\xf0\xe0\x40\x72\xa1\x13\x98\xea\x0a\xc5\x80\x89\x02\x12\xaf\xc1\x7a\xe1\x56\x51\xcf\xca\x83\x33\x28\xc5\xd6\xec\x20\x5b\xcd\x17\x8a\x65\x13\xa2\x58\x9e\xd1\xc4\xa5\x69\x7a\x42\xa1\x7a\x5f\x6c\x49\x16\xcd\xc7\xf5\x85\x8a\x89\x67\x6b\x83\xd6\x1d\xe1\xf2\xec\xd8\x06\x74\x8c\xd4\x31\xeb\xf1\xf9\x33\xf2\x8b\x66\xc5\x2f\x4e\x6e\x5d\xb2\xa2\x02\x6f\xb3\xfb\xcd\x67\x0e\xc2\x98\xb8\xab\x16\x2e\xa5\x4a\x26\x68\x3a\x66\x2e\xea\xe9\x2d\x4d\x46\xb6\x40\x3c\x00\x9a\xdb\xa8\x53\x91\x83\x61\x09\xb5\xc9\x36\x32\x08\x05\x8a\x1d\x66\x38\x2b\x5c\x57\x03\x59\x34\x4b\x0e\xd9\xcf\x7a\x57\xe2\xc5\x33\x94\x4a\xae\x7f\x18\x8f\x65\xa7\x5a\x59\x13\xdd\x98\xe6\x1a\x33\x25\x50\x83\xe1\x8a\xb0\x8c\x01\x35\x83\xdb\x7a\x42\x8a\x2e\x4a\xad\x6b\x36\xb1\x65\x39\x7c\x25\x4c\xa1\x44\x34\xe5\x71\x8f\x7c\x44\x64\xbc\x00\x06\x98\x94\x39\x84\x5b\x2a\x9b\x46\x6b\x2a\x34\x92\xce\xcd\x5d\xdb\x6a\xb4\x11\x9b\xd0\x4d\xdf\x18\x23\x70\x60\x56\x51\x97\xb9\x12\x21\x82\x02\x76\x1a\xb7\xbb\x19\xa2\x55\xd2\xfb\x5b\xa7\x61\x99\x7d\xea\xa7\xae\xb6\x4d\xed\x4c\xaf\x61\x9f\xc2\x56\x70\x2a\x81\x2d\xb6\xb6\x65\x9f\xcf\xdc\xb2\x43\x45\x45\x99\x51\xd5\x58\x0b\x30\xf9\x15\x7a\x16\xfe\xfb\xe8\x9a\x4d\xba\xb8\x74\x73\xca\x95\x7e\x06\x95\x30\x9a\x8c\x1c\x3a\x32\xb8\x31\x85\x8b\x60\x28\x6c\x91\x90\xf6\x0d\xaf\x61\x8c\xf1\x11\x00\x03\x25\x46\x99\x31\x3f\xf6\x4d\x75\x82\xe7\x65\x46\x6d\x56\x87\x66\x39\x55\x00\x44\x9a\x14\x52\xe9\x8a\x90\xc8\x16\x18\xe2\x51\xf4\xd9\x88\xde\x70\x59\x2a\x2f\xd2\x4d\x5b\xed\x26\x5e\xab\x40\x82\x31\x58\x50\x1e\xdd\x73\x91\xcd\x50\xa3\x97\x59\x73\xb3\x34\x71\x5d\xc8\xbc\xc2\x54\xb5\xe8\x23\x29\x4b\x64\x0a\xda\x6a\xc1\x72\x9c\x2f\x07\x79\xb0\x18\xc4\xf8\x14\xde\x80\x9d\x32\x3a\x18\x00\x20\x95\x2d\x45\xb1\xa4\x54\x9a\xdf\xb0\x6c\x82\xca\xbf\xbe\xe5\x45\x32\x62\x1a\xf0\xbb\xcd\x56\x40\x0e\x25\x5f\x7b\x35\xbb\x7c\x00\xea\x03\x4b\xc3\x13\xdd\xcc\x78\xcb\xb5\xbd\x8e\x9e\xe3\x91\x56\xc2\x86\xc1\xea\xf3\x6a\x05\x00\x8a\x87\x71\x54\x3d\xa4\x11\x85\xab\x87\x54\x7d\x9e\xa6\x6c\x16\x95\xe8\xb4\x0e\xfa\x55\x63\x76\x37\x1c\x8e\xdb\x62\xe8\x5e\x38\x3a\xd5\x7e\x50\x0b\xd9\xb5\xa7\x13\x26\x03\xd6\x86\x09\xe3\x58\xc3\xe0\x56\x74\xcf\xe3\xe1\x23\x07\xcd\xc7\x3d\xf2\x81\x72\x23\xa8\x20\x95\x0f\x30\xd2\x6c\xc2\xaf\x85\x4e\x2b\x15\xa4\x5f\x6d\x32\x52\xd7\x46\x5e\x2e\x31\x22\xe6\xfd\x70\x40\xda\xfa\x4c\xec\xac\xbb\xb3\x7d\x0a\x9d\xde\xa5\x8e\xb9\xf7\xec\xa2\x9d\x6c\xb6\xab\x61\x50\xd6\x12\x3d\x0e\x3e\xab\xaf\x84\xd6\xae\xdb\x8b\x2d\x4c\xfa\x5a\xbb\x73\xc9\xd4\x0d\x4f\xd8\x27\x07\x08\x76\x47\x17\x9a\xaf\x92\x91\x84\xf3\xc7\xc7\xf4\x83\x25\xc1\xbe\xd5\xcb\xd8\x90\x26\x93\x26\x7d\xe1\xcc\x20\xea\x25\xe1\x7c\x42\x5c\x62\x6d\x6b\x24\x9f\x9c\x19\x6e\x25\x30\x21\x00\x9c\x5f\xa0\x09\xf0\x5e\xd8\x0e\xfc\x61\x7d\x8d\xc9\xe7\x67\x1e\x63\xbe\x25\x6a\x34\x0e\xc9\xf9\xc7\x4f\xef\x31\x0f\x93\x16\xf6\xe4\x30\xed\xb9\x65\xfd\x91\x94\xd7\xfe\x0c\x05\x20\x80\x64\xb5\xe3\xd2\x5c\x1e\xe7\x35\x0c\x48\xc2\xea\x0d\xb3\x43\x42\xe0\xd9\x82\x8d\x23\xbf\x98\xb7\x7f\x09\xb0\x3e\x5c\xb0\x12\x94\xe2\x90\x89\x4f\xbb\xdf\x7c\xfd\xf5\x8b\xaf\x3b\xc8\xf9\x6c\x0e\xb9\x67\x75\xb9\xf0\xf2\xe5\x8b\x1a\x55\x45\x83\xa9\xa2\x3e\x06\x35\xb7\xd2\x8b\xe7\x8b\xba\x95\xa6\x8e\x9e\xd9\x60\x23\xb8\xc6\x9a\x28\x56\xf6\x9f\xdb\xc8\x37\xfe\x1b\x8e\xf8\x6b\x00\x0e\x7b\x0d\x14\x01\x77\xec\xf8\x96\xb7\x2b\x24\x09\x34\x9f\xe0\x98\x59\xac\xcc\x31\x66\xde\x7e\x7e\x7f\x69\x5e\x13\x36\x28\xcc\x5f\xcc\xec\x74\x2f\x90\x52\x91\xd0\xef\x4a\x91\x4e\x5b\xb6\xa7\xa8\x38\xf1\x35\x8c\xb3\xbe\x78\xfb\xc1\x87\x2d\xbc\x3e\x23\x7d\x7c\x84\xab\xcd\xad\xb0\x29\xd8\xfd\xa0\x5d\x87\xda\xa9\x66\x89\x69\x13\xe4\x88\x20\x9e\x7f\x29\x02\x58\x40\x3d\xd1\x05\x1b\x9b\x13\x47\x17\x44\x49\x69\x6e\x43\xa8\xec\xf8\x59\xf0\x58\xe5\x33\x17\x58\x7f\x52\xcc\x30\xaf\xdd\x89\x50\x80\x3b\x69\x1b\x4e\xc0\xa9\x73\xe1\xce\xe4\x4e\xbb\xc3\xf9\xd4\x69\x10\x88\xc4\xca\xa8\xe5\xd6\x01\x79\x8b\x5a\x8e\x7b\xc1\x28\x83\x2a\xf3\x57\xf4\x0a\x09\xde\x5c\x9c\x2c\x54\xbb\x13\x19\x1c\xac\xf7\xa0\xaf\x9a\xf5\xe5\x10\x09\x90\x5f\xc4\xa2\x80\x4f\x64\xe9\x04\x08\x00\xf5\xdb\x7a\x7e\x99\x11\xe6\xde\x92\xfd\xd5\xe8\xa7\x69\xdd\x90\xdf\xd8\xec\xd5\xcc\x32\x21\x3a\xd1\x6f\x9b\xd6\x41\x1c\x15\x2a\x52\x23\x6f\x8c\x54\x06\xc6\xa7\xa3\x5f\x40\x17\x66\xaf\x8e\x8f\x47\x52\x17\xaf\x8c\x1c\x3b\x36\xf2\xfa\x97\x67\x3d\xf2\x36\xc0\xb0\x92\x03\xf2\x4b\xa9\x32\x84\x94\x71\x4d\x9e\x31\x28\xe6\x0a\xff\x8b\x29\xce\x4b\x4a\x73\x53\x80\x19\x80\x8b\xb8\x1f\x5a\x37\x56\xf5\x71\xfa\xd6\xd2\x9f\x06\x63\xe3\x40\x73\x2d\x93\x01\x18\x09\x20\x00\x74\xcc\x87\x23\x0b\x42\xab\x65\xe6\x70\xc4\x7c\xfe\xde\x9b\x1f\x2e\xa1\xdf\x72\x1c\xec\x03\x8d\x14\xb7\x1d\x64\x89\xac\x16\xdf\x2f\x46\xc7\xc5\x96\x42\x59\x84\x8b\xae\x6d\x12\x14\x44\x1d\x4c\x70\x25\xfc\x33\x3a\x61\x48\xaf\xcd\x65\x06\xc3\xfe\xac\xe7\xba\x6e\xae\xdc\x34\xd3\xe0\xc5\x80\xb8\x51\x17\xd4\x09\x63\x74\x91\x31\xaa\xe1\x0a\x65\xf5\x6b\xcc\x8c\xf8\xc5\x4c\x5f\x86\x05\x98\x91\x3e\x7d\xfe\x87\xde\x49\xef\xa4\x77\xfa\x0b\x5e\x52\x6d\xd9\x66\x9d\x71\x7d\x3d\x21\xa5\xc8\x98\xd6\xb0\xa6\x00\x60\x00\x20\x0d\x49\x02\x00\xd8\xd2\x8c\x6f\x6d\x6d\x13\xcc\x78\x84\xa1\x73\x17\x39\xf3\x8e\x51\xdc\xbd\x94\xc0\x9f\x71\x60\x05\x43\xc1\x04\x22\x14\x68\x66\x3d\xaa\xa5\xdf\x2e\x97\x65\x32\x42\xfe\x5a\xf3\xd8\x19\x8d\xb2\x89\x75\xe0\x08\x29\xba\x66\x55\xd1\x7e\xc6\x30\x0c\xb9\x03\xcb\x81\x51\x0d\xaf\x00\x4c\x4a\x99\x9b\x69\xa2\x44\xb0\x5b\xb7\x0a\xfc\x4a\xc2\x05\xea\x97\xda\xd5\x01\xa0\xfe\x5c\x1d\x7c\x0b\x4b\xc4\xac\x64\xfb\x68\xc8\xad\x54\xb7\xaf\xbc\x3a\x3e\xbe\x3a\x80\x62\xce\x88\x53\x4d\xdc\xf1\x6f\x01\x17\x3c\x29\x8a\x33\x10\x52\xe1\xb0\x74\xd0\x55\x62\x4d\x25\xd0\xb8\x1f\x3f\xbd\xef\x91\xbf\xcb\x12\xde\x75\x4b\x14\x0a\x2e\x24\xc4\xa0\xe1\x05\xa8\xcf\x0b\x45\x95\x2f\xc6\x8a\x1b\xbf\x0d\x31\x93\x14\x22\xfd\x3b\x84\xba\xde\x3a\x23\x19\xb7\x1d\x3f\x2b\x0a\x36\xce\x1d\x01\x97\xa9\xcc\x92\x4c\x82\xd6\xa0\x79\x42\x68\x59\x8c\x10\x31\xf2\xea\xc0\x3c\x79\xe5\xa2\xe0\xfe\x9f\xab\x03\xc4\x4a\x29\x2a\xa4\x95\x77\x8a\x0e\xd1\x44\x76\x74\x75\xf0\xbb\x5e\xaf\x77\x75\x80\x26\x9b\x7f\x95\x4c\x4d\x48\x4e\x15\x1d\x33\x08\x40\x3c\xba\x3a\xf8\xb3\x7b\x6e\xaf\xf8\xb6\x94\x8e\xbd\xfe\xad\x8c\x82\xb2\x98\xfe\x30\xc5\x96\xde\xf3\x39\xf6\xff\x6f\x49\xc1\x38\x73\x87\x6e\xe0\x5e\xb1\x50\x84\xfc\x0b\x4b\xbb\x98\x5d\xdf\x08\x27\x07\x3c\x10\x54\xd8\xc0\x55\x9a\x2b\x79\x03\x08\xa7\xc8\x18\xcf\x71\x4d\x28\x3d\x42\xd4\x83\x52\x54\xff\x30\xab\x01\x72\x58\xcd\x00\xfe\xfd\xec\xc3\x7b\x90\xad\xce\xfa\x00\xb7\x0d\x18\x8b\x23\x1c\xe2\x33\x7d\x2e\x8a\x6f\x5e\x9a\x7f\x01\x1a\x95\x54\xba\x5a\xdb\xb5\x4b\xb0\xcf\x18\x00\x9b\x1c\x62\x73\xfe\xcb\x76\xc8\x12\x56\xd8\xff\x7b\xf5\xea\xbf\x1d\xad\x2d\x1f\x0a\x96\xfe\x00\x1d\xc1\x77\xec\xef\x40\x5a\x61\x7f\x11\x84\x1c\xfd\xe0\x25\xcd\xf4\x0b\x6e\xf5\x83\x47\xb1\x53\xf1\xfa\x5f\x1d\x5c\x1d\x10\x08\x56\xe6\xc2\x7e\x66\x83\x45\x2f\xcf\x2d\x31\xe0\x33\xd7\x50\x08\x65\xad\xb7\xd2\x36\xf4\x84\xfc\x4a\x4e\xc9\xaf\xe0\xc8\xfb\x95\xfc\x89\x04\xef\xeb\xe6\x07\x55\xc7\xc2\xf2\x7e\x9d\xfe\xad\xa5\x10\x4b\x5e\x18\x0c\xc5\xcc\x72\x75\x5b\xc1\xba\xc6\x75\x38\xff\x3d\xd3\xa5\x99\xcd\x30\xf3\x32\x35\x1a\xd8\x8c\x83\xff\xba\x3a\x30\x25\x1e\x74\xaf\x0e\x66\xce\x62\xbd\xd1\xb5\x4e\xfd\x3a\x55\x45\xcb\x4b\x2d\x93\xdc\x32\x18\x18\x47\xeb\x26\xb3\xea\x26\x4e\xf2\xdb\x2f\xb9\x14\x4c\x4c\xcd\x42\x7d\x09\xb4\x17\x15\x54\xf5\x3d\x27\xbf\x92\x0f\xe6\x7f\xfe\x62\xfe\xe7\xb3\xf9\x9f\x0b\xf3\x3f\x6f\x39\xac\x4c\x4c\xe9\xa0\xf6\x5e\x76\x89\x8a\x2c\xf0\xed\xf1\x42\x7f\x4b\x2e\x19\x43\xa4\xb7\x57\xc7\xc7\xf9\x68\xa2\x79\xa2\x7b\x82\xeb\xa2\x37\x94\x37\xc7\x49\x59\x1e\xff\x68\xde\x3b\xc6\xfa\x7b\xa3\x62\x9c\x55\x6b\xb2\xd1\xd2\xaa\x4d\x63\x98\x00\x98\x87\x6b\xd3\x3a\xd3\x38\xd3\x36\xd3\x34\xd3\xb2\xc6\x96\x39\x3d\x79\xfe\x92\xfc\x37\x39\xfd\x9e\x83\xad\xf2\xf4\xe4\xe4\xc4\xfc\xf3\xfa\x5b\x72\x4e\x52\x9e\x8a\xc3\x82\x24\x23\x29\xed\x99\x90\xd0\x9c\x17\x7e\x5b\xf7\x9a\xcd\x69\x0c\x2b\xae\x09\x76\xd7\x5a\x30\x6d\x7d\x7b\xc7\x0b\x46\x5c\xfc\x60\x4e\xe9\xa2\xf0\x07\xb8\x55\xff\x8a\x91\x62\x0c\xc0\x8d\x84\x75\x76\x8e\xb5\x43\x02\x37\x07\x31\x71\x02\x06\x64\x80\x17\x92\x15\x81\x8f\x03\x49\x06\x38\x90\xe7\xff\xf3\xcd\x8b\xee\xa9\x91\x06\x63\x3a\x14\xbc\x28\x53\x66\x0a\x51\xf0\x31\x77\x1e\x30\x09\x2e\x57\x2a\xc8\x0b\xe2\x62\xcb\xc1\x32\xae\x7b\x04\x5b\xad\x49\x46\x95\x8d\x71\x80\xb7\x73\xc5\x12\xae\x59\x75\xe5\xa6\x79\x8e\xae\x5d\x25\x4b\xc0\x5c\x28\xf3\x1e\x39\x7a\xdb\x1b\xf6\x5e\x91\x93\xde\xe9\xd8\x82\xac\xf9\x87\x46\xea\x9e\x8e\x7b\xcf\xd0\xa4\xeb\xc4\x99\x03\x6c\x70\x1c\xa7\x25\xf8\x9f\xf9\x80\xdc\x7a\xff\x71\xd0\x12\x3d\xa6\xc0\xba\x60\x47\x84\x33\x94\xd3\x00\xec\x42\x49\x78\xb2\xd8\xb0\x6e\x90\x93\xd4\x43\x12\x38\x3a\x26\xc5\xc6\x0c\x86\xae\x70\xa1\x39\x72\xe0\x48\x84\x60\x8c\x52\xd4\x3e\x02\xa6\x7f\xeb\x1e\x44\xcf\xd0\x90\x02\x6d\x14\x13\xe6\x6d\xae\x03\x68\x44\x68\xcf\x77\x6c\x20\x55\x75\x74\x40\xd5\xbe\x71\x6e\x00\xf3\x12\x98\x16\xae\x0e\x12\x2a\xa4\x00\xfc\x52\x33\xf5\x57\x07\xd6\xe8\x3d\x66\x54\x58\x75\xd6\x2d\xc7\x63\xdb\x44\x57\x04\x4d\xff\x59\x82\x95\xbd\xcc\xcd\xe8\xa4\xf2\x56\x90\x23\x4b\xfd\x54\x21\xc3\xe1\x79\x98\x28\xd0\x66\x01\x7f\xdf\xfe\xcd\x05\xf9\x60\x1a\xa5\x35\x7d\x86\xdc\x49\xa6\x36\xf0\x2d\xd1\x1e\xf9\x41\xda\x39\xb7\x00\x2c\x99\xd4\xe0\x23\xea\xc3\xa3\x81\xa2\x89\x15\x07\x28\x5a\x2b\x67\x0b\x46\xaf\x98\x57\x2d\x1a\xb6\x5f\xda\x47\x66\x0a\xa1\x0b\xcf\xe0\xf4\xb7\x8b\x0c\xc2\xf0\xad\xcb\xab\x67\x4f\x5d\x3e\x14\xbe\x44\x69\xe3\x61\xac\x26\x0d\xe6\x33\x5c\xf9\x46\x89\x62\x43\x5a\xf0\x1b\x06\x03\xff\x16\xb5\x36\x0d\x7d\x38\xed\x7d\xed\x8b\x08\xb0\x2b\xa9\x26\x57\x07\xa7\x5f\x9f\x9c\x8c\xaf\x0e\xec\x6b\x7f\xe1\x77\xbc\xf8\xe2\x9b\x0f\xdc\xbc\x69\xf6\xaf\x13\x36\xa6\x09\xff\xaa\x4d\xe8\x0f\x6f\x7f\x7a\xfb\x09\xa2\xa1\x50\x54\x66\xd9\xa4\x09\x7f\x46\x11\x22\x03\x14\x57\xd0\x77\x9c\x6e\xf3\x79\x84\x49\x88\xa0\x84\x8e\x64\xc6\xec\x73\x07\x60\xcd\xbe\x30\x65\xf6\x5e\x0f\x1b\x21\xba\xd5\x8a\xb1\x01\x20\xc8\x31\x56\x98\xff\x85\x85\x0f\x43\x2b\xc5\xd0\x46\xab\x4c\x40\x51\xbc\x65\x19\x2e\x31\x23\x56\x8c\x8c\xac\x18\x56\xbb\xcc\x85\x1c\x09\xeb\x3d\xae\x2f\xca\x1e\x39\xba\x94\x8e\x1b\xd6\xec\x87\xfa\xe3\x0e\xae\x3e\x23\x63\x53\x3e\x18\x80\x38\xc5\x60\x98\x2a\xc3\xd2\x8c\x0b\xec\x74\x77\x57\xe1\xf8\x32\x4f\x2c\x76\x9f\xdd\x66\xda\x4d\x6e\x05\x52\x78\xab\x38\x8c\x1a\xdc\x11\x81\x49\xcd\xec\x56\x73\x9f\xa5\x19\x19\x51\x91\x82\xca\x07\xf9\x2a\x56\x8c\x8c\x64\x5e\xc5\x70\x51\xdb\xd3\x84\x9a\x2a\xb8\x59\x20\x46\xd1\x96\x0a\x7d\xce\xe6\xfe\x87\xda\x3b\xe8\xa2\x76\xec\xfd\x6b\x4d\x04\x99\x36\x65\x7a\x01\x15\x59\xf7\xc6\xac\xa0\xbd\x9b\xd3\xde\xd9\xc5\xf9\x5f\x1a\x2c\xd5\x4d\x15\xd9\xbd\x52\xb7\x99\x61\x26\x25\x48\x22\x17\x8f\xe3\x59\x60\x3c\x5f\x8c\xd9\xb3\x03\xa6\x54\x1d\x4f\x9f\x22\xc7\xf5\x22\x34\x24\x3e\x3c\x6f\x8e\x49\xe3\xec\xe2\xfc\xa7\x06\x65\x77\x00\x97\xcf\x52\x07\x4e\xe4\x16\x71\x8b\x72\x2f\x7c\x44\xe3\xa5\xbd\xf5\x5b\x5b\x04\x72\x7f\x17\xc0\x1a\x30\x14\xb0\x19\x1d\xbc\xba\xbd\xab\x65\xb4\x60\xc0\x54\x63\xad\x08\x36\x9e\xc8\xf9\xd1\x15\x03\xb7\x7a\x29\x82\x12\x70\xab\xb4\x82\xd3\x0e\x79\x61\xfd\x0d\xc7\x89\x1c\x8f\x8d\x56\x33\x39\x06\x92\x1f\xde\x2f\xcd\x42\x39\x4e\xd9\x0d\xcb\x8e\x35\x1f\x76\xa9\x4a\x46\xbc\x60\x10\x27\xe5\xa8\x4f\x6e\xcc\xc5\x50\x0a\xdd\x1b\xa7\xbf\x9b\x81\xbd\xbd\x88\x95\xee\x9a\x8b\x79\x28\xee\xdf\x73\x61\x31\xdc\xed\xdd\x15\xdd\x7f\x7e\x70\x5d\xbc\x1a\xc0\xb4\x07\x68\x71\x55\xa8\x41\xe5\x32\xaa\x86\x1d\x54\x03\x31\x70\xb4\x04\xfe\x72\xe1\x71\xcf\xd0\xf4\x03\x37\x2e\x5d\xf6\xc7\x46\xdc\x07\x90\x66\x3d\xf2\x1a\xad\x32\x7d\x56\xc5\xf8\x9c\x0b\xf2\x9a\x8e\x59\xf6\x9a\x6a\xb6\xf1\x41\x07\x74\xa2\xae\x19\xbf\x15\x86\xfd\x1e\x1e\xa4\xc6\xae\x5a\xb8\x4a\xbf\x49\x67\xec\xb5\x79\x86\xd9\x3b\xc4\x0b\x08\x0e\x5b\xec\x3b\xa9\xde\x38\xce\xb4\x3b\xed\xb0\xcd\xf6\x34\xc9\x2f\x2a\xa1\x62\x13\x38\xab\x70\x04\xc7\x56\x99\x2b\xd9\xa7\xfd\x6c\xe2\x3e\x75\x30\xfe\x8e\x4b\xf1\x0e\xea\x02\x65\x73\xcc\xbf\x9b\x58\x87\xc1\xf9\x9b\x4f\x73\x79\x8f\x20\x02\x49\x0e\xdc\xb2\x84\xfc\x6c\x07\x57\xaa\x7c\x72\x76\x61\x8f\x56\x4b\x91\x8d\xeb\x1b\x67\xcd\x85\xa9\x98\xaf\x46\x2c\xcb\x1d\x29\x0a\x51\x10\xe8\xe2\x0c\x91\xf6\x44\x19\x43\x2e\x3b\x2b\x6e\xa5\xba\xee\x32\x73\x6c\x41\xb5\xb7\x74\x52\xa9\x2e\xe4\xb5\x2d\x21\xa1\xc2\x6b\x8d\x34\x37\xa2\x56\x71\xc8\x6c\xac\x37\x8e\x42\xb0\x2f\x62\xba\x40\xf3\xad\x6a\x31\x41\x2a\x54\xd8\x43\x70\xb5\x97\x83\x2a\x66\x0d\x1e\x31\xdd\xf1\xcd\x0d\x0c\xd5\x68\x5c\x16\x43\xe6\xd8\x54\x4d\x97\x4d\xd1\xa8\x87\x79\xf6\x1a\x84\x8d\x84\xa8\x24\x8c\xbb\x84\x11\xb7\x83\x05\x61\xcf\xe2\x3a\x88\x86\xb7\x43\x6c\x7a\x65\x1b\xf6\xae\xb2\x90\xbd\xb2\x11\xb0\x60\x22\x6b\xe0\x2a\x7b\xf1\x7c\x7e\x81\x3d\x34\x55\x76\x5c\xc0\xb8\x2d\x16\x86\xdb\xc1\x82\x62\x0b\xd1\xd0\x5a\x2f\xc0\x49\x2b\x92\x49\x79\xad\x09\x2d\xc8\xff\xe9\xbe\x93\xea\x96\xaa\x94\xa5\xe6\x2f\x47\xd5\x23\x15\xf9\x3f\xdd\x4f\x8c\x66\xdd\xf3\x3c\xf8\xcd\xca\xab\xde\x27\x36\x96\x05\xa0\x1a\x90\x23\x17\x30\x07\x2c\xab\xcf\xcc\x42\x18\xb2\x5a\x97\xcf\x2f\xd6\x43\xc5\x74\xc7\x7e\xbd\x9c\xb5\x03\xee\x15\xae\xba\x2c\x2d\xb0\xa3\x63\xac\x68\x64\xbd\x8a\xe1\xd8\xe0\xda\x64\xdd\xfa\x87\x63\xa6\xf8\x5a\x7a\x34\x96\xf0\xae\x1e\xb4\x8d\xdc\x3c\xe7\xaa\xff\xbd\x16\xc9\x05\xa3\xe4\xe8\x2b\xba\xf6\x44\xaf\xaa\xab\x4d\xc6\xd0\xaa\x81\x07\xf5\x41\xb5\x1f\x79\x2d\xb0\xfe\xb4\x62\xe4\x3e\xb8\x39\x9d\xee\xee\xcf\xab\x2b\xa4\xef\xb9\x2e\x16\x50\x4a\xdf\xdb\xc8\xbc\x0a\x90\xd3\x3d\xe9\xa0\x3e\x9d\xc9\x5b\x2f\x9c\x0a\xe9\x59\x3b\xfd\xb9\x41\x0b\x02\x64\x47\x51\x1b\xdd\x6b\x6d\x14\x56\xe7\x3c\x01\x82\x2f\xb5\x2f\x87\x8d\xcb\x0a\xbf\x41\xee\x23\x29\xa3\xd2\xbd\x3d\xa5\x7b\x41\x91\x6c\x57\xde\xde\x08\x60\x10\x8c\x9b\x17\xc2\x9f\xa6\x73\x19\x5b\xc4\xdc\x27\x8f\x79\x1d\xe4\xaa\x55\xb7\x12\x5a\x2d\x40\x30\x60\x8e\x18\x44\x4a\xa0\x99\xd2\x47\x12\xa5\x0b\x85\xd2\x14\x6c\x28\x55\x4b\xf2\xed\x54\x30\x8d\x7b\xb1\x2e\x07\xfc\x05\x89\xa5\xa4\x41\x27\xe5\xdb\xd8\x67\x46\x5f\x05\x41\x0a\x1e\x7f\x72\x48\xb3\xec\xf0\xd9\xb6\xb3\x7b\x86\x0d\x83\x4c\x5b\x37\xe1\x1d\x77\xbb\xa9\x2e\x44\xf8\xb3\xed\x6e\x85\x35\x4e\xde\x42\xea\x1f\x1f\xe7\x99\x9b\xa2\xda\x9b\xd6\xb2\x83\xe4\x8c\x76\x30\x90\xbf\xf7\x1d\x18\x49\x2b\x34\xfc\x0e\x0e\x99\x4f\x0f\xa0\x01\xe1\xb5\x3d\x68\x06\xa1\x3a\x0e\xc8\xef\x57\x07\x2b\xdc\x4a\x17\x10\x85\xd7\x56\x14\x42\x4e\x9c\xf9\xdb\x85\xce\xfa\x4e\xd8\x69\x7c\x27\xe5\xe1\xd4\x8b\xc1\xe2\x3c\x1c\x48\xd9\x9c\xe7\x0d\x5c\xd6\xf3\xac\x54\x34\xab\xdd\xd9\xfd\x1c\xdd\x23\xda\x73\xde\x30\x55\x2f\x06\xc0\xf5\xbc\xb6\x3b\x6b\xdb\xd1\x5c\x50\x84\x6c\x92\x2d\x2f\x46\x36\x37\x92\xaa\x68\xa5\x7f\x6f\xc6\x5a\xf9\x17\xeb\xdb\x54\x97\xc3\x21\xc6\xea\xc3\x1b\x96\x3b\xfd\xee\xc1\xda\xfc\x8e\x34\x37\xc0\x32\xa3\xea\x87\xf9\xf3\x1d\xbe\xea\xad\x0f\xf6\xb7\xf6\x99\x27\x36\xdf\x01\xf1\xbe\x02\x5d\x15\x8c\xc9\x7e\xd5\x00\x3b\x85\x2b\x48\xe6\xf4\x5f\x25\xcb\x26\xf6\x2a\xdd\xa8\x13\x5c\x64\xe0\x72\x49\x30\x5d\x51\x31\x73\x7d\xc2\x2c\x0d\x20\x30\x80\x84\x28\x9b\xc0\x62\x86\x0f\x4a\xef\xcb\x62\x54\x55\x01\x88\xed\xb6\xea\x8a\x84\xa7\xd2\x0c\xcc\x29\x97\x14\x19\x79\xfd\xfe\x9c\x78\x08\xed\x95\xf8\x8a\xc0\x34\x63\x15\xe6\xbf\x52\x3d\x2f\x6a\x18\x62\xb9\xa8\x1e\x59\xc5\xc7\x45\x2c\xd7\x2d\x3c\x9d\x9a\xc5\xa8\x2e\xe6\xb9\x76\x5a\x34\x3a\x00\xc0\x75\x76\xab\x78\x51\x30\xe1\x94\x68\x48\x5e\x07\x5a\xf6\x1e\xf9\xa9\x96\x72\x17\xe4\x00\xe1\x2c\x90\xfe\xa4\xa2\xb0\x05\x6a\x23\x20\x8c\xe5\xc5\x04\xc3\x74\x15\x07\x68\x45\x51\xcf\xe5\x87\xd0\xcd\xca\xec\x43\x05\xa1\x59\x3e\xaa\x10\x76\x9d\xba\x8e\x7c\x0b\x10\xc6\x53\x31\xa7\xd7\xfc\x93\x0d\x96\xf8\x5c\x06\xe9\x50\xf5\x78\x4e\xb0\xb1\x58\x7b\xc7\xe5\xd4\xb0\xd7\x10\x7b\x21\xc5\x1c\xc9\x29\x6c\x23\xb1\x02\xe7\xb0\xa4\x3c\x08\x8d\x66\x37\x4c\x98\x72\x79\x41\x86\x8a\xa6\xa5\x11\x30\x2b\xac\x84\x1b\xa6\xfa\x0b\xd8\x08\xfa\x53\x22\xc3\x19\x07\xcc\x92\x24\xf8\xc6\x11\x66\xbf\x8b\x24\x2b\x53\xa6\xc9\x90\x15\x1d\xf8\xa0\x43\x6e\x69\x91\x8c\x3a\x16\x60\xb8\x63\xb5\xd5\x0e\xc9\xf1\xe7\x94\x65\xcc\xfc\x13\xff\x9b\xc8\x2c\xc3\xf0\xdf\x8e\x65\x30\x90\x5f\x26\x5b\xd7\x07\x6e\x16\xba\x74\xde\xd4\x8d\xa5\xad\x9e\x97\xb9\x5a\x41\x93\x9d\x76\x86\x5e\x70\x6f\xb5\xe0\xe6\x94\x1c\x21\xd3\xbf\xa5\x5b\xa2\xc4\x86\xec\x4e\x37\x41\x55\x6d\x3e\xb4\x86\x9f\x67\x8b\x6b\x14\x2b\x1a\x5e\x6a\x12\xbf\xfd\xd0\x6d\xea\x2a\x53\x2b\x79\xde\x95\xe1\x5e\x7a\xf9\x7c\xfb\x48\xf8\xe6\xd4\x9d\xf8\x93\x67\x3b\x43\x65\xdc\x45\x94\x23\xab\xd5\x94\x6b\x21\xa0\x2d\x0d\x4d\x71\xd4\xe9\xfd\x89\xd5\x27\xcd\x26\xf1\x12\xd8\x46\x4c\xd6\x14\xb2\x65\xf5\xfe\x68\x73\xd9\xb1\xcd\x65\xb1\xd1\x0f\x5f\x75\x12\x68\x6a\x45\xe0\xc0\xb7\xac\xcc\x81\x5c\x38\x48\x34\xda\x4a\x76\xed\xa0\x9c\x49\x26\xdd\x18\xfb\x4a\x64\x4c\xc5\x0d\x4c\x4b\x95\x4a\x54\x60\x74\x48\x9b\x8c\x20\x1b\xb3\xdb\x79\x5b\xc7\xd2\xa7\xf4\x32\x36\x24\xb7\x93\x5a\xc7\x72\x1f\xcc\x4b\xb5\xa3\x65\xf3\x16\xa6\x9f\xa6\xbd\x42\xb3\x85\xba\xf6\x00\x1a\x81\x5b\x08\x71\x92\x8d\xb2\x7c\x43\x79\x86\x09\x03\xcb\x18\xfd\x9d\xb7\xd8\x0a\x2c\x25\x65\x81\xf1\xf9\x76\x7d\x62\xf2\xa7\x51\x56\x80\x55\x22\x1e\x56\x7b\x7c\x58\xc5\xd3\x60\x27\xa7\x41\x0c\x99\x88\x21\x13\x31\x64\x62\x7f\x42\x26\x68\xce\xef\x3a\x1f\xb7\x63\x39\x5d\x50\x2b\xf2\x7d\x5c\x4c\x9e\xec\x83\x8a\xf4\xd3\x74\x93\x37\xa2\x1e\xbd\x01\xf3\xd3\xc7\xbc\xc9\x56\xd5\x9c\xff\xda\x7b\x2e\x8d\xc1\xa6\xa6\x59\x5c\x21\xb0\x64\xd9\xed\x68\x74\x1f\x47\xc3\x1a\xb5\x99\x3d\xd6\x66\x52\x35\xf9\x54\xce\x1b\x77\x48\x34\xb1\x43\xd9\xa9\x71\x12\xd3\x82\x8c\x65\xea\xf9\x21\x75\x98\x56\x6d\x16\x88\x99\x19\x0d\x9a\xc6\x99\x91\xd1\x08\x49\x01\x20\x46\xc1\x28\x61\x1b\x48\xca\x15\x4b\x0a\x7e\xc3\xdc\xe1\xa0\x81\x4d\x0e\xce\x07\xa6\x14\x48\x66\x9d\x4b\xa1\xd1\x66\x2d\x2a\x4c\xb2\x5c\xc9\x84\x69\x38\x0a\xfc\x85\x0f\x65\x38\x01\x36\x5d\x97\x2f\x40\x15\x7b\x45\xba\xe4\x2c\xcb\x5e\x41\xb6\x71\xaa\x26\x90\x65\xac\x0b\x3a\x64\x55\x2a\x87\x2d\xae\x89\x45\xb2\x0d\x7f\x2c\x4d\xd8\x05\x53\x5c\xa6\x97\x2c\x91\x62\x2e\x9a\x96\x39\xab\x3d\x19\x03\x17\x44\xe3\x57\xa4\x8f\x99\x38\x45\x85\x4f\x5b\x01\x83\xa0\xc1\x39\x6d\x7a\x1b\x84\x14\x5d\x97\x54\xe2\xc0\x4f\x51\x19\x40\xe5\x15\x80\x4e\xab\xa9\xc7\x52\x08\x1f\x8f\x59\x6a\x34\x96\x6c\x52\x41\xc1\x7a\xd7\x83\xe0\x19\xba\x47\x1c\x10\x1a\x74\xd0\xac\x0a\x2e\x2b\x1f\x6a\x05\x82\x05\x59\x46\x21\xf4\x44\x1d\x9c\x84\x82\x12\x64\x3b\x64\x2b\x19\xd4\xb1\xbe\x2c\x20\x2b\x26\x11\xb5\xb4\xf1\x0e\x00\x93\x95\x70\xf1\xe3\x65\x60\x27\x97\x01\xa9\xf2\x11\x15\x6f\x1c\x86\xdf\xbc\x6d\xf2\xc6\x0c\x60\x02\x9c\x64\x24\x47\x78\x03\xa7\x04\x5f\x28\x99\xd3\x21\x6c\xa0\x0b\x99\xf1\x64\x62\x1d\x0c\x81\x13\x0a\xf6\x8c\x2b\xc0\xec\xb2\xd3\xde\x1f\x7a\xe4\x12\x37\x14\xae\x6e\xdb\x0e\x3b\x61\x1a\xb2\xb7\xa0\x89\x30\xac\x03\x80\xdb\x3a\x1e\xd0\x4c\xdb\x4c\x96\x2b\xdb\x83\xab\x03\x32\xe0\x02\x12\xaf\x54\x90\xde\x86\xf9\x42\xc7\xce\x09\xe7\x27\x17\x8b\x3f\xd4\xd5\x47\xda\x46\x4f\x58\x64\x90\xa0\xe9\x52\x4d\xf7\xcd\x9d\xdb\x9a\x15\x98\x0a\x05\x2b\x40\x16\xa3\x55\x3c\xf0\x66\x44\xa4\x48\xdb\x79\x2e\xef\xa1\xe6\x5e\xd4\xca\xbd\x2b\x7c\xff\x83\x15\x5d\x83\x32\x1b\xf0\x2c\x63\xa9\x93\x7b\xd4\xea\x22\x68\x22\x4e\xa8\x52\x46\xba\xc8\xb2\x80\xc9\x30\x9d\x76\x37\xb1\x0e\xa1\xe4\xe5\xc9\x9f\xc8\x6b\x29\x06\x19\x37\x72\x12\xdd\xd6\x55\x8e\x98\xb9\xa1\xb0\x74\x46\x1c\x7f\xde\x1c\xe1\xf9\x07\xa9\x05\xd3\x4e\xc9\x48\xde\x92\x21\x55\x7d\x3a\x64\xa4\x72\xff\x55\x87\x10\x53\x98\xb4\x36\x63\x72\x3f\x36\xb6\xc0\xec\xb9\x05\x21\xee\x24\x70\x8e\x0b\x81\x6b\x48\x80\x4d\x2b\xe7\x2d\xfb\xc2\x11\xf8\xb8\x5a\x90\x9a\x15\xfe\x52\x6b\x21\xcb\x7b\xc1\xca\x73\xa9\x57\x4e\x66\x75\xbd\x8b\xa6\x5e\x59\x8f\x9c\x25\x09\xcb\x01\x67\xa3\x76\x12\x1f\x62\x1f\x0e\x49\xd7\xee\x96\xfa\x6e\xd2\xdf\x92\xc3\xef\x68\x72\x3d\x84\x64\x5a\xf3\x16\xda\xdb\xc0\xe4\x5f\x1f\x38\x09\xf0\x2d\x56\xde\xd7\x0b\x71\x3d\xe8\xfb\x92\xbe\x25\x87\xef\xa4\x62\x41\xb1\xe6\xee\x9c\xd0\x14\x53\x14\x61\x7c\x40\xb3\xc1\xf2\x34\xaa\x0a\x53\x05\x0e\x7c\x19\xeb\xc2\x9d\xd8\xf8\xbd\xa2\xae\xec\x2f\x74\xb3\xe8\xcc\xa9\x88\xa6\x00\x45\x22\x45\x13\xb9\xee\x61\x55\x0c\x1e\xe1\x55\x6a\x57\x6c\xc8\x75\x81\x1a\xd8\xce\x86\x60\xed\x8d\x58\x7a\x38\x6a\x98\x58\xdb\x1e\x86\xb5\x57\xbe\x42\xf7\x77\xba\x0e\x36\x50\xfd\xf2\x43\x90\xeb\x2d\x76\xf8\xbe\x95\x6d\xbf\x7b\xa6\xc6\xe7\xcb\xd4\x58\x16\x23\xa3\x2e\x27\xbb\x59\x52\xeb\xaf\x7d\xe9\x21\x2f\x8b\x91\x54\x0e\xaa\x64\x07\xfd\x5f\x6f\xe5\x2b\x74\x5f\xea\x04\x60\x9d\xb6\xd9\xeb\xb5\xd4\xf9\x7c\x57\x9d\x7d\xbe\xec\x2e\xeb\xd3\x22\x19\x6d\x6d\x7c\xd7\x50\xdb\xb2\x23\x7b\xff\x2a\x9f\x43\xb8\xe8\x32\x75\x06\x70\xa0\x5b\x57\x06\xd6\x5e\xf7\xb2\x03\x9e\x48\xa9\x52\x2e\x76\x22\xb5\xd6\x5e\xf7\xb2\x9d\x77\xf1\x0f\x53\x38\xd6\x2b\xd5\xbe\xf4\xc2\x5b\x6f\xf5\xcb\x76\x9e\xdd\x80\x89\x6e\xcb\x73\xbe\xc6\x5a\x97\xee\xb0\xd7\xba\xb7\x5b\xef\x20\x93\xb7\x60\x75\x94\x59\xaf\x02\xe8\xdd\xc9\x8a\xe3\x63\x3a\x64\xd6\xcc\xb1\x93\x06\xd8\x40\x03\x2e\x86\xdb\x5e\x78\x6b\xae\x79\xd9\x45\x20\x64\xca\x76\x34\xe4\xeb\xaa\x79\xd9\x2e\xe3\x3a\xdb\x6e\x9d\xaa\x4f\x93\xde\x4e\x55\xf1\x0d\xb5\x60\xe9\x69\xdf\x50\x3b\x96\x9d\x10\x9d\x8c\x58\x5a\x66\x3b\xd8\xf0\x6b\xae\x79\xe9\x09\x58\x73\xfd\x4b\x0f\x3c\x2b\x0a\x2e\x86\xeb\x39\x6a\x97\xef\x3c\x66\x51\x6d\x7d\xce\xd7\x58\xed\x4e\xfb\xdc\x9c\x6d\xfb\xd7\x0a\x11\x33\xef\x80\x26\xea\xa7\xd3\x3b\x82\x65\xdc\x2b\x98\xd7\x07\xae\x5f\x06\xf9\x30\x8e\x69\x56\x10\xea\x12\xff\x1c\xf7\xa4\x65\xf5\xfa\xac\x38\xeb\x78\x1c\x67\x74\x50\x23\xc6\x23\x4d\x46\xe4\x9a\x4d\x42\x4a\x56\x72\xd8\x3b\x9c\x76\x24\xdb\x04\xbd\x42\xb3\x6c\x10\xe0\x79\x5a\x18\x43\x60\xb0\x93\x15\x4b\x2b\xf8\x8b\x42\xce\x9c\x5a\x79\x94\xe8\xb2\xdf\xf5\x4e\x27\x5e\xb0\xb1\x8d\x10\xc4\x97\xa1\x64\x24\x66\x0d\xa8\x5a\x35\x23\x03\xcb\x76\x36\xa6\x85\x7e\x45\x0e\x07\xaf\x2c\x12\x30\x1d\x23\x26\x30\x3b\xec\x90\x5b\xa0\x5c\x6a\x3e\x68\x02\x8e\x51\x0f\xb1\x4f\xdc\x78\x41\x83\x61\x2c\xcc\x6f\xa6\x47\x87\x37\xb6\x02\xf0\x2f\xb5\xd6\x10\x3c\x71\x55\xb0\x2f\x34\x29\xc8\x3f\xb5\x47\xb8\x2e\x5c\xcc\x0e\x56\xec\x89\x37\xc9\x21\xb7\xe5\x03\x95\x60\x6b\xf9\xc1\x13\xcc\x8e\xd4\xdc\x47\x1d\x61\x21\xdc\x93\x03\x1e\x5e\xdb\xe2\xae\xd9\x44\xb7\x96\x56\x3d\xc0\xd8\x01\x1b\xc3\x1a\x36\xea\x50\xc3\x18\xd8\x35\x85\x41\x4a\x5c\x11\x64\x9c\x76\x8e\xb6\x73\x53\xfb\x35\x04\x8a\xe6\xba\x36\xf1\xb8\x48\x3d\x25\xa9\x5f\x38\xe0\xfa\x32\x5f\x04\x2c\x4b\x88\x2c\x5b\x54\xa4\x3d\x85\x07\x0a\xc7\x31\xac\x00\x2f\x2d\x39\x19\x44\xa3\x70\x2f\x2d\x8f\xfd\x42\x4f\xbb\x40\xa7\xd8\x4d\xf9\x60\x50\x79\xbc\xee\x9d\xb0\x36\x13\x40\x69\xf6\x2e\x0d\x3f\xa9\xa7\x8e\x5c\xa1\x0c\x3a\xb6\x12\xe4\xea\x00\x76\xd1\xd5\x41\xf5\x6f\xbb\xfc\x61\x6e\x1d\xd4\x9b\xe5\xb5\x1e\x53\xc8\x32\xc4\x0e\x03\x01\x34\x63\xb9\xa3\x46\x6c\xf2\xe8\xcc\x8c\x89\x5b\x35\x25\xaa\x0e\x8f\x71\x76\x71\xde\x92\x1d\x55\x39\x30\xc7\xd3\x5d\x5d\x3e\x18\x63\xb9\xac\xd1\x7a\x03\xdb\x9a\x24\x07\xe1\x50\xd7\xa2\xaf\xb5\x23\x10\xf6\x39\x17\x23\x46\x0a\x25\xcb\x7e\x86\x58\xc6\x79\xc6\x0b\x2f\x08\xc3\x09\x5e\x73\x16\xe7\xac\x3c\x1b\x37\x16\xee\x78\x59\xdf\x02\x7f\x4f\xfb\x2c\xbb\x64\xe8\xed\xbe\x2b\x93\x85\x64\xe6\x4d\xa2\xed\xab\x36\x21\x13\x7e\x43\x4e\x05\x48\x50\xf1\x47\x92\x8f\x1d\x44\xb9\x6e\xa3\xee\xe4\x00\x03\xb8\xa1\x56\xc7\xad\x5b\x24\xa3\xb7\x5f\x8c\x4c\xa8\x22\x81\xcf\x7e\x78\x63\x83\xfb\x50\xa8\x34\xea\xb6\x21\xe8\xe0\x41\xb7\xb1\x31\x3d\x72\x46\x44\x99\x65\xb3\x5e\x15\xd2\xbf\x39\x7f\x97\x34\xdb\x34\x67\x0d\x4e\x75\xa1\x96\xac\xda\x68\x90\x9d\xf8\x31\xc6\x5d\x7d\x1e\xb1\xda\x2f\x41\xef\x37\x1d\xf7\x5d\x9b\xf9\x4f\x55\x1b\xee\x15\x6a\x18\xcc\x6e\x73\xd0\xda\xd8\x2a\x57\x0f\x7b\x6c\x9b\x02\xbb\xaa\xc2\x83\xed\x3f\xd7\x6c\xd2\x81\xb3\xe8\x37\x24\x6e\x35\xeb\xc4\xe2\x46\x84\xcf\x5c\x3c\x4a\x50\x8c\x29\xc1\x28\x45\xff\x2a\xf9\x0d\xcd\x98\x28\xdc\x31\x87\x48\xc6\x7e\x2d\x07\x13\x6f\xce\x5a\xa9\x59\x75\x7e\x9a\x02\xae\x0e\xae\xd9\xe4\xea\x00\xcf\x42\xd3\x71\x6a\xb7\xcf\xd5\xc1\xb9\x30\xbf\xbb\x80\x17\x1f\xc3\xa2\xe8\xa4\x3a\x38\x20\x49\xe2\xea\x00\xd5\x8c\x83\x25\x56\x4c\x9b\x68\x68\x97\x45\xeb\x15\x22\xe1\x52\x5a\x42\x9e\x04\x7d\xb2\x61\x8d\xee\x09\xb2\x71\xba\xf1\xc0\x51\xea\xa0\xfa\x81\x83\x07\x2c\x77\x76\x5c\xe1\x65\xc5\x32\x1b\x48\x8c\x73\x01\xa7\x14\xc6\x4c\xcf\xdf\xfc\xd7\x6c\x5e\xb8\x95\x55\x97\x31\x78\xdb\x74\xc2\xfc\xe0\x93\x55\x7c\xbb\x69\x6e\x71\x09\xe4\xdd\xa7\x44\xed\x59\x9d\xc8\xd6\xac\x2f\xab\xd8\x60\xb3\xa0\x75\xf3\x3e\x00\x8f\x3d\x1b\xc2\xfb\xf0\xf1\x8c\x68\x47\x3b\x66\x73\x7a\xeb\x87\xb6\x46\x8f\x79\xcd\x26\x87\x1a\x07\xda\xac\xfc\x11\xcf\x1d\xd3\x15\xec\x0c\x17\xa1\x8e\x71\xd2\xae\x08\x5c\xac\xe7\xa2\x43\x7e\x90\x85\xf9\xcf\xdb\x2f\x9e\x63\xfd\x8d\x64\xfa\x07\x59\xc0\x2f\xab\x60\x6f\x40\x85\xf3\x94\x05\xdc\x61\x5c\xd7\x98\x5b\xc3\xf8\x59\x6d\xc3\x8d\xeb\x3b\xf5\x5c\x98\x9b\x81\x6d\xf3\xd4\x56\x0d\x43\x9d\xe1\xb8\x6a\x2d\xc3\x76\x55\xaa\x5a\x4f\xef\x28\xce\x16\x85\xd8\x3a\xf0\x04\x53\x0f\x90\x72\x39\x2d\x95\xbd\x48\xe1\x64\xf3\x04\xf9\xc4\x11\x07\x64\xaf\xd2\x64\xea\x4b\xb6\x5a\x76\x1b\x50\x66\xb8\x2e\x3e\xb0\x82\xde\x21\x77\xdc\x2b\x9e\x70\x5c\xfb\x20\x44\xdc\xc2\x7a\x22\x8a\x11\x2b\x78\x12\x64\x77\xc3\x94\x8c\xe8\x0d\xb3\x0c\x97\x10\xd2\x97\xf9\xa5\x7b\x43\x15\x97\xa5\xf6\xd8\x44\x95\x46\xe2\xe3\xae\x3d\xb0\x08\x88\x73\x7b\xa5\xfd\xcf\x47\x78\xd3\x34\xa7\x43\x5c\xc3\x7e\x5b\x04\x4c\x4e\x9a\x6b\x74\x39\x97\x97\xd1\xbe\x16\xc4\x70\xba\xd4\x37\xa0\xd6\x32\xff\x36\x7a\xca\x98\x17\x0e\xde\xc7\x32\x41\xc8\x81\x65\xf3\x77\x81\xaa\x16\x0c\xa3\x9e\xa2\x11\x24\xcc\x8d\xa8\x45\x6d\x82\x81\xac\xd2\xb5\x82\x48\x7f\xee\xf1\x86\x5c\x6a\x4b\x40\x04\xc9\xb5\x86\x07\xc8\x92\x6e\x23\xca\x5d\x86\x4c\x10\x7c\x6e\x26\x08\x29\xf4\x21\x6c\x15\x74\xac\x42\x9a\x66\x2a\xce\xac\x12\x2f\xd8\x97\xc2\xc9\x21\xdf\x92\x6a\x56\x5e\xe3\xa8\xe0\xee\x49\xa4\x80\x4c\x12\x51\x60\x59\xa6\x59\x2e\xc9\xc4\xd1\xc6\xf3\x41\xd8\xd3\x04\xf8\x37\x5d\x72\x84\xe9\x37\x22\x1c\xa5\x9e\xdb\x05\x98\x60\x28\x19\xb0\x5b\x32\xe6\xa2\x34\xc3\x05\x53\x9f\x53\xad\x59\xea\xf5\x61\x58\x18\xee\x7e\x85\xda\x82\x1b\x6d\x4b\xa8\xae\x7d\xc2\xa8\x9f\x49\x1c\x4a\x17\xcc\x8b\x1c\x6a\x09\xcd\xdc\x48\xd9\x91\xb6\xb7\x1e\xae\x74\xe1\x93\x5b\x3a\x21\x75\x1e\xb4\x47\xb1\x84\x71\x3f\x94\x85\xbc\x66\xc2\x32\xbc\xb8\xc4\x98\x31\xd3\x9a\x0e\x57\x01\xc5\x42\x84\x25\x2e\x86\xe7\x05\x1b\xbf\x96\xa5\x98\xc7\x58\x3b\xfd\x81\x37\xd8\xf8\x25\xa9\xcb\xbe\x36\x2b\x43\x14\x76\x75\xda\x8e\xc2\xcc\xd5\x59\xda\x2d\x70\x52\x85\xb7\x0c\xef\xb8\xb1\xf0\x02\xda\xfe\x8a\xab\xcd\xaa\x18\x2c\xb5\xa7\xba\x54\x76\x5a\xdc\x89\xae\x2d\xa1\x65\xbd\x55\xbe\xe5\xae\x51\x9a\x58\xde\x79\xaf\xd9\xd5\xa3\xfe\x33\x36\x28\x48\x29\x60\xf7\x89\xd4\xf3\xb1\x58\x89\x5e\x63\x48\xab\x37\x14\x16\xc2\x38\x87\x68\xe4\x23\x4f\x4d\x6e\x89\x38\x0a\xc7\x81\x97\x8c\x4a\x71\x0d\x56\x84\xea\x69\xe1\xee\xba\xa0\xb2\x68\xfb\xd2\xb3\xaa\x3f\x8a\xd9\xa1\xc3\x25\xdc\xec\x13\x76\x64\x2a\x7f\x61\xa9\x9e\xb8\x14\x13\x99\xa5\x8e\x5d\xe9\xe6\xb4\x77\xfa\x35\x49\x25\x26\xdb\x40\xe6\xab\xab\x03\xb7\x89\xa7\x39\x29\x75\x00\xba\xd1\xb6\x52\x7e\xcf\x74\xc1\xc7\xc0\x07\xf3\x7b\x8b\x59\xf7\x6f\x6b\x6e\xab\xa2\xe0\xab\x04\xe9\x1a\x4d\x27\x48\xe4\x59\x65\x23\xa9\x23\x88\x13\x65\xff\x01\xb6\xa9\xb5\xe7\xfc\x34\x44\xc2\x9c\xfd\x72\x69\xc9\x16\x21\x63\xda\x51\x29\x86\x39\xcc\x87\x3a\x48\x29\x0c\x21\xa9\xaa\x04\x20\x4f\x73\xef\x04\x71\x05\x04\x87\x71\xef\x05\x53\x63\x2e\x18\x8a\x23\x97\x84\x02\xb2\xc3\xca\xbc\x65\xb0\xe5\x10\x80\x0c\x64\x20\x29\x05\xa6\xf7\x99\x3a\x69\x72\x1d\x52\xd4\x32\xd5\x23\x17\x4d\x08\x38\x24\xfb\xed\x91\x4f\x8c\xa6\x5d\x73\x84\x6e\x3c\x8f\x28\x91\x22\x29\x95\x62\x22\x99\x74\x6d\x50\x40\x97\x8a\xb4\xeb\x0f\x8c\xa6\xc7\x74\x31\xb0\x81\x6c\xf0\x9e\x8b\xeb\x79\x10\x8c\xf6\x35\xbc\x07\xfd\xf8\xe9\x7d\xd3\x18\xef\xa7\x70\xa1\xa1\xba\x12\x57\xe2\xcd\xdb\x8b\x4f\x6f\x5f\x9f\x7d\x7e\xfb\x86\x7c\xef\xaf\x0b\x8e\xe8\x48\xe6\xc4\x67\x9c\xb8\xf2\xbd\x71\xfc\xb4\xf7\xfc\xc4\xec\x11\x48\x6f\xaa\x0b\x34\xae\x49\x9e\x51\x21\xf0\x08\xaf\xc3\xfb\x9d\xf6\x9e\x9f\xba\xcf\xb6\x4d\xa0\x59\x29\x84\x1f\xa8\xa0\x43\x96\xa2\x4d\xfa\xad\x28\xee\x34\xdc\x4e\xbf\x8c\x13\x70\x2b\xd5\xf5\x20\x93\xb7\x5d\x6e\xd4\x20\x34\x70\x5f\x5a\x91\x57\xe1\x44\xcd\x40\xa9\xab\x34\x25\x34\xa8\x9b\xef\x5a\xee\x85\x9b\x4e\x62\x0e\x72\x97\xeb\xed\xf2\x53\xdd\x68\x19\x62\x32\x7a\xf3\xfb\xb4\xe9\xfa\x9f\x66\xcb\x83\x77\x09\x8c\xa5\x32\xef\x66\x66\x73\x91\xa0\x1d\x56\x90\xa3\xfd\x5a\xb0\xc4\x68\x13\x0a\x39\x70\x15\xec\xfa\x7a\xfb\x68\xd0\x92\xe0\x58\x4b\x7c\x46\x21\x2d\x0b\x69\x44\x7c\x02\x7c\x60\x1e\x02\x73\x05\xf5\x04\xe7\xe2\x33\xbe\x79\xd7\xa8\xbe\xf3\x2f\xba\xe3\x33\xe5\xe6\x85\x31\x17\x70\xb1\x73\xc9\xa6\x15\x5a\xa0\xf5\x9b\xd8\xa1\x0b\xec\xe3\x30\xa4\x0a\xd1\x3b\x41\xb2\x20\xd3\xb4\xbd\x0e\x78\x6d\x13\x54\xb8\x57\xe4\xca\x7b\xfb\x56\xb1\x9d\x0f\xa6\x9d\x89\xe4\x9e\xe6\x42\xef\x9f\xbc\xcb\x0c\xe7\x3d\x94\x23\x09\xce\x23\xaf\x85\x82\xdb\xd1\xcd\xb5\x1b\x1b\xed\x2f\x61\x1e\x11\x34\xec\x36\xe4\xed\xce\xc8\x90\x1b\xc3\x5e\x9d\x67\xba\xc0\x1d\xad\xec\x85\xbf\x62\x1c\xf6\x54\xe1\x76\x67\x13\x28\xce\xda\xf7\xb5\xdb\xaa\x2b\xac\x2b\xbc\xdb\xce\xdf\xac\x1f\xdd\x7b\x6e\x55\x39\xd6\x44\x5f\x80\xd5\x67\x33\x46\x53\xcf\x40\xdd\x22\xa0\xfa\x0c\xc8\xda\xf0\xd8\xc5\x4d\x0b\x4b\xea\x26\xcc\x4f\xf7\x8c\xef\xb8\xbf\x8c\xa2\x77\x78\x96\xe7\xd9\xe4\x10\xd6\xe7\xe1\x8f\x90\xa9\x7b\xb8\x42\x7f\x0b\x3e\x8d\x27\x7c\x8f\x35\xf6\x99\x8f\xef\x66\xb8\x37\x2f\xc0\x90\xf1\x31\xd3\x05\x1d\x83\x8d\xf7\xd6\xea\xb0\x7e\xe2\xc8\x2d\x53\xe8\x4d\x34\xb2\xc7\xaa\x7a\xd6\x4f\xed\x0c\x2b\xe6\x56\x57\x9b\x05\x3b\x22\x9b\x3d\x8e\x78\xa2\xe4\xe7\xfa\x98\x4d\xad\x59\xf7\x0e\x80\xec\x56\xd2\x11\x7e\x02\x36\xca\xb1\x79\x03\x53\xf2\x09\xca\x5c\xcf\x2c\x19\x1c\x28\x95\x42\x6a\x26\xb7\x5b\x84\x43\x7b\x7f\xda\xbd\xca\x72\x71\x47\x57\xaa\x97\xc0\x81\x59\x33\xb3\xd0\x2c\xab\x60\x1c\xda\x4d\x2d\x16\xdb\xcc\x41\xe0\x06\xce\x1e\x30\x5f\xd8\x77\x71\xed\x2f\x72\x92\x9a\x63\x84\xb6\xa6\x15\x6f\xd4\x35\x71\x56\xd5\x6b\x05\x51\x29\x2a\xb7\x35\xd8\x8e\xf1\xda\x3e\xa6\x39\x46\x76\xa4\xc4\xb2\x8e\xd6\x0f\xeb\xc0\x8a\xd3\x9f\x54\x94\xff\x85\x94\xc8\x52\x0f\xdf\xc2\x8e\xf6\xe6\x90\x8a\x9c\xdd\x67\xda\x1a\x19\x31\xf1\xf7\x64\x70\xdd\x81\x7d\x04\xe0\xb9\x3d\x9a\x03\xa8\x9b\x60\x67\x81\xdd\x05\xda\xfa\x04\x2e\x95\xce\x8c\xd2\xd0\xbf\x5f\x1d\x1f\x57\x76\x68\xa3\x81\xa7\x32\xd1\xc7\x66\x9e\xba\xc3\x92\xa7\xec\x38\x1c\xfe\xc5\xfc\x14\x81\x9c\xb1\xa4\xf1\x0b\xc0\x97\x7f\x6e\x40\x34\x3a\xba\x79\x5c\x4c\x01\x72\x45\xc5\x95\x50\xb9\x82\x9d\x35\x2a\xc5\x9c\xe5\x92\xeb\x51\xb0\x34\x61\x52\x80\xb6\x16\x2a\x00\xb0\x10\x07\xf3\x68\xce\xaf\x4a\x07\xb0\x95\xea\x1a\xf2\xb4\xbd\x9e\xe3\x65\x79\x82\x41\x19\x8a\x0f\x47\x05\x11\xf2\x16\xfd\x18\x1e\xe8\x9a\x6b\x32\x94\x96\x0b\x9f\x0f\x05\x0c\x35\xd8\xee\x6c\xee\x34\x2e\x7a\x40\x3c\x01\xd9\xed\x81\x49\x96\x17\xe1\x50\x14\x97\xe2\xb3\x13\xa9\xdb\x94\xe7\xaf\x9b\x95\xa3\xc6\x5d\x89\xf7\xa9\x28\x24\x3b\x40\x05\x48\x43\x14\xfc\xd5\x85\xf6\x96\xea\xea\x2c\x3c\xf7\x16\x91\x61\x49\x15\x15\x05\xf3\xf7\x14\x3b\x8a\x23\x9a\xe7\x4c\xe8\xae\x4d\xef\x07\x10\x2e\x42\x8d\x70\xd5\x44\xb3\x9c\x2a\x18\x63\x77\x48\xe8\xca\x7a\xe0\xac\x84\xde\x64\x01\x1b\xd8\x55\x19\x12\xd5\x72\x41\x3e\xbd\x7b\xfd\xe2\xc5\x8b\x3f\x61\x10\x02\x45\xd0\x0e\x2e\xc8\x8f\x9f\x5f\xc3\xcd\x6c\x91\xbb\xee\x0f\x25\x72\xcd\xa2\xcd\x79\xe3\x77\x5f\x27\x2b\x66\x40\xfb\x58\x0c\x84\xbf\x2c\x8b\x2a\xf3\x43\x65\xc8\xb3\x78\x32\x1e\x93\xdf\x29\x28\xce\x30\x21\x11\xd2\x65\x50\x1a\x45\x1f\xad\x10\x66\x2e\xec\x44\xf1\x90\x6c\xb7\x81\x65\xe1\x46\x0f\x70\xec\xcd\xfc\x04\x18\x52\xcd\x75\x96\x69\x89\x5a\xc2\x07\x6a\x35\x71\xb3\x36\x46\x52\x15\x0c\x10\x36\xaa\x19\x58\xb7\xad\x67\xaa\x3d\xdb\xdc\x74\x6f\xda\x06\xe3\xd3\xbb\xd7\x04\x96\x29\x88\x13\xb8\xda\x9a\x2d\x46\x0b\x2f\x39\xc3\xcb\x63\x05\x60\x62\x41\x7f\xea\x72\xce\x1e\x51\xc1\x7e\xbd\x45\x4e\x71\x37\xab\x35\x20\x0d\x2b\xbb\xaa\x1d\x60\x4e\x8d\x8e\xdb\x2a\x66\x9f\x21\x84\x13\x4e\x28\xe2\x3d\x00\x01\x34\x1a\x96\xea\x06\x75\x70\xd9\x7f\xc9\x59\x52\xf8\xdd\x6e\x1b\x49\x8e\x84\x44\x70\x42\x45\x6e\x38\x5e\xb6\x60\xd9\xd4\x90\xe1\x2d\xf7\x2f\x1a\x06\x69\x32\x72\xb5\x19\x49\xff\x8c\xd0\x41\xe1\x68\xce\x41\x43\x13\x81\x5e\xdd\x21\x52\x24\xcc\xde\x79\x6a\x38\x2a\xd0\x26\xf4\xe6\x9d\xd5\x98\xa4\xa7\x5e\xf4\x5e\x6e\x30\xbb\x76\x6a\xc3\xd4\xcf\x64\x72\x6d\xc6\xfa\xa3\xab\xa6\x75\x55\x43\xe0\x65\x80\x97\x14\x78\x34\xd0\x52\x8b\x4c\x0c\xe6\x2f\x87\x73\xc5\x85\xb5\xbf\x21\x1f\x43\x87\xd0\xac\x18\xc9\x72\x38\x32\x3b\xcd\x69\x1d\x6e\x5b\x90\x26\x45\x8d\x7d\xc1\x8d\x72\xae\x38\x1a\x4a\xd1\xab\xc0\xc7\xac\x86\xd6\xd8\x21\x14\x9d\x4f\x88\x6d\x66\xfd\x3c\xa0\x11\x92\x5c\xa6\x18\xea\x87\x25\x71\x41\x5e\x9c\x38\x59\x81\xb3\xfc\x7d\xd9\x37\x0f\x1d\x92\x17\x4d\x60\x9d\x69\x86\xb4\xec\xc1\xfa\x72\x32\x03\x42\xc3\xf8\x50\x54\x2e\x12\x67\xe5\xaf\x90\x35\x73\x99\xf6\xc8\x99\x9d\x59\x5a\x04\x95\xa2\x77\xb6\x56\xa9\xa9\x8b\x50\x32\xa2\x2a\x6d\xab\xe4\xe8\xf2\xfc\x2f\xdf\x9f\xbf\x7f\xff\x6c\xaa\x3a\x3c\xe1\xa1\x96\x24\x63\x54\x94\x79\xc7\x4a\x2f\xd7\x88\x4a\x88\x9d\x5d\x9c\x03\x6c\x52\x31\xb2\x9a\x98\x99\x71\x39\x70\xf0\x9f\x10\x34\x89\x22\xa1\x53\x93\x9b\x66\x4c\x91\xb7\x1c\x60\x57\xfc\x72\x0d\x6f\x4c\x1d\x52\x8a\x82\x67\xe0\x01\x4f\xc7\x5c\x60\x7e\xbf\x04\x88\x4a\x6b\x60\x81\x59\x04\xac\x32\xb0\x0e\x57\x76\xe0\x26\x12\x7e\x43\x3e\xa7\x1e\x07\x07\x16\xe1\xf4\x66\xb7\x3a\x99\x6d\xed\x88\x6a\xbb\x32\x99\xa8\x84\xc0\x5d\x87\xe2\x62\x62\x64\x9b\x66\xe2\xbb\x8f\xca\x6a\x7b\xcf\x33\x54\x84\x3e\xff\x16\x98\xb5\x60\x57\xf8\x45\x62\xb1\x19\x26\x3d\x02\x31\xdc\xcc\x1b\x2c\x6b\x96\x8e\x80\x51\x2a\x97\x02\xa5\x5e\x22\xc7\xb9\x14\x4c\x84\x74\xee\xc1\x52\xc4\x92\x7c\x3d\x88\x04\x65\xfd\x50\xd3\x22\xa7\x3e\xa7\x20\xb0\x45\x17\x10\xda\x4c\x39\x40\x63\x16\xba\xe0\xcc\x82\x72\x47\xad\x3d\xbc\x7b\xe4\x5d\x25\x06\x2b\x08\x48\xc4\xca\xb3\xf7\x19\x6f\x57\xa6\x62\x82\x8a\x5a\x8f\x90\x8f\xa0\xb0\x71\x4d\x7e\xf8\xf8\x99\x30\x31\x90\x2a\x01\xb0\xa6\xca\x23\x26\x0a\x25\xd3\x12\x68\x1f\xf8\x50\x40\x02\xaf\x28\x88\xe2\xfa\x1a\x03\x3f\xca\xe4\x3a\x90\xc1\xbd\x50\x1e\x63\x0c\xd2\x88\x9a\xeb\x98\x95\xef\xa6\x6e\x0a\xa1\x3d\x70\x15\xc8\xcd\xba\xd7\x18\xe6\x4b\xcd\x0a\x46\x05\x92\x57\xa3\x55\x61\x1e\xb9\x63\xa0\xea\x17\x17\xd8\x0f\xef\x83\xe3\xb8\xdb\x9c\xc5\x87\x12\xcd\x8b\xd2\x43\xf0\x55\xf7\x97\x6a\xf6\xc2\x39\x75\xf3\x8c\xe6\xb6\xaa\xe2\xd0\x45\xca\x35\xb9\xa5\x48\xfe\x8f\xfc\x61\x4e\x68\xe1\xc1\x6d\x43\xb6\xfd\xc5\x12\xf7\x1c\x04\xc5\x83\x5b\xfe\x99\x69\xbd\x19\xcd\xd4\x1e\xbf\x33\x1b\x42\xc3\x9e\xd3\xa2\xde\x8c\x8e\x0d\x06\x05\xef\x22\x64\x2c\x30\x9a\x9a\xb3\xad\x47\xfe\xc6\xcd\xb9\x53\x54\x73\x09\x23\x54\x43\x8f\xc2\x10\xa2\x81\x62\xcc\x0c\x92\x55\xd9\xc7\xe6\x26\x07\x56\xf6\xb1\x66\xd9\x8d\xc5\xe3\x77\x77\xdc\x9b\x32\x13\x4c\xc1\x41\xee\x3e\x01\xa3\x19\xb8\xb0\x6a\x4e\xe4\x4d\x86\xcd\xac\x29\x68\x6b\xc8\x4c\x5f\x0a\xb6\xc0\x55\xf8\x2f\xc1\xab\x56\x30\x78\xc6\xa3\x5c\xb1\x01\xff\xd2\xf1\x6e\xbf\x4a\x55\xeb\x20\x0a\x31\x7e\x6a\x0e\x6b\x8c\xfb\x87\x2b\xef\xc7\x1f\xde\xff\x9d\x9c\xbf\x83\xb7\xa1\x54\x5c\x38\x35\x41\xee\xc0\x5b\x2b\xdc\x46\xaf\x16\x9a\xca\x3a\x55\x12\x86\x8f\x76\x70\x47\x25\xc2\x0a\x7a\xdd\xd2\x5f\xa7\x0b\x87\xe1\x05\x9f\x55\x61\x14\x5e\xc7\xb1\x89\x28\x1a\xd4\xbd\x44\x8e\xfb\xe0\xc5\xb7\x46\x14\xdb\x01\x5d\x0e\x06\xfc\x0b\xaa\x11\x1e\x60\x16\x3f\x1f\x59\x6d\x0c\xee\xf6\x60\x39\xc5\x6d\xa7\xca\x8c\x69\xa7\xaa\x55\xfd\xed\x84\x01\x2c\x85\x2a\x45\x12\x9e\x54\x19\x13\xc3\x0a\x81\x1f\x6b\x75\xc1\x8d\xd0\xd5\x31\xb5\x3e\x13\xac\xdc\x36\xcf\x3a\xa0\xad\x07\xd4\x9c\x81\x53\xc3\x57\x01\x5a\x7a\xcf\x93\x9d\x26\x34\x44\xe0\xa1\x6f\x95\x16\xa7\x77\x9b\x91\x31\xe2\xd1\x61\x62\x03\x2c\x5d\x97\x70\xa1\x0b\x46\xd3\x8e\xbf\x4b\xd9\x70\x02\xfb\xda\xf3\x93\x53\xf2\xda\xfa\x72\xa5\x22\x5f\x9f\x9c\xe0\x68\x7e\x62\x54\x4b\x61\x5d\xf9\xe6\x0c\x30\xbb\xd5\x46\x05\xa1\x06\x16\x2e\x97\x24\xc4\x6c\x1d\xc8\x52\x78\x33\x3f\xde\x2d\xb2\x4c\x16\x85\x8b\x2d\x0a\x81\x25\xd1\x0c\xa5\x98\x39\x87\x8e\xdc\x9a\xcd\x26\xd3\xea\x37\x86\x23\xf9\x62\x3f\x99\x2f\xba\xa8\xca\x21\xf0\xf6\x33\x18\xca\x33\xf0\x6b\xa5\x9e\x3f\xcc\xed\x88\x06\xc6\xe7\x86\x75\x05\x9e\xb2\x71\x2e\x57\x74\x1d\xdb\xa9\x5e\xc0\x0f\x48\x30\x46\x26\xf1\x31\x2a\xcd\xcc\x2b\xcf\x78\xe4\x8b\x74\xab\x35\x65\x1a\x56\xa9\x2e\x68\xc1\x16\xf2\x2d\xaf\xfb\x62\x9c\x6d\x3f\x74\xfc\x03\x46\x8a\xdb\x28\xd0\x6b\x36\xd1\x41\xbc\xf0\x74\x8c\x04\x1c\x21\x43\x2a\xf8\xbf\xf1\x9a\xec\xf8\x5a\xff\xcd\xc8\x91\x4e\x64\x6e\x2d\xa9\x10\x32\xf4\x2c\x30\x97\x52\x0b\xaa\x5f\x45\x13\x61\xf0\x50\x9e\x59\x34\x24\x62\xc3\x0c\x32\x07\x82\x08\x94\x01\x49\x0b\xce\xf3\x5c\x5b\xab\x1d\xc5\xa5\xcd\xac\xe3\xd0\xc1\xb4\x90\x6f\xcd\xbe\x8b\x69\x60\x81\xa3\xbc\x4e\x9b\xe4\xa2\x3b\xc2\x64\x45\x8f\xed\x6e\x2b\xc5\x35\x66\xd4\x51\x5b\x4a\x65\x96\x1d\x4b\x6d\x2e\xff\x46\xb3\xf0\x21\x2d\x23\x59\x6a\x76\xcd\x58\xce\xc5\x10\x05\x08\xfa\x04\x8a\x49\x6e\xfd\xc3\x28\x45\xc4\x61\x41\x84\xb5\xfc\xd9\xdb\x6f\x29\x52\xa6\x74\x51\x8f\x69\xea\x91\xb3\xca\x1d\x68\xe7\xdb\xd9\x22\x0e\x91\xf3\xab\x83\xf1\x82\x76\x8e\xfc\x8f\x56\xf1\xaa\xf2\x0a\xfd\x06\xa3\x79\x9e\x4d\x90\x90\x05\x1c\xe5\x57\x07\x09\xef\x26\xa9\x8b\xe2\x6f\x24\x6f\x6a\xe7\xa2\xb2\xc2\xac\x22\x9d\xb2\x01\x04\xbe\x79\xb0\x0e\x1b\x76\xf9\x4a\x07\xdf\x78\xe2\x48\x4b\x50\xc5\xd2\xa1\xc3\xc1\xa2\x5b\x80\x83\x16\xe4\xb5\x8b\x31\xb2\x27\x8c\x39\x8f\x40\x7d\xf4\x36\xf8\x1e\x39\xd7\xd5\x49\x0b\xe3\x83\xc6\xed\x80\xfd\x4f\x07\xc6\x0d\x2d\xc7\x21\x85\x93\x39\xd0\x11\x09\xd4\x59\x96\x30\xb2\xd4\x99\x28\x58\x43\x60\x9a\x0b\x74\x40\xad\x81\x3e\x81\x30\x42\xa1\xe7\xcf\x99\x5c\xf1\x31\x55\xdc\x1c\x3e\x2e\xa0\xcd\x2c\x66\x67\x7a\x27\xd5\xc9\x60\x65\x4a\x2d\xc6\xb4\x9a\xa0\x56\x78\xe5\x65\x85\x43\x75\x39\xd4\xbf\x83\xb1\x5b\xfe\x30\xf2\x43\xbe\xc0\xbc\xa1\x7b\x24\x0c\x49\xc1\x5f\xec\xfc\xe1\xbd\x06\x08\x4f\xc4\xf4\x2c\x07\x29\x60\x81\xab\xa5\x99\x94\x83\x81\x03\x16\x1d\xf6\xea\xa0\x7a\x15\x11\x6b\xc3\x47\xd6\xdd\x9e\x50\x21\x05\x04\xce\xd6\xb1\xfc\x7b\xe4\x07\x59\xd4\x3c\x8d\x54\xb1\x9a\xf6\xd6\x67\x04\xa4\xbc\xbd\xa3\x55\xad\xea\x06\x3a\x9d\xac\xa9\x6e\x78\x35\x93\xda\xc7\x20\x7b\x15\x17\x8d\x82\x46\x43\x71\x06\x00\x4a\xde\xfc\x70\xf9\x7f\xdf\x9f\x7d\xf7\xf6\xfd\x5a\x26\xdb\xb7\x6f\x15\x34\xec\x5b\xc1\xd4\x27\x06\x4a\xf8\x7c\xba\xb4\xf7\x36\xdd\xcd\xf5\xd1\x22\xdb\x5a\xb9\x1e\x44\xac\x9d\x0f\xc8\xd9\xfb\xf7\xfe\xbd\xf0\x82\x0a\xa1\x85\x70\x8b\xb0\xd6\x8e\xba\x79\xcb\x0d\x5b\x03\xa5\x37\xbc\x6b\x54\x66\x88\xe0\x58\x09\xc5\xb6\xbd\x6e\x53\xe1\x0c\x26\xa1\x71\x02\x2a\xb0\xa1\xe6\xb2\x8a\xbc\x76\x5f\x82\x0a\xec\x8c\x7a\xf8\x63\x10\xb2\x04\x61\x4d\x25\x73\x61\x3e\x55\xd8\x52\x15\x14\x2e\x05\xab\x42\x4d\xaa\x42\x36\x2e\xb1\x3f\xd6\x66\x72\x5d\x37\xd6\x5a\x5e\x52\xc9\xd3\x75\x5d\x71\x97\x0b\x84\x3d\x13\x2e\xd4\x14\xf7\x9e\x4d\x00\xf3\xa9\x4a\x85\x0d\x23\xde\x74\x20\xec\x87\x20\xa1\xc1\xec\x78\x73\x6d\x19\x73\x5d\xf0\x84\x04\xb1\xa4\x1d\xc7\x87\x6c\xca\x0c\x88\x79\xe1\x7c\x07\xf5\xb0\x8a\x00\x02\x8e\x6b\x6f\x6e\x95\xaa\x25\xb5\xd6\x3b\x24\x8d\xf8\x80\xe0\x5b\x1b\x08\xe3\x32\x8a\x6a\x39\x17\x8b\x05\xdf\x7e\x46\xfe\xa7\xca\x23\x86\xb1\x44\x68\xd7\x01\xcb\x73\x02\xfc\xda\x77\xb6\x6c\x51\xcf\xe6\x92\xe1\xc3\x8f\x3a\xec\xf7\xf2\x89\x86\xfd\x06\x23\x65\xa4\xc8\xdd\x83\xf4\xe3\xf9\x1b\x77\x88\x5b\x45\xd0\x48\x70\x6e\xe3\x31\xf0\x28\x46\x41\xd0\x70\x2a\x3b\xef\x7c\x75\x41\xa8\xac\x27\x75\x5f\xa5\x14\x44\x97\x49\xc2\xb4\x1e\x94\x59\xa5\xa4\x81\x6e\xef\x17\x7d\xe0\x9d\x74\x5e\xec\x42\x7a\xb2\x73\x41\x2e\x7e\xfc\x1c\x86\x0e\x2c\xba\x1f\xee\xa3\xcc\x95\x7c\x61\xce\x8b\xf5\x87\xb6\x35\x8e\x98\x3b\x82\xc2\x6a\x2f\x56\x1e\x4f\x26\xd0\xe3\x28\xd0\x88\x60\xef\x8d\x19\x2b\x20\x61\xc9\xf6\x73\x02\x46\xcc\x5b\x51\x45\x22\x81\x86\x58\xfb\xc5\x4b\x13\xab\x59\xf8\x88\x1d\x5c\x1c\xd6\x9c\xe7\x81\xf7\x3b\xd6\x21\x6a\x63\x76\xba\xa8\xdd\x75\x88\x96\x36\x2f\x06\x66\x39\x28\x00\xaf\x8b\xeb\x8d\xdc\x9e\x8e\x1e\x47\xd3\xe7\x0a\x5b\x08\xdc\xc4\x30\xc8\xce\xcf\x3f\xa7\x7a\xcb\x23\xd2\x21\x67\x3f\xbc\x71\xb9\x6e\xa0\xfa\x79\xbb\xe8\xd5\x41\x45\x4a\xe0\x0a\x0d\x29\x46\x82\xb4\x28\xfc\xb0\xd2\x7d\xa6\xbc\x56\xd7\x6c\xd2\xc5\xfd\x89\xe1\x6a\xe8\x8c\xb4\xd1\x05\x6e\x51\xc0\x3f\xac\x6f\x28\x64\xea\x01\xaa\x93\x1e\xf9\x2c\x1b\xc9\x42\xde\xa9\x6c\x6e\xfa\x1a\x14\x7e\x53\xed\xd5\x41\xe8\xa3\x91\x41\xd7\x3a\xe8\xd1\xb8\xe5\x9a\x91\x97\xcf\x9f\x93\xa3\x1f\x85\xf5\xcc\x80\x9b\xe0\xad\x28\x78\x31\x79\xd6\x42\xd7\xd1\x3a\x1d\x77\xf2\x99\x54\x6a\xde\xa2\xf3\xd0\x18\x0c\xd0\x47\x3d\x5b\xd8\x7c\xf5\x71\xa1\x56\x2d\x4a\x30\xd4\x5c\x8f\x7b\x4d\xdf\xb3\xa8\x25\x61\x5e\xa7\xb6\x71\x85\x5e\xec\xa4\x5b\x6b\x4b\xef\x73\x3e\xb4\x67\x76\x07\x22\xae\xb9\xb6\x9a\xd3\xd2\xe8\xba\xfd\xd7\x1a\x73\xbf\x2f\x00\x91\x7a\xf6\xb9\x03\xcf\xad\x0b\x16\x9d\x3f\x85\x24\x43\x7e\xc3\xf0\x7a\x98\x28\x56\x04\x81\x9d\x10\x8f\x6f\xb7\x5c\xa0\x39\x5d\x9c\x7d\x7e\xfd\x57\x6f\x13\xea\xcb\x34\xc4\x5c\xba\x7f\x17\x66\x50\x1f\x4d\x75\x25\x7c\xcf\x1f\x77\xd3\x74\x45\x22\xb8\x4c\x1c\xa1\x09\xc1\x86\x14\xb1\x0e\x61\x45\xd2\x7b\xd6\xe4\x31\x9a\x7f\xaa\x2d\x99\xa5\x58\x43\x65\x2a\xa8\x1a\xb2\x82\x7c\x6a\x14\xb1\x81\xbd\xd3\x5a\xef\x8f\xe7\x6f\x76\x97\x89\x36\x9b\x65\x75\xf6\x3c\xcf\xfc\x06\xe8\x82\x75\xe8\x32\xab\xdd\x52\x03\x5d\xb6\x46\x43\x0c\xcc\xbe\x15\x5b\x6f\xc7\x2a\x41\xa0\x3a\x89\xa0\xb4\x56\x2e\xe0\x05\x50\x09\xda\xfa\xd4\xd6\xaf\xcf\x8e\x6f\x18\x0c\x2a\x68\x01\x4c\x02\xe6\x62\xf4\x93\x20\xec\xdc\xf9\x05\x1c\xfc\x7c\x58\x2a\x66\x96\xe8\xa2\x9d\x5b\x41\x73\xaa\x51\xb7\xce\xd3\xd9\x6c\xd5\xce\x90\xe0\x7c\xe7\xba\xe4\x18\xa0\x88\xd7\x65\x37\x3b\x18\xbe\x5f\x78\x9a\x61\xda\x97\x37\xcc\x13\x23\xdb\xc8\x0f\x30\xff\x8d\xa4\x2e\xd0\xaf\xe0\xfe\x7a\x95\x4b\x55\x74\xcc\x40\x48\x33\x1c\xf0\xcf\x35\xc3\x8e\x05\x33\x37\x73\x3c\xd6\x2f\xb1\x2f\x01\x2e\xe3\xae\xf5\x8f\x78\x1a\x70\x1d\xb6\x8e\xe9\xea\x6a\x67\xee\x70\x76\xea\x53\x29\x0e\x0b\xf7\x06\x22\x48\x2c\x8e\xf5\x15\x59\x62\x77\xc7\x12\x9b\xc8\x74\x9e\xc2\x76\x59\x0e\x87\x18\x1c\xfc\xd7\xcf\x9f\x2f\xdc\x24\x9b\x0f\xab\x0b\x3e\xe2\xae\x74\xc8\x89\xe7\xed\x64\x77\xa6\xe7\xbf\x78\xbe\x52\xc8\x76\x41\xf9\xb4\x6b\xfa\x3e\xc4\xdb\xd0\xec\x37\xb6\xdc\xbb\x5c\xd4\x6f\xbf\x58\xaf\x11\xa2\xab\x68\x2d\x13\x0e\x86\x04\x6f\x91\x56\x10\x98\xd1\x23\x18\x0b\x88\xff\x82\x85\x81\x4b\x95\xf0\x42\x9b\x9b\x0f\xe2\x45\x42\x49\x58\x6d\x33\x72\xdb\x07\x08\x39\x93\x0f\xd4\xe8\x23\x75\x5a\x13\x2a\x12\x09\x77\x76\x84\x47\x9b\xb8\x6d\xc0\xbe\x24\x2c\x2f\x1c\xe3\x1d\x82\x77\x5a\xbb\x87\x6d\xde\x1d\xe9\x9d\x91\xff\x74\x27\x17\x28\x8b\xf7\x32\x37\xc2\x64\x54\x8e\xa9\xe8\x2a\x46\x53\x38\xeb\x82\xe7\x3e\xee\xc9\x42\x21\x39\x3b\xbb\xd3\x43\x57\x38\x96\x7d\x88\xed\xfa\x76\x9e\xc7\x89\xba\x6b\xd3\x5d\x16\x54\xa4\x54\xa5\x16\x18\xc8\xe7\xcf\x6d\x71\x02\x67\xb8\x47\xcc\xee\x99\x3b\x47\xb6\xfb\x33\x67\xe9\x76\x34\x69\xcc\x8d\x4d\x4c\xb2\x69\xd8\x94\x67\xa5\x62\x80\x49\x6b\xa6\xb2\x85\x86\x19\xfd\xb2\xa1\x91\x2c\x34\xde\x05\x18\x50\x67\x2e\x6e\x2c\xc9\xa8\x42\xb5\x9c\x0a\x94\xe7\x76\x9d\x80\x3c\xef\x97\xe6\x28\x67\x28\x62\xe4\x0d\x53\x8a\xa7\x46\x72\xad\xa2\xca\x35\x55\x8b\x19\x13\xec\xd7\x68\x90\xe7\xd5\x23\x1f\x01\x9e\xeb\x15\xb9\x3a\xb8\x44\x3b\xf0\xd5\x81\xd1\xbd\x82\x41\xd9\xf8\x2a\xd0\x39\x4b\xc0\xf1\x60\x7b\xb2\x9e\x6b\x8b\xff\x7d\x53\x4c\xa0\x97\x2d\xad\x9d\x85\x11\xef\x14\xca\x55\x15\xc7\xd7\xb4\xd4\x77\x19\x9a\x83\xb7\xdc\x9d\xdf\x62\x94\xd5\x96\x69\xdf\x5c\x2a\x20\x96\x83\xdb\x82\xc9\x00\xa7\x39\x04\x7b\x4b\xa8\x66\xda\xc6\xdc\x94\x59\xc1\xf3\x8c\x21\x46\x16\x46\x08\x30\x91\xc8\xd2\xa8\x66\x6c\x11\xcb\x30\x9c\xb6\x0b\xdc\x91\x2c\x3e\x7a\x1b\xa0\x08\xe0\x8e\x51\x0c\x48\x33\x9b\x12\xda\xd2\x21\x14\x83\x92\xe0\xa4\x35\x47\x13\xc0\x2e\x34\x70\x98\x3e\xc0\x11\x07\x49\xd5\x24\x95\x08\x51\x91\x4b\x5d\x0c\xf8\x17\xe2\x52\x74\x41\xb7\x12\xa8\x77\xd1\x02\x17\xb0\x51\x25\xcf\x94\xa2\x13\xec\xf2\xbf\x99\x92\x5d\x00\x27\x37\x67\x1c\xf1\x71\x60\x13\x42\xf3\x9c\x51\x55\x73\x7b\x63\x82\x6c\x08\xba\x08\x8d\xd7\x24\x2d\x19\xde\xef\xe0\xeb\x11\xbd\x31\x83\xdd\x18\xe1\x1e\xf9\x68\xb5\x12\x44\xac\xc7\x44\x22\xfd\xea\x4a\x10\x72\x05\xd6\xa5\xab\x03\x1b\x7e\x81\x23\xe6\x7f\x74\xb7\x5a\x84\xdb\xf0\x43\x88\x1f\x82\x9b\xfd\x1f\x27\x3f\xf7\x16\x28\x01\xa3\xea\xb1\xf1\x3e\x6e\xc0\x16\xb1\x0a\x3e\xc7\xfa\x0e\x5a\xcc\x75\xb0\xff\x80\xf1\xea\x91\x50\xa7\xf3\xf9\x14\x2e\x23\x95\xea\x2e\xb7\xb4\xf7\x0a\x42\x64\x57\x42\x77\x5b\xcb\x11\x34\xab\xfd\x2b\x9f\x34\xbb\xb3\xee\xd4\x54\xf9\x79\x32\xc9\xbe\xe7\x60\x6e\x11\xa8\xd0\x87\xb8\x92\x4a\x6c\xe0\x5e\xff\x70\xf6\xf7\x20\xef\x3f\x4c\x82\x96\x4e\xb0\x85\x9f\xb7\x48\xb7\x00\xf8\xee\x33\x84\x49\xc3\x69\xec\xc5\x0b\x25\x97\x21\x72\xa5\xbf\xde\xde\x42\x88\xa6\xdf\xfe\xde\x1d\x02\x39\xb3\xb5\xd0\x03\x9b\xa3\x1e\x86\x76\x5a\x54\x37\x6f\xcb\xf1\x97\x00\x07\x75\x02\x31\x5f\xbe\xf4\x4e\x08\x40\x40\xb5\x2e\xc7\x56\xd2\x41\xd2\x8d\x7b\xcb\x2d\x67\x58\x10\x46\x3e\x43\x6c\x42\xc7\x47\x75\xba\x4a\x16\xb1\x56\x81\x00\x5a\xc4\x52\x85\x92\xca\x42\xb0\x3a\x34\x0a\x04\xbb\xb4\x13\xd9\x76\x23\xc3\x21\x75\x43\x8d\x27\x4a\x15\x5e\x16\x3e\x45\xa9\xe9\x66\x12\xcb\x64\xa9\x95\x90\x1b\x8f\x0d\x0a\x0f\xd3\xa0\xd0\xa5\xc3\x38\x9d\x66\x30\x6f\x38\x2d\x6f\x80\x9f\xd1\xe6\xf1\xd6\x36\x96\x56\x4b\x0c\x07\x6d\x05\xa9\xb5\xc0\xa5\xd2\x34\xd0\xbc\xb6\x86\xf6\x91\x8f\x02\x23\x4c\xab\x28\x00\xbc\x90\x43\x5a\x4b\x98\xc6\xe7\xb2\x9f\x7d\x15\xe6\x6a\xbb\xdf\x17\xc5\x05\x3c\x6d\x1e\x88\xe3\xde\x43\x49\x8e\x6e\x2b\x94\x4a\x94\x99\x08\xe0\x0e\xc5\x5b\xf3\x31\xda\x4f\x3d\x9e\xd4\xb3\x95\x4e\xb5\x42\x4d\x20\x79\x64\x31\x3c\x83\xf3\x41\x95\x3c\xd2\x09\xb3\x52\x3c\xbe\x41\x98\xc8\xe9\x6f\x59\x15\xc8\x0a\xc2\xb4\xa4\x3d\x72\x69\xd6\x89\x55\x27\xd1\x02\x81\x89\x2d\xa1\xb5\x01\x43\xbc\xe8\x35\xf8\x75\x68\x06\x66\xc0\x82\x11\x0a\x41\x64\xa4\x1b\x44\x99\xda\x82\x8a\xba\x12\xe0\xcb\x1c\xc9\x5b\xcc\x41\x2f\x24\xa4\x03\xfa\x56\xd2\x6b\x67\x33\x69\x16\xbf\x76\x63\xda\x92\xde\x4f\x5c\x2f\xbd\x99\x0b\xa1\xc2\x25\x98\xb1\x18\x1e\x6e\x5c\xcd\x1c\xb4\x28\x07\x14\x45\xc9\xad\x32\x7a\xb7\x22\x14\xc2\x34\x30\xf1\x1e\x31\xa3\x60\x4c\x74\x99\xe7\x52\x15\xe6\xaa\xad\x14\xe6\x8a\x2b\x3d\x02\x6a\x64\xb3\x10\xfe\x7e\xf6\xe1\x3d\x9c\xc0\xe6\xc6\xd0\x23\xe4\x6f\x58\x1a\xaa\xfa\xde\x63\x3a\x00\x42\x0d\x31\x71\x33\x33\x80\x6c\x58\x00\x17\x1a\xc9\x34\x40\x85\x86\x8d\x90\xd3\xe4\x9a\x0e\xcd\xb6\x1f\x30\xa5\xb7\x06\x4d\xf5\x37\x20\x65\xb8\xb9\x9b\x7e\x00\x9e\xd7\x11\xed\xed\x5a\x02\xe2\x53\xd4\x8f\x21\x20\x33\x10\xcc\x0b\x68\x15\x76\x9e\xef\x65\xaa\x52\xa5\x80\xd9\xfb\x44\x6f\xdf\x3a\x2a\xd4\x3b\x2d\x55\x1f\x5d\xd0\xb3\xb9\x12\xfd\xde\xa8\xcf\x0e\xb0\xf0\x2c\x4d\x31\x83\xef\x83\x8d\xf8\x7c\x85\xb9\x2a\xec\x16\x73\xbc\xea\xd9\xdb\xbd\xe6\xe7\xc8\x82\x66\x3f\x6a\xf9\x80\xf0\xf1\x98\xa5\x46\x82\x67\x3e\x6b\xdd\x65\x88\x4f\x15\xf6\xd6\x88\xa5\x57\xe4\xf7\x95\x57\x47\x31\x73\x8a\x81\x3d\xfa\x5b\xeb\xb7\x81\x53\x09\xe4\x15\xa4\x49\x6a\x26\x34\x5c\xd7\xea\xae\x4a\x73\xe4\xb1\x2f\xc5\x0c\xe3\x71\xd1\x02\xeb\x78\x5f\x0f\x19\x7c\xdf\x99\x9a\xe7\x79\x4e\xb1\x8d\x1b\x5c\x82\xc5\xbe\x90\xd1\xa5\x33\xa7\x16\x9a\xda\x70\xa9\x3b\xd9\xf1\xf6\xb8\xd6\xa5\x29\xe2\x5d\xd5\x16\x4e\x61\x3e\x03\xe7\xc6\x3a\xbf\xde\x16\x2c\x3d\x10\x39\xaf\x88\x97\xb7\x3b\x00\xeb\xad\x79\x85\x8e\xef\x6e\xee\xd7\x5d\xf7\xf2\x9d\xcf\x67\xb0\x6c\xaf\xbf\xab\xf7\xaa\x69\xcb\x1d\x33\xd5\x3d\x5f\xa6\xba\xb2\x18\x21\x17\xc3\xf6\xd7\xd0\x9a\xab\x5e\x7a\xa4\x17\xe6\x2e\xde\x44\xcf\xd7\x58\xf3\x0a\x1d\x97\x3a\x01\x15\x7a\x6b\xfd\xbd\x7f\x85\xcf\x77\xd2\xcd\xe7\xcb\x6e\xa8\x3e\x84\x73\x6e\x65\x58\xef\x5b\xd5\xb2\x03\x7a\xcf\xfa\x9e\x2f\x4d\x78\x9c\x98\x9b\xca\x00\x99\x7b\xb6\xba\x41\xd7\x5b\xf1\xb2\xe3\x9c\x48\xa9\x52\x8b\xcf\xb6\xdd\x6e\xaf\xb5\xe2\x65\xbb\x9d\x3a\x8e\xda\xfb\x57\xbd\xf4\x4a\x5b\x63\xdd\xcb\x76\x1b\xee\xed\xdb\x5d\xde\xeb\xaa\x72\xe9\xae\x7a\x6d\x79\x8b\x95\x0e\x32\x79\x6b\x73\x4e\x7a\x1e\xa8\x78\x07\x4b\x8c\x8f\xe9\x90\xe5\x32\xe3\xc9\x2e\x16\xb8\x45\x60\xe4\x62\xb8\xd5\x95\xb6\xce\x6a\x97\x9d\x78\x21\xd3\xbb\xb9\xf2\x37\x34\xd2\x6b\xa9\x76\xd9\xce\xe2\xc2\xda\x62\x85\xaa\x4f\x93\xde\xee\x54\xe8\x4d\x54\xbf\xf4\x54\x6f\xa2\x11\xcb\xce\x83\x4e\x46\x2c\x2d\xb3\x6d\x6f\xec\x75\x56\xbb\xf4\xb8\xaf\xb3\xf2\xa5\xc7\x9b\x01\xa1\xfa\x1a\x4e\xcf\xe5\xbb\x5d\x48\x45\x87\x6b\x10\x2e\xbb\xa8\x73\x77\xbd\x6d\xce\xb0\xfd\x6b\xb1\xf8\xbd\x56\x9f\xc6\x6c\xf7\x4c\xf8\x5a\x48\xcc\x30\x92\x59\x4a\x2a\xf5\x87\x70\x51\xc1\x95\xda\xc6\x62\xae\xfd\x67\x49\x1c\xef\x61\x07\x5d\x09\x8e\x5d\x0a\xdd\x61\x23\xaa\x49\xad\x12\xaa\x21\x60\x0e\x82\x53\xb8\x20\x13\x59\x2a\x5f\x74\x27\x4c\xf2\x00\xe6\x0e\x8c\x56\x71\x7e\x17\xfb\xba\xcf\xcd\xc0\x77\x7a\xe4\xef\xb2\x44\x54\x4a\x07\x40\x86\xb6\x3e\xa6\xf0\x7d\x47\x1b\x9b\x67\xe5\x90\x63\x38\x3c\x36\xfe\xf8\x98\x9c\xbb\xb2\xac\x13\xed\x15\xb6\xec\xc3\xe4\xec\xe2\xdc\x56\x8b\xb5\x90\xff\x5c\x89\xab\xc2\x0d\xef\xe7\x49\xce\x80\x6f\xe5\x97\x7f\x6a\x29\x5e\x5d\x1d\x74\xb8\xc8\xb8\x60\x57\x07\xbf\x98\xd7\x3e\x4c\x2e\xb0\x2e\xf7\xbe\x2d\xca\xbd\x3d\xb6\xcf\xe1\xf5\xdf\xb0\x4a\xfc\xe5\xac\x56\xdd\x19\x06\xe4\xb9\xc8\x7b\xf7\x39\xc5\x9f\xf1\x6b\xdb\x91\xb7\x5f\xb6\xd2\x91\xda\x5c\x6e\xb0\x3b\x1f\x31\x1e\xf0\x96\x2b\x86\x2e\x7f\x88\xb0\x84\xc0\xa8\x4c\xca\x6b\x88\xf8\x28\x46\x48\x0f\x7c\x8d\xeb\xef\x15\x56\x72\x05\xbb\xed\xea\xe0\xd5\xd5\x41\xd0\xf9\xab\x83\x0e\x3e\xac\xd2\x90\xe0\x95\x9b\x53\xff\xa4\xea\x85\x2b\x29\x2c\xcb\xf6\xc7\xbd\x5d\x04\xcd\x7e\x75\x75\x30\x90\xd2\x3e\xf9\xad\x63\x3b\x71\x29\x31\xae\xcb\x92\x5f\xfc\x99\xbc\x61\x98\x4d\x03\x21\x8e\x10\xea\x64\xfa\x4f\xa4\x22\x13\x3a\x06\xd8\xf4\x52\x58\x67\xb1\x0b\x3e\x83\x70\x52\x97\x8e\x02\xe8\xf1\xb5\xfd\x12\xce\x6e\x8f\x7c\x46\x70\x1d\x28\x19\xdc\xf9\xf4\x16\x47\xcd\xa2\x69\x01\xe3\x0d\x22\x75\x09\x59\x90\x52\x98\x95\xe2\xc8\xac\x90\xcb\xb7\x60\x00\x6d\x0f\xb9\x26\xf9\x84\x1c\x21\x33\x6e\x7e\x3d\x3c\xc6\xc4\x29\x33\x6c\xcf\x2a\x18\xfb\xa9\x8d\x08\x04\x01\xb8\x52\xdc\x3a\x3c\xd4\x0e\x59\xe0\x32\x19\xb1\x31\x82\xc0\x56\xa5\x91\x41\x29\x92\xc2\xca\x18\x5d\x50\xc8\xab\x45\xd1\x01\x93\x8d\xad\xac\x56\x80\xe5\xed\xe1\xa2\x26\x55\x3a\xa4\x28\x95\xa5\x51\xad\x9a\xe7\x3c\xf0\x0e\x7c\x68\x92\xbb\xe8\xb7\x42\x2a\xff\x32\xbc\xea\xc6\xf0\xe8\xf3\xc7\x37\x1f\x5f\x39\x48\xf8\x84\x6a\x80\x22\x9a\xc2\x08\xc7\x1c\x33\xc7\x3e\x6b\x0b\xf6\x7b\xe4\x47\xfb\x7b\x03\x4d\x2b\x71\xa0\x3b\xb6\x05\x2c\xed\x3d\x9b\x76\xc7\x2f\x13\xc0\x50\x16\x3c\xeb\x71\x51\xe8\x42\xf5\xce\x45\xf1\x51\x21\x59\xe9\x1d\xf2\x3e\x78\xcb\x32\xc0\x40\xfe\xb5\x83\x65\x02\xb1\x4f\x05\x81\x70\x13\x82\xd0\xd5\xf0\x72\x8f\x90\xbf\x21\x55\x32\x0e\x3e\xcc\x85\x54\x18\xce\x60\x17\x2d\x84\x38\x00\x40\xa4\x08\x7e\x01\xe4\xdb\xdc\xa1\x83\x4b\xe0\x75\xd6\xe5\x98\x39\xc0\x28\x61\x9d\xd1\x2e\x9a\x16\x40\x5e\x90\x3c\xd9\x9c\x43\x40\x50\x35\xa8\xd3\x1a\x40\xe5\x78\xc8\xf8\x96\xd3\x04\xb2\xa0\xa8\x85\x87\x54\x16\x93\xb5\x35\x18\x82\x8b\xa2\x2b\x55\xd7\xba\xa8\xa7\x66\x60\x99\x80\x08\x47\x39\x78\x2e\x06\xf2\xce\x61\x1f\xc8\x0a\x81\xc5\x7e\x84\xb8\xdc\x3e\x86\xb4\x07\x01\x43\xb7\xec\x30\xcb\xc8\x2d\xb5\xa9\xc6\x5c\xbb\x98\x2e\x24\xa0\x0d\x5e\x9f\x1f\x23\xd1\x2f\x79\x96\xbe\xa1\xc5\xe2\x4e\xfa\x4a\x29\x39\x48\xe4\x38\xe7\x2d\x60\x1a\x0b\x61\xe8\xf2\xe2\xb5\x1c\x8f\xf9\x54\x7c\xc6\x82\x1f\x7f\x56\x8c\x5d\x16\x2b\x36\x7c\xc8\x8b\x19\x79\xa6\x0b\x7d\x2d\xef\xf1\xf1\x98\xfe\x53\xae\x34\x60\x63\x2e\x56\xfb\x30\xcf\x68\x61\x96\xc4\xba\xc3\x30\xb0\x27\x53\x2d\x6c\x1f\xe6\xd6\x99\x9f\x35\xa3\x9d\xb6\xf5\xd9\x3a\x01\x6d\x8b\xb1\xad\xeb\x4e\x3f\x5e\x46\x94\x5e\x97\x7d\xd6\xa5\xc3\xa1\x62\x43\x5a\x48\x55\x05\x37\x35\x1d\xc5\x37\xa7\xbd\xb3\x8b\xf3\x4b\x44\x08\xbe\x63\x87\x57\x2f\x35\x82\x9d\x30\x82\x7c\x0a\xd4\xed\x2f\xe6\xda\xf0\x93\x23\x2c\xad\xe1\xae\x5e\xb9\xeb\x40\x0f\xee\x16\x57\x07\x31\xb9\x7a\xaf\x93\xab\x63\x0e\xed\x8e\x72\x68\xd7\x9e\xae\x1a\x90\x6d\xb6\x56\xa9\x73\x96\x2c\x55\xdd\x6a\x62\xe6\xd2\x54\xd3\xb9\x63\x39\x99\x17\x02\x0a\xab\x20\x0f\x05\xb8\xeb\xa4\x23\x09\x00\x84\x63\x98\x23\xfb\x8b\x65\x6a\x40\xa1\xb4\x4c\x46\xe7\x26\x7a\xd9\x92\xc2\xd8\x9e\x38\xea\x7b\x9a\x32\xc5\x11\xff\xb0\x25\xaf\xf0\xec\xe2\x7c\xba\x63\x53\xc7\xdd\xe6\xe2\x06\x97\x09\x31\x0a\x8e\x94\x85\xac\x5e\x77\x99\x80\x56\x1b\xfd\xd7\x0e\xd7\x68\xa1\x33\xcd\xbf\xed\x63\xbd\x75\x3d\x54\x15\xc7\xdf\x9d\x80\x48\x32\x56\x1d\x76\x20\x8d\xe6\x1f\x62\x19\xd5\xc5\x67\x45\x85\x86\xaa\x3e\x6f\x99\xf2\xf8\x3d\xd5\x05\xc6\x53\x5b\xe4\x61\xdb\xe3\xc2\xb7\xc8\xc1\xeb\x49\xe1\xd3\x27\x00\x8a\x01\x22\x6a\x67\xf1\x67\x2f\x94\x80\xf8\xd7\x7a\xfa\xa1\xfd\x28\x24\xfc\xf0\x19\x50\xb0\xdc\x33\x68\xab\x6f\xd8\xa6\x32\x0b\x7f\x04\xe0\xcf\x8e\xe9\x70\xf7\x56\xaa\xb4\x53\x9d\x0d\x0e\x5b\xc2\xd1\x21\xf9\xf1\x3a\xd4\x6b\x68\xdd\x32\x69\xe5\x5c\x4f\x01\x21\x04\xcd\x81\x43\xce\x9c\x70\x9f\x01\xf2\xef\x1d\xcd\x34\xeb\x10\x7b\x43\x5f\x85\x88\x7b\x3e\x95\x7d\x48\x62\xef\x72\xf0\xea\x6d\x5a\x35\xc9\x61\xb1\x90\x69\x3b\x78\xdb\x53\x8b\xdf\x73\x7d\x57\x0a\x40\xfd\x45\x54\x83\x32\x0b\x62\x1e\x08\x8d\x88\x24\xf4\x10\x94\xdd\xb6\xbc\xc8\x95\x92\x25\x57\xbc\x81\x05\x35\x2c\x9d\x39\x19\x15\xf5\xc7\xa2\xa8\x7b\x5c\x99\xa5\x85\x25\x2e\xd5\x79\xb2\x71\xe7\x6a\x21\x88\xd4\x1d\xa9\x86\x97\xf5\x5b\xce\x6c\x71\xbe\x9e\x6b\x88\xa5\x90\x86\x65\x0b\xec\x6b\x98\x40\x87\xa9\x9e\x00\x55\x3d\x91\x25\xa4\xc7\x39\x66\xc1\x94\x23\x7a\x70\x10\xf5\x68\x64\x3a\xfe\xb9\x98\x69\x34\xa1\xdf\x95\x22\xcd\xe6\x1d\xe5\xaf\xcf\xf0\x35\x14\x09\x17\x6f\x3f\x00\x00\x49\xca\x52\xf2\xfa\x8c\xf4\xf1\x51\xe0\xac\x08\xa8\xab\x2c\xbb\x1d\xab\xdf\x4c\x0e\x11\xc0\x10\x80\x4e\xaa\xc6\x03\x10\x43\x29\x82\x1c\x57\xcb\xc2\x5a\xa8\x52\x17\x44\x49\x59\x68\x07\x90\x51\x51\xd7\x9b\x11\x31\xb5\xcd\xcc\x19\xed\x4f\x0a\x76\xe7\x6e\xad\x3d\xab\xad\x74\x73\x3c\x77\xbd\x44\x2d\xe4\x98\x27\xab\x27\xa3\x83\xa9\xcb\x29\x44\x66\x2c\x30\x33\x1d\x0c\xf5\x01\xa6\x23\xe0\x30\xae\x20\x5e\xa0\xb4\x0b\xc5\xa5\xe2\xc5\xe4\x03\x17\x7c\x5c\x4e\x99\x43\xdb\x5a\x14\x7e\x22\xca\xb1\x6b\x60\x6e\x7f\xc6\xa6\x61\x53\xed\x91\x0f\x3c\x14\xb4\x20\x19\xa3\xba\xe8\x91\xbf\xf2\xe1\x88\xa9\xea\x83\x31\xa3\x22\x48\xcd\x1c\xba\x6e\xe7\x80\x2a\xac\xea\x6c\x17\xd2\xf4\x38\x93\xb7\x61\x01\x52\x98\xb3\xff\x07\xe9\xac\xfd\x98\xa9\xe7\xdc\xed\x5e\x4b\xc1\x82\xc7\x7c\x38\x72\xa4\x7a\x13\x48\xa6\x24\x23\x6c\x50\x6b\xef\x2c\x4f\x85\x2e\x01\x24\xc2\x11\x5d\x8d\x64\xe6\x1a\x3a\x64\x60\xaf\x1c\xd5\x3b\xe5\x68\x1c\xf9\x98\xaa\x09\xd1\x52\x81\xfe\xd6\xa7\x1a\x48\xfe\xa6\xab\x1a\x97\xc0\x63\x9a\x32\xd3\x5d\x28\x4b\x17\x8e\x1e\xaf\x90\xd0\x61\x5d\x90\xa3\xe7\x27\x2e\x8b\xf1\xf4\xe4\x99\x23\xe9\x32\xfa\x71\x6b\x2d\x98\x29\x9d\x8f\x68\x9f\x01\xe3\x13\x10\xa2\x52\xc5\x75\x85\x6e\x22\x02\xb8\x69\xa7\xb0\x91\xa3\x9b\xd3\x5e\x9f\x2a\x57\xd5\xcd\x69\x6f\x20\xe5\x33\xf2\x37\x76\x98\x56\x29\x91\x0d\x4f\xf2\x2b\xf2\x7b\x2b\xa2\xc9\x91\x45\xd6\xab\xc2\x20\x9e\x99\xd9\x3f\xfd\xe3\xc9\xc9\x09\x08\xb5\x0b\x4a\x2f\x99\x26\x47\x1f\x73\x26\x2e\x47\x7c\x50\x74\xc8\x1b\xc6\xcd\x5b\xc0\x65\xe4\x73\x2e\xad\x03\xd6\xba\x1a\x9f\x9f\x9c\x9c\xe8\x59\x7b\x76\xd5\x3c\x6f\x2e\x34\x4b\x4a\xc5\x2e\xaf\x79\xfe\xf9\xfd\xe5\x4f\x46\x1a\x4e\xe6\xa5\xd5\xb7\x7d\xe3\x84\xab\x26\x9f\xdf\x5f\xce\x94\xb0\x96\xf4\x6b\x5a\xa8\x07\xfb\xb9\xa2\x95\xd3\x85\x92\x62\x98\x41\xd9\x89\x2c\x15\x05\x1e\x17\x88\xda\xa8\x70\x64\x61\x6c\x2a\x79\x8b\xb4\x99\xab\x20\xae\xeb\x29\x5b\x3d\x59\xab\x32\x6a\x0f\xbf\x8a\x82\xe1\x4e\x0b\x96\xbd\xdc\x58\x68\x55\x07\x35\x1f\x30\xc1\x98\xa7\x1e\x60\xb3\x3a\x29\x7a\x84\x9c\x5b\x2c\x82\x6a\x98\x81\xf0\xc2\x1c\x8e\xe4\xe5\xcb\x17\x9e\xfc\x38\xa8\x03\xe8\xa0\x11\x04\xd7\x0a\x23\x46\x46\x54\xa4\x99\xa3\x22\xae\x89\x60\xe7\x82\xe7\x1a\x5f\x62\x29\x1c\xda\x59\x36\xc1\x5d\x57\x9b\x4a\x06\x40\xb0\x96\xd2\x84\x8f\x73\x33\x9d\x2c\x33\xe3\xe5\xbb\x23\xcc\x32\xce\x6c\x59\x8a\x24\x23\xca\x85\x5d\xfb\x1e\x33\x7b\x86\x99\xe4\x66\xa1\xfb\xdc\x4f\x55\x83\x5d\x47\x2a\xf2\xbe\xc6\x41\xd2\x23\x75\x36\x7c\x0c\xf5\x58\xfe\x78\xb1\x15\x38\x21\xb7\x58\x0b\xdd\xdb\x8e\x3c\x00\xdb\xeb\x19\x91\x9d\x24\x0f\x3b\xc0\x85\xe6\x29\xc8\x30\xa3\xfd\xc3\xfc\xf4\x08\x71\x74\x65\x43\x88\x1d\x50\x08\xf3\xf5\x6f\xa6\xe4\x1c\xc1\xdc\x68\xc7\xb4\x4c\x9e\x2d\x8c\x2f\x39\xa0\x88\x15\x87\x3a\x68\x13\xc5\x16\x59\x52\x61\x94\xe7\x16\xfd\x41\x8f\x69\x96\x75\x48\xae\x64\x9f\xf6\xb3\x89\x13\x73\xa7\x27\x1a\x2e\x29\x10\x43\x21\x07\x84\xfd\xab\x0c\x78\xa1\xec\xf9\xc2\x99\x65\xd1\x75\xbf\xdb\x5b\x57\x53\x9b\x32\x02\xbf\xb4\x30\x1d\x96\xfc\x1b\x9b\x46\xdd\x48\xd9\xbd\xd0\x28\x87\x6b\x72\x75\x00\x9b\xdb\xc8\xf6\xab\x83\x8a\x86\x17\x46\x0c\xd1\xa1\x85\x14\xf5\xb7\x1a\xa5\xe8\x8e\xd5\xf1\x8c\x58\x77\xe3\x98\xb1\x2f\x3c\x91\x43\x45\xf3\x91\x23\x21\xbc\x3a\xf8\x7e\xba\x0c\x00\xcd\x55\x85\x53\x79\xaf\x0e\x6e\x4c\x2b\x90\x1a\x4d\x99\x9d\x6f\x39\x6d\x80\x3d\xcd\x0e\xec\x11\xf2\x4f\xfc\x53\xfa\xc3\xff\x99\xfd\x24\xa0\xe8\x45\x9b\x17\xf4\xf2\xea\x00\x4e\x47\x07\x9e\xd8\x67\x85\xf9\x1b\x98\xb9\xd1\x36\x59\x2f\x98\x8b\xa0\x60\x58\x47\x9a\x41\x63\x34\xa8\xdd\x36\x40\xa9\x3f\x21\x7f\x39\x23\x57\xe5\xc9\xc9\x0b\x46\x4c\x91\xee\x6f\xa8\x0b\x10\x42\x14\x33\xaf\x80\x68\x73\x23\x06\xdd\x14\xd2\xd1\x31\x83\xba\x41\x35\x7e\x2f\x15\x7e\xfb\xcc\x33\x71\x09\xd0\x88\xf0\x30\x17\xc3\x7a\x97\x6d\x8f\x6b\xad\x45\x96\x42\xdc\xd1\xae\xb5\xce\x92\xe4\xc6\xfb\x15\xb9\x39\x3d\xe9\x90\x9b\xe7\x1d\x72\x73\x6a\xfe\x1f\x53\x4c\xcd\x5f\x27\xe6\xaf\x17\x1d\x72\xf3\x02\x42\x2c\xcd\x4f\x36\xc7\x0b\xde\x83\x3f\x9f\x77\xc8\x40\xca\x53\xfc\xdf\x93\xf5\xe0\xb1\x2c\x78\x35\x6d\x55\x64\xef\x90\x44\xdb\x33\xf0\xcd\x05\x10\x6f\xbe\xba\xbc\xcb\x66\xfe\x8d\xad\x8d\xb0\xa1\xad\x2d\xaf\x2d\x08\xa1\x3b\x5c\x2b\x1f\x45\xce\x6d\x23\xd7\x80\xf5\x75\x5f\xaf\xcb\x82\x76\xac\x39\x57\xb4\x31\xcd\xbb\xd7\x6c\xa2\x6b\x0b\xa9\x2a\x26\xf8\xe9\xe7\x05\x2f\x7b\x63\x9a\xdf\x51\x69\x0b\x1f\x61\xc3\xfa\xbc\x3c\x21\xe1\xd4\xee\x58\xf3\x32\x9e\xd2\xd7\xee\xe6\x81\x08\x5f\x85\x78\xb8\x29\xcd\xcd\x2d\x22\xa3\xfc\x4c\xe7\x46\xcd\x5c\xc0\x8b\x92\xe6\x58\xe5\x26\xbc\xd1\xe8\x36\x5f\xe1\x66\xf8\x63\x83\xda\xf1\x87\xfb\x36\xc1\xa8\xab\x4b\xe3\x7b\x81\x8e\x1b\x30\xf5\x73\x0f\xc7\x2a\x35\x5e\x36\x58\x7f\x24\xe5\xb5\x67\xad\x32\xf3\xf2\xf2\xe5\x0b\xd0\x71\xfb\x34\xb9\xbe\xa5\x2a\xc5\x93\xa5\xe0\x7d\x9e\xc1\x4d\xf6\x17\x53\xea\x2f\x01\x2c\x18\xb5\x8c\x8b\x50\x9b\x3b\x22\x4f\xbb\xdf\x7c\xfd\xf5\x8b\xaf\x2d\x26\xad\xe6\x37\xac\x09\x71\xb6\xae\x53\x60\xbd\xeb\x1c\x8e\xb4\x18\xab\x14\xdd\x37\x31\x56\xe9\x49\xb8\x40\x76\x19\xab\xd4\x94\x35\x8f\x38\x60\x69\xaa\xab\x31\x6a\xe9\xee\xa8\xa5\x65\xb2\xd7\xee\x31\x0f\x31\x7e\x29\xc6\x2f\xc5\xf8\xa5\x18\xbf\xb4\x36\x81\x12\x83\x98\x9e\x8e\x16\xbc\x8b\x20\xa6\xa9\xfb\xd9\x82\x16\xa0\xa8\xc6\x3f\x6a\x35\xfe\xa9\x47\x32\x6d\x49\x5d\x8c\x31\x4d\x31\xa6\x29\xc6\x34\xc5\x98\xa6\x18\xd3\x14\x63\x9a\x62\x4c\x53\xfb\x69\x19\x03\x9b\x62\x60\xd3\xbc\x16\xc6\xc0\xa6\x18\xd8\x14\x03\x9b\x62\x60\x13\x4a\x93\x05\x6f\xaa\x7b\x16\xd8\x34\xc3\xa5\x13\xa3\x9b\xd6\x62\xd7\x8a\x21\x4e\x5b\x0f\x71\x9a\xa1\xbe\xc5\x38\xa7\x18\xe7\xb4\xb7\x71\x4e\x5f\xd9\x37\x0e\x78\x88\x9c\x76\x50\xf0\x02\x0c\x58\xa0\x71\xe0\xfe\xb2\xf5\xd6\xcd\x86\xbd\xd3\x3f\xf5\xc0\x6c\x88\x85\xe4\xb4\x18\x55\xcb\xf0\xe0\x98\xe6\xfc\x38\x5c\xff\x43\x56\x4c\xc9\x5b\x00\xa1\x6b\x48\x95\x03\x9a\xe7\x99\xbd\x0f\x1e\xff\x53\x37\xe9\xe0\xc2\xa7\x13\x3a\xce\x66\x3f\xbd\x11\x69\x2f\x20\x3e\xcc\x95\x2c\x64\xbf\x1c\x54\xc3\x14\x08\xab\xe6\x32\x19\xb2\xa2\xa2\x5a\x0e\x55\xe9\xf0\x86\x7d\xe0\x79\x2e\xcf\x53\xfb\xd1\x6b\xa9\x58\xe5\x2c\xaa\xbd\xec\xf0\xf7\xf6\xa2\xbb\x8e\x23\x79\xea\xa8\x7b\x7e\x72\x32\x7d\x4e\x35\x29\xf8\xbe\xaf\xb5\x82\x20\xb8\xf2\xb8\x69\x92\x27\xf7\x34\xcb\x87\xe3\x58\x2b\xf6\xb7\x99\xa7\xda\xcb\x93\xd3\xb9\xad\xff\x51\x38\xf4\x6d\x96\xd6\xce\xc7\xf6\x5b\x3f\x00\x66\x4e\x4d\x1a\x58\x95\xdb\x87\xb6\xa0\xc3\xa9\xd7\x13\xa9\x82\xb3\xe8\xe7\xaf\xc2\x1a\xdd\x99\x03\x1b\xe6\xe6\xf4\xb1\xec\x99\x36\xd7\xe0\x8c\x0d\xf3\xd3\xe9\xd9\xc5\xf9\xa7\xb6\xf7\xe3\x9e\x59\x7e\xcf\xb8\x81\x04\xa7\xcf\x23\xd8\x37\xff\x37\x4c\xb5\xbf\x7b\xeb\x98\x43\x58\x0a\x26\x0a\x0c\x5f\xa8\xcd\xd4\xe2\x7b\xe9\xf7\xc7\xbf\x5f\x68\xbd\xe3\xe5\x10\x83\x0d\x8c\xea\x02\x5c\xda\xaf\x5d\x13\xa6\x82\xd4\x9a\x8b\xdf\x7c\x8e\xab\xff\x8e\x6f\x76\xb5\x01\x66\x7e\x60\x2a\xfb\x56\x17\x8a\xd1\xf1\x7f\xdf\x4e\x73\x3b\x2d\x50\x76\xfd\xeb\xfd\xde\x69\x3d\xb3\x00\xcd\xbe\x6a\x4c\xd1\xe3\xdc\x5b\xc1\x07\xb5\xcb\x15\xf2\x62\xbb\x35\x7b\x30\xeb\xb5\x56\x87\x76\xbb\x1b\xbb\xdd\x61\x3d\x7b\x1f\xcc\xc7\xde\xa8\x54\xdd\x9c\x2a\x3a\x66\x05\x53\x7a\xb6\x3f\xbd\x31\xfc\x80\x77\x0c\xbc\x00\xdf\x49\x79\x3d\xa6\xea\x3a\x88\x98\x80\x75\x8a\x4c\xc9\xda\x3a\x23\x26\x39\x23\x57\x07\xdf\x7d\xfc\xf8\xfd\x87\xb3\x4f\xdf\x5f\x1d\x54\xb1\x19\x70\x71\x48\x25\x80\x7b\xf3\x71\x9e\xb1\x31\x13\x05\xe9\xfb\x52\x21\x76\x63\x28\x90\x28\x9d\x6b\x32\xc8\x28\x3a\xb2\xab\x57\xc0\x58\x66\xbe\xb2\xce\x34\xef\xe1\x4d\xb9\x4e\x14\xb3\x01\x69\xd6\xdd\x67\x2f\x18\xa6\x3a\xaa\x8d\x34\x6b\x14\xa4\x58\x51\x2a\xc1\x52\x08\xa7\x14\x13\x77\xf7\x49\x30\x98\xe8\x86\x66\x1d\x22\x80\xe7\x1a\x6c\x7e\x13\x57\x48\x55\xaf\x35\x68\x32\xb0\xf7\x4d\x88\xeb\xb3\x65\x8e\x4e\x4b\xb0\xad\x51\xa2\x19\x52\xda\xa2\xa9\x14\xdd\x33\xd0\x28\x1c\xbe\x4e\x48\xd0\x6e\x9e\xc2\x10\xa4\xde\xb2\x3a\x60\xb4\x28\x15\x23\x60\xf0\x6f\x4c\x84\x2d\x89\x09\xa3\x56\x00\xf0\xb5\xf7\x55\xcf\x2a\xb6\x61\x7c\x81\x39\xfe\x57\xc9\x54\xc3\xd0\x61\x6f\xc9\x6d\xd3\x7f\xb7\x7f\xa8\xf6\xb0\x84\x00\xc7\x73\x6b\xe1\x29\x54\xc9\xda\x36\xed\x9d\xc1\x7e\x18\xd8\x57\x70\x51\x32\x6b\x85\x0d\x6e\x8e\x9a\x15\xe8\x16\x43\x06\x7d\x70\xf2\x8f\x25\xcc\xad\x2e\xb3\x22\x08\x00\x72\xfe\x14\x34\xb2\xc3\xd0\x60\xc0\x51\xe5\xbd\xc0\xe8\xb5\xb4\xe3\xfd\xc5\x66\xe6\xa5\xc8\x26\xde\x55\xe6\x1b\x82\x9f\x42\xe1\x94\xe4\x8a\xdd\x00\x7f\x03\x0c\xa3\xad\x1a\x77\x03\xb2\xc7\x27\x34\xb3\xcf\xaa\xfd\xe7\x3d\x9d\xce\x39\x84\x45\xca\x81\xaf\xe4\x99\x33\xd6\xba\xf6\x05\xf1\x6c\xb4\xd9\x14\x6e\x76\x16\xc3\xd5\xe0\x43\xdd\xfc\x12\xf2\xb7\xfa\xa9\xcf\xcc\x17\x24\x93\x62\xc8\x94\xbd\x84\xdf\x8e\x18\x58\xae\xd3\x12\x8c\x2c\xec\x4b\xce\xf1\x64\x26\x47\x43\x26\x98\x02\x1b\xf8\x80\xdf\xc0\xd3\x01\x1f\x14\x0c\x8d\xc5\x65\xc1\xf4\x33\x84\x64\x4f\xa4\x18\xf0\x61\x69\x3f\x4b\x46\x54\x0c\x59\x68\x45\xc0\xc5\x59\xdf\x45\x78\xac\xa5\xce\x5c\xff\xf2\xf4\x84\x38\x65\xed\xad\x69\x02\x4b\x09\x53\xca\x8c\x95\x1c\x62\x03\xed\x9b\xbe\x47\x85\xbc\x66\xc2\x77\xd9\xc6\x78\x09\xc6\xc0\x70\x64\xf4\x19\xae\x0b\xf3\x93\x91\xd3\xe0\x8e\x00\x1f\x9f\x62\xe8\x26\x28\x46\x8c\x2b\xb4\x69\x9b\x82\x65\x59\xd4\x67\x1c\xf6\x51\x8f\x7c\x34\x55\xdf\x72\x6d\x49\x1f\x6c\x2d\x66\x66\xac\x18\x40\xb3\x3f\x94\x63\xa5\xa4\x73\xd2\xda\x16\x9a\xe9\x61\x60\x94\xf5\xbf\x9b\xce\x42\xe7\xe6\x0e\x0b\x94\x0b\x0d\x06\xbf\xa2\x5b\xdc\x40\x8e\x70\xcd\x26\x48\x9e\xe0\x7f\xb6\xb1\x91\x5a\xd0\x5c\x8f\x64\xe1\xbc\x29\x46\x18\x88\x60\x40\xfc\xfb\x7e\x21\xdb\xe6\xe3\x16\xea\x7a\x3d\x0e\x04\xb8\x91\x9c\x96\x29\xa0\x43\xc6\x96\x4d\xbe\x63\x26\x3e\x45\x92\x78\x42\x07\xe8\x30\x73\x54\x12\x8d\xc1\x40\x07\x13\x58\x75\x52\x94\x59\x40\x06\x61\xd5\x9a\x0e\xa1\x1a\x16\xa4\xf9\x2f\x4e\xca\x35\x9b\xa0\xc0\xae\x0a\xbe\x3a\x70\x5d\xbe\x3a\x40\x9a\x97\x9a\xac\x33\xbb\xc0\x87\x34\xa1\x80\xc0\x93\x8a\x6b\x10\x42\xd5\x19\x01\x33\x07\x0b\xc0\x4a\xe3\x70\xf4\x70\x10\x60\x0d\x3a\x07\xa8\x0b\x52\xb4\x27\x47\x7f\x12\xce\x98\xd9\xaf\xa6\xea\x31\xd7\x1a\x4e\x04\x1c\x1e\x54\xf9\xf4\xb2\x92\xd7\x2d\xbd\xc5\xc3\x89\xee\x2f\x6d\xcf\x88\x66\x19\x4b\x0a\xd8\x67\xb0\x37\x14\x4f\x70\x27\x38\x77\x8f\xef\xbb\x5b\x15\x38\x06\x5c\xe1\xf0\x6b\x6f\x0a\x84\x10\x5d\x76\xc3\xd4\x04\x22\x3d\x96\xed\x3e\x94\x76\x69\x5b\xf3\x60\xc6\x20\xa3\x7d\x96\xad\x6d\x0c\xa0\xb4\x5d\x8c\x41\xc6\xc7\xdc\x06\x91\x8f\xe9\x17\x3e\x2e\xc7\xce\x2e\x0b\xbd\xb7\x37\x10\x1c\x1f\x33\x14\x36\x27\x13\xc6\x27\xa1\x59\x06\x62\x18\x0e\x62\xf0\xee\x10\xf6\x05\x84\xee\xb4\xea\x84\xe3\xfa\x8b\x5b\xeb\xbf\xd8\x3d\x6c\x0f\x0b\x28\xcf\x05\xb5\x42\x2e\x88\xdd\x80\x9e\x56\xc3\xb9\xaa\xbd\x2c\xd5\x60\xba\x37\xb7\x15\x7f\xe8\x62\x2b\x8d\x7a\xc0\x2a\x69\x69\xaa\xc6\xbe\x98\x69\x32\x4a\x6a\x81\x81\x93\x04\xfb\x8e\x87\x2d\xf6\x8d\xdd\xba\x00\x00\x94\x54\x20\xc9\x8c\xa0\x1b\xcb\x52\x14\x18\x39\x60\x7a\x79\x54\xe6\xa6\xb2\x7f\x33\x25\xf1\x97\x67\x4e\xba\xa1\x46\x48\x41\xa0\xbb\xaf\xdd\xda\x01\x6f\x34\xcf\x0a\xf0\x6e\xa3\x6b\x2e\xf5\x2a\x88\x55\x75\x6a\x5a\x08\x46\x3d\x27\x61\xde\x43\x70\x46\x41\xb0\xa6\x51\x31\xc6\x5c\x30\x7f\x9a\xd7\x94\x22\x90\xa5\xce\x18\x55\x8f\x9d\x4e\x46\x52\x6a\x06\x52\xac\x90\x4e\x86\xda\xb9\x30\xc3\x42\xd5\xb0\x04\xb5\x9d\xc2\xa1\x04\x1d\x82\x41\x32\x7d\xb3\xed\xa9\xd9\xb9\x70\x74\xcf\x07\xc4\x2f\xa9\x4a\x19\x71\xfa\x4d\xa3\x03\x5c\x13\x36\xce\x8b\x49\x5d\x11\xf3\xda\x37\x2d\x8c\xce\x72\x57\x87\xee\x3a\x0c\xf8\xa0\x71\x14\xe0\xe9\xe1\xd7\xe5\xb0\xa4\x8a\x8a\x82\xb1\x20\xaa\xd0\xcd\x94\xdf\xf6\xb7\x48\x35\x03\x21\xa5\xae\xed\xfe\x60\xf3\x2a\x5f\x21\x09\xd7\xba\xb4\x97\x00\x2e\x86\x19\xab\x76\x88\xd7\x32\xdc\x82\xeb\x5a\x06\x15\x6d\x6e\x1d\xbe\xca\xe5\x4e\x5a\x77\xc8\xc2\x1d\x43\x97\x2c\x6d\x3d\x6e\xe1\xae\x53\xf6\xb5\x79\x59\x14\xbe\x07\xa9\xbf\xd6\x05\x51\x64\x72\xcc\x0a\x3e\x66\x9a\xf8\x78\x4a\xb3\x0b\x1b\x1a\x55\xa5\x60\x98\x19\x65\x42\x97\xca\x0d\x1f\x75\x2a\x92\xed\x9c\x1d\x35\xec\x32\x6c\x4c\x50\x86\x30\x96\x05\x42\x97\x4a\x71\x8d\xfc\x45\xc4\x88\x4d\x92\x51\x35\x74\x13\x0d\x3b\x1e\x8b\xc7\x1b\x99\x66\x0c\x16\x5e\x2e\xb5\xe6\x66\xc1\xb9\xf4\x16\xb3\xe0\xc2\xfd\x65\x63\xf9\xab\x3b\x19\xd4\xe3\x82\x18\xc2\xf8\x95\x5a\x3c\x23\xb6\xfa\x96\x6a\xbb\xe7\xfc\xbd\xd3\xa7\xb1\xd5\x34\x1c\xd4\xfb\xa9\x36\x13\x9c\x94\x19\xd4\xc8\xab\x65\xb3\xb4\xf4\xe7\x75\x9e\x92\x16\xaf\xd6\x9a\xc5\xfe\xf9\x80\x1c\x9a\xef\x0e\x6d\x0c\x08\x8c\x44\x59\xe4\x65\x61\x63\x6a\x8b\x62\x42\x72\x65\x6a\x5f\xba\x37\xf8\xf5\x36\x0f\xb1\xa6\xee\xa6\x31\xda\xd6\x2c\xdc\x42\x51\x2e\xc0\xb3\x09\x14\x68\x3e\xbd\xc4\xc7\x0e\x51\xbf\x97\x8c\xec\xe9\x5b\xf1\x80\xf9\x89\x46\x62\x32\x9f\xfc\x11\x58\xf1\xb8\x3c\x4e\x65\xa2\x8f\xbd\x97\xfa\x18\x56\x7b\x97\xe6\xdc\xa5\x7a\x98\x2b\x9f\x3e\xf6\xb9\x41\x5d\x5f\xe1\x00\xb6\x35\xe4\x20\x82\x48\x0a\x15\x88\x52\x68\x56\x2c\x39\xdc\x8d\xce\xef\x70\xdc\x3f\x80\xb8\xf5\x47\x92\x06\x1a\xa9\xe6\xdc\x18\x55\x23\xcf\x33\x8e\x02\xc6\x4b\x49\xb3\x93\x61\xed\x8d\xf8\x70\x94\x4d\xea\x01\xbe\xe1\xcc\xd5\xea\xb2\x86\x01\x48\x88\xf0\x25\x59\x9e\xb4\x96\x8a\xcd\xbb\x0f\x6f\x46\x3f\x4c\x1b\x98\x37\x3b\xad\x9f\xf9\x98\x99\x03\xcb\x19\x2c\xcc\xd0\x1e\xe3\x59\x8a\x2a\x1f\x1c\x1a\x20\xb4\x30\x76\x21\x75\x16\x00\xa7\xa7\x40\xb8\xa2\x62\x43\xaa\xd2\x8c\x69\xcb\x52\x37\x21\x34\x29\xf8\x0d\xc4\xe2\x2b\xc2\x85\xfb\xd7\xb2\xf2\xa5\xc0\xe6\x5d\x42\x48\xfb\x0c\x1b\xd5\x86\xc4\xe6\xdf\xf0\xe2\x28\x95\xb5\x75\xf8\xe4\x44\x97\xcc\x9d\x56\x1e\x3f\x38\x22\xad\xce\x54\x8c\xd8\x18\x0f\x53\x34\xfb\xc3\x80\xa4\x69\xc7\x1e\x57\x1d\xfb\xee\x18\x63\x25\x8b\xe0\x2a\x49\x2e\x6d\x0e\x42\x63\x51\x2c\x3b\x68\x2d\x5e\x8a\x95\xed\x79\xf6\xaf\x9f\x17\xf3\x3e\x1d\xff\xc7\xb4\xe1\xb7\x8d\x3a\xa1\x14\xa3\x69\xc3\xfe\xb5\xb8\x0b\xca\x7c\xbc\xb7\x2e\xa8\x87\xe9\x19\x7a\x8a\x5e\xa1\x21\x7b\x8c\x4e\xa1\x30\x28\xee\xce\x46\xa0\x04\xca\x69\x31\x6a\x17\x40\xf0\xdf\xda\x93\x20\x44\xd7\xc8\x97\x2d\x1e\x70\x0f\x45\xfb\x9d\x23\x68\xc5\x80\x0f\xc7\x34\xdf\x86\x7f\x5f\xd9\xbb\xf4\xb4\xa3\xdf\x34\xe2\x43\x2d\x8e\xf5\x2e\x17\xbf\x7d\xfb\x9d\x54\x67\x59\xe6\x63\x20\xf7\x42\xd2\x46\x67\x7f\x53\xa4\xdb\xc9\x8a\x6e\xfe\x96\xd7\xd6\x20\xd1\xa7\x77\x4e\x74\xf0\x47\x07\x7f\x74\xf0\x47\x07\x7f\x74\xf0\x47\x07\x7f\x74\xf0\x47\x07\x7f\x74\xf0\x47\x07\x7f\x74\xf0\x47\x07\x7f\x74\xf0\x47\x07\x7f\x74\xf0\x47\x07\xff\x12\x62\xff\xa1\x98\x38\xa3\x83\x3f\x3a\xf8\xa3\x83\x3f\x3a\xf8\xa3\x83\xff\xa1\x38\xf8\x1d\xc0\xee\x2e\xdd\x4e\x6f\x7d\x1b\x16\x71\x3b\xf9\xb7\xa3\xdb\xa9\x39\xea\xfb\xe7\x76\xf2\x93\x15\xdd\x4e\x2d\xaf\xdd\xdb\xed\xd4\xb6\x73\xa2\xdb\x29\xba\x9d\xa2\xdb\x29\xba\x9d\xa2\xdb\x29\xba\x9d\xa2\xdb\x29\xba\x9d\xa2\xdb\x29\xba\x9d\xa2\xdb\x29\xba\x9d\xa2\xdb\x29\xba\x9d\xa2\xdb\x29\xba\x9d\x96\x10\xfb\xd1\xed\x14\xdd\x4e\xd1\xed\xf4\x30\x66\x34\xba\x9d\xea\xc3\x13\xdd\x4e\x7b\xed\x76\x02\x13\xf1\x2e\x7d\x4e\xa6\x01\x8b\xf9\x9b\xcc\x9b\xd1\xd7\xd4\x1c\xed\x3d\xf4\x35\x99\x89\x8a\x7e\xa6\x96\xd7\xee\xef\x67\x6a\xec\x96\xe8\x63\x8a\x3e\xa6\xe8\x63\x8a\x3e\xa6\xe8\x63\x8a\x3e\xa6\xe8\x63\x8a\x3e\xa6\xe8\x63\x8a\x3e\xa6\xe8\x63\x8a\x3e\xa6\xe8\x63\x8a\x3e\xa6\xe8\x63\x8a\x3e\xa6\x25\xc4\x7e\xf4\x31\x45\x1f\x53\xf4\x31\x3d\x8c\x19\x8d\x3e\xa6\xfa\xf0\x44\x1f\xd3\x3e\xfb\x98\x60\x59\x28\x18\x9c\x1d\x3a\x9a\xde\x9b\x56\x7c\x32\xad\x58\xc8\xdb\x54\xbd\x1e\x5d\x4e\xcd\x71\xdf\x3f\x97\x53\x35\x5b\xd1\xef\xd4\xf2\xda\xbd\xfd\x4e\xad\x9b\x27\x3a\x9f\xa2\xf3\x29\x3a\x9f\xa2\xf3\x29\x3a\x9f\xa2\xf3\x29\x3a\x9f\xa2\xf3\x29\x3a\x9f\xa2\xf3\x29\x3a\x9f\xa2\xf3\x29\x3a\x9f\xa2\xf3\x29\x3a\x9f\xa2\xf3\x69\x09\xb1\x1f\x9d\x4f\xd1\xf9\x14\x9d\x4f\x0f\x63\x46\xa3\xf3\xa9\x3e\x3c\xd1\xf9\xb4\xcf\xce\x27\x51\xf9\x6d\x76\xe7\x7b\xf2\xce\xa3\x85\x5c\x4f\xad\x6f\xcf\x30\xa0\x93\x39\xee\x8b\x68\x44\x7f\xc4\x46\xf4\x3b\x36\xda\x12\x86\xf4\x39\x5b\xef\xee\xcd\xd7\x70\xa9\xdd\xbd\x18\xa3\x49\x3d\x9a\xd4\xa3\x49\x3d\x9a\xd4\x1f\x9b\x49\x7d\x31\x39\xdc\x6a\x56\xbf\x5b\x79\x5e\xa3\xec\xdd\x9a\x81\x7d\xb1\xc1\x98\x6d\x64\x7f\x18\x23\xb2\x8c\xb9\x7d\xb1\x11\x99\x6d\x72\xdf\xda\x88\x44\xe3\x7b\x34\xbe\x47\xe3\x7b\x34\xbe\x47\xe3\xfb\xc6\x8c\xef\x0b\x9e\x05\x53\x06\xf8\x39\xb6\xa4\x35\x1e\x02\x8f\xd8\x78\xbd\xd8\xe0\xdf\x65\xc0\xde\xda\x51\x1c\x4d\xd9\xdb\x9a\xdf\x69\x73\xf6\xd6\x26\x79\xa7\x86\xed\xc5\x06\xeb\x0e\xe3\xf6\xf6\x44\xd2\xbe\x9a\xb9\x17\x1b\xc2\x69\x53\xf7\x7d\x2d\x6e\xad\x06\xe9\x98\x8a\xb0\x1f\xa9\x08\xde\x7a\x1f\x33\x11\x5a\x5e\xbb\x77\x26\x42\x9b\x73\x64\xc3\x89\x08\x0f\x25\x38\xe1\xab\xc6\x14\x1d\xe4\x52\xaf\xd9\xcd\x85\x17\x13\x42\x17\xf2\x68\xe1\xcb\x6b\xf0\x69\xe1\x28\xf6\x65\x3a\x53\xc6\xb6\x3d\x33\xaa\x28\x57\x2c\xb5\xe3\xb4\xc1\x9d\xbe\xe0\x2e\x9f\x73\xc8\x99\xa5\x65\x2f\x1c\x1d\xc2\x45\x6a\x84\xa3\xbb\x50\xd5\x8c\x8f\xa1\x6b\xac\xcf\x48\x6e\x96\xbe\x36\x6b\x8f\x9c\x09\xc2\x05\x9a\xfe\xa5\x22\xa5\xf0\xde\x83\x94\xa4\x6a\xf2\xa9\x14\x24\xe5\x8a\x19\x75\x80\x79\x93\xb4\xb9\xbd\xc0\xf5\xd0\xda\xe4\x9d\x44\xb5\x16\x50\x32\x28\x15\xd8\x12\x72\x25\x13\xa6\xe1\x1e\x67\xb5\x0f\xab\xeb\xf7\xc8\x4f\x50\x23\xd8\x68\xe0\xe2\xf5\x8a\x74\xc9\x59\x96\xbd\x82\x5b\x5a\xaa\x26\x44\x95\x82\xe8\x82\x9a\x93\xdb\x5d\x4d\x6d\x71\x2c\x5d\xe1\x44\xc5\xbe\xec\x46\x67\x03\x03\xc3\x07\x2a\xe8\x90\x29\x34\x95\x99\x56\x11\xaa\xb5\x4c\x38\xdc\xfd\xbc\x51\x8a\x82\x6d\x51\x2a\xc2\x44\x61\x94\x31\x77\x19\x1e\xd3\x6b\x33\x8a\xc5\x88\x69\xe6\x34\x1a\xa3\xeb\x39\x47\x0e\xf8\x32\xfa\x8c\x80\x46\x07\x06\x28\xa9\xc8\xe9\xf3\x3f\x9a\x77\x15\x4d\xc0\xe3\x94\x49\x31\x44\xfd\x05\x8c\x44\xe6\x36\x4f\xb9\x40\x29\x04\x46\x98\xea\x5d\xb0\xc2\x5b\x7f\x18\xe9\x4f\xbc\x8a\x3e\x94\x19\x15\xc3\x9e\x54\xc3\xe3\xfc\x7a\x78\x5c\x0a\x9e\xc8\x94\x1d\xff\xee\x5c\x5f\x98\x52\x56\xb6\xea\xda\xc1\x59\xe7\xf4\xec\x95\xc2\xf3\xd0\xf4\x90\x45\x75\x90\xe7\x0b\xe8\x20\xaf\xd1\x30\xb5\x1f\xcd\x7d\x3e\xb7\xb9\x67\x89\xb9\x59\xee\x47\x7b\x1f\x93\x8a\x07\x8a\xc5\xbe\xa9\x78\x5f\x91\x3b\xc3\x7f\x8e\xff\xe3\xff\xfe\xed\xb8\x6f\xce\x57\x31\xac\xc5\x04\xad\xa0\x19\xc6\x33\x7b\x21\x25\xb7\xe5\xbc\xde\x70\xc8\xe0\x13\x3d\xa5\x17\x4c\x6e\x6a\x3b\xa1\x37\x3c\x21\xd6\xb2\x8e\xb3\x20\x52\x62\xe4\x1c\xd1\x89\xcc\x59\x87\xe8\x32\x19\x99\xde\x83\x19\x8c\xd1\x31\xda\x70\x72\x25\xc1\x92\xdf\xd6\xc1\x9c\x16\xa3\xf6\xfe\x89\x76\xd9\x71\xc7\x5d\x60\xc3\x1d\x8f\x97\xc7\xe9\xcb\xe3\x77\x28\x7d\x97\xbd\x3a\xa6\x2d\xdf\x3d\xf0\x2b\xa4\xeb\xd1\x6c\x1d\x22\xaa\xbe\x9b\x18\xd5\x3d\x52\x7c\x97\x6e\xec\x4e\xd5\xde\x25\x5b\x1b\x95\x5e\xff\xfa\x1c\xa5\x77\x5a\xb6\xad\x59\xe5\xc5\x40\xce\x31\xcd\x6b\x4a\x2f\xc6\x14\xac\x57\xce\x63\x99\x24\x91\x59\xc6\x12\xe7\xae\x7a\x0d\xd5\x7f\xa0\xf9\x1d\x52\x1f\x3f\x44\xa9\xff\xda\x7f\x5d\xc9\xff\xd6\x32\x36\x7b\x02\xac\xbe\x65\xc6\x34\x19\x71\xc1\xd4\xa4\x97\x5f\x0f\xcd\x0f\xba\x37\x66\x05\x35\x9b\xe8\x0d\xf4\xf3\x23\x0c\x98\x5e\x8b\xf1\x30\x46\x56\xc7\xc8\xea\x18\x59\x1d\x23\xab\x63\x64\x75\xf8\x7c\x3b\x1e\x81\x68\x04\x5a\x78\xa2\x76\xe9\xb8\x89\x01\xf0\x6d\x4a\x83\x8f\x28\xe2\x82\x68\x0c\xf2\x21\x7d\x36\xc0\x2c\x3e\x1f\x10\x59\xa9\x12\x56\x7a\xc1\xd2\x09\x8c\x60\x42\x8a\xae\x60\x43\x0a\x0b\xd4\x46\x03\x85\xc6\x32\x0c\x8e\xf6\x5b\xc3\x6a\x88\x7c\x3c\x66\x29\xa7\x05\xcb\x26\x55\x7a\x5d\x75\xe4\xf2\xac\x63\xa3\x7c\x60\xd0\xc9\x50\xd1\x04\x76\x0d\x97\xa9\x57\x08\xaa\x43\x1b\x72\x17\xdd\x2a\x2d\xb5\x69\x64\x38\x5d\xd4\x7c\xe9\x3a\x64\x2b\x19\xa0\x0c\x74\x45\xf4\xb0\x9d\x63\x46\x45\x6b\x1b\x57\x98\x66\x68\xf3\x05\x34\x79\xb7\x31\x54\x31\xdb\x21\x66\x3b\xc4\x6c\x87\x98\xed\x10\xb3\x1d\x62\xb6\x43\xcc\x76\xf0\x87\xc0\x1b\x96\x2b\x66\x94\x92\xf4\x15\xc9\x33\x46\x35\xf3\x22\xe8\x42\xc9\x9c\x0e\x41\x3b\xba\x90\x19\x4f\x26\xb5\x9c\x7c\xb7\xe8\x52\x5f\x80\x59\x76\xa7\xbd\x3f\xf4\xc8\x25\xca\x33\x54\x5d\x72\x26\xcc\x66\xa9\xce\x54\x46\xa4\xca\x47\x54\x38\x8c\x00\x55\xb2\xe3\x01\xcd\xdc\x5d\xf9\xea\x00\x1f\x5f\x1d\x90\x01\x17\x34\xe3\xff\x76\x07\x49\x9f\x11\x9a\x42\xd0\xbe\x3c\xc6\xa0\xe5\xb4\xba\x86\x61\xf1\x87\xba\xfa\x08\xef\xa7\x3d\xf2\x96\x83\x70\x0c\x9a\x2e\xd5\x74\xdf\xaa\x84\x8d\x02\xaf\xc7\x70\x47\x91\xc5\x68\x95\x09\xc5\x1e\xbc\x71\x7d\xdf\x15\xdc\xc0\xdf\xec\xb9\x60\x36\xec\x48\xde\x92\x21\x55\x7d\x3a\xac\x19\x26\xfd\xa5\x86\xa9\x81\x54\x63\x33\x27\xad\xe3\xf5\xb1\xd1\xa3\xd9\xc3\x05\x4a\xaf\xd3\x58\x73\x1c\x5b\x6e\xb4\xc9\x84\xa7\xd5\x55\x18\x74\x05\x30\x4e\xf8\x39\x36\x87\xb5\x3d\x49\x9d\x36\xd0\x0b\x26\xd3\x9d\x23\x3e\x47\xc2\xe3\x5d\xd4\x2b\xeb\x11\xb4\xfe\xc3\xd9\x14\xde\xec\x0e\xb1\x0f\x87\xa4\x6b\x17\x60\x7d\x81\xea\x6f\xc9\xe1\x77\x34\xb9\x1e\x2a\x59\x8a\xd4\xbc\x05\xb8\x11\xf0\x52\x63\xe0\x50\x85\xb4\xfa\x71\xbd\x10\xd7\x83\xbe\x2f\xe9\x5b\x72\xf8\x4e\x2a\x16\x14\x4b\x12\xaa\x13\x9a\x9a\xde\xdb\xf1\x41\x68\x11\x28\x4f\xe3\xd5\x73\xaa\xc0\x81\x2f\x63\x95\x05\x99\x37\x97\xfb\x5e\x24\xf5\xc4\xd4\xaa\x7d\x98\x85\x98\x5a\x15\x53\xab\x1e\x5b\x6a\x55\xab\x97\x2e\x06\x0d\x2c\xe9\xa6\xbb\x2c\x68\x51\x2e\xea\x9f\x7b\x54\xae\x6e\x3c\x8b\x2b\x3d\x69\x73\x6e\xef\x36\x97\xee\x32\xe9\x3c\x5b\x06\x72\x5b\xc4\x8b\xdd\x02\xe4\x76\x3f\xcf\x75\x84\x74\x8b\x90\x6e\xf8\x28\x42\xba\xc5\xc0\x83\x18\x78\x10\x03\x0f\x62\xe0\x41\x0c\x3c\x88\x1e\xed\xe8\xe4\x9c\x3f\x22\xd1\xc9\x19\x9d\x9c\xd1\xc9\x19\x9d\x9c\xd1\xc9\xf9\x84\x9d\x9c\xd1\xef\x10\xfd\x0e\xd1\xef\x10\xfd\x0e\x11\xd2\x2d\x42\xba\x45\x48\x37\xff\x64\xe1\xa4\x47\x6f\xbd\x8f\x90\x6e\x2d\xaf\xed\xdc\x07\xb4\x02\x70\x47\x84\x23\x88\x70\x04\x1e\x8e\x60\x11\xa7\x5e\x3b\x20\xc1\x0e\x12\x52\x37\x0e\x49\x50\xf5\x69\x31\x41\x17\x93\xa3\x1e\x41\x72\xd4\x13\xc5\xcb\x89\xa8\x76\x0f\x24\x4a\x67\x65\xe9\xb4\x63\x70\x8f\x15\x9a\xbb\x53\x78\x8f\xa5\xdb\xfb\x98\xb4\xdc\xcd\x02\x7c\xac\xa8\xe5\x7e\x45\x56\x81\xf8\xc0\x9f\x7f\xdb\x12\xd2\xc7\x62\x2a\x54\x88\xee\x11\x31\x3d\x5a\x7a\x13\x55\xa7\x87\xa8\x3a\xc5\x2c\xea\x27\x94\x45\x1d\xd3\xc5\x62\xba\x58\x4c\x17\x8b\xe9\x62\xf1\xd6\x37\x6b\x17\xed\x65\x6e\xc6\x6e\x6e\x55\x31\xb5\x64\x66\x6a\xc9\xde\x5d\xb3\xbc\x9d\x79\xed\x09\x25\x8a\xd1\xb4\xa1\x63\x2d\x72\x5b\x32\x9f\x6d\x32\x8b\x24\xd0\x3a\xd8\x17\x88\x0d\xeb\x9b\xbf\x68\x52\xf4\x08\x79\x6b\xfe\xeb\x7e\x1f\x53\x0e\x66\x38\x4d\x92\xac\xd4\x05\x53\xd5\x59\x82\x41\xa4\x24\xe3\xd7\x8c\x1c\xfa\x76\x1e\x1a\x95\xd1\xa9\x39\x3d\x72\x91\x51\x21\x18\xea\x9a\xa0\x88\xd0\x0c\x75\x9f\xd3\x3f\xae\x22\x9c\xa1\x8d\x3b\x52\x11\xfc\xa0\x79\x0d\xbb\xef\x86\xcf\xf4\x94\xbc\xc5\x11\x33\xc7\x42\xae\xdd\xe8\xd8\xf0\xa9\x52\x33\x05\x71\x4f\x95\xb2\x3c\xd9\xf0\x40\x99\xc6\x3c\x5e\x2f\xf5\x7e\x9f\x5d\xd1\xa4\x06\x17\x37\xb6\x7f\x16\xb5\xfb\xf8\x8d\xc1\x2b\x62\xad\x1d\x33\xaa\x5f\xc4\x25\xbc\x2f\xde\xe0\xe8\x06\x7f\x70\x6e\x70\x88\x9b\x59\x48\x41\x69\xca\xdf\x2e\x7c\xfb\x5f\x77\x8b\xe2\x31\x53\x43\xb6\xd0\x9b\xba\x50\xb4\x60\x43\x9e\x74\x17\xff\xc6\xfc\x3d\xb1\x6f\x82\xd0\x5f\x44\x81\xca\xa9\x2a\x38\xa4\xb5\x61\x8c\xd7\x0a\xca\x14\xd4\xb8\x07\x96\xe7\x4d\x39\xef\xef\xb8\x69\x5c\xd4\x03\xad\x48\xb4\x47\x3f\x72\x7b\xf4\xd3\x71\xe5\x37\xd2\x43\xdc\xe6\xc2\x14\x26\x23\x69\xaa\xb4\xf8\xa3\x19\x52\xe8\x19\x58\xe3\x30\x6f\x99\x66\xf0\xa5\x90\xa2\x8b\x5f\xc3\x1b\x60\x10\xd7\xe4\xe8\x7f\x6b\x29\x2e\x30\x3b\xfc\x83\x91\x77\xf6\xef\x4b\x27\x05\xab\x1f\x9f\xed\x53\x8c\xc1\xe2\xeb\xe6\x9d\x54\x09\x78\x0c\x86\x12\x26\x5f\x92\xab\x83\x81\xf9\xed\xea\x80\x9c\xd5\x46\x13\x82\xcf\xd1\xbc\x0f\x97\x1a\xbb\x51\xbb\x34\x81\x09\x80\xfc\xe2\x8c\x27\xd6\x60\x09\x77\x20\x79\x6b\xe7\x16\xf3\x6f\x73\x26\xf3\x8c\xf5\x08\xd6\x09\xb0\x02\x6e\x4d\x41\x08\x78\xeb\x44\xf8\xea\x57\x19\x5e\x53\x51\xbc\x0a\xe1\x83\x78\x15\xda\x49\x74\x41\x23\x5e\x7a\xdf\x2e\x43\xe5\xda\xed\x5e\x79\x46\x93\x55\xb4\x35\xfb\xe5\x23\xd6\xd7\x62\xb0\x65\xd4\xd0\x9e\x82\x86\xb6\x47\x8a\x50\x3c\xaf\xfd\x93\x18\x6c\x69\x4b\x7e\x54\xea\x45\xb9\x7f\x96\xd6\xaf\xc8\xe2\xb1\x8b\x4c\xa4\xb9\xe4\xa2\xd8\x0d\x3b\xd9\x5b\x5f\xfb\x6c\xb5\x64\x1e\x3b\x59\x6b\x19\x31\x92\x31\x82\x84\x45\x90\xb0\x08\x12\x16\x41\xc2\x22\x48\xd8\x4e\x2e\x1b\xf1\x4e\xb8\xf0\x44\x45\x76\xb2\x7d\xc2\x72\x8b\x71\xf5\x4f\x28\xae\x3e\x02\xf7\x45\xe0\xbe\x08\xdc\x17\x81\xfb\x22\x70\x5f\x04\xee\x8b\xc0\x7d\x31\xdd\x2c\xa6\x9b\xc5\x74\xb3\x98\x6e\xd6\x5c\x91\x91\x9d\x2c\xa2\x84\x46\x94\xd0\x88\x12\xfa\xc0\x51\x42\x5b\xbd\x74\xd1\x15\x1f\x53\x48\x9b\x1f\xec\x9c\x9d\xac\xcd\xa5\xbb\xc7\xec\x64\x8b\x78\xb1\xdb\xd8\xc9\xee\xe5\xb9\x8e\xec\x64\x91\x9d\x0c\x1f\x45\x76\xb2\x18\x78\x10\x03\x0f\x62\xe0\x41\x0c\x3c\x88\x81\x07\xd1\xa3\x1d\x9d\x9c\xf3\x47\x24\x3a\x39\xa3\x93\x33\x3a\x39\xa3\x93\x33\x3a\x39\x9f\xb0\x93\x33\xfa\x1d\xa2\xdf\x21\xfa\x1d\xa2\xdf\x21\xb2\x93\x45\x76\xb2\xc8\x4e\xe6\x9f\x2c\x9c\xf6\xe8\xad\xf7\x91\x9d\xac\xe5\xb5\x9d\xfb\x80\x22\x3b\xd9\x53\x80\x65\xdb\x14\x3b\xd9\x22\x2e\xbd\x76\x6e\xb2\x1d\xa4\xa3\x6e\x1c\x2e\xa3\xea\xd3\x62\x62\x2e\xa6\x46\x3d\x82\xd4\xa8\x08\x97\x11\xe1\x32\x5a\x1a\xb3\xc7\x8a\xd8\xc3\x80\xcb\x58\xa1\xb9\x3b\xe5\x26\x5b\xba\xbd\x8f\x49\xc7\xdd\x2c\x37\xd9\x8a\x3a\xee\x57\x64\x05\x7c\x8f\xed\x52\x93\x2d\x0b\xec\x11\xe1\x3c\x5a\x7a\x13\xf5\xa6\x87\xa8\x37\xc5\x04\xea\x27\x94\x40\x1d\x33\xc5\x62\xa6\x58\xcc\x14\x8b\x99\x62\xf1\xca\x37\x6b\x17\xed\x65\x5a\x46\x24\x26\xdb\x9b\x1b\xd6\xa6\x89\xc9\xf6\x2e\x97\xa4\x85\x98\x6c\x91\xdb\x52\x1b\x31\xd9\x3a\x13\x48\x22\x31\x99\x5f\x03\x8b\xab\x08\x91\x98\xcc\xfe\x5f\x3c\xbb\xa2\x3d\x6d\xe7\xc4\x64\x3b\x70\x19\x87\xc4\x64\x33\xaa\x8f\xc4\x64\xed\x7d\x8e\x1e\xf0\x48\x4c\xb6\x09\x62\xb2\x45\x94\xa9\x56\x62\xb2\x47\xe4\xb9\x8f\xc4\x64\xd1\x1e\xfd\xf4\xfc\xf8\x91\x98\x6c\x9d\xeb\x26\x12\x93\xc5\xab\x50\xbc\x0a\x4d\x0f\xe3\x03\x21\x26\xbb\xf7\x65\x68\x3b\xc4\x64\x8b\x99\xbe\x5a\x89\xc9\x1e\x91\xbe\x16\x23\x2d\xa3\x86\xf6\x14\x34\xb4\x3d\x52\x84\xe2\x79\xed\x9f\xc4\x48\x4b\x5b\xf2\xa3\x52\x2f\x36\x49\x4c\xb6\x8d\xc0\x45\x40\x2b\xdb\x0d\x2b\x99\xa9\x7a\xc1\xc0\xc5\x56\x46\xb2\xe6\xf7\x31\x7c\x31\x82\x82\x45\x50\xb0\x08\x0a\x16\x41\xc1\x22\x28\xd8\x4e\x6e\x18\xf1\x22\xb8\xf0\x44\x45\x36\xb2\x7d\xc2\x6e\x8b\xc1\xf4\x4f\x28\x98\x3e\x02\xf5\x45\xa0\xbe\x08\xd4\x17\x81\xfa\x22\x50\x5f\x04\xea\x8b\x40\x7d\x31\xc7\x2c\xe6\x98\xc5\x1c\xb3\x98\x63\xd6\x5c\x91\x91\x8d\x2c\xa2\x82\x46\x54\xd0\x88\x0a\xfa\xc0\x51\x41\x5b\xbd\x73\xd1\xff\x1e\xf3\x46\x9b\x1f\xec\x9e\x8d\xac\xe1\xce\xdd\x67\x26\xb2\x39\x9e\xeb\x56\x16\xb2\x55\xbd\xd5\x91\x81\x2c\x32\x90\xe1\xa3\xc8\x40\x16\x83\x0d\x62\xb0\x41\x0c\x36\x88\xc1\x06\x31\xd8\x20\x7a\xb1\xa3\x63\x73\xfe\x88\x44\xc7\x66\x74\x6c\x46\xc7\x66\x74\x6c\x46\xc7\xe6\x13\x76\x6c\x46\x5f\x43\xf4\x35\x44\x5f\x43\xf4\x35\x44\x06\xb2\xc8\x40\x16\x19\xc8\xfc\x93\xc5\xf3\x1b\x8d\xd2\x1f\xd9\xc7\x5a\x5e\xdb\xa9\xcf\x27\x32\x8f\x3d\x05\xdc\xb5\x4d\x31\x8f\x51\x31\xd7\x8b\x37\x83\x78\x6c\xbb\x59\xa7\x9b\x87\xc2\x80\xfe\x2c\x26\xd9\x62\xf6\xd3\x23\xc8\x7e\x8a\x30\x18\x11\x06\xa3\xa5\x31\x7b\xaa\x77\x3d\x10\x08\x8c\xe5\x9a\xba\x5b\xa2\xb1\x65\xda\xfa\x98\x54\xd9\x0d\x93\x8c\x2d\xaf\xca\x7e\x45\x96\xc5\xe9\xd8\x2e\xbb\xd8\x02\x3a\xd2\x0c\x72\xb1\x88\xcc\x11\xf5\xa3\x87\xaa\x1f\xc5\x5c\xe8\x27\x94\x0b\x1d\x93\xbe\x62\xd2\x57\x4c\xfa\x8a\x49\x5f\xf1\x6a\x37\x6b\x17\xed\x65\x86\x45\x24\x16\xdb\x9b\x5b\xd5\xc6\x89\xc5\xf6\x29\x2d\xa4\x8d\x54\x6c\xce\x0d\xa9\x95\x50\x6c\x4d\xb9\x20\x91\x4c\xcc\xcf\xfd\xe2\x6a\x41\x24\x13\xb3\xff\x17\xcf\xab\x68\x33\xf3\x0f\x77\x42\x24\xb6\x5d\xef\x6f\x8d\x44\x6c\xba\xea\x48\x20\xd6\xde\xe7\xe8\xc8\x8e\x04\x62\x1b\x21\x10\x9b\xa3\x38\xb5\x93\x87\x3d\x0e\xef\x7b\x24\x0e\x8b\xf6\xe6\xa7\xe7\x8f\x8f\xc4\x61\xeb\x5c\x37\x91\x38\x2c\x5e\x7b\xe2\xb5\xe7\x61\x92\x86\xdd\xe7\xe2\xb3\x25\xc2\xb0\xb9\x66\xad\x76\xb2\xb0\xc7\xa1\x9f\xc5\xe8\xc8\xa8\x8d\x3d\x76\x6d\x6c\x8f\x94\x9e\x78\x36\xfb\x27\x4f\x3e\x3a\xf2\x51\xa9\x11\x1b\x25\x07\xdb\x6c\xc0\x21\x24\x29\x2a\x10\x5e\x3b\x61\x07\x7b\x6f\xea\xff\x64\xea\x5f\x30\xfc\xb0\x8d\x22\xac\xbd\x90\x18\x8d\x18\xa1\xbb\x22\x74\x57\x84\xee\x8a\xd0\x5d\x11\xba\x6b\x27\x97\x8c\x78\x17\x5c\x78\xa2\x22\x4f\xd8\x3e\x21\xac\xc5\xd8\xf8\x27\x14\x1b\x1f\xe1\xf4\x22\x9c\x5e\x84\xd3\x8b\x70\x7a\x11\x4e\x2f\xc2\xe9\x45\x38\xbd\x98\x32\x16\x53\xc6\x62\xca\x58\x4c\x19\x6b\xae\xc8\xc8\x13\x16\xb1\x3b\x23\x76\x67\xc4\xee\x7c\xe0\xd8\x9d\xad\x7e\xba\xe8\x82\x8f\x69\xa0\xcd\x0f\x76\xce\x13\xd6\xea\xd3\xdd\x63\xb2\xb0\x85\x1c\xd9\x6d\x8c\x61\xf7\x73\x5e\x47\xda\xb0\x48\x1b\x86\x8f\x22\x6d\x58\x8c\x3d\x88\xb1\x07\x31\xf6\x20\xc6\x1e\xc4\xd8\x83\xe8\xd4\x8e\x7e\xce\xf9\x23\x12\xfd\x9c\xd1\xcf\x19\xfd\x9c\xd1\xcf\x19\xfd\x9c\x4f\xd8\xcf\x19\x5d\x0f\xd1\xf5\x10\x5d\x0f\xd1\xf5\x10\x69\xc3\x22\x6d\x58\xa4\x0d\xf3\x4f\x16\xce\x7a\xac\xcc\xf7\x91\x3b\xac\xe5\xb5\xdd\xfb\x81\x22\x81\xd8\x53\xc0\x5d\xdb\x18\x81\xd8\x62\x8e\xbd\x76\x12\xb1\x5d\xe4\xa5\x6e\x1c\x2b\x23\xe8\xd4\x62\xc2\x2e\x26\x49\x3d\x82\x24\xa9\x08\x98\x11\x01\x33\x5a\x1a\xb3\xcf\xfa\xd8\xc3\x40\xcd\x58\xa5\xbd\x3b\x25\x16\x5b\xbe\xc1\x8f\x49\xd9\xdd\x2c\xbb\xd8\xaa\xca\xee\x57\x64\x25\xc4\x8f\x2d\xf3\x8c\x2d\x0f\xf6\x11\x21\x3e\xda\x7a\x13\x35\xa8\x87\xa8\x41\xc5\xa4\xea\x27\x94\x54\x1d\xb3\xc7\x62\xf6\x58\xcc\x1e\x8b\xd9\x63\xf1\xf2\x37\x6b\x17\xed\x65\xaa\x46\x24\x1c\xdb\x9b\x8b\xd6\xa6\x09\xc7\xf6\x2f\xbf\xa4\x85\x75\x6c\xa1\x0b\x53\x1b\xf5\xd8\x5a\x93\x4a\x22\xff\x98\x5f\x05\x8b\x6b\x09\x91\x7f\xcc\xfe\x5f\x3c\xbe\xa2\x69\x6d\xf7\x24\x64\xbb\x70\x23\x87\x4c\x64\xb3\xea\x8f\x74\x64\xed\x7d\x8e\x6e\xf1\x48\x47\xb6\x09\x3a\xb2\x85\x34\xaa\x56\x4e\xb2\xc7\xe4\xcc\x8f\xc4\x64\xd1\x2e\xfd\xf4\x3c\xfb\x91\x98\x6c\x9d\xeb\x26\x12\x93\xc5\xfb\x50\xbc\x0f\xb5\x8c\xe3\x03\x61\x27\xbb\xff\x8d\x68\x3b\x14\x65\x0b\xda\xc0\x5a\x79\xca\x1e\x93\xce\x16\x03\x30\xa3\x9a\xf6\x24\xd4\xb4\x3d\xd2\x86\xe2\xa1\xed\x9f\xc4\x00\x4c\x5f\xf4\xa3\x52\x32\x36\xc9\x5d\xb6\x8d\x70\x46\x77\x0a\x89\xe2\x46\x66\xe5\x98\x25\x19\xe5\xe3\xdd\x70\x99\x5d\xf8\xa6\xfc\x04\x4d\x79\x6d\x9a\xb2\x60\xa4\x63\x1b\xad\xd9\xdc\xf2\x62\xf8\x63\x44\x19\x8b\x28\x63\x11\x65\x2c\xa2\x8c\x45\x94\xb1\x9d\x5c\x4a\xe2\xdd\x71\xe1\x89\x8a\x0c\x67\xfb\x04\x06\x17\x83\xf1\x9f\x50\x30\x7e\x44\xfe\x8b\xc8\x7f\x11\xf9\x2f\x22\xff\x45\xe4\xbf\x88\xfc\x17\x91\xff\x62\x8e\x5a\xcc\x51\x8b\x39\x6a\x31\x47\xad\xb9\x22\x23\xc3\x59\x84\x19\x8d\x30\xa3\x11\x66\xf4\x81\xc3\x8c\xb6\x7a\xef\xa2\xcb\x3e\xe6\x9d\x36\x3f\xd8\x39\xc3\xd9\x3c\xf7\xee\x1e\x93\x9d\x2d\xeb\xe9\x6e\xe3\x3d\x5b\x9b\x77\x3b\x52\xa0\x45\x0a\x34\x7c\x14\x29\xd0\x62\x70\x42\x0c\x4e\x88\xc1\x09\x31\x38\x21\x06\x27\x44\xaf\x77\x74\x84\xce\x1f\x91\xe8\x08\x8d\x8e\xd0\xe8\x08\x8d\x8e\xd0\xe8\x08\x7d\xc2\x8e\xd0\xe8\x9b\x88\xbe\x89\xe8\x9b\x88\xbe\x89\x48\x81\x16\x29\xd0\x22\x05\x9a\x7f\xb2\x70\x06\x65\xab\x25\x3f\xb2\xa1\xb5\xbc\xb6\x57\x3e\xa3\x48\x8c\xf6\x14\x10\xe0\x36\x47\x8c\xb6\xac\x13\xb0\x9d\x23\x6d\xc7\x49\xae\x1b\x47\xeb\x68\xef\xdf\x62\x82\x31\x26\x5f\x3d\x82\xe4\xab\x08\xdc\x11\x81\x3b\x5a\x1a\xf3\x40\xd4\xb8\x87\x81\xe1\x71\xcf\xa6\xef\x94\x4f\xed\x5e\x6d\x7f\x4c\x9a\xf3\x66\xa9\xd5\xd6\xa0\x39\x7f\x45\xee\x0b\x4b\xb2\x6d\xc2\xb5\xfb\x20\x92\xec\x8d\x8a\xf6\x40\x70\x48\xa2\x3a\x16\x4e\xf2\xde\xaa\x63\x31\xf3\xfb\x09\x65\x7e\xc7\x14\xb7\x98\xe2\x16\x53\xdc\x62\x8a\x5b\xbc\x49\xce\xda\x45\xfb\x78\x93\x8c\xd7\xb1\x7d\xb8\x8e\x6d\x9a\x80\x6d\xaf\xd3\x5f\x5a\xb8\xd8\x96\xbd\x4b\xb5\xd1\xb2\x6d\x2a\xe7\x25\x32\xb4\xf9\xb5\xb1\xb8\x02\x11\x19\xda\xec\xff\xc5\x93\x2d\x9e\x0e\x7b\x45\xd6\xb6\x63\x2f\x77\xc8\xdb\xb6\x40\x53\x22\x85\x5b\x7b\x9f\xa3\x03\x3f\x52\xb8\x6d\x82\xc2\x6d\x59\x45\xac\x95\xcd\xed\x91\x86\x1d\x44\x62\xb7\x68\xe9\x7e\x7a\x81\x07\x91\xd8\x6d\x9d\xeb\x26\x12\xbb\xc5\x6b\x54\xbc\x46\x3d\x0a\x8e\xb7\xb5\x5e\xa4\xb6\x43\xf7\xb6\xbc\x99\xad\x95\xf9\xed\x91\xea\x77\x31\xac\x34\x6a\x77\x4f\x4d\xbb\xdb\x23\x25\x2a\x9e\xf5\xfe\x49\x0c\x2b\x9d\xd3\xf4\x47\xa5\xa6\x6c\x92\x25\x6e\x9f\x22\x33\x8f\x35\x02\x1f\x06\x01\x9a\x9b\xf1\x2d\x62\x3d\xee\x04\xdb\x82\x97\xd1\x22\x3a\x46\xb9\x15\x37\x7f\x74\xf5\x44\x57\x4f\x74\xf5\x44\x57\xcf\x3e\xba\x7a\xd6\x75\x2e\x2e\xee\xf4\x69\x39\x18\x1f\xa4\x69\x20\xba\x7e\xa2\x71\xe0\xe9\x19\x07\xa2\xeb\x67\x9d\xeb\x26\xba\x7e\xa2\x39\x28\x5e\xab\xa2\xeb\xa7\x3e\x4c\x9b\x73\xfd\xac\xcf\x0a\xb2\xb8\x13\xe8\xb1\xe8\x7b\xd1\x15\x14\xb5\xbd\xa7\xa6\xed\xed\x91\x52\x15\xcf\x7e\xff\x24\xba\x82\xe6\x34\xfd\x51\xa9\x2d\x8f\xc9\x15\x24\x53\xbd\x25\x2c\x8e\x20\x2b\x59\x0e\xc8\x85\x4c\xef\xd0\x66\x42\x14\x8e\xd7\xfe\xbb\x40\xad\xa9\x7f\x1d\xd1\x37\x22\xd1\x4e\x24\xda\x89\x44\x3b\x91\x68\x27\x12\xed\xec\xe4\xfe\x11\xaf\x89\x0b\x4f\xd4\x2e\xaf\x89\x91\x0f\x29\x62\x41\x3d\x61\x2c\xa8\x48\x7e\x15\xc9\xaf\x22\xf9\x55\x24\xbf\x8a\xe4\x57\x91\xfc\x2a\x92\x5f\x45\x88\xc4\x08\x91\x18\x21\x12\x23\x44\x62\x73\x45\x6e\x95\xe3\x2d\x32\xed\xed\xc3\x2c\x44\xa6\xbd\xc8\xb4\xf7\xd8\x98\xf6\x5a\x3d\x73\xd1\x3b\xbf\xa4\x9b\xce\x86\x4a\x3d\x41\x2f\x37\x9e\xc5\x95\x9e\xb4\x41\x97\xb7\x4c\x57\x8c\xca\x5b\x7b\x62\x22\x9a\xc1\x94\xbd\x3a\x3b\x7d\x5d\x0e\x88\x69\xeb\x1c\x9f\xb5\xf9\x76\x2a\xfc\x6e\x35\x3f\x75\xa3\x55\xa0\x85\x01\x1f\xe6\x77\x52\x5e\x8f\xa9\xba\xd6\x55\x4c\x37\x36\x15\x0c\x2f\xda\x9a\x87\x26\xb9\xb9\x43\x7c\xf7\xf1\xe3\xf7\x1f\xce\x3e\x7d\x7f\x75\x50\x99\x3e\x50\xcb\x92\xa0\xaa\xf2\x71\x9e\x31\xb0\x71\xf4\x7d\xa9\x46\xaf\xe0\x43\x81\xa6\x5f\xa3\xfc\x66\x74\x08\x6a\x67\xf5\x8a\xb9\x66\x86\x57\x44\xb4\x27\x1c\x6a\x92\x72\x9d\x28\x66\xda\x5c\x39\x8d\x02\x67\x87\xb5\x6b\xd4\x0b\xf2\x96\x06\x73\x85\x36\xd7\x75\xa7\xd0\x1a\x91\xa7\x6e\x68\xd6\x21\x42\xa2\x3f\x17\x2e\xc2\xde\x38\xd2\xb4\xaf\x81\x47\x71\x42\x5c\x9f\xad\x21\xca\x5f\x83\x35\xd3\xc0\xe4\xe9\x2d\xcc\xd6\x5e\x62\x5d\x59\xb5\x5b\x9d\x79\x0a\x43\x90\x7a\x17\xe9\x80\xd1\xc2\x5c\xc6\x87\xb4\x60\xa4\x31\x11\xb6\x24\x26\x8c\xb6\x8d\x76\x87\x9c\x57\xbe\xdb\xb6\x62\x57\x38\x28\x5a\x96\xc0\x8e\x6e\x54\x31\xcc\x20\x86\x19\xc4\x30\x83\x18\x66\x10\xc3\x0c\xda\x84\x6f\xf4\x5f\x3f\xa0\x11\x89\x2e\xcd\xe8\xd2\x8c\x2e\xcd\xe8\xd2\x8c\x2e\xcd\xe8\xd2\x7c\x5c\x2e\xcd\xe8\x65\x88\x5e\x86\xe8\x65\x88\x5e\x86\x8d\x7b\x19\x96\xf0\xc4\xe3\x65\x4e\x2a\x97\x5c\x69\xa6\x1f\x3d\xc7\xe6\xbd\x3e\x1c\x62\x38\xa9\xe8\xe9\xb6\xda\x49\x31\x62\x63\x3c\xb6\x74\xa1\x18\x1d\xc3\xf0\xa4\x69\xc7\x1e\x0c\x1d\xfb\xee\x58\xde\x80\xee\x13\x5c\xef\xc8\x25\xb2\x12\x35\x97\xfa\x2a\x43\x78\x7b\xd7\x02\x7b\xf8\xc8\x09\x33\x3f\x30\x95\x7d\x8b\x03\xff\xdf\xd3\x63\xb0\x48\xd9\xf5\xaf\xf7\xdb\x11\x54\xe5\x3a\xca\xf4\x3d\xd7\xc5\x53\xf4\xfb\x18\xf9\xb5\x8f\xbe\x9e\x15\xa0\xed\x22\xfe\xdb\x83\xc3\x7f\x93\x7a\xcd\x1e\x3d\xbc\x85\x11\x3a\xc7\x79\x87\xaf\xad\xc9\x7d\xb7\xaf\x28\x19\x32\x8d\x98\x18\x4f\x27\xd9\x29\x62\x62\x44\x4c\x8c\x96\xc6\xec\xa5\xb2\xf5\x40\x10\x30\x96\x69\xe8\x6e\x29\x9c\x17\x6f\xe9\x63\xd2\x5d\x41\x7d\xd8\x1f\xdd\xf5\x2b\xb2\x1c\x10\x87\x45\x60\xdf\x12\x1e\xc7\x3c\x95\x28\xc4\xe0\x88\xc8\x1b\xb5\xda\xa3\x42\xf4\x10\x15\xa2\x98\xeb\xfc\x84\x72\x9d\x63\x52\x57\x4c\xea\x8a\x49\x5d\x31\xa9\x2b\xde\xe5\x66\xed\xa2\xdd\xdf\xe5\xe2\x15\x69\x57\x69\x1d\x7b\x74\x49\xf2\xb6\xdf\xcd\xb0\x4c\xd5\x75\xa6\xbb\x6f\x3c\xad\x4c\x52\x6b\xc9\xe0\x08\x34\x07\xf6\x05\xe2\xb2\xfa\xe6\x2f\x9a\x14\x3d\x42\xde\x9a\xff\xba\xdf\xc7\x94\x83\x81\x4c\x93\x24\x2b\x75\xc1\x54\x75\x1e\x58\x10\xf9\x8c\x5f\x33\x72\xe8\x5b\x78\x68\xd4\x3e\xa7\xaa\xf4\xc8\x45\x46\x85\xb0\xe8\xff\xa0\x4c\xd0\x0c\xf5\x97\xd3\x3f\xae\x22\x60\xa1\x8d\x3b\x3a\xe6\xfd\xa0\x79\x2d\xb9\xef\x86\xcf\xf4\x94\xbc\xc5\x11\x33\xa2\x3d\xd7\x6e\x74\x6c\xe8\x12\x20\xf2\x27\x54\x04\x0a\xef\x64\xc3\x03\x65\x1a\xf3\x78\x3d\xc4\x8f\xef\xfc\x79\x4c\x52\x7d\xb3\x04\x65\xdb\xf4\xd9\xd6\xe8\xc8\x9a\x15\x47\xf2\xb1\xf6\x3e\x47\xe7\x73\x24\x1f\x5b\x0f\xf9\xd8\x32\xea\x52\x3b\xc1\xd8\x63\x70\x99\x47\x22\xb1\x68\x35\x7e\x7a\x6e\xf4\x48\x24\xb6\xce\x75\x13\x89\xc4\xe2\x65\x27\x5e\x76\x1e\x22\x6d\xd8\xea\xd7\x9d\x4d\x91\x84\x2d\x67\xc4\x6a\x27\x02\x7b\x0c\x7a\x59\x0c\x65\x8c\x3a\xd8\xe3\xd6\xc1\xf6\x48\xd5\x89\x27\xb2\x7f\xf2\xa4\x43\x19\x1f\x95\xea\xb0\x51\xea\xae\x2d\xc5\x07\x1e\xd3\xa2\xa0\x35\x4b\xd5\xfa\x7d\x67\x89\x14\x82\x25\x05\xf9\xcb\xdb\xcf\xd5\xad\xaf\x90\x04\xab\x9e\x4f\xe0\x65\xbf\x47\x2d\xe4\x2f\xac\xa8\x29\x22\x67\xd8\xfe\x05\xc4\xca\xcc\xe6\x6e\x6d\xeb\x37\x24\xe8\x13\xdc\x33\x76\x2a\x37\xba\x6f\x70\x45\xb8\x98\xcc\xad\x39\x1b\x1c\x96\x19\xe5\xc2\x28\x16\xc2\xe2\x31\x01\xca\x16\x4b\xca\xc2\x81\x8c\x8d\xc7\x54\x34\xc2\xeb\x42\x0d\xc0\x7c\x0b\xda\x99\x82\x0b\x3f\x3c\x92\xa2\x51\x34\xc0\x7f\xc8\xa5\x2d\xde\xbe\x8c\xf5\x18\xbd\x17\x33\xe1\x37\x9c\x30\x77\xcc\x4e\xf4\xc8\xb4\xf7\x79\xaf\x3c\x32\x97\x45\xca\x14\xae\x51\x55\xb2\xe6\x35\x47\xdb\xa7\xb0\xac\xfb\xe6\x86\x81\xf7\x15\x56\x05\x9d\x5a\xa9\x8f\xf9\xec\xe1\x2e\x00\x18\x96\x25\x57\x34\xd6\xd7\xbe\x9c\xdb\x4c\x47\xeb\x19\x00\x2e\x5c\xff\x3b\xbe\x87\x98\x8f\xaf\x0b\x2a\x52\xaa\x52\xc2\x45\x5e\x16\x41\x96\xb9\xdd\xb1\x76\x14\xb8\x6e\xe9\x3f\xc4\x77\xae\x30\x00\x5c\x6c\xbb\xff\xb2\x2c\xee\x58\x00\x12\x9d\x73\x5b\x5b\x00\xb2\x2c\xb6\x3a\x00\x9f\x3f\xff\x7d\x56\xef\x29\x29\x8a\x49\x15\x88\x9b\x65\x12\x83\x7e\x5b\xbb\xee\xc0\x75\x72\x6a\x6e\xd1\xa4\x18\x29\x59\x0e\x47\x1e\x09\x09\x85\xbd\x2a\x05\x80\xcc\x68\xc4\x37\x30\xc5\x73\x1d\x94\x6c\x11\xb2\x6e\xa5\xba\x66\x8a\x08\x99\x32\x17\x3d\x3a\x55\xc6\x1a\x56\xdb\x4c\x7f\xe9\xd2\x43\x6d\xff\xda\x68\xb6\xae\x55\x3b\x2f\x3e\x5e\xae\x41\xef\xbc\x90\x3a\x2a\x9e\x51\xf1\xdc\x90\xe2\xb9\xea\xed\xad\x6f\x04\x90\x18\x86\xd7\xb7\x15\x54\xd7\x68\xb9\x5c\x48\xfa\xb5\x58\x2d\x37\xac\x6c\x3d\x51\x5b\xe5\xfc\xa9\x98\x69\xa7\xdc\xe2\x65\xe6\x3b\xbb\xf7\xe2\x1d\xe6\xa1\xdd\x61\x1e\x6e\x54\xd9\xa6\x20\x4d\xec\x39\x82\x80\x8b\x2b\xa2\x9b\x4c\xef\x87\x87\xee\x19\x74\x3d\x9a\xad\x2f\xb5\x0e\x71\xf4\x6b\xdc\x73\x54\xf7\xc8\xb7\xb1\x74\x63\x77\x9a\x87\xb4\x64\x6b\x1f\x93\x82\xbf\x59\xb8\x86\xd6\xb3\x7e\x53\x4a\x3d\xbb\xe1\xae\x5b\x51\xab\x8f\x5a\x7d\xd4\xea\xb7\xa9\xd5\xbf\x75\x9b\x2f\xaa\xf5\x51\xad\x7f\xe8\x6a\xbd\x3b\x49\xee\xa5\xd7\xb7\xec\x88\x87\xaa\xd8\x5b\xf4\x83\x9b\xd3\x3e\x2b\xe8\x69\xcf\xf7\x2c\x2a\xf8\xbb\x19\xdd\x3d\x50\xf4\xef\xdd\xe8\x9d\x28\xfc\xf7\x6c\x75\x54\xfc\xfd\xeb\x5e\xf1\xcf\xa7\x31\x3f\xbc\xfa\xdf\xae\x14\xd4\xf4\x7f\x98\x88\x75\x5e\x02\xbe\xb0\x64\x27\x51\x59\xa6\xe2\x7b\xc6\x64\xbd\x35\x6d\x8f\x8e\xb1\x07\xb1\x7d\xb6\xe1\x18\x33\xeb\x61\xeb\xf1\x58\xaf\x31\xd2\x0a\x42\x11\xe0\x6e\x39\x96\x85\x8f\xbf\x0a\xc2\xb2\x7a\x84\xaa\xe1\x0d\xa1\x4a\xd1\x49\x8f\xfc\x20\x0b\xf7\x00\xaf\x61\xe6\x26\x4b\xf4\x88\x65\xd9\xf2\xd1\x56\x50\xd5\x36\x2f\x32\xaf\x63\xfc\xd9\xbc\xf8\xb3\x99\x6b\x31\x5e\xf1\xda\xfb\xbc\x57\x57\xbc\x4f\x36\x9c\xa8\x1e\x6c\x85\x76\xa6\xa5\x82\xad\x1e\x48\xb0\x59\x7b\x7f\x1f\x6f\x70\x59\x7b\x7f\xed\x25\x7e\x1b\x13\xfc\x80\x82\xc9\x40\x51\x5b\xd3\x4c\x3f\x8e\xc0\xae\x15\x54\xd7\xa9\xb0\xae\xa8\xbb\x46\xdd\x75\x2d\xba\xeb\xaa\x17\xbf\x4c\x0e\x37\x7a\xef\x03\x24\xbb\x4c\x7a\xa7\xcb\x3d\x01\xed\xde\xcb\xe1\x22\xdb\xa5\x60\x5f\x8a\xe3\x3c\xa3\xcd\xf3\xe4\x71\x9b\xcc\xe2\x16\x7d\x3c\x60\x62\xf5\xfc\x1e\x73\x08\xfb\x0b\x96\x55\x4c\x32\x39\xd4\x4b\x5c\xac\x1e\xf0\x9d\xea\x9d\xf4\xb0\xbf\x46\x92\x4c\x29\x66\x6b\xd0\x48\x06\x50\xc5\x56\x75\x31\x2e\x34\x4b\x4a\xc5\x2e\xaf\x79\xfe\xf9\xfd\xe5\x4f\x4c\xf1\xc1\xe4\x3b\x9a\x5c\x33\x91\x36\x95\x33\x70\xce\xe6\xdc\xb2\x05\x07\xfe\xf3\x44\x8a\x01\x57\x88\xb7\x0d\x8e\x73\x60\x5d\x1c\x78\xce\x6b\x20\x0b\x66\xca\x72\x0b\xfa\x9b\x69\xdf\x55\x03\xbe\x2a\x7b\xb0\x21\xd6\x4b\x8f\x60\xaa\x00\x68\x82\x63\x7a\x8d\x17\xf9\xbf\x7e\xfe\x7c\x71\xe9\x5f\x94\x82\xf4\x59\x71\xcb\xac\xd7\xab\x6a\x99\x43\x84\xf6\xe5\xdb\x3e\xda\xf4\x03\x44\x8a\xa9\x7f\x92\x50\x61\x3a\x72\x03\xdd\xf7\x73\x0c\xd4\xdb\xd8\x3a\x24\xeb\x85\x8e\x98\x0b\xa8\x87\x17\x57\x8c\x66\xc4\xec\xef\x8c\x15\x3d\x82\xa0\xf4\xcc\xfd\x60\xbb\x35\xe0\xc3\xd2\xd2\x07\x07\x15\xf8\xca\x0f\x35\xf9\xfc\xfe\x92\x24\x8a\x01\x7d\x32\xcd\x74\xc7\x54\x9a\x4a\x86\x04\xce\xa6\xbd\x2e\xbb\xc1\x75\xdc\x52\x3f\x86\xb5\x9b\xca\x6e\xca\x4c\x30\x05\x8e\x6c\x40\xb0\x1f\x53\xe1\xa1\xb3\x79\x9a\x66\x36\x1b\xe3\x9a\x1c\xb1\xde\xb0\x47\xa8\xb0\xff\x36\x23\xe0\x67\x93\x8b\x82\xa9\x84\xe5\x85\xf3\xc6\x97\x34\xab\x86\x23\x91\x63\xc0\xd1\x69\x1b\x80\x67\xcb\x2e\xf8\xbb\x56\xdf\x56\xb7\xc1\xf9\x00\x11\xcb\x81\x23\xdd\xb3\xbd\xf7\x27\x85\x63\x7a\xa7\x01\xa4\xbc\x5d\x33\x8e\xf6\x00\xd8\x68\x69\x61\x63\x13\x50\xcd\x80\xcb\x9b\x5b\x6f\x74\x02\xe3\x9a\x72\x9d\x67\x74\x02\x34\xc2\xe3\x1c\x30\xc2\x01\xc6\x9c\x64\x5c\xc0\x9e\xc8\xe4\x70\xc8\x5d\x7c\x42\x40\xc2\xae\x33\x3e\x1c\x15\xd9\x04\x89\xbf\xcd\xad\xdf\xfd\x50\x85\x3a\xd4\xb5\x1a\x60\x4b\x5d\x76\x32\xe0\xa3\xef\x4c\x97\xdb\x87\xbe\x8d\x70\x60\xfd\xb6\xaa\x68\xa0\x7a\x70\x06\xaa\x87\x12\x83\xb0\xa8\x39\x06\x36\x5d\xae\xd8\x0d\x97\xa5\xf6\xfb\x9b\xa5\x81\xee\x32\xad\xf6\xac\x74\xe0\xbb\x4a\xb6\x2a\xeb\xce\x88\x62\x19\x32\xaf\x40\x9a\x5d\x3b\x93\x4b\x52\x2a\x05\xe4\xf5\xdc\x1d\x77\x95\xea\x37\x92\xb7\x76\x04\xea\x24\x2c\xb9\x39\x25\x53\xa6\x2b\x9e\x78\x0a\x26\xab\x5b\xaa\x89\x2e\xa8\x02\x36\x7f\xd0\x0f\xcd\xd7\x44\x73\x61\xb1\x99\xcc\x4b\xf0\x82\x37\xfd\x78\xe2\xf8\x69\x9e\x17\x47\x7c\x50\x16\xa5\x62\x1d\x22\x24\x96\x36\xfd\xe5\x47\x67\xc7\x97\x03\xac\xcb\x32\xaa\x80\x08\x35\xff\xfe\x6c\x9a\xe8\x08\x2b\x3c\xa9\xcb\xb2\x06\xb4\xa0\xe4\xad\x0a\xce\xf6\x33\x2b\x03\x66\x74\x7f\x56\x19\xfd\xc7\x0a\x57\x18\x25\x3b\x7d\x30\xac\x35\x2e\x9b\x0e\x3e\xa7\x8a\xc1\x0b\xa2\x2a\x02\x82\x64\x42\xbe\x6d\xbf\x0b\xdc\x38\xb6\x8d\xeb\xb2\xc6\x38\xca\xb3\xf7\xa6\xe9\xdb\x1e\x42\xcc\x68\xa6\x69\x6a\xb4\xa1\x4f\xef\x5e\xbf\x78\xf1\xe2\x4f\xa6\x23\xf6\xcf\x1f\xa8\x90\xb0\x94\x75\x41\xc7\x39\xb1\x5a\x70\x9f\x0d\xb9\x10\x36\x8a\x93\xdd\x30\x35\x09\x0f\x71\x7f\xfc\xdf\xdf\x44\xe9\x2a\x5e\x97\x84\xb0\x7f\xfd\xbc\xaa\xa1\x26\x97\xaa\x18\x48\x75\x4b\x55\xba\x13\x47\x7d\x50\xff\x3d\xfd\xf5\x17\x41\x4f\xa2\xe9\xf3\x41\xd8\x55\xb6\x61\xfa\x34\xcb\xe2\x1d\x2e\x8b\xad\x7b\xef\x1b\x9a\xf0\xbc\xa6\x44\xdd\xb8\xbd\xcf\x7b\xa5\x1b\xbf\xe7\xba\x30\x73\x6a\x04\x17\x9e\x03\x56\x7a\x7d\x72\xe8\xc0\xb7\x46\x65\x2e\x21\x25\xe0\x6f\xac\x7f\x29\x93\x6b\xd6\xde\xeb\xbb\xf4\x48\x53\xfa\x9a\x4e\x4e\x77\x44\xec\xc2\x99\xb5\xba\x78\x9f\xf2\x69\x45\xf9\x1e\xe5\xbb\xfb\x79\x8d\xf2\x7d\x65\xc5\x49\xc9\x2f\x93\x4d\x13\xd3\xba\x7d\xf5\xe6\xed\xfb\xb7\x9f\xdf\xd6\x77\x96\xa9\x7f\xc9\x3d\x85\x44\xaf\xf5\x5d\x05\xdd\x88\xfb\x29\xee\x27\xb7\x9f\xcc\x82\xb8\x9f\xa6\xb4\xbd\xcb\xc3\x0a\x7b\x60\xea\xda\x10\x37\x40\xdc\x00\x6b\xde\x00\x23\x46\xd3\xcd\xec\x80\xbf\xbe\x3d\x7b\x73\xef\x2d\xf0\x57\x46\xd3\xb8\x07\xe2\x1e\xd8\xe8\x1e\x90\xf6\xeb\x8d\x6c\x83\x8f\x17\x9f\xcf\x3f\xfe\x70\x79\xef\x9d\x60\xbb\x18\x37\x43\xdc\x0c\x1b\xdd\x0c\x6b\xb0\x1d\xcd\x6c\x44\xb4\x1a\xb5\xf7\x79\xaf\xac\x46\x17\xb4\x18\xb9\x24\x9e\x1f\x3f\xbd\x27\xa6\xe9\x46\x68\x95\x9a\xf9\x50\x68\xe7\xa0\x43\x41\x66\x45\x1b\x1a\x51\x96\xf7\xb2\x4e\x0d\xcd\x2e\x48\x01\x97\x36\x1f\x9d\x7d\x7e\xfd\xd7\x7b\x0b\x75\xe0\xc8\x8a\x22\x3d\x8a\xf4\xcd\x8a\xf4\x2d\x1a\x51\x57\xd9\x04\x53\xe6\xd3\xb8\x07\xe2\x1e\x58\xf7\x1e\x58\x37\xbd\x97\xdf\x02\x3f\xae\x61\x07\x94\x71\x03\xc4\x0d\xb0\x91\x0d\xf0\x15\xb9\x87\xcf\xe0\xf8\x3f\x46\x39\xfb\xed\x91\xb8\x0e\xfe\xc6\x8b\xd1\x45\x5d\xd9\x8c\x1b\x2b\x6e\xac\xa7\xe7\x42\x88\x1b\x21\x6e\x04\xb2\xfe\x8d\xf0\x20\x5d\x09\x71\x2f\xc4\xbd\x40\xd6\xbf\x17\x1e\xb6\x4b\x21\x6e\x8a\xb8\x29\xc8\x06\xee\xe0\xd1\xb5\xf0\xb4\x5d\x0b\xce\x95\x80\xb9\x9b\x5a\x96\xaa\xd9\xb6\x79\x5d\x9a\x7e\x12\x1d\x25\x4f\xd8\x51\x12\x0f\xaa\x78\x50\x91\x0d\x1c\x54\x0f\xd1\x61\x12\xf7\x42\xdc\x0b\x64\x03\x7b\xe1\xc1\x39\x4e\xe2\x46\x88\x1b\x81\xac\x6d\x23\x7c\x45\x56\x73\xa0\xe8\x82\x16\xa5\xde\x3c\xb2\x18\xd6\xb3\x26\x70\xb1\x4b\x6c\xf4\x02\x1b\xe7\x71\xe3\x88\x2d\x4c\x00\x65\x46\xf9\x09\x6e\xd9\xc7\x83\x32\x16\x11\x60\x1e\xba\x51\xe1\xa1\x20\xc0\xd8\xbf\x56\xba\x74\x37\xa5\x6d\x17\xbe\xfd\xaf\xbb\x05\xef\x98\xa9\x21\x5b\xe8\x4d\x5d\x28\x5a\xb0\x21\x4f\xba\x8b\x7f\x63\xfe\x9e\xd8\x37\x41\xc4\x2f\x72\x62\xe5\x54\x15\x9c\x66\xd9\x84\x94\x79\x4a\x0b\xb6\xe2\xe9\x05\xb5\x2e\x76\x7c\x3d\x48\xde\x9c\x31\x4d\x46\x5c\x30\x35\xe9\xe5\xd7\x43\xf3\x83\xee\x8d\x59\x41\xe1\xc0\x81\x45\xb3\xd8\x91\x73\xf7\x59\x13\xe9\xea\xc2\xa9\x9f\x16\x02\x77\x53\xd6\xdd\x2d\x08\xee\x16\x05\x4b\x4d\xd3\xd3\x21\xaf\x43\xc4\x3a\xe8\x2f\xa2\x1e\x5a\x90\x02\x73\x6a\x81\xb4\xa9\xae\x8b\x47\x33\x24\xd1\x33\xd2\x2f\x0b\x82\xce\x37\x9a\xc1\x97\x42\x8a\x2e\x7e\x0d\x6f\x10\x33\x6b\x9a\x1c\xfd\x6f\x2d\x05\xec\xa5\x0e\xf9\x60\x64\x9e\xfd\xfb\xd2\x49\xc2\xea\xc7\x06\xb0\xe0\x62\x2b\x66\x26\xb3\xde\xd6\xd6\xcd\x3b\xa9\x12\x80\xac\x1a\x4a\x84\xb5\x24\x57\x07\x03\xf3\xdb\xd5\x01\x39\xab\x8d\x66\x8f\x9c\x17\x16\x98\xb2\xd4\x4c\xb9\x8d\xda\xa5\x09\x4c\x00\xa0\x48\x66\x1c\xd1\x31\xa1\x5f\x9a\xc8\x5b\x3b\xb7\x12\xb7\x2a\x93\x79\xc6\x7a\x04\xeb\x1c\x64\x74\xe8\xd7\x54\x29\x34\x2b\x5a\x27\xc2\x57\xbf\xca\xf0\xca\xa6\xe7\x60\x0e\x30\xd1\xdc\x81\x6d\x3d\xbd\xe2\xe5\x27\x5e\x7e\x5a\x08\xb0\xe0\x08\xde\xc7\xeb\xcf\xba\x4d\x75\x8a\xe5\x19\x4d\x56\xd5\xd2\xec\xd7\x8f\x58\x4f\x5b\x61\x27\x44\x9d\x2c\xea\x64\x0f\x48\x27\xdb\x23\xd5\x27\x9e\xd0\xfe\xc9\x26\x4e\xe8\xdd\xd2\xfe\x3f\x55\x55\xa2\xdc\x27\x3b\xea\x57\x64\x29\x57\x47\xc1\xc6\x79\x66\x8e\xa7\x4d\xe7\x87\x60\x99\x24\x91\x59\xc6\x3c\xbd\xf2\x85\x4c\x3f\xdb\x06\xdc\xa1\x83\xe0\xa7\xa8\x82\xbc\xf6\xdf\xd7\x94\x91\xb6\x52\x36\xab\x8e\x6c\xc4\x30\x84\x59\x2f\xce\xc5\xb5\x0e\x65\xc4\x11\x70\x70\x51\x32\x7b\xa7\x76\x5a\x47\x9f\x11\x73\xad\x03\xf8\x40\xc5\x0a\xc5\x19\xd0\x13\x00\x46\x3c\xaa\x13\xba\x09\x59\xdf\x23\x97\x16\x72\x39\xc4\x53\xb6\x70\xf6\xf6\x64\xea\x90\x24\xe3\x4c\x14\x88\x5b\x0f\x87\x5a\xa9\x99\x07\xfe\x85\x86\xe0\xa7\x50\x38\xad\x80\xb2\xe1\x44\x72\x9a\x0c\x1c\xbe\x1c\x08\x0d\x12\x9a\xd9\x67\xd5\x94\x92\x23\xf6\x05\x28\x06\x5c\x90\x16\x16\x29\x07\xbe\x92\x67\x9e\xc6\xc1\xb6\x0f\x01\xf1\xc1\xc0\x4e\x9b\x4d\x09\xe9\x12\xbc\xae\xd5\x73\x6c\x0c\x95\xb2\xdc\xfc\x4c\x23\x7a\xb4\x30\x3a\x04\xaa\x6b\xb7\x23\x06\x5a\x56\x5a\x32\x64\xd7\xca\x39\xae\x65\x72\x34\x64\x82\x29\x30\x9c\x0e\x00\x3b\x5b\x92\x01\x1f\x14\x8c\x09\x32\xe6\xa2\x2c\x98\x7e\x66\xf4\x03\xea\x19\x1f\xf0\x33\xd4\x2b\x88\x14\x41\x5f\x3a\x61\xbf\x9c\xfe\x97\x4b\x61\x75\x16\x4a\x5e\x9e\x9e\x90\x4f\x36\x38\xef\xad\x69\x02\x73\x84\x7f\x85\x1c\x62\x03\xed\x9b\xbe\x47\x85\xbc\x66\xc2\x77\x19\xe7\x90\x08\xc6\x52\x8d\x6f\x81\x6a\x2a\x0a\x92\x71\x5d\x00\xbf\x04\x68\x37\x8a\x21\xec\x76\x31\x62\x5c\xc1\x33\x28\x58\x96\x45\x7d\xc6\x41\xa1\xe8\x91\x8f\xa6\xea\x5b\xae\x59\x27\xac\xc5\xcc\x8c\x66\x22\x25\x54\xa0\x2d\x02\xca\x71\x81\x76\x5e\x0d\x83\x16\x5a\x22\x8d\x50\x3d\x33\x9d\x85\xce\xcd\x1d\x16\x28\x17\x1a\x5c\xa3\xa0\x10\xec\x4b\x41\xae\xd9\xa4\x03\x96\x27\xff\x33\xc8\xc5\x82\x68\x41\x73\x3d\x92\x45\xc7\x02\x98\x03\x82\x78\x30\x20\xfe\x7d\xbf\x90\x6d\xf3\x71\x0b\x75\x09\x7a\x75\x1c\x41\x9d\xb2\x80\xd8\x66\xa7\xe0\x6d\x00\x40\xcd\xcd\xfe\x31\x9b\x3f\x25\x74\x50\x30\x5c\xd3\x03\xae\x74\xd1\x1c\x0c\xd4\xba\xb9\x48\xb2\x32\x65\xa9\x03\x33\x77\x6a\x0b\xe8\x88\x66\x41\x9a\xff\xe2\xa4\x5c\xb3\x09\xc2\x72\x57\x05\x5f\x1d\xb8\x2e\x5f\x1d\xf4\xae\xc4\x95\xa8\x5b\xed\x00\xd7\xbb\xcc\x73\xa9\x0a\x87\x2f\x7a\x0b\xe6\x1e\xae\x91\x22\x90\xbc\x0e\xb6\x38\x2e\x00\x6a\x5f\x09\x46\x0f\x07\x01\xd6\xe0\x4f\x78\x6a\xd9\x6d\xe3\x10\xd6\x8d\x12\x1b\xcc\x18\xde\x53\x0a\x32\xe6\x5a\x13\x2a\x26\xf5\xcb\xd2\x2a\x6a\xac\x5b\x7e\xbb\xb9\x61\xc4\x8b\xe0\xc2\x13\xb5\xcb\x8b\xe0\x19\xd1\xcc\xe8\x14\x20\x1c\x41\xa0\x29\x6e\xc9\x34\x33\x0b\xbe\xeb\x17\xac\xdb\xca\xb8\x70\xb9\xb2\xb6\xd4\x3a\x52\x3b\xe0\xb9\x17\x23\x2e\x86\x2b\x5f\xbd\x2e\x6d\x8b\x76\x33\x22\x46\x69\x48\xdd\xf9\xd3\xce\xee\x60\x3d\xd5\x95\x2a\x61\xa5\x17\x2c\x9d\xe0\xea\x2b\xa4\xe8\x0a\x36\x44\xb6\x08\x0b\x25\x1c\x5e\x91\xff\xcd\x94\x0c\xb6\x86\xd5\x12\xf9\x78\xcc\x52\x73\x09\xcf\x26\x2d\xfc\x0d\x82\x67\x28\xe9\x53\x1c\x74\x32\x54\x34\x81\x5d\xc3\x65\xc5\xf4\x59\x1d\xda\x66\xd0\xfc\x2a\x2d\x35\x6b\x30\x6d\x51\xf3\xa5\xeb\x90\xad\xa4\xc1\x6d\xd0\xc3\x76\xa2\x7d\xbd\xa5\x8d\x2b\x4c\x33\xb4\xf9\x02\x9a\xdc\xc6\xfd\x30\x07\x80\x79\x5f\x96\x7f\x46\xfb\x2c\x5b\xeb\xf2\x87\x12\x77\xbb\xfc\x81\xc7\x08\x4d\x42\x63\xfa\x85\x8f\xcb\x71\x40\x8f\xe1\xed\x03\x38\x5a\x40\xf5\x02\xce\x2d\x1c\x2d\xa4\x96\x3d\x1f\xa0\x1a\xcd\x4d\x5b\x08\xfb\x02\x2a\x53\x53\x37\x31\xca\xb7\xf9\xed\x17\x77\x4a\xfd\x62\x4f\x60\xab\xea\x41\x79\xe6\x66\x00\xb4\x59\xb0\x50\x71\x75\xc2\xf9\x91\x50\xe1\x96\x73\xa5\x09\x69\x0a\x74\x2c\xbc\xe0\x5e\x65\xc6\x56\x1a\xe5\x9e\x55\xba\x8e\xa9\x1a\xfb\x62\x26\xad\x47\x2e\x59\x01\x1a\x11\x45\xe2\xa7\x90\x3b\x6a\xc0\x6e\x41\x69\xa0\x22\x3c\x21\x8c\x9a\x32\x96\xa5\x80\x62\xb0\x97\x47\x65\x6e\x2a\xc3\x0d\x6d\x7e\x79\xe6\x74\x13\x76\x63\xd4\x24\x0a\x87\x93\xfb\xda\xad\x24\xa3\x97\x0c\x78\x56\x30\xa3\xa1\x1a\xad\xd1\x9c\x51\xee\x02\x61\xa5\x4b\xed\x0e\x81\xe7\x69\xc2\x42\x32\x91\x4a\xc3\x34\x2d\x48\x19\x32\xee\x30\xaf\x8b\xd7\xae\x34\xa0\x09\xdd\x50\x9e\xd1\x7e\xc6\x4c\xd7\xcd\x8c\xa0\x26\x93\x8c\xa4\xd4\x0c\xb6\x7e\x21\x9d\x06\x64\xe7\xc2\x0c\x0b\x55\xc3\x72\x0c\x7d\x01\x95\x12\x3a\x04\x83\x64\xfa\x66\xdb\xe3\x8b\xae\x46\xf7\x7c\x40\xfc\x92\xaa\xa4\x92\xbb\x9d\x34\x3a\xc0\x35\x61\xe3\xbc\x98\xd4\xaf\x51\x54\x9b\xcb\x37\xce\xbc\x90\x77\x76\xe8\x2e\x55\x8e\x0f\x1a\x8a\x1c\xea\x7e\x7e\x5d\x0e\x4b\xaa\xa8\x28\x58\x48\xd8\xe7\x66\xca\x0b\x81\x00\x6f\xde\xb7\xdd\xab\xa5\xfe\xc2\x56\x48\xc2\xb5\x2e\x71\x55\x99\x97\x33\x56\xed\x10\x7f\x47\x70\x0b\xae\xeb\x6c\xaa\x40\xc7\xe3\xaa\x5c\x4e\x4f\x76\x2a\xb2\xd1\xcf\xb5\x2e\x59\xda\xaa\x2c\x1b\xbd\x52\x97\x7d\x6d\x5e\x16\x85\xef\x41\x1a\x78\x52\x61\x04\xcd\x5c\xc9\x31\x03\x02\x15\xa2\xd8\x80\x29\xcb\xc0\x47\x1b\xf7\xa1\xea\x7a\x60\x66\x94\x09\x5d\xaa\x8a\x8c\xda\x5e\x70\x9c\xc1\x18\x47\x0d\xbb\x0c\x1b\x13\xae\x32\x44\x8f\x69\x96\x31\x45\x92\x51\x29\xae\xc1\x45\x43\x09\x72\xc2\x50\x35\x74\x13\x0d\x3b\x1e\x8b\x37\x9d\x36\x37\x26\x20\xb8\x26\xb9\xd4\x9a\x9b\x05\x67\x87\x0d\x16\x5c\xb8\xbf\x30\x4c\x27\x35\x47\x3a\x4e\x07\xd4\x03\x2c\x6f\x1a\xe7\xd8\x1a\x95\xdc\x1a\xb6\x67\x21\xb4\xfa\x96\x6a\xa7\xc3\x3a\xf2\x1a\x20\x66\x9a\xba\x9f\xe0\xad\x9d\x02\xad\x78\x52\x66\x50\x23\xaf\x96\xcd\x4a\x67\x81\x19\xa8\x1d\x1d\x8b\x6f\x58\xae\x18\x70\x87\xbf\x22\x79\xc6\xa8\x66\x5e\x04\x5d\x28\x99\xd3\x21\x68\x47\x17\x32\xe3\xc9\xa4\x83\x0a\x0a\x6e\x3a\xb7\xe8\x52\x5f\x80\x59\x76\xa7\xbd\x3f\xf4\xc8\x25\xca\x33\x54\x5d\x72\x26\xcc\x66\xa9\xce\x54\x46\xa4\xca\x47\xd4\x73\x56\xa9\x92\x1d\x03\xe9\x4f\xc7\xde\xd9\xf0\xf1\xd5\x01\xb2\xfe\xf1\x7f\xbb\x83\xa4\xcf\x08\x4d\x53\x58\x9d\xc7\x8a\x8d\xa5\xb9\x1c\xfb\x6b\x18\x16\x7f\xa8\xab\x8f\xf0\x7e\xda\x23\x6f\x39\x08\xc7\xa0\xe9\x52\x4d\xf7\xcd\xd3\x5b\xb1\x02\xaf\xc7\x70\x47\x91\xc5\x68\x95\x09\xc5\x1e\xbc\x71\x7d\x9f\xa9\xf2\xac\xe4\xfd\x5f\xea\x62\x06\x5d\x37\x1b\x76\x24\x6f\xc9\x90\xaa\x3e\x1d\xd6\x8c\x93\xfe\x52\xc3\xd4\x40\xaa\xb1\x99\x93\xd6\xf1\xfa\xd8\xe8\xd1\xec\xe1\x02\xa5\xd7\x69\xac\x39\x8e\x2d\x37\xda\x64\xc2\xd3\xea\x2a\x0c\xba\x02\x06\x69\xb8\x39\x36\x87\xb5\xe3\xe0\xb4\xda\x40\x2f\x98\x4c\x77\x8e\xb8\xab\x76\xd7\x1e\x31\x49\xa3\xb2\x1e\x39\x4b\x12\x96\xa3\x53\x29\xbc\xd9\x1d\x62\x1f\x0e\x49\xd7\x2e\xc0\xfa\x02\xd5\xdf\x92\xc3\xef\x68\x72\x3d\x54\xb2\x14\xa9\x79\x8b\x7a\x1e\xdb\xc6\xc0\xa1\x0a\x69\xf5\xe3\x7a\x21\xae\x07\x7d\x5f\xd2\xb7\xe4\xf0\x9d\x54\x2c\x28\x96\x24\x54\x27\x34\x35\xbd\xb7\xe3\x03\x12\x08\xcb\xd3\x78\xf5\x9c\x2a\x70\xe0\xcb\x58\x65\x41\xe6\xcd\xe5\xbe\x1b\x8d\xb3\x69\x26\xd1\xac\x70\xa7\x4c\xa1\x28\x37\x52\x42\x90\x5b\x33\x18\xee\x4d\x27\xb2\xcd\x6b\xee\xe0\xf3\x4b\x4f\x39\x09\x60\xd4\x1b\xe6\xfd\x84\x81\x0f\x8c\xcb\xe3\x54\x26\xfa\x18\x0e\x36\xa3\x4e\x1d\xc3\xd1\xd4\xa5\x39\x3f\xa6\x39\xef\x26\x52\x98\xb5\xa2\x8f\x7f\xe7\x97\x95\xaf\x70\x00\x67\x70\x41\x79\xa6\x41\x7f\x08\x75\x7f\x88\x14\x5a\x61\x1e\x1a\x03\xb0\x17\xb3\xf0\x01\x34\x25\xaf\x4d\x6a\x10\x15\xcd\x99\x32\xb7\x84\x3c\xcf\x38\xea\x06\x5e\xc1\xc1\x78\x2c\xae\xc9\x88\x0f\x47\x10\xa6\x95\xc8\xf1\xd8\x2c\xdd\x14\x17\x75\x6b\x5d\xd6\x22\x6f\x06\xb8\x2a\xc9\xe8\x5b\x8a\xb5\x55\x6c\xde\x7d\x98\xf3\xfb\xa1\x11\x7d\xb3\xc5\x49\xfe\xcc\xc7\xcc\x68\x9e\xce\x4c\x60\x06\xfa\x18\x95\x62\xbc\xbb\x81\xf6\x07\x9a\x07\x66\x85\x7b\x43\x88\xbb\x70\xd0\x2c\xeb\x10\xc5\x86\x54\xa5\xe0\xd8\x37\xea\x9a\x98\x10\x9a\x14\xfc\x06\x78\xab\x15\xe1\xc2\xfd\x6b\x15\xa1\x54\x60\x13\x37\x61\x16\x68\xf5\xd4\x45\xff\xfb\x92\x6e\x3a\x1b\xfa\xf4\x04\x7d\xdd\x78\x16\x57\x7a\xd2\x46\x1d\xdf\x2d\x4e\xdd\x9d\x62\xba\xa1\x39\x4c\xd9\x2b\xb4\xd3\xdb\xe5\x80\x98\x36\x2f\xe8\xcb\x36\x65\xb4\x04\xd3\xdd\xc7\x7f\xdd\x68\x25\x68\x67\x7f\x33\x4d\xfc\x4e\xca\xeb\x31\x55\xd7\xba\x8a\xb9\xc6\xa6\x83\x41\x46\x5b\xb3\xd1\x24\x37\x77\x8b\xef\x3e\x7e\xfc\xfe\xc3\xd9\xa7\xef\xaf\x0e\x2a\x93\x08\x6a\x5f\x12\x39\xdd\xc7\x79\xc6\xc0\xf6\xd1\xf7\xa5\x1a\x7d\x83\x0f\x05\x9a\x84\x8d\x52\x9c\xd1\x21\xa8\xa3\xd5\x2b\xc0\x06\x1b\x5c\x1d\x3d\x61\x7d\xca\x75\xa2\x98\x69\x73\xe5\x4c\x0a\x9c\x20\xd6\xde\x51\x2f\xc8\x5b\x20\xcc\xd5\xda\x5c\xe3\x9d\xa2\x0b\x84\xf3\x37\x34\xeb\x10\x21\xd1\xcf\x0b\x17\x64\x6f\x34\x69\xda\xdd\xc0\xd3\x38\x21\xae\xcf\xd6\x40\xe5\xaf\xc7\x9a\x69\xfd\xff\xb3\xf7\x6e\xcd\x6d\x23\xd7\xde\xf7\xbd\x3f\x45\x97\x72\x21\xbb\x22\x51\x8f\xa7\x9e\xaa\x4c\xcd\xd4\xae\xb7\x34\xb6\x26\x71\x32\x8e\xb5\x6d\xef\xc9\x8d\x53\x3b\x2d\xa0\x49\xa1\x04\xa2\xb1\x01\x50\xb2\xb2\xeb\xf9\xee\x6f\xf5\xea\x03\x00\x12\x24\x41\x08\x20\x0e\xfc\xe7\x66\x1c\x91\x00\xfb\xdc\x6b\xad\xdf\x3a\x50\xc3\xac\xe5\xd9\xd8\x51\x0c\xe2\x2a\x69\x7b\xea\x53\x1a\x02\xdf\xa1\xd3\xb9\xe0\x99\x52\xd2\x17\x3c\x13\x6c\x6d\x22\xcc\x9b\x44\xa4\xa4\x70\x6d\x8f\xb0\x55\xfc\xb7\xbd\xb6\xc1\x05\x52\xb1\x04\x7a\xd2\xb4\xe0\x7e\x00\xf7\x03\xb8\x1f\xc0\xfd\x00\xee\x07\x55\x87\x2f\xb8\xf6\x88\x46\x04\xa8\x13\xa8\x13\xa8\x13\xa8\x13\xa8\x13\xa8\x73\x5a\xa8\x13\xf4\x01\xf4\x01\xf4\x01\xf4\xa1\x73\xfa\x70\x00\xa1\xd7\xca\x9c\x4c\x6c\x58\xa5\xcd\x38\xac\xbf\x77\x47\x97\x98\x9e\x54\x4d\xc0\x8d\x74\x92\xdd\x8b\xa5\xbe\xb6\xd2\x2c\x11\x7c\x49\xc3\xe3\xfb\x17\xe6\x62\xb8\x30\xdf\x5d\xca\x47\x92\x7d\x0a\xea\x1d\xfb\x42\xe2\xca\xf3\xfa\x52\x6f\x32\x84\x4f\xbb\x16\xd8\xf8\x33\x1b\x6c\x7d\x40\xfd\xd8\xcf\x7a\xe0\xff\x63\x73\x0c\xea\xbc\xbb\xfc\xf4\xb0\x01\x51\x31\xee\xd1\xda\xef\x7f\x0b\xd2\xec\x14\xb9\x90\x3a\xc7\x86\xcc\x82\x1a\x24\x95\x43\x2e\xb6\xd1\xe5\x62\x6b\x3f\xe3\x33\x69\x65\x8c\xd7\x84\x7b\xfa\xeb\x2d\xe3\xbd\xe1\x66\xcb\x70\xbd\xaa\x77\xe0\x21\x58\x6a\x02\xc1\x52\xc8\x9a\x81\xac\x19\x15\x8d\x19\xb4\x50\x36\x9a\xec\x19\x87\x37\xf8\x87\xbd\x0d\xd6\x4e\xbf\x43\x69\xf1\x94\x64\x5e\x12\x37\x86\x27\xf3\xbe\x62\xcd\x12\x80\x98\x9c\xe7\x47\xca\x03\x52\x57\xa4\x2a\xe6\xfe\x40\xc6\x8f\xca\xde\x40\x90\x1a\xa3\x20\x85\x18\xeb\x13\x8a\xb1\x46\x30\x19\x82\xc9\x10\x4c\x86\x60\x32\xe8\x80\xdb\x76\xd1\x70\x74\x40\xa8\x54\x7d\x87\x97\x0c\x50\xa9\x72\x36\xe6\x6e\xea\x3f\x65\xeb\x19\x99\x6b\x68\x46\x5b\xaa\x3f\xb5\x18\x49\x52\x90\x30\xc4\x77\xf2\x0f\xbb\x53\xff\xe2\x5e\x36\x63\xec\x46\xfd\xd7\xfe\x7d\xc9\x03\x32\xc0\xa5\xcc\x0b\x57\x69\x26\x92\xfc\xde\x30\xc9\xe6\xc3\xe0\x41\xb0\x73\xd7\xd2\x73\x25\x1e\x5a\x91\x66\xc6\x6e\x43\x1e\x45\xa6\x4a\x00\x09\x1d\x3c\xd4\x72\xce\xdb\x1f\x9b\x1c\xc4\xd4\xc6\x9e\xc4\x01\x37\x68\x4e\x9a\xbe\xb3\xc3\xa7\x7a\xca\x6e\xf4\x88\xa9\x2b\x20\x4e\xed\xe8\x18\x17\x2a\xca\xdc\xef\xf1\xa8\x20\x18\x3f\x77\x3c\x50\xaa\x31\xd3\x25\xd5\xd3\xbd\xa7\xa6\x74\xea\x77\x5d\x88\xec\xf8\xec\x78\xad\x20\x59\x75\x03\x50\x98\xac\xba\xcf\x80\xe1\x28\x4c\xd6\x4e\x61\xb2\x26\x62\xd5\xb6\xb2\x64\xd3\x41\xf8\x28\x4c\x06\x2b\xf4\xe9\xe1\x7c\x14\x26\x6b\x73\xdd\xa0\x30\x19\x94\x22\x28\x45\x55\x03\x39\x9e\x02\x65\x2f\x55\x8b\xba\x2a\x54\xd6\xcc\x18\xb6\xad\x4c\xd9\x74\xe4\x36\xb8\x5e\x42\x56\x3b\x0d\x59\x6d\x40\x22\x11\x6e\x6e\xf7\x09\x5c\x2f\x0b\xef\x9e\x94\xa8\xd1\x71\x01\xb3\xee\xfd\x18\xd5\xf5\x6f\x36\x8f\x3a\x8f\x12\x19\x86\xfa\x72\x3f\x7e\x49\xb3\xcf\x79\x53\xde\xb9\xa6\xd4\x74\x70\xac\x2a\x6e\xb6\xf7\x7d\x70\x7a\x44\x9e\x31\xe4\x19\x43\x9e\x31\xe4\x19\x43\x9e\xb1\x5e\xf4\x12\xa8\x8f\xb5\x27\x0a\x65\xce\x86\x94\x0e\x0e\x2e\xf8\x27\xe4\x82\x8f\xdc\x7f\xc8\xfd\x87\xdc\x7f\xc8\xfd\x87\xdc\x7f\xc8\xfd\x87\xdc\x7f\x88\x4c\x43\x64\x1a\x22\xd3\x10\x99\xb6\xbe\x22\x51\xe6\x0c\x89\x46\x91\x68\x14\x89\x46\x47\x9e\x68\xb4\x92\xde\x81\xda\xa3\xcc\xd9\xfa\x03\xbd\x97\x39\xdb\x87\x77\x07\x5c\xf0\xec\x50\xd2\x5d\x55\xfa\xac\x35\xba\x8d\x22\x68\x28\x82\xa6\x3f\x42\x11\x34\x38\x27\xc0\x39\x01\xce\x09\x70\x4e\x80\x73\x02\xa8\x37\x40\xe8\xfe\x11\x01\x08\x05\x08\x05\x08\x05\x08\x05\x08\x3d\x61\x10\x0a\x36\x01\x36\x01\x36\x01\x36\x81\x22\x68\x28\x82\x86\x22\x68\xee\x93\xda\x31\x94\x95\x96\x7c\x94\x43\xab\xf8\xda\xa0\x98\x11\x0a\xa3\x9d\x42\x2e\xb8\xee\x0a\xa3\x1d\x0a\x01\xab\x4b\xa4\xf5\x1c\xe4\xda\x79\xc6\x8e\xea\xfe\xd5\x3b\x18\x11\x7c\x35\x81\xe0\x2b\xe4\xee\x40\xee\x8e\x8a\xc6\x8c\x44\x8c\x1b\x47\x16\x8f\x17\x36\xbd\xd7\xbc\xff\x2f\x6a\xfb\x94\x24\xe7\x6e\x8b\xaa\xb5\x20\x39\xbf\x62\x2f\x4d\x4b\x72\xec\x42\x6b\x2f\xc9\x48\x32\x18\x11\x6d\x24\x79\x48\x20\x8e\x15\x27\x79\xb0\xe2\x18\x22\xbf\x4f\x28\xf2\x1b\x21\x6e\x08\x71\x43\x88\x1b\x42\xdc\xa0\x49\x6e\xdb\x45\x83\x8c\x27\xe9\x47\x23\x43\x38\x4c\x0f\x65\xd9\x06\x1d\x04\x53\x51\xa0\xed\x50\x8d\xaa\xaa\x54\x5b\x57\x91\x2f\x28\xda\xe6\xd6\x46\x7d\x31\x02\x45\xdb\xcc\xff\x70\xbf\xc1\x64\x37\xa8\xf2\x6d\x3d\xb3\xee\x62\x21\xb7\x1a\x4d\x41\x49\xb7\xea\x3e\x03\xe3\xa3\xa4\x5b\x17\x25\xdd\x0e\x15\xc4\x2a\x8b\xbb\x4d\xd4\xf9\x00\x65\xde\x60\xef\x3e\x3d\xf7\x03\x94\x79\x6b\x73\xdd\xa0\xcc\x1b\xd4\x28\xa8\x51\x93\x28\xf8\xd6\xaa\x22\x75\x9c\xd2\x6f\x87\x9b\xd9\x2a\x8b\xc0\x4d\x54\xbe\x83\x73\x29\xa4\xbb\x53\x93\xee\x06\x24\x44\xe1\xae\x77\x9f\xc0\xb9\x74\x4f\xd3\x27\x25\xa6\x74\x59\x2c\x6e\x48\xfe\x99\x57\xa9\xc7\xc3\xa2\x4f\x66\x47\x68\x91\x7e\xc6\xde\x5f\x47\x60\x8c\x5f\xa8\x5b\x38\xb4\xf6\xed\x7c\xbe\xca\xa4\x9a\x9b\x20\x5a\x10\xfd\xa7\x61\x3b\xc1\x0d\xdf\x12\xde\x29\x0c\x67\xf5\xde\x5f\x5f\x97\x47\x24\x3b\x15\x3f\x0d\x92\x53\xdd\x67\x90\x1c\x90\x9c\x76\x48\x4e\x4b\xf7\x5e\x7d\xa4\xb3\x79\xf1\x8d\x52\xef\x07\xd7\x81\xe6\x7f\x7a\x9a\x3f\xb8\x4e\x9b\xeb\x06\x5c\x07\xb6\x1e\xa8\x4d\x9d\xaa\x4d\xad\xe1\x9c\x6e\x15\xa7\xae\x48\x4e\x6b\x56\x8d\xfa\x48\x67\x22\xf2\xdd\x4b\x76\x10\x84\x3a\x08\x75\x23\x12\xea\x06\x24\x3b\xe1\x8a\x77\x9f\x74\x7a\xc5\xf7\x43\x71\x20\x94\xb4\x0a\x6f\xba\x10\x49\x5e\xb1\xd6\xb8\x8d\x8e\xd3\xeb\x1e\xdc\xd0\xef\x1c\x93\xdc\xe8\x8e\xe1\x80\x02\xb4\x45\x88\x0e\x42\x74\x00\x76\x00\x76\x06\x09\x76\x5a\xba\x17\x0f\x20\x3b\x9b\x17\xe3\x28\x55\x7f\xa0\x1d\x58\x01\x4e\xcf\x0a\x00\xb4\xd3\xe6\xba\x01\xda\x81\xdd\x07\x6a\xd5\xc8\x18\xcf\x88\x43\x76\xda\xb3\x82\x1c\x40\x7a\x26\x22\xef\x21\x84\x07\xd2\xde\xa9\x49\x7b\x03\x12\xaa\x70\xf7\xbb\x4f\x10\xc2\xb3\xa7\xe9\x93\x12\x5b\x26\x15\xc2\xa3\x73\xa5\xfe\xcf\x4a\x66\x3c\x3d\x52\x4e\xf5\x42\x76\x59\x39\x77\x35\xde\xff\x53\x35\x61\x87\x84\x53\xcc\xab\xfe\xce\xbd\xa1\x28\xea\x6c\x79\x0f\x32\xab\x9b\x94\xdd\xae\xfc\xac\xd6\xf4\x0b\xc9\xb9\x95\xb2\x49\x75\x6a\x4d\xed\x63\x75\x13\x96\x8a\xe6\xba\x2c\xca\xba\xf2\xed\x8c\x7d\x09\x22\x0a\x38\x2f\xe6\xdd\x36\x55\x71\xcd\xad\x56\xae\xc8\x5b\x2a\x4a\xec\x1a\xa2\x1f\xa5\x97\xf3\xbc\xf6\xbc\xae\xc4\x6c\x4b\xa4\xaa\x8b\x3b\xaf\x93\xab\x3f\xcb\xa7\x94\xbd\x16\xdf\x3d\x11\xe7\xd5\x10\xf5\x2b\xe5\xdc\xfd\xc8\x1b\x97\x18\xd8\xb4\x4f\x57\x6b\x26\x34\xc0\xd7\x9b\x12\x64\xcc\x97\x42\xd7\x01\x76\x72\x9a\x49\x31\x5e\x14\xcf\xd7\x1f\x53\x4f\xd0\xf5\x2f\x12\xa6\x45\x3d\x5b\x4c\xd9\x5f\x09\xaa\xf2\xfd\x3d\x0e\x4c\xc2\xf4\xd7\x0b\x11\x89\x84\x4c\xbe\x73\x25\xf3\x65\x92\xcd\x83\x79\x26\x44\xc4\x96\x41\xb4\xca\x44\xfa\x86\x51\x85\x6c\x4f\x46\xf3\x60\x61\xf3\xac\x6b\x99\xc4\x56\xbb\xd6\x7d\xd9\xac\x92\xad\xaf\x3c\x23\xef\x70\xf6\x7f\xdf\xfe\x1f\xb7\xc1\x6e\x54\x13\x84\x6f\x24\xca\x4c\x2e\x74\x03\xcd\x37\x5d\x8f\x32\xf9\x20\x22\xd7\x65\x53\x91\x37\x12\xc2\x5f\x2b\xe4\x1b\x52\x95\xee\x20\xd3\x92\x51\x22\x74\x0d\x7d\x53\xe7\x3c\x48\x33\x57\xb4\x78\xb3\x6a\xf3\x8c\x7d\x52\x3f\xfd\x14\xd8\x94\xde\xe6\x57\xa8\x14\xbf\x88\x7c\xc6\x23\x6d\x21\x31\xb5\x72\x75\x71\x58\x27\xc2\x51\x0b\x6d\x35\xe0\x82\x68\xa7\x3a\x4b\x9d\xdb\x3b\x2c\xf4\x5e\x6a\x30\x59\x67\xec\xe2\xa6\x62\xdf\x0f\xe2\x59\x27\xac\x76\x7f\x0e\x95\xc8\x5f\xac\x5c\xfc\x74\x1f\xe8\xa2\xd0\x41\x54\x18\x10\xf7\x7d\xb7\x90\x0b\xa5\x7e\x53\x76\xe9\x12\x9c\xeb\xcc\x97\x89\x38\xb0\x60\xf3\xda\x60\x6c\xd6\x6a\x36\xc9\xaf\x49\xe4\x21\xf9\x52\x2d\x48\xf5\x5f\x3d\x29\x0f\xe2\xd9\x54\xbf\x76\x2f\xfe\x76\x66\xbb\xfc\xed\xcc\x14\xb7\xde\x5e\x0d\x9b\x0e\x88\x72\x3d\x6c\xf6\xae\xb0\xc5\xf5\x02\xe0\xe6\x2b\x85\xd1\x4b\x37\x8a\xc5\x9a\x6d\xe3\x6a\x64\x9b\x9c\xdf\x66\xc6\xb4\x8e\x93\xb1\x65\x90\xa6\x54\x98\xb4\xa4\x68\x35\x11\x81\xed\xf2\xeb\x47\x3b\x81\x12\x59\x7b\xa2\xfa\x54\x22\xaf\x59\x2a\xf2\xe4\xed\xea\x40\x4b\x02\x2f\x73\x25\x76\xd5\xd8\xb8\x05\xeb\x6a\x15\x3c\x9b\xcd\xa5\x2d\xbc\xe5\xc2\x11\xe2\x51\x24\xcf\xd9\x7d\x10\x2d\x1a\xab\x6d\x5f\x4c\x8b\xfa\x19\x11\xd4\xf9\x38\xa1\x3a\x1f\x2f\x5a\xfe\x21\xbf\x13\x61\xab\xcb\x9f\xde\xd8\xef\xf2\xa7\x12\xda\xda\x9c\xb4\xe4\xdf\x83\xe5\x6a\xc9\xa2\xd5\xf2\x4e\x2d\x92\xb9\x3b\x4c\x53\x3d\x5a\x54\x39\x9a\x90\x5b\x5e\xf8\x9c\x96\x2c\x89\xd1\x81\x6a\x8b\x2e\x69\xb1\x29\x9b\x28\xe1\x5b\xfd\xed\x5f\xf6\x96\xfa\x97\xad\xaa\x11\xe5\xa3\x6f\x0b\x5e\xe8\x85\xaa\x57\x27\xdd\x1f\x1e\x8f\xec\x72\xce\x25\xa1\x94\x2f\xd5\x2e\x0b\xb2\xc0\x89\xcc\xba\x95\x4a\xb8\x17\xb9\xac\xa3\x7e\x5a\xf7\x45\x4d\xda\x8c\x7d\x11\x19\x49\x44\x5c\x97\x0f\x37\xa2\xb2\xee\x9b\x78\x22\xa1\x81\x47\xc5\x1b\x42\x89\x29\x4b\xb9\x8a\xe8\x35\xba\x97\xaf\x57\xb1\xfa\x31\xbd\xa1\xd5\x5f\xde\x58\xd9\x44\x3c\x2a\x31\x89\xd3\xe5\x64\x9f\xb6\x2b\x49\xc9\x25\xf3\x20\xcc\x84\x92\x50\x95\xd4\xa8\xee\x28\xab\x40\x98\xd3\xa5\xa4\x43\xe8\xfb\xd4\x73\xbe\x4b\x65\x09\x53\x97\xdf\x30\x75\xef\x9d\x2c\x5e\x52\x69\x48\x12\x7a\xe4\x41\xc8\xef\x42\xa1\xba\xae\x66\x44\x4b\x32\xde\xbd\x94\x29\x15\xf7\x56\xef\x31\x12\x90\x99\x0b\x35\x2c\x3c\x59\xac\x96\xd4\x97\xc8\xb7\xb7\x2d\x0d\x92\xea\x9b\x69\x8f\x7b\x75\x3e\xba\x1f\xe6\xcc\x2d\xa9\xfc\x54\xb2\xda\xc9\x5a\x07\x82\x94\x89\x65\x9c\x3d\x97\xd5\x28\x9e\x2a\x05\x5c\xcf\x7c\x24\x77\x76\x68\x97\x28\x17\xcc\xd7\x04\x39\x2d\xfb\xb9\x75\xb9\x58\xf1\x84\x47\x99\xb0\x42\x4a\x7e\xd2\xa7\xf9\x21\x40\xf2\x20\x15\xe5\xcf\xdb\xee\xc4\x52\xa7\xb0\x65\x92\x05\x69\xba\xd2\xab\x4a\x7d\x39\x14\xf9\x0e\x71\x3a\x82\x5d\x70\x97\xd6\x1e\x7b\xa1\xba\x67\x7f\xf2\x30\x39\xd9\x8a\xc8\x4a\x3e\x4f\xd3\x95\xf0\x2b\x85\x65\x25\x57\xa6\xab\xbb\x54\x7d\x39\xca\x5c\x0f\xfc\x02\xdf\xa5\x11\x54\x73\x25\x97\x22\x0b\x96\x42\xf5\x7d\x2e\x92\x84\x0a\x0c\xe9\x0a\xf1\x05\xf1\x3f\x57\x0f\xd4\x8c\x8a\x28\x5d\x25\xc2\x65\xb9\x37\x0a\x8e\x35\x36\xeb\x51\xd3\x5d\xa6\x8d\x49\xaa\x0c\x4b\x97\x3c\x0c\x45\xc2\xbc\xfb\x55\xf4\xa0\xcb\xf2\x33\x75\x88\xb2\x90\x27\x0b\x3b\xd1\xb4\xe3\xf5\xeb\x55\xa7\x95\xc6\x24\x68\xe1\xc5\x32\x4d\x03\xb5\xe0\xcc\xb0\xd1\x82\x2b\xee\x2f\xed\x60\xe4\xab\x2b\x5d\x4f\x07\xfd\x8e\xf0\xf5\x7c\x90\xf2\x6c\xc4\x73\xb3\x86\xcd\x5d\x48\xad\x7e\xe2\xa9\x95\x61\x99\x59\x11\x6a\x4c\x36\xf5\x13\xad\xb5\xf3\x54\x4d\xb0\xb7\x0a\x75\xdd\xa7\x7c\xd9\x34\xba\x0b\xd4\x40\xf5\x74\x2d\xa2\xfc\x15\xca\x5f\xa1\xfc\x15\xca\x5f\x1d\x45\xe2\x5c\x37\x93\xa4\x22\xb3\xb7\x4c\x96\xf0\x40\x9d\x12\x11\x7b\x52\x83\x61\xbf\x69\x8f\x6c\xf5\x35\x7b\xf1\xb9\xa5\x97\xd8\x13\x40\x89\x37\xc2\x31\xc6\x02\x3f\x0b\xe4\x95\x2f\xbd\xf4\x8a\x2e\x36\x25\x4e\x5d\xd1\xd5\x74\xc9\xe3\xe0\x8a\xc7\xc1\xa5\x27\x23\xb5\x56\xd2\xab\x3f\xb8\x65\xe5\x7e\x70\x4e\x77\x70\xc6\x83\x30\x25\xf9\xa1\x28\xfb\x93\xff\x52\x83\x79\x58\x1b\x80\x41\xcc\xc2\x47\x92\x94\x9c\x34\x99\xd2\x51\xb1\x3e\x53\x4a\x4b\x88\xe3\x30\xd0\xb2\x81\x13\x70\xb4\x97\x58\x90\xb2\xfb\x60\x71\x4f\xce\x63\x9e\x5c\x2e\xd5\xd2\xf5\xf5\xa2\xae\xfc\x2d\x63\x91\x57\x03\x9c\xbf\x49\xc9\x5b\x89\xa8\xfa\x61\xf5\xdd\x71\xce\xef\xc7\x35\x0f\xa0\x23\x4e\xf2\xd7\x60\x29\x94\xe4\x69\xcd\x04\x6a\xa0\xaf\xb4\x50\xac\x75\x37\x92\xfe\x48\xf2\x48\xf5\x19\x66\x0d\x21\x56\xe1\xe0\x61\x78\xc1\x12\xb1\xe0\x89\x4f\x4e\x01\x4a\x5c\x8b\x9e\x19\xf7\xb2\xe0\x31\xc8\x9e\xd5\xad\x10\x44\xf6\xff\x35\x39\x94\x32\xdd\xc4\x2e\xcc\x02\x95\xb4\x0e\xec\x1e\x25\xed\xd6\x1f\xd8\x59\xd2\x2e\x97\x93\xba\x04\xe2\xd5\x58\xb7\xd7\xa2\x76\xda\x20\x96\x18\x25\xda\x4a\xee\x72\xce\x54\xab\x6b\x13\x6d\xf5\x96\x4d\x87\xbd\x17\x52\xec\xb5\x96\x92\x8c\xf6\x0f\xd5\xcc\x5f\xa4\x7c\x58\xf2\xe4\x21\xcd\xfd\xc1\x75\xf3\xc9\x2c\x93\x1a\xe3\xd1\x73\xac\x34\x8c\x5f\x3e\x7d\xfa\xdb\xc7\xeb\xcf\x7f\xfb\x76\x96\x1b\x46\xb4\x0c\x26\x49\x90\x0d\x96\x71\x28\xc8\x02\x72\xe7\xde\xaa\xa4\x8e\x60\x11\x69\xc3\xb0\x12\x8d\x43\xbe\x20\xa1\x34\xff\x8a\x52\x42\x8b\x0a\xa4\xb6\x36\x9c\xa7\xcc\x0f\x52\x2f\x11\xaa\xcd\x39\x52\x2a\xa0\x10\x63\xf5\x28\xbf\xc8\xd9\x21\x94\x82\xad\x94\x79\x2b\xee\xaa\x03\x31\x79\xe4\xe1\x05\x8b\xa4\xa6\xbd\xa4\x26\x3b\xd3\xc9\xba\xf5\x8d\x78\xe3\x33\xb3\x7d\x36\x66\x2a\xa7\x24\xa7\x22\x4d\xa9\x61\xd6\xfe\x6c\xac\x29\x06\x74\x95\x74\x3e\xf5\x29\x0d\x81\xef\x00\xea\x5c\xf0\x4c\xa9\xea\x0b\x9e\x09\xb6\x36\x11\xe6\x4d\x22\x52\xb2\xb8\xb6\x4a\xc4\x41\x4e\x76\xab\x5e\xdb\xe0\x1a\xa9\x58\x02\x3d\xe9\x5b\x70\x42\x80\x13\x02\x9c\x10\xe0\x84\x00\x27\x84\xaa\xc3\x17\x74\x7b\x44\x23\x02\xe0\x09\xe0\x09\xe0\x09\xe0\x09\xe0\x09\xe0\x39\x2d\xe0\x09\x06\x01\x06\x01\x06\x01\x06\xd1\x39\x83\x38\x80\xd3\x6b\x65\x4e\x26\x36\x30\x53\x4d\xbf\xe6\xca\xea\x7b\x77\x74\x89\xe9\x49\xd5\x1c\xdc\x48\x27\xd9\xbd\x58\xea\x6b\x2b\xcd\x12\xc1\x97\x34\x3c\xbe\x7f\x61\x2e\x86\x0b\xf3\xdd\xa5\x7c\x24\xd9\xa7\xa0\xde\xb1\x2f\x24\xae\x3c\xaf\x2f\xf5\x26\x43\xf8\xb4\x6b\x81\x8d\x3f\xeb\xc2\xd6\x07\xd4\x8f\xfd\xac\x07\xfe\x3f\x36\xc7\xa0\xce\xbb\xcb\x4f\x0f\x1b\x13\x15\xe2\x24\x0b\x16\xfc\xdf\x82\x34\x3b\x45\x3e\xa4\x4e\xb2\x61\x33\xa1\x06\xa9\xf2\x90\x4f\x6e\x74\xf9\xe4\x64\xda\x32\xf9\xd3\x9a\x19\xe3\xb5\x21\x9f\x7e\xa0\x75\xcc\x37\xd8\x4c\x1c\xc5\x7e\xd5\x3b\xf8\x10\x3c\x35\x81\xe0\x29\x64\xe0\x40\x06\x8e\x8a\xc6\x0c\x5c\x3c\x1b\x4b\xe6\x8d\x46\x4d\xfe\x61\x6f\x93\xb5\x23\xf0\x70\xda\x3c\x25\x09\x98\x44\x8f\x21\x4a\xc0\xaf\x58\xd3\xf4\x20\x26\x43\xfc\x91\xb2\x84\xd4\x17\xb1\x8a\x99\x41\x7a\x17\xb1\x46\x92\x0f\x04\x62\x55\x71\x92\x07\x2b\x56\x21\x02\xfb\x84\x22\xb0\x11\x6a\x86\x50\x33\x84\x9a\x21\xd4\x0c\x1a\xe1\xb6\x5d\x34\x24\x8d\x10\xea\x55\xff\x01\x28\x83\x54\xb0\x9c\xf5\xb9\x9b\xba\x59\xd9\x5a\x9e\xe8\x7a\x3a\x52\x75\x95\xac\x76\x63\x4d\x0a\xb2\x86\xf8\x4e\x1e\x64\x77\xea\x5f\xdc\xcb\x66\x8c\xdd\xa8\xff\xda\xbf\x2f\x79\x40\x86\xb9\x94\x79\xe1\x2a\xcd\x44\x92\xdf\x20\x26\x55\x7e\x18\x3c\x08\x76\xee\xda\x7a\xae\x04\x45\x2b\xdc\xcc\xd8\x6d\xc8\xa3\xc8\xd4\x38\x20\xf1\x83\x87\x5a\xe2\x79\xfb\x63\x93\x23\x99\xda\xd8\x93\x60\xe0\x06\xcd\xc9\xd5\x77\x76\xf8\x54\x4f\xd9\x8d\x1e\x31\x75\x19\xc4\xa9\x1d\x1d\xe3\x64\x45\x75\x07\x3c\x1e\x15\x44\xe4\xe7\x8e\x07\x4a\x35\x66\xba\x2c\x7b\xca\x37\xd6\x94\x4e\xff\x8e\x0b\xb2\xf5\x42\x97\xcb\x85\xd8\xb6\x36\x01\x05\xd8\xaa\xfb\x0c\x60\x8e\x02\x6c\xed\x14\x60\x6b\x26\x60\x6d\x29\xb7\x36\x29\xcc\x8f\x02\x6b\xb0\x4c\x9f\x1e\xf0\x47\x81\xb5\x36\xd7\x0d\x0a\xac\x41\x3d\x82\x7a\x34\xf2\xc2\x6a\x2d\x28\x48\x5d\x15\x54\x6b\x6a\x1e\xdb\x52\x3e\x6d\x52\xf2\x1b\xdc\x34\x21\xb5\x9d\x8a\xd4\x36\x20\xe1\x08\x77\xb8\xfb\x04\x6e\x9a\x53\x16\x3b\xba\x2d\x8c\xd6\x9f\xc7\xe3\x95\xae\xd2\x5a\x74\x7c\xec\x86\xed\x6d\xaf\x06\xdb\x12\xe5\xab\x28\xfd\x8a\x73\x08\x9b\x7a\xc7\xa6\x06\x6a\x01\x6a\x01\x6a\x79\x79\x6f\xcc\xbf\x80\x5a\x8a\xa8\xe5\xa5\xf7\xdd\x7e\xe8\x32\x95\x5a\xe7\x40\x2f\x50\xe2\x4f\x4f\x89\x07\x7a\x69\x73\xdd\x00\xbd\xc0\x6c\x03\x75\x09\xe8\xa5\x2b\xf4\xf2\x72\xeb\xc5\x7e\x08\x33\x15\x79\x0e\x28\x06\x52\xdc\xa9\x48\x71\x03\x12\x96\x70\xa7\xbb\x4f\x80\x62\xa6\x2c\x86\x4c\x00\xc5\xa4\xc2\x4b\x44\x96\x1e\x29\xdd\x44\x21\x10\x57\xce\xd9\x17\xfa\xed\x1d\xb2\x4a\x31\xe7\xc4\x3b\xf7\x68\x2e\xb4\x6c\xbe\x00\x69\x27\x50\x01\x06\x15\x60\x50\x01\x06\x15\x60\x50\x01\xa6\x17\x85\x03\x7a\x61\xed\x89\xea\x53\x2f\x44\xa1\x1e\x24\x41\x3a\xe1\x24\x48\xa8\xca\x84\xaa\x4c\xa8\xca\x84\xaa\x4c\xa8\xca\x84\xaa\x4c\xa8\xca\x84\xdc\x80\xc8\x0d\x88\xdc\x80\xc8\x0d\xb8\xbe\x22\x8f\x5a\x7c\x0c\x25\xe0\x86\x30\x0b\x28\x01\x87\x12\x70\x53\x2b\x01\x57\xc9\xe7\x80\xe3\x0f\xc4\x74\xc6\x27\xea\x04\x31\xb7\xbe\x8b\x73\x39\xa9\x3b\xe6\xbd\xc1\x73\x7b\x4d\x04\xaa\x2d\x61\x89\xd1\x9e\xad\xc8\x2e\xe7\x4c\x35\x77\x3f\xbc\x56\x8f\xaf\x7b\xd9\x35\x07\xd6\x6b\x6d\x23\x71\x8c\x2a\x36\xfe\x22\xe5\xc3\x92\x27\x0f\x69\xee\xa5\xad\x1b\x4c\x16\x98\xd4\xd8\x89\x9e\x63\xa5\x4c\xfc\xf2\xe9\xd3\xdf\x3e\x5e\x7f\xfe\xdb\xb7\xb3\xdc\x06\xa2\xc5\x2d\x49\x32\x6b\xb0\x8c\x43\x41\xc6\x8e\x3b\xf7\x56\x25\x60\x04\x8b\x48\xdb\x80\x95\x14\x1c\xf2\x05\xc9\x9f\xf9\x57\x94\xbe\x59\xd4\x15\xb5\x61\xe1\x3c\x65\x7e\x90\xaa\xfe\x06\x32\xca\xe9\x51\x81\x7a\x18\x03\x47\xf9\x45\xce\xe4\xa0\x74\x69\xa5\xb7\x5b\xc9\x56\x9d\x7d\xc9\x23\x0f\x2f\x58\x24\x35\xd8\x25\x8d\xd8\x59\x49\xd6\x0d\x6d\x84\x16\x9f\x99\xed\xb3\xb1\x48\x39\x7d\x38\x15\x29\xd5\x9a\x74\xa6\x66\x63\x38\x31\x4c\xab\xa4\xde\xa9\x4f\x69\x08\x7c\xc7\x4a\xe7\x82\x67\x4a\x2b\x5f\xf0\x4c\xb0\xb5\x89\x30\x6f\x12\x91\x12\xbb\xb5\x01\x22\x0e\x72\x88\x5b\xf5\xda\x06\x37\x46\xc5\x12\xe8\x49\xb5\x82\xbf\x01\xfc\x0d\xe0\x6f\x00\x7f\x03\xf8\x1b\x54\x1d\xbe\x00\xd9\x23\x1a\x11\xb0\x4d\xb0\x4d\xb0\x4d\xb0\x4d\xb0\x4d\xb0\xcd\x69\xb1\x4d\xe0\x06\xe0\x06\xe0\x06\xe0\x86\xce\x71\xc3\x01\x48\x5e\x2b\x73\x32\xb1\x61\x95\x6a\xfa\x35\x42\x56\xdf\xbb\xa3\x4b\x4c\x4f\xaa\x46\xde\x46\x3a\xc9\xee\xc5\x52\x5f\x5b\x69\x96\x08\xbe\xa4\xe1\xf1\xfd\x0b\x73\x31\x5c\x98\xef\x2e\xe5\x23\xc9\x3e\x05\xf5\x8e\x7d\xd1\xf5\x7b\xd6\x97\x7a\x93\x21\x7c\xda\xb5\xc0\xc6\x9f\x0b\x61\xeb\x03\xea\xc7\x7e\xd6\x03\xff\x1f\x9b\x63\x50\xe7\xdd\xe5\xa7\x87\x4d\x84\x5c\xb4\xa3\x36\xdd\xff\x16\xa4\xd9\x29\x32\x20\x75\x84\x0d\x94\xfb\x34\x48\x4d\x87\x3c\x6e\xa3\xcb\xe3\x26\xd3\x96\xe9\x9e\xd6\xc5\x18\xdf\x0f\xf2\xf4\x37\xdb\x43\x79\x03\xcd\x91\x61\x3a\x54\xef\x70\x43\x10\xd4\x04\x82\xa0\x90\x1c\x03\xc9\x31\x2a\x1a\x33\x54\xd9\x6b\x1c\x59\x31\x0e\x6d\x6b\xaf\x15\x8e\x0f\x6b\xec\x94\x04\x5a\x12\x28\x06\x25\xd0\xbe\x62\x07\x67\xed\x30\x99\xd3\x8f\x94\xbc\xa3\x86\xa8\x54\x4c\xd8\x81\x34\x1d\x90\x92\xa6\x20\x25\x21\x30\xfa\x84\x02\xa3\x11\x01\x86\x08\x30\x44\x80\x21\x02\x0c\x0a\xde\xb6\x5d\x34\xc8\x70\x8b\x7e\xd4\x28\x44\x8b\x6c\x8d\x16\x19\x96\x6a\xe5\xcc\xc8\xdd\x14\x94\x2a\x0b\x58\x7b\x95\xa4\xaa\xfa\x51\xad\x05\x86\x14\x84\x0d\xf1\x9d\xdc\xbd\xee\xd4\xbf\xb8\x97\xcd\x18\xbb\x51\xff\xb5\x7f\x5f\xf2\x80\x0c\x6d\x29\xf3\xc2\x55\x9a\x89\x24\xbf\x42\x4c\xb6\xf9\x30\x78\x10\xec\xdc\x35\xf2\x5c\x49\x8a\x56\xba\x99\xb1\xdb\x90\x47\x91\x29\x13\x40\xf2\x07\x0f\xb5\xc8\xf3\xf6\xc7\x26\x67\x32\xb5\xb1\x27\xc9\xc0\x0d\x9a\x13\xac\xef\xec\xf0\xa9\x9e\xb2\x1b\x3d\x62\xea\x36\x88\x53\x3b\x3a\xc6\x23\x8a\x52\xf7\x7b\x3c\x2a\xc8\xc8\xcf\x1d\x0f\x94\x6a\xcc\x74\xc1\xf3\xb0\xaf\x2c\x98\xce\xba\x2d\x56\x76\x6c\x14\x5c\xac\x52\x56\xf5\xdb\x28\x4f\x56\xdd\x67\x60\x6d\x94\x27\x6b\xa7\x3c\xd9\x81\xd2\x53\x65\x35\xb2\xa9\xc0\x78\x14\x20\x83\xdd\xf9\xf4\xe8\x3c\x0a\x90\xb5\xb9\x6e\x50\x80\x0c\xba\x0f\x74\x9f\x71\x56\x1e\x7b\x99\xf6\xd3\x55\xc9\xb1\x83\xed\x5b\x95\x15\xc6\xa6\x22\xa3\xc1\x61\x12\x22\xd9\xe4\x45\xb2\x01\x49\x3e\xb8\xa0\xdd\x27\x70\x98\x9c\x96\x30\xd1\x65\xfd\xb0\xee\x5d\x10\x93\xc7\xc0\x13\xdc\xf3\xe4\x2a\xea\xad\x80\x18\xb5\xe1\x5a\xb7\xa1\xa6\x5f\x62\x75\x21\xb1\x6d\x2f\x82\xa7\x22\x12\x7c\x21\xc1\x17\x12\x7c\x21\xc1\x17\x12\x7c\xf5\xa2\x73\x40\x35\xac\x3d\x51\x28\x28\x36\xa4\x3c\x6c\xf0\x9b\x3f\x21\xbf\x79\x24\xdd\x43\xd2\x3d\x24\xdd\x43\xd2\x3d\x24\xdd\x43\xd2\x3d\x24\xdd\x43\x38\x19\xc2\xc9\x10\x4e\x86\x70\xb2\xf5\x15\x89\x82\x62\xc8\xf0\x89\x0c\x9f\xc8\xf0\x39\xf2\x0c\x9f\x95\xbc\x0e\x44\x1e\x21\xa2\xeb\x0f\x0c\xa0\xa0\xd8\x16\xae\x3b\xe8\xc2\x62\x35\xa1\x76\x75\x81\xb1\x97\x82\x6c\x14\x1a\x43\xa1\x31\xfd\x11\x0a\x8d\xc1\x0f\x01\x7e\x08\xf0\x43\x80\x1f\x02\xfc\x10\x00\xb8\xc1\x3c\xf7\x8f\x08\x98\x27\x98\x27\x98\x27\x98\x27\x98\xe7\x09\x33\x4f\x60\x08\x60\x08\x60\x08\x60\x08\x14\x1a\x43\xa1\x31\x14\x1a\x73\x9f\x1c\x10\x0f\x59\x34\xe1\xa3\xe0\x58\xc5\xd7\x86\xc1\x85\x50\x78\xec\x14\x32\xb4\x75\x59\x78\xac\x26\xe8\xdb\x56\x80\xac\x9f\x98\xd5\x23\xe4\xd5\x28\x75\xac\xde\xe1\x87\x20\xaa\x09\x04\x51\x21\xbf\x06\xf2\x6b\x54\x34\x66\xe8\x32\xda\x58\xf2\x6c\x34\x6b\x73\xcf\x05\xca\x9a\x34\x7a\x4a\x82\x70\xd7\x85\xca\x9a\x0b\xc2\xaf\x58\xe3\x6c\x21\xc7\x2f\x5c\xd6\x20\x51\x48\xff\xa2\xd6\x48\xd2\x83\x40\xba\x2a\x4e\xf2\x60\xa5\x2b\x04\x64\x9f\x50\x40\x36\x22\xcf\x10\x79\x86\xc8\x33\x44\x9e\x41\x31\xdc\xb6\x8b\x06\xa5\x18\x42\xc9\x1a\x40\x44\xca\x30\xd5\x2c\x67\x8a\x3e\x4e\xf1\xb2\x9a\x8a\x52\x75\x11\xb3\x96\x83\x4f\x50\xcc\xcc\xad\x86\xfa\xd2\x01\x8a\x99\x99\xff\xe1\xda\xc2\x0d\xb0\xf9\x40\x3f\x45\xcd\xfa\xc1\xcd\xe5\xe2\x66\xdb\xdb\x80\x22\x67\xd5\x7d\x06\x42\x47\x91\xb3\x6e\x8a\x9c\xd5\x94\xb2\xb6\x14\x3b\x9b\x16\xf8\x47\xd1\x33\xd8\xa8\x4f\xcf\x03\x00\x45\xcf\xda\x5c\x37\x28\x7a\x06\x1d\x09\x3a\xd2\xd8\x8b\x9f\xb5\xa1\x25\x1d\xab\x08\x5a\x6d\x3b\xd9\x96\x62\x68\xd3\x92\xe1\xe0\xbc\x09\xd1\xed\x64\x44\xb7\x01\x49\x48\xb8\xc8\xdd\x27\x70\xde\x9c\xb6\xf0\xd1\x6d\xb1\xb4\xa3\xba\x41\x96\xaa\xa5\xf5\x93\x5e\x6e\x87\xc8\xb2\x23\xaf\x5c\x0b\x4c\x0f\x09\xe5\x90\x50\x0e\x09\xe5\x90\x50\x0e\x09\xe5\x90\x50\x0e\x09\xe5\x90\x50\x0e\x09\xe5\x90\x50\x6e\xeb\x88\x20\xa1\x1c\x12\xca\x21\xa1\x1c\x12\xca\x21\xa1\x1c\x12\xca\x21\xa1\x1c\x12\xca\x21\xa1\x1c\x12\xca\x21\xa1\x1c\x12\xca\x21\xa1\xdc\xe1\xec\x08\x99\xe4\x2a\xbe\xd6\x16\x39\x3a\x9e\x4f\x3f\xfc\xdf\x47\xe7\xff\xde\x79\x0a\xb9\x1d\x30\x6f\x67\xee\xb8\xe9\xf9\x1d\xc1\xe1\x08\x0e\x47\x70\x38\x82\xc3\xd1\x10\x05\xb0\x51\x79\x1a\x8d\x2b\x75\xc1\x29\xca\xb5\x47\x49\x0c\xd7\xbd\x2b\x54\x4f\xa9\xe0\x76\x88\x4c\x3b\x73\xc0\x1d\x4f\x64\x42\xf2\x37\x08\x4b\x48\xfe\x86\xe4\x6f\x0d\x26\x1b\xc9\xdf\x90\xfc\x0d\xc9\xdf\x90\xfc\x0d\x7a\xde\xb6\x5d\x34\xc8\x1a\xff\xfd\xe8\x52\xad\x35\x7f\x4a\xca\xd5\x91\x12\xc2\x35\xc4\x06\x47\xcc\x04\xb7\x33\xb4\x75\x6b\x0a\xb8\x16\xe2\x44\x90\xfb\xcd\xcd\x7f\x7d\xe1\x00\xb9\xdf\xcc\xff\x70\x6b\xc1\x84\xb6\xff\x94\x3f\x46\xd2\xb7\xe3\x91\xe1\x8a\x6c\x6f\x87\x23\xdf\xa1\xd0\x5e\x60\xee\xd1\x61\x6e\xa4\x79\x3b\x58\x84\xda\x95\xdf\x6d\xfc\x70\x1e\x89\xdd\x60\x7f\x3e\x3d\x58\x8f\xc4\x6e\x6d\xae\x1b\x24\x76\x83\x02\x04\x05\x68\x7d\x10\xc7\x95\xd1\xad\xa9\x0a\x74\xd4\x54\x6e\x3b\x0d\x5d\xbb\x72\xb8\x8d\x5f\x4e\x83\x13\x25\xe4\xb2\xe9\xcb\x65\x03\x12\x7f\x70\x4b\xbb\x4f\xe0\x44\x39\x35\x91\xe2\x08\x79\xda\x8e\xe6\x95\x78\x15\x27\xf2\xfb\x73\xd7\xbe\x89\x9e\x8c\x22\xe1\x65\xec\xfd\xcd\x6f\x37\x5f\x6f\x72\xf5\x30\x93\x8c\x7e\x5f\x5d\x50\x35\x22\x3d\xf4\x5b\xb4\x94\xa2\xfd\xfc\x36\x64\x95\x5b\xea\x4e\x8d\x43\x67\x6b\xd3\x8f\x76\x30\xac\x9d\xaf\x27\xb8\x93\xcc\x84\x76\xbe\x9b\x68\x51\x58\x97\xd0\x81\x00\x69\xbb\x25\xfe\x7c\xf3\xb5\x95\xfd\xf0\x67\x91\x61\x33\x54\xb5\x02\x9b\xa1\xf5\xcd\x70\x2f\xb8\xdf\xcd\x6e\xf8\xcb\xcd\xf5\xfb\x56\xb6\xc3\x5f\x04\xf7\xb1\x1f\xaa\x5a\x81\xfd\xd0\xfa\x7e\x90\xe6\xe9\x4e\xb6\xc4\xa7\xdb\xaf\x1f\x3e\xfd\xfd\x4b\x2b\xbb\xc2\x74\x13\x1b\xa3\xaa\x15\xd8\x18\xad\x6f\x8c\x76\x7c\x3c\xb6\x37\x04\xfe\x1e\xd5\x7d\x1e\x94\xbf\xc7\x2d\xcf\x74\x12\xb8\x7b\xc1\x62\x9e\x50\x1a\xbf\xff\xfa\xfc\x9b\x31\x94\x9a\x7c\x69\xcc\xe8\xa5\x4c\x44\x7e\x2c\x83\x28\x4b\xd5\xa8\xcc\xe7\xc1\x77\x91\x6a\xb3\x59\x21\xf7\x6f\x26\x29\xda\xc3\x06\xcd\x78\xab\x24\x11\x51\x66\x4e\x45\x9b\x0e\x2b\x93\xf6\x9d\xc4\xbb\x98\xf8\xce\x97\x71\x68\xc2\x35\x9e\xee\x65\xe8\xec\xa1\xaa\x35\x94\xac\x29\xcb\xe2\x9f\xae\xae\x42\xe9\xf1\xf0\x5e\xa6\x59\x85\x26\xad\xb6\xd9\x65\xfa\x9c\x66\x62\x99\x6b\xd2\x22\xe4\x69\x16\x78\xa9\xe0\x89\x77\x7f\x19\xca\xc5\x22\x88\x16\x57\xff\xad\xff\xff\xff\xf7\x3f\xff\xb1\x4a\x45\xf2\xd3\x43\xb0\xf4\xee\x9f\x67\xcc\x8e\x46\xf5\xc7\x87\xba\xbb\x6c\xac\x82\x3e\x9c\x5d\x0e\xbd\xd1\x6e\xaf\xbf\xbe\xfb\x4b\x2b\xf7\x19\x71\x5f\xdc\x66\x55\xad\xc0\x6d\xd6\xfe\x6d\xd6\x7e\x9a\x13\xbb\x23\x3e\x7d\x69\xc7\x0a\x70\x2b\x53\x98\x01\x2a\x5b\x81\xfd\xd0\xfe\x7e\x68\x1b\x5f\xbb\xed\xf0\x5f\x2d\xed\x86\x15\x36\x43\x65\x2b\xb0\x19\xda\xda\x0c\xaf\xd8\x0b\xd1\xcb\xd5\xff\x2a\x21\xae\xf3\xec\x10\x47\x26\x30\xff\x08\xb2\xfb\xdb\xb2\x70\x8a\x8d\x86\x8d\x76\xda\x24\x06\x9b\x02\x9b\x82\x75\xb3\x29\x46\x4d\x64\xb0\x2f\xb0\x2f\x58\x37\xfb\x62\x1a\x64\x06\x1b\x04\x1b\x84\x75\xa4\xc3\x83\xd0\x80\xd0\xa8\xa6\xda\xfc\xfe\x36\x51\xd1\x61\x5d\xda\xfc\x04\xbc\x09\xbc\xe9\x94\x78\x13\xee\x68\xdc\xd1\xac\xa3\x3b\x7a\xcc\xdc\x09\xfb\x02\xfb\x82\x75\xb4\x2f\x46\xcb\x9f\xb0\x29\xb0\x29\x58\xab\x9b\xe2\x15\x6b\xce\xa1\x52\x9d\x04\xb1\x40\xa0\xba\x49\xbf\xa7\x7f\xc7\xaa\x8e\x2d\x25\xe2\x33\x19\x1c\x6b\x6c\x24\x84\x19\x9e\x7a\xe4\x1e\xb2\xa1\x31\xd8\x5e\x06\x66\x7b\x41\x36\xb4\x2d\x5f\x1c\x43\x36\xb4\xe6\x37\xda\xae\xbc\x68\x15\x57\xda\x28\xb3\x6e\x20\x3b\x1a\xb2\x70\x9c\x5e\x16\x0e\x64\x47\x6b\x73\xdd\x20\x3b\xda\x41\x03\x5b\x79\x8b\x41\x21\x82\x42\x84\xec\x68\x79\x76\xb4\x97\xd8\x21\x76\xe5\x49\x9b\x8a\xdc\x86\x6c\x69\x90\xd3\xa6\x2f\xa7\x0d\x48\x1c\xc2\xad\xed\x3e\x41\xb6\xb4\xa9\x89\x18\xe3\xcc\x96\x76\xbc\x72\xad\x7f\xaf\xb0\x48\xd6\x2a\xd8\x7a\x3c\x41\x03\x85\x5a\x21\x62\xa0\x50\x2b\x0a\xb5\x36\x98\x6c\x14\x6a\x45\xa1\x56\x14\x6a\x45\xa1\x56\x68\x47\xdb\x76\x11\x0a\xb5\xa2\x50\x2b\xdb\xa1\x40\x75\x5d\xa8\xb5\x4a\x9f\x18\x5a\xa9\xd6\x3a\x3a\x52\x85\x8f\x58\x13\x0d\x09\x45\x5a\x51\xa4\x15\x14\xee\x68\x37\x96\x33\x91\xe5\x9b\xf6\x04\xcf\xf8\x4e\x1d\x13\x5f\x7a\xc0\xbf\xd0\x35\x71\xcb\xcf\x8f\xc9\x39\x11\x3e\x7a\x5b\xbe\x38\x06\x1f\xbd\xc3\x25\x89\x2a\xdf\xbc\xf1\x53\x5d\x78\xe3\xc1\x04\x7b\x7a\x94\x17\xde\x78\x6d\xae\x1b\x78\xe3\x41\x0f\x80\x1e\xb0\x39\x8c\x23\xf1\xc7\x7b\xb1\x26\x70\x9c\x7a\xa5\xf5\xac\x3d\x55\x9e\x78\xe3\x97\xd2\x1a\xef\x03\xc8\x65\x90\xcb\x46\x24\x97\x0d\x48\xfc\xc1\x2d\xed\x3e\xe9\xee\x96\xee\xd7\xff\xee\xb4\x85\x8a\x2e\x3d\xf0\x1a\x8a\x14\xaf\x58\x1d\x1f\xbc\x2b\xcb\xe7\x8b\xce\x78\x0d\xcc\x91\xb8\xfd\x6a\x99\x22\x2b\x6e\xbe\x8e\x0d\xab\x27\x7a\xdf\xed\x9f\x8a\xad\x77\x5d\xc7\x13\x02\xc3\x7d\xed\x29\xea\xd6\x70\xdf\x95\xa6\x65\x4f\xd4\xcd\xe8\xa7\xe6\x5a\xd7\xaf\xf6\x94\x3e\x2d\xed\x0b\x72\x63\x37\xe3\x0a\xb9\x11\x72\xe3\x0b\xe5\xc6\xbe\x33\x5a\x35\xf4\x57\x42\x2e\x2b\xfd\x09\xf6\x27\x9c\x46\x20\x7b\xc2\x69\x64\x78\x89\x9d\x9a\xba\x8f\x4c\x25\x35\x00\x9c\x48\x00\x2b\x4e\xcf\x78\x03\x27\x92\x36\xd7\x0d\x9c\x48\x80\xa7\xa0\x17\x6c\x0e\x23\x9c\x48\xba\x49\xeb\xd4\xdc\xb0\x39\x15\xa9\x0d\x4e\x25\x90\xd3\x4e\x41\x4e\x1b\x90\x38\x84\x5b\xdb\x7d\x02\x38\x60\xde\x3c\x29\x21\x63\x34\x70\x40\xfa\xa5\x25\xde\x65\x32\xa7\x42\xe2\x0b\x39\x67\x7f\x97\x7e\xdd\x9c\x4e\xef\xdc\x83\xeb\x0f\x21\xb1\x93\xc9\x18\xa4\xee\x8b\x20\x5a\x09\xa3\x43\x17\x72\x03\x29\x35\xee\x49\x89\x22\x89\xc8\x92\x40\x3c\xaa\x9b\x6a\x29\x13\x61\x44\x85\x34\x4f\xe2\x92\x8a\xe4\x51\x24\x33\xf6\x25\x88\xc8\xe9\xb8\x98\xf6\x47\x7f\x66\x6f\x9d\x0b\xe6\x85\x81\x4b\x44\x42\x17\x96\x4d\x5b\xe3\x1a\xa2\x1f\xa5\x97\x73\x25\x06\x3d\x06\x72\x95\x32\xba\x6d\xac\x94\x42\x17\x6b\xe0\xab\xdb\xd4\xe3\xa1\xf9\xac\x50\x58\xf0\xb5\xf8\xee\x89\x38\x73\x59\x85\xf4\x2b\xe5\xdc\xfd\xc8\x1b\x97\x97\xc4\xb4\x4f\x35\x27\x11\x94\x4c\x88\xaf\x37\x25\xc8\x98\x2f\x45\x4a\x52\x96\x93\xa3\x4c\x86\xa3\xa2\x40\xbc\xfe\x98\x7a\x82\xae\x67\x91\x30\x2d\x8a\x3d\x99\xcc\x2e\xfe\x4a\x28\xfd\x5c\x7c\x8f\x03\x93\xaf\xe9\xf5\x42\x44\x22\x21\x53\xe9\x5c\xc9\x64\x99\x64\xf3\x60\x9e\x09\x11\xb1\x65\x10\xad\x32\x91\xbe\x51\x77\x3f\xb5\x6d\x1e\x2c\x6c\x9a\x27\x2d\x33\x30\x19\x15\xfa\x72\x51\xec\x97\x95\xed\x62\x19\x19\x79\x84\xb3\xff\xfb\xf6\xff\xb0\xcf\x26\x1d\xcb\x8d\x6a\x82\xf0\x8d\xc4\x97\xc9\x85\x6e\xa0\xf9\xa6\xeb\x51\x26\x1f\x44\xe4\xba\xac\xe7\x90\x45\x42\xf8\xa9\xfe\x16\x89\x9d\x51\x46\xa9\x7b\x2e\xd4\x80\x91\xe4\x92\x88\x34\xe3\x49\xa6\x9e\x09\x12\xfa\x8c\x5e\x2c\x57\x59\x79\xc6\x49\x58\x98\xb1\x4f\xea\xa7\x9f\x02\x9b\x51\xc8\xfc\x8a\x9a\x99\x54\x44\x3e\xe3\x91\xb6\x3d\xd0\x7b\x6c\xc9\x47\x27\x62\x51\x0b\xd5\xf4\x88\xe0\xb1\x28\x7a\xa9\xce\x52\xe7\xf6\x0e\x0b\xbd\x97\x1a\x4c\x76\x0f\xbb\xb8\x23\xf1\x3d\x63\x0f\xe2\x59\xe7\xcb\x71\x7f\x0e\x95\x48\x9e\xb1\x34\xe2\x71\x7a\x2f\xb3\x0b\xf6\x74\x1f\x78\x54\x11\x32\x88\x0a\x03\xe2\xbe\xef\x16\xb2\x69\xbe\xde\x42\x97\x2e\xbf\x92\x0e\xd3\x4f\x04\xf3\xf4\xc5\x7a\x61\x24\x7d\xf5\x2f\x99\xd8\x44\x5d\x8c\xcf\x33\xa1\xd7\xf4\x3c\x48\xd2\x6c\x7d\x30\xb4\x44\x6d\x6a\x71\xfa\x36\x09\x8d\x15\x49\x48\xfe\x53\x0b\x52\xfd\x57\x4f\xca\x83\x78\x26\x41\xbd\xf0\xe2\x6f\x67\xb6\xcb\xdf\xce\x66\xdf\xa2\x6f\x51\xd9\x4a\x47\xf9\x03\x56\xb1\x4e\x3a\xa0\x0f\x88\x27\x32\xef\x04\x29\x49\x6b\x33\xf6\xae\xb0\xc5\xf5\x02\xe0\xe6\x2b\x85\xd1\xd3\x83\x40\x6b\xf0\x77\x7d\xff\x98\x6d\x93\x88\x6c\x95\x44\x79\xca\x21\x33\x63\x5a\x07\xc9\xd8\x32\x48\x53\xc6\xa3\xe7\xb2\x22\xd4\x44\x44\xb5\xcb\xaf\x1f\xed\x01\x4a\x5e\xed\x89\xea\x53\xc9\xbb\x66\xa9\xc8\x73\x47\xa9\x03\x2d\x09\x3c\x7d\x7c\xd1\xd6\x93\xf3\x7c\xc1\xba\x54\x69\xcf\x66\x73\x69\xdb\x69\x39\x6f\x9d\x78\x14\xc9\x73\x76\x1f\x44\x8b\xc6\x6a\xd5\x17\xd3\xa2\x7e\x46\x04\x69\x06\x4f\x28\xcd\xe0\x8b\x96\x7f\xc8\xef\x44\xd8\xea\xf2\xa7\x37\xf6\xbb\xfc\xc3\x60\x19\x64\xda\xdc\xb3\xe4\xdf\x83\xe5\x6a\xc9\xa2\xd5\xf2\x4e\x2d\x92\xb9\x3b\x4c\x53\x3d\x5a\x6a\x60\x34\xcc\xd2\xa3\xe5\xf1\x30\xa4\x25\x4b\x62\x74\xa0\xda\xa2\x33\xea\x6d\xca\x26\x4a\xf8\x56\x7f\xfb\x97\xbd\xa5\xfe\x65\x93\xfa\x45\xf9\xe8\xdb\x7c\x7b\x7a\xa1\xea\xd5\x49\xf7\x87\xc7\x23\xbb\x9c\x73\x49\x28\xe5\x4b\xb5\xcb\x82\x2c\x70\x22\xb3\x6e\xa5\x12\xee\x45\x2e\xeb\xa8\x9f\xd6\x7d\x51\x93\x36\x63\x5f\x44\x46\x12\x91\xea\x84\xea\xbb\x16\x95\x75\xdf\xc4\x13\x09\x0d\x3c\x2a\xde\x10\x4a\x4c\x59\xca\x55\x44\xaf\xd1\xbd\x7c\xbd\x8a\xd5\x8f\xe9\x0d\xad\xfe\xf2\xc6\xca\x26\xe2\x51\x89\x49\x9c\x2e\x27\xfb\xb4\x5d\x49\x4a\x2e\x99\x07\x61\x26\x94\x84\xaa\xa4\x46\x75\x47\x59\x05\xc2\x9c\x2e\x25\x1d\x42\xdf\xa7\x9e\x73\x77\x29\x4b\x98\x3a\xfb\x5f\x26\x92\x65\x10\x09\x27\x8b\x97\x54\x1a\x92\x84\x1e\x79\x10\xf2\xbb\x50\xcc\xa8\x72\x81\xd2\x27\x54\x97\xbd\x7b\x29\x53\x41\x5b\x3f\x93\x56\x02\x32\x73\xa1\x86\x85\x27\x8b\xd5\x92\xfa\x12\xf9\xf6\xb6\xa5\x41\x52\x7d\x33\xed\x71\xaf\xce\x47\xf7\xc3\x9c\xb9\x25\x95\x9f\x4a\x56\x3b\x59\xeb\x40\x90\x32\xb1\x8c\xb3\xe7\xb2\x1a\xc5\x53\xa5\x64\xeb\x99\x8f\xe4\xce\x0e\xed\x12\xe5\x82\xf9\x9a\x20\xa7\x65\x3f\xb7\x2e\x17\x2b\x9e\xf0\x28\x13\x56\x48\xc9\x4f\xfa\x34\x3f\x04\x48\x1e\x5c\x91\xd8\xe0\xda\xee\xc4\x52\xa7\xb0\x65\x92\x05\x69\xba\xd2\xab\x4a\x7d\x39\x14\xf9\x0e\x71\x3a\x82\x5d\x70\x97\xd6\x5e\x7a\xa1\xba\x67\x7f\xf2\x30\x39\xd9\x8a\xc8\x4a\x3e\x4f\xd3\x95\xf0\x2b\x85\x65\x25\x57\xa6\xab\xbb\x54\x7d\x39\xca\x5c\x0f\xfc\x02\x39\xa5\x11\x54\x73\x25\x97\x22\x0b\x96\x42\xf5\x7d\x2e\x92\x84\xf2\x9b\x2a\xb9\xba\xa4\x0f\xe5\xea\x81\x9a\x51\x11\xa5\xab\x44\xb8\x94\x5c\x46\xc1\xb1\xc6\x60\x3d\x6a\xba\xcb\xb4\x31\x49\x95\x61\xe9\x92\x87\xa1\x48\x98\x77\xbf\x8a\x1e\x08\xc3\x70\xa6\x0e\x51\x16\xf2\x64\x61\x27\x9a\x76\xbc\x7e\xbd\xea\xb4\xd2\x98\x04\x2d\xbc\x58\xa6\x69\xa0\x16\x9c\x19\x36\x5a\x70\xc5\xfd\xa5\x1d\x73\x7c\x75\xa5\xeb\xe9\xa0\xdf\x11\xbe\x9e\x0f\x52\x9e\x8d\x78\x6e\xd6\xb0\xb9\x0b\xa9\xd5\x4f\x3c\xb5\x32\x2c\x33\x2b\x42\x8d\xc9\xa6\x7e\xa2\xb5\x76\x9e\xaa\x09\xf6\x56\xa1\x4e\x3b\x9b\x2f\x9b\x46\x77\x81\x1a\xa8\x9e\xae\x45\x64\xdf\x45\xf6\x5d\x64\xdf\x45\xf6\xdd\xa3\x48\x9c\xeb\x66\x92\x54\x64\xf6\x96\xc9\x12\x1e\xa8\x53\x22\x62\x4f\x6a\x30\xec\x37\xed\x91\xad\xbe\x66\x2f\x3e\xb7\xf4\x12\x7b\x02\x28\xf1\x46\x38\x06\x58\xe0\x5b\x81\xbc\xf2\xa5\x97\x5e\xd1\xc5\xa6\xc4\xa9\x2b\xba\x9a\x2e\x79\x1c\x5c\xf1\x38\xb8\xf4\x64\xa4\xd6\x4a\x7a\xf5\x07\xb7\xac\xdc\x0f\xce\xe9\x0e\xce\x78\x10\xa6\x24\x3f\x14\x65\x7f\xf2\x0c\x6a\x30\x0f\x6b\x03\x30\x88\x59\xf8\x48\x92\x92\x93\x26\x53\x3a\x2a\xd6\x67\x4a\x69\x09\x71\x1c\x06\x5a\x36\x70\x02\x8e\xf6\xbf\x0a\x52\x76\x1f\x2c\xee\xc9\x2d\xcb\x93\xcb\xa5\x5a\xba\xbe\x5e\xd4\x95\xbf\x65\x2c\xf2\x6a\x80\xf3\x37\x29\x79\x2b\x11\x55\x3f\xac\xbe\x3b\xce\xf9\xfd\xb8\xe6\x67\x73\xc4\x49\xfe\x1a\x2c\x85\x92\x3c\xad\x99\x40\x0d\xf4\x95\x16\x8a\xb5\xee\x46\xd2\x1f\x49\x1e\xa9\x3e\xc3\xac\x21\xc4\x2a\x1c\x3c\x0c\x2f\x58\x22\x16\x3c\xf1\x09\xda\x2b\x71\x2d\x7a\x66\xdc\xcb\x82\xc7\x20\x7b\x56\xb7\x42\x10\xd9\xff\xd7\xe4\x50\xca\x74\x13\xbb\x30\x0b\x54\x12\x39\xb0\x75\x64\xd4\x5e\x7f\x60\x67\x46\xed\x5c\x4e\xea\x10\x64\x97\x69\x6e\xaf\x69\xb5\xb5\x1d\x2c\x31\xba\xb3\x15\xd8\xe5\x9c\xa9\xc6\xee\x83\xd5\xea\x61\xe3\x1c\xd7\x10\x50\xaf\xb5\x86\xc4\xaf\x7f\xa8\xa6\xfc\x22\xe5\xc3\x92\x27\x0f\x69\xee\x44\xad\x9b\x48\x16\x97\xd4\xd8\x85\x9e\x63\xa5\x3c\xfc\xf2\xe9\xd3\xdf\x3e\x5e\x7f\xfe\xdb\xb7\xb3\xdc\xe6\xa1\xc5\x2b\x49\x32\x6a\xb0\x8c\x43\x41\xc6\x8d\x3b\xf7\x56\x25\x50\x04\x8b\x48\xdb\x7c\x95\xd4\x1b\xf2\x05\xc9\x9b\xf9\x57\x94\x7e\x59\xd4\x0d\xb5\x21\xe1\x3c\x65\x7e\x90\x7a\x89\x50\x6d\xce\x69\x51\x81\x72\x18\x83\x46\xf9\x45\xce\xc4\xa0\x74\x67\xa5\xa7\x5b\x49\x56\x9d\x75\xc9\x23\x0f\x2f\x58\x24\x35\xc8\x25\x0d\xd8\x59\x45\xd6\x0d\x6b\x84\x12\x9f\x99\xed\xb3\xb1\x40\x39\xfd\x37\x15\x69\x4a\x0d\xb3\xa6\x65\x63\x28\x31\x0c\xab\xa4\xce\xa9\x4f\x69\x08\x7c\xc7\x46\xe7\x82\x67\x4a\x0b\x5f\xf0\x4c\xb0\xb5\x89\x30\x6f\x12\x91\x12\xb3\xb5\xc1\x21\x0e\x72\x68\x5b\xf5\xda\x06\x37\x44\xc5\x12\xe8\x49\x95\x82\x7f\x01\xfc\x0b\xe0\x5f\x00\xff\x02\xf8\x17\x54\x1d\xbe\x00\xd7\x23\x1a\x11\xb0\x4c\xb0\x4c\xb0\x4c\xb0\x4c\xb0\x4c\xb0\xcc\x69\xb1\x4c\xe0\x05\xe0\x05\xe0\x05\xe0\x85\xce\xf1\xc2\x01\x08\x5e\x2b\x73\x32\xb1\x31\x91\x6a\xfa\x35\x32\x56\xdf\xbb\xa3\x4b\x4c\x4f\xaa\x46\xdc\x46\x3a\xc9\xee\xc5\x52\x5f\x5b\x69\x96\x08\xbe\xa4\xe1\xf1\xfd\x0b\x73\x31\x5c\x98\xef\x2e\xe5\x23\xc9\x3e\x05\xf5\x8e\x7d\xd1\x15\xf1\xd6\x97\x7a\x93\x21\x7c\xda\xb5\xc0\xc6\x9f\xaa\x60\xeb\x03\xea\xc7\x7e\xd6\x03\xff\x1f\x9b\x63\x50\xe7\xdd\xe5\xa7\x87\x4d\x80\xf2\x70\x45\xe9\x8b\xdf\x82\x34\x3b\x45\xe2\xa3\x0e\xb0\x41\x52\x9e\x06\x69\xd2\xc6\x9b\x57\x4c\xa6\x2d\x23\x2d\xad\x8e\x30\xbe\x8f\x5e\xe9\xef\xbd\x8c\x5f\x0d\x35\xa3\x83\xea\x4e\xbd\x1d\x8d\x38\x9f\x09\xc4\xf9\x20\x99\x03\x92\x39\x54\x34\x66\x98\xe2\xc6\x48\xf2\x38\x1c\xd4\xd2\x3e\xea\xe2\x37\x6a\xea\x94\xe4\x37\x12\x1d\x06\x24\xbf\xbd\x62\xdb\x32\x4d\x98\x0c\xd4\x47\x4a\x38\xb1\x57\xf2\x29\x26\x99\x40\x6a\x09\x88\x3d\x63\x15\x7b\x10\xcc\x7b\x42\xc1\xbc\x88\x5a\x42\xd4\x12\xa2\x96\x10\xb5\x04\x8d\x6d\xdb\x2e\x1a\x64\x88\x40\x3f\xba\x11\x22\x1c\xb6\x46\x38\x0c\x49\x63\x72\x56\xe0\x6e\x0a\xf1\x94\xc5\xab\x3d\x4a\x51\xa1\xf2\x4e\x3b\xc1\x0c\x05\xe1\x42\x7c\x27\x17\xa5\x3b\xf5\x2f\xee\x65\x33\xc6\x6e\xd4\x7f\xed\xdf\x97\x3c\x20\x4b\x59\xca\xbc\x70\x95\x66\x22\xc9\xaf\x0c\x93\xc0\x3c\x0c\x1e\x04\x3b\x77\x19\x10\xcf\x95\x64\x68\xa5\x99\x19\xbb\x0d\x79\x14\x99\xcc\xf3\x24\x6f\xf0\x50\x8b\x38\x6f\x7f\x6c\x72\x06\x53\x1b\x7b\x92\x04\xdc\xa0\x39\x41\xfa\xce\x0e\x9f\xea\x29\xbb\xd1\x23\xa6\x4e\xff\x38\xb5\xa3\x63\xbc\x78\x28\x1b\xbc\xc7\xa3\x82\x4c\xfc\xdc\xf1\x40\xa9\xc6\x4c\x17\x96\x0e\xfb\x8a\x3a\x79\xfb\x57\xb7\xa5\x9e\x8e\x8a\x2f\x4b\x55\x9e\x36\x7e\x19\x05\x9e\x50\xe0\xe9\x28\x05\x9e\x0e\x12\x18\x8a\x15\x9d\x26\x81\x8f\x51\xc6\x09\xa6\xd5\xd3\x23\xca\x28\xe3\xd4\xe6\xba\x41\x19\x27\x88\xfb\x10\xf7\x47\x59\xc1\xe9\x05\x02\x7f\x57\xc5\x9b\x0e\x34\xe0\x14\xab\x35\x4d\x42\x22\x83\x43\x1f\xc4\xaf\x89\x8b\x5f\x03\x92\x72\x70\x19\xbb\x4f\x4e\xdc\xa1\x6f\x52\x62\x43\xa7\x35\x99\xda\x77\x92\xbb\x8a\x13\xf9\xfd\xb9\x6b\x57\x39\x4f\x46\x91\xf0\x32\xf6\xfe\xe6\xb7\x9b\xaf\x37\xb9\x8a\x97\x49\x46\xbf\x5f\xa3\x54\x93\x79\x85\x96\x37\xb4\x0f\x9a\x7a\xe2\x96\x9a\x5f\xe3\x04\xd9\xda\xd4\xa3\xed\xf2\xb5\xc3\xf2\x04\x37\x87\x99\xc3\x6e\x37\x08\xad\x08\xeb\x9e\x38\x10\x3e\x6a\xd7\xff\x9f\x6f\xbe\xbe\x7c\xf1\xff\x59\x64\x58\xf9\x58\xf9\xfa\xcf\x2d\xaf\xfc\x7b\xc1\xfd\x6e\x96\xfe\x5f\x6e\xae\xdf\xbf\x7c\xed\xff\x45\x70\x1f\x8b\x1f\x8b\x5f\xff\xb9\xe5\xc5\x2f\xcd\xd3\x9d\xac\xff\x4f\xb7\x5f\x3f\x7c\xfa\xfb\x97\x97\x6f\x01\xd3\x47\xec\x02\xec\x02\xfd\xe7\x96\x77\x41\x0b\xfe\x04\xdb\x5b\x31\x26\xdf\x82\x5b\x9e\xe9\x9c\x50\xf7\x82\xfd\xd7\xe7\xdf\x98\x6a\x35\xe5\x16\x49\x85\x0b\x27\xf0\x56\x49\x22\xa2\xcc\xec\x64\x9b\xe0\x26\x93\x4c\xe9\x58\x07\x3b\x1c\x6c\x0c\x4b\x1f\xee\x06\x87\x1e\x6c\xb7\xd7\x5f\xdf\xfd\xe5\xe5\xc7\x1a\x61\x38\x1c\x6a\x38\xd4\xf4\x9f\xdb\x3e\xd4\xda\xcf\x7b\x60\x97\xff\xa7\x2f\x2d\xe8\x74\xb7\x32\x85\x52\x87\xc5\x6f\xfe\xdc\xf6\xe2\x6f\x1b\x18\xba\xb5\xff\x5f\x6d\x2c\xfd\x15\x56\x3e\x56\xbe\xf9\x73\x3b\x2b\xff\x15\xab\x65\xf5\xbe\xfa\x5f\x25\x71\x75\x1e\x27\xde\xb1\xf1\xfb\x1f\x41\x76\x7f\x5b\x96\x1c\xb1\x77\xb0\x77\x4e\xc8\x08\x8e\x1d\x80\x1d\xc0\x3a\xd8\x01\xa3\x32\x86\x63\x13\x60\x13\xb0\x0e\x36\xc1\x38\x8d\xe2\xd8\x0d\xd8\x0d\xac\x0b\x55\x1a\xc6\x71\xe7\x1e\x7d\x6f\x33\x2d\xdb\xd4\x1b\x87\xf5\x66\xf3\x13\x98\xfa\x4f\xd1\xd4\x8f\xa3\x1a\x47\x35\xeb\xe2\xa8\x1e\x93\xc9\x1f\x9b\x00\x9b\x80\x75\xb1\x09\x46\x63\xfa\xc7\x0e\xc0\x0e\x60\xed\xed\x80\x57\x6c\x1f\x02\x48\x75\x66\xaa\x82\xf1\xbf\x9b\xb4\x48\xfa\x77\xac\x06\xd0\x30\x41\x92\x49\xa3\x55\x63\x6f\x20\x52\xe6\xa4\xe3\x4f\x90\xa5\x66\x80\xca\x32\xb2\xd4\x6c\xf9\xe2\x18\xb2\xd4\x34\x3c\xbf\xd7\xf2\xd5\x54\x1c\xe0\xa3\x8c\x91\x46\xd6\x1a\x84\x4d\x9f\x5e\xd8\x34\xb2\xd6\xb4\xb9\x6e\x90\xb5\xe6\xa0\x81\xad\xbc\xb5\x20\xfe\x43\xfc\x47\xd6\x1a\xee\x35\x96\xcf\x36\xf2\xd7\x4c\x45\x42\x43\x16\x1b\x88\x63\x13\x17\xc7\x06\x24\xf5\xe0\x72\x76\x9f\x20\x8b\xcd\x74\xc4\x88\x11\x64\xb1\xb1\x97\x4b\x94\x3d\xca\x70\xb5\x14\x5e\xc8\x83\x65\xb7\xf6\x7c\x2a\x76\x2f\x13\xa6\xcb\xb0\xdb\xca\x45\x72\xce\x54\xd7\xd8\xad\x6b\xd0\xef\xd4\xa0\x77\xaa\x41\x3b\x24\x10\xf5\x36\xc3\xc1\xaa\x9e\xfc\x55\x26\xd7\x61\xe8\x8a\x10\x0c\xc2\xf8\xbf\xf5\x81\x13\xad\xe7\x5d\x39\x71\x28\xf0\x5d\xf1\xb5\x17\x9f\x1a\xfb\x76\x57\xc7\x30\x82\x8a\x3e\xfd\x43\xad\xcd\x5f\xa4\x7c\x58\xf2\xe4\x21\xcd\x6d\x3e\xfa\x3c\x10\x8f\x54\x98\x49\x0b\x59\xcf\xb1\x60\xdf\xce\x7e\xf9\xf4\xe9\x6f\x1f\xaf\x3f\xff\xed\xdb\xd9\x8c\x7d\x11\x89\x6a\xa0\x29\xea\x24\x49\x46\x0e\x96\x71\x28\x96\x22\xca\xd8\x9d\x7b\xeb\x92\x3f\xb3\x60\x11\xe9\x92\x7a\x41\xaa\x6d\x16\x4a\x9c\xca\xbf\xc2\x13\xc1\x94\x30\xce\x78\xa6\x95\x1e\x7a\xf5\x79\xca\xfc\x20\xf5\x12\xa1\xda\x3c\x63\xef\xc2\x80\xda\x53\x10\xc9\x79\xaa\x8e\xbf\xb5\x17\x25\x22\x5b\x25\x4a\x00\xe3\x19\xe3\xd1\x33\x73\xc5\x50\x82\x28\x13\xc9\x23\x0f\x2f\x58\x24\x13\x6a\x56\x76\x2f\x9e\xed\x4b\xf2\xdf\xd5\x82\x73\x2a\x22\x9f\x9e\xb7\x7d\xd6\xe3\xc1\xfc\x95\x12\xaa\x18\x67\xa9\x12\xd1\x55\xc3\x6c\xe5\xbe\x20\xd5\x8d\xd2\xc3\x57\x2a\x22\xa7\x3e\xa5\x21\x30\xb5\xe0\xee\x05\x9b\x0b\x9e\xad\x12\xc1\x16\x3c\x13\x6c\x6d\x22\xcc\x9b\x44\xa4\xe4\x4b\xaa\x37\xc7\xe3\x40\x37\x6e\xdb\x6b\x0f\xa4\x2c\x15\xd3\x5f\x8d\x5c\xaa\x2c\x3c\x2d\x10\x24\x25\x82\x2b\x49\x3a\x88\x56\xc2\x18\x11\x0b\x55\x16\x53\x91\xb1\x27\xa5\xa4\x25\x22\x4b\x02\xf1\xa8\x06\x7c\x29\x69\x6e\x53\xaa\x67\xe8\xca\xe1\xe9\x41\x99\xb1\x2f\x41\xe4\x89\xb5\x02\x8a\x66\x36\x8d\x3c\x7e\xc1\x3c\xb3\x80\xd4\xcc\x93\x28\x6f\x0b\x00\xba\x86\xe8\x47\xe9\xe5\x5c\x29\x88\x8f\x81\x5c\xa5\x8c\x86\xd1\xea\x6f\xb4\x1b\x02\x5f\xe9\x19\x1e\x0f\xcd\x67\xf9\xfe\x63\xaf\xc5\x77\x4f\xc4\x99\xf3\xb2\xd4\xaf\x94\x73\xf7\x23\x6f\x5c\x85\x37\xd3\x3e\xd5\x9c\x44\x50\x59\x46\xbe\xde\x94\x40\xed\x2c\xa1\x57\x83\xd3\x30\xdd\x12\xca\x6d\x03\xeb\x8f\xa9\x27\x48\x71\x11\x09\xd3\x4a\xea\x93\xa9\x91\xe7\xaf\x04\xcb\x24\x13\xdf\xe3\xc0\x54\xbe\x7c\xbd\x10\x91\x48\x88\x10\xcd\x95\xb6\x9a\x49\x36\x0f\xe6\x99\x10\x11\x5b\x06\xd1\x2a\x13\xe9\x1b\x25\x23\x50\xdb\xe6\xc1\xc2\x16\xcc\xd4\xda\x14\x93\x51\xa1\x2f\x17\x1b\xbb\x48\x5f\x71\x46\x53\xe3\xec\xff\xbe\xfd\x3f\xec\xb3\xf1\xae\xbd\x51\x4d\x10\xbe\xd1\x85\x33\xb9\xd0\x0d\x34\xdf\x74\x3d\xca\xe4\x83\x88\x5c\x97\xf5\x1c\xb2\x48\x08\x3f\xd5\xdf\x32\x87\x28\x15\x41\xbc\x50\x03\x46\x3a\x5d\x22\xd2\x8c\x27\x74\x9a\x04\x09\x7d\x46\x2f\x96\xab\xac\x3c\xe3\xb4\x8f\x66\xec\x93\xfa\xe9\xa7\xc0\xd6\x66\x34\xbf\xa2\x66\xc6\x1c\x03\xda\xf8\x4a\xef\xb1\x9e\xb2\x4e\xf9\xa4\x16\xaa\xe9\x11\xc1\x63\x51\x29\x55\x9d\xa5\xce\xed\x1d\x16\x7a\x2f\x35\x98\x0c\xbf\x76\x71\x47\xe2\x7b\xc6\x1e\xc4\xb3\xae\x3c\xe8\xfe\x1c\xf2\x4c\xfd\x7e\x1a\xf1\x38\xbd\x97\xd9\x05\x7b\xba\x0f\x3c\x72\xf7\x0d\xa2\xc2\x80\xb8\xef\xbb\x85\x6c\x9a\xaf\xb7\xd0\xa5\x93\xf7\x74\xfd\xa3\x44\x30\x4f\xeb\x1d\x17\xc6\x06\xa2\xfe\x25\x13\x5b\xf2\x94\xf1\x79\x26\xf4\x9a\x9e\x07\x49\x9a\xad\x0f\x86\xb6\x35\x04\x91\x17\xae\x7c\x7d\x66\x19\x57\x6a\x12\x71\x48\x33\x56\x0b\x52\xfd\x57\x4f\xca\x83\x78\xd6\x07\x76\xfe\xe2\x6f\x67\xb6\xcb\xdf\xce\x66\xdf\xa2\x6f\x51\x19\x53\x50\x61\xa6\x55\xac\xab\x39\xe9\x03\x42\xdf\x54\x41\x4a\x87\x50\x7e\x47\xd0\xcc\xd1\x02\x30\xa7\x71\x71\xf4\xf4\x20\xd0\x1a\xfc\x5d\xdf\xb0\x66\xdb\xb8\x9b\xc3\x14\x6f\x34\x33\xa6\xad\x33\x19\x5b\x06\x69\x4a\x37\x42\xc9\x44\x74\xe8\xc9\x6b\x97\x5e\x3b\x84\xbb\xde\x69\x7b\xcd\x52\x91\x17\x74\x54\x7b\x23\x09\x3c\xbd\x13\xb4\x0a\x30\xcf\xfb\xee\xea\x97\x3e\x9b\x79\xd2\x1c\xa2\x5c\x4c\x56\x3c\x8a\xe4\x39\xbb\x0f\xa2\xc5\xa1\xdd\xa7\xb7\x7d\x31\xad\x19\xcd\x18\x84\xfc\x4e\x84\xad\x8d\x01\xbd\xad\x8f\x31\x08\x83\x65\x90\x69\x53\xda\x92\x7f\x0f\x96\xab\x25\x8b\x56\xcb\x3b\x91\xe8\xde\x1b\x6d\x44\x8f\x8f\x1a\x0a\xcd\x03\xf5\xf8\x78\x3c\x0c\xe9\x18\xa6\x8b\x38\x50\xad\xd0\xd5\x4d\x37\x4f\x37\x75\x7d\xab\xbf\xfd\xcb\xae\xf5\x7f\xd9\x02\xab\x51\x3e\xde\xb6\xf6\xa9\xae\x4d\xac\x37\x20\x9d\x44\x1e\x8f\x6c\x05\xe3\xfc\x2c\x4d\xf9\x52\x1d\x2e\x41\x16\xb8\x4b\x57\xb7\x52\x89\x07\x22\x3f\x2d\xd5\x4f\xeb\xbe\xa8\x69\x52\x42\x6a\x96\x69\x71\x4d\xf7\x5d\x5f\xb6\xba\x6f\xe2\x89\x8e\x1d\x1e\x15\x4d\xac\xea\xa0\x5b\xca\x55\x44\xaf\xd1\xbd\x7c\xbd\x8a\xd5\x8f\xe9\x1a\xce\xea\x2f\x6f\xec\xe9\xa6\x25\x42\x4e\x07\xba\x7d\xda\xae\x1d\x75\xb2\xcd\x83\x30\x13\xea\x8e\x53\xf7\x8e\x3a\x46\xbc\xb2\x0c\x5b\x92\x42\xb4\x41\xda\x73\x2e\x42\xe5\x3b\x4a\x57\x62\xcd\x44\xb2\x0c\x22\xe1\x6e\xf3\x92\x50\x44\x67\xe9\x23\x0f\x42\x25\x35\xe6\xf2\xb9\xea\xb2\x77\x2f\x65\x2a\xe8\x14\xcb\xa4\x3d\x43\xcd\x5c\xa8\x61\xe1\xc9\x62\x45\x62\x3b\x8f\x7c\x7b\x43\xd1\x20\xa9\xbe\x99\xf6\xb8\x57\xe7\xa3\xfb\x61\xce\xdc\x92\xca\x85\x11\x2b\xdf\xac\x75\x20\x48\x99\x58\xc6\xd9\x73\x59\x10\x73\xd2\x37\xcf\x94\xcc\xb2\xab\x43\xbb\x2e\x83\x60\xbe\x76\x15\xe8\xdb\xc3\xad\xcb\xc5\x8a\x27\x3c\xca\x84\xb5\xf2\xe7\xa5\x94\xd3\x7c\xdb\xd3\x8d\xb2\x22\xbb\xbb\x6b\xbb\xbb\xd8\x9c\xc8\x97\x49\x16\xa4\xe9\xca\x28\x01\x41\xb4\x08\x45\xbe\x43\x9c\x94\x61\x17\xdc\xa5\xb5\x45\x2b\xad\xc3\xfd\xe4\x61\x37\xad\xbd\x64\x49\xc7\x48\x57\xc2\xaf\xbc\x6e\x49\xd7\x59\xdd\xa5\xea\xcb\x51\xe6\x7a\xe0\x17\xe0\xf3\x57\xa3\xa6\xa4\x72\x29\xb2\x60\x29\x54\xdf\xe7\x22\x49\xa8\xd6\xb4\xba\x99\x4b\x12\x55\x2e\x60\xa8\x19\x15\x51\xba\x4a\x84\xab\x96\x68\x44\x24\x6b\x68\xd7\xa3\xa6\xbb\x4c\x1b\x93\x84\x21\x96\x2e\x79\x18\x8a\x84\x79\xf7\xab\xe8\x81\x2c\x4b\x9c\xa9\x63\x93\x85\x3c\x59\xd8\x89\xa6\x1d\xaf\x5f\xaf\x35\xb2\x54\x08\x5a\x78\xb1\x4c\xd3\x40\x2d\x38\x33\x6c\xb4\xe0\x8a\xfb\x4b\x7b\x34\xf9\xb9\x4e\x46\xbf\x23\x7c\x3d\x1f\x24\x7e\x9b\x0b\xde\xac\x61\x53\xfe\x9c\x5a\xfd\xc4\x53\x0b\x81\xac\xde\xa9\xc6\x64\x53\xc2\xd1\x72\x3f\x4f\xd5\x04\x7b\xab\x50\x97\x00\xcf\x97\xcd\xc1\xa7\xbf\x1a\xa4\xea\x53\xbf\xaa\x06\xfa\x09\xb9\xeb\xd5\xeb\xcd\xba\xec\x96\x8a\xcc\x2e\xdc\x2c\xe1\x81\x3a\xb9\x23\xf6\xa4\x66\xd8\x7e\xd3\xae\x02\xf5\x35\xbb\x97\x5c\x5d\xef\xc4\x96\x57\x57\x27\xa6\x70\xc8\xa6\x60\xd1\x0b\xe4\x95\x2f\xbd\xf4\x8a\xf6\x8a\x3a\xa1\xaf\x68\xb5\x5f\xf2\x38\xb8\xe2\x71\x70\xe9\xc9\x48\xa9\x7c\xe9\xd5\x1f\x5c\xcd\x6e\xf7\x83\x73\xda\xd6\x19\x0f\xc2\x94\x8e\xa4\xa2\x00\x41\xfe\x1a\x07\x0e\xf7\x5a\xe7\x7b\x1c\xf7\x8f\x74\xdc\xba\x2b\x29\xa5\xca\xeb\xeb\x73\xa3\x44\x8d\x38\x0e\x03\x7d\xc0\xb8\x53\x52\xfb\xc1\x04\x29\xbb\x0f\x16\xf7\xe4\x1e\xe3\xc9\xe5\x52\x44\x54\xf4\xbe\x38\x73\xa5\xdf\x32\x86\x01\x35\xa4\xf9\x9b\xd4\xa1\x9d\x88\xaa\x1f\x56\xdf\x1d\xdf\x8c\x7e\xdc\x34\x36\x77\x3b\xad\x5f\x83\xa5\x50\x17\x96\x35\x58\xa8\xa1\xbd\xd2\x77\xa9\x16\xf9\xe8\xd2\xa0\x43\x4b\xc7\x93\xfa\xd6\x02\x60\xe5\x14\x1e\x86\x17\x2c\x11\x0b\x9e\xf8\xc4\x51\xd5\x29\x1f\x3d\x33\xee\x65\xc1\x63\x90\x3d\xab\x9b\x2d\x88\xec\xff\x3b\xf4\x7c\xc9\x74\xf3\xbe\x08\x4f\x46\xfe\x16\x1b\x55\x47\xc7\xe6\x3f\xb4\xe2\x28\x13\x4b\x8e\x6d\x7c\xb0\xfe\xde\x1d\x5d\xad\x7a\xf2\x74\xd9\x7e\x23\x33\x65\xf7\x62\xa9\x2f\x53\x8d\x00\x68\x40\x7c\xff\xc2\x5c\x57\x17\xe6\xbb\x4b\xf9\x48\x12\x59\x41\x95\x64\x5f\x74\xd9\xe1\xf5\xe5\x7c\xe8\xa0\x55\x10\x8b\xc6\xf6\x3c\xf3\xaf\x7f\xd6\x62\x56\x69\xd7\xb9\xa7\xf4\x3b\x99\x27\x43\xa5\x3d\x99\x55\xb8\x6e\x4a\xdf\xc1\xa8\xf4\xf3\x9a\x52\xbd\x73\x2f\xd9\xf5\x82\x6e\x9d\x66\x3a\x71\x5c\xd6\x09\xb5\x6c\x98\x51\x3d\x72\xb3\x1b\xd9\xc0\x5c\x0b\x73\x2d\xcc\xb5\x30\xd7\x4e\xcd\x5c\x5b\xcf\xd7\xaa\xd2\x64\x7b\x34\x37\x38\x78\x2b\xd6\x9e\xa8\x3e\xbd\x15\x8f\x66\x63\x3f\xc0\x3f\xb0\xd2\xc6\x7c\xb4\x11\xf9\x5a\x54\x16\x02\xa5\xa8\x93\x0c\xcf\xee\xc4\x5c\x3b\x03\x38\x7b\x4c\x2e\x4a\x98\xd3\x8b\x96\x4e\xc1\x3f\x33\x92\xd1\x65\x24\x16\x9c\x16\xa8\x11\xf7\x8b\x7e\x9c\xda\x36\xeb\xb6\x86\x91\x12\x83\xe5\x52\xf8\x01\xcf\x44\xf8\x9c\x53\xfa\xfc\xca\x0d\xc2\x0b\x23\xce\xd3\xa0\xb3\x45\xc2\x3d\xda\x35\x81\xf4\x9d\x40\x90\x5f\xda\xe4\x02\x61\x57\xe9\x2a\x55\x8d\x2c\x4e\x17\x57\x4f\xda\x0e\x99\x1f\x99\xeb\x33\xd0\xbe\x62\xa6\xdb\xa9\xe3\x3f\x2a\xda\xd8\x60\x9a\xa9\xcd\xb7\xd4\xe4\x2a\x15\x69\x8f\x92\x34\x94\xe5\x7f\x08\x5e\xa9\x37\x2e\xdb\x11\xcb\xd1\x96\x3f\x60\x0b\x60\x0b\x60\x0b\x60\x0b\x60\x4b\x67\xb0\xa5\xe6\x5d\xb0\x01\x5c\x8e\x77\x2d\xbe\x17\x71\x22\x94\x50\xe2\xff\xc4\xe2\x50\xf0\x54\xb8\x23\xe8\x36\x91\x31\x5f\x90\x74\x74\x2b\xc3\xc0\x7b\x2e\xb9\xf6\xd9\x45\xe7\xbb\x17\xa8\x65\xf7\x76\xf6\xa7\x19\xfb\xa2\xcf\x33\x2d\xba\xc4\x22\x52\x9b\x25\xbf\x53\x05\x93\x49\x7c\xcf\x23\xeb\x6a\x98\xac\xc4\xd5\x9c\x87\x56\x57\xfe\x76\xa6\x3f\xfe\x76\xc6\xe6\x41\xc4\xc3\xe0\xdf\xf6\x22\xb9\x13\x8c\xfb\x64\x81\x97\x57\xda\x3a\xe9\xe7\x6a\x98\x7e\xfd\x79\x9a\x3f\xa4\xf5\xd3\x19\xbb\x09\xe8\x70\x2c\x34\x5d\x26\x9b\x7d\xcb\x79\x4b\xa6\xd5\x63\xd2\x51\x64\x76\xdf\x64\x42\x75\x0f\xde\xdb\xbe\x6f\x15\x79\x1a\x45\xa7\x1e\xa4\x98\x51\xd7\xd5\x86\xbd\x97\x4f\x6c\xc1\x93\x3b\xbe\x28\x19\x27\x9d\x52\x23\x92\xb9\x4c\x96\x6a\x4e\x2a\xc7\xeb\xd3\x5a\x8f\xb6\x0f\x17\x09\xbd\x56\x62\x8d\xf5\xd8\x06\x4a\x9a\xf4\x02\x3f\x57\x85\x49\x56\xd0\x41\xc4\x76\x8e\xd5\x65\x6d\x6e\x52\x2b\x0d\xcc\x0a\x93\x69\xef\x11\x07\x3c\x9c\xdb\x6c\xf9\xc7\x66\xec\xda\xf3\x44\xac\x23\x9f\x8a\x9a\xdd\xb9\xee\xc3\x39\xbb\x34\x0b\xb0\xbc\x40\xd3\x9f\xd9\xf9\x2f\xdc\x7b\x58\x24\x72\x15\xf9\xea\x5b\xe4\x82\x4a\x5f\x5a\x1b\x38\x2d\x42\x1a\xf9\xb8\xfc\x12\xdb\x83\x3b\xf7\xa6\x9f\xd9\xf9\xaf\x32\x11\x85\xd7\x32\x8f\xa7\x1e\xf7\x55\xef\xcd\xf8\x68\x0f\x65\x7a\x5f\xaa\x55\xcf\x8d\x17\xce\xdd\x3b\x9a\x2c\xc8\x78\x7d\xb9\xf7\x23\x71\x4e\x98\x8c\xd6\x9b\x87\x5d\x74\xb4\xaf\x59\x00\x27\xed\x6c\x7e\x37\x59\xe9\xf1\x6c\x1b\x7d\x52\xd3\x7a\x83\xb5\x83\x9c\xbe\x54\xfe\xa9\x24\x75\x08\x12\x3d\x10\xd3\x99\x00\xfd\x7a\x7c\x6e\x52\x91\x55\xfa\x2e\xce\xe5\xa4\xe3\x45\x59\x35\x0c\xb0\xea\x39\xf2\xb2\x51\xd0\x65\x13\x88\x8d\x20\xb1\xd3\x09\x12\xab\x77\x8b\xec\x0b\x14\x3b\x9e\xba\x05\x1f\x04\xf8\x20\xc0\x07\x01\x3e\x08\xf0\x41\xa8\x3a\x7c\x01\xb7\x47\x34\x22\xe0\x9d\xe0\x9d\xe0\x9d\xe0\x9d\xe0\x9d\xe0\x9d\xd3\xe2\x9d\x40\x10\x40\x10\x40\x10\x40\x10\x9d\x23\x88\x03\x30\xfd\x40\xc3\xb8\xea\x0d\xe1\x66\x28\xd7\xa4\xd2\x6f\x6f\x7d\x00\x09\xf8\xc8\x88\x8f\xdc\x7b\x15\x5f\x1b\x0a\x15\x6a\x90\x76\x6f\x2c\xa1\xf8\xaf\xd6\x66\xaa\x8b\xea\x93\xa4\xa6\x30\x7e\x08\xed\xd2\xcf\xb4\xc7\xbb\x06\x9a\xe9\x7c\xa3\x6b\xf5\x4e\x00\xc4\x11\x4d\x20\x8e\x08\x59\xcf\x91\xf5\xbc\xa2\x31\xc3\x17\x55\xc6\x91\x01\xbd\x79\xab\x7f\xd8\xdb\x6a\xed\x19\x3b\xa8\x66\x4f\x49\x26\x24\x11\x64\xa0\x32\xe1\x2b\x56\x27\x3b\x86\x29\xd5\x7a\xa4\x24\x19\x07\x49\x56\xc5\xc4\x18\x48\x87\x01\x51\x6a\x0a\xa2\x14\x02\x90\x4f\x28\x00\x19\x91\x56\x88\xb4\x42\xa4\x15\x22\xad\xa0\x05\x6e\xdb\x45\x03\xd3\x02\xa1\x4f\xb1\x7e\xf5\x29\xa3\x7a\x0c\x54\xa3\x72\x96\xe7\xd6\x63\x2f\x12\xc1\xfd\x35\xd1\xea\x00\x45\x49\x3d\xdd\x59\xc0\x45\x41\xe0\x10\xdf\xc9\x8d\xea\x4e\xfd\x8b\x7b\xd9\x8c\xb1\x1b\xf5\x5f\xfb\xf7\x25\x0f\xc8\x22\x97\x32\x2f\x5c\xa5\x99\x48\xf2\x6b\xc4\x14\x0e\x0e\x83\x07\xc1\xce\x5d\xbd\xad\x73\x25\x2d\x5a\x09\x67\xc6\x6e\x43\x1e\x45\xa6\xe2\x33\xc9\x20\x3c\xd4\x62\xcf\xdb\x1f\x9b\x9c\xcb\xd4\xc6\x9e\xa4\x03\x37\x68\x4e\xb8\xbe\xb3\xc3\xa7\x7a\xca\x6e\xf4\x88\xa9\x1b\x21\x4e\xed\xe8\x18\x4f\x23\xaa\xc2\xec\xf1\xa8\x20\x27\x3f\x77\x3c\x50\xaa\x31\xd3\x05\xba\x13\xbf\xb6\xa6\x74\xfe\x2f\xc4\x60\xcd\x69\x2f\x41\xac\x84\x4b\x8c\xd9\x63\x77\x2b\x02\x5b\x62\xfa\xbe\x1a\xa8\xd2\x7f\x4b\x9f\xec\x20\x7f\x1d\xa7\x69\x1e\x2f\x38\x26\xf7\x8b\x5a\x17\xf8\xfa\xd9\x74\x49\xcf\xfe\x71\xf7\x31\xb5\x14\xc9\x42\xd4\xfa\x66\x9a\x25\x3c\x13\x8b\xc0\xbb\xac\xff\x0c\x55\xd1\x37\xdf\xa4\x03\xb1\x8e\x80\x11\xf3\x24\x0b\x28\x3a\x4a\xbb\x0a\x35\x17\x36\xe8\x87\xfb\x36\xca\x76\x85\xbb\x77\x98\x6c\x6f\xcb\x3e\x3b\x0c\xa6\xda\x89\x9b\x6a\x4f\x87\x7a\xaf\x45\x1a\xd8\xcd\xa5\xa3\x61\xd4\x69\x93\x47\x58\xbf\xde\x72\x12\xbd\x21\x43\x95\x0e\x81\xe5\x21\x3d\x19\xc9\xe8\x52\x3f\x4d\xdf\x20\x5b\x71\xca\x5e\xff\x35\x95\xd1\xad\x0e\x34\xfe\xa8\xce\x3c\xf3\xef\x2f\xf6\x24\xcc\xff\xf8\x66\x48\x38\xbe\xfe\xba\xf9\x55\x26\x1e\x19\xd3\x17\x92\x26\x5f\xb2\x6f\x67\x73\xf5\xb7\x6f\x67\xec\xba\x34\x9a\xe4\xc7\xac\x2d\xdf\x24\xf4\x9b\x8d\x7a\xc9\x3d\x9a\x00\x0a\x55\x0d\x03\xcf\xd8\xf2\x48\x47\x90\x4f\x66\x6e\x75\x28\x67\x2c\x64\x1c\x8a\x19\xd3\xbf\x49\x11\xea\x76\x4d\x91\x37\x71\xe5\x44\xb8\x9f\x6f\x32\xbc\xea\x87\xa0\x2a\xe8\x0f\xa0\x2a\xf4\x89\xde\xd7\x3c\x70\x07\xaa\x2c\xac\x5a\xb7\x14\xc5\x21\xf7\x5e\x20\xbf\x99\x17\x4c\x55\x82\x83\xc3\x22\x44\xb7\x13\x12\xdd\x06\x24\x21\xe1\x22\x77\x9f\xc0\x61\xb1\xb2\xd5\x93\x12\x3f\x56\x83\xb5\x54\xbe\x62\x07\x38\xfe\x5d\xa5\x3a\xe5\x5b\xc1\xff\xaf\x1b\xba\xa5\x7f\xc7\x5e\x4b\x2d\x73\x2e\x93\xb7\x0e\x07\x0f\xb6\x70\xc5\x03\x80\x0d\x80\x0d\x80\x0d\x3d\xc2\x86\x16\xce\xfe\x1d\xd8\xa1\xe2\xf0\x1f\xa5\xea\x0a\xf8\x00\x0d\xf6\xf4\x34\x58\xc0\x87\x36\xd7\x0d\xe0\x03\x6c\x16\x50\x1d\x00\x1f\xe8\x8b\x9d\xc1\x87\x56\x74\xf9\x1d\x18\x62\x2a\x12\x1d\x60\x04\x44\xb9\x13\x12\xe5\x06\x24\x31\xe1\x62\x77\x9f\x00\x46\x54\xb6\x7a\x52\xe2\xc8\xd8\x60\x84\xf4\xbb\x25\x0e\x7b\x6a\x99\x48\x7f\x87\x64\x52\x28\x5f\x22\xfd\x5f\x65\x72\x1d\x86\x2e\x62\x65\x10\x88\x61\xeb\x03\xa7\x9a\xa0\x4e\xfa\xc8\x49\x57\xf1\xb5\x97\xef\x7c\xe9\x1f\x0f\x5b\xa0\xb0\xcf\x84\x0b\xfb\xec\x67\x30\xfb\x8a\xfa\xec\xb4\xf3\xb4\xc0\x97\x50\xca\x07\xa5\x7c\x50\xca\x07\xa5\x7c\xa6\x56\xca\x67\xff\xc9\x5b\x59\xc6\xa7\x63\x9a\x7f\xb4\xe2\x3d\xfb\xbb\xbf\xbd\x70\xcf\x90\xc7\xe0\x90\x72\x3d\xfb\xc7\x60\x7b\xa9\x9e\x8e\xc7\x00\x05\x7a\x50\xa0\x07\x05\x7a\x50\xa0\x07\x05\x7a\x3a\x2b\xd0\x53\xe3\xf4\xdf\x28\xce\xb3\x33\x41\xde\x09\x39\xf3\xd5\xeb\xcd\x84\x0b\x0c\xed\x1f\xee\x5d\xc5\x85\x8e\x3b\xee\x28\x29\xd4\xc9\x8c\x6e\x96\x13\xea\x78\x5a\x7b\x2d\x22\xb4\x7f\x78\x76\x14\x10\xea\xfa\xd8\x1c\x6a\xd9\xa0\xfd\x83\x56\x41\x23\x1a\xdb\xf3\xcc\xbf\xfe\xb9\x8d\x2c\x65\x62\x19\x93\x45\xa2\x5f\xc2\xf4\xd5\x34\xa3\x2e\x69\xb2\xdf\x07\x71\x5a\x1f\xf9\x41\x12\x27\x3b\x5d\x20\x4f\x15\x5f\x6b\x83\x3c\x55\xec\x1f\x10\x28\x10\x28\x10\x28\x10\x28\x10\x28\x10\x28\x10\x28\x10\x28\x10\x28\x10\x28\x10\x28\x10\x28\x10\x28\x10\x28\x10\x28\x10\xa8\x03\x8e\x7d\x10\x28\x10\x28\x10\xa8\x71\xcc\x28\x08\x54\x79\x78\x40\xa0\x86\x4c\xa0\x12\xe1\x98\x87\x92\x37\x12\xa9\x6e\xfb\x3e\x59\xd4\xe7\xbc\x41\xef\x5c\x83\x6a\x51\xa9\xca\x27\xc1\xa7\xd6\x67\x63\x78\x7c\xaa\x72\xe2\x40\xaa\x2a\xbe\xf6\x62\x52\xb5\x6f\x77\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x81\x59\x1d\x70\xec\x83\x59\x81\x59\x81\x59\x8d\x63\x46\xc1\xac\xca\xc3\x03\x66\x35\x6c\x66\xa5\xdb\xf9\x3f\x2b\x99\xf1\x7e\x59\x95\x6e\xc8\x7f\xaa\x86\xd4\x64\x54\x85\x27\xc0\xa6\xd6\x47\x7f\x88\x6c\xaa\x30\x61\x60\x52\x15\x5f\x6b\x81\x49\x55\xef\x22\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\x28\xb0\xa8\x03\x8e\x7d\xb0\x28\xb0\x28\xb0\xa8\x71\xcc\x28\x58\x54\x79\x78\xc0\xa2\x86\xcc\xa2\x52\xe1\x25\x22\xeb\x13\x42\x7d\xa1\x16\xd4\xa2\x4f\xfa\xab\xc0\x4e\xeb\xe3\x3d\x3c\xec\xa4\x67\x0a\xbc\xa9\xe2\x6b\x2f\xe6\x4d\x1b\x1b\x06\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\xe9\x80\x63\x1f\xa0\x09\xa0\x09\xa0\x69\x1c\x33\x0a\xd0\x54\x1e\x1e\x80\xa6\x61\x83\xa6\xe4\x31\xf0\x04\xf7\x3c\x25\x32\xf7\x0b\x9c\xa8\x25\xd7\xba\x25\x35\xc1\x53\xf1\x11\x00\xa8\xf5\xf1\x1f\x22\x80\x2a\xce\x18\x40\x54\xc5\xd7\x5a\x00\x51\x5b\x36\x12\x80\x14\x80\x14\x80\x14\x80\x14\x80\x14\x80\x14\x80\x14\x80\x14\x80\x14\x80\x14\x80\x14\x80\x14\x80\x14\x80\x14\x80\x14\x80\xd4\x01\xc7\x3e\x80\x14\x80\x14\x80\xd4\x38\x66\x14\x40\xaa\x3c\x3c\x00\x52\x23\x00\x52\x03\x20\x51\x87\x20\x28\xb0\xa7\xf5\x11\x1f\x2c\x7b\x02\x74\xaa\xf8\x5a\x5b\xd0\x09\xb4\x09\xb4\x09\xb4\x09\xb4\x09\xb4\x09\xb4\x09\xb4\x09\xb4\xa9\xa5\xd3\x16\xb4\x09\xb4\x09\xb4\x09\xb4\x09\xb4\x09\xb4\x09\xb4\x09\xb4\x09\xb4\x09\xb4\x09\xb4\x69\x90\x33\x0a\xda\x54\x1e\x1e\xd0\xa6\x21\xd3\x26\xfa\xa1\x2b\x6d\x18\x5a\xf2\xb8\x5b\xea\x64\x04\xbc\xc8\x0f\x1e\x03\x7f\xc5\xc3\xe2\xb4\x70\xa7\xc4\xbd\xa3\xc6\x7c\xe4\xf1\x8c\xf9\x22\x4e\x84\xa7\xee\xeb\x9f\x9c\x94\x7d\x4e\x6f\x39\xcf\x4d\x76\x25\x1b\x8c\xe3\x54\x2c\x88\xd2\x4c\xf0\xd2\x75\xb8\x4e\xb1\xe8\x4d\x1a\x63\xb9\x1f\xfd\x2d\x48\x11\x48\xb5\x31\x91\x83\x81\x59\x4b\xee\xdd\x07\x91\x48\x9e\x67\xf1\xc3\x42\xfd\x21\x9d\x29\x3d\x74\xf6\xf8\x76\x46\xbb\xfd\x46\x29\x74\xa7\x48\xb7\x68\xf2\xba\x45\x5c\x6e\x8f\x00\x72\x01\x72\x01\x72\x01\x72\x01\x72\x01\x72\x01\x72\x01\x72\xb5\x74\xda\x02\x72\x01\x72\x01\x72\x01\x72\x01\x72\x01\x72\x01\x72\x01\x72\x01\x72\x01\x72\x01\x72\x0d\x72\x46\x01\xb9\xca\xc3\x03\xc8\x35\x7c\xc8\x25\x22\x3f\x96\x41\xd7\x39\xfe\xea\x31\xae\x1b\xdb\x96\x63\x32\x2e\xf7\xa3\x60\x5c\x55\x13\x09\xc6\x05\xc6\x75\xe6\xf6\x08\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x57\x4b\xa7\x2d\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\xd7\x20\x67\x14\x8c\xab\x3c\x3c\x60\x5c\x23\x60\x5c\x64\x28\x1e\x02\xe0\x52\x0d\x39\x2a\xdc\x52\x3f\x08\xb0\x55\x35\x81\x00\x5b\x00\x5b\x67\x7a\x6c\x01\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x06\x00\x74\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\xca\xbd\x01\xd4\x02\xd4\x02\xd4\x02\xd4\x02\xd4\x3a\x5d\xa8\x45\x8b\x23\xa1\x21\x1a\x00\xd9\xfa\x4d\xb5\xe6\xb3\xfa\xe0\x98\x78\x2b\xff\x55\x30\xae\xaa\xa9\x04\xe3\x02\xe3\x3a\xcb\x37\x09\x40\x17\x40\x17\x40\x17\x40\x17\x40\x17\x40\x17\x40\x17\x40\x57\x4b\xa7\x2d\x40\x17\x40\x17\x40\x17\x40\x17\x40\x17\x40\x17\x40\x17\x40\x17\x40\x17\x40\x17\x40\xd7\x20\x67\x14\xa0\xab\x3c\x3c\x00\x5d\xc3\x07\x5d\x51\x0e\x74\xfa\xe7\x5c\x8e\x2e\x1d\x13\x73\xb9\x1f\xfd\x6d\x0d\x14\x80\x6a\x81\x6a\xb1\xd3\xa4\x5a\x6e\x4f\x00\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\xb5\x74\xda\x02\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\x01\x6a\x0d\x72\x46\x01\xb5\xca\xc3\x03\xa8\x35\x26\xa8\x75\xf5\xbf\xee\xdf\xff\xef\x4a\xdb\x8b\x96\x3c\x1e\x02\xeb\x7a\x47\x8d\xf9\xc8\xe3\x5e\x58\x97\xef\x7e\x1e\xd4\x0b\xd4\x0b\xd4\x8b\x36\x8a\xdb\x13\xa0\x5e\xa0\x5e\xa0\x5e\xa0\x5e\xa0\x5e\xa0\x5e\xa0\x5e\xa0\x5e\x2d\x9d\xb6\xa0\x5e\xa0\x5e\xa0\x5e\xa0\x5e\xa0\x5e\xa0\x5e\xa0\x5e\x27\x47\xbd\x4c\xaf\x55\x03\x68\x2a\xf9\x2a\xbb\x67\xa9\x27\x63\x71\xc1\xd2\x95\x77\xaf\x66\x9e\xf4\x15\xc1\x97\xda\x7e\x1b\x27\x92\x46\xb9\xaa\x6b\x31\xcf\xee\xab\x7b\x16\x55\x3b\xef\xaa\xf5\xa7\x24\x7d\xd3\xfa\x23\xde\x77\xc0\x7d\xc0\x7d\xc0\x7d\xe3\x98\x51\xe0\xbe\xf2\xf0\x00\xf7\x4d\x00\xf7\xe9\x3f\xff\xbf\x23\x50\xbf\x22\xea\x8b\xac\x9c\x23\xe7\xec\x21\x88\xfc\x96\x91\xdf\x45\xae\xd7\x90\xee\x66\x64\x60\xa5\x1a\xe5\x0a\xdb\x79\x49\xd1\x2f\xbc\xbb\x39\x30\x04\x2c\x04\x2c\x1c\x05\x2c\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\xac\x7b\xfa\x1f\x1d\x14\x12\x21\x34\x23\xb0\xc5\xd4\x50\x87\x01\x0e\x05\xff\x81\x7b\x82\x7b\x82\x7b\x82\x7b\x0e\x7a\x46\xc1\x3d\xcb\xc3\x03\xee\x39\x5a\xee\x29\x22\x3f\x96\x41\x94\x0d\x21\xca\xf1\xc6\xb6\xa5\x9f\x28\x47\xf7\xf3\x88\x72\x04\xb8\x1c\x0d\xb8\xec\x36\xca\xd1\xed\x09\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\xcb\x96\x4e\x5b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\xcb\x93\x83\x97\xa0\x7d\xa0\x7d\xa0\x7d\xa0\x7d\x83\x9e\x51\xd0\xbe\xf2\xf0\x80\xf6\x8d\x9f\xf6\x0d\x24\xc8\xb1\x5d\xe2\x77\xe4\x20\xc7\x2a\x36\x02\x56\x08\x56\xb8\xf6\xd6\x01\xb1\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\x42\x70\xc2\xba\xa7\x7f\xaf\x41\x8e\x5b\x4c\x0d\x08\x72\xac\xee\x33\xb0\x27\xb0\x27\xb0\x27\xb0\x27\xb0\x27\xb0\xe7\xc9\x62\x4f\xe2\x00\x43\x88\x70\x54\x0d\xe9\x29\xba\x51\xfd\x34\x22\x1b\x41\x2b\x47\x43\x2b\x3b\x8e\x6c\xa4\xb1\x05\xad\x04\xad\x04\xad\x04\xad\x04\xad\x04\xad\x04\xad\x04\xad\x1c\x00\xa9\x03\xad\x04\xad\x04\xad\x04\xad\x04\xad\x04\xad\x04\xad\x1c\x23\xad\x04\xde\x03\xde\x03\xde\x03\xde\x1b\xf4\x8c\x02\xef\x95\x87\x07\x78\x6f\xe4\x78\x6f\x28\x21\x8d\xad\x21\xbe\x63\x87\x33\xae\x01\x11\xc0\x41\xc0\xc1\xb5\xb7\x0e\x08\x0e\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x0e\x12\x0c\x96\xc2\x18\x37\xcd\x0c\x08\x61\xac\xee\x33\x18\x27\x18\x27\x18\x27\x18\x27\x18\x27\x18\xe7\xa9\x32\x4e\x5a\x33\x09\x8d\xdc\x00\xe2\x18\x7f\x53\xad\xf9\xac\x3e\xe8\x27\x98\x31\xff\x7d\x44\x34\x02\x5a\x8e\x06\x5a\x76\x1b\xd1\x98\x6f\x0a\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\xcb\x96\x4e\x5b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\xcb\x93\xa3\x97\x40\x7e\x40\x7e\x40\x7e\x40\x7e\x83\x9e\x51\x20\xbf\xf2\xf0\x00\xf9\x4d\x01\xf9\x0d\x24\xb6\xb1\x65\xec\x77\xe4\x00\xc7\x4a\x3e\x02\x60\x08\x60\xb8\xf6\xd6\x01\x01\x43\xc0\x42\xc0\x42\xc0\x42\x06\x58\x08\x58\x08\x58\x08\x58\x08\x58\x08\x58\x08\x58\x08\x58\x08\x58\x08\x58\x08\x58\x08\x58\x08\x58\x58\xf7\xf4\xef\x35\xd4\x71\x9b\xad\x01\xf1\x8e\xd5\x7d\x06\xfc\x04\xfc\x04\xfc\x04\xfc\x04\xfc\x04\xfc\x3c\x55\xf8\x19\xab\xc6\x93\x4c\xf8\x28\xc3\xd5\x52\x78\x21\x0f\x96\x43\x08\x7d\xbc\x75\x0d\xfb\x9d\x1a\xf6\x4e\x35\xac\x9f\x28\xc8\xca\xa6\x20\x20\x12\x7c\x73\x34\x7c\xb3\xdb\x80\xc8\xca\xfd\x01\xdc\x09\xdc\x09\xdc\x09\xdc\x09\xdc\x09\xdc\x09\xdc\x09\xdc\xd9\xd2\x69\x0b\xdc\x09\xdc\x09\xdc\x09\xdc\x09\xdc\x09\xdc\x09\xdc\x79\x72\xb8\x13\x78\x10\x78\x10\x78\x10\x78\x70\xd0\x33\x0a\x3c\x58\x1e\x1e\xe0\xc1\x89\xe1\xc1\x81\x84\x49\x76\x87\x08\x8f\x1c\x31\xb9\x0f\xa0\x00\x2e\x02\x2e\xae\xbd\x75\x40\x70\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x11\x60\x71\x14\x60\xb1\x18\x47\x59\xc3\xec\x80\x90\xca\xea\x3e\x83\x99\x82\x99\x82\x99\x82\x99\x82\x99\x82\x99\x9e\x2c\x33\x95\xfe\x20\x02\x28\xa5\xdf\x53\xb8\xa4\xf4\x11\x1c\x09\x7e\x39\x1a\x7e\xd9\x71\x70\xa4\xf4\x41\x2c\x41\x2c\x41\x2c\x41\x2c\x41\x2c\x41\x2c\x41\x2c\x41\x2c\x5b\x3a\x6d\x41\x2c\x41\x2c\x41\x2c\x41\x2c\x41\x2c\x41\x2c\x41\x2c\x4f\x8e\x58\x02\xeb\x01\xeb\x01\xeb\x01\xeb\x0d\x7a\x46\x81\xf5\xca\xc3\x03\xac\x37\x6a\xac\x37\x94\xc0\xc7\x96\xd0\xde\xb1\xc3\x1c\x4b\x28\x04\x50\x10\x50\x70\xed\xad\x03\x82\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x00\x82\x03\x04\x82\xa5\x10\xc6\x75\x23\x03\x02\x16\xab\xfb\x0c\xb2\x09\xb2\x09\xb2\x09\xb2\x09\xb2\x09\xb2\x79\xc2\x64\x33\x13\xcb\x98\x0c\x4e\xc3\x08\x5c\xfc\x6a\x9a\xd3\x5b\x00\xa3\x6d\x00\x02\x19\xc1\x2c\x47\xc3\x2c\x3b\x0f\x64\xb4\xbb\x02\xfc\x12\xfc\x12\xfc\x12\xfc\x12\xfc\x12\xfc\x12\xfc\x12\xfc\xb2\xa5\xd3\x16\xfc\x12\xfc\x12\xfc\x12\xfc\x12\xfc\x12\xfc\x12\xfc\xf2\xe4\xf8\x25\xb0\x1f\xb0\x1f\xb0\x1f\xb0\xdf\xa0\x67\x14\xd8\xaf\x3c\x3c\xc0\x7e\x93\xc0\x7e\xc3\x09\x6c\x6c\x15\xfd\x1d\x3f\xc0\xb1\x02\x91\x00\x1a\x02\x1a\xae\xbd\x75\x40\xd0\x10\xc0\x10\xc0\x10\xc0\x50\x7f\x08\x60\x08\x60\x08\x60\x08\x60\x08\x60\x08\x60\x08\x60\x08\x60\x08\x60\x08\x60\x08\x60\x08\x60\x08\x60\x38\x48\x60\xb8\x16\xf0\x58\x6d\x6c\x40\xe0\x63\x75\x9f\x41\x40\x41\x40\x41\x40\x41\x40\x41\x40\x41\x40\x4f\x95\x80\x26\xc2\x81\x2e\x25\x56\x26\x52\x09\x75\x43\x08\x81\xfc\x9c\x37\xec\x9d\x6b\x58\x3f\xc1\x90\x95\x4d\x41\x58\x24\x08\xe7\x68\x08\x67\xb7\x61\x91\x95\xfb\x03\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\xb3\xa5\xd3\x16\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\xf3\xe4\x78\x27\xf0\x20\xf0\x20\xf0\x20\xf0\xe0\xa0\x67\x14\x78\xb0\x3c\x3c\xc0\x83\x13\xc3\x83\x03\x09\x95\xec\x0e\x11\x1e\x39\x68\x72\x1f\x40\x01\x5c\x04\x5c\x5c\x7b\xeb\x80\xe0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\x22\xc0\xe2\x28\xc0\x62\x31\x90\xb2\x86\xd9\x01\x21\x95\xd5\x7d\x06\x33\x05\x33\x05\x33\x05\x33\x05\x33\x05\x33\x3d\x5d\x66\xaa\x3b\xf1\x3f\x2b\x99\xf1\x61\x84\x52\xea\x06\xfd\xa7\x6a\x50\x5f\x21\x94\x85\x26\x20\x74\x12\x74\x73\x34\x74\xb3\xeb\xd0\xc9\xc2\xbe\x00\xd9\x04\xd9\x04\xd9\x04\xd9\x04\xd9\x04\xd9\x04\xd9\x04\xd9\x6c\xe9\xb4\x05\xd9\x04\xd9\x04\xd9\x04\xd9\x04\xd9\x04\xd9\x04\xd9\x3c\x39\xb2\x09\xfc\x07\xfc\x07\xfc\x07\xfc\x37\xe8\x19\x05\xfe\x2b\x0f\x0f\xf0\xdf\x44\xf0\xdf\x60\x42\x25\xdb\x46\x80\x47\x0f\x91\xac\x06\x25\x80\x87\x80\x87\x6b\x6f\x1d\x10\x3c\x04\x38\x04\x38\x04\x38\xb4\x1f\x02\x1c\x02\x1c\x02\x1c\x02\x1c\x02\x1c\x02\x1c\x02\x1c\x02\x1c\x02\x1c\x02\x1c\x02\x1c\x02\x1c\x02\x1c\x0e\x12\x1c\x96\x43\x22\xb7\x9a\x1b\x10\x0a\x59\xdd\x67\xb0\x50\xb0\x50\xb0\x50\xb0\x50\xb0\x50\xb0\xd0\x53\x65\xa1\xa9\xf0\x12\x91\x0d\x21\x06\xf2\x0b\xb5\xa4\x9f\xe0\x47\xfd\xdb\x88\x7a\x04\xb8\x1c\x0d\xb8\xec\x36\xea\x51\x6f\x08\x50\x4b\x50\x4b\x50\x4b\x50\x4b\x50\x4b\x50\x4b\x50\x4b\x50\xcb\x96\x4e\x5b\x50\x4b\x50\x4b\x50\x4b\x50\x4b\x50\x4b\x50\x4b\x50\xcb\x93\xa3\x96\x40\x7c\x40\x7c\x40\x7c\x40\x7c\x83\x9e\x51\x20\xbe\xf2\xf0\x00\xf1\x8d\x1d\xf1\x0d\x24\xce\xb1\x45\xcc\x77\xe4\x00\xc7\x0d\x26\x02\x40\x08\x40\xb8\xf6\xd6\x01\x01\x42\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\x41\xc0\xc1\x61\xc2\xc1\x62\x48\x63\x95\x9d\x01\xb1\x8c\xd5\x7d\x06\xe8\x04\xe8\x04\xe8\x04\xe8\x04\xe8\x04\xe8\x3c\x5d\xd0\x99\x3c\x06\x9e\xe0\x9e\xa7\x94\xa2\x61\xc4\x34\x52\x8b\xae\x75\x8b\xfa\x8a\x6d\x2c\xb6\x01\x31\x8e\x40\x98\xa3\x41\x98\x5d\xc7\x38\x16\x37\x06\x70\x26\x70\x26\x70\x26\x70\x26\x70\x26\x70\x26\x70\x26\x70\x66\x4b\xa7\x2d\x70\x26\x70\x26\x70\x26\x70\x26\x70\x26\x70\x26\x70\xe6\xc9\xe1\x4c\x20\x40\x20\x40\x20\x40\x20\xc0\x41\xcf\x28\x10\x60\x79\x78\x80\x00\xa7\x82\x00\x07\x13\xf3\xd8\x3a\x06\x3c\x7a\xec\xe3\x16\x56\x02\x80\x08\x80\xb8\xf6\xd6\x01\x01\x44\xc0\x43\xc0\x43\xc0\x43\xf7\x21\xe0\x21\xe0\x21\xe0\x21\xe0\x21\xe0\x21\xe0\x21\xe0\x21\xe0\x21\xe0\x21\xe0\x21\xe0\x21\xe0\x21\xe0\xe1\x20\xe1\x61\x39\x16\x72\xbb\xbd\x01\x31\x91\xd5\x7d\x06\x10\x05\x10\x05\x10\x05\x10\x05\x10\x05\x10\x3d\x71\x20\x3a\xa0\x60\xc8\x5e\xa3\x20\x11\xfe\x08\x7a\x39\x1a\x7a\x79\x94\xf0\x47\xa0\x4b\xa0\x4b\xa0\x4b\xa0\x4b\xa0\x4b\xa0\x4b\xa0\x4b\xa0\xcb\x96\x4e\x5b\xa0\x4b\xa0\x4b\xa0\x4b\xa0\x4b\xa0\x4b\xa0\x4b\xa0\xcb\x93\x43\x97\xc0\x7c\xc0\x7c\xc0\x7c\xc0\x7c\x83\x9e\x51\x60\xbe\xf2\xf0\x00\xf3\x8d\x1e\xf3\x0d\x2b\xe0\x71\xc4\x91\x8e\x80\x84\x80\x84\xa3\x80\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x00\x84\x03\x05\x84\x15\xb1\x8d\x08\x6a\x04\xed\x04\xed\x1c\x08\x1b\x03\xed\x04\xed\x04\xed\x04\xed\x5c\x1b\xb4\x9e\x69\x67\xef\x60\xd3\x71\xc2\x11\xa2\x4d\x20\x4d\x20\xcd\x13\x47\x9a\x55\x7b\x01\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\xf3\x80\x63\xbf\x08\x35\xb7\x98\x1a\xc6\x84\x35\x41\xf7\x40\xf7\x40\xf7\xc6\x31\xa3\xa0\x7b\xe5\xe1\x01\xdd\x1b\x01\xdd\x93\xfe\x20\x12\x93\xfe\x5d\xfa\xc7\xcd\x4a\x2a\x7d\x24\x22\x65\x00\x72\xa3\x01\x72\xdd\x26\x22\x55\xdb\x01\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\xae\xa5\xd3\x16\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\xee\xe4\x78\x1c\x00\x16\x00\x16\x00\xd6\x38\x66\x14\x00\xab\x3c\x3c\x00\x58\x23\x01\x58\x43\x89\x4c\x6b\x0b\x62\x1d\x27\x28\xad\x6c\xf3\x07\xfe\x02\xfe\x5a\x7b\xeb\x80\xf0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\xd7\x10\xd1\x57\x29\x14\x6d\xc3\xca\x80\x28\x34\x40\xbc\xfe\x91\x0f\x20\x1e\x20\x1e\x20\x1e\x20\xde\xda\xa0\x1d\x19\xe2\xc5\xaa\x95\x24\xfd\x3c\xca\x70\xb5\x14\x5e\xc8\x83\xe5\x10\xc2\xd2\x6e\x5d\xc3\x7e\xa7\x86\xbd\x53\x0d\x3b\x66\x9c\x5a\x65\x03\x7e\x0b\xd2\xec\x57\x99\x5c\x87\xa1\x8b\x70\x4f\x41\xf2\x40\xf2\x46\x41\xf2\xba\x0d\x64\xab\xdc\x2f\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\x2d\x9d\xb6\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\xc0\x7b\x27\x87\xf7\x00\xc5\x00\xc5\x00\xc5\xc6\x31\xa3\x80\x62\xe5\xe1\x01\x14\x1b\x1f\x14\x1b\x22\x0f\xeb\x13\x85\x21\x7d\x23\xa8\x17\xa8\x57\x25\xf5\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x6a\xe9\xb4\x05\xf0\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x02\xf0\x1a\xe4\x8c\x02\x78\x95\x87\x07\xc0\x6b\x84\xc0\x6b\x20\x69\x1d\x3b\x81\x5e\x47\x49\xf1\xb8\x83\x0b\x00\x97\x01\x97\xad\xbd\x75\x40\xb8\x0c\xa8\x0c\xa8\x0c\xa8\xac\xf0\x21\x50\x19\x50\x19\x50\x19\x50\x19\x50\x19\x50\x19\x50\x19\x50\x19\x50\x19\x50\x19\x50\x19\x50\x19\x50\xd9\x20\x51\x59\x31\xf5\xe3\x6e\x8b\x03\xd2\x40\x02\x00\xf6\x8f\x8b\x00\x00\x01\x00\x01\x00\x01\x00\xd7\x06\xed\xd8\x00\x50\xfa\x83\x08\x72\x93\xfe\x51\xe3\xda\xa4\x8f\x84\x8e\x55\x93\x07\x56\x37\x0a\x56\xd7\x71\x68\x9b\xf4\x81\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x5a\x3a\x6d\x81\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x4e\x0e\xd1\x01\x66\x01\x66\x01\x66\x8d\x63\x46\x01\xb3\xca\xc3\x03\x98\x35\x0a\x98\x95\x89\x65\x4c\x76\x89\x61\x40\xad\xaf\xa6\x39\x47\x86\x5b\xf6\x67\x01\xb9\xaa\x26\x13\x90\x0b\x90\xeb\xac\xb0\x4b\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x5a\x3a\x6d\x01\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x06\x39\xa3\x80\x5d\xe5\xe1\x01\xec\x1a\x3e\xec\x4a\x84\x63\x21\x4a\xea\x48\xa4\xba\xf3\x87\x80\xbd\x3e\xe7\x0d\x7b\xe7\x1a\x76\x4c\x00\x56\xd9\x00\xa0\xb0\xaa\x09\x06\x0a\x03\x0a\x3b\xab\xdc\x2f\x80\x62\x80\x62\x80\x62\x80\x62\x80\x62\x80\x62\x80\x62\x80\x62\x2d\x9d\xb6\x80\x62\x80\x62\x80\x62\x80\x62\x80\x62\x80\x62\x80\x62\x80\x62\x80\x62\x80\x62\x80\x62\x83\x9c\x51\x40\xb1\xf2\xf0\x00\x8a\x8d\x01\x8a\xe9\xd6\xfe\xcf\x4a\x66\x7c\x18\x30\x4c\x37\xe8\x3f\x55\x83\x8e\x0b\xc1\x0a\x3f\x0c\xf8\x55\x35\xa1\x80\x5f\x80\x5f\x67\xa5\x7d\x02\xe8\x05\xe8\x05\xe8\x05\xe8\x05\xe8\x05\xe8\x05\xe8\x05\xe8\xd5\xd2\x69\x0b\xe8\x05\xe8\x05\xe8\x05\xe8\x05\xe8\x05\xe8\x05\xe8\x05\xe8\x05\xe8\x05\xe8\x05\xe8\x35\xc8\x19\x05\xf4\x2a\x0f\x0f\xa0\xd7\xf0\xa1\x57\x2a\xbc\x44\x64\x43\xa0\x5d\x5f\xa8\x25\xc7\xc4\x5c\xfa\x17\xc1\xb7\xaa\xa6\x10\x7c\x0b\x7c\xeb\x4c\x6f\x10\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\xad\x96\x4e\x5b\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\x2d\x80\xad\x41\xce\x28\xc0\x56\x79\x78\x00\xb6\xc6\x00\xb6\x92\xc7\xc0\x13\xdc\xf3\x94\xe0\x3c\x0c\xc0\x45\x2d\xba\xd6\x2d\x3a\x2e\xe8\x2a\xfe\x32\x80\x57\xd5\x94\x02\x78\x01\x78\x9d\x95\x37\x0a\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x57\x4b\xa7\x2d\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\x17\xc0\xd7\x20\x67\x14\xe0\xab\x3c\x3c\x00\x5f\xa3\x01\x5f\x03\x22\x5e\x3d\xa0\x2e\x30\xae\xaa\x49\x04\xe3\x02\xe3\xb2\x8c\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\xab\xa5\xd3\x16\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x6b\x90\x33\x0a\xb8\x55\x1e\x1e\xc0\xad\xa1\xc2\xad\xf4\xaa\x11\xcc\xea\x1a\xe6\xd4\x01\x65\x0b\x91\x15\xc4\xd9\xeb\xdb\x0f\xee\x86\xd8\xc1\xb3\x16\x22\xbb\xbe\xfd\xf0\x7b\xc5\x17\xfb\xe2\x56\xa3\xc5\x49\xd7\xb7\x1f\xfe\x9c\xc8\x55\xfc\x5b\x90\x8e\x1e\x28\xa9\x8e\x15\xbe\xfd\xaa\xf8\x8b\xe5\xed\xc2\xfd\x65\x40\xc8\x20\x11\x8b\x40\xc9\x2a\xc4\x35\xd4\x68\x05\x72\xdc\x7b\x29\x88\xe6\x32\x59\xba\x5b\x81\x33\x4d\xbb\x76\xef\xa5\xaa\xd1\xb0\x0b\x03\xbb\xab\x85\xdd\x35\xfa\x9d\x55\xb5\x42\x5a\xd8\x6a\x8f\x6f\xc7\xbd\xdb\x4a\x86\x18\x2d\x7e\x34\xd8\x6a\xbf\xbf\xbd\xbe\xfd\xf0\xb9\xea\x05\xd8\x70\x87\x6f\x38\x3b\x90\x93\xb8\xd1\xaa\x96\x4b\xd9\x67\xe2\x05\x5b\x6f\xb9\xca\x78\x16\x44\x8b\x27\x71\x77\x2f\xe5\x43\x09\x2a\x96\xdc\xa3\xb4\x35\xac\x5d\x0f\x29\xfd\x4e\xe6\xc9\x30\x14\x9e\xbd\xae\x3e\x9a\x16\xfd\x43\xb7\xe8\x5d\xb1\x45\x3b\x36\x96\x7e\xd7\x96\xbd\xf5\xce\xfd\x42\xdd\xb7\x6f\xf1\xe1\x60\xeb\x0b\x44\x0b\xff\x77\xd2\x7f\x5e\x5f\xdb\x56\xfa\xaf\xfa\xac\x93\x75\xff\x9e\x46\xe0\x53\xac\xa7\xae\xde\xaa\xdf\xbd\xdc\xe1\x16\x00\xb7\x00\xb8\x05\xc0\x2d\x60\x6a\x6e\x01\x3b\x8c\x36\xfb\x5c\x03\x76\x1b\x00\x77\x1b\x6f\x0e\x3a\x7b\xff\xa1\x06\xce\x00\x91\x0b\xf2\x22\xf6\xd4\x8a\xd2\xeb\xa0\xd4\xb7\xa2\x0b\xde\x9d\x60\xb1\x1a\xad\x34\x13\xfe\x8c\x5d\x47\x2c\x88\xf4\xc9\x22\x13\xb6\x8a\xdc\xe1\xe4\x33\x3f\x79\xfe\xbc\x8a\x98\x1f\x24\xea\x5e\x7c\x14\x6e\xc5\xab\xe3\x93\xf0\x95\xd9\xf2\x76\x6d\x98\x01\x66\xf3\x55\x42\xbb\x2c\x4e\xa4\x27\x52\xe2\x4c\xc6\xf2\x68\x56\xd9\x8c\xfd\x4e\xbf\x48\xb3\x45\x6b\xe7\x27\x76\xc9\xae\xc3\xf0\x27\xa2\x48\xbe\x3a\xa5\x57\x91\x9a\xf8\x85\x48\xdd\x92\x34\xaf\x13\x7e\x83\x89\xd2\x7d\xe9\x67\x9a\x8e\xe6\xcb\x51\x6f\x28\xb6\xfb\x73\x1c\x6d\x44\xbe\x16\x8d\xd2\x41\xc4\x52\x6d\x2b\x66\x77\x62\xae\x9d\x4e\x1d\xf7\xcb\x45\x09\x73\x7a\xd1\xd2\x59\x09\x7d\x39\xdc\x09\x16\xc9\xe8\x32\x12\x0b\x4e\x0b\xd4\x98\x95\x67\xec\xab\xbb\xb0\xb5\x0f\x80\xdb\x1a\x46\x9c\x0c\x96\x4b\xe1\x07\x3c\x13\xe1\x73\xee\x0d\x9a\x5f\xb9\x41\x78\x61\xcc\xc6\x34\xe8\x6c\x91\x70\x8f\x76\x4d\x20\x7d\x27\x10\xe4\x97\x36\xb9\xda\xda\x55\xba\x4a\x55\x23\x8b\xd3\xc5\xd5\x93\xb6\x43\xe6\x47\xe6\xfa\x0c\xb4\xaf\x98\xe9\x76\x2e\x05\x8f\x2a\xdb\xd8\x60\x9a\xa9\xcd\xb7\xd4\xe4\x2a\x53\xfc\x1e\x63\xfc\x50\x96\xff\x21\x6e\x3c\xf5\xc6\x65\xbb\x2b\xcf\xd1\x96\x3f\x9c\x7a\xe0\xd4\x03\xa7\x1e\x38\xf5\xc0\xa9\xa7\x33\xa7\x9e\x9a\x77\xc1\x86\x63\xcf\xf1\xae\xc5\xf7\x85\x58\xbe\x38\x14\x3c\x15\xee\x08\xba\x4d\x64\xcc\x17\x24\x1d\xdd\xca\x30\xf0\x9e\x4b\x21\x24\x76\xd1\xe5\xc1\x80\x6a\xd9\xbd\x9d\xfd\x69\xc6\xbe\xe8\xf3\x4c\x8b\x2e\xb1\x88\xd4\x66\xc9\xef\x54\xc1\x64\x12\xdf\xf3\xc8\x86\xb4\x24\x2b\x71\x35\xe7\xa1\xd5\x95\xbf\x9d\xe9\x8f\xbf\x9d\xb1\x79\x10\xf1\x30\xf8\xb7\xbd\x48\xee\x04\xe3\x3e\x79\x7a\xc8\x2b\x4d\xc1\xfd\x5c\x0d\xd3\xaf\x3f\x4f\xf3\x87\xb4\x7e\x3a\x63\x37\x01\x1d\x8e\x85\xa6\xcb\x64\xb3\x6f\xb9\x5f\x4f\xa6\xd5\x63\xd2\x51\x64\x76\xdf\x64\x42\x75\x0f\xde\xdb\xbe\x6f\x15\x79\xaa\x98\x7a\xbb\x8a\x19\x75\x5d\x6d\xd8\x7b\xf9\xc4\x16\x3c\xb9\xe3\x8b\x92\x15\xd3\x29\x35\x22\x99\xcb\x64\xa9\xe6\xa4\x72\xbc\x3e\xad\xf5\x68\xfb\x70\x91\xd0\x6b\x25\xd6\x58\x8f\x6d\xa0\xa4\x49\x2f\xf0\x73\x55\x98\x64\x05\x32\x4e\xb8\x39\x4e\x89\x07\xd2\xa7\x56\x1a\x98\x15\x26\xd3\xde\x23\xce\xb1\xc6\x85\x67\x95\x7f\x6c\xc6\xae\x3d\x4f\xc4\x19\xdd\x4d\x45\xcd\xee\x5c\xf7\xe1\x9c\x5d\x9a\x05\x58\x5e\xa0\xe9\xcf\xec\xfc\x17\xee\x3d\x2c\x12\xb9\x8a\x7c\xf5\x2d\x0a\x75\xa2\x2f\xad\x0d\x9c\x16\x21\x8d\x7c\x5c\x7e\x89\xed\xc1\x9d\x7b\xd3\xcf\xec\xfc\x57\x99\x88\xc2\x6b\x99\xc7\x53\x8f\xfb\xaa\xf7\x66\x7c\x74\x24\x1c\xbd\x2f\xd5\xaa\xe7\xc6\x0b\xe7\xee\x1d\x4d\x16\x64\xbc\xbe\xdc\xfb\x91\x38\x27\xec\x81\x57\x6f\x1e\x76\x79\xe1\xf5\x35\x0b\xf0\xc7\xeb\x6c\x7e\x37\x7d\xf2\x8e\x67\xdb\xe8\xd3\x3b\xaf\xde\x60\xed\xf0\xd0\x7b\xa9\xfc\x53\x89\xf4\x80\xa7\x0f\xc4\x74\x5f\x32\x9e\xad\xea\xf2\xb9\x31\x53\xe9\xc2\x1b\xb6\x44\xf2\xeb\xcb\x39\x17\x9c\xda\x08\xe8\xdf\x05\xbc\xab\x83\xfd\x6b\x22\xe1\x43\x32\x00\xb4\x9e\x4b\x44\x1b\xd3\x12\xa3\x80\x5b\xa9\x5f\xce\x99\xea\x44\x53\x64\xae\x5e\xba\x05\x98\xb7\x8d\xc9\x91\xee\xe0\x74\xd2\x1d\xd4\xbb\xa7\xf6\xa5\x3c\x38\x9e\x42\x07\x2f\x07\x78\x39\xc0\xcb\x01\x5e\x0e\xf0\x72\xa8\x3a\x7c\x81\xcf\x47\x34\x22\x20\xaa\x20\xaa\x20\xaa\x20\xaa\x20\xaa\x20\xaa\xd3\x22\xaa\x80\x1c\x80\x1c\x80\x1c\x80\x1c\x9d\x43\x8e\x03\x1c\x01\x06\x9a\x90\xa0\xde\x10\x6e\x26\x25\x78\xa9\xc5\x6d\x50\x78\x68\xeb\x03\xa7\x95\x44\x7a\x56\x8d\x43\x1e\xdf\xce\x76\x59\xf8\x4f\x24\x6c\x72\x3f\xa0\x6a\x2b\xcb\xf4\x20\xa0\x54\x83\xb4\xd4\x63\x49\x55\xf5\x6a\x6d\x46\xcf\x62\x99\xb6\x4c\xe0\xb4\xf2\xc3\x78\x53\xd8\xa6\x9f\x3f\x12\x6e\x6b\x16\x95\xaa\xa4\xe4\x20\x11\xbe\x19\xde\x9e\x0f\xa1\x56\x22\x58\x11\x45\x55\x5c\x10\x83\x8d\xa2\x22\xfb\xc8\x47\x1e\xf1\x85\x48\xb4\xa5\x4f\xb5\x8a\xf1\x34\x95\x5e\x40\xaa\xab\xb3\xa9\x71\x32\x8d\xca\x84\x89\x28\x53\xb2\xa4\xd5\xe5\x97\xfc\x41\x8d\x62\x76\x2f\x52\x61\x05\xb2\x62\xac\x90\x8d\x29\x22\x81\x94\xec\x67\x32\x61\x6f\x7f\xf8\x51\x7d\x37\xe1\x1e\x01\xb3\x50\x46\x0b\x2d\x7e\x91\x8d\xcb\x93\x51\xc6\x83\x48\x1f\x70\x64\x43\xca\xbf\x4b\x10\xc1\xe0\x3c\x76\xf7\xec\x34\x8c\x85\x0c\x79\xb4\x98\xc9\x64\x71\x15\x3f\x2c\xae\x56\x51\xe0\x49\x5f\x5c\xfd\xe1\x43\x7a\xab\xde\xd2\xd8\x28\x6d\x06\xa7\xcd\xe9\x19\x94\xbc\x36\x45\x31\xaa\xae\x08\xf5\x43\x0d\x11\xea\x9d\xb6\xbd\x8d\xa7\x4b\x3f\xec\xed\x92\xf6\x28\x1e\x4f\x9f\x26\x2d\xe9\x92\xc0\x34\x72\x49\xf7\x15\x6b\x37\xfd\xc9\xd5\xff\xaa\x23\xf8\xff\x1d\x29\x0b\x4a\x63\xc9\x72\x67\xe6\x93\x61\x48\x96\x23\xc9\x77\x02\x69\xb1\x38\xc9\x83\x95\x16\x11\x61\x7e\x42\x11\xe6\x08\xa5\x43\x28\x1d\x42\xe9\x10\x4a\x07\x45\x77\xdb\x2e\x1a\x64\xdc\x4a\x3f\x0a\x20\xc2\x6e\xea\x87\xdd\x8c\x5d\xdb\x73\xb6\xfe\xd6\x83\x6d\x12\xc1\xfd\x35\x19\xad\xa1\x6a\xa6\xde\xd4\x4f\x84\x4d\x41\xc4\x11\xdf\xc9\x6f\xee\x4e\xfd\x8b\x7b\xd9\x8c\xb1\x1b\xf5\x5f\xfb\xf7\x25\x0f\xc8\xcc\x99\x32\x2f\x5c\xa5\x99\x48\xf2\x8b\x4b\x3b\xd8\xb2\x30\x78\x10\xec\xdc\x15\x09\x3e\x57\xf2\xa9\x95\xa9\x66\xec\x36\xe4\x51\x24\xb4\x60\x4b\x52\x0f\x0f\xb5\xa0\xf5\xf6\xc7\x26\x37\x01\xb5\xb1\x27\x79\xc4\x0d\x9a\x13\xe7\xef\xec\xf0\xa9\x9e\xb2\x1b\x3d\x62\xea\x0e\x8a\x53\x3b\x3a\xc6\xb5\x6c\x95\x8a\x84\x7c\xc2\x72\xc9\xfc\xb9\xe3\x81\x52\x8d\x99\x2e\xc1\x1f\xf6\x45\x09\x53\x63\xe3\xeb\x67\x21\x46\x6f\x69\x7c\x09\x53\x27\xb2\x65\xcc\x37\xf5\x5b\xa4\x0f\x84\x98\x67\xf7\xd5\x34\x9d\xfe\x5b\xfa\x64\x07\xcd\xed\xb8\x86\xcd\x78\xbd\x06\xc8\xa3\xa7\x51\xf6\xf9\x4b\x7a\xf6\x8f\xbb\x0f\xc2\xa5\x48\x16\xa2\xd6\x37\x69\x3d\x8b\x45\xe0\x5d\xd6\x7f\x46\xfd\xfb\xd9\x7c\x93\x8e\xdc\x3a\xb2\x4e\xcc\x93\x2c\xa0\x80\x3b\xed\x7d\xd6\x8e\xdc\x43\x8d\x18\xb4\x45\xba\x2b\x5f\x87\x1d\x1a\xc8\x6d\xd9\x5f\x8c\xc1\x4e\x3d\x71\x3b\xf5\xe9\x78\x35\xac\x45\xb9\xd8\xcd\xa5\x23\xb1\xd4\xb1\x94\x47\xf7\xbf\xde\x72\x64\xbd\x21\x2b\x9d\x0e\xbf\xe6\x21\x3d\x19\xc9\xe8\x52\x3f\x4d\xdf\x20\x43\x79\xca\x5e\xff\x35\x95\xd1\xad\x0e\x72\xff\xa8\x0e\x47\xf3\xef\x2f\xf6\xc8\xcc\xff\xf8\x66\x48\xee\x16\xf5\xd7\xcd\xaf\x32\xf1\x88\x24\x2c\x24\x4d\xbe\x64\xdf\xce\xe6\xea\x6f\xdf\xce\xd8\x75\x69\x34\xc9\x87\x5e\x9b\xfd\x49\xff\x30\x1b\xf5\x92\x7b\x34\x01\x14\x26\x1d\x06\x9e\x31\x64\x92\xba\x22\x9f\xcc\xdc\xea\x30\xe2\x58\xc8\x38\x14\x33\xa6\x7f\x93\xb2\x23\xd8\x35\x45\x9e\xec\x95\x13\xe1\x7e\xbe\xc9\xf0\xaa\x1f\x82\xd6\xa2\x3f\x80\xd6\xb2\xf9\xd6\x81\x6a\x2d\xf1\x9a\xaf\xf8\xc8\xf5\x96\x55\xeb\x36\xb3\x38\xe4\x5e\x4b\xe2\xa3\x79\xd9\x49\x0a\x90\x70\x96\x85\x58\x09\xb1\x12\xce\xb2\x10\x32\xdc\xbf\xd7\xc0\xe2\xe4\x9c\x65\xa7\x2d\x37\xad\x46\x6f\xed\x7d\xc5\x0e\xf6\x2b\xa5\x1b\x70\x60\x85\xf5\x7e\x77\x6d\xea\xa6\xb4\x5e\xfd\xf7\xc3\xd9\x14\x69\xe7\x90\x76\x0e\x69\xe7\x90\x76\x0e\x69\xe7\x7a\x51\xa1\xa0\xe9\xd6\x9e\x28\x14\xd7\x1b\x52\x76\x40\x84\x3e\x9c\x50\xe8\x03\x52\x41\x22\x15\x24\x52\x41\x22\x15\x24\x52\x41\x22\x15\x24\x52\x41\x22\x22\x10\x11\x81\x88\x08\x44\x44\xe0\xfa\x8a\x44\x71\x3d\xe4\x9d\x45\xde\x59\xe4\x9d\x1d\x79\xde\xd9\x4a\xac\x07\x07\x03\x44\xf9\x8e\xbb\xb8\x5e\x6d\x28\x3c\xe0\xf2\x7a\x8d\xc1\xf9\x8e\x02\x7b\xed\xc3\x72\x94\xd8\x43\x89\x3d\xfd\x11\x4a\xec\xc1\xd7\x01\xbe\x0e\xf0\x75\x80\xaf\x03\x7c\x1d\x00\xd1\xc1\x55\xf7\x8f\x08\xb8\x2a\xb8\x2a\xb8\x2a\xb8\x2a\xb8\xea\x09\x73\x55\xa0\x0e\xa0\x0e\xa0\x0e\xa0\x0e\x94\xd8\x43\x89\x3d\x94\xd8\x73\x9f\x34\x8f\x0d\xdd\x6d\xe3\x47\x91\xbd\xde\x8b\xec\x75\x02\xa7\x50\x66\xaf\x95\x32\x7b\x8d\xa1\xdb\xce\x42\x7b\x43\x89\x51\x3d\x7e\xf6\x90\x3d\x3d\xaf\x77\x10\x21\xaa\x6a\x02\x51\x55\xc8\x1f\x82\xfc\x21\x15\x8d\x19\xbd\x40\x35\xd2\x0c\x22\x6d\x75\x6a\x58\x05\xf7\xda\xe9\xd5\xa4\xe5\xde\xfe\x4a\xee\xb5\x29\xf7\xbe\x62\x6d\x27\x47\x39\x76\xd9\xbd\x6e\xf2\xa2\x0c\x45\xd2\x1c\x49\x36\x14\xc8\x8e\xc5\x49\x1e\xac\xec\x88\xf8\xf3\x13\x8a\x3f\x47\xa0\x1d\x02\xed\x10\x68\x87\x40\x3b\xa8\xbd\xdb\x76\xd1\x20\xa3\x5a\x50\x7a\x6f\xb8\x3a\x5f\x9f\xa5\xf7\xc6\x11\x8a\x53\x51\x7c\xaf\xb1\x82\xb6\xa3\xfc\x5e\xe7\xf1\x37\x28\xc0\xe7\x16\x4d\x7d\xa9\x04\x05\xf8\xcc\xff\x70\x5d\xc2\xf4\x38\xc5\x12\x7c\x43\x21\xee\xc5\x22\x7c\x87\xb4\x09\x65\xf8\x50\x86\xaf\x87\x32\x7c\x8d\x25\xa0\x5d\x85\xf8\x86\x62\xa1\x46\x29\x3e\xd8\xad\xe1\xf3\x80\x52\x7c\x9b\x2b\x06\xa5\xf8\x50\x8a\x0f\xfa\x0b\xf4\x97\x21\x15\xe3\xeb\x46\x83\x39\x4e\x39\xbe\x17\x18\xd2\x76\x15\xe4\x9b\xba\x20\x09\xa7\x5a\x08\x98\x10\x30\xe1\x54\x0b\x71\xe3\xc4\x9c\x6a\xa7\x2d\x43\xf5\x55\x98\xaf\x67\xef\x53\x8a\x29\xbc\x5a\x9a\xea\x80\x7b\xcb\xf3\xb5\x0e\x38\x4d\x3a\x8a\xc8\x0f\x1e\x03\x7f\xc5\xc3\x62\x68\x2b\x77\x09\x68\x76\x55\x2f\x9c\x15\x1c\xab\x7e\x72\x2e\x59\xe7\xf4\xe2\xf3\x3c\x3b\x59\x29\xdd\x94\x13\xe8\x58\x10\xa5\x99\xe0\x25\x8b\xef\xba\xb8\xf7\xb4\xc3\x6a\xb8\xab\x61\xbf\xad\x45\xf2\x21\x32\x75\xa8\x1e\x25\x14\x58\x7d\xf3\x28\x22\x84\xa0\xba\x05\xdf\x5f\x1c\x6a\x17\x05\xde\x0f\x67\x62\xc8\x18\x3a\xe1\x8c\xa1\xfb\x91\xde\xbe\x6c\xa1\x3b\x2d\x83\x2d\xe0\x4a\xe4\x08\x45\x8e\x50\xe4\x08\x45\x8e\xd0\xa9\xe5\x08\xdd\x7f\xf2\x56\xe6\x07\xed\xd8\x39\xe4\x68\x59\x41\xf7\x77\x7f\x7b\x46\xd0\x21\x8f\xc1\x21\x79\x40\xf7\x8f\xc1\xf6\x1c\xa0\x1d\x8f\x01\x32\x7f\x22\xf3\x27\x32\x7f\x22\xf3\x27\x32\x7f\x76\x96\xf9\xb3\xc6\xe9\xbf\x91\xf5\x73\x67\x88\xe7\x09\xf9\x86\xd6\xeb\xcd\x84\x33\x97\xee\x1f\xee\x5d\x59\x4b\x8f\x3b\xee\xc8\x55\xda\xc9\x8c\x6e\xe6\x29\xed\x78\x5a\x7b\xcd\x4e\xba\x7f\x78\x76\x64\x26\xed\xfa\xd8\x1c\x6a\x3e\xd2\xfd\x83\x56\x41\x3b\x1a\xdb\xf3\xcc\xbf\xfe\xd9\x0d\x7c\xab\x48\xff\xd2\x11\x83\x2b\x82\xb7\xc8\x0a\x02\xb6\xe8\x57\xe7\x00\xee\x22\xd7\x05\x48\xdf\x31\x72\xa3\x52\x27\x72\x25\xe7\xbc\xa4\x1c\x17\xde\xdd\x05\xbe\x03\xba\x03\xba\x1b\x27\xba\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x03\xb6\x9b\x0a\xb6\x2b\xa6\xad\xa9\x6f\x7d\x40\xd2\x1a\x80\xc9\xfe\x31\x16\xc0\x24\xc0\x24\xc0\x24\xc0\xe4\xda\xa0\x0d\x0a\x4c\xee\xa9\x4c\x31\x80\xb8\xc0\xdd\xc1\x93\xbd\x46\x06\xd6\x28\x77\x08\xc0\x08\xc0\x38\x4a\xc0\x88\x1a\x95\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xc0\x8c\xd3\xc2\x8c\x80\x70\x80\x70\x80\x70\xe3\x98\x51\x40\xb8\xf2\xf0\x00\xc2\x4d\x1c\xc2\x0d\x24\x3e\xf0\x08\x20\xae\x9f\x08\xc1\x03\xb2\xb9\x03\xe1\x01\xe1\x8d\x06\xe1\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x01\xdf\x4d\x07\xdf\xa1\xb8\x3d\x10\x25\x10\x65\x83\x71\x07\xa2\x04\xa2\x04\xa2\x04\xa2\xdc\x8e\x28\xef\x44\xc6\xdf\x5e\x35\x62\x8f\xbd\xd4\x1f\x5d\x9b\xfe\x85\xc8\xca\x72\xbd\x9e\xe9\x1d\xa4\x70\x21\xb2\x2d\x9c\x90\x86\xe2\xfa\xf6\xc3\xe7\xaa\xb7\xa0\x08\xeb\x81\xc4\xae\x30\x90\x14\x29\x39\x51\x6c\x47\x8b\xa6\xf0\x9a\x57\xc5\xa6\x34\xd8\x89\xb5\xcb\x78\x6a\x5d\xab\x5d\x2f\x01\xfd\x4e\xe6\xc9\x30\x14\x9e\xbd\x3e\xea\x26\xd8\x5d\xdb\x67\xfa\x5d\xbb\xb6\xda\x3b\xf7\x33\xb5\x73\xf8\x76\x5a\x6d\xbd\x93\x6d\xf0\x9e\x86\xe1\x53\xac\xe7\xaf\xde\x26\xd8\xbd\xfa\x41\x9e\x40\x9e\x40\x9e\x40\x9e\xa6\x46\x9e\xea\x55\xde\xaf\xa4\x4f\x2f\xac\xba\x5f\xff\xec\xfd\x87\x1a\x38\x63\x73\xbb\xa0\xd4\x16\x9e\x5a\x51\x7a\x1d\x94\xfa\x56\xf4\xf2\xb8\x13\x2c\x56\xa3\x95\x66\xc2\x9f\xb1\xeb\x88\x05\x91\x3e\x59\x64\xc2\x56\x91\x3b\x9c\x7c\xe6\x27\xcf\x9f\x57\x11\xf3\x83\x44\xdd\x8b\x8f\xc2\xad\x78\x75\x7c\x92\x85\xd4\x6c\x79\xbb\x36\xcc\x00\xb3\xf9\x2a\xa1\x5d\x16\x27\xd2\x13\x29\x99\x32\x8d\xe2\x67\x56\xd9\x4c\xdb\xcd\xf4\x6c\xd1\xda\xf9\x89\x5d\xb2\xeb\x30\xfc\x89\x0c\x95\xbe\x3a\xa5\x57\x91\x9a\x78\xa5\x42\xd9\x25\x69\x5e\xb7\x59\xe1\xbe\xc6\x44\xe9\xbe\xf4\x33\x4d\x47\xc3\x85\xf5\x86\x62\x3b\x32\x3c\xda\x88\x7c\x2d\xda\x04\x82\x88\xa5\x5a\x55\x67\x77\x62\xae\xfd\x9a\x9c\x69\x39\x17\x25\xcc\xe9\x45\x4b\x67\x25\xf4\xe5\x70\xa7\xb4\xe1\xe8\x32\x12\x0b\x4e\x0b\xd4\x68\xf5\x33\xf6\xd5\x5d\xd8\x1a\x33\xb9\xad\x61\x64\xca\x60\xb9\x14\x7e\xc0\x33\x11\x3e\xe7\x0e\x47\xf9\x95\x1b\x84\x17\x46\x6b\xa7\x41\x67\x8b\x84\x7b\xb4\x6b\x02\xe9\x3b\x81\x20\xbf\xb4\xc9\x9b\xcb\xae\xd2\x55\xaa\x1a\x59\x9c\x2e\xae\x9e\xb4\x1d\x32\x3f\x32\xd7\x67\xa0\x7d\xc5\x4c\xb7\x73\x29\x78\x54\xd9\xc6\x06\xd3\x4c\x6d\xbe\xa5\x26\x57\x59\x42\xf6\xd8\x42\x86\xb2\xfc\x0f\x21\xc5\xf5\xc6\x65\x3b\x2d\x3e\xda\xf2\x07\x37\x06\x37\x06\x37\x06\x37\x06\x37\xee\x8c\x1b\xd7\xbc\x0b\x36\xd8\xf1\xf1\xae\xc5\xf7\x85\x00\x96\x38\x14\x3c\x15\xee\x08\xba\x4d\x64\xcc\x17\x24\x1d\xdd\xca\x30\xf0\x9e\x4b\x5e\xca\x76\xd1\xe5\x11\x30\x6a\xd9\xbd\x9d\xfd\x69\xc6\xbe\xe8\xf3\x4c\x8b\x2e\xb1\x88\xd4\x66\xc9\xef\x54\xc1\x64\x12\xdf\xf3\xc8\x7a\x4d\x27\x2b\x71\x35\xe7\xa1\xd5\x95\xbf\x9d\xe9\x8f\xbf\x9d\xb1\x79\x10\xf1\x30\xf8\xb7\xbd\x48\xee\x04\xe3\x3e\x81\x36\x79\xa5\x21\x84\x9f\xab\x61\xfa\xf5\xe7\x69\xfe\x90\xd6\x4f\x67\xec\x26\xa0\xc3\xb1\xd0\x74\x99\x6c\xf6\x2d\xc7\xaa\x99\x56\x8f\x49\x47\x91\xd9\x7d\x93\x09\xd5\x3d\x78\x6f\xfb\xbe\x55\xe4\xa9\x42\x1a\xed\x2a\x66\xd4\x75\xb5\x61\xef\xe5\x13\x5b\xf0\xe4\x8e\x2f\x4a\xa6\x4c\xa7\xd4\x88\x64\x2e\x93\xa5\x9a\x93\xca\xf1\xfa\xb4\xd6\xa3\xed\xc3\x45\x42\xaf\x95\x58\x63\x3d\xb6\x81\x92\x26\xbd\xc0\xcf\x55\x61\x92\x15\xc8\x38\xe1\xe6\x58\x5d\xd6\xe6\x26\xb5\xd2\xc0\xac\x30\x99\xf6\x1e\x71\x5c\xd3\x45\x00\x94\x7f\x6c\xc6\xae\x3d\x4f\xc4\x19\xdd\x4d\x45\xcd\xee\x5c\xf7\xe1\x9c\x5d\x9a\x05\x58\x5e\xa0\xe9\xcf\xec\xfc\x17\xee\x3d\x2c\x12\xb9\x8a\x7c\xf5\x2d\xf2\xa6\xa7\x2f\xad\x0d\x9c\x16\x21\x8d\x7c\x5c\x7e\x89\xed\xc1\x9d\x7b\xd3\xcf\xec\xfc\x57\x99\x88\xc2\x6b\x99\xc7\x53\x8f\xfb\xaa\xf7\x66\x7c\x74\xb0\x05\xbd\x2f\xd5\xaa\xe7\xc6\x0b\xe7\xee\x1d\x4d\x16\x64\xbc\xbe\xdc\xfb\x91\x38\x27\xec\x00\x51\x6f\x1e\x76\x39\x41\xf4\x35\x0b\x70\x87\xe8\x6c\x7e\x37\x5d\x22\x8e\x67\xdb\xe8\xd3\x39\xa2\xde\x60\xed\x70\x90\x78\xa9\xfc\x53\xc9\xf5\x40\xab\x0f\xc4\x74\x5f\x32\x9e\xad\xea\xf2\xb9\xd1\x43\xea\xc2\x6b\xb6\x04\x98\xea\x1b\x3a\x97\x9e\xfa\x89\x35\x6d\x58\x8f\x72\xad\xbb\x9b\xe1\xa6\xad\x87\xd7\x6b\xb3\x5a\x62\x54\x71\x2b\xff\xd7\xa9\xbc\xbb\x83\xa0\xab\x97\xee\xe2\xe7\x6d\x53\x73\x04\xd8\x9e\x4e\x80\x6d\xbd\x6b\x6b\x5f\x90\xed\xf1\xf4\x3b\x38\x3d\xc0\xe9\x01\x4e\x0f\x70\x7a\x80\xd3\x43\xd5\xe1\x0b\x9a\x3e\xa2\x11\x01\x60\x05\x60\x05\x60\x05\x60\x05\x60\x05\x60\x9d\x16\x60\x05\xf3\x00\xf3\x00\xf3\x00\xf3\xe8\x9c\x79\x1c\xe0\x17\x30\xd0\xf0\xd0\x7a\x43\xb8\x19\x22\xfa\x52\x8b\xdb\xa0\x68\xd1\xd6\x07\x4e\x2b\xed\xe9\xac\x1a\x8c\x18\x8e\x31\xdb\x65\xe6\x3f\xa5\xc8\xca\xfd\xd0\xaa\xbf\x9a\x86\x5d\x81\xaa\x06\x79\x51\xc7\x92\x47\xe4\xd5\xda\xb4\x9e\xc5\x32\x6d\x99\xca\x69\x5d\x88\xf1\xa6\x00\x4e\x3f\x7f\x4c\x04\xd7\x2c\x70\x75\x47\xd2\x9a\xbe\x0e\xa6\x56\x22\x5d\x11\x6d\x55\x5c\x15\x83\x8d\xb6\x22\xc3\xc9\x47\x1e\xf1\x85\x48\xb4\x09\x90\xf2\x35\xf1\x34\x95\x5e\x40\x3a\xad\x33\xb6\x71\xb2\x99\xca\x84\x89\x28\x53\x42\xa6\x55\xf2\x97\xfc\x41\x8d\x62\x76\x2f\x52\x61\x25\xb5\x62\x4c\x91\x8d\x3d\x22\x49\x95\x0c\x6b\x32\x61\x6f\x7f\xf8\x51\x7d\x37\xe1\x1e\x91\xb4\x50\x46\x0b\x2d\x97\x91\xf1\xcb\x93\x51\xc6\x83\x48\x1f\x75\x64\x5c\xca\xbf\x4b\x74\xc1\x70\x3e\x76\xf7\xec\x54\x8f\x85\x0c\x79\xb4\x98\xc9\x64\x71\x15\x3f\x2c\xae\x56\x51\xe0\x49\x5f\x5c\xfd\xe1\x43\x7a\xab\xde\xd2\xd8\x5a\x6d\x06\xa7\xcd\xe9\x19\x94\x20\x37\x59\xf9\xaa\xae\x6c\xf5\x43\x0d\xd9\xea\x9d\xb6\xcc\x8d\xac\x5f\x3f\xec\xed\x97\xf6\x41\x1e\x59\xc7\xa6\x2f\x0c\x93\x38\x35\x05\x61\xf8\x15\xeb\x20\x93\x4a\x45\xcd\x95\x0e\x13\xaa\x34\x96\x40\xf7\x27\x51\x19\x86\x04\x3a\x92\xd4\x29\x10\x28\x8b\x93\x3c\x58\x81\x12\xc1\xea\x27\x14\xac\x8e\xa8\x3c\x44\xe5\x21\x2a\x0f\x51\x79\xd0\x85\xb7\xed\xa2\x41\x86\xc0\xf4\xa3\x19\x22\x82\x67\xf3\x35\x3b\x23\x78\x26\xa1\x01\x3a\x44\xd0\x7a\xdc\x4e\x22\xb8\xbf\x26\xad\x35\xd4\xd4\xd4\x9b\x7a\x0c\xd6\x29\x48\x3c\xe2\x3b\xb9\xe0\xdd\xa9\x7f\x71\x2f\x9b\x31\x76\xa3\xfe\x6b\xff\xbe\xe4\x01\x19\x46\x53\xe6\x85\xab\x34\x13\x49\x7e\x8f\x69\x5f\x5d\x16\x06\x0f\x82\x9d\xff\x9d\x2f\x45\x1a\x73\x4f\x9c\x2b\x71\xd5\x8a\x58\x33\x76\x1b\xf2\x28\x12\x5a\xce\x25\x21\x88\x87\x5a\xee\x7a\xfb\x63\x93\x8b\x81\xda\xd8\x93\x78\xe2\x06\xcd\x49\xf7\x77\x76\xf8\x54\x4f\xd9\x8d\x1e\x31\x75\x25\xc5\xa9\x1d\x1d\xe3\xa5\xb6\x4a\x45\x42\xee\x65\xb9\xa0\xfe\xdc\xf1\x40\xa9\xc6\x4c\xd7\x19\x60\xd8\xf7\x26\x4c\x92\x2d\x5c\x49\x0b\x31\x0d\x8b\xe4\x4b\xf0\x7c\xb1\x94\x49\xfd\x66\xa1\x90\xc9\x31\x1c\x10\xc8\x57\xa8\x51\xea\xfb\x4b\x7a\xf6\x8f\xbb\xcf\xc5\xa5\x48\x16\xa2\xd6\x37\x69\x51\x8b\x45\xe0\x5d\xd6\x7f\x46\xfd\xfb\xd9\x7c\x93\x4e\xe0\x3a\xf2\x4f\xcc\x93\x2c\xa0\x50\x3e\xed\xd7\xd6\x8e\x2c\x14\xef\x28\xc6\x3d\x20\xa3\x75\x57\x6e\x13\x3b\x94\x94\xdb\xb2\x3b\x1a\x83\x29\x7b\xe2\xa6\xec\xd3\xf1\x8d\x58\x0b\xa2\xb1\x9b\x4b\x07\x7a\xa9\xb3\x29\x4f\x1e\xf0\x7a\xcb\xb9\xf5\x86\x0c\x79\x3a\xba\x9b\x87\xf4\x64\x24\xa3\x4b\xfd\x34\x7d\x83\x6c\xe9\x29\x7b\xfd\xd7\x54\x46\xb7\x3a\x86\xfe\xa3\x3a\x21\xcd\xbf\xbf\xd8\x73\x33\xff\xe3\x9b\x21\x39\x6d\xd4\x5f\x37\xbf\xca\xc4\x23\xd8\xb0\x90\x34\xf9\x92\x7d\x3b\x9b\xab\xbf\x7d\x3b\x63\xd7\xa5\xd1\x24\x17\x7d\x4d\x06\x48\x27\x31\x1b\xf5\x92\x7b\x34\x01\x14\x85\x1d\x06\x9e\xb1\x75\x92\x0a\x23\x9f\xcc\xdc\xea\x28\xe5\x58\xc8\x38\x14\x33\xa6\x7f\x93\x92\x2f\xd8\x35\x45\x8e\xf2\x95\x13\xe1\x7e\xbe\xc9\xf0\xaa\x1f\x82\x26\xa3\x3f\x80\x26\x33\x42\x4d\x26\x5e\x73\x4a\x9f\x82\x2e\xb3\x6a\xdd\xb6\x16\x87\xdc\x6b\x49\xa4\x34\x2f\x3b\x5d\xa1\x12\xbe\xb8\x90\x37\x6b\x4c\xd3\xe9\xc8\x9b\x03\x12\xeb\x20\x7d\xb8\x4f\xfa\x3f\xc6\x26\xeb\x8b\x7b\x02\x52\xd5\x6a\x1a\xf6\xe1\x57\xac\x99\xc7\xea\xa3\x2b\x6d\x3d\x9c\xea\x7f\xb5\xcb\x6d\xbf\xa4\xfe\x5f\xfd\x1f\x81\x1b\x2b\x92\xe1\x21\x19\x1e\x92\xe1\x21\x19\x1e\x92\xe1\xf5\xa2\x60\x41\x0f\xae\x3d\x51\xa8\x00\x38\xa4\x9c\x85\x08\xaa\x38\xa1\xa0\x0a\x24\xa8\x44\x82\x4a\x24\xa8\x44\x82\x4a\x24\xa8\x44\x82\x4a\x24\xa8\x44\xac\x21\x62\x0d\x11\x6b\x88\x58\xc3\xf5\x15\x89\x0a\x80\xc8\x86\x8b\x6c\xb8\xc8\x86\x3b\xf2\x6c\xb8\x95\x6c\x0f\xee\x07\x88\x1f\x9e\x40\x05\xc0\xda\x64\xb8\xff\x58\xe2\xdd\x35\x00\x1b\x73\xf4\x7d\x55\x00\xdb\x67\xe7\xa8\x03\x88\x3a\x80\xfa\x23\xd4\x01\x84\xeb\x03\x5c\x1f\xe0\xfa\x00\xd7\x07\xb8\x3e\x80\xa9\x03\xb3\xee\x1f\x11\x60\x56\x60\x56\x60\x56\x60\x56\x60\xd6\x13\xc6\xac\x20\x1f\x20\x1f\x20\x1f\x20\x1f\xa8\x03\x88\x3a\x80\xa8\x03\xe8\x3e\x79\x61\x0c\xe9\x6e\x43\x3f\x2a\x01\x0e\xa3\x12\x60\x77\xc0\x0a\xb5\x00\x5b\xa9\x05\xd8\x18\xc4\xed\xaf\x06\x38\x94\x30\xd6\x9e\x72\x90\xec\xe9\x7e\xbd\xc3\x09\xd1\x57\x13\x88\xbe\x42\x16\x12\x64\x21\xa9\x68\xcc\x34\x24\xad\x31\xe7\x21\x69\xab\x67\x03\xac\x0a\xd8\x4e\xd7\xa6\x2f\x1a\xf7\x57\x17\xb0\x75\xd1\xf8\x15\xeb\x24\xcf\xca\xb1\x6b\x03\x76\x98\x62\x65\x28\x12\xe9\x48\x12\xab\x40\xbc\x2c\x4e\xf2\x60\xc5\x4b\x84\xb2\x9f\x50\x28\x3b\x62\xf6\x10\xb3\x87\x98\x3d\xc4\xec\x41\x33\xde\xb6\x8b\x06\x19\x20\x83\xfa\x80\x03\xd7\x03\xfb\xac\x0f\x38\xa2\xa8\x9e\x8a\x0a\x81\x8d\xf5\xb5\x7d\x35\x02\x3b\x0f\xe5\x41\x95\x40\xb7\x72\xea\x0b\x29\xa8\x12\x68\xfe\x87\xdb\x13\x26\x4a\xf3\xd1\x44\xeb\x04\x0e\x0a\xde\x17\x2b\x05\x1e\xd2\x30\xd4\x0a\x44\xad\xc0\x1e\x6a\x05\x36\x96\x8a\xf6\x56\x0b\x1c\x8a\x11\x1b\xf5\x02\x61\xda\x86\xe7\x04\xea\x05\x6e\xae\x18\xd4\x0b\x44\xbd\x40\xe8\x34\xd0\x69\x76\xe8\x34\x3d\x56\x0c\xec\x50\xab\x39\x4e\xcd\xc0\x17\x18\xdc\xf6\x56\x0d\x9c\xba\x70\x09\x9f\x5d\x48\x9e\xb5\xa6\xe9\x74\x24\xcf\x01\x09\x78\x90\x43\xdc\x27\x43\x38\xc8\x26\xec\xb3\x7b\x02\x12\x56\x5f\xd5\x03\x07\xe3\xd7\x4a\x41\x8e\x57\x4b\x53\xcc\x70\x6f\x0d\xc1\xd6\x59\xa9\xc9\x8f\x11\xf9\xc1\x63\xe0\xaf\x78\x58\x8c\xb5\xe5\x2e\x23\xce\xae\x62\x8b\xb3\x82\xb7\xd6\x4f\xce\xcf\xeb\x9c\x5e\x7c\x9e\xa7\x4b\x2b\xe5\xbf\x72\x32\x1f\x0b\xa2\x34\x13\xbc\x64\x28\x5e\x97\x08\x9f\xf6\x19\x1b\x77\xb5\xee\xb7\xb5\xa8\x42\xc4\xcb\x0e\xd5\x57\x85\xc2\xbd\x6f\x1e\x45\x84\x98\x58\xaf\xb4\x3b\xfb\x0b\x8c\xed\xac\x6e\xfd\xe1\x64\x0d\x19\x4d\x27\x9c\xd1\x74\x3f\x18\xdc\x97\xcd\x74\xa7\x69\xb1\x05\xe8\x89\x1c\xa6\xc8\x61\x8a\x1c\xa6\xc8\x61\x3a\xb5\x1c\xa6\xfb\x4f\xde\xca\xfc\xa5\x1d\xbb\x98\x1c\x2d\x6b\xe9\xfe\xee\x6f\xcf\x58\x3a\xe4\x31\x38\x24\x4f\xe9\xfe\x31\xd8\x9e\xa3\xb4\xe3\x31\x40\x66\x52\x64\x26\x45\x66\x52\x64\x26\x45\x66\xd2\xce\x32\x93\xd6\x38\xfd\x37\xb2\x92\xee\x0c\x23\x3d\x21\x0f\xd3\x7a\xbd\x99\x70\x66\xd5\xfd\xc3\xbd\x2b\xab\xea\x71\xc7\x1d\xb9\x54\x3b\x99\xd1\xcd\x3c\xaa\x1d\x4f\x6b\xaf\xd9\x53\xf7\x0f\xcf\x8e\xcc\xa9\x5d\x1f\x9b\x43\xcd\x97\xba\x7f\xd0\x2a\xb8\x47\x63\x7b\x9e\xf9\xd7\x3f\x3b\x04\x72\x15\xc9\x66\x3a\xe2\x72\x45\x18\x17\x59\x69\xc0\x96\x27\xeb\x1c\xca\x5d\xe4\x0a\x01\x29\x3d\x46\x78\x54\x3a\x45\xae\xe9\x9c\x97\x34\xe4\xc2\xbb\x3b\x43\x7a\xc0\x79\xc0\x79\x23\xc6\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x40\x79\x93\x42\x79\xc5\x84\x38\xf5\x4d\x10\x48\x87\x03\x58\xd9\x3f\xda\x02\xac\x04\xac\x04\xac\x04\xac\x5c\x1b\xb4\xe1\xc1\xca\x3d\xb5\x31\x06\x10\x3f\xb8\x3b\xdc\xb2\xff\x08\xc2\x1a\x75\x1a\x01\x1d\x01\x1d\xc7\x0b\x1d\x51\x5c\x13\xe8\x11\xe8\x11\xe8\x11\xe8\x11\xe8\x11\xe8\x11\xe8\x11\xe8\x11\xe8\x11\xe8\x11\xe8\x11\xe8\x11\xe8\x11\xe8\x11\xe8\x71\x82\xe8\x11\x60\x0e\x60\x0e\x60\x6e\x1c\x33\x0a\x30\x57\x1e\x1e\x80\xb9\x53\x00\x73\x03\x89\x23\x3c\x02\x9c\xeb\x31\x92\xf0\x80\x64\xf1\xc0\x7a\xc0\x7a\xe3\xc2\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x40\x7a\x13\x43\x7a\x28\xaf\x0f\x6c\x09\x6c\xd9\x60\xdc\x81\x2d\x81\x2d\x81\x2d\x4f\x1b\x5b\xc6\x81\xf8\x9e\x89\x88\x36\x86\xc5\x95\x8d\xd0\x63\x2f\x35\x4d\xd7\xa6\x7b\x21\x32\x16\x44\x73\x99\x2c\xdd\xf2\xe6\x4c\x23\x8d\xed\xac\x70\x21\xb2\xeb\xe2\x28\x5c\xdf\x7e\xf8\xf3\xfa\x23\x28\xe4\x7a\x20\x9b\x73\x83\x38\x76\x32\x57\x5c\x19\x85\xc7\x5e\x15\x7f\xba\xc6\x96\x7a\x7c\x3b\xee\x5d\x55\xd2\x8e\xf5\x79\x79\xc0\x96\xfa\xfd\xed\xf5\xed\x87\xcf\x55\x0f\x62\x63\x1d\xbe\xb1\xec\x40\x52\x00\xf2\x94\xf6\xd7\x7f\x3f\xbe\x7d\xd9\x16\xf3\x56\x69\x26\x97\x76\x85\x16\xc6\xb6\xb8\xf7\xb4\x19\xa2\x5d\x7f\x1a\xfd\x4e\xe6\xc9\x30\x14\x9e\xbd\x7a\xde\x51\x6b\xec\x6c\xbd\x77\xad\xd9\xb1\x71\xf4\x7b\xd6\xf6\xce\x3b\xf7\xd6\x3a\x6f\xdc\x02\xcb\x37\x8a\xc6\x6b\x09\xe4\x4e\xfa\x5b\x4b\xa5\x57\x7d\xd6\xc9\x9a\x7e\x4f\xbd\xfe\x14\x67\xe5\x43\x96\xed\x5a\xd1\xbb\x97\x32\xf8\x2b\xf8\x2b\xf8\x2b\xf8\xeb\xd4\xf8\xeb\x0e\xcd\x71\x1f\x83\xdd\x6d\x85\xd8\xad\x41\x1e\x74\xf6\xfe\x43\x0d\x9c\xb1\x3c\x5f\x50\x0e\x18\x4f\xad\x28\xbd\x0e\x4a\x7d\x2b\xfa\x3a\xdd\x09\x16\xab\xd1\x4a\x33\xe1\xcf\xd8\x75\xc4\x82\x48\x9f\x2c\x32\x61\xab\xc8\x1d\x4e\x3e\xf3\x93\xe7\xcf\xab\x88\xf9\x41\xa2\xee\xc4\x47\xe1\x56\xbc\x3a\x3e\x89\x13\x98\x2d\x6f\xd7\x86\x19\x60\x36\x5f\x25\xb4\xcb\xe2\x44\x7a\x22\x25\x83\xbe\x31\x7f\x98\x55\x36\xd3\xd6\x63\x3d\x5b\xb4\x76\x7e\x62\x97\xec\x3a\x0c\x7f\x22\x73\xbd\xaf\x4e\xe9\x55\xa4\x26\x7e\x21\x52\xb7\x24\xcd\xeb\x84\xdf\x60\xa2\x74\x5f\xfa\x99\xa6\xa3\x41\xf3\x7a\x43\xb1\x1d\x9c\x1f\x6d\x44\xbe\x16\x2d\x63\x41\xc4\x52\x6d\xb0\x62\x77\x62\xae\xbd\xfb\x1c\x60\xc9\x45\x09\x73\x7a\xd1\xd2\x59\x09\x7d\x39\xdc\x09\x16\xc9\xe8\x32\x12\x0b\x4e\x0b\xd4\xd8\xb6\x66\xec\xab\xbb\xb0\x35\x6c\x75\x5b\xc3\x88\x8f\xc1\x72\x29\xfc\x80\x67\x22\x7c\xce\xdd\xee\xf2\x2b\x37\x08\x2f\x8c\xed\x8a\x06\x9d\x2d\x12\xee\xd1\xae\x09\xa4\xef\x04\x82\xfc\xd2\x26\x9f\x46\xbb\x4a\x57\xa9\x6a\x64\x71\xba\xb8\x7a\xd2\x76\xc8\xfc\xc8\x5c\x9f\x81\xf6\x15\x33\xdd\xce\xa5\xe0\x51\x65\x1b\x1b\x4c\x33\xb5\xf9\x96\x9a\x5c\x65\x0f\xdc\x63\x11\x1c\xca\xf2\x3f\xc4\x5f\xa2\xde\xb8\x6c\xf7\x99\x38\xda\xf2\x87\xf7\x04\xbc\x27\xe0\x3d\x01\xef\x09\x78\x4f\x74\xe6\x3d\x51\xf3\x2e\xd8\xf0\xa0\x38\xde\xb5\xf8\xbe\x10\xd5\x15\x87\x82\xa7\xc2\x1d\x41\xb7\x89\x8c\xf9\x82\xa4\xa3\x5b\x19\x06\xde\x73\xc9\x57\xdf\x2e\xba\x3c\x2c\x4c\x2d\xbb\xb7\xb3\x3f\xcd\xd8\x17\x7d\x9e\x69\xd1\x25\x16\x91\xda\x2c\xf9\x9d\x2a\x98\x4c\xe2\x7b\x1e\xd9\xd8\x81\x64\x25\xae\xe6\x3c\xb4\xba\xf2\xb7\x33\xfd\xf1\xb7\x33\x36\x0f\x22\x1e\x06\xff\xb6\x17\xc9\x9d\x60\xdc\x27\xdc\x2c\xaf\x34\x8a\xf3\x73\x35\x4c\xbf\xfe\x3c\xcd\x1f\xd2\xfa\xe9\x8c\xdd\x04\x74\x38\x16\x9a\x2e\x93\xcd\xbe\xe5\xce\x05\x99\x56\x8f\x49\x47\x91\xd9\x7d\x93\x09\xd5\x3d\x78\x6f\xfb\xbe\x55\xe4\xa9\x02\x7b\xed\x2a\x66\xd4\x75\xb5\x61\xef\xe5\x13\x5b\xf0\xe4\x8e\x2f\x4a\x56\x4b\xa7\xd4\x88\x64\x2e\x93\xa5\x9a\x93\xca\xf1\xfa\xb4\xd6\xa3\xed\xc3\x45\x42\xaf\x95\x58\x63\x3d\xb6\x81\x92\x26\xbd\xc0\xcf\x55\x61\x92\x15\xc8\x38\xe1\xe6\x38\x25\x96\x47\x9f\x5a\x69\x60\x56\x98\x4c\x7b\x8f\x38\xba\xef\xe2\x60\xca\x3f\x36\x63\xd7\x9e\x27\xe2\x8c\xee\xa6\xa2\x66\x77\xae\xfb\x70\xce\x2e\xcd\x02\x2c\x2f\xd0\xf4\x67\x76\xfe\x0b\xf7\x1e\x16\x89\x5c\x45\xbe\xfa\x16\xc5\x94\xd0\x97\xd6\x06\x4e\x8b\x90\x46\x3e\x2e\xbf\xc4\xf6\xe0\xce\xbd\xe9\x67\x76\xfe\xab\x4c\x44\xe1\xb5\xcc\xe3\xa9\xc7\x7d\xd5\x7b\x33\x3e\x3a\xe4\x88\xde\x97\x6a\xd5\x73\xe3\x85\x73\xf7\x8e\x26\x0b\x32\x5e\x5f\xee\xfd\x48\x9c\x13\x76\x03\xaa\x37\x0f\xbb\x5c\x81\xfa\x9a\x05\x38\x05\x75\x36\xbf\x9b\x8e\x41\xc7\xb3\x6d\xf4\xe9\x22\x54\x6f\xb0\x76\xb8\x09\xbd\x54\xfe\xa9\x44\x78\x40\xcf\x07\x62\xba\x2f\x19\xcf\x56\x75\xf9\xdc\x18\x89\x73\xe1\xc9\x2d\xe1\xd5\xfa\x52\xce\x05\xa6\x56\x22\xad\x2b\x60\x76\x75\x84\x75\x0d\xfc\xbb\x1e\x5b\xbd\x2b\xac\xba\xf5\xac\x12\xda\x70\x96\x18\x65\xdb\x4a\xf8\x36\xa1\x44\x03\x1c\xae\x5e\xb8\x0e\xc3\x5b\x44\xe0\x88\x19\x3f\x9d\x98\xf1\x7a\x77\xd0\xbe\xb8\xf1\xe3\x29\x6b\xf0\x60\x80\x07\x03\x3c\x18\xe0\xc1\x00\x0f\x86\xaa\xc3\x17\x68\x7c\x44\x23\x02\x5a\x0a\x5a\x0a\x5a\x0a\x5a\x0a\x5a\x0a\x5a\x3a\x2d\x5a\x0a\x80\x01\x80\x01\x80\x01\x80\xd1\x39\xc0\x38\x00\xf2\x0f\x34\xe2\xb9\xde\x10\x6e\x46\x3d\xbf\xd4\xe2\x36\x28\xf4\xb3\xf5\x81\xd3\xca\xe9\x9b\xdb\xf3\x2f\x9d\x11\x37\xc7\x4d\x65\x1e\xf2\xf8\x76\xb6\xcd\xe4\x3f\xf1\xf8\xc7\xfd\x34\xaa\xb5\xf2\x9d\x7d\x11\xa8\x06\x89\x7d\xc7\x92\x08\xe7\xd5\xda\x2c\x9e\xc5\x32\x6d\x19\xb7\x69\xcd\x87\xf1\x26\x64\x4d\x3f\xdb\x21\x5b\x6b\x16\x5e\xba\x23\xc1\xd2\x10\x4e\x9c\x56\x62\x53\x11\x1f\x55\x5c\x21\x83\x8d\x8f\x22\xeb\xc8\x47\x1e\xf1\x85\x48\xb4\x9d\x8f\xf2\x8c\xf1\x34\x95\x5e\x40\x8a\xab\xb3\xa8\x71\x32\x8c\xca\x84\x89\x28\x53\x92\xa4\xd5\xe4\x97\xfc\x41\x8d\x62\x76\x2f\x52\x61\xc5\xb1\x62\x14\x90\x8d\x16\x22\x71\x94\xac\x67\x32\x61\x6f\x7f\xf8\x51\x7d\x37\xe1\x1e\xe1\xb2\x50\x46\x0b\x2d\x7c\x91\x85\xcb\x93\x51\xc6\x83\x48\x9f\x70\x64\x41\xca\xbf\x4b\x08\xc1\xc0\x3c\x76\xf7\xec\xf4\x8b\x85\x0c\x79\xb4\x98\xc9\x64\x71\x15\x3f\x2c\xae\x56\x51\xe0\x49\x5f\x5c\xfd\xe1\x43\x7a\xab\xde\xd2\xd8\x24\x6d\x06\xa7\xcd\xe9\x19\x94\xb4\x76\x12\x42\x54\x5d\x01\xea\x87\x1a\x02\xd4\x3b\x6d\x8a\x1b\x71\x1f\x7f\xd8\xdb\x47\xed\x4d\x3c\xe2\x4e\x4e\x52\x12\x26\xe1\x6a\x84\x92\xf0\x2b\xf6\xf2\xdc\x26\x15\xf5\x82\x3a\x4c\x71\xd2\x48\xda\xac\x4e\x6b\xd2\xbb\xb4\x39\x92\x64\x26\x10\x18\x8b\x93\x3c\x58\x81\x11\xe1\xe3\x27\x14\x3e\x8e\x38\x39\xc4\xc9\x21\x4e\x0e\x71\x72\xd0\x75\xb7\xed\xa2\x41\x06\xa5\xf4\xa3\xe1\x21\xa6\x86\xed\xd0\xdd\x8c\xb2\x32\x42\xed\xcd\xd9\xf6\x5b\x8f\xa4\x49\x04\xf7\xd7\xe4\xb1\x06\x6a\x97\x7a\xcb\xf1\xc2\x67\x0a\xe2\x8b\xf8\x4e\x4e\x71\x77\xea\x5f\xdc\xcb\x66\x8c\xdd\xa8\xff\xda\xbf\x2f\x79\x40\x56\xcc\x94\x79\xe1\x2a\xcd\x44\x92\x5f\x4a\xda\x7b\x96\x85\xc1\x83\x60\xe7\x7f\xe7\x4b\x91\xc6\xdc\x13\xe7\x4a\xf6\xb4\xf2\xd2\x8c\xdd\x86\x3c\x8a\x84\x16\x5a\x49\xa2\xe1\xa1\x16\xa2\xde\xfe\xd8\xe4\x94\xa7\x36\xf6\x24\x6b\xb8\x41\x73\xa2\xfa\x9d\x1d\x3e\xd5\x53\x76\xa3\x47\x4c\xdd\x2f\x71\x6a\x47\xc7\xf8\x8d\xad\x52\x91\x90\xc3\x57\x2e\x75\x3f\x77\x3c\x50\xaa\x31\xd3\xc5\xf3\xc3\xbe\x04\x61\x27\x64\x2f\xbe\x6b\x16\x62\x94\x66\xc2\x97\x00\xf3\x62\x75\x9c\x7a\xad\x41\x5d\x9c\x63\xb8\x03\x90\x9f\x4e\xa3\x1c\xf0\x97\xf4\xec\x1f\x77\x9f\x80\x4b\x91\x2c\x44\xad\x6f\x52\x71\x67\xb1\x08\xbc\xcb\xfa\xcf\xa8\x7f\x3f\x9b\x6f\xd2\x59\x5b\x47\xa8\x89\x79\x92\x05\x14\x46\xa7\x7d\xca\x5e\x2e\xe0\x50\x03\x06\x67\x56\xee\xca\x89\x61\x87\x1a\x71\x5b\xf6\xfa\x62\x30\x36\x4f\xdc\xd8\x7c\x3a\xde\x09\x6b\xb1\x2a\x76\x73\xe9\x78\x2a\x75\x0c\xe5\x31\xfa\xaf\xb7\x1c\x51\x6f\xc8\xd4\xa6\x83\xa8\x79\x48\x4f\x46\x32\xba\xd4\x4f\xd3\x37\xc8\xda\x9d\xb2\xd7\x7f\x4d\x65\x74\xab\x43\xd5\x3f\xaa\xc3\xd0\xfc\xfb\x8b\x3d\x22\xf3\x3f\xbe\x19\x92\xdb\x44\xfd\x75\xf3\xab\x4c\x3c\xc2\x01\x0b\x49\x93\x2f\xd9\xb7\xb3\xb9\xfa\xdb\xb7\x33\x76\x5d\x1a\x4d\xf2\x84\xd7\xb6\x7b\x52\x34\xcc\x46\xbd\xe4\x1e\x4d\x00\x05\x3b\x87\x81\x67\xac\x91\xa4\x97\xc8\x27\x33\xb7\x3a\x18\x38\x16\x32\x0e\xc5\x8c\xe9\xdf\xa4\x1c\x07\x76\x4d\x91\x3f\x7a\xe5\x44\xb8\x9f\x6f\x32\xbc\xea\x87\xa0\x9e\xe8\x0f\xa0\x9e\x8c\x4f\x3d\x89\xd7\x5c\xbf\x47\xa8\xa0\xac\x5a\xb7\x84\xc5\x21\xf7\x5a\x90\x15\xcd\x8b\x4e\x46\x5a\x84\xcb\x2b\x84\xca\x03\xa7\xe9\x74\x84\xca\x01\xc9\x6e\x10\x31\xdc\x27\xc3\x3a\xd2\x4e\xc2\xe5\x75\x9a\x62\xd4\x6a\x94\x56\xde\x57\xac\x35\x67\xd0\xab\x54\x73\xe5\x26\x25\x27\x0f\x62\x94\xfa\x77\xec\xad\x79\x2c\x5a\x69\xa8\x39\x0e\x4c\x1c\x26\xeb\x63\x0f\x64\x54\x1e\x44\x20\x23\x20\xa3\x09\x21\xa3\x16\xef\x9b\x43\xe0\x51\xc5\x85\x33\x4a\xa3\x00\x10\x12\xb4\xfd\xd3\xd3\xf6\x81\x90\xda\x5c\x37\x40\x48\xb0\xef\x40\x5d\x19\xaa\xba\x02\x84\xb4\x15\x21\xb5\x6a\xab\x38\x04\x26\x4d\x45\x7a\x04\x52\x82\x90\x79\xe0\x34\x9d\x8e\x90\x39\x20\x59\x0e\x22\x87\xfb\x64\x58\x47\x1a\x90\xd2\x68\xc5\xaa\xc9\x23\x25\x4a\x1c\xb9\x1d\x2c\x75\x8a\x92\x4c\xbe\xf1\xc8\x0f\x1e\x03\x7f\xc5\xc3\x62\xee\x52\xee\x2a\x0c\x6c\x1b\x92\x59\x21\x98\xfe\x27\x17\x86\x7f\x4e\x2f\x3d\xcf\x4b\xcf\x94\x6a\x89\x38\x79\x8e\x05\x51\x9a\x09\x5e\xb2\xf4\xae\x4b\x7b\x4f\x07\x58\x0a\x7f\x5b\xcb\xc9\x88\x54\xa3\x43\x8d\x1c\xa6\x4c\xb9\x37\x8f\x22\x3a\xed\x24\xa2\x34\x8b\xa7\x98\x49\x14\xe5\xde\x26\x5c\xee\x6d\x3f\xaa\xdb\x57\xea\x6d\xa7\xd5\xaf\x05\x0c\x89\x02\x6f\x28\xf0\x86\x02\x6f\x28\xf0\x36\xb5\x02\x6f\xfb\x4f\xde\xca\xe2\x6e\x1d\x3b\x7d\x1c\xad\xa4\xdb\xfe\xee\x6f\x2f\xe7\x36\xe4\x31\x38\xa4\x88\xdb\xfe\x31\xd8\x5e\xc0\xad\xe3\x31\x40\xd9\x36\x94\x6d\x43\xd9\x36\x94\x6d\x43\xd9\xb6\xce\xca\xb6\xd5\x38\xfd\x37\x4a\xb6\xed\x4c\xdb\x79\x42\x3e\x9f\xf5\x7a\x33\xe1\xb2\x73\xfb\x87\x7b\x57\xc9\xb9\xe3\x8e\x3b\x0a\xcd\x75\x32\xa3\x9b\x45\xe6\x3a\x9e\xd6\x5e\x4b\xcb\xed\x1f\x9e\x1d\x65\xe5\xba\x3e\x36\x87\x5a\x4c\x6e\xff\xa0\x55\x90\x8d\xc6\xf6\x3c\xf3\xaf\x7f\xb6\x07\xd3\x2a\x52\xf6\x77\xc4\xd4\x8a\x20\x2d\xb2\x97\xbf\x9c\xb3\x87\x20\xda\xee\xf8\xd4\x0a\x50\xbb\xc8\x65\x7f\xd2\x6f\x8c\x9c\xa8\xd4\x87\x5c\xa9\x39\x2f\x29\xc3\x85\x77\xb7\x85\xe3\x80\xe2\x80\xe2\xc6\x85\xe2\x80\xe1\x80\xe1\x80\xe1\xf2\x2f\x02\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x01\xc3\x8d\x0f\xc3\x21\xb1\x0c\x20\x23\x20\x23\x20\x63\xff\x33\x0a\xc8\x58\x1e\x1e\x40\xc6\xd1\x41\xc6\x3b\x91\xf1\xb7\x57\x8d\x18\x62\x2f\x31\xbf\x6b\xd3\xbe\x10\x59\x59\x92\xd7\x33\xbc\x83\xfb\x2d\x44\xb6\x46\xfd\x68\x08\xae\x6f\x3f\x7c\xae\x7a\x1a\x01\xcf\x07\x52\xb8\xc2\x40\x52\x14\xe3\xc4\x50\x1c\x2d\x96\xc2\xe3\xaf\x8a\x4d\x38\x60\xc7\xd5\x0a\x91\xed\xb0\x02\x7f\xa1\x0c\xf1\x8e\xa0\xd8\x1d\xfb\xa8\xb2\x1a\x3f\xf5\xed\x9d\x7b\x75\xff\x79\xf1\x47\x52\x9c\x1f\xfc\x08\xfc\x08\xfc\x08\xfc\x68\x6a\xfc\xa8\x5e\x06\x9b\x4a\x86\x74\xb4\xe4\x42\xc8\x01\x55\x7b\xa2\xfa\xcc\x01\x75\x34\xe8\x77\x40\xd6\xa5\x4a\xe8\x75\xb4\x11\xf9\x5a\xd4\xef\x83\x88\xa5\x5a\xed\x66\x77\x62\xae\xbd\x93\x9c\x81\x38\x17\x25\xcc\xe9\x45\x4b\xa7\x90\xf5\x2a\x92\xd1\x65\x24\x16\x9c\x16\xa8\xd1\xd0\x8b\xd9\xb1\x34\x2c\x72\x5b\xc3\xc8\x90\xc1\x72\x29\xfc\x80\x67\x22\x7c\xce\xdd\x86\xf2\x2b\x37\x08\x2f\x8c\x06\x4e\x83\xce\x16\x09\xf7\x68\xd7\x04\xd2\x77\x02\x41\x7e\x69\x93\x4f\x96\x5d\xa5\xab\x54\x35\xb2\x38\x5d\x5c\x3d\x69\x3b\x64\x7e\x64\x5e\x28\x5a\x1d\xa8\x07\xa8\x9d\x3a\x57\x68\x45\x1b\x1b\x4c\x33\xb5\xf9\x96\x9a\x5c\x65\xd5\xd8\x63\xd7\x18\xca\xf2\x3f\x84\xf7\xd6\x1b\x97\xed\xcc\xf7\x68\xcb\x1f\xf4\x17\xf4\x17\xf4\x17\xf4\x17\xf4\xb7\x33\xfa\x5b\xf3\x2e\xd8\x20\xc0\xc7\xbb\x16\xdf\x17\x42\x4c\xe2\x50\xf0\x54\xb8\x23\xe8\x36\x91\x31\x5f\x90\x74\x74\x2b\xc3\xc0\x7b\x2e\xf9\x1a\xdb\x45\x97\xc7\xa8\xa8\x65\xf7\x76\xf6\xa7\x19\xfb\xa2\xcf\x33\x2d\xba\xc4\x22\x52\x9b\x25\xbf\x53\x05\x93\x49\x7c\xcf\x23\xeb\xfb\x9c\xac\xc4\xd5\x9c\x87\x56\x57\xfe\x76\xa6\x3f\xfe\x76\xc6\xe6\x41\xc4\xc3\xe0\xdf\xf6\x22\xb9\x13\x8c\xfb\x04\xcd\xe4\x95\x06\x0a\x7e\xae\x86\xe9\xd7\x9f\xa7\xf9\x43\x5a\x3f\x9d\xb1\x9b\x80\x0e\xc7\x42\xd3\x65\xb2\xd9\xb7\x1c\x91\x66\x5a\x3d\x26\x1d\x45\x66\xf7\x4d\x26\x54\xf7\xe0\xbd\xed\xfb\x56\x91\xa7\x51\x26\xf3\x83\x14\x33\xea\xba\xda\xb0\xf7\xf2\x89\x2d\x78\x72\xc7\x17\x25\xd3\xa5\x53\x6a\x44\x32\x97\xc9\x52\xcd\x49\xe5\x78\x7d\x5a\xeb\xd1\xf6\xe1\x22\xa1\xd7\x4a\xac\xb1\x1e\xdb\x40\x49\x93\x5e\xe0\xe7\xaa\x30\xc9\x0a\x3a\xe1\xbc\x9d\x63\x75\x59\x9b\x9b\xd4\x4a\x03\xb3\xc2\x64\xda\x7b\xc4\x31\x4a\xe7\xc7\x5f\xfe\xb1\x19\xbb\xf6\x3c\x11\xeb\x7c\xb2\x45\xcd\xee\x5c\xf7\xe1\x9c\x5d\x9a\x05\x58\x5e\xa0\xe9\xcf\xec\xfc\x17\xee\x3d\x2c\x12\xb9\x8a\x7c\xf5\x2d\xf2\x89\xa7\x2f\xad\x0d\x9c\x16\x21\x8d\x7c\x5c\x7e\x89\xed\xc1\x9d\x7b\xd3\xcf\xec\xfc\x57\x99\x88\xc2\x6b\x99\xc7\x53\x8f\xfb\xaa\xf7\x66\x7c\x74\xc8\x04\xbd\x2f\xd5\xaa\xe7\xc6\x0b\xe7\xee\x1d\x4d\x16\x64\xbc\xbe\xdc\xfb\x91\x38\x27\xec\xcc\x50\x6f\x1e\x76\x39\x34\xf4\x35\x0b\x70\x6d\xe8\x6c\x7e\x37\xdd\x1b\x8e\x67\xdb\xe8\xd3\xd1\xa1\xde\x60\xed\x70\x76\x78\xa9\xfc\x53\xc9\xf1\x40\xa2\x0f\xc4\x74\xa6\x60\xc2\xc4\x01\x74\xe1\xf1\x2d\x01\xa1\xfa\x66\xce\xa5\xa6\xc1\xc7\x86\xae\x75\x71\x33\x40\xb4\xf5\x30\x77\x6d\x42\x4b\x8c\xda\x6d\x65\xfd\x7d\x11\xee\x3b\xe8\xb8\x7a\x61\x25\x1b\x6f\x91\x88\x23\x04\xf6\x74\x42\x60\xeb\x5d\x49\xfb\xc2\x60\x8f\xa7\xbb\xc1\xa1\x01\x0e\x0d\x70\x68\x80\x43\x03\x1c\x1a\xaa\x0e\x5f\x90\xf2\x11\x8d\x08\xe0\x29\xe0\x29\xe0\x29\xe0\x29\xe0\x29\xe0\xe9\xb4\xe0\x29\x78\x06\x78\x06\x78\x06\x78\x46\xe7\x3c\xe3\x00\xe6\x3f\xd0\x30\xce\x7a\x43\xb8\x19\xca\x39\xa9\xba\xef\x5b\x1f\x38\xad\x14\xa4\x87\x55\x42\x25\xb3\xff\xd6\x72\xa8\xa7\x10\x22\xb9\x9f\x50\x8d\xa2\x70\xe0\x5e\x2a\xd5\x20\x6d\xe9\x58\x92\x7d\xbc\x5a\x9b\xca\xb3\x58\xa6\x2d\x23\x38\xad\x08\x31\xde\x84\xb6\xe9\x67\xbb\xe6\x6d\x63\x2e\xa3\xbf\xfb\x14\x42\x2d\xfd\xd3\x89\xa3\x42\x2d\x7d\xd4\xd2\xaf\x68\xcc\x24\xa5\xab\x09\x15\xd4\x6f\xab\xa3\x3f\xec\xed\xa8\xf6\x3f\x1e\x7b\x4f\xa7\x2b\x2c\x93\xe8\x35\x56\x61\xf9\x15\x6b\x29\x4d\x4a\x45\xf1\x93\x0e\xb3\xa5\x34\x92\x4a\x77\x64\x48\xe9\x5d\x2a\x1d\x49\x5e\x14\xc8\x94\xc5\x49\x1e\xac\x4c\x89\x48\xf4\x13\x8a\x44\x47\xc8\x1d\x42\xee\x10\x72\x87\x90\x3b\xa8\xc3\xdb\x76\xd1\x20\xe3\x5b\xfa\x51\xfd\x10\x9e\xb3\x57\x9f\x33\x6a\xcb\x58\x35\x3a\x87\x04\x5a\x0f\xca\x49\x04\xf7\xd7\x24\xb3\x06\x5a\x98\x7a\xcb\x91\x23\x71\x0a\xd2\x8c\xf8\x4e\xfe\x75\x77\xea\x5f\xdc\xcb\x66\x8c\xdd\xa8\xff\xda\xbf\x2f\x79\x40\x76\xcf\x94\x79\xe1\x2a\xcd\x44\x92\xdf\x51\xda\x11\x97\x85\xc1\x83\x60\xe7\x7f\xe7\x4b\x91\xc6\xdc\x13\xe7\x4a\x14\xb5\xe2\xd3\x8c\xdd\x86\x3c\x8a\x84\x96\x61\x49\xc0\xe1\xa1\x96\xa9\xde\xfe\xd8\xe4\xd0\xa7\x36\xf6\x24\x7a\xb8\x41\x73\x92\xfb\x9d\x1d\x3e\xd5\x53\x76\xa3\x47\x4c\x5d\x37\x71\x6a\x47\xc7\xb8\xa0\xad\x52\x91\x90\xef\x58\x2e\x84\x3f\x77\x3c\x50\xaa\x31\xd3\x25\xfd\xc3\xbe\x13\x61\x4f\x2c\xce\xe6\x4b\xef\x9f\x85\x18\xaf\x39\xf1\x25\xec\x1d\x65\x44\x86\xe9\x59\x40\x1e\x40\x8d\x12\xd0\x5f\xd2\xb3\x7f\xdc\x7d\x20\x2e\x45\xb2\x10\xb5\xbe\x99\x66\x09\xcf\xc4\x22\xf0\x2e\xeb\x3f\xa3\xfe\xfd\x6c\xbe\x49\x47\x6f\x1d\x41\x27\xe6\x49\x16\x50\x80\x9e\xf6\x56\x7b\xb9\xd0\x13\x57\x14\xb7\x1e\x88\xe5\xb9\x2b\x7f\x88\x1d\x9a\xc6\x6d\xd9\xa9\x8c\xc1\x1e\x3d\x71\x7b\xf4\xe9\xf8\x38\xac\x85\xc2\xd8\xcd\xa5\xc3\xb5\xd4\x59\x94\xa7\x00\x78\xbd\xe5\x9c\x7a\x43\xd6\x38\x1d\xa3\xcd\x43\x7a\x32\x92\xd1\xa5\x7e\x9a\xbe\x41\x06\xf1\x94\xbd\xfe\x6b\x2a\xa3\x5b\x1d\x09\xff\x51\x9d\x88\xe6\xdf\x5f\xec\x39\x99\xff\xf1\xcd\x90\x9c\x2f\xea\xaf\x9b\x5f\x65\xe2\x11\x31\x58\x48\x9a\x7c\xc9\xbe\x9d\xcd\xd5\xdf\xbe\x9d\xb1\xeb\xd2\x68\x92\xa3\xbd\x36\xef\x93\xf2\x61\x36\xea\x25\xf7\x68\x02\x28\x96\x3a\x0c\x3c\x63\xb0\x24\x5d\x45\x3e\x99\xb9\xd5\xb1\xc6\xb1\x90\x71\x28\x66\x4c\xff\x26\xa5\x50\xb0\x6b\x8a\xdc\xdd\x2b\x27\xc2\xfd\x7c\x93\xe1\x55\x3f\x04\x95\x45\x7f\x00\x95\x65\xcc\x2a\x4b\xbc\xe6\x63\x3e\x56\xa5\x65\xd5\xba\xc5\x2c\x0e\xb9\xd7\x82\xfc\x68\x5e\x74\x5a\x12\x24\x3c\x6a\x21\x6d\x36\x99\xa6\xd3\x91\x36\x07\x24\xd4\x41\xf6\x70\x9f\x0c\xf0\x5c\x3b\x1d\x8f\xda\x09\x0b\x59\xab\xf1\xda\x85\x5f\xb1\x76\xdd\x4c\xaf\x52\x0d\xab\x9b\x94\xc9\x3c\x08\x77\xea\xdf\xb1\xd7\xe9\x51\xc1\xa7\xe1\xf1\x38\x4e\x71\xca\x1c\xf1\x94\x01\x7d\x02\x7d\x02\x7d\xaa\xf8\x66\x7f\xf4\xa9\xc5\x3b\xe8\x60\x0e\x55\x71\x09\x8d\xd2\x96\x00\x1a\x05\xfb\xc0\xe9\xd9\x07\x40\xa3\xda\x5c\x37\xa0\x51\xb0\x08\x41\x85\x61\x83\x57\x61\x40\xa3\xaa\x67\xd3\xd2\xa8\x56\x6d\x1a\x07\x73\xa9\xa9\x48\x94\xa0\x53\x90\x3e\x9b\x4c\xd3\xe9\x48\x9f\x03\x12\xf2\x20\x8b\xb8\x4f\x06\x78\xae\x81\x4e\x4d\x40\xe8\x3a\x21\x3a\x45\x49\x31\xb7\x33\xaa\x4e\xa9\x94\xc9\xa5\x1e\xf9\xc1\x63\xe0\xaf\x78\x58\xcc\xcb\xca\x5d\xf5\x84\x6d\x83\x33\x2b\x04\xfb\xff\xe4\xd2\x04\x9c\xd3\x4b\xcf\xf3\xb2\x3a\xa5\x3a\x29\x4e\xe4\x63\x41\x94\x66\x82\x97\x0c\xc4\xeb\x02\xe1\xd3\xa1\x06\xc6\xdf\xd6\x52\x4d\x22\x97\xea\x50\xc3\x9b\x29\x15\xf0\xcd\xa3\x88\x90\x20\x55\x2f\xf3\x93\xcd\x92\x8a\xca\x76\x13\xae\x6c\xb7\x1f\xf8\xed\xab\x6a\xb7\xd3\x6c\xd8\x02\xcc\x44\x2d\x3b\xd4\xb2\x43\x2d\x3b\xd4\xb2\x9b\x5a\x2d\xbb\xfd\x27\x6f\x65\x1d\xbb\x8e\x5d\x47\x8e\x56\xbd\x6e\x7f\xf7\xb7\x57\xae\x1b\xf2\x18\x1c\x52\xaf\x6e\xff\x18\x6c\xaf\x55\xd7\xf1\x18\xa0\x42\x1d\x2a\xd4\xa1\x42\x1d\x2a\xd4\xa1\x42\x5d\x67\x15\xea\x6a\x9c\xfe\x1b\xd5\xe9\x76\x66\x19\x3d\x21\xcf\xd1\x7a\xbd\x99\x70\x85\xbd\xfd\xc3\xbd\xab\xba\xde\x71\xc7\x1d\x35\xf5\x3a\x99\xd1\xcd\x7a\x7a\x1d\x4f\x6b\xaf\x55\xf4\xf6\x0f\xcf\x8e\x0a\x7a\x5d\x1f\x9b\x43\xad\x9b\xb7\x7f\xd0\x2a\x18\x47\x63\x7b\x9e\xf9\xd7\x3f\x5b\x06\x6c\x15\xb5\x06\x3a\xe2\x6c\x45\xb8\x16\x59\x09\x40\xce\xd9\x43\x10\x6d\xf7\x97\x6a\x05\xb2\x5d\xe4\x0a\x00\x29\x39\x46\x58\x54\x3a\x44\xae\xd9\x9c\x97\x34\xe2\xc2\xbb\x5b\x45\x74\xc0\x73\xc0\x73\x23\xc4\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\x40\x73\xa3\x47\x73\x48\x59\x03\xf0\x08\xf0\x08\xf0\xd8\xff\x8c\x02\x3c\x96\x87\x07\xe0\x71\xd0\xe0\x31\x11\x8b\x80\xd2\x79\xa9\x56\x1a\xf4\xd8\x08\x26\xf6\x12\x29\xbc\x36\xe1\x0b\x2a\xba\x3a\x97\xc9\xd2\x2d\x70\xce\x34\xc0\xd8\xce\x00\x17\x22\xbb\x2e\x8f\xc3\xf5\xed\x87\x3f\xaf\x3f\x84\x00\xe9\x03\x19\x9c\x1b\xc4\xf1\x13\xb8\xe2\xda\x28\x3c\xf8\xaa\xf8\xe3\xb5\x36\xd6\xe3\xdb\x71\xef\xad\x92\x7e\xac\xcf\xcd\x83\x36\xd6\xef\x6f\xaf\x6f\x3f\x7c\xae\x7a\x14\xdb\xeb\xf0\xed\x65\x07\x92\xc2\x86\xa7\xb5\xcb\xfe\xfb\xf1\xed\x4b\x37\x9a\xc1\x89\x81\x57\x9a\x46\x5b\xd1\xb6\x55\xff\x18\x53\x3b\xbb\x50\x88\x5c\xce\xd9\xf5\xed\x87\x2f\xfa\xf7\x77\x6c\x11\xfd\xe4\xc6\x2e\x79\xe7\xde\x54\xfd\x96\x6e\xb3\x04\x75\xb2\x5e\xdf\x53\x4f\x3f\xc5\x3a\x2b\x40\xbd\xd5\xba\x7b\x99\x82\xaf\x82\xaf\x82\xaf\x82\xaf\x4e\x8d\xaf\xd6\xcb\x0e\x55\xc9\x58\x8f\x96\xb8\x0b\xf9\xd5\x6a\x4f\x54\x9f\xf9\xd5\x8e\x06\xc5\x0f\xc8\x68\x56\x09\x85\x8f\x36\x22\x5f\x8b\xf6\xaf\x20\x62\xa9\x36\x4b\xb1\x3b\x31\xd7\xde\x7b\x0e\xa0\xe4\xa2\x84\x39\xbd\x68\xe9\x14\x32\xca\x45\x32\xba\x8c\xc4\x82\xd3\x02\x35\x16\xac\x62\xe6\x39\x0d\x53\xdd\xd6\x30\x42\x62\xb0\x5c\x0a\x3f\xe0\x99\x08\x9f\x73\xb7\xba\xfc\xca\x0d\xc2\x0b\x63\xa1\xa2\x41\x67\x8b\x84\x7b\xb4\x6b\x02\xe9\x3b\x81\x20\xbf\xb4\xc9\x67\xd1\xae\xd2\x55\xaa\x1a\x59\x9c\x2e\xae\x9e\xb4\x1d\x32\x3f\x32\x2f\x14\xa2\x0f\xd4\x03\xd4\x4e\x9d\xa0\xb7\xa2\x8d\x0d\xa6\x99\xda\x7c\x4b\x4d\xae\xb2\xfa\xed\xb1\xfb\x0d\x65\xf9\x1f\xe2\x0f\x51\x6f\x5c\xb6\xfb\x44\x1c\x6d\xf9\xc3\x3b\x02\xde\x11\xf0\x8e\x80\x77\x04\xbc\x23\x3a\xf3\x8e\xa8\x79\x17\x6c\x78\x48\x1c\xef\x5a\x7c\x5f\x88\xc8\x8a\x43\xc1\x53\xe1\x8e\xa0\xdb\x44\xc6\x7c\x41\xd2\xd1\xad\x0c\x03\xef\xb9\xe4\x8b\x6f\x17\x5d\x1e\xd2\xa5\x96\xdd\xdb\xd9\x9f\x66\xec\x8b\x3e\xcf\xb4\xe8\x12\x8b\x48\x6d\x96\xfc\x4e\x15\x4c\x26\xf1\x3d\x8f\x6c\x6c\x40\xb2\x12\x57\x73\x1e\x5a\x5d\xf9\xdb\x99\xfe\xf8\xdb\x19\x9b\x07\x11\x0f\x83\x7f\xdb\x8b\xe4\x4e\x30\xee\x13\x54\x96\x57\x1a\xb8\xf9\xb9\x1a\xa6\x5f\x7f\x9e\xe6\x0f\x69\xfd\x74\xc6\x6e\x02\x3a\x1c\x0b\x4d\x97\xc9\x66\xdf\x72\x17\x82\x4c\xab\xc7\xa4\xa3\xc8\xec\xbe\xc9\x84\xea\x1e\xbc\xb7\x7d\xdf\x2a\xf2\x34\x2a\x1f\x70\x90\x62\x46\x5d\x57\x1b\xf6\x5e\x3e\xb1\x05\x4f\xee\xf8\xa2\x64\x9b\x74\x4a\x8d\x48\xe6\x32\x59\xaa\x39\xa9\x1c\xaf\x4f\x6b\x3d\xda\x3e\x5c\x24\xf4\x5a\x89\x35\xd6\x63\x1b\x28\x69\xd2\x0b\xfc\x5c\x15\x26\x59\x41\x57\x79\xb0\x73\x9c\x12\xaf\xa3\x4f\xad\x34\x30\x2b\x4c\xa6\xbd\x47\x1c\xc3\x77\x71\x2e\xe5\x1f\x9b\xb1\x6b\xcf\x13\xb1\xce\xd5\x5c\xd4\xec\xce\x75\x1f\xce\xd9\xa5\x59\x80\xe5\x05\x9a\xfe\xcc\xce\x7f\xe1\xde\xc3\x22\x91\xab\xc8\x57\xdf\xa2\x98\x11\xfa\xd2\xda\xc0\x69\x11\xd2\xc8\xc7\xe5\x97\xd8\x1e\xdc\xb9\x37\xfd\xcc\xce\x7f\x95\x89\x28\xbc\x96\x79\x3c\xf5\xb8\xaf\x7a\x6f\xc6\x47\x87\x14\xd1\xfb\x52\xad\x7a\x6e\xbc\x70\xee\xde\xd1\x64\x41\xc6\xeb\xcb\xbd\x1f\x89\x73\xc2\xce\x3e\xf5\xe6\x61\x97\xc3\x4f\x5f\xb3\x00\xd7\x9f\xce\xe6\x77\xd3\xfd\xe7\x78\xb6\x8d\x3e\x1d\x81\xea\x0d\xd6\x0e\x67\xa0\x97\xca\x3f\x95\xa0\x0e\x58\xf9\x40\x4c\x67\x2a\x92\x4c\x99\x26\x17\x9e\xdd\x12\x32\xad\xaf\xe5\x5c\x64\x6a\x29\x7a\xba\x02\x54\x57\xc7\x4f\x57\x42\xdf\xf5\x88\xe9\x5d\xc1\xd2\xad\x67\x80\xd0\xe6\xb2\xc4\xa8\xd8\x56\xae\xb7\xc9\x1f\x6a\xa1\x6e\xf5\x8a\x2a\x77\x90\x17\xe0\x6d\xc4\x7b\x9f\x4e\xbc\x77\xbd\xfb\x65\x5f\xcc\xf7\xf1\x14\x31\x78\x27\xc0\x3b\x01\xde\x09\xf0\x4e\x80\x77\x42\xd5\xe1\x0b\xec\x3d\xa2\x11\x01\x09\x05\x09\x05\x09\x05\x09\x05\x09\x05\x09\x9d\x16\x09\x05\x9c\x00\x9c\x00\x9c\x00\x9c\xe8\x1c\x4e\x1c\x00\xf0\x07\x1a\xb3\x5c\x6f\x08\x37\xe3\x96\x5f\x6a\x71\x1b\x14\xd6\xd9\xfa\xc0\x09\x65\xde\x55\x6d\xbf\xe4\x8b\x85\xda\x89\x99\x2c\x57\x09\x2e\x11\x0e\x1d\xa4\x68\xcc\xfb\x93\x8f\x51\xdc\x4f\x95\x5a\x2c\x91\x79\x3c\x92\xd4\x20\xed\xee\x58\x92\xd5\xbc\x5a\x9b\xb9\xb3\x58\xa6\x2d\x63\x33\xad\xdb\x30\x1e\xd5\x43\x64\xfa\xeb\x2d\x43\xb2\x66\x31\xa0\x3b\x72\x1d\x1d\xfb\xe8\x68\x25\x58\x14\x01\x4b\xc5\xd5\x30\xd8\x80\x25\x32\x69\x7c\xe4\x11\x5f\x88\x44\x1b\xe7\x28\xb1\x17\x4f\x53\xe9\x05\xa4\x6d\x3a\x33\x18\x27\x6b\xa6\x4c\x98\x88\x32\x25\xfe\x59\xf5\x7b\xc9\x1f\xd4\x28\x66\xf7\x22\x15\x56\x86\x2a\x86\xe5\xd8\xf0\x1d\x92\x21\xc9\xe4\x25\x13\xf6\xf6\x87\x1f\xd5\x77\x13\xee\x11\xe3\x0a\x65\xb4\xd0\x12\x13\x99\xa5\x3c\x19\x65\x3c\x88\xf4\xa1\x45\x66\x9f\xfc\xbb\x64\xf7\x37\x04\x8e\xdd\x3d\x3b\xa5\x60\x21\x43\x1e\x2d\x66\x32\x59\x5c\xc5\x0f\x8b\xab\x55\x14\x78\xd2\x17\x57\x7f\xf8\x90\xde\xaa\xb7\x34\xb6\x23\x9b\xc1\x69\x73\x7a\x06\x25\x62\x4d\x4e\xf2\xa9\x2b\xf5\xfc\x50\x43\xea\x79\xa7\x6d\x65\x23\xe9\xcf\x0f\x7b\xfb\xa3\xdd\x76\x47\xd2\xa1\x89\x8a\xa5\x24\xf5\x8c\x44\x2c\x7d\xc5\x9a\x25\x00\xa9\x28\x92\xd3\x61\x1e\x90\xba\xe2\xde\x96\xe4\x1f\x48\xf9\xc1\xb6\x0d\x30\xa4\xb8\xe2\x24\x0f\x56\x8a\x43\x90\xf5\x09\x05\x59\x23\x9a\x0c\xd1\x64\x88\x26\x43\x34\x19\x14\xd0\x6d\xbb\x68\x90\xa1\x1b\x3d\xa8\x67\x88\x3c\xd9\xab\x8c\x19\xad\x64\x24\xea\x98\xb3\x9c\xb7\x1e\x6f\x92\x08\xee\xaf\x49\x61\xb5\x54\x2a\xf5\x5c\xb7\x41\x26\x05\xd1\x44\x7c\x27\xd7\xb1\x3b\xf5\x2f\xee\x65\x33\xc6\x6e\xd4\x7f\xed\xdf\x97\x3c\x20\xb3\x61\xca\xbc\x70\x95\x66\x22\xc9\x2f\x1c\xed\x63\xca\xc2\xe0\x41\xb0\xf3\xbf\xf3\xa5\x48\x63\xee\x89\x73\x25\x57\x5a\x59\x68\xc6\x6e\x43\x1e\x45\x42\x0b\xa4\x24\xad\xf0\x50\x0b\x48\x6f\x7f\x6c\x72\x82\x53\x1b\x7b\x92\x23\xdc\xa0\x39\x31\xfc\xce\x0e\x9f\xea\x29\xbb\xd1\x23\xa6\xee\x8e\x38\xb5\xa3\x63\xbc\xab\x56\xa9\x48\xc8\x2d\x2a\x97\xa8\x9f\x3b\x1e\x28\xd5\x98\xe9\x42\xec\x01\x5f\x70\x30\xe0\x35\xb8\x33\x16\x62\x34\xf6\xbb\x97\x60\xe5\x62\x85\x97\x6d\xbf\x8f\x9a\x2e\xc7\xc0\xe4\xe4\xa1\xd2\x28\x6f\xf9\x25\x3d\xfb\xc7\xdd\xa7\xda\x52\x24\x0b\x51\xeb\x9b\xb4\x56\xc5\x22\xf0\x2e\xeb\x3f\xa3\xfe\xfd\x6c\xbe\x49\xe7\x67\x1d\x71\x24\xe6\x49\x16\x50\x00\x99\xf6\xa6\x6a\x22\x9a\xc4\xa6\xd4\x78\xff\xc6\xde\x4e\xd8\xfe\x6e\xe1\xfe\xb6\xec\xd5\xc4\x60\x02\x9e\xb8\x09\xf8\x74\x40\xfe\x5a\x2c\x86\xdd\x5c\x3a\x5e\x48\x1d\x36\x79\x0c\xfa\xeb\x2d\x07\xd1\x1b\x32\x80\xe9\x20\x61\x1e\xd2\x93\x91\x8c\x2e\xf5\xd3\xf4\x0d\xb2\x41\xa7\xec\xf5\x5f\x53\x19\xdd\xea\x50\xec\x8f\xea\xc8\x33\xff\xfe\x62\x0f\xc2\xfc\x8f\x6f\x86\xe4\x61\x50\x7f\xdd\xfc\x2a\x13\x8f\x8c\xf4\x0b\x49\x93\x2f\xd9\xb7\xb3\xb9\xfa\xdb\xb7\x33\x76\x5d\x1a\x4d\xf2\xf4\xd6\x16\x75\x52\x11\xcc\x46\xbd\xe4\x1e\x4d\x00\x05\xf3\x86\x81\x67\x6c\x84\xa4\x51\xc8\x27\x33\xb7\x3a\xd8\x35\x16\x32\x0e\xc5\x8c\xe9\xdf\xa4\x18\x7e\xbb\xa6\xc8\xdf\xba\x72\x22\xdc\xcf\x37\x19\x5e\xf5\x43\x50\x2c\xf4\x07\x50\x2c\xd6\xde\x3a\x38\xc5\x22\x5e\x73\x64\x1e\x89\x6a\xb1\x6a\xdd\x16\x15\x87\xdc\x6b\x24\xf3\x99\x47\xa7\x2b\xf5\xc1\xa3\x13\x82\x20\x04\x41\x78\x74\x42\x2c\xd0\xff\x5e\x43\x6c\xd3\xf2\xe8\x9c\xaa\x98\xb3\x1a\x8d\xfd\xf4\x15\x7b\x91\xff\xe3\x55\xaa\x19\x6b\x93\x12\x84\x07\x91\x3b\xfd\x3b\xf6\xde\x6b\x97\xe1\x19\x4e\x8c\x83\x0d\x07\x01\x40\x0a\x40\x0a\x40\xca\xa8\x41\xca\x8b\x6e\x8a\x7d\x48\xa5\xe2\xaa\x18\x9f\x8a\x0d\xb0\x02\x7d\xfa\x24\xf5\x69\x80\x95\x36\xd7\x0d\xc0\x0a\x2c\x28\x50\x34\x86\xa1\x68\x00\xac\x94\xc0\xca\x0b\xad\x05\xfb\x10\xcb\x24\xa4\x40\x80\x16\x08\x86\x10\x0c\x01\x5a\x20\x26\xe8\x7f\x03\xb4\x8c\x50\xec\x99\x28\x68\xa1\x94\x7d\x45\xdc\xd2\x29\x60\x31\xb9\x9d\x23\x3f\x78\x0c\xfc\x15\x0f\x8b\x79\x22\xb9\xcb\xe6\x9e\x77\x7c\x56\x08\xb0\xfe\xc9\x85\x66\x9f\xd3\x6b\xce\xf3\xc2\x1e\xa5\x4a\x0d\x4e\xc6\x62\x41\x94\x66\x82\x97\xec\xa6\xeb\x12\xd8\xd3\x1e\x2b\xdc\x6f\x6b\x79\xef\x90\xbc\x71\xa8\x11\xa4\x94\x7b\xf4\xe6\x51\x44\xa7\x9e\xaa\x91\xe6\xf1\x54\xf2\x35\xa2\x6c\xd6\x84\xcb\x66\xed\x47\x5c\xfb\x4a\x66\xed\xb4\xa3\xb5\x80\xef\x50\x28\x0b\x85\xb2\x50\x28\x0b\x85\xb2\xa6\x56\x28\x6b\xff\xc9\x5b\x59\x24\xab\x63\x67\x89\xa3\x95\xc6\xda\xdf\xfd\xed\x65\xb1\x86\x3c\x06\x87\x14\xc3\xda\x3f\x06\xdb\x0b\x61\x75\x3c\x06\x28\x7f\x85\xf2\x57\x28\x7f\x85\xf2\x57\x28\x7f\xd5\x59\xf9\xab\x1a\xa7\xff\x46\xe9\xab\x9d\x49\x1b\x4f\xc8\x57\xb2\x5e\x6f\x26\x5c\xbe\x6b\xff\x70\xef\x2a\xdd\x75\xdc\x71\x47\xc1\xae\x4e\x66\x74\xb3\x58\x57\xc7\xd3\xda\x6b\x89\xae\xfd\xc3\xb3\xa3\x3c\x57\xd7\xc7\xe6\x50\x8b\x72\xed\x1f\xb4\x0a\x9e\xd1\xd8\x9e\x67\xfe\xf5\xcf\x97\xc1\xb1\x8a\x5c\xec\x1d\x31\xb2\x22\x18\x8b\xec\x85\x2f\xe7\xec\x21\x88\xfc\xb6\x01\xd9\x45\x2e\xe1\x93\x16\x63\xa4\x41\xa5\x24\xe4\xaa\xcb\x79\x49\xe5\x2d\xbc\xfb\x25\x78\x0d\x68\x0d\x68\x6d\x6c\x68\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x0d\x58\x6d\x6c\x58\x0d\x29\x55\xea\xcf\x0e\x30\x21\x30\x21\x30\x21\x30\x21\x30\x21\x30\xa1\xc3\x84\x77\x22\xe3\x6f\xaf\x1a\x31\xc1\x5e\xa2\x6a\xd7\x26\x7e\x21\xb2\xb2\xf4\xae\xe7\x78\x07\xd5\x5b\x88\x6c\x83\xe9\xd1\x20\x5c\xdf\x7e\xf8\x5c\xf5\x3c\x82\x8a\x0f\x24\x6e\x85\x81\xa4\x08\xc4\xc9\x61\x37\x5a\x2e\x85\x17\xbc\x2a\x36\xe2\xa0\x7d\xb7\x25\x74\xb5\xc3\x12\xe9\x85\x02\xb2\xa5\x60\xd5\x1d\x3b\x66\x4b\xb5\x74\xea\xc1\x3b\xf7\x3a\x14\x4f\x67\xdb\x86\x1e\x44\x08\x44\x08\x44\x08\x44\x68\x6a\x44\xa8\x5e\x06\x98\x4a\x2a\x74\xb4\xe4\x3c\xc8\xa1\x54\x7b\xa2\xfa\xcc\xa1\x74\x34\x8c\x77\x40\xd6\xa2\x4a\x8c\x75\xb4\x11\xf9\x5a\xd4\xdf\x83\x88\xa5\x5a\xad\x66\x77\x62\xae\xfd\x8d\x9c\xc9\x37\x17\x25\xcc\xe9\x45\x4b\xa7\x90\x35\x2a\x92\xd1\x65\x24\x16\x9c\x16\xa8\xd1\xc0\x8b\xd9\xa5\x34\xfe\x71\x5b\xc3\x48\x8a\xc1\x72\x29\xfc\x80\x67\x22\x7c\xce\x1d\x81\xf2\x2b\x37\x08\x2f\x8c\x86\xad\x4b\xf8\x2f\x12\xee\xd1\xae\x09\xa4\xef\x04\x82\xfc\xd2\x26\x2f\x2b\xbb\x4a\x57\xa9\x6a\x64\x71\xba\xb8\x7a\xd2\x76\xc8\xfc\xc8\xbc\x50\x78\x38\x50\x0f\x50\x3b\x75\x7e\xcc\x8a\x36\x36\x98\x66\x6a\xf3\x2d\x35\xb9\xca\x6a\xb1\xc7\x6e\x31\x94\xe5\x7f\x08\xc1\xad\x37\x2e\xdb\x29\xee\xd1\x96\x3f\x78\x2e\x78\x2e\x78\x2e\x78\x2e\x78\x6e\x67\x3c\xb7\xe6\x5d\xb0\xc1\x74\x8f\x77\x2d\xbe\x2f\x84\x87\xc4\xa1\xe0\xa9\x70\x47\xd0\x6d\x22\x63\xbe\x20\xe9\xe8\x56\x86\x81\xf7\x5c\xf2\x1e\xb6\x8b\x2e\x8f\x2f\x51\xcb\xee\xed\xec\x4f\x33\xf6\x45\x9f\x67\x5a\x74\x89\x45\xa4\x36\x4b\x7e\xa7\x0a\x26\x93\xf8\x9e\x47\xd6\x9b\x39\x59\x89\xab\x39\x0f\xad\xae\xfc\xed\x4c\x7f\xfc\xed\x8c\xcd\x83\x88\x87\xc1\xbf\xed\x45\x72\x27\x18\xf7\x09\x8a\xc9\x2b\x0d\x0c\xfc\x5c\x0d\xd3\xaf\x3f\x4f\xf3\x87\xb4\x7e\x3a\x63\x37\x01\x1d\x8e\x85\xa6\xcb\x64\xb3\x6f\x39\x02\xcd\xb4\x7a\x4c\x3a\x8a\xcc\xee\x9b\x4c\xa8\xee\xc1\x7b\xdb\xf7\xad\x22\x4f\xa3\xec\xdd\x07\x29\x66\xd4\x75\xb5\x61\xef\xe5\x13\x5b\xf0\xe4\x8e\x2f\x4a\x06\x4a\xa7\xd4\x88\x64\x2e\x93\xa5\x9a\x93\xca\xf1\xfa\xb4\xd6\xa3\xed\xc3\x45\x42\xaf\x95\x58\x63\x3d\xb6\x81\x92\x26\xbd\xc0\xcf\x55\x61\x92\x15\x74\x92\x75\x3b\xc7\xea\xb2\x36\x37\xa9\x95\x06\x66\x85\xc9\xb4\xf7\x88\x63\x90\xce\x33\xbf\xfc\x63\x33\x76\xed\x79\x22\xd6\xf9\x58\x8b\x9a\xdd\xb9\xee\xc3\x39\xbb\x34\x0b\xb0\xbc\x40\xd3\x9f\xd9\xf9\x2f\xdc\x7b\x58\x24\x72\x15\xf9\xea\x5b\xe4\xe5\x4e\x5f\x5a\x1b\x38\x2d\x42\x1a\xf9\xb8\xfc\x12\xdb\x83\x3b\xf7\xa6\x9f\xd9\xf9\xaf\x32\x11\x85\xd7\x32\x8f\xa7\x1e\xf7\x55\xef\xcd\xf8\xe8\x20\x08\x7a\x5f\xaa\x55\xcf\x8d\x17\xce\xdd\x3b\x9a\x2c\xc8\x78\x7d\xb9\xf7\x23\x71\x4e\xd8\x59\xa1\xde\x3c\xec\x72\x58\xe8\x6b\x16\xe0\xba\xd0\xd9\xfc\x6e\xba\x2f\x1c\xcf\xb6\xd1\xa7\x23\x43\xbd\xc1\xda\xe1\xcc\xf0\x52\xf9\xa7\x92\xd6\x81\x32\x1f\x88\xe9\x4c\x71\x81\xc9\xc3\xe5\xc2\x0b\xb6\x04\x76\xea\xbb\x39\x97\x9b\x06\x19\xe3\xb9\xd6\xad\xcd\x40\xcf\xd6\x43\xd1\xb5\xe1\x2c\x31\xca\xb6\x95\xf0\x37\xa3\xd0\x77\x90\x6f\xf5\x8a\xad\xce\x22\x2f\xa0\xdd\x08\x58\x3d\x9d\x80\xd5\x7a\xd7\xcd\xbe\xa0\xd5\xe3\xe9\x65\x70\x56\x80\xb3\x02\x9c\x15\xe0\xac\x00\x67\x85\xaa\xc3\x17\x14\x7c\x44\x23\x02\x30\x0a\x30\x0a\x30\x0a\x30\x0a\x30\x0a\x30\x3a\x2d\x30\x0a\x56\x01\x56\x01\x56\x01\x56\xd1\x39\xab\x38\x80\xe7\x0f\x34\x04\xb3\xde\x10\x6e\x86\x61\x4e\xaa\x8e\xf9\xd6\x07\x4e\x28\x4d\xe8\x01\x95\x43\xc9\xc4\x3f\x5b\x2b\xa4\x08\xd2\x74\x36\xd8\xc2\x7c\x7b\xe9\x52\x83\x34\xa2\x63\x49\xc5\xf1\x6a\x6d\xfa\xce\x62\x99\xb6\x8c\xd2\xb4\xaa\xc3\x78\x54\x0f\x9b\xe9\xaf\x77\x01\xce\xc6\x59\x17\x7e\xfd\x38\x41\x71\xf8\xd3\x09\x6c\x42\x71\x78\x14\x87\xaf\x68\xcc\xe8\x45\xa2\x49\x54\x88\x6f\xde\xa9\x1f\xf6\x76\x4a\x3b\xfa\x8e\xa9\x57\x53\x96\x5c\x49\x26\x1a\x93\xe4\xfa\x8a\xbd\x20\x97\x48\x45\xa5\x8f\x0e\x53\x8a\xd4\x15\x0b\x77\xe5\x11\x41\xf6\x10\xb6\x6d\x94\x21\xe8\x15\x27\x79\xb0\x82\x1e\xe2\xb5\x4f\x28\x5e\x1b\x81\x69\x08\x4c\x43\x60\x1a\x02\xd3\xa0\xa3\x6e\xdb\x45\x83\x8c\x02\xe9\x41\x6f\x43\x10\xcb\x21\x41\x2c\xa3\x52\xd1\x9c\xc1\xbd\xf5\xd0\x95\x44\x70\x7f\x4d\x1e\xab\xa5\x61\xa9\xe7\x8e\x10\xaf\x52\x90\x54\xc4\x77\xf2\x42\xbb\x53\xff\xe2\x5e\x36\x63\xec\x46\xfd\xd7\xfe\x7d\xc9\x03\x32\x34\xa6\xcc\x0b\x57\x69\x26\x92\xfc\xfe\xd1\xee\xaa\x2c\x0c\x1e\x04\x3b\xff\x3b\x5f\x8a\x34\xe6\x9e\x38\x57\x62\xa6\x15\x8d\x66\xec\x36\xe4\x51\x24\xb4\x7c\x4a\xc2\x0b\x0f\xb5\xbc\xf4\xf6\xc7\x26\x07\x3a\xb5\xb1\x27\xb1\xc2\x0d\x9a\x93\xca\xef\xec\xf0\xa9\x9e\xb2\x1b\x3d\x62\xea\x2a\x89\x53\x3b\x3a\xc6\x51\x6b\x95\x8a\x84\x3c\xac\x72\x01\xfb\xb9\xe3\x81\x52\x8d\x99\x2e\x0f\x1f\xf0\x7d\x07\x43\xdf\x8b\xee\x91\x85\x18\x97\x9d\xef\x25\x84\x1a\xc5\x2f\xd6\xba\xd9\x1b\x71\x27\xdf\x97\x46\x49\xd3\x2f\xe9\xd9\x3f\xee\x3e\xe4\x96\x22\x59\x88\x5a\xdf\xa4\x05\x2b\x16\x81\x77\x59\xff\x19\xf5\xef\x67\xf3\x4d\x3a\x4e\xeb\x88\x28\x31\x4f\xb2\x80\x42\xd3\xb4\x9f\x56\x13\x71\x25\xae\x2c\xb0\x3c\x2d\x37\x81\xdd\xf2\xff\x6d\xd9\x69\x8a\xc1\x4a\x3c\x71\x2b\xf1\xe9\xb8\x03\xac\x85\x7a\xd8\xcd\xa5\xc3\x91\xd4\x89\x93\x87\xb8\xbf\xde\x72\x1a\xbd\x21\x1b\x99\x8e\x41\xe6\x21\x3d\x19\xc9\xe8\x52\x3f\x4d\xdf\x20\x33\x75\xca\x5e\xff\x35\x95\xd1\xad\x8e\xf4\xfe\xa8\xce\x3d\xf3\xef\x2f\xf6\x34\xcc\xff\xf8\x66\x48\x7e\x0a\xf5\xd7\xcd\xaf\x32\xf1\xc8\x8e\xbf\x90\x34\xf9\x92\x7d\x3b\x9b\xab\xbf\x7d\x3b\x63\xd7\xa5\xd1\x24\x47\x72\x6d\x74\x27\xb5\xc1\x6c\xd4\x4b\xee\xd1\x04\x50\xac\x70\x18\x78\xc6\x8c\x48\x5a\x86\x7c\x32\x73\xab\x63\x69\x63\x21\xe3\x50\xcc\x98\xfe\x4d\x4a\x11\x60\xd7\x14\xb9\x73\x57\x4e\x84\xfb\xf9\x26\xc3\xab\x7e\x08\xca\x86\xfe\x00\xca\x46\xd5\x5b\x87\xa9\x6c\xc4\x83\x2d\xa9\xbf\x5f\xdd\x58\xb5\x6e\xb3\x8a\x43\xee\x35\x92\x03\xcd\xa3\x13\x97\x04\xe1\x30\x0a\x09\xb1\xc6\x34\x9d\x8e\x84\x38\x20\x41\x0c\xf2\x82\xfb\xa4\x6f\x79\x61\x92\x0e\xa3\x93\x16\x82\x56\xe3\xb2\xb8\xbe\x62\x2f\xf7\xac\xbc\x4a\x35\xb8\x6d\x52\x36\xf1\x20\x08\xa8\x7f\xc7\x5e\x88\x1d\xe0\x40\x43\xa0\x71\xec\xe1\x84\x00\x93\x59\x1b\x44\x30\x19\x30\x99\x51\x33\x99\x17\xdd\x1e\xb5\xe8\x4c\xc5\xf5\x31\x3e\xcd\x1c\x8c\x06\x1a\xf8\x49\x6a\xe0\x60\x34\x6d\xae\x1b\x30\x1a\xd8\x5c\xa0\x7c\x14\xfa\x3a\x08\xe5\x03\x8c\x66\x93\xd1\xbc\xd0\xaa\x50\x8b\xd6\x4c\x42\x32\x04\xb3\x81\xc4\x58\x63\x9a\x4e\x47\x62\x1c\x90\x60\x06\xf9\xc1\x7d\xd2\xb7\xfc\x00\x66\x33\x36\xa1\x68\xf2\xcc\x86\xd2\x11\x16\xc9\x4d\xa7\xac\xc6\xe4\xad\x8e\xfc\xe0\x31\xf0\x57\x3c\x2c\xe6\xc0\xe4\x2e\x53\x7d\x3e\x04\xb3\x42\x00\xf8\x4f\x2e\x74\xfc\x9c\x5e\x73\x9e\x17\x2d\x29\x55\xa1\x70\x62\x18\x0b\xa2\x34\x13\xbc\x64\x6e\x5d\x17\xd2\x9e\xea\x18\xef\x7e\x5b\x4b\xe7\x87\xec\x94\x43\x0d\x73\xa5\xe4\xaa\x37\x8f\x22\x42\x1a\x4a\xbb\xb8\x4f\x2a\x17\x25\x2a\x84\x4d\xb8\x42\xd8\x7e\x50\xb6\xaf\x3a\xd8\x4e\x43\x5c\x0b\x10\x10\x35\xc1\x50\x13\x0c\x35\xc1\x50\x13\x6c\x6a\x35\xc1\xf6\x9f\xbc\x95\xf5\xc0\x3a\x76\xb9\x38\x5a\x15\xb0\xfd\xdd\xdf\x5e\x01\x6c\xc8\x63\x70\x48\xdd\xaf\xfd\x63\xb0\xbd\xe6\x57\xc7\x63\x80\x4a\x5f\xa8\xf4\x85\x4a\x5f\xa8\xf4\x85\x4a\x5f\x9d\x55\xfa\xaa\x71\xfa\x6f\x54\xf9\xda\x99\x63\xf2\x84\x3c\x2e\xeb\xf5\x66\xc2\x95\xca\xf6\x0f\xf7\xae\x2a\x65\xc7\x1d\x77\xd4\x26\xeb\x64\x46\x37\xeb\x92\x75\x3c\xad\xbd\x56\x23\xdb\x3f\x3c\x3b\x2a\x91\x75\x7d\x6c\x0e\xb5\xfe\xd8\xfe\x41\xab\x20\x1b\x8d\xed\x79\xe6\x5f\xff\x6c\x01\x98\x55\x24\x91\xef\x88\x9b\x15\x61\x59\x64\x6f\x7d\x39\x67\x0f\x41\xe4\xb7\x0d\xcd\x2e\x72\x31\x9f\x54\x19\x23\x12\x2a\x4d\x21\xd7\x5f\xce\x4b\x7a\x6f\xe1\xdd\x2f\x46\x6e\xc0\x6d\xc0\x6d\xa3\xc4\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\x40\x6d\xa3\x44\x6d\x48\xd6\x52\x7f\x76\x80\x0e\x81\x0e\x81\x0e\x81\x0e\x81\x0e\x4f\x11\x1d\xc6\xe9\x55\x23\x10\xd8\x4b\xdc\xed\xda\xf4\x2e\xa8\x44\xe6\x5c\x26\x4b\xb7\x9c\x39\xd3\x50\x62\x3b\xcd\x5b\x88\xec\x3a\x8e\xd3\xeb\xdb\x0f\x7f\x5e\xff\x26\x62\x8c\x0f\xc4\x69\x6e\x10\x47\x0f\xd3\x4a\xdf\x7e\x55\xfc\xc5\x8a\x0d\xf3\xf8\x76\xdc\x7b\xa6\xa4\xd7\xea\xd3\x6f\xff\x86\xf9\xfd\xed\xf5\xed\x87\xcf\x55\xdf\xc7\xb6\x39\x7c\xdb\xd8\x81\xa4\x48\xdd\x09\xec\x9e\xff\x7e\x7c\x7b\xd8\x06\x52\xca\x7a\x22\x95\xaa\x9c\x88\xff\x9f\xbd\xb7\xeb\x71\x1b\xb9\xde\x7d\xef\xfd\x29\x0a\xce\x45\xdb\x48\xb7\x7a\xdb\xd8\x40\x06\x33\xf8\x5f\xf4\x8c\x3d\xfb\x4c\x12\xc3\x0d\xf7\x20\xb9\x71\xb0\x53\x22\x4b\xea\x3a\x4d\xb1\x08\x16\xd9\x3d\xca\x41\xbe\xfb\x41\xad\x7a\x21\x29\x51\x12\xa5\xa6\x24\x4a\x7a\x72\x33\x4e\x8b\x6f\xf5\xfe\xac\xf5\x5b\x55\xeb\x59\x92\x30\xdb\x6b\x40\x8a\xf5\x78\xe6\xce\x67\xe2\x4d\x6a\x1f\x8b\xf2\x4b\xf8\x9a\x6f\xee\x6b\xd6\x0c\x08\xf3\x28\x3b\x22\x96\x6f\xfb\x55\xe5\x77\x49\x12\xb2\x5e\x0e\x62\x9c\x20\x2c\x84\x06\xe4\xc8\x74\x3d\x33\xfc\x96\x5b\xed\x3c\x47\xe1\xe6\x00\x90\xfe\xb6\x5a\x67\xba\x3d\xda\x63\xed\xc0\x5a\x8c\xfa\x40\xc0\x07\x02\x3e\x10\xf0\x81\x80\x0f\x04\x7c\x20\xe0\x03\x01\x1f\x08\xf8\xd8\x66\xb6\x45\xc0\x07\x02\x3e\x10\xf0\x81\x80\x0f\x04\x7c\x20\xe0\x03\x01\x1f\x17\x17\xf0\x81\x00\x09\x04\x48\x20\x40\xe2\x34\x5a\x14\x01\x12\xcd\xea\x41\x80\xc4\xc0\x03\x24\x9e\x3f\xdc\xc6\x5c\xcc\x8c\xe5\x50\x1c\x93\x52\x7d\xa2\x8f\x78\x68\x26\xdd\x5b\x09\xa7\xc2\xd5\x60\x52\x8b\xb5\x3e\x3c\x26\x15\x1a\x0b\x28\xaa\xe5\xb2\x5e\x50\x54\xdb\xe8\x01\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\xda\x62\xda\x07\x81\x02\x81\x02\x81\x3a\x8d\x16\x05\x81\x6a\x56\x0f\x08\xd4\x09\x10\x28\x91\x25\x6a\x6e\xf4\xe3\x51\x11\x54\xf8\x8a\x6e\x0c\x2a\x5c\x0e\x08\xb5\x58\xef\x03\x84\x50\xa1\xb5\x40\xa1\x5a\x2e\xeb\x87\x42\xb5\x0d\x20\x60\x28\x60\x28\x60\x28\x60\x28\x60\x28\x60\x28\x60\x28\x60\x28\x60\x28\x60\x28\x60\x28\x60\x28\x60\x28\x60\x28\x60\x28\x60\xa8\x2d\xa6\x7d\x60\x28\x60\x28\x60\xa8\xd3\x68\x51\x60\xa8\x66\xf5\x00\x43\x0d\x1f\x43\xa5\x81\xe0\xd8\x34\x92\xf4\xef\xff\x6e\x3a\xce\xcf\xaa\x9d\x7e\x41\x95\x7d\x26\x8b\xcc\x5b\x23\xdf\x49\xb7\x3a\xc8\xcf\x3e\xc1\x1f\xe5\xe7\x1f\x13\x18\x55\xbc\xfe\x61\x2b\x1c\xf1\x6c\x11\x85\xd8\x16\x1c\xab\x78\xbe\x88\x6c\x7c\x13\xb6\xfd\xb6\x97\x83\x27\x3f\x51\x81\xbf\x52\x15\xea\x8e\x7c\x67\x3d\xd8\x81\x6f\x17\xbe\x5d\xf8\x76\xe1\xdb\x3d\x37\xdf\xee\x9a\x95\x77\x93\x7f\x77\xbd\x8a\x5b\xbf\x02\x6f\x35\xf7\xfe\xd3\x54\x9c\xb3\x6a\xaf\x99\x4c\x63\x53\x14\x6f\xb5\x37\xca\x56\xe7\xa8\x63\xc1\x32\x53\x5b\xda\x18\x80\xec\x2e\x65\x32\xb5\x33\x8b\xca\x59\x99\x86\xc9\x29\x66\x71\x3e\xff\x56\xa6\x2c\x96\xb9\x59\x17\x9f\x45\xe8\xf1\x66\xfa\x24\x1f\x84\x1b\xf2\xbe\x6f\xb8\x0a\x66\x93\x32\xa7\x51\x96\xe5\x2a\x12\x9a\x9c\x05\x4e\x3e\xba\x5e\x36\x62\xff\xa0\x37\x52\x6b\x51\xdf\xf9\x91\xdd\xb0\xbb\x24\xf9\x91\x5c\x01\xb1\x99\xa5\xcb\xd4\x34\xbc\x11\x62\xbe\x4b\xba\xc7\x89\x78\x87\x86\xb2\x65\x39\x4e\x33\x1d\xcc\x21\xdf\xad\x2a\x56\x3b\xe5\x0f\x56\x23\xbf\xd7\x2d\x0b\x69\xac\x7a\x12\xfc\x6c\x2c\x26\x36\x72\x20\x38\x6f\x2a\x29\xe1\x66\x2f\xea\x3a\xa5\xb0\x8b\xc3\xd8\x68\xea\xf4\x26\x15\x53\x4e\x1d\xd4\xd9\x06\xc6\x8c\xf1\x2b\xa8\x75\xe4\x86\xa1\xe1\x34\xa3\x9c\xcd\x44\x2c\x79\x21\x92\x79\x85\xf4\xab\x25\x57\x26\xd7\x4e\xfb\x53\xa5\xb3\x69\xce\x23\x1a\x35\x52\xc5\x41\x10\x54\x8b\x36\xc5\x4b\xf8\x5e\x5a\x6a\xf3\x91\xf5\xe6\xe2\xe6\x4e\x5f\x20\xf7\x92\x89\x9d\x03\xfd\x23\x46\xf6\x3b\x67\x82\xa7\xad\xdf\xb8\x43\x33\xd3\x37\xdf\xd3\x27\xb7\xd9\x53\x1b\x2c\xaa\xa1\x74\xff\x6d\x58\x4c\xb7\x7a\x59\xcd\x63\x0e\xd6\xfd\x41\x66\x40\x66\x40\x66\x40\x66\x40\x66\xf6\x46\x66\x3a\xae\x05\x4b\x74\xe6\x70\xcb\xe2\x27\x91\xe5\xc2\x88\x92\xf8\x47\x96\x25\x82\x6b\x11\xa6\xa0\xfb\x5c\x65\x7c\x4a\xea\xe8\x5e\x25\x32\x9a\x37\xe2\x00\x7d\xa7\x8b\xc3\x03\x4c\xb7\xfb\x30\xfa\xcb\x88\x3d\xd8\xf9\xcc\x4a\x97\x4c\xa4\x66\xb0\x54\x6b\xaa\x60\x2a\xcf\x1e\x79\xea\xe3\x12\xf3\x52\xdc\x4e\x78\xe2\x6d\xe5\xef\x6f\xed\xcf\xdf\xdf\xb2\x89\x4c\x79\x22\xff\xe3\x17\x92\xb1\x60\x3c\x26\x77\xbd\xba\xb5\xae\xcc\xb8\x32\xc3\xec\xe3\xaf\x74\x75\x93\xb5\x4f\x47\xec\xb3\xa4\xc9\xb1\xf6\xe9\x2a\x5f\x2e\x5b\x05\x67\x0a\x6b\x1e\x93\x8d\xa2\x8a\xc7\x5d\x1a\xd4\x96\xe0\x93\x2f\xfb\x4a\xc9\xd3\xe6\x18\xed\xd7\x30\xa3\xa2\x9b\x01\xfb\xa8\x5e\xd8\x94\xe7\x63\x3e\x6d\xb8\x2a\x83\x51\x23\xf2\x89\xca\x67\xa6\x4d\x5a\xeb\xeb\xeb\x42\x89\x56\x57\x17\x89\x5e\xaf\x58\x33\x5b\xb7\xd2\xa8\xc9\x48\xc6\x95\x29\x4c\x5a\x81\x9c\x13\xa1\x8d\x35\x65\xd1\xa2\x5f\xbd\x1a\x18\xd5\x1a\xd3\xaf\x23\x81\x8e\x84\x18\xdb\xe6\xcb\x46\xec\x2e\x8a\x44\x56\xd0\xda\x54\xb7\xec\xae\x6c\x19\xae\xd8\x8d\xeb\x80\xcd\x0e\xaa\x7f\x62\x57\x3f\xf3\xe8\x69\x9a\xab\x32\x8d\xcd\x55\x14\xaf\x4a\x17\x2d\x54\x9c\x95\x90\x4e\x1f\x37\x1f\xe2\x4b\x30\x0e\x4f\xfa\x89\x5d\xfd\xaa\x72\x51\x7b\x2c\x8b\xb8\x8e\x78\x6c\x4a\xef\xea\xc7\x86\x33\xd3\xf3\xb4\x35\x3d\x97\x1e\x38\x09\xcf\xd8\xa5\x43\x66\x8b\xdd\xfd\x38\x8a\xf3\x8c\x31\x6a\xb7\x76\x58\x87\x52\x8f\xd5\x0a\x80\xaa\x7b\x6b\xdf\x65\xb0\x7a\x38\xdf\xc6\x31\x11\x6b\xb7\xca\x5a\x83\x59\x5f\xab\x7f\x5a\xb9\x1d\xf2\xc3\x6d\x89\xe9\x1e\x0a\x5e\x94\x5d\xf9\xdc\x59\xed\xbf\xb2\x6b\x71\xa5\x93\xf6\xbb\x17\xab\xb7\xe4\x54\xa7\x91\xad\xae\x6f\xb0\x8d\x5d\x66\x97\xb3\xcb\xac\xdb\xca\xb2\x69\xa7\xd9\xe1\x4c\x30\xc4\x25\x20\x2e\x01\x71\x09\x88\x4b\x40\x5c\x42\xdb\xe4\x0b\xe0\x7d\x42\x35\x02\x06\x0a\x06\x0a\x06\x0a\x06\x0a\x06\x0a\x06\x7a\x5e\x0c\x14\x58\x02\x58\x02\x58\x02\x58\x62\xef\x58\x62\x0b\x74\x3f\xd0\x7d\x60\xdd\xaa\x70\x79\x2f\xd8\x6b\x3d\x6e\x83\x02\x3a\x2b\x6f\xb8\xd0\xf3\xfa\x96\xdd\xf8\x38\xb7\xaf\xe5\xb2\x61\xb1\xa2\x1d\xce\xef\x73\x5a\xd1\x8c\x72\x9a\x47\x4c\x9b\x30\x1d\xa9\x4c\x5c\x33\x5d\x46\x8f\x66\xe2\xa1\x89\x5d\xf0\x99\x9d\x95\xb2\x5c\x91\x36\x6d\xdb\x4b\x9a\xf1\xe2\xb1\x7d\x2b\x69\xd8\xcf\xd9\xfc\xd9\x08\x2d\x99\x8b\xd8\x4d\x0f\x8d\xdf\xf6\xbb\x5f\xf9\x54\x0e\x33\x70\xff\xfa\x57\xd5\xc8\x4a\xf7\x4c\x04\xad\x9d\xc6\xf8\x76\xf0\xcf\xde\xb5\x1f\xfc\xb7\xdb\xbe\xd6\x35\x9d\x69\x5f\x93\x62\x2f\x1b\x5d\xb1\xd9\xaa\xde\xea\x83\xdd\x6c\x45\x4e\x99\x2f\x3c\xe5\x53\x91\x5b\xf7\xa2\x9d\x35\xb5\x56\x91\x24\x7b\x39\x38\xf2\x38\xf9\x63\x55\xce\x44\x5a\x18\x01\xeb\x1d\x08\x33\xfe\x64\x6a\xb1\x78\x14\x5a\x78\x15\x58\xdf\x52\xe4\xb7\x1e\x91\x0a\x26\xa7\x9d\xca\xd9\x87\x8f\x3f\x98\x6b\x73\x1e\x11\xa5\x4b\x54\x3a\xb5\x9a\x8f\x1c\x6b\x91\x4a\x0b\x2e\x53\x3b\x55\x91\xe3\xaa\xba\x96\xc8\x85\x63\x88\x6c\x3c\x0f\x66\xcd\x54\x25\x3c\x9d\x8e\x54\x3e\xbd\xcd\x9e\xa6\xb7\x65\x2a\x23\x15\x8b\xdb\x3f\xfd\xa6\xef\xcd\x53\x76\xf6\x84\xbb\xca\xe9\xb3\x79\x06\x25\x12\x4f\x56\xbb\x75\xd5\x6d\x1f\x3b\xe8\xb6\x5f\xac\x57\x6f\x60\xdf\xfd\x71\xe3\x77\xdb\x10\xe2\x81\x7d\xf8\x39\x09\x65\x12\x26\x83\x16\xca\x6f\x58\x0f\x67\x8f\xd8\xdf\xff\x7b\xa0\x23\x48\xb6\x14\x65\xf5\x63\x47\x86\x21\xca\x4e\xe4\xb0\x11\x68\xb0\x7a\x23\x0f\x56\x83\x61\x7b\xf7\x05\x6d\xef\xc6\x3e\x36\xec\x63\xc3\x3e\x36\xec\x63\x83\xf9\xb8\x6a\x14\x0d\x72\xd3\xc8\x71\x8c\x31\xec\x79\x59\xb9\xe7\x65\xd8\x46\x59\x70\x6c\xf7\xbe\xd3\x25\x17\x3c\x5e\x10\x5c\x5b\x19\x53\xe6\xfe\x83\x6c\x6f\xa9\x89\x12\xf1\x07\x05\xad\x8d\xcd\xbf\x78\x54\x8c\x18\xfb\x6c\xfe\xeb\xff\x3e\xe3\x92\xdc\x7d\x9a\x45\x49\xa9\x0b\x91\x57\x4b\x8d\x8d\x6e\x65\x89\x7c\x12\xec\x2a\x7c\xf0\x95\x51\x94\x5e\x05\x8d\xd8\x7d\xc2\xd3\x54\x58\x29\x4a\x3a\x85\x27\x56\x1a\x7d\xf8\x61\x97\xb9\x9b\xbe\xf1\x48\x0a\x22\x54\x5a\x10\xe0\x63\x5f\x7d\xa6\xa4\xec\xb3\xad\x31\xb3\x6a\x64\xda\xd7\x8e\x8b\xeb\x2a\xb5\xc8\x29\x20\xab\xd2\xd2\xf3\x3d\x57\x94\xf9\x98\xf3\xc5\xe7\xc3\x5e\xda\xe0\xa8\x6b\xac\x0a\x53\x31\x70\x3f\xdd\x6b\x80\x36\x31\x19\xe7\x22\xd9\xf4\x1d\x5d\xa0\xf5\x50\x78\x35\x40\xfd\xc9\x81\x7a\x8a\xf7\xe9\xa4\x68\x16\xa7\xe7\x1b\xba\xf7\xcf\xeb\x67\xea\x99\xc8\xa7\xa2\xd3\x95\xba\xc8\x79\x21\xa6\x32\xba\xe9\x7e\x8f\xf9\xf7\xdc\x5d\x49\x6b\x42\x17\xc5\x95\xf1\xbc\x90\xb4\x1d\xcf\xc6\xa6\xbd\x46\x7d\xd1\xab\x87\xe4\xc9\xde\x57\x78\xc1\x1a\xcb\xe5\xbe\x19\x32\xc6\xe0\xdf\x3e\x73\xff\xf6\xe5\xc4\x18\x2c\x6c\x74\xf1\x83\xcb\x6e\xc6\x32\x73\x4f\xb5\xc1\xff\xdd\x8a\x79\xe9\x3d\x79\xf7\xec\x0e\x6c\x9e\xd0\x9d\xa9\x4a\x6f\xec\xdd\x74\x05\x39\xd8\x35\x7b\xf7\x57\xad\xd2\x7b\xbb\xcf\xfd\x8b\x99\x01\xdd\xbf\x1f\xfc\xbc\x58\xfd\xf1\xfd\x90\x82\x1f\xba\xf7\x9b\x5f\x55\x1e\x11\x81\x98\x2a\x6a\x7c\xc5\xbe\xbf\x9d\x98\xbf\x7d\x7f\xcb\xee\x1a\xb5\x49\x61\xf4\x16\x17\x90\x15\xe4\x06\xea\x0d\x8f\xa8\x01\x68\xa7\x74\x22\x23\xe7\x00\x25\xa3\x49\xbd\xb8\xb6\xb5\x3b\x89\x33\xa1\xb2\x44\x8c\x98\x7d\x27\x1d\x90\xe0\xfb\x14\x05\xb3\xb7\x36\x44\x78\xfd\x2e\xd5\x6b\x5e\x04\xdb\xc9\xfe\x00\xdb\xe9\xb8\x41\x0e\x0b\x21\xe0\x83\xb6\x9e\xca\xde\x1d\x6a\x59\xc2\xa3\x57\xa9\x3a\xf7\x88\x4b\xd0\x75\x08\x1b\x85\xa4\xbb\x28\x49\x37\x20\xe5\x84\x05\x3e\xfc\x82\xb0\xd1\xcb\x10\x26\xe5\xc0\x9d\xba\x6f\xd8\xb6\xc1\x97\x31\x17\x33\x33\x44\x8a\xe3\xe4\x7b\xfb\x44\xaf\x7f\x68\x3a\xcb\xb7\x4c\xf3\xd6\xfa\x0c\x04\x5c\xe2\x14\x35\x9c\xa2\x86\x53\xd4\x70\x8a\x1a\x4e\x51\x3b\x8a\x49\x02\xcb\xb1\x73\x43\x21\xbb\xdb\x90\x0e\xbb\x43\xf8\xff\x05\x85\xff\xe3\x64\x43\x9c\x6c\x88\x93\x0d\x71\xb2\x21\x4e\x36\xc4\xc9\x86\x38\xd9\x10\xbb\xe2\xb0\x2b\x0e\xbb\xe2\xb0\x2b\x6e\xb1\x47\x22\xbb\x1b\x8e\x51\xc5\x31\xaa\x38\x46\xf5\xc4\x8f\x51\x6d\xa5\x74\x00\xf6\xd8\xe9\xba\x78\xc3\x20\xb2\xbb\xb5\x61\xdd\x01\x27\x75\xeb\x42\xb2\xdb\x72\xb9\xbd\x8a\x5e\x23\x85\x1b\x52\xb8\xd9\x9f\x90\xc2\x0d\xc1\x07\x08\x3e\x40\xf0\x01\x82\x0f\x10\x7c\x00\xaa\x0d\xd0\xb9\xb9\x46\x00\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x2f\x18\x74\x82\x3d\x80\x3d\x80\x3d\x80\x3d\x20\x85\x1b\x52\xb8\x21\x85\x5b\xf8\xa5\xf3\xbe\xc8\xe0\xbd\x47\xe6\xb6\x96\xcb\x06\xc1\x81\x90\xb0\xed\x12\xce\x81\xdb\x5f\xc2\xb6\x2e\x60\xaf\x3d\x4f\xdb\x11\x36\xa6\xee\xfd\x9c\x8d\xaa\x4c\xdd\x26\x3b\x6c\x92\x3a\x83\x4d\x52\x38\x5e\x03\xc7\x6b\xb4\x7c\xcc\x80\xe5\xd8\x69\x9c\xaa\xb1\xc3\xe7\x1e\x35\x07\xdb\xd6\xdf\x7b\x4e\x4a\x77\xff\xa9\xd7\x76\x54\xba\x6f\xd8\xee\x87\x7e\x1c\x3a\xd1\xda\xb6\xe7\x7d\xe0\x94\x8f\x96\xd2\x40\x44\x9d\xa2\x88\xc2\xbe\xea\x0b\xda\x57\x8d\x0d\x64\xd8\x40\x86\x0d\x64\xd8\x40\x06\xfb\x6f\xd5\x28\x1a\xe4\x6e\x0d\xa4\x55\x1b\x8c\xb9\x75\x88\xb4\x6a\x83\xdb\x62\xd2\x92\x4d\xad\x8b\xc5\xd4\x96\x44\xad\xcf\x7d\x25\xc8\x9d\x16\xfa\x40\x77\x99\x80\xdc\x69\xee\x7f\x58\xbf\xe0\x60\x1b\x44\xca\xb4\x23\x90\xe4\x7a\xa6\xb4\x15\xaf\x47\x82\xb4\xf6\x32\x03\x8c\x23\x41\xda\x3e\x12\xa4\x75\x11\x54\xad\x79\xd1\xce\x08\xe7\x23\x1d\x1a\xfc\xd2\x97\x07\xf7\x91\x0e\xad\xcf\x7e\x83\x74\x68\x30\x87\x60\x0e\x2d\x57\xe3\x09\x65\x41\x7b\xb5\x41\x74\x98\xe4\x67\xdd\x5c\x60\xad\x39\xcf\xce\x48\xb3\x21\x04\x13\x2a\xed\x12\x54\xda\x80\xc4\x10\xd6\xec\xf0\x0b\x42\x30\xdd\x93\xcf\x4a\x62\xec\x3b\x9f\xd9\xf1\x22\x1a\x6f\xb5\x25\xa7\xb5\xc0\xc6\xfd\xd0\x3a\xfb\x1e\xbf\x36\xf5\xc8\xed\x1c\xfa\xc5\xcc\x83\xa1\x0c\x78\x02\x78\xb2\x5d\x99\x01\x4f\x00\x4f\xfa\x81\x27\xaf\x59\xdf\xd6\x63\x94\x96\x05\xee\x24\x0d\x73\xc0\x14\x98\xe9\x97\x67\xa6\x03\xa6\xf4\xd9\x6f\x00\x53\xe0\x98\x81\x79\xb4\x5c\x8d\x80\x29\xaf\x87\x29\xaf\xf3\x50\xac\xc7\x2a\xe7\xa2\xe1\x00\x57\xa0\xda\x2e\x41\xb5\x0d\x48\x1c\x61\x0d\x0f\xbf\x00\xae\xb8\x27\x9f\x95\xe4\x38\x1f\xb8\x22\xb2\x44\xcd\x67\xb4\xe5\xf6\x30\x07\x45\xd4\xb6\xd2\xaa\x09\xfb\x14\xde\xbf\x46\xa9\xd4\x4f\x8d\xf8\x25\xdc\x5e\x93\x2c\xad\x0f\xc1\x01\x12\xc8\xd4\x82\x4c\x2d\xc8\xd4\x82\x4c\x2d\xc8\xd4\x72\x14\xd3\x03\x16\x62\xe7\x86\x3a\xa6\x85\x88\x84\x3a\x38\xce\xe8\x82\x8f\x33\x42\xf6\x24\x64\x4f\x42\xf6\x24\x64\x4f\x42\xf6\x24\x64\x4f\x42\xf6\x24\x9c\xf2\x87\x53\xfe\x70\xca\x1f\x4e\xf9\x5b\xec\x91\x07\x4d\x12\x86\x54\x6d\x43\x68\x05\xa4\x6a\x43\xaa\xb6\x73\x4b\xd5\xd6\xca\xe9\x00\xe6\x71\x72\xe7\xe2\x0d\x6b\x4f\xee\xac\x74\xd2\x9e\x29\x78\x1b\xd7\x3d\xea\x21\x9e\xd6\x23\x96\x3b\x2b\xda\x4b\x77\x35\x61\xe6\x93\xbb\xc1\x6c\xf3\x88\xa5\x98\xbb\x57\x01\xec\x85\x6f\x24\x79\x46\x99\x16\x7f\x56\xea\x69\xc6\xf3\x27\x5d\xc5\x6b\xdb\x0f\x27\x8f\x8c\x76\x7e\xa3\x79\x66\x8c\x8b\x9f\xbf\x7e\xfd\xdb\x97\xbb\x6f\x7f\xfb\xfe\xb6\xf2\x89\x58\xf9\xa5\x48\xc3\xca\x59\x96\x08\x72\x7e\x8c\xc3\x53\x8d\xe0\x90\xd3\xd4\xfa\x84\x8d\x2a\x4e\xf8\x94\xf4\x68\x75\x89\xb1\x3f\xeb\xb6\xa3\x75\x34\x5c\x69\x16\x4b\x1d\xe5\xc2\x7c\x73\x45\x93\x6a\x14\xc4\x39\x3c\x9a\x0f\x0a\x2e\x08\x63\x5b\x1b\x3b\xde\x2b\x5d\x33\x17\xe6\xcf\x3c\xb9\x66\xa9\xb2\xa0\x97\x2c\xe4\xe0\x35\x59\x74\xbc\x11\x6a\x9c\x33\x5f\x66\xe7\xa1\x0a\xf6\xb1\x16\x9a\x72\x44\x06\xd7\xb3\x73\xa4\x38\xc6\xd5\x30\xf7\xcc\xaf\x54\x05\x71\x60\xa7\x13\xc1\x0b\x63\xa5\x4f\x79\x21\xd8\x42\x43\xb8\x27\x89\xd4\xc8\x70\xeb\x90\xc8\x64\x05\x75\xdb\x1e\xbb\xc3\x0a\xd2\xd2\x05\x8e\x64\x6a\x21\xfe\x00\xf1\x07\x88\x3f\x40\xfc\x01\xe2\x0f\xda\x26\x5f\x80\xed\x13\xaa\x11\xb0\x4e\xb0\x4e\xb0\x4e\xb0\x4e\xb0\x4e\xb0\xce\xf3\x62\x9d\xc0\x0f\xc0\x0f\xc0\x0f\xc0\x0f\x7b\xc7\x0f\x5b\x20\x7a\x6b\xcc\xa9\xdc\x6f\xb8\x34\xcd\x6f\x91\xb2\xb9\x6e\x4c\x8b\x98\x6d\x54\x8b\xc0\x9d\x3a\x29\x1e\xc5\xcc\x2e\x5b\xba\xc8\x05\x9f\x51\xf5\xc4\xf1\xb5\x5b\x18\xae\xdd\xb5\x33\xf5\x4c\xda\xa7\x66\xde\xb1\x07\x9b\x8b\x67\xb1\xab\xef\x52\x85\x2f\xeb\x3a\xd8\xe9\x9f\x8a\xb0\xf2\x06\xf3\xb2\x9f\x6c\xc5\xff\xcf\x72\x1d\x74\x79\x76\xf3\xee\x61\x13\xa2\x6a\x2f\x64\x70\xdf\xff\x5d\xea\x8b\xdc\x10\x69\xa6\xb1\x81\xb3\xa0\x1d\x0e\xa9\xc3\xa9\x6e\x27\x77\xaa\x9b\xd2\x3d\x13\x3f\x6b\x97\x31\xde\x0d\xee\xd9\xab\xfb\xc5\x7b\x43\x3d\x4d\xa3\x2a\x54\xb7\x09\x0f\x9b\xa5\xce\x60\xb3\x14\x8e\xd3\xc0\x71\x1a\x2d\x1f\x33\x64\x4d\x76\x22\xe7\x69\xec\xf0\xbd\xc7\x48\x68\xfc\x8a\x0f\x3e\x27\xc1\x4b\x42\x63\x90\x82\xf7\x0d\x7b\xc5\x19\x20\xee\x84\xf5\x03\x1d\x05\xd2\x51\x54\xd5\x8f\xff\xc0\xa1\x1f\x6d\xa5\x81\x96\x3a\x45\x2d\x85\x6d\xd6\x17\xb4\xcd\x1a\xfb\xc9\xb0\x9f\x0c\xfb\xc9\xb0\x9f\x0c\x66\xe0\xaa\x51\x34\xc8\xcd\x1b\xc7\x31\xb2\xb0\xf7\x64\xe5\xde\x93\x61\x1a\x5d\xc1\x01\xbd\x9f\x44\x54\x4d\xa1\xd5\xc9\x68\x6a\xcd\x3f\xd5\xe7\x36\x93\x9a\xf8\x10\x7f\x50\xf0\xd8\xd8\xfc\x8b\x47\xc5\x88\xb1\xcf\xe6\xbf\xfe\xef\x33\x2e\xc9\x3d\xa7\x59\x94\x94\xba\x10\x79\xb5\xa4\xb8\x53\xec\x13\xf9\x24\xd8\x55\xf8\xd0\x2b\xa3\x1c\xbd\xda\x19\xb1\xfb\x84\xa7\xa9\x4b\x3f\x40\x7a\x84\x27\x56\x02\x7d\xf8\x61\x97\x39\x9a\xbe\xf1\x48\x4a\x21\x54\x5a\x10\xda\x63\x5f\x7d\xa6\xa4\xec\xb3\xad\x31\xb3\x3a\x64\xda\xd7\x8e\x8b\xaf\xa2\x94\x00\x11\x4f\x6b\x9a\x79\xbe\xe7\x8a\x32\x1f\x73\xbe\x18\x7b\xd8\x4b\x18\x1c\x6d\x07\x4a\x7e\x76\x04\xb0\xdc\xc8\x7e\xb6\xe2\xfd\x48\x7f\xd6\x5e\x66\x80\x72\xa4\x3f\xeb\x27\xfd\xd9\x0e\xaa\xaa\x3d\xeb\xd9\x19\xe1\x7d\x24\x3c\x83\x7f\xfa\xf2\x58\x3f\x12\x9e\xf5\xd9\x6f\x90\xf0\x0c\x36\x11\x6c\xa2\x96\x7a\x3c\xa5\x8c\x67\xaf\xb6\x8a\xf6\x95\xf2\x6c\x27\x5f\x58\x7b\xa6\xb3\x33\xd2\x6d\x08\xcb\x84\x54\xbb\x08\xa9\x36\x20\x45\x84\x85\x3b\xfc\x82\xb0\xcc\xf0\xe8\xb3\x12\x1a\x7b\xcf\x73\x76\xc4\x20\xc7\x5b\x1d\xf1\xa4\x1e\xd8\xb8\x27\x78\x47\xaf\x69\x49\xd1\xfa\x7a\x8a\xf7\x40\x05\xc0\xe4\xb3\x71\x30\x97\x85\x32\xad\x20\xd3\x29\x21\x74\xaa\xb6\x0b\x1c\xce\x7d\xb1\x94\xaa\x3a\xdb\x47\xf5\x62\xbf\x3c\x20\x4d\x69\x79\x35\x40\x4a\x7b\x99\x01\x52\x00\x52\xfa\x01\x29\xaf\x59\xe1\x36\x10\x95\xe5\x25\xee\x24\xcd\x73\x60\x15\xd8\xea\x97\x67\xab\x03\xab\xf4\xd9\x6f\x80\x55\xe0\x9d\x81\x81\xb4\x57\x03\xa9\x3f\xb0\xb2\x57\x13\x69\x5f\x68\xe5\x75\x9e\x8a\x0d\x8c\xe5\x4c\x94\xdc\x6b\xc6\x0a\xe4\x1b\xe4\xdb\x09\xc9\xb7\x01\xa9\x24\x2c\xe6\xe1\x97\xbd\x2e\xe6\x47\x82\x2d\x90\x1f\xbd\xe2\x96\x3d\x88\x8f\x37\xac\x0f\xe0\x62\xf7\xae\xed\x9f\xb8\xd0\x7b\xf6\x83\x5c\x6c\x11\x30\x0b\x01\xa0\x62\xf7\x0a\x76\xaf\x00\xba\x00\xba\x1c\x0b\xba\xbc\x66\x91\xdb\x44\x5d\x96\x57\xb9\x93\x34\xd6\x81\x5d\x60\xb7\x5f\x9e\xdd\x0e\xec\xd2\x67\xbf\x01\x76\x81\xa7\x06\x36\x52\x4b\x3d\x0e\x0f\xba\x9c\xe0\x6e\x96\x57\xba\x2a\x36\x31\x97\x33\xd1\x71\xd8\xdd\x02\xe9\x76\x11\xd2\x6d\x40\x0a\x09\x0b\x79\xf8\x05\xbb\x5b\xc2\xa3\xcf\x4a\x78\x9c\xcf\xee\x16\xa3\x04\x64\xc4\xb5\x28\xf4\x81\xce\xee\xae\x9d\x6d\xaa\x26\xec\x9b\x7d\xff\x83\xe8\x7a\x8e\xf7\x2f\xe1\xf6\x4a\xb7\xb4\x3f\x04\x27\x7a\x23\x8d\x3e\xd2\xe8\x23\x8d\x3e\xd2\xe8\x23\x8d\xfe\x51\xac\x0f\x18\x89\x9d\x1b\xea\x98\x46\xe2\xab\x72\xfb\x5b\x77\x6c\x9f\xb9\xfd\xe9\x89\xc7\xcd\xed\x8f\xfc\x12\x17\x94\x5f\xe2\x55\xdd\x3f\xe1\x63\x91\xf4\xda\xfd\xe9\x89\xc7\xed\xfe\x36\xf5\x3c\xb9\x8b\x66\xfc\x0f\x39\x2b\x67\x2c\x2d\x67\x63\xd3\x49\x26\x61\x32\xd5\xb6\xb6\x28\x77\x30\xf1\xb1\x2a\xf5\x35\x75\x59\x92\xd1\xd2\x7c\x8b\x4d\xa5\xb0\xac\x4d\x8c\xf8\x36\x7f\xfb\xb7\x5f\xa5\xfe\xed\xb3\x39\xa4\x55\xed\xfb\x44\x0b\xb6\xa3\xda\xde\x49\xeb\x47\xc4\x53\xdf\x9d\x2b\x25\xa4\xf9\xcc\x8c\x32\x59\xc8\x20\x99\xed\x57\x1a\x71\x2f\x2a\xad\x63\x5e\x6d\xcb\x62\x1a\x6d\xc4\x1e\x44\x51\xd8\xac\xf7\xb6\xec\x56\x2a\xdb\xb2\x89\x17\x12\x0d\x3c\xad\xaf\x10\x46\xa6\xcc\x54\x99\xd2\x63\x6c\x29\xdf\x95\x99\x79\x99\x1d\xd0\xe6\x2f\xef\xbd\x36\x11\xcf\x94\x17\x9f\x16\x27\x7f\x77\x3d\xf5\xfe\x44\x26\x85\x30\x0a\xd5\xa8\x46\xb3\x46\x79\x03\xc2\xcd\x2e\x0d\x1b\xc2\xae\xa7\x51\x88\x23\x6a\x2a\x4c\x9b\xf6\xc1\x65\x3e\x0f\x5a\xbc\x61\xd2\x90\x12\x7a\xe6\x32\xe1\xe3\x44\x98\xa2\x9b\x16\xb1\x4a\x26\x7a\x54\x4a\x53\x7a\x67\xf3\x1c\xa7\x80\x5c\x5b\x98\x6a\xe1\xf9\xb4\x9c\x51\x59\xd2\xd8\xaf\xb6\x54\x49\xa6\x6c\xee\x7b\xc2\xa3\xab\xda\xfd\x6d\xc2\x42\x97\xaa\x66\x25\x6f\x9d\x2c\x14\x40\x6a\x26\x66\x59\x31\x6f\x9a\x51\x5c\x1b\xd3\xdb\xb6\x7c\xaa\xd6\x16\x68\x9d\x94\x93\x93\x05\x21\x67\xb5\x5f\xe8\x97\xd3\x92\xe7\x3c\x2d\x84\x17\x29\xd5\x4c\xaf\xab\x49\x80\xf4\x20\xa5\x65\xaf\xbe\x3d\xc8\xd2\x60\xb0\x15\x8a\x49\xad\x4b\xdb\xab\xcc\xc5\x89\xa8\x46\x48\xb0\x11\x7c\x87\xbb\xf1\xfe\xd6\x6b\x53\x3c\xff\xca\xed\x74\xb2\x97\xc8\x46\x9f\x6b\x5d\x8a\xb8\x55\x2c\x1b\x5d\xa9\xcb\xb1\x36\x17\xa7\x45\x28\x41\x5c\x83\xb1\x54\x83\xa6\xad\xd4\x4c\x14\x72\x26\x4c\xd9\x27\x22\xcf\x6d\xae\x7c\xbe\x60\x0f\x55\xe6\x81\x69\x51\x91\xea\x32\x17\xe1\xe8\x75\x67\xe0\x78\x67\xb2\xad\x35\x5b\x64\x1a\x98\x64\xca\x30\x3d\xe3\x49\x22\x72\x16\x3d\x96\xe9\x93\x4d\xcc\xce\xcc\x24\xca\x12\x9e\x4f\x7d\x43\xd3\x88\xb7\x8f\x37\x85\x36\x16\x93\xa0\x8e\x97\x29\xad\xa5\xe9\x70\xae\xda\xa8\xc3\xd5\xc7\x97\x8d\xfb\x89\xcd\x92\x6e\x9b\x83\xde\x23\x62\xdb\x1e\x64\x3c\x3b\x79\xee\xfa\xb0\x5b\x0b\xe9\xab\x5f\xb8\xf6\x1a\x96\xb9\x1e\x61\xea\x64\xd9\x3e\xb1\x56\x3b\xd7\xa6\x81\xa3\x32\xb1\xf9\x86\xaa\x6e\xb3\xd3\x5a\x60\x2a\xea\x48\xcb\x22\xd2\x2e\x21\xed\x12\xd2\x2e\x21\xed\xd2\x41\x14\xe7\xa2\x9b\x44\x8b\xc2\xaf\x32\x45\xce\xa5\x99\x25\x52\xf6\x62\x2a\xc3\x5f\xe9\xa7\x6c\x73\x99\x5f\xf8\x42\xd7\xcb\xfd\x0c\x60\xe4\x8d\x08\x0c\xb1\xc6\xc7\xa4\xba\x8d\x55\xa4\x6f\x69\x61\x33\x72\xea\x96\x96\xa6\x1b\x9e\xc9\x5b\x9e\xc9\x9b\x48\xa5\xa6\xaf\xe8\xdb\x3f\x85\x6e\x15\x5e\x38\xa1\x35\xb8\xe0\x32\xd1\xa4\x1f\xea\xda\x9f\x82\x8d\x76\x68\x87\x85\x0a\x18\x44\x2b\x7c\x21\xa5\x14\xd4\xa4\xa6\xa9\x62\xb1\xa5\x8c\x95\x90\x65\x89\xb4\xda\x20\x08\x1c\x1b\xd2\x25\x35\x7b\x94\xd3\x47\x8a\xf4\x8a\xd4\x6c\x66\xba\x6e\x6c\x3b\x75\xeb\xbb\x9c\x47\xde\x54\x70\xf5\x24\xa3\xb7\x72\xd1\xf6\x62\x73\xed\x69\xb6\xef\x97\x85\xc8\x9d\x03\x36\xf2\xef\x72\x26\x8c\xf2\xf4\x6e\x02\x53\xd1\xb7\x56\x14\x5b\xdb\x8d\xd4\x1f\x29\x0f\x6d\xe7\x30\xef\x08\xf1\x06\x07\x4f\x92\x6b\x96\x8b\x29\xcf\x63\x82\xfe\x46\xae\xa5\x73\xc6\xa3\x42\x3e\xcb\x62\x6e\x56\x05\x99\xfa\xff\xb7\xcb\xa4\x54\xd8\x4f\xdc\x87\x5b\xa0\x95\xd3\x81\xcd\x23\x95\xda\xe2\x0d\x6b\x53\xa9\x55\x3a\x69\xbf\x18\xbc\x95\xeb\x1e\x35\xa9\x9a\xf5\x88\xe5\xce\x8a\xf6\xd2\x5d\x4d\x98\xf9\xe4\x6e\x30\xdb\x3c\x62\x31\xf0\xee\x75\x00\x7b\xe1\x1b\x49\x9e\xfd\xd3\x7c\xe0\xcf\x4a\x3d\xcd\x78\xfe\xa4\xab\xb8\x6d\xfb\xe1\xe4\x91\xd1\xce\x6f\x34\xcf\x8c\x71\xf1\xf3\xd7\xaf\x7f\xfb\x72\xf7\xed\x6f\xdf\xdf\x56\x3e\x11\x2b\xbf\x14\x69\x58\x39\xcb\x12\x41\xce\x8f\x71\x78\xaa\x11\x1c\x72\x9a\x5a\x9f\xb0\x51\xc5\x09\x9f\x92\x1e\xad\x2e\x31\xf6\x67\xdd\x76\xb4\x8e\x86\x2b\xcd\x62\xa9\xa3\x5c\x98\x6f\xae\x68\x52\x8d\x82\x38\x87\x47\xf3\x41\xc1\x05\x61\x6c\x6b\x63\xc7\x7b\xa5\x6b\xe6\xc2\xfc\x99\x27\xd7\x2c\x55\x16\xf4\x92\x85\x1c\xbc\x26\x8b\x8e\x37\x42\x8d\x73\xe6\xcb\xec\x3c\x54\xc1\x3e\xd6\x42\x6b\xfa\x30\xef\x7a\x76\x8e\x14\xc7\xb8\x1a\xe6\x9e\xf9\x95\xaa\x20\x0e\xec\x74\x22\x78\x61\xac\xf4\x29\x2f\x04\x5b\x68\x08\xf7\x24\x91\x1a\x19\x6e\x1d\x12\x99\xac\xa0\x6e\xdb\x63\x77\x58\x41\x5a\xba\xc0\x91\x4c\x2d\xc4\x1f\x20\xfe\x00\xf1\x07\x88\x3f\x40\xfc\x41\xdb\xe4\x0b\xb0\x7d\x42\x35\x02\xd6\x09\xd6\x09\xd6\x09\xd6\x09\xd6\x09\xd6\x79\x5e\xac\x13\xf8\x01\xf8\x01\xf8\x01\xf8\x61\xef\xf8\x61\x0b\x44\x6f\x8d\x39\x95\xfb\x3d\x97\xa6\xf9\x2d\x52\x36\xd7\x8d\x69\x11\xb3\x8d\x6a\x11\xb8\x53\x27\xc5\xa3\x98\xd9\x65\x4b\x17\xb9\xe0\x33\xaa\x9e\x38\xbe\x76\x0b\xc3\xb5\xbb\x76\xa6\x9e\x49\xfb\xd4\xcc\x3b\xf6\x40\x72\x65\xbe\xd8\xd5\x77\xa9\xc2\x97\x75\x1d\xec\xf4\x4f\x47\x58\x79\x83\x79\xd9\x4f\xb6\xe2\xff\x67\xb9\x0e\xba\x3c\xbb\x79\xf7\xb0\x09\x51\xd8\x0d\x59\xb9\xef\xff\x2e\xf5\x45\xee\x88\x34\xd3\xd8\xc0\x59\xd0\x0e\xe7\xd5\xe1\x7c\xb7\x93\x3b\xdf\x4d\xe9\x9e\x89\x9f\xb5\xcb\x18\xef\x06\xf7\xec\xd5\xfd\xe2\xbd\x81\x9e\xa8\x51\x2b\x54\xb7\x09\x0f\x9b\xa5\xce\x60\xb3\x14\x4e\xd4\xc0\x89\x1a\x2d\x1f\x33\x64\x4d\x76\x1a\x27\x6a\xec\xf2\xbd\x1f\x37\x7e\xaf\x0d\xf9\x1d\xc8\x07\x9f\x93\xe0\x25\xa1\x31\x48\xc1\xfb\x86\xbd\xe2\x0c\x10\x77\xe0\xfa\x81\x8e\x02\xe9\x28\xaa\xea\xc7\x7f\xe0\xd0\x8f\xb6\xd2\x40\x4b\x9d\xa2\x96\xc2\x36\xeb\x0b\xda\x66\x8d\xfd\x64\xd8\x4f\x86\xfd\x64\xd8\x4f\x06\x33\x70\xd5\x28\x1a\xe4\xe6\x8d\xe3\x18\x59\xd8\x7b\xb2\x72\xef\xc9\x30\x8d\xae\xe0\x80\xde\x4f\x5e\xaa\xa6\xd0\xea\x64\x34\xb5\x65\xa3\xea\x75\x9b\x49\x4d\x7c\x88\x3f\x28\x78\x6c\x6c\xfe\xc5\xa3\x62\xc4\xd8\x67\xf3\x5f\xff\xf7\x19\x97\xe4\x9e\xd3\x2c\x4a\x4a\x5d\x88\xbc\x5a\x52\xdc\x69\xf6\x89\x7c\x12\xec\x2a\x7c\xe8\x95\x51\x8e\x5e\xed\x8c\xd8\x7d\xc2\xd3\xd4\xa5\x21\x20\x3d\xc2\x13\x2b\x81\x3e\xfc\xb0\xcb\x1c\x4d\xdf\x78\x24\xa5\x10\x2a\x2d\x08\xed\xb1\xaf\x3e\x53\x52\xf6\xd9\xd6\x98\x59\x1d\x32\xed\x6b\xc7\xc5\x57\x51\x6a\x80\x88\xa7\x35\xcd\x3c\xdf\x73\x45\x99\x8f\x39\x5f\x8c\x3d\xec\x25\x0c\x8e\xb6\xc3\x24\x42\x3b\x06\x58\xae\x27\x42\x5b\xf5\x7e\x24\x42\x6b\x2f\x33\x40\x39\x12\xa1\xf5\x93\x08\x6d\x07\x55\xd5\x9a\xfe\xec\x9c\xf0\x3e\x12\x9f\xc1\x3f\x7d\x79\xac\x1f\x89\xcf\xfa\xec\x37\x48\x7c\x06\x9b\x08\x36\x51\x4b\x3d\x9e\x50\xe2\xb3\xd7\x5b\x45\xfb\x4a\x7c\xb6\x93\x2f\xac\x35\xdd\xd9\x39\xe9\x36\x84\x65\x42\xaa\x5d\x84\x54\x1b\x90\x22\xc2\xc2\x1d\x7e\x41\x58\x66\x78\xf4\x59\x09\x8d\x7d\x27\x3a\x3b\x66\x90\xe3\xad\x8e\x78\x52\x0f\x6c\xdc\x13\xbc\xa3\xd7\x2c\x27\x6a\xed\x81\xe2\x3d\x50\x01\x30\xf9\x6c\x1c\xcc\x65\xa1\x4c\x2b\xc8\x74\x4a\x08\x9d\xaa\xed\x02\x87\x73\x5f\x2c\xa5\xaa\xce\xf6\x51\xbd\xd8\x2f\x0f\x48\x53\x5a\x5e\x0d\x90\xd2\x5e\x66\x80\x14\x80\x94\x7e\x40\xca\x6b\x56\xb8\x0d\x44\x65\x79\x89\x3b\x49\xf3\x1c\x58\x05\xb6\xfa\xe5\xd9\xea\xc0\x2a\x7d\xf6\x1b\x60\x15\x78\x67\x60\x20\xed\xd5\x40\xea\x0f\xac\xec\xd5\x44\xda\x17\x5a\x79\x9d\xa7\x62\x03\x63\x39\x13\x25\xf7\x9a\xb1\x02\xf9\x06\xf9\x76\x42\xf2\x6d\x40\x2a\x09\x8b\x79\xf8\x65\xaf\x8b\xf9\x91\x60\x0b\xe4\x47\xaf\xb8\x65\x0f\xe2\xe3\x0d\xeb\x03\xb8\xd8\xbd\x6b\xfb\x27\x2e\xf4\x9e\xfd\x20\x17\x5b\x04\xcc\x42\x00\xa8\xd8\xbd\x82\xdd\x2b\x80\x2e\x80\x2e\xc7\x82\x2e\xaf\x59\xe4\x36\x51\x97\xe5\x55\xee\x24\x8d\x75\x60\x17\xd8\xed\x97\x67\xb7\x03\xbb\xf4\xd9\x6f\x80\x5d\xe0\xa9\x81\x8d\xd4\x52\x8f\xc3\x83\x2e\x27\xb8\x9b\xe5\x95\xae\x8a\x4d\xcc\xe5\x4c\x74\x1c\x76\xb7\x40\xba\x5d\x84\x74\x1b\x90\x42\xc2\x42\x1e\x7e\xc1\xee\x96\xf0\xe8\xb3\x12\x1e\xe7\xb3\xbb\xc5\xc8\x08\x31\x29\x13\x2d\x0a\x7d\xa0\xc3\xbb\x6b\x87\x9b\xaa\x09\x7b\x70\x1f\xd0\xfd\x24\xef\x5f\xc2\xfd\x95\x72\x59\xf1\x14\x1c\xea\x8d\x4c\xfa\xc8\xa4\x8f\x4c\xfa\xc8\xa4\x8f\x4c\xfa\x47\x31\x40\x60\x27\x76\x6e\xa8\x63\xda\x89\xaf\x4a\xef\x6f\x3d\xb2\x7d\xa6\xf7\xa7\x27\x1e\x37\xbd\x3f\x52\x4c\x5c\x50\x8a\x89\x57\x75\xff\x84\x8f\x45\xd2\x6b\xf7\xa7\x27\x1e\xb7\xfb\xdb\xec\xf3\xe4\x31\x9a\xf1\x3f\xe4\xac\x9c\xb1\xb4\x9c\x8d\x4d\x27\x99\x84\xc9\x54\xdb\xda\xa2\xf4\xc1\x84\xc8\xaa\xec\xd7\xd4\x65\x49\x46\x4b\xf3\x2d\x36\x9b\xc2\xb2\x36\x31\xe2\xdb\xfc\xed\xdf\x7e\x95\xfa\xb7\x4f\xe8\x90\x56\xb5\xef\x73\x2d\xd8\x8e\x6a\x7b\x27\xad\x1f\x11\x4f\x7d\x77\xae\x94\x90\xe6\x33\x33\xca\x64\x21\x83\x64\xb6\x5f\x69\xc4\xbd\xa8\xb4\x8e\x79\xb5\x2d\x8b\x69\xb4\x11\x7b\x10\x45\x61\x13\xdf\xdb\xb2\x5b\xa9\x6c\xcb\x26\x5e\x48\x34\xf0\xb4\xbe\x42\x18\x99\x32\x53\x65\x4a\x8f\xb1\xa5\x7c\x57\x66\xe6\x65\x76\x40\x9b\xbf\xbc\xf7\xda\x44\x3c\x53\x6a\x7c\x5a\x9c\xfc\xdd\xf5\xec\xfb\x13\x99\x14\xc2\x28\x54\xa3\x1a\xcd\x1a\xe5\x0d\x08\x37\xbb\x34\x6c\x08\xbb\x9e\x46\x21\x94\xa8\xa9\x30\x6d\xe6\x07\x97\xfc\x3c\x68\xf1\x86\x49\x43\x4a\xe8\x99\xcb\x84\x8f\x13\x61\x8a\x6e\x5a\xc4\x2a\x99\xe8\x51\x29\x4d\x19\x9e\xcd\x73\x9c\x02\x72\x6d\x61\xaa\x85\xe7\xd3\x72\x46\x65\x49\x63\xbf\xda\x52\x25\x99\xb2\xb9\xef\x09\x8f\xae\x6a\xf7\xb7\x09\x0b\x5d\xaa\x9a\x95\xbc\x75\xb2\x50\x00\xa9\x99\x98\x65\xc5\xbc\x69\x46\x71\x6d\x8c\x6f\xdb\xf2\xa9\x5a\x5b\xa0\x75\x52\x4e\x4e\x16\x84\x9c\xd5\x7e\xa1\x5f\x4e\x4b\x9e\xf3\xb4\x10\x5e\xa4\x54\x33\xbd\xae\x26\x01\xd2\x83\x94\x99\xbd\xfa\xf6\x20\x4b\x83\xc1\x56\x28\x26\xb5\x2e\x6d\xaf\x32\x17\x27\xa2\x1a\x21\xc1\x46\xf0\x1d\xee\xc6\xbb\x5c\xaf\x4d\xf1\xfc\x2b\xb7\xd3\xc9\x5e\x22\x1b\x7d\xae\x75\x29\xe2\x56\xb1\x6c\x74\xa5\x2e\xc7\xda\x5c\x9c\x16\xa1\x04\x71\x8d\xc7\x52\x0d\x9a\xb6\x52\x33\x51\xc8\x99\x30\x65\x9f\x88\x3c\xb7\xe9\xf2\xf9\x82\x3d\x54\x99\x07\xa6\x45\x45\xaa\xcb\x5c\x84\xd3\xd7\x9d\x81\xe3\xfd\xc9\xb6\xd6\x6c\x91\x69\x60\x92\x29\xc3\xf4\x8c\x27\x89\xc8\x59\xf4\x58\xa6\x4f\x36\x37\x3b\x33\x93\x28\x4b\x78\x3e\xf5\x0d\x4d\x23\xde\x3e\xde\x14\xda\x58\x4c\x82\x3a\x5e\xa6\xb4\x96\xa6\xc3\xb9\x6a\xa3\x0e\x57\x1f\x5f\x36\xf4\x27\x36\x4b\xba\x6d\x0e\x7a\x8f\x88\x6d\x7b\x90\xf1\xec\xe4\xb9\xeb\xc3\x6e\x2d\xa4\xaf\x7e\xe1\xda\x6b\x58\xe6\x7a\x84\xa9\x93\x65\xfb\xc4\x5a\xed\x5c\x9b\x06\x8e\xca\xc4\xa6\x1c\xaa\xba\xcd\x4e\x6b\x81\xa9\xa8\x23\x2d\x8b\xc8\xbc\x84\xcc\x4b\xc8\xbc\x84\xcc\x4b\x07\x51\x9c\x8b\x6e\x12\x2d\x0a\xbf\xca\x14\x39\x97\x66\x96\x48\xd9\x8b\xa9\x0c\x7f\xa5\x9f\xb2\xcd\x65\x7e\xe1\x0b\x5d\x2f\xf7\x33\x80\x91\x37\x22\x60\xc4\x1a\x22\x93\xea\x36\x56\x91\xbe\xa5\x85\xcd\xc8\xa9\x5b\x5a\x9a\x6e\x78\x26\x6f\x79\x26\x6f\x22\x95\x9a\xbe\xa2\x6f\xff\x14\xba\x55\x78\xe1\x84\xd6\xe0\x82\xcb\x44\x93\x7e\xa8\x6b\x7f\x8a\x37\xda\xa1\x1d\x16\x2a\x60\x10\xad\xf0\x85\x94\x52\x50\x93\x9a\xa6\x8a\xc5\x96\x32\x56\x42\x96\x25\xd2\x6a\x83\x20\x70\x6c\x54\x97\xd4\xec\x51\x4e\x1f\x29\xd8\x2b\x52\xb3\x99\xe9\xba\xb1\xed\xd4\xad\xef\x72\x1e\x79\x53\xc1\xd5\x93\x8c\xde\xca\x45\xdb\x8b\xcd\xb5\xa7\xd9\xbe\x5f\x16\x82\x77\x0e\xd8\xc8\xbf\xcb\x99\x30\xca\xd3\xbb\x09\x4c\x45\xdf\x5a\x51\x6c\x6d\x37\x52\x7f\xa4\x3c\xb4\x9d\xc3\xbc\x23\xc4\x1b\x1c\x3c\x49\xae\x59\x2e\xa6\x3c\x8f\x89\xfb\x1b\xb9\x96\xce\x19\x8f\x0a\xf9\x2c\x8b\xb9\x59\x15\x64\xea\xff\xdf\x2e\x93\x52\x61\x3f\x71\x1f\x6e\x81\x56\x52\x07\x3c\x8f\x6c\x6a\x8b\x37\xac\xcd\xa6\x56\xe9\xa4\xfd\x92\xf0\x76\xb0\x7b\xd4\xc4\x6a\xd6\x25\x96\x3b\x33\xda\x6b\x77\x35\x61\xe6\x9b\x3b\xf2\x6c\xf3\x8c\xc5\xe8\xbb\x57\x32\xec\x85\xaf\x24\x85\xf6\x4f\xf3\x89\x3f\x2b\xf5\x34\xe3\xf9\x93\xae\xa2\xb7\xed\xa7\x93\x53\x46\x3b\xd7\xd1\x3c\x33\xf6\xc5\xcf\x5f\xbf\xfe\xed\xcb\xdd\xb7\xbf\x7d\x7f\x5b\xb9\x45\xac\x02\x53\x24\x63\xe5\x2c\x4b\x04\xf9\x3f\xc6\xe1\xa9\x46\x73\xc8\x69\x6a\xdd\xc2\x46\x18\x27\x7c\x4a\x92\xb4\xba\xc4\x98\xa0\x75\xf3\xd1\xfa\x1a\xae\x34\x8b\xa5\x8e\x72\x61\xbe\xb9\x02\x4a\x35\x10\xe2\x7c\x1e\xcd\x07\x05\x2f\x84\x31\xaf\x8d\x29\xef\xc5\xae\x99\x0e\xf3\x67\x9e\x5c\xb3\x54\x59\xd6\x4b\x46\x72\x70\x9c\x2c\xfa\xde\x88\x36\xce\x99\x2f\xb3\x73\x52\x05\x13\x59\x0b\xad\xe9\xc3\xbc\xf7\xd9\xf9\x52\x1c\xe6\x6a\x58\x7c\xe6\x57\xaa\x82\x38\xe0\xd3\x89\xe0\x85\x31\xd4\xa7\xbc\x10\x6c\xa1\x21\xdc\x93\x44\x6a\x94\xb8\xf5\x49\x64\xb2\xe2\xba\x6d\x8f\xdd\x61\x11\x69\xe9\x02\x47\xb2\xb6\x10\x82\x80\x10\x04\x84\x20\x20\x04\x01\x21\x08\x6d\x93\x2f\xd8\xf6\x09\xd5\x08\x70\x27\x70\x27\x70\x27\x70\x27\x70\x27\x70\xe7\x79\xe1\x4e\x10\x08\x10\x08\x10\x08\x10\x88\xbd\x13\x88\x2d\x28\xbd\x35\xe6\x54\xee\x77\x5e\x9a\xe6\xb7\x54\xd9\x5c\x37\xa6\x45\xcc\x36\xaa\xa5\xe0\x4e\x9d\x14\x8f\x62\x66\x97\x2d\x5d\xe4\x82\xcf\xa8\x7a\xe2\xf8\xda\x2d\x0c\xd7\xee\xda\x99\x7a\x26\xed\x53\x33\xef\xd8\x03\xc9\x95\xf9\x62\x57\xdf\xa5\x0a\x5f\xd6\x75\xb0\xd3\x3f\x23\x61\xe5\x0d\xe6\x65\x3f\xd9\x8a\xff\x9f\xe5\x3a\xe8\xf2\xec\xe6\xdd\xc3\x86\x44\x61\x4f\x64\xcd\x7f\xff\x77\xa9\x2f\x72\x63\xa4\x99\xc7\x86\xce\x83\x76\x38\xb7\x0e\xe7\xbc\x9d\xdc\x39\x6f\x4a\xf7\x4c\xfd\xac\x65\xc6\x78\x47\xc0\x67\x2f\xef\x19\xf1\x0d\xf4\x6c\x8d\x7a\xa9\xba\x4d\x7a\xd8\x34\x75\x06\x9b\xa6\x70\xb8\x06\x0e\xd7\x68\xf9\x98\x41\x0b\xb3\xd3\x38\x5d\x63\xa7\x0f\xfe\xb8\xf1\x83\x6d\xf0\xef\x50\xbe\xf8\x9c\x74\x2f\xc9\x8d\x61\xea\xde\x37\xec\x35\x47\x82\xb8\x03\xd8\x0f\x74\x32\x48\x57\x71\x55\x3f\x0d\x04\x67\x80\xb4\x96\x06\x92\xea\x14\x25\x15\x76\x5d\x5f\xd0\xae\x6b\x6c\x2f\xc3\xf6\x32\x6c\x2f\xc3\xf6\x32\x58\x83\xab\x46\xd1\x20\xf7\x72\x1c\xc7\xd2\xc2\x56\x94\x95\x5b\x51\x06\x6a\x78\x05\x5f\xf4\x7e\x52\x55\x35\x95\x56\x37\xbb\xa9\x2d\x43\x55\xbf\xbb\x4e\x6a\xfa\x43\xfc\x41\xb1\x64\x63\xf3\x2f\x1e\x15\x23\xc6\x3e\x9b\xff\xfa\xbf\xcf\xb8\x24\x47\x9d\x66\x51\x52\xea\x42\xe4\xd5\xaa\xe2\x8e\xb8\x4f\xe4\x93\x60\x57\xe1\x4b\xaf\x8c\x78\xf4\x82\x67\xc4\xee\x13\x9e\xa6\x2e\x37\x01\x49\x12\x9e\x58\x15\xf4\xe1\x87\x5d\xa6\x69\xfa\xc6\x23\x89\x85\x50\x69\x41\x6b\x8f\x7d\xf5\x99\x92\xb2\xcf\xb6\xc6\xcc\x02\x91\x69\x5f\x3b\x2e\xdc\x8a\xf2\x05\x44\x3c\xad\xc9\xe6\xf9\x9e\x2b\xca\x7c\xcc\xf9\x52\xed\x61\xaf\x62\x70\xb8\x1d\x28\x3d\xda\x51\x38\x73\x3d\x3f\xda\xca\x0f\x40\x82\xb4\xf6\x32\x03\x9c\x23\x41\x5a\x3f\x09\xd2\x76\x91\x56\xad\x79\xd1\xce\x0a\xf7\x23\x25\x1a\xfc\xd4\x97\x87\xfe\x91\x12\xad\xcf\x7e\x83\x94\x68\x30\x8c\x60\x18\xb5\x55\xe4\x09\xe5\x44\xeb\xc1\x34\xda\x57\x52\xb4\xdd\x9c\x62\xad\xb9\xd0\xce\x4a\xbb\x21\x54\x13\x7a\xed\x32\xf4\xda\x80\x64\x11\x56\xef\xf0\x0b\x42\x35\x6b\xcf\x3e\x2b\xb9\xb1\xef\x4c\x68\xc7\x8d\x7b\xbc\xd5\x11\x4f\xea\xb1\x8e\x7b\x82\x79\xf4\x9a\xe5\x5c\xae\xbd\x50\xbd\x07\x2a\x02\xa6\xa0\x8d\x23\xba\x2c\x94\x69\x07\x99\x4e\x69\x60\x53\xb5\x5d\xe0\x90\xee\x0b\xad\x54\xd5\xb9\x62\x64\x2f\xf4\xcb\x43\xb2\x95\xe5\x57\x83\xaa\xb4\x97\x19\x54\x05\x54\xa5\x1f\xaa\xf2\xaa\x35\x6e\x13\x5e\x59\x5e\xe4\x4e\xd2\x4e\x07\x63\x81\xcd\x7e\x79\x36\x3b\x18\x4b\x9f\xfd\x06\x8c\x05\x5e\x1a\x98\x48\x7b\x35\x91\xfa\x83\x2c\x7b\x35\x92\xf6\x45\x59\x5e\xe9\xad\xd8\x84\x5b\xce\x44\xcb\xbd\x66\xb4\x40\xc0\x41\xc0\x9d\x90\x80\x1b\x90\x4e\xc2\x72\x1e\x7e\xd9\xeb\x72\x7e\x24\xea\x02\x01\xd2\x2b\x76\xd9\x83\xfc\x78\xc3\x7a\xe1\x2e\x76\x4f\xdb\xfe\xc1\x0b\xbd\x67\x5f\xe4\xc5\x16\x02\x13\x11\x60\x2a\x36\xb5\x60\x53\x0b\xf0\x0b\xf0\xcb\x11\xf1\xcb\xab\x56\xba\x8d\xfc\x65\x79\xa9\x3b\x49\xa3\x1d\x00\x06\xf6\xfb\xe5\xd9\xef\x00\x30\x7d\xf6\x1b\x00\x18\x78\x6c\x60\x28\xb5\x55\xe4\xf0\xf8\xcb\x29\x6e\x72\x79\xad\xcf\x62\x23\x7f\x39\x13\x2d\x87\x4d\x2f\xd0\x6f\x97\xa1\xdf\x06\x24\x93\xb0\x9a\x87\x5f\xb0\xe9\xa5\xf6\xec\xb3\x92\x1f\xa7\xb8\xe9\xc5\xac\xfb\x32\xe2\x5a\x14\xfb\xc5\x2a\x36\x83\x6e\xee\xb2\x6e\xfa\xa3\x67\xd5\x84\x99\xc2\xb1\x6f\xf6\x2b\xd6\x4b\x14\xf3\x08\xab\x4f\xaa\xcb\x7f\x55\xf9\x5d\x92\x04\xbd\x32\x08\xaa\xb2\xf2\x86\x0b\x4d\x80\x55\xb5\x16\xf2\x5f\xb5\x5c\xd6\xcb\xd4\xd0\x3a\x80\xf6\x4c\x70\xe8\x34\x5e\x4a\xc5\xf7\xb3\x52\x4f\x33\x9e\x3f\xe9\xca\x21\x64\xc7\x39\x25\x3c\xd6\x4e\x50\xcd\x33\xc1\xbe\xbf\xfd\xf9\xeb\xd7\xbf\x7d\xb9\xfb\xf6\xb7\xef\x6f\xab\x94\xc3\xf6\xb4\x5d\x45\x7a\x58\xce\xb2\x44\x50\x6e\xe1\x71\x78\xea\x8c\xcf\x99\x9c\xa6\xf6\xac\x73\xa9\xad\x43\xc3\x48\xa7\xea\x12\x9e\x0b\x56\x4f\xcd\x6a\xf3\xf8\x5e\x69\x16\x4b\x1d\xe5\xc2\x7c\x73\x95\x18\xbe\x26\xbf\x5d\x3e\xe1\xe6\x83\x42\x86\x5f\x5e\xd8\x34\xb9\xfe\x08\x4a\x99\x16\x22\x7f\xe6\xc9\x35\x4b\x55\x4e\x9f\x45\x09\x68\x43\x52\xe2\xc5\xbc\xd6\x69\x4c\xf7\xfb\x32\xbb\x04\xd0\x21\xfd\xac\x36\x72\xdc\x7c\x98\x3f\x52\xdd\xe5\x29\x76\xe9\xea\x1b\xa7\x7b\x9b\x5f\xa9\x0a\xdc\x21\xdd\x8f\x82\x4d\x04\x2f\xca\x5c\xb0\x29\x2f\x04\x5b\x68\x08\xf7\x24\x91\x1a\x2d\x69\xf3\xfd\x66\xd2\x7e\xdc\xaa\xc7\x6e\x89\x66\x5a\x9a\xbf\x9d\xd3\xb4\xb9\x7f\x7a\xc0\x4e\xbf\xd7\x53\x46\x5b\x0f\x63\xed\xf8\x7b\x2d\x0a\x9b\x9f\xd9\xe5\xfc\x36\x15\xde\x48\x16\x1d\xce\x29\xb7\x95\x32\x62\x0f\x32\x8d\xc4\xc2\xc9\xf6\xae\x35\x9d\xf6\x6e\x66\xa2\x6e\x24\xe3\x0e\x1f\x62\x6f\xa5\x87\x73\x63\x0c\x3e\x4b\x55\x6a\x97\x81\xdc\xa7\x06\x36\xa3\xa1\xca\x0f\x6d\x7f\xab\xc6\x1f\x7b\x27\xfe\x88\x44\x56\x65\x01\xb5\x8f\x54\x93\xf0\x92\xf7\xe1\xe8\x6d\xf7\x7d\x36\x4b\x39\xe1\x47\xbe\xf8\x29\xd2\x8c\x2c\x61\x7b\x43\xb0\x26\x43\x17\xaa\xdc\x04\x8b\xb7\x99\x3b\xc8\x48\x11\x39\xb3\x06\xa9\x4f\x22\x1e\x97\x82\xb2\xdb\xff\x91\x49\x97\x92\xe0\xdd\x54\xa4\x22\x27\xac\x34\x31\x96\x69\xa1\xd8\x44\x4e\x0a\x21\x52\x36\x93\x69\x59\x08\xfd\x9e\x51\x66\xf8\x48\xa5\x13\x39\xf5\x99\x0c\xac\xe5\xe4\xb3\xbc\x57\x9d\xb3\x39\x8a\xec\x82\xe6\xac\x32\xce\xfe\xf7\x87\xff\xc5\xbe\xb9\x13\xc7\x3f\x9b\x4f\x10\xb1\xb3\x7b\x0b\x35\xb5\x1f\xe8\xae\x0c\x25\x2a\xd4\x93\x48\x43\x91\x5d\x26\xea\x54\x88\x78\x21\x81\x75\x42\xd9\xe9\x65\x61\xed\xb7\x5c\xe8\x82\xdb\xac\xe7\xd2\xe5\xbc\xf5\xc9\xba\x97\xb3\x95\x8f\xd8\x57\xf3\xea\x17\xe9\x0f\xcd\x77\x6f\x31\x2d\xe3\xa6\x01\xeb\x99\x75\x39\xa2\x6d\x52\xe4\x60\x68\xd2\x17\xfa\x2c\xd8\x35\x03\xd4\x14\x96\x0a\xb7\xb1\x5a\xe8\xb9\xf4\xc1\xe4\x15\xf6\x9d\x9b\x92\xdc\x3f\x89\xb9\x3d\x12\x3e\xfc\x39\xe1\x85\x79\x7f\x95\xb1\xfb\xe5\x51\xda\x64\xe8\x32\xad\x55\x48\xb8\x3e\x74\xe4\x5a\x8a\x6b\xcd\x6e\x82\x8e\xb3\xa7\xce\xe6\x62\xcb\x44\xe5\x0b\x95\xb1\x9c\xa3\xdc\x1d\x2f\x4f\x82\x86\xac\x60\xd3\x21\xcd\x7f\x6d\xa3\x3c\x89\xb9\xcb\xfa\x1e\x1e\xfc\xfd\xad\x2f\xf2\xf7\xb7\x2e\xa9\xfb\xea\x2c\xf0\x34\x41\x34\xf3\xc0\x87\x35\x82\x5a\x8e\x3a\x80\x9b\x8d\xeb\xb5\xa7\x97\x92\x24\xbb\x61\x13\x56\x0e\x77\xaa\xbe\x6b\x31\xeb\x89\x29\xd8\x4c\x6a\x4d\x2b\x42\xc3\x1d\xb4\xed\xcc\xeb\xbb\x5e\x3f\x58\xbc\xdb\x6c\x7b\xc7\xb4\xa8\x4e\xda\x37\x63\x23\x97\x51\x11\xb2\x14\x9b\xe9\x29\x94\x3d\x24\x96\x98\xbb\x76\xb2\x90\xa2\x99\xe5\x43\x3c\x8b\x7c\x5e\x3c\xca\x74\xba\x6d\xf1\xe9\x69\x0f\xee\x6b\x4e\xa6\x0e\x12\x3e\x16\x49\x6f\x75\x40\x4f\x3b\x46\x1d\xd8\x94\xfd\xe4\x36\x9b\xf1\x3f\xe4\xac\x9c\xb1\xb4\x9c\x8d\x45\x6e\x4b\xef\x6c\x0f\x5b\x3f\x94\x73\x99\x60\x61\x95\x32\x9c\xa6\x61\x5a\x88\xa5\xf9\x0a\x9b\x76\x62\x79\x76\x33\xcb\xb7\xf9\xdb\xbf\x7d\x5f\xff\xb7\xcf\x7c\x91\x56\xf5\xed\x93\x52\xd8\xa4\x31\x76\x00\xd2\x4c\x14\xf1\xd4\xa7\x96\xa9\xe6\x52\xcd\x67\x66\x72\x91\x85\x0c\x8b\xae\xfd\x4a\x23\x0f\x44\x35\x5b\x9a\x57\xdb\xb2\x98\x66\x32\x22\xb5\x28\xac\x5c\xb3\x65\xb7\x8b\xad\x2d\x9b\x78\xa1\x69\x87\xa7\x75\x77\xaa\x99\xe8\x66\xaa\x4c\xe9\x31\xb6\x94\xef\xca\xcc\xbc\xcc\x26\xd7\x31\x7f\x79\xef\x67\x37\xab\x08\x39\x4d\xe8\xfe\x6e\xdf\x77\xcc\xcc\x36\x91\x49\x21\xcc\x1a\x67\xd6\x1d\x33\x8d\x44\x4d\x0d\xdb\x50\x21\xd6\xf9\x1c\x85\xb8\xaa\xe6\x1a\x65\x53\x64\xb8\x8c\xf1\x61\x35\x6f\x88\x22\x9a\x4b\x9f\xb9\x4c\x8c\x6a\xac\xf4\xb9\x29\x72\xf4\xa8\x94\xa6\xb4\xd8\xe6\x39\x6e\x0e\x75\x6d\x61\xaa\x85\xe7\xd3\x92\x64\x3b\x4f\x63\xbf\x42\x51\x25\x99\xb2\xb9\xef\x09\x8f\xae\x6a\xf7\xb7\x09\x0b\x5d\xaa\x12\x23\x5e\xdf\x2c\x14\x40\x6a\x26\x66\x59\x31\x6f\x0a\xb1\xa0\xbe\x79\x61\x34\xcb\xba\x02\xad\x5b\x0c\xe4\x64\x61\x29\xb0\xab\x47\xe8\x97\xd3\x92\xe7\x3c\x2d\x84\xf7\xe8\x57\x39\x6e\x74\x35\xec\x69\x45\xa1\x74\xf6\xd5\xb7\x87\x85\x2d\x48\xbe\x42\x31\xa9\x75\xe9\x8c\x00\x99\x4e\x13\x51\x8d\x90\xa0\x32\x7c\x87\xbb\xf1\x7e\x67\x63\x75\x84\x57\x6e\xb7\xd2\xfa\x45\x96\x6c\x0c\x5d\x8a\xb8\x75\xb9\x25\x5b\xa7\x1c\x6b\x73\x71\x5a\x84\x12\xc4\x35\x32\xfd\xbb\x33\x53\xb4\x9a\x89\x42\xce\x84\x29\xfb\x44\xe4\x39\x25\x01\xb2\xb9\xd5\x6b\x02\xa2\x12\x18\xa6\x45\x45\xaa\xcb\x5c\x84\x33\xea\x9d\x44\xf2\x4e\x75\x5b\x6b\xb6\xc8\x34\x30\x49\x0c\x31\x3d\xe3\x49\x22\x72\x16\x3d\x96\xe9\x93\x4d\x68\xcf\xcc\xb4\xc9\x12\x9e\x4f\x7d\x43\xd3\x88\xb7\x8f\xb7\x16\x99\x16\x82\x3a\x5e\xa6\xb4\x96\xa6\xc3\xb9\x6a\xa3\x0e\x57\x1f\x5f\x36\x0c\x2a\xae\x6c\x32\x7a\x8f\x88\x6d\x7b\x90\xfc\x76\x0b\xbc\xeb\xc3\x2e\xcc\x8f\xbe\xfa\x85\x6b\x0f\x7c\xbc\xdd\x69\xea\x64\x59\xe1\x58\xdd\xcf\xb5\x69\xe0\xa8\x4c\x6c\x6e\xa6\xaa\xdb\x6c\x3d\xfb\x9b\x4a\x6a\x9f\xf5\xdb\x92\x53\x5d\x50\x8c\x5f\xb7\xd2\x2c\x6a\x37\x2d\x0a\xdf\x71\x8b\x9c\x4b\x33\x73\xa7\xec\xc5\xb4\xb0\xbf\xd2\xf7\x02\x73\x99\x1f\x4b\x21\xe1\x52\xee\xf3\x5e\x99\x19\x53\x04\x3c\x53\xf3\xdf\x49\x75\x1b\xab\x48\xdf\xd2\x58\x31\x33\xf4\x2d\xf5\xf6\x1b\x9e\xc9\x5b\x9e\xc9\x9b\x48\xa5\xc6\xe4\xd3\xb7\x7f\x0a\xc9\x94\xc2\x0b\x27\x34\xac\x0b\x2e\x13\x4d\x53\x52\x5d\x40\x50\x30\xc7\x96\xd5\xbd\x50\xf8\x23\xd6\xfb\x17\x9a\x6e\xc3\x92\xa4\x29\x25\xd6\x62\xdb\x18\xa9\x91\x65\x89\xb4\x13\x4c\x98\x25\x6d\x90\x8c\xd4\xec\x51\x4e\x1f\x29\x76\x26\x52\xb3\x99\x48\x29\x1b\x59\xbd\xe5\x1a\xef\x72\x8e\x01\x53\xa5\xd5\x93\xcc\xa4\x9d\x8b\xb6\x17\x9b\x6b\x4f\xaf\x45\xbf\x2c\xbb\x96\xf7\xdb\xac\xbf\xcb\x99\x30\x0b\x96\x77\x58\x98\xaa\xbd\xb5\x6b\xa9\x95\x7c\xb4\x68\xd0\xa4\xa5\x6d\x76\x2e\xef\x01\xf0\x3a\x85\x27\xc9\x35\xcb\xc5\x94\xe7\x31\x31\x53\x33\xcb\xa7\x73\xc6\xa3\x42\x3e\xcb\x62\x6e\x56\x36\x99\xfa\xff\xb7\xed\xfc\x52\xd8\xcf\x6b\xcb\xea\xb7\xef\x69\xf3\x9f\xd6\x70\x54\xb9\xa7\xc4\xa6\x89\x6d\x7e\x32\x73\xdd\x98\x96\x56\xdb\x78\x36\x24\xdc\x69\xa6\xe2\x51\xcc\xec\x62\x6a\x1d\xfe\x54\x21\x71\x7c\xed\x96\xab\x6b\x77\xed\x4c\x3d\x93\x22\xab\x99\x92\xec\xc1\x26\x7b\x59\xec\xce\xdb\x56\x5a\x0b\x9f\xd8\xd9\x9f\xe7\xfe\xf5\xaf\x35\x18\xaa\xbe\xd9\xe7\x88\x1c\xaa\x5b\xac\x4c\x05\xa2\x6a\xd7\x83\x44\x2d\xd6\xfc\xf0\x48\x54\xad\xb9\x80\xa2\x5a\x2e\x1b\x4a\x88\x1c\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\x14\x58\xd4\x29\xb4\x28\x58\x54\xb3\x7a\xc0\xa2\x86\xcf\xa2\xe8\x75\xb7\x46\x70\xe4\xca\x2c\xf7\xb9\x78\x96\x34\x58\xf6\x0a\xa6\x9c\xde\x4b\x63\xf9\x2c\xe3\x92\x27\xf5\x56\xe2\xc1\xa6\xfb\x25\x7c\xd5\x37\xf7\x55\x23\x16\x8b\x2c\x17\x91\x59\xc7\x7f\x0c\xea\xfb\x8a\x1e\x77\x55\xb9\xf2\x1a\xbe\x99\xc0\xb3\x98\x4c\x75\x21\x78\x63\x99\x5c\xa4\x5d\x2f\xd5\x19\x3f\xcb\x6f\xff\xbb\xd4\x20\x5f\x4b\x4d\x3b\x18\xf2\xb5\xe6\xdc\x22\x9a\x0e\x3e\x1b\x8b\xef\x12\x31\x18\x35\xde\xfe\x59\xd8\xf2\x80\x01\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\xeb\x69\xb6\x05\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x1b\x64\x8b\x02\x89\x35\xab\x07\x48\xec\x54\x90\x58\xcc\xc5\xcc\xd8\x0f\x7b\xde\xa2\xd5\x8d\x84\x7d\xa2\x8f\x79\x10\xc5\x21\x01\x58\x78\x29\xb8\x57\x5b\x43\x82\x7b\x81\x7b\xd1\x90\x09\xe3\x04\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x0b\xb8\xab\xa7\xd9\x16\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x0b\xb8\x6b\x90\x2d\x0a\xdc\xd5\xac\x1e\xe0\xae\x93\xc1\x5d\x22\x4b\xd4\xdc\xa8\xc8\x41\xf0\xae\xf0\x35\x07\x05\x5e\xe1\xad\x20\x5e\x6d\x4d\x09\xe2\x05\xe2\x65\x89\x57\x18\x28\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x3d\xcd\xb6\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x83\x6c\x51\x20\xaf\x66\xf5\x00\x79\x9d\x0a\xf2\x4a\x03\xda\xb9\xfd\xff\xc2\xbf\xff\x8b\xb3\x10\x5b\xc8\x58\xa0\x60\x71\xfb\xa9\x88\x60\x63\x60\x63\x60\x63\x38\x05\x11\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x6c\xc0\x7c\x08\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\xec\x14\x19\x99\x2b\xb5\xf9\x00\x6a\x4a\x5e\x16\x8f\x4c\x47\x2a\x13\xd7\x4c\x97\xd1\xa3\x69\x79\xb2\x57\x04\x9f\x59\x6f\x6f\x96\x2b\xaa\xe5\xb6\xa2\x65\xbc\x78\x6c\x2f\x59\xf0\x8c\x36\x7f\x36\xfd\xcf\x28\x7d\xf7\xf5\x07\x5c\xef\x00\x07\x01\x07\x01\x07\x4f\xa3\x45\x01\x07\x9b\xd5\x03\x38\x78\x7e\x70\xd0\xfe\xfe\xdf\x03\x30\xc2\x3a\x18\x4c\xbd\xec\x51\x13\xf6\x24\xd3\x78\x5f\x80\xf0\xba\xb2\x77\xc8\xa6\x73\xda\xd8\x98\x4c\x95\x21\x77\xd5\x70\x00\xd4\x9e\xdd\x03\x5e\x04\x5a\x04\x5a\x3c\x09\xb4\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x08\xac\x78\x1a\x58\x91\x78\xa2\xab\x81\x4d\x3e\x87\x2e\xe8\x70\x28\xd4\x10\xb8\x14\xb8\x14\xb8\x14\xb8\x74\xd0\x2d\x0a\x5c\xda\xac\x1e\xe0\xd2\x13\xc7\xa5\x48\xa2\x57\xa1\xcd\x46\x3a\x3d\x50\x4d\x50\xcd\x93\xa0\x9a\x48\x9f\x07\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x09\xa0\x39\x78\xa0\x09\xf0\x07\xf0\x07\xf0\x07\xf0\x37\xe8\x16\x05\xf8\x6b\x56\x0f\xc0\xdf\xd9\x80\xbf\x81\x6c\x8f\xec\x17\xfe\x1d\x78\x57\x64\x1b\x22\x01\x36\x04\x36\x5c\x78\xea\x80\xb0\x21\x90\x21\x90\x21\x90\xa1\xff\x11\xc8\x10\xc8\x10\xc8\x10\xc8\x10\xc8\x10\xc8\x10\xc8\x10\xc8\x10\xc8\x10\xc8\x10\xc8\x10\xc8\x10\xc8\x70\x90\xc8\xb0\xbe\x07\x72\x85\xab\x01\x5b\x1f\xdb\xcb\x0c\x02\x0a\x02\x0a\x02\x0a\x02\x0a\x02\x0a\x02\x7a\xe1\x04\x54\x64\x89\x9a\x1b\x23\x61\x10\x7b\x1f\xc3\xd7\x1c\x69\xf3\x63\x78\x3f\x76\x3f\x02\x63\x9e\x0c\xc6\x3c\xc0\xee\xc7\x30\x30\xc0\x32\xc1\x32\xc1\x32\xc1\x32\xc1\x32\xc1\x32\xc1\x32\xc1\x32\x7b\x9a\x6d\xc1\x32\xc1\x32\xc1\x32\xc1\x32\xc1\x32\xc1\x32\xc1\x32\x2f\x8e\x65\x02\xfe\x01\xfe\x01\xfe\x01\xfe\x0d\xba\x45\x01\xff\x9a\xd5\x03\xf8\x77\x3e\xf0\x6f\x28\xfb\x1f\xfb\x05\x80\x87\xde\x00\xd9\x46\x49\x80\x0e\x81\x0e\x17\x9e\x3a\x20\x74\x08\x6c\x08\x6c\x08\x6c\x18\x7e\x04\x36\x04\x36\x04\x36\x04\x36\x04\x36\x04\x36\x04\x36\x04\x36\x04\x36\x04\x36\x04\x36\x04\x36\x04\x36\x1c\x24\x36\x6c\x6c\x81\x5c\xe1\x6b\xc0\x1e\xc8\xf6\x32\x03\x83\x02\x83\x02\x83\x02\x83\x02\x83\x02\x83\x5e\x36\x06\xcd\x05\x01\xaf\x81\xe4\x7f\xfc\x66\xbf\xe6\x68\x09\x20\xab\xf7\x63\x0f\x24\x40\xe6\xc9\x80\xcc\xfd\xef\x81\xac\x06\x06\x60\x26\x60\x26\x60\x26\x60\x26\x60\x26\x60\x26\x60\x26\x60\x66\x4f\xb3\x2d\x60\x26\x60\x26\x60\x26\x60\x26\x60\x26\x60\x26\x60\xe6\xc5\xc1\x4c\xc0\x3f\xc0\x3f\xc0\x3f\xc0\xbf\x41\xb7\x28\xe0\x5f\xb3\x7a\x00\xff\xce\x07\xfe\x0d\x64\x0f\x64\xcf\x00\xf0\xc0\x7b\x20\x5b\x29\x09\xd0\x21\xd0\xe1\xc2\x53\x07\x84\x0e\x81\x0d\x81\x0d\x81\x0d\xc3\x8f\xc0\x86\xc0\x86\xc0\x86\xc0\x86\xc0\x86\xc0\x86\xc0\x86\xc0\x86\xc0\x86\xc0\x86\xc0\x86\xc0\x86\xc0\x86\x83\xc4\x86\xf5\x3d\x90\xab\x7c\x0d\xd8\x03\xd9\x5e\x66\x60\x50\x60\x50\x60\x50\x60\x50\x60\x50\x60\xd0\xcb\xc6\xa0\xba\xe0\x85\x98\x94\xc9\x40\x36\x41\x3e\xb8\xcf\x39\xda\x2e\xc8\xda\x07\x60\x1b\x24\x58\xe6\xc9\xb0\xcc\xfd\x6f\x83\xac\x8d\x0c\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\xcd\x9e\x66\x5b\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\xcd\x8b\x03\x9a\x00\x80\x00\x80\x00\x80\x00\x80\x83\x6e\x51\x00\xc0\x66\xf5\x00\x00\x9e\x11\x00\x1c\xc8\x46\xc8\xbe\x21\xe0\x81\x77\x42\xb6\x83\x12\xe0\x43\xe0\xc3\x85\xa7\x0e\x08\x1f\x02\x1d\x02\x1d\x02\x1d\x56\x3f\x02\x1d\x02\x1d\x02\x1d\x02\x1d\x02\x1d\x02\x1d\x02\x1d\x02\x1d\x02\x1d\x02\x1d\x02\x1d\x02\x1d\x02\x1d\x0e\x12\x1d\xd6\xf7\x42\xae\x74\x36\x60\x33\x64\x7b\x99\xc1\x42\xc1\x42\xc1\x42\xc1\x42\xc1\x42\xc1\x42\x2f\x84\x85\x22\xf3\xe3\x3f\x3e\x34\xf3\x3d\xfe\xaa\xf2\xbb\x24\x09\x10\x53\x83\x5c\x82\x5c\x9e\x04\xb9\x44\xfe\x47\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\x4b\xc0\xcb\xe1\xc3\x4b\x20\x2f\x20\x2f\x20\xaf\xd3\x68\x51\x20\xaf\x66\xf5\x00\x79\x9d\x0a\xf2\xc2\x41\x9f\x99\xfe\xc7\x87\x85\xe3\x3d\x41\xbd\x16\x1b\x13\xd4\x0b\xd4\x0b\x7b\xf6\x80\xbd\x80\xbd\x80\xbd\x80\xbd\x80\xbd\x80\xbd\x80\xbd\x86\x88\x7c\x80\xbd\x80\xbd\x80\xbd\x80\xbd\x80\xbd\x80\xbd\x80\xbd\x80\xbd\x9a\xa5\x01\xf6\x02\xf6\x02\xf6\x02\xf6\x02\xf6\xba\x40\xec\x55\x9a\xe5\xa4\x70\x9f\x4f\x38\x41\xaa\xdb\x9d\x90\xd7\xbe\x51\x4f\x17\x9c\x36\x15\x05\x93\xe9\x44\xe5\xb3\xd0\xbf\x39\xb3\xfe\xfb\xd5\xc4\x6b\x2a\x8a\xbb\x46\x35\xdc\xdd\xff\xf6\x7f\x16\xef\x39\x16\xe0\x3a\x59\xee\x14\x2a\xf1\xd4\xa9\x53\xa3\x6b\xd4\xee\x7b\x53\x7f\x77\x97\x51\xf5\xfc\xe1\xb4\x07\x56\xc3\x7a\xb4\x73\xe6\x36\xa3\xea\x1f\x1f\xee\xee\x7f\xfb\xd6\x76\x27\xc6\xd6\xf6\x63\xcb\x57\x24\xe5\xdd\x3c\xab\x21\xd6\x44\xbc\xbb\x8c\x32\xf2\xe6\xe7\xe2\x59\x8a\x97\x46\xf4\xc6\x0e\x8c\xf5\x9f\xc6\xd8\x72\x26\xe6\x35\xc5\x69\x44\xbc\xf0\x26\x74\xc3\x89\x5c\x87\x9a\x63\xc1\x32\xb3\xec\x6b\x63\x8d\xb1\xbb\x94\xc9\xd4\x22\x1c\x95\xb3\x32\x0d\x14\x28\x66\x71\x3e\xff\x56\xa6\x2c\x96\xb9\x30\xe2\x4a\x04\xb4\x60\xec\x55\x72\x08\x38\xb6\xe2\x7b\xa5\xf3\x64\xb3\x49\x99\x93\xf7\x28\xcb\x55\x24\x34\x59\xee\x4e\xcb\x39\xeb\x68\xc4\xfe\x41\x6f\x24\xaf\x1c\x99\xda\x3f\xb2\x1b\x76\x97\x24\x3f\x92\x5d\x1e\xe7\x73\x96\x97\x29\xd3\x05\x37\xaa\xc8\x3b\x23\xdc\xe3\x44\xbc\xa5\x5a\xb1\xe5\x38\xa4\xe6\x25\x27\xd2\x17\x9e\xf2\xa9\xc8\xad\x3b\xd4\x1e\xff\xa2\xb5\x8a\x24\xd9\xf7\xc1\xf1\xc8\xc9\x63\xac\x72\x66\x3a\x4b\x31\x0f\x0e\x8f\x19\x7f\x32\xf5\x56\x3c\x0a\x2d\xbc\x3e\x34\x5a\xd9\x23\x38\xa2\x50\x63\xc1\x48\x11\x93\x93\x51\xe5\xec\xc3\xc7\x1f\xcc\xb5\x39\x8f\x88\x15\x26\x2a\x9d\x5a\x35\x48\x8e\xc0\x48\xa5\x05\x97\xa9\xb5\xc4\x69\xaa\xac\xae\x25\x7e\xe2\x48\x26\x1b\xcf\x83\x51\x33\x55\x09\x4f\xa7\x23\x95\x4f\x6f\xb3\xa7\xe9\x6d\x99\xca\x48\xc5\xe2\xf6\x4f\xbf\xe9\x7b\xf3\x94\x9d\xbc\xf3\xae\x62\x0e\xd9\x20\xa7\xe2\xa1\xf0\x62\xb8\x8a\xbc\x50\xba\xe7\xa0\x2e\xeb\x1a\x64\x9c\xfd\x6e\x26\xa2\x6f\x34\x11\xad\x59\x29\xed\xe5\x8b\x8b\xe5\x8a\x7b\x57\xcc\x61\x6c\x71\x5a\xb7\x75\x3a\x56\xf1\x7c\x71\x45\xf2\x95\xda\xf6\xdb\x9a\xa3\x8c\x5e\xb5\x96\x8d\x16\xe6\xea\xe7\x0f\xa3\x7a\xf9\x56\xaf\x5f\xad\xd5\x0d\xbd\xd0\x6b\x1d\x5f\x37\xbf\x7a\xb3\x46\xf8\xc5\xba\xbe\x87\xf7\xe9\x1f\x37\x7e\xfa\x5d\x14\x89\x6c\x80\xdf\x7e\x8a\xd2\x6c\x73\xf4\x1d\x4d\xad\x7d\x04\xde\xb5\x29\xbd\xf6\x48\xbc\xf6\x69\xb3\x43\x24\xde\x16\x02\x73\x2c\x0a\x7e\xe9\xb6\x1c\xd5\x01\x0c\xba\xfa\x2f\x30\xe8\x42\x5b\x2d\xce\x1a\xd4\x5b\x5e\x67\xd5\xd9\x41\x07\xd3\x0e\xa6\x1d\x4c\x3b\x98\x76\x27\x6d\xda\xd1\x54\x76\xe6\xf6\x1d\x95\x11\x46\xde\xfe\x8d\xbc\x6d\x2a\x7a\x88\x96\xde\x2b\xbe\x7f\x18\xe6\xde\xce\x05\x38\x59\xf5\x76\xc2\x86\xdf\x42\x51\x36\x59\x7f\xa6\xe2\x41\xc6\x43\x2d\x00\x8c\xfb\x5f\x00\xc6\xdf\x36\xc6\x47\x77\xdb\x6e\x69\x48\x5d\x24\x16\x0f\xb5\x00\x2a\xde\xf8\x1f\x9c\x28\x55\x5b\xd5\xbb\xc9\x56\x50\xbc\x6d\x88\xad\x48\x68\x9c\xa8\x88\x27\xba\xa4\x98\x6a\x1e\x45\x42\x6b\x38\x57\xe0\x5c\x81\x73\xe5\x70\x0d\x82\xe4\x35\xf0\x2a\x05\xaf\xd2\xdf\xcd\x74\xfc\x60\xa7\xe3\x3b\x9a\x8e\xb7\x70\x31\xd5\x34\x45\x95\x5f\xbd\xcb\x13\x4f\xd8\xe7\x54\x2d\x75\xcf\x1f\x46\x2b\xcb\xba\x5a\x09\xb4\xb6\x0e\x94\xd7\xde\xea\x7b\x20\x1e\xa8\x9e\x8b\x71\x34\x47\x54\xaf\xe5\x38\x41\x21\x7c\x58\x4f\xd4\xa2\xae\x6e\x77\x44\x75\x98\x71\x77\x0f\x47\x68\x93\xf6\x5a\x24\x13\x48\x78\x48\x78\x48\x78\xf0\xd1\xc1\x28\xd9\x07\x91\x4c\x7a\x10\xb2\x1d\x1e\x73\x2e\xea\x75\x55\x51\x21\x5e\x07\x52\xdd\x43\xd4\xae\xaf\x2e\xc5\x30\xa4\xeb\x2b\x8b\x01\xe5\xda\x8b\x72\xdd\x3c\xd9\xee\x4d\xb8\xe6\x65\x22\xa0\x5b\xa1\x5b\xa1\x5b\xa1\x5b\x87\xa2\x5b\xbf\x99\x39\xe9\xd5\xb2\x75\xc5\x53\xce\x50\xb5\xd6\x4b\x0a\xd1\x3a\x8c\xda\x1e\xb8\x66\xdd\xa9\x10\x83\x93\xac\x3b\x94\x02\x8a\xb5\x6f\xc5\xda\x3e\xcf\xf6\x2c\x58\xe1\x65\x85\x5a\x85\x5a\x85\x5a\x1d\x8c\x5a\xed\xc1\xc3\x7a\x21\xde\x55\x78\x56\x0f\x26\x52\x4f\xdf\xab\x7a\x06\x1e\x55\x78\x53\x8f\xad\x4d\x0f\xe7\x49\xbd\xd4\x03\x09\x6a\xcb\x18\xce\x23\x40\x28\x3d\xeb\x3a\x73\x6c\x79\x1c\xc1\xca\x11\x87\xa0\x7a\xd8\x8a\xb0\x15\x07\x68\x2b\x22\xa8\x1e\x46\x72\xef\x41\xf5\x34\xe7\x5f\x64\x64\xbd\xdd\xe2\x8e\xf0\xfa\x83\xda\xd1\x3b\x57\xfa\x00\x2d\xea\xbe\xca\x32\x08\xdb\xba\x9f\xc2\x9c\xaa\x56\x1e\xa2\xa9\xbd\x43\xc8\xfd\x6b\x0f\x82\xf0\x26\x00\x82\xef\x21\xf5\x21\xf5\x81\x85\x36\x96\xe6\x90\x8a\xb7\xa7\xe0\x7b\x9a\xe1\x2e\x27\x02\xdf\xae\xeb\x08\xc3\x3f\xbc\xc8\x3d\x8b\x58\xfc\x9e\x8a\x32\x20\x89\x7b\x21\x51\xf9\xa7\xa0\x70\xb7\x0f\xcd\xdf\x83\xc0\x45\x90\x3e\xf4\x2d\xf4\x2d\xf4\xed\x90\xf4\xed\x2b\x82\xf4\x17\xe5\xed\x79\x47\xea\x2f\x2d\xe9\x08\xd7\x3f\xb8\xb8\x3d\xd9\x98\xfd\x7e\x4a\x32\x4c\x69\x7b\xc6\xd1\xfb\x27\xa6\x6c\xbb\x85\xf0\xf7\x26\x6c\xe1\xb5\x85\xaa\x85\xaa\x85\xaa\x1d\x8c\xaa\xed\xcb\x63\x7b\x49\xde\x5a\x78\x6a\x0f\x2b\x66\xcf\xc4\x4b\x7b\x2e\x1e\x5a\x78\x67\x07\xa1\x61\xf7\xe8\x99\x55\x3a\xe2\x89\x4c\xa7\xa7\x1d\xde\xbf\x63\xea\x09\x5f\x78\x24\x9e\xf0\xbf\x20\xf1\xc4\xdb\xda\xa0\xe8\x1c\xc3\x1f\x46\xd1\x25\x66\x9b\xf0\x85\x47\xae\x89\xc6\xff\xb0\x41\xa6\x6a\xab\xaa\x93\x6c\x93\x69\xa2\x3e\xaa\xe8\x8b\x8d\x41\x9b\x64\x2a\xf6\xbf\x59\x23\x63\xfb\xd1\xd6\xd5\x76\x4a\xa4\x2e\x8c\x9d\xfd\xc2\x8b\xe8\x91\xd9\xa8\x7f\x6d\x16\x18\xb3\x32\xb3\xff\x27\x7c\xd2\xbd\x8a\xef\xc2\x27\xad\x19\x2f\xe6\x79\x8d\x01\xb3\xe2\x11\xbf\xaa\xfc\x2e\x49\x42\x2c\xf8\x20\xc6\xd2\xca\x1b\xcc\xcb\x7e\xd2\x45\x2e\xf8\xec\x7f\xa8\xa2\xb6\x7e\x76\xf3\xee\x61\x0f\xda\x51\xad\x5f\x9a\x91\xba\xa2\x05\xcf\x7a\xd4\x6e\xd6\xc8\xa6\xa3\xf7\xa4\x91\xc3\x5a\xdc\x2a\x8d\x37\x8f\xc1\x0e\x3b\x61\x2b\xef\xcb\xf6\x3e\x59\x9e\x24\xea\xe5\x9f\xa6\xe3\xfe\xac\xd4\xd3\x8c\xe7\x4f\xda\x7b\x3d\xb5\x9b\x37\xc4\xb3\x48\xcd\xff\x21\x17\xe0\x3c\x13\xec\xfb\xdb\x9f\xbf\x7e\xfd\xdb\x97\xbb\x6f\x7f\xfb\xfe\x76\xc4\x1e\x44\x6e\x3e\xd0\x7a\x02\x63\x45\x3e\x5b\x39\xcb\x12\x31\x13\x69\xc1\xc6\xe1\xa9\x33\x3e\x67\x72\x9a\xaa\x5c\xb0\xe2\x51\x6a\x36\x49\xf8\x94\x9c\x7d\xd5\x25\x3c\x17\x4c\x9b\xbb\x78\x41\x2e\x2f\x4d\x8f\xbe\xd2\x2c\x96\x3a\xca\x05\x19\x1a\xec\x97\x44\xd2\xf7\xd4\x5c\xc4\x5c\x9b\x69\x72\xe1\x41\xb9\x28\xca\x3c\x15\xb1\x79\x18\x4f\xe7\x4c\x67\x22\x92\x13\x19\x31\x99\x16\x22\x7f\xe6\xc9\x35\x4b\x55\x4e\x9f\x55\x3c\x8a\xb9\x7f\x48\xf5\x5e\xeb\xc8\xd5\x22\x8d\xe9\x7e\x5f\x66\x5b\x1f\x2c\x2e\x73\x99\x4e\x19\x67\x5a\x68\x4d\x1f\xf6\xdb\xc4\x16\x4c\x6a\xfb\x51\xb6\xfa\xae\x5d\x69\xa5\x48\x62\xf3\x93\xad\x82\xd8\x5d\x2e\xd8\x44\xf0\xa2\xcc\x05\x9b\xf2\x42\xb0\x85\x86\x70\x4f\x12\xa9\x51\x34\x31\xf9\xb0\x33\x69\x3f\x6e\xd5\x63\xb7\x74\x06\xb6\x34\x7f\xbb\x67\x70\xac\x54\x22\x78\xda\xb7\xa3\xf3\xf7\x47\x41\x7e\x5e\x99\x96\x82\x29\xfa\xb3\x6f\xd8\xb1\x69\x87\x82\xbd\x3c\x8a\xd4\xb4\x65\x2e\xc5\xb3\xa9\xf0\x99\xa2\xb6\xd5\x65\x52\x68\x36\xc9\xd5\xac\xd6\x62\x23\xf6\x20\xd3\xc8\xf5\x2f\xeb\x77\x96\xda\xb7\xa6\xf3\x16\x5f\xb3\xc8\x75\x20\xd3\xf2\xe4\x68\x2e\xb5\x6d\xf6\xf0\x21\xf6\x56\x7a\x38\x67\x59\x2e\x9e\xa5\x2a\x35\xa3\x6a\xf4\x3c\x81\x46\x83\x8c\x6d\xf6\xc5\xc4\xfd\x56\x8d\x3f\xf6\x4e\xfc\x11\x89\xac\xb0\xdb\xe8\x82\x17\x5c\x4d\xc2\x4b\xde\x53\xdf\xaf\xf5\x36\xf3\x39\xb9\xa0\x8d\x79\x7c\xf1\x53\xa4\x19\x59\xc2\xf6\x86\x40\x3c\x42\x17\x72\x3d\x5b\xc4\x4b\xb7\x99\x3b\xc8\xad\x2e\x72\x66\xa1\xc9\xcb\xa3\x20\xd6\x11\x97\x82\x15\x8a\x89\x3f\x32\x69\x57\x78\xf6\x6e\x2a\x52\x91\xf3\x24\x99\xb3\x89\x7c\xa6\x5f\x27\x72\x52\x08\x91\xb2\x99\x4c\xcb\x42\xe8\xf7\x46\x4b\xd0\xb7\x4d\xe4\xb4\x74\xb7\x59\x5f\x3f\x53\x69\xad\x2c\xd7\x4b\xa3\xc8\xae\x7f\x8e\x23\x70\xf6\xbf\x3f\xfc\x2f\xe6\x05\xe2\x67\xf3\x09\x22\x76\x6c\xa6\x50\x53\xfb\x81\xee\xca\x50\x22\x4a\x6d\x1e\x8a\x6c\xdb\x90\xa5\x42\xc4\xda\x5e\x45\x80\x28\x2d\x98\x99\xba\xaf\x4d\x85\x11\x71\xc8\x85\x2e\x78\x4e\xb3\x89\xcc\xe9\x37\x7a\xb0\x2a\x8b\x66\x8b\xd3\x38\x1a\xb1\xaf\xe6\xd5\x2f\x52\x8b\xeb\xfa\x5b\x4c\xcb\xb8\x69\x40\xd1\xb7\xd1\x73\xdc\x2c\x59\xa1\x11\xfa\x42\xd3\x3c\x42\x3e\xd7\x91\x89\x29\x2c\x15\x6e\x63\xb5\xd0\x73\xe9\x83\x4d\x4f\x0f\x9d\x3b\x15\x7f\x14\xec\x49\xcc\xaf\xd9\xb8\x2c\xaa\x3f\x27\xbc\x30\xef\xd7\x29\xcf\xf4\xa3\x2a\xae\xd9\xcb\xa3\x8c\x1e\x69\x32\x48\x6b\x15\x12\xae\x0f\x1d\xd9\x7d\xbe\x1d\x42\x37\x41\x17\xd2\x04\x6e\x66\x4e\xeb\x3b\x8f\xaf\x1d\x93\x33\xff\x52\x66\xfc\x24\xa2\x30\xd3\xe9\xa4\x10\xb6\x4f\x4f\x64\xae\x8b\xc5\xca\xb0\xec\x4b\xa6\x51\x52\xc6\x76\xce\xb2\x20\xcd\xea\x1f\xe2\x36\xa6\x43\x9a\xff\xda\x46\x79\x12\x73\x3b\x61\x57\x0f\xfe\xfe\xd6\x17\xf9\xfb\xdb\xd1\xf7\xf4\x7b\xfa\x7b\x63\xae\x33\xa3\x40\x97\x59\xa6\x72\x42\x53\x66\x82\xb0\x2b\x95\xd4\x34\x09\x55\x6b\x04\xb5\x1c\x75\x00\x37\x1b\xd7\x6b\xcf\x56\x02\xf5\xc1\x7f\xd8\x15\xd6\x0d\x9b\xb0\x72\x8c\xe7\xf5\x16\xb3\xb4\xb0\x60\x33\xa9\x35\xad\x08\x0d\x64\xb9\xed\xcc\xeb\xbb\xde\x21\xb1\xd2\x1d\xd3\x22\x11\x44\xf0\x0a\x45\x63\x23\x97\x91\x1d\x09\xd6\x54\x98\x54\x65\xf7\xbd\xc2\xd6\x81\xcc\x6d\xf5\xeb\x11\xfb\x24\x26\x9c\x7a\x8e\x99\x3e\x9e\x45\x3e\x2f\x1e\x8d\x96\xdc\x85\xac\x3d\xb8\xaf\x39\x99\x3a\x48\xf8\x58\x24\xbd\xd5\x01\x3d\xed\x18\x75\x90\xc8\x99\x2c\x2c\xe8\x9d\xf1\x3f\xe4\xac\x9c\xb1\xb4\x9c\x8d\x45\x6e\x4b\xef\x4c\x15\x5b\x3f\xa6\x2a\x68\x15\x73\xd3\x53\xc4\x93\x84\xa6\x61\x5a\x88\xa5\xf9\x0a\x26\xfe\xa0\x49\x77\x59\x3a\xd9\x7a\xfd\xb7\xef\xeb\xff\x76\x63\xd8\x2d\x16\xf4\xbc\x99\x28\x78\xcc\x0b\x6e\xde\xc6\xdd\x00\xa4\x99\x28\xe2\xa9\x99\x49\x4a\x5d\x9f\x4b\x35\x9f\x99\xc9\x45\x16\x32\x2c\xba\xf6\x2b\x8d\x3c\x10\xd5\x6c\x69\x5e\x6d\xcb\x62\x9a\xc9\x88\xd4\xa2\xb0\x72\xcd\x96\xdd\x2e\xb6\xb6\x6c\xe2\x85\xa6\x1d\x9e\xd6\x91\xbf\x99\xe8\x66\xaa\x4c\xe9\x31\xb6\x94\xef\xca\xcc\xbc\xec\x3f\x22\x57\xf6\x2f\xef\xfd\xec\x66\x15\x21\xa7\x09\xdd\xdf\xed\xfb\x8e\x99\xd9\x26\x32\x29\x84\x59\xe3\xcc\xba\x63\xa6\x91\xa8\xa9\x61\x1b\x2a\xc4\x06\x48\x44\xc2\xc7\x20\x34\xd7\x28\xf3\x05\xb1\x91\x18\x33\x99\x8a\xb0\x9a\x37\x44\x11\xcd\xa5\xde\x0f\x56\xe9\x73\x53\xe4\xe8\x51\x29\x2d\x68\x16\x2b\x94\x9f\x43\x5d\x5b\x98\x6a\xe1\xf9\xb4\x24\xd9\xce\x69\x51\xa2\x02\x51\x25\x99\xb2\xb9\xef\x69\xb8\xd8\x6c\xed\xfe\x36\x61\xa1\x4b\x55\x62\xc4\xeb\x9b\x85\x02\x48\xcd\xc4\x2c\x2b\xe6\x4d\x21\x16\xd4\x37\x2f\x8c\x66\x59\x57\xa0\x75\x8b\x81\x9c\x2c\x2c\x05\x76\xf5\x08\xfd\x72\x5a\xf2\x9c\xa7\x85\xf0\x51\x27\x04\xd6\x5d\x4b\x85\x61\x4f\x2b\x4a\x49\x71\x20\xe1\xdb\xc3\xc2\x16\x24\x5f\xa1\x98\xd4\xba\x74\x46\x80\x4c\xa7\x89\xa8\x46\x48\x50\x19\xbe\xc3\xdd\xf8\x48\x09\x63\x75\x84\x57\x6e\xb7\xd2\xfa\x45\x96\x6c\x0c\x5d\x8a\xb8\x75\xb9\x25\x5b\xa7\x1c\x6b\x73\x71\x5a\x84\x12\xc4\xc1\xac\x73\x35\x68\xda\x4a\xcd\x44\x21\x67\xc2\x94\x7d\x22\x72\xd3\x43\xcd\x28\x5c\x50\x54\x95\xc0\x30\x2d\x2a\x52\x5d\xe6\xbe\xfa\xb8\x97\x48\x3e\x0c\xc4\xd6\x9a\x2d\x32\x0d\x4c\x12\x43\x4c\xcf\x78\x92\x88\x9c\x45\x8f\x65\xfa\xa4\x2d\xe2\x30\xd3\x26\x4b\x78\x3e\xf5\x0d\x4d\x23\xde\x3e\xde\x5a\x64\x5a\x08\xea\x78\x99\xd2\x5a\x9a\x0e\xe7\xaa\x8d\x3a\x5c\x7d\x7c\x95\x59\x4c\x51\x2a\xc1\x26\xa3\xf7\x88\xd8\xb6\x07\xc9\x6f\xb7\xc0\xbb\x3e\xec\x0e\xc0\xa0\xaf\x7e\xe1\xda\x07\x25\x79\xbb\xd3\xd4\xc9\xb2\xc2\xb1\xba\x9f\x6b\xd3\xc0\x51\x99\xd0\x1b\x65\xd5\x6d\xb6\x9e\xfd\x4d\x25\xb5\xcf\xfa\xc6\x42\x5d\x8a\x38\xb9\x9c\xa8\x92\x6e\xa5\x59\xd4\x6e\x5a\x14\xbe\xe3\x16\x39\x97\x66\xe6\x4e\xd9\x8b\x69\x61\x7f\xa5\xef\x05\xe6\x32\x3f\x96\xcc\xdc\x33\x76\xd3\x43\x4c\xea\xd0\xcc\x98\x22\x04\x14\xd5\xdc\x7d\x52\xdd\xc6\x2a\xd2\xb7\x34\x56\xcc\x0c\x7d\x4b\xbd\xfd\x86\x67\xf2\x96\x67\xf2\x26\x52\xa9\x31\xf9\xf4\xed\x9f\xfc\x0b\x6f\xc2\x0b\x27\x34\xac\x0b\x2e\x13\x4d\x53\x52\x5d\x40\x94\xa9\x16\xc5\x96\xd5\xbd\x50\xf8\x23\xd6\xfb\x17\x9a\x6e\xc3\x92\xa4\xd9\xa3\x7a\x59\xd2\xd5\x46\x6a\x64\x59\x22\xed\x04\x13\x66\x49\x33\x92\xa9\xef\x3d\xca\xe9\x63\x32\x27\xd3\x76\x36\x13\xa9\x99\xc9\x8a\x7a\xcb\x35\xde\xe5\x1c\x03\xa6\x4a\xab\x27\x99\x49\x3b\x17\x6d\x2f\x36\xd7\x9e\x5e\x8b\x7e\x59\xf6\x44\xef\xb7\x59\x7f\x97\x33\x61\x16\x2c\xef\xb0\x30\x55\x7b\x6b\xd7\x52\x2b\xf9\x68\xd1\xa0\x49\x8b\x2c\x37\x33\xd9\x06\x60\x4d\xcb\x3c\x4f\x92\x6b\x96\x8b\x29\xcf\x63\x8a\xf2\x33\xb3\x7c\x3a\x67\x3c\x2a\xe4\xb3\x2c\xe6\x66\x65\x93\xa9\xff\x7f\xdb\xce\x2f\x85\xfd\xbc\x07\x11\xa9\x34\x5e\xe1\xa3\xda\xd3\xb4\xf9\x4f\x6b\x38\xaa\xdc\xc7\x35\x9a\x26\xa6\x1a\xa0\xeb\xc6\xb4\xb4\x3a\x6a\x48\x4b\xa4\xd3\x4c\xc5\xa3\x98\xd9\xc5\xd4\xf2\x01\xaa\x90\x38\xbe\x76\xcb\xd5\xb5\xbb\x76\xa6\x9e\x49\x91\xd5\x4c\x49\xf6\x40\x22\x6a\xbe\xd8\x9d\xb7\xad\xb4\x16\x9c\xb1\xb3\x3f\xcf\xfd\xeb\x5f\x9b\x51\xd7\x8a\x63\xdf\xba\x10\x30\xab\x7c\xfa\x85\x60\xf6\x99\x2c\x52\x89\x31\xb4\x5c\x87\xdd\x9e\x7d\xd9\xc7\x34\xe8\xd7\x2f\xe1\x91\xd5\xb1\x47\x1d\x1e\xbc\xdf\x08\xc3\xbd\xf0\xdc\x4f\x54\xf8\xaf\x54\xa7\xba\x23\x17\x5a\x0f\x84\xe0\xf8\x85\xe3\x17\x8e\x5f\x38\x7e\xcf\xcd\xf1\xbb\x66\x59\xde\xe4\xfc\x5d\x2f\xf1\xd6\x2f\xcf\x5b\xcd\xbd\xd8\x87\xd3\xb9\xa1\x5a\xf6\xe2\x1c\xac\x99\x0e\xe6\xad\xef\x56\x15\xab\x3d\xf6\x07\xab\x91\xdf\xeb\x66\x87\x34\x26\x3f\x59\x03\x6c\x2c\x26\x36\xac\x20\x78\x76\x2a\x29\xe1\x66\x2f\xea\x3a\xb5\x7d\x48\xa9\x4a\x6f\x52\x31\xe5\xd4\x41\x9d\xe1\x50\xdf\xaf\x64\xbd\xbc\x61\x68\x38\x11\x29\x67\x33\x11\x4b\x5e\x88\x64\x5e\xf1\xfe\x6a\xc9\x95\xc9\xb5\x33\x0c\xa8\xd2\xd9\x34\xe7\x11\x8d\x1a\xa9\xe2\x20\x08\xaa\x45\x9b\x82\x29\x7c\x2f\x2d\xb5\xf9\xc8\x7a\x73\x71\x73\xa7\x2f\x90\x7b\xc9\xc4\xce\x81\xfe\x11\x23\xfb\x9d\x33\xc1\xd3\xd6\x6f\xdc\xa1\x99\xe9\x9b\xef\xe9\x93\xdb\x8c\xad\x0d\xe6\xd6\x50\xba\xff\x36\xa0\xa6\x5b\xbd\xac\x86\x35\x07\xeb\xfe\xc0\x36\xc0\x36\xc0\x36\xc0\x36\xc0\x36\x7b\xc3\x36\x1d\xd7\x82\x25\x74\x73\xb8\x65\xf1\x93\xc8\x72\x61\x44\x49\xfc\x23\xcb\x12\xc1\xb5\x08\x53\xd0\x7d\xae\x32\x3e\x25\x75\x74\xaf\x12\x19\xcd\x1b\x41\x82\xbe\xd3\xc5\xe1\x01\xa6\xdb\x7d\x18\xfd\x65\xc4\x1e\xec\x7c\x66\xa5\x4b\x26\x52\x33\x58\xaa\x35\x55\x30\x95\x67\x8f\x3c\xf5\x41\x8b\x79\x29\x6e\x27\x3c\xf1\xb6\xf2\xf7\xb7\xf6\xe7\xef\x6f\xd9\x44\xa6\x3c\x91\xff\xf1\x0b\xc9\x58\x30\x1e\x93\x2f\x5f\xdd\x5a\x3f\x67\x5c\x99\x61\xf6\xf1\x57\xba\xba\xc9\xda\xa7\x23\xf6\x59\xd2\xe4\x58\xfb\x74\x95\x2f\x97\xad\x22\x37\x85\x35\x8f\xc9\x46\x51\xc5\xe3\x2e\x0d\x6a\x4b\xf0\xc9\x97\x7d\xa5\xe4\x69\xf3\x9a\xf6\x6b\x98\x51\xd1\xcd\x80\x7d\x54\x2f\x6c\xca\xf3\x31\x9f\x36\x7c\x97\xc1\xa8\x11\xf9\x44\xe5\x33\xd3\x26\xad\xf5\xf5\x75\xa1\x44\xab\xab\x8b\x44\xaf\x57\xac\x99\xad\x5b\x69\xd4\x64\x24\xe3\xca\x14\x26\xad\x40\xce\x89\xd0\xc6\x9a\x36\xae\xd1\xaf\x5e\x0d\x8c\x6a\x8d\xe9\xd7\x91\x80\x4e\x42\x00\x6e\xf3\x65\x23\x66\xf7\x83\xd2\xda\x54\xb7\xec\xae\x6c\x19\xae\xd8\x8d\xeb\x80\xcd\x0e\xaa\x7f\x62\x57\x3f\xf3\xe8\x69\x9a\xab\x32\x8d\xcd\x55\x14\xcc\x4a\x17\x2d\x54\x9c\x95\x90\x4e\x1f\x37\x1f\xe2\x4b\x30\x0e\x4f\xfa\x89\x5d\xfd\xaa\x72\x51\x7b\x2c\x8b\xb8\x8e\x78\x6c\x4a\xef\xea\xc7\xc6\x3a\xd3\xf3\xb4\x35\x3d\x97\x1e\x38\x09\xcf\xd8\xa5\x43\x66\x8b\xdd\xfd\x38\x8a\xf3\x8c\x19\x6b\xb7\x76\x58\xc7\x59\x8f\xd5\x0a\x20\xae\x7b\x6b\xdf\x65\xea\x7a\x38\xdf\xc6\x31\xf9\x6b\xb7\xca\x5a\xc3\x60\x5f\xab\x7f\x5a\x41\x1e\xb6\x5d\x6e\x89\xe9\x1e\x0a\x5e\x94\x5d\xf9\xdc\x39\xee\xdb\xb2\x4b\x72\x25\x97\x4e\x70\x0f\xd7\xe9\x6d\x02\xdd\x0b\xfc\xc6\x36\xb5\xcb\xd9\xa6\xd6\x6d\xf5\xd9\xb4\x55\xed\x70\x66\x1a\x62\x17\x10\xbb\x80\xd8\x05\xc4\x2e\x20\x76\xa1\x6d\xf2\x05\x14\x3f\xa1\x1a\x01\x27\x05\x27\x05\x27\x05\x27\x05\x27\x05\x27\x3d\x2f\x4e\x0a\x74\x01\x74\x01\x74\x01\x74\xb1\x77\x74\xb1\x05\xde\x1f\xe8\x46\xb2\x6e\x55\xb8\xbc\x99\xec\xb5\x1e\xb7\x41\x41\x9f\x95\x37\xe0\x7c\x40\x9c\x0f\x78\xb9\xe7\x03\x3a\x29\x69\xf3\x81\xa4\x31\x33\xcd\xc4\x74\xa4\x32\x71\xcd\x74\x19\x3d\x9a\x79\x89\xe6\x7d\xc1\x67\x76\xd2\xca\x72\x45\xd2\xb5\x6d\xaf\x6a\xc6\x8b\xc7\xf6\xad\xaa\x61\xa3\x68\xf3\xe7\x35\xf9\x12\x90\x82\x83\x1d\x3a\x05\xc7\xf6\xb0\x30\xa4\xe1\xd8\x33\x2e\x1c\x5e\x36\x8e\x0e\x93\x68\x2f\x1b\x69\xb1\x99\xab\xde\x03\x06\xbb\x99\xeb\x42\x53\x2c\x6d\xe1\x45\x6f\x4b\xb3\xf4\xca\xe6\x19\x94\xc0\x3c\x0b\xdd\x37\xf8\x6c\x36\xbd\x96\xe1\x58\xa9\x6c\x7a\x2c\xc4\x19\x8a\xef\x1e\x13\xd8\x1c\x40\x7c\xbf\x61\x3d\x9f\x97\x62\x2f\xfa\xef\x81\x8e\x4d\xd9\x45\xf4\xb5\x1c\x95\x32\x20\xd1\x77\x22\x07\xa4\x40\xd7\xd5\x1b\x79\xb0\xba\x0e\x5b\xd2\x2f\x68\x4b\x3a\xf6\xde\x61\xef\x1d\xf6\xde\x61\xef\x1d\x4c\xd2\x55\xa3\x68\x90\x1b\x5d\x8e\x63\xc8\x61\x9f\xce\xa6\x7d\x3a\xa7\x63\xc4\x05\xe7\x7a\xef\xbb\x73\x72\xc1\xe3\x05\x0d\xb6\xbd\xc1\x65\x1e\x72\xf0\x2d\x39\x35\xe1\x22\xfe\xa0\x40\xbb\xb1\xf9\x17\x8f\x8a\x11\x63\x9f\xcd\x7f\xfd\xdf\x67\x5c\x92\x9b\x51\xb3\x28\x29\x75\x21\xf2\x6a\x39\xb2\x11\xb9\x2c\x91\x4f\x82\x5d\x85\xaf\xbe\x32\xaa\xd3\x2b\xa5\x11\xbb\x4f\x78\x9a\x0a\x2b\x57\x49\xcb\xf0\xc4\xca\xa7\x0f\x3f\xec\x32\xbf\xd3\x37\x1e\x49\x65\x84\x4a\x0b\x22\x7d\xec\xab\xcf\x94\x94\x7d\xb6\x35\x66\x56\x96\x4c\xfb\xda\x71\xb1\x68\xa5\x16\x39\x05\x91\x55\x7a\x7b\xbe\xe7\x8a\x32\x1f\x73\xbe\xc8\x7f\xd8\xcb\x1f\x1c\x81\xe1\x9a\x15\xab\xc8\x54\x9c\x90\x1f\xf0\x35\x10\x9e\x50\x91\xf3\xb2\x74\xfa\x98\x2e\xb4\x7d\x28\xa0\x1d\x11\x06\x27\x17\x61\x40\x71\x4c\x3b\xe5\x85\xbe\xa1\x7b\xff\xbc\x7e\x36\x9f\x89\x7c\x2a\x3a\x5d\xa9\x8b\x9c\x17\x62\x2a\xa3\x9b\xee\xf7\x98\x7f\xcf\xdd\x95\xb4\x6e\x74\x91\x69\x19\xcf\x0b\x49\xdb\x0c\x6d\xcc\xdd\xab\x25\x1b\xbd\x7f\xa8\x2e\xf2\x7d\xc5\x45\xac\x31\x89\xee\x9b\xb1\x71\x0c\x8e\xf3\x33\x77\x9c\x5f\x4e\x40\xc4\xc2\x8e\x1e\x3f\xb8\xec\xae\x33\x33\x19\x55\x27\x19\xbc\x5b\x31\x51\xbd\x27\xb7\xa1\xdd\x6a\xce\x13\xba\x33\x55\xe9\x8d\xbd\x9b\xae\x20\xcf\xbd\x66\xef\xfe\xaa\x55\x7a\x6f\x37\xf4\x7f\x31\x53\xa2\xfb\xf7\x83\x9f\x28\xab\x3f\xbe\x1f\x52\xa4\x46\xf7\x7e\xf3\xab\xca\x23\x42\x1b\x53\x45\x8d\xaf\xd8\xf7\xb7\x13\xf3\xb7\xef\x6f\xd9\x5d\xa3\x36\x69\xbf\x80\xe5\x10\x64\x3a\xb9\x81\x7a\xc3\x23\x6a\x00\xda\x12\x9e\xc8\xc8\x79\x56\xc9\xd2\x52\x2f\xae\x6d\xed\x96\xe9\x4c\xa8\x2c\x11\x23\x66\xdf\x49\x27\x41\xf8\x3e\x45\x51\xfb\xad\x0d\x11\x5e\xbf\x4b\xf5\x9a\x17\xc1\xe0\xb2\x3f\xc0\xe0\x1a\x9a\xc1\x95\x2d\x84\xbf\x9f\x8c\xc9\x55\xf6\xee\xb5\xcb\x12\x1e\xbd\x5e\x05\xba\xe7\x5c\x9a\x0e\x44\x7c\x2c\xe4\xe0\xc5\xca\xc1\x01\xa9\x2e\x88\x83\xf0\x0b\xe2\x63\x21\x70\xac\x50\x38\x19\x79\xf3\x86\xed\x27\xb2\xf4\x56\x5b\x3c\x5d\x0b\x30\xdd\x0f\xf6\xb4\xef\xf1\xcb\xde\x61\x01\xa8\x43\xf0\x98\xf7\x30\x67\xbc\x72\xce\x00\x85\x02\x85\xda\xae\xcc\xa0\x50\xa0\x50\xfd\x50\xa8\xfe\x56\xd0\x1d\x78\x54\xcb\x12\x7a\x92\xde\x08\x50\x29\xb8\x21\x2e\xcf\x0d\x01\x2a\xd5\x67\xbf\x01\x95\x82\xe3\x09\x06\xd8\x71\x0c\x30\x50\xa9\x05\x2a\xd5\xa7\x5f\x65\x07\x3e\x75\x2e\xba\x10\x94\x0a\xf2\xf0\x62\xe5\xe1\x80\x54\x18\xc4\x42\xf8\x05\x94\x0a\x82\xe7\xec\x28\x15\x1d\x8b\xb9\x12\x4a\xed\x15\x43\xb9\xc3\xd4\xd3\x58\x3e\xcb\xb8\xe4\x49\xfd\x60\x56\x1e\xd2\x27\xac\xa8\x87\x51\x6d\x3b\xff\x8f\xe1\x20\x80\x2b\x7a\xe6\x55\x95\x56\xa7\x91\x27\x25\xe8\x2b\x26\x53\x5d\x08\xde\x70\xa9\x2e\xaa\xaf\x97\x25\x9f\xdc\x9a\xd3\x38\x7f\x55\xf9\x5d\x92\x04\x71\x36\x08\xb4\xb5\xf2\x86\xcb\x3a\x53\x75\x8d\x83\x91\x8e\x04\xfe\xfc\x2c\xd2\x4b\x3e\x4d\x95\xda\xf0\x72\x8e\x54\x45\x2e\xbb\x33\xce\x65\xb7\x19\x8a\x6d\xca\x63\xb7\xd6\xb3\xd6\x03\xf0\x43\xf6\x3a\x64\xaf\x43\xf6\x3a\x64\xaf\x3b\xb7\xec\x75\x9b\x67\xde\xd6\xcc\x75\x7b\x0e\xaf\x38\x58\xbe\xba\xcd\xc5\x5f\x9d\xab\x6e\xc8\x75\xb0\x4d\x86\xba\xcd\x75\xb0\x3a\x3b\xdd\x9e\xeb\x00\x39\xe9\x90\x93\x0e\x39\xe9\x90\x93\x0e\x39\xe9\xf6\x96\x93\xae\xc3\xec\xbf\x94\x8f\x6e\xed\xc9\xa1\x17\x14\x5d\xd9\xad\x34\x67\x9c\x53\x6f\x73\x75\xaf\xcb\xa7\x77\xd8\x7a\x47\x16\xbd\xbd\xb4\xe8\x72\x06\xbd\x3d\x37\xeb\x51\xf3\xe6\x6d\xae\x9e\x35\x39\xf3\xf6\x3d\x6d\x0e\x35\x53\xde\xe6\x4a\x6b\xa1\x19\x3b\xfb\xf3\xdc\xbf\xfe\xd5\x15\xa1\x6d\xb9\xdd\x0b\x64\x6d\x9b\xa8\xa6\xbf\x2f\xf0\x09\x30\x35\x30\x35\x06\xa6\x06\xa6\x06\xa6\x06\xa6\x06\xa6\x06\xa6\x06\xa6\x06\xa6\x06\xa6\xd6\x9c\x6e\x07\xc8\x93\xc0\xd4\xc0\xd4\xc0\xd4\xc0\xd4\xc0\xd4\xc0\xd4\xc0\xd4\x4e\x91\xa9\xe1\xa8\x16\xc0\x44\xc0\x44\xc0\xc4\x41\xb7\x28\x60\x62\xb3\x7a\x00\x13\xcf\x1b\x26\xb6\x64\x25\xdf\x13\x53\xac\x83\xc4\xd4\x4b\x20\x35\x61\x4f\x32\x5d\x79\xc4\x41\x2f\x40\xf1\xba\x32\x80\xc8\xc8\x73\x62\xd9\xd8\x50\x95\x65\x77\xd5\xf0\x08\xd4\x9e\xdd\x33\x8e\x04\x8a\x04\x8a\x3c\x25\x14\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x09\x0c\x79\x7a\x18\x12\xe9\x30\xc0\x58\xc1\x58\x4f\x87\xc8\x81\xb1\x82\xb1\x82\xb1\x82\xb1\x2e\x54\xda\x31\x18\xeb\xc7\xb1\x28\xf8\x87\xdb\x9d\x60\xe9\x51\x0e\x38\x5e\x68\xed\xa9\x28\x9a\x86\x8b\x6d\xd8\x35\x84\x73\x2a\x8a\x3a\xdf\xb4\x15\x70\x77\xff\xdb\xb7\xb6\x7b\x71\xb6\xf3\x96\x98\xb1\x56\x91\xb4\x4d\xf5\x9c\x58\xa3\xed\x2a\xb5\x9b\xdf\xd4\x3f\x60\xf3\x20\x3b\xca\xee\x67\xeb\xfb\xca\x9d\xf5\xec\x8d\xab\x0d\x41\x0a\x6b\x86\x8f\x79\xde\xf2\xf8\x59\xf1\x1c\x9c\x04\xbc\xd8\x3a\x83\x19\xc3\xcd\xb3\xcd\x6d\x2b\xae\x3a\xe0\xfc\xfc\x47\xf2\xe6\xd0\x81\xe1\x6e\x60\x5e\x2c\x0c\xc2\x07\x10\x3e\x80\xf0\x01\x84\x0f\x20\x7c\x00\xe1\x03\x08\x1f\x40\xf8\xc0\xe6\xd9\x16\xe1\x03\x08\x1f\x40\xf8\x00\xc2\x07\x10\x3e\x80\xf0\x01\x84\x0f\x5c\x5c\xf8\x00\x40\x33\x40\x33\x40\xf3\x69\xb4\x28\x40\x73\xb3\x7a\x00\x9a\x4f\x0b\x34\xbf\xe2\x60\x60\x2b\x7f\xfa\xa5\x63\xf6\x99\x2c\x52\x89\xb1\xb6\x5c\xaf\xdd\x1e\x8a\xd9\xc7\x2c\x63\xb1\x5f\xc2\x73\xb7\xdb\x45\xbb\xd7\x24\xe5\x7b\xe1\xbe\x9f\xa8\x06\xbe\x52\xc5\xea\x5e\xf2\x90\xc3\x05\x0c\x17\x30\x5c\xc0\x70\x01\x9f\x9b\x0b\xb8\x5b\x06\xfb\x56\x37\xf0\x2b\xb3\xd7\x77\x9f\x7b\xff\x69\x2a\xce\x19\xbf\xd7\x74\x74\x7e\x64\x7a\x94\xed\x07\x8d\xb2\xd5\x71\xeb\x58\xb0\xcc\xd4\x96\x36\x76\x22\xbb\x4b\x99\x4c\xed\xcc\xa2\x72\x56\xa6\x61\x72\x8a\x59\x9c\xcf\xbf\x95\x29\x8b\x65\x6e\x16\xc7\x67\x11\x7a\xbc\x99\x3e\xc9\x55\xe1\x86\xbc\xef\x1b\xae\x82\xd9\xa4\xcc\x69\x94\x65\xb9\x8a\x84\x26\x9f\x82\x53\x99\xae\x97\x8d\xd8\x3f\xe8\x8d\xd4\x5a\xd4\x77\x7e\x64\x37\xec\x2e\x49\x7e\x24\x8f\x41\x6c\x66\xe9\x32\x35\x0d\x6f\xf4\x9a\xef\x92\xee\x71\xcb\xa9\xe3\x3b\x34\x94\x2d\xcb\x71\x9a\xe9\x60\x7e\xfb\x6e\x55\xb1\xda\x77\x7f\xb0\x1a\xf9\xbd\x6e\x80\x48\x63\xfc\x93\x5d\xc0\xc6\x62\x62\x03\x0c\x82\x8f\xa7\x92\x12\x6e\xf6\xa2\xae\x53\x0a\xbb\x38\x8c\x8d\xf4\x4e\x6f\x52\x31\xe5\xd4\x41\x9d\x09\x61\xac\x1d\xbf\x82\x5a\x7f\x6f\x18\x1a\x4e\x49\xca\xd9\x4c\xc4\x92\x17\x22\x99\x57\xe4\xbf\x5a\x72\x65\x72\xed\x4c\x04\xaa\x74\x36\xcd\x79\x44\xa3\x46\xaa\x38\x08\x82\x6a\xd1\xa6\xb0\x0a\xdf\x4b\x4b\x6d\x3e\xb2\xde\x5c\xdc\xdc\xe9\x0b\xe4\x5e\x32\xb1\x73\xa0\x7f\xc4\xc8\x7e\xe7\x4c\xf0\xb4\xf5\x1b\x77\x68\x66\xfa\xe6\x7b\xfa\xe4\x36\xb3\x6b\x83\xe1\x35\x94\xee\xbf\x0d\xb2\xe9\x56\x2f\xab\xb1\xcd\xc1\xba\x3f\x00\x0e\x00\x0e\x00\x0e\x00\x0e\x00\xce\xde\x00\x4e\xc7\xb5\x60\x09\xe2\x1c\x6e\x59\xfc\x54\x3b\x5f\x2e\x4b\x04\xd7\x22\x4c\x41\xf7\xb9\xca\xf8\x94\xd4\xd1\xbd\x4a\x64\x34\x6f\x84\x0b\xfa\x4e\x57\x1d\x50\x67\xba\xdd\x87\xd1\x5f\x46\xec\xc1\xce\x67\x56\xba\x64\x22\x35\x83\xa5\x5a\x53\x05\x53\x79\xf6\xc8\x53\x1f\xbe\x98\x97\xe2\x76\xc2\x13\x6f\x2b\x7f\x7f\x6b\x7f\xfe\xfe\x96\x4d\x64\xca\x13\xf9\x1f\xbf\x90\x8c\x05\xe3\x31\x79\xf5\xd5\xad\xf5\x78\xc6\x95\x19\x66\x1f\x7f\xa5\xab\x9b\xac\x7d\x3a\x62\x9f\x25\x4d\x8e\xb5\x4f\x57\xf9\x72\xd9\x2a\x86\x53\x58\xf3\x98\x6c\x14\x55\x3c\xee\xd2\xa0\xb6\x04\x9f\x7c\xd9\x57\x4a\x9e\x36\xff\x69\xbf\x86\x19\x15\xdd\x0c\xd8\x47\xf5\xc2\xa6\x3c\x1f\xf3\x69\xc3\x81\x19\x8c\x1a\x91\x4f\x54\x3e\x33\x6d\xd2\x5a\x5f\x5f\x17\x4a\xb4\xba\xba\x48\xf4\x7a\xc5\x9a\xd9\xba\x95\x46\x4d\x46\x32\xae\x4c\x61\xd2\x0a\xe4\x9c\x08\x6d\x6c\x16\x6b\xb7\x92\x7a\x35\x30\xaa\x35\xa6\x5f\x47\x02\x44\x09\xa1\xb8\xcd\x97\x8d\xd8\x5d\x14\x89\xac\xa0\xb5\xa9\x6e\xd9\x5d\xd9\x32\x5c\xb1\x1b\xd7\x01\x9b\x1d\x54\xff\xc4\xae\x7e\xe6\xd1\xd3\x34\x57\x65\x1a\x9b\xab\x28\xac\x95\x2e\x5a\xa8\x38\x2b\x21\x9d\x3e\x6e\x3e\xc4\x97\x60\x1c\x9e\xf4\x13\xbb\xfa\x55\xe5\xa2\xf6\x58\x16\x71\x1d\xf1\xd8\x94\xde\xd5\x8f\x8d\x7a\xa6\xe7\x69\x6b\x7a\x2e\x3d\x70\x12\x9e\xb1\x4b\x87\xcc\x16\xbb\xfb\x71\x14\xe7\x19\xd3\xd6\x6e\xed\xb0\x8e\xb8\x1e\xab\x15\xc0\x5e\xf7\xd6\xbe\xcb\xfc\xf5\x70\xbe\x8d\x63\x92\xd8\x6e\x95\xb5\x86\xc6\xbe\x56\xff\xb4\xd2\x3c\x6c\xcf\xdc\x12\xd3\x3d\x14\xbc\x28\xbb\xf2\xb9\xb3\xdd\xcb\x65\xd7\xe5\x4a\x33\x9d\xea\xbe\xae\x13\xdd\x2c\xba\x17\x16\x8e\xfd\x6b\x97\xb3\x7f\xad\xdb\x62\xb4\x69\x0f\xdb\xe1\xac\x36\x84\x32\x20\x94\x01\xa1\x0c\x08\x65\x40\x28\x43\xdb\xe4\x0b\x46\x7e\x42\x35\x02\x6c\x0a\x6c\x0a\x6c\x0a\x6c\x0a\x6c\x0a\x6c\x7a\x5e\xd8\x14\x24\x03\x24\x03\x24\x03\x24\x63\xef\x24\x63\x0b\xda\x3f\xd0\x1d\x66\xdd\xaa\x70\x79\x97\xd9\x6b\x3d\x6e\x83\x62\x40\x2b\x6f\xc0\x39\x82\x38\x47\x10\xe7\x08\xe2\xf4\xfe\xd3\x38\x54\xc1\xfd\xeb\x5f\x55\x23\x2b\xdd\x33\x55\xb4\x56\x1d\xe3\x3b\x00\x44\x7b\xeb\x81\x10\xe2\x6e\xdb\x69\xd7\x74\xb1\x83\x4d\xac\xbd\x6c\xb8\xc5\xa6\xaf\x7a\x37\x18\xec\xa6\x2f\xf2\xf4\x7c\xe1\x29\x9f\x8a\xdc\xfa\x2c\xed\xe4\xaa\xb5\x8a\x24\x19\xe1\xc1\x3b\xc8\xc9\xc9\xab\x72\x26\xd2\xc2\xa8\x62\xef\x95\x98\xf1\x27\x53\x8b\xc5\xa3\xd0\xc2\x4b\xcb\xfa\xd6\x26\xbf\x05\x8a\xa4\x35\x79\x02\x55\xce\x3e\x7c\xfc\xc1\x5c\x9b\xf3\x88\xd0\x5f\xa2\xd2\xa9\x15\x92\xe4\xad\x8b\x4c\xa7\x94\xa9\x9d\xd1\xc8\x1b\x56\x5d\x4b\x38\xc4\x81\x49\x36\x9e\x07\x5b\x69\xaa\x12\x9e\x4e\x47\x2a\x9f\xde\x66\x4f\xd3\xdb\x32\x95\x91\x8a\xc5\xed\x9f\x7e\xd3\xf7\xe6\x29\x3b\xbb\xd7\x5d\xe5\xf4\xd9\x3c\x83\x52\x9e\xe7\x23\x08\xbb\x8a\xc1\x8f\x1d\xc4\xe0\x2f\xd6\x77\x38\xf4\x82\x7c\xdc\x58\x10\x1b\xec\x3c\xf4\x92\x9c\xab\x3e\x27\xf9\x73\x5a\xfa\xfc\x0d\xdb\xc7\xd1\x2b\xf6\xa2\xff\x1e\xe8\x04\x96\x5d\xc4\xe1\xaa\x53\x57\x06\x24\x0e\x4f\xe4\xac\x15\x48\xbf\x7a\x23\x0f\x56\xfa\x61\x77\xfb\x05\xed\x6e\xc7\x36\x3e\x6c\xe3\xc3\x36\x3e\x6c\xe3\x83\xd5\xba\x6a\x14\x0d\x72\xcf\xcc\x71\x2c\x3c\x6c\xf9\xf1\x17\xae\xdd\xf2\x73\x62\x86\x5d\xf0\xc9\xf7\xbe\xd1\x27\x17\x3c\x5e\x50\x63\xdb\xdb\x5f\xe6\x21\xc7\xd9\xdd\x53\xd3\x31\xe2\x0f\x8a\xd9\x1b\x9b\x7f\xf1\xa8\x18\x31\xf6\xd9\xfc\xd7\xff\x7d\xc6\x25\x39\x26\x35\x8b\x92\x52\x17\x22\xaf\x56\x27\x1b\xdc\xcb\x12\xf9\x24\xd8\x55\xf8\xea\x2b\x23\x42\xbd\x70\x1a\xb1\xfb\x84\xa7\xa9\xb0\xea\x95\xa4\x0d\x4f\xac\x9a\xfa\xf0\xc3\x2e\xd3\x3d\x7d\xe3\x91\x44\x47\xa8\xb4\xa0\xd9\xc7\xbe\xfa\x4c\x49\xd9\x67\x5b\x63\x66\xa1\xc9\xb4\xaf\x1d\x17\xd6\x56\x6a\x91\x53\x3c\x5a\x25\xbf\xe7\x7b\xae\x28\xf3\x31\xe7\x1b\x3d\x30\xec\xd5\x10\x0e\xc3\x96\x9b\x57\xac\x2c\x53\x71\x6a\xfe\xc2\xd7\xf0\x7c\x62\x4d\xce\x07\xd3\xe9\x8b\xba\x80\xfb\xa1\x30\x7b\x04\x2b\x9c\x5c\xb0\x02\x45\x48\xed\x94\xad\xfa\x86\xee\xfd\xf3\xfa\xc9\x7d\x26\xf2\xa9\xe8\x74\xa5\x2e\x72\x5e\x88\xa9\x8c\x6e\xba\xdf\x63\xfe\x3d\x77\x57\xd2\x32\xd2\x45\xba\x65\x3c\x2f\x24\x6d\x60\xb4\xd1\x7c\xaf\x96\x71\xf4\xfe\x41\x7b\xd1\xf7\x15\x62\xb1\xc6\x6a\xba\x6f\x86\xde\x31\xf8\xd6\xcf\xdc\xb7\x7e\x39\x61\x15\x0b\x1b\x86\xfc\xe0\xb2\x9b\xda\xcc\x8c\x54\x1d\x94\xf0\x6e\xc5\x6c\xf5\x9e\x3c\x8b\x76\x27\x3b\x4f\xe8\xce\x54\xa5\x37\xf6\x6e\xba\x82\x9c\xfb\x9a\xbd\xfb\xab\x56\xe9\xbd\x3d\x2f\xe0\x8b\x99\x17\xdd\xbf\x1f\xfc\x6c\x59\xfd\xf1\xfd\x90\xe2\x3d\xba\xf7\x9b\x5f\x55\x1e\x11\xfd\x98\x2a\x6a\x7c\xc5\xbe\xbf\x9d\x98\xbf\x7d\x7f\xcb\xee\x1a\xb5\x49\xdb\x11\x2c\xaa\x20\x73\xca\x0d\xd4\x1b\x1e\x51\x03\xd0\x8e\xf3\x44\x46\xce\xf9\x4a\xd6\x97\x7a\x71\x6d\x6b\x77\x64\x67\x42\x65\x89\x18\x31\xfb\x4e\x3a\x68\xc2\xf7\x29\xda\x14\xd0\xda\x10\xe1\xf5\xbb\x54\xaf\x79\x11\x8c\x30\xfb\x03\x8c\xb0\x96\x67\x0e\xc4\x08\xcb\x16\xe2\xec\x4f\xcb\x0c\x2b\x7b\xf7\xee\x65\x09\x8f\x5e\xaf\x0c\xdd\x73\x2e\x52\x1b\x22\xfc\x16\x3a\xb1\xad\x99\x2e\x47\x27\x0e\x48\x8e\x41\x35\x84\x5f\x10\x7e\x0b\xf9\xb3\x2c\x7f\xca\x53\xf3\x41\xbf\x61\x7b\x8c\x59\xbd\xd5\x96\x79\xd7\x42\x57\xf7\x43\x50\xed\x7b\xfc\x7a\x78\x04\x96\xea\xe0\x3e\x66\x45\x4c\x26\x55\x6b\x01\x68\x01\x68\x01\x68\x01\x68\xb5\x5d\x78\x0a\x40\xab\xbf\x55\x75\x57\xb4\xd5\xb2\xac\x9e\xa4\x13\x03\x80\x0b\x8e\x8b\xcb\x73\x5c\x00\x70\xf5\xd9\x6f\x00\xb8\xe0\xaa\x82\x51\x76\x6c\xa3\x0c\x80\xab\x0d\x70\xf5\xe9\x7f\xd9\x15\x75\x9d\x8b\x56\x04\xf0\x82\x6e\x6c\x6b\xa6\xcb\xd1\x8d\x03\x92\x67\x50\x11\xe1\x17\x00\x2f\xc8\xa1\xcb\x01\x5e\x74\xe4\xe7\x4a\xbe\xb5\x57\xa2\xe5\x0e\x8a\x4f\x63\xf9\x2c\xe3\x92\x27\xf5\x43\x67\x79\x48\x0d\xb1\xa2\x46\x46\xb5\xe3\x06\x7e\x0c\x07\x15\x5c\xd1\x33\xaf\xaa\x94\x41\x8d\x1c\x30\x41\x82\x31\x99\xea\x42\xf0\x86\x27\x76\x51\xa0\xbd\xb4\xbb\xf2\xd6\x9c\x34\xfa\xab\xca\xef\x92\x24\xe8\xb7\x41\x50\xb2\x95\x37\x5c\xd6\xa1\xb1\x6b\xfc\x92\x74\xe6\xf1\xe7\x67\x91\x5e\xfc\x49\xb1\xd4\x90\x17\x76\x5c\x2c\xd2\xf6\x9d\x71\xda\xbe\xcd\x68\x6d\x53\xca\xbe\xb5\xae\xb9\x1e\xb0\x21\x12\xf5\x21\x51\x1f\x12\xf5\x21\x51\xdf\xb9\x25\xea\xdb\x3c\xf3\xb6\x26\xe9\xdb\x73\x90\xc6\xc1\x52\xf3\x6d\x2e\xfe\xea\xb4\x7c\x43\xae\x83\x6d\x92\xf1\x6d\xae\x83\xd5\x89\xf8\xf6\x5c\x07\x48\xbf\x87\xf4\x7b\x48\xbf\x87\xf4\x7b\x48\xbf\xb7\xb7\xf4\x7b\x1d\x66\xff\xa5\xd4\x7b\x6b\x0f\x3a\xbd\xa0\x18\xcd\x6e\xa5\x39\xe3\xf4\x81\x9b\xab\x7b\x5d\xea\xc0\xc3\xd6\x3b\x12\x06\xee\xa5\x45\x97\x93\x05\xee\xb9\x59\x8f\x9a\x22\x70\x73\xf5\xac\x49\x0f\xb8\xef\x69\x73\xa8\x49\x01\x37\x57\x5a\x0b\xd7\xd8\xd9\x9f\xe7\xfe\xf5\xaf\xad\xb0\xda\x96\xbb\xc9\x40\xdb\xb6\x0e\x86\xfa\xfb\x02\xae\x00\x67\x03\x67\x63\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\xe0\x6c\x7b\x75\x18\xe3\x10\x18\x00\x46\x00\x46\x00\xc6\x41\xb7\x28\x00\x63\xb3\x7a\x00\x18\x2f\x00\x30\xb6\xa4\x58\xdf\x13\x67\xac\xc3\xc5\xd4\xeb\x20\x35\x61\x4f\x32\x5d\x79\x5a\x42\x2f\x90\xf1\xba\xb2\x82\xc8\xd2\x73\x8a\xd9\x18\x52\x95\x79\x77\xd5\x70\x0b\xd4\x9e\xbd\x0f\x44\x09\x3c\x09\x3c\x79\x72\x78\x12\x68\x12\x68\x12\x68\x92\x01\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x9e\x26\x9a\x44\xf2\x0d\x70\x57\x70\xd7\xd3\xa1\x74\xe0\xae\xe0\xae\xe0\xae\xe0\xae\x0b\x95\x76\x34\xee\xfa\xf1\x76\x27\x76\x7a\x94\x03\x93\x17\x5a\x7b\x2a\x8a\xa6\xe1\x62\x1b\x76\x0d\xf0\x9c\x8a\x62\x09\x77\x7e\xbc\xbb\xff\xed\x5b\xdb\xbd\x38\x2b\x7a\x4b\xe0\x58\xab\x48\xda\xc4\x7a\x76\xd4\xf1\x63\xed\xe6\x37\xf5\x0f\xd8\x3c\xc8\x8e\xb2\x41\xda\xfa\xbe\x72\x67\x3d\x7b\xe3\x6a\x43\xcc\xc2\x9a\xe1\x63\x9e\xb7\x3c\x7e\x56\x3c\x07\x67\x07\x2f\xb6\xce\x60\xc6\x70\xcb\x31\xe9\x1f\x57\x1d\x93\x7e\xfe\x23\x79\x73\xfc\xc0\xc0\x77\x36\x7f\x44\xf8\x00\xc2\x07\x10\x3e\x80\xf0\x01\x84\x0f\x20\x7c\x00\xe1\x03\x08\x1f\xd8\x66\xb6\x45\xf8\x00\xc2\x07\x10\x3e\x80\xf0\x01\x84\x0f\x20\x7c\x00\xe1\x03\x17\x17\x3e\x00\xd0\x0c\xd0\x0c\xd0\x7c\x1a\x2d\x0a\xd0\xdc\xac\x1e\x80\xe6\xd3\x02\xcd\xaf\x38\x3b\xd8\xca\x9f\x7e\xe9\x98\x7d\x26\x8b\x54\x62\xac\x2d\xd7\x6b\xb7\x87\x62\xf6\x31\xcb\x58\xec\x97\xf0\xdc\xed\xf6\xd3\xee\x35\xf3\xf9\x5e\xb8\xef\x27\xaa\x81\xaf\x54\xb1\xba\x97\xbc\xe6\x70\x01\xc3\x05\x0c\x17\x30\x5c\xc0\xe7\xe6\x02\xee\x96\x11\xbf\xd5\x0d\xfc\xca\x6c\xf8\xdd\xe7\xde\x7f\x9a\x8a\x73\xc6\xef\x35\x9d\xae\x1f\x99\x1e\x65\xfb\x41\xa3\x6c\x75\xdc\x3a\x16\x2c\x33\xb5\xa5\x8d\x9d\xc8\xee\x52\x26\x53\x3b\xb3\xa8\x9c\x95\x69\x98\x9c\x62\x16\xe7\xf3\x6f\x65\xca\x62\x99\x9b\xc5\xf1\x59\x84\x1e\x6f\xa6\x4f\x72\x55\xb8\x21\xef\xfb\x86\xab\x60\x36\x29\x73\x1a\x65\x59\xae\x22\xa1\xc9\xa7\xe0\x54\xa6\xeb\x65\x23\xf6\x0f\x7a\x23\xb5\x16\xf5\x9d\x1f\xd9\x0d\xbb\x4b\x92\x1f\xc9\x63\x10\x9b\x59\xba\x4c\x4d\xc3\x1b\xbd\xe6\xbb\xa4\x7b\xdc\x72\x16\xfa\x0e\x0d\x65\xcb\x72\x9c\x66\x3a\x98\xdf\xbe\x5b\x55\xac\xf6\xdd\x1f\xac\x46\x7e\xaf\x1b\x20\xd2\x18\xff\x64\x17\xb0\xb1\x98\xd8\x00\x83\xe0\xe3\xa9\xa4\x84\x9b\xbd\xa8\xeb\x94\xc2\x2e\x0e\x63\x23\xbd\xd3\x9b\x54\x4c\x39\x75\x50\x67\x42\x18\x6b\xc7\xaf\xa0\xd6\xdf\x1b\x86\x86\x53\x92\x72\x36\x13\xb1\xe4\x85\x48\xe6\x15\xf9\xaf\x96\x5c\x99\x5c\x3b\x13\x81\x2a\x9d\x4d\x73\x1e\xd1\xa8\x91\x2a\x0e\x82\xa0\x5a\xb4\x29\xac\xc2\xf7\xd2\x52\x9b\x8f\xac\x37\x17\x37\x77\xfa\x02\xb9\x97\x4c\xec\x1c\xe8\x1f\x31\xb2\xdf\x39\x13\x3c\x6d\xfd\xc6\x1d\x9a\x99\xbe\xf9\x9e\x3e\xb9\xcd\xec\xda\x60\x78\x0d\xa5\xfb\x6f\x83\x6c\xba\xd5\xcb\x6a\x6c\x73\xb0\xee\x0f\x80\x03\x80\x03\x80\x03\x80\x03\x80\xb3\x37\x80\xd3\x71\x2d\x58\x82\x38\x87\x5b\x16\x3f\xd5\x8e\x9b\xcb\x12\xc1\xb5\x08\x53\xd0\x7d\xae\x32\x3e\x25\x75\x74\xaf\x12\x19\xcd\x1b\xe1\x82\xbe\xd3\x55\xe7\xd5\x99\x6e\xf7\x61\xf4\x97\x11\x7b\xb0\xf3\x99\x95\x2e\x99\x48\xcd\x60\xa9\xd6\x54\xc1\x54\x9e\x3d\xf2\xd4\x87\x2f\xe6\xa5\xb8\x9d\xf0\xc4\xdb\xca\xdf\xdf\xda\x9f\xbf\xbf\x65\x13\x99\xf2\x44\xfe\xc7\x2f\x24\x63\xc1\x78\x4c\x5e\x7d\x75\x6b\x3d\x9e\x71\x65\x86\xd9\xc7\x5f\xe9\xea\x26\x6b\x9f\x8e\xd8\x67\x49\x93\x63\xed\xd3\x55\xbe\x5c\xb6\x8a\xe1\x14\xd6\x3c\x26\x1b\x45\x15\x8f\xbb\x34\xa8\x2d\xc1\x27\x5f\xf6\x95\x92\xa7\xcd\x7f\xda\xaf\x61\x46\x45\x37\x03\xf6\x51\xbd\xb0\x29\xcf\xc7\x7c\xda\x70\x60\x06\xa3\x46\xe4\x13\x95\xcf\x4c\x9b\xb4\xd6\xd7\xd7\x85\x12\xad\xae\x2e\x12\xbd\x5e\xb1\x66\xb6\x6e\xa5\x51\x93\x91\x8c\x2b\x53\x98\xb4\x02\x39\x27\x42\x1b\x9b\xc5\xda\xad\xa4\x5e\x0d\x8c\x6a\x8d\xe9\xd7\x91\x00\x51\x42\x28\x6e\xf3\x65\x23\x76\x17\x45\x22\x2b\x68\x6d\xaa\x5b\x76\x57\xb6\x0c\x57\xec\xc6\x75\xc0\x66\x07\xd5\x3f\xb1\xab\x9f\x79\xf4\x34\xcd\x55\x99\xc6\xe6\x2a\x0a\x6b\xa5\x8b\x16\x2a\xce\x4a\x48\xa7\x8f\x9b\x0f\xf1\x25\x18\x87\x27\xfd\xc4\xae\x7e\x55\xb9\xa8\x3d\x96\x45\x5c\x47\x3c\x36\xa5\x77\xf5\x63\xa3\x9e\xe9\x79\xda\x9a\x9e\x4b\x0f\x9c\x84\x67\xec\xd2\x21\xb3\xc5\xee\x7e\x1c\xc5\x79\xc6\xb4\xb5\x5b\x3b\xac\x23\xae\xc7\x6a\x05\xb0\xd7\xbd\xb5\xef\x32\x7f\x3d\x9c\x6f\xe3\x98\x24\xb6\x5b\x65\xad\xa1\xb1\xaf\xd5\x3f\xad\x34\x0f\xdb\x33\xb7\xc4\x74\x0f\x05\x2f\xca\xae\x7c\xee\x6c\xf7\x72\xd9\x75\xb9\xd2\x4c\xa7\xba\xaf\xeb\x44\x37\x8b\xee\x85\x85\x63\xff\xda\xe5\xec\x5f\xeb\xb6\x18\x6d\xda\xc3\x76\x38\xab\x0d\xa1\x0c\x08\x65\x40\x28\x03\x42\x19\x10\xca\xd0\x36\xf9\x82\x91\x9f\x50\x8d\x00\x9b\x02\x9b\x02\x9b\x02\x9b\x02\x9b\x02\x9b\x9e\x17\x36\x05\xc9\x00\xc9\x00\xc9\x00\xc9\xd8\x3b\xc9\xd8\x82\xf6\x0f\x74\x87\x59\xb7\x2a\x5c\xde\x65\xf6\x5a\x8f\xdb\xa0\x18\xd0\xca\x1b\x70\x8e\x20\xce\x11\xc4\x39\x82\x38\xbd\xff\x34\x0e\x55\x70\xff\xfa\x57\xd5\xc8\x4a\xf7\x4c\x15\xad\x55\xc7\xf8\x0e\x00\xd1\xde\x7a\x20\x84\xb8\xdb\x76\xda\x35\x5d\xec\x60\x13\x6b\x2f\x1b\x6e\xb1\xe9\xab\xde\x0d\x06\xbb\xe9\x8b\x3c\x3d\x5f\x78\xca\xa7\x22\xb7\x3e\x4b\x3b\xb9\x6a\xad\x22\x49\x46\x78\xf0\x0e\x72\x72\xf2\xaa\x9c\x89\xb4\x30\xaa\xd8\x7b\x25\x66\xfc\xc9\xd4\x62\xf1\x28\xb4\xf0\xd2\xb2\xbe\xb5\xc9\x6f\x81\x22\x69\x4d\x9e\x40\x95\xb3\x0f\x1f\x7f\x30\xd7\xe6\x3c\x22\xf4\x97\xa8\x74\x6a\x85\x24\x79\xeb\x22\xd3\x29\x65\x6a\x67\x34\xf2\x86\x55\xd7\x12\x0e\x71\x60\x92\x8d\xe7\xc1\x56\x9a\xaa\x84\xa7\xd3\x91\xca\xa7\xb7\xd9\xd3\xf4\xb6\x4c\x65\xa4\x62\x71\xfb\xa7\xdf\xf4\xbd\x79\xca\xce\xee\x75\x57\x39\x7d\x36\xcf\xa0\x94\xe7\xf9\x08\xc2\xae\x62\xf0\x63\x07\x31\xf8\x8b\xf5\x1d\x0e\xbd\x20\x1f\x37\x16\xc4\x06\x3b\x0f\xbd\x24\xe7\xaa\xcf\x49\xfe\x9c\x96\x3e\x7f\xc3\xf6\x71\xf4\x8a\xbd\xe8\xbf\x07\x3a\x81\x65\x17\x71\xb8\xea\xd4\x95\x01\x89\xc3\x13\x39\x6b\x05\xd2\xaf\xde\xc8\x83\x95\x7e\xd8\xdd\x7e\x41\xbb\xdb\xb1\x8d\x0f\xdb\xf8\xb0\x8d\x0f\xdb\xf8\x60\xb5\xae\x1a\x45\x83\xdc\x33\x73\x1c\x0b\x0f\x5b\x7e\xfc\x85\x6b\xb7\xfc\x9c\x98\x61\x17\x7c\xf2\xbd\x6f\xf4\xc9\x05\x8f\x17\xd4\xd8\xf6\xf6\x97\x79\xc8\x71\x76\xf7\xd4\x74\x8c\xf8\x83\x62\xf6\xc6\xe6\x5f\x3c\x2a\x46\x8c\x7d\x36\xff\xf5\x7f\x9f\x71\x49\x8e\x49\xcd\xa2\xa4\xd4\x85\xc8\xab\xd5\xc9\x06\xf7\xb2\x44\x3e\x09\x76\x15\xbe\xfa\xca\x88\x50\x2f\x9c\x46\xec\x3e\xe1\x69\x2a\xac\x7a\x25\x69\xc3\x13\xab\xa6\x3e\xfc\xb0\xcb\x74\x4f\xdf\x78\x24\xd1\x11\x2a\x2d\x68\xf6\xb1\xaf\x3e\x53\x52\xf6\xd9\xd6\x98\x59\x68\x32\xed\x6b\xc7\x85\xb5\x95\x5a\xe4\x14\x8f\x56\xc9\xef\xf9\x9e\x2b\xca\x7c\xcc\xf9\x46\x0f\x0c\x7b\x35\x84\xc3\xb0\xe5\xe6\x15\x2b\xcb\x54\x9c\x9a\xbf\xf0\x35\x3c\x9f\x58\x93\xf3\xc1\x74\xfa\xa2\x2e\xe0\x7e\x28\xcc\x1e\xc1\x0a\x27\x17\xac\x40\x11\x52\x3b\x65\xab\xbe\xa1\x7b\xff\xbc\x7e\x72\x9f\x89\x7c\x2a\x3a\x5d\xa9\x8b\x9c\x17\x62\x2a\xa3\x9b\xee\xf7\x98\x7f\xcf\xdd\x95\xb4\x8c\x74\x91\x6e\x19\xcf\x0b\x49\x1b\x18\x6d\x34\xdf\xab\x65\x1c\xbd\x7f\xd0\x5e\xf4\x7d\x85\x58\xac\xb1\x9a\xee\x9b\xa1\x77\x0c\xbe\xf5\x33\xf7\xad\x5f\x4e\x58\xc5\xc2\x86\x21\x3f\xb8\xec\xa6\x36\x33\x23\x55\x07\x25\xbc\x5b\x31\x5b\xbd\x27\xcf\xa2\xdd\xc9\xce\x13\xba\x33\x55\xe9\x8d\xbd\x9b\xae\x20\xe7\xbe\x66\xef\xfe\xaa\x55\x7a\x6f\xcf\x0b\xf8\x62\xe6\x45\xf7\xef\x07\x3f\x5b\x56\x7f\x7c\x3f\xa4\x78\x8f\xee\xfd\xe6\x57\x95\x47\x44\x3f\xa6\x8a\x1a\x5f\xb1\xef\x6f\x27\xe6\x6f\xdf\xdf\xb2\xbb\x46\x6d\xd2\x76\x04\x8b\x2a\xc8\x9c\x72\x03\xf5\x86\x47\xd4\x00\xb4\xe3\x3c\x91\x91\x73\xbe\x92\xf5\xa5\x5e\x5c\xdb\xda\x1d\xd9\x99\x50\x59\x22\x46\xcc\xbe\x93\x0e\x9a\xf0\x7d\x8a\x36\x05\xb4\x36\x44\x78\xfd\x2e\xd5\x6b\x5e\x04\x23\xcc\xfe\x00\x23\xac\xe5\x99\x03\x31\xc2\xb2\x85\x38\xfb\xd3\x32\xc3\xca\xde\xbd\x7b\x59\xc2\xa3\xd7\x2b\x43\xf7\x9c\x8b\xd4\x86\x08\xbf\x85\x4e\x6c\x6b\xa6\xcb\xd1\x89\x03\x92\x63\x50\x0d\xe1\x17\x84\xdf\x42\xfe\x2c\xcb\x9f\xf2\xd4\x7c\xd0\x6f\xd8\x1e\x63\x56\x6f\xb5\x65\xde\xb5\xd0\xd5\xfd\x10\x54\xfb\x1e\xbf\x1e\x1e\x81\xa5\x3a\xb8\x8f\x59\x11\x93\x49\xd5\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x6d\x17\x9e\x02\xd0\xea\x6f\x55\xdd\x15\x6d\xb5\x2c\xab\x27\xe9\xc4\x00\xe0\x82\xe3\xe2\xf2\x1c\x17\x00\x5c\x7d\xf6\x1b\x00\x2e\xb8\xaa\x60\x94\x1d\xdb\x28\x03\xe0\x6a\x03\x5c\x7d\xfa\x5f\x76\x45\x5d\xe7\xa2\x15\x01\xbc\xa0\x1b\xdb\x9a\xe9\x72\x74\xe3\x80\xe4\x19\x54\x44\xf8\x05\xc0\x0b\x72\xe8\x72\x80\x17\x1d\xf9\xb9\x92\x6f\xed\x95\x68\xb9\x83\xe2\xd3\x58\x3e\xcb\xb8\xe4\x49\xfd\xd0\x59\x1e\x52\x43\xac\xa8\x91\x51\xed\xb8\x81\x1f\xc3\x41\x05\x57\xf4\xcc\xab\x2a\x65\x50\x23\x07\x4c\x90\x60\x4c\xa6\xba\x10\xbc\xe1\x89\x5d\x14\x68\x2f\xed\xae\xbc\x35\x27\x8d\xfe\xaa\xf2\xbb\x24\x09\xfa\x6d\x10\x94\x6c\xe5\x0d\x97\x75\x68\xec\x1a\xbf\x24\x9d\x79\xfc\xf9\x59\xa4\x17\x7f\x52\x2c\x35\xe4\x85\x1d\x17\x8b\xb4\x7d\x67\x9c\xb6\x6f\x33\x5a\xdb\x94\xb2\x6f\xad\x6b\xae\x07\x6c\x88\x44\x7d\x48\xd4\x87\x44\x7d\x48\xd4\x77\x6e\x89\xfa\x36\xcf\xbc\xad\x49\xfa\xf6\x1c\xa4\x71\xb0\xd4\x7c\x9b\x8b\xbf\x3a\x2d\xdf\x90\xeb\x60\x9b\x64\x7c\x9b\xeb\x60\x75\x22\xbe\x3d\xd7\x01\xd2\xef\x21\xfd\x1e\xd2\xef\x21\xfd\x1e\xd2\xef\xed\x2d\xfd\x5e\x87\xd9\x7f\x29\xf5\xde\xda\x83\x4e\x2f\x28\x46\xb3\x5b\x69\xce\x38\x7d\xe0\xe6\xea\x5e\x97\x3a\xf0\xb0\xf5\x8e\x84\x81\x7b\x69\xd1\xe5\x64\x81\x7b\x6e\xd6\xa3\xa6\x08\xdc\x5c\x3d\x6b\xd2\x03\xee\x7b\xda\x1c\x6a\x52\xc0\xcd\x95\xd6\xc2\x35\x76\xf6\xe7\xb9\x7f\xfd\x6b\x2b\xac\xb6\xe5\x6e\x32\xd0\xb6\xad\x83\xa1\xfe\xbe\x80\x2b\xc0\xd9\xc0\xd9\x18\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\x1b\x38\xdb\x5e\x1d\xc6\x38\x04\x06\x80\x11\x80\x11\x80\x71\xd0\x2d\x0a\xc0\xd8\xac\x1e\x00\xc6\x0b\x00\x8c\x2d\x29\xd6\xf7\xc4\x19\xeb\x70\x31\xf5\x3a\x48\x4d\xd8\x93\x4c\x57\x9e\x96\xd0\x0b\x64\xbc\xae\xac\x20\xb2\xf4\x9c\x62\x36\x86\x54\x65\xde\x5d\x35\xdc\x02\xb5\x67\xef\x03\x51\x02\x4f\x02\x4f\x9e\x1c\x9e\x04\x9a\x04\x9a\x04\x9a\x64\x40\x93\x40\x93\x40\x93\x40\x93\x40\x93\x40\x93\x40\x93\x40\x93\x40\x93\x40\x93\x40\x93\x40\x93\x40\x93\xa7\x89\x26\x91\x7c\x03\xdc\x15\xdc\xf5\x74\x28\x1d\xb8\x2b\xb8\x2b\xb8\x2b\xb8\xeb\x42\xa5\x1d\x88\xbb\x8e\x89\xb1\xee\x44\x4b\x8f\x72\x44\xf2\x42\xfb\x4e\x45\xc1\x64\x3a\x51\xf9\x2c\xf4\x67\xce\x2c\x9d\x59\x4d\x39\xa7\xa2\xf8\x99\x40\xe7\xfd\x6f\xff\x67\xf1\x52\x9c\x07\xbd\x25\x54\x0c\x95\x78\xe2\x48\x71\xbc\xc0\x76\xdf\xd4\x5f\xd9\x36\x66\x9e\x3f\x9c\xf6\xb0\x69\x58\xf8\x76\x06\xec\x30\x66\xfe\xf1\xe1\xee\xfe\xb7\x6f\x6d\x37\x60\xe4\x6c\x3f\x72\x7c\x45\xd2\x16\xef\x73\x18\x40\xff\xf7\xf9\xc3\x96\x63\xe8\xff\x55\xe3\xfd\x1e\x0a\x60\xfd\xbd\xb9\xf3\x18\x79\x87\x82\x8f\xd3\xf9\xab\x1a\xaf\xe9\xf5\xe6\x5e\xd7\xed\xff\xaa\xc6\x38\xfc\x7a\xb1\xaa\x07\x33\xcc\x46\xd4\x9f\xcc\xa8\xfa\xab\x1a\x9f\xe9\x68\xda\x1c\xd6\xd2\xd7\x86\xfb\xf1\x72\x7f\xf1\xf1\x2c\xcd\xf1\xb2\x10\xbb\xf2\x01\x61\x2b\x08\x5b\x41\xd8\x0a\xc2\x56\x10\xb6\x82\xb0\x15\x84\xad\x20\x6c\x65\x9b\xd9\x16\x61\x2b\x08\x5b\x41\xd8\x0a\xc2\x56\x10\xb6\x82\xb0\x15\x84\xad\x5c\x5c\xd8\x0a\x02\x1c\x10\xe0\x80\x00\x87\xd3\x68\x51\x04\x38\x34\xab\x07\x01\x0e\x43\x0f\x70\x78\xfe\xb0\x6a\x1f\xf9\x22\x7f\xb2\xfa\xa6\x5f\x04\x65\x9f\xc9\x22\x95\x18\x73\xca\x75\xcb\xf5\xe4\xc9\xde\xe2\xd8\xd3\x2f\xe1\xc6\x6a\x27\xf6\xc2\xed\xfb\xcd\x8f\xbf\x17\xfe\xf9\x89\x8a\xf8\x95\x6a\x49\xf7\x92\xfd\x1e\x0e\x5b\x38\x6c\xe1\xb0\x85\xc3\xf6\xdc\x1c\xb6\x6b\x96\xd3\x4d\x4e\xdb\xf5\xd2\x6c\xfd\xb2\xba\xd5\xdc\xfb\x4f\x53\x71\xce\x54\xbd\xa6\x1c\x0c\x91\xe9\x51\xb6\x1f\x34\xca\x56\x87\xa3\x63\xc1\x32\x53\x5b\xda\x58\x75\xec\x2e\x65\x32\xb5\x33\x8b\xca\x59\x99\x86\xc9\x29\x66\x71\x3e\xff\x56\xa6\x2c\x96\xb9\x59\x08\x9f\x45\xe8\xf1\x66\xfa\x24\xc7\x82\x1b\xf2\xbe\x6f\xb8\x0a\x66\x93\x32\xa7\x51\x96\xe5\x2a\x12\x9a\x3c\x00\x4e\x13\xba\x5e\x36\x62\xff\xa0\x37\x52\x6b\x51\xdf\xf9\x91\xdd\xb0\xbb\x24\xf9\x91\xec\xfb\xd8\xcc\xd2\x65\x6a\x1a\xde\xa8\x2b\xdf\x25\xdd\xe3\x44\xbc\x43\x43\xd9\xb2\x1c\xa7\x99\x0e\xe6\x65\xef\x56\x15\xab\x3d\xed\x07\xab\x91\xdf\xeb\xe6\x82\x34\xa6\x3a\xa9\x78\x36\x16\x13\x1b\x0e\x10\x3c\x32\x95\x94\x70\xb3\x17\x75\x9d\x52\xd8\xc5\x61\x6c\x84\x72\x7a\x93\x8a\x29\xa7\x0e\xea\x04\xbf\xb1\x4d\xfc\x0a\x6a\xbd\xb3\x61\x68\x38\x59\x28\x67\x33\x11\x4b\x5e\x88\x64\x5e\x71\xfa\x6a\xc9\x95\xc9\xb5\x13\xf4\x54\xe9\x6c\x9a\xf3\x88\x46\x8d\x54\x71\x10\x04\xd5\xa2\x4d\x41\x10\xbe\x97\x96\xda\x7c\x64\xbd\xb9\xb8\xb9\xd3\x17\xc8\xbd\x64\x62\xe7\x40\xff\x88\x91\xfd\xce\x99\xe0\x69\xeb\x37\xee\xd0\xcc\xf4\xcd\xf7\xf4\xc9\x6d\x46\xd2\x06\x33\x69\x28\xdd\x7f\x1b\xc0\xd2\xad\x5e\x56\x43\x96\x83\x75\x7f\xe0\x16\xe0\x16\xe0\x16\xe0\x16\xe0\x96\xbd\xe1\x96\x8e\x6b\xc1\x12\x72\x39\xdc\xb2\xf8\xa9\x76\x28\x61\x96\x08\xae\x45\x98\x82\xee\x73\x95\xf1\x29\xa9\xa3\x7b\x95\xc8\x68\xde\x08\xee\xf3\x9d\xae\x3a\xd5\xd0\x74\xbb\x0f\xa3\xbf\x8c\xd8\x83\x9d\xcf\xac\x74\xc9\x44\x6a\x06\x4b\xb5\xa6\x0a\xa6\xf2\xec\x91\xa7\x3e\xd8\x30\x2f\xc5\xed\x84\x27\xde\x56\xfe\xfe\xd6\xfe\xfc\xfd\x2d\x9b\xc8\x94\x27\xf2\x3f\x7e\x21\x19\x0b\xc6\x63\xf2\xc1\xab\x5b\xeb\x9f\x8c\x2b\x33\xcc\x3e\xfe\x4a\x57\x37\x59\xfb\x74\xc4\x3e\x4b\x9a\x1c\x6b\x9f\xae\xf2\xe5\xb2\x55\xc4\xa5\xb0\xe6\x31\xd9\x28\xaa\x78\xdc\xa5\x41\x6d\x09\x3e\xf9\xb2\xaf\x94\x3c\x6d\xde\xce\x7e\x0d\x33\x2a\xba\x19\xb0\x8f\xea\x85\x4d\x79\x3e\xe6\xd3\x86\x37\x32\x18\x35\x22\x9f\xa8\x7c\x66\xda\xa4\xb5\xbe\xbe\x2e\x94\x68\x75\x75\x91\xe8\xf5\x8a\x35\xb3\x75\x2b\x8d\x9a\x8c\x64\x5c\x99\xc2\xa4\x15\xc8\x39\x11\xda\x58\xd3\x86\x2e\xfa\xd5\xab\x81\x51\xad\x31\xfd\x3a\x12\x90\x47\x08\x9c\x6d\xbe\x6c\xc4\xee\xa2\x48\x64\x05\xad\x4d\x75\xcb\xee\xca\x96\xe1\x8a\xdd\xb8\x0e\xd8\xec\xa0\xfa\x27\x76\xf5\x33\x8f\x9e\xa6\xb9\x2a\xd3\xd8\x5c\x45\x41\xa8\x74\xd1\x42\xc5\x59\x09\xe9\xf4\x71\xf3\x21\xbe\x04\xe3\xf0\xa4\x9f\xd8\xd5\xaf\x2a\x17\xb5\xc7\xb2\x88\xeb\x88\xc7\xa6\xf4\xae\x7e\x6c\x8c\x32\x3d\x4f\x5b\xd3\x73\xe9\x81\x93\xf0\x8c\x5d\x3a\x64\xb6\xd8\xdd\x8f\xa3\x38\xcf\x98\x8d\x76\x6b\x87\x75\x7c\xf4\x58\xad\x00\x52\xba\xb7\xf6\x5d\xa6\xa5\x87\xf3\x6d\x1c\x93\x9b\x76\xab\xac\x35\xec\xf4\xb5\xfa\xa7\x15\xcd\x61\x9b\xe2\x96\x98\xee\xa1\xe0\x45\xd9\x95\xcf\x9d\xd7\x7e\x2a\xbb\x18\x57\x42\x69\xb0\x7b\xab\x86\xba\x69\xf2\xd5\xb8\x1a\x1b\xc2\x2e\x67\x43\x58\xb7\xf5\x62\xd3\xa6\xb0\xc3\x19\x56\x88\x36\x40\xb4\x01\xa2\x0d\x10\x6d\x80\x68\x83\xb6\xc9\x17\x18\xfb\x84\x6a\x04\x64\x13\x64\x13\x64\x13\x64\x13\x64\x13\x64\xf3\xbc\xc8\x26\x60\x03\x60\x03\x60\x03\x60\xc3\xde\x61\xc3\x16\x40\x7e\xa0\x5b\xb6\xba\x55\xe1\xf2\xb6\xad\xd7\x7a\xdc\x06\x85\x69\x56\xde\x80\xf3\xf4\x58\x5b\x9b\x9d\x35\xff\x39\xb7\xf3\xf4\x90\x3d\x61\xe0\x87\x0b\xb8\x7f\xfd\xab\x6a\x64\xa5\x7b\x26\x7b\xd6\x18\x63\x7c\x03\xc4\xb3\x97\xf5\x85\xf1\x76\xdb\x75\xba\xa6\xbf\xf4\x37\xb9\xf5\xb2\xf1\x14\x9b\x9f\xea\xed\x3c\xd8\xcd\x4f\xe4\x4e\xf9\xc2\x53\x3e\x15\xb9\x75\x0c\xda\xa9\x50\x6b\x15\x49\xb2\x74\x83\x0b\x8e\x93\x27\x55\xe5\x4c\xa4\x85\x91\x9e\xde\xf4\x9f\xf1\x27\x53\x8b\xc5\xa3\xd0\xc2\xeb\xb7\xfa\x16\x1f\xbf\x15\x88\xf4\x2b\xb9\xdb\x54\xce\x3e\x7c\xfc\xc1\x5c\x9b\xf3\x88\xf8\x5a\xa2\xd2\xa9\x55\x6b\xe4\x12\x8b\x54\x5a\x70\x99\xda\xf9\x87\x5c\x4e\xd5\xb5\xc4\x1c\x1c\xfd\x63\xe3\x79\x30\x48\xa6\x2a\xe1\xe9\x74\xa4\xf2\xe9\x6d\xf6\x34\xbd\x2d\x53\x19\xa9\x58\xdc\xfe\xe9\x37\x7d\x6f\x9e\xb2\xb3\x0f\xdb\x55\x4e\x9f\xcd\x33\x28\x79\x77\x42\xaa\xab\xab\xe2\xfa\xd8\x41\x71\xfd\x62\x3d\x70\x47\xff\xd2\x8f\x1b\xbf\xd4\x86\xed\x1e\xfd\x53\xcf\x4a\xc6\x92\x88\x18\x98\x8c\x7d\xc3\x76\x3a\xa9\xc3\xfe\xe1\xbf\x07\x3a\xb0\x63\x93\x48\x6a\x1c\xd2\x81\xa3\x39\x1a\x6f\x87\x42\x3a\x45\x85\x84\xcd\xd0\x17\xb4\x19\x1a\xbb\xbe\xb0\xeb\x0b\xbb\xbe\xb0\xeb\x0b\xc6\xdd\xaa\x51\x34\xc8\x2d\x16\xc7\x31\xa3\xb0\x43\x64\xf5\x0e\x91\xa1\x19\x57\xc1\x7d\xdc\xfb\xbe\x90\x5c\xf0\x78\x41\x63\xad\x37\x91\xcc\x0d\x7b\xda\x0c\x52\x93\x1a\xe2\x0f\x0a\xf1\x1a\x9b\x7f\xf1\xa8\x18\x31\xf6\xd9\xfc\xd7\xff\x7d\xc6\x25\xb9\xd8\x34\x8b\x92\x52\x17\x22\xaf\x16\x10\x1b\x0b\xca\x12\xf9\x24\xd8\x55\xf8\xc2\x2b\xa3\x13\xbd\xb6\x19\xb1\xfb\x84\xa7\xa9\xb0\x02\x93\xd4\x07\x4f\xac\xe0\xf9\xf0\xc3\x2e\x33\x32\x7d\xe3\x91\x74\x41\xa8\xb4\x20\xab\xc7\xbe\xfa\x4c\x49\xd9\x67\x5b\x63\x66\x2d\xc8\xb4\xaf\x1d\x17\x05\x55\x6a\x91\x53\xf8\x52\xa5\x90\xe7\x7b\xae\x28\xf3\x31\xe7\x0b\x9b\x87\xbd\x60\xc1\x71\x36\x15\x83\xf3\x9b\xbd\x06\xff\x12\xec\x70\xde\x8d\xa5\x17\x77\x61\xba\x43\xc1\xb9\xe0\xd8\x27\xc7\xb1\x69\x08\xec\x94\x1f\xf7\x86\xee\xfd\xf3\xfa\xf9\x77\x26\xf2\xa9\xe8\x74\xa5\x2e\x72\x5e\x88\xa9\x8c\x6e\xba\xdf\x63\xfe\x3d\x77\x57\xd2\x4c\xdf\x45\x2a\x65\x3c\x2f\x24\x6d\x49\xb3\xf1\x59\x5b\xc9\x26\x7a\xd7\x79\xd2\xf7\x35\x86\xc4\x7d\x33\x32\x8a\xc1\xdd\x7c\xe6\xee\xe6\xcb\x01\xf2\x0b\xfb\x39\xfc\xe0\xb2\x7b\x8e\xcc\xf4\x52\xed\x63\x7f\xb7\x62\xea\x79\x4f\xce\x36\xbb\xd1\x98\x27\x74\x67\xaa\xd2\x1b\x7b\x37\x5d\x41\xfe\x6e\xcd\xde\xfd\x55\xab\xf4\xde\x6e\xe7\xfe\x62\x26\x39\xf7\xef\x07\x3f\xf5\x55\x7f\x7c\x3f\xa4\x48\x81\xee\xfd\xe6\x57\x95\x47\x04\x04\xa6\x8a\x1a\x5f\xb1\xef\x6f\x27\xe6\x6f\xdf\xdf\xb2\xbb\x46\x6d\x52\xb4\xb8\xf5\xde\x93\xf9\xe2\x06\xea\x0d\x8f\xa8\x01\x68\x43\x70\x22\x23\xe7\x8f\x24\x6b\x47\xbd\xb8\xb6\xb5\x1b\x66\x33\xa1\xb2\x44\x8c\x98\x7d\x27\x9d\x03\xe0\xfb\x14\xc5\x6c\xb7\x36\x44\x78\xfd\x2e\xd5\x6b\x5e\x04\xa3\xc7\xfe\x00\xa3\xe7\xd0\x46\x4f\xb6\x60\xad\x0c\xcc\xec\x29\x7b\xf7\x68\x65\x09\x8f\xb6\x53\x67\xee\x9e\xf3\xd4\x67\x88\x8e\x84\x18\x3b\x73\x31\x36\x20\xcd\x83\xa5\x39\xfc\x72\xe1\xd1\x91\xe7\x25\x22\xca\xc1\x79\x4e\xdf\xb0\xd7\x44\x1c\xde\x6a\x0b\x39\x6b\x81\x87\xfb\x81\x6b\xf6\x3d\x7e\x21\x7a\x2d\x66\x73\x68\x16\x73\x0b\x46\xac\xff\x15\xac\x03\xac\x63\x45\x99\xc1\x3a\xc0\x3a\xfa\x61\x1d\xbb\xad\x62\x2b\xa9\x47\xcb\x32\x76\x92\xb6\x35\xd8\x07\xcc\xed\xcb\x33\xb7\xc1\x3e\xfa\xec\x37\x60\x1f\x70\xb0\xc0\x08\x02\xfb\xe8\x91\x7d\xec\xea\x73\x58\x49\x41\xce\x45\xaf\x81\x85\x40\x9c\x9d\xb9\x38\x1b\x90\x06\xc2\x52\x1d\x7e\x01\x0b\x39\x23\x51\x71\x5a\x2c\x84\x8e\xa7\x23\xf4\xb1\x57\xd8\xe1\x0e\x30\x4e\x63\xf9\x2c\xe3\x92\x27\xf5\xc3\x10\x79\x38\xb2\xfc\xaf\x6a\x3c\xaa\x6d\x33\xfe\x31\x6c\x50\xbe\xa2\xfb\xaf\xaa\xb4\x15\x8d\x3c\x04\x41\xa9\x30\x99\xea\x42\xf0\x86\x83\x70\x51\xc7\xbc\xd4\xbc\x4e\xee\xb4\xbb\x5f\x55\x7e\x97\x24\x41\xd2\x0c\x02\xa0\xac\xbc\xe1\xb2\x4e\x26\x5c\xe3\x42\xa3\x83\x35\x3f\x3f\x8b\xf4\x32\x4f\x2b\xa4\xd6\x3b\xb7\x23\x0b\x91\xf1\xe9\x8c\x33\x3e\x6d\x06\x35\x9b\xb2\x3d\xad\xf5\x0d\xf5\x00\xa1\x90\xe3\x09\x39\x9e\x90\xe3\x09\x39\x9e\xce\x2d\xc7\xd3\xe6\x99\xb7\x35\xbf\xd3\x9e\x91\xff\xc1\xb2\x3a\x6d\x2e\xfe\xea\x8c\x4e\x43\xae\x83\x6d\xf2\x38\x6d\xae\x83\xd5\x39\x9c\xf6\x5c\x07\xc8\xdc\x84\xcc\x4d\xc8\xdc\x84\xcc\x4d\xc8\xdc\xb4\xb7\xcc\x4d\x1d\x66\xff\xa5\xac\x4d\x6b\xcf\x25\xbc\xa0\x88\xbf\x6e\xa5\x39\xe3\xcc\x53\x9b\xab\x7b\x5d\xd6\xa9\xc3\xd6\x3b\x72\x4d\xed\xa5\x45\x97\xf3\x4c\xed\xb9\x59\x8f\x9a\x5d\x6a\x73\xf5\xac\xc9\x2c\xb5\xef\x69\x73\xa8\xf9\xa4\x36\x57\x5a\x0b\xad\xd8\xd9\x9f\xe7\xfe\xf5\xaf\xcd\x68\x6b\xcd\x66\x9f\x0b\x24\x5e\x8d\xb8\x9d\xbf\x2f\xd0\x03\xb0\x2e\xb0\x2e\x06\xd6\x55\xfb\x01\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xac\x0b\xc7\x7a\x00\xf2\x01\xf2\x01\xf2\x01\xf2\x01\xf2\xf5\x59\x33\x80\x7c\xbd\x41\xbe\x96\x1c\xc2\x7b\x62\x7d\x75\xc0\x97\x7a\xa1\xa3\x26\xec\x49\xa6\x71\x6f\xa0\xef\xba\x32\x69\xc8\x6c\x73\xf2\xd7\x58\x45\x95\xad\x76\xd5\xb0\xf1\x6b\xcf\xde\x09\x13\x02\x11\x02\x11\x9e\x06\x22\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x1e\xec\x38\xfb\x1f\x1c\x0f\x22\x7d\x01\x38\x27\x38\xe7\x30\xa9\x18\x38\x27\x38\x27\x38\x27\x38\xe7\x42\xa5\x1d\x98\x73\x8e\x45\xc1\x3f\xdc\xee\x04\x31\x8f\x72\x74\xee\x42\x3b\x4f\x45\xd1\x34\x4f\x6c\x93\xae\xa1\x91\x53\x51\x38\x16\x49\x45\xbf\xbb\xff\xed\x5b\xdb\x5d\x38\x2f\x78\x4b\x4c\x58\xab\x48\xda\xfe\x79\x26\xac\x90\x3a\x49\xed\xb6\x37\xf5\x57\xaf\x1b\x52\x51\xae\xd2\xbd\xef\x05\xb6\xfe\xab\xdc\x59\xc0\xde\x40\xf2\xa1\x01\xbf\xe4\x2a\x5d\x7f\xf6\xbe\xb9\xbf\x3e\x1a\xdc\x1d\x38\xb7\x76\xb1\xde\x07\x33\x02\xc3\x39\xd8\xd4\x5e\x23\xd7\x60\xe7\x3c\xe2\x36\x23\xfa\x03\x6c\xe0\x5d\x1e\x4a\x8b\x94\x7e\xe1\xb3\x81\xea\x81\xea\x81\xea\x81\xea\x81\xea\x81\xea\x81\xea\x81\xea\x37\xcf\xb6\x40\xf5\x40\xf5\x40\xf5\x40\xf5\x40\xf5\x40\xf5\x40\xf5\x17\x87\xea\x01\x7a\x01\x7a\x01\x7a\x4f\xa3\x45\x01\x7a\x9b\xd5\x03\xd0\x7b\x2a\xa0\x77\xc5\x7e\xd6\x36\x58\x65\x85\x4e\xbf\xbc\xca\x3e\x93\x45\x2a\x31\x76\x95\xeb\x9f\x9b\x31\x95\xbd\xad\x01\xaa\xc2\x13\xaa\x1d\xa5\x2d\xcf\xd9\x6f\xba\xe8\xbd\x70\xd4\x4f\x54\xd6\xaf\x54\x65\xba\x97\x5c\xd1\x70\xe3\xc2\x8d\x0b\x37\x2e\xdc\xb8\xe7\xe6\xc6\xed\x96\x65\xbc\xd5\x95\x7b\xb0\x04\xf0\xc8\xd3\xdf\xb9\xa1\x8e\x99\xa7\xff\x60\xbe\xf7\x2d\x32\xe3\xb7\xfa\x9e\x0f\x56\x23\xbf\xd7\x8d\x08\x69\x0c\x78\xd2\xf6\x6c\x2c\x26\x36\x48\x20\xf8\x69\x2a\x29\xe1\x66\x2f\xea\x3a\xa5\xb0\x8b\xc3\xd8\xc8\xe7\xf4\x26\x15\x53\x4e\x1d\xd4\x99\x01\xc6\x62\xf1\x2b\xa8\xf5\xd9\x86\xa1\xe1\x34\xa2\x9c\xcd\x44\x2c\x79\x21\x92\x79\x45\xef\xab\x25\x57\x26\xd7\x4e\xe6\x53\xa5\xb3\x69\xce\x23\x1a\x35\x52\xc5\x41\x10\x54\x8b\x36\x85\x46\xf8\x5e\x5a\x6a\xf3\x91\xf5\xe6\xe2\xe6\x4e\x5f\x20\xf7\x92\x89\x9d\x03\xfd\x23\x46\xf6\x3b\x67\x82\xa7\xad\xdf\xb8\x43\x33\xd3\x37\xdf\xd3\x27\xb7\x99\x4e\x1b\x8c\xa7\xa1\x74\xff\x6d\xb0\x4b\xb7\x7a\x59\x8d\x5e\x0e\xd6\xfd\x01\x61\x00\x61\x00\x61\x00\x61\x00\x61\xf6\x06\x61\x3a\xae\x05\x4b\x20\xe6\x70\xcb\xe2\xa7\xda\xa9\x6a\x59\x22\xb8\x16\x61\x0a\xba\xcf\x55\xc6\xa7\xa4\x8e\xee\x55\x22\xa3\x79\x23\xe4\xcf\x77\xba\xea\x58\x36\xd3\xed\x3e\x8c\xfe\x32\x62\x0f\x76\x3e\xb3\xd2\x25\x13\xa9\x19\x2c\xd5\x9a\x2a\x98\xca\xb3\x47\x9e\xfa\x10\xc4\xbc\x14\xb7\x13\x9e\x78\x5b\xf9\xfb\x5b\xfb\xf3\xf7\xb7\x6c\x22\x53\x9e\xc8\xff\xf8\x85\x64\x2c\x18\x8f\xc9\x33\xaf\x6e\xad\xd7\x32\xae\xcc\x30\xfb\xf8\x2b\x5d\xdd\x64\xed\xd3\x11\xfb\x2c\x69\x72\xac\x7d\xba\xca\x97\xcb\x56\x71\x98\xc2\x9a\xc7\x64\xa3\xa8\xe2\x71\x97\x06\xb5\x25\xf8\xe4\xcb\xbe\x52\xf2\xb4\xf9\x40\xfb\x35\xcc\xa8\xe8\x66\xc0\x3e\xaa\x17\x36\xe5\xf9\x98\x4f\x1b\xae\xc9\x60\xd4\x88\x7c\xa2\xf2\x99\x69\x93\xd6\xfa\xfa\xba\x50\xa2\xd5\xd5\x45\xa2\xd7\x2b\xd6\xcc\xd6\xad\x34\x6a\x32\x92\x71\x65\x0a\x93\x56\x20\xe7\x44\x68\x63\xb3\x58\xbb\x95\xd4\xab\x81\x51\xad\x31\xfd\x3a\x12\x40\x48\x08\xa7\x6d\xbe\x6c\xc4\xee\xa2\x48\x64\x05\xad\x4d\x75\xcb\xee\xca\x96\xe1\x8a\xdd\xb8\x0e\xd8\xec\xa0\xfa\x27\x76\xf5\x33\x8f\x9e\xa6\xb9\x2a\xd3\xd8\x5c\x45\xa1\xa9\x74\xd1\x42\xc5\x59\x09\xe9\xf4\x71\xf3\x21\xbe\x04\xe3\xf0\xa4\x9f\xd8\xd5\xaf\x2a\x17\xb5\xc7\xb2\x88\xeb\x88\xc7\xa6\xf4\xae\x7e\x6c\xe4\x32\x3d\x4f\x5b\xd3\x73\xe9\x81\x93\xf0\x8c\x5d\x3a\x64\xb6\xd8\xdd\x8f\xa3\x38\xcf\x98\x98\x76\x6b\x87\x75\xd4\xf4\x58\xad\x00\x7e\xba\xb7\xf6\x5d\x66\xa8\x87\xf3\x6d\x1c\x93\xa6\x76\xab\xac\x35\x44\xf5\xb5\xfa\xa7\x95\xd3\x61\xbb\xe3\x96\x98\xee\xa1\xe0\x45\xd9\x95\xcf\x9d\xe1\x9e\x2b\xbb\x22\x57\x6a\x69\xf8\xfb\xaf\x06\xbf\xf9\xb2\x17\x92\x8d\x1d\x64\x97\xb3\x83\xac\xdb\x52\xb2\x69\x17\xd9\xe1\x6c\x2e\x04\x22\x20\x10\x01\x81\x08\x08\x44\x40\x20\x42\xdb\xe4\x0b\xc2\x7d\x42\x35\x02\xe8\x09\xe8\x09\xe8\x09\xe8\x09\xe8\x09\xe8\x79\x5e\xd0\x13\x1c\x02\x1c\x02\x1c\x02\x1c\x62\xef\x1c\x62\x0b\x56\x3f\xd0\x3d\x5e\xdd\xaa\x70\x79\x9f\xd7\x6b\x3d\x6e\x83\x22\x38\x2b\x6f\xc0\xb9\x7c\x38\x97\xef\x4c\xcf\xe5\xc3\x69\xf4\x03\x3f\xa4\xc0\xfd\xeb\x5f\x55\x23\x2b\xdd\x33\xfd\xb3\x36\x1a\xe3\x1d\x40\x9f\xbd\xb4\x77\xd4\xb7\xdb\xa6\xd5\x35\x9d\x67\x0f\x13\x60\x2f\x1b\x58\xb1\x89\xaa\xde\xe0\x83\xdd\x44\x45\xbe\x97\x2f\x3c\xe5\x53\x91\x5b\x2f\xa2\x9d\x20\xb5\x56\x91\x24\xb3\x38\xf8\xeb\x38\xb9\x5d\x55\xce\x44\x5a\x18\x9d\xea\xfd\x04\x33\xfe\x64\x6a\xb1\x78\x14\x5a\x78\xb1\x57\xdf\x2a\xe4\xb7\x14\x91\xd8\x25\xdf\x9c\xca\xd9\x87\x8f\x3f\x98\x6b\x73\x1e\x11\x8c\x4b\x54\x3a\xb5\xd2\x8e\xfc\x67\x91\x4a\x0b\x2e\x53\x3b\x2b\x91\x7f\xaa\xba\x96\x00\x85\x43\x85\x6c\x3c\x0f\xd6\xcb\x54\x25\x3c\x9d\x8e\x54\x3e\xbd\xcd\x9e\xa6\xb7\x65\x2a\x23\x15\x8b\xdb\x3f\xfd\xa6\xef\xcd\x53\x76\x76\x78\xbb\xca\xe9\xb3\x79\x06\xa5\x05\x4f\x51\xa2\x75\x95\x67\x1f\x3b\xc8\xb3\x5f\xac\xdf\x6e\x38\x9f\xfc\x71\xe3\x27\xdb\x80\xe0\xe1\x7c\xf3\xf9\xa9\x60\x92\x1e\x43\x55\xc1\x6f\xd8\xeb\x0e\x0c\x69\x49\x82\xbf\xc7\x73\x43\xba\x88\xad\xe5\xb3\x42\x70\x42\x08\x04\xd6\x59\x08\x2c\xec\xc9\xbe\xa0\x3d\xd9\xd8\x7c\x86\xcd\x67\xd8\x7c\x86\xcd\x67\xb0\x0d\x57\x8d\xa2\x41\xee\xf4\x38\x8e\xcd\x85\x8d\x2a\x1b\x36\xaa\x0c\xd6\x00\x0b\x1e\xea\xde\xb7\xa7\xe4\x82\xc7\x0b\x8a\x6b\xb3\xf5\x64\x6e\xda\xf7\x9e\x94\x9a\x0a\x11\x7f\x50\xa4\xd9\xd8\xfc\x8b\x47\xc5\x88\xb1\xcf\xe6\xbf\xfe\xef\x33\x2e\xc9\x79\xa7\x59\x94\x94\xba\x10\x79\xb5\xb6\xd8\x90\x54\x96\xc8\x27\xc1\xae\xc2\x57\x5e\x19\x09\xe9\x65\xcf\x88\xdd\x27\x3c\x4d\x85\xd5\x9e\x24\x4c\x78\x62\xb5\xd0\x87\x1f\x76\x99\xac\xe9\x1b\x8f\x24\x19\x42\xa5\x05\xc5\x3d\xf6\xd5\x67\x4a\xca\x3e\xdb\x1a\x33\xcb\x44\xa6\x7d\xed\xb8\x60\xac\x52\x8b\x9c\xa2\xa8\x2a\xf1\x3c\xdf\x73\x45\x99\x8f\x39\x5f\xe6\x3d\xec\xb5\x0c\x0e\xb8\xe6\x0a\x30\x15\xc3\xf5\xbf\xbd\x86\x42\xd7\x93\xbb\xb7\x7e\x01\x12\xbc\xb7\x97\x19\x48\xbd\x17\xa4\x4e\xe3\x61\xa7\x4c\xc1\x37\x74\xef\x9f\xd7\x4f\xcd\x33\x91\x4f\x45\xa7\x2b\x75\x91\xf3\x42\x4c\x65\x74\xd3\xfd\x1e\xf3\xef\xb9\xbb\x92\x16\x81\x2e\x92\x2a\xe3\x79\x21\x69\xd3\x9c\x8d\x20\xdb\x5a\x5e\xd1\xfb\x06\xe2\x9b\xde\x57\x20\xc0\x1a\x5b\xe4\xbe\x19\xc8\xc5\xe0\xb1\x3e\x73\x8f\xf5\xe5\x84\x04\x2c\x6c\x3f\xf1\x83\xcb\x6e\x91\x32\x73\x4d\xb5\xed\xfe\xdd\x8a\x79\xe8\x3d\xf9\xeb\xec\xbe\x68\x9e\xd0\x9d\xa9\x4a\x6f\xec\xdd\x74\x05\xb9\xcc\x35\x7b\xf7\x57\xad\xd2\x7b\xbb\xfb\xfc\x8b\x99\xf1\xdc\xbf\x1f\xfc\x3c\x58\xfd\xf1\xfd\x90\x62\x15\xba\xf7\x9b\x5f\x55\x1e\x11\x53\x98\x2a\x6a\x7c\xc5\xbe\xbf\x9d\x98\xbf\x7d\x7f\xcb\xee\x1a\xb5\x49\xc1\xed\x16\x00\x90\x99\xe3\x06\xea\x0d\x8f\xa8\x01\x68\xff\x72\x22\x23\xe7\xd2\x24\xab\x48\xbd\xb8\xb6\xb5\xfb\x7b\x33\xa1\xb2\x44\x8c\x98\x7d\x27\x1d\x5b\xe0\xfb\x14\x85\x98\xb7\x36\x44\x78\xfd\x2e\xd5\x6b\x5e\x04\xe3\xc8\xfe\x00\xe3\xe8\xc8\xd1\x09\x0b\x56\xcd\x50\xcd\xa3\xb2\x77\xef\x58\x96\xf0\x68\x7b\x05\xe7\xee\x3b\x73\x0d\x87\x60\x4e\x28\xb7\x4b\x51\x6e\x03\x12\x48\x58\xc7\xc3\x2f\x08\xe6\x3c\x7f\xe9\x51\x0e\xd7\x2f\xfb\x86\xf5\x12\x17\x79\xab\x2d\x7d\xad\x85\x47\xee\x87\xf3\xd9\xf7\xf8\x15\xab\x57\xe2\xe7\x00\x32\x66\x24\x0c\x6f\x60\x17\x60\x17\x60\x17\x60\x97\x63\x63\x97\xdd\x57\xbb\xcd\x00\xa6\x65\xb9\x3b\x49\x13\x1e\x18\x06\xc6\xfc\xe5\x19\xf3\xc0\x30\x7d\xf6\x1b\x60\x18\xb8\x6f\x60\x2c\x01\xc3\xec\x1f\xc3\xbc\xc6\x7f\xb1\x19\xc8\x9c\x8b\xa6\x03\x96\x81\x92\xbb\x14\x25\x37\x20\xc1\x84\x75\x3d\xfc\x02\x2c\x73\xfe\x52\xe4\x94\xb1\x0c\x1d\x15\x18\x28\xcc\x5e\xb9\x8b\x3b\x50\x3a\x8d\xe5\xb3\x8c\x4b\x9e\xd4\x0f\xa7\xe4\xe1\x08\x79\x57\xd6\x51\x6d\x3b\xf6\x8f\x61\x23\xf7\x15\x3d\xe3\xaa\x4a\x25\xd2\xc8\x0d\x11\x84\x0e\x93\xa9\x2e\x04\x6f\xf8\x21\x17\x65\xd0\xcb\xa2\x63\xab\x76\x02\xe1\xaf\x2a\xbf\x4b\x92\xa0\x8a\x06\xc1\x72\x56\xde\x70\x59\xc7\x46\xae\xf1\xd2\xd1\xa9\xa7\x9f\x9f\x45\x7a\xc1\x27\x48\x52\x13\x9e\xed\x31\x92\x48\xce\x75\xc6\xc9\xb9\x36\x63\xa2\x4d\x89\xb9\xd6\x3a\xa3\x7a\x40\x60\x48\xc7\x85\x74\x5c\x48\xc7\x85\x74\x5c\xe7\x96\x8e\x6b\xf3\xcc\xdb\x9a\x8a\x6b\xcf\x01\x07\x07\x4b\xc0\xb5\xb9\xf8\xab\x93\x6f\x0d\xb9\x0e\xb6\x49\xb9\xb5\xb9\x0e\x56\xa7\xdb\xda\x73\x1d\x20\xc9\x16\x92\x6c\x21\xc9\x16\x92\x6c\x21\xc9\xd6\xde\x92\x6c\x75\x98\xfd\x97\x12\x6c\xad\x3d\xd6\xf1\x82\xe2\x0d\xbb\x95\xe6\x8c\x93\x84\x6d\xae\xee\x75\x09\xc2\x0e\x5b\xef\x48\x0b\xb6\x97\x16\x5d\x4e\x09\xb6\xe7\x66\x3d\x6a\x22\xb0\xcd\xd5\xb3\x26\x09\xd8\xbe\xa7\xcd\xa1\xa6\xfe\xda\x5c\x69\x2d\xec\x62\x67\x7f\x9e\xfb\xd7\xbf\x3a\xe2\xaf\x0d\x7b\x93\x2e\x99\x8a\x2d\x85\x06\xfd\x7d\x01\x2e\x80\x87\x81\x87\x31\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\xb0\x81\xb1\x20\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\x30\xf0\xb0\x53\xe4\x61\x38\x78\x04\x20\x10\x20\x10\x20\x70\xd0\x2d\x0a\x10\xd8\xac\x1e\x80\xc0\xb3\x02\x81\x2d\xc9\x9b\xf7\xc4\x03\xeb\x10\x30\xf5\x8a\x47\x4d\xd8\x93\x4c\xe3\x5e\x61\xe0\x75\x65\xdf\x90\x0d\xe7\xb4\xb0\x31\x91\x2a\xc3\xed\xaa\x61\xf0\xd7\x9e\xfd\x3a\x94\x08\x8c\x08\x8c\x78\x42\x18\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x11\x08\x71\xf0\x08\x11\x89\x18\xc0\x43\xc1\x43\x87\x4b\xcf\xc0\x43\xc1\x43\xc1\x43\xc1\x43\x17\x2a\xed\x40\x3c\x34\x12\xb9\xfb\x7a\xa1\x09\x0b\x49\x75\xbb\x13\xe9\x3c\xca\x81\xbe\x0b\xad\x3d\x15\x05\x93\xe9\x44\xe5\xb3\xd0\xbb\x39\xb3\x14\x66\x35\xb1\x9c\x8a\xe2\x97\x5a\x25\xdc\xdd\xff\xf6\x7f\x16\xef\xc0\x21\xc6\x5b\xd2\xc3\x50\x89\x27\xce\x0e\xeb\xa3\xa3\x76\xd7\x9b\xfa\x9b\x37\x8f\xa7\xe7\x0f\xa7\x3d\xa4\x1a\xb6\xbf\x9d\x2b\xbb\x8f\xa7\x7f\x7c\xb8\xbb\xff\xed\x5b\xdb\x7d\x18\x55\xdb\x8f\x2a\x5f\x91\xb4\x1f\xfb\x8c\x06\xd7\xff\x7d\xfe\xf0\xaa\xf1\x55\xff\xb3\x9c\xa6\x32\x9d\x7a\xbf\x47\x7d\xe4\x59\x17\x4b\xbf\x91\x3b\xf6\x99\x2c\x52\x49\x22\x22\xbf\xea\xd4\x06\xc0\x83\xfd\x9c\x6f\xf6\x73\xd6\x8c\x1b\xfb\xa0\xe6\xd0\xf9\x25\x3c\xb5\xd3\x13\xf7\x9b\xae\x63\x2f\x7d\xfa\x13\x95\xfa\x2b\x55\xa7\xee\x25\x45\x07\xe0\x32\xe0\x32\xe0\x32\xe0\xf2\xb9\xc1\xe5\x6e\xc9\x5d\x5a\x01\xf3\xc1\xf2\xee\x20\x3d\x52\xe7\x86\x3a\x66\x7a\xa4\x83\x45\x04\x6c\x91\x90\xa8\x95\x88\x1f\xac\x46\x7e\xaf\x3b\xc5\x64\xca\xb4\xf5\x55\xb1\xb1\x98\xd8\xd0\xc5\x40\x8f\x2a\x29\xe1\x66\x2f\xea\x3a\xb5\x84\x50\xa9\x4a\x6f\x52\x31\xe5\xd4\x41\x9d\x5b\xab\x9e\x38\xca\x92\xe4\x30\x34\x9c\x7e\x94\xb3\x99\x88\x25\x2f\x44\x32\xaf\x62\x0a\xab\x25\x57\x26\xd7\xce\x6d\x45\x95\xce\xa6\x39\x8f\x68\xd4\x48\x15\x07\x41\x50\x2d\xda\x14\xb0\xe9\x7b\x69\xa9\xcd\x47\xd6\x9b\x8b\x9b\x3b\x7d\x81\xdc\x4b\x26\x76\x0e\xf4\x8f\x18\xd9\xef\xb4\xb9\x2a\x5b\xbe\x71\x87\x66\xa6\x6f\xbe\xa7\x4f\x6e\x73\x05\x6e\x70\x06\x0e\xa5\xfb\x6f\x13\x0c\xd2\xad\x5e\x56\x07\x84\x1c\xac\xfb\x23\x34\x04\xa1\x21\x08\x0d\x41\x68\x08\x42\x43\xf6\x16\x1a\xd2\x71\x2d\x58\x0a\x0f\x39\xdc\xb2\xf8\xa9\xb6\xaf\x2c\x4b\x04\xd7\x22\x4c\x41\xf7\xb9\xca\xf8\x94\xd4\xd1\xbd\x4a\x64\x34\x6f\x6c\x44\xf0\x9d\xae\xda\x98\x66\xba\xdd\x87\xd1\x5f\x46\xec\xc1\xce\x67\x56\xba\x64\x22\x35\x83\xa5\x5a\x53\x05\x53\x79\xf6\xc8\x53\xbf\x31\x22\x2f\xc5\xed\x84\x27\xde\x56\xfe\xfe\xd6\xfe\xfc\xfd\x2d\x9b\xc8\x94\x27\xf2\x3f\x7e\x21\x19\x0b\xc6\x63\x22\xcd\xea\xd6\x52\xb8\xb8\x32\xc3\xec\xe3\xaf\x74\x75\x93\xb5\x4f\x47\xec\xb3\xa4\xc9\xb1\xf6\xe9\x2a\x5f\x2e\x5b\x15\x57\x50\x58\xf3\x98\x6c\x14\x55\x3c\xee\xd2\xa0\xb6\x04\x9f\x7c\xd9\x57\x4a\x9e\x9d\x32\x69\x6f\x65\x98\x51\xd1\xcd\x80\x7d\x54\x2f\x6c\xca\xf3\x31\x9f\x36\xdc\x96\xc1\xa8\x11\xf9\x44\xe5\x33\xd3\x26\xad\xf5\xf5\x75\xa1\x44\xab\xab\x8b\x44\xaf\x57\xac\x99\xad\x5b\x69\xd4\x64\x24\xe3\xca\x14\x26\xad\x60\x13\x9e\xfb\x36\xd6\xc4\xf1\xe8\x57\xaf\x06\x46\xb5\xc6\xf4\xeb\x48\x00\xfb\x61\x93\x4f\xf3\x65\x23\x76\x17\x45\x22\xb3\xa9\x56\xeb\x96\xdd\x95\x2d\xc3\x15\xbb\x71\x1d\xb0\xd9\x41\xf5\x4f\xec\xea\x67\x1e\x3d\x4d\x73\x55\xa6\xb1\xb9\x8a\x36\xcc\xd0\x45\x0b\x15\x67\x25\xa4\xd3\xc7\xcd\x87\xf8\x12\x8c\xc3\x93\x7e\x62\x57\xbf\xaa\x5c\xd4\x1e\xcb\x22\xae\x23\x1e\x9b\xd2\xbb\xfa\xb1\xfb\xa9\xe8\x79\xda\x9a\x9e\x4b\x0f\x9c\x84\x67\xec\xd2\x21\xb3\xc5\xee\x7e\x1c\xc5\x79\xc6\x11\x40\xdd\xda\x61\x5d\x14\xd0\xb1\x5a\x01\xf1\x40\x7b\x6b\xdf\xe5\x98\xa0\xc3\xf9\x36\x8e\x19\x1d\xd4\xad\xb2\xd6\x44\x08\xbd\x56\xff\xb4\x32\x3c\xa0\xe7\x2d\x31\xdd\x43\xc1\x8b\xb2\x2b\x9f\x3b\x41\xe2\x5c\xbb\x71\xc5\x66\x70\xbb\x26\x57\x7a\xa9\x8f\x7d\xe1\x2d\x30\x7b\xc5\x2e\xf1\x0e\xf4\x77\x71\xdf\xf8\xba\x2d\xe3\xbd\x9f\x5f\x61\xfd\x66\xb9\xb3\xb5\xbd\xc0\x0f\x47\x57\xec\x80\xc3\xcd\x13\x17\x60\x78\x9f\x08\x1c\x1b\xe2\x2f\x67\x43\x7c\xb7\x35\x68\xd3\xa6\xf8\xc3\x19\x6b\x88\x60\x40\x04\x03\x22\x18\x10\xc1\x80\x08\x86\xb6\xc9\x17\x68\xfc\x84\x6a\x04\xb4\x14\xb4\x14\xb4\x14\xb4\x14\xb4\x14\xb4\xf4\xbc\x68\x29\x00\x06\x00\x06\x00\x06\x00\xc6\xde\x01\xc6\x16\x90\x7f\xa0\x9b\x9d\xbb\x55\xe1\xf2\x86\xe7\xd7\x7a\xdc\x06\x85\x7e\x56\xde\x70\x59\x47\x0e\x8f\x1a\xcc\xe3\xf9\xc3\x68\xa5\x57\xff\xbc\xb7\x38\x6e\x06\x4e\x7d\xe5\x2f\x3d\x1a\x64\xda\xe1\x5c\xe2\x53\x39\xe5\xe6\xcd\x42\x2b\xbe\xcd\x94\xee\x99\xa8\x59\xdb\x86\xf1\x9d\xe0\x99\xbd\x79\x8f\xf8\x6c\xb7\x1d\xa4\x6b\x8e\x4f\x3a\xd0\xa4\xd2\xcb\x0e\x53\xec\x72\xaa\x77\x82\xc1\xee\x72\x22\x1f\xc7\x17\x9e\xf2\xa9\xc8\xad\xb7\xce\x1e\x1b\xa6\xb5\x8a\x24\x99\x9f\xc1\x2f\xc6\xc9\xbd\xa9\x72\x26\xd2\xc2\xe8\x41\x6f\x8f\xcf\xf8\x93\xa9\xc5\xe2\x51\x68\xe1\x45\x55\x7d\x2f\x8f\xdf\xf3\x43\xa2\x92\x7c\x60\x2a\x67\x1f\x3e\xfe\x60\xae\xcd\x79\x44\xd0\x2b\x51\xe9\xd4\x4a\x28\xf2\x53\x45\x2a\x2d\xb8\x4c\xed\x2c\x46\x7e\xa0\xea\x5a\x02\x01\x0e\xc9\xb1\xf1\x3c\x58\x09\x53\x95\xf0\x74\x3a\x52\xf9\xf4\x36\x7b\x9a\xde\x96\xa9\x8c\x54\x2c\x6e\xff\xf4\x9b\xbe\x37\x4f\xd9\xd9\xb1\xec\x2a\xa7\xcf\xe6\x19\x94\xe6\x3a\x17\x29\xd4\x55\x06\x7d\xec\x20\x83\x7e\xb1\x3e\xb3\x61\x17\xe3\xe3\xc6\x62\xd8\xc8\xde\x61\x97\xe3\x1c\x55\x29\x09\x9d\x13\x54\xa5\x6f\xd8\xeb\x8f\x12\x69\x49\x04\xb4\xc7\x13\x45\x76\x53\x7e\xad\xa7\x88\x1c\x5f\xf9\x9d\xc8\xd9\x21\x50\x76\xf5\x46\x1e\xac\xb2\xc3\x6e\xed\x0b\xda\xad\x8d\x6d\x69\xd8\x96\x86\x6d\x69\xd8\x96\x06\xa3\x74\xd5\x28\x1a\xe4\x1e\x90\xe3\x18\x71\xd8\xc2\xb2\xc6\x76\x73\xc6\xca\x09\x5a\x6f\xc1\xcf\xde\xfb\xc6\x95\x5c\xf0\x78\x41\x8e\xed\x62\x76\x99\xc7\x1c\x6e\xb7\x4a\x4d\xbe\x88\x3f\x28\x06\x6d\x6c\xfe\xc5\xa3\x62\xc4\xd8\x67\xf3\x5f\xff\xf7\x19\x97\xe4\x6e\xd4\x2c\x4a\x4a\x5d\x88\xbc\x5a\x94\x6c\xb0\x2a\x4b\xe4\x93\x60\x57\x21\x4b\xeb\x95\xd1\x9e\x5e\x2f\x8d\xd8\x7d\xc2\xd3\x54\x58\xd1\x4a\x8a\x86\x27\x56\x44\x7d\xf8\x61\x97\x59\x9e\xbe\xf1\x48\x5a\x23\x54\x5a\x90\xea\x63\x5f\x7d\xa6\xa4\xec\xb3\xad\x31\xb3\xbe\x64\xda\xd7\x8e\x0b\xd3\x2a\xb5\xc8\x29\xbe\xaa\x52\xdd\xf3\x3d\x57\x94\xf9\x98\xf3\xa5\xe1\xc3\x5e\x04\xe1\x0a\xec\xb2\x9c\x4c\xc5\x49\x7a\x02\x5f\xc3\xa7\x1b\xb9\x74\xba\x7d\xce\x29\x65\xd7\x39\x5d\xfc\x4e\x91\x2f\x3b\x1d\xaa\x7e\x43\xf7\xfe\x79\xfd\x24\x37\x13\xf9\x54\x74\xba\x52\x17\x39\x2f\xc4\x54\x46\x37\xdd\xef\x31\xff\x9e\xbb\x2b\x69\x3a\xed\x22\x5c\x32\x9e\x17\x92\x36\xa6\xd9\x28\xad\x1e\x44\x0c\x7d\xc1\xe0\x5c\xc7\xfb\x0a\x1a\x58\x63\x2a\xdc\x37\x03\xa9\x18\x1c\xca\x67\xee\x50\xbe\x9c\x50\x81\x85\xed\x1f\x7e\x70\xd9\x2d\x4a\x66\x1e\xaa\xb6\xbd\xbf\x5b\x31\x47\xbd\x27\x77\x9a\xdd\x97\xcc\x13\xba\x33\x55\xe9\x8d\xbd\x9b\xae\x20\x8f\xb6\x66\xef\xfe\xaa\x55\x7a\x6f\x77\x7f\x7f\x31\xb3\xa1\xfb\xf7\x83\x9f\x23\xab\x3f\xbe\x1f\x52\x0c\x43\xf7\x7e\xf3\xab\xca\x23\x72\xf9\x4f\x15\x35\xbe\x62\xdf\xdf\x4e\xcc\xdf\xbe\xbf\x65\x77\x8d\xda\xa4\xe0\x72\xeb\x9f\x27\x63\xc2\x0d\xd4\x1b\x1e\x51\x03\xd0\xfe\xe1\x44\x46\xce\xe3\x48\xb6\x87\x7a\x71\x6d\x6b\xf7\xd7\x66\x42\x65\x89\x18\x31\xfb\x4e\x3a\x36\xc0\xf7\x29\x0a\xf1\x6e\x6d\x88\xf0\xfa\x5d\xaa\xd7\xbc\x08\x26\x88\xfd\x01\x26\xc8\xd2\x33\x07\x60\x82\x64\x0b\xf1\xd2\x27\x68\x84\x94\xbd\x3b\xb4\xb2\x84\x47\x7d\xc8\x41\xf7\xa4\x8b\x11\x84\x88\x22\x85\x34\xbc\x64\x69\x38\x20\x05\x06\xa1\x10\x7e\x41\x14\x29\xf4\x4e\xa5\x77\xca\x93\x74\xb9\xbe\x61\xbd\x05\x5f\x1a\x43\x34\x57\xcf\x3c\xd9\x29\xa3\xe2\x56\x54\xd0\xbf\xc9\x2f\x7f\x07\x23\x84\x77\xbe\x88\x98\xfc\x30\x6b\xb8\xbf\x01\xd4\x00\xd4\x00\xd4\x9c\x05\xa8\xe9\x77\x5d\xd9\x06\xda\xb4\x2e\x2c\x27\x69\xab\x03\xde\xc0\x42\xbf\x3c\x0b\x1d\xf0\xa6\xcf\x7e\x03\x78\x03\x9f\x0c\xcc\x12\xc0\x9b\x01\xc2\x9b\xbe\x5d\x0f\xdb\x80\x9c\xf3\x11\x89\x00\x3a\x90\x8b\x97\x2c\x17\x07\xa4\xca\x20\x1e\xc2\x2f\x00\x3a\xd0\x40\x00\x3a\x15\xd0\xd1\x76\x5f\xde\xde\x71\x8e\x7d\xcf\xc1\x61\x8e\xdb\x76\x88\x69\x0f\xf3\x85\xfb\x1b\x50\x0e\x50\x0e\x50\xce\x59\xa0\x9c\x3e\xd7\x94\x6d\x40\x4e\xcb\xa2\x72\x92\x16\x3a\x30\x0e\xec\xf2\xcb\xb3\xcb\x81\x71\xfa\xec\x37\xc0\x38\xf0\xc4\xc0\x24\x01\xc6\x19\x20\xc6\xe9\xd7\xe5\xb0\x0d\xc4\x39\x17\x81\x08\x84\x03\xa9\x78\xc9\x52\x71\x40\x8a\x0c\xc2\x21\xfc\x02\x84\x03\xfd\x73\x39\x08\x87\xd2\x4a\xad\x01\x39\x7b\x45\x37\x2e\x1d\x69\x1a\xcb\x67\x19\x97\x3c\xa9\xa7\x36\xe3\x21\x01\xf1\xca\x3a\x19\xd5\x4e\xff\xfd\x31\x9c\x1b\x7c\x45\x4f\xbd\xaa\x52\xd3\x37\x72\x8d\x07\xe1\xc5\x64\xaa\x0b\xc1\x1b\x6e\xd7\x45\x59\xf6\xb2\x85\xd7\xee\xef\x0b\x19\x9d\x90\x8a\x6c\xa8\x47\x9d\x52\x26\xbd\xcf\xcf\x22\xbd\xe8\x99\x8d\x1a\xf1\x12\xd3\x90\xd1\xb9\xca\xd4\x07\x7e\x56\xea\x69\xc6\xf3\x27\x5d\xb9\xe4\xec\x8c\x44\x39\xab\xb5\xd3\x99\xf3\x4c\xb0\xef\x6f\x7f\xfe\xfa\xf5\x6f\x5f\xee\xbe\xfd\xed\xfb\xdb\x2a\x6b\xb4\x3d\x37\x59\x91\x99\x20\x67\x59\x22\x28\x3d\xf4\x38\x3c\x75\xc6\xe7\x4c\x4e\x53\x7b\x6a\xbd\xd4\xd6\xa5\x64\x14\x65\x75\x09\xcf\x05\xab\x67\xd7\xb5\xa9\x98\xaf\x34\x8b\xa5\x8e\x72\x61\xbe\xb9\xca\xed\x5f\xb3\x4a\x5c\x4a\xe8\xe6\x83\x42\x92\x66\x5e\xd8\x4c\xc7\xfe\x34\x50\x99\x16\x22\x7f\xe6\xc9\x35\x4b\x55\x4e\x9f\x45\x39\x84\x43\x5e\xe9\xc5\xd4\xe4\x69\x4c\xf7\xfb\x32\xbb\x1c\xde\x21\x83\xb0\x36\x56\x8a\xf9\x30\x7f\x38\xbe\x4b\x35\xcd\x6d\xf5\x35\xce\x69\x37\xbf\x52\x15\xb8\xe3\xd6\x1f\x05\x9b\x08\x5e\x94\xb9\x60\x53\x5e\x08\xb6\xd0\x10\xee\x49\x22\x35\x12\xdb\xa6\x6c\xce\xa4\xfd\xb8\x55\x8f\xdd\x12\x9b\xb5\x34\x7f\x3b\x43\x6b\x73\xc0\xf5\x80\x04\x7f\xaf\x67\xfd\xb6\x3e\xde\x5a\x22\x03\x2d\x0a\x9b\x62\xdb\xa5\x6d\x37\x15\xde\xc8\xf7\x1d\x4e\x9c\xb7\x95\x32\x62\x0f\x32\x8d\xc4\x42\x8e\x02\xd7\x9a\xce\x24\x69\x26\x13\x6f\xe4\x53\x0f\x1f\x62\x6f\xa5\x87\x73\x63\x23\x3f\x4b\x55\x6a\x97\x44\xde\x67\x77\x36\xa3\xa1\x4a\xf1\x6d\x7f\xab\xc6\x1f\x7b\x27\xfe\x88\x44\x56\x25\x72\xb5\x8f\x54\x93\xf0\x92\xf7\xe1\x10\x75\xf7\x7d\x36\xd1\x3c\x65\x3e\xe0\x8b\x9f\x22\xcd\xc8\x12\xb6\x37\x04\x23\x3b\x74\xa1\xca\xdb\xb2\x78\x9b\xb9\x83\x6c\x37\x91\x33\x6b\xa7\xfb\x3c\xf0\x71\x29\x8c\xae\x10\x7f\x64\xd2\x29\x80\x77\x53\x91\x8a\x9c\x90\xdf\xc4\x18\xec\x85\x62\x13\x39\x29\x84\x48\xd9\x4c\xa6\x65\x21\xf4\x7b\x46\xc9\xfd\x23\x95\x4e\xe4\xd4\xe7\xa4\xb0\x22\xc5\x27\xea\xaf\x3a\x67\x73\x14\xd9\x95\x30\xf6\xe2\xe3\x7f\x7f\xf8\x5f\xec\x9b\x3b\x3b\xfe\xb3\xf9\x04\x11\x3b\x77\x40\xa1\xa6\xf6\x03\xdd\x95\xa1\x44\x85\x7a\x12\x69\x28\xb2\x4b\x26\x9e\x0a\x11\x2f\xe4\x20\x37\x93\xf8\xb5\xa9\x30\x32\x6b\x73\xa1\x0b\x6e\x13\xd7\x4b\x97\xb6\xd8\xe7\x5b\x5f\x4e\x38\x3f\x62\x5f\xcd\xab\x5f\xa4\x4f\x7f\xe0\xde\x62\x5a\xc6\x4d\x03\xd6\x37\xee\xd2\x7c\xdb\xbc\xd6\xc1\xfe\xa6\x2f\xf4\x89\xcc\x6b\x76\xb9\x29\x2c\x15\x6e\x63\xb5\xd0\x73\xe9\x83\xc9\x2f\xef\x3b\x77\x2a\xfe\x28\xd8\x93\x98\xdb\xc3\xfd\xc3\x9f\x13\xb3\xbe\xd4\x93\xae\xbf\x3c\x4a\x9b\xcf\x5e\xa6\xb5\x0a\x09\xd7\x87\x8e\x5c\xcb\x52\xae\xd9\x4d\x48\x06\x61\x0f\x00\xce\xc5\x96\xb9\xe6\x17\x2a\x63\x39\xcd\xbc\x4b\x14\x40\x4a\x88\x9c\x03\xa6\x43\x9a\xff\xda\x46\x79\x12\x73\x97\xb8\x3f\x3c\xf8\xfb\x5b\x5f\xe4\xef\x6f\x5d\x5e\xfe\xd5\x89\xfc\x69\x82\x68\xa6\xf2\x0f\x6b\x04\xb5\x1c\x75\x00\x37\x1b\xd7\x6b\x4f\x2f\xe5\xb9\x76\xc3\x26\xac\x1c\x2e\x3f\x82\x6b\x31\xeb\xa0\x2a\xd8\x4c\x6a\x4d\x2b\x42\xc3\x4b\xb6\xed\xcc\xeb\xbb\x5e\x3f\x21\x0b\xdd\x66\xdb\x3b\xa6\x45\x95\x33\xc1\x8c\x8d\x5c\x46\x45\x48\x34\x6d\xa6\xa7\x50\xf6\x90\x22\x64\xee\xda\xc9\x62\xa2\x66\xbe\x16\xf1\x2c\xf2\x79\xf1\x28\xd3\xe9\xb6\xc5\xa7\xa7\x3d\xb8\xaf\x39\x99\x3a\x48\xf8\x58\x24\xbd\xd5\x01\x3d\xed\x18\x75\x40\xf9\xc3\xad\x37\x71\xc6\xff\x90\xb3\x72\xc6\xd2\x72\x36\x16\xb9\x2d\xbd\x33\x5a\x6c\xfd\x50\xda\x6c\xc2\xb5\x55\xd6\x77\x9a\x86\x69\x21\x96\xe6\x2b\x6c\x02\x91\xe5\xd9\xcd\x2c\xdf\xe6\x6f\xff\xf6\x7d\xfd\xdf\x3e\x87\x49\x5a\xd5\xb7\x4f\x2f\x62\xad\x5c\x3b\x00\x69\x26\x8a\x78\xea\x93\x04\x55\x73\xa9\xe6\x33\x33\xb9\xc8\x42\x86\x45\xd7\x7e\xa5\x91\x07\xa2\x9a\x2d\xcd\xab\x6d\x59\x4c\x33\x19\x91\x5a\x14\x56\xae\xd9\xb2\xdb\xc5\xd6\x96\x4d\xbc\xd0\xb4\xc3\xd3\xba\x97\xd9\x4c\x74\x33\x55\xa6\xf4\x18\x5b\xca\x77\x65\x66\x5e\x66\xd3\x24\x99\xbf\xbc\xf7\xb3\x9b\x55\x84\x9c\x26\x74\x7f\xb7\xef\x3b\x66\x66\x9b\xc8\xa4\x10\x66\x8d\x33\xeb\x8e\x99\x46\xa2\xa6\x86\x6d\xa8\x10\xeb\x93\x8f\x42\x20\x58\x73\x8d\xb2\xc9\x4e\x5c\xd2\xff\xb0\x9a\x37\x44\x11\xcd\xa5\xcf\x5c\x26\x46\x35\x56\xfa\xdc\x14\x39\x7a\x54\x4a\x53\x66\x73\xf3\x1c\x37\x87\xba\xb6\x30\xd5\xc2\xf3\x69\x49\xb2\x9d\xa7\xb1\x5f\xa1\xa8\x92\x4c\xd9\xdc\xf7\x84\x47\x57\xb5\xfb\xdb\x84\x85\x2e\x55\x89\x11\xaf\x6f\x16\x0a\x20\x35\x13\xb3\xac\x98\x37\x85\x58\x50\xdf\xbc\x30\x9a\x65\x5d\x81\xd6\x2d\x06\x72\xb2\xb0\x14\xd8\xd5\x23\xf4\xcb\x69\xc9\x73\x9e\x16\xc2\x83\x8e\x2a\x5b\x91\xae\x86\x3d\xad\x28\x25\xa1\x87\xf0\xed\x61\x61\x0b\x92\xaf\x50\x4c\x6a\x5d\x3a\x23\x40\xa6\xd3\x44\x54\x23\x24\xa8\x0c\xdf\xe1\x6e\xbc\x3b\xde\x58\x1d\xe1\x95\xdb\xad\xb4\x7e\x91\x25\x1b\x43\x97\x22\x6e\x5d\x6e\xc9\xd6\x29\xc7\xda\x5c\x9c\x16\xa1\x04\x71\x2d\x36\xe0\x77\x67\xa6\x68\x35\x13\x85\x9c\x09\x53\xf6\x89\xc8\x73\x4a\xe7\x64\xd3\xe3\xd7\x04\x44\x25\x30\x4c\x8b\x8a\x54\x97\xb9\x08\xe9\x02\x9c\x44\xf2\xac\xc1\xd6\x9a\x2d\x32\x0d\x4c\x12\x43\x4c\xcf\x78\x92\x88\x9c\x45\x8f\x65\xfa\x44\x94\x90\x33\x33\x6d\xb2\x84\xe7\x53\xdf\xd0\x34\xe2\xed\xe3\xad\x45\xa6\x85\xa0\x8e\x97\x29\xad\xa5\xe9\x70\xae\xda\xa8\xc3\xd5\xc7\x97\x0d\x51\x8b\x2b\x9b\x8c\xde\x23\x62\xdb\x1e\x24\xbf\xdd\x02\xef\xfa\xb0\xcb\x30\x46\x5f\xfd\xc2\xb5\xe7\x60\xde\xee\x34\x75\xb2\xac\x70\xac\xee\xe7\xda\x34\x70\x54\x26\x36\xcb\x56\xd5\x6d\xb6\x9e\xfd\x4d\x25\xb5\xcf\xfa\x6d\x69\xc6\x2e\x28\xfe\xb2\x5b\x69\x16\xb5\x9b\x16\x85\xef\xb8\x45\xce\xa5\x99\xb9\x53\xf6\x62\x5a\xd8\x5f\xe9\x7b\x81\xb9\xcc\x8f\xa5\x90\x3a\x2b\xf7\x19\xcc\xcc\x8c\x29\x02\xb5\xaa\x39\xfe\xa4\xba\x8d\x55\xa4\x6f\x69\xac\x98\x19\xfa\x96\x7a\xfb\x0d\xcf\xe4\x2d\xcf\xe4\x4d\xa4\x52\x63\xf2\xe9\xdb\x3f\x85\xb4\x58\xe1\x85\x13\x1a\xd6\x05\x97\x89\xa6\x29\xa9\x2e\x20\x28\x9c\x66\xcb\xea\x5e\x28\xfc\x11\xeb\xfd\x0b\x4d\xb7\x61\x49\xd2\x94\xdc\x6c\xb1\x6d\x8c\xd4\xc8\xb2\x44\xda\x09\x26\xcc\x92\x36\x4c\x49\x6a\xf6\x28\xa7\x8f\x14\xbd\x14\xa9\xd9\x4c\xa4\x94\x57\xae\xde\x72\x8d\x77\x39\xc7\x80\xa9\xd2\xea\x49\x66\xd2\xce\x45\xdb\x8b\xcd\xb5\xa7\xd7\xa2\x5f\x96\x7d\xd2\xfb\x6d\xd6\xdf\xe5\x4c\x98\x05\xcb\x3b\x2c\x4c\xd5\x5a\x1e\xe2\x24\x1f\x2d\x1a\x34\x69\x69\x9b\x67\xcd\x7b\x00\xbc\x4e\xe1\x49\x72\xcd\x72\x31\xe5\x79\x4c\x28\xd9\xcc\xf2\xe9\x9c\xf1\xa8\x90\xcf\xb2\x98\x9b\x95\x4d\xa6\xfe\xff\x6d\x3b\xbf\x14\xf6\xf3\xda\xf2\x33\xee\x7b\xda\xfc\xa7\x35\x1c\x55\x5e\x07\x32\x36\xd3\x9c\xb9\x6e\x4c\x4b\xab\x6d\x3c\x9b\x19\xcf\x69\xa6\xe2\x51\xcc\xec\x62\x6a\x49\x01\x55\x48\x1c\x5f\xbb\xe5\xea\xda\x5d\x3b\x53\xcf\xa4\xc8\x6a\xa6\x24\x7b\xb0\x79\x77\x16\xbb\xf3\xb6\x95\xd6\x02\x36\x76\xf6\xe7\xb9\x7f\xfd\xab\x3f\x98\xd6\x92\x63\x78\x4f\x4c\xad\x0e\xd2\x52\xbf\xf8\xab\x09\x7b\x92\xe9\x9a\x08\xa5\x5e\x80\xda\x75\x25\xfe\xc9\xc0\x71\x42\xd1\xd8\x0f\x95\x55\x73\xd5\xb0\x86\x6b\xcf\xee\x0b\xc7\x01\xc5\x01\xc5\x9d\x14\x8a\x03\x86\x03\x86\x03\x86\xab\x2e\x04\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x3b\x3d\x0c\x87\x53\x5e\x40\x19\x41\x19\x41\x19\x07\xd0\xa2\xa0\x8c\xcd\xea\x01\x65\x3c\x35\xca\x38\x16\x05\xff\x70\xbb\x13\x43\x3c\xca\xc6\xdd\x85\x56\x9f\x8a\xa2\xa9\xe4\x6d\x03\xaf\xc1\x7e\x53\x51\x34\xa1\x1f\xd5\xc0\xdd\xfd\x6f\xdf\xda\x6e\xc6\xa6\xe5\x2d\x19\x5c\xad\x22\x69\x0f\xe3\x79\x81\x38\xea\x2b\xb5\xbb\xdf\xd4\xbf\xa0\xfb\x70\xeb\xb6\x41\xd6\xda\x4f\xfd\xf2\x7c\xfb\x4c\x16\xa9\x24\x11\x91\x5f\x17\x76\x39\x63\xc4\x3e\xa8\x65\x24\xfd\x12\x1e\x3d\x80\xfc\xbf\x7b\xe9\xe2\x9f\xa8\xe8\x5f\xa9\x4e\x75\x2f\x67\x89\x00\x1f\x01\x1f\x01\x1f\x01\x1f\x9d\x1b\x3e\xea\x76\x0a\x4d\x2b\x42\x3a\xd8\x01\x41\x38\xc7\xa9\x73\x43\x1d\xf3\x1c\xa7\x83\x31\xbf\x2d\x4e\x4e\x6a\x65\x5e\x07\xab\x91\xdf\xeb\xd6\xbd\x4c\x99\xb6\x46\x37\x1b\x8b\x89\x0d\x4e\x0a\xfe\xe1\x4a\x4a\xb8\xd9\x8b\xba\x4e\xed\xe4\xaa\x54\xa5\x37\xa9\x98\x72\xea\xa0\xce\x3e\xaf\x9f\x70\x65\x59\x51\x18\x1a\x4e\x44\xca\xd9\x4c\xc4\x92\x17\x22\x99\x57\x51\x43\xd5\x92\x2b\x93\x6b\x67\x7f\x53\xa5\xb3\x69\xce\x23\x1a\x35\x52\xc5\x41\x10\x54\x8b\x36\x85\x64\xf9\x5e\x5a\x6a\xf3\x91\xf5\xe6\xe2\xe6\x4e\x5f\x20\xf7\x92\x89\x9d\x03\xfd\x23\x46\xf6\x3b\xed\xa9\x9d\x2d\xdf\xb8\x43\x33\xd3\x37\xdf\xd3\x27\xb7\xf9\x34\x36\x78\x35\x86\xd2\xfd\xb7\xc1\xbd\xdd\xea\x65\x35\xf2\x3d\x58\xf7\x07\xfc\x05\xfc\x05\xfc\x05\xfc\x05\xfc\xdd\x1b\xfc\xed\xb8\x16\x2c\x01\xe0\xc3\x2d\x8b\x9f\x6a\x1b\x4c\xb2\x44\x70\x2d\xc2\x14\x74\x9f\xab\x8c\x4f\x49\x1d\xdd\xab\x44\x46\xf3\x46\xa8\xb1\xef\x74\xd5\x0e\x15\xd3\xed\x3e\x8c\xfe\x32\x62\x0f\x76\x3e\xb3\xd2\x25\x13\xa9\x19\x2c\xd5\x9a\x2a\x98\xca\xb3\x47\x9e\xfa\xd0\xe7\xbc\x14\xb7\x13\x9e\x78\x5b\xf9\xfb\x5b\xfb\xf3\xf7\xb7\x6c\x22\x53\x9e\xc8\xff\xf8\x85\x64\x2c\x18\x8f\x09\x99\xa9\x5b\x8b\x13\xe2\xca\x0c\xb3\x8f\xbf\xd2\xd5\x4d\xd6\x3e\x1d\xb1\xff\x9f\xbd\xb7\xeb\x71\x13\xd9\xfe\x7f\xef\xf3\x2a\x4a\xbd\x2f\x9c\x68\xd2\xee\xd3\xd1\x91\x76\x34\xa3\x73\xd1\x93\x74\xb6\x32\xbf\xc9\x6f\xac\xc9\x68\xef\x9b\x1e\xfd\xff\x65\x28\xd3\xa8\x31\x85\x00\x27\xd3\x5b\x9a\xf7\x7e\x54\xab\xaa\x78\x32\x36\xd8\x0d\x36\xe0\xef\x55\x9c\x36\x60\x58\x55\x54\xad\xb5\x3e\xeb\xe1\xde\xa7\xc5\xb1\x70\xeb\x32\xde\x7e\xb6\x1c\x90\xa6\xda\x3c\x26\x1b\x45\xa6\x8f\xc7\x0c\xa8\x7e\x82\x8f\xf6\xd9\x77\xaa\x3c\x47\xd5\x14\x3f\xc8\x30\xa3\x47\x57\x2f\xec\xa3\xfc\xce\x3c\x1e\x2f\xb9\x57\xf2\x5d\x66\x46\x8d\x88\x57\x32\x5e\xab\x31\xa9\x95\xd7\x6f\x95\x27\xda\x2d\x2e\x52\x7a\xad\xc6\x1a\x69\xd9\xfa\x4a\x9b\x74\x7c\x37\x37\x85\x49\x57\xd0\xa5\xdf\xed\x18\xab\xcd\xda\xec\xa4\x56\x1b\x98\x17\x06\xd3\xee\x23\x19\xa1\xcc\xc2\xf8\xcb\x3f\x36\x67\x77\x8e\x23\x22\x5d\x13\xb6\x68\xd9\xcd\xf4\x33\xcc\xd8\xb5\x99\x80\xe5\x09\x9a\xfc\xc4\x66\x3f\x73\xe7\xc9\x8b\xe5\x26\x74\xd5\x51\x14\x12\x4f\x07\x55\x04\xa7\x55\x48\xa3\x1f\x97\x2f\x62\x9f\x60\x99\x5d\xe9\x27\x36\xfb\x24\x63\x51\xb8\x2c\x73\x78\xe2\x70\x57\x3d\xbd\x91\x8f\xce\x98\xa0\xeb\x25\xda\xf4\xdc\xba\xe0\x2a\xbb\xc6\x31\x13\x32\xaa\x4e\xf7\xf3\x68\x9c\x13\x0e\x65\x68\x37\x0e\xfb\xc2\x19\xce\x35\x0a\x08\x6c\xe8\x6d\x7c\xb7\x83\x1b\x4e\xe7\xdb\x38\x67\x98\x43\x3b\x61\xed\x09\x75\x78\xa9\xfe\x53\x0b\xf2\x40\xa2\x0f\xc4\x74\xa6\xaf\xc1\xb4\x01\x74\xe1\xec\x1d\xe9\xa0\x7a\x63\xce\x95\xa6\xc1\x67\x86\x56\x1e\x71\x3b\x3d\xb4\xf3\x24\x77\xed\x41\x8b\x8d\xd5\x6d\x55\xfd\xc6\xfc\xf6\x3d\x74\x5c\x5d\xb1\x8e\x8d\x77\x49\xc4\x91\x01\x7b\x39\x19\xb0\xed\xb6\xa4\xa6\x2c\xd8\xd3\xd9\x6e\x08\x68\x40\x40\x03\x02\x1a\x10\xd0\x80\x80\x86\xba\xc5\x17\xa4\x7c\x44\x12\x01\x3c\x05\x3c\x05\x3c\x05\x3c\x05\x3c\x05\x3c\x9d\x16\x3c\x05\xcf\x00\xcf\x00\xcf\x00\xcf\xe8\x9d\x67\x1c\xc0\xfc\x07\x9a\xc4\xd9\x4e\x84\xdb\x89\x9c\x93\xea\xc0\xbe\xf3\x84\xcb\x2a\x40\x5a\x6d\x75\x4a\x9e\xfd\xdd\xfd\x4e\x2f\x20\x0b\xb2\x19\x42\x8d\xa2\x33\x60\x23\x78\x3a\xa2\x2e\xe9\x58\x8a\x79\xbc\xaa\x0c\xe5\x55\x24\x93\x8e\x29\x9b\x36\x75\x18\x3f\x0a\xa8\xe9\x93\xfb\x46\x6a\xc3\x6e\x68\xdf\xb0\xd0\xa0\xab\xfd\xe5\x64\x43\xa1\xab\x3d\xba\xda\xd7\xdc\xcc\x58\x75\xa4\x51\xb5\xb6\xef\xec\x59\xde\x35\x3e\x8b\x8e\x05\x1e\xc1\xc3\x4c\x56\x71\x25\x35\x68\xac\x8a\xeb\x2b\xd6\x51\x55\x92\x9a\x4e\x23\x3d\x16\x27\x39\x4e\x43\xdc\x5d\x90\xe4\xfc\x1a\xe2\x48\xca\x90\x40\xf9\x2b\x0e\xf2\x60\x95\x3f\x24\x7e\x5f\x50\xe2\x37\x32\xdc\x90\xe1\x86\x0c\x37\x64\xb8\xc1\x6e\xdd\xf5\x16\x0d\x32\x9d\xe4\x3c\xd6\x1d\xb2\x61\xb2\x23\xf7\x66\xc3\x8c\xd6\xa2\xcb\xdc\xf3\x9d\xe7\xc0\xc4\x82\xbb\x15\xc5\xec\x18\x2b\x4c\x5d\xe6\xc4\x89\x2f\x05\x6d\x46\xfc\x45\xe1\x6c\x4b\xf5\x89\x3b\xe9\x9c\xb1\x7b\xf5\xaf\xfd\xfb\x9a\xfb\xe4\xa0\x4c\x98\x13\x6c\x92\x54\xc4\xf9\x1e\xa5\xe3\x5e\x59\xe0\x3f\x09\x36\xfb\x5f\xbe\x16\x49\xc4\x1d\x31\x53\xaa\xa8\x55\x9f\xe6\x6c\x11\xf0\x30\x14\x5a\x87\x25\x05\x87\x07\x5a\xa7\xba\x7d\x7f\xcc\xa2\x4f\xf7\x78\x26\xd5\x23\x13\x5a\xa6\xb9\x2f\xad\xf8\xd4\x93\xb2\x7b\x2d\x31\xb5\xdd\x44\x89\x95\x8e\x89\xf8\xda\x24\x22\xa6\x50\xad\x5c\x09\x7f\xee\x59\x50\xea\x66\xa6\x0b\xd6\x87\xbd\x27\xc2\x65\x78\xd8\x16\xe3\x89\xf1\x7a\x0c\x5f\x82\xba\xd1\x96\x63\xa0\x24\x9f\x62\x6a\x8e\xaa\xe8\x7e\x4d\xe7\xfe\xb0\x7f\xcd\x5b\x8b\xd8\x13\xad\x8e\x4c\xd2\x98\xa7\xc2\xf3\x9d\xeb\xf6\xe7\xa8\xcf\xcf\xe6\x48\x5a\x5d\xdb\x28\x33\x11\x8f\x53\x9f\x52\xde\x74\xfc\x57\x07\x8a\x4d\xb4\xdd\x2d\x7a\x28\xde\xe5\xbe\xe2\x0f\xf6\x58\x13\x8b\x72\x9c\x16\x83\xcf\x79\xe2\x3e\xe7\xcb\x09\x38\xa8\x64\x97\xd8\x97\x4b\x67\x40\xa9\xc5\x28\xcf\xaa\x7f\xbd\x63\xa1\x7a\x43\x1e\x37\x9d\xf6\xcc\x03\x3a\x33\x94\xe1\xb5\x3e\x9b\x8e\x20\xa7\x77\xc2\x5e\xff\x92\xc8\x70\xa1\x93\xcb\xbf\xa8\x25\xd1\x7c\xfe\x6a\x17\xca\xfc\x8f\x6f\x86\x14\x09\xd1\x7e\xde\x7c\x92\xb1\x43\x54\xc0\x93\x34\xf8\x92\x3d\x5c\xad\xd4\xdf\x1e\xae\xd8\x5d\x49\x9a\x14\xbb\xae\x5d\xf8\x64\x60\x98\x17\xf5\x9a\x3b\x34\x00\x94\x9e\x1c\xf8\x8e\x71\x4a\x92\x3d\x22\xbf\x9b\xb1\xd5\xe9\xbb\x91\x90\x51\x20\xe6\x4c\xff\x26\x55\x25\xb0\x73\x8a\x22\xc8\x6b\x07\x22\xfb\xf9\x63\xc4\xab\x7e\x08\x66\x89\xfe\x02\x66\xc9\xb0\xcd\x92\xa8\x12\x98\x3d\x56\xc3\x64\xd3\xb9\xe3\x2b\x0a\xb8\xd3\x85\x8a\x68\xae\x74\x59\x4a\x22\x82\x54\xa1\x33\xee\x18\xa6\xcb\xd1\x19\x07\xa4\x9a\x41\x83\xc8\xbe\x41\x90\x2a\xb4\xa1\x9d\xda\xd0\x66\xbc\x4e\xda\x57\xac\xdb\xb0\x4e\x65\xba\xc6\xf2\x1b\x0f\x8e\xea\x02\x79\x10\x60\xb4\xbf\x64\xf7\xc5\xd3\xc2\xc6\x3b\xfb\x9c\x58\x1a\xb1\x9c\x74\xba\x9c\x80\xf9\x80\xf9\x80\xf9\xd4\x1d\x79\x3e\xe6\xd3\xed\x5e\x73\x30\xff\xa9\xdd\x6c\x46\x69\xe2\x83\x03\xc1\xa6\xbf\x3c\x9b\x1e\x1c\xa8\xcb\x79\x03\x0e\x04\x2f\x0e\x4c\x95\x21\x98\x2a\xe0\x40\xf5\x83\x69\x39\x50\xd7\x2e\x8a\x83\x99\xd0\x74\x14\x47\xb0\x21\xe8\x91\x3b\x86\xe9\x72\xf4\xc8\x01\xa9\x6b\xd0\x2a\xb2\x6f\xc0\x86\xa0\x21\x81\x0d\xb5\x60\x43\x89\xce\x1b\xec\x9d\x0c\xe9\xdf\x39\x0f\x17\x32\xb9\x91\x58\x14\xb1\x90\x74\xba\x90\x80\x0a\x81\x0a\x81\x0a\xd5\x1d\x79\x3e\x2a\xd4\xe5\x3e\x73\x30\x13\xaa\xd9\x68\x46\x69\xd8\x83\x08\xc1\x92\xbf\x3c\x4b\x1e\x44\xa8\xcb\x79\x03\x22\x04\xdf\x0d\xcc\x94\x21\x98\x29\x20\x42\xf5\x83\x69\x89\x50\xb7\xae\x89\x83\x79\xd0\x54\x94\x46\xd0\x20\xe8\x90\x3b\x86\xe9\x72\x74\xc8\x01\xa9\x6a\xd0\x28\xb2\x6f\x40\x83\xa0\x1d\x81\x06\xe9\x86\x74\x7b\x98\x50\xaf\x14\xc8\x74\x6d\x0d\x5d\xff\x9b\xef\x6e\x78\x50\xec\x00\xc7\xb3\x3e\xcd\x3b\xa5\x33\x2f\x14\x3a\xfe\x31\x2b\x91\x3c\xa3\xab\xce\xf2\x0e\xfe\xa5\x96\xec\x99\x6e\xc6\xfc\x30\x49\x05\x2f\x79\x6b\xab\x9a\xdb\xf7\x43\x9d\x7d\xbf\x56\x7a\x5e\xa1\x6d\xdb\x50\x4b\xbb\x52\xd7\xc1\xfb\x6f\x22\xc4\x6a\x47\x23\x79\xb1\xdd\xda\xa8\xa2\x34\xcd\x86\x9f\xa5\x7c\x5a\xf3\xf8\x29\xc9\x7d\x7a\x7a\x81\xa2\x4e\xdf\x89\xd1\x47\x9f\x23\xc1\x1e\xae\x7e\xfe\xed\xb7\xff\xf9\x72\xf7\xfb\xff\x3c\x5c\xe5\xbd\xb6\x75\xc5\x68\x49\xe6\x84\xbf\x8e\x02\x41\x4d\xb5\x97\xd9\x55\xd7\xfc\x99\xf9\x5e\xa8\xeb\xf5\xfb\x89\xf6\x49\x29\xcd\x33\x3f\x84\xc7\x82\x15\x7b\x12\xeb\x06\xd6\xb3\x84\xb9\x7e\xe2\xc4\x42\xdd\xf3\x9c\x7d\x28\xf7\x11\x57\x3f\x67\x1a\x69\x97\x2f\x94\xb5\xb6\xe6\xa9\xee\x0f\x6d\x0b\x9f\xfa\x61\x2a\xe2\x6f\x3c\x78\xcb\x42\x19\xd3\x6d\x51\xe7\xe5\xac\x1b\x77\xb5\xa1\x7b\xe8\xd2\xf9\xf6\x99\x4d\xe7\xf3\xac\xef\x72\xa2\xac\x19\x75\x63\xb6\x2d\x80\x69\xd0\xcd\xb5\xf8\x4a\x15\xea\xd5\xb7\x24\x02\x53\x68\xfe\x51\xb0\x95\xe0\xe9\x26\x16\xcc\xe3\xa9\x60\x95\x81\x30\x57\x12\xa1\x52\xc5\x75\xa3\xeb\xc8\xd7\x37\xb7\xeb\xb2\x07\xc2\xb7\x9a\xe1\xaf\x27\x71\x75\x1e\xbc\x0e\xc0\xe2\x1f\xc5\x5e\xe9\xda\x49\x5c\x68\xe1\x90\x88\x54\x37\x26\x37\xcd\xee\x95\xc0\x4b\x5d\xd2\xb3\x5a\xfb\x5a\x28\x73\xf6\xd5\x0f\x1d\x51\xe9\xce\x60\x46\xd3\x98\x2e\xe5\x16\xec\xa5\x2e\xf4\xd9\x8d\xe8\x53\xe9\xe2\x5c\xd9\xd2\xdf\x7c\xb9\x49\x4c\xeb\x7d\xdb\x13\x5b\xbd\x0d\x79\x63\x74\xfd\x5d\xfe\xfe\xb1\xd7\xe2\x2f\x47\x44\x79\xfb\x5b\x7d\x49\xb9\xca\x7e\xe4\x4d\x56\x3e\xde\xdc\x9f\x6e\xcf\x4f\x3d\x1f\x78\xf5\x56\x7c\xf5\x66\x09\x3d\x1b\x32\x63\x3c\x9b\x42\xb9\x7f\xa6\x7a\x9a\x3a\x83\x6c\x3c\x11\x33\x6d\xcf\xdb\xee\xf9\xee\x46\x28\x35\x43\xfc\x15\xf9\x46\x21\x78\xed\x89\x50\xc4\x04\x0e\x57\xca\xb0\x4f\x25\x5b\xf9\xab\x54\x88\x90\xad\xfd\x70\x93\x8a\xe4\x8d\x32\x20\xe9\xde\x56\xbe\x67\xbb\x71\x68\x9d\x85\xc9\xb0\xf0\x2c\x6f\xb7\xde\x22\xbd\x27\xba\x56\x17\xf9\x7f\x6f\xff\x1f\xf6\xbb\xa9\x9a\x7f\xaf\x6e\x41\xb8\xc6\x6d\x90\x4a\x4f\xdf\xa0\x39\x32\x7b\xa2\x54\x3e\x89\x30\x7b\x64\xd3\x82\x3d\x14\xc2\xad\x74\x6e\x57\x2b\xf9\x5b\x25\x30\x32\x7f\x63\x91\xa4\x5c\xb7\xfb\xf7\x4d\xb3\x67\xdb\xa5\x7e\xbb\x4d\xff\x9c\xfd\xa6\x7e\xfa\xbb\x6f\x1b\x3f\x98\x5f\x51\x23\x63\x96\x01\xed\x5c\x37\xcd\xd1\x75\x37\xf0\xcc\x4e\xa7\x3b\xb4\xed\xdf\x0b\xf6\xbb\x7a\x58\x7a\xb8\x46\xb1\xd0\x75\xe9\x86\xc9\xb1\x6f\x27\x77\x28\xfe\x4a\xd9\x93\x78\xd6\x6d\x0d\xb2\x3f\x07\x6a\x93\x29\xb6\xaa\xff\xfe\xe8\x2b\x7d\x32\x61\x7e\x58\x10\x48\x76\x7c\x36\x91\x0b\xbd\xdd\x13\x76\x9d\xb5\xc1\xd0\xb5\x8e\x63\x71\x60\x87\xfe\x8a\x30\xb6\x9b\xf3\x9b\x16\x09\xa4\x13\x91\x13\x41\x4d\x48\xf5\xaf\x1e\x94\x27\xf1\xac\x17\xec\xfc\xc2\x0f\x57\xf6\x91\x1f\xae\xa8\x35\x76\x19\x43\x51\x11\xe6\x4d\xa4\x2b\x37\xeb\x05\xc2\xa8\xd2\x09\x2d\x42\xf9\x1e\x41\x23\x47\x13\xc0\xac\xc6\x45\xe9\x25\x5b\xdd\xc1\xcd\x6b\x93\xed\x1c\xa6\x33\x84\x19\x31\xed\xc8\x4a\xd9\xda\x4f\x12\xda\x11\x4a\xde\xb4\x43\x57\x5e\x3b\xf5\xba\x09\x7c\x68\xb7\xda\xde\xb1\x44\xe4\xdd\x22\xd4\xbb\x11\xfb\x4e\x9a\xb5\xe7\x56\xcb\x53\xf6\xec\x59\x73\x94\x67\x33\x4e\x9a\x33\x95\x3b\xd5\x88\x6f\x22\x7e\x4e\x1f\xfd\xd0\x3b\xf4\xf1\xe9\x6a\x5f\xcd\xdd\x8c\x46\x06\x01\x5f\x8a\xa0\x33\x19\xd0\xd5\xce\x21\x03\xea\xba\xae\xbd\x8e\x6b\xfe\x97\xbf\xde\xac\x59\xb8\x59\x2f\x45\xac\x9f\xde\x98\x2f\x5a\x3e\xd4\x6c\x9c\x78\x6f\xde\x2b\x9f\x96\x61\xda\x88\x7d\x75\x17\xba\x75\xca\xf6\xea\xa6\xb6\x6f\xf5\xb7\xff\x6b\xe7\xfa\xff\xb5\xdd\x5b\xc2\x5c\xde\xb6\xb1\x8a\x36\x7a\xf5\x0b\x48\x2b\x91\xc3\x43\xdb\x1e\x29\x5f\x4b\x13\xbe\x56\x8b\x8b\x9f\xfa\xd9\xa6\xab\xef\x52\xa9\x07\x22\x5f\x2d\xd5\x4f\xeb\x67\x51\xc3\xa4\x94\xd4\x34\xd5\xea\x9a\x7e\x76\xbd\xd9\xea\x67\x13\xdf\x69\xd9\xe1\x61\xd1\x1b\xad\x16\xba\xb5\xdc\x84\x74\x19\xfd\x94\xaf\x37\x91\xfa\x31\xdd\x20\x4a\xfd\xe5\x8d\x5d\xdd\xb4\x46\xc8\x69\x41\xb7\x67\xdb\xb9\xa3\x56\xb6\x95\x1f\xa4\x42\xed\x71\x6a\xdf\x51\xcb\x88\x53\xd6\x61\x4b\x5a\x88\xf6\xdd\x3b\x59\x38\x59\x79\x8f\xd2\x6d\x5e\x52\x11\xaf\xfd\x50\x64\xbb\x79\x49\x29\xa2\xb5\xf4\x1b\xf7\x03\xa5\x35\xe6\xfa\xb9\x7a\x64\xe7\x51\xca\x84\xfa\xc1\xab\xeb\x98\x35\xd4\x8c\x85\x12\x0b\x8f\xbd\x0d\xa9\xed\x3c\x74\xed\x0e\x45\x42\x52\xcf\x66\xee\x27\xbb\x74\x2e\xdd\xcf\x2b\x96\x4d\xa9\x5c\x19\xb1\xfa\x4d\xe5\x01\xfc\x84\x89\x75\x94\x3e\x97\x15\xb1\x4c\xfb\xe6\xa9\xd2\x59\xf6\x3d\xd0\xbe\xcd\xc0\x5f\x55\xb6\x02\xbd\x7b\x64\xf3\xd2\xdb\xf0\x98\x87\xa9\xb0\x40\x24\xef\xd3\x94\xe4\xaf\x3d\xed\x28\x1b\x42\x14\xd9\xbd\x67\x1b\x5b\xa6\xf2\xa5\x92\xf9\x49\xb2\x31\x46\x80\x1f\x7a\x81\xc8\xdf\x90\x4c\xcb\xb0\x13\xee\xda\xba\xed\x95\xd5\x91\xfd\xe4\x61\x3b\xad\xdd\x64\xc9\xc6\x48\x36\xc2\xad\xdd\x6e\xc9\xd6\xd9\x2c\x13\x75\x70\x98\x66\x4f\xe0\x16\x82\x0b\xfe\x30\x66\x4a\x22\xd7\x22\xf5\xd7\x42\x3d\xfb\x4a\xc4\x31\x35\xb2\x52\x3b\x73\x49\xa3\xca\x15\x0c\x35\xa2\x22\x4c\x36\xb1\xc8\x3a\x23\x18\x15\xc9\x32\x09\x2d\x35\xfd\xc8\xf4\x62\x92\x32\xc4\x92\x35\x0f\x02\x11\x33\xe7\x71\x13\x3e\x11\x57\xe4\x4c\x2d\x9b\x2c\xe0\xb1\x67\x07\x9a\xde\x78\x7d\x79\x6d\x91\x25\x42\xd0\xc4\x8b\x64\x92\xf8\x6a\xc2\x19\xb1\xd1\x84\x2b\xbe\x5f\x3a\xd0\xcd\xcd\x6d\x32\xfa\x1d\xe1\xea\xf1\x20\xf5\xdb\x6c\xf0\x66\x0e\x9b\xde\x6a\x74\xd7\xdf\x79\x62\x79\x99\xb5\x3b\x95\x4c\xb6\x35\x1c\xad\xf7\xf3\x44\x0d\xb0\xb3\x09\x74\x7f\xb1\x7c\xda\x1c\xbc\xfa\x2b\x21\xd5\xaf\xfa\x75\x0d\xd6\x2e\x28\x8a\xb3\xdd\xd3\x54\x75\xb7\x44\xa4\x76\xe2\xa6\x31\xf7\xd5\xca\x1d\xb2\xef\x6a\x84\xed\x91\x76\x16\xa8\xc3\xec\xbb\x94\x35\x0d\x8b\x6d\xef\x36\xb5\x62\x8a\x8c\x6e\x15\x5c\x80\xbe\xbc\x71\xa5\x93\xdc\xd0\xbb\xa2\x56\xe8\x1b\x9a\xed\xd7\x3c\xf2\x6f\x78\xe4\x5f\x3b\x32\x54\x26\x5f\x72\xf3\x8f\xac\x21\x58\xf6\x83\x2b\x7a\xad\x53\xee\x07\x09\x2d\x49\x45\x05\x82\xe2\x71\x0e\x14\x77\xe5\xe1\xcf\x28\xf7\x2f\xb4\xdc\x66\x5b\x52\x42\x6d\xdd\xaa\x63\xa3\x54\x8d\x28\x0a\x7c\xbd\xc0\x64\xab\xa4\x8e\x73\xf2\x13\xf6\xe8\x7b\x8f\x14\xfe\xe4\xc8\xf5\x5a\x84\xd4\x51\xaf\x38\x72\xa5\xdf\x32\x8e\x01\x25\xd2\xfc\x4a\x6a\xd1\x8e\x45\xdd\x0f\xab\x63\xc7\x37\xa2\x5f\xb6\xbd\xd3\xfd\x0e\xeb\x1f\xfe\x5a\xa8\x0d\xcb\x3a\x2c\x94\x68\x35\x1e\x31\x2a\x1f\x6d\x1a\xb4\x68\x25\xba\xc3\x9c\xf5\x00\x58\x3d\x85\x07\xc1\x5b\x16\x0b\x8f\xc7\x2e\x21\x67\xb5\xca\x87\xcf\x8c\x3b\xa9\xff\xcd\x4f\x9f\xd5\xce\xe6\x87\xf6\x7f\x87\xae\x2f\xa9\xbe\xbd\xba\xce\x94\x7d\x2f\x9b\xff\xd1\x86\xa3\x8c\x8b\x7c\x46\xf7\xd8\x53\xc7\x2d\x69\x6b\xd5\x83\xa7\x7b\x02\x1a\x9d\x29\x7d\x14\x6b\xbd\x99\x6a\x66\x40\x02\x71\xdd\xb7\x66\xbb\x7a\x6b\x8e\x5d\xcb\x6f\xa4\x91\x15\x4c\x49\xf6\x55\xb7\x18\xaa\x4e\xe7\x43\x85\x56\x83\x38\x8e\xf6\xe7\x99\x4f\x7f\x76\x0c\xd8\x6a\xfa\x2c\xf7\xc4\xd9\x8a\x70\x2d\xb4\x1a\x80\x5c\xb1\x27\x3f\xdc\x13\xd8\xd4\x09\x64\x7b\x9b\x5b\x00\x64\xe5\x18\x6d\x51\x19\x11\xb9\x69\x33\x2b\x99\xc4\x85\x6b\x77\x8a\xe8\x80\xe7\x80\xe7\xc6\x87\xe7\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x80\xe6\x46\x8f\xe6\x50\x3f\x06\xe4\x11\xe4\x11\xe4\x71\x00\x23\x0a\xf2\x58\x16\x0f\xc8\xe3\x80\xc9\xa3\x94\xb1\xeb\x87\x74\xf3\x96\x3c\x1e\x85\x12\xcf\x92\xec\x5b\x19\x6d\x4f\xa4\xcc\x0f\x57\x32\x5e\x67\xb3\x9b\x33\x8d\x2f\x76\x03\x40\x4f\xa4\x1f\x0a\x42\xb8\x5b\x7c\xfe\x57\xf5\x0c\x24\x38\x1f\x48\xdf\x32\x21\x8e\x9d\xbd\x15\x26\x46\xe1\xac\x57\xc5\x5f\x6e\x7e\x9f\xbe\xdd\x8e\xfb\x95\x2a\x19\xc5\x7a\xad\x6c\xff\x3e\xfd\xfb\xf6\x6e\xf1\xf9\xf7\xba\xf3\xf0\x56\x1d\xfe\x56\x59\x41\x52\x9e\xf0\x84\x5e\xae\xff\xf3\xed\xf6\x45\xef\x57\x20\x78\x79\xec\xba\x8f\x81\xd1\x0e\xd4\xd8\xb8\x60\xac\x85\x6e\xc3\x5f\x7e\x55\x37\xb0\xe7\xad\x50\x67\x97\x5f\x0b\x3a\xe3\x93\x8c\xef\x82\xe0\x7f\xf9\x5a\x24\x11\x1f\xc8\xfb\x81\xe0\x12\x53\xf3\xa2\x38\xd5\xbe\xdd\xce\x69\xc0\xa6\xfd\xe2\x35\x07\x93\x74\x96\xe6\xbd\xfd\x1e\xd7\xc7\x92\x54\x5f\xac\x6a\xdc\x08\x42\x46\x10\x32\x82\x90\x11\x84\x8c\x20\x64\x04\x21\x23\x08\x19\x41\xc8\xc8\x21\xab\x2d\x42\x46\x10\x32\x82\x90\x11\x84\x8c\x20\x64\x04\x21\x23\x08\x19\xb9\xb8\x90\x11\xc4\x54\x20\xa6\x02\x31\x15\xe3\x18\x51\xc4\x54\x94\xc5\x83\x98\x8a\x71\xc5\x54\x7c\xbb\xbd\x09\x33\xca\xa3\x53\xb6\xe9\xf3\xdf\x35\xe8\x4a\xeb\x3b\xdd\xd2\x2b\x7d\x4d\xe6\xc8\x40\x99\x57\x66\x9a\x36\x41\x2b\x7d\x52\x19\x5b\x7d\xc8\xae\x90\x51\x2b\x77\xeb\x3a\xfd\x36\x9b\xe8\x05\xae\x7e\xa4\x67\xfd\x8d\x04\x96\x74\xd2\x47\x02\xbe\x5c\xf8\x72\xe1\xcb\x85\x2f\x77\x6a\xbe\xdc\x76\x1d\x48\x6a\xfd\xb9\x27\x6b\x0e\x83\x1e\x3e\xad\x07\xea\x9c\x3d\x7c\x4e\xe6\x80\x3f\xa0\x6b\x4e\xad\x03\xfa\x64\x12\xf9\xa3\x68\x49\xf8\xca\x8a\x27\x05\x9f\x2d\xc5\x4a\x47\x0a\x64\xce\x9a\x5c\x95\x30\xab\x17\x4d\x9d\x42\xd7\xa2\x50\x86\xd7\xa1\xf0\x38\x4d\x50\x63\x0b\x14\xbb\x1b\x69\xc7\x6d\xf6\x6a\x18\x0d\xd1\x5f\xaf\x85\xeb\xf3\x54\x04\xcf\x39\xc2\xcf\xb7\x5c\x3f\x78\x6b\x74\x7d\x12\x3a\xf3\x62\xee\xd0\x5b\xe3\x4b\x37\x53\x08\xf2\x4d\x9b\xe2\x23\xec\x2c\xdd\x24\xea\x26\x8b\xc3\xc5\xd5\x99\xf6\x81\xcc\x8f\xac\xf4\x1a\x68\x2f\x31\xd7\xf7\xa9\x5b\x39\xd6\xdc\xe3\x11\xc3\x4c\xf7\xbc\xa0\x5b\xae\xb3\x9f\x1a\x2c\xa8\xa1\x4c\xff\x43\xd8\x4b\x3b\xb9\xec\xe6\x2f\x27\x9b\xfe\x20\x31\x20\x31\x20\x31\x20\x31\x20\x31\xbd\x91\x98\x96\x7b\xc1\x16\x8d\x39\xdd\xb6\xf8\xb1\x50\x2f\x30\x22\xf7\x58\xb6\x04\x2d\x62\x19\x71\x8f\xb4\xa3\x85\x0c\x7c\xe7\xb9\x14\xf7\x67\x27\x5d\x5e\x70\x50\x4d\xbb\xdb\xf9\x3f\xe7\xec\xab\x5e\xcf\xb4\xea\x12\x89\x50\xbd\x2c\xf9\x9e\x2a\x98\x8c\xa3\x47\x1e\xda\x38\xc4\x78\x23\x6e\x56\x3c\xb0\xb6\xf2\xc3\x95\xfe\xfa\xe1\x8a\xad\xfc\x90\x07\xfe\x7f\xed\x46\xb2\x14\x8c\xbb\xe4\x9e\x97\x37\xda\x75\xe9\xe6\x66\x98\xbe\xfc\x2c\xc9\x4f\xd2\xf6\xe9\x9c\xdd\xfb\xb4\x38\x16\x6e\x5d\xc6\xdb\xcf\x96\xc3\x98\x54\x9b\xc7\x64\xa3\xc8\xf4\xf1\x98\x01\xd5\x4f\xf0\xd1\x3e\xfb\x4e\x95\xe7\xa8\x46\xd3\x07\x19\x66\xf4\xe8\xea\x85\x7d\x94\xdf\x99\xc7\xe3\x25\xf7\x4a\x8e\xc9\xcc\xa8\x11\xf1\x4a\xc6\x6b\x35\x26\xb5\xf2\xfa\xad\xf2\x44\xbb\xc5\x45\x4a\xaf\xd5\x58\x23\x2d\x5b\x5f\x69\x93\x8e\xef\xe6\xa6\x30\xe9\x0a\xba\x1f\xb8\x1d\xe3\x84\x12\xca\xe8\x5b\xab\x0d\xcc\x0b\x83\x69\xf7\x91\x8c\x86\x64\x31\xb5\xe5\x1f\x9b\xb3\x3b\xc7\x11\x91\xee\x07\x5a\xb4\xec\x66\xfa\x19\x66\xec\xda\x4c\xc0\xf2\x04\x4d\x7e\x62\xb3\x9f\xb9\xf3\xe4\xc5\x72\x13\xba\xea\x28\x8a\x4f\xa5\x83\x2a\x82\xd3\x2a\xa4\xd1\x8f\xcb\x17\xb1\x4f\xb0\xcc\xae\xf4\x13\x9b\x7d\x92\xb1\x28\x5c\x96\x39\x3c\x71\xb8\xab\x9e\xde\xc8\x47\x87\x2f\xd3\xf5\x12\x6d\x7a\x6e\x5d\x70\x95\x5d\xe3\x98\x09\x19\x55\xa7\xfb\x79\x34\xce\x09\x63\xd3\x76\xe3\xb0\x0f\x9d\x9e\x6b\x14\x00\x51\x7b\x1b\xdf\x6d\x90\x7a\x3a\xdf\xc6\x39\x91\x6a\x3b\x61\xed\xc1\xaa\x2f\xd5\x7f\x6a\x29\x1d\x72\x20\x0f\xc4\x74\xa6\xb1\x7d\x3b\x3e\x37\xc9\x0c\x2c\xbd\x27\xe7\xfa\xd2\x68\xb2\xb1\x06\x9f\x91\xd9\x01\xd0\x46\x36\xd9\xe5\x64\x93\xb5\xdb\x51\x9a\x32\xca\x4e\x67\x7a\x21\x1e\x01\xf1\x08\x88\x47\x40\x3c\x02\xe2\x11\xea\x16\x5f\x80\xee\x11\x49\x04\xec\x13\xec\x13\xec\x13\xec\x13\xec\x13\xec\x73\x5a\xec\x13\x38\x02\x38\x02\x38\x02\x38\xa2\x77\x1c\x71\x00\xb2\x1f\x68\xbe\x57\x3b\x11\x6e\xe7\x7c\xbd\xd4\xe3\x36\x28\x90\xb3\xf3\x04\x14\xeb\x43\xb1\xbe\xa9\x17\xeb\x33\x0a\x23\xb5\x7e\x50\x8b\x89\x1a\x1d\x96\x38\x32\x12\x6f\x59\xb2\x71\x1e\xd5\xea\x43\xab\xbb\xe0\x6b\xbd\x34\x45\xb1\x24\x05\xb5\x2e\x71\x74\x7f\x23\x08\x02\x43\xe5\xaf\xd1\x0d\xa2\xe9\x69\xcc\xa7\x3f\xf3\x41\x96\x49\xc7\x10\x50\x1b\x6b\x8c\x37\xf2\x3e\x7d\x60\xe7\xc4\xef\xb8\x14\xd6\x3d\x53\xa7\x87\x75\xb0\x93\x74\x56\xa4\x54\x15\x07\x7c\xb0\x29\x55\xe4\x82\xf9\xc2\x43\xee\x89\x58\x3b\x13\xf5\xf2\x98\x24\xd2\xf1\xc9\x3a\xce\xdc\x76\x9c\xbc\xaf\x32\x66\x22\x4c\x95\xba\x6a\xdd\x05\x6b\xfe\xa4\xa4\x98\x3e\x8a\x44\x58\x9d\xaf\x98\x38\x64\x13\x8c\x48\xe7\x25\x17\x9d\x8c\xd9\xed\xbb\xf7\xea\xd8\x98\x3b\xc4\xe4\x02\x19\x7a\x5a\xc3\x23\x37\x9a\x23\xc3\x94\xfb\xa1\x5e\x93\xc8\x4d\x95\x1f\x4b\x9c\xc2\x10\x43\xb6\x7c\xce\x8c\x18\x4f\x06\x3c\xf4\xe6\x32\xf6\x6e\xa2\x27\xef\x66\x13\xfa\x8e\x74\xc5\xcd\x3f\x3e\x27\x0b\x75\x95\xa3\xfd\xde\x46\x38\x5d\x0e\xcf\xa0\x54\xc2\x31\x6a\x6a\x6d\xb5\xb4\x77\x2d\xb4\xb4\x0f\xda\x7d\x37\x9c\x5b\x7e\xd7\x78\xcb\x3a\x3c\x78\x38\xf7\x3c\x45\x65\x98\x54\x8f\x81\x2b\xc3\xaf\x58\x27\xc5\x44\xf4\x9f\xfe\x3e\x51\x4d\x91\x66\xd5\xab\xae\x8e\x08\xaa\x87\x40\xdd\x9a\x80\xba\x85\x7c\xed\x0b\xca\xd7\x46\x62\x1a\x12\xd3\x90\x98\x86\xc4\x34\x58\x8a\xbb\xde\xa2\x41\x66\x81\x9c\xc7\x02\x43\x12\xcb\x1e\x63\xcc\x98\x23\x03\x37\xc7\x32\xb7\x75\xe7\xa9\x2b\xb1\xe0\x6e\x45\xf5\x6a\x32\xa2\xd4\x29\x7d\xe7\xab\x14\x94\x11\xf1\x17\x45\xa1\x2d\xd5\x27\xee\xa4\x73\xc6\xee\xd5\xbf\xf6\xef\x6b\xee\x93\x47\x2f\x61\x4e\xb0\x49\x52\x11\xe7\x5b\x8c\x0e\x57\x65\x81\xff\x24\xd8\x2c\xbb\xc7\x99\xd2\x24\xad\xf6\x33\x67\x8b\x80\x87\xa1\xd0\x2a\x28\xe9\x27\x3c\xd0\x2a\xd1\xed\xfb\x63\xd6\x6c\xba\xc7\x33\x69\x0e\x99\xd0\x32\xc5\x7b\x69\xc5\xa7\x9e\x94\xdd\x6b\x89\xa9\xdd\x22\x4a\xac\x74\x4c\xa0\xd6\x26\x11\x31\x45\x58\xe5\x3a\xf4\x73\xcf\x82\x52\x37\x33\x5d\x1e\x3e\xec\x2d\x0d\x5e\xb9\xea\x46\xe0\x89\xc1\x3b\xe5\x5e\x42\xa8\x89\xbd\x18\xff\x48\xcd\x4f\xb7\x01\xcf\x43\x61\xce\x80\xed\xa3\x83\xed\x14\xb8\x73\x54\xab\xe1\x6b\x3a\xf7\x87\xfd\x2b\xf4\x5a\xc4\x9e\x68\x75\x64\x92\xc6\x3c\x15\x9e\xef\x5c\xb7\x3f\x47\x7d\x7e\x36\x47\xd2\x5e\xd0\x46\xaf\x8a\x78\x9c\xfa\x94\x57\xa7\x83\xcc\x0e\xd4\xb1\xe8\xd7\x06\xe2\xa7\xee\x2b\x44\x60\x8f\x5d\xb2\x28\x47\x7a\x31\x78\xaf\x27\xee\xbd\xbe\x9c\x60\x81\x4a\x7e\x8a\x7d\xb9\x74\x0e\x95\x5a\x69\xf2\xbc\xfc\xd7\x3b\x56\xa1\x37\xe4\xbb\xd3\x89\xd3\x3c\xa0\x33\x43\x19\x5e\xeb\xb3\xe9\x08\x72\x9f\x27\xec\xf5\x2f\x89\x0c\x17\x3a\x3d\xfd\x8b\x5a\xef\xcc\xe7\xaf\x76\x15\xcc\xff\xf8\x66\x48\x51\x0c\xed\xe7\xcd\x27\x19\x3b\xc4\x17\x3c\x49\x83\x2f\xd9\xc3\xd5\x4a\xfd\xed\xe1\x8a\xdd\x95\xa4\x49\xd1\xef\x1a\x06\x90\xad\x63\x5e\xd4\x6b\xee\xd0\x00\x50\x82\x73\xe0\x3b\xc6\xbd\x49\xa6\x91\xfc\x6e\xc6\x56\x27\x00\x47\x42\x46\x81\x98\x33\xfd\x9b\x54\xd7\xc0\xce\x29\x8a\x41\xaf\x1d\x88\xec\xe7\x8f\x11\xaf\xfa\x21\x58\x48\xfa\x0b\x58\x48\xe7\xb6\x90\xa2\x4a\xf0\xf6\xc0\x6d\xa4\x4d\xe7\x9e\xb2\x28\xe0\xce\xa1\x8a\x9c\x39\x6b\xe2\xaa\x1c\xa2\x3d\xa1\xc0\x5d\x8a\x02\x37\x20\x3d\x09\xdb\x79\xf6\x0d\xa2\x3d\x2f\x41\x03\xd9\x0c\xde\x47\xfb\x8a\xb5\x0d\x9c\xa4\x6c\xb6\x9a\xa6\x6b\x9d\x23\x3e\x53\xf1\x20\x74\xfd\x6f\xbe\xbb\xe1\x41\x31\x7b\x92\x67\x35\x4e\xe8\x59\xe7\x85\xc0\xa0\x1f\xb3\x90\xa2\x19\x5d\x61\x96\x57\xba\x2a\x95\x2e\xca\x14\x1e\xe6\x87\x49\x2a\x78\xc9\xf5\x58\x55\x87\xbe\x6f\xfb\xb5\xb2\x04\xb9\x4f\x32\xbe\x0b\x82\x4c\x37\x4a\xae\x06\xb0\xa8\xed\x3c\xe1\xb2\xb2\x1a\xf7\xb8\xea\x28\x29\xf7\xfe\x9b\x08\x2f\x3a\xc1\x91\x06\x71\xea\x59\x8e\x28\x22\x39\xe1\x22\x92\xcd\x88\xa8\xa9\x80\xe4\xf1\x2d\x4c\xdb\xe1\x2f\x94\x8d\x44\xd9\x48\x94\x8d\x44\xd9\xc8\xa9\x95\x8d\x6c\x5e\x79\x6b\x4b\x46\xf6\x1c\x6c\x70\xb2\x42\x91\xcd\x8f\xbf\xbb\x48\xe4\x90\x65\x70\x48\x69\xc8\x66\x19\xec\x2e\x0b\xd9\xb3\x0c\x50\x0c\x12\xc5\x20\x51\x0c\x12\xc5\x20\x51\x0c\xb2\xb7\x62\x90\x2d\x56\xff\xad\x42\x90\x7b\x33\x0d\x2f\x28\xd6\xb0\xdd\xd3\x4c\xb8\x98\x65\xb3\xb8\xf7\x15\xb2\x3c\xad\xdc\x51\xbe\xb2\x97\x11\xdd\x2e\x5d\xd9\xf3\xb0\x9e\xb5\x60\x65\xb3\x78\xf6\x14\xab\xec\x7b\xd9\x1c\x6a\x89\xca\x66\xa1\xd5\x40\x8c\xa3\xfd\x79\xe6\xd3\x9f\x87\xc2\xb0\xbd\xb5\x44\x2e\x99\x91\x55\x02\x86\x7e\xad\x80\x06\xd0\x31\xd0\x31\x06\x3a\x66\x8e\x04\x1d\x03\x1d\x03\x1d\x03\x1d\x03\x1d\x03\x1d\x03\x1d\x03\x1d\x1b\x1c\x19\x02\x1d\x03\x1d\x03\x1d\x03\x1d\x03\x1d\x03\x1d\x03\x1d\x1b\x23\x1d\x43\x09\x12\x60\x41\x60\x41\x60\xc1\x41\x8f\x28\xb0\x60\x59\x3c\xc0\x82\x53\xc4\x82\x35\x2d\x06\x7a\xa2\x83\x45\x24\x18\x5a\xc5\x47\xae\xd8\x93\x1f\xba\x1d\xa2\xc1\xb7\xb9\x91\x43\x86\x9c\x51\x88\x95\x9d\x94\x5b\x6f\xb3\x92\xd5\x5f\xb8\xf6\xcb\xc0\x22\xa0\x22\xa0\xe2\xa8\xa0\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\x22\x80\xe2\x58\x80\x22\xda\x33\x80\x8d\x82\x8d\x0e\x95\xa4\x81\x8d\x82\x8d\x82\x8d\x82\x8d\x56\x84\x76\x56\x36\xba\x14\x29\xbf\xbd\x39\x0a\x7b\x9e\xa5\x12\x70\x65\xd4\x3d\x91\x96\xcd\x15\x3d\xc0\x7b\xe8\xa5\x27\xd2\x32\xbb\x24\x09\xdc\x2d\x3e\xff\x5e\x77\x32\xaa\x20\x1f\x08\x15\x0b\x82\xa4\xf4\xd2\x69\x91\x45\x9a\x2b\x85\xb3\x5f\x15\xef\xa0\xfd\xeb\x76\x82\x4c\x64\xed\xe9\x8a\x8d\xad\x6c\x4d\xa9\x52\x98\xc1\x9e\x97\x44\x9d\x5d\xf3\x96\xd0\x69\xa8\xaf\x5b\x15\xfd\x60\xde\xcb\x6a\xa9\x6f\x1a\xb4\x79\x9e\xeb\x3d\xed\x97\xb1\x99\xf5\x0f\x2e\x77\xb8\xf2\x08\xe0\xfd\xe0\xfd\xe0\xfd\xe0\xfd\xe0\xfd\xe0\xfd\xe0\xfd\xe0\xfd\xcd\xab\x2d\x78\x3f\x78\x3f\x78\x3f\x78\x3f\x78\x3f\x78\x3f\x78\xff\xc5\xf1\x7e\xb0\x62\xb0\x62\xb0\xe2\x71\x8c\x28\x58\x71\x59\x3c\x60\xc5\xe3\x64\xc5\xad\xab\xeb\x6a\xa5\xa7\x5b\xac\xa5\xaf\xc9\x1c\x19\x28\x1b\xcb\xcc\xd5\x26\x9a\xa5\x4f\xaa\xe1\x59\x1f\xb2\xcb\x9c\xad\x95\x76\x2f\x10\xf6\x23\x3d\xf0\x6f\x24\xb5\xa4\x93\xf6\xd9\xf0\xea\xc2\xab\x0b\xaf\x2e\xbc\xba\x53\xf3\xea\xb6\x6b\xbc\x5e\xeb\xd9\x3d\x59\x4f\xfc\xff\x28\xc1\x19\x7b\xf6\x2d\x15\x97\x77\xd4\x8c\xd2\xf3\xa0\xf4\x6c\x45\x82\xba\x14\x2c\x52\xd2\x4a\x94\xe9\xc7\xee\x42\xe6\x87\x7a\x65\x91\x31\xdb\x84\xd9\xe2\xe4\x32\xdd\xee\x9f\xb9\x7e\xac\xb6\xc2\x6f\x22\x9b\xf1\x6a\xf9\x24\xef\x83\x79\xe5\xed\xdc\x30\x02\x66\xab\x4d\x4c\x6f\x59\x14\x4b\x47\x24\xe4\x26\x30\x8a\xa3\x99\x65\x73\xf6\x6f\xfa\x45\x1a\x2d\x9a\x3b\x3f\xb2\x6b\x76\x17\x04\x3f\x92\x13\xc0\x55\xab\xf4\x26\x54\x03\xaf\x54\x30\x3b\x25\xcd\xe5\xb6\x5b\xa0\xb7\x18\x28\xfd\x2c\xe7\x19\xa6\x93\xb9\xe2\xdb\x89\x62\xb7\x3b\xfe\x64\x12\xf9\xa3\x68\x53\xf8\xca\x9e\x27\x55\x9f\x2d\xc5\x4a\xc7\x0c\x64\x6e\x9b\x5c\x95\x30\xab\x17\x4d\x9d\x8d\xd0\x9b\xc3\x52\x69\xd3\xe1\x75\x28\x3c\x4e\x13\xd4\x58\x05\xca\x80\xb1\x3b\xa8\x76\xe1\x66\xaf\x86\x51\x13\xfd\xf5\x5a\xb8\x3e\x4f\x45\xf0\x9c\xc3\xfc\x7c\xcb\xf5\x83\xb7\x46\xeb\x27\xa1\x33\x2f\xe6\x0e\xbd\x35\xbe\x74\x33\x85\x20\xdf\xb4\x29\x52\xc2\xce\xd2\x4d\xa2\x6e\xb2\x38\x5c\x5c\x9d\x69\x1f\xc8\xfc\xc8\x4a\xaf\x81\xf6\x12\x73\x7d\x9f\x6b\xc1\xc3\xda\x7b\x3c\x62\x98\xe9\x9e\x17\x74\xcb\x75\x96\x54\x83\x2d\x35\x94\xe9\x7f\x08\x85\x69\x27\x97\xdd\x24\xe6\x64\xd3\x1f\x4c\x06\x4c\x06\x4c\x06\x4c\x06\x4c\xa6\x37\x26\xd3\x72\x2f\xd8\xe2\x32\xa7\xdb\x16\x3f\x16\x2a\xb9\x45\xe4\x23\xcb\x96\xa0\x45\x2c\x23\xee\x91\x76\xb4\x90\x81\xef\x3c\x97\x22\x00\xed\xa4\xcb\x4b\xc1\xa9\x69\x77\x3b\xff\xe7\x9c\x7d\xd5\xeb\x99\x56\x5d\x22\x11\xaa\x97\x25\xdf\x53\x05\x93\x71\xf4\xc8\x43\x1b\x91\x18\x6f\xc4\xcd\x8a\x07\xd6\x56\x7e\xb8\xd2\x5f\x3f\x5c\xb1\x95\x1f\xf2\xc0\xff\xaf\xdd\x48\x96\x82\x71\x97\x1c\xf5\xf2\x46\x3b\x31\xdd\xdc\x0c\xd3\x97\x9f\x25\xf9\x49\xda\x3e\x9d\xb3\x7b\x9f\x16\xc7\xc2\xad\xcb\x78\xfb\xd9\x72\x2c\x93\x6a\xf3\x98\x6c\x14\x99\x3e\x1e\x33\xa0\xfa\x09\x3e\xda\x67\xdf\xa9\xf2\xd4\xb9\x44\xbb\x35\xcc\xe8\xd1\xd5\x0b\xfb\x28\xbf\x33\x8f\xc7\x4b\xee\x95\xbc\x93\x99\x51\x23\xe2\x95\x8c\xd7\x6a\x4c\x6a\xe5\xf5\x5b\xe5\x89\x76\x8b\x8b\x94\x5e\xab\xb1\x46\x5a\xb6\xbe\xd2\x26\x1d\xdf\xcd\x4d\x61\xd2\x15\xc8\x39\x91\x8d\xb1\xda\xac\xcd\x4e\x6a\xb5\x81\x79\x61\x30\xed\x3e\x92\x71\x91\x2c\xba\xb6\xfc\x63\x73\x76\xe7\x38\x22\x4a\x69\x6f\x2a\x5a\x76\x33\xfd\x0c\x33\x76\x6d\x26\x60\x79\x82\x26\x3f\xb1\xd9\xcf\xdc\x79\xf2\x62\xb9\x09\x5d\x75\x14\x45\xaa\xd2\x41\x15\xc1\x69\x15\xd2\xe8\xc7\xe5\x8b\xd8\x27\x58\x66\x57\xfa\x89\xcd\x3e\xc9\x58\x14\x2e\xcb\x1c\x9e\x38\xdc\x55\x4f\x6f\xe4\xa3\x03\x99\xe9\x7a\x89\x36\x3d\xb7\x2e\xb8\xca\xae\x71\xcc\x84\x8c\xaa\xd3\xfd\x3c\x1a\xe7\x84\x01\x6a\xbb\x71\xd8\x07\x51\xcf\x35\x0a\xc0\xa9\xbd\x8d\xef\x36\x52\x3d\x9d\x6f\xe3\x9c\x70\xb5\x9d\xb0\xf6\x00\xd6\x97\xea\x3f\xb5\xa8\x0e\xb9\x92\x07\x62\xba\xaf\x29\x4f\x37\x6d\xf9\xdc\x74\xb3\xb2\xf4\xc6\x9c\x2b\x4d\xe3\xca\xd0\x1a\x47\xe6\x66\x07\x7c\x1b\x69\x66\x97\x93\x66\xd6\x6e\x83\x69\x4a\x35\x3b\x9d\x25\x86\xf0\x04\x84\x27\x20\x3c\x01\xe1\x09\x08\x4f\xa8\x5b\x7c\xc1\xbd\x47\x24\x11\xa0\x50\xa0\x50\xa0\x50\xa0\x50\xa0\x50\xa0\xd0\x69\xa1\x50\xd0\x09\xd0\x09\xd0\x09\xd0\x89\xde\xe9\xc4\x01\x04\x7f\xa0\x89\x60\xed\x44\xb8\x9d\x0c\xf6\x52\x8f\xdb\xa0\xb8\xce\xce\x13\x50\xd4\x0f\x45\xfd\x2e\xac\xa8\x1f\xaa\xe1\x0f\xbc\xc2\x81\xf9\xf4\x67\x3e\xc8\x32\xe9\x18\x0c\x6a\xdb\x8d\xf1\x46\x06\xa8\x0f\xec\x87\x02\x1e\x97\xe5\xba\x67\xfe\xf4\xb5\x36\x76\x92\xf6\x8a\xd4\xab\xe2\xa8\x0f\x36\xf5\x8a\x7c\x33\x5f\x78\xc8\x3d\x11\x6b\x2f\xa3\x5e\x28\x93\x44\x3a\x3e\x99\xcd\x99\x3f\x8f\x93\x5b\x56\xc6\x4c\x84\xa9\xd2\x63\xad\x1f\x61\xcd\x9f\x94\x14\xd3\x47\x91\x08\xab\x0c\x16\x13\x8c\x6c\x22\x12\x29\xc3\xe4\xbb\x93\x31\xbb\x7d\xf7\x5e\x1d\x1b\x73\x87\x60\x5d\x20\x43\x4f\xab\x7e\xe4\x5f\x73\x64\x98\x72\x3f\xd4\xab\x13\xf9\xaf\xf2\x63\x09\x60\x18\x94\xc8\x96\xcf\x99\x75\xe3\xc9\x80\x87\xde\x5c\xc6\xde\x4d\xf4\xe4\xdd\x6c\x42\xdf\x91\xae\xb8\xf9\xc7\xe7\x64\xa1\xae\x72\xb4\x43\xdc\x08\xa7\xcb\xe1\x19\x94\xae\x38\x5a\x15\xae\xad\xfa\xf6\xae\x85\xfa\xf6\x41\x3b\xf7\x06\x76\xdf\xef\x1a\xef\x5b\x07\x14\x0f\xec\xc6\x27\xab\x2f\x93\x62\x32\x06\x7d\xf9\x15\xeb\xae\x2e\x49\x4d\x7b\xff\x1e\xcb\x93\x34\xab\x68\x3b\x4b\x92\xa0\x10\x09\x34\xb2\x09\x68\x64\x48\xfd\xbe\xa0\xd4\x6f\xe4\xb8\x21\xc7\x0d\x39\x6e\xc8\x71\x83\x31\xb9\xeb\x2d\x1a\x64\x42\xc9\x79\x4c\x33\xe4\xc3\x64\x47\xee\xcd\x87\x19\x85\x89\x96\x79\xbb\x3b\xcf\x82\x89\x05\x77\x2b\x4a\x58\x93\x4d\xa5\x4e\x39\x49\xea\x4b\x41\x37\x11\x7f\x51\x40\xdb\x52\x7d\xe2\x4e\x3a\x67\xec\x5e\xfd\x6b\xff\xbe\xe6\x3e\xf9\x00\x13\xe6\x04\x9b\x24\x15\x71\xbe\xe3\xe8\xc8\x57\x16\xf8\x4f\x82\xcd\xb2\x7b\x9c\x29\xc5\xd2\x2a\x43\x73\xb6\x08\x78\x18\x0a\xad\x91\x92\xba\xc2\x03\xad\x21\xdd\xbe\x3f\x66\x09\xa7\x7b\x3c\x93\x22\x91\x09\x2d\xd3\xc3\x97\x56\x7c\xea\x49\xd9\xbd\x96\x98\xda\x3c\xa2\xc4\x4a\xc7\xc4\x7c\x6d\x12\x11\x53\xb0\x56\xae\x52\x3f\xf7\x2c\x28\x75\x33\xd3\x45\xeb\xc3\xde\xe1\xe0\xbd\xdb\xbd\x39\x78\x62\x1c\xce\xbb\x97\xc0\x6e\x74\xb1\x07\xb7\x3f\x1f\xb7\xa7\x90\xa0\xa3\x1a\x20\x5f\xd3\xb9\x3f\xec\x5f\xb0\xd7\x22\xf6\x44\xab\x23\x93\x34\xe6\xa9\xf0\x7c\xe7\xba\xfd\x39\xea\xf3\xb3\x39\x92\xb6\x86\x36\xba\x56\xc4\xe3\xd4\xa7\x8c\x3d\x1d\xbe\x76\xa0\xde\x45\xbf\x36\x24\x57\x76\x5f\xd1\x06\x7b\x4c\x97\x45\x39\x90\x8c\xc1\xc1\x3d\x71\x07\xf7\xe5\x84\x1c\x54\xd2\x5f\xec\xcb\xa5\x53\xb4\xd4\x72\x93\xa7\xfd\xbf\xde\xb1\x14\xbd\x21\xf7\x9e\xce\xcb\xe6\x01\x9d\x19\xca\xf0\x5a\x9f\x4d\x47\x90\x87\x3d\x61\xaf\x7f\x49\x64\xb8\xd0\xd9\xef\x5f\xd4\xa2\x67\x3e\x7f\xb5\x4b\x61\xfe\xc7\x37\x43\x8a\x85\x68\x3f\x6f\x3e\xc9\xd8\x21\x04\xe1\x49\x1a\x7c\xc9\x1e\xae\x56\xea\x6f\x0f\x57\xec\xae\x24\x4d\x0a\xae\xd7\xbc\x80\xec\x1f\xf3\xa2\x5e\x73\x87\x06\x80\xf2\xa7\x03\xdf\x31\x1e\x50\x32\x97\xe4\x77\x33\xb6\x3a\xbf\x38\x12\x32\x0a\xc4\x9c\xe9\xdf\xa4\xb2\x09\x76\x4e\x51\x88\x7b\xed\x40\x64\x3f\x7f\x8c\x78\xd5\x0f\xc1\x6a\xd2\x5f\xc0\x6a\x1a\x8e\xd5\x14\x55\xa2\xc4\xc7\x60\x37\x6d\x3a\xf7\xa8\x45\x01\x77\x0e\x55\xee\xcc\x59\x97\xa0\xde\x21\x98\x14\x9a\xdd\x45\x69\x76\x03\x52\xa0\xb0\xcf\x67\xdf\x20\x98\xf4\x02\xf5\x93\xcd\x38\xbc\xba\xaf\xd8\x41\x21\x99\x94\x5e\x57\xd3\x19\xae\x73\x5a\x68\x4a\x30\x84\xae\xff\xcd\x77\x37\x3c\x28\xa6\x73\xf2\xac\xe8\x0a\x3d\xf5\xbc\x10\x6d\xf4\x63\x16\xa7\x34\xa3\x2b\xcc\xf2\xd2\x5b\xa5\x5a\x4a\x99\x4e\xc4\xfc\x30\x49\x05\x2f\x79\x2c\xab\x1a\xd3\xf7\x1d\xee\xb0\x2c\x63\xef\x93\x8c\xef\x82\x20\x53\x9f\x92\xab\x01\x2c\x79\x3b\x4f\xb8\xac\x5c\xcb\x3d\x1e\x3e\x4a\x15\xbe\xff\x26\x42\x64\x5c\xd2\x48\x5e\x44\xda\x25\x8a\x5c\x4e\xb8\xc8\x65\x33\x68\x6a\x2a\x70\x79\x7c\xef\xd5\x76\x10\x0d\x65\x2d\x51\xd6\x12\x65\x2d\x51\xd6\x72\x6a\x65\x2d\x9b\x57\xde\xda\x92\x96\x3d\x87\x2c\x9c\xac\x90\x65\xf3\xe3\xef\x2e\x62\x39\x64\x19\x1c\x52\xba\xb2\x59\x06\xbb\xcb\x56\xf6\x2c\x03\x14\xab\x44\xb1\x4a\x14\xab\x44\xb1\x4a\x14\xab\xec\xad\x58\x65\x8b\xd5\x7f\xab\x50\xe5\xde\x6c\xc6\x0b\x8a\x58\x6c\xf7\x34\x13\x2e\xb6\xd9\x2c\xee\x7d\x85\x36\x4f\x2b\x77\x94\xd7\xec\x65\x44\xb7\x4b\x6b\xf6\x3c\xac\x67\x2d\xa8\xd9\x2c\x9e\x3d\xc5\x34\xfb\x5e\x36\x87\x5a\x42\xb3\x59\x68\x35\x38\xe3\x68\x7f\x9e\xf9\xf4\xe7\x51\x80\x6c\x6f\xe5\x92\x8b\xe7\x66\x95\x38\xa3\x5f\x2b\xdc\x01\xc4\x0c\xc4\x8c\x81\x98\x81\x98\x81\x98\x81\x98\x81\x98\x81\x98\x81\x98\x81\x98\x81\x98\x55\x96\xdb\x01\xd2\x22\x10\x33\x10\x33\x10\x33\x10\x33\x10\x33\x10\x33\x10\xb3\x31\x12\x33\x14\x37\x01\x2a\x04\x2a\x04\x2a\x1c\xf4\x88\x02\x15\x96\xc5\x03\x54\x38\x59\x54\x58\xd3\xe4\xa0\x27\x62\x58\xc4\x84\xa1\xd5\x7e\xe4\x8a\x3d\xf9\xa1\xdb\x21\x2e\x7c\x9b\x5b\x3a\x64\xcd\x19\xad\x58\x19\x4b\xb9\x09\x37\x2b\x99\xfe\x85\x6b\x77\x00\x1b\x01\x1a\x01\x1a\xc7\x07\x1a\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x01\x19\x47\x05\x19\xd1\x0c\x02\xbc\x14\xbc\x74\xa8\x74\x0d\xbc\x14\xbc\x14\xbc\x14\xbc\xb4\x22\xb4\x13\xf1\x52\xd7\x4f\x1c\xa9\x54\x32\x0b\x4b\x8f\x42\x9f\x67\x29\x27\x5c\x19\x6a\x8f\x1a\xd7\xae\x64\xbc\xce\xa6\x36\x67\x1a\xc6\xec\x86\x98\x9e\x48\x3f\x5a\x09\xdc\x2d\x3e\xff\xab\x7a\x38\xea\x27\x1f\x08\x12\x33\x21\x8e\x1c\x23\x66\xef\x45\xe1\x94\x57\xc5\x9f\x6d\x78\x8d\x6c\xcc\xc1\xa8\x5f\xa7\x92\xc9\xaf\x17\xc9\x96\xef\x92\x89\x05\xb8\x5b\x7c\xfe\xbd\xee\x4c\xbc\x56\x87\xbf\x56\x56\x90\x94\xbd\x3d\x95\xb7\xab\x86\xd0\x1f\xf3\x96\x89\xd0\x8d\xa4\x1f\xa6\x49\xe0\x3b\x3d\xe7\xfb\x6b\x67\x71\x6c\xdc\x4d\xd6\x1b\x61\x03\x77\xee\xcd\x8d\x7c\x55\x37\xb2\xe7\x5d\x51\x57\xa9\xbe\x2c\xa5\x73\x51\xe1\xba\x3a\x0e\x83\x79\x4d\xe7\xf9\x34\xb4\x25\xf8\x4b\x43\x37\xf5\x17\xb4\x39\x84\xa6\xab\x34\xfd\xea\xfb\x5e\x1f\x3e\xb3\xeb\x9d\x43\x18\x0d\xc2\x68\x10\x46\x83\x30\x1a\x84\xd1\x20\x8c\x06\x61\x34\x08\xa3\x41\x18\xcd\xb9\x65\x80\x30\x1a\x84\xd1\x20\x8c\x06\x61\x34\x08\xa3\x41\x18\xcd\xf8\xc2\x68\x10\x82\x81\x10\x0c\x84\x60\x8c\x63\x44\x11\x82\x51\x16\x0f\x42\x30\x46\x14\x82\x61\xa9\xd6\x8e\x4c\xf5\xdd\xb0\x4b\x6b\x3e\xdd\xf2\x2e\x7d\x4d\xe6\xc8\x40\x19\x5a\x66\xc2\xb6\xc5\x5c\xfa\xe4\x2a\xe8\xfa\x90\x5d\x2b\xcf\x15\xdf\x79\xc5\x7e\x1b\xe1\xf7\x02\x6b\x3f\xd2\x53\xff\x46\x22\x4c\x3a\xe9\x7b\x0f\x3f\x2f\xfc\xbc\xf0\xf3\xc2\xcf\x3b\x35\x3f\xef\x9e\x5d\xb8\xc9\xd7\xbb\x5f\xa3\xdb\xbf\x1b\x1f\xb4\xf6\xfe\x47\x09\xce\x58\xb8\x6f\xa9\xd1\x83\xa3\x66\x94\x9e\x07\xa5\x67\x2b\x32\xd5\xa5\x60\x91\x92\x56\xa2\x8c\x41\x76\x17\x32\x3f\xd4\x2b\x8b\x8c\xd9\x26\xcc\x16\x27\x97\xb9\xf1\xf3\xef\x9b\x90\xb9\x7e\xac\xb6\xc4\x6f\x22\x9b\xf1\x6a\xf9\x24\x7f\x84\x79\xe5\xed\xdc\x30\x02\x66\xab\x4d\x4c\x6f\x59\x14\x4b\x47\x24\xe4\x38\x30\xaa\xa4\x99\x65\x73\xf6\x6f\xfa\x45\x1a\x2d\x9a\x3b\x3f\xb2\x6b\x76\x17\x04\x3f\x92\x5b\xc0\x55\xab\xf4\x26\x54\x03\xaf\x94\x32\x3b\x25\xcd\xe5\x84\x7b\xc4\x40\xe9\x67\x39\xcf\x30\x9d\xcc\x39\xdf\x4e\x14\xbb\x1d\xf4\x27\x93\xc8\x1f\x45\x2b\xc3\x57\x16\x3e\x29\xff\x6c\x29\x56\x3a\x8a\x20\x73\xe4\xe4\xaa\x84\x59\xbd\x68\xea\x6c\x84\xde\x1c\x96\x4a\xbf\x0e\xaf\x43\xe1\x71\x9a\xa0\xc6\x4e\x50\x26\x8d\xdd\x41\xb5\x53\x37\x7b\x35\x8c\xce\xe8\xaf\xd7\xc2\xf5\x79\x2a\x82\xe7\x1c\xef\xe7\x5b\xae\x1f\xbc\x35\x76\x00\x09\x9d\x79\x31\x77\xe8\xad\xf1\xa5\x9b\x29\x04\xf9\xa6\x4d\xb1\x13\x76\x96\x6e\x12\x75\x93\xc5\xe1\xe2\xea\x4c\xfb\x40\xe6\x47\x56\x7a\x0d\xb4\x97\x98\xeb\xfb\x5c\x0b\x1e\xd6\xde\xe3\x11\xc3\x4c\xf7\xbc\xa0\x5b\xae\xb3\xad\x1a\xac\xab\xa1\x4c\xff\x43\xb8\x4c\x3b\xb9\xec\x66\x33\x27\x9b\xfe\xa0\x34\xa0\x34\xa0\x34\xa0\x34\xa0\x34\xbd\x51\x9a\x96\x7b\xc1\x16\xa9\x39\xdd\xb6\xf8\xb1\x50\x41\x31\xa2\x12\x8f\xd9\x12\xb4\x88\x65\xc4\x3d\xd2\x8e\x16\x32\xf0\x9d\xe7\x52\x4c\xa0\x9d\x74\x79\x09\x46\x35\xed\x6e\xe7\xff\x9c\xb3\xaf\x7a\x3d\xd3\xaa\x4b\x24\x42\xf5\xb2\xe4\x7b\xaa\x60\x32\x8e\x1e\x79\x68\x63\x14\xe3\x8d\xb8\x59\xf1\xc0\xda\xca\x0f\x57\xfa\xeb\x87\x2b\xb6\xf2\x43\x1e\xf8\xff\xb5\x1b\xc9\x52\x30\xee\x92\xeb\x5e\xde\x68\xb7\xa6\x9b\x9b\x61\xfa\xf2\xb3\x24\x3f\x49\xdb\xa7\x73\x76\xef\xd3\xe2\x58\xb8\x75\x19\x6f\x3f\x5b\x0e\x6a\x52\x6d\x1e\x93\x8d\x22\xd3\xc7\x63\x06\x54\x3f\xc1\x47\xfb\xec\x3b\x55\x9e\x3a\x27\x69\xb7\x86\x19\x3d\xba\x7a\x61\x1f\xe5\x77\xe6\xf1\x78\xc9\xbd\x92\xab\x32\x33\x6a\x44\xbc\x92\xf1\x5a\x8d\x49\xad\xbc\x7e\xab\x3c\xd1\x6e\x71\x91\xd2\x6b\x35\xd6\x48\xcb\xd6\x57\xda\xa4\xe3\xbb\xb9\x29\x4c\xba\x02\x39\x27\xb2\x31\x4e\x28\x3d\x8d\xbe\xb5\xda\xc0\xbc\x30\x98\x76\x1f\xc9\x48\x49\x16\x6f\x5b\xfe\xb1\x39\xbb\x73\x1c\x11\xa5\xb4\x37\x15\x2d\xbb\x99\x7e\x86\x19\xbb\x36\x13\xb0\x3c\x41\x93\x9f\xd8\xec\x67\xee\x3c\x79\xb1\xdc\x84\xae\x3a\x8a\x62\x57\xe9\xa0\x8a\xe0\xb4\x0a\x69\xf4\xe3\xf2\x45\xec\x13\x2c\xb3\x2b\xfd\xc4\x66\x9f\x64\x2c\x0a\x97\x65\x0e\x4f\x1c\xee\xaa\xa7\x37\xf2\xd1\xa1\xcd\x74\xbd\x44\x9b\x9e\x5b\x17\x5c\x65\xd7\x38\x66\x42\x46\xd5\xe9\x7e\x1e\x8d\x73\xc2\x48\xb5\xdd\x38\xec\xc3\xaa\xe7\x1a\x05\x00\xd6\xde\xc6\x77\x1b\xb2\x9e\xce\xb7\x71\x4e\xdc\xda\x4e\x58\x7b\x90\xeb\x4b\xf5\x9f\x5a\x6e\x87\x9c\xca\x03\x31\xdd\xd7\x94\xa7\x9b\xb6\x7c\x6e\xa2\x99\x5a\x7a\x57\xce\x35\xa6\x11\x66\x6d\x8d\x28\xc3\xb3\x43\xdc\x8d\x3c\xb4\xcb\xc9\x43\x6b\xb7\xdf\x34\xe5\xa2\x9d\xce\x30\x43\xb4\x02\xa2\x15\x10\xad\x80\x68\x05\x44\x2b\xd4\x2d\xbe\xc0\xe0\x23\x92\x08\xc8\x28\xc8\x28\xc8\x28\xc8\x28\xc8\x28\xc8\xe8\xb4\xc8\x28\x60\x05\x60\x05\x60\x05\x60\x45\xef\xb0\xe2\x00\xa0\x3f\xd0\x4c\xb1\x76\x22\xdc\xce\x16\x7b\xa9\xc7\x6d\x50\x98\x67\xe7\x09\x28\xfe\x87\xe2\x7f\x97\x59\xfc\x0f\xcd\x28\x06\x5e\x09\xc1\x7c\xfa\x33\x1f\x64\x99\x74\x0c\x0b\xb5\x09\xc7\x78\xd8\x1a\x0c\xea\x33\x7a\x44\x83\xc7\x65\xc2\xee\x99\x4d\xbd\x2e\x98\x9d\xe4\xc7\x22\x47\xab\x38\xf4\x83\xcd\xd1\x22\xaf\xcd\x17\x1e\x72\x4f\xc4\xda\xff\xa8\xd7\xce\x24\x91\x8e\x4f\x06\x75\xe6\xe9\xe3\xe4\xb0\x95\x31\x13\x61\xaa\x34\x5c\xeb\x61\x58\xf3\x27\x25\xc5\xf4\x51\x24\xc2\xaa\x89\xc5\x4c\x24\x9b\xb1\x44\x6a\x32\x79\xf5\x64\xcc\x6e\xdf\xbd\x57\xc7\xc6\xdc\x21\x8c\x17\xc8\xd0\xd3\x4a\x21\x79\xde\x1c\x19\xa6\xdc\x0f\xf5\x82\x45\x9e\xad\xfc\x58\x42\x1b\x06\x32\xb2\xe5\x73\x66\xf7\x78\x32\xe0\xa1\x37\x97\xb1\x77\x13\x3d\x79\x37\x9b\xd0\x77\xa4\x2b\x6e\xfe\xf1\x39\x59\xa8\xab\x1c\xed\x2a\x37\xc2\xe9\x72\x78\x06\xa5\x45\x8e\x5b\xb9\x6b\xab\xd8\xbd\x6b\xa1\xd8\x7d\xd0\xbe\xbf\x21\xde\xfc\xbb\xc6\x9b\xd7\x31\xc8\x43\xbc\xfb\x69\xea\xd4\xa4\xb7\x8c\x46\xa7\x7e\xc5\x3a\xae\x71\xa2\xbf\xfa\xfb\x44\xa5\x4e\x0e\xd0\xe5\xea\xeb\x9b\x9c\x5d\x97\x1b\x49\x55\x13\x68\x6d\xc5\x41\x1e\xac\xd6\x86\x3c\xf2\x0b\xca\x23\x47\xc2\x1c\x12\xe6\x90\x30\x87\x84\x39\x18\x9c\xbb\xde\xa2\x41\x66\xa7\x9c\xc7\x68\x43\x72\x8d\x3e\x6c\x6f\x72\xcd\x78\xec\xb6\xcc\x4d\xde\x79\x4a\x4d\x2c\xb8\x5b\x51\xc3\xda\x9a\x58\xea\xd4\xd3\xe5\xd1\x14\x54\x15\xf1\x17\x45\xc7\x2d\xd5\x27\xee\xa4\x73\xc6\xee\xd5\xbf\xf6\xef\x6b\xee\x93\xdb\x30\x61\x4e\xb0\x49\x52\x11\xe7\x1b\x90\x0e\xa3\x65\x81\xff\x24\xd8\x2c\xbb\xd7\x99\xd2\x33\xad\x6e\x34\x67\x8b\x80\x87\xa1\xd0\x0a\x2a\x69\x2f\x3c\xd0\x0a\xd3\xed\xfb\x63\x56\x74\xba\xc7\x33\xe9\x15\x99\xd0\x32\xb5\x7c\x69\xc5\xa7\x9e\x94\xdd\x6b\x89\xa9\xbd\x24\x4a\xac\x74\x4c\x00\xd9\x26\x11\x31\x45\x7e\xe5\x1a\xf6\x73\xcf\x82\x52\x37\x33\x5d\x4e\x3f\xec\x0d\x0f\x6e\x3e\xb6\x67\xc3\xf0\xc4\x88\xbc\x7c\x2f\x21\xe7\x84\x7d\x8c\x4f\x65\xcf\x7d\xb4\x01\xe3\x43\x61\xe2\x08\x06\x18\x5d\x30\x00\x85\x1b\x1d\xd5\x90\xf9\x9a\xce\xfd\x61\xff\xfa\xbd\x16\xb1\x27\x5a\x1d\x99\xa4\x31\x4f\x85\xe7\x3b\xd7\xed\xcf\x51\x9f\x9f\xcd\x91\xb4\x53\xb4\xd1\xc3\x22\x1e\xa7\x3e\x65\x03\xea\xd0\xb8\x23\x75\x32\xfa\xd5\xc1\x79\xbd\xfb\x8a\x60\xd8\x63\xe5\x2c\xca\x11\x6b\x0c\xbe\xf0\x89\xfb\xc2\x2f\x27\x82\xa1\x92\x67\x63\x5f\x2e\x9d\x0b\xa6\xd6\x9e\xbc\xbe\xc0\xeb\x1d\xeb\xd2\x1b\xf2\x04\xea\x04\x70\x1e\xd0\x99\xa1\x0c\xaf\xf5\xd9\x74\x04\x39\xe3\x13\xf6\xfa\x97\x44\x86\x0b\x9d\x66\xff\x45\xad\x80\xe6\xf3\x57\xbb\x2e\xe6\x7f\x7c\x33\xa4\xd0\x8a\xf6\xf3\xe6\x93\x8c\x1d\xa2\x15\x9e\xa4\xc1\x97\xec\xe1\x6a\xa5\xfe\xf6\x70\xc5\xee\x4a\xd2\xa4\x28\x7e\x8d\x16\xc8\x36\x32\x2f\xea\x35\x77\x68\x00\x28\x51\x3b\xf0\x1d\xe3\x2c\x25\x53\x4a\x7e\x37\x63\xab\x13\x99\x23\x21\xa3\x40\xcc\x99\xfe\x4d\xaa\xcf\x60\xe7\x14\xc5\xd2\xd7\x0e\x44\xf6\xf3\xc7\x88\x57\xfd\x10\x2c\x2a\xfd\x05\x2c\xaa\xd2\x33\x9d\x3b\x70\xa2\x12\x90\x3e\x1a\x9b\x6a\xd3\xb9\x07\x2e\x0a\xb8\x73\xac\xc2\x67\xce\xbe\x18\x95\x0f\x41\xab\x50\xf9\x2e\x4f\xe5\x1b\x90\x66\x05\x05\x20\xfb\x06\x41\xab\x2d\x6e\x7e\xa2\xda\xcb\x66\x44\xfe\xe0\x57\xac\x7d\xd4\x27\x65\xfa\xed\x69\x64\xd7\x39\x80\x34\x55\x21\x42\xd7\xff\xe6\xbb\x1b\x1e\x14\x33\x4c\x79\x56\x07\xa6\x24\x82\x79\x21\x94\xe9\xc7\x2c\x08\x6a\x46\x57\x9a\xe5\x55\xc1\x4a\x65\x9e\x32\xb5\x89\xf9\x61\x92\x0a\x5e\x72\x78\x56\x95\xaa\xef\x75\x5e\xb4\xad\x64\xc2\x4f\x32\xbe\x0b\x82\x4c\xd3\x4a\xae\x06\xb0\x20\xee\x3c\xe1\xb2\x72\x41\xf7\x38\x06\x29\x95\xf9\xfe\x9b\x08\x2f\x3c\x19\x94\x86\xf1\x72\x32\x42\x51\x86\x73\xc2\x65\x38\x9b\x71\x55\x53\x09\xce\xe3\xdb\xc7\xb6\x43\x71\x28\xbc\x89\xc2\x9b\x28\xbc\x89\xc2\x9b\x53\x2b\xbc\xd9\xbc\xf2\xd6\x16\xdd\xec\x39\xf0\xe1\x64\xa5\x36\x9b\x1f\x7f\x77\x99\xcd\x21\xcb\xe0\x90\xe2\x9a\xcd\x32\xd8\x5d\x58\xb3\x67\x19\xa0\x9c\x26\xca\x69\xa2\x9c\x26\xca\x69\xa2\x9c\x66\x6f\xe5\x34\x5b\xac\xfe\x5b\xa5\x34\xf7\x66\x4c\x5e\x50\xdc\x63\xbb\xa7\x99\x70\x39\xd0\x66\x71\xef\x2b\x05\x7a\x5a\xb9\xa3\x00\x68\x2f\x23\xba\x5d\xfc\xb3\xe7\x61\x3d\x6b\xc9\xcf\x66\xf1\xec\x29\xf7\xd9\xf7\xb2\x39\xd4\x22\x9f\xcd\x42\xab\x01\x1a\x47\xfb\xf3\xcc\xa7\x3f\x0f\x87\x66\xad\x0a\xa6\x80\xa5\xed\x09\x4f\xfa\xb5\x82\x23\x40\xd1\x40\xd1\x18\x28\x9a\x3e\x0c\x14\x0d\x14\x0d\x14\x0d\x14\x0d\x14\x0d\x14\x0d\x14\x0d\x14\x6d\xd8\x04\x09\x14\x0d\x14\x0d\x14\x0d\x14\x0d\x14\x0d\x14\x0d\x14\x6d\x8c\x14\x0d\x65\x53\x80\x0f\x81\x0f\x81\x0f\x07\x3d\xa2\xc0\x87\x65\xf1\x00\x1f\x4e\x1b\x1f\xd6\xf4\x5b\xe8\x89\x22\x16\xd1\x61\x68\x55\x20\xb9\x62\x4f\x7e\xe8\xf6\x80\x10\xdf\xe6\x66\x0f\x99\x76\x46\x45\x56\x96\x53\x6e\xcf\xcd\x4a\x7e\x80\xc2\xb5\xbb\x02\x90\x80\x8f\x80\x8f\x23\x83\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\xe3\x03\x8f\x68\x41\x01\x96\x0a\x96\x3a\x74\xf2\x06\x96\x0a\x96\x0a\x96\x0a\x96\x5a\x11\xda\x89\x58\xaa\x76\xf6\x5b\x90\x7a\x14\x0e\x3d\x4b\x6d\xe2\xca\x38\x7b\xd4\x49\x77\x25\xe3\x75\x36\xaf\x39\xd3\x58\x66\x37\xd0\xf4\x44\x4a\xf0\x2b\xb9\x5b\x7c\xfe\x57\xf5\x58\x54\x62\x3e\x10\x26\x66\x42\x1c\x39\x4a\xd4\x6f\x44\xe1\xf8\x57\xc5\xdf\xdc\xf7\xf6\x7c\xbb\x1d\xf7\x0b\x54\xb2\xf4\xf5\x9a\xd8\xe6\xed\xf9\xf7\xed\xdd\xe2\xf3\xef\x75\x67\xe0\x1d\x3a\xfc\x1d\xb2\x82\xa4\x14\xee\x49\xbc\x4a\xff\xe7\xdb\xed\x91\x6f\x93\x79\x15\xfb\x8c\xd1\xd1\x3e\xe0\xd8\x78\x91\xac\x93\x21\x0b\xcf\xa1\xd8\x88\xdd\xef\x80\x3a\xdb\xbe\x04\xf4\x2f\x4a\x59\x57\xe5\x3d\x98\xd7\x6e\x6e\xa6\xd7\xb7\xdb\x39\x0d\xd5\x54\x5f\xb0\xe6\x70\x97\xae\xd2\xec\x4b\xef\xeb\x8e\x50\x97\xca\x0b\x54\x0d\x71\x41\x74\x0b\xa2\x5b\x10\xdd\x82\xe8\x16\x44\xb7\x20\xba\x05\xd1\x2d\x88\x6e\x39\x64\xb5\x45\x74\x0b\xa2\x5b\x10\xdd\x82\xe8\x16\x44\xb7\x20\xba\x05\xd1\x2d\x17\x17\xdd\x82\x88\x08\x44\x44\x20\x22\x62\x1c\x23\x8a\x88\x88\xb2\x78\x10\x11\x31\x96\x88\x88\x6f\xb7\x3b\xf3\xc9\xb7\xe0\x94\xd6\x74\xba\xe5\x53\xfa\x9a\xcc\x91\x81\x32\xac\xcc\x04\x6d\xc2\x52\xfa\x24\x0b\xa6\x3e\x64\xe7\x16\x92\xb5\xab\x57\xe8\xb7\x89\x7d\x2f\xb0\xf4\x23\x3d\xe5\x6f\x24\xaa\xa4\x93\x76\xf5\xf0\xdf\xc2\x7f\x0b\xff\x2d\xfc\xb7\x53\xf3\xdf\xee\xd9\x5d\x9b\x7c\xb8\xfb\x35\xb5\xfd\xbb\xec\x41\x6b\xef\x7f\x94\xe0\x8c\xe5\xfa\x96\x5a\x2f\x38\x6a\x46\xe9\x79\x50\x7a\xb6\x22\x2b\x5d\x0a\x16\x29\x69\x25\xca\xc8\x63\x77\x21\xf3\x43\xbd\xb2\xc8\x98\x6d\xc2\x6c\x71\x72\x99\x1b\x3f\xff\xbe\x09\x99\xeb\xc7\x6a\x2b\xfc\x26\xb2\x19\xaf\x96\x4f\xf2\x33\x98\x57\xde\xce\x0d\x23\x60\xb6\xda\xc4\xf4\x96\x45\xb1\x74\x44\x42\x0e\x01\xa3\x22\x9a\x59\x36\x67\xff\xa6\x5f\xa4\xd1\xa2\xb9\xf3\x23\xbb\x66\x77\x41\xf0\x23\x99\xfb\xae\x5a\xa5\x37\xa1\x1a\x78\xa5\x6c\xd9\x29\x69\x2e\x27\xdc\x23\x06\x4a\x3f\xcb\x79\x86\xe9\x64\x4e\xf7\x76\xa2\xd8\xed\x78\x3f\x99\x44\xfe\x28\x5a\x0f\xbe\xb2\xdc\x49\xa9\x67\x4b\xb1\xd2\xd1\x01\x99\x83\x26\x57\x25\xcc\xea\x45\x53\x67\x23\xf4\xe6\xb0\x54\x7a\x73\x78\x1d\x0a\x8f\xd3\x04\x35\xfa\xbf\x32\x55\xec\x0e\xaa\x9d\xb5\xd9\xab\x61\x74\x43\x7f\xbd\x16\xae\xcf\x53\x11\x3c\xe7\xd8\x3e\xdf\x72\xfd\xe0\xad\xd1\xef\x49\xe8\xcc\x8b\xb9\x43\x6f\x8d\x2f\xdd\x4c\x21\xc8\x37\x6d\x8a\x89\xb0\xb3\x74\x93\xa8\x9b\x2c\x0e\x17\x57\x67\xda\x07\x32\x3f\xb2\xd2\x6b\xa0\xbd\xc4\x5c\xdf\xe7\x5a\xf0\xb0\xf6\x1e\x8f\x18\x66\xba\xe7\x05\xdd\x72\x9d\xcd\xd4\x60\x35\x0d\x65\xfa\x1f\xc2\x5b\xda\xc9\x65\x37\x73\x39\xd9\xf4\x07\x7d\x01\x7d\x01\x7d\x01\x7d\x01\x7d\xe9\x8d\xbe\xb4\xdc\x0b\xb6\x08\xcc\xe9\xb6\xc5\x8f\x85\xba\x85\x51\x20\x78\x22\xb2\x25\x68\x11\xcb\x88\x7b\xa4\x1d\x2d\x64\xe0\x3b\xcf\xa5\x58\x3f\x3b\xe9\xf2\xc2\x87\x6a\xda\xdd\xce\xff\x39\x67\x5f\xf5\x7a\xa6\x55\x97\x48\x84\xea\x65\xc9\xf7\x54\xc1\x64\x1c\x3d\xf2\xd0\xc6\x1e\xc6\x1b\x71\xb3\xe2\x81\xb5\x95\x1f\xae\xf4\xd7\x0f\x57\x6c\xe5\x87\x3c\xf0\xff\x6b\x37\x92\xa5\x60\xdc\x25\x97\xbc\xbc\xd1\xee\x4a\x37\x37\xc3\xf4\xe5\x67\x49\x7e\x92\xb6\x4f\xe7\xec\xde\xa7\xc5\xb1\x70\xeb\x32\xde\x7e\xb6\x1c\xc0\xa4\xda\x3c\x26\x1b\x45\xa6\x8f\xc7\x0c\xa8\x7e\x82\x8f\xf6\xd9\x77\xaa\x3c\x75\xce\xcf\x6e\x0d\x33\x7a\x74\xf5\xc2\x3e\xca\xef\xcc\xe3\xf1\x92\x7b\x25\x97\x64\x66\xd4\x88\x78\x25\xe3\xb5\x1a\x93\x5a\x79\xfd\x56\x79\xa2\xdd\xe2\x22\xa5\xd7\x6a\xac\x91\x96\xad\xaf\xb4\x49\xc7\x77\x73\x53\x98\x74\x05\x72\x4e\x64\x63\x9c\x50\x22\x18\x7d\x6b\xb5\x81\x79\x61\x30\xed\x3e\x92\x11\x90\x2c\x8e\xb6\xfc\x63\x73\x76\xe7\x38\x22\x4a\x69\x6f\x2a\x5a\x76\x33\xfd\x0c\x33\x76\x6d\x26\x60\x79\x82\x26\x3f\xb1\xd9\xcf\xdc\x79\xf2\x62\xb9\x09\x5d\x75\x14\xc5\xa4\xd2\x41\x15\xc1\x69\x15\xd2\xe8\xc7\xe5\x8b\xd8\x27\x58\x66\x57\xfa\x89\xcd\x3e\xc9\x58\x14\x2e\xcb\x1c\x9e\x38\xdc\x55\x4f\x6f\xe4\xa3\x43\x96\xe9\x7a\x89\x36\x3d\xb7\x2e\xb8\xca\xae\x71\xcc\x84\x8c\xaa\xd3\xfd\x3c\x1a\xe7\x84\x51\x69\xbb\x71\xd8\x87\x4b\xcf\x35\x0a\x00\xa7\xbd\x8d\xef\x36\x3c\x3d\x9d\x6f\xe3\x9c\x18\xb5\x9d\xb0\xf6\xa0\xd4\x97\xea\x3f\xb5\x7c\x0e\x39\x8d\x07\x62\xba\xaf\x29\x4f\x37\x6d\xf9\xdc\xc4\x32\xad\xf4\x6e\x9c\x6b\x4a\x23\xc8\xba\x1a\x70\x86\x65\x07\xf8\x1a\xf9\x62\x97\x93\x2f\xd6\x6e\xff\x68\xca\x19\x3b\x9d\xa1\x85\xe8\x03\x44\x1f\x20\xfa\x00\xd1\x07\x88\x3e\xa8\x5b\x7c\x81\xb5\x47\x24\x11\x90\x4e\x90\x4e\x90\x4e\x90\x4e\x90\x4e\x90\xce\x69\x91\x4e\xc0\x07\xc0\x07\xc0\x07\xc0\x87\xde\xe1\xc3\x01\x80\x7e\xa0\x19\x5d\xed\x44\xb8\x9d\xd5\xf5\x52\x8f\xdb\xa0\xb0\xcd\xce\x13\x50\x7c\xef\x32\x91\xd0\x74\x8b\xef\xa1\x37\xc3\xc0\x2b\x11\x98\x4f\x7f\xe6\x83\x2c\x93\x8e\x61\x9f\x36\xcd\x18\x0f\x1b\xc1\x9e\x3e\xb2\x43\xb4\x77\x5c\x66\xea\x9e\x59\xd3\xe9\x82\xd7\x49\x7e\x2a\x72\xa4\x8a\x43\x3d\xd8\x1c\x29\xf2\xb2\x7c\xe1\x21\xf7\x44\xac\xfd\x85\x7a\x4d\x4c\x12\xe9\xf8\x64\x00\x67\x9e\x39\x4e\x0e\x56\x19\x33\x11\xa6\x4a\x23\xb5\x1e\x81\x35\x7f\x52\x52\x4c\x1f\x45\x22\xac\x5a\x57\xcc\x04\xb2\x19\x43\xa4\xd6\x92\x17\x4e\xc6\xec\xf6\xdd\x7b\x75\x6c\xcc\x1d\xc2\x6e\x81\x0c\x3d\xad\xc4\x91\xa7\xcc\x91\x61\xca\xfd\x50\x2f\x44\xe4\x89\xca\x8f\x25\x14\x61\xa0\x20\x5b\x3e\x67\x76\x8a\x27\x03\x1e\x7a\x73\x19\x7b\x37\xd1\x93\x77\xb3\x09\x7d\x47\xba\xe2\xe6\x1f\x9f\x93\x85\xba\xca\xd1\xae\x6d\x23\x9c\x2e\x87\x67\x50\x5a\xdf\xb8\x94\xb1\xb6\x8a\xd8\xbb\x16\x8a\xd8\x07\xed\x9b\x1b\xc2\xcd\xbe\x6b\xbc\x59\x1d\xe3\x3b\x84\xbb\x9d\x96\x8e\x4b\x7a\xc5\x60\x75\xdc\x57\xec\x85\x35\x3f\xf4\x9f\xfe\x3e\x51\xe9\x8f\x16\xba\x54\xb9\xde\x07\xaa\x7c\x40\x8b\x9a\x80\x16\x85\xbc\xea\x0b\xca\xab\x46\x02\x19\x12\xc8\x90\x40\x86\x04\x32\x18\x80\xbb\xde\xa2\x41\x66\x6b\x9c\xc7\xc8\x42\xb2\xc9\x9e\x64\x93\xe1\xda\x5d\x99\xdb\xb9\xf3\x14\x93\x58\x70\xb7\xa2\x6e\x35\x99\x4c\xea\x94\xfe\xf2\x4a\x0a\xaa\x87\xf8\x8b\xa2\xc5\x96\xea\x13\x77\xd2\x39\x63\xf7\xea\x5f\xfb\xf7\x35\xf7\xc9\x2d\x97\x30\x27\xd8\x24\xa9\x88\xf3\x0d\x45\x87\x95\xb2\xc0\x7f\x12\x6c\x96\xdd\xe3\x4c\xe9\x8d\x56\xd7\x99\xb3\x45\xc0\xc3\x50\x68\x85\x93\xb4\x11\x1e\x68\x05\xe8\xf6\xfd\x31\x2b\x34\xdd\xe3\x99\xf4\x84\x4c\x68\x99\x9a\xbd\xb4\xe2\x53\x4f\xca\xee\xb5\xc4\xd4\xde\x10\x25\x56\x3a\x26\xa0\x6a\x93\x88\x98\x22\xa1\x72\x8d\xf9\xb9\x67\x41\xa9\x9b\x99\x2e\xb7\x1e\xf6\x06\x06\x37\xdb\x95\xee\xc0\x39\x82\xd5\xfe\x08\x92\x4c\xb8\xc4\xf8\x3e\x6a\x7e\xba\x0d\x20\x1e\x0a\x1b\x06\x14\x1f\x1d\x14\xa7\x70\x9a\xa3\x1a\xf7\x5e\xd3\xb9\x3f\xec\x5f\x8f\xd7\x22\xf6\x44\xab\x23\x93\x34\xe6\xa9\xf0\x7c\xe7\xba\xfd\x39\xea\xf3\xb3\x39\x92\x56\xfe\x36\xfa\x53\xc4\xe3\xd4\xa7\x6c\x37\x1d\xfa\x75\xa0\x2e\x45\xbf\x76\x76\xef\x73\x5f\x24\x7f\x8f\xb5\xb1\x28\x47\x5e\x31\xf8\xa4\x27\xee\x93\xbe\x1c\xb2\x5f\xc9\x17\xb1\x2f\x97\xce\x69\x52\x6b\x4c\x9e\x27\xff\x7a\xc7\xfa\xf3\x86\x3c\x72\x3a\x91\x99\x07\x74\x66\x28\xc3\x6b\x7d\x36\x1d\x41\x4e\xf1\x84\xbd\xfe\x25\x91\xe1\x42\xa7\x8b\x7f\x51\x2b\x9d\xf9\xfc\xd5\xae\x7f\xf9\x1f\xdf\x0c\x29\xe4\xa0\xfd\xbc\xf9\x24\x63\x87\xa8\x81\x27\x69\xf0\x25\x7b\xb8\x5a\xa9\xbf\x3d\x5c\xb1\xbb\x92\x34\x29\x1a\x5d\xbb\xf8\xc9\xa6\x31\x2f\xea\x35\x77\x68\x00\x28\xe1\x38\xf0\x1d\xe3\xb4\x24\x13\x48\x7e\x37\x63\xab\x13\x72\x23\x21\xa3\x40\xcc\x99\xfe\x4d\xaa\x33\x60\xe7\x14\xc5\x84\xd7\x0e\x44\xf6\xf3\xc7\x88\x57\xfd\x10\x2c\x21\xfd\x05\x2c\xa1\xb3\x04\x1c\x54\x02\xa8\x07\x6b\x0b\x6d\x3a\xf7\x7c\x45\x01\x77\x0e\x55\xd8\xcc\x59\x93\x55\xd9\x10\x7c\x09\x15\x6d\xfa\x2a\xda\x80\x34\x21\x6c\xd8\xd9\x37\x08\xbe\x9c\x9e\x76\xb1\x19\xb0\x9f\xf5\x15\x6b\x8e\x66\xa4\x0c\xb1\x9a\x86\x65\x9d\x83\x38\x53\x45\x20\x74\xfd\x6f\xbe\xbb\xe1\x41\x31\x23\x91\x67\x75\x43\xe8\x29\xe7\x85\x90\x9d\x1f\xb3\x60\x9f\x19\x5d\x61\x96\x57\x8f\x2a\x95\x03\xca\xd4\x18\xe6\x87\x49\x2a\x78\xc9\x71\x58\x55\x72\xbe\x17\xbd\x52\x59\xd2\xd9\x27\x19\xdf\x05\x41\xa6\xf1\x24\x57\x03\x58\xb0\x76\x9e\x70\x59\x39\x82\x7b\x1c\x6d\xff\xc9\xc6\xf2\x32\x57\x20\x1a\xbe\xe9\x66\x0e\xa2\x0c\xe3\x84\xcb\x30\x36\xe3\x9c\xa6\x12\x8c\xc7\xb7\xf9\x6c\x87\xaa\x50\x78\x11\x85\x17\x51\x78\x11\x85\x17\xa7\x56\x78\xb1\x79\xe5\xad\x2d\xba\xd8\x73\x60\xc0\xc9\x4a\x2d\x36\x3f\xfe\xee\x32\x8b\x43\x96\xc1\x21\xc5\x15\x9b\x65\xb0\xbb\xb0\x62\xcf\x32\x40\x39\x45\x94\x53\x44\x39\x45\x94\x53\x44\x39\xc5\xde\xca\x29\xb6\x58\xfd\xb7\x4a\x29\xee\xcd\xf8\xbb\xa0\xb8\xc0\x76\x4f\x33\xe1\x72\x90\xcd\xe2\xde\x57\x0a\xf2\xb4\x72\x47\x01\xc8\x5e\x46\x74\xbb\xf8\x63\xcf\xc3\x7a\xd6\x92\x8f\xcd\xe2\xd9\x53\xee\xb1\xef\x65\x73\xa8\x45\x1e\x9b\x85\x56\x03\x2e\x8e\xf6\xe7\x99\x4f\x7f\xb6\x87\x5e\x7b\x0b\x79\x5c\x26\x0b\xab\x84\xfb\xfc\x5a\xc1\x0a\xa0\x60\xa0\x60\x0c\x14\x0c\x14\x0c\x14\x0c\x14\x0c\x14\x0c\x14\x0c\x14\x0c\x14\x0c\x14\x6c\x48\x04\x08\x14\x0c\x14\x0c\x14\x0c\x14\x0c\x14\x0c\x14\x0c\x14\x6c\x8c\x14\x0c\x65\x41\x80\xff\x80\xff\x80\xff\x06\x3d\xa2\xc0\x7f\x65\xf1\x00\xff\x4d\x0b\xff\xd5\xd4\xf1\xef\x89\x02\x16\xd1\x5f\x68\x55\x1e\xb9\x62\x4f\x7e\xe8\x76\x88\x00\xdf\xe6\xe6\x0d\x99\x70\x46\x15\x56\x16\x52\x6e\xb7\xcd\x4a\xf6\x7e\xe1\xda\xc7\x02\x44\xc0\x43\xc0\xc3\x91\xc0\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\x43\x80\xc3\xe1\x83\x43\xb4\x46\x00\x03\x05\x03\x1d\x2a\x31\x03\x03\x05\x03\x05\x03\x05\x03\xad\x08\xed\x4c\x0c\x74\x29\x52\x7e\x7b\x73\x14\xde\x3c\x4b\x8d\xde\xca\x78\x7b\x22\x2d\x1b\x2a\x7a\x68\xf7\x50\x4a\x4f\xa4\x96\x51\xd2\xb3\xdf\x2d\x3e\xff\x5e\x77\x1a\x2a\x13\x1f\x08\x0f\x0b\x82\xa4\x74\xd1\xa9\x10\x44\x9a\x25\x85\xf3\x5e\x15\x7f\xbb\xcd\xcb\x75\x82\x3c\x62\xed\xd1\x8a\x8d\x4d\x6c\x4d\xa6\x52\xf0\xc0\x9e\x57\x42\x9d\x5d\x7a\x27\xe8\x3f\xa8\x82\x5b\x15\xfa\x60\xde\xc2\xbc\xe4\x36\x0d\xd7\x3c\xcf\xd1\x9e\xea\x4b\xd7\xcc\xee\x07\x94\xf3\x5b\xb9\x79\xf0\x7b\xf0\x7b\xf0\x7b\xf0\x7b\xf0\x7b\xf0\x7b\xf0\x7b\xf0\xfb\xe6\xd5\x16\xfc\x1e\xfc\x1e\xfc\x1e\xfc\x1e\xfc\x1e\xfc\x1e\xfc\xfe\xe2\xf8\x3d\xd8\x2f\xd8\x2f\xd8\xef\x38\x46\x14\xec\xb7\x2c\x1e\xb0\xdf\xb1\xb1\xdf\xd6\xd5\x6f\xb5\xba\xd3\x2d\xb8\xd2\xd7\x64\x8e\x0c\x94\x75\x65\x66\x69\x13\xaf\xd2\x27\x95\x88\xd5\x87\xec\x02\x67\x6b\x54\xdd\x0b\x54\xfd\x48\x8f\xfa\x1b\xc9\x2b\xe9\xa4\x45\x35\x3c\xb9\xf0\xe4\xc2\x93\x0b\x4f\xee\xd4\x3c\xb9\xed\x9a\x9b\xd7\x7a\x73\x4f\xd6\x77\xfe\x3f\x4a\x70\xc6\x86\x7d\x4b\x65\xdf\x1d\x35\xa3\xf4\x3c\x28\x3d\x5b\x91\x9a\x2e\x05\x8b\x94\xb4\x12\x65\xee\xb1\xbb\x90\xf9\xa1\x5e\x59\x64\xcc\x36\x61\xb6\x38\xb9\x4c\xb7\xd4\x67\xae\x1f\xab\xad\xf0\x9b\xc8\x66\xbc\x5a\x3e\xc9\xe3\x60\x5e\x79\x3b\x37\x8c\x80\xd9\x6a\x13\xd3\x5b\x66\xfa\xf9\xab\x57\xc1\x28\x8b\x66\x96\xcd\xd9\xbf\xe9\x17\x69\xb4\x68\xee\xfc\xc8\xae\xd9\x5d\x10\xfc\x48\x86\xbf\xab\x56\xe9\x4d\xa8\x06\x5e\xa9\x5d\x76\x4a\x9a\xcb\x6d\x37\x1b\x6f\x31\x50\xfa\x59\xce\x33\x4c\x27\x73\xbf\x1f\xd0\x90\xbf\xd6\xfd\x7c\x32\x89\xfc\x51\xb4\x23\x7c\x65\xc3\x93\x7a\xcf\x96\x62\xa5\xe3\x04\x32\x57\x4d\xae\x4a\x98\xd5\x8b\xa6\xce\x46\xe8\xcd\x61\xa9\x34\xe8\xf0\x3a\x14\x1e\xa7\x09\x6a\x2c\x01\x65\xb4\xd8\x1d\x54\xbb\x6d\xb3\x57\xc3\x28\x88\xfe\x7a\x2d\x5c\x9f\xa7\x22\x78\xce\x01\x7e\xbe\xe5\xfa\xc1\x5b\xa3\xe9\x93\xd0\x99\x17\x73\x87\xde\x1a\x5f\xba\x99\x42\x90\x6f\xda\x14\x1d\x61\x67\xe9\x26\x51\x37\x59\x1c\x2e\xae\xce\xb4\x0f\x64\x7e\x64\xa5\xd7\x40\x7b\x89\xb9\xbe\xcf\xb5\xe0\x61\xed\x3d\x1e\x31\xcc\x74\xcf\x0b\xba\xe5\x3a\xeb\xa9\xc1\x7e\x1a\xca\xf4\x3f\x84\xbc\xb4\x93\xcb\x6e\xfa\x72\xb2\xe9\x0f\x0e\x03\x0e\x03\x0e\x03\x0e\x03\x0e\xd3\x1b\x87\x69\xb9\x17\x6c\xb1\x98\xd3\x6d\x8b\x1f\x0b\xb5\xd7\xa2\x40\xf0\x44\x64\x4b\xd0\x22\x96\x11\xf7\x48\x3b\x5a\xc8\xc0\x77\x9e\x4b\x51\x7f\x76\xd2\xe5\xc5\xdb\xd4\xb4\xbb\x9d\xff\x73\xce\xbe\xea\xf5\x4c\xab\x2e\x91\x08\xd5\xcb\x92\xef\xa9\x82\xc9\x38\x7a\xe4\xa1\x8d\x42\x8c\x37\xe2\x66\xc5\x03\x6b\x2b\x3f\x5c\xe9\xaf\x1f\xae\xd8\xca\x0f\x79\xe0\xff\xd7\x6e\x24\x4b\xc1\xb8\x4b\xce\x79\x79\xa3\x1d\x97\x6e\x6e\x86\xe9\xcb\xcf\x92\xfc\x24\x6d\x9f\xce\xd9\xbd\x4f\x8b\x63\xe1\xd6\x65\xbc\xfd\x6c\x39\x8a\x49\xb5\x79\x4c\x36\x8a\x4c\x1f\x8f\x19\x50\xfd\x04\x1f\xed\xb3\xef\x54\x79\xea\xdc\xa0\xdd\x1a\x66\xf4\xe8\xea\x85\x7d\x94\xdf\x99\xc7\xe3\x25\xf7\x4a\x7e\xc9\xcc\xa8\x11\xf1\x4a\xc6\x6b\x35\x26\xb5\xf2\xfa\xad\xf2\x44\xbb\xc5\x45\x4a\xaf\xd5\x58\x23\x2d\x5b\x5f\x69\x93\x8e\xef\xe6\xa6\x30\xe9\x0a\xe4\x9c\xc8\xc6\x58\x6d\xd6\x66\x27\xb5\xda\xc0\xbc\x30\x98\x76\x1f\xc9\x58\x48\x16\x51\x5b\xfe\xb1\x39\xbb\x73\x1c\x11\xa5\xb4\x37\x15\x2d\xbb\x99\x7e\x86\x19\xbb\x36\x13\xb0\x3c\x41\x93\x9f\xd8\xec\x67\xee\x3c\x79\xb1\xdc\x84\xae\x3a\x8a\xa2\x53\xe9\xa0\x8a\xe0\xb4\x0a\x69\xf4\xe3\xf2\x45\xec\x13\x2c\xb3\x2b\xfd\xc4\x66\x9f\x64\x2c\x0a\x97\x65\x0e\x4f\x1c\xee\xaa\xa7\x37\xf2\xd1\xc1\xcb\x74\xbd\x44\x9b\x9e\x5b\x17\x5c\x65\xd7\x38\x66\x42\x46\xd5\xe9\x7e\x1e\x8d\x73\xc2\xd0\xb4\xdd\x38\xec\x03\xa7\xe7\x1a\x05\x20\xd4\xde\xc6\x77\x1b\xa3\x9e\xce\xb7\x71\x4e\xa0\xda\x4e\x58\x7b\xa0\xea\x4b\xf5\x9f\x5a\x48\x87\xdc\xc7\x03\x31\xdd\xd7\x94\xa7\x9b\xb6\x7c\x6e\x8a\xd9\x57\x7a\x4b\xce\xd5\xa5\xb1\x64\x62\x0d\x3d\x13\xb3\x03\x9a\x8d\x44\xb2\xcb\x49\x24\x6b\xb7\x9d\x34\x25\x93\x9d\xce\xee\x42\x30\x02\x82\x11\x10\x8c\x80\x60\x04\x04\x23\xd4\x2d\xbe\xa0\xdc\x23\x92\x08\xc0\x27\xc0\x27\xc0\x27\xc0\x27\xc0\x27\xc0\xe7\xb4\xc0\x27\x58\x04\x58\x04\x58\x04\x58\x44\xef\x2c\xe2\x00\x5e\x3f\xd0\x54\xaf\x76\x22\xdc\x4e\xf7\x7a\xa9\xc7\x6d\x50\x14\x67\xe7\x09\x28\xd2\x87\x22\x7d\x93\x2e\xd2\x87\x6a\xf5\x03\xaf\x58\x60\x3e\xfd\x99\x0f\xb2\x4c\x3a\x06\x80\xda\x52\x63\x3c\x6c\x84\x7d\xfa\xc8\xae\x71\xdf\x71\xc9\xab\x7b\xa6\x4e\xf7\x8b\x60\x27\x79\xac\xc8\xa5\x2a\x8e\xf7\x60\x73\xa9\xc8\xfd\xf2\x85\x87\xdc\x13\xb1\x76\x24\xea\xd5\x31\x49\xa4\xe3\x93\x65\x9c\xb9\xec\x38\x79\x5e\x65\xcc\x44\x98\x2a\x55\xd5\xba\x0a\xd6\xfc\x49\x49\x31\x7d\x14\x89\xb0\xfa\x5e\x31\x63\xc8\x66\x16\x91\xbe\x4b\xee\x39\x19\xb3\xdb\x77\xef\xd5\xb1\x31\x77\x88\xc7\x05\x32\xf4\xb4\x76\x47\x2e\x34\x47\x86\x29\xf7\x43\xbd\x24\x91\x8b\x2a\x3f\x96\x18\x85\xa1\x85\x6c\xf9\x9c\x19\x30\x9e\x0c\x78\xe8\xcd\x65\xec\xdd\x44\x4f\xde\xcd\x26\xf4\x1d\xe9\x8a\x9b\x7f\x7c\x4e\x16\xea\x2a\x47\xfb\xbc\x8d\x70\xba\x1c\x9e\x41\xa9\x83\x23\xd4\xd2\xda\x6a\x68\xef\x5a\x68\x68\x1f\xb4\xe7\x6e\x30\x77\xfc\xae\xf1\x8e\x75\x54\xf0\x60\x6e\x79\x82\x6a\x30\x69\x1d\xc3\x56\x83\x5f\xb1\x2e\xca\x87\xd4\x74\xcf\xef\xb1\x8a\x48\x0b\x9d\xab\xa6\x74\x08\x0a\x86\x40\xd1\x9a\x80\xa2\x85\x14\xed\x0b\x4a\xd1\x46\x2e\x1a\x72\xd1\x90\x8b\x86\x5c\x34\xd8\x88\xbb\xde\xa2\x41\x26\x7e\x9c\xc7\xfa\x42\xde\x4a\x53\xde\xca\xc0\x6d\xb1\xcc\x5b\xdd\x79\xb6\x4a\x2c\xb8\x5b\x51\xbc\x9a\x2c\x28\x75\x4a\xcf\x29\x2a\x05\x4d\x44\xfc\x45\x81\x67\x4b\xf5\x89\x3b\xe9\x9c\xb1\x7b\xf5\xaf\xfd\xfb\x9a\xfb\xe4\xc8\x4b\x98\x13\x6c\x92\x54\xc4\xf9\xfe\xa2\x23\x54\x59\xe0\x3f\x09\x36\xcb\xee\x71\xa6\xd4\x48\xab\xfa\xcc\xd9\x22\xe0\x61\x28\xb4\xfe\x49\xca\x09\x0f\xb4\x3e\x74\xfb\xfe\x98\x05\x9b\xee\xf1\x4c\x6a\x43\x26\xb4\x4c\xeb\x5e\x5a\xf1\xa9\x27\x65\xf7\x5a\x62\x6a\xab\x88\x12\x2b\x1d\x13\x9b\xb5\x49\x44\x4c\x41\x55\xb9\x02\xfd\xdc\xb3\xa0\xd4\xcd\x4c\x17\x81\x0f\x7b\x3f\x83\x3b\xae\xbc\x09\x78\x62\xe8\xde\xb8\x97\x40\x69\x74\x83\x07\x5f\x3f\x1f\x5f\xa7\x40\x9d\xa3\xda\x09\x5f\xd3\xb9\x3f\xec\x5f\x9e\xd7\x22\xf6\x44\xab\x23\x93\x34\xe6\xa9\xf0\x7c\xe7\xba\xfd\x39\xea\xf3\xb3\x39\x92\x36\x82\x36\x3a\x55\xc4\xe3\xd4\xa7\x3c\x3a\x1d\x54\x76\xa0\x7e\x45\xbf\x36\x0c\x07\x75\x5f\x41\x01\x7b\x0c\x92\x45\x39\xb0\x8b\xc1\x6d\x3d\x71\xb7\xf5\xe5\xc4\x07\x54\xd2\x51\xec\xcb\xa5\x53\xa6\xd4\x42\x93\xa7\xe1\xbf\xde\xb1\x08\xbd\x21\xa7\x9d\xce\x93\xe6\x01\x9d\x19\xca\xf0\x5a\x9f\x4d\x47\x90\xdf\x3c\x61\xaf\x7f\x49\x64\xb8\xd0\xd9\xe8\x5f\xd4\x72\x67\x3e\x7f\xb5\x8b\x60\xfe\xc7\x37\x43\x0a\x5c\x68\x3f\x6f\x3e\xc9\xd8\x21\xb0\xe0\x49\x1a\x7c\xc9\x1e\xae\x56\xea\x6f\x0f\x57\xec\xae\x24\x4d\x0a\x76\xd7\x14\x80\xec\x1c\xf3\xa2\x5e\x73\x87\x06\x80\xf2\x99\x03\xdf\x31\x7e\x4d\x32\x8b\xe4\x77\x33\xb6\x3a\xdf\x37\x12\x32\x0a\xc4\x9c\xe9\xdf\xa4\x32\x06\x76\x4e\x51\xc8\x79\xed\x40\x64\x3f\x7f\x8c\x78\xd5\x0f\xc1\x3a\xd2\x5f\xc0\x3a\x3a\x73\xb0\x42\x25\x52\x7b\xd8\xf6\xd1\xa6\x73\x0f\x59\x14\x70\xe7\x50\x25\xce\x9c\x35\x6d\x35\x0e\xb1\x9d\xd0\xdd\x2e\x44\x77\x1b\x90\x8a\x84\x9d\x3c\xfb\x06\xb1\x9d\x93\xd7\x3d\x36\x43\xf7\xcc\xbe\x62\x2d\xe3\x24\x29\x65\xad\xa6\xab\x5a\xe7\x4c\xcf\x94\x35\x08\x5d\xff\x9b\xef\x6e\x78\x50\x4c\x91\xe4\x59\x21\x13\x7a\xde\x79\x21\x0e\xe8\xc7\x2c\x82\x68\x46\x57\x98\xe5\xe5\xac\x4a\xf5\x89\x32\x4d\x87\xf9\x61\x92\x0a\x5e\xf2\x37\x56\xf5\xa0\xef\x5b\xce\xac\x2c\x0b\xee\x93\x8c\xef\x82\x20\x53\x8a\x92\xab\x01\x2c\x67\x3b\x4f\xb8\xac\xcc\xc5\x3d\xfe\xb9\xff\x64\x03\x7a\xc1\xab\x12\x8d\xe1\xc4\x53\x19\x51\x26\x72\xc2\x65\x22\x9b\xa1\x50\x53\x89\xc8\xe3\xfb\x93\xb6\x03\x5e\x28\x0c\x89\xc2\x90\x28\x0c\x89\xc2\x90\x53\x2b\x0c\xd9\xbc\xf2\xd6\x16\x85\xec\x39\xbc\xe0\x64\xa5\x20\x9b\x1f\x7f\x77\x19\xc8\x21\xcb\xe0\x90\xe2\x8f\xcd\x32\xd8\x5d\xf8\xb1\x67\x19\xa0\xdc\x23\xca\x3d\xa2\xdc\x23\xca\x3d\xa2\xdc\x63\x6f\xe5\x1e\x5b\xac\xfe\x5b\xa5\x1e\xf7\x66\x15\x5e\x50\x74\x61\xbb\xa7\x99\x70\xb9\xca\x66\x71\xef\x2b\x55\x79\x5a\xb9\xa3\x40\x65\x2f\x23\xba\x5d\x9c\xb2\xe7\x61\x3d\x6b\x49\xca\x66\xf1\xec\x29\x47\xd9\xf7\xb2\x39\xd4\x22\x94\xcd\x42\xab\x41\x18\x47\xfb\xf3\xcc\xa7\x3f\x0f\x04\x61\x7b\xcb\x86\x5c\x30\x1f\xab\x44\x09\xfd\x5a\xa1\x0c\x20\x63\x20\x63\x0c\x64\x0c\x64\x0c\x64\x0c\x64\x0c\x64\x0c\x64\x0c\x64\x0c\x64\x0c\x64\x6c\x98\x54\x08\x64\x0c\x64\x0c\x64\x0c\x64\x0c\x64\x0c\x64\x0c\x64\x6c\x8c\x64\x0c\x05\x47\x80\x04\x81\x04\x81\x04\x07\x3d\xa2\x40\x82\x65\xf1\x00\x09\x4e\x10\x09\xd6\x74\x12\xe8\x89\x0c\x16\x71\x60\x68\xf5\x1e\xb9\x62\x4f\x7e\xe8\x76\x88\x05\xdf\xe6\x36\x0e\xd9\x71\x46\x1f\x56\x66\x52\x6e\xbc\xcd\x4a\x46\x7f\xe1\xda\x2f\x82\x8a\x00\x8a\x00\x8a\x63\x02\x8a\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x80\x89\x23\x81\x89\x68\xc4\x00\x2e\x0a\x2e\x3a\x54\x8a\x06\x2e\x0a\x2e\x0a\x2e\x0a\x2e\x5a\x11\xda\xa9\xb8\xe8\x5f\xa9\x08\xe9\xad\xb8\x39\x0a\x71\x9e\xa5\xd0\x6f\x65\x90\x3d\x6a\x05\xbb\x92\xf1\x3a\x9b\xd4\x9c\x69\x00\xb3\x1b\x56\x7a\x22\xbd\xcf\x9e\xfd\x6e\xf1\xf9\x5f\xd5\xe3\x51\xda\xf8\x40\x6e\x98\x09\x71\xec\xd4\x30\x9b\x16\x85\x73\x5e\x15\x7f\x77\xe7\x2b\x64\xe3\x0a\x46\xfd\x2a\x95\x0c\x7d\xbd\x34\xb6\x7d\x8f\x0c\xf6\xbf\x5b\x7c\xfe\xbd\xee\x54\xbc\x52\x87\xbf\x52\x56\x90\x94\x90\x3d\x99\x37\xab\x86\xc9\x1f\xf6\x86\xf9\xa1\x17\x8b\xa4\x3c\x7a\xdd\x07\xe6\x68\xcf\x70\x6c\x7c\x4b\xd6\xf5\x60\x63\x72\x3e\xeb\x7b\xd8\xf3\x72\xa8\xf3\xb7\xde\x0e\x73\x1a\xea\x50\x57\x85\x3f\x98\x37\x72\x9e\x4f\xb8\xac\x22\xbe\x19\xb5\xc9\xbf\x86\xcd\xa1\x31\x9d\xa5\xd9\xe7\xfb\x6c\x6d\x58\xcc\xf6\xeb\x85\xc0\x18\x04\xc6\x20\x30\x06\x81\x31\x08\x8c\x41\x60\x0c\x02\x63\x10\x18\x83\xc0\x98\x73\xcb\x00\x81\x31\x08\x8c\x41\x60\x0c\x02\x63\x10\x18\x83\xc0\x98\xf1\x05\xc6\x20\xa8\x02\x41\x15\x08\xaa\x18\xc7\x88\x22\xa8\xa2\x2c\x1e\x04\x55\x8c\x22\xa8\xc2\xf2\xaa\x1d\x39\xe6\xb5\x18\x4b\xab\x3b\xdd\x92\x2c\x7d\x4d\xe6\xc8\x40\x59\x57\x66\x96\x36\x03\x2c\x7d\xda\x16\xc2\xfa\x90\x5d\x26\xcf\xf0\xae\xb9\x58\xbf\xed\xe5\x7b\x21\xae\x1f\xe9\x81\x7f\x23\xb9\x25\x9d\xf4\x94\x87\x47\x17\x1e\x5d\x78\x74\xe1\xd1\x9d\x9a\x47\x77\xcf\x7e\xdb\xe4\xd5\xdd\xaf\xbb\xed\xdf\x77\x0f\x5a\x7b\xff\xa3\x04\x67\x6c\xd9\xb7\xd4\x7a\xc1\x51\x33\x4a\xcf\x83\xd2\xb3\x15\xe9\xe9\x52\xb0\x48\x49\x2b\x51\x66\x1f\xbb\x0b\x99\x1f\xea\x95\x45\xc6\x6c\x13\x66\x8b\x93\xcb\xdc\xf8\xf9\xf7\x4d\xc8\x5c\x3f\x56\x9b\xe1\x37\x91\xcd\x78\xb5\x7c\x92\xe7\xc1\xbc\xf2\x76\x6e\x18\x01\xb3\xd5\x26\xa6\xb7\x2c\x8a\xa5\x23\x12\x72\x11\x18\xa5\xd1\xcc\xb2\x39\xfb\x37\xfd\x22\x8d\x16\xcd\x9d\x1f\xd9\x35\xbb\x0b\x82\x1f\xc9\x01\xe0\xaa\x55\x7a\x13\xaa\x81\x57\xea\x97\x9d\x92\xe6\x72\xc2\x3d\x62\xa0\xf4\xb3\x9c\x67\x98\x4e\xe6\x86\x6f\x27\x8a\xdd\xae\xf8\x93\x49\xe4\x8f\xa2\x3d\xe1\x2b\x5b\x9e\xd4\x7c\xb6\x14\x2b\x1d\x2f\x90\xb9\x6c\x72\x55\xc2\xac\x5e\x34\x75\x36\x42\x6f\x0e\x4b\xa5\x49\x87\xd7\xa1\xf0\x38\x4d\x50\x63\x11\x28\xe3\xc5\xee\xa0\xda\x7d\x9b\xbd\x1a\x46\x51\xf4\xd7\x6b\xe1\xfa\x3c\x15\xc1\x73\x0e\xf2\xf3\x2d\xd7\x0f\xde\x1a\x8d\x9f\x84\xce\xbc\x98\x3b\xf4\xd6\xf8\xd2\xcd\x14\x82\x7c\xd3\xa6\x28\x09\x3b\x4b\x37\x89\xba\xc9\xe2\x70\x71\x75\xa6\x7d\x20\xf3\x23\x2b\xbd\x06\xda\x4b\xcc\xf5\x7d\xae\x05\x0f\x6b\xef\xf1\x88\x61\xa6\x7b\x5e\xd0\x2d\xd7\x59\x51\x0d\x76\xd4\x50\xa6\xff\x21\x04\xa6\x9d\x5c\x76\x53\x98\x93\x4d\x7f\xf0\x18\xf0\x18\xf0\x18\xf0\x18\xf0\x98\xde\x78\x4c\xcb\xbd\x60\x8b\xc9\x9c\x6e\x5b\xfc\x58\xa8\x75\x18\x05\x82\x27\x22\x5b\x82\x16\xb1\x8c\xb8\x47\xda\xd1\x42\x06\xbe\xf3\x5c\x8a\xfe\xb3\x93\x2e\x2f\x96\xa8\xa6\xdd\xed\xfc\x9f\x73\xf6\x55\xaf\x67\x5a\x75\x89\x44\xa8\x5e\x96\x7c\x4f\x15\x4c\xc6\xd1\x23\x0f\x6d\x34\x62\xbc\x11\x37\x2b\x1e\x58\x5b\xf9\xe1\x4a\x7f\xfd\x70\xc5\x56\x7e\xc8\x03\xff\xbf\x76\x23\x59\x0a\xc6\x5d\x72\xd2\xcb\x1b\xed\xc0\x74\x73\x33\x4c\x5f\x7e\x96\xe4\x27\x69\xfb\x74\xce\xee\x7d\x5a\x1c\x0b\xb7\x2e\xe3\xed\x67\xcb\x91\x4c\xaa\xcd\x63\xb2\x51\x64\xfa\x78\xcc\x80\xea\x27\xf8\x68\x9f\x7d\xa7\xca\x53\xe7\x0e\xed\xd6\x30\xa3\x47\x57\x2f\xec\xa3\xfc\xce\x3c\x1e\x2f\xb9\x57\xf2\x4f\x66\x46\x8d\x88\x57\x32\x5e\xab\x31\xa9\x95\xd7\x6f\x95\x27\xda\x2d\x2e\x52\x7a\xad\xc6\x1a\x69\xd9\xfa\x4a\x9b\x74\x7c\x37\x37\x85\x49\x57\x20\xe7\x44\x36\xc6\x09\x25\x98\xd1\xb7\x56\x1b\x98\x17\x06\xd3\xee\x23\x19\x13\xc9\x22\x6b\xcb\x3f\x36\x67\x77\x8e\x23\xa2\x94\xf6\xa6\xa2\x65\x37\xd3\xcf\x30\x63\xd7\x66\x02\x96\x27\x68\xf2\x13\x9b\xfd\xcc\x9d\x27\x2f\x96\x9b\xd0\x55\x47\x51\x94\x2a\x1d\x54\x11\x9c\x56\x21\x8d\x7e\x5c\xbe\x88\x7d\x82\x65\x76\xa5\x9f\xd8\xec\x93\x8c\x45\xe1\xb2\xcc\xe1\x89\xc3\x5d\xf5\xf4\x46\x3e\x3a\x88\x99\xae\x97\x68\xd3\x73\xeb\x82\xab\xec\x1a\xc7\x4c\xc8\xa8\x3a\xdd\xcf\xa3\x71\x4e\x18\x9e\xb6\x1b\x87\x7d\x00\xf5\x5c\xa3\x00\x94\xda\xdb\xf8\x6e\xe3\xd4\xd3\xf9\x36\xce\x09\x56\xdb\x09\x6b\x0f\x5c\x7d\xa9\xfe\x53\x0b\xeb\x90\x18\x79\x20\xa6\xfb\x9a\xf2\x74\xd3\x96\xcf\x4d\x35\x11\x4b\x6f\xcb\xb9\xca\x34\x92\xa4\xac\x71\x64\x69\x76\x02\xb6\x91\x5b\x76\x39\xb9\x65\xed\x76\x96\xa6\xfc\xb2\xd3\x99\x60\x88\x4b\x40\x5c\x02\xe2\x12\x10\x97\x80\xb8\x84\xba\xc5\x17\xc0\x7b\x44\x12\x01\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x9d\x16\x03\x05\x96\x00\x96\x00\x96\x00\x96\xe8\x1d\x4b\x1c\x80\xee\x07\x9a\xfd\xd5\x4e\x84\xdb\x19\x60\x2f\xf5\xb8\x0d\x0a\xe8\xec\x3c\x01\x05\xfc\x50\xc0\xef\x32\x0a\xf8\xa1\x45\xc4\xc0\xab\x19\x98\x4f\x7f\xe6\x83\x2c\x93\x8e\x89\xa0\x36\xd9\x18\x0f\x5b\xd0\x3f\x7d\x6c\x3f\xfc\xef\xb8\xc4\xd6\x3d\x53\xa8\xaf\x55\xb1\x93\x4c\x57\x64\x5b\x15\x47\x7d\xb0\xd9\x56\xe4\x95\xf9\xc2\x43\xee\x89\x58\xfb\x17\xf5\x5a\x99\x24\xd2\xf1\xc9\x60\xce\x3c\x79\x9c\x1c\xb2\x32\x66\x22\x4c\x95\x06\x6b\x3d\x08\x6b\xfe\xa4\xa4\x98\x3e\x8a\x44\x58\x35\xb0\x98\x53\x64\x73\x8f\x48\x0d\x26\xaf\x9d\x8c\xd9\xed\xbb\xf7\xea\xd8\x98\x3b\x84\xe9\x02\x19\x7a\x5a\xe9\x23\xcf\x9a\x23\xc3\x94\xfb\xa1\x5e\xa0\xc8\x73\x95\x1f\x4b\xe8\xc2\x40\x44\xb6\x7c\xce\xec\x1a\x4f\x06\x3c\xf4\xe6\x32\xf6\x6e\xa2\x27\xef\x66\x13\xfa\x8e\x74\xc5\xcd\x3f\x3e\x27\x0b\x75\x95\xa3\x5d\xe1\x46\x38\x5d\x0e\xcf\xa0\xb4\xc4\xd1\x2a\x6f\x6d\x15\xb7\x77\x2d\x14\xb7\x0f\xda\xad\x37\xb0\xfb\x7e\xd7\x78\xdf\x3a\x86\x78\x60\x37\x3e\x51\x4d\x99\x34\x93\x41\x6b\xca\xaf\x58\x17\xd5\x47\xf4\x5f\xff\x3e\x51\x11\x92\x56\x6a\xd9\x8e\xca\x23\xa8\x37\x02\x2d\x6c\x12\x5a\x18\x32\xbc\x2f\x28\xc3\x1b\xa9\x6c\x48\x65\x43\x2a\x1b\x52\xd9\x60\x40\xee\x7a\x8b\x06\x99\x37\x72\x1e\x73\x0c\x69\x2f\xe6\xb8\xbd\x69\x2f\xc3\x36\xcb\x32\xdf\x76\xe7\xc9\x2e\xb1\xe0\x6e\x45\xf7\x6a\x36\xa6\xd4\x49\x27\xc9\x70\x29\x28\x25\xe2\x2f\x8a\x5b\x5b\xaa\x4f\xdc\x49\xe7\x8c\xdd\xab\x7f\xed\xdf\xd7\xdc\x27\x87\x5f\xc2\x9c\x60\x93\xa4\x22\xce\xb7\x1a\x1d\xe0\xca\x02\xff\x49\xb0\x59\x76\x97\x33\xa5\x51\x5a\x2d\x68\xce\x16\x01\x0f\x43\xa1\x55\x51\xd2\x53\x78\xa0\x55\xa3\xdb\xf7\xc7\xac\xdd\x74\x8f\x67\xd2\x20\x32\xa1\x65\x0a\xf8\xd2\x8a\x4f\x3d\x29\xbb\xd7\x12\x53\xbb\x46\x94\x58\xe9\x98\xd0\xae\x4d\x22\x62\x8a\xc9\xca\x75\xe9\xe7\x9e\x05\xa5\x6e\x66\xba\x04\x7d\xd8\x5b\x1b\x5c\x75\xbb\x76\x05\x4f\x0c\xdc\x53\xf7\x12\xa6\x4d\x80\xc6\x78\x4b\x6a\xef\xa0\x0d\xac\x1e\x0a\xa7\x06\xa0\x1f\x1d\xa0\xa7\x90\x9f\xa3\x9a\x18\x5f\xd3\xb9\x3f\xec\x5f\xa9\xd7\x22\xf6\x44\xab\x23\x93\x34\xe6\xa9\xf0\x7c\xe7\xba\xfd\x39\xea\xf3\xb3\x39\x92\xf6\x84\x36\x6a\x56\xc4\xe3\xd4\xa7\x8c\x3c\x1d\x9e\x76\xb0\xca\x45\xbf\x37\x24\xf7\x75\x5f\x51\x05\x7b\xcc\x95\x45\x39\x54\x8c\xc1\xa9\x3d\x71\xa7\xf6\xe5\x84\x16\x54\x12\x5c\xec\xcb\xa5\x93\xb0\xd4\x82\x93\x27\xf6\xbf\xde\xb1\x18\xbd\x21\x97\x9e\xce\xbc\xe6\x01\x9d\x19\xca\xf0\x5a\x9f\x4d\x47\x90\x57\x3d\x61\xaf\x7f\x49\x64\xb8\xd0\xf9\xed\x5f\xd4\xb2\x67\x3e\x7f\xb5\x8b\x61\xfe\xc7\x37\x43\x8a\x79\x68\x3f\x6f\x3e\xc9\xd8\x21\xec\xe0\x49\x1a\x7c\xc9\x1e\xae\x56\xea\x6f\x0f\x57\xec\xae\x24\x4d\x0a\x9f\xd7\x8c\x80\x4c\x1f\xf3\xa2\x5e\x73\x87\x06\x80\x32\xa4\x03\xdf\x31\x5e\x4f\xb2\x94\xe4\x77\x33\xb6\x3a\x83\x38\x12\x32\x0a\xc4\x9c\xe9\xdf\xa4\xc2\x08\x76\x4e\x51\x10\x7b\xed\x40\x64\x3f\x7f\x8c\x78\xd5\x0f\xc1\x60\xd2\x5f\xc0\x60\x1a\x8a\xc1\x14\x55\xa2\xc0\x07\x6d\x32\x6d\x3a\xf7\xa2\x45\x01\x77\x0e\xd7\xea\xcc\x79\x97\xa0\xd7\x21\x5a\x14\x2a\xdd\x45\xa9\x74\x03\xd2\x9c\xb0\xc1\x67\xdf\x20\x5a\xf4\xe2\x14\x93\xcd\xc0\x3d\xb9\xaf\x58\x87\x31\x97\x37\x89\x66\xba\x85\xd0\xcb\x7e\x98\xa1\xfe\x1d\xbb\x97\x75\x4f\x0f\x0d\x9b\xc6\x82\x85\x17\x1f\x08\x07\x08\x07\x08\x07\x08\xa7\xf6\xc8\xf3\x21\x9c\xe3\x77\xc0\x96\x30\xa7\x66\x0b\x1c\xa5\xe9\x0f\xa4\x03\xfb\xff\xf2\xec\x7f\x20\x9d\x2e\xe7\x0d\x90\x0e\x3c\x3e\x30\xa0\x80\x74\xca\x42\x3b\x01\xd2\x79\x89\x9f\xa3\x25\xdc\x99\x8a\x9e\x07\xc4\x03\x15\xef\xa2\x54\xbc\x01\x69\x52\xd8\xf0\xb3\x6f\x80\x78\x2e\x4e\x51\x99\x06\xe2\xa1\x52\x88\x39\xd1\xe9\x95\xe1\x98\x8a\xd9\xa1\xeb\x7f\xf3\xdd\x0d\x0f\x8a\xd5\x37\x79\x56\x23\xdf\x3c\xf1\xbc\x90\x30\xfe\x63\x96\x6a\x3e\xa3\x6b\xcc\xf2\x5e\x29\xa5\xe6\x17\x99\x32\xc4\xfc\x30\x49\x05\x2f\xf9\x2f\xab\xaa\xd2\xf7\x5a\x87\x58\xa1\xc4\xe2\x27\x19\xdf\x05\x41\xa6\x39\x0d\x82\x0b\xed\x3c\xe1\xb2\x8a\x63\xee\xf1\xee\x51\x6d\xd7\xfb\x6f\x22\xbc\xf4\x12\x99\x34\x8e\xd3\xae\x93\x89\x66\x64\x13\x6e\x46\xd6\x4c\x9b\x9a\x1a\x91\xed\x75\x67\x75\x40\xd2\xd0\x7e\x0c\xed\xc7\xd0\x7e\x0c\xed\xc7\xa6\xd6\x7e\xac\x79\xe5\xad\x6d\x3d\xd6\x73\xdc\xc2\xc9\x1a\x8e\x35\x3f\xfe\xee\x66\x63\x43\x96\xc1\x21\x2d\xc6\x9a\x65\xb0\xbb\xbd\x58\xcf\x32\x40\x53\x31\x34\x15\x43\x53\x31\x34\x15\x43\x53\xb1\xde\x9a\x8a\xb5\x58\xfd\xb7\x1a\x8a\xed\xad\x43\x79\x41\x61\x8b\xed\x9e\x66\xc2\x4d\xd1\x9a\xc5\xbd\xaf\x21\xda\x69\xe5\x8e\x36\x68\xbd\x8c\xe8\x76\x0b\xb4\x9e\x87\xf5\xac\x8d\xcf\x9a\xc5\xb3\xa7\xe9\x59\xdf\xcb\xe6\x50\x5b\x9d\x35\x0b\xad\x86\x62\x1c\xed\xcf\x33\x9f\xfe\x3c\x84\x89\x35\x25\x3f\x5d\x3c\x2a\xdb\x8a\x29\xfa\xb5\x02\x1b\x00\xc9\x00\xc9\x18\x20\x19\x20\x19\x20\x19\x20\x19\x20\x19\x20\x19\x20\x19\x20\x19\x20\xd9\x60\x01\x11\x20\x19\x20\x19\x20\x19\x20\x19\x20\x19\x20\x19\x20\xd9\x18\x21\x19\x8a\x9a\x80\x0e\x82\x0e\x82\x0e\x0e\x7a\x44\x41\x07\xcb\xe2\x01\x1d\x9c\x20\x1d\xac\x69\x47\xdd\x13\x24\x2c\x92\xc1\xd0\xea\x3d\x72\xc5\x9e\xfc\xd0\xed\x94\x10\xbe\xcd\xad\x1c\xb2\xe4\x8c\x46\xac\x0c\xa5\xdc\x7c\x9b\x95\xcc\xfe\xc2\xb5\x3b\xe0\x8b\x60\x8b\x60\x8b\x63\x63\x8b\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe0\x8a\xe3\xe0\x8a\xe8\xfc\x00\x48\x0a\x48\x3a\x5c\xa4\x06\x48\x0a\x48\x0a\x48\x0a\x48\x5a\x11\xda\x89\x20\x69\x28\xd2\xef\x32\x7e\x52\x76\xec\xd3\x7b\x7a\xab\x8e\xc2\x9e\x67\xa9\x10\x5c\x19\x6b\x4f\xa4\xcc\x0f\x57\x32\x5e\x67\x73\x9b\x33\x0d\x62\x76\xe3\x4b\x4f\xa4\xff\x9b\x89\xe0\x6e\xf1\xf9\x5f\xd5\xe3\x51\x13\xf9\x40\x86\x98\x09\x71\xe4\x04\x31\x7f\x33\x0a\xe7\xbc\x2a\xfe\x6e\xd3\x9b\xf4\xed\x76\xdc\x2f\x53\xc9\xe6\xd7\x6b\x64\xdb\x37\xe9\xdf\xb7\x77\x8b\xcf\xbf\xd7\x9d\x85\xf7\xe9\xf0\xf7\xc9\x0a\x92\x92\xb4\x27\xf3\x5a\xfd\x9f\x6f\xb7\x2f\x78\xb3\x4c\xb4\x8e\x13\xf0\x6a\x42\xbf\x76\xa4\x74\x1b\xae\xa3\xaf\xc9\x1c\x19\x04\xc2\xb1\xbb\x8b\xb1\xa6\x3f\xa8\x5b\xd8\xf3\x62\xe8\x73\x8b\xef\xc6\x87\xec\x32\xbb\x2e\xd1\x6f\x43\x8f\x5e\xe6\xe9\x47\x7a\xcc\xdf\x48\x64\xdd\xf4\xef\x00\x26\x06\x26\x06\x26\x06\x26\x9e\x1a\x26\x6e\xd7\xf9\xa5\x16\x15\x9f\xac\x29\x0f\x7a\x27\xb5\x1e\xa8\x73\xf6\x4e\x3a\x19\xdb\x3f\xa0\x5b\x51\x2d\xdb\x3e\x99\x44\xfe\x28\xba\xb7\xfc\x90\x25\xda\xeb\xc4\x96\x62\xa5\x83\x10\x33\x0e\x94\xab\x12\x66\xf5\xa2\xa9\x53\xe8\x16\x15\xca\xf0\x3a\x14\x1e\xa7\x09\x6a\x1c\x54\xc5\xae\x52\x9a\x09\x67\xaf\x86\xd1\x11\xfd\xf5\x5a\xb8\x3e\x4f\x45\xf0\x9c\x47\x07\xe6\x5b\xae\x1f\xbc\x35\x0e\x28\x12\x3a\xf3\x62\xee\xd0\x5b\xe3\x4b\x37\x53\x08\xf2\x4d\x9b\x42\x2f\xed\x2c\xdd\x24\xea\x26\x8b\xc3\xc5\xd5\x99\xf6\x81\xcc\x8f\xac\xf4\x1a\x68\x2f\x31\xd7\xf7\xa9\x3b\x5c\xd6\xdc\xe3\x11\xc3\x4c\xf7\xbc\xa0\x5b\xae\x73\xea\x35\xb8\xf5\x86\x32\xfd\x0f\x09\xeb\x68\x27\x97\xdd\xa1\x1d\x27\x9b\xfe\x08\xf2\x40\x90\x07\x82\x3c\x10\xe4\x81\x20\x8f\xde\x82\x3c\x5a\xee\x05\x5b\x81\x1e\xa7\xdb\x16\x3f\x16\x12\xc6\xa2\x40\xf0\x44\x64\x4b\xd0\x22\x96\x11\xf7\x48\x3b\x5a\xc8\xc0\x77\x9e\x4b\x29\x05\x76\xd2\xe5\x19\x67\x6a\xda\xdd\xce\xff\x39\x67\x5f\xf5\x7a\xa6\x55\x97\x48\x84\xea\x65\xc9\xf7\x54\xc1\x64\x1c\x3d\xf2\xd0\xa6\x38\xc4\x1b\x71\xb3\xe2\x81\xb5\x95\x1f\xae\xf4\xd7\x0f\x57\x6c\xe5\x87\x3c\xf0\xff\x6b\x37\x92\xa5\x60\xdc\x25\x66\x2c\x6f\x34\x4f\x73\x73\x33\x4c\x5f\x7e\x96\xe4\x27\x69\xfb\x74\xce\xee\x7d\x5a\x1c\x0b\xb7\x2e\xe3\xed\x67\xcb\x23\x04\x52\x6d\x1e\x93\x8d\x22\xd3\xc7\x63\x06\x54\x3f\xc1\x47\xfb\xec\x3b\x55\x9e\xa3\xfa\x6f\x1f\x64\x98\xd1\xa3\xab\x17\xf6\x51\x7e\x67\x1e\x8f\x97\xdc\x2b\xb9\x26\x33\xa3\x46\xc4\x2b\x19\xaf\xd5\x98\xd4\xca\xeb\xb7\xca\x13\xed\x16\x17\x29\xbd\x56\x63\x8d\xb4\x6c\x7d\xa5\x4d\x3a\xbe\x9b\x9b\xc2\xa4\x2b\xe8\x36\xe9\x76\x8c\x13\x62\x72\xf4\xad\xd5\x06\xe6\x85\xc1\xb4\xfb\x48\x86\xe8\xb3\x74\x9d\xf2\x8f\xcd\xd9\x9d\xe3\x88\x48\xf7\x61\x2d\x5a\x76\x33\xfd\x0c\x33\x76\x6d\x26\x60\x79\x82\x26\x3f\xb1\xd9\xcf\xdc\x79\xf2\x62\xb9\x09\x5d\x75\x14\xa5\xbe\xd0\x41\x15\xc1\x69\x15\xd2\xe8\xc7\xe5\x8b\xd8\x27\x58\x66\x57\xfa\x89\xcd\x3e\xc9\x58\x14\x2e\xcb\x1c\x9e\x38\xdc\x55\x4f\x6f\xe4\xa3\x33\xa3\xe8\x7a\x89\x36\x3d\xb7\x2e\xb8\xca\xae\x71\xcc\x84\x8c\xaa\xd3\xfd\x3c\x1a\xe7\x84\x63\x79\xda\x8d\xc3\xbe\x78\x9e\x73\x8d\x02\x22\x7b\x7a\x1b\xdf\xed\xe8\x9e\xd3\xf9\x36\xce\x19\xe7\xd3\x4e\x58\x7b\x62\x7d\x5e\xaa\xff\xd4\x72\x3a\xe0\xe4\x03\x31\xdd\xd7\x94\xa7\x9b\xd1\x37\x80\xde\x45\x91\x0b\xa7\xed\xc8\xec\xd6\x3b\x72\xae\x2d\x75\x91\xe4\xbd\x05\xa8\xf7\xe6\x7a\x57\x61\x6f\x35\xe1\x7b\x5f\xae\x77\xe7\x75\x28\xb4\x9b\x2c\x36\xa6\xb5\xd5\xe7\x2b\x25\x28\x9a\x08\xb7\xba\x48\x91\x6f\xbf\x94\x6a\x23\x5b\xfd\x72\xb2\xd5\xdb\x6d\x2b\x4d\x19\xeb\xa7\xb3\xbf\x10\x94\x80\xa0\x04\x04\x25\x20\x28\x01\x41\x09\x75\x8b\x2f\x68\xf7\x88\x24\x02\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x3a\x2d\x00\x0a\x26\x01\x26\x01\x26\x01\x26\xd1\x3b\x93\x38\x80\xdb\x0f\x34\x13\xb9\x9d\x08\xb7\xb3\x91\x5f\xea\x71\x1b\x14\xcd\xd9\x79\xc2\x65\x55\x06\x9e\x17\x40\xc6\xb7\xdb\x79\xd1\x8d\x3f\xe5\xd4\xc3\x66\x68\xd4\x55\x97\xd1\xd3\x81\xa2\x23\x8a\x02\x8f\xa5\xc4\xcc\xab\xca\xb0\x5d\x45\x32\xe9\x98\x8a\x69\xdb\x85\xf1\xb0\x2d\x01\xd3\x27\x74\xc9\xc0\x8e\xcb\xec\xdc\x53\xa0\xa8\xaf\x95\xa1\x93\x54\x4f\xa4\x1b\x15\x47\x7d\xb0\xe9\x46\xe4\x99\xf8\xc2\x43\xee\x89\x58\xfb\xd8\x74\x25\xae\x24\x91\x8e\x4f\x46\x63\xe6\xcd\xe2\xe4\x94\x94\x31\x13\x61\xaa\xb4\x38\x6b\x45\xaf\xb9\x9a\x44\xea\x90\x44\x58\x55\xa8\x98\x54\x63\x93\x6f\x48\x15\x24\xcf\x95\x8c\xd9\xed\xbb\xf7\xea\xd8\x98\x3b\x84\xaa\x02\x19\x7a\x5a\xf1\x21\xef\x92\x23\xc3\x94\xfb\xa1\x5e\x9b\xc8\x7b\x93\x1f\x4b\xee\x7b\x03\xd2\xd8\xf2\x39\xd3\xed\x3d\x19\xf0\xd0\x9b\xcb\xd8\xbb\x89\x9e\xbc\x9b\x4d\xe8\x3b\xd2\x15\x37\xff\xf8\x9c\x2c\xd4\x55\x8e\x76\x07\x1b\xe1\x74\x39\x3c\x83\xd2\x94\x46\xab\xc0\xb4\x55\x5e\xde\xb5\x50\x5e\x3e\x68\xd7\xd6\xc0\xee\xfb\x5d\xe3\x7d\xeb\x20\xda\x81\xdd\xf8\xf4\xb4\x45\xd2\x47\xc6\xa0\x2d\xbe\x62\xc7\xd4\xda\xa8\x69\x8f\xd3\x63\xc9\x8d\xf6\x3a\xd8\x76\x9d\x0d\x54\xd7\x28\xfe\x3a\x54\xae\x31\xaa\x5c\xc8\x67\xbe\xa0\x7c\x66\x24\x6e\x21\x71\x0b\x89\x5b\x48\xdc\x82\xb5\xb8\xeb\x2d\x1a\x64\x96\xc4\x79\x6c\x2f\x24\x79\x34\x24\x79\x8c\xc2\x06\xcb\xbc\xd8\x9d\xa7\x76\xc4\x82\xbb\x15\xed\xab\xa5\x25\xa5\xce\xec\x31\x9f\xa3\xa0\x91\x88\xbf\x28\x4a\x6b\xa9\x3e\x71\x27\x9d\x33\x76\xaf\xfe\xb5\x7f\x5f\x73\x9f\x5c\x7b\x09\x73\x82\x4d\x92\x8a\x38\xdf\x67\x74\x38\x27\x0b\xfc\x27\xc1\x66\x59\xbb\xd1\x99\x52\x27\xad\x0a\x34\x67\x8b\x80\x87\xa1\xd0\x7a\x28\x29\x29\x3c\xd0\x7a\xd1\xed\xfb\x63\x16\x6e\xba\xc7\x33\xa9\x0f\x99\xd0\x32\xed\x7b\x69\xc5\xa7\x9e\x94\xdd\x6b\x89\xa9\x2d\x23\x4a\xac\x74\x4c\x20\xd3\x26\x11\x31\x45\x20\xe5\x8a\xf4\x73\xcf\x82\x52\x37\x33\x5d\x5e\x3c\xec\x7d\x0d\x4e\xb9\x9a\x2d\xc1\x13\xe3\xf0\xc9\xbd\x84\xe0\xd6\xb4\x7a\xa9\xb9\x83\x31\xf5\x7b\x19\x2f\x93\xa6\x70\x8f\xa3\xca\x7d\x5f\xd3\xb9\x3f\xec\x5f\xb7\xd6\x22\xf6\x44\xab\x23\x93\x34\xe6\xa9\xf0\x7c\xe7\xba\xfd\x39\xea\xf3\xb3\x39\x92\x56\xc8\x36\xfa\x46\xc4\xe3\xd4\xa7\x6c\x2c\x1d\x9a\x74\x9c\xee\x41\x3f\x7a\x7e\x27\x6e\x5f\x20\x7d\x8f\xd2\xbe\x28\x47\x08\x31\xb8\x76\x27\xee\xda\xbd\x1c\x9a\x5e\xc9\x6b\xb0\x2f\x97\xce\xbd\x51\x6b\x4d\x9e\xcf\xfd\x7a\xc7\x3a\xf4\x86\x1c\x5b\x3a\xe1\x96\x07\x74\x66\x28\xc3\x6b\x7d\x36\x1d\x41\xbe\xe5\x84\xbd\xfe\x25\x91\xe1\x42\xa7\x35\x7f\x51\x2b\x9e\xf9\xfc\xd5\xae\x83\xf9\x1f\xdf\x0c\x09\xf3\xb7\x9f\x37\x9f\x64\xec\x90\xf3\xdd\x93\x34\xf8\x92\x3d\x5c\xad\xd4\xdf\x1e\xae\xd8\x5d\x49\x9a\x14\x35\xad\x3d\xe5\x64\x03\x98\x17\xf5\x9a\x3b\x34\x00\x94\x18\x1b\xf8\x8e\xf1\xfd\x91\xc9\x20\xbf\x9b\xb1\xd5\x89\xa3\x91\x90\x51\x20\xe6\x4c\xff\x26\xe5\xc3\xdb\x39\x45\xb1\xcb\xb5\x03\x91\xfd\xfc\x31\xe2\x55\x3f\x04\xcb\x41\x7f\x01\xcb\x61\x00\x96\x43\x54\x89\xfb\x1d\x83\xed\xb0\xe9\xdc\x97\x14\x05\xdc\x39\x52\xa5\x33\x27\x4f\x57\xa9\x43\x74\x24\xf4\xb9\x8b\xd2\xe7\x06\xa4\x36\x61\x77\xcf\xbe\x41\x74\xe4\x25\x69\x25\x9b\x71\xf8\x33\x5f\xb1\x83\x62\x0c\xcb\xad\xbc\xce\x53\xee\x6c\x8f\x2a\xb3\xa3\xd2\xd9\x27\x19\xdf\x05\x41\x46\xa1\x06\xd1\xf0\x6e\xe7\x09\xc8\x69\x43\x3a\xdb\x39\x02\x94\x4f\xc7\x41\x50\x30\x70\xc2\x05\x03\x9b\xc1\x4e\x53\xb1\xc0\xe3\x1b\x29\xb7\x83\x56\x28\x11\x88\x12\x81\x28\x11\x88\x12\x81\x53\x2b\x11\xd8\xbc\xf2\xd6\x96\x07\xec\x39\x44\xe0\x64\x45\x01\x9b\x1f\x7f\x77\x41\xc0\x21\xcb\xe0\x90\x32\x80\xcd\x32\xd8\x5d\x02\xb0\x67\x19\xa0\xf0\x1f\x0a\xff\xa1\xf0\x1f\x0a\xff\xa1\xf0\x5f\x6f\x85\xff\x5a\xac\xfe\x5b\x45\xff\xf6\xa6\xce\x5d\x50\x84\x60\xbb\xa7\x99\x70\xe1\xc2\x66\x71\xef\x2b\x5a\x78\x5a\xb9\xa3\x54\x61\x2f\x23\xba\x5d\xa6\xb0\xe7\x61\x3d\x6b\x71\xc2\x66\xf1\xec\x29\x4c\xd8\xf7\xb2\x39\xd4\x72\x84\xcd\x42\xab\x41\x16\x47\xfb\xf3\xcc\xa7\x3f\xdb\x42\xaa\x30\x23\x3c\xba\x08\x06\x7d\xfe\xbb\x9e\x5d\xf5\x58\x13\xa3\x90\x32\x2c\x57\x2d\xa8\xd5\x76\x65\x8c\x0f\xd9\x15\x32\x68\xe5\xd6\x5c\x07\x85\x32\xe0\xce\x85\x3b\x17\xee\x5c\xb8\x73\x27\xe8\xce\x1d\x43\xc7\x17\x44\x3e\xb6\x1e\xa8\x73\x46\x3e\xa2\x31\x0f\xca\x36\x5d\x70\xd9\x26\x74\x61\x02\x8c\x01\x8c\x01\x8c\x01\x8c\x01\x8c\x41\x17\x26\x54\x33\x44\x35\x43\x54\x33\x44\x35\xc3\xea\x8c\x3c\x69\xb3\xb1\x29\x91\x53\xb4\x7c\x9b\x36\x47\x45\xcb\xb7\x31\xb5\x7c\xab\xe5\x74\x48\x38\x45\x85\xd2\x23\x2a\x94\xe6\xda\xd2\x68\xd2\xb1\x06\x9f\x92\xd9\x09\xd0\x46\x42\xd9\xe5\x24\x94\xb5\xdb\x51\x9a\x92\xca\x4e\x67\x7a\x21\x1e\x01\xf1\x08\x88\x47\x40\x3c\x02\xe2\x11\xea\x16\x5f\x80\xee\x11\x49\x04\xec\x13\xec\x13\xec\x13\xec\x13\xec\x13\xec\x73\x5a\xec\x13\x38\x02\x38\x02\x38\x02\x38\xa2\x77\x1c\x71\x00\xb2\x1f\x68\xca\x57\x3b\x11\x6e\xa7\x7d\x4d\xaa\x2e\xf8\xce\x13\x50\xad\x0f\xd5\xfa\xa6\x5d\xad\xcf\xa8\x8b\xba\x56\x72\xe8\x32\x35\x36\x2c\x71\x64\x24\xde\xb2\x64\xe3\x3c\xaa\xb5\x87\xd6\x76\xc1\xd7\x7a\x61\x8a\x62\x49\xea\x69\x5d\xe6\xe8\xfe\xbe\x46\x04\x86\xca\x5f\xa3\xb9\x51\xd3\xd3\x98\x4f\x85\xe6\x46\x32\xe9\x18\x02\x6a\x53\xad\xd0\xec\x7d\x0f\xf0\xd3\xc7\x76\x8e\xfc\xc6\x50\x52\x1e\xd5\xe4\x2f\x27\xa7\x0a\xd5\xe4\x51\x4d\xbe\xe6\x66\x06\xae\xaa\x8d\xb0\x90\xfc\xb0\xbb\x3c\xbf\xec\x9e\xa7\xa7\x0d\x93\xee\x31\x70\x6d\xf8\x15\xeb\xa6\x9c\x88\xfe\xeb\xdf\x27\xaa\x2a\xd2\x4a\xf9\xda\x2e\x25\x82\x02\x22\x50\xb8\x26\xa1\x70\x21\x65\xfb\x82\x52\xb6\x91\x9b\x86\xdc\x34\xe4\xa6\x21\x37\x0d\xb6\xe2\xae\xb7\x68\x90\x89\x20\xe7\xb1\xc1\x90\xc7\xd2\x90\xc7\x32\x74\x83\x2c\xf3\x5c\x77\x9e\xbd\x12\x0b\xee\x56\x14\xaf\x66\x23\x4a\x9d\xd4\x77\xca\x4a\x41\x19\x11\x7f\x51\x20\xda\x52\x7d\xe2\x4e\x3a\x67\xec\x5e\xfd\x6b\xff\xbe\xe6\x3e\xf9\xf4\x12\xe6\x04\x9b\x24\x15\x71\xbe\xc5\x98\x9e\xd0\x81\xff\x24\xd8\x2c\xbb\xcb\x99\xd2\x24\xad\xf6\x33\x67\x8b\x80\x87\xa1\x69\xe6\x4d\xfa\x09\x0f\xb4\x4a\x74\xfb\xfe\x98\x35\x9b\xee\xf1\x4c\x9a\x43\x26\xb4\x4c\xf1\x5e\x5a\xf1\xa9\x27\x65\xf7\x5a\x62\x6a\xb7\x88\x12\x2b\x1d\x13\xab\x45\x0d\xb6\x1d\x1e\x16\x74\xe8\xe7\x9e\x05\xa5\x6e\x66\xba\x48\x7c\xd8\x5b\x1a\xfc\x72\xe5\x8d\xc0\x13\x83\x77\xcb\xbd\x04\x52\x13\x7b\x31\xde\x91\xda\x1f\x6f\x43\x9f\x87\x02\x9e\x41\xdc\x47\x47\xdc\x29\x76\xa7\x95\xe6\x52\x5d\x96\xaf\xe9\xdc\x1f\xf6\xaf\xd0\x6b\x11\x7b\xa2\xd5\x91\x49\x1a\xf3\x54\x78\xbe\x73\xdd\xfe\x1c\xf5\xf9\xd9\x1c\x49\x7b\x41\x1b\xcd\x2a\xe2\x71\xea\x53\x6a\x9d\x8e\x33\x3b\x58\xcb\xa2\xdf\x1b\x88\xa7\xba\xaf\x30\x81\x3d\x96\xc9\xa2\x1c\xee\xc5\xe0\xbf\x9e\xb8\xff\xfa\x72\x02\x06\x2a\x49\x2a\xf6\xe5\xd2\x89\x54\x6a\xad\xc9\x93\xf3\x5f\xef\x58\x87\xde\x90\xf7\x4e\x67\x4f\xf3\x80\xce\x0c\x65\x78\xad\xcf\xa6\x23\xc8\x81\x9e\xb0\xd7\xbf\x24\x32\x5c\xe8\x1c\xf5\x2f\x6a\xc5\x33\x9f\xbf\xda\x75\x30\xff\xe3\x9b\x21\x45\x32\xb4\x9f\x37\x9f\x64\xec\x10\x61\xf0\x24\x0d\xbe\x64\x0f\x57\x2b\xf5\xb7\x87\x2b\x76\x57\x92\x26\x85\xc0\x6b\x1c\x40\xd6\x8e\x79\x51\xaf\xb9\x43\x03\x40\x59\xce\x81\xef\x18\x07\x27\x19\x47\xf2\xbb\x19\x5b\x9d\x05\x1c\x09\x19\x05\x62\xce\xf4\x6f\x52\x71\x03\x3b\xa7\x28\x10\xbd\x76\x20\xb2\x9f\x3f\x46\xbc\xea\x87\x60\x23\xe9\x2f\x60\x23\x9d\x39\x76\xa1\x12\xbf\x3d\x70\x2b\x69\xd3\xb9\xaf\x2c\x0a\xb8\x73\xb8\x22\x67\xce\x9b\xb8\x2a\x87\x88\x4f\x28\x70\x97\xa2\xc0\x0d\x48\x4f\xc2\x76\x9e\x7d\x83\x88\xcf\xe9\x6b\x20\x9b\xc1\x7b\x69\x5f\xb1\x4e\x83\x27\x6f\x12\x4d\x68\x0b\x31\x94\xfd\x40\x40\xfd\x3b\x76\x03\xeb\x14\x07\x1a\xc8\x8c\x05\x0a\x6f\x3b\x98\x0c\x98\x0c\x98\x4c\xe9\x59\xc1\x64\xce\xc7\x64\x8e\xdf\xf4\x9a\xe9\x4c\xcd\xae\x37\x4a\xc3\x1e\x8c\x06\x26\xfe\xe5\x99\xf8\x60\x34\x5d\xce\x1b\x30\x1a\x38\x75\x60\x33\x81\xd1\x54\xe4\xd5\x1f\xa3\x79\x89\x37\xa3\x99\xd6\x4c\x45\xb5\x03\xb3\x81\x42\x77\x29\x0a\xdd\x80\xf4\x26\x6c\xef\xd9\x37\x60\x36\xd3\xd7\x48\x26\xcf\x6c\xcc\xb1\x94\x15\xea\x97\xde\x99\x3e\xeb\x5d\x14\xd2\x81\xe5\x8a\x19\x7d\x65\x2b\x4d\xb4\xb9\x00\xc6\x87\xec\x3a\xb9\x9e\xb3\xf3\x6a\x28\x88\x81\x0e\x36\xe8\x60\x83\x0e\x36\xe8\x60\x83\x0e\x36\x67\x31\x58\x60\x57\xb6\x1e\xa8\x73\xda\x95\x68\x34\x84\xf2\x4c\x17\x5c\x9e\x09\x5d\xa5\xd0\x55\x0a\x5d\xa5\xd0\x55\x0a\x5d\xa5\xd0\x55\x0a\x5d\xa5\x50\xb5\x10\x55\x0b\x51\xb5\x10\x55\x0b\xab\x33\xf2\xa4\xcd\xd3\xd0\xc2\x6e\x08\xa3\x80\x16\x76\x68\x61\x37\xb5\x16\x76\xb5\xcc\x0e\x38\x1f\x95\x48\x8f\xa8\x44\x9a\x6b\x4b\x27\x64\xe6\xbb\x68\xef\x59\x2b\x93\x6a\x3f\x59\x6c\x6c\x6b\xab\xd0\xcb\x15\x53\x77\xdd\x1a\x77\xab\xab\xd4\x87\xf2\xbd\x18\x71\x57\xee\x97\x14\x38\xea\x51\xf9\xb3\x94\x4f\x6b\x1e\x3f\x25\x79\x88\xb8\x7e\x08\xf2\xd9\x24\xc6\xb3\xf4\x1c\x29\xf3\xe3\xe7\xdf\x7e\xfb\x9f\x2f\x77\xbf\xff\xcf\xc3\x55\xee\x35\xd1\x0a\x9a\x24\x2d\xd7\x5f\x47\x81\x20\xf7\xc8\x32\xbb\xaa\x52\x49\x7c\x2f\xd4\x5e\x63\xa5\x37\x07\xdc\x23\x8d\x35\x3f\x44\x59\xa8\x45\xeb\x52\xbb\x22\x66\x09\x73\xfd\xc4\x89\x85\xba\xe7\x9c\x37\x15\x38\x89\x71\x89\x94\x2f\x94\x39\x29\x94\xf5\xad\x2c\x7d\xab\x0b\xab\xd5\x32\xfe\xc6\x83\xb7\x2c\x94\x1a\x05\x93\x0d\x9d\xf9\x55\xaa\xae\x39\x82\x91\xcf\xcc\x3e\xb3\xf1\x61\x65\x16\x74\x22\x12\xea\xae\x99\x39\xa7\x8d\xab\xc5\x50\xb0\x92\x41\xa8\xbe\x25\x11\xb8\x19\x5d\x5d\x09\x9e\x2a\x3b\xde\xe3\xa9\x60\x95\x81\x30\x57\x12\xa1\x52\xd4\xb5\xcb\x22\xf2\x73\xec\x5b\x77\xd9\x23\xf6\x98\x9a\x29\x70\x26\x63\x0c\x11\x0a\x88\x50\x40\x84\x02\x22\x14\x10\xa1\x50\xb7\xf8\x02\x7d\x8f\x48\x22\xa0\xa1\xa0\xa1\xa0\xa1\xa0\xa1\xa0\xa1\xa0\xa1\xd3\xa2\xa1\x00\x14\x00\x14\x00\x14\x00\x14\xbd\x03\x8a\x03\x20\xbe\x36\xe6\x64\x6c\x13\x39\xd5\xf0\x6b\xe8\xac\x8e\x5b\xd2\x26\xa6\x07\x55\x43\x72\xa3\x9d\xa4\x8f\x62\xad\xb7\xad\x24\x8d\x05\x5f\x93\x78\x5c\xf7\xad\xd9\x18\xde\x9a\x63\xd7\xf2\x1b\xe9\x3e\x05\xf3\x8e\x7d\xd5\xad\x86\xaa\x53\xfd\x18\x11\x7e\xdf\x37\xc1\xc6\x5f\x88\x61\xe7\x09\xea\xc7\x7e\xd2\x82\xff\xff\xb6\x65\xd0\xe6\xda\xe5\xb3\x87\xcd\x90\x2a\xf9\x95\x25\x3f\xfe\xaf\x7e\x92\x5e\x2e\x42\x52\xab\xda\xc8\xb0\xd1\x11\x65\xf3\x50\x69\x6e\x74\x95\xe6\x64\xd2\x31\x1c\xd4\x66\x1b\xe3\xad\x39\xa0\x3e\xa1\x27\x12\x38\xe8\xa2\x1e\xe5\xa7\x6b\xb7\x36\x22\x05\x6b\x02\x29\x58\x28\xed\x81\xd2\x1e\x35\x37\x33\x0a\x3d\x6e\x4c\x05\x3e\x8e\xbc\xf1\x73\x34\x82\xee\xe2\xce\xa7\xa7\x36\x93\x7a\x32\x0a\xb5\xf9\x15\xeb\xb2\x4e\x89\xa9\x30\x7f\xa2\x72\x25\xed\x75\xb5\xed\x12\x25\x67\xd7\xd5\x46\x52\x98\x04\x9a\x59\x71\x90\x07\xab\x99\x21\x15\xfc\x82\x52\xc1\x91\xf3\x86\x9c\x37\xe4\xbc\x21\xe7\x0d\x46\xe5\xae\xb7\x68\x90\x09\x26\xe7\x31\xd0\x90\x1f\xd3\x90\x1f\x33\x0e\x3b\x2d\xf3\x7c\xf7\xd3\xaa\xab\xac\x7e\xb5\x35\xab\x76\xb7\xe9\xea\x3a\x15\xa6\xa0\x9e\x88\xbf\x28\xc0\x6d\xa9\x3e\x71\x27\x9d\x33\x76\xaf\xfe\xb5\x7f\x5f\x73\x9f\xdc\x81\x09\x73\x82\x4d\x92\x8a\x38\xdf\x74\x4c\x71\xff\xc0\x7f\x12\x6c\x96\xdd\xeb\x4c\xe9\x96\x56\x1f\x9a\xb3\x45\xc0\xc3\xd0\x74\x65\x20\x8d\x85\x07\x5a\x49\xba\x7d\x7f\xcc\x2a\x4e\xf7\x78\x26\x5d\x22\x13\x5a\xa6\x8a\x2f\xad\xf8\xd4\x93\xb2\x7b\x2d\x31\xb5\x7f\x44\x89\x95\x8e\x89\x01\xa3\x4e\x09\x0e\x0f\x0b\x5a\xf5\x73\xcf\x82\x52\x37\x33\x5d\xd4\x3e\xec\x4d\x0e\x6e\xbc\xf3\x77\x8b\x3b\x13\xfc\x2e\xf6\x8c\xdb\x73\x0b\xe8\x1c\x57\xff\xcc\xe0\xf9\xe8\x1c\xd7\x4d\xe7\xb8\xe3\x74\xb0\x3d\x5d\xe3\x26\x16\x85\x80\xae\x71\xf0\x77\x5f\x5e\x24\x02\xba\xc6\x75\x39\x6f\xd0\x35\x0e\x16\x14\x2c\xa8\xe9\xf6\x8e\xeb\xc4\x86\xea\xab\x83\xdc\xb1\x4e\xb6\x3d\xdd\xe3\x26\xa6\xe2\x21\xd0\x14\xea\xdd\x65\xa9\x77\x03\xd2\xa2\xb0\xd9\x67\xdf\x20\xd0\xf4\xb2\xb4\x94\x93\xf6\x93\x3b\x45\xb4\xe6\xee\xf6\x71\x63\xa9\xaa\x57\x3c\xef\x93\x8c\xef\x82\x20\xd3\x7a\xca\x6d\x72\x91\x3a\x39\xd4\x95\x10\xa9\x93\xe3\x58\x55\x5e\x42\x8f\x50\xa3\x72\xc2\x35\x2a\x9b\xa1\x50\x53\x7d\xca\xbd\xee\xa7\x0e\x80\x17\xaa\x52\xa2\x2a\x25\xaa\x52\xa2\x2a\xe5\xd4\xaa\x52\x36\xaf\xbc\xb5\x15\x29\x7b\x0e\x2f\x38\x59\x1d\xca\xe6\xc7\xdf\x5d\x83\x72\xc8\x32\x38\xa4\xf2\x64\xb3\x0c\x76\x57\x9d\xec\x59\x06\xa8\x35\x89\x5a\x93\xa8\x35\x89\x5a\x93\xa8\x35\xd9\x5b\xad\xc9\x16\xab\xff\x56\x9d\xc9\xbd\xf9\x87\x17\x14\x5d\xd8\xee\x69\x26\x5c\x2b\xb3\x59\xdc\xfb\xea\x64\x9e\x56\xee\xa8\x8e\xd9\xcb\x88\x6e\x57\xc6\xec\x79\x58\xcf\x5a\x0f\xb3\x59\x3c\x7b\x6a\x61\xf6\xbd\x6c\x0e\xb5\x02\x66\xb3\xd0\x6a\xf0\xc5\xd1\xfe\x3c\xf3\xe9\xcf\xb6\x08\x8b\x7e\xfb\xc6\x0f\xbd\x58\x24\x89\x13\xf0\x24\xe9\x99\x63\x19\xbd\x2f\x74\xfd\x6f\xbe\xbb\xe1\x41\x71\xb4\x78\x66\xdb\x7d\xd6\x37\xf4\x41\xdd\xd0\xbc\x90\x48\xff\x63\xa6\x7f\xcf\xe8\x42\xb3\xdc\x99\x57\xf2\xce\x64\xd8\x8b\xf9\x61\x92\x0a\x5e\xda\x28\xab\x50\xec\x7b\x35\xb6\xbb\xf8\xeb\xbf\x56\xf8\x02\x40\xd8\x50\xd3\x84\x69\x01\xb8\x57\x36\xde\xe5\xd2\x30\x1a\xc2\x13\x23\xb1\xe2\xdb\x02\x22\x06\x22\x06\x22\x06\x22\x06\x22\x06\x22\x06\x22\x06\x22\xd6\xd1\x6a\x0b\x22\x06\x22\x06\x22\x06\x22\x06\x22\x06\x22\x06\x22\x06\x22\x06\x22\x06\x22\x06\x22\x36\xc8\x11\x05\x11\x2b\x8b\x07\x44\x6c\x02\x44\xac\xa6\xe0\x7e\x4f\x60\xac\x48\xc3\x42\xbb\xdd\xdb\x2c\xaf\xce\xa9\xd8\xdb\x5c\xc3\x27\x2b\xc6\x68\x83\xca\x48\xc8\x4d\x97\x59\xc9\xe4\x2d\x5c\xfb\x68\xa6\x06\x9e\x06\x9e\x36\x22\x9e\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x06\x96\x36\x2a\x96\x56\xec\x43\xb0\xdb\xdb\x30\xa6\x36\x04\xa0\x83\xa0\x83\xa0\x83\xe3\x18\x51\xd0\xc1\xb2\x78\x40\x07\xc7\x4c\x07\x87\x94\x2a\x77\xb6\x2c\xb9\x5f\xfd\x24\x45\xe5\xc8\xea\x50\x02\xf0\x8d\x08\xf0\x9d\x27\x61\x0e\x7c\x0f\x7c\x0f\x7c\x0f\x7c\x0f\x7c\x0f\x7c\x0f\x7c\x0f\x7c\xaf\xa3\xd5\x16\x7c\x0f\x7c\x0f\x7c\x0f\x7c\x0f\x7c\x0f\x7c\x0f\x7c\xef\xe2\xf8\x1e\x68\x18\x68\x18\x68\xd8\x38\x46\x14\x34\xac\x2c\x1e\xd0\xb0\x51\xd2\xb0\x30\xe3\x3e\x3a\x4f\x8e\x3e\xff\x0d\x48\x56\xee\x21\x5b\xc0\x65\xc0\x63\xc0\x63\xc0\x63\xc0\x63\xc0\x63\xc0\x63\xc0\x63\xc0\x63\xc0\x63\xc0\x63\xc0\x63\xd5\xe5\x76\x80\x68\x08\x78\x0c\x78\x0c\x78\x0c\x78\x0c\x78\x0c\x78\x0c\x78\x6c\x8c\x78\xcc\x3c\x35\x65\xc1\xa9\xa1\xe4\x9b\xf4\x91\x25\x8e\x8c\xc4\x5b\x96\x6c\x9c\x47\x35\xf2\x64\xaf\x08\xbe\xd6\x8e\xde\x28\x96\x24\xe5\xc3\x13\xe4\xc8\xef\x87\x2c\x39\x70\x41\x70\x41\x70\x41\x70\x41\x70\x41\x70\xc1\x12\x17\x1c\x56\x55\xcd\xb1\x15\xd4\xdc\x22\x8b\xa0\x8a\xa0\x8a\x23\xa2\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x20\x8a\x63\x21\x8a\x35\x05\x35\x0f\x47\x85\x43\xa1\x84\xc0\xa3\xc0\xa3\xc0\xa3\xc0\xa3\x83\x1e\x51\xe0\xd1\xb2\x78\x80\x47\xa7\x84\x47\xcd\x19\x91\x0c\x7c\xc7\x1f\x44\xf2\xa4\xa1\x8e\x0b\x75\x47\xcf\xe7\x4c\xa1\x2c\xdd\x08\x12\x29\x81\x3c\x47\x86\x3c\x4f\x9c\x48\x59\x7a\x5d\x00\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x3b\x5a\x6d\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x2f\x0e\x7e\x82\x17\x82\x17\x82\x17\x82\x17\x0e\x7a\x44\xc1\x0b\xcb\xe2\x01\x2f\x9c\x30\x2f\x1c\x48\x52\x65\xf7\xcc\xf0\x2c\xa9\x95\xbb\x10\x0a\x68\x23\x68\x63\xe5\xaa\x83\xa3\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\x20\x8d\xe3\x22\x8d\xc5\x34\xcb\x3d\xee\x06\x24\x5b\xd6\x3f\x33\xe0\x29\xe0\x29\xe0\x29\xe0\x29\xe0\x29\xe0\xe9\x45\xc2\x53\x64\x55\x56\x18\x67\x35\x97\xf2\x93\x8c\xef\x82\x20\x43\x9f\x28\x27\x0b\xda\x39\x26\xda\x89\xdc\x4a\x10\x4f\x10\x4f\x10\x4f\x10\x4f\x10\x4f\x10\x4f\x10\x4f\x10\x4f\x10\x4f\x10\x4f\x10\x4f\x10\x4f\x10\x4f\x10\x4f\x10\xcf\xf1\x11\x4f\x50\x32\x50\x32\x50\xb2\x71\x8c\x28\x28\x59\x59\x3c\xa0\x64\xe3\xa2\x64\x4b\x91\xf2\xdb\x9b\xa3\xa8\x58\xdf\x0c\xa8\x0d\x71\xf3\x44\x5a\x56\x74\xf5\xf0\xee\xe1\x61\x9e\x48\x8b\x34\x8c\x9e\xff\x6e\xf1\xf9\xf7\xba\x53\xcf\x45\xbf\x46\x0b\xa5\x0a\x82\xa4\x2a\xad\x53\x22\x53\x34\x53\x0a\xe7\xbe\x2a\xfe\x7e\xdb\x17\xcd\xb4\x40\x75\x02\x9e\x94\x47\xf2\x4a\x1b\x13\xdd\xf2\x68\x7d\x4d\xe6\xc8\x20\x10\x8e\xdd\x03\x4c\xab\x82\x0f\xea\x16\xf6\xbc\x27\xfa\xdc\xad\x57\xe5\x43\x76\xad\x5d\xd7\xd9\x01\xb7\x58\x75\x7c\xf5\xaa\xb8\x94\xee\x73\x75\x6a\xda\x65\xb1\xee\xbb\x5e\xa6\xed\x47\x7a\xd6\xdf\x48\x6e\x49\xcb\x49\xbb\x7f\xb6\x82\x97\x80\x97\x80\x97\x80\x97\x4c\x8d\x97\xec\xd1\x66\x9b\x98\xc9\x7e\xcb\x68\xbf\x56\x7b\xd0\xda\xfb\x1f\x25\x38\xe3\x29\x7a\x4b\xd1\x58\x8e\x9a\x51\x7a\x1e\x94\x9e\xad\x18\x9b\xb0\x14\x2c\x52\xd2\x4a\x52\xe1\xce\xd9\x5d\xc8\xfc\x50\xaf\x2c\x32\x66\x9b\x30\x5b\x9c\x5c\xe6\xc6\xcf\xbf\x6f\x42\xe6\xfa\xb1\xda\x07\xbf\x89\x6c\xc6\xab\xe5\x93\xfc\x7a\xe6\x95\xb7\x73\xc3\x08\x98\xad\x36\x31\xbd\x65\x51\x2c\x1d\x91\x90\x03\xce\x98\x64\x66\x96\xcd\xd9\xbf\xe9\x17\x69\xb4\x68\xee\xfc\xc8\xae\xd9\x5d\x10\xfc\x48\xee\x35\x57\xad\xd2\x9b\x50\x0d\xbc\x32\x6e\xec\x94\x34\x97\x13\xee\x11\x03\xa5\x9f\xe5\x3c\xc3\x74\x32\xc8\xd5\x4e\x14\xbb\x41\xd7\xc9\x24\xf2\x47\xd1\x5a\xf7\x43\x96\x68\x23\x9a\x2d\xc5\x4a\x47\xe3\x64\x0e\xd1\x5c\x95\x30\xab\x17\x4d\x9d\x8d\xd0\x9b\xc3\x52\xd9\xa9\xe1\x75\x28\x3c\x4e\x13\xd4\xd8\xdb\x73\xf6\x47\xb6\x61\x6b\x38\x92\xbd\x1a\x46\x51\xf4\xd7\x6b\xe1\xfa\x3c\x15\xc1\x73\x1e\x26\x93\x6f\xb9\x7e\xf0\xd6\xd8\xd3\x24\x74\xe6\xc5\xdc\xa1\xb7\xc6\x97\x6e\xa6\x10\xe4\x9b\x36\xc5\x20\xd9\x59\xba\x49\xd4\x4d\x16\x87\x8b\xab\x33\xed\x03\x99\x1f\x59\xe9\x35\xd0\x5e\x62\xae\xef\x73\x2d\x78\x58\x7b\x8f\x47\x0c\x33\xdd\xf3\x82\x6e\xb9\xce\x47\xd1\xe0\xa5\x18\xca\xf4\x3f\x84\x6f\xb6\x93\xcb\x6e\xc6\x79\xb2\xe9\x0f\xda\x09\xda\x09\xda\x09\xda\x09\xda\xd9\x1b\xed\x6c\xb9\x17\x6c\x11\xcf\xd3\x6d\x8b\x1f\x0b\xd9\x10\x51\x20\x78\x22\xb2\x25\x68\x11\xcb\x88\x7b\xa4\x1d\xe9\xe8\xeb\x52\x6c\xad\x9d\x74\x79\x3a\x85\x9a\x76\xb7\xf3\x7f\xce\xd9\x57\xbd\x9e\x69\xd5\x25\x12\xa1\x7a\x59\xf2\x3d\x55\x30\x19\x47\x8f\x3c\xb4\xb1\xbe\xf1\x46\xdc\xac\x78\x60\x6d\xe5\x87\x2b\xfd\xf5\xc3\x15\x5b\xf9\x21\x0f\xfc\xff\xda\x8d\x64\x29\x18\x77\x09\x81\xc9\x1b\x8d\x07\xdc\xdc\x0c\xd3\x97\x9f\x25\xf9\x49\xda\x3e\x9d\xb3\x7b\x9f\x16\xc7\xc2\xad\xcb\x78\xfb\xd9\x72\xe0\x99\x6a\xf3\x98\x6c\x14\x99\x3e\x1e\x33\xa0\xfa\x09\x3e\xda\x67\xdf\xa9\xf2\xd4\xc1\x86\x6e\x0d\x33\x7a\x74\xf5\xc2\x3e\xca\xef\xcc\xe3\xf1\x92\x7b\x25\xff\x64\x66\xd4\x88\x78\x25\xe3\xb5\x1a\x93\x5a\x79\xfd\x56\x79\xa2\xdd\xe2\x22\xa5\xd7\x6a\xac\x91\x96\xad\xaf\xb4\x49\xc7\x77\x73\x53\x98\x74\x05\x72\x4e\x64\x63\xac\x36\x6b\xb3\x93\x5a\x6d\x60\x5e\x18\x4c\xbb\x8f\x64\xc4\x31\x8b\x5b\x2f\xff\xd8\x9c\xdd\x39\x8e\x88\x52\xda\x9b\x8a\x96\xdd\x4c\x3f\xc3\x8c\x5d\x9b\x09\x58\x9e\xa0\xc9\x4f\x6c\xf6\x33\x77\x9e\xbc\x58\x6e\x42\x57\x1d\x45\x31\xe0\x74\x50\x45\x70\x5a\x85\x34\xfa\x71\xf9\x22\xf6\x09\x96\xd9\x95\x7e\x62\xb3\x4f\x32\x16\x85\xcb\x32\x87\x27\x0e\x77\xd5\xd3\x1b\xf9\xe8\x14\x01\xba\x5e\xa2\x4d\xcf\xad\x0b\xae\xb2\x6b\x1c\x33\x21\xa3\xea\x74\x3f\x8f\xc6\x39\xe1\xd0\x84\x76\xe3\xb0\x2f\x3c\xe1\x5c\xa3\x80\x40\x85\xde\xc6\x77\x3b\x58\xe1\x74\xbe\x8d\x73\x86\x2d\xb4\x13\xd6\x9e\xd0\x85\x97\xea\x3f\xb5\xb0\x0e\x74\xf9\x40\x4c\xf7\x35\xe5\xe9\xa6\x2d\x9f\x1b\x27\x54\x2e\x9c\xbb\x23\xe7\x51\x6f\xcb\xb9\xca\x74\xc2\xd4\xc7\x1d\xc4\xb7\x9a\xf9\x58\x79\xa6\xed\xf4\xc7\xce\xf3\xae\xb5\xc3\x2c\x36\x46\xb6\xd5\xec\x6d\x45\xea\x96\xc0\x5b\x5d\x64\x0b\x77\xbf\x14\x72\x23\x8b\xf3\x72\xb2\x38\xdb\xed\x32\x4d\x99\x9c\xa7\x33\xc7\x10\xa3\x80\x18\x05\xc4\x28\x20\x46\x01\x31\x0a\x75\x8b\x2f\xe0\xf7\x88\x24\x02\x1e\x0a\x1e\x0a\x1e\x0a\x1e\x0a\x1e\x0a\x1e\x3a\x2d\x1e\x0a\x44\x01\x44\x01\x44\x01\x44\xd1\x3b\xa2\x38\x00\xe3\x0f\x34\xcf\xb2\x9d\x08\xb7\x73\x2d\x5f\xea\x71\x1b\x14\xdc\xd9\x79\xc2\x65\x15\xce\x9c\x17\x90\x86\x21\x12\xf3\xa2\x2f\x7f\xf2\xd9\x89\xcd\x20\xe9\xc4\x75\x33\xbb\x82\x47\x47\xd4\xce\x1c\x4b\x3d\x8d\x57\x95\xb1\xbb\x8a\x64\xd2\x31\x29\xd3\xa6\x0c\xe3\x61\x5b\x2a\xa6\x4f\xe8\x9c\x8b\x1d\x97\xfc\xb9\xa7\x71\x41\xaf\xab\x45\x27\x29\xa1\x48\x4b\x2a\x0e\xfd\x60\xd3\x92\xc8\x65\xf1\x85\x87\xdc\x13\xb1\x76\xbe\xe9\x36\x1d\x49\x22\x1d\x9f\xac\xc9\xcc\xcd\xc5\xc9\x5b\x29\x63\x26\xc2\x54\xa9\x77\xd6\xbc\x5e\x73\x35\x93\xd4\x21\x89\xb0\x3a\x52\x31\xf9\xc6\x26\xe9\x90\x8e\x48\x2e\x2d\x19\xb3\xdb\x77\xef\xd5\xb1\x31\x77\x88\x61\x05\x32\xf4\xb4\x46\x44\x6e\x27\x47\x86\x29\xf7\x43\xbd\x4a\x91\x5b\x27\x3f\x96\xfc\xfa\x86\xb0\xb1\xe5\x73\xa6\xf4\x7b\x32\xe0\xa1\x37\x97\xb1\x77\x13\x3d\x79\x37\x9b\xd0\x77\xa4\x2b\x6e\xfe\xf1\x39\x59\xa8\xab\x1c\xed\x27\x36\xc2\xe9\x72\x78\x06\xa5\x42\x8d\x5b\xb3\x69\xab\xd5\xbc\x6b\xa1\xd5\x7c\xd0\x8e\xaf\x21\xde\xfc\xbb\xc6\x9b\xd7\x61\xb7\x43\xbc\xfb\x89\x2a\x94\xa4\xad\x8c\x46\xa1\x7c\xc5\x8e\x2e\xdb\x51\xd3\x69\xbf\xc7\xea\x1d\xed\x75\xb5\x1d\x25\x3b\x50\xa8\xa3\xf8\xeb\xd0\xca\xc6\xa8\x95\x21\x35\xfa\x82\x52\xa3\x91\x03\x86\x1c\x30\xe4\x80\x21\x07\x0c\x06\xe5\xae\xb7\x68\x90\x09\x17\xe7\x31\xca\x90\x2f\x62\x8e\xdb\x9b\x2f\x32\x1e\xbb\x2c\x73\x7e\x77\x9e\x25\x12\x0b\xee\x56\xf4\xb0\x96\x86\x95\x3a\xb3\xef\xd4\x90\x82\x82\x22\xfe\xa2\x80\xaf\xa5\xfa\xc4\x9d\x74\xce\xd8\xbd\xfa\xd7\xfe\x7d\xcd\x7d\x72\x06\x26\xcc\x09\x36\x49\x2a\xe2\x7c\xdb\xd1\x91\xa1\x2c\xf0\x9f\x04\x9b\x65\x1d\xfd\x66\x4a\xbb\xb4\x1a\xd1\x9c\x2d\x02\x1e\x86\x42\xab\xa5\xa4\xb3\xf0\x40\xab\x49\xb7\xef\x8f\x59\xc7\xe9\x1e\xcf\xa4\x4d\x64\x42\xcb\x94\xf1\xa5\x15\x9f\x7a\x52\x76\xaf\x25\xa6\x76\x90\x28\xb1\xd2\x31\x31\x51\x9b\x44\xc4\x14\xcc\x94\xeb\xd5\xcf\x3d\x0b\x4a\xdd\xcc\x74\xd1\xf3\xb0\xb7\x39\x38\xef\xf4\x71\x3b\xb6\x09\x4f\x8c\xc8\x77\xf7\x12\x18\x5c\x6c\x27\xbf\xfb\x36\xc6\xd4\x4d\x7e\xbc\x78\x9b\x02\x49\x8e\xaa\x35\x7e\x4d\xe7\xfe\xb0\x7f\x19\x5b\x8b\xd8\x13\xad\x8e\x4c\xd2\x98\xa7\xc2\xf3\x9d\xeb\xf6\xe7\xa8\xcf\xcf\xe6\x48\x5a\x30\xdb\xe8\x20\x11\x8f\x53\x9f\xf2\xbc\x74\xd0\xd3\x71\xfa\x48\x54\xed\xe9\x3b\x41\x26\xbf\x47\xaf\x5f\x94\x03\x90\x18\xbc\xbf\x13\xf7\xfe\x5e\x0e\x93\xaf\xa4\x4d\xd8\x97\x4b\xa7\xf6\xa8\x05\x27\x4f\x17\x7f\xbd\x63\x31\x7a\x43\xbe\x2f\x9d\xcf\xcb\x03\x3a\x33\x94\xe1\xb5\x3e\x9b\x8e\x20\xf7\x73\xc2\x5e\xff\x92\xc8\x70\xa1\xb3\xa6\xbf\xa8\x65\xcf\x7c\xfe\x6a\x17\xc3\xfc\x8f\x6f\x86\x14\x2c\xd0\x7e\xde\x7c\x92\xb1\x43\xfe\x79\x4f\xd2\xe0\x4b\xf6\x70\xb5\x52\x7f\x7b\xb8\x62\x77\x25\x69\x52\x50\xb6\x76\xa6\x93\x5d\x60\x5e\xd4\x6b\xee\xd0\x00\x50\xde\x6d\xe0\x3b\xc6\x3d\x48\x66\x84\xfc\x6e\xc6\x56\xe7\xa5\x46\x42\x46\x81\x98\x33\xfd\x9b\x94\x6e\x6f\xe7\x14\x85\x46\xd7\x0e\x44\xf6\xf3\xc7\x88\x57\xfd\x10\xac\x09\xfd\x05\xac\x89\xd2\x33\x9d\xdb\x9a\x88\x2a\x01\xc6\xa3\xb1\x27\x36\x9d\xfb\x9c\xa2\x80\x3b\x47\xaa\x79\xe6\xe4\x89\x2b\x7a\x08\xbe\x84\xa2\x77\x79\x8a\xde\x80\xf4\x29\x6c\xfb\xd9\x37\x08\xbe\x6c\x71\xf3\x53\xd5\x59\x36\x23\xf2\x80\xbe\x62\x87\x47\x2f\x96\xfb\x8d\x9d\xa7\x08\xdb\x1e\x6d\x67\x5f\xfd\xb5\x4f\x32\xbe\x0b\x82\x0c\x68\x0d\xa2\x49\xdf\xce\x13\x90\x69\x67\x46\x0d\x49\x76\x67\x4a\xb2\x3b\x31\x52\x41\x55\xc3\x09\x57\x35\x6c\x66\x44\x4d\x15\x0d\x8f\xef\x65\xdb\x8e\x7f\xa1\x8e\x21\xea\x18\xa2\x8e\x21\xea\x18\x4e\xad\x8e\x61\xf3\xca\x5b\x5b\xc3\xb0\xe7\x68\x83\x93\x55\x2e\x6c\x7e\xfc\xdd\x55\x0b\x87\x2c\x83\x43\x6a\x15\x36\xcb\x60\x77\x9d\xc2\x9e\x65\x80\xea\x84\xa8\x4e\x88\xea\x84\xa8\x4e\x88\xea\x84\xbd\x55\x27\x6c\xb1\xfa\x6f\x55\x26\xdc\x9b\xa3\x77\x41\xc1\x86\xed\x9e\x66\xc2\xd5\x15\x9b\xc5\xbd\xaf\xb2\xe2\x69\xe5\x8e\x7a\x8a\xbd\x8c\xe8\x76\x2d\xc5\x9e\x87\xf5\xac\x15\x14\x9b\xc5\xb3\xa7\x7a\x62\xdf\xcb\xe6\x50\x6b\x26\x36\x0b\xad\x86\x60\x1c\xed\xcf\x33\x9f\xfe\x3c\x88\x5e\x85\x19\xf5\xd1\x75\x37\xe8\xf3\xdf\xf5\x50\xab\xc7\x32\x1c\x85\x04\x65\xb9\x6a\x81\xb3\x76\x14\xe3\xf8\x90\x5d\x26\xa3\x59\x6e\xcd\xc5\x50\x9b\x03\x8e\x5d\x38\x76\xe1\xd8\x85\x63\x77\x82\x8e\xdd\x31\x34\xa8\x41\xc0\x64\xeb\x81\x3a\x67\xc0\x24\xfa\x08\xa1\x52\xd4\x05\x57\x8a\x42\xd3\x28\x60\x19\x60\x19\x60\x19\x60\x19\x60\x19\x34\x8d\x42\x01\x45\x14\x50\x44\x01\x45\x14\x50\xac\xce\xc8\x93\xf6\x46\x9b\x12\x43\x45\x87\xba\x69\x13\x55\x74\xa8\x1b\x53\x87\xba\x5a\x58\x87\x3c\x55\x14\x45\x3d\xb6\x28\x6a\xae\x32\x8d\x2b\x45\x6b\x1c\xa9\x9b\x9d\xf0\x6d\x64\x9a\x5d\x4e\xa6\x59\xbb\x0d\xa6\x29\xdb\xec\x74\x96\x18\xc2\x13\x10\x9e\x80\xf0\x04\x84\x27\x20\x3c\xa1\x6e\xf1\x05\xf7\x1e\x91\x44\x80\x42\x81\x42\x81\x42\x81\x42\x81\x42\x81\x42\xa7\x85\x42\x41\x27\x40\x27\x40\x27\x40\x27\x7a\xa7\x13\x07\x10\xfc\x81\xe6\x82\xb5\x13\xe1\x76\x3e\xd8\xa4\xca\x8e\xef\x3c\x01\x55\xfd\x50\xd5\xef\xa2\xaa\xfa\x19\xed\x51\x17\x60\x0e\x5d\xa6\x46\x89\x25\x8e\x8c\xc4\x5b\x96\x6c\x9c\x47\xb5\x14\xd1\x52\x2f\xf8\x5a\xaf\x53\x51\x2c\x49\x5b\xad\xcb\x30\xdd\xdf\x4a\x89\x38\x51\xf9\x6b\xf4\x53\x6a\x7a\x1a\xf3\xa9\xd0\x4f\x49\x26\x1d\x83\x41\x6d\xb9\x15\x5a\xd0\xef\x81\x80\xfa\xd8\x7e\x30\xe0\x68\x2a\xd6\xa3\x58\xfd\xe5\xe4\x5e\xa1\x58\x3d\x8a\xd5\xd7\xdc\xcc\x18\x74\xb8\xb1\xd6\xa9\x1f\x76\x2b\xea\x0e\x6e\x7c\xa2\x0a\x33\x69\x26\x63\x50\x98\x5f\xb1\x0e\x2b\x93\xe8\xbf\xfe\x7d\xa2\x02\x25\xad\x94\xb4\x1d\x55\x49\x50\x8b\x04\x3a\xd9\x24\x74\x32\x64\x7f\x5f\x50\xf6\x37\xd2\xdc\x90\xe6\x86\x34\x37\xa4\xb9\xc1\x9c\xdc\xf5\x16\x0d\x32\xa7\xe4\x3c\xc6\x19\x52\x62\xcc\x71\x7b\x53\x62\x46\x61\xa4\x65\x0e\xef\xce\x13\x61\x62\xc1\xdd\x8a\x0a\xd6\x6c\x53\xa9\x93\x4e\x92\xfd\x52\xd0\x4d\xc4\x5f\x14\xd3\xb6\x54\x9f\xb8\x93\xce\x19\xbb\x57\xff\xda\xbf\xaf\xb9\x4f\x5e\xc0\x84\x39\xc1\x26\x49\x45\x9c\xef\x38\xa6\x7b\x75\xe0\x3f\x09\x36\xcb\xee\x72\xa6\x14\x4b\xab\x0c\xcd\xd9\x22\xe0\x61\x68\xda\x8e\x93\xba\xc2\x03\xad\x21\xdd\xbe\x3f\x66\x09\xa7\x7b\x3c\x93\x22\x91\x09\x2d\xd3\xc3\x97\x56\x7c\xea\x49\xd9\xbd\x96\x98\xda\x3c\xa2\xc4\x4a\xc7\x84\x7d\x51\x2b\x70\x87\x87\x05\x95\xfa\xb9\x67\x41\xa9\x9b\x99\x2e\x5d\x1f\xf6\x0e\x07\xff\xdd\xae\xcd\xc1\x13\xe3\x70\xdf\xbd\x84\x77\x13\xbc\x31\xbe\x93\xda\x3b\x68\x03\xb2\x87\xc2\xb0\x01\xef\x47\x07\xef\x29\x2a\xa8\x95\x36\x53\x5d\xa5\xaf\xe9\xdc\x1f\xf6\x2f\xd8\x6b\x11\x7b\xa2\xd5\x91\x49\x1a\xf3\x54\x78\xbe\x73\xdd\xfe\x1c\xf5\xf9\xd9\x1c\x49\x5b\x43\x1b\x6d\x2b\xe2\x71\xea\x53\xd2\x9e\x8e\x60\x3b\x58\xf3\xa2\xdf\x1b\x92\x33\xbb\xaf\x88\x83\x3d\xc6\xcb\xa2\x1c\x4d\xc6\xe0\xe2\x9e\xb8\x8b\xfb\x72\xc2\x0e\x2a\x39\x30\xf6\xe5\xd2\x79\x5a\x6a\xc1\xc9\x73\xff\x5f\xef\x58\x8c\xde\x90\x83\x4f\x27\x67\xf3\x80\xce\x0c\x65\x78\xad\xcf\xa6\x23\xc8\xc7\x9e\xb0\xd7\xbf\x24\x32\x5c\xe8\x14\xf8\x2f\x6a\xd9\x33\x9f\xbf\xda\xc5\x30\xff\xe3\x9b\x21\xc5\x43\xb4\x9f\x37\x9f\x64\xec\x10\x84\xf0\x24\x0d\xbe\x64\x0f\x57\x2b\xf5\xb7\x87\x2b\x76\x57\x92\x26\x45\xd8\x6b\x62\x40\x16\x90\x79\x51\xaf\xb9\x43\x03\x40\x49\xd4\x81\xef\x18\x1f\x28\x19\x4c\xf2\xbb\x19\x5b\x9d\x64\x1c\x09\x19\x05\x62\xce\xf4\x6f\x52\xed\x04\x3b\xa7\x28\xce\xbd\x76\x20\xb2\x9f\x3f\x46\xbc\xea\x87\x60\x37\xe9\x2f\x60\x37\x0d\xc5\x6e\x8a\x2a\x81\xe2\x63\xb0\x9c\x36\x9d\xfb\xd4\xa2\x80\x3b\x87\x2b\x77\xe6\xbc\x4b\x50\xef\x10\x50\x0a\xcd\xee\xa2\x34\xbb\x01\x29\x50\xd8\xe7\xb3\x6f\x10\x50\x7a\x71\xfa\xc9\x66\x1c\x7e\xdd\x57\xac\xfb\xb0\xcc\x9b\x44\x63\xdf\x42\x74\x66\x3f\x3c\x51\xff\x8e\xdd\xd9\xba\x27\x8b\x06\x5f\x63\xf9\xc2\x32\x00\xbc\xb3\x73\x58\x80\x77\x80\x77\x80\x77\xce\x8a\x77\x8e\xdf\x08\x5b\x82\x9e\x9a\x9d\x70\x94\xfe\x00\xe0\x1e\x38\x05\x2e\xcf\x29\x00\xdc\xd3\xe5\xbc\x01\xee\x81\x1b\x08\x76\x14\x70\xcf\xb9\x70\xcf\x4b\xbc\x1e\x2d\xc1\xcf\x54\xd4\x3d\xe0\x1f\x68\x7a\x17\xa5\xe9\x0d\x48\xa1\xc2\xbe\x9f\x7d\x03\xfc\x73\x71\xfa\xca\x14\xf1\x0f\x95\x57\xb4\xb4\xc7\x09\x78\x52\x7e\x75\xba\x87\x3c\xa6\x14\x77\xe8\xfa\xdf\x7c\x77\xc3\x83\x62\x59\x4f\x9e\x15\xdf\x37\x4f\xff\x41\xdd\xd0\xbc\x90\x79\xfe\x63\x96\xb3\x3e\xa3\x0b\xcd\xf2\x4e\x2c\xa5\xd6\x1a\x99\x92\xc4\xfc\x30\x49\x05\x2f\xb9\x37\xab\x2a\xd4\xf7\x5a\x7f\x59\xf1\x16\x7e\xad\x94\x30\x44\xbd\xcd\xa1\x26\xd7\x52\xb9\xd8\xfb\x6f\x22\xbc\xf4\xaa\x9b\x34\x8e\xe7\x29\xbd\x49\xaf\xcc\x89\x81\x15\x7a\x9d\x4d\xb8\xd7\x59\x33\x8d\x6a\xea\x73\xb6\xd7\xdd\xd5\x01\x69\x43\x77\x33\x74\x37\x43\x77\x33\x74\x37\x9b\x5a\x77\xb3\xe6\x95\xb7\xb6\xb3\x59\xcf\x71\x0d\x27\xeb\x67\xd6\xfc\xf8\xbb\x7b\x99\x0d\x59\x06\x87\x74\x30\x6b\x96\xc1\xee\xee\x65\x3d\xcb\x00\x3d\xcb\xd0\xb3\x0c\x3d\xcb\xd0\xb3\x0c\x3d\xcb\x7a\xeb\x59\xd6\x62\xf5\xdf\xea\x57\xb6\xb7\xa2\xe5\x05\x85\x35\xb6\x7b\x9a\x09\xf7\x5c\x6b\x16\xf7\xbe\x7e\x6b\xa7\x95\x3b\xba\xac\xf5\x32\xa2\xdb\x1d\xd6\x7a\x1e\xd6\xb3\xf6\x55\x6b\x16\xcf\x9e\x9e\x6a\x7d\x2f\x9b\x43\xed\xa4\xd6\x2c\xb4\x1a\xa2\x71\xb4\x3f\xcf\x7c\xfa\xf3\xc5\x94\xac\xa6\x5e\x7d\x4f\xb0\xac\x48\xc8\x42\xbb\xe7\xcb\x15\x7b\xf2\x43\xb7\x7b\x52\xf6\x36\x57\xf3\xc9\x94\x31\x2a\xa1\xb2\x14\x72\xfb\x65\x56\xb2\x7b\x0b\xd7\x7e\x19\x67\x03\x63\x03\x63\x1b\x1b\x63\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x03\x5f\x1b\x1f\x5f\xab\x29\xfe\x52\xe3\x72\x18\x53\x05\x18\x10\x43\x10\x43\x10\xc3\x71\x8c\x28\x88\x61\x59\x3c\x20\x86\xa3\x27\x86\x43\x4a\xa9\x3b\x6f\x36\xdd\xaf\x7e\x92\x7e\x92\xf1\x5d\x10\x64\xf5\x09\x00\xfd\x00\xfd\x46\x07\xfd\xce\x93\x58\x07\xe6\x07\xe6\x07\xe6\x07\xe6\x07\xe6\x07\xe6\x07\xe6\x07\xe6\xd7\xe5\x6a\x0b\xe6\x07\xe6\x07\xe6\x07\xe6\x07\xe6\x07\xe6\x07\xe6\x77\x71\xcc\x0f\x84\x0c\x84\x0c\x84\x6c\x1c\x23\x0a\x42\x56\x16\x0f\x08\xd9\x78\x09\x59\x53\xfb\xb1\x8b\x07\x67\x5b\x75\xbc\x51\x8b\x12\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\x0c\xc8\xec\x04\xbe\x5f\xb4\x15\x07\x2b\x04\x2b\x04\x2b\x1c\xf4\x88\x82\x15\x96\xc5\x03\x56\x38\x5d\x56\x38\xac\x8a\x9c\xa3\x2c\xc6\xb9\x45\x1b\x41\x1a\x41\x1a\xc7\x46\x1a\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x41\x19\x47\x45\x19\x6b\x8a\x71\x1e\x8e\x0f\x87\x42\x0e\x81\x4c\x81\x4c\x81\x4c\x81\x4c\x07\x3d\xa2\x40\xa6\x65\xf1\x00\x99\x0e\x18\x99\x4a\x57\x58\x58\x7a\x14\xf7\xec\x9b\xdd\xd5\xc2\x9b\xca\x28\x7b\x22\x65\x7e\xb8\x92\xf1\x3a\x9b\xd5\x9c\x69\x12\xb3\x9b\x5f\x7a\x22\xfd\x5f\xe9\x8a\xbb\xc5\xe7\x7f\x55\x8f\x3c\x17\xa7\x1c\x2d\x3e\xcc\x84\x38\x76\x78\x28\x5d\x51\x38\xfa\x55\xf1\x17\x77\xbf\x37\x36\xc8\x60\xd4\xef\x4f\xc9\xc0\xd7\x0b\x62\xf3\xcb\x63\xa0\xff\xdd\xe2\xf3\xef\x75\x27\xe1\x3d\x3a\xfc\x3d\xb2\x82\xa4\x2c\xed\x09\xbc\x4e\x35\x14\xfe\xc0\xd7\x2a\xde\x84\x4a\x83\x30\x5d\x73\x8b\x2f\x99\x76\x99\x74\x1b\x9f\xa3\xaf\xc9\x1c\x19\x04\xc2\xb1\xbb\xc9\xef\xfa\x16\xb6\x5a\xcc\x56\xde\x0a\x7d\x6e\xe1\xc5\xf8\x90\x5d\x65\xd7\x15\x76\xc0\x7b\x56\x1d\x4d\xad\x2f\x2c\xa5\xfb\x5c\x9d\x88\x56\x61\xa8\xfb\xae\x97\x49\xfa\x91\x9e\xf2\x37\x92\x58\xd2\x72\x8a\xee\x9f\x9b\xe0\xc1\xe0\xc1\xe0\xc1\xe0\xc1\x53\xe3\xc1\x7b\xec\xbc\x26\x26\xbc\xdf\x67\xb0\xdf\xde\x3b\x68\xed\xfd\x8f\x12\x9c\xf1\x84\xbf\xa5\x52\x36\x8e\x9a\x51\x7a\x1e\x94\x9e\xad\x18\x7b\xb5\x14\x2c\x52\xd2\x4a\x52\xe1\xce\xd9\x5d\xc8\xfc\x50\xaf\x2c\x32\x66\x9b\x30\x5b\x9c\x5c\xe6\xc6\xcf\xbf\x6f\x42\xe6\xfa\xb1\xda\x07\xbf\x89\x6c\xc6\xab\xe5\x93\xb8\x85\x79\xe5\xed\xdc\x30\x02\x66\xab\x4d\x4c\x6f\x59\x14\x4b\x47\x24\x04\x18\x8c\xb3\xc2\xcc\xb2\x39\xfb\x37\xfd\x22\x8d\x16\xcd\x9d\x1f\xd9\x35\xbb\x0b\x82\x1f\x09\x1f\xb8\x6a\x95\xde\x84\x6a\xe0\x95\xd9\x6f\xa7\xa4\xb9\x9c\x70\x8f\x18\x28\xfd\x2c\xe7\x19\xa6\x93\x41\xfc\x76\xa2\xd8\x0d\xf2\x4f\x26\x91\x3f\x8a\x7e\x2c\x3f\x64\x89\x76\x2f\xb1\xa5\x58\xe9\x68\xc3\x0c\xf8\xe4\xaa\x84\x59\xbd\x68\xea\x6c\x84\xde\x1c\x96\x82\x85\x32\xbc\x0e\x85\xc7\x69\x82\x1a\x4f\xd4\x9c\xfd\x91\x6d\xd8\x1a\xfe\x66\xaf\x86\x51\x11\xfd\xf5\x5a\xb8\x3e\x4f\x45\xf0\x9c\x87\x01\xe6\x5b\xae\x1f\xbc\x35\x9e\x26\x12\x3a\xf3\x62\xee\xd0\x5b\xe3\x4b\x37\x53\x08\xf2\x4d\x9b\x62\x2c\xed\x2c\xdd\x24\xea\x26\x8b\xc3\xc5\xd5\x99\xf6\x81\xcc\x8f\xac\xf4\x1a\x68\x2f\x31\xd7\xf7\xb9\x16\x3c\xac\xbd\xc7\x23\x86\x99\xee\x79\x41\xb7\x5c\xe7\xbd\x6b\xf0\xdf\x0d\x65\xfa\x1f\x12\xbf\xd1\x4e\x2e\xbb\x63\x38\x4e\x36\xfd\x11\xcd\x81\x68\x0e\x44\x73\x20\x9a\x03\xd1\x1c\xbd\x45\x73\xb4\xdc\x0b\xb6\x22\x3a\x4e\xb7\x2d\x7e\x2c\x24\x88\x45\x81\xe0\x89\xc8\x96\xa0\x45\x2c\x23\xee\x91\x76\xb4\x90\x81\xef\x3c\x97\x72\x07\xec\xa4\xcb\x33\xcc\xd4\xb4\xbb\x9d\xff\x73\xce\xbe\xea\xf5\x4c\xab\x2e\x91\x08\xd5\xcb\x92\xef\xa9\x82\xc9\x38\x7a\xe4\xa1\xcd\x65\x88\x37\xe2\x66\xc5\x03\x6b\x2b\x3f\x5c\xe9\xaf\x1f\xae\xd8\xca\x0f\x79\xe0\xff\xd7\x6e\x24\x4b\xc1\xb8\x4b\x70\x58\xde\x68\x70\xe6\xe6\x66\x98\xbe\xfc\x2c\xc9\x4f\xd2\xf6\xe9\x9c\xdd\xfb\xb4\x38\x16\x6e\x5d\xc6\xdb\xcf\x96\x87\x02\xa4\xda\x3c\x26\x1b\x45\xa6\x8f\xc7\x0c\xa8\x7e\x82\x8f\xf6\xd9\x77\xaa\x3c\x75\x18\xae\x5b\xc3\x8c\x1e\x5d\xbd\xb0\x8f\xf2\x3b\xf3\x78\xbc\xe4\x5e\xc9\x33\x99\x19\x35\x22\x5e\xc9\x78\xad\xc6\xa4\x56\x5e\xbf\x55\x9e\x68\xb7\xb8\x48\xe9\xb5\x1a\x6b\xa4\x65\xeb\x2b\x6d\xd2\xf1\xdd\xdc\x14\x26\x5d\x81\x9c\x13\xd9\x18\x27\x84\xe0\xe8\x5b\xab\x0d\xcc\x0b\x83\x69\xf7\x91\x8c\xc5\x67\x79\x39\xe5\x1f\x9b\xb3\x3b\xc7\x11\x51\x4a\x7b\x53\xd1\xb2\x9b\xe9\x67\x98\xb1\x6b\x33\x01\xcb\x13\x34\xf9\x89\xcd\x7e\xe6\xce\x93\x17\xcb\x4d\xe8\xaa\xa3\x28\xc7\x85\x0e\xaa\x08\x4e\xab\x90\x46\x3f\x2e\x5f\xc4\x3e\xc1\x32\xbb\xd2\x4f\x6c\xf6\x49\xc6\xa2\x70\x59\xe6\xf0\xc4\xe1\xae\x7a\x7a\x23\x1f\x9d\x02\x45\xd7\x4b\xb4\xe9\xb9\x75\xc1\x55\x76\x8d\x63\x26\x64\x54\x9d\xee\xe7\xd1\x38\x27\x1c\xb4\xd3\x6e\x1c\xf6\x05\xee\x9c\x6b\x14\x10\xc2\xd3\xdb\xf8\x6e\x87\xf1\x9c\xce\xb7\x71\xce\x80\x9e\x76\xc2\xda\x13\xd4\xf3\x52\xfd\xa7\x16\xd3\x81\x25\x1f\x88\xe9\xbe\xa6\x3c\xdd\xb4\xe5\x73\x63\x43\xc8\x85\xb3\x76\x24\x72\xeb\x0d\x39\x57\x96\x3a\xc9\xe9\xce\xe9\x74\x7d\x36\xf7\x0e\xca\x7b\x70\x4a\x77\xe7\x55\x27\xb4\x93\x2c\x36\x86\xb5\xd5\xe6\x6d\xc1\x89\x96\x78\x5b\x5d\xa4\x00\xb7\x5f\x8a\xb4\x91\x93\x7e\x39\x39\xe9\xed\xf6\x94\xa6\xbc\xf4\xd3\x19\x5f\x88\x48\x40\x44\x02\x22\x12\x10\x91\x80\x88\x84\xba\xc5\x17\xa8\x7b\x44\x12\x01\xfd\x04\xfd\x04\xfd\x04\xfd\x04\xfd\x04\xfd\x9c\x16\xfd\x04\x90\x00\x90\x00\x90\x00\x90\xe8\x1d\x48\x1c\x00\xed\x07\x9a\x6f\xdc\x4e\x84\xdb\x39\xc7\x2f\xf5\xb8\x0d\x0a\xe5\xec\x3c\xe1\xb2\xca\x00\xcf\x09\x63\x18\x0a\x31\x2f\x7a\xf1\x27\x9c\x73\xd8\x0c\x8c\x3a\x6b\x2f\x7a\x2a\x48\x74\x44\xdd\xdf\xb1\x54\x91\x79\x55\x19\xb5\xab\x48\x26\x1d\x13\x31\x6d\xb8\x30\xde\x16\x7e\xe9\xe3\x3b\xc4\x5f\xc7\x65\x74\xee\xa9\x40\xd4\xd3\xa2\xd0\x49\x86\x27\xb2\x8c\x8a\x83\x3e\xd8\x2c\x23\xf2\x49\x7c\xe1\x21\xf7\x44\xac\xbd\x6b\xba\xd2\x56\x92\x48\xc7\x27\x73\x31\xf3\x63\x71\x72\x47\xca\x98\x89\x30\x55\xfa\x9b\xb5\x9f\xd7\xfc\x49\x49\x31\x7d\x14\x89\xb0\x4a\x50\x31\x97\xc6\xe6\xdc\x90\x12\x48\x3e\x2b\x19\xb3\xdb\x77\xef\xd5\xb1\x31\x77\x08\x52\x05\x32\xf4\xb4\xca\x43\x7e\x25\x47\x86\x29\xf7\x43\xbd\x30\x91\xdf\x26\x3f\x96\x1c\xf7\x06\xa1\xb1\xe5\x73\xa6\xd5\x7b\x32\xe0\xa1\x37\x97\xb1\x77\x13\x3d\x79\x37\x9b\xd0\x77\xa4\x2b\x6e\xfe\xf1\x39\x59\xa8\xab\x1c\xed\x08\x36\xc2\xe9\x72\x78\x06\xa5\x23\x8d\x55\x75\x69\xab\xb6\xbc\x6b\xa1\xb6\x7c\xd0\x3e\xad\x61\xdd\xf6\xbb\xc6\xdb\xd6\x91\xb3\xc3\xba\xef\xc9\x69\x89\xa4\x88\x8c\x40\x4b\x7c\xc5\x8e\xa8\xad\x51\xd3\xff\xa6\xc7\x12\x1b\xad\x55\xaf\xad\xb2\x1a\x28\xa6\x51\xfc\x75\xa8\x5a\x63\x54\xb5\x90\xbe\x7c\x41\xe9\xcb\xc8\xd3\x42\x9e\x16\xf2\xb4\x90\xa7\x05\x2b\x71\xd7\x5b\x34\xc8\xa4\x88\xf3\x58\x5d\xc8\xe9\xd8\x9f\xd3\x31\x06\xf3\x2b\x73\x5c\x77\x9e\xc9\x11\x0b\xee\x56\x74\xaf\x96\x66\x94\x3a\xb3\xbf\xf4\x8d\x82\x3a\x22\xfe\xa2\xa0\xac\xa5\xfa\xc4\x9d\x74\xce\xd8\xbd\xfa\xd7\xfe\x7d\xcd\x7d\xf2\xe7\x25\xcc\x09\x36\x49\x2a\xe2\x7c\x93\xd1\xd1\x9b\x2c\xf0\x9f\x04\x9b\x65\xad\x44\x67\x4a\x97\xb4\xfa\xcf\x9c\x2d\x02\x1e\x86\x42\x2b\xa1\xa4\xa1\xf0\x40\x2b\x45\xb7\xef\x8f\x59\xb5\xe9\x1e\xcf\xa4\x3b\x64\x42\xcb\x54\xef\xa5\x15\x9f\x7a\x52\x76\xaf\x25\xa6\xf6\x8b\x28\xb1\xd2\x31\x71\x4b\x9b\x44\xc4\x14\x70\x94\x6b\xd1\xcf\x3d\x0b\x4a\xdd\xcc\x74\xf1\xf0\xb0\x37\x35\xf8\xe2\xb6\xb6\x03\x4f\x8c\xc2\x15\xf7\x12\x60\x5b\x6c\xde\xb2\xfb\x36\xc6\xd4\xc1\x65\xbc\x08\x9a\x42\x3b\x8e\xaa\xe9\x7d\x4d\xe7\xfe\xb0\x7f\xd1\x5a\x8b\xd8\x13\xad\x8e\x4c\xd2\x98\xa7\xc2\xf3\x9d\xeb\xf6\xe7\xa8\xcf\xcf\xe6\x48\x5a\x1e\xdb\xe8\x1a\x11\x8f\x53\x9f\x32\xaf\x74\x18\xd2\x71\x7a\x07\xfd\xe8\xd9\xbd\xb7\x7d\x81\xf3\x3d\xda\xfa\xa2\x1c\x0c\xc4\xe0\xd3\x9d\xb8\x4f\xf7\x72\xf0\x79\x25\x85\xc1\xbe\x5c\x3a\xcd\x46\x2d\x35\x79\xea\xf6\xeb\x1d\xcb\xd0\x1b\xf2\x68\xe9\xdc\x5a\x1e\xd0\x99\xa1\x0c\xaf\xf5\xd9\x74\x04\x39\x95\x13\xf6\xfa\x97\x44\x86\x0b\x9d\xc1\xfc\x45\x2d\x78\xe6\xf3\x57\xbb\x0c\xe6\x7f\x7c\x33\x24\xae\xdf\x7e\xde\x7c\x92\xb1\x43\x5e\x77\x4f\xd2\xe0\x4b\xf6\x70\xb5\x52\x7f\x7b\xb8\x62\x77\x25\x69\x52\x80\xb4\x76\x91\x93\xfe\x6f\x5e\xd4\x6b\xee\xd0\x00\x50\x0e\x6c\xe0\x3b\xc6\xe9\x47\xe6\x82\xfc\x6e\xc6\x56\xe7\x88\x46\x42\x46\x81\x98\x33\xfd\x9b\x94\xfa\x6e\xe7\x14\x85\x29\xd7\x0e\x44\xf6\xf3\xc7\x88\x57\xfd\x10\xac\x06\xfd\x05\xac\x86\xb3\x5b\x0d\x51\x25\xc0\x77\x04\x76\xc3\xa6\x73\x1f\x52\x14\x70\xe7\x48\x75\xce\x9c\x3c\x59\x85\x0e\x91\x90\x50\xe5\x2e\x49\x95\x1b\x90\xc6\x84\x8d\x3d\xfb\x06\x91\x90\x3b\x6e\x7b\x7a\xfa\xc8\x66\x14\x5e\xcc\x57\xac\x55\x40\x21\x25\x40\xed\x69\xd9\xd5\x39\x0f\x33\xc9\xf2\xa1\xeb\x7f\xf3\xdd\x0d\x0f\x8a\x89\x77\x3c\x2b\x8f\x51\x7c\xf8\x79\x21\x9a\xe6\xc7\x2c\x0e\x67\x46\x17\x9a\xe5\xb5\x92\x4a\xc5\x6f\x32\x1d\x88\xf9\x61\x92\x0a\x5e\x72\x4d\x56\x35\xa4\xef\x7b\x1c\x5e\xbf\x56\xb2\x8c\x90\x0b\x37\xd4\x50\x01\x4a\xe5\xbc\xff\x26\xc2\xcb\x4d\x89\xa3\x11\xbc\x84\xbc\x38\xd4\x1e\x9c\x70\xed\xc1\x66\x6e\xd4\x54\x77\xf0\xf8\xce\xcb\xed\x98\x18\xaa\x0d\xa2\xda\x20\xaa\x0d\xa2\xda\xe0\xd4\xaa\x0d\x36\xaf\xbc\xb5\x95\x06\x7b\x8e\x40\x38\x59\x7d\xc1\xe6\xc7\xdf\x5d\x5b\x70\xc8\x32\x38\xa4\xa2\x60\xb3\x0c\x76\x57\x13\xec\x59\x06\xa8\x21\x88\x1a\x82\xa8\x21\x88\x1a\x82\xa8\x21\xd8\x5b\x0d\xc1\x16\xab\xff\x56\xfd\xc0\xbd\x39\x79\x17\x14\x80\xd8\xee\x69\x26\x5c\x03\xb1\x59\xdc\xfb\xea\x1f\x9e\x56\xee\xa8\x7a\xd8\xcb\x88\x6e\x57\x3c\xec\x79\x58\xcf\x5a\xe7\xb0\x59\x3c\x7b\x6a\x1c\xf6\xbd\x6c\x0e\xb5\xb2\x61\xb3\xd0\x6a\x28\xc6\xd1\xfe\x3c\xf3\xe9\xcf\x17\xd0\xb0\x9a\x22\x1b\x3d\x41\xb1\x22\x09\x0b\xed\x6e\x5f\xd7\xf3\xa7\x13\x22\xf6\x36\x57\xf0\xc9\x88\x31\xca\xa0\xb2\x11\x72\xcb\x65\x56\xb2\x78\x0b\xd7\x3e\x96\xa7\x81\xa5\x81\xa5\x8d\x87\xa5\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x81\xa3\x8d\x89\xa3\xa1\x34\xc9\x21\xe3\x03\x32\x08\x32\x08\x32\x08\x32\x08\x32\x78\x79\x64\x50\xd7\x9f\xbd\x39\x8a\xf8\x9d\x25\xcb\xb5\x32\xc0\x1e\xd5\x0c\x5e\xc9\x78\x9d\x4d\x68\xce\x34\x8f\xd8\x0d\xed\x3c\x91\xea\x22\xb8\x77\x8b\xcf\xff\xaa\x1e\x8b\x9c\xde\x03\x01\x5a\x26\xc4\x91\xe3\x33\xfd\x2a\x14\x8e\x7f\x55\xfc\xcd\xda\xd7\xc6\xb2\xf4\x51\xbf\x3e\x25\x33\x57\x2f\x85\x6d\xde\x1d\x03\xbc\xef\x16\x9f\x7f\xaf\x3b\x0d\xaf\xd1\xe1\xaf\x91\x15\xe4\x14\x7a\x1d\xea\x37\xa4\x06\x47\xb7\x7f\xab\x42\x5b\x64\xd7\xc4\xa5\xd0\xe7\xbf\x6f\x22\xe9\xba\x7e\x12\x6f\xe8\xf1\x96\x1b\xd7\x13\x69\x72\xa2\xb6\x30\x85\xba\xf9\x72\xc5\x16\xd2\xfd\x98\xdd\xc8\xcf\x74\x23\x7b\x5e\x1c\x7d\x89\xd2\xbb\xf3\x21\xbb\x5c\x56\x4f\xd8\x6d\xb8\x28\xda\xc8\x80\xa5\x82\xa5\x82\xa5\x82\xa5\x4e\x90\xa5\xb6\xab\x70\x54\xcb\x53\x4f\x56\x7c\x0a\x35\xc2\x5a\x0f\xd4\x39\x6b\x84\x9d\x0c\x80\x1f\x50\x95\xab\x16\x00\xa3\xa9\x19\x9a\x9a\x0d\x6c\xfa\x1f\x12\xfb\xd0\x4e\x2e\xbb\xe3\x1f\x4e\x36\xfd\x11\x09\x81\x48\x08\x44\x42\x20\x12\x02\x91\x10\xbd\x45\x42\xb4\xdc\x0b\xb6\xa2\x21\xd0\xeb\x13\xbd\x3e\xd1\xeb\x13\xbd\x3e\x47\xd1\xeb\xb3\xfd\x84\x9c\x70\x90\x4f\xbb\x71\xd8\x17\xe8\x73\xae\x51\x40\xc8\x4f\x6f\xe3\xbb\x1d\xf6\x73\x3a\xdf\xc6\x39\x03\x80\xda\x09\x6b\x4f\x10\xd0\x4b\xf5\x9f\x5a\x80\x07\xfe\x7c\x91\xfd\x7b\x77\x62\xe7\xc2\x79\x7b\x3b\xf8\xe6\xea\x52\x17\x09\xd1\xd1\xf6\xfe\x9b\xe5\x42\xef\x27\xbd\xe7\xef\xe6\xab\x1d\x65\xb1\x31\xae\xad\x46\x6f\x6b\x34\x1c\x06\xbf\xd5\xb5\x4a\xe8\xbb\x73\xe0\x8d\x6c\xef\xcb\xc9\xf6\x6e\xb7\xe3\x34\x65\x7c\x9f\xce\x34\x43\xbc\x02\xe2\x15\x10\xaf\x80\x78\x05\xc4\x2b\xd4\x2d\xbe\x00\xe1\x23\x92\x08\xd8\x28\xd8\x28\xd8\x28\xd8\x28\xd8\x28\xd8\xe8\xb4\xd8\x28\x70\x05\x70\x05\x70\x05\x70\x45\xef\xb8\xe2\x00\xa4\x3f\xd0\xec\xe5\x76\x22\xdc\xce\x60\x9e\x54\x73\xfd\x9d\x27\x5c\x56\x65\xdd\xb9\x09\xc4\xb0\x7d\x73\x6b\xdc\xf9\x93\x4e\x67\x6c\xe6\x4a\x5d\x35\xa9\x3c\x21\x4b\x3a\xa2\xbc\xae\x51\x21\x75\x27\xf2\xd0\x65\x6a\x88\x58\xe2\xc8\x48\xbc\x65\xc9\xc6\x79\x54\xeb\x11\xad\xf7\x82\xaf\xf5\x62\x15\xc5\x92\x54\xd6\xba\xc2\x08\xfb\x8b\xf2\x10\x38\x2a\x7f\x8d\xca\x3c\x4d\x4f\x63\x3e\xfd\x99\x0f\xb2\x4c\x3a\x26\x86\xda\x7c\x63\xfc\x40\x38\xa8\x4f\xeb\x17\x0f\x1e\x97\x0f\xbb\x67\x56\xf5\xbd\x68\x76\x92\x28\x8b\x64\xad\xe2\xe8\x0f\x36\x59\x8b\x9c\x37\x5f\x78\xc8\x3d\x11\x6b\x37\xa4\x5e\x46\x93\x44\x3a\x3e\xd9\xd5\x99\xc3\x8f\x93\xdf\x56\xc6\x4c\x84\xa9\x52\x74\xad\xa3\x61\xcd\x9f\x94\x14\xd3\x47\x91\x08\xab\x2d\x16\x53\x92\x6c\xea\x12\x69\xcb\xe4\xdc\x93\x31\xbb\x7d\xf7\x5e\x1d\x1b\x73\x87\x68\x5e\x20\x43\x4f\xeb\x86\xe4\x80\x73\x64\x98\x72\x3f\xd4\x6b\x17\x39\xb8\xf2\x63\x89\x70\x18\xd6\xc8\x96\xcf\x99\xf9\xe3\xc9\x80\x87\xde\x5c\xc6\xde\x4d\xf4\xe4\xdd\x6c\x42\xdf\x91\xae\xb8\xf9\xc7\xe7\x64\xa1\xae\x72\xb4\xc7\xdc\x08\xa7\xcb\xe1\x19\x94\x32\x39\x7a\x1d\xaf\xad\x7e\xf7\xae\x85\x7e\xf7\x41\x7b\x01\x07\x7a\xff\xef\x1a\xef\x5f\x87\x24\x0f\xf4\x01\x26\xa8\x60\x93\x22\x33\x0a\x05\xfb\x15\xeb\xb0\xe6\x49\x4d\xb3\x9e\x1e\x4b\x9f\x1c\xaa\xd4\xd5\x94\x3b\x19\x88\x52\x37\x92\x22\x27\xd0\xdd\x8a\x83\x3c\x58\xdd\x0d\x69\xe5\x17\x94\x56\x8e\xfc\x39\xe4\xcf\x21\x7f\x0e\xf9\x73\x30\x3b\x77\xbd\x45\x83\x4c\x56\x39\x8f\xd1\x86\x5c\x9b\xa6\x5c\x9b\x71\x18\x6d\x99\xc3\xbc\xf3\x0c\x9b\x58\x70\xb7\xa2\x7f\x1d\x66\x64\xa9\x0b\x9c\x34\xad\xa6\xa0\xac\x88\xbf\x28\x58\x6e\xa9\x3e\x71\x27\x9d\x33\x76\xaf\xfe\xb5\x7f\x5f\x73\x9f\xdc\x87\x09\x73\x82\x4d\x92\x8a\x38\xdf\x82\x74\x54\x2d\x0b\xfc\x27\xc1\x66\xd9\x1d\xcf\x94\xa6\x69\xb5\xa3\x39\x5b\x04\x3c\x0c\x85\x56\x51\x49\x7f\xe1\x81\x56\x99\x6e\xdf\x1f\xb3\xa6\xd3\x3d\x9e\x49\xb3\xc8\x84\x96\x29\xe6\x4b\x2b\x3e\xf5\xa4\xec\x5e\x4b\x4c\xed\x26\x51\x62\xa5\x63\xe2\xc9\x36\x89\x88\x29\x10\x2c\xd7\xb1\x9f\x7b\x16\x94\xba\x99\xe9\x62\xfb\x61\x6f\x79\x70\xf4\xb1\x3d\xbb\x46\x65\x0d\x1b\xc1\x96\x71\x04\x48\x2f\xf6\xae\x69\xbc\x9b\x31\xb5\xb0\x41\x84\xc0\xe8\x22\x04\x28\xfe\xe8\xa8\x62\xf6\xd7\x74\xee\x0f\xfb\x57\xf0\xb5\x88\x3d\xd1\xea\xc8\x24\x8d\x79\x2a\x3c\xdf\xb9\x6e\x7f\x8e\xfa\xfc\x6c\x8e\xa4\xbd\xa2\x8d\x4a\x16\xf1\x38\xf5\x29\x3d\x50\xc7\xca\xbd\x48\x3d\xa3\xdf\x1e\xa2\x0b\xbc\xaf\xb8\x86\x3d\x26\xcf\xa2\x1c\xcb\xc6\xe0\x18\x9f\xb8\x63\xfc\x72\x82\x1a\x2a\x19\x38\xf6\xe5\xd2\x59\x62\x6a\x11\xca\x2b\x0f\xbc\xde\xb1\x40\xbd\x21\xb7\xa0\x4e\x0d\xe7\x01\x9d\x19\xca\xf0\x5a\x9f\x4d\x47\x90\x67\x3e\x61\xaf\x7f\x49\x64\xb8\xd0\x09\xf8\x5f\xd4\x52\x68\x3e\x7f\xb5\x0b\x64\xfe\xc7\x37\x43\x8a\xb6\x68\x3f\x6f\x3e\xc9\xd8\x21\x74\xe1\x49\x1a\x7c\xc9\x1e\xae\x56\xea\x6f\x0f\x57\xec\xae\x24\x4d\x8a\xef\xd7\x9c\x81\xcc\x24\xf3\xa2\x5e\x73\x87\x06\x80\x52\xb8\x03\xdf\x31\x9e\x53\xb2\xaa\xe4\x77\x33\xb6\x3a\xc5\x39\x12\x32\x0a\xc4\x9c\xe9\xdf\xa4\xca\x0d\x76\x4e\x51\x94\x7d\xed\x40\x64\x3f\x7f\x8c\x78\xd5\x0f\xc1\xb8\xd2\x5f\xc0\xb8\x1a\x92\x71\x15\x55\x42\xd5\x47\x61\x5e\x6d\x3a\xf7\xc8\x45\x01\x77\x5e\xa6\xf5\x99\x6b\x5c\x92\xde\x87\x78\x56\xa8\x7e\x17\xa9\xfa\x0d\x48\xc3\x82\x22\x90\x7d\x83\x78\xd6\x8b\x56\x64\x36\x23\xf1\x12\xbf\x62\xdd\x47\x83\xde\x24\x1a\x2d\x1f\xd3\x90\xf2\x20\x6c\xa9\x7f\xc7\x6e\x73\xa7\x01\x98\x06\x9b\x63\x7d\xc3\xfa\x00\x8a\x04\x8a\x04\x8a\x04\x8a\x34\x12\x8a\xd4\xcd\x6e\x79\x20\x4f\xaa\xd9\x2e\x47\xe9\x5d\x00\x55\x82\x6b\xe1\xf2\x5c\x0b\xa0\x4a\x5d\xce\x1b\x50\x25\x38\x93\x60\x6c\xd9\x3f\x83\x2a\x9d\x85\x2a\x75\xe5\x33\x39\x90\x2f\x4d\x45\x0f\x04\x65\x82\x2a\x78\x91\xaa\xe0\x80\x34\x2e\x28\x06\xd9\x37\xa0\x4c\x17\xad\xd8\x4c\x87\x32\xd5\xe1\xa4\x5e\x01\x52\xaf\x9d\xa5\x6a\x4e\xff\x24\xe3\xbb\x20\xc8\x74\xa4\x41\x10\xa4\x9d\x27\xa0\x7c\x28\xca\x87\x5e\x5e\xf9\x50\xf4\x6b\x9b\x70\xbf\xb6\x66\x00\xd5\xd4\xab\x6d\xaf\x37\xab\x03\xb8\x86\x0e\x6d\xe8\xd0\x86\x0e\x6d\xe8\xd0\x36\xb5\x0e\x6d\xcd\x2b\x6f\x6d\x77\xb6\x9e\x43\x19\x4e\xd6\x93\xad\xf9\xf1\x77\xf7\x63\x1b\xb2\x0c\x0e\xe9\xc2\xd6\x2c\x83\xdd\x1d\xd8\x7a\x96\x01\xfa\xae\xa1\xef\x1a\xfa\xae\xa1\xef\x1a\xfa\xae\xf5\xd6\x77\xad\xc5\xea\xbf\xd5\x73\x6d\x6f\x35\xcd\x0b\x8a\x64\x6c\xf7\x34\x13\xee\x1b\xd7\x2c\xee\x7d\x3d\xe3\x4e\x2b\x77\x74\x8a\xeb\x65\x44\xb7\xbb\xc4\xf5\x3c\xac\x67\xed\x0d\xd7\x2c\x9e\x3d\x7d\xe1\xfa\x5e\x36\x87\xda\x0d\xae\x59\x68\x35\x18\xe3\x68\x7f\x9e\xf9\xf4\x67\x2b\xac\x95\x08\x67\x13\xfb\xe9\x33\x7d\xe3\x97\x68\x47\x9f\xb5\xf2\x0b\x25\x83\xe5\x8a\x2d\xa8\x6a\x35\xdd\xc7\x56\x39\xd9\x16\x55\xf3\x3f\x64\x17\xdb\x7b\x21\xd4\xcc\x87\x1b\x17\x6e\x5c\xb8\x71\xe1\xc6\x9d\xa0\x1b\xb7\x5d\xcc\x57\xad\x2b\xf7\x64\xe1\x78\x88\x9a\x6c\x3d\x50\xe7\x8c\x9a\x3c\x99\xef\xfd\x80\x38\xc5\x5a\xdf\x33\x3a\xb8\xa0\x83\xcb\xc0\xa6\xff\x21\xd8\xa5\x9d\x5c\x76\xa3\x97\x93\x4d\x7f\x40\x18\x40\x18\x40\x18\x40\x18\x40\x98\xde\x20\x4c\xcb\xbd\x60\x0b\xc4\xa0\xb1\x19\x1a\x9b\xa1\xb1\x19\x1a\x9b\x8d\xa2\xb1\x59\xfb\x09\x39\x61\x62\xda\x6e\x1c\xf6\x51\xd3\x73\x8d\x02\xf8\x69\x6f\xe3\xbb\xcd\x50\x4f\xe7\xdb\x38\x27\x4d\x6d\x27\xac\x3d\x44\xf5\xa5\xfa\x4f\x2d\xb2\x43\xb2\x2a\x9a\x15\x1e\xd3\xac\x30\x57\x97\x4e\x90\x8d\xb5\x93\xf3\x9e\xbf\x69\x61\x63\xf2\x66\x6b\xd8\x5d\x97\xba\xf9\x72\xc0\x8d\xc4\xb2\xcb\x49\x2c\x6b\xb7\xc3\x34\x25\x97\x9d\xce\x14\x43\x7c\x02\xe2\x13\x10\x9f\x80\xf8\x04\xc4\x27\xd4\x2d\xbe\x00\xdf\x23\x92\x08\x58\x28\x58\x28\x58\x28\x58\x28\x58\x28\x58\xe8\xb4\x58\x28\xf0\x04\xf0\x04\xf0\x04\xf0\x44\xef\x78\xe2\x00\x84\x3f\xd0\xd4\xaf\x76\x22\xdc\x4e\xff\x9a\x54\x79\xf2\x9d\x27\x5c\x7c\x25\xbf\xb2\x33\x1f\x75\xfc\x4e\x51\xc7\xaf\x3b\x72\x74\x44\x15\xbf\xb1\x64\xf6\xbf\xaa\x8c\xda\x55\x24\x93\x8e\x31\x99\xb6\x60\x18\x3f\x88\x88\xe9\x93\xba\x67\x62\x83\xaf\xe3\x5e\x79\xc4\x76\xab\x04\xf2\x91\x26\x90\x8f\x84\x2a\xee\xa8\xe2\x5e\x73\x33\xe3\x51\x6b\xc6\x56\xc3\xfd\xd8\xbb\x7f\xd7\x78\xf7\x3a\xe2\x76\x90\xb7\x3f\x41\x7d\x92\x54\x96\x11\xe8\x93\xaf\xd8\x11\x85\x3a\x4c\x37\xe3\x13\xd5\xeb\x38\x4c\x49\xab\xa9\xd1\x81\xca\x1c\xd0\xc6\x26\xa1\x8d\x21\x17\xfa\x82\x72\xa1\x91\xf4\x85\xa4\x2f\x24\x7d\x21\xe9\x0b\x86\xe4\xae\xb7\x68\xa0\x86\x24\x4c\xb1\x61\x99\x62\xc6\x34\x19\x81\x31\x96\x39\xbc\x3b\x4f\x0b\x89\x05\x77\x2b\xda\xd7\x21\x46\x95\x3a\xbd\xf7\x5c\x90\x82\x72\x22\xfe\xa2\x08\xaf\xa5\xfa\xc4\x9d\x74\xce\xd8\xbd\xfa\xd7\xfe\x7d\xcd\x7d\x72\x00\x26\xcc\x09\x36\x49\x2a\xe2\x7c\xcb\x31\x3d\x9f\x03\xff\x49\xb0\x59\xd6\x53\x6c\xa6\x34\x4b\xab\x0d\xcd\xd9\x22\xe0\x61\x68\x9a\x75\x93\xbe\xc2\x03\xad\x22\xdd\xbe\x3f\x66\x0d\xa7\x7b\x3c\x93\x26\x91\x09\x2d\x53\xc4\x97\x56\x7c\xea\x49\xd9\xbd\x96\x98\xda\x3d\xa2\xc4\x4a\xc7\x04\x41\x51\x03\x6d\x87\x87\x05\x9d\xfa\xb9\x67\x41\xa9\x9b\x99\x2e\x6b\xbe\x90\x2d\x6e\x82\x7b\x44\xa5\x8b\xe1\xe0\x37\x88\x23\xe8\x2f\x81\x1b\xe3\x3d\x69\xb8\x17\xdf\x36\x07\x7f\xac\x87\xbd\xf4\x6f\xe9\x9b\x3d\x30\xb2\xe7\x8a\xd4\xe3\x85\xda\x14\x35\xd2\x6a\x97\xaf\xae\x5b\xd7\x74\xee\x0f\xfb\x97\xb0\xb5\x88\x3d\xd1\xea\xc8\x24\x8d\x79\x2a\x3c\xdf\xb9\x6e\x7f\x8e\xfa\xfc\x6c\x8e\xa4\xc5\xb2\x8d\x16\x12\xf1\x38\xf5\x29\xa9\x4b\x47\x38\xbd\x40\x23\xa1\x5f\x1e\x8a\x97\xb7\x2f\x14\xbf\xc7\x07\xbc\x28\xc7\x1c\x31\xf8\x7e\x27\xee\xfb\xbd\x1c\x12\x5f\xc9\x94\xb0\x2f\x97\xce\xe6\x51\xcb\x4e\x9e\x21\xfe\x7a\xc7\x92\xf4\x86\x3c\x5f\x3a\x85\x97\x07\x74\x66\x28\xc3\x6b\x7d\x36\x1d\x41\xce\xe7\x84\xbd\xfe\x25\x91\xe1\x42\x27\x4a\x7f\x51\x8b\x9f\xf9\xfc\xd5\x2e\x89\xf9\x1f\xdf\x0c\x29\x44\xa0\xfd\xbc\xf9\x24\x63\x87\xbc\xf3\x9e\xa4\xc1\x97\xec\xe1\x6a\xa5\xfe\xf6\x70\xc5\xee\x4a\xd2\xa4\x38\x6c\xed\x4a\x27\xcb\xc0\xbc\xa8\xd7\xdc\xa1\x01\xa0\x54\xdb\xc0\x77\x8c\x73\x90\x0c\x09\xf9\xdd\x8c\xad\x4e\x45\x8d\x84\x8c\x02\x31\x67\xfa\x37\x29\xc3\xde\xce\x29\x8a\x86\xae\x1d\x88\xec\xe7\x8f\x11\xaf\xfa\x21\xd8\x13\xfa\x0b\xd8\x13\xe5\x87\x3a\x2b\xfe\xaf\x04\x14\x8f\xc0\xa2\xd8\x74\xee\x72\x8a\x02\xee\xbc\x44\xc7\x33\x57\x98\xba\x96\x87\x80\x4b\xa8\x79\x17\xa8\xe6\x0d\x48\x9b\xc2\xa6\x9f\x7d\x83\x80\xcb\x56\x77\x3f\x45\x95\x65\x33\x0a\x17\xe8\x2b\xd6\x14\xb0\x48\xe9\x58\x37\xa1\x65\x3f\x26\x5a\x91\x3e\xff\x7d\x13\x49\xd7\xf5\x93\x78\x43\xa3\xb4\xdc\xb8\x9e\x48\x4b\x7d\xc7\x3a\x27\x6f\x26\xaf\x3f\x74\xfd\x6f\xbe\xbb\xe1\x41\x31\x47\x90\x67\x95\x3c\x16\xd2\xfd\x98\xdd\xd6\xcf\x74\x5b\xf3\x42\x00\xcf\x8f\x59\xe8\xcf\x8c\xae\x37\xcb\xab\x3b\x95\xca\xf5\x64\x0a\x14\xf3\xc3\x24\x15\xbc\xe4\xf1\xac\xaa\x57\xdf\xb7\x5c\x68\x19\x2f\x73\x6b\xee\xe7\xd7\x4a\x86\x14\x12\xfa\x86\x5a\x12\x92\xf2\x51\xef\xbf\x89\xf0\x92\x13\xfa\x68\x0c\x4f\x94\xd5\x57\x7d\x55\x4e\x4c\x76\x50\x44\x71\xc2\x45\x14\x9b\x29\x55\x53\x01\xc5\xe3\xbb\x79\xb6\x23\x70\x28\x9b\x88\xb2\x89\x28\x9b\x88\xb2\x89\x53\x2b\x9b\xd8\xbc\xf2\xd6\x96\x4c\xec\x39\xde\xe1\x64\x85\x12\x9b\x1f\x7f\x77\x91\xc4\x21\xcb\xe0\x90\xd2\x88\xcd\x32\xd8\x5d\x16\xb1\x67\x19\xa0\x18\x22\x8a\x21\xa2\x18\x22\x8a\x21\xa2\x18\x62\x6f\xc5\x10\x5b\xac\xfe\x5b\x85\x10\xf7\x66\x07\x76\xb0\xec\x9b\xa7\xd6\x50\x48\xa9\xb3\x9b\xf4\x91\x25\x8e\x8c\xc4\x5b\x96\x6c\x9c\x47\x35\xf2\x64\xaf\x08\xbe\xd6\xa9\x59\x51\x2c\x49\xca\x87\x87\x78\x92\x2b\x10\x71\x9e\x7d\x3c\xcd\x84\xab\x58\x36\x8b\x7b\x5f\x05\xcb\xd3\xca\x1d\x75\x2b\x7b\x19\xd1\xed\x9a\x95\x3d\x0f\xeb\x59\x2b\x55\x36\x8b\x67\x4f\x95\xca\xbe\xf7\x8b\xa1\xd6\xa6\x6c\x16\x5a\x0d\xc2\x39\xda\x91\x69\x3e\xfd\xd9\x03\x3c\xac\xa9\x85\xd2\x13\x43\x2c\x82\xc3\xd0\xaa\x3f\x85\xce\x4e\xbd\x00\xc4\xb7\xb9\xe1\x43\xc6\x9d\x51\x92\x95\xed\x94\x5b\x74\xb3\x92\x27\xa0\x70\xed\x0e\xf1\x23\xd0\x23\xd0\xe3\x98\xd0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\x23\xb0\xe3\xb8\xb0\x63\xa5\x78\xcc\x7e\xcf\xc3\x98\xca\xc7\x80\xa7\x82\xa7\x82\xa7\x82\xa7\x0e\x7a\x44\xc1\x53\xcb\xe2\x01\x4f\x1d\x19\x4f\x45\xd6\xe5\x1e\xec\xb9\x23\xd7\xf2\x93\x8c\xef\x82\x20\x63\xa2\x09\x00\x28\x00\xe8\x98\x00\x28\x72\x2f\x01\x41\x01\x41\x01\x41\x01\x41\x01\x41\x01\x41\x01\x41\x01\x41\x01\x41\x01\x41\x01\x41\x01\x41\x01\x41\x01\x41\x01\x41\xc7\x07\x41\x81\xcc\x80\xcc\x80\xcc\xc6\x31\xa2\x40\x66\x65\xf1\x00\x99\x8d\x0f\x99\x55\xdb\xae\x0f\x83\x98\x95\x2b\xb8\x9e\x87\x97\x95\xef\x01\x95\x49\x41\xc7\x40\xc7\xf2\x2f\x87\xd2\x71\x0e\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\x0c\x6c\xac\xed\xd3\x80\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\x81\x8d\xed\x62\x63\xc3\x29\xc3\xd9\x03\x1f\x3b\x65\x11\xce\xfd\x0d\x96\x41\xd6\x40\xd6\x06\x4e\xd6\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\x40\xd5\xc6\x44\xd5\x2a\x65\x37\xf7\xf9\x1d\xc6\x54\x74\x13\xb0\x10\xb0\x10\xb0\x70\x1c\x23\x0a\x58\x58\x16\x0f\x60\xe1\x70\x61\x61\xbc\xe4\xce\xdc\x12\x0b\x7a\x04\x22\x27\xbe\xbc\x39\x8a\x0b\xf6\x4d\xb5\xda\x30\x47\x4f\xa4\xcc\x0f\x57\x32\x5e\x67\x73\x9c\x33\xcd\x29\x76\x53\xbd\xff\x9f\xbd\xf7\x69\x8e\xd4\x48\xd7\xbe\xf7\xfa\x14\x19\x9a\x85\xec\x98\x56\xe9\xed\xde\x1c\x87\x67\xa5\xe9\x6e\x9f\xb7\xe7\x19\xdb\x0a\xb7\xc3\x67\xf1\xb4\xe3\x04\xa2\x52\x25\xa2\x11\x54\x40\x95\xfa\x68\x4e\xcc\x77\x7f\x82\x4c\xa0\x80\xe2\x5f\x21\x0a\x12\xf8\x79\x63\x45\x57\x41\x41\x66\x92\xdc\x99\xbf\xfb\xbe\xae\x8d\xdc\xfd\x76\x6f\xd9\xb7\xd9\x96\xb8\xbd\xfb\xf4\x9f\xc5\xc3\xc6\xc2\x79\x93\xa5\x6c\x69\x23\x4e\x9c\xb1\x05\xc5\xd1\x91\x39\xf4\x22\xfb\xf3\x6d\x9f\xaf\xe7\xb7\xd3\x7e\xc4\x72\x4b\x64\x3d\x83\x9e\xf8\x7c\xfd\xf1\xf6\xf6\xee\xd3\x6f\x65\x07\xf3\x94\x9d\xfe\x94\x25\x0d\xa9\x4a\x7b\xe7\xf6\xb0\xfd\xf7\xf3\xdb\x1e\x9e\x37\xdb\xdd\x87\x3b\x19\x04\xbe\x2b\xef\x1d\x6f\xed\x78\x9b\x5c\x81\xb8\xde\x92\xe8\x37\x01\x46\x9f\x53\xd8\xbe\xeb\x4a\x3b\x79\x1d\xbd\xd7\xd7\xf1\x9b\xef\xca\xbf\xeb\xeb\xa8\x79\x72\xf4\x19\x4a\x1e\x9e\xf7\xe9\x39\xeb\xcf\x57\x01\xcc\x45\xb1\xdf\x75\x48\x72\xef\xaf\x5f\x8a\x43\x36\x89\x49\xca\x3e\x3b\xcb\x70\xfe\xa0\xee\xf9\x57\xd5\x8a\x61\xcb\xc1\x5c\x3f\x8a\x61\xb0\x30\x58\x18\x2c\x0c\x76\x6e\x0c\xb6\x66\x29\xd9\xc4\x61\xeb\xb7\x25\xea\x97\x94\x27\xcd\xbd\xff\x15\x35\x5c\xbc\xfb\xfc\x46\xe9\xa5\xd8\xd1\x88\xd2\xe3\x20\x77\x6f\xd9\x7c\xa7\x7b\x29\xb6\x51\x6b\x85\x3b\xb9\x5e\x89\x5b\x4f\x38\x9e\x9e\x59\xfc\x40\xec\xbd\x74\x72\x5a\x8b\x75\xf0\xf2\xdb\xde\x13\x6b\x27\x88\xde\x86\xcf\x32\x1d\xf1\xd1\xf4\xa9\x58\x41\xfc\xc8\x27\x63\x23\x6e\x60\xf1\xb0\x0f\xd4\x53\xb6\x0d\x7c\x5b\x86\x6a\x53\x3f\xde\x0f\x89\x47\xd9\x4a\xfc\xa1\x7e\x51\xf5\x96\x1a\x3b\x3f\x8a\x6b\x71\xeb\xba\x3f\xaa\x2d\xfb\x75\x34\x4b\xef\xbd\xa8\xe3\x37\x32\x4c\x87\x64\x7c\x3a\xb9\xee\xd0\x51\xfa\x5e\xc6\xe9\xa6\xc1\xc0\x79\xbb\xa6\xa8\x86\xe7\x83\xb5\xc8\xef\xd9\xad\x32\xc7\x13\xa1\xde\xc1\x12\xf7\xf2\x41\x67\xf8\xa5\x90\xe5\x10\x4a\xc4\xb3\x97\x1a\x3a\x7b\xa9\x5f\x0e\xf7\x52\x78\xbe\x77\xed\xc9\x8d\xa5\x06\x68\xbc\xd9\xb5\x12\xbf\xa7\x2f\x6c\x0d\x5c\xd3\x47\x23\x0e\x1b\x9d\xa7\x27\xb9\x76\xac\x9d\x74\x5f\x0e\xa9\x77\x87\x57\xae\xe3\xbe\x89\x37\xb3\x54\xa3\x8b\x4d\x60\xd9\xea\xa9\x71\xfc\x75\x1a\x10\x1c\x5e\xda\x2a\xaf\x31\x19\xa5\xfb\x30\xba\xc8\x6c\x77\x59\xd1\x91\xc9\x0d\xc5\x3f\xf2\xa0\xe7\xc0\xe4\x14\x2b\x7d\x9d\x4f\xd2\xf2\x4a\xaf\xb1\x43\x37\xab\x6b\xbe\x53\x97\x5c\xb6\x41\xd8\xb0\x45\x68\xca\xf0\x3f\x25\x67\xa2\x5d\xbb\x54\xe7\x4d\x0c\x36\xfc\xc9\xa0\x20\x83\x82\x0c\x0a\x32\x28\xc8\xa0\x38\x5b\x06\x45\xcb\x77\xc1\x51\x16\xc5\x70\xaf\xc5\x0f\x99\x5a\xac\xad\x2b\xad\x50\xa6\x53\xd0\x5d\xe0\x6f\xad\x8d\x8a\x8e\x74\x7a\x45\x2e\x5f\x3f\x19\x74\x87\x62\xae\x68\xd8\xbd\x5d\xfd\xc7\x4a\x7c\xd6\xf3\x99\x0e\x5d\xb6\xd2\x8b\x1e\x96\xc3\x3b\x55\x0a\x3f\xd8\x3e\x5a\x5e\x52\x3f\x10\xec\xe5\xcd\x83\xe5\x26\x6b\xe5\x2f\x97\xfa\xe3\x2f\x97\xe2\xc1\xf1\x2c\xd7\xf9\x57\xf2\x22\xb9\x97\xc2\x5a\x2b\xfe\xec\xdf\x68\x36\xb7\x3e\x2c\xc3\xf4\xe9\xaf\xc2\xc3\x41\x7a\x7d\xba\x12\x1f\x1d\x35\x39\x66\x2e\xdd\x0f\x8e\xef\xed\x90\x6d\xb0\xd3\xcb\x63\xb5\x46\xf1\x77\x8f\x5d\x3a\x54\xdf\xc1\x87\xe4\xde\x2b\x43\x9e\x32\xd2\xd7\xef\xc2\x4c\xdd\x7a\xf4\xc0\x3e\xfa\xdf\xc4\xc6\x0a\xee\xad\x4d\x6e\xb7\x32\x5d\xd4\xc8\xe0\xc1\x0f\x9e\xa2\x3e\x29\x6d\xaf\x5f\x0b\x77\x54\xdd\x5c\x2a\xe8\x4d\x22\x56\x5d\x35\x14\x3d\x1f\x6b\x69\x3b\xeb\xc3\x52\x58\xc5\x0a\x6a\x73\x22\xed\xe3\x50\x71\x3d\xf5\x69\x12\x0d\xac\x32\x9d\x99\xbc\x47\x52\xdc\x9f\xd6\xc2\xe4\x7f\x6c\x25\x6e\x6d\x5b\x6e\x77\xea\xdd\x94\x5d\xd9\x5d\xe9\x7b\xb8\x12\xd7\xf1\x00\xcc\x0f\xd0\xf0\x6f\xe2\xea\xef\x96\xfd\x75\x13\xf8\x7b\x6f\x1d\x7d\x4b\xd5\x95\xa8\x2f\x15\x1a\x4e\x87\x90\x71\x7c\x9c\x3f\x49\x72\x07\xf7\xe9\x99\xfe\x26\xae\x7e\xf2\x03\x99\x39\xad\xb0\xad\xd0\xb6\xd6\xd1\xdd\xc7\xed\xa3\xcb\x8e\xd4\xf9\x42\xbd\xf4\x3c\x3a\xe1\x43\x7a\x8e\x2e\x03\x72\x5b\x1c\xee\xe3\x44\x9c\x33\xce\x0b\x6a\xd7\x0f\x75\xb9\x41\x63\xf5\x02\x59\x42\x67\xeb\xdf\xe3\x4c\xa1\xe1\xf6\x36\xc6\xcc\x19\x6a\xd7\x58\x35\x79\x43\xaf\x8d\x7f\x4a\xd1\x1d\xd4\xf9\x44\x4c\xf7\x79\x67\xed\xf6\x6d\xf9\xdc\x54\x61\x73\xe6\xe8\x8a\x1a\x6a\xfd\x62\x3e\x04\x4d\x7d\x94\x53\x57\x72\xec\xf2\x0a\xeb\x5a\x02\x5c\x2c\xb1\xae\xab\xae\xee\x5d\x01\x42\xef\x9d\x05\xf1\x7a\x3b\x09\xf2\x13\xf1\x87\x93\x48\x78\x74\xaa\x32\x0e\xde\x0b\xfd\xa6\x64\x7c\x39\x25\xe3\xed\x5e\x3f\x4d\x65\xe3\xc3\xad\xd3\x48\x5e\x20\x79\x81\xe4\x05\x92\x17\x48\x5e\x28\x9b\x7c\xa1\xe2\x13\x6a\x11\x40\x29\xa0\x14\x50\x0a\x28\x05\x94\x02\x4a\xe7\x05\x4a\x61\x17\xb0\x0b\xd8\x05\xec\xe2\xec\xec\xe2\x04\xbe\x6f\x68\xf5\x73\xbb\x26\x3c\xae\x80\x7e\xed\x8e\x9b\x51\xd4\xa7\xf2\x80\x65\x09\xf4\xae\x14\xe9\x78\x7e\xbb\x3a\xde\xc6\x5f\x40\x25\x63\x33\x5c\xea\xcb\xf5\x72\x2c\xa0\xd4\x41\xae\x77\x2a\x5a\x37\x17\x85\x4e\xbc\xdc\xfa\x61\xcf\xf4\x4c\x2f\x68\x84\x75\x1a\x28\xd3\x47\x9d\x0d\x95\x75\x2b\x14\xad\xd1\x4e\x3a\xd7\x04\xd2\x4b\xe5\x28\xd5\x4b\xd9\x5e\x37\xb6\x7a\x49\x6d\x60\xfc\x6c\x79\xd6\x46\x06\x7a\x2b\x4e\x29\x81\x59\x61\xe8\xdb\x8e\x5a\x5b\xa6\x9b\x5e\x96\xda\xbb\xf4\x03\x21\xbd\x5d\x14\xec\x25\x8b\xed\x27\xeb\x6b\xd4\x8a\xbb\x47\x19\xca\x24\x62\xca\xd6\xe8\x24\xb5\x3c\x2a\x62\x54\x1b\x5c\x7e\x20\xde\xbe\xfb\x21\xfa\x6e\x60\xd9\x8a\x68\xb9\xbe\xb7\xd1\xf1\x91\xda\x84\xb2\x7d\x6f\x67\x39\x9e\x9e\xad\xd4\x26\xcf\xe1\xbb\x6a\x97\x3f\xe6\x6d\xe2\xfe\x25\x5d\x02\x6c\x7c\xd7\xf2\x36\x2b\x3f\xd8\xdc\x6c\xbf\x6e\x6e\xf6\x9e\x63\xfb\x6b\x79\xf3\x97\x4f\xe1\x5d\x74\x96\xce\xbb\xc6\x71\xe3\xf4\xd9\x3d\x46\x05\x54\x93\x8d\x73\xda\xc6\x38\xef\x5a\xc4\x38\xef\xf5\x0e\x98\x61\xd7\xfd\xae\xf1\xba\x75\x4e\xae\x61\x17\x3e\xdb\xa0\x52\x05\x2a\xd3\x0b\x2a\x2f\xc4\xab\xf5\x3e\x4a\x4c\x6f\xce\x28\xfb\x71\x62\xdc\x56\x2d\xf5\x81\xc0\x07\x61\xda\x2c\xc2\x34\x4a\xaa\x17\x54\x52\x4d\xed\x18\xb5\x63\xd4\x8e\x51\x3b\xc6\x0a\xb3\xea\x29\x32\xb2\x50\x63\x9c\xf5\x1a\x75\x26\xe9\x37\x6b\xeb\x4c\x26\xb8\x6e\x4b\x37\xc8\x7b\xaf\x2e\x09\xa4\xb5\x2e\x84\x64\x27\xad\xb8\xa2\xe3\x4f\x5f\x6f\x31\xfd\xb0\xdf\x72\xd2\x93\xbb\x91\x53\xdc\x6e\x79\x0d\xc3\xcb\xda\x70\x34\x5d\x07\x3e\x1c\x43\xb0\x49\x95\x0b\xd0\x49\x61\xfa\x5a\x1d\xfb\xd7\xfa\x29\xed\x49\x06\x1b\xd9\xea\x9b\xe1\x2e\xb0\x76\x72\xe3\xd8\xd7\xed\x8f\x89\xfe\x7e\x89\xbf\xa9\x26\xcf\x36\x2f\x87\xad\x15\xec\x1c\x55\xaa\xa3\xf3\x56\x5e\xf3\xa2\x50\x3f\x6d\xd8\xce\xdc\xb9\x88\x6a\x4d\x24\x76\x97\xcf\x28\x11\xec\xd7\xcd\x7c\xbf\x6e\x39\x58\xb5\x90\x07\x9f\x3c\x5c\xba\x56\x23\x9a\x7e\x0e\xf5\xbf\xdf\x55\x4c\x4d\xdf\xab\xdd\x0a\x5d\xa0\x69\xb9\xea\x48\xcf\xf7\xae\xf5\xd1\xea\x1b\x6a\xc3\x30\x14\xdf\xfd\x23\xf4\xbd\x3b\x5d\x06\xfb\x73\x34\x09\xc6\x7f\x7f\x4e\xa6\xc6\xc3\x3f\x7e\x6f\x12\xef\x6d\x3f\x6e\x7e\xf2\x03\x5b\xed\xa8\x6e\x7c\xd5\xf9\xbe\xf8\x72\xf9\x10\xfd\xdb\x97\x4b\x71\x9b\x6b\x4d\x95\x65\xab\xb7\x3f\xf7\xe1\xa1\xe4\xef\xda\xb2\x55\x07\xa8\x42\x4a\xd7\xb1\xe3\x0d\x1d\xe9\xae\x43\xe1\x7f\x8b\xfb\x56\x17\x1a\x6e\xa5\xbf\x75\xe5\x4a\xe8\xdf\x54\xf5\xd3\xc9\x98\x52\xb9\xae\xa5\x1d\x91\xfe\x7c\x97\xe6\x8d\x7e\x68\xbe\x99\x89\xac\x33\xa6\xba\xce\xd8\xf6\xe5\xe6\x3f\xda\x4a\x63\xdf\xfb\x06\xc1\xd6\xb5\xec\x57\x85\x7e\xf1\x29\x16\x12\xfc\x91\x4e\x47\xdc\xb7\xa8\xb8\xcf\xa0\xf0\x8a\x28\x20\xfd\x84\x74\xba\x05\x46\x2f\xfb\x29\xee\x92\x5e\x88\xce\x49\x69\xa3\xbb\x4f\x75\xca\x45\x2b\xb3\x9d\x22\x1d\x0d\xc9\x26\x24\x9b\x90\x6c\x42\xb2\x09\xc9\xa6\xd1\x25\x9b\x58\x62\xb6\xee\x28\xfc\xa6\x4c\x52\xd6\x22\x39\x7a\x41\xc9\xd1\xc8\xa8\x21\xa3\x86\x8c\x1a\x32\x6a\xc8\xa8\x21\xa3\x86\x8c\x1a\x35\x43\xd4\x0c\x51\x33\x44\xcd\x50\x71\x44\xe2\x37\x85\x66\x23\x9a\x8d\x68\x36\x4e\x5c\xb3\xb1\x14\xd6\x41\xf6\xa9\x03\xec\x5e\x07\x68\x8a\xdf\x94\x29\xa5\x80\xad\x8d\xa6\x6a\xa0\x77\xb3\xc3\x54\x17\xd0\x8d\xb5\x14\xd6\x52\xfa\x23\xac\xa5\xc8\x53\x20\x4f\x81\x3c\x05\xf2\x14\xc8\x53\x00\x80\xc3\x44\x9b\x5b\x04\x26\x0a\x13\x85\x89\xc2\x44\x61\xa2\x0b\x66\xa2\x60\x0a\x30\x05\x98\x02\x4c\x81\xb5\x14\xd6\x52\x58\x4b\xa5\x9f\x74\xa9\xb5\xc4\x53\xca\x08\x4f\xa9\xae\xf2\x10\x98\x49\xf5\x6c\x26\x55\x03\xc3\xda\xb8\x48\xcd\x53\xef\x02\xa1\x8b\xe5\x54\x21\x21\x74\x81\xd0\x45\xc9\xc5\x18\x1d\xc4\x4c\x4e\xe1\xc2\x6c\xe5\xf1\xd7\x5c\xf1\x6c\x63\xc4\xf1\x2d\xa2\x86\x93\xe1\x18\xd1\x14\xaa\x93\x02\x07\xba\x1b\xa2\xaa\x8d\x89\xba\xb2\x9d\x6c\x6c\xd4\x45\xa5\xf3\x82\x2a\x9d\x29\xe9\xa2\xa4\x8b\x92\x2e\x4a\xba\x58\x30\x56\x3d\x45\x46\xd6\x4f\x60\x03\x65\xe6\xca\xcc\x04\x1b\x28\x53\x8a\x3e\xea\xfd\x9f\x6a\x16\x57\xcd\xc6\x4f\x97\xcc\x34\xec\x9b\x4c\xd0\xea\x69\x38\xb4\x56\xe1\xf1\x54\x06\xd1\x30\x77\xc2\xdc\xa9\xf2\x98\x33\x9b\x3b\xd5\xbc\x05\x5a\xb8\x3a\x4d\x9f\x70\x62\xe7\xc4\xbe\xdb\xf2\x68\x27\x76\x4e\x7d\x8e\x1b\xec\x9c\xd8\xae\x60\x11\x51\xd6\x90\x73\xf5\x71\xea\xba\x8c\x18\xdc\xc0\xa9\x76\x91\xdf\xc2\xb9\x69\xfa\x01\x1e\x29\x6c\x04\x75\xcb\x08\xea\x0c\x8a\x9d\x78\xc5\xa7\x9f\x90\xc2\x96\x39\xf7\x7c\x63\x92\xb1\xdd\x99\xce\x9b\x0f\x16\xcd\x17\xe1\xd6\xb2\x93\x6c\x30\xf5\xf7\xbf\x6f\x02\xdf\x95\xf7\xda\x16\x6a\x1c\xb7\xa6\x76\x1e\x95\x2d\xdc\x9a\x7e\x49\x6e\x6a\x3d\x8a\x5f\xe5\x44\xf2\xc7\xd0\x43\x42\x0f\x09\x3d\x24\xf4\x90\xd0\x43\xca\x7e\x8e\x6f\x13\xcb\x4d\x64\xab\x2a\x5b\x84\x6c\xe6\x05\x65\x33\xa3\x51\x86\x46\x19\x1a\x65\x68\x94\xa1\x51\x86\x46\x19\x1a\x65\x14\xf9\x50\xe4\x43\x91\x0f\x45\x3e\xc5\x11\x89\x6f\x13\x82\x88\x08\x22\x22\x88\x38\x71\x41\xc4\x52\x6c\x07\xe5\xa7\x70\xaf\x7b\xe1\xde\xa8\xbe\x4d\xe5\xe8\xd7\x60\xdf\xa6\x76\xf8\xbb\xc2\xb7\xa9\x37\xe4\x8d\x83\x13\x0e\x4e\xfa\x23\x1c\x9c\xc8\x58\x20\x63\x81\x8c\x05\x32\x16\xc8\x58\x00\x85\x43\x47\x9b\x5b\x04\x3a\x0a\x1d\x85\x8e\x42\x47\xa1\xa3\x0b\xa6\xa3\x00\x0b\x80\x05\xc0\x02\x60\x81\x83\x13\x0e\x4e\x38\x38\xa5\x9f\xb4\x2e\xc4\xcc\xec\xdf\xe3\xe0\x34\x9e\x83\xd3\xeb\xf1\x51\x07\x99\xb9\x38\x7e\xd4\x35\xed\xde\x5a\x44\x97\x2b\x42\xdb\xdf\xca\x37\x22\xdc\xdb\x8f\xd1\x64\xa4\x26\x7b\x69\x3d\xe9\x99\x6a\x1b\xf8\x2a\x5e\xcd\x5f\x63\x1b\x25\x3a\x45\x8b\xf2\x1f\x23\x47\xd7\x74\x37\xf1\x5f\x83\x58\x57\xb5\xe3\x81\x95\xd6\x55\x23\x17\xc1\x9e\x5d\x01\x24\x7b\x57\xed\xe6\x48\x4a\xb2\x66\x50\x92\x85\x02\x08\x0a\x20\x25\x17\x63\x74\x1c\x37\x0d\x05\x90\x4e\x17\x3c\xaa\x89\x55\x87\x2b\x9e\x6d\x98\x3c\x92\x89\x55\xe7\x30\xf9\x42\xf4\x2e\x5a\x32\xb4\xb7\xd5\x2b\xf5\x4a\x50\x29\x29\xbd\x1b\xc2\xb2\x29\x86\x65\xd4\x85\x2f\xa8\x2e\x9c\x02\x38\x0a\xe0\x28\x80\xa3\x00\x8e\x15\x65\xd5\x53\x64\x64\xb5\x09\x2e\x57\x66\x2e\xdd\x46\x73\xb9\x32\xb0\x44\xa6\xc4\xe5\xaa\xdd\x32\xab\xc2\xe5\xaa\x79\x91\xc5\x9c\xc3\x16\x8b\xc9\x7e\x57\xa3\x80\xc8\xac\xdf\x55\xe5\x05\x4c\xc9\xef\x0a\xb2\x3a\x39\xb2\x8a\xd1\x57\xa7\x17\x61\x95\xd1\xd7\x4c\x79\x30\x96\x5f\x6c\x42\x2e\x8f\x0d\x63\xf9\xd5\xe7\xb8\xc1\xf2\x8b\xbd\x1b\xd6\x51\x65\x0d\x39\x2b\xcb\xaf\x1e\x56\x52\xc3\x58\x7e\xb5\xdd\xf1\xa8\xb2\xfc\x9a\x69\xa8\x47\xea\x1f\xe1\xdd\x32\xc2\x3b\x83\xa2\x28\x5e\xf6\xe9\x27\xa4\xfe\x65\xce\x3d\xdf\xe8\x64\x14\xf3\x2f\x13\xf2\xe8\xc6\x73\xfd\xea\x92\x3e\x57\x65\xf7\x45\x06\x1d\xaa\x59\xa8\x66\xa1\x9a\x85\x6a\x16\xaa\x59\xa3\xab\x66\xb1\xb2\x6c\xdd\x51\xf8\x7c\x99\x24\x6e\x46\x3e\xf7\x82\xf2\xb9\x51\xb2\x43\xc9\x0e\x25\x3b\x94\xec\x50\xb2\x43\xc9\x0e\x25\x3b\xca\x9c\x28\x73\xa2\xcc\x89\x32\xa7\xe2\x88\xc4\xe7\x0b\xd9\x4c\x64\x33\x91\xcd\x9c\xb8\x6c\x66\x29\xa8\x03\xe8\x53\xba\xd8\xbd\x74\x71\x74\x9f\x2f\x53\xaa\x17\x9b\x0d\xbe\x6a\x48\x77\x2b\x67\xaf\x2e\x74\x1b\x4b\x2f\x2c\xbd\xf4\x47\x58\x7a\x91\x9c\x40\x72\x02\xc9\x09\x24\x27\x90\x9c\x00\xf5\x06\x84\x36\xb7\x08\x20\x14\x10\x0a\x08\x05\x84\x02\x42\x17\x0c\x42\x61\x13\xb0\x09\xd8\x04\x6c\x02\x4b\x2f\x2c\xbd\xb0\xf4\x4a\x3f\x39\xa9\xbc\x12\x2f\xaf\x71\xbd\xbc\xba\x2a\x3e\x60\xe2\xb5\x00\xa9\xb9\xf3\x9a\x78\xd5\x30\xbf\x96\xee\x5d\x33\xd3\xee\x40\xb4\x63\x39\xa5\x55\x88\x76\x20\xda\x51\x72\x31\x66\x06\x69\xd3\x51\xeb\x30\x5b\xf3\xbd\xd3\xa5\xce\x36\xea\x1d\xd1\x9a\x6b\x3c\x2d\x91\x31\xcc\xb8\xba\xc8\x88\x20\x1e\x42\x94\x35\xfd\x28\x8b\x72\xed\x05\x95\x6b\x53\x97\x46\x5d\x1a\x75\x69\xd4\xa5\xb1\x40\xac\x7a\x8a\x8c\x2c\x02\xc1\x7e\xcb\xcc\xe5\xd9\xa8\xf6\x5b\xa6\x54\xae\x54\xf8\x6e\xd5\xac\xa8\x5a\x19\x6e\x5d\x32\xbd\xb0\x55\x52\x76\xb4\x71\x16\x5b\xc3\xf1\xc1\xa2\xb7\xd6\xe9\xd4\xcf\x14\xe0\x07\xe9\x9c\x1c\xe9\xc4\x54\xeb\xb4\xb7\x5c\x3b\x37\xad\xe9\xf3\x59\x6c\xb4\xd8\x4c\x5c\x1e\xb2\xc5\x46\xab\xcf\x71\x83\x8d\x16\x7b\x30\x2c\x92\xe6\xed\x9f\xd5\x75\x99\x34\x9c\x71\x56\xed\x96\x45\x3b\xc7\xac\xe9\x87\x73\xa4\xdb\x11\xbb\xcd\x3c\x76\x33\x28\x44\xe2\x4d\x9e\x7e\xb2\xf0\x74\xbb\xf9\xc6\x1c\xa3\xb9\x62\x9d\x37\x85\x2d\xf0\x5d\x79\xaf\x7d\xb7\x72\xf6\x57\x23\x48\x83\x35\x3b\x7e\x56\x28\x84\x65\x0e\xfe\xc9\x0f\x6e\x5d\x37\x8d\x66\x42\x13\xf8\x4b\xe5\x01\x0b\xae\x06\x8b\xbb\x8b\xa2\xb0\x71\x8b\xc2\x5e\xe9\x06\x7c\x3a\xfb\x41\x7b\x6f\xc6\xda\x7b\xcd\x6c\xa7\x49\x77\xaf\x76\x43\xa9\x07\x6e\x85\xda\x1e\x6a\x7b\xa8\xed\xa1\xb6\x37\x37\xb5\xbd\xe6\x99\xb7\x54\x69\xef\xcc\x59\x02\x83\xe9\xeb\x35\xdf\x7e\xb5\xb6\x9e\xc9\x6d\x70\x8a\xa2\x5e\x73\x1b\x54\xab\xe9\x9d\xb9\x0d\xd0\xd0\x43\x43\x0f\x0d\x3d\x34\xf4\xd0\xd0\x3b\x9b\x86\x5e\x8b\xd9\xff\x48\x3f\xaf\xb6\x5c\x6b\x41\x49\x82\xed\xee\x66\xc6\x1a\x80\xcd\xcd\x5d\xa7\xff\x37\x6c\xbb\xa3\xfa\x77\x96\x1e\x3d\x56\xfc\x3b\x73\xb7\x8e\xaa\xf3\xd7\xdc\x3c\x35\x1a\x7f\xe7\x9e\x36\x4d\x55\xf6\x6b\x6e\xb4\x12\x86\xd1\x79\x3f\x2f\xfe\xeb\xcf\x2e\x3c\x6b\x6c\x90\xd5\x8d\x60\x81\xae\x8a\x0d\x6f\x26\xba\x82\x59\x2d\x45\xc8\x10\x58\x05\xac\x02\x56\x01\xab\x80\x55\xc0\x2a\x60\x15\xb0\x0a\x58\x05\xac\x02\x56\x01\xab\x80\x55\xc0\x2a\x60\x15\xb0\xaa\xed\xdd\x00\xab\x80\x55\xc0\x2a\x60\x15\xb0\x0a\x58\x95\x83\x55\xea\x1a\x6e\x6c\x77\x1f\xee\x64\x30\x58\x25\x56\x1c\x04\x7a\x6b\xe7\xd9\x59\xef\x2d\x37\xdb\x75\x56\xba\xd0\x7b\xaf\xaf\x2a\x53\x25\xb2\xca\xe8\xe6\xfe\x98\x86\xe4\x57\xea\x74\x57\x87\xfd\xbd\xdc\x86\x4d\x8a\xbf\x84\xe3\x85\x3b\x69\xe5\xde\x9d\x45\x38\xf6\xad\x42\x6b\xe8\xf8\x52\xfe\x59\xc0\x0f\xf0\x31\x53\x25\x42\xd5\x04\xf1\x31\x5a\x03\x2e\x9e\x99\xa9\x9e\x1c\x09\x9c\x1d\x3f\x42\x60\x34\x30\x1a\x18\x0d\x8c\x06\x46\x03\xa3\x81\xd1\xc0\x68\x3d\xcd\xb6\x60\x34\x30\x1a\x18\x0d\x8c\x06\x46\x03\xa3\x81\xd1\xc0\x68\x60\x34\x30\x1a\x18\xcd\xc8\x1e\x05\xa3\xe5\x9b\x07\x8c\x36\x37\x8c\x56\xe2\xc1\x7b\x26\x9a\x96\x45\x68\x5e\xf2\xee\x4f\x6a\xc2\xce\x84\xd2\xde\x1c\x82\x7e\xb5\xb0\x89\x03\xc4\x68\xdd\x70\x58\xcd\x5c\xe5\x56\xc1\x99\x73\xf7\x03\xe2\x80\x70\x40\xb8\xe9\x41\x38\x00\x1c\x00\x0e\x00\x77\x78\xd0\x00\x70\x00\x38\x00\x1c\x00\x0e\x00\x07\x80\x03\xc0\x01\xe0\x00\x70\x00\x38\x00\x1c\x00\x0e\x00\x37\x39\x00\x97\x35\xd7\x6e\xda\x73\x98\x92\xd5\x36\x60\x11\xb0\x08\x58\x9c\x46\x8f\x02\x16\xf3\xcd\x03\x58\x9c\x0b\x58\x34\xac\x30\xcf\x84\x8a\x3c\x4a\xf1\xa0\x80\xd3\xa4\x80\xe3\x97\xe2\x81\x00\x41\x80\x20\x40\x10\x20\x08\x10\x04\x08\x02\x04\x01\xf6\x34\xdb\x82\x00\x41\x80\x20\x40\x10\x20\x08\x10\x04\x08\x02\x5c\x1c\x02\x04\x95\x81\xca\x40\x65\xd3\xe8\x51\x50\x59\xbe\x79\x40\x65\xb3\x41\x65\xe6\x15\xdf\x4d\xbf\xea\x0e\xd0\x06\x68\x9b\x1e\x68\x03\xb2\x01\xd9\x80\x6c\x40\x36\x20\x1b\x90\x0d\xc8\x06\x64\x03\xb2\x01\xd9\x80\x6c\x40\x36\x20\x1b\x90\x0d\xc8\x06\x64\x9b\x22\x64\xab\xa8\xb3\xa3\xc0\x0e\x6a\x68\x1a\x63\x82\x1a\x42\x0d\xa1\x86\x50\xc3\x42\xa3\x99\x43\x0d\xa3\x2b\x0a\xb7\x96\x9d\x30\x43\xf5\xf7\xbf\x6f\x0c\x33\xc4\x33\xc1\x09\xef\x97\xa4\x75\xd6\x98\xe1\x01\x06\x27\x0f\x06\x47\xaa\xc0\x43\x84\x13\x38\x08\x1c\x04\x0e\x02\x07\x81\x83\xc0\x41\xe0\xa0\x61\x60\x0c\x38\x08\x1c\x04\x0e\x02\x07\x81\x83\xc0\x41\xe0\xe0\x14\xe1\x60\x7c\xd7\x8a\x11\x46\x5d\x69\xed\x77\x8f\x22\xb4\xfd\xad\x7c\x23\xc2\xbd\xfd\x18\xf5\xbc\x5a\xaf\x48\xeb\x49\xef\x0a\x6f\x03\x5f\xb5\xf2\xe9\xfc\x50\x6d\x07\x02\x11\x81\x88\x40\x44\x20\x22\x10\x11\x88\x08\x44\xac\x82\x88\x86\x54\x24\x4e\xdf\x07\xb0\x14\x43\x82\x20\x41\x90\xd3\x43\x90\xe0\x47\xf0\x23\xf8\x11\xfc\x08\x7e\x04\x3f\x82\x1f\xc1\x8f\xe0\x47\xf0\x23\xf8\x11\xfc\x08\x7e\x04\x3f\x82\x1f\xc1\x8f\x53\xc4\x8f\xd9\xda\xc4\x59\x98\xff\xc1\x53\xe1\xa9\xf0\x54\x78\xaa\xd1\x3d\x0a\x4f\xcd\x37\x0f\x3c\x75\xae\x3c\xd5\x94\x6a\x4c\x43\xca\x30\xa9\xbf\x04\x7e\x4e\x13\x7e\x8e\x58\x7f\x09\xf9\x84\x7c\x42\x3e\x21\x9f\x90\x4f\xc8\x27\xe4\x13\xf2\xd9\xd3\x6c\x0b\xf9\x84\x7c\x42\x3e\x21\x9f\x90\x4f\xc8\x27\xe4\x73\x71\xe4\x13\x50\x08\x28\x04\x14\x02\x0a\x8d\xee\x51\x40\x61\xbe\x79\x00\x85\xb3\x05\x85\x06\x55\x5c\xce\xa2\xd4\x12\xcc\x08\x66\x9c\x1e\x66\x04\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x9c\x14\x62\x2c\x16\x57\x52\x55\x09\x2c\x05\x96\x1a\x82\xd6\x80\xa5\xc0\x52\x60\x29\xb0\xb4\xd0\x68\xe6\xc0\x52\x3c\x2d\x8f\x08\x67\xc1\xc9\xf2\x27\x3f\xb8\x75\xdd\x14\x7b\x86\x20\x4f\x90\xe7\xf4\x90\x27\xce\x96\xd0\x4f\xe8\x67\xfc\x94\x41\x3f\xa1\x9f\xd0\x4f\xe8\x27\xf4\x13\xfa\x09\xfd\x84\x7e\x42\x3f\xa1\x9f\xd0\x4f\xe8\x27\xf4\x73\x72\xf4\x13\x74\x06\x3a\x03\x9d\x4d\xa3\x47\x41\x67\xf9\xe6\x01\x9d\x4d\x1e\x9d\x99\xc2\xcc\x46\x85\x65\x50\xb2\xb2\xbe\x84\x92\x41\xc9\x28\x0e\x04\x8f\x81\xc7\xc0\x63\xe0\x31\xf0\x18\x78\x0c\x3c\x06\x1e\x03\x8f\x81\xc7\xc0\x63\xe0\x31\xf0\x18\x78\x0c\x3c\x06\x1e\x3b\xe9\x6e\xc0\x63\xe0\x31\xf0\x58\x6f\xdd\x0a\x1e\xab\x6a\x19\xf0\xd8\x2b\xf0\xd8\xbd\xdc\x59\x6f\x6f\x3a\x81\xb1\x73\x13\xa1\x36\xd0\x6d\x23\x77\xf9\x80\x57\x77\x73\x0d\x1b\xdb\xc8\x5d\x09\x19\x53\xcd\x70\x7b\xf7\xe9\xb7\xb2\x33\x8c\x85\xc4\x26\x4b\xaa\x32\x0d\xa9\xec\x0d\x67\x88\xab\xd4\x80\xc9\x9c\xe2\x22\x7b\x19\xa7\x3e\x7e\xb6\xbb\x0f\x77\x32\xa8\x2a\xef\xd4\xeb\x8d\x7e\x69\xb5\x3e\xa7\xb0\x7d\xd7\x95\x76\xf2\x9a\x78\xaf\xaf\xa3\xbc\x0e\xac\xf8\x20\xe9\x33\x54\x3d\x4b\xef\xd3\x13\xd7\x9f\xb4\x02\x89\x89\xe2\x30\xd0\x73\xe9\xbd\xbf\x7e\x29\x8e\xe0\x64\x32\x2d\xfb\xec\x2c\xa3\xfb\x83\xba\xf1\x5f\x55\x53\x86\x2d\xc7\x76\xfd\xa0\x86\xb2\x40\x59\xa0\x2c\x50\x96\xb9\x51\x96\x9a\x18\xb8\x89\xb4\xd4\xaf\xa7\xea\x63\xe1\x93\xe6\xde\xff\x8a\x1a\x2e\xde\x5f\x7a\xa3\xd2\xb7\xec\x68\x44\xe9\x71\x90\xbb\xb7\x6c\x46\xc3\xbd\x14\xdb\xa8\xb5\xc2\x9d\x5c\xaf\xc4\xad\x27\x1c\x4f\xcf\x2c\x7e\x20\xf6\x5e\x3a\x39\xad\xc5\x3a\x78\xf9\x6d\xef\x89\xb5\x13\x44\x6f\xc3\x67\x99\x8e\xf8\x68\xfa\x54\xbb\x81\xf1\x23\x9f\x8c\x8d\xb8\x81\xc5\xc3\x3e\x50\x4f\xd9\x36\xf0\x6d\x19\xaa\x6d\xbb\x78\x21\x17\x8f\xb2\x95\xf8\x43\xfd\xa2\xea\x2d\x35\x76\x7e\x14\xd7\xe2\xd6\x75\x7f\x54\x9b\x72\xeb\x68\x96\xde\x7b\x51\xc7\x47\x4b\xa2\x64\x48\xc6\xa7\x93\xeb\x0e\x1d\xa5\xef\x65\x9c\x6e\x1a\x0c\x8d\xb5\x6b\x8a\x6a\x3c\x36\x58\x8b\xfc\x9e\x5d\xe3\x3b\x9e\x08\xf5\xd2\x5b\xdc\xcb\x07\x9d\xc3\x93\x6e\xa3\x1e\x42\x89\x78\xf6\x52\x43\x67\x2f\xf5\xcb\xe1\x3e\x5a\xdd\x7a\xd7\x9e\xdc\x58\x6a\x80\xc6\xab\xf4\x95\xf8\x3d\x7d\x61\x6b\xa4\x92\x3e\x1a\x71\xec\xe8\x3c\x3d\xc9\xb5\x63\xed\xa4\xfb\x72\x48\xae\x39\xbc\x72\x1d\xf7\x4d\xbc\x0a\x57\x8d\x2e\x36\x81\x65\xab\xa7\xc6\xf1\xd7\x69\x40\x70\x78\x69\xab\xcc\xa5\x64\x94\xee\xc3\xe8\x22\xb3\xdd\x65\x45\x47\x26\x37\x14\xff\xc8\x83\x9e\x03\x93\x53\xac\xf4\x75\x3e\x49\xcb\x2b\xbd\xc6\x0e\xdd\xac\xae\xf9\x4e\x5d\x72\xd9\xce\x46\xc3\xde\x86\x29\xc3\xff\x14\x2a\xda\xae\x5d\xaa\xc9\xe8\x60\xc3\x1f\x46\x0a\x23\x85\x91\xc2\x48\x61\xa4\x67\x63\xa4\x2d\xdf\x05\x47\x9c\x74\xb8\xd7\xe2\x87\x4c\x1d\xc5\xd6\x95\x56\x28\xd3\x29\xe8\x2e\xf0\xb7\xd6\x46\x45\x47\x77\xbe\xeb\xd8\x2f\xb9\x8c\xdc\x64\xd0\x1d\x0a\x31\xa2\x61\xf7\x76\xf5\x1f\x2b\xf1\x59\xcf\x67\x3a\x74\xd9\x4a\x2f\x7a\x58\x0e\xef\x54\x29\xfc\x60\xfb\x68\x79\x49\x86\x70\xb0\x97\x37\x0f\x96\x9b\xac\x95\xbf\x5c\xea\x8f\xbf\x5c\x8a\x07\xc7\xb3\x5c\xe7\x5f\xc9\x8b\xe4\x5e\x0a\x6b\xad\xc0\x99\x7f\xa3\xa1\xc2\xfa\xb0\x0c\xd3\xa7\xbf\x0a\x0f\x07\xe9\xf5\xe9\x4a\x7c\x74\xd4\xe4\x98\xb9\x74\x3f\x38\xbe\xb7\x03\x26\xdd\xe9\xe5\xb1\x5a\xa3\xf8\xbb\xc7\x2e\x1d\xaa\xef\xe0\x43\x72\xef\x95\x21\x4f\x19\xa2\xe8\x77\x61\xa6\x6e\x3d\x7a\x60\x1f\xfd\x6f\x62\x63\x05\xf7\xd6\x26\xb7\x65\x99\x2e\x6a\x64\xf0\xe0\x07\x4f\x51\x9f\x94\xb6\xd7\xaf\x85\x3b\xaa\x6e\x2e\x15\xf4\x26\x11\xeb\x56\xb7\xad\x13\x45\x93\xb6\xb3\x3e\x2c\x85\x55\xac\xa0\x36\x27\xd2\x3e\x8e\x5e\xd6\xf1\x9b\x34\x89\x06\x56\x99\xce\x4c\xde\x23\x29\xa7\x4c\xb3\xdd\xf3\x3f\xb6\x12\xb7\xb6\x2d\xb7\x3b\xf5\x6e\xca\xae\xec\xae\xf4\x3d\x5c\x89\xeb\x78\x00\xe6\x07\x68\xf8\x37\x71\xf5\x77\xcb\xfe\xba\x09\xfc\xbd\xb7\x8e\xbe\xa5\x32\xc7\xd5\x97\x0a\x0d\xa7\x43\xc8\x38\x3e\xce\x9f\x24\xb9\x83\xfb\xf4\x4c\x7f\x13\x57\x3f\xf9\x81\xcc\x9c\x56\xd8\x56\x68\x5b\xeb\xe8\xee\xe3\xf6\xd1\x85\x05\xea\x7c\xa1\x5e\x7a\x1e\x9d\xf0\x21\x3d\x47\x97\x01\xb9\x2d\x0e\xf7\x71\x22\xce\x19\x27\x34\xb4\xeb\x87\xba\xa4\x86\xb1\x7a\x81\xf4\x86\xb3\xf5\xef\x71\x8a\xc3\x70\x7b\x1b\x63\x26\x3b\xb4\x6b\xac\x9a\x84\x87\xd7\xc6\x3f\xa5\xfc\x0e\x08\x7d\x22\xa6\xfb\xbc\xb3\x76\xfb\xb6\x7c\x6e\xd2\xec\x39\x73\x8a\x8a\x7a\x49\xfd\x76\x3e\x44\x4e\x23\x94\x4d\xd6\x62\xe0\x62\x11\x65\xe1\x0e\x8f\x2b\x29\x7b\xaf\xde\xd6\xbb\x68\x41\xbc\xf2\x4e\xc2\xfd\xc4\x02\xf6\x24\x30\x1e\x9d\xaa\x12\x8b\xf7\x02\xc3\xa9\x11\x5d\x4e\x8d\x68\xbb\xb7\x51\x53\x9d\xe8\x70\xcb\x36\x72\x19\xc8\x65\x20\x97\x81\x5c\x06\x72\x19\xca\x26\x5f\x20\xf9\x84\x5a\x04\x6e\x0a\x37\x85\x9b\xc2\x4d\xe1\xa6\x70\xd3\x79\x71\x53\x50\x06\x28\x03\x94\x01\xca\x38\x3b\xca\x38\x01\xf7\x1b\x5a\xc5\xd9\xae\x09\x8f\x2b\x39\x5f\xbb\xe3\x66\x14\x04\xaa\x3c\x60\x59\xe2\x9c\x2b\xc5\x3c\x62\x3c\xb1\x3a\xde\xcb\x5f\x4a\xb1\x63\x33\x70\x1a\x49\x9b\xb3\x5f\xc8\xd4\x41\xae\x73\x2a\x12\x1e\x17\x85\x9e\xbc\xdc\xfa\x61\xcf\x44\x4d\xaf\x6f\x84\x75\x1a\x3c\xd3\x47\x9d\x17\x9f\x75\xab\x25\xad\x71\x1c\x3f\xeb\xa4\xd2\x4b\x85\x29\x55\x4e\xd9\xae\x37\xb6\xca\x49\xed\x6c\xfc\x6c\x79\xd6\x46\x06\x7a\x8f\x4e\xfb\xeb\x87\xa1\x6f\x3b\x6a\xd1\x99\xee\x86\x59\x6a\x53\xd3\x0f\x84\xf4\x76\x51\x14\x98\xac\xc2\x9f\xac\xaf\x51\x2b\xee\x1e\x65\x28\x93\x50\x2a\x5b\xcb\x93\xd4\xfc\xa8\x50\x52\xed\x7c\xf9\x81\x78\xfb\xee\x87\xe8\xbb\x81\x65\x2b\xd4\xe5\xfa\xde\x46\x07\x4e\x6a\x77\xca\xf6\xbd\x9d\xe5\x78\x7a\xde\x52\xbb\x3f\x87\xef\xaa\xed\xff\x18\xc4\x89\xfb\x97\x74\x6d\xb0\xf1\x5d\xcb\xdb\xac\xfc\x60\x73\xb3\xfd\xba\xb9\xd9\x7b\x8e\xed\xaf\xe5\xcd\x5f\x3e\x85\x77\xd1\x59\x3a\x6f\x27\xc7\x8d\xd3\x67\xf7\x18\x15\x69\x4d\x3b\x00\x6a\x1b\xfc\xbc\x6b\x11\xfc\xbc\xd7\xfb\x63\x26\x5e\xfc\xbb\xc6\x8b\xd7\x59\xbc\x26\x5e\xfd\xbc\xe3\x4e\x15\xc6\x4c\x34\xee\xbc\x10\xfd\x48\x87\xdc\xfc\x6f\x34\x63\xfe\x7b\x20\x05\x91\x13\xe3\xbb\x06\xd5\x10\xb4\x42\x88\xe4\x66\x11\xc9\x51\x9d\xbd\xa0\xea\x6c\xca\xd0\x28\x43\xa3\x0c\x8d\x32\x34\x16\xa1\x55\x4f\x91\x91\x35\x1f\xe3\x2c\xe4\x28\x59\x39\xa1\x64\x65\xaa\x6b\xb9\x74\x5f\xbd\xf7\x42\x95\x40\x5a\xeb\x42\x70\x76\xd2\x02\x2c\x3a\xbe\xe3\xf2\x8b\xd9\x88\x7d\x99\x8e\x4f\xf3\x46\x4e\x76\x5b\xe6\x35\x38\x50\xed\xde\xc7\xcb\xe0\xa6\x8b\xd1\x11\xc8\xd6\xda\x3d\x96\xe3\x3f\xf5\xff\xdc\x27\x35\x44\xea\xcc\x62\xe4\xd3\xc5\x9c\x2a\xcb\xa0\x93\xbc\xf5\xb5\x3a\xf6\xaf\xf5\x33\xdc\x93\x0c\x36\xb2\xd5\x37\xc3\x5d\x60\xed\xe4\xc6\xb1\xaf\xdb\x1f\x13\xfd\xfd\x12\x7f\x53\xcd\xa5\x6d\x5e\x18\x5b\x2b\xd8\x39\xaa\x08\x48\x67\xc4\xbc\xe6\xe5\xb1\xad\x30\x96\x1d\x7d\xf3\xee\x5c\x70\xb6\x26\x58\xbb\xcb\x27\xac\x08\xb6\xf4\x66\xbe\xa5\xb7\x1c\x38\x5b\x48\xb3\x4f\x1e\x2e\x5d\x0a\x12\xcd\x41\x87\xf2\xe2\xef\x2a\xe6\xa7\xef\xd5\x86\x86\xae\xff\xb4\x5c\x75\xa4\xe7\x7b\xd7\xfa\x68\xf5\x0d\xb5\xa7\x18\x8a\xef\xfe\x11\xfa\xde\x9d\xae\xb2\xfd\x39\x9a\x09\xe3\xbf\x3f\x27\xf3\xe3\xe1\x1f\xbf\x37\x89\x1a\xb7\x1f\x37\x3f\xf9\x81\xad\x36\x5d\x37\xbe\xea\x7c\x5f\x7c\xb9\x7c\x88\xfe\xed\xcb\xa5\xb8\xcd\xb5\xa6\x4a\xe2\xd5\x3b\xa4\xfb\xf0\x50\x51\x78\x6d\xd9\xaa\x03\x54\x9d\xa6\xeb\xd8\xf1\x9e\x8f\x74\xd7\xa1\xf0\xbf\xc5\x7d\xab\xeb\x18\xb7\xd2\xdf\xba\x72\x25\xf4\x6f\xaa\xf2\xec\x64\x4c\xa9\x54\xda\xd2\x8e\x48\x7f\xbe\x4b\xf3\x46\x3f\x34\xdf\xc4\x47\xd6\x1e\xd3\x5f\x7b\x6c\x0b\x79\xa9\x13\x5d\x7d\xec\x7b\xdf\x48\xd8\xba\x96\xfd\xaa\x70\x30\x3e\xc5\x92\x02\x42\xb2\xf5\x08\x08\x97\x17\x10\x1a\x14\x77\x11\x1e\xa4\x9f\x90\xad\xd7\xe2\xe2\x67\x1e\xdb\xec\x27\xbb\xaf\x7a\x21\x5e\x97\xee\x36\xba\x45\x56\xf7\x2c\xb7\x32\x6f\x2c\x12\xdd\x10\x92\x42\x48\x0a\x21\x29\x84\xa4\x10\x92\x1a\x5d\x48\x8a\x05\x68\xeb\x8e\xc2\x14\xcb\x24\xbd\x2f\xd2\xae\x17\x94\x76\x8d\xb8\x1b\xe2\x6e\x88\xbb\x21\xee\x86\xb8\x1b\xe2\x6e\x88\xbb\x51\x8d\x44\x35\x12\xd5\x48\x54\x23\x15\x47\x24\xa6\x58\x28\x49\xa2\x24\x89\x92\xe4\xc4\x95\x24\x4b\x89\x1d\xdc\x9f\x0a\xc3\x57\x56\x18\x9a\x62\x8a\x65\x54\x91\x61\x6b\x37\xac\x1a\x06\xde\xd2\x06\xab\x0b\xf7\xc6\xff\x0a\xff\x2b\xfd\x11\xfe\x57\xa4\x2d\x90\xb6\x40\xda\x02\x69\x0b\xa4\x2d\xc0\xc3\x41\xa4\xcd\x2d\x02\x22\x05\x91\x82\x48\x41\xa4\x20\xd2\x05\x23\x52\xa8\x05\xd4\x02\x6a\x01\xb5\xc0\xff\x0a\xff\x2b\xfc\xaf\xd2\x4f\x3a\xd7\x64\x62\x7c\xb5\x33\xc6\xf8\xea\x55\x22\x13\x38\x5e\xf5\xec\x78\x55\x03\xc8\x5a\x5b\x5d\xcd\x58\x35\x03\xb9\x8c\xe5\x54\x2b\x21\x97\x81\x5c\x46\xc9\xc5\x98\x1f\xdd\x4c\x53\x27\xc3\x6c\x15\xf4\x57\x5f\xf6\xbc\xc3\xc8\xf1\x7d\xac\xc6\x50\xf4\x18\xd1\xb9\xaa\xbb\x98\x07\x12\x1e\xa2\xaa\xa1\x09\xcc\xb2\x9d\x6c\x6c\x60\x46\xd1\xf4\x82\x8a\xa6\xa9\x0e\xa3\x3a\x8c\xea\x30\xaa\xc3\x58\x53\x56\x3d\x45\x46\x96\x62\xe0\x55\x65\xf0\x6a\xcd\x04\xaf\x2a\xa3\xea\x47\xea\x4d\xaa\x6a\xd6\x5a\x2d\xdd\xa9\x2e\x99\x78\xd8\x5f\x99\xb4\x1f\xd5\xc0\x94\xae\xc2\x88\xaa\x8c\xc7\xe1\x40\x85\x03\x55\xe5\x31\x67\x76\xa0\xaa\x79\x33\xb4\xb5\x9e\x9a\x3e\x2c\xc5\x73\x8a\xad\xb9\xe5\x31\x53\x3c\xa7\xfa\x1c\x37\x78\x4e\xb1\xa3\xc1\xc2\x62\x99\x66\x53\xaf\x5a\x5a\x0c\xee\x32\x55\xbb\x19\xd0\xd6\x5e\x6a\xfa\x41\x1f\x19\x72\x44\x7b\x0b\x8a\xf6\x0c\x0a\xaa\x78\xf7\xa7\x9f\x90\x21\x57\x7a\xd5\x33\x8f\x58\xc6\xb6\x90\x1a\x2a\xd3\x2c\x9a\x48\xc2\xad\x65\x27\x79\x66\xea\xef\x7f\xdf\x04\xbe\x2b\xef\xb5\x8b\xd5\x38\x96\x52\xed\xbc\x36\xdb\x5a\x4a\xfd\x92\xdc\xd9\x7a\x14\xdf\xcd\x89\x64\xa6\xa1\xd2\x84\x4a\x13\x2a\x4d\xa8\x34\xa1\xd2\x94\xfd\x1c\x73\x29\x16\xa3\x88\x69\x55\xb6\x08\x79\xd2\x0b\xca\x93\x46\x39\x0d\xe5\x34\x94\xd3\x50\x4e\x43\x39\x0d\xe5\x34\x94\xd3\x28\x1f\xa2\x7c\x88\xf2\x21\xca\x87\x8a\x23\x12\x73\x29\x64\x1a\x91\x69\x44\xa6\x71\xe2\x32\x8d\xa5\xec\x8e\x1c\x00\x4a\x02\x5f\x59\x12\x38\xaa\xb9\x54\x39\xff\x1d\xbf\x38\xb0\xde\x5c\xaa\x1d\x0d\xaf\x33\x97\xea\x8d\x80\x63\x33\x85\xcd\x94\xfe\x08\x9b\x29\x12\x18\x48\x60\x20\x81\x81\x04\x06\x12\x18\x20\xe3\xc0\xd2\xe6\x16\x01\x96\x02\x4b\x81\xa5\xc0\x52\x60\xe9\x82\x61\x29\xfc\x02\x7e\x01\xbf\x80\x5f\x60\x33\x85\xcd\x14\x36\x53\xe9\x27\xa7\x15\x6c\x66\x36\xf1\xb1\x99\xda\x8d\x6b\x33\xd5\x13\x52\xea\x20\x60\x17\x87\x93\xba\x1e\xde\x5b\x8b\xe8\x9a\x45\x68\xfb\x5b\xf9\x46\x84\x7b\xfb\x31\x9a\x9b\xd4\xdc\x2f\xad\x27\x3d\x71\x6d\x03\x5f\x85\xaf\xf9\x0b\x6d\xa3\x71\xa7\xe0\x51\xfe\x63\x84\xee\x9a\xee\x26\xfe\x6b\x10\x7f\xad\x76\x8c\xb0\xde\x5f\x6b\xe4\x3a\xd9\x61\x74\x44\xb2\xb7\xd6\x6e\xde\xa4\x74\x6b\x06\xa5\x5b\xe8\x88\xa0\x23\x52\x72\x31\xe6\x07\x78\x13\xd2\x11\xe9\x74\xd5\xe3\x3b\x6d\x75\xb8\xec\x79\x47\xd2\x23\x39\x6d\xbd\x2e\x92\xbe\x10\xe7\xd1\x3f\x19\xda\x80\xab\x0f\xe9\x13\x04\x4f\x4a\xef\x86\xc8\x6d\x8a\x91\x1b\x25\xe6\x0b\x2a\x31\xa7\x96\x8e\x5a\x3a\x6a\xe9\xa8\xa5\x63\xd1\x59\xf5\x14\x19\x59\xb8\x82\x15\x97\xc1\xcb\xb9\xd1\xac\xb8\x4c\xad\xb6\x29\xb1\xe2\x6a\xb7\xea\xaa\xb3\xe2\x6a\x5e\x73\x31\x05\xb1\x15\x33\x0d\x53\xae\xf1\x98\x66\xd6\x94\xab\xf2\x2a\xa6\x64\xca\x05\xa4\x9d\x1c\xa4\xc5\x8d\xac\xd3\xcb\xb1\xd6\x8d\x6c\xa6\x68\x19\x5f\x32\xf6\x29\x97\x47\x98\xf1\x25\xeb\x73\xdc\xe0\x4b\xc6\xf6\x0e\x6b\xab\x05\xf9\x92\xf5\xb5\xba\x1a\xc6\x97\xac\xed\xce\x48\xad\x2f\xd9\x4c\xc3\x3f\x32\x0b\x89\xfb\x16\x14\xf7\x19\x14\x5e\x11\x05\xa4\x9f\x90\x59\x58\x7a\xd5\x33\x8f\x5d\x46\x71\x28\x33\x2b\x43\x6f\x3c\x6b\xb2\xce\x89\x79\x55\x9e\x64\xe4\xe6\xa1\xe5\x85\x96\x17\x5a\x5e\x68\x79\xa1\xe5\x35\xba\x96\x17\xeb\xce\xd6\x1d\x85\x19\x99\x49\x92\x6b\x64\x8a\x2f\x28\x53\x1c\x7d\x3d\xf4\xf5\xd0\xd7\x43\x5f\x0f\x7d\x3d\xf4\xf5\xd0\xd7\xa3\x80\x8a\x02\x2a\x0a\xa8\x28\xa0\x2a\x8e\x48\xcc\xc8\x10\xf3\x44\xcc\x13\x31\xcf\x89\x8b\x79\x96\xd2\x3a\x70\x3f\x45\x91\xaf\x2c\x8a\x1c\xdd\x8c\xcc\xa8\xba\xc8\x66\x17\xb2\x1a\xf0\xdd\xde\x7e\xac\x0b\xec\xc6\x77\x0c\xdf\x31\xfd\x11\xbe\x63\xe4\x2a\x90\xab\x40\xae\x02\xb9\x0a\xe4\x2a\x00\xc1\xe1\xa2\xcd\x2d\x02\x17\x85\x8b\xc2\x45\xe1\xa2\x70\xd1\x05\x73\x51\x50\x05\xa8\x02\x54\x01\xaa\xc0\x77\x0c\xdf\x31\x7c\xc7\xd2\x4f\x4e\x2f\xc3\xc4\x70\x6c\x37\xbe\xe1\xd8\xab\x74\x23\x70\x1a\x5b\x80\x88\xdd\x79\x9d\xc6\x6a\x38\xe0\x29\x16\x63\x73\x54\x00\x41\xfa\x63\x39\x25\x58\x48\x7f\x20\xfd\x51\x72\x31\x06\x47\x6f\x13\xd3\xfc\x30\x5b\x7f\xbe\xfb\xf5\xce\x3b\x30\x1e\xd1\x3f\xcc\x04\x59\x92\x31\x1c\xc3\x3a\x2b\x92\xa0\x43\x42\x20\x36\xfd\x40\x8c\xca\xef\x05\x55\x7e\x53\xe2\x46\x89\x1b\x25\x6e\x94\xb8\xb1\x86\xac\x7a\x8a\x8c\xac\x27\xc1\x23\xcc\xe0\x25\xdb\xa8\x1e\x61\x46\x15\xc1\x54\x98\x83\xd5\x2c\xb0\xda\xbb\x82\x5d\x32\xdb\xb0\xa5\x32\x31\x1f\xb0\x81\x51\x63\xd1\x00\xec\x74\x80\x68\x0a\x3b\x04\x9a\x4e\x0e\x9a\xe2\xfc\x75\xda\x9b\xef\x04\xcb\xaf\xe9\xa3\x5e\xbc\xbe\xd8\x6f\x5c\x1e\xf8\xc5\xeb\xab\xcf\x71\x83\xd7\x17\xdb\x34\x2c\x9c\x8e\x9b\x71\x9e\x26\x5f\xaf\x5a\x3a\x0d\xe7\xee\x55\xbb\xb5\x71\x82\xad\xd7\xf4\x43\x3c\xb2\xf9\x08\xea\x96\x10\xd4\x19\x14\x3b\xf1\x8a\x4f\x3f\x21\x9b\x2f\x3e\xf3\xcc\x23\x92\xd1\xac\xbb\x86\x4a\x8e\x0b\x7c\x57\xde\x6b\x9b\xb0\x9c\x47\xd7\x08\x82\x65\xcd\xce\xa5\x75\xba\x65\x99\x33\xfc\xe4\x07\xb7\xae\x9b\x06\x3c\xa1\x09\x28\xa7\xf2\x80\xa5\xd7\xa8\xc5\x7d\x46\xa9\x9a\x01\xa5\x6a\x7d\x38\x1d\x9f\x8e\x91\x10\x08\x9c\xb1\x40\x60\x33\x26\x6a\x12\x07\xac\xdd\x96\xea\x01\x81\x21\x09\x88\x24\x20\x92\x80\x48\x02\xce\x4d\x12\xb0\x79\xe6\x2d\x95\x03\x3c\x73\xc2\xc1\x60\x22\x80\xcd\xb7\x5f\x2d\x00\x68\x72\x1b\x9c\x22\xfb\xd7\xdc\x06\xd5\x92\x7f\x67\x6e\x03\x84\xfe\x10\xfa\x43\xe8\x0f\xa1\x3f\x84\xfe\xce\x26\xf4\xd7\x62\xf6\x3f\x12\xf9\xab\xad\x0b\x5b\x50\xbe\x61\xbb\xbb\x99\xb1\x50\x61\x73\x73\xd7\x89\x14\x0e\xdb\xee\x48\x13\x9e\xa5\x47\x8f\x65\x09\xcf\xdc\xad\xa3\x8a\x11\x36\x37\x4f\x8d\x10\xe1\xb9\xa7\x4d\x53\xe5\x07\x9b\x1b\xad\x04\x69\x74\xde\xcf\x8b\xff\xfa\xb3\x33\xe8\x1a\x9b\x70\xbd\x02\x6d\xc1\xb4\x8a\xad\x6f\x30\xd3\x02\x66\x19\x00\xb3\xa0\x58\x50\x2c\x28\x16\x14\x0b\x8a\x05\xc5\x82\x62\x41\xb1\xfa\x9c\x6d\xa1\x58\x50\x2c\x28\x16\x14\x0b\x8a\x05\xc5\x82\x62\x41\xb1\xa0\x58\x50\x2c\x28\x96\x91\x3d\x0a\xc5\xca\x37\x0f\x14\x6b\xca\x14\x4b\x5d\xc8\x8d\xed\xee\xc3\x9d\x0c\x06\xab\xdd\x8a\x23\x41\x6f\xed\x3c\x3b\xeb\xbd\xe5\x66\xfb\xcf\x4a\x57\x7b\xef\xf5\x55\x65\x0a\x49\x56\x19\xf9\xde\x1f\xd3\xb8\xfc\x4a\x9d\xee\xea\xb0\xc9\x97\xdb\xb5\x49\xb9\x98\x70\xbc\x70\x27\xad\xdc\x0b\xb4\x48\xcd\xbe\xd5\x89\x1a\x1d\x5f\xcf\x3f\x0b\x34\x02\x70\x66\xaa\x5c\xa9\x9a\x2a\x3e\x46\xab\x41\x38\x5a\x3a\xd0\x47\x82\x69\xc7\xcf\x11\x68\x0d\xb4\x06\x5a\x03\xad\x81\xd6\x40\x6b\xa0\x35\xd0\x5a\x9f\xb3\x2d\x68\x0d\xb4\x06\x5a\x03\xad\x81\xd6\x40\x6b\xa0\x35\xd0\x1a\x68\x0d\xb4\x06\x5a\x33\xb2\x47\x41\x6b\xf9\xe6\x01\xad\xcd\x12\xad\x95\x78\x04\x9f\x89\xb0\x65\xb1\x9a\x97\x04\x00\x49\x01\xd9\x99\xf0\xda\x9b\x43\xe4\xaf\x56\x37\x71\x94\x18\x2d\x1e\x0e\x4b\x9a\xab\xdc\x52\x38\x73\xee\x1e\xe1\x1c\x60\x0e\x30\x37\x51\x30\x07\x94\x03\xca\x01\xe5\x80\x72\x40\x39\xa0\x1c\x50\x0e\x28\x07\x94\x03\xca\x01\xe5\x80\x72\x40\x39\xa0\x1c\x50\x0e\x28\x37\x75\x28\x97\x35\xfa\x6e\xda\x78\x98\x92\xed\x37\xb0\x11\xd8\x08\x6c\x9c\x46\x8f\x02\x1b\xf3\xcd\x03\x6c\x9c\x15\x6c\x34\xac\x80\xcf\x98\xca\x3d\x4a\xf6\x20\x83\x13\x26\x83\xe3\x97\xec\x81\x05\xc1\x82\x60\x41\xb0\x20\x58\x10\x2c\x08\x16\x04\x0b\xf6\x39\xdb\x82\x05\xc1\x82\x60\x41\xb0\x20\x58\x10\x2c\x08\x16\x5c\x1c\x16\x04\x9f\x81\xcf\xc0\x67\xd3\xe8\x51\xf0\x59\xbe\x79\xc0\x67\xf3\xc2\x67\xe6\x15\xe9\xcd\xa4\x3a\x0f\xf8\x06\x7c\x9b\x28\x7c\x03\xbc\x01\xde\x00\x6f\xc9\xb3\x06\x78\x03\xbc\x01\xde\x00\x6f\x80\x37\xc0\x1b\xe0\x0d\xf0\x06\x78\x03\xbc\x01\xde\x00\x6f\x80\xb7\xc9\x81\xb7\x8a\x7a\x3c\x0a\xf1\x20\x89\xa6\x71\x27\x48\x22\x24\x11\x92\x08\x49\x2c\x34\x9a\x61\x24\x31\xba\xac\x70\x6b\xd9\x09\x47\x54\x7f\xff\xfb\xc6\x30\x83\x3d\x63\x9c\xf5\x7e\x49\x9a\x68\x8d\xb9\x1e\xb0\x70\x1e\xb0\x70\xa4\x4a\x3d\x04\x3c\x01\x86\x00\x43\x80\x21\xc0\x10\x60\x08\x30\x04\x18\x9a\x08\xcb\x00\x86\x00\x43\x80\x21\xc0\x10\x60\x08\x30\x04\x18\x4e\x11\x18\xc6\x77\xad\xb8\x61\xd4\x95\xd6\x7e\xf7\x28\x42\xdb\xdf\xca\x37\x22\xdc\xdb\x8f\x51\xcf\xab\xf5\x8a\xb4\x9e\xf4\x4e\xf1\x36\xf0\x55\x2b\x9f\xce\x14\xd5\xc6\x20\x60\x11\xb0\x08\x58\x04\x2c\x02\x16\x01\x8b\x80\xc5\x5a\xb0\x68\x48\xe5\xe2\x4c\x7c\x05\x4b\xd1\x24\x58\x12\x2c\x39\x51\x2c\x09\x92\x04\x49\x82\x24\x93\x67\x0d\x24\x09\x92\x04\x49\x82\x24\x41\x92\x20\x49\x90\x24\x48\x12\x24\x09\x92\x04\x49\x82\x24\x41\x92\x93\x43\x92\xd9\x1a\xc6\x59\x98\x09\xc2\x58\x61\xac\x30\x56\x18\xab\xd1\x3d\x0a\x63\xcd\x37\x0f\x8c\x75\xd6\x8c\xd5\x94\xaa\x4d\x93\xca\x35\xa9\xd3\x04\x88\x4e\x18\x88\x8e\x58\xa7\x09\x0d\x85\x86\x42\x43\xa1\xa1\xd0\x50\x68\x28\x34\x14\x1a\xda\xe7\x6c\x0b\x0d\x85\x86\x42\x43\xa1\xa1\xd0\x50\x68\x28\x34\x74\x71\x34\x14\x78\x08\x3c\x04\x1e\x02\x0f\x8d\xee\x51\xe0\x61\xbe\x79\x80\x87\xf3\x86\x87\x06\x55\x66\xce\xa7\x24\x13\xf4\x08\x7a\x9c\x28\x7a\x04\x3b\x82\x1d\xc1\x8e\x60\x47\xb0\x23\xd8\x11\xec\x08\x76\x04\x3b\x82\x1d\xc1\x8e\x60\x47\xb0\x23\xd8\x11\xec\x08\x76\x9c\x1e\x76\x2c\x16\x61\x52\x7d\x09\x40\x05\xa0\x1a\x82\xdb\x00\xa8\x00\x54\x00\x2a\x00\xb5\xd0\x68\x86\x01\x54\x3c\x32\xcb\xa9\x67\xc1\x19\xf3\x27\x3f\xb8\x75\xdd\x14\x85\x86\x60\x50\x30\xe8\x44\x31\x28\x4e\x99\x10\x51\x88\x68\xe6\x8b\x10\x51\x88\x28\x44\x14\x22\x0a\x11\x85\x88\x42\x44\x21\xa2\x10\x51\x88\x28\x44\x14\x22\x0a\x11\x9d\x1e\x11\x05\xa7\x81\xd3\xc0\x69\xd3\xe8\x51\x70\x5a\xbe\x79\xc0\x69\xf3\xc0\x69\xa6\x70\xb4\xf1\x01\x1a\xe4\xac\xac\x43\x21\x67\x90\x33\x8a\x08\x41\x66\x20\xb3\xaa\xe1\x07\x32\x03\x99\x81\xcc\x40\x66\x20\xb3\xfc\x74\x6b\x20\x2e\x02\x99\x81\xcc\x40\x66\x20\x33\x90\x19\xc8\x0c\x64\x06\x32\xcb\xdf\x0d\xc8\x0c\x64\x06\x32\x03\x99\x81\xcc\x96\x87\xcc\x42\xfb\x51\xae\xf7\x6e\xb4\x02\x8a\x51\x59\x27\x2e\x76\x6e\x16\xd4\x86\xb9\x6d\xe4\x4e\x38\xde\x83\x1f\x3c\xa5\x63\xdb\x12\x7a\x3b\xbf\x9a\x8e\x6d\xe4\xee\x73\xda\x04\xb7\x77\x9f\xfe\xb3\xf8\xfd\xb1\xe8\xd7\x64\xa1\x54\xda\x88\x13\x47\x52\x87\x27\x23\x73\xcc\x45\xf6\x77\x9b\x9e\xa4\xe7\xb7\xd3\x7e\x98\x72\xab\x45\x3d\x47\xb6\x7d\x92\xfe\x78\x7b\x7b\xf7\xe9\xb7\xb2\xa3\x78\x9e\x4e\x7f\x9e\x92\x86\x54\xae\xa2\xb3\x79\xac\xfe\xfb\xf9\xed\x2b\x9e\xac\x6d\xe0\xf8\x81\xb3\x7b\xb1\x5d\x2b\xcc\x77\xe0\xa5\x5e\x83\xf7\x9b\xd0\xa1\xcf\x29\x6c\xdf\x75\xa5\x9d\xbc\x5e\xee\xe2\x6b\x78\x1f\x5d\x43\xcd\xa3\xa1\x0f\xce\x3e\x1d\xef\xd3\xf3\x54\x9e\xa3\x02\x08\x8b\x62\x9f\xea\x48\xe2\xde\x5f\xbf\x14\x87\x63\x12\x4a\x94\x7d\x76\x96\xa1\xfa\x41\xdd\xe7\xaf\xaa\xd1\xc2\x96\x03\xb5\x7e\x84\xc2\x18\x61\x8c\x30\x46\x18\xe3\xdc\x18\x63\xcd\x0a\xb0\x89\x33\xd6\xef\x26\xd4\xaf\x04\x4f\x9a\x7b\xff\x2b\x6a\xb8\x78\x77\xf5\x8d\xca\x65\xb4\xa3\x11\xa5\xc7\x41\xee\xde\xb2\xf9\x3c\xf7\x52\x6c\xa3\xd6\x0a\x77\x72\xbd\x12\xb7\x9e\x70\x3c\x3d\xb3\xf8\x81\xd8\x7b\xe9\xe4\xb4\x16\xeb\xe0\xe5\xb7\xbd\x27\xd6\x4e\x10\xbd\x08\x9f\x65\x3a\xe2\xa3\xe9\x53\xed\x85\xc7\x8f\x7c\x32\x36\xe2\x06\x16\x0f\xfb\x40\x3d\x65\xdb\xc0\xb7\x65\xa8\x36\xad\xe3\x6d\x8c\x78\x94\xad\xc4\x1f\xea\x17\x55\x6f\xa9\xb1\xf3\xa3\xb8\x16\xb7\xae\xfb\xa3\xda\x92\x5e\x47\xb3\xf4\xde\x8b\x3a\x7e\x23\xc3\x74\x48\xc6\xa7\x93\xeb\x0e\x1d\xa5\xef\x65\x9c\x6e\x1a\x0c\x0c\xb7\x6b\x8a\x6a\x38\x3c\x58\x8b\xfc\x9e\xdd\xe1\x72\x3c\x11\xea\x8d\x27\x71\x2f\x1f\x74\x06\x5b\x0a\x11\x0e\xa1\x44\x3c\x7b\xa9\xa1\xb3\x97\xfa\xe5\x70\x2f\x85\xe7\x7b\xd7\x9e\xdc\x58\x6a\x80\xc6\x7b\x54\x2b\xf1\x7b\xfa\xc2\xd6\x40\x31\x7d\x34\xe2\x28\xd1\x79\x7a\x92\x6b\xc7\xda\x49\xf7\xe5\x90\x5a\x76\x78\xe5\x3a\xee\x9b\x78\x0f\x4a\x35\xba\xd8\x04\x96\xad\x9e\x1a\xc7\x5f\xa7\x01\xc1\xe1\xa5\xad\xf2\xf6\x92\x51\xba\x0f\xa3\x8b\xcc\x76\x97\x15\x1d\x99\xdc\x50\xfc\x23\x0f\x7a\x0e\x4c\x4e\xb1\xd2\xd7\xf9\x24\x2d\xaf\xf4\x1a\x3b\x74\xb3\xba\xe6\x3b\x75\xc9\x65\xfb\x7a\x0d\x3b\x7b\xa6\x0c\xff\x53\x72\x02\xda\xb5\x4b\x75\x5e\xc0\x60\xc3\x9f\x0c\x01\x32\x04\xc8\x10\x20\x43\x80\x0c\x81\xb3\x65\x08\xb4\x7c\x17\x1c\x65\x09\x0c\xf7\x5a\xfc\x90\x29\x2a\xda\xba\xd2\x0a\x65\x3a\x05\xdd\x05\xfe\xd6\xda\xa8\xe8\xe8\xce\x77\x1d\xfb\x25\x97\x8f\x9e\x0c\xba\x43\x55\x52\x34\xec\xde\xae\xfe\x63\x25\x3e\xeb\xf9\x4c\x87\x2e\x5b\xe9\x45\x0f\xcb\xe1\x9d\x2a\x85\x1f\x6c\x1f\x2d\x2f\xc9\x8f\x0f\xf6\xf2\xe6\xc1\x72\x93\xb5\xf2\x97\x4b\xfd\xf1\x97\x4b\xf1\xe0\x78\x96\xeb\xfc\x2b\x79\x91\xdc\x4b\x61\xad\x15\x36\xf6\x6f\x34\x52\x5b\x1f\x96\x61\xfa\xf4\x57\xe1\xe1\x20\xbd\x3e\x5d\x89\x8f\x8e\x9a\x1c\x33\x97\xee\x07\xc7\xf7\x76\x48\x12\xd8\xe9\xe5\xb1\x5a\xa3\xf8\xbb\xc7\x2e\x1d\xaa\xef\xe0\x43\x72\xef\x95\x21\x4f\x19\xa0\xeb\x77\x61\xa6\x6e\x3d\x7a\x60\x1f\xfd\x6f\x62\x63\x05\xf7\xd6\x26\xb7\x39\x99\x2e\x6a\x64\xf0\xe0\x07\x4f\x51\x9f\x94\xb6\xd7\xaf\x85\x3b\xaa\x6e\x2e\x15\xf4\x26\x11\xeb\x56\xb7\xad\x13\x45\x93\xb6\xb3\x3e\x2c\x85\x55\xac\xa0\x36\x27\xd2\x3e\x0e\x15\x96\x53\x9f\x26\xd1\xc0\x2a\xd3\x99\xc9\x7b\x24\xa5\xf4\x69\xad\x47\xfe\xc7\x56\xe2\xd6\xb6\xe5\x76\xa7\xde\x4d\xd9\x95\xdd\x95\xbe\x87\x2b\x71\x1d\x0f\xc0\xfc\x00\x0d\xff\x26\xae\xfe\x6e\xd9\x5f\x37\x81\xbf\xf7\xd6\xd1\xb7\x54\xdd\x84\xfa\x52\xa1\xe1\x74\x08\x19\xc7\xc7\xf9\x93\x24\x77\x70\x9f\x9e\xe9\x6f\xe2\xea\x27\x3f\x90\x99\xd3\x0a\xdb\x0a\x6d\x6b\x1d\xdd\x7d\xdc\x3e\xba\xac\x46\x9d\x2f\xd4\x4b\xcf\xa3\x13\x3e\xa4\xe7\xe8\x32\x20\xb7\xc5\xe1\x3e\x4e\xc4\x39\xe3\x74\x9e\x76\xfd\x50\x97\xd2\x33\x56\x2f\x90\xdc\x73\xb6\xfe\x3d\x4e\xf0\x19\x6e\x6f\x63\xcc\x54\x9f\x76\x8d\x55\x93\xee\xf3\xda\xf8\xa7\x94\xd4\x41\x94\x4f\xc4\x74\x9f\x77\xd6\x6e\xdf\x96\xcf\x4d\x0e\x24\x67\x0e\xab\x28\x13\xd6\x6f\xe4\x43\xb4\xd4\x47\xb5\xf0\x11\xa3\x2e\xaf\x12\xae\xa2\xbd\xc5\x72\xe1\xba\x4a\xe1\xde\xc5\x0a\xf4\x3e\x59\x10\xaf\xad\x93\x80\x3e\x71\x46\x6e\x0b\xb9\xa3\xb3\x64\x11\xf7\xab\xc1\x36\xd5\xce\xcb\xa9\x76\x6e\xf7\x66\x69\xaa\x78\x1e\x6e\x09\x46\x5e\x02\x79\x09\xe4\x25\x90\x97\x40\x5e\x42\xd9\xe4\x0b\xf0\x9e\x50\x8b\xc0\x40\x61\xa0\x30\x50\x18\x28\x0c\x14\x06\x3a\x2f\x06\x0a\x96\x00\x4b\x80\x25\xc0\x12\x67\xc7\x12\x27\xa0\x7b\x43\xeb\x91\xdb\x35\xe1\x71\x4d\xf2\x6b\x77\xdc\x8c\x02\x3a\x95\x07\x2c\x4b\x70\x76\x95\x61\x19\xcf\x6f\x57\xb9\x7d\xfc\x39\x57\x20\x36\x83\xa3\xbe\xa4\x65\x07\x84\x45\x1d\x64\x65\xa7\x22\x35\x73\x51\xe8\xb7\xcb\xad\x1f\xf6\x4c\xc6\xf4\xea\x45\x58\xad\x21\x98\x3e\xa0\x57\x0c\xd6\xad\xbe\xb3\xc6\x2b\xff\x6c\x93\x43\x2f\x15\x9f\x54\x1d\x65\xbb\xdd\xd8\xaa\x23\xb5\x3b\xf1\xb3\xe5\x59\x1b\x19\xe8\x7d\xb6\xe8\xaa\x84\x15\x86\xbe\xed\xa8\x85\x63\xba\xa3\x65\xa9\x8d\x49\x3f\x10\xd2\xdb\x45\x91\x5c\xb2\x92\x7e\xb2\xbe\x46\xad\xb8\x7b\x94\xa1\x4c\xc2\xa1\x6c\x6d\x4d\x52\x83\xa3\xc2\x41\xb5\x7b\xe5\x07\xe2\xed\xbb\x1f\xa2\xef\x06\x96\xad\x70\x95\xeb\x7b\x1b\x1d\xfc\xa8\x1d\x26\xdb\xf7\x76\x96\xe3\xe9\xd9\x49\xed\xe0\x1c\xbe\xab\xb6\xf0\x63\x98\x26\xee\x5f\xd2\xf8\x7e\xe3\xbb\x96\xb7\x59\xf9\xc1\xe6\x66\xfb\x75\x73\xb3\xf7\x1c\xdb\x5f\xcb\x9b\xbf\x7c\x0a\xef\xa2\xb3\x74\xde\x12\x8e\x1b\xa7\xcf\xee\x31\x2a\x5a\x9a\x6e\x10\xd3\x36\x80\x79\xd7\x22\x80\x79\xaf\xf7\xb7\x4c\xbb\xf0\x77\x8d\x17\xae\xb3\x69\x4d\xbb\xf2\xf9\xc5\x8c\x2a\x28\x99\x44\xcc\x78\x21\x3a\x29\x6f\xdc\xfc\x6f\x34\xed\xfd\x7b\x20\x01\x8e\xf6\xa1\xd8\xb1\xe8\x06\x52\x1b\xb9\x5f\x27\xf0\x9a\x62\xe0\x45\x71\xf3\x82\x8a\x9b\xa9\xe2\xa2\x8a\x8b\x2a\x2e\xaa\xb8\x58\x33\x56\x3d\x45\x46\x96\x4c\x8c\xb3\xfe\xa2\xe2\xa3\xa1\xe2\x63\x1a\xcb\xb0\x74\x3b\xbb\xf7\x3a\x8f\x40\x5a\xeb\x42\xf8\xd5\x76\x31\x15\x1d\x7a\xce\xe2\x8e\x4c\x50\x22\xff\x47\xa5\x6c\xdd\x47\x7f\x59\xf6\x6e\x25\xc4\xc7\xe8\xff\xc9\xbf\x3f\x59\x8e\xda\xe3\x0b\x85\xed\xee\xc3\x9d\x0c\x0e\xaf\x1a\x9d\xdb\x29\x5c\xe7\xab\x14\x57\xa9\x97\xe5\x55\x14\x51\x26\x51\xd0\x4a\xdc\xb9\x96\xe7\x49\x1d\x8a\xaa\x38\xc5\x72\x75\x68\xf4\xf6\x87\x2e\x73\xb7\xba\xc6\x91\x22\x88\xb4\xd1\xd2\x00\xfc\x3e\x69\xbe\xe8\x4e\xc5\x47\xdd\x62\xd1\x5b\x63\x1b\x26\xad\x13\x67\x35\xed\x43\x19\xa8\x74\xa4\x43\x2c\xfd\x72\xe6\x86\x8a\x2e\x66\xbe\xf0\xd8\xec\x57\x1b\x7b\x73\x65\xaf\x85\x8d\x9c\xc8\xd6\xdc\x6b\x70\xae\xe2\x32\xf1\x8e\x49\xcd\x25\xe8\x47\x78\x6b\xed\x1e\xcb\xc9\xad\xfa\x7f\xee\x93\x1a\xc4\x78\x66\xbf\x83\xe9\x12\x6a\x95\xfe\xd1\x49\x04\xfc\x5a\x1d\xfb\xd7\xfa\xa9\xeb\x49\x06\x1b\xd9\xea\x9b\xe1\x2e\xb0\x76\x72\xe3\xd8\xd7\xed\x8f\x89\xfe\x7e\x89\xbf\xa9\x26\xc9\x36\x41\xc7\xd6\x0a\x76\x8e\xaa\xce\xd2\xa9\x4a\x1d\x03\x10\xf5\xab\x06\x6c\xe6\x9e\x8b\xab\xd7\x04\xef\x77\xf9\x9c\x21\xc1\x16\xef\xcc\xb7\x78\x97\xc3\xd6\x0b\x95\x0e\xc9\xc3\xa5\xab\x71\xa2\xd9\xe6\x50\xe1\xfd\x5d\xc5\x4c\xf4\xbd\xda\xe0\xd2\x25\xb8\x96\xab\x8e\xf4\x7c\xef\x5a\x1f\xad\xbe\xa1\xf6\x98\x43\xf1\xdd\x3f\x42\xdf\xbb\xd3\x85\xce\x3f\x47\x73\x5e\xfc\xf7\xe7\x64\x26\x3c\xfc\xe3\xf7\x26\x41\xff\xf6\xe3\xe6\x27\x3f\xb0\xd5\x26\xfc\xc6\x57\x9d\xef\x8b\x2f\x97\x0f\xd1\xbf\x7d\xb9\x14\xb7\xb9\xd6\x54\x79\xd4\x7a\xc7\x5c\x2d\x04\xe2\x07\xf5\xda\xb2\x55\x07\xa8\x52\x59\xd7\xb1\xe3\x3d\x40\xb5\x6e\xf0\xbf\xc5\x7d\xab\x4b\x49\xb7\xd2\xdf\xba\x72\x25\xf4\x6f\xaa\x0a\xf9\x64\x4c\xa9\x6c\xe6\xd2\x8e\x48\x7f\xbe\x4b\xf3\x46\x3f\xc4\xf2\x41\x7f\xc0\xf2\xc1\x84\xe5\xc3\xb6\x90\x0a\x3c\x89\x05\xc4\xbe\xf7\x4d\xa5\xad\x6b\xd9\x5d\xc3\xba\xf8\xe8\x19\x07\x76\x24\x4c\x12\xd4\x2d\x2b\xa8\x33\x28\x76\xe2\x15\x9f\x7e\x42\xc2\xe4\xb2\x62\x93\xfd\x44\xb6\x36\x2f\x44\xbb\xac\x43\x55\x39\x55\xe7\xfa\xd5\x3b\x2e\x8b\xcb\xec\xbd\xb5\xf3\xec\xac\xf7\x96\x9b\x2d\xd9\xb3\x52\x61\x8d\xdc\xad\xaf\x32\x09\x37\x3f\xa6\xa9\x3a\x57\xea\x4c\x57\x07\x99\xa5\x9c\x6e\x4e\x1a\x11\x09\xc7\x0b\x77\xd2\xca\xed\x58\x16\xe3\xa5\x6f\xb5\xdb\x60\xff\x2c\xd4\x27\x51\x48\x67\x6a\x3e\x81\xaa\x03\xfd\xf8\x2c\xbd\x05\x57\xd3\xa9\x2e\x5c\x46\x49\x1d\xda\x85\x33\xd6\x2e\x6c\x66\x4a\x4d\xba\x85\xdd\x9d\x9d\xdb\xf1\x32\xd4\x0a\x51\x2b\x44\xad\x10\xb5\xc2\xb9\xa9\x15\x36\xcf\xbc\xa5\x4a\x85\x67\xce\x4e\x18\x4c\x9f\xb0\xf9\xf6\xab\xb5\x09\x4d\x6e\x83\x53\x14\x09\x9b\xdb\xa0\x5a\x8d\xf0\xcc\x6d\x80\x06\x21\x1a\x84\x68\x10\xa2\x41\x88\x06\xe1\xd9\x34\x08\x5b\xcc\xfe\x47\xfa\x83\xb5\xb5\x7b\x0b\x4a\x4e\x6c\x77\x37\x33\xd6\x50\x6c\x6e\xee\x3a\xfd\xc4\x61\xdb\x1d\xd5\xc4\xb3\xf4\xe8\xb1\x62\xe2\x99\xbb\x75\x54\x9d\xc4\xe6\xe6\xa9\xd1\x48\x3c\xf7\xb4\x69\xaa\x32\x62\x73\xa3\x95\x80\x8c\xce\xfb\x79\xf1\x5f\x7f\xbe\x8a\x8a\x95\x28\x72\x9c\x09\x8e\x65\x89\x98\x97\xbc\xef\x4b\x8d\x83\x7a\x21\x63\x6f\x0e\x31\xbe\x5a\xc7\xc4\xf1\x60\xb4\x4c\x38\x2c\x5e\xae\x72\x8b\xde\xcc\xb9\xbb\x73\x35\x98\x1a\x4c\x6d\x42\x4c\x0d\x9e\x06\x4f\x83\xa7\xc1\xd3\xe0\x69\xf0\x34\x78\x1a\x3c\x0d\x9e\x06\x4f\x83\xa7\xc1\xd3\xe0\x69\xf0\x34\x78\x1a\x3c\x6d\x5a\x3c\x0d\xfd\x12\x10\xe1\x64\x80\x12\x88\x10\x44\x08\x22\x04\x11\x16\x1a\x6d\x44\x44\x78\x2f\x77\xd6\xdb\x9b\x4e\x2c\x70\x94\x82\xd8\x42\x9f\x6f\xe4\x2e\x1f\xbb\xeb\xee\xad\x41\x79\x1b\xb9\xcb\x82\x3c\x75\xff\xb7\x77\x9f\x7e\x2b\x3b\x94\x52\xe0\x13\x19\x5b\xa6\x21\x67\x67\x05\xa7\x46\x4a\xe6\xd8\x8b\xec\xef\xb7\x7d\xd0\x6a\x0a\x54\xcf\xe8\x8a\x91\xd1\x0c\x2f\x96\xa4\xd6\x3c\x29\xc7\x0e\x19\xea\x1e\xde\xa7\x27\xc3\x30\x23\xf7\xeb\x50\x20\x28\x10\x14\x08\x0a\x34\x73\x0a\xd4\x4e\xb2\xa5\x94\x04\x0d\xa6\xa6\x83\xe8\x51\xeb\x8e\x1a\x53\xf4\x68\x30\x74\x77\x82\xcc\x50\x29\xba\xc2\xbe\x09\xfb\x26\xc3\x86\xff\x29\xd4\xb6\x5d\xbb\x54\x93\xdb\xc1\x86\x3f\x0c\x17\x86\x0b\xc3\x85\xe1\xc2\x70\xcf\xc6\x70\x5b\xbe\x0b\x8e\x38\x2e\xae\x86\xb8\x1a\xe2\x6a\x88\xab\xe1\x24\x5c\x0d\xdb\x0f\xc8\x19\x67\x27\xb4\xeb\x87\xba\x0c\x85\xb1\x7a\x81\x5c\x85\xb3\xf5\xef\x71\xbe\xc2\x70\x7b\x1b\x63\x66\x2e\xb4\x6b\xac\x9a\xec\x85\xd7\xc6\x3f\xa5\xb8\x0e\xc0\x8c\x53\x69\x91\x2b\x67\x8e\xad\xb5\x2b\x3d\x84\x4c\x06\x16\x74\x16\x6e\x6a\x00\xf7\x52\xbd\x63\x16\xc4\xab\xec\x24\xb4\x2f\x2d\x36\xaf\x61\xde\xd1\x59\x8e\x88\x77\xdf\x6e\xa6\x94\xa7\xce\xb8\x3c\xb5\xdd\x8b\xa6\xa9\x44\x75\xb8\x15\x19\x69\x0a\xa4\x29\x90\xa6\x40\x9a\x02\x69\x0a\x65\x93\x2f\xfc\x7b\x42\x2d\x02\x12\x05\x89\x82\x44\x41\xa2\x20\x51\x90\xe8\xbc\x90\x28\x94\x02\x4a\x01\xa5\x80\x52\x9c\x9d\x52\x9c\x40\xf2\x0d\xad\xb6\x6c\xd7\x84\xc7\x15\x97\xb3\xb2\x0b\xaf\x3c\x60\x59\x6a\xa0\x79\xef\x4f\xb5\x97\xbf\x3a\x76\x44\x5c\x36\x4c\x32\xd4\x61\xaf\x11\x20\x75\x90\x05\x9d\x8a\xae\xc6\x45\xa1\xf3\x2e\xb7\x7e\xd8\x33\x2d\xd3\x8b\x19\x61\xb5\x06\x63\xfa\x80\xfe\xd1\x98\xc9\x6e\xec\x25\x13\x06\x96\xec\xcb\xa9\x4e\xc2\x92\x1d\x4b\xf6\x92\x8b\x99\x4e\x74\x33\x21\x5f\xf6\x57\x5d\xfd\xbb\xc6\xab\xd7\xf9\xb7\x46\x5e\xfe\x4c\xc3\x4a\x15\xb2\x4c\x27\xac\xbc\x10\xdd\x45\x3c\x4a\xfc\x34\xce\xa8\xe5\xd1\x3e\x64\xab\xd0\xef\x40\xb5\x23\xf7\xeb\xc4\x66\x53\x8c\xcd\xa8\x93\x5e\x50\x9d\x34\x05\x61\x14\x84\x51\x10\x46\x41\x18\xcb\xca\xaa\xa7\xc8\xc8\xea\x8b\x71\x16\x66\x14\x8f\xc4\xdf\xab\x2d\x1e\x99\xd0\xd2\x2c\xdd\x05\xef\xbd\x64\x24\x90\xd6\xba\x10\x88\xb5\x5d\x5b\x45\x87\x9e\xbd\x4e\x24\x13\xa3\xc8\xff\x51\xd9\x5f\xf7\xd1\x5f\x96\xbd\x5b\x09\xf1\x31\xfa\x7f\xf2\xef\x4f\x96\xa3\x76\x05\x43\x61\xbb\xfb\x70\x27\x83\xc3\x9b\x47\xa7\x89\x0a\xd7\xf9\x2a\xc5\xd5\x2f\xd6\x93\x0c\xb7\x96\x2d\xaf\xa2\x00\x33\x09\x8a\x56\xe2\xce\xb5\x3c\x4f\xea\xc8\x54\x85\x2d\x96\xab\x23\xa5\xb7\x3f\x74\x99\xca\xd5\x35\x8e\x14\x50\xa4\x8d\x96\xc6\xe3\xf7\x49\xf3\x45\x77\x2a\x3e\xea\x16\x8b\x5e\x22\xdb\x30\x69\x9d\x38\x41\x6a\x1f\xca\x40\x65\x36\x1d\x42\xeb\x97\x33\x37\x54\x74\x31\xf3\xe5\xd0\x66\xbf\xe9\xd8\xc3\x8b\xbf\x57\xf1\xaa\xd8\xc8\x29\x6d\xe1\xbd\x86\x0c\x63\x22\x71\x7c\x9b\xa3\xc1\x6e\x95\x58\xd2\x49\x81\xfc\x5a\x1d\xfb\xd7\xfa\x99\xec\x49\x06\x1b\xd9\xea\x9b\xe1\x2e\xb0\x76\x72\xe3\xd8\xd7\xed\x8f\x89\xfe\x7e\x89\xbf\xa9\xe6\xcc\x36\x81\xc8\xd6\x0a\x76\x8e\xaa\xfb\xd2\x49\x50\x1d\x83\x92\x6d\xd1\xa5\x78\x8e\x88\xbe\x26\xbe\xbf\xcb\xa7\x24\x09\x76\x81\x67\xbe\x0b\xbc\x1c\x42\x5f\x28\xa4\x48\x1e\x2e\x5d\xec\x13\x4d\x39\x87\x02\xf2\xef\x2a\xa6\xa3\xef\xd5\x1e\x98\xae\xf0\xb5\x5c\x75\xa4\xe7\x7b\xd7\xfa\x68\xf5\x0d\xb5\x0d\x1d\x8a\xef\xfe\x11\xfa\xde\x9d\xae\xa3\xfe\x39\x9a\xf8\xe2\xbf\x3f\x27\xd3\xe1\xe1\x1f\xbf\x37\x29\x75\xa0\xfd\xb8\xf9\xc9\x0f\x6c\xb5\x4f\xbf\xf1\x55\xe7\xfb\xe2\xcb\xe5\x43\xf4\x6f\x5f\x2e\xc5\x6d\xae\x35\x55\x9a\xb6\xde\x54\x57\x8b\x83\xf8\x41\xbd\xb6\x6c\xd5\x01\xaa\x12\xd7\x75\xec\x78\x9b\x50\xad\x25\xfc\x6f\x71\xdf\xea\x4a\xd5\xad\xf4\xb7\xae\x5c\x09\xfd\x9b\xaa\x00\x3f\x19\x53\x2a\x59\xba\xb4\x23\xd2\x9f\xef\xd2\xbc\xd1\x0f\xb1\xa4\xd0\x1f\xb0\xa4\xc8\xdf\xd4\xd8\x4b\x8a\xad\xa1\x06\xf4\xcd\x8b\x8a\x7d\xef\x9b\x4f\x5b\xd7\xb2\xbb\x86\x7a\xf1\xd1\x73\x0f\xf6\xc8\xc7\x24\xda\x5b\x60\xb4\x67\x50\x50\xc5\xbb\x3f\xfd\x84\x7c\xcc\x56\x57\x3f\xd7\xc8\x65\x3f\xa5\xcd\xd0\x0b\x71\x42\x3e\xa3\x2a\xe5\xaa\xb3\x26\xeb\x9d\xbc\xc5\x75\xff\xde\xda\x79\x76\xd6\x7b\xcb\xcd\xd6\x10\x5a\xa9\xd2\x47\xae\x11\x56\x99\x2c\x9e\x1f\xd3\xfc\x9f\x2b\x75\xa6\xab\x83\xee\x53\x4e\xc8\x27\x0d\x9a\x84\xe3\x85\x3b\x69\xe5\x36\x3a\x8b\x21\xd5\xb7\xe6\xdd\xb3\x7f\x16\x6a\xa5\x28\xef\x33\x35\x53\x41\x55\xa7\x7e\x7c\x96\xde\xd2\xcb\xfb\x54\x3f\x2e\xa8\xc6\x0f\x6d\xc5\x19\x6b\x2b\x36\x93\xa9\x26\x5d\xc5\xee\xbe\xba\xed\xa8\x1b\x6a\x8a\xa8\x29\xa2\xa6\x88\x9a\xe2\xdc\xd4\x14\x9b\x67\xde\x52\x25\xc5\x33\xe7\x38\x0c\xa6\x9f\xd8\x7c\xfb\xd5\xda\x89\x26\xb7\xc1\x29\x8a\x89\xcd\x6d\x50\xad\x96\x78\xe6\x36\x40\x23\x11\x8d\x44\x34\x12\xd1\x48\x44\x23\xf1\x6c\x1a\x89\x2d\x66\xff\x23\x7d\xc4\xda\xfa\xc0\x05\xa5\x38\xb6\xbb\x9b\x19\x6b\x3c\x36\x37\x77\x9d\xbe\xe3\xb0\xed\x8e\xaa\xe3\x59\x7a\xf4\x58\xd1\xf1\xcc\xdd\x3a\xaa\x8e\x63\x73\xf3\xd4\x68\x38\x9e\x7b\xda\x34\x55\xb9\xb1\xb9\xd1\x4a\x90\x46\xe7\xfd\xbc\xf8\xaf\x3f\x5f\x4f\xca\x4a\xf4\x3f\xce\x04\xcc\xb2\x94\xcc\x4b\x5e\xfa\xa5\x16\x47\xbd\xd0\xb2\x37\x87\x40\x5f\x2d\x66\xe2\xa0\x30\x5a\x2b\x1c\x56\x30\x57\xb9\x95\x6f\xe6\xdc\xaf\x64\x6d\x70\x36\x38\xdb\xd4\x38\x1b\x8c\x0d\xc6\x06\x63\x83\xb1\xc1\xd8\x60\x6c\x30\x36\x18\x1b\x8c\x0d\xc6\x06\x63\x83\xb1\xc1\xd8\x60\x6c\x30\x36\x18\xdb\x04\x19\x1b\xca\x28\x60\xc3\xc9\x40\x26\xb0\x21\xd8\x10\x6c\x08\x36\x2c\x34\xda\x50\xd8\x70\xe7\x07\xd6\x46\x26\xcc\xb0\x13\x0f\x1c\xa5\x82\xb6\xd0\xd1\x1b\x25\x72\xfc\xe0\x07\x4f\xe9\xc0\xb6\x84\xe6\x13\xd5\x44\x6f\x23\x77\x9f\xf5\xfd\xdf\xde\x7d\xfa\xcf\xe2\x97\x29\x18\x3e\x91\xab\xa5\x8d\x38\x75\xaa\xa6\xc7\x44\xe6\x80\x8b\xec\x8f\xd6\x3e\x40\xcf\x6f\xa7\xfd\x0c\xe5\x16\xbd\x7a\x5e\x6c\xf5\x00\xfd\xf1\xf6\xf6\xee\xd3\x6f\x65\x87\xf0\x18\x9d\xfe\x18\x25\x0d\x39\x0b\xab\x47\x3d\x40\xfe\xfb\xf9\x6d\xd7\x07\xca\x0e\x9d\x75\xe0\x3c\x6b\xda\x3b\x84\x5d\x4d\x46\xc7\xdf\x7f\x10\xef\x3f\x7f\xfa\xa0\x7e\xbe\xe6\x41\x88\x6d\x6b\x92\x67\xe1\x7d\x7a\x82\xd2\x83\x31\xad\x81\x88\x42\x44\x21\xa2\x10\xd1\x19\x12\xd1\x76\xd2\x47\xa5\x54\x74\x30\x55\x2a\xc4\xc3\x5a\x77\xd4\x98\xe2\x61\x83\x61\xec\x13\xe4\xba\x4a\x31\x2e\x16\x6a\x58\xa8\x19\x36\xfc\x4f\xc9\x60\x68\xd7\x2e\xd5\x59\x0c\x83\x0d\x7f\xf2\x19\xc8\x67\x20\x9f\x81\x7c\x06\xf2\x19\xce\x96\xcf\xd0\xf2\x5d\x70\x94\xd3\x80\xb3\x28\xce\xa2\x38\x8b\xe2\x2c\x3a\x09\x67\xd1\xf6\x03\x72\xc6\x99\x3a\xed\xfa\xa1\x2e\x5b\x67\xac\x5e\x20\x6f\xe7\x6c\xfd\x7b\x9c\xbb\x33\xdc\xde\xc6\x98\x59\x3c\xed\x1a\xab\x26\x93\xe7\xb5\xf1\x4f\x29\x9e\x83\x1d\x2f\xd3\x2d\xb8\x0c\x19\x67\x8e\xa9\x75\x09\x3e\x84\x4a\xbd\x54\x36\xe7\x68\x74\x79\x59\x73\x19\xe3\x2d\x96\x34\x0f\xea\x11\xac\x77\xc7\x82\x78\x45\x9d\x84\xf1\x89\xe6\x42\x1b\x9e\x1d\x9d\xe1\x40\xb3\x5f\xc3\xb0\x29\xc3\x5e\x4e\x19\x76\xbb\x97\x48\x53\x29\xf6\x70\xab\x2d\x52\x10\x48\x41\x20\x05\x81\x14\x04\x52\x10\xca\x26\x5f\xd8\xf6\x84\x5a\x04\xdc\x09\xee\x04\x77\x82\x3b\xc1\x9d\xe0\xce\x79\xe1\x4e\x08\x04\x04\x02\x02\x01\x81\x38\x3b\x81\x38\x81\xd2\x1b\x5a\x55\xdc\xae\x09\x8f\x2b\x8b\x67\xe5\xb5\x5f\x79\xc0\xb2\xf4\x6f\x57\x09\xb9\x78\x7e\xbb\x4a\x37\xf0\x67\x5b\x4f\xd8\x0c\x87\x7a\xb3\x93\x1c\x00\x08\x75\x90\xb7\x9d\x8a\x3e\xcc\x45\xa1\xc3\x2e\xb7\x7e\xd8\x33\xfd\xd2\x8b\x15\x61\xb5\x02\x5d\xfa\xcb\xfd\xa0\xae\x6e\xe5\x9a\x35\x9a\x42\xfd\x4f\x00\xbd\x54\x6e\x52\x3d\x94\xed\x6f\x63\xab\x87\xb2\xee\xfa\x7a\x13\x4d\xe9\x62\x59\x61\xe8\xdb\x8e\x5a\x15\xa6\xdb\x55\x96\xda\x75\xf4\x03\x21\xbd\x5d\x14\xa6\x25\xcb\xe4\x27\xeb\x6b\xd4\x8a\xbb\x47\x19\xca\x24\xd6\xc9\xd6\xc8\x24\xb5\x34\x2a\xd6\x53\x5b\x53\x7e\x20\xde\xbe\xfb\x21\xfa\x6e\x60\xd9\x8a\x45\xb9\xbe\xb7\xd1\x91\x8d\xda\x3e\x8a\xd6\xf9\x96\xe3\xe9\xb9\x48\x6d\xcf\x1c\xbe\xab\xf6\xe7\x63\x52\x26\xee\x5f\xd2\xe0\x7d\xe3\xbb\x96\xb7\x59\xf9\xc1\xe6\x66\xfb\x75\x73\xb3\xf7\x1c\xdb\x5f\xcb\x9b\xbf\x7c\x0a\xef\xa2\xb3\x74\xde\xef\x8d\x1b\xa7\xcf\xee\x31\x2a\x14\x9a\x60\x84\xd2\x36\x3a\x79\xd7\x22\x3a\x79\xaf\x77\xad\x8c\xb9\xe2\x77\x8d\x57\xac\xf3\x60\x8d\xb9\xe4\x99\x85\x80\x2a\xd4\x30\x3b\x04\xbc\x10\x27\xe9\x61\x94\xb8\xb8\x9c\x51\x16\xa3\x5d\x44\x55\x94\xc2\x40\x00\xa3\xa2\x55\x09\xa3\xb2\x9d\x6c\x6c\x18\x45\xc9\xf1\x82\x4a\x8e\xa9\xad\xa2\xb6\x8a\xda\x2a\x6a\xab\x58\x01\x56\x3d\x45\x06\xad\x00\x59\x4f\x99\x50\x6f\x61\xf8\x8a\x2a\xdd\x68\xee\xbd\xca\x22\x90\xd6\xba\x10\x5c\xb5\x59\x1f\x45\x87\x9d\xa5\xb4\x22\x13\x67\xc8\xff\x51\x09\x53\xf7\xd1\x5f\x96\xbd\x5b\x09\xf1\x31\xfa\x7f\xf2\xef\x4f\x96\xa3\x36\xe1\x42\x61\xbb\xfb\x70\x27\x83\xc3\xdb\x43\x67\x56\x0a\xd7\xf9\x2a\xc5\xd5\x2f\xd6\x93\x0c\xb7\x96\x2d\xaf\xa2\x20\x31\x09\x6c\x56\xe2\xce\xb5\x3c\x4f\xea\xe8\x52\x85\x1e\x96\xab\xa3\x9d\xb7\x3f\x74\x99\x8e\xd5\x35\x8e\x14\x14\xa4\x8d\x96\xc6\xd4\xf7\x49\xf3\x45\x77\x2a\x3e\xea\x16\x8b\x5e\x04\xdb\x30\x69\x9d\x38\xa7\x68\x1f\xca\x40\x25\x03\x1d\xc2\xe3\x97\x33\x37\x54\x74\x31\xf3\x45\xb7\x33\x7e\x5b\xcd\x6c\xea\xdf\x48\xd3\x77\xd2\x5e\x03\x53\xb3\xfe\x21\x15\x3f\x8f\x77\xc8\x10\x6c\x58\xe5\x59\x74\xd2\xcf\xbe\x56\xc7\xfe\xb5\x7e\x96\x7a\x92\xc1\x46\xb6\xfa\x66\xb8\x0b\xac\x9d\xdc\x38\xf6\x75\xfb\x63\xa2\xbf\x5f\xe2\x6f\xaa\xf9\xb0\x4d\x50\xb1\xb5\x82\x9d\xa3\xca\xa0\x74\x4e\x50\x87\x00\x43\xfd\xe2\x1c\x89\x76\xcd\xee\xec\x5d\x3e\x23\x47\xb0\x2b\x3b\xf3\x5d\xd9\xe5\xc0\xed\x42\x1d\x41\xf2\x70\xe9\x5a\x97\x68\x8a\x39\xd4\x4f\x7f\x57\x31\xfd\x7c\xaf\xf6\xa4\x74\x81\xab\xe5\xaa\x23\x3d\xdf\xbb\xd6\x47\xab\x6f\xa8\x6d\xe1\x50\x7c\xf7\x8f\xd0\xf7\xee\x74\x19\xf1\xcf\xd1\x44\x17\xff\xfd\x39\x99\xfe\x0e\xff\xf8\xbd\x49\xd4\xbd\xfd\xb8\xf9\xc9\x0f\x6c\xb5\x6f\xbe\xf1\x55\xe7\xfb\xe2\xcb\xe5\x43\xf4\x6f\x5f\x2e\xc5\x6d\xae\x35\x55\x96\xb2\xde\xe4\x56\x81\x7e\xfc\xa0\x5e\x5b\xb6\xea\x00\x55\x88\xea\x3a\x76\xbc\x6d\xa7\xd6\x05\xfe\xb7\xb8\x6f\x75\xa1\xe6\x56\xfa\x5b\x57\xae\x84\xfe\x4d\x55\x7f\x9e\x8c\x29\x95\x2b\x5c\xda\x11\xe9\xcf\x77\x69\xde\xe8\x87\x58\x1e\xe8\x0f\x58\x1e\x8c\x48\xda\x0b\xe9\xb5\x66\x2f\x10\xf6\xbd\x6f\x0c\x6d\x5d\xcb\xee\x12\xba\xc5\x47\xce\x31\x78\x23\x1d\x91\x88\x6d\x21\x11\x9b\x41\x81\x11\xef\xef\xf4\x13\xd2\x11\x67\x1d\x71\xec\x4d\xdf\x90\xbc\x10\xed\x52\xfb\x3c\x7f\x2d\x47\x33\xba\xfa\xc5\x5f\xcb\x13\x72\xfb\xb2\x36\x57\xc5\x43\xc9\xf1\x43\x61\x0a\x85\x29\x14\xa6\x50\x98\x42\x61\x6a\x94\x05\x07\xeb\xc2\xd6\x1d\x85\xc9\x95\x49\x42\x60\x64\x9c\x2f\x28\xe3\x1c\xd5\x37\x54\xdf\x50\x7d\x43\xf5\x0d\xd5\x37\x54\xdf\x50\x7d\xa3\x10\x8b\x42\x2c\x0a\xb1\x28\xc4\x2a\x8e\x48\x4c\xae\x90\x98\x44\x62\x12\x89\xc9\x89\x4b\x4c\x96\xa2\x39\x70\x3c\x26\x57\x25\xc7\x98\x67\x72\x55\x20\xbc\x66\x5b\x5c\x35\x90\xec\xa2\xc1\x55\x57\x7a\x8d\xbd\x15\xf6\x56\xfa\x23\xec\xad\x48\x3e\x20\xf9\x80\xe4\x03\x92\x0f\x48\x3e\x80\x6a\x03\x3a\x9b\x5b\x04\xd0\x09\xe8\x04\x74\x02\x3a\x01\x9d\x0b\x06\x9d\xb0\x07\xd8\x03\xec\x01\xf6\x80\xbd\x15\xf6\x56\xd8\x5b\xa5\x9f\x9c\x58\xfb\xf8\x8b\xbf\x96\x98\x5b\x95\x7f\xcd\x28\x10\x84\xb5\x55\x5f\xd6\x56\x0d\x80\xeb\xd8\xd8\x6a\xd8\x02\xcd\x81\x74\x24\xd4\x4d\xb5\x7b\xe8\xa9\x16\x9a\x41\xb5\x10\x2a\x12\xa8\x48\x94\x5c\x8c\xc9\x71\xc9\x94\x34\x24\x4e\xbb\x5e\x03\x04\xd8\x4f\xb9\xe0\x99\x05\x7d\x03\xdb\x59\x9d\x1e\xf4\x5d\x88\x13\x14\x2f\x46\xb0\xb2\x3a\x51\xec\x02\x89\x8b\xd2\x16\x25\x70\xca\x76\xb2\xb1\x81\x13\x45\xc5\x0b\x2a\x2a\xa6\x7a\x8a\xea\x29\xaa\xa7\xa8\x9e\x62\xcd\x57\xf5\x14\x19\xb3\xe6\x63\x0d\x35\x7e\x35\x85\xd1\xab\xa8\x74\x3b\x79\x20\x03\xab\x86\x55\x51\xd1\xbe\xaa\xa7\xc2\x09\xcc\xab\xd2\x8e\x6f\x1f\x0a\x60\x5e\x15\xff\xc7\x3b\x8a\x29\xff\xe8\x18\x23\xac\xab\x86\x45\xa5\x05\xe3\xaa\xe3\x1f\xc7\xb6\x0a\xdb\xaa\x71\x6c\xab\x1a\xc2\x8a\x23\xd3\xaa\x79\xd0\x6a\x2c\xab\xd8\x81\x5d\x1e\xba\xc6\xb2\xaa\xcf\x71\x83\x65\x15\x8b\x02\x16\x05\x25\xed\x38\x61\xc3\xaa\xd7\x2c\x0b\x06\xb3\xab\x6a\xdc\x09\x3a\x32\xab\x9a\x47\xd0\x46\x8a\x21\x71\xda\x22\xe2\x34\x83\xc2\x21\xde\xda\xe9\x27\xa4\x18\xa6\xa7\x9e\x5b\x94\x31\xa8\x49\xd5\x99\x12\xf6\xe2\x7f\xb1\x5d\x2b\x0c\x47\x32\xaa\x8a\x43\x8e\xf7\xd1\x25\x9c\x90\xc0\x97\x9e\xa3\xea\x78\xf2\xf9\x50\x8d\x42\x35\x0a\xd5\x28\x54\xa3\x50\x8d\x1a\x65\xe9\xc1\x0a\xb1\x75\x47\x61\x59\x65\x92\xb8\x17\xd9\xe5\x0b\xca\x2e\x47\xc9\x0d\x25\x37\x94\xdc\x50\x72\x43\xc9\x0d\x25\x37\x94\xdc\x28\xba\xa2\xe8\x8a\xa2\x2b\x8a\xae\x8a\x23\x12\xcb\x2a\x64\x23\x91\x8d\x44\x36\x72\xe2\xb2\x91\xa5\x90\x0e\x30\x8f\x65\x55\xc9\x31\x86\x59\x56\x55\x60\x5e\x83\x7d\xab\x5a\x82\xed\x9c\x79\xd5\x6b\x61\x36\x0e\x56\x38\x58\xe9\x8f\x70\xb0\x22\x17\x81\x5c\x04\x72\x11\xc8\x45\x20\x17\x01\xc8\x0d\xf7\x6c\x6e\x11\xb8\x27\xdc\x13\xee\x09\xf7\x84\x7b\x2e\x98\x7b\x82\x22\x40\x11\xa0\x08\x50\x04\x0e\x56\x38\x58\xe1\x60\x95\x7e\x72\x4a\x59\x64\x76\x0f\x1f\x1b\xab\xf2\xaf\x99\x07\x87\xf0\xb2\xea\xc5\xcb\xaa\x25\xf4\x2a\x18\x5a\x8d\x53\xc3\x39\x84\xe4\x44\xee\xce\xda\x4d\x04\x54\x15\xcd\xa0\xaa\x08\xdd\x09\x74\x27\x4a\x2e\xc6\xf8\x80\x65\x32\xe2\x13\xdd\x2e\x7a\x6c\x81\xf6\x2e\x57\x3d\xb3\xb8\x70\x48\xa7\xab\xee\x71\xe1\x85\x38\x59\x3d\x63\x68\xd3\xab\x6e\xc2\x19\xc8\x65\x64\x7f\x9d\xe0\x6a\x8a\xc1\x15\x05\xca\x0b\x2a\x50\xa6\x12\x8b\x4a\x2c\x2a\xb1\xa8\xc4\x62\x5d\x58\xf5\x14\x99\xb5\x2e\x64\x89\x35\xfa\x12\x6b\x58\x23\x2c\x13\x2b\x33\x4a\xdc\xb0\x5a\x2e\x97\x72\x96\x58\x3d\x97\x63\xe0\x8b\x95\x0e\x81\xf6\x31\x02\xbe\x58\xf1\x7f\xbc\xbc\x78\x0d\x98\x6a\x8e\x35\x0e\x80\xcd\x3a\x64\x55\x5f\x01\x36\x59\xd8\x64\x8d\x60\x93\xd5\x32\xde\xc8\x7b\x65\xcd\x0b\x84\x63\x98\xc5\x9e\xed\xf2\x80\x38\x86\x59\x7d\x8e\x1b\x0c\xb3\x58\x2d\xb0\x5a\x98\x9b\x6b\x56\x1f\xeb\x85\x61\xac\xb3\x5a\x6f\x1b\xe5\xfd\xb3\xe6\x15\xc8\x91\xd1\x48\x00\xb7\x9c\x00\xce\xa0\x38\x89\xd7\x79\xfa\x09\x19\x8d\x25\x17\x3d\xb7\x18\x64\x38\x4f\xad\x33\xa7\x06\x3e\xfb\xee\xfe\x49\x5a\xbb\x9d\x65\x3f\x3e\xa9\x0c\x8b\x31\xbc\xb5\xfe\x50\x57\x71\x9b\x5e\x45\xfb\x34\xc1\x83\xbf\x56\xdd\x39\x48\x1a\x44\xd7\x0a\x5d\x2b\x74\xad\xd0\xb5\x42\xd7\x6a\x94\x45\x09\x6b\xc7\xd6\x1d\x85\xc7\x96\x49\xf2\x63\xa4\xb0\x2f\x28\x85\x1d\xad\x39\xb4\xe6\xd0\x9a\x43\x6b\x0e\xad\x39\xb4\xe6\xd0\x9a\xa3\xb2\x8b\xca\x2e\x2a\xbb\xa8\xec\x2a\x8e\x48\x3c\xb6\x10\xb6\x44\xd8\x12\x61\xcb\x89\x0b\x5b\x96\xc2\x3a\x90\x3d\x1e\x5b\x25\xc7\x18\xe6\xb1\x55\x83\x7a\x0d\xf6\xd9\x3a\x01\x72\xe7\xbc\xb6\xfa\x00\xdb\xf8\x6d\xe1\xb7\xa5\x3f\xc2\x6f\x8b\xbc\x04\xf2\x12\xc8\x4b\x20\x2f\x81\xbc\x04\x80\x37\x0c\xb4\xb9\x45\x60\xa0\x30\x50\x18\x28\x0c\x14\x06\xba\x60\x06\x0a\x96\x00\x4b\x80\x25\xc0\x12\xf8\x6d\xe1\xb7\x85\xdf\x56\xfa\xc9\x29\x75\x93\xc5\x7d\x7c\x3c\xb7\xca\xbf\x66\x26\x2c\xc2\x77\xab\x17\xdf\xad\x13\x20\x58\xc1\x7b\x6b\xbc\xfa\xce\x21\xd4\x2a\x8e\xee\xae\xdd\xc4\x40\xd5\xd1\x0c\xaa\x8e\x50\xac\x40\xb1\xa2\xe4\x62\x26\x11\xc4\x4c\x46\xb5\xa2\xfb\x85\x8f\x2d\x14\xdf\xf5\xca\x67\x16\x33\x0e\xe9\xc7\xf5\xba\x98\xf1\x42\x74\x11\xde\x18\xda\x96\xab\xbb\xe6\x06\x4a\x1b\xc4\x5d\x73\x88\xbb\xa8\x6d\x5e\x50\x6d\x33\x45\x5c\x14\x71\x51\xc4\x45\x11\x17\x4b\xc6\xaa\xa7\xc8\xbc\x25\x23\x2b\xaf\xdc\xfd\x2c\xc3\xa6\xcb\xd4\xe2\x8e\x12\xab\xae\x13\x96\x50\x39\xbb\xae\x33\x54\x74\x60\xd9\x95\x0e\x85\xf6\x71\x03\x96\x5d\xf1\x7f\xbc\xd0\x78\x2d\x98\x6c\xdb\x35\x1e\xc3\xcd\x5a\x77\xd5\x5f\x05\xf6\x5d\xd8\x77\x8d\x60\xdf\x75\x42\x0c\x92\xb7\xf0\x9a\x1f\x4f\xc7\xc6\x8b\xbd\xdd\xe5\x31\x75\x6c\xbc\xfa\x1c\x37\xd8\x78\xb1\x82\x60\x05\x31\x47\x2b\xaf\xbe\xd6\x10\xc3\xd8\x79\x9d\xb4\xb5\x94\xb7\xf4\x9a\x5f\x60\x47\xa2\x24\x41\xdd\xb2\x82\x3a\x83\x62\x27\x5e\xf1\xe9\x27\x24\x4a\x2e\x28\x36\x19\xce\xe2\x6b\xc4\x6c\xc3\x9b\x50\xeb\xd7\x65\x92\x0e\xcf\x03\xce\xf4\xef\x24\x6f\xaf\xfe\x11\x5a\xac\xc3\xc7\x14\xc5\x93\x0e\xc7\x28\xe9\x0f\x38\x06\x1c\xa3\xf4\x9b\xe3\x71\x8c\x1e\x5e\x09\xf5\x44\xa3\xe4\x9d\x30\xc9\xe5\x2f\x5c\x83\x25\xf0\xf2\x96\xc0\x70\x8d\x3e\xc7\x0d\x5c\x83\x4d\x0f\x56\x14\x70\x8d\x42\xa3\x0d\xc0\x35\x7a\x59\xf9\xd7\x13\x8e\xb9\x04\x7a\x70\x0e\x82\xbc\x65\x05\x79\x06\xc5\x52\xbc\xf2\xd3\x4f\xe0\x1c\x0b\x8a\x55\x66\xc5\x39\x94\x26\xdc\x8d\x1d\x3a\xeb\xc0\x79\xd6\x6f\xff\xf3\x81\x8d\x58\x3b\xd8\x5b\x3b\xcf\xce\x7a\x6f\xb9\x59\x1d\x42\x2b\x55\x0b\x7f\xff\xf9\xd3\x07\x75\x31\xab\x4c\x09\xf1\x8f\x69\xf1\xf1\x95\x3a\xcb\xd5\xc1\x37\x22\x67\x04\x90\x06\x42\xc2\xf1\xc2\x9d\xb4\x72\xbb\x98\xc5\x30\xe9\x5b\x6e\x37\x2c\xfd\xdd\x7f\x16\xc4\xd6\x90\x04\x34\xd5\x4c\x4a\x29\x5a\x7e\x7c\x5e\xee\x64\xa4\xfa\x6f\x48\x71\xc0\xf4\x21\x19\x8e\xc4\xe0\xbd\x34\x63\xef\xa5\x66\xac\xd4\xe4\xbb\x54\xbb\x6f\xd5\x03\x32\xc3\x6d\x09\xb7\x25\xdc\x96\x70\x5b\x9a\x9b\xdb\x52\xf3\xcc\x5b\xea\xb4\x74\xe6\x04\x85\xc1\xfc\x95\x9a\x6f\xbf\xda\x5b\xc9\xe4\x36\x38\xc5\x51\xa9\xb9\x0d\xaa\xdd\x94\xce\xdc\x06\x78\x28\xe1\xa1\x84\x87\x12\x1e\x4a\x78\x28\x9d\xcd\x43\xa9\xc5\xec\x7f\xe4\x9f\x54\x2b\x3e\xb8\xa0\xfc\xc4\x76\x77\x33\x63\x0f\xa8\xe6\xe6\xae\xf3\x7f\x1a\xb6\xdd\x71\x7d\x3a\x4b\x8f\x1e\x3b\x3e\x9d\xb9\x5b\x47\xf5\x79\x6a\x6e\x9e\x1a\x8f\xa7\x73\x4f\x9b\xa6\x3a\x3b\x35\x37\x5a\x09\xbe\xe8\xbc\x9f\x17\xff\xf5\x67\x27\xf0\x55\xa2\x26\x7e\x26\xfe\x95\x85\x5e\x5e\xf2\x9e\xf7\x1f\xc4\x57\xc7\x5b\xf7\x0c\xbf\xde\x1c\xe2\x7a\xb5\x76\x89\x63\xc0\x68\x69\x70\x58\xb0\x5c\xe5\x16\xba\x99\x73\x77\x40\x67\x60\x33\xb0\xd9\x54\xb0\x19\xc8\x0c\x64\x06\x32\x03\x99\x81\xcc\x40\x66\x20\x33\x90\x19\xc8\x0c\x64\x06\x32\x03\x99\x81\xcc\x40\x66\x20\x33\x90\xd9\x44\x90\x59\x56\xa8\xa4\x62\xab\x01\x85\x12\x08\xe0\xf8\xbc\x08\x02\x08\x01\x84\x00\x42\x00\x0b\x8d\x36\x3e\x01\xf4\xfc\xb5\x34\xa4\xf0\xed\x17\x7f\x2d\x87\x2f\x7b\x8b\x7e\x95\xa2\x37\xe8\xdd\x94\xe8\xdd\xc0\x45\x6f\xd1\x23\x02\xbf\x83\xdf\xc1\xef\xe0\x77\xf0\x3b\xf8\x1d\xfc\x0e\x7e\xd7\xd3\x6c\x0b\xbf\x83\xdf\xc1\xef\xe0\x77\xf0\x3b\xf8\x1d\xfc\x6e\x71\xfc\x0e\xe0\x05\xf0\x02\x78\x4d\xa3\x47\x01\x5e\xf9\xe6\x01\x78\x4d\x17\x78\x99\x53\xf0\xd6\x1b\xf4\x1a\xb0\xdc\xad\xc0\x03\xc0\x65\xe0\xb2\xc2\x59\xcd\xc2\x65\xa0\x32\x50\x19\xa8\x0c\x54\x06\x2a\x03\x95\x81\xca\x40\x65\xa0\x32\x50\x19\xa8\x0c\x54\x06\x2a\x03\x95\x81\xca\x40\x65\x93\x40\x65\x85\x52\xb7\xe3\x8d\x06\x0a\xdd\xe0\x7e\xe3\x53\x22\xb8\x1f\xdc\x0f\xee\x07\xf7\x2b\x34\xda\xc8\xdc\x2f\xfe\x77\xdb\xb5\xc2\xd0\x88\x72\xb7\x18\xa7\xbd\x8f\x2e\x68\xe0\x9a\xb7\xec\x4f\x53\xf8\x06\xc9\x9b\x12\xc9\x1b\xb2\xf0\x2d\xfb\x9c\x80\xf4\x40\x7a\x20\x3d\x90\x1e\x48\x0f\xa4\x07\xd2\x03\xe9\xf5\x34\xdb\x82\xf4\x40\x7a\x20\x3d\x90\x1e\x48\x0f\xa4\x07\xd2\x5b\x1c\xd2\x83\x82\x41\xc1\xa0\x60\xd3\xe8\x51\x28\x58\xbe\x79\xa0\x60\x53\xa7\x60\x86\xd4\xc0\xf5\x4e\xc2\x86\x2a\x84\xab\xe0\x03\x30\x34\x18\x5a\xe1\xac\x66\x31\x34\xf8\x19\xfc\x0c\x7e\x06\x3f\x83\x9f\xc1\xcf\xe0\x67\xf0\x33\xf8\x19\xfc\x0c\x7e\x06\x3f\x83\x9f\xc1\xcf\xe0\x67\xf0\xb3\xe9\xf0\xb3\x6c\x49\x5c\xf5\x6e\x03\x75\x71\x10\xc1\xf1\xf9\x11\x44\x10\x22\x08\x11\x84\x08\x16\x1a\x6d\x64\x22\xf8\xec\xbb\xfb\x27\x69\xed\x76\x96\xfd\x18\xc5\xc9\x26\x94\xc6\xfd\xa1\xae\xe9\x36\xbd\xa6\x81\xcb\xe3\x8a\x3f\x4f\x89\x1c\x78\x6f\x4a\x78\x6f\xc8\x12\xb9\xe2\xb3\x02\xe6\x03\xf3\x81\xf9\xc0\x7c\x60\x3e\x30\x1f\x98\x0f\xcc\xd7\xd3\x6c\x0b\xe6\x03\xf3\x81\xf9\xc0\x7c\x60\x3e\x30\x1f\x98\x6f\x71\x98\x0f\x28\x06\x14\x03\x8a\x4d\xa3\x47\x81\x62\xf9\xe6\x01\x8a\xcd\x00\x8a\x19\x52\x29\x77\x16\x30\x36\x54\xb5\x5c\x0d\x2a\x00\xa9\x81\xd4\x0a\x67\x35\x0b\xa9\x81\xd3\xc0\x69\xe0\x34\x70\x1a\x38\x0d\x9c\x06\x4e\x03\xa7\x81\xd3\xc0\x69\xe0\x34\x70\x1a\x38\x0d\x9c\x06\x4e\x03\xa7\x4d\x0b\xa7\x65\xab\xe6\xea\x77\x1c\xa8\x9c\x03\x12\x8e\x8f\x94\x80\x84\x40\x42\x20\x21\x90\xb0\xd0\x68\x63\x41\xc2\x7b\xb9\xb3\xde\xde\x74\x62\x81\xe7\xe6\x59\x6d\x38\xe3\x46\xee\xf2\xb1\xbb\xee\xdb\x1a\x8e\xb7\x91\xbb\x94\xe2\xa9\x9b\xbf\xbd\xfb\xf4\x5b\xd9\x71\x63\x61\xbc\xc9\xd2\xb5\x4c\x43\xaa\x2a\xc3\xd9\x20\x36\x35\x4c\x32\x07\x5e\x64\x7f\xbc\xd5\xf3\x65\x87\xce\x3a\x70\x9e\x35\xc3\x4a\x9f\x34\xbd\x24\xea\x17\xbc\xeb\x73\x0a\xdb\x77\x5d\x69\x27\x73\xfe\xfb\xcf\x9f\x3e\xa8\x9f\xaf\x79\x2e\xf4\x81\xf9\x47\xe3\x7d\x7a\x96\xd2\x33\x54\x90\x39\x51\xec\x4c\x3d\xf9\xdd\xfb\xeb\x97\xe2\x38\x4c\x66\xbf\xb2\xcf\xce\x32\x46\x3f\xa8\xbb\xfc\x55\x35\x57\xd8\x72\x84\xd6\x0f\x4d\x60\x0f\xb0\x07\xd8\x03\xec\x99\x1b\xec\xa9\x09\x5a\x9b\x80\x4f\xfd\x02\xa8\x3e\x78\x3d\x69\xee\xfd\xaf\xa8\xe1\xe2\x6d\xae\x37\x4a\x89\xc1\x8e\x46\x94\x1e\x07\xb9\x7b\xcb\x26\x56\xdc\x4b\xb1\x8d\x5a\x2b\xdc\xc9\xf5\x4a\xdc\x7a\xc2\xf1\xf4\xcc\xe2\x07\x62\xef\xa5\x93\xd3\x5a\xac\x83\x97\xdf\xf6\x9e\x58\x3b\x41\xf4\x12\x7c\x96\xe9\x88\x8f\xa6\x4f\xb5\x29\x19\x3f\xf2\xc9\xd8\x88\x1b\x58\x3c\xec\x03\xf5\x94\x6d\x03\xdf\x96\xa1\xda\x3d\x8c\x57\x5e\xf1\x28\x5b\x89\x3f\xd4\x2f\xaa\xde\x52\x63\xe7\x47\x71\x2d\x6e\x5d\xf7\x47\xb5\x37\xb8\x8e\x66\xe9\xbd\x17\x75\x7c\xb4\x86\x49\x86\x64\x7c\x3a\xb9\xee\xd0\x51\xfa\x5e\xc6\xe9\xa6\xc1\x08\x5d\xbb\xa6\xa8\xa6\x74\x83\xb5\xc8\xef\xd9\x45\xb9\xe3\x89\x50\xaf\x95\xc5\xbd\x7c\xd0\xa9\x44\xe9\x6e\xee\x21\x94\x88\x67\x2f\x35\x74\xf6\x52\xbf\x1c\xee\xa3\xe5\xa8\x77\xed\xc9\x8d\xa5\x06\x68\xbc\xac\x5e\x89\xdf\xd3\x17\xb6\x26\x3b\xe9\xa3\x11\xc7\x87\xce\xd3\x93\x5c\x3b\xd6\x4e\xba\x2f\x87\x1c\x9f\xc3\x2b\xd7\x71\xdf\xc4\xcb\x66\xd5\xe8\x62\x13\x58\xb6\x7a\x6a\x1c\x7f\x9d\x06\x04\x87\x97\xb6\x4a\xa0\x4a\x46\xe9\x3e\x8c\x2e\x32\xdb\x5d\x56\x74\x64\x72\x43\xf1\x8f\x3c\xe8\x39\x30\x39\xc5\x4a\x5f\xe7\x93\xb4\xbc\xd2\x6b\xec\xd0\xcd\xea\x9a\xef\xd4\x25\x97\x6d\x45\x34\x6c\x46\x98\x32\xfc\x4f\x81\xb3\xed\xda\xa5\x1a\xd0\x0e\x36\xfc\x41\xb5\xa0\x5a\x50\x2d\xa8\x16\x54\x7b\x36\x54\xdb\xf2\x5d\x70\x84\x6b\x87\x7b\x2d\x7e\xc8\x54\x7b\x6c\x5d\x69\x85\x32\x9d\x82\xee\x02\x7f\x6b\x6d\x54\x74\x74\xe7\xbb\x8e\xfd\x92\x4b\x0c\x4e\x06\xdd\xa1\x5c\x24\x1a\x76\x6f\x57\xff\xb1\x12\x9f\xf5\x7c\xa6\x43\x97\xad\xf4\xa2\x87\xe5\xf0\x4e\x95\xc2\x0f\xb6\x8f\x96\x97\x24\x2a\x07\x7b\x79\xf3\x60\xb9\xc9\x5a\xf9\xcb\xa5\xfe\xf8\xcb\xa5\x78\x70\x3c\xcb\x75\xfe\x95\xbc\x48\xee\xa5\xb0\xd6\x8a\x74\xf9\x37\x9a\x02\xac\x0f\xcb\x30\x7d\xfa\xab\xf0\x70\x90\x5e\x9f\xae\xc4\x47\x47\x4d\x8e\x99\x4b\xf7\x83\xe3\x7b\x3b\x70\xcd\x9d\x5e\x1e\xab\x35\x8a\xbf\x7b\xec\xd2\xa1\xfa\x0e\x3e\x24\xf7\x5e\x19\xf2\x94\x31\x85\x7e\x17\x66\xea\xd6\xa3\x07\xf6\xd1\xff\x26\x36\x56\x70\x6f\x6d\x72\xdb\x92\xe9\xa2\x46\x06\x0f\x7e\xf0\x14\xf5\x49\x69\x7b\xfd\x5a\xb8\xa3\xea\xe6\x52\x41\x6f\x12\xb1\x6e\x75\xdb\x3a\x51\x34\x69\x3b\xeb\xc3\x52\x58\xc5\x0a\x6a\x73\x22\xed\xe3\xe8\x65\x1d\xbf\x49\x93\x68\x60\x95\xe9\xcc\xe4\x3d\x92\x82\xc5\x34\xe9\x3e\xff\x63\x2b\x71\x6b\xdb\x72\xbb\x53\xef\xa6\xec\xca\xee\x4a\xdf\xc3\x95\xb8\x8e\x07\x60\x7e\x80\x86\x7f\x13\x57\x7f\xb7\xec\xaf\x9b\xc0\xdf\x7b\xeb\xe8\x5b\x2a\x81\x5d\x7d\xa9\xd0\x70\x3a\x84\x8c\xe3\xe3\xfc\x49\x92\x3b\xb8\x4f\xcf\xf4\x37\x71\xf5\x93\x1f\xc8\xcc\x69\x85\x6d\x85\xb6\xb5\x8e\xee\x3e\x6e\x1f\x5d\xdf\xa0\xce\x17\xea\xa5\xe7\xd1\x09\x1f\xd2\x73\x74\x19\x90\xdb\xe2\x70\x1f\x27\xe2\x9c\x71\x06\x42\xbb\x7e\xa8\xcb\x42\x18\xab\x17\xc8\x47\x38\x5b\xff\x1e\xe7\x24\x0c\xb7\xb7\x31\x66\x76\x42\xbb\xc6\xaa\xc9\x50\x78\x6d\xfc\x53\xca\xe8\x40\xc9\x27\x62\xba\xcf\x3b\x6b\xb7\x6f\xcb\xe7\x26\x48\x90\x33\x07\x56\x54\x6a\xea\x77\xf2\x21\x5e\x1a\xaa\x68\xb3\x0c\xf4\x16\xab\x35\x0b\x77\x73\x5c\xb2\xd9\x7b\x39\xb9\xde\x27\x0b\xe2\xb5\x75\x12\xd0\x27\x95\xe4\x6d\xf0\x76\x74\x86\x02\xdc\x7e\x0d\xd2\xa6\xe0\x74\x39\x05\xa7\xed\xde\x29\x4d\x45\xa7\xc3\x2d\xbe\xc8\x48\x20\x23\x81\x8c\x04\x32\x12\xc8\x48\x28\x9b\x7c\x41\xdd\x13\x6a\x11\xe8\x27\xf4\x13\xfa\x09\xfd\x84\x7e\x42\x3f\xe7\x45\x3f\x01\x12\x00\x09\x80\x04\x40\xe2\xec\x40\xe2\x04\x68\x6f\x68\xf1\x64\xbb\x26\x3c\x2e\xa0\x7c\xed\x8e\x9b\x51\x28\xa7\xf2\x80\x65\x89\x7b\xae\x12\x86\x11\x53\x88\x55\xba\x8b\x3f\xef\x92\xc3\x66\x60\x34\xa4\x51\x5e\x2f\x90\xa8\x83\xae\xe7\x54\x54\x31\x2e\x0a\xbd\x76\xb9\xf5\xc3\x9e\x89\x98\x5e\xbb\x08\xab\x15\xfc\xd2\x5f\xee\x11\x7f\x75\xab\xe8\xac\x91\x53\x39\xd3\xa4\xd0\x4b\x85\x27\x55\x46\xd9\x4e\x37\xb6\xca\x48\xed\x49\xfc\x6c\x79\xd6\x46\x06\x7a\x77\x4d\x49\x03\x59\x61\xe8\xdb\x8e\x5a\x2e\xa6\xfb\x58\x96\xda\x8e\xf4\x03\x21\xbd\x5d\x14\xbf\x25\xeb\xe7\x27\xeb\x6b\xd4\x8a\xbb\x47\x19\xca\x24\x08\xca\xd6\xd2\x24\x35\x37\x2a\x08\x54\x7b\x56\x7e\x20\xde\xbe\xfb\x21\xfa\x6e\x60\xd9\x0a\x52\xb9\xbe\xb7\xd1\x21\x8f\xda\x57\xb2\x7d\x6f\x67\x39\x9e\x9e\x95\xd4\xbe\xcd\xe1\xbb\x6a\xe3\x3e\x46\x68\xe2\xfe\x25\x8d\xea\x37\xbe\x6b\x79\x9b\x95\x1f\x6c\x6e\xb6\x5f\x37\x37\x7b\xcf\xb1\xfd\xb5\xbc\xf9\xcb\xa7\xf0\x2e\x3a\x4b\xe7\x8d\xe0\xb8\x71\xfa\xec\x1e\xa3\x62\xa4\xa9\x86\x2e\x6d\xc3\x96\x77\x2d\xc2\x96\xf7\x7a\x4f\xcb\xac\xcb\x7e\xd7\x78\xd9\x3a\x73\xd6\xac\xeb\x9e\x63\x94\xa8\x02\x91\x09\x44\x89\x17\xe2\x74\x69\x8d\x12\x5f\x8b\x33\x2a\x6c\xb4\x8b\xbc\x4a\x55\x35\xd0\xd2\xa8\x68\x5a\x22\xad\x6c\x27\x1b\x1b\x69\x51\xbd\xbc\xa0\xea\x65\xca\xb4\x28\xd3\xa2\x4c\x8b\x32\x2d\x16\x89\x55\x4f\x91\x69\x8b\x44\x56\x5b\x99\xbb\x31\xa0\x88\x63\x0a\xeb\xad\x74\xa7\xba\xf7\xd2\x8d\x40\x5a\xeb\x42\xc0\xd5\x66\xe1\x14\x1d\x76\xbe\x7a\x8d\x4c\x00\x22\xff\x47\x65\x61\xdd\x47\x7f\x59\xf6\x6e\x25\xc4\xc7\xe8\xff\xc9\xbf\x3f\x59\x8e\xda\xc0\x0b\x85\xed\xee\xc3\x9d\x0c\x0e\xaf\x15\x9d\xae\x29\x5c\xe7\xab\x14\x57\xbf\x58\x4f\x32\xdc\x5a\xb6\xbc\x8a\xa2\xc7\x24\xe2\x59\x89\x3b\xd7\xf2\x3c\xa9\xc3\x4e\x15\x93\x58\xae\x0e\x83\xde\xfe\xd0\x65\x9e\x56\xd7\x38\x52\xb4\x90\x36\x5a\x1a\x6c\xdf\x27\xcd\x17\xdd\xa9\xf8\xa8\x5b\x2c\x7a\x43\x6c\xc3\xa4\x75\xe2\x44\xa5\x7d\x28\x03\x95\x61\x74\x88\x9b\x5f\xce\xdc\x50\xd1\xc5\xcc\x97\x07\xcf\xfd\x35\x36\xc7\xd7\xc1\x46\x4e\x62\xef\xed\x35\x84\x36\xeb\xc6\x50\x71\x0d\xd8\x30\x0c\x01\x9c\x55\x2e\x47\x27\x19\xef\x6b\x75\xec\x5f\xeb\x27\xad\x27\x19\x6c\x64\xab\x6f\x86\xbb\xc0\xda\xc9\x8d\x63\x5f\xb7\x3f\x26\xfa\xfb\x25\xfe\xa6\x9a\x1e\xdb\x04\x1a\x5b\x2b\xd8\x39\xaa\xd4\x4a\xe7\x1d\x75\x08\x3a\xb6\x39\x8f\xdf\xb9\x61\xf2\x9a\xad\xdc\xbb\x7c\xea\x8f\x60\x0b\x77\xe6\x5b\xb8\xcb\x81\xe5\x85\x82\x85\xe4\xe1\xd2\x45\x35\xd1\x3c\x73\x28\xd4\xfe\xae\x62\x0e\xfa\x5e\x6d\x60\xe9\x4a\x5a\xcb\x55\x47\x7a\xbe\x77\xad\x8f\x56\xdf\x50\x7b\xc8\xa1\xf8\xee\x1f\xa1\xef\xdd\xe9\x7a\xe5\x9f\xa3\xd9\x2e\xfe\xfb\x73\x32\x07\x1e\xfe\xf1\x7b\x93\x28\x7e\xfb\x71\xf3\x93\x1f\xd8\x6a\x93\x7d\xe3\xab\xce\xf7\xc5\x97\xcb\x87\xe8\xdf\xbe\x5c\x8a\xdb\x5c\x6b\xaa\x74\x68\xbd\x23\xae\x82\xff\xf8\x41\xbd\xb6\x6c\xd5\x01\xaa\xe2\xd5\x75\xec\x78\x8f\x4f\xad\x15\xfc\x6f\x71\xdf\xea\x8a\xd0\xad\xf4\xb7\xae\x5c\x09\xfd\x9b\xaa\xd0\x3d\x19\x53\x2a\x29\xb9\xb4\x23\xd2\x9f\xef\xd2\xbc\xd1\x0f\xb1\x64\xd0\x1f\xb0\x64\x30\x61\xc9\xb0\x1d\xd2\xb0\xbd\x9f\x45\xc3\xbe\xf7\x0d\xa4\xad\x6b\xd9\x5d\xc2\xb9\xf8\xc8\xd9\x06\x74\xe4\x3d\x12\xca\x2d\x29\x94\x33\x28\x62\xe2\xc5\x9e\x7e\x42\xde\x63\xc5\x65\xcf\x32\x1e\xd9\x4f\x62\x0b\xf3\x42\x9c\x90\x3e\xe8\xf9\x6b\x39\x9a\x2f\xd7\x2f\xfe\x5a\x9e\x9a\x3f\x98\x75\xe5\x2a\x1e\x4f\x1e\x21\x0a\x58\x28\x60\xa1\x80\x85\x02\x16\x0a\x58\xa3\x2c\x47\x58\x35\xb6\xee\x28\x3c\xb9\x4c\x12\x2a\x23\xab\x7d\x41\x59\xed\xa8\xd2\xa1\x4a\x87\x2a\x1d\xaa\x74\xa8\xd2\xa1\x4a\x87\x2a\x1d\xc5\x5e\x14\x7b\x51\xec\x45\xb1\x57\x71\x44\xe2\xc9\x85\x04\x26\x12\x98\x48\x60\x4e\x5c\x02\xb3\x94\xcf\x01\xeb\xf1\xe4\x9a\x8e\x27\x57\x01\xf3\x8e\x5f\xd6\xd9\xe8\xc8\xd5\x00\xb6\x4b\xfd\xb8\xba\xc2\x6c\xdc\xb8\x70\xe3\xd2\x1f\xe1\xc6\x45\x2e\x02\xb9\x08\xe4\x22\x90\x8b\x40\x2e\x02\x90\x1b\xee\xd9\xdc\x22\x70\x4f\xb8\x27\xdc\x13\xee\x09\xf7\x5c\x30\xf7\x04\x45\x80\x22\x40\x11\xa0\x08\xdc\xb8\x70\xe3\xc2\x8d\x2b\xfd\xa4\x4b\x8d\xe4\x2f\xfe\x5a\xe2\xc5\x35\xa8\xcb\xc2\x6b\xe1\x10\x4e\x5c\x7d\x39\x71\x35\x40\xaf\x0a\x1f\xae\x61\x6b\x38\x87\x54\xa3\x50\x77\xd6\x6e\x22\xa0\xaa\x68\x06\x55\x45\x68\x51\xa0\x45\x51\x72\x31\xc6\x07\x2c\x93\x53\xa2\x38\xed\xa2\x4d\x51\x84\x3f\xe5\xaa\xe7\x18\x17\x0e\xec\xbe\xd5\x31\x2e\xbc\x10\xa7\x8a\x67\x8c\xe0\xbc\xd5\x45\x37\x03\xb5\x8c\xd2\x66\x25\xb6\xca\x76\xb2\xb1\xb1\x15\xf5\xc9\x0b\xaa\x4f\xa6\x10\x8b\x42\x2c\x0a\xb1\x28\xc4\x62\x59\x58\xf5\x14\x99\xb5\x2c\x64\x85\x65\xc6\x0a\x6b\x70\xc7\x2d\xe3\x0a\x33\xca\xfd\xb6\x1a\x96\x4b\xa5\x6e\x5b\x3d\x55\x63\xe0\xb5\x95\xf6\x7e\xfb\x18\x01\xaf\xad\xf8\x3f\x5e\x5e\xbc\x06\x4c\x77\xda\x1a\x81\xbf\x16\x7c\xb6\x8e\xaf\x00\x97\x2d\x5c\xb6\xc6\x71\xd9\x6a\x08\x35\xca\x3d\xb6\xe6\x81\xc0\x71\xd8\x62\xbb\x76\x79\x28\x1c\x87\xad\x3e\xc7\x0d\x0e\x5b\x2c\x14\x58\x28\xcc\xd5\x5f\xeb\xd5\x4b\x85\xc1\xdc\xb5\x1a\x77\x8c\xca\xbd\xb5\xe6\x11\xc8\x91\xcb\x48\x00\xb7\x9c\x00\xce\xa0\x38\x89\xd7\x79\xfa\x09\xb9\x8c\x25\x17\x3d\xcb\x18\x64\x50\x4f\xad\xb3\x27\x05\xc6\xff\x6c\xbb\x56\x18\x8e\xe4\xab\x15\x47\x25\xef\xa3\x4b\x38\x35\x49\x30\x3d\x51\xd5\x49\xc8\x19\x44\xd5\x0a\x55\x2b\x54\xad\x50\xb5\x42\xd5\x6a\x94\x85\x09\xeb\xc7\xd6\x1d\x85\xc3\x96\x49\xe2\x63\x64\xb0\x2f\x28\x83\x1d\xa5\x39\x94\xe6\x50\x9a\x43\x69\x0e\xa5\x39\x94\xe6\x50\x9a\xa3\xb0\x8b\xc2\x2e\x0a\xbb\x28\xec\x2a\x8e\x48\x1c\xb6\x90\xb5\x44\xd6\x12\x59\xcb\x89\xcb\x5a\x96\x92\x3a\xb0\x3d\x0e\x5b\x13\x71\xd8\xaa\x60\xbd\xe3\x57\x73\xd6\xdb\x6c\xb5\xe4\xdc\xc7\x5e\x5b\xaf\x65\xdb\x18\x6e\x61\xb8\xa5\x3f\xc2\x70\x8b\xd4\x04\x52\x13\x48\x4d\x20\x35\x81\xd4\x04\x98\x37\x18\xb4\xb9\x45\xc0\xa0\x60\x50\x30\x28\x18\x14\x0c\xba\x60\x0c\x0a\x99\x80\x4c\x40\x26\x20\x13\x18\x6e\x61\xb8\x85\xe1\x56\xfa\xc9\xc9\xe5\x93\xd9\x8d\x7c\x5c\xb7\x86\x73\x57\xe8\x0b\x18\x61\xbd\xd5\x8b\xf5\x56\x4b\x10\x56\xe6\xbf\x35\x4e\x99\xe7\x60\xc2\x15\xb9\xdb\x6b\x37\x39\x50\x7d\x34\x83\xea\x23\xd4\x2b\x50\xaf\x28\xb9\x98\x69\x44\x32\xd3\x92\xb0\xe8\x76\xe5\x46\x28\xc6\x77\xb9\xf4\x39\x86\x8e\x43\x1a\x73\xbd\x32\x74\xbc\x10\xdd\x84\x38\x86\xf6\xe8\x7a\x85\x06\x07\xca\x1b\xd9\x5f\x27\xfe\x9a\x62\xfc\x45\xad\xf3\x82\x6a\x9d\x29\xea\xa2\xa8\x8b\xa2\x2e\x8a\xba\x58\x3a\x56\x3d\x45\x06\x2e\x1d\x59\x80\xe5\x6f\xc8\x80\xc2\x8f\x89\x2c\xc1\xd2\x1d\xed\x21\xcc\xbb\x5a\xae\xa3\x8e\x1d\xbc\x7a\xae\xf1\xc0\xc6\x2b\x1d\x07\xed\x83\x07\x6c\xbc\xe2\xff\x78\xab\xf1\x6a\x30\xdf\xcb\x6b\x44\xaa\x9b\x35\xf4\xaa\xbe\x0c\x5c\xbd\x70\xf5\x1a\xc1\xd5\xab\x65\x0c\x52\x62\xed\x35\x2f\xba\x8e\xbf\x17\x1b\xbc\xcb\x03\xec\xf8\x7b\xf5\x39\x6e\xf0\xf7\x62\x05\xc1\x0a\x62\xbe\x26\x5f\xbd\xad\x21\x86\x71\xfa\x6a\xbd\xbd\x54\x62\xf7\x35\xaf\xe0\x8e\xd4\x49\x22\xbb\x85\x45\x76\x06\x05\x50\xbc\xe7\xd3\x4f\x48\x9d\x5c\x5e\x84\x32\x9c\x05\xd8\x60\xe9\x87\xcf\xbe\xbb\x7f\x92\xd6\x6e\x67\xd9\x8f\x4f\x2a\x81\x63\x0c\x2b\xb0\x3f\xd4\x55\xdc\xa6\x57\x71\x62\x2a\xe2\xc1\x0e\xac\xee\x44\x24\x26\xa2\xbb\x85\xee\x16\xba\x5b\xe8\x6e\xa1\xbb\x35\xca\x92\x85\x95\x65\xeb\x8e\xc2\x12\xcc\x24\x79\x34\xd2\xe4\x17\x94\x26\x8f\x16\x1e\x5a\x78\x68\xe1\xa1\x85\x87\x16\x1e\x5a\x78\x68\xe1\x51\x3d\x46\xf5\x18\xd5\x63\x54\x8f\x15\x47\x24\x96\x60\x08\x6f\x22\xbc\x89\xf0\xe6\xc4\x85\x37\x4b\x89\x1d\x40\x1f\x4b\xb0\x89\x58\x82\xd5\xf0\xde\xf1\xeb\x44\xeb\x6d\xc1\x4e\x60\xde\xc7\xd6\x60\x7d\x70\x6e\xec\xc1\xb0\x07\xd3\x1f\x61\x0f\x46\x9a\x02\x69\x0a\xa4\x29\x90\xa6\x40\x9a\x02\xfc\x1b\x24\xda\xdc\x22\x20\x51\x90\x28\x48\x14\x24\x0a\x12\x5d\x30\x12\x85\x52\x40\x29\xa0\x14\x50\x0a\xec\xc1\xb0\x07\xc3\x1e\x2c\xfd\xe4\xe4\xfa\xca\xe2\x66\x3e\x16\x61\xc3\xf9\x3c\xf4\x09\x90\xb0\x09\xeb\xc5\x26\xec\x04\x30\x56\x66\x15\x36\x5e\x09\xe8\x60\x9a\x17\x47\xb7\xd8\x6e\xb2\xa0\x3a\x69\x06\xd5\x49\xe8\x5e\xa0\x7b\x51\x72\x31\xd3\x89\x6e\xa6\xa5\x7d\xd1\xfd\xea\x8d\x50\xae\xef\x7a\xf9\x73\x0c\x2b\x87\xb4\x0f\xeb\x21\xac\xbc\x10\x9d\x35\x3c\x86\x76\x11\x7b\xa5\x7c\x07\xa2\x1d\x84\x66\x73\x08\xcd\x28\x93\x5e\x50\x99\x34\xf5\x60\xd4\x83\x51\x0f\x46\x3d\x18\xab\xca\xaa\xa7\xc8\xd0\x55\x25\xeb\x32\xc3\xd6\x65\xc3\xba\x8a\x19\x5d\x31\x52\xe2\x2c\x76\xc2\xda\xea\xd8\x5d\xec\x0c\x65\x22\x38\x8c\xa5\xe3\xa1\x7d\x40\x81\xc3\x58\xfc\x1f\x6f\x3a\x5e\x15\xd3\x70\x19\x1b\x19\x0c\x67\x9d\xc6\xea\x2f\x05\xb7\x31\xdc\xc6\x46\x70\x1b\x3b\x21\x2e\x29\x71\x1c\x9b\x1f\xa4\xc7\x75\x8c\x8d\xe0\xe5\x31\x7a\x5c\xc7\xfa\x1c\x37\xb8\x8e\xb1\xaa\x60\x55\xa1\xff\x79\xae\xce\x63\xbd\xae\x2b\x86\x71\x1f\x3b\x69\x0b\xaa\xc4\x81\x6c\x7e\xc1\x1e\x19\x99\x44\x7b\x0b\x8c\xf6\x0c\x0a\xaa\x78\xf7\xa7\x9f\x90\x91\xd9\xea\xea\x67\x19\xb9\x0c\xe7\x48\x36\x68\x46\xa3\x2a\xe3\xba\xb1\x43\x67\x1d\x38\xcf\x3a\x36\x48\x33\x19\x7b\x87\x6e\x71\xb9\xbf\xb7\x76\x9e\x9d\xf5\xde\x72\xb3\xa5\x83\x56\x2a\xf0\xf1\xfe\xf3\xa7\x0f\xea\x62\x56\x99\xcc\x9d\x1f\xd3\x9c\x9f\x2b\x75\x96\xab\x83\xd4\x53\x4e\xbb\x27\x8d\x92\x84\xe3\x85\x3b\x69\xe5\x36\x37\x8b\x31\xd4\xb7\xe3\xed\xb2\xf4\xc7\xff\x59\x28\x8d\xa2\x94\xcf\x54\x4d\x48\x55\x89\xfa\xf1\x79\xe1\x13\x94\xea\xc4\x21\xeb\xf9\xd2\x27\x65\x60\x5e\x83\x7a\xe2\x8c\xd5\x13\x9b\xe1\x53\x93\x72\x62\xed\x46\x57\x0f\x60\x0d\xbd\x44\xf4\x12\xd1\x4b\x44\x2f\x71\x6e\x7a\x89\xcd\x33\x6f\xa9\x56\xe2\x99\xd3\x18\x06\x53\x48\x6c\xbe\xfd\x6a\x75\x44\x93\xdb\xe0\x14\x4d\xc4\xe6\x36\xa8\xd6\x43\x3c\x73\x1b\xa0\x82\x88\x0a\x22\x2a\x88\xa8\x20\xa2\x82\x78\x36\x15\xc4\x16\xb3\xff\x91\x02\x62\x6d\x09\xe0\x82\xb2\x18\xdb\xdd\xcd\x8c\x55\x1c\x9b\x9b\xbb\x4e\xc1\x71\xd8\x76\x47\xb7\xf1\x2c\x3d\x7a\xac\xd9\x78\xe6\x6e\x1d\x55\xa9\xb1\xb9\x79\x6a\x54\x1a\xcf\x3d\x6d\x9a\xaa\xcd\xd8\xdc\x68\x25\x20\xa3\xf3\x7e\x5e\xfc\xd7\x9f\xdd\x61\x58\x89\xba\xc7\x99\x98\x58\x16\x84\x79\xc9\xcb\x3e\xf1\x2f\xea\x17\x88\xbd\x39\x04\xf7\x6a\x01\x13\x07\x82\xd1\xfa\xe0\xb0\x6a\xb9\xca\xad\x76\x33\xe7\xee\x8a\xd3\x40\x69\xa0\xb4\x49\xa1\x34\x30\x1a\x18\x0d\x8c\x06\x46\x03\xa3\x81\xd1\xc0\x68\x60\x34\x30\x1a\x18\x0d\x8c\x06\x46\x03\xa3\x81\xd1\xc0\x68\x60\xb4\x29\x61\xb4\xac\xc4\x49\xc5\x7e\x03\xda\x26\x50\xc1\xf1\x19\x12\x54\x10\x2a\x08\x15\x84\x0a\x16\x1a\xcd\x10\x2a\xe8\xf9\x6b\x69\x48\x81\xdc\x2f\xfe\x5a\x8e\x54\x1e\x17\xfd\x34\xc5\x71\x10\xbd\xc9\x11\xbd\x81\x8b\xe3\xa2\xe7\x04\xa6\x07\xd3\x83\xe9\xc1\xf4\x60\x7a\x30\x3d\x98\x1e\x4c\xaf\xcf\xd9\x16\xa6\x07\xd3\x83\xe9\xc1\xf4\x60\x7a\x30\x3d\x98\xde\xe2\x98\x1e\x10\x0c\x08\x06\x04\x9b\x46\x8f\x02\xc1\xf2\xcd\x03\x04\x9b\x38\x04\x33\xa7\x30\xae\x37\x10\x36\x74\x59\x5c\x01\x0f\x80\xd0\x40\x68\x85\xb3\x1a\x88\xd0\xc0\x67\xe0\x33\xf0\x19\xf8\x0c\x7c\x06\x3e\x03\x9f\x81\xcf\xc0\x67\xe0\x33\xf0\x19\xf8\x0c\x7c\x06\x3e\x03\x9f\x81\xcf\xa6\x83\xcf\x0a\x25\x71\xc7\xbb\x0d\x14\xc4\xc1\x02\xc7\x27\x47\xb0\x40\x58\x20\x2c\x10\x16\x58\x68\x34\x13\x58\x60\xfc\xa1\xed\x5a\x61\x68\x44\x59\x5c\x8c\xd8\xde\x47\x17\x34\x46\x6d\x5c\xf6\xf7\x29\x90\x83\xee\x4d\x8e\xee\x0d\x59\x20\x97\x7d\x58\xc0\x7c\x60\x3e\x30\x1f\x98\x0f\xcc\x07\xe6\x03\xf3\x81\xf9\xfa\x9c\x6d\xc1\x7c\x60\x3e\x30\x1f\x98\x0f\xcc\x07\xe6\x03\xf3\x2d\x0e\xf3\x41\xc6\x20\x63\x90\xb1\x69\xf4\x28\x64\x2c\xdf\x3c\x90\xb1\x59\x90\x31\x43\x6a\xe5\x7a\xa7\x63\x83\x16\xcc\x55\xe0\x02\xb8\x1a\x5c\xad\x70\x56\x03\xb9\x1a\x4c\x0d\xa6\x06\x53\x83\xa9\xc1\xd4\x60\x6a\x30\x35\x98\x1a\x4c\x0d\xa6\x06\x53\x83\xa9\xc1\xd4\x60\x6a\x30\x35\x98\xda\xc4\x98\x5a\xb6\x74\xae\x7a\xcb\x81\xfa\x39\x28\xe1\xf8\x4c\x09\x4a\x08\x25\x84\x12\x42\x09\x0b\x8d\x66\x02\x25\x7c\xf6\xdd\xfd\x93\xb4\x76\x3b\xcb\x7e\x8c\x82\x65\x13\x4a\xe8\xfe\x50\xd7\x74\x9b\x5e\xd3\x18\x65\x74\xc5\x6b\xa0\x94\x0e\xe4\x37\x39\xe4\x37\x64\x29\x5d\xf1\x81\x01\xfd\x81\xfe\x40\x7f\xa0\x3f\xd0\x1f\xe8\x0f\xf4\x07\xfa\xeb\x73\xb6\x05\xfd\x81\xfe\x40\x7f\xa0\x3f\xd0\x1f\xe8\x0f\xf4\xb7\x38\xf4\x07\x28\x03\x94\x01\xca\xa6\xd1\xa3\x80\xb2\x7c\xf3\x00\xca\xe6\x02\xca\x0c\xa9\xa8\x3b\x0b\x2c\x1b\xb4\xaa\xae\x86\x1c\x80\xd9\xc0\x6c\x85\xb3\x1a\x88\xd9\x40\x6c\x20\x36\x10\x1b\x88\x0d\xc4\x06\x62\x03\xb1\x81\xd8\x40\x6c\x20\x36\x10\x1b\x88\x0d\xc4\x06\x62\x03\xb1\x81\xd8\x26\x88\xd8\xb2\xd5\x75\xf5\xdb\x0e\x54\xd8\x01\x0e\xc7\xc7\x4c\x80\x43\xc0\x21\xe0\x10\x70\x58\x68\xb4\xf3\x83\x43\xd7\xdf\x84\x37\xb5\x0c\xb0\x00\xc0\x5c\x7f\xf3\x93\xe3\xca\x7f\x3a\xe1\xee\xff\xb7\xbc\xb5\x9b\xeb\xae\x6a\xf2\x63\x2a\x3c\x89\xee\x3f\xf3\xed\x8b\xec\x2f\xe6\x1b\xe9\x7f\x5d\x7f\x13\x85\x09\xf5\xc4\xb4\xbc\xb5\x66\xdc\x52\xaf\x21\x32\x51\x73\x26\xcf\xa2\xeb\x6f\x4e\x0b\xcc\xe2\xee\x38\x7f\x6c\x56\xfe\xe0\xc4\xef\x91\xfa\x67\xa7\x8a\x9f\x1f\xe1\xdf\xd2\x5e\x28\xb4\xd6\x46\x26\x3b\xb9\xeb\x34\x12\xaa\x21\xd5\x1b\xb9\x7b\xef\xaf\x4b\x02\x8c\xf6\x50\xba\xf4\xaa\x0c\x85\xbb\x71\x83\xac\x3e\x79\x0f\xfe\xd4\x89\x6e\xd2\xb9\x55\xf3\xd2\x45\xfc\xa3\x97\xa1\xb4\xf7\x81\xb3\x7b\x49\x4f\x90\x0e\xc5\xbf\x4b\x2b\x90\xc1\xef\xfe\x57\x19\xdd\xc5\xff\xfd\x33\x3d\xf0\xcf\xdc\x81\x1f\x0e\x2d\x9b\xb6\x44\xe1\xd8\xf4\x94\x85\x86\xd1\xdf\x12\xea\x6b\x22\x6a\x23\xbd\x5b\xb0\xcb\x0e\xb6\xf8\x21\x7e\x94\xd6\x3a\x33\xfb\x1d\x90\x5c\xdc\xb2\x85\x83\x92\x07\xd5\xda\x3a\xff\x47\xbe\x5c\x16\xef\xf9\x9b\xb5\x89\x82\x84\x1f\xc5\xe5\xbb\xd5\xff\x77\x79\xf1\xef\x8b\xff\x17\x00\x00\xff\xff\xf9\x93\x29\x3e\x29\xd8\x46\x00") - -func kubernetesapiV1191SwaggerJsonBytes() ([]byte, error) { - return bindataRead( - _kubernetesapiV1191SwaggerJson, - "kubernetesapi/v1191/swagger.json", - ) -} - -func kubernetesapiV1191SwaggerJson() (*asset, error) { - bytes, err := kubernetesapiV1191SwaggerJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "kubernetesapi/v1191/swagger.json", size: 4642857, mode: os.FileMode(420), modTime: time.Unix(1605140461, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -// Asset loads and returns the asset for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func Asset(name string) ([]byte, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) - } - return a.bytes, nil - } - return nil, fmt.Errorf("Asset %s not found", name) -} - -// MustAsset is like Asset but panics when Asset would return an error. -// It simplifies safe initialization of global variables. -func MustAsset(name string) []byte { - a, err := Asset(name) - if err != nil { - panic("asset: Asset(" + name + "): " + err.Error()) - } - - return a -} - -// AssetInfo loads and returns the asset info for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func AssetInfo(name string) (os.FileInfo, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) - } - return a.info, nil - } - return nil, fmt.Errorf("AssetInfo %s not found", name) -} - -// AssetNames returns the names of the assets. -func AssetNames() []string { - names := make([]string, 0, len(_bindata)) - for name := range _bindata { - names = append(names, name) - } - return names -} - -// _bindata is a table, holding each asset generator, mapped to its name. -var _bindata = map[string]func() (*asset, error){ - "kubernetesapi/v1191/swagger.json": kubernetesapiV1191SwaggerJson, -} - -// AssetDir returns the file names below a certain -// directory embedded in the file by go-bindata. -// For example if you run go-bindata on data/... and data contains the -// following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png -// then AssetDir("data") would return []string{"foo.txt", "img"} -// AssetDir("data/img") would return []string{"a.png", "b.png"} -// AssetDir("foo.txt") and AssetDir("notexist") would return an error -// AssetDir("") will return []string{"data"}. -func AssetDir(name string) ([]string, error) { - node := _bintree - if len(name) != 0 { - cannonicalName := strings.Replace(name, "\\", "/", -1) - pathList := strings.Split(cannonicalName, "/") - for _, p := range pathList { - node = node.Children[p] - if node == nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - } - } - if node.Func != nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - rv := make([]string, 0, len(node.Children)) - for childName := range node.Children { - rv = append(rv, childName) - } - return rv, nil -} - -type bintree struct { - Func func() (*asset, error) - Children map[string]*bintree -} - -var _bintree = &bintree{nil, map[string]*bintree{ - "kubernetesapi": &bintree{nil, map[string]*bintree{ - "v1191": &bintree{nil, map[string]*bintree{ - "swagger.json": &bintree{kubernetesapiV1191SwaggerJson, map[string]*bintree{}}, - }}, - }}, -}} - -// RestoreAsset restores an asset under the given directory -func RestoreAsset(dir, name string) error { - data, err := Asset(name) - if err != nil { - return err - } - info, err := AssetInfo(name) - if err != nil { - return err - } - err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) - if err != nil { - return err - } - err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) - if err != nil { - return err - } - err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) - if err != nil { - return err - } - return nil -} - -// RestoreAssets restores an asset under the given directory recursively -func RestoreAssets(dir, name string) error { - children, err := AssetDir(name) - // File - if err != nil { - return RestoreAsset(dir, name) - } - // Dir - for _, child := range children { - err = RestoreAssets(dir, filepath.Join(name, child)) - if err != nil { - return err - } - } - return nil -} - -func _filePath(dir, name string) string { - cannonicalName := strings.Replace(name, "\\", "/", -1) - return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) -} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1191/swagger.json b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1191/swagger.json deleted file mode 100644 index 0e8d6ac744..0000000000 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1191/swagger.json +++ /dev/null @@ -1,92486 +0,0 @@ -{ - "definitions": { - "io.k8s.api.admissionregistration.v1.MutatingWebhook": { - "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "reinvocationPolicy": { - "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - "type": "string" - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig", - "sideEffects", - "admissionReviewVersions" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration": { - "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList": { - "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of MutatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfigurationList", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scope": { - "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "`name` is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "`namespace` is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "`path` is an optional URL path which will be sent in any request to this service.", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhook": { - "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig", - "sideEffects", - "admissionReviewVersions" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration": { - "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList": { - "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of ValidatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfigurationList", - "version": "v1" - } - ] - }, - "io.k8s.api.admissionregistration.v1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "properties": { - "caBundle": { - "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ServiceReference", - "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhook": { - "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "reinvocationPolicy": { - "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - "type": "string" - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration": { - "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList": { - "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of MutatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scope": { - "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "`name` is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "`namespace` is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "`path` is an optional URL path which will be sent in any request to this service.", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook": { - "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - "properties": { - "admissionReviewVersions": { - "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "clientConfig": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - "type": "string" - }, - "matchPolicy": { - "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." - }, - "objectSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" - }, - "type": "array" - }, - "sideEffects": { - "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - "type": "string" - }, - "timeoutSeconds": { - "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "name", - "clientConfig" - ], - "type": "object" - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration": { - "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList": { - "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - "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" - }, - "items": { - "description": "List of ValidatingWebhookConfiguration.", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "properties": { - "caBundle": { - "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ServiceReference", - "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.ControllerRevision": { - "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", - "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" - }, - "data": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", - "description": "Data is the serialized representation of the state." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "revision": { - "description": "Revision indicates the revision of the state represented by Data.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "revision" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ControllerRevisionList": { - "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", - "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" - }, - "items": { - "description": "Items is the list of ControllerRevisions", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevisionList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSet": { - "description": "DaemonSet represents the configuration of a daemon set.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec", - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus", - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetCondition": { - "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of DaemonSet condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetList": { - "description": "DaemonSetList is a collection of daemon sets.", - "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" - }, - "items": { - "description": "A list of daemon sets.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetSpec": { - "description": "DaemonSetSpec is the specification of a daemon set.", - "properties": { - "minReadySeconds": { - "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - }, - "updateStrategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy", - "description": "An update strategy to replace existing DaemonSet pods with new pods." - } - }, - "required": [ - "selector", - "template" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetStatus": { - "description": "DaemonSetStatus represents the current status of a daemon set.", - "properties": { - "collisionCount": { - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a DaemonSet's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentNumberScheduled": { - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "desiredNumberScheduled": { - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "numberAvailable": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "format": "int32", - "type": "integer" - }, - "numberMisscheduled": { - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "format": "int32", - "type": "integer" - }, - "numberReady": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - "format": "int32", - "type": "integer" - }, - "numberUnavailable": { - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "The most recent generation observed by the daemon set controller.", - "format": "int64", - "type": "integer" - }, - "updatedNumberScheduled": { - "description": "The total number of nodes that are running updated daemon pod", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DaemonSetUpdateStrategy": { - "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet", - "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." - }, - "type": { - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.Deployment": { - "description": "Deployment enables declarative updates for Pods and ReplicaSets.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentSpec", - "description": "Specification of the desired behavior of the Deployment." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStatus", - "description": "Most recently observed status of the Deployment." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentCondition": { - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time this condition was updated." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of deployment condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentList": { - "description": "DeploymentList is a list of Deployments.", - "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" - }, - "items": { - "description": "Items is the list of Deployments.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DeploymentList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentSpec": { - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "paused": { - "description": "Indicates that the deployment is paused.", - "type": "boolean" - }, - "progressDeadlineSeconds": { - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels." - }, - "strategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStrategy", - "description": "The deployment strategy to use to replace existing pods with new ones.", - "x-kubernetes-patch-strategy": "retainKeys" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template describes the pods that will be created." - } - }, - "required": [ - "selector", - "template" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentStatus": { - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "availableReplicas": { - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - "format": "int32", - "type": "integer" - }, - "collisionCount": { - "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a deployment's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "observedGeneration": { - "description": "The generation observed by the deployment controller.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "Total number of ready pods targeted by this deployment.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - "format": "int32", - "type": "integer" - }, - "unavailableReplicas": { - "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - "format": "int32", - "type": "integer" - }, - "updatedReplicas": { - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.DeploymentStrategy": { - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment", - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." - }, - "type": { - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSet": { - "description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec", - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus", - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetCondition": { - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replica set condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSetList": { - "description": "ReplicaSetList is a collection of ReplicaSets.", - "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" - }, - "items": { - "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetSpec": { - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - } - }, - "required": [ - "selector" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.ReplicaSetStatus": { - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a replica set's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replica set.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateDaemonSet": { - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateDeployment": { - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxSurge": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods." - }, - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy": { - "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - "properties": { - "partition": { - "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSet": { - "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetSpec", - "description": "Spec defines the desired identities of pods in this set." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetStatus", - "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetCondition": { - "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of statefulset condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetList": { - "description": "StatefulSetList is a collection of StatefulSets.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetSpec": { - "description": "A StatefulSetSpec is the specification of a StatefulSet.", - "properties": { - "podManagementPolicy": { - "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - "type": "string" - }, - "replicas": { - "description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - "format": "int32", - "type": "integer" - }, - "revisionHistoryLimit": { - "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "serviceName": { - "description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - "type": "string" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet." - }, - "updateStrategy": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy", - "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template." - }, - "volumeClaimTemplates": { - "description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "type": "array" - } - }, - "required": [ - "selector", - "template", - "serviceName" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetStatus": { - "description": "StatefulSetStatus represents the current state of a StatefulSet.", - "properties": { - "collisionCount": { - "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a statefulset's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentReplicas": { - "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - "format": "int32", - "type": "integer" - }, - "currentRevision": { - "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - "type": "string" - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "replicas is the number of Pods created by the StatefulSet controller.", - "format": "int32", - "type": "integer" - }, - "updateRevision": { - "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", - "type": "string" - }, - "updatedReplicas": { - "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.apps.v1.StatefulSetUpdateStrategy": { - "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - "properties": { - "rollingUpdate": { - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy", - "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType." - }, - "type": { - "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus", - "description": "Status is filled in by the server and indicates whether the request can be authenticated." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authentication.v1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - "items": { - "type": "string" - }, - "type": "array" - }, - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - "items": { - "type": "string" - }, - "type": "array" - }, - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", - "description": "User is the UserInfo associated with the provided token." - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Any additional information provided by the authenticator.", - "type": "object" - }, - "groups": { - "description": "The names of groups this user is a part of.", - "items": { - "type": "string" - }, - "type": "array" - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus", - "description": "Status is filled in by the server and indicates whether the request can be authenticated." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authentication.v1beta1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - "items": { - "type": "string" - }, - "type": "array" - }, - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "audiences": { - "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - "items": { - "type": "string" - }, - "type": "array" - }, - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.UserInfo", - "description": "User is the UserInfo associated with the provided token." - } - }, - "type": "object" - }, - "io.k8s.api.authentication.v1beta1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Any additional information provided by the authenticator.", - "type": "object" - }, - "groups": { - "description": "The names of groups this user is a part of.", - "items": { - "type": "string" - }, - "type": "array" - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "properties": { - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. user and groups must be empty" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec", - "description": "Spec holds information about the request being evaluated." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus", - "description": "Status is filled in by the server and indicates the set of actions a user can perform." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object" - }, - "groups": { - "description": "Groups is the groups you're testing for.", - "items": { - "type": "string" - }, - "type": "array" - }, - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - }, - "required": [ - "allowed" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceRule" - }, - "type": "array" - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceRule" - }, - "type": "array" - } - }, - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "properties": { - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "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. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated. user and groups must be empty" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec", - "description": "Spec holds information about the request being evaluated." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus", - "description": "Status is filled in by the server and indicates the set of actions a user can perform." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", - "description": "Spec holds information about the request being evaluated" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "description": "Status is filled in by the server and indicates whether the request is allowed or not" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object" - }, - "group": { - "description": "Groups is the groups you're testing for.", - "items": { - "type": "string" - }, - "type": "array" - }, - "nonResourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", - "description": "NonResourceAttributes describes information for a non-resource access request" - }, - "resourceAttributes": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", - "description": "ResourceAuthorizationAttributes describes information for a resource access request" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - }, - "required": [ - "allowed" - ], - "type": "object" - }, - "io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceRule" - }, - "type": "array" - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceRule" - }, - "type": "array" - } - }, - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler": { - "description": "configuration of a horizontal pod autoscaler.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec", - "description": "behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus", - "description": "current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList": { - "description": "list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec": { - "description": "specification of a horizontal pod autoscaler.", - "properties": { - "maxReplicas": { - "description": "upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.", - "format": "int32", - "type": "integer" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference", - "description": "reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource." - }, - "targetCPUUtilizationPercentage": { - "description": "target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus": { - "description": "current status of a horizontal pod autoscaler", - "properties": { - "currentCPUUtilizationPercentage": { - "description": "current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.", - "format": "int32", - "type": "integer" - }, - "currentReplicas": { - "description": "current number of replicas of pods managed by this autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desired number of replicas of pods managed by this autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v1.Scale": { - "description": "Scale represents a scaling request for a resource.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec", - "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus", - "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.ScaleSpec": { - "description": "ScaleSpec describes the attributes of a scale subresource.", - "properties": { - "replicas": { - "description": "desired number of instances for the scaled object.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v1.ScaleStatus": { - "description": "ScaleStatus represents the current status of a scale subresource.", - "properties": { - "replicas": { - "description": "actual number of observed instances of the scaled object.", - "format": "int32", - "type": "integer" - }, - "selector": { - "description": "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors", - "type": "string" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricSource": { - "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one \"target\" type should be set.", - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "metricSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "metricSelector is used to identify a specific time series within a given metric." - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue." - }, - "targetValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue." - } - }, - "required": [ - "metricName" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus": { - "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - "properties": { - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of metric averaged over autoscaled pods." - }, - "currentValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentValue is the current value of the metric (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of a metric used for autoscaling in metric system.", - "type": "string" - }, - "metricSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "metricSelector is used to identify a specific time series within a given metric." - } - }, - "required": [ - "metricName", - "currentValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler": { - "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec", - "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus", - "description": "status is the current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition": { - "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the last time the condition transitioned from one status to another" - }, - "message": { - "description": "message is a human-readable explanation containing details about the transition", - "type": "string" - }, - "reason": { - "description": "reason is the reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition (True, False, Unknown)", - "type": "string" - }, - "type": { - "description": "type describes the current condition", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList": { - "description": "HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "items is the list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "metadata is the standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec": { - "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - "properties": { - "maxReplicas": { - "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - "format": "int32", - "type": "integer" - }, - "metrics": { - "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricSpec" - }, - "type": "array" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus": { - "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - "properties": { - "conditions": { - "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition" - }, - "type": "array" - }, - "currentMetrics": { - "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricStatus" - }, - "type": "array" - }, - "currentReplicas": { - "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas", - "conditions" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.MetricSpec": { - "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricSource", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricSource", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricSource", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricSource", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.MetricStatus": { - "description": "MetricStatus describes the last-read state of a single metric.", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricStatus", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricSource": { - "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "target is the described Kubernetes object." - }, - "targetValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetValue is the target value of the metric (as a quantity)." - } - }, - "required": [ - "target", - "metricName", - "targetValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus": { - "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "currentValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentValue is the current value of the metric (as a quantity)." - }, - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", - "description": "target is the described Kubernetes object." - } - }, - "required": [ - "target", - "metricName", - "currentValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricSource": { - "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - } - }, - "required": [ - "metricName", - "targetAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricStatus": { - "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - "properties": { - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - } - }, - "required": [ - "metricName", - "currentAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricSource": { - "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "properties": { - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - }, - "targetAverageUtilization": { - "description": "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - "format": "int32", - "type": "integer" - }, - "targetAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus": { - "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "properties": { - "currentAverageUtilization": { - "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", - "format": "int32", - "type": "integer" - }, - "currentAverageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification." - }, - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - } - }, - "required": [ - "name", - "currentAverageValue" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "properties": { - "apiVersion": { - "description": "API version of the referent", - "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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ExternalMetricSource": { - "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - "properties": { - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "metric", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus": { - "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy": { - "description": "HPAScalingPolicy is a single policy which must hold true for a specified past interval.", - "properties": { - "periodSeconds": { - "description": "PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "Type is used to specify the scaling policy.", - "type": "string" - }, - "value": { - "description": "Value contains the amount of change which is permitted by the policy. It must be greater than zero", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "type", - "value", - "periodSeconds" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HPAScalingRules": { - "description": "HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.", - "properties": { - "policies": { - "description": "policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy" - }, - "type": "array" - }, - "selectPolicy": { - "description": "selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.", - "type": "string" - }, - "stabilizationWindowSeconds": { - "description": "StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler": { - "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec", - "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus", - "description": "status is the current information about the autoscaler." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - ] - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior": { - "description": "HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).", - "properties": { - "scaleDown": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", - "description": "scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used)." - }, - "scaleUp": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", - "description": "scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\n * increase no more than 4 pods per 60 seconds\n * double the number of pods per 60 seconds\nNo stabilization is used." - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition": { - "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the last time the condition transitioned from one status to another" - }, - "message": { - "description": "message is a human-readable explanation containing details about the transition", - "type": "string" - }, - "reason": { - "description": "reason is the reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition (True, False, Unknown)", - "type": "string" - }, - "type": { - "description": "type describes the current condition", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList": { - "description": "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.", - "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" - }, - "items": { - "description": "items is the list of horizontal pod autoscaler objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "metadata is the standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v2beta2" - } - ] - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec": { - "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - "properties": { - "behavior": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior", - "description": "behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used." - }, - "maxReplicas": { - "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - "format": "int32", - "type": "integer" - }, - "metrics": { - "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricSpec" - }, - "type": "array" - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - "format": "int32", - "type": "integer" - }, - "scaleTargetRef": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference", - "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." - } - }, - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus": { - "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - "properties": { - "conditions": { - "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition" - }, - "type": "array" - }, - "currentMetrics": { - "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricStatus" - }, - "type": "array" - }, - "currentReplicas": { - "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "desiredReplicas": { - "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - "format": "int32", - "type": "integer" - }, - "lastScaleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed by this autoscaler.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "currentReplicas", - "desiredReplicas", - "conditions" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricIdentifier": { - "description": "MetricIdentifier defines the name and optionally selector for a metric", - "properties": { - "name": { - "description": "name is the name of the given metric", - "type": "string" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricSpec": { - "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricSource", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricSource", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricSource", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricSource", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricStatus": { - "description": "MetricStatus describes the last-read state of a single metric.", - "properties": { - "external": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus", - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." - }, - "object": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus", - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." - }, - "pods": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricStatus", - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." - }, - "resource": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus", - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." - }, - "type": { - "description": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricTarget": { - "description": "MetricTarget defines the target value, average value, or average utilization of a specific metric", - "properties": { - "averageUtilization": { - "description": "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type", - "format": "int32", - "type": "integer" - }, - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" - }, - "type": { - "description": "type represents whether the metric type is Utilization, Value, or AverageValue", - "type": "string" - }, - "value": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "value is the target value of the metric (as a quantity)." - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.MetricValueStatus": { - "description": "MetricValueStatus holds the current value for a metric", - "properties": { - "averageUtilization": { - "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - "format": "int32", - "type": "integer" - }, - "averageValue": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" - }, - "value": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "value is the current value of the metric (as a quantity)." - } - }, - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ObjectMetricSource": { - "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "describedObject": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "describedObject", - "target", - "metric" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus": { - "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "describedObject": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current", - "describedObject" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.PodsMetricSource": { - "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "properties": { - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "metric", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.PodsMetricStatus": { - "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "metric": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", - "description": "metric identifies the target metric by name and selector" - } - }, - "required": [ - "metric", - "current" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ResourceMetricSource": { - "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "properties": { - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", - "description": "target specifies the target value for the given metric" - } - }, - "required": [ - "name", - "target" - ], - "type": "object" - }, - "io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus": { - "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "properties": { - "current": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", - "description": "current contains the current value for the given metric" - }, - "name": { - "description": "Name is the name of the resource in question.", - "type": "string" - } - }, - "required": [ - "name", - "current" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.Job": { - "description": "Job represents the configuration of a single job.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", - "description": "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobStatus", - "description": "Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "Job", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobCondition": { - "description": "JobCondition describes current state of a job.", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition was checked." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transit from one status to another." - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of job condition, Complete or Failed.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.JobList": { - "description": "JobList is a collection of jobs.", - "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" - }, - "items": { - "description": "items is the list of Jobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "JobList", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobSpec": { - "description": "JobSpec describes how the job execution will look like.", - "properties": { - "activeDeadlineSeconds": { - "description": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", - "format": "int64", - "type": "integer" - }, - "backoffLimit": { - "description": "Specifies the number of retries before marking this job failed. Defaults to 6", - "format": "int32", - "type": "integer" - }, - "completions": { - "description": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "format": "int32", - "type": "integer" - }, - "manualSelector": { - "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", - "type": "boolean" - }, - "parallelism": { - "description": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) \u003c .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "format": "int32", - "type": "integer" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/" - }, - "ttlSecondsAfterFinished": { - "description": "ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "template" - ], - "type": "object" - }, - "io.k8s.api.batch.v1.JobStatus": { - "description": "JobStatus represents the current state of a Job.", - "properties": { - "active": { - "description": "The number of actively running pods.", - "format": "int32", - "type": "integer" - }, - "completionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC." - }, - "conditions": { - "description": "The latest available observations of an object's current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "failed": { - "description": "The number of pods which reached phase Failed.", - "format": "int32", - "type": "integer" - }, - "startTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job was acknowledged by the job controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC." - }, - "succeeded": { - "description": "The number of pods which reached phase Succeeded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.batch.v1beta1.CronJob": { - "description": "CronJob represents the configuration of a single cron job.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobSpec", - "description": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobStatus", - "description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobList": { - "description": "CronJobList is a collection of cron jobs.", - "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" - }, - "items": { - "description": "items is the list of CronJobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJobList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobSpec": { - "description": "CronJobSpec describes how the job execution will look like and when it will actually run.", - "properties": { - "concurrencyPolicy": { - "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", - "type": "string" - }, - "failedJobsHistoryLimit": { - "description": "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "format": "int32", - "type": "integer" - }, - "jobTemplate": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.JobTemplateSpec", - "description": "Specifies the job that will be created when executing a CronJob." - }, - "schedule": { - "description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", - "type": "string" - }, - "startingDeadlineSeconds": { - "description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - "format": "int64", - "type": "integer" - }, - "successfulJobsHistoryLimit": { - "description": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.", - "format": "int32", - "type": "integer" - }, - "suspend": { - "description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", - "type": "boolean" - } - }, - "required": [ - "schedule", - "jobTemplate" - ], - "type": "object" - }, - "io.k8s.api.batch.v1beta1.CronJobStatus": { - "description": "CronJobStatus represents the current state of a cron job.", - "properties": { - "active": { - "description": "A list of pointers to currently running jobs.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array" - }, - "lastScheduleTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Information when was the last time the job was successfully scheduled." - } - }, - "type": "object" - }, - "io.k8s.api.batch.v1beta1.JobTemplateSpec": { - "description": "JobTemplateSpec describes the data a Job should have when created from a template", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", - "description": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object" - }, - "io.k8s.api.certificates.v1.CertificateSigningRequest": { - "description": "CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.\n\nKubelets use this API to obtain:\n 1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName).\n 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName).\n\nThis API can be used to request client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client\" signerName), or to obtain certificates from custom non-Kubernetes signers.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestSpec", - "description": "spec contains the certificate request, and is immutable after creation. Only the request, signerName, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestStatus", - "description": "status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - ] - }, - "io.k8s.api.certificates.v1.CertificateSigningRequestCondition": { - "description": "CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time." - }, - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastUpdateTime is the time of the last update to this condition" - }, - "message": { - "description": "message contains a human readable message with details about the request state", - "type": "string" - }, - "reason": { - "description": "reason indicates a brief reason for the request state", - "type": "string" - }, - "status": { - "description": "status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".", - "type": "string" - }, - "type": { - "description": "type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n\nAn \"Approved\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer.\n\nA \"Denied\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer.\n\nA \"Failed\" condition is added via the /status subresource, indicating the signer failed to issue the certificate.\n\nApproved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added.\n\nOnly one condition of a given type is allowed.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1.CertificateSigningRequestList": { - "description": "CertificateSigningRequestList is a collection of CertificateSigningRequest objects", - "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" - }, - "items": { - "description": "items is a collection of CertificateSigningRequest objects", - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequestList", - "version": "v1" - } - ] - }, - "io.k8s.api.certificates.v1.CertificateSigningRequestSpec": { - "description": "CertificateSigningRequestSpec contains the certificate request.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - "type": "object" - }, - "groups": { - "description": "groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "request": { - "description": "request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "signerName": { - "description": "signerName indicates the requested signer, and is a qualified name.\n\nList/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector.\n\nWell-known Kubernetes signers are:\n 1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver.\n Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver.\n Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\n Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\nMore details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\n\nCustom signerNames can also be specified. The signer defines:\n 1. Trust distribution: how trust (CA bundles) are distributed.\n 2. Permitted subjects: and behavior when a disallowed subject is requested.\n 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\n 4. Required, permitted, or forbidden key usages / extended key usages.\n 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\n 6. Whether or not requests for CA certificates are allowed.", - "type": "string" - }, - "uid": { - "description": "uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - "type": "string" - }, - "usages": { - "description": "usages specifies a set of key usages requested in the issued certificate.\n\nRequests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\".\n\nRequests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\".\n\nValid values are:\n \"signing\", \"digital signature\", \"content commitment\",\n \"key encipherment\", \"key agreement\", \"data encipherment\",\n \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\",\n \"server auth\", \"client auth\",\n \"code signing\", \"email protection\", \"s/mime\",\n \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\",\n \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "username": { - "description": "username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - "type": "string" - } - }, - "required": [ - "request", - "signerName" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1.CertificateSigningRequestStatus": { - "description": "CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.", - "properties": { - "certificate": { - "description": "certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable.\n\nIf the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty.\n\nValidation requirements:\n 1. certificate must contain one or more PEM blocks.\n 2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data\n must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\n 3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated,\n to allow for explanatory text as described in section 5.2 of RFC7468.\n\nIf more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\n\nThe certificate is encoded in PEM format.\n\nWhen serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\n\n base64(\n -----BEGIN CERTIFICATE-----\n ...\n -----END CERTIFICATE-----\n )", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "conditions": { - "description": "conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".", - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestCondition" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "type" - ], - "x-kubernetes-list-type": "map" - } - }, - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequest": { - "description": "Describes a certificate signing request", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec", - "description": "The certificate request itself and any additional information." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus", - "description": "Derived information about the request." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition": { - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time." - }, - "lastUpdateTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "timestamp for the last update to this condition" - }, - "message": { - "description": "human readable message with details about the request state", - "type": "string" - }, - "reason": { - "description": "brief reason for the request state", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\". Defaults to \"True\". If unset, should be treated as \"True\".", - "type": "string" - }, - "type": { - "description": "type of the condition. Known conditions include \"Approved\", \"Denied\", and \"Failed\".", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestList": { - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequestList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec": { - "description": "This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.", - "properties": { - "extra": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "Extra information about the requesting user. See user.Info interface for details.", - "type": "object" - }, - "groups": { - "description": "Group information about the requesting user. See user.Info interface for details.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "request": { - "description": "Base64-encoded PKCS#10 CSR data", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "signerName": { - "description": "Requested signer for the request. It is a qualified name in the form: `scope-hostname.io/name`. If empty, it will be defaulted:\n 1. If it's a kubelet client certificate, it is assigned\n \"kubernetes.io/kube-apiserver-client-kubelet\".\n 2. If it's a kubelet serving certificate, it is assigned\n \"kubernetes.io/kubelet-serving\".\n 3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\nDistribution of trust for signers happens out of band. You can select on this field using `spec.signerName`.", - "type": "string" - }, - "uid": { - "description": "UID information about the requesting user. See user.Info interface for details.", - "type": "string" - }, - "usages": { - "description": "allowedUsages specifies a set of usage contexts the key will be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3\n https://tools.ietf.org/html/rfc5280#section-4.2.1.12\nValid values are:\n \"signing\",\n \"digital signature\",\n \"content commitment\",\n \"key encipherment\",\n \"key agreement\",\n \"data encipherment\",\n \"cert sign\",\n \"crl sign\",\n \"encipher only\",\n \"decipher only\",\n \"any\",\n \"server auth\",\n \"client auth\",\n \"code signing\",\n \"email protection\",\n \"s/mime\",\n \"ipsec end system\",\n \"ipsec tunnel\",\n \"ipsec user\",\n \"timestamping\",\n \"ocsp signing\",\n \"microsoft sgc\",\n \"netscape sgc\"", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "username": { - "description": "Information about the requesting user. See user.Info interface for details.", - "type": "string" - } - }, - "required": [ - "request" - ], - "type": "object" - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus": { - "properties": { - "certificate": { - "description": "If request was approved, the controller will place the issued certificate here.", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "conditions": { - "description": "Conditions applied to the request, such as approval or denial.", - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "type" - ], - "x-kubernetes-list-type": "map" - } - }, - "type": "object" - }, - "io.k8s.api.coordination.v1.Lease": { - "description": "Lease defines a lease concept.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseSpec", - "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - ] - }, - "io.k8s.api.coordination.v1.LeaseList": { - "description": "LeaseList is a list of Lease objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "LeaseList", - "version": "v1" - } - ] - }, - "io.k8s.api.coordination.v1.LeaseSpec": { - "description": "LeaseSpec is a specification of a Lease.", - "properties": { - "acquireTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "acquireTime is a time when the current lease was acquired." - }, - "holderIdentity": { - "description": "holderIdentity contains the identity of the holder of a current lease.", - "type": "string" - }, - "leaseDurationSeconds": { - "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - "format": "int32", - "type": "integer" - }, - "leaseTransitions": { - "description": "leaseTransitions is the number of transitions of a lease between holders.", - "format": "int32", - "type": "integer" - }, - "renewTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "renewTime is a time when the current holder of a lease has last updated the lease." - } - }, - "type": "object" - }, - "io.k8s.api.coordination.v1beta1.Lease": { - "description": "Lease defines a lease concept.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseSpec", - "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.coordination.v1beta1.LeaseList": { - "description": "LeaseList is a list of Lease objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "coordination.k8s.io", - "kind": "LeaseList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.coordination.v1beta1.LeaseSpec": { - "description": "LeaseSpec is a specification of a Lease.", - "properties": { - "acquireTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "acquireTime is a time when the current lease was acquired." - }, - "holderIdentity": { - "description": "holderIdentity contains the identity of the holder of a current lease.", - "type": "string" - }, - "leaseDurationSeconds": { - "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - "format": "int32", - "type": "integer" - }, - "leaseTransitions": { - "description": "leaseTransitions is the number of transitions of a lease between holders.", - "format": "int32", - "type": "integer" - }, - "renewTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "renewTime is a time when the current holder of a lease has last updated the lease." - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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).", - "format": "int32", - "type": "integer" - }, - "readOnly": { - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "boolean" - }, - "volumeID": { - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Affinity": { - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity", - "description": "Describes node affinity scheduling rules for the pod." - }, - "podAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity", - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." - }, - "podAntiAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity", - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.AttachedVolume": { - "description": "AttachedVolume describes a volume attached to a node", - "properties": { - "devicePath": { - "description": "DevicePath represents the device path where the volume should be available", - "type": "string" - }, - "name": { - "description": "Name of the attached volume", - "type": "string" - } - }, - "required": [ - "name", - "devicePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureDiskVolumeSource": { - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "properties": { - "cachingMode": { - "description": "Host Caching mode: None, Read Only, Read Write.", - "type": "string" - }, - "diskName": { - "description": "The Name of the data disk in the blob storage", - "type": "string" - }, - "diskURI": { - "description": "The URI the data disk in the blob storage", - "type": "string" - }, - "fsType": { - "description": "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": "Expected values 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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - } - }, - "required": [ - "diskName", - "diskURI" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "secretNamespace": { - "description": "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - }, - "required": [ - "secretName", - "shareName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.AzureFileVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - }, - "required": [ - "secretName", - "shareName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Binding": { - "description": "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "target": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The target object that you want to bind to the standard object." - } - }, - "required": [ - "target" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Binding", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.CSIPersistentVolumeSource": { - "description": "Represents storage that is managed by an external CSI volume driver (Beta feature)", - "properties": { - "controllerExpandSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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 is an alpha field and requires enabling ExpandCSIVolumes feature gate. 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." - }, - "controllerPublishSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "driver": { - "description": "Driver is the name of the driver to use for this volume. Required.", - "type": "string" - }, - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".", - "type": "string" - }, - "nodePublishSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "nodeStageSecretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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." - }, - "readOnly": { - "description": "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "Attributes of the volume to publish.", - "type": "object" - }, - "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" - } - }, - "required": [ - "driver", - "volumeHandle" - ], - "type": "object" - }, - "io.k8s.api.core.v1.CSIVolumeSource": { - "description": "Represents a source location of a volume to mount, managed by an external CSI 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": "Filesystem type 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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "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." - }, - "readOnly": { - "description": "Specifies a read-only configuration for the volume. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - "type": "object" - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Capabilities": { - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "description": "Added capabilities", - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "description": "Removed capabilities", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "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" - }, - "user": { - "description": "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" - } - }, - "required": [ - "monitors" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "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" - }, - "user": { - "description": "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" - } - }, - "required": [ - "monitors" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - "type": "string" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ClientIPConfig": { - "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", - "properties": { - "timeoutSeconds": { - "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ComponentCondition": { - "description": "Information about the condition of a component.", - "properties": { - "error": { - "description": "Condition error code for a component. For example, a health check error code.", - "type": "string" - }, - "message": { - "description": "Message about the condition for a component. For example, information about a health check.", - "type": "string" - }, - "status": { - "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".", - "type": "string" - }, - "type": { - "description": "Type of condition for a component. Valid value: \"Healthy\"", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ComponentStatus": { - "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+", - "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" - }, - "conditions": { - "description": "List of component conditions observed", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ComponentStatusList": { - "description": "Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+", - "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" - }, - "items": { - "description": "List of ComponentStatus objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatusList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMap": { - "description": "ConfigMap holds configuration data for pods to consume.", - "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" - }, - "binaryData": { - "additionalProperties": { - "format": "byte", - "type": "string" - }, - "description": "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.", - "type": "object" - }, - "data": { - "additionalProperties": { - "type": "string" - }, - "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.", - "type": "object" - }, - "immutable": { - "description": "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is a beta field enabled by ImmutableEphemeralVolumes feature gate.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapEnvSource": { - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "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 must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ConfigMapKeySelector": { - "description": "Selects a key from a ConfigMap.", - "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" - } - }, - "required": [ - "key" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ConfigMapList": { - "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", - "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" - }, - "items": { - "description": "Items is the list of ConfigMaps.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMapList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapNodeConfigSource": { - "description": "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.", - "properties": { - "kubeletConfigKey": { - "description": "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.", - "type": "string" - }, - "name": { - "description": "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "resourceVersion": { - "description": "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - }, - "uid": { - "description": "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - } - }, - "required": [ - "namespace", - "name", - "kubeletConfigKey" - ], - "type": "object" - }, - "io.k8s.api.core.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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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 keys must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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 keys must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Container": { - "description": "A single application container that you want to run within a pod.", - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - }, - "type": "array" - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." - }, - "livenessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "name": { - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", - "type": "string" - }, - "ports": { - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "containerPort", - "protocol" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "containerPort", - "x-kubernetes-patch-strategy": "merge" - }, - "readinessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "startupProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeDevices": { - "description": "volumeDevices is the list of block devices to be used by the container.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerImage": { - "description": "Describe a container image", - "properties": { - "names": { - "description": "Names by which this image is known. e.g. [\"k8s.gcr.io/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]", - "items": { - "type": "string" - }, - "type": "array" - }, - "sizeBytes": { - "description": "The size of the image in bytes.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "names" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ContainerPort": { - "description": "ContainerPort represents a network port in a single container.", - "properties": { - "containerPort": { - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536.", - "format": "int32", - "type": "integer" - }, - "hostIP": { - "description": "What host IP to bind the external port to.", - "type": "string" - }, - "hostPort": { - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", - "format": "int32", - "type": "integer" - }, - "name": { - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", - "type": "string" - }, - "protocol": { - "description": "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".", - "type": "string" - } - }, - "required": [ - "containerPort" - ], - "type": "object" - }, - "io.k8s.api.core.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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning", - "description": "Details about a running container" - }, - "terminated": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated", - "description": "Details about a terminated container" - }, - "waiting": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting", - "description": "Details about a waiting container" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStateRunning": { - "description": "ContainerStateRunning is a running state of a container.", - "properties": { - "startedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which the container was last (re-)started" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStateTerminated": { - "description": "ContainerStateTerminated is a terminated state of a container.", - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'", - "type": "string" - }, - "exitCode": { - "description": "Exit status from the last termination of the container", - "format": "int32", - "type": "integer" - }, - "finishedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which the container last terminated" - }, - "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", - "format": "int32", - "type": "integer" - }, - "startedAt": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time at which previous execution of the container started" - } - }, - "required": [ - "exitCode" - ], - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ContainerStatus": { - "description": "ContainerStatus contains details for the current status of this container.", - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'.", - "type": "string" - }, - "image": { - "description": "The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images", - "type": "string" - }, - "imageID": { - "description": "ImageID of the container's image.", - "type": "string" - }, - "lastState": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", - "description": "Details about the container's last termination condition." - }, - "name": { - "description": "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.", - "type": "string" - }, - "ready": { - "description": "Specifies whether the container has passed its readiness probe.", - "type": "boolean" - }, - "restartCount": { - "description": "The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.", - "format": "int32", - "type": "integer" - }, - "started": { - "description": "Specifies whether the container has 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. Is always true when no startupProbe is defined.", - "type": "boolean" - }, - "state": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", - "description": "Details about the container's current condition." - } - }, - "required": [ - "name", - "ready", - "restartCount", - "image", - "imageID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.DaemonEndpoint": { - "description": "DaemonEndpoint contains information about a single Daemon endpoint.", - "properties": { - "Port": { - "description": "Port number of the given endpoint.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "Port" - ], - "type": "object" - }, - "io.k8s.api.core.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", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.DownwardAPIVolumeFile": { - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "properties": { - "fieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." - }, - "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.", - "format": "int32", - "type": "integer" - }, - "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "Items is a list of downward API volume file", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EmptyDirVolumeSource": { - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "description": "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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "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: http://kubernetes.io/docs/user-guide/volumes#emptydir" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EndpointAddress": { - "description": "EndpointAddress is a tuple that describes single IP address.", - "properties": { - "hostname": { - "description": "The Hostname of this endpoint", - "type": "string" - }, - "ip": { - "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.", - "type": "string" - }, - "nodeName": { - "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.", - "type": "string" - }, - "targetRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Reference to object providing the endpoint." - } - }, - "required": [ - "ip" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EndpointPort": { - "description": "EndpointPort is a tuple that describes a single port.", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. This is a beta field that is guarded by the ServiceAppProtocol feature gate and enabled by default.", - "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.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - "type": "string" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EndpointSubset": { - "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309 ]", - "properties": { - "addresses": { - "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - }, - "type": "array" - }, - "notReadyAddresses": { - "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - }, - "type": "array" - }, - "ports": { - "description": "Port numbers available on the related IP addresses.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Endpoints": { - "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "subsets": { - "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EndpointsList": { - "description": "EndpointsList is a list of endpoints.", - "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" - }, - "items": { - "description": "List of endpoints.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EndpointsList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EnvFromSource": { - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "configMapRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource", - "description": "The ConfigMap to select from" - }, - "prefix": { - "description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - "type": "string" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource", - "description": "The Secret to select from" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EnvVar": { - "description": "EnvVar represents an environment variable present in a Container.", - "properties": { - "name": { - "description": "Name of the environment variable. Must be a C_IDENTIFIER.", - "type": "string" - }, - "value": { - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", - "type": "string" - }, - "valueFrom": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource", - "description": "Source for the environment variable's value. Cannot be used if value is not empty." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EnvVarSource": { - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "configMapKeyRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector", - "description": "Selects a key of a ConfigMap." - }, - "fieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", - "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." - }, - "resourceFieldRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", - "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." - }, - "secretKeyRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector", - "description": "Selects a key of a secret in the pod's namespace" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EphemeralContainer": { - "description": "An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag.", - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - }, - "type": "array" - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", - "description": "Lifecycle is not allowed for ephemeral containers." - }, - "livenessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "name": { - "description": "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.", - "type": "string" - }, - "ports": { - "description": "Ports are not allowed for ephemeral containers.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "type": "array" - }, - "readinessProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", - "description": "SecurityContext is not allowed for ephemeral containers." - }, - "startupProbe": { - "$ref": "#/definitions/io.k8s.api.core.v1.Probe", - "description": "Probes are not allowed for ephemeral containers." - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "targetContainerName": { - "description": "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container is run in whatever namespaces are shared for the pod. Note that the container runtime must support this feature.", - "type": "string" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeDevices": { - "description": "volumeDevices is the list of block devices to be used by the container.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.EphemeralVolumeSource": { - "description": "Represents an ephemeral volume that is handled by a normal storage driver.", - "properties": { - "readOnly": { - "description": "Specifies a read-only configuration for the volume. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeClaimTemplate": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimTemplate", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Event": { - "description": "Event is a report of an event somewhere in the cluster.", - "properties": { - "action": { - "description": "What action was taken/failed regarding to the Regarding object.", - "type": "string" - }, - "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" - }, - "count": { - "description": "The number of times this event has occurred.", - "format": "int32", - "type": "integer" - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time when this Event was first observed." - }, - "firstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)" - }, - "involvedObject": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "The object that this event is about." - }, - "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" - }, - "lastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The time at which the most recent occurrence of this event was recorded." - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "reason": { - "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", - "type": "string" - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "Optional secondary object for more complex actions." - }, - "reportingComponent": { - "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", - "type": "string" - }, - "reportingInstance": { - "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSeries", - "description": "Data about the Event series this event represents or nil if it's a singleton Event." - }, - "source": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "The component reporting this event. Should be a short machine understandable string." - }, - "type": { - "description": "Type of this event (Normal, Warning), new types could be added in the future", - "type": "string" - } - }, - "required": [ - "metadata", - "involvedObject" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Event", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventList": { - "description": "EventList is a list of events.", - "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" - }, - "items": { - "description": "List of events", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EventList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "properties": { - "count": { - "description": "Number of occurrences in this series up to the last heartbeat time", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "Time of the last occurrence observed" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.EventSource": { - "description": "EventSource contains information for an event.", - "properties": { - "component": { - "description": "Component from which the event is generated.", - "type": "string" - }, - "host": { - "description": "Node name on which the event is generated.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "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": "Optional: FC target lun number", - "format": "int32", - "type": "integer" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "targetWWNs": { - "description": "Optional: FC target worldwide names (WWNs)", - "items": { - "type": "string" - }, - "type": "array" - }, - "wwids": { - "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.FlexPersistentVolumeSource": { - "description": "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.", - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional: Extra command options if any.", - "type": "object" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "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." - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.v1.FlexVolumeSource": { - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional: Extra command options if any.", - "type": "object" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "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." - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.core.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": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated", - "type": "string" - }, - "datasetUUID": { - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "fsType": { - "description": "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": "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", - "format": "int32", - "type": "integer" - }, - "pdName": { - "description": "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" - } - }, - "required": [ - "pdName" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "directory": { - "description": "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 URL", - "type": "string" - }, - "revision": { - "description": "Commit hash for the specified revision.", - "type": "string" - } - }, - "required": [ - "repository" - ], - "type": "object" - }, - "io.k8s.api.core.v1.GlusterfsPersistentVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "properties": { - "endpoints": { - "description": "EndpointsName 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" - } - }, - "required": [ - "endpoints", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.GlusterfsVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "properties": { - "endpoints": { - "description": "EndpointsName 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" - } - }, - "required": [ - "endpoints", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.HTTPGetAction": { - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" - }, - "type": "array" - }, - "path": { - "description": "Path to access on the HTTP server.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "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." - }, - "scheme": { - "description": "Scheme to use for connecting to the host. Defaults to HTTP.", - "type": "string" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.HTTPHeader": { - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "properties": { - "name": { - "description": "The header field name", - "type": "string" - }, - "value": { - "description": "The header field value", - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Handler": { - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.HostAlias": { - "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", - "properties": { - "hostnames": { - "description": "Hostnames for the above IP address.", - "items": { - "type": "string" - }, - "type": "array" - }, - "ip": { - "description": "IP address of the host file entry.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.HostPathVolumeSource": { - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "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": "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": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "format": "int32", - "type": "integer" - }, - "portals": { - "description": "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).", - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "CHAP Secret for iSCSI target and initiator authentication" - }, - "targetPortal": { - "description": "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" - } - }, - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "type": "object" - }, - "io.k8s.api.core.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.", - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "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": "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": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "format": "int32", - "type": "integer" - }, - "portals": { - "description": "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).", - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "CHAP Secret for iSCSI target and initiator authentication" - }, - "targetPortal": { - "description": "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" - } - }, - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "type": "object" - }, - "io.k8s.api.core.v1.KeyToPath": { - "description": "Maps a string key to a path within a volume.", - "properties": { - "key": { - "description": "The key to project.", - "type": "string" - }, - "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.", - "format": "int32", - "type": "integer" - }, - "path": { - "description": "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" - } - }, - "required": [ - "key", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Lifecycle": { - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "$ref": "#/definitions/io.k8s.api.core.v1.Handler", - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - }, - "preStop": { - "$ref": "#/definitions/io.k8s.api.core.v1.Handler", - "description": "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LimitRange": { - "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec", - "description": "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeItem": { - "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", - "properties": { - "default": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Default resource requirement limit value by resource name if resource limit is omitted.", - "type": "object" - }, - "defaultRequest": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.", - "type": "object" - }, - "max": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Max usage constraints on this kind by resource name.", - "type": "object" - }, - "maxLimitRequestRatio": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.", - "type": "object" - }, - "min": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Min usage constraints on this kind by resource name.", - "type": "object" - }, - "type": { - "description": "Type of resource that this limit applies to.", - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "io.k8s.api.core.v1.LimitRangeList": { - "description": "LimitRangeList is a list of LimitRange items.", - "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" - }, - "items": { - "description": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRangeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeSpec": { - "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", - "properties": { - "limits": { - "description": "Limits is the list of LimitRangeItem objects that are enforced.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" - }, - "type": "array" - } - }, - "required": [ - "limits" - ], - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerIngress": { - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "hostname": { - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", - "type": "string" - }, - "ip": { - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LoadBalancerStatus": { - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.LocalVolumeSource": { - "description": "Local represents directly-attached storage with node affinity (Beta feature)", - "properties": { - "fsType": { - "description": "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 fileystem if unspecified.", - "type": "string" - }, - "path": { - "description": "The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).", - "type": "string" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NFSVolumeSource": { - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "server", - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Namespace": { - "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec", - "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus", - "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Namespace", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceCondition": { - "description": "NamespaceCondition contains details about state of namespace.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of namespace controller condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NamespaceList": { - "description": "NamespaceList is a list of Namespaces.", - "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" - }, - "items": { - "description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NamespaceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceSpec": { - "description": "NamespaceSpec describes the attributes on a Namespace.", - "properties": { - "finalizers": { - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NamespaceStatus": { - "description": "NamespaceStatus is information about the current status of a Namespace.", - "properties": { - "conditions": { - "description": "Represents the latest available observations of a namespace's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "phase": { - "description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Node": { - "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec", - "description": "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus", - "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Node", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeAddress": { - "description": "NodeAddress contains information for the node's address.", - "properties": { - "address": { - "description": "The node address.", - "type": "string" - }, - "type": { - "description": "Node address type, one of Hostname, ExternalIP or InternalIP.", - "type": "string" - } - }, - "required": [ - "type", - "address" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeAffinity": { - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeCondition": { - "description": "NodeCondition contains condition information for a node.", - "properties": { - "lastHeartbeatTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we got an update on a given condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transit from one status to another." - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of node condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeConfigSource": { - "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", - "properties": { - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource", - "description": "ConfigMap is a reference to a Node's ConfigMap" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeConfigStatus": { - "description": "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.", - "properties": { - "active": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error." - }, - "assigned": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned." - }, - "error": { - "description": "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.", - "type": "string" - }, - "lastKnownGood": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeDaemonEndpoints": { - "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", - "properties": { - "kubeletEndpoint": { - "$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint", - "description": "Endpoint on which Kubelet is listening." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeList": { - "description": "NodeList is the whole list of all Nodes which have been registered with master.", - "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" - }, - "items": { - "description": "List of nodes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NodeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeSelector": { - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "properties": { - "nodeSelectorTerms": { - "description": "Required. A list of node selector terms. The terms are ORed.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" - }, - "type": "array" - } - }, - "required": [ - "nodeSelectorTerms" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeSelectorRequirement": { - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "operator": { - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - "type": "string" - }, - "values": { - "description": "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "operator" - ], - "type": "object" - }, - "io.k8s.api.core.v1.NodeSelectorTerm": { - "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.", - "properties": { - "matchExpressions": { - "description": "A list of node selector requirements by node's labels.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - }, - "type": "array" - }, - "matchFields": { - "description": "A list of node selector requirements by node's fields.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeSpec": { - "description": "NodeSpec describes the attributes that a node is created with.", - "properties": { - "configSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", - "description": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field" - }, - "externalID": { - "description": "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966", - "type": "string" - }, - "podCIDR": { - "description": "PodCIDR represents the pod IP range assigned to the node.", - "type": "string" - }, - "podCIDRs": { - "description": "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-patch-strategy": "merge" - }, - "providerID": { - "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e", - "type": "string" - }, - "taints": { - "description": "If specified, the node's taints.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Taint" - }, - "type": "array" - }, - "unschedulable": { - "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeStatus": { - "description": "NodeStatus is information about the current status of a node.", - "properties": { - "addresses": { - "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See http://pr.k8s.io/79391 for an example.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "allocatable": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.", - "type": "object" - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object" - }, - "conditions": { - "description": "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "config": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigStatus", - "description": "Status of the config assigned to the node via the dynamic Kubelet config feature." - }, - "daemonEndpoints": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints", - "description": "Endpoints of daemons running on the Node." - }, - "images": { - "description": "List of container images on this node", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" - }, - "type": "array" - }, - "nodeInfo": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo", - "description": "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info" - }, - "phase": { - "description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", - "type": "string" - }, - "volumesAttached": { - "description": "List of volumes that are attached to the node.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume" - }, - "type": "array" - }, - "volumesInUse": { - "description": "List of attachable volumes in use (mounted) by the node.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.NodeSystemInfo": { - "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", - "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. docker://1.5.0).", - "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" - } - }, - "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion", - "operatingSystem", - "architecture" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ObjectFieldSelector": { - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "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" - } - }, - "required": [ - "fieldPath" - ], - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolume": { - "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus", - "description": "Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaim": { - "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", - "description": "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus", - "description": "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { - "description": "PersistentVolumeClaimCondition contails details about state of pvc", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized.", - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimList": { - "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", - "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" - }, - "items": { - "description": "A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaimList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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", - "items": { - "type": "string" - }, - "type": "array" - }, - "dataSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot - Beta) * An existing PVC (PersistentVolumeClaim) * An existing custom resource/object that implements data population (Alpha) In order to use VolumeSnapshot object types, the appropriate feature gate must be enabled (VolumeSnapshotDataSource or AnyVolumeDataSource) 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. If the specified data source is not supported, the volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change." - }, - "resources": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", - "description": "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over volumes to consider for binding." - }, - "storageClassName": { - "description": "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { - "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", - "properties": { - "accessModes": { - "description": "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - "items": { - "type": "string" - }, - "type": "array" - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Represents the actual resources of the underlying volume.", - "type": "object" - }, - "conditions": { - "description": "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "phase": { - "description": "Phase represents the current phase of PersistentVolumeClaim.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": { - "description": "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "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." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", - "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." - } - }, - "required": [ - "spec" - ], - "type": "object" - }, - "io.k8s.api.core.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).", - "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": "Will force the ReadOnly setting in VolumeMounts. Default false.", - "type": "boolean" - } - }, - "required": [ - "claimName" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeList": { - "description": "PersistentVolumeList is a list of PersistentVolume items.", - "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" - }, - "items": { - "description": "List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeSpec": { - "description": "PersistentVolumeSpec is the specification of a persistent volume.", - "properties": { - "accessModes": { - "description": "AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", - "items": { - "type": "string" - }, - "type": "array" - }, - "awsElasticBlockStore": { - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", - "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" - }, - "azureDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "azureFile": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "capacity": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object" - }, - "cephfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "cinder": { - "$ref": "#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" - }, - "claimRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding" - }, - "csi": { - "$ref": "#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource", - "description": "CSI represents storage that is handled by an external CSI driver (Beta feature)." - }, - "fc": { - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flexVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." - }, - "flocker": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", - "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" - }, - "gcePersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", - "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" - }, - "glusterfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource", - "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" - }, - "hostPath": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", - "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" - }, - "iscsi": { - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource", - "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." - }, - "local": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalVolumeSource", - "description": "Local represents directly-attached storage with node affinity" - }, - "mountOptions": { - "description": "A list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", - "items": { - "type": "string" - }, - "type": "array" - }, - "nfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" - }, - "nodeAffinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity", - "description": "NodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume." - }, - "persistentVolumeReclaimPolicy": { - "description": "What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", - "type": "string" - }, - "photonPersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "rbd": { - "$ref": "#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource", - "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" - }, - "scaleIO": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "storageClassName": { - "description": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", - "type": "string" - }, - "storageos": { - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource", - "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" - }, - "volumeMode": { - "description": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.", - "type": "string" - }, - "vsphereVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PersistentVolumeStatus": { - "description": "PersistentVolumeStatus is the current status of a persistent volume.", - "properties": { - "message": { - "description": "A human-readable message indicating details about why the volume is in this state.", - "type": "string" - }, - "phase": { - "description": "Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase", - "type": "string" - }, - "reason": { - "description": "Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { - "description": "Represents a Photon Controller persistent disk resource.", - "properties": { - "fsType": { - "description": "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": "ID that identifies Photon Controller persistent disk", - "type": "string" - } - }, - "required": [ - "pdID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Pod": { - "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodStatus", - "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Pod", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodAffinity": { - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodAffinityTerm": { - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "A label query over a set of resources, in this case pods." - }, - "namespaces": { - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - "type": "string" - } - }, - "required": [ - "topologyKey" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodAntiAffinity": { - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "type": "array" - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodCondition": { - "description": "PodCondition contains details for the current condition of this pod.", - "properties": { - "lastProbeTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodDNSConfig": { - "description": "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.", - "properties": { - "nameservers": { - "description": "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "options": { - "description": "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfigOption" - }, - "type": "array" - }, - "searches": { - "description": "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodDNSConfigOption": { - "description": "PodDNSConfigOption defines DNS resolver options of a pod.", - "properties": { - "name": { - "description": "Required.", - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodIP": { - "description": "IP address information for entries in the (plural) PodIPs field. Each entry includes:\n IP: An IP address allocated to the pod. Routable at least within the cluster.", - "properties": { - "ip": { - "description": "ip is an IP address (IPv4 or IPv6) assigned to the pod", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodList": { - "description": "PodList is a list of Pods.", - "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" - }, - "items": { - "description": "List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodReadinessGate": { - "description": "PodReadinessGate contains the reference to a pod condition", - "properties": { - "conditionType": { - "description": "ConditionType refers to a condition in the pod's condition list with matching type.", - "type": "string" - } - }, - "required": [ - "conditionType" - ], - "type": "object" - }, - "io.k8s.api.core.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----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.", - "format": "int64", - "type": "integer" - }, - "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 defaults to \"Always\".", - "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.", - "format": "int64", - "type": "integer" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "seccompProfile": { - "$ref": "#/definitions/io.k8s.api.core.v1.SeccompProfile", - "description": "The seccomp options to use by the containers in this pod." - }, - "supplementalGroups": { - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", - "items": { - "format": "int64", - "type": "integer" - }, - "type": "array" - }, - "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Sysctl" - }, - "type": "array" - }, - "windowsOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodSpec": { - "description": "PodSpec is a description of a pod.", - "properties": { - "activeDeadlineSeconds": { - "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", - "format": "int64", - "type": "integer" - }, - "affinity": { - "$ref": "#/definitions/io.k8s.api.core.v1.Affinity", - "description": "If specified, the pod's scheduling constraints" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", - "type": "boolean" - }, - "containers": { - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "dnsConfig": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig", - "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy." - }, - "dnsPolicy": { - "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", - "type": "string" - }, - "enableServiceLinks": { - "description": "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.", - "type": "boolean" - }, - "ephemeralContainers": { - "description": "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralContainer" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "hostAliases": { - "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "hostIPC": { - "description": "Use the host's ipc namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostNetwork": { - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.", - "type": "boolean" - }, - "hostPID": { - "description": "Use the host's pid namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostname": { - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", - "type": "string" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "initContainers": { - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "nodeName": { - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.", - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", - "type": "object" - }, - "overhead": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.", - "type": "object" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", - "type": "string" - }, - "priority": { - "description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", - "format": "int32", - "type": "integer" - }, - "priorityClassName": { - "description": "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", - "type": "string" - }, - "readinessGates": { - "description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodReadinessGate" - }, - "type": "array" - }, - "restartPolicy": { - "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", - "type": "string" - }, - "runtimeClassName": { - "description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.", - "type": "string" - }, - "schedulerName": { - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", - "type": "string" - }, - "securityContext": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext", - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." - }, - "serviceAccount": { - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", - "type": "string" - }, - "serviceAccountName": { - "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "type": "string" - }, - "setHostnameAsFQDN": { - "description": "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.", - "type": "boolean" - }, - "shareProcessNamespace": { - "description": "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.", - "type": "boolean" - }, - "subdomain": { - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all.", - "type": "string" - }, - "terminationGracePeriodSeconds": { - "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. 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. Defaults to 30 seconds.", - "format": "int64", - "type": "integer" - }, - "tolerations": { - "description": "If specified, the pod's tolerations.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - }, - "type": "array" - }, - "topologySpreadConstraints": { - "description": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "topologyKey", - "whenUnsatisfiable" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "topologyKey", - "x-kubernetes-patch-strategy": "merge" - }, - "volumes": { - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Volume" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge,retainKeys" - } - }, - "required": [ - "containers" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PodStatus": { - "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.", - "properties": { - "conditions": { - "description": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "containerStatuses": { - "description": "The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "ephemeralContainerStatuses": { - "description": "Status for any ephemeral containers that have run in this pod. This field is alpha-level and is only populated by servers that enable the EphemeralContainers feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "hostIP": { - "description": "IP address of the host to which the pod is assigned. Empty if not yet scheduled.", - "type": "string" - }, - "initContainerStatuses": { - "description": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "type": "array" - }, - "message": { - "description": "A human readable message indicating details about why the pod is in this condition.", - "type": "string" - }, - "nominatedNodeName": { - "description": "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.", - "type": "string" - }, - "phase": { - "description": "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", - "type": "string" - }, - "podIP": { - "description": "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", - "type": "string" - }, - "podIPs": { - "description": "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodIP" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "qosClass": { - "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md", - "type": "string" - }, - "reason": { - "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", - "type": "string" - }, - "startTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PodTemplate": { - "description": "PodTemplate describes a template for creating copies of a predefined pod.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateList": { - "description": "PodTemplateList is a list of PodTemplates.", - "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" - }, - "items": { - "description": "List of pod templates", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplateList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateSpec": { - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.PortworxVolumeSource": { - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "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": "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" - } - }, - "required": [ - "volumeID" - ], - "type": "object" - }, - "io.k8s.api.core.v1.PreferredSchedulingTerm": { - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "properties": { - "preference": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm", - "description": "A node selector term, associated with the corresponding weight." - }, - "weight": { - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "weight", - "preference" - ], - "type": "object" - }, - "io.k8s.api.core.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": { - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "failureThreshold": { - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - "format": "int32", - "type": "integer" - }, - "httpGet": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "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", - "format": "int32", - "type": "integer" - }, - "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - "format": "int32", - "type": "integer" - }, - "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.", - "format": "int32", - "type": "integer" - }, - "tcpSocket": { - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - }, - "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", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ProjectedVolumeSource": { - "description": "Represents a projected volume source", - "properties": { - "defaultMode": { - "description": "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.", - "format": "int32", - "type": "integer" - }, - "sources": { - "description": "list of volume projections", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" - }, - "type": "array" - } - }, - "required": [ - "sources" - ], - "type": "object" - }, - "io.k8s.api.core.v1.QuobyteVolumeSource": { - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "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" - } - }, - "required": [ - "registry", - "volume" - ], - "type": "object" - }, - "io.k8s.api.core.v1.RBDPersistentVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "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" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - }, - "required": [ - "monitors", - "image" - ], - "type": "object" - }, - "io.k8s.api.core.v1.RBDVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "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" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - }, - "required": [ - "monitors", - "image" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationController": { - "description": "ReplicationController represents the configuration of a replication controller.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec", - "description": "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus", - "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerCondition": { - "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "The last time the condition transitioned from one status to another." - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replication controller condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationControllerList": { - "description": "ReplicationControllerList is a collection of replication controllers.", - "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" - }, - "items": { - "description": "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationControllerList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerSpec": { - "description": "ReplicationControllerSpec is the specification of a replication controller.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "description": "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "type": "object" - }, - "template": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ReplicationControllerStatus": { - "description": "ReplicationControllerStatus represents the current status of a replication controller.", - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller.", - "format": "int32", - "type": "integer" - }, - "conditions": { - "description": "Represents the latest available observations of a replication controller's current state.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replication controller.", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed replication controller.", - "format": "int64", - "type": "integer" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replication controller.", - "format": "int32", - "type": "integer" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "replicas" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ResourceFieldSelector": { - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "properties": { - "containerName": { - "description": "Container name: required for volumes, optional for env vars", - "type": "string" - }, - "divisor": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", - "description": "Specifies the output format of the exposed resources, defaults to \"1\"" - }, - "resource": { - "description": "Required: resource to select", - "type": "string" - } - }, - "required": [ - "resource" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ResourceQuota": { - "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec", - "description": "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus", - "description": "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaList": { - "description": "ResourceQuotaList is a list of ResourceQuota items.", - "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" - }, - "items": { - "description": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuotaList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaSpec": { - "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - "properties": { - "hard": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object" - }, - "scopeSelector": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScopeSelector", - "description": "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched." - }, - "scopes": { - "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ResourceQuotaStatus": { - "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", - "properties": { - "hard": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object" - }, - "used": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Used is the current observed total usage of the resource in the namespace.", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ResourceRequirements": { - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object" - }, - "requests": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { - "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", - "properties": { - "fsType": { - "description": "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": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - }, - "required": [ - "gateway", - "system", - "secretRef" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ScaleIOVolumeSource": { - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "properties": { - "fsType": { - "description": "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": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - }, - "required": [ - "gateway", - "system", - "secretRef" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ScopeSelector": { - "description": "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.", - "properties": { - "matchExpressions": { - "description": "A list of scope selector requirements by scope of the resources.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ScopedResourceSelectorRequirement": { - "description": "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.", - "properties": { - "operator": { - "description": "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.", - "type": "string" - }, - "scopeName": { - "description": "The name of the scope that the selector applies to.", - "type": "string" - }, - "values": { - "description": "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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "scopeName", - "operator" - ], - "type": "object" - }, - "io.k8s.api.core.v1.SeccompProfile": { - "description": "SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.", - "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 only be set if type is \"Localhost\".", - "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" - } - }, - "required": [ - "type" - ], - "type": "object", - "x-kubernetes-unions": [ - { - "discriminator": "type", - "fields-to-discriminateBy": { - "localhostProfile": "LocalhostProfile" - } - } - ] - }, - "io.k8s.api.core.v1.Secret": { - "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", - "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" - }, - "data": { - "additionalProperties": { - "format": "byte", - "type": "string" - }, - "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", - "type": "object" - }, - "immutable": { - "description": "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is a beta field enabled by ImmutableEphemeralVolumes feature gate.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "stringData": { - "additionalProperties": { - "type": "string" - }, - "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.", - "type": "object" - }, - "type": { - "description": "Used to facilitate programmatic handling of secret data.", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Secret", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.SecretEnvSource": { - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "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 must be defined", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SecretKeySelector": { - "description": "SecretKeySelector selects a key of a Secret.", - "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" - } - }, - "required": [ - "key" - ], - "type": "object" - }, - "io.k8s.api.core.v1.SecretList": { - "description": "SecretList is a list of Secret.", - "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" - }, - "items": { - "description": "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "SecretList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.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" - } - }, - "type": "object" - }, - "io.k8s.api.core.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": "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.", - "format": "int32", - "type": "integer" - }, - "items": { - "description": "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": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "type": "array" - }, - "optional": { - "description": "Specify whether the Secret or its keys must be defined", - "type": "boolean" - }, - "secretName": { - "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.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", - "type": "boolean" - }, - "capabilities": { - "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities", - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." - }, - "privileged": { - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", - "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.", - "type": "string" - }, - "readOnlyRootFilesystem": { - "description": "Whether this container has a read-only root filesystem. Default is false.", - "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.", - "format": "int64", - "type": "integer" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "seccompProfile": { - "$ref": "#/definitions/io.k8s.api.core.v1.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." - }, - "windowsOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", - "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." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Service": { - "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec", - "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus", - "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Service", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccount": { - "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", - "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" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.", - "type": "boolean" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "secrets": { - "description": "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccountList": { - "description": "ServiceAccountList is a list of ServiceAccount objects", - "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" - }, - "items": { - "description": "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccountList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.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).", - "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.", - "format": "int64", - "type": "integer" - }, - "path": { - "description": "Path is the path relative to the mount point of the file to project the token into.", - "type": "string" - } - }, - "required": [ - "path" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ServiceList": { - "description": "ServiceList holds a list of services.", - "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" - }, - "items": { - "description": "List of services", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServicePort": { - "description": "ServicePort contains information on service's port.", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. This is a beta field that is guarded by the ServiceAppProtocol feature gate and enabled by default.", - "type": "string" - }, - "name": { - "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.", - "type": "string" - }, - "nodePort": { - "description": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", - "format": "int32", - "type": "integer" - }, - "port": { - "description": "The port that will be exposed by this service.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.", - "type": "string" - }, - "targetPort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service" - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.ServiceSpec": { - "description": "ServiceSpec describes the attributes that a user creates on a service.", - "properties": { - "clusterIP": { - "description": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "externalIPs": { - "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", - "items": { - "type": "string" - }, - "type": "array" - }, - "externalName": { - "description": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.", - "type": "string" - }, - "externalTrafficPolicy": { - "description": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", - "type": "string" - }, - "healthCheckNodePort": { - "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.", - "format": "int32", - "type": "integer" - }, - "ipFamily": { - "description": "ipFamily specifies whether this Service has a preference for a particular IP family (e.g. IPv4 vs. IPv6) when the IPv6DualStack feature gate is enabled. In a dual-stack cluster, you can specify ipFamily when creating a ClusterIP Service to determine whether the controller will allocate an IPv4 or IPv6 IP for it, and you can specify ipFamily when creating a headless Service to determine whether it will have IPv4 or IPv6 Endpoints. In either case, if you do not specify an ipFamily explicitly, it will default to the cluster's primary IP family. This field is part of an alpha feature, and you should not make any assumptions about its semantics other than those described above. In particular, you should not assume that it can (or cannot) be changed after creation time; that it can only have the values \"IPv4\" and \"IPv6\"; or that its current value on a given Service correctly reflects the current state of that Service. (For ClusterIP Services, look at clusterIP to see if the Service is IPv4 or IPv6. For headless Services, look at the endpoints, which may be dual-stack in the future. For ExternalName Services, ipFamily has no meaning, but it may be set to an irrelevant value anyway.)", - "type": "string" - }, - "loadBalancerIP": { - "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.", - "type": "string" - }, - "loadBalancerSourceRanges": { - "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/", - "items": { - "type": "string" - }, - "type": "array" - }, - "ports": { - "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "port", - "protocol" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "port", - "x-kubernetes-patch-strategy": "merge" - }, - "publishNotReadyAddresses": { - "description": "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.", - "type": "boolean" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", - "type": "object" - }, - "sessionAffinity": { - "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "sessionAffinityConfig": { - "$ref": "#/definitions/io.k8s.api.core.v1.SessionAffinityConfig", - "description": "sessionAffinityConfig contains the configurations of session affinity." - }, - "topologyKeys": { - "description": "topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value \"*\" may be used to mean \"any topology\". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied.", - "items": { - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.ServiceStatus": { - "description": "ServiceStatus represents the current status of a service.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer, if one is present." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.SessionAffinityConfig": { - "description": "SessionAffinityConfig represents the configurations of session affinity.", - "properties": { - "clientIP": { - "$ref": "#/definitions/io.k8s.api.core.v1.ClientIPConfig", - "description": "clientIP contains the configurations of Client IP based session affinity." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.StorageOSVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.Sysctl": { - "description": "Sysctl defines a kernel parameter to be set", - "properties": { - "name": { - "description": "Name of a property to set", - "type": "string" - }, - "value": { - "description": "Value of a property to set", - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TCPSocketAction": { - "description": "TCPSocketAction describes an action based on opening a socket", - "properties": { - "host": { - "description": "Optional: Host name to connect to, defaults to the pod IP.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "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." - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Taint": { - "description": "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", - "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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints." - }, - "value": { - "description": "The taint value corresponding to the taint key.", - "type": "string" - } - }, - "required": [ - "key", - "effect" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Toleration": { - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "effect": { - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - "type": "string" - }, - "key": { - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - "type": "string" - }, - "operator": { - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - "type": "string" - }, - "tolerationSeconds": { - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - "format": "int64", - "type": "integer" - }, - "value": { - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.TopologySelectorLabelRequirement": { - "description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.", - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "values": { - "description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "values" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TopologySelectorTerm": { - "description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.", - "properties": { - "matchLabelExpressions": { - "description": "A list of topology selector requirements by labels.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.TopologySpreadConstraint": { - "description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology.", - "properties": { - "labelSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain." - }, - "maxSkew": { - "description": "MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - "format": "int32", - "type": "integer" - }, - "topologyKey": { - "description": "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each \u003ckey, value\u003e as a \"bucket\", and try to put balanced number of pods into each bucket. It's a required field.", - "type": "string" - }, - "whenUnsatisfiable": { - "description": "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n but giving higher precedence to topologies that would help reduce the\n skew.\nA constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assigment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - "type": "string" - } - }, - "required": [ - "maxSkew", - "topologyKey", - "whenUnsatisfiable" - ], - "type": "object" - }, - "io.k8s.api.core.v1.TypedLocalObjectReference": { - "description": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.Volume": { - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "properties": { - "awsElasticBlockStore": { - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", - "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" - }, - "azureDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "azureFile": { - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "cephfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "cinder": { - "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" - }, - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource", - "description": "ConfigMap represents a configMap that should populate this volume" - }, - "csi": { - "$ref": "#/definitions/io.k8s.api.core.v1.CSIVolumeSource", - "description": "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." - }, - "downwardAPI": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource", - "description": "DownwardAPI represents downward API about the pod that should populate this volume" - }, - "emptyDir": { - "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource", - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" - }, - "ephemeral": { - "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralVolumeSource", - "description": "Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature). 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." - }, - "fc": { - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flexVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." - }, - "flocker": { - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" - }, - "gcePersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", - "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" - }, - "gitRepo": { - "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource", - "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." - }, - "glusterfs": { - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource", - "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" - }, - "hostPath": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", - "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" - }, - "iscsi": { - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource", - "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" - }, - "name": { - "description": "Volume's name. 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": { - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", - "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" - }, - "persistentVolumeClaim": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "photonPersistentDisk": { - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "projected": { - "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource", - "description": "Items for all in one resources secrets, configmaps, and downward API" - }, - "quobyte": { - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "rbd": { - "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource", - "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" - }, - "scaleIO": { - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "secret": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource", - "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" - }, - "storageos": { - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource", - "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." - }, - "vsphereVolume": { - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeDevice": { - "description": "volumeDevice describes a mapping of a raw block device within a container.", - "properties": { - "devicePath": { - "description": "devicePath is the path inside of the container that the device will be mapped to.", - "type": "string" - }, - "name": { - "description": "name must match the name of a persistentVolumeClaim in the pod", - "type": "string" - } - }, - "required": [ - "name", - "devicePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeMount": { - "description": "VolumeMount describes a mounting of a Volume within a container.", - "properties": { - "mountPath": { - "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", - "type": "string" - }, - "mountPropagation": { - "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - "type": "string" - }, - "name": { - "description": "This must match the Name of a Volume.", - "type": "string" - }, - "readOnly": { - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - "type": "boolean" - }, - "subPath": { - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", - "type": "string" - }, - "subPathExpr": { - "description": "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.", - "type": "string" - } - }, - "required": [ - "name", - "mountPath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.VolumeNodeAffinity": { - "description": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", - "properties": { - "required": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", - "description": "Required specifies hard node constraints that must be met." - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VolumeProjection": { - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "configMap": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection", - "description": "information about the configMap data to project" - }, - "downwardAPI": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection", - "description": "information about the downwardAPI data to project" - }, - "secret": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection", - "description": "information about the secret data to project" - }, - "serviceAccountToken": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection", - "description": "information about the serviceAccountToken data to project" - } - }, - "type": "object" - }, - "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { - "description": "Represents a vSphere volume resource.", - "properties": { - "fsType": { - "description": "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": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - "type": "string" - }, - "storagePolicyName": { - "description": "Storage Policy Based Management (SPBM) profile name.", - "type": "string" - }, - "volumePath": { - "description": "Path that identifies vSphere volume vmdk", - "type": "string" - } - }, - "required": [ - "volumePath" - ], - "type": "object" - }, - "io.k8s.api.core.v1.WeightedPodAffinityTerm": { - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "properties": { - "podAffinityTerm": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm", - "description": "Required. A pod affinity term, associated with the corresponding weight." - }, - "weight": { - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "weight", - "podAffinityTerm" - ], - "type": "object" - }, - "io.k8s.api.core.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" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.Endpoint": { - "description": "Endpoint represents a single logical \"backend\" implementing a service.", - "properties": { - "addresses": { - "description": "addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - }, - "conditions": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointConditions", - "description": "conditions contains information about the current status of the endpoint." - }, - "hostname": { - "description": "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must pass DNS Label (RFC 1123) validation.", - "type": "string" - }, - "targetRef": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "targetRef is a reference to a Kubernetes object that represents this endpoint." - }, - "topology": { - "additionalProperties": { - "type": "string" - }, - "description": "topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\n where the endpoint is located. This should match the corresponding\n node label.\n* topology.kubernetes.io/zone: the value indicates the zone where the\n endpoint is located. This should match the corresponding node label.\n* topology.kubernetes.io/region: the value indicates the region where the\n endpoint is located. This should match the corresponding node label.", - "type": "object" - } - }, - "required": [ - "addresses" - ], - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointConditions": { - "description": "EndpointConditions represents the current condition of an endpoint.", - "properties": { - "ready": { - "description": "ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointPort": { - "description": "EndpointPort represents a Port used by an EndpointSlice", - "properties": { - "appProtocol": { - "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.", - "type": "string" - }, - "name": { - "description": "The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", - "type": "string" - }, - "port": { - "description": "The port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.", - "format": "int32", - "type": "integer" - }, - "protocol": { - "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.discovery.v1beta1.EndpointSlice": { - "description": "EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.", - "properties": { - "addressType": { - "description": "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.", - "type": "string" - }, - "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" - }, - "endpoints": { - "description": "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.Endpoint" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "ports": { - "description": "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \"all ports\". Each slice may include a maximum of 100 ports.", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointPort" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "required": [ - "addressType", - "endpoints" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.discovery.v1beta1.EndpointSliceList": { - "description": "EndpointSliceList represents a list of endpoint slices", - "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" - }, - "items": { - "description": "List of endpoint slices", - "items": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "discovery.k8s.io", - "kind": "EndpointSliceList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1.Event": { - "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", - "properties": { - "action": { - "description": "action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field can have at most 128 characters.", - "type": "string" - }, - "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" - }, - "deprecatedCount": { - "description": "deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.", - "format": "int32", - "type": "integer" - }, - "deprecatedFirstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "deprecatedLastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "deprecatedSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "eventTime is the time when this Event was first observed. It is required." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "note": { - "description": "note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", - "type": "string" - }, - "reason": { - "description": "reason is why the action was taken. It is human-readable. This field can have at most 128 characters.", - "type": "string" - }, - "regarding": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object." - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object." - }, - "reportingController": { - "description": "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", - "type": "string" - }, - "reportingInstance": { - "description": "reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.events.v1.EventSeries", - "description": "series is data about the Event series this event represents or nil if it's a singleton Event." - }, - "type": { - "description": "type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable.", - "type": "string" - } - }, - "required": [ - "eventTime" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - ] - }, - "io.k8s.api.events.v1.EventList": { - "description": "EventList is a list of Event objects.", - "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" - }, - "items": { - "description": "items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "EventList", - "version": "v1" - } - ] - }, - "io.k8s.api.events.v1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows how this struct is updated on heartbeats and can guide customized reporter implementations.", - "properties": { - "count": { - "description": "count is the number of occurrences in this series up to the last heartbeat time.", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "lastObservedTime is the time when last Event from the series was seen before last heartbeat." - } - }, - "required": [ - "count", - "lastObservedTime" - ], - "type": "object" - }, - "io.k8s.api.events.v1beta1.Event": { - "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", - "properties": { - "action": { - "description": "action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field can have at most 128 characters.", - "type": "string" - }, - "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" - }, - "deprecatedCount": { - "description": "deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.", - "format": "int32", - "type": "integer" - }, - "deprecatedFirstTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "deprecatedLastTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "deprecatedSource": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", - "description": "deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type." - }, - "eventTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "eventTime is the time when this Event was first observed. It is required." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "note": { - "description": "note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", - "type": "string" - }, - "reason": { - "description": "reason is why the action was taken. It is human-readable. This field can have at most 128 characters.", - "type": "string" - }, - "regarding": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object." - }, - "related": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", - "description": "related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object." - }, - "reportingController": { - "description": "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", - "type": "string" - }, - "reportingInstance": { - "description": "reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.", - "type": "string" - }, - "series": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventSeries", - "description": "series is data about the Event series this event represents or nil if it's a singleton Event." - }, - "type": { - "description": "type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable.", - "type": "string" - } - }, - "required": [ - "eventTime" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventList": { - "description": "EventList is a list of Event objects.", - "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" - }, - "items": { - "description": "items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "EventList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "properties": { - "count": { - "description": "count is the number of occurrences in this series up to the last heartbeat time.", - "format": "int32", - "type": "integer" - }, - "lastObservedTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", - "description": "lastObservedTime is the time when last Event from the series was seen before last heartbeat." - } - }, - "required": [ - "count", - "lastObservedTime" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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. Defaults to ImplementationSpecific.", - "type": "string" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath" - }, - "type": "array" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." - }, - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Specifies the port of the referenced service." - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "IngressList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.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/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressRule" - }, - "type": "array" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.extensions.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "secretName": { - "description": "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL 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" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.networking.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.HTTPIngressPath" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.networking.v1.IPBlock": { - "description": "IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\",\"2001:db9::/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.", - "properties": { - "cidr": { - "description": "CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\"", - "type": "string" - }, - "except": { - "description": "Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\" Except values will be rejected if they are outside the CIDR range", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "cidr" - ], - "type": "object" - }, - "io.k8s.api.networking.v1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "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\"." - }, - "service": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressServiceBackend", - "description": "Service references a Service as a Backend. This is a mutually exclusive setting with \"Resource\"." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IngressClass": { - "description": "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClassSpec", - "description": "Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.IngressClassList": { - "description": "IngressClassList is a collection of IngressClasses.", - "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" - }, - "items": { - "description": "Items is the list of IngressClasses.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.IngressClassSpec": { - "description": "IngressClassSpec provides information about the class of an Ingress.", - "properties": { - "controller": { - "description": "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", - "type": "string" - }, - "parameters": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressList", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.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/io.k8s.api.networking.v1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IngressServiceBackend": { - "description": "IngressServiceBackend references a Kubernetes Service as a Backend.", - "properties": { - "name": { - "description": "Name is the referenced service. The service must exist in the same namespace as the Ingress object.", - "type": "string" - }, - "port": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceBackendPort", - "description": "Port of the referenced service. A port name or port number is required for a IngressServiceBackend." - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.networking.v1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "defaultBackend": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressBackend", - "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." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressRule" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressTLS" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicy": { - "description": "NetworkPolicy describes what network traffic is allowed for a set of Pods", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec", - "description": "Specification of the desired behavior for this NetworkPolicy." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.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": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - }, - "type": "array" - }, - "to": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.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": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - }, - "type": "array" - }, - "ports": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicyList": { - "description": "NetworkPolicyList is a list of NetworkPolicy objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicyList", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.NetworkPolicyPeer": { - "description": "NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed", - "properties": { - "ipBlock": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPBlock", - "description": "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be." - }, - "namespaceSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "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." - }, - "podSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "This 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." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicyPort": { - "description": "NetworkPolicyPort describes a port to allow traffic on", - "properties": { - "port": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "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." - }, - "protocol": { - "description": "The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1.NetworkPolicySpec": { - "description": "NetworkPolicySpec provides the specification of a NetworkPolicy", - "properties": { - "egress": { - "description": "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule" - }, - "type": "array" - }, - "ingress": { - "description": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule" - }, - "type": "array" - }, - "podSelector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace." - }, - "policyTypes": { - "description": "List of rule types that the NetworkPolicy relates to. Valid options are \"Ingress\", \"Egress\", or \"Ingress,Egress\". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "podSelector" - ], - "type": "object" - }, - "io.k8s.api.networking.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\".", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - }, - "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 '/'. When unspecified, all paths from incoming requests are matched.", - "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. Defaults to ImplementationSpecific.", - "type": "string" - } - }, - "required": [ - "backend" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.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 '#'.", - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.HTTPIngressPath" - }, - "type": "array" - } - }, - "required": [ - "paths" - ], - "type": "object" - }, - "io.k8s.api.networking.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "properties": { - "resource": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." - }, - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "Specifies the port of the referenced service." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressClass": { - "description": "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassSpec", - "description": "Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressClassList": { - "description": "IngressClassList is a collection of IngressClasses.", - "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" - }, - "items": { - "description": "Items is the list of IngressClasses.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.IngressClassSpec": { - "description": "IngressClassSpec provides information about the class of an Ingress.", - "properties": { - "controller": { - "description": "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", - "type": "string" - }, - "parameters": { - "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", - "description": "Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "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" - }, - "items": { - "description": "Items is the list of Ingress.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "IngressList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.networking.v1beta1.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/io.k8s.api.networking.v1beta1.HTTPIngressRuleValue" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "ingressClassName": { - "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - "type": "string" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressRule" - }, - "type": "array" - }, - "tls": { - "description": "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.", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressTLS" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - }, - "type": "object" - }, - "io.k8s.api.networking.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are 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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.api.node.v1beta1.Overhead": { - "description": "Overhead structure represents the resource overhead associated with running a pod.", - "properties": { - "podFixed": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "description": "PodFixed represents the fixed resource overhead associated with running a pod.", - "type": "object" - } - }, - "type": "object" - }, - "io.k8s.api.node.v1beta1.RuntimeClass": { - "description": "RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md", - "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" - }, - "handler": { - "description": "Handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node \u0026 CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must conform to the DNS Label (RFC 1123) requirements, and is immutable.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "overhead": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.Overhead", - "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.15, and is only honored by servers that enable the PodOverhead feature." - }, - "scheduling": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.Scheduling", - "description": "Scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes." - } - }, - "required": [ - "handler" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.node.v1beta1.RuntimeClassList": { - "description": "RuntimeClassList is a list of RuntimeClass objects.", - "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" - }, - "items": { - "description": "Items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "node.k8s.io", - "kind": "RuntimeClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.node.v1beta1.Scheduling": { - "description": "Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.", - "properties": { - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "description": "nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.", - "type": "object" - }, - "tolerations": { - "description": "tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedCSIDriver": { - "description": "AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.", - "properties": { - "name": { - "description": "Name is the registered name of the CSI driver", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedFlexVolume": { - "description": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", - "properties": { - "driver": { - "description": "driver is the name of the Flexvolume driver.", - "type": "string" - } - }, - "required": [ - "driver" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.AllowedHostPath": { - "description": "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", - "properties": { - "pathPrefix": { - "description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", - "type": "string" - }, - "readOnly": { - "description": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.Eviction": { - "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/\u003cpod name\u003e/evictions.", - "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" - }, - "deleteOptions": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions", - "description": "DeleteOptions may be provided" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "ObjectMeta describes the pod that is being evicted." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.FSGroupStrategyOptions": { - "description": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.HostPortRange": { - "description": "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "format": "int32", - "type": "integer" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "min", - "max" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.IDRange": { - "description": "IDRange provides a min/max of an allowed range of IDs.", - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "format": "int64", - "type": "integer" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "min", - "max" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudget": { - "description": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec", - "description": "Specification of the desired behavior of the PodDisruptionBudget." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus", - "description": "Most recently observed status of the PodDisruptionBudget." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetList": { - "description": "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudgetList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec": { - "description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", - "properties": { - "maxUnavailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\"." - }, - "minAvailable": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "description": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\"." - }, - "selector": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "description": "Label query over pods whose evictions are managed by the disruption budget." - } - }, - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus": { - "description": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.", - "properties": { - "currentHealthy": { - "description": "current number of healthy pods", - "format": "int32", - "type": "integer" - }, - "desiredHealthy": { - "description": "minimum desired number of healthy pods", - "format": "int32", - "type": "integer" - }, - "disruptedPods": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "description": "DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.", - "type": "object" - }, - "disruptionsAllowed": { - "description": "Number of pod disruptions that are currently allowed.", - "format": "int32", - "type": "integer" - }, - "expectedPods": { - "description": "total number of pods counted by this disruption budget", - "format": "int32", - "type": "integer" - }, - "observedGeneration": { - "description": "Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.", - "format": "int64", - "type": "integer" - } - }, - "required": [ - "disruptionsAllowed", - "currentHealthy", - "desiredHealthy", - "expectedPods" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicy": { - "description": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicySpec", - "description": "spec defines the policy enforced." - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicyList": { - "description": "PodSecurityPolicyList is a list of PodSecurityPolicy objects.", - "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" - }, - "items": { - "description": "items is a list of schema objects.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicyList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicySpec": { - "description": "PodSecurityPolicySpec defines the policy enforced.", - "properties": { - "allowPrivilegeEscalation": { - "description": "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - "type": "boolean" - }, - "allowedCSIDrivers": { - "description": "AllowedCSIDrivers is an allowlist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes. This is a beta field, and is only honored if the API server enables the CSIInlineVolume feature gate.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedCSIDriver" - }, - "type": "array" - }, - "allowedCapabilities": { - "description": "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedFlexVolumes": { - "description": "allowedFlexVolumes is an allowlist of Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedFlexVolume" - }, - "type": "array" - }, - "allowedHostPaths": { - "description": "allowedHostPaths is an allowlist of host paths. Empty indicates that all host paths may be used.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedHostPath" - }, - "type": "array" - }, - "allowedProcMountTypes": { - "description": "AllowedProcMountTypes is an allowlist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allowedUnsafeSysctls": { - "description": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to allowlist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultAddCapabilities": { - "description": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultAllowPrivilegeEscalation": { - "description": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - "type": "boolean" - }, - "forbiddenSysctls": { - "description": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.", - "items": { - "type": "string" - }, - "type": "array" - }, - "fsGroup": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.FSGroupStrategyOptions", - "description": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext." - }, - "hostIPC": { - "description": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", - "type": "boolean" - }, - "hostNetwork": { - "description": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", - "type": "boolean" - }, - "hostPID": { - "description": "hostPID determines if the policy allows the use of HostPID in the pod spec.", - "type": "boolean" - }, - "hostPorts": { - "description": "hostPorts determines which host port ranges are allowed to be exposed.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.HostPortRange" - }, - "type": "array" - }, - "privileged": { - "description": "privileged determines if a pod can request to be run as privileged.", - "type": "boolean" - }, - "readOnlyRootFilesystem": { - "description": "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - "type": "boolean" - }, - "requiredDropCapabilities": { - "description": "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - "items": { - "type": "string" - }, - "type": "array" - }, - "runAsGroup": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions", - "description": "RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled." - }, - "runAsUser": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions", - "description": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set." - }, - "runtimeClass": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions", - "description": "runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod. If this field is omitted, the pod's runtimeClassName field is unrestricted. Enforcement of this field depends on the RuntimeClass feature gate being enabled." - }, - "seLinux": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SELinuxStrategyOptions", - "description": "seLinux is the strategy that will dictate the allowable labels that may be set." - }, - "supplementalGroups": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions", - "description": "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext." - }, - "volumes": { - "description": "volumes is an allowlist of volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "seLinux", - "runAsUser", - "supplementalGroups", - "fsGroup" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions": { - "description": "RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsGroup values that may be set.", - "type": "string" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions": { - "description": "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", - "type": "string" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions": { - "description": "RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.", - "properties": { - "allowedRuntimeClassNames": { - "description": "allowedRuntimeClassNames is an allowlist of RuntimeClass names that may be specified on a pod. A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.", - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultRuntimeClassName": { - "description": "defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.", - "type": "string" - } - }, - "required": [ - "allowedRuntimeClassNames" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.SELinuxStrategyOptions": { - "description": "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.", - "properties": { - "rule": { - "description": "rule is the strategy that will dictate the allowable labels that may be set.", - "type": "string" - }, - "seLinuxOptions": { - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", - "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - } - }, - "required": [ - "rule" - ], - "type": "object" - }, - "io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions": { - "description": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - }, - "type": "array" - }, - "rule": { - "description": "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - "properties": { - "aggregationRule": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.AggregationRule", - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.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.", - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings", - "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" - }, - "items": { - "description": "Items is a list of RoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleList": { - "description": "RoleList is a collection of Roles", - "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" - }, - "items": { - "description": "Items is a list of Roles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "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" - } - }, - "required": [ - "apiGroup", - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.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.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.", - "properties": { - "aggregationRule": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.AggregationRule", - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.22.", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.", - "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" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.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.", - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.", - "items": { - "type": "string" - }, - "type": "array" - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "verbs" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - }, - "type": "array" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata." - }, - "roleRef": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - }, - "type": "array" - } - }, - "required": [ - "roleRef" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.", - "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" - }, - "items": { - "description": "Items is a list of RoleBindings", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleList": { - "description": "RoleList is a collection of Roles Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.", - "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" - }, - "items": { - "description": "Items is a list of Roles", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard object's metadata." - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "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" - } - }, - "required": [ - "apiGroup", - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.rbac.v1beta1.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.", - "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" - } - }, - "required": [ - "kind", - "name" - ], - "type": "object" - }, - "io.k8s.api.scheduling.v1.PriorityClass": { - "description": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "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" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", - "type": "string" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "value" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - ] - }, - "io.k8s.api.scheduling.v1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "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" - }, - "items": { - "description": "items is the list of PriorityClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClass": { - "description": "DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "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" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "preemptionPolicy": { - "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", - "type": "string" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "value" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "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" - }, - "items": { - "description": "items is the list of PriorityClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriver": { - "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverSpec", - "description": "Specification of the CSI Driver." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriverList": { - "description": "CSIDriverList is a collection of CSIDriver objects.", - "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" - }, - "items": { - "description": "items is the list of CSIDriver", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriverList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSIDriverSpec": { - "description": "CSIDriverSpec is the specification of a CSIDriver.", - "properties": { - "attachRequired": { - "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "type": "boolean" - }, - "fsGroupPolicy": { - "description": "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.", - "type": "string" - }, - "podInfoOnMount": { - "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "type": "boolean" - }, - "storageCapacity": { - "description": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.", - "type": "boolean" - }, - "volumeLifecycleModes": { - "description": "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "set" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.CSINode": { - "description": "CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata.name must be the Kubernetes node name." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeSpec", - "description": "spec is the specification of CSINode" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSINodeDriver": { - "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - "properties": { - "allocatable": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeNodeResources", - "description": "allocatable represents the volume resources of a node that are available for scheduling. This field is beta." - }, - "name": { - "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - "type": "string" - }, - "nodeID": { - "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - "type": "string" - }, - "topologyKeys": { - "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "nodeID" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.CSINodeList": { - "description": "CSINodeList is a collection of CSINode objects.", - "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" - }, - "items": { - "description": "items is the list of CSINode", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINodeList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.CSINodeSpec": { - "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - "properties": { - "drivers": { - "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeDriver" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "required": [ - "drivers" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "allowedTopologies": { - "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "items": { - "type": "string" - }, - "type": "array" - }, - "parameters": { - "additionalProperties": { - "type": "string" - }, - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object" - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "required": [ - "provisioner" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "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" - }, - "items": { - "description": "Items is the list of StorageClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSpec", - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentStatus", - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "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" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "inlineVolumeSpec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." - }, - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSource", - "description": "Source represents the volume that should be attached." - } - }, - "required": [ - "attacher", - "source", - "nodeName" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "properties": { - "attachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object" - }, - "detachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." - } - }, - "required": [ - "attached" - ], - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time the error was encountered." - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1.VolumeNodeResources": { - "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - "properties": { - "count": { - "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSIDriver": { - "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. CSI drivers do not need to create the CSIDriver object directly. Instead they may use the cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically creates a CSIDriver object representing the driver. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverSpec", - "description": "Specification of the CSI Driver." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSIDriverList": { - "description": "CSIDriverList is a collection of CSIDriver objects.", - "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" - }, - "items": { - "description": "items is the list of CSIDriver", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSIDriverList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSIDriverSpec": { - "description": "CSIDriverSpec is the specification of a CSIDriver.", - "properties": { - "attachRequired": { - "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - "type": "boolean" - }, - "fsGroupPolicy": { - "description": "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.", - "type": "string" - }, - "podInfoOnMount": { - "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - "type": "boolean" - }, - "storageCapacity": { - "description": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.", - "type": "boolean" - }, - "volumeLifecycleModes": { - "description": "VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSINode": { - "description": "DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode. See the release notes for more information. CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "metadata.name must be the Kubernetes node name." - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeSpec", - "description": "spec is the specification of CSINode" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSINodeDriver": { - "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - "properties": { - "allocatable": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeNodeResources", - "description": "allocatable represents the volume resources of a node that are available for scheduling." - }, - "name": { - "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - "type": "string" - }, - "nodeID": { - "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - "type": "string" - }, - "topologyKeys": { - "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "nodeID" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.CSINodeList": { - "description": "CSINodeList is a collection of CSINode objects.", - "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" - }, - "items": { - "description": "items is the list of CSINode", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "CSINodeList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.CSINodeSpec": { - "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - "properties": { - "drivers": { - "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeDriver" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "required": [ - "drivers" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "allowedTopologies": { - "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "items": { - "type": "string" - }, - "type": "array" - }, - "parameters": { - "additionalProperties": { - "type": "string" - }, - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object" - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "required": [ - "provisioner" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "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" - }, - "items": { - "description": "Items is the list of StorageClasses", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSpec", - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." - }, - "status": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentStatus", - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "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" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "inlineVolumeSpec": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", - "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." - }, - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSource", - "description": "Source represents the volume that should be attached." - } - }, - "required": [ - "attacher", - "source", - "nodeName" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "properties": { - "attachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object" - }, - "detachError": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." - } - }, - "required": [ - "attached" - ], - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time the error was encountered." - } - }, - "type": "object" - }, - "io.k8s.api.storage.v1beta1.VolumeNodeResources": { - "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - "properties": { - "count": { - "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is nil, then the supported number of volumes on this node is unbounded.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition": { - "description": "CustomResourceColumnDefinition specifies a column for server side printing.", - "properties": { - "description": { - "description": "description is a human readable description of this column.", - "type": "string" - }, - "format": { - "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - }, - "jsonPath": { - "description": "jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - "type": "string" - }, - "name": { - "description": "name is a human readable name for the column.", - "type": "string" - }, - "priority": { - "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - } - }, - "required": [ - "name", - "type", - "jsonPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion": { - "description": "CustomResourceConversion describes how to convert different versions of a CR.", - "properties": { - "strategy": { - "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.", - "type": "string" - }, - "webhook": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion", - "description": "webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`." - } - }, - "required": [ - "strategy" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition": { - "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec", - "description": "spec describes how the user wants the resources to appear" - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus", - "description": "status indicates the actual state of the CustomResourceDefinition" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition": { - "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime last time the condition transitioned from one status to another." - }, - "message": { - "description": "message is a human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList": { - "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - "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" - }, - "items": { - "description": "items list individual CustomResourceDefinition objects", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinitionList", - "version": "v1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames": { - "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - "properties": { - "categories": { - "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - "type": "string" - }, - "listKind": { - "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - "type": "string" - }, - "plural": { - "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", - "type": "string" - }, - "shortNames": { - "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singular": { - "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - "type": "string" - } - }, - "required": [ - "plural", - "kind" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec": { - "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - "properties": { - "conversion": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion", - "description": "conversion defines conversion settings for the CRD." - }, - "group": { - "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", - "type": "string" - }, - "names": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", - "description": "names specify the resource and kind names for the custom resource." - }, - "preserveUnknownFields": { - "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting `x-preserve-unknown-fields` to true in `spec.versions[*].schema.openAPIV3Schema`. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - "type": "boolean" - }, - "scope": { - "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.", - "type": "string" - }, - "versions": { - "description": "versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion" - }, - "type": "array" - } - }, - "required": [ - "group", - "names", - "scope", - "versions" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus": { - "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - "properties": { - "acceptedNames": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", - "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." - }, - "conditions": { - "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition" - }, - "type": "array" - }, - "storedVersions": { - "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion": { - "description": "CustomResourceDefinitionVersion describes a version for CRD.", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "deprecated": { - "description": "deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.", - "type": "boolean" - }, - "deprecationWarning": { - "description": "deprecationWarning overrides the default warning returned to API clients. May only be set when `deprecated` is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists.", - "type": "string" - }, - "name": { - "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", - "type": "string" - }, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation", - "description": "schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource." - }, - "served": { - "description": "served is a flag enabling/disabling this version from being served via REST APIs", - "type": "boolean" - }, - "storage": { - "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - "type": "boolean" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources", - "description": "subresources specify what subresources this version of the defined custom resource have." - } - }, - "required": [ - "name", - "served", - "storage" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale": { - "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - "properties": { - "labelSelectorPath": { - "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - "type": "string" - }, - "specReplicasPath": { - "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - "type": "string" - }, - "statusReplicasPath": { - "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - "type": "string" - } - }, - "required": [ - "specReplicasPath", - "statusReplicasPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus": { - "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources": { - "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - "properties": { - "scale": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale", - "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus", - "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation": { - "description": "CustomResourceValidation is a list of validation methods for CustomResources.", - "properties": { - "openAPIV3Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps", - "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation": { - "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps": { - "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - "properties": { - "$ref": { - "type": "string" - }, - "$schema": { - "type": "string" - }, - "additionalItems": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" - }, - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" - }, - "allOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "anyOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "default": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON", - "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false." - }, - "definitions": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "dependencies": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray" - }, - "type": "object" - }, - "description": { - "type": "string" - }, - "enum": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" - }, - "type": "array" - }, - "example": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" - }, - "exclusiveMaximum": { - "type": "boolean" - }, - "exclusiveMinimum": { - "type": "boolean" - }, - "externalDocs": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation" - }, - "format": { - "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - "type": "string" - }, - "id": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray" - }, - "maxItems": { - "format": "int64", - "type": "integer" - }, - "maxLength": { - "format": "int64", - "type": "integer" - }, - "maxProperties": { - "format": "int64", - "type": "integer" - }, - "maximum": { - "format": "double", - "type": "number" - }, - "minItems": { - "format": "int64", - "type": "integer" - }, - "minLength": { - "format": "int64", - "type": "integer" - }, - "minProperties": { - "format": "int64", - "type": "integer" - }, - "minimum": { - "format": "double", - "type": "number" - }, - "multipleOf": { - "format": "double", - "type": "number" - }, - "not": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "nullable": { - "type": "boolean" - }, - "oneOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "patternProperties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "properties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uniqueItems": { - "type": "boolean" - }, - "x-kubernetes-embedded-resource": { - "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - "type": "boolean" - }, - "x-kubernetes-int-or-string": { - "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - "type": "boolean" - }, - "x-kubernetes-list-map-keys": { - "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - "items": { - "type": "string" - }, - "type": "array" - }, - "x-kubernetes-list-type": { - "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - "type": "string" - }, - "x-kubernetes-map-type": { - "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - "type": "string" - }, - "x-kubernetes-preserve-unknown-fields": { - "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "name is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "namespace is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "path is an optional URL path at which the webhook will be contacted.", - "type": "string" - }, - "port": { - "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - "properties": { - "caBundle": { - "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference", - "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion": { - "description": "WebhookConversion describes how to call a conversion webhook", - "properties": { - "clientConfig": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig", - "description": "clientConfig is the instructions for how to call the webhook if strategy is `Webhook`." - }, - "conversionReviewVersions": { - "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "conversionReviewVersions" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition": { - "description": "CustomResourceColumnDefinition specifies a column for server side printing.", - "properties": { - "JSONPath": { - "description": "JSONPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - "type": "string" - }, - "description": { - "description": "description is a human readable description of this column.", - "type": "string" - }, - "format": { - "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - }, - "name": { - "description": "name is a human readable name for the column.", - "type": "string" - }, - "priority": { - "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - "type": "string" - } - }, - "required": [ - "name", - "type", - "JSONPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion": { - "description": "CustomResourceConversion describes how to convert different versions of a CR.", - "properties": { - "conversionReviewVersions": { - "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail. Defaults to `[\"v1beta1\"]`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "strategy": { - "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhookClientConfig to be set.", - "type": "string" - }, - "webhookClientConfig": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig", - "description": "webhookClientConfig is the instructions for how to call the webhook if strategy is `Webhook`. Required when `strategy` is set to `Webhook`." - } - }, - "required": [ - "strategy" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition": { - "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e. Deprecated in v1.16, planned for removal in v1.22. Use apiextensions.k8s.io/v1 CustomResourceDefinition instead.", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec", - "description": "spec describes how the user wants the resources to appear" - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus", - "description": "status indicates the actual state of the CustomResourceDefinition" - } - }, - "required": [ - "spec" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition": { - "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastTransitionTime last time the condition transitioned from one status to another." - }, - "message": { - "description": "message is a human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList": { - "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - "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" - }, - "items": { - "description": "items list individual CustomResourceDefinition objects", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinitionList", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames": { - "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - "properties": { - "categories": { - "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - "type": "string" - }, - "listKind": { - "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - "type": "string" - }, - "plural": { - "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", - "type": "string" - }, - "shortNames": { - "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singular": { - "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - "type": "string" - } - }, - "required": [ - "plural", - "kind" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec": { - "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If present, this field configures columns for all versions. Top-level and per-version columns are mutually exclusive. If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "conversion": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion", - "description": "conversion defines conversion settings for the CRD." - }, - "group": { - "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", - "type": "string" - }, - "names": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", - "description": "names specify the resource and kind names for the custom resource." - }, - "preserveUnknownFields": { - "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. If false, schemas must be defined for all versions. Defaults to true in v1beta for backwards compatibility. Deprecated: will be required to be false in v1. Preservation of unknown fields can be specified in the validation schema using the `x-kubernetes-preserve-unknown-fields: true` extension. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - "type": "boolean" - }, - "scope": { - "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`.", - "type": "string" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", - "description": "subresources specify what subresources the defined custom resource has. If present, this field configures subresources for all versions. Top-level and per-version subresources are mutually exclusive." - }, - "validation": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", - "description": "validation describes the schema used for validation and pruning of the custom resource. If present, this validation schema is used to validate all versions. Top-level and per-version schemas are mutually exclusive." - }, - "version": { - "description": "version is the API version of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/...`. Must match the name of the first item in the `versions` list if `version` and `versions` are both specified. Optional if `versions` is specified. Deprecated: use `versions` instead.", - "type": "string" - }, - "versions": { - "description": "versions is the list of all API versions of the defined custom resource. Optional if `version` is specified. The name of the first item in the `versions` list must match the `version` field if `version` and `versions` are both specified. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion" - }, - "type": "array" - } - }, - "required": [ - "group", - "names", - "scope" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus": { - "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - "properties": { - "acceptedNames": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", - "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." - }, - "conditions": { - "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition" - }, - "type": "array" - }, - "storedVersions": { - "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion": { - "description": "CustomResourceDefinitionVersion describes a version for CRD.", - "properties": { - "additionalPrinterColumns": { - "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. Top-level and per-version columns are mutually exclusive. Per-version columns must not all be set to identical values (top-level columns should be used instead). If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" - }, - "type": "array" - }, - "deprecated": { - "description": "deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.", - "type": "boolean" - }, - "deprecationWarning": { - "description": "deprecationWarning overrides the default warning returned to API clients. May only be set when `deprecated` is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists.", - "type": "string" - }, - "name": { - "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", - "type": "string" - }, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", - "description": "schema describes the schema used for validation and pruning of this version of the custom resource. Top-level and per-version schemas are mutually exclusive. Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)." - }, - "served": { - "description": "served is a flag enabling/disabling this version from being served via REST APIs", - "type": "boolean" - }, - "storage": { - "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - "type": "boolean" - }, - "subresources": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", - "description": "subresources specify what subresources this version of the defined custom resource have. Top-level and per-version subresources are mutually exclusive. Per-version subresources must not all be set to identical values (top-level subresources should be used instead)." - } - }, - "required": [ - "name", - "served", - "storage" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale": { - "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - "properties": { - "labelSelectorPath": { - "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - "type": "string" - }, - "specReplicasPath": { - "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - "type": "string" - }, - "statusReplicasPath": { - "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - "type": "string" - } - }, - "required": [ - "specReplicasPath", - "statusReplicasPath" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus": { - "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources": { - "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - "properties": { - "scale": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale", - "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." - }, - "status": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus", - "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation": { - "description": "CustomResourceValidation is a list of validation methods for CustomResources.", - "properties": { - "openAPIV3Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps", - "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation": { - "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps": { - "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - "properties": { - "$ref": { - "type": "string" - }, - "$schema": { - "type": "string" - }, - "additionalItems": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "allOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "anyOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "default": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON", - "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. CustomResourceDefinitions with defaults must be created using the v1 (or newer) CustomResourceDefinition API." - }, - "definitions": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "dependencies": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray" - }, - "type": "object" - }, - "description": { - "type": "string" - }, - "enum": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "type": "array" - }, - "example": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "exclusiveMaximum": { - "type": "boolean" - }, - "exclusiveMinimum": { - "type": "boolean" - }, - "externalDocs": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation" - }, - "format": { - "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - "type": "string" - }, - "id": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray" - }, - "maxItems": { - "format": "int64", - "type": "integer" - }, - "maxLength": { - "format": "int64", - "type": "integer" - }, - "maxProperties": { - "format": "int64", - "type": "integer" - }, - "maximum": { - "format": "double", - "type": "number" - }, - "minItems": { - "format": "int64", - "type": "integer" - }, - "minLength": { - "format": "int64", - "type": "integer" - }, - "minProperties": { - "format": "int64", - "type": "integer" - }, - "minimum": { - "format": "double", - "type": "number" - }, - "multipleOf": { - "format": "double", - "type": "number" - }, - "not": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "nullable": { - "type": "boolean" - }, - "oneOf": { - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "array" - }, - "pattern": { - "type": "string" - }, - "patternProperties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "properties": { - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "type": "object" - }, - "required": { - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uniqueItems": { - "type": "boolean" - }, - "x-kubernetes-embedded-resource": { - "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - "type": "boolean" - }, - "x-kubernetes-int-or-string": { - "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - "type": "boolean" - }, - "x-kubernetes-list-map-keys": { - "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - "items": { - "type": "string" - }, - "type": "array" - }, - "x-kubernetes-list-type": { - "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - "type": "string" - }, - "x-kubernetes-map-type": { - "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - "type": "string" - }, - "x-kubernetes-preserve-unknown-fields": { - "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - "type": "boolean" - } - }, - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "name is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "namespace is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "path is an optional URL path at which the webhook will be contacted.", - "type": "string" - }, - "port": { - "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "namespace", - "name" - ], - "type": "object" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - "properties": { - "caBundle": { - "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string" - }, - "service": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference", - "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." - }, - "url": { - "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.api.resource.Quantity": { - "description": "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n (Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\u003cdigit\u003e ::= 0 | 1 | ... | 9 \u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e \u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e \u003csign\u003e ::= \"+\" | \"-\" \u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e \u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e \u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup": { - "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", - "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" - }, - "name": { - "description": "name is the name of the group.", - "type": "string" - }, - "preferredVersion": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery", - "description": "preferredVersion is the version preferred by the API server, which probably is the storage version." - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - }, - "type": "array" - }, - "versions": { - "description": "versions are the versions supported in this group.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" - }, - "type": "array" - } - }, - "required": [ - "name", - "versions" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroup", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList": { - "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", - "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" - }, - "groups": { - "description": "groups is a list of APIGroup.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - }, - "type": "array" - }, - "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" - } - }, - "required": [ - "groups" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroupList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": { - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "properties": { - "categories": { - "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')", - "items": { - "type": "string" - }, - "type": "array" - }, - "group": { - "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".", - "type": "string" - }, - "kind": { - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')", - "type": "string" - }, - "name": { - "description": "name is the plural name of the resource.", - "type": "string" - }, - "namespaced": { - "description": "namespaced indicates if a resource is namespaced or not.", - "type": "boolean" - }, - "shortNames": { - "description": "shortNames is a list of suggested short names of the resource.", - "items": { - "type": "string" - }, - "type": "array" - }, - "singularName": { - "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", - "type": "string" - }, - "storageVersionHash": { - "description": "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.", - "type": "string" - }, - "verbs": { - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)", - "items": { - "type": "string" - }, - "type": "array" - }, - "version": { - "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".", - "type": "string" - } - }, - "required": [ - "name", - "singularName", - "namespaced", - "kind", - "verbs" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList": { - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "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" - }, - "groupVersion": { - "description": "groupVersion is the group and version this APIResourceList is for.", - "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" - }, - "resources": { - "description": "resources contains the name of the resources and if they are namespaced.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" - }, - "type": "array" - } - }, - "required": [ - "groupVersion", - "resources" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIResourceList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions": { - "description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", - "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" - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - }, - "type": "array" - }, - "versions": { - "description": "versions are the api versions that are available.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "versions", - "serverAddressByClientCIDRs" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIVersions", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions": { - "description": "DeleteOptions may be provided when deleting an API object.", - "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" - }, - "dryRun": { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "items": { - "type": "string" - }, - "type": "array" - }, - "gracePeriodSeconds": { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "format": "int64", - "type": "integer" - }, - "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" - }, - "orphanDependents": { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "type": "boolean" - }, - "preconditions": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." - }, - "propagationPolicy": { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta2" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v2beta1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v2beta2" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "certificates.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "coordination.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "coordination.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "discovery.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "discovery.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "events.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "flowcontrol.apiserver.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "networking.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "node.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "node.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "policy", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": { - "description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:\u003cname\u003e', where \u003cname\u003e is the name of a field in a struct, or key in a map 'v:\u003cvalue\u003e', where \u003cvalue\u003e is the exact json formatted value of a list item 'i:\u003cindex\u003e', where \u003cindex\u003e is position of a item in a list 'k:\u003ckeys\u003e', where \u003ckeys\u003e is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff", - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery": { - "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", - "properties": { - "groupVersion": { - "description": "groupVersion specifies the API group and version in the form \"group/version\"", - "type": "string" - }, - "version": { - "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.", - "type": "string" - } - }, - "required": [ - "groupVersion", - "version" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "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" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "properties": { - "key": { - "description": "key is the label key that the selector applies to.", - "type": "string", - "x-kubernetes-patch-merge-key": "key", - "x-kubernetes-patch-strategy": "merge" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "operator" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": { - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "continue": { - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", - "type": "string" - }, - "remainingItemCount": { - "description": "remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.", - "format": "int64", - "type": "integer" - }, - "resourceVersion": { - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - "type": "string" - }, - "selfLink": { - "description": "selfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1", - "description": "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type." - }, - "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" - }, - "time": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": { - "description": "MicroTime is version of Time with microsecond level precision.", - "format": "date-time", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "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: http://kubernetes.io/docs/user-guide/annotations", - "type": "object" - }, - "clusterName": { - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", - "type": "string" - }, - "creationTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "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" - }, - "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.", - "format": "int64", - "type": "integer" - }, - "deletionTimestamp": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "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" - }, - "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.", - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-patch-strategy": "merge" - }, - "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 NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\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.", - "format": "int64", - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "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: http://kubernetes.io/docs/user-guide/labels", - "type": "object" - }, - "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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry" - }, - "type": "array" - }, - "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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/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.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" - }, - "type": "array", - "x-kubernetes-patch-merge-key": "uid", - "x-kubernetes-patch-strategy": "merge" - }, - "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": "SelfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - "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: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.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.", - "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. 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: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "uid": { - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Patch": { - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions": { - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "resourceVersion": { - "description": "Specifies the target ResourceVersion", - "type": "string" - }, - "uid": { - "description": "Specifies the target UID.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR": { - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "properties": { - "clientCIDR": { - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.", - "type": "string" - }, - "serverAddress": { - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", - "type": "string" - } - }, - "required": [ - "clientCIDR", - "serverAddress" - ], - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Status": { - "description": "Status is a return value for calls that don't return other objects.", - "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" - }, - "code": { - "description": "Suggested HTTP return code for this status, 0 if not set.", - "format": "int32", - "type": "integer" - }, - "details": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." - }, - "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" - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - }, - "reason": { - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", - "type": "string" - }, - "status": { - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - "type": "string" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Status", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause": { - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "field": { - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", - "type": "string" - }, - "message": { - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", - "type": "string" - }, - "reason": { - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails": { - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "causes": { - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" - }, - "type": "array" - }, - "group": { - "description": "The group attribute of the resource associated with the status StatusReason.", - "type": "string" - }, - "kind": { - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", - "type": "string" - }, - "retryAfterSeconds": { - "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", - "format": "int32", - "type": "integer" - }, - "uid": { - "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - }, - "type": "object" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { - "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", - "format": "date-time", - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent": { - "description": "Event represents a single event to a watched resource.", - "properties": { - "object": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", - "description": "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context." - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "object" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta2" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v2beta1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v2beta2" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "certificates.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "coordination.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "coordination.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "discovery.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "discovery.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "events.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "flowcontrol.apiserver.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "networking.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "node.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "node.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "policy", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.runtime.RawExtension": { - "description": "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.Object `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// External package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// On the wire, the JSON will look something like this: {\n\t\"kind\":\"MyAPIObject\",\n\t\"apiVersion\":\"v1\",\n\t\"myPlugin\": {\n\t\t\"kind\":\"PluginA\",\n\t\t\"aOption\":\"foo\",\n\t},\n}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)", - "type": "object" - }, - "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { - "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.", - "format": "int-or-string", - "type": "string" - }, - "io.k8s.apimachinery.pkg.version.Info": { - "description": "Info contains versioning information. how we'll want to distribute that information.", - "properties": { - "buildDate": { - "type": "string" - }, - "compiler": { - "type": "string" - }, - "gitCommit": { - "type": "string" - }, - "gitTreeState": { - "type": "string" - }, - "gitVersion": { - "type": "string" - }, - "goVersion": { - "type": "string" - }, - "major": { - "type": "string" - }, - "minor": { - "type": "string" - }, - "platform": { - "type": "string" - } - }, - "required": [ - "major", - "minor", - "gitVersion", - "gitCommit", - "gitTreeState", - "buildDate", - "goVersion", - "compiler", - "platform" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec", - "description": "Spec contains information for locating and communicating with a server" - }, - "status": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus", - "description": "Status contains derived information about an API server" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition": { - "description": "APIServiceCondition describes the state of an APIService at a particular point", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "format": "int32", - "type": "integer" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference", - "description": "Service is a reference to the service for this API server. It must communicate on port 443. If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "groupPriorityMinimum", - "versionPriority" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "type" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec", - "description": "Spec contains information for locating and communicating with a server" - }, - "status": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus", - "description": "Status contains derived information about an API server" - } - }, - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition": { - "description": "APIServiceCondition describes the state of an APIService at a particular point", - "properties": { - "lastTransitionTime": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Last time the condition transitioned from one status to another." - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - }, - "required": [ - "type", - "status" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "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" - }, - "items": { - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - }, - "type": "array" - }, - "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" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "required": [ - "items" - ], - "type": "object", - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - "format": "byte", - "type": "string", - "x-kubernetes-list-type": "atomic" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "format": "int32", - "type": "integer" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference", - "description": "Service is a reference to the service for this API server. It must communicate on port 443. If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "format": "int32", - "type": "integer" - } - }, - "required": [ - "groupPriorityMinimum", - "versionPriority" - ], - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "type" - ], - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - }, - "type": "object" - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - }, - "port": { - "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - } - }, - "info": { - "title": "Kubernetes", - "version": "v1.19.1" - }, - "paths": { - "/api/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available API versions", - "operationId": "getCoreAPIVersions", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core" - ] - } - }, - "/api/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoreV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ] - } - }, - "/api/v1/componentstatuses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list objects of kind ComponentStatus", - "operationId": "listCoreV1ComponentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatusList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/componentstatuses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ComponentStatus", - "operationId": "readCoreV1ComponentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ComponentStatus", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ] - }, - "/api/v1/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ConfigMap", - "operationId": "listCoreV1ConfigMapForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Endpoints", - "operationId": "listCoreV1EndpointsForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listCoreV1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind LimitRange", - "operationId": "listCoreV1LimitRangeForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/namespaces": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Namespace", - "operationId": "listCoreV1Namespace", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Namespace", - "operationId": "createCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/bindings": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Binding", - "operationId": "createCoreV1NamespacedBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/configmaps": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ConfigMap", - "operationId": "deleteCoreV1CollectionNamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ConfigMap", - "operationId": "listCoreV1NamespacedConfigMap", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ConfigMap", - "operationId": "createCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/configmaps/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ConfigMap", - "operationId": "deleteCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ConfigMap", - "operationId": "readCoreV1NamespacedConfigMap", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ConfigMap", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ConfigMap", - "operationId": "patchCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ConfigMap", - "operationId": "replaceCoreV1NamespacedConfigMap", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/endpoints": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Endpoints", - "operationId": "deleteCoreV1CollectionNamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Endpoints", - "operationId": "listCoreV1NamespacedEndpoints", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create Endpoints", - "operationId": "createCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/endpoints/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete Endpoints", - "operationId": "deleteCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Endpoints", - "operationId": "readCoreV1NamespacedEndpoints", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Endpoints", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Endpoints", - "operationId": "patchCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Endpoints", - "operationId": "replaceCoreV1NamespacedEndpoints", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteCoreV1CollectionNamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listCoreV1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readCoreV1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceCoreV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/limitranges": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of LimitRange", - "operationId": "deleteCoreV1CollectionNamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind LimitRange", - "operationId": "listCoreV1NamespacedLimitRange", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LimitRange", - "operationId": "createCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/limitranges/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a LimitRange", - "operationId": "deleteCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified LimitRange", - "operationId": "readCoreV1NamespacedLimitRange", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the LimitRange", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified LimitRange", - "operationId": "patchCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified LimitRange", - "operationId": "replaceCoreV1NamespacedLimitRange", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PersistentVolumeClaim", - "operationId": "deleteCoreV1CollectionNamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolumeClaim", - "operationId": "listCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PersistentVolumeClaim", - "operationId": "createCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PersistentVolumeClaim", - "operationId": "deleteCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PersistentVolumeClaim", - "operationId": "readCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PersistentVolumeClaim", - "operationId": "patchCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PersistentVolumeClaim", - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PersistentVolumeClaim", - "operationId": "readCoreV1NamespacedPersistentVolumeClaimStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PersistentVolumeClaim", - "operationId": "patchCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PersistentVolumeClaim", - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Pod", - "operationId": "deleteCoreV1CollectionNamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Pod", - "operationId": "listCoreV1NamespacedPod", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Pod", - "operationId": "createCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Pod", - "operationId": "deleteCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Pod", - "operationId": "readCoreV1NamespacedPod", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Pod", - "operationId": "patchCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Pod", - "operationId": "replaceCoreV1NamespacedPod", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/attach": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to attach of Pod", - "operationId": "connectCoreV1GetNamespacedPodAttach", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodAttachOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the PodAttachOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", - "in": "query", - "name": "stderr", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", - "in": "query", - "name": "stdin", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", - "in": "query", - "name": "stdout", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", - "in": "query", - "name": "tty", - "type": "boolean", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to attach of Pod", - "operationId": "connectCoreV1PostNamespacedPodAttach", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodAttachOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/binding": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Binding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create binding of a Pod", - "operationId": "createCoreV1NamespacedPodBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/eviction": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Eviction", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create eviction of a Pod", - "operationId": "createCoreV1NamespacedPodEviction", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/exec": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to exec of Pod", - "operationId": "connectCoreV1GetNamespacedPodExec", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodExecOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "Command is the remote command to execute. argv array. Not executed within a shell.", - "in": "query", - "name": "command", - "type": "string", - "uniqueItems": true - }, - { - "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the PodExecOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Redirect the standard error stream of the pod for this call. Defaults to true.", - "in": "query", - "name": "stderr", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", - "in": "query", - "name": "stdin", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Redirect the standard output stream of the pod for this call. Defaults to true.", - "in": "query", - "name": "stdout", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", - "in": "query", - "name": "tty", - "type": "boolean", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to exec of Pod", - "operationId": "connectCoreV1PostNamespacedPodExec", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodExecOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/log": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read log of the specified Pod", - "operationId": "readCoreV1NamespacedPodLog", - "produces": [ - "text/plain", - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "The container for which to stream logs. Defaults to only container if there is one container in the pod.", - "in": "query", - "name": "container", - "type": "string", - "uniqueItems": true - }, - { - "description": "Follow the log stream of the pod. Defaults to false.", - "in": "query", - "name": "follow", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).", - "in": "query", - "name": "insecureSkipTLSVerifyBackend", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", - "in": "query", - "name": "limitBytes", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "Return previous terminated container logs. Defaults to false.", - "in": "query", - "name": "previous", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "in": "query", - "name": "sinceSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", - "in": "query", - "name": "tailLines", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", - "in": "query", - "name": "timestamps", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/portforward": { - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to portforward of Pod", - "operationId": "connectCoreV1GetNamespacedPodPortforward", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodPortForwardOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodPortForwardOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "List of ports to forward Required when using WebSockets", - "in": "query", - "name": "ports", - "type": "integer", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to portforward of Pod", - "operationId": "connectCoreV1PostNamespacedPodPortforward", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodPortForwardOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Pod", - "operationId": "connectCoreV1DeleteNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Pod", - "operationId": "connectCoreV1GetNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Pod", - "operationId": "connectCoreV1HeadNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Pod", - "operationId": "connectCoreV1OptionsNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to pod.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Pod", - "operationId": "connectCoreV1PatchNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Pod", - "operationId": "connectCoreV1PostNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Pod", - "operationId": "connectCoreV1PutNamespacedPodProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Pod", - "operationId": "connectCoreV1DeleteNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Pod", - "operationId": "connectCoreV1GetNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Pod", - "operationId": "connectCoreV1HeadNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Pod", - "operationId": "connectCoreV1OptionsNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to pod.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Pod", - "operationId": "connectCoreV1PatchNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Pod", - "operationId": "connectCoreV1PostNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Pod", - "operationId": "connectCoreV1PutNamespacedPodProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/pods/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Pod", - "operationId": "readCoreV1NamespacedPodStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Pod", - "operationId": "patchCoreV1NamespacedPodStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Pod", - "operationId": "replaceCoreV1NamespacedPodStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/podtemplates": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodTemplate", - "operationId": "deleteCoreV1CollectionNamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodTemplate", - "operationId": "listCoreV1NamespacedPodTemplate", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodTemplate", - "operationId": "createCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/podtemplates/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodTemplate", - "operationId": "deleteCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodTemplate", - "operationId": "readCoreV1NamespacedPodTemplate", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PodTemplate", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodTemplate", - "operationId": "patchCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodTemplate", - "operationId": "replaceCoreV1NamespacedPodTemplate", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ReplicationController", - "operationId": "deleteCoreV1CollectionNamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicationController", - "operationId": "listCoreV1NamespacedReplicationController", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ReplicationController", - "operationId": "createCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ReplicationController", - "operationId": "deleteCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationController", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationController", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationControllerScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ReplicationController", - "operationId": "readCoreV1NamespacedReplicationControllerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ReplicationController", - "operationId": "patchCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ReplicationController", - "operationId": "replaceCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ResourceQuota", - "operationId": "deleteCoreV1CollectionNamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ResourceQuota", - "operationId": "listCoreV1NamespacedResourceQuota", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ResourceQuota", - "operationId": "createCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ResourceQuota", - "operationId": "deleteCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ResourceQuota", - "operationId": "readCoreV1NamespacedResourceQuota", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ResourceQuota", - "operationId": "patchCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ResourceQuota", - "operationId": "replaceCoreV1NamespacedResourceQuota", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ResourceQuota", - "operationId": "readCoreV1NamespacedResourceQuotaStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ResourceQuota", - "operationId": "patchCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ResourceQuota", - "operationId": "replaceCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/secrets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Secret", - "operationId": "deleteCoreV1CollectionNamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Secret", - "operationId": "listCoreV1NamespacedSecret", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Secret", - "operationId": "createCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/secrets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Secret", - "operationId": "deleteCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Secret", - "operationId": "readCoreV1NamespacedSecret", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Secret", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Secret", - "operationId": "patchCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Secret", - "operationId": "replaceCoreV1NamespacedSecret", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/serviceaccounts": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ServiceAccount", - "operationId": "deleteCoreV1CollectionNamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ServiceAccount", - "operationId": "listCoreV1NamespacedServiceAccount", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ServiceAccount", - "operationId": "createCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/serviceaccounts/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ServiceAccount", - "operationId": "deleteCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ServiceAccount", - "operationId": "readCoreV1NamespacedServiceAccount", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceAccount", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ServiceAccount", - "operationId": "patchCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ServiceAccount", - "operationId": "replaceCoreV1NamespacedServiceAccount", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Service", - "operationId": "listCoreV1NamespacedService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Service", - "operationId": "createCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Service", - "operationId": "deleteCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Service", - "operationId": "readCoreV1NamespacedService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Service", - "operationId": "patchCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Service", - "operationId": "replaceCoreV1NamespacedService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Service", - "operationId": "connectCoreV1DeleteNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Service", - "operationId": "connectCoreV1GetNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Service", - "operationId": "connectCoreV1HeadNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Service", - "operationId": "connectCoreV1OptionsNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Service", - "operationId": "connectCoreV1PatchNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Service", - "operationId": "connectCoreV1PostNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Service", - "operationId": "connectCoreV1PutNamespacedServiceProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Service", - "operationId": "connectCoreV1DeleteNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Service", - "operationId": "connectCoreV1GetNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Service", - "operationId": "connectCoreV1HeadNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Service", - "operationId": "connectCoreV1OptionsNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ServiceProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Service", - "operationId": "connectCoreV1PatchNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Service", - "operationId": "connectCoreV1PostNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Service", - "operationId": "connectCoreV1PutNamespacedServiceProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{namespace}/services/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Service", - "operationId": "readCoreV1NamespacedServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Service", - "operationId": "patchCoreV1NamespacedServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Service", - "operationId": "replaceCoreV1NamespacedServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Namespace", - "operationId": "deleteCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Namespace", - "operationId": "readCoreV1Namespace", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Namespace", - "operationId": "patchCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Namespace", - "operationId": "replaceCoreV1Namespace", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}/finalize": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "put": { - "consumes": [ - "*/*" - ], - "description": "replace finalize of the specified Namespace", - "operationId": "replaceCoreV1NamespaceFinalize", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/namespaces/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Namespace", - "operationId": "readCoreV1NamespaceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Namespace", - "operationId": "patchCoreV1NamespaceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Namespace", - "operationId": "replaceCoreV1NamespaceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - } - }, - "/api/v1/nodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Node", - "operationId": "deleteCoreV1CollectionNode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Node", - "operationId": "listCoreV1Node", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Node", - "operationId": "createCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Node", - "operationId": "deleteCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Node", - "operationId": "readCoreV1Node", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Node", - "operationId": "patchCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Node", - "operationId": "replaceCoreV1Node", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/proxy": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Node", - "operationId": "connectCoreV1DeleteNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Node", - "operationId": "connectCoreV1GetNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Node", - "operationId": "connectCoreV1HeadNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Node", - "operationId": "connectCoreV1OptionsNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NodeProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to node.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Node", - "operationId": "connectCoreV1PatchNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Node", - "operationId": "connectCoreV1PostNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Node", - "operationId": "connectCoreV1PutNodeProxy", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/proxy/{path}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "connect DELETE requests to proxy of Node", - "operationId": "connectCoreV1DeleteNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "connect GET requests to proxy of Node", - "operationId": "connectCoreV1GetNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "head": { - "consumes": [ - "*/*" - ], - "description": "connect HEAD requests to proxy of Node", - "operationId": "connectCoreV1HeadNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "options": { - "consumes": [ - "*/*" - ], - "description": "connect OPTIONS requests to proxy of Node", - "operationId": "connectCoreV1OptionsNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NodeProxyOptions", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "path to the resource", - "in": "path", - "name": "path", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "Path is the URL path to use for the current proxy request to node.", - "in": "query", - "name": "path", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "*/*" - ], - "description": "connect PATCH requests to proxy of Node", - "operationId": "connectCoreV1PatchNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "post": { - "consumes": [ - "*/*" - ], - "description": "connect POST requests to proxy of Node", - "operationId": "connectCoreV1PostNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "connect PUT requests to proxy of Node", - "operationId": "connectCoreV1PutNodeProxyWithPath", - "produces": [ - "*/*" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "NodeProxyOptions", - "version": "v1" - } - } - }, - "/api/v1/nodes/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Node", - "operationId": "readCoreV1NodeStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Node", - "operationId": "patchCoreV1NodeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Node", - "operationId": "replaceCoreV1NodeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolumeClaim", - "operationId": "listCoreV1PersistentVolumeClaimForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/persistentvolumes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PersistentVolume", - "operationId": "deleteCoreV1CollectionPersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PersistentVolume", - "operationId": "listCoreV1PersistentVolume", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PersistentVolume", - "operationId": "createCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PersistentVolume", - "operationId": "deleteCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PersistentVolume", - "operationId": "readCoreV1PersistentVolume", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PersistentVolume", - "operationId": "patchCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PersistentVolume", - "operationId": "replaceCoreV1PersistentVolume", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/persistentvolumes/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PersistentVolume", - "operationId": "readCoreV1PersistentVolumeStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PersistentVolume", - "operationId": "patchCoreV1PersistentVolumeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PersistentVolume", - "operationId": "replaceCoreV1PersistentVolumeStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - } - }, - "/api/v1/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Pod", - "operationId": "listCoreV1PodForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodTemplate", - "operationId": "listCoreV1PodTemplateForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicationController", - "operationId": "listCoreV1ReplicationControllerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ResourceQuota", - "operationId": "listCoreV1ResourceQuotaForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Secret", - "operationId": "listCoreV1SecretForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ServiceAccount", - "operationId": "listCoreV1ServiceAccountForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Service", - "operationId": "listCoreV1ServiceForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ConfigMapListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1EndpointsListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1LimitRangeListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespaceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedConfigMapList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ConfigMap. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedConfigMap", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ConfigMap", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedEndpointsList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Endpoints. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedEndpoints", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Endpoints", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedLimitRangeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind LimitRange. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedLimitRange", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the LimitRange", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPersistentVolumeClaimList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPersistentVolumeClaim", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PersistentVolumeClaim", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPodList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Pod. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPod", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Pod", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedPodTemplateList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodTemplate. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedPodTemplate", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodTemplate", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedReplicationControllerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ReplicationController. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedReplicationController", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ReplicationController", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedResourceQuotaList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedResourceQuota", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ResourceQuota", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedSecretList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Secret. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedSecret", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Secret", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedServiceAccountList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedServiceAccount", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ServiceAccount", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NamespacedServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Service. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1NamespacedService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Service", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/namespaces/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Namespace. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1Namespace", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Namespace", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/nodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1NodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/nodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Node. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1Node", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Node", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumeclaims": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PersistentVolumeClaimListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PersistentVolumeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/persistentvolumes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoreV1PersistentVolume", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PersistentVolume", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/pods": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PodListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/podtemplates": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1PodTemplateListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/replicationcontrollers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ReplicationControllerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/resourcequotas": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ResourceQuotaListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/secrets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1SecretListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/serviceaccounts": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ServiceAccountListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/api/v1/watch/services": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoreV1ServiceListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available API versions", - "operationId": "getAPIVersions", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apis" - ] - } - }, - "/apis/admissionregistration.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAdmissionregistrationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAdmissionregistrationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1CollectionMutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind MutatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a MutatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified MutatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified MutatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified MutatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1CollectionValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ValidatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ValidatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ValidatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ValidatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ValidatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1MutatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1MutatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAdmissionregistrationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ] - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1CollectionMutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind MutatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a MutatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a MutatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified MutatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified MutatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified MutatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1CollectionValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ValidatingWebhookConfiguration", - "operationId": "listAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ValidatingWebhookConfiguration", - "operationId": "createAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ValidatingWebhookConfiguration", - "operationId": "deleteAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ValidatingWebhookConfiguration", - "operationId": "readAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ValidatingWebhookConfiguration", - "operationId": "patchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ValidatingWebhookConfiguration", - "operationId": "replaceAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the MutatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfigurationList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ValidatingWebhookConfiguration", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getApiextensionsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions" - ] - } - }, - "/apis/apiextensions.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiextensionsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ] - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CustomResourceDefinition", - "operationId": "deleteApiextensionsV1CollectionCustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CustomResourceDefinition", - "operationId": "listApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CustomResourceDefinition", - "operationId": "createApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CustomResourceDefinition", - "operationId": "deleteApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1CustomResourceDefinitionStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - } - }, - "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiextensionsV1CustomResourceDefinitionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiextensionsV1CustomResourceDefinition", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiextensionsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ] - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CustomResourceDefinition", - "operationId": "deleteApiextensionsV1beta1CollectionCustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CustomResourceDefinition", - "operationId": "listApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CustomResourceDefinition", - "operationId": "createApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CustomResourceDefinition", - "operationId": "deleteApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CustomResourceDefinition", - "operationId": "readApiextensionsV1beta1CustomResourceDefinitionStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CustomResourceDefinition", - "operationId": "patchApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CustomResourceDefinition", - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiextensionsV1beta1CustomResourceDefinitionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiextensionsV1beta1CustomResourceDefinition", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CustomResourceDefinition", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getApiregistrationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration" - ] - } - }, - "/apis/apiregistration.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiregistrationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ] - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of APIService", - "operationId": "deleteApiregistrationV1CollectionAPIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind APIService", - "operationId": "listApiregistrationV1APIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an APIService", - "operationId": "createApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an APIService", - "operationId": "deleteApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified APIService", - "operationId": "readApiregistrationV1APIService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified APIService", - "operationId": "patchApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified APIService", - "operationId": "replaceApiregistrationV1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified APIService", - "operationId": "readApiregistrationV1APIServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified APIService", - "operationId": "patchApiregistrationV1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified APIService", - "operationId": "replaceApiregistrationV1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - } - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiregistrationV1APIServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiregistrationV1APIService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getApiregistrationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ] - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of APIService", - "operationId": "deleteApiregistrationV1beta1CollectionAPIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind APIService", - "operationId": "listApiregistrationV1beta1APIService", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an APIService", - "operationId": "createApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an APIService", - "operationId": "deleteApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified APIService", - "operationId": "readApiregistrationV1beta1APIService", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified APIService", - "operationId": "patchApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified APIService", - "operationId": "replaceApiregistrationV1beta1APIService", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified APIService", - "operationId": "readApiregistrationV1beta1APIServiceStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified APIService", - "operationId": "patchApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified APIService", - "operationId": "replaceApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchApiregistrationV1beta1APIServiceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchApiregistrationV1beta1APIService", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the APIService", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAppsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps" - ] - } - }, - "/apis/apps/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAppsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ] - } - }, - "/apis/apps/v1/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ControllerRevision", - "operationId": "listAppsV1ControllerRevisionForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind DaemonSet", - "operationId": "listAppsV1DaemonSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Deployment", - "operationId": "listAppsV1DeploymentForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ControllerRevision", - "operationId": "deleteAppsV1CollectionNamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ControllerRevision", - "operationId": "listAppsV1NamespacedControllerRevision", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ControllerRevision", - "operationId": "createAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ControllerRevision", - "operationId": "deleteAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ControllerRevision", - "operationId": "readAppsV1NamespacedControllerRevision", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ControllerRevision", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ControllerRevision", - "operationId": "patchAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ControllerRevision", - "operationId": "replaceAppsV1NamespacedControllerRevision", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of DaemonSet", - "operationId": "deleteAppsV1CollectionNamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind DaemonSet", - "operationId": "listAppsV1NamespacedDaemonSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a DaemonSet", - "operationId": "createAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a DaemonSet", - "operationId": "deleteAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified DaemonSet", - "operationId": "readAppsV1NamespacedDaemonSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified DaemonSet", - "operationId": "patchAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified DaemonSet", - "operationId": "replaceAppsV1NamespacedDaemonSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified DaemonSet", - "operationId": "readAppsV1NamespacedDaemonSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified DaemonSet", - "operationId": "patchAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified DaemonSet", - "operationId": "replaceAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Deployment", - "operationId": "deleteAppsV1CollectionNamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Deployment", - "operationId": "listAppsV1NamespacedDeployment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Deployment", - "operationId": "createAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Deployment", - "operationId": "deleteAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Deployment", - "operationId": "readAppsV1NamespacedDeployment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Deployment", - "operationId": "patchAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeployment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified Deployment", - "operationId": "readAppsV1NamespacedDeploymentScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified Deployment", - "operationId": "patchAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Deployment", - "operationId": "readAppsV1NamespacedDeploymentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Deployment", - "operationId": "patchAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Deployment", - "operationId": "replaceAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ReplicaSet", - "operationId": "deleteAppsV1CollectionNamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicaSet", - "operationId": "listAppsV1NamespacedReplicaSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ReplicaSet", - "operationId": "createAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ReplicaSet", - "operationId": "deleteAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSetScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified ReplicaSet", - "operationId": "readAppsV1NamespacedReplicaSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified ReplicaSet", - "operationId": "patchAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified ReplicaSet", - "operationId": "replaceAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StatefulSet", - "operationId": "deleteAppsV1CollectionNamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StatefulSet", - "operationId": "listAppsV1NamespacedStatefulSet", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StatefulSet", - "operationId": "createAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StatefulSet", - "operationId": "deleteAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSet", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSet", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read scale of the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSetScale", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Scale", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update scale of the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace scale of the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - } - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified StatefulSet", - "operationId": "readAppsV1NamespacedStatefulSetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified StatefulSet", - "operationId": "patchAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified StatefulSet", - "operationId": "replaceAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - } - }, - "/apis/apps/v1/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ReplicaSet", - "operationId": "listAppsV1ReplicaSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StatefulSet", - "operationId": "listAppsV1StatefulSetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1ControllerRevisionListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1DaemonSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1DeploymentListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedControllerRevisionList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedControllerRevision", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ControllerRevision", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedDaemonSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind DaemonSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedDaemonSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the DaemonSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedDeploymentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Deployment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedDeployment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Deployment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedReplicaSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedReplicaSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ReplicaSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1NamespacedStatefulSetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StatefulSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAppsV1NamespacedStatefulSet", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StatefulSet", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/replicasets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1ReplicaSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/apps/v1/watch/statefulsets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAppsV1StatefulSetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/authentication.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAuthenticationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication" - ] - } - }, - "/apis/authentication.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthenticationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ] - } - }, - "/apis/authentication.k8s.io/v1/tokenreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a TokenReview", - "operationId": "createAuthenticationV1TokenReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - } - }, - "/apis/authentication.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthenticationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ] - } - }, - "/apis/authentication.k8s.io/v1beta1/tokenreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a TokenReview", - "operationId": "createAuthenticationV1beta1TokenReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAuthorizationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization" - ] - } - }, - "/apis/authorization.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthorizationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ] - } - }, - "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LocalSubjectAccessReview", - "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectAccessReview", - "operationId": "createAuthorizationV1SelfSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectRulesReview", - "operationId": "createAuthorizationV1SelfSubjectRulesReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1/subjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SubjectAccessReview", - "operationId": "createAuthorizationV1SubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAuthorizationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ] - } - }, - "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a LocalSubjectAccessReview", - "operationId": "createAuthorizationV1beta1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectAccessReview", - "operationId": "createAuthorizationV1beta1SelfSubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SelfSubjectRulesReview", - "operationId": "createAuthorizationV1beta1SelfSubjectRulesReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - } - }, - "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews": { - "parameters": [ - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a SubjectAccessReview", - "operationId": "createAuthorizationV1beta1SubjectAccessReview", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - } - }, - "/apis/autoscaling/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getAutoscalingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling" - ] - } - }, - "/apis/autoscaling/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ] - } - }, - "/apis/autoscaling/v1/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - } - }, - "/apis/autoscaling/v1/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV2beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ] - } - }, - "/apis/autoscaling/v2beta1/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - } - }, - "/apis/autoscaling/v2beta1/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getAutoscalingV2beta2APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ] - } - }, - "/apis/autoscaling/v2beta2/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta2HorizontalPodAutoscalerForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta2CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "operationId": "listAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a HorizontalPodAutoscaler", - "operationId": "createAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a HorizontalPodAutoscaler", - "operationId": "deleteAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified HorizontalPodAutoscaler", - "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified HorizontalPodAutoscaler", - "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified HorizontalPodAutoscaler", - "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - } - }, - "/apis/autoscaling/v2beta2/watch/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta2HorizontalPodAutoscalerListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta2" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta2" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the HorizontalPodAutoscaler", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getBatchAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch" - ] - } - }, - "/apis/batch/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getBatchV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ] - } - }, - "/apis/batch/v1/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Job", - "operationId": "listBatchV1JobForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/namespaces/{namespace}/jobs": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Job", - "operationId": "deleteBatchV1CollectionNamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Job", - "operationId": "listBatchV1NamespacedJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Job", - "operationId": "createBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Job", - "operationId": "deleteBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Job", - "operationId": "readBatchV1NamespacedJob", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Job", - "operationId": "patchBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Job", - "operationId": "replaceBatchV1NamespacedJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Job", - "operationId": "readBatchV1NamespacedJobStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Job", - "operationId": "patchBatchV1NamespacedJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Job", - "operationId": "replaceBatchV1NamespacedJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - } - }, - "/apis/batch/v1/watch/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1JobListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1NamespacedJobList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Job. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchBatchV1NamespacedJob", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Job", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getBatchV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ] - } - }, - "/apis/batch/v1beta1/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CronJob", - "operationId": "listBatchV1beta1CronJobForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CronJob", - "operationId": "deleteBatchV1beta1CollectionNamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CronJob", - "operationId": "listBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CronJob", - "operationId": "createBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CronJob", - "operationId": "deleteBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CronJob", - "operationId": "readBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CronJob", - "operationId": "patchBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CronJob", - "operationId": "replaceBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CronJob", - "operationId": "readBatchV1beta1NamespacedCronJobStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CronJob", - "operationId": "patchBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CronJob", - "operationId": "replaceBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - } - }, - "/apis/batch/v1beta1/watch/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1beta1CronJobListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchBatchV1beta1NamespacedCronJobList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CronJob. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchBatchV1beta1NamespacedCronJob", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CronJob", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getCertificatesAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates" - ] - } - }, - "/apis/certificates.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCertificatesV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ] - } - }, - "/apis/certificates.k8s.io/v1/certificatesigningrequests": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CertificateSigningRequest", - "operationId": "deleteCertificatesV1CollectionCertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CertificateSigningRequest", - "operationId": "listCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CertificateSigningRequest", - "operationId": "createCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - } - }, - "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CertificateSigningRequest", - "operationId": "deleteCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CertificateSigningRequest", - "operationId": "readCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - } - }, - "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/approval": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read approval of the specified CertificateSigningRequest", - "operationId": "readCertificatesV1CertificateSigningRequestApproval", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update approval of the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1CertificateSigningRequestApproval", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace approval of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1CertificateSigningRequestApproval", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - } - }, - "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CertificateSigningRequest", - "operationId": "readCertificatesV1CertificateSigningRequestStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - } - }, - "/apis/certificates.k8s.io/v1/watch/certificatesigningrequests": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCertificatesV1CertificateSigningRequestList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/v1/watch/certificatesigningrequests/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCertificatesV1CertificateSigningRequest", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCertificatesV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ] - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CertificateSigningRequest", - "operationId": "deleteCertificatesV1beta1CollectionCertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CertificateSigningRequest", - "operationId": "listCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CertificateSigningRequest", - "operationId": "createCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CertificateSigningRequest", - "operationId": "deleteCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read approval of the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequestApproval", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update approval of the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequestApproval", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace approval of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestApproval", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified CertificateSigningRequest", - "operationId": "readCertificatesV1beta1CertificateSigningRequestStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified CertificateSigningRequest", - "operationId": "patchCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified CertificateSigningRequest", - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - } - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCertificatesV1beta1CertificateSigningRequestList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCertificatesV1beta1CertificateSigningRequest", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CertificateSigningRequest", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getCoordinationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination" - ] - } - }, - "/apis/coordination.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoordinationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ] - } - }, - "/apis/coordination.k8s.io/v1/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1LeaseForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Lease", - "operationId": "deleteCoordinationV1CollectionNamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1NamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Lease", - "operationId": "createCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - } - }, - "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Lease", - "operationId": "deleteCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Lease", - "operationId": "readCoordinationV1NamespacedLease", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Lease", - "operationId": "patchCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Lease", - "operationId": "replaceCoordinationV1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - } - }, - "/apis/coordination.k8s.io/v1/watch/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1LeaseListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1NamespacedLeaseList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoordinationV1NamespacedLease", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getCoordinationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ] - } - }, - "/apis/coordination.k8s.io/v1beta1/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1beta1LeaseForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Lease", - "operationId": "deleteCoordinationV1beta1CollectionNamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Lease", - "operationId": "listCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Lease", - "operationId": "createCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - } - }, - "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Lease", - "operationId": "deleteCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Lease", - "operationId": "readCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Lease", - "operationId": "patchCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Lease", - "operationId": "replaceCoordinationV1beta1NamespacedLease", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - } - }, - "/apis/coordination.k8s.io/v1beta1/watch/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1beta1LeaseListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchCoordinationV1beta1NamespacedLeaseList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchCoordinationV1beta1NamespacedLease", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "coordination_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "coordination.k8s.io", - "kind": "Lease", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Lease", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getDiscoveryAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery" - ] - } - }, - "/apis/discovery.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getDiscoveryV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ] - } - }, - "/apis/discovery.k8s.io/v1beta1/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind EndpointSlice", - "operationId": "listDiscoveryV1beta1EndpointSliceForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of EndpointSlice", - "operationId": "deleteDiscoveryV1beta1CollectionNamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind EndpointSlice", - "operationId": "listDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an EndpointSlice", - "operationId": "createDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - } - }, - "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an EndpointSlice", - "operationId": "deleteDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified EndpointSlice", - "operationId": "readDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the EndpointSlice", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified EndpointSlice", - "operationId": "patchDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified EndpointSlice", - "operationId": "replaceDiscoveryV1beta1NamespacedEndpointSlice", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - } - }, - "/apis/discovery.k8s.io/v1beta1/watch/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchDiscoveryV1beta1EndpointSliceListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchDiscoveryV1beta1NamespacedEndpointSliceList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchDiscoveryV1beta1NamespacedEndpointSlice", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "discovery_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "discovery.k8s.io", - "kind": "EndpointSlice", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the EndpointSlice", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getEventsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events" - ] - } - }, - "/apis/events.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getEventsV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ] - } - }, - "/apis/events.k8s.io/v1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteEventsV1CollectionNamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createEventsV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - } - }, - "/apis/events.k8s.io/v1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteEventsV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readEventsV1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchEventsV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceEventsV1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - } - }, - "/apis/events.k8s.io/v1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchEventsV1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getEventsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ] - } - }, - "/apis/events.k8s.io/v1beta1/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1beta1EventForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Event", - "operationId": "deleteEventsV1beta1CollectionNamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Event", - "operationId": "listEventsV1beta1NamespacedEvent", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Event", - "operationId": "createEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - } - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Event", - "operationId": "deleteEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Event", - "operationId": "readEventsV1beta1NamespacedEvent", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Event", - "operationId": "patchEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Event", - "operationId": "replaceEventsV1beta1NamespacedEvent", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - } - }, - "/apis/events.k8s.io/v1beta1/watch/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1beta1EventListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchEventsV1beta1NamespacedEventList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchEventsV1beta1NamespacedEvent", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Event", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getExtensionsAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions" - ] - } - }, - "/apis/extensions/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getExtensionsV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ] - } - }, - "/apis/extensions/v1beta1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listExtensionsV1beta1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteExtensionsV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readExtensionsV1beta1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/extensions/v1beta1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchExtensionsV1beta1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchExtensionsV1beta1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchExtensionsV1beta1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getNetworkingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking" - ] - } - }, - "/apis/networking.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNetworkingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ] - } - }, - "/apis/networking.k8s.io/v1/ingressclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of IngressClass", - "operationId": "deleteNetworkingV1CollectionIngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind IngressClass", - "operationId": "listNetworkingV1IngressClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an IngressClass", - "operationId": "createNetworkingV1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/ingressclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an IngressClass", - "operationId": "deleteNetworkingV1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified IngressClass", - "operationId": "readNetworkingV1IngressClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified IngressClass", - "operationId": "patchNetworkingV1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified IngressClass", - "operationId": "replaceNetworkingV1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteNetworkingV1CollectionNamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createNetworkingV1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteNetworkingV1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readNetworkingV1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchNetworkingV1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceNetworkingV1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readNetworkingV1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchNetworkingV1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceNetworkingV1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of NetworkPolicy", - "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind NetworkPolicy", - "operationId": "listNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a NetworkPolicy", - "operationId": "createNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a NetworkPolicy", - "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified NetworkPolicy", - "operationId": "readNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the NetworkPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified NetworkPolicy", - "operationId": "patchNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified NetworkPolicy", - "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - } - }, - "/apis/networking.k8s.io/v1/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind NetworkPolicy", - "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/ingressclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1IngressClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/ingressclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1IngressClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1NamespacedNetworkPolicy", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the NetworkPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1/watch/networkpolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNetworkingV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ] - } - }, - "/apis/networking.k8s.io/v1beta1/ingressclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of IngressClass", - "operationId": "deleteNetworkingV1beta1CollectionIngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind IngressClass", - "operationId": "listNetworkingV1beta1IngressClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an IngressClass", - "operationId": "createNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/ingressclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an IngressClass", - "operationId": "deleteNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified IngressClass", - "operationId": "readNetworkingV1beta1IngressClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified IngressClass", - "operationId": "patchNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified IngressClass", - "operationId": "replaceNetworkingV1beta1IngressClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1beta1IngressForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Ingress", - "operationId": "deleteNetworkingV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Ingress", - "operationId": "listNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create an Ingress", - "operationId": "createNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete an Ingress", - "operationId": "deleteNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Ingress", - "operationId": "readNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Ingress", - "operationId": "patchNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Ingress", - "operationId": "replaceNetworkingV1beta1NamespacedIngress", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified Ingress", - "operationId": "readNetworkingV1beta1NamespacedIngressStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified Ingress", - "operationId": "patchNetworkingV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified Ingress", - "operationId": "replaceNetworkingV1beta1NamespacedIngressStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - } - }, - "/apis/networking.k8s.io/v1beta1/watch/ingressclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1IngressClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/ingressclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1beta1IngressClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "IngressClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the IngressClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1IngressListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingV1beta1NamespacedIngressList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingV1beta1NamespacedIngress", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "networking_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Ingress", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/node.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getNodeAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node" - ] - } - }, - "/apis/node.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getNodeV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ] - } - }, - "/apis/node.k8s.io/v1beta1/runtimeclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RuntimeClass", - "operationId": "deleteNodeV1beta1CollectionRuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RuntimeClass", - "operationId": "listNodeV1beta1RuntimeClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RuntimeClass", - "operationId": "createNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - } - }, - "/apis/node.k8s.io/v1beta1/runtimeclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RuntimeClass", - "operationId": "deleteNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RuntimeClass", - "operationId": "readNodeV1beta1RuntimeClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the RuntimeClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RuntimeClass", - "operationId": "patchNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RuntimeClass", - "operationId": "replaceNodeV1beta1RuntimeClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - } - }, - "/apis/node.k8s.io/v1beta1/watch/runtimeclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNodeV1beta1RuntimeClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/node.k8s.io/v1beta1/watch/runtimeclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNodeV1beta1RuntimeClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "node_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "node.k8s.io", - "kind": "RuntimeClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RuntimeClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getPolicyAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy" - ] - } - }, - "/apis/policy/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getPolicyV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ] - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodDisruptionBudget", - "operationId": "deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodDisruptionBudget", - "operationId": "listPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodDisruptionBudget", - "operationId": "createPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodDisruptionBudget", - "operationId": "deletePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodDisruptionBudget", - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodDisruptionBudget", - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodDisruptionBudget", - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified PodDisruptionBudget", - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified PodDisruptionBudget", - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified PodDisruptionBudget", - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodDisruptionBudget", - "operationId": "listPolicyV1beta1PodDisruptionBudgetForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/podsecuritypolicies": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PodSecurityPolicy", - "operationId": "deletePolicyV1beta1CollectionPodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PodSecurityPolicy", - "operationId": "listPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PodSecurityPolicy", - "operationId": "createPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/podsecuritypolicies/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PodSecurityPolicy", - "operationId": "deletePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PodSecurityPolicy", - "operationId": "readPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PodSecurityPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PodSecurityPolicy", - "operationId": "patchPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PodSecurityPolicy", - "operationId": "replacePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - } - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudgetList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudget", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodDisruptionBudget", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/poddisruptionbudgets": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchPolicyV1beta1PodSecurityPolicyList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchPolicyV1beta1PodSecurityPolicy", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PodSecurityPolicy", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getRbacAuthorizationAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getRbacAuthorizationV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1CollectionClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRoleBinding", - "operationId": "listRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRoleBinding", - "operationId": "createRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRoleBinding", - "operationId": "readRbacAuthorizationV1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRoleBinding", - "operationId": "patchRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRoleBinding", - "operationId": "replaceRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRole", - "operationId": "deleteRbacAuthorizationV1CollectionClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRole", - "operationId": "listRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRole", - "operationId": "createRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRole", - "operationId": "deleteRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRole", - "operationId": "readRbacAuthorizationV1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRole", - "operationId": "patchRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRole", - "operationId": "replaceRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RoleBinding", - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RoleBinding", - "operationId": "createRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RoleBinding", - "operationId": "deleteRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RoleBinding", - "operationId": "readRbacAuthorizationV1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RoleBinding", - "operationId": "patchRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RoleBinding", - "operationId": "replaceRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Role", - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Role", - "operationId": "createRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Role", - "operationId": "deleteRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Role", - "operationId": "readRbacAuthorizationV1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Role", - "operationId": "patchRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Role", - "operationId": "replaceRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1ClusterRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1ClusterRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1NamespacedRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1RoleBindingListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1RoleListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getRbacAuthorizationV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ] - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRoleBinding", - "operationId": "listRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRoleBinding", - "operationId": "createRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRoleBinding", - "operationId": "readRbacAuthorizationV1beta1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRoleBinding", - "operationId": "patchRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRoleBinding", - "operationId": "replaceRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of ClusterRole", - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind ClusterRole", - "operationId": "listRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a ClusterRole", - "operationId": "createRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a ClusterRole", - "operationId": "deleteRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified ClusterRole", - "operationId": "readRbacAuthorizationV1beta1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified ClusterRole", - "operationId": "patchRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified ClusterRole", - "operationId": "replaceRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of RoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a RoleBinding", - "operationId": "createRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a RoleBinding", - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified RoleBinding", - "operationId": "readRbacAuthorizationV1beta1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified RoleBinding", - "operationId": "patchRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified RoleBinding", - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of Role", - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a Role", - "operationId": "createRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a Role", - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified Role", - "operationId": "readRbacAuthorizationV1beta1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified Role", - "operationId": "patchRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified Role", - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind RoleBinding", - "operationId": "listRbacAuthorizationV1beta1RoleBindingForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind Role", - "operationId": "listRbacAuthorizationV1beta1RoleForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1ClusterRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the ClusterRole", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBindingList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBinding", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the RoleBinding", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchRbacAuthorizationV1beta1NamespacedRole", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the Role", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "object name and auth scope, such as for teams and projects", - "in": "path", - "name": "namespace", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/roles": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchRbacAuthorizationV1beta1RoleListForAllNamespaces", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getSchedulingAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling" - ] - } - }, - "/apis/scheduling.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getSchedulingV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ] - } - }, - "/apis/scheduling.k8s.io/v1/priorityclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PriorityClass", - "operationId": "deleteSchedulingV1CollectionPriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PriorityClass", - "operationId": "listSchedulingV1PriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PriorityClass", - "operationId": "createSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - } - }, - "/apis/scheduling.k8s.io/v1/priorityclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PriorityClass", - "operationId": "deleteSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PriorityClass", - "operationId": "readSchedulingV1PriorityClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PriorityClass", - "operationId": "patchSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PriorityClass", - "operationId": "replaceSchedulingV1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - } - }, - "/apis/scheduling.k8s.io/v1/watch/priorityclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchSchedulingV1PriorityClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1/watch/priorityclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchSchedulingV1PriorityClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getSchedulingV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ] - } - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of PriorityClass", - "operationId": "deleteSchedulingV1beta1CollectionPriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind PriorityClass", - "operationId": "listSchedulingV1beta1PriorityClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a PriorityClass", - "operationId": "createSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - } - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a PriorityClass", - "operationId": "deleteSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified PriorityClass", - "operationId": "readSchedulingV1beta1PriorityClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified PriorityClass", - "operationId": "patchSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified PriorityClass", - "operationId": "replaceSchedulingV1beta1PriorityClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - } - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchSchedulingV1beta1PriorityClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchSchedulingV1beta1PriorityClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the PriorityClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get information of a group", - "operationId": "getStorageAPIGroup", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage" - ] - } - }, - "/apis/storage.k8s.io/v1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getStorageV1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ] - } - }, - "/apis/storage.k8s.io/v1/csidrivers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSIDriver", - "operationId": "deleteStorageV1CollectionCSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSIDriver", - "operationId": "listStorageV1CSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSIDriver", - "operationId": "createStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csidrivers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSIDriver", - "operationId": "deleteStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSIDriver", - "operationId": "readStorageV1CSIDriver", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSIDriver", - "operationId": "patchStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSIDriver", - "operationId": "replaceStorageV1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csinodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSINode", - "operationId": "deleteStorageV1CollectionCSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSINode", - "operationId": "listStorageV1CSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSINode", - "operationId": "createStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/csinodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSINode", - "operationId": "deleteStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSINode", - "operationId": "readStorageV1CSINode", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSINode", - "operationId": "patchStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSINode", - "operationId": "replaceStorageV1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/storageclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StorageClass", - "operationId": "deleteStorageV1CollectionStorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StorageClass", - "operationId": "listStorageV1StorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StorageClass", - "operationId": "createStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/storageclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StorageClass", - "operationId": "deleteStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StorageClass", - "operationId": "readStorageV1StorageClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StorageClass", - "operationId": "patchStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StorageClass", - "operationId": "replaceStorageV1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of VolumeAttachment", - "operationId": "deleteStorageV1CollectionVolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind VolumeAttachment", - "operationId": "listStorageV1VolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a VolumeAttachment", - "operationId": "createStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a VolumeAttachment", - "operationId": "deleteStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified VolumeAttachment", - "operationId": "readStorageV1VolumeAttachment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified VolumeAttachment", - "operationId": "patchStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified VolumeAttachment", - "operationId": "replaceStorageV1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/volumeattachments/{name}/status": { - "get": { - "consumes": [ - "*/*" - ], - "description": "read status of the specified VolumeAttachment", - "operationId": "readStorageV1VolumeAttachmentStatus", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update status of the specified VolumeAttachment", - "operationId": "patchStorageV1VolumeAttachmentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace status of the specified VolumeAttachment", - "operationId": "replaceStorageV1VolumeAttachmentStatus", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - } - }, - "/apis/storage.k8s.io/v1/watch/csidrivers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1CSIDriverList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csidrivers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1CSIDriver", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csinodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1CSINodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/csinodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1CSINode", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1StorageClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1StorageClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/volumeattachments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1VolumeAttachmentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1/watch/volumeattachments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1VolumeAttachment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/": { - "get": { - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "description": "get available resources", - "operationId": "getStorageV1beta1APIResources", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ] - } - }, - "/apis/storage.k8s.io/v1beta1/csidrivers": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSIDriver", - "operationId": "deleteStorageV1beta1CollectionCSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSIDriver", - "operationId": "listStorageV1beta1CSIDriver", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSIDriver", - "operationId": "createStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csidrivers/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSIDriver", - "operationId": "deleteStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSIDriver", - "operationId": "readStorageV1beta1CSIDriver", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSIDriver", - "operationId": "patchStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSIDriver", - "operationId": "replaceStorageV1beta1CSIDriver", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csinodes": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of CSINode", - "operationId": "deleteStorageV1beta1CollectionCSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind CSINode", - "operationId": "listStorageV1beta1CSINode", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a CSINode", - "operationId": "createStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/csinodes/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a CSINode", - "operationId": "deleteStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified CSINode", - "operationId": "readStorageV1beta1CSINode", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified CSINode", - "operationId": "patchStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified CSINode", - "operationId": "replaceStorageV1beta1CSINode", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of StorageClass", - "operationId": "deleteStorageV1beta1CollectionStorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind StorageClass", - "operationId": "listStorageV1beta1StorageClass", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a StorageClass", - "operationId": "createStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a StorageClass", - "operationId": "deleteStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified StorageClass", - "operationId": "readStorageV1beta1StorageClass", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified StorageClass", - "operationId": "patchStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified StorageClass", - "operationId": "replaceStorageV1beta1StorageClass", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete collection of VolumeAttachment", - "operationId": "deleteStorageV1beta1CollectionVolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "list or watch objects of kind VolumeAttachment", - "operationId": "listStorageV1beta1VolumeAttachment", - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "post": { - "consumes": [ - "*/*" - ], - "description": "create a VolumeAttachment", - "operationId": "createStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments/{name}": { - "delete": { - "consumes": [ - "*/*" - ], - "description": "delete a VolumeAttachment", - "operationId": "deleteStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "in": "query", - "name": "gracePeriodSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "in": "query", - "name": "orphanDependents", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "in": "query", - "name": "propagationPolicy", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "get": { - "consumes": [ - "*/*" - ], - "description": "read the specified VolumeAttachment", - "operationId": "readStorageV1beta1VolumeAttachment", - "parameters": [ - { - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "exact", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - "in": "query", - "name": "export", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - } - ], - "patch": { - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "description": "partially update the specified VolumeAttachment", - "operationId": "patchStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - }, - { - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "in": "query", - "name": "force", - "type": "boolean", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "put": { - "consumes": [ - "*/*" - ], - "description": "replace the specified VolumeAttachment", - "operationId": "replaceStorageV1beta1VolumeAttachment", - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - { - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "in": "query", - "name": "dryRun", - "type": "string", - "uniqueItems": true - }, - { - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - "in": "query", - "name": "fieldManager", - "type": "string", - "uniqueItems": true - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - } - }, - "/apis/storage.k8s.io/v1beta1/watch/csidrivers": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1CSIDriverList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csidrivers/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1CSIDriver", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSIDriver", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSIDriver", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csinodes": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1CSINodeList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/csinodes/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1CSINode", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "CSINode", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the CSINode", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1StorageClassList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1StorageClass", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the StorageClass", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageV1beta1VolumeAttachmentList", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments/{name}": { - "get": { - "consumes": [ - "*/*" - ], - "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageV1beta1VolumeAttachment", - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - "in": "query", - "name": "allowWatchBookmarks", - "type": "boolean", - "uniqueItems": true - }, - { - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "in": "query", - "name": "continue", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "in": "query", - "name": "fieldSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "in": "query", - "name": "labelSelector", - "type": "string", - "uniqueItems": true - }, - { - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "in": "query", - "name": "limit", - "type": "integer", - "uniqueItems": true - }, - { - "description": "name of the VolumeAttachment", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "description": "If 'true', then the output is pretty printed.", - "in": "query", - "name": "pretty", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersion", - "type": "string", - "uniqueItems": true - }, - { - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "in": "query", - "name": "resourceVersionMatch", - "type": "string", - "uniqueItems": true - }, - { - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "in": "query", - "name": "timeoutSeconds", - "type": "integer", - "uniqueItems": true - }, - { - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "in": "query", - "name": "watch", - "type": "boolean", - "uniqueItems": true - } - ] - }, - "/logs/": { - "get": { - "operationId": "logFileListHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "logs" - ] - } - }, - "/logs/{logpath}": { - "get": { - "operationId": "logFileHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "logs" - ] - }, - "parameters": [ - { - "description": "path to the log", - "in": "path", - "name": "logpath", - "required": true, - "type": "string", - "uniqueItems": true - } - ] - }, - "/version/": { - "get": { - "consumes": [ - "application/json" - ], - "description": "get the code version", - "operationId": "getCodeVersion", - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "schemes": [ - "https" - ], - "tags": [ - "version" - ] - } - } - }, - "security": [ - { - "BearerToken": [] - } - ], - "securityDefinitions": { - "BearerToken": { - "description": "Bearer Token authentication", - "in": "header", - "name": "authorization", - "type": "apiKey" - } - }, - "swagger": "2.0" -} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1204/swagger.go b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1204/swagger.go new file mode 100644 index 0000000000..21462426e4 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1204/swagger.go @@ -0,0 +1,251 @@ +// Copyright 2021 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Code generated for package v1204 by go-bindata DO NOT EDIT. (@generated) +// sources: +// kubernetesapi/v1204/swagger.json +package v1204 + +import ( + "bytes" + "compress/gzip" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "strings" + "time" +) + +func bindataRead(data []byte, name string) ([]byte, error) { + gz, err := gzip.NewReader(bytes.NewBuffer(data)) + if err != nil { + return nil, fmt.Errorf("Read %q: %v", name, err) + } + + var buf bytes.Buffer + _, err = io.Copy(&buf, gz) + clErr := gz.Close() + + if err != nil { + return nil, fmt.Errorf("Read %q: %v", name, err) + } + if clErr != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +type asset struct { + bytes []byte + info os.FileInfo +} + +type bindataFileInfo struct { + name string + size int64 + mode os.FileMode + modTime time.Time +} + +// Name return file name +func (fi bindataFileInfo) Name() string { + return fi.name +} + +// Size return file size +func (fi bindataFileInfo) Size() int64 { + return fi.size +} + +// Mode return file mode +func (fi bindataFileInfo) Mode() os.FileMode { + return fi.mode +} + +// Mode return file modify time +func (fi bindataFileInfo) ModTime() time.Time { + return fi.modTime +} + +// IsDir return file whether a directory +func (fi bindataFileInfo) IsDir() bool { + return fi.mode&os.ModeDir != 0 +} + +// Sys return file is sys mode +func (fi bindataFileInfo) Sys() interface{} { + return nil +} + +var _kubernetesapiV1204SwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\xff\x73\xdb\xb8\xd5\x37\xfa\xfb\xfb\x57\x60\xbc\xb7\x93\x64\x47\x96\x93\xdd\xb6\x4f\xdf\x74\x3a\xf7\xba\x49\xb6\x75\x9b\xcd\xfa\xb5\x9d\x76\xde\xfb\xb8\xf3\x06\x22\x21\x09\x8f\x49\x80\x0b\x80\x76\xd4\x3b\xcf\xff\x7e\x07\xe7\x00\x20\x48\x51\x22\x25\x4b\xb6\xec\xb0\x3f\x74\x63\x0a\x04\xf1\xf5\x7c\xfd\x9c\x73\xfe\xbf\xff\x41\xc8\x51\xca\xa6\x5c\x70\xc3\xa5\xd0\x47\x6f\x89\x7d\x44\xc8\x11\x97\xe3\x9b\x3f\xe8\x31\x2d\xf8\x98\xa6\x39\xd7\x9a\x4b\xa1\xd8\x8c\x6b\xa3\xa8\x6d\x3a\xbe\x7d\x33\xfe\xb9\x34\xd4\x70\x31\xfb\x27\x9b\xcc\xa5\xbc\x09\x2f\x43\x9f\x3a\x51\xbc\xb0\x2d\x8f\xde\x92\xa3\x46\x4b\x82\x3f\x4f\x98\x26\x54\x90\xd0\x3f\xb9\x73\x3f\x53\x91\x12\x33\x67\x44\x31\x2d\x4b\x95\x40\xb3\x94\xc8\x82\xe1\xb7\x35\xe1\x86\xd0\xa2\xc8\x38\xd3\xc4\xc8\xf1\xd1\xc8\x7f\xb6\x50\xb6\x91\xe1\x4c\x47\x83\x21\xe4\x28\x7c\xe2\x82\xdd\x72\x76\xf7\x0f\xa6\x74\x6d\xba\xed\xa3\x3e\x6d\x7f\x8b\x70\x18\xb6\x54\x29\x53\x2c\x25\x19\xd7\x86\xc8\x29\x29\x14\x9b\x32\x65\x9f\x7c\x69\xbc\xf8\x85\xdc\xfa\x57\xed\xac\xfc\x22\xb0\xaf\x05\x4b\x8c\x1e\x93\xd3\xf3\x33\xa2\x99\xba\x65\x8a\xdc\xf1\x2c\x23\x46\x2d\x88\x91\xa4\xd4\x8c\x4c\xb9\xd2\xc6\xbf\x4e\xb8\x80\x0e\xe0\x8b\x77\x73\x9e\xcc\xed\x42\xe8\xb2\x28\xa4\xb2\xfd\x9c\x4d\x89\x90\x82\xd9\xc1\xd8\x66\xe1\xa3\xba\x60\x09\x9f\x72\x96\x62\x07\x5c\x63\x0f\xee\x45\x96\x92\xc9\x22\x1a\xc3\x88\xdc\xd2\x8c\xa7\xb0\xd2\x38\x9e\x29\xe5\x19\x99\x4a\x85\xef\xca\xc9\x7f\xb1\xc4\xc0\xd7\x28\x29\xec\x37\xb4\xed\xc3\xef\x5d\x22\xc5\x94\xcf\x4a\xdc\xa9\xf0\x69\x4d\x68\x96\xc9\x3b\x96\x56\xa3\xb2\x5b\x9a\x4a\xa6\x89\x90\x86\x70\x91\x64\x65\xca\x08\x15\x8b\xaa\xc5\x8d\x90\x77\xc2\xae\x84\x9d\x8d\x1d\xe0\xa5\x1b\x60\x42\xb3\x4c\xfb\x1f\xfc\x87\xab\xa1\xda\x9e\x27\x8c\xe8\x12\x46\xea\xdb\xd9\x9f\x4a\xc5\x48\x21\x33\x9e\x2c\xaa\x43\x83\xc7\xdd\xb0\xbc\x79\x1c\x08\x39\x32\x8b\x82\xd9\x93\xa0\x8d\xe2\x62\x76\x14\xfd\xf8\xdf\xb5\xd7\x7d\x3b\xaa\x14\x5d\x54\xcd\xa2\x46\x47\x49\xc6\x99\x30\xef\x60\x75\x9a\xe7\xee\xff\x52\x6c\x6a\x5f\xff\xee\x24\xba\x8b\x27\x7d\xae\xa0\x3b\x4b\xef\xe2\xce\x47\x6b\x8e\x74\xdc\x90\xc0\xc7\x98\x26\x73\x79\x67\x17\x29\x91\x79\x5e\x0a\x9e\x50\xc3\xc8\x1d\x37\x73\x58\x35\xdb\xfb\x98\x5c\xb0\x5f\x4b\xae\x58\xda\x3e\x35\xb7\xb2\xe7\xb0\xb0\x1d\x77\xea\xa7\xb8\x6d\x6d\x04\xa5\x50\x2c\x91\x33\xc1\xff\xcd\x52\xc2\x94\x92\x4a\x93\xa9\x92\x39\x0c\xa3\xa2\x11\x4c\xa4\x85\xe4\xc2\x10\xaa\x18\x99\x53\x91\x66\x2c\x25\xc7\xd5\xf1\xa2\x59\x69\x4f\x9b\x62\xe4\x6c\x26\xa4\x62\x44\x2a\x62\x3f\x3a\x26\xef\xd9\x94\x96\x99\x81\x83\x03\x4f\x8e\x5a\xf7\xb0\xb9\xd7\xf1\x4c\x73\x6a\x92\x79\xaf\x79\x46\x2d\xeb\xeb\x3c\x67\xe4\xfa\x48\x95\x19\xd3\xd7\x47\x78\x0f\xb9\xb6\x57\x3d\xb5\xc3\x82\xb7\xec\x65\x90\x39\x17\x33\xa2\xd8\xaf\x25\xd3\x40\x22\x96\xa7\x77\x7d\xf4\xe1\x2b\x4d\xcc\xf5\x91\x9d\xe1\xf5\xd1\x87\x5f\x4b\x7e\x4b\x33\x26\xcc\xf5\xd1\xf8\x5a\x5c\x8b\x63\x02\xbf\xbf\x75\x9d\x52\xdf\x1b\x91\x22\x5b\x10\x3e\xb5\xb4\x83\xd9\x16\xd9\x02\x9b\xd8\x7e\x23\x5a\x61\xc7\x38\x26\x3f\x49\x65\x5b\xe5\x45\xc6\x46\xf6\xa5\x94\x15\x99\x5c\xe4\x4c\x18\x4d\x12\x2a\xec\x3d\xcb\x65\x8a\x6f\xdc\x72\x6a\xc9\xb2\x3e\xb9\x7d\x33\xf2\xff\x98\x30\x43\xed\x5f\x22\x25\xec\xab\x61\x02\x6e\x76\xf5\x7c\x52\x9a\x68\x39\x70\x64\x48\x0a\x52\xf2\x85\x16\xfc\x2f\x4a\x96\x85\x7e\xfb\x9f\xd7\x47\xb6\xbf\xeb\xa3\x7f\xd9\x8e\xb9\xa7\xc4\xf6\xf9\xed\x1b\x78\x1a\x58\xc5\x5b\xf2\x9f\xd7\x47\xd1\x28\xaf\x8f\xfe\xf5\x65\x14\xcd\xde\xc8\xda\xd0\x08\xcc\xaf\x39\x30\x72\x27\xcb\x2c\x05\xca\x64\x09\x09\x13\xa6\x41\x6d\xfc\x0a\x87\x45\x5f\x5e\x66\x3e\xf5\x2b\xa3\xe1\x29\x8e\x0f\xb6\x1c\x29\x31\xcc\x7a\x44\xd8\x2d\x13\xb8\x74\x42\x9a\x39\x53\x40\xe9\x66\x76\xde\x76\x6c\x8e\x18\xee\x7d\x23\xec\xf3\xc3\xdd\x88\x09\xb3\x7c\xe5\x96\x01\xb7\xaa\x5e\x84\x51\xaf\xda\x9d\xf8\xba\xd7\xaf\xc7\xe6\xf7\x5e\xd0\x9c\x75\x5c\xf8\xab\x39\x23\xb6\x99\xe7\xbe\x4b\x52\xcd\x98\x7c\xb2\x3f\xeb\xb9\x9f\xd1\xb4\xcc\xb2\x05\xf9\xb5\xa4\x19\xec\xda\x88\xb0\xf1\x6c\x3c\x22\x3c\xa7\x33\xe6\x98\xd4\x4d\x39\x61\x4a\x30\xc3\xf4\x98\xcb\x11\xb9\x9b\x33\xb8\xf8\x51\x93\xeb\x23\x4b\x3f\x4c\xe3\xe3\xee\x93\xb8\xad\xb5\x4e\xda\x5a\x4b\x35\xa3\x82\xff\x1b\x99\x4a\xa0\xf5\x5b\x90\x47\xdb\xa9\x2e\x68\xc2\x2e\x59\xc6\x12\x23\xd5\xa6\x8c\x2e\xa7\xc9\x9c\x0b\xa6\x16\xe3\xe2\x66\x66\x1f\xe8\x71\xce\x0c\xb5\x9c\xee\x23\x9d\xb0\x2c\xf4\xbb\x8e\xc7\x7d\x6a\x8e\x82\xa4\x2c\xe1\x29\xd3\x76\xfd\xe0\x86\x19\x49\x54\x29\x6a\xd2\x83\x14\x20\xd3\xa1\xc4\x30\xa1\x96\x1e\xdb\xad\xf3\x2f\xb8\x15\x83\x6e\x9d\x28\x44\x8d\x6f\xee\xa9\xa7\x6d\xa5\xdd\x37\x41\x3e\x82\xc5\xc5\x36\xdc\x68\x96\x4d\x41\x74\xac\x7a\x1a\x41\x0b\x78\xdd\x92\x7b\xae\xad\x3c\x35\x95\x2a\xc7\xaf\x3b\x49\xcb\xae\x40\x4a\x0d\x1d\x67\x76\x09\xf4\x52\xcf\x3a\x50\x8e\x24\x2b\xb5\x61\x8a\xe8\x44\x16\x96\x82\xbb\xab\x38\xb2\xa4\x5e\x30\x2b\x5f\xea\x1b\x5e\xe8\xa5\xab\x52\xa3\x2d\xab\x16\x67\xe1\x3e\x68\x97\x51\xea\x78\x3d\x38\xca\x70\x54\x6b\x99\x70\x0a\xc2\xa0\x15\x1f\x2c\x39\x11\x19\xbb\x65\x99\xa5\x28\x53\x72\x7d\xf4\xda\x33\xab\x37\xd7\x47\x7f\x24\x64\x21\x4b\x94\xda\x34\x33\xb5\xc5\x23\x54\x93\xa9\xb4\x2c\x4f\xbf\x25\xd7\xcb\xc7\xea\xda\x9e\xab\x6b\x41\xc8\x35\xf2\xd9\x0f\x5f\x0b\xc5\xe0\xb2\x69\xfb\xd3\x7f\xda\x9f\x08\xb6\xb0\xff\xbb\x3e\xba\x61\x0b\xfb\x43\x3c\xa2\x51\xf5\x2b\x2a\x16\xd8\xed\xf5\xd1\x27\x69\xce\x44\xed\x77\x64\xba\x51\xcf\xf8\xf8\x75\xd4\x88\xe0\xa4\xfc\x9f\xff\xc2\x7f\xfc\xb7\xfd\xcf\xbf\xae\xc5\x7f\xdb\x45\x3e\x9b\x12\x2e\xb4\x61\x34\xc5\x89\x53\x24\x5b\x40\x6a\x37\x5f\xf0\xe6\x62\xa3\x5c\xc1\xc4\x2d\x57\x52\xe4\x40\xe6\x70\xcd\x0b\x25\x53\xbf\xec\xda\xd0\x19\x17\x33\xbb\xf8\x8f\xb0\xf6\xb5\xc1\xad\x5c\xfe\x7e\x6b\x8f\xb3\xaa\x2d\x7f\x98\xdc\xba\x4d\xb8\x64\x8c\xcc\x8d\x29\xf4\xdb\x93\x93\x1a\x5d\x3c\x49\x65\xa2\x4f\x12\x29\x12\x56\x18\x7d\x22\x6f\x99\xb2\xaa\xdb\xc9\x9d\x54\x37\x5c\xcc\x8e\xed\x22\x1f\xbb\xfd\x38\xc1\x8b\x78\x02\x84\x20\xb7\x32\xa6\xbb\x3c\xda\x2e\x39\xfc\x18\x96\x53\xc7\xbc\xc8\xb3\x29\x96\x17\x66\x41\x6a\x14\x6d\xe4\x14\x3a\x4f\x4b\xec\x6d\x5d\x18\x4b\x16\xc6\xed\xb4\x16\xc7\xf2\xa8\x84\xf6\x97\xda\x10\xfa\x50\xd9\x40\x58\x79\x8d\x84\xcd\xa9\xae\xa8\xa0\xa7\x72\xf5\x09\xda\x33\xcf\xec\x61\x80\x23\x4f\x67\xd4\xde\x25\x32\x91\xee\xe8\xcb\x2c\xc5\xd1\x00\xc7\x13\xec\xce\xfd\x05\x64\x3a\xc8\x10\x2d\xa2\x02\xb2\x48\xae\xad\x7c\xa1\x39\x6a\xf4\x95\x20\x3e\x25\x8c\xc3\x5c\xd6\x52\xfa\x53\x22\xca\x2c\xf3\x6d\x5e\x56\x63\x71\xfa\x7a\x42\x35\xf0\xda\x44\x31\x6a\xd8\xc8\xde\xc5\x6a\x84\x8d\x36\x29\xcb\x98\x61\xaf\x6c\x9b\x8a\x1f\xc1\x2c\x12\x2a\x2c\x95\x9d\xd3\x5b\xe6\xd6\x88\xbc\xcc\xf8\x0d\x23\x94\xbc\x0f\x52\xd6\x85\xcc\xb2\x09\x4d\x6e\xe0\x7d\x72\x2e\xd3\x73\x25\xbf\x2e\x7e\x29\xd0\x6c\x82\xdd\xbd\xf2\x04\xbb\x65\xca\x63\xf2\x59\xb3\x78\x6b\x02\x59\xf0\x5a\x43\xbc\x9d\x5c\x13\x59\x98\x63\x2e\x46\x64\xc2\x12\x5a\x6a\x66\xd5\x33\xab\xcd\x28\xbb\xa1\x0b\x60\x37\xed\xd2\x10\x99\x2c\x2c\xe9\x31\x76\xc7\xc1\xa6\xe1\x76\x7d\x0f\x37\x45\x31\x2e\x6e\x65\x02\xe2\x4d\x2f\xdd\x6d\xf9\x05\xc2\x45\x0a\x8a\x71\x74\xba\xe7\x5c\x87\xc9\x54\x42\x5d\x42\x33\xab\x90\xe6\x65\x66\x78\x91\x31\x62\x78\x6e\xe5\x7f\x4d\x0a\xaa\xc0\x4c\x44\x89\xe6\x62\x96\xd5\x54\x5a\x3c\xd7\x20\x7d\xb5\x2a\x7a\x9f\xec\x1c\xaf\x8f\x9c\x90\x7e\x36\xfd\xc4\x58\xca\x52\xa7\xe7\xc1\x8f\x6f\x97\x4d\x21\x4e\x79\xf1\x03\xb2\x64\xca\xcc\xed\x99\x12\x96\x83\x88\x8e\x81\x20\xc7\xc2\x0f\xb5\x74\x5e\x75\x4c\x0d\xc9\x18\x05\xb5\xd2\x76\x95\x02\xa9\xa1\x19\x4c\x3c\x9e\x77\x43\x8b\x0f\x5f\x6a\x90\x82\x09\xb3\x27\xc2\x36\x34\xa0\x26\xe9\x4a\xab\x99\x2c\x08\x8a\x39\x55\x37\x45\x56\xce\xb8\xd0\x84\x4e\x8d\x93\xd2\x80\xd6\xd1\xac\x32\x47\xd1\x2c\x1b\x7b\x93\x9b\xc6\x9b\x84\x3a\xee\xc2\x99\xb3\x60\xdb\xc9\xf7\x79\xa9\xcd\xf7\x76\x5e\x3c\x65\x79\x21\x0d\x13\x66\x44\xe8\xc4\x6e\xa1\x24\x85\x92\x09\xd3\x3a\x30\x64\x33\x67\x0b\x52\x28\x76\xcb\x65\xa9\xb3\x45\x18\xef\x98\x7c\x92\x86\xbd\x25\xdf\xa3\xc4\x58\xe6\x13\x4b\x3b\xa6\xf1\xba\x54\x47\x4b\xfb\x7b\x38\x2b\xa9\xa2\xc2\x30\xbc\x87\x13\x16\xd4\x72\x29\xd8\x98\x7c\x6f\x57\x68\x45\x07\x8a\x69\x7b\x59\xb8\x20\xd3\x52\xc1\xda\xe0\x6a\xf9\xdf\xdd\x2d\xc2\x61\x8f\xfc\xa2\xe0\xb1\x6a\xfd\xb2\xed\xfc\xc6\x13\x58\xfb\xed\xbb\xda\xca\x95\x40\x1c\xaa\x55\xb3\x77\x7c\xc2\x88\x62\xde\x18\x6a\xe9\x08\x17\x3c\xe7\xff\x66\xbd\x96\xc0\x7e\xc2\x48\x6f\x71\x64\x11\xcd\xc3\x2d\xa5\x59\x46\x72\x30\x1e\x83\xc9\x50\xb1\x78\xc8\x89\xb4\x4c\xd7\x52\x54\x3b\x2e\x1a\xec\x96\xee\x00\xd5\xe9\x8d\x93\xbd\x5a\x54\x43\x77\xbb\xb6\xd0\x77\x40\x5d\xee\x20\x26\x17\xb6\x4d\x64\xf0\xbe\x03\xc5\xa1\x32\x65\x83\x96\x41\x4d\xa5\x37\x9f\xe8\x72\x52\x19\xbe\xe3\x9b\x97\x50\x65\x49\xc2\x44\x96\x66\x4c\xae\xda\x7f\x80\x15\xf4\xbd\x3b\x2b\x8f\xa7\x94\xff\x87\x8a\xc5\xff\x21\x17\x60\xd7\xf9\xab\xbc\x63\x60\x4b\xe5\xce\x92\x8d\xc7\x9c\xdd\x5a\x16\xf9\x8f\xb0\x90\xc1\x92\x1d\x6e\x90\xa5\x41\xde\x9c\xbf\xfc\x2b\x18\xec\x8a\xb2\xa2\xeb\x5e\x25\x41\x82\x63\xc0\xb6\x08\xe4\xdb\xb1\x33\x38\x3d\x89\x15\xb7\x58\x8a\x6f\x5b\x49\xcb\x4e\xc4\xef\x6e\xb6\x20\x29\xd7\x74\x92\xf9\x2e\xf1\xd2\x8f\xee\x31\x4a\x38\xfe\xa0\x0f\x39\x22\x26\x63\x2f\x84\xb7\xba\x81\x78\x57\x7d\xc4\x9b\x5a\x6b\xf6\xed\xf8\x3b\xad\x0d\x1c\xc5\xe8\x67\x6e\xde\xde\x0e\x6c\x37\xf5\x9f\xdc\xcc\x7f\x09\x07\xeb\x5e\xc6\x6a\x2b\x16\x7c\x98\x4e\xed\xc8\x3b\x8e\xf7\x65\xd5\x12\xb7\x77\x05\x87\xb4\x22\x9e\xed\x95\x30\x6c\x3c\x26\xa7\x89\x15\xb5\x81\xc2\x56\xcc\xee\x2d\xf9\x24\x05\x1b\xc1\xff\xff\x22\xde\xab\xc5\x45\x29\xc8\xcb\x40\x84\x50\x82\x42\x03\x97\xb7\x10\x59\x1a\x44\x33\x2d\x03\x59\xbf\x94\x39\x58\x7d\x3f\x0b\x70\x20\xbc\x8a\xc8\x3f\xa8\x4a\xf1\x30\xc8\xcf\x9f\x2f\xaf\x08\xb7\x27\xcd\x8a\x4f\x60\x9e\xb2\x4a\x00\xcf\xb8\x73\x60\x2c\xb4\x61\xf9\xc8\xf2\xca\x84\x45\xd6\xab\x40\xf9\xec\xf6\x22\x73\xa2\x64\x5a\x9a\x52\x31\xa2\x0d\x2b\xbc\x5c\x57\x1d\xab\x64\x4e\xc5\x8c\x05\xdf\x56\x6d\x14\x76\xbd\xd8\x54\xc2\xb1\x0c\xb4\xb8\x14\x29\x30\x80\x0b\x7f\x1e\x83\xa2\x97\xe2\xba\x50\x63\x14\x9f\x94\x60\xae\x47\x9e\x4c\x4b\x23\x8f\xc3\x98\x90\xb3\x2e\x82\x65\xb2\xe2\xe0\x6e\x15\xfc\xc6\xfd\xe9\x4f\x7e\xb1\xec\xba\xd9\xf5\xdb\x82\x18\x5a\x86\x2f\x4b\x73\x69\xd7\x2f\xed\x3a\x36\x57\xb5\xc6\x91\x9b\xc8\x4e\xcf\xf5\x54\xb9\x9c\x82\x05\xed\x34\xf0\x79\xdf\xa6\xa0\x5a\x33\x3d\x6a\xd0\xc9\x2c\x0b\x4b\xc2\xc1\x0b\x90\x12\xa9\x82\x1b\xa9\xfa\x1d\xdc\x45\x41\x29\x69\xf1\x12\x01\x99\xf5\xdf\x82\x63\x4a\xac\xa0\x60\x3b\x9e\x30\x73\xc7\x98\x20\x68\x85\xfc\xf1\x35\xd1\x38\x99\x9a\x0c\xfb\xa6\x7a\x5c\x5f\xd1\xa9\x54\x39\x35\x76\x29\xb8\x30\x3f\xfe\xd0\xbe\xdc\x5c\x18\x36\x63\x2a\x5a\xef\xff\xd1\x58\xf7\x23\xe5\x3d\x33\x6f\xc9\x7f\x36\xec\x95\xab\x9c\x4f\x2b\xee\xf9\xa8\xdb\x5d\xea\x5a\xfc\x2b\x7c\xdd\x0f\x14\xa9\x1c\xfe\xee\xc6\xb6\x8d\x07\xb9\x46\x3a\xfb\xbb\x93\xeb\x14\xb7\x62\xb5\xc0\x7f\xea\xd4\x78\x0a\x9b\xb5\x2c\x1d\x80\x74\x43\x81\x22\xd9\x93\x82\x57\x08\xda\xda\x8b\xee\xae\x6e\x25\x4a\xf5\x71\x39\x07\xeb\x78\x97\x97\xf9\xfc\xcc\x35\x0c\x8e\xa2\xc8\x7b\xcb\x52\xa2\x93\x39\xcb\x29\xca\xd0\xdc\xca\x7c\x85\x62\x56\x93\x8d\xa6\x14\x9c\xb2\xe8\x21\xd5\x5e\x21\x71\x46\x73\x12\x79\xd6\xb0\xb7\x20\x1a\x66\x96\x64\x5b\x09\xd2\x30\x65\x65\x33\x38\xe3\xa3\x30\x73\xb7\x10\x35\xdf\x1c\x52\xeb\x31\xf9\xd9\xd2\x2b\x2e\xa6\xf2\x6d\x30\xa9\xcc\xb8\x81\x4d\xe7\xf2\xc4\x79\x13\xcd\xe2\x24\x91\x02\xe9\x94\x54\xfa\x24\x65\xb7\x2c\x3b\xd1\x7c\x76\x4c\x55\x32\xe7\x86\x25\x96\x64\x9e\xd0\x82\x1f\xc3\x60\x05\x8a\x85\x79\xfa\x5d\x90\x81\x36\x27\x45\x37\x5c\xa4\x1d\xab\xfe\x77\x8e\x6a\xbf\x15\x4a\x6c\x47\xee\x72\x87\xc5\xf5\xc2\xc6\xc5\x87\xcb\xab\xca\x79\x13\x39\xc0\xab\xa6\xba\x5a\x76\xbb\x64\x5c\x4c\x3d\xf3\x0b\xee\xcb\xe0\xb4\x44\x91\xc8\x5e\x46\xa2\xcb\x49\xce\x8d\xae\xc4\x0d\x23\xc7\xe4\x5d\x90\x8a\xca\xc2\x0a\xc4\xe9\x98\x9c\x09\xf2\x8e\xe6\x2c\x7b\x47\x35\xdb\xfb\xa2\xdb\xd5\xd5\xc7\x76\xfd\xb6\x58\x76\x6f\xa8\xde\xa1\x31\x0a\x8d\x24\x3f\x33\x43\xd7\x5a\xa2\x2e\x0d\x15\x29\x55\x69\xb0\xd3\xb8\x91\xfc\x71\xdf\xeb\x15\x6c\xf3\xed\x2b\xe2\x05\x97\x8e\xc3\x18\xe4\x13\x38\x90\x1e\x50\x72\x17\x0b\xb3\x20\x4b\x00\xa5\x8e\x0c\xfb\x4d\x5c\xcc\xbe\xa5\xcc\x26\xe0\xa7\xa7\x88\x59\xfb\xe9\xeb\x71\x65\x77\x3d\x2e\xac\x64\x72\x9c\x33\x35\x63\xc7\x37\x6c\x61\x5f\x69\xb0\xae\xf6\x37\x60\x50\x6c\x06\x2f\xc0\xdb\xeb\x58\x64\x83\x49\x85\xe7\xb5\x7e\xc1\xe1\x7a\xec\x88\xee\xb1\x23\x20\x15\x47\xad\xed\x1e\xb4\x85\xe9\xb5\x2e\x14\x9e\xad\xfa\x1c\x5c\x87\x6b\x39\x57\xfd\x8d\xdb\xc0\x3c\x8e\x6e\xdf\x2c\x4f\xef\x5f\x3b\xe5\xb5\x1f\xb9\x36\x5b\xf2\xdb\x8f\x0e\xc2\x50\x9d\xdb\x75\xad\x07\xc6\x79\xd0\x8c\xb3\x8d\x62\x34\x97\xfd\xe3\x46\xdb\xbc\xb2\xdb\x5d\x12\xa2\xfa\x35\xba\x8f\xe2\x3b\x48\x0e\xcf\x45\x72\xb0\xc7\xb4\xbf\xdc\x00\xb4\x2b\x30\xf3\x87\x5c\xab\x8d\x75\x3b\xbc\x4c\x5d\xaa\xd8\xc1\x72\x39\x60\x35\xfb\xe5\x74\x2d\xc6\xb0\xd5\xbc\x6d\xb9\x31\x5e\x6e\x53\x16\x19\x78\xe4\xa2\x1f\x2c\x71\xbf\xf0\xd4\x75\x4c\xce\x80\xf1\x59\x02\x9f\xe7\x4c\xa4\xde\x8d\x76\xc3\x88\x2e\xd1\xdb\x62\xc0\x80\x0d\xf6\x0a\xe8\x8e\x7d\x2d\xa8\xd0\xc1\x96\x0d\x06\xeb\x7e\x2c\x11\xf1\x57\xdd\x1c\x11\xdb\x79\x94\x4f\x80\x92\xe9\x06\x9e\x7a\xc2\x32\x69\xe9\x94\x1c\x93\x17\xdf\xbf\x80\x19\x67\x99\x6b\x0a\x00\x13\xf7\xd4\x11\x2a\xb4\xaf\x64\x4c\xcc\xcc\xdc\x3b\x73\x74\xc6\x93\xca\x1a\x12\x2c\x55\x2d\xd0\xa1\xfd\x83\x6b\x23\x28\x5a\x6f\xa1\xa1\xb6\x48\x35\x80\x76\xd7\x32\xf9\xc6\x4f\x70\xa1\x64\xdb\x95\x68\x5b\xa7\xfa\x75\x00\xcb\x47\xf5\xa4\x6e\xd8\x5c\x72\x41\x1c\x93\x77\x17\x1f\x4e\xaf\x3e\x8c\xc8\xe7\xf3\xf7\xf0\xdf\xf7\x1f\x3e\x7e\xb0\xff\x7d\xf7\xcb\xa7\x4f\x1f\xde\x5d\x11\xa9\xc8\xf7\x60\xde\xb3\xcb\x09\xcb\x24\x75\xed\x0b\x60\xa5\x11\x0b\x6f\x51\xad\x3e\x56\x1b\x05\x45\x14\x30\x4d\x53\x60\x77\x4f\x6d\x33\x2a\x41\xad\xc3\x85\x14\xce\x63\x4d\xce\x8e\x9d\x44\x96\x0e\x95\x19\x8b\xa3\x22\x1a\xc0\xae\xb7\xe4\x45\x21\x53\xfd\x82\xe4\x8c\x0a\x4d\xec\xbf\xc7\xf8\xe8\x24\x93\x33\xff\x18\x16\x4c\xce\x48\xe4\x83\x82\xd8\x06\x6c\xfd\xbd\x6f\x66\xb7\x2d\x7c\x1e\x51\xbc\x56\xf8\x88\x3d\x57\xbe\xf3\xda\x3b\x35\xd7\x56\xd4\xef\x89\x4e\x68\xc6\x6a\x2d\xed\x83\x66\x87\xdf\x9f\xb4\x8f\xc0\x6b\xc8\x5c\xd5\xdf\x70\xb0\xab\x3b\x9e\xa5\x89\xe5\xf2\xcd\xa3\x11\x05\x3a\xc0\xea\x81\x4d\x98\x09\xa0\xde\x55\xe7\xa9\x84\xc9\xc9\x5b\xa6\x32\x5a\xa0\xf5\x9c\xd1\x64\x8e\xde\x68\xe7\x50\x2c\x98\x48\xad\xe4\xe7\xcc\xc8\x4c\x24\x99\xd4\xf0\xc0\xf9\x5e\x6b\x53\xcf\xf9\x6c\x6e\xbc\x87\xde\x41\xd7\x1f\xf1\x20\x02\x5e\xb0\xe3\x10\x42\x9b\x86\xa1\x1e\x9f\x05\xfd\x0a\x1c\x8b\xe0\x30\xab\xc3\x17\xde\xa1\x0f\xf0\xfa\x68\x44\xae\x2b\x74\x66\x6a\xff\x46\x44\xc3\xf7\xd7\x47\x71\xb3\x70\x16\xa9\x03\xab\x3b\x27\xe2\x71\x03\xd7\xa8\x71\xc3\xd0\xbd\x11\x0d\x21\x7c\x02\x48\xbb\xf7\xd9\xdb\xb1\xd4\x3b\x1a\x37\x86\xb3\xf4\xdd\x00\x7e\xeb\xfe\x26\x4e\x22\xea\x00\x5c\x3a\xce\xd1\xee\x16\x4a\x31\xbb\x57\x89\x73\x7c\x5f\xd6\x0e\x84\xeb\xaf\xb6\xa6\xf6\x3c\x17\x54\x59\x91\xdf\xb7\xac\x9c\x0b\x5c\xe3\x37\xfb\x7a\x6a\xba\xcc\x22\x1b\x4b\x59\x56\x73\xe1\x09\xbb\x60\x53\xa6\x98\x48\xd8\x1a\x19\xab\xd9\x94\xcc\x65\x96\x22\x2a\xde\x3f\x31\x92\xb8\x56\xe3\x8c\xcd\x68\xb2\x68\x0a\x98\x2b\x85\xa3\x1e\xd8\xec\x2f\xb6\xcd\x97\x36\xe8\xb3\x76\xdf\xac\x22\x5c\xb6\x07\x3d\xf7\x19\x04\x34\xac\x8d\x04\x0f\xea\xee\x86\x53\x50\x33\xef\x1a\x89\x6d\xf3\xc5\x87\xb1\x15\x0e\x95\xf1\xf9\xe2\x23\xb1\x3f\x38\xff\xbc\xf7\x9f\x01\x66\x8e\x23\x1e\x35\x82\xee\xc3\xd1\xf7\xc3\xdd\x62\x94\x52\x99\x8e\x51\x9e\x4d\xab\x60\x14\x24\xd7\xf6\x25\x4f\x60\xdd\xa7\xf1\xae\xcd\xa5\x06\xb5\x3b\xf8\x09\x23\x0f\xdc\x6f\x7f\xfb\x23\x48\x1a\x13\x9a\xdc\xdc\x59\x26\x90\xc8\xbc\xa0\x86\x4f\x78\xc6\xcd\x62\x4c\xbe\xd8\x5e\xbf\x44\x08\x2e\x87\x23\xc1\xaf\x39\xfc\xca\xcb\x37\xc7\xbf\xff\xdd\xef\x7e\xfc\xdd\x08\x83\x22\x34\xbf\x65\xaf\x1e\xdc\xa1\x87\x87\xac\x19\x95\xd0\xa5\x08\x6e\x7c\xaf\x97\x10\x0f\x6b\x2e\xf6\x52\xdb\x21\xb2\x73\x88\xec\x1c\x22\x3b\xab\xd7\x87\xc8\xce\x21\xb2\x73\x88\xec\x3c\xbc\x80\xc2\x21\xb2\xf3\x40\x36\x62\x88\xec\x1c\x22\x3b\x87\xc8\xce\x21\xb2\x73\x88\xec\x1c\x22\x3b\x0f\x26\xb2\x73\x08\xec\x1c\x02\x3b\x87\xc0\xce\xc3\x0f\xec\x1c\xc2\xaf\x86\xf0\xab\x21\xfc\x6a\x08\xbf\x1a\xc2\xaf\x86\xf0\xab\x21\xfc\x6a\x07\xae\x9e\xbe\x01\x58\x1d\x64\x79\xc7\x21\x58\x4e\x62\x09\x9c\xc9\xde\x64\xd0\xaa\x87\x38\xac\xc3\x86\x93\x0f\x68\xea\xe7\x82\xa6\x1e\xe2\xb0\x0e\x29\x0e\x6b\xd9\x45\xdf\x53\xda\x1c\x22\xb1\x02\x46\xbd\x83\xf7\xed\x17\xa1\xbe\xfe\xe3\x1d\xd1\x58\xdd\x2f\xd7\xcf\xef\xfa\xf6\x03\x0b\x3d\x68\x16\xba\x49\x44\x56\xdf\x8d\x5e\xd9\xf1\x6e\x89\xd2\x10\x95\x35\xc8\x11\x43\x54\xd6\x53\xe1\x78\x0f\x10\x97\xd5\x06\x69\x5a\xcd\xe6\x5a\x5a\x5b\x26\x60\x28\x77\x68\x3b\x7b\x12\xac\x16\x6f\x59\x87\x0f\xbc\xa2\xe4\xea\xe3\xa5\x6d\x26\x58\xe2\x60\x6e\xce\x68\xe3\xa4\xb8\x6e\x6e\x97\xd0\x3f\x97\x22\xcd\x3a\xe1\xbc\xbe\x1d\x02\x69\xc9\xf9\x87\x9f\x09\x13\x89\x4c\x59\x4a\xde\x9d\x92\x09\xfc\xd6\xc0\xd2\x7a\x30\x50\x48\x77\x16\x0d\xec\x85\xf6\x48\xc1\xc4\x8e\x0a\x72\xb8\x31\xf0\x08\x97\x22\xc2\xc1\xa2\x41\x8c\x18\x55\x6a\x43\x94\x94\x46\x7b\xd3\x89\xbd\x67\xd8\x01\x55\xf8\xa9\x95\x36\x8f\xc9\xc2\xb0\xcd\xc9\x81\x83\xdc\xee\x0e\xe2\xb6\x84\x20\x5f\x47\x14\xbe\xb8\xcf\xbb\xe5\xae\x21\xc7\x63\x40\xf0\xb2\xd5\xea\x03\x7a\x7a\xaa\x0e\xa4\x22\x5f\x4a\x95\x7d\x09\xb6\xa4\xb0\xbe\x3e\x62\xa4\xe1\x0b\x51\xa5\x10\x80\x2f\xe6\x66\xee\xdd\x3a\x68\x58\x07\xcb\x97\x00\x9f\xab\x93\x53\x4a\xcd\xaa\x4f\xad\x50\x47\x4a\x95\x75\x9d\x2e\x18\xdf\x8c\xdf\x32\x1f\x93\x93\x04\x19\xa9\xe6\xe4\xe2\x82\x68\x4f\x2e\x3f\x5f\x7c\xb4\xd3\xcf\xc9\xcb\x2f\x20\x1a\xb1\xb7\x27\x27\x73\xa9\xcd\xdb\x42\x2a\x73\x02\xa0\xef\x57\x63\xc4\x8e\x61\x72\x41\xdb\x1b\x7e\x49\xc6\xeb\xd3\xbe\x2c\x57\x73\x46\xbe\xd8\xee\x02\x58\xda\x72\x36\xd8\x07\x00\xee\x84\x1d\xf0\xab\x55\x5f\xa9\x3f\xba\xe4\x81\xd1\xea\x90\x29\x67\x59\x1a\x32\xf3\x81\xb1\xcf\x7e\xc0\x85\xc7\x4c\x10\x26\x9c\xdd\x3a\x8b\x33\xfb\xea\x04\xbb\xf7\x9f\x2e\x61\xde\x32\x8f\x4e\xbd\x26\x2f\x11\x65\xf3\xc5\x52\xd6\xe3\xf0\xfc\x8b\x77\x75\xb8\xbe\x08\x17\xc7\xde\x2b\x62\x3b\xa2\xba\xe1\x4b\xa4\x24\xa3\x0b\x86\x32\x04\x97\x19\x2c\xfb\xab\xb1\x9f\x7a\x30\x77\x4f\x20\x59\xe1\xd9\x39\xa1\x69\xaa\x98\x46\x77\xf0\x79\xc6\xa8\x86\xd4\x8a\xcc\x27\x4c\xb4\xfd\x7c\xb1\xdb\x97\x61\x07\x76\xa5\xdf\xfc\xf0\x1f\xe3\xd7\xe3\xd7\xe3\x37\x5f\xec\xe7\xa9\xef\xdb\x9e\x34\xae\x6f\x16\xa4\x14\x19\xd3\x1a\x4e\x95\xb1\x54\x6d\xa6\x18\xf8\x09\x15\xab\x7c\xaf\x91\x71\x5f\x0a\x08\x87\xb2\x9d\x68\x47\x71\x6c\x1b\x2a\x22\x9a\xe0\x5c\x6b\x18\x77\xc4\xa2\x50\xd5\x08\x71\x1b\x5f\x9a\xcb\x12\xe0\x8a\xda\xc0\xcf\xf6\xcb\x19\xbf\x61\xd9\xc2\x19\xc7\x85\x14\xc7\xf6\x54\xd1\x09\x80\xd6\xc6\x6c\x3c\x82\xe3\xc0\xa8\x86\x26\xa6\x54\x82\x94\x05\xfa\x9d\x04\xbb\xf3\xa7\x20\x9c\x24\x3c\xa0\xe1\xa8\x5d\x1f\x01\x47\xbf\x3e\xfa\x23\x1c\x11\x7b\x92\xdd\x4f\x33\x2e\x3c\xe8\xc4\x33\x7d\x07\x83\x3c\xc5\x70\x85\x90\x8d\x92\x66\xce\xe7\x3b\xf5\x51\x5e\xde\x4d\x40\xc5\xc2\x8b\x85\x05\x53\x40\x8d\x26\x99\x4b\x82\xfa\xf9\xe2\xe3\x98\xfc\x6f\x59\x42\x5b\x7f\x44\xa1\x63\x23\xc1\xbc\x0d\xeb\xa8\x26\xdc\x28\xaa\x42\x37\x4d\x5f\xf3\x34\xc6\xd9\xd0\xca\xed\x96\x5a\xf9\x62\xca\xdd\xc4\x4f\x8d\x61\x79\x61\x5c\x07\x98\xb4\xb2\xd4\x4c\x11\x88\x4f\xd0\x3c\x21\xb4\x34\x73\x40\x8b\x91\xeb\x23\xfb\xcb\x5b\x3b\x82\x3b\xa9\xd2\xff\x07\xe1\x60\x80\xc6\xf1\xf1\x62\x3f\x29\x3a\x43\x98\xe0\xcb\xeb\xa3\xef\xc6\xe3\xf1\xf5\xd1\x2b\x58\x81\x5f\x4b\xa6\x16\xa4\xa0\x8a\xe6\xcc\xc0\xd5\xb8\x3e\xfa\xbf\xfd\xef\x2e\xf5\xa7\xeb\x65\xe4\x1c\xe1\x8f\x15\x46\x04\x4e\xa4\xa1\x92\xd4\x10\x6f\xf0\x74\xe3\x0d\x62\x87\xd3\x97\xff\x7c\xe1\xce\xf4\x8b\x7f\x7d\x79\x1e\x91\x08\x78\x43\x87\x70\x84\xed\xc2\x11\xf0\xb7\x21\x20\x61\x08\x48\x18\x02\x12\xbe\x95\x80\x04\xbc\x2b\x43\x2c\xc2\x10\x8b\x30\xc4\x22\x0c\xb1\x08\xfe\xd7\x21\x16\x61\x88\x45\x18\xaa\x4c\x0d\xc1\x08\x43\x30\xc2\xf3\x0c\x46\x18\xaa\x4c\x0d\x55\xa6\x86\x2a\x53\x43\x95\xa9\xa1\xca\xd4\x10\xe6\xf4\x3c\xc3\x9c\xd0\x12\xfc\x7c\x62\x9d\x5c\xd0\xcd\xc8\x05\x3d\x5d\xca\xbc\x19\xfa\x34\x44\x2e\x6d\x1c\xb9\x54\xb3\x7e\xbb\x1f\x87\x70\xa6\xdd\x84\x33\xfd\x78\x80\xe1\x4c\x5d\x90\xb7\x9d\x38\x84\x9f\x4e\x61\x28\xab\x25\x29\x96\x50\x67\x78\xbf\x7d\x33\x7e\xf3\xfb\x11\x29\x32\x2a\x84\x65\x3d\xd0\x45\x2e\x6f\x41\x3e\x81\x5f\xff\x27\x2a\x43\xeb\xe0\x7c\x27\xb7\x6f\xd6\x93\x7f\x2f\x75\x0c\x50\xee\x43\x86\x72\x0f\x28\xe6\xe7\x82\x62\x1e\xa2\xa1\x0e\x28\x1a\xaa\x1d\x41\xd4\x53\x24\x1d\x02\xa2\xee\x5b\x9a\x0a\x96\x7f\x07\xe8\xf0\x6e\xbe\x3f\x14\xa9\x1a\xf8\xe8\xa6\x21\x51\x8f\x58\xa4\xaa\x87\x20\x7b\x1f\xbd\x79\x90\x26\x9e\x8b\x34\x31\xc4\x44\xe1\xf3\x43\x63\x7a\x1d\x11\x51\xbb\x65\x7c\x43\xcd\xaa\xa1\x66\xd5\x9a\x25\x1a\x6a\x56\x0d\x35\xab\x0e\x62\x33\x86\x9a\x55\x43\xcd\xaa\xa1\x66\xd5\x50\xb3\xea\x49\xd6\xac\x42\x51\x6b\x28\x5c\x55\x7d\x7f\x28\x5c\xb5\xe9\x28\x87\xc2\x55\x2b\xee\xe6\x63\x17\xae\xc2\xcb\x3d\x54\xaf\x1a\xa2\x49\x87\x68\xd2\x21\x9a\x74\x88\x26\x1d\xa2\x49\x87\x68\xd2\x21\x9a\x74\x88\x26\x5d\x73\xd7\x87\x68\xd2\x21\x9a\x74\x88\x26\x1d\xa2\x49\xe1\x7f\x43\x34\xe9\x37\x10\x4d\x3a\x04\x93\x0e\xc1\xa4\x43\x30\xe9\xe1\x07\x93\x0e\x21\x5f\x43\xc8\xd7\x10\xf2\x35\x84\x7c\x0d\x21\x5f\x2b\x4e\xc6\x10\xf2\xf5\xdc\x42\xbe\x9e\x7e\x31\xaa\x7d\xc5\x7e\x75\x4c\x70\x88\xfe\x7a\x0a\xa8\xf5\x01\xaf\xfd\x5c\xf0\xda\x43\xf4\xd7\xc1\x45\x7f\x0d\x05\xb1\xdc\x8b\x8f\x51\x10\x6b\xb7\x40\xf8\xa1\x34\xd6\xc0\x51\x9f\x59\x69\xac\x5e\xf2\xed\x7d\x14\xea\x41\xb6\x78\x2e\xb2\xc5\x10\x0b\x86\xcf\x0f\x8f\x01\x3e\x68\x34\xd8\x50\x29\x6b\xa8\x94\xd5\x8d\x5b\x5f\x47\x23\x86\x72\x59\x66\x28\x97\x35\x94\xcb\x1a\xca\x65\x0d\xe5\xb2\x9e\x64\xb9\xac\xa2\xd0\x56\x1e\x7c\x67\x45\x35\x99\x65\x4c\x5d\xb0\x5b\xae\xd7\x1b\xc2\x97\x1b\x57\xde\x2a\xd8\x17\x9e\xe7\x25\xfa\xc4\xb4\xa0\x85\x9e\x4b\xd0\x8d\xd0\x79\x8a\x22\x24\xca\x10\x78\x82\x15\xd3\x85\x14\xb8\xf7\x76\xc3\x34\x53\x9c\x66\xfc\xdf\x90\xf9\x54\xa4\x24\x65\xf1\x93\xca\x01\xef\x28\x84\x93\x40\x5c\x4c\x58\x50\x3d\xe1\x6b\x63\xf2\x0b\xba\xc8\x5a\x86\x3c\xa7\x9a\x4c\x18\x13\x44\x97\x49\xc2\xb4\x46\xc8\x21\x02\x11\x52\x80\x85\x25\x54\x90\xa6\xd6\x70\x55\x83\xe2\x47\xce\x99\x28\x68\xc0\x2a\xd1\x10\x82\xe9\x15\x10\x30\xf2\xe3\x21\x83\x0b\x5e\x1a\x2f\x6a\xbc\xa7\x86\x22\xbd\x1d\xb7\x8c\x11\x14\x9f\x11\x99\x7b\x57\xf7\x84\x39\x10\x84\x4b\xcd\x0b\x3d\x8f\x48\x5a\x02\x01\xb2\x4a\x8f\x3d\xbc\x93\x45\x05\xfe\x78\x4f\x59\x2e\xc5\x25\x43\x9f\xc2\xa5\xfd\xee\xb4\xcc\xec\xdf\x49\xf8\x1a\xfa\x89\x71\x86\xd0\x4c\x39\xa4\xc4\xa8\xa6\x97\x71\xbb\x5c\x76\xef\x2a\xcf\x7b\xb8\xc9\x51\xa8\x01\x80\x27\xa1\x97\xba\x65\x01\x5d\x8d\x1a\xb3\xfb\x1a\x8c\x22\x05\xb2\xac\x91\x3c\x24\xee\x44\x44\x4c\x2c\x85\xc8\x51\xc0\xc4\xa0\x5f\xd6\x87\x24\x61\x72\x81\x42\xf1\x9c\x2a\x9e\x2d\x60\xfc\x61\xe3\xdd\x12\x44\xf3\x1b\xec\x2b\x07\x6d\x5f\xb9\xbf\x6a\xab\x4a\x61\x78\xce\xc6\x17\xf4\xee\x83\x47\x48\xaf\x95\x5a\xe1\xda\x71\x0f\x56\x42\xe2\xc2\x96\x8e\xac\x8f\x39\x04\x4a\x32\x58\x44\x9e\xb7\x45\x64\x3b\x6f\xcb\x0b\xfd\x70\x76\x91\x30\xe9\xd6\x25\x51\xcb\x7c\xbb\x6d\xfc\x15\xc7\x0e\x35\x00\x30\xd2\xd0\x3d\x8e\xcf\x7c\x75\xf0\x10\x4c\xf2\x1e\x9c\x3d\xab\xd1\x01\xbf\xff\xed\x8e\xd1\x01\x61\x4e\x0f\x69\xcf\x29\x0a\xdd\x6e\xb7\x69\x91\x91\x56\xdb\x69\x36\x31\xd1\xac\x94\xc1\x3a\xbc\x10\xed\x2f\x78\x45\xdc\x11\x12\x27\x1e\x81\x30\x15\xfc\x11\x2d\xe2\xd0\x12\xce\x6b\xe0\x95\x07\xc8\x2b\xfb\xf8\x22\xce\x6c\x1b\xcf\xdd\x56\xef\xb8\xde\x91\x33\x62\xb5\x06\x31\xb8\x1a\x06\xc6\xda\xd3\xd5\xf0\xf0\xac\xf3\x60\xfd\x09\x1b\xf0\x9f\x0e\x5f\xc1\x16\x3c\x28\xe8\x8b\x6b\xd8\x4e\xa5\x53\x56\xf7\x67\x05\xe6\x8d\xa4\xd0\x96\x68\x66\x06\xc6\x72\xd0\x8c\x65\xa0\xb7\xcf\x85\xde\x3e\x75\x45\x46\x17\x2c\xd9\xdc\xa3\xd5\xa4\x5f\x97\xb6\x97\x75\xf3\xbf\x9a\x33\x92\x32\x6d\x29\x3e\x99\xb0\x39\xbd\xe5\x52\x05\x82\x11\x91\xad\x7d\x2f\x86\x9d\xee\x31\x15\xe9\xb1\x55\xb9\x4a\xbd\x62\x4d\xf0\xb7\xfb\xaf\x0a\xf6\xd3\xb5\x2e\x49\xa9\x20\xb3\x16\x7e\xb6\x75\x55\xae\xf0\x81\xa1\xde\x04\x28\x4b\x90\x33\xc1\x88\x38\x59\xa0\x17\xe8\x8e\x8b\x54\xde\xc1\xfb\x3c\x67\x63\x72\x2e\x8b\x32\xa3\x4e\x9b\x04\x35\x13\x7c\xa7\x63\x72\xc1\x68\x7a\x2c\x45\xb6\x78\xc4\xe5\xee\x32\xa1\x3f\x08\x8f\xaf\xf8\xef\x7e\xd8\xfa\x3b\x29\xb0\x70\x59\x1f\xfe\x1e\x1a\x37\xb0\xed\x68\x1c\x00\xfe\x1e\xd9\x97\x0d\xa1\xe0\x28\xa7\x5c\x10\xa0\xdc\x3d\x38\x7e\x46\xb5\xb9\x52\x54\x68\xf8\xcc\x15\x5f\xce\x24\x70\x0f\x42\x08\xdd\xad\x3b\xea\x1f\xa9\x36\x58\xd9\xcf\x49\x2f\x6e\xb6\x26\x8c\xc8\x87\x74\x49\xc1\xfc\x65\x30\xd2\x87\x94\xaf\x30\x09\xe6\x4c\x6b\x3a\xeb\x02\x2b\x9c\x92\x79\x99\x53\x41\x14\xa3\x29\x78\x4a\xdc\x6b\xde\x2e\x63\x99\x69\xca\x0c\xe5\x99\x8f\x8b\x83\x60\x92\x30\xb2\x6d\xea\xbb\x31\xaa\x3b\x45\xab\x2b\x30\x06\xd9\x86\xce\x65\x1f\x2d\xcc\x0b\x4d\x32\x58\xb2\xfb\x8c\xa2\x9d\x94\x2d\x33\xa7\x40\x78\xa2\x01\x8c\xbc\x77\xfc\x4a\x59\x89\xeb\x27\x9a\x69\x36\xba\x4f\x24\xd0\xa2\x33\xb5\xe3\xd5\x02\x33\x0e\x56\x07\x3d\x8c\x66\x6b\xdf\x5c\xbb\xa6\x01\xef\x2f\x2f\x54\x97\xea\xd1\xfb\xea\x77\x18\x93\x6a\xed\x50\xcc\x4b\xac\xb2\x91\x78\x91\xb9\xa2\xfe\x83\x91\xe8\xb0\x65\xf9\x3e\x46\xa2\xd3\x60\x19\x6a\xdd\xd7\x95\xfd\x6c\x25\x76\x0c\x96\xa0\x41\x33\x39\x70\xd0\xe9\xb3\xb0\x10\xd5\x69\xfd\x7e\x24\xc8\xcb\xba\x7a\xb6\x92\x8d\xd8\x76\xc1\xc5\x8a\x88\xb5\x64\x5b\xc3\x50\xce\x85\xd5\x10\x16\x3d\x43\x76\xe7\x0c\xcb\xf6\x96\x79\x54\xb1\xd7\x45\xb7\x82\x54\x83\xa8\x2b\x40\x40\x55\x90\x8f\x88\xc5\x17\x32\x8d\x72\x51\x59\x11\x6d\x11\x02\x31\x21\xf7\xcc\x14\x10\x09\xce\xb5\xc2\x14\x49\x14\xd5\x73\x2e\x66\x88\x38\xe2\xc6\xc1\xb1\xa2\x2c\x12\xf4\x96\xf2\xcc\x0a\x7a\xf5\x28\xe6\xd7\xe4\xa5\xfd\x58\xa8\x42\xdd\xf2\x02\xa1\x9a\x68\x29\x85\xfd\x2f\x77\x55\x15\x68\xba\xd8\x51\x7a\xd5\x16\x0f\xe2\x5f\xb9\x36\x52\x2d\x3e\xf2\x9c\x77\xa5\xa0\xbd\xaa\x15\x45\x96\x59\x4a\xe6\xf8\x32\x00\xe2\x18\xe2\x72\x24\x82\x9a\x02\xac\xc4\x29\x8f\x40\xaf\x81\x90\x22\x52\x31\xe5\x90\xa3\xb6\xe4\x7a\x1e\x42\x96\xd9\xd7\x22\xe3\x09\x37\xe4\xdf\x4c\x49\xcc\x5f\x22\x4d\x04\x80\xac\xad\xe5\x9b\xd7\x3b\x5f\x12\xfd\x98\x39\x64\x4e\x5d\xbe\x1c\x84\x8d\xc9\x5b\xa6\x20\x27\x7c\x95\xdb\x3f\xa7\x82\xce\x2a\x65\xba\x66\xb4\x28\xb5\x09\xc9\x12\xab\xfc\x18\x78\xc4\xd0\x8a\x9c\x02\x8e\x26\xaf\x1a\x62\x06\xe1\x94\x18\x96\x17\x56\x2e\x02\x71\x1f\x53\x8f\xb4\x10\xdf\xfb\x66\x08\x3a\xf9\x0e\xfe\x7b\x1c\xb2\x01\xad\x10\xd1\xdd\x60\x36\xb6\x7d\x24\x52\x31\xbb\xde\xe7\x32\xbd\x72\x7d\x74\xda\x84\x4e\xeb\x69\x65\xea\x5a\x2f\x2c\x0d\x40\x52\xfd\x65\x45\xba\x81\x98\xb0\x8a\x78\xc0\xcf\xf8\x5b\x5c\xfa\x9c\x24\xb2\x58\x04\x29\xd6\x76\x06\x85\xe3\xed\xd6\x0a\x99\x3a\x5c\x6a\x9c\x44\x27\xda\x06\x68\x10\xd2\xcd\xbc\x84\x94\x33\xf1\xbb\x7c\x4a\x84\x6c\xb4\xe2\x51\xde\xdb\x57\x1b\xef\xa0\xdd\xb8\x4c\xd2\x54\x9f\x44\x38\xaa\x13\xc5\xec\x75\x04\x2a\x5e\x3d\xfe\xae\x90\xe9\x71\xd8\xa6\xd6\x4d\x44\xf1\xe7\xb2\x8a\x58\xbc\xa7\x19\xeb\x73\xbd\xbf\x8e\x2d\x75\xc8\x36\x1f\x30\x89\xa4\xa9\xc8\x68\x62\xf7\x07\x89\x4e\x9d\xf6\xbb\xac\x16\x82\xdd\x61\x11\x86\xcd\x65\x02\xbd\x7c\xbf\x8f\x9a\x4b\x74\x7f\x8d\xee\xb2\xa9\x4a\xaf\x66\xc6\xa8\x4f\x37\xfd\x35\x4b\x66\xbe\x0d\xf9\xb2\x55\x10\x81\x65\xbc\x93\xa5\xe8\xe2\x15\xd0\xc6\x7e\x64\x4e\xf5\x9c\x84\x57\x75\xb0\x33\x84\xd1\x36\x6f\x54\x75\xd6\x48\xa9\x7d\x49\x0f\x04\xa9\x53\xaf\xa7\x22\x88\x81\xde\x4a\x9e\x52\x91\x30\x92\xb3\x64\x4e\x05\xd7\x39\xb9\x9b\x33\x81\x49\xfe\x58\x0a\x7c\xc2\xdd\xcd\x90\xe9\xd1\x7f\x5f\xb0\x3b\xab\x0b\x2e\xbb\xd9\x76\xce\x56\x82\x09\xa1\xbb\xba\x49\x6d\xc3\x9c\xb6\x5a\x89\x06\x72\xa2\x99\xba\xf5\x89\x98\x6a\x06\xb9\x17\xba\xb6\xbf\xcd\x64\xbe\x3b\xd3\xed\x2a\x8b\x62\x4f\x25\xaf\x2b\xb0\xb9\x16\x0a\xdd\x30\x8a\x6c\x1e\x0a\x1d\xaf\x3a\x2e\xc7\x27\x90\x57\x2e\x93\x39\x4b\xcb\x8c\x75\xa9\x96\x75\x09\xc7\x92\xd8\x88\x01\xfb\x90\x0a\x6a\x48\xc6\xa8\x36\xe4\x8d\xbf\x3f\x96\xbe\x43\xc6\x0f\xc5\x30\xcf\xb8\x8b\x33\xf2\x59\xdf\xaa\x66\x3b\x22\xcd\xd8\xa1\x66\xe6\x64\xd7\x87\xd5\x39\x49\x36\x5f\x36\x23\x0d\xcd\xda\x17\x2f\x12\xae\xdd\x12\xd6\x17\x85\xbc\xc4\xdc\xba\xf6\x17\x7c\x2d\x91\x4a\x31\xe0\xa5\xed\x6f\xec\x8a\xc5\xed\x6f\x1d\x71\x21\x4e\xfd\xdd\xdd\xf6\xdc\x75\x2e\x9d\x3d\x76\x90\x09\x0f\x6c\xa5\x2e\x0b\xa3\xb3\xa4\x46\xcd\xc2\xd9\x15\xb1\xae\xf1\x12\x95\x1d\x28\x3f\xe5\x0f\xb5\x15\x23\xc6\x0d\x15\xec\xd5\x7e\x56\xe7\x67\xae\xf5\x2e\x2f\x66\x7d\xce\x98\x4d\xdb\x47\x5a\x3c\xf1\x6b\x89\x73\x87\x3d\x39\xa4\xa3\x04\xe7\x67\xe7\x0c\x13\x87\xff\x59\xd0\x87\xbb\x3d\x71\x25\x89\xc3\xbd\x36\x28\x00\xb0\xf4\x2f\x4c\xb0\xa5\x04\x56\xab\x56\x26\x97\x1a\x6c\xe2\x56\x36\x98\x85\x17\x89\xef\x6b\x59\x9f\x8c\x24\xb0\xdd\xe0\x7f\x97\x74\x83\xdd\xb2\x97\x98\x04\xb8\xfe\xa3\x3d\x7c\xc8\xfc\x66\x2b\x64\x8e\xf5\x84\xaf\x9b\xf9\xae\xa0\x03\x3b\xd3\x2c\x3e\xaf\x52\xd8\x56\x6a\x18\xf5\x37\x82\x31\xbe\x4c\x4c\x88\xb1\x76\x87\x08\xce\x56\x53\x27\x83\x9b\x13\x69\x00\xdd\xba\x87\x3d\x8e\x5c\xcc\xf0\xbb\x5b\xab\x94\x17\x71\x2f\x2b\x9c\xef\x4d\x99\x1c\x5f\xf1\x53\x40\xd0\x1b\x46\xf5\xe9\x31\x39\x77\x21\x8e\x21\x27\xec\xa2\x60\xe4\x4f\xe4\xfa\xa8\xf6\xa5\xeb\xa3\x15\xce\xe3\x0d\x3c\x92\xd1\xf5\xc4\xa1\x80\xc3\x01\xa3\x36\x1b\x1f\xc3\x0c\xd7\xbf\x88\xf7\x10\x3c\x76\x7d\x54\xab\x94\x56\x6b\xfb\x50\xf1\x86\x55\x5a\xde\x75\x87\x2b\x34\x22\x4c\x58\x3a\xab\x49\xca\x92\x8c\x5a\x7a\x75\xeb\xcf\x10\xea\x8f\xe7\x56\x6b\xc7\x12\xb4\x60\xa2\xb8\x1c\xbc\x94\x87\xee\xa5\x1c\xfc\x7a\xcf\xc5\xaf\x77\xcf\x44\x75\x2b\x48\xe1\xfd\x70\x80\x81\x74\x74\x1a\x7d\x2f\x9b\xce\x29\xb3\x12\x19\xc8\xa2\x74\xe2\xab\x46\x7d\x4f\xa4\x5e\x35\xee\x6e\xa8\xde\xcf\x95\x1c\x97\x2d\x2a\xf1\x4d\xd7\xc0\x33\xed\x23\xee\xa2\xdf\x0f\xe3\xae\xac\x98\xc0\x6e\x7d\x95\xa1\xdf\x5e\x70\xb7\xe5\xd6\xab\xf1\x6e\x55\xb9\x9e\x01\xf0\x16\xcf\x09\xa5\x87\x87\x9e\xcf\x15\xf0\xc6\x6a\x4e\x58\xab\xc0\x4d\xea\x8e\xea\x40\x9f\x07\xa4\xde\xb7\x83\xd4\x8b\xae\xe8\x53\x83\xea\x85\x91\x77\x61\xf5\x6a\x0d\xeb\xa9\x26\xab\xdf\x06\x01\xf8\xb0\x05\xe0\xad\x63\x39\x5b\xb7\x78\x65\x97\xdb\x89\x1f\x03\x64\x6f\x10\xed\xef\x09\xd9\x7b\xda\x50\xba\x3a\x2d\xde\x93\x7c\xda\x05\xa6\xab\x35\x5c\x89\xa6\xeb\xab\xb0\xec\x18\x67\xf7\xf3\x16\x18\xbb\x27\x81\xac\xdb\xb5\x91\xbe\xa0\xa5\xee\x34\x69\x9f\x45\xf9\x38\xa8\x71\x7b\x1a\x24\x19\xae\x09\xf6\xb2\x42\x92\x99\x48\x99\x31\x2a\x56\x7c\x5f\xc9\x99\x62\x5a\xbf\x67\x34\xcd\xb8\x60\x1b\xc0\x28\xe9\x57\xd8\x62\x90\xaf\xb9\xa8\x6d\x70\x4d\x19\xf2\x69\xeb\xfc\xa7\xc8\x04\x4b\xc7\xe0\xb2\xd6\xab\x69\x4d\xb0\x78\x89\x47\x4e\xd5\xe5\x35\x0f\xf4\x40\x14\x95\xb4\x8c\x00\xb3\x5b\x15\x4a\x26\xb6\x63\x7c\xb5\x56\xdd\x15\x7c\x31\xb1\xe4\xcf\x8d\x3d\x79\xe7\x8d\x69\x7f\xf8\x9a\x30\x96\x42\x9a\x1f\x90\x9a\x43\x01\xff\x52\x4d\x69\xe2\xab\x83\xd7\x06\x84\x82\x5d\x94\x6c\xab\x9a\x20\xbc\xed\x78\x05\xd3\x86\xe7\xe8\x65\x28\x95\xe7\x5c\xb0\x66\xb4\x7d\x13\x6b\x27\xf5\xf7\xaf\x5f\xef\xa8\xe8\x4a\x4d\x85\x00\x3b\x68\xd7\x26\x7f\x0a\x77\xd7\x13\x10\x40\x3c\xed\x0b\xa1\x79\x98\x98\xd5\xc8\x66\x3c\xe0\x56\xef\x8f\x5b\xfd\x58\xab\xf2\x08\xb4\x02\x0f\xd5\x07\x8f\xb6\x8b\x17\x1c\xeb\x77\x02\xea\x0e\xc0\x32\xf0\x9a\x77\x42\x72\x1d\x6e\x29\xe4\xfd\xb3\x6a\x47\xa8\x04\xe1\x5b\x54\x37\xac\x3f\xa2\x75\x95\xc6\x7b\x5f\x84\x62\x64\xbe\xeb\x01\x4e\xbc\x6a\x52\x9b\x0a\xa1\x08\x29\x2f\x5b\x80\x8a\x75\x78\xa2\x5d\x90\xf1\x46\xf8\x28\x3c\xdc\x7f\x67\x8b\x43\xc0\xdb\xfa\x86\xcb\x48\x5b\xdd\x0e\xb5\x3d\x34\x24\x66\xd3\x5a\xdb\x4b\x94\x43\x8b\x89\x13\xe6\xf2\x4d\x6d\xb8\xdd\x2a\xbd\x17\x6f\x2e\xfa\xb1\x80\xab\x86\x1f\xbd\x12\x8f\x60\x1f\xda\xa0\x0d\x4d\x54\x03\x31\x54\xcd\xd8\x8a\x3b\xb9\x7b\xf0\xe4\x4e\x41\xa7\x11\xf1\xb8\xaa\xfd\xfd\xc0\xb0\xd3\x8a\x26\x3e\x25\xb8\x69\xb5\xcf\xfb\xc6\x9b\xb6\xd8\xf4\x7b\x9a\x28\x1e\x0d\x70\xba\x15\x38\x67\x1d\x20\xa7\xed\x6c\xee\x1c\x90\x03\xf7\x7d\x4b\xda\x81\xb4\x02\xe9\xf7\x03\x92\x84\x9e\xc2\x6e\x73\xb4\x42\x8a\x63\xc3\x54\xce\x85\xd7\x4d\xd7\x0e\x9b\xbc\xc4\x14\xc3\xae\xc2\x70\x25\x62\x78\x1e\xb3\xfb\x90\xac\x52\xdc\x97\x9a\x47\x3d\x74\xef\x4b\x10\x70\x4d\x0b\xbe\xaa\x1e\x7b\xa4\x0d\x77\x29\x8e\x41\x6b\xf0\xc4\xac\xae\x12\x02\x90\xee\xcd\xeb\xd7\xbf\x89\x68\x48\x42\x0b\x9a\x40\x16\xdf\x2b\xac\x03\xba\xf0\x85\xa4\x27\xac\xf1\x0d\x0f\xe1\x9a\x94\x06\xe4\xe7\x05\xab\x11\xa3\x38\x1c\x0a\x87\xe3\x80\x7b\x06\xf3\x3a\x07\xa1\x61\xd7\x9b\x82\x96\xc1\x2d\x37\x64\xd3\x43\x07\xd3\x83\x89\xc5\x66\x1e\x2f\xc2\x20\xca\x70\x3f\x88\xb6\x7b\x08\x43\xdd\xb8\xb1\xa5\xc6\x91\x0c\x38\x97\x77\x1b\xcb\xbe\x0f\x8a\x13\x5b\xe1\xb7\xbe\x17\x50\x6c\x79\x45\xae\x10\x3a\xd6\xc0\x67\xb5\x4b\xed\xdb\xb8\xc7\x62\xbc\x18\xc3\xcb\xe2\xa1\x62\x4d\xb0\xda\xa3\xe3\xc5\x2a\xe9\x68\xcd\xa1\xaa\x1a\x11\x26\x74\xa9\x02\x1c\xb4\xd2\xbc\xeb\xf4\x8c\x78\xc6\xd1\x8c\xe6\xa0\x62\x01\x55\x3e\x04\x26\x2e\x1a\xfc\x68\x87\xec\x47\x1b\xbc\x4d\xcf\xc5\xdb\xd4\x13\x48\xe6\x2a\x01\x7d\x44\x39\x0c\xf4\x90\xe8\xea\xdb\xab\xcc\xf2\xc2\x2c\xa0\x08\xd0\x02\xfe\x4e\x91\x7c\x05\xfb\x33\x48\x6d\x50\xa8\x00\xaf\xdf\xb9\x4c\x5f\x5a\x35\xd6\x5b\xde\xa3\xee\x30\xc8\xda\xee\xfa\xb3\x4c\x98\x57\xcd\xb4\x17\x50\xae\x46\xb4\x36\x72\x44\x45\xfa\xed\x73\x48\xa9\x17\xad\x5b\x37\x50\x6f\x0b\x93\x4f\xbc\x5c\x43\xae\xbd\xbd\xb8\x78\x23\x99\x62\xa7\xee\xdd\xaa\xdf\x3e\xf0\xc3\x96\xd6\xab\xe1\x87\x4e\x5e\x01\xd0\xff\x13\xc4\x1f\x36\xf1\x7a\x43\xd2\xbd\x01\xca\xd7\xba\x1e\x4e\x57\x89\x8f\xfb\x13\xc3\xf2\x55\xd7\xba\x03\xcb\x57\x6f\xd8\x96\x78\x6f\x08\x69\x79\x2a\x9a\xc8\x26\x95\xa2\xe3\x5d\xdd\x63\x76\x96\xdd\x5a\xe1\x23\x96\xd9\xd3\xf8\x3e\x68\x6c\xcf\x5a\x63\x3b\xe4\x94\x7e\x4f\xac\x8e\x74\x0f\x39\x75\xf7\x50\xc4\x86\xfa\xd7\x87\x4d\x75\x24\xf6\x6b\xf3\x63\x0e\x80\xc3\x87\x05\x1c\xf6\xf4\x87\x79\x0f\x86\xdf\x4d\xb1\x04\x06\xf3\x1d\xdd\x0b\xfa\x14\x55\xcb\x6e\xc2\xc1\xf6\xc8\xf8\x4e\xbe\xbb\x9b\x53\x73\xcc\xf5\x31\x3d\xee\xc1\x19\x9f\x38\xe6\xea\x32\x4a\xfb\x46\xd7\xe5\x0d\x74\x77\xa1\x72\x5e\x7a\x19\x3b\x91\xa5\x30\x63\x34\xaa\x91\x1b\xb6\x40\x58\x25\xca\x5c\x2e\x39\x5d\x8f\x9c\x82\xc1\x83\x15\x89\xee\x43\x9e\xc1\x95\xb8\x27\x77\xf1\x36\x4f\x3a\x48\xf8\x94\x70\xa1\xcb\xe9\x94\x27\x20\xad\xd4\x3c\x19\x29\x33\x00\x91\x7b\x8c\xb4\x7f\x3d\xf9\x6b\xb8\x2d\xbb\x53\xb4\x3a\x31\x58\xcd\xa6\x7d\xf2\xe1\x6d\xc4\xce\x36\x76\xd6\xd7\x88\x6e\xc5\x26\xc2\x66\xf6\x02\x5f\x85\xd2\xfa\xf1\x9d\x7b\x42\x18\xa2\x68\xd8\x7b\x06\x11\xb5\x59\xe6\x7a\xea\x31\x8f\x06\x22\x82\xb2\xd4\x40\x95\xfb\x43\x0e\x6a\xc7\xaa\xa2\xfd\x80\x22\x88\xd1\x2b\x5e\x89\xca\x82\x27\xa5\x49\x9b\xfd\x33\x7f\x22\xf7\x70\xb2\x36\x46\x49\xfd\xb2\xf4\x02\x51\x6c\x9a\xb9\x8a\xe0\x75\x04\xd5\x74\x9d\xc5\xbd\x1f\xe4\x6e\xff\x20\xaa\xda\x76\xe1\x8d\x0f\x14\xe0\x41\x2e\xf7\x96\xf2\x62\x73\x59\x71\x55\xe3\xa9\x78\xe9\xf1\xa9\x8b\x79\x3d\x99\x5a\x58\xc7\x7b\x33\xb5\xf6\xb4\x44\xab\x59\x1b\x28\x65\x8d\x1c\x4b\x6d\x9e\xb8\x28\x69\x90\xaa\xc1\x53\xfa\x28\x6b\xf4\xeb\x9a\x0c\x6c\x9b\x89\xb9\xa5\xe1\xd9\x98\x0b\xa3\x8d\x1a\x9f\x09\xf3\x8b\xba\x44\xbb\x45\x97\xf7\xc0\x07\x24\x55\x87\xac\x91\xb9\x17\x08\x5d\x82\xb8\x96\x18\xfb\x16\x05\xe6\xf8\x6c\x49\xff\x00\x8b\x92\x6b\x4b\x05\xa1\x13\x2d\xb3\xd2\x84\xcb\xf8\x92\x7d\x7d\x4b\x7e\xf7\x8a\x40\xac\x53\xc1\x94\x3d\xe7\x74\x86\x24\xb1\x01\xea\x6a\x0c\xc2\x79\x91\xb5\xa1\xca\x78\x1a\xe4\x50\x40\xd0\xe9\x9b\xd7\xbf\x79\x35\x26\xa7\x8d\xef\x71\x4d\x12\x9a\x25\xce\x6b\x07\xb6\xa9\xe8\xab\x93\x05\x51\xb2\x14\x29\x6e\x99\x53\xc8\x92\x60\x8e\x7a\x5d\x61\x74\xd0\x52\xc6\xb5\xd5\xaf\x3e\x7c\xa5\x79\x91\xb1\xb7\x08\x47\x36\x4e\x89\xb3\xdb\x6f\x24\xf9\xf1\xf5\x6f\x46\x76\xac\x70\x8f\x7f\x7c\xfd\x1b\x3f\xd4\xfb\x25\xee\x1c\xb3\xb1\x8f\x9b\x6a\xcf\x5e\xf6\x0a\xd6\xdc\x43\xda\xb8\xd3\x4e\xb4\x91\x45\xe1\x90\x84\x34\x24\x6d\x5e\xc6\xe2\x00\x4a\x3b\xa4\x0f\xa3\xca\x68\x70\x81\xda\xb7\x1d\x78\xa7\x3e\x1d\xa9\xd9\xd2\xf6\x08\x2b\x54\x33\x41\x26\xf6\x4c\x68\x52\x16\x00\x28\x6b\xb4\xc2\x68\x30\x3b\xbc\x8c\x26\x6c\x4c\x7e\x11\x09\xf3\x80\xed\x2a\x5e\x25\x9c\xb0\x11\xd8\x0a\x6c\xaf\x10\xa9\xc6\x52\x4d\xa4\x30\x92\x80\xd7\xaa\xd1\xf7\x88\x98\x79\xa9\x11\xa4\x84\x6b\x48\x4d\x25\xe0\xfd\x07\x0e\x5d\x2a\x3e\xe3\x62\xed\x31\x8b\xbf\x0f\x4b\x95\x65\xb0\x48\xba\xe5\xb8\xef\x12\x8c\xb5\x02\x0c\x77\x7f\xf2\xb4\x0d\x4d\xba\x2c\xd5\xb2\xe3\xef\xb1\xa8\xd1\x12\x0d\x0a\x59\xfd\x08\x9d\xc8\x06\x88\xb3\xfe\xda\xbd\x08\x52\x1c\xbd\x17\xd3\x18\x4f\x25\x7c\xa4\xe2\x6b\xab\x38\xfe\x5c\x23\xe4\x96\x20\xbc\xbe\x2f\x35\x8a\xcd\x3a\x3f\xfc\xee\x37\x7d\x08\x8f\xbf\x4a\x11\xd6\x26\xac\x19\xb5\x0b\x56\x16\x84\xe7\x39\x4b\x39\x35\x2c\x5b\xf8\x8e\x58\xe3\x90\x38\x22\x30\x22\xba\x04\xdb\x82\xa3\xbd\x4d\x1a\x26\x33\xcc\xed\x19\x2e\x6f\x2a\x61\x4d\x18\x04\x85\x92\x37\x8e\x5e\xd4\xa3\x20\xe1\xca\xdb\x37\xe1\x0d\xa0\x58\x80\x2c\xbe\xe1\x59\xc6\xd2\x51\xe7\xf0\xa7\xa5\xb2\xb7\x7f\xd4\xb8\xe9\xad\xc8\xea\x06\xfa\x10\x3c\xe4\x4b\xb7\x18\xcc\x3b\x8e\xc2\xb5\x0e\x79\x85\xe1\xff\x20\x39\xf7\x03\xf2\xeb\x55\xd7\x63\xfb\x43\x9f\xca\x3b\xb1\xfa\x7a\x01\x4d\x72\x17\x6b\xcb\xab\x51\x0f\x4c\x6d\x9c\x2d\xfb\x75\xdb\xfa\x3f\x96\x8f\xc0\x06\x77\xc6\x1d\xf0\x1a\x3f\x03\xf5\x63\xd4\xe3\xeb\xe1\x6c\x4f\x65\x96\xc9\x3b\x34\xfd\xd9\x06\xf8\x99\x96\xeb\xbd\x74\x0d\x56\x05\x19\xf4\xe5\x69\xee\x36\xd4\xb8\xe6\xaa\xdb\xb0\x53\x9e\x77\x69\xa8\x61\xd3\x32\x03\x4b\x52\x27\xd6\xbd\xeb\x55\x3b\x8d\x2a\x47\x2a\x38\xbd\x12\x3b\x3b\x40\x8a\x33\xc3\x30\x84\xb6\xab\x97\xab\x45\xd1\x87\x61\x16\x54\x99\x26\x24\xa9\x6d\xd0\xe7\xbe\x9d\xc7\xc6\x38\x83\xa4\x54\x29\x08\x25\xd4\x38\x87\x8b\x7d\x18\x0d\x27\x92\x10\xc3\xa7\x22\xbb\x7f\x25\x9c\xee\x28\xe8\xf9\xbe\xfb\x1a\x0d\x7d\x9d\xfc\x12\x4d\x30\x32\x1a\x22\x32\xc5\x1f\x5b\x88\x4c\x00\xb7\x8f\x36\x10\xee\x9f\x32\x61\x17\x80\xe9\x31\x39\x0b\xff\xf6\x78\x54\x2e\xac\x4c\xa0\xdf\x5e\x0b\x72\x4c\x3e\x31\x63\x75\xde\xb7\xe4\x94\x68\x2e\x66\x19\xdc\x50\x7b\x01\xde\x7f\xba\xc4\x94\xd4\x52\x1b\x41\x73\x36\x86\xe6\x97\x46\x2a\x3a\x63\x6f\xc9\xa9\x26\xb9\xe5\x16\xff\x90\x59\x99\xb3\x77\x19\xe5\xb9\x26\x34\xf8\xac\x59\x3a\xbe\x16\x57\x8d\x0d\x9a\x95\x54\x51\x61\x58\x85\x8e\x47\xe9\x5a\xe0\x18\xfc\xb0\x17\x68\x72\xa6\xd9\x1d\x5d\xd8\xaf\x14\x1e\xb9\x01\xb8\x59\x8d\x23\x08\x8d\x07\x60\xca\x41\x03\x53\x06\xc0\xc5\x73\x01\x5c\x44\x10\xf9\x76\x2f\xe4\x7d\xc0\xe0\x31\x5b\xd9\x18\x0d\xee\x39\x6f\x45\xf6\x02\x65\xe4\x4e\xcc\x01\xdb\x65\xfb\xb0\xef\x87\xc6\xae\xf1\xc3\x0d\xe1\xd8\xcb\x5e\x9f\xf3\x78\xcc\x51\xd7\xdb\x21\xb1\x0f\x0d\xf6\x1c\x73\xbc\x9d\x62\x49\xa2\x8e\xfb\x00\x9f\xdb\x9a\xaf\x46\x3e\x6b\xd7\xfa\x89\x22\x9f\x87\x52\xe3\x03\xea\xb9\x2f\xea\x39\x3e\xea\x4f\x0c\xf5\x1c\xdd\xe9\x0e\xd8\x73\xa3\x65\x1b\xee\x39\x6a\x32\x00\x9f\x0f\x5b\xbe\x6c\x05\x3e\xdf\xd7\x5b\x1f\x33\xaa\xa8\x8b\x01\x6d\xfc\xcd\x0a\xbf\x01\x6d\xbc\x31\xbd\x3b\x20\x38\x6f\x93\x46\xee\x4b\x06\xeb\x00\xf4\x9e\x92\x46\xdb\x35\x98\xde\x58\x06\xee\x61\x62\x92\xe9\xcf\x10\x34\x9b\x33\x61\xce\x65\xc6\x93\xae\x0a\x65\x2d\x6f\x78\x57\x11\x66\x83\x08\xe6\x49\x0f\x7f\x73\xb6\x40\x38\x3e\x34\x43\xc3\x24\x29\x8b\x11\x5a\x3c\x31\x73\x44\x48\x19\x21\x05\xba\x30\x47\x04\x60\xc2\x4c\x04\x3b\xa5\xb7\xe2\x86\x08\x61\x52\xe0\xd7\xb9\x26\x5f\x7e\x51\x00\xdf\x05\xb0\xd5\x17\xe8\x59\xb1\xe5\x91\x70\x41\xb8\xb0\x7f\x68\xdb\x21\xa2\x22\x5f\x16\x32\x3d\x7e\x3d\x72\xee\x40\x99\x1e\xbf\x19\x11\x66\x92\x57\xde\xf3\xb8\x94\xe8\xf2\x8e\x72\x4b\xf3\x0d\xcf\x08\xa3\xc9\x1c\x3c\xa9\x1e\x1d\xec\x53\x69\xba\x64\x98\x5c\xcc\xc6\xe4\x9f\xcd\x49\x8c\xaa\xc4\x69\x68\xc5\xcd\xe5\x6d\x95\xd1\x52\x16\x85\xd4\xdc\x30\x1c\x1e\x4e\x98\x66\xc0\x80\xa0\x92\x4e\x34\xe9\x73\xaa\x68\x96\xb1\xec\x8b\x33\xef\xc5\xd5\x8c\xbd\x2e\x57\xb8\x36\x98\xf5\xd3\x43\x3a\xbd\xfe\x87\x7b\xe1\x31\xd6\x76\x66\x80\xa6\xb6\x53\x97\xc2\xfd\x0a\x16\x64\xe8\x3a\x85\x92\x44\x60\xe5\xf5\xae\x73\x29\x92\xde\x79\x25\x36\x07\xb1\xa8\x06\x88\x65\xd9\x19\x17\x5a\x38\x99\x10\xcd\x63\x1e\xb3\x09\xab\xa7\x99\x5b\x66\xdf\x97\x70\x89\x80\x84\x66\xc1\xb8\x8d\xa1\xe7\x5c\x68\x43\x85\xe1\x15\xe2\x2d\x18\xd1\x7c\x97\x58\x97\xd0\x4a\xe3\xb7\x3c\x2d\x69\x16\x81\x39\x33\xed\xb2\xe8\xd0\x16\xcb\xe2\x62\x4c\xce\xa6\x31\xbc\x7a\xe4\x8f\xf1\xe1\x64\xdb\x6c\x7b\x25\xe0\x87\x96\x5c\x42\xbe\x75\x23\xfd\x5f\x4e\x39\xc2\xf3\xc3\x89\x8e\x28\xd2\x0b\x1d\x5e\xf3\xd5\xe7\xf1\x84\x37\x9f\xfa\x15\x44\xd8\x21\x64\x2f\xf2\x5f\xb3\x5c\x36\x70\x70\x74\x65\x50\x6f\x18\xc8\x16\x84\x16\x45\xc6\x59\xba\x44\x31\x1d\xb5\xae\x53\x90\x0a\x7e\xf1\xcc\xf2\x7a\xea\x5d\x61\xcc\x9f\x00\x1c\x5c\xdb\x9e\x12\xf6\x89\x2e\x9b\x09\x96\x56\x25\xb4\x0c\x71\x14\xf6\xdf\xfe\xa2\xe3\xcf\xb8\x30\x33\x3b\x42\xa1\x57\x19\x96\x7c\x5b\x58\x1c\xc8\x7a\xe4\x69\x7f\xe3\xc8\x23\x35\x05\x06\xa1\x0b\x7b\xa8\xad\x56\x5f\xe5\x13\x6c\xd8\xf1\xc3\x48\xcc\x18\x4d\x5b\x33\x66\xc8\xfb\x4f\x97\x27\xde\xa9\xe0\xb6\x0d\x1d\x79\xb8\x1f\xd4\x58\xee\xf0\x16\x98\x97\x17\x08\x8e\x91\xfa\x8e\xa3\x19\x8f\xdd\xa1\x1f\xeb\xdb\x64\x9c\x64\xa5\x36\x4c\x8d\x33\x99\xd0\xcc\xb1\xcb\xeb\xa3\x96\x1e\xae\x8f\xec\xd8\x31\xb1\x46\x48\x4f\x10\xbb\x28\x56\x66\xb7\xeb\xa5\x69\x3f\x24\x92\xdf\x3c\x18\x92\xff\x83\x97\x0b\xb4\xa1\x79\xc1\x52\x30\x3d\xb6\xac\x1d\x74\x3f\x2d\xb3\xa9\xfd\x2f\x1c\xb4\x3a\x9b\x71\xdc\xa4\x14\xfc\xd7\xb2\xf2\xdf\x54\xca\x89\x62\x3a\x60\xd6\x6a\x72\x5f\xeb\x62\xef\xa8\xb2\x7f\xf4\xa1\x0d\x6a\xfb\x97\x8d\x9a\x93\x35\x47\xe5\xca\x2e\xeb\xbb\x60\xd7\x46\x2e\xd0\xf9\xea\xbc\xca\x95\xf9\xb7\xb1\xb2\x56\xe8\xa2\x15\x5b\x81\x33\x9c\x42\x9a\xde\x20\x1c\xb4\xaf\xd2\x6d\xe5\x9e\xf3\x2d\xbb\xc4\x94\xb6\x57\xea\x85\x5e\x12\xf4\xf6\x61\x56\xf2\x00\x07\x73\xbe\x78\x48\x9f\x36\x65\x8a\x59\x59\x8a\x34\x5d\x80\x91\xf8\xd9\x42\x44\x72\x8a\x50\xba\x06\x21\xe1\x0c\xd3\x98\xe2\x67\xb9\x5d\x8a\x3b\xea\x56\xd3\x33\x68\x5c\xfa\x98\xf2\x50\x2c\xa6\xfc\xe1\xd6\xf2\x09\x78\x37\x58\xd6\x31\x1a\xd4\xd2\x3a\x3c\x93\xde\x93\x2f\x05\xab\xe0\xe9\x2f\x27\x0b\xa0\xa7\xaf\x08\xae\xc8\xcf\x90\xd0\x95\x0b\x68\x55\x45\xed\xb9\xed\x32\x41\x48\x3b\x6d\xfb\x98\xa1\x37\x4c\x93\x42\xb1\x84\xa5\x0c\xb0\x3d\x96\x71\x51\xb1\x70\x9d\xeb\x66\x3f\x23\x74\xea\x06\x89\x0d\x5c\xb0\xbb\x89\x49\x08\xd4\xc6\xca\x10\x20\xd6\x45\x4e\xdc\xcd\xed\x1d\x3d\xf5\xe0\xb5\xe9\x90\x57\xf0\xbf\x1d\x1a\x05\x3b\x43\x74\x96\xda\xae\x8b\xd1\x61\xdb\x68\xa7\x1b\xa5\x0f\xae\x37\x0e\x1e\xa3\xae\xa4\xc2\x0d\xd6\xbe\xf2\xf2\x3d\x40\x5a\xe1\x77\xe1\x6b\x17\x8e\x6e\x3d\xa5\xd0\xa0\xc8\x14\xbe\xe7\xd0\xa0\x56\xe7\x55\xcf\x5b\xf8\x68\xb1\x41\x6e\x41\x7a\xc6\x99\x34\x5a\x2f\x47\xfd\x02\xe3\xf3\x62\xc9\x5a\xb1\xac\x12\x17\xe2\xdf\x9d\x3a\x14\x18\x31\x74\x12\xbe\xba\xaf\xd3\x57\xef\xbf\xef\x1a\x60\xeb\x91\x95\xbe\x00\x06\x8a\x09\xe3\xea\x22\x84\x9f\xcf\xb2\x34\x14\xf0\x5a\x2e\xd6\xa8\x2e\x34\x68\xf6\x6b\x09\xec\xe5\x3f\x5f\x8f\x1a\x8b\xde\x4c\x11\xdc\x47\xa0\xdd\x38\x40\x6a\xf9\x85\x96\x88\x9d\xd6\x44\xd3\x21\xda\xa8\x46\xc1\xce\xec\xd6\x2b\x14\x13\xd2\xe0\xc8\xa8\xab\xe0\x55\x6f\x23\x67\x39\xe2\xa1\xfc\x22\x91\x82\xe4\xa5\x73\x9f\xb8\x73\x75\x7a\x7e\xe6\xec\xe4\x8f\x1a\x7b\x55\x6b\x7b\xaf\x1b\x51\x45\xd8\x51\x48\xb1\xb6\x20\xef\x56\xf8\xee\x1e\x2c\x5e\xab\x69\xea\xda\x66\x5e\x7b\xca\x9e\xdc\xf3\xba\xd6\x1b\xef\xfb\xb6\xfa\xf5\x3a\x6e\x64\x78\x1e\xf9\x1f\x5e\x6d\x7e\x79\x37\x4b\x16\xdd\x68\xfd\x40\x24\xba\xbe\xca\x7b\xc2\x65\xee\x39\x62\x6e\xb5\x06\xd9\x4b\xd8\xfc\xbc\x4e\x95\xd4\x35\xcd\x71\xcd\x92\x83\x52\xe9\x2a\xb7\x14\x4c\xd9\xa5\xf3\x55\xea\x81\x8a\x72\x91\x64\x65\xca\x34\xa8\x1c\x34\x45\xea\x40\xb3\x0a\xe9\xab\x89\x60\x09\xd3\x9a\xaa\x45\xdc\x47\x04\x79\xf6\xe2\x5d\xb5\x81\x7e\x74\x8f\x93\x0b\xbb\x0d\x0a\xbd\x4e\x67\xaf\xbd\xdc\x89\x7c\xd6\x28\xef\x02\x32\xa2\x99\x7a\x7a\x25\x06\xba\xdd\x2a\xd4\x13\x7f\x51\xdf\x79\xe3\x20\x19\x6b\x0d\x0a\x8f\x98\x1d\xbb\x34\x73\xab\x6a\xa3\xaf\xce\xee\xcd\x9f\x65\x29\x52\xc4\x08\x5e\x78\xfd\x7f\xcd\x0d\x68\x6b\x8e\x56\x86\x60\x3d\x40\x14\x52\xcd\xb0\x45\x89\x91\x37\x0c\x84\x8a\x89\xed\x80\x18\xb9\x63\x7c\x46\x93\x98\xbb\xd1\x34\x23\x9f\x77\x09\x7d\x6d\x7e\x89\xfc\x83\x66\x3c\x25\xe0\xfc\x06\xd3\xca\x8b\x73\x99\xbe\x00\xc3\xeb\x8b\x4b\x96\x28\x66\x5e\x6c\x31\x1a\xd1\x6d\x50\xfe\x14\x59\x8f\xef\x31\xef\x92\x77\x4d\xfb\xf3\xd9\xfb\x6d\xbf\xb3\xbb\x03\x7b\x65\x4f\xd2\x05\x82\x1e\xd6\x1c\xd4\xb8\x59\x85\x91\xf0\x07\x11\xcb\x11\xa2\x9f\xce\x1b\xd1\x69\x82\xde\x86\x01\x38\x74\xc8\xc0\xa1\x01\x9b\xf3\x5c\xb0\x39\xfb\x01\xa6\xaf\xa5\x17\xe0\x9d\x69\xff\xd8\x96\x70\xf2\xf5\x9f\xeb\xcc\x62\xbd\xc2\xe6\x1a\x0d\xf3\x41\xa0\x47\xf5\x59\xe0\x81\x6b\xc7\x22\xd5\xa8\xef\x6e\x80\x48\xdd\x3b\xd6\x8f\xca\x83\x83\xdd\x19\xf8\xb5\xbf\x89\x85\x92\xb7\x3c\x65\x69\x2c\x21\x82\xa1\x10\xf9\x80\xbb\xa0\x7d\x68\x7e\x99\x72\x2b\xdd\x74\x29\x64\xa7\xbe\x1d\x88\x00\x28\x78\x1b\x26\x52\x26\x52\x12\xfa\xa8\xf2\x26\xdc\x30\x31\x26\xa7\x96\x88\xf3\x02\x06\x1c\x0d\x0e\x3c\x1d\xce\x35\x32\x05\xcd\x2d\xd7\x2c\x9b\xba\x6a\xb5\xc2\xfd\x34\xe5\x95\x37\xc3\x7b\x7a\xda\x3f\xe4\x20\x35\x66\xce\xd4\x1d\xd7\xcc\x33\x12\xc7\x07\x6a\xe3\xf1\xe2\x9a\x2e\x9d\x8d\x27\x2f\x33\xc3\x8b\x8c\x45\x5d\xbb\x80\x06\x2f\x8e\x47\xfb\xc8\x08\x9d\xd9\x4d\x08\x09\x13\x6d\xdf\xd5\x8b\x76\x94\x56\x8f\x2c\x0d\xe1\x79\x91\x41\x88\x1b\x99\xf3\xd9\x9c\xa4\x6c\xa6\x18\xca\x32\xaa\x04\x67\x36\xa6\x08\x84\xb1\x41\xc9\xa3\xaa\x9b\x7e\xe6\xdc\x55\xb4\x6d\x0b\x54\xe8\xa4\x26\xfa\xee\x80\x54\xb4\x8a\xde\xeb\x54\xa1\xfa\x0b\xdd\x62\x77\xd8\xd2\xe0\xbc\x0c\xd2\x37\x38\x19\xa2\xdf\xa0\xa8\xd0\x84\x59\x56\xc9\x5d\x4a\x0d\x4d\x32\x29\x66\xbe\xe0\x05\xbe\xe9\x7a\x07\xa8\x81\x1e\x93\x4f\xbf\x5c\x7d\x78\x0b\x5d\x59\x11\x1c\x4c\x82\xea\x85\x26\xee\x56\xde\x72\x76\x57\xb1\x47\xf8\x0c\x74\xef\xbd\x0f\xf5\xe9\xa0\xb3\x19\x93\x5f\xd4\x0f\x99\x90\x66\x4c\xfe\xce\x58\x41\x3e\x7c\x2d\x38\xda\x0c\x5d\x2e\x33\xa2\x73\x9a\x65\x84\x4f\xc9\x42\x96\xe4\x8e\xe2\x8d\xcf\x0b\xcb\xc2\x6f\xa5\x5b\xea\xf6\xed\x64\xcd\xbe\x3a\x2e\xf6\xf2\xb7\x9d\xad\x25\x84\x4e\x92\xb4\xac\xb2\x48\xc1\x4c\x23\x30\x85\xa7\x34\xd1\xc2\xc3\xf5\x52\x4e\x16\x33\xa5\x12\xe1\xe6\xbb\x7a\xd4\x29\x9f\xa2\x94\x5d\xf5\x16\x3e\xa1\x25\xa1\x9e\xc8\x55\xae\x9d\x39\x4b\x6e\xe0\x73\x2f\xaa\xe9\xbd\x70\xbe\x22\x8e\xbe\x68\x70\xdd\x36\x15\xcd\x2d\x6d\xa8\x3d\xf9\x59\x45\x3b\xb7\x36\xda\xf4\xe1\xb3\x3d\xd9\x44\x2d\x96\x4b\x31\x6d\xf5\xf0\xad\x58\x42\xb5\xc4\x57\x3c\x67\x80\xb2\x78\xc8\x08\xa1\x0f\xcb\x9f\x0f\x95\xf8\x38\x6a\x84\xd5\x08\xab\x63\x68\x0f\x1a\x50\x6c\x4b\xea\x57\x98\x3e\xec\x6f\x9d\x55\xea\x9c\x42\x8f\x70\x51\xfa\x6b\xc9\xc8\x84\x51\x05\x29\x3e\xa1\xeb\xdd\x86\x9f\xc0\x90\x5a\xaf\x6f\xb5\xf8\x3b\x3f\x5d\x96\x82\x75\x1f\x2b\xa0\x73\xd4\x18\x96\x17\x88\xa3\xac\xb3\x42\x77\xae\xec\x73\x02\xc1\x40\x96\x65\x2a\x2c\x11\xff\xb6\x46\x2b\x83\xba\xe0\x58\x6b\x42\x93\x79\x65\xb5\xbd\x63\x93\xb9\x94\x37\xae\xbb\xe8\x1b\x52\x91\x22\x2b\x67\x80\x2b\x86\x96\x56\x1e\x3c\xb6\x87\xa9\xe1\x2e\x19\x14\xda\x41\xa1\x1d\x14\x5a\x6c\xf3\xe4\x15\x5a\x4b\x31\xfa\xc5\x5c\xcf\x65\x06\xce\x2b\x64\xf2\x80\x13\x09\x41\x9b\x6e\x43\xc9\x84\xd9\x43\xc4\xec\xc1\xb2\x3b\xf9\x30\x4a\x32\x4c\x61\x93\xe8\xeb\x29\xa4\x51\xb2\x64\xce\x97\xa8\x82\xb3\x8c\xe0\xd6\x60\x87\xbf\x9b\x33\x90\x22\xe3\xf9\xf9\x24\x40\x11\x65\xde\xaa\x38\xfc\xc1\x6b\xe6\xc0\xb2\xf6\xab\x98\x87\x93\xd7\x8b\x33\xfa\x48\x21\x4a\xa2\x36\x35\xbd\x94\xd4\xbf\xb4\x57\xa5\xbc\x06\x88\xac\xa0\x87\x56\x89\xd6\x95\xd2\x14\x68\xa8\x3b\x5f\x15\xce\x3f\xa0\xfb\x9c\x08\xef\xdf\xd6\x84\xea\x31\xf1\xdf\x39\xa6\x77\xa0\xfd\x2f\x73\x6a\xed\xf4\x20\xa6\xf8\x74\xb1\xa4\xa5\x41\x60\x08\x58\x0b\xd2\x7a\x0a\x67\x17\x5a\x5c\xd7\xa3\x63\xa4\x22\x04\x76\x08\x19\xfd\x6a\x07\xe0\xad\x1f\xa3\xda\x9b\x3e\x8e\x06\x5d\x50\x8e\xb7\x86\x1f\xdd\x67\xfe\x1e\x4e\x2e\x69\x91\x24\xc8\xc3\xa8\xdc\x8f\x2a\x88\xee\x42\x78\xec\xab\x99\x54\x6d\x97\x15\x93\x47\xb9\x27\x00\x0d\xf6\x47\x22\xbe\x23\xc9\x5c\x6a\x16\xe8\x6f\x5d\x0a\x0d\x75\xb8\x13\x99\x17\xd4\x00\x3e\x18\x2e\xcc\x44\xba\x5b\x53\x93\x98\x45\x1a\x0c\x4e\x75\x63\x16\xba\xbb\x97\xcd\x5b\x20\xf8\xe9\x2a\xde\xbb\xd1\x23\x50\x9a\xe8\x02\xb8\xd0\x39\xf8\xc6\x0b\x1d\x59\x8e\x00\xeb\xeb\xad\x6d\xcd\x61\x9d\x9e\x9f\xb9\xa0\x14\x66\xaa\xf8\xc6\x71\xd5\x2f\x6a\xd3\x4e\x68\x8d\x0c\x1a\x98\x64\xa2\x9a\x79\xcb\xf2\x21\x78\xda\x69\x60\x1e\x4d\x82\x99\x4f\x9b\xfd\x1b\xe9\x4a\x12\x57\x44\x22\x1e\xa5\x23\x4c\xbc\x9a\x16\x01\x9a\x03\x74\x80\x36\xb4\x0a\xfb\x41\xbb\x1e\x08\x83\x69\x7e\xd1\x7d\x10\xc3\x2f\xc2\x6f\x11\x9f\xb4\x5f\xb9\x3e\x32\xaa\x64\xd7\x47\xa3\x98\xf8\x69\x67\x2e\xf2\xd6\xbe\x0e\x3a\x52\xd9\x88\x1e\x9c\x90\xd4\xe6\xd3\x79\x09\x6a\x73\x8f\xdc\xfb\x4b\xc4\x9a\x6a\x2d\x13\x4e\x03\x63\xa8\x29\x78\xed\x74\x67\x22\x65\xc6\xa8\x58\x61\x93\x52\x6a\x39\x54\xab\xa9\xf6\xdb\x36\xab\x87\x95\xd8\x63\x29\x5e\x80\x58\x0e\xe6\x20\x96\x6e\xe1\x0a\xd6\x6c\xe3\x88\xb1\x16\x42\xf8\x59\x33\x75\x26\xa6\x72\xad\x74\x67\x1b\x79\xa2\xe7\x5f\x58\x5a\x58\x88\x87\xf1\xa6\xfc\x25\xd3\xc5\xee\x48\x77\x18\xf1\x6a\x8a\x1d\xc6\x88\x62\x35\xd2\xa5\x36\xd1\xda\x2e\x22\x98\xe6\xd0\x3e\xce\xf3\x22\x63\xae\x40\x3f\xfe\x38\x86\x6e\x80\xa8\x4d\x69\xd2\x27\x17\x1f\xfb\x6a\xd4\x92\xc6\x52\xc1\x82\xce\xdb\x5f\x23\xab\xef\xd8\xda\x5b\xd6\xb8\x67\xab\x6f\x5a\xf3\x42\x36\x2f\x54\x1d\xbb\x14\xaf\x56\xd8\xd3\x36\x7e\xb2\xe2\x06\xc5\x9b\xda\x3c\xb8\x20\x38\xf7\x4a\x9f\x0f\x51\x6c\x72\x4a\xf0\x0d\x14\xa4\x4a\x77\x14\x29\x64\x22\x24\x72\xfa\xe0\x74\xaa\x1b\x83\x71\xea\x03\xb1\xd0\x06\x00\xb7\x3f\x92\x42\xab\x79\xd0\x44\x49\xad\x5d\x0a\xec\xb3\x69\x7d\x86\x18\x44\x8d\x09\x6e\x5d\xc6\x20\xfc\xcd\xeb\x55\x3e\x76\x05\x96\x23\xf5\x22\xa4\x4b\xf1\x07\xa0\xd5\xca\x38\xfd\xf9\xec\x7d\xd3\x1b\xd3\x97\xc8\xf4\x40\xb7\xf8\xdd\xc2\xa9\xe2\xe4\xb3\xc5\x8a\x39\xe7\xe0\xb1\xc8\x32\x42\x13\x88\x53\xb7\x4f\x7b\x8f\x6d\x67\x64\x64\xc2\x0c\x1d\x6c\x88\x2b\x4f\xf0\x60\x43\x1c\x6c\x88\x83\x0d\xf1\x31\x6d\x88\x4b\x04\xea\x89\x1a\x12\x97\xe7\x31\x58\x13\xe1\x7f\x0f\x64\x4d\x84\xf5\xbf\x8f\x49\xb1\xfd\x20\x0e\x76\xc5\xc1\xae\x38\xd8\x15\xfb\x12\xbb\xc1\xb8\x38\x18\x17\x07\xe3\xe2\x60\x5c\xfc\xb6\x8c\x8b\x48\x0d\x9f\x9c\x85\xb1\x31\xec\xc1\xcc\x48\x06\x33\xe3\x60\x66\x1c\xcc\x8c\x3d\x69\x89\x54\xfc\xdf\xc1\x59\xf1\x51\x26\x34\xbb\x2c\xe1\xad\xd3\x24\x61\x5a\x77\x5a\x1b\x57\xbd\x82\xd4\xbc\x52\x76\xa5\x82\xb0\x79\x8a\xf3\x95\x0a\xcf\x2f\xe8\xbd\x3e\xc4\x98\x0a\x98\x3d\x84\x86\x57\x25\x61\xec\x79\x2f\xa0\xfa\xe1\x5f\xe9\x2d\x54\x27\xab\x9e\x11\x9d\xc8\x82\xa5\x95\x16\x94\x43\x76\x25\x6e\x48\x5e\x26\x73\xc2\xa8\xe6\x58\x20\x7e\xa6\xa8\x30\xcb\xef\xb9\xa4\xa3\x78\x16\x7d\x60\x74\xc1\x54\xce\x35\x66\xd3\x81\x49\x70\x31\x1b\xac\x95\x83\xb5\x72\xb0\x56\x36\x97\xfd\x29\x59\x2b\x6b\x74\xae\x85\x5e\xed\xcd\x5e\x39\x26\xa8\x91\x55\xc4\x27\xc7\x40\x24\xc2\x7e\x2d\x69\xe6\xef\x65\xf5\xf3\x42\x96\x2e\xa9\x5f\xd4\xa9\xd3\x59\xc6\xc4\x72\x44\x9f\x7b\xc4\x20\x47\x04\xeb\x48\xdd\x5c\xb8\x1b\xcb\x68\xe7\x9a\x3d\x8c\x6d\xd4\xde\x5a\x97\x53\x10\xb9\xc8\xd3\xb0\x8b\x56\xab\xb7\xce\x2c\xba\x92\xe5\xee\x0c\x71\x59\xdb\xc5\x4f\x52\x5c\x38\xe2\x76\x6a\x90\x60\xb0\x75\x06\x9f\xd6\xf6\x15\xaf\xf4\xa2\x6f\xf8\x06\xa1\x55\xab\x2a\xab\xda\x14\xf6\x4d\x1c\x07\xba\x1a\xd1\x40\xe8\xe3\xd4\xf5\x01\xc6\x13\xa7\x56\xf4\x29\x24\x68\xe6\x1d\x64\xff\x9c\x9a\x79\xd0\xd4\x2e\x3e\x12\xfb\x4a\x23\x80\x6a\x73\xba\x77\xcb\xd4\xa4\xe3\xbb\xff\x60\x6a\x12\xb2\xd9\x1b\x2a\x52\xaa\x52\xf2\xd7\xab\xab\x73\x02\x2f\x3f\xb0\x5c\x17\xed\xe2\x45\x99\xad\xcb\xc6\xd1\x68\xd9\x42\xf0\x1a\x79\x65\x29\x51\x65\x9c\xf9\x37\xda\xe5\xee\x0d\x14\xd5\xd7\x3e\x5f\x7c\xec\x52\x7f\x3e\xd5\x5b\x3b\x6e\xee\xaa\x1f\x52\x05\x59\xf8\x4b\x95\x85\x9a\x82\x20\x69\x3a\xc1\x08\xb3\x62\xc1\xfd\x02\xbe\x4b\xbe\xaf\x25\x2b\x75\xa1\x82\x22\x5b\xf8\xe8\xc4\x69\x99\x65\x23\x32\x85\x42\x93\xda\xb0\xc2\xdb\xbf\xec\x01\x1a\x13\x72\x7d\xf4\xfd\xf5\x11\xc9\x19\x15\x40\x9c\x1e\x5c\xdf\xb2\xa7\xa8\x6b\xbd\xfc\x19\xac\xdc\x08\x15\x59\xab\x5f\x47\x97\xee\x64\xa2\x47\x24\xe3\x37\xec\x2d\x99\x31\x33\x22\x85\xd4\xf6\xff\x4b\x33\x72\x6a\xd7\x88\x40\x6a\xc0\x11\x99\x33\x9a\x8e\x88\x2c\x50\x8c\x78\xa4\xd5\xe8\x49\xfa\x71\xa5\xba\x68\x7f\xef\xab\xb4\x11\xf5\xdc\x11\xe9\xdc\x31\xd9\xf4\x5c\x6a\xdd\xd9\xf9\x0b\x68\x67\x8e\x80\xd9\xe3\x81\x0f\x1c\xe5\xf4\xf3\xea\xdc\xfa\x5d\xe6\xa3\x69\xc9\x6c\x1e\x16\x06\x65\xae\x2a\x6e\x16\xb3\xb1\x5c\x1f\xcd\x98\xb9\x3e\xb2\x52\x83\xb7\x1b\xf8\x1f\xf0\xef\xeb\xa3\x31\xb9\x3e\xba\x3e\x22\x2f\x41\xa4\x7a\x75\xef\x79\x80\x04\xd7\x63\x32\x28\xe9\x45\x33\xc2\x07\xde\x71\x86\x5a\x70\x63\x52\x63\x42\xde\xf9\x72\x00\x60\xd4\x50\xd0\x83\x90\x24\xe5\xda\x70\xe1\x5f\xc2\x00\x77\x21\xa3\x7e\xc1\x5a\x92\x65\xd5\x13\x5d\x9f\x76\x2c\x46\xc2\x12\xad\x92\x4a\x96\xdf\x43\x1b\xbd\x7d\xc7\xe5\x5e\x3f\x6e\xe8\xe4\xba\x6d\x85\xaf\x8f\x68\x96\x5d\x1f\xa1\x60\xb0\x4a\x9b\x77\xfa\x14\x25\x6d\xe6\x05\xa9\xc8\x25\xcb\xa6\x9d\x92\x53\xbf\xb2\x1d\x8e\x61\x75\xe5\x8e\x75\xa7\xcd\xea\x84\x95\x9b\x13\x42\xd7\x71\xa7\xbc\xd6\x68\x95\xaa\x9d\xdc\x0d\x5d\x4e\x7a\x0e\xee\xb2\x6a\xb9\xc1\xf8\xc2\xf0\x84\x14\xdb\x14\x3c\xd9\x40\x12\xa2\x31\xf7\x59\xe2\x3c\x35\xc6\x63\xd9\xd5\x88\xdc\x21\xaf\xc1\x4c\x83\x23\xa7\x1f\x47\xac\x48\xc9\xaf\x8b\x9d\x2c\xf2\x6d\x2f\xb3\x8d\xb7\xd9\x44\x34\xf1\x1f\xf5\x0c\x61\xf7\xa7\x8a\x3b\x13\xf8\x7a\x4a\x7b\x35\x51\xcf\x4d\x2c\x64\xfc\x00\x7a\xe2\x24\x58\xbc\x65\xb1\x26\x16\xa5\x06\x04\xdf\xae\xbb\xb2\x98\x8d\x00\xfb\x50\x29\xc3\x0a\x49\x5a\xbc\x30\x44\xf3\x99\x80\x9a\x4e\xc2\x8c\xc0\x6e\xe2\x12\xab\x90\xb4\x84\xfc\x8b\x86\x69\x34\x43\x15\x52\x6b\x3e\xc1\xe4\x11\x5c\x24\x32\x2f\xec\x86\xf7\xb3\xc0\xfd\xa5\x8f\x19\xfd\xf4\xfc\x0c\xdb\xb5\xb1\x14\xff\x23\x0a\x91\x21\xf9\x4b\xcc\x6d\x34\x6a\xe1\x21\x81\x89\x3d\x0a\xce\x1a\x6f\x45\xca\xa8\x14\x0e\xe4\x58\x4c\x62\xef\x37\xab\xdc\x8f\xf1\x15\x15\x65\x0e\x59\x41\x63\xe2\xc7\x05\xbc\x1f\x7a\x0f\x29\x37\xdc\x16\x1c\x80\x14\xea\x07\x0b\x2c\xad\x27\xf5\x84\xb6\xe8\x34\x77\x12\x24\x54\xea\xe0\xa6\x3a\x7a\x51\x41\x10\x58\x77\x7b\x3a\xb1\xfe\x8d\x13\xde\x4f\x83\x6f\x98\x19\x37\x7d\x68\xcd\x6e\x99\x5a\x98\x39\x1e\xba\x03\x5c\xa7\xbe\x6b\xd4\x40\xff\x54\x67\x02\x0d\xc2\x4b\xeb\xd1\x98\x5f\xf0\xd5\xfb\x93\x48\xc2\xd5\x18\x5f\x0b\xdb\xfa\x64\x2a\xe5\xf5\x51\x33\xb1\x7d\xc4\x6d\xc8\x8b\xa9\x94\x2f\x50\x5c\x82\x32\x45\xd1\xa9\x5c\xd5\xf5\x93\xd3\x81\x3a\xf4\x9f\x1d\xb2\xa1\x67\xa5\x02\xad\x92\xbb\xd6\x64\xb9\x6d\x7f\xa3\xc5\x47\x64\xa2\xfa\x0a\xa0\xbf\xb7\x3a\x88\xc6\x84\x7c\x92\x06\x4c\x8a\x58\x82\x8f\xd0\x25\x23\xab\x93\x33\xed\x6f\x35\xc9\xd7\xca\xfc\x20\x3a\x3a\xfb\x81\x3d\xc8\x34\x23\x09\xd5\x6c\x44\x26\x2c\xa1\xa5\x76\xee\x37\x6f\x3b\xa0\xd9\x1d\x5d\x68\xa0\xbc\x56\x23\x0b\x59\x71\x22\x5b\xe5\xa2\x7d\x9c\x83\xd7\x68\xf0\x1a\x0d\x5e\xa3\x67\xe3\x35\x6a\xa7\x62\xfb\xf4\x1c\x21\x38\x40\xa4\x5e\xbe\x0c\xae\x23\x2b\xfd\x0c\xfe\x9e\x27\xe8\xef\xe9\x65\xb4\xd8\x99\xbb\x67\xdd\x91\xdd\x98\x5d\xaf\xc5\xc7\x3b\xdb\x7a\x48\x4a\x47\x3e\x7c\xa5\x89\xc9\x16\x5e\xcd\x09\xa6\xd0\x78\x88\x91\x5d\xd4\x1e\x8b\xd8\xd9\xb4\xa2\x99\xbf\x00\x9a\x99\x8d\xdc\x0b\xad\xe6\xda\x2d\x6f\x46\xbb\x0f\x6d\xdd\xad\x68\xf7\xa2\x55\x4e\x94\x98\x2c\xa0\x85\xb2\x66\x9e\xaf\xaf\xed\x7a\x15\x63\x97\x13\xdd\x70\x96\x5d\x7b\xb7\x6e\xbe\xdd\x73\xdd\x99\x6d\x24\x3a\xdd\x17\x65\xc6\x36\x92\x5e\xa3\x17\x2a\xa5\xdd\x29\x4f\x6c\xc9\x6c\xb2\x52\x90\xbd\xe3\x56\x49\x8d\x91\x4c\xbe\x5c\xac\x03\x5b\x37\x8d\x30\x2e\xf4\xb2\x32\x87\x90\x94\x15\x4c\xa4\x50\xef\x59\x44\xe4\x15\x80\xe3\xb1\x53\x21\x97\xa9\x13\xd4\xa8\x58\x10\x40\xec\x6a\xc2\xbe\x16\x4c\x01\xee\x39\x94\xb1\x06\xf9\x03\x39\x0f\x08\xd8\x2b\x26\xed\x24\x46\x9f\xa5\x75\xb2\x20\x9f\xcf\x40\x4a\xd4\x73\x79\x77\x32\xe7\xa9\xb7\x5e\x63\xa5\x6b\x23\xc9\xaf\x25\x4f\x6e\xb2\x05\xc9\x98\x01\x4c\xb7\x48\x71\x3d\x14\xa3\x3a\xe6\x82\x5c\xc5\xc8\x2b\xa8\x55\xe1\x3e\xf6\xe9\x97\x2b\xf2\xe7\xea\x83\xec\xab\x13\x42\xf5\x42\x5b\xb5\xca\x7e\x24\x55\xfc\xb6\xe9\x4e\x49\x59\xe2\x6a\xa2\x51\xaf\x38\x53\xae\x99\xb6\xe2\xee\x14\x3a\x4b\x59\x51\x9a\xc5\x08\x23\x5a\x49\xc6\xa7\xcc\xf0\x9c\x9d\x54\x89\x3e\x71\xe1\xa0\xf0\x50\x62\x84\x3d\x97\x50\xe8\x55\xd9\xf1\xb5\x10\x48\x6c\x0e\xb6\xf3\x9a\x9a\xe3\xf3\xf6\xba\x8e\xb0\x66\xa1\xb4\x72\x3c\x64\x26\x6d\x1f\xb4\x77\xf1\xb4\xa0\xd0\x07\x6d\x62\xd0\x26\x06\x6d\x02\xdb\x3c\x07\x6d\x22\x22\xb0\xfb\x53\x26\x1e\x44\x5b\x88\x67\xb2\x7b\x65\xa1\x85\xcd\xd2\x25\xe6\xfa\x44\xa2\x66\x37\xd6\x16\x62\x59\x65\xef\xca\x42\xf3\x44\x46\xc2\xd1\x4a\x61\x7b\x63\xf7\xb7\x91\xe1\x78\x82\x4d\x1b\x8a\x97\x8e\xc9\x85\xdb\xa3\x07\x77\x9a\x6d\x68\xd3\xdc\x2d\xe6\x7d\xe0\xee\x03\x77\x1f\xb8\x7b\x73\xd9\x9f\x2e\x77\x7f\x40\x3b\xe1\x60\x07\x7c\x8a\x9c\xfd\xe1\x6c\x80\x9b\xdb\xff\x9e\x81\xed\xef\x69\x46\x9c\x7e\xb0\xa3\x6e\xab\x74\x1c\xc2\x6e\xc7\x7f\x61\x06\x5a\xbd\x7c\x45\x72\x66\xe6\x32\xad\x78\x42\x3d\x08\x95\x90\x4b\x0e\x55\x5c\x20\xba\xcd\xd2\x94\xa2\x8c\x92\x68\x54\xc8\x51\x5f\xee\x03\x4a\xbf\x64\x2e\x5f\xc1\x9c\xa9\x55\x80\xb0\x7b\xc7\xb1\xd6\xd1\x37\xce\xb5\xb1\x90\xe5\x0b\xc5\x88\x95\x1d\x2c\x75\x9b\x2e\x85\xd1\xee\x1f\x50\x30\xd8\x8b\x9f\x91\xbd\x38\x9a\x6b\xbf\x3a\x94\x6b\x79\xae\x3d\x92\x6b\xd2\x24\x6c\x9a\x9d\x60\x4d\x3e\x01\xd0\x15\x5a\x2e\x03\x39\xc3\x92\x44\x88\xbc\x59\x90\x6b\x78\xeb\xfa\x08\x22\x17\xac\x84\x77\xed\xee\x95\xcb\x7a\x01\x48\x45\xee\xe4\xf0\x42\x61\xd4\xb4\x26\xd7\x47\xff\x04\x7a\x30\x85\xc4\x05\xe4\x8e\x29\xe6\x94\x94\x9c\xf9\x0a\xcf\x54\x2c\xdc\xad\x3c\x00\x15\xac\x33\x27\x4d\xb7\x80\xb2\x5a\xa3\x42\xf1\xa2\x4b\x9d\x72\x42\x08\xc7\x63\x06\xba\x29\xb9\x52\x25\xb3\xab\x18\xe1\xb5\xef\xbc\x69\x3c\x04\x95\x4c\x69\xa6\x59\x55\x1f\x6d\x9b\x1c\x1b\x29\x13\xbc\x73\x84\xef\xa1\x11\xe0\x7e\x1d\xa2\x6e\xfd\x00\xb1\xd3\x51\x54\xb9\x0d\x46\x0a\x67\x0c\x92\xdf\xd0\x6a\xca\x38\x07\xcb\xa2\xd3\xf0\x15\x78\xe6\x4e\x59\x83\x9b\xcc\x29\x40\xd2\x65\xc1\x05\x48\x08\xa2\x12\xed\x64\xd5\x2e\x1a\xd5\x98\xb8\xd1\xbb\xc2\x5c\x76\x7c\xc6\x8d\x3d\x5a\x79\xfb\x68\xab\x1c\x25\xc1\xa7\xf1\xa1\x4f\xb6\x92\x7a\x6b\x07\x53\x74\x62\x6a\x88\x7e\xd2\x32\x67\xe8\x4a\x21\x32\x01\x27\x4f\xcd\x8d\x52\xb7\xe8\x83\x4d\x00\x4b\x6f\x6b\x62\xb9\xb3\x62\xd9\xc2\x83\x5c\x19\x96\x84\x47\xcf\x08\x74\x68\x17\x3a\x46\x1a\x49\xab\x38\x96\x76\xcb\x0c\x53\x39\x17\xcd\xee\xb5\x13\xb4\x05\xd1\x05\x37\x20\x6e\x71\x33\x26\x3f\x41\xd2\x15\x6d\xa8\x48\xd8\x88\x5c\xfc\xf9\xf4\x9d\x4f\x31\x07\x1e\x16\x08\xa3\x57\x32\x63\x18\xf8\xc4\x84\x2c\x67\x73\x78\xe0\x30\xac\x86\x67\x99\x4f\x26\x86\x63\x72\x75\xde\x96\xfc\x36\xcb\x79\x9d\x7a\x53\x46\xec\xaa\x13\x13\x09\xdf\xab\x9d\x6d\x2c\x64\x5e\xe9\x0e\x0b\xe0\x08\xa8\x35\x40\xa2\x9b\x4a\x6d\xc0\x43\xbb\xe3\xda\x51\x9e\x6e\x74\x69\x16\x9b\xd2\xbd\x65\xf3\x69\x27\xd9\x5b\x7a\x65\x09\xb3\x1c\xaa\x91\xa1\x8d\xcd\x9d\xc7\xab\x39\x77\xff\xf6\x07\x63\xbd\x73\xd1\x55\x81\xf4\xf7\x5c\xc7\xaa\x1c\x47\x9f\x1a\x9f\x95\x2a\xa4\x16\xea\x74\x38\xc6\xce\xc6\x3f\x3b\xd8\x5d\xfd\x68\xe3\x78\x21\x4a\x0f\xe4\xf6\x5b\x36\xb2\x44\x81\x06\x00\x2c\xa3\x0a\x61\xd2\xe8\x2f\xe5\xe6\x85\x26\x9a\x4e\xb1\x70\xa1\xd6\x65\xce\x6a\xe8\xf5\x39\x75\x30\xe1\xca\xcf\x38\x22\xec\xd6\x72\xca\x29\xfe\x80\xdd\xe8\xcd\x60\xe7\xf7\xa3\x30\x76\xf1\x71\x2a\x76\x26\x89\xcc\x27\x5c\xe0\xf4\x61\x1d\x61\x7b\xc7\xf5\xf3\x1e\x68\x45\x93\xf8\xc0\xba\x54\xc3\x19\x11\x5d\x26\x73\xcb\xf4\xa9\x88\x49\x34\x46\x70\x4a\x86\xb0\xfc\xb2\x28\xa4\x32\xcb\xef\x62\x3e\x32\x6a\x48\x1c\x24\x00\xba\xda\x89\x54\xa4\x11\x27\xda\xe2\xa1\xde\x82\x1e\x54\x2f\x77\x2c\xe2\x59\x75\x54\x1d\x6b\xc0\x22\xfd\x1e\x2d\x1e\xa5\x2d\x03\xa3\x83\x3d\xa0\x90\x5c\x45\xd5\x46\x88\x97\x80\x6b\x92\x4b\x6d\xa0\xfa\x3f\x44\x80\x32\x01\x65\xbb\x19\x1c\x66\xdb\x6d\x6d\xf9\x6a\xab\x1a\x7c\xd1\xf1\xef\x6d\x4b\xab\xe3\xf3\xbe\x05\x1b\x13\x8d\xf5\xee\x1f\x2a\x8b\xdb\x73\x9f\xe0\x8e\x58\xb7\x78\x88\x00\x0f\xb2\x46\xdb\xbb\x97\xf6\x05\xd1\x30\xf7\x51\x10\xd5\x06\x5b\xb0\xbb\xf5\x7f\xba\x6b\x7f\xbf\x85\xef\xc9\x8c\xeb\x9b\xb2\xee\xce\xb4\x93\x9a\x5d\x31\x71\x4c\xc4\x36\xa4\x50\x1a\x52\x28\x0d\x0e\xae\xc1\xc1\xf5\xcc\x1d\x5c\x48\xec\x86\x3c\x4a\x3b\x5c\xb8\xc1\xa9\xf6\x18\xc9\x94\xb6\x49\x38\xbf\xbc\x9f\x43\x5a\xa5\x6f\x30\xad\xd2\xd2\xd6\x0f\xb9\x95\x86\xdc\x4a\x43\x6e\xa5\x7b\xde\xa7\x21\xc1\xd2\x90\x60\x69\x48\xb0\x34\x24\x58\x1a\x12\x2c\x6d\x28\x13\x0d\x09\x96\xba\x07\xb5\x5b\xd1\x6f\xc8\xb2\xb4\xde\x46\x37\x64\x59\x1a\xb2\x2c\x3d\xc2\x3a\x0d\x59\x96\x0e\x4a\x1b\x1a\xb2\x2c\x6d\xcf\x61\x86\x54\x4b\x43\xaa\xa5\xc1\xbb\x34\x78\x97\xbe\x4d\xef\xd2\xb7\x94\x6f\x69\xf0\x0b\x1d\x54\xd2\xa5\xdd\xb8\x85\x86\xf4\x4b\xbb\x8f\x32\x59\xe7\x70\x7b\x7e\x31\x35\x2b\x6d\xe2\x8f\x17\x58\xb3\x5b\x1b\xca\x90\x8d\x69\xc8\xc6\x34\x64\x63\x1a\x14\x8e\x41\xe1\x18\x14\x8e\x03\x52\x38\x9e\x7e\x4a\xa6\x9a\x42\x31\xe4\x65\x7a\xe4\xbc\x4c\x3b\xd7\x27\xbe\xc5\x0c\x4d\x2b\x75\xe4\x21\x4d\xd3\xc0\xf6\xc9\xc0\xf6\x07\xb6\x7f\xf0\x28\xf6\xc1\x86\xf8\x64\x59\xfe\x63\xd8\x0f\x87\xd4\x4d\xfe\xe1\x90\xba\xe9\x41\x52\x37\x0d\x99\x9b\x06\x53\xf3\xe1\x98\x9a\xa3\x09\x7f\x53\x39\x9c\x9e\x70\x0a\xa7\x2e\x19\x64\xc8\xe3\xb4\x66\x84\x43\x1e\xa7\x21\x8f\xd3\x90\xc7\xe9\xe9\xe6\x71\xea\xb0\xb9\x0e\xc9\x9c\x86\x64\x4e\x43\x32\xa7\x21\x99\xd3\x90\xcc\x09\x1f\xdf\x5f\x21\x1b\x32\x3a\x3d\xc6\x06\x3c\xf7\xb4\x4e\x52\x27\x34\xe3\x62\x36\xbe\x7d\x33\x7e\xa7\xa4\xd6\xce\x4d\x83\x36\xe9\x0b\x36\x65\xca\x72\xbf\x35\xfc\x7c\xcd\x5b\x15\x4b\x77\xd2\x5a\x2d\x01\x80\x04\x64\x8e\xd5\x11\x79\x6a\x85\xcc\xe9\xc2\x71\xfe\x29\x03\xe6\xe0\x57\x65\xc7\x7e\x28\xef\x74\xaa\xe2\x7e\x61\xb4\x5b\x24\x71\xe8\xeb\x81\x69\x7c\xe8\x8f\x0f\xe8\xdf\xb8\x3e\xda\x5f\x0c\x75\xd7\xb4\xde\x9e\x9c\x54\x26\x6b\x3b\xb1\x54\x26\xfa\xa4\xd4\x4c\x1d\xcf\x4a\x9e\xb2\x13\xb7\xed\x9c\x29\xfd\x1d\x38\x6c\x77\x2b\xf1\xc2\xf6\x34\xe7\xb5\xa3\xab\xf2\x57\x4b\x29\xec\xe1\xce\xce\x65\x7a\xea\x7e\xab\xd9\x4d\x9a\x4b\xe6\x05\xcd\xca\xa1\x49\xe6\xa1\x13\x52\xc8\x94\xd0\xd0\xcd\xe0\x79\x1d\x3c\xaf\x83\xe7\xb5\xb9\xec\xfb\xf5\xbc\x76\x38\x0c\x31\xfd\x8e\xdb\x1b\x3f\x92\xbd\xaf\x57\x98\x72\xeb\x82\x6c\xeb\x17\xee\x41\xc8\x3a\x9d\xc2\x13\x36\xa7\xb7\x5c\x96\xca\xa9\xd7\x9e\x72\xed\x7b\x45\xec\x9c\x8f\xa9\x48\x8f\xd1\x88\xb4\x73\x5c\x59\x9f\xb5\xe9\xf6\x30\x7b\xfc\x75\xbb\x8d\x3e\x26\xf4\xfd\xad\xd2\xbb\xf5\x04\xfb\x79\xb6\x3b\x80\x57\xb1\xb7\xd5\x4e\xe0\xcd\xfc\xbf\x3d\x56\xf9\x23\xd7\x66\x0d\x3b\xf5\xba\xc8\x4a\x1e\xea\xee\xaa\x1e\x78\xe9\x41\xf3\xd2\x36\x6d\x6d\x07\x7b\xbd\xb2\xef\xdd\x91\x81\x7b\xe9\xe2\x83\x08\xf1\x5c\x44\x08\x4b\xa7\xfa\x0b\x10\x70\x94\x83\xf8\xb0\xb9\x4e\x83\x47\xba\x4b\x89\x39\x00\x56\x01\xe4\xfb\x01\xd9\x45\x07\x56\xc8\x65\x97\x48\x76\xa4\x7d\xe5\xf4\xeb\x05\x03\xdb\x54\x17\xed\x2a\x8b\x82\x29\x92\xf1\x9c\x9b\x2a\xb9\x61\xe9\x5d\xd7\x85\x4c\x9d\x69\xdf\xf9\x32\x34\x33\x1e\x8a\x56\x0d\xe8\x8f\xf6\x57\x77\xe9\x74\x4e\xb3\x0c\x6d\xe1\x82\xfc\xcc\x85\x1f\x46\x83\xf4\xa1\xd8\x61\x07\xc0\x85\xf9\xf1\x87\xf6\x9b\x62\x39\xc9\x2c\x26\x64\xb5\xab\x52\xf5\xdd\x31\xc5\xa8\x65\xb0\x14\xca\xbb\x35\xb3\x56\xbe\xb5\x91\xe4\x6e\xce\x93\x79\x63\xbe\xb0\x18\xf0\x4f\x92\xca\x3b\x81\xbe\x33\x97\x53\x0c\x5e\x7a\x63\x17\x6e\x4c\x48\xe3\xcb\x91\x01\x72\xc2\xc8\xeb\xe0\x49\xce\x8a\x39\x25\x53\x46\x2d\x49\x21\x33\x6a\x18\xf9\xeb\xf9\xe9\xa5\xed\xff\x4a\xfe\xbf\x4c\x49\xf4\x72\xd2\x49\xc6\x52\xf4\xff\x18\x92\x31\xea\x12\xea\xa0\x8a\x40\xa4\x22\x1f\xbc\xcd\x3c\x67\x46\xf1\xa4\xee\x3d\x1a\x13\x72\x89\x87\x14\x46\x92\x18\x08\x0b\xd3\x24\x93\x62\x06\x36\xf7\xb8\x4f\xd7\x01\x12\x74\x1e\x65\xe8\xdb\xf9\x2e\xc2\x2a\x5e\x51\x35\x63\xe6\x02\x48\xdc\xbd\x04\xe2\x75\x06\xc2\x75\xe4\x4f\x05\x83\xa0\x91\xb8\xb1\x95\x75\xef\x8f\x6b\xd8\x3a\xe4\x27\xca\x18\x55\xa2\x16\xd5\x18\x98\x5d\x22\x85\x2e\x73\x04\xf9\xd9\x8d\x83\xf6\xf6\x0a\xd9\xd6\x29\xd3\x96\x7e\x36\x6f\xdb\x64\x41\x4a\x70\x26\x5b\xce\x06\x87\x20\xce\x52\xb3\x42\x9f\x30\xb0\x82\xef\xce\x3f\x7f\x36\x3c\x73\x26\xe2\x73\xa6\x12\x2b\xda\xcd\xba\x8c\x65\xf8\x32\xa1\xb7\x4c\xd1\x19\x23\xef\xce\x3f\x93\xb2\xea\x86\xbc\x0c\x6c\x1a\x21\x2f\x94\x14\xa1\x67\xbc\x2d\x3e\xcf\xd3\xbb\xf3\xcf\xaf\x88\x04\x7c\x6a\x96\x61\x16\x51\x99\xea\x3f\xda\x73\x6e\xa9\x43\x95\x41\x07\xa7\x0f\xf7\x85\x44\x5b\xe8\x13\xd8\xfb\xb4\x4f\xa5\x5e\xf2\x32\x6f\x79\xe2\x7a\x72\xaf\xc6\x69\x1c\xb5\x13\xd4\xfd\x9a\xe8\x3a\xfd\xd3\xfe\x94\x39\x94\xc2\x7a\x5e\xd1\xcd\x2a\x5c\x77\x5b\x9e\x1d\x3f\x98\x55\x87\x27\x9c\x06\x7b\x12\x46\x64\x93\xa3\x34\x22\x6c\x3c\x1b\x93\xff\x78\x1d\xe7\xbb\xa2\x22\x7c\xca\x4e\x94\x6b\x77\x59\x84\xbc\x23\xff\xf1\xfa\x37\x08\xd5\xd0\xf5\x8e\x76\x4e\xb4\xdc\xa4\x7b\xb2\x1f\xbf\x44\x2d\xfc\xc5\xdf\xf9\x9c\x0a\x3a\x8b\x7c\xaa\x6d\xbc\x7e\x47\x63\x77\x54\xa7\xe7\xd8\x97\x69\xd4\x63\x8e\x3d\xa3\xda\x20\x5b\xe4\xcb\x1e\x80\x7b\x88\xc8\xd0\xdd\x3a\xfe\x60\x3f\x4c\x0c\x77\xb0\x87\x15\x17\xd7\x33\x8e\x65\x09\xea\x8f\x21\x42\xbb\x21\x47\x38\x30\x92\x92\x19\x99\xcb\x3b\x22\xa7\xc6\xf9\xda\x1b\x3c\x01\x10\x25\x54\xcc\x56\xc6\x29\xca\x09\x20\x46\xd2\xbf\x30\xc1\xd0\x82\xdf\x25\x13\x49\x0d\xaa\xbc\x3d\x98\xb3\xf0\x12\xf1\xfd\x6c\xb8\x9b\xbf\xff\xed\x8e\x09\x71\xf3\x86\xad\x39\xc0\x3b\xa2\xc6\x70\xae\xd6\xa1\x82\x80\x13\x47\xe9\xe3\x28\xf1\x5c\xcb\xa3\xa4\xea\x48\xda\xc1\xae\x73\xd0\x76\x9d\xc1\xc0\xf1\x5c\x0c\x1c\xf7\xf4\x91\xec\xdd\xdb\xdd\x66\x4d\xd9\xb1\x93\x04\x88\x53\xa7\x4b\x24\x26\x1d\xce\x3d\xa2\xbc\x93\x1c\x68\xfc\xb3\x72\x8e\xe0\x9a\xf4\x77\x85\x54\xe2\xf4\xe3\xad\x07\xb9\x60\x34\x3d\x96\x22\x5b\x1c\xaa\xe3\x05\xd9\xe4\x3e\xec\x66\xd5\x19\xee\x60\xc2\x10\x43\x57\xc5\xb2\x80\x48\x55\x05\xb9\x80\x3a\xa4\x97\xd5\xe6\x4e\x66\xac\xb6\x95\x88\x3d\x24\x5c\x07\x4b\x92\x13\x04\x1d\xc3\xdd\x8f\x02\x7b\x0f\x29\xa7\x1b\x01\x5d\xb5\x6a\x26\xcc\x6d\x53\x3e\xf7\xb8\xda\x34\x31\x25\xcd\xa2\xc5\x0e\x02\x6a\xb5\xea\xf1\x8d\xdd\xed\xa2\xc7\x34\x89\x65\x2c\x31\x9d\x20\xe4\x8c\x4e\x58\x46\x7e\x2d\x99\x5a\xa0\xea\x5b\x19\x50\x9d\xb8\x95\x53\xe3\xec\x89\x41\x93\x02\x50\x6c\x85\x99\xd5\x34\x67\xbe\x3a\x0b\xf6\xe7\x3f\x0e\x71\x05\x3e\x1d\x31\x8a\x24\x38\x33\xc0\x65\xdf\x4a\x6e\x97\xc5\x28\x69\xc9\x0a\x08\x7e\x93\x85\x93\x24\x1c\xb8\xd1\xbd\xe4\xed\x2b\xbe\x2b\xfb\x41\xd7\x91\xfb\x2e\xcc\xe0\xb8\xa0\x8a\xe6\x44\x2f\x84\xa1\x5f\x23\x5a\xe8\x3c\xc5\xf5\xb1\xe9\x9e\x98\x2a\x78\x4b\x7f\x07\xff\x39\x0e\x2f\xef\x16\x58\xa5\x76\xaa\x1b\xfc\x80\x40\xcb\x77\x08\x15\x64\xca\x03\x1e\x7f\x06\x23\xe9\x65\xb3\x5e\xc1\x12\xfc\x70\xdd\x7b\x11\xf8\xdc\x2a\x80\xde\xfa\x48\xa4\x88\x63\xf2\x9c\x39\xf6\x46\xc8\x3b\x80\x25\xfe\x3d\xac\xf0\xc8\x6e\x58\x65\x57\xe3\xa2\x12\x15\xad\x78\x0e\x06\x6e\x3d\xf2\xd4\x12\xa2\x03\x68\x32\x47\xd3\x49\xdd\x66\x89\xdf\x75\xa6\xc0\x97\x60\x79\x79\x77\xfe\x99\x48\x45\x72\x96\x4b\xb5\x78\x35\x26\x70\x84\x50\xb2\xaf\x32\xb3\xa3\x31\x26\x25\x46\xce\x30\x24\x69\xc2\xa6\xf6\xa0\x60\xac\x7d\x22\xf3\x82\x2a\x34\x79\xdb\xaf\x61\xff\x63\x42\x2e\xcb\x64\xee\xe6\x85\x91\x08\x93\x92\x67\x78\xb8\x1b\xf3\x13\xae\xa8\x91\xcf\x58\xec\xb5\x2e\x57\x95\x07\x02\x29\xa4\x2b\xd6\x22\x35\x8b\xaa\xc9\x18\x49\x84\x3d\xd5\x19\x29\x98\x3a\xb6\x73\xf6\x1f\x44\x9b\x91\x1d\xd0\xf5\x91\xbd\xa1\xd7\x47\x24\x54\x33\xf8\x45\xb8\x88\xeb\x6b\x67\x18\xbd\x3e\x82\x1a\x12\x51\x82\x37\xcd\x4c\x0f\x12\x97\xf8\x8d\xef\xb2\x0f\xf9\x76\x6d\xc9\xf9\xa3\x1f\x45\xb0\xa8\xc6\x24\x0f\x26\x02\xe3\xdc\x0b\x90\x52\x74\x15\xa3\xe1\x82\x60\x40\xe7\x4a\xf8\xfd\xba\x11\xe0\xc8\x4f\xf1\x10\x45\xf6\xc7\x5e\x16\xeb\xe5\xd7\xfc\x48\xdd\x31\x46\x7d\xcd\x47\xd7\x3b\xb3\x61\x73\x02\xee\x72\xd1\x44\x49\xad\x5d\xea\xf7\x8c\xdd\x52\x61\xfa\xd9\x2c\xa3\x70\x2d\xaf\xf8\x2e\x7d\xc3\x0b\x06\xb6\xc3\x9d\xb3\xa6\xda\x62\xfc\xc3\x7e\xff\xde\xca\xd5\x38\x70\xf2\xff\x55\x52\x61\xb8\x59\xac\x15\xa1\x97\x47\xb0\x97\x8d\x80\xc5\x57\xf4\xce\x75\xf7\xd2\x8a\x00\x8c\x02\x7c\x79\xfd\xbe\xbc\x1a\x11\xcd\x73\x9e\x51\xe5\xe9\x50\xb8\xf6\xee\xa3\x51\xad\x98\x2d\x9c\xde\x70\x8f\x46\x6d\x37\xff\x21\x18\x50\x97\x34\xb7\xf6\xbd\x46\xe6\x30\xcf\x0d\xc2\x86\xed\x89\x0b\x51\x62\x29\x70\xd6\xa0\x6f\xf7\xe1\x4d\x87\xca\x50\x9e\x03\x9f\x70\xfb\xb0\x31\x99\x5e\xf9\x9e\x9f\xc1\xd2\x71\x3b\x28\x42\x0d\x6e\x7d\x10\x74\x20\x7a\x6d\xc2\x42\xf0\x2e\x9f\x92\x2f\xcb\x44\xef\x0b\xc4\xc9\x6a\x16\x64\xf4\x2a\x01\x89\x5d\x7d\x4f\x6a\x62\xa4\xc7\xbe\x5c\x53\x8f\xc9\x0d\x5a\x86\xb0\x9f\xfd\x7e\x20\x7e\x10\x4e\x41\x55\x10\x43\x33\x63\x8f\xdb\x8c\xaa\x34\x63\x5a\x57\x97\xb0\x7b\xbf\x0f\x49\x10\xdb\x96\xbd\xb5\x9c\xb1\xfd\x73\xbf\x21\xf6\xab\x7b\x43\x87\xd8\xaf\x21\xf6\xcb\xdd\x17\x0f\x06\xeb\x69\xa5\x68\x6b\xbe\xd6\x38\xe1\xa8\x1b\xe4\xba\xd1\x5a\x26\x1c\x6a\xb9\xb9\x14\x05\x8b\x48\xe2\xf2\xfe\x96\x97\x96\xb7\xb2\xaf\x34\x2f\x32\x46\x32\x26\x66\x58\xa5\xfa\xd7\x92\x95\x40\xbc\x92\x4c\x96\x56\xa0\xd2\x9a\xce\x2c\xf9\xd4\x4c\xdd\xf2\x84\x41\xb2\xf4\xff\x75\x7e\x89\x8e\xb2\x4c\xd2\x74\x42\x33\x2a\x12\xa6\x88\x2a\x85\x00\xc1\xad\x34\x9a\xa7\xb0\xe7\xae\x2c\xe7\xab\x71\x2d\x77\xda\x7d\x35\x79\x9c\xeb\xa7\xee\xa3\x57\x35\x6c\x23\xd5\x1e\x96\x77\x2f\x8d\x19\x3b\xb9\x5c\x61\x8e\xbc\x0f\x4e\x98\x4e\x58\x16\xfa\x5d\xc7\xe0\xeb\x43\x40\x0c\x0e\x9a\x78\x02\xad\xa4\x81\xed\x21\x6c\x42\x33\xc5\xc1\x6a\xe4\xb2\xfb\xcf\xf8\x2d\x13\x6e\x41\xd6\x42\xda\x0e\x5a\xad\xf5\x5a\x40\x10\x67\x66\x99\x9c\x54\xf8\xcb\x97\x20\x85\xfc\xea\x3e\xf5\x6a\x4c\x7e\x2e\x4d\x49\xb3\x6c\x41\xd8\x57\x7b\x50\xf9\x2d\xc3\x0b\x83\x88\x33\xf8\xc2\xda\xc5\x78\xc4\x55\xe8\xd4\xea\xb7\x9b\x73\xbc\xb8\x5b\x28\xde\xd1\xc5\xdc\x23\xed\xec\x52\xb0\xdb\x9a\x77\xeb\xd5\xf5\xb3\xd2\x9b\x8e\xf6\x51\x28\x9f\x96\x0e\xe0\xe5\x7c\x6f\x49\x46\xc8\xa0\xc7\x1d\xa5\xce\x68\xb6\x4e\xdb\x79\xcc\x29\x76\xeb\x37\xed\x37\x63\x1d\x75\xbf\x17\xa7\x09\xac\x19\x88\x32\x60\x92\x22\x84\x2d\x17\x41\x2f\x81\x1a\x21\x03\x07\x6a\x70\xa0\xcd\x29\xcf\xaa\xf3\xb8\x4b\x8a\xb4\x79\x38\xff\x2a\x90\xa2\x3f\xa9\xb5\x68\x7f\x44\xae\xad\x04\x11\x8f\x5c\x14\x84\x7d\x62\x15\xa4\x04\x08\x3a\x02\x3f\x75\xec\xcb\x44\x57\xa6\xcf\x79\x58\xa9\xa6\x56\xe6\xcb\x23\xc4\xd4\x92\xc7\x98\x4c\xa8\xdd\x40\x97\x14\xcb\x5b\xd5\x82\x49\x71\xc0\xd2\x0d\x58\xba\x01\x4b\xd7\x42\x88\x1f\x09\x4b\xe7\xbf\xec\xa9\x89\x7e\xae\xf9\x07\xd6\x93\xdf\x4e\xc4\x9d\x76\xe9\xbe\x4d\x55\x3f\x3a\xa9\x28\x6e\x84\xc3\x2b\x03\x10\xef\x59\xa6\x2a\xe8\x58\xc6\x6e\x90\x9e\x0e\x19\xf1\x63\x31\xeb\x9b\xc9\x5e\xf0\xc3\x16\x29\xec\xfb\xae\xfe\x3b\x29\x30\x9b\xfb\xe6\xc2\x44\x78\xb5\x01\xc7\xb3\xbb\xe5\x64\xd1\x55\x62\x08\x35\x84\x92\x84\x29\x48\xa3\x06\xb4\xba\x07\x8f\xcf\xa8\x36\x57\x8a\x0a\x0d\x1f\x7d\x8c\x20\x90\xfa\xd7\x43\x34\x69\x2d\x3c\x24\x09\xab\x62\x42\x6b\xe6\xd2\xcb\x4b\xc1\x3c\x74\xce\x48\x42\x05\x24\x0b\x5e\x45\xdd\xb5\xee\x8e\xbf\x72\xad\x90\xb5\xce\xcb\x9c\x8a\x63\xc5\x68\x0a\xee\x4a\xf6\xb5\xc8\xa8\xcb\x79\xe9\x8c\xdd\x96\xcd\xa6\xcc\x50\x9e\xe9\xe8\xc6\x54\xe3\xdc\x53\xbe\x59\x15\xf2\xcd\xa2\xb0\x08\x7f\x79\x12\x18\xd6\xeb\x85\x76\x2b\x19\x86\xb3\x85\x76\xd2\x4e\xae\xd6\x92\x93\x3a\xf2\xb7\xda\xbe\x97\x57\xca\xca\x66\x3f\x61\x62\xe6\xcf\x02\x3c\xdf\xaf\xb6\x00\xb9\x60\x9b\xb5\x80\x96\x45\xc1\x1a\x97\xc8\x13\xb9\x30\x9e\xdd\x1a\xa0\xe1\xfd\xe5\x75\x7b\x00\xa5\xa5\x23\x71\xca\x1a\xc5\x85\x92\x21\xab\xca\xf3\xd0\x18\xfa\x64\x55\x81\x36\xcd\xd4\x9e\x8f\x92\x62\xa5\x43\x09\x8f\xba\x1e\xf2\xac\x7c\xb3\xaa\x53\xaf\x3c\x2b\x2b\x15\xa7\x21\xef\xca\xde\x05\xdd\x8e\xd8\x92\x35\x6f\x35\x38\xb3\x0f\x01\x99\x96\x02\x60\xf6\x34\xe3\x66\xe1\xc5\x87\x15\xdd\xec\x34\x67\x4b\xd4\x32\x54\x39\x59\x9b\xc6\x65\x83\x84\x26\x65\x01\x80\x97\x2a\xa1\x0b\x00\x5c\x20\x82\x21\xdf\x67\x36\x17\x34\xf9\xf5\xb2\x7a\x37\x32\xf1\xd7\x14\x6b\x0c\xc2\x71\x73\x94\xa4\xd4\x58\xf1\x81\x66\x49\x69\x19\x69\x6d\xff\xea\x46\xcb\x97\x60\x79\xa4\x5f\x79\x5e\xe6\x8d\x9f\x22\x08\x92\x1f\x41\x9c\xa2\xc2\x43\xe3\xdb\xfb\xc5\x14\xe9\xf8\xf9\x94\xe4\x65\x66\x78\x91\x2d\x3c\xd1\x06\x03\x2c\x99\x30\x73\xc7\x5c\xe8\x77\xcd\xb9\x86\xb9\xe2\x9b\x8e\x05\x17\x48\xbe\x9c\x58\xc0\xc1\xd6\x3e\xa8\x99\x1c\x45\xd8\x44\xf8\xae\x36\x24\x65\x89\x95\xbd\x43\x74\x89\xe5\xa0\x61\x90\x5c\xe0\x8f\x29\xca\x16\xb7\x3c\x61\x40\x13\xe8\x98\x90\x4b\x86\x2b\xc7\x45\xca\x6f\x79\x5a\x56\x7e\xab\x08\x28\x85\x4b\x9f\x7b\xaa\x5f\x57\xcc\xe7\xf2\x0e\xe1\x9d\x20\xe9\x56\x5e\x1f\x18\x97\x03\x4d\xed\x91\x75\x3b\xd7\x5c\x54\xd0\x8e\x6c\xc3\xad\x87\x9c\x43\x43\xce\xa1\x8d\xd1\x69\x6b\xed\x5a\xb5\xa1\xa0\x21\x44\xd7\x83\x65\x22\x91\xce\x01\x70\xf0\x82\x46\x4e\xaf\x80\xf7\xad\x68\x5f\x70\xa1\x04\xa8\x4b\x22\xb3\x8c\x25\x06\xee\xb7\x26\x77\x2c\xcb\x08\x9e\x36\x8c\xb1\xcb\x16\x2e\xc5\xc4\xb2\x3f\x67\x9b\x6a\xd1\x0f\x97\x48\xa7\x97\x6d\x71\x73\xb6\x8f\x36\x81\x76\x95\xbc\x57\xe6\x9d\x7e\xc8\x6f\x54\xed\x3b\x53\xc8\x84\x86\x41\x70\xc4\xba\x31\xd1\x0f\x7e\x23\x1c\x6d\xa9\xe5\xee\xa8\xb0\x5b\x56\x8c\xc7\x73\x35\x5a\x51\x44\xd4\x55\x60\x46\xec\x7b\xd4\x3f\x55\x70\x47\x1f\x5e\xbf\xaa\x0c\x94\xf7\x21\xdd\x6e\xef\x7e\xee\x25\x67\xd4\x1b\xd7\xcc\x7c\x8a\xd1\xb4\x32\x70\xc6\xde\xca\x2a\xc7\xcb\xba\xbc\x29\x7b\xe0\x6a\x35\xcb\xcd\x7d\x16\x67\xb3\x84\x46\x31\x97\xb9\x57\x8e\x23\x20\x48\xb0\xb8\xda\x0a\x41\x4b\x69\x72\x0e\x23\x07\x52\x93\x9d\xdf\x2b\x35\x52\x35\xe5\x48\x36\xdc\xff\xc4\x1f\x35\x81\x52\xf8\x70\xbb\xd9\x7c\xe3\xac\x4a\xa3\xc3\xcb\xaa\xb4\xfc\x82\x9f\xeb\xf3\xc9\xb7\x34\x6a\xe5\x5f\xbb\x64\xe5\x91\xb0\xbe\x9a\x6f\x57\x8d\x02\x4c\xa4\x01\x53\x0e\x90\x92\x10\x6c\xe6\x91\x58\x10\xce\xf3\xc5\x8e\xf0\x0b\x30\x41\xa8\xaf\x0c\xcc\x0f\xa2\xf3\x21\xae\x9e\xb3\x2c\xad\x03\x85\xad\xb8\x2a\x45\xc2\x5e\x6d\x12\xd3\xe5\x63\xee\x76\x23\x65\xae\x0d\x41\x5f\x0b\x56\x0b\xe1\x61\x41\x9a\x04\x68\x3c\x0a\x80\x4b\x31\x37\x2f\x7d\x25\x2e\x94\x02\xba\x42\xfb\x5e\xb5\x05\x05\x6e\x10\xee\xe7\x3d\x2f\xfd\xc3\xfd\x0e\x35\xda\x2f\x24\x71\xa0\xa2\xa1\x62\xd9\x81\xb8\x1c\xba\x5e\xad\x72\x94\xeb\xaf\xe7\xa7\x61\x63\xbd\xc4\xe1\xdf\x9a\x66\x74\xb6\x82\x38\xf9\x0a\x69\x3b\x39\x59\xad\xd1\x02\xeb\x0e\x54\xa8\xcf\x16\x1f\xa3\x3a\xa4\xd5\x17\xcc\xee\x0f\x6d\xb5\x2a\x2d\xe8\xab\xba\x86\x59\x0c\x17\x39\x36\x2b\x24\x32\x87\x7b\xaa\x64\x0e\x59\x06\xa4\x80\x1c\x25\xab\x63\x02\x1e\x38\x00\x61\x15\x47\x01\x6a\xb8\x8b\x2d\x0b\x50\x9d\x7e\x1b\x16\x5c\x01\xd5\x76\xb9\x7d\x6a\xbb\xa7\x37\x6b\xc3\x37\x46\x64\xce\x8d\x3e\xb6\xd7\x42\x33\xcb\x04\x80\xca\x0a\x72\x26\x66\x0a\xc2\xe1\xe0\x95\x55\x6b\x60\x6f\xcc\x4e\x56\xe0\x5c\xa6\xba\xf7\xfc\x81\xe3\xaf\x9f\x7d\xbf\xf0\xe3\xda\x3a\x80\xab\xda\x95\x9b\x3b\x2e\x94\x4c\x98\xd6\x2c\x8d\x56\x66\x97\x69\x33\xb0\x93\x15\xab\xaa\x76\xc9\x68\x36\xe6\x2f\x8f\xc2\x55\xee\x11\x2e\x7e\xa8\xfc\xe3\x7e\x00\x02\x1f\x9e\x51\x37\xb1\x86\xcc\x26\x67\x26\x12\x68\x40\xe6\x99\x92\xeb\xe5\xf4\x00\xd7\x47\x23\x72\x1d\x82\x1a\xf0\x2f\x24\x36\xf8\xef\x73\x1c\xb1\x54\xe4\xfa\x28\x7e\x07\xb6\x23\xa7\x45\x01\x93\x83\x2b\x56\x97\xa6\xdc\x36\x79\x62\xff\x49\x1a\xf6\xb6\x7d\x00\xc4\x4f\xa7\x5a\x4d\x2c\x7a\x8d\x3d\x38\xee\x78\xec\xcd\x96\x4b\xec\xb3\xb2\x5d\xee\x01\x34\xb1\x07\x51\xb7\xcb\x48\x55\x8b\x2c\xa9\xdb\xa4\xac\x12\x75\x5c\x37\x4a\x34\xe4\xdd\x83\x13\x57\x7b\xe4\xe4\x3b\x68\x71\xf5\xb9\x93\x9b\x7d\x4a\x96\xdd\x7b\x3f\x48\x96\x07\x25\x59\x76\x6f\xd8\xf3\x96\x2c\xbb\xe7\x3f\x48\x96\xdb\x4b\x96\xdd\xab\x3b\x48\x96\x4f\x43\xb2\xf4\xe7\x6f\x4f\x72\x65\x95\x5a\x45\x0f\xb2\x65\x3f\xd9\xb2\xc5\x40\xb0\x5a\xc2\x5c\x6e\xdc\x27\xfb\x43\x8d\xc0\xef\x88\xb2\x77\xe3\x76\x1f\x31\xae\x99\x6e\x97\xe3\xae\x23\x95\xd1\x83\xc5\x06\xef\x2c\x0b\xc5\xaa\x74\xb8\x0f\x12\xfd\xab\xa3\xb8\x5f\x13\xb2\xda\x1e\x33\x91\xc8\x14\xfd\xdf\xb9\x53\x83\x3c\xba\x32\x3a\x9a\x8d\x8c\xba\x1e\x88\x13\x87\x03\x93\x7f\x5a\x62\x00\x39\x9e\x38\xc8\x99\x05\xb5\xbc\x17\x10\x2b\x82\xd0\x14\x7d\x1e\x96\xfa\x52\x45\x73\x66\x58\x48\x23\x15\x50\x17\x00\xb2\xad\xf0\x50\x21\x14\x39\x34\x48\x24\xa8\xc9\xf0\xa5\x52\xc0\xb7\xfe\xab\xd4\x26\xea\x05\xf6\x2f\x86\x99\xd9\x8f\xcc\x28\xba\x29\xb0\x9b\xb5\xc9\x22\x1e\x15\xd7\xe2\xee\x44\xe5\x2a\x05\x8d\x35\x6d\x4b\x67\xb0\x66\x0a\x4f\x30\xdf\xc5\x16\x74\xbf\x99\x94\x6f\x45\x6c\x79\xbc\x24\x7b\x63\x13\x5d\x86\x88\xe5\xc6\xdd\x89\x2e\x06\x5e\xb1\x59\x02\xbc\x9d\x30\x8b\x27\x9c\x19\x63\x05\x49\x18\xd8\xdf\x43\xb3\x3f\x2f\x54\x2f\xcb\x86\x7b\x67\x8c\xe3\x81\x33\xee\x91\x95\xec\x2d\x4d\xc9\x92\x47\x6e\x35\x27\x69\x36\xdd\x50\xdd\xd8\x93\x45\x65\xd7\x06\x95\xee\xa0\x8f\x7d\x51\xb5\x81\xa8\x3d\x43\x99\xfe\xa0\xb3\xe1\xed\x47\xa6\xe9\x49\xfa\xd6\xc9\xcc\xb5\x55\xdb\x13\xb9\xeb\x12\x9c\x9b\x4d\xb7\x11\x9b\xf7\x43\xf3\x9e\x5d\x3e\xb9\x27\x67\x7f\x19\x48\xf5\x7a\xf9\xb3\x29\x2a\x3c\x29\xe9\xf3\x5e\xf4\xab\xed\xe6\xed\x92\x80\x6d\x58\xca\x68\xa8\x60\xf4\x6d\x55\x30\x1a\xea\x03\x0d\xf5\x81\x1e\x5d\x74\x3c\xb8\x7a\x10\x5b\x16\x50\xd8\x23\xdd\xee\x12\x3e\x0f\xa8\xf0\xcf\x37\x5a\xe2\x67\x28\xa0\x33\x14\xd0\x19\x0a\xe8\x0c\x05\x74\x56\x9f\xb1\xdd\xb1\x87\x1f\x86\x52\xa5\x83\xa0\x3f\x94\x2a\xdd\x8f\x2a\xb2\x03\xdf\xd1\x0f\x0e\xf5\x7f\xd5\xb2\x14\xed\xce\xa2\x2a\xc0\x75\x49\x66\x6e\x33\xa0\xdc\x9f\x40\x2d\x3b\x92\xf6\x51\xd4\x6b\x35\xa1\x1a\x4a\x5a\x3e\x71\x79\xb7\x27\x3d\x79\xf7\xd8\x25\x2d\x77\x78\x9d\x81\x8d\xf7\x89\x6d\xa9\xf2\xba\x56\x39\xcc\xea\x87\xb4\xe3\x52\x6f\x46\x16\x57\xd9\xa1\x1f\x4f\xee\x79\x00\xba\x32\x14\x0b\xdc\xe8\x36\x0c\xc5\x02\xd7\x4e\xeb\x99\x17\x0b\xfc\xe1\x5b\x2f\x16\xd8\x17\xa6\xb1\x43\x6e\x71\x16\x4e\x4c\x8f\x42\x47\x24\x9c\xaf\x9a\x04\xe8\x7e\x9c\x2c\x90\xae\x5b\x29\x20\x38\x06\xbf\x39\x11\xd6\xbd\xb7\x3c\xdb\x3d\xde\x93\x27\x5a\x18\xee\xa9\x0b\x3d\x4f\xf8\x32\x6e\x7d\x98\xfd\xd6\xed\xf2\x34\xbb\x84\x9f\x5c\xcc\xce\x65\xc6\x93\xc5\xba\x2c\x89\x8d\xa6\x2e\x1f\x39\x2a\x3c\x05\x3e\x72\x89\x27\x4b\x6d\xc8\x5c\x66\x29\x31\xca\xed\x2a\x8d\x14\xa9\x82\xfa\x5c\xf6\xb7\x34\xeb\x71\x64\x0b\xa6\xb8\x4c\x2f\x01\xab\xd2\x95\xa8\xed\x3c\x6e\xdb\xa0\x38\x77\x5c\xa4\x90\x0b\x0c\x13\x8e\x45\x49\x82\xe7\x61\x02\xce\x6a\x12\x06\x3f\x26\xf5\x1e\x61\x6a\x13\x46\x66\x8a\x51\x40\x17\xcc\xa9\x20\xff\x66\x4a\xa2\x4a\xe8\xf2\x24\x0b\xcb\x83\xd8\xaf\x25\xcd\x20\x2b\xeb\x1f\x5e\xbf\x26\x2f\x7f\x7c\x4d\x72\x2e\x5e\xed\xde\xb5\xd7\x1d\xbe\x77\xe5\xa2\xdd\x3c\x52\x01\x97\x65\x51\x53\xa2\x70\xfe\x5b\xd8\x44\x6e\xdb\xcc\xe3\x8d\x01\xa0\xfd\xba\x76\xf1\x69\xee\xcb\xc4\xb9\x94\xa3\xb8\x15\x5c\x5b\x25\x34\xe7\x26\x4a\x86\xe7\x86\x46\xce\xcc\xea\xe5\xdf\xc9\xaa\xf6\xbc\x99\xcd\xb2\x19\xb7\xcd\xea\xe7\xf5\x03\xbb\x9f\xeb\x7a\x51\x66\x6c\x6d\x4e\xd3\x7a\xcb\x2a\x23\xaf\xae\x6d\xbb\xab\x3d\x85\x80\x18\x29\x18\x49\xb9\x62\x80\x15\x03\x20\xac\x66\x04\x5f\xa7\x8a\x11\x5a\x14\x99\xbd\xbf\x74\x6a\x20\x17\x31\x26\x2d\xb4\xbd\xbc\x6f\xa4\x47\x04\xd1\xcb\x1b\x11\x3c\x51\xff\xeb\xf9\x29\xf4\xb9\x80\x1c\x58\x98\x03\x39\x1e\xca\x2d\xcb\x64\xc2\xcd\xc2\x6e\xbb\x3b\xa1\x20\xd6\xc5\x07\x94\x33\x1d\xf5\x51\x28\x66\x35\x05\x32\xcd\x5c\xc6\x91\xfa\x9b\x08\x4c\xa2\x93\xca\x63\x86\x14\x60\x44\xb4\xc4\xfc\x01\xa6\x3d\xfd\xb2\x4b\x2b\x80\x4e\x28\x6d\xa8\x30\xd9\x62\x44\x9c\x67\x64\x84\xfd\xd2\x29\xd3\x81\x6d\xf9\xc2\x09\x6d\x5f\xc3\x14\x83\x52\x33\xd1\x87\xd4\xb9\x49\x76\xdc\x27\xdf\xac\x5e\x10\xa5\x90\xc6\x72\xa5\xc8\xf6\x03\xed\x20\xaf\xab\xbd\x5b\x2e\xf5\x18\x50\x81\xb4\x54\xd1\xe2\x8e\xc9\x69\x9c\x86\xd9\xd1\x42\x7f\xd9\x02\xe5\x1e\x61\x86\xbc\x3b\xae\x99\xdf\xd1\xda\x19\xf3\x56\xf6\x94\xeb\x84\xaa\x14\x3d\x88\x5c\xdc\xd2\x8c\xa7\xfb\xca\x80\xda\xc2\xc2\xa2\x3e\x37\xce\x82\x8a\xfc\x7a\x89\x17\xb6\x6d\x42\xdc\xb4\x8d\xba\xe2\xa2\xd7\xf9\x8a\x5b\xfe\x31\x39\x9b\xfa\x23\x36\x72\x41\x00\x90\xc5\xdb\x1d\xa8\x9f\xe9\x57\xec\x17\xc1\x78\xbe\xf7\xed\x4a\x21\x55\x27\xf2\x9f\x70\x20\xfb\x31\xd2\xcb\x95\x2f\x06\x43\x52\xb8\x38\xda\xfd\x50\x71\xd4\x02\xd3\xe4\x5a\xe5\x9f\x89\xd4\x65\xe5\x8f\xf3\x50\x0b\xab\x80\x29\x2b\xcc\xce\x79\x56\xd1\x80\xb2\xb0\x9c\xd3\xff\x85\x49\xce\xd7\x8c\xa4\x95\x1d\xc4\xac\xb7\x83\x33\xff\xf8\x7b\xcb\x99\xed\x91\x9f\xcb\x52\xbd\xaa\x6f\x4b\xa9\xd9\xf2\xd6\xe8\xb7\xe4\x98\xfc\xe4\xc6\xc8\x48\x59\xbc\x25\xaf\xc9\x4b\x3e\x66\x63\x22\x64\xe3\xfe\x73\x4d\x52\x29\xd8\xab\x71\xed\x15\x3b\xa9\xb7\xe4\xc7\xd7\xfe\xb5\x75\x74\xc3\xb6\xf2\x8b\x9b\x49\x31\xdb\x91\xf4\xb0\xc4\xe7\xee\xc3\x91\x86\xaa\xb4\x1d\x34\x7d\xa8\x31\x35\x54\xa5\x1d\x4a\x2b\x91\x3e\xfc\x7d\xa8\x4a\xbb\xb1\xf0\x33\x54\xa5\xdd\xe7\x32\x0e\x55\x69\xfb\x54\xa5\xfd\xe1\x5e\xc5\xba\x56\xae\xfe\x9f\x9d\x6e\xba\xb9\x2c\xe1\xdf\xec\xd4\x7a\xdd\xd1\xf6\x01\xb9\x82\x4c\xa4\x99\x93\xcf\x05\xb0\xbd\xf7\xf2\x4e\x54\xfa\xb0\x26\x2f\xa1\x73\xf7\x23\xfc\x1b\x5a\x40\xf2\x21\x0d\x05\x8c\x18\x94\xb7\xc9\x16\x7d\xdc\x09\xa1\x83\xdd\x1c\xe0\x86\x61\x60\xed\x91\x0d\x43\xe7\xba\x61\xff\x81\xdb\xef\x1f\xbd\x07\xf1\x7b\xbd\xa6\xc2\x31\x15\x53\x96\xc5\xfe\x9e\xd4\x41\x29\xe2\x32\x44\x88\x36\x44\xd3\x75\x24\xd7\xb6\x8b\xbe\x20\x19\xe3\xe7\xe6\x7c\x36\x67\x4b\xca\x44\xa0\x52\x50\x3f\xe0\xc7\xd7\xaf\x35\x92\x33\x2c\xc5\xb5\xa6\xe4\xcf\xe7\xe2\x71\x96\xfb\x73\xd1\xb1\xd8\x9f\x8b\x3e\x4b\xed\x17\xc4\x9e\xdc\xb7\xd7\x82\x90\xef\x43\xcd\x2e\xab\x7f\x40\x44\x13\x68\x39\xbf\x45\xa4\x44\xc1\x14\xf9\x7d\xd0\x21\xf0\x85\x54\x96\x80\xfa\x58\x2e\x86\xd0\x6c\xfd\xa9\x45\xa3\x41\x3d\xf4\x41\x75\x89\xa1\x3a\xf5\x50\x9d\x7a\xa8\x4e\x3d\x54\xa7\xde\x75\x75\xea\x95\x04\x67\xbb\xea\xd4\xf6\xad\xa1\x42\xf5\x73\xb2\x1e\x3c\xc1\x0a\xd5\xab\x0d\x72\xf7\xb1\x8a\x0f\x66\x94\xe7\x62\x46\x19\x2a\x54\xd7\x4e\xf4\x3d\x2a\x54\xef\x49\xe9\x3d\xf4\x0a\xd5\x93\x65\xa5\xbc\xd7\x99\xdc\x4a\xf1\x5f\x77\x48\x27\x8f\xae\xe3\xaf\xd4\xd7\x9a\x7e\xd1\x69\xe4\x2f\xaa\x3a\x46\x35\x99\x2a\xb6\xa4\x53\xc5\x24\x60\x28\x08\x3e\x14\x04\xff\xa6\x0b\x82\xaf\xbc\x65\xae\xb1\x5f\x74\xcd\x8c\xdd\xd5\x3f\xbc\xfe\x4d\x08\x86\x7d\x77\xfe\x99\x94\x55\xc0\xf4\x1e\x85\xae\xa1\xb6\xf8\x50\x5b\x3c\x34\xd2\xbb\xae\x2d\xbe\x3e\x98\xa5\xd3\xf6\x38\xd4\x16\xdf\x9f\xa9\x60\xa8\x2d\xfe\x54\x6a\x8b\xf7\x30\x2f\xdf\x87\x74\x3f\xbf\xda\xe2\x3f\x0c\xb5\xc5\x87\xda\xe2\x9b\x4d\x7c\xa8\x2d\x3e\xd4\x16\x3f\xf4\xda\xe2\x2d\x01\x3f\x5d\x45\x17\xab\xa6\x35\xd3\x7a\x08\xf2\xc1\x10\x7b\x90\x71\x6a\x59\x2d\x7d\xd0\xe3\x5e\xb3\xec\xd5\x62\xa5\x36\x77\x46\x7d\x13\x59\x44\x9f\x63\xb6\xd0\x9d\x07\x00\x0f\x25\xf7\xb7\x4a\xa5\xb4\x36\xe4\xf1\xa0\x6b\x98\x0e\x25\xf7\x1f\xb7\xe4\xfe\x8a\x98\xfb\x75\x07\x6a\x28\x8c\xfa\xb8\x85\x51\x7f\xf8\xe6\x4b\xee\xff\x30\x94\xdc\xdf\x53\x61\xd4\x1f\x86\x92\xfb\xcf\xb5\x30\xea\x50\x72\xff\x90\xca\xa2\xfe\xf0\x9c\x4b\xee\x77\x25\xd4\x7b\xba\xe2\xea\x73\x27\x37\xfb\x94\x2c\x87\x92\xfb\x4f\x4c\xb2\xfc\x06\x4b\xee\xff\x30\x94\xdc\x7f\x28\xc9\x72\x28\xb9\xff\x5c\x24\xcb\xa1\xe4\xfe\x61\xca\x96\x57\xcd\x34\x7b\xed\xb2\x25\x36\xab\x79\x15\x62\xd2\x30\x0a\x50\x26\xf7\xa7\x54\xe1\x49\x04\x6c\x72\xd2\x67\xdd\x36\xdd\x23\xb4\x60\xd3\x52\x14\xcb\x2f\x3c\x89\x62\x3a\xe4\x1d\xd2\x11\x48\x94\x9e\x2d\x08\xe4\xa3\x81\x26\x17\x8d\x31\x45\xc0\xb5\x5d\xbb\x46\x0f\xad\x0a\xf5\x5e\x0b\x36\x6e\x41\xea\x2a\xf4\x7f\x40\x8a\x44\x63\xf0\xc4\x23\x3a\x7a\x23\xf2\x8f\x70\x27\x6a\x55\x14\x36\xf6\x81\xb5\x66\x30\xdb\xf7\x9e\xdc\x3e\x5c\x71\xf9\xfd\x50\xb8\x38\xed\x63\x17\x99\x8b\xda\x42\x6a\xbd\x55\xb9\x1f\xfb\x3b\x4c\x37\xa6\x5d\x4f\xbc\x8c\xce\x73\x27\x47\x0f\x56\xc1\xf3\xf1\x2f\xfb\x96\x65\xf0\x97\x6e\xfb\x3d\x6e\x70\x8b\x13\x63\xf5\x15\x5e\x6e\xbc\x61\x9d\x6e\xba\x2b\xed\xb3\x93\x2a\x84\x52\xea\xbf\xec\x4e\x2d\x5f\x07\xbd\x6d\x3d\x61\x4f\x38\x35\x6d\xcc\xb7\x9f\x71\x9e\xe8\xe6\x31\x59\x9e\xf6\xf2\x76\xee\x92\x81\xb6\x58\x7a\x7a\x5e\xbf\xad\xeb\x46\x3f\xdc\x1d\x7c\x26\x09\xa6\x07\x52\xf2\xc8\x59\xae\xd7\xec\xc5\x2e\xef\xe2\x92\x37\x7b\xf5\x4d\x6c\x36\xdd\x90\x0d\xee\xc9\x1a\xb9\x6b\x63\x64\xe7\x05\x7f\xc2\x87\xf2\x1b\xe1\x6f\x0f\x52\x07\x61\xc9\x58\xdf\xeb\xe2\x6c\xcd\xc0\xf6\x73\x7b\xbe\x19\x76\xf6\x84\x2f\xed\xbd\x39\xc9\x2e\x4f\xfd\x50\x2d\x7f\x28\xa2\xf9\x04\xaa\xe5\x3f\x4f\xbe\xb6\xa2\x44\xe5\x1e\xef\xf7\x50\x55\xfd\xd0\xab\x4c\x3e\x0f\xf6\xfc\x34\x6b\x38\x6e\x7b\xf1\x26\xd4\x24\xf3\xf1\xed\x9b\xf1\xdf\xe4\x64\xcd\xe5\xfa\x9b\x9c\xc4\x6e\x21\xb3\x94\x1c\x3e\x06\xdd\xfd\x97\x9c\x0c\xd9\xd4\x0e\x3a\x9b\xda\x90\x44\xec\xb9\x24\x11\xeb\x99\x8b\xfd\xb2\x9e\x7b\xfd\x85\x7e\xd2\xd9\xd7\x63\xa2\xd5\x99\x5e\xfd\xb2\x96\x52\xdd\x51\x6a\x1f\xd1\x1d\x67\xa6\xa2\x40\xb8\x1e\x38\x9f\xfa\x4e\xd3\xa9\xd7\xd6\xa5\x9b\x6d\xbe\x6b\xc9\x71\xf1\xb8\x4b\xb0\xc4\x04\xf7\x97\x8e\x0e\xd6\xaa\x3d\x11\x9d\x65\x85\xb5\x1f\xe2\x84\x73\x6f\x36\xc8\x35\x17\xef\x47\x9f\xcc\xc9\x71\xb3\x08\xe4\x1e\xe7\x22\x61\xd5\x36\xf5\x4b\x81\x7c\xae\xe4\xe4\xc1\x73\x00\x7c\x5c\x91\xe3\xf8\x8e\x6a\x92\xcc\x59\x72\xb3\x32\x0e\xff\x71\xb3\x36\xaf\x1a\xb7\x4b\x32\xbc\x26\x2d\xf3\xaa\x9c\x71\xbd\xf2\x32\xff\xb5\xcc\xa9\x20\x21\x15\x73\x48\xd3\x8c\xca\xcb\x72\x1a\xe6\xfb\x27\x3e\xee\x95\x88\xf9\xe5\x44\x71\x36\x7d\x75\x00\x29\x98\x2f\xdb\x93\x2e\x8f\x3c\xd6\xb2\x2d\xf7\xf2\x36\x0a\x7b\xcf\xfa\x8d\x72\x6a\x2f\x60\x3c\x8e\x77\x32\x2f\x32\x66\x6f\xa7\x22\x3f\x51\x9e\xf5\x2f\x10\xd6\x53\xee\xdf\x71\x06\xe6\x98\x32\x75\xa4\x58\x76\x2d\x50\x16\x74\x99\xa5\x1c\x27\xfd\x2f\x39\x19\xf2\x26\x1f\xb6\xa4\xbf\x75\xde\xe4\xbf\xd5\xf6\x76\x65\x5f\x9b\x8a\x25\x43\xee\xe3\x41\x6d\xe9\x9b\xfb\xf8\xb2\x3d\xd7\xf1\x23\x28\x2c\x3d\x89\xf4\x83\xe7\x54\x5e\x2f\xc4\xae\xcf\x9c\xbc\xad\x20\xdb\x91\x95\xc4\xb5\x88\xc4\x57\xf0\xac\xcc\xc1\x2c\x44\xd8\x57\x96\x94\x28\x0a\xf2\x2c\x23\x99\x94\x37\x24\xe3\x37\x7d\xcc\x8b\x98\x53\xf2\x3d\xa3\x69\xc6\x05\xeb\x59\x39\xb3\x66\x06\x4f\xbd\xb1\x8a\x8b\x50\xca\x51\xb1\x8c\x42\xae\x4a\xc7\x04\xb4\xa1\xca\x5c\xa1\x04\xe8\xaa\xd2\xda\x71\x5b\x02\x30\x61\x3e\xaf\xa5\xf3\xb1\x40\xfb\x85\x36\x2c\x27\x46\xc1\x47\x24\x31\x4c\xe5\x5c\x58\x39\x9d\x9b\x3f\x3a\xe2\xe3\x4b\x63\x16\xd2\x4a\x49\xb7\x8c\x78\x38\xe8\x6a\x20\x69\xff\xac\x4f\xd1\x3d\x9d\xd0\xe4\x46\x4e\xa7\x1f\x79\xce\x97\xac\xb0\x6b\x17\x26\xce\x6b\x86\x33\x71\x33\xcc\xa9\xba\x41\x8a\xc9\x35\xac\xc3\x14\x65\x1b\xf2\x3e\xca\x46\xfa\xfb\x5d\x03\x62\x13\x14\xa6\x7a\x24\x4b\x6c\xec\xef\x52\x9a\x36\x5d\x26\x09\xd3\x7a\x5a\x66\xd9\x82\x58\x12\xa5\xe7\x2c\x45\x84\xaa\xdf\xd9\xca\xad\xa4\x4a\x01\x01\x94\x90\x4f\xd7\x18\x17\xc3\x2d\x78\x46\x72\x46\x85\xae\x0e\x84\xeb\xd5\x57\xb0\x2c\x64\x4a\x34\x9f\x09\x9a\xe9\xa5\x9f\xb3\xcc\x81\x90\x21\xaf\x2a\x86\x5f\x16\x54\xd1\x2c\x63\x19\xd7\xb9\xfd\x00\xd8\xf0\xb1\x1f\x77\x3c\x10\xfd\x51\x1b\xc5\x9b\x78\x0c\x71\x07\x5c\xa3\x03\x02\x7d\x7c\x6f\x42\x42\xe2\x68\x10\xf8\xce\xea\x41\xba\x95\x68\xa5\xab\x15\x81\xb2\xa4\x35\x95\x89\xb6\x54\x35\x61\x85\xd1\x27\x77\x52\xdd\x64\x92\xa6\xfa\xc4\xa5\x60\xcb\x98\xd2\x27\x56\x26\x3c\x56\xa5\x38\x36\xf2\xb8\xda\xc8\x93\x9d\xe7\xa3\xa6\xa2\xa4\x55\x6a\xab\xae\x7c\xdc\x71\x63\x9f\x31\x4e\xd7\xb2\xb3\x41\xa2\x38\xcc\x64\x85\x7e\x1d\x58\x31\xf7\x8a\x1e\x93\x8f\xcc\xee\xd3\x97\x7a\x57\x5f\x30\xcd\x14\x29\x05\x64\xe1\x5e\xc8\x12\x5c\x36\xbe\x54\xd1\x9d\x5d\x79\xff\x30\x95\x55\x72\xaa\xa9\xd5\x54\xac\xae\xe0\xb2\x54\x45\x94\xa4\xe0\xc9\x8d\x1f\x46\x29\xf8\xaf\xa5\x23\x4d\xee\x02\xc2\x39\x2a\x0a\x06\x51\x60\xe0\xd6\x71\x6d\xab\xdc\xb0\xc4\xb0\xbc\xb0\xc2\xec\x98\xe0\xd7\x0c\x68\x47\xf6\xd7\x52\x63\x71\x57\x0c\x24\xd3\xdc\x6a\x9b\x56\xad\xb3\x1f\x85\x9a\xbf\xf8\xc1\x68\x15\x9a\x35\xbc\xdd\xc4\xc7\x04\xd4\x9c\x52\xc1\xe8\x60\xcc\xb4\xf6\x36\x50\xcc\x84\x62\xe1\x5e\x8e\x7d\x61\x82\x29\x7b\x40\xd0\x03\x65\x42\x42\x7c\x0c\x6e\x4b\x4c\xb6\x18\x13\xf2\x57\x79\xc7\x6e\x99\x1a\x91\xff\x2d\x4b\xe8\x46\xb3\xa5\x85\xff\x93\x9d\xd3\x17\x4b\xc8\xb1\x3b\xbb\xd0\x77\xcc\x2e\x3d\x94\x1f\x76\x91\xd0\x10\x0f\x97\xa5\xe4\x0b\xfb\x6a\x98\xd0\x20\x9e\xdc\xbe\x99\x30\x43\xdf\x7c\x21\xa7\xe7\x67\xfb\x3d\xf2\xdf\x55\x6b\x77\xbc\x90\xa5\x3a\x96\x77\xe2\xb8\x90\xe9\xb1\x6e\x4d\xc8\xe6\x8f\xfd\x44\xca\x8c\x51\xb1\x22\xbe\xb7\xba\xfa\x1b\x91\x46\x9f\x37\x7d\x99\x44\xb6\x11\x43\x4b\x09\xa9\x01\xa2\x84\xfe\x32\xc3\x73\x86\xf0\x36\xcc\x20\xdc\x7c\xdf\x07\x6b\x5b\xc6\x6a\x18\x4d\x17\xce\x56\xe5\x61\x0a\x55\xc9\x67\x38\x0c\xee\x6d\x88\x38\x7c\xf9\x72\x6c\xd7\x69\x1c\x11\x7d\x72\x4c\xc6\xae\xda\x64\x45\xc0\x5f\x91\xeb\xf2\xf5\xeb\x1f\x13\x82\xcd\xa3\x85\x78\x35\x22\x50\xbd\x39\x04\x30\xda\x5d\x22\x19\x9b\x42\x12\xf2\x14\xd2\x5b\x57\x03\xc8\xe9\xd7\x98\x80\x3e\x2d\xaa\xf7\xa8\x29\x02\x4f\xdd\xcd\xfe\xb5\x64\x6a\x41\xe4\x2d\x53\xfe\xf0\xd0\x90\x56\x05\x62\x52\x03\x21\xc2\x94\xd2\xe4\x13\xf8\x9a\xb3\x45\x8d\xce\x69\x06\x7e\x44\xab\x4d\x41\xf8\xaa\x25\x43\x0b\x59\x6e\xbc\x1f\x76\x1c\xb7\x9c\xdd\xc1\xc6\xd8\xab\x66\x6f\xfe\xb1\xab\xed\x73\x82\x94\xec\xe4\x3b\xf8\x6f\xb8\x78\x2b\xac\xee\x9e\x6e\x6e\x6c\x77\x4f\xa4\x62\x76\x2d\xcf\x65\x7a\xe5\xfa\xe8\x74\x4b\xbc\xaf\xe5\x30\x01\xb2\x0d\x44\xcc\xdd\x98\x40\xc7\xec\xa1\x76\x52\x33\x60\xc7\xf7\xcf\xa9\xdb\xd7\xc6\x64\x4e\xe4\x3e\x9d\x1a\xa6\x7e\x72\xb2\x54\x57\x38\x61\xfb\x5b\x0e\x33\xe1\xec\x0d\x53\x06\x16\x57\xb0\x6b\xff\x4d\x4e\x70\x1d\xe6\x54\x57\x02\x5b\xa5\x35\xbc\x64\x1c\x98\xc8\xb2\xbd\x0d\x6b\x80\x44\x07\x8a\x6b\x57\xa7\x60\xc5\x18\xe8\xd4\xb8\xc0\x46\xfb\x51\xf7\x2d\xed\xd3\x53\xb2\x8c\xcf\xb8\xc3\x4a\x4c\x58\xa3\xa8\x79\xca\xec\xb7\x53\xc7\xcc\x7d\x17\x5c\x3b\xd4\x95\xfb\x79\x04\x19\xb8\xed\xfc\x92\x45\x92\x31\x32\x2b\xa9\xa2\xc2\x30\xa6\x1d\xf6\x63\xca\x05\xcd\xf8\xbf\x99\xd2\xaf\xc2\xbe\xcf\xa5\x90\x90\x4e\x7f\x69\x32\x91\xa8\x60\xbf\x76\x27\xc5\x0b\xb3\x66\x68\x6d\x8b\xe1\xcb\xf0\x57\xbd\x4c\x58\x22\x73\xb6\x34\x5d\xd7\x0b\xe1\x79\xce\x52\x4e\x0d\xcb\x16\x6e\xbd\xb8\x09\x4b\xe5\x52\xfd\x85\x0f\x40\xb6\xbf\xe3\xcc\xea\xd9\x3e\x6b\x3d\xc4\xf8\xba\x29\x91\xc9\xc2\xe5\xf0\x74\x24\x03\x63\xc8\x61\x28\x57\x57\x1f\xeb\x9b\xe3\x62\xd0\xf7\x54\x63\x7f\x85\x89\xd5\x5f\xff\x5d\x18\x55\x3b\xe1\x4a\xa1\xcd\x12\xae\x62\xd9\xdb\xf3\xb7\x7e\x80\x0a\x50\x4e\xbb\xec\xd7\x35\x75\x8f\xba\x02\x3a\x81\x81\xef\x25\xc0\xb1\x22\x2e\x0f\xed\xcf\xb9\x88\x96\xd6\xd2\x98\x20\x22\x58\x61\x07\x9c\x51\x8e\x8e\xa4\x90\x1f\xc7\x25\xd4\x09\x17\xd5\x97\xd2\xd0\x58\xac\x68\x0e\x82\xb7\x3e\x76\xca\xb1\x54\x29\x53\x3e\x04\x52\x33\x2b\x54\xd8\x0d\x2b\x9c\x4a\xa1\x7d\x97\x71\xfc\x29\x17\xe4\xe2\xa7\x77\x3f\xfe\xf8\xe3\xff\xc4\x94\xba\xee\x9e\x70\x41\x3e\x5f\xbd\x43\x09\xab\x5a\x2d\x1c\xb3\xbf\x46\x76\x10\xb5\xf1\xfb\x7b\x58\xd3\x72\x57\xf8\xa1\x7a\x97\x1f\xb8\xaa\x0c\xe1\x51\x76\x08\x48\x5d\xed\xea\xf7\xc4\x56\xf6\x17\x0d\xe7\xa4\xa3\x88\x34\xd8\x0a\x74\x70\xd1\xd4\x1c\x37\x0e\xc0\x0a\xaa\x2f\x80\x3b\xff\xf4\x27\x72\x7d\x84\x84\xfc\xfa\xe8\x21\x65\xb2\x5d\xd8\xb4\x37\xae\x5a\x50\xfb\xa9\x66\x05\x2c\x6c\xb7\xc7\x39\x53\x33\x76\x7c\xc3\x16\x3e\x24\xbf\xf3\x0d\x6d\xec\xe1\x9b\x2d\x10\xe7\xad\x66\x2b\x82\x98\xd0\x7c\xb3\x11\x89\x00\x11\x0f\x0b\x8d\x28\x46\x13\xb0\x9f\xcc\xa9\x66\xed\x6e\xae\x1d\x88\xb8\xde\x00\x77\x50\x74\x82\x26\x37\x42\xde\x65\x2c\x9d\x55\x59\x6b\x9d\x0b\xd0\x9d\xb7\x83\x20\x20\x2b\x96\xd4\xd2\x07\x96\xee\x6a\xe3\x2f\x7d\x77\x7b\xe2\xce\x1b\x72\x5b\x50\xe7\xc7\xef\x94\x14\xeb\x21\x8c\xae\x45\x7f\x18\x63\xa2\xa4\x18\xb0\x8c\x07\xef\xe1\x1c\x9c\x82\xcf\xc5\x29\xf8\x4d\x63\x19\x6b\x64\x6c\x97\xa0\x46\x4f\xc6\x46\x84\x8b\x24\x2b\xd3\x60\xca\xb5\x24\xbd\xcc\xf6\x7f\xcc\x1e\x02\xf1\x58\x5f\xbd\xed\xa0\x8f\x81\xde\x7f\xeb\xf8\x47\xcf\x4b\x57\xbb\x8e\x61\xb9\xb7\xf0\x1f\xd7\xb6\xa9\x03\x77\x14\xb5\x6a\xc3\x1e\xf9\xdd\x1a\x00\x48\x87\xcd\x9e\xb7\x06\x20\xb9\xfd\xdf\x35\x08\xa9\x2e\x2e\xf6\x54\xd8\x06\xc1\xe3\x59\x0b\x1e\x03\x1a\xe9\x81\x58\x4a\x07\x22\x69\x27\x6c\xa5\x03\x9f\x14\xb5\xda\x10\xa3\x04\x84\x18\x2c\x03\xdc\xf9\x69\x42\x39\x55\x55\x8a\x7e\x39\xe6\xd1\x5a\x96\x2c\xce\x65\xc6\x93\x45\x6f\x17\xae\x0b\x4e\x37\x8a\x51\x88\x72\xf4\x46\xb7\x30\x54\x5d\x19\x8a\xc9\x3f\x20\xa7\xa6\x0b\x14\xa7\x8a\xbd\x25\xc7\xe4\xfa\xe8\x34\xcb\xe4\xdd\xf5\x11\x79\xe9\x0a\x09\xbf\x7a\xeb\xf1\x28\x9e\xd0\xda\x2f\xa8\x52\x44\xfd\x67\x8b\x3f\xc2\xbb\x3f\x49\x35\xe1\xe9\xf5\xd1\x5b\x32\x85\x7f\xe9\x78\x0c\xaa\x14\x7a\x44\xf4\x0d\xc7\xb2\x07\x82\x7d\x85\x67\x84\x4f\x49\xa1\xd8\x2d\x97\x25\xf8\x87\xc9\x9c\x6a\xf1\xc2\x54\x4e\x9d\x05\x33\xd8\xfb\x05\x2b\x32\x9a\x30\xdb\x7d\x42\x45\xc2\xb2\x60\x54\x8c\x0c\xd3\x1e\xfb\xa0\xb0\xb1\xc6\x3d\x30\x73\x42\x89\x60\x77\x44\x8a\x2d\x92\x4d\xa2\x35\xcc\x4e\xfd\xaf\x5c\x1b\xa9\x16\x7d\x90\x53\x75\x23\x09\x76\x51\x4d\xca\x83\x1b\x14\x33\x94\x8b\xa8\x18\x12\xd6\xfb\xc5\xaa\x66\x29\xd7\x96\xf2\x97\x5c\xcf\x43\x65\x71\xf6\xb5\xc8\x78\xc2\x0d\xf8\x67\x60\xa6\x50\x68\xdb\x47\x1d\xd7\x11\x57\x6f\x76\x6e\x75\xfb\x2f\x39\xb9\xda\xd6\xfb\x59\xbf\x85\x7f\xab\x7a\xea\xab\xc5\xb0\x0a\x80\xd0\xcf\x07\xea\x4e\xec\x2a\x73\x97\x53\x6c\x7a\x6c\xa4\x6f\x4a\xb8\x80\x4e\x09\xae\xe4\x08\x20\x27\x9e\x9a\x33\x31\xbe\xe3\x37\xbc\x60\x29\xa7\x63\xa9\x66\x27\xf6\xaf\x13\xdb\x7c\xbb\x70\x07\x65\x67\xb1\x19\x8e\xf1\x17\x57\xd5\x90\xa4\xee\xb5\x18\xc2\x38\x95\x8a\xf8\x6e\xc3\x42\xf2\xa9\xbd\x21\x39\xd7\x9a\xe9\x30\xcd\x14\xad\x9b\x90\xde\x53\x2c\x5c\x5c\xc7\x98\x90\x9f\x39\xd4\xe2\x83\xc3\x1b\x91\x94\xb0\x0f\xb2\xf4\xc9\x33\xdd\x79\x97\x82\xad\x75\x13\x6d\x05\x5f\xac\xdc\x18\xf7\xba\x92\x55\x37\x0f\x7d\x2d\x7f\xdc\xbd\x31\xbc\xd4\x05\xeb\x94\x32\xd1\x0d\x9b\xd1\x19\x31\x2c\xcb\x82\x59\xd3\x19\xa6\x21\xab\x09\xf6\x63\xa5\x41\x6d\x05\xc1\x1a\xeb\x00\x97\x77\x2a\x99\xab\x26\x51\x14\xd9\x02\x02\x9b\x32\xe5\x91\x3c\xca\xc4\x4e\x78\x3d\x26\xb5\x69\x03\x98\x6d\xc5\x55\x58\x06\x33\xf5\x14\x5e\xc2\x25\x5e\x41\xa4\xba\xc4\x9a\xcd\x44\x86\x2e\x67\x6d\xad\x5d\x0f\x87\xed\x26\xa6\xe3\x3e\x5e\xdb\xd3\xa0\x15\xb9\xf3\x0a\x0b\xdf\xca\x25\x77\xa5\x2f\x79\x4c\xcb\xca\xe4\x78\x5b\x68\x4c\x58\x1a\x18\x37\xf6\xa1\x5d\x3c\x67\x51\x7d\x13\x60\x28\x77\xb4\xad\x34\xb1\x77\xf8\xd4\x90\xc3\x81\x7e\xee\x22\x09\xec\x7a\x76\xb9\x16\x30\x10\xb7\x6c\x14\x41\xb2\x2a\x82\xc3\xcf\x38\x7b\x03\x38\x57\x61\xa6\x9e\x8f\x82\xa2\x48\x03\x3c\xb4\x57\x7a\xb9\x83\xb3\xf1\x46\x88\x65\x5d\x9f\x19\x28\xc3\x15\xf6\xf5\xe9\x9a\x82\x77\x1b\xd6\xbe\x0e\xde\x7d\x18\x56\xcd\x55\x37\x25\xb1\x67\x72\x8a\xf9\x7b\xec\xb2\xbc\xab\xfe\xbe\xe4\x33\x4b\xf0\x2e\xd0\xaa\xb1\x8e\x72\xaf\x7a\xc7\x9d\x2c\x4d\x0a\x25\x6f\x79\xca\x20\xd3\x5d\x32\xa7\xc2\xc1\xf2\xe5\x04\x20\xdc\x5f\x7f\xf7\xfa\x7f\x92\x78\x20\x00\x63\x02\xa3\x8a\x13\x46\xa3\x1f\x01\x61\x6f\x9f\x3a\x6b\x4b\x48\xd2\x03\xd8\x58\x43\xa8\x5e\x88\x64\xae\xa4\x90\xa5\xce\x16\x96\xd5\x2a\x79\x6b\x05\x2b\xb0\x12\xe9\x92\xa5\xe3\x6b\x71\x2d\xfe\x5e\x4e\x58\xc6\x8c\x26\x01\x3d\x7d\x7a\x7e\x56\x8d\xe9\xed\xb5\x20\x6f\xc6\xde\xc0\x53\x1b\x9b\x65\xdb\xa5\x99\xdb\x5d\x81\xf1\x18\x09\xb9\x66\x8f\xed\x15\xc4\xf2\xc9\x2f\x03\x30\xfa\xfa\xa8\x0e\xa9\xa8\x37\x3c\xc6\xee\xc1\x26\x90\x41\x12\x2e\x3b\x37\xa6\x3e\xd1\x9c\xbd\x1a\x5f\x0b\xf2\xc3\x18\x8b\x38\x89\x59\x7d\x08\x56\xb8\xbc\xfa\x78\x19\x8c\x51\xba\x39\x82\x84\x82\x8a\x29\x58\x02\x78\x34\xcd\x92\x52\xb1\x6c\xd1\x31\xb2\x8c\x99\x63\xf7\xbd\xa5\xb1\x5c\x8b\x2b\xbf\x48\xae\xbe\xac\xaf\xec\xec\xf6\xe1\x61\xd6\xaa\x3e\x2e\x28\x86\x50\x9d\xa3\xfa\x1a\x41\x61\xad\x52\x1b\x99\x13\x21\xc5\x71\x54\x82\x07\x7b\x18\x8c\xda\x87\x6d\xd4\x1e\x4c\xbf\xcf\xc5\xf4\x1b\xc9\x23\xbb\x63\xe4\xbd\x19\x57\x27\x97\xb7\x9f\x6f\xa4\x35\x8b\xd8\x4d\x8d\xcd\x58\x8d\x36\xcf\x4b\x03\x88\x3d\x04\xeb\x82\x78\xc4\xad\x8a\x0f\x59\x15\xa3\x4a\x17\xa3\x88\x54\xe1\xeb\xa5\xa6\x33\xe6\xd0\xbc\xda\xd3\x51\xcd\x0c\x91\x22\xee\x07\xd0\xd7\xae\x11\x44\x35\x31\xc5\x6f\x11\x13\x15\x51\x31\x57\xea\xdb\x9d\xb4\x5c\xa6\x98\x3a\x6f\xb2\x80\x08\x24\xbd\xca\x70\xb3\x9d\x0f\xb8\xff\x6a\x77\xfb\x85\x9d\x3f\x38\xac\x78\x5c\x15\x11\x73\x6f\xc4\x15\x71\x3c\x7b\xb1\xd7\xdc\xf3\x72\xa9\x48\xca\x04\x67\xe9\x28\xc4\xe2\xc5\x5b\x86\x6c\xde\x43\xc8\x70\x13\x90\x55\xcc\x19\x58\x57\x4a\x15\x27\x1e\x89\x52\x80\x60\x5b\xdf\x66\x8b\xe2\x33\x70\x94\x1f\xd0\x1d\x50\xdb\x17\xa4\x1f\x2b\x9c\x03\x2b\xe5\xba\x9d\x04\x2f\xf7\x3e\x1f\x7d\x52\xf4\x74\xbf\x1c\x29\x66\x34\xda\x49\xb0\x0b\x74\x49\xa3\xfd\x52\xfa\x3c\x5e\x7e\x9c\xe5\xaf\x87\xb2\x49\xcb\x49\x73\x1a\xb9\x61\xbc\x9a\xd6\x9e\x3e\x87\x9c\x4d\x7d\x84\xc3\x1d\x42\x88\x05\xbb\x8b\x33\xf0\xf8\x92\x75\x69\x8a\x97\x8c\x0a\xc2\xbe\xa2\xc5\xae\x96\x91\xc6\x75\xcd\x35\xb1\xc2\xfc\xcc\xde\x43\x0c\x5c\x04\x91\x2e\x0d\x76\x2b\x50\x16\x65\xcd\x80\x03\x51\x6e\xab\x2d\x17\x9f\x81\x61\x3e\xc6\x92\x57\x5f\xae\x2d\xb7\x53\xee\x60\x9d\x91\x9b\x87\x50\xd1\x64\x19\x92\xbc\x79\x5a\x22\x9f\x87\x28\x50\x43\x4a\xe6\xed\x99\x8a\x40\x50\xae\xe7\x28\x8a\xe9\x23\x58\xc6\xf6\x94\xa4\xc8\x25\x27\xaa\x12\xbd\x52\x02\x69\x8b\x9a\x59\x8b\xee\x39\x96\x5e\x69\x8a\xf4\x36\x69\x8a\xc8\xa9\x63\x1d\x23\xf2\x3e\x62\x1c\x08\xaf\x8e\x21\xf3\x56\xf6\x73\x1c\xf5\xfa\x08\x3a\xf1\xb5\x22\x5d\x57\xd7\x47\xfb\xc9\x79\xe4\x6b\x5e\xd6\x26\x35\x26\x7f\x87\x54\xb9\xd1\x00\xad\x3c\x70\x7d\xe4\xa7\x83\x25\x2d\x71\x4a\xf6\xdf\x76\x52\x11\xc6\xdf\xaa\x6d\xa7\xa2\xd6\x3e\xe6\x7b\xfe\xa6\xdf\x72\x0a\xdf\x3d\x41\x06\x4b\x33\x2b\xd6\x7a\x71\x79\x14\xf3\xc7\x78\x93\x01\xb2\x1d\x6b\xd7\x55\x94\x7f\x1b\x03\xc6\xc1\x44\xa3\xdd\xed\x48\x50\x1e\x88\xc7\xe1\xb6\x71\xed\x58\xfc\x4a\xad\x1d\x8b\x3b\x71\xeb\x46\x12\xc9\x0d\xa8\x14\xc3\x57\x9b\x82\x09\x7e\x36\x5e\x32\x5c\x8b\xe6\xfe\xe6\xa5\x73\x79\xb3\xaf\x49\x56\x6a\x7e\xcb\xfa\x1f\xe0\x4a\x22\x54\x2c\x47\x61\x49\x24\x0c\xa7\x04\xdf\x0f\xb9\xbf\x1b\x6c\xd3\x05\x21\x7b\x16\x90\x65\xf2\xee\xd0\x13\x6c\xf5\x16\x3a\xba\x50\x70\xeb\xde\x6b\xc3\xc5\x75\x1a\xbc\x06\xcb\xc2\x21\x5b\x16\x36\x82\xcb\x6d\xbf\xf7\x2b\xbf\xb5\x53\x85\x6b\x80\xd7\x0d\x36\x96\x18\x5e\xb7\x31\x51\x7e\x70\x08\xdb\xfd\x75\xd6\xdd\x25\xdd\xda\xcc\x8a\xb4\x05\x0b\xb9\xec\x63\x5c\xea\x61\x89\x66\x5f\x8d\x5a\x3a\x2f\x34\x45\x0e\x4e\xb3\xf3\xf6\xd7\xc8\x6a\x12\xb4\xe6\xa8\x92\x26\x29\x59\x4d\x4c\x9a\x34\xa7\xb1\x2c\x30\xea\x6a\xfa\xf8\x27\x35\x78\xe1\x58\x90\xe2\x21\x65\x0e\xc0\x92\xbc\xb3\xd1\x3e\x5d\xb9\xa6\x63\x72\x2e\x8b\x32\x83\x86\x4e\xae\x3b\x3d\x3f\xf3\xea\x67\x64\x4b\x43\x9b\x9d\x37\xd8\xad\x10\x66\x64\xad\xc8\x5a\xfd\xa2\xc2\x99\xed\x62\x15\xd8\xa8\x9a\x25\xfc\x4d\x72\x96\x4f\x98\xd2\x73\x5e\x3c\xea\x2c\x57\xf0\x9f\xd5\x5b\xbf\x5d\x4c\x6d\xc6\xb5\x39\x0e\x8d\x8d\xcc\x57\x55\x7e\x50\x4b\xde\xc4\xb6\x25\x0d\x3e\xa5\xa0\x15\x2f\x7b\x09\x9b\x8e\x40\xc2\x44\x22\x53\x0c\xdf\xa4\xe4\xfa\xe8\xdd\x87\x8b\xab\xb3\x9f\xce\xde\x9d\x5e\x7d\x20\x17\x1f\xfe\xd7\xe7\x0f\x97\x57\xd7\x47\xe4\xfc\xc3\xcf\x64\x92\xc9\xe4\xc6\x85\x51\x6b\xa6\x38\x24\x88\x00\xe8\xd5\xdf\x2e\x7f\xf9\x64\xd5\xbd\xff\x7d\xfa\xf3\xc7\x51\xe5\xf3\x47\x9d\xc0\x5d\xb5\x6c\x41\x26\x54\xb3\xdf\xff\xf6\xd8\x7d\x70\x25\x22\x69\xb2\xe8\xd0\x82\x77\xb0\x9e\x95\x89\xb9\x4b\x6f\x0e\x0d\x1b\x05\x5b\xaa\xba\xcc\xde\x52\x4a\x3d\xc7\xff\xb5\xa4\x19\x5a\x95\x05\xcd\x51\x7d\xb1\xa4\xf7\xe4\x0e\x32\xd0\x04\x7e\x6c\xd5\xff\x95\xc7\x18\xed\xdc\x53\x9e\x19\x3c\xb5\x51\xc2\x0c\x2c\x84\x62\xf7\x0a\xd2\x0d\x55\x23\xfc\xd3\xa7\xd3\x9f\x3f\x5c\x1f\x61\x33\x9f\x37\x07\x3e\xff\x4f\x96\x65\xc7\x58\x3f\x66\xd9\xa1\x07\x40\x5c\x74\xdc\xf6\x74\x26\xbe\x45\x45\x4d\xb7\x3b\x2f\xe1\xaa\xd6\x9d\x9d\xeb\xbd\x99\xe3\x6b\x41\xc8\x45\xbc\x2c\x30\x5b\xa7\x1d\x5a\xd5\x4e\x30\x7b\x79\x69\x69\xe4\x71\xd0\x9d\x27\x0b\xec\xa6\x82\x93\x1d\xe7\x54\xd0\x99\xdd\x0a\xf7\xf9\xba\x12\x7b\x7d\x94\x68\xe5\x4e\x3f\xea\xae\x1e\x86\xc6\xc5\xaa\xae\x9c\x3b\x79\x43\x87\x74\xf7\xfa\xdc\xd4\xfc\xe8\xf7\x5b\x20\x37\xd9\xa5\xd5\x09\x73\xc6\x87\x1b\xcc\x7a\xe4\xbd\x24\xbb\x5b\xc4\x1f\xdb\x17\xb1\xee\x3b\x77\xab\xd6\xea\xbc\x6f\x5d\x36\x58\x9e\xba\x4f\x7f\xe4\x02\xc3\xfb\xb9\xf6\x77\x7f\xf4\x76\xbd\x72\xd7\x02\x44\xf2\x60\xc1\x54\x71\xb5\x24\x6a\xaa\x24\x14\x7f\xa8\xb2\x4f\x28\x0f\x89\x3b\xa1\x00\x15\x3b\xb6\xc7\x4b\xc0\xff\xff\xfb\x24\x5a\xd5\x63\x37\x9c\x63\x4f\x93\x4e\xbe\x8b\x88\xa9\x23\x0f\x76\x08\xef\x10\x10\x50\x91\x1a\x24\x4f\x34\xd3\x98\x43\xa0\x02\x9d\x5e\x55\x66\x1d\xa7\x77\x3b\xd2\x72\xa5\x4a\x6d\x00\xc8\x0a\x52\x0c\x97\xe2\x2d\xc6\x0e\xc0\xf3\x97\xef\x4e\xc9\xa4\x14\x69\xc6\xf4\x2b\x74\xde\xf9\x86\x60\x7f\xb1\x77\xf0\x9c\xa9\x9c\x1b\x20\xb8\x25\xaa\x8c\x6f\x61\xb1\x03\xa0\xc8\x19\xe7\x53\xae\x9d\x19\xc6\x37\xc4\x44\x05\x8e\x5c\xbb\xc3\x78\xe1\x84\xfa\x11\x29\x7c\xbf\xe0\xeb\xc2\x28\x82\x94\x39\xc6\x59\x65\xe7\xf3\x05\xb3\x3c\xdb\x7c\x59\x85\xac\x7a\xbf\x9b\xfb\xdc\x69\x66\x70\x89\x60\xaf\x70\x28\xfe\x54\x82\xfe\x33\xb2\x0a\x9f\x51\x3c\x31\xbe\x18\x96\x1f\x30\x1a\x01\x5e\x75\xcd\x2b\x8c\x6a\x69\x66\xbf\xed\x33\xb3\x1b\xb6\xf0\x3e\xd5\x13\xec\xcb\xf2\xff\xea\xa9\xed\xe8\x77\x63\xf2\xe1\x6b\xc1\x31\xf7\x40\x7c\x66\x42\x56\xac\xb7\x61\xde\x98\x96\x6a\xca\xbf\x2e\x7b\x0f\x43\x0a\x03\x7b\x5a\xdd\x6f\x34\xcd\xb9\xb0\xdf\xf8\x3d\x08\x13\xd0\x85\x54\x60\x78\xac\xf3\xc6\xd3\x3a\x05\x88\x96\x73\x0b\x63\x72\xc9\xbb\x54\xf6\x92\xa7\x75\x95\xc3\x3e\x38\x04\x51\x7b\xed\xb4\x60\xc7\xba\x66\x86\x9b\x5d\x55\xde\xa3\xe8\x3e\x9f\xc6\x47\xa1\x12\x68\xdc\x49\x77\xe4\xab\x69\x89\xad\x51\x4b\x4b\x7a\x5b\x99\xdc\xa2\x70\x59\xbf\x5c\xb7\x6f\xc9\xf5\x51\xca\x67\xdc\xd0\x0c\x93\xbd\x9a\x52\x31\xb4\xc3\xdb\x31\x30\x91\xf0\x62\xce\x54\x0e\xf2\x85\x7d\xea\x7a\xb5\x34\xcb\x99\xe4\x97\x3e\xdc\xce\x27\xda\xbe\xdc\xfe\x89\x15\xe3\x71\xbb\x14\x7d\x79\x29\x6c\xe9\x5a\xd8\x76\x9e\x96\xaf\xe9\xcb\x9e\x27\x2c\xff\x96\xe7\xdc\xb8\x4f\xc3\xdb\xed\x43\xb2\x4f\xe9\x4c\x31\x16\x8d\xd2\x8a\xd2\x8d\x96\xd0\x83\x9d\x36\x7c\xcf\x7d\x4a\x65\xd1\x5f\xfe\x05\x48\xd0\xe4\x3a\x62\x4b\x8f\xa8\x58\xf8\xde\x6a\xb3\x5e\xda\x00\xf7\x45\x99\x06\xfd\xc1\x7d\x26\xa7\x3c\x23\x85\x92\x06\x4d\x7d\x6e\x05\x4f\x72\x9e\x33\xff\x16\x2f\x34\x4b\x08\x60\xfc\x21\xbf\x22\xb6\xc1\xa7\xa6\x14\x82\x65\xf1\x13\x7b\xd3\xfc\x9b\x96\xcc\x68\x43\xf3\x22\x7c\x4f\x26\xba\xa8\x8f\x20\xe7\x89\x92\x5a\x4e\x0d\xd1\xb3\x04\x1f\x09\x66\x74\x42\x0b\x86\x4f\x0e\x5b\xb1\xb3\xd3\xed\x51\xd6\xcf\x37\xab\x13\xa8\xb8\xc0\xdf\x61\x51\xa8\x9e\x46\x34\xb5\x04\xa6\x88\x35\xb3\xbd\x3b\x38\xba\x83\x2b\xd6\xbf\x59\xed\x46\xe4\x4a\xf2\x3a\x8f\x57\x17\x83\xb7\xef\x04\x9d\x6d\x27\xce\xdd\x55\xf7\xc8\xd6\xf0\x52\x2b\xa8\x6f\x8f\x30\xce\xaa\x75\xc7\x81\xaa\x03\x7f\x48\x11\x0e\x03\x46\x2e\x8a\x96\xef\xd7\x79\xbb\xc3\x71\x51\x11\x7c\x6c\x75\x6f\xa0\x33\x5e\x37\x33\x31\x5a\xbe\xb3\xc6\x45\x38\x26\xbf\x88\x84\x55\xc3\x19\x35\x32\x45\x56\x07\xd1\xd2\xe5\xb3\xe9\x92\x69\xb0\x69\xdd\xe0\xba\xc2\x3c\xd5\x7d\x77\xe0\xb3\x8b\xfc\xaa\xc1\x83\x89\x3b\x10\xbe\xaa\x2c\x8d\x13\x9a\xb0\xbc\x30\x0b\x97\xbc\x92\x45\xba\x97\x95\x5b\x5a\xfd\x96\xab\xbe\x18\xbc\xa7\xfd\xbe\x18\x18\x10\x5e\x47\x77\x91\x2c\x23\xf0\xa2\x75\x3c\x7f\x48\xe8\xef\x8e\x25\xfa\xf6\x15\xc9\xad\x02\x11\x2c\x38\xda\xc9\xd3\xa7\x59\x16\x3d\xc4\x17\x31\xeb\x1d\x28\x2b\x91\x1d\xe8\xfa\x08\xd3\xeb\x8e\x42\xc7\x42\x92\x39\xa3\x29\x53\xba\x3a\xb0\xde\x8e\x64\xf9\x95\xd5\xaa\x7c\x69\x01\x4a\xfe\xfc\xe1\xc2\x1b\x7d\xc8\xe9\xe5\xa7\xf1\x9b\x98\x2c\x11\x6d\x54\x09\xfe\x02\x02\xfe\x68\x04\x28\xa5\x2e\x8a\x10\xa6\xfc\x5b\xbb\x78\x17\x3f\xbd\xfb\xdd\x0f\x7f\x78\xed\xc4\xf7\x4f\x52\x1c\xdb\xc1\x7b\xfe\x9a\x53\xc0\xac\x33\x1a\xaa\x4c\x4b\x15\xa5\x51\x6d\x4e\x27\x9a\xb7\xb3\xda\x94\xe2\x16\xd7\x98\xa5\x96\xf7\x60\x94\x59\x26\xef\x08\xd6\x8a\x2f\x32\x2a\xa8\x91\x6a\x41\x0c\xfb\x6a\x56\x8e\xf4\x77\xe3\x1f\xdc\x58\xff\xe3\xb7\xbf\xff\x83\x3f\xa3\x39\x56\x64\xa0\xb8\x21\xe1\xdb\xd1\x2d\xa9\x56\xb1\xf2\x60\x34\x28\x03\xc3\x84\xe7\x91\xb9\xa7\x0a\x8c\x0b\xa4\x06\x00\x4b\x77\x5c\xbb\x9c\xea\x53\xae\xec\x1e\xf8\x8f\xb5\x93\x15\xfc\x76\x14\x7e\xe7\x16\xa6\xc2\x25\x18\xc7\x50\xa8\x46\x8f\xa6\x4b\xbc\xda\x90\xce\x45\x4a\x6a\xb9\xe0\xac\x84\x36\xa7\x22\xd5\x73\x7a\x03\x3a\xc5\xb5\xb8\x5a\x42\x1c\xc6\xd6\x47\xbb\x30\x68\x05\x44\x9b\xd5\x8e\xec\x8c\x23\xa2\xa5\x55\x51\x12\x29\x34\xb7\xe2\xa3\x9c\xbe\xb5\xfd\x5b\xaa\x88\x2d\x5f\xe2\x1f\xc7\xf6\x7f\x7f\xfe\xf0\x97\xb3\x4f\x24\x3a\x2d\xf0\x14\x1b\x8c\xc7\xe3\xa8\xe5\x87\x4f\xef\x57\xb4\x7b\xf5\x98\x96\xcd\xde\xe9\x34\x63\xf4\x44\x51\x64\xbc\x2a\xc5\xee\xdd\x2b\xf7\x84\xd1\x3c\xb0\x47\x77\x87\xa9\x2e\x61\xb1\x73\x5a\x1c\xdf\xb0\x85\xae\x49\x2c\x55\x37\xd1\xa3\x7f\xf5\xdc\xb6\x9c\x16\xbb\x0f\x3d\x72\xd1\xa2\x5b\xc4\x1f\xbd\x8f\xc1\xa0\xab\x59\xe8\x00\xca\x38\x64\x50\xc6\x00\x45\x78\x2e\x50\x84\x87\x08\xf7\xe8\x20\x16\x9d\x31\x1f\x4d\x06\x1e\xa4\x6c\xa3\x59\x36\xc5\x0a\x30\x62\x11\x71\xe3\x38\x4a\x61\xaf\xa1\x15\x5d\x33\xeb\x8e\xaf\x78\xef\xc2\x45\x96\xe3\x2a\x62\x9e\xf8\x38\x19\xf1\xf6\x1a\xaf\xb0\x69\x6a\xa3\xcd\x56\xbe\x35\x72\x61\x08\x21\x18\x42\x08\x10\xbf\xed\x2d\x7c\x01\x0c\xbf\xb7\x90\x81\xc3\x8b\x0f\x78\xb4\x60\x80\xad\x6a\x16\xef\x34\x18\xa0\x96\xa5\xe5\xfa\xc8\x7e\xd0\x3e\xad\xae\x49\xab\xf6\x19\x1a\x3e\x6a\x2c\x01\x3a\xfe\xb6\x56\x84\x76\x82\x06\xdf\x91\x69\xb4\x83\x76\x37\x01\xe0\x83\x02\x70\x78\x0a\x40\x2b\x2a\x7b\x47\xca\x76\x97\x6e\xd9\x53\xd1\x1e\x14\x97\x67\xad\xb8\x0c\x18\xea\x87\x92\xa5\x3b\xd0\xd4\x98\x3a\x2e\x52\x5f\x5a\xe2\xee\x1b\xb1\xe1\xce\x57\x18\x45\xe1\xfb\xb0\x0c\x4b\x15\x3f\xf7\x08\xbc\x1f\xb9\xda\x99\xf7\x0f\xbc\x7f\xa6\x60\xee\x0f\x80\xde\x5e\xab\x55\x42\x7d\x53\x6d\xf5\x84\x4b\x86\x9e\xdc\xf1\x99\x98\x4a\xe4\x54\x53\x9a\x60\x5e\x44\x27\xa4\xee\x0b\x8f\xfd\x17\xc0\x5f\xef\x6d\x9c\x87\xe6\x78\xef\x87\xa8\xfe\x73\xcd\x95\x40\xce\xff\xfe\xee\xf2\xbb\x37\xaf\xc9\xbb\xcb\x0b\x70\x3d\x3c\x09\x08\xf3\x45\x03\xa9\xdc\x54\x35\x7c\x2d\x9f\x26\x70\xd9\xe3\x80\xec\xb4\xde\x92\x2f\x3a\x91\x05\x3b\x9e\x4b\x6d\x00\xd5\xcc\xe5\x89\xfd\xef\x17\x10\xda\xc1\x53\x39\x0a\xc9\x87\xa1\x4c\x1f\xc8\xf7\x2c\x75\x3e\xca\xb3\x29\xe1\xe6\x85\xfd\x88\xc3\x70\xb6\xc0\x86\x7c\x81\x43\xaa\x61\xa0\x29\x7a\x53\x36\xc4\xde\x3a\xef\xe6\xf2\xf7\x5a\xd0\x42\xfd\x3f\x58\xc3\xa9\x3a\x1f\xe4\x2f\x95\xb3\xad\xde\xcd\x52\x0f\x19\x9b\xd1\x64\x71\x5c\x06\xf5\xe7\x5a\xbc\x8f\x80\x90\x20\xee\x02\x0c\x12\xf2\xa5\x3a\x54\xb6\xab\xc8\x44\xec\x1d\x94\x53\x32\xa1\x22\x1d\x43\xdd\x61\x4b\x87\xb1\x5c\x68\x2b\x30\xfc\x4b\xc3\x4d\xf8\x65\x2f\x60\xb9\xcf\x67\xef\xf7\x4f\xd3\xee\x0d\x7c\x73\x70\xc1\xcf\x2b\xf1\x6f\x65\xc8\x22\xc0\xbe\xba\x9c\x99\x37\x6c\x11\x4e\x31\xf8\x84\xed\x40\x61\x16\x95\x38\x67\xa4\xcc\xf4\x98\x33\x33\x85\xac\xbb\x73\x93\x67\x27\x6a\x9a\xfc\xee\x87\x3f\xbc\xfe\xce\xf9\x82\x8f\x7f\x3b\xfe\x61\xfc\x66\xfc\x23\x9e\xa9\x2d\xde\x7c\xf3\x43\x37\xf0\x0c\xfe\x6c\x83\x9e\x39\xb8\xd6\x06\xe0\xb3\xf0\x3c\x86\x9f\x61\xff\x7d\x00\x68\xf8\xa0\x82\xa0\xc1\xdf\x4d\x10\x1a\x76\xc7\x5a\x1e\xae\x04\xa2\x61\xbf\x9d\x50\x34\xfc\xdc\x32\x18\x0d\x7b\xec\x82\xa3\x45\xcf\x03\x20\x2d\x7a\xb6\x06\x92\x06\xcf\x1a\xa0\x34\x78\xd6\x84\xa5\xc1\xc3\x67\x08\x4c\x3b\x7b\x70\x1a\xd0\x53\xb7\x50\x75\x1d\x75\xcf\x96\x92\x65\x24\xd9\xfd\x21\x5a\x67\xd3\xd6\xa4\x11\xa3\x66\x12\x65\x20\x56\x90\x7a\x7e\x05\xc2\x83\xcc\xd9\x9a\x7a\xb5\x07\x05\x4a\x78\xd7\x05\x4a\x18\x11\x5d\x26\x73\x12\xd6\x83\x66\x3e\xad\x15\xcd\xf6\x83\x38\xe8\xed\xdf\xd8\xcd\xdd\x3c\x58\xd8\x81\x94\x2a\xe5\x02\x3d\x79\x56\xeb\x67\x54\xb3\x35\xca\x28\xfc\x1e\xac\x7c\x94\x64\xf0\xb7\xab\x8b\x3a\xe4\x90\x3c\x68\x9b\xe2\x60\x9b\x7b\x2e\xb6\xb9\x9e\x39\xad\x9f\x5e\x42\xea\x56\x72\xb4\x5d\x66\x6a\x78\xf5\x80\x73\x50\xef\xd2\xfe\x19\xaf\xda\x3a\xfb\x27\x52\xf7\xdd\xe4\x8a\x68\xdb\xa9\x8e\xd4\x42\xa1\x0d\x92\x18\x5f\x61\x00\x79\x8a\x4b\x18\x33\xf0\x90\x83\xe6\x21\x7d\xb2\x05\x9d\x55\xd9\x82\xfc\x16\xfb\x85\x6e\xee\xf1\xca\x3e\xb7\x26\x16\x83\xf7\x6a\xe0\x90\x43\x81\x3d\x7c\xfe\xd0\x9c\x65\x87\x99\x88\x56\xca\x01\x1d\xdc\x05\x32\x0c\xe1\xf5\x6c\x0a\x05\xd4\x89\x04\x7d\x2a\xe4\xc0\xe2\xef\x18\x35\xf5\x33\x4f\x94\xec\x84\x4e\x45\xdf\xc6\x79\x00\x48\x0d\xe0\x65\x31\xec\x0b\xf5\x2e\x30\x20\xe0\x0b\xe9\x0a\x10\xd8\x5c\x66\x29\x53\x67\xa9\x3d\x7f\xa6\xab\xfe\x5f\xbd\x71\x3d\x2a\x91\xfb\xa7\x4e\xbe\xc2\xb6\xae\xfa\x50\x3c\xaa\x2d\xac\xbe\xf0\xde\x7b\x57\x12\xbf\x5f\x81\xb2\xb6\x57\x70\xc1\x52\x5f\x5a\xdf\xa7\x2c\x49\x21\x00\x08\x03\x8c\xbd\xc6\x2a\x18\xda\x20\xee\x28\x87\xcc\x11\x53\x69\xc9\xb4\x5b\x4b\xc2\x4d\x55\xb1\x2b\x67\x54\x43\x18\xd3\xcc\x2e\x85\x09\x89\x70\x01\xd1\x26\x27\x60\xd7\x4c\xc9\x05\x13\xec\xee\x0a\xb0\x78\x2b\x0c\x32\xdb\x56\xe4\x82\xf1\x56\xf8\xc5\x5e\xeb\x12\x35\xf7\x58\xc7\xaa\x5c\x99\x89\x7e\x84\xdd\xc3\x15\xf1\x05\xc8\x70\x5f\xd7\x16\x5b\xdb\x6a\x1e\xca\xaf\xd0\x83\x5f\xa9\xf0\xe5\x75\x17\x2a\x3e\xce\xb8\x20\x73\xaa\x63\xd8\x22\x06\x72\xb9\x13\xbe\x73\xc3\x0b\x9a\xa3\x06\xeb\xcb\xf3\x95\x9c\x07\xd9\xf2\xb9\xc8\x96\xdf\x8a\xf5\x25\xa2\x49\x83\x09\xe6\xa1\x4c\x30\x1b\x43\xcd\x56\xee\xd9\x60\x8c\x79\xee\x2c\xe5\x80\x8d\x31\xb1\x3c\x33\x58\x64\x06\xae\x39\x58\x64\xc8\x01\x5a\x64\x76\xc7\x6c\x06\xdb\xcc\x60\x9b\x19\x6c\x33\x83\x6d\xe6\x99\xd8\x66\xb0\x12\xf9\xe9\x3f\x2f\x3f\xd8\xaf\xf0\xe4\xcf\x99\x4c\x6e\x2e\x8d\x54\xec\x1f\x32\x2b\x73\x76\x09\x42\xc4\x1a\x82\x77\x51\x55\x6c\xa7\xe4\xdc\xd2\x5c\x0d\xa0\xcd\xf7\x5c\xdf\x54\x42\x08\x17\xe4\xf4\x9f\x97\xbe\x32\xd1\xe9\x3f\x2f\xc9\x87\x3f\x5f\x92\xd4\xb6\x81\x3c\x4b\x10\x2c\xec\x53\x1f\xe5\xb2\x74\xc2\x8c\x24\x21\x8d\x3c\x53\x98\x9c\xb5\x7a\xc7\x67\x6f\x75\x30\x6f\x4d\x73\x06\x3d\xff\x5b\x0a\xc8\xc5\x04\x60\x58\xc4\x3e\x8f\x49\xf3\xab\x09\x64\x33\xca\x16\x18\xcb\x51\x0a\x17\xa1\xa9\x18\x4d\x4f\xee\x14\x37\x0c\x0a\xe8\x8c\xc3\x4b\xb7\xb0\x1a\x9a\xe8\xb2\x28\xa4\x32\x44\xde\x09\x97\xe6\x1d\x53\xdd\xe6\x00\xf0\x14\x29\xb9\xfc\xf0\x91\x8b\xf2\x2b\x51\x0c\x72\x4e\x71\x31\xeb\x41\xeb\xa7\xfa\xaa\x3b\xbe\xf3\x27\x9e\x31\x84\x7c\x92\x38\xd4\x13\x47\x86\x74\x66\x21\x4b\x72\x47\x05\x10\x13\x98\xd5\x98\x5c\xf1\xe2\x2d\xf9\x20\x80\x7a\x40\x1b\x4c\xac\x54\xef\x8a\x87\x89\x55\xe9\xf4\xe6\xd2\x92\x96\x82\x29\x57\x23\x11\x9a\x8f\xc9\x87\xaf\x34\x2f\x32\xa6\xdf\x92\xeb\x23\xf6\xd5\xfc\x16\x63\x47\xbf\x4e\xb5\xcb\x5d\x68\xec\xbf\xc6\xe4\x2c\x2f\x32\x9e\x70\x93\x39\xe1\x52\x21\xa5\x83\x98\x5a\x7c\x8d\x70\x08\x96\xad\x52\xef\xb6\x88\x3e\x75\x18\x3a\xe4\x06\x76\x36\x40\x7d\xa2\x8d\x54\x74\xc6\x4e\xdc\xce\x7c\x47\xef\x34\xc3\x33\x8c\x09\xa0\xec\x19\xde\x9c\x09\x14\x54\x99\x66\xb8\x7f\xdb\x66\xd8\xa3\x18\xda\xfa\x23\xd8\xb1\x15\xff\x3f\x7b\xef\xba\xdc\x38\x8e\xad\x0b\xfe\x9f\xa7\xc0\xb8\x76\x84\xed\x73\x24\x39\xb3\xae\xdd\xd9\x71\x7e\xb8\x6c\x67\x95\x4f\x65\x3a\xbd\x6d\x67\xd6\x74\xb4\x3b\xaa\x21\x12\x92\x70\x4c\x01\x6c\x02\xb4\xad\x3a\xb3\x23\xe6\x35\xe6\xf5\xe6\x49\x26\xb0\xd6\x02\x08\x52\x37\xea\x62\xa7\x2b\x4b\xb1\x77\x54\xa7\x45\x10\xc4\x75\xdd\xd7\xb7\xce\x07\x4c\x7b\x40\x5b\xc2\xca\xe2\x65\x06\x6a\xa9\x6f\xe4\x16\x9f\x7a\x81\x2c\x85\x68\xb9\xdf\xea\xc2\x3f\x72\x02\xdf\x91\x49\xf9\xeb\x0e\x7c\x06\xd7\x10\x77\xad\x1a\x13\xe4\x1b\xbf\x76\x7b\x71\x2d\xc7\x32\xe3\x45\x36\xe9\xc4\xa3\xac\x5a\x3a\x96\xe4\xbb\x74\x83\xb9\xdd\x7b\x75\xbb\xc7\x0e\x74\x01\xbd\xbb\x9b\x92\x09\x0f\xac\x46\x27\x78\x82\x29\x13\x87\x4f\x40\xa0\x79\xfa\x41\x65\xcb\x64\x84\x6b\x9a\xf2\xed\x9e\x85\x8c\xea\x88\x7b\xaa\x14\x82\xe3\x31\x17\x0c\x3b\xab\x46\x2d\x15\x43\xba\xf6\xde\xad\x36\x65\x6f\xdb\x2a\x7b\x7b\xde\xfe\xdc\xee\x0d\x30\x11\xfc\x19\x8f\x69\x5f\xeb\x4c\xf0\x39\x98\x01\xd8\xdd\xf9\xe9\xb2\x34\x07\x25\xff\x5d\x0a\x76\x7e\xea\xa9\x45\x5e\x51\xe8\x74\x06\x85\x66\x07\xc7\x63\xfe\xbb\x56\x11\xcd\x3b\xfc\x9c\x37\xb3\xa5\x72\x12\x56\x63\x99\x7e\xb2\x94\x11\x0e\x80\xf9\x4f\x16\x30\x3c\xdf\x04\xf9\x38\x56\xfd\x70\x0c\xdb\xff\x6c\x92\x91\x48\xcb\x0c\x10\xa8\xca\x4c\xb4\x31\x2d\x29\x9d\x8a\x19\x5f\x66\x2d\xed\x11\x38\xf4\x8b\xb8\x93\x45\x92\x48\x85\x9b\xe5\xbe\x3b\x7f\xe0\x21\xcf\x2a\xd7\xf3\xe4\xfa\x5c\xa7\x1b\x8f\xfb\x32\xea\xa3\xdd\xb0\x73\x9d\x2e\x18\xf5\x81\xe8\x0d\x7b\x2c\xd1\xdd\x4c\x63\x35\x82\x91\xc4\x57\x62\x39\xc1\xcd\xbc\x03\x92\x42\x87\x09\x9b\xf4\x1c\xb5\x34\x7a\x4c\x08\x84\xae\xf9\x81\x39\x3c\x5c\x30\x6b\x65\xe5\x56\x66\x1e\xf7\xb3\xc2\xec\x95\x95\xdd\x65\x4b\xc0\xef\xb5\x4c\x59\x5e\x5a\x32\x0c\x6d\x65\x19\x36\x96\x34\xad\xe5\x6e\xb8\x48\x85\x17\x5d\xb3\x5a\xc3\x5a\xe5\x5f\x62\x60\x9c\x5a\xa0\x98\xe8\xa6\xb2\xfc\xa6\xa5\xe2\x5e\x26\xe2\x92\xdb\xd1\x12\xc2\x79\x1a\x1a\x46\x46\x33\xe2\x0a\xee\x09\xcb\xdd\xa3\x87\x91\x28\x44\xcc\x54\x2b\xd8\x8f\x50\xe4\x60\x75\x19\xa4\x45\xda\xca\x45\x84\x9c\x1c\xd6\x01\xc7\xb0\x5d\xca\x0a\x63\xe9\xcc\x5c\xc0\x8d\x69\xed\xef\x65\x21\x9c\x9a\xd0\x52\xd3\x08\xed\xe3\x1d\xe1\x8a\xc1\xef\xec\x94\x5b\x8e\x4a\x07\x0a\x52\x5a\x55\x52\x2c\x94\x23\x90\x2a\xa5\x47\x64\x29\x07\xb2\xb6\xf4\xc4\x24\xa0\xf8\x0d\xdf\xbb\xe3\xb5\x78\x4f\x7e\x76\x9f\x3a\xc1\xe6\x6c\xac\x53\xf1\x86\x5d\xc0\xcd\x72\x62\x08\x24\xa8\xd3\x3f\x7f\x75\xfa\xc5\x1a\x06\x0a\xc7\xb0\x5b\xe4\xcb\x3a\xd1\x34\x3e\x1f\x90\xff\x06\xcc\x9e\xae\x7e\x3f\xd3\x7d\x46\x4c\x7a\xbd\x51\x7c\xbc\x3a\x6f\x31\x88\x8f\x57\xe7\x4f\x31\x80\xb5\x94\xa5\x4a\x0a\x7f\x1f\x70\x7d\x9b\x5a\x50\x7b\x15\xa8\xb7\x6d\xe5\xe7\x49\xbc\xec\x67\x8f\xb9\x48\x6c\x70\xf0\xb0\xeb\x11\x2f\x44\xfa\x86\x8d\xcb\xcc\xca\x3c\xa3\x7d\x70\x1b\x63\x9c\x5c\xe8\x77\x84\xf1\x24\x81\x7b\xc2\x4e\x05\xe2\xf2\xa6\x6f\x98\x91\x6a\x18\xbf\x31\xfb\x85\xf7\xa0\x0b\xa7\x6f\x18\x87\x3b\x89\xaa\x71\x1a\x1d\x80\x03\xd0\xb9\xa5\x0a\x8f\x88\x4c\xca\x0c\x18\x99\xb0\x87\xbd\x08\x05\x4c\x33\x03\x43\x5e\x0b\xbf\xaa\x8d\x1a\x11\xa3\x38\x81\x80\xcf\x0e\x2a\x0b\xc0\x61\xaf\x52\x20\x80\xce\x43\xa2\x1a\x6a\x19\x35\xed\xc2\x08\x64\xb1\x0d\xe5\x62\xce\xa6\x4e\x8b\xf5\x2d\x49\x71\xb8\xfe\x33\x2e\xe3\x56\x68\xb1\xbb\x33\x95\x05\x67\x15\xaa\xec\xde\x9c\x49\x95\xe1\xc1\xb5\x28\x80\x65\x6e\x97\x30\xff\xa1\xb6\x38\x0e\x58\x10\x49\x21\x6c\x0b\x3a\x1e\x57\x48\xc0\x97\xc8\x98\xec\x0d\xe2\xb8\xc4\xd7\x74\x09\x8f\xe9\x12\x02\xe9\x77\x0b\xfb\x8b\x98\xac\x81\xbf\x16\x46\x67\x72\x9e\xb4\x1d\x22\xb4\xf5\xfc\x66\xcd\xb1\xd6\xcc\x21\x5e\x40\x25\x33\xde\xa5\x5e\x83\x06\x00\xed\x68\xb1\xce\x40\x16\x59\xe3\x66\x6d\x41\x74\x8a\x36\x7a\xe6\xa8\xb6\x76\x67\x77\x37\xf5\x4f\x79\x53\xbf\xf0\xe3\xfd\xa3\x54\xa9\x1b\xd8\xfc\x03\x4d\x2d\x98\x3b\x71\x08\xfd\x88\x51\x0e\x15\x70\xe9\xdf\xa8\xfc\x01\xd8\x50\x3b\x8c\xa3\x02\x6c\x58\x5f\x97\x2a\xd2\x1b\x9d\xbc\xc7\xbd\x1a\x2d\x8a\x1e\x3b\x75\x17\x04\x24\x1f\x77\x8e\x5e\xf7\x7e\xe8\xb0\x1c\xfd\x31\x50\xb8\xcf\x89\xb0\xf8\xed\x5a\xf1\x0f\xb7\xfd\xb9\x4e\x0d\x93\xca\x58\xc1\xdb\x5c\x8d\x5d\x50\xd1\x2e\x4e\x75\x17\x71\xc3\x36\xf4\xc0\xb6\x8c\x53\x0d\x31\x37\xb8\x37\xfb\xe6\xb3\xc6\xdd\x44\x4b\x62\x79\x31\x14\x53\x50\x5e\xad\xed\x88\x38\xfd\x2b\x5f\x34\x73\x29\x02\x3a\x7e\x2e\x50\xcb\xa6\xb7\x0a\xd8\x3c\x5d\x7c\x53\x5f\xb2\x85\x96\xc0\x39\x70\xaf\x38\xb7\x65\xdc\x60\x8b\x81\x43\xb3\xa3\x84\x3c\x3b\x99\x1f\x23\xb4\x52\x78\x10\xae\xfc\xc9\xf5\xf9\xca\x0a\x53\xe4\x30\xf7\xfa\x33\x6c\x81\x34\x41\x29\x76\xec\x48\x41\x65\x4b\xa0\xb6\x27\xd7\xe7\xde\xbe\x98\x16\xf2\x5e\x14\xec\xe0\x47\x61\x39\x1b\x08\x80\x4b\x3a\x6c\x61\xc4\x0a\x68\x2b\x67\x8f\x39\x57\xe9\x35\xf0\xee\x2b\x38\x5f\xeb\x9d\xb9\xd0\x43\x8b\x33\x77\x32\xef\xeb\x48\x5a\x43\xb5\xd7\x70\xe8\x50\x84\xa2\xf3\x49\x42\x14\x18\x60\x04\xc4\x8c\xdc\x8b\x1a\x74\x97\xd5\x2c\xe7\x26\xf0\x2a\xb7\x5a\xb4\x4c\x56\xb3\x44\x3b\xd6\x6f\x45\x78\xd4\x1c\x0c\xd9\x97\x13\x9e\x65\x55\xb8\x0d\xd4\x86\xcd\x47\x9c\x80\xc9\x1c\x9f\xa3\xd3\x6d\x98\x50\xbc\x0f\xb6\x76\x7c\xff\xe4\xfa\xfc\x13\xc5\x06\xd0\x7e\xb0\x21\xb7\xa2\x59\x37\x4c\xc3\x6a\xf0\xac\x62\x9a\x7d\x81\x3e\x54\x26\x07\x4c\x69\x3f\x69\x2a\x88\x0a\xb1\x54\xa1\x56\xd7\xac\xf5\x30\x8d\xb2\x4c\xd8\xa8\xc3\x78\x96\xd1\xbf\x11\xcc\xd2\x2d\xcd\xdc\xb8\xac\xea\x5c\x5c\x96\xfd\x4c\x9a\xd1\xe7\x3a\x18\xcd\xcf\x7f\xde\x93\x41\xa3\xa1\xa3\xe1\x36\xac\x7a\xf6\x51\xe5\xb5\xa7\xee\xe0\x98\x3f\xc6\x6e\xe3\xdc\x97\x69\x61\xb8\x40\x72\xba\x42\x63\xb5\x74\x4e\x08\x0e\xb5\xa6\x91\x32\x55\x75\x7b\xd7\xb0\x65\xbe\x78\x8b\xee\x1a\x3e\x1c\x9d\x8a\xcf\x72\xa7\x2e\x66\x7c\xf8\x73\xdc\xa6\x68\x1c\xd1\x3d\x72\xbf\xfe\x81\x6f\x90\xdb\xd5\x6b\xcb\x87\xe2\xf9\xf7\xb4\xfe\xd9\xcf\xb5\xa3\x30\x8a\xc6\x7e\xce\xfa\xed\xa3\x32\xd1\xaf\x7f\xa0\x1d\x6e\x69\xab\xfa\x40\x83\x7f\x03\x31\x89\xa8\x15\x46\xab\x39\x87\x95\x84\xda\xb5\x4b\x4c\x5d\x6b\xc7\x03\x1d\x5b\x2a\x3a\x3f\x15\xa0\xdb\x0e\x66\xba\x2d\x5a\xe3\xb4\xaf\x9e\x3e\xdb\x0c\x4a\xd4\x8c\xee\xfa\x1a\xa8\xcf\xd8\xc7\xcf\x5c\xa5\xd9\x32\xde\xf0\x29\x6a\xea\x59\x57\x89\xa1\x4f\x51\x34\x1d\x2b\x84\x2d\x0b\x55\x71\x83\x48\xb0\xce\xb3\x72\x28\xd5\xff\xf7\xff\xfc\xbf\x86\x9d\x00\xa6\xf8\xa7\x30\x03\xb8\x65\xfe\x8e\x50\x73\xac\x79\x1f\x57\x9d\xa4\x33\xbe\x2a\x17\x6c\xa9\x45\x11\xeb\x9e\xb7\x3a\x9b\xda\xda\x82\x10\xbb\x5a\xb8\x2f\xd9\x3b\x20\xd0\x26\xe4\x37\x54\x5b\x0f\xec\xb9\xb3\x48\xab\x69\x4c\x6b\x7e\xd8\xc6\x66\x92\x4b\x4c\xd8\x9c\xaa\x35\x82\x55\x33\x75\xf9\xe5\x44\x2b\x53\x66\x16\x0b\xea\x4c\x74\x59\x60\xa1\xff\x10\x05\x95\xe8\xa2\x70\xd4\x46\x91\x5f\xa2\x10\x43\xa7\xf7\x15\x55\xc1\xf9\x24\x2b\xdd\x0f\xcf\x2f\x00\x2d\x77\x48\x0f\xa0\xa2\x4d\x5e\xe8\x7b\x99\xfa\xf0\x46\xa4\xb5\x48\xbb\xa4\x21\xb2\xe8\xcf\x39\x37\x46\x27\x12\x2c\xa0\xd1\xea\x3d\x8c\x64\x32\x42\xd3\x7b\x2a\xac\x28\xc6\x52\x89\x5a\xa8\x64\x2c\x80\x69\x80\xc0\x9c\x7c\x6e\xe1\xe9\x9d\x4e\x78\xb6\x8a\x89\xe4\x8b\x94\xa0\x9e\x87\xc1\x56\x2b\xb4\x3d\x56\x7b\x1d\xa1\x5e\xbb\x57\xba\x10\x42\x90\x68\x35\x90\x43\x9f\x64\xe3\xef\xa8\xbf\xcb\x5f\x18\x7f\xfd\xd4\xf8\x38\x18\x8e\x84\xa1\xc3\xd3\xf5\x49\x66\xac\x22\x9f\x48\xe7\xaa\x2d\x98\x3e\x72\x15\xc1\x03\x5a\x87\x3f\xee\x1b\x96\xea\xa4\x1c\x07\xbf\x01\x00\xba\x07\x25\x8a\x6c\xfa\x2d\x59\xf9\x6a\xac\x6d\x63\x16\xc6\x73\x0c\x23\xa9\x2f\xfc\x94\xa8\x92\xa6\x86\xec\x39\x63\x7d\x2f\x0c\xbb\xfc\x70\x7d\xfe\x7f\xb1\x24\x7a\x1b\x0d\xf2\x45\xa9\x14\x55\xaf\xc3\xf4\x93\x56\x39\xe2\xe9\x32\x8f\xc2\x31\x54\xc8\x8b\x3f\xf7\x84\x30\xda\x73\xac\x00\x3a\x5f\x5a\x71\x61\x8c\x05\xf1\x9f\x7b\x98\x53\x47\x66\xd5\x43\x20\xf2\xd1\xdb\xeb\x4d\x4c\xb2\x9c\xb9\x3e\x58\xc4\x6b\xc9\xe1\xed\xee\x53\xc6\x0d\x05\x81\x66\x72\x20\x7c\x0e\x1e\x7a\x15\xdd\x6b\x03\x13\xf2\x84\x52\x0d\x1c\x77\x61\xba\x90\x2e\xd6\xcb\x16\x1a\x6b\x25\xad\x2e\x96\x25\xe1\x79\x51\xf4\x0d\x7b\x4f\x2f\x20\x17\x4b\x9c\x62\x92\x78\x81\x0d\xa6\xeb\x7b\x9c\xe5\x06\x21\xef\xa9\xaf\x37\xe4\xa3\xfa\x8f\x12\x98\xf0\xd1\xd5\xd9\xf1\xe9\xfb\xb3\xde\x38\xfd\x6a\xa4\x1f\xba\x56\x77\x4b\x23\xba\xd2\x3e\xf7\xa9\xce\x97\x87\xf4\x56\x3a\xdb\x47\x83\xd9\x5e\x6e\x27\x7d\xf2\x57\xa1\xb5\xed\xb0\x82\x43\xe0\x33\xb0\x38\x48\x94\x2a\xb3\x0c\x97\xc8\x16\x42\x74\xe2\x18\x95\xa3\x27\x8b\x4a\xab\x06\xfa\xb4\x21\x11\x4f\xb5\xdb\x2b\x04\x57\xb8\x7b\xd6\x7a\x35\xae\xc3\x2b\x5e\xc8\x87\x20\x6c\xab\xa1\xe6\x05\xf8\x67\x1d\xbf\xfa\x68\x44\x51\xdf\x29\x61\x13\x98\xc0\x11\x40\xf8\x93\xa8\xf2\xc4\x93\x5f\x1e\x64\xf5\x5c\xd6\xa3\xe6\x02\x92\x38\x3b\x25\xcc\xf2\xd2\x8e\x84\xb2\x3e\x59\x9d\x96\x69\xe6\x8a\x82\x14\xb9\xcd\xf3\x33\x73\x99\xdc\x6e\xad\x72\xa7\x83\xee\x57\xf0\x54\x1b\xa8\xd7\x00\xda\x5a\x6d\xe8\xa8\xd4\x3d\xf7\xe6\xb7\x94\x85\x02\x65\xdf\x58\x1a\x02\x46\xb8\x63\x7f\x3b\xf6\xb7\x63\x7f\x3b\xf6\xf7\xc5\xb1\xbf\x95\x6d\x3a\x3b\x1e\xf8\x27\xe4\x81\x52\xa5\xa2\xd8\x4c\x19\x4c\xa0\x0f\x6f\xd3\x8e\x93\xa5\x3f\xe4\x42\x19\xcb\x93\xbb\x1e\x3b\x66\x27\xb5\x66\x2b\x22\x5a\xc4\x6f\xcd\xc2\xb4\x28\xc4\x90\xf2\xf9\x6b\x88\x16\xb5\x6f\xbe\x28\x60\x8a\xed\x7a\xe6\x9f\x11\x6e\xa2\x79\xfc\xc7\x13\xf3\xef\xac\x8b\x67\xa0\x9b\xa7\xd5\xf9\xff\x53\xf0\xbe\x15\x67\xdf\x82\xdd\x3d\xbf\xc6\x03\xf1\xb4\x06\xaf\xdd\x5c\x63\x7d\xce\x0b\x3e\x16\x56\x14\x40\x2f\x53\x34\xc6\x2b\x45\xa1\xe4\xee\xa2\x5f\xc3\x45\xdf\x08\x89\x81\x6e\xb9\x4c\xc3\x37\x10\xcb\x8a\x70\x3b\xfc\x63\x45\x24\xe7\x59\xce\x67\x4b\x8a\xbc\x35\x74\x05\x24\x59\x3b\x3a\xbc\xa3\xc3\x3b\x3a\xfc\x47\xa5\xc3\x1b\x88\xde\x3b\x62\xfc\xa2\x88\x31\x24\x98\x9c\x5f\x9e\x80\x27\x75\x01\x21\xae\x37\x6c\xc2\x61\xd4\x1c\xb1\x10\xff\x83\xed\xd9\xf9\x25\xeb\x73\xb7\xba\x46\x18\xc8\x5b\xf2\x78\x25\x2d\xc8\x9d\x95\x63\xa1\x4b\xdb\x0e\x84\xb1\xde\x38\xaa\x92\x4c\x8e\x6c\xf8\x35\x8c\xeb\xfc\x92\x08\x1f\x8d\xca\x58\x99\xdc\x4d\x00\x8f\xaf\x17\x05\x73\x8d\x89\x62\xde\x96\xaf\x5e\x7d\x23\x5e\xc1\xff\x7e\xfd\x3d\xfe\x17\x7f\x4c\xfe\xc7\x5f\xbe\xff\xf6\xd5\xab\x03\xa7\x1c\xbe\x66\x29\x9f\x1c\x3a\xd2\x46\x19\x94\x01\x24\xe8\x7f\xfc\x0f\x76\x1b\x56\xd0\x51\x48\xa2\x27\x55\xdc\xc5\xeb\x57\x7f\xa1\x5e\xbe\x61\x23\x5d\x16\x66\x4b\xa0\x5a\x53\xe7\x69\xd5\xf3\xa1\xc7\xb9\x56\x42\x45\x15\x42\xe7\x9f\x91\xd9\x65\x74\x43\xd9\x54\x02\xe8\xf4\x3d\xb6\x38\x01\xa2\x28\xf4\x32\xc5\x37\x0c\x8c\x41\x6b\x06\x35\x95\x11\x5f\xb3\xfa\x14\xe0\xa6\x45\x19\x80\x23\xc1\x33\x3b\x62\xc9\x48\x24\x77\xd1\x7b\x6b\x44\xa9\x8c\x85\x31\x7c\xb8\x8c\x29\xbf\xc7\x56\x33\x57\x65\xf1\x58\xa7\xcb\x93\xd7\x47\xbf\xc6\x90\x4d\xb3\xcc\xef\xac\x11\x63\x2d\x60\x1f\x3b\xb5\x60\xb4\xb5\xea\xde\xee\xe9\xed\xde\xcf\x30\xbe\xc9\xed\x9e\x93\x13\x6e\x00\x57\xcd\x89\x07\x6f\x11\x3c\xad\xc3\xa0\xd1\xc7\x50\x47\x7e\xf5\x19\xd8\xe5\x62\xd0\x0d\x81\x23\xb6\x1b\xf9\x9b\x78\xd4\xdb\x25\xd5\xf0\xfe\xf4\xea\x6f\x4c\xb8\xfd\x3c\xa6\x8b\x36\x4f\x5d\x90\x5a\x4b\x76\x80\xa9\x0c\xb5\x1f\xdf\x49\x63\x0f\x01\x78\xd4\xc4\x41\x6c\x58\x3a\x1e\x0f\x9f\x3b\x88\x71\x4e\xec\x1b\x8c\x34\x3a\xbe\x3c\x77\xf4\x2b\xad\xe5\xca\xde\xbf\xee\xbd\xfe\xeb\x7f\xdf\x25\xbe\xbe\xe4\xc4\xd7\xd6\xd5\xac\xdf\x11\x8e\x7e\xb8\x39\xd5\x9d\x32\x01\x75\x78\x5b\xa8\xfa\x73\xb9\x4e\x4b\xbf\x48\xed\x51\x2d\x8b\x30\xe7\x36\x19\x75\xc7\xa2\x18\x8a\xee\x9d\x98\x80\xcc\x50\xbf\x9a\xb3\xdf\x30\xb6\xe0\x56\x0c\xe1\x05\x78\x7b\x97\x47\xbc\xcb\x23\x7e\x71\x79\xc4\xcb\xe4\xbc\xf0\xfb\x53\x65\xd6\x36\xf9\x51\xad\xd1\xc6\x19\xb6\xd3\xdc\x6a\x01\xc3\xab\x44\x17\x9e\x65\x75\xf1\xc5\x44\x81\xdc\x9e\x9a\xf1\xb8\x58\x48\x93\x59\xfa\xaa\x21\x3b\xc6\xf7\xc5\x30\xbe\x36\x65\x64\xde\x2d\x39\x0e\x4f\xc4\xee\xae\x1b\x25\x9d\x76\x15\x64\xfe\xc4\x7c\xe8\x25\x57\x90\x89\xd7\x6a\x65\x8d\xe8\xd9\x8b\xc8\xb4\xe2\x58\xdb\xac\xe6\xeb\xaf\xb5\x1a\xc8\xe1\x7b\x9e\x2f\x54\xce\xa8\x0d\x29\x5f\xf5\x8c\x06\x80\x4c\x74\x1c\x0b\x00\x85\xd0\x08\x6a\xca\x71\xab\xc2\x31\x3b\x0e\xf3\xd9\x38\x4c\x5f\x2a\x5e\x4c\x4e\x67\x90\x83\x76\x09\x22\x95\xad\xaf\x3f\xb1\x75\x0d\x65\xfd\xf4\x91\x1f\xc3\xa0\xea\xc5\x74\x70\xb0\x0c\xc9\xc6\x19\x4f\x46\x10\x48\x04\x96\x4f\x77\xda\x88\x11\x02\x10\x86\x2a\xc7\xa2\x90\x09\x4b\x46\xbc\xe0\x89\x15\x85\xe9\xb0\xfd\xee\x7e\x87\xed\xff\xb6\xcf\x74\xc1\xf6\x7b\xfb\x3d\x16\x7f\x87\x2b\xff\x2d\xe6\x66\xc2\x30\x4d\x32\x89\x33\x53\x1c\xc9\x27\xff\xda\xc7\x9b\xb7\xdd\xbf\xb0\x82\xab\x21\x19\x61\xef\xc4\x84\xb2\x5c\x40\xb8\x8a\x7a\x86\xe1\xb9\x57\xf5\xbd\x28\x32\x9e\x63\xbe\x9e\xeb\x44\xbb\x03\x4c\x1d\x42\x53\x48\x85\xea\xe0\xd9\x95\x86\x09\x05\x8e\x99\x94\xa5\xa5\xe7\x7d\xde\xc2\x91\x17\x3a\x11\xc6\xf4\xd8\x47\x13\xb0\xb2\x31\x91\x0a\x1c\x3a\x44\xcc\xd8\xeb\xde\xeb\x57\xff\x9d\x39\x52\x0d\x87\x1d\xce\xaa\xf7\x03\xae\x9e\xdf\x3a\x8b\x69\x3c\x69\x1a\xd1\xf4\x09\x98\xa6\x39\x5b\x39\x08\x9f\xd0\x24\x08\x3b\xa3\xb4\xea\xe2\xf6\x36\xce\x01\x74\xef\xe1\xd4\xa2\x0d\x86\x75\x9f\x79\x0a\x96\xec\x3f\xb4\xa6\xfd\x6f\xf6\xb7\xd2\x29\x58\x7d\x2b\xe5\x78\x5c\x5a\x00\xfb\x5e\x4c\x71\xcf\x7d\xbb\x0e\x93\x03\x2c\x53\xa1\x99\x2d\x1c\xdd\x13\x50\xa2\x85\xae\x07\x50\xff\x6a\xe2\x90\xb9\x15\xd8\x45\xd2\x94\x96\x08\x55\x97\x24\x34\x2f\x09\xc0\x1d\x84\xea\x36\x29\x78\x5a\x0f\x43\x1a\x68\xed\xbb\x10\xe6\x09\x47\xbd\xd1\x9e\xb9\x6b\xaa\xbc\x67\x84\xdc\x16\xe8\x2c\x53\x32\xc6\xca\x61\x7d\xe1\x97\x19\xc1\x71\xd0\x99\x1c\xe6\x7a\x96\x8f\xc4\x58\x14\x3c\x9b\x89\x93\xb3\x86\x13\x73\x27\xe8\x7e\x29\x82\xee\xce\xe0\xe2\x7b\x5d\x4d\x7c\xf5\xd2\xe5\xd3\x08\xad\x67\xea\x7e\x69\x74\xce\x74\x63\x66\x44\xe6\x34\x64\xc6\x23\x5a\x65\x35\xcb\x75\x5e\x66\x9c\xf2\x9a\x85\xba\x97\x85\x56\x10\x0c\x73\xcf\x0b\xe9\xe8\x03\x32\x0a\xa8\x0d\x76\x83\x3c\xc9\x82\x77\x99\x1c\x50\x84\x56\x17\xfa\xdc\x37\x11\x77\xf7\xfc\x99\xee\xaa\xe7\x03\x5d\xbc\xee\x39\x97\x85\x61\xdc\xcc\xfe\x6c\x9b\xc2\x2c\xab\x55\x62\xa0\x70\x62\xbb\x72\xc5\x1c\xc7\xcb\xee\xa5\x78\x38\x7a\xd0\xc5\x9d\x54\xc3\xae\x5b\x91\x2e\x99\x1c\x8e\x00\x61\xf9\xe8\x2b\xf8\x9f\xd5\xaf\xad\xcf\x03\x6f\x59\x51\xe9\x61\x24\x28\x07\x20\xe6\x39\xde\x1d\x8e\x7a\x42\xeb\xc8\x93\x65\x57\xa5\xf5\x91\xfc\x45\x4c\xae\xe1\x78\xd5\x9c\xc2\x53\x73\x08\x27\xd0\xc9\x2f\x40\x9e\xa3\xc3\xd8\x62\xbf\xd1\x3b\xb0\xac\xae\x81\xeb\xdc\x6a\x3a\xef\xeb\xc0\x1b\xec\x4e\x15\x9e\x2a\x5d\x30\xc7\x22\x83\xb0\xb9\x85\x03\x36\xdb\xee\xe0\xf6\x75\x99\xd5\xa1\xf5\x59\x5c\x62\x83\xae\xb5\xf3\xb8\x11\x24\x60\x44\x71\x4e\xb1\xe1\x39\xac\xc7\xae\x18\xf9\x1f\x40\xc7\x5f\xa9\x18\x39\x66\xcb\x35\x36\x7a\xfb\x56\x64\x2f\x10\xec\xec\xc7\x3b\xb1\xba\xa5\xfd\xf8\x05\x08\xce\x2f\xdc\x48\x1c\xd3\xfb\xa7\x91\xb4\x2f\x74\x2a\xf0\x8f\xf6\x02\x77\xf3\x9d\x46\x81\xec\x3a\xdc\x50\x95\xe0\x16\x4b\xe5\x1c\xf3\x60\x21\x9c\x93\xee\xa8\x77\x8e\x5e\xd4\x62\xe1\xe6\x0b\x4a\x68\xf5\xc2\x2e\x7f\x59\x2a\x35\xfd\xd2\x68\xce\x52\x91\x64\xbc\x70\xa2\x3f\x20\x4a\x39\x09\xa0\x2e\xed\x24\x22\x8d\x4d\x1e\xba\x28\x84\xc9\x21\x92\x93\x58\x4b\xad\x4b\x6f\xc1\x32\xb6\x28\xe1\x44\x36\xb0\x90\xfc\x41\x63\x12\x71\xdb\x12\x6e\xe6\xe2\xd8\x6c\x43\x72\x23\xc2\x1f\xb4\x54\x35\x2d\xce\xd5\x26\xd8\xc4\x6e\xda\xe6\x78\xdb\xd4\x71\x09\xf5\x5e\x66\x8e\xbc\x56\xdd\xe5\x39\x87\xef\x39\x48\x3b\x51\xe7\xaa\xde\x7a\x6a\x2a\xcd\xe7\x2b\x4c\x68\xa0\x8b\xbe\x4c\x53\x01\x95\x7e\xe1\x8a\x38\xc1\xb6\x13\x03\x43\xa7\xd5\x23\x70\x2a\xad\x31\xdd\x52\x2e\xe3\xbf\x1f\xcf\x4f\xa7\xa6\xf5\xb1\x2a\xee\xfa\x99\xa7\xd2\x92\xbe\x57\x87\xb2\x79\xb3\x3a\x0b\x08\xcc\xd6\xc4\xf7\xcb\x42\xff\x2f\xcc\xff\x5f\x08\x13\xc5\xf3\x86\x29\x43\x2a\x48\x5c\xc8\xf1\xf5\x50\x6e\x71\x13\xbb\x45\x5f\x30\x92\x86\xe8\xae\x4c\xf5\xee\x48\x35\xa4\xec\xb0\xd2\x78\xe1\x2a\xb6\x73\x47\x3d\x52\x5e\x92\x6b\x8d\x35\x99\x3a\xac\x54\x99\x30\xc4\x17\x40\x20\x15\x19\xe6\x21\x41\x29\x50\x34\xcb\xa4\x68\x40\x0f\x18\x62\x63\x9e\xe7\x50\xd8\x44\x0f\xf0\x4b\x00\x5a\x67\x47\xa6\xc7\x2e\xb4\x0d\x35\xc4\xd1\xf6\x8b\x59\x13\x09\xcf\x42\x42\xd5\x40\x0e\xc7\x3c\x0f\xe5\x30\x91\xb9\xb8\x2f\xf8\xe8\x67\x9f\x86\x3c\x6e\xc7\x68\x5a\x09\xdb\xb5\x8c\xa2\x0e\x13\xe4\xc1\x88\xac\x40\x33\xd6\x6b\x11\xbf\xa9\x76\xc7\x6f\x07\xec\x7e\x94\x1b\x02\x2c\x14\xd6\xfa\x61\xa4\x0d\xc1\x4d\xd2\xd5\x74\xdc\xcc\x5d\x27\x3a\x11\xfe\x67\x18\x0d\x18\xe1\xa3\xb1\x7a\xfd\x40\xa4\xb8\xda\x0b\xbe\x1c\xde\xc2\xfd\xc0\x2b\x5b\xaa\xa9\xb7\x49\x14\xa6\x93\x05\x1f\x44\x83\x88\x34\x51\x1f\xc8\x78\xa5\x21\x60\x48\x34\x9f\x35\x7d\x0d\xb5\x82\xe1\x46\xd8\x92\x96\x06\xe3\xe6\xe9\x78\x49\xaa\x5d\x50\xdc\x89\x34\xa0\x0e\xf6\xd8\xa5\x1b\x64\xd0\xeb\x0b\x91\x71\xc0\x43\xf4\xba\x9f\xfb\xac\xf7\x10\xba\x8f\xec\xf7\x7a\xfb\x08\x68\xa0\x0b\x66\x2c\x2f\x08\x89\xd3\xfd\xbe\x65\x75\xe9\x17\x31\xb9\xd1\x71\x09\x53\xb6\x8e\xba\xb4\xb3\xe2\x4c\x59\x71\xcc\x67\xb7\x13\xb6\x2d\x85\x36\x97\xbc\x3f\x05\x51\x7f\x81\xa4\xbc\x9a\xf7\xd3\xe6\xad\x12\xb5\x6f\x51\x3d\xb7\x4a\x13\x1c\x43\x45\x2e\x77\xa4\x7c\x72\x9e\x11\x96\xe5\xa2\x18\x4b\x48\xd9\x32\x4c\x2b\x96\x00\x48\x73\x4a\x2b\xda\x0f\xd5\x03\xa3\x5c\x57\xc5\x74\x62\xbd\xd1\x89\xf5\x85\x7d\x10\x42\xb1\x57\xaf\x5e\xbd\x82\xf9\xbc\xfa\xe1\x87\x1f\x18\x24\x86\xa4\x22\x91\xe3\xe9\x86\xd0\xea\xbb\xd7\xaf\x7b\xec\xef\xc7\xef\xdf\x31\x9e\xc0\x7d\x64\x7d\xed\x68\x14\xf4\xec\x1a\xd4\x5e\x36\x1d\xf6\x3f\xaf\x3f\x5c\x54\xc5\x42\xea\x4f\x41\xcb\x0a\xd3\xab\xc3\x94\xbe\xfa\xfe\xdb\x6f\x7b\xec\x54\x16\x60\xe4\x96\xe4\x15\xa1\xb3\x01\x74\xd1\xc7\x4c\xf0\xc1\x00\x39\x03\x64\xec\x3a\xa2\x8e\xc9\xa5\x24\xe9\x8d\xe5\x70\x64\x29\x77\xd9\x31\xe4\x4c\x26\x44\x4a\xb1\xa8\x37\xde\x79\x1f\x87\x01\x7d\x55\xa7\x6d\x0c\x05\xc1\x33\x79\x27\xd8\xc0\xfc\xe4\x14\x64\x64\x33\x48\xc1\x00\x2e\x94\xdc\xc4\xd8\x59\xb5\x57\x66\x2a\x06\x62\xcd\xbc\xb5\x55\x2d\x6d\x3b\xe6\xbf\x63\xfe\x3b\xe6\xff\xe7\x66\xfe\x08\xe3\xb0\x88\xe1\xfb\x02\xd6\x3c\xcf\x33\x8f\xee\x14\xf0\x1f\xa6\x6b\xa0\x15\xa5\xf2\xf4\x97\xb7\xac\x72\xca\x8b\xe1\x32\x5a\x75\x5c\x0c\x01\x5b\x39\x18\xb1\x84\xb2\xc5\x04\x6c\xdc\x18\xf0\x94\xea\xe4\x4e\x14\x4c\x8e\xf9\x50\xec\x1b\x76\xf2\x1e\xd4\x7d\x60\x83\x72\x10\xb4\xae\x18\xca\xbd\xc7\x3e\x91\x3f\x3b\xc6\xde\xfe\x8f\x83\x4f\xc7\x57\xbf\x5d\x1c\xbf\x3f\x3b\x04\xb6\x21\xa0\x54\x95\x48\x23\xd1\x23\x4c\x7e\xbf\xe6\x1e\x27\x8a\xe1\x9d\xe4\x51\xb0\x51\x21\x8c\xce\xee\x3d\xd9\xaa\x0c\x8b\x74\x85\xa5\xca\x4b\xeb\xdd\x02\x9e\x90\x95\x2a\x19\x71\x35\x14\x14\xcf\x15\x0f\xcb\x4c\x94\xe5\x8f\x9e\x9b\x08\x93\xf0\xdc\x0b\x30\x9c\xa5\xba\x74\x1f\xff\x8f\xff\xe8\x30\x29\xde\xb0\xff\x88\x5e\xec\xb1\x33\x6a\x1b\xcd\x17\x49\x9f\xb8\x17\x05\x74\x46\xb3\xed\xb0\x42\x0c\x79\x91\x02\xa1\xd2\x83\xda\x09\x0e\x13\x04\x7c\x10\xe3\xce\xb1\xd2\x76\xa6\x2b\xa1\xdd\x95\xb5\xdc\xdc\x99\x23\xa9\xdc\x91\xed\xa6\xdc\xf2\x6e\x74\xd4\x90\x28\x89\x6e\xa2\xc7\x63\xae\xd2\x2e\xa7\x83\xd0\x0d\xbb\x70\xf4\x15\x01\x4e\x77\x79\x68\x25\x55\x97\x77\xcd\x48\x64\xd9\x73\xc3\x09\xd2\x08\x96\x1c\xe7\xb3\x70\x7a\x19\xf4\x05\x16\x02\x26\x1e\x45\x52\x7a\x61\x14\xee\x0f\x4c\x61\xe6\x01\x3f\xbb\xb8\xb9\xfa\xfb\xe5\x87\xf3\x8b\x9b\xdd\x39\xdf\x9d\xf3\xe7\x3f\xe7\x42\xdd\xb7\x4c\x07\x9a\x1d\xb8\x44\xba\x89\xaf\xff\x51\xe1\x09\x4d\x2f\xef\x76\xa5\x98\x33\x75\xff\x89\x17\x4f\x92\x1a\xab\xa6\x2a\x45\xaf\x9f\x1a\x2b\xd4\xfd\xdb\x42\x8f\x5b\xae\x31\x79\xe4\x6b\x41\x63\xb3\xd7\x7d\x7a\xc1\x43\xb8\x30\x09\x1f\x11\xf5\x41\x1b\xe4\x38\x40\x20\x9d\xfc\x76\x7e\x7a\x76\x71\x73\xfe\xf6\xfc\xec\xaa\xc7\x8e\xb3\x8c\x49\x05\x51\xc0\x75\x21\xbc\x10\x04\x8c\xc4\xa1\x1e\xa4\xb8\x77\x43\x78\x18\x89\xc6\xa7\x41\xb0\x76\x12\x2b\x68\x60\xbf\xba\xe7\x28\x70\xd3\x85\x93\x8a\x8d\xcb\xcc\xca\x3c\xf3\xe6\x50\xd3\xa9\x34\x82\xb8\xce\x4a\x08\x64\xce\xb8\xb1\x95\xe9\x34\xcb\x98\xe5\x77\x20\xd2\x27\x22\x75\x74\x20\x04\x58\xfb\xb9\x62\x65\x9d\x33\x75\x1f\xe8\x4a\x89\x57\x12\xd5\x91\xd9\x7d\x3c\xc3\x11\x75\x7b\x4f\xb6\x98\x4d\x6e\x29\x70\x8b\x65\xc5\x7f\x22\xc6\x02\xfa\xd8\xca\xa2\x76\x55\xe8\xe1\x08\x7a\x31\x73\xea\xa9\x80\xa9\x3b\xcb\xf4\x03\x1b\xc9\xa1\x23\xb3\x99\xb8\x17\x99\x77\xa7\x46\x46\x13\xab\x83\xb1\x5b\x17\x10\xae\x5e\xc8\xb4\x76\x72\xf0\x33\x52\x31\x27\xdd\x67\x9a\xa3\xd6\x88\x85\xc3\x0c\x6a\xe1\xa7\x22\xcf\xf4\x64\x4c\xb5\xfa\x53\x76\x6d\xb9\x15\x83\x32\xbb\x16\x73\x6b\xda\x2f\x8c\x5d\x71\x9f\xbc\x2c\xb3\xec\x52\x67\x32\x59\xe6\xb6\x3d\x87\xd5\xcc\xcb\x2c\x63\x39\xb4\xef\xb1\x0f\x0a\x94\x9a\xe3\xec\x81\x4f\x4c\x87\x5d\x38\x5e\xd4\x61\xe7\x83\x0b\x6d\x2f\xbd\xce\x19\x9b\x35\xb0\xa1\xe3\xea\x6f\x28\x18\xc8\xf2\x61\x4d\x19\x05\x50\x90\xb8\x03\x34\x2d\x3c\x48\x33\xf3\x90\x6e\xbc\xad\x5f\x41\x4f\x8e\x03\xe1\xdf\xab\x2f\x62\x26\x07\x22\x99\x24\xd3\xd1\xfe\xed\x41\xb4\x42\x0f\x8b\x22\x34\x8e\x93\xc8\x52\x03\x3e\xbf\xea\x70\x11\x86\x1b\x45\x62\xc1\xe5\x96\x8a\xa1\x93\xdc\x08\x4a\x18\xa3\x73\x16\xc6\x8b\x44\xcc\xcc\xbc\xfb\x73\x66\x7a\x2f\x94\x30\xe6\xb2\xd0\xfd\xf5\x67\x8b\x6f\x2f\x9a\xe9\xa5\x28\xa4\x4e\xb1\x82\x4d\xdf\x83\xb7\x84\xd1\xe3\x18\xc0\x68\x49\xbf\x55\x34\x1a\x48\xaf\x17\x1b\x05\xbd\x3f\xe0\x32\x9b\x39\xcb\x55\x0f\x8f\xbf\x97\xe6\x28\xd7\xf8\x9f\x6e\x58\xcc\xaf\xc2\x10\xbb\xf0\x55\xb3\x15\x4b\x41\x35\xef\xca\x5a\x03\xe6\xa6\xd3\x8b\xeb\xdf\xde\x1d\xff\x78\xf6\x8e\x32\x74\x22\x32\x42\x3a\x2a\xb2\xb8\x11\xbf\x77\x4c\x8e\xaa\xdf\x81\x65\xea\x20\xbc\x7b\xb8\x9c\xec\xb7\xb9\x00\x8e\x31\xb6\xcd\xa3\x86\xb6\xee\x3c\x8a\xc7\x5c\x1b\x51\x45\x77\x45\xcc\xfb\xcc\x3d\xc2\xa0\x48\xb0\x41\x03\x94\xde\x50\xde\x7b\x0c\x2f\x3c\xeb\x55\x6e\xd4\x0c\x68\x24\xd7\x4e\x09\xeb\x36\xcc\xe3\xc5\xc1\xdd\x89\x50\x1e\x9d\x7e\x61\x3a\xac\x5f\xa2\xd1\xbc\x90\x63\x5e\x48\x04\x2a\xf4\x9d\xf1\x0c\x75\x18\x5c\xfb\x49\x73\x48\xa7\x1f\xce\xae\xd9\xc5\x87\x1b\xc7\x47\xef\x85\x87\xc5\x87\xe7\x30\xad\xbe\x70\x6f\xe0\x44\xd3\x1e\x3b\x56\x13\x7c\x18\xcc\x6d\x60\xae\x83\xf0\x4f\xad\x6a\xde\xd0\xdb\xbd\x57\x3d\xf8\xbf\xdb\x3d\x37\xcf\x02\x4c\x6b\xca\x38\x7e\x11\xcf\xc0\x9f\x7b\x9e\x24\xc2\x18\xe9\xe4\xfa\xb0\x9e\x34\xfb\xa7\x67\xec\xe1\x1a\x5e\xea\xc2\x6e\x2e\x82\xba\x35\xe9\x8e\x79\xee\xe4\x4f\x53\x8b\x14\x60\x8c\x4a\x54\x57\x5f\x6b\x24\x44\xe6\x85\xb6\x3a\xd1\x59\x3c\x8a\x7f\x2e\xf9\x94\x1f\xd7\xb8\x99\x3f\xb1\x4c\x30\x9e\x3f\x92\x0d\x24\xe4\x42\xf0\x54\x7e\x6e\x12\x6b\x10\xb4\x8e\x85\xc1\xcc\xa6\xb5\x58\x14\x0a\x0e\x9c\x7f\xc3\x87\x68\x9a\x97\x4b\x80\xab\x48\xdf\x75\x17\xd7\x07\x0e\x51\x45\x09\x10\xc6\x16\xae\xf5\x89\x1e\xe7\xa5\x15\xcc\xbf\x18\x45\x44\x79\x9f\xcd\x42\x5d\x71\x0d\x19\xa7\x0a\x82\x3b\x42\x29\xc1\x69\xd7\x6e\x10\xdd\x30\xff\x48\x09\x9f\x0b\x0e\x5a\x16\xd2\x4e\xdc\xde\x8b\x47\xbb\x09\x54\x73\xad\x9f\x85\xa9\x5d\xd4\x36\x72\x4b\x09\x60\x66\x24\xd9\x78\x43\xec\xca\x6b\x82\x02\xeb\x91\x9f\x13\x4c\x5e\x3c\xda\xa3\x95\xcc\x1c\x7e\x61\x45\xd7\x9d\xbc\x6a\xfd\xa6\x7a\x9d\x0b\xb7\x57\xd8\x32\x7f\xea\xab\x7d\x1d\x7d\x86\x49\x95\x82\xe6\x17\x89\x8d\x97\x3a\x65\x23\x6e\x98\x29\x81\x6d\x0c\xca\x0c\xb8\x9e\xb4\x92\x67\xf2\x77\xaa\xfa\x18\xc9\xe3\x4a\x93\x77\x0f\xaf\x15\x59\xd6\xc8\xaa\x57\x2a\x2b\x33\x7f\x86\xb1\x62\x65\xbd\x67\xaa\x21\x09\x2c\x36\xd0\x82\x4e\x18\xc8\x94\xe8\xd6\x61\xff\x0b\x10\x97\x03\x09\xa9\x09\x9d\xf0\x3a\xda\xd5\xdc\x17\xd1\x8a\xe6\xfd\xc2\x64\x1c\x64\xa9\x1c\xa0\x7f\x85\x3e\x19\x61\xc8\xd2\x12\xf4\xc5\x50\x62\x3d\x3f\x40\xa2\xbc\xd4\xe9\xbe\xa9\xe4\xe2\x0e\xea\xf5\xd2\x92\xf3\x14\xc4\x69\xce\x32\xad\x86\x90\xfe\xea\xbe\x05\xea\x19\xe4\xd5\xea\x82\x3d\xf0\x62\xec\x18\x33\x4f\x46\x90\x42\xcb\x95\x4f\x27\x36\x56\xf0\x74\xd2\x35\x4e\x4d\xf3\x30\xca\x5a\x55\xc3\xff\xfc\xf4\xd0\xd8\x54\x2e\x0b\xa5\xfc\x35\x58\x10\x63\x52\xe5\xef\xa4\xd3\x7e\xc1\xb8\xc0\x59\xbf\x74\x2b\x8f\x65\x22\x5d\xbf\x53\x96\x19\x77\x81\x31\x83\xf8\xbc\x6e\xd8\x35\xc2\x76\x80\xe1\x50\xc0\xff\x9c\xd7\xe1\xb8\x70\x54\x22\xc9\x01\x2d\x15\x3b\xfb\xf0\xb6\x42\x52\x75\x4a\x3a\xcf\xcc\x5a\xa9\xc4\xf0\xd5\x0f\x6a\x69\x80\xec\xaf\x91\x49\x75\x6a\x6e\x21\x1f\x26\xd3\x94\xce\x8e\x93\x49\x46\x5c\x29\x91\x31\x3e\xb0\x4e\x4c\xb7\x70\x09\xfb\x42\x28\x77\x30\xbc\xdd\x26\x38\xa6\xac\xe5\xc9\x88\x2c\x48\xb4\x18\x06\x72\xb4\xa3\x1e\x8d\x2d\x04\x1f\xfb\xa4\xc7\x31\x97\xd8\x15\xe3\x49\xa1\x8d\xa9\x0c\x4d\xd8\x99\xc7\xb8\x35\x78\xc1\xfd\x54\x19\x86\x0c\x54\x29\xe0\xe1\x6b\x34\xac\x9a\x6b\x0c\x6e\x69\x27\x14\x3c\x09\xf7\x5f\xb0\x81\x2c\x8c\xf5\x79\x19\xf8\x45\x32\x89\xba\xfe\x42\xdc\x80\xa2\x91\x1a\x1a\xaa\x4a\x43\x28\x05\x5c\xa7\xaa\x43\xea\x2a\x95\x86\x24\x78\xd3\x71\xf7\x17\xa5\x67\x5c\x68\x3f\x52\x58\xea\xd4\x17\xf2\x84\xde\xe9\xa7\xa8\xbb\xd8\x44\x17\xc8\x4d\x75\x10\x07\x19\x5a\x22\xe0\xf0\x74\x6a\x72\x36\x21\x01\x78\x22\x3a\x75\x4c\x23\x3b\x7c\x21\x12\x81\xae\xed\xd9\xa7\x72\x8d\x43\x89\x85\x95\x81\x70\x10\x7a\xec\xe5\x2a\xe5\x9d\x2e\x21\x58\x24\xac\x9b\x0f\xed\xb0\x3a\xfa\x25\xf6\x8a\x44\x9f\x63\x84\x69\x1b\xa8\xf4\x43\x21\xad\x15\xb0\xe4\xbe\x52\x54\x08\x49\x88\xfb\xa8\x60\xe5\x7b\xcc\x23\xde\x46\xef\x4a\x65\x05\xf8\x65\x10\x0b\xbe\x5f\x48\x31\x60\x03\xe9\x54\x39\x04\x45\xed\x38\x16\x32\x22\x53\x2b\x37\x46\x14\x30\x1c\x47\xfc\xcb\x42\xf8\x61\xf5\xd8\xaf\x34\x2e\x5b\x94\x0a\xa1\xd7\x08\xb6\x5e\xe9\x54\x38\x06\x32\x84\xb8\x20\x2a\x61\xf5\xed\xab\xbf\x7e\x0f\xb0\x13\x06\x0d\xc4\x56\x5b\x9e\x85\x39\x66\x42\x0d\xdd\x4a\xe1\xdd\x81\x38\xf5\x60\x2b\x0a\x0b\x90\xc9\xb1\x24\xd4\x83\xd7\x5f\xdf\xf5\xeb\xc6\xad\xa3\x54\xdc\x1f\x45\xcb\xd7\xcd\xf4\x70\x3b\x1a\xf6\x8c\x23\xd0\xca\x60\x47\xcc\x9f\x8d\xf4\x03\xc6\xab\xcd\xd8\x5b\xa2\x56\x8e\x4f\xfa\xc0\xb1\x1e\x54\x7c\xc3\x49\x7b\x48\x8e\x5a\xe8\xdb\xcc\x13\x39\x95\xdd\x5d\xa3\x1a\xb6\x34\xe1\x93\x5a\x61\xd8\x14\xc9\x09\x70\x6f\x69\x6f\x7b\xec\x2d\xcf\xb2\x3e\x4f\xee\x6e\xf4\x3b\x3d\x34\x1f\xd4\x19\xc4\x97\xd4\xc6\x02\x16\xf1\x64\x54\xaa\xbb\x86\x6d\x48\x0f\x99\x2e\x6d\xee\x54\xfa\xc1\xdc\x09\x0f\xa8\x64\x16\x12\x30\x1f\xce\x54\xf5\x22\x1e\x65\xb0\xbf\x73\x02\x93\xc6\x03\x13\xf7\x6f\xe2\xb3\xf0\xf5\xab\x6f\x11\xd0\x04\x3c\x6a\x7f\x79\xc5\x32\xa7\x37\x75\xf0\x86\x09\x2a\x43\x6f\xc6\x3c\xcb\x9c\x84\x1f\x9f\x19\xb7\xd0\x5b\x3a\x23\x76\xd9\x71\x68\xcd\xc6\x6f\x6e\xfe\x0e\x3c\x5c\x5a\x23\xb2\x41\x07\xcb\x5f\x84\x20\xb6\x7d\x20\x7a\xfb\x74\x79\x1d\xcf\xd8\x0e\xf3\xc5\xd0\xa2\x53\xe1\x34\xc9\x65\xe6\xa4\x5a\xdb\x66\x62\x65\x3f\xd3\xc9\x1d\x4b\xe9\x21\x0e\x13\x64\x44\x22\x0e\x95\xb2\xb5\x5d\x4b\xc8\xa7\x68\x50\x4f\xe2\x8b\xc3\x29\x01\xf5\xdf\x92\xbd\xe1\x3e\xaa\x3e\xb1\x64\xc9\x9d\xb4\xee\xa3\x43\x7d\x29\x91\xe5\xd4\xff\xa9\xad\x4f\x51\xf9\x8c\x27\x59\x72\x98\xe6\x36\x57\x9c\x22\xb7\x4e\x65\x0b\x38\xfb\xb0\xa2\xf4\x12\x4b\x29\x1e\x74\x52\x81\xf7\xd4\xc3\x07\xa7\x84\xd1\x7d\x13\x8c\x8a\x21\x3a\xc1\xb8\xd6\xc8\xfc\x43\x74\x68\x50\x6d\xd3\x69\xa1\x1b\x1c\x23\x1b\x10\xa9\xa9\x88\xae\xf9\x89\x40\xdb\xc8\xeb\xc1\x51\x9f\x37\xbc\x84\x53\x1e\x42\xf8\xb3\x5f\x37\xa8\xa2\x6b\x71\x69\x6c\x17\x46\xd8\xb5\xc8\xa1\x73\x14\xc7\x4b\x59\x4e\xee\x01\x07\x9a\x34\x0c\x00\xef\x7b\x4c\xf4\x86\x3d\xf6\x8f\xdb\x3d\x37\x89\x61\x52\x38\xfd\x6e\x34\xc9\x45\xe1\xce\xd6\x9b\xfb\xd7\xbd\x57\xbd\x1f\x10\x30\x1f\xe3\x64\x46\x65\xdf\x35\x19\x6a\x3d\xcc\xc4\x6f\x91\x27\x6b\xfa\xa5\x7f\x3e\x77\xe8\x84\x91\xbf\x8b\x1f\x1d\x03\x6c\x01\x98\xe1\xda\x7a\x07\x07\x2d\x89\x22\xb9\x6c\x41\xc8\xf0\xf7\xdf\xae\x5d\xea\x62\x41\xe2\xd9\xf6\x0e\x1c\x98\x81\x17\x26\xec\x56\xed\xe2\xaa\x29\x3c\x38\x2a\xc0\x39\x80\x41\x0a\xa8\x04\xce\x60\x54\x73\xcf\x64\x32\x67\x1c\x33\xcf\x66\x39\xee\x8b\xc2\xbb\x63\x22\x6f\x0c\xb9\x21\x72\xb0\x87\x9c\x5f\x7a\xdf\x83\x0f\x25\x0f\x31\x13\x18\x1f\x01\x2f\x2b\xe8\xab\xc3\x5e\x51\x19\x14\xf6\xe8\xff\xf1\xfd\x77\xdf\x7d\xf3\xfd\xd6\x83\xc0\x47\xda\xd8\xf3\xcb\xa5\x92\x0e\xb7\x58\xba\xea\xfc\x12\x04\x00\x49\x52\x9e\x78\x24\xe8\x09\x9a\xf8\x1a\x72\x96\xeb\x76\x0b\x6b\xec\xba\x99\x0e\x00\x5f\x77\x95\x5d\x47\x3f\x6b\x63\x2f\xe8\x28\xd5\x3d\xea\x55\xbf\x63\xc7\xaa\x58\xed\x2c\xf6\xd8\x7b\x6d\x6c\xac\xec\x50\xb5\x66\x25\x9c\x70\x3b\x92\x0b\x6f\xe5\x5a\x7b\xd8\xc2\x09\xba\x68\x61\x14\x3b\x3f\xbe\x38\xfe\xed\xfa\xd3\x09\xc4\xc6\x51\xec\x3b\x38\x38\xe3\x24\x09\x9d\x92\x6f\xd4\x7d\x2e\x8d\x6e\xd7\x02\xe7\x68\x8f\x81\xf7\xd5\xa7\xbf\xe3\xd6\xb9\xc3\x44\xa6\x46\x08\xbe\xf3\x55\xcc\x26\xde\xef\xb1\x4e\xe8\x45\xf0\x55\x2d\x91\xba\xa8\x19\x81\xbf\x16\x51\x46\xcb\xc7\xd3\xcb\x0e\xbb\x39\xb9\x84\x88\x89\xeb\x93\x9b\xcb\xba\x66\x71\xbb\x77\x73\x72\xd9\xbe\xa8\x4a\x4b\xa2\x99\xcc\xf2\xf6\x6d\x4e\x3c\x21\x8e\xa5\x0d\xf5\x84\x86\x04\x91\xeb\x76\x92\xdc\x9e\x64\x60\x1d\xc4\x8e\x14\xa8\xb4\xa6\x31\x40\x45\x5a\xa7\x7d\xba\x3b\x84\xf8\x22\xfd\x28\x85\x82\x64\x29\xe5\x79\xd2\x78\xea\xf6\x54\x8e\x59\xd7\x4a\x1a\x56\x1f\xce\xaf\x5c\xda\x76\xf9\x4f\x14\xec\xb8\xb6\xf1\xbf\xfe\xdd\x2b\xea\x6d\x91\x33\xe0\x54\x58\x2e\x33\x13\x2a\x06\xd1\x08\xaa\x75\x5a\x6c\x70\x10\x53\x41\xbf\x6b\x8e\xf5\xa6\xea\x70\x95\xe1\x56\xe3\x58\x36\xe2\x07\xdc\x84\x2d\x0d\x97\xb6\x74\xa5\xb1\xd2\x08\x66\x0e\x74\xea\x76\x6d\x74\x51\xae\xa6\x8e\xd1\xe2\xfb\x42\xed\x09\x7d\x8a\xfe\x08\x57\x86\xaf\x24\x67\x90\xdd\xf4\x78\x65\x7f\xe0\x02\x80\x9a\x1b\xd9\x8c\x31\x6d\x4a\x8d\x72\x2c\xea\x36\xcc\xc8\x25\xc0\x0d\x1a\x84\x0e\x0a\xd1\x3d\xa4\xe1\x3d\xd9\xd2\xdf\xcc\xba\x18\x8b\x57\xbf\x7a\x05\x37\x20\x3a\xd3\x6b\xee\x41\x68\xbb\xb4\xb2\x61\xac\x44\x9e\x9f\x7a\xd5\x0e\x39\x38\xdb\x47\xb5\xe2\xcd\xd1\x11\xca\x12\xa1\xdb\xdf\x64\x8a\x85\xee\xf6\x57\xe7\x6b\xe2\x51\xda\x93\xe5\xf9\x9d\x67\x8f\xd2\x7a\xb3\x60\x88\x59\x81\x6d\x8c\x4d\x76\xcd\x28\xa8\x6d\x0b\x22\xee\x9c\x9a\xd1\x4b\x3a\xcd\xb5\x25\xa8\x9d\xe3\x68\xd8\xab\x95\x9a\xc3\x6c\x00\x9f\x00\xb1\xe2\x1a\xb7\x2c\xa2\x6a\x96\xc2\xb1\x1c\x80\x95\xff\x90\x61\xe3\xb5\xf7\xbc\x55\x59\x3b\x39\x6c\x91\xc7\x06\x8d\x3e\xe3\xd9\x7b\x01\x84\x34\x2f\xc4\xbd\xd4\xa5\x21\x77\xfe\xac\x59\xb3\x16\x04\x75\xb6\xa4\x18\x08\xc1\x76\x85\xc4\x5f\xa7\xf8\xfc\x62\xea\x4b\xed\x91\xf4\x7a\x16\xbd\x26\xdd\x5d\xf7\xde\x3d\x8c\x26\xd3\x2e\x48\xa7\x62\x4d\x84\xf5\xfc\x78\x2d\x3c\xa4\xd5\xef\xdd\xb6\x86\xb1\x55\xae\xba\xa4\x6a\x61\xad\x65\x85\x6f\x96\x92\xfc\x15\x0a\x39\x95\x05\x04\x7d\x98\xa8\x60\x65\x2d\xb4\xea\x25\x31\xd6\x75\x83\xf5\x5b\x98\xd7\xd0\xa4\x36\xed\xf2\xa6\x0d\xde\x38\x62\x7e\xcd\x91\x2f\x5d\xd2\x73\x6c\x35\x45\x82\xf6\xc9\x70\xba\xc6\x92\x39\xa2\xde\x54\x2d\xd9\x06\x6a\xc1\x0a\xfa\x40\x73\x0a\x53\xfc\x25\x94\x22\x9b\x13\x6c\xdf\xc2\x48\xd2\xb0\xca\xad\x1f\x13\xbe\x1d\x0f\x64\x21\x78\xba\xcc\x07\x79\x1d\xca\x31\x3f\xcc\x8c\xa1\x19\x71\xc3\x72\x6e\x20\xf5\x13\x70\x3d\x29\x04\x15\x43\xb9\xd6\x71\x2b\x52\xa8\xc7\x09\xb8\x88\x96\xdf\x1e\x15\xec\x76\x56\x8e\x85\x99\x31\x3c\x08\xd9\x89\xe2\xd5\x88\xee\x64\x13\x2a\x70\x4d\x54\xb6\xea\x28\x15\x3c\x8d\xed\x6b\x60\x50\x82\x4d\xf0\xc4\x97\xba\x84\x88\xda\x59\xc0\x5a\x09\xcf\x12\xc2\x74\x01\x81\xa5\xd1\x63\x8f\xfd\x08\x27\x4e\x1b\x11\x7f\x87\x17\x82\x99\x12\x81\x56\xad\x66\x43\x5e\xf4\x1d\x65\x48\x74\x96\x61\x3c\x3c\xd9\x75\x31\xf5\x0c\xdc\x43\x43\x61\x59\xc2\xf3\x1c\xeb\x3d\x7c\xc7\xfa\x13\xf6\xd3\xc9\xd6\xed\x7f\x5e\xa6\xd8\xea\x51\xa1\xe8\x4a\x3a\x28\xec\xbc\x0a\x68\x04\xa8\x1d\x8c\xea\xe9\x8b\x44\xc3\xae\x16\xa5\xa0\x40\x2c\x53\x0b\x97\x34\x58\xe2\x24\x15\x85\x53\xcf\x42\x1c\x63\x8f\x5d\x09\x23\xe2\xb2\xff\xb3\x53\xff\xa2\x63\xa1\x0b\x26\x07\xbe\x1e\x0c\xcb\xb4\x11\x86\xe4\x0e\x2b\xc6\xb9\x2e\x20\xdb\xa0\xc7\xce\x8d\x8f\x67\x83\x31\x41\xb7\x4a\x4f\x8d\x8a\x72\xfb\xd6\x0b\x6a\x7b\x11\x04\xd0\xb3\xe7\x99\x74\xaf\xa5\x4c\xd9\x84\x05\x44\x8a\x33\xef\xb2\x4f\xf1\xce\x19\x2c\x69\x53\xe1\xf4\x94\x8b\xb1\x56\x67\x14\xf7\xbe\xc8\xdf\x58\x6b\x58\x49\x31\xb3\xca\x7a\x93\xfb\x07\x5f\x09\x41\xf5\x2d\xe4\x97\x16\x7e\x89\xcb\xca\x9d\xe0\x39\xed\x50\xde\x8b\x59\x9f\xd9\xe4\xb6\xb7\xdc\xd0\xad\x58\x91\x4f\xf5\x83\x7a\xe0\x45\x7a\x7c\x79\xde\x0a\xcd\xf1\xaa\x72\xbe\xa5\xf4\x2a\x16\xf1\x54\x03\x8d\x76\x76\xea\xc5\xa9\x0d\x73\x60\x1e\x97\xa3\x1f\xa6\xd5\xa8\x9e\x19\xff\xd0\x83\x8d\x57\x98\xf2\xd1\x0a\x61\xc0\x04\xc4\x68\x6c\x37\x12\x63\xea\x1b\x6f\xdd\x27\xa2\xce\xda\xf9\x94\x37\x55\x2c\x66\x0f\x63\xc1\xbd\x9c\xd5\x3e\xf6\xcf\x36\x20\x94\x11\x69\xac\x8a\xa3\x8c\x30\xfc\x7d\xae\x02\xe4\x08\x2f\xdf\x4b\x68\x76\x05\xab\xbb\x1e\x69\xc6\x72\x39\x6f\x5d\x37\xa1\x1a\xc6\x22\xfa\x4c\x09\x2b\xe9\x1b\x56\x55\xc6\xa8\xe1\x5f\xe5\x3a\x7d\xc3\xa0\x78\x14\x48\x83\x30\x67\xd3\x61\x00\xf0\x66\x3a\x98\x3d\xc8\x55\xca\x2a\x14\x60\x14\x31\x72\x4c\x8d\x9f\x23\xc8\x8e\xb7\x8e\xf6\x46\x05\xd9\x32\xd1\x89\x9d\x82\x2f\x1d\xde\x6d\x76\xc4\x0e\x91\x86\x08\x19\xaf\x16\xa8\xf3\xe5\xa1\xb8\xe5\xcb\x83\x97\xab\x83\x0a\x71\xa5\xd2\x30\x1a\x2b\xe1\x86\x01\x34\x58\x0c\xa2\xed\x23\x9a\xfb\xc2\x23\x01\x92\x9b\x94\x74\x1a\xde\x37\x3a\x2b\xad\x70\x27\x60\x26\xd0\x58\xe5\x55\x2d\xed\xa0\xfb\x17\x26\x54\xa2\x53\x8f\xdf\x82\x91\xed\x8e\x3e\x56\x00\x5e\xf1\x48\x42\x0d\xba\x06\x54\xd9\xfa\x08\xd7\x6f\x37\x25\x0d\x57\x71\x47\xad\x88\x43\x45\x12\x42\xa1\x86\xa6\x22\x4e\xb4\x21\x64\x90\x61\x04\xac\x09\x58\xd1\x50\x80\xe1\x00\x7f\xec\x25\x79\xd9\xa1\x06\xbd\xb1\x18\xeb\x62\xd2\x09\x8d\xdc\xc3\xda\x5b\xd4\x02\x51\x7b\x2a\x7d\x6a\x26\x65\x69\x29\x59\xe4\x11\xa6\xdb\x36\x24\x8b\x96\x50\xa2\x73\xde\xa8\x07\xfc\xd0\x9d\x8f\x58\xc7\x94\x1c\xd2\x0b\x3c\x9b\x55\x02\xc4\xcb\x84\xe5\xb4\x1a\x02\xb3\xdb\xa1\x70\xb2\x1d\xb0\xe7\x0e\xd8\xb3\x49\xf6\xd6\x94\x6a\xd3\xe9\x1b\xf2\xe5\xca\xb5\x67\xe3\xdc\x4e\x4e\x65\xd1\x92\x0e\x45\x3a\x0e\x57\x94\xea\x10\xa2\x87\xe1\x7c\x72\x8a\x90\x6a\x3c\x7a\x5a\x4a\x33\x16\xa9\x2c\x97\x01\x40\x41\xf4\x9e\x5b\x1e\x40\x81\xb2\xba\xe0\x43\xc1\xf0\xcd\x90\xad\xc2\x93\x3b\xbc\x14\x51\x48\xf4\x4d\xa4\x4f\x49\xc3\x6e\xf7\x6e\xf7\x7c\x98\xb3\xe0\x2a\x10\x2a\x9f\x1f\x14\x85\x46\x63\xe7\x35\x9a\x82\x4b\x46\xc0\x6e\x07\xd4\xf0\xd0\x11\x92\xf7\xc0\xab\x56\xb6\xa3\xd3\x44\x8e\x68\x81\xbf\x82\x0f\xa4\x72\x2d\xff\xe6\xef\xe2\x9d\xe3\xac\x1b\x7b\x0e\x7b\x9e\x97\xf7\xfe\xb3\xe4\xca\x4a\x3b\x59\xec\x3d\x84\x84\x29\x8e\xa1\xff\x7a\xc0\x32\x9d\x40\xca\x16\xee\x50\x48\x6a\x47\x87\x8c\x34\xcc\x9f\xd9\xa0\x34\x87\xe8\x5f\x10\x0c\xe0\x36\x67\x46\x7b\x14\x4e\xc0\xaf\x70\x94\x13\x16\x38\x6c\xca\x0d\x40\xdd\x3c\xca\x71\x39\x66\xa5\xcf\x1f\xaa\xb5\xa9\x3e\xf4\xe0\x73\x99\x00\x1f\x47\x2a\x78\xa9\x4e\xef\xdd\x93\x6b\xbf\x82\x11\xac\x0a\x40\x7a\x78\x1a\x68\x4a\x90\xf5\xe8\x2b\x24\xe7\x40\xd1\xe3\x5a\x5a\x58\xc0\x03\x6d\x9e\x3d\x25\xb3\xfa\xd1\xf3\xc9\xd7\x61\xe2\xa5\xf2\x26\xbd\xe6\x41\x9a\x7d\x8e\x4a\x23\x8a\xee\xb0\x94\xe9\x8c\x13\xb4\x45\x2a\x43\x46\xa0\x63\x0c\xfc\x5d\x40\x60\x1a\x2d\x29\xb4\xa5\xcc\x33\xb2\x8a\xa4\x14\x5f\x6f\xbc\x35\x2b\x0a\x27\x5e\x4e\x27\x46\xda\xd8\x56\x0e\x10\x01\x61\xaf\x95\x2e\x00\x25\x9d\xc9\x18\xb7\xba\x9f\x2a\x6f\xf1\xbd\xf3\xcb\xa9\x2f\xf5\xd8\x7b\x42\x31\xee\x0b\x96\x69\x9d\x03\x79\x3a\x78\xfd\xf5\x0f\x88\xe2\x72\xf4\x97\x43\xc7\x6c\xd5\x5d\x17\x6f\xcc\xc1\xeb\xef\xff\xda\xfb\xfa\xbb\x6f\xe1\xd9\xeb\xef\x0f\xc1\x58\x1c\x3d\x87\xc4\xdd\x04\x62\x9a\x0e\xbe\xfe\xfa\x5b\xea\xe4\xeb\x6f\x0f\x7b\xec\xfc\xf2\xfe\xfb\xea\xde\x80\xa8\xe2\x24\x84\x12\x15\x10\xcc\xe5\x0f\x62\xb3\xbb\x28\xee\xc4\xe6\x19\xb7\x8e\x4b\x9b\x1e\x3b\xce\x8c\xee\xb0\x44\x14\xa0\x03\x55\xe7\x0c\xb2\xf7\xb5\x72\x0c\x83\xe4\x02\xf7\xac\x9b\x17\xfa\x71\xd2\x09\x22\x09\x7c\x1d\x8c\xae\xeb\x54\x1f\xd2\xa9\xb8\x58\xbe\xa7\x95\x80\x78\xe1\x84\x0e\x77\x12\x42\x11\xf6\x6a\xc1\x67\xe5\xff\xa7\x02\xfd\x6b\x31\x0e\x09\x2e\x28\x18\xe4\x54\xcd\xc4\xd6\x7a\xd8\x88\xf1\xbf\xb9\x9d\xe6\xca\xe3\x76\x2e\xb1\xd1\x78\x80\x51\xab\x7d\x91\x3c\xc4\x35\xf0\x16\xa6\xca\x4e\xbb\xb2\x4e\x24\xf3\x8d\x35\x22\x7f\xed\x97\x64\x3b\xc4\xcd\x16\x90\x86\x60\xea\x86\xc8\xe6\x36\x75\x2e\xf3\xcb\x76\x71\xd3\xee\xa6\xc6\xe0\xce\x79\x1c\x47\x8d\x70\x14\x10\x4c\x1d\x81\xfa\x0d\x74\x96\xe9\x07\x70\xd2\x60\x79\xe9\x5f\xaa\xdb\x01\x22\x0e\x81\xb7\xf6\xd8\x47\xd5\xcd\x0b\x31\x90\x8f\x82\x6c\x61\x70\x41\x9c\xbc\x55\xdc\x13\xff\x3b\x3f\xbe\x38\xae\x7a\xf2\xf8\x38\xd8\xf8\x80\x1b\xa7\xe6\xb0\xab\xb7\x27\xdd\xef\xbf\xf9\xe6\x3b\xe0\x3a\x44\xf9\x1f\x1e\x1e\x7a\x92\x2b\xde\xd3\xc5\xf0\x88\x1b\x23\x87\x00\x76\x69\x8e\xa8\x8b\x2e\x74\x71\xd8\x63\x17\x5a\x75\x43\xff\x7e\x76\xa1\x16\xa7\x93\x73\x1a\x43\xf4\x19\xd5\xe3\x89\xbb\xea\x5c\x4d\x7a\x89\x1e\x1f\x8d\x27\xdd\xa4\x34\x56\x8f\xbb\xbe\x8f\x39\xa5\xdc\x61\xe7\xa4\x61\xc3\x92\x17\x69\x95\x4b\x79\x8d\xc3\x3a\xae\x36\xa6\x56\xcf\x1d\xa6\x16\x55\x81\xf7\xda\xdb\x93\xd4\x5a\x03\xf7\x6d\xcc\x09\x70\x8b\xa3\xe4\x15\x4c\x7f\x00\xcb\x8f\x6b\xb8\xef\xe1\x1c\xbd\x27\xcf\x97\x95\x73\x77\x8d\x66\x76\x59\x8b\xb9\xaf\x39\xd9\x3d\xa5\x42\xb3\x88\x1c\x40\x74\x78\x4e\x27\x7e\xb1\xc3\x6e\x19\x9c\x5a\x8b\x99\xe6\xd3\x8e\x9c\xed\xba\x70\x56\x4f\x56\x20\xf6\x38\xef\xae\x2d\x4f\x5c\x70\x0b\x77\x73\x72\xb9\xe5\x9c\x85\x7c\x1b\x4e\x26\x4f\xd1\xae\xcb\xbe\x11\x6d\x48\x1f\x36\xc4\x7b\x04\xb5\x25\x41\x7e\x44\x09\x88\xb4\x7e\x08\x3f\x1b\x8f\xb5\x02\xcb\x87\x47\xc7\x43\x61\x32\x60\x57\xd3\xa3\x08\x5a\x0b\x83\x12\x4e\x78\x61\x85\x91\x1c\x68\x5b\x5a\x26\xd0\xea\x38\xf4\xff\xc8\x2e\xb1\xb3\xb7\xba\x60\xe2\x91\x8f\xf3\x4c\x74\xd0\xd5\xf7\xe6\x56\x31\xf6\xbf\xdd\x7f\x58\xf5\xc2\x1b\xf6\x8f\xff\x7d\xbb\x27\xf3\xdb\xbd\x37\xec\x76\xef\xf5\xab\x9e\xfb\xff\xde\xeb\xdb\xbd\xff\xea\xb0\xa9\x07\x5f\xf7\xbe\xbe\xdd\xfb\xaf\x7f\x76\xb0\x0f\xf8\xd0\x1b\x58\x0c\xd7\x87\xbb\x59\xd8\x98\x63\xf6\xa2\x9b\x95\xfb\xe1\x2f\xdf\xff\xf0\x1d\xf6\x56\x35\xe9\xd7\x9b\x7c\xf3\xea\xaf\xff\xf5\x4f\xd7\xeb\x7f\x61\xc1\x1d\xb4\x45\x40\xc8\x5e\x73\x19\x88\xf9\xdf\x4b\xf1\x00\x2e\xfe\x37\x38\x18\xfe\x86\xfd\x83\x85\xe1\xbf\x71\xdf\xec\xb0\x30\x6a\xf8\x9b\xf9\x81\xf7\xeb\x6d\xbf\x79\xf5\xd7\xb8\xe9\x37\xaf\xfe\xca\xfe\xd9\x82\x27\xf9\x15\x5c\x66\xc0\xb8\x8c\x77\x1f\x74\x03\x3d\x18\x50\x54\x03\x18\x94\x29\x49\xc9\x9b\x6c\x0a\xe1\x0b\x69\x70\x43\x42\x97\x3b\x19\x26\x16\x6f\x2a\xf0\x86\x38\x6c\x81\x0f\x50\x91\x02\x90\xa2\x3e\xcf\xb8\x4a\x20\x1e\x44\xa5\x04\xaa\x82\xba\xb0\x95\x99\xfc\xbd\x29\x12\x6d\x8e\xf3\x5b\xd7\x20\x56\x36\x94\xd4\x24\x46\x7b\xe5\xe6\x7d\xbc\xfd\x25\x76\x12\xb3\x97\x6a\x2b\x83\x73\x63\xbd\x59\x5f\x24\x9c\x4c\x06\x93\x7a\xc4\x8e\x8f\x1c\x0f\x60\xcf\x1d\x7c\x5e\x88\x04\xbb\x42\xa0\x2a\x30\xa7\xfb\x10\xa6\x64\x24\x92\x3b\x20\x7a\x73\x9a\x7a\xa8\x2b\x6c\xf9\x82\x37\xa6\x0d\xe2\x67\x14\x68\x60\x18\xbf\xe7\x32\x03\x05\x9f\xa2\xa3\xfc\x6e\xc4\x5b\xf6\x44\x13\x5e\x05\x97\x72\xfb\x9a\x74\x1b\x1d\x9a\xa4\xad\x2a\x30\xab\x4e\xe9\x50\xf4\x72\x04\x1c\x81\xa4\x9d\x68\x9b\xd8\x92\x67\x5e\xae\xec\xb1\x33\x24\xf0\x40\x03\x9d\x8e\xe5\x48\xeb\x78\x62\xee\x93\xdb\x3d\xa0\x75\xc8\x8c\x1c\x91\x47\xca\x47\xd4\x7f\x3b\xf4\x3f\x70\x80\xad\x51\x7f\xb7\xb2\xab\x0c\xf4\x9b\xde\x37\x2b\x8f\xe7\xaf\xdf\x2c\x19\xcd\x0f\xdf\xd7\x06\xd3\x86\x15\xec\xca\xf0\x7f\xb6\x32\xfc\xbb\x72\xf5\x5f\x4a\xb9\x7a\x34\x97\x2c\x2d\x58\x7f\xed\x95\x5f\xdc\x9b\x7d\x53\xd5\x40\x7e\xea\x15\x9b\x51\xcc\x3e\x36\xcf\x23\xad\x6d\x03\x84\x81\x32\x2d\xcf\xb2\x69\xf1\xbe\x54\xfe\xa6\x67\x19\xa3\x2e\x7b\x91\x7c\xef\x84\x97\x3c\xe3\x89\x87\x60\xa3\x26\x8c\x27\x89\xa6\x6c\x2f\xbc\xed\xe7\x97\x06\xe5\x17\x33\xe2\x85\xe8\xb1\xaa\xf6\x15\x59\x6e\x41\x13\x09\x58\x81\xc0\xda\x3b\xcc\x68\xd4\xa3\x51\x8a\x42\xf3\x86\x93\x88\x1c\x91\x98\x7e\xe6\xce\xef\x41\x4d\x58\x4a\x5c\x1b\x8c\x55\x0e\x68\x9c\x95\xe1\xfc\xd0\x63\x16\x7a\x04\x47\xe0\x69\x34\x1e\x84\xcd\x4e\xa5\xc9\x33\x3e\x41\x3c\x9a\xaa\x0f\x3f\x4d\x9f\xf4\x11\x61\x7d\xa2\xba\x73\xa1\xa3\x89\x65\x19\xe3\x79\x2e\x38\x44\xc0\x83\x43\x37\x5a\x40\x95\xb2\x8b\xa6\x80\xe9\xc7\x62\xf8\x58\xd0\xb7\xdc\x4d\x27\xe3\x7f\xed\xdd\x48\x54\x4f\xf4\x38\x2f\xa4\x11\x8e\xb2\x10\x47\x7e\x1a\x51\x86\x94\xcf\xad\x0b\x33\xe1\xf7\x1a\xae\x11\x68\xad\x5d\x62\x4a\x5d\x22\xb0\x95\x5e\x5d\x3b\xdd\xd0\xd6\xf5\x58\x9f\x38\xbd\x54\x49\x3a\xf5\xc7\xf7\x81\x5b\xee\xdd\xbf\x9e\x1e\xef\x3f\x5b\x0b\x59\xef\xa4\x69\xa3\x93\x43\xbb\xba\x13\x39\x5c\xbc\x56\xe6\xc7\x1d\x7f\xff\x5c\xfc\xbd\x4d\x8c\xc0\xbb\xf9\x7b\xba\xd5\x6b\xb8\x99\xf2\xb4\x93\x54\xbe\x14\x49\xc5\x9d\xb7\xf6\x72\x0a\x50\x9c\x67\x93\x51\xe2\xb5\x5a\xdd\x51\x04\x17\x65\x99\xc9\xf4\xf9\xb8\x06\x90\xf7\x2d\x73\x8e\xb8\x1c\xd5\x22\xce\x11\xb5\x8b\xa3\xf8\x40\x4a\x08\x71\x92\xdc\xcb\x72\xa1\x14\xaa\x69\x95\x6d\x8a\x6d\x37\x71\x2e\x86\x0f\x9e\xa9\x7b\x9a\xcd\xc2\x10\x8e\x5a\xb9\x56\x88\xb9\xcb\x1c\xbd\x70\xc4\x60\x9e\xed\x5f\x0c\xe4\xe3\x32\x86\xa7\xaa\x82\x58\x98\x07\x31\x90\x8e\xce\x68\x96\x17\x22\x17\x0a\xfc\xb3\xbe\x16\xf3\x54\x69\xe1\xd8\xbf\x52\x2b\xc7\xb6\x46\x6c\x8c\x48\x8a\xcd\xbc\xb5\xd7\xd0\x43\xfb\xd5\xc4\xf6\xf3\x97\x72\x73\x43\x12\xd4\xf6\x5b\x78\x44\x3f\xf1\xa2\x16\x61\xaa\x66\x16\xca\x8b\x4b\x3b\xf3\x0a\xc3\xa8\x85\xe0\xb3\x62\xd5\xa2\x59\x1f\xdf\xe2\x1e\x03\x33\x5c\x32\x9c\x35\xcb\x83\x06\x44\x04\x5f\x4b\xaf\x5d\xc1\x41\x84\x31\x57\x93\xa8\x10\xca\x8c\xd7\xfe\xec\x45\x46\xeb\xe8\x64\xed\xa1\xc9\x9a\x5b\x3f\xab\x86\xe4\x8a\xa5\x32\x5b\xdc\x6d\x22\xf9\x5e\xd1\x9c\xb5\xa3\xfb\xc6\x17\x72\x8f\x24\x23\xaa\x5a\x8b\x12\x1b\x01\x2c\x40\xa4\xd6\xba\xf9\x8e\xcb\xd8\x70\x3b\x02\xd2\x86\xd3\x85\x66\xf5\x70\x75\x53\x5f\x09\x9c\x19\xea\x28\xf8\x52\x3b\x64\x05\xa4\xf5\xbf\x88\xc9\x56\xd8\xdd\x2f\x62\xb2\x62\x5e\x83\xe3\x3c\xc0\xaa\x2b\xbe\x33\x0f\x15\xe8\x99\x13\xb3\x16\xa5\x63\x51\x30\x57\x64\xdd\x72\x87\xa2\x53\xff\x13\x92\xb1\x3a\xec\x5f\xe1\x47\x4c\xd9\xfa\xc7\x3e\xe2\x4f\xfc\x72\xf6\x77\x82\x9d\xf8\xe7\xbf\xe2\x56\x51\x96\xd7\xec\xa6\x26\x17\x49\xcf\xc7\x6d\xd1\x9f\x44\xe2\x8e\x93\x44\x97\xca\xd2\x03\x80\xdc\xe8\x21\x36\x67\xf8\x33\xd7\x69\xf3\x2f\x33\x67\xc9\xbf\xf0\xc4\x17\xfa\x53\xe4\x23\x31\x16\x05\xcf\xba\x14\x33\x5b\x4f\x89\xe9\x34\xf3\x61\xea\x39\x32\x53\x6f\xb7\x4a\x97\x99\x92\x8d\x36\xbc\x80\xd7\xbe\x93\x75\x6f\x1f\x8e\x82\xc9\x18\x6a\x36\x9c\xe1\x6d\xca\x4d\x7e\xb9\x82\xa0\xb3\x80\xf8\x1d\x2b\x36\xdd\xde\x7b\xe5\xfc\x9f\x60\xeb\x23\xf4\x48\x9e\x42\xfd\x8a\x2a\x93\x1f\x62\x0c\x15\xb2\x3c\xc7\xa6\x21\x11\x54\x43\x95\xc1\xa2\x8b\xd5\x95\xa0\x7a\x70\x62\xe5\xbd\x74\xf4\x31\x04\x64\xa5\xa2\x5f\x0e\x87\x90\xd8\x11\xc6\x10\x07\x19\x93\xdf\x39\x3a\x9e\x05\x58\x7c\xd2\x32\x73\x1f\x1a\x96\xbc\xe0\xca\x0a\x61\x42\x0a\x07\xd5\xf8\xad\x84\x0b\xaa\x8a\xe9\x31\x0b\xa0\x1a\x31\x94\xa1\x7d\xc0\x02\xc5\x6e\xb0\x60\x86\xc2\x9a\x6e\xba\x68\x14\x48\x71\x13\x9b\x1e\x1a\x03\x7b\xaf\xa1\xf7\x01\xe1\x36\x11\x01\xb8\x83\x06\x4b\x65\x05\xa4\x56\x9d\x90\x20\x4b\x6b\x28\xee\x65\x02\x5f\x98\x39\xed\x71\x15\x52\x8b\x8b\xdd\xf7\x69\x0a\xd9\x84\xf9\xa2\xad\x55\x7d\x30\x47\x9a\x9c\x20\x34\xa9\x52\x42\xe1\xad\x7b\xc9\xa3\x83\x16\x66\x11\x7d\xc8\x94\x7d\x3f\xda\xe6\x0a\x56\xc6\xe3\xf8\x3b\x4c\x3b\xd9\x0c\xba\x8f\x82\xe5\x14\xe3\x59\x3e\xe2\x21\xfc\x2d\x8a\x7a\x73\x2f\x4f\x1f\x2f\x13\x9a\x0e\x32\xde\x26\x79\x82\x17\xc3\x65\x16\xb0\x63\xaa\xb0\x1e\x6c\x81\x22\x14\xe5\x9f\x59\x71\xff\xe4\xfd\xe9\xae\xd4\xfe\xae\xd4\xfe\xf3\x97\xda\xa7\x11\x2c\x43\x89\x0c\xa7\x97\x41\x5f\x58\x8e\x35\x14\x9f\xab\x8a\xba\xbb\x29\xcc\x3c\xe0\x67\x17\x37\x57\x7f\xbf\xfc\x70\x7e\x71\xb3\x3b\xe7\xbb\x73\xfe\xfc\xe7\x5c\xa8\xfb\xd6\x4e\x8b\x59\x96\x06\xca\x8a\x6d\x1a\x1c\x9e\xa5\x5e\xff\x27\x5e\x3c\x49\x4d\x95\x06\x8a\xcf\x46\xe5\x54\x04\xda\x67\x5b\xae\xb1\x97\xdf\xe3\x4a\x55\xed\x2c\x3c\x78\xed\xee\xc4\xa4\x32\x0d\x55\xd4\x07\x25\x9d\xf1\x6c\xfb\x16\x3b\xce\x32\x26\x15\x82\xf9\x43\x07\x55\xcd\x4b\x4a\xd3\xc1\x3a\x67\x58\x43\x7a\x36\xae\x94\x8f\x32\xa4\x82\x80\x28\x4e\xd3\x85\x93\xaa\xf2\xde\xd3\x04\x3b\x91\xa2\xce\x8d\xd1\x09\x0a\x9f\x40\x13\x02\xd8\x69\x40\xa3\xc9\x32\x2c\x71\x99\x17\x22\x11\xa9\xa3\x03\x8e\x16\x42\x22\xb3\x9f\x6b\x7f\x42\xda\x7e\xa0\x2b\x25\x5e\x49\x58\x93\x39\x7d\x3c\xc3\x11\x8d\x6c\xf8\x9b\xdc\xd2\x36\xd0\x8a\xa7\x11\x63\x21\xd0\xbc\xcf\x84\xa4\x78\x59\x66\x59\xbb\xfa\x6f\x30\xd6\xbc\xcc\x32\x86\xf5\x6f\x7b\xec\x03\xc2\xdc\x1f\x03\xe4\x58\x87\x5d\x38\x4a\xdf\x61\xe7\x83\x0b\x6d\x2f\xd1\xe2\x53\xb7\xd3\x61\x43\xc7\x33\xdf\x90\x5b\xd9\x62\x99\xc4\x08\xc6\x44\x17\xb5\x0e\x30\x65\xfc\x41\x9a\x99\x47\x60\xe3\x45\xfb\xca\xcb\xfe\xdd\x75\x17\x31\x94\x48\x5d\x5b\x09\x7e\x17\x7a\x58\xa4\xfc\x86\x56\x5e\xd4\x70\xba\xd0\x03\x25\x08\xcd\xd0\xa7\xe6\x19\x47\x6a\x15\x70\xd7\x1e\x73\x8b\x9a\xe0\x55\x7d\xdf\x0d\x46\xbb\xaa\xaf\x60\x86\x5e\x59\x25\xe5\x3a\xca\x18\xa7\xdc\x80\xb6\x05\x39\x3e\x9e\xda\x12\x8a\x25\x1f\x6b\x35\x6c\xa4\xe7\x76\xa0\xaa\x71\x0d\x11\x51\xa5\x73\xa6\xb2\x56\x96\x4e\x9b\x10\xe8\x55\xd6\x73\xab\xd4\x71\xad\xba\xfc\x73\x8c\x73\xcf\x55\x94\x7e\x2b\x07\xf0\x33\x54\x78\xaf\x2a\xbb\xb7\x1e\xfb\x6c\xa3\x47\x69\x04\x33\x39\x65\x13\xfa\x2e\x33\x0a\xbd\xa3\x02\x8d\xa9\xd7\xed\x73\xbd\xc0\xd2\xf7\xd9\x4a\xb7\x53\xdb\x0d\x69\xde\x33\xd5\x4a\xdf\xce\x89\xdb\xd5\xd0\x6e\x2e\xc6\xae\x86\xf6\xae\x86\xf6\x8b\xaa\xa1\x0d\x49\xfc\x81\x25\xb6\x80\x21\x70\xdb\xeb\xee\x93\xad\x25\x15\xc7\x4b\x00\x83\xbf\xd4\xe9\x75\x2e\x92\x08\x09\x74\x96\x40\x83\x9f\xf7\x99\x9d\x33\x1a\x04\x95\xb0\x0c\x17\x36\xf8\x44\x0c\x3b\x38\xbf\x3c\xe9\xb0\xcb\xf3\xd3\x0e\x13\x36\x39\x9c\x01\x6d\x1f\xc0\x05\x85\xc5\x03\x32\x4f\xb4\x42\x20\x78\xf7\x8d\x87\x11\xb7\xb0\xdc\xd1\x87\x00\xce\x71\xc4\x2b\x10\x17\x2a\xa3\x16\x83\x9d\xce\xba\xad\x20\x8c\x79\xc4\x20\x3c\x09\x68\xda\xde\x4e\xad\xeb\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\x5d\xb9\xf3\xa9\x20\x97\xf5\x60\x21\x83\x80\x48\xe8\x99\x1e\xe4\x67\xc4\x55\x9a\x79\x6d\x4a\xe9\x62\x1c\xc1\xfc\xa5\x85\xbc\x6f\x15\x34\xec\x44\xfc\x0f\x2a\x6b\x5f\x11\x06\xb1\x12\xba\x10\x6b\xe5\x37\x08\x79\x59\x08\x3d\x24\x1c\xc1\x98\xa5\x60\x39\x8e\x03\xf7\xea\x91\x13\xba\xc4\xe1\xfa\xd4\xf8\x24\xe3\x72\x7c\x23\xc6\x79\xb6\x49\xc9\x8c\x4b\x51\x18\x69\x9c\xf8\xf0\x69\x46\xaf\x8b\xcc\x11\xbf\x46\x67\x36\x02\x9b\xe7\x88\x24\xd5\xe5\x99\x56\x82\x5d\x7e\x3a\xc1\xc0\x7a\x7d\x2f\x21\xc5\x2c\x5e\x99\x1b\x8a\x53\x01\x01\x3f\x14\x9e\x9f\x79\x4c\x50\x28\xe8\x0b\x08\x93\xf1\xb7\xc5\xf5\x05\x90\x9f\x5e\xdf\xb9\xfc\x74\xd2\x61\xb2\x27\x7a\xfe\xaf\xd0\x34\x15\x99\x40\x81\x60\x88\x8c\x36\xb8\x97\x40\x67\x60\x37\x0d\xcd\x29\x7e\xf7\x5f\x18\x6d\xe8\x46\x0a\xf9\xf7\x10\x72\xd8\xc5\x1f\xe9\x2c\x56\xbf\xff\x8b\x3d\x00\x38\xe3\xbf\xe6\x3e\x27\x8e\x08\x5f\x0b\x69\x4d\xff\x22\xdd\x8c\x88\xa6\xf9\x17\xc6\x10\x60\x48\x4c\x8f\x01\x81\xe7\x99\x4c\xf1\x88\x91\x01\xe0\x7f\x79\x98\x5c\x58\xc4\xa0\xf2\x39\x49\x01\x4b\x76\xc2\x37\xc8\xe0\x82\x3e\x3d\x04\x53\x75\xb3\x3b\x18\xc4\x58\x3b\x56\x6b\x96\x69\x35\x3c\xec\xdd\xaa\x5b\x75\x1c\xc5\x86\xe1\x4a\xc0\x62\x71\x8b\x3d\xfa\x9b\xe7\xba\x75\xeb\x1f\xb8\xb7\x1b\x07\x8c\xed\xbf\x29\x6d\xff\x5b\x38\x1c\x91\x7a\x06\x91\x67\xf7\x5a\xfa\x98\x04\xae\x20\xb7\x0f\xf1\x35\x68\xb1\xfa\x13\x36\x96\xc6\xf2\x3b\xd1\x63\xd7\xe4\x4b\xac\xa6\x69\x50\x67\x04\x41\xa2\xa6\xef\x57\xfd\xb8\x21\x57\x11\x62\x68\xfd\x00\x9d\x85\xe5\x85\xe8\x7a\x94\x66\x6a\x35\x16\x5c\xd9\x19\x92\x48\xae\x89\x6e\xbb\x76\x23\x4c\x58\x24\xe2\x1a\xe4\x4f\x3c\x7c\x45\x0c\x83\xe7\xc7\x09\x61\x57\xfe\x0f\x74\x7e\x3a\xd5\xd4\x51\xa7\xcc\x43\x24\xa3\x70\x47\x84\x5b\x09\x27\x6f\xf3\x62\xd2\x01\xbc\x17\x19\xa2\xf7\x4a\x23\x06\x65\x86\xbe\xd6\x31\x57\x25\x74\x50\x88\x44\x2b\x63\x8b\x12\x2b\x7f\x70\xd6\x2f\xf4\x9d\x50\x2c\xc9\x4a\x63\x45\x01\xbb\x18\xc1\xc5\x49\x13\x91\x2b\xa8\x8a\xa0\x19\xc6\x68\x54\xfa\xd3\x98\xa7\xb0\xf6\x11\x92\x1c\xcd\xc7\xad\xc0\xb4\x11\xcb\x83\xd7\xbb\x4f\x79\x10\xfc\x4e\x85\x2f\xef\xa6\x24\xb3\x85\x71\xe4\xab\xf2\x8f\x7b\xb1\xb0\x6a\x0d\x3c\xa7\xba\xc1\x02\xf1\x80\x07\x95\xaf\xda\xe8\xb1\xc0\xab\xe9\x99\x28\x2d\x15\x63\xf0\xa2\xf1\xa5\xc6\xbc\xee\x50\x08\x8b\x29\x6a\x68\x7b\x02\x65\xa4\x90\xc3\xa1\xf7\xcd\x90\xce\x82\xc1\x7f\xe2\x5e\x67\xf7\x82\x2e\x0a\xd8\x3b\xb1\x57\x80\x3a\x2a\xc7\x51\x4a\xac\x5b\x9b\x42\x40\xb5\x6f\x54\x83\xe4\xd8\xed\x60\x3c\x54\x72\x5b\x63\xa9\x9b\x2b\xac\x85\x58\x88\x41\x26\xfc\x66\x03\x7e\x12\x10\x6d\x80\x66\x2d\xb2\x09\x5c\x11\x1c\x1d\xf8\x38\xbd\x94\x20\x55\x29\xe8\xfc\xc1\x09\xd5\x03\xfc\x86\x89\xee\x34\x7e\xa1\x5a\x87\x4a\xeb\xb4\x74\x55\x78\x54\x59\xe4\x1e\x2a\x53\x19\xdb\x15\x83\x81\x2e\x6c\x07\x4c\x29\x88\xf6\xc2\x33\x30\xe9\xb5\x89\x0e\x6c\x96\xbd\x99\xc9\x60\x00\x59\x0a\x31\x66\x1e\xdc\x05\xe4\x77\x42\x1d\x11\x00\x51\x54\x28\x16\x0f\xe9\x55\xf8\x81\x72\x91\x57\x57\xd3\x76\x29\xd3\x9f\x2f\x65\x3a\x59\xbb\xe4\x9d\x93\x0c\xe0\xda\x38\xca\xa4\x13\x08\x31\x6f\xca\xbf\x9b\xa3\x0a\xc2\x27\xa0\x64\xed\xf6\x52\x72\xdf\xcb\xa4\xd0\xed\xca\xe0\x52\xa4\x8d\x13\x8f\x90\x44\x70\x43\x06\x78\xdd\x47\x24\xcf\xb9\xf9\x21\x85\x81\x71\x1b\xcb\xc7\x53\x90\xc1\x4f\x5a\xbe\x17\x89\x5b\xa3\x7a\xb4\x68\x0c\xdf\x1d\xd2\x02\x22\x1a\x0f\x60\xa2\x7a\x00\x79\x69\xde\xb2\x9e\x5b\x34\x4a\xb2\x9b\x49\x2e\xde\xbb\x4f\x1f\xce\x09\x36\x51\x40\x81\x53\x4c\x67\x79\x16\xf8\x5b\x37\x41\xca\x60\x8f\x2c\xea\x81\x09\xf5\x75\x69\xe7\x6c\xca\x2e\xab\xfe\xb3\x64\xd5\x67\xfc\x45\x5d\x85\xb1\xc6\xf3\x0f\x61\x48\x48\xb7\x54\x12\x41\x83\x87\x9b\x12\xee\xc8\x26\x15\xd6\x8f\xd9\xa8\x1c\x73\xd5\x75\x72\x20\x84\xc0\x46\xcf\xbd\xd6\xd3\xa8\x46\xec\x78\x37\x70\xac\x35\x78\xe9\x0e\x6b\x69\x6a\x49\x5a\x95\xc0\xbe\x89\x34\x03\x88\xcf\x34\x23\x90\xb2\x68\x5d\x50\xde\x43\x2c\x65\xb7\x89\x44\x1c\x80\xfe\x38\x79\xd1\x50\x98\x36\xd6\xad\x27\x41\xd0\x16\x5c\x19\x58\xe9\xca\x28\x18\x16\xa7\x5e\x89\x7a\xad\x4a\xba\xa0\x75\x3d\x0b\xc9\x0d\x28\xc6\xc6\xe9\x3f\x29\x2f\x26\x9e\xda\x61\x15\x9b\x42\x00\xbe\x51\x26\x1e\x49\x70\x9c\x1f\x77\xe3\x14\x04\xa9\x86\x27\x1e\x4a\x7e\x85\x30\x30\x38\x1d\x3a\xcb\x7c\x9a\x95\x18\x4b\x0b\xc6\x85\xc0\x9f\x3b\x4c\xf4\x86\x3d\xf6\xaf\x7a\xb0\x20\xd5\x57\xfd\xd7\x5a\x8b\x4c\xe3\x3d\x57\x6e\xf3\x97\x06\x2c\xd4\x4b\x53\xd3\x60\x25\xbd\x1b\x8f\x2e\x13\xb6\xfb\x38\xf9\x7d\xb0\xce\xa0\x8c\x28\x9a\x92\xfd\x4a\x21\xb1\x6e\xa5\xae\xb1\x8f\x45\x9b\x7e\xca\x2d\x8f\xea\xb4\xa2\x00\x84\xdf\x8e\x29\x65\x94\x06\xac\x0b\x28\x6a\x21\x07\x4c\xba\x23\xee\x83\x2c\xac\x56\xf8\xf6\xbc\xd0\x98\xa6\x45\x72\x9d\xf9\xb4\x03\x62\x08\x15\x0c\x58\xd8\xd9\x68\x2e\x3d\x76\xdd\xa4\x00\x8b\x09\xc0\x9c\x09\xd1\x26\x2e\xa4\x37\x54\xba\x26\x5a\xc8\x03\x34\x53\x74\xd8\xaf\xbc\x50\x52\x0d\x0f\x3b\x4c\x89\x07\x28\x72\x63\x58\x12\xc6\x05\xa6\x38\x5f\x4b\xbe\x74\x24\x71\xbb\x36\xe7\x40\x4c\xe7\x4b\x79\xcb\x2c\xd2\xe1\xf7\x27\x03\x7d\x01\x93\x44\xed\xd1\xc6\x60\x2f\xae\xcb\x65\x10\x61\xbe\x4d\x03\x1e\x0c\xf4\xf7\x1d\x36\xd8\x8b\x56\x74\x57\xc2\x06\xbb\x9f\x8e\xe6\xdc\x38\x11\x01\x8e\x6c\x4b\x7f\xdc\x4e\x7b\x79\x39\xda\xcb\x0e\x13\xec\x8f\x87\x09\x16\x68\xf9\xf6\x59\xc4\x75\x53\xf8\x9a\xc9\x24\xb0\x55\xa8\x23\x1b\xd7\x87\x86\x4a\x0e\xf0\x34\x50\x9a\xe0\x3c\x0b\x3a\xc5\x03\x37\x47\xe0\x63\xcd\x73\x01\xc5\x3f\xc9\xa8\xac\x4b\x93\x61\x69\x3e\x00\x58\x05\x93\x77\x1b\x60\x95\xe5\x46\xbe\x8b\x60\xe0\xab\x74\x62\x4a\x71\x83\xc0\x55\x18\x71\x99\x57\x3c\xc2\x58\x36\x12\xbc\xb0\x7d\xc1\x2d\x0c\x64\xdb\xa6\x3f\xf7\x89\x0f\x64\x65\xfb\x7c\x16\x40\x12\xe7\x61\xbe\xb1\xb5\x80\x06\xb6\x6d\x3f\xcb\x72\x08\x9e\xaa\x95\x3f\x5e\xf5\xfa\xe3\xe0\x6a\x24\x97\x46\xab\xb3\xd1\x4e\x11\x0b\x0a\x1b\xd2\xff\xa6\x65\x51\x1a\x36\x14\x4a\x14\x6b\x46\x6a\x8d\xb4\x59\x7a\x40\x75\xea\x7d\xc5\x6a\x2b\x9f\xdf\x78\xbf\x1e\x45\x72\xdc\x74\xa8\x4c\x6d\x57\x68\x54\x2b\x69\x75\xbb\x47\x11\xb6\x21\xa4\xe4\x76\x8f\x54\xe7\x76\x7b\xd6\x22\x31\xfe\x04\x5b\x79\xc7\x37\xbd\x04\x71\x78\x08\xc4\x01\x19\xf2\x4e\x3b\x95\x69\x23\x3a\x11\x3d\xb0\x53\x21\x36\xc1\xb2\xe1\xfb\x02\x07\xa7\xd6\x96\x1d\xec\x1f\xed\x1f\x4e\x85\xc9\x34\x02\x9f\x6e\xa2\x37\x1d\x4d\x91\xe3\x3c\x9b\xc0\x38\xf6\xd3\x0e\x93\xc1\xb7\x8d\x4b\x03\xa3\xa2\xb4\xfd\x0e\x33\x9a\xd9\x82\xa7\xd2\xdb\x21\xdc\xaf\xa0\x58\x83\x2b\x56\x2b\xc3\x0e\xf6\xff\xef\x7d\x8a\x7d\x7e\xd0\x6a\xdf\xc2\xf0\x7b\xec\x06\x0b\x7a\x86\x8e\x26\xba\x64\x4a\x08\xc2\x22\xc9\x33\x99\x48\x9b\x4d\x58\xc2\xb3\x8c\x81\xaa\xab\x91\x02\x13\x5c\xc0\xd9\xa3\xb4\x91\x7d\xee\x15\x66\x07\x04\xf7\x5c\x26\xef\xc5\xd1\x48\xf0\xcc\x8e\xbc\x83\x57\x75\x7f\x17\x85\xc6\xf2\x8d\xf4\xa4\x5d\x80\xd7\xa6\x19\xe5\x9b\x9e\xe7\xb7\x27\x6b\x04\x08\xb1\xb7\xb2\x5f\x08\x76\x42\x39\x17\x3e\xc4\x64\xd6\xaf\x58\x8e\x07\x5c\xe1\x7d\x11\x82\xa5\xa9\x8e\x0a\x86\xe5\x80\xfb\x7e\xde\xdb\x4f\x53\x6d\x76\x60\x6e\x96\x6b\xeb\x6f\xc3\x29\xc6\x9a\xb3\x3e\xd8\x2f\x06\x2c\x1c\x34\xda\x54\x15\x16\x29\xb2\xc1\xd1\x38\x6f\xdb\x55\x43\xe6\x6f\xc5\xd9\x63\x8f\xdd\xee\x89\x47\xfb\x2d\x96\x96\x78\x1c\x18\xfc\x87\xb2\xee\x5f\x3d\x76\x3e\x0e\xa7\x14\xa4\xf0\x22\x44\x89\xfb\xd7\x98\x1c\xb0\x52\x85\xb8\xb7\x35\xe8\x6f\x56\x2e\x53\x49\xab\xe8\xf9\xb7\x27\x94\xab\xc0\xb2\x52\x91\x63\x70\xdb\xbc\xbf\x65\x5c\x58\x35\xa8\x25\xd1\x5e\xec\x8a\x3a\xc4\x12\xae\x10\x7b\x31\xd0\x05\xc5\x8a\x84\x87\x54\x3d\xdb\x11\xb2\x28\x8a\x72\x9e\x75\xb6\x45\x36\xc9\xaf\xbf\x5e\x2c\x53\x3a\x67\x2d\xec\x83\x2e\xb2\xf4\x41\xa6\xa1\x1a\xa0\xeb\xe7\xf0\xb9\x71\x29\x1e\x1e\x64\xba\xd2\xe8\x29\x90\x08\x46\xcf\x60\xf8\x15\xce\xab\x61\x07\xd0\xdf\x21\x3b\x93\x18\x09\xe6\xfe\x62\xba\x70\x2c\xa1\xef\x03\xd2\x9d\xb4\x15\x16\x0e\x2e\xb5\x3b\x63\x3e\x8f\x17\x92\x6d\x7c\x1d\x53\x0c\x97\x97\xe3\x32\xb3\x5c\x09\x10\x8c\xff\x20\x74\x36\x13\x8f\xcd\xf0\xbf\xa5\x34\x77\xfe\x4b\x75\x1c\x46\x90\x82\x64\xc2\xf2\xd0\xd6\xef\x4a\xa4\xee\x63\x18\x59\x08\x0e\x14\xe9\x11\xe5\x91\x45\xe1\x61\x8e\x2d\xb3\x3e\x37\x22\x65\x79\x56\x0e\x65\x1b\xb9\x04\xc3\x3e\x97\x61\x24\x40\xa3\x5a\x38\x1e\xc9\xd8\xf8\xba\x2f\xc1\x1d\x0a\x03\x12\x4f\x59\x9d\xa8\xbd\x7c\xd2\x1e\x57\x84\x8e\x3e\x92\x02\x1c\xb2\x71\x82\xae\xdb\x77\xdc\x6d\x86\xc3\x5e\x63\x1d\xa8\xca\x7f\x73\x21\x78\xea\xc5\xa9\xcb\xd9\xfb\xb9\xd2\x6d\x99\x4b\x17\xce\x1e\x6d\xc1\x83\xdc\x47\x63\x71\x1c\x8b\xab\x79\x15\x82\x75\xcd\xcc\xfc\xa5\x71\x86\x6d\xc1\x4f\xaf\xe6\xba\x7b\xc3\xc2\x5b\x18\x96\xd8\x08\x9e\x24\xc8\x45\x32\x03\x92\x08\x8f\x45\x15\xc1\x89\x79\x2f\x6a\x5a\xa6\xd5\x2c\xe7\x26\x98\x8c\x91\x44\xd0\x11\x35\x84\xc1\xe0\x21\xfc\x20\xa9\x48\x0e\x98\xd2\x8d\xaf\xc4\x10\x21\x94\x20\x3a\x67\x20\x06\x9d\x8c\x90\xb3\xa6\x95\x6f\xd4\xc1\xc2\x37\xf0\x6f\xaa\x76\xc3\x8d\x89\x92\xdf\xeb\xa3\x5a\xdd\x9e\x45\x04\x6d\x99\x41\xab\x0d\xc5\x5f\x81\xce\x7f\xf2\x04\x7b\x06\x5d\xdf\x11\xf3\x1d\x31\xdf\x11\xf3\x2f\x89\x98\xbf\xd3\x09\xcf\xd6\x09\xc6\xd8\x51\xf4\xcf\x49\xd1\x01\xe9\x6b\x2d\x83\x09\xbe\xea\x29\xb9\xb7\x83\x10\xf1\xf1\x4f\xf9\x10\xe2\x11\x3e\x28\x8c\x80\x07\xab\x89\x46\x5c\xae\x94\x5b\x6e\x04\xa0\x6a\xc3\x33\xfa\xfb\xe3\xc7\xf3\xd3\x28\x82\x09\xaa\x92\xd5\xbf\x65\x58\xaa\x31\x43\x6e\x91\x25\x45\x17\xeb\x19\x52\xa2\x61\xad\x10\xd3\x43\x6f\x41\xe6\x18\x5a\x83\xbc\xa7\x8b\x61\xaa\x4f\x65\xf3\x8d\x9b\x3b\x7e\xe2\x27\x37\xb3\xbe\x31\x60\x26\xe7\x85\x80\x14\xf8\xd5\xa9\x6c\xb4\xa6\x4b\x26\x03\xcb\x5e\x9f\x4c\x05\xf8\x4b\xc0\x53\x51\xb5\x13\x80\xb7\xf6\x23\xa7\xf6\xcf\x64\xaf\xfe\xe9\xe4\xac\xd2\x20\x4f\xa5\xb9\x5b\xe7\xf4\x56\x3d\x30\xd7\x45\x25\x88\x48\xc5\x7e\xd2\x7a\x98\x09\x76\xa2\xc7\x79\x69\x05\x3b\x53\x43\xa9\x04\x26\x36\xb1\x9f\x4e\xce\xd8\xe5\x29\x6a\xf2\x90\x16\xc1\xfa\x62\xe0\x08\x00\x9c\x7f\xca\x27\xe0\x4d\x2c\xc5\xd4\x7d\x02\xde\x81\x7c\xeb\xbe\xa8\xd5\xde\x73\x7d\xe6\x85\x06\xaa\xe2\x2e\xc2\xef\xee\x82\x70\x14\x45\x28\xc6\xaa\xc7\xc2\xa7\xdb\x19\x1f\x11\xd7\xda\xa7\xec\x8c\xb9\x9a\x60\xc0\x7b\x8f\xba\x79\x51\x66\x48\x3a\x76\x71\x62\xe6\x44\x97\xec\x81\x32\xab\x48\xf4\xb9\x91\xf9\x1b\x76\xa6\x4c\x59\x44\xf8\x1c\x4d\x29\x48\x9a\x15\x04\x21\x48\x5e\x33\x6f\xb6\x6d\xb6\x5c\x15\xf6\x8f\xb2\x4d\x8f\x88\xba\x7d\x35\x4c\x44\x65\xf6\x70\x47\x67\x0d\xc4\x36\x5e\x58\xd9\x22\x47\x06\x52\x28\x7d\x5b\x7f\x28\x97\xec\xc3\xf9\x80\x69\x8c\x58\x44\xf7\x4a\x5a\x01\x04\x84\xe4\xf1\xfe\x84\x45\xa9\x8b\xf1\x5a\xbf\xd5\x81\x65\x00\xa8\x86\x49\xf9\x6b\xf4\x66\xe0\x02\x52\xf6\x5c\x18\x13\x37\xec\x76\xef\xb5\xdb\x88\x6b\x39\x96\x19\x2f\xb2\x49\x27\x1e\x65\xd5\xd2\xd1\x52\xdf\xa5\x1b\xcc\xed\xde\xab\xdb\x3d\x76\xa0\x0b\xe8\xdd\x5d\x9b\x4c\xf0\x7b\xca\xaa\xc3\xe3\x3b\x41\x11\xe0\xf0\xa9\xb7\x6c\x73\x43\x72\x9e\xb6\x60\x48\x1f\x91\x4c\xd7\x12\x51\x4f\xeb\xa4\xed\xe4\xac\xc7\x3e\x92\x20\x42\xe4\x1c\x57\x1c\x48\x94\x6f\xf1\xf9\x0f\x70\x4b\x89\x7a\x33\x39\x79\x5a\x0c\x7f\xae\xa9\x4f\xcb\xe2\x2d\xe5\x3e\x3a\x07\x9b\xca\x7d\x3f\x49\x7b\x25\x72\xbd\x0e\xe7\x6c\xa4\xcf\x07\x64\x99\x2a\x25\x3a\xc6\x93\xe1\x6c\x28\x31\x48\xd5\x48\x44\x37\xf8\x89\xfe\x5e\x45\x98\x9b\xf1\x96\x6f\x3e\x83\x4b\x39\x4e\x7d\x7a\x76\x79\x75\x76\x72\x7c\x73\x76\xfa\x86\xd1\x64\xdd\x68\x2b\x59\x0a\x3c\xaa\x55\x5e\x39\xaf\x01\x54\x51\xfe\x24\x7e\xb2\x43\x34\x8d\x2b\x76\xe6\xa8\xc5\xa9\x2c\x30\x0e\x9e\x2b\x76\xae\x64\x85\xb4\x45\x05\x72\x33\xad\x42\x1c\x7d\xae\xc9\x78\x31\x94\x88\xaf\xa5\xa8\x33\x88\x44\xae\xf5\x06\xb7\x15\x0a\x37\xcc\x00\x31\x99\x2f\xad\x7a\x9f\xf6\x32\x42\x8f\x0e\x99\xca\x05\x4e\xa8\xbe\x3e\xdd\xd6\x47\xf8\x68\x82\x6c\xc3\x45\xd8\xef\xf5\xf6\x7b\xcc\x51\xfc\xfd\xde\xbe\xe7\xad\x59\x80\xa4\xa0\xa3\x50\x75\x1a\x67\xd6\x37\xf7\x9d\x7d\xf0\x50\xb9\x1d\xc7\x30\x1b\xe8\x16\xde\xe5\x22\x2b\x70\xa6\x19\xbd\x04\xb1\xa9\xec\xc7\x1f\xa5\x73\x87\x09\xaf\x30\xb1\xf5\x22\xe4\xf1\x23\x4b\x49\x4e\x18\xcd\xc7\xab\x77\xeb\x7c\x08\x8f\x5c\x8b\xa8\x07\x4c\x97\x1e\x85\x70\x85\x0a\x2b\xd6\x77\xb2\x65\x9c\x8e\x68\x11\x36\xa6\x30\x98\x1e\x3d\x30\x2b\xbb\x88\x6a\xd4\x26\x74\x13\xee\x0d\xb7\x10\xc4\xe4\x71\x81\x06\xc2\x52\x78\x13\x47\x2c\x86\xea\x8d\xe7\xd0\x16\x43\xf9\xdd\xa5\xd5\x1d\xa8\xdd\x05\x61\x2a\xd4\x02\x4f\x2b\x58\x84\x54\x58\x2e\x33\x13\xcd\xc2\xea\x5c\x67\x7a\x38\x99\xc9\x9a\x08\x80\xc1\xf8\xb0\x49\x9a\xf2\xd1\xd0\xbf\x7e\x74\x75\x76\x7c\xfa\xfe\xac\x37\x4e\xbf\xc2\x84\xfb\x2e\xef\xe6\x7a\x0d\x4d\x52\xc4\x13\xc0\xfa\x45\x2b\xcc\x18\x5e\x88\xcd\xab\xf8\x03\x55\x14\x27\x43\x4a\x35\x67\xff\xb1\x08\x6d\xd1\xe3\x10\x80\xc0\x86\x34\xc3\x7f\xa1\xfa\x40\x1a\xf1\xf3\xa0\x5e\x55\x9f\x23\x9d\xaa\xaf\x4b\x05\xf8\x0d\x9f\x79\x49\xf3\xe5\x58\x7f\x00\xbe\x46\xcb\xd6\x3c\xd8\xcc\xbd\xff\x99\xa7\xb0\x0d\x31\x6d\x6a\x5e\xa8\x5d\x79\xdd\x16\xc8\x7b\xa5\xca\xe6\xa2\x18\x4b\x8f\x4b\xda\x4e\x7e\xdb\xee\x72\xac\x2d\xba\x89\x19\x75\xe1\xf1\x0c\x6c\x8d\xd6\xee\x28\xec\x1f\x98\xc2\xee\xc8\xc1\x8e\x1c\x6c\x85\x1c\xfc\x7c\x73\x73\xf9\x93\xb0\x4b\x63\x7a\x6b\xed\xe2\xb0\x5e\xe5\x61\x53\xd0\xd5\xaa\x15\x73\x4d\xd9\x4f\xc2\x56\x15\x1a\x97\x5f\xdc\x16\xb1\xd0\x3f\x6b\xe3\xaf\xa6\x66\x84\xda\xcc\xac\xee\x4c\x31\xf2\x5c\xa7\xec\xfc\xb2\xc7\xfe\xae\x4b\xa7\xb4\xf5\x79\x3f\x9b\x04\xbb\x94\x11\x96\xdd\x42\x5f\xb7\x7b\x4e\x43\x70\x1b\xfd\xb3\xe0\xa9\x28\x0c\x84\xd6\x0a\xbe\x56\x28\x77\xd5\xcb\x32\x51\xbd\x34\x56\x8f\xd9\x88\x3e\x59\x2f\x63\x44\x0b\xd6\xc3\x25\x04\xd0\x75\xc8\x73\xc3\xd0\x5b\x7a\x67\xcb\xc8\x89\xee\x53\x38\xf4\x8d\xe2\xe6\xda\x12\x24\xa7\x0a\x23\xda\x2b\x79\x37\x60\xaa\x08\xc3\xb1\x66\xb5\x89\xcd\x72\x24\x4a\x2b\xb3\x9e\xbb\x5a\xb6\xe8\x9d\x2b\xfb\xa1\xb8\xc6\xcf\x2d\xf2\x46\xa2\x33\xa7\x88\x01\x62\xe0\xdc\x15\x76\x7a\x7e\x91\x75\x9f\xd2\x4d\x7c\x64\x9f\xdf\x74\xae\x86\x82\xbd\x76\x6f\x7e\xff\xdd\x77\xdf\x7c\xd7\x63\x17\x71\x1d\x0f\xae\xd8\xf9\xf1\xc5\xf1\x6f\xd7\x9f\x4e\xa0\x3c\xd9\xbc\x7c\xe2\x64\x24\x96\xda\xfc\xae\xa1\x51\x1c\x9f\x40\xf7\x28\xc2\x36\x72\x37\xb1\x4e\x1d\xdd\x0e\x6d\x59\x77\xcc\xa3\xd2\x1b\x1b\x91\x2e\x3a\xb9\x8b\xe9\x16\x36\xaa\xe5\x22\x24\xf1\x35\x8c\x11\xd9\x24\xd1\xaf\x1c\x0a\x20\x2c\x27\x5c\x2d\xaa\xba\xdc\xb8\x55\xc5\x0f\xa1\x66\x32\x5d\xe7\x6b\x5b\xd5\xdd\xa7\x3e\x85\x2f\x6d\x75\xef\x1a\xa3\xa7\x71\x6d\xbc\x99\x80\xac\xb9\x70\x27\xb1\x45\x48\x0e\xe6\xde\xc4\x91\x78\x0e\x44\x39\x0c\x01\x51\x8c\xdf\x09\xd5\x42\x66\x7c\x14\xc9\xfa\x79\xf8\x55\x3e\xcc\xc2\xf0\x85\x19\x2e\x6d\xf0\x48\x69\x47\xe3\xc1\xd1\x54\x39\xb1\x2b\xdf\x90\xeb\x3d\xfc\x8d\x92\x9c\x9f\xaa\x86\xe9\xcd\x21\x06\x8e\x1d\xfd\x24\xd6\x47\x26\xaa\x0b\x05\x8b\x26\x46\x2d\x1b\x83\x74\xdf\xf7\xcc\x0c\x62\x2c\x44\x31\xd0\xc5\x78\x1e\x72\x40\x92\x5f\xeb\xe4\x6e\x83\xf1\xde\x9c\x5c\x62\x0f\x2d\x46\x1c\xda\x46\x63\xae\x84\x18\x4c\xfa\x47\xe4\xbb\x9b\x93\x4b\xa0\xe9\x3d\xf8\xd7\x48\xeb\x3b\x4c\xd5\x99\x08\x5b\xf9\x0d\xb7\xe8\xab\x76\x42\xc9\x71\x26\xf9\xa2\x44\xcb\xd0\x86\x8d\x74\x96\xe2\x6a\x8f\x79\x9e\xbb\x11\xf7\x85\x7d\x10\x42\xb1\xf3\x4b\x38\x6b\x8e\x90\x63\x24\x3d\x66\x57\x92\xb9\x15\xeb\x47\x56\xc5\xf5\x94\xad\x4c\xa5\x58\x0b\xd8\xbd\x88\x49\x4c\x2d\x05\x37\xf8\x4a\x0b\xe9\x0d\x47\xe3\x0d\x94\xbc\xaf\xef\x05\x0c\x36\x4d\x0b\x61\x5a\xca\x35\x5b\x0c\xf5\x97\x53\xb8\x4c\x4d\x60\x93\x30\x36\x7f\x5f\xc1\x3b\x0c\xc0\xf1\x08\x96\xfa\x4c\x51\x0c\x6e\xf1\x9c\xf4\xb4\x8e\xca\x0e\x43\x76\xd2\x19\x9c\x13\x5f\xa9\x81\xb4\xf3\x9f\xc3\xc3\xe7\xd0\xce\xdb\xca\x88\x3e\xb2\x24\x58\xed\x49\x94\x42\xd1\x84\x02\xac\x72\x52\x6f\x39\x33\x93\x71\x26\xd5\x1d\x64\xd3\x91\x7e\xe8\xa8\x2a\x59\x24\xd4\x9d\x97\x6c\x0a\xc1\xb3\xf9\x8a\xef\x2a\x8e\x3b\x37\x90\x7c\x0a\x0c\xbc\x15\x3a\x7f\x4b\x94\x14\x77\x49\xfc\xae\x93\x1f\xb2\x26\x93\xdd\xee\xdd\xee\x3d\xf3\x2c\xda\x8a\x76\xdb\xd0\x4a\xcf\xaf\x4f\xae\xcf\x57\x76\x06\x2c\x78\xab\x16\x58\xac\x18\xb4\x04\x37\x76\x8f\xfe\xbd\x6a\xba\x5e\xfd\xad\xa7\x89\x8f\x49\x46\x3c\x3f\x2e\xed\xe8\x54\x9a\x44\xdf\x8b\xa5\xde\x26\x5f\x7d\xd8\x8f\x46\xc2\x18\xc3\xdb\xec\xe4\xe7\xe3\x4b\xc6\x4b\x3b\x12\xca\x52\xd9\xe0\x35\xa2\x3f\xfd\xa8\xae\xb1\xe2\xd3\x5a\x63\xa2\x77\xb7\x34\xa2\x5d\x1c\xd1\xe6\x71\x44\xd2\x24\x46\xae\x81\x30\xe3\xa4\x32\x6e\x75\x9b\xca\x51\x64\xfa\xc0\x13\x70\xee\x5f\x04\x6d\x17\xa8\x7a\xad\xaf\x5a\x54\x2d\x1a\xf2\x60\x88\xe7\xca\x8a\x62\xc0\x13\xd1\x48\x83\x43\xdc\x28\xec\x5b\x86\x36\x08\x8c\x4e\x09\x86\x6e\x83\x78\x86\x01\x96\x6f\xe6\x40\xa6\x07\x31\xc9\x23\x77\x57\xd9\xdf\xa8\x28\xaf\x05\x50\x28\xff\xbd\x34\xb6\x0a\x87\x88\xe3\xff\xcf\x92\x67\x38\xef\x8b\xf5\xfc\xd3\xf5\x95\x5a\xf2\x69\xbf\x1f\x7e\xcd\x2e\x82\xf5\xbb\x34\x28\x1b\x63\x0b\x40\xf6\x43\x79\x38\xe6\x44\xfb\x64\x7e\xdb\x67\x07\x36\xc9\xe7\xd5\x18\xd8\x2c\x0f\x17\x07\x40\x6b\xf4\x2e\x24\xe0\x6e\x1d\x78\x17\x4f\xc8\x32\x51\xb6\x36\x9a\x4b\x78\x85\xbd\x93\xc6\x62\xf8\x26\xfd\x20\x0d\x13\x98\xf3\xc9\x41\x22\xd7\x05\x93\xf9\x6f\x4e\x9c\x7c\x83\x74\x30\xb2\x19\x49\x83\xa5\x81\x31\x30\xdc\x87\xc8\x1d\xd8\x49\x2e\x13\x40\x60\xf7\x9a\x88\x61\x7f\xf9\xfe\x15\xf0\x93\x6f\xbe\xfe\xfe\x55\x73\xad\x9f\x5e\x62\xfe\x5c\x81\x56\x2f\x3e\xe1\x0c\xf8\x18\xbe\x80\x15\x93\xf0\xc6\xe0\x11\x01\xe8\x87\x40\xee\x1a\xdc\x6e\xb6\x94\x08\x2f\xe2\x49\x5a\xfd\x30\x7e\xee\x73\xb8\xa9\x04\x59\x9b\x7d\x83\x8a\x36\xc8\xc6\x56\xe4\xcc\xb5\x4a\xc4\xec\x24\xc8\x9d\x04\xb9\x93\x20\x77\x12\xe4\x4e\x82\xdc\x49\x90\x5b\x96\x20\xf3\x9d\x04\xf9\x65\x48\x90\x2b\x67\xb9\xee\xc4\xc8\x16\xa7\xee\x05\x8a\x91\xbf\x88\xc9\x8d\x6e\x54\x63\x6e\xae\xf0\x7b\x9e\x47\x18\xb5\x77\x62\x82\xc9\x7f\x60\xc6\x76\xcc\x49\xaa\x90\x2f\xd1\x42\xb0\xc3\xb2\x94\xcb\x5c\xc1\xf4\x15\xca\x17\x5c\xa7\xb2\x82\x4e\x97\x11\xff\x2a\x33\xdb\x35\x66\x7d\x69\x4d\x28\xd3\x67\x1c\xcf\xac\x82\xae\xd0\x8e\x2f\xc9\xb7\x54\xc1\x13\x28\xa6\x13\xeb\x31\x97\x83\x1b\xeb\xd5\xab\x57\x78\x38\x5e\xfd\xf0\xc3\x0f\x0c\x6a\xc9\xa5\x22\x91\xe3\xe9\x86\xd0\xea\xbb\xd7\xaf\x7b\xec\xef\xc7\xef\xdf\x85\x92\xef\x00\x96\x84\x3d\x43\xca\x70\xfc\xb2\xe9\xb0\xff\x79\xfd\xe1\xa2\xaa\x66\x5b\x7f\x4a\x10\xff\x34\x9f\x79\x55\x36\x7d\x4a\x03\x9e\xf0\xf7\xae\x79\x5c\x5c\xd3\xe7\x8f\xfb\xda\x9a\x88\x7c\x38\xc8\x64\x42\x19\x13\x78\x4b\x3c\xa0\x00\x30\x4c\x3e\x18\xf8\x42\x7b\xe0\x66\x72\x63\xe8\xb0\x4c\xde\x09\x36\x30\x3f\x15\xba\xcc\x43\xb1\x7b\x56\x08\xe3\x2e\x96\xd3\x37\xfa\x82\x3a\xab\xf6\xc0\x88\xe6\x86\x6f\x81\xbb\x2d\x77\xe0\xdc\xc0\xc0\x32\x28\xde\x85\x87\xdb\xbb\xba\xa9\xda\xf8\x98\xe7\x98\xac\x0a\x67\xb3\xc7\xde\xf3\x89\xaf\xe1\xc6\x15\xe3\x7d\xa3\xb3\xd2\x86\x00\x45\x7a\x18\x67\x79\x40\xa7\x02\xab\x80\x51\xd2\x89\x6f\x16\x65\xa3\x60\x89\x11\xb8\x6b\xd0\x66\xbb\xb4\xc5\x5d\xbf\x6d\x47\xe2\xbd\x93\x03\x91\x4c\x92\x6c\x91\x0e\x1a\xda\xc4\xc1\x2c\x49\x74\x7e\xd0\x1f\x1c\x14\x47\xd2\x31\x28\xb8\xc0\xf2\x3b\x38\x85\x85\x30\xb9\x56\xc6\x07\xd2\xf9\xaa\xd9\xa1\x6f\xc2\x76\x87\xf4\x4b\xcc\x34\x32\x16\x8a\x23\xc2\xd1\xbb\x2c\xc4\xb5\xd5\x79\xd4\x1e\xab\xa2\x16\xa6\x53\x73\x12\x0e\xea\xe1\x4f\x58\x45\xd1\x44\x45\x14\xbd\xcb\xdd\x50\x1d\x0d\x2b\x3a\xac\x54\x99\x30\xa6\xf1\x66\x5e\x68\x88\xa8\x1a\x70\x99\x99\x4e\x55\xc2\x33\xe1\x54\x08\x9c\x06\x40\xa5\x90\x8a\x1a\x1e\xea\x7c\x6f\xa4\x9f\xd5\xfa\x61\x12\x14\xb3\xb2\x88\xa5\x57\x6b\xe7\xe6\xc9\xb3\x4c\xa4\x4c\x8e\xc7\x22\x95\xdc\x8a\x6c\x42\xb5\x0e\xe3\x8c\x32\xd7\x8e\xca\x1d\x7a\x5f\xa7\x9f\x1f\x2d\x40\x7d\x75\x64\x55\xab\x5f\xa4\xb0\x43\x85\x80\x8b\xe0\xfe\x4a\x12\x1d\x2a\xd7\x21\x44\x39\xde\x91\x1c\xea\xc6\xf7\x30\xcf\x6a\xb5\x6d\x1b\x69\x7d\x17\x76\x6c\x36\xfc\xfd\x22\xb5\xb1\xaa\xa6\x5f\xfd\xb3\x1b\xce\x52\x17\xc2\x2c\x8e\xbe\xaa\x1e\xc1\x0f\x73\xc8\x11\x9e\xc4\xa7\xdd\x3f\x3a\xed\xb3\x77\x8f\xf2\xf9\xf9\xdc\xed\x48\x4b\xb8\x65\x5c\xb1\xe3\xcb\xf3\x10\x12\xa3\x6b\x4b\x4e\x35\x23\xa1\x6a\x28\xa2\xab\x2a\x61\x9c\x7e\xcd\x0b\x5b\xe6\x18\x89\xe6\xeb\xe2\x77\x58\x5e\x08\x31\x86\xe1\x75\xaa\x6c\x5d\xca\xa2\x84\x1f\x85\x4d\x50\x74\x8b\x6e\x05\xd0\x50\x1a\x7e\x73\x83\x93\x82\x9b\x11\x56\xac\x17\x8f\x12\x61\x4f\xea\x65\x7d\xa2\xe2\xf9\xd2\x34\xc0\x49\xe8\x23\x5e\x58\x4c\xf7\x4d\xad\xfd\xb0\x70\x0a\x61\x2e\x0a\xa9\x53\x06\x90\xdc\xa9\x7e\x70\xfc\x6a\x28\x95\xf1\xcb\x07\x34\x86\xd6\xd9\x6d\xb7\xc0\xe4\x1d\xc4\xea\x4d\x7b\x54\x6e\x31\x8b\xe2\x30\x74\x69\x13\x5d\x25\x2e\xd3\x20\x9a\x37\x03\x98\x31\xac\x2e\x16\x32\x0d\xfb\xe2\x05\x2e\xbb\x74\xcc\x5b\xb8\x21\x6e\x61\xab\x67\x73\x17\x07\xcb\xa6\x26\xa3\x35\x2c\x31\x9b\x5e\xa9\x29\xa6\xb7\x32\xe7\x1a\x4b\x7b\xc5\xd5\x70\x31\xeb\xf2\x8d\x9c\x68\x62\xaa\xb3\x5b\x1a\x3e\x14\x58\x09\x15\xe5\x2e\xb7\x0a\xec\x4e\xaa\xd4\x2d\x75\x9c\x90\xce\x59\xc8\xde\xda\x15\x1e\x79\xd1\x85\x47\x76\x65\x3b\xbe\x94\xb2\x1d\x7f\xf4\x42\x78\x4e\x65\x5b\xdf\x80\x13\x68\xd6\xb5\xeb\x66\xe1\x02\xe4\x22\xa9\x91\x0f\x22\x68\x42\x81\xe1\x6a\x36\x51\xdf\xe6\x32\xb8\x89\x76\xb9\x4a\xbb\x08\xdc\xbe\x02\x79\x0f\xbf\x3f\x55\x69\x92\x88\x3f\xd4\x9e\x6f\x5a\x9b\xa4\xea\xf7\xdc\x8a\x71\x2b\xde\x73\x8e\xe8\x84\x3e\x82\x7c\x2c\xd5\xd1\x98\x3f\xc6\x3c\x88\x6a\x49\x4c\x1a\x70\x93\x63\x6e\x13\x90\x92\x14\xb0\xa6\x36\x68\x0b\x68\x16\x58\x0f\xb4\x70\xe5\x1b\xdb\xf3\xc3\xed\xfd\x67\xc9\x95\x95\x76\xd2\x1a\xe9\x90\xac\xa5\xd5\x84\x49\xe7\x05\x69\x07\xd7\x84\x0c\x2e\xd1\xa2\x60\xb9\xff\x88\x3f\x63\x43\x47\x9d\x11\xef\x67\x0d\x64\x44\x5a\xb1\x2b\xa4\xc7\x7f\x98\x85\xa3\xf1\xfa\x5c\xcb\x74\xd1\x72\x7a\x0d\xa0\xc5\x82\x16\x55\xb7\xeb\x2f\xe9\x98\x3f\xbe\xfc\x75\x7c\x1f\x6e\x60\xa2\x95\xb1\x05\x97\x00\x08\x43\xc6\x42\x90\x04\x9b\x2b\xb5\xde\x52\x20\x1d\xc0\x75\xbd\x72\xd2\xdb\x1f\x62\x6d\xa6\x46\x3d\x03\x12\xc5\xad\x49\x5a\x2d\x11\x24\x8f\x8d\xf8\xbd\x53\x4d\xfd\x39\xc2\x3a\x28\xee\x92\xa2\xa5\xb1\x10\x68\x21\x0d\xd5\x3b\x1e\xc0\xd9\x82\x4d\x52\x79\x2f\x53\x41\xeb\x1e\xce\x21\xd9\x66\x38\x40\xbf\x88\x7f\x97\x3c\xf3\x52\xac\x50\xe5\x18\x2b\xd1\xe0\xd1\xfe\x5b\x43\x54\xf6\x99\x0a\x8f\xac\x5f\x16\xc6\x06\xa7\x68\x7d\xdc\xeb\xec\xaa\x9c\x12\xef\x5f\xe0\x26\x4a\xf5\x0c\x07\x7c\x85\x0a\x9c\x75\xde\x06\xa3\xc0\x7d\xe7\x00\xd9\x03\xa2\xf0\x96\xbd\x31\xee\xfd\xcd\x4d\xa4\x9e\x8f\x2f\x29\x5a\x59\x6f\x58\xaf\x5c\x19\x29\xa2\xe0\xef\xdc\xa9\x92\x2f\x5a\x95\x6c\x53\xc3\xd2\x49\x75\x66\xee\x2e\xe3\x7a\xae\x65\xa9\x1c\xc8\x61\x89\x65\xc9\x8f\xd0\x02\xd4\x4d\x10\xe8\xb3\x1b\x66\xd4\x0d\x76\x95\xa3\xed\x26\x66\x47\x52\xf3\x5c\x3a\xb3\xab\xa0\xf9\x27\x52\xc5\x77\x15\x34\xf1\xf7\xa7\x57\x53\xb7\x5f\x46\xb3\x61\x49\x68\xc3\xb9\x6a\x16\x85\xf9\xaa\x6a\x20\x44\x91\x9e\xba\x82\x96\x8a\x66\x8a\x25\x04\xe2\x1d\xda\x32\xa4\xb7\x6c\x34\x49\x2c\x68\xd5\x44\x66\x2b\xe9\x32\x98\x3e\x9e\x8a\x2e\x82\xd6\xbf\x32\x6d\x6c\x79\x28\x69\x61\x36\x16\x59\x34\x4f\x7f\xe4\x19\x57\x89\x28\xce\xd5\xb0\x10\x66\x51\x7a\xef\x8c\xd6\x4d\x19\xba\xaa\xcb\xc7\x59\xa6\x79\xda\xed\x53\x7b\x26\xe9\x05\xa0\xae\x6f\x98\x2d\xf8\x60\x20\x13\x10\x07\x54\x1a\x05\x22\x1a\x51\xdc\xcb\x44\xd4\x70\xd3\x31\x64\x95\xab\x7a\x27\x2b\xe4\xff\xb6\x4c\xff\x85\xa0\x4c\x8a\x6e\x5a\x30\xfa\xe8\x14\x9d\x5e\x5c\x13\xb4\x4c\x14\x41\x74\xfc\xeb\x75\xfd\xf5\x66\xa1\xb0\x56\x92\x45\x8b\xfc\xdf\x95\x87\x7b\x7e\x39\x3d\xda\x9f\x4e\xce\x9c\xc2\xf4\x21\x17\xea\xda\xf2\xe4\x6e\xf3\xa1\x43\xf4\xd4\xb2\x54\x5a\x88\xb0\xaa\x09\x45\x4e\xf0\x2b\x52\x38\x3c\xfe\x10\x60\x1c\xd6\xf9\x00\x22\x56\x3a\x4c\x40\x98\x37\x84\x71\x21\xe9\x09\x65\xf7\x1b\xa7\x06\x95\xcb\x28\x7f\x5c\xda\xed\x5e\x73\x37\xfc\xeb\x86\x29\x73\xf1\x15\xaf\x3d\xaa\x31\x09\x37\xff\x6e\x68\x6c\xf5\x58\x26\xdb\x74\x7f\x45\x97\x96\x46\xdc\xee\x86\x63\xe3\xd6\x17\xbc\xc5\x6d\x94\x53\x14\x66\xe6\xb9\xa6\xb3\x5b\x9d\x8d\xa8\x50\x46\xe3\x60\x7b\xa2\x51\x1f\x09\xbb\x59\x9d\xb8\xd8\x91\x30\xa2\xd1\xfd\xb6\x59\xc3\x0c\x62\xbb\x39\x7f\x58\xf9\x38\xcc\x88\xfa\x5c\x74\x20\xa6\x9b\x57\x30\x97\x42\xe9\x72\x38\x6a\xd6\x2c\xc9\x04\xa6\x1a\x64\x3a\xe1\x56\x50\x30\x18\xbd\x9b\x86\xb2\x24\x55\x8d\xdb\x3a\xb4\x65\x8b\x73\xd4\x82\xa2\xc7\x05\x2d\xe8\xe3\x76\x65\x15\x4b\xdf\xbb\xe3\x22\x1e\x8e\xa8\xec\x6e\xf7\x41\xda\x51\x97\x24\x89\x23\x18\xf1\xd1\x57\x08\x2f\xb1\xa6\x35\x62\x9d\xcd\x6b\x99\x10\x04\x6d\xe3\xdb\x8b\x80\x05\xd9\xa4\x1b\x8a\x51\x51\x8e\x04\x86\xa4\x29\x9d\x0a\xe6\xae\x8d\x13\xb4\xd9\xc1\x8f\xc2\x72\x36\x10\xdc\x89\xd4\x87\x4f\x54\x2c\x21\x02\xe2\xaf\x6c\x3b\x90\x9c\xf4\x30\x12\x14\xff\x10\x70\x14\x20\x8e\x81\xa5\xc2\xdd\xdf\x67\x2f\x1e\x85\x2a\x27\x96\x05\xe0\xa5\xd5\x5d\x23\x32\xa8\x71\x01\x9f\xc7\xaf\x6f\x5c\xf1\xb5\x65\xfc\xe2\xa0\xcc\x10\x28\xc2\x1b\x56\x28\xd0\x93\x60\x28\xdc\x3e\xc2\x82\x52\xe4\xa5\x0f\x8c\x8e\x01\x2b\x8a\xda\x6a\xb2\x83\x54\x9a\xbb\x4e\x55\x7f\xa0\xc3\x7a\xbd\xde\xb6\x03\x9e\xb7\x12\x85\x78\xf1\xf6\x7a\xad\x7c\xb8\x8b\xb7\xd7\xad\x31\x41\x5d\xdb\x97\x84\x37\xe2\xe1\xe9\xc5\x63\xfd\x5c\xbb\x71\x12\x32\xdd\xa6\xc9\x51\x6a\xb0\x86\x0d\x61\x1b\xc9\x12\x6e\x0e\x38\xaf\xad\x63\x63\x6e\x65\xfe\x4b\x52\x30\x8a\xe5\xe5\xf8\xd0\xde\xe4\x95\x53\xaf\x8f\xb8\x43\x33\x8d\xdf\xf3\x59\x76\xb4\xe5\xf5\xa5\xc9\x6e\x3b\xac\x78\x16\x04\xf7\x2c\x5e\x8e\xa8\xd7\x50\xe4\x20\x45\x74\xb5\x44\x13\x10\x0d\x3c\x86\x52\x20\x6e\x1d\xc7\x65\x66\x65\x9e\x45\x02\x05\x48\x92\x9a\xf2\x00\x76\xe6\xf4\x17\x6d\x4e\xdf\x99\x83\xbf\x14\x73\xf0\x9f\x3a\x32\x2b\x50\xac\xd5\x03\xb3\xfa\x62\xc4\xef\xa5\x0e\xb0\xad\x55\x4c\xe9\xe7\x0b\xd1\x8a\x97\xa5\x69\x41\x58\x77\x61\xb0\x9f\x25\x47\xc3\x96\x26\x4a\x25\x81\x2b\x58\x16\x05\xdc\xc1\xc8\x0c\xf1\x12\x96\x68\x99\x66\xf7\xe4\xee\x81\x8a\x91\x6e\xd5\x33\x10\xba\x3d\xd1\x2a\x6d\x96\x61\x9b\xcb\xa8\x43\xe3\xca\x54\xe0\xb1\xea\x79\x5f\x97\xb8\x7d\xc0\xae\x57\x51\xfb\x9d\xd4\x7e\x53\x70\xa8\x94\xaa\xd5\x8d\x9c\x36\x02\x6c\x40\xaf\xa0\xbb\x39\xc4\xd1\x18\x3e\x9c\xfa\x56\x4b\x11\xd9\x4c\x8b\x11\x6d\xde\x9c\x7d\xcf\x66\xdf\x90\x2a\xe4\x3f\x25\xf5\x8d\x30\x5c\x6f\x0a\x27\x11\xbc\x75\x22\x72\x87\x7d\x54\x77\x4a\x3f\xac\x93\xdd\xbf\x42\xe4\x46\x55\xa0\x04\x6e\x98\xce\x32\x51\x54\x03\x7b\x8a\xa0\x8d\xe9\x35\xdb\x9a\x48\xba\x24\x8a\xa3\xd6\xae\x6e\xc9\x0e\x8f\x76\xe1\x1b\x2f\x5b\xde\x5c\x29\x7c\x23\xf6\x2e\x56\x3a\x89\x77\x2c\x92\x23\x22\x03\xa0\x84\xed\x1b\x1a\xe1\x34\x6d\x39\x86\xa3\xe2\x19\x2b\x9b\xa1\x77\x32\xfb\x17\x28\xb3\xef\x42\x38\xf0\xf7\x27\x97\xd1\xb6\x1f\xc1\x51\xd7\x38\x5a\x30\x2d\x52\x3c\x62\xd9\x9a\x5b\xdc\x18\xcc\x23\x58\x2d\x9d\x6d\x20\x15\xcf\xe4\xef\xcb\x2b\x8c\xbc\x0d\x0d\x81\x20\x28\xa6\x73\xfe\xef\xb2\x22\xac\x84\x70\x80\xd1\x22\x64\xe4\xc7\xe2\xf6\x88\xd4\x3e\xe6\x4a\x28\x9b\x39\x86\x33\xd6\xf7\x9e\xfc\xe2\xe5\x27\x23\x58\x5b\xf2\x6b\xb9\xb9\x33\x47\x3c\x1d\x4b\x25\x8d\x15\x45\x37\xc1\xb2\x39\x2b\x13\xdc\x4d\x11\x68\x96\x29\x0f\xed\x37\x7f\x99\x7f\xb7\xd1\xd2\x6d\x41\xec\xbc\x43\xe1\x7c\xb9\x9e\xd5\x02\xda\xcd\xcb\x7c\xcb\xce\xc3\x55\xdd\xbd\x4c\x52\x06\xbf\xe7\x32\xe3\xfd\xcc\xed\xaf\x11\xc5\x3d\x47\x10\x01\x18\x46\xd8\x9d\x7d\x53\x1b\x66\x33\x28\x79\x6b\xdc\xb1\x52\x7d\x5a\xee\xec\x7c\x57\x7f\xce\x6d\x32\xea\x8e\x45\x31\x14\x5d\x04\x49\x69\x4a\xb1\xb3\xdf\x30\xb6\xe0\x56\x0c\xe1\x05\x78\x7b\x8e\x07\x69\xc4\xcd\x32\x51\xfd\xd2\xb5\xf1\xe2\x8c\x5f\xbf\x0a\x2d\x01\xba\xf0\x2a\x85\x5a\xa8\x59\x6f\xe5\x4a\x3d\x99\xaf\xf4\xa2\x0e\x0e\x33\x75\x13\x74\x2a\x50\x24\x71\x32\x97\x28\xd0\xff\x29\x15\xfb\xa5\x9a\x15\x3b\xe3\x09\x39\x46\xc1\x6f\x41\x29\x0b\x25\xd6\xa6\xa6\x9a\xd3\x12\xc2\x6d\x70\x35\x79\x32\x12\xec\x40\xf6\x44\xcf\xfd\x24\x6c\x92\x1e\xee\x14\x80\x17\xad\x00\xec\x84\xd7\x2f\x45\x78\xfd\x73\x1b\x9c\x75\xba\xa1\xad\x99\x53\xe0\xc0\x1f\xd6\xb2\xec\x56\x60\xb9\x51\xf9\xbd\x36\x40\xe3\x50\x86\x44\xe1\x02\x22\x61\x62\x4b\x1a\xae\xc4\x65\x28\x07\x4f\x0e\x77\x1f\x39\x72\xe5\xdd\xd2\x7f\x6a\x7b\xb3\x63\xaf\xdb\x55\x61\x74\x2a\x8e\xd1\x21\xbe\x84\x6f\x53\xab\xca\xb8\x1c\xcb\xb0\x21\x77\x4f\xa7\x4e\x42\x9c\x2a\xdf\x33\x9f\x0d\x4f\x7d\x7b\xd6\xf7\x6f\xa8\xeb\x39\x75\x81\xb6\x64\x4f\xbd\x88\xbe\x00\x61\x4d\xc1\xa6\xeb\x43\x95\x3b\xec\xec\x11\x19\x31\xe2\x1d\x9e\x2b\xff\xd7\x13\x5b\x59\xfd\x32\x6d\x6c\x66\x75\x1b\x49\xe1\x66\xcb\xe4\xb4\x10\x96\x06\x6c\x18\x4e\x26\x58\x9b\x6b\xcf\x9c\xb8\x92\x96\x99\x63\xc7\x45\x99\xb5\x32\xbd\xe6\x10\x1a\x58\x88\xf4\xb4\x74\x8b\x73\x1d\x7a\x38\x1f\x2a\x1d\x7e\x3e\x03\xa8\x9f\xe5\xe2\x99\x3b\x1a\x34\x08\x0f\xef\x83\x1f\x00\xb0\x41\x7a\xc0\x72\x9d\x82\x48\xe5\x06\x4f\x7a\xae\xe1\x56\x9a\x01\x12\x99\x30\x1d\xf1\xe8\x84\x06\x44\x26\xac\x80\x82\x81\x14\xf9\x22\xe2\x1d\xd6\x2f\x2d\x93\x16\x84\x89\x64\xa4\xb5\x11\x44\xc7\xb1\xdf\x7b\xa9\x41\x68\xc3\xb3\x53\xb0\xb1\xa3\x56\x44\xe3\xa2\xee\x31\xd4\xad\x7a\x4d\x1a\x36\x86\xca\x4b\x7e\x75\xbc\xb6\xe0\xba\x09\xf0\x75\x43\x40\x01\x33\x4e\x3a\x19\xbb\x4e\x1f\x84\x1c\x8e\xac\xe9\x30\x10\x7f\x03\x52\x4e\xd5\xed\x58\x08\x6b\x18\xcf\x32\x3f\x84\x78\xc3\xaa\x24\x74\xc3\x0e\x9a\x49\xe6\x1d\xff\x7c\x6a\x9f\x66\x2e\x17\x82\x4c\x1d\x76\x18\x65\xc3\x39\xc9\xad\x1c\xbb\xa5\x93\xd6\x47\x01\xda\x51\x01\xa1\xab\xb0\x14\x19\x7d\x58\xd7\x2a\xb4\x3b\xc1\x96\xa7\x00\x4f\x76\xbb\x87\xb3\xbb\xdd\x0b\xe5\xd8\xcb\xb1\xc7\xaa\x82\x19\x7a\x00\x06\x74\xc4\x14\x88\x61\x07\xef\xc2\x93\xb3\x6a\x74\x7f\x0b\x2f\x1d\x98\xc3\x6a\x39\x47\x72\x38\xf2\xab\xc9\x09\x75\xaa\xbe\x0b\x5b\x56\x6f\x2f\x7d\xbf\xd5\x6a\xde\x88\x62\x8d\x8c\x95\x9a\xbf\x6b\xf6\x36\xb5\xbb\x4e\xab\xf1\x7a\x08\xc0\xd4\x8b\xe1\xd1\x08\xa0\x2e\x1c\x92\xda\x31\x9b\x73\xa9\x60\xf5\x9d\x64\x3d\x16\x96\xb9\xcb\x59\x1d\x36\x2b\x1d\xdd\xa5\x52\x74\x78\xc1\x49\x04\xf7\xb7\x3b\x65\x5a\xd1\x09\xa1\x38\xcc\x75\x46\x90\x08\x6e\x42\xb1\x68\x1a\x85\x1e\x0b\x8c\x4a\x67\x29\xac\x22\x0c\x41\xf8\xa5\x64\x07\xa2\x37\xec\x45\x78\x6e\xa8\x13\x1c\x76\x22\xc1\x05\xa8\x04\x60\xbb\x21\x1c\xa5\x2d\xc0\xa6\x16\x21\x90\x89\x7b\x49\xe8\x9e\xae\x73\x50\x49\x9c\xda\x01\x33\xd9\xb2\x66\xde\xca\x9d\x1c\xb7\xab\x98\x7d\x30\x2d\x4d\xb1\x7d\x92\x61\xdb\x79\x92\x7f\x16\xbc\xb0\x7d\xc1\xed\x53\x38\x92\x17\x1d\xca\x77\xdc\x58\x38\x4a\xec\x41\xb0\xa1\xb6\xd5\x76\xa1\xd9\x75\x28\xef\x85\x8a\x9d\xa6\x33\xaf\xda\xd3\x3b\xc3\xdb\xcd\xa1\xe6\x79\x46\x0c\x75\x49\xe6\x58\xc7\x2e\x48\xb0\x86\x43\x09\x18\xb0\x73\xa6\x33\xc7\xc9\xde\xcc\xd3\x2a\xc7\x5c\x41\x58\x28\xd8\x06\xe9\x25\x26\x55\x0a\x48\xd3\x6a\xd8\x08\x33\xc8\x60\x98\x61\x95\xd6\x90\xd5\x66\x7b\xf0\x1b\xc3\x3a\xe8\x17\x52\x0c\x0e\x6b\xa8\x84\xf1\xb2\xec\x9b\x2d\x8c\xe4\x8f\x1a\x11\xe0\xb8\xe3\x1f\x2d\x02\x00\x09\xcf\x40\x0e\x97\x86\x99\x37\x9b\xc6\x65\x5b\x19\x49\x31\xd1\x2a\x54\x19\xfb\x50\x2a\x23\xb1\x54\x70\xd7\x94\x7d\x24\xfd\x07\xe2\x31\xc9\x4a\x14\x1c\xc8\x5c\x70\x18\xfc\x20\x4a\xab\xae\x92\x6d\x62\x58\xf1\x53\xef\xf9\xfa\xe8\xa3\x27\xbe\x87\xa9\xc5\x58\x44\x17\xc2\x5b\x28\xa9\x87\xb4\x1f\x44\x13\xbf\x40\x95\x2c\x34\xda\x3e\x4f\x71\xa3\x5c\xea\x03\x69\x34\x6d\x78\xc1\x4c\xf3\x0a\x0d\xe4\x90\x71\x63\xe4\x50\x21\xa3\x76\xef\xf7\xae\x73\x91\xf4\xe2\x65\x69\xa3\x60\x26\x56\xde\xaf\x4c\xa6\xe7\x9f\xca\x45\x1b\x71\x0c\xdf\x62\x85\xc0\x0c\x4a\x98\xca\x48\x24\x77\x20\x42\x88\xd4\xcf\x2b\xc8\xaf\x12\x91\x9a\xef\x45\x36\x61\xa5\x91\x6a\xd8\x63\xd4\x05\x88\x39\xc1\x82\xe9\xd3\x49\x62\xe7\x01\x29\xfe\x7e\xc9\x8e\xfd\x5a\xe1\x37\x3a\x4c\xd7\x9b\x3b\xde\xf1\x8b\x23\x3c\x3f\x69\x5d\x35\x4a\x45\x2e\x50\x60\xd6\x8a\xf9\xa2\x3a\xdc\x5a\x40\x93\x45\x84\xe0\x92\xf0\x94\x1b\x1f\x20\xa4\x71\x88\xc0\xe0\x8a\x89\xa2\xd0\xf3\xb8\x8c\xdf\xc6\x67\xda\x03\x3f\xce\xd6\xbb\x00\x6b\x4d\x72\x59\x69\x44\x8f\xfd\x3a\x12\x6a\xce\x81\x73\x5b\x46\x96\xdf\x4e\xd5\x43\xd5\x3d\xf9\x74\x8d\xd1\x89\xe4\xd1\xc7\x72\x3e\xc9\x34\x07\x84\xdc\x0c\x52\xc4\x30\xf9\x87\x67\x5a\x0d\x51\x1d\xe1\x94\x89\x1b\xf3\xd5\x90\x49\x89\xbd\x44\x2a\x23\xdc\x71\x72\x12\x80\xcf\x01\x5e\xb5\xda\x2b\xa4\x4e\x82\xa4\x4f\x57\x83\xeb\x10\x12\xb4\x5f\x97\xea\x45\xa9\xc2\xfe\xf6\xaa\x9d\x86\x24\x10\x9c\x6d\x88\xb4\xa1\x8b\x8a\x10\xd5\x98\xe7\x07\x3d\x8c\xb8\x61\x7d\xe1\x44\xa8\x78\xa9\xad\xa6\x72\x58\xbf\xfa\xd4\xb2\x5f\xca\xbe\xc8\x84\x45\x68\x5b\x82\xa4\x86\x2a\xbd\xb6\x40\x8c\x21\x36\xe6\x77\xb3\x4f\x1c\xfc\x86\xd7\x83\x7e\xe9\x4f\x20\x07\x15\x54\x52\x05\x8e\x0f\x99\xf2\xe0\x1a\xa8\x8d\xc4\x6f\x40\xf0\x1f\x01\x55\x09\x93\x9e\x7d\x72\xe1\x54\x2f\x61\xb9\x67\xae\x4d\x0c\xbd\xae\x26\x00\xcf\x9c\x89\x31\x2e\xaf\x4a\x64\xe6\x87\x34\x7d\x9e\x48\x6f\xa9\xcd\xab\xc7\xa0\x53\x74\x57\xe8\x24\x29\x8b\x0e\xaa\xf6\x58\xe6\xa9\xd3\xb8\xa1\xd5\x3c\xe7\xf7\x8f\x87\x2e\xba\x1b\x6e\xd3\x16\x74\x04\xea\x08\x2d\x59\x74\x9a\xe1\xa4\x4e\x7d\xa4\xd9\x0f\xbc\xa5\x0b\xbf\x1f\x33\x77\x93\x30\xa9\x9b\x13\x75\x5a\x57\x2a\x07\x98\x3a\xea\xf3\x8d\x1f\x46\x32\x73\xfa\x94\x4a\xdc\x07\xc2\x1a\xf1\x22\x93\xa2\x40\xd2\x63\xbc\x2e\xa6\x1f\x94\xff\x7c\x35\x1d\xf7\x1a\x36\x3b\xac\x14\x48\x2a\x95\x00\x18\xc2\x85\xce\xb2\x3e\x4f\xa0\x2c\x74\x8d\x52\xc6\x9e\x36\xa3\xb3\x7b\xc1\x78\x52\x68\x63\xc2\x39\x2e\x04\x1c\xdc\x1e\x7b\xc7\x6d\x73\x30\xfe\x6c\x56\x4b\x81\x45\xe4\x67\x50\xa3\x43\x4f\xf1\x5b\x8c\x09\x5c\x4e\xe4\x1b\x74\xdf\x4c\xb8\x93\x2b\x11\x68\xb1\x34\xa8\x54\xe6\xda\x18\xd9\xc7\xea\x0a\x7e\xe4\x60\x75\x81\xd3\xda\x9f\xb0\x81\x7c\x0c\xf7\xa4\xc1\x6d\xa5\x9a\xde\xe2\x1e\xfb\xbb\x2e\x21\xb9\x71\x20\xc9\x42\x83\xa9\x3d\x53\xea\x60\x2a\xfa\xe5\x70\x08\xb5\xe7\x27\xcc\x08\x30\xb6\xd3\x87\xf0\xe3\x95\xfe\x50\x23\x08\x99\xf6\xe7\x1e\xa5\x98\x91\xd3\x3a\xba\x41\xeb\x88\x6e\x5d\x30\xa6\x41\x63\x08\x42\xf8\x1b\x23\xbd\x0a\x4b\xed\xc1\x02\x07\x7e\xa6\x0b\xd8\xef\xd0\x37\x04\xb6\xa0\x15\x8f\xdc\xb0\x78\x1c\xb2\x50\x54\xdc\x58\xde\x97\x99\xb4\x13\xff\x29\x7c\xd7\x8a\x47\xdb\xdc\x7f\x62\xc3\xeb\x58\xa4\xb3\x78\x53\x9f\x87\x39\xd6\xa5\x80\xd5\x38\xe4\x80\x67\x19\xf3\x07\x12\x52\x85\xa5\x65\x42\x01\x80\xbb\xe3\x45\x5e\x0a\x68\x27\x3f\x20\x2f\x6b\x92\xf8\xbe\x48\xf4\x98\x44\xc2\x59\x12\x4b\x95\xa2\x0c\xe3\x4a\x05\x42\xa7\x8b\xa8\xd2\x45\xb3\x4b\x69\x60\x3b\x33\x01\x37\x19\xac\x84\x89\xa5\x32\x2c\x32\xc4\xb2\x64\x13\x26\x1d\x6d\x1d\x0b\x5f\x9b\x91\xb3\xd7\xaf\xba\x63\xa9\x4a\x2b\x98\xd1\xfc\xce\x63\xb2\x03\xcf\x72\x73\x0b\x43\xc9\x28\xe7\x1b\xf8\xa0\x1e\xcc\x1a\x41\xe5\x2c\x9e\x29\xad\xb9\x26\xc4\x01\x68\x16\x02\x91\xce\x81\x47\xe3\x87\xe1\x86\xcf\x5d\x9f\x1e\xbb\xd0\xd6\x5b\x92\x07\x33\xf8\x00\xf2\x5b\x01\x19\x9f\x4a\x66\xec\xc0\xed\x0b\x89\x22\x94\xd9\x49\x76\xab\xfa\xba\xbb\xbb\x98\x19\x5d\xab\x70\x10\x77\xd4\x71\x63\xe2\x7e\x93\x6b\x1d\x46\x93\xe3\xd9\x03\x9f\x18\x47\x62\xca\xb1\x48\xd9\x10\x46\xec\x28\x4a\x74\x01\x81\xef\x43\x0b\x2a\x7e\x53\xc5\x45\x91\x57\x69\x2c\xec\x48\xc3\xba\xf8\x8d\xaf\xf8\x41\x74\x67\xa3\x7d\x56\xc2\x98\x8e\xdb\x4d\x58\x48\x34\xd8\x23\xfe\x5b\x41\x6b\x59\xe9\x87\xee\x88\x10\x4d\x1a\x94\xb6\x2c\xb6\x6e\x7d\x3b\xe5\x62\xac\xd5\x19\x85\x1a\x2c\x53\x96\x1a\xad\x21\x54\xcf\x10\x34\x8b\xce\x05\xa9\x45\x29\xb4\x32\xac\x28\x95\x22\x31\x1e\xf2\x97\xda\x59\xe4\xee\x90\x88\xf9\x8f\xac\x4d\x83\xea\x63\x5d\x48\x81\x7c\x23\x54\x38\x64\x32\x8a\x25\xc2\x0c\x8a\xf4\x43\x22\xf7\x76\x97\x7e\x59\x52\x01\x35\xf1\x2e\x97\x87\x91\xce\xaa\xe0\x48\x47\xf7\x2e\xc0\x6f\x84\x03\x86\x80\x24\x90\x75\x0b\x31\x84\x80\x2b\x2f\x19\x8d\xb9\xfb\x6b\x17\x7c\xf4\xa2\x83\x8f\xda\x64\x1f\xbc\xa3\xad\x07\x77\xe1\x96\x03\x1c\x75\xba\x8b\xfc\xdf\x05\x4f\xed\x22\xff\x9f\x27\x5a\xe6\x09\x82\xfe\x63\x3f\xe8\x7c\x9e\x72\x8c\x22\xaa\xa1\x96\x4d\x44\xaf\x52\x45\x9a\x8c\xb7\xa5\xe9\x41\x2d\x68\x00\x60\x4d\xd8\xbf\x4b\x01\xa6\x11\x7d\x0f\x80\x32\x4e\xf4\xf2\x94\xe9\x6f\x3e\x74\x00\x84\xc3\xc6\x17\x3e\x5c\x05\x97\x3f\x8d\x21\x62\x0f\x55\x7c\x55\x7d\x94\x4e\xac\x6a\x13\xc3\xa1\xa2\x45\xb8\x71\xef\x2c\x0d\x38\xc7\x73\xd2\x63\xc7\x81\xaf\xce\xfa\x32\x68\x05\xf0\x4f\xf0\x08\x7f\xb8\xda\xba\x07\xfe\xa2\x31\xf2\x27\x03\x8b\x9c\x5e\xa2\x6d\x78\x48\x7c\x8f\x57\x95\x4b\x7b\xa5\x43\x58\x95\x1d\x40\xfe\x10\x96\xdf\x1d\xa4\xe0\xed\xf5\xf5\x30\x39\xbb\x13\x13\x64\xf8\x90\x34\x22\x0a\x1e\x1a\x43\x45\x47\x92\x47\xee\xc4\xc4\x5b\xe0\xca\x56\x31\x40\xed\x6a\x95\xe2\x05\x80\xaa\x90\x5e\xbd\x0b\x03\x5e\x1d\x95\x3c\x22\xe6\x7e\x26\xed\xd3\x24\x60\x25\xf6\x0d\xd5\xb1\xd4\x0a\xf0\x88\xc0\xbf\x42\x17\xd2\x0b\x3e\x9f\x78\x26\xd3\xb0\x54\x78\x8c\xcf\x55\xc7\xe9\x67\xee\x7f\xce\x1e\x9d\x1c\xdf\x61\xa7\x5a\x98\x0b\x6d\xe1\xcf\x1e\xfb\x89\x6c\xb3\xef\xd6\x29\xc8\x8a\x5f\x5e\x26\x48\x2a\x06\xe7\x18\x70\x1e\x23\xa1\xc0\x04\x9d\x34\xec\xae\x34\x8e\x2d\xeb\xc2\x0f\x19\x04\x4e\x4c\x10\xc2\x2e\x62\xcf\x18\x18\x53\x66\xf6\x81\x33\x75\xfd\xc4\x73\x5d\xd0\xdd\xfc\xae\x7e\x02\xbc\xa7\x77\x73\x5f\xa6\x14\x01\x23\xd5\x30\x0b\x91\x45\x1d\x12\xd7\x7d\xf9\x55\x90\x62\xf3\x42\x78\xfd\x5e\x31\xaa\x6b\x4a\xc6\x00\xec\x0f\x65\xe8\x8c\x27\x50\xa8\xaf\x40\x83\x1d\x25\x82\xc8\x84\x41\x1a\x08\x83\xf4\x90\xe7\xa9\x93\xdd\x92\xd8\x34\x8a\x8f\x86\xf3\xbd\x4d\x92\x03\xd4\x72\x21\xad\x29\xb3\x0c\xaa\x40\x40\xe6\xd8\x34\x79\x0f\xf1\x5a\x4a\x57\x00\xec\x58\x58\x30\x8a\xcf\x41\xa6\x85\xf1\x58\xc7\x17\xa7\x58\x33\x57\xb0\x1b\x9d\xeb\x4c\x0f\x27\xf1\x68\x10\x7b\x2e\x18\x6e\x80\xa0\x95\x7d\xba\x90\x5e\x0f\x8e\x5f\x68\x41\x99\x9a\x91\x63\xcb\xee\xd5\x1c\x76\x56\x9b\x52\x7f\xe2\x4d\x18\x40\xd1\xb6\x0d\x71\x39\x8f\x2f\x6c\xa2\x65\xc0\x32\xbc\x95\x22\x4b\xb7\xbc\x02\xe0\x71\x7f\xb1\x2b\xb0\x0d\x63\xc3\xb2\x64\x50\x6a\x32\x3f\x0f\x14\x81\x83\x83\x8b\x98\x2a\xbf\x82\x89\xa1\x75\x14\xc2\x54\x0c\xc5\xea\x0b\xda\xda\xaa\x7c\x3e\x55\x7a\xc6\x04\xe7\xd3\x50\xd8\x19\x71\x18\xa8\x3c\xba\x6b\x7d\x3a\x51\x7c\x2c\x13\x32\x02\xe1\x27\x3d\x02\x26\x1b\x72\x2b\x2a\xf6\xa0\x78\x3f\x8b\x50\x65\xbd\xdd\x28\xd8\x98\x7d\x24\xdf\x1c\x5f\x9e\x0f\xdc\x3e\x5d\x72\x9e\x4f\x1d\xd3\x4f\x50\x3d\xbd\xd0\x16\xcc\x3f\x64\x28\x33\xc8\x4c\xc0\xfa\x19\x3e\xd7\x63\x57\x98\x14\x4b\x81\x8c\xe0\x19\x7d\xdd\x7b\xfd\x4d\x8f\x19\x21\x2a\xed\x4c\x1a\xe3\xd8\x2d\x29\x68\xdf\xbf\xfe\xeb\xf7\xdf\xaf\x03\xf2\x9c\x9e\x9c\x9f\x5e\x2d\x85\x79\x86\x56\x4d\x8d\x20\xd7\x29\x3b\xbf\x64\x05\x58\x40\x83\xbb\x27\x8e\x9c\x5c\x7b\x40\xcb\x88\x84\x6f\xd6\x1c\x92\x1f\x8e\x99\x39\x1e\xd8\x6b\x04\xb7\xef\x4f\xd8\xa5\x4e\xa9\x40\x0e\xb7\x71\xa0\x67\x88\xe0\x94\xa6\x79\x0e\x5f\xd9\x11\xa1\x51\xc3\x29\x42\x20\x7c\x5a\x0a\x58\x21\xda\xc1\x73\x8a\xe6\xa6\x92\xe2\xdc\x62\x14\xf0\x6b\x32\x9c\x84\xb8\x6a\x3d\x60\xe7\x97\xf7\xdf\x82\xac\x76\x7e\x79\xff\xfd\x53\xca\x00\xdb\xca\x4e\x45\xf4\xbe\x62\xe9\xb9\x3f\x3f\x8d\x33\x71\x6a\xc1\x37\x68\xd8\xd1\x65\xea\xb1\x00\x43\xf2\x25\xfa\xfe\xde\xb0\xdb\xf2\xd5\xab\x6f\x92\x4b\x7a\x7a\xc1\xc7\x02\x7e\x11\x6f\x8e\x8e\xea\x8f\xae\x71\x83\x12\x47\x60\xce\x4f\xb1\xd1\x1a\xa1\x70\xbc\x61\x41\x9f\x39\xa1\xe9\x8a\x58\xc8\x82\xf0\xed\x2d\xb3\xa0\x1b\xd7\xe9\x46\x2c\xb7\x54\x14\xd0\xec\xe8\xdc\x92\xb9\x7d\x8c\xdb\x7a\xd8\x1f\x43\x1c\xd8\x3f\x09\x2e\x4c\x25\x1e\x20\x03\xa2\xc7\x7e\x9c\x78\xef\x4c\x27\xf0\x97\xa8\xa7\x95\x31\x54\xc0\x0c\x01\xff\x3d\xfa\x6a\xcc\x55\xc9\xb3\xae\xfb\xa3\xeb\x93\x91\x91\xdc\xb7\x85\xf9\xdc\x0a\xf7\x6d\x13\x89\xb6\x4e\x22\x7e\xcb\x28\x67\xca\xd4\x59\xaa\x90\x79\x13\x73\x68\x8f\xa5\x9e\x39\x39\xed\xab\x60\xf6\xff\x04\xfb\x0f\x45\x86\xd7\x6f\x61\x87\xc9\x41\x95\xb5\xbf\xd1\xe6\x55\xc3\xb8\xd0\x56\xbc\x41\x95\x28\x90\xd5\x54\x24\x19\x2f\x50\x71\x02\x5a\xe3\xbe\x87\x2e\x74\x48\x99\x00\xad\xc8\xe9\xe9\x54\x57\xdc\x94\x83\x81\x4c\x24\x3a\x56\x31\x73\xbb\x13\x0a\xf4\x2b\x86\x0e\xc3\x94\x5b\x0e\x8e\xba\x12\xdd\xfa\xde\xa7\x2c\xe9\x1b\x69\x8f\x9d\xf0\x2c\x8b\x3c\x16\x52\x19\x2b\x78\x0a\xfc\x9e\x03\x24\x73\x97\x94\x35\xb0\x68\xa0\x5a\xc6\xae\x85\x80\xe9\xbf\x39\x3a\xca\x0b\xcf\x6f\x7f\xf8\xeb\x37\x7f\x7d\x4d\x75\x3c\x7d\x20\xcd\x13\x08\xa1\xc7\xf5\x3c\xad\x65\x74\x60\x19\x8d\x7f\x32\xcc\x02\x9e\x01\x4e\xfc\x2c\x4a\xf3\xf2\x4a\xe5\x1d\x57\x83\x6d\xca\x0f\x55\xa5\x9b\x70\x47\xab\xba\x1b\x15\x9e\x85\xdb\xf7\x2a\xa5\xa4\x0e\x66\x7c\xc2\x73\x9e\x48\x3b\x59\xa3\xba\x5e\x42\xaf\xbe\xfc\x25\xf4\x93\x6c\xae\x9f\xd5\x16\x62\x17\xa6\x56\x71\x6d\x2c\xe4\x5c\x14\x06\xdc\xb8\xb6\xeb\x61\x91\xc3\x32\xad\xbe\xc0\x6d\x01\x4d\x42\xc6\x8a\x07\xb8\x09\xc6\x2e\x4f\xca\x43\xd6\x71\x3d\x36\x7e\xf5\x12\x70\x31\xd5\x0c\xdd\x6c\x9f\x92\xfc\x71\xf0\x4f\x50\xb3\xdb\x86\xaa\xd9\x1a\x9e\x74\x4e\x9c\x78\xac\x3a\xdc\x4b\x0e\x7f\xa4\xa8\x60\x06\x75\x31\xa9\xa9\x98\x73\x02\x3f\xd3\xb9\xa1\x1a\xab\xcf\xad\x19\xf6\xd1\x26\x3a\x02\x66\xb8\x30\xb6\x63\xe6\xb0\xe5\x98\x0f\x5b\x0b\x1e\xa1\x46\x21\xc3\xd7\x42\xed\x51\x35\x95\x64\xbe\xe9\x79\x3e\xf1\x9f\x3a\x77\x5f\xda\x48\x48\x76\x83\x3b\x57\x83\xa9\x2a\xbd\xab\x99\x8a\x20\x35\x0f\xba\x59\x78\xd8\xd0\x90\x28\x53\x73\x54\x96\x12\x13\x88\x51\x98\xc9\x26\x3e\x90\x78\x12\x49\x6a\x1b\x10\x12\xf7\xd6\xfa\xe8\x42\x6e\x4e\x35\x84\xa1\x69\xac\x85\x79\x58\x43\x9b\x0e\x1c\x7b\x83\x0a\x19\x5e\x58\x54\xe2\x5e\x14\x2c\xf7\x40\x0e\xe8\xd9\x50\xfa\x01\x05\xc9\x60\x5c\x59\xc3\xd1\x81\xfc\xe4\x98\x2a\xa9\xb4\x3c\xe7\xbe\xaa\x44\x25\x16\xf8\x4a\x2c\xf3\x2d\x1f\x9b\x1e\x78\x3f\x44\x2c\x9b\xb1\xd1\x81\xa7\xe1\x9f\xab\x8f\x4b\x8f\x41\x50\x29\xe0\xeb\x20\xf8\xf8\xc9\x43\xb1\x61\xc1\x0e\xa8\xd2\xc3\x61\xec\xfd\xfd\x4c\x8e\x8c\x75\x74\xbb\xea\xde\x2e\xd1\xef\x42\x43\xef\xe6\x5c\xe9\x26\xb7\xd0\xf2\xa2\xf0\x89\x16\x8e\xcc\xe3\xa8\x39\x85\xdd\xd6\x3d\xf0\xab\x5f\x86\xbe\xd6\x76\xa9\x4d\xe7\x47\xad\x2d\x3b\x3f\x9d\xf9\xc9\x35\x2e\x60\x60\x19\x57\xa5\xb2\x72\x2c\xda\xc5\xb0\x9d\x34\xde\x62\x3e\xa2\x6d\xd6\xa8\x02\x46\x40\x41\x8d\x0b\x31\xd6\x56\xb0\xe3\xcb\xf3\x10\xe2\x9f\xdc\x89\xe2\xcd\xd1\xd1\xeb\xde\x77\xbd\x57\xad\x0b\xe6\xc4\x11\x54\x8e\xb2\x65\xed\x06\xff\x0b\xb4\x5d\x3c\x64\xd0\xcc\xf7\x4b\x28\x31\xd2\x2d\xf6\x69\x9c\xdf\xf4\x5e\x7f\xdf\x7b\xd5\x7d\xd5\xeb\xe7\xba\xf7\x6d\x97\x8f\xd3\xef\xbf\x5d\x6b\xb4\x65\x5f\x5c\x16\xfa\x71\xd2\x72\xc0\xbe\xf9\xc2\x31\xaf\x39\x8e\x4c\xd8\xf6\xa3\x70\xd2\xd6\x96\xc7\x40\x2a\xd1\xd2\x73\xff\xde\xb7\x9b\xfd\x61\xf6\x56\x17\x1e\x50\x8e\xba\x0c\x89\x41\x09\xa7\x2c\x77\xb2\x7a\x02\x92\x5e\xc3\xca\x5c\xa1\x43\xb0\x77\x82\x17\x0a\xc3\x75\xe0\x18\x8c\xb9\x3a\xf8\xee\xd0\xf7\xda\x95\xe9\x1b\x6f\x8b\x18\x73\xf5\x43\x4f\x17\xc3\xa3\x4c\xaa\xf2\xd1\xfd\xd9\xcd\x9d\xdc\xe5\xfe\xf5\xdd\x51\xf5\x42\xef\xbb\xde\xc8\x8e\xb3\x75\x83\x1a\xa4\x1a\x22\xf5\x6b\x41\x96\x3e\x84\xfa\x5c\xf8\xca\x96\x48\x93\x36\x28\xe7\x2d\x1e\xc0\x87\x6b\x06\xcd\x16\xdc\xa9\x23\x61\x93\x23\x6d\xba\x85\xc8\x00\x9c\x01\x2f\xd6\xa9\xe8\x4b\xae\xd8\x4f\x17\x1f\x8f\xb0\x00\xd4\x0f\xec\xe0\x61\x24\xc4\xef\x93\xc3\x75\xee\x17\xe2\x34\x7c\xfc\xb8\xf4\x50\x5d\x87\x86\x6b\x9f\xaa\xea\x5c\xd6\x4f\xd1\xcd\x2c\x27\x46\xe2\xb8\xd4\x95\x48\xd9\xcf\xdc\x42\x0d\x23\x13\xa4\x33\x9e\x24\xc2\x98\x5e\x21\xd2\x11\xb7\xbd\x44\x8f\x9d\x84\x56\x8e\x7d\xdc\xef\x91\x50\xdd\xd2\x1c\x15\x22\xfd\x6d\xc4\xed\x6f\xa6\xec\x87\x89\xfc\x56\xd5\xd0\x3a\x7a\x7d\xe4\x0e\xda\x51\x31\x32\x63\x60\x8b\xdb\x4d\x13\xaf\xee\xea\xec\xc5\x9e\xe6\x65\x73\x49\xf4\x8c\xb3\xd5\x82\x2b\xcd\xa7\x5d\x8b\xa8\xeb\x82\x0b\xd5\x99\xc3\xff\xe9\xe7\xb5\x83\x2c\x10\x44\x0f\x9c\xed\x2d\x02\x0b\x67\xb4\x26\xa7\x3b\x18\x3e\xaa\x88\x71\x91\xd2\x91\xaa\x45\x81\x6f\x31\x38\xfd\x53\x3d\x05\x99\x42\xd1\xdd\x3f\x61\x74\xbe\x8a\xe0\x43\x21\xad\x15\x48\x52\x21\xb2\x4f\x0f\x3a\x21\xe9\xc4\x9d\xf1\xdb\xbd\xfb\xd7\xb7\x7b\x6b\x5c\xdd\x81\xff\xcc\x32\x7f\xa8\x1b\x09\x8d\x12\x97\xc4\x6a\x5a\xb3\x90\xd7\x1a\x50\x61\x9c\xa4\x41\x31\xa2\x5b\x06\x4e\xa8\x86\xbb\x9d\x13\xd3\xa6\x94\xe8\x9a\x55\x44\x25\xd4\x54\xb4\x18\x8a\x9a\x7a\xe1\x38\x40\x53\x6d\xff\x2c\x45\xab\x3e\x55\x41\xf4\xe9\x0e\xc6\xf9\x80\xe6\x44\xc9\x6a\x9c\xe5\x52\x20\x78\x44\xb8\x31\xc1\xeb\x80\x3f\x3a\x7a\x5e\x78\x04\xec\x0e\x0a\x06\x14\x50\x57\xe5\x55\xa0\x17\x19\xb3\x3e\xd9\xff\xbc\xfe\x70\x71\xf4\x93\xf6\xf1\x01\x40\xba\x31\x6d\x11\xc3\xd4\x4c\x99\x8c\x18\x07\x44\x04\x77\x66\xae\x01\x55\x79\xcc\x95\x1c\x08\xe3\x88\x3b\x51\x37\xf3\x8f\xaf\xff\x89\x3c\x26\xe4\x01\x13\x16\x56\x88\xd9\xf7\x9b\x4c\x25\x33\x23\x13\xcf\x83\xb4\x23\x18\x52\xae\x53\x1a\xf4\x03\x0c\xd6\xf2\x3b\x42\xc0\x41\x57\x77\x26\xef\xc4\x1b\x76\x0b\xc0\x98\xd1\xb7\xff\xb7\x13\x6e\xff\xeb\x76\x0f\x38\x6d\x21\xd8\x2d\x94\x83\xbd\xdd\xab\x25\xa2\x23\x74\x71\x64\x9c\xa3\x8f\x63\xf0\x66\x21\x87\x43\x48\x95\x81\x9c\x81\x7b\xa1\xec\xa1\x3b\x5e\x72\xc0\x94\x8e\x1a\x87\x8a\xe0\xe1\x42\x4e\x0d\xe6\x1f\x5f\xff\xd3\x8d\xa4\x3e\x3b\x26\x55\x2a\x1e\xd9\xd7\x78\xa1\x1d\x7b\xd5\xe9\x21\x71\x56\x33\x51\x96\x3f\x42\x2c\xcd\x48\x1b\xa1\x30\xb3\xdd\x6a\x0c\x1c\x04\x94\xa7\x07\x91\x65\x5d\x5f\xde\xfa\x01\x4d\xc7\x7e\x41\x31\x08\x30\xe7\x85\x9d\x43\x4a\x5b\x9f\xcb\xb6\xb9\x1b\x6d\x6a\xe8\xbe\x98\xcc\x88\x3f\x6c\x61\xe0\xc6\x1c\x9a\x15\x11\xe7\x4d\x84\x2a\x90\x3c\xfd\x6c\x56\x42\xee\x8e\x26\xe3\xdd\x39\xed\x28\xaf\x8f\xc8\x60\x8d\xd7\x30\xcd\x57\x42\xc0\x0c\x44\xc5\x46\xd4\x65\xcc\x53\x24\x3f\x5c\x3d\x3d\x1e\xab\x5b\x32\x70\xe2\x24\x93\x2e\x45\x3a\x00\x3c\x6b\xa2\x15\x7a\x9a\x92\x39\x9e\xa5\x45\x6b\xe4\xc4\xdd\x25\x21\x16\x55\x40\xcc\xd3\x1e\xd9\x52\xb6\xbe\x75\x9b\x1a\xd1\x2e\x83\x73\x8e\x2c\x93\xf3\x05\x87\x66\x53\x76\x70\xf9\xe9\xd0\x27\x95\x61\x05\xeb\x90\x39\x06\xf1\x08\x24\x72\xf6\x27\xe0\x7e\xab\xe2\x3f\x74\x01\xf1\x55\xe0\x96\xe3\x99\x1e\x6a\x42\x26\xdb\xb6\x9b\x71\x97\x75\xf9\x92\xb3\x2e\x77\x59\x8b\x5f\x4a\xd6\xe2\x9f\x1a\xf2\xbd\x49\x15\x57\x83\x7f\xe7\xc1\xb4\x53\x11\x0a\x56\x51\xb2\x50\x53\xfe\xa1\x16\x77\x09\x16\xc8\x1e\xbb\x5c\x46\x64\xb7\x17\xb0\x31\x83\xb8\xce\x5e\xca\xcd\xd0\xe3\xa7\x16\xb3\xb5\xff\xbf\x11\xc5\xe2\x63\x3c\x22\x65\xf6\x88\x42\xf7\x7c\xb4\xf8\xd4\x2a\xaf\x0d\x35\xff\x14\x6b\xba\x8c\xaf\x87\xdf\x9f\x2a\x55\x76\x4a\x30\xa8\xb5\xda\x34\x65\xb6\xd9\xfb\x49\xc6\xe5\xa2\x54\xa2\x99\xed\x91\x35\x94\x46\x14\xfb\x81\x42\x53\x40\x5f\xca\x12\x68\x81\x1a\x7c\x73\xa7\x77\x82\xc1\x4e\x30\xd8\x09\x06\x3b\xc1\xe0\x59\x05\x03\x20\x59\xab\x17\x87\x21\x1b\x20\x4b\x46\xbc\xe0\x89\x15\x85\x34\x56\x26\x14\x97\x49\xe2\x01\x1d\x42\x12\x03\x20\xab\x87\x97\x76\xf4\x54\x22\x00\xfe\x02\x04\xf6\x79\xc4\x00\x5c\xba\x27\x90\x05\xe6\x88\x5b\x30\xb5\x27\xe7\xfa\x73\x96\xf1\xc5\x71\x7e\xe4\xcd\x4f\xcf\xfe\xdb\x60\xd1\x2f\x7e\x91\x8c\xc6\xd9\xdc\x32\xe7\xf9\x7d\xd2\x0e\x95\xfe\xb2\xd0\x7d\xf1\x59\x11\xe9\x73\x37\x82\xd4\xdb\xcd\xff\xb8\x18\xf4\xe4\x76\x7c\x42\x20\xfa\xee\x8b\x03\xa2\xff\x48\xf9\x2d\xe8\x0a\x42\x61\xae\x0f\x78\x04\x23\x5d\xd8\x4e\x88\x05\x28\x55\x2a\x0a\x03\xdc\xcf\x0d\x9f\x64\x19\x70\x8e\x0c\xe5\xbd\xf0\x91\x9b\x01\xcd\x7e\x11\x92\x3d\x3b\x1f\x10\xe4\x0b\x00\xc2\xdd\xee\x5d\x09\x23\x7f\x77\x1a\x54\x61\x45\x7a\xbb\xe7\x8b\xbf\x70\xe5\xe1\x66\x52\x51\x64\x13\x28\x61\x31\x45\x00\xa5\x61\x7d\x81\x05\x61\x5c\x27\xeb\x84\x66\xce\x66\x01\xeb\xa2\xda\xbf\x50\x84\xfa\x99\xe4\x68\x09\xb4\xdc\xdc\x77\xea\xb5\xeb\xe7\x68\x3c\x56\xb4\x42\xe3\xd9\xe9\x2f\x2f\x1b\x4e\xae\x82\x48\x98\x23\x7d\xac\x9e\x85\xb2\xba\xcc\xb1\xd5\x00\xe7\xd9\x52\x43\xd4\xd9\x0e\xd6\xee\x4f\xab\x07\xee\x60\xed\xf0\xf7\x67\x95\xd8\xb7\x8f\x73\x37\x5f\xa3\x5d\x91\xdb\xcd\x00\x3b\x71\xfb\xa8\x55\xad\xf6\xfd\x20\xb8\x15\x53\x71\x2f\x13\x40\xd2\x4f\x19\xcf\x32\xfd\xe0\x6e\x3c\xc1\x18\x3b\xb9\xc8\x67\x3f\x77\x43\x9c\x64\xd5\x4f\x9b\x7a\x20\x89\x30\xe6\x3d\x00\x7b\x2e\xa1\xda\x55\xcb\x2a\x6c\x2a\x56\xd2\x29\x94\x67\x4c\x35\x05\x7d\xb6\x85\x67\x88\x23\x7e\xbf\xd5\x34\x4a\xfc\x5c\x17\x3e\xd7\x7d\xfd\x2c\x49\x1b\x11\xa1\x70\xd7\x73\x43\x50\x99\x9b\x49\x2e\xd2\x77\x3a\xe1\x59\x33\x7e\x6d\x11\xa5\x88\x62\x63\x13\xae\x80\xcc\x1a\x4c\xde\xc1\xfd\x9f\x50\x75\x94\x37\xec\xbf\xb1\x63\xc5\xc4\xa3\x34\xc0\x09\xc8\xa7\xa0\x78\x6e\x46\xda\x7a\x0e\x70\x60\xe8\x87\x1e\xad\xb4\x27\x2d\xf5\xe6\x87\x8d\xce\x2e\x3f\x9d\xb0\x83\x99\xa7\xbb\xd9\x32\x29\x8d\xd5\xe3\x98\xfd\x70\x1b\x43\x54\x41\xd6\x3b\x25\x47\x41\x0d\xb9\xe3\x2c\x1f\xf1\x43\x84\x5c\x4b\xb1\x6c\x65\x69\xc4\x74\x3f\x8e\x72\x35\x7a\x6b\x76\x86\x28\x17\xc7\x6a\x82\xe3\x3b\x0d\x5b\xb6\x10\x51\x27\x40\xae\x55\x6e\x7c\x00\xcd\x87\x44\x79\x12\xd5\x28\xee\x22\x83\x72\x03\x8a\x99\x32\x77\x8a\x47\x23\x72\x12\x46\x63\xa8\x24\x84\xb4\x08\x96\x83\xe8\x45\x8c\x03\x08\x05\x5d\x90\x3e\x37\x50\x5e\x24\xc4\x89\x45\xc0\x5f\xb3\xfb\x9b\xa3\x37\x56\x72\xdb\xba\x67\xf2\x8a\x7a\x88\x50\xa3\x16\x5b\x9d\xae\x42\xae\x74\xc3\xf0\x34\x96\x4a\x8e\xcb\x71\x94\x4c\xfd\xf4\x24\xa1\x9a\xff\x6c\xad\x6c\x3a\x9a\xb8\xd5\xea\x2c\x62\xee\xbc\x2f\xb2\x56\x65\x20\x8f\x23\xfc\xd2\x09\xa2\x97\x86\x54\x3c\x08\xf8\x33\x00\x24\xe3\x28\x7a\x5f\x42\x11\xa2\x39\x9b\x4c\xf3\x3f\xc9\xb8\x31\x17\xab\xc5\x9a\x5d\x47\xaf\x86\x72\xa6\x95\x67\x15\xec\x7e\x5b\xcc\x73\x77\x9f\x69\x52\xe6\xf6\x89\x8d\x8e\xd3\x2c\x99\x5b\xd5\x30\xe8\x6f\x0f\x10\x5c\x49\x75\xdf\x2a\x85\x7e\xce\x64\x3f\x81\xc4\xac\x07\xec\xad\xcc\x04\x55\xa8\x94\x06\x28\x8a\xbb\x71\x00\xc1\xe1\x84\x59\xa9\x92\xac\x4c\xb1\x18\x08\xfa\xd6\x20\x06\x73\xdd\xa9\xb5\xd8\xb6\x4f\xa1\xa1\x4f\x62\xa5\x53\x51\xaf\x67\xe6\x1e\x4c\x85\x26\xf5\x79\x72\x87\xc2\xbf\x34\x34\xd3\xcf\x14\x50\x15\xdb\xae\x57\x15\x93\x02\x26\xcd\x3c\x04\x9a\x79\xa6\xeb\x67\x11\x7a\x78\x62\x4b\x9e\xcd\x95\x79\xaa\x2d\x10\xc0\x2c\x47\x7c\xab\x3a\xed\xe7\x95\x7d\xfe\x38\x38\x1f\x57\x75\x9e\x44\x9b\x56\xc3\xf7\x68\x98\x03\x29\x1a\xe2\x29\xb1\x39\xe8\x28\x57\x86\xfb\xf9\x86\x10\x90\x45\x56\x32\x56\xba\xf9\xa0\x20\x51\xf5\xef\x21\x5f\xa9\x4c\xc9\x7e\xcd\x38\xba\xbf\xed\x92\xce\x8b\xbd\x1b\x2d\xcf\x5d\xed\xd1\x73\xa2\x77\xb4\xc1\x17\x40\x6c\x81\x39\x8e\xb6\x80\x27\x30\x73\x21\x3e\x2b\x21\xbe\x11\xe3\x3c\xe3\x76\x95\x30\xd7\xda\x7b\x58\x51\x0b\x95\x8d\xbc\xd0\x69\x99\x4c\x33\x1f\xb4\xd4\x52\x48\x2f\xe3\x26\xce\x13\x38\xcb\x47\x62\x2c\x0a\x9e\x91\x72\xd1\xb6\x66\xe5\xe7\x73\xce\xbf\x8f\x50\x10\x11\xab\x96\xc0\xbf\x95\x46\x1b\x30\xa9\x20\xfe\x86\x25\x3a\x97\x20\x25\x78\xd6\xfc\xe9\x04\x85\x08\x10\xfb\xa1\x86\xa1\xed\xb1\x0b\xcd\xc0\xfb\x43\xe0\xaf\x88\xc2\xe0\x34\x7b\x81\x05\xdf\x7d\x6f\x68\x01\xae\x90\x97\x7d\xd5\xb4\xb9\xbe\xb0\xcf\xe0\xb2\xbf\xa9\x54\x94\xa4\xaa\x7a\x36\x4b\x2c\xc1\xf3\x0f\xd8\x18\x94\x34\x44\xaa\x0e\x24\xa2\xe0\xc2\x95\x0a\x0b\x12\x35\x96\x10\x9d\x42\xc2\x56\xe0\xaf\x64\x96\x74\xd2\x01\x1d\x4e\xec\xd9\x38\x81\xc9\x2f\x2b\x56\xe3\x9c\x73\x44\x71\xd1\x8d\xa6\xac\xa4\x91\x58\x52\xe1\x68\xb6\x0d\x0c\x56\xfc\x49\x1c\x29\xf1\x1d\x59\xf5\xc2\xc6\xef\x56\xf2\x22\xb9\xbe\x30\x62\xcc\x2d\xab\xcf\xf5\x73\x6b\x16\x32\x2c\x28\x47\x88\xd8\xcb\x40\xaa\x94\xc4\x4f\x5d\xaa\x94\x5d\x7e\x42\xff\x84\x2e\x91\xee\xf1\xc0\x88\x42\x64\xa1\x86\xaa\x06\xcb\xc7\x25\x4d\x87\x09\x03\x86\x6a\x9e\x65\x93\x0e\xe3\xec\xa1\xe0\x79\x2e\x0a\xc6\x0b\xf8\x18\x39\x49\x9b\xe2\x3c\x15\x79\xa8\xe2\x42\x8d\x1e\x0b\xad\x04\x13\x99\x11\xec\xa0\x0a\x5d\x3c\x6c\x03\x0f\xec\xc6\xd5\x42\x1e\x3f\xf1\xed\xbc\x44\xea\x73\xbb\xe6\x9d\xaf\x99\x8b\x8b\xb5\xb7\x10\x7a\x16\x2a\xdc\xe2\x19\xf6\x21\x98\xcf\xeb\xf4\x68\xe9\xf1\x4d\x3f\xa8\x6c\x59\x75\x82\x5f\xa1\x22\x9e\x46\x03\x8f\x80\xd8\x11\xf7\x96\x93\x38\xa8\x72\x2b\xd9\x9f\xde\xc3\xc1\x09\x88\x73\x6c\xc0\x33\x33\x4f\xda\x6a\x01\x88\x39\xfb\x52\x56\x7b\xba\xed\x9b\xb9\xa2\x77\x73\xb9\x63\x73\xe7\xd3\xfc\x42\x7c\x9a\xef\xe6\x79\x34\xb7\xa9\xf7\x3d\xad\xa4\xbe\xf3\x57\xee\xfc\x95\x3b\x7f\xe5\xb3\xfb\x2b\x9f\xde\x55\xb9\xa2\x97\x12\x1c\x94\x24\xe5\xb4\x49\xd0\x79\x7a\x83\x1b\xcf\x32\x06\x15\x53\x23\x0b\x1b\x39\xbf\x08\xc1\xed\xa9\x8c\x6b\xcf\x6d\x5a\xe3\x0f\xe6\x2c\xe3\xc6\xca\xe4\xc7\x4c\x27\x77\xd7\x56\x4f\x03\xaa\xb5\x87\xdd\xfb\xf5\x7a\xaa\xb3\x9a\x5a\xb1\xd0\x5f\x31\xe3\xe5\xd8\xe6\xc1\x15\x3b\xfe\xf5\x9a\x9d\x4a\x73\xd7\xf4\xee\x99\x1a\xa6\x20\xf7\xe5\x22\xf6\x0d\xc0\xf6\x84\x00\x40\x27\x14\x80\xb5\x4a\x3c\xe6\xda\x54\x00\x84\xa0\x41\xac\xb9\x9d\x61\x0f\x1f\x8c\xc0\xd1\xf7\xdd\xe8\x0d\xac\xe3\xec\x15\xff\xbd\x2c\x84\x9b\xc5\xfa\xcb\xec\x7b\x68\xbf\xb6\xfe\x8d\xe6\x82\xba\xdf\xd9\x29\xb7\x1c\xd7\x15\x0e\xb7\x77\x0c\xc2\xda\xb9\x35\xeb\x4b\xaf\x81\xc5\x2b\xb6\x60\x76\x6f\xe5\x34\xac\xf5\x6a\xb3\x73\x3d\x4c\x91\x89\x96\xf3\x74\xef\xce\x9c\x27\x3c\x70\x6c\x5c\x26\x62\x0b\x53\xfd\xe3\x58\xa5\x8f\x67\x95\x6f\x9f\x22\xab\x90\xd6\xe5\x0d\xd5\x90\xd4\xe5\x91\xb9\x5f\x06\x16\xb5\xc8\x47\x83\xf5\x1d\xcd\x27\x22\x1f\xbd\xbd\x5e\xe3\x4c\xe1\x8b\xb5\x03\xc5\xdc\x6f\xec\xed\xf5\x8c\x43\x04\x04\xc9\x8c\x78\x01\xe9\xa6\xb9\x4e\xf7\x0d\x60\xbf\x5a\x39\x9e\x07\xdf\x2c\x55\x2a\x56\x76\x11\x57\xf3\x82\xd7\xd7\x99\x17\xbc\x58\x9f\x17\x8e\xc5\x73\xbc\x40\x54\x83\x05\x06\xa3\x06\x42\x35\x9e\x98\xba\xce\x3c\x24\x84\x94\x13\xaa\xee\x8c\x27\xe6\xdf\x59\x17\xbf\xd2\xcd\xd3\xa3\xab\xb3\xe3\xd3\xf7\x67\xbd\xf1\x9c\x9a\x41\xa0\x57\x5f\xc1\x42\xac\xb7\x38\xab\xc4\xb9\x9c\xd0\xc7\x00\x1a\xce\xdb\x90\x59\x5f\x76\x53\x59\x88\x04\x2f\x74\xf0\x89\xf6\x85\x7d\x10\x42\x4d\xab\xd7\x6e\xa9\xe6\x18\x22\xcf\x1e\x73\xb4\xae\x5a\xed\xab\xf7\x29\x99\xa1\xb9\x16\x8c\x5d\x3d\xf2\xc1\x4c\xbb\x62\x31\xbf\x48\x3a\x95\xf9\x1e\x1d\xb3\xd5\x08\xd0\x40\x76\xf9\xe9\x64\x9b\xd7\x94\xe6\x39\x67\x5b\x8c\x5c\xff\xb8\x5e\x9f\xaf\x73\x56\xaf\xcf\xe3\x83\xea\x23\xd5\x3c\xf7\x1f\x71\x95\x66\x21\x2d\x3b\x04\xcd\xb8\xb7\xd2\x42\xde\x8b\x82\x1d\xfc\x28\x2c\xf7\x51\x38\x87\x73\x08\xfa\x60\x7d\x5b\xf6\xdb\x93\xd6\x73\x79\x7b\x52\xbf\x73\x6f\x65\xbf\x10\xec\x64\xc4\x95\x12\xd9\x13\x48\x36\x73\xe6\x9a\x89\xc7\x29\x0c\x92\x15\xe7\x9c\x89\xc7\x35\xf6\xf2\x6d\xf8\x72\x7d\x1d\x86\x42\x89\x42\x26\x55\x96\x5d\x63\x21\x22\x90\x93\xa3\xb0\x28\x68\xd3\x84\x4d\x17\x09\xc5\x35\xe5\x59\x39\x94\xf3\x3c\x16\x83\x0c\xe0\x6b\x37\x98\x34\xbc\xbf\xc2\x6c\xa1\x7d\x63\xcb\xe9\xc7\x26\x9d\x5d\xb6\xc5\xd3\xbb\x0b\x56\x70\x69\x0d\x56\xe9\x22\x53\x7a\x2a\x72\xa1\x7c\xad\x2e\x11\xbe\x46\x31\x64\xcc\x90\x04\x44\x6e\x5c\x44\xb7\x9f\xbd\x5a\xc3\x24\x92\xc2\x36\x92\x59\x7f\x3a\x39\xab\xf7\xd4\x7a\x05\xa7\xde\xac\xaf\xe5\x4f\x27\x67\x4f\xa6\x13\xcc\x81\x7c\xd8\x58\x59\x18\x26\xa2\xa2\xb9\xa9\x5b\xd6\xd9\xab\x8f\xd0\x13\x1b\x08\x3d\x3f\xf9\x1e\xd6\xb8\xa7\xe1\xdd\xc6\x7a\x87\x9f\x1b\xde\x91\xfa\x72\x07\x89\x7a\xd3\x75\x6d\x8a\x10\xb4\x86\x47\x61\x71\x96\x09\x11\x6e\x24\xb3\xa0\x08\x5b\x2f\xe2\xcf\xd4\x41\xeb\x95\xf3\x2f\xd4\x17\x0e\xc5\x08\x5d\x4c\x62\x79\x71\x7a\x2d\x18\x18\xa7\x9c\xde\xc0\xa0\x6c\x2b\x82\x8f\xc0\xbd\x46\x6f\xf8\xa0\xcc\xb0\x9e\x0e\x54\xdb\x85\x72\x5f\xfe\x1d\x88\x49\x85\x13\x2d\x30\x18\x56\xab\x6c\xf2\x7f\xb2\x0f\xaa\x0b\xdb\xe1\xd9\x66\x28\x12\x95\x13\x8a\xae\x54\x8c\xab\x09\xc0\xee\xb9\xb7\x7f\x3d\x7f\xf7\x8e\x5d\x7c\xb8\x61\xbf\x7e\xb8\xfa\x05\x5d\x9a\xe3\x32\xb3\x12\xbf\x15\x00\x51\x36\xbc\x04\x6e\x48\x79\x04\xc6\xd9\x30\x81\x9b\x4d\xa4\x8c\xf3\xeb\xf5\xe4\x0c\x78\xaf\xa1\x3b\xe2\x6f\xcf\x4d\x62\xe6\xe4\x9e\xea\x84\x67\x6b\xaf\x0a\x84\x7e\xb7\x5e\x0b\x68\x1d\xaf\x05\x1e\xe0\x6c\xd2\x0d\xb3\xf6\x07\x0a\xf0\x1f\xb1\x6a\xe1\x00\x46\x30\xaf\xa8\xad\xd3\x21\x3e\xe4\x6d\x82\x96\xaa\x94\x2d\xd2\xb1\xf0\xad\x0e\x03\x08\xea\x7f\xdc\xee\x15\xfa\x76\xaf\xc3\x6e\xf7\x8c\x1e\xd8\xdb\xbd\x7f\x62\xad\x50\x0a\x58\x10\x29\xeb\xd2\x7b\x58\x30\x54\x8e\xf3\x6c\xc2\x06\x5c\x66\x4c\x62\x8d\x7f\x28\x3d\x07\xcd\xb7\x28\x36\x1f\x7d\x05\x1f\xed\xd2\x60\x9f\xdb\x96\xa7\x36\xe0\x14\x17\x6f\xaf\x5b\x9f\x8c\x8b\x86\x3a\xac\xd8\xc5\x2c\x5d\xf8\xe9\xf8\xa7\x9b\xe8\xec\x15\xd0\xa9\x38\xf6\x47\x70\xdd\xa5\x20\xf5\x2b\xee\x6a\xe1\x6a\x44\x0d\x83\x07\x34\xd1\xca\xd8\x02\xea\x5c\x22\xb1\xc8\xe4\x58\x5a\x0c\x16\x56\x14\xbb\x59\x05\x3d\x90\x69\x19\xed\xc0\x14\x6c\x52\x07\x25\x57\x83\xac\xac\x42\x2a\xaa\x52\x6a\xe0\x01\xd4\x29\x7d\x24\xd4\xe1\xf5\x76\xf2\x99\x8b\x94\x37\xe8\xe2\x15\x3a\xeb\x2f\x75\x26\x93\xa5\x7e\x77\xf7\x99\x11\xcf\x73\xa1\xcc\x1c\xb8\x1f\x54\x68\x09\x32\x9e\x02\x67\x9c\x84\x5a\x45\x40\x43\x7d\x7e\x0c\x66\xe2\x85\x60\x57\x02\xc2\x9d\x0e\x52\xef\xa2\xd7\x05\xc3\x5a\x96\xd9\x24\xc4\xdf\x34\x89\xb9\x39\xec\xb0\x53\x47\x6d\x45\xfd\x45\x2a\x37\x05\xef\xc6\xb0\x88\xb3\xde\x77\x84\xf9\x8a\xaa\xf2\x1c\x54\x95\x71\x0e\x7b\xe1\x57\x9f\xa9\x51\xb1\x4a\x0a\xe7\xa6\xa9\xa2\xaa\x11\x07\x4c\xc2\xf2\x37\x3f\xb6\xdd\x94\x03\x58\x48\x47\x2b\x56\x76\xde\xe5\x23\x6d\xb5\xda\x92\x44\x7f\x39\xa3\xb3\xd6\x24\x64\xd6\xcb\x75\x71\x09\x5b\x9c\x54\x79\x2f\xd1\x41\x73\x22\xf3\x6a\xd6\xa9\x39\xeb\xa1\x0b\xfb\xa0\x8b\x4d\x15\xe1\xcb\x5a\x37\x6d\x66\x5f\x7b\xa1\x3e\x6f\x3f\xa6\xb5\x8c\x70\xb3\xa7\xf9\xef\x52\xf7\x27\x76\xfd\xf9\xfd\x27\xbe\xdf\x7a\x7a\xd4\xbe\x3e\x2f\xff\xe3\x36\x4c\xa6\x45\x7f\xca\xf5\xdf\x3e\xe1\xe8\xc7\xd3\x35\x04\xc3\xab\x1f\x4f\xeb\xd3\xb9\xe2\xa9\x36\x0c\x3c\x55\xec\x54\xcc\xf1\x28\x2c\x9a\xd9\x4a\xca\x4e\xd1\x5f\x6a\x2b\x35\x09\xcf\xc4\xf9\x87\xb5\xd7\xe5\x1a\xdf\x5f\x63\x6d\xe8\xcd\xfa\xfa\xf8\x1f\xa7\xd9\xc3\xbc\x03\xfd\x4b\xa0\x87\xc8\x21\xb7\x9b\x8d\x54\xcb\x44\xaa\x23\x2b\x4f\x0f\xb1\x2f\x32\xad\x86\xa6\xc7\xce\xc6\xb9\x9d\x50\xd8\x88\x07\xf3\xe0\xb6\xc6\xbb\x53\x2d\x50\x9d\xc2\x97\x10\x6b\x65\x52\xfb\xde\x5a\x78\x1e\xf0\xba\x5e\x5f\xa0\xa3\x01\x7c\x58\xc7\xe5\x11\xde\x6d\xec\x69\xf8\x79\x81\xea\xef\x0e\xff\x02\x45\xc8\x6f\x78\x08\xb7\xcd\x75\xba\xca\x4d\x08\x0b\xb3\xec\x3e\x6c\x92\xd3\x25\x23\xb4\x2f\x50\x14\xac\x50\x69\x30\xdc\x43\x44\x3a\xa8\x3c\x9c\xea\xaf\x43\x80\x70\x95\xd0\xa5\x21\x89\xb4\x10\x63\x27\xd6\x48\xc5\x0a\xfe\xc0\xc0\x2b\x8c\xd0\x48\xeb\x65\x81\xad\x9b\xff\x65\xf2\x91\xf0\x5e\xf8\xf5\x45\x62\xea\x45\x16\xb6\xe4\xd9\x4a\x9c\xfe\x53\x3c\x80\xfa\x79\xba\xbf\x86\x47\x9b\x72\xba\xff\xa3\x31\xeb\x4d\x63\x2e\x57\x4e\x1f\x5b\x23\x73\xac\x55\x12\x42\x1b\x4c\xa6\x63\x36\x5a\x11\x95\xe9\x61\x54\x13\x61\xe1\x7c\xfb\x32\x1a\xee\x74\xae\x23\x56\xb6\x4d\x61\xa1\x41\x4d\x5f\xb1\x50\x2a\xba\x43\x71\xdf\x58\x3f\xc3\x49\xba\x1d\x77\x9f\x82\x3a\x01\x26\xb2\xad\x67\x8e\xe2\x0c\xd6\x09\x56\x5e\x0e\x4f\x75\x85\x88\x52\x10\x87\xd8\x2f\xa4\x18\x54\xa1\x7e\x35\x0c\xaa\x0a\xa1\xc1\xf1\x8f\x01\x97\x59\x59\x20\xcd\x84\x82\xec\x5c\x79\xcd\x08\x89\x69\xce\x0b\xf2\x7d\xa4\xcc\xca\x74\xe2\x84\xe2\x3c\x83\xd8\x44\xcc\xc6\x7a\x77\xfe\x6c\xb9\x3f\xcb\x34\x81\xf9\x57\xe9\x6a\x5a\xe4\x67\x0b\x64\xfe\x10\x02\xb1\xfc\xfa\x0c\xcc\xcd\x0c\x64\xab\xa6\x77\xa6\xa2\xbf\x10\xf3\x6f\x35\x12\x9e\x1e\x7b\x4f\x9a\x1f\x8f\x09\x3b\xb4\x99\xd2\x05\x81\x2c\x85\x5a\x55\x01\xc5\xf8\xec\xb1\xc7\x6e\xf7\xc4\xa3\xfd\x16\x0d\x55\x8f\x03\x83\xff\x50\xd6\xfd\xab\xc7\xce\x1d\xb9\x4f\xa4\xcd\x28\x9e\xb4\x08\x1c\xc6\xbf\xe6\x6e\x49\xa9\x42\x42\xfe\x3a\x57\x33\x5d\x5a\x56\xed\xfc\x94\xf8\x38\x95\x4a\x13\x66\xf9\x46\x6c\xb7\x2e\x13\x0c\x92\xfe\x5c\x3f\x72\x5e\xa7\x8b\x48\xb6\xa6\x48\xe0\xc4\xcd\x27\xf1\x71\x30\x55\x4d\x1b\x5c\x83\x84\x2b\x56\x94\x0a\x0b\xf2\xa0\x0d\xeb\x06\x63\xd6\x8d\xcf\x21\x09\x16\x89\xfe\x84\xa2\x7c\x31\x58\x86\x6c\x32\xc0\xb2\xac\xc6\x7a\x71\xbb\x30\xfb\x17\x1d\x66\xbf\x0b\x21\xff\x52\x42\xc8\xff\xdc\xd0\xc7\x3a\x6d\x05\x74\x5c\x0b\xab\x8e\x71\x94\xfa\x62\xc4\xef\xa5\x2e\x42\x64\xe0\x9c\x78\xd8\x6d\xae\x87\x9b\x31\x54\x11\xaa\x63\x43\x6e\x17\xd8\x58\xa7\x2d\x60\x8c\xdf\x3b\xf6\x3d\x5d\xb0\xbd\x12\xdf\xc3\x92\x60\x70\x05\xb7\x1c\x2e\x70\xb8\x80\x8e\x46\xa6\xa0\xd7\xad\x59\xd1\xe0\x79\xd6\x75\x99\x94\xf7\xf4\x79\x08\x3a\xdd\x72\xda\x81\x4e\x67\x38\x7b\x66\xb1\x7e\xef\x96\x44\x52\x0e\xe3\x84\x7a\xe4\x8e\x9d\x21\x80\xb7\x6f\x10\xb9\x56\x8a\x32\x13\x6d\x58\x78\xa8\x23\x7b\x0a\x59\xd3\xd7\xa1\x87\xf3\xa1\xd2\xe1\xe7\xb3\x47\x91\x94\x76\x39\x9f\xbf\xa9\xfc\x3b\x50\x59\x2f\xcb\xa8\x50\x2d\x20\x6e\xd1\x03\xf2\xf9\xe8\xe0\x4b\xe2\x96\x19\x6e\xa5\xa1\x42\x91\x61\x3a\xe2\xd1\x71\x1f\x03\xbe\x96\x0a\xd8\x09\x4e\xa7\x77\x2e\x75\x58\xbf\xb4\x4c\x5a\x38\xd4\xc9\x48\x6b\x23\xa8\x38\x14\xa5\xdb\x4a\x0d\xdc\x1f\xdc\xa6\x50\x8f\xb2\x08\xf8\x3e\x51\xf7\x98\x0e\x5d\xbd\xe6\x94\x16\x77\xb3\xc2\xea\x78\xfd\xd8\x75\x03\xd6\x13\xf7\xc7\x10\x84\x29\xe3\xd8\xdc\xd8\x75\xfa\x20\xe4\x70\x64\x4d\x87\xc9\x9e\xe8\x81\xbe\x23\x78\x32\x8a\xba\x1d\x0b\x61\x31\x3f\x23\xaa\x7a\xea\x37\x2c\xc2\x90\x62\x07\x81\x1b\x13\xe7\xec\x04\x4c\x9e\xe6\x3e\xcd\x5c\xae\x0e\x13\x36\xe9\x1d\x76\x58\xa2\xc7\x79\x09\x08\x5a\x6e\x8c\xfd\x09\x93\xd6\x8b\xfa\xbe\x56\x3a\x2c\x85\x07\x18\xf3\x02\x18\x95\x9b\x54\x29\xe3\x29\xc4\x8c\xde\xee\xe1\xec\x6e\xf7\xbc\x54\xe5\x3a\xa4\x1a\x92\x30\xc3\x11\x37\xb8\xb3\x68\x9d\x1c\x73\x9b\x8c\x02\x62\x5f\x51\x08\x93\x6b\x0c\x3f\xcd\xab\x93\x7f\x23\x8a\xf1\xdf\x42\x17\x07\xe6\xb0\x5a\xdc\x91\x1c\x8e\xfc\xda\xf2\x02\x33\x65\xeb\x7b\xb2\x65\x28\x8e\x5f\x61\x7e\x22\xbd\xac\x0f\x6f\x23\xa7\xf6\xbc\x4d\x5b\xeb\x72\x11\xd0\x5a\xd8\xef\xda\x89\x99\x73\x3f\x60\xe9\x1c\xb1\x1f\x0b\xcb\xdc\x3d\xab\xce\x8d\x95\x63\xd1\x09\x56\x4c\xb8\xab\xc4\x15\x1a\xda\x80\x0d\x35\xaa\xd7\x1a\x41\x02\xd5\xb7\x51\x37\xf4\xa3\xd0\x63\xf7\x55\x27\x2c\x12\x58\x83\x1b\x82\xf0\xeb\xe0\x6b\xf5\x97\x82\xbc\xb4\x3a\x25\x38\x30\x14\x18\x0f\x3b\x11\x7f\x82\x9b\x0f\xa6\x05\xe4\x6a\xb6\x80\xe2\x9c\x50\x23\x14\xbd\xb0\xe2\x5e\x26\xb6\x8a\x39\xf4\x2e\x5d\x9c\xd2\xaf\x04\x00\x53\x08\x58\x2a\x08\x15\xca\xb3\xea\x46\xe0\xa7\x32\x69\xf0\x72\x28\x4a\xb5\x8a\xcf\xb3\xfb\x9a\xbb\xe7\x8d\x73\x0d\xfd\x01\x91\x36\x10\x39\x4d\x64\xc1\xdd\x7e\xac\x64\x1c\xfc\xb3\x40\xfb\xa6\x55\xe4\x8d\x33\x56\x37\x3d\xc8\x1b\x9b\x56\x1a\x03\x98\xcf\xe6\x4e\xab\x1a\x57\xc2\x86\xb0\x80\x03\xe5\x74\x02\x77\x98\x1c\x59\x07\x82\xe2\x55\x96\x2c\x46\x92\x63\x85\xc8\x30\xb8\x9c\x4e\xeb\x50\xde\x0b\x55\xe1\x08\x1c\x98\xc3\xc3\xc8\xf7\xe1\x4e\x41\x85\xb4\x9e\xe8\x6e\xa6\xc1\x75\xce\x0e\xfc\xc1\x86\xda\xb2\xee\x30\xd5\x1e\x2a\x2b\xbb\x55\x0b\x47\xa8\x3a\x0c\x0b\xda\x46\xcd\x20\x82\x15\x0b\xc1\x72\xe3\xe3\x53\x51\x25\x07\x2a\xf9\x00\x73\xb9\xf7\x36\xf4\x30\x17\x24\x7c\x77\x62\xc2\x6e\xcb\x57\xaf\xbe\x49\xac\xce\x75\xa6\x87\x93\x5f\xc4\x04\x7e\x10\x11\x41\xe5\x04\x11\x33\xc1\x2e\xb5\x22\x92\x8b\x37\xc5\xb3\x96\x68\x21\x65\x18\x49\x9b\x92\x06\x31\x46\xdf\x0b\xc1\xfe\x0b\xe7\x22\x28\xcc\x9d\x60\xf8\x4d\x1c\x79\x71\xd3\x9c\xe3\x73\xab\xaa\xa1\x2e\xa1\xaf\x55\xc3\x40\xcb\x3c\x33\x8b\x1e\x4d\x9f\x3e\x9e\xe7\x99\x44\x60\xc2\x03\xbf\x49\x7c\xc8\xa5\x32\xf6\xf0\x6f\x4c\x95\x8e\xdd\x17\x4c\x80\x37\x8e\x12\x80\xb9\x32\xec\x76\xcf\x9f\xc6\x7d\x53\x7d\xe0\x76\xef\xb9\x03\xaf\xa2\x93\xb6\x54\xba\xdb\xea\xed\xf1\x24\xd9\x2c\xba\xda\x53\x15\xd6\xab\xad\x78\x92\xdb\x17\xad\x46\x9b\x1b\xa7\x26\xd5\x7d\xcb\x30\x41\xa6\x71\xe3\xbc\x1f\x36\xee\x98\x62\x58\x09\xc5\x68\xcb\x85\xe2\xe3\xfd\xdc\x82\x5d\xf2\x58\x59\xd9\x56\x51\x51\x56\xb6\xd0\x56\x6a\xad\xbe\x10\x95\x25\x3e\xdd\x3b\xbd\xa5\x9d\xde\x32\x6f\xcd\x76\xca\x4b\xf8\xf9\xcb\x53\x5e\x6a\x9b\xfe\xf9\x34\x98\xd5\x87\xb1\x53\x63\xfe\xc4\x6a\x4c\xab\x7a\x63\x51\xb3\x0a\x8c\xc3\x87\x2f\x78\xc0\x37\x1f\x60\x91\xc4\x78\xa6\x5e\x10\x6c\xc1\xfc\x76\x15\xc7\x76\x15\xc7\xb6\x53\x71\x4c\x2b\xd1\x7d\xd0\x45\xda\x89\x42\x3a\xa2\x02\x62\xb5\xf5\x9a\x51\x44\x6c\x5b\x65\xbe\x66\xd7\x65\xf4\x80\x3a\x35\x3f\x46\x75\xd4\xd8\x09\x26\x1d\xdc\x14\x6e\x26\x6f\x79\x66\x44\x87\x7d\x54\x77\x4a\x3f\xac\x9e\xa0\xf1\xa0\x8b\xbb\x4c\xf3\xd4\x1c\x39\x09\xc0\xfd\xa7\x9b\xc9\x01\x06\xd1\x7f\xe5\xfe\x8a\xc0\x8a\x57\x9e\xf4\xac\x0a\x65\x4d\x09\x74\x92\x87\x5c\x79\x0f\xde\xd8\x98\xee\x67\x9f\x51\x5b\xdd\xe3\x89\x6a\xa7\xe9\xf4\xf4\xe2\xfa\x44\xab\x81\x1c\x2e\xa6\xc0\xa1\x59\x2d\xce\xe0\xf4\xe2\x9a\xe5\xbc\xe0\x63\xe1\xd8\x18\x45\xb5\x69\x4c\x1d\x4c\x3d\x45\xd0\x64\x67\x82\x54\xee\x0a\x36\xf5\xf4\xe2\x1a\x93\x4b\x5a\x10\x67\xd0\x4d\xd1\x4d\xde\x3a\x43\xcc\x8d\x0d\xd0\x31\xf1\x45\x76\x7e\xe9\xc6\xe4\x64\x61\x61\xc8\x6b\xe7\x11\x6e\x21\x73\x25\xad\x22\x55\xfb\xee\xca\x46\xdf\x9c\x3f\x74\x76\x5a\xe6\x99\x44\x1d\x39\x7e\xa1\xc2\xce\x1d\xeb\xfb\xb6\x9c\x7b\x8b\xb6\x07\xbd\x62\x3a\x9d\x5b\x2c\xa7\x62\x64\x6e\xa5\xe8\xe5\xc6\x22\x01\x5a\x75\x5a\x89\xe2\xb0\x48\x3e\x63\xa7\xd5\x02\x09\x65\x0b\x30\xfd\x34\x16\x87\x5d\xb9\x2f\xa3\x68\x17\x3a\x04\x4b\xa3\x54\x8c\x12\x03\xf1\x25\x7d\x2f\x8a\x42\x82\xf6\xa4\x0d\xe9\x50\x6e\xf3\x78\xb0\x67\xc0\xa8\x66\x1c\xad\x45\xeb\xbe\x8a\xc4\x14\xee\x01\x8e\x6b\xa3\x4d\x32\x82\x17\x4e\x1b\x5a\x69\x97\xf0\x25\x96\xea\x31\x88\x41\x8e\xa3\x8c\xb4\xb1\x5d\x38\xea\x99\xd6\x77\x65\xde\xe6\x74\x53\x37\x39\xb7\xa3\x96\xbb\x57\x7b\xe3\xb3\x9c\xef\x2d\xc8\x9b\xcd\xed\x6b\x47\xf3\xb0\x71\xa0\x7c\xb3\x2e\x4b\xa0\x7d\x2d\xa9\xd9\xd2\xf0\x50\xe4\x02\xeb\xc4\x76\xf3\xac\xdc\xa0\x76\xe7\xea\x6b\x7a\x7e\xb9\x60\x19\x2b\xaa\x1b\xd7\x7e\x46\x5b\x08\x91\x03\xba\xb9\x07\x79\x56\x16\x3c\x3b\x64\xd0\x25\x69\x87\x3d\x76\xe6\x54\x27\xd7\x74\xe2\x03\xdf\xcd\x9b\x5b\xc5\x18\x3b\xbf\x7c\xc3\x8e\x55\x44\xd6\xc1\xec\x87\x67\x35\xce\xa5\xbe\xd2\xa5\x05\x39\x91\x5b\x96\x09\x27\x6c\x39\x12\x46\x1f\xf5\x69\xeb\xcb\x37\x4d\xe6\x4b\xb6\x4c\xe6\x60\x99\xab\x8d\xe8\xe0\xfc\xf2\xfe\x5b\xa7\x7d\x9e\x5f\xde\x7f\x7f\xc8\xb8\x31\x72\xa8\x6a\xe3\xfb\xff\xd9\xfb\xd7\xe6\x46\x6e\x24\x5f\x1c\x7e\x7f\x3e\x05\x42\x7e\x4e\xb4\x34\x41\x52\xdd\xb6\xc7\xb3\xa7\x37\xf6\x85\x5a\x52\xdb\x3a\xd3\xad\xa6\x25\xd9\x8e\x7d\x8e\x36\x3c\x60\x15\x48\x62\x55\x2c\x94\x0b\x28\x49\x9c\xd8\x0f\xff\x0f\x64\x26\x6e\xc5\x5b\x89\xa2\xda\x6d\x0f\x63\x22\xc6\x2d\x16\x0a\x85\x4b\x22\x91\xd7\x5f\x7e\xae\x60\x5c\x95\x6f\x02\x0d\xc6\x16\x2d\x9c\x60\xb0\xfe\xef\xc3\x15\xbf\xe0\x70\xc5\x27\xa1\x02\xdb\xed\x7c\xe1\xb9\xec\xfc\xc6\xdd\xe3\x01\xef\x83\x39\xf7\x78\xc0\x9f\x23\x0e\xef\x05\x20\x80\x55\x7e\x25\x78\x6e\x19\xbd\xfe\x7e\x43\xc9\x97\x56\xd3\xb4\xce\x55\x52\x6d\x0c\x75\x4c\xaf\x6a\x77\xa8\xae\xe0\x9a\x76\x48\xfe\x38\x8d\xdb\xe2\x77\x09\xd3\x20\x18\xb9\x48\x78\x40\x0f\x73\xf8\x19\x88\x0e\xf4\xa3\xe0\x77\x9d\x57\x9d\x73\xa7\x3a\xd2\x4b\x3a\x99\x1d\x58\x00\xae\x45\xd6\xd4\xd2\xcc\x4f\x55\x69\xc4\xe3\x06\x19\xa1\xd5\x98\x4d\x55\x91\x83\x89\xb5\x5f\xd8\xe3\xc2\x34\x3d\x8f\xab\xc8\x02\x6a\x28\xd6\x96\xf5\xa9\x15\xae\x26\x83\x65\x99\x2a\x2a\x96\xe2\xca\xa1\x10\x47\x85\x4a\x77\xee\x9d\x81\x4e\x3f\x3e\x60\xec\x3d\xb8\x10\xf0\x96\x4e\x52\x37\xda\x6d\x99\xe1\x77\xc2\xf6\x9a\x89\x1c\xe8\x08\xc2\x1f\xc6\xad\xd7\x17\x27\xd8\x29\xa7\xe8\x7b\x3a\x5a\xeb\xb5\x38\x70\x80\xf0\x02\x52\x85\xd0\x7b\xc0\x0b\xf2\xe3\x3a\x45\xd6\x85\x3b\xf0\xa2\x88\xb3\x50\x00\x6c\x09\x84\x59\x58\x2b\x97\x67\x0b\xb5\x47\xc1\xd7\x0d\xe4\xf8\x77\xcc\x88\x84\x3a\x8e\x50\xbe\x06\x1d\x94\x0f\xb6\x8b\xa9\xac\x50\xa8\x0a\x95\x52\xd0\xe3\xe2\xab\x97\x10\x41\xbf\xbd\x2d\x6f\xcb\x37\xe8\xfe\x54\x0f\xe0\xe5\xff\xfe\xe2\xcc\xeb\x7b\x80\x1c\x77\x0d\xf3\x65\x5f\x53\xad\x1b\x61\x26\x32\x67\x23\x09\xb2\xa3\x16\x86\x1d\x96\xe2\x01\x13\xa4\x7c\x5a\x0c\x9d\x18\x87\x05\x42\xbd\xf9\x8f\x53\x97\x47\xec\x1b\xec\xb3\x12\xf5\x4c\x82\xd3\xd2\xf6\x8b\x64\xf1\xe9\xea\x15\x59\x1f\xea\x87\x7e\xfd\xd0\xef\xf7\xfb\x76\xac\x50\x99\x4c\x0b\xd3\x4b\xd6\xc0\xfb\xac\x66\x2a\x97\xe4\x4b\x0e\x2b\x61\x09\x32\x7c\x42\xbb\x10\x84\xa5\x45\xd7\x50\x67\x01\x01\xbf\x34\xdf\x7d\xbb\xfc\x2c\x5b\x91\x72\x22\xea\x15\xe0\x82\x48\x1f\xa7\xb0\x27\x9d\xf0\x54\x96\xbc\xe1\xe5\xe5\x38\x2c\x1f\xb6\x19\x02\x31\x56\x4c\xcd\x59\x3c\x7d\x06\xfb\xd8\x5e\x84\x08\xf1\xe7\x70\xa7\x24\x94\xfc\xb4\xa4\x9f\x80\xcb\xa0\xbd\xa5\x2c\xe6\x40\x97\xe0\x33\x4b\xe8\x0e\xfd\xb9\xae\xe4\x2c\x8d\xd8\xd5\x90\x75\xc3\x39\x6c\xad\xf4\xd1\x80\x5d\xd0\xe6\x4c\xf9\xbd\x60\xa5\x62\x62\x3c\xb6\x32\x94\x2a\x99\x70\x75\xb9\xd2\x0f\xe9\x26\x9b\x32\xae\xdf\x5a\xd6\x52\xdb\x7d\xce\x40\x27\x9f\xf1\x0a\x39\x0b\xc4\xff\xe4\xb2\x76\x20\x32\x74\x9a\x2d\xc9\xdc\x1e\x7c\x2a\xaf\x94\x32\x1f\xa5\x06\x8e\x7c\x7b\x00\x6f\xdc\x1e\x9c\x14\x0f\x7c\x8e\xe9\x76\x63\x44\x3d\x73\xce\xc9\x5e\xf4\xd4\x15\x1a\xdb\xc6\x61\xd0\x94\x27\x9d\xd8\x82\xa5\x76\x7b\xc0\x8c\x82\x14\x33\x14\x11\x4d\x3d\x47\x21\x31\x18\xac\x89\x6b\x56\xb5\xca\x84\xd6\x03\xf6\x93\x16\x10\x09\x03\x2e\x18\x07\x75\x23\xe9\x2c\x0c\xd8\x47\x3e\x47\x3e\x4a\xf5\xf6\x64\xc9\xda\x8c\x8d\xd9\xb9\xd3\xb3\x91\x32\xd3\x76\x03\x04\x90\x5d\x60\x88\x78\xce\x50\x46\x0e\x2e\xdd\xc5\xfe\x81\xe1\xea\x98\xe3\xa2\xf3\x83\x9b\x88\x49\xef\xfa\xa8\xc1\xb2\x5f\x2a\xd8\xf4\x4d\x7e\x73\x9f\x74\x4c\x01\x8c\xf1\x32\x83\xeb\xd5\xee\x07\xd7\x10\x3d\x52\xf6\x6b\xa5\x00\x49\xa9\x46\x57\x37\xb8\x47\x16\x18\x8e\x03\x1a\x83\x27\x72\xc6\x27\x60\x74\x70\xbb\x64\x14\x13\xa5\x6e\x6a\x17\x52\x62\x02\x4a\x04\x7d\xea\xa7\x8b\x33\xf6\x9a\x1d\xda\x6f\x1d\xc1\xf2\x03\x36\x99\x51\x4c\x1b\x5e\xb7\xc7\x28\xc7\xae\x0b\x2a\xcf\x08\x91\x7c\x35\xd6\x32\xea\xd9\xa3\x05\x27\x27\x54\x6b\xf3\x6c\xb7\x12\xb5\x5d\x6a\x28\x57\xf0\xe5\xd1\x49\xe7\x32\x4c\xed\x7d\xff\x49\x2f\x22\xb8\x2e\x39\x6d\x3f\x6d\x71\xda\xa8\x4e\x94\xa6\x32\xe0\x75\x3a\x23\xdc\x69\xa7\x6d\xb4\xd3\x73\xbf\xc4\x35\xfe\x1c\x67\x51\x8b\x0f\xb2\x6c\x1e\x57\x00\xfb\x75\x47\x2c\x39\x4f\xba\x59\xa7\xfd\xd9\xdd\xa5\xe6\x58\xd4\xef\xd1\x90\x94\x83\xa2\x55\xbe\x28\x5a\xb9\xa3\x13\xd8\x7f\x4a\x01\xee\xec\xc2\xd1\x71\xf6\x45\xc6\x59\xcd\xcb\x5c\xcd\x16\xbe\xe6\x43\xbc\xc2\xb2\xb2\x3f\xcc\xfe\xaf\xd8\xc5\x2c\x53\xb3\x6a\x58\xab\xf1\x73\xca\x37\x5c\xa7\xdd\x6c\xda\x45\xfa\xaa\x37\xae\x53\xf5\x7d\x57\x35\x3b\x91\x8c\x43\x8c\xc7\xf2\x09\x44\xd2\x36\x5c\xc8\xdd\xdd\x2d\x20\x9b\xeb\x98\x78\xec\xd7\xc7\xb2\x86\x78\x33\x60\x0d\xc0\x46\x64\xd9\xda\xf4\xde\xa2\x03\x34\x1a\xf5\x2b\xbb\x13\x72\xc6\xeb\xb9\xbd\xf9\x71\xef\x13\x12\x2c\x95\xfb\xb4\x77\xe1\xe4\xe4\xbf\xb1\x62\xea\xaa\x23\xbb\xc2\xd6\xb6\xee\x24\xaf\x3b\xcb\xdb\x38\xb4\xe6\x3a\x33\xc5\xc6\x48\x04\x6c\x05\xaa\x63\x64\x6b\xf6\xf1\xc7\x39\xa3\x7e\x10\x53\x27\xa9\xe8\x38\x84\x50\x42\xab\x04\x34\x65\x80\x5c\x70\xed\x0f\xdb\x04\xe2\xce\xef\x11\x9b\xc9\xc9\xd4\xf8\xfb\xb4\xe0\x4d\x99\x4d\x77\xec\x1d\xc4\x79\x3d\x6b\x01\x1f\x64\x99\xab\x07\xfd\x5c\x9e\xf9\x0b\x76\xd3\xe2\x02\x5d\x59\x28\xbd\xed\x8b\x2e\x79\x55\xfd\xa9\x6c\x54\x79\xd7\x2d\xf8\x5b\x78\x72\x04\xda\x2c\xca\x91\x3a\x08\xdc\x9f\x5d\xe4\xd8\xa9\xa7\x65\x53\xa1\x2b\x6c\x81\x36\xe7\x56\x09\x96\xae\x2e\x44\x9e\x19\x79\x2f\xce\x04\xcf\x0b\x59\x8a\x6b\x91\xa9\x32\xdf\x74\xee\x70\xff\x79\xc1\xf2\xa6\xe6\xce\x8e\xa5\xf1\x55\x1f\xfe\x38\xe3\x73\x04\x1d\x85\xb4\x1f\x82\xad\x83\x48\xde\x38\x17\x08\x8a\x76\xdf\xc8\xa0\x52\x46\xf1\x96\x78\x55\xc2\xfb\x56\x6d\xc4\x70\xcb\x19\xaf\xef\xac\xb8\x6a\x0f\x20\x61\x39\xdd\x41\x3b\xad\x55\x26\xc1\x44\x10\x53\x13\x42\x61\xcd\x3c\xda\x4a\xa5\xb4\x84\x6f\x13\x97\xda\xb9\xb0\xc2\x9f\x0b\x0f\xdb\x09\x14\xd6\x52\x75\x7a\x44\xd0\x84\x18\x85\xde\x46\x10\xb1\x2b\x46\xda\x18\x05\x68\x34\x54\xb2\xe8\x24\xcb\xec\x5f\x37\xea\x4e\x6c\xf4\xbe\xad\x79\x35\x02\x61\x7a\x98\x0a\xa8\x77\xcb\x7d\x4d\x00\x8e\x0d\x99\x81\x96\x21\x49\x05\xc6\xc2\x0d\x01\xab\xba\x1a\x68\x5b\xc8\xef\x61\xef\x3b\x7a\xb2\x22\x11\x00\x11\xf6\x28\xd0\xd6\x5f\x14\xa7\xa1\x41\x86\x9e\x14\x0a\x10\x2d\xe6\xe1\x42\x85\x0c\x37\x8a\x41\xb9\x81\x18\x5f\x4f\x72\xce\x57\xac\xca\x44\xe7\x82\x42\xce\xd0\xff\x82\x7b\x66\xb7\x97\x89\x1f\x7f\xd7\xfb\x24\x79\xb4\xa9\x54\x3d\x44\x20\x6c\x7a\xa3\x63\xa9\xfa\xbc\xd4\x0b\x01\x64\x4f\x9b\x6b\x12\x85\xb6\xd6\xbd\xe3\xb3\xc7\xd6\x04\x9f\x0d\xd8\x30\xfc\x18\xae\x01\xd8\xde\x56\x2c\x93\xcb\x6a\xf4\xe1\x2f\xb6\x4b\x34\x2f\x39\x16\x49\x06\xad\x32\x8e\x29\x5a\xb5\x0c\x9d\x6c\x7b\xd7\xc2\xe0\xc8\xd1\xac\x97\x48\x37\xb1\x9a\x79\x7b\x70\x8a\xb1\x09\xef\xad\xbc\x79\x7b\xb0\xc4\xbc\xf5\x2a\x6e\xf1\x8b\x34\xd3\x1f\x94\x36\x97\xc2\xbc\xea\xa5\x8f\xec\xdf\xd4\xf5\x2b\x4b\xf3\xaf\x2e\x55\x29\x5e\x0d\xda\x0b\xe8\x43\xae\x42\xac\xdf\xaa\xd8\x2f\x1a\xbc\x4f\xcd\x82\x07\x51\xd8\xd0\x8d\x42\xfb\x9e\xfd\x82\x93\x02\xec\x7d\xce\x01\x0c\x13\x5a\x4f\x71\xac\x0f\xaa\xbe\xeb\xb1\xb9\x6a\xf0\x05\xa3\x68\xcb\xe6\xf1\x22\x89\x47\x8f\x89\x65\xd4\xea\x69\x6f\x61\xa7\x13\x25\x1f\x15\x82\xf8\xe1\x07\x59\xde\x6d\x62\x40\xe7\x0b\x2f\x2c\xe1\x9c\x71\xa4\x0b\x86\x20\x13\x27\xd5\x11\xf3\x94\x25\x95\xd5\x07\xd0\x4b\xbc\x08\x44\x79\x2f\x6b\x55\x42\xc5\x86\x7b\x5e\x4b\xfb\x2d\xdd\x4b\xd3\xf8\xf4\xbc\x34\xfc\x11\xc2\xc1\xb0\x82\x4b\x61\x47\x31\x60\xee\x7a\x7f\x9b\x90\x91\xa9\x9b\xad\x2c\x2a\xde\x18\x7b\xfa\x54\xd6\x1c\xcc\xb8\x11\x93\x26\x35\xc9\xeb\x6a\xec\x7c\x59\x2b\x12\x3e\xa8\x31\xd4\xef\x91\x58\xb2\xc2\x8a\x26\x76\x95\xd0\x72\x05\x36\x98\x3e\xb0\x14\x38\xb6\x3c\x23\x12\x43\x53\x31\xcb\xc5\xa8\x99\x4c\x20\x47\x10\x2c\xda\xa0\x62\x64\x9e\x63\x07\xa6\x00\x98\x9a\xe0\xa3\x80\xc4\x29\xfb\x19\x8c\x07\x91\x71\x7b\xf0\x21\x50\xe2\x0a\x70\x7b\xb7\x15\x90\xb2\x59\x89\x0c\x5c\xf3\xaa\xce\x31\xb7\x8d\xe7\x39\x8c\x7d\x71\x86\xa8\xc1\x25\xb3\xea\x11\x3c\xbb\x13\x05\xfc\x5b\xd1\xb2\xe8\x66\xe4\x21\xee\x12\xfc\x77\xcd\x78\x51\x4d\x39\xb9\xde\x08\x14\x10\x6c\xf6\x53\x05\xa9\x44\x50\x96\x9e\x22\x12\x40\xdd\x47\x7a\x87\xef\x9d\x2f\xee\xb0\x2b\x85\xb5\xe3\xbb\x6c\xf1\x4b\x5f\xfc\xa5\x66\xb9\xd3\x49\x21\xb9\xde\x18\x9d\xf9\x43\x68\x49\xf1\x5f\xca\xc9\xd9\x4e\xb3\x05\xd4\x37\xd8\x9e\x8b\x21\xed\x83\x63\xac\x29\x13\x08\x64\x80\xaf\x8c\x65\x21\x98\x8c\x84\xc6\x50\xf2\x05\x76\x19\x6c\xbb\x70\x85\x94\x0a\xab\xb9\x10\x47\xa5\xb4\xed\x9d\xee\xa2\x9f\xe8\x8b\x6c\x9e\xac\x76\xb9\x75\x17\xc3\xd3\x4d\xc9\x1a\x74\xea\x6c\xeb\x57\x9a\xc9\x2a\x0b\x06\x88\x25\xbc\xd4\x9e\x5c\x30\xac\x6f\xc3\x4b\xa3\x8d\xe9\x40\x4c\xac\xc4\xa6\x2e\x07\x54\x68\xe3\xad\x20\x8e\x7b\xb6\x46\x4f\x6f\xc4\x33\xb8\xa0\x08\x3a\x24\x46\xf2\xcc\x3a\x9d\xa3\x36\x2d\x32\x04\x43\x8b\xcf\x37\x0b\xd4\xb6\xab\xd9\x0f\x37\xe2\x4d\xb6\x66\x54\xc9\xfc\x65\xf7\xa3\x43\x0c\x6e\x2a\x6d\xba\x97\x9c\x97\x60\xa8\xf2\x25\xce\xc3\xf4\x04\x43\x7b\xb7\xc6\x1a\x5d\xf3\x9c\xf4\xe4\xbe\xcb\xa7\x07\x81\x6e\x0b\xd1\x05\xbc\x0e\xc3\xa6\x28\xae\xc1\x2f\xba\x89\x4f\x5d\xb4\x9a\xaf\x62\x56\x3e\xd2\x06\xc4\x07\xed\x1a\x13\x5a\x80\x9d\x90\xdf\x17\x67\x96\xb5\xb4\x59\x35\x05\x25\x1f\xfb\xc4\x7d\x18\x20\x19\xf1\x5c\xca\x27\xd9\x3e\xd0\xc0\x93\x2c\x1b\xc4\xa4\xe3\xc7\xbc\x9f\x8a\x6b\x2a\x8c\x64\x45\xac\x7b\x99\x37\xbc\x80\x0f\x59\x11\x6b\xe6\xac\xba\x78\xf5\x93\x1c\x3d\xa3\x31\x0d\xd8\x7b\x55\x33\x82\x0b\xef\xb9\xe1\x03\xa2\x85\x1a\xb3\x1c\x04\xa7\x1e\x32\x51\x94\xa2\x48\xe0\x45\x2c\x57\x1a\x87\x95\xb1\xe9\x22\x7d\x72\xa6\x50\xb8\xbe\x8f\x71\x1d\xbe\x22\xb9\x56\x96\x93\x3e\xfc\x62\x27\x42\x5f\xea\xab\xb2\xcf\xfb\x0b\xd1\xc0\xcf\xe5\xd8\x50\xab\xa9\x5d\xec\xf4\x4b\xbf\x79\xed\x84\x9e\x2c\x73\xa2\x28\x58\xc8\x7f\xf2\x38\x49\x74\xb5\x75\xe0\xa2\x94\x26\x6e\x65\x77\x1a\xd3\x8b\xd1\x60\x88\xb2\x5c\x55\x4b\x04\x6d\x4f\xfa\x03\x34\x5f\xc3\x6b\x43\x76\x4a\x4b\xf1\x32\xe9\x0f\xac\x5c\x3a\x24\x50\x4b\xac\xfc\x23\x73\x41\x60\xbe\xa0\xea\x44\xa6\xb0\xa8\x58\x29\xcf\x32\x55\xbb\xb4\x61\x0c\x0a\x85\x8f\x79\xcd\x6a\x8a\x07\x10\x08\x9e\x97\xed\x2f\x83\x28\x50\xcf\x12\xa1\xd3\xf1\xf5\x06\xf2\x13\x19\x9f\x59\x1d\x6c\xc1\x7e\xdb\x5a\x11\x97\x2e\x0d\x43\xfd\xe0\x72\xdc\x9c\xa4\xdd\x63\x3e\x56\x0f\x53\x56\x75\x8f\x7d\xb0\xea\x63\xfc\x83\xaa\xd1\x4e\xd8\x54\xf4\x13\x8e\xde\x89\xb2\x57\x71\x72\x38\x46\x76\xb7\x26\x03\x09\xfe\x1c\x8d\x53\x96\x73\x92\x15\x8a\x52\xc2\x23\xa3\xd9\x68\xce\xc6\x54\x82\x37\x06\x09\xa0\xdb\xf3\x18\xab\x2c\x79\xdf\x5c\x88\xe1\x9d\x57\x14\xfe\x0d\x85\xd8\xb0\x6a\x28\x20\x0a\xa0\x7e\xe5\x03\xa6\x10\xd6\xa4\xf6\x00\x07\xca\x01\x1c\xa4\x2b\xad\x07\xec\x83\x9c\xb9\x78\xa5\xc8\x58\x2e\x5b\x8b\x0b\x66\x24\x2d\x67\xb2\xe0\x96\x58\xf4\x14\x72\x11\xdb\x5b\xd0\xcd\x6e\xb5\x24\x4e\xf8\x79\x49\x8d\x76\xb0\xfd\x88\x7d\xfd\xab\xda\xb5\x4a\x95\x8b\x2e\xa5\x44\xa8\x19\x9a\xf3\x89\xe4\x12\x88\x13\x8f\x8d\x05\x90\x09\x3c\xf8\x55\x3c\x72\x02\x86\xce\x59\x19\x1e\x82\x99\x7a\x31\x14\x88\xa8\x5d\xa1\x3a\xf7\x83\x6e\xf5\x68\x5c\xf9\xb0\x1e\xe3\x5a\x37\x33\x8f\x1d\x6f\x89\x9e\x58\x48\xc0\x0e\x71\x47\x6e\x0b\x89\xc3\x7e\x63\x15\x80\x55\xb7\xf2\xf6\x5d\x33\xc0\x96\xac\x71\x00\x2e\x42\x34\x33\xfa\x8b\x60\x45\x88\xc5\x99\xba\x11\xb1\x49\x0d\xc4\x44\x69\x02\x50\xd1\x80\x5d\x2f\x79\x13\xec\x2b\xd4\x02\x32\xb2\x47\x22\x42\x16\xa0\x7e\x5a\xe8\x17\x61\xd9\xb7\x91\x0d\x82\x85\xf1\x18\x93\x82\xec\xed\x0f\x95\x34\x8f\x9f\x5e\x03\x5f\xdd\x8b\x7a\x2a\xf8\x42\xa2\x43\xb7\x3d\x79\x72\x4c\xfe\xc0\x1b\x23\x7e\x6c\x78\x69\x92\xba\x8e\x1b\x36\xf2\x13\x8d\x34\xae\xf8\x61\xa2\x3b\x81\xb9\xa9\xc4\x8e\x21\x8c\xf9\x24\xc8\x29\xee\xeb\x1b\x73\x32\x58\x5e\xa1\x8b\x17\x6b\xea\x2c\x44\x30\x92\x97\xa2\xf2\x18\xbc\xdc\x40\xb9\x41\x0c\x8f\x84\xd8\x0e\x72\x1a\xc7\xfd\x44\x4d\x32\x0f\x77\xef\x41\x4e\x36\xb6\xb4\x34\x8a\x96\x96\xbc\x17\xa6\x04\xa4\xe6\x4c\x50\xe8\xdc\xb4\x4a\x04\x86\xc8\xfa\xe4\x0f\xbc\x24\x37\x7f\x02\x66\x47\x29\x4b\x4b\xba\x21\xf2\x46\xa3\xea\x34\x5e\xd8\xa2\x16\x3c\x9f\x33\x08\x13\xbc\x18\xa7\x5f\x42\x49\x05\x88\x93\x44\x13\x6f\xe2\x25\x11\x9a\x04\xf8\x1e\xf3\x5b\xd9\xd2\x6f\x82\x0b\xd6\x29\x38\x4e\xf8\x4e\x40\x51\xe2\xcf\xf6\x18\x60\x42\x3c\x48\x2d\x2c\xcf\xa2\x99\x41\x9d\x1c\x8c\x6a\x83\x2b\x9a\x22\x89\xb9\x66\xff\x14\xb5\xda\x94\xd3\x21\xca\x29\x2f\x33\x64\x75\xc7\x77\xa2\xd2\x90\xc8\x01\x07\xec\xeb\xd7\x6f\xfe\xcf\xeb\xaf\xbf\xfe\x0e\x8e\x9c\x5b\x97\xc1\x2c\x5f\x67\x5a\x03\x09\x25\xaa\x45\x75\xff\x66\xf0\xe6\xbb\xde\x53\x4d\x6e\x43\x95\xfb\x65\x5b\x6e\x6a\xeb\x72\xdc\xab\x5a\xd8\x6b\x42\xaa\xb2\x93\xc3\x61\xd8\x6a\xee\x10\x11\x86\xc1\x01\xe1\x7a\x44\x93\x24\x05\x58\x14\xea\xc1\xc9\xc0\xd2\xcc\x07\xec\x53\x09\xba\xd3\xa5\xb8\xb7\xaa\x13\xf5\xfa\xc1\x36\x1a\xfa\x36\xb1\xe5\x79\x59\x8b\x28\x42\x35\x5d\xec\x91\x30\xb4\xd6\x3d\x36\x89\xb1\xb2\x2f\x55\x39\xf4\xa3\xf3\xdd\xd0\xe2\xf5\x27\x5b\x96\xa6\xa1\x7e\x3a\x44\x0b\xba\xa6\xa4\xa6\xb3\x9f\x79\x2d\x55\xa3\x9d\xb3\x3b\x53\xb3\x4a\x95\xc0\xc7\x7c\x99\x4d\x9c\x14\xdc\x3c\x28\x5a\x86\x4e\x62\xdc\x70\x40\x16\xf2\x33\x3a\xf1\x67\xfc\x74\x39\x1b\x91\x80\x71\x75\xef\x3e\x55\x53\x4e\x19\xc5\x66\x44\x5f\x46\x06\xb2\x94\x67\x38\x2e\xa8\xe3\x81\x42\x37\x6e\x1c\xbe\x80\x1a\xf6\x02\x92\x74\x1d\xce\x74\x2f\xc8\xd7\x75\x32\xb3\x75\x0e\xf9\x6f\xbe\xde\xc2\x21\x5f\xb5\x07\xb4\x19\x06\x2b\xb2\x27\xc8\x28\xb8\xd7\x19\x64\x02\x25\xdf\x1e\x90\x09\xc6\xb2\x83\x7e\x56\x4b\xf0\x60\xfb\xe0\x70\x7a\x48\xa9\xc1\xc9\x73\xab\x90\x3c\x28\x9f\xc9\x71\x27\xe6\x0f\xaa\xf6\xe0\x66\xee\xab\x89\x12\x42\x9f\x45\xdc\x03\x72\x9f\x41\xf4\x6d\x4d\xba\xe4\x92\xc6\xf3\x01\x3b\x29\xe7\xc8\x15\x51\xdb\x73\x02\x8e\xe3\xa9\xa3\x79\xec\xb6\x48\x76\xcf\x65\x25\xd2\xd7\xac\x90\x02\xfb\xb9\xd2\x58\x15\xc8\xd3\xb1\x72\x17\x4f\xae\x6a\xe0\xb5\x04\xe8\x56\x53\x8d\x70\xf7\x78\x3b\x1c\x9d\x90\xe1\xb5\xd1\x62\x95\x6c\x29\x87\x4b\xc1\x29\x9d\x13\xf4\xb7\xd1\x78\x85\x25\x4e\xee\xcc\xa4\x76\x4a\xbe\xe5\x80\x9d\x38\x1d\x1c\xef\x3d\x70\xf9\xd8\xce\xa0\xfa\x6c\x6a\x02\xc0\x16\x27\x97\x67\x4e\x3d\x26\x2c\x97\x34\x9a\x08\x05\x96\x74\x24\x70\xcf\x12\xa8\x8e\xf8\xad\xe1\x05\xba\x70\x6f\xea\x46\xdc\x1e\x6c\x77\x55\xa1\x4d\xf7\xf8\xf5\xeb\xd7\x7f\x83\x9b\x0a\x06\xf7\xbf\xbf\x7e\xf7\xbf\xbf\x7e\xf7\x12\x69\xb6\x69\x9e\x5e\x47\xe5\x6c\xc5\x26\x47\x16\x8b\x8d\x38\x07\x18\xda\x1e\x79\xc3\x5b\xb9\x4f\x51\xb2\x3e\xb0\x4d\xba\x86\x30\x47\xa3\xc7\x3e\x95\xef\xb1\x26\x56\x0f\x6f\xa6\xc4\x66\x8d\x8d\x76\x8a\xf2\x73\xfc\x15\x4d\xaf\x8f\x43\xde\x2a\x35\xc4\x4b\x3e\x1d\x18\xdb\x55\xab\x79\x92\x92\x98\x08\x6f\x74\xee\x65\x88\xd9\x22\x0a\xc3\x68\xd2\x9e\x4b\xd9\xf1\x1e\xe8\x86\xac\xab\x18\x0a\xef\x7c\x0b\xc8\x28\xd2\xae\xbd\x7c\x1e\xe3\x37\x5a\xb6\x92\xb3\x0c\x25\xb8\x65\x60\x81\x75\x53\xa6\xa9\x09\x91\x76\x7b\x7b\x50\x88\x09\xcf\xe6\xb7\x07\xe9\x97\x62\x8f\x84\x1b\x31\x5a\xaa\x25\x15\xc6\xc2\x2f\x52\xa9\xc5\x92\xe0\x7f\x03\x7d\xfb\x9a\xd7\x38\x48\xc7\xca\x5c\x20\x37\xda\xd9\xea\x67\x88\x8f\xd4\x53\x1f\x86\xe1\xc5\x46\x2c\xe4\x26\x0c\x77\xb2\xc9\x72\x99\xf1\xdb\x6d\xe0\xbd\x9c\x21\xe0\xc9\xd7\x60\xb2\x29\x96\xaf\x4b\x0d\x26\x10\x92\x52\x3d\x53\xf3\x5f\x58\x77\x4b\x2c\xef\xc4\xad\x6f\xe8\x62\x8b\x09\xae\x4c\x40\x7d\x32\x17\x6b\xe7\xb2\xae\x8d\x26\xda\x7d\x2a\xeb\xf2\x18\x0c\x20\xd1\x01\x63\xd7\x82\x70\xc8\xe2\xa0\x4f\x28\x4f\x4e\x8b\x18\x12\x51\xc1\x50\x89\xe2\xdc\xaa\x35\x8b\x43\xf8\x36\x50\xc5\x99\xaf\x62\x9e\x46\xfe\xb9\x10\x54\xfb\x94\x22\x29\x0a\xc9\xd1\xf2\x91\xb6\x44\x91\x30\xf4\xf3\x16\x5c\x90\x7a\xa1\x0d\x93\xa5\x36\x56\x9d\xda\x86\x0a\xda\x9d\x6d\x8c\xa4\x5a\xfc\x7a\xe0\x4c\x4e\xd6\x6e\xcd\x98\x5c\x56\x0b\x5c\xaf\xdb\x15\x61\xb8\xbe\x0b\xf6\x1b\xd1\x27\xc8\x37\xa4\x83\xe8\x77\x9a\x4b\x9f\x4c\xd6\x2b\x6c\x3a\xeb\x57\xc3\xfc\x40\x1e\xc4\x13\xfd\xfe\xc7\xb3\xcb\x0e\x30\xb0\x75\x23\xd6\x39\x20\x63\xcd\x3e\x16\x8c\x6d\xef\x3d\x56\x73\x83\x42\x3d\xc7\xfb\xa3\x10\x1c\x63\xf2\xd9\x61\xc4\x47\x8f\x20\xd4\x25\x24\xbd\xe0\x25\xdd\xc3\x85\x44\xf8\xf5\xa0\x91\x08\xe8\xda\x5d\x48\x7e\x3c\xa8\x76\xd0\xf6\xdc\xd9\x25\x2e\xf0\x1b\x96\xbd\xa6\x2d\xb4\xa9\x9b\xcc\xb0\xc6\x68\xfb\x3b\x7e\xdc\x85\xa7\x77\xf8\x7c\x2d\x26\x52\x9b\x7a\x1e\x80\xc9\xc3\x20\xc8\xb8\xe7\x9b\xdc\x89\x39\xfb\xe1\xef\xe7\xff\xf9\xeb\x87\x4f\xa7\x27\x1f\x7e\xfd\x78\x72\xfa\xc3\xc5\xe5\xf9\xed\xed\xf5\x7f\x5e\xdf\x9c\x7f\xbc\xbd\x3d\x45\x33\x3c\x69\x67\xd7\xc2\xdc\xde\x12\x69\xe9\xdb\xdb\x9b\xac\x92\xd5\xed\x6d\x14\x78\x68\x14\x4c\x1e\x3d\x44\xc0\x3f\x7d\xb2\x1f\xc8\x8a\xb8\xe8\x30\xee\x29\xd7\x21\x11\x76\x37\x3e\x77\xa8\x2e\x3e\xc4\x14\x95\x4b\xe7\xae\xdd\x74\x9c\xa6\xe0\xb5\x60\x5a\x96\x93\x42\xf8\x04\x97\xe0\xed\x1d\x09\xf3\x20\x48\x78\x6e\xa7\xca\xc5\x39\xea\x04\x99\x8b\x97\xa2\xbd\xf9\x13\x69\x8e\x6c\x72\x60\x12\x51\xec\x5e\x8a\x07\xb4\x33\xc9\x49\xc9\x0b\xf7\x55\x41\xda\x2d\x6a\x40\xed\x7c\x1f\xf2\x43\xfb\x60\xad\xc5\xac\x9c\x85\x8c\x9c\x44\x2e\xf1\x30\x4c\xc3\x8b\x33\xf6\x66\xc0\x7e\xc0\x08\x05\xe8\xeb\x7a\xd9\xca\xf9\x58\x30\x65\xa6\x64\xea\xda\x75\x4c\x82\x6e\x46\x08\xe9\xf6\xe4\x0b\x7e\xdc\x14\xc5\x9c\x59\x9d\x03\x2f\xf3\xa1\xca\x17\xcf\xfe\xed\x01\x56\xbf\x70\x0f\xb0\xf4\xc5\x00\x7f\xf4\xdf\x4e\x7e\xb5\x34\x1b\xaa\x27\xe0\x13\x7d\x9f\xd1\x53\xd2\x8e\x59\xfc\xe2\xf2\x7c\xea\x05\xc9\x10\xe8\x9f\xd3\x9b\x30\x4a\x0e\x90\xfd\x5b\xdc\x19\x46\xd4\x33\x59\x82\x1d\xfd\xfb\x9a\x67\x62\x28\x6a\x09\x42\xc0\xae\xd2\x21\x4a\x21\x10\x9f\xde\x7d\x49\xb0\x89\xfd\x10\x2c\x3a\xa6\x76\x82\xbe\x6c\x95\x71\x4c\xa6\x67\xb9\x28\x44\x30\xc4\xb6\x73\x19\x4a\x55\xf6\x4b\x31\xe1\x49\x36\x03\xd8\x5a\x90\x47\xa1\xbe\xed\xcd\x17\xd4\x99\x9c\xcd\x44\x6e\x6f\x68\xfb\x51\x17\xda\x83\x2f\x58\x95\x5c\x16\xbd\x44\xd8\x85\x21\xb2\x0a\x16\x23\x8d\xf1\x71\xd7\x33\x7c\x31\x69\x46\x57\xe7\xb2\xc5\xe0\x63\xe3\xcd\x3d\xee\x78\x3a\x7b\x7c\x50\xcd\x40\x83\x06\xcc\x0e\xce\xa2\x7d\x71\x27\xdb\x1d\x54\x4c\xa7\x24\x54\xed\xa8\x43\xfb\xf6\x58\xd5\x99\x1c\x15\x73\x36\xe5\x85\x09\xe5\xd4\x21\x53\x04\xbb\x19\xb0\x6b\x61\xe2\xe9\x17\xaa\x9c\xc4\xd7\x96\x78\xac\xd0\x5e\x9d\xd9\xb3\xd6\x54\xf8\x3d\xcb\xed\xe7\xaa\x59\x91\xd1\xfb\xcd\x6b\x37\xd5\x9d\xe7\x95\x18\x55\x08\x5c\xd0\xa7\x59\x3b\xc2\xed\x1c\xf5\xb0\xe3\x80\xbe\x1b\xdf\xf3\x4e\xca\x9c\x5c\x57\xb5\xe0\xf9\x69\x94\xbf\xb2\xc1\xba\xba\xea\xbd\xa8\xe6\xf5\x54\x3d\xc4\xb5\x2e\xc0\x38\xad\x9a\xc9\x14\x1d\xac\xf0\x22\xe3\x59\xad\xb4\xf6\x65\x40\x1c\x32\xe6\x80\x5d\xa7\xc5\x27\xd2\x92\x13\x70\x5d\x3d\xf0\xb9\xab\x37\x32\x92\xb9\xd0\x51\x82\xa9\x1b\xcc\x80\x9d\x14\x05\x5b\x39\x47\x20\xdb\x93\xcb\xb3\x9d\xe7\x7f\xac\x5a\x9d\xe7\xbb\xcd\x0b\xa9\x4d\x7f\xc6\xab\xfe\x9d\x98\xeb\x04\x5a\x28\xd9\xce\xbf\x8b\x79\x3b\x55\xd4\x9e\xda\x9f\x4a\x82\xa3\xb7\x37\x78\x3c\x98\xff\xda\xf0\x45\x37\xbc\x19\xdf\x1c\xe9\x99\xf8\xf4\x57\x0d\xe8\x19\xae\x7d\x2a\xf0\xde\x31\xb8\x88\x5a\x87\x5a\xd0\x10\x12\x0e\xb9\x4e\x60\x87\xdd\x14\x6c\xb4\x65\x41\x7a\x37\xc8\x9d\x92\x15\x16\x60\xff\x82\x62\x2f\x7a\xb5\xb0\xab\xf7\x77\x4b\x8b\x61\xaf\xfe\x57\x6b\x6c\xab\xa1\xb0\x5c\x9c\xd8\xff\x6a\x51\xe1\x36\x69\x9b\x6d\x18\xf5\x65\x89\x9b\x68\xe2\x8d\xdc\xd7\x8b\xb9\x1e\x26\xc1\x57\x77\xc0\x4d\xf8\xc3\x8c\xcf\x99\x3d\xc8\x05\xb4\xe2\x99\x69\x78\x01\x8d\x05\xb6\x45\xdf\x43\x8f\x09\x72\x31\x14\xf3\xa4\x9a\x0a\x90\x20\xc6\x86\xbb\x5b\xd7\x45\x09\xd9\xa5\xc8\x02\x46\x48\xad\x0a\x56\x15\xbc\xec\x52\x14\x3f\x02\x2d\xdf\x80\x8d\x46\x35\x16\x5c\x5e\xa0\x1f\xf8\x36\x74\xbe\x35\x96\xfa\x0e\x8c\xdd\xa1\xec\xc4\x4b\x9c\x84\x16\x58\xfb\xb3\x58\x95\x27\x71\x24\xa0\x8d\x4c\xeb\x86\xaa\x91\x80\x56\xa9\x4a\xc2\x37\xb1\x42\x5e\x9a\xc6\x88\x61\x6e\xa5\x1c\x83\x8c\x1a\x83\xec\xea\x28\xe2\x0c\x22\x07\x1a\x53\x35\xc0\x08\xff\x81\x71\xb3\x56\x88\xb4\x42\xd6\x3f\x76\xbf\xe5\xbc\x8c\xec\x29\xae\x58\xf1\xcb\xc4\x9f\x5d\xb7\x2a\x21\x6f\x21\xf9\x2c\xe6\x48\x75\xdc\x24\x62\x06\x18\xc2\x39\x5f\x9e\x31\x85\x47\xdd\xaa\x4a\x0b\xb9\x53\xdd\x52\x80\xaa\xb8\xec\xf4\xef\x9f\x04\xb4\xcb\x85\xc7\x14\x8f\x4d\x02\x75\x80\x61\x26\x6b\x85\x7d\xcd\xde\xcc\x28\xf2\x45\xd1\xb9\xce\x20\xe0\x4a\xca\x49\x54\x62\xe7\x22\xd8\xb5\xb7\xb1\x68\x26\xa1\xcc\xcf\x3f\xbf\xad\xe8\xd8\x85\x43\x7c\xe3\x6a\x61\x61\xd9\x72\xa6\x9b\xcc\xea\x3a\xe3\xa6\x68\xbf\x1a\x00\xd8\xd0\xe3\xf9\x1f\x11\xa0\xd5\x2c\x29\x7c\x4e\x81\xce\x4b\xdf\xd5\x1e\x04\x00\x21\xc7\xfe\xa5\x79\x41\xb7\xca\x35\x27\x6c\xda\xcc\x78\xc9\xba\xd7\xae\x79\x98\xce\x63\x4a\xf5\xb5\x39\x43\x71\xa0\x2d\xc2\x38\xd1\x92\x91\x5f\x76\x8b\x70\x5d\x68\xef\xec\x7a\xc0\x66\x1e\xbc\xb5\x0f\x43\x09\x20\x56\x47\x93\xe5\x0e\x15\xb6\xe0\x90\xf4\xd5\xf9\xa2\x64\x4c\x1f\x53\x59\x03\x44\x0b\xb7\x4a\x19\xd7\x2c\x44\x39\xb1\x7b\x99\x19\x39\xd3\x40\x95\x12\xe3\xd9\x64\xed\xed\x30\x89\xb1\x01\x8d\x19\x69\x1c\xa0\x37\xbc\x4e\x1a\x5e\xf3\xd2\x08\x11\x20\xdf\x62\xc7\x56\x2b\xba\x53\xba\x12\x60\x41\x8f\xb4\xd2\x5b\x2e\x32\x28\x40\xa1\xac\x78\x95\x79\x83\x3b\x13\x85\x16\x58\x36\x53\x8e\x5d\xe4\x06\x14\x03\x1b\x89\x4c\xcd\x04\xe3\xf7\x5c\x16\xb0\xe7\x5a\x29\x00\x86\x4a\xfb\x05\x84\xa8\xd0\xf9\x84\x26\x1a\x0a\xb3\x26\xa3\x42\xf7\x2f\x05\xe2\xf8\xf8\x0d\x88\x54\xa5\x72\x85\x0e\x79\x13\x8d\x37\x61\x35\x07\xec\x04\x03\x95\x75\x53\x98\x5e\x1c\x08\x44\xd9\xb7\xb9\x1c\x43\xae\x88\x41\xa3\x8a\xcb\xd8\x71\xe1\xd0\x91\xed\x06\x49\xf2\x39\x1c\xb2\x9a\x72\xbd\xb1\x8a\x8f\xfd\xd4\x94\x32\x77\x00\x7d\x81\x42\x80\x25\xe6\xf6\xd8\x45\x70\x1e\xbb\x66\x06\xb0\x4a\x6a\x4c\x15\x4c\x5d\xa2\x16\x9e\x1c\x69\x34\xf3\x3c\x06\xf9\x65\x14\xe3\x01\x87\xbb\xe7\xa2\x3b\xb4\x15\xe7\xcb\xdc\x1f\x50\xc4\xa7\x0d\xf6\xe6\x28\x23\x29\x72\x04\xe2\xbd\x0e\x3d\x79\x07\x05\x96\x98\xc4\x53\x1d\x69\x08\x84\xfc\x01\x6f\x38\xf4\x09\xb0\x81\xd9\x8d\xaf\x94\xd6\xd2\xd2\x0a\x4e\x1c\xfd\x82\x00\xcd\x3a\x14\x10\x3f\xf9\x16\x61\x52\x55\x0e\xf7\xc4\x08\xcc\xf2\x99\x65\xac\x21\x72\x2e\xf2\x3c\x3b\xad\xc2\x1e\xbe\x25\x75\x2f\xa3\x3b\x05\x53\xb6\xd0\x23\x61\xb0\x5f\x22\x24\x97\x7a\x4a\x35\x18\x28\x74\x36\x06\x14\x0d\xe7\x87\x6b\xf6\x20\x00\xdd\x05\x9b\xe9\xca\x92\x53\xae\x1e\x4a\xcb\xf1\xc1\x6c\x88\x1f\x02\x10\x5e\x60\x0e\x0e\x09\x00\xef\xe6\x0c\x42\x14\x00\xb2\x97\xdb\x9f\xec\x76\x5d\xa1\xc5\x71\xc9\xcc\x47\xaa\x29\x11\x94\xc8\x85\xc1\x97\xf9\x0a\x2f\x05\x5c\x5c\xe9\xb4\x4e\x56\x40\x7d\xd8\xcd\x81\x48\x54\xfc\x2e\xe4\xb3\x48\xef\x81\x70\x9e\x06\x70\x52\xf1\x1a\x38\x37\xa4\x65\xb8\xbf\x06\xec\xda\xde\xbf\x22\x17\xf9\x5b\xb0\x21\x2d\x7a\x31\x70\x12\xf6\x9c\x3b\xe3\x32\x18\x90\xe9\xde\xc6\x69\x24\xf1\x14\xc2\xe7\x1d\xbd\x87\xe4\xa1\x27\x74\x4c\x8b\xb2\x7c\xae\x76\x25\xd3\x31\x8c\x31\xa8\xc6\x1f\x12\x6a\x28\x24\x30\x36\xf1\x28\xbd\x79\xb6\x54\x65\x1f\x8c\xd6\x4e\xe5\xad\xd9\x43\xda\x1d\xd1\x23\x12\xe1\xc0\x55\x13\x7b\x0b\x19\x7a\x50\xe9\x91\x8e\x9b\xd3\x9b\x45\x14\x26\x49\x94\x40\x0b\xa0\x46\x30\x8e\xbc\xc7\xcc\xbc\x22\xd4\x19\x57\x05\xb2\x64\xa2\xae\xb1\xae\x31\xe1\xb9\xd3\x7d\x1a\x6a\x87\x2a\x6d\xe2\x08\x4c\x7b\x9c\x76\x2d\xb4\x20\x43\x7b\x3a\x1f\x6c\x55\x51\x59\xc6\x07\x77\x53\xe8\x64\x51\xc2\xf5\x9d\x6d\xc3\xbf\xa1\x54\xcb\x86\x81\x63\x23\x0a\xaf\xb0\x63\x89\x2b\x71\xad\x98\xcb\x45\x52\x71\x56\xea\xb6\x6d\xfc\xb5\x71\xfa\x6a\x94\xc0\x41\x6f\x5f\x0c\x5d\x20\xec\x10\x6b\x60\x63\xe6\x94\xff\x0e\x37\x28\xe4\xbe\x21\x17\x82\x4f\x0c\x53\x63\x06\xf5\x5a\x30\x53\xff\xfe\xbb\x18\x3d\x42\x6a\x8a\x34\x82\x95\x83\x44\xfe\xc0\x4b\x42\xdf\x73\xd1\x0e\x8b\xdc\x81\xb5\xe2\x62\xf8\x85\xa7\xdc\xff\xa6\x34\x44\x6f\x75\xb8\xc9\x7f\x6c\x78\x41\x91\xd0\xe4\x3e\x67\x87\x3f\x7e\xba\x3e\xc2\xa8\x2e\x39\x86\x53\x6b\xef\xde\xc5\x52\x39\x01\x8b\x67\x69\x42\x13\x84\xd7\x0c\x55\xfe\xe3\xa7\x6b\x0c\x25\x83\x50\x1b\xd0\xb1\xbd\xe8\xf5\xe3\xa7\x6b\xfc\x90\xd0\xdb\xd6\x84\xc0\x64\x9d\x5a\x55\x4a\xf3\x42\x1f\x63\x48\x18\x8d\xa7\xff\x9b\x5a\x2c\x81\xb2\xb3\xfa\x92\x27\x6c\x54\x4b\x31\x8e\xaa\x4a\x6e\xab\x3d\x00\x97\x1d\x30\xa8\xa2\xfb\xea\xdc\x8a\xd7\x22\x7f\xb5\x55\xdd\x49\x54\x00\x3f\x67\xe1\xd1\xab\xf7\xa7\xec\x9b\x6f\xbe\xf9\x3f\x0c\x80\x96\x41\x1c\x93\xe8\x42\x0e\x6a\xbd\x8b\x80\xe6\x9a\xf1\xcc\xde\x36\x85\xc8\x27\xa9\x64\x54\xf8\x1c\x04\xc8\x3e\xf0\x20\x76\x0e\xcf\x19\xd2\xcc\xf3\x65\xe2\xd1\xa1\x3e\x4a\x50\x9b\x76\x8b\x1d\x78\x23\x66\x55\xb1\xb1\x52\x86\x6b\x15\xb9\xca\x38\x33\xee\x47\x3b\x3a\x1f\x1d\x9e\xa9\x4a\x0a\x67\x89\xae\x85\x0b\x20\xef\x08\x33\xb8\x2f\xec\xf4\xbb\x15\x76\xda\x97\x2e\xfa\xb3\x94\x2e\x42\x08\x86\xee\xc5\x8b\x70\x6f\x5e\xe9\xcf\x57\xc0\xc8\x4f\x7a\xb9\x87\x7f\x91\x27\x75\x5a\x92\x65\x7c\x0d\xb0\x51\xd7\xad\x42\xc4\xda\x02\x1f\x01\x3b\x52\x82\x58\xe3\xcc\x1b\x44\x9d\x64\x7e\x72\x23\x1d\xbc\xc8\x2a\x59\x19\x14\xcc\x92\xba\x65\x2f\xdc\xc8\xf8\xfd\xef\x2f\x58\xbd\xc9\xdf\x1c\x49\x83\x1d\x54\x70\x72\x1d\x6f\x2e\x20\x18\xb7\x5c\x28\x24\xe8\x1e\xee\x0b\x0a\x7e\xd9\xf7\xce\x13\x0b\x0a\xfa\x33\xb7\x7b\x2f\xad\xa7\xe8\xe7\x18\xe6\xf7\xd7\xe8\x9f\xe5\x1a\xdd\x57\x00\xc4\xdf\x3f\xc3\x1d\xf2\x22\x95\x00\x13\x11\xa0\xd3\x3d\x02\x30\xe9\x41\xc5\x81\xf8\x54\x6e\x38\x05\xd4\x13\x9b\x06\x33\x4c\x00\xf2\x74\x32\x41\xd0\x87\x36\x5f\x37\x7b\x99\x6f\xe1\xfc\xea\x74\x93\x3a\x2d\xc7\x02\x06\xfe\xda\x99\x13\x0a\x8e\xbf\x88\x31\x80\x59\x4b\xc0\x50\x88\x8a\x9c\xad\x8b\xa3\xfb\x32\xa4\xbb\xcd\xb4\x5f\x9b\xc5\xe0\xb2\x55\xc4\x08\x66\xec\x4d\x28\xc4\x68\xea\x06\x41\xc4\x0a\x17\xb5\xc3\x19\x50\xa3\x02\x20\xf8\xc9\xe4\xed\x02\xb5\xa0\x46\xdb\x0d\x65\x9e\x73\x6f\x05\x47\x8b\xb9\x9e\x62\xca\x2d\x80\x0c\x45\x39\xea\x45\xa1\x1e\x00\x84\xb2\x29\x84\x7e\xcb\xfa\x6c\xd4\xc8\xc2\xf4\xa5\xb3\xb4\x53\xb6\x1a\xbe\x3e\x12\xed\x24\x69\x49\xf8\xa5\xe8\x31\x53\x5a\x50\xcb\x46\x8b\xdb\x92\x45\x56\x2c\x48\x32\xb8\x2d\xfb\x2c\x2b\x54\x93\xdb\x49\xdc\xcb\x3c\xd4\x58\xca\xd2\xcf\x81\xbd\x17\x8b\xc7\xf1\x10\x95\x99\x0e\xde\xf6\x4f\x33\x1d\x2b\x35\x20\x18\xc0\x41\xa6\x66\xc7\xe1\xfa\xdc\xc6\xda\x5d\x6f\xca\xb4\xb3\x5b\xed\x42\xe9\x61\xd1\xcb\x66\x36\x12\x9e\x8e\x93\xfd\x00\x2f\x25\x64\xe4\xa2\xe7\x04\xc4\x53\xbb\x97\x84\x56\xbe\x7b\x48\x05\x65\x54\xa6\x8a\x8d\x78\x21\xd8\xcc\x4f\xc3\xfd\xbd\xcd\x1c\xb0\x42\xa4\x2f\xd4\x12\xc0\xcb\xdf\xb2\xdb\x83\x9b\xd3\xe1\xed\x41\x8f\xdd\x1e\xfc\x74\x46\xff\xb8\x3e\xbd\x19\xde\x1e\xec\xb6\x5e\x2a\xec\xda\xb2\x65\xd8\x74\xe1\x76\x39\xd6\x0f\xaa\x7e\xc4\x98\xda\x6b\x90\x0a\xd7\xde\x6b\x8b\xcd\xe3\x40\x52\xce\x5c\x0b\x57\xff\xd0\xe3\x2c\x75\xa9\x41\xda\xa1\xb4\xed\xfb\x6b\xaa\x69\x9b\x60\x2f\x41\xa1\x4e\x44\x33\x01\x8b\xb9\x51\x18\xdd\xcc\x3e\xfa\xf2\x1b\xed\x26\x61\x43\xc9\xa2\x8a\xae\xb5\x0a\xd2\x09\xca\x89\x77\xf5\x9d\x3f\x0e\xd8\xed\x81\x78\x34\xdf\xe2\xf6\x3e\x8e\xb1\xe6\xe2\xcc\xc3\xb9\x83\x80\x4c\xa8\x88\x90\xa6\x84\x8d\xdb\x35\xd4\xb6\x43\x9a\xf8\x54\x16\x9b\xf0\x07\xe2\x34\x10\xc8\xdd\x62\x87\xf6\xcd\xe3\x87\x5a\x1a\x71\x34\x00\x98\xc3\x4f\x80\xee\xe3\xcb\x07\x8c\x55\x4d\x61\x1f\xfe\xa1\xcb\x39\x94\x25\xc3\xdd\xfd\x68\x17\x70\x15\xc4\xda\xda\x3c\x30\xdc\xfa\x8d\x70\xb9\x3f\x53\x33\x02\x75\xb4\x2b\x99\xdb\xbb\x0c\xe0\x6a\x17\x28\x69\xb7\x07\xca\x0f\xf1\xd9\x07\x08\xa0\x0c\x6a\x91\x5f\x7b\x28\xc7\x1b\x51\xcf\xd6\x9c\xa1\x13\x97\xef\x5f\xb9\x57\x63\x18\x48\x23\xea\x99\x47\x28\x00\xff\x3f\x8c\x83\xb0\x02\x3c\x7e\xc0\x83\x80\x40\xa3\xd7\xec\x50\x0e\xc4\x80\x49\x2b\x75\x71\x56\xaa\xbe\xaa\x8e\x06\xec\x84\x95\x4d\x51\x74\xf8\x40\xa9\x7c\xff\xd4\x91\xc6\x20\x1e\xdf\xd7\xe6\x63\x5b\x79\xb4\xdd\xad\x65\xad\x18\x1b\x0f\x56\x6f\x9d\xd0\x75\x82\xc1\x43\x1e\x3d\xcf\x4e\xa8\xb7\x80\xb5\xb6\x88\xd6\x85\x4b\xb6\x22\x15\x1d\x1f\x6e\x20\xd8\x5f\x70\xd1\xdb\x9f\x4a\x2a\x1b\xa4\xdf\x2c\x5b\x13\xf3\x28\xbe\x35\xd4\x36\x7e\xd3\x7f\xf3\xfa\xf5\x6e\x60\x87\x3a\xd2\x3d\xcd\xb3\xb7\x74\xfb\x9e\x7f\x16\xd4\x68\xed\xed\x61\x9f\x27\xee\x9e\xa9\xe0\x85\x99\xb2\x6c\x2a\xb2\x3b\x62\x9f\xbe\xb0\x27\xe3\x13\x2e\x4b\x6d\xe2\x9a\x5b\xb6\x4d\x2e\x30\x2e\x43\x84\x52\x15\x68\xa8\x2b\xa0\xda\x53\x4d\xf1\xa0\x28\x55\x62\xac\x5d\xcd\xc7\x63\x99\x75\xa0\x65\xf1\xf8\x0c\x8d\xe1\xfc\x51\x64\x27\x80\x2d\xbb\x96\x7e\x3f\x95\x28\x4f\x42\xe4\xa1\x2a\x7d\xa4\x48\x10\x56\x03\xba\x49\x04\x63\x6e\x7b\xf7\x7f\x6b\x97\x7a\xe1\x6a\xf3\xf1\x3b\xb1\x82\xb2\x29\x0a\xe6\x66\x5a\x0b\x3d\x55\xc5\x26\x3b\xd2\x47\x59\xca\x59\x33\x83\xf4\x31\x91\x35\x90\xe2\x49\x5d\x44\x68\x92\xb0\x91\xb8\x5f\x11\x2a\xb0\x43\x03\x86\x68\x3d\xab\xfc\xd8\xb9\xb8\x00\xa2\x56\xba\xe2\x80\xb9\x2f\xf9\x14\xd0\x37\x3b\x07\xe0\xb2\x2a\xd6\xf7\x62\x7b\x30\x8e\x1f\x6e\x6e\x86\xdf\x0b\xd3\x61\x53\xa9\x65\x6b\x83\xec\xf7\x63\x38\x55\xa2\xed\x15\x3b\x45\x00\xd0\x67\xa2\xe0\xf3\x6e\xe9\xbf\x97\x5e\x30\x5f\x4c\x73\x4d\x23\xa3\x5c\x0c\x34\x79\x89\x8b\x14\xe7\x18\x82\xf6\x7c\x29\x92\xdd\x86\x41\x87\xf0\x67\xfc\xd6\xce\x35\x82\x27\xa4\x4b\xff\xa0\x1e\x98\x1a\x1b\x51\xb2\xc3\x90\x1a\x7c\x14\x17\x65\xf1\xd4\x9d\x60\x18\xbc\x09\xc9\xb5\x9f\x83\x6c\x29\x78\xee\x39\x47\x96\xba\xd8\x7c\x66\xa3\x00\xfb\xe4\xdc\xe2\x59\x4e\x0f\xed\x9b\x81\x97\xa7\xdf\x40\xbf\x9e\x8c\x00\xfd\x00\x71\xb2\x3f\xcb\x0a\x99\xac\xba\x56\xd9\xdd\x33\x8e\xf6\xcd\xe9\x10\x7b\xe8\x70\xb8\x7d\xdb\xe8\x78\xf3\xd2\xb1\x5f\x59\xde\xab\xe2\x1e\x41\xec\x6e\x4e\x87\xa0\x53\x0e\xe0\x5f\x53\xa5\xee\x74\xc8\xc2\x70\x0a\xc7\x8a\x29\xc9\x99\x50\x8d\x79\xde\xc1\x8f\xb2\x42\x70\xbb\xe5\x4c\x68\xa6\x1a\xd3\xda\x48\x7a\x6d\xe9\x5e\x7d\xf9\xa7\xff\xd9\xb6\xac\x5a\x61\xc5\x9a\x8e\x5a\xef\x55\xac\xe0\x56\xee\x65\xa7\xe1\xa2\x7e\xbb\x59\xb6\x20\x60\x83\x8f\x2a\xdf\xa4\xe3\xda\x26\x6c\x24\x8d\xf6\xe8\x66\x5a\x18\xcb\xa2\x08\x0e\x13\xc2\xe8\xbd\xa1\xd8\xea\xb5\x11\x8a\x55\x38\xa3\xbc\x64\x2a\x33\xce\xa5\xe7\xa1\x4f\x5e\xbf\x7e\xfd\x1a\x0e\xec\xeb\xbf\xfd\xed\x6f\x0c\x40\x88\x73\x91\xc9\xd9\x62\x43\x68\xf5\xd7\x37\x6f\x06\xec\x3f\x4f\x3e\x7e\xa0\xe0\x6c\x8d\x08\x22\xd8\xb3\x6d\x90\xbc\xac\x7b\xec\xff\x5e\x7f\xba\x74\x41\x6d\xba\xf5\x14\xb8\xc6\xcc\x4d\x6f\xc0\xce\x64\x0d\xb2\xb1\x43\x96\x74\xb1\xbf\xdc\x4c\xe1\x4e\xb2\x67\x87\x03\xa6\x4c\x54\x7f\x83\x34\x55\x0a\x7d\xc2\xa2\xb8\x50\x86\x08\xd0\x81\x0a\xe9\x70\x23\x31\x81\xc1\x97\x5f\x9e\x72\xd7\x97\x37\x19\xc0\x50\x7a\xac\x90\x77\x82\x8d\xf5\xf7\x88\x30\xe7\xa2\xe3\x31\xbb\xc0\x25\x4b\x63\x67\x7e\xe8\x90\x2e\xb4\x73\xbe\x4f\xee\xce\xf5\xd4\x51\x24\x29\xdd\x8e\x1e\x77\x9f\x62\x8a\x87\x63\xe8\xbb\x7f\xba\x07\xf3\xb9\xe7\xf4\xc7\x46\x8d\xe6\x46\x6c\x73\x4a\xe9\x55\xb2\x02\xc1\xde\x17\xdc\xa5\x1c\x5b\xf6\x04\x01\x77\x21\xb5\xd9\xb5\x77\x79\xf2\xb9\x42\x08\x18\xe4\xd9\x4c\x3d\x94\xa2\xd6\x53\x59\xb1\x19\x2f\xf9\x04\x82\x35\xa1\x36\x04\xd5\x4e\xaf\x05\xe0\xad\x5b\xaa\xdc\xcc\x08\x9c\x0b\x6b\xdd\x26\x03\x2d\x62\xd1\xd9\xca\xed\x34\x87\x9b\xda\xfe\xe8\x44\x13\x84\x32\xc5\xfe\x5e\xca\xba\xb4\xd6\x7a\x94\x2e\x1b\x49\x17\x0e\x57\x00\x31\xcf\x05\xcf\xfb\x98\xcb\x19\xf8\x57\x7a\x1b\x6d\x8d\x37\xe4\x70\xaf\x36\xce\x80\xe0\xb1\x12\x43\x25\x41\x44\x59\x7e\xd4\x14\x46\x56\x45\x98\x8d\x7f\x21\x54\x3c\xf4\x6e\x01\x1e\xb9\xd8\x39\x02\x94\xbd\x05\x12\xa9\xb8\xac\xd9\xa1\xef\x4b\x94\x06\xb8\x1a\x02\xca\x54\xbc\x0e\xf6\x82\x4c\xcd\x66\x5c\x1f\x39\xd4\x8e\xcc\x0e\x07\x09\x33\xb3\x6f\xf1\x22\x00\x7a\x59\x76\xb9\x14\x43\xa1\x1b\xb0\x50\xc9\x37\xc2\xea\xdd\x40\x23\x4b\xe0\xce\x82\x81\x88\xf4\xad\x9d\x25\xc6\xfc\x8e\x67\x77\xa2\xcc\xd9\x4f\xda\x4d\x26\x9f\x97\x7c\x46\x69\x0c\xe0\xf5\xa0\x98\x95\xd6\x81\xea\x05\x09\xc3\xde\x65\x64\x72\xad\x8a\x66\x22\xcb\xa7\xcf\xac\xd1\x62\x93\x77\xe9\x27\x8d\xd6\x82\x75\xe7\x87\xaa\x43\xd5\xf2\x3e\x13\xae\x30\x0b\x74\xfd\xe4\x01\x91\x89\xb2\x8b\xbd\x33\x09\xd2\x00\xc6\x14\x55\xab\xb2\x52\x25\x61\xdb\xbb\xfb\xbd\xb5\x11\xa3\x39\x42\x21\xef\xd6\x1c\xea\x4f\xd2\xe2\x9c\x9e\x6b\x14\xba\x7a\x77\x36\x14\xb5\x96\xda\x88\xd2\x6c\xc3\xca\xaf\x78\xae\x34\x7b\x57\xa8\xec\x8e\x9d\x09\x70\xdb\x74\xe5\xea\x57\xef\xce\x3c\x47\x5f\xcb\xca\x01\x35\x6d\x1b\x5e\xde\xcd\x67\xd1\x72\x3d\x90\xc1\xc7\x31\x4d\x3b\x8d\xb9\x6a\xd8\x03\x47\x6c\x47\x98\xdd\x80\xdd\xc8\xea\x2d\x3b\x2f\x75\x53\x47\xb9\x9e\x6d\x2f\x86\xd4\x4f\x70\x64\x80\x07\x51\xbf\x5d\x74\x67\xd8\x7f\x94\x66\x5b\xc7\xc6\x33\xc1\x61\xbe\xaa\x47\x5b\x64\x1b\x40\x18\x7b\x87\x5c\x8d\x1a\xa8\x07\x5a\x13\x86\xf8\x92\xd1\x92\x73\x55\x3b\x3f\x3c\x8d\xec\xb8\x1e\xe5\xc7\x57\xe7\x27\x67\x1f\xcf\x07\xb3\xfc\xab\xa9\x7a\xe8\x1b\xd5\x6f\xb4\xe8\x4b\xb3\x45\x2c\xb4\x98\xc3\xc3\x0d\x71\x5c\xd8\xca\x3b\x2e\xad\x24\x6c\x14\x20\x3b\xc2\xef\xf6\x46\xb8\x7a\x77\x66\xd9\xdb\x20\x96\x03\x8e\x85\xc9\x8e\x33\x51\x4d\x8f\xe9\x3b\xbf\xdf\x44\x67\xaa\x94\x46\x6d\xac\x7b\x76\xc2\x32\x55\x14\x28\x5b\xda\x23\x71\x2a\xaa\x29\x73\xef\xbe\xcc\xe8\x57\x88\xc4\x5d\x2b\xfa\x74\x88\xd4\xab\xd4\x46\xdf\x74\xa0\x4a\xdb\x98\x88\x32\xda\xc9\x7a\xb4\xfc\x48\x7d\x96\xbd\xdb\x85\x50\xb8\xd1\xa5\xb8\x44\xfa\x7b\xd1\x09\xaf\x07\xad\x84\xf2\x85\x57\xa0\x14\x6d\x67\x4a\xba\x76\x3d\x90\x1b\x65\x6d\xc4\x90\x6b\x0b\xb2\x7b\x04\xf1\xcb\x1b\x33\x15\xa5\x71\xb1\x44\x38\xaa\xf4\xb4\x5f\x8c\x5d\x5c\x49\x0e\x49\xc7\x35\xc0\xbd\xf9\xe3\x1e\x2b\x05\xb2\xd8\xd9\x8a\x6e\x2b\x80\x05\x32\xb7\x8d\x17\xc9\x9c\xe7\x33\x59\x7e\x66\x42\xef\x28\x0d\x79\x06\xb6\x70\xdf\xec\x40\x18\xda\x8b\x40\x7b\x11\x68\x2f\x02\xed\x45\xa0\xbd\x08\xb4\x17\x81\xfe\x34\x22\xd0\xd2\x2a\xcd\x7b\x39\x68\x2f\x07\xad\x92\x83\x84\xbd\x61\x61\x8b\x43\xa9\xb8\xf5\xd2\xd0\x62\xfb\x76\x10\x68\x52\x92\x14\x45\xa0\x3a\xbc\x17\x17\xc1\xdc\x27\xef\x7d\xc9\xc9\x7b\xfb\x6c\xb7\x3f\x4b\xb6\x5b\xc7\x04\x22\x2a\x49\xfb\x01\x4b\x16\xc3\xc1\x5d\x7e\xe0\xa1\xc4\xbd\xaf\xbf\x35\x87\xbf\xc9\xed\xed\x45\x74\x5f\x5a\x83\xbb\x12\xa1\xf9\xa1\x3e\x0a\xea\xc3\x72\x96\x40\x9a\x90\x06\x90\xe3\x3f\x61\x36\xd3\xd2\xf5\xec\x94\xdf\x94\xb0\x35\xfd\x94\x84\xa7\x15\xcc\xf7\xf7\xcb\x81\x8a\x17\xb3\x9d\xca\xb4\x8b\xe5\x5c\x02\xef\xb9\x1c\x34\x97\x34\x9b\x14\xa6\x54\x8d\x00\xe0\x36\x8f\x70\xb7\xd7\xad\x22\x04\x3f\x40\x26\x21\x81\x43\x29\x04\x38\x06\x48\x99\xd1\x1c\x51\xc9\x1e\xa0\xce\x10\x74\x25\xad\xdc\x31\x8c\xf1\x74\x63\x40\xb3\x2b\xe7\xa6\xfd\x82\x53\xd4\xfc\xef\x2f\x95\x3c\xba\x5c\x2a\x49\x9a\x3e\x37\x85\x74\xe9\x27\x02\x92\xf7\x13\x25\x20\xff\x62\x2b\xc1\x34\x02\x63\x5f\xc1\xee\x38\x84\x55\x8b\x1a\xc0\x1d\xe1\x72\xeb\x20\x14\x15\x5c\x9b\x9b\x9a\x97\x1a\xbe\xf9\xb9\x41\x93\x00\x55\x98\x6b\x83\x58\x49\x26\x06\xbe\x64\xc6\x8f\xca\xa5\xce\xaa\xd2\x03\xd8\x03\xb2\x1e\xc4\xef\xac\x08\xbc\x7d\x29\xdc\x5b\x3b\xc6\x30\xb2\xed\x12\x80\x36\x43\x6a\xdd\x04\xb0\x4f\x17\xeb\xe9\x17\xe6\x95\xa6\x25\x7b\xce\x28\x96\xf3\xca\xe5\x9c\x2d\xa0\x55\xe2\x00\x7a\x2e\xc2\xfd\x06\xc0\x99\xdf\x5b\x4d\xb7\xe7\xe0\x13\xb7\x29\x96\xb4\xd9\xd4\x78\x43\xf6\xc5\x15\x94\xff\x64\xd4\xe1\x8e\xca\x52\x0b\x30\xff\x20\x65\x6f\xbb\xd5\x94\x36\xa0\x98\xac\x7c\x07\x45\xe6\xd4\xe6\xb4\x7c\x99\xf6\x00\x27\x5f\xb6\x8e\xf4\x14\x80\x93\x55\x3b\xbc\x7d\xa0\x6f\xd4\xcb\x71\xd4\x7b\xb6\xe2\xd2\x7c\x6e\x24\xe2\xf2\x7b\xf9\x39\x36\xca\xbd\x8a\xf9\x67\x51\x31\xf7\x80\x2a\xf8\xfb\x67\x95\x89\x77\x0f\xad\xb2\x5a\x3f\x7d\xe2\x35\x07\x2a\xab\x5c\xa1\xad\x3e\xc3\x20\x38\x93\xa5\xd5\x91\x3a\x26\x66\xb9\xb4\x8a\x72\x21\x4f\xc3\x8a\x68\x14\xf8\xc9\x4a\xf1\x50\x84\x40\xbf\x08\x0e\x66\xe4\x8a\x5a\x3c\x48\x33\xb5\x92\x24\x2f\x01\x6d\x36\x29\xf7\xcf\xb2\x9a\xeb\x29\xa0\x7a\xdb\x4e\xa5\x59\x4c\xee\xf1\xa0\xb1\xa9\xbf\xe1\x35\x3b\x8c\x6b\x06\x2c\x7b\x81\x71\x0d\x18\xff\xf6\xbf\x98\x5e\x09\x03\x3a\xda\x75\xc8\x3b\xed\xc7\xa6\xf5\xa4\xad\xf6\x9a\x73\x58\x57\x67\x7c\x70\x1d\x0d\xa2\x52\xe6\xc0\x51\x29\x69\x54\x6a\xcb\xb1\x1b\xa9\xa7\x3e\xbf\x41\x3c\x52\x32\x35\x40\x7f\x5b\x79\x20\x71\xe9\xb6\x33\x9f\x5e\xec\xb2\xfc\xea\x61\xca\x4d\x5f\xea\x3e\xef\x77\xb8\x4c\x77\x90\x66\x40\x09\xc9\xed\x35\xe7\x39\x0a\xc6\xbc\x18\x2e\x3f\x04\xec\x29\x9e\xc2\x05\x87\x0f\xa5\x6b\x23\xa4\x1e\x1f\x89\x82\xfd\xd6\x88\x7a\x8e\xf8\xf9\x01\x1c\x91\x8e\x40\x40\xc3\xf6\x7b\x9f\x61\x50\xc0\xc5\x98\xc5\x9d\x91\x3d\x10\x89\x34\x31\x06\xa2\xf0\x07\x36\x45\xba\x88\x5d\x19\x8f\x61\x02\xb3\x08\x76\x47\x76\x27\xe6\x98\xc7\x46\x99\x2a\x30\x98\x08\x98\x5b\x96\x4c\xd5\x39\x52\xd3\x48\x04\xe6\x11\xf2\x52\x96\xf3\x96\x1e\x93\xe3\x50\xe0\x3f\x8c\x8e\x46\xa6\xca\xd6\x68\x9e\x48\x67\x76\xf5\xee\xa5\x78\x00\x82\x93\xe5\xa4\x6f\x59\x46\x9f\x92\xfa\x8f\xf1\x23\xc7\x5f\xc1\x7f\xfb\x6e\xe3\x57\xdc\xdc\xb1\x46\xd2\xa6\x99\xdf\x07\x3e\x93\x4e\x3b\xc9\x53\xb0\x23\xa9\xa1\xc3\x17\x0b\x69\x43\x6a\xca\x31\x93\xa5\x6e\xc6\x63\x99\x81\x2c\xe5\xd8\x03\x99\x8c\x0d\x64\x14\x11\xaf\x30\xfc\x4e\x00\x89\x64\x22\x17\x65\x26\x90\x22\x39\x73\xc3\xb8\x12\xe3\x17\x3d\xfe\x95\xca\xfb\x66\x01\x26\xf0\xd9\xd9\x33\xeb\x6c\x94\x4f\xbd\x54\x17\x2a\x06\x82\x98\xea\x2a\xe9\x45\x75\x02\xb7\x77\xb8\xb9\x9b\xe7\xaa\xdb\x8d\x70\x93\xdc\x02\xe1\xde\xf2\x1b\x7d\x88\x37\x28\x60\xa7\xbb\x5a\x02\xad\x4b\xdc\x61\x60\xaf\x3c\xbb\x3b\xcf\xf0\xea\x5c\xa5\xf0\x2a\x5d\x6a\xd2\x61\xc3\x34\xd1\x58\x8c\x25\x75\xd7\xad\xfc\x2b\x9d\x6c\xd3\xae\x0b\xa2\x6d\x30\x67\x76\x54\xd1\x92\x47\x9f\xb3\x30\x21\x54\xc0\x06\xf6\x2f\xf2\xad\xe8\x2e\x5c\x5b\x80\xe6\x45\x3c\x3d\x01\x04\x29\xbc\x57\xcb\x33\x2c\xc7\xde\xd6\x5b\xf8\x77\x4d\x7b\xce\xbf\xf0\xbd\x28\x5d\xc9\xe4\xf5\x53\xfd\xb4\xf0\x02\xab\xc5\xb8\x00\xb4\x18\x48\x14\x0a\xbf\xd3\x4c\x56\x38\x34\x9e\x3e\xc1\xad\xea\x54\xc3\x81\xdf\x6a\x1b\x91\x55\x78\xd6\xf1\xb9\xb9\xc2\x96\x42\x70\x7b\xb5\x71\xb1\xe3\x59\x39\x91\xf8\x0f\x2e\xbb\x76\xd4\x98\xfd\x32\x3e\xdf\xe6\x8a\xd6\x9c\xf7\x52\x14\xf9\xf5\xa2\xb4\xbc\xb8\x31\x4b\xda\xc7\xb7\x65\xd0\xd9\x42\x25\xb4\xc3\xac\x6a\x7a\x6c\x26\x66\xaa\x9e\x1f\xb9\xa4\x63\x59\xbb\x52\xa5\xb4\x54\x1b\xef\x4d\xdf\x75\x87\x22\x78\xbe\x56\x20\x44\x21\xbd\x75\x49\xda\x79\x9c\x66\xd8\xa3\x84\x69\x5e\x60\x4d\x99\xf2\x9e\xdd\xf3\x55\x12\xe3\x3a\x5b\x4f\x2e\xef\xa5\x5e\x54\x32\x9e\x6c\xea\x19\x78\x04\xb9\x1f\x1b\x5e\x1a\x69\xe6\x5d\x20\x39\x49\x3e\x4c\x16\xd3\x23\x46\x3e\x56\x4a\x03\x5b\xa2\xbd\xe8\x39\xc9\x1c\x74\xbd\xdb\x83\x37\xb7\x07\xab\x0e\xaa\x6e\xc7\x6d\x2f\xa7\x07\x5c\xd7\xb7\x91\x5d\x50\x11\x60\xd5\xae\xf3\xf6\x68\x40\xbb\x22\xf9\x1f\x1b\x95\x98\xe7\x56\x91\x3a\xb4\x63\x5a\x18\xcd\xf8\x64\x52\x8b\x89\xbd\xcf\x7e\x83\x1f\x6b\x61\x67\x83\x19\xe9\x4c\x94\x10\x14\x99\x43\xf1\x4f\x00\xbb\xac\x78\x17\xb0\x84\xbd\x6f\x61\x1f\x7f\xb5\x37\x8e\x6f\xc7\x31\xf7\x00\xce\x8b\x2c\xed\xe9\xa1\x4e\xce\xb0\x08\x4c\xed\x73\xd7\xe2\xd8\x65\xa4\x52\xbc\x0a\x9d\x23\x94\xe2\x95\xa0\x0a\xff\x9e\x95\x23\x9b\x87\x32\xdd\x26\xa8\x97\x8d\xe6\x93\x7f\xbd\x9a\x25\xe9\xbd\xb9\x63\x97\x48\xd4\xf5\x46\x8f\x7f\xab\x6d\x5a\xb9\x24\xbd\xb5\x41\xe9\xdf\xfb\xf7\xbf\xe8\x3b\xb8\x8b\x7f\xff\xc2\xb6\x59\xb7\xd1\x64\x05\x7e\xb2\xfe\x57\xa9\x42\x66\xf3\xa8\x22\xa0\xed\x4d\x1f\xef\xda\x74\x14\x9f\x9c\x8e\x96\xa2\xbd\xbc\xf2\xa7\x96\x57\xf6\xce\x7c\xfc\xfd\xb3\xdc\x56\x2f\xe1\xc4\x6f\x4b\x5c\x1d\x6f\xac\x95\xc2\xd7\x14\xf7\x19\x4e\x8e\x51\x4e\x04\x01\xcb\x04\xbc\xd8\xe1\x16\xb3\x5d\x6c\xe7\xe9\xdc\x85\xa9\x62\x25\x5f\x6b\x2d\x07\x4c\xd4\x85\x2d\x08\x13\x7b\xb6\xe3\x35\xf0\x65\x7e\xad\x2a\x1d\x2c\x18\x2f\xc3\xe1\xbb\xf8\x05\x75\xa6\x2a\xb1\xc4\x44\xd6\x69\x01\x03\x82\x42\xd2\xcb\xba\x75\x4a\xbe\x17\xa1\x95\xa7\x31\x8d\x63\x59\x18\xcb\xa0\x01\xd8\x0f\x5e\x59\xf4\xe7\x62\xb5\x64\xf2\x2c\xd6\x3c\xbb\x43\x4f\x2e\x27\xf1\x76\xd4\x18\x26\x1e\x2b\x28\xf0\x9c\xb3\x46\xdb\x1b\x22\x19\xe6\x27\xc8\x2e\xf7\xc5\xba\x47\xb2\x44\x69\x06\x50\xb1\x7c\xed\x7b\x27\x69\xbc\x07\x9c\xc5\xd8\x1c\x04\xa3\xe8\x21\x98\x22\x0d\xf1\xe4\xf2\x8c\xa5\x13\x3c\x94\xe3\xb4\x24\x89\xfd\xe3\xa8\x87\xf3\x18\x09\xc2\x71\xcf\x57\xc4\x35\x63\xb7\x4f\xcc\x41\x76\x6b\xf7\xb4\xf5\x02\xb7\x3c\x20\xe6\xa5\x35\xae\x71\x31\x97\xe0\xd9\x77\x73\x44\x3d\x37\x2d\x79\x93\x7e\xf0\x34\x8e\xb6\xd9\x77\xba\xd0\x3a\xe1\x6a\x5e\x83\x8a\x8f\x34\x40\x81\x3b\x4f\x49\xa3\xbb\x14\xca\xf8\x63\xb0\xb4\x1f\x16\x59\xda\xd2\x05\xf8\xe2\x78\x5a\xa3\xc5\x1f\x60\x79\x01\x82\x4f\xa6\x9e\x78\x4f\x47\x46\x19\x5e\xa0\x4a\x1e\xbc\x8c\xc4\x7b\x08\xca\xcf\x1b\x63\x57\xc4\xc1\x2f\xac\xd0\xae\xce\xd2\x55\x54\xef\xbc\xc3\x61\x8a\x9b\xb7\xa2\x3f\x32\x35\xab\x1a\x23\x96\x97\x52\xef\x92\xcf\x02\x04\xf8\xe5\x6f\xf5\x07\x3c\x28\xe9\xe4\x67\xfc\x11\x42\x0c\x39\x22\xc1\xa8\xf1\xc2\x72\x00\xbf\x55\x0f\x5b\xc0\x93\x24\x99\xd4\xc7\x98\x1a\xd9\xa7\xee\xfb\xbe\xfb\xbe\xf7\x3d\x6d\x71\xc8\x9c\x1e\xf4\xe5\xaf\xfe\x95\xd3\xd8\x5a\xeb\x4f\x21\x9e\xeb\xd6\xdf\x29\x03\x70\x3b\xfa\x7e\xac\x52\x39\x93\xc6\x90\xe3\x2d\x2a\x6f\x01\x61\x6c\xb1\x2f\x8a\x76\x5e\x8e\xf1\x3a\x96\xda\x07\x2d\x16\xf3\xf8\xaa\x85\xec\xa6\x07\xa9\x05\x26\x3b\x41\x9d\x18\x38\x06\xb0\x83\x7d\x57\x30\x1d\xa4\x91\x2f\x86\x1a\x9e\xcb\x50\x08\xad\xe8\x53\xd5\x0e\xa8\x59\xd0\x18\x93\x86\x10\x02\x16\x45\x66\x60\x3c\x1f\xaf\xaa\x42\x86\xb8\x41\x3f\x99\x0e\x5c\xc4\xaa\x90\x9b\x52\x31\x6c\x1b\xbb\x7d\x0e\x61\x09\x5e\xa2\x30\x48\x44\xa6\x86\xef\xeb\x85\xef\x6f\x93\x35\xa6\x8a\x8d\x1e\x4a\x55\x10\x10\xa9\x87\x7c\xb2\xbf\xbc\xcc\x78\xba\xe6\x6c\x25\xe3\x01\x68\xa7\x97\x19\x4f\x57\xf4\xd8\x64\x3c\x00\xde\xb1\xc3\xf1\x3c\x9b\xf8\x33\x5e\x88\x8b\x4f\x4f\x86\x56\x5d\xfb\x5e\x8a\x90\x5c\xf9\x36\x8c\xde\x6a\x97\xe2\xda\x2d\x26\x58\xc0\xfd\x7a\xa1\xaa\x6d\x31\xc6\x57\x84\xc0\x42\x4f\x9f\x4e\x48\x13\x6e\xc4\x03\xdf\x04\x14\x74\xe3\x46\xc9\xf3\xdc\xaa\x93\x4e\x20\x73\x6b\x7a\x32\xbc\x60\xdf\x63\x4f\xdb\xd4\x73\xac\x95\x41\xe5\xed\x4c\xcd\xb8\xec\x92\x2c\x1a\xc3\xed\xb8\x41\x0c\x7d\x37\x0c\xfb\x89\x73\x49\x81\xfb\x43\x62\x3a\xa0\x96\xfd\x0b\x55\xb2\xfb\xbd\xc0\x21\x23\x48\x68\x62\x30\x11\x10\x92\xdb\x33\x60\x49\xa0\x3e\x42\x6d\x02\x2d\x20\xc5\xf7\x1e\xaf\xf6\x7a\x06\xd7\x35\x48\x1e\x86\x32\x22\xac\x7e\xee\x90\x93\x7a\xec\x83\x9a\xc8\xd2\x1d\x1d\x30\x5c\xd8\xe5\xe4\xb2\x58\x65\x4d\xd0\xc5\x79\xc9\x47\xc5\xa2\x72\xd4\x3e\xd7\x05\x9f\xa0\xb5\xce\xb6\x3e\xce\xa5\x86\x90\xd5\xeb\xeb\x0f\x8c\xac\xb0\x59\x64\x2a\x21\xd2\xf7\x31\x38\xb8\xf1\xdb\xec\x15\x52\x67\x87\xfa\x1a\x17\x98\xb0\x2d\xb4\xaf\x20\x86\x49\xf3\xf0\x3e\xc9\x64\xae\xb8\x87\x4f\xc8\xb9\x99\xca\xec\x6e\x18\x21\x9c\xab\xda\xfe\x56\x46\x3f\x25\x5c\xa5\xfd\x6c\x9b\xbc\x6b\x18\xd0\xb0\x1b\x9e\x9a\xa3\x8a\x6b\x9a\x86\x7d\x6d\x69\x55\xbc\xc0\x31\x58\x0e\x47\x7d\x9b\xa1\x01\x9b\x7d\x22\xaf\x71\x0b\x4c\xfc\x1c\x32\x3a\x3c\x6f\x91\xa5\x9b\xc1\x16\xc3\xc1\xcd\xea\x10\x01\x17\x0f\xc9\xef\x71\x1b\x71\x9d\x14\x64\xb7\xa0\xee\xfa\x21\x01\x7c\x71\x49\xa5\x4e\x4b\xc1\xec\x38\xb1\xdc\xdd\x32\x8b\xcb\xbf\x94\x51\xd1\x6f\x5b\x47\x82\xd1\xb4\x9f\x26\x4e\xec\x85\x08\x57\x18\x76\x2f\x45\xec\xa5\x88\xf6\xb8\x7f\x57\x7c\xc5\xbd\x28\xb1\x17\x25\xf6\xa2\x44\xe7\xe1\xec\x45\x89\x5d\x8a\x12\xcb\x9d\xc3\x8b\x2e\x48\xf0\x54\x86\x92\xce\xad\x44\xc3\x93\xcb\xb3\x50\xb8\x9f\x52\x58\x43\x9b\x08\xcc\xcc\xf6\x92\x7b\x93\x64\xdc\xdf\x93\xfc\x02\xe0\xae\x3c\x47\xe7\x6f\x87\x5c\xbd\x13\x1f\x7e\xb5\x30\x8d\xc8\x75\x31\x9a\xd3\xe3\x96\x3f\xa6\xa3\x27\xf4\x69\xbe\xf4\xdc\x79\x4f\xdc\xea\x47\x5e\x94\xcf\xef\x45\xdd\x3c\xa4\x8d\xb4\xb1\x61\x57\x29\xb6\xcb\x97\x04\xb7\x07\x8c\x4c\x72\xda\x17\x26\xe4\xb4\x01\xf6\xd4\x62\x7c\x20\x77\x97\x96\x7b\xa7\x16\x10\x4d\x18\xa8\x09\x8f\x78\x48\x0b\xef\x40\x3d\xae\xc7\xee\x19\x9e\x34\xb0\x57\x1a\xbf\x6f\x77\x76\x2a\xa1\xfa\x1b\x77\x9e\x53\x17\x47\xf0\x33\x2f\x64\xee\x07\x8d\xb6\xec\x8b\xb2\xc7\x2e\x95\xb1\xff\x39\x7f\x94\xda\xe8\x1e\x3b\x53\x42\x5f\x2a\x03\x7f\x6e\xc3\x93\xed\x70\x9e\xc8\x03\xc3\x92\x79\xa8\x4d\xbf\x1f\xc1\x58\xba\x0d\x47\x86\xa9\x6f\x3a\x83\x25\x03\xaa\x85\x53\x18\x85\xf8\x69\x92\x5a\x44\xd8\x68\xa9\xd9\x45\x69\xaf\x5c\x5a\x33\x08\x55\xc5\x9c\x7f\xec\xc2\x05\x57\x94\xaa\xec\x43\xe2\xfe\xd2\x3e\x70\xa9\x6d\x3f\xf1\x62\xaf\xe9\x8e\xba\x82\x94\x73\x7c\x42\x19\x86\x3c\x13\x39\xcb\x1b\x2c\x29\xc7\x28\x75\x55\x66\x0c\x12\x57\x19\x24\xb4\xfe\x4e\xd1\x12\xcb\x6f\x91\x40\x1d\xbd\x25\x54\xff\xec\x4b\x43\x64\x99\x9a\x55\xc3\x5a\x59\xb5\x6d\x9d\xea\x99\x34\xf4\x81\x16\x50\xf7\xe2\xd8\xdb\xe3\x5f\x69\x2b\xef\xda\x86\x56\x5a\x81\x96\x24\xd9\xeb\x01\xfb\xe4\x4a\xb0\xfb\x47\xc8\x62\x08\x51\x33\xa9\xf1\xb9\xda\xff\x63\x65\x73\xab\x9a\x2d\x0e\x79\xd9\xb0\xdb\xcd\x1d\x7c\xa0\xa0\xe2\xb2\xd1\x64\x40\x7e\x40\xf5\xd5\x21\x57\x94\x2a\x8f\x25\xc9\x46\x23\x8a\x41\x98\x81\xa3\xb6\xaa\x16\x91\x48\x14\xbf\x6d\x14\x7b\x50\xf5\x5d\xac\x20\xdb\x21\x8a\x32\xb7\x04\x58\x71\x33\xed\x11\x1f\xba\x17\x4e\x65\xb8\x6b\x46\xa2\x10\xe6\x55\x22\x67\xb5\xd7\xd5\xce\x0c\x15\x05\xe8\x19\x8a\x3e\xe2\x2a\x82\x03\x93\x5c\x3c\xb7\x07\x1f\xdc\x0a\x6c\xa5\x2e\x77\xf0\x26\xe1\xa7\x22\xc9\x5c\x66\x53\x76\x27\xad\x7a\x33\x5e\x18\xb5\x43\x8e\x20\x07\x60\x60\xb1\xde\x59\xf8\xf6\xb6\xbc\x2d\xfd\xa0\x59\x7f\xeb\x7d\xba\x6a\x4a\x23\x67\xc2\x49\xf6\xfd\xd4\x73\xc4\x6a\x7c\xec\xb5\x17\x4f\x94\xad\x6e\x7e\x2a\x61\x13\xec\x77\xfb\xac\x54\x4b\xda\xb9\xb9\xbc\x00\xc2\xe1\xa6\xe3\xbd\x3c\x86\xb5\x29\x49\x8e\x5a\x11\xb7\x9a\x4b\xbb\x81\x33\x59\xd2\xc5\xb9\x24\xcb\x7f\x2c\x45\x91\xeb\xbe\x51\xfd\xa8\xb1\x78\xd7\x36\x06\x2c\x3f\x90\x81\xe6\xdc\x6f\x31\x73\x5c\x58\x89\x8d\x91\xae\xa8\x5e\xaf\x67\x4e\x56\xc7\x9e\xaa\x22\xd7\x4e\xe1\x06\xb0\x5e\xd0\x16\x1c\xf0\xaa\x9d\x25\x1e\x5f\x0c\xd8\x19\xcd\x2d\xbd\xba\xda\x38\x78\x89\x90\x0a\x71\x66\x5f\x86\x35\xf0\x47\xbc\x80\x6a\x96\x53\x5e\xb2\x8f\xfc\x11\x3f\x78\x2d\xff\x29\xb0\x97\x7d\x7e\xc7\x17\x9d\xdf\xb1\x2c\x70\xbe\x5b\xe8\x4b\xc8\xa1\xb7\xfb\x9c\x7c\x79\x7b\x74\x26\xa0\x2e\x2f\x30\x47\x46\x22\x0c\xad\x3f\xe7\x96\x81\x0a\x92\x65\x00\x2f\x0c\x15\x1e\x5e\x54\x53\x5e\x36\x33\x51\xcb\x8c\x65\x53\x5e\xf3\xcc\x88\x5a\xf7\xd8\xab\xfe\xab\x1e\x7b\xf5\xeb\x2b\x2b\x1f\xbd\x1a\xbc\x42\x22\xd7\xa2\x96\xbc\x80\x1d\xb2\xb3\x08\x3a\x5d\x38\x1e\x20\xc7\x8f\xb8\x16\xdf\x7d\xcb\x44\x99\xa9\x1c\x0c\x86\x35\xa0\x9c\x2d\x64\x6b\xf0\x7a\x24\x4d\xcd\xeb\x39\x3b\xa4\x80\xdb\x39\x08\x6d\xf8\xc2\x11\xf6\x88\x99\x1e\x53\x51\x03\x08\x1a\x46\xf0\x00\xc3\x76\x14\x61\x94\x2a\xf4\x40\x0a\x33\x1e\xa8\x7a\x72\x3c\x35\xb3\xe2\xb8\x1e\x67\xdf\x7e\xf7\xed\xbf\x7d\xa5\xd1\xba\xd1\x5f\x01\x47\xb1\x2e\xc0\x49\xce\x66\x8d\xe1\xa3\x8d\xf2\xc0\x85\x6b\x07\x40\x51\xf6\xb2\xb4\x74\x0f\x68\xb9\x02\x2a\x5f\x51\x28\x2e\x4c\x46\x1b\x55\x47\x66\x05\x5c\xb8\xac\x9d\x45\xc2\x0e\xe1\xee\xa5\x60\x5d\x97\x21\xe1\x2a\x99\xcf\x54\x0e\x51\x43\x47\x21\x66\x37\xfe\x28\x96\xd8\xb2\x7c\xa6\xd5\x1e\x30\xa3\xcb\x39\x21\x89\x9f\xc5\x58\x56\x50\x67\x25\xe0\xae\x8d\x84\xe7\x55\x68\xb8\x03\x0d\xdd\x4f\xf4\xbc\x9a\x8a\x99\xa8\x79\xf1\x33\xd5\x25\x1b\x0b\x6e\x8f\x18\x9b\x2c\x02\xd4\x74\x32\xd7\xed\x13\x80\xfe\x2c\x09\x40\x7f\xf8\x84\x65\x58\xae\xb3\xad\x99\xfb\x96\xec\x3b\x7c\x16\x43\x3e\x5d\xc1\xf2\xb9\x25\x6b\xcb\x11\x47\xb2\xe4\x50\xcf\x3c\xe2\xb4\xa5\x3b\x0a\x96\x17\x0f\xd8\x05\x18\x51\x7c\x61\x25\xa8\x73\x0e\x1e\x13\xac\xde\x8e\xcb\x20\x01\x1f\x6d\x26\xcc\x54\xe5\x03\x76\x52\x2c\xc2\xe6\xf1\x5a\xa0\xe2\x6a\xb9\x14\xdd\xe0\x79\x90\x5d\x54\x89\x9d\xf6\x00\x64\xcd\xfe\x13\xb4\xde\x72\xce\xc4\x23\x42\x34\x06\xbd\x1d\x4b\x38\x89\x7b\xe1\x41\x51\x1e\xa6\x02\xf1\xd7\x61\xd8\xee\xb4\x9d\x0c\x2f\xba\xc6\x30\x3f\x4d\x8f\x80\x10\x6b\x70\x22\x65\xb2\x90\x80\xa9\x5f\xd5\x6a\x52\xf3\xd9\x8c\x1b\x99\xb1\x29\x2f\xf3\xc2\x0e\x05\xd5\x0a\x7f\x5f\xee\x28\x04\x6c\xb9\x28\xbd\xc3\x74\x30\x92\x62\x93\x67\xcf\xcd\x01\xc3\x3e\xcf\xcb\xfb\xcd\xae\xe3\xb4\x25\x59\x8b\x20\xe6\x0e\xd7\xd2\x28\x56\x51\xbd\x0a\xe2\xaa\xf7\xb2\x56\x25\xd8\xfb\xee\x79\x2d\xed\x5d\xa2\xc1\x72\x3e\xb0\x1a\xda\x0d\x29\x53\x60\x52\x23\xd1\xc2\xf0\x7a\x22\x0c\x75\xf8\x4a\xc7\x52\x34\xe8\x7d\x9e\xa9\xa3\x96\x2b\xe6\x7d\xbc\x17\x2a\x2e\x6b\xa8\xca\xbf\xf4\x9b\x1d\x64\xeb\x72\xb3\xf1\xec\x32\x32\x9c\x91\x93\xce\xec\x18\xfe\x11\x62\xfc\x8f\xbf\x82\xff\x3c\x9d\xbf\x3b\x20\xa0\x4d\xc8\xff\xc8\x6a\x12\x07\x18\xed\xa0\xd3\x54\x48\x4d\xee\x7a\xb5\x3f\xdb\xde\x0c\x5f\xff\xbb\x98\x77\xf0\x3d\x2c\xb4\x8d\xe8\xd0\x4a\xbc\xa0\xaf\x61\xa3\x0e\xdb\x8e\x18\x75\x9b\x4c\xa6\xd4\x6f\x24\xfb\x7a\x78\x20\xe0\x6a\x03\x16\xd9\x66\xee\xc1\x1c\x41\xed\xee\xc4\x36\xde\xfd\x3d\x31\xda\xb5\x03\x8c\x64\x1d\xd4\x98\x1d\xd0\xe5\x72\x3b\x89\x25\x82\x1d\x58\x41\x6b\x61\x36\xa0\x3e\x84\x46\x29\x0a\x40\x67\x72\xdd\x5b\x00\xfe\x70\x08\x0f\xc4\x08\xb6\x85\x76\x48\x73\x39\xf4\x12\x01\xe0\xd9\xfe\x47\xec\x73\xa5\xe8\xba\x07\x74\xf8\x17\xd2\xe7\xf6\x80\x0e\xf8\xfb\xcb\x4a\xf0\xbb\x47\x72\xc0\x7e\x87\xb5\xfa\x6f\x34\x80\xad\x73\xd0\xe7\xbc\x42\x1f\x36\x72\x26\xd0\xfa\xc0\x43\xf2\xdf\x00\xb2\x4d\x01\x2d\x5b\x8b\xe8\xe8\xcb\xa2\x40\x0f\xf0\xb3\xb4\xbb\xb6\x72\x3a\x84\x78\x52\x9a\x3e\x89\xf2\xcb\x4c\xe7\x54\x13\x12\xdc\x25\x20\x88\x0c\xd8\xa5\x32\xde\x65\x8d\x06\x2c\x99\x63\x01\xe2\xc2\x79\xe0\x61\x5e\x49\x5c\x8e\x2f\xcc\x80\x60\x15\xe8\xaf\x99\xa9\xbc\x4b\xf6\x76\x27\xc6\x9f\x94\x97\xef\x61\x7e\x74\xaa\x9e\x2c\x99\x5d\x2a\xbf\x65\x22\x77\xa2\x4f\x58\x48\xb7\x72\x5e\x37\x0f\x4b\x48\x0e\xac\x87\xa9\xd2\xe4\xd5\xa7\xec\x62\x2b\x31\xd9\xbb\x96\x76\xce\xfd\x4c\xc9\x84\x17\xe3\x76\xce\xbf\x3d\xc6\x22\xc7\x2d\x58\xf3\xe5\x80\x6b\x50\x71\x33\xd5\x3d\xaa\xc0\xb0\xf0\x36\x31\x54\x22\x02\xf8\x20\x8a\xe6\x52\x47\x7d\xa0\x93\xcf\x47\x26\xa2\x52\x97\xd8\x49\x7b\xf1\x7c\xb5\x30\x4d\x85\xfd\x8b\xba\x56\xb5\xfd\xb0\xd0\xae\xd6\xc5\x8c\xd7\x77\x22\xf7\x48\xa8\x03\x36\xb4\x23\xf4\x62\xa3\xf7\x8e\x3a\x09\xc4\x7e\x93\xac\xe7\xf0\x91\x57\x83\xc1\x2b\xac\x5b\x6f\xf5\x09\xc3\x6b\x83\x01\x5e\xf6\xf7\x1d\x87\xfb\xfc\x5d\xcc\x6f\x94\x1d\xde\xb3\x6e\xdc\xbd\x86\xf0\x42\x1a\xc2\x56\x62\x7f\x08\xf1\xdd\x24\xfb\xfb\x96\x69\xd0\x3d\xcd\xc7\x3f\x05\x63\xda\x14\xcc\x19\xaa\x99\x4c\xe3\xa8\x5e\xcb\xe3\x6a\x61\x6a\x29\xee\x45\x60\xe1\x60\x91\x7b\x02\x5c\x6b\x57\xfa\x91\x9a\x35\xa5\xfc\xad\x41\x06\x0a\xdc\xdc\x7f\x05\x47\xe2\xe6\xe3\xf9\xae\x4f\xdc\xde\x4e\xef\xc5\x09\x6c\x1e\x1a\x0e\x21\xad\x75\xcb\x33\x3f\x4e\x64\x2f\x91\xc6\x0e\x0c\xd2\x51\x09\xce\xe9\xb3\xa5\x7e\xc2\x08\x3a\x26\x68\xf8\xeb\xf9\x3a\xb9\x9e\x77\x7e\x29\xef\xe2\x2a\xbe\x8e\x6f\x5a\xed\xd2\x34\x98\x7a\x28\x45\x0d\x11\x71\x98\x7b\x0e\xc6\x38\xcb\x7a\x7d\xee\xb2\x80\xc4\x5c\x59\x4e\x3a\x5c\xbf\x74\x5b\x77\x88\xed\xfe\x44\x0c\xe5\x2d\xdc\xec\x6c\x64\x79\x43\x43\x26\x61\x2d\x0c\xab\x44\x3d\x93\x18\x21\xca\x54\xe9\x63\x7e\x71\xfe\x23\x5f\xee\x25\x0a\xb4\x29\x99\xca\x8c\x53\x60\x7d\x1d\xa2\xd7\xaf\x5f\xbf\x86\xf9\xbc\xfe\xdb\xdf\xfe\xc6\x20\x64\x3c\x17\x99\x9c\x2d\x36\x84\x56\x7f\x7d\xf3\x66\xc0\xfe\xf3\xe4\xe3\x07\xc6\x33\xe0\xaa\x88\x21\x84\x3d\xdb\x06\xc9\xcb\xba\xc7\xfe\xef\xf5\xa7\x4b\x17\x2c\xa9\x5b\x4f\x21\x44\xdd\x4f\xaf\x55\x26\xea\xbb\x6f\xbf\x1d\xb0\x33\x59\x83\x5d\x4c\x92\xad\x95\x76\x12\x6e\x37\x5e\x0b\xb8\xfb\xf8\x78\x8c\x97\xbb\x2b\x85\x43\x21\x56\xe4\x14\x9c\xc9\xc9\x14\x16\x00\xa0\x92\xca\x71\x21\x33\xba\x10\x31\xdd\xc0\xc5\xda\x60\x62\x35\xf4\x15\x68\xc3\x0e\xae\x87\x48\x4e\x63\xfd\xbd\x15\x87\x7b\x0e\x2d\xdd\xf2\x06\x2b\x78\x91\xa3\x12\x3b\x0b\x7b\x95\x84\x6f\x31\xb6\x13\xa8\xfe\xbd\xf0\xb6\x17\xde\xd8\x5a\x6a\xf8\xfc\xc2\xdb\x2e\x05\x1f\xbd\xad\xe4\xb3\x90\x40\xd0\x21\x7c\x38\x16\x29\x83\xe8\x61\xb0\x4c\xca\x2b\x9d\x8a\x06\xcd\x0a\xf3\xc9\x3a\x71\x93\xd2\x44\x8e\xe9\x46\xf9\x6a\x99\xbd\xeb\x25\xaf\xe9\xa6\x96\x66\x7e\x6a\x4f\xde\xe3\x06\x3b\x6e\xdc\x32\x44\x8d\xc1\xaf\x2c\xb1\xd9\xa5\xe5\xae\x22\xd4\x92\x08\x46\x66\xc0\xae\xd5\x8c\xa2\x38\xd0\x23\x1b\x9d\x29\xb8\x2c\xda\x5f\xb4\x67\x61\xa8\xf2\xd6\xcf\x03\xc6\x7e\x99\x0a\x7a\xc5\x76\xa3\x45\x1a\xe0\x2c\xcb\x85\x9e\x0c\xbf\x13\x51\x2d\xad\x2e\x46\xe8\xa2\x50\x0f\xc3\x5a\xde\xcb\x42\x4c\xc4\xb9\xce\x78\xd1\xa5\x3a\xcd\xc9\x8a\xd7\x5c\xa1\x96\x90\x91\x05\x16\x83\xcc\x32\x08\x7b\x51\x4c\xec\x39\x9f\x29\x58\x14\x7a\x99\xa2\xe8\xec\x11\xa8\x38\x00\x69\xd1\x0b\x74\x7f\x59\x6a\x67\x39\xdc\x83\xe8\x09\xc7\xfe\xe5\x98\x42\x3d\x7f\x2d\xc5\xc3\xaf\xb6\x37\xcd\xc6\x05\x9f\xf8\xdd\x81\xd8\xfd\xb2\x15\xe5\xe9\xbb\x5e\x39\x01\xcb\xa2\xeb\x46\x30\x5e\x3c\xf0\xb9\x46\xa7\x77\xda\x87\xd4\x6f\xd9\x9b\x23\x56\x37\x50\x9f\xd1\xf7\x91\xb3\xaf\x8f\x40\xcc\x3f\x3d\x19\xfe\x7a\xfd\x9f\xd7\xbf\x9e\x9c\x7d\xbc\xb8\xdc\xe2\x04\x67\xbc\xe2\x23\x59\xc8\x25\x41\x0a\xdd\x99\xdb\x69\xdc\xc9\x3a\xfb\x1f\x08\xa0\x51\x63\xa0\xe6\x3c\x3f\xce\x6b\x55\x91\xcb\xbf\x29\x4b\x2b\x4e\xfa\x15\x68\x49\x2a\xb1\x15\x86\x12\x26\x92\x0e\x27\x35\x8f\xf3\x84\x16\x42\x6e\x57\xa4\x29\x7a\x02\xd9\x64\x8d\xbe\x6a\xca\x78\x77\xca\x40\x5a\x39\x5a\x85\xd8\x10\x77\x1d\xcf\x4c\xf4\x34\xcc\x08\x0e\x98\x6d\x52\x1a\xc9\x8b\x62\xce\xac\xc0\x76\xcf\x0b\x70\x4e\x2b\x56\x2b\xe5\x89\x69\xaa\xb4\x49\x17\x00\x12\x1d\xb7\x09\x9d\xb2\xd4\x08\x89\xad\x1b\x66\xe8\xdb\xb1\x5c\x94\xca\xa5\xc8\x18\x2a\xb5\x6e\x9f\x62\xda\x35\x71\xea\x38\xef\xd7\xef\xd8\x4d\xb4\x4b\x52\xbb\xf1\x0f\x7d\xcf\x28\x05\x34\xda\xa3\xbb\xad\x08\x8c\x46\xa1\xb5\x16\x3c\x87\xc8\x14\x10\x40\xe8\x36\xd7\x77\x4e\x22\xa1\xa3\xeb\xc5\x5e\xdb\xa3\xff\x14\xc0\x0d\xb9\xa8\xb3\x31\xe5\x98\x8e\x84\x8b\x56\x7b\x46\x6a\xf2\x95\x52\x26\xa4\xa4\x6f\x58\xd4\x5f\xfc\x4d\x2c\xe3\x1a\x41\x53\x90\xe7\x6c\x8f\x18\x7a\x03\x5b\x1f\x72\xd8\x93\xd4\xd0\xad\x37\xbe\x6e\xca\x13\x14\xa7\x3b\x38\xac\xbf\xbf\x38\x03\x1a\x6c\x4a\x72\x87\x98\x7a\x8e\x0e\x91\x50\xef\xbf\xcd\xde\x7e\xb2\xfb\xd8\x0e\x69\x97\x20\x1a\x0b\xab\x13\xf1\x39\x62\xb7\xba\x0c\x81\x72\xf9\x05\x74\x31\x76\x8f\x9f\x70\x71\x45\x97\x54\x0a\x9f\xba\xec\xb6\xd2\x4b\xaf\x2b\xb6\xa0\x2f\x6c\x57\x93\xcc\x2e\xf3\xa5\x2a\x2d\x5d\x74\x4e\x25\xf6\x09\x54\x61\x59\x41\x2a\x23\x7e\xcf\x21\xa4\x0b\xa8\xa2\xd1\xf6\xb6\xbf\x18\x47\xb1\x9b\x7f\xc7\x54\x0d\xbc\x84\x20\x78\xc0\xc5\xcf\xc8\x19\x9f\x08\xc6\x8d\xdf\x15\x48\xac\xd6\x4d\x4d\xf6\x6f\x69\x58\xae\x04\x0a\xe1\xf4\xa9\x9f\x2e\xce\xd8\x6b\x76\x68\xbf\x85\x35\xaa\xc6\x5c\x82\x59\x1c\xe5\xe2\xd6\xad\x34\x76\x5d\xc0\x90\x60\xa3\xad\x68\x09\x34\xda\x63\xa5\x62\xba\xc9\xa6\x6e\x4c\x3e\x4f\xdc\xaa\x07\xa2\xb6\x4b\x0d\x48\x85\x7f\x04\xba\xe8\x7e\xc2\x7e\xda\x8c\x35\x66\x0f\xd8\x4f\x5b\x1c\xb0\x98\xff\x43\xfe\x7e\x32\x23\xdc\x6c\x1f\xfb\x2b\xc7\x69\x71\xe3\x3f\xc4\x32\x3f\xff\xf8\x69\xb1\x02\x22\x90\x3d\xcd\xa7\x9d\x22\x0d\x6e\x12\x66\x9c\x5d\x2a\x73\xd3\x5c\x8b\x30\xe8\x0e\x4b\xaa\x87\x2f\xde\x7e\x70\x58\xac\xb0\x6c\x99\x84\xbd\x20\x78\x99\xab\xd9\xc2\xc7\x3c\x9c\x6e\xf4\x81\x2f\x76\xbb\x57\xe9\x8f\xcb\x33\x00\x9f\xb8\x69\x69\x37\x9b\x36\xcd\xe5\x85\x79\x63\x14\x0a\x32\xce\xa2\x95\x6e\x57\xbb\x31\xea\x58\x2e\x74\xd6\xe0\xea\x91\x22\xcb\x6e\x9b\xd7\xaf\xbf\xfe\x2e\xda\x51\x00\x7f\x6c\x6f\xb3\xeb\x4a\xdd\x8b\xba\x96\xb9\xf0\xaf\xd3\x83\x15\x8b\xf5\x20\xcb\x5c\x3d\xe8\xe7\x52\xf8\x2f\xd8\x4d\x6b\xc7\xba\x12\x3c\xbd\xed\x0b\xee\xfb\x14\xcb\x44\x41\x2d\x8a\x44\x1c\x5c\x46\xf5\x6e\x11\x7c\xe4\xc5\x22\xb5\xf9\x4b\x03\x93\xe1\x7e\x3f\x8a\x7d\xbe\x7d\xa0\xbe\x97\x1b\x7c\x3c\xd0\x02\xe3\x5c\x10\x1d\x9b\x8f\xb4\xa9\xb9\x07\x6b\xd7\x6a\x6c\x1e\x50\x33\xc7\xa6\x87\x70\xfc\x1f\xf9\xac\x2a\x44\x8f\xcd\xe6\xfa\xb7\xe2\xc8\x25\xec\x50\xa4\x32\xa4\xc7\x31\xb0\xac\xc7\xad\xd9\x37\xdf\xbc\xfe\xee\x28\xc8\x1e\x55\xad\x1e\xe7\x68\x0e\x04\xfb\x76\xb0\xba\xa6\x69\xf6\xb9\x30\xa2\x9e\x81\xd7\x04\x05\x78\xa8\x89\x8b\xcc\xaa\xd4\x0f\xa2\x0e\x11\x32\x14\x68\x5b\x83\x0f\xca\x7f\x63\x1f\xa7\xf6\x45\xc7\xa9\xed\x83\xb1\xfe\x2c\xc1\x58\x7f\xf8\xe4\x9a\xe7\x54\x03\x24\x5e\xfa\xf4\x3a\x80\x23\x31\xe5\xf7\x52\x61\x99\x79\xc7\x67\xff\xb8\xf5\x00\xdd\x3a\x6c\xae\x04\xf8\x71\x79\x31\xef\x50\xed\x1f\xef\x02\x5a\x8f\x21\x65\x6a\x04\x30\x1e\x32\x56\x5c\x39\x3b\xc6\x8b\x53\xcf\x17\x5c\x26\xd0\xdd\xf5\x3b\x0e\xd2\x83\x4e\x4f\xb2\xac\x65\xc0\x5b\x21\x47\x50\x43\x36\xb2\x1c\x89\x19\x35\x01\xeb\xd3\x5b\xf6\x17\x92\x2e\x7a\xac\x29\x73\x51\x6b\xa3\x14\xec\xa2\x55\x2a\xc9\xb3\x57\x89\x7a\xca\x2b\xf0\x6a\x57\xa2\x96\xd5\x54\xd4\xbc\xa0\x2d\xd6\x3d\xc4\x39\x2b\x29\x70\xce\xcc\xa1\xc7\xaa\x96\x65\x26\x2b\x4e\x78\xd9\xe4\xa3\xe5\x8d\x99\x62\x74\x9d\x25\x15\xc0\xe0\x69\xcc\x54\xd5\x70\x19\xfe\x25\xe0\xdd\xa0\xa7\x46\xef\x45\x83\x2f\x59\x34\xe0\x8d\x51\x60\xf5\x4d\x09\xec\x46\xdd\x89\x8d\xbb\xb1\xe6\xd5\x04\xba\x03\x2d\xa4\x20\x53\x3a\x2f\x00\x44\x8e\x40\x90\x01\xca\xbc\x9c\xe8\x9a\x36\x63\xca\xc1\xb9\x0b\x88\x98\x06\xfa\x83\x71\x72\x08\xe9\x2c\xe6\x68\xa7\xb6\xc2\xc0\x29\x85\x0d\xa0\xc2\x95\xdb\x86\xc6\x6b\x5d\xa0\xa3\x6d\x63\xf6\x01\xc3\xcb\xb0\x29\x8a\x6b\x22\xe1\x4d\xe9\xdf\x69\xf3\x34\xda\x3f\x05\x6f\xd4\xae\x09\x5a\x89\x34\x9f\x89\x05\x1f\x29\x9c\xc5\xaa\x29\x0a\x97\x57\x09\xe3\x41\xb7\x83\x5d\x44\x82\xb9\x72\x61\x56\xb0\x90\xe9\x1e\x0c\xd8\xc2\x98\xac\x86\x91\x83\x06\x41\x19\x4a\xcc\x3d\x19\x89\x8c\xdb\xaf\xba\xbf\x7d\xce\x78\x53\x46\xf8\x77\x95\xca\x7b\x50\x51\x6b\x69\xcf\x60\xe4\xe6\x59\x86\xa5\xb6\xe8\xfa\x20\xc4\x99\x6d\x12\x1c\x48\xc3\x3c\xc6\x99\x1f\x7f\x15\x72\x61\xfb\xf0\x93\x5d\x1d\x5a\xca\xbe\x2a\xfb\xbc\x5f\xa9\x7c\xb7\x7e\xfd\xa5\x70\x9d\xcf\x71\xf1\xef\x85\xf0\xbd\x10\xfe\x85\x08\xe1\x9d\xb8\x5a\xc4\xcc\x5c\x50\x51\x74\xab\xbb\xba\x44\x64\x18\x6d\xe8\xd8\x27\x4c\xde\xc5\x0f\x2e\x61\x4f\x5f\x5c\xca\xd3\x96\x27\x3d\x79\x94\x48\x9e\x80\xf9\xd6\x87\x34\xfa\x3e\xa6\x94\x62\x84\xed\xa6\x37\x08\x3b\x0e\x5e\x80\xb7\xbf\x40\x19\xd8\x89\xab\x2f\x28\x0a\x6f\x4c\x9b\x6c\x37\x6e\xa7\x4f\x26\xe2\x32\x45\xa7\xef\x45\xd1\x2f\x59\x14\xed\x12\x97\xf9\x61\xe9\xfe\x76\xce\xa1\x34\x5c\xdf\x05\x6e\x22\xac\xd4\x10\xd5\xbc\x0a\xbf\x93\x58\xda\x27\xb1\x74\xc7\x65\xb3\x5b\xa7\x68\x2f\x54\xec\x85\x8a\x7d\x9a\xe5\xe7\xbd\xba\x5e\x22\xdd\x72\x41\x09\xee\x94\x7b\xb9\xf6\xbd\x56\x1d\x0e\x1f\xc3\xdd\x56\x9b\x51\x47\xa6\x84\x10\x8c\x9a\xaa\x42\x27\xa4\xd0\xb9\xbc\x07\x59\x6a\x7b\xbb\xf0\x15\xbd\xf8\xf8\x70\x27\xcb\x81\xe7\x3a\xaa\xbf\x61\xb5\x53\xab\x2f\xf2\x09\x97\xa5\x36\x56\x49\xd7\xec\xf0\xef\x7e\xd7\x40\x6b\x47\x3e\xc1\x54\x1d\xea\x1a\x1e\x75\xf1\x12\x35\xb9\x6c\x65\x4d\x2d\x5b\xb4\x13\x6a\xe6\x84\x53\x7b\x11\x96\xe0\xb7\x75\x0f\x5c\x12\x8c\x9d\xd2\x80\x9d\xd8\xbb\x54\x56\xc0\x8d\xc0\x06\x8c\x53\x85\x88\x1c\xb4\x78\x8d\xe7\x4c\x1a\x2d\x8a\x31\x06\x8a\x7b\x4b\xd8\x58\xb6\xa3\x32\x00\xb5\x6e\xd9\x67\x7a\xa1\xfa\x02\x94\x71\xa4\xdb\x9c\x2e\xe3\x68\x34\x37\x71\x0f\x79\x2b\x06\x32\xfa\x2c\x75\x6e\xd9\x04\xac\xe6\x16\x31\x6d\xe2\xb1\x92\x28\x35\x5f\x8b\x4c\xd9\xf3\xbb\x7e\x61\xcf\xdb\xed\xdd\x0a\x13\xef\x46\x94\x63\x2f\xc3\x40\x1c\x90\x34\xf3\x96\x29\x39\xa5\xa8\x01\x3b\xd1\x61\xfa\x8c\x57\x55\xad\x38\xd4\x92\x0e\xa3\xeb\xc5\x06\x03\x97\x23\x50\x15\xcd\x44\x52\x84\x11\xbc\x63\xe4\xbd\x80\x60\x3a\xe3\xe2\xa1\x56\x7c\xf0\x26\xea\x0c\x5e\xa7\x58\xa7\x1a\xd0\xb4\x20\x14\xd3\x77\x41\x54\x3f\x8e\xff\xd0\x4c\x15\x39\xdc\x6d\xbc\x64\xff\xf6\x9a\x55\xa2\xce\x88\x76\xa0\x8c\x3d\x45\x5e\x15\xf2\x5e\x40\xe0\xfd\xea\x97\xbf\xfe\x96\x4d\x55\x53\xeb\x41\x1c\xea\xf3\x06\x7e\x43\x71\xcd\xe5\x15\x19\x56\x08\xae\x0d\x7b\xf3\x9a\xcd\x64\xd9\x98\x05\x50\xf9\xe7\x47\xd2\x54\xdc\x4c\x37\xec\xff\x90\x9b\xa9\xdb\x72\xc8\x9f\x68\xa3\x08\x63\x84\x68\x12\xd7\x04\x59\x2b\x46\x39\x8e\x13\x2f\x45\xd9\x1d\x2d\xbc\xe3\x6d\x52\x45\x99\x16\xcf\x40\x66\x01\xaa\xe9\xa6\x63\x80\xc8\x89\xe1\xfc\x31\x84\x07\x3c\xdb\x43\xb4\xfe\x79\x54\x0a\xb7\xa5\x2f\x22\xeb\xef\x85\xfc\xbd\x90\xbf\x17\xf2\x3f\x97\x90\xff\x62\xd2\xfd\x50\xd5\x1d\x6e\x0c\xdb\x2a\x20\x31\xc7\x89\xfa\xaa\x74\x6c\xe6\x95\x86\xf0\xad\x4e\xf7\x47\x35\xac\x95\x51\x59\xa7\xba\x4f\x10\xac\x47\x05\xb5\x2a\x7a\x8d\x32\x39\x24\x7d\x12\xf5\x03\xcc\x58\x1d\x2b\xc2\x1a\x75\x34\x17\x89\xf1\x58\x29\x59\xcf\x4b\xc3\x1f\x07\xec\xa7\xb2\x5f\xd5\x62\x2c\x1f\x45\x8e\x0e\x2b\xf0\xfb\x58\x96\x01\x21\x05\xf6\x13\x17\x27\x97\x27\xa1\x27\x27\x9a\x61\xe3\x43\xae\xad\x14\xc5\xae\xde\x9f\xf6\xbf\xfb\xe6\x9b\xbf\xc2\xc5\x62\xc9\xf8\xed\xf1\xf1\xc3\xc3\xc3\x40\xf2\x92\x03\x76\x33\xd7\x5a\x4e\x00\xac\x51\x1f\x3b\x33\x0c\x74\x71\x34\x60\x97\x00\x0c\x4d\xfd\xbb\xd9\xf9\x3b\xce\xea\x24\xad\x21\x42\xb0\x3a\xd7\x6c\x36\xcf\xd4\xac\xe2\xe5\x7c\x90\xa9\xd9\xf1\x6c\xde\xcf\x1a\x6d\xd4\xac\xef\xfa\x58\x81\x7c\xec\x8a\x3c\x4d\x1a\x5e\xe7\xc1\xaf\xe5\x54\xb6\xb0\x31\x09\xfc\x31\x4c\x2d\x02\x4d\x76\x39\xe4\x2f\x02\xfa\x97\x96\x6f\xa1\x2d\x8e\x93\xbc\x7d\x74\x07\xa6\x71\x7b\x4c\xc2\xb3\xcb\xeb\x5f\x3f\x9c\xbc\x3b\xff\x80\x18\xb0\xf6\x35\x1d\x10\x1d\xa2\x50\x1b\x7c\x07\x3c\xb2\x84\xfb\x40\xa9\xfe\x90\x57\x08\x71\x89\xb9\xa8\xdd\x05\xe3\xae\x06\x4d\x85\xd3\xa8\xa3\x1e\x0e\x0e\xba\x82\xd2\x4c\x98\xa6\x6b\x7b\x7a\x45\x8b\x4d\xe3\x3d\xa7\x0e\x86\x40\xaa\x2e\x7f\xdf\x8a\xd8\xca\x55\xfa\x88\x8f\x99\xd4\xbe\x80\x03\x64\x56\x05\x9f\xf2\x36\xeb\xad\xf2\xf6\x11\x5f\xb5\xe6\x88\x6a\x50\x62\x98\x36\x54\x8a\x50\x01\x61\x22\x72\x6c\x63\xb9\x7f\xa5\x21\x43\x5a\x94\xbe\x84\xc6\x25\x7d\xca\xaa\x0f\x1f\x14\xcf\xdf\xf1\x82\x97\x19\x04\x7a\xff\xa4\x1b\x70\x72\xe3\x49\x58\x8c\xc6\x81\xfc\x6b\xbc\xdf\xe3\x0c\xec\x1e\x93\x65\xbf\xe6\xe5\x84\xa4\x36\x7b\xf1\xca\x12\x4e\x85\x4c\x23\x6e\x7b\x91\x92\x6a\x7c\x49\x9c\xb4\xe8\x1f\xf3\xc0\xe2\xa1\x7f\xee\x88\x8b\x12\x57\x29\x8e\x3d\x47\xfd\x27\x78\x79\x42\xc6\x96\x2a\x05\xf6\x64\x02\xcb\x69\x65\x8d\x0b\x42\x5d\xc0\xca\x39\xae\x07\x5c\x49\x9f\xca\x52\x0a\xfb\x15\xd3\xa3\xa6\xe9\x48\x23\x76\xe6\x86\xf6\x20\x2b\xd7\x39\x08\x1e\x69\xe7\x46\xb1\x52\xb1\x42\x95\x13\x51\xbb\xae\xd9\xa1\x18\x4c\x06\x2c\x9b\xf2\x72\x02\xb4\x0c\xe9\x65\x56\xe0\xf1\x3b\x65\x14\x3b\x2d\x1a\x6d\x44\x7d\x31\x3c\x7a\x7a\x1e\x33\x89\x97\xfd\x52\x18\x42\xce\x71\xbf\x1d\xc3\xdd\xdb\xb7\x54\x64\x17\x78\xd7\x78\x07\xd5\x13\x28\x3a\xc9\x4c\x76\x84\x1b\x10\x21\x96\x1d\xac\x1d\x0c\xb0\xfb\xf5\x76\x31\x5c\x79\xab\x5d\x23\xd4\x88\x66\xb7\x07\x37\xa7\x43\x2c\xf2\xfa\xd3\x19\xfc\xc3\x1e\x87\xdb\x83\xeb\xd3\x9b\x61\xab\xe2\xeb\xcd\xe9\x70\x9b\xf2\x35\x80\xac\xb2\x8c\x51\x3c\x4d\x34\x6c\x8c\x2c\x06\x96\x57\x9a\x7a\x70\x51\x9a\x4f\xf5\x35\x7e\x74\x9d\x70\x78\xd9\xcc\x46\x68\x57\x8b\x8b\x76\x55\x44\x9f\x18\x81\xe1\x72\x4c\x31\x58\x04\x06\x1b\x71\x11\x77\x1f\x50\x4f\xee\x46\x20\xf6\x0b\x0c\x84\xbd\xb1\x9d\x7d\xf7\xd7\xbf\x7e\xf3\xd7\x01\xbb\x8c\x51\x72\x78\x09\xb7\xfc\xaf\xd7\x3f\x9f\xfe\x7a\x79\xf2\xf1\x3c\x29\x28\xca\x7d\x99\x87\x88\xe1\x14\x4a\xdd\x89\x9c\x35\x15\xa5\xbd\x41\x08\x3c\x8c\x97\xbe\x48\x38\x35\x43\x80\x0b\x88\x72\xa4\xec\x5e\x2e\xd4\x2b\x6d\xe5\x1a\x20\x17\xa4\x45\x78\x65\x5f\x79\x15\xb8\x0c\xd8\x3b\x0f\xe3\x98\xb6\x19\xaf\x8e\x12\x7e\x61\x3b\x9e\x94\x50\x8f\x61\x0c\xb0\xc1\x78\x46\xd1\x06\x98\xb9\xc3\xfe\x1f\x97\xaa\x24\xa6\x1a\xea\xf3\xa8\x99\x34\x06\xeb\x7e\x6a\x61\x98\xf8\xad\x41\xb0\xb9\xf6\x48\x76\xcb\x28\x90\xac\xca\x49\x9f\x3b\x1f\xd5\x16\x26\x14\x4b\xb8\x3b\x32\xa1\x5c\xa7\xf1\xbc\x2b\x04\x62\x0a\xc8\xc5\xc2\x1d\x68\xd5\xe0\x06\x75\x14\x97\x2a\xc9\x31\xff\x0d\x01\x78\x80\x82\xf9\x22\xbf\x59\x8b\x3f\x60\xaf\xa2\xf8\x26\x75\x7c\x7b\x93\xfe\xbf\xf6\x5d\x6f\x89\x91\x63\x16\x7e\xf4\x37\x60\x12\x94\x16\xee\xc3\x45\x5a\x82\xeb\xa4\x75\xcf\x27\x95\xa7\x4d\xdd\x08\xcb\x9c\x2e\x4c\x54\xb9\xcc\xd2\xd3\xed\x01\xe4\x5e\xde\x1e\x38\x2b\x23\x91\x25\x2b\x14\xcf\xfb\x23\xea\x2e\xca\xfa\x14\x20\x25\x85\xd1\x0e\xd8\xfa\x19\xda\xcf\xc5\x75\xbe\x3a\x0c\x1e\x8e\x82\x5b\x84\xac\x10\xbc\x76\x42\x80\xf0\x02\x0e\xdc\xa4\x94\x35\x54\xce\x09\xd8\xc7\x15\x4b\x8a\x0f\x20\xd4\x9f\xe9\x43\xac\x1e\xf4\x2b\x35\x0e\x67\xaa\xf0\x60\x8e\xe6\x4c\x93\x3d\x02\x28\x05\x25\xeb\x58\x10\xff\xf0\xce\xcd\xe6\x14\x71\x1d\x9c\x38\xbe\x4d\xec\x9f\x3f\xf5\x1b\xc8\xc6\xb7\x73\xe6\xd2\x8b\x61\xbb\xae\xb7\x37\x4e\x97\xc4\x8f\x5a\x72\x1d\x66\xff\x15\x58\x9b\x90\x97\xfe\xf5\x44\x42\x9a\xf1\x12\x5e\xeb\x01\xb3\x22\x09\xcf\xab\x53\xe4\x92\x49\xe2\x63\x8e\x7a\xee\x8b\x41\x04\x4c\x58\x72\x20\x54\x5f\x4d\x1a\x06\xfa\xef\x91\x5c\xe8\x05\xad\xd6\x5c\x96\xcb\x5d\x0e\x83\xc7\x92\x83\xdb\x77\xca\x11\x42\xc3\x8f\x76\xf8\x3e\x9e\x44\xa2\xfd\x87\x9c\x46\xc0\x86\x08\x34\x73\xfe\x88\x76\x48\xb8\x7d\x0e\x51\x1c\x8c\x80\x00\xfc\x97\x31\xfc\x68\x54\xf0\xf2\xee\x88\x11\x60\x41\xda\x7f\xda\x35\x88\x74\x69\xe7\x1e\x1a\x2e\xe3\x5a\xc4\x7d\xc3\xc9\x20\x05\x84\xce\x47\x24\x0c\x6b\xcf\xd1\x18\x1f\xa9\x7b\x71\x34\x60\x54\x77\x2e\x2a\xa3\x71\x7b\x60\xef\x0e\x2b\x83\x40\xe9\x48\x67\x9d\x3b\xbc\x3d\xb8\x3d\x38\xea\x21\x50\x18\xa2\xc3\x07\xf2\x19\xb0\x6b\xaa\x5b\x0e\x63\x01\x1e\x80\xbd\xb0\x19\xe4\xb2\x71\x76\x7b\x30\x15\x3c\x87\x05\xa5\x8d\xb9\x3d\x60\x87\xa5\x62\xf7\xb2\x36\xf6\x22\xba\x18\x1e\xf5\x02\x24\x53\xa3\xc5\xb8\x29\x50\x1e\x46\x0c\x94\x60\xc2\xcb\x54\x59\xa2\x9f\xd0\xc3\xcc\x8c\x45\x5d\x53\x64\x37\x64\x77\x41\x09\x75\xc7\x5d\xf0\x46\x19\x30\x2c\xbc\x18\xaa\x82\xc2\xaa\xeb\x20\x21\xf7\x3c\x07\x42\x72\x4c\x99\xdf\x16\x2a\x81\xa2\xfa\x83\xf1\xe6\xed\x4e\x21\x58\xe8\x7a\xb7\xf7\x36\xed\x4b\x5f\x56\x1a\xd3\x1b\xc8\xb2\x61\xd7\x77\x01\x5b\xa5\x8b\x0c\xea\xd9\xcf\xa6\xeb\xcd\x6f\x48\x2b\x2c\x39\xd0\x9b\xd0\x81\x25\x01\x43\x08\xa2\x3e\x95\xd8\xad\xc5\x3a\xe6\xb5\xe7\x5e\xcf\xe4\x5e\xc0\x1a\xfe\x3c\xdc\x6b\xcf\xbe\xbe\x08\xf6\xb5\x38\xc8\x96\x02\x15\x9d\x29\x50\x55\x5d\x59\x3f\xe7\xe5\x09\x12\x0e\x29\x32\x6b\xa6\xdd\x23\x37\x10\x99\xf8\x62\x48\x92\xc0\xa9\xfe\xdf\xeb\xff\x42\x1c\x43\xdf\x31\x58\x15\x7d\x1e\x04\x02\x1a\xde\x96\xb7\xe5\x4f\xe1\xb8\xdd\x1e\x5c\x0c\xef\xbf\x3b\x6b\x78\x71\x6d\x78\x76\x77\x7b\x90\xda\x5a\xa5\x76\xa6\xd6\x5e\x6b\x6c\x85\x9c\x49\xe2\x12\xaa\x14\xce\x9f\x89\x44\xe5\xd4\x59\xff\x69\x42\x32\x5d\x31\x65\xd1\xe9\x9b\xf6\xc0\x4d\x55\x91\x33\xce\x66\xfc\x51\xce\x1a\xac\x8e\xf8\xa0\x00\x0b\xc4\x92\xd9\x61\x6e\xef\x00\x6d\xe7\xc1\x2e\x86\xba\x67\xd9\x9b\x90\x88\x9f\x59\xe7\xa2\xb6\x87\xf0\x66\x2a\xb4\x15\x26\xb5\x2b\xd4\x58\xd7\x42\x57\xaa\xf4\xec\x8e\xce\x27\x71\x36\x59\xbd\xe7\x33\x09\x44\x4c\x43\x7e\xa7\x62\xdd\x15\x51\x95\xa2\x56\xf6\x90\x4c\xd4\xbd\xbd\xc6\xbc\x4d\x80\x1e\xcf\x87\xaa\x90\xd9\xfc\x25\xf4\xd6\x27\xdd\x7f\x3b\x2d\x8d\xbd\x3a\xde\xda\xde\x84\x7d\xdf\xd8\xa8\x99\xcc\x56\x05\xd1\xe0\xb9\xda\x7c\xd9\x46\x2d\xd7\xdc\xb6\x56\xc3\x42\x3a\x2c\x55\x1e\xca\xc3\x3a\xc5\x8e\x40\x42\xb4\x22\x70\x58\x66\x6a\x3e\x1e\xcb\x2c\x18\xbc\xbc\x0d\x27\xa2\x16\x87\xe3\x8a\xf8\xba\xb0\xb5\xc1\x97\x83\x2d\x51\xc5\x86\xc8\x01\x4b\x51\x5a\x5a\x3d\x0a\xe0\x03\xec\x71\x45\x8e\xcd\xc3\xe7\x78\x5d\xcb\x7b\x4b\x31\x06\xe0\x8a\x72\x41\xda\xa0\x1d\xc1\xc5\x70\xc0\xd8\x09\xcb\xd4\x6c\xa6\x4a\x0f\x3f\x00\xc6\x6e\x8a\x1f\x48\xd4\x53\xa7\xe4\xd3\x18\x2b\x5e\xfb\xe8\x91\xc8\xe1\x44\x06\xee\xcf\x52\x27\x7d\xc9\xf6\x76\x40\xbb\x8c\x9b\x3a\xbd\xcf\xcf\x38\xce\xc8\xe2\x86\xe5\x52\x67\xf6\x9c\xcd\xd9\x4c\xd8\xfb\x5b\xea\x99\x76\x15\xcb\x4c\x53\x23\x0c\x54\xc9\x78\x21\xb9\x5e\xd8\x5a\x32\x47\x83\x9b\x86\x9d\x5e\x9e\x7c\x3c\x87\xd0\x8d\x3a\x07\x2f\x58\xb8\xd7\x02\x03\xbf\x57\xc5\x3d\x5c\x6c\xa1\xec\x54\xa1\x1e\x44\x0d\x62\xc1\xd5\xfb\xd3\xfe\x9b\x37\x5f\x7f\x03\xb0\x73\x60\x38\x3c\xdc\x50\x3a\xd5\xb6\x46\xb8\x28\x2f\xb7\x00\xe2\x1a\x48\x2c\xdb\xc4\xa1\xe1\x22\xdd\x20\x6d\x21\xa3\xe9\xb8\xd8\xc9\x3b\x1e\xbb\xae\xed\x73\xc8\x85\x46\xe9\x4a\xb1\x5a\x35\x26\xda\x17\x47\xcf\x60\xf6\xcf\x45\x1f\xc1\x33\x54\xed\x0e\x5c\xff\x41\xe6\x91\xe3\x6a\xe0\xca\x9b\xdf\x1e\x20\xe6\x66\x7d\xef\xd0\xec\x28\xd2\x01\x83\x27\xec\x91\xb6\xc2\xf1\xbd\x92\x39\xd5\xce\xb0\x5c\x7a\xaa\x2a\xd8\xcd\x05\x7b\xc9\x25\x99\xf7\xf1\xae\x76\xdc\x12\x73\xea\x6a\xa9\xef\x34\xab\x94\xf1\xc8\x81\x72\x46\x67\x27\xf7\xe3\xd7\x15\x95\x4d\xb4\x23\x24\x41\xe5\xf6\x80\xa9\x91\xce\x9a\x7a\xdd\x10\xed\xc5\x84\x29\x7e\xc9\x28\xc1\x32\x83\x76\x99\x12\x00\x9a\xed\x48\xe2\x04\xcc\x89\x52\x39\xa4\x56\xf2\x82\xce\x73\x18\xc2\xd3\x49\x60\x2a\x78\x61\xa6\xa7\x53\x91\xdd\x5d\x76\xf3\xb3\x2d\x79\xc3\x4b\x1c\x38\x5d\x6c\x91\xd9\x16\xcc\x39\xef\x3c\x6e\x61\xea\xf9\x54\xb1\xbc\x97\xb8\xe2\xc8\xd0\xb6\xb0\x61\xcb\xe9\x2f\x7e\x21\xe3\xc5\x3a\x77\x9c\x6e\x79\xe4\x56\xeb\x34\x88\x83\xb3\xd4\xe5\x86\x3d\x6f\xb0\x38\x0e\x98\x17\xfe\x5c\x46\x37\x71\x90\x94\x0d\x1f\x41\x2c\x70\xe3\x14\x05\xe7\x36\xf0\xf8\x2f\xf6\x54\x71\x36\x91\xf7\xa2\x44\x8e\x8f\x71\x6f\xa9\x53\x37\xe1\x53\xca\x12\x8f\xf9\x03\x3b\xf9\x8e\x76\x8f\x2f\xee\x85\xad\x4d\x79\xc3\x43\x2f\x95\xb5\x85\x85\xb1\x7b\x80\x23\xbe\x18\xde\x7f\xdb\xb3\xff\xff\xdd\xd1\x06\x5d\x5d\x6a\x90\x51\xbd\x68\xb7\x5e\x7c\x06\xb9\x20\xde\xb4\x05\x35\x3f\x25\xb8\x11\xd7\xe8\x68\x77\xb2\x4a\x8a\x6b\xec\xd0\x85\x96\xcb\x93\x6b\x28\x24\x98\x09\xd2\x58\x63\x58\x06\x38\x73\xfc\x9e\xcb\x02\x0c\xbf\xa9\xb4\xd4\x8b\xe5\x5b\xf7\x41\x2a\xa0\x6b\x69\xa9\x75\xc8\x9e\x68\x24\x68\xad\x8e\x65\x9d\xd2\x6b\xd4\x54\x0a\xfb\xad\xfd\x06\x7d\x11\x62\x1e\x72\x28\x6d\x0b\xf0\xa6\x33\x75\x8f\x54\x89\x6c\x97\xd7\x73\xbf\xb9\x73\xe4\xb7\x31\x60\x23\x74\x12\x51\x27\xa0\x2b\xc9\x59\xf2\x96\x1b\xec\xb5\x17\x01\x97\x68\xed\x96\x5c\x6e\x0f\xc8\xed\x69\xf7\xff\xf6\x20\x9d\x8b\x6a\x29\xbf\xd7\xce\xde\x4f\x5a\x6a\x47\x45\x18\x7f\x81\xf1\xdb\xce\xe6\xa8\xec\x3b\xdd\xfe\xf6\x20\x84\xc9\xb2\x1d\x69\xb5\x58\xec\x62\x4b\x95\xcb\x1d\xaa\x35\x7a\x97\x3f\x77\x9d\x94\xaf\x48\xcb\x82\xf1\x60\xf9\xf7\x80\xd0\xb8\x2b\x55\xec\xcb\x56\x8f\xd2\x21\x77\xe3\x79\x6e\x7e\x51\x7e\x8b\x9d\x7d\xd8\xac\x7e\x29\xb4\x8e\x38\x81\xaa\xbd\xf1\xc6\xc7\x23\x5c\x3f\x8b\xf1\xa1\x66\x5f\x0b\xbc\x96\xe9\x9e\x75\x00\x80\xc0\x88\xca\x98\x5f\xc5\x80\xe0\xf6\xc4\xc8\x72\x52\x08\xe8\x7a\x10\x8e\x0f\x65\xda\xdc\x1e\x44\x8f\x6f\x0f\xd8\x21\x67\x1a\x7e\x08\xe7\xf8\xa8\xc7\x6e\x0f\x86\xa0\x32\xc4\x63\x3c\xb4\xb4\x1b\xf3\x7f\x55\x46\x8b\xe2\xd9\xad\xf0\x46\x14\x8d\x56\xb8\x76\xf7\x10\x69\x08\xbf\xb9\x37\xa9\x39\x9a\xed\x6e\x0f\xae\x70\x31\x9f\xf7\xed\x38\x90\xc8\x32\xcc\x23\xcc\xbc\x88\x49\x3c\x36\xf7\x68\x07\x67\x9f\x8b\x4a\x94\xb9\x0b\x53\x88\x9c\xf8\xd2\x5b\x31\xba\xf3\x0b\xbd\x8e\x5f\x3c\x5d\x4c\x2d\x22\xfe\xb6\xd1\x09\xd8\x36\x22\x3a\xde\x65\x55\xa5\xb7\xa9\x44\x99\xfc\x01\x33\x9a\x08\xe3\x0b\xce\x90\x66\x0d\x3b\xd8\xca\x36\x0a\x6b\x82\x4b\x42\x54\x8c\x6b\xa8\x31\xec\x2c\x54\x83\x00\xf8\x9f\x02\x74\xc3\xac\x50\x4d\xde\x27\x8a\xae\x5d\x29\x9e\xa4\xae\x3c\x04\xfe\x27\x13\xc6\xe5\xe5\xf0\x2b\xf3\xde\x65\x7b\xf7\xe1\x48\x97\x4a\x62\x2e\x86\xc2\x7b\xa8\x93\x0f\xfb\xfb\xcd\x15\x03\x8a\x0c\x6a\xcf\xdc\x20\x2c\x9d\x74\x65\x45\xec\x0e\x15\x5d\xc2\xc2\x42\x28\x07\x8e\x26\x70\x8c\xaa\xe0\xc6\x4a\x7f\x64\xd4\x23\x55\xdd\x0e\x25\x0b\x46\x91\x18\xfa\xb0\x35\xcf\xd4\x21\xef\xd6\xc6\xf5\x10\xf9\x2b\xfc\x30\x48\x5b\xbb\x18\xea\x5d\x2f\xeb\xed\xc1\x93\x32\xa2\x31\x6e\xa8\x1f\x05\x0f\xf7\xe9\xd4\x46\x49\xd1\xe9\xf7\xfb\x63\x59\x8b\x07\x5e\x14\xdd\x92\xa3\x77\x68\xaf\xa9\x3a\x04\x75\xdc\x44\x88\x15\x48\xf5\xde\x00\xb5\x2a\xaa\xed\x8b\xb3\x77\x3e\x35\xc7\x64\x18\xc5\xf5\x6c\x5a\xd8\x0d\xd7\xfe\x8c\x57\xfd\x3b\x31\xd7\x49\xe0\x90\x5f\xfc\xe4\xed\x38\x7e\x2f\xfa\xf9\xbf\x3a\x0a\x16\x33\x5e\x3d\x0d\x44\x63\x31\x42\xf2\x89\x20\x1a\x31\x25\x35\xa3\x42\xea\xe9\xa5\x32\x57\x82\xe7\xf3\x13\x67\xa1\xdd\x54\x48\x61\xc5\x6b\x11\xe8\x15\x52\x5b\x39\x67\x7c\x22\x7c\x59\x84\x5c\xf0\x82\x42\x6a\x96\x68\xd4\xee\xee\x20\x0b\x4c\x2e\x75\x2d\x26\xbc\xce\x11\x01\x0a\x7b\x46\x74\xe1\x31\x14\x16\x98\x1f\x97\xca\xf4\xe1\x5f\x78\xed\x3a\x5d\xc1\xaa\xf7\x60\xf5\xc3\x48\x9e\xc8\x17\xe7\x15\x19\x8a\xcd\x36\xdc\x88\x71\x53\x5c\x43\x7d\xb8\x1f\x9c\x4b\x2e\x12\xc0\xab\x5a\x55\x1c\x7c\x1e\xd7\x57\x3f\x83\x2d\x12\xad\x90\xd8\x83\x34\x9a\x0d\x55\xae\xbd\xc5\xa5\x6a\x6a\x7b\xb6\xe0\xd0\x09\xcb\xa2\x9c\x09\x14\x07\x18\x99\x7a\xa9\x00\x4b\xe1\x4d\xc3\x13\x51\x0a\xbb\x67\x3e\xfe\x1b\x65\x07\xf7\xd7\x75\x81\x71\xc5\x94\x09\x06\x5f\xf4\x52\x17\xe4\xac\x55\x50\x83\x9f\x3c\x8e\x33\xc1\xa9\xca\x0e\x2f\x8a\x68\xb1\xed\xf9\x77\x11\xeb\xc2\x2a\x47\xb0\x7c\xb7\x07\x4c\xdc\x87\x1c\xd0\x21\x62\x6c\x89\x99\x16\xc5\xbd\xf0\x96\xf5\x01\x3b\x99\x80\xa0\x4a\xee\x56\x55\xea\x66\x46\xc8\x57\xd1\xcc\xdc\x44\xf2\xe8\xb3\xf1\xa5\x11\xe6\xa7\xea\x95\xd3\xb3\x72\xa4\xe6\x63\x81\x9a\xb8\xfd\x0c\xcc\xcc\xe1\x58\x6e\x13\xd7\xe4\x10\x7f\xdb\xb4\x6d\xd5\x55\x54\x69\x87\xcb\x83\xeb\xd8\x53\xd8\x77\xbb\xa8\x0a\x58\x62\xbd\x84\x16\x0c\xb1\x04\x30\x6c\xa6\x94\x65\x02\x65\xab\xec\x86\x93\x82\x05\x39\x02\x9e\x6e\xdd\xd8\xc1\x86\x80\xae\x68\xb4\x3b\xb9\xa2\x48\xbd\x44\x81\x97\x9a\x56\x0d\xae\x5c\x87\x25\xe7\xed\xc1\xae\x92\x10\x78\x4a\xc0\x39\x6c\x22\x13\x97\x73\x11\x46\x5b\xea\xab\xa0\xcd\x54\x2e\xc7\xf3\xc1\x33\x7d\xc7\xd1\xad\x4e\x16\xc8\x17\x8b\x3b\x59\x4e\x27\x71\x88\xe7\x22\x99\x40\x35\xc4\x93\x31\xdc\x38\x9b\xb4\xb9\x28\xe6\xfa\x14\x64\x99\x8b\xa1\xb7\x3b\xa0\xcf\x1f\x8a\x88\xc0\x3e\xcc\xb8\xc4\x02\x6d\xf4\x09\xc6\xe9\x1b\x03\x76\x8e\x21\x7d\x5e\x1c\x22\x3b\xd3\x62\x43\xe7\xdb\x70\x1f\xb3\x64\x70\x09\x49\x06\x71\x7a\x35\xfe\xf2\x45\x87\xef\xb4\x96\xf9\x14\x84\xac\x67\x00\xc2\x2e\xeb\x6d\xdd\xc1\x5c\xfa\xfd\x90\xb3\x46\xb0\xf6\xc1\xb4\xa7\x31\x43\xb6\xb5\x1f\x2b\xc2\xe3\x55\xa5\x0a\x35\x99\xff\x1d\x05\x88\x75\xf4\x13\x37\x45\x1b\x68\xe5\xbd\x68\x7d\x30\xcd\x78\x29\xce\x35\xa5\xc2\x84\x18\x1b\x32\xab\x0a\x28\x25\x1a\x8f\x91\x2e\x85\x28\x29\x0c\x2e\x32\x2a\x77\x8c\xde\x15\x6d\xe5\xe5\xc0\x9f\x51\xe7\x01\x19\xb8\x8d\x58\x06\x16\x44\xcb\x8e\x5d\x1e\xab\xc6\xea\x00\x3e\x72\x00\xb0\x00\xb8\x5e\xee\x2d\xf8\x0f\xf2\x11\xdc\x24\x83\x77\xd1\x07\x18\x3a\xd3\x62\x80\xdc\xb2\x19\x6d\xd8\x9b\xef\xa8\x31\x4f\x63\x77\x06\xf1\x0d\x69\xaf\xb3\xa9\xd2\xa2\x0c\x96\x59\xcc\xc8\xaf\xb5\x49\x56\x8c\x50\x2d\xbc\x11\x75\xc4\xb3\x3b\xab\x3e\xae\xb5\xca\xc2\x70\xe0\xfe\x44\x5b\x1a\x70\xd2\x52\xf9\x97\xf1\x86\x0d\xe9\x5c\xfe\x83\xde\x3c\x26\x17\x78\xf3\x94\xeb\xa4\x8b\xb1\xc3\xa0\xa7\xc3\x4f\x75\x2e\x7d\x4c\x0f\x6d\xa3\x73\x02\xd0\x42\xf8\xb2\xaa\xb7\x07\x7f\x81\xb8\xa2\x79\x0c\x70\x02\xb7\xff\xed\x81\x95\x9b\xdc\x90\x2c\x23\x02\x0d\x2b\x03\xf9\x90\x17\x3e\xc1\x5d\x8e\x5d\x4e\x94\x65\xea\x18\xa1\xa4\x45\xa9\x7d\x4c\x48\xc1\xb5\x71\xfe\x9d\xd2\x43\xe1\xad\xce\x4c\xb0\x3c\x09\xee\x28\x28\x97\xe3\xd7\xc4\xca\x0b\xa6\xe6\x48\x6f\x69\xe9\xbf\xdd\x47\x44\x7b\x7a\x5b\xae\x66\xbf\xbc\x8e\x46\x4d\xd6\x9e\x7d\x7b\xf9\x45\x95\x07\xa6\xea\x21\x9e\x42\x94\x39\x97\x72\x77\x7f\xcd\x0e\xc8\xf4\x1d\x17\xf0\x48\xa3\xab\x3a\xde\xc8\xb7\x21\x48\xd2\xde\x5e\xe4\x54\xb3\xdc\xc8\x79\x88\x3d\x2a\x42\x14\xe4\x6d\x29\x37\x52\xf9\x09\x58\x24\x72\x23\xa7\xe7\xd4\xcf\x34\xca\xc4\xa1\x1a\x0c\x0e\x41\x04\x93\x4d\x5b\x1e\xc0\xd1\x9c\xbc\x23\x44\x41\x4d\x16\xa1\x3d\x44\xc2\x24\x66\xf1\x2f\xc8\x94\x84\x7c\x07\xe4\x9a\x84\xac\x87\xd8\xbe\x24\xee\x0e\xe9\xcf\x45\x58\x3a\x87\x4e\x2a\x41\x93\xfe\x23\x72\x4c\xe9\x21\xb8\xe7\xd0\xa6\xe6\x64\x8e\xe2\x50\x55\xda\xf7\x3d\x80\x8f\xe2\x3e\xdc\x1e\xb0\x51\x23\x0b\x34\x60\xf9\xe5\x77\x2c\xc7\x6f\x80\x4f\xb3\x84\x40\x0a\x0c\x42\xc1\x68\x4a\x85\xb9\x23\x2a\x70\xe2\x68\x90\xad\x68\x2e\x74\xe9\x87\x2d\x4f\x3e\xee\x5d\xcb\xc0\x7a\x28\xff\x24\x96\x17\x53\xbb\xce\xa1\x1c\x47\xa6\x23\xe7\x8c\x6a\x6a\xa8\x39\x09\x26\x92\xa3\x6d\x87\x18\x13\x2f\x10\xa2\xe4\x5a\xb4\x80\x92\x17\x6c\x48\x22\x91\x1d\xaf\x05\xb8\xeb\x29\xdd\xc2\x99\x5b\x15\xba\x97\x9c\x8b\x26\x09\x20\x0d\x2e\x9a\x5d\x0a\x4c\x44\x22\xb2\x9c\xf4\x7d\x3b\x27\x34\x81\xb4\xfc\xd9\x0a\xb8\xc6\x50\xf9\x9b\x13\x95\x10\x18\xbf\xe5\x95\x70\xbb\x1b\x60\xf3\x9f\x92\x9b\xe4\x9d\x86\x1b\x23\xb5\xdd\x67\x9c\x21\xc0\xaa\xe7\x3b\xb1\x14\xad\x41\xa4\x38\x75\xa3\x7b\x71\xcb\x11\x74\xf3\x39\x2c\x44\xf0\xe2\x8e\x2c\x44\xb1\xb1\x79\x6b\xf1\x3c\x66\x3d\x1d\x8a\x36\x24\x9e\x82\x54\x24\x5f\x20\x44\x67\xc0\xf7\xfc\xa9\x87\x99\xf2\x70\x7d\xba\x8a\xdd\x3b\x3d\x4f\xeb\xf5\x96\xc5\x73\xb5\x4c\xcf\x68\x9f\xaf\x0e\x9a\xc6\xe6\x63\x46\x2a\xe1\xf6\xb5\x6e\xa9\x83\x0e\xda\x93\xfb\xd6\x26\x85\xe9\x74\x93\x42\xbb\xcb\x9d\xc1\x3a\xd9\x9f\xae\x87\xa2\xd6\x50\xf1\xc9\xfc\x0c\x30\x6a\xe8\x23\x59\xb3\x47\x57\x31\xc6\xa0\xef\x86\x55\xbe\x1f\x87\xc7\xe6\xec\x53\x1d\x76\x63\xac\x6f\x36\x4b\x80\xa1\xc8\x2a\x5a\x42\xac\xe8\x4e\xf0\xd0\x3e\x86\x71\xdc\x6a\xb3\xe0\xb5\x99\x5a\x65\x89\x10\x0c\xca\x89\x07\x49\x38\x7f\xb4\x37\xaa\x78\x34\xdf\x62\x26\xf8\xe3\x58\xe3\x3f\x4a\x63\xff\x35\x60\x17\xb3\xaa\x90\x99\x34\x05\x41\x1c\xd5\x1e\xcb\xda\xbd\xd6\x2e\xb8\xb8\x7d\x45\xd9\x0d\xeb\xb0\x50\x05\x98\x1d\xda\x37\x8f\x1f\x6a\x69\xc4\x11\x96\x5f\x01\x93\x13\xb8\xab\x31\x3c\x45\x21\x7e\x93\x08\x0f\x9d\xa5\x57\x96\x0c\x37\xfe\x23\x42\xe3\x6e\x5d\xfd\xfd\x0a\x0e\xce\x76\x87\xa9\x0d\xa7\xbd\x16\xef\xc8\x7d\xad\x15\xdc\x47\xe5\xe4\xa3\x9a\x08\x6a\x64\x4f\x9b\x73\x5c\x06\x52\x3d\x19\x5e\x58\xc9\x2d\x47\xfd\x5e\x2f\x8d\xa4\x73\xe5\x6b\xc9\xc0\xe8\x55\x30\x63\xac\xb2\x66\xb7\x77\xe9\x52\x20\xe9\x77\x08\x0d\xfe\xd9\x37\x74\x81\xc1\xd3\x66\xc6\x4b\x30\xd0\x83\x7a\x16\xe7\xeb\x87\xa1\x3b\xcc\x4e\xda\xb3\x08\x5a\x07\x54\x3e\x42\x5c\xf1\xb8\x2c\xbe\x54\xc4\x16\xd4\x18\xa6\x02\x3d\x74\x9e\x0f\x96\xa6\x68\xed\x4d\xa6\x2a\x3f\x1b\x62\x0f\x34\x48\x3f\x37\xb7\x0d\x51\x7d\x8b\xc4\xbc\x60\x5c\x51\x74\x4c\xfd\x0f\xad\x5a\x51\x91\xa0\x1c\x53\x80\x55\x2b\x62\x1c\xd6\xd4\x8e\x85\xb4\xaf\x91\x60\x33\x59\xd7\xa0\x25\xb7\x87\x83\xa6\x06\x39\x99\x1a\xa8\xef\x6d\xc4\x04\x39\x35\xa4\x5b\xb2\x68\xfb\x28\x63\xb9\xa4\x7f\x27\xc5\x1c\x1d\x15\x91\x25\xbe\xa9\xf1\x6d\x88\x7b\xa2\x67\xc8\x38\xe6\xaa\xf1\xe1\xee\x88\x83\xef\xe7\xa7\x97\xac\xd4\x65\x78\x88\xc1\xe3\xca\x99\xb7\xfb\xe2\x51\x6a\xb3\x38\x1b\x9f\x7e\x4d\x7e\xf9\xcf\x25\x50\xbb\x01\xec\x2f\x97\xfd\xe5\xf2\x3b\x5d\x2e\x4b\x4b\xb3\xec\x6f\x98\xfd\x0d\xb3\xbf\x61\xfe\x0c\x37\xcc\x5c\x67\xa6\x58\xa7\x53\x42\x03\x8f\xcc\xc2\xd9\x9d\xdd\xac\x82\x55\xbc\xe6\x33\x61\xd7\xde\xb8\x22\xd9\x9b\xef\x92\x0e\x10\x7b\x97\x74\xac\x00\x80\xdd\x76\x32\xc7\x42\x5e\x66\x8b\x03\x62\x59\xc3\xa6\x63\xe1\xc2\x21\xb7\xfd\xde\xc2\x06\x2c\x87\x01\x6a\x55\xa3\xa1\xb1\xd1\xdf\x5b\xe3\x02\xdd\x9c\x0e\xaf\x55\x76\x27\xcc\xc9\x26\xe0\xfb\x56\xcb\x08\x1f\x88\x97\x8c\xca\x23\x7b\xaf\x96\xaa\x44\x49\xe1\x9e\xf0\xce\xe6\x8d\xb5\x57\xf7\xa6\xe8\x4d\xca\x8e\x7f\xcb\x7e\xb0\xf7\xbc\x3b\x8e\xe4\x7e\x62\x46\xf5\x16\xd0\xd9\x2b\x95\xb3\x8b\x6d\x30\xc3\x96\x81\xb0\x7d\x59\x68\x61\x51\x75\xf4\xdd\x40\x83\xfd\x4e\xc8\x54\x37\x5c\xae\xad\xa4\x09\x88\x99\x2a\xa7\x90\x1a\x68\x0d\x4e\x0f\x63\x78\x36\x75\x21\x23\x2e\xf7\x5c\x8c\xc7\x22\xb3\x0c\x17\xb2\x5b\xa0\xbe\x95\x63\x9f\x14\x7d\x69\x54\x81\x81\x4b\xf6\x05\xe8\xad\x83\x04\x8b\xdd\x6e\x20\xcf\x2b\x0f\x56\x60\x87\x8c\xaf\xf8\x82\x03\x30\x6c\x15\x17\x04\x24\x86\x9e\x8c\x07\x9a\x39\x3f\x19\xf6\x80\x57\xff\xa5\xba\xb6\x93\x6d\x0a\xd1\x63\x18\x85\x1e\x7e\xa1\x6c\xc5\xf3\x47\x91\x35\x66\x1b\x31\x00\xed\xb0\xdd\xa7\x86\x93\xb9\x13\x73\x62\xdc\x71\xc1\x79\xd8\xaa\x6d\x30\xfa\xe4\x4c\x9c\xe4\xb9\x58\x00\xce\x7e\x86\xad\xfc\x46\xb6\xeb\x77\xb5\x49\xcb\x7d\xb4\x6d\xe1\xc4\x20\x01\xe3\x01\x42\xdd\x9c\x1f\xb8\x66\xdc\xbe\x00\xc0\x5f\xce\xcf\x6b\x45\x73\x23\x4a\x10\x27\xfc\x3e\xe0\x1b\x7a\x95\x10\xd9\xe1\x62\x09\x4b\x8d\xde\xec\x90\xdd\x42\xb2\x8d\x89\xf7\x62\xc7\xb8\xfd\x96\x26\x7a\x0b\x07\xe0\xd9\x67\x1d\x89\x7d\xc3\x45\x43\x7c\x1b\xcf\xbb\x7f\xa3\x7d\xe8\xdd\xc1\xd1\x70\xd0\x71\x1d\x42\x80\x03\x49\xa5\xa6\x96\x55\x21\xd8\x6d\xf3\xfa\xf5\x37\xd9\x9d\x98\xf7\x30\x8a\x80\xd8\x84\xfd\x55\xf8\xb2\x77\x22\x44\xb1\xa1\x0a\xa9\x6a\x7a\xd1\xfd\x89\x2f\xec\x8a\x5f\x9c\x23\x87\x88\x83\x50\xdd\x7e\x12\xf3\x80\x28\x2c\x93\x4d\x07\xec\x1c\x82\xe8\x66\x82\x97\x14\x6b\x07\x81\x1e\x71\x63\x07\xf0\x1b\x27\xa3\x52\xc9\xbf\x28\xd7\xec\x77\xe6\x23\x7f\x17\x73\xa7\x0b\x45\x4c\x64\xca\x5d\x11\x0a\xbf\xd7\x21\x58\x6f\xfd\xdc\xef\xc4\xdc\xc5\xc4\x08\xe8\x4c\x6a\x17\xcc\xe1\xf7\xd0\x5d\x78\xe7\x56\x6c\xd6\xff\x8e\x74\x95\xa9\xd9\x48\x96\xf8\x31\xec\xda\x2d\x36\xf3\xc1\x26\xda\x47\xd4\xc0\x67\x9e\xbe\x20\x6e\x08\x1b\xe5\x1a\x1a\x69\x52\x3d\xe8\x4e\xcc\x5f\x69\xaa\xe7\xa1\x4a\x3d\x95\x55\x92\xd4\x16\xa2\x29\xf0\x65\x17\x4f\x61\xe7\x88\xa1\xb8\xbf\x35\xbc\x48\x43\x31\xe8\x27\x6a\x64\x97\xea\xb7\x46\xde\xf3\x42\x40\x25\x16\xab\x40\xe4\x19\xaf\x11\x0f\x91\xc2\x6d\xb4\x72\x78\x8f\xf6\x48\x66\xbc\x0c\x17\x96\xdf\x05\x72\xb1\x56\xbc\x36\x32\x6b\x0a\x5e\x33\x4b\xcf\x13\x55\x77\x66\x4a\x49\x34\x9a\x23\x82\x6e\x15\x70\x6e\xda\xed\xdb\xbc\xbc\x12\xb5\x54\x39\x5c\xc4\x50\x06\x26\x25\xb4\xc3\x14\x60\x46\x8d\xdd\xd9\xf3\x07\x21\x45\x5f\x5e\x02\x45\x7a\x14\xb1\xa2\xe8\x12\x7f\xe7\x91\xc4\x21\x26\xcd\x45\x8a\x08\xe3\x41\x6d\x88\xec\xda\xf7\xbf\x5d\x7e\x71\x2f\x6a\x76\x48\x22\x82\xb8\x97\x99\x39\x1a\xb0\xff\xbf\xa8\x15\x42\x45\x8b\x09\x16\x79\x69\x99\x2e\x0c\x65\x27\x71\xcd\x5e\xb3\x43\x78\x8d\xc9\xd9\x4c\xe4\x92\x1b\x51\xcc\x8f\x5a\xc8\xd4\xbb\xae\x57\xd3\x5d\x5b\x4a\x78\x00\xde\x6e\xad\x7d\xf1\x4c\x5c\xf9\xe3\xed\x0f\x34\x44\xe0\x5a\x12\x8e\x41\x65\x03\xd2\xab\x3b\xff\x7e\xd7\xfe\xdb\x6e\x2e\x67\xb5\x98\x00\x71\x22\xf5\x7d\x2e\xf5\xd8\x85\x76\x5d\x53\xf4\xd0\x07\x3e\x12\x05\xc9\x53\x33\xb1\x56\xf2\x3d\x09\xd1\x68\x3e\xf6\xa8\x0e\x6f\x12\x84\xaf\x7b\x92\xdc\x7d\x08\x09\x00\xa1\x8a\x11\x56\x7e\x89\xa1\x6a\x3e\x27\xcd\x83\x4d\x00\x5c\x99\xd3\x1b\xc6\x4d\x1a\x82\xb6\xf2\x96\xdb\xcc\xef\x21\xad\xc7\xc5\x4b\x06\x46\xef\xc7\x1c\xb1\xf9\x2d\x95\xf3\x4d\xec\xe1\xa4\x64\x10\x07\x01\x5e\xea\xa8\xd4\x8a\x1e\xb0\x4f\x0e\x65\xaa\x0d\x73\x8f\x23\x76\x46\x89\x02\x4a\xb8\x0d\xd8\x39\xcf\xa6\x10\x5a\x39\x07\xab\x2a\x9e\x3c\xa9\xd9\xa7\xab\x05\x5b\xcb\x0b\xc5\xeb\x6d\x27\xba\xd1\x32\x3d\x5f\x74\x4b\xe9\xf8\x46\xd4\xb3\x27\xd2\xae\x11\xf5\xac\xcd\x9d\x6b\xa1\x9b\x02\xd4\x24\x5c\xf5\xdf\x1a\x51\x4b\xbb\x3b\x27\xac\x6c\x8a\xc2\x07\x67\xae\xea\xce\x11\x7c\xa9\x42\xe8\xdc\xcd\x54\xc4\xe7\xc4\x05\x5e\xcc\xe0\x86\x3c\xb9\x3c\x23\xf1\x9d\x32\xe3\xe0\x10\x35\x23\x8a\x8a\x1b\x37\x65\x86\x56\x06\x69\xe6\x96\x91\x5e\xaa\x5c\xc4\x73\x7e\xb9\xe3\x04\x53\x01\xf6\x70\xfe\x68\xd7\x48\x77\x88\x41\x3a\x59\x8c\xb7\x5e\xc6\x2a\xb4\xe5\xfc\xb0\xc0\x6d\x31\xe6\xb9\xb9\x6c\x1b\xd9\xdb\xf3\xa9\x7c\x5b\x42\x05\xec\x9b\x53\x1f\xc6\xbb\x4e\xe3\x58\xf1\x4a\x64\xe2\x86\x68\x57\x45\x98\x3e\x41\x51\x00\x75\x9e\xcf\x14\x29\x10\xc8\x76\xdd\x56\x74\xd8\x73\xd8\x93\xeb\x15\xa9\x3e\xcf\x29\x5c\x94\xf4\xbb\x36\x7a\x29\x6e\xe9\x61\xd8\x8d\x62\x63\x59\xb6\x26\x3a\x70\xa9\x56\x51\x14\xb9\xf4\x75\x67\x3c\x4f\x87\x9c\xad\xa6\xa4\x0c\xda\x80\x55\x63\x17\xa8\x24\x03\xd7\x18\x57\x0e\x8f\x88\xac\x17\x74\x5b\xa2\xe5\x5c\xcd\xb8\x2c\x57\xe8\xd0\x33\xfe\x78\x7d\x27\x1e\x36\x9c\x90\x8f\xd8\xaa\x05\x67\x9e\x8b\x49\x2d\xc0\x7a\x88\xb2\x18\x8c\xc6\x85\xa5\x97\xe2\x5e\x58\xbd\x3e\x97\x9a\x40\xcf\x73\x52\xae\xfe\xf1\x30\x15\xe5\x4f\xa5\xe6\x46\xea\xb1\xe4\xa3\x42\xfc\xc7\x99\xba\x54\xc6\xa9\x50\xff\x70\xa2\x1e\x6a\x93\x88\x70\x51\xd9\xf9\x03\xf6\x7c\x2e\xc7\x0e\x72\x6c\x24\xcc\x83\x20\x6f\x47\x58\x94\x94\xae\x52\xc0\x7d\xbf\x28\x2e\xc8\x77\x52\xa8\x11\x2f\xd8\x4c\x96\xf6\x33\x03\xf6\xde\xf2\x4a\x44\x76\x03\xc4\x0c\xce\xbe\xe9\xff\x53\x95\x11\xf4\x8a\x5b\x8b\x80\x89\xf4\x06\xe3\xab\x43\x7a\x97\x0f\x7d\x4d\x28\xd3\xd1\x3d\xd7\xec\xcd\xf1\x9b\xe3\xd7\x6f\xd9\xff\x30\xdb\xf5\x1b\xfa\xef\xd7\xf4\xdf\x6f\xd8\xff\xb0\xff\x61\x8c\x0d\x19\x4b\xfe\xcb\xe0\xbf\x7d\x26\xc7\xf1\x18\xde\xd8\x61\x66\x6a\x46\x13\x06\xed\xc2\x23\x9b\xd3\x8a\x02\x0d\x61\xd7\x70\x21\x67\x6a\x26\x60\x0c\x6f\xfe\xdd\xb5\xc1\x94\x30\xa6\x4a\x6a\xf9\xe6\x10\x86\x74\xc4\x1e\x40\x22\x9c\xf1\x3b\xa4\xbd\x93\xcc\x34\xbc\xb0\x1f\x3f\xfc\xba\xff\xfa\x88\xa9\x32\x6d\x7e\x2f\x55\x61\x05\x71\x1a\xe1\xe1\x9b\xa3\xc1\xc2\x90\xbf\x5e\x32\xe4\x64\xb4\x30\x0a\x5e\xce\xa1\xeb\xd5\x54\xe3\x08\xe6\xa4\x9c\x3f\xf0\xb9\x27\x1b\x77\xf6\x2c\x1f\x61\x53\x39\x99\x8a\x9a\x55\xb5\xc8\x44\x8e\x38\x75\x3e\x3f\x41\x3a\xb7\x10\x76\x3a\x67\xd2\xd8\x3b\xed\x95\x06\x39\x97\x70\x37\x08\x86\xe0\x2c\xf6\x73\xc2\xba\xc3\x9e\xbf\x76\x2a\x09\x99\x09\x76\x8e\xab\x14\x25\x0b\x6d\xd4\xe1\x7c\x4b\x77\x78\xac\xbc\xa8\xc6\x68\xf8\xa5\x8b\x0b\xae\x62\x9a\x36\x26\x09\x12\xeb\x09\x30\x87\xf6\x2d\xc8\xc0\x00\xc7\x6f\xc6\x8b\xd8\xf6\x11\x25\x92\xa2\x6c\xe7\x2a\x2e\xa1\x1f\x81\x78\x36\xfb\x25\xb4\xc4\x6a\x41\xc1\x78\x84\xbd\x91\xd9\x88\x23\x32\xee\xa8\xc9\xee\x84\x71\x55\x4b\xac\x74\x68\x14\xab\x1a\xc3\x3c\x1e\xdc\x02\xcf\x33\x0a\x3b\xc6\x57\x57\xed\xdb\xd3\x05\xe2\x05\x32\xdb\xb0\xec\xbf\xb4\xdb\x47\xb6\x28\xba\xef\x72\xc1\x69\x7d\xd1\x00\x20\xc7\x0e\x01\xa9\x7c\x15\x88\x0f\x23\xdc\x81\x43\x84\xb4\x19\x7b\x78\x12\xe6\xc8\x0e\x49\x1f\x3e\x62\x46\x14\x85\x73\x1b\xe3\xc3\x9a\x8c\xe1\xfe\x07\xa0\xe8\x3e\x4b\x0f\xca\xd2\x17\xe3\x97\x9c\xcf\x47\xa2\xf9\x1f\x12\x13\xa4\x2a\x7b\xb7\x25\x03\xf8\xa6\x89\x04\x80\xa7\x4e\x47\x0b\xd9\xc7\x54\x14\x15\xab\x45\xde\x60\x88\x85\xed\x48\xdf\x89\x87\xc1\x6d\x79\x12\x4d\x96\xd0\xa6\x42\xa2\x72\xb2\xae\xb7\x07\x98\xc1\x5d\xa6\xcc\x43\x8e\xb1\x02\xb1\x65\x79\x72\x4c\x39\x13\x95\xd2\x08\xf4\x09\xa4\x0f\xb8\x5e\xa0\xec\xf9\xc4\x2b\xfb\x26\x0e\xcd\x31\xac\x5b\x77\xc9\xa1\xdf\x43\xab\x84\x9e\x3f\xcf\xb5\xf0\x8d\x65\xc9\xeb\xaf\x85\x21\xfc\x6f\xf1\x7a\xb8\x18\xb3\x25\x94\xe8\xc7\x92\xd0\xd0\x53\x6e\x8c\xaf\x81\xb1\x7f\x73\x14\x5d\x1c\xdf\x1c\x7f\x7d\xfc\xe6\xd0\x8e\xf5\xeb\x23\x3b\xea\xe4\x4a\x78\xe3\xaf\x04\xff\x26\x8d\x48\xe8\xe4\x52\xb8\x28\x29\x5f\xe3\x41\xd5\x39\x19\x21\x3c\xc0\x1a\x2f\x99\x36\x0e\x10\xc4\x83\x42\x12\x58\xa3\xa7\xd9\x07\x65\xcf\x0f\x5c\x4d\xd2\xb0\xbf\xcc\x54\x2d\xfe\x12\x35\x7f\x26\x4f\xe8\xa8\x28\x3a\x01\x6a\x05\xcf\x5e\xcb\x59\x9e\xad\x4e\xce\x2b\x91\x2f\x0d\x0c\x5a\x23\xa6\xaf\x7a\x27\xc4\x75\x8b\x12\x12\xf7\xe3\x1a\x8e\x46\xb1\x42\x18\x08\xbf\xc0\x3c\x25\x14\xaa\x6c\x5f\x01\x02\x36\x77\x09\x59\x12\xce\x70\xa0\xf7\x25\xe1\x35\xeb\x2a\x07\x7f\x4f\xf5\x2e\x37\xd4\x0d\x86\x66\xee\xaa\x83\x1a\x99\x1e\x93\xc1\x17\x7b\x45\x24\xf9\x30\x42\xb0\x83\xc5\xef\x2e\xa9\xaf\x14\x42\x69\xa0\xc0\x6c\xcb\x21\x6c\xd7\x1e\x22\xa3\xe0\x8b\xc8\x19\xa2\x5a\x2f\x53\x59\xe7\xfd\x8a\x43\xfc\xc2\xbc\x12\xba\x97\x7c\xcd\x43\xb1\x6f\xe1\x17\xe8\x5e\x0f\xd7\x6d\x0d\x82\x66\xac\x58\x89\x17\x29\xcc\x18\xc7\x69\x39\xe7\xfb\x73\x47\xd0\xd5\x60\x63\xd7\xa7\x3d\xda\xe7\x1e\x30\x0c\x5f\x5a\x73\x9a\x7e\x76\x71\x9c\x91\xcf\x01\xab\x7d\x51\xf4\x16\xdc\x15\xde\x81\x4e\xca\x11\xc6\x20\x60\xc4\xa5\xa5\x9d\x50\x00\x4c\xfa\x22\x66\x5d\x8e\xca\x83\x3e\x2f\xb8\x36\x32\x7b\x57\xa8\xec\xee\xda\xa8\x7a\x61\x83\x3a\xdb\x20\x4e\x7e\xb9\x5e\xe8\x2c\x09\x77\x5d\xa7\xff\x2e\x7b\x39\x59\x94\x92\x9d\xfc\x72\xcd\xce\xa4\xbe\x8b\x0b\x31\xf3\x85\x20\x04\xee\x2a\xd8\xbf\xd2\x18\x87\x4a\xea\xb9\xd3\xd7\x4a\x8f\x64\x14\x62\x53\x9e\x9e\xc4\x87\xd1\x5e\xc7\xb8\x45\xfa\x2b\xfe\xa0\x05\x8e\x7e\x64\x47\xaf\x61\x1d\x97\x1e\x01\xfe\xcf\xa6\x16\x76\x16\xdb\x2f\xb3\xeb\xa1\xfb\xda\xba\x37\xda\x0b\x6a\x7f\x67\x67\xdc\x70\x5c\x57\x2c\x52\x4f\x71\x2d\xb0\x76\x76\xcd\x46\xc0\xc2\xe0\x51\xb4\x62\x6b\x66\xf7\x5e\x2e\x8a\xbc\x4f\x9b\x9d\xed\xe1\x69\xb3\xb3\x6f\x2c\x9d\x1d\x3c\x70\xb9\xd1\xcf\x9f\x60\x26\xaa\xe9\x78\xc1\x1a\xd8\x3d\x59\x4a\x54\xd3\xf7\xd7\x9d\xa7\x86\xcd\x53\xde\x60\x7f\x63\xef\xaf\x97\xcc\x05\x15\xd1\x29\xaf\x29\x05\x38\x7f\xa5\x59\x21\xc7\xc2\xc8\xd9\x0a\x62\xcc\x64\x99\x3f\x23\x41\xef\x14\x5e\xef\x3e\x1b\x68\x9e\xce\x06\x47\xe0\x58\x9d\x3f\xc7\xdc\xed\x08\x86\xb1\xd1\x89\x4e\x0f\xf4\xd2\x43\x4b\x12\xb6\x76\xe5\xbd\x67\x73\xfd\x5b\xd1\xc7\xaf\xf4\xab\xfc\xf8\xea\xfc\xe4\xec\xe3\xf9\x60\x96\xaf\x58\x10\xc8\x45\xfb\xc8\x17\x64\x87\xee\x6b\xe2\x7a\xe8\xbe\x2c\xee\x8d\xd6\xca\xf8\x9f\x69\x5f\x41\xd7\xa8\x54\xd5\x14\x28\x3c\x49\x4d\xcb\xb6\x62\x2a\x5a\x6e\x3f\x89\xeb\x8b\xee\xc3\xbf\xbe\x60\x87\xa7\xfe\xfa\xa1\x38\x58\x76\x51\x1a\x51\x8f\x79\x26\x8e\xe2\x69\x89\x6a\x2a\x66\x90\x69\x4d\x1c\xd4\xb3\xf0\x29\x2f\x73\x2a\xfc\x9c\x89\x1a\x00\x6f\x7c\x26\xb9\xfd\x44\x5e\x4b\x40\x6e\x38\x7c\x07\x75\xa6\xd1\xd4\x7f\xb4\xe2\x94\xe6\xea\xa1\x7c\xe0\x75\x7e\x32\xbc\xd8\x7a\x0d\xce\x42\x1f\x9d\xd7\x22\x7a\x27\x9e\xb5\x1b\x0e\x08\x7d\x7c\xa4\x1a\xe3\x15\xe4\xed\xf6\x16\x5c\x31\x67\x72\xfb\x93\x7b\x4e\x1d\x74\x9e\x99\x7b\x21\xa5\x51\x23\x66\x95\xaa\x79\x3d\xa7\xfa\x42\xaa\x9e\xaf\xe5\x42\xcf\xbe\x67\x61\xe2\xb9\x5c\x61\xe9\xf2\xd4\xb5\xfd\xba\xb8\x1e\xba\x2f\x8c\xa7\xe8\x64\x65\x88\xa1\x2d\xa1\x6e\x8f\x8e\xe1\x8f\x00\x92\x36\x3b\x3c\x89\xbd\x58\x84\x09\x8b\xfd\xd0\x12\x66\xf3\x0c\x55\x72\x23\x13\xf1\x85\x02\x19\x5d\xc9\x4d\xc3\xfa\x31\x7e\xb7\xc3\x4a\x1d\x89\xb1\xaa\x83\x69\x46\x1b\x5e\x1b\x4d\x50\xd4\x96\xbb\xfa\x52\xdb\xce\x76\xa3\x11\x89\x5b\xe4\x58\x5b\xc8\xc5\x5d\xc8\xf1\x5b\xc6\x8f\xe2\xfc\x02\x17\x80\x57\x0a\x91\x43\x2f\x32\x32\x01\xd5\x4d\xa9\x7b\x6c\x74\xe4\x26\xa6\xd1\x9e\x58\xcf\x78\x41\xef\xdb\xc9\xdd\x21\xe2\xa7\x02\xcf\x30\x94\x52\xd2\x25\xaf\xf4\x54\x01\x36\x47\xc6\x2b\x9e\x49\x33\xbf\x2d\x19\x63\xa6\xe6\xd9\x1d\x04\x35\xd7\x82\x3e\xd9\xbb\x2d\x33\x1c\x51\x6b\x4d\x5b\x69\x0d\x08\x27\xc7\x7d\xab\xac\xe0\xda\x2d\xc1\xd2\xf7\x3d\xf8\x6b\x3e\x2f\xf9\x4c\x66\x6e\xc6\xe0\xb3\xd4\x52\x51\xca\x0b\xf4\x0b\x83\xe3\xac\x9d\x47\x7c\x5a\x70\x39\x63\x87\x5a\x08\xb6\x94\xba\x40\xe3\x9c\xa9\x1a\x4c\x5a\x89\xc6\x1c\x02\x8c\x09\xd6\x27\xf2\x56\x78\x06\x01\x6a\x1a\x7e\xba\xcc\x97\x7f\xfc\xc8\xef\xdf\xf2\xb1\xa9\x1a\x32\xdf\x5d\xce\x88\x28\x73\x55\xf7\x69\xd9\x32\xcb\xb3\x10\xb4\xc5\x6d\x16\x5a\xbf\xb0\x27\x42\x73\x81\x62\x01\x80\x5b\x82\x38\x3f\x8e\x54\x11\x6d\x45\x96\xb9\xbc\x97\x79\xc3\x0b\x10\xac\xdc\x60\x2c\x57\x87\xd7\xe5\x64\x6a\xfa\x0f\xc2\xfe\x87\x61\x91\x91\x70\x4d\xb8\x8f\x12\xc6\x60\xb8\x09\xec\xd6\xce\x04\x47\x99\xcd\x83\x18\x81\xbd\x90\xcf\x59\x9f\xd9\xf5\x06\x0f\x93\xca\x1a\x0f\x75\xe5\xe6\x48\x5d\xb8\x95\x8f\x57\x1d\x86\x77\xe2\xad\x5a\x8d\x16\x6c\xa4\xa8\x98\x2b\x90\xee\xe2\xd8\xc0\x44\xd7\x4e\xcc\xd3\x0b\x68\x57\x2b\xee\xaa\x71\xb6\x35\xb7\x7a\x7f\xda\x99\x4d\xbd\x3f\x4d\xf9\xd3\x7b\x39\xaa\x05\x3b\x9d\xf2\xb2\x14\xc5\x0b\x28\x54\x2b\xe6\x5a\x88\xc7\x05\x85\xf8\x89\x73\xf6\x5d\x74\x99\xb5\x6f\x9c\xce\x1e\xc0\x26\xc3\x69\x5e\x98\xbe\x3f\xde\x22\x3f\xf6\x4b\x81\xf1\xa9\x80\x70\x23\x32\x4a\xb1\xa8\x8a\x66\xb2\xd2\x31\x3a\xb6\xaa\xe0\x33\xc4\xeb\xf7\xf8\xfe\x13\x66\x0b\xed\x5b\x1b\x4d\x3f\xb6\x25\xec\x35\x1b\x4b\xa1\x15\x11\x52\xb6\xdd\x55\xd7\x11\x41\x90\x7a\xb8\x15\xb2\xc9\x34\x65\xb9\xd2\xec\x33\xc9\x44\xe0\x3c\xcf\xd2\x7d\xbf\x3f\x3d\x4f\x7b\xea\xbc\x38\x0b\x6f\xa6\xcb\xf4\xfd\xe9\xf9\x97\x6a\x5b\x98\x64\x22\x70\x97\xdc\xae\xde\xf2\x45\x96\xe6\x4a\x54\x6a\xfb\xa5\xc5\xf7\xbb\x2f\x28\xb6\x6f\x1d\x2c\x69\xec\x0f\x4a\x4b\x90\x05\x31\x60\x35\xc4\xa3\xd6\x02\x8f\xd5\x80\x9d\x9d\x0f\xaf\xce\x4f\x4f\x6e\xce\xcf\xde\x32\xd7\x13\xd2\x5c\x2d\xa8\x34\xcf\x8d\x0a\xe7\x10\xf5\x21\x52\x31\xc8\x0f\xe6\xbe\xd5\x23\x55\x98\x97\xcc\x4b\xa9\x12\xdd\xbf\xec\xa2\x94\x26\xe8\x26\x04\x98\xa7\x4a\xe1\x82\x9e\x2a\x45\xc7\x7a\x22\x0d\xd5\x2e\x20\x43\xc0\x54\xb4\x7a\x0b\xf9\x90\x21\xe3\x67\xc5\x4e\xa0\x7c\xf7\x0c\x33\xc1\xf7\xae\x87\xee\xbb\xe1\xde\x68\x91\xb5\xff\xf9\x69\xe6\x82\x4e\xba\x35\x11\xe8\xb1\x9f\xef\x26\xed\xda\x7e\x76\xc8\xcd\x74\xeb\x75\xf9\x81\x3a\xe8\xbc\x2c\xee\x85\x74\x55\x7c\xf2\x26\x08\x9b\x56\x58\x55\x75\xa4\xc1\xc4\x8b\xe4\x0e\xb8\xe3\x06\xd8\xaa\x98\xb7\x0f\x7a\x94\x05\xe6\xe2\xd2\x10\xd1\xb8\x28\xe6\x28\x9b\x00\xaa\x34\x26\xcd\x73\x04\x44\xb6\x72\x97\x41\xff\xa7\xbc\x97\x85\xc0\x02\xba\xb2\x9c\x44\xa8\xeb\x2e\x77\x00\x32\x19\xc5\xc2\xb8\xec\x3e\x41\xc1\x15\xfa\x3a\xc5\x20\x5f\x7e\xba\xc1\xda\x4d\x56\x50\x7c\x36\x03\xb2\x1f\xac\xec\xb6\x2d\xdd\x54\xa9\x9f\x63\x69\xb8\xb8\x7e\x8a\xad\x01\x5a\xb7\xcc\x7c\xf8\xdb\x67\xe4\xdd\xab\x8e\x01\x2c\xc4\xa6\x23\xd0\xc1\x03\xf2\xb3\x53\xf9\x4a\x84\x35\xf6\xb0\x0b\x67\x97\xd7\xbf\x7e\x38\x79\x77\xfe\x01\x86\x9c\x26\xa0\x6f\x7b\xd9\xa8\x7b\x7b\x8d\x8b\x87\x63\x82\xa2\xeb\xdb\xfe\xfa\x14\xc2\x79\x0c\x5e\xb7\xe3\xaf\xe0\x3f\x5b\x78\x7b\x9e\xc1\x01\x2f\x9f\x60\x25\xbd\x6c\x99\x48\x4b\x76\xf9\x64\xfb\xe8\x73\xcf\x88\x9d\xeb\xd2\x45\xa8\x96\xa9\x5c\x5b\x2f\xcb\x52\x05\xae\xf3\x42\x6d\x7c\x3b\x65\x93\x51\x61\x4e\xb5\x52\xb1\x8d\x83\x77\x82\x93\x76\xdb\xe5\x0c\xab\xd5\x77\x2b\x1b\x7e\xc2\x5f\x32\xfb\xd9\x55\x8b\x3d\x55\x46\x95\x3b\x92\x35\x87\x4b\x3a\xeb\xbe\xd4\x4b\x5e\x4e\x57\x17\x5b\x9c\x7a\x40\xff\x58\x85\xb4\x52\xde\xd3\x8c\xe1\xab\xb3\xa7\x1f\x54\xfd\x5c\x9d\x6b\x98\x74\xd3\x65\xf6\xc9\x0b\xad\xcb\x97\x9e\x6d\x65\xf3\x5f\x31\xcd\x5a\xfd\x37\x64\x07\x6c\x3f\x43\xd7\x43\xf7\xab\x08\x8a\x45\x42\x38\x51\x51\xd8\x53\xa0\xca\xb8\x12\x01\x42\xa4\xe8\x1e\x99\xf1\x67\xbc\x72\x76\xa6\xc8\x16\xbc\x7c\x36\xbf\x35\x6a\x34\x37\xdb\xef\xd6\x8f\xf8\x7e\xe7\x99\x50\xfb\x74\x97\xdc\x8f\xbb\xf0\x32\xd5\xa3\xed\x37\xe6\xea\xdd\x59\xe7\x89\x5c\xbd\x3b\x4b\x27\x71\xc5\x73\xa5\x19\xf8\x93\xd9\x99\x58\xe1\x01\xdc\x99\x18\x5c\x8f\x36\xba\x97\x74\xc6\x0b\x71\xf1\x69\x7b\xc0\x7a\x7c\xbf\xf3\x8a\x50\xfb\x74\x55\xdc\x8f\x8b\x58\x52\xab\x8e\x62\x8c\xeb\xa2\x72\xb1\x2a\x99\x1a\x69\xfe\x19\x68\xfc\xf6\xf5\xee\x73\x43\x10\xa2\x64\x6a\x0e\x98\x68\x83\x53\xe5\xd9\x12\x31\xcd\x74\xf9\x2a\x60\x5b\xb5\xbd\xec\xb3\x1c\x2b\x6c\xed\x5a\x78\xf0\x99\x7a\x39\x6e\xd8\x6e\x36\xf8\x5e\x57\x53\xe1\x62\x3a\xb6\x9e\xde\xcf\xd4\x0b\xe2\x5b\x3f\xe9\x56\xfd\x39\x1e\x40\xcb\xe1\x72\x0d\x8f\x9e\x7b\xab\xfc\xaf\xd6\xac\xd7\x81\xc0\xd0\x9f\xcf\x0c\x0d\x42\xc6\xb4\x26\x40\xe8\x3e\x6a\x16\xa3\xbd\xb0\x19\xaf\x00\x5e\x09\xb2\x7e\x6b\xfe\xc0\x20\xf6\x84\xe5\x82\xca\xb1\x12\x32\x55\x64\xae\xd8\x18\x0f\x84\xef\x2e\xd3\xd1\x5b\x83\x0a\x0d\x5d\xb0\x56\x05\xff\xc6\xb0\x3d\x57\xc8\x20\xb5\xbc\x60\xc2\x47\xa8\x15\x3b\x12\x30\x05\xd0\xb8\xb6\x08\x67\xeb\xa0\x4a\x95\x1e\x68\x25\x64\x15\x96\x01\x96\x68\x9d\x40\x5b\xa9\x1d\x47\x97\xb5\x71\x83\xa2\xa5\xde\x0d\x21\x01\xb4\xdc\xc6\x40\x33\x68\x95\x92\x91\xfd\xc5\xd3\xd1\xcf\x09\x64\xd8\xd3\xa8\x07\x7a\xea\x40\x3c\x40\x36\x91\xe2\x1a\xe8\x24\xc1\xfa\xa0\xa3\x1c\x32\x8a\xe9\x1c\xbb\x62\xfd\xa5\xf2\x96\x0f\xf6\xea\xed\xab\x2d\x48\x08\x07\x4c\xc5\xba\x52\x34\x8c\x65\xe3\x6e\x37\x6f\x97\x61\x80\xe7\x84\xf5\xef\x2a\x80\xe5\xe8\xcd\x0c\xe2\x86\x8a\xa7\x4b\x29\x44\x14\xc6\xcc\xe7\x8c\xd7\xaa\x29\x5d\x9a\x93\x4f\x54\xff\xd8\xfa\xf0\x25\x21\x55\x23\x0e\x5b\x5a\x05\x63\x24\x0c\xb7\x44\xfc\x66\xf0\xe6\xf5\xcb\x9c\x2a\xf8\x5e\xeb\x54\x05\xb0\x2f\x24\xa0\x97\x03\x66\xfc\x48\xcc\xdc\x36\xef\xbb\x98\x7d\x53\x37\xa2\x87\x3f\x01\x40\x63\x94\x75\x7e\x88\xe8\x8d\xaa\x8e\x71\x23\x8f\x52\x40\x06\x68\xb2\x15\x28\x63\x33\xda\x82\xde\x89\xb0\x81\x30\x02\xb9\x7b\xb2\x78\xa5\xd7\x90\x7e\x3c\xec\xdb\x83\xdb\x03\x76\xe8\x43\x04\x6a\xa5\x4c\xbb\x2c\x7b\xa7\xa2\x4a\x38\x89\xf3\xc7\x6a\x13\x42\xc6\xf9\x63\xc5\xcb\x5c\xe4\xc8\xec\x77\x34\xa3\x77\x62\xca\xef\xad\xca\x24\x67\xb2\xe0\x35\xd6\x5a\xb8\xc6\x31\x41\xb8\xbe\x28\xef\x65\xad\x4a\x48\xbf\xb8\xe7\x35\x26\x26\x78\xe3\x84\x66\xff\xbf\xc3\x9f\x4f\xae\x00\x3b\xeb\xc8\x55\xaa\xc4\x51\x06\x44\x99\x78\x24\x51\x77\x1d\x96\xd3\x8d\xc4\xae\x0e\x9c\x57\x37\x32\xfb\xa5\x59\x63\xb0\xee\xbb\x78\xcc\x8a\x46\xcb\xfb\xce\x74\xbf\xe5\xa5\x11\x38\xec\x6e\xee\x8c\x4b\x95\x8b\x25\x35\xcb\x56\x40\x4e\x46\x8d\x7d\xb4\x49\x5c\x9f\x07\x6e\xf9\x42\xce\xa4\xe5\xe2\xdc\xa0\x2c\x99\x04\x2b\x50\x9e\x9e\x8f\x5e\xb6\x04\xd3\xe1\x62\x89\x16\x67\x4b\x73\x62\x94\x3d\xbe\x5e\x87\x74\x89\x1e\x51\xca\xb1\xd5\xd6\x21\x0b\x68\x61\xae\x2e\xb0\x7f\x26\x76\x5a\x2d\x00\x97\x9b\x6c\x12\xeb\x41\x9a\x42\xa3\x24\x3c\xdc\x5b\x44\x18\x2f\x54\x39\x41\x97\x19\xde\x32\x01\xac\x37\x0a\x20\xd1\x9d\xea\x71\xec\x2a\x34\x32\x9a\xd9\xba\xbd\x88\x63\x61\x42\xd4\x5c\x88\x8b\xcc\xb9\xe1\x54\x6d\x73\x75\x61\xbe\x1d\x87\x02\x3e\x6b\xe8\xd1\x58\xba\x0d\x7e\x27\x1a\xf5\xb3\x86\x4c\x1a\x75\xc7\xd1\x42\x44\xc0\x49\x06\x69\xe7\x37\xea\x4e\x2c\x08\x54\x4f\xad\xcd\x1b\xf7\xf5\xcc\x79\x2c\xf4\xb7\x66\x52\xcf\x3e\xc0\xeb\x55\xdc\x8e\xb0\xdf\x2d\x95\x76\x8f\xf4\x1d\xcd\xa5\x93\x5c\x83\xe6\x0f\x2c\x29\x78\x71\xb6\xa9\x26\x27\x45\xfe\x61\x73\xf6\x0e\xe2\x7b\x3e\xf2\x92\x4f\x10\xe5\xe7\xf0\x7a\xf8\xee\xe3\x91\x25\x16\xf0\x18\x5f\x9c\x31\xae\xb5\xca\x64\x5a\x87\xfe\x3a\xfe\xe6\x96\xa5\xf4\x75\xbb\x8f\xdd\x8e\xbc\xdc\x6e\x54\x48\x85\x5d\xa5\x5d\xf4\xc0\x42\xfa\x37\x5c\xa2\x2d\x5a\xbe\x9f\xe5\x77\xbb\x95\x94\xa2\xe1\x3d\x57\x34\xfa\x05\x42\x11\x45\x3e\x54\xb9\x13\x77\x36\xa0\xec\xdc\x4c\x05\xc3\x00\x46\xc4\x60\x2b\x0a\x67\x02\x41\x5c\x9c\x9c\xad\xe8\xd3\x95\x1a\x03\x57\x3f\x20\x60\x56\xa2\xee\x23\xcc\x2a\x41\x7f\x40\x2f\xf6\x94\x61\x2d\x4e\x7b\x50\xec\xf3\x43\x7d\xb4\x99\x0f\x54\x2b\x67\xc0\x9e\xe8\x00\x4a\xfb\xe9\x22\x41\x0d\x18\x46\x51\xba\xa2\x3d\x80\x13\xd4\x5b\x7a\x68\x52\xd4\x11\x5c\xc8\x15\x26\x48\x7c\xb8\x81\x02\x29\x96\xb4\xfd\xa9\xa8\x38\x72\xfb\x9b\xad\x85\xea\xb5\xb0\x7b\xfb\x6f\x5e\xb7\x75\xe9\x2d\x71\x19\x3a\x52\x33\x4d\xb3\xb7\x7a\x2b\x9f\x4d\xe4\xb2\xcc\xd5\x83\xbe\x16\x59\x53\x63\x85\x29\x23\x1e\x0d\x42\x3b\xaf\xab\xf8\xb6\xf6\x3d\x6f\x8e\xa1\x56\x21\x8a\xd8\x17\x9b\xc4\x62\x81\xbe\x20\xc0\x66\x1a\x9e\xcc\x34\x3f\xf5\x6f\x5c\x57\x62\x21\x5e\xb6\x1d\x0a\xf5\xf1\xfa\x24\x7d\x81\x49\xa8\x55\x4b\xc1\xef\xf6\x39\xe3\xf9\x4c\x62\x51\xa9\x07\x31\x9a\x2a\x75\xc7\x0e\x9d\x23\x60\x22\xcd\xb4\x19\x0d\x32\x35\x8b\x7c\x02\x7d\x2d\x27\xfa\xf8\x81\xa6\x65\xc7\x74\xc4\x64\x59\x48\x17\x4a\x66\x27\x1e\x61\x5c\xe1\x47\xc2\x44\x41\x9d\xa0\xb4\x4e\xba\x39\x17\x87\x09\x36\x94\x6d\x41\x27\x16\x97\xa9\xc3\xcd\xb1\x62\x0c\xad\xf4\xdb\x95\xf3\xc1\x02\x10\xdb\x98\x7a\x9a\xf2\x44\xff\xa4\x45\xdd\x61\x8c\x96\xb7\xba\xa6\x2c\x90\x96\xfd\x78\xdd\xe0\x29\x05\x34\x38\x28\x10\xb9\x68\x79\xa6\xaa\xe5\xa9\xa6\x6f\x9b\x34\xda\x2a\x43\x3e\x39\x40\x96\x4c\xce\xec\x2d\x3a\x13\x86\x83\x64\xd8\x92\x3f\xd8\x47\x3e\x67\xbc\xd0\x0e\x23\xdf\xbe\x31\x54\x79\xeb\x20\x40\x76\x38\x3d\x85\xb8\xf1\xd6\x73\x8c\xd2\x5f\x78\x2d\x41\x50\x8c\xc7\xd4\x7e\xdd\x40\xa1\xdd\x00\x98\xf1\xd2\xf0\x89\xb9\xd4\x99\xba\x17\xf5\x7c\x70\xff\x66\x24\x0c\x7f\x33\x70\x75\x52\xd7\xf0\x08\xd7\xa4\xe5\x9c\x93\xe5\xa4\x10\xac\x50\x13\x40\x84\xb9\x3d\xa0\x62\xc6\x56\xd4\x73\x05\xa9\x09\xab\xbe\x73\x91\x48\x2a\x2a\xbb\x11\x7e\xd0\xb7\x43\x02\x91\xa1\x70\x3d\xa6\xd9\xa4\xc7\xd7\x9b\x53\x39\x78\x09\x8d\xa8\xab\x1a\xf2\x63\x78\x96\xa9\x3a\x86\x7d\x4e\x6f\x91\xb4\x84\x2c\x7d\xd3\x4a\xe2\x0e\x02\xe8\x54\x95\xba\x99\x89\x9a\xcc\xa7\x98\x15\xe4\xe1\xa8\x4c\x48\x32\x08\xe3\x8d\x4c\xe4\x76\xff\x91\xbe\x65\xcd\xd4\x43\x09\x69\x31\x23\x59\x48\x03\x48\x7d\xc1\x2c\xeb\xb8\x30\x37\xac\x10\xdc\x0a\xe8\xa5\x1f\x0e\x58\xd4\x4a\x85\x79\x0f\x90\xb2\xb1\x78\xb7\xed\x14\x37\x31\x79\xb4\xba\x5c\xa5\x5e\xe5\x4f\x5d\x5d\x07\x74\xa3\xf8\xb2\x9a\x78\x4f\x43\xa7\xeb\x64\x99\xf0\xed\x00\x6d\xb1\xc2\x2a\xb1\xb4\xc4\xa4\x27\xb2\xd5\xf1\xb0\x1d\xec\xed\xae\xd9\x52\xda\xf5\xb4\x1a\x17\xf3\x1e\x61\xdd\x6c\x24\xb5\xa4\xc6\xb0\x51\x00\xa7\x26\xcb\x49\x23\xf5\x34\x7a\x00\xa6\x5b\x80\x43\x42\x33\xd1\xa1\x18\x4c\x06\x96\xfa\xce\x2e\xaf\x31\xb0\xeb\xc8\x2a\x86\x85\x01\x20\xef\xb8\x06\xbc\xcc\xa6\x58\x2e\xde\x85\x81\xf9\xf1\x06\x63\x6f\x84\xc9\x33\x6e\xca\x09\x00\xeb\xe0\x17\x66\xae\xcb\x13\x87\x11\x85\xdf\x3c\x0a\x6a\x68\xa1\x1e\x44\x9d\x71\x8d\xa1\x9a\x15\xd7\x1a\x06\x05\x88\x79\xec\xf0\xea\xfd\x29\x7b\xf3\xe6\xeb\x6f\x8e\xb0\x2e\x3c\x26\xf1\x6c\xe1\xf7\x50\x79\x97\x62\x42\xae\x59\x1b\x3f\x33\xbe\x2b\x2f\xad\xf8\x6e\x17\xc1\x17\xc5\x6f\x6d\x18\x59\x41\x1d\xca\x58\x80\xe6\x0b\xcb\x8a\x79\x50\x10\x77\x67\xbb\x4b\x76\x9a\x5e\xc7\xf2\xe5\x91\x18\x9d\xb0\x9f\x4b\x37\x50\x87\x8a\x39\xe1\x5b\x81\x89\x23\xea\xdd\xe7\xaa\x69\xe8\xbf\x86\xa0\xba\xad\x08\xc4\x28\x4c\x81\x60\x62\x40\xcd\x4c\xb6\x22\x5e\xed\xf5\x78\x68\xed\x09\xf1\x1c\xcf\x3a\x2f\x86\xcb\x6f\x9b\xb5\x6b\xd6\x66\x82\xed\x89\x45\xf5\xec\x91\x8f\xf0\x7a\x24\x0d\xe4\xce\xfa\x67\x09\x6b\x59\xa2\x27\x25\x77\x96\x06\x70\xb6\x63\x94\x19\x2a\x2e\xeb\xc0\xfc\x6d\x2f\xe1\x2d\x04\x67\xc3\x9e\x07\x3b\x08\x0a\x46\x18\x38\xe6\x6b\xe5\x5b\xc6\x23\xcb\xac\x68\x72\x01\x41\x09\x88\xb6\xa8\xc6\xec\xcd\x77\xed\x11\xba\xe0\x78\x6c\xad\x11\x8d\x89\x20\x74\xc0\x6f\x10\xa2\xaf\xc7\xaa\x28\xd4\x03\xea\x83\x45\xc1\xee\x4a\x7b\xe1\xdd\x89\xb9\x7e\xcb\xfe\xc2\xd2\xc1\x3b\x7e\xf3\x36\x12\xa2\x52\x34\xff\x94\x83\x22\xa6\xd7\x6d\xc9\x22\xa5\xc0\x2d\xad\x1d\x0d\x55\x71\xa7\xc1\x12\x13\x0b\xae\xce\xe4\xce\xb7\xbd\x04\x70\xbc\xc1\x6d\xf9\x97\x00\xf9\x95\x8e\xf2\x9f\xaa\x5c\x33\x42\x40\x02\xf3\xc3\xb1\xbd\x6e\x3b\xa2\x8e\xc3\xa9\xc5\x44\xaa\x72\xf5\x80\xf0\xf9\x4b\x0c\x29\x75\x57\x87\x8c\x1f\xe0\xee\x2e\x30\x84\x32\x8f\xed\x65\x80\xc0\xbd\x8c\x57\x92\xdd\x8b\x1a\xd0\x78\x57\xf0\xb1\x58\x96\x65\x4f\xd0\xb6\x83\x14\xb9\xad\x56\xdd\x49\xd2\xd8\x2c\x30\x87\xc6\xab\x6a\xa9\x7b\x89\x84\x72\x6b\x03\xaf\xeb\xe0\x44\xe3\xf9\x26\xe7\x3a\xb4\x49\x28\x01\xe2\x76\x22\xa6\x4a\x05\xb2\x2b\x4e\x16\x5b\xab\x89\xc8\x7b\xc1\x4c\xcd\xc7\x63\x99\xf5\x52\x19\xf9\x61\xca\x0d\x60\xe8\x93\x11\xd9\x4a\xa8\xbc\xe4\x13\x67\x85\x09\x1c\xed\x84\x95\xb2\x58\xa0\x44\x5e\xb2\xa6\xc4\xb3\x0f\x65\xdd\x01\xf4\x0d\xac\x61\x19\xd4\xf8\x0f\x52\x0e\x51\xa0\x97\xd6\x71\xd4\xc9\xcb\x8c\x6b\x08\x11\x20\x30\xbe\x4c\xcd\x2a\x6e\x24\x08\xd0\x73\xfb\x40\xab\x52\x63\x10\xc1\xdc\x75\x57\xc2\xe0\xc1\x2a\x6d\xea\xc6\x01\x08\xe2\x75\x8d\x16\x6f\x7f\x65\x6f\x57\xd3\xb1\xbe\xb7\xb7\xc8\xfa\x4d\xa1\x56\x50\xea\xc0\x03\x6a\xc2\xd2\xdb\x91\x8a\x47\xcb\xb4\xc9\xe0\x6a\x1c\x60\x5f\x2d\x26\xbc\xce\x0b\xa8\x53\x45\xa5\x8f\xa2\x41\xe3\x72\xc4\x82\xa1\x93\x4c\x3c\x79\x05\xd9\x8d\xf0\xff\xec\xfc\x31\xde\xd9\x7d\xd8\x51\x84\xcb\xb6\x89\xbe\x00\x6a\x70\x29\x8b\xde\xe2\x0e\xe5\xf6\x4e\x77\x5c\x1e\x7b\xf2\x5f\x7d\xba\x98\x73\x13\xbe\xe9\x0f\x4f\x17\x91\x67\xed\xb6\x44\x13\xd9\xb0\x35\xf1\xa2\x6e\x3a\x35\xc9\xf2\x74\x25\xf7\xd3\x27\x11\xb8\x51\x90\x13\x1f\xc2\xed\xe2\xef\x03\xb0\x67\x3c\x86\xdf\x6f\xad\x77\x6f\x8d\x18\xa6\x75\xe2\x56\x31\x58\xdb\xac\x95\x86\x61\x7f\x69\x3c\x92\x5a\x3a\xe3\x2e\x58\x83\xd5\xb0\x56\x46\x65\x6a\x01\x74\x64\x89\x1d\x0b\xea\x2c\x20\x14\x2a\xab\xe8\x35\x42\x1c\xb4\x6c\x55\xd5\xa9\x4a\x87\x32\x90\xb6\x9b\x5b\xe6\xbc\xce\x63\x01\x98\xd0\xbe\xe7\xa5\xe1\x8f\x03\xf6\x53\xd9\xaf\x6a\x31\x96\x8f\x22\x8f\x0a\x95\xda\x59\xd6\xf7\x94\x7b\x78\x71\x72\x79\x12\x7a\x72\xd9\xdb\xd8\xf8\x90\x6b\x56\x89\x9a\x5d\xbd\x3f\xed\x7f\xf7\xcd\x37\x7f\x85\xab\xd8\x4a\x8a\x6f\x8f\x8f\x1f\x1e\x1e\x06\x92\x97\x7c\xa0\xea\xc9\x31\xe0\xa0\x42\xe8\x8c\x3e\xa6\x2e\xfa\x4e\x39\xbc\x54\x65\xdf\xf7\xef\x66\xe7\xe9\xd6\x6a\x88\xad\x21\xea\x26\x9b\x5a\x9e\x3c\x9b\x03\x2b\x2e\xe7\x60\x73\x9d\xcd\xfb\x59\xa3\x8d\x9a\xf5\x5d\x1f\x2f\x15\xc5\x16\x6b\x6d\x7e\xf9\x4f\x8a\x82\x21\xe4\x07\x60\xd7\xb6\x6c\x3a\x64\xb6\x01\xd0\x63\x4a\xc0\xc3\x2c\x3d\xaa\x8d\x92\xb6\x06\xf1\xc6\x4a\xd2\x14\x04\x98\x68\x30\xb4\x7c\x3d\x57\x07\xc9\xc9\x4b\xde\x40\x49\x2e\xf0\x01\x8c\xe6\xff\xfd\xd7\x00\x3f\x14\x6a\x07\x0a\x09\x8a\x3a\x96\x10\xc4\xe2\x0c\x54\x59\x43\xd5\x5e\x4b\xa6\x84\xc1\xa0\x1a\x5b\xf1\xd9\x85\xad\x24\x66\xa0\xef\xbe\x61\xd9\x94\xd7\x3c\x33\x96\xdb\x14\xca\x72\x88\xbf\x78\x95\x42\x53\x79\x03\xd0\xc5\x19\x2a\xe3\x45\x35\xe5\xa5\x65\x4e\x32\x8b\x5f\x55\x35\x7b\xd5\x7f\xe5\x5f\x06\x9c\x19\x20\x28\x51\x12\x67\x71\x15\x1b\x16\x5e\x0e\x20\xd9\xae\x7e\xd4\x13\xab\xc4\xb4\x72\x9f\x3a\x90\x00\x14\x75\x0c\xd0\xd0\xa9\x50\x72\x41\xa4\xb1\x88\xf2\x89\x24\xe2\xea\xc8\xd6\xc2\x8e\x24\x73\x42\x6c\xc0\xfb\x0c\xa6\xc3\xa5\x76\x3c\xe6\xfd\x23\xee\x9a\xdc\x39\xfa\x77\xd5\x9d\x3b\x5d\x0c\x57\x32\x25\x67\x8a\xf9\xe9\x6c\xd8\x63\x37\xa7\xc3\x9e\xdd\xe5\xeb\xd3\x9b\x61\xb2\x63\x37\xa7\x9d\x4b\x7c\xee\xfe\x06\x40\x86\xbd\xf9\x0a\xc0\xa3\x99\x5a\xa6\x7d\xd9\x91\x78\xfb\xe9\x1e\xf7\xb6\xe9\xc8\x30\x8d\x90\xad\x54\x66\xc2\xb1\x52\x03\xaa\x12\x99\xe1\xbc\x59\x2b\xfd\x2c\xe9\xd0\x3d\x5f\xcf\x26\x14\x04\xf1\xe5\xa8\x68\xa9\xff\x5b\xc9\x12\x45\xec\xaa\x56\x0e\xf6\x9a\x8d\x9b\xa2\x60\x34\xd8\x25\xa2\xe7\x26\x43\x79\x87\xb0\x90\xd8\x6c\x9d\x96\x96\x76\x80\xb0\xce\x92\x9c\xf1\xba\x96\xce\xa1\x25\x75\x3a\x55\xe4\xa4\x2d\x3b\xb6\x15\x4e\x03\x1f\x1d\x45\x36\x43\xdb\x77\x3b\x92\x59\xce\x66\x8d\x81\x60\x4f\x3e\x06\x4c\xe7\x5a\x70\x27\x25\xc6\x06\x02\x37\x1e\xb4\x9e\x03\xc4\x3c\x6a\x4b\xc5\x3c\x04\xac\x58\xbe\x77\x31\xbc\xff\xf6\x2d\xbb\x4a\xd3\xc7\x87\xf7\xdf\xb2\x13\xec\x61\x80\x6d\xbe\x5b\xd2\xe6\xbb\xb8\xcd\xfb\x1f\xcf\x2e\xd3\x36\xec\x7d\x53\x14\x73\xf6\x63\xc3\x0b\x74\xdd\x9c\x41\xc5\x0c\xb6\x65\x04\x08\xaf\xe4\xcf\xa8\xea\x6e\xc6\x30\xa6\x86\x3e\x20\x13\x31\x9c\x6a\x44\xaf\x01\xa8\xeb\x19\xf7\x77\x9c\x27\x7b\x1e\xe9\x90\x48\x94\x03\xb8\x70\x22\x49\x33\x53\xe5\xbd\x00\x71\x29\x53\x93\x52\xfe\xd3\xf7\xe6\x6f\xa8\xc2\x0a\xad\x06\xd9\x5c\xe9\x40\xfe\x7b\xbe\xfe\x4e\x2d\xc0\x46\xd7\x94\x51\x0f\xae\xe8\xd3\x92\x04\xac\x89\x34\x2e\xa5\x2e\x53\xb3\x59\x53\x4a\x33\x3f\x06\xb4\x19\x39\x6a\x8c\xaa\xf5\x71\x2e\xee\x45\x71\xac\xe5\xa4\xcf\xeb\x6c\x2a\x8d\xc8\xac\xe8\x79\xcc\x2b\xd9\x87\xc1\x96\xa0\x3a\x0f\x66\xf9\x57\x3e\x11\xf3\xe9\x6b\xef\x4f\xd5\x86\xa5\x0f\x6c\x02\x4c\x95\xae\xfe\x0f\x49\x05\xd1\xd3\x98\xf0\xa9\x7c\x15\x1d\x82\x95\x86\xb3\xd7\xaf\x5f\xaf\x54\x2c\xb7\xad\x14\xb4\xc6\x93\xb7\x5b\x4f\x0e\x37\x6a\x26\xb3\x67\x43\x50\xf3\xa4\x4e\x58\xa0\x5c\x67\x3a\xb8\x3a\xbf\xbe\x89\x11\x1f\xa4\x37\x0a\x07\xde\x1e\x68\x1a\xd7\x7a\x2c\xe8\x56\xf3\x39\x19\x91\x12\x2b\x58\x56\x48\xf0\xe1\x34\xa3\x99\x34\x08\xb5\x2d\xb4\xc1\xe2\x77\xa7\xbc\xb4\x37\xfd\x48\xb0\xa6\xca\xd1\xf2\x75\x51\xb2\x53\x3e\x13\xc5\x29\xd7\xcb\x53\x0a\x77\x49\xd1\xc0\xdc\xfa\x76\xfd\xb6\xa0\x69\xe7\xd3\xde\x61\x65\x23\xb4\xea\x7f\x14\x86\x6f\xc8\x4c\x24\x85\x00\xf7\xe6\x95\xf6\xfe\xf5\x15\xd6\x79\x10\xac\x36\x90\x08\x0a\x5f\xe9\xe5\xe4\xce\x5f\x29\xcc\x83\xaa\xef\x48\x40\x73\x90\x1e\xa3\x39\xfa\xb6\x82\x3e\xbc\xe4\x54\x82\x28\xb8\x52\xc2\x87\x8c\x1c\xd2\x0c\x7c\x71\x53\x69\x16\xd5\x7e\x2b\x05\xa0\x60\x48\x3c\x39\xc7\xd7\xa8\x0b\xcc\x80\x47\xdd\x00\x9f\x12\x9e\x51\x29\x51\xf3\x70\x6c\x34\xe9\xfb\xf6\x80\x3b\xc5\xe4\xf6\xa0\x33\x17\xa1\x0f\xbf\x34\x03\x19\x46\xf5\xc7\x5f\x8a\x89\x3c\xcd\x94\x0b\x72\xce\x52\xa6\xbe\xc9\xc2\xeb\x7f\x4f\xc6\x06\x48\xfd\x7d\xba\x56\xfb\xc4\xc5\xc2\x67\x13\x62\x9d\x50\xed\x81\x83\xb0\x60\xc8\x04\xd2\xb9\x53\x27\x07\xcb\x0d\x0e\xd0\xe4\xde\xcb\x00\x07\xb4\xe4\x8b\x0b\xf2\x5f\x5b\x4a\xca\x1f\xa4\xee\x62\x30\xf1\x6d\x53\x89\xd9\x9d\x36\x7f\x9e\x80\x16\x3b\x64\x11\xec\x25\x9b\xdf\x4f\xb2\x59\x76\xf0\x17\xca\xd0\x6d\xd8\xd8\x95\x1d\x3d\x8f\x83\x20\xf1\x77\x64\x21\x7b\xc9\xe2\x4f\x2d\x59\x58\x12\xec\x2e\x57\x00\x27\x5a\x26\x53\x74\xbc\x30\x90\x96\xbf\xec\x5b\x01\x78\xf5\xee\x6e\x06\x71\x0f\x14\x7c\xff\x66\x70\x7e\xbf\xbe\xf2\x31\x3c\x77\xa1\x18\x20\x9b\x90\xd7\x11\x7e\xd7\x6a\x26\xd0\x3f\xec\x8c\x5b\x08\x04\x08\x55\x5d\x03\xfa\x5d\x2e\x4a\x05\x06\x4f\x35\x13\xe4\xa7\x48\x2b\xb3\xfa\xa4\x11\x18\x97\xaf\x29\x47\xf1\x00\xb5\x30\x48\xac\x58\x37\x1c\xab\xbb\xc9\xc9\xc4\x9e\x3d\xe0\xc7\x42\x6b\x3e\x11\x78\x10\xc5\xbd\x2a\xee\x05\xf9\x2f\x00\xc0\x05\x7b\x5d\x74\x43\xa1\xd9\xae\xf0\x68\x7f\x46\xce\x5c\x0e\xbc\x9b\x9f\xc7\x99\xbc\x17\x25\xbb\x02\xff\x20\xab\xc5\xb8\x10\x19\xc5\x29\x92\x5d\xd4\xb6\x6d\xca\x5c\xd4\xc5\x1c\x58\x08\x8e\x0e\x4c\x64\xce\xe4\x27\xcb\x46\xe4\x0c\x30\x07\x21\x9c\x45\x8d\xf1\x1b\xbe\xac\x17\x37\xf4\x05\x37\x62\x1d\x79\xe0\xa2\x7a\xe2\x3e\x44\xe4\x5e\xf4\xd8\x48\x68\xd3\x17\xe3\xb1\xaa\x4d\x0f\x2c\x1d\x68\xa8\xe2\x05\xc3\xc3\xb0\xf9\x36\x6e\xa7\x17\x2e\x23\x02\x6c\x84\x31\xd4\xdc\x30\xfa\xf3\xc1\x5e\x96\xfc\x4e\x94\xc7\x63\x2e\x0b\xd8\xa7\x09\x4f\x62\x23\xc3\x0f\xee\x1a\xbe\x30\xe8\x00\x86\xa3\xdf\xaf\x05\xcf\xf9\xa8\x58\x88\x6d\x22\x66\x88\xe6\xdf\xb1\xaa\x59\x29\x1e\xdc\x9a\x40\x51\x41\x03\xee\x2a\x24\x13\x83\xde\xe0\x37\x5f\xff\x5b\x64\x82\xde\x5b\x5c\xfe\x50\x72\x49\x08\x01\x39\x6d\x41\x58\x2c\xdb\x80\x56\x6b\x17\xac\x1e\xc5\x91\x50\xec\xae\xd6\x0d\xdc\xf2\x23\x9e\xdd\x01\xe2\x56\xea\xf0\x87\x83\x47\x31\x6a\xc4\x24\xc0\x08\xb9\x6b\x03\x7c\x18\xd8\x7b\x59\x6b\x73\x23\x67\x42\x1b\x3e\x7b\x72\x1a\xed\x9a\x1b\xd3\xf6\xb9\xf6\xb6\x5c\x35\x86\xdd\x2f\xde\x86\x25\xf8\xc0\x7f\xf7\x15\x48\x86\xf0\xd9\x17\x60\x21\x03\xb4\xd3\xcc\x43\x7d\x0a\xfb\xa5\x0e\x40\x49\xed\x0f\x7e\xa6\x79\xc2\x9d\x06\x7b\xb1\xbb\xad\xfd\x28\xb3\x5a\x6d\xdc\x5f\xff\x65\x5f\xbd\xce\xfe\x9b\xea\x59\x48\x4d\x43\xb7\x97\xd6\xd8\x9e\x00\xa6\x46\xe8\x1a\x77\x97\x52\x28\xab\xb7\xd7\x2e\xfe\xd4\xda\x45\x64\xb7\x5c\xfa\x49\x2b\xab\x6e\x8c\x01\x37\x02\x77\x7a\xda\xcc\x78\xe9\x05\x19\x16\xb5\xf3\x0e\xde\x28\x1f\xc0\xee\x34\x66\x4a\x5b\x31\xef\x23\x7f\x94\x33\x5e\xb0\x42\x94\x13\x33\x0d\x91\xa9\xd8\xf7\x9b\xbb\x77\x18\x1d\x5b\xc8\x51\xcd\x6b\x29\x62\x79\x30\x8e\xbf\xa3\x1c\x12\x8a\x9d\x6f\x2a\xfb\xdb\x77\xdf\xde\xbd\xdb\x0e\x80\x47\x6f\x94\x7f\xb0\x11\x4a\x83\x98\xc8\xd6\x16\x08\xdd\x91\x4a\x17\xe7\x8b\x90\xf2\xbc\x48\xfa\x59\x82\xd9\x83\x00\xec\x83\xbe\x01\xec\xc9\x85\xae\x7b\xb6\x64\x69\x69\xa4\x1a\xd3\x8e\x6e\x94\x50\x7c\xb6\x64\x9f\x3c\x7f\x50\xb5\x71\xfd\x11\x6a\xac\x77\x4f\xeb\x1e\x83\x84\x8a\x2b\x01\x31\x46\xd7\xc2\x9c\x2e\x6b\x15\x3d\xd7\x84\x3f\x25\x35\x29\x3c\x60\xd7\xc6\x12\xf9\x23\x91\xf1\x46\x43\x55\x5c\x9e\x19\xed\xeb\x19\xa3\xe6\x86\xc1\x31\x51\x57\x4e\xa2\x5d\xb5\xec\x56\x6e\xdd\x1e\xbd\xe5\x69\x8b\x0e\xdf\x72\xd7\x00\xe6\x9d\xf2\x82\x69\x91\xa9\x32\xe7\xf5\xdc\xad\xbf\x2f\xfe\x62\x2f\xbc\x42\x3c\x12\x1d\xeb\x01\x3b\xb7\xcb\x08\x57\x47\x5b\x85\x89\x34\x4f\xef\x8d\x06\xec\x78\x51\x08\x77\xea\xdd\x00\x36\xac\x08\x6d\x65\xd8\xa3\x8d\xe7\x6e\xe1\x8d\x65\x79\x9a\x11\x65\x80\x52\xe9\xf6\x33\x50\x1b\x91\xc9\x3f\xd2\x70\x70\xc2\x45\xfc\xc7\x13\x8e\xe9\x56\xe7\x8f\x26\x71\x51\x6a\xc3\xcb\x45\x41\x68\xd5\xa4\x5d\x7b\x37\xe5\x8b\xb3\x25\x13\x96\xd4\x28\x9e\x61\x21\x4c\xff\x71\xfe\xcf\xf1\x53\x26\xf6\x72\xfc\x47\x8b\x7a\x31\xa9\x64\xf3\x39\x68\x19\x6c\xae\xb1\x97\x75\xa7\x00\x3f\x04\x4e\x26\x6e\x78\x94\xa7\x86\x0c\x87\x1e\x47\x47\x3f\xb2\xee\xdb\xb5\x90\x05\x96\x98\x7f\x15\x12\x37\x8d\x2a\xf1\xed\x55\x69\x35\x9b\x43\x4b\x20\x80\xa4\x55\x5d\x38\x1a\xc3\xe1\x25\x54\x05\xeb\xb1\x5f\x78\x5d\xca\x72\x72\xd4\x83\x4d\xc1\xb0\x8e\xcc\x5d\x7e\x08\x93\x40\xa6\x23\xcc\x0d\xd8\x81\x65\x61\xd7\x25\xbd\x9d\xe0\xb2\x54\x38\xfe\x8c\xd6\x46\x22\x9d\xb5\xa6\x46\x30\x02\xae\x36\x2f\x6e\x6f\x59\xdc\xe4\x63\x72\x6d\xd2\x08\x0a\x24\x51\x8a\x94\xea\x56\xee\x7b\x6f\xba\xf9\x82\x5d\x4a\xd0\x26\xdd\x62\xb7\xd0\xed\x3d\x5e\xd9\xe7\x16\x5c\x72\xef\x4d\xda\xeb\x7b\xcf\xf4\x26\xbd\xf4\x5a\xf9\xe9\x7e\xf9\x5e\xab\xae\xf7\xc8\x06\x57\xd5\xf6\x77\xc9\x75\x5b\x74\x5a\x7a\x9b\x60\x2b\x0f\x80\xd0\xaa\xa6\x49\x62\x8f\x77\xbe\xf4\x98\x1c\x88\x01\xd6\x5c\x72\xb5\x23\xf5\x31\x94\x6b\xad\x2a\x51\x3a\x4d\x4b\x96\x8d\x6a\x74\x81\x22\x03\x68\x41\xe8\x5a\xfa\x41\x3d\x30\x35\x36\xa2\x04\x20\x14\x38\x6d\x41\xc6\xba\xf6\x12\x18\xea\xe4\x70\x88\x9d\xa8\xa5\x6a\x10\x20\x21\x8e\x35\xa7\xf8\xe9\xf4\xa1\x15\x70\x6e\x0f\x1c\xa1\xc1\x79\xef\x4f\xd4\xb1\x51\xaa\xd0\xc7\x38\x7a\xfc\xcf\xaf\xa3\x5a\xf1\x3c\xe3\xe0\x78\x9b\xa8\xdb\x03\x7b\x23\x3d\x20\x1e\x31\x46\x38\x99\xba\xc9\x0c\x0e\x24\xe7\x04\x83\x3e\x15\xbc\x36\x23\xc1\x49\xd8\xb5\x92\xee\xa4\x91\xb9\x60\x98\x7a\x01\xb7\x4f\x18\x8a\x53\x1e\xb9\x49\x93\x2f\xd7\x60\x45\x6e\xb6\xe3\x67\xb1\xf5\x3e\x04\xe0\xab\x0c\x83\x77\xb3\x38\x66\x18\xd7\x32\x2c\x64\xc1\xb5\x09\x73\xa0\xea\x9a\x3b\xb6\xdb\xdb\x6f\x7c\x22\x2b\xe1\xef\x62\xd2\x6c\x0f\x60\xd1\xb2\x09\xcb\x80\xe2\x92\xbf\x28\x68\xad\x1e\xb8\x5d\x36\x51\xba\xaa\xbf\xe9\x8a\x6d\xe1\x27\xc7\x2d\x5d\xb7\x3e\x9b\xb8\xd1\xc6\x83\x4e\x21\x21\x7b\x9f\xf4\xde\x27\xfd\xa5\xf9\xa4\xf7\xde\xe6\x3f\x8d\xca\xb2\xf7\x36\xef\xbd\xcd\x7b\x6f\xf3\xde\xdb\xbc\xf7\x36\xef\xad\x0f\x7b\x6f\xf3\xbf\x88\xb7\x79\xef\x47\xde\xfb\x91\xf7\x7e\xe4\xbd\x1f\x79\xef\x47\x6e\x5b\x5a\xf6\xce\xe4\xae\xce\xe4\xbd\x87\x38\x7a\xb4\x9b\x04\x94\x88\x0e\xf7\xbe\xe2\x3f\xbb\xe1\xe5\x8b\xf4\x15\xc7\x36\xe7\xa8\x8f\xbd\xc3\xf8\x5f\x56\x65\xdb\x3b\x8c\xbf\x24\x87\xf1\x2e\xae\x96\x2f\xcf\x75\xbc\xf7\xa0\xee\x3d\xa8\xbb\xf4\xa0\x3e\x1a\x51\x22\x30\xb2\x23\xfc\x1f\x6e\x6e\x86\x17\xe5\xa4\x16\x5a\xb7\x4a\x76\xb5\x17\xa9\xd5\x32\x00\x8f\xdb\x9b\xca\xd7\x79\x65\x9c\x51\xb9\x0e\x7b\x3d\x64\x0a\x1c\x93\x4d\x5d\xe8\xb4\xaa\x52\xe5\x2a\xa3\x8e\x55\xfd\xc0\xeb\x3c\xe0\x79\xbb\xb7\x37\x93\x3e\xb5\x7c\xba\x76\xb3\xb8\x0a\x34\xaf\x77\xd4\xe3\x3a\x5a\xa1\x36\x89\xb4\xe7\xe1\xe7\x03\x5e\x66\xb8\x56\x55\x54\xe8\x96\xc0\x8f\xff\x3f\xf6\xfe\xbe\xb9\x6d\x24\xc9\x17\x85\xff\x7f\x3e\x45\x85\x36\x9e\x90\xd5\x41\x51\x76\x77\xef\xdc\x19\x4f\x6c\x6c\xa8\x6d\xf7\x8c\xee\xba\xdd\x3a\x92\xbb\x27\xce\x1d\x4e\xac\x8a\x40\x91\xac\x35\x88\xe2\xa0\x00\xc9\x9c\x1b\xe7\xbb\xdf\xa8\xcc\xac\x37\x00\x24\x40\x8a\x92\x65\x19\x27\xe2\xcc\xb6\xa9\xaa\x42\xbd\xe6\x7b\xfe\xd2\xa1\x57\x87\xab\xdf\x84\x73\xd3\xb3\x90\x9a\xd4\xae\x86\x18\x9f\x73\xa3\x9a\xfa\x8d\x46\x29\x53\xda\xe3\x20\xb6\x3e\x66\x6f\x1c\xfc\x19\x69\x9f\x96\xa8\x05\x28\x8d\xa9\xd4\x3c\xcb\xd4\x5d\x58\xa0\xda\x73\x1b\xa8\xcf\x62\xbe\x31\x39\x62\x2b\x4e\x3e\x76\xf6\xdb\xd5\x7b\xc6\x3d\x6e\xcd\x74\xcd\xae\x7e\x7e\xc3\x7e\xf8\xd3\x1f\xff\x30\x66\x66\xb2\xda\xe2\xba\xcd\x65\x6e\x6f\xcd\xf1\xd9\x31\x01\xdf\x04\xc5\x74\x46\x50\x22\x6d\x05\x5d\xe0\xeb\xf5\x35\x20\x8c\x1b\x2d\x7c\x1f\xf0\x47\x5e\x2e\x7a\x60\xdd\x5d\x52\xb3\xb0\x90\xb7\xd9\x08\x07\xdc\xc8\x43\xeb\x2a\x9c\x87\xbd\xee\xb8\x62\xe8\x4c\xe0\xb9\x2a\x77\xd6\x13\x8f\x4d\x87\x62\xf9\x6b\xf6\x1d\x7b\xf7\x99\x27\xe5\x6b\xf6\x0b\xac\x09\x3f\x63\xf6\x13\x0e\x52\x98\xbf\x65\xeb\x31\xfb\x8e\x5d\x02\x46\xaa\x6f\x37\x85\x6a\x7e\x2a\xa7\xed\x87\xe6\x88\xa3\xca\xf4\x2a\x93\xa5\x39\x05\xd8\xe3\x5f\xec\x3b\x94\x7a\x92\x33\x96\xc2\x74\x72\xfb\x86\x05\x61\x18\x4e\xd7\xfe\x3f\xb9\x96\x1a\xaa\xb4\x85\x0d\xe0\xce\x6b\xa2\x94\x66\x20\x2b\x87\x13\xec\xbf\x2d\x8f\x6f\xfa\xb8\x09\x98\x5f\x8e\xcf\x8e\x99\x16\x2b\x5e\xf0\x52\x15\x66\x58\x3a\x4a\x10\x79\xcd\x40\x08\x0e\x3f\x03\x70\x52\xb3\x08\x26\x81\x99\x16\x6b\x06\x8e\x31\x9e\xdb\x39\x9c\x42\xdd\x6e\x5a\xa4\x9a\xb1\x15\x6d\xab\x19\xc4\x0e\x6a\x86\x18\xb3\x0f\x0a\x42\xae\x78\x09\x35\xc0\x2d\x5b\xb3\x4b\xa1\xc3\x58\xd1\x33\x42\x9c\x47\xb8\x34\x66\x24\xd5\xd2\x43\xe6\xd1\x07\x46\x04\xa8\x6d\xe4\x63\x4e\xf3\xc7\xaa\x25\x67\x33\xa5\xce\xa6\xbc\x70\xeb\x12\xda\xfd\x76\x36\xe5\xff\x42\x6b\x7a\xaa\x04\x76\xc6\xae\xb6\xc1\x94\xff\xeb\x04\xa0\xf9\x2f\xa2\xc0\xaa\x6b\xc2\x02\x7d\xcd\x2e\xba\xaf\x9f\x0b\x2c\x33\x33\x00\x4b\x16\x92\xba\x37\x19\xd7\x7a\x5c\x1b\x19\x2b\x8e\x40\xc4\x06\x8a\x03\x1c\x76\x03\x0f\x4b\xb8\x8b\x0c\xbb\x52\x50\x3b\x59\x7a\xb0\x71\x2c\xc9\x7d\x49\x07\x52\xe0\x55\xc6\x7d\x05\xe9\x7d\x3c\xc9\xeb\x1f\x44\xf8\x61\xaa\xa5\x5c\x2a\x8b\xc3\xe8\xde\x3d\x75\x8c\xaa\x72\xb5\x6f\xc7\x81\xed\x2e\x96\xbb\x3c\x0c\xaf\xbd\xaa\x32\xf1\xbb\x79\xf2\xfd\x18\xae\x6b\x1e\xab\xbc\x46\x75\x20\x84\x50\x55\x68\x06\x0c\x87\x82\x58\x68\xfa\x1a\x94\x34\xd0\xf3\x3e\x73\xb3\x6d\xaf\x2d\x5c\xf3\xa4\x7a\xf9\xf2\x87\x64\xa1\x74\x09\xff\x25\xe8\x07\xa0\xe5\xf0\xc3\x7f\xe2\x0f\x5a\x18\x65\xc3\xd0\x76\xfc\x99\x9d\xd2\xff\xa5\x2f\x50\xe5\x07\xfc\x5f\xd3\xcc\x01\xc9\x57\x45\x16\xc0\x15\x9b\x49\x59\x2e\x30\xb2\xb6\x10\xd2\x5d\x2d\x3b\xb4\x85\x6e\xf0\x19\x58\x36\x06\x6f\x1f\x05\x68\xc4\xf7\x74\xcf\xd1\x90\x12\x9e\xa7\x56\xf2\x02\x8a\x0a\x7e\xd4\xe3\xff\x3c\x06\x78\xe1\x7f\x3b\xee\x21\x47\x00\x7b\xe9\x32\xf3\xb0\x44\x65\x19\x15\xd0\x36\xa4\x06\x58\x12\x55\xd2\x5e\x85\x8a\xb2\xdf\xf9\x03\x59\x20\xba\x65\xb6\x9d\xed\x11\x3d\x9f\x00\x6e\xcc\x01\x1f\x00\x4d\x7a\xcb\x9d\xa7\x16\x78\xcd\xe3\x2d\x2f\xaa\xcc\x62\xe7\x81\x40\xc2\x64\x3e\x55\x55\x0e\x66\xb2\x1c\x9b\x69\xaa\x76\x90\x2c\x6a\x00\xbd\x81\x24\x12\xc8\xa7\xe7\xb9\xa5\x86\x96\x35\x63\xcd\xf0\x8a\x68\xd1\x5c\xde\xba\x82\xd0\x9a\x99\xf5\x14\xb9\x21\x72\xa7\xf0\x09\xf0\xad\x1a\xc9\x76\xc4\x32\xc5\x53\x36\xe5\x19\x78\x0c\x5c\x81\x0b\x8b\xa1\x2f\xd8\xf5\xf5\xfb\x11\x53\xb3\x99\x28\xd0\x77\x82\xbc\xfa\x16\xab\x3e\xbb\x0a\x50\xa2\x4c\xc6\xec\xed\xbb\xcb\xab\x77\x6f\xce\x3f\xbe\x7b\xcb\x4e\xd1\x83\x00\x9a\xb2\x35\x28\x9a\x8d\x08\xf6\x28\x08\x9c\x98\xae\x2d\xa4\xa1\x11\x3a\xc8\x90\x40\x1b\x6f\xbb\x8c\xd9\xb5\x10\x24\xb1\x66\x82\x6b\x74\xec\x6a\xef\x9a\x0a\x94\xd9\xc1\x48\xfa\xa4\x8d\xa4\x83\x1d\xf1\xb9\xd8\x11\xef\x0f\x90\xfa\x05\xac\x89\xa1\x8f\xb1\xa5\xd2\xee\x3d\x74\x70\x28\xdc\xbb\x75\x23\xa8\x50\x2f\x06\x8e\x69\x10\x1c\x5d\x9d\x9a\x40\xc2\x7d\xf0\x6d\x31\x0b\x3f\xe5\x79\x7a\x8a\xd1\x34\x9b\x6a\xb4\xc3\xdf\x0e\xb8\x3f\x38\x60\xc7\x55\x29\x2b\xab\x9a\x45\x15\x27\x9f\xd0\x1e\x35\x64\x90\x07\x34\x31\xbb\xcd\x6c\xb7\x2f\x5b\xb1\xe4\x80\xd6\xe5\x4e\x13\x53\xa7\x08\xe4\xed\x4c\xe6\xaf\x53\xa1\x41\x25\x0a\xea\x70\xb6\x54\x16\x80\xb2\x97\xaa\xe8\x57\xe4\x4b\xdf\x2f\xe6\xd3\x28\x82\xe9\x7b\x95\xf0\x6c\x97\x68\x99\x2b\xcb\x66\x64\x10\x68\x74\x25\x66\x50\xb7\x31\xc7\x8a\xa2\x41\xed\x13\xc7\x95\xc8\x9a\x00\xf5\x60\x56\x3c\xa9\xdf\x63\x1f\xa5\x3f\x0b\xfa\xe8\xb0\x10\x07\xed\x11\x94\x45\x31\xfb\x44\xff\xbe\x74\x58\xce\xc4\x94\x7c\x21\xe7\x2d\xa5\xb8\x92\x3e\x25\x40\xaf\x23\xdc\xe9\x30\x68\xa6\x69\x2f\xdc\x2f\xb6\xc3\x2e\xe0\x7e\xdc\xa8\x2a\x65\x36\x36\x77\xaa\x2c\xc6\x17\x79\xf9\x6b\x71\x8d\x5f\xed\x22\xc2\x7e\x6d\x36\xbb\x66\xd3\xda\xfa\xbf\xfa\xdd\x1f\x54\x47\x3c\x40\xd0\xaa\x4d\xa9\xb0\x74\x70\x10\x76\x9f\xb2\xb0\xdb\x27\x22\xe0\xc2\x46\x04\x84\x20\xef\x8d\xe3\xdd\x38\xdc\xfd\x98\xf2\x10\x12\x30\x88\xf2\x3b\x87\x04\x3c\x09\x41\xbe\xa7\x29\xe8\xf1\xc3\x02\xfa\xc9\x6c\x87\x8e\x0a\xd8\xf8\xc2\xaf\xaa\x6c\x9b\xad\x36\x68\x55\xaf\xc8\x8a\x76\xab\x25\x5f\xad\x42\xe7\xa7\xc6\xac\x4b\xf3\xa2\xad\xc0\x01\x86\x20\x9f\x80\x88\x51\xbd\xd6\xca\x6a\xcd\x50\x81\x57\x35\x72\x81\xa1\xdd\x53\x18\xba\x80\x79\x34\x20\x1e\xc2\x88\x60\x4d\x1d\x99\x51\x73\x56\xa8\xaa\x6c\xf8\x5a\x5b\x6b\x48\x3b\x07\x42\xdd\x04\xdd\x83\x57\x9a\xcf\x76\x50\xb4\xbf\x2a\xed\x42\x12\x66\x50\x13\xe9\x9f\xae\x26\x52\x8a\x35\x91\xac\xc4\xc4\x5d\xad\x0e\x33\xee\x68\xa3\x67\x91\x9c\x3c\xa1\x57\x2d\x15\xb7\x92\x1c\x0d\x8e\xba\x4d\x60\x7a\x81\xbf\x12\x3d\x6c\x17\xe1\xb8\x32\x77\xe3\xbe\x66\xaf\xc6\xec\xe2\xd2\xd7\x70\x23\x6f\x68\xe8\x3d\xe5\x79\x63\x97\xc0\xa2\xa8\x72\xf3\xc7\xd5\x0a\xfc\x22\x93\x9c\x91\x07\xe6\xd2\x8a\xb3\xa0\xca\x3a\xef\x13\x68\x69\x96\x63\x4d\xf2\xef\x31\xed\xff\xe6\xf5\x0d\x4b\x05\x26\x14\x17\xd6\xc9\x54\x08\x73\x6b\xc2\xb8\xf9\xb8\xce\x9c\x9d\xe3\x24\x9f\x94\x2c\x98\x68\x28\xac\xf9\x49\x63\x0d\xad\x55\x26\x13\x69\x1a\xbd\xfe\xe3\x4b\xb8\x3e\xe0\x5d\xe0\x79\x8a\x83\xbc\xfe\xf1\xc7\x1f\xdc\xcf\x66\x7e\x3f\x29\xbc\x29\x1a\x4b\x8b\xc4\x69\xd1\x2e\x44\x76\x9b\xbf\x36\x72\x54\xc3\x55\x0d\x0c\xf9\x8d\x6b\x67\x4b\x27\x2e\xe8\xe6\x44\x6e\xe2\x50\x17\x80\x3b\x8e\xea\x92\xf5\xb7\x3b\xe7\x68\xb9\x08\x24\xfc\xe6\x37\x26\xf9\x24\xff\x2b\xe6\x43\xe4\x58\xcd\x77\x55\x88\x44\x6a\x31\x39\x22\x2f\x3e\x30\xe1\xf0\x82\x9a\x07\x63\xe3\x9c\xc3\x2a\xaf\xa9\x2a\x9b\x97\x97\xbc\x82\x93\xa3\x99\x52\xe3\x29\x2f\xc6\x89\x5a\x4e\x8e\x4e\x98\x2a\xd8\xe4\xe8\x4e\x66\x69\xc2\x8b\x74\x72\x34\xda\xf4\x31\x57\x18\x93\x9c\xe6\x18\x24\xcd\x6c\x4f\x2a\xf6\x69\x3f\xf2\xdd\xd8\x7c\x06\x3f\x81\x97\xc9\x35\x74\x0e\x7e\x76\xfc\xdd\x31\xea\x3f\x7c\xb5\x12\xbc\x30\x4f\x4a\x96\x5a\x64\x33\xf3\x1e\xbc\x47\xe5\xed\x87\x6b\x1a\x1d\x45\x49\x74\x65\xe2\x05\xb7\xd3\xc0\xc2\xdd\xec\x7f\xab\xca\x06\xbc\x53\x3a\x7c\x6d\x7e\xfe\x13\x38\x53\xd8\xf1\xff\xf8\x0f\x33\x63\x98\xe9\x95\xbd\x2b\xd6\x2f\xd4\x76\x5f\xa0\x13\x95\x80\xcb\x6b\xcf\xfe\x8e\xaf\xf1\xd9\xce\x98\xa5\x33\x74\x8e\x23\x22\xae\xe8\xbb\x5d\x3a\x1f\xbb\x91\xc3\x0d\xed\x26\xf7\x30\x5c\x7d\x38\xb0\x85\xe0\x29\xbe\x3b\x61\x08\x94\xa1\x9c\x66\xc8\x31\xfb\x3e\x1a\xde\xaf\x91\x08\xed\xde\x9f\x29\x95\xff\x12\xdc\xd6\x6a\x36\x93\x9f\xd9\x0b\x28\x74\x6e\x39\x08\x9e\x09\xec\xe6\x89\x25\x20\x6e\x93\xcd\x17\xf6\xd0\x27\xcd\x64\x0e\x61\xa7\x6a\xf5\x72\x3e\xa4\x06\x78\x1d\x1b\x20\x37\xb0\x66\xa0\xb5\xde\x98\x12\x12\x0c\x70\x56\x6a\x51\xb0\x3b\xa9\xe1\x9c\x14\xa2\x1d\x3c\xd9\x18\xa4\x73\x07\x06\x63\x39\x78\xc2\x57\xe0\x8f\x52\x33\x92\x14\x22\x9a\x0b\x4e\xb3\x54\xe5\xc7\x36\xc2\x80\xe7\x6b\xbc\x26\xec\xbc\x64\x99\xe0\x46\x5b\xc2\xa8\x94\x63\x1a\x11\xfd\xa7\x20\xbb\x1c\xbb\x2a\x8c\xde\x36\x52\xab\xc0\xe8\xb2\x9e\x4a\x45\xce\x39\xd0\xc2\x14\x4f\xc9\x2b\x56\x84\x79\x33\x90\xc0\x04\xf3\x37\xb3\xcc\xd4\x5c\x26\xe0\xfa\x87\xd1\x0d\x3d\x99\x67\x6a\xca\x33\xdb\x68\x83\x21\x46\x06\x81\x0c\x3d\xac\x31\x17\xb5\xe6\x6d\xc9\x4c\x61\x1b\x0b\x08\xe2\xd4\x29\xa4\xa0\x81\xa8\x14\xb5\xb6\xaa\x3e\x12\xee\x60\xb1\x40\xc3\x7c\x6d\x50\xa4\x0b\x7e\x44\x34\x00\x64\x3c\x11\x8d\x54\xe8\x5a\xc6\x14\xad\x77\x9c\x98\xef\xdd\x30\x20\xb0\x94\xb4\xf9\xb3\x2a\x5c\xa6\xb4\x8e\x53\xa5\x47\x36\xdb\x98\x97\x41\x17\xaa\xfe\x0e\x71\x2b\xf6\x70\xd1\x94\x68\xbe\x2e\x52\xc4\xf9\xb8\x75\x9a\xa1\x39\x67\x5c\x7f\xb0\x32\xc0\x2c\x59\xca\xd2\x10\x3f\xcc\x9d\xb1\x74\x8d\x92\xb8\x8d\x64\xe9\x3f\x09\xbc\x20\x95\x33\x30\x0f\x95\xce\xea\x50\x0f\x08\xb1\x66\x91\xf3\xcb\x0b\x57\xca\x7c\x9e\x1b\xa9\x80\xf6\x5b\x68\xc7\x73\x39\x83\xcd\x08\xef\xa5\xf7\xe9\xe2\xb9\x38\x65\xd8\xd6\x5b\xe5\xc5\x27\x44\x23\xa1\xdb\x65\x79\x2d\x71\x7c\x1b\x82\xa0\x85\x19\xde\x3e\x33\x54\xb7\x5d\xad\x5b\xda\x8f\x9f\x5b\xdc\xa6\x23\x34\x80\x59\xea\x1d\xdf\x11\x95\x54\x6e\xa5\xfb\x64\xb3\x99\xd7\xd8\x19\xa8\xe0\x82\x43\x0c\x5f\x41\xe5\xc3\x2e\xca\xb9\xb7\x63\x1f\xc0\xc5\x2c\x16\xa6\x54\xc1\x72\x85\x8c\x8a\x58\xd7\x28\x92\xa6\xe0\xf2\xe4\x4e\x55\xa9\xd1\xa2\x07\x37\xb6\x80\x2a\x76\x1f\x83\x4b\x99\x75\xed\xe2\xc7\xf7\xd7\x6e\xb3\xe8\x8d\xc5\x42\xb4\xb3\x3b\xe7\xbe\x76\xac\xcf\x5a\x63\xa6\xff\x0a\x90\x6d\x7e\xfc\xf1\x07\xd8\x60\x57\xe7\x77\x29\x96\x53\xa8\x7e\x4d\xf7\x1c\x8e\xcb\x92\x3e\xff\x3c\xcc\xe9\x69\x90\x25\xd6\x5e\x0c\xa2\x31\x3e\x07\xb2\x2c\x48\x85\x10\x30\x95\x24\x2a\x82\xb0\x31\x23\x00\x71\xf3\xf2\x6e\xb9\x28\x54\x35\x47\xfd\xee\xfa\xc3\x05\x4c\xd3\xed\xf3\xc8\xbe\x5e\x69\x63\x22\xfc\x53\x9f\x55\xd9\x4c\x66\x99\x15\x3f\x6c\x0b\xb7\xf0\xeb\x0f\x17\x0f\x7e\xec\x1f\xdf\x5f\x1f\x20\xd2\xe5\xfe\xd2\x46\xdd\xa1\xb7\x49\xde\x40\x27\x9c\x95\x38\xba\x5d\x71\xdd\xc2\x86\xe1\xa7\x3f\x11\x3f\xdd\xdb\x6f\xf3\x3e\x18\xa4\x87\x2f\x31\x6c\x1e\xa7\x95\x87\x8b\xa9\x5c\xd0\x97\x99\xe3\xa9\x65\xfa\x0f\x6b\xf9\x37\x17\xa2\xf3\x18\xcc\x15\x8f\xa5\xbe\xb2\xe0\xb9\x86\x27\x93\xf1\xb5\x28\x98\x16\x49\x55\xc8\x72\xdd\xb0\x82\x78\x05\xb9\xa7\xc9\xa3\x8b\xaa\x18\x65\x01\x15\x60\x1e\x51\x69\x6d\xeb\x72\x3a\x55\x06\xe8\x8f\xf9\xcc\x0c\xca\x7a\x22\xeb\x25\x30\x05\x9b\xaa\x81\x19\x45\x95\xd5\x2f\x9c\x30\x73\x46\xf4\x9e\x86\x2a\x33\x7d\x2d\x92\x42\x94\x71\x0c\x65\xa4\x31\x00\xab\xd0\xa2\x04\x79\x6c\x46\xd0\x5f\x9b\xa4\xb7\x88\x16\x48\x6d\xf7\x08\xc8\x47\x26\x66\x65\xc8\x4b\xfa\x11\x85\x4d\xbc\x6f\x0f\xd2\xae\x61\xa9\x7d\x9c\x73\xae\x61\x9b\x20\x88\xc3\x38\xbe\x19\x45\x72\x39\x36\xa8\x72\xa4\xee\x3f\x5b\x29\x18\x56\xdf\x14\x85\x4d\x9f\x42\x55\x25\xe2\xd9\x90\x21\xc2\x90\x5f\x47\xa1\x79\xa6\x72\x6f\xe0\xb0\x7f\x42\xcc\x83\x0c\x60\xd7\xf0\x08\x66\x99\x4c\x3c\xec\x9a\x60\x13\xb8\x52\x93\x23\xab\x3e\xa2\xdc\x55\x51\x21\xdb\xd8\x2a\x35\xaa\x8d\x4d\xb7\x04\x4e\xdb\x9a\x2d\x54\x0e\x42\x1b\x4a\x3b\xb4\x15\x7f\x8d\xd5\x53\xd7\x89\x56\xf4\xd0\x75\xfc\x67\x99\xba\xa3\xcb\xe7\xde\xff\xcf\x99\xba\x7b\x2b\x21\x68\xae\x32\x1a\x5b\xf1\x8b\x28\x17\x6a\x9b\x4f\x7d\x43\x8f\x5a\x69\xe0\x25\xfe\x08\x56\x1b\xf3\x5d\x96\x86\x5d\x7a\x10\x81\x1e\xd9\xe8\x37\xa6\xcd\x4d\x3d\x1f\xbd\xf9\x35\x3b\x99\x8f\x60\x02\xa0\xda\xf4\x41\xe5\xfa\xc9\xd1\x4f\xeb\xdf\xb4\x28\x26\x47\x70\x64\xe6\x9f\x1f\xac\x73\x7c\x72\x84\x36\x14\x44\x0e\x3a\x68\x54\x34\xf4\xef\x72\x03\xec\x7a\x96\xd7\xe0\xc2\xec\x38\x3e\x6c\x14\xb9\x54\xbd\x23\x95\x53\x94\x24\x6d\xa5\x0e\x23\xfe\xe9\x2c\x21\x3f\x26\x15\x0c\x5b\x71\x10\xf0\xd5\xcc\x05\x91\x1a\x75\xa3\xf0\x76\xa7\x72\xc1\xb4\x5c\xca\x8c\x17\x8c\x97\xe8\x6a\x11\x84\xd3\xa0\x29\xde\x1d\x24\x2a\x08\x28\x5d\x71\x09\x09\x75\xb8\xa9\xfa\x75\x83\x9c\x04\xf3\x07\xa5\x88\x4d\x8e\x9a\x27\x3e\x39\x1a\xbc\xd0\x4f\xda\x0b\x3d\xf8\x69\x9f\x8b\x9f\xb6\x67\xc8\xe5\x8d\xfd\xb4\xa3\xd7\xfa\x49\xf9\x6e\xef\x1b\x84\xb9\x9d\x1e\x77\x06\x62\xde\x98\x8f\xfa\xad\xa1\x34\x9c\x28\x15\xc9\xc6\x67\x4e\xc5\x82\xdf\x4a\x55\x20\xe9\xf5\xdf\xf8\xaa\x63\x34\x3b\xb6\xaf\x5b\xb7\xba\xc1\x0f\xdf\xb4\x45\x6a\xa2\x46\xf5\x44\xf6\xaa\x4b\x78\x3b\xa0\xdf\x3f\xdc\x54\xf3\x66\x81\x04\x6e\x45\x07\x08\x24\x88\xc3\x05\x02\x6c\x3f\xdb\x37\x2a\x4f\x65\x19\x33\xe1\xcd\x32\x8b\x6b\x1d\x28\xa2\x89\xfd\xcd\x06\x72\x06\xe7\xdc\xc3\x10\xc0\x75\xf9\xd1\xa8\xb1\x30\xc4\x81\x53\xe6\x3b\xb3\xe5\x6f\x9a\x9f\x77\x57\x18\xd2\xb2\x20\x6d\x9e\xf2\x84\x69\xe5\xa5\x6b\x6e\xf3\x88\x55\xee\x60\x08\x7d\xec\xe7\x06\x53\x3f\xc1\x64\x77\x89\xd6\xd4\xec\xa6\x15\x05\x91\xfe\xc8\x64\x9e\x02\x91\x82\xe8\x80\x92\xcb\x8c\xb0\xf0\x68\xea\x6e\x9e\x0f\x85\x54\x78\x83\xad\x68\x92\x55\x2e\xff\x69\x24\x23\x95\x8b\xd3\x3b\x55\xa4\x23\xcf\x95\x19\x61\x1a\xce\x3c\x14\x37\x6e\xe6\xb1\x3e\xc0\x5c\xdb\x69\x5e\x07\x81\x8a\x4d\x3d\x6e\x42\x20\x60\x18\xe9\xe2\x63\x61\xd6\xf2\x33\xcf\xb4\x18\xb1\xdf\xf2\x4f\xb9\xba\xcb\x77\x57\x45\x46\x07\x50\xa8\x6a\xf3\xbb\xb7\x36\x74\x10\x0d\xa7\x23\x54\x35\x6e\x18\x67\x7a\x06\x1a\xc4\x00\x62\xf5\x35\x28\x0b\x7d\x42\x56\x6f\xa0\xd1\xcd\xa6\x93\x3e\x54\xd8\x6a\x87\xda\x7d\x1f\x73\xdb\xa0\x12\x3d\x17\x95\xa8\x57\xe8\xea\x16\x85\x68\xc0\xb7\x7a\x00\x81\xf6\xc0\xd1\xad\x3d\xf4\xbd\x3e\xdc\xa9\x16\x49\xb3\xa0\x68\x0f\xdf\xe0\x58\xd7\xb4\xc1\x4c\xa9\x4f\x9a\x65\xf2\x53\x9f\xe0\xd1\x74\xab\x65\xb7\xd7\x3d\xdf\xc9\x6a\xbc\xf5\xc2\xb7\x4c\xe6\xc6\xf1\x48\x58\xb9\x82\x78\x8b\xca\x86\x9e\x36\x0d\xb9\x60\x2c\x8f\x22\x71\xac\xbf\x46\x6a\x62\x85\x63\x76\x93\xcb\xec\x26\x32\x47\x73\xa4\x61\xf1\x58\x12\xf1\x78\xa6\x99\x48\x09\x4b\xb9\xa2\x28\x39\x9e\xdd\xf1\xb5\x66\xe4\x68\x44\x94\x59\x24\x21\x9b\x64\x6a\x8a\xef\xbd\x74\x01\x1f\x9d\xe2\x75\xa3\xc7\x8d\xf3\x08\x98\x6d\x58\x28\xa5\x05\xe3\x4b\x45\x14\x3d\xe0\x64\xe1\xba\x6d\xd2\x9a\x43\x21\x82\xb0\x92\x85\xd2\x22\x0f\xc5\x1c\xc3\x32\x68\x28\x33\xac\xf3\x79\xe4\xd5\x52\x14\x04\x36\x92\xa9\x3b\x23\x39\xbc\xc0\x08\x8e\x3b\x01\x48\xdf\x80\xc1\x20\x30\xac\x08\x5a\x2d\xe4\x7c\x21\x74\x79\xe2\x90\x6f\xfc\x02\xc6\x8c\xbd\xe3\xc9\xa2\xe5\x2f\xc4\xa6\x6c\x70\x4c\xc1\xf3\x39\xfa\xd4\xfe\xfe\x6a\xf4\xea\xe5\xcb\x97\x2f\xff\xd1\x82\x2a\x13\x04\xcf\x50\xa0\x6e\x10\x55\x21\x4b\xe7\xc8\xd7\x02\x82\x27\xcc\x38\x41\x24\xca\xc1\x71\xd5\x56\x85\x54\x85\x2c\xd7\xef\x0d\x5d\x7d\x13\x86\x33\x1c\xe4\x41\x5d\x6e\x1c\xbe\x5f\x2e\xe0\xcd\xe6\xf9\xdd\x58\xe9\xd1\x65\x93\x31\xce\x36\x7f\xaf\x59\xc3\xa9\x96\x8b\x16\x00\x30\x1b\x11\x23\xbb\xb5\x31\xc3\xc1\x85\xb3\x87\x83\xd1\x46\x29\xc9\x9f\x36\x5a\x48\xe6\xb7\x3c\x93\x70\x03\x8c\x2c\x81\x9a\x50\xa8\x58\xb4\x6b\x84\x3d\x22\x76\x6e\xa0\xd1\x4d\x40\x51\xf1\x3a\x17\x51\x14\x6c\x40\x33\x80\xc6\x58\xc2\x01\x11\x64\xc1\x2a\x6c\xac\x29\xf7\xb0\x4a\x33\x58\x0a\x44\xaa\x98\xff\x0e\x03\xfe\x30\x18\xc5\xa3\x6b\x2c\x03\xd0\x29\xf7\x3e\x01\x93\xd9\x22\x2f\x21\x61\xc9\x64\x82\x0e\xc5\xc2\x83\xb7\xe4\xca\x4f\x39\xc2\x7a\x6b\x33\x6d\xb0\x43\x0b\xb4\x97\x2a\x93\xc9\xfa\xca\xac\xe2\x6f\xb2\x5c\x5c\x57\xa8\x25\xf5\x95\x6e\xa3\x3f\x45\x4c\xdf\x08\x36\xa7\xae\x71\xa9\x96\x32\xd9\x03\x49\x65\xf3\x4b\x7c\x18\x67\x5a\x67\x94\x4a\xbd\x69\x3d\x6b\xa5\x11\xaa\xb2\xa3\x89\xca\x1b\xb8\xba\xae\xbf\x6f\x59\xd3\x84\x1a\xd3\xd0\xb1\x7e\xf4\x28\xea\x91\x37\xf5\x1d\xe6\x26\x2d\xf9\xea\xf4\x93\x58\xeb\xe8\x7e\xb0\xba\x6b\x35\xba\x11\x1d\x77\x72\xc9\x57\x0f\x64\xb9\xf8\x8b\x91\x61\xe9\x25\x6d\xb9\x4a\x61\x33\xb6\x50\x59\xaa\xc9\xb2\x06\x0c\xd3\xa3\xa3\x1a\x41\x08\x45\x68\x23\xe9\x1a\xb5\x0c\x0b\x16\x74\xde\xa5\xbc\x3b\x9c\x23\x0f\x02\x39\x20\x94\x1b\xfd\xc1\x5e\xec\x10\x7a\x84\x59\x16\xdf\x4d\x8e\x02\x88\xa9\x2c\x0b\x9a\x13\x3e\x4e\xa0\xb0\x2c\xaa\xe9\x38\x51\xcb\x33\xbf\xf7\x67\x4e\x86\x3f\x9b\x66\x6a\x7a\xb6\x84\x82\x9a\x67\xab\x4f\xf3\x33\x5e\x95\x0b\x04\x42\x33\xb3\x3a\x33\xe3\xc2\xff\x8c\xe7\xca\xc3\xba\xde\x89\x2c\x3b\x05\xc3\x18\x4d\x11\x52\xda\x1f\xcc\x5f\x0f\x5b\x77\x48\x12\xf3\x5e\x2e\x65\x79\x05\x90\x5e\x7a\x5b\x42\x5c\xd4\xae\x2e\x31\x53\x75\x98\x58\x2a\x4e\x78\x6e\x73\xf0\xc5\x67\x91\x40\x9e\x5a\x21\xe7\x8b\x92\xe5\xea\xae\xc7\x2d\xf9\x67\x25\xaa\x7d\x2a\xad\xb4\xad\xf2\x7f\xe1\x58\x31\xa5\xde\x2a\xcb\xd0\xd7\x6f\xe8\x01\x90\xfd\x31\x10\x51\x56\xbc\xe0\x4b\x01\x90\x9a\xe6\x32\x50\xfb\x28\x90\x9e\x42\x94\x73\x95\x9f\x22\x9f\xb5\x3c\xdb\xdb\x38\x6f\x26\x47\x66\x6e\x62\x72\x74\xb3\x7f\x45\x04\x3f\x9c\x1b\x0d\xdf\xc6\x15\x98\xda\x26\x47\xe3\xe0\x0f\x4b\xc1\x73\x3a\xa1\xee\xf3\xaa\x56\x2a\x67\xbc\x28\xe4\x2d\xcf\x20\x4c\x65\x41\xf9\x39\x1c\x16\x2c\x58\x95\x97\x32\xc3\xa8\x56\x0a\xb8\x76\x7d\xc1\x0d\x42\xdb\x82\x05\x34\xb1\x02\x16\x07\x68\xcf\x60\x76\xf7\x9c\x12\xda\x13\xcd\x90\x5f\x32\x46\xa6\xdd\xc2\x50\xe5\xc4\x31\x37\x58\x15\x52\x69\x0e\x12\x82\xb5\x54\x71\x44\xc5\x2d\x6a\x6a\x83\xb9\x4a\xfa\xb4\x54\xa7\x41\x63\xf1\xd3\xba\xc9\x19\xfd\x83\x39\xa2\xfb\x1e\xf1\xb8\xfb\xd9\x15\xde\x63\x05\xd4\xcd\x32\x7b\x17\xed\xd8\xd6\x37\x50\x94\xb7\x51\x14\x73\xda\xc4\x65\x4c\x1b\xb8\x53\x1a\xca\x76\xf0\x34\xa5\x54\x82\xf2\x4e\x31\xa9\x75\x25\xf4\xeb\x49\xce\xbe\x83\x5a\xcd\x16\x93\x12\x46\x72\x41\xff\x56\x86\x63\x99\x99\x8f\x2d\xf1\xfa\x9f\xd0\xeb\x6f\xe6\x73\xbe\x12\x16\x60\xaa\x82\xc6\x1a\x4f\x48\x7c\x4e\x04\x84\x61\x0b\xec\xfe\x9f\x3d\x6c\xf8\x5a\x57\x85\x48\xdf\xa8\x9c\xc0\xba\xd7\xd7\x0b\x5e\x74\x2b\x15\x9b\xfa\xdd\xb0\x17\xe7\x6f\xae\x4f\x7c\x2a\x00\xd2\x2a\x7c\x2e\x60\xab\x31\x13\x8b\x12\x10\xf1\x2d\x52\xc0\xb9\x87\x0f\x77\x4b\xb3\x5e\x81\xda\x06\x11\xef\x5d\xd3\x6b\xac\xa8\xf0\x6c\xe9\x0c\x00\x54\xe3\xf6\xfc\xcd\xb5\x53\xb3\x39\x5b\x29\x2d\x4b\x79\x6b\x3f\x84\xd6\x01\x64\xb8\xc7\xe0\x36\xb5\xcb\xa1\x69\xbd\xb8\x7e\xf3\xfe\x04\xed\x22\xb7\x32\x35\xba\x9a\xb3\x3f\x04\x8d\x4f\x5d\xfc\x6a\x5a\x9b\x26\xc4\xd3\x9a\xcd\x57\x05\x3a\x2a\xc1\x27\x21\x0b\x46\x1b\x18\x7d\x52\xc3\x16\x12\xcd\x5e\x15\x2a\xad\x6c\xda\x4e\x5b\x6b\xb4\x20\xbc\x38\x7f\xf3\xfb\x09\x3b\x3d\x3d\xdd\xb4\x7d\xb5\x7d\x4a\x2a\xbf\x4f\xe0\x48\x35\x5d\xcd\x25\x04\x58\x43\x5d\x25\x8b\xda\x0a\x5e\x4f\x72\x48\x2d\x76\xff\xef\xfc\xcd\xef\x2f\xb2\x13\xf6\x1f\x2c\x11\x32\x7b\xc1\xae\xdf\xbc\x67\xdf\x99\x5d\x36\x3f\x9e\xb1\x17\x4c\x57\xcb\xbf\xd7\x37\xe1\xd3\x3f\xa0\xc5\xa7\x13\x76\xc2\x4e\xcc\x80\x53\xa8\x3b\x45\xf3\x85\x33\x86\x73\x12\x3c\xc7\x94\x17\xa3\x2b\x14\xb7\xe1\x8a\x03\x62\xfc\x82\x8c\x57\xe2\xf3\x4a\x18\xf6\xaf\x2c\x80\x2f\x02\xfc\x5c\xbe\x3f\x89\xf8\xde\x02\x60\x66\xe3\x5c\x1b\x35\x63\x3f\xbc\x3c\x3c\xd2\xfc\x06\xe9\x85\xed\x2d\x29\xc4\xf2\xd0\x76\xb7\x79\xd8\xf4\xc6\x3a\xa2\x05\x95\x26\x2e\x15\x4b\x55\x1b\xd1\xd8\x2a\x17\x3d\x90\xe4\xff\x41\xe5\x16\xa9\xc9\x2b\xd6\x5b\x28\x76\x6b\x7b\xa4\x1e\xab\x42\xe0\x3a\x23\x61\x1c\x84\x1c\xe7\xed\xf1\xc9\xe1\xb5\x24\x16\x59\xb0\x5b\x51\x4c\xc9\xd6\x29\x58\xc9\x8b\xb9\x28\xe3\xce\xbf\x5d\xbd\x1f\xb3\x73\xd6\x3e\x85\x4e\x73\xc8\x54\x95\x0b\xf6\x82\x9f\x6c\xb2\x8b\x98\xcf\xb7\xda\x45\x60\x94\x17\xd3\x8d\x1d\x73\x3f\x9f\xdf\xae\xde\xb7\x9b\x56\x7a\xa8\x3e\xf1\x28\x5d\x54\xbf\xd6\x9c\x14\x6a\x0a\x75\xad\x8a\xcc\x26\x90\x5b\x06\x89\xca\x0f\x31\x2e\x4c\xd6\x4e\x12\x48\x89\x55\xce\xff\x1a\x16\x2e\xc3\x9c\x37\x0b\x25\x6c\xc8\xce\x29\x9b\x1c\x9d\x2d\x04\xcf\xca\xc5\xbf\x26\x47\x18\x05\x3f\xe7\x59\xf8\xa7\xef\xf0\x77\x99\x35\xfe\x12\x74\x00\x1c\x6c\x7f\x39\x00\xee\x37\x6c\x7a\x66\x46\xe1\x99\x56\xdb\x1a\x99\x49\x40\x43\x77\xec\x59\xc6\x56\xa2\x38\x4d\xd4\x72\xa5\x72\xc8\xab\x82\x56\x2c\x59\x88\xe4\x93\x1e\x4f\x72\x54\x08\xc3\xf6\xd1\xe5\xaa\x8a\x4c\x07\x16\x30\x32\x91\x44\x79\x93\xe6\x40\xe1\x36\x89\xbc\x2c\xd6\x1b\xa5\xca\x83\xe6\x3e\xf4\x34\x0d\x68\x51\xb6\xd3\x41\xb8\xd5\x5d\x97\x09\x1a\xd5\x6c\x32\xce\xb0\x87\xef\xa2\xfd\x8e\x34\xf7\x14\x5a\x83\x59\xf6\x19\xec\x63\x4f\x35\x00\xf7\x78\xb4\xf9\x2d\x1f\x52\x2d\xdf\x64\xfe\xdc\x4c\xb2\x37\xf4\x80\xa3\xb1\x80\x83\x0c\x02\x33\x90\x54\xac\x56\x99\xc4\xdc\x78\x4f\x4b\x81\x4a\x30\xef\xd5\x04\x61\x0d\xfa\x24\x2a\xd7\x32\x35\x92\x03\x62\x18\xa0\x10\xbe\xe4\x9f\xac\x51\x98\x86\x18\xd9\x40\x93\x29\x9b\x8a\x20\x67\x1d\x4a\x3f\x10\xd1\xf7\x41\x01\xe0\xd8\xe1\x89\x55\xeb\x48\x88\xd8\xb4\x92\x7b\xd3\x7e\x5d\x1f\x69\x07\xf2\x6f\x27\x0d\xd3\xc2\x8c\x5a\x77\xfa\x57\x1b\x6d\xed\x3b\x31\x84\xab\x3e\xce\x85\x7a\xfb\xda\x7b\x6e\xe5\x9a\xc4\x1d\x28\xcd\x61\xed\x1f\xfd\xbd\xf9\xf4\xc3\x59\x6c\xdb\x25\x96\x07\xb6\xfe\x47\xb1\x7f\x3b\x1c\x4a\xd1\x72\x22\xe0\x53\x31\x47\xf2\x80\xe7\xe1\x81\x07\xea\xb0\x0f\xf5\x29\x99\x8e\x2d\x77\x67\x81\x51\x5b\xa1\x91\xea\x01\xcf\xf4\x8b\x1e\xa8\x6e\x92\xd0\xb6\xb3\x74\x34\xa2\x86\x3c\x98\x43\x55\x51\x90\xaf\x1c\xf6\xa8\x39\xa5\xca\x70\x3d\x15\xd9\xa7\x3d\x2c\x4c\x62\xd4\x4b\x5b\x9a\xf9\x23\x78\xd7\x9c\x66\xdc\x42\x66\x5c\xd1\x2e\x73\x75\x8c\x0c\x8c\x77\x08\x2f\x0b\x66\x94\x6a\x24\x72\x40\x84\xd7\xba\x14\xcb\xd7\x81\x95\x9a\x9c\x9c\xf4\x87\x2a\x8f\xff\x14\xd8\xc5\x1d\xad\x42\x2d\xce\x79\x06\x77\x63\xd1\x7b\xdd\x01\xeb\x7e\x78\xe0\x83\xef\xc9\xd3\x75\xcd\xad\x78\x18\xde\xbd\x8f\x8d\x6c\x8b\x71\xac\xee\xc9\x8b\xfe\x08\x9e\xbc\x58\xfb\x1f\x22\x49\x9f\x74\x24\xe9\x10\x63\xf9\x5c\x62\x2c\x87\xb4\xb3\x3d\x68\xe0\xc3\xa5\xa1\x4d\x8e\xe8\xb6\x9e\x5a\x7a\x38\x39\x7a\x76\x09\x69\x5b\x36\xf6\x30\x09\x6a\x4f\x6c\x17\xbb\xac\xa0\x5f\x34\xb2\x77\x0b\xa7\x7f\xd8\x28\xdf\xcd\x1f\xee\x93\xca\xd6\xa3\x77\xc4\xed\x7d\xda\x97\x9a\xed\x2e\x6b\x0c\xc9\x6d\xad\xf3\x1a\x92\xdb\xfa\xcf\x75\x48\x6e\x7b\xac\xe4\xb6\xcd\xa4\xa1\x23\xd9\x6d\x7b\xc7\xd8\x48\xb5\x45\xd7\x19\x92\xe1\xbe\x06\x15\x66\xef\x64\xb8\x9a\x68\x21\xc5\x43\xe6\xc4\x6d\xe1\xce\x3d\xad\x0f\x83\xfe\xf6\xac\xf5\xb7\xfb\xe6\xc8\x3d\x09\xed\xad\xa7\xa5\xeb\x2b\xc8\x93\xeb\xe0\x3d\x5f\x4a\xa2\xf6\xc9\x2f\xfb\x70\xbf\x2b\x9f\xb2\x62\xc1\x16\xc3\x18\x6a\xb0\xed\x52\x05\x30\xe2\x18\x6d\x0a\x18\x39\xd3\x2a\x2d\xfa\x14\xd2\xef\x11\x5f\x7d\x63\xda\xdc\xb4\x41\xe5\xd5\xa2\xbe\x62\x6b\xa3\xf5\xe9\xb9\x92\x50\x5f\x4b\x98\x73\x87\x3d\x62\x9f\x93\x85\xb4\xc9\x18\x70\xee\x10\xa6\x59\x8a\x43\x3c\x5c\x30\xd3\xd6\xa0\xcd\xee\x00\x27\x91\xde\xd4\xc2\x33\xa3\xd2\x0f\x18\xa8\x69\xeb\x93\xd0\x07\xeb\xab\x8e\x82\xa2\xc9\x01\xe2\xa3\xa2\x6b\x5e\xdc\x28\x38\x9a\x06\x3c\x48\x78\x74\x10\x9f\x25\x20\x6e\xad\x2d\xca\x51\xea\x46\x88\x29\x9d\xa6\x2f\x11\xef\x82\x2b\xc7\x8c\x9d\xfb\xf8\xb6\x9b\xc9\xd1\xbb\xcf\x66\x49\x93\xa3\x9b\xd6\x98\xe6\x0d\x81\x95\xb6\xc8\x47\xf0\x5d\x1b\xa4\xf9\xc2\x25\x85\x42\x23\x71\x2b\x30\xd2\x5c\xa4\x27\xb0\x67\xa9\x82\x9e\xa9\x28\x0b\x9e\x94\x5e\x24\x48\xf8\x8a\x27\xe6\x0b\x00\x91\xc7\x6f\xb9\xcc\x40\xaf\x2c\x15\x85\xec\xd5\xe2\x05\x1b\x0b\xf1\xfb\x1e\xae\xe4\x05\x3f\xe9\x5c\xcd\x7f\xf3\x42\xfc\x77\x33\x4c\xd7\xf9\xd7\x21\x6b\xc2\xc1\x72\x52\x1c\x28\xdd\x34\x3f\x6f\x8b\xee\xe7\xa7\x2e\x3e\x27\x59\xa5\xe5\xad\xc0\xa2\xf4\x2d\x9f\xfe\xe6\x03\xc0\x3d\xe9\xb0\xe7\x77\xc0\x00\xf0\x4e\xc3\xe3\x5e\x34\xb4\x6f\xae\x5a\xab\x55\xf2\x01\xb3\xd6\x5a\xa7\xb1\x7d\x12\xec\xf1\xf4\x97\x6f\x39\x89\xad\x35\x95\x67\xf3\xdd\x6b\x6b\xbe\x63\x4e\x4f\x0f\xb0\x68\x9e\xa7\xd7\xf2\x5f\x9d\x8c\xc8\xb6\xb3\x21\x22\x4b\x88\x67\x8c\x23\xe4\x29\x48\x38\x0e\xe7\xd7\x8b\x6a\x36\xcb\x04\x04\xac\x43\x58\x48\x18\x70\x2e\xf3\x52\x21\x57\x30\x74\xfc\x6f\x0b\x91\x33\x91\xdb\xc4\x1b\x1f\x2c\x65\x23\x13\x1a\x61\xfd\x2e\x5c\xe9\x98\x72\x91\x1d\x1e\x6a\xc1\x5e\x38\x15\x76\xc5\x65\x01\x81\xf9\x0b\xae\x17\x0e\xae\x40\xc0\x3f\x89\x75\x04\xe0\x01\x76\xc2\x61\x08\x05\x4e\x11\xf9\x96\xe0\x19\xe3\x20\x3c\x38\x5e\x20\xff\x15\x42\xdb\x2f\x44\x21\xc6\x0c\x02\xd0\x5c\xb4\x97\x66\xab\xaa\xc4\xe5\x52\x98\x0b\xee\x8d\x2a\xc0\xc6\x42\xe3\x4b\x92\xaa\xcd\xe0\x63\x16\xec\xb9\x97\x3c\x58\xc6\x8b\x39\x6e\x75\xce\x6e\xb0\xdf\x0d\x1a\x65\x7c\xd2\x87\x96\xf3\x1c\x3c\x4f\x50\x24\x00\xce\xca\x6c\x88\x56\x0e\x86\x56\xdc\xb1\x85\xe0\xb7\x6b\xc4\xa8\xb5\xcc\x58\xf3\xd2\xdc\x27\xc1\x96\xca\xe7\xbd\xe2\x37\x4e\xc6\xcc\x55\xec\xaf\xb4\x28\x4e\x67\x3c\xc1\xda\x52\x41\x21\x09\x5f\xbd\x9f\xa0\xd2\x6f\x05\x9b\x57\x32\xe5\x50\xc3\x23\x77\xb8\xde\x61\xe5\x8a\x1e\xd1\xf7\x7f\x3c\x78\xf0\x3d\xac\xe9\xbd\xc8\xe7\xe5\x02\xd8\x4d\xd7\xed\xaf\xb7\x77\x84\x76\xc9\x3f\xcb\x65\xb5\x6c\x4b\xa6\xa0\xc2\x67\x14\xa4\x74\xc7\x25\x2c\x1d\x12\xd0\x30\xe9\x04\xd3\xd0\x36\x49\x56\x36\xe9\xe2\xcf\x90\xaa\xa3\x75\x2c\xbb\xfa\xcc\x31\xdc\xbf\x18\x22\xc2\xbe\xcb\x31\x63\x17\xb3\x2d\xe0\x0f\xb4\xd3\x38\xc9\x7f\x3f\x7c\x8e\x03\x5e\x9d\x5e\x9b\xeb\x79\x97\xdf\x4a\x7a\x15\x1b\xd2\x9e\x30\xc4\x93\xda\x40\x91\x24\x23\x27\x8b\x95\xc8\x53\x2a\x85\x57\x62\xa2\x4a\x2d\x28\x74\xe3\x56\x5d\xd3\xed\x94\x88\x88\xc1\xc4\x6c\x26\x92\x12\xc5\xb6\x55\x21\x28\x88\x89\xc8\x83\x23\x67\x4e\xcc\x5d\xf2\x4f\xb6\x70\x4e\x1b\x7a\xb6\x91\x05\x3c\xaa\x7f\x00\x9c\xa0\x99\x2c\x0a\x91\x89\x5b\x9e\x97\xbd\x9e\xc3\x1f\x7e\x3c\xcc\x41\x1d\x92\xb5\xed\x94\xa2\xb1\x63\x7e\x06\x88\xdd\x8d\x04\x8d\x11\x44\xf7\xd6\x62\x78\x8f\x75\x57\xb0\x61\x4b\x4c\x63\x14\x9d\x1b\x7f\xa5\xa6\xe0\xbd\xde\x2b\x3d\x63\xb4\x2d\x38\x97\xaf\xe4\x5f\xe2\xc0\xb6\xb8\x67\xd2\x19\xd6\xbb\xa1\x27\x28\x2d\xe9\x49\x7b\x42\x88\x85\x67\xdf\x37\xf4\xd7\xcd\xba\x33\xf7\xcf\x36\xdc\x14\xbc\x7f\x7e\x79\x61\x23\xfb\xfa\x46\xf0\xc7\x5d\xa0\xd8\x83\x0b\xe2\xff\xea\x22\xf8\x03\x6a\x49\x90\x31\xd7\x89\xea\xb6\x0b\x84\x6d\x5b\xed\x03\x16\x56\xa0\x5e\x78\x2d\xe0\x06\x6b\xc6\x83\x2a\xf6\x84\x5c\xb4\xe0\xab\x95\xc8\x35\x13\x12\xc6\xb1\x35\x3d\xa3\xe0\x77\x02\x14\x72\x7d\x21\x61\x3a\x0c\x48\xc7\x67\x47\x39\x2c\xee\xae\x9d\x10\x18\x4e\x54\xad\x6d\x29\x4b\xca\xb8\x9e\xf1\x0c\x3f\x84\xd9\x9d\x37\xbe\xe3\x4d\x68\x7f\x21\x5b\xa4\x99\xbb\x33\xc3\x64\x51\x85\xbc\xe8\x68\xa6\x4a\x65\x82\xe7\xed\x3b\xee\x3f\xd1\xc7\xe6\x68\x27\x13\x23\x83\x50\x78\xb9\x7f\x51\x64\x38\x31\x77\x27\x08\xd8\x07\x33\x85\xdb\x1f\xc8\xd1\x75\x96\x29\xde\x18\x25\xae\x6a\x29\x67\xf6\x38\x0c\xf9\xf1\x15\x57\x82\x1a\x38\xbc\x6c\x8e\xa1\x0a\x20\x3c\x2d\xed\xe1\x4d\x8d\x59\x80\x1a\x55\x7b\x65\xf9\x3a\x90\x67\xfd\x88\xd3\xca\x5c\x21\x4c\x78\x72\x10\x5a\xd1\xa2\xfe\xdb\xfd\x99\xee\xd8\x7f\xc7\x97\x4c\x93\x08\x59\xbb\xc0\x78\xbe\xc8\xe8\x79\x69\x53\x32\x11\xc8\x8f\xd2\x51\xcd\x41\x8f\x60\x06\xce\xda\x56\x7b\x04\x9a\x95\x45\x55\x2f\x37\xf9\xa4\x5e\xb8\xf7\x5b\xf6\x8c\xca\xdf\x48\x36\x3d\xf1\x7f\x21\xc7\x62\x3c\x02\xfc\xb1\x22\xe1\x5a\x00\x19\x5d\x65\x55\xc1\xb3\x13\xc8\xe1\x04\x02\x49\x61\x67\x23\xa6\xab\xa9\xe7\x86\x61\x0a\xdd\x88\xfd\x9d\x4d\x8e\x6c\x6d\xe7\xc9\xd1\x88\x4d\x8e\x72\x95\x0a\x7d\x86\xd1\x08\x93\x23\xf6\x0f\x2b\x9e\xb8\x83\xe9\x22\xd5\x7e\x9a\xcf\x8a\x52\x7f\x91\x9c\xb5\x67\xb0\x85\x3d\x8d\x96\x8d\x74\x35\x2f\x6e\xb4\x3e\xa6\x43\x7a\x5b\xae\xf1\x01\x9c\x63\x7e\x44\x37\xe2\x50\x6b\xfb\x2e\xe8\x21\x7a\x65\xa7\x94\x85\xf1\x00\x20\x44\xed\x4e\x32\x77\xfd\xe2\x59\xdb\xd0\x95\x36\x58\xa2\x42\xcc\x79\x91\x66\x50\x60\x10\x05\xc7\x7b\x05\x1a\x39\x56\xd0\x9b\xe1\x46\x8b\x20\xc6\xd6\xb9\x92\x07\x05\x31\xc2\xf9\x8f\x1e\xd0\xe5\xd7\xe3\xda\xb9\x34\x46\x2f\xbe\xab\x42\xce\xd1\x1a\x8f\x86\x67\xaf\x0a\xd4\xeb\x04\x45\xc9\x83\x11\x54\x14\x65\xe0\xd8\x94\x1f\x0e\xf5\x39\x0b\x21\x18\x40\x7a\x86\x1b\xcf\xf3\xe0\x83\x7f\x36\xa3\x62\x82\x11\x48\xe6\x70\x93\xe8\x96\x33\xba\xe5\x3d\x2e\xb6\xf5\xc0\xdf\xdf\x7d\x18\xe1\x85\xb5\xde\xc4\x1e\xb1\x30\xf6\x0e\xed\x11\xf5\x17\xdd\xca\x83\xac\xa8\x9d\x30\xb5\x7e\xdd\x1c\xc4\x41\xbe\xf9\x9b\x16\x45\xf3\x4b\x3d\x9f\x0a\x6c\x70\xd7\xab\x38\x90\xeb\x09\xbe\xb5\xa7\xeb\xc9\x85\x7d\xc0\x9d\x89\x46\x69\x3b\xc9\x1a\xc5\xaf\xb7\xa7\xbd\x3f\x32\x5b\x77\x40\x17\x56\x78\x12\x9b\xa9\x42\xd0\xaa\x8b\x05\x81\x0d\xf7\xa1\xf9\x8e\xf9\x08\xf0\x9e\xbe\xe0\x77\x4f\x18\x81\x2e\x17\xe5\x9d\x2a\x3e\xc9\x7c\x3e\xbe\x8d\x2a\xcb\x5f\xf2\x72\xb1\xe5\x4c\x6a\x2d\xbd\x11\x10\x2c\x5e\xe6\x17\xac\xf0\xe9\x6a\x16\xb3\x8b\x3c\x51\x4b\x88\x99\x29\xb2\x1a\x7e\x29\xb4\x37\x44\x79\xa6\x8a\x3b\x5e\xa4\x54\x13\x72\x21\x9a\x15\x8f\x0f\x5e\x27\x3e\xde\x80\x1d\x4a\xc4\x53\x9b\x28\x84\x35\x88\xc3\xb1\x6c\xc2\xc7\x02\x2a\x82\x7c\x2a\xb1\x44\x2a\x54\xb8\xb4\x26\xeb\x70\xe1\x1b\xe2\x2a\x56\xf1\x81\xb4\x4d\x09\x4e\x42\x5a\xe5\x3c\x65\x7c\x6e\xf4\xe2\xd2\xef\x31\x86\xce\x4a\x7b\x12\x2e\xcd\xd4\x97\x5e\x96\x08\x87\x63\xcd\x11\xc9\x82\x17\x3c\x01\xff\x5b\x2a\xb5\xb5\xfd\xfb\xa8\x06\x17\x0c\xc7\x33\x36\x81\x29\x4e\x8e\xd8\x8a\x17\x25\xf2\xea\xdf\xae\xde\x13\xfc\xb2\xcc\x91\x47\x5f\xfd\xfc\x86\xfd\xf0\xa7\x3f\xfe\x61\xcc\xcc\x64\xb5\x15\xf6\xe7\x32\xb7\x17\xe6\xf8\xec\x78\x8c\x3e\xb3\xa8\x64\x36\x38\xe6\xa0\x0b\x7c\xbd\xbe\x06\xf4\x1f\xd0\xc2\xf7\x90\xe0\xcc\xd0\x1f\xbb\x23\x57\x2e\xa9\x99\xa1\x40\x50\xd3\x93\x0e\x1e\xa2\x89\x57\x85\x28\xa3\xac\x28\x38\x0f\x7b\xd3\x71\xc5\xd0\x99\x80\xf9\x02\x97\xd9\x4c\x99\xad\x75\x81\xa9\xfa\x35\xfb\x8e\xbd\xfb\xcc\x93\xf2\x35\x22\x67\xd3\x67\xcc\x7e\xc2\x41\x0a\xf3\xb7\x6c\x3d\x66\xdf\xb1\x4b\x00\x9c\xf1\xed\x5c\x01\x54\xee\x9b\x23\x28\x0d\xd3\xab\x4c\x96\xe6\x14\x60\x8f\x2d\x24\x37\x93\x7a\x92\x33\x84\x54\x83\x6e\xf8\x05\x2a\xa7\x3f\x5d\xfb\xff\xe4\x5a\xea\x31\x3b\x8f\x1b\xc0\x9d\xb7\xd9\xd9\x66\x20\xab\x15\x66\x7c\x4a\xe8\x5f\xee\xfe\xb9\x09\x98\x5f\x8e\xcf\x8e\x99\x16\x2b\x5e\x18\x76\x37\x0e\xec\x48\x46\xb7\x34\x03\x21\x11\x35\x64\x1d\x17\x01\x16\x23\xc8\x8f\x5e\x59\xb0\x64\x9c\xc3\xe9\x9d\xd4\xc2\x2e\x52\xcd\xd8\x8a\xb6\xd5\x0c\x62\x07\x35\x43\xb4\x00\x8a\x43\x2a\x84\x5d\x8a\x0d\xb8\xa3\x67\xc4\x0d\x13\xc1\x4b\x63\x46\x52\x2d\x3d\x64\x1e\x7d\x60\x44\xe8\x2b\x46\xf3\x25\xa4\x68\xf6\x42\x8c\xe7\x63\x76\x36\x53\xea\x6c\xca\x0b\xb7\x2e\xa1\xdd\x6f\x67\x53\xfe\xaf\x51\x9b\x15\xca\x36\x98\xf2\x7f\x9d\x8c\x27\xf9\x77\xb5\x52\xfe\xd7\x94\x89\xf7\x9a\x5d\x74\x5f\x3f\xf0\x05\xaf\x58\xa9\xcc\x0c\xca\x5a\xe1\xfc\x71\x6d\x64\x0d\x57\xb4\x2c\x84\x75\x51\x73\x44\x39\x82\xc3\x12\xee\x22\xc3\xae\x14\xd4\x4e\x5a\xfc\x04\xc4\x84\x2f\x15\xdd\x4c\xd3\x02\xae\x32\xee\x2b\x84\x1c\x8f\x27\x79\xfd\x83\x16\x12\x10\xd2\x08\x4b\x65\x4b\xb2\xba\x77\x4f\x1d\x0f\xcb\x3a\x2d\xd3\x38\x38\xf7\xbc\xaa\x32\xf1\xbb\x79\xc9\xfd\x58\xa8\x6b\x1e\xdb\x55\x16\x65\xb9\x62\x5a\x64\x22\x29\x55\xa1\x31\x2a\x95\x20\x28\x68\xe6\x1a\x02\xc6\x11\x09\x0e\x21\xa3\xa0\xd3\xeb\xb3\xb3\x49\xf5\xf2\xe5\x0f\xc9\x42\xe9\x12\xfe\x4b\xd0\x0f\x40\xa2\xe1\x87\xff\xc4\x1f\xb4\xe0\x45\xb2\x30\x24\x1b\x7f\x66\xa7\xf4\x7f\xe9\x0b\xec\x0e\x31\xc8\xe1\x7f\x4d\x33\x97\xc0\x53\x15\x19\x4b\x54\x51\x00\xde\x1a\x9c\x99\x25\xee\x23\x9b\xb7\x41\x96\x75\xcb\xe5\x6c\x2c\x02\x49\x47\xc4\x9d\xe0\x49\x97\xa8\x7d\xcd\x4a\x51\xf8\x57\x66\x28\x04\xcf\x53\x36\x15\x33\x55\x50\xf9\x07\x59\x98\x3f\xfc\xe7\xb1\xb9\x56\xc7\xff\x76\xdc\x43\x32\x00\xae\xd1\x95\x92\xc2\x12\x95\x99\x7d\xb6\x39\x75\xc0\x69\x48\xbe\x5b\x85\x41\xfb\x7e\xe7\x0f\x13\x67\xb4\x5d\x00\x3b\xac\xd9\x6a\x6f\x70\x75\xd8\xc1\xc3\x3c\x92\x8b\xcb\x9f\x32\x95\x7c\xda\xf2\x2e\xa8\x45\x00\xd7\xcf\xe1\xe2\xc9\xa4\xca\x78\xc1\xde\x5c\xbc\xbd\x62\x2f\xde\x7d\x1e\xb3\xc9\xd1\xab\x3f\x7d\x3f\x7e\xf5\x87\x3f\x8e\x5f\x8d\x5f\x9d\x7d\xff\xe3\xe4\x68\x34\x39\xfa\xfe\xe5\xcb\x57\xaf\xd3\xe9\x9f\x5e\xbf\x3e\xfb\xc3\x8f\x93\xa3\x13\xa2\xf6\x51\xe0\x02\x10\x79\x95\x7a\x41\x09\x8a\x0c\x7f\xc0\x79\xa2\x07\xd5\xd0\xd6\x63\xf3\xe4\xd2\x6b\x7a\x7f\xe8\x66\x17\x9f\x13\xb1\x2a\xd1\x24\x19\xcc\xd0\x4c\x8a\xee\x0b\xc5\xab\x90\xf1\xd3\xd5\x9d\x37\xd2\x8d\x85\x13\x29\xaa\xac\x4f\x9d\x96\x44\xa6\x0d\x85\xb7\xb6\x57\xb0\x19\x61\x5e\x4b\x23\xa3\xe5\xe2\x92\xe1\x76\xfe\x0e\xd5\x15\x88\x4c\xd8\x12\xd7\xf5\x0d\x44\x25\xa6\xb6\x87\xbb\x4b\x53\xb8\x4b\x1d\x73\x7f\x87\x5b\x19\x63\xf3\xf4\xde\x48\x9e\x1f\x62\x69\x8c\x26\x41\x95\xff\x2d\xa1\xb2\x71\x28\x24\x25\xac\x61\x48\x55\x95\x5a\xa6\x48\x86\x60\xdf\xa1\x64\xc9\x03\x1a\xa3\x77\x7e\xa7\x70\x61\x0e\xf4\x4c\x91\x08\x6d\x7b\xa6\xd8\x02\xcf\x2f\xa6\x9e\x85\x87\x54\xc2\x02\xfd\xb6\x06\x78\xa2\xf2\x1c\x9b\x01\x29\x05\xe8\xe9\x28\x63\x2a\xd2\x15\x02\xe5\xf1\xdc\x55\xda\xb7\xc2\xb3\x8b\xc7\x83\x17\x3d\x97\xb7\xc2\xaa\x5c\x1a\xc2\xb4\x8a\xdc\x88\x21\xa7\xf0\x09\x08\x57\x36\x6a\xe7\x88\x65\x8a\xa7\x6c\xca\x33\x88\xdd\x22\x2d\x6c\xe4\xea\xf3\x0b\x76\x7d\xfd\x7e\xc4\xd4\x6c\x26\x0a\x34\x2f\xa3\x34\x7d\x2b\x8b\xb2\xe2\x19\x14\xf6\x37\x0f\x4b\x94\xc9\x90\x10\xf9\xa4\x13\x22\x87\x9c\xc0\xe7\x92\x13\xd8\x13\xd3\xe5\xfa\x49\xe5\x00\x86\x46\xf3\x7d\x10\x5c\x5a\x89\x71\x27\x50\x0b\x24\x40\x91\x91\xd2\x22\xb2\xb8\x58\xf9\x40\xe7\xfb\xaa\x31\x58\xda\xb7\xa6\x1b\x6a\x85\x32\x1b\x36\xa5\x12\x3c\x8d\xed\x69\x30\xfa\x87\x4b\x07\x0d\xf6\x71\x5b\x0e\xa8\x15\x04\x36\x27\x7b\xee\x90\xe7\xb9\xd5\xd8\xda\x29\x6a\x78\x8b\xab\x53\x0c\xb2\x2c\x10\x1d\x30\xe3\x0d\xa3\x90\x9d\x97\x2e\x4f\xd9\x4a\x15\x7d\xfc\x00\x96\xc4\xef\x7c\x23\x13\x55\x08\x80\x3e\x59\xaf\x44\xfa\x5e\x25\x3c\x43\x9a\xd5\xaf\x48\xdb\x55\x10\x7f\xc6\x73\xe6\xba\x06\xb8\x26\xec\xbf\xdc\x59\x07\xe1\x6a\x79\xd3\x7f\x1c\x5c\x62\x27\x0f\x5c\xcc\xa2\x10\xb7\xd0\xa4\x6a\x77\x69\xfc\xc1\x88\x3a\x10\x6c\x4f\x3f\x5c\xaa\x82\x70\x83\x89\x17\xb9\x6e\x14\xc4\x04\x7c\x73\x59\x19\xa9\x28\x5b\xfb\x54\x30\x17\x0b\x0f\xc6\xdc\x89\xf5\x2a\x4d\x8e\x36\x18\xb5\xe9\x7b\x07\x22\x02\x38\x58\x1f\xe3\x3d\x35\xf5\x06\x7b\xb3\x1c\xfb\x23\x18\xbb\x7e\xb2\xa2\xe7\x2e\xcb\xb5\x67\x19\xaf\xb7\xeb\x51\xef\xf4\x5a\xc0\x5e\xd7\xfd\x56\xa0\x59\x23\x8d\x0b\x7e\x8c\xef\xc9\x28\x74\x5a\x90\x65\xd6\x5e\x21\xc3\x4f\x50\xed\xbd\x91\xf8\x13\x8c\x30\xf6\xa4\xc7\x90\x43\xa9\x4f\x29\x98\xfb\x14\xfe\x7c\xc3\x40\x82\x41\xd9\x94\xa4\x75\x6b\xf9\xb1\x21\x9d\xa4\x1c\xe4\x91\x15\x32\x48\xf5\xb0\xe8\xc6\x22\x75\xb5\x1b\xd1\x27\xc0\x99\x96\xf9\x3c\x8b\xcd\x97\xfe\x82\x03\x7c\x2a\x18\x2c\xfd\x14\xa8\x16\x64\x09\xe8\x32\xb9\xb8\x73\xcb\xf3\x61\x5c\xe6\xf8\x54\x55\x1a\x45\x06\x27\xe2\xa2\x04\xad\x46\xc8\xb5\x96\xf3\x1c\x4a\x8b\x48\x57\x4f\x12\x5b\x0f\x9a\xc0\xa0\x09\x0c\x9a\x40\x7d\xdb\x07\x4d\xa0\xc9\xec\x0e\xa6\x09\x00\xd5\x3b\x98\x3a\x40\x2e\xa0\x41\xe8\xad\x0b\xbd\xc8\x6b\x1f\x4e\xf2\x85\xf1\x3b\x60\xbc\xea\x4d\xdb\xec\x6d\x61\x1b\x31\xf0\xa3\xa7\xcd\x8f\xfa\x40\x75\x5d\x98\x36\x75\xc0\xf3\x4d\xa7\xbc\x71\xd4\xfb\x91\x97\x01\x92\x6b\x60\xba\x7d\x21\xb9\x1c\xcb\xc5\x14\x0a\xcb\x6e\xbf\x02\x50\xac\x3d\x18\x42\x07\xf6\xd5\x41\x98\x42\x07\x06\x52\xbd\x29\x5b\x15\xea\x56\xa6\x22\x86\xb2\x42\x60\xd2\x48\xf1\xf3\x1a\x57\x3f\xac\x0e\x2c\xe9\xd7\xe9\x85\x74\x0d\x6d\x34\x10\x11\xf0\x10\xc6\xca\x8f\x16\xb9\xf7\xa8\xae\x24\xbc\x56\x54\xa7\x50\xe3\x06\xc7\x11\xda\x74\x52\x39\x03\x0d\xb5\x64\x93\xa3\x59\xc6\x6f\x55\xa1\x27\x47\xbe\x00\x65\x50\x79\x90\xf4\x57\x6d\x3e\xeb\xbf\x37\x8e\x13\x82\xd6\xaa\x02\x32\x01\xd5\xb8\xfc\xd8\x97\x31\xd4\x84\x1b\x47\xda\x40\x15\x43\x90\xc2\x41\x61\x9a\x01\x3a\x81\xd3\x19\x31\xbf\x59\x2d\xb9\xcc\x4f\xa9\x1c\x58\x8a\x31\x2c\xb9\x42\x1c\x01\x80\x39\xf8\xfe\xdf\x5f\x86\xf1\x75\x32\x67\x19\xa4\xe2\x8f\x18\x44\x0c\x4d\x8e\x78\xb2\x14\xa0\x60\xe3\x89\xf9\x12\x8b\xc5\xe4\x28\x42\x70\x92\x9a\xc9\xe5\xb2\x2a\xf9\x34\xab\x27\x8a\xf5\x8b\x7d\xb3\x2b\x7f\x64\xd3\x57\xb0\xe5\x14\xf7\x92\x7f\x42\xb0\xa5\xa4\xd2\xa5\x5a\x7a\xb2\x4f\xf1\x88\x10\x23\x92\x22\xd2\x0a\xaf\x43\xa1\x05\x48\xb7\xf1\x19\x19\x8e\xb1\xa2\x2e\xb2\x71\x19\x5d\xcc\x15\x51\x24\x26\x3e\x97\x05\x0f\x90\x47\x1e\xcc\x94\xd3\x4f\xf2\xeb\x10\xfa\x06\x69\xef\x59\x4b\x7b\x0f\x29\xe6\x0d\x12\xde\x20\xe1\xed\x2c\xe1\x3d\x09\xa3\xca\xf3\x90\x26\x1f\x58\x90\xec\x80\x2b\x09\x5a\xd5\xfd\x04\x05\x95\xcf\x5b\xad\xc2\x0c\x0d\xcd\xaa\x3c\x15\x85\x79\xce\x1e\x14\x4a\x61\x91\x42\x4c\x7e\xc8\x00\x04\xc6\x06\x8e\xda\x70\x9c\x20\xf5\x23\x0a\xd6\xc7\x50\x4e\x61\x88\x02\x82\xc7\x80\xfb\x0e\x46\x84\xb8\xbc\x11\xa2\x26\x14\xaa\x2a\x1b\x09\x21\x21\xe8\x0c\xf8\x5e\x10\xb5\x88\x42\x9d\xeb\x51\xb5\x3d\x78\xa4\xf9\x6c\x07\x39\xfb\xab\x42\x46\x0c\x61\xa8\x55\x96\xad\xd9\x3f\x2b\x9e\xe1\x3e\xa0\xb4\xe7\xe4\x5d\xce\xe8\x44\x60\x39\xa3\x8d\x39\x10\x14\x8e\x1e\xc6\xff\xa7\xe2\x56\x52\x48\xb4\x23\x6d\x13\x98\x5e\x90\x59\x81\xb9\x00\x17\xe1\xb8\x32\x77\xe3\xbe\x66\xaf\xc6\xec\xe2\x52\x3b\x1c\x4b\x0a\x7d\x0c\xf3\x3c\xbc\x22\xe0\x63\x8f\x13\xc3\xbd\x73\xf3\xc7\xd5\x0a\x22\xb8\xa1\xea\x35\x05\x11\x92\xbb\x11\xb4\x0d\x17\x27\x0f\x82\xb3\xe5\x54\x93\xfc\x7b\x72\x16\xbd\xbe\x61\xa9\x40\xec\xc3\xc2\x86\xc3\x17\xc2\xdc\x1a\xb8\x1f\x04\xbe\xb1\x52\x45\xd9\x9c\xe3\x24\x9f\x94\x2c\x98\x28\xc6\x6a\x52\x42\x89\x8f\x02\x03\x91\x77\x95\xc9\x44\x9a\x46\xaf\xff\xf8\x12\xae\x0f\x04\x4c\xf3\x3c\xc5\x41\x5e\xff\xf8\xe3\x0f\xee\x67\x33\xbf\x9f\xa8\x52\x9b\x16\xc0\x45\x92\x05\xcf\xe7\xce\x91\x3a\xab\x0c\x01\xda\x74\x59\xdb\x52\x6a\xe0\xaa\x06\xb1\xc9\x8d\x6b\x87\xc0\x20\xd4\x50\xea\x38\xa1\x25\x74\xb4\xc1\x1d\x47\x77\xb6\xcd\x0c\x72\x69\x1c\xe5\x22\xd4\x2d\x1a\xdf\x98\xe4\x93\x1c\x6e\x26\x79\xda\x26\x47\xab\x42\x24\x52\x8b\xc9\x51\x58\x62\x3e\xbc\xa0\xd6\xdb\x05\x89\x48\x14\xf9\x86\xa0\x67\x65\xf3\xf2\x52\xfe\xc2\xe4\x68\xa6\xd4\x78\xca\x8b\x71\xa2\x96\x93\xa3\x13\x8c\xa6\xbc\x93\x59\x9a\xf0\x22\x9d\x1c\x8d\x36\x7d\xcc\x29\x40\x94\xde\x43\xee\x3b\xdb\x13\xb3\x44\xdc\x47\xbe\x1b\x9b\xcf\xe0\x27\xf0\x32\xb9\x86\x4e\x55\x62\xc7\xdf\x1d\xa3\x6f\x9a\xaf\x56\x82\x17\xe6\x49\xc9\x52\x8b\x6c\xc6\xb8\x0e\x82\xc4\xdf\x7e\xb8\xa6\xd1\x51\x84\x0c\xa0\x47\xdc\x34\xe0\xef\x63\xf6\xbf\x55\x65\xf6\xcf\xdc\x43\xac\xd1\x5c\x9f\x9f\xff\x04\xce\x14\x76\xfc\x3f\xfe\x03\x13\xfe\x4e\x30\xb5\x0f\xee\x8a\xf5\x17\xb6\xdd\x17\xe8\x44\x1a\x5b\x5e\x7b\xf6\x77\x7c\x8d\xcf\x76\xc6\x2c\x9d\xa1\x73\x1c\x45\x79\xcd\x3e\x33\xda\x96\x34\x24\x8d\x06\xae\x3e\x1c\xd8\x42\xf0\x14\xdf\x9d\x30\x04\xca\x50\x4e\x33\xe4\x98\x7d\x1f\x0d\xef\xd7\x38\xf2\xf0\x34\x7b\x7d\xa6\x54\xfe\x4b\x70\x5b\xab\xd9\x4c\x7e\x66\x2f\x0a\xb1\x54\xb7\x96\x83\xe0\x99\xc0\x6e\x9e\x58\x02\xe2\x36\x39\x0e\x88\xee\x2d\x0c\x99\xc9\xdc\xd3\xa1\xd2\x9a\xb3\xf1\x40\xfa\x5e\x2d\x3e\xa1\x93\x35\xc7\xed\xe3\x58\x85\x20\x22\xa4\x35\x6c\xe1\x20\x69\xaf\x10\x16\x22\x37\xa5\x36\xe2\xfb\xb4\x81\x36\xf0\x20\x2d\x5e\x9d\xb7\x9e\xf8\xf0\x14\x7a\x9b\xb5\xf0\x94\x3d\xac\x15\xaa\xd8\x3d\xf5\x3c\x3e\x8f\x78\x63\x2f\xcd\x80\x5b\xcd\x14\xca\x73\xdd\xb6\x6d\x38\x47\x06\x85\xcc\xbf\xa0\x7f\x20\xdc\x9f\xd4\x3e\xa9\x09\xe5\x9b\xd6\xb3\xdd\xc3\x52\x7a\xc0\xac\xdf\x30\xbc\xb0\xfb\x52\x1a\x01\xc0\x47\x60\x85\x47\x6a\x73\xa3\xd9\x9d\xd4\x0b\xac\x64\x0d\x17\xa2\xc7\x65\xa4\x80\x8a\xe6\xd3\xd8\xe7\x78\x77\x48\xe2\x7d\x1b\x7d\xd7\xde\x75\x2b\x64\xb6\xd8\x29\xeb\xc0\x63\xf9\xb1\x83\x8c\xca\xd7\x48\xc7\x0c\x91\xc5\xa2\xc2\x0e\x47\xdc\x73\xfd\xda\x07\x2d\xd6\x4d\x10\x5e\x75\x31\xab\x37\x22\x09\x4a\x0b\x2a\xe6\x0d\x53\xa9\x63\xce\x86\x40\x68\x7e\x42\xf6\xd6\xc2\x74\x5c\x1a\xd6\xca\x52\x6a\x17\x53\xef\x4d\x66\x1b\xcc\x18\x81\xc1\xf9\x43\x37\xe1\xb8\xa8\x35\x6f\x2b\x6b\x10\x05\xf0\x10\xe6\x55\x00\x69\x68\x68\x4b\x20\xe4\x47\xad\xad\x71\x0a\x45\x8e\xc0\x96\x07\x2b\x74\x06\xdb\x08\xde\x8d\x6c\x81\x85\x58\x65\x84\x67\x26\x58\x6a\xd4\x1e\xac\xc5\x7b\x53\x8b\x69\x22\x99\xb6\x11\xd0\x84\xb6\x64\x73\x41\xee\x78\x91\x9a\x9d\x5b\xae\x78\x29\xa7\x32\x93\xe5\xda\x08\x41\x22\xb7\xb1\x4d\x2e\x00\x49\x6a\x3c\xbb\xa0\x14\x3f\x06\x29\x9a\xaf\x8b\x14\x6a\x51\xa8\x5b\x67\xd0\x40\x00\xd9\x8f\xb1\x95\xd2\xc8\xab\x62\x29\x4b\xc3\xb6\x79\x01\x86\x50\xe2\xc8\x28\x50\x18\x11\x27\xf8\x64\xcd\xb6\x6d\xed\x64\xf5\xa4\x4b\x6b\xc8\x3b\xbf\xbc\xb0\xf7\x5c\xce\x73\x23\xcf\xd2\x7e\x6f\x8b\x8d\x0a\xb3\x32\x6a\x61\x58\x84\x6e\xb6\xe4\xc5\x27\xb4\x87\xd3\xfb\xb6\x52\x62\x2d\x2a\x4c\x8b\xb2\x81\x08\xea\xe0\x51\x69\x3f\x7e\xb6\x18\xbc\x81\x87\x83\x62\xd7\x6a\xb7\x99\xee\x48\x88\xe0\xbb\x4f\x35\xb6\x1e\x65\xc6\xcf\x7d\xa6\xa6\x91\x88\xf0\x95\xd9\x45\xb9\x04\x95\x38\xb4\xf8\x62\x16\xab\x01\x50\xb8\x1e\x45\x2c\x87\x24\x11\xea\x01\x70\x79\x72\xa7\x64\xdb\x4d\x6a\x00\x23\xb0\x83\x9b\x07\x1f\xb9\x1c\x78\x99\x75\x6d\xf7\xc7\xf7\xd7\xb1\xc9\x7f\x5c\xd3\x13\x9d\x6c\x61\x64\x7c\x4a\x20\xd6\x5e\xd8\x37\xfd\xcd\x4f\x23\xf6\xe3\x8f\x3f\xc0\x49\x2c\xab\xac\x94\xab\xcc\x82\x88\xfa\x07\x01\xe7\x6a\xf1\x24\xfd\x3b\x32\xc7\xac\x47\x98\x12\xe6\x24\x7d\x1a\xe3\x73\xa0\xae\x81\xe2\x03\xd9\xcb\xb5\xb2\xf1\x30\x02\x50\x41\xaf\xd2\x95\x8b\x42\x55\x73\x34\x61\x5c\x7f\xb8\x80\x69\x12\xd0\xb4\xb9\xe2\xf4\xcc\x65\x83\x54\xb3\x59\x95\xcd\x64\x96\x59\x09\xdb\xb6\x70\x0b\xbf\xfe\x70\xf1\x90\xf7\xe3\xe3\xfb\xeb\x47\xcf\x4f\xbd\x97\x7c\xd3\x55\x15\x21\x6a\xe7\x64\x9c\xee\x74\x81\x1e\x25\x64\x14\x4f\x7f\xc2\xa4\xb3\xdd\x21\x8c\xac\x8f\xed\x7d\x30\x48\x8f\x7c\x87\xb0\x79\x88\xa9\xd9\x56\x64\x16\x1c\x0f\x8a\xa7\xa7\x94\x19\x57\x3c\x98\xcf\xcb\x5c\x9a\xce\x13\x30\x2f\x20\x16\x31\xa1\x58\x25\xbc\xa8\x8c\xaf\x45\xc1\xb4\x48\x2a\xc0\xcc\xae\xdb\x01\x77\x72\x70\xc3\x73\xee\x61\xf5\x43\x49\x8e\x47\xd4\x5e\xfb\x8c\x54\xd2\x77\x80\x3c\x99\xcf\x40\x71\x64\x11\xc0\x72\x13\x08\x86\x83\x98\xac\xac\x86\xed\x84\xa2\x33\xe2\x1b\x34\x54\x99\xe9\x6b\x91\x14\xa2\x1c\x5b\x59\xd0\x79\xc9\x9c\xce\x0c\x2c\xc7\xc6\x9f\x5b\xdf\xa7\x39\xc4\x69\x78\xe8\x6d\xa4\x42\x6a\x1f\xfc\x2d\x67\x2c\x13\xb3\x32\xe4\x49\x4f\x00\x5f\x71\x1b\x9f\xd0\xb0\x31\x3d\x84\xd0\x6b\xd7\xb0\x4d\xfc\xc4\x61\x1c\xb7\xf6\x19\xa0\xe6\x18\x2d\xf3\x55\x39\x92\x71\xe0\x17\x3f\x5b\x5f\x3b\x6c\x98\xf3\x28\x97\x8a\x92\x5c\x4d\xc7\x42\x55\x70\x1e\xce\x7a\x67\x08\xba\xa3\xf9\x3c\x53\xb9\xb7\x0a\xda\x3f\x21\x78\xbe\x59\xbf\xc8\xf1\xd4\x66\x19\x60\xec\x3a\xc3\xf6\x04\x6e\xe1\xe4\xc8\xda\x5c\x50\xe4\x83\xa9\x4f\xeb\xa6\xdc\x51\x6d\x6c\xba\x58\x70\x41\xac\xad\x4f\xe5\x20\x2f\x3a\xe8\x75\x67\x9c\xf2\x36\x1d\xd7\x89\x56\xf4\xd0\xa5\x4f\x63\x62\x11\xa5\xe2\x6f\xa1\x17\x51\xbb\x80\x64\xdc\x19\x09\xdc\x5a\x31\x03\x49\xca\x01\x18\x81\x2a\x6e\xc4\x4e\x35\x63\x97\x2a\x70\xc4\x0d\x4e\xf4\x27\xe8\x44\x1f\x7c\xcd\xcf\xc5\xd7\x3c\x84\xf0\x8f\x1b\x30\x23\x9d\x31\xfc\x28\x50\x04\xc0\x4e\x36\x98\x7f\x2a\x16\xfc\x56\xaa\xc2\x2b\xcb\xd1\xe0\xbb\x08\x71\x8f\xef\x04\x8f\x69\xfc\x03\xb8\xc1\xa3\x0f\xbc\xeb\xe3\x12\xdf\xd0\x63\x13\x12\x0d\xf1\x0f\xcb\x5f\xea\x40\x33\xaa\x82\x3f\xef\x09\x34\x63\x47\x0d\x84\xc5\xa9\x2a\x17\xd6\x6b\x0a\x80\x4b\x64\xd3\x82\xaa\xe5\x52\xb3\xa9\x28\xf9\x29\x15\x4d\xcc\xd9\xab\xf1\x1f\x7b\x60\x23\x99\xd1\x3a\x48\xeb\x7b\x92\x7a\x53\x28\x4c\x42\x75\xb9\x60\x16\xe6\xda\xa9\xaa\x9c\x2b\xa0\xae\x38\xe1\x31\x7b\xc7\x93\x05\x33\x52\x63\x2c\xf5\x4a\x30\x96\x4d\xc1\x59\x5d\x69\xac\x84\x95\xa9\xb9\x4c\x78\xc6\x7e\xbd\x6a\x29\xa2\x80\x45\x10\x54\xc1\x96\x52\x9b\xf6\xa3\xc0\x1b\x15\xc2\x88\xe3\x5c\x5e\xd8\x0d\x23\x67\x33\xd4\x29\xc0\x1d\x37\x0d\xda\xaa\x34\x10\xbd\x87\xcd\x74\x0a\x52\x54\x96\xc4\xac\xc2\x79\xc7\xec\xb7\x29\x32\xd5\xcb\x88\x88\xdb\x5f\x86\x87\x66\xa7\x17\x0e\x06\x92\x24\x09\xf8\x2d\xa5\x1d\x0e\xa3\x9b\x47\x77\x0b\x3c\x1b\x3d\x25\xf3\x76\x9b\x8c\xda\xfd\x6e\xb4\x5f\x0b\xf7\x12\x10\xce\xcc\x4a\xa4\x0e\x0d\x89\x51\x10\x5c\x78\x63\x30\xb8\x77\xe3\x95\x61\xe6\x4a\x93\x1d\x68\xef\xcb\x13\x4d\x7c\xcb\x1d\x0a\xda\xdd\xef\x2a\xdd\xf7\x16\xf9\x87\x25\xb0\x96\xe7\xa3\x5c\x24\x51\x83\xfd\xed\x75\x91\x1e\x40\x17\xe8\x17\xda\xb4\xa9\xcb\x9e\x84\xfc\x7e\x88\x61\xdd\x84\xdc\x88\x95\x3d\xac\x15\xa6\x59\xcf\xe7\xe8\xf2\x9a\xc1\xda\xee\x63\xd4\x6d\xc9\x59\x9e\x24\xd6\x61\xf7\x14\x1f\xa5\x2b\x02\xb2\xf9\x3d\x62\x93\xa7\xf3\x14\x41\x35\x78\xca\x8f\x71\xb4\x1f\xd3\xc7\x5b\x5a\xbf\x47\x58\x09\x18\x2e\x91\x34\x57\x8a\xec\xde\x5b\xef\xd2\x20\x16\x7c\xdd\x62\xc1\x03\x50\xf3\x8e\x04\x88\x46\xdb\x18\x1d\x35\x36\xfe\xd8\x12\x19\x83\x25\xe7\x29\x5b\x72\x76\x4a\x87\xf0\x47\x6d\x37\xba\x7e\xc6\x0f\xf5\x42\x86\xcc\x88\xc1\x5a\x75\xcf\xdc\xd7\x21\x2b\xe2\x5e\x06\xa1\x87\xca\x8d\x68\x4a\x52\x3d\xf9\x8f\x69\x1b\xeb\x0f\x02\x23\x4f\xd0\xf9\xe3\x74\x07\x75\x06\xe2\x3c\xfb\xd5\xf0\xff\x44\x14\x58\x46\x01\x24\x1c\x1f\x74\x83\x65\x5c\xd0\xab\x88\x4a\x46\x37\xdb\x92\xab\x3a\x70\x72\xaf\xeb\xbd\x01\x7e\x79\xdb\x8d\xf6\x00\xcc\xc8\xf4\x56\xc4\x61\xf3\x58\x6b\xa2\x66\x2d\x12\x14\x20\x2e\x19\xe9\x28\xa7\x02\x8f\x64\xb7\x44\x30\x33\x5a\x3c\xc6\x00\x6d\x88\x37\x73\x61\xa3\x56\x97\x3a\xe4\xab\xe6\x53\x91\xb9\x71\xb7\x3e\x6d\x68\xa4\xd9\x07\x5f\x06\x13\x45\x54\x0a\x57\x3b\xd5\x89\x5a\x09\x8a\x11\xd7\x51\x4a\x2e\x46\x76\x6b\xa6\x1d\x75\x80\x38\x72\x0b\xe6\xce\xb4\x58\xf2\xbc\x94\x89\xfe\x73\x50\xfb\x0e\x6a\x00\x50\x49\x48\x59\x52\xe3\x7a\xbd\x51\x88\xf8\xbf\x00\xb7\x95\x5d\x04\x2a\xab\x5a\xb9\x10\x41\x94\x26\x9b\xf7\x17\x42\x84\xef\x16\x2a\x13\x6e\x70\xd3\xf0\xd2\x69\xb6\x66\x71\xd1\xc0\x34\x92\xdf\x00\x27\xde\x4f\xd7\xfe\x67\xaf\xf1\xfe\x6a\x8e\x18\xca\x31\xd4\x16\x00\xdf\xd8\x75\xb8\x4d\xfa\x4b\xfa\x45\xaf\x85\x47\x84\xab\x1d\x2a\xa9\x49\xb4\x6a\xb3\xe2\x07\xbd\x13\x46\xdd\xb2\xb7\xa1\xb1\x77\x4f\xfd\x4e\xf4\xfa\x06\x52\x9e\x63\xcd\xd4\x5d\xee\x47\x3e\x7c\x70\x4a\x53\x3d\xea\xcb\x15\x8c\xf2\x16\x71\x05\xf3\x43\x83\x2b\xa8\xbc\x9f\x29\xfe\x7e\xd7\xb9\x2a\x65\x36\x96\x79\xa9\xcb\x62\x7c\x91\x97\xbf\x16\xd7\x28\x2e\x6d\xbf\xcb\x36\xbd\x0a\x77\xdc\x06\xa6\xaa\x52\x25\x2a\xa3\xeb\x6b\x48\xb5\xab\x9c\xcc\x38\xcb\xab\xa5\x28\x40\x43\x57\x08\x93\x9d\xba\x31\xcc\x0e\xa4\x2d\x2c\xc1\xc8\x95\x04\x52\x91\x92\xc6\x5e\x57\xd6\x91\xc6\x81\x82\x83\xd1\xf3\x7a\xd3\xfb\xa7\xd9\x75\x85\x0b\x9a\xa5\x51\x53\xf6\xe2\xe3\x9b\xcb\x11\xfb\xed\xed\x25\x44\x5c\x5e\xbf\xf9\x78\x79\x62\xcb\x31\x35\xec\x73\x30\xfd\x5a\xdc\x76\xb0\x9a\x34\x88\xc8\xf9\xf8\xe6\xf2\x0b\x46\x46\x74\x44\xec\x37\xda\x7a\x98\x90\x20\xa9\xcc\xbb\x16\x6b\x06\xcd\xee\x2b\x2b\xea\x18\xf1\x6d\xb3\xb0\x96\x24\x41\xa9\x6e\x88\x0d\xaf\xe0\x26\xad\x56\x99\xf4\x06\x56\x47\x46\x80\xb0\xb1\x5f\xeb\x2e\x84\xc0\x24\x8b\x86\x15\x2a\xe5\x98\xab\x68\xe2\xd2\x51\x24\x97\xbd\xaa\x52\xf6\x02\xcc\x39\x14\x66\x6e\x25\x1a\x47\x98\xac\xf1\xc6\x1b\x6b\x4e\x46\xec\xd7\xab\x5e\x06\x9c\x60\x61\x8c\x27\x85\xd2\x78\xa5\x49\xe6\x69\xb5\x52\x18\x7a\x0b\x19\x90\x9e\xe2\x85\x25\x2f\xdb\x9f\x10\x1a\xbe\xbc\xd5\x29\x1e\x19\xd2\x2d\xe9\xcb\xf5\x8d\x7b\x61\xa1\x5d\xcd\xce\xa8\x4c\x60\x79\x1e\x91\x6b\x8c\x4e\xe6\xa5\xb7\xde\x85\x2c\xc6\xe8\x2f\x5a\x51\x52\xef\xda\xde\xfb\x93\x3a\xf4\xc8\x66\xb7\x23\x7b\x20\xf5\xfc\xdd\xce\xf1\xc9\xed\xc6\x88\x46\x8d\x83\x6d\xf7\xd7\x86\xd7\xf6\xbf\xc0\x1f\x9b\xf7\x16\xc0\x4d\xcc\x75\xfc\x42\x17\xd8\xe3\x00\xd3\xb0\xc7\x9a\x65\xca\x50\xf2\x5c\xa5\xa2\xf7\x95\x0f\xf7\xe2\x0b\xde\x79\x07\xdd\x82\xdc\x96\xe7\xeb\x07\xba\xf2\x0f\x7e\xa3\xf7\x08\xb9\x7f\x92\xa2\xf1\x75\x20\xdd\xc1\xe6\x06\x55\x0f\x1b\xc7\x47\xa6\x2c\x7c\x44\x9a\x52\x7e\xcc\xda\x9a\xcf\xcd\x3c\x21\xff\xd6\xcc\x41\xc7\xbe\x06\x00\x7e\xf2\xc9\x22\xbf\xd8\xb8\x7e\x1b\x03\xb8\xb2\xef\xca\x88\x32\xd8\xcb\x47\xea\x93\xfb\x0f\x1f\xed\x05\xdd\xb4\x84\xdb\xd4\xdb\x78\x26\x33\x55\x30\x28\x5b\x12\x39\xc2\x10\x94\xe8\x56\x64\xeb\x3a\x75\xfc\xf0\xeb\x47\x1f\x2b\x0a\xde\xbe\xbe\x5a\x00\xe4\xd7\xe0\x03\x68\x7b\x34\x56\x03\x70\xee\x94\xbc\x4d\x3e\x8e\xee\x86\xd9\xf5\x8f\xeb\x55\x67\x5e\x8b\x25\x79\xf0\xbc\xc1\x28\xe7\x9f\x4c\x7c\x84\x88\xf9\x80\xd6\x43\xac\xc2\x83\x6b\xb5\x45\x78\xe8\x5e\x63\xdd\xfd\x77\xee\xbf\x21\x79\xdc\xc6\x20\xdb\x9f\x37\x48\x8d\x81\x10\x26\x4b\xcc\xba\xf0\x49\x30\x41\x8e\x3c\xa4\x1a\x62\x2e\xd5\xcc\x67\x82\x14\xec\x5d\x70\x7a\x7f\xf6\x17\x01\x16\x64\xcb\x5c\xf2\xdc\x36\xd3\x04\xb0\x04\xa6\x19\xad\xab\x25\xdd\xb8\xd9\xcc\x5c\x99\x77\x14\x35\x0d\xd9\x56\xb0\xff\x34\xda\x8b\xbb\x85\x40\x4b\x47\x01\x93\x86\x0c\x91\x60\x74\x3b\x1f\x1a\xfe\x64\xc3\xf8\x61\x96\xd0\x5a\x55\xec\x8e\x53\xe1\xd0\x42\x96\x02\x0a\x1e\x22\x12\x18\x38\x97\xf0\x3c\x09\xcf\x0c\xb3\x6f\x1d\x20\x82\x4d\x5d\x09\xce\x9c\xfd\x3d\x38\x02\xf6\x8f\x31\x7b\x2f\x3f\x89\x3b\x48\x30\x97\xad\x5f\xb3\x4c\x06\xb3\x20\xe9\x14\x68\xe3\x72\x65\xc5\x1e\xcf\xdc\x82\x99\xd8\xcf\xf3\x68\x02\x68\xe4\x46\xef\x3a\xc6\xce\x87\x33\x7a\xa1\xa5\x39\x3c\x5d\x99\xb7\x65\xbf\x7d\xe7\x4a\x40\xd9\x1e\x2d\x47\x95\xa7\xd4\xce\xb3\x43\x7b\x43\x4a\xc5\xfe\xc7\x4c\xe8\xef\xe1\x5d\x64\xff\x38\x90\x0c\xf3\x48\x65\x9d\x42\xa2\xde\x65\xb6\xed\xa7\x45\xb4\x24\x40\x6f\x29\xca\xde\x68\x6c\xe5\x07\x9b\xfb\x0d\xda\xdb\x54\x20\x68\x86\xcd\x8f\x3e\x7c\x0a\x7a\x18\xbe\x1f\xea\xac\xd7\x3e\x1f\xbd\x3f\x54\xff\x07\x50\x31\x27\x47\xfb\x54\xfb\x87\xae\x5d\x13\x77\x09\xe0\x30\x75\xa7\x31\x87\xd9\xe1\x88\x25\xf1\xc7\x97\x27\xf7\x5b\x09\x5f\x8a\xc6\x3a\x30\x47\xd2\x4c\x44\xe6\xe5\x0f\xdf\xb7\x2f\x52\xe6\xa5\x98\x87\xc1\x04\x87\x51\x52\xb1\xb6\xf7\xb7\x5e\x4b\x1a\x77\x61\x28\x28\x3d\x14\x94\x1e\x0a\x4a\x0f\x05\xa5\x87\x82\xd2\x4f\xb4\xa0\x74\x94\x60\xd9\xbe\x1d\x4f\xb9\xe8\x74\x83\xd7\x0e\x95\xa7\x87\xca\xd3\x7b\x4b\x2b\x7b\x96\x9f\xde\x5d\xa3\x39\x5c\x41\xe9\x48\xcc\x1a\xca\xd5\x0e\xe5\x6a\xbf\xca\xb8\xc8\x21\x66\xf0\xb9\xc4\x0c\x0e\x19\xae\x11\x45\x1e\x6a\xd6\x76\xec\xcf\x50\xb8\xf6\x8b\x15\xae\x85\x83\xd8\x37\x92\xb4\xd5\xbc\x33\x94\xb0\x7d\xe4\x12\xb6\xb4\x47\xf5\xfa\xb5\x5b\xca\xd7\x6e\xad\x43\xdb\x07\x55\x26\x70\x84\xc4\x26\xe9\x16\x68\xd0\xdd\x39\x52\xb0\x80\xc7\x0f\x06\x8b\xd7\xb6\xda\x0e\x7b\xfa\x30\x56\xe3\xa1\xca\xed\x50\xe5\x76\x50\x20\x06\x05\x62\x50\x20\x06\x05\x62\x28\x75\xfb\x74\x4a\xdd\x1e\x4e\x56\x1e\x8a\xde\x7e\x83\xec\xe9\x09\x17\xbd\x6d\x91\x3b\x77\x36\x7b\x0f\x8c\xf8\x19\x32\xe2\xa1\xf2\x6d\x1b\x29\x7e\x3c\x1e\x31\xd4\xc0\x1d\x6a\xe0\x0e\x35\x70\x9f\x69\x0d\xdc\xe8\xb9\x0f\x85\x70\x07\x09\xb0\x4b\x02\x7c\x70\xd1\x6f\x90\xfa\x06\xa9\x6f\xa8\x86\xfb\x64\xab\xe1\x1e\x4e\xb8\x1c\xea\xe2\x0e\x75\x71\x87\xba\xb8\x43\x5d\xdc\xa1\x2e\xee\x50\x17\x77\xa8\x8b\xbb\x73\x58\xf9\x43\x2a\x82\x5f\xb2\x04\xe9\x97\x49\xfa\x3a\xaf\x57\xf4\x63\x09\x5f\x41\x00\xb0\x9a\x91\xa4\x10\xd1\xdc\x2d\x65\x47\xcf\x43\x84\x06\x35\x63\xc7\x34\x22\x06\xac\x83\xec\x72\xdc\x56\x70\x34\x36\xa2\x34\xeb\x1a\x95\x5b\xea\x4a\xa9\xc2\xce\xdf\xcc\x12\x70\x7b\x21\xd7\xc2\xe5\xff\xce\x33\x35\xe5\x2e\x63\x7b\xa8\x2e\x3a\x54\x17\x1d\xaa\x8b\x7e\xd3\xd5\x45\x9b\xaa\xd8\x7d\xec\x2e\x43\xd1\xd0\xaf\xa4\x68\x68\x74\xec\x3b\x54\x0e\x7d\x50\x69\x63\x28\x08\xfa\xe5\x0a\x82\x36\x2e\xc4\x50\x15\xf4\x9b\xad\x0a\xda\x4a\xda\x87\x3a\x9f\xcf\xb2\xce\xa7\x4a\x81\x76\xfd\x7a\x2b\x0a\x33\x8b\x2d\xcf\xde\x36\x61\xba\x2c\x2a\xb0\x87\x37\xec\xb1\x56\x22\x54\xb6\x69\xfd\xe1\x17\x55\x8e\x0e\x53\xc0\x97\xeb\x03\xc2\x9a\xfe\x2c\x3f\x8b\x86\x16\xe8\x1d\xae\x97\xed\x3d\xd9\x5e\x6e\x87\xb1\xd3\x1f\xfe\x57\xc5\xf3\x52\x96\x5b\x2a\x0f\xd4\xfd\xc6\x34\xd3\xfa\x9e\xcc\xe8\xc7\x3d\x77\x66\xe3\x59\x1e\xe4\xd4\xaf\xaa\xbc\x94\x4b\xd1\x15\xdd\x1f\x36\x73\xea\x18\xf7\x11\x1c\xc4\xbc\x8c\x46\x87\x2d\xad\xf8\xe2\x69\x25\xa9\x7c\x48\x6e\xa3\xf1\xa4\x17\xa2\x1d\xe6\x46\xa0\xeb\xc5\xe3\x06\x8d\x8b\x2a\x07\xd1\xd9\x35\xd2\xf8\xa0\x01\xb8\x30\xfc\x82\xb0\x96\xd1\x1c\x81\x7b\xa2\x14\x61\x30\x4e\xa8\xc2\x03\x39\x16\xea\x56\x82\x53\xb9\x40\x0f\x6f\x90\xa7\x40\x4b\xb9\x54\xa9\x4f\x51\xf8\xaf\x6a\x2a\x32\x01\xef\x1d\xd3\xdf\xb1\x00\x0f\xbc\x60\xa1\x55\xe6\xec\x4a\xe1\x8c\x80\x36\xba\x81\xad\x69\xd6\xde\x80\xd2\xa2\x2f\x7a\x2d\x28\x15\x25\x97\x99\x1e\x31\x2d\x84\xf3\x62\xc5\x3a\x6c\xaa\x12\x7d\x96\xa8\x3c\x11\xab\x12\xfe\x83\x36\xe5\x8c\xb6\x0e\xb3\x24\xce\x06\xa7\xfc\x53\x76\xca\x63\xe0\x51\x57\x68\xd3\x5f\xb1\x55\x84\x01\x27\xd0\xe9\x95\xad\xc1\x3a\x45\xaf\x85\x2a\x26\x05\xf1\x28\x0e\x36\xf0\xcd\xd5\x85\x37\x9d\xe0\xdf\x40\x17\xaa\x34\x14\x24\xa3\x08\x28\xc0\x33\xb4\xe7\xe7\x22\xa1\xcc\xef\x54\x68\x8a\x04\x27\xf3\xbe\x2c\x7c\xb1\x8b\xb3\x52\xa9\x60\x93\xea\xe5\xcb\xef\xff\x00\x5f\xab\x29\x7d\xec\x02\xad\xbb\x16\x73\x8f\xb2\xfd\xe9\xcb\x05\x09\x73\xb7\x5c\x66\x9c\x2a\x5a\x21\x32\x0c\xe2\xa2\x9a\x95\xb9\x96\x56\xb2\x30\xaf\x0a\xf9\x7d\x21\x98\xf8\x67\x25\x6f\x79\x06\xa8\x2f\x61\xdf\x5a\xe0\x15\xb7\xc3\xb0\x84\x43\xb8\xd6\xe4\xa8\xa8\xf2\x64\x72\xc4\x96\x72\xbe\xf0\xea\xa3\xdb\x38\xf3\x57\xf6\xeb\x9b\x0b\xb7\xc9\x2f\xb0\x04\x81\xe1\xef\xb7\x82\xbd\x97\x79\xf5\x39\xa0\x49\x27\x0d\xc8\x0b\x43\xb7\x6c\xb8\x4f\x83\x6e\x99\xcd\xb5\xc7\x6b\xad\x47\x99\xba\x13\x05\xc2\x5f\x9a\x3d\x54\xc5\xd2\x6e\xf1\xdb\x0f\xd7\xec\x3d\xfa\x25\xae\x7e\x7e\xc3\x5e\xbd\xfa\xfe\x87\x13\x1b\x32\x64\xce\x95\x90\x11\xef\x19\x8a\x35\xc4\x52\x3c\x97\x58\x8a\x9e\xa9\x2c\x5f\x34\x5d\x45\x35\x05\xd1\x5e\xcb\x6e\x4a\xb2\xdb\x96\xe8\x64\xd9\xfb\x49\xb0\x51\x7e\x70\xc8\xe1\xc7\xed\xbc\x7b\x92\xf7\xe2\xde\x86\xd5\xa5\x95\xd1\x03\x4f\xc5\xad\x84\xc0\xba\xb3\x95\x4a\x4f\xed\xa4\xce\x26\x79\x2d\xd2\x32\x07\xc4\x4c\xa6\x4b\x5e\xc0\x63\xbb\x7d\x35\x7e\xf5\x47\xfb\xf8\xc1\x92\xb6\x50\xb9\x2a\xa8\x56\x23\xbd\x2f\xa0\x69\x22\xc7\x22\x94\x28\xd8\xb8\x7d\x99\x09\x0e\x6e\xe6\x0d\xba\xa0\x9b\xe0\xde\xc7\x74\xed\x87\xd8\x1a\xd9\xe3\x9a\xb1\x85\xca\x52\xc2\xb9\xf4\x3f\x26\x2a\xd7\x65\xc1\x21\x59\xbb\x06\x28\x0d\xcc\xcb\x1e\x17\xe9\x74\x52\xc7\xc2\x27\x30\x2e\x1c\x0d\xa9\xb3\x99\x1e\xed\x8c\x05\xa8\x92\x98\xf1\x1c\x7c\x54\x6a\x96\xcb\x6c\xd4\x32\x5e\xc8\xd1\x00\x91\xdc\x0b\xc2\x46\xdc\xcc\x10\xd7\x7b\x7b\xf8\x66\x7b\xb4\x90\x15\x0d\x1e\x33\x5e\xc8\x1c\xd5\xb6\x48\xa1\x48\x7d\xd8\x1c\x2a\xb4\x4b\x94\x50\x8b\x62\xd2\x11\x8d\x5a\x6f\x1a\x03\x67\x45\xa7\x33\xd4\x24\xfc\x1a\x84\xe0\x27\x55\x93\xb0\x4d\x51\xbe\x8f\x15\x6d\x10\xa6\x9e\x8b\x30\x35\x14\x23\x7c\x7c\x26\x73\xc0\x2a\x84\x4d\x31\x64\x0b\xe2\xb6\x67\xfd\xb1\xce\xbd\x41\x10\x99\x81\x9b\xd7\x08\x12\xc4\xfe\x51\x60\x8c\x04\xc4\x1e\x68\xdc\x2a\xdd\x58\x6e\xaf\x9f\xfd\xb3\xaf\xf5\xbf\xb6\xdc\xf0\xc3\x70\x71\xb5\x85\x7a\x45\x18\x44\xd2\x4b\x6d\x41\x34\x95\xb7\x49\x4d\x0d\xd9\x68\x8c\xe5\xc5\x50\x5b\x6e\x4a\x4e\x2e\xa8\x73\x5a\x93\xc8\x38\x5a\x12\x82\x42\xef\xd0\x59\x47\x45\xdd\xa3\xa1\xa2\xf9\x4b\xcd\x96\xa2\x98\xfb\xc0\x3e\x2c\xb2\x02\x51\x48\xa0\xb7\x07\x8d\xc7\xec\x3c\x5f\x47\x8e\x80\x2c\x63\x18\x04\x4a\x46\x39\x92\xea\x90\xb1\xa2\x49\x90\xa7\x50\xf8\x7a\x63\xd8\x41\xc3\x68\x1b\xba\xcb\x55\x46\xd5\xd9\xbb\x18\x5e\xd0\x12\x2d\x23\xab\x95\xc8\x53\x91\xb2\x17\x80\x43\x0e\xde\xe9\xb4\x5a\x65\xe0\xd4\xd2\x27\x66\x9e\x7d\xe4\xdf\xb4\x2a\x30\x7f\x89\xd6\x30\x62\x02\x2a\x1f\x40\xe9\x0c\x56\xe5\x52\x39\x93\x24\x55\xe5\xa0\xa3\xc6\xe9\xf8\xf4\x36\xb3\x37\x46\xec\xa8\x9b\x3a\x0f\xc4\x87\x5d\x4e\x97\xdb\x86\xbe\x5c\x38\xfa\x53\x44\xae\xcc\xcd\x3e\x75\x8d\x4b\xb5\x94\xc9\xe1\x4c\xeb\xe8\x4e\x1d\xbc\x2a\xdf\xa0\x57\x05\x8f\xfe\x5b\x72\xad\xbc\x48\x6c\x04\xcf\xc9\xf3\x73\xb3\x04\x72\x99\xc8\x17\x3c\x4f\xd0\xb4\x7a\xf6\x49\xac\x34\x08\x63\xe6\xd8\x63\x2f\xcb\x78\xd9\xa3\x7e\xf0\xa0\x62\x0e\x7e\x96\xc1\xcf\x32\xf8\x59\x5c\x9b\xc1\x34\xf0\x5c\x4c\x03\xdf\x82\x9f\xa5\x26\xe0\x3e\x41\x67\xcb\x8e\x1c\xfc\xfb\x97\xaf\xfe\xf4\xf2\xfb\xef\xff\x70\x1a\x7a\x5a\xc6\xcb\xb4\x96\x8f\xc1\xb3\xd5\xc2\x96\x26\xe3\x40\x13\x03\x24\xd5\xdb\x57\xe3\x57\xff\x3e\x7a\xca\x7e\x17\x3c\xb6\xc1\xf9\x42\x7b\xfb\xfc\x9d\x2f\x3b\xe7\x69\x6f\x52\x62\x06\x37\xcc\xb7\x25\x23\x3f\x41\x37\x4c\x8b\x66\x3d\xf8\x62\x06\x81\x6b\xf0\xc5\xb0\xa7\xe7\x8b\xb9\x17\xdf\x19\xbc\x32\x83\x57\x66\xf0\xca\x0c\x5e\x99\x83\x79\x65\xb0\x7c\xb5\xa3\x2f\xe7\x08\xe2\xf2\xe6\xfa\xe2\x6d\x21\x6f\x23\x43\x60\x43\xb2\xac\x35\x0d\x95\x58\x97\x94\x2a\xf3\x4c\xe6\x82\xbd\xb9\xbe\x60\xd4\x0a\x4b\x50\xba\x5a\xdc\x74\x43\x2b\xfd\x10\x75\x98\x0b\x31\x97\xba\x84\xb2\x05\x61\xa6\x95\x99\x4d\x8a\xcb\xdb\x33\x87\xa8\x9d\x2d\xc1\xec\xba\xb8\xd2\x6e\x07\xf1\x73\x26\x3e\xff\xae\xb2\x6a\xb9\x0d\x08\xaa\xd1\xb6\xf5\x28\xcc\x9f\x6f\xf1\xcf\xf7\x3a\x83\xb4\x7e\x31\xda\xa6\x84\x8d\xda\xd2\xdc\x82\x69\x60\xa3\x03\x17\xad\xa4\xe9\x1d\xf6\x18\xfe\xaa\x74\xd9\x51\x1b\xba\xd6\x32\xd2\xb6\x20\xf1\x8d\x16\x9d\xa8\x1c\x79\x21\x31\x20\x6b\x9d\x45\xb3\x07\x79\x85\xa8\xa8\x3c\x14\x80\x35\x64\xb1\x54\xe6\x74\xc6\xec\xc2\x01\x5f\x52\xe5\x93\xa0\xc4\x2d\x1e\x22\x39\x97\x7a\xd6\x7c\xc4\x3a\xa5\x1d\x67\xe9\x1b\xda\xf3\x8c\x3e\x6b\xed\xd2\xe1\x22\x7d\x8a\x28\xcc\xd9\xa1\x76\x5a\x6e\x7b\xf3\xdd\xcd\x98\x7d\x2c\xb8\x44\x21\x25\xe3\x80\x81\x62\x18\x45\x59\xc8\xe5\x52\xa4\x88\x20\x71\xcb\x33\x99\xf2\x32\xaa\x98\x4d\x9f\x25\xee\x08\x1f\x85\x02\xb7\x93\x7c\x92\xbf\x43\xa3\xba\x7e\xcd\x6e\xce\x66\x4a\xdd\x50\xb5\x7d\xcc\x86\xc4\x9f\x46\xf8\x7f\xcf\x6e\x80\xfc\xdf\xd8\x3a\xb3\x37\x71\x0f\x87\x67\x85\x3f\xa7\x37\x4c\x15\xec\xe6\x4c\x94\x09\xb4\xda\x03\x46\x41\xf0\xf4\xd7\x3c\x5b\x77\x6c\x35\xac\x3a\x2a\x90\x02\xd7\x03\xa7\x12\x6c\x70\x4b\x29\x71\x5b\x72\xd6\xc8\x24\x72\x06\x46\x1d\x7b\x18\xaa\xca\x4b\x5b\x66\x16\xa7\xb1\xe1\xcd\x4d\x95\xca\x04\xcf\x0f\xcf\x56\xde\x51\xb0\xf6\x96\xf7\x63\x9b\x30\x08\xec\xd6\xd6\xb2\x09\x15\xaf\x4b\x14\x92\x8c\xca\x07\xaa\x63\xa9\x20\x53\x99\xcb\x1c\x5f\x8a\x91\x6f\xa1\xa8\x12\x9f\x89\x72\x1d\xca\xb6\x61\x81\x7a\x5d\x4d\xbd\x61\x75\x66\xc4\xbb\x31\x0b\x6a\x2f\x9b\x41\x41\x76\xd2\x15\xa0\xd5\x30\x1b\x61\x6e\x7a\x27\x85\xb0\xe2\xc3\xe5\xaf\xd7\x1f\x09\xf2\x60\x3c\x1e\x9f\x99\xf7\x69\x0b\xc7\x2a\xe4\x33\x54\x4d\xd6\xf6\x1f\xec\x39\x4f\xdb\x9e\x93\x8a\x4c\x94\xe2\xd7\x55\xab\x5c\x7b\x0f\xdd\xfb\x6d\x34\xee\x36\x0d\x26\x6a\x69\x51\x63\x08\x25\x3c\x1d\x4c\x34\xcf\xdb\x44\xd3\xd3\x27\xe6\x9b\xd5\xb0\x25\x40\xcd\x23\x81\x6e\x2a\xa0\x8a\xae\x21\x3c\x71\x05\xb9\x2e\x3a\x7e\x40\x5b\x09\x92\xfe\x76\x33\x89\xe3\x03\x87\x33\x8f\xd4\x38\xcd\xcf\xd7\x7f\x31\x13\xb9\x2e\x8d\xba\x37\x5f\x37\x5f\x75\x7d\x5f\xdb\x3b\x44\xc4\x55\xd3\xdf\xa0\x10\x3b\x10\x3b\x45\xad\x1c\xc8\x11\xb0\x87\xa8\x71\x9f\x22\x88\x3c\x9f\x77\x82\x2b\x61\x23\x94\x8d\x16\xc2\x89\xec\xf4\xb3\x9a\xb1\x99\x66\xb0\xf7\x7a\xcc\xd8\xc5\x0c\x00\xf3\x51\x88\xc9\xe4\x27\x08\xa5\x98\x29\xf3\xae\x9d\x1e\x60\xdb\x23\x66\xa0\x91\xc8\x42\x3c\x45\x18\xd7\x03\x3d\x40\x48\x03\x24\x4f\xc1\xba\xa1\x66\xf4\x95\xad\x55\x6f\xc4\xd3\x5f\x2a\x5d\x5e\x55\xf9\xf9\xa1\x34\xe7\xda\x71\x5e\xbc\xbd\x32\x13\xba\x97\x35\xbb\x88\x61\x74\x5b\x37\x19\x00\x12\xeb\xa7\xed\xc4\xf3\x54\x26\x80\x9e\x73\x67\x7e\xa1\x0b\xe3\xc2\xc2\x2c\xae\x2a\x41\xba\xbc\x51\x79\x29\x3e\x97\x0f\x0d\x4f\x51\xdb\x27\x50\x3b\x54\x51\xe2\x6e\x6d\xbe\xed\x51\xbb\x20\xac\x0e\x8f\xdd\x22\x78\x21\xc0\xd2\xee\xea\x49\xa4\x9f\x4c\x95\xbd\x43\xe1\xf5\xd9\x59\x4d\x59\xf2\x2e\xfd\x64\xc9\x9d\x62\x62\x3e\x60\x0b\x41\x9a\x15\x8d\x10\xe5\x46\xcb\xdb\x7a\xdc\x09\x82\xa7\x99\xee\x32\x2f\x7f\xf8\xbe\xfd\xb4\x8c\x9c\x33\xf7\xca\x64\x8d\x15\xc8\x2e\x59\x6d\x29\x73\x7f\xa9\x02\xe0\xdf\x87\x99\x5a\x4f\xfd\xd8\x4c\x7b\x14\x6f\xef\x81\x74\x65\xfb\x56\xb7\xe0\x23\x61\x0b\x5f\x00\x85\xb3\xa5\xcc\xcf\xcc\x01\xa2\x60\x1a\x51\x37\xc0\xd4\x7f\xdb\x47\x7a\x7e\x8c\x3b\xf2\x87\x1f\x9f\xec\x1d\xe9\x3f\xb5\x2f\x7e\x47\x2e\x55\xfa\x56\xea\xa2\x82\xf5\xff\x54\xa5\x73\xb1\xcd\x75\xde\xd2\x9a\x2a\xf7\x2a\xa7\x08\x22\x25\x81\x3d\x33\x87\x9c\xba\xf6\x48\xbf\x08\x62\x11\x34\x3b\xb2\xcf\xc7\x45\x39\x0c\x01\x1b\xf4\xb3\xa7\xac\x9f\x0d\xaa\xce\x33\x54\x75\x5a\x3f\xb9\x57\x45\xce\x6e\x0a\xd3\xab\x28\x27\xc2\xde\xd1\x1b\x2c\x83\xea\x9c\x53\xb1\xe0\xb7\x52\x15\xf6\xf7\x96\x0f\x6c\x0a\x4a\xdb\xaf\x06\x7f\x8f\x05\x75\x63\x28\xfe\x02\x48\xac\x22\x41\xf8\x50\x35\x85\x10\xbb\xb4\x06\x9c\xd8\xb1\x94\x27\xa2\x34\xb6\xf1\x8c\x07\xd3\x1f\x5b\x3e\xd6\x11\xdf\xb5\xa1\x47\x5b\x01\xa8\x96\xa6\x83\x71\xf0\x69\x33\x9f\xd6\x60\xaf\x03\x29\xb7\x6d\x17\xfb\x3e\x8a\xee\xc0\x28\x9f\x0b\xa3\x74\x61\x5b\x3b\x8b\xee\x8f\x1e\x1a\xb5\x23\xe5\x3e\x70\x70\x54\x4f\xe6\xbf\x13\xf5\xb6\x25\xba\xad\xa1\x75\xe5\x88\x63\x3b\xc3\xec\xa3\x9e\xfe\x96\xbb\x4c\xa2\xfb\x5d\x93\xaa\x94\xd9\x58\xe6\xa5\x2e\x8b\xf1\x45\x5e\xfe\x5a\x5c\xe3\xcd\xdc\x26\x0b\x9c\xc7\xbe\x2c\xab\x64\xcb\x19\xe3\x25\x5b\x1a\x41\x61\x52\x9b\xe3\xe4\x08\x0d\x3b\x18\xb5\x84\x66\x9f\xc9\x91\x8d\x61\x9a\x1c\x81\x39\xb2\xf2\xed\x19\x9f\x95\x02\x21\x7c\xed\x97\x46\x4c\x8e\xc5\x98\x89\x5b\x91\x43\xd8\xd1\x54\x23\xc0\xff\xcc\xb7\x12\x29\xe6\x1c\x45\xf9\x50\x2a\xc7\x3a\x46\xab\xc2\x74\x2d\x9d\x23\x33\x2f\x79\xb1\x76\xa3\x6b\x48\x1b\xc0\xd4\x28\x43\xb3\x5e\x86\x8e\xbe\x65\x55\x62\xa6\x25\xc4\x1a\x19\xed\xd9\x01\x0d\x83\x61\x73\x62\x14\xdc\x73\xbf\xd6\x0d\xe2\x5b\xd8\xe8\x89\x1d\x1a\x96\xcf\xa8\xaf\xa3\xe3\xcc\xc0\x94\xa7\x4b\x32\xe8\xed\x70\x76\x60\x77\xde\x72\x7e\xec\x1a\x8c\xcc\xf6\x0c\xc1\x04\xbd\xfb\x11\x4e\x8e\x5e\xbd\x7c\xf9\xff\xdf\x78\x1a\x7a\x43\x68\xe1\x7d\xa8\x2c\x9f\x8a\xcc\x85\x2c\x6e\x3b\x0c\xcc\x71\xfb\x67\x25\x8a\x35\x96\xa8\x80\x9d\xbe\x5b\x28\x2d\x82\xf5\x10\x98\x2a\x9f\xfb\x38\xb3\xc0\x1c\x31\xdd\x59\xbe\xbe\x07\xd1\xeb\x02\x8c\xdf\xd8\x27\x0c\x1d\x6a\x2f\x4f\xec\x55\x88\x76\x7a\xc8\x68\x20\x23\x14\x94\x05\x97\x19\xde\x9f\xc4\xbc\x49\x8f\x42\xcf\x99\x5e\xeb\x52\x2c\xfb\x54\x36\xc6\x1c\xea\xbf\x0a\x9e\x95\x8b\xae\x08\x0a\x8b\x10\x9f\x57\xcb\xa9\x00\x9d\x6d\x81\xfd\x62\x43\x0f\x3b\x8c\x0d\x98\x74\xc4\x7e\x53\x5b\xca\x5c\x2e\xab\xa5\x53\x2c\x1f\x69\x8a\x78\x3e\x22\xbd\x34\x83\x3f\x0e\xae\x81\x7f\x62\x1f\xe5\x72\x8b\xf3\xa6\xee\x06\x0f\xa7\xea\x81\xff\x9b\xd7\xb0\xe5\xf5\xb1\x3b\xae\xd9\xaa\x50\x89\xd0\xda\x3f\x3f\x28\xe8\x02\x42\xaa\x6f\x18\x86\x81\xd8\xd4\xdb\x69\x55\xb2\x05\xc7\x18\xa5\xb5\x30\x82\xa8\xc8\xbd\xd2\x4c\x83\xb5\x59\x23\xc3\xf2\xc5\xe7\xe0\x8a\xb5\x0e\x13\x0b\x99\xbf\xe4\x2b\x2f\x10\x43\xbe\xee\x9d\xad\xd5\x15\xcc\xce\xcf\x3c\xa4\xc3\x61\x6c\x4a\xb3\xbb\xf9\x1a\x44\x16\x8b\x1c\xe2\x52\xde\xfe\x14\x42\xe6\x73\xcd\x16\x1c\xb2\xff\x61\x31\x54\x83\x06\x2a\x74\x8b\x4c\xc0\xe8\x2f\x54\x41\xc4\x9f\xc3\xd0\xaa\x2a\xa9\x66\xdb\x27\xb1\xb6\x84\xdf\xcc\xbf\x25\x8c\x2f\x0c\xa0\x45\x1d\x82\x1a\xed\xb9\x44\x07\x42\xef\x66\x97\xca\x34\x3f\x2e\x99\x4a\x92\xaa\xc0\xba\x3e\x6e\xc5\xc0\xc3\xca\x85\x30\x3a\x81\x77\x51\x41\xb5\x32\x91\xfa\xdd\x86\x74\x06\x5e\x95\xca\x5c\x9e\x04\x24\x02\xb3\x4f\x5b\x8f\x91\x36\x44\xab\x25\x2e\x05\xe6\x05\xc9\xdb\x25\x84\x5b\xcd\x95\xd0\x4c\x2f\x95\xb2\xf1\xc9\x66\x7f\x7c\x5d\x71\xb1\x5c\x95\x6b\x57\xce\x00\x64\x2b\xda\x30\x1c\xec\x3d\x2f\xe6\x22\x78\xf9\xc2\xa8\x2b\xb6\xc0\x02\x6e\x36\x2a\x53\x29\x44\x46\x9b\x4d\x9b\x66\x62\x49\xd0\xfb\x66\xfd\x76\x7f\xea\x0e\xd7\x3e\xf1\xdb\x9e\x1b\x69\x0a\x57\xec\x0a\xa6\x75\x13\x85\x4f\xfb\xee\x41\x41\x77\x5f\x91\x92\x0a\x40\x1e\x9a\x82\x89\xcf\x58\x77\xb2\x8d\x80\x35\xc2\xce\x4b\x9e\x05\xdb\xbb\x42\x42\x52\xe5\x65\x10\x8a\xdf\xe0\xc9\x87\x9e\xb0\x25\x1c\x7f\x11\xb9\x8d\xfe\xde\x3e\xed\xc0\x58\xc7\xe6\xae\x93\x27\x40\xf0\x9c\x40\x33\x76\xc9\x08\xe6\xb5\x23\x27\x1e\xb3\xb7\x8d\x63\xc5\x20\x05\xf3\x42\x2c\xbb\x0e\x89\xa8\xd4\x18\x59\xe9\x82\x05\x9b\x13\xc6\x7a\x80\x60\xda\xb9\x7c\xfb\xd3\xb1\xd3\xfe\xfd\xec\x1e\xd5\x21\xd5\x72\x71\x47\x1b\x05\x84\xcd\xfc\x79\xd3\xa5\x3a\x9c\x73\xcb\x46\x01\x5c\xa2\x56\xbc\x55\x00\x8b\xdb\xb2\xb9\x11\x2c\xa9\xce\x0d\xc7\x42\x6a\x66\xfb\x97\xfc\x93\xa8\x55\xd5\xe3\x90\xf3\x10\x45\x1d\x30\x0a\x3b\x88\x9d\xf6\x7c\xb5\xca\xa4\x75\x7b\x59\x8a\xed\x60\x1f\x06\xcb\xe3\x93\xb6\x3c\x0e\xd6\xbc\xe7\x62\xcd\xeb\x19\xe1\xf7\xb4\x6a\xb5\x1f\xde\x2d\x17\xd3\xbb\x4e\xa7\x9c\xc6\xe2\xa9\x9e\x98\x50\xd4\x91\xc8\x21\xa0\xed\x29\x86\x37\x36\x19\xc0\x43\x5a\x3a\xe3\x4f\x75\x7b\xa9\x9a\xed\xe3\x04\xf5\x26\x4b\x1a\xf0\x08\xbe\x06\x46\xd1\x07\x8f\x40\x3e\x12\x1e\x41\xa7\x44\x34\xf8\xb7\x06\x8e\x38\xc0\x12\xb0\x2f\xc0\x8b\x1e\xdc\xf3\xd6\xc2\xdf\x77\xe0\x47\xd7\x9d\xec\xbe\x9b\x09\x19\xd5\xf0\xb2\x90\xb7\x32\x13\x73\xf1\x4e\x27\x3c\xeb\xa3\x7d\x6f\xea\xe6\xa1\x41\x35\xb8\x5d\x40\x83\x4a\x78\x64\x95\xc3\xcc\xbc\x95\xed\xcc\x84\xeb\xdd\x2c\x71\x9c\x86\xa5\x30\x8b\x6a\x13\x12\x5e\x33\x09\x6f\x54\x5b\x62\x90\x74\xdd\x59\x9a\xb9\xde\x9e\xe2\x27\x61\x1c\xcb\x09\x82\x24\xed\x94\x5a\x45\xc8\x09\xe2\xf3\x2a\x93\x89\x2c\xb3\xb5\xcd\x4d\x04\x4b\xd7\x54\xa4\x29\xe1\x14\x58\xfc\x40\xf0\xe7\x40\x41\x6c\x34\x84\x91\x65\x90\xac\x59\x56\x7d\xcd\xd7\xc1\xb7\xa2\x22\xd8\x33\x55\xd8\xd9\x88\xd5\x42\x2c\x45\xc1\x6d\x1a\x63\x94\xca\x07\x35\x5d\x00\x79\xac\x1d\x53\x8c\xaa\x0a\x87\xe6\x5f\x88\x5f\xd7\x36\xff\xfb\x02\x3e\x42\xd9\xd2\x04\x2d\xc6\xe6\xbc\xac\x1f\xca\x81\xf8\x60\x23\xad\xfe\x3e\x6c\xd0\xde\x01\xbe\x42\x33\x41\xd3\x66\xdf\x7a\xc3\xe3\x1e\xb1\x2c\x90\x84\x7f\x09\xe3\x66\xe9\xaa\x93\x0d\x21\x4d\xad\x20\xe5\x8d\x08\x2c\x1e\x35\x0f\xaa\x95\xdb\x4c\x36\x0e\xf7\x84\xd2\x84\xc1\x0c\x51\x95\x0b\x55\x1c\x83\x29\x2e\x29\x04\x3e\x97\xff\xad\x2a\xbc\x71\x86\x53\xa2\xe9\xd6\xcf\x0b\xcc\xd1\x90\x51\xd0\xb6\x16\xc4\xc9\x45\x92\xfc\xb6\x50\xab\xf0\x8f\x8f\x5e\x0e\x96\xd7\xb3\xf1\x7b\x9e\x4e\xd0\xa1\xed\x91\xfa\xbc\x79\x3d\x66\xec\x1d\x3c\x2f\x55\xb0\x5c\x66\x8d\xf7\x95\x65\x61\x6b\x7b\x0a\x90\xde\xcf\xf0\x11\xad\x78\xc1\x97\x86\xba\x99\x2f\x39\x08\x0d\x7c\x43\xce\x76\x5f\x69\x3e\x6f\x49\xdb\xd7\x91\x3b\x1a\x9b\x4e\x8e\xe8\x6f\x93\x23\x2a\x54\xff\x90\xcf\x28\x00\x45\x38\xc0\x41\xd9\x8c\xfd\x9e\xc7\xe4\x9a\xb7\x1d\x92\x4b\x47\xd7\x63\x3a\xa2\x96\xb3\xf1\x8d\xa2\xa3\x79\xc8\x1d\x73\xf8\x05\x07\xd8\xaf\xcb\x42\x25\xbf\xa8\x2a\x2f\x3f\x1a\xa1\xb2\x1f\xff\x89\xfb\xb4\xed\x9c\xbd\x50\x71\xcb\xf1\xd6\x8b\x0e\xd7\x15\x60\x68\x91\xb3\x46\x7d\xe3\x6b\xff\x11\x75\xc9\x00\x3a\x21\x6e\x6c\x59\xc0\x2c\xe3\x73\xcb\xe0\x30\xe3\xe9\x4b\xd1\x8f\xdf\x72\xcd\x67\xe2\x7a\xad\x93\x32\xeb\x79\x35\xa3\x2e\x31\x81\x0f\x58\xb8\xdd\xe9\x0a\x5a\x33\x8d\xcd\x63\xf1\x24\x87\xb2\xd0\xef\x78\xb2\x00\x0f\xd5\x1a\xc8\x84\x04\x7f\x02\x67\xab\x8c\xcb\x9c\xfa\x91\x4f\xd0\xf0\xd7\x14\xa8\xff\xe4\xe8\xbb\xc9\x91\xf9\x0f\x42\x53\xe7\x1a\x7c\x74\x12\xfc\xb9\x5a\xa6\x00\xc6\xc2\x21\xbd\x9f\x00\x0b\xfc\xd9\xd3\x54\xc6\xec\x1a\x73\x11\xbf\x63\x4b\xc1\x73\x20\x36\xb5\xd9\x22\xa6\x10\xf9\x9b\x1c\x06\xfa\x02\x15\x7d\x7f\xaf\xb8\xc5\x4e\x68\x2c\x37\xdc\x10\xd3\xe5\x56\xc9\x94\xd4\x7f\xc3\x8c\x62\x30\x09\x31\x9e\x8f\xd9\xe4\x68\xa6\xd4\x99\x59\x1c\x8c\xa8\xe9\x87\x29\x2f\x26\x47\x23\xf7\x8f\x7f\x99\x7f\x88\x32\x19\x07\x9d\xc6\xf5\x4e\xe3\xb0\xd3\x38\xe8\xf4\xd8\x57\x8d\x8e\xfc\x3c\xdd\x45\x98\x68\xef\x64\xdd\xbf\xf4\x57\x0b\xbf\xd4\x14\x2c\x9c\x6f\x02\x84\x82\xba\x38\xc1\xaa\x3c\x13\xda\x27\x36\x83\x11\xd0\x02\x7b\x23\x7a\x7e\xa1\x56\xf8\x77\x2f\x1c\x8c\x19\x4a\x0f\x7c\xdd\x21\x3c\x6c\x98\xfb\x56\xf9\x21\x16\x70\x70\xda\xe0\x7a\x36\x77\x50\x2e\xeb\xef\x0a\x05\xd2\x5c\x08\x44\x11\x81\x48\x80\xb8\xd0\x7e\x9b\x04\x63\xa6\xfc\xc5\x8e\x7f\x3f\xb5\xa9\xa3\xb7\xf5\xa9\x37\xae\x85\x2b\xf8\x7f\xb7\x10\x96\xa2\x60\x68\x00\x08\x9d\x73\x43\x5c\x00\xb2\xd8\x69\x55\x70\x73\x72\x80\x01\x59\x71\x88\xee\xa1\x0e\xfb\x68\x50\x33\x55\x4c\x65\x9a\x8a\xbc\x1f\x69\xad\x37\xdf\x48\x56\x5d\xc3\xa7\x40\x51\x1b\x93\x69\xa5\xa9\x21\x31\x75\x3d\xb6\xd3\x3e\x6c\xb6\x2b\xf1\x8b\x7a\x3d\x19\xea\x37\xd3\x7f\x21\x43\xca\xbd\x3c\x1b\x1b\x10\x07\xb6\x59\xb6\xe8\xcb\x7d\x33\xce\x5d\xc6\xbe\x4d\x39\xa7\x80\xa4\x46\xca\x79\xeb\x32\x8d\xb8\x79\x71\xf9\xa6\xe3\x9e\x53\xab\x9a\xcd\x23\xb0\xc3\x10\x03\x43\xc5\x00\xd4\x82\xbf\x52\x17\x99\x47\xe4\x7a\x9f\x47\x69\xbe\xfe\x41\x94\x77\xaa\xf8\xd4\x63\x9e\xd4\x72\xd7\xb9\xda\x6e\x07\x9a\xef\xe5\xc5\xdb\x1e\x73\xbd\xbc\x78\xbb\xeb\x3c\x4d\x97\x43\xcd\x51\x15\x65\x17\x85\x73\xed\xc2\x79\x22\xad\x71\x60\x00\x2c\x40\xa1\x88\x41\xe3\xc4\xe7\x95\x7a\x30\xed\x25\x46\x35\xb8\xcf\x5b\x77\xbc\xa4\xcb\x81\xe0\x1b\xf6\x31\xff\x4d\x05\x96\x04\xd2\x9e\x59\x6d\x2a\xa6\xb4\xf5\xac\x2c\x2e\xd7\x95\x52\xe5\xcf\x32\x13\x18\x1b\xdb\x05\x5a\xd1\xda\x89\xd5\x31\xc4\x90\xa0\x20\x08\x48\x50\xf2\x83\x0a\x81\x10\x8e\x9a\x19\x0b\xf5\xa9\x42\xa9\x92\xcd\x64\x26\x6c\x80\x2e\xb3\x91\x79\x5e\x48\x8b\x04\xb2\xc0\xd1\x11\x8e\x98\xab\xfc\x74\xf3\xa8\xa8\x82\x5d\x5f\x5a\xd7\x5d\x2a\x72\x07\xcc\x89\xb8\xf6\xb8\x80\x19\xcf\x08\xcd\xd4\x7f\x1d\x3c\x75\x7d\xa6\x6e\x8e\x0d\xe2\x03\x01\x5d\x6e\x5a\x95\x2e\x5a\x90\x24\x33\xb4\x2c\xb3\x52\xed\x77\x66\xed\x02\x63\xe7\xa9\xb5\x77\x73\x08\x2f\x9b\x45\x66\x23\xfa\xae\xc2\x00\xc7\xc0\x0a\xc7\x3e\x2e\x84\x16\x04\xf2\x46\xf8\x2c\x04\xb5\x41\xbd\x20\xf6\xc7\xf9\xa1\x40\x8e\x7d\x74\x96\x5b\x54\xf9\xf9\x61\xb8\xee\x95\x1b\x69\x17\xc6\xeb\x7b\xf5\xe0\xbd\x4e\x56\x87\x2c\x89\xa0\x2b\xd5\x1c\x42\x1b\x39\x5a\x19\xb4\xb0\x11\xac\x61\x49\x0c\xb5\x94\x65\x69\x54\x02\xba\xd9\xc7\x3a\x1c\xc6\xd0\x92\x92\x7f\x12\x60\x10\x87\x31\xc7\x61\x49\x8d\xc8\x5a\x11\x74\x0b\xad\xd5\x75\x53\xc5\xe6\x4d\xff\x4d\x37\x31\x3b\xf7\xda\x73\x33\xd0\x2e\x5b\xee\xbe\xbe\xdf\x8e\x43\xcf\x0d\x1b\xbe\x71\xb9\x6d\xf5\xe5\xf6\x5d\xb1\x1b\x6b\xc7\x45\x47\xd5\x37\x76\x5d\x77\x58\x47\x0e\x8b\xbb\x58\xba\xd8\x79\xc1\x8a\x7a\x9d\x37\xd7\xb8\xca\x0b\x61\xde\x30\x60\x83\xb1\x77\xe8\x57\x5b\x02\x24\x76\x34\x6e\x2a\x56\xa0\x7b\xa8\x9c\xd5\xe1\x91\xe3\xcb\x47\x68\x63\x5b\x2f\x9f\x16\x50\x90\xea\xbe\x07\x71\xfd\x0e\x86\xd9\xe5\x0c\xe8\xcb\x3b\x6f\x7f\x84\x1d\xde\x75\xd9\x00\x3e\x0b\x4b\x98\x65\xf0\x3c\xef\x7d\xe5\xae\x1b\x23\xee\xb4\xe8\x46\xef\xbe\x4a\x46\xd8\x93\x00\xc5\x30\xcb\x6f\x67\x85\xe3\xb6\x97\xd7\xe3\x76\xb3\xab\x83\x70\x4b\x57\x59\x35\x97\xf9\x26\x4b\x7a\xae\x58\xab\x83\xe3\xa3\x75\xca\x7a\x04\x54\x0d\x19\x69\xa6\x95\x91\xb2\x8f\xbf\x3b\x7e\x1c\xbe\xf7\xff\xab\x35\xde\x10\x35\x60\x5f\x48\x2b\xc5\xde\x7e\xd5\x5a\x94\x59\xfa\xe5\xbe\xa1\xcc\x9b\xd9\xeb\xd6\x42\x37\xed\x7d\x3a\xc0\xf4\x0c\xfb\x7b\x4a\x80\x7a\x73\x99\xc6\xcf\x1f\x2f\x56\x1f\x6c\xbd\xb9\x4c\x07\x58\xbd\x9d\x61\xf5\x76\x15\xb4\x0e\x0b\x18\x0e\xeb\x38\xe4\xb3\x69\x93\x90\x3a\x5e\x4d\x4b\x97\xaf\xec\xd1\x54\xfb\x3f\x9a\x6a\x78\x34\x87\x79\x34\x5b\x65\xe5\xa7\xfc\x66\x36\xca\xd8\x5b\x9f\xcd\xa6\x5e\x21\x24\xdc\xfd\x85\xee\x9e\x61\x67\x22\xad\x17\x58\xee\xe9\xb4\x6d\x74\x6b\x93\x88\xe2\x7a\x31\xd0\x2a\x3a\x60\x1b\x64\x66\x64\x76\xd2\x15\xce\x29\xf8\x4a\xcd\xc8\x83\x80\x76\x7f\x17\x81\xd5\x18\x32\x08\xeb\xa0\x88\x68\x0a\xff\x32\x1b\x85\x99\x62\x60\x53\xc9\x5d\x6e\x65\x10\xe8\x05\x13\xad\x6b\xac\x6d\x7a\x08\x95\x9a\xc8\x9b\x77\xf2\xd1\xfc\x5d\xf5\x99\xf5\xf3\x73\x35\xd6\x53\x73\x78\x36\xfe\x5e\x2a\x74\x82\xe6\xde\xae\xf5\x31\x68\xff\xcb\x6f\xd7\x1f\xc1\x10\x43\xa4\x94\x44\xec\x8d\xb7\x82\x36\xdc\x9f\x6a\x2e\x33\x5f\x58\x61\x59\xb9\x3b\x7d\xb9\xb1\x9e\xfb\xbe\xaf\x7d\xe3\x05\x3f\x10\x05\xd8\xa0\xdc\x6d\x29\x70\xd5\xda\xe1\xf1\x38\xe6\x03\x11\xf1\x4d\x9a\xe7\xce\x11\xdb\xa4\x52\xec\x09\x69\xef\xaa\x17\xd1\x36\xef\xa0\x6c\xdb\x93\x08\x4d\x90\x68\x20\xff\xb3\xff\x2d\x62\xd5\x6d\xd1\xdc\x3e\x2c\x7a\x2c\xd5\x59\xaa\x12\x7d\x56\x72\xfd\x49\x9f\xd9\x0a\xde\x02\x4a\xd1\x3a\xeb\xe7\x99\x26\xbd\x14\x7e\x12\x9f\xcb\xb3\x2f\xcb\xd1\xba\x55\xf8\x2d\x57\xbb\xab\xef\x57\x84\x4c\xde\x62\x52\xe8\x89\x51\xde\xec\x39\x48\x88\xfb\xa1\x95\xb7\x99\x75\xbe\x2c\x72\x79\x31\xe5\x89\xa1\x2e\xe7\xf3\x79\x21\xe6\x10\x2b\x72\x15\xaf\xb9\x11\x44\x18\xb7\x0c\xea\x1f\x2c\xd4\x9d\xb9\x3d\x99\x02\xb0\x84\x37\x59\xa5\x4b\x51\x5c\x29\x08\xf4\x56\x8c\x53\x3f\x43\x5f\x28\xd0\x28\x68\xd2\x03\x78\xc6\x37\xb6\x28\x41\x5d\x6f\xe2\x4d\x4b\x17\x2a\x11\x1d\x64\x5e\xb9\xbf\xa0\x9b\xb5\x5e\xa0\x7f\x26\xf3\x34\x5e\x0c\xf8\x6e\xfc\x4b\x36\x17\x40\x83\x72\x05\x4c\x0d\xdd\x73\x7e\x54\xa8\x0d\x34\xc2\x17\x53\x5b\xf4\xb1\x66\x2b\x51\x50\xf5\x3c\x1d\x07\x63\x1d\xe4\x49\xf4\x86\x5b\xba\xbf\x39\x6d\xc7\xfb\x16\x1e\xfd\xe6\xbb\x16\xb4\x22\x04\x4f\xfc\x81\x41\x61\xf3\x11\xcb\xd4\x5c\x26\xf6\x29\xc9\x7c\x8e\x89\x93\x86\x0a\x98\xab\x59\x0f\x9e\x9f\x89\x42\xe4\x89\x8d\xcf\xa9\x72\x59\x22\x80\xbe\x19\xfe\x27\x99\x43\x19\x44\x55\x84\x07\x44\xbf\xf6\x51\x3b\x36\xbe\x9f\x5e\x07\xb5\xf1\x1d\x6e\x63\xf3\xf5\x97\x48\x60\xdc\xf0\x77\x9e\x59\x11\xdf\x6c\x41\xe3\x8d\x4e\x2b\x99\xd9\x7a\x8b\x19\x69\x58\xe0\x74\x08\x16\x0f\x57\xba\xe5\x1b\x5a\x94\xc1\x75\xc6\xfe\x80\x3d\xe2\x61\x5b\x2c\xee\x96\x79\x29\xa9\x2c\x44\x52\xb2\x64\x81\x9c\xa8\x54\xd4\xc5\xde\x76\x5d\xaa\xe5\xca\x8b\xdc\x01\x86\xcf\x86\x88\xdc\x21\xb9\x75\x40\x41\x18\x72\x3e\xef\x49\xfe\xef\x8f\x82\xb0\x59\x60\xea\x62\xcb\xf8\xfe\x89\x0f\x23\x76\x54\x44\xb5\xdb\x88\xd1\x61\x24\x44\x4b\x65\xfd\xd7\x0e\xcf\xf9\x0e\x98\x51\x0a\xd3\xc5\xf4\x2c\xf9\x2f\xcc\x63\xdc\x56\xf6\x7a\xe3\x76\x45\xa9\xa5\x3b\x64\x95\xb6\x30\x6b\xe2\x88\xfd\x78\xb6\x65\xaa\x8e\xf5\x1a\xb2\x10\xfc\x7d\x04\x61\x40\xe6\x5d\x92\xf6\xc8\x64\x89\x75\x6b\x30\xb2\x8b\x7a\xc5\x9d\xac\xa0\x3c\xcf\xd4\x94\x63\x80\xae\x5e\xf1\x84\x68\x2b\x4f\x11\x8c\x2e\x82\x58\xba\x95\x9c\x5d\x63\xb5\xc2\x01\x3d\x61\x60\x30\x03\x83\xa9\x6f\xfb\xd7\xc4\x60\x54\x26\xae\x60\x56\xfb\x09\xd8\x57\xd4\x7f\x6b\x60\x1a\xb6\xf1\x65\xe5\x77\x24\x45\x0e\x3e\x31\x18\x88\x2e\x87\xb9\x90\xd9\xad\x0d\x12\x3a\x27\xda\x6e\x44\xe6\x0a\x6c\xf6\x65\x55\xe4\x50\xee\xb4\x28\xd4\x26\x09\x98\x0a\xaf\x76\xb1\x59\xa2\x78\x96\xd3\x06\x44\x98\x28\x08\x81\x8d\xa0\x12\x6b\x96\x83\x08\x65\xba\x19\x82\x79\x5f\x7e\x4b\x53\x79\xb0\xa8\x0d\x7b\x29\xba\x4c\x86\x4f\x82\x37\x5b\x16\xfa\xc0\x2c\xba\x03\x82\xa8\xbd\x43\x5b\x9d\x8c\x66\xcb\xa1\x44\xd3\x93\x66\xa2\x7d\x20\x88\x2e\x9a\x10\x44\xdb\xce\x79\xe3\xb8\xbb\x50\x81\x96\x37\x70\x1f\xdb\xec\x20\x2b\x3c\x17\x59\x61\x37\x00\xa2\xad\x92\x42\x4f\x86\xf1\xe8\xe0\x40\xf7\x66\x17\x1d\x80\x41\xf7\x63\x19\xfd\x79\x45\x0f\x26\x31\x70\x87\x67\xce\x1d\x1e\x8e\x2d\x0c\xfc\x60\xe0\x07\x03\x3f\x08\xda\xb7\xf0\x83\xc3\x33\x82\xc0\x1a\xba\x0d\x22\xce\x36\x22\x7d\x32\x34\xb0\xd5\x9c\x4c\xae\x26\x75\x51\x59\x23\x9f\x8b\x8d\x72\x96\xbe\x46\x1d\x89\xbb\x85\x72\xfe\xd4\x40\x15\x65\x00\x4e\x20\x93\x85\xd7\xaf\xdb\x9a\xf5\x33\xec\xb5\x67\x85\x34\x99\x4e\x9c\xad\x11\x96\x5a\xb0\x7f\x24\xdf\xa2\x2d\x8b\x01\x33\xb2\x44\x19\xe3\x2a\x96\x55\x56\xca\x55\x86\xc0\x67\x41\x0e\x47\x00\x42\xc7\xf3\x35\xe3\x51\xe5\x05\x91\x32\x3e\x37\x23\x96\x50\x7b\xc9\x16\xf8\xc9\xab\xa5\x28\x0c\x65\xf0\x1f\x81\x3a\x4e\xf9\xda\x8f\xee\xfd\xc7\xad\xd0\xff\x0f\x1f\xd1\x97\xab\xfc\x8a\x66\xf7\xdb\xd5\xfb\xae\x5d\xfe\x10\xb7\x26\xb2\x8c\x40\x25\x2b\x5e\x94\x92\x67\xac\x2a\x6c\x04\x16\x67\x95\x16\x85\x65\xdd\x0b\x7e\x2b\x18\x4f\x00\xa6\xc2\x10\x50\xf6\x5d\x94\x0d\x8d\x57\x0e\x2c\x37\x1c\x8f\x66\x56\x65\xd9\x88\xcd\x64\x0e\x55\x6f\xc4\xca\xa5\x74\xf3\x72\xc1\xae\x65\x9e\x08\x4a\x91\x25\x92\x0f\x33\x32\x23\x9a\x2b\xeb\xee\x1d\x58\x6d\xa2\x8c\x2f\xf8\x84\xb9\x83\x09\xc4\x8c\xcd\x62\xf7\xb1\x0e\x9d\xce\xc0\x16\x78\x9b\x77\x99\x1c\xa2\x09\xcf\x1d\x08\x05\x04\xd6\x94\x0a\x0e\xd7\x9f\xf8\x0b\x5d\x25\x0b\xb3\xa4\xc9\xd1\x4a\xa5\x7a\x72\x64\xde\xc6\xe4\x48\x8b\xa4\x10\xa5\x9e\x1c\x9d\x00\x34\x53\x6d\x1d\x04\x6e\x15\xf4\x35\x2c\x60\x72\x74\x32\x62\xce\xfc\x3e\x55\xe5\xe2\xf1\xd3\x4f\x69\x92\x7d\xc2\x73\xaf\xc2\xb6\x75\x47\xf7\x9d\x61\x6e\x4e\x50\x09\x02\x72\xdb\xc8\x04\xf3\x61\xb2\xe6\xb2\x05\x71\xb8\x41\x5d\x11\x1f\x7c\xfb\xc5\x76\xa5\xef\x8e\xd4\xc4\x34\x7f\x59\x50\x1e\x6e\xac\xde\xf6\x3b\xcf\xb2\xb0\xba\x14\x87\x7f\x5a\xfa\xf5\xd8\x8b\xbe\x15\xc5\xb4\x6b\xc1\xbf\x9b\x36\xf1\x62\xf1\x27\xa4\x0f\xee\xc5\xbc\x7f\x8f\x22\x1c\x2d\xc6\x88\x7c\x18\xb2\x73\x5e\xa2\x6c\x24\xae\x28\xf1\x12\x82\x6e\x6c\xdc\x62\xea\xd0\x12\xcd\x9e\x8d\x19\x0c\xde\xb2\x49\x20\x25\x3d\xa9\x94\x35\xdc\xbc\x2e\xd9\xa5\x4b\x08\xe8\x88\xc4\xf1\x21\x38\x21\x35\x3c\x78\xfc\xcd\xe0\x9e\x7b\xd2\xba\xe3\xa0\x62\x3d\x17\x15\xeb\xab\x88\xff\x18\x02\x3f\xfa\x69\x87\x87\x8f\xf8\xe8\x17\xea\xb1\x31\xc6\xa3\x50\x9b\xf5\xbe\x0d\x11\x1e\xa1\x3f\x15\x22\xc7\xbd\xb6\x07\xd9\x5f\xfd\xdc\xae\x65\x67\x00\x08\xca\x02\x7e\xf0\xb0\xd9\x74\xdd\xd0\x34\x65\xc9\xc4\x67\xa9\xa1\xfe\xa6\x91\x9e\x02\xe7\x08\x28\x60\x6c\x2e\x6f\x45\x1e\x4e\x16\x90\xaf\x8d\x7e\x82\x48\xbe\x38\x59\x1e\x68\x11\x03\x8f\x1b\x78\xdc\xc0\xe3\xea\xdb\xfe\x35\xf1\xb8\x47\x0e\x41\xd9\x44\x26\x5d\x75\xdd\x7d\x28\xe5\x10\xa0\x32\x04\xa8\xd4\x65\x88\x07\x89\x4c\xe9\x1f\x92\xd2\x23\x16\x65\x08\x42\xf9\x5a\xd8\xe8\x9e\x6e\xc6\x87\x8b\x3e\x19\xc2\x4e\x06\xf9\x60\x70\x33\xf6\x66\x02\x87\x77\x33\xf6\x08\x34\xd9\x16\x61\x32\x84\x96\x3c\x67\x9a\xff\x00\xc4\x7e\xa0\xf2\x03\x95\x1f\xa8\x7c\xd0\x3e\xa4\xf2\x0f\x43\xde\x63\xad\x78\xa3\x4e\x6b\x83\x26\x1a\x21\x24\x70\xc3\x1d\x8d\x04\x95\x0f\x61\x4d\x2b\x1d\x64\xc4\x77\x06\x78\xf4\x8c\xef\xb0\xe1\x1d\x18\x3d\x81\x56\x67\x1f\xc5\x41\x5f\xf6\x6e\xab\x07\x35\x25\x99\x2f\x03\x6c\x48\xe0\xc3\x3d\xc0\x0c\xf2\x6e\x44\xa5\x10\x3e\xc9\x06\xba\xdc\x77\x06\x3d\x1f\x8a\x3b\xaf\xfa\x9e\xd5\x57\xd0\xf5\x96\xba\xee\xa6\x55\xef\xb7\x21\xbd\x20\x49\x76\x77\x93\x07\x66\x97\xc8\x1c\xc1\x54\x81\xb1\x28\x32\x35\x54\x0f\xd1\xc2\xe9\xae\x92\x2d\x3c\x72\xb8\x03\x88\x74\x10\xdb\xb1\x50\x59\xca\xb8\x4d\x8b\x3f\xbf\xbc\xf0\xdc\x80\xbe\x37\x42\x3b\x0e\xb2\x93\x19\x85\x74\x58\x5b\x88\x0d\xe3\x80\x29\x18\x71\x01\x6f\x2f\x98\x76\x76\x88\x81\xea\xfb\x44\xd0\x34\x43\x81\x4f\xf4\x2d\x0a\x4a\x0a\x1c\xba\x64\xf0\x19\xdb\xda\x5f\xf0\x84\x27\x47\x58\x6c\x04\x58\x9b\x4c\xc4\x79\x92\xa8\x0a\xb9\x16\x16\x39\xae\xb5\xde\x48\xc5\x68\x98\xdf\xec\x8a\x71\x66\x6e\x98\x87\x7b\x97\x6a\x66\xcf\xa6\xfe\x0e\xc6\xec\x77\x44\xf6\x43\xd1\x91\xd0\x0b\xa4\x0e\x76\x89\x17\x82\x4d\x8e\xcc\xa4\xb1\xbe\x0a\xcc\xda\xfc\xa7\x59\xc2\xe4\x28\xde\x94\xc9\x91\x33\xc9\x05\x26\x37\xe7\x3c\x09\xa4\x40\xd3\xc4\xcc\xdf\x4a\x8c\xb5\x2e\x24\x80\x16\x02\x0a\x45\x78\x3b\xdd\x83\x51\x0e\xba\x0c\x9b\xf6\x69\xbf\x0f\x83\x91\xb2\xc7\xd7\xc9\xea\xd9\xb8\x8f\x56\x2c\xb7\x7b\x4a\xb3\xfb\x44\xc4\xd6\xbc\xa7\x20\x6f\xd8\x47\x46\xe1\x69\x61\x54\x55\x74\x5e\x70\xb6\x54\x3f\x15\x8f\x04\x43\x88\x0e\xba\xfb\x3d\xa9\xe6\x43\x50\x48\xaa\x4f\x38\x80\x00\x0d\x20\x40\xf5\x07\xf9\x70\x20\x40\x78\xe9\xbe\x2e\x24\x20\xf6\xd6\xe8\x6c\x09\x84\xe2\xca\x9c\xdd\xbe\x1a\xbf\xfa\xbf\xcc\x7f\xcc\xf8\xad\x2a\x40\x74\xda\xc4\xc5\xce\x6e\x5f\xc5\xd8\x07\xe6\x06\x51\xfd\x13\x96\xa9\x7c\x2e\x0a\xc4\x18\x2c\x6e\xdd\xd8\xdf\x7f\xff\x78\xd0\x43\xed\x24\x60\x9b\xd2\x34\xe0\x0f\x0d\x06\xa6\xc1\x37\x3f\x58\x65\x9e\x94\x6f\xfe\x6b\xc0\x1f\x42\x52\xfb\x3c\x63\xd1\xfa\x81\x10\xc1\x0e\xec\x6e\x64\x6a\x48\x0c\x5f\x3d\x1c\xd1\xc1\xe4\x09\x5a\xdc\x01\xc5\x8a\x81\xcf\x0d\x7c\x6e\xe0\x73\x4f\x95\xcf\xdd\x2f\x06\x8d\x8a\x3d\x0c\x58\x48\x8f\x1e\x6a\x66\x41\xc9\xbf\xf5\x78\xb3\x9d\x00\x91\x0e\x2c\x2e\x3c\x24\x34\xd2\xc1\x39\xba\xf9\xf6\xc0\xd5\x9f\x03\x57\x7f\xa2\xb8\x4c\x1b\x85\xea\x9d\x89\xd3\x20\xc1\x3c\x43\x09\x66\x88\x9f\xa8\xdd\xe9\xdd\xc1\x99\x0e\xc5\xbe\x0e\x0b\xd3\x74\x38\x4e\xa5\x07\xfe\x34\xf0\xa7\xc3\x47\xf1\x35\xfd\x43\x03\x47\x1a\x38\xd2\xc0\x91\x58\xfd\x4e\xef\x00\x0f\x75\x2f\x56\x34\x00\x45\x0d\x40\x51\x03\x50\xd4\x00\x14\xf5\xc8\xd7\x65\x00\x8a\xda\xb6\x2b\x0f\x05\x14\x75\xfc\xdd\xf1\x46\x80\x28\x07\xd4\xe0\x4a\xdd\x3a\x92\x39\x66\xc7\xdf\x9d\xcd\x94\x8a\x3a\x43\xdb\x6a\xea\x6e\xdb\x31\x34\x80\xb2\xbe\x7d\x87\x1d\x20\xa9\xbe\x35\x48\x2a\xef\xa3\x78\x02\xb8\x54\xf7\xd3\x95\x0f\x1c\xf0\x35\xe8\xc8\x83\x67\x76\xd0\x22\x9f\xaa\x67\xf6\x49\x23\x60\x3d\xe7\xd0\xa3\x87\x8c\x39\x1a\x00\xb1\x1e\x10\x10\xeb\xfe\xcc\x75\x88\x7e\x1a\x78\xec\xc0\x63\xbf\x1d\x1e\xfb\x25\xa2\x9f\x06\x18\xae\x21\x36\xea\x29\x61\x71\x1d\x4a\x9e\x39\x2c\x2a\xd7\xc1\x78\xf9\x10\xf7\xf4\x5c\xf8\xf9\x53\x83\x02\x6b\x4a\xf4\xf7\x31\x14\x0e\xd2\xca\x73\x91\x56\x06\xbf\x72\xed\x4e\xef\x80\x07\x76\x6f\x66\x74\x5f\x64\xb0\xfb\xf3\x9d\x81\xe1\x0c\x0c\xe7\x41\x22\x98\x86\xd0\xa5\x81\xc5\x0c\x2c\x66\x7f\x30\xb2\x7b\xf3\x96\x01\x96\x6c\x80\x25\x7b\x82\xb0\x64\xb1\xb9\x63\xc0\x26\x1b\xb0\xc9\x06\x6c\xb2\x01\x9b\x6c\xc0\x26\xb3\x64\xd2\xa8\x2a\x69\x95\xc9\x7c\x0e\xa5\x9b\x0a\xa9\x0a\x59\xae\xdf\x64\x5c\xeb\x6d\xf1\xc7\x61\x3b\xa7\x52\x2d\xf9\x0a\x02\x81\x28\xb8\x72\x45\x8d\x58\x02\xad\x80\xc1\x10\x25\x75\x7f\x32\x3a\x91\x51\xff\x60\x6b\xc7\xec\xa3\x51\xca\x60\x97\x29\x70\x88\xe7\x6b\xf3\x83\x4c\x6d\xcb\x41\x2b\x7c\xd2\x5a\x61\xbc\xc3\xdb\x36\x3f\xf8\x27\x85\x90\xf2\x62\x2a\xcb\x82\x17\x6b\xab\x5e\x81\x5c\x58\xe9\x8a\x67\xd9\x9a\xad\x0a\x75\x2b\x53\xa1\xd9\xbc\x92\xa9\xc8\xe0\xb4\x54\xce\xee\x10\xa3\x4a\xea\xfa\x75\xa3\x73\x20\x7c\xb9\x3d\xe8\x10\x3a\x92\x88\x45\x75\x2c\x26\x6a\xeb\x42\x2b\xb5\x99\x1d\xf0\x7c\x98\x60\xfc\x68\xfc\xfc\x12\x95\x6b\x99\x8a\x02\x83\xe3\xcc\xd5\x48\x69\x20\xb7\x24\xc3\xfe\x56\x2a\xa5\xa0\xba\x54\x01\x05\xc2\xb8\xeb\x7c\x5d\x5b\xf9\x98\xfd\x9a\x67\x6b\x08\x58\x8f\xbf\x48\x4f\x6a\xc9\x8b\x4f\xf8\xa9\x9b\x68\xda\x37\x63\xf6\x57\x75\x27\x6e\x45\x31\x62\x72\xc6\x96\xe6\x8e\x95\x0b\x40\x24\xa8\x8d\x24\xb4\x0d\x4f\xb8\x93\xe5\xc2\xcc\x58\x16\xf5\xc1\x28\x2c\x5b\x8b\x12\xee\x7b\x61\x59\x95\x5e\xf2\x2c\x33\xf7\x1e\x9f\xb9\x9a\x21\xf5\x25\xaf\x9d\x5d\x78\xfd\x73\x11\x54\xe0\x86\x4d\xda\x70\xc4\x53\xa5\x32\xc1\xf3\x41\xe9\x7f\xde\x4a\xff\xfd\xbd\xe0\x0f\xbd\x63\x6e\xd1\xad\x5b\xb2\x2a\x84\x91\x28\xa4\xca\x31\x6e\xac\xe3\x56\x5e\xd6\x9a\x5b\x2d\x8e\xfe\x05\xf4\x82\x9a\xe4\x73\x24\x1d\xf0\x56\x33\x75\x27\x0a\xff\x64\xd8\xaf\x98\xd6\xf2\x01\x9f\x3d\x8d\xfa\xde\x34\xba\x74\x6d\x42\x29\xbd\xad\x85\xa1\x16\x55\xae\x45\x39\x46\x5d\xc7\x25\x64\x18\xdd\xeb\x94\xb0\x23\xe7\x60\x34\x26\xfc\xbf\x0f\x2a\xbf\x74\xb3\x73\xc3\xcc\x04\x37\x7b\x77\x6a\x9a\xee\x41\xaf\xe1\x5d\x76\x6c\x9b\x97\x2f\x2c\x4f\xaf\xd3\x4e\x58\x01\x6d\x26\x4f\xca\x8a\x67\xbe\x09\xd9\x29\xc0\x7f\x9f\x08\x79\x2b\x2c\xf7\x11\x14\x7c\x15\xa7\x27\x19\xb5\x0f\x08\x2f\x46\x26\x48\x20\xe1\xc0\x1c\x6a\xab\x43\x4b\x88\x99\x9f\xcc\xcb\x1f\xbe\x6f\x5f\x3a\xc9\x3f\x7b\xc4\x89\xc3\xbe\x3c\xa2\x71\x2a\x10\x29\xb7\x19\xa5\x62\x59\x73\xb3\x65\x6a\x07\xa3\xd4\x16\x61\xb6\xc3\xf5\xd1\x68\xdb\xe6\x03\x89\xef\x4a\x5f\x75\x7b\x90\x45\x9f\xb0\x87\x42\x5a\x0f\x05\xec\x02\xf9\x28\x6a\xd2\xc7\x61\xbc\x15\xdb\x14\xad\x60\xa8\xc1\x6f\xf1\xcd\x8a\x30\xbb\xf9\x2d\xe0\xb2\xda\x59\x7c\x01\xd9\xa5\x27\xf7\x79\x74\xd7\xc8\x3e\xdc\xe7\x70\x85\x5a\xa2\x57\x4e\x79\x00\x3d\x6d\x2a\x6f\xdf\x5d\x5e\xbd\x7b\x73\xfe\xf1\xdd\x5b\x76\x8a\x62\x08\xda\x11\x69\x2a\x0d\xc2\x64\x5e\x74\xea\xfd\xf1\xd3\x35\x6b\x2c\xfd\xec\xf6\xd5\x59\xd4\x67\xcc\x06\xcb\xcd\xc0\x2d\x07\xcb\xcd\x60\xb9\x19\x2c\x37\x83\xd8\xf3\x34\xc4\x9e\xc1\x72\x33\x58\x6e\x06\xcb\xcd\x73\xb4\xdc\xec\x1a\x53\xd4\x25\x3c\x0f\x36\x9c\x6f\x4e\x2a\x7d\xc2\x36\x9c\x36\xed\x6e\x30\xe4\x0c\x12\xcd\x60\xc8\x79\xb2\x86\x9c\x9d\x19\x52\xa9\x0a\x3e\x17\xe6\x4c\xdf\x5c\x5f\xbc\x2d\xe4\xad\x28\xb6\x61\xc3\xda\x36\x2c\xe1\x2b\x73\x02\xba\x05\x58\x8f\xb3\x37\x04\x3d\x54\xb0\x6b\x1c\x9f\x5d\x18\x9a\x3d\xe3\x89\x60\x2f\xde\x5c\x5f\x9c\xb0\x5b\x95\x55\x4b\xc1\x52\x1c\x2c\x15\xab\x4c\xad\x45\xca\x14\xe5\xc2\x62\xd2\xeb\x98\xfd\x97\xdb\x61\xc6\xcb\x92\x27\x0b\x96\x0a\xf8\x3f\x41\x95\xae\x4a\x5b\xf4\x29\xa2\x00\xa5\x32\xad\x44\xb1\x94\xb9\x70\x5a\x2e\x75\x97\xf8\xb0\xcd\xe1\xe3\xe8\x99\x28\x7b\x8e\x60\x04\xa4\x70\xb1\xb9\x10\x29\xb0\xa6\xa9\x60\x2b\x43\x82\x61\xfa\x4b\x55\xe5\xe5\x98\xf9\x8d\xb2\x51\x8d\x88\xee\x16\x44\x65\xa5\x03\x63\x7e\xd2\x8c\x79\xe0\x56\xcf\x85\x5b\xed\xa7\x7f\x07\xda\xb7\xfb\x2f\x0c\x27\xcf\x53\x99\x98\x1b\xdf\x00\xeb\x7c\x73\x7d\x61\x49\x1a\x01\x02\x86\x27\x3d\x33\x87\x5b\xaa\x3f\x33\x59\xb2\x5f\x7e\xbb\xfe\x68\x0e\x28\x82\x65\xa1\x84\x7c\xaf\x8b\x9a\xf1\xfe\x22\xca\xcb\xac\x9a\xcb\xdc\x7c\xfb\xc5\x09\x4b\x78\x96\x51\x38\x3f\x2f\xe9\x6b\x68\x9c\xa6\x2f\xc3\x48\x90\xdf\x3f\x15\xec\x0f\x3f\xb0\x64\xc1\x0b\x9e\x94\xe6\xe3\xaa\x60\x99\xd0\x7a\xc4\xa6\x62\x2e\xf3\x1c\x02\xb9\xf3\xd4\x5c\x2c\xf3\x9f\xa0\x84\xf3\x9c\xf1\x6c\xb5\xe0\x80\x00\x2a\x13\xdf\x9b\xbd\xf8\x3b\x3f\xfd\xd7\xcb\xd3\x3f\x9d\x9f\xfe\x3f\xff\x38\xc1\xc6\x29\xd7\x0b\xa1\xd9\x8b\xd3\x93\x11\x4b\x55\xa9\xd9\x8b\xf1\x09\x55\xac\x0a\xc6\x00\x65\xfb\x4e\x88\xfc\x0b\x9b\x31\x8c\x76\xbb\x33\xd6\x43\x1b\x83\xbc\x36\x03\x6d\xbd\x49\x68\x64\x4d\x1c\x71\xb5\x87\x89\xfd\xf7\xc8\xbf\x81\xb9\x3f\xa6\x68\x42\xcb\xde\x0a\x17\xec\x04\x86\xc3\x38\x96\x5a\x76\xba\x0b\xaa\x3e\x6c\xd7\x0a\x54\x5f\x67\xc3\x03\xcf\x7d\xd2\x3c\x77\x6f\x65\x78\xc3\x5d\xdc\x5b\x0d\x6e\x13\x8b\x07\xd5\x77\x10\x26\x06\xd5\xf7\x0b\xf0\x97\x03\x06\x2f\x6c\xe2\xe6\x3d\x78\x8c\x69\x67\xc9\x8e\xae\x33\x78\xee\x29\x50\x1f\x16\x03\xca\xe8\x95\x3f\x8a\x6d\x74\x21\x6e\x1c\x49\x9f\x52\x83\x54\x11\x2b\xd3\x74\xc2\xe8\xb6\x46\xad\xd7\xcc\x02\xa7\xfa\x62\x2a\x12\x5e\x69\x00\xe0\x93\xcb\x55\x26\x96\x0e\x59\xd9\x8c\xf4\xc6\xa9\xd5\x97\xd5\x34\x93\x7a\xf1\x3b\x0c\xfd\xe2\xc4\xdc\xe1\x85\x4a\x4f\x6c\xae\x10\xa1\x5d\xf7\xd1\xcf\x2d\x47\xb3\x08\x95\xd4\x90\x26\x2d\x9d\x61\x00\x21\x02\x93\x85\x48\x3e\x11\x23\x85\x16\xd8\x7c\x09\xf4\xa9\xe4\x65\x85\x40\x83\x77\xdc\x10\xaa\x2a\x2f\x65\x16\xb4\x05\xf2\x09\xed\x8d\x0c\x2d\x66\xe6\xb9\xad\x0a\x95\x08\x01\x02\x6e\xa9\x50\x3d\x07\x24\xde\x8f\xb4\x64\xf1\x19\x19\xe8\x29\x75\x2c\x58\xa2\x54\x91\xca\x1c\xf6\x18\xc4\xdc\xe6\x1e\x9b\x29\x20\x39\xdc\x3e\x55\xeb\x83\x69\x1e\x84\xd4\x2c\x51\xe6\x00\x4a\x8f\xdf\xe5\xae\xd0\x95\x98\x4b\x5d\x16\xce\xed\x04\x1e\x2a\xd3\x45\xe4\x7c\x9a\x51\x45\xf2\xd2\xf9\x8b\xa4\x0e\xb0\xae\x4b\xc5\x66\x3c\xd3\xe4\xd2\x6e\x7c\xd7\xd5\x2b\xff\x24\x57\x2b\x43\xcc\x7f\x2d\x17\xa2\xb8\x93\x5a\x6c\x6f\x6f\x8e\x6f\x63\xa8\xc2\x56\x3f\xf6\x4c\x43\x9e\x59\x2f\xd7\xe1\x5b\x92\xa3\x24\x6e\x48\x95\xa7\xa2\xc8\xd6\xc0\x0c\x71\xff\x75\xb5\x5a\xa9\xa2\xd4\x58\x88\x1d\x30\x99\xef\x72\x51\xe8\x85\x5c\xc1\xa6\xac\x44\xb1\x94\x5a\x07\x62\x37\x75\xa4\xdb\x80\xd9\x7b\x70\x0b\xcc\xe2\xaf\x04\x70\x46\x15\x3d\x6a\xf6\xf3\x75\x30\x63\x92\x9a\x10\x66\x3c\x4d\x81\x55\x40\x34\x40\xc9\x65\xa6\xeb\x6e\x45\xd0\x7b\xac\x5f\x91\xe7\x1e\xb5\x7f\xa1\x72\x55\x50\x10\x13\xb1\x66\x44\x81\x87\x13\xb5\xc7\x8f\xcf\x2d\xfe\x7e\x78\x07\xf6\x70\x3d\xae\x54\x7a\x91\xcf\xd4\xaf\xf9\x2f\x66\xd1\x5d\x70\x16\xb3\x38\x2a\x22\xee\xbc\x0b\xed\xf1\x3b\x55\xb7\x9b\xbd\xc8\xe4\x27\x61\x7e\x35\x0a\x2d\x7c\xe2\xb7\x8b\xb7\x23\x26\xca\x64\x7c\xc2\xd2\xaa\x70\x07\xe4\x6f\xa1\x86\x27\x42\x33\xa3\xdb\x5d\x1f\x96\xd0\x56\xca\x56\x73\x9c\x8d\x7e\x31\x47\x65\xba\xfb\xe7\x4f\x13\xf7\x61\x31\xb5\x25\x73\x0d\xd5\x21\xcc\x6d\x8a\x8c\x95\xe6\x95\xe3\xc3\x85\x8d\xb2\xa6\x44\x98\x85\xf9\x7c\x63\x7e\x5c\x33\x3c\x5d\x43\x63\xc5\xe7\xd2\xa2\xf9\x99\x49\x7c\x50\xa9\xa8\x13\x5c\xf3\xe0\x74\x63\x9e\xa0\x46\xe8\x95\xca\xb5\xb4\x05\x20\x56\xbc\xd0\x56\x93\x87\x70\x34\xee\x44\xc5\xf0\xfb\xb4\x27\xb2\x39\x13\xfc\xc8\x4c\x65\x99\xba\x33\x3d\xdd\x1f\xcd\x2c\xed\xfb\xb7\xdd\x67\x8d\x3b\xa1\xc3\x2b\x43\xef\x01\xc5\x1e\x39\x5f\x94\x6c\x5e\xa8\x3b\xc4\xac\xc5\xe0\x3a\x31\x93\x9f\xa3\x98\x99\x31\x9b\x1c\x25\xda\xf3\x66\x92\x86\x56\x2a\x1d\xe7\x7c\x29\x26\x47\xaf\xcd\x27\xd1\xf4\xb2\xb5\x25\x58\x55\xc3\xe6\x98\x3b\xbb\xb1\x4f\x25\x53\xd3\x1a\x1f\xcf\x0b\xf3\xcb\x6f\x17\x6f\x4f\xda\xdb\x8b\xd5\x42\x2c\x45\xc1\x33\xd3\x63\x72\x64\x96\x3a\x39\x62\x72\x36\xab\x73\x9f\x9c\xb9\xa6\x4c\xe6\x99\xcc\xed\x5f\x27\x39\xeb\xf8\x7f\x41\xa2\x35\xf7\xc4\xe0\x1a\xe4\xfc\x11\x53\x8e\x4e\x4f\x8e\xe0\x0e\x4f\x8e\x26\xf9\x24\xef\x9a\x2d\xa1\xda\x8b\x3b\x47\x47\x64\x1e\xb2\xed\x57\xe3\x57\x7f\x00\x80\x5f\x4b\xa8\xac\x80\x08\x77\x0b\x6f\x9d\x26\xde\x4c\xc4\x17\xca\x77\xc0\xba\x27\x47\x97\x46\x10\xd3\xa5\xc8\xcb\xc9\x11\xa5\x7d\xbf\x0b\x3e\x8e\x4b\x78\x2f\x67\x22\x59\x27\x99\xf8\x45\xa5\x82\x38\x8e\x1b\x3a\xe1\x39\xcb\x04\xbf\x15\xee\xc5\xb0\x54\x6a\xc7\xe6\xce\x54\xc1\xe4\x3c\xc7\x80\x2f\x4b\x69\xc7\xec\x5c\xd7\x16\xf1\xef\x90\x4a\x9e\x1f\x97\x6e\x96\xbe\xf9\x28\xfa\x18\xac\xd2\x36\x52\xb9\x60\x4b\x95\x52\xb4\x44\xe8\x87\xc0\x94\x69\xeb\x8a\x70\x1c\xd7\xbf\x7e\xef\x22\xb0\xfb\x03\x03\x01\x55\x97\x7a\x04\xfb\x27\x3e\x73\xc3\xe3\x01\x28\x99\x1b\x86\xbf\x34\xe3\xc0\xad\x58\xf1\x82\x2f\xcd\x08\x96\x51\xa5\x35\xe9\xb1\x3f\x87\xb5\x54\xf7\x4a\xac\x90\x88\x74\xd6\xf2\xa8\xb5\xaf\x99\x34\x03\x7a\x73\xc7\x8d\x78\x78\xd3\x20\x50\x37\xc4\x49\x57\xa2\x90\xca\xf4\xcd\xb2\x35\xc9\x08\x86\x14\x14\x62\x96\x19\x8d\x14\x22\x00\x95\x46\x62\x05\x2c\xdb\xa1\x98\x12\x0f\xa6\xd7\x11\xf1\xd1\x34\x08\xea\x41\x72\x6d\x6e\xfa\x07\x55\x8a\xd7\xec\x7c\x06\xa7\x61\x8e\x27\x11\x5a\xcf\x2a\xf3\xcc\x24\x54\xef\x69\x4c\x12\x26\x34\x32\x6a\xad\x36\x1a\x6d\x5e\x22\x51\x35\xc3\x36\xdb\x92\x98\x0a\xb7\x03\x45\x3b\x54\x8d\x0d\x8d\x34\x7b\x10\x89\x13\x63\xf6\x41\xdc\x11\x97\x22\x58\x97\x90\xff\x68\x21\x72\x7c\xc6\x45\x85\x66\x56\x5b\x8c\xa3\x80\xa5\xd8\x40\x1e\x6b\x6c\x75\x6f\xd3\xdc\x0e\x2c\xf2\x73\xcb\x65\x06\x92\x81\x13\x21\xdf\x5c\x5f\xc4\x88\x0a\x1f\xd5\x27\x91\xfb\x67\xed\xa4\xc3\x7d\xae\x10\x11\x90\x37\x7c\xc5\x13\x59\x76\x89\x69\x75\x31\xa1\xd6\x3b\xba\x4e\xa4\x29\x34\x65\x05\xbc\x5a\x10\x76\xe4\xfc\xa0\x66\x48\x1b\x72\x8a\x32\x19\xf9\x0f\x13\x3b\xb4\x1b\xb0\xc1\x8d\xf1\x04\x08\x98\x60\xba\x66\x49\x21\x90\x13\x9a\x8d\xab\x4d\xd0\x3a\xe5\x40\xbc\x4f\xfc\xb4\x1d\xbb\xa4\x63\x12\xa8\x8f\xd8\xf0\x54\x2b\x7e\xcb\xe5\x52\xa4\x92\x97\x22\x5b\x87\x84\x03\xb8\xb0\x33\xc9\x5f\xe4\xb6\x40\x08\x88\x2b\x85\xba\x95\x46\x2e\x35\x8d\x0c\x39\xc6\xcd\xb0\xa1\x6f\xe6\xba\x59\x6c\x15\x92\x21\x8c\x96\xe6\x15\x9c\xe6\x72\x17\x46\x34\xc1\x2b\x2c\x52\xa6\x15\x48\xc7\xb2\x84\x4b\xb3\x71\xc9\xb0\xae\xf3\x0c\x54\x9e\x52\xde\x8a\x6c\x3d\x0a\x87\xa7\x75\x3a\x3a\x68\x63\x68\xe9\x61\x42\x24\x1d\x53\x05\xbe\x4a\x94\x6f\x5d\x05\x94\x59\x06\x1a\x05\xac\xa5\xc0\x6d\x69\x9c\x5e\x28\x90\x98\xf9\x4f\xcd\x43\x71\x8b\xd8\xf0\x36\xe0\xd3\x5d\x2f\xa3\xb6\xda\x96\x57\x81\x3e\x92\xba\x20\xb8\xc7\x5b\x29\xcd\xbb\xbb\x22\x1b\x59\x57\x50\x5f\xd8\x76\x33\x99\x45\x5f\xf2\x4a\xa5\xfa\x18\xd4\x03\x99\x40\xbd\x31\xa0\x2f\xf0\x39\x0d\x0a\xbb\x76\xfa\xab\x7d\x4b\xe0\x08\x52\x10\x75\x2d\x0c\x3d\xe4\xc5\x9a\xf1\xaa\x5c\x88\xbc\x24\xeb\xc4\xb8\x45\x36\x05\x3c\x26\x1a\x36\xdf\x41\x2c\xdd\x20\x94\x12\xe9\x34\x82\xa8\x08\xc5\x50\xa4\xa0\x2d\x82\xa5\xf9\xd0\xeb\x76\x41\x4b\x47\x24\x6e\x8c\xb3\x34\x42\xd7\xff\x6b\x04\xa8\xc9\xd1\xa4\x7a\xf9\xf2\x87\x84\x57\xa9\x14\x79\x22\xe0\x5f\xc2\xfd\xd9\x34\x80\x1e\x20\xa5\x41\x4b\xfc\x27\x34\x1b\xd9\x26\xe2\xf3\x4a\xa2\x62\xf1\x51\x2e\x85\x2e\xf9\x72\xe5\x3b\xf8\x3f\xb2\xd2\xfe\xd5\x6c\xca\xd5\xcf\x6f\x7e\xf8\xe1\x87\x3f\x05\x43\xfd\x1f\xf8\xdf\xf1\x78\x3c\xc9\xff\x4f\xc0\xa0\x68\x6a\xa6\x8f\x30\xba\x74\x78\x05\x82\xc8\xfa\x54\xce\x00\xcc\xa5\x44\x7f\x59\xc9\x96\x8a\x8a\xf0\xc1\x94\xe1\xe6\x62\xd9\x30\x90\x4f\xc7\xec\xa3\x72\xa1\x9d\x28\xd0\x61\x3b\x0e\x0c\x11\x66\xbd\x1e\xb1\x26\x6b\xa7\xd7\x09\xd1\xe9\x40\xb0\xe5\x7c\x2e\x8a\x96\xb3\x0d\x59\xf9\xe3\x73\xa9\x03\x58\xea\xc3\x8d\xee\x6b\xac\x8f\xfe\x14\x99\x35\x8d\x0a\x73\xea\x1a\x97\x6a\x29\x93\x0d\xb1\xbd\x4d\x19\xb7\x8b\x2a\xb4\x75\x71\x3e\xa4\x3b\xc3\x34\x3e\x11\x38\x93\xe5\x12\x1b\xf4\x6d\x6b\x0e\xa9\x11\xb7\x99\xf7\x8d\xb8\x6b\x24\x75\x4d\x5c\x1f\x91\xd4\x4a\x26\xcd\x4a\x1b\x4a\x1d\x81\x3d\xe1\x23\x8f\x6d\x9d\x40\xf3\xad\xe1\x10\xf5\xc9\x40\x10\x37\x72\x2e\x0e\x56\xf1\x8c\x5d\xfe\x7e\x76\xf9\xfb\x1b\xb6\x14\x46\xf2\x93\x7a\x89\xb3\x04\x45\x06\x65\x65\x98\x53\xa0\x2f\x10\xd3\x04\x3a\x97\x8a\x91\x5b\x3d\x2f\xfc\xcc\x48\xa9\x92\x20\x24\xa0\x4e\x49\x91\xcb\xce\x58\x17\x2a\x4e\x56\x70\x97\x05\xcb\xec\x7e\xc3\x92\xc9\x56\x86\x1b\x65\xff\x00\x42\x1e\x06\x52\x8f\xd9\xb9\xdd\xe5\x05\xb7\x71\x3e\xfc\xce\x4c\xc5\x3a\xf4\x42\x5b\x2a\x69\x4f\x73\x45\x52\xcc\x5c\x94\x8c\x6f\xa0\xa0\x40\xb5\x49\xbf\xb0\xf2\xe4\xcf\xaa\xc0\xb4\x96\x66\x3c\x95\xdb\x6e\x54\xeb\xdd\xee\x68\x21\x9c\x1b\x21\xb8\xb8\x86\xa8\xce\x65\xb9\xa8\xa6\x86\x9e\xa6\x2a\xd1\x5e\x1f\x3c\xcd\x54\xc2\xb3\x53\xda\xd7\xf1\xa2\x5c\x66\x7e\x99\x86\x52\x84\x7a\x91\x9d\x11\x4a\xbe\x1a\x15\x25\x34\xbf\xc2\xef\xf8\xcf\x25\x5f\xc3\xce\xa4\xa9\xad\x34\x27\xd8\xac\x32\x8f\xbd\x2d\xe4\xfe\x21\xeb\xcb\xf5\x7c\xcb\x5a\x94\x3b\xd4\x21\xea\xe7\x49\x30\xe7\xbc\xdd\x87\x60\x5a\xb4\x54\xb2\xa5\x88\xb9\x2c\x0b\xf8\xa9\x69\xa1\x4b\xd4\xa5\x4c\x13\x96\x83\xda\x1c\x36\xa0\x2c\x2b\x23\x36\x80\xc8\x6c\x44\x5d\x67\x44\x84\x4f\x91\x4b\x10\x31\xf8\xb2\x35\x68\xcc\x99\x32\x02\xaa\xc6\xa4\x80\x8a\x2c\xbe\x66\xf0\x53\x1c\xf7\xb4\x40\xbb\x33\x2f\x98\x79\x5c\x09\x2f\xbc\xde\x82\x62\xe2\xa7\x50\x94\xe0\x55\xa9\xcc\x32\x50\xf9\x5b\xa9\x55\x95\x6d\x98\x85\x45\x9f\x0c\x64\x86\xc0\xae\x66\x07\x5d\x41\x98\x0b\xb3\x93\x40\xe1\xc5\x6d\x1d\x65\x56\xf9\x60\x19\x28\xb3\x87\x5b\x13\x63\xa0\x99\x07\x22\xb5\x86\x42\x3e\xd2\x96\xdc\x24\x68\x42\xf3\x3f\x82\x62\xf1\x82\x88\x0c\x1d\xb0\x32\x8a\x41\xcc\xe1\x8d\xd1\xc4\xad\x08\x65\x33\x55\xa5\xd9\xcc\x3b\x26\x72\x55\xcd\x17\xa4\xf2\x97\xce\x02\xe1\x8e\xc3\xb9\x66\xe3\x75\xf0\x9c\xfd\x7a\x97\x8b\xe2\xca\xc3\x2f\x36\xf1\x41\x13\x55\xa0\xa5\x0f\x74\x82\xdc\xef\xe6\x10\xc2\xf0\xa4\x43\x18\x06\x4f\xff\x73\xf1\xf4\xf7\x0c\x1b\x74\xc1\x81\x51\xe0\x5d\xcd\x3b\x0a\xef\xd7\x34\xd8\x54\x64\xe7\xfe\xb1\x69\x86\xbc\x74\x46\xa6\xe9\x6d\x4e\x6c\xcb\xc8\x9e\x4b\x74\x1a\x2c\xe6\x01\xe2\x06\xcc\xb8\x7d\x42\xe5\x7d\xbb\x8d\x9c\xbf\xf5\x1c\x8c\xf0\x15\xfa\x7c\x9a\xd2\x40\x0f\x16\x90\x19\x51\x0f\xac\x41\xf7\xb9\x57\x28\xb5\x9a\x85\x5c\xb5\x93\xc4\x7a\xb0\x82\xff\x6c\xbd\x72\x33\x69\x2e\xbe\x4c\x33\x84\x4d\xe4\xce\x66\x0e\x05\xd5\x1d\x17\x06\x11\xd9\xe7\x47\xb4\x8a\x92\xad\x2f\xa9\x07\xaa\x6b\x98\x47\xb9\x73\xf8\x2e\x4d\xe5\xc0\x01\xbc\x7b\x80\xc8\xaa\x54\x5c\xbc\xed\x58\x29\x36\xb2\xeb\x83\xbd\x76\x7c\x81\x56\x8a\xbc\xc1\xa8\x9a\x52\xdc\x45\xfb\x8c\x8a\x7a\xe4\x68\x01\xf3\x2c\x90\xf9\xc4\x48\x38\xa0\x70\x59\x23\x9f\x5e\x6b\x88\xcc\x0b\x61\x00\xf4\x82\x17\xe1\x1e\xa9\xa5\xc8\x93\x0c\x4d\x01\x08\xfb\x9c\x1a\x6e\xfe\xb3\x77\x95\x8c\xc2\xcf\xa1\x14\x40\x2e\x7a\x57\x13\xd2\xac\x02\xb0\x6c\xcd\x7f\xbd\x32\x8a\xac\xf5\x2e\xc6\x53\x89\xbb\x07\x93\x08\xfb\x9f\x1b\xad\xf3\x6f\x0b\x11\xa9\xb1\x52\xeb\x4a\xe8\xc0\x63\x63\xfb\xc7\xe3\x9b\x49\x61\xbc\x84\xd5\xe3\x70\x9e\x2e\x90\x00\x65\x48\x32\x91\xa2\xc0\xed\x76\x17\xbd\x24\x7e\x6e\x8e\x43\xb0\x4a\x5b\x01\xe0\xe2\xad\xb7\x77\xd7\xbe\x0d\x12\x38\xc4\x47\xe8\x92\xe7\xe9\x88\x89\xf1\x7c\xec\xd7\x04\x44\x43\x70\xb0\x21\xb8\x8d\xaa\xbf\x22\x97\x09\xb3\xfb\xed\x2b\xd5\x4a\x65\x6a\xbe\xfe\x2f\xb1\xee\x32\x76\x84\x4d\xeb\x61\x9b\x9f\xcc\x6f\xa4\x73\xfa\x57\x63\x2d\xe8\x70\x2c\x3c\x70\x7d\x93\xa7\x07\x24\x41\xa0\x85\xe4\x9d\x83\x3d\x76\x20\x1c\x1c\x9c\x13\xe6\xce\xd3\x97\xf1\x33\x56\x4a\xf7\x9b\xa6\xd9\x0b\xda\xb5\x44\x2d\x57\x3c\x5f\x8f\x13\xb5\x3c\xfb\x97\xca\x05\xe2\x59\x87\xbf\x1a\xad\x44\xe5\x93\xa3\x93\x3e\xd3\x72\xe7\xee\xe6\xe4\x6e\x5f\x3c\x27\x0e\x2a\x19\x3c\x23\x2b\xd9\x46\xd6\x5a\xf1\x79\xa5\x50\x4f\xd3\x8d\xae\x9a\x65\x7c\x2a\x32\x40\x1a\x31\xb2\x9c\xba\xcb\x23\x35\xa1\x71\xab\x01\x6b\xdb\x0d\x82\xa6\x8c\xd0\x2d\xd1\xbc\xa9\x70\x4c\xb5\x64\x28\x99\x2c\xec\x87\x65\xe9\xe1\xa0\xcb\x42\x8a\xdb\x80\xba\x04\x33\xc1\xc0\x1c\xae\x35\x9b\xf2\xe4\x93\xbd\xef\xce\x4d\x02\x0a\x9b\x73\x12\x82\xd7\xd9\x99\x46\x81\x3e\x98\x1e\x66\x4a\xfe\xe7\x68\x27\xc6\x1e\x7f\x7e\x2a\xac\xb1\xcb\x47\x6b\x58\x80\x71\xe7\x16\xa6\xbe\x4f\xaa\xd2\x3d\x30\xad\x26\x71\xef\x12\xa9\xfa\x8b\x2b\xdd\x81\xf4\xb6\xd5\x86\x30\xfa\x40\x9d\x1f\x82\xe8\x9f\xb6\x06\x7a\x9f\x20\xfa\xa6\xc8\x7c\x98\x10\xfa\x58\xaf\x18\x02\xe8\xbf\x61\xb5\x7a\x08\xa0\x7f\x64\x15\xf8\xa1\xc2\xe7\x9d\xc1\xa1\x93\xaf\x40\xe8\xfc\x4e\x2a\x70\x0f\x8b\x78\x37\x13\xa2\xce\x5d\x60\x6f\xf6\x13\x61\x11\xb7\x70\x9a\xc1\x74\xac\xb5\x18\x20\xc6\x20\xfa\x38\x0f\x8d\xd0\xa6\x99\x9f\xb1\xa7\xad\x46\xd2\xaa\x72\xb7\x86\x11\x01\xf0\x80\xc4\x92\xa8\x25\x49\x2d\x87\xf7\x88\xc6\xb6\x8a\x7b\xbb\x51\x56\xbc\x4c\x16\xa7\x4b\x51\xcc\xc5\xe9\x27\xb1\x06\x05\x33\x16\x5c\xda\x7b\x80\x35\x5f\xcc\xd7\x68\x2d\x2b\xe6\x7b\x58\x98\xec\x51\x1e\x40\x22\xb2\xa1\x22\x1d\x60\x95\x61\x33\x86\x7f\x9b\x92\x70\xe2\x42\xf7\x28\x2a\x9c\xa0\x94\xd4\xcc\x29\x69\xe6\x67\x14\x95\xbd\xc7\xf5\x77\x72\x66\xda\x18\x9b\x75\xce\x97\xd6\x77\x62\xa5\x70\x8a\x81\x09\xbf\x2d\xda\xa0\x03\xfe\xdc\xb0\x5d\xb8\x50\x1b\x98\x0a\x4f\x12\xc8\x61\x00\x57\xa4\x28\x93\x14\xd5\x14\xe6\x4d\x9a\x10\x20\xdb\x47\x90\xcb\x32\x75\x87\x53\x7f\xf7\x79\xc5\xf3\x3e\x22\x5d\x4b\x17\x23\x92\xdd\x85\x98\x83\x8d\x19\x9b\x4e\x56\x8b\x16\xa6\xdb\x86\x72\x5c\x5b\x43\x73\x60\x14\x91\x7e\x44\x19\xbf\xbe\x98\xb6\x48\x48\xc3\xfc\x92\xd2\xab\x2c\xa5\xeb\x6a\x26\x5b\x08\xe7\x83\xee\x38\x36\xf6\x2e\x48\x6a\x21\x4f\x96\x15\x68\xad\x76\xe6\x15\x5d\xa7\xc0\x44\x84\x4f\x8f\xd9\x79\x4e\x1a\x0c\x2d\x61\x7d\x2d\x8c\x1c\xae\x8a\x8f\xa2\x58\x5a\x66\xc8\x73\x4d\x8e\x2c\xa8\xd4\xe3\x47\x2b\x68\x39\xe0\x39\x8b\x75\xfd\xbe\x49\x08\xe4\x3b\xf7\x11\x79\x14\xb9\x71\x20\xe2\x94\xa8\x82\x62\x35\x9a\xcb\xbb\x97\x7c\x38\x28\x1c\x83\xcb\x6b\x90\xcd\x7b\x3d\xc2\x67\x8c\x54\x09\xe1\x91\xbf\xc2\x3c\xbb\x48\xff\xdb\x76\x42\xde\xc2\xb0\x2d\x25\xa8\x31\xac\x42\x90\xa3\xdf\x87\xc9\x6a\x0a\x6b\xa7\x19\x90\x51\xf6\xef\x93\xa3\x42\xa1\x45\x51\xab\x59\x39\x39\xfa\xc7\x98\x7d\x50\xa5\x8b\x92\x4c\xd9\xa9\x4d\x78\x42\x5e\x7e\xf9\x3b\x85\x93\x6b\xb9\x5c\x65\x6b\x36\xe3\x32\x63\x12\xfd\x42\xc0\xc7\xa1\xe7\xe3\x18\xb0\xc2\x4c\x32\x27\xf6\xd4\xb7\xd6\x67\x7b\x5d\xb6\x8b\x11\x3b\x4d\xa5\x0e\x7a\xe8\xa5\x2d\x5f\xaa\xb1\x26\x82\x61\x6a\x91\x3d\x44\x72\xad\x58\xa2\x8c\xd1\x18\xb7\xdb\x4e\x73\x83\x05\x3c\x14\x2a\x1b\xbb\xe1\x3f\xd7\x89\x87\xea\x27\x16\x47\x00\xdb\x9a\xa8\xb5\xe9\xef\x61\x8f\x2f\x44\x92\x71\xb9\xec\x97\x64\x79\xf8\x9b\x0f\x7c\x32\x98\x41\x0c\xcc\xfa\x56\x40\x9a\xeb\x1e\xb0\xa9\x30\x0f\x2a\x1d\xff\x4b\x1c\x63\xd5\xb6\xb2\xdf\xeb\xed\x83\xfd\x5e\xa8\xbb\xc6\x0a\xdf\x98\x19\x87\x70\xd7\xe1\x76\x18\x9e\x3c\x55\x55\x9e\x8e\x19\x9a\xd2\x21\xfa\x7d\xc4\xa2\x8f\x5c\xd8\x4c\x00\xf3\x30\x31\x9b\xed\x41\xe5\xae\xfb\x56\x56\x0c\x6f\xed\x13\xb3\x56\x44\x7a\xd9\xa1\xcd\x15\xe1\xe0\x1d\xb6\xf0\x7a\xd3\x36\x83\x78\xf4\x20\x06\x88\xd5\x27\x2e\x9f\xee\x54\xc8\x3f\x34\x88\xc7\x7a\xf8\xc1\xcd\x33\xd1\x8d\x1f\x8c\xe3\x83\x00\x3e\x18\xc7\xbf\x0c\xbb\x79\x10\x0b\x79\x94\x8e\xb2\x99\xdd\x44\xe9\x41\xae\x36\x7b\x20\xdf\x42\x98\x54\x6b\x52\x58\x1f\xb6\x43\xd9\x48\x5d\x4c\xc7\x25\x2d\x69\x02\x0e\x28\x45\x9e\x1a\x21\xc8\xfe\x81\xa4\x54\xca\x4d\xca\xd9\x24\x9a\xf8\xf5\x4a\x24\x90\xbe\x41\x71\x0b\x36\x13\x85\xb8\x8a\x1d\x45\xdb\x70\x6f\x66\x2e\x3d\xd0\x90\x3d\xa4\x42\x9f\xa1\x75\x2d\x12\x65\x5e\xee\xf6\xc5\xbd\xab\xb7\xb7\xab\x4c\xab\xc2\x31\x4d\x50\xa9\x20\x4f\xb2\xef\x42\xa3\x88\x74\xbb\x60\x07\xe0\x3f\x69\x7e\x16\xa2\x72\xda\xc7\xdb\x82\xb9\xff\x87\x1f\x0f\x8c\xb9\xef\xae\xc4\x01\x6c\xe9\x28\xb5\x9e\x3b\xdc\x9b\x2d\xf7\xbc\xde\xd4\x23\x08\xbb\x0b\x57\x06\x11\x55\xaa\xb0\x50\x42\x81\x7f\xc8\xa5\x8b\xb3\x52\x9d\x39\x66\xe3\xff\x08\x8e\x98\x49\x3e\xc9\x1b\x1f\x1b\x50\x78\xbf\x52\xd9\x6d\x10\x6d\x9e\x8b\x68\x73\x6f\x14\xde\xaf\x1a\x3c\xb6\x4e\x91\xf6\xc3\x90\x4d\x85\x06\x6c\x16\x24\x92\x67\x44\x21\x1d\xc4\xd5\x82\xdf\x4a\x55\x8c\xd9\x25\xe5\x62\xb9\x88\xca\x20\x0a\x10\xe3\x47\x37\xa5\x21\x00\x6c\xd9\x41\xd7\x89\x23\x76\x9c\x78\x59\x39\x80\x8d\x06\xe9\xa6\x47\xd5\xb2\x2a\x73\x78\xe5\xda\xe2\xa8\xd9\x67\xde\x60\x20\x0e\x46\x6a\xc4\xe4\x58\x8c\xb1\x6b\x1d\xf5\xed\x99\x60\xf2\x36\x18\xf2\xa1\xa5\xda\xfa\x07\x3a\x8c\x29\x6d\xcd\xdb\x0c\x2a\x9b\x18\xf6\xc0\x9d\x9f\x34\x77\xde\xdb\xb2\x52\x3f\xef\xc3\x1b\x57\x1a\x2f\x61\x30\xb0\x0c\x52\xc8\x60\x60\xf9\x72\xac\xe8\x41\x8c\x2c\x0d\x71\x03\x9e\xd5\x0e\x0c\x89\x50\x22\x82\x5c\x35\x9f\xcb\x13\x38\x11\xa7\xc2\x01\xcb\x8e\xd9\x15\x00\x1b\xe6\xea\x0e\xbd\x3b\xce\xab\x54\x8b\xf0\x72\x48\xb4\xb7\x92\x3b\x81\xc3\xfe\x5a\x8c\x98\xcc\x09\x28\x81\xdd\x09\x78\xe8\x18\x03\xc5\x33\xad\x62\xe8\x40\x08\xdd\x5a\xa9\x54\x8f\xd9\xbb\xcf\x3c\x29\xa9\x82\xea\x52\x2c\xa7\x1e\xb3\x49\x8b\x3e\x99\xe1\x38\x2e\x39\x9b\xf6\x11\x69\x6d\x00\x4f\xdd\x95\xd6\x29\xcf\xd6\xbf\xec\x6d\x5d\x16\x18\x38\x2e\xae\x63\xd1\x8c\xc2\x24\xab\x95\xfb\xa8\xc3\x41\x09\x31\x13\x57\x2a\x3d\xd6\x76\xeb\x42\x10\x90\xba\x53\x6e\xe5\x24\x49\x38\xc0\x00\x9e\xe0\x17\x39\x27\x9b\x90\xf5\xbf\xb1\x8b\xc0\x2c\x57\x16\x3c\xd7\xd8\x13\x06\xd3\xae\x9e\xf4\xa6\x4f\x63\x46\x58\xdb\x6e\x6d\x81\x8e\xdd\x01\x39\x36\xdd\x3c\xf3\x0d\x7e\xeb\xda\x54\x3e\x74\xe7\x4b\x7e\x08\xe2\x0c\x9b\x47\xe0\x0e\x68\x6f\x57\xe5\xfd\xed\x4e\x1d\x61\xc8\x6d\xcd\xb7\x40\x79\x6f\x54\x41\xfa\x22\x7b\x77\x86\x04\x9c\x5b\xac\xe9\xcd\xb5\x64\x62\xa0\x1f\x38\x71\xc8\x39\x5d\xf0\x3c\xcd\x84\x95\x50\x49\x35\x6a\x64\xb4\x86\x89\xa8\xb5\x04\xd4\x3d\x73\x4d\x7b\xdc\x93\x8f\x2e\x88\xd2\x26\x2d\xde\x46\xd8\x8a\x21\x4d\x2c\xd5\x1e\xf3\xd0\x75\xea\xde\x8f\x66\x75\xf3\x8b\xad\xc2\x40\x83\x43\x04\x2b\xdb\xc4\x23\xf6\x30\xcb\xda\x9b\xd3\x5c\x6f\xdb\x49\x3c\x80\xf1\xf6\xba\xae\xfc\x77\x3e\x23\x54\xdc\xed\x43\x72\x6a\xfc\x01\x5e\xd0\xbb\xa2\x50\x8d\x47\xb4\xfb\x41\xe3\x30\xdb\x4e\xf7\x23\xa8\x66\xba\x64\xc2\x34\x65\x22\x07\xff\x0a\x14\x3c\x27\x2c\xea\x3a\x24\x3a\x54\x20\xe7\xf9\x3a\xa2\xdf\x00\xfb\x00\xe4\x1a\x59\x71\x3f\x13\xc5\xae\x86\x89\x51\xe3\xba\x74\x69\x25\x17\x11\x7d\xf1\x38\xc5\x1e\x3e\x35\x5b\x07\x92\xcd\x23\xad\x68\x8f\xc0\x6e\x77\x95\x7e\xd9\xa0\x13\x3c\x68\x0c\xda\x6f\x2b\x44\x04\xb6\x90\xb3\x38\x9d\x51\x98\xcf\x1d\x89\x15\x54\x4a\x2b\x06\xbc\xac\x83\x03\x34\xb0\xf6\x81\x98\x58\x00\x11\x87\xd7\x5d\xaa\x10\xc1\xf6\x6f\x5c\x96\x3f\xab\xe2\xdc\x19\xb9\x10\x85\xdb\x01\x33\x7e\xb9\xf3\xdb\x16\x2c\x87\x96\xb8\x27\xf4\xa8\x5b\x4c\x83\xf7\x7d\xd4\x0f\x6c\x6d\x74\x0f\xfe\x60\x94\xbf\x7e\x1c\xed\xe4\x1e\x5a\x79\x67\x1d\xcf\xb7\x50\x4a\x4b\x60\xdc\x1e\xf4\xa0\xf7\x4b\x23\xe7\xcf\xbb\x44\x8b\xeb\xd2\x1d\x9b\xcc\xec\x8e\x6f\x9c\x88\x7f\x1d\x6f\x6b\x87\x42\xe7\x4b\x26\x1a\xc2\xae\xcb\xd4\x7c\x2e\xd2\x11\x33\x7a\x97\xe3\xe6\xb9\x72\x72\x3f\xd3\x22\xd7\xb2\x94\xb7\x91\x8e\xb2\x0f\x6a\x82\x6c\xca\x50\xf7\xb0\x65\x7c\x94\xf5\xe4\xab\xfa\x3b\x90\x4b\x11\xec\xd4\x1d\xd7\xe1\x6e\x6d\xbd\x84\xfb\x5e\xaa\x18\x2a\xa6\xeb\x72\x45\xad\xc9\x7a\x86\xd8\x0d\xce\x42\x96\x49\x30\x6a\xc5\x78\x30\x01\x34\x66\x8f\x2b\x96\xf4\xa8\x7c\xf1\x0b\xff\x2c\x97\xd5\x92\xe5\x15\x28\xd5\x6a\xc6\xaa\x5c\xfe\xb3\xf2\x2a\xf8\x92\xe7\x7c\x1e\x23\xbb\x84\xb2\x79\x08\xb3\x1a\x24\x05\x9e\x47\x82\xa2\xd4\x88\x9d\xef\xa4\x60\xc4\x52\x44\x20\x74\xd7\x0b\x6b\xc3\x20\x08\x36\xe2\xfb\xf9\x81\x13\x31\x82\x9b\x59\xde\xc9\x84\xaa\x58\x40\xfc\x41\x51\x65\x82\xf1\xd5\x2a\x93\xb6\x54\x49\x3c\x7f\xf7\x7d\x40\x64\x49\x19\x5f\x2a\x73\xff\xab\xac\x94\xab\x0c\x20\x34\xb5\x05\xbe\x73\x20\x29\x84\xab\x17\x72\x38\x00\x52\xb0\xee\x76\x80\x04\xa4\x3e\x2e\xb3\xc9\xef\x9f\x0b\xb8\x26\x48\x4f\xbb\xb4\x2a\x87\xa8\xda\x06\xec\x48\x14\xf5\xf0\xc3\xf7\x7b\x47\x3d\xec\x7c\x73\xb1\xcc\xf9\x53\x2c\x7f\xdc\x1b\xf2\x31\x2a\x72\x18\x80\x3e\x5e\x10\x0a\x0c\x20\x3e\x1a\x6a\x67\x51\x1f\xe9\x13\x3d\x80\x1f\x09\x47\x24\x86\x04\xe7\x11\x3e\x55\x59\x83\x82\xc4\xb9\xe9\xb0\x28\x56\xc3\xc6\xed\xb8\x26\xc1\x80\x0c\x95\x9e\x07\x2f\xd6\x10\x63\x32\x78\x77\x86\x4a\xcf\x43\xa5\xe7\x2f\x1d\xac\x53\x13\x08\x86\x72\xcf\xbd\xcb\x3d\xc3\xce\xed\xe5\xc9\xab\xed\xf9\x50\xf8\xf9\xdb\x62\xc1\x4f\xaf\xf0\x73\x5d\x2b\xd8\x68\x2a\x1c\xc2\x47\xbe\x21\x01\x63\x08\x1f\x79\x6a\xd5\x9f\x0f\xc6\x72\x86\x3a\xd0\x43\x1d\xe8\xa1\x0e\xf4\x50\x07\x7a\xa8\x03\x3d\xd4\x81\x1e\xea\x40\x0f\x75\xa0\x87\x3a\xd0\x43\x1d\xe8\xa1\x0e\xf4\x50\x07\x7a\xa8\x03\xdd\x5b\x4c\x18\xea\x40\x0f\x75\xa0\x87\x3a\xd0\x6d\x2f\x65\xa8\x03\x3d\xd4\x81\x1e\xea\x40\x3f\x4a\x1d\x68\x34\xeb\x7d\x3d\xc5\xa0\x5b\x64\xe3\xa1\x18\xf4\x50\x0c\xfa\xb9\x15\x83\xfe\x32\xe5\x96\xf6\x0f\x06\xec\x28\xe9\xfc\xf6\xdd\xe5\xd5\xbb\x37\xe7\x1f\xdf\xbd\x65\xa7\xa8\xb3\x80\x77\xc3\x55\x08\x0e\xaa\x26\x49\xf3\x9c\x57\x85\x48\x2c\x76\x05\x7d\xed\xec\xf6\xd5\x19\xb5\x19\xb3\x6b\x81\xf7\xb7\x10\x99\xe0\x5a\x18\x0d\x82\x8c\x8d\xf5\x8b\x10\xd4\x12\x1e\xca\x49\x0f\xe5\xa4\x87\x72\xd2\xcf\x3a\x30\x62\x08\x1d\x78\x2e\xa1\x03\x5f\x51\x39\xe9\x88\x09\x0e\x35\xa5\x77\xa8\x29\x7d\x80\x68\x84\x6f\xa7\xba\x34\x2e\xf9\xa9\x94\x98\x1e\xca\x49\x0f\xe5\xa4\x87\x72\xd2\x43\x39\xe9\xa1\x9c\xf4\x50\x4e\x7a\x28\x27\xdd\x43\x48\x19\x6a\x4a\x7f\x3b\x6a\xe8\x53\xab\x29\x1d\x9b\xe9\x76\x7e\x47\x83\x82\xfd\x0c\x15\xec\x21\x36\xff\x69\x15\x96\x3e\x90\x2e\x3c\x94\x98\x7e\xc2\x25\xa6\xdb\xac\x16\xf7\xf6\xb6\x3e\x8b\x3a\xd3\xb8\x33\x43\xb1\xe9\xa1\xd8\x74\x39\x14\x9b\x1e\x8a\x4d\x0f\x9a\xc8\xe0\x10\x1b\xe4\xf5\xa1\xd8\xf4\x50\x6c\x7a\x28\x36\x3d\x14\x9b\x1e\x8a\x4d\x0f\xc5\xa6\x9f\x4c\xf5\xcf\x07\x34\x61\x0c\x65\xa7\xbf\x61\x49\xf5\x89\x96\x9d\x6e\x31\x4c\x0c\xf6\xf3\x41\x1e\x1f\xec\xe7\x5f\x86\xfb\x3c\xb0\x11\x7d\xa8\x42\x3d\x54\xa1\xee\x59\x85\xfa\x2b\x2d\x42\x1d\x46\x11\x0e\x95\xa8\x07\x71\x6e\x30\x3c\x0e\x82\xce\x50\x89\xba\x57\xd0\xf5\xb3\x2f\x47\xbd\x61\xb1\x43\x4d\x6a\xfc\xfd\xc9\xd5\xa4\xbe\xaf\xb4\x3b\x54\xa7\x1e\x38\xf6\x01\x0c\x30\x0f\x5e\x9d\x7a\x83\xcc\x3a\xd8\x61\x06\xf1\x64\xb0\xc3\x7c\x39\xce\xf4\xc0\xb6\x98\xa1\x58\xf5\x50\xac\x7a\x28\x56\xfd\xad\x15\xab\xde\xa2\x70\x0d\x15\xab\xfd\x20\x43\xc5\xea\xdd\x39\xc7\x56\x01\xe1\x99\x96\xad\xde\xaa\xd2\x3f\x8b\xda\xd5\xe1\x0a\x87\x02\xd6\x43\x01\x6b\xc6\x5a\x3e\x36\x14\xb0\xfe\x0a\x0b\x58\x1f\xfa\x65\x7f\xd3\x55\xac\x9b\x9b\x39\x94\xb2\x1e\x4a\x59\x1f\x5a\x62\x1f\xea\x59\x3f\xeb\x7a\xd6\x32\xfb\xaa\xab\x58\x1b\x92\x0c\x29\x6f\xfa\xd4\xc7\xb2\xb8\xc7\x15\x35\x30\xaf\xec\x4d\xa5\x4b\xb5\xb4\x17\xf4\x8d\x59\x5a\xfe\xd6\x3d\xd5\x6d\x49\xb6\x5b\x3b\x06\x55\x53\xc0\x73\x52\x2d\x73\xbc\xdf\x30\x1f\x00\x7f\x64\xab\x42\x62\xc1\xa5\x1e\x39\xb5\xd1\xb7\xb7\xe6\xd5\xfa\x7f\xe2\x63\x5b\x54\x4b\x6e\xe4\x14\x9e\x42\xac\x73\xf8\x77\xeb\x37\xc1\xf9\xed\x41\xf1\xdc\xc9\x6e\x9b\x11\x36\x22\xb4\x64\xb5\x42\x79\x8e\xfd\xba\x12\xf9\xf9\xe5\x05\x86\xe0\x7b\xda\x48\xb6\x1c\x3f\x29\xb8\xff\xc7\x46\x1d\x3e\x66\xc1\x48\xf0\x0c\x1c\x6a\xd0\xaa\x90\x4b\x5e\xac\x99\x4c\x0d\x07\x9f\x49\xa8\x54\x05\x7b\x5e\x2a\xc6\xb5\x06\x1f\x56\x4e\x16\x77\x6d\x9b\xad\xb1\xfa\x00\xb4\x23\xa5\xc7\x91\x24\x00\x92\x03\x04\xd2\xc0\x66\xbc\xa8\xa6\x80\x54\xf3\xeb\xf9\xc5\x19\xcd\xff\x34\x72\x02\x9f\x4d\x33\x35\x3d\x5b\x72\x5d\x8a\xe2\x8c\xec\xa4\xfa\xec\xfb\xf1\xcb\xf1\x32\xfd\x37\x23\xe0\x02\x60\x32\xbe\x5e\x5b\x25\x69\xf7\x5d\xff\x1f\xad\xf2\x4b\x5e\x76\x95\xb2\xb0\xcd\x88\xe6\x02\x4a\x2e\xfb\xbf\xaf\x7f\xfd\xc0\x56\xe6\xd7\x17\x20\xc4\xa0\x50\x5b\x14\x7c\x6d\x68\x0e\x2c\xe2\xc4\xe3\x1e\x8b\x5b\x9e\x55\x20\xfc\xf2\x39\x97\xb9\x91\xbb\xa0\x82\x19\x5c\xfd\xc0\x1d\xa2\xd8\xaa\x50\x69\x95\x20\x3b\x42\x17\x4a\xfd\x20\xf7\x30\x58\x74\x1b\x2b\xc0\x4c\xd2\x76\xcd\xe1\x0f\xd6\x2e\xb8\xf7\x0c\x56\x85\x54\x45\x77\xcd\x07\xdb\x8c\xee\x38\x91\x32\xba\xd5\x24\xcd\x14\x22\xe3\x28\x63\x2c\x0d\x41\xe5\x2e\x74\xcf\xed\x10\x88\x9d\x9c\xd8\x01\x80\x40\xeb\x31\x7b\xaf\xee\x44\x41\xb4\x97\x32\x3f\x3c\xdb\x58\xc8\x39\xd4\x66\xa7\xcf\x8f\x19\x52\x21\xb2\x2f\x92\xf8\xa3\x96\xb2\x24\x20\x6a\xe0\xb3\x22\x65\x58\xfc\x47\x27\x22\xe7\x85\x54\x61\xfe\x05\xe2\x7f\x71\x37\x24\x9b\x43\x9e\x09\x30\xc0\x9c\xbd\x3c\x0c\x61\x0f\x45\x26\x6c\xb4\x15\xdc\xca\x10\x08\xdc\xd8\xde\x34\xe3\x09\xbd\xdb\x9e\x4a\x40\x1d\x9e\x08\xc6\x6b\x7b\xf3\x7b\x2a\x09\xf7\xe4\x8a\xf9\x6d\xc3\x61\xdf\xc5\x0f\x6d\x97\x20\x77\x7f\xa1\xee\xa8\x8a\x09\xb8\xde\x3d\xda\x94\xdd\x72\x2a\x17\x79\xd5\x83\x23\x06\xc0\x06\xdb\x6e\x8f\x6d\x16\xf0\x63\x33\x8b\x1a\x05\x73\x2f\xcb\xcc\x0b\xea\x23\x42\xc9\x6e\x37\xaf\x31\x3b\xc7\xc4\x76\x5b\xf1\x8e\x17\xe2\x35\x3b\x65\x37\x1f\x54\x2e\x6e\x5e\x03\x8f\xb2\xbd\x0b\x54\x2c\xa9\xa2\x0f\xe8\xe1\x2e\xde\x01\xeb\x33\x3a\x05\xa4\x54\x80\x71\x9e\xaf\x09\xf3\x9d\x64\x30\x94\xbc\x6a\x53\x1c\x9b\xcf\xfd\x4d\x4c\x17\x4a\x7d\xba\x79\xcd\xcc\x33\x40\x6f\x33\xc6\xf5\x62\x09\x49\x05\x0a\x9c\xf5\x54\xdd\x61\x6b\x2a\x82\x51\xba\x39\x6a\xd0\x94\xce\x7d\x19\xba\x40\xed\x99\xe4\x0c\x84\x40\x21\x52\xaa\x73\x85\xbe\xee\x55\xa0\x5e\xb9\x4a\x76\x66\x4f\xc7\x60\x4b\x2d\x6e\xc5\x6f\xf9\xa7\x5c\xdd\xe5\x3f\xa3\x5b\x05\x25\x5a\xaa\x47\x67\x56\x0d\x6d\x83\xef\x07\x93\xab\x3b\xbf\x7a\x93\x67\x1a\x63\x57\x9d\x6b\xc7\xb7\x40\x9b\x1e\x3c\x82\x6d\x4a\x99\x5d\x57\xf3\xd6\x5b\x37\x99\xdf\x04\x7b\x42\x63\xe6\x4a\x98\x42\xb1\x88\x1b\x7b\x6b\x6f\x82\x12\x72\xee\xf0\xf7\x09\x81\xb2\x8f\xe5\x4b\x50\x8f\x3d\xa4\xe9\x40\x8e\x8e\x1c\xbb\x41\x00\x46\x64\xac\x47\x10\xbf\xd4\xaa\x37\xe6\x71\xd0\x24\x19\xbb\x28\x35\x4a\x03\x16\x4f\xd4\x62\xf0\xa3\x30\x89\x95\x4d\xc6\x70\x3d\xa1\xa6\x1e\x14\x31\x19\x87\x3f\x83\xff\x9c\x7e\x1f\xa2\x9b\x9e\x72\x74\xd3\x10\xf0\xf3\x5c\x02\x7e\x82\x78\xe4\xd6\x4f\xee\x13\xf1\x7b\x20\x2a\xd6\x0f\xfc\xbb\x46\xff\xa1\xe6\x8b\xab\xec\x16\xaa\x9a\xf0\x22\xf9\x6a\x25\xf8\x06\x19\x79\xbf\x88\xdf\x43\x2d\xb6\x3b\x2e\x98\x1c\x85\xb1\x13\x9c\x27\x65\xc5\x33\x70\x22\x7a\xf0\xe7\x4d\x6c\x61\x77\x7e\xf6\xc8\x21\xbd\xf1\x76\x6d\x85\x81\xdb\xb4\xc6\xcd\x21\x54\xfd\xa3\xa7\x0e\x74\xa6\x6f\x54\x9e\xee\xcb\x8f\x5d\x5f\x1f\x53\x43\x0a\x91\xd7\xb6\xab\x02\x84\xfa\xc4\x35\xb5\x1c\x6c\xa5\xfa\x24\xf4\x64\x5c\x97\x1f\x0b\x0e\x36\x79\x2c\x43\xf6\x98\x46\xf5\xe6\xd7\xd1\xe1\x54\x5a\x63\xbb\x5f\x56\xe9\x9a\x19\x51\xd9\x90\x7c\x95\x3b\xbf\x39\xc8\xe2\x20\xd6\x6f\x70\xf6\xf6\xf3\x8c\x50\xab\xc0\xc6\x71\xea\x6c\x1c\xee\x6f\xf8\xf2\xbc\x07\x45\x13\xc6\x1f\x4e\xdc\xcd\x72\x2f\x58\x0b\xae\x3b\x05\x19\x6c\x84\x53\x44\x8b\xf4\xc8\xec\xc4\xe9\x9d\x2a\xd2\x91\xe7\x61\x8c\xda\x79\xab\x0c\x6d\xe4\xb1\x3e\xc0\x4c\xdb\xa9\xe4\x06\x52\x55\x8f\x70\x88\xa6\x03\xcc\xd8\x70\xe2\x8f\x50\xc0\xf3\x67\xd4\x61\x48\xbd\xd9\xc7\x2d\xd4\xdf\xc6\x51\xc7\x24\x09\xe6\xf4\x11\x0c\x10\x32\x4f\xb2\x2a\x15\xec\x9d\x2e\x39\x55\x86\x1c\x31\xa8\xe7\x7c\x9e\x24\x62\x55\x92\xbf\xe1\x23\x60\x49\xf3\xd8\xb8\xbc\x7d\xc2\x3d\x29\x6f\xdd\x2e\x41\xdb\xfe\x65\xf5\x8a\x2e\xd4\xe5\x2d\xdd\x62\xfc\xc9\x8d\x5a\xc8\x90\xdc\xf0\x35\x88\xff\xfd\x11\x99\xb1\xf4\x5f\x9e\xca\x5b\x99\x1a\x39\xa5\xeb\xe0\x0f\x92\xec\x70\x28\x2d\x3a\xf8\xea\x90\x12\xf1\xcd\x6a\x48\x2e\x25\x62\x67\x1a\xfe\xe8\x79\x07\xf7\x17\x9f\x3b\xb2\x10\x1e\x5d\x84\x06\x96\xbb\x07\xcb\x81\x7e\x2d\xf1\xc2\x40\x97\x61\x36\x54\xc9\xb4\x4b\x8d\xd8\x1c\x08\xc1\x4b\x31\x57\x45\x37\xf4\xaa\x6f\x18\xf3\x40\x38\x35\x91\x86\xfa\x29\xb8\x56\x6a\x3e\xbf\xa9\xc8\x54\x3e\x87\x79\x63\x89\x8f\x63\x9e\x65\xc7\x27\x3e\x8a\xd9\xd7\xdf\x96\x39\x58\xe4\x52\xa9\x13\x75\x2b\x8a\x35\x4b\x55\x52\x41\x0e\x19\x32\x1c\x88\x7b\x98\xae\x9d\x7b\x16\x82\xe3\xb0\x94\x84\xcc\x6f\x15\x61\xb3\xb2\x4c\x7e\x12\xec\xc6\xdc\xc5\xa4\xcc\xb0\x7e\x68\x96\xdd\x3c\x3a\x0a\x5f\x0f\x0a\xfa\x89\x28\x28\x08\x99\xa2\xb0\x85\x4b\x6c\xcd\xda\x50\xfb\xb7\xd5\x39\x72\x55\x2c\x01\x10\xce\x8b\xcb\x60\x35\x97\xf9\xbc\xca\x78\x31\xa6\x1b\xe1\xf7\x1f\x60\xad\x01\xb9\x03\xeb\xd4\xd8\x82\x22\x48\xac\x09\x01\xe3\xc6\x7c\xf2\x86\xf1\x12\x09\x9e\xb0\x47\x81\x91\x85\xbb\x93\x31\x73\x47\xfe\xab\x7b\xfd\xb6\x59\xc7\x1e\xc0\x8d\x73\x2e\x06\xbf\x23\x21\x74\xdd\xe4\x08\xd7\x60\x08\xc0\xe4\x68\x1f\x17\x6e\x56\x15\x3c\xeb\x72\xe0\x42\x23\x3b\x5d\xfa\x57\x18\xc7\x1f\xba\xba\xe1\x99\x62\x5c\x42\xab\x1b\x09\xfe\x9e\x62\x11\x1c\x76\x63\x58\x89\x3e\x43\x73\x72\x60\x48\xa6\x5f\x88\x8a\xd1\x6f\xe3\xf1\x98\x7e\xc7\x29\xe0\xcf\x37\x63\xf6\x4b\xa5\x4b\xb6\xe4\x25\x01\x6e\x44\x15\xb5\x36\x49\x2e\x2f\x02\x3b\x37\xbb\xc1\x61\x81\xd4\x8c\xc3\xc1\xc7\x8d\x99\xdd\x9c\xd0\xf7\xa6\x02\x32\x7b\x32\x75\x27\x8a\x84\x6f\xac\x07\xbf\x55\x29\x5b\xa8\xa2\xac\xd3\xca\xb6\x03\xf0\x0d\x71\x0b\xcd\x3f\x89\x30\x5a\x75\xd1\x6e\xf2\xc8\x59\xfb\x1f\x8c\xae\xe0\x9e\xc0\x24\xbc\x4b\xe0\x06\x9e\xea\xb2\xc7\xce\x3c\x3c\x0d\xb2\x64\xa1\x6b\x57\xa9\x99\x7b\x87\xf6\xdf\x6d\x57\x7b\xcb\xf2\xa2\x17\xe9\x7e\x4e\x89\xbc\x1c\x1a\x21\x11\x1f\x6c\x9d\xe2\x7e\x59\x0d\xb3\xab\xe0\xc2\x96\x6e\x35\x4b\x30\xaf\xd9\x81\x65\x11\x11\x17\x32\x04\xf7\x88\x77\x6c\x71\xc9\xb3\x07\xd7\x42\x7a\x3a\x41\x93\xd0\xfb\x8f\xba\x6d\xf0\x93\x16\xa5\x51\x22\xfc\xd3\x7e\x73\xf5\x76\x83\x91\xcc\x8a\x90\xdb\x6e\x39\x16\x99\xa6\x2b\x6e\x08\x02\xfe\xe0\xf0\x38\x30\xc1\xb0\xe1\x4e\xbf\x27\xfd\x1e\x8f\xc7\x8f\x4f\x98\xf7\x8b\xa1\xfa\x52\xbe\x03\x24\xfc\xdb\xee\x09\x52\x78\x0c\xcd\x58\xc7\x8c\xd6\x10\x70\x10\x16\x62\x2e\x50\x3f\xc6\x4d\x71\x5b\x2d\x31\x09\x9d\x41\x5c\x6d\x71\x0c\xa1\xa8\xce\x4b\x57\x6d\x1b\xff\x88\x71\x72\x88\x5a\x55\x06\x48\x57\x74\xc0\x36\x5c\x89\x0c\x39\x21\xca\xad\xa0\x4b\x06\xee\x7e\x4a\xc9\xa4\x6a\x11\x36\xe6\x3a\x08\x1b\x19\xc1\x4e\x8c\x7c\x4a\x3b\x6c\x8e\x99\xa5\x9d\x09\x55\xfb\xf7\x0d\x0a\x43\xc3\xef\xf8\x5a\xfb\x8f\xd5\xf3\x55\x83\x02\xec\x32\x67\x33\x7e\xab\x20\xba\x97\x5e\x27\xbb\xf9\x7c\x6a\xbb\x9e\x56\xb8\x27\xa7\xf8\xb5\x1b\x30\x22\x15\x15\x88\x93\x37\xe0\x22\xb7\x81\x32\x7f\xff\xee\x1f\x63\x5c\xee\x58\xe1\xea\x7f\xff\xe1\x1a\xfe\x7d\x13\x47\x65\x79\x95\xd2\x15\xe1\x2f\xb9\xfe\xa4\xcf\x38\xe4\xe3\x84\x2a\x27\x5f\xc9\x33\x3c\xf6\x53\xf7\x50\xeb\x3f\x9c\x86\x17\xf9\xdf\x56\x45\x95\xcb\x7c\x0e\x6a\x6a\xa5\xed\x32\xcc\x2f\xf1\x42\x7a\xc4\x73\x6d\x4d\x60\xd2\x89\xea\x34\xed\x42\x9b\xe0\x1a\x85\x15\x38\x36\xd0\x26\x08\x0e\xc7\xb2\x8b\xa7\x4c\x21\xb7\x86\x90\xbd\x53\x18\x2c\x6d\x8b\x46\x62\x37\x6f\xb0\xc7\x0d\x5c\x8e\x9b\x0f\x0e\x42\xad\x37\x7f\x0e\x16\x66\x8f\xb3\x63\x6d\x2e\x6c\xab\x86\x15\x62\xa4\x07\x73\xf1\xc3\xb0\xae\xad\xb4\xd8\x1a\x42\x73\x27\x01\x82\xec\x86\xb5\x50\x57\x15\x95\xbc\x57\x45\x0a\xc9\xb6\xf4\xee\xe8\x09\xb9\x8f\x98\x6e\x66\x06\x2d\x92\xa1\xab\x5f\xef\x58\x10\x5a\xb6\xa4\x66\x93\x23\x73\xd5\x4e\x8d\x10\x38\x39\x82\xfa\x8c\x88\xfc\x6e\xa4\x44\x3e\x55\xb7\x80\x48\x17\xb7\xaa\x8d\xa2\x47\x01\x21\x80\x39\x8a\x94\x65\xe2\xb3\x4c\xd4\xbc\xe0\xab\x05\x22\x7d\x8f\xd9\xe4\xe8\xbf\x9a\x63\x68\xa6\x4b\x5e\x94\x14\x87\xcb\x26\x47\xb7\x66\x16\x10\x7e\xcf\xa1\x82\x2b\x9d\x34\xe4\xc7\x53\x08\xfe\x0b\xb3\x92\x25\xff\x1f\x55\xd8\x51\x4e\xa8\x8b\x8d\xae\xce\xd6\xe4\xe0\x80\x55\x4e\x8e\x20\x35\x7d\x72\x64\x2e\xd3\xe4\x68\x2a\x4a\xf3\xdf\xe6\x9a\x90\x87\x2a\x1e\x58\xe6\xc1\xc0\xc0\x27\x35\xd6\xf3\xd7\x98\x08\x30\x93\x85\x86\x8c\xa9\xbf\x9c\xa3\xa4\x2c\x98\x19\xd2\xfe\x37\x7c\x8b\xbd\xc0\xe2\x2d\x7f\x39\x47\xe3\x82\x0b\x78\x32\xcb\xcc\x8d\x1c\x3e\x9b\xc9\xcf\x4c\x43\xfc\x9b\xc6\xfe\xaa\xc0\xbe\x27\x28\xbd\xc3\x82\xa6\x6b\x8a\x8a\xc5\x7c\x9e\x60\xc9\xb4\xe2\x68\xb6\x58\xbe\x05\xab\xdc\xda\xd9\xda\x3b\x69\xf7\xfb\x35\xbb\x7d\xf5\x72\xc4\x6e\xbf\x1f\xb1\xdb\x57\xe6\xff\x43\x6a\x0b\xfc\xeb\xa5\xf9\xaf\x1f\x46\xec\xf6\x07\xc8\x76\x31\x3f\x7d\x0f\x33\xc2\x76\xf0\x9f\xdf\x8f\xd8\x4c\xa9\x57\xf8\xbf\xf5\x78\xd8\x2f\x6b\x17\xb6\x6e\x87\x9d\x15\x8b\x9e\x82\x39\xca\x62\x0d\xd9\xa2\x41\x0f\xdb\xe8\xc8\x17\x96\xde\xbb\x32\xa1\xb7\x77\xac\xd9\xeb\xfa\xc5\x34\x74\x3b\x8a\xc8\x61\xd7\xaa\x1e\x3f\x19\x09\x2d\x9a\x25\xb3\xa5\xa6\xc9\x64\xe9\xea\x87\x43\xb0\x07\x64\x53\x9a\x77\x6a\x69\x37\xda\x33\x03\x22\xfc\x71\x21\xd6\x36\x2c\x3d\x28\x35\xbb\xe0\x79\x30\xaa\xc4\xdc\x99\x0d\x92\x9d\xf3\x88\x76\x9a\x37\x5d\x43\x77\x7c\x74\x72\x86\xe9\xaf\x78\x51\xca\x04\x74\x61\x6e\xbe\x56\xda\xd0\xe3\x5e\xe1\x1b\x5f\xf6\x9d\xfb\xf0\x8d\x7b\x99\x10\x4a\x55\x88\xf4\xf7\x7e\x8c\x3e\x6e\x0c\x34\x15\x61\x5f\x42\x0e\x1f\xcf\x97\xae\xc7\x9d\xe1\x02\x02\xaa\xa0\x13\xf0\x88\x91\x43\x0b\x9e\x7c\x22\x37\x92\x16\x01\x07\x37\xcc\xce\xb0\x8b\xa5\xc3\x42\x81\x54\x15\x48\x9c\x82\x29\xf8\xb6\x32\x87\xba\x6a\xa8\xc7\x39\x99\x76\x59\x61\x11\x7c\xad\xa2\x51\xc0\xe5\xa3\xb2\x8c\xd0\x76\xcc\x4e\xea\x45\xd4\xc2\x87\x6b\x38\x5e\xf5\x42\xe4\x1a\x13\x4e\x73\xc5\x54\x96\x46\x30\xb5\x99\x98\x41\x4a\x11\x49\xeb\x21\xcf\x2a\xc4\x52\xdd\x0a\xab\xcd\xb8\xa2\x32\x6e\xe6\xe4\xfa\xa2\xe2\xcf\x4e\xf8\x41\x17\x19\xb9\xb8\x70\x0c\x8a\x2a\x89\x45\xec\x1b\x23\x6d\x60\xd1\x8a\x35\x56\x44\x44\x7d\xc3\x8e\xf7\x28\xb6\xa8\x06\xcb\x78\x54\x7a\xde\x74\xb0\xf7\x25\xe8\xbf\x37\x72\x12\xbc\x6c\x62\x6e\x19\x58\x22\xba\x49\x77\x00\x4b\x00\x1e\x74\xca\xbb\xe9\x78\x45\x9b\xba\x85\xb9\x82\x3e\x28\x3f\xa1\x3f\x3a\x84\x01\x99\xb3\x8f\x70\xb9\x55\x55\xae\xaa\xb2\x53\x9f\x82\xda\xf7\x22\x4f\xc4\x19\x94\xbb\x07\x3d\x8a\xfc\x9a\x86\xa6\xeb\xb3\x7f\x2b\x44\x22\x24\xe8\x45\x4e\xb1\x3a\xe5\xfa\x14\x9e\x50\xac\x1c\x19\xf9\x39\x57\x6e\x4e\x20\x0d\x5a\x75\x77\x04\xd9\x65\xf9\x3c\xb3\x89\x56\x86\xe4\xaf\x32\xbe\x76\x38\x04\x73\x1f\xd0\xd2\xd4\x74\xa0\x68\xcb\x97\xa7\xaf\x8d\xcc\xcf\xfb\x10\x57\xaf\x5a\x77\x66\x6b\x06\x3a\xb8\x17\x32\xa4\x76\xb7\x72\xc3\xc6\x19\xf5\x26\xd2\xe1\xa9\x18\x3d\x25\x0b\x94\x10\xba\x64\x1a\x05\x3e\xf4\x78\x60\x3c\x7c\xc1\x38\xbb\xe3\x05\xa4\xa9\x2d\x04\x27\x05\x8b\x9c\x36\x86\x6c\x17\x42\xaf\x54\x5e\x37\x02\x43\x62\xc7\x3e\x2a\xb3\x9d\xb0\x54\xf9\xdf\xf0\xb3\x3d\x77\xc8\x77\x60\x46\x9a\x28\x5c\xcd\x7f\x0b\xf0\x6e\x57\xe1\xde\x4b\xa9\xd0\xd7\x85\xd6\xff\xff\x8f\xbd\x77\x5f\x6e\x23\xb7\xf6\x85\xff\xdf\x4f\x81\xd2\xa4\xca\x52\x3e\x92\x12\x25\x7b\x92\x51\x6a\xd7\x1c\x8d\x2f\x13\x7d\x63\x8f\xf5\x59\xf2\xe4\xe4\x0c\x67\x1f\x81\xdd\x20\x89\xa8\x09\x74\x1a\xdd\x92\x99\x78\xaa\xf6\x83\x9c\xf3\x72\xfb\x49\xbe\xc2\x5a\x0b\x97\x6e\x36\xaf\xa2\x64\x67\xb6\x53\x15\x8f\x48\xe2\xba\x00\x2c\x2c\xac\xcb\x6f\xf5\xd8\x1b\x3e\xab\x61\x3e\x60\xa8\x45\xa0\x20\x04\x5b\x58\xc2\xe1\x9d\xd2\x6c\x77\xc1\xfa\xd4\x15\x29\xf6\x12\x28\x44\xa2\xa7\x53\xa1\x52\xd8\xdb\x6e\x01\x95\xb8\xb3\x97\x41\xfd\xd1\x6a\x7f\x14\x7f\xaf\x78\x66\x1f\x3f\x2e\xd4\xce\x94\x7c\x28\x33\x59\xce\x3a\x2e\xe7\x18\x70\xf9\x6d\xec\x75\x1b\x44\x50\xc6\xaf\x63\xfb\x1d\xe5\x4e\xfb\xaf\xff\xfc\x3f\xb7\xfd\xff\xfa\xcf\xff\xdb\x81\xbf\x8e\xe1\x61\x04\x1f\x45\x99\xac\xab\x43\xad\xd1\x8b\x97\x1b\xdb\xc4\xae\x2d\x1d\xae\xb1\xc9\xb0\x48\x5b\x58\xa3\x40\x11\xf5\xa8\xa2\xf6\x4f\x98\x62\x6e\x95\xbe\x9c\x34\x84\xf5\x2c\xb7\xf4\x25\x48\xd3\x96\x17\xdf\xfa\xb6\x3a\x8c\x34\x5c\x28\x75\xd0\x4e\x25\xcc\x84\x35\xb8\xc7\x22\x68\x69\xa0\xf0\x2a\x51\x10\x57\x16\x5e\xf5\xa3\x8c\x8f\x11\xc6\x4e\xaa\xf1\x61\x2a\x0d\xfe\x55\x1f\x02\x88\x30\xf8\x30\x70\x9b\x5f\x72\x74\x1e\x3a\xbb\x38\x5f\xe0\x4b\xb3\x5c\xed\x86\x32\xd7\x1a\x32\x6b\xe4\x1d\xdb\x3c\xb7\x41\x1b\x0b\x04\x6e\x2a\x62\xe7\x76\x75\xac\x99\xbd\x02\xdd\x86\xb3\x95\x89\x08\xd2\xb1\xa6\xe7\xa0\xf2\xff\xbe\x64\xbb\x2e\x9f\x67\x35\x2c\x5a\x60\x36\x1e\x7e\xd7\x5e\xc6\x1d\x2f\xdd\xb7\x51\x41\xaf\xc6\xbf\x83\xd8\xac\xf8\x97\xb6\x2d\xb9\x48\xf7\x39\xe1\xb7\x62\x8b\x08\xb7\x66\xfc\x2c\xed\xe5\x96\x5d\xf3\x29\x54\x11\x11\x41\x2f\x13\x9e\x2d\xc3\x37\x5d\x5e\xd1\x9b\xd3\x28\xa8\xd0\xb9\x0c\x59\x6e\x61\x7f\x8e\xc8\x8e\xf2\x6c\xfd\x4d\xb6\x96\xf7\xfd\x50\x64\x2e\x2b\xf0\x1a\x28\x03\x73\xe5\x6b\xde\xac\x01\x6e\x80\x2c\x14\xf0\xca\x9e\xc3\x0f\x00\x74\x15\x5d\xa0\xac\x81\xd1\xa3\x38\xdd\x6b\xf4\x2f\xee\x19\xea\xe0\xba\xc7\xde\xda\x2b\xdc\xb7\x6b\xe0\xa8\xb9\x84\xf6\x75\x20\x03\xb2\x82\x80\x02\x35\xf2\x69\xc0\xca\x30\x54\xb2\xf1\xf5\xb0\x97\x6b\x7b\x0b\x5f\x43\xcc\xdf\x75\x28\x4f\x12\xd5\x9d\x2e\x6e\xf0\x58\xff\x59\x17\xf2\x1f\x5a\x95\x3c\xbb\xd0\xe9\x59\x55\x6a\x20\x7d\x11\xbf\x44\xc1\xa3\xd1\x01\xc9\x48\x13\x91\xc1\x1b\xd8\x9d\x72\x16\x2b\xec\xdb\x77\x1f\x27\xe0\xa9\x0f\xcc\x4d\xd7\x16\xaa\x92\xd2\x21\x32\x04\xc4\xd5\xd8\xa5\x06\x56\x20\x54\x91\x5e\xbb\x3d\xd2\xc5\xb4\xd5\x2d\xf2\x01\x8d\x2f\x5f\x01\x31\xba\xf1\x3e\x44\xd5\xbb\x4f\x96\x8d\x0e\x4a\x4e\x32\x70\x90\x03\xb4\x47\xda\x6e\xab\x0e\xba\x32\x35\x77\x02\x35\x44\x75\xae\x0f\xa1\xe3\xeb\xda\x09\x68\xcb\x78\x84\xd9\xbd\x91\x42\xdb\xc8\x10\xb9\x48\xde\x89\x3c\x93\x09\x37\x6b\x9c\x8e\x66\xf1\x1d\x1f\x8e\x5c\x24\xbd\x82\x9a\x7f\xa8\xa3\x81\xa7\x61\x47\x8b\xb8\x70\x95\x50\x6a\x0f\xf8\x63\x5a\xb1\xef\x5f\x5e\x6d\x1d\x07\xb2\xc9\x12\xcd\x55\x78\x10\x0e\xf6\xd0\xcb\x84\x1c\x6c\x67\x0b\xd5\x1c\xf5\x16\xa7\xad\x69\x1d\xb9\xaf\x63\xd0\xdc\xd1\x5b\xbe\xea\x9f\xfa\x9e\xdf\xcc\xe6\x30\x57\x73\xc9\x4d\x8f\xbf\xaf\xba\xea\x59\x80\x73\xf5\xfe\xf8\x01\xdb\x2c\xdc\x79\xed\x1b\xbc\xde\x5a\x50\x2e\x74\xd8\xef\xc9\xff\xce\xde\x42\x87\x0b\xc6\xd2\xa6\xb1\xf8\x3d\xbb\x78\x7f\xd5\x50\x47\x88\xd6\x16\x4a\x7e\x23\x5a\xce\x18\xae\x1b\x3e\x79\xe4\x58\xd9\x6b\x0d\x41\x36\x28\xd8\x6e\x56\x4e\xec\xad\x27\x3e\x24\x22\x2f\x6b\x94\x2a\xb9\xfa\x07\xc7\x01\x1c\x5e\xbc\xbd\xbc\x3a\xbc\x38\xbb\x7a\xfe\xe7\xb9\xb1\xcc\x29\xa7\xe6\x3a\x99\x6b\x74\xef\x13\xed\xae\xad\x36\x96\xa9\x31\x36\x9a\x07\x78\x19\x37\x65\x47\xb3\xa5\xf0\x68\x1a\xc2\x2d\x7b\xcc\xa7\x0a\x4a\xd6\xcb\x9f\xd9\x76\x9e\x75\x6b\x5e\x73\xd1\xe9\x5d\x88\xc7\x8d\xb7\x73\x3a\xe0\xf6\x78\x63\x01\x2e\xd1\x35\x27\x29\xd0\x3e\x83\x6f\xfb\xd7\xc4\xfa\x29\x38\xeb\xb3\x89\xea\x9e\xe7\x4e\x1b\x87\x75\xaf\xa6\x16\x71\x95\x88\x5c\xc4\x3c\x08\xee\xfe\x94\xf5\x7b\x2b\x4f\x9e\xc3\x73\xf3\xc1\x41\xed\x47\xf1\xda\xf7\x86\x27\x9c\x9e\x96\x2e\x28\xee\x78\x75\x47\xad\x03\x5e\xc6\x5d\x34\x39\xef\x90\xc9\x72\xf9\x08\x3e\xb1\xc1\x24\x52\x3e\xad\xcb\x2d\x42\x95\x7a\x50\x48\xd0\x3d\xb1\xa9\x28\x27\x3a\xdd\x96\x43\x34\xbc\xc2\x1e\x78\xff\xdb\xbb\x0d\x3b\xba\x28\x74\xbe\x7c\xbf\x37\x46\xe6\x74\xa2\xce\x89\xef\xf6\xc4\x29\xe4\x4a\x0d\x7a\xdd\xba\x4a\x0e\xf8\x28\x69\xe5\x1e\x7f\xdd\x5f\x12\xe4\xd3\x0b\x72\x80\x5f\xb5\xe8\xad\xe5\x9d\xf9\xd5\xd9\x8d\x00\xf3\x37\x82\x93\xaa\xdd\xf0\xd0\x7f\x2a\x52\xef\x73\xbf\x2e\x20\xf0\x12\x24\xcb\x75\xc4\xfb\xaa\x98\x8b\xe5\xd8\x75\x9e\x8a\x2d\xf6\xd8\x12\x52\x83\x78\x15\x83\x18\xa9\x19\x6e\x1b\x14\xbc\x40\xac\x76\x4e\x56\x08\x32\x07\xfa\x73\x07\xbb\x7a\xca\x86\x5a\x67\x1d\x06\x09\x67\x3b\x6c\x94\x69\x0e\x7f\xe0\x64\x3b\xec\xe7\x5f\xc0\x92\x38\xe2\x89\xf8\xe7\xaf\x1d\x36\xe5\xf9\xcf\xf8\x53\xfc\x3d\x6c\x4e\x25\xb3\xde\x0e\xa7\x1c\x1f\xab\xe5\xb3\x8f\x4a\x22\x53\xb1\x5f\x76\xe9\x94\xa1\x83\x9b\xdd\x6a\xf5\x6c\x8a\x2f\x0a\x3e\x2a\xd9\x53\xb6\x3f\x29\xcb\xfc\xf4\xf0\xf0\x6f\x46\xab\xae\xf3\x2c\x2d\xc6\x87\x07\x6b\x6c\x35\x62\x26\x1b\xef\xb1\xdf\xb5\x1b\x0a\xd6\xa9\x1a\xec\xb7\xe7\x6d\xb1\xc8\x0f\xcb\xde\xde\x16\xdf\x69\x9d\xad\x1a\xd8\x42\x24\xfd\x4f\x39\xba\x2c\x7b\x3b\xb7\x54\x8f\x63\x05\x6e\xee\xe5\xfb\x98\x7d\xb9\x9a\xfd\x16\xa6\x41\x6f\xf8\x47\xd8\x1e\x4b\x2f\x64\xa7\x4a\x00\x9e\x51\x4f\xe3\x6d\x6f\xa0\x4a\x39\x13\x42\xcd\x29\xdf\xdb\xa9\xc9\xbf\x97\xa3\x73\x29\xe5\x54\x8a\x34\x21\x73\x2e\x22\xae\x92\x2b\x3a\xe6\xa5\xa8\xb5\xb6\x21\xee\xe1\x02\xc1\x3f\x22\xde\x76\xe9\x2e\x3e\xf5\xce\x59\x9e\x13\x22\xb7\x62\x81\x4a\x5a\xd8\xcb\xe7\x30\xbb\xb7\x05\xa6\x1a\x38\xab\xef\xfe\xed\xa6\x7a\x2f\x41\x46\xa8\x6a\xfa\xe9\x58\xc5\xbd\xf8\x03\x79\x58\x3f\x06\x7f\x58\xd0\x7f\x92\x55\x46\xde\x0a\x02\xf4\x5f\x44\xfe\xa5\xc6\xd5\xd0\x88\x54\xf7\x68\xc4\xcb\xd1\x0f\x7d\x9b\xb6\x8b\xf8\xad\xa3\xda\x1c\x95\x3d\x7a\xe4\xd0\xf7\x64\x20\x71\xb0\x47\xf4\x35\x0a\xa7\xf8\x3c\x76\xae\x97\x5e\x80\x8b\x8b\xd0\xc3\x48\xa4\xa7\x03\x35\x50\x5d\x36\x34\x5a\xe1\x61\x92\xe9\xa9\xe5\xc9\xc6\x63\xab\xb0\xf3\x17\x94\x50\x85\xb3\xe3\xa7\xf6\xd1\x5d\xf0\xa4\x14\x85\x61\x13\xf1\xc1\x99\xb2\xba\xac\x2a\xe4\xa9\x1d\xea\xfb\x77\xe7\x8c\x1b\x96\xf3\x82\xa2\x7b\xbf\xd7\x19\x57\x63\xa6\x44\x79\x58\x15\x59\xef\xc2\xfe\xf0\x0e\x9f\xfd\xb6\x6c\x97\x89\x29\x97\x19\xd4\x85\xbf\x18\x4f\xd3\x42\x18\xb3\xb0\x15\x5b\x08\x9b\x39\xa3\x92\x5d\x36\xd1\x06\x42\x81\xed\xd8\x51\x7a\x6f\xc0\xf1\x40\x3e\x06\xc5\xce\x01\x4f\x47\x94\x50\x81\xfc\x68\xb8\x89\xb3\x1c\xbe\x7b\xf5\x9c\xf5\x8f\x4e\xac\x08\x4f\xc9\x94\x4f\x7a\x7d\xf6\xf3\xbb\x57\xcf\xed\xb7\xbf\xf4\x58\x97\xc9\xfc\xf6\x29\x8c\xf7\xfc\xe2\xf6\x29\x3b\xbf\x58\x34\x52\x1c\xe4\xf9\x05\x56\xf9\xda\x55\xf9\x7a\xbd\x2a\x89\x4c\x0b\x3b\x9d\xe7\xe7\x2f\xde\x2d\x2f\x0e\x25\xba\x6c\xca\x13\x5b\xfe\xcd\xd9\xf3\x55\x24\xc4\x6a\xb6\x60\x97\x55\x15\xac\xb8\x62\xef\xdf\x9f\xbf\x20\x97\x71\x7c\x67\x56\x79\x8e\x81\xc4\x31\x79\xd0\x6b\x76\x2c\x3e\xb0\xfd\x6f\xe5\xc1\x7f\xfc\x7c\xd4\xfd\x86\x77\x47\xbf\xfc\xf3\x8f\xbf\x76\xbf\xf5\x1f\x9e\xae\xf7\xa1\x7f\xfc\xeb\xef\x68\x04\x27\x7e\x08\x27\x3b\x1c\xc3\x89\xff\x74\xb2\xce\x20\x9e\xfa\x41\x3c\xdd\xe1\x20\x9e\xd6\x07\xf1\xc7\x6f\xf8\xf0\x97\xf6\x71\x45\x43\x79\xe6\x87\xf2\x6c\x87\x43\x79\xb6\xe9\x50\xa4\x19\x2a\xdc\xb6\x97\xdf\xfd\xd8\x3f\x62\xba\xc0\xbf\x4e\x5c\x44\x12\x1d\x7f\x08\xd1\x1f\xec\x1d\x9d\x1c\xf7\xff\xf0\xac\x7f\xf4\xf4\xc4\xc5\x32\x7d\xf3\x87\x3f\x76\xfd\xb7\xfd\xc1\x1e\xb5\xd9\x3f\x8a\x5b\x5d\xdd\x16\xd5\x3a\x09\xb5\x16\x8c\xa0\xa5\xbf\xa4\x10\xa9\x2c\x13\x5e\x00\x63\xc3\x4f\xcc\x7e\x74\x2d\xb4\x52\xf2\x3f\xf6\xbf\x3d\x85\x95\x03\x5a\xec\x7f\x7b\x8a\x7f\x9f\xfc\x7a\xf0\xed\xc7\x67\x3f\xf7\xbb\xcf\x7e\xa1\x1f\x9f\xfe\xfa\xf1\xeb\xfd\x6f\x4f\x8f\xfa\xfd\x8f\x40\x5e\xfc\xfe\xc0\x57\xfd\x78\xf2\xf3\xd3\x3f\xb8\xc2\x27\xbf\x7e\x3c\xb1\x85\x7f\x3e\xea\x3e\xfb\xe5\xe3\xcf\x5f\xff\xb1\x5e\xba\xff\xeb\xc7\xfd\x6f\x4f\x8f\xfb\x27\xfd\x8f\xfd\x3f\x1e\x1d\x7d\x3c\x79\x36\x18\xa4\xb6\x4f\xfb\x9f\x7e\xff\xd7\x83\xdf\x85\x24\x67\x4a\x2b\x96\xca\xb1\x9d\x4b\xe0\xc8\x53\xf9\x01\x1d\x91\xbb\xcc\x18\xbb\x72\xec\x7d\xef\xb2\xc7\x8c\x4e\x24\xcf\x2c\x43\xab\x20\x69\x00\x4d\x3c\x5c\x0d\xd1\xbc\xb1\xc7\x9f\xbb\xec\x97\x6f\xed\x9f\xc7\xe1\xcf\xa7\xb0\x25\x26\xe2\x43\xa2\x33\x5d\xc0\x52\x4c\xc4\x07\x9e\x8a\x44\x4e\xd1\x1f\x5a\x17\x2c\xd1\xa9\x70\x8b\xf1\xd5\x2b\xf8\xdf\x69\x7b\x47\x5f\x7d\xbb\x4f\xdb\xed\xac\xfb\xca\x52\xf6\x63\xfc\xf1\x6b\x3b\xd9\x2e\x2b\xc6\xc3\xd0\xdb\xbb\xef\xbf\x9b\xeb\xa5\x18\x0f\x5d\x77\xc5\x78\xb8\x7f\xfc\xec\x59\x87\xfe\xff\x0d\xac\xfe\x70\x56\x8a\x53\x36\xe4\x46\x7c\xfd\x14\xb2\x2f\xa5\x76\xa5\xa5\xe2\xc5\x8c\x41\x24\x6e\x17\x92\xbe\xdd\x69\xd8\x1e\x6a\xe6\x01\x50\xfc\xc5\x66\xaf\x49\x4b\xc9\x14\x23\x54\xe2\xdd\x76\x7c\x74\xf4\x75\xf7\xa8\xdf\x3d\x3a\x1e\xec\x35\xae\x91\x51\x95\x65\x5d\xa8\x22\x95\xbd\x53\x4e\x4e\x4e\xbe\xb1\x8d\x55\x18\xcf\x00\x0d\xd2\xdf\xcd\x46\x8f\x99\x32\xd8\xde\x1c\xef\x2e\xe5\x54\x20\xf3\x7e\xe1\x2a\x03\x35\xa6\x39\x2f\xe5\x30\x13\xb8\x3d\x2e\x13\x9e\x45\xcd\x93\xc4\x80\x33\xb1\x2d\xf8\xd9\x00\x66\x66\x73\x4a\xfd\xa7\xdd\xfe\x71\xb7\xff\xec\xaa\xff\xcd\xe9\xc9\xd1\xe9\xf1\x51\xef\xe8\xe8\xe8\x7f\xcd\x4d\xd0\x36\xd0\x85\x06\xc2\x04\xb7\x70\x07\x90\x73\xfe\x8c\x5b\x03\xc9\x3d\xf4\xcb\xe4\x6c\xb1\xc4\x3d\xe5\x1f\x5a\xf5\x49\xb5\x04\x1c\x5f\x3f\xdd\x22\x01\xc7\x94\x7f\x78\x2d\xd4\x78\xde\x4b\x62\x27\x4d\x2f\xd6\x35\xed\xa4\xf9\x36\xb9\x3d\x34\x9c\xea\x6a\xd8\x34\x08\xba\x96\x91\x43\x2d\x68\x58\xaa\x87\x22\xb6\x54\x0f\x46\x6c\xa9\x1e\x94\xd8\xed\x8f\xa4\x1d\x10\x9b\xd2\x93\xcd\xeb\xcd\xee\xdf\xb6\xd2\x8f\xa1\xc3\x6a\xd5\x9d\xd4\x86\x51\x65\x19\x1f\xce\xbf\x97\xd7\x7a\x61\x6a\xd5\x42\x9a\x7f\x3d\x95\x62\xce\x4b\xfb\x30\xda\x86\x17\x53\xd5\xc5\xbb\xfb\x73\xd0\x2b\xdd\x4f\x95\xb4\xc0\x80\xf1\x9b\x98\x5b\xe4\xcb\xb5\xce\x1e\xde\x21\x48\x56\x29\xcb\xc5\x87\x6e\x53\xc0\xe6\xb5\x6c\x93\x80\x7d\xdd\x7a\x77\xac\x75\xd6\x6b\x40\x9b\x62\x3a\x14\x69\x2a\x52\xef\x65\xbb\x42\x9f\xb3\xbc\x72\xe4\xf9\xe3\x92\xba\xa3\x3f\x1f\xa6\x7c\xa5\xe2\xec\x07\xdf\x04\x2b\x2a\x05\xd2\xe0\x5b\xf2\xba\x02\xc9\xef\x6a\x96\x8b\x37\x82\x00\x68\x42\x8a\x06\xd4\x04\x01\x70\xb5\xf3\x6f\x76\x3e\x18\x88\x6e\x48\x2e\x8c\x10\x39\x56\x15\xe0\x42\x51\x08\x4b\xca\xa4\x24\xa7\x5c\x1a\x80\xab\x86\x78\x37\x8d\xc4\x49\x35\x74\x1b\xaf\x61\x62\xbc\x2a\xf5\x94\x97\x0e\x66\xa3\x46\x88\x05\x08\x36\x8d\x31\x0d\x05\x05\xcc\x0d\xab\x92\xa5\x5a\x18\x08\xc3\x9d\xf0\x5b\x41\xbf\xca\xd8\xad\xc3\x56\xc6\x1c\xdb\x01\xf1\x67\xbf\xca\x6d\xd1\xe6\xb0\x03\x64\xcf\x22\xec\xa6\xf5\x37\x84\x54\x65\x57\x17\x5d\xda\x80\x1b\x6c\x86\x5a\xc5\x28\xd6\x94\xb6\x82\xc7\x8c\x94\x86\x09\x09\x6b\x13\xe5\xb0\x83\x34\xa3\x4e\x19\xe8\x72\x85\x52\x08\x56\x07\xf7\x4e\x5e\xce\x98\x4f\xd2\x46\x44\x85\x60\x68\xfb\x1d\x37\x2c\x99\xc8\x2c\x45\xbc\xea\xd9\xdb\x11\x40\x83\x8a\xc2\x25\xa5\x1b\x45\x8f\x37\xad\x7c\xb4\x5c\xf8\x92\xd8\xbf\x01\x45\x62\xff\x00\x1b\x39\x1d\x28\xc6\x58\x17\xba\x38\x75\x63\xad\x7d\x87\x43\x1e\xa8\xe3\x03\x06\xc6\x45\x57\x23\xaa\xde\xde\xc0\x7c\x13\xf0\x55\xaf\xd7\x63\xff\x10\x85\xb6\x04\x99\xea\x62\x81\x34\xb2\xfe\x6a\x66\xd2\x94\xdd\x29\xcf\xbb\x37\x62\xb6\x2a\x6e\x78\x71\x45\x06\x98\xc8\xe0\x9d\xc5\x15\xf9\x0e\xc3\x41\xb5\x34\x9c\xaf\x06\x2b\x72\x3d\xe5\xf9\xb5\x7d\x61\x51\xbc\x8e\x7b\x36\x43\x7b\x10\x0b\x45\xe0\xa1\x52\xa5\xe2\x83\x5b\x90\x29\xcf\x7b\x76\x05\x00\x42\xaa\xe4\x63\xcc\xa6\xe4\xc2\x29\x5d\x4a\x5c\x04\x06\x80\x8d\x85\xa7\x67\x62\xdf\x7c\xed\x03\x19\xec\x31\x7f\xed\xb8\x20\x8b\xc1\xde\x94\xe7\x83\xbd\x1e\x3b\xcb\x8c\xee\x04\x3e\x65\xa2\xa3\xe6\x01\x43\x03\xaa\x69\x14\x54\x61\x9f\xa6\x05\x2c\x60\x4a\xa1\x15\x2e\x04\x0e\x76\x21\xc6\x53\x54\x85\x60\xfb\x4a\x33\x25\x8c\x33\x13\x7a\x87\x8b\x03\x9a\xa6\x60\xe1\x56\x8e\x7a\x87\xae\xe8\x98\x40\x9c\x3e\xe5\xed\xd2\x05\xce\xb8\x61\xa9\xec\xd8\x59\x01\x8e\x80\x25\x86\x36\xb5\x56\x2d\x1b\x23\x25\x32\xea\x8f\xb3\x8c\x80\xc9\xed\x15\xf2\xe8\xa0\x92\xed\xcb\xb4\xf1\xde\xc4\x63\x3f\xbf\x2f\x23\xde\xef\xe2\x1c\x99\x04\xcf\xbc\x5c\x67\x7a\xec\x12\xb4\x87\x3d\x51\x4b\xd2\x5e\xdf\x61\x0e\xa6\x1e\x48\x7e\xc2\x72\x6d\x0c\xa8\x27\x70\xb3\x38\x56\x71\xcd\x4b\x3d\x95\xc9\xf5\x69\x00\xa7\x02\xce\x25\xf0\xda\x30\x21\x6e\x1d\xf3\xbe\x77\x50\x49\xe1\x76\x51\x8f\xf8\xc1\x19\xb4\x42\x3d\x83\x93\xfb\x10\x6b\x14\x22\x9b\xb1\x42\xe4\x19\x4f\x5c\x04\xa1\x87\x26\xaf\xcf\x85\x5a\x22\xe8\x13\x9f\x40\x5a\xcd\x7c\xb6\x07\x18\xdd\x3e\x6e\xcf\x0e\x0d\xa0\x63\xb9\x8e\xdd\x8f\xc7\x07\xec\xda\x88\xf2\xda\xf1\xad\x4b\x51\x06\xb8\x2b\x97\xed\xd3\x52\xcb\x5f\x5b\x3e\xeb\x33\xc2\xdd\x7b\x9e\x00\x89\x9f\xc9\xe7\xe8\x25\x4f\x26\xd4\x20\x5e\x00\xcd\x63\xd4\x09\x19\x06\xb0\x85\xda\x62\x5b\x1e\x84\x0c\x85\xc8\x0c\x77\x85\x9b\x6a\xc4\x8b\x16\xf1\x21\xaa\xd6\x1b\xa8\x93\x03\xe4\x4a\x6e\x7e\xe8\x0d\x45\x4b\x5d\x90\x26\x6e\xca\x73\x83\xf1\x07\x28\xc1\xc8\x82\x89\x4c\x00\xdc\xab\x3b\x7a\x4a\xab\x2e\x72\xad\x1b\x31\xa3\xb6\x1c\x18\x8d\xcb\xf9\x6b\xab\x4e\x7b\xec\x2d\x62\x89\x45\xf0\x78\xac\xca\xc1\xbb\xb1\xa0\x08\x4f\xdb\xa1\xe5\x74\x6e\xed\xda\x76\x23\x39\x48\xc2\x34\xfd\x60\x2c\xc3\x81\x55\x45\x59\x66\xa0\xe2\xc0\x79\x9c\x34\x1e\x77\x4b\xa2\x6d\xa2\xba\x5b\x97\x61\x93\x73\xea\x97\xae\x76\x4c\x69\xa5\x77\x70\x4e\xe1\x28\x38\x91\x80\x9a\xad\x1d\xd9\xe3\x85\x47\x76\x5c\x70\x55\x65\xbc\x68\xec\x05\x58\xfc\x00\x35\x84\x9f\xf7\x6f\xc4\xac\x8b\x5b\x37\xe7\xb2\x30\x07\xd0\x09\x64\x28\x26\x31\x0f\xac\x95\xca\x39\x25\x94\xd4\x24\x44\x24\x43\x31\xf4\xe6\xdd\x07\x28\x95\xc4\x0a\x33\xf6\xcb\xa1\xed\x4e\xc9\xbc\xca\x38\x05\x4c\x18\x91\xf3\x82\x97\xd0\xbb\x2e\x4c\x00\x39\xa7\x06\x63\x18\x82\xa1\x98\xf0\x5b\xa9\xab\xc2\xb3\x74\x3b\x56\x3a\xc4\x3b\x65\x48\x40\x83\x35\xf9\xd1\x3d\x37\xd9\x02\x31\x7a\x93\x3d\xb7\x48\x12\x37\xa5\xce\x03\x74\x2b\x81\x4e\xa4\x22\xd1\x29\x48\xab\xa5\xc8\x71\xbd\xc8\xb7\x76\x4d\xe8\xcd\xc8\x31\x97\x9c\x06\x71\xc9\xf8\x68\x04\x10\x3e\xd4\x4a\x21\x92\xaa\x30\xf2\x56\x64\x33\x14\xfe\xcd\x9d\x2c\x93\x89\x30\x6c\xc8\x13\xc8\x4d\x8a\xb8\xec\xbe\xf7\xb0\xba\x72\x04\xe2\x83\x48\xe3\x1b\xdd\xae\x78\xcb\x8b\xbd\x8e\x97\xe2\x01\x36\xe2\x81\xc1\xee\xf3\x62\x05\x80\x6b\xc6\x3e\x4e\x3d\x4c\x43\x04\x4f\x0f\x5d\x0c\x65\x9a\x8a\x45\xa9\x88\xe6\x65\xd0\x7f\x6b\xac\xee\xc3\xf9\xc1\xb6\xe8\xb3\xd7\xf6\x0d\xa5\x0a\xf5\x84\x9f\x78\xba\x31\xba\xae\x46\x21\xf4\x22\x8d\x5d\x4b\xd1\x00\x8f\xf7\x8e\x1e\x35\x7f\xee\xb1\x37\x5c\x5a\x1e\x05\xb1\x71\x94\x89\x1f\x22\x68\x09\x67\xaa\x2a\x20\xa8\xe9\x81\x5c\x64\xc9\xf9\x71\x03\x62\xd8\xf2\x31\x2d\xda\xa6\xcb\x68\xad\xdd\x8d\x1e\x5f\x34\xb0\x85\x5c\x2c\x96\x2b\x47\x5b\x75\xf6\x60\xb3\x8c\xbd\xab\x36\x98\x6c\x54\xad\xbe\xfe\xad\xb3\xa6\x97\x2c\x2c\xf5\xae\x66\x72\x29\x8a\x5b\x99\x88\x77\x0e\x33\x69\xc9\xe8\x9b\x45\xd9\x44\xc3\x5d\xe3\x1d\xe7\x41\x6b\x40\xa5\x7a\x99\x18\xf3\x64\xd6\x4c\x7a\xb2\xd0\x67\x79\x43\xc4\x96\x18\x70\xda\x50\x8f\x3e\x99\xf0\x96\x68\xd1\x39\x5f\xa9\x6c\xf2\xe5\xe2\x71\xe0\x17\xbb\x1b\x4c\xbe\x3a\x76\x17\xc3\x16\x51\x7a\x21\xe8\x53\xf6\xfe\xdd\x6b\x0c\x67\xe4\x25\xdd\x12\x76\x3c\x2e\x2d\xb3\xbb\x2f\x21\x94\x3e\xd9\xee\x6a\xb4\x0f\xc5\x55\x03\x83\x24\x03\xf5\x81\x11\x49\x18\xfc\xb6\xe6\xe0\xd8\xb5\x2d\x7d\x1d\xa1\x95\x38\xff\x23\x68\xc5\xe1\xb6\xf6\xbb\x5f\x3f\x7b\x76\xf2\xac\x83\xf9\xe1\xec\x85\x76\x50\xe7\x06\x4f\x9f\x82\x67\x17\x5c\x6b\x77\xbc\x48\xbd\x4d\x17\x80\x86\x76\x93\xd6\x7f\xee\x9a\x59\x8c\xd4\x81\x7b\xac\x09\x54\x44\x1f\x1f\x38\x62\xd7\xa5\xf3\x06\x58\xa8\xe7\x5a\x8d\xe4\x78\xc9\x61\x6f\x29\x1d\x60\x18\x50\x4b\xe2\x73\xa7\x5b\x42\x4f\x31\x76\xf5\xea\xf5\xa5\x2d\xa6\xc8\xc5\xcb\xbf\xbf\x5c\xc2\xef\x75\xf2\xf8\x7c\x57\xa9\x74\x5e\x81\x3d\x97\xc5\x07\x8b\xa1\xab\xf3\xc5\xcb\x37\xde\x09\xe1\xf9\x19\x1b\xe2\x4f\xb8\xd1\xdc\xe6\x72\x0f\x22\xa7\x40\x8d\xc7\xf5\xc4\x38\x09\x2c\xb1\x63\x82\x68\x0c\x01\x7a\xbf\x4a\x45\x78\x6f\x66\x66\x4a\x31\xb5\x57\x8c\x29\x59\xa1\xb5\x7d\xf4\xa0\x4c\xe3\x17\xc0\x83\x38\x2f\xdc\x5b\xc3\x59\xb9\x40\x8b\xb6\x34\xbc\x1f\x0f\xd1\x03\xdb\xf5\xe6\x6e\x83\xa5\x81\x92\x74\xae\xe5\xdc\x1d\x10\x31\xc2\xa0\xb6\xf2\x39\xdf\x5f\xa2\x30\xe3\x0a\x58\x71\xaf\xc8\xfc\x23\xdc\x93\x1b\xf4\x51\x04\x5f\xed\x18\x85\x04\xfd\x3c\x48\xa4\x76\x6b\xb9\x48\x7e\x44\x00\x27\x64\xe4\x99\xae\x1c\xdb\xa8\x8c\x40\xfc\x2c\x99\x88\xeb\x05\x6e\xe9\x2d\x81\x55\x8d\x79\xda\xd1\x8d\xe5\x2d\x45\x82\x66\x94\x3f\xc5\x31\x7c\x1a\x5a\x07\xf1\x47\xb8\x4a\x2d\x97\xb1\xbc\x18\xd2\x1c\xec\x5f\x83\xb4\x2b\x4e\x0f\x0f\x27\xda\x94\xa7\x96\x7b\x1d\x5a\x2e\x7d\x7d\xd0\x63\x2f\x23\x00\x25\x3d\x62\xd7\x55\x91\x21\x14\x8b\x1b\xf2\x02\xa2\xd8\x47\xfa\xb5\x6d\xce\xf3\x47\xfb\x16\x80\x15\x80\xa7\xb6\x27\xad\xa3\x55\x9d\x4e\x7f\xa2\xa4\x49\x11\x6d\x1c\x90\xa8\x32\xa5\xe0\xe4\xe0\x0a\x9e\x9c\x53\x39\x9e\x10\x30\xa7\xd1\x99\x03\xb1\xf2\xa1\x71\x2f\x7e\xbc\x84\x79\xeb\x69\x74\x04\x0c\x26\xc6\xea\x60\x6e\x99\xb0\xef\xae\xad\x28\x8b\x23\x85\xb6\x98\x54\x5d\x1a\x12\x34\xc4\x1d\x74\x6a\x60\xf9\x19\x9f\x09\x4c\xc5\x27\x75\x06\x64\x3f\xe8\xb9\xa9\xdb\x47\x35\xcf\x0c\xd8\x29\xc0\x01\xd4\x79\x67\x02\x8d\x2e\x32\xc1\x0d\x3c\x92\x48\x8c\x06\x2c\x48\x76\x6d\x97\x2f\xc3\x06\x2c\xa5\xfb\xc7\x7f\xe8\x1d\xf5\x8e\x7a\xfd\x6b\x7c\x86\x52\xdb\x76\x9f\x49\x73\x33\x63\x95\xca\x84\x31\xb0\xa7\x20\x3a\x1f\xb0\xea\x58\x02\x78\xc0\xda\xd2\xb7\xb6\xb7\x19\x06\x13\x02\xe9\xdc\x53\xcd\x96\xb1\xf2\xb9\x67\x10\xf8\x35\x12\x56\x09\xe4\x49\xc0\x3d\x21\x39\x95\x87\x2b\xf4\xc7\xe5\xb2\x4a\x26\x98\xf5\xca\xfe\xec\xd4\x42\xd9\x8c\x4c\x34\x4a\xab\xae\xdd\x55\x7c\x98\x09\xf4\x27\xee\xc0\x76\x10\xdc\x40\x11\x80\x17\xa9\x72\xbb\x4c\x9c\x29\x71\xe7\x76\x81\xdf\x49\xb8\x41\xfd\x56\x1b\xec\x01\x5a\xce\x60\xef\x4f\xb0\x45\xec\x4e\xa6\x9f\xc6\x92\x18\x3a\x15\x39\x3d\x3c\x1c\xec\x41\x33\x67\xcc\x09\x24\xee\xd2\x27\xb4\x82\x91\xd7\xf3\x92\x0a\x90\x2b\x87\x41\x83\xc6\x10\x52\x86\xc0\xe0\xde\xbf\x7b\xdd\x63\x7f\xd5\x15\x94\x75\x5b\x14\x1a\x2e\x35\x38\x93\xe1\x3b\x67\x28\xcb\x82\x17\xbe\x19\x62\x37\xfe\x18\x62\x90\x26\x38\xea\x77\x18\x77\xb3\x75\x6a\x30\x49\x13\x3f\x2b\x4b\x31\xcd\x5d\xea\x09\xdb\x19\xe5\xa7\x01\x59\xc1\xc8\x84\xf1\xaa\x9c\x20\x14\xe0\x60\xcf\xfe\x72\xea\xdc\xd9\xfe\xc7\x60\x0f\x31\x46\xca\x80\x50\xf2\xaa\xe0\x63\x54\x82\xed\x0f\xf6\xbe\xea\xf5\x7a\x83\x3d\x54\xca\xfc\xbd\x12\xc5\x8c\xe5\xbc\xe0\x53\x01\x9e\x84\xfb\x83\xbd\x6f\xdd\xef\xf4\x88\xa7\x56\x3a\xf4\xca\xdb\x1a\x3d\xe4\x41\xa5\x86\xb6\xb4\x3b\x8b\x64\x86\x38\x09\x4e\x2d\x19\xbc\x86\x3d\x0e\x78\x4f\xbe\x08\x2d\xdc\x1a\x82\x41\xbb\xe0\xf2\x10\xd7\x60\x9b\xa8\xb4\xec\x26\x8c\x87\xe6\x5e\x06\xf6\xc4\x16\x55\x82\x48\xdc\x76\x53\xc6\x14\xa8\xdd\x69\xe0\x13\xc9\x4b\x31\x9e\xd9\xba\xd7\xd4\xf9\xa2\xfb\x2a\x90\xee\x9d\xb8\x95\xe2\x6e\x4d\x24\xeb\x45\xd5\x9c\xb0\xee\xd2\x37\x50\xdc\x7b\x0e\xb7\x89\xfd\xe6\xfa\x79\xa3\xe6\x75\x40\x74\xb6\xd3\xa0\xe1\x32\xf1\x01\xe0\xc4\xf1\xee\x88\x54\x5a\x51\x96\x3e\x41\x29\x14\x3c\x84\xa8\x0a\xfa\x40\xe4\x8a\xb2\x74\x06\x29\x07\xbd\x1b\x4c\xa3\x21\x71\x44\x5d\xa1\x44\xf8\xcf\xf5\xf0\x61\x36\x9c\x45\x83\xe8\xd4\x36\x9c\x1d\xd0\x88\xcb\x6c\x61\x6e\x1d\xdb\x33\x0f\xb8\xdd\x7e\x8a\x09\x2c\xb0\xf7\x2e\x0d\xe0\xc5\x2e\x2b\x89\xc7\xf3\x56\x69\x30\xa7\xbb\xd4\xd5\x10\x00\xed\x4a\x60\x70\x09\xf1\x2e\x3b\xd0\x4b\x37\xd0\x70\x09\x34\xde\x47\x76\xc8\x9f\x08\xe4\xba\xfd\x41\xb3\x70\x27\x3e\xca\x7b\x06\x10\x59\x57\x61\x19\xaf\x0b\xff\xd0\xac\x18\x2f\xae\x03\x77\x26\xdd\x99\xdd\xd3\x00\x17\x94\x17\x52\xd5\x13\x8d\x2f\x64\x5d\xff\xef\xe5\xdb\x1f\xd7\x40\xe4\x72\xc5\x28\x09\xb1\x84\x74\x1e\x01\xa6\x68\x1f\x82\x85\xd0\x51\xbd\x86\x96\xe5\x60\xf2\xa4\x61\xe2\x96\x67\x15\x6a\xd5\xc7\xf6\xa9\x56\xa2\x6a\x7f\x0e\xb6\x4b\xb3\xbc\xd0\x69\x95\x88\xc8\x27\xc6\x4b\xea\x38\xe1\x2d\x14\x04\x4b\x42\x03\xe7\x62\x5c\xfd\xc7\x28\xc5\x3f\xf3\x29\xfe\xe3\xdf\x1d\xb6\xeb\xd6\xc3\xda\x3c\x2e\xcc\xeb\x2e\x5c\x80\x18\x18\x75\xc2\xdd\x32\x47\x2b\xe0\x7a\x4f\xec\x6b\xfe\x09\x8b\x5a\xca\xf3\x4c\xa2\x84\x07\xb2\x0c\xa1\xbb\x04\x59\xc4\xed\x2d\x2b\xb5\x1b\x43\x90\xf6\x2e\x6d\xa3\xb3\xdc\x01\x2c\x2b\x96\xa3\xbb\xc5\xaf\xa3\xed\xb0\x8e\x87\x3e\x96\xe5\xa4\x1a\xf6\x12\x3d\x3d\x7c\x7b\x76\x7e\x48\xe3\xef\xd6\x40\x06\x0e\x87\x99\x1e\x1e\x4e\xb9\x15\x8c\x0e\x1d\x4b\x3a\x3c\xee\x1d\xf5\xa6\xe9\x57\x29\x2f\x79\x17\x01\x19\x56\x67\x89\xda\x11\x06\xf3\xdc\xf2\xc3\x0f\x9e\x3d\x6f\xbb\xee\x79\x21\x75\x21\xcb\xd9\xca\x04\x68\x58\x8c\xd6\xde\x79\x00\xe1\x6a\xfb\xd8\x0a\xfb\xfc\xb0\x6f\x96\x29\x08\xdb\xca\x69\xfc\xfc\x16\xa0\x7c\x3d\xb8\xda\x60\x5f\x33\x3d\xf6\x5a\xdf\xf9\x2c\x43\x28\xbb\x27\x1a\xc0\xc6\x6c\xb9\x89\x1c\xdb\x77\xb0\xeb\xbe\xc7\x1c\x2c\x3e\xda\xb5\x51\x60\xd6\xce\x61\x48\xb1\x4c\x4e\xa5\xfd\x13\xf5\x8d\x26\x11\x8a\x17\x52\x9b\x48\x47\x86\x20\x77\xdc\x37\xe9\xa1\xb5\x01\xb7\xa7\x89\x4b\xb7\xa5\xba\x6b\x85\xc3\x60\x83\xb8\xde\x41\x4a\xad\x7f\x96\x3e\xa3\xfd\xbc\x81\x6e\x6f\xaf\x49\x98\x4e\xcb\x05\xf0\x09\xaf\xc6\x35\x04\xf8\x45\x55\x5a\xe4\x78\xf8\xad\x8c\xb2\xd9\xc4\x19\x51\x38\x7b\xfe\x6e\x1d\x55\xdf\x17\x51\xf6\xbf\xb1\x28\x5b\xd3\xd3\x5f\xff\x3c\xd8\xa3\x8d\x3b\xd8\xfb\xe5\xf1\x93\x9b\xbb\x17\xd8\x4a\xcc\x54\x7a\xa8\x05\x8a\xd9\x03\xd1\x9a\x0a\x80\x8e\x88\x5d\x40\x51\xde\x09\xa1\x3c\xc9\xda\xf2\x18\x9e\xb2\x2e\xbb\xfe\x51\x2b\x71\x7d\x8a\xd9\x05\xa8\x76\x81\x1e\x26\x08\xc9\xe6\x54\xcd\xb1\x73\xf0\x9d\x57\x00\x96\x1a\xb2\xca\xa9\x19\xb9\x77\x38\x9d\x5e\xfb\xc6\xe8\x86\x97\xe6\x69\xb4\x6c\xb8\x40\xf8\x48\xd5\x35\x18\x2c\xb7\x82\xa5\x66\x29\x81\xca\xf9\x9d\xd8\x63\x67\x21\x81\x4b\x64\x19\x18\x28\x06\xba\x12\x21\xd2\xd8\x83\x11\xc5\x2b\xf2\x00\xd8\x10\x5d\x04\x35\x4b\x50\x36\xea\xff\xae\xc5\x5c\x81\x95\x8c\x68\xa6\x06\x5a\x47\x74\x68\x69\xef\x61\x75\x0e\xc8\xb3\x37\x55\x3c\xb4\x4d\x7b\x67\xfa\x07\x6f\xc2\xa4\x8c\x21\xae\x14\xa8\x47\xc9\x71\xb5\x55\x5b\xb1\xe6\xa5\xe9\xcf\xdc\x27\xbb\x14\xb7\x78\x29\x46\x6f\xc4\x9a\xc1\xbe\x8e\x91\x19\x44\x32\x97\xb3\x9d\xec\x44\x81\x91\xf7\x18\x3b\x2f\x0d\x4a\xba\xe0\x53\x3c\xf4\x28\xc3\xf4\x80\xc0\xac\x20\x00\x44\xdd\x0b\xe9\xd8\x7b\xf1\xd7\x51\x12\x11\xcb\x4f\xe3\xbc\xb6\xb7\xfd\x5e\xff\xeb\x0e\xcb\x33\xae\x14\x9d\x3d\x48\xae\x05\x07\xd4\xfe\x7a\x7c\xdc\x63\xef\x0d\xf0\x93\x88\x50\x68\xaf\x3f\xbc\xed\x2f\xce\xe3\xec\xac\x04\x6b\xe4\x8b\xf2\xac\x6a\x05\x5f\x3d\xbb\x38\xff\xa9\x91\x37\x3b\xba\x27\xad\xcc\x8b\xa8\x69\x4e\xe4\x6e\x80\x50\x80\x8f\xbd\x8f\xa1\xb8\x24\x2b\x04\x2d\x82\x13\x55\x0a\x91\xe8\xb1\x02\xe4\x78\x6c\xcd\xdf\x4d\x19\x2f\x05\x3c\xbd\x88\xd3\x91\x07\xb3\xf3\xdc\x2b\x04\x38\xf2\x55\x2a\x6a\x01\x19\x77\x2b\xc8\xfc\x58\x96\x8e\x8a\x89\x9e\x4e\x2b\x25\xcb\xd9\x21\x24\x62\x93\xc3\xaa\xd4\x85\x39\x4c\xc5\xad\xc8\x0e\x8d\x1c\x77\x79\x91\x4c\x64\x29\xc0\x33\xdb\xe5\xa8\xba\xb5\xaf\x3e\xbb\x14\xd3\xf4\xab\x05\xd9\x28\xd6\xe1\x60\x90\x3c\x7e\x39\xd5\x7f\x90\x8a\x12\x9a\x90\x2e\x1d\xf5\x00\x9e\xb8\xee\xf1\x03\x39\x4b\xa2\x0d\x1e\x9c\x1b\xc3\x11\x08\x64\xb7\x24\x93\x6a\xe4\xf2\xdf\x50\xd6\x37\x11\x30\x4d\xd1\x14\x65\x39\x16\x33\xd5\x70\x2a\x4b\x13\xc3\x95\xf6\xd8\x73\xb4\x12\x0d\x45\xf0\x2a\x3e\x57\xec\x39\x9f\x8a\xec\x39\x64\xe5\x7f\x60\xa2\xc3\x63\xa1\x6b\xe9\xb7\x05\xd9\x5d\xdc\xcb\xa6\xb7\xc5\x94\x27\x13\xa9\x44\x31\x0b\x1c\xcc\x36\xd5\xbb\xed\xf7\x42\xbc\xd1\x62\x68\xfe\xc7\xb8\x9c\x96\x25\xfb\x5f\x6e\x28\xce\x45\xd2\x7c\x42\x4c\x04\xda\x5b\xee\xb8\x2a\xeb\x4a\x0d\x74\x17\xce\x73\xc1\x17\xbc\x3a\x1f\x03\x41\x78\xc5\x8c\xb7\x44\x11\x26\x27\xde\xf5\x12\xa9\x6e\x7e\x9f\xda\x75\x58\x75\x97\xfa\xef\x6b\x4e\xaa\x70\x8f\x74\x89\xdd\x76\x89\x75\x84\xa6\x6b\x84\xc6\x74\xb8\xa7\xc0\xdd\xe7\x2e\x8e\x3a\x4d\xa8\xa1\x85\x57\x68\xbd\x74\x78\x9f\xba\xa7\xc0\x3c\x0d\x7e\x79\x04\x59\x20\xe4\x19\xdd\x5c\x28\xf0\x75\x83\xb3\x0c\x69\x1c\xa2\x27\x5a\x01\x0f\x66\x9f\xa8\xd5\xdf\x6a\xb9\x5e\xe7\x52\xcd\xb8\x29\xaf\x0a\xae\x0c\x54\xbe\x92\xf3\x5a\xb6\x7b\xf0\x1a\x68\x6e\xd9\xbe\x9e\xef\x9d\xd9\xaf\x10\xf2\x82\x1e\x05\x34\xad\xd2\x17\x73\x09\x3d\xed\x13\x98\x0e\x46\xc8\x3b\xba\xc0\xce\x35\x15\xc6\xac\x4e\x76\x45\xa5\x22\x25\x62\xd7\x2b\x11\xfd\x6f\x78\x06\xed\x6d\xe6\xd6\x82\x0f\x75\x55\xd2\xc0\xfd\x28\xb7\x78\x26\x14\x82\x9b\x95\xc2\x0d\x16\xc2\x21\x62\xa8\x6c\xc7\x52\xa2\x7b\xa7\x8b\xb4\x13\xee\x35\x46\xe5\x82\xda\x93\x08\xf9\xc4\xec\x60\xa4\xed\x4c\x73\x01\xd3\xaa\x01\xe5\xbb\x38\x32\x37\x1c\xb8\xa0\xed\xed\x7c\x05\xa1\x90\xaf\xf0\x51\x46\xef\xb5\x2d\x46\xb6\x81\x12\xb1\x74\xd1\xb6\xf3\x63\xba\x02\x0d\x9f\x53\x50\xbc\x34\x25\x1f\x66\xd2\x4c\x44\xda\x61\x90\xc2\xf9\x8c\xf2\x39\x83\x54\x77\x25\x8a\xa9\x54\xbc\xdc\x20\x15\xce\x9a\x3c\xb8\xa9\xf8\x23\xb2\x7f\x06\x2f\x9c\xd7\xd2\x94\x5b\x30\xb4\xd7\x14\xac\x11\x20\xd1\x17\xbe\x0b\x28\x4d\xf0\x97\x77\xc1\x67\xfd\x2e\x68\x85\xf8\x69\x90\x1d\x83\xe7\x30\x4e\x47\xa5\xf2\x56\xa6\x56\x6c\x59\xb5\xf0\x9f\x20\x97\xed\x8a\x47\xfd\x7d\x34\x82\x5f\xde\x4f\xbf\x95\xf7\x93\x65\x61\x8d\xd7\xd3\x9a\xdc\x1c\xf7\xf0\xbf\x94\x48\x0d\x6c\xfe\xb3\x14\xab\xe1\x1a\xde\xe2\x06\x82\x7a\x8d\x87\x14\xf8\xd2\xc7\xd9\xa1\xa4\x59\xfc\x90\x5a\xc3\xe5\xbc\x14\x63\x5d\xb4\xc0\xd0\xcc\x39\x9d\xbb\x82\xf5\x2b\x11\xd6\x4f\xa4\xac\x91\xf9\xb3\xe9\x75\x31\x14\x99\x56\x63\x18\x37\x78\xc8\xb2\x27\x3c\xcb\x9e\x84\xa8\x4a\x96\x57\x24\xb4\x30\xa9\x40\x55\x98\x4a\x93\xe8\x5b\x51\xcc\x7c\xba\x09\x83\xf7\x4f\x45\xf8\x75\xce\x57\xc0\x92\x02\x0d\x46\x4c\xaa\x5b\x72\x51\x36\x18\x46\x09\x6e\xb8\x49\x99\xb1\xb1\x00\x67\xc3\xc7\xb7\xae\xac\xc1\x4b\x6f\x88\x97\x92\xeb\xb8\xcb\xf1\xe8\x50\x03\x63\x05\x81\x03\x57\xc1\x10\xc5\x6c\x16\x89\xd0\x60\x1a\x90\x6a\x5c\x65\xbc\xe8\xd1\x8e\x88\xf2\x5a\x29\x03\x96\x7b\x13\x5b\xf2\x3c\x0c\x08\xa1\x3f\x5c\xdb\x2e\xaf\x23\x90\x05\x5a\x0a\xb0\x66\x6d\x21\xde\xda\x3d\xf2\xc3\xea\xf9\xbb\x62\x2b\x68\x00\x3b\xce\xdb\x51\x02\x45\x62\x5b\xda\x60\x0f\xe7\x60\x59\xc1\x60\x6f\x1b\xbf\x89\xac\x2a\xf8\x2a\xaf\x78\x2c\xe4\x86\x4b\x9f\xe2\xb0\xac\xd8\xd9\x08\x8e\xe9\xba\x69\xb3\x37\x4d\x93\x4d\xdf\xe3\x10\xf0\x6b\x97\xc6\x74\xca\x4b\x0a\x35\x8a\x47\xb6\x50\x90\xd9\x8f\x14\xf0\xec\x1a\x9b\x05\x56\xd3\x8b\x1b\xef\xcd\x8d\xec\xfa\x20\x4a\x52\x98\x65\x2c\xd3\x77\x88\x26\xbb\xcd\x43\x6d\xa2\x8b\xb2\xc9\x2b\xdb\x16\x20\x14\x44\x12\x4e\x20\x30\x0a\x3e\xbb\x27\x64\xc8\x6d\xe8\xcc\x10\x0f\xc6\x57\x90\x26\x30\x88\x60\xab\xb8\x86\xa3\x3a\x5d\x83\x32\x8f\x60\xe1\x25\xb6\xb0\x8a\xaa\x54\xcc\x9f\x43\xf7\xb9\x6d\x6b\x2f\x99\x5e\xed\x44\xfa\xaf\x53\x62\x2f\x3b\x7e\x75\xd2\x81\x6d\x72\xdc\xcf\xe0\xd5\x79\x59\xd7\x4d\xaf\x7b\xe7\x5f\xce\x6b\x8c\x79\x43\x5f\x2c\x8b\x1a\x87\x21\x85\xf1\xea\xa7\x67\x14\xa6\x0e\x0f\x3b\x72\xba\x5a\xb1\x2d\x16\x55\x8b\x5d\x27\x82\x05\x3c\xa1\x1f\x31\x55\x1e\x1e\xbb\x2b\xd0\x49\xe9\xaa\xcc\xab\xb2\xee\xe2\xd4\x92\x95\xd8\x47\x53\x1d\x42\xd8\x0a\x64\x23\x26\x49\x3b\x11\x79\x69\x0e\xbf\x2a\x44\x22\xe4\xad\xfd\xcd\x73\xd2\x2e\x37\x5d\x08\x03\xa9\x7b\x3a\xb1\x73\x1f\x85\xd1\xa1\x27\x05\x38\x06\x38\x17\x10\x61\xfc\x78\x1d\x72\x43\x70\x54\xb8\xd2\x79\x37\xb3\x92\x3f\xe6\xf9\x12\x85\x93\x68\x7d\x1d\x0e\x19\xe1\xcb\x0a\x6e\x62\x9f\x5c\x80\x5c\x5e\x58\xe9\xeb\xeb\x62\x61\xf5\x28\xc2\xce\x03\x41\x90\x53\x5d\x2a\x4d\x9e\x71\x8f\xd5\xc4\xc7\x62\x41\x6a\x7f\x7b\x5e\x5b\xc2\xee\x3e\xd9\x2b\x74\xce\x15\xf9\x3e\xbc\x2b\x69\x73\xde\x7a\xb4\x89\xf8\xbe\x97\x86\x40\xc4\xce\x62\xa8\xa9\x89\xbe\x32\xa2\xb4\xaf\xe1\x70\x33\x3d\x7f\xf7\x62\x81\xde\xd7\xbd\x85\x96\x9d\x46\x28\xe3\x38\xb4\xbd\xcf\xf0\x8b\xe5\x19\xf6\xef\x2d\x7e\xf4\x7a\xbd\xc7\x97\x2b\xb6\x8c\x65\xff\x94\xd6\x31\x14\x5e\x96\x6d\x16\x94\x52\x08\x87\xad\x2e\x2c\x5a\x36\x03\x02\x6f\x5d\x92\x69\xae\xe5\x22\x87\xdf\x16\xe7\xa1\x95\xde\xbf\x6d\x0e\x47\xf1\x73\x93\x97\xf5\x4c\x4b\xab\x30\x58\x9c\x9f\x2b\xe9\x26\x83\x2f\x48\x80\x5c\x02\x87\x1a\xf2\xca\xa3\x18\x34\x53\xea\x82\x8f\x45\xaf\x86\xa2\x88\xb8\x8a\x01\xff\xd1\x12\x07\xd3\x92\xb8\x61\x42\x28\x42\x0d\x20\x92\x67\x77\x7c\x16\xe1\x3b\x01\x2b\x26\xd7\x29\xa7\xe0\x74\x32\x8b\x3b\x2a\xf3\x8c\x7f\x0e\x52\x03\x9c\x46\x30\xa5\x54\x14\x4f\x6f\x1a\x01\xf5\x91\x13\xca\xa9\x8f\xbc\xf6\x60\x71\x91\x1b\x17\x39\xa1\xb0\x0b\x1c\xa6\xd7\xd7\x56\xaa\x36\xc1\x04\x4d\x0d\xab\x71\x6e\x28\xbe\x13\x5e\x70\xeb\xe0\xef\x9c\xc2\xac\xae\x03\x9c\xd3\xca\x3b\xb9\xe4\xe6\xc6\x1c\xf2\x24\x11\xc6\xc4\x1d\xd8\xbb\x19\xb7\x67\xb8\x8a\x9b\x5f\x74\xe3\x53\xf7\x15\x81\xea\xc0\x5d\x58\xf9\x11\xda\x6f\x1a\x18\x41\xab\x1d\x96\x97\x02\x2f\x9a\x44\xaf\x34\xad\x40\x99\x68\xbb\xdf\x4d\x04\x65\x7a\x5d\xc8\x48\x2d\xe3\xa5\xb0\xca\xae\xbd\xd6\x3d\xb0\x41\x17\x1a\x4b\xdb\xdc\x1b\xd9\xf5\x73\xac\x71\x0d\x9b\xf8\xfa\x47\x57\x27\xbd\xf6\x7b\x0d\xbc\xcf\xe2\x1f\xb6\x78\x3c\xb5\x67\x8a\x7e\x24\x16\x58\xcb\x53\xbd\xd4\x39\x20\xce\x38\xed\xd8\xe0\x1d\x38\x8e\xc5\xbf\x2c\x5b\x83\x09\x5f\x4b\xb2\x9b\xcb\x6d\xbd\xae\x78\x57\xab\xb8\x40\xc6\x6b\x5f\x83\xdb\xb6\xec\xbb\x8f\xb4\x02\x51\xe6\xdf\x65\xf4\x8f\xb8\x47\x78\x64\x04\x68\x2a\x7c\x05\x2f\xce\x73\xbb\x40\x04\x6d\x59\x8f\x79\x36\x45\x62\x6a\x0d\x88\x62\xed\x35\x21\xee\xbd\xd9\x72\xac\x65\x68\xf3\x7e\xec\x41\xa6\x72\x5f\x3d\xb0\x54\xb5\x40\xa9\xb3\x5c\xd2\x42\xe7\x7b\x2b\xdc\xbb\x0b\xe1\xda\x11\xf0\x9a\xec\x56\x23\xff\x15\xb1\x9c\x50\xc0\x0e\x6e\xa8\xcb\x49\x04\xab\xc0\xde\xba\x88\xaf\xa8\xa2\x41\x4f\xd7\x50\x28\xbe\xdc\x00\x5b\x22\x2a\xd8\x74\x8a\x5c\x9b\x67\xdd\xae\x17\xf5\x70\x1b\x45\x39\x78\x4d\xa0\x1e\xc1\xe6\x89\x96\xcb\xac\x5c\xaf\xb6\x99\x36\x27\x7a\xb5\x31\xbd\xa7\xf5\xc5\x0a\x0d\x93\x17\xfa\x86\xcb\xe1\xac\xbe\xca\xeb\xb7\xdc\xa9\xb1\xf2\x46\x45\xe8\x2d\x1a\xc1\x2c\x15\x49\x64\xb4\xe1\x42\xec\x02\x21\x85\xb6\xe8\xbd\x08\xd3\xd9\x9b\x92\x9d\x05\x4f\x1a\x36\xd8\x03\xd8\x8a\x4c\xde\x88\xc1\x5e\x87\xc9\x12\xe5\x18\x03\xe8\x45\x43\x7d\x0b\x90\x0b\xf5\x52\x8d\x56\x4c\x27\x12\x11\x7d\x38\x8a\xf8\x20\x13\x3d\x2e\x78\x3e\x71\x88\xdd\x83\xbd\x1f\xe6\xdb\x30\xcc\x94\xbc\x20\x6c\x4d\xce\x06\x7b\xb7\x76\x14\x80\x6c\xc2\x0b\x07\x10\x8d\x4a\x3a\xee\x71\x90\x10\xa9\xf8\x6f\x96\x63\x61\x2b\x07\x54\xc5\x05\x32\x66\x33\x72\xe9\x80\x59\x0e\xf6\x78\x96\x4f\xb8\x4b\x26\x65\x39\xe9\x60\x0f\x96\x85\x7c\x72\xea\x0d\x4b\x15\x35\xec\x72\x36\xc3\x09\xc7\x00\x15\xdc\x1d\xc3\x19\xfb\xfe\x0c\xf5\x80\x02\x73\x8f\xd2\xdf\xd0\x17\xdb\xbf\x03\x04\xba\xef\xcf\xd0\x74\x12\x42\x58\xca\x09\x53\x9a\x99\x6a\x34\x92\x1f\x98\x81\x10\x06\x83\xf5\xe1\xba\xca\x27\xfc\x00\x75\x93\x30\xa1\xe1\x8c\x02\xed\xec\x3c\x6a\x53\xa6\x19\xd7\x46\xdb\x63\x67\xca\xa1\x41\xb8\xd1\xfa\xd4\xee\x44\xef\x53\x76\xdb\x3f\xea\xb0\xdb\xe3\x0e\xbb\xed\xdb\xff\xc3\xcd\x02\x9f\x8e\xec\x5f\x27\x1d\x76\x7b\x02\x97\x8d\xfd\xea\x18\x46\x84\xe5\xe0\xcf\xe3\x0e\x1b\x69\xdd\xc7\x7f\x9b\x21\x76\x9f\x81\x11\xdc\x39\x5a\x6c\xac\x7f\x58\x53\xf7\x88\xef\xf5\xb9\xf7\xe7\x9c\x18\xfa\x39\x28\x23\x9b\x3e\x50\x6b\xab\x23\xdb\x9c\x39\xd7\xf3\xe2\x5c\xad\x90\x24\xc7\xa4\x56\x95\xff\xe7\xf5\x6c\xaf\x0d\x15\x18\x40\x64\x8b\x85\x64\x7a\x1e\xa8\x16\x40\x71\xed\x11\x75\x6c\x1b\x0d\xb5\x11\xff\xbd\x9a\x88\x99\x0b\x72\x0d\x51\x84\x10\xa8\x1a\x5a\x95\x18\x9b\xb6\x18\x0a\x23\x6d\x4f\x28\x3c\xaf\x9c\xa2\x82\x7e\x0d\x69\xf9\xac\x90\x97\xf3\xa2\x94\x09\x28\xf9\xb9\x81\xc8\x3f\x8a\x61\x5c\xcb\x6b\xf5\x33\x38\xe2\xc1\x61\xf5\x5e\x06\x92\x52\x17\x22\x5d\x33\x06\xb3\x5e\xd8\x41\x56\x47\x72\xec\xbc\xa7\x98\x43\x77\xb2\xb7\x80\xb8\x15\x45\x88\x4a\xec\xb1\xab\x82\x27\x37\xf4\x7e\x37\x51\x7c\x24\x65\x67\xe4\x6c\x2a\xc7\x14\xab\x08\x50\x08\x80\xc5\x00\x43\x08\x65\xa5\x62\xa2\x4c\x5c\x76\x56\x94\x3a\x8c\x95\x93\x41\xf1\x6e\x74\xad\x15\x70\x6d\xd1\x59\x26\x0a\x50\x31\x58\x4a\x9a\x49\xad\x44\x70\x50\xf5\x77\xd5\x3e\x00\xda\xdb\x61\x2a\xcd\x74\xe6\xb2\x76\x90\xa0\x21\x46\x25\x62\x80\x81\x1e\x27\xbe\xb3\x20\xee\x46\x38\x3d\x57\x39\x17\x05\x4a\x2e\x3e\x14\xfd\xe9\x85\x1f\x74\x05\x22\x57\x1e\x6c\x83\xfc\x68\xaf\xe1\x50\x04\x09\xea\x6e\x22\x33\x68\xdf\x3e\x07\x08\x45\x20\xb4\xf7\x69\x30\x43\x1e\x9f\xbd\xcf\xbb\x14\xae\xcb\xdf\x7f\x9a\x0b\x73\x0e\x02\x8a\xdd\x6a\xa0\xad\xfe\x62\x5a\x9a\x37\x2d\x6d\x6f\x1e\xba\x68\x29\xeb\xa1\xfc\x39\xea\x0d\x29\xc6\x10\x71\x30\x12\xe7\x80\x69\xd8\x7e\xb0\x2a\xb9\xaa\x41\xc9\x5a\xa1\x99\x1b\x5e\x63\x07\x5f\xcc\x50\xbb\x34\x43\xa5\xfe\xf9\xbb\x12\xdd\x25\x8a\x44\x0c\x32\x93\x34\x4d\xa5\x42\x93\x7a\xf6\x8d\x26\x0d\x0b\xf5\x7b\xec\x2f\x96\x83\xd2\x4e\xc0\xe4\x3b\xb6\x50\xe4\xf0\x58\x6f\x18\x37\xaf\x60\x9c\xdd\xf1\x02\x94\x35\x13\xc1\xe9\x95\xe8\x60\x29\x31\x0b\x53\xae\x55\xd3\x4e\x0f\x9a\xe9\x6d\x34\xad\x6e\xc0\x52\xab\xbf\x60\xb7\x6b\x52\x28\x54\x60\x56\x2e\x2a\x64\x1a\xf4\x7e\xa0\x13\x75\xb3\xf0\xe7\xbd\xd4\xe8\x8e\x84\x0e\x1a\x3d\xf6\x86\xcf\x7c\x12\x02\x4b\x26\x8c\xd5\x0d\x14\xbc\x76\x59\x8b\xf0\x62\x6c\xb6\xbb\x60\x7d\x6a\x8b\x00\x87\xbb\x10\x89\x9e\x4e\x85\x4a\x61\x83\xbb\x05\x54\xe2\xce\xde\x68\xf5\x97\xb7\xfd\x51\xfc\xbd\xe2\x70\xda\x1c\x04\x89\x29\x39\xda\x08\x3a\x4c\x8e\x20\x12\x04\xae\xaa\x07\x46\x96\x89\x9f\xf8\x98\x95\x1c\x1c\xef\xfe\xeb\x3f\xff\xcf\x6d\xff\xbf\xfe\xf3\xff\x76\xe0\xaf\x63\x38\x39\xf0\x51\x94\xc9\xba\x1a\xad\x1a\xbd\x78\xb9\xb9\x86\x0b\x94\x22\xd8\x64\x58\xa4\x2d\x74\xde\xa0\x15\xfc\x6c\x75\xad\xa4\xf7\xdc\x5e\xcf\xba\x92\x6b\xdc\x43\x65\x5a\xbb\x86\x6a\xc6\xb1\xcd\xae\xa1\x79\x3d\xef\xa2\x0b\x69\x31\xba\xef\x4a\xae\x4a\xbb\x0f\xd4\x27\xa3\x8c\x8f\x99\x50\x7c\x98\x49\x35\x3e\x4c\xa5\xc1\xbf\xea\xe4\x02\x59\x11\x9f\x61\xee\x80\x4a\x8e\xde\xe8\x67\x17\xe7\x0b\x9c\xb3\x97\x5b\x94\x50\xb8\x5d\xe3\x71\x10\x05\x5e\x35\x79\x4b\x83\x34\x4d\x5b\xe8\xdc\xc9\x8b\x8d\xa3\x57\xa0\x44\x72\xe6\x4b\x11\x01\xe8\xd6\x14\x4a\x54\xfe\xdf\x97\x1c\xa9\xe5\xf3\xfc\x8d\xd9\x91\xe6\xcf\xd0\x62\xbb\xd2\xed\xf2\x03\xb5\x86\x5d\xa8\x7e\xaa\xe2\x0a\x5b\x1c\xad\xfa\x1c\x57\x9f\xaa\x35\xd5\x56\x4d\xc4\x26\x3a\x81\x2d\x7b\xfd\x93\x29\xae\xa2\x6d\x70\x99\xf0\x6c\x59\x6a\x86\xe5\x15\xbd\x47\x0e\x41\x80\x38\xa7\x79\x01\xf9\x75\x44\x4c\x62\x7c\xee\xd4\xdf\xed\x6b\xc5\xa4\x0e\x45\x76\x29\x32\x91\x94\xba\x58\x03\xe9\x70\xae\x7c\x2d\xbc\x2b\x40\x1e\x92\x7f\x03\xa8\x63\xe6\x30\x0c\x21\x39\x8a\x2e\x50\x94\x43\x90\x18\x9c\xee\x35\x46\xdd\xf5\x0c\x75\x70\xdd\x63\x6f\xad\x84\xe4\xdb\xc5\xc4\x60\xba\xc2\x58\x9a\x3a\x98\x22\xf9\x50\x10\xb0\xaf\xf7\xea\xc5\xca\x30\x54\x32\x68\xf5\xb0\x17\xc4\x91\x06\x38\x8e\xeb\x50\x9e\x36\xf6\x9d\x2e\x6e\x90\x23\xfd\x59\x17\xf2\x1f\x5a\x95\x3c\xbb\xd0\xe9\x59\x55\x6a\x20\x7d\x11\x6b\x2b\x20\xba\x07\x35\xfb\x70\x62\x03\x19\xa2\x04\x65\xa8\xc0\xc7\x0a\xfb\x70\x92\x40\x1f\x9e\x89\x0f\xcc\x4d\x97\x92\xfd\x39\x54\x48\x1f\x88\xcc\x63\xa7\x72\x58\x81\x50\x45\x7a\x0b\xc8\x48\x17\xd3\xd6\x10\xa1\x07\x74\x89\xf8\x0a\x88\xd1\x8d\xf7\x21\x9a\x67\x0a\x81\x8e\xfe\xe4\xa2\xef\x04\x2f\x87\x74\x47\x7b\xa4\x4d\x28\xe8\x10\xc0\x79\x63\x27\xb8\x94\x9f\x64\xc4\x3a\x84\x8e\xaf\x6b\x27\x00\xac\x3d\x4e\x4c\xa6\x48\x40\x4c\xf6\x49\xe9\x40\xb7\x10\xd1\x72\x91\xbc\x13\x79\x26\x13\x6e\xd6\x38\x1d\xcd\xe2\x3b\x3e\x1c\xb9\x48\x7a\x05\x35\xff\x50\x47\x03\x4f\xc3\x8e\x16\x71\xe1\x2a\xe1\xa3\x08\x50\xaa\x8a\x42\x17\x4c\x2b\xf6\xfd\xcb\xab\xad\xa3\xa3\x37\x59\xa2\xb9\x0a\x0f\xc2\xc1\x1e\x7a\x99\x90\x83\xed\x6c\xa1\x9a\xa3\xde\xe2\xb4\x35\x2d\x68\xf7\x75\x8d\x9f\x3b\x7a\xcb\x57\xfd\xb3\xb8\xec\x37\x33\x53\xcd\xd5\x5c\x72\xdd\xe3\xef\xab\xee\x7b\x76\xe9\x71\x00\x7c\x80\xaa\xbb\x97\x44\x74\xf1\xb5\xef\xf2\x7a\x6b\x41\x81\xd3\x61\xbf\xa7\x30\x14\x7b\x15\x1d\x2e\x18\x4b\x9b\x56\xe8\xf7\xec\xe2\xfd\x55\x43\xe5\x23\x5a\x5b\x28\x31\x0b\x4d\xb3\x01\x4d\xb9\xbc\x21\x27\xc1\x58\xd9\xbb\x0d\x01\xf5\x08\x87\x62\x56\x4e\xec\xd5\x27\x3e\x24\x22\x2f\x6b\x94\x2a\xb9\xfa\x07\xc7\x01\x1c\x5e\xbc\xbd\xbc\x3a\xbc\x38\xbb\x7a\xfe\xe7\xb9\xb1\xcc\x69\x01\xe7\x3a\x99\x6b\x74\xef\x53\x6e\xb1\xad\x76\x97\xa9\xb1\x38\x9a\x0c\x44\xdc\x35\xa5\x48\xb3\xa5\x18\x69\x1a\x62\x2e\x7b\xf4\xf7\x16\x0a\xda\xcb\xf5\x19\x3c\x13\x0d\x53\x70\x73\xf9\xe9\x99\x82\x07\x8f\xb7\x33\x3e\x60\xfe\x78\x81\x01\x6c\xe9\x35\x27\xa1\xd0\x3e\xe8\x6f\xfb\xd7\x74\x13\x10\x78\xc1\xe7\x85\x84\x34\xcf\xac\x36\x86\x42\x5a\x4d\x32\x62\x32\x11\xcd\x88\x97\x80\xda\x43\xa4\xa7\xac\xdf\x5b\x79\x10\x1d\xe4\xb6\x0f\x9e\x6f\x3f\x99\xd7\xbe\x37\x3c\xf0\x3a\xce\x7b\xdf\x63\xc7\xab\x3b\x6a\x1d\xf0\x32\x66\xa3\xc9\xcd\x96\xec\xdd\xcb\x47\xf0\x39\x18\xda\x7e\x6a\xf3\xeb\x5c\xce\x3c\x42\x95\x7a\xbc\x74\xa4\x2e\x9b\x8a\x72\xa2\xd3\x6d\x19\x86\x46\x57\xfb\x9f\x4e\x2e\x1f\x4d\x09\xda\xc8\xcc\xb8\x74\xe7\x37\x86\xe7\x14\xd2\x2e\x40\xe0\xf6\xc4\x69\x0b\x29\x07\xcd\x62\x55\xe8\x27\xda\x01\x2f\x09\xfc\xf5\x05\x45\x89\xae\x5a\xfe\xd6\xf2\xce\x8a\xef\x2c\x8f\x90\xc3\x32\x02\x96\xad\xdd\xff\x30\x88\x54\xa4\x3e\x30\x15\x9a\x58\x63\x2b\x2c\xc9\x3d\xb0\xce\x0b\xa0\x25\x0d\xd8\xa7\xcd\xbc\x13\x76\xdb\x8a\x84\xa2\x35\x1c\x52\x35\xa3\x34\x89\xf0\x0b\xa5\x47\x45\x87\x3d\xc4\x40\xaf\x41\x4b\x9f\x42\x82\xd4\x0e\x93\xaa\xfc\xfa\x69\x87\x8d\x32\xcd\xe1\x0f\x9c\x71\x87\xfd\xfc\x0b\x18\xa4\x47\x3c\x11\xff\xfc\xb5\xc3\xa6\x3c\xff\x19\x7f\x8a\xbf\x87\x6d\xaa\x64\xb6\xa3\x8c\xa4\xed\xa7\x6c\xed\x9c\xaa\xc8\x68\xec\x97\x5d\x3a\x74\xe8\x31\x69\x37\x5d\x0d\x34\x9e\xbd\x28\xf8\xa8\x64\x4f\xd9\xfe\xa4\x2c\xf3\xd3\xc3\xc3\xbf\x19\xad\xba\x94\x9b\x58\x17\xe3\xc3\x83\x35\x36\x1d\x31\x98\x8d\x77\xdb\xef\xda\x8d\x36\xeb\x54\x0d\xbe\x00\xe7\x6d\x48\x3e\x8f\xc0\xf2\x28\xa7\xef\x8a\xd1\x5d\xb4\x93\xec\x33\x18\x62\x96\xbd\x9d\x5b\xb4\x47\x34\xd0\x37\xb7\xf6\x7d\x2c\xf2\x5c\xcd\x7e\x33\x73\x21\x25\xc0\x63\xed\x96\xa5\x17\x77\x1a\x22\x92\xb8\xd7\x4e\x84\x2c\x39\x3e\x3d\x79\x3d\x30\xd0\x3b\x13\x90\x27\x39\x47\x37\xe6\x91\xe0\x65\x55\xc4\xfa\x94\x39\x3f\x24\x57\xc9\x15\x1d\x43\xfa\xd1\x45\xee\x4a\xa8\xfc\x71\xe3\x0a\xd1\x7c\x09\x25\xd4\x0f\xa1\x70\xb7\x7d\xb6\xaf\x0b\xb0\xd2\x17\x07\x8b\xe3\x53\xcf\x2e\xce\x17\xbc\x30\x22\x9a\x37\x17\x66\x8d\xa3\xfe\xb9\xec\xba\xf8\x5e\x9e\x9f\x61\x6e\x05\x0e\x95\xb4\x70\xaa\xcf\x66\x8a\xf5\x04\xe3\xf7\x9c\xef\xbd\xe4\x24\xa1\xaa\xe9\x27\x66\x38\xf7\xe2\x32\x14\x0c\xf0\x68\x5c\x66\xc1\x20\xc8\x54\xfa\x86\x7f\x90\xd3\x79\x82\xae\x65\xa3\x0e\x8d\x48\x75\x8f\x46\xbc\xc0\xfe\x28\xf7\x74\xfb\x83\xa2\x75\x68\x9b\x67\xed\x8a\xde\x55\xf4\x3d\x59\x6c\x1c\x3a\x29\x7d\x8d\x52\x30\xbe\xcd\x9d\xbf\xb0\x17\x12\xe3\x22\x2e\x42\x2f\x3d\x1d\xa8\x81\xea\xb2\xa1\xd1\x0a\xcf\x96\x4c\x4f\x2d\x7b\x37\x1e\xfd\x90\x9d\xbf\xc0\xec\xab\x8c\xb3\xe3\xa7\xf6\xc5\x5f\xf0\x04\x32\x7e\x4e\xc4\x07\x67\x5b\xeb\xb2\xaa\x90\xa7\x76\xa8\xef\xdf\x9d\x33\x6e\x58\xce\x0b\x02\xdc\xf9\x5e\x67\x5c\x8d\x99\x12\xe5\x61\x55\x64\xbd\x0b\xfb\xc3\x3b\xd4\x39\xd8\xb2\x5d\x26\xa6\x5c\x66\x50\x17\xfe\x72\xc9\x6e\x17\xb6\x62\x0b\x61\x33\x67\x54\xb2\x0b\x79\x69\x15\x9f\x8a\x53\x9f\x4d\xbd\x01\x98\x09\x11\xa2\x8a\x9d\x03\xe2\xa5\x28\x31\x07\x30\xfa\x4d\x71\xe3\x7d\x06\x86\x33\xf6\xee\xd5\x73\xd6\x3f\x3a\xb1\x6f\x05\x4a\xf5\x7d\xd2\xeb\xb3\x9f\xdf\xbd\x7a\x6e\xbf\xfd\xa5\xc7\xba\x4c\xe6\xb7\x4f\x4f\x31\x33\xef\xed\x53\x48\xcf\xdb\x3e\x52\x1c\xe4\xf9\x05\x56\xf9\xda\x55\xf9\x7a\xbd\x2a\x89\x4c\x0b\x3b\x9d\xe7\xe7\x2f\xde\x2d\x2f\x0e\x25\xba\x6c\xca\x13\x5b\xfe\xcd\xd9\xf3\x55\x24\xc4\x6a\xb6\x60\x97\x55\x15\xac\xb8\x62\xef\xdf\x9f\xbf\xa0\x60\x07\x7c\xd5\x56\x79\x8e\xd8\x3e\x31\x79\xd0\xd5\x7b\x2c\x3e\xb0\xfd\x6f\xe5\xc1\x7f\xfc\x7c\xd4\xfd\x86\x77\x47\xbf\xfc\xf3\x8f\xbf\x76\xbf\xf5\x1f\x9e\xae\xf7\xa1\x7f\xfc\xeb\xef\x68\x04\x27\x7e\x08\x27\x3b\x1c\xc3\x89\xff\x74\xb2\xce\x20\x9e\xfa\x41\x3c\xdd\xe1\x20\x9e\xd6\x07\xf1\xc7\x6f\xf8\xf0\x97\xf6\x71\x45\x43\x79\xe6\x87\xf2\x6c\x87\x43\x79\xb6\xe9\x50\xa4\x19\x2a\xdc\xb6\x97\xdf\xfd\xd8\x3f\x62\xba\xc0\xbf\x4e\x5c\x18\x1d\x1d\x7f\x40\xcd\x1a\xec\x1d\x9d\x1c\xf7\xff\xf0\xac\x7f\xf4\xf4\xc4\x05\xe0\x7d\xf3\x87\x3f\x76\xfd\xb7\xfd\xc1\x1e\xb5\xd9\x3f\x8a\x5b\x5d\xdd\x16\xd5\x3a\x09\xb5\x16\x8c\xa0\xa5\xbf\xa4\x10\xa9\x2c\x13\x5e\x00\x63\xc3\x4f\xcc\x7e\x74\x2d\xb4\x52\xf2\x3f\xf6\xbf\x3d\x85\x95\x03\x5a\xec\x7f\x7b\x8a\x7f\x9f\xfc\x7a\xf0\xed\xc7\x67\x3f\xf7\xbb\xcf\x7e\xa1\x1f\x9f\xfe\xfa\xf1\xeb\xfd\x6f\x4f\x8f\xfa\xfd\x8f\x40\x5e\xfc\xfe\xc0\x57\xfd\x78\xf2\xf3\xd3\x3f\xb8\xc2\x27\xbf\x7e\x3c\xb1\x85\x7f\x3e\xea\x3e\xfb\xe5\xe3\xcf\x5f\xff\xb1\x5e\xba\xff\xeb\xc7\xfd\x6f\x4f\x8f\xfb\x27\xfd\x8f\xfd\x3f\x1e\x1d\x7d\x3c\x79\x36\x18\xa4\xb6\x4f\xfb\x9f\x7e\xff\xd7\x83\xdf\x51\xf0\xa4\x9a\x41\xa8\x66\x2a\xc7\x76\x2e\x81\x23\x4f\xe5\x07\x74\x9c\xef\x32\x63\xec\xca\xb1\xf7\xbd\xcb\x1e\x33\x3a\x91\x3c\xb3\x0c\xad\x82\xe4\x79\x34\xf1\x70\x35\x44\xf3\xc6\x1e\x7f\xee\xb2\x5f\xbe\xb5\x7f\x1e\x87\x3f\x9f\xc2\x96\x98\x88\x0f\x89\xce\x74\x01\x4b\x31\x11\x1f\x78\x2a\x12\x39\x45\xff\x7d\x5d\xb0\x44\xa7\xc2\x2d\xc6\x57\xaf\xe0\x7f\xa7\xed\x1d\x7d\xf5\xed\x3e\x6d\xb7\xb3\xee\x2b\x4b\xd9\x8f\xf1\xc7\xaf\xed\x64\xbb\xac\x18\x0f\x43\x6f\xef\xbe\xff\x6e\xae\x97\x62\x3c\x74\xdd\x15\xe3\xe1\xfe\xf1\xb3\x67\x1d\xfa\xff\x37\xb0\xfa\xc3\x59\x29\x4e\xd9\x90\x1b\xf1\xf5\x53\x26\x94\xad\x98\xb2\xa1\x54\xbc\x98\x31\x00\x16\xe9\x32\x97\xfe\xfa\x14\xe8\xea\x30\x09\xfd\xc5\x66\xaf\x49\x4b\xc9\x14\x63\xab\xe2\xdd\x76\x7c\x74\xf4\x75\xf7\xa8\xdf\x3d\x3a\x1e\xec\x35\xae\x91\x51\x95\x65\x5d\xa8\x22\x95\xbd\x53\x4e\x4e\x4e\xbe\xb1\x8d\x51\x62\x32\x68\xd0\x27\x29\xab\x37\x7a\xcc\x94\xc1\xf6\xe6\x78\x77\x29\xa7\x02\x99\xf7\x0b\x57\x19\xa8\x81\x40\x25\x99\xc0\xed\x71\x99\xf0\x2c\x6a\x9e\x24\x06\x9c\x89\x6d\xc1\xcf\x06\xa0\xed\x9b\x53\xea\x3f\xed\xf6\x8f\xbb\xfd\x67\x57\xfd\x6f\x4e\x4f\x8e\x4e\x8f\x8f\x7a\x47\x47\x47\xff\x6b\x6e\x82\xb6\x81\x2e\x34\x10\x26\xb8\x85\x7f\x82\x9c\xf3\x0d\xdd\x1a\xea\xf9\x51\x5e\x2b\x67\x8b\x05\xf0\x29\xff\xd0\xaa\xb8\xaa\x65\xa3\xfc\xfa\xe9\x16\xd9\x28\xa7\xfc\xc3\x6b\xa1\xc6\xf3\xbe\x1b\x3b\x69\x7a\xb1\x3e\x6b\x27\xcd\xb7\x49\xf0\xa1\xe1\x54\x57\xc3\xa6\x5d\xd2\xb5\x8c\x6c\x6a\x41\xc3\x52\x3d\x14\xb1\xa5\x7a\x30\x62\x4b\xf5\xa0\xc4\x6e\x7f\x2e\xed\x80\xd8\x55\x56\xca\x3c\x13\xf3\x1a\xb9\xfb\xb7\xad\xf4\xa3\x29\xc6\x5a\x35\x2b\xb5\xb1\x54\x59\xc6\x87\xf3\x6f\xe8\xb5\x1e\x9c\x5a\xb5\xd0\xe7\x5f\x54\x63\x99\xf3\xd2\xbe\x93\xb6\x61\xcd\x54\x75\xf1\x3e\xff\x6c\x54\x4f\xf7\xd3\x36\x2d\x30\x9c\xfc\x76\x26\x18\x79\x9d\xad\xb3\xa5\x77\x08\x68\x5b\xca\x72\xf1\x19\xdc\x34\xe1\xca\x5a\x26\x52\xc8\x5d\xd3\x7a\x9f\xac\x75\xf4\x6b\xb0\x6c\x62\x3a\x14\x69\x2a\x52\xef\x0f\xbc\x42\xd1\xb3\xbc\x72\xe4\x99\xc4\x4b\x07\x10\x57\xb9\xc4\xd3\xae\x38\xfb\xc1\x37\xc1\x8a\x4a\x81\x98\xf8\x96\x5c\xc3\x40\x24\xbc\x9a\xe5\xe2\x8d\x20\xa0\xbd\x90\x76\x0d\x55\x44\x90\x78\xc6\xa9\xda\x9d\x67\x08\x22\x91\xbb\xac\xb9\xa5\x66\xa3\xaa\x00\xc7\x8e\x42\x58\x52\x26\x25\xb9\x0f\xd3\x00\x5c\x35\xc4\xf5\x6b\x64\x72\xad\xa1\xf8\x79\xd5\x13\xe3\x55\xa9\xa7\xbc\x74\xa0\x31\xeb\x80\xdb\x35\xc6\x34\x14\x14\x39\x39\xac\xca\x90\xcc\x77\xc2\x6f\x05\xfd\x2a\x63\x67\x13\x5b\xd9\xca\xe5\xb3\x08\x75\x6f\xbf\xca\x6d\xd1\xe6\xb0\x03\x34\xe1\x22\xa0\xca\xf5\x37\x84\x54\x65\x57\x17\x5d\xda\x80\x1b\x6c\x86\x5a\xc5\x28\x68\x9a\xb6\x82\xc7\x77\x97\x86\x09\x09\x6b\x13\x25\x79\xd7\x85\x77\xaa\x27\x2f\x58\x44\xe2\x47\x7a\xc1\xde\xc9\xcb\x19\xf3\x59\xcc\x89\xa8\x10\xda\x6f\xbf\xe3\x86\x25\x13\x99\xa5\x98\x6a\x66\xf6\x76\x04\x30\xfe\xa2\x70\x59\xdb\x47\xd1\xab\x2e\x4a\x00\x1d\xbe\xa4\x8b\xc0\x80\x86\xb1\x7f\x80\x8d\x9c\x0e\x14\x63\xac\x0b\x5d\x9c\xba\xb1\xd6\xbe\xc3\x21\x0f\xd4\xf1\x01\x03\x7b\xa6\xab\x11\x55\x6f\x6f\x60\xbe\x09\xf8\xaa\xd7\xeb\xb1\x7f\x88\x42\x5b\x82\x4c\x75\xb1\x40\x42\x59\x7f\x35\x33\x69\xca\xee\x94\xe7\xdd\x1b\x31\x5b\x15\x00\xbf\xb8\x22\x83\x4c\x26\xe0\x33\xc6\x15\x79\x39\xc3\x41\xb5\x34\x9c\xaf\x06\x2b\x72\x3d\xe5\xf9\xb5\x7d\x7a\x51\x3c\x94\x7b\x4f\x43\x7b\x10\x35\xc4\x5d\x82\xdc\x54\x7c\x70\x0b\x32\xe5\x79\xcf\xae\x00\x64\x62\x28\xf9\x18\x53\xb2\xba\xb8\xda\x8a\x32\xb8\x22\xcc\x05\x6c\x2c\x3c\x3d\x13\xfb\x18\x6c\x1f\xc8\x60\x2f\x60\x4b\xba\x70\x90\xc1\xde\x94\xe7\x83\xbd\x1e\x3b\xcb\x8c\xee\x04\x3e\x15\x27\x02\xf7\xe0\xfe\x21\x03\x41\x14\xfe\x61\xdf\xac\x05\x2c\x60\x4a\x41\x20\x2e\x26\x12\x76\x21\x46\x7e\x54\x85\x60\xfb\x4a\x33\x25\x8c\x33\x45\x7a\x97\x8f\x03\x9a\xa6\x60\xe1\x6a\x8e\x7a\x87\xae\xe8\x98\xc4\xc8\x9d\xba\xc0\x19\x37\xac\xa1\x1d\x3b\x2b\x40\xc5\xb0\xc4\xd0\xa6\xd6\xaa\x65\x63\xa4\x5d\xf6\xd0\x83\x88\xcd\x66\xaf\x90\x47\x07\x80\x6f\x5f\xa6\x8d\xf7\x26\x1e\xfb\xf9\x7d\x19\xf1\x7e\x17\xeb\xca\x24\xf8\x0b\xe6\x3a\xd3\xe3\x19\x65\xf9\x08\x7b\x02\x48\xdd\xbe\xc3\x5c\x86\x29\x20\xf9\x09\xcb\xb5\x31\xa0\xb7\xc0\xcd\xe2\x58\xc5\x35\x2f\xf5\x54\x26\xd7\xa7\x01\x0f\x0e\x38\x17\x1a\x81\xb9\x09\x28\x06\x42\x95\x10\x78\x0d\xda\x0b\xb7\x8b\x7a\xc4\x0f\xce\xa0\x15\xea\xd9\x41\xb6\xda\x1a\x85\xc8\x66\xac\x10\x79\xc6\x13\x17\xa6\xe9\x13\x0a\xd5\xe7\x42\x2d\x11\x9a\x8f\x9b\x0b\x57\x33\x9f\xad\x0d\x46\xb7\x8f\xdb\xb3\x43\x03\xe8\x58\xae\x63\xf7\xe3\xf1\x01\xbb\x36\xa2\xbc\x76\x7c\xeb\x52\x94\x01\xbc\x8d\xce\x9b\x8f\x1c\x04\x9a\xb8\xa7\x16\x6e\xa5\xc0\x13\x0c\x9f\x0a\xe7\xf5\xf4\x92\x27\x13\x6a\x10\x2f\x80\xe6\x31\xea\x84\xe4\x60\xd8\x42\x6d\xb1\x2d\x0f\x42\x86\x42\x64\x86\xbb\xc2\x4d\x35\xe2\x45\x8b\xf8\x10\x55\xeb\x0d\xd4\xc9\x01\x72\x25\x37\x3f\xf4\xc7\xa2\xa5\x2e\x48\x45\x37\xe5\xb9\xc1\x48\x09\x94\x60\x64\xc1\x44\x26\x20\x35\x83\x3b\x7a\x4a\xab\x2e\x72\xad\x1b\x31\xa3\xb6\x1c\xbe\x12\x86\x50\x22\x9a\xf2\xb4\xc7\xde\x22\x32\x5e\x04\x03\xcc\xaa\x1c\xdc\x2d\x0b\x0a\xa3\xb5\x1d\x5a\x4e\xe7\xd6\xae\x6d\x37\x92\xc7\x26\x4c\xd3\x0f\xc6\x32\x1c\x58\x55\x94\x65\x06\x2a\x46\x50\xc0\x49\xe3\x71\xb7\x24\xda\x26\xbc\xbf\x75\x19\x36\x39\xa7\x7e\xe9\x6a\xc7\x94\x56\x7a\x07\xe7\x14\x8e\x82\x13\x09\xa8\xd9\xda\x91\x3d\x5e\x78\x64\xc7\x05\x57\x55\xc6\x8b\xc6\x5e\x80\xc5\x0f\xe8\x59\xf8\x79\xff\x46\xcc\xba\xb8\x75\x73\x2e\x0b\x73\x00\x9d\x08\x9e\x4c\x1c\x3a\x32\x98\x31\x95\xf3\x60\x28\xa9\x49\x08\xfb\x86\x62\xe8\x63\xbc\x0f\xc0\x40\x89\x15\x66\xec\x97\x43\xdb\x9d\x92\x79\x95\x71\x8a\xea\x30\x22\xe7\x05\x00\x91\x26\xa5\x2e\x4c\x48\x48\x44\x0d\xc6\x78\x14\x43\x31\xe1\xb7\x52\x57\x85\x67\xe9\x76\xac\x74\x88\x77\xca\x90\x80\x06\x6b\xf2\xa3\x7b\x6e\xb2\x05\x62\xf4\x26\x7b\x6e\x91\x24\x6e\x4a\x9d\x07\x4c\x55\x42\x1f\x49\x45\xa2\x53\x90\x56\x4b\x91\xe3\x7a\x39\xc8\x83\xf5\x20\xc6\xe7\xf0\x06\x68\xc9\xf8\x68\x04\x80\x54\xd4\x4a\x21\x92\xaa\x30\xf2\x56\x64\x33\x14\xfe\xcd\x9d\x2c\x93\x89\x30\x80\xdf\x6d\x8f\x02\xe6\x50\xf2\xbd\x87\xd5\x95\x23\x10\x1f\x44\x1a\xdf\xe8\x76\xc5\x5b\x9e\xed\x75\xf4\x1c\x8f\xb4\x12\x0f\x0c\x76\x9f\x17\x2b\x00\x50\x3c\xf6\xa3\xea\x61\x1a\x51\x78\x7a\xe8\x62\x28\xd3\x54\x2c\x4a\x25\x3a\x2f\x83\xfe\x5b\x63\x75\x1f\xd8\x1d\xb7\x45\xd1\xbd\xb6\x77\x2a\x55\xa8\xb9\xec\xd2\xed\x84\xc1\x80\x35\x32\xa1\x1f\x6b\xec\xdc\x8a\xe6\x79\xbc\x7c\xf4\xa8\xf9\x73\x8f\xbd\xe1\xd2\x32\x2a\x08\xe5\x03\x8c\x34\x0a\xf8\x25\xe8\xb4\xaa\x80\xf0\xab\x87\xf4\xd4\x25\xcf\xcb\x0d\x28\x62\xcb\xc7\x04\x69\x9b\x33\xa3\x55\x77\x77\xfb\x1c\x3a\xbd\x0b\x1d\x73\xe5\x68\xd3\xce\x1e\x76\xaa\xb1\x53\xd6\x06\x33\x8e\xaa\xd5\x77\x42\xeb\xd4\xe9\x61\x0b\x8b\xbe\xd3\xe9\x5c\x8a\xe2\x56\x26\xe2\x9d\x03\x04\x5b\x32\x85\x66\x51\x36\xd1\x70\xff\x78\x9f\x7e\xd0\x24\x50\xa9\x5e\x26\xc6\x3c\x99\x35\xd3\x17\x2e\x74\xa2\xde\x10\xce\x27\xc6\x25\x36\xd4\x23\x7b\xe7\xd4\x70\x5b\x81\x09\x01\xe0\xfc\x1a\x43\x80\x72\xf1\x38\xf0\x8b\xdd\x0d\x26\x5f\x1d\x79\x8c\xf1\x96\x28\xd1\x38\x24\xe7\xf7\xef\x5e\x63\x1c\x26\x2f\xe9\xe6\xb0\xe3\xb9\x13\xc3\x89\xd6\x37\xfe\x0e\x05\x20\x80\x64\xbb\xeb\xd2\x3e\x1e\x57\x0d\x0c\x92\x84\xd5\x07\x46\x24\x61\xf0\xdb\x9a\x83\x63\xd7\xb6\xf4\x75\x84\xf5\xe1\x9c\x95\xa0\x15\x87\x4c\xdc\xef\x7e\xfd\xec\xd9\xc9\xb3\x0e\xe6\x7c\xb6\x97\xdc\x41\x9d\x2f\x3c\x7d\x7a\x52\x4b\x55\xd1\xc8\x54\x51\xa7\x41\xcd\xac\x74\x72\xbc\xae\x59\x69\xee\xea\x59\x0c\x36\x82\x7b\xac\x89\x62\x45\x1f\x1f\x23\xde\xf8\x2f\x48\xf1\xe7\x00\x1c\xf6\x1c\x52\x04\x2c\x39\xf1\x2d\xa5\x03\x92\x04\xaa\x4f\x90\x66\x84\x95\x39\xc5\xc8\xdb\xab\xd7\x97\xb6\x98\x22\xa7\x30\xff\x30\xa3\xe5\x5e\x23\xa4\x22\xe1\xdf\x55\x2a\x9d\xd7\x6c\xcf\xa5\xe2\xc4\x62\xe8\x67\x7d\xf1\xf2\x8d\x77\x5b\x78\x7e\xc6\x86\xf8\x13\xee\x36\xb7\xc3\xe6\x60\xf7\xa3\x71\x3d\x31\x4e\x34\x4b\xec\x98\x20\x46\x04\xf1\xfc\x2b\x15\xc1\x02\x9a\x99\x29\xc5\xd4\xde\x38\xa6\x64\x85\xd6\xf6\x35\x84\xc2\x8e\x5f\x05\x8f\x55\xbe\x70\x83\x0d\x67\xe5\x02\xf5\xda\x52\x84\x02\x3c\x49\x8f\x61\x04\x9c\xbb\x17\x96\x06\x77\xd2\x09\x97\x73\xb7\x41\xc4\x12\x83\x52\xcb\xed\x03\xf6\x12\xa5\x1c\x57\xc0\x0a\x83\x45\xe6\x9f\xe8\x01\x09\xde\x3e\x9c\x08\xaa\xdd\xb1\x0c\x09\xda\x7b\x90\x57\xed\xfe\x72\x88\x04\x98\x5f\x84\x50\xc0\x67\xba\x72\x0c\x04\x80\xfa\xa9\x9f\xeb\x05\x6e\xee\x2d\xd1\x5f\x8d\x79\xda\xd1\x8d\xe5\x2d\x45\xaf\x66\x94\x09\xd1\xb1\x7e\x1a\x5a\x07\x71\x54\xb8\x4a\x2d\xbf\xb1\x5c\x19\x32\x3e\xed\x5f\x83\x2c\x2c\x4e\x0f\x0f\x27\xda\x94\xa7\x96\x8f\x1d\x5a\x7e\x7d\x7d\xd0\x63\x2f\x23\x0c\x2b\x3d\x62\xd7\x55\x91\x21\xa4\x8c\x1b\xf2\x02\xa2\xd8\x27\xfc\xb5\x6d\xce\x73\x4a\xfb\x52\x80\x15\x80\x87\xb8\x27\xad\xa3\x55\x9d\x4e\x7f\xa2\xf4\xa7\x11\x6d\x1c\x68\x2e\x65\x32\x00\x25\x01\x38\x80\x4e\xe5\x78\x42\x20\xb4\x46\x67\x0e\x47\xcc\xc7\xef\xbd\xf8\xf1\x12\xe6\xad\xa7\xd1\x39\x30\x98\xe2\xb6\x83\x59\x22\xc3\xe6\xbb\xb6\x32\x2e\x8e\x14\xda\x62\x52\x75\x69\x48\xd0\x10\x77\x30\xc1\x81\xf9\x67\x7c\x26\x30\xbd\xb6\xd4\x19\x90\xfd\xa0\xe7\xa6\x6e\x9f\xdc\x3c\x33\x60\xc5\x00\xbf\x51\xe7\xd4\x09\x34\xba\xc8\x04\x37\xf0\x84\x22\xf9\x1a\x23\x23\xae\xed\xf2\x65\xd8\x80\xa5\x74\xff\xf8\x0f\xbd\xa3\xde\x51\xaf\x7f\x8d\x8f\x54\x6a\xdb\xee\x33\x69\x6e\x66\xac\x52\x99\x30\x06\xf6\x14\x00\x0c\x00\xa4\x21\x4b\x00\x00\x5b\x5b\xfa\xd6\xf6\x36\xc3\x88\x47\x20\x9d\x7b\xc8\xd9\x32\x56\x70\xf7\x5c\x02\xbf\x46\xc2\x2a\x81\x8c\x09\x58\x28\xa4\x99\xf5\xa8\x96\xfe\xb8\x5c\x56\xc9\x04\xf3\xd7\xda\x9f\x9d\xd2\x28\x9b\x91\x01\x47\x69\xd5\xb5\xbb\x8a\x0f\x33\x81\x6e\xc8\x1d\xd8\x0e\x82\x1b\x28\x02\x30\x29\x55\x6e\x97\x89\x33\x25\xee\xdc\x2e\xf0\x3b\x09\x37\xa8\xdf\x6a\x83\x3d\x40\xfd\x19\xec\xfd\x09\xb6\x88\xdd\xc9\xf4\xd3\x58\x12\x57\xa7\x22\xa7\x87\x87\x83\x3d\x68\xe6\x8c\x39\xd1\xc4\x5d\xff\x04\xb8\xe0\x93\xa2\x38\x05\x21\x57\x0e\x4b\x07\x4d\x25\xa4\x2a\x81\xc1\xbd\x7f\xf7\xba\xc7\xfe\xaa\x2b\x28\xeb\xb6\x28\x34\x5c\x6a\xf0\x41\xc3\x07\xd0\x50\x96\x05\x2f\x7c\x33\xc4\x6e\xfc\x31\xc4\x48\x52\xf0\xf4\xef\x30\xee\x66\xeb\x94\x64\x92\x26\x7e\x56\x96\x62\x9a\xbb\x04\x5c\xb6\x33\x4a\x32\x09\x52\x83\x91\x09\xe3\x55\x39\x41\xc4\xc8\xc1\x9e\xfd\xe5\xd4\x79\xc1\xfd\x8f\xc1\x1e\x62\xa5\x94\x01\x69\xe5\x55\xc1\xc7\xa8\x22\xdb\x1f\xec\x7d\xd5\xeb\xf5\x06\x7b\xa8\xb2\xf9\x7b\x25\x8a\x19\xcb\x79\xc1\xa7\x02\x1c\x10\xf7\x07\x7b\xdf\xba\xdf\xe9\x89\x4f\xad\x74\xe8\xf9\xb7\x35\x0a\xca\x7a\xf2\xc3\x5c\xb6\xf4\x9e\x8f\xb1\xff\xff\x2a\x0e\xca\x99\x25\xb2\x81\x2b\x42\x50\x84\xf2\x83\x48\xbb\x18\x5d\xdf\x70\x27\x07\x3c\x10\x14\xd8\xc0\x54\x9a\x17\xfa\x16\x10\x4e\x31\x63\xbc\xc4\x3d\x51\x98\x09\xa2\x1e\x54\x2a\x7c\xb0\xbb\x01\x62\x58\x2d\x01\xff\x7a\xf6\xe6\x35\xf0\x56\xa7\x7d\x80\xd7\x06\xd0\x62\x1f\x49\x7c\x66\xce\x55\xf9\xf5\x53\xfb\x09\xd0\xa8\x74\x61\xc2\xde\xae\x3d\x82\x7d\xc4\x00\xe8\xe4\x10\x9b\xf3\xef\x34\x21\x4a\x58\x41\xff\x3b\x3d\xfd\x77\x97\xd6\x56\x8e\x95\x48\x7f\x84\x89\x60\x19\xfa\x1e\x92\x56\xd0\x37\x8a\xb1\xfd\x1f\x3d\xa7\x99\x2f\xe0\x76\x3f\x58\x14\x3b\x21\xaf\xff\x60\x6f\xb0\xc7\xc0\x59\x59\x2a\xaa\x46\xce\xa2\x97\xe7\x94\x18\xf0\xc0\x0d\x14\x5c\x59\xeb\xa3\xa4\x81\x1e\xb1\x8f\xac\xcf\x3e\x82\x21\xef\x23\xfb\x86\x45\xe5\x4d\xb3\x42\x98\x58\xdc\xde\xc7\xf9\xef\x5a\x1a\xa1\xe4\x85\x11\x29\x16\xb6\x6b\xda\x1a\x36\xb5\x5c\x87\xab\xcb\xd9\x29\x2d\x1c\x86\x5d\x97\x39\x6a\xe0\x30\xf6\xfe\x9f\xc1\x9e\x6d\x71\xaf\x3b\xd8\x5b\xb8\x8a\xf5\x41\xd7\x26\xf5\x71\xae\x8b\x96\x42\x2d\x8b\xdc\x42\x0c\xf4\xa3\x75\x8b\x19\xa6\x89\x8b\xfc\xf2\x43\xae\x95\x50\x73\xab\x50\xdf\x02\xed\x4d\x45\x5d\xfd\x20\xd9\x47\xf6\xc6\xfe\xf3\xbd\xfd\xe7\xca\xfe\x73\x61\xff\x79\x29\x61\x67\x62\x48\x07\xa7\x77\xd9\x25\x0a\xb2\x90\x6f\x4f\x96\xe6\x4f\xec\x52\x08\x44\x7a\x3b\x3d\x3c\xcc\x27\x33\x23\x13\xd3\x53\xd2\x94\xbd\xb1\xbe\x3d\x4c\xaa\xea\xf0\xbd\x2d\x77\x88\xfd\xf7\x26\xe5\x34\x0b\x7b\xb2\x31\xd2\x30\xa6\x29\x2c\x00\xac\xc3\x8d\x1d\x9d\x1d\x9c\x1d\x9b\x1d\x9a\x1d\x59\xe3\xc8\xf4\x8f\x8e\x9f\xb2\x7f\x67\xfd\x1f\x24\xe8\x2a\xfb\x47\x47\x47\xf6\xe3\xcd\x9f\xd8\x39\x4b\x65\xaa\x9e\x94\x2c\x99\x68\x4d\x77\x42\xc2\x73\x59\xfa\x63\xdd\x6b\x0e\xa7\x41\x56\xdc\x13\x62\xd9\x5e\xb0\x63\x7d\xb9\xa4\x80\x65\x17\x3f\xda\x5b\xba\x2c\xfd\x05\x4e\xe2\x5f\x39\x29\x84\x00\x70\x23\x45\xc6\xce\xa9\x71\x48\xe0\xf6\x22\x66\x8e\xc1\x00\x0f\xf0\x4c\x32\x24\xf0\x71\x20\xc9\x00\x07\x72\xfc\x1f\x5f\x9f\x74\xfb\x96\x1b\x4c\xf9\x58\xc9\xb2\x4a\x85\x6d\xa4\x80\xca\xd2\x59\xc0\x34\x98\x5c\xb9\x62\x27\xcc\xf9\x96\x83\x66\xdc\xf4\x18\x8e\xda\xb0\x8c\x17\xe4\xe3\x00\xa5\xf3\x42\x24\xd2\x88\xf0\xe4\xe6\x79\x8e\xa6\xdd\x42\x57\x80\xb9\x50\xe5\x3d\xb6\xff\xb2\x37\xee\x9d\xb2\xa3\x5e\x7f\x4a\x20\x6b\xfe\x47\xcb\x75\xfb\xd3\xde\x01\xaa\x74\x1d\x3b\x73\x80\x0d\x2e\xc7\x69\x05\xf6\x67\x39\x62\x77\xde\x7e\x1c\x8d\xc4\x4c\x39\x64\x5d\x20\x8a\x48\x81\x7c\x1a\x80\x5d\x38\x8b\x6f\x16\x72\xeb\x06\x3e\xc9\x3d\x24\x81\x4b\xc7\x54\x88\xa9\x00\xd2\x95\xce\x35\x47\x8f\x5c\x12\x21\xa0\x51\x8a\xd2\x47\x94\xe9\x9f\xcc\x83\x68\x19\x1a\x73\x48\x1b\x25\x94\x2d\x2d\x4d\x04\x8d\x08\xe3\xf9\x4e\x8c\x74\x11\xae\x0e\xe8\xda\x0f\xce\x11\x30\xaf\x20\xd3\xc2\x60\x2f\xe1\x4a\x2b\xc0\x2f\xb5\x4b\x3f\xd8\x23\xa5\xf7\x54\x70\x45\xe2\xac\xdb\x8e\x87\x34\x44\xd7\x04\x4f\xff\x56\x81\x96\xbd\xca\x2d\x75\x52\x7d\xa7\xd8\x3e\xa5\x7e\x0a\xc8\x70\x78\x1f\x26\x05\x48\xb3\x80\xbf\x4f\x7f\x4b\xc5\xde\xd8\x41\x19\xc3\x0f\x30\x77\x92\xed\x0d\x6c\x4b\xbc\xc7\x7e\xd4\xb4\xe6\x04\xc0\x92\x69\x03\x36\xa2\x21\xfc\x34\x2a\x78\x42\xec\x00\x59\x6b\x30\xb6\xa0\xf7\x8a\x2d\x4a\x68\xd8\x7e\x6b\xef\xdb\x25\x84\x29\x1c\xc0\xed\x4f\x9b\x0c\xdc\xf0\xc9\xe4\xd5\xa3\x5b\x57\x8e\x95\x6f\x51\x93\x3f\x0c\x49\xd2\xa0\x3e\xc3\x9d\x6f\x85\x28\x31\xe6\xa5\xbc\x15\x40\xf8\x97\x28\xb5\x19\x98\x43\xbf\xf7\xcc\x37\x11\x61\x57\x72\xc3\x06\x7b\xfd\x67\x47\x47\xd3\xc1\x1e\x15\xfb\x5e\x2e\x29\x78\xf2\xf5\x1b\x69\x4b\xda\xf3\xeb\x98\x8d\x1d\xc2\xdf\x6b\x0b\xfa\xe3\xcb\x9f\x5e\xbe\x03\x6f\x28\x64\x95\x59\x36\x6b\xc2\x9f\x71\x84\xc8\x00\xc1\x15\xe4\x1d\x27\xdb\x5c\x4d\x30\x08\x11\x84\xd0\x89\xce\x04\xfd\xee\x00\xac\xc5\x07\x51\xd8\xb3\xd7\xc3\x41\xa8\x6e\xd8\x31\xe4\x00\x82\x39\xc6\x4a\xfb\x2f\x6c\x7c\x20\xad\x56\x63\xf2\x56\x99\x81\xa0\x78\x27\x32\xdc\x62\x96\xad\x58\x1e\x19\x32\xac\x76\x85\x73\x39\x52\x64\x3d\xae\x6f\xca\x1e\xdb\xbf\xd4\x2e\x37\xac\x3d\x0f\xf5\x9f\x3b\xb8\xfb\x2c\x8f\x4d\xe5\x68\x04\xec\x14\x9d\x61\x42\x84\xa5\xa5\x0b\x9c\x74\xf7\x56\x91\x58\x58\x26\x84\xdd\x47\xc7\xcc\xb8\xc5\x0d\x20\x85\x77\x85\x04\xaa\xc1\x1b\x11\x32\xa9\xd9\xd3\x6a\xdf\xb3\x3c\x63\x13\xae\x52\x10\xf9\x20\x5e\x85\xd8\xc8\x44\xe7\xc1\x87\x8b\xd3\x4c\x13\x6e\xbb\x90\x76\x83\x58\x41\x5b\x17\x68\x73\xb6\xef\x3f\x94\xde\x41\x16\x25\xda\xfb\x62\x4d\x04\x99\x36\x61\x7a\x0d\x11\xd9\xf4\xa6\xa2\xe4\xbd\xdb\x7e\xef\xec\xe2\xfc\xfb\x46\x96\xea\xa6\x88\xec\x8a\xd4\x75\x66\x18\x49\x09\x9c\xc8\xf9\xe3\xf8\x2c\x30\x3e\x5f\x8c\x3d\xb3\x23\x51\x14\x75\x3c\x7d\x8e\x39\xae\xd7\x49\x43\xe2\xdd\xf3\x56\xa8\x34\xce\x2e\xce\x7f\x6a\xa4\xec\x8e\xe0\xf2\x45\xea\xc0\x89\xdc\x26\x6e\x11\xee\x95\xf7\x68\xbc\xa4\x57\x3f\xe9\x22\x30\xf7\x77\x09\x59\x03\xc6\x0a\x0e\xa3\x83\x57\xa7\xb7\x5a\xc6\x4b\x01\x99\x6a\x48\x8b\x40\xfe\x44\xce\x8e\x5e\x08\x30\xab\x57\x2a\x6a\x01\x8f\x4a\x2b\x38\xed\x58\x96\x64\x6f\x38\x4c\xf4\x74\x6a\xa5\x9a\xd9\x21\x24\xf9\x91\xc3\xca\x6e\x94\xc3\x54\xdc\x8a\xec\xd0\xc8\x71\x97\x17\xc9\x44\x96\x02\xfc\xa4\x5c\xea\x93\x5b\xfb\x30\xd4\xca\xf4\xa6\xe9\x57\x0b\xb0\xb7\xd7\xd1\xd2\xdd\x48\xb5\x0a\xc5\xfd\x07\xa9\x08\xc3\x9d\xde\xae\x68\xfe\xf3\xc4\x75\xfe\x6a\x00\xd3\x1e\xa1\xc5\x05\x57\x83\x60\x32\x0a\x64\x07\xd1\x40\x8d\x5c\x5a\x02\xff\xb8\xf0\xb8\x67\xa8\xfa\x81\x17\x97\xa9\x86\x53\xcb\xee\x23\x48\xb3\x1e\x7b\x8e\x5a\x99\xa1\x08\x3e\x3e\xe7\x8a\x3d\xe7\x53\x91\x3d\xe7\x46\x3c\x38\xd1\x01\x9d\xa8\x6b\xe9\xb7\x05\xd9\xef\x61\x41\x6a\x9c\xaa\xb5\xbb\xf4\x87\x74\xc1\x59\x5b\xa5\x98\x5d\xc2\x5e\x80\x71\x50\xb3\xaf\x74\xf1\xc2\xe5\x4c\x5b\xaa\x87\x6d\x8e\xa7\x99\xfc\x22\x30\x15\x0a\xe0\x0c\xee\x08\x2e\x5b\x65\x5e\xe8\x21\x1f\x66\x33\x57\xd5\xc1\xf8\xbb\x5c\x8a\x4b\x52\x17\x14\x14\x63\xfe\xdd\x8c\x0c\x06\xe7\x2f\xde\xad\xcc\x7b\x04\x1e\x48\x7a\xe4\xb6\x25\xc4\x67\x3b\xb8\xd2\xc2\x07\x67\x97\x74\xb5\x52\x8a\x6c\xdc\xdf\xb8\x6a\xce\x4d\xc5\xd6\x9a\x88\x2c\x77\x49\x51\x58\x01\x8e\x2e\x4e\x11\x49\x37\xca\x14\x62\xd9\x45\x79\xa7\x8b\x9b\xae\xb0\xd7\x16\x74\x7b\xc7\x67\x41\x74\x61\xcf\xa9\x85\x84\x2b\x2f\x35\xf2\xdc\xb2\xda\x42\x42\x64\x63\x7d\x70\x1c\x9c\x7d\x11\xd3\x05\x86\x4f\xa2\xc5\x0c\x53\xa1\xc2\x19\x82\xa7\xbd\x1e\x05\x9f\x35\xf8\x49\x98\x8e\x1f\x6e\xa4\xa8\x46\xe5\xb2\x1a\x0b\x97\x4d\xd5\x4e\xd9\x36\x8d\x72\x98\xcf\x5e\x83\xb0\x91\xe0\x95\x84\x7e\x97\x40\x71\x22\x16\xb8\x3d\xab\x9b\xc8\x1b\x9e\x48\x6c\x67\x45\x03\x7b\x15\x34\x64\xa7\xe4\x01\x0b\x2a\xb2\x06\xae\xb2\x67\xcf\xe7\x17\x38\x43\xdb\x65\xc7\x39\x8c\x53\xb3\x40\x6e\x07\x0b\x8a\x23\x44\x45\x6b\xbd\x01\xc7\xad\x58\xa6\xf5\x8d\x61\xbc\x64\xff\xb3\xfb\x4a\x17\x77\xbc\x48\x45\x6a\xff\x72\xa9\x7a\x74\xc1\xfe\x67\xf7\x9d\xe0\x59\xf7\x3c\x8f\xbe\x23\x7e\xd5\x7b\x27\xa6\xba\x04\x54\x03\xb6\xef\x1c\xe6\x20\xcb\xea\x81\xdd\x08\x63\x51\x9b\xf2\xf9\xc5\x6e\x52\x31\x2d\x39\xaf\x97\x8b\x4e\xc0\xbd\xdc\x55\x37\x4d\x0b\xec\xd2\x31\x86\x34\xb2\x5e\xc4\x70\xd9\xe0\xda\x78\xdd\xee\xc9\xb1\x90\x7d\x6d\x4c\x8d\x0d\xac\xab\x7b\x6d\x94\x5b\x65\x5c\xf5\xdf\xd7\x3c\xb9\x80\x4a\x2e\x7d\x45\x97\x6e\xf4\xd0\x5d\x6d\x31\xc6\x24\x06\xee\xd5\x89\x4a\x95\xbc\x14\x58\xff\x35\x64\xe4\xde\xbb\xed\xcf\x4f\xf7\x97\xed\x05\xd2\xd7\xd2\x94\x6b\x08\xa5\xaf\xc9\x33\x2f\x00\x72\xba\x5f\x3a\x28\x4f\x67\xfa\xce\x33\xa7\x52\xfb\xac\x9d\xfe\xde\xe0\x25\x83\x64\x47\x5f\xa4\xd1\xcf\x5a\x1a\x85\xdd\xb9\x8a\x81\x60\xa1\xf6\xed\xf0\xe0\xbc\xc2\x1f\x90\xfb\x70\xca\x2f\x42\xf7\xe3\x09\xdd\x6b\xb2\x64\xda\x79\x9f\x0d\x03\x06\xc6\xf8\xf0\x4c\xf8\xdd\x7c\x2c\x63\x0b\x9b\x7b\xe7\x31\xaf\xa3\x58\xb5\xf0\x2a\xe1\x61\x03\x82\x02\x73\x22\xc0\x53\x02\xd5\x94\xde\x93\x28\x5d\xcb\x95\xa6\x14\x63\x5d\xb4\x04\xdf\xce\x39\xd3\xb8\x82\x75\x3e\xe0\x1f\x48\x22\x65\x8d\x74\x52\x7e\x8c\x43\x61\xe5\x55\x60\xa4\x60\xf1\x67\x4f\x78\x96\x3d\x39\x78\xec\xe8\x9e\x71\x43\x21\xd3\x36\x4d\x28\xe3\x5e\x37\xe1\x41\x84\x5f\xd3\x74\x03\xd6\x38\x7b\x09\xa1\x7f\x72\x9a\x67\x6e\x89\x6a\x25\x49\xb3\x83\xc9\x19\x89\x18\x98\xbf\xf7\x15\x28\x49\x03\x1a\x7e\x07\x49\xe6\xc3\x03\x78\x94\xf0\x9a\x2e\x9a\x51\x2c\x8e\x03\xf2\xfb\x60\x6f\x8b\x57\xe9\x1a\xac\xf0\x86\x58\x21\xc4\xc4\xd9\xbf\x9d\xeb\xac\x9f\x04\x2d\xe3\x2b\xad\x9f\xcc\x15\x8c\x36\xe7\x93\x91\xd6\xcd\x75\x7e\x80\xc7\x7a\x9e\x55\x05\xcf\x6a\x6f\x76\xbf\x46\xf7\xf0\xf6\x5c\x45\xa6\x50\x30\x02\xae\x97\xb5\xd3\x59\x3b\x8e\xf6\x81\xa2\x74\x33\xd9\xf2\x7a\xc9\xe6\x26\xba\x28\x5b\xd3\xbf\x37\x7d\xad\x7c\xc1\xfa\x31\x35\xd5\x78\x8c\xbe\xfa\x50\x82\x72\xa7\x2f\x27\xd6\xc3\x9f\x48\xfb\x02\xac\x32\x5e\xfc\xb8\x7a\xbd\xe3\xa2\x5e\xfb\x40\xdf\xb5\xaf\x3c\xa3\x78\x07\xc4\xfb\x8a\x64\x55\x50\x26\xfb\x5d\x03\xd9\x29\x5c\x43\x3a\xe7\x7f\xaf\x44\x36\xa3\xa7\x74\xa3\x4f\x30\x91\x81\xc9\x25\xc1\x70\xc5\x42\xd8\xe7\x13\x46\x69\x40\x02\x03\x08\x88\xa2\x00\x16\x4b\x3e\x68\x7d\xa8\xcb\x49\xe8\x02\x10\xdb\xa9\xeb\x90\x84\x27\x48\x06\xf6\x96\x4b\xca\x8c\x3d\x7f\x7d\xce\x3c\x84\xf6\x56\xf9\x8a\x40\x35\x43\x02\xf3\x9f\xb9\x59\xe5\x35\x0c\xbe\x5c\xdc\x4c\x48\xf0\x71\x1e\xcb\x75\x0d\x4f\xa7\xa6\x31\xaa\xb3\x79\x69\x9c\x14\x8d\x06\x00\x30\x9d\xdd\x15\xb2\x2c\x85\x72\x42\x34\x04\xaf\x43\x5a\xf6\x1e\xfb\xa9\x16\x72\x17\xc5\x00\xe1\x2a\xb0\xe1\x2c\xa4\xb0\x85\xd4\x46\x90\x30\x56\x96\x33\x74\xd3\x2d\x24\x40\x2b\xaa\x7a\x2c\x3f\xb8\x6e\x06\xb5\x0f\x57\x8c\x67\xf9\x24\x20\xec\x3a\x71\x1d\xf3\x2d\x80\x1b\x4f\xc8\x9c\x5e\xb3\x4f\x36\xb2\xc4\xe7\x3a\x0a\x87\xaa\xfb\x73\x82\x8e\x85\xf4\x1d\x97\x73\x64\xaf\x21\xf6\x42\x88\x39\x26\xa7\xa0\x41\x62\x07\xce\x60\xc9\x65\xe4\x1a\x2d\x6e\x85\xb2\xed\xca\x92\x8d\x0b\x9e\x56\x96\xc1\x6c\xb1\x13\x6e\x45\x31\x5c\x43\x47\x30\x9c\x63\x19\x4e\x39\x60\xb7\x24\xc3\x12\xfb\x18\xfd\xae\x92\xac\x4a\x85\x61\x63\x51\x76\xa0\x42\x87\xdd\xf1\x32\x99\x74\x08\x60\xb8\x43\xd2\x6a\x87\xe5\xf8\x75\x2a\x32\x61\x3f\xe2\x7f\x13\x9d\x65\xe8\xfe\xdb\xa1\x0c\x06\xfa\xc3\xec\xd1\xe5\x81\xdb\xb5\x1e\x9d\xb7\x75\x65\x69\xab\xe5\x65\xa5\x54\xd0\xcc\x4e\xbb\x40\x2e\xb8\xb7\x58\x70\xdb\x67\xfb\x98\xe9\x9f\xd2\x2d\x71\x46\x2e\xbb\xf3\x43\x28\xc2\x98\x9f\x90\xe2\xe7\x60\x7d\x89\x62\x4b\xc5\x4b\x8d\xe3\xb7\x5f\xba\x4d\x59\x65\x6e\x27\xaf\x7a\x32\xdc\x4b\x2e\x5f\xad\x1f\x89\x4b\xce\xbd\x89\xdf\xf9\x6c\x67\x28\x8c\x3b\x8f\x72\xcc\x6a\x35\x67\x5a\x88\xd2\x96\xc6\xaa\x38\xee\xe4\xfe\x84\xe4\x49\x7b\x48\x3c\x07\x26\x8f\xc9\x9a\x40\xb6\xa9\xdc\xff\x45\xe7\xf2\x89\x75\x2e\xeb\x51\x3f\x2e\xea\x38\xd0\xdc\x8e\x40\xc2\xb7\xec\xcc\x91\x5e\xdb\x49\xf4\x8b\xae\xe4\x53\x1b\x28\x17\x26\x93\x6e\xd0\x3e\xb0\x8c\x39\xbf\x81\x79\xae\x12\x58\x05\x7a\x87\xb4\xf1\x08\xf6\x60\x7a\x3b\xaf\xeb\xd8\xf8\x96\xde\x44\x87\xe4\x4e\x52\x2b\x2d\x3f\x07\xf5\x52\xed\x6a\x79\x78\x0d\xd3\x4f\xf3\x56\xa1\xc5\x4c\xdd\x78\x00\x8d\xc8\x2c\x84\x38\xc9\x56\x58\xbe\xe5\x32\xc3\x80\x81\x4d\x94\xfe\xce\x5a\x4c\x0c\xab\xd0\xba\x44\xff\x7c\xda\x9f\x18\xfc\x69\x85\x15\xc8\x2a\xf1\xe5\xb2\xfa\x8c\x2f\xab\x2f\xb7\xc1\x27\xb9\x0d\xbe\xb8\x4c\x7c\x71\x99\xf8\xe2\x32\xf1\xf9\xb8\x4c\xf0\x5c\x2e\xbb\x1f\x1f\x47\x73\xba\xa6\x54\xe4\xe7\xb8\x1e\x3f\xf9\x1c\x44\xa4\x9f\xe6\x87\xfc\x20\xe2\xd1\x73\xad\x30\x3a\x6c\x59\x7e\x52\x57\x26\x08\xd8\xa9\x28\xb9\xcc\x30\x03\xa9\x56\x82\x71\xfb\x3c\xf7\xe6\xaf\xa4\x2a\x40\x21\x63\x4a\xcb\xcb\x9c\x6c\x61\xe5\xa1\x77\x73\x8a\xf5\x85\x32\x4e\xc6\x4d\x79\x55\x70\x65\xa0\xeb\x2b\x39\xaf\x10\xbf\xc7\x59\x82\xe6\x96\xb9\x06\xce\xf7\xee\x84\x37\xfb\x0b\xc2\xdb\x93\xe2\xca\x45\xd7\xf9\xd2\x4e\x79\x6d\x09\x43\x6a\x70\x48\x62\x0b\xc8\x52\x74\x9b\x04\xa0\x06\x04\xc6\x9a\x50\xaa\xb3\x6c\x86\x4e\xdd\x9e\xe2\xa0\x95\x4d\x7b\x0c\x81\x36\xf1\x8e\xb2\xb7\x38\x00\x26\x51\xe0\x76\xc8\x5d\x06\xe3\xf2\x2d\x5a\x8a\xa3\x36\x95\x9a\x01\xa1\x24\x49\x44\x5e\xe2\x19\x6d\xe5\x08\x53\x61\x0c\x1f\xaf\x32\x3f\x50\x29\x14\x73\x26\xd5\x94\x2b\xcb\x9f\x53\xdb\x2e\xf3\xbf\xa1\x11\xc8\x0e\xce\x6d\x18\x3e\x74\xf9\xf7\x03\xbd\x7a\xb5\xd8\x18\x8f\x1f\x4a\x08\xa3\x9b\x8b\x0a\x7a\x88\xe8\x6d\xdf\x0b\x25\x8a\x66\xf6\xd5\xb6\xb9\xcc\x57\x88\x21\x66\xec\x60\x7b\x0e\xb3\xb5\x37\x0e\x65\xc2\xb5\xe7\x97\xeb\x8e\x1b\xc0\xad\x1c\x72\x43\xe8\x71\x78\x05\x42\x14\xb2\x02\x2d\xd8\xa8\xbd\x31\x69\xdc\xb1\xc9\x66\xac\x7f\x8c\xa1\x0a\xd0\x35\x6e\xa1\x9e\xef\xc4\xfc\xfc\xe1\x97\x5e\xcb\x90\xa5\x61\xdf\x74\x1a\xe3\xb1\x12\x65\x05\xe7\x12\xd0\x1b\x20\x48\xa6\x10\x78\x58\x7d\x52\xe6\xb9\xc3\x2a\xfc\x78\x97\x21\x7e\x6c\x05\x24\x5f\x08\x6e\x56\xae\x07\x16\x0a\xdc\x86\xb3\xbc\xd0\xe3\x82\x4f\x01\xd2\x37\x8a\x48\x8e\x77\x18\xbe\xf3\xa1\xa2\xcf\x89\xef\xe8\xf0\xc4\xd0\xb1\x8d\xf6\xdc\x45\xa1\xd3\x2a\xb1\x82\x9b\x0b\xab\x18\xc9\x24\x3e\xcf\x90\xfa\xd5\x6e\x4a\x7c\x39\x31\xf1\xc1\x92\xcd\xbf\x51\x08\x7e\x98\x2b\xa9\xc6\x26\x80\x35\xc0\x79\xeb\xd4\xbc\x10\xca\x00\x59\xca\xc1\x5e\x06\x9a\xe8\x42\xa4\x8c\xb3\x71\xc5\x0b\xae\x4a\x21\x52\x78\xfa\x81\xf4\x85\xaf\x85\x18\xca\xc5\xcb\xe8\x1e\x76\x37\xb2\x94\xd8\x21\x92\x5c\x0f\x07\x67\x2b\xd3\x58\x5b\x4e\xf4\xf6\x94\xe4\x41\x63\x8f\x84\xea\x38\x14\x86\x2b\x80\xff\x05\x4c\xb2\x8e\x4b\x1e\xb6\xc5\x58\xd6\x00\x2e\x74\xa1\x6b\xd1\x3e\x8f\xde\x31\x0c\xce\x1b\x1b\x69\xdd\x23\xc9\xb3\x97\xe8\xe9\x61\x78\xe7\xec\x56\xa1\x0f\xf5\xe7\x69\xd9\x59\x7a\x93\xcd\x9f\x88\x16\x06\xbc\x7b\xb5\xfe\x0b\x30\x36\xbd\x05\x42\x2e\x53\x87\xd4\xca\x39\xc6\x4c\x81\xe8\x84\x22\x08\x76\x2b\x12\xbe\xed\x3d\xe3\x92\xae\x7f\xd1\x5d\x7c\xc6\xba\x8b\xb4\x98\xbd\xab\x56\xd1\x1d\xc2\x4a\x89\x94\x9d\xc8\x91\x03\x21\x65\x75\xea\xb3\x41\x9b\x18\x44\xc5\x6e\x10\xbb\x32\x06\xf4\x0a\x67\xf6\x48\x22\x00\x15\x40\x16\x46\x54\xc2\x31\xb0\x54\x16\x22\x29\xe5\xad\x70\x4f\x41\x03\xb9\x63\xe1\x35\x28\x8a\x02\xde\x61\x26\xd7\xca\xa0\x85\x5a\x05\x04\xd2\xbc\xd0\x89\x30\x20\xf2\x78\xf5\x2e\xbe\xd8\x18\xe4\xce\x8f\x78\xed\x29\xeb\xb2\xb3\x2c\x3b\x05\x6c\x91\xb4\x98\x01\xa6\x88\x29\xf9\x58\x84\xc0\x4d\x6a\xae\x89\x3c\xf6\x18\xde\x57\x3c\x11\x17\xa2\x90\x3a\xbd\x14\x96\x95\xad\x62\xc0\xf6\x6e\xf0\xa9\x97\xa4\x62\x06\x6b\xb1\x21\xc6\xdd\x96\x01\x8d\x3e\xdc\x1d\x68\x5e\x4e\x9b\xbe\x05\x4a\xab\xae\x0b\x21\x75\x50\xe7\xf1\xe5\x03\xb0\xe6\x61\xe9\xb1\x15\x26\xa7\x53\x91\x4a\x5e\x82\x3f\x88\x03\x7e\xf7\x8e\x06\x4a\x66\x28\x7e\x38\xd8\x53\x98\xa0\xdd\x15\x52\x07\x8f\xa9\x00\x79\x09\x5c\x3c\x06\x9a\xaa\x43\x91\x71\x50\x79\xd0\x84\xa8\x93\x51\x1d\xd9\x93\xe0\xd7\x31\x64\xb8\x65\x8c\xbb\x16\x5e\xbe\xa8\xfe\x3e\x89\xea\x4f\x17\xf9\x84\xab\x17\x0e\xb1\x77\xd5\x31\x79\x61\x09\x98\x40\x06\x52\x96\x23\x98\x91\x53\x79\x5d\x14\x3a\xe7\x63\x38\x40\x17\x3a\x93\xc9\xac\x13\x09\x6d\x7e\x2f\xa6\xbe\x01\x7b\xca\xfa\xbd\x3f\xf4\xd8\x25\x1e\x28\xdc\xdd\x34\x0e\x5a\x30\x03\xb1\xda\x30\x44\x20\xeb\x08\xc0\x35\x0f\x47\x28\x07\x21\x58\x09\xfe\x3c\xd8\x63\x23\xa9\x20\xcc\xba\x88\x82\xd9\x31\x3a\xf8\xd0\xb9\xdc\xf8\xc5\xc5\xe6\x9f\x98\x50\xc9\x90\xaf\x24\xe1\x80\x45\x43\xd7\xc5\xfc\xdc\xdc\xbd\x6d\x44\x89\xaf\x09\xd8\x01\xba\x9c\x6c\xe3\x6f\x67\x29\xe2\x1f\x20\x3b\x7c\x88\x5f\xd4\xda\x5d\xf6\x22\x7f\x43\xac\x6b\x54\x65\x23\x99\x65\x22\x75\x7c\x8f\x93\x2c\x42\x8f\x28\x5e\x14\x96\xbb\xe8\xaa\x84\xc5\xb0\x93\x76\x7a\xd7\x0e\xe3\xec\xe9\xd1\x37\xec\xb9\x56\xa3\x4c\x26\xa5\x7b\x9d\x87\x88\xf0\xb2\x2a\xec\x2a\x2e\xce\xcb\x53\xa3\xf0\xea\x8b\x94\x52\x67\xa4\x6c\xa2\xef\xd8\x98\x17\x43\xfb\x2c\x0e\xce\x3e\xe1\x12\x12\x05\x86\xa8\x2f\x58\xdc\xb7\x8d\x23\xb0\x78\x6d\x81\x89\x3b\x0e\x9c\xe3\x46\x90\x06\xe0\x2e\xd2\xe0\xaa\x25\x3e\x48\x4c\x73\x10\x36\xa4\x7d\xb6\x3a\x15\xb6\x7b\x9f\x46\x3b\xcf\x05\x5a\x3b\x9e\xd5\xf5\x4f\xa6\x7a\x67\x3d\x76\xe6\x15\x0c\xb5\x9b\xf8\x09\xce\xe1\x09\xeb\xd2\x69\xa9\x9f\x26\xf3\x27\xf6\xe4\x3b\x9e\xdc\x8c\x01\x3a\xc3\x96\x42\xeb\x1a\x18\xf8\xeb\x84\xd3\x00\xd6\x46\xfc\xbe\xde\x88\x9b\xc1\xd0\xb7\xf4\x27\xf6\xe4\x95\x2e\x44\xd4\x2c\x4b\xb8\x49\x78\x8a\x80\x04\x40\x1f\x90\x6c\xb0\x3d\x83\xa2\xc2\x5c\x83\x23\xdf\xc6\xae\x50\xa6\x1e\x5c\x8b\x58\x17\xf6\xd7\xd2\x23\x76\x56\x74\xc4\x53\x00\x1e\xd3\xaa\x89\x53\xfb\xaf\xd5\x31\xf8\x7f\x6d\xd3\x7b\x21\xc6\xd2\x94\x28\x81\x7d\x32\x12\xec\x7c\x10\x1b\x93\xa3\x86\x80\xf9\xd8\x64\xd8\x79\xe7\x5b\x4c\xff\x93\xee\x83\x07\xe8\x7e\x73\x12\xe4\xe6\x11\x27\x7c\xdf\xce\x1e\x7f\x7a\xb6\xc7\xe3\x4d\x7a\xac\xca\x89\x15\x97\x93\x4f\xb3\xa5\x76\xdf\xfb\xc6\x24\xaf\xca\x89\x2e\x1c\x30\xd9\x27\x98\xff\x6e\x3b\xdf\x62\xfa\xda\x24\x00\xe2\xf8\x98\xb3\xde\x49\x9f\xc7\x9f\x6a\xb2\xc7\x9b\x9e\xb2\x21\x2f\x93\xc9\xa3\xd1\x77\x07\xbd\x6d\x4a\xd9\xfb\x77\x79\x0c\xc1\x21\x9b\xf4\x19\x81\x7f\x3f\xba\x30\xb0\xf3\xbe\x37\x25\x78\xa2\x75\x91\x4a\xf5\x49\xb8\xd6\xce\xfb\xde\x74\xf2\xce\xdb\x71\x2e\x6b\xc5\x56\xbd\x6f\xbc\xf1\x76\xdb\xfd\xa6\x93\x17\xb7\xa0\xa2\x7b\xe4\x35\xdf\x61\xaf\x1b\x4f\xd8\x4b\xdd\x8f\xdb\xef\x28\xd3\x77\xa0\x75\xd4\x59\x2f\xc0\xf1\x7f\x92\x1d\xf7\x70\x43\xd9\x94\x28\x72\xca\xc7\x82\x14\x2e\x9f\x84\x14\xce\x2e\xf6\xa9\x97\x84\x1c\x2d\xa5\x1a\x3f\xf6\x51\xdc\x71\xcf\x9b\xee\x00\xa5\x53\xf1\xe8\x53\xde\x55\x9f\x9b\x2f\xf3\xae\x7a\xde\x94\xcc\x78\xc6\x1e\xb7\xcf\x62\xc8\x93\xde\x27\x7d\x10\x3d\xd0\x08\x36\x5e\xf6\x07\x1a\xc7\xa6\x0b\x62\x92\x89\x48\xab\xec\x13\x30\x99\x1d\xf7\xbc\xf1\x02\xec\xb8\xff\x8d\x09\x8f\xb1\xe3\x8f\x4e\xf5\x1d\x76\xbb\x39\xc9\x77\xd8\x79\x93\xde\xf4\xd7\x16\x7e\xc2\xaf\x20\x39\xe6\x4f\xfd\x25\x4e\x43\xae\x08\xa2\x19\x80\x09\x5c\x80\xeb\xa1\xcb\xaf\xaf\x18\x77\x70\x07\x2e\xe3\x36\xe5\x32\xbd\x2a\xa4\xe8\xf8\xec\x15\x68\xa8\x47\x64\x6b\x9e\x4c\xd8\x8d\x98\xc5\x89\xe8\xd9\x93\xde\x93\x79\x83\x3a\xc1\x12\x94\x46\x64\xa3\x08\xc5\x9c\xc0\x9b\x21\x6f\xaf\x8e\x7c\x4b\x45\xd9\xa9\x65\x0a\xac\xb5\xc7\x99\xa9\x86\x5d\x6f\x7c\x93\xa5\x98\x52\x5c\x04\x16\x86\x96\x31\x1d\x7d\x94\xa0\xde\x08\x36\xa2\x1c\xaf\x53\x5e\x9a\x53\xf6\x64\x74\x4a\xf9\x0f\xf8\x14\x33\x21\x88\x27\x1d\x76\x07\x89\x26\x9b\x3f\x34\x61\x56\xb9\x4f\x2c\xc4\x1c\xbd\x60\xc0\x40\x0b\xfb\x9d\x9d\xd1\x93\x5b\xea\x00\xec\x6c\xad\x3d\x44\xbf\xb8\x2e\xc4\x07\x9e\x94\xec\x6f\xc6\xe7\xf5\xf0\x3e\x8d\xd8\xb1\x4f\x37\xce\x9e\x48\x6a\x1f\x12\x28\xb7\xb6\x1f\xfd\x82\x98\x10\xe8\xe4\x86\x2d\x41\x23\xd2\xa7\x44\x7e\x72\x43\xcd\xdd\x88\x99\x69\x6d\x2d\xfc\x80\x3e\x14\x14\xb9\x13\x0f\xea\x89\x01\x1a\xd0\x9e\x42\x67\x2d\x59\xb0\x4a\xc9\xbf\x57\xde\xe0\x78\x6e\x7b\xbf\x81\xf0\x98\xdc\xd4\x16\x1e\x37\xa9\x4f\xc4\xee\x37\x0e\x98\x00\x6d\x8d\xc8\xf1\x17\xf1\xf4\xcb\x90\xaa\xb0\xf4\xe9\x51\x90\x86\x01\xe6\x9b\x52\xb2\x82\x57\x8e\x1c\xbb\x07\xda\xa1\xdf\xe8\x69\x17\x92\x48\x77\x53\x39\x1a\x05\xcb\xdf\xbd\xfd\xf9\x16\xc2\x46\x2e\x3e\xa5\x71\x95\x7a\xc0\xec\x00\x79\xd0\x21\x71\x90\xc1\x1e\x9c\xa2\xc1\x5e\xf8\x4c\xdb\x1f\xd6\xd6\x01\xdc\xb2\x73\x20\xc0\x94\x03\xb6\x02\x4e\xd8\x52\xfc\x46\x88\xdc\x25\x84\x6e\x66\x0f\x5c\xe8\x1b\xb8\x6d\x20\x78\x1d\x14\xec\xec\xe2\xbc\x25\x26\x3c\x18\x72\xa7\xf3\x53\xdd\xdc\x29\x65\x33\xac\x8c\xfa\x00\xdb\x86\xa4\x47\x31\xa9\x6b\x31\x67\x86\xdf\x8a\xc8\xc3\xc7\x90\xfb\xbc\xae\x86\x19\x66\x70\xc8\x33\x59\x7a\x46\x18\x2f\xf0\x8e\x5d\x5d\x17\x45\x17\x3b\x5a\xb8\xeb\x65\x77\x1b\xfc\x35\x1f\x8a\xec\x52\xa0\xd5\x7f\x59\xfc\x2e\xcb\x6c\x49\x66\xa8\x28\xc1\x50\xc0\x77\x98\x49\x0a\xc2\x72\xfd\x95\xe4\x7d\x28\x91\xaf\x93\xf7\xa1\x1e\x61\xd8\x1a\xf4\x4a\x0e\xde\xf6\xf3\xcb\x0f\x96\x27\x84\xf8\xa7\xb3\x1f\x5f\x90\x93\x23\x32\x95\x46\xdf\x14\x78\x07\x9e\x04\xe4\x23\xd4\x63\x67\x4c\x55\x59\xb6\xa8\xa8\xd2\xbe\xe4\xea\x53\xd2\x1c\xd3\xaa\x48\x8d\xe6\x14\x6a\x10\x1d\x8d\x01\xd1\xc2\x4f\xd1\xff\xec\x6a\x22\x6a\xdf\x44\xb3\x5f\xcb\x5b\xf2\x1e\x8e\x41\xb5\x95\x7f\x17\xc6\x70\x2f\x97\xcb\x68\x75\x9b\x44\x6b\xcb\xd1\xbd\xbd\xfb\x67\xdb\x12\xd0\xae\x8a\x2f\xb6\x7f\xde\x88\x59\x07\xee\xa2\x5f\x31\x5d\xbd\xdd\x27\x84\x96\x15\xff\xe6\xfc\x72\xa2\x66\x6c\x0b\x56\x28\xfa\x7b\x25\x6f\x79\x26\x54\xe9\xae\x39\xcc\xdf\xe0\xf7\x72\xb4\xf0\xf6\xae\xd5\x46\x84\xfb\xd3\x36\x30\xd8\xbb\x11\xb3\xc1\x1e\xde\x85\x76\xe2\x9c\x8e\xcf\x60\xef\x5c\xd9\xef\x9d\xe3\x8f\xf7\xe5\x29\xf8\x2c\x5c\x1c\x10\x1a\x3a\xd8\x43\x31\x63\x6f\x83\x1d\xd3\xc6\x1a\xda\x79\xd1\x5a\x7e\x33\x53\x9e\x77\xfd\x06\x80\x5c\xf8\xf7\xe5\x36\xf1\x9e\xdb\x80\xf1\x44\x93\x27\x3f\x50\xf7\x0b\x26\x2b\x77\x84\x43\x72\x76\x50\x4e\x41\x2a\x43\x12\x60\x5a\x00\x28\x5c\x88\x8c\x3c\xaf\x71\xd1\xe0\x3a\x43\x27\xf3\xd5\x5c\xe2\x46\xac\xf2\x4f\x23\xb9\x1a\xbd\xdd\xed\x24\xec\x17\x3e\xa8\xc9\x8f\x9b\xe7\x04\xdb\xa4\x97\x5f\x27\xb5\xdf\xea\x79\xfe\xed\x46\x24\x09\x08\x87\x05\xa3\x5b\x55\x01\x5c\x1c\xc4\x18\xca\x43\xe5\x05\xee\xa1\x44\xb3\x55\x41\x5e\x8e\xb4\xb5\xec\xe1\x37\x62\xf6\xc4\x20\xa1\xed\x11\x99\xc8\xdc\x25\x02\x85\x23\xe4\x5c\xfa\xd1\xb1\xdc\x35\x81\xbb\xfa\x5c\x75\xd8\x8f\xba\xb4\xff\x79\xf9\x01\x30\x23\xec\xfa\xbc\xd0\xc2\xfc\xa8\x4b\xf8\x66\x1b\x68\x32\xe8\x70\x95\x54\x81\x47\x91\xd0\xdc\x5c\x62\xfb\xd8\xe1\xd8\x90\x7f\x76\xfd\x48\x9f\x2b\xfb\x84\xa0\x31\xcf\x9d\xe9\xd8\x37\x1c\x03\x89\xda\xda\xa0\xa9\xea\xa2\x36\xd3\x25\xcd\x51\x53\x08\x3d\x08\xbf\x60\xac\x46\x06\x08\x90\x69\x55\xd0\x8b\x0b\x17\x5b\x26\x0c\x96\x1a\x61\xd2\x3e\xab\x28\xe2\xfa\x96\x0d\xdb\xee\x01\xa4\x1e\x69\xca\x37\xa2\xe4\x4b\xf8\x8e\x2b\xc2\xf0\xfb\xa1\x30\xde\x6b\x13\x8f\xb0\x99\xa9\x72\x22\x4a\x99\x44\xe0\x37\xb0\x24\x13\x7e\x2b\x28\x01\x38\xf8\x40\x66\x7e\xeb\xde\xf2\x42\xea\xca\x78\xe8\xc6\x20\xba\x78\x47\x75\x8f\xbb\x06\x7c\x9f\xde\xbe\xff\x7c\x0b\x25\xed\x70\x3a\xcc\x0d\xec\xd7\x75\xb0\x76\xb5\x7d\x6f\x57\x2b\xd3\x56\x53\xb1\xc8\xe9\xd5\x21\x03\x40\xe6\x51\xfb\xd9\x0a\x34\x53\x59\x3a\xf4\x43\x4a\x94\xa5\x47\xf0\x66\x34\xde\xb3\x97\xb0\xc2\xea\x31\x2d\x11\x9e\xc0\x84\x13\xa8\x25\x10\x32\x44\xb3\x47\xa1\x11\xd2\xc3\x31\xba\x58\xa0\x28\x4f\xb6\x34\x06\x7e\x80\x50\x5f\xe7\x82\xef\x42\x8a\x22\x6f\x7d\xbb\x40\x10\xbf\x89\x7e\xbe\x20\x8c\x95\xda\x0e\xb3\x90\x82\xa4\x7d\x25\x3e\x94\x8e\x0f\xf9\x91\x84\x55\x79\x8e\x54\xc1\xd3\x03\x31\x85\xa6\xb4\x97\x0e\xb4\x15\xc5\x04\x3a\xe7\x67\x47\x32\x97\xb3\x1b\xd2\x93\xbb\x68\x12\x3b\x6f\x17\x23\xec\x52\xdf\x41\xa2\x3c\xce\x46\xe2\x8e\x4d\xa5\xaa\x2c\xb9\x60\xe9\x73\x6e\x8c\x48\xbd\xe0\x0c\x1b\xc3\x3d\xc4\x50\xac\x70\xd4\xc6\x48\x31\x17\x9d\x8c\x68\x98\xb8\x92\x48\x4a\xe7\xfd\x8c\x01\x9d\x09\xcf\x1c\xa5\x88\xd2\xf4\x3c\x92\x85\x29\x7d\x34\x50\x27\xce\x2c\x0c\xe3\x29\x44\x22\xa4\x27\x65\xa9\x6f\x84\xa2\x04\x78\x2e\x92\x88\x02\xea\xb6\x60\xc7\x08\x40\x29\xd5\xf8\xbc\x14\xd3\xe7\xba\x52\xab\x12\xfa\xcf\x57\xf0\x9a\x1d\xbf\x25\x4d\x35\x34\x76\x67\xa8\x92\x76\x27\x4d\x14\x56\x0e\x81\x82\x5c\x86\x5b\xc2\x95\x0c\xe9\x28\xa0\x8c\xa3\x85\x67\xd0\xf4\x2d\xee\x36\x12\x31\x44\x4a\xb7\xba\x2e\x68\x59\xdc\x8d\x6e\x28\x6c\xbc\x3e\x2a\x3f\x72\x37\x28\xc3\x2a\x0c\xe2\xf4\x22\x60\x3d\x4c\x22\x13\xa3\x92\x55\x0a\x4e\x9f\x4a\x7d\xba\x3a\xe2\xe8\xb5\x04\xb2\xf5\x81\xc2\x46\x98\xe6\xe0\xbe\xbd\x4f\x5a\xbd\xa1\xa0\x3c\x65\x3e\xc0\x3d\x99\x54\xea\x06\xd4\x0d\xe1\xd7\xd2\x3d\x8a\x5d\x1c\x3e\x14\x3a\x08\xf3\x29\x04\x91\x0e\xb7\x70\x73\x4e\x38\x91\xb9\x80\x8f\x8d\x66\xe2\x62\x72\x74\x96\xba\xe4\x93\xb7\xfd\x5e\xff\x19\x4b\x35\x46\x27\x01\x30\x88\xeb\x03\x8f\x89\xcf\x02\x57\x99\x08\x93\xac\x6d\xa7\xfc\x5e\x98\x52\x4e\x21\xa2\xf9\xf7\x78\x5c\xe5\x3f\x48\x2f\x17\xc2\x06\x02\x7e\x4c\x2d\x8b\x39\x70\xe4\x45\x6d\x63\xce\x6b\x60\x27\x05\x7d\x00\x25\xd6\x03\x44\x78\xd7\x58\xc2\x8a\xf3\x72\x49\xb9\xa8\x01\xd9\xc0\xc5\x75\xc7\x10\x2f\x4f\x4c\x14\x83\x19\x23\x76\x86\x88\x29\x14\xac\xb9\xf2\x8c\x38\xe0\xe4\x62\xa0\x40\x29\x8a\xa9\x54\x04\x8c\xe0\xa2\x76\x80\x77\x78\x78\x85\xf5\xa1\x77\x11\x9f\x15\x78\x20\xab\x14\xc6\x43\xda\x3e\x79\x72\x13\x67\xf0\x17\x45\x8f\x5d\x34\x11\x72\x0d\xa4\x90\xed\xb1\x77\x82\xa7\x5d\x7b\x85\x3e\x78\xe0\x55\xa2\x15\x06\xf8\x27\xb3\x2e\xb9\x2e\x74\xb9\x4a\xbb\xfe\xc2\x68\x1a\x37\xd7\xc3\x62\xca\x46\xaf\xa5\xba\x59\x15\x30\x4e\xc5\xf0\x1d\xf4\xfe\xdd\xeb\xa6\xd6\xde\x2f\xe1\x5a\xa4\x1a\xa8\x81\x7a\xf1\xf2\xe2\xdd\xcb\xe7\x67\x57\x2f\x5f\xb0\x1f\xfc\x73\xc1\xe5\x81\xd4\x39\xf3\x21\x3a\xae\x7d\xaf\x45\xef\xf7\x8e\x8f\xec\x19\x81\x78\xb0\x3a\x43\x93\x86\xe5\x19\x57\x0a\xaf\xf0\x3a\xfa\x71\xbf\x77\xdc\x77\xd5\x1e\x3b\xbf\x78\x10\x08\xdf\x70\xc5\xc7\x22\x45\xe5\xf5\x4b\x55\x2e\xd5\xf0\xce\x17\xc6\x05\xb8\xd3\xc5\xcd\x28\xd3\x77\x5d\x69\xc5\x20\xd4\x84\x5f\x12\xcb\x0b\x30\x9a\x0b\x40\x7c\x83\xa4\x84\x9a\x77\x5b\xaf\xe5\x5d\xf8\xd0\x51\xdf\x51\xb0\x77\x7d\x5c\x7e\xa9\x1b\x23\x43\xc8\x6a\xaf\xa7\x9f\xd7\x71\xff\xcd\x1e\x79\x30\x43\x81\x56\x55\xe7\xdd\xcc\x1e\x2e\x16\x8d\x83\x18\x39\x2a\xba\x95\x48\xac\x34\x51\xcc\xe0\xb0\x17\x70\xea\xeb\xe3\xe3\xd1\x48\xa2\x6b\x2d\xf1\x21\x98\xbc\x2a\x35\x20\x59\x40\xba\x54\x8f\x10\xbe\x85\x78\x82\x6b\x71\xb5\x1a\x31\xe1\x95\x2f\xe8\xae\xcf\x54\xda\x02\x53\xa9\xe0\x61\xe7\xa2\x73\x03\x98\x32\x19\x58\x88\x74\x91\x22\x1d\x48\x5a\x88\x3a\x60\x89\x7f\x0e\x78\x69\x13\x44\xb8\x53\x36\xf0\x66\xc1\x6d\x94\xec\xa3\x79\xab\x23\xbb\xa7\x5e\xd1\x1b\x32\x97\xe9\xeb\xbc\x29\x73\xa2\xc1\xca\xe4\xa5\x50\xb0\x4f\xba\xb5\x76\xb4\x31\xfe\x11\xe6\x01\xd3\xe3\x69\x43\xa0\xf3\x22\xac\x1d\x38\xab\xab\x54\x17\x78\xa2\x0b\x7a\xf0\x47\xf0\x27\x74\x48\xdd\xc9\x66\xd0\x1c\x19\x02\x8c\x3b\xaa\xdb\x20\xe8\xe4\xeb\x01\xe7\xbc\xcd\x23\xf0\x99\x32\x4a\x2a\xed\x1b\x20\x79\x36\x13\x3c\xc5\xdb\x51\x1a\xd6\xc2\xa0\x86\x02\x60\x8f\xf0\xda\xc5\x43\x0b\x5b\xea\x36\x0e\xe8\xaf\x63\xac\x80\xa0\xf7\xe4\x2c\xcf\xb3\xd9\x13\xd8\x9f\x4f\xde\x43\x68\xf3\x93\x6d\x30\x47\x1e\x19\x5d\xca\xe3\x49\xc9\xa9\x30\x25\x9f\x82\x32\xd8\xc1\x36\xf9\x85\x63\x77\xa2\x40\xb3\xa3\xe5\x3d\x24\xea\x91\x41\xdb\x29\x56\xec\xab\xae\xb6\x0a\x44\x91\x87\xbd\x8e\x64\x52\xe8\x06\x22\xd7\xdc\x9e\x75\x65\x20\x07\x41\xe0\x8e\xf0\x15\xe0\x10\x4d\x6d\x09\xc4\x30\x60\xc8\x73\x7d\xe2\xed\xe8\x42\x09\x02\xa9\x5d\xdc\x6e\x19\x93\xf6\xfe\x59\x89\x83\xe6\x62\xc9\x54\x42\x21\xb0\x74\xd6\xd4\x2c\x3c\xcb\x02\xee\x45\xbb\xaa\x85\xa0\x5f\x5d\x86\x80\xc8\x2a\x04\xea\x0b\x2a\x8b\x7b\x7f\x9d\x9b\xd4\x5e\x23\xbc\x35\x0e\xfb\x41\x6d\x18\x67\xa1\x5f\x62\x44\x95\x0a\xf6\x6d\xd0\x1d\xe3\xb3\x7d\xca\x73\x74\x01\x49\x19\x25\x65\xaf\x5f\xd6\x91\x16\x67\x38\x03\x13\x31\x08\xf7\xa5\xd6\x19\x9a\x3b\x4b\x4d\x69\x29\xbc\x3a\x84\x17\x43\x59\x16\xf6\xd2\xf5\xa1\xc9\x96\x47\xcc\xfc\x3b\x19\x6c\x7c\xa0\x1f\x81\xec\x25\x1e\xfe\x02\xc4\x4d\xd0\xb3\xc0\xe9\x02\x69\x1d\x10\xd6\xbc\x1a\xa5\x21\x7f\x9f\x1e\x1e\x06\x3d\xb4\x95\xc0\x53\x9d\x98\x43\xbb\x4e\xdd\x71\x25\x53\x71\x18\x93\x7f\x3d\x83\x46\xc4\x67\x92\xac\x32\xa5\x58\x27\xbb\xcb\x55\x03\xc1\x9a\x6a\xd2\x66\x8a\xa0\x3e\x42\x2a\xa9\x60\x33\x76\xda\xa8\x14\x83\xbc\x2b\x69\x26\xd1\xd6\x84\x45\x81\xac\xfe\xd0\x01\xa0\xab\x38\x14\x6c\x7b\x7f\x05\x19\x80\x3a\x35\x35\xb8\x29\x7a\x9e\xe3\x63\x79\x86\xde\x1b\x85\x1c\x4f\x4a\xa6\xf4\x1d\xda\x31\x7c\x1e\x10\x69\xd8\x58\xc3\x7d\xa4\x99\x1c\x2b\x20\x35\xe8\xee\x28\xd8\x1c\x37\x3d\x40\xc4\x00\xef\xf6\x48\x2e\x9b\xb3\x70\x68\x8a\xe0\x95\x80\xa5\x3e\x26\x3f\x7f\xde\xec\x1c\x25\xee\xc0\xde\xe7\xdc\x95\x88\x40\x31\x5e\x5f\x78\xd0\xde\x71\x13\xee\xc2\x73\xaf\x11\x89\xb0\xc2\xc2\x6b\x5e\x2a\x36\xe1\x79\x2e\x94\xe9\x12\x1e\x02\x60\x94\x32\x6e\x99\xab\x61\x46\xe4\xbc\x00\x1a\xbb\x4b\xc2\x04\xed\x81\xd3\x12\x7a\x95\x05\x1c\x60\xd7\x65\x9c\xc7\x5f\x2a\xf6\xee\xd5\xf3\x93\x93\x93\x6f\xd0\x5b\x81\x23\xca\x89\x54\xec\xfd\xd5\x73\x78\x99\xad\xf3\xd6\xfd\xb1\xc2\x54\xfc\xa8\x73\x7e\xf0\xb7\xaf\xe3\x15\x0b\xb0\x90\x08\x34\xe2\xfb\x4d\x61\x78\x7e\x0c\x8a\x3c\x02\xe0\xf1\x29\x8b\x9c\x80\xe2\x14\x13\x1a\x31\x70\x46\x95\x15\xf4\x51\x0b\x61\xd7\x82\x16\x4a\x96\x11\xf2\x44\x03\xfc\xc3\x51\x0f\xd2\xfc\xd8\xf5\x89\x40\xb7\x9a\xfb\x2c\x33\x1a\xa5\x84\x37\x9c\x24\xf1\xa1\xc0\xac\x56\x02\x20\x49\xc2\x0a\xec\x5a\xd7\x33\x37\x9e\xc7\x3c\x74\x2f\xda\x88\xf1\xee\xd5\x73\x06\xdb\x14\xd8\x09\x3c\x6d\xed\x11\xe3\xa5\xe7\x9c\xf1\xe3\x31\x20\xbe\x10\x4a\x52\x9d\xcf\xd1\x15\x15\x9d\x57\x58\x05\xee\x57\xb5\x86\x3c\x42\xbc\x2b\x9c\x00\x7b\x6b\x74\xdc\x51\xb1\xe7\x0c\x31\xaf\x70\x41\x11\x20\x63\x38\x63\x9c\x14\x4b\x75\x85\x3a\xd8\xf6\x1d\xe0\x20\x9e\x76\x1a\x24\xdb\x57\x1a\xb1\x9b\x0b\x76\x2b\xf1\xb1\x05\xdb\xa6\x96\x38\xc7\x74\x08\x36\x8b\x60\x93\x5d\x6f\x96\xd3\x1f\x30\x3e\x2a\x09\x97\x10\xa8\xe3\x94\xcb\x84\x5d\xa8\x55\x22\xe8\xcd\x53\x03\x9e\x81\x31\xa1\x35\xef\xcc\xc0\x10\xec\xdb\xa7\xad\xa0\xb7\x72\x83\xda\xb5\x53\x23\xd3\x30\xd3\xc9\x8d\xa5\xf5\x5b\xd7\x4d\xeb\xae\x06\x0f\xcd\x08\x60\x2a\xb2\x68\xa0\xa6\x16\x13\x55\xd9\xbf\x1c\x30\x98\x54\xa4\x7f\xc3\x74\x55\x1d\xc6\xb3\x72\xa2\xab\xf1\xc4\x9e\x34\x27\x75\xb8\x63\xc1\x9a\x19\xfc\xa8\x80\xa3\x72\x5e\x48\x54\x94\xa2\x55\x41\x4e\x45\x0d\xcc\xba\xc3\x38\x1a\x9f\x10\x0c\x8e\xec\x3c\x20\x11\xb2\x5c\xa7\xe8\x13\x88\x2d\x49\xc5\x4e\x8e\x1c\xaf\xc0\x55\xfe\xa1\x1a\xda\x1f\x1d\xf4\x19\x4f\x60\x9f\x19\xa1\x52\x34\xe7\xf8\xfd\xe5\x78\x06\xf8\x90\xc9\xb1\x0a\x26\x12\xa7\xe5\x0f\xc0\xe3\xb9\x4e\x7b\xec\x8c\x56\x96\x97\x51\xa7\x68\x9d\xad\x75\x6a\xfb\x62\x9c\x4d\x78\x91\xb6\x75\xb2\x7f\x79\xfe\xfd\x0f\xe7\xaf\x5f\x1f\xcc\x75\x87\x37\x3c\xf4\x92\x64\x82\xab\x2a\xef\x10\xf7\x72\x83\x08\x4c\x0c\x10\x2d\xcf\x69\x74\x70\x97\x24\x20\xd0\x50\xe8\x0c\x78\x57\x22\x4b\xe8\xd4\xf8\xa6\xa5\xa9\x29\xed\x30\x01\xa7\xc6\x6f\xd7\xf8\xc5\xd4\x61\x95\x2a\x65\x06\x16\xf0\x74\x2a\x15\x02\x22\x68\x40\xf0\x26\x05\x0b\xac\x22\x80\xbb\x81\x76\x38\xe8\x81\xcb\xc6\x41\x6b\xf0\xe7\xd4\x03\x07\xc1\x26\x9c\x3f\xec\x24\x93\xd1\x68\x27\xdc\xd0\xce\x14\x2a\x30\x81\x65\x97\xe2\x7a\x6c\xe4\x31\xd5\xc4\xcb\xaf\xca\x70\xbc\x57\x29\x2a\x62\x9b\x7f\x0b\x2e\x5d\x74\x2a\xfc\x26\x21\x30\x8b\x59\x8f\x81\xb3\xb7\xf0\x0a\xcb\x9a\xa6\x23\x4a\xb8\x99\x6b\x85\x5c\x2f\xd1\xd3\x5c\x2b\xe1\x0c\xaa\x2e\x63\x9c\xdb\x8a\xd8\x92\xef\x07\xa1\xb3\xc8\x0e\x35\xcf\x72\xea\x6b\x0a\x0c\x5b\x75\x01\xd2\xce\xb6\x03\x59\x5e\x63\x13\x9c\xdd\x50\xee\xaa\xa5\xcb\xbb\xc7\x5e\x05\x36\x18\x30\x33\x11\x5c\x90\xde\x33\x5e\xaf\xcc\xd5\x0c\x05\xb5\x1e\x63\x6f\x41\x60\x93\x86\xfd\xf8\xf6\x8a\x09\x35\xd2\x45\x02\xe8\x56\xc1\x22\xa6\x4a\x04\xab\x35\x70\x3e\x21\xe2\x59\x95\xac\x90\xe6\x06\x1d\x3f\xaa\xe4\x26\xe2\xc1\xbd\x98\x1f\xa3\x0f\xd2\x84\xdb\xe7\x98\xc7\xa6\x9d\x31\x0e\xae\x3d\xf0\x14\xc8\xed\xbe\x37\xe8\x0f\x0c\x28\xce\x28\x40\xca\x40\xad\x00\x12\xe5\xae\x81\x30\x2f\xa9\x70\x1e\xde\x06\x27\xf1\xb4\x39\x8d\x0f\x67\x46\x96\x95\xc7\x2c\x0c\xef\x97\xb0\x7a\xf1\x9a\xba\x75\x46\x75\x5b\xe8\x38\x36\x91\x4a\xc3\xee\xb8\x44\xf8\x2a\xf4\xe1\x27\xa6\x85\x17\x37\xf9\x76\xfb\x87\x25\x9e\x39\xf0\x9e\x07\xb3\xfc\x81\x1d\xbd\xa5\x66\x4a\xd7\xef\xc2\x81\xf0\x78\xe6\xbc\xac\x0f\xa3\x43\x5e\xa3\x60\x5d\x84\xd0\x06\xc1\x53\x7b\xb7\xf5\xd8\x5f\xa4\xbd\x77\xca\xb0\x96\x40\xa1\x1a\xdc\x16\xba\x10\x8d\x0a\x21\x2c\x91\x48\x64\x9f\xda\x97\x1c\x68\xd9\xa7\x46\x64\xb7\x84\x31\xec\xde\xb8\xb7\x55\xa6\x44\x01\x17\xb9\xab\x02\x4a\x33\x30\x61\xd5\x8c\xc8\x0f\xe9\x36\xb3\x23\xa7\x2d\x42\xbe\x16\x6b\x3c\x85\xbf\x8f\x8a\x12\x63\xf0\x09\x21\xf3\x42\x8c\xe4\x87\x8e\x37\xfb\x05\x51\xad\x83\x49\x1a\xb0\xaa\xbd\xac\x31\x40\x00\x9e\xbc\x6f\x7f\x7c\xfd\x57\x76\xfe\x0a\x4a\x43\xab\xb8\x71\x6a\x8c\xdc\xa1\xdd\x06\xa0\x4b\x2f\x16\xda\xce\x3a\x21\x5a\xc3\x7b\x3b\xb8\xab\x12\x71\x18\xbd\x6c\xe9\x9f\xd3\xa5\x03\x3d\x83\x6a\xc1\x8d\xc2\xcb\x38\x14\xb1\x62\x40\xdc\x4b\xf4\x74\x08\x56\x7c\x52\xa2\xd0\x04\x4c\x35\x1a\xc9\x0f\x28\x46\x78\x44\x5e\xac\x3e\x21\x69\x0c\xde\xf6\xa0\x39\x25\x2c\xf3\x2a\x13\xc6\x89\x6a\x61\xbe\x9d\xd8\x81\xa5\x2c\x2a\x95\xc4\x37\x55\x26\xd4\x38\x24\x28\xc2\x5e\x9d\x73\x23\x4c\x75\xca\xc9\x66\x82\x9d\xd3\xf0\xc8\x00\x4d\x16\x50\x7b\x07\xce\x91\x2f\x20\x80\x7a\xcb\x13\x2d\x13\x2a\x22\xf0\xd2\x27\xa1\xc5\xc9\xdd\x96\x32\x96\x3d\xba\x94\x21\x80\xe3\xd7\x05\x9c\x72\xc1\xd3\x8e\x7f\x4b\x91\x3b\x01\x15\x3b\x3e\xea\xb3\xe7\x64\xcb\xd5\x05\x7b\x76\x74\x84\xd4\x7c\x87\x38\xe1\x68\xca\xb7\x77\x80\x3d\xad\x11\x96\x78\x7d\xbb\x24\x31\xc8\xed\x48\x57\xca\xab\xf9\xf1\x6d\x91\x65\xba\x2c\x9d\x6f\x51\x8c\xc4\x89\x6a\xa8\x42\xd8\x7b\x68\xdf\xed\xd9\x6c\x36\x2f\x7e\xa3\x3b\x92\x6f\xf6\x9d\xad\xd1\x45\x51\x0e\xf3\x92\x1c\x00\x29\xcf\xc0\xae\x95\xfa\xf4\xaa\xee\x44\x34\x40\x51\x1f\x58\x56\x90\xa9\x98\xe6\x7a\x4b\xd3\xf1\x78\x5d\x4c\xfe\x33\x86\x3e\x32\x89\xf7\x51\x69\x86\x68\xf9\x84\x90\x01\x02\x5f\xbb\xdb\xdd\xc0\x2e\x05\x48\xfb\xb5\x6c\xcb\xbb\x7e\x18\x67\x8f\xef\x63\xfe\x06\x5d\xca\xc9\x0b\xf4\x46\xcc\x4c\xe4\x2f\x3c\xef\x23\x01\x57\xc8\x98\x2b\xf9\x0f\x7c\x26\xbb\x74\xf6\xff\x10\x6c\xdf\x24\x3a\x27\x4d\x2a\xb8\x0c\x1d\x44\xea\x52\x4e\x39\x87\x82\x37\x11\x3a\x0f\xe5\x19\xc1\x47\x31\x72\x33\xc8\x1c\x6a\x24\x64\x54\x4a\x5a\x80\xb1\x57\xea\x5a\x89\x8a\x1b\xab\x59\xa7\xb1\x81\x69\x2d\xdb\x1a\x95\xc5\x78\xb1\xc8\x50\x5e\xcf\x2a\xe9\xbc\x3b\xe2\xa8\x46\x9f\xfa\x86\x3a\xc5\x3d\x66\xc5\x51\x6a\x25\xa8\x65\xa7\xda\xd8\xc7\xff\x08\xf0\xe9\x49\x38\x99\xe8\xca\x88\x1b\x21\x72\xa9\xc6\xc8\x40\xd0\x26\x50\xce\x72\xb2\x0f\x23\x17\x51\x4f\x4a\xa6\x48\xf3\x47\xaf\x5f\xc8\x17\x62\xca\xba\x4f\x53\x8f\x9d\x05\x73\x20\xad\xb7\xd3\x45\x3c\xc1\x94\xa8\x1d\xf4\x17\xa4\x35\xf2\x5f\x92\xe0\x15\x02\x10\xfd\x01\xe3\x79\x9e\xcd\x30\x5f\x1d\x18\xca\x07\x7b\x89\xec\x26\xa9\x73\xf7\x6f\x44\x79\x1a\x67\xa2\x22\x66\x16\x72\x72\x92\x03\x81\x1f\x1e\xec\xc3\x86\x5e\x3e\xc8\xe0\x0f\x1e\x61\xd2\xe2\x54\xb1\xb1\xeb\x70\xb4\xe9\xd6\x48\xd1\x0f\xfc\xda\xf9\x18\xd1\x0d\x63\xef\x23\x10\x1f\xbd\x0e\xbe\xc7\xce\x4d\xb8\x69\x81\x3e\xa8\xdc\x8e\x92\x23\x9b\x48\xb9\x61\xf4\x34\xce\x70\x69\x2f\x74\x84\x4e\x75\x9a\x25\xf4\x2c\x75\x2a\x0a\xd1\x60\x98\xf6\x01\x1d\x65\x1e\x43\x9b\x40\xec\xa1\xd0\xf3\xf7\x4c\x5e\xc8\x29\x2f\xa4\xbd\x7c\x9c\x43\x9b\xdd\xcc\x4e\xf5\xce\xc2\xcd\x40\x3c\xa5\xe6\x63\x1a\x16\xa8\x15\x8f\x7a\x53\xe6\x10\x1e\x87\xe6\x2b\xa0\xdd\xe6\x97\x91\x27\xf9\x1a\xeb\x86\xe6\x91\xd8\x25\x05\xbf\xa1\xf5\xc3\x77\x0d\xe4\x83\x53\xf3\xab\x1c\xc5\x8a\x45\xa6\x96\x66\xf4\x0e\x3a\x0e\x10\x9c\xee\x60\x2f\x14\x45\x88\xdf\xf8\x27\x32\xb7\x27\x5c\x69\x05\x8e\xb3\xf5\xe4\x07\x3d\xf6\xa3\x2e\x6b\x96\x46\x5e\x88\x9a\xf4\x36\x14\x0c\xb8\x3c\xbd\xd1\xc2\xa8\xba\x91\x4c\xa7\x6b\xa2\x1b\x3e\xcd\xb4\xf1\x3e\xc8\x5e\xc4\x45\xa5\xa0\x95\x50\x9c\x02\x80\xb3\x17\x3f\x5e\xfe\xef\xd7\x67\xdf\xbd\x7c\xbd\x93\xc5\xf6\xe3\xdb\x06\x3e\xfc\x4e\x89\xe2\x9d\x00\x21\x7c\x75\x36\xd9\xd7\x14\x17\xe7\xe6\x48\x50\xc0\xc4\xd7\x23\x8f\xb5\xf3\x11\x3b\x7b\xfd\xda\x97\x8b\x1f\xa8\xe0\x5a\x08\xaf\x08\xd2\x76\xd4\xd5\x5b\x8e\x6c\x0d\x58\xe3\xf8\xad\x11\xd4\x10\xd1\xb5\x12\xb3\x6d\x7a\x6e\x73\xe5\x14\x26\xb1\x72\x02\x3a\x20\x57\x73\x1d\x3c\xaf\x5d\x4d\x10\x81\x9d\x52\x0f\xbf\x8c\x5c\x96\xc0\xad\xa9\x12\xce\xcd\x27\xb8\x2d\x05\xa7\x70\xad\x44\x70\x35\x09\x8d\x3c\x38\xc7\x7e\x5b\x5b\xc9\x5d\xbd\x58\x6b\x71\x49\x95\x4c\x77\xf5\xc4\xdd\xcc\x11\xf6\x4c\x39\x57\x53\x3c\x7b\x14\x00\x56\xcb\x42\xf5\x18\x8e\xb0\x6f\xa2\x80\x06\xc8\xee\x96\x97\x72\x2a\x4d\x89\xb9\x91\x9c\x2f\x69\x87\x2a\x40\x9b\xe0\x93\x1c\x5e\x3f\x77\x20\x1e\x06\x0f\x20\xad\x62\x17\x00\x5d\xb4\xc4\xe0\x7a\x83\x64\x05\x49\x9a\x04\x4a\x0a\x26\x44\x14\xd5\x62\x2e\xd6\x73\xbe\xbd\xc2\xf4\x98\xc1\x22\x86\xbe\x44\xa8\xd7\x01\xcd\x73\x52\x65\xbc\x58\x3e\xb2\x75\x2d\x9b\x1b\xba\x0f\xff\xa6\xdd\x7e\x2f\xff\x9b\xba\xfd\x46\x94\xb2\x5c\x64\x39\x91\xde\x9f\xbf\x70\x97\x38\x09\x82\x96\x83\x4b\xf2\xc7\xc0\xab\x18\x19\x41\xc3\xa8\xec\xac\xf3\xe1\x81\x10\xb4\x27\x75\x5b\xa5\x56\xcc\x54\x49\x22\x8c\x19\x55\x59\x10\xd2\x40\xb6\xf7\x9b\x3e\xb2\x4e\x3a\x2b\x76\xa9\xdd\xe1\xd6\x8a\x5d\xbc\xbf\x8a\x5d\x07\xd6\x3d\x0f\xf7\x11\xe6\x2a\xb9\x76\x92\x90\xdd\xbb\xb6\x35\xae\x98\x25\x4e\x61\xb5\x82\xc1\xe2\x29\x14\x5a\x1c\x15\x2a\x11\xe8\xdd\x98\x89\x12\x02\x96\x68\x9e\x33\x50\x62\xde\xa9\xe0\x89\x04\x12\x62\xed\x1b\xcf\x4d\x48\xb2\xf0\x1e\x3b\xb8\x39\x48\x9d\xe7\x33\x15\x74\xc8\x20\x4a\x3e\x3b\x5d\x94\xee\x3a\xcc\x68\x8a\x8b\x81\x55\x8e\x1a\xc0\xe7\xe2\x6e\x3d\xb7\xe7\xbd\xc7\x51\xf5\xb9\xc5\x11\x02\x33\x31\x10\xd9\xd9\xf9\x57\x74\x4f\x89\x57\x3a\xec\xec\xc7\x17\x2e\xd6\x0d\x44\x3f\xaf\x17\x1d\xec\x85\x2c\x0e\xae\xd1\x38\x27\x4b\x14\x16\x85\x15\x83\xec\x33\x67\xb5\xba\x11\xb3\x2e\xe5\xe9\x03\x77\x35\x34\x46\x92\x77\x81\xdb\x14\xf0\x81\x6c\x43\x71\x6a\x23\xc8\x0d\xd3\x63\x57\xba\x11\x2c\xe4\x8d\xca\xf6\xa5\x6f\x40\xe0\xb7\xdd\x0e\xf6\x62\x1b\x8d\x8e\xa6\xd6\x41\x8b\xc6\x9d\x34\x82\x3d\x3d\x3e\x66\xfb\xef\x15\x59\x66\xc0\x4c\xf0\x52\x95\xb2\x9c\x1d\xb4\xe4\x37\x69\x5d\x8e\xa5\x09\x60\x82\x98\xb7\xee\x3a\x34\x88\x01\xf2\xa8\x4f\xaf\xb6\x5a\x7c\x5c\x6b\x54\xeb\x66\x64\x6a\xee\xc7\xcf\x3a\xdf\xd1\xba\x9a\x84\x55\x93\x7a\x8c\x27\xf4\x7a\x37\xdd\x4e\x47\x7a\x9f\xfb\xa1\x3d\xb2\x3b\x62\x71\xcd\xbd\xd5\x5c\x96\xc6\xd4\xe9\xd3\x0e\x63\xbf\x2f\x00\xc2\x7b\xf1\xbd\x03\xbf\x93\x09\x16\x8d\x3f\xa5\x66\x63\x79\x2b\xf0\x79\x98\x14\xa2\x8c\x1c\x3b\xc1\x1f\x9f\x8e\x5c\x24\x39\x5d\x9c\x5d\x3d\xff\xb3\xd7\x09\x0d\x75\x1a\x83\x33\xdd\x7f\x0a\x0b\x72\x45\xcd\x4d\x25\x2e\xe7\xaf\xbb\xf9\xfc\x4e\x2a\x7a\x4c\xec\xa3\x0a\x81\x5c\x8a\x44\x87\x89\x32\xe9\x1d\x34\x13\x3f\xad\xbe\xd5\x36\x8c\x52\xac\xc1\x37\x95\xbc\x18\x8b\xd2\xe7\xb2\x9e\xdf\x3a\x3b\x3b\x3b\xad\xfd\xbe\x3f\x7f\xf1\xe9\x22\xd1\x16\x27\xa1\x5f\xbc\xce\x0b\xeb\xb0\x89\xc8\x72\x13\x9b\xcc\x6a\xaf\xd4\x48\x96\xe5\x58\xd9\x2b\x91\x9d\x5a\xdc\x5e\x97\x1d\x12\x82\x40\x74\x52\x51\x6b\xd0\x45\xa8\x31\xad\x23\x4a\x2c\x46\x25\x68\x9b\x53\xdb\xbc\xae\x26\x82\x41\x1f\xa0\x50\x41\x0d\xa0\x7b\xe5\xd9\x57\x38\xda\x49\x10\x9f\xee\xfc\x02\x2e\x7e\x39\xae\x0a\xc1\x5c\x0a\xec\x35\x26\xb7\x4d\x32\xdf\x98\xdc\xab\x64\x36\xea\xda\x29\x12\x9c\xed\xdc\x54\x12\x1d\x14\xf1\xb9\xec\x56\x07\xdd\xf7\x11\xb2\xca\x4e\x80\x0f\xf5\x2d\xd2\x80\xac\x1c\xa4\x7c\xe0\x6c\xa2\x4d\x89\x76\x05\xf7\xd7\x69\xae\x8b\xb2\x63\x09\xa1\x2d\x39\xe0\xe3\x8e\xf1\xc9\xa2\x95\x5b\x48\x8f\xdd\x73\xec\xcb\x66\xf2\xe4\xf9\x18\x67\xc0\xd3\x80\xe7\x30\x19\xa6\xc3\xd3\xce\xbe\xe1\x68\xe9\x53\xad\x9e\x94\xae\x04\x22\x48\xac\x0f\x0a\xf6\x25\xad\xee\xa7\x4b\xab\x9b\xe8\x74\x95\xc0\x76\x59\x8d\xc7\xe8\x1c\xfc\xe7\xab\xab\x0b\xb7\xc8\xb6\x62\x78\xe0\x23\xee\x4a\x87\x1d\xf9\x44\xa7\x62\x69\x78\xfe\xc9\xf1\x56\x2e\xdb\x90\x88\x7f\x87\x8e\xda\xb8\xbd\x5f\x50\xbb\xcb\x4c\xd4\x2f\x3f\x90\xd5\x08\xd1\x55\x8c\xd1\x89\x04\x45\x82\xd7\x48\x63\x32\xec\x1e\x43\x5f\x40\x4a\xe7\x1e\xe5\x60\x97\xa5\xb1\x2f\x1f\x04\x96\x84\x96\xb0\xdb\xa6\xe7\xb6\x77\x10\x72\x2a\x1f\xe8\xd1\x7b\xea\xb4\x06\x54\x24\x1a\xde\xec\x88\xa3\x36\x73\xc7\x40\x7c\x48\x44\x5e\xba\x14\x81\x88\xf2\x49\x7a\x0f\x1a\xde\x92\xf0\xce\x2f\x09\x63\x3f\xc9\x03\xca\x25\x50\x5f\xe5\x61\x32\xa9\xa6\x5c\x75\x0b\xc1\x53\xb8\xeb\xa2\xdf\xbd\xdf\x53\x94\xf3\x1e\xb6\x15\xc9\xa1\x5b\x5c\xcb\xde\xc5\x76\x77\x27\xcf\xe3\x44\x2d\x3b\x74\x97\x25\x57\x29\x2f\x52\x02\x06\xf2\xf1\x73\x8f\xb8\x80\x0b\xcc\x23\x90\xf7\x7e\xd5\x1a\xd1\xf4\x17\xae\xd2\xdd\x64\xd6\x58\x1b\x0a\x4c\xa2\x30\x6c\x2e\xb3\xaa\x10\x00\x5e\x6b\x97\xb2\x25\x6f\x35\xda\x65\x63\x25\x59\xac\xbc\x8b\x30\xa0\xce\x9c\xdf\x58\x92\xf1\x02\xc5\x72\xae\x90\x9f\xd3\x3e\x01\x7e\x3e\xac\xec\x55\x2e\x90\xc5\xe8\x5b\x51\x14\x32\xb5\x9c\x6b\x1b\x51\xae\x29\x5a\x2c\x58\x60\xbf\x47\xa3\x38\xaf\x1e\x7b\x0b\xf0\x5c\xa7\x6c\xb0\x77\x89\x7a\xe0\xc1\x9e\x95\xbd\x22\xa2\x3c\xf8\x2e\x30\xb9\x48\xc0\xf0\x40\x33\xd9\xcd\xb3\xc5\x7f\xff\x50\xa9\x53\x2f\x5b\x46\xbb\x08\x4c\xde\x09\x94\xdb\x0a\x8e\xcf\x79\x65\x96\x29\x9a\xa3\x52\xee\xcd\x4f\x18\x65\xb5\x6d\x3a\xb4\x8f\x0a\xf0\xe5\x90\xd4\x30\x1b\xe1\x32\xc7\x60\x6f\x09\x37\xc2\x90\xcf\x4d\x95\x95\x32\xcf\x04\x62\x64\xa1\x87\x80\x50\x89\xae\xac\x68\x26\xd6\xd1\x0c\xc3\x6d\xbb\xc6\x1b\x89\x80\xd4\xdb\x00\x45\x00\x77\x8c\xa3\x43\x9a\x3d\x94\x30\x96\x0e\xe3\xe8\x94\x04\x37\xad\xbd\x9a\x00\x76\xa1\x81\xc3\xf4\x06\xae\x38\x08\xaa\x66\xa9\x46\x88\x8a\x5c\x9b\x72\x24\x3f\x30\x17\xa2\x0b\xb2\x95\x42\xb9\x8b\x97\xb8\x81\xad\x28\x79\x56\x14\x7c\x86\x53\xfe\x87\x28\x74\x17\x50\xcc\xed\x1d\xc7\xbc\x1f\xd8\x8c\xf1\x3c\x17\xbc\xa8\x99\xbd\x31\x40\x36\x06\x5d\x84\xc1\x1b\x96\x56\x02\xdf\x77\x50\x7b\xc2\x6f\x2d\xb1\x1b\x14\xee\xb1\xb7\x24\x95\x20\xb4\x3d\x06\x12\x99\xd3\x81\x62\x6c\x00\xda\xa5\xc1\x1e\xb9\x5f\x20\xc5\xfc\x97\xee\x55\x8b\x70\x1b\x9e\x84\x58\x11\xcc\xec\x3f\x1f\xfd\xd2\x5b\xa3\x05\xf4\xaa\xc7\xc1\x7b\xbf\x01\x6a\x62\x1b\x7c\x8e\xdd\x5d\xb4\x18\xeb\x40\x1f\x80\x5e\x3d\x16\xcb\x74\x3e\x9e\xc2\x45\xa4\x72\xd3\x45\x74\x6c\x2b\xd6\xf1\x74\xa1\xfa\x78\x39\xba\xdb\x4e\xae\xa0\x45\xe3\xdf\xfa\xa6\xf9\x74\xda\x9d\x9a\x28\xbf\x8a\x27\x51\x39\x07\x73\x8b\x40\x85\xde\xc5\x95\x05\xb6\x81\x67\xfd\xcd\xd9\x5f\xa3\xb8\xff\x38\x08\x5a\x3b\xc6\x16\x57\x6f\xe1\x6e\x11\xf0\xdd\x15\xb8\x49\xc3\x6d\xec\xd9\x0b\x67\x97\x31\x72\xa5\x7f\xde\xde\x81\x8b\xa6\x3f\xfe\xde\x1c\x02\x31\xb3\x35\xd7\x03\x8a\x51\x8f\x5d\x3b\x09\xd5\xcd\xeb\x72\xfc\x23\xc0\x41\x9d\x80\xcf\x97\x6f\xbd\x13\x03\x10\x70\x63\xaa\x29\x71\x3a\x08\xba\x71\xa5\xdc\x76\x86\x0d\x61\xf9\x33\xf8\x26\x74\xbc\x57\xa7\xeb\x64\x1d\x6d\x15\x30\xa0\x75\x34\x55\xc8\xa9\x08\x82\xd5\xa1\x51\x20\xd8\x25\x2d\x64\xdb\x8b\x0c\x49\xea\x48\x8d\x37\x4a\x70\x2f\x8b\x7f\x45\xae\xe9\x56\x12\xdb\x14\x29\x71\xc8\x07\xf7\x0d\x8a\x2f\xd3\xa8\xd1\x8d\xdd\x38\x9d\x64\xb0\x8a\x9c\x94\x60\xc0\xaf\x68\xf3\x7a\x6b\xa3\x25\x49\x89\x31\xd1\xb6\xe0\x5a\x6b\x3c\x2a\xed\x00\x6d\xb1\x1d\x8c\x8f\xbd\x55\xe8\x61\x1a\xbc\x00\xf0\x41\x0e\x61\x2d\x71\x18\x9f\x8b\x7e\xf6\x5d\xd8\xa7\xed\xe7\xfd\x50\x5c\xc3\xd2\xe6\x81\x38\xee\x4d\x4a\xb6\x7f\x17\x50\x2a\x91\x67\x22\xd2\x3b\x34\x4f\xea\x63\xd4\x9f\x7a\x3c\xa9\x83\xad\x6e\xb5\xb2\x98\x41\xf0\xc8\x7a\x78\x06\xe7\xa3\x10\x3c\xd2\x89\xa3\x52\x3c\xbe\x41\x1c\xc8\xe9\x5f\x59\x01\x64\x05\x61\x5a\xd2\x1e\xbb\xb4\xfb\x84\xc4\x49\xd4\x40\x60\x60\x4b\xac\x6d\x40\x17\x2f\x7e\x03\x76\x1d\x9e\x81\x1a\xb0\x14\x8c\x83\x13\x19\xeb\x46\x5e\xa6\xd4\x50\x59\x17\x02\x7c\x9b\x13\x7d\x87\x31\xe8\xa5\x86\x70\x40\x3f\x4a\x7e\xe3\x74\x26\xcd\xe6\x77\xae\x4c\xdb\xd0\xfa\x89\xfb\xa5\xb7\x70\x23\x04\x5c\x82\x05\x9b\xe1\x5f\xd7\xaf\x66\x05\x5a\x94\x03\x8a\xe2\xec\xae\xb0\x72\x77\xc1\x38\xb8\x69\x60\xe0\x3d\x62\x46\x01\x4d\x4c\x95\xe7\xba\x28\xed\x53\xbb\x28\x30\x56\xbc\x30\x13\xc8\x25\x6d\x37\xc2\x5f\xcf\xde\xbc\x86\x1b\xd8\xbe\x18\x7a\x8c\xfd\x05\x5b\x43\x51\xdf\x5b\x4c\x47\x90\x79\x43\xcd\xdc\xca\x8c\x20\x1a\x16\xc0\x85\x26\x3a\x8d\x50\xa1\xe1\x20\xe4\x3c\xb9\xe1\x63\x7b\xec\x47\xa2\x30\x8f\x06\x4d\xf5\x17\xc8\xde\x70\xbb\x3c\xfd\x00\xfc\x5e\x47\xb4\xa7\xbd\x04\x99\x62\x51\x3e\x06\x87\xcc\x88\x31\xaf\x21\x55\xd0\x3a\xdf\x4b\x55\x55\x54\x0a\x56\xef\x1d\xbf\x7b\xe9\x72\xc7\x2e\xd5\x54\xbd\x75\x4e\xcf\xf6\x49\xf4\x7b\x2b\x3e\x3b\xc0\xc2\xb3\x34\xc5\x08\xbe\x37\xe4\xf1\x79\x8a\xb1\x2a\xe2\x0e\x63\xbc\xea\xd1\xdb\xbd\x66\x75\x4c\x97\x46\x95\x5a\x2a\x30\x39\x9d\x8a\xd4\x72\xf0\xcc\x47\xad\xbb\x08\xf1\xb9\xc6\x5e\x5a\xb6\x74\xca\x7e\x1f\xac\x3a\x85\xb0\xb7\x18\xe8\xa3\xff\x44\x76\x1b\xb8\x95\x80\x5f\x41\x98\xa4\x11\xca\xc0\x73\xad\x6e\xaa\xb4\x57\x9e\xf8\x50\x2e\x50\x1e\x97\x2d\xb0\x8e\xf7\xb5\x90\x41\xfd\xce\xdc\x3a\xaf\x32\x8a\x3d\xb8\xc2\x25\xda\xec\x6b\x29\x5d\x3a\x2b\x7a\xe1\x29\xb9\x4b\x2d\x4d\xa3\xf7\x19\xf7\xba\x71\x4e\x7d\xd7\x35\xc1\x29\xac\x4e\x96\xf9\x60\x93\xdf\xed\x08\x36\x26\x44\x2e\x43\xa6\xea\xc7\x25\xc0\x6e\x7b\xde\x62\xe2\x9f\x6e\xed\x77\xdd\xf7\xe6\x93\xcf\x17\xa4\x25\xdf\xfd\x54\xef\xd5\xd3\x23\x4f\xcc\x76\x77\xbc\x49\x77\x55\x39\xc1\x5c\x0c\x8f\xbf\x87\x76\xdc\xf5\xc6\x94\x5e\x3b\xcd\xf0\x43\xcc\x7c\x87\x3d\x6f\x31\x71\x6d\x12\x10\xa1\x1f\x6d\xbe\xf7\xef\xf0\xf8\x93\x4c\xf3\x78\xd3\x03\x35\x04\x77\xce\x47\x21\xeb\x7d\xbb\xda\x94\xa0\xf7\xec\xef\x78\xe3\xcc\xc8\x89\x7d\xa9\x8c\x30\x73\xcf\xa3\x1e\xd0\xdd\x76\xbc\x29\x9d\x13\xad\x8b\x94\xf0\xd9\x1e\x77\xda\x3b\xed\x78\xd3\x69\xa7\x2e\x99\xed\xfd\xbb\xde\x78\xa7\xed\xb0\xef\x4d\xa7\x0d\xef\xf6\xc7\xdd\xde\xbb\xea\x72\xe3\xa9\x7a\x69\xf9\x11\x3b\x1d\x65\xfa\x8e\x62\x4e\x7a\x1e\xa8\xf8\x13\x6c\xb1\x07\x1a\xc7\xa6\xe4\x90\x53\x3e\x16\xb9\xce\x64\xf2\x29\xce\x99\x73\x03\xfd\xa4\x2b\x41\x68\x94\x52\x8d\x1f\xf5\xd4\xed\xb2\xdb\x4d\x57\x5d\xe9\x54\x3c\xee\x64\x77\xd2\xe1\xe6\x4b\xbb\x93\x6e\x37\xa5\x2e\x1e\xa7\x47\xec\xb0\x18\xf2\xa4\xf7\xe9\xde\x2f\x0f\xd1\xfd\xc6\x4b\xfd\x10\x83\xd8\x74\x1d\x4c\x32\x11\x69\x95\x3d\x36\x27\xd9\x65\xb7\x1b\xd3\x7d\x97\x9d\x6f\x4c\xef\x52\x17\x7c\xfc\xb8\x9c\x6c\x67\x7d\x6e\x4e\xe9\x5d\xf5\xdc\x24\x33\xfd\xb5\x9e\x07\x63\xab\x55\x67\xb1\x81\x2a\x2e\x16\xa7\xa6\x98\xe8\x2c\x65\x41\x00\x64\x52\x05\xc0\x56\x1a\x2c\xa2\x0d\x5c\x69\xe6\x32\x3f\x76\xd0\x98\xe2\xf2\x6b\xa1\x41\x70\xc2\x0d\xab\x75\xc2\x0d\xb8\x0c\x82\x7b\x8e\x54\x6c\xa6\xab\xc2\x37\xdd\x89\xc3\x5c\x20\x77\x09\xfa\xeb\x38\xcb\x13\x15\xf7\xd1\x29\x58\xa6\xc7\xfe\xaa\x2b\xc4\xe5\x74\x10\x6c\xa8\xed\x14\x05\x96\x77\x89\x73\xf3\xac\x1a\x4b\x0c\x08\xc0\xc1\x1f\x1e\xb2\x73\xd7\x16\x99\x11\x4f\x71\x64\x6f\x66\x67\x17\xe7\xd4\x2d\xf6\xc2\xfe\x39\x50\x83\xd2\x91\xf7\x6a\x96\x0b\xc8\x38\x73\xfd\x37\xa3\xd5\xe9\x60\xaf\x23\x55\x26\x95\x18\xec\x5d\xdb\x62\x6f\x66\x17\xd8\x97\x2b\x4f\x4d\xb9\xd2\x53\xfa\x1d\x8a\xff\x8a\x5d\xe2\x37\x67\xb5\xee\xce\xd0\x25\xd1\xc5\x1e\xb8\xea\x1c\xbf\xc6\xda\x34\x91\x97\x1f\x1e\x65\x22\xb5\xb5\x7c\xc0\xe9\xbc\x45\x8f\xc8\x3b\x59\x08\x74\x7a\x00\x1f\x53\x70\x0d\xcb\xb4\xbe\x01\x9f\x97\x72\x82\x09\x92\x6f\x70\xff\x9d\x62\x27\x03\x38\x6d\x83\xbd\xd3\xc1\x5e\x34\xf9\xc1\x5e\x07\x7f\x0c\x81\x58\x50\xe4\xb6\xef\x7f\x09\xb3\x70\x2d\xc5\x6d\xd1\x7c\x5c\xe9\x32\x1a\xf6\xe9\x60\x6f\xa4\x35\xfd\xf2\x6b\x87\x26\x71\xa9\xd1\xb3\x8d\xd2\x7f\x7c\xcb\x5e\x08\x8c\x27\x02\x27\x4f\x70\xf6\xb2\xf3\x67\xba\x60\x33\x3e\x05\xe0\xf8\x4a\x91\xb9\xdc\xb9\xdf\x81\x43\xad\x0b\xc8\x01\xfc\xfc\xda\x79\x89\x57\xb7\xc7\xae\x10\x5e\x08\x5a\x06\x87\x06\x7e\x87\x54\x23\x3c\x31\xc8\xf9\x83\x58\x65\x4a\x97\xac\x52\x76\xa7\xb8\x74\x5e\x98\xcd\xb8\x14\x00\xee\x0f\xd1\x36\xf9\x8c\xed\x63\x6e\xe0\xfc\x66\x7c\x88\xa1\x63\x96\x6c\x07\x01\xc8\x7f\xee\x20\x42\x8a\x04\xdc\x29\x6e\x1f\x3e\x31\x0e\x5b\xe1\x32\x99\x88\x29\xc2\xe0\x86\xd6\xd8\xa8\x52\x49\x49\x3c\xc6\x94\x1c\x22\x8b\x91\x75\xc0\x62\xe3\x28\xc3\x0e\xa0\xcc\x45\x52\xd5\xb8\x4a\x87\x95\x55\x41\x89\x64\xc3\xf0\x9c\x0f\x82\x83\x5f\x9a\xe5\xce\xff\xaf\xd4\x85\x2f\x0c\x45\x1d\x0d\xf7\xaf\xde\xbe\x78\x7b\xea\x40\xf1\x13\x6e\x00\x8c\x69\x0e\x25\x1d\xa3\xec\x5c\xfe\x5d\x6a\xd8\x9f\x91\xf7\xf4\x7d\x03\x4f\x2c\x71\xb0\x43\x34\x02\x91\xf6\x0e\xe6\x1d\x12\x36\x71\xe1\xa8\x4a\x99\xf5\xa4\x2a\x4d\x59\xf4\xce\x55\xf9\xb6\xc0\x74\xad\x4b\xf8\x7d\x54\x8a\x72\xe0\x40\x04\xba\x03\xa6\x02\xb6\xcf\x15\x03\x87\x1b\x86\xe0\xdd\x50\xb8\xc7\xd8\x5f\x30\x59\x34\x12\x1f\xd6\x42\x17\xe8\xd0\x41\x9b\x16\x9c\x3c\x00\x22\x53\x45\xdf\x00\xf6\x6f\xee\xf0\xd1\x35\x64\xb6\x36\xd5\x54\x38\xc8\x2c\x45\xe6\x78\xe7\x4f\x0c\x30\x37\x98\x3e\xda\xde\x43\x90\xa2\x6b\x54\x4f\xec\x00\x9d\xe3\x25\xe3\x47\xce\x13\x88\x03\xe3\x04\x90\x59\x10\x2a\x6d\xab\x3b\x88\x54\x65\x57\x17\x5d\x32\xd2\xcf\xad\xc0\x26\x2e\x21\x2e\xe9\xe2\xb9\x1a\xe9\xa5\x64\x1f\xe9\x80\x41\x43\x95\x10\x99\xdc\x7b\xd1\xf6\xc0\x65\xea\x4e\x3c\xc9\x32\x76\xc7\x29\xd8\x5a\x1a\xe7\xd5\x86\x29\x78\xa3\xe2\xab\xbd\x44\x86\x95\xcc\xd2\x17\xbc\x5c\xdf\x4d\x21\x08\x25\x7b\x89\x9e\xe6\xb2\x05\x4e\x64\x2d\x14\x61\x59\x3e\xd7\xd3\xa9\x9c\xf3\x50\x59\xb3\xf2\x55\x21\xc4\x65\xb9\xe5\xc0\xc7\xb2\x5c\x10\x69\xbb\x56\x6d\x7d\x8f\xca\x53\xfe\x37\xbd\x15\xc1\xa6\x52\x6d\x57\x31\xcf\x78\x69\xb7\xc4\xae\x1d\x51\x70\x26\x73\x23\x6c\x27\x73\xeb\xca\x2f\x5a\xd1\x4e\xdb\xfe\x6c\x5d\x80\xb6\xcd\xd8\x36\x75\x27\x1f\x6f\xc2\x4a\x6f\xaa\xa1\xe8\xf2\xf1\xb8\x10\x63\x5e\xea\x22\xb8\x77\x35\x4d\xe5\xb7\xfd\xde\xd9\xc5\xf9\x25\x62\x24\x2f\x39\xe1\xa1\x50\xc3\xdd\x0b\x7d\xe8\xe7\x60\xed\xbe\xb7\xcf\x86\x9f\x5c\xca\xd6\x1a\xf2\xec\xc0\x3d\x07\x7a\xf0\xb6\x18\xec\x7d\x09\x2f\xff\xac\xc3\xcb\xbf\x44\x11\x7f\xa2\x28\xe2\x9d\x07\xec\x46\xe9\x46\x5b\xbb\x34\xb9\x48\x36\xea\x6e\x3b\x36\x73\x69\xbb\xe9\x2c\xd9\x4e\xb6\x40\x94\xc4\x2b\x8a\xc4\x81\xec\x7d\xda\xa5\x49\x00\x8c\x67\x58\x23\xfa\x86\x72\x55\x20\x53\xda\x24\xa6\xf5\x21\x66\xd9\x12\xc4\xd9\x1e\x3a\xeb\x67\x9a\x8a\x42\x22\x02\x64\x4b\x64\xe5\xd9\xc5\xf9\xfc\xc4\xe6\xae\xbb\x87\xf3\x9c\xdc\xc4\xc9\x2a\xba\x52\xd6\xd2\x7a\x2d\x53\x01\x6d\x47\xfd\xe7\x0e\xd9\x69\xad\x3b\xcd\x97\xf6\xde\xee\xa6\xee\xac\x8b\xf4\x77\x37\x20\xa6\x59\x0b\x97\x1d\x70\xa3\xd5\x97\x58\xc6\x4d\x79\x55\x70\x65\xa0\xab\xab\x47\x4e\xfa\xfc\x9a\x9b\x12\x3d\xca\x09\x7b\x99\x66\x5c\xfa\x11\x39\x80\x41\xad\x7c\x00\x09\x80\x51\x80\x4f\xf1\xa2\x0c\xe2\x6b\x85\x60\xfe\xb9\x1e\x80\x49\x95\xe2\x94\x27\x3e\x06\x0c\xb6\x7b\x06\x63\xf5\x03\x7b\xa8\xd8\xca\xf7\x00\x7d\xda\xb1\x13\xee\xde\xe9\x22\xed\x84\xbb\xc1\xa1\x6b\xb8\x84\x50\x9e\x5e\x4f\xcc\x0e\x46\xb7\x49\x60\xbd\x34\x73\x50\x10\xd1\x70\xe0\x92\xb3\x37\xdc\x15\x80\x1e\xbe\xe2\x99\x11\x1d\x46\x2f\xf4\x6d\x52\x91\xaf\x4e\xe6\x1f\xa7\xf1\x77\x51\x88\xf5\x31\xad\xd9\xed\x9a\xb2\x7a\xd3\x69\x9c\x88\xf7\x78\x62\xf1\x6b\x69\x96\x05\x41\xd4\x0b\xa2\x18\x94\x11\x8c\x7b\xc4\x34\xbe\x60\x29\xfd\x2b\x08\xbb\x6d\x91\xa1\x5b\x85\x8b\x6e\xf9\x02\x8b\x7a\xd8\x38\x76\xf4\x8b\xa0\xfe\x5b\x11\xd4\x3d\xb2\xce\xc6\xcc\x12\xb7\xea\x2a\xde\xf8\xc9\xc5\x42\x60\xa9\x9f\x48\x34\xbc\xac\xbf\x72\x16\xb3\xf3\xdd\x3c\x43\x28\x89\x36\x6c\x5b\xc8\x3f\x87\x21\x84\x18\xec\x0a\x60\xdd\x33\x5d\x41\x80\xa0\xcb\xad\x98\x4a\xc4\x4f\x8e\xfc\x3e\x2d\x4f\xc7\x3f\xd7\x53\x8d\x26\xfc\xbb\x4a\xa5\xd9\xaa\xab\xfc\xf9\x19\x16\x43\x96\x70\xf1\xf2\x0d\x40\xb0\xa4\x22\x65\xcf\xcf\xd8\x10\x7f\x8a\x8c\x15\x51\xf2\x2e\xca\xef\x27\xea\x2f\x93\x27\x08\xe1\x08\x50\x2f\x61\xf0\x00\x45\x51\xa9\x28\xca\x97\xf2\xd0\x96\x45\x65\x4a\x56\x68\x5d\x1a\x07\x11\x12\x92\xf7\x5b\x8a\xd8\xde\x16\x46\xcd\x0e\x67\xa5\x58\x7a\x5a\x6b\xbf\xd5\x76\xba\xbd\x9e\xbb\x9e\xa3\x96\x7a\x2a\x93\xed\xc3\xf1\x41\xd5\xe5\x04\x22\x4b\x0b\x8c\xcd\x07\x45\x7d\x84\x6a\x09\x48\x94\x5b\xb0\x17\x68\xed\xa2\x90\xba\x90\xe5\xec\x8d\x54\x72\x5a\xcd\xa9\x43\xdb\x46\x14\x57\x51\xd5\xd4\x0d\x30\xa7\xaf\x71\x68\x38\x54\xba\xf2\x21\x13\x07\x2f\x59\x26\xb8\x29\x7b\xec\xcf\x72\x3c\x11\x45\xa8\x30\x15\x5c\x45\xc1\xa9\x63\x37\xed\x1c\x70\x95\x8b\x7a\xbe\x0f\x6d\x67\x9c\xe9\xbb\xb8\x01\xad\xec\xdd\xff\xa3\x76\xda\x7e\x8c\x55\x74\xe6\x76\x2f\xa5\x60\xc3\x53\x39\x9e\xb8\xb4\x82\x33\x08\x27\x65\x13\x1c\x50\xeb\xec\x28\x53\x87\xa9\x00\x26\xc3\xa5\xfa\x9a\xe8\xcc\x0d\x74\x2c\x40\x5f\x39\xa9\x4f\xca\x25\xb2\x94\x53\x5e\xcc\x98\xd1\x05\xc8\x6f\x43\x6e\x20\xcd\xe1\x7c\x57\xd3\x0a\x32\xb9\xa6\xc2\x4e\x17\xda\x32\xa5\x4b\x10\x58\x6a\x98\xb0\x29\xd9\xfe\xf1\x91\x8b\xe3\xec\x1f\x1d\xb8\x34\x65\x56\x3e\x6e\xed\x05\x63\xc5\xf3\x09\x1f\x0a\xc8\x79\x05\x29\x61\x79\x21\x4d\xc0\x77\x51\x11\xe0\xb6\x13\xd8\xd8\xfe\x6d\xbf\x37\xe4\x85\xeb\xea\xb6\xdf\x1b\x69\x7d\xc0\xfe\x22\x9e\xa4\x21\x28\xb4\x61\x49\x3e\x65\xbf\x27\x16\xcd\xf6\x09\x5b\x30\xb8\x41\x1c\xd8\xd5\xef\xff\xf1\xe8\xe8\x08\x98\xda\x05\xe7\x97\xc2\xb0\xfd\xb7\xb9\x50\x97\x13\x39\x2a\x3b\xec\x85\x90\xb6\x14\x64\x73\xf2\x51\xa7\x64\x80\x25\x53\xe3\xf1\xd1\xd1\x91\x59\x74\x66\xb7\x8d\x74\x97\xca\x88\xa4\x2a\xc4\xe5\x8d\xcc\xaf\x5e\x5f\xfe\x64\xb9\xe1\x6c\x15\xb0\x40\x5b\x1d\xc7\x5c\x0d\xbb\x7a\x7d\xb9\x90\xc3\x52\xda\xb3\x79\xa6\x1e\x9d\xe7\x90\x58\xcf\x94\x85\x56\xe3\x0c\xda\x4e\x74\x55\x70\xc8\x64\x03\x5e\x1b\x01\x49\x17\x68\x13\xf8\x2d\x26\x0e\xdd\x06\x73\xde\xcc\xe9\xea\xd9\x4e\x85\x51\xba\xfc\x42\x12\x8a\xa5\x1a\x2c\x7a\xdc\x10\xb8\xac\x03\xdb\x8f\x72\xe1\xd8\x5f\x3d\xc4\x68\xb8\x29\x7a\x8c\x9d\x13\x1a\x43\x20\x33\xa4\xfc\xb0\x97\x23\x7b\xfa\xf4\xc4\xa7\x7f\x8e\xfa\x80\x84\xd8\x08\x03\x4c\xcc\x48\xb0\x09\x57\x69\xe6\x92\x31\xd7\x58\xb0\x33\xc1\x4b\x83\x85\x44\x0a\x97\x76\x96\xcd\xf0\xd4\xd5\x96\x52\x00\x14\x2e\x25\x75\x91\xd3\xdc\x2e\xa7\xc8\x2c\xbd\xfc\x74\x94\xdd\xc6\x19\xb5\x55\xb0\x64\xc2\xa5\xa2\xbd\xef\x51\xc3\x17\xa8\x49\x6e\xd7\x7a\xcf\xfd\x14\x06\xec\x26\x12\xd2\x17\x36\x2e\x92\x1e\x63\xaf\x62\xb3\x31\xba\x7a\x6c\x7e\xbd\x50\x07\x8e\xc9\xad\x37\x42\x57\xda\xa5\x4f\xc0\xf1\xfa\x9c\xd0\x8e\x93\xc7\x13\x90\xca\xc8\x14\x78\x98\x95\xfe\x61\x7d\x7a\x8c\xb9\x84\x6d\x63\xf0\x1d\x28\x10\xe8\xec\x1f\xa2\xd0\x2b\x18\x73\x63\x1c\xf3\x3c\x79\x31\x33\xbe\x94\x80\xa3\x56\x3e\x31\xd1\x98\x38\x8e\x88\xd2\x2a\x23\x3f\x27\xfc\x0b\x33\xe5\x59\xd6\x61\x79\xa1\x87\x7c\x98\xcd\x1c\x9b\xeb\x1f\x19\x78\xa4\x80\x0f\x85\x1e\x31\xf1\xf7\x2a\xca\x8c\x45\xf7\x8b\x14\x94\x47\xd8\x7d\x4f\xaf\xae\xa6\x34\x65\x19\x7e\x45\x40\x25\x94\xfe\x1c\x87\xc6\x1d\xa5\xe8\x2c\x34\xda\x91\x86\x0d\xf6\xe0\x70\x5b\xde\x3e\xd8\x0b\x89\x88\x81\x62\x88\x8f\xad\xb4\xaa\x97\x6a\xb4\x62\x3a\x24\xe3\x59\xb6\xee\xe8\x98\x89\x0f\x32\xd1\xe3\x82\xe7\x13\x97\x86\x71\xb0\xf7\xc3\x7c\x1b\x00\x1b\x5c\x94\x4e\xe4\x1d\xec\xdd\xda\x51\x60\x72\xb8\xc2\x9e\x7c\xca\xea\x03\xf9\xe3\x88\xb0\xfb\x98\x81\xe3\x6f\xda\x5f\xfe\x07\x54\x25\x4a\x52\x8c\x3a\x2f\x98\xe5\x60\x0f\x6e\x47\x07\x1f\x39\x14\xa5\xfd\x1b\x72\x93\xa3\x6e\xb2\xde\xb0\x54\x51\xc3\xb0\x8f\x8c\x80\xc1\x18\x10\xbb\xc9\x41\x69\x38\x63\xdf\x9f\xb1\x41\x75\x74\x74\x22\x98\x6d\xd2\xfd\x0d\x7d\x01\x46\x4a\x21\x6c\x11\x60\x6d\x8e\x62\x30\x4d\xa5\x5d\x42\x6a\x10\x37\xb8\xc1\xfa\xba\xc0\xba\x07\x3e\x17\x99\x02\x89\x08\x2f\x73\x35\xae\x4f\x99\x66\x5c\x1b\x2d\xe6\x69\xc4\x13\xed\x46\xeb\x34\x49\x8e\xde\xa7\xec\xb6\x7f\xd4\x61\xb7\xc7\x1d\x76\xdb\xb7\xff\xc7\x20\x5b\xfb\xd7\x91\xfd\xeb\xa4\xc3\x6e\x4f\xc0\xc5\xd2\x7e\x45\x51\x6e\x50\x0e\xfe\x3c\xee\xb0\x91\xd6\x7d\xfc\xf7\x68\x37\x88\x34\x6b\x3e\x4d\x5b\x05\xd9\x25\x9c\xe8\xf1\x14\x7c\x2b\x21\xd4\x9b\x45\x37\x37\xd9\xac\x7e\xb1\xb5\xa5\xac\x68\x1b\xcb\x73\x82\x61\x74\x97\x6b\xb0\x51\xe4\x92\x06\xb9\x03\xb4\xb3\xfb\x5a\x5d\xd6\xd4\x63\xad\x78\xa2\x4d\x79\xde\xbd\x11\x33\x53\xdb\x48\xa1\x99\xe8\xab\x5f\xd6\x7c\xec\x4d\x79\xbe\xa4\xd3\x96\x8c\x8c\x0d\xed\xf3\xe6\x29\x19\xe7\x4e\xc7\x8e\xb7\xf1\x9c\xbc\xb6\x3c\x13\x46\x5c\x14\xfc\xe1\xe6\x24\x37\xb7\x89\xac\xf0\x33\x1f\x96\xb5\x70\x03\xaf\x9b\x36\x88\x84\x9b\xf8\x45\x63\xda\x6c\x85\x0f\x93\x41\x37\xea\x1d\xbf\xb8\xef\x10\xac\xb8\xba\x31\xc2\x19\xc8\xb8\xf4\xf2\x73\xe7\x18\x01\x69\xb5\xc1\xc7\x86\x18\x4e\xb4\xbe\xf1\x79\xbb\xec\xba\x3c\x7d\x7a\x02\x32\xee\x90\x27\x37\x77\xbc\x48\xf1\x66\x29\xe5\x50\x66\xf0\x92\xbd\xb6\xad\x5e\x47\xc0\x68\x9c\x72\x4e\x42\x6f\xee\x8a\xec\x77\xbf\x7e\xf6\xec\xe4\x19\xa1\xf2\x1a\x79\x2b\x9a\x20\x6f\xbb\xba\x05\x76\xbb\xcf\xe1\x4a\xfb\xe2\xab\xf4\xc5\x7c\xf3\xc5\x57\xe9\xbf\x85\x09\xe4\x53\xfa\x2a\x35\x79\xcd\x6f\xd8\x61\x69\x6e\xaa\x5f\xbc\x96\x96\x7b\x2d\x6d\x12\xbd\x76\x8f\x75\xf8\xe2\xbf\xf4\xc5\x7f\xe9\x8b\xff\xd2\x17\xff\xa5\x9d\x31\x94\x2f\x4e\x4c\xff\x7d\xa4\xe0\x4f\xe1\xc4\x34\xf7\x3e\x5b\x53\x03\xf4\x45\x8c\xff\x4d\x8b\xf1\xff\xdd\x3d\x99\x1e\x49\x5c\xfc\xe2\xd3\xf4\xc5\xa7\xe9\x8b\x4f\xd3\x17\x9f\xa6\x2f\x3e\x4d\x5f\x7c\x9a\xbe\xf8\x34\xb5\xdf\x96\x5f\x1c\x9b\xbe\x38\x36\xad\x1a\xe1\x17\xc7\xa6\x2f\x8e\x4d\x5f\x1c\x9b\xbe\x38\x36\x21\x37\x59\xf3\xa5\xfa\x99\x39\x36\x2d\x30\xe9\x7c\xf1\x6e\xda\x89\x5e\xeb\x8b\x8b\xd3\xa3\xbb\x38\x2d\x10\xdf\xbe\xf8\x39\x7d\xf1\x73\xfa\x6c\xfd\x9c\xfe\x8d\x4a\xec\xc9\x18\x39\x6d\xaf\x94\x25\x28\xb0\x40\xe2\xc0\xf3\x45\xfd\xd6\xd5\x86\xbd\xe3\xa3\xde\xd3\x3d\xdf\x48\xce\xcb\x49\xd8\x86\x7b\x87\xbd\x3b\x91\x65\x5d\xb0\x91\x1d\xea\x5c\x28\x99\x76\x13\xad\x46\x72\x5c\xe1\xa1\x39\x8c\x0f\xc7\x58\xd4\x17\xae\xb9\x6c\x63\x11\xd8\x2d\x4f\x20\x03\x3b\x93\xc6\x54\xa2\x60\xf6\x95\x7c\xfe\x82\xd5\xda\xee\x20\x14\x29\x42\x00\x72\xdc\x66\x4f\xde\x9e\xbf\x78\xce\x7c\xda\x02\x96\xea\xe4\x49\x7c\x03\xfa\xb4\x9d\xe7\x29\xf5\x48\x87\xef\x0c\xfb\x3b\x87\xee\xb0\xb7\xe7\x71\x67\x35\x40\x2c\x02\xd9\x6b\x70\xca\x3d\x9e\xe7\x19\xbd\x71\x0f\xff\x66\x62\xc6\xfc\x4b\xcd\xa0\x8a\xb9\x9b\xe7\x2e\xa0\xe3\xa3\xa3\xf9\xdb\xa3\x99\x1a\xf0\x87\xda\xee\x60\x88\x3b\x3c\x6d\x2a\xca\x97\x1e\xa6\x78\xf3\xb0\xb9\x3b\xe3\xe9\x51\x7f\xe5\x28\xde\x2b\x07\x30\x2d\xd2\xda\xed\xd3\xfe\xa6\x06\x38\xca\x39\x6a\x81\xce\xb6\x9d\x44\x25\x1f\xcf\x15\xff\x8b\xc8\xb2\x1f\xec\x52\x47\x55\xfe\x2d\xee\xd6\xb1\xf5\x43\x9e\xcb\xe5\xdb\xce\x01\x23\xae\x5c\xbf\xce\xa2\x5f\x67\x7c\x9a\x2d\xfe\xf5\x56\xa5\xbd\x28\x1d\x69\x5e\xe8\x52\x0f\xab\x51\xfb\x5c\x5b\xce\x80\x4f\x80\x1e\x3f\xef\xcc\xf2\x6d\xfc\x5c\x17\x22\x18\x30\xcd\x56\xdb\xf5\x31\xa6\xfb\x68\xbb\xff\x1e\xa6\xa2\x98\x8e\xff\xe2\xa7\x26\xd1\x85\x58\xeb\xc0\xdc\xf6\x7f\x2b\x67\xa6\xcd\x5c\xbd\xe0\xc0\xfc\xd4\x3f\xbb\x38\x7f\xd7\x56\xfe\xcb\x99\xd9\xfc\xcc\x38\x42\x82\x21\xf2\x37\x70\x6e\xfe\x77\x0c\xff\xb0\xfc\xe8\x58\xc1\x50\x2b\xa1\x4a\x74\xa9\xa9\xad\xd4\xfa\x67\xe9\xf7\x87\xbf\x5f\x6b\xbf\xa3\xc2\x02\x1d\x60\xac\x38\x0d\x19\xee\x9f\xbb\x21\xcc\x39\x4e\x36\x37\xbf\xad\x8e\xbb\x7f\x49\x9d\x4f\x75\x00\x16\x56\xb0\x9d\xfd\xc9\x94\x85\xe0\xd3\x7f\xbf\x9b\xcf\xb8\xb6\x46\xdb\xf5\xda\x9f\xf7\x49\xeb\xd9\x0d\x68\xcf\x55\x63\x89\x7e\x9b\x67\x2b\xaa\x50\x7b\xf0\x63\xb6\x7a\xb7\x67\xf7\x16\x15\x6b\x75\xb2\x68\x77\xad\x68\x77\xa2\x58\x7c\x0e\x56\xe3\xc1\x84\xe7\x57\xce\x0b\x3e\x15\xa5\x28\xcc\x62\x1f\x8f\x06\xf9\x01\x83\x1b\x72\x55\x7c\xa7\xf5\xcd\x94\x17\x37\x91\x17\x0f\xec\x53\xcc\x5f\x6e\xc8\x40\x36\xcb\x05\x1b\xec\x7d\xf7\xf6\xed\x0f\x6f\xce\xde\xfd\x30\xd8\x0b\xfe\x42\xf0\x98\x4d\x35\x00\xce\xcb\x69\x9e\x89\xa9\x50\x25\x1b\xfa\x56\xc1\x9f\x68\xac\x74\x41\x66\xf3\x51\xc6\xd1\xb9\x22\x14\x01\x05\xae\xad\x45\x06\x5e\xef\x75\x60\x9f\x53\x85\x20\x27\x49\x32\x41\xd3\xa3\xd7\x76\xc7\x8d\xe5\x66\x8d\x86\x0a\x51\x56\x85\x12\x29\xb8\xf8\xaa\x99\x7b\x8f\x27\xe8\xe0\x76\xcb\xb3\x0e\x53\x90\x7d\x1e\xf4\xd0\x33\xd7\x48\xe8\x97\x94\xec\x02\x74\xd0\x33\xe6\xe6\x4c\xf9\xdc\xd3\x0a\xf4\xbd\x9c\x19\x81\x89\xa6\x51\x7d\x8f\x26\x43\x18\x14\x92\xaf\x43\xb3\x05\x0c\x73\xfb\x2b\x90\x20\xf5\xda\xfe\x91\xe0\x65\x55\x08\x06\x46\xa8\xc6\x42\x50\x4b\x42\x59\xb1\x02\xc0\xd8\xbd\xff\xc4\xa2\x66\x1b\x0a\x41\x58\xe3\xbf\x57\xa2\x68\x28\xdf\x48\x73\xd3\xb6\xfc\xcb\x6d\x96\xb5\x1f\x2b\x70\xba\x3d\x27\xad\x63\x59\x54\xa2\xed\xd0\x2e\x75\x40\x45\x67\xd3\x52\xaa\x4a\x90\x65\x20\xd2\x66\x18\x51\xa2\xa9\xb6\x10\x65\x21\x05\x38\x9e\x4c\x35\xac\xad\xa9\xb2\x32\x72\x4a\x73\x36\x3e\x34\xfc\x00\x69\xd0\x09\x2e\x58\xd4\xd0\xa3\x32\xed\x78\x1f\x06\xbb\xf2\x5a\x65\x33\x6f\xbe\xf5\x03\xc1\xaa\xd0\x38\x67\xff\x3f\x7b\x7f\xdb\xdc\x36\x72\xe5\x71\xc3\xef\xfd\x29\xba\x9c\x17\x1a\xd7\x4a\xd4\x3a\xbb\x55\x9b\x3b\x53\xa9\xbb\x3c\x1e\x4d\x32\x3b\x76\xac\xb5\x9c\x99\xba\xaa\xbc\x75\xa5\x05\x34\xa9\x2e\x81\x68\x2c\x1a\x94\xcc\xa4\xf2\xdd\xaf\xea\xd3\x0f\x00\x28\x90\x02\x29\x80\x04\xc8\x7f\xde\x8c\x23\x92\x40\x3f\xf7\x39\xe7\x77\x1e\xb2\x5c\x3c\x50\x4d\x11\x1a\x46\xf7\x6a\xbb\x1b\x64\x6c\xcb\xe4\x26\xee\xb3\x72\xff\x05\xfa\xee\x81\xa5\x7d\xa4\x9a\x86\x97\xbc\xf1\x00\xc1\xb7\xaf\xe2\x63\xc9\x57\x9b\x22\xcd\xce\x12\x76\x35\x04\xf7\xcb\xb0\x84\x82\xa5\xe9\xc9\xcf\xcc\x2f\x58\xa2\xd2\x99\xc8\x9d\x61\xe8\xf1\x4e\x10\x4d\x89\x17\x64\xf8\x13\xdf\x32\x69\x6f\x66\xf6\xdd\x4c\xa4\x22\x27\x2e\x33\x95\x0f\xf4\xe9\x54\x4e\x0b\x61\x01\xc6\xa2\x10\xfa\x8d\x2d\x13\x50\x33\x81\xb0\xe8\x8e\xa7\x33\x51\xb5\x6c\xd9\xc5\x59\xdf\x45\xf6\x5a\x8b\x3d\x42\xfa\xcf\xb7\xff\xce\xbc\xb0\x76\x65\x9a\x20\x62\x26\xf2\xdc\x8c\x95\x9a\xd9\x06\xba\x6f\x86\x1e\x15\xea\x5e\xa4\xa1\xcb\xce\xef\x30\x15\x82\x8c\x99\x46\x9e\x91\xba\x30\x7f\x32\xe7\x34\x21\x32\xe2\xce\xb9\xb0\xe8\xaa\xb8\x13\x32\xb7\x9c\xc5\x3c\x58\x2d\x8a\xfa\x8c\xd3\x3e\x9a\xb0\x4f\xe6\xd5\x8f\x52\xbb\x42\x24\xee\x2d\x66\x66\xdc\x31\x60\x51\x14\x3d\xc7\x9d\x92\xde\x71\xc0\xb5\xd0\x4c\x8f\x20\x50\x10\xfe\x6e\x3a\x4b\x9d\x7b\x76\x58\xe8\xb9\xd4\x60\x62\xdd\x7e\x71\x53\xc1\x8e\x7b\xb1\xb4\x05\x3d\xc2\x9f\x9d\xbf\xae\x4e\x79\xa6\xef\x54\xe1\x09\x9f\x39\x0c\xd2\xca\x80\x84\xef\x87\x85\xec\x9a\x6f\xb7\xd0\x45\x90\xe3\xe8\x00\x37\x27\xa7\xab\x5e\x71\xce\xe6\x2a\x76\x16\x4c\x95\x13\x29\xa7\x9a\x16\x53\x0b\x71\x7d\x79\x93\x95\xc1\xb0\xd0\x93\x2c\x8d\xb1\x3d\xb3\xa8\x40\x89\x13\x6b\xce\x19\xd7\xb4\x20\x9d\xb9\x4c\xe6\xa6\x63\xf6\xc0\x2e\x1f\xfc\xf5\xb5\xef\xf2\xd7\xd7\xb6\xf4\x50\xed\xac\x33\xbb\x20\xb8\xd9\xd9\x03\xc2\xde\x54\x52\xd3\x21\x54\xde\x11\x34\x73\xb4\x00\xdc\x69\x5c\x1d\x3d\x3b\x08\xb4\x06\x3d\x94\xf7\x8e\xb3\xee\xe6\xb8\x5d\x56\x67\xcc\xec\x57\xf3\xea\xb9\xd4\x9a\x6e\x04\x3b\x3c\x56\xe4\xd3\xdb\x9e\xbc\x7e\xe9\xb5\x77\x71\x7b\xf9\x69\xfb\x8e\x69\x91\x88\xa8\xa0\x7d\x46\x7b\x23\x97\x91\xdd\x09\x1e\x41\x86\xbe\xfb\x55\x61\xc7\x40\xe6\x76\xf8\x75\x30\x4f\x93\xdb\xb8\x78\x10\xf9\x92\xbc\x8f\xb6\xed\x3e\x3d\xed\xc6\xb5\x66\x34\x63\x90\xf0\x5b\x91\x74\x36\x06\xf4\xb4\x43\x8c\x41\x22\xe7\xd2\x05\x36\xcc\xf9\x37\x39\x5f\xcc\x3d\x2b\xa0\xde\x3b\x0d\xc4\x8e\x8f\x19\x0a\x17\x27\x4c\xe3\x13\xf1\x24\xa1\x63\x98\x2e\x62\x22\x8e\x4c\x7c\xa3\x43\xf7\xa9\xe8\x64\xc7\xf5\xef\x7e\xad\xff\xdd\xed\x61\x77\x59\xd0\xf3\xbc\xa3\x35\xc5\x27\xb9\x0d\x18\x4a\xbd\x78\xf7\x89\x70\x96\x6a\xc2\x49\x46\x5b\x09\x97\xae\x6d\xa5\x11\x0f\x44\x79\x5a\x9a\x57\xdb\xbe\x98\x69\x32\x42\x6a\x61\x9d\x79\x99\xed\xbb\xbd\x6c\x6d\xdf\xc4\xa3\x77\x4a\xb1\x27\x15\x9d\x64\xe6\xa0\x9b\x93\xfd\x9f\xbc\x59\x4c\x2f\xbf\x5b\x64\xe6\x65\xff\x10\xb9\xb2\x7f\x79\xe3\x4f\x37\x2b\x11\x72\x3a\xd0\xfd\xaf\xfd\xda\x21\x0f\x09\x99\x14\xe4\x71\x61\x71\x71\x1c\x44\x10\x27\xea\xd4\xa4\x10\xeb\x89\x1f\x55\x63\x71\x2a\x77\x14\x39\x10\x1b\x11\x63\x2e\x53\x11\x6e\xf3\x9a\x50\x44\x67\xa9\x37\x46\xd5\xfd\xf9\xa3\x3b\xa5\xb4\xa0\x53\xac\x50\xfe\x0c\x75\x73\x61\x86\x85\xe7\xb3\x05\x89\xed\x9c\x2e\x25\xea\x10\x0d\x92\xe9\x9b\x6b\x4f\xcd\xce\x65\x47\xf7\xe7\x29\x0b\x4b\xaa\x14\x46\xbc\x7c\xb3\xd2\x01\xa9\x99\x98\x67\xc5\xb2\x2e\x88\x05\xe9\x9b\x17\x46\x66\xd9\xd4\xa1\x4d\x97\x81\x9c\xae\x5c\x05\xf6\xf6\x08\xeb\x72\xb6\xe0\x39\x4f\x0b\x21\x2a\x9e\xae\x7e\xa6\xc2\xb6\x7f\xb4\xe5\x8f\xc8\xcd\xd9\xb7\x3d\x5c\x6c\x41\xe4\x2b\x14\xa1\x21\xa7\x04\xc8\x74\x96\x88\x72\x87\x04\x29\xc3\x2f\xb8\x0b\x57\xd5\x47\x1b\xad\x23\xbc\x72\xbb\x9b\xd6\x5f\xb2\xa4\x63\xe8\x85\x88\x1b\xaf\x5b\xd2\x75\x16\xb7\xda\x7c\x39\x2d\x42\x0f\xe2\xa0\xd6\x55\x3c\x1b\xd5\x5c\x14\x72\x2e\x34\x0b\x3e\xbe\x66\x17\xae\x48\x54\xa5\x80\x61\x66\x54\xa4\x7a\x91\xfb\xe1\xe3\x5e\x44\x72\x9d\x73\xa3\x66\xbb\x4c\x1b\x93\x84\x21\xeb\x5f\x45\xee\x74\x8b\xf4\xde\xd6\xd4\x62\x44\xc7\x12\x9e\xcf\xfc\x44\xd3\x8e\xb7\x8f\xb7\x1a\x99\x16\x82\x16\x5e\xa6\xb4\x96\x66\xc1\xf9\x90\x2b\xb3\xe0\xaa\xfb\xcb\xc5\x97\x94\x3a\x19\xbd\xc7\x3b\xd6\x54\x7d\xaa\x6a\x3e\xb6\xb6\xd5\x8f\x5c\xbb\x3d\x17\xf4\xce\x10\x5a\x59\x93\x70\xac\xdc\xcf\xb5\x99\xe0\x68\x91\xd0\x1b\x65\xb9\x6c\xb6\x3e\xfd\x65\xbd\x76\x4e\x03\x69\xed\xf8\xd8\xff\x79\xca\xce\xcc\xef\xce\x9c\x5f\x12\x8d\xc4\xa2\xc8\x16\x85\xf3\xf3\x2e\x8a\x25\xcb\x72\xf3\xf6\xad\x7b\x63\x7f\xbd\xcf\x4b\x6c\x55\x76\xd3\xd6\x03\xdc\x2c\xdc\x22\xe7\x32\x25\xda\x4e\x65\xf9\x42\xc8\x53\xf0\x67\xe3\x61\x2f\x99\xb3\xe7\xd6\x1d\x0f\x36\x66\xd6\x9c\x98\x22\x04\x24\x55\xac\x78\x52\x5d\xc6\x2a\xd2\x97\xc1\x73\xe2\x92\x56\xfb\x05\xcf\xa4\x0f\x3f\x32\x2a\x9f\xbe\x0c\xf1\x6a\x17\xe1\x85\x53\xda\xd6\x14\x17\x4b\x47\x52\x55\x80\x58\xa4\x5a\x14\x5b\x0e\xf7\x4a\xe7\x0f\x38\xee\x1f\xe9\xb8\x0d\x57\x92\xa6\xd2\x66\xab\x73\x63\x44\x8d\x2c\x4b\xa4\x3d\x60\xc2\x29\x69\x76\x32\xad\xbd\x3b\x39\xbb\x4b\x96\x75\xa7\xf3\xea\xcc\xd5\xde\xe5\x0c\x03\x14\xa4\x13\x9e\xe4\x6a\xf7\x35\xbc\xd8\x7c\x77\x7c\x33\xfa\xf1\xa9\x81\xb9\xdf\x69\xfd\x22\xe7\xc2\x5c\x58\xde\x60\x61\x86\xf6\xd2\xde\xa5\x56\xe4\xa3\x4b\x83\x0e\x2d\xeb\xe8\x10\x7b\x0b\x80\x97\x53\xc8\x85\x36\x17\x33\x9e\xc7\x89\xd0\xae\x72\xe2\x92\xf1\xa8\x90\x0f\x14\x1f\x92\x33\x99\xfa\xff\xb7\xed\xf9\x52\xd8\xe6\xdd\x50\x98\xc5\x1a\x1b\x55\x4f\xc7\xe6\x6f\x56\x71\x54\xb9\xb3\x75\x84\x80\x59\x9f\x60\x20\x2e\x89\x1f\x5d\x91\x4e\x66\x2a\xee\xc4\xdc\x5e\xa6\xd6\xec\x4f\x03\x12\xc7\xe7\xee\xba\x3a\x77\xdf\x9d\x5b\xff\xdd\xa2\xa2\x4a\xb2\x1b\x17\x17\xb3\xb2\x28\xb6\x1d\xb4\x06\x4a\xb1\xb3\x3d\xcf\xfd\xeb\x7f\xdb\xd1\xa7\xcb\x7f\x9a\x36\xfc\xab\x57\x08\x95\x0b\x1e\xaf\xd8\xbf\xda\x23\x28\xf3\xe3\xc1\x22\xa8\x71\x92\xa1\x53\xa4\x42\x33\x71\x8c\x50\xa8\xea\xa8\xb9\xb1\x11\xf6\x04\xca\x78\x71\xd7\x7c\x00\xd1\x7f\x6b\x9f\x54\xdc\xc6\xcd\xf9\xb2\xc7\x0b\x6e\x2c\xd2\xef\x33\x07\x6d\x3a\x95\xb3\x39\xcf\xf6\xc1\xf7\x73\xa7\x4b\x3f\x05\xfd\xa6\x11\x1f\x6b\xbe\xd5\x9b\x10\xbf\xfb\xf6\x4f\x2a\x7f\x97\x24\xc1\x2f\x77\x10\x27\x2d\x60\xff\xea\x91\xee\x26\x0b\x98\xbf\xe1\x6b\x1d\x9c\xe8\x4f\x77\x0e\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x3f\x00\xff\x16\xc7\xfe\x58\x4c\x9c\x00\xfc\x00\xfc\x00\xfc\x00\xfc\x00\xfc\x63\x01\xfc\x3e\xe9\xf3\x21\xb1\xd3\x55\x68\x43\x1b\xec\x14\xbe\x0d\xec\xb4\x3a\xea\xc3\xc3\x4e\x61\xb2\x80\x9d\x1a\xbe\xf6\x62\xec\xd4\xb4\x73\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\x80\x9d\xb6\x38\xf6\x81\x9d\x80\x9d\x80\x9d\xc6\x31\xa3\xc0\x4e\xf5\xe1\x01\x76\x1a\x34\x76\x22\x13\xf1\x21\x99\x93\x69\x40\x3b\xde\x64\xbe\x09\xd6\xb4\x3a\xda\x03\x64\x4d\x66\xa2\xc0\x99\x1a\xbe\xf6\x72\xce\xb4\xb2\x5b\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xc0\x98\xb6\x38\xf6\xc1\x98\xc0\x98\xc0\x98\xc6\x31\xa3\x60\x4c\xf5\xe1\x01\x63\x1a\x32\x63\xa2\x65\x91\xd3\xe0\x1c\x10\x34\x7d\x30\xad\xf8\x6c\x5a\xd1\x8a\x36\x95\x5f\x07\x72\x5a\x1d\xf7\xe1\x21\xa7\x72\xb6\xc0\x9d\x1a\xbe\xf6\x62\xee\xd4\xb8\x79\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\x00\x9f\xb6\x38\xf6\x01\x9f\x00\x9f\x00\x9f\xc6\x31\xa3\x80\x4f\xf5\xe1\x01\x7c\x1a\x32\x7c\x4a\x4b\x6e\x73\x38\xf6\x14\xe0\x51\x2b\xf4\xd4\xf8\xed\x35\x06\x74\xf6\x0c\xbe\x80\x11\xfd\x88\x8d\xe8\x1b\x36\xda\x16\x86\xf4\x67\xb6\xde\xe6\xcd\xb7\x82\xd4\x36\x2f\x46\x98\xd4\x61\x52\x87\x49\x1d\x26\xf5\x63\x33\xa9\xb7\x3b\x87\x1b\xcd\xea\x9b\x85\xe7\x0e\xcf\xde\xbd\x19\xd8\xdb\x0d\xc6\x7a\x23\xfb\x38\x46\x64\x1b\x73\x7b\xbb\x11\x59\x6f\x72\xdf\xdb\x88\xc0\xf8\x0e\xe3\x3b\x8c\xef\x30\xbe\xc3\xf8\xde\x9b\xf1\xbd\xe5\x5d\xf0\xc4\x00\xff\x8c\x2d\xa9\xc3\x4b\xe0\x88\x8d\xd7\xed\x06\x7f\x93\x01\x7b\x6f\x57\x31\x4c\xd9\xfb\x9a\xdf\xa7\xe6\xec\xbd\x4d\xf2\x41\x0d\xdb\xed\x06\x6b\x83\x71\x7b\x7f\x47\xd2\x50\xcd\xdc\xed\x86\xf0\xa9\xa9\xfb\xa5\x16\xb7\x46\x83\x34\x42\x11\x86\x11\x8a\x10\xac\xf7\x88\x44\x68\xf8\xda\x8b\x23\x11\x9a\xe0\x48\xcf\x81\x08\x63\x71\x4e\x78\xb5\x32\x45\xaf\x33\xa5\x3b\xc6\x5c\x56\x31\x61\xbc\x15\xd1\xb2\x5f\xee\x80\x69\xd9\x51\xbc\x55\xf1\xda\x33\xb6\xe9\x33\x23\x8a\xca\x5c\xc4\x6e\x9c\x7a\xdc\xe9\x2d\x77\xf9\x33\x97\x9c\x59\x5a\x4e\xe1\x38\x67\x32\x8d\xcd\xe1\xe8\x15\xaa\x9a\xf1\xb1\x8a\xc6\x6e\x05\xcb\xcc\xd2\xd7\x66\xed\xb1\x77\x29\x93\xa9\x35\xfd\xab\x9c\x2d\xd2\x40\x0f\x62\x16\xe7\xcb\xcf\x8b\x94\xc5\x32\x17\x46\x1c\x10\xc1\x24\x6d\xb4\x17\x52\x0f\x9d\x4d\xde\x9f\xa8\xce\x02\xca\xa6\x8b\x9c\x6c\x09\x59\xae\x22\xa1\x49\x8f\x73\xd2\x87\x93\xf5\x27\xec\x57\x7a\x23\xd9\x68\x48\xf1\xfa\x23\xbb\x60\xef\x92\xe4\x8f\xa4\xa5\xc5\xf9\x92\xe5\x8b\x94\xe9\x82\x9b\x9b\xdb\xab\xa6\xee\x71\x22\xde\xe1\x46\xb5\x7d\x39\x8c\xcc\x46\x06\x86\x8f\x3c\xe5\x33\x91\x5b\x53\x99\x69\x15\xe3\x5a\xab\x48\x92\xee\x17\x8c\x52\x9c\x6c\x8b\x2a\x67\x22\x2d\x8c\x30\xe6\x95\xe1\x39\xbf\x37\xa3\x58\xdc\x09\x2d\xbc\x44\x63\x64\x3d\x0f\x72\x88\x65\xdc\x0a\x46\x12\x1d\x19\xa0\x54\xce\xde\xfe\xfe\x0f\xe6\xbb\x39\x8f\x88\x38\x25\x2a\x9d\x59\xf9\x85\x8c\x44\x46\x9b\xe7\x32\xb5\xa7\x10\x19\x61\xca\xef\x92\x15\xde\xf1\x30\x76\xbb\x0c\x22\xfa\x4c\x25\x3c\x9d\x4d\x54\x3e\xbb\xcc\xee\x67\x97\x8b\x54\x46\x2a\x16\x97\xbf\xfb\x59\x5f\x9b\xa7\xec\x6c\xd5\x75\x83\xd3\xe5\xf4\x0c\x4a\xe0\x19\x9b\x1c\xd2\x56\x06\xf9\x7d\x0b\x19\xe4\xbd\x35\x4c\x0d\xa3\xb9\xbf\x7f\xb6\xb9\xef\x22\xa3\x59\x0e\xa3\xbd\xc7\x24\xe2\x91\x60\x31\x34\x11\xef\x15\xdb\xe8\xfe\x73\xf9\xcf\xf0\xef\x7f\x5d\xde\x9a\xfb\x35\x9d\xd5\x7c\x82\x76\x90\x0c\x71\x67\xb7\x12\x72\x1b\xee\xeb\x9e\x5d\x06\x4f\xf4\x96\x6e\x19\xdc\xd4\x74\x43\xf7\x3c\x21\xce\xb2\x6e\x67\x21\x8d\x99\x39\xe7\x98\x8e\x54\x26\xce\x99\x5e\x44\x77\xa6\xf7\x64\x06\x13\x7c\x6e\x6d\x38\x59\xae\xc8\x92\xdf\xd4\xc1\x8c\x17\x77\xcd\xfd\x4b\x9b\xcf\x8e\x0d\xba\x40\xcf\x1d\x87\xf2\xf8\x54\x79\xfc\xc1\x9e\xbe\xdb\xaa\x8e\x71\xc3\xef\x46\xae\x42\xfa\x1e\xad\x97\x21\x20\xfa\xf6\x31\xaa\x03\x12\x7c\xb7\x6e\xec\x41\xc5\xde\x2d\x5b\x0b\xa1\x37\x7c\xfd\x19\xa1\xf7\xe9\xd9\xd6\xb1\xc8\x6b\x1d\x39\xe7\x3c\xab\x09\xbd\xd6\xa7\xa0\xdb\x73\xde\x3e\x93\x45\x2a\x49\x44\xe4\x71\xd5\x7b\x7a\xfd\x47\x9e\x6d\x38\xf5\xed\x0f\xed\xa9\xff\x3e\xfc\xba\x3c\xff\x1b\x9f\xd1\xef\x0d\xb0\xfb\x96\x99\xf3\xe8\x4e\xa6\x22\x5f\x4e\xb2\xfb\x99\xf9\x83\x9e\xcc\x45\xc1\xcd\x26\xfa\x91\xfa\xf9\x89\x06\x4c\x77\x62\x3c\x84\x67\x35\x3c\xab\xe1\x59\x0d\xcf\x6a\x78\x56\x57\x3f\xdf\x0f\x11\x80\x11\xa8\xf5\x44\x1d\x12\xdc\xc0\x01\xbe\x49\x68\x08\x1e\x45\x32\x65\xda\x3a\xf9\xb0\x5b\x31\xb5\x51\x7c\xc1\x21\xb2\x14\x25\xdc\xe9\x45\x4b\xa7\x62\x04\x4b\x55\x7a\x91\x8a\x19\xa7\x05\xea\xbc\x81\xaa\xc6\x32\xeb\x1c\x1d\xb6\x86\x93\x10\xe5\x7c\x2e\x62\xc9\x0b\x91\x2c\xcb\xf0\xba\xf2\xca\x95\xc9\xb9\xf3\xf2\xa1\x41\x67\xb3\x9c\x47\xb4\x6b\xa4\x8a\x83\x40\x50\x5e\xda\x14\xbb\xe8\x57\xe9\x42\x9b\x46\x56\xa7\x8b\x9b\x5f\xfa\x0e\xb9\x97\x4c\xed\x19\xe8\x1f\x31\xb1\xed\x9c\x0b\x9e\x36\xb6\x71\x87\x69\xa6\x36\x5f\x53\x93\x0f\xeb\x43\x85\x68\x07\x44\x3b\x20\xda\x01\xd1\x0e\x88\x76\x40\xb4\x03\xa2\x1d\xc2\x25\xf0\xa3\xc8\x72\x61\x84\x92\xf8\x8f\x2c\x4b\x04\xd7\x22\x1c\x41\xd7\xb9\xca\xf8\x8c\xa4\xa3\x6b\x95\xc8\x68\x59\x8b\xc9\xf7\x8b\x2e\x0e\x0f\x30\xcb\xee\xed\xe4\xbf\x26\xec\xc6\x9e\x67\x56\x74\xc9\x44\x6a\x36\x4b\x79\xa7\x0a\xa6\xf2\xec\x8e\xa7\x3e\x47\x40\xbe\x10\x97\x53\x9e\x78\x5d\xf9\xeb\x6b\xfb\xf1\xd7\xd7\x6c\x2a\x53\x9e\xc8\x7f\xf8\x8b\xe4\x56\x30\x1e\x93\xd3\xbe\xba\xb4\x4e\xcb\x71\xa9\x86\xd9\xc7\x9f\xe9\xf2\x47\x56\x3f\x9d\xb0\x2b\x49\x87\x63\xa5\xe9\x2a\x7f\xda\xb7\x32\x60\xa3\xb0\xea\x31\xe9\x28\xaa\xb8\xdb\x65\x42\x6d\x0f\x7e\xf4\x7d\x3f\x54\xba\x81\xdf\xdc\xbd\x60\x36\xec\x9d\x7a\x64\x33\x9e\xdf\xf2\x59\xcd\x30\x19\x94\x1a\x91\x4f\x55\x3e\x37\x73\xd2\x38\x5e\x9f\x56\x7a\xb4\x7e\xb8\x48\xe8\xf5\x12\x6b\x66\xc7\x56\x1a\x69\x32\x92\x71\xa9\x0a\x93\xac\x40\xc6\x89\x30\xc7\xe6\xb2\x76\x37\xa9\x97\x06\x26\x95\xc9\xf4\xf7\x48\x88\x91\x08\xf9\x2e\xea\x2f\x9b\x30\x6b\xfd\xa7\xbb\xa9\xaa\xd9\x9d\xd9\x3e\x9c\xb1\x0b\xb7\x00\xeb\x0b\x54\x7f\xcf\xce\x7e\xe0\xd1\xfd\x2c\x57\x8b\x34\x36\xdf\xa2\xbc\x11\xf4\xa5\x95\x81\xb3\x22\xa4\x93\x8f\xeb\x0f\xf1\x3d\xb8\x0d\x4f\xfa\x9e\x9d\xfd\xa4\x72\x51\x79\x2c\x8b\xb8\x8e\x78\x6c\x7a\xef\xc6\xc7\xa6\x16\xa1\xe7\x69\xab\x7a\x3e\x79\xe0\x34\x3c\x63\x97\x05\x99\xad\x2e\xf7\x41\x04\xf5\x20\xb4\x6a\x08\xb3\x80\xd0\x2a\x84\x56\x1d\x5b\x68\x55\x23\xa5\x83\xd3\xc0\x96\x98\xee\xa6\xe0\xc5\xa2\x2d\x9f\x3b\x2a\xd4\x6d\xef\xe2\x52\x4e\xea\x0f\x7b\x37\x21\xdd\x6d\xc2\x79\xf6\x9c\xc8\xad\x0d\xc5\x6e\x48\xe4\xf6\x32\x72\x8d\x94\x6e\x48\xe9\x66\x3f\x42\x4a\x37\x38\x1e\xc0\xf1\x00\x8e\x07\x70\x3c\x80\xe3\x01\x88\x36\x20\xe7\xf3\x23\x02\xc8\x09\xc8\x09\xc8\x09\xc8\x09\xc8\x79\xc2\x90\x13\xdc\x01\xdc\x01\xdc\x01\xdc\x01\x29\xdd\x90\xd2\x0d\x29\xdd\xc2\x27\xad\x83\x1e\x83\xf5\x1e\x29\xdd\x1a\xbe\x76\x70\x06\xb4\x43\xe2\x0e\xa4\x23\x40\x3a\x82\x90\x8e\xa0\x0d\xd4\x6b\x4e\x48\x70\x80\x80\xd4\xde\x53\x12\x94\x7d\x6a\x77\xd0\x21\x38\xea\x08\x82\xa3\x4e\x34\x5f\x0e\xb2\xda\x8d\xc4\x4b\x67\xe7\xd3\xe9\xc0\xc9\x3d\x76\x68\xee\x41\xd3\x7b\x6c\xdd\xde\x63\x92\x72\xfb\x4d\xf0\xb1\xa3\x94\xfb\x8a\xed\x92\xe2\xc3\xfe\xf9\x5f\x7b\xca\xf4\xd1\x4e\x84\xaa\x66\xf7\x40\x4e\x8f\x86\xde\x40\x74\x1a\xa3\xe8\x84\x28\xea\x13\x8a\xa2\x46\xb8\x18\xc2\xc5\x10\x2e\x86\x70\x31\x68\x7d\xeb\x76\xd1\x20\x63\x33\x0e\xa3\x55\x21\xb4\x64\x6d\x68\xc9\xe0\xd4\xac\x60\x67\xee\x3c\xa0\x24\x17\x3c\x5e\x91\xb1\xda\x68\x4b\xe6\x67\x7d\x46\x91\x54\xa4\x0e\xf1\x8d\x7c\xc3\x6e\xcd\xbf\x78\x54\x4c\x18\xbb\x32\xff\xf5\x7f\x9f\x73\x49\x66\x38\xcd\xa2\x64\xa1\x0b\x91\x97\x77\x89\x75\x22\x65\x89\xbc\x17\xec\x2c\xb4\xf3\xcc\x88\x8c\x5e\xcc\x99\xb0\xeb\x84\xa7\xa9\xb0\xb2\x26\x09\x22\x3c\xb1\xb2\xcf\xdb\x3f\xec\x72\x38\x53\x1b\x0f\x24\x22\x84\x41\x0b\x12\xf6\xad\x1f\x3e\xd3\x53\x76\x65\x47\xcc\x5c\x0b\x99\xf6\xa3\xe3\xdc\xa7\x16\x5a\xe4\xe4\xf7\x54\x0a\xcb\xcb\x9e\x07\xca\x34\xe6\x78\x29\xf5\xb0\xef\x2e\x98\xd4\x48\x71\x13\xc3\xb3\xa8\xbd\x84\x1b\x13\x15\x71\xd6\x8e\x35\xaf\x6f\x83\x84\x87\x42\x83\x81\xc1\x47\x87\xc1\xc9\x6f\xa6\x95\x80\xb2\x7a\xfe\x5e\xd0\x6f\xff\x6d\xf3\x51\x3c\x17\xf9\x4c\xb4\xfa\xa6\x2e\x72\x5e\x88\x99\x8c\x2e\xda\xff\xc6\xfc\x7b\xe9\xbe\x49\x87\x7e\x1b\x01\x2a\xe3\x79\x21\x29\xac\xcd\xfa\x78\xed\x20\x4c\xd1\x1b\x07\x60\x79\xee\x0b\xde\x6f\xd0\x34\xae\xeb\x8e\x56\x0c\xf6\xe8\x23\xb7\x47\x9f\x0e\xca\x5f\x09\x0f\xf1\x9b\xcb\x86\x30\x99\x93\xa6\x0c\x8b\xff\x6e\xcd\x29\xf4\x86\xac\x71\x36\x6e\x99\x27\xf4\xcb\x54\xa5\x17\xf6\xd7\xf4\x0d\x32\x88\x6b\xf6\xdd\x7f\x6b\x95\x5e\xdb\xe8\xf0\x8f\xe6\xbc\x73\xff\xbe\xf1\xa7\x60\xf9\xc7\x37\x43\xf2\x31\x68\xbf\x6e\x7e\x52\x79\x44\xc4\x60\xa6\x68\xf2\x15\xfb\xfa\x7a\x6a\xfe\xf6\xf5\x35\x7b\x57\x1b\x4d\x72\x3e\xb7\xe6\x7d\x52\x6a\xdc\x46\xbd\xe0\x11\x4d\x00\xc5\x17\x27\x32\x72\x06\x4b\xd2\x81\xd4\xa3\x9b\x5b\x1b\x7f\x9b\x09\x95\x25\x62\xc2\xec\x3b\x29\xad\x80\x5f\x53\xe4\x02\xde\x38\x11\xe1\xf5\xbb\x0c\xaf\x79\x11\x54\x21\xfb\x01\x54\xa1\x83\x78\x17\xac\xf8\x4b\x0f\x4d\x19\x5a\x74\x6e\xf7\xca\x12\x1e\xed\x22\xad\xb9\x5f\x1e\xb1\xbc\x06\x67\x4b\x48\x68\xa7\x20\xa1\x0d\x48\x10\xc2\x7d\x1d\x3e\x81\xb3\xa5\x7b\xf2\x51\x89\x17\x8b\xe1\x59\x5a\x5f\xb1\xf6\xbe\x8b\x22\x8d\x33\x25\xd3\xe2\x30\xd5\xc9\xae\xc2\xdb\xd7\x8b\x25\xcf\x55\x27\x6b\x7c\x06\x3c\x19\x91\x24\x0c\x49\xc2\x90\x24\x0c\x49\xc2\x90\x24\xec\x20\xca\x06\x74\xc2\xd6\x13\x85\xea\x64\x43\xca\xe5\x06\xbf\xfa\x13\xf2\xab\x47\xe2\x3e\x24\xee\x43\xe2\x3e\x24\xee\x43\xe2\x3e\x24\xee\x43\xe2\x3e\x84\x9b\x21\xdc\x0c\xe1\x66\x08\x37\x5b\x5d\x91\xa8\x4e\x86\x2c\xa1\xc8\x12\x8a\x2c\xa1\x23\xcf\x12\xda\x48\xe9\x80\xe2\x11\x42\xba\xfa\x83\x83\x57\x27\x6b\x42\xba\x03\xae\x4e\xd6\x86\x62\x37\x55\x27\x7b\x11\xb9\x46\x75\x32\x54\x27\xb3\x1f\xa1\x3a\x19\x1c\x0f\xe0\x78\x00\xc7\x03\x38\x1e\xc0\xf1\x00\x44\x1b\x90\xf3\xf9\x11\x01\xe4\x04\xe4\x04\xe4\x04\xe4\x04\xe4\x3c\x61\xc8\x09\xee\x00\xee\x00\xee\x00\xee\x80\xea\x64\xa8\x4e\x86\xea\x64\xe1\x93\xd6\x61\x8f\xc1\x7a\x8f\xea\x64\x0d\x5f\x3b\x38\x03\x42\x75\xb2\x53\x48\xcb\xd6\x57\x75\xb2\x36\x48\xaf\xb9\x36\xd9\x01\xc2\x51\x7b\x4f\x97\x51\xf6\xa9\xdd\x31\x87\xd0\xa8\x23\x08\x8d\x42\xba\x0c\xa4\xcb\x68\x68\xcc\x80\x05\xb1\x71\xa4\xcb\xd8\xa1\xb9\x07\xad\x4d\xb6\x75\x7b\x8f\x49\xc6\xed\xb7\x36\xd9\x8e\x32\xee\x2b\xb6\x43\x7e\x8f\xfd\x96\x26\xdb\x36\xb1\x07\xd2\x79\x34\xf4\x06\x72\xd3\x18\xe5\x26\x04\x50\x9f\x50\x00\x35\x22\xc5\x10\x29\x86\x48\x31\x44\x8a\x41\xe5\x5b\xb7\x8b\x06\x19\x96\x81\xc2\x64\x83\xd1\xb0\xfa\x2e\x4c\x36\xb8\x58\x92\x86\xc2\x64\x6d\xb4\xa5\xa6\xc2\x64\x5d\x06\x90\xa0\x30\x59\x58\x03\xed\x45\x04\x14\x26\x73\xff\xc3\xdd\x05\x7b\xda\xc1\x0b\x93\x1d\x00\x19\x57\x0b\x93\xad\x79\x3d\x0a\x93\x35\xf7\x19\x04\x1c\x85\xc9\xfa\x28\x4c\xd6\x46\x98\x6a\x2c\x4c\x76\x44\xe4\x1e\x85\xc9\x60\x8f\x3e\x3d\x8e\x8f\xc2\x64\x5d\xae\x1b\x14\x26\x83\x2a\x04\x55\xe8\xe9\x30\x8e\xa4\x30\xd9\x8b\x95\xa1\xfd\x14\x26\x6b\x67\xfa\x6a\x2c\x4c\x76\x44\xf2\x1a\x3c\x2d\x21\xa1\x9d\x82\x84\x36\x20\x41\x08\xf7\x75\xf8\x04\x9e\x96\xee\xc9\x47\x25\x5e\xf4\x59\x98\x6c\x1f\x8e\x8b\x94\xad\xec\x30\x55\xc9\xcc\xab\x5b\x3a\x2e\x36\x56\x24\x5b\xfd\x3d\xdc\x17\x91\x14\x0c\x49\xc1\x90\x14\x0c\x49\xc1\x90\x14\xec\x20\x1a\x06\x14\xc1\xd6\x13\x85\x6a\x64\x43\xca\xdd\x06\x67\xfa\x13\x72\xa6\x47\xa2\x3e\x24\xea\x43\xa2\x3e\x24\xea\x43\xa2\x3e\x24\xea\x43\xa2\x3e\xc4\x98\x21\xc6\x0c\x31\x66\x88\x31\x5b\x5d\x91\xa8\x46\x86\xac\xa0\xc8\x0a\x8a\xac\xa0\x23\xcf\x0a\xda\x48\xe7\xc0\xdf\x11\x37\xba\xfa\x83\xc3\x57\x23\x5b\xc1\xb9\x43\xae\x44\xf6\x0c\xb9\x6e\xac\x42\xb6\x2b\xad\x46\x05\x32\x54\x20\xb3\x1f\xa1\x02\x19\x9c\x0d\xe0\x6c\x00\x67\x03\x38\x1b\xc0\xd9\x00\x14\x1b\x60\xf3\xf9\x11\x01\xd8\x04\xd8\x04\xd8\x04\xd8\x04\xd8\x3c\x61\xb0\x09\xd6\x00\xd6\x00\xd6\x00\xd6\x80\x0a\x64\xa8\x40\x86\x0a\x64\xe1\x93\xf6\xf1\x8d\x46\xe8\x47\xf5\xb1\x86\xaf\x1d\x94\xf9\xa0\xf2\xd8\x29\xe4\x5d\xeb\xab\xf2\x18\x4f\x9f\xa5\x78\x6b\x0a\x8f\xed\x37\xea\xb4\xff\x54\x18\xd4\x9f\x76\x27\x1b\xa2\x9f\x8e\x20\xfa\x09\x69\x30\x90\x06\xa3\xa1\x31\x03\x95\xbb\x46\x92\x02\x63\xbb\xa6\x1e\xb6\xd0\xd8\x36\x6d\x3d\x26\x51\xb6\xe7\x22\x63\xdb\x8b\xb2\xaf\xd8\xb6\x79\x3a\xf6\x5b\x5d\xac\x85\x8c\xb4\xa6\xb8\x18\x32\x73\x40\x3e\x1a\xab\x7c\x84\x58\xe8\x13\x8a\x85\x46\xd0\x17\x82\xbe\x10\xf4\x85\xa0\x2f\xa8\x76\xeb\x76\xd1\x20\x23\x2c\x50\x58\x6c\x30\x5a\x55\xef\x85\xc5\x86\x14\x16\xd2\x54\x54\xec\x19\x0d\xa9\xb1\xa0\x58\x47\xb1\x20\x28\x26\x16\xe6\xbe\xbd\x58\x80\x62\x62\xee\x7f\xb8\xaf\x60\x33\x0b\x1f\x1e\xa4\x90\xd8\x7e\xe9\x6f\xad\x88\xd8\xd3\x57\xa3\x80\x58\x73\x9f\x01\xb2\x51\x40\xac\x97\x02\x62\xcf\x08\x4e\xcd\xc5\xc3\x8e\x83\xbe\xa3\x70\x18\xec\xcd\xa7\xc7\xe3\x51\x38\xac\xcb\x75\x83\xc2\x61\x50\x7b\xa0\xf6\x8c\xb3\x68\xd8\x4b\x14\x9f\x3d\x15\x0c\x7b\xd6\xac\xd5\x5c\x2c\xec\x38\xe4\x33\x78\x47\x42\x1a\x3b\x76\x69\x6c\x40\x42\x0f\xee\xe6\xf0\xc9\xc9\x7b\x47\x1e\x95\x18\xd1\x6b\x71\xb0\x7e\x1d\x0e\x29\x48\x31\xa7\xc3\xeb\x20\xd5\xc1\x3e\x98\xf7\x7f\x36\xef\x6f\xe9\x7e\xd8\x54\x22\xac\xf9\x21\xf0\x46\x44\xea\x2e\xa4\xee\x42\xea\x2e\xa4\xee\x42\xea\xae\x83\x28\x19\xd0\x05\x5b\x4f\x14\xea\x84\x0d\x29\xc3\x1a\x7c\xe3\x4f\xc8\x37\x1e\xe9\xf4\x90\x4e\x0f\xe9\xf4\x90\x4e\x0f\xe9\xf4\x90\x4e\x0f\xe9\xf4\x10\x32\x86\x90\x31\x84\x8c\x21\x64\x6c\x75\x45\xa2\x4e\x18\x72\x77\x22\x77\x27\x72\x77\x8e\x3c\x77\x67\x23\xa7\x03\x82\x47\x18\xe8\xea\x0f\x0e\x5e\x27\xac\x91\xe9\x0e\xb8\x58\x58\x2b\x90\xdd\x54\x31\xec\x65\xf0\x1a\x65\xc3\x50\x36\xcc\x7e\x84\xb2\x61\xf0\x3d\x80\xef\x01\x7c\x0f\xe0\x7b\x00\xdf\x03\x40\x6d\x70\xce\xe7\x47\x04\x9c\x13\x9c\x13\x9c\x13\x9c\x13\x9c\xf3\x84\x39\x27\xd0\x03\xd0\x03\xd0\x03\xd0\x03\xca\x86\xa1\x6c\x18\xca\x86\x85\x4f\x5a\x47\x3d\x96\xe6\x7b\xd4\x0e\x6b\xf8\xda\xe1\x39\x10\x0a\x88\x9d\x42\xde\xb5\xde\x0a\x88\xb5\x03\x7b\xcd\x45\xc4\x0e\x11\x97\xda\x7b\xae\x8c\x4a\xa7\xda\x1d\x76\x08\x92\x3a\x82\x20\x29\x24\xcc\x40\xc2\x8c\x86\xc6\x0c\x59\x1e\x1b\x47\xd6\x8c\x5d\xda\x7b\xd0\xc2\x62\xdb\x37\xf8\x98\x84\xdd\x7e\xab\x8b\xed\x2a\xec\xbe\x62\x3b\x65\xfc\xd8\x73\x9d\xb1\xed\x93\x7d\x20\xc5\x47\x53\x6f\x20\x41\x8d\x51\x82\x42\x50\xf5\x09\x05\x55\x23\x7a\x0c\xd1\x63\x88\x1e\x43\xf4\x18\x94\xbf\x75\xbb\x68\x90\xa1\x1a\x28\x38\x36\x18\x45\xab\xef\x82\x63\xc3\x8b\x2f\x69\xa8\x3a\xd6\x4a\x61\x6a\x2a\x3d\xd6\x69\x50\x09\xea\x8f\x85\x55\xd0\x5e\x4a\x40\xfd\x31\xf7\x3f\x5c\x5f\x30\xad\x1d\xbe\x08\xd9\x21\x30\x72\xb5\x12\xd9\xba\xf7\xa3\x1c\x59\x73\x9f\x81\xc5\x51\x8e\xac\x8f\x72\x64\xad\x24\xaa\xc6\x9a\x64\xc7\x04\xf3\x51\x98\x0c\x76\xe9\xd3\x23\xfb\x28\x4c\xd6\xe5\xba\x41\x61\x32\xe8\x43\xd0\x87\x1a\xc6\x71\x24\xd5\xc9\x5e\xae\x11\xed\xa7\x44\x59\x4b\x1b\x58\x63\x9d\xb2\x63\x92\xd9\xe0\x80\x09\x31\xed\x24\xc4\xb4\x01\x49\x43\xb8\xb4\xc3\x27\x70\xc0\x0c\x8f\x3e\x2a\x21\xa3\xcf\xda\x65\xfb\x70\x67\xf4\xb7\x50\x5a\x3c\xa8\x64\x31\x17\x51\xc2\xe5\xfc\x30\xb5\xcc\xae\x43\x53\x7e\xa5\xa6\xbc\x37\x4d\x69\xe9\xe9\xd8\x54\xd6\xec\xd9\xe7\xc1\xfd\x11\x59\xc6\x90\x65\x0c\x59\xc6\x90\x65\x0c\x59\xc6\x0e\xa2\x94\x40\x77\x6c\x3d\x51\xa8\x70\x36\xa4\x64\x70\x70\xc6\x3f\x21\x67\x7c\x64\xfe\x43\xe6\x3f\x64\xfe\x43\xe6\x3f\x64\xfe\x43\xe6\x3f\x64\xfe\x43\x8c\x1a\x62\xd4\x10\xa3\x86\x18\xb5\xd5\x15\x89\x0a\x67\x48\x33\x8a\x34\xa3\x48\x33\x3a\xf2\x34\xa3\x8d\xf4\x0e\xc8\x1e\x71\xa7\xab\x3f\x38\x78\x85\xb3\xe7\xf0\xee\x80\x8b\x9d\x6d\x4b\xba\x9b\xea\x9e\x75\x46\xb7\x51\x02\x0d\x25\xd0\xec\x47\x28\x81\x06\xe7\x04\x38\x27\xc0\x39\x01\xce\x09\x70\x4e\x00\xf5\x06\x08\x7d\x7e\x44\x00\x42\x01\x42\x01\x42\x01\x42\x01\x42\x4f\x18\x84\x82\x4d\x80\x4d\x80\x4d\x80\x4d\xa0\x04\x1a\x4a\xa0\xa1\x04\x5a\xf8\xa4\x75\x04\x65\xa3\x25\x1f\xd5\xd0\x1a\xbe\x36\x28\x66\x84\xc2\x68\xa7\x90\x01\xae\xbf\xc2\x68\xdb\x42\xc0\xe6\x1a\x69\x07\x0e\x72\xed\x3d\x5b\x47\x73\xff\xda\x1d\x8c\x08\xbe\x3a\x82\xe0\x2b\x24\xee\x40\xe2\x8e\x86\xc6\x8c\x44\x8c\x1b\x47\x0e\x8f\x17\x36\xfd\xa0\xf5\xd4\x5e\xd4\xf6\x63\x92\x9c\xfb\x2d\xad\xd6\x81\xe4\xfc\x8a\xbd\x34\x2d\xc9\xbe\x0b\xae\xbd\x24\x23\xc9\x60\x44\xb4\x91\xe4\x21\x81\x38\x56\x9d\xe4\xc1\x8a\x63\x88\xfc\x3e\xa1\xc8\x6f\x84\xb8\x21\xc4\x0d\x21\x6e\x08\x71\x83\x26\xb9\x6e\x17\x0d\x51\x93\x84\x3a\x36\x04\x75\xac\xef\x02\x6c\x83\x0e\x7f\x69\xa8\xc5\xb6\xad\x2e\xd5\x54\x96\xad\xaf\x98\x17\x54\x68\x0b\x6b\xa3\xbd\x00\x81\x0a\x6d\xee\x7f\xb8\xd9\x70\x3b\x0c\xaa\x58\xdb\x81\x29\x77\xb5\x6e\x5b\x8b\xa6\xa0\x84\x5b\x73\x9f\x01\xf0\x51\xc2\xad\x8f\x12\x6e\xdb\x0a\x62\x8d\xd5\xdc\x8e\xd4\xed\x00\x85\xdd\x60\xe9\x3e\x3d\xc7\x03\x14\x76\xeb\x72\xdd\xa0\xb0\x1b\xd4\x28\xa8\x51\x47\x51\xe3\xad\x53\x45\x6a\x3f\xe5\xde\xb6\x37\xb3\x35\x56\x7e\x3b\x52\xf9\x0e\x6e\xa5\x90\xee\x4e\x4d\xba\x1b\x90\x10\x85\xbb\x3e\x7c\x02\xb7\xd2\x67\x9a\x7e\x54\x62\x4a\x9f\x55\xe2\x86\xe4\x99\x79\xa9\x6d\xe2\xc3\x8a\x83\x66\x3f\x6c\xd1\xbe\xc7\xdf\x60\x7b\xa0\x8c\x2e\xa3\x23\xce\x2d\x6c\x7e\xa0\x1e\xa0\x1e\xa0\x1e\xa0\x9e\x21\xa2\x9e\xae\xee\xc5\xf6\xd0\xa7\xe1\x62\x1c\xa5\x69\x00\xe8\x07\xc6\x81\xd3\x33\x0e\x00\xfd\x74\xb9\x6e\x80\x7e\x60\x0e\x82\x5a\x05\xf4\x53\x1f\xa6\xfe\xd0\x4f\x77\x56\x90\xf6\x10\xe8\x58\xe4\x3d\xa0\x20\x48\x7b\xa7\x26\xed\x0d\x48\xa8\xc2\xdd\x1f\x3e\x01\x0a\x7a\xa6\xe9\x47\x25\xb6\x1c\x13\x0a\x52\xb1\xde\x53\x2e\x8e\x4a\x54\xb2\x9a\xb2\x6b\x15\x6f\x90\x66\xaa\x59\x38\xde\x87\xdf\x55\xc4\x9a\xfa\xaf\x91\x7d\x03\x85\x76\x50\x68\x07\x85\x76\x50\x68\x07\x85\x76\x0e\xa2\x7f\x40\x4d\x6c\x3d\x51\x87\x54\x13\x51\x0f\x09\xb9\xa0\x4e\x38\x17\x14\x8a\x5f\xa1\xf8\x15\x8a\x5f\xa1\xf8\x15\x8a\x5f\xa1\xf8\x15\x8a\x5f\x21\x45\x22\x52\x24\x22\x45\x22\x52\x24\xae\xae\xc8\xbd\xd6\x78\x43\xa5\xbd\x21\xcc\x02\x2a\xed\xa1\xd2\xde\xb1\x55\xda\x6b\x24\x73\xa0\xf3\x5b\x62\x3a\xe7\x2a\x75\x82\x94\xdb\xde\xc5\xa5\x9c\xd4\x23\xf2\x56\xf1\x8e\x5e\x79\x9d\x07\x26\x5a\x33\x58\xee\x54\x67\x2f\xaf\xab\x29\x33\x6d\x7d\x86\x59\x9b\xdf\x3e\x71\xbf\xdb\x8d\x53\xaf\xb4\x8a\xa4\x30\xaa\x87\xf9\x83\x52\xf7\x73\x9e\xdf\xeb\xd2\xa7\xdb\x36\x95\x0c\x2f\xda\x99\x87\x96\x99\xd1\x21\x7e\xf8\xf4\xe9\x97\x8f\xef\x3e\xff\xf2\xf5\x75\x69\xfa\xb0\x52\x96\x22\x51\x55\xce\xb3\x44\x90\x8d\xe3\x36\x3c\xd5\xc8\x15\x72\x96\x5a\xd3\xaf\x11\x7e\x13\x3e\x23\xb1\xb3\xfc\x8a\x51\x33\xab\x2a\xa2\xb5\x27\x9c\x69\x16\x4b\x1d\xe5\xc2\xb4\xb9\x84\x46\x15\xd8\xe1\xec\x1a\xf5\x07\x05\x4b\x83\x51\xa1\x8d\xba\xee\x05\x5a\x73\xe4\xe5\x0f\x3c\x39\x67\xa9\xb2\x3c\x97\x14\xe1\x60\x1c\x59\xb5\xaf\x11\x51\x5c\x32\xdf\x67\x67\x88\x0a\x6a\xb0\x16\x9a\x2a\x79\x06\x0b\xb3\xb3\x97\x38\x94\x55\xd3\xea\xcc\xa7\x34\x04\x71\x40\xa4\x53\xc1\x0b\xa3\x8c\xcf\x78\x21\xd8\xca\x44\xb8\x27\x89\xd4\x48\xdb\xd6\xee\x90\xc9\x92\xdd\x36\x3d\x76\x87\x8b\xa2\x61\x09\x1c\x48\xa3\x82\x9b\x01\xdc\x0c\xe0\x66\x00\x37\x03\xb8\x19\x34\x1d\xbe\xe0\xd7\x23\x1a\x11\x20\x4d\x20\x4d\x20\x4d\x20\x4d\x20\x4d\x20\xcd\xe3\x42\x9a\xa0\x0c\xa0\x0c\xa0\x0c\xa0\x0c\xbd\x53\x86\x2d\x48\xbc\x55\xe6\x54\xee\x83\x2b\xcd\xf4\x5b\x72\x6c\xbe\x77\x4b\x97\x98\x9d\x54\x4b\xba\x9d\x74\x52\xdc\x89\xb9\xbd\xb6\x74\x91\x0b\x3e\xa7\xe1\x89\xe3\x73\x77\x31\x9c\xbb\xef\xce\xd5\x03\xc9\x3e\x15\xf5\x8e\xdd\xd8\xaa\x44\xab\x4b\x7d\x97\x21\x7c\xdc\xb4\xc0\xc6\x9f\x39\x61\xed\x0f\xcc\xcb\xbe\xb7\x03\xff\xa7\xa7\x63\xd0\xe6\xd9\xf5\x5f\x0f\x1b\x04\x95\xb1\x8e\x2a\xfe\x20\x75\x71\x8a\xdc\xc7\x9c\x5f\x43\x64\x3d\x3b\xa4\xb6\x43\xfe\xb7\xd1\xe5\x7f\x53\xba\x63\xa2\x67\xb5\x30\xc6\x9f\x81\x77\xf6\x6b\x1d\xe1\xbb\xa1\x66\xc9\x50\x31\x72\x62\x9c\x4e\xb0\x13\x72\x62\x20\x27\x46\x43\x63\x06\x29\x6c\x8d\x24\x03\xc6\x36\x0d\x3d\x6c\x09\xe7\xf6\x2d\x3d\x26\xd9\x95\xc4\x87\xe1\xc8\xae\xaf\xd8\x76\x89\x38\x5c\x06\xf6\x3d\xe5\xe3\x78\x4e\x24\xaa\xe6\xe0\x40\xe6\x8d\xda\xdb\x21\x10\x8d\x51\x20\x42\xac\xf3\x09\xc5\x3a\x23\xa8\x0b\x41\x5d\x08\xea\x42\x50\x17\x74\xb9\x75\xbb\xe8\xf0\xba\x1c\x54\xa4\x43\x85\x75\x0c\x48\x49\x0a\xb6\xdf\x7e\xaa\x4c\xd5\x65\xa6\xcd\x1a\x4f\x63\x25\xa9\x4e\x22\x38\x2a\x92\x83\xf8\x46\x7e\x59\xb7\xe6\x5f\x3c\x2a\x26\x8c\x5d\x99\xff\xfa\xbf\xcf\xb9\x24\x03\x99\x66\x51\xb2\xd0\x85\xc8\xcb\xfb\xc0\x25\x91\x4f\xe4\xbd\x60\x67\xa1\x85\x67\x46\xec\xf3\xa2\xca\x84\x5d\x27\x3c\x4d\x5d\xf6\x7f\x12\x26\x78\x62\xe5\x97\xb7\x7f\xd8\xe5\x80\xa5\x36\x1e\xe8\x9a\x0f\x83\x16\xa4\xe4\x5b\x3f\x7c\xa6\xa7\xec\xca\x8e\x98\x39\xda\x33\xed\x47\xc7\xb9\x2e\x51\x46\xfe\x88\xa7\x15\x81\x77\xd9\xf3\x40\x99\xc6\x1c\x2f\x21\x3e\xbe\xfb\xe7\x98\x4e\xf5\x7e\x0b\x94\xed\x93\xd9\xd6\xca\x91\xad\xbe\x18\xc5\xc7\x9a\xfb\x0c\xf8\x8c\xe2\x63\xdd\x14\x1f\xdb\x46\x5c\x6a\x2e\x30\x76\x0c\xc8\x1c\x85\xc4\x60\x35\x3e\x3d\x8c\x8e\x42\x62\x5d\xae\x1b\x14\x12\x83\xb2\x03\x65\x67\x8c\x65\xc3\x76\x57\x77\xfa\x2a\x12\xb6\x9d\x11\xab\xb9\x10\xd8\x31\xc8\x65\x70\x65\x84\x0c\x76\xdc\x32\xd8\x80\x44\x1d\xdc\xc8\xe1\x93\x93\x76\x65\x3c\x2a\xd1\xa1\xd7\xd2\x5d\x7b\xf2\x0f\xbc\xe4\x45\xc1\x6b\x96\xaa\xee\xd9\x59\xa4\xd2\x54\x44\x05\xfb\xf3\xd5\x97\x52\xeb\x2b\x14\xb3\xaf\x7e\xbe\x80\x97\xfb\xbd\x95\x42\xfe\x2c\x8a\x9a\x20\xf2\xce\xb6\xbf\xc5\xb1\xb2\xb6\xb9\x7b\xdb\xfa\x2b\x27\xe8\x09\xee\x19\x37\x95\xbd\xee\x1b\xbb\x22\xbc\x4f\xe6\xde\x60\x83\xcf\x65\xc6\x65\x6a\x04\x8b\xd4\xe5\x63\xa2\x2c\x5b\x22\x5a\x14\x3e\xc9\xd8\x7c\xce\xd3\x15\xf7\xba\xaa\x04\x60\x7e\x4b\xd2\x59\x4e\x0a\x3f\x7d\xa4\xd2\x95\x47\x53\xfa\x0f\xb5\xb5\xc5\x3b\x3c\xa3\x1b\xa3\x77\x3b\x13\xfe\x0a\x84\xd9\x30\x3b\x20\x32\xcd\x7d\x1e\x14\x91\xb9\x29\x62\x91\xdb\x35\x9a\x2f\xc4\xaa\x9a\xa3\xdd\xa7\xb4\xac\x6f\x8d\x86\x61\xf5\x15\x51\x3a\x9d\xba\x53\xdf\xc6\xb3\x57\x77\x01\xa5\x61\xd9\x72\x45\xdb\xf7\x35\x2f\xe7\x26\xd3\x51\x37\x03\x20\x53\xdf\xff\xf3\xd0\x43\x1b\x8f\xaf\x0b\x9e\xc6\x3c\x8f\x99\x4c\xb3\x45\x51\x89\x32\x77\x3b\xd6\x8d\x82\xd4\x0d\xfd\x27\xff\xce\x1d\x06\x40\xa6\xfb\xee\xbf\x5a\x14\x1b\x16\x80\xb2\x70\x6e\x6f\x0b\x40\x2d\x8a\xbd\x0e\xc0\x97\x2f\xff\xcf\xba\xde\x73\x56\x14\xcb\xd2\x11\x37\x49\x94\x75\xfa\x6d\xec\xba\x4f\xae\x93\x71\xa3\x45\xb3\xe2\x2e\x57\x8b\xd9\x5d\xc8\x84\x64\x0f\xfb\x7c\x91\x52\x92\x19\x6d\xf3\x1b\x98\xc7\x4b\x5d\x79\xb2\xcb\x90\xf5\xa8\xf2\x7b\x91\xb3\x54\xc5\xc2\x7b\x8f\x3e\x79\x46\x07\xab\x6d\x2d\x2f\xdd\x7a\xa8\xdd\xbf\x7a\x8d\xd6\x75\x62\xe7\xf5\xa7\x9b\x0e\xe4\xce\x6b\xa5\x21\x78\x42\xf0\xec\x49\xf0\xdc\x55\x7b\xbb\x35\x07\x50\x3a\xab\xaa\x6f\x3b\x88\xae\xb0\x5c\xb6\x3a\xfd\x1a\xac\x96\x3d\x0b\x5b\x27\x6a\xab\x7c\x7e\x2a\xd6\xda\x29\xf7\xa8\xcc\xfc\xe0\xf6\x1e\x74\x98\xb1\xe9\x30\xe3\xf5\x2a\xeb\x2b\xa5\x89\xbb\x47\x6c\xc2\xc5\x1d\xb3\x9b\x3c\xdd\x0f\x63\x27\x83\xbe\x47\xeb\xe5\xa5\xc6\x21\x06\xd7\x78\xe1\xa8\x0e\x88\x6d\x6c\xdd\xd8\x83\xc6\x21\x6d\xd9\xda\x63\x12\xf0\xfb\x4d\xd7\xd0\x78\xd7\xf7\x25\xd4\x8b\x07\xe9\xbb\x05\xa9\x1e\x52\x3d\xa4\xfa\x7d\x4a\xf5\x57\x7e\xf3\x41\xac\x87\x58\x3f\x76\xb1\xde\xdf\x24\x2f\x92\xeb\x1b\x76\xc4\x58\x05\x7b\x97\xfd\xe0\xe1\xed\xad\x28\xf8\xdb\x49\xe8\x19\x04\xfc\xc3\x8c\xee\x00\x04\xfd\x17\x37\xfa\x20\x02\xff\x0b\x5b\x0d\xc1\x3f\x7c\x3d\x08\xfe\xd9\xd3\x9c\x1f\x41\xfc\x6f\x16\x0a\x6a\xf2\x3f\x4d\x44\x97\x4a\xc0\x37\x11\x1d\xc4\x2b\xcb\xbc\xf8\x85\x3e\x59\x57\xa6\xed\x00\x63\xa3\xd8\x3e\xfb\x00\x63\x66\x3d\xec\xdd\x1f\xeb\xbd\xf5\xb4\x22\x57\x04\xd2\x2d\xe7\xaa\x08\xfe\x57\x15\xb7\xac\x09\xe3\xf9\xec\x81\xf1\x3c\xe7\xcb\x09\xfb\xab\x2a\xfc\x07\x56\x0d\x33\x9a\x2c\xd3\x77\x22\x49\xb6\xf7\xb6\xa2\x57\xed\x53\x91\x79\x0f\xff\xb3\xe7\xfc\xcf\xd6\xae\x45\xa8\x78\xcd\x7d\x1e\x94\x8a\xf7\xd9\xb9\x13\xd5\x9d\xad\xac\x9d\x69\x2b\x67\xab\x91\x38\x9b\x35\xf7\xf7\x78\x9d\xcb\x9a\xfb\xeb\x94\xf8\x7d\x4c\xf0\x88\x9c\xc9\x48\x50\xeb\x68\xa6\x8f\xc3\xb1\x6b\x07\xd1\xf5\x89\x5b\x17\x64\x57\xc8\xae\x9d\xc8\xae\xbb\x2a\x7e\x89\x9a\xf5\xaa\xf7\x51\x26\xbb\x44\x05\xe8\xf2\xc2\x84\x76\x1f\xd4\xac\xcd\x76\x29\xc4\xb7\xe2\x32\x4b\xf8\xea\x7d\x72\xdc\x26\x33\x6c\xd1\xe3\x49\x26\x56\x8f\xef\x31\x97\x70\x50\xb0\x9c\x60\x92\xa8\x99\xde\x42\xb1\x1a\xb1\x4e\xf5\x93\x0a\x69\x7f\xcd\x49\xf2\x44\x30\xeb\x40\x22\x99\xd2\x2b\xf6\x2a\x8b\xc9\x54\x8b\x68\x91\x8b\x9b\x7b\x99\x7d\xf9\x70\xf3\xab\xc8\xe5\x74\xf9\x03\x8f\xee\x45\x1a\xaf\x0a\x67\x04\x67\x33\xe9\xaa\x05\x57\xf8\x79\xa4\xd2\xa9\xcc\x6d\xbe\x6d\x02\xe7\x54\x75\x71\x1a\x6a\x5e\x53\xb1\x60\x91\xbb\xda\x82\x41\x33\xbd\xf5\xaf\x21\x56\xe5\x2e\x36\x9b\xeb\x65\xc2\x6c\xa8\x00\x49\x82\x73\x7e\x6f\x15\xf9\xbf\x7c\xf9\x72\x7d\x13\xbe\xa8\x52\x76\x2b\x8a\x47\xe1\xa8\x57\xd9\x32\x9f\x11\x3a\x3c\xdf\xf5\xd1\x85\x1f\xd8\x4c\x31\xf5\x9f\x44\x3c\x35\x1d\x79\xa0\xee\x87\x39\xa6\xd2\xdb\xb6\x75\xb6\x58\x2f\x75\xc4\x28\xa0\x21\xbd\x78\x2e\x78\xc2\xcc\xfe\x4e\x44\x31\x61\x36\x29\xbd\xf0\x7f\x70\xdd\x9a\xca\xd9\xc2\x95\x0f\xae\xbc\x20\xbc\xfc\x4c\xb3\x2f\x1f\x6e\x58\x94\x0b\x2a\x9f\xcc\x13\x7d\x6e\x5e\x1a\x2b\x61\x0b\x38\x9b\xf6\xfa\xe8\x06\xdf\x71\x57\xfa\xb1\xfa\x76\xf3\xb2\x87\x45\x92\x8a\x9c\x40\x36\x65\xb0\x9f\xf3\x34\xa4\xce\x96\x71\x9c\xb8\x68\x8c\x7b\xf6\x9d\x98\xcc\x26\x8c\xa7\xee\xff\x9b\x11\x08\xb3\x29\xd3\x42\xe4\x91\xc8\x0a\x4f\xe3\x17\x3c\x29\x87\x23\x52\x73\xca\xa3\xd3\x34\x00\x6f\xb6\x5d\xf0\x9b\x56\xdf\x5e\xb7\xc1\xcf\x53\x9b\xb1\x9c\x6a\xa4\x87\x6a\xef\xb7\xcb\xc2\x57\x7a\xe7\x95\x94\xf2\x6e\xcd\xf8\xb2\x07\x54\x8d\x96\x17\xce\x37\xc1\x8a\x19\xa4\xbc\xf9\xf5\xc6\x97\x34\xae\xb1\xd4\x59\xc2\x97\x54\x46\x78\x9e\x51\x8e\x70\x4a\x63\xce\x12\x99\xd2\x9e\x48\xd4\x6c\x26\xbd\x7f\x42\xa5\x08\xbb\x4e\xe4\xec\xae\x48\x96\xb6\xf0\xb7\xd1\xfa\xfd\x1f\x4a\x57\x87\xba\x54\x43\xd5\x52\xb7\x9d\x0c\xfa\xd1\x0f\xa6\xcb\xcd\x43\xdf\x54\x70\xa0\x7b\x5b\x15\x0c\x54\xa3\x33\x50\x8d\xc5\x07\xa1\xad\x39\x86\x36\x5d\x96\x8b\x07\xa9\x16\x3a\xec\x6f\x11\x57\x64\x97\xa7\x62\xcf\x4e\x17\xbe\x7f\xc9\x5e\xcf\xba\x77\x2c\x17\x89\xad\xbc\x42\x61\x76\xcd\x95\x5c\xa2\x45\x9e\x53\xf1\x7a\xe9\xaf\xbb\x52\xf4\xbb\x53\x8f\x6e\x04\xea\x45\x58\x32\x73\x4b\xc6\x42\x97\x75\xe2\x39\x99\xac\x1e\xb9\x66\xba\xe0\x39\x55\xf3\x27\xf9\xd0\xfc\x9a\x69\x99\xba\xdc\x4c\xe6\x4b\xf4\x85\x60\xfa\x09\x85\xe3\x9f\xd6\x79\xf1\x85\x0f\x16\xc5\x22\x17\xe7\x2c\x55\xf6\x69\x4f\x7f\xf9\xc9\xdb\xf1\xd5\xd4\xbe\xcb\x55\x54\xa1\x23\xd4\xfc\xff\x2f\xa6\x89\xbe\x60\x45\x28\xea\xb2\xad\x01\xad\xf2\xe4\xbd\x1e\x9c\xcd\x77\x56\x42\x95\xd1\xc3\x5d\x65\xe4\x1f\x77\xb8\xd2\x28\xb9\xe9\xa3\x61\xad\xd5\xb2\x39\xb7\x9f\xf3\x5c\xd0\x17\xd2\xf2\x11\xe4\x24\x53\xad\xb7\x1d\x76\x81\x1f\xc7\xa6\x71\xdd\xd6\x18\xc7\x65\xf2\xc1\x34\x7d\xdf\x43\x68\x23\x9a\x79\x1c\x1b\x69\xe8\xf3\x4f\xef\xff\xe3\x3f\xfe\xe3\xff\x67\x3a\xe2\xfe\xf9\x57\x9e\x2a\x5a\xca\xba\xe0\xf3\x8c\x39\x29\xf8\x56\xcc\x64\x9a\x3a\x2f\x4e\xf1\x20\xf2\x65\xf5\x12\x0f\xd7\xff\xcb\x4d\x94\xfe\xc5\x5d\x9d\x10\xee\x5f\xff\xbb\xab\xa1\x26\x53\x79\x31\x55\xf9\x23\xcf\xe3\x83\x80\xfa\xca\xfb\x5f\xc8\xeb\xaf\x2b\x3d\x81\xe9\x73\x14\x76\x95\x7d\x98\x3e\xcd\xb2\xf8\xc9\x2e\x8b\xbd\xd3\xfb\x15\x49\xf8\xb9\xa6\x40\x36\x6e\xee\xf3\xa0\x64\xe3\x0f\x52\x17\x66\x4e\xcd\xc1\x65\xef\x01\x77\x7a\x7d\xf6\xd9\x81\x1f\x8d\xc8\xbc\xa0\x90\x80\xdf\xc4\xed\x8d\x8a\xee\x45\x73\xaf\x37\xc9\x91\xe6\xe9\x1d\xdd\x9c\xfe\x8a\x38\x04\xcc\xda\xfd\x78\x7f\xc2\xb4\x70\xbe\xe3\x7c\xf7\x7f\xee\xf0\x7c\xdf\x59\x70\xca\xd5\xb7\x65\xdf\x85\x69\xfd\xbe\xfa\xf1\xea\xc3\xd5\x97\xab\xfa\xce\x32\xef\xdf\x72\x4f\xd9\x42\xaf\xf5\x5d\x45\xdd\xc0\x7e\xc2\x7e\xf2\xfb\xc9\x2c\x88\x97\x49\x4a\xfb\x53\x1e\x76\xd8\x03\x4f\xd4\x06\x6c\x00\x6c\x80\x8e\x37\xc0\x9d\xe0\x71\x3f\x3b\xe0\x2f\x57\xef\x7e\x7c\xf1\x16\xf8\x8b\xe0\x31\xf6\x00\xf6\x40\xaf\x7b\x40\xb9\x5f\xf7\xb2\x0d\x3e\x5d\x7f\xf9\xf9\xd3\x5f\x6f\x5e\xbc\x13\x5c\x17\xb1\x19\xb0\x19\x7a\xdd\x0c\x1d\xd8\x8e\xd6\x36\x02\x56\xa3\xe6\x3e\x0f\xca\x6a\x74\xcd\x8b\x3b\x1f\xc4\xf3\xb7\xcf\x1f\x98\x69\xba\x39\xb4\x16\x5a\x04\x57\x68\x0f\xe8\xec\x41\xe6\x8e\x36\x6b\x44\xd9\x9e\xb2\x3e\x19\x9a\x43\x14\x05\xdc\xda\x7c\xf4\xee\xcb\xfb\xbf\xbc\xf8\x50\xa7\x1a\x59\x38\xd2\x71\xa4\xf7\x7b\xa4\xef\xd1\x88\xba\xcb\x26\x78\x62\x3e\xc5\x1e\xc0\x1e\xe8\x7a\x0f\x74\x5d\xde\x2b\x6c\x81\xbf\x75\xb0\x03\x16\xd8\x00\xd8\x00\xbd\x6c\x80\x57\xec\x05\xcc\xe0\xf2\x9f\x46\x38\xfb\xd7\x91\xa0\x83\xdf\x64\x71\x77\x5d\x17\x36\xb1\xb1\xb0\xb1\x4e\x0f\x21\x60\x23\x60\x23\xb0\xee\x37\xc2\x28\x51\x02\xf6\x02\xf6\x02\xeb\x7e\x2f\x8c\x1b\x29\x60\x53\x60\x53\xb0\x1e\x74\x70\xa0\x85\xd3\x46\x0b\x1e\x25\xd8\xd8\x4d\xad\x16\xf9\x6a\xdb\x9e\xeb\xd2\xd3\x4f\x00\x4a\x4e\x18\x94\xe0\xa2\xc2\x45\xc5\x7a\xb8\xa8\xc6\x08\x4c\xb0\x17\xb0\x17\x58\x0f\x7b\x61\x74\xe0\x04\x1b\x01\x1b\x81\x75\xb6\x11\x5e\xb1\xdd\x00\x8a\x2e\x78\xb1\xd0\xfd\x67\x16\xb3\xef\xe9\x28\xb9\xd8\x8d\x6d\x74\x8b\x8d\x73\xdc\x79\xc4\x5a\x17\x80\x32\xa3\x7c\x82\x5b\xf6\x78\xb2\x8c\x21\x03\xcc\xd8\x8d\x0a\x63\xc9\x00\xe3\xfe\xb5\x93\xd2\xbd\x7a\xda\x5e\xd0\x6f\xff\x6d\xf3\xc1\x3b\x17\xf9\x4c\xb4\xfa\xa6\x2e\x72\x5e\x88\x99\x8c\x2e\xda\xff\xc6\xfc\x7b\xe9\xbe\x49\x47\x7c\x9b\x1b\x2b\xe3\x79\x21\x79\x92\x2c\xd9\x22\x8b\x79\x21\x76\xbc\xbd\xe8\xad\xed\xae\xaf\x51\xd6\xcd\x99\xf3\xe8\x4e\xa6\x22\x5f\x4e\xb2\xfb\x99\xf9\x83\x9e\xcc\x45\xc1\xe9\xc2\xa1\x45\xd3\xee\xca\xd9\x7c\xd7\xa0\x5c\x5d\x75\xea\x9f\x1e\x02\x9b\x4b\xd6\x6d\x3e\x08\x36\x1f\x05\x5b\x4d\xd3\xe9\x14\xaf\xb3\x19\xeb\xa8\xbf\x36\xeb\xa1\x4b\x52\x60\x6e\x2d\x3a\x6d\x4a\x75\xf1\xbb\x35\x27\xd1\x1b\x76\xbb\x28\x98\x85\x6f\x3c\xa1\x5f\xa6\x2a\xbd\xb0\xbf\xa6\x6f\x30\x33\x6b\x9a\x7d\xf7\xdf\x5a\xa5\xb4\x97\xce\xd9\x47\x73\xe6\xb9\x7f\xdf\xf8\x93\xb0\xfc\xe3\x4a\x62\xc1\x76\x2b\x66\x6d\x65\xbd\xbd\xad\x9b\x9f\x54\x1e\x51\xca\xaa\x99\xb2\x69\x2d\xd9\xd7\xd7\x53\xf3\xb7\xaf\xaf\xd9\xbb\xda\x68\x4e\xd8\xcf\x85\x4b\x4c\xb9\xd0\x22\xf7\x1b\xf5\x82\x47\x34\x01\x94\x45\x32\x91\x36\x3b\x26\xf5\x4b\x33\xf5\xe8\xe6\x56\xd9\xad\x2a\x54\x96\x88\x09\xb3\xef\x9c\x26\x7c\x16\xd6\xd4\x22\xd5\xa2\x68\x9c\x88\xf0\xfa\x5d\x86\x57\xad\x92\x83\x67\x12\x13\x3d\x3b\xb0\x8d\xb7\x17\x94\x1f\x28\x3f\x0d\x05\xb0\xe8\x0a\x1e\xa2\xfa\xd3\xb5\xa9\x2e\x17\x59\xc2\xa3\x5d\xa5\x34\xf7\xeb\x23\x96\xd3\x76\xd8\x09\x90\xc9\x20\x93\x8d\x48\x26\x1b\x90\xe8\x83\x1b\x3a\x7c\xd2\xc7\x0d\x7d\xd8\xb2\xff\xa7\x2a\x4a\x2c\x86\x64\x47\x7d\xc5\xb6\x42\x1d\x85\x98\x67\x89\xb9\x9e\xfa\x8e\x0f\xb1\xcf\x64\x91\x4a\x12\x11\xca\x2b\x5f\xab\xf8\x8b\x6b\xc0\x06\x19\xc4\xfe\xd4\x8a\x20\xef\xc3\xef\x6b\xc2\x48\xd3\x53\xfa\x15\x47\x7a\x31\x0c\xd9\xa8\x17\x8f\xb8\xba\x10\x46\x7c\x01\x0e\x99\x2e\x84\xd3\xa9\xbd\xd4\x71\x2b\x98\x51\xeb\x28\x7d\x60\x2e\x8a\x5c\x0a\x2a\x4f\x40\x39\xe2\xad\x38\xa1\x57\x53\xd6\x4f\xd8\x8d\x4b\xb9\x5c\xcd\xa7\xec\xd2\xd9\xbb\x9b\xe9\x9c\x45\x89\x14\x69\x61\xf3\xd6\xd3\xa5\xb6\xd0\x22\x24\xfe\xa5\x86\xd8\x9f\xd2\xc3\x79\x99\x28\x9b\x6e\x24\x2f\xc9\xd0\xe5\x2b\xa9\xa0\x41\xc4\x13\xf7\x59\x39\xa5\xec\x3b\xf1\x8d\x4a\x0c\x78\x27\x2d\xfb\x48\x35\x0d\x2f\x79\x13\xca\x38\xb8\xf6\xd9\x84\xf8\x64\x60\xe7\xab\x4d\xa9\x96\x4b\x08\xb2\xd6\xc4\x57\x63\x28\x85\xe5\xd5\x9f\x69\x9b\x3d\x3a\x35\x32\x84\x15\xd7\x1e\xef\x04\x49\x59\xf1\x42\xd8\xea\x5a\x99\xb4\x6b\x99\x7d\x37\x13\xa9\xc8\xc9\x70\x3a\xa5\xdc\xd9\x8a\x4d\xe5\xb4\x10\x22\x65\x73\x99\x2e\x0a\xa1\xdf\x18\xf9\x80\x87\x8a\x0f\xf6\x67\x56\xae\x60\x2a\xad\xf4\xe5\xbc\xda\x2f\x2f\xff\x65\x2a\x75\x32\x0b\x67\xff\xf9\xf6\xdf\xd9\x67\xe7\x9c\x77\x65\x9a\x20\x7c\xc1\xbf\x42\xcd\x6c\x03\xdd\x37\x43\x8f\x0a\x75\x2f\xd2\xd0\x65\x3b\x87\x2c\x15\x22\xd6\xf6\x5b\x24\x9a\xa6\x05\x4b\xa4\x2e\xa8\xbe\x04\x49\x37\xb9\xb0\x69\xb7\x8b\x3b\x21\x73\xfa\x8c\x1e\xac\x16\x45\x7d\xc6\x49\xa0\x98\xb0\x4f\xe6\xd5\x8f\x52\x8b\xf3\xea\x5b\xcc\xcc\x68\x91\xc6\x8c\xa7\xd6\x16\x41\xcf\xf1\x8e\x76\x41\x0c\xa3\x16\xba\x42\x1a\x55\xf1\xcc\x74\x96\x3a\xf7\xec\xb0\xd0\x73\xa9\xc1\xb5\x12\x14\xa9\xf8\x56\xb0\x7b\xb1\x3c\x27\xcb\x53\xf8\x33\x9d\x8b\x05\xd3\x29\xcf\xf4\x9d\x2a\xce\x5d\x02\x73\xca\x20\x5e\x19\x90\xf0\xfd\xb0\x90\x5d\xf3\xed\x16\xba\x60\x96\xea\xf8\x02\x75\xb9\x4b\x88\x6d\x76\x8a\xd5\x06\x28\xa9\xb9\xd9\x3f\x66\xf3\xc7\x8c\x4f\x0b\x61\xd7\xf4\x54\xe6\xba\x58\x1d\x0c\x2b\x75\xcb\x34\x4a\x16\xb1\x88\x7d\x32\x73\x2f\xb6\x90\x8c\x68\x16\xa4\xf9\xaf\x9d\x94\x7b\xb1\xb4\x69\xb9\xcb\x07\x7f\x7d\xed\xbb\xfc\xf5\xf5\xe4\x6b\xfa\x35\xad\x5b\xed\x28\xaf\xf7\x22\xcb\x54\x5e\xf8\xfc\xa2\x8f\x64\xee\x91\xda\x96\x08\x64\xef\x2b\x5b\xdc\x2e\x00\xee\xbe\x52\x19\x3d\x3b\x08\xb4\x06\x7f\xb5\xb7\x96\xdb\x36\x3e\xc3\xba\x11\x62\x2b\x33\x66\xf5\x94\x82\xcd\xa5\xd6\x8c\xa7\xcb\xba\xb2\xb4\x8b\x18\xeb\x97\xdf\x61\x34\x0c\x28\x82\xad\x27\xea\x90\x8a\xe0\x3b\xa6\x85\x91\x29\xe8\x70\xa4\x03\x2d\x97\xae\x98\x66\xe2\x92\xef\x86\x05\xeb\xb7\xb2\x5d\xb8\x32\x77\xb6\xd4\x7a\xa6\x76\xca\xe7\x5e\xdc\xc9\x74\xb6\xb3\xea\x75\xe3\x5a\x74\x98\x11\x31\x42\x43\xec\xef\x9f\xe6\xea\x0e\x8e\x54\x97\xa2\x84\x3b\xbd\x68\xe9\x54\x54\xdf\x54\xa5\x17\xa9\x98\xd9\x6a\x11\x2e\x95\x70\x55\x45\xfe\x87\xc8\x55\x65\x6b\x38\x29\x51\xce\xe7\x22\x36\x4a\x78\xb2\x6c\xa8\xdf\x90\xca\xc4\x9e\xf4\xb1\x1d\x74\x36\xcb\x79\x44\xbb\x46\xaa\xb2\xd2\x67\x79\x69\x9b\x41\x0b\xab\x74\xa1\xc5\x4a\xa5\x2d\x6e\x7e\xe9\x3b\xe4\x5e\xb2\x52\xdb\x60\x62\xdb\x69\xed\xeb\x0d\x6d\xdc\x61\x9a\xa9\xcd\xd7\xd4\xe4\xa6\xda\x0f\xcf\x24\x60\x1e\xca\xf2\x4f\xf8\xad\x48\x3a\x5d\xfe\xf4\xc4\xc3\x2e\x7f\xaa\x63\x64\x4d\x42\x73\xfe\x4d\xce\x17\xf3\x4a\x79\x8c\x60\x1f\xb0\xa3\x45\xa5\x5e\x08\x6e\xd9\xd1\xb2\xa5\x65\x7f\x9e\x5a\x31\x5a\x9a\xb6\x30\xf1\x8d\x44\xa6\x55\xd9\xc4\x08\xdf\xe6\x6f\x7f\xf7\xb7\xd4\xdf\xdd\x0d\xec\x44\x3d\x7a\x9e\xd1\x0c\xa8\x6c\x16\x2d\x54\xbb\x3a\xe9\xfe\x88\x78\xea\x97\x73\x29\x09\x69\x4e\xe5\x58\x64\x21\x83\xc8\x6c\x5b\x69\x84\x7b\x51\xca\x3a\xe6\xd5\xb6\x2f\x66\xd2\x26\xec\x46\x14\x24\x11\x71\x5b\xf8\xa9\x5a\x3b\x6a\x2a\x1e\x49\x68\xe0\x69\xf5\x86\x30\x62\xca\x5c\x2d\x52\x7a\x8c\xed\xe5\x77\x8b\xcc\xbc\xcc\x6e\x68\xf3\x97\x37\x5e\x36\x11\x0f\x46\x4c\xe2\x74\x39\xf9\x5f\xfb\x95\x64\xe4\x92\xa9\x4c\x0a\x61\x24\x54\x23\x35\x9a\x3b\xca\x2b\x10\xee\x74\xa9\xe9\x10\xf6\x3e\x8d\x44\xb5\x98\x48\x29\x61\x9a\x16\xc4\xc2\x56\xdc\x11\x41\x16\xaf\xa9\x34\x24\x09\x3d\x70\x99\xf0\xdb\x44\x98\xae\x9b\x19\xb1\x92\x4c\x74\xa7\x94\x16\xb4\xf5\x0b\xe5\x25\x20\x37\x17\x66\x58\x78\x3e\x5b\xcc\xa9\x2f\x24\x52\x52\x87\x68\x90\x4c\xdf\x5c\x7b\xc2\xa3\xcb\xd1\xfd\x79\xca\xc2\x92\x2a\x4f\x25\xaf\x9d\xac\x74\x40\x6a\x26\xe6\x59\xb1\xac\xab\x51\x5c\x1b\xe5\xdb\xce\x7c\xaa\x36\x76\x68\x93\x28\x27\xa7\x2b\x82\x9c\x95\xfd\xc2\xba\x9c\x2d\x78\xce\xd3\x42\x54\x0b\xf6\xf9\x99\x0a\x87\x40\x25\xdf\x7c\x68\x7b\x10\x4b\x83\xc2\x56\x28\x26\xb5\x5e\xd8\x55\x65\xbe\x9c\x88\x72\x87\x04\x1d\xc1\x2f\xb8\x0b\x6f\x53\xa5\x72\x3c\xfe\x95\xdb\xc9\xc9\x5e\x44\x36\xf2\xb9\xd6\x0b\x11\x37\x0a\xcb\x46\xae\xd4\x8b\x5b\x6d\xbe\x9c\x16\xa1\x07\x71\x85\xa4\xd2\x08\x9a\xb9\x52\x73\x41\x05\x54\x58\x2e\xa6\x22\x77\x15\xf8\xf8\x8a\x3e\x54\xaa\x07\x66\x46\x45\xaa\x17\x79\x59\x8c\xda\x29\x38\xde\x60\x6c\x47\xcd\x76\x99\x36\x26\xa9\x32\x4c\xcf\x79\x92\x88\x9c\x45\x77\x8b\xf4\x9e\x10\x0d\x67\xb6\x26\x0c\xcf\x67\x7e\xa2\x69\xc7\xdb\xc7\x9b\x4e\x1b\x8d\x89\x0a\x5c\xb3\x4c\x69\x2d\xcd\x82\x73\xc3\x46\x0b\xae\xba\xbf\xac\x9b\x4e\x6c\xae\x74\x3b\x1d\xf4\x1e\xaa\xf2\xa6\xed\x1c\x3b\xa3\x92\x5f\xc3\xee\x2e\xa4\x56\x3f\x72\xed\x65\x58\x5f\xbc\x86\x0a\x33\x3d\xd1\x4f\xac\xd6\xce\xa9\xac\x78\xb4\x48\xe8\x8d\xb2\x5c\x36\x3b\xdd\x05\x66\xa0\x0e\x74\x2d\xfe\x28\xb2\x5c\x50\xed\xf0\x3f\xb2\x2c\x11\x5c\x8b\x70\x04\x5d\xe7\x2a\xe3\x33\x92\x8e\xae\x55\x22\xa3\xe5\xb9\x15\x50\xec\xa6\xf3\x8b\x2e\x0e\x0f\x30\xcb\xee\xed\xe4\xbf\x26\xec\xc6\x9e\x67\x56\x74\xc9\x44\x6a\x36\x4b\x79\xa7\x0a\xa6\xf2\xec\x8e\x87\x9a\x55\xf9\x42\x5c\x52\xd1\x9f\x73\xa7\xb3\xd9\x8f\xbf\xbe\xb6\x55\xff\xe4\x3f\xfc\x45\x72\x2b\x18\x8f\x63\x5a\x9d\x97\xb9\x98\x2b\xa3\x1c\x07\x35\xcc\x3e\xfe\x4c\x97\x3f\xb2\xfa\xe9\x84\x5d\x49\x3a\x1c\x2b\x4d\x57\xf9\xd3\xbe\x85\xf2\x56\xa2\xb0\xea\x31\xe9\x28\xaa\xb8\xdb\x65\x42\x6d\x0f\x7e\xf4\x7d\x5f\x2b\xf2\xec\x44\xff\xb7\x52\xcc\xa8\xeb\x66\xc3\xde\xa9\x47\x36\xe3\xf9\x2d\x9f\xd5\x8c\x93\x41\xa9\x11\xf9\x54\xe5\x73\x33\x27\x8d\xe3\xf5\x69\xa5\x47\xeb\x87\x8b\x84\x5e\x2f\xb1\x66\x76\x6c\xa5\x91\x26\x23\x19\x97\xaa\x30\xc9\x0a\xd6\x49\xc3\xcf\xb1\xb9\xac\x7d\x0d\x4e\x27\x0d\x4c\x2a\x93\xe9\xef\x11\xaf\x6a\x5f\xb8\x2b\x26\x5a\x79\xd9\x84\xbd\x8b\x22\x91\x59\xa8\x54\xd5\xec\xce\x6c\x1f\xce\xd8\x85\x5b\x80\xf5\x05\xaa\xbf\x67\x67\x3f\xf0\xe8\x7e\x96\xab\x45\x1a\x9b\x6f\xf1\x50\xc7\x76\x65\xe0\xac\x08\xe9\xe4\xe3\xfa\x43\x7c\x0f\x6e\xc3\x93\xbe\x67\x67\x3f\xa9\x5c\x54\x1e\xcb\x22\xae\x23\x1e\x9b\xde\xbb\xf1\xa1\x13\xc8\x3e\x4f\x5b\xd5\xf3\xc9\x03\xa7\xe1\x19\xbb\x2c\xc8\x6c\x75\xb9\x1f\x46\xe2\x5c\x35\x93\x68\x51\xf8\x5b\xa6\xc8\xb9\x34\xa7\x44\xca\x1e\xcd\x60\xf8\x6f\xfa\x23\xdb\x7c\xcd\x5f\x7c\x61\xe9\xe5\xfe\x04\x30\xe2\x8d\x08\x9c\xb0\xc2\xc0\xa4\xba\x8c\x55\xa4\x2f\xe9\x62\x33\xe2\xd4\x25\x5d\x4d\x17\x3c\x93\x97\x3c\x93\x17\x91\x4a\xcd\x5a\xd1\x97\xbf\x0b\xcb\x2a\xbc\x70\x4a\x77\x70\xc1\x65\xa2\x49\x7e\xa8\xca\xfe\xe4\x29\xb4\xc3\x3c\xac\x0c\xc0\x20\x66\xe1\x23\x49\x4a\x41\x9a\xd4\x74\x54\xac\xce\x94\xd1\x12\xb2\x2c\x91\x56\x36\x08\x02\x8e\xf5\xc7\x92\x9a\xdd\xc9\xd9\x1d\xb9\x69\x45\x6a\x3e\x37\x4b\x37\xb6\x8b\xba\xf1\x5d\xce\x22\x6f\x06\xb8\x7c\x92\x91\xb7\x72\xd1\xf4\x62\xf3\xdd\x71\xce\xef\xc7\x15\xef\x9b\x3d\x4e\xf2\x17\x39\x17\x46\xf2\xf4\x66\x02\x33\xd0\x97\x56\x28\xb6\xba\x1b\x49\x7f\x24\x79\xd8\xa8\xf0\x60\x08\xf1\x0a\x07\x4f\x92\x73\x96\x8b\x19\xcf\x63\x02\xfb\x46\x5c\x4b\x97\x8c\x47\x85\x7c\xa0\xba\xd5\x39\x93\xa9\xff\x7f\xbb\x1c\x4a\x85\x6d\x62\x1f\x66\x81\x46\x52\x07\xfe\xbe\x25\xa6\x73\xae\x4f\x27\xc8\xba\xed\x5d\x5c\xca\x49\xbd\x82\xef\x06\xa8\x7b\xd0\x9c\x6e\xd6\x1c\x96\x3b\x15\xda\xcb\xed\x6a\xca\x4c\x9b\x5b\xb2\x6c\xf3\x8c\x06\x67\xba\x97\xf0\xeb\x95\x56\x92\x74\xf6\x9b\x69\xe2\x0f\x4a\xdd\xcf\x79\x7e\xaf\x4b\x9f\x6b\xdb\x74\x32\xc8\x68\x67\x36\x5a\x66\x46\xb7\xf8\xe1\xd3\xa7\x5f\x3e\xbe\xfb\xfc\xcb\xd7\xd7\xa5\x49\xc4\x4a\x5f\xca\xd6\x74\x9f\x67\x89\x20\xdb\xc7\x6d\x78\xaa\x91\x37\xe4\x2c\xb5\x26\x61\x23\x14\x27\x7c\x46\xe2\x68\xf9\x15\xaa\x06\x5b\x51\x1d\x43\xc1\xfa\x58\xea\x28\x17\xa6\xcd\x25\x4c\xaa\x40\x10\x67\xef\xa8\x3f\x28\x58\x20\x8c\x6a\x6d\xd4\x78\x2f\xe8\x52\xc1\xf9\x07\x9e\x9c\xb3\x54\x59\xce\x4b\x0a\x72\x30\x9a\xac\xda\xdd\x88\x34\x2e\x99\xef\xb3\x33\x50\x05\xf5\x58\x0b\xad\xa9\x61\xde\xf2\xec\xec\x28\x0e\x71\xd5\xb4\x3d\xf3\x29\x0d\x41\x1c\xd0\xe9\x54\xf0\xc2\x28\xe9\x33\x5e\x08\xb6\x32\x11\xee\x49\x22\x35\x52\xb8\xb5\x47\xf8\x2a\xfe\xeb\x1e\xbb\xc3\x05\xd2\xb0\x04\x0e\xa4\x69\xc1\xfd\x00\xee\x07\x70\x3f\x80\xfb\x01\xdc\x0f\x9a\x0e\x5f\x70\xed\x11\x8d\x08\x50\x27\x50\x27\x50\x27\x50\x27\x50\x27\x50\xe7\x71\xa1\x4e\xd0\x07\xd0\x07\xd0\x07\xd0\x87\xde\xe9\xc3\x16\x84\xde\x2a\x73\x2a\xf7\x61\x95\x3e\xe3\xb0\xfd\xde\x2d\x5d\x62\x76\x52\x2d\x01\x77\xd2\x49\x71\x27\xe6\xf6\xda\xd2\x45\x2e\xf8\x9c\x86\x27\x8e\xcf\xdd\xc5\x70\xee\xbe\x3b\x57\x0f\x24\xfb\x54\xd4\x3b\x76\x43\xe2\xca\x72\x75\xa9\xef\x32\x84\x8f\x9b\x16\xd8\xf8\x33\x1b\xac\xfd\x81\x79\xd9\xf7\x76\xe0\xff\xf4\x74\x0c\xda\x3c\xbb\xfe\xeb\x61\x03\xa2\x6a\xdc\xa3\xb7\xdf\x7f\x90\xba\x38\x45\x2e\x64\xce\xb1\x21\xb3\xa0\x1d\x92\xca\x21\x17\xdb\xe8\x72\xb1\x75\x9f\xf1\x99\xb4\x32\xc6\x5b\xc2\x3d\xfb\xf5\x8e\xf1\xde\x70\xb3\x65\x84\x5e\xb5\x3b\xf0\x10\x2c\x75\x04\xc1\x52\xc8\x9a\x81\xac\x19\x0d\x8d\x19\xb4\x50\x36\x9a\xec\x19\xdb\x37\xf8\xf7\xcf\x36\xd8\x3a\xfd\x0e\xa5\xc5\xc7\x24\xf3\x92\xb8\x31\x3c\x99\xf7\x15\xdb\x2d\x01\x88\xcb\x79\xbe\xa7\x3c\x20\x6d\x45\xaa\x6a\xee\x0f\x64\xfc\x68\xec\x0d\x04\xa9\x31\x0a\x52\x88\xb1\x3e\xa1\x18\x6b\x04\x93\x21\x98\x0c\xc1\x64\x08\x26\x83\x0e\xb8\x6e\x17\x0d\x47\x07\x84\x4a\x75\xe8\xf0\x92\x01\x2a\x55\xc1\xc6\xdc\x4f\xfd\xa7\x62\x35\x23\x73\x0b\xcd\x68\x4d\xf5\xa7\x0e\x23\x49\x2a\x12\x86\xf8\x46\xfe\x61\xb7\xe6\x5f\x3c\x2a\x26\x8c\x5d\x99\xff\xfa\xbf\xcf\xb9\x24\x03\x9c\x66\x51\xb2\xd0\x85\xc8\xcb\x7b\xc3\x25\x9b\x4f\xe4\xbd\x60\x67\xa1\xa5\x67\x46\x3c\xf4\x22\xcd\x84\x5d\x27\x3c\x4d\x5d\x95\x00\x12\x3a\x78\x62\xe5\x9c\xb7\x7f\xd8\xe5\x20\xa6\x36\x1e\x48\x1c\x08\x83\x16\xa4\xe9\x5b\x3f\x7c\xa6\xa7\xec\xca\x8e\x98\xb9\x02\x32\xed\x47\xc7\xb9\x50\x51\xe6\xfe\x88\xa7\x15\xc1\x78\xd9\xf3\x40\x99\xc6\x1c\x2f\xa9\x3e\xde\x7b\xea\x98\x4e\xfd\xbe\x0b\x91\xed\x9f\x1d\xaf\x14\x24\x6b\x6e\x00\x0a\x93\x35\xf7\x19\x30\x1c\x85\xc9\xba\x29\x4c\xb6\x8b\x58\xb5\xae\x2c\xd9\xf1\x20\x7c\x14\x26\x83\x15\xfa\xf4\x70\x3e\x0a\x93\x75\xb9\x6e\x50\x98\x0c\x4a\x11\x94\xa2\xa6\x81\x1c\x4f\x81\xb2\x97\xaa\x45\x7d\x15\x2a\xdb\xcd\x18\xb6\xae\x4c\xd9\xf1\xc8\x6d\x70\xbd\x84\xac\x76\x1a\xb2\xda\x80\x44\x22\xdc\xdc\xe1\x13\xb8\x5e\x56\x9e\x7d\x54\xa2\x46\xcf\x05\xcc\xfa\xf7\x63\x34\xd7\xbf\xdb\x3c\xe6\x3c\xca\x55\x92\xd8\xcb\x7d\xff\x25\xcd\x3e\x97\x4d\x79\x1f\x9a\xd2\xd2\xc1\xb1\xa9\xb8\xd9\xb3\xcf\x83\xd3\x23\xf2\x8c\x21\xcf\x18\xf2\x8c\x21\xcf\x18\xf2\x8c\x1d\x44\x2f\x81\xfa\xd8\x7a\xa2\x50\xe6\x6c\x48\xe9\xe0\xe0\x82\x7f\x42\x2e\xf8\xc8\xfd\x87\xdc\x7f\xc8\xfd\x87\xdc\x7f\xc8\xfd\x87\xdc\x7f\xc8\xfd\x87\xc8\x34\x44\xa6\x21\x32\x0d\x91\x69\xab\x2b\x12\x65\xce\x90\x68\x14\x89\x46\x91\x68\x74\xe4\x89\x46\x1b\xe9\x1d\xa8\x3d\xca\x9c\xad\xfe\xe0\xe0\x65\xce\x9e\xc3\xbb\x03\x2e\x78\xb6\x2d\xe9\x6e\x2a\x7d\xd6\x19\xdd\x46\x11\x34\x14\x41\xb3\x1f\xa1\x08\x1a\x9c\x13\xe0\x9c\x00\xe7\x04\x38\x27\xc0\x39\x01\xd4\x1b\x20\xf4\xf9\x11\x01\x08\x05\x08\x05\x08\x05\x08\x05\x08\x3d\x61\x10\x0a\x36\x01\x36\x01\x36\x01\x36\x81\x22\x68\x28\x82\x86\x22\x68\xe1\x93\xd6\x31\x94\x8d\x96\x7c\x94\x43\x6b\xf8\xda\xa0\x98\x11\x0a\xa3\x9d\x42\x2e\xb8\xfe\x0a\xa3\x6d\x0b\x01\x9b\x4b\xa4\x1d\x38\xc8\xb5\xf7\x8c\x1d\xcd\xfd\x6b\x77\x30\x22\xf8\xea\x08\x82\xaf\x90\xbb\x03\xb9\x3b\x1a\x1a\x33\x12\x31\x6e\x1c\x59\x3c\x5e\xd8\xf4\x83\xe6\xfd\x7f\x51\xdb\x8f\x49\x72\xee\xb7\xa8\x5a\x07\x92\xf3\x2b\xf6\xd2\xb4\x24\xfb\x2e\xb4\xf6\x92\x8c\x24\x83\x11\xd1\x46\x92\x87\x04\xe2\x58\x75\x92\x07\x2b\x8e\x21\xf2\xfb\x84\x22\xbf\x11\xe2\x86\x10\x37\x84\xb8\x21\xc4\x0d\x9a\xe4\xba\x5d\x34\xc8\x78\x92\xc3\x68\x64\x08\x87\x39\x40\x59\xb6\x41\x07\xc1\x34\x14\x68\xdb\x56\xa3\x6a\x2a\xd5\xd6\x57\xe4\x0b\x8a\xb6\x85\xb5\xd1\x5e\x8c\x40\xd1\x36\xf7\x3f\xdc\x6f\x30\xd9\x0d\xaa\x7c\xdb\x81\x59\x77\xb5\x90\x5b\x8b\xa6\xa0\xa4\x5b\x73\x9f\x81\xf1\x51\xd2\xad\x8f\x92\x6e\xdb\x0a\x62\x8d\xc5\xdd\x8e\xd4\xf9\x00\x65\xde\x60\xef\x3e\x3d\xf7\x03\x94\x79\xeb\x72\xdd\xa0\xcc\x1b\xd4\x28\xa8\x51\x47\x51\xf0\xad\x53\x45\x6a\x3f\xa5\xdf\xb6\x37\xb3\x35\x16\x81\x3b\x52\xf9\x0e\xce\xa5\x90\xee\x4e\x4d\xba\x1b\x90\x10\x85\xbb\x3e\x7c\x02\xe7\xd2\x67\x9a\x7e\x54\x62\x4a\x9f\xc5\xe2\x86\xe4\x9f\x79\xa9\x23\x9e\x54\x7d\x32\x7b\x42\x8b\xf4\x1a\x7f\x7f\xed\x81\x31\xde\x50\xb7\x70\x68\x3d\xb7\xf3\xf9\xa2\x50\x66\x6e\x64\x3a\x23\xfa\x4f\xc3\x76\x82\x1b\xbe\x23\xbc\x53\x19\xce\xe6\xbd\xbf\xba\x2e\xf7\x48\x76\x1a\x5e\x0d\x92\xd3\xdc\x67\x90\x1c\x90\x9c\x6e\x48\x4e\x47\xf7\x5e\x7b\xa4\xf3\xf4\xe2\x1b\xa5\xde\x0f\xae\x03\xcd\xff\xf4\x34\x7f\x70\x9d\x2e\xd7\x0d\xb8\x0e\x6c\x3d\x50\x9b\x7a\x55\x9b\x3a\xc3\x39\xfd\x2a\x4e\x7d\x91\x9c\xce\xac\x1a\xed\x91\xce\x91\xc8\x77\x2f\xd9\x41\x10\xea\x20\xd4\x8d\x48\xa8\x1b\x90\xec\x84\x2b\x3e\x7c\xd2\xeb\x15\x7f\x18\x8a\x03\xa1\xa4\x53\x78\xd3\x87\x48\xf2\x8a\x75\xc6\x6d\x6c\x9c\x5e\xff\xe0\x86\xde\xb3\x4f\x72\x63\x3b\x86\x03\x0a\xd0\x16\x21\x3a\x08\xd1\x01\xd8\x01\xd8\x19\x24\xd8\xe9\xe8\x5e\xdc\x82\xec\x3c\xbd\x18\x47\xa9\xfa\x03\xed\xc0\x0a\x70\x7a\x56\x00\xa0\x9d\x2e\xd7\x0d\xd0\x0e\xec\x3e\x50\xab\x46\xc6\x78\x46\x1c\xb2\xd3\x9d\x15\x64\x0b\xd2\x73\x24\xf2\x1e\x42\x78\x20\xed\x9d\x9a\xb4\x37\x20\xa1\x0a\x77\x7f\xf8\x04\x21\x3c\xcf\x34\xfd\xa8\xc4\x96\xa3\x0a\xe1\xb1\xb9\x52\xff\x6f\xa1\x0a\xae\xf7\x94\x53\xbd\x92\x5d\x56\x4d\x43\x8d\xf7\xff\x31\x4d\xd8\x20\xe1\x54\xf3\xaa\xbf\x0f\x4f\xa8\x8a\x3a\x6b\x9e\x83\xcc\xea\x2e\x65\x77\x28\x3f\x6b\x35\xfd\x4a\x72\x6e\xa3\x6c\x52\x9d\x5a\x57\xfb\xd8\xdc\x84\xb5\xa2\xb9\x21\x8b\xb2\xad\x7c\x3b\x61\x37\x32\xa5\x80\xf3\x6a\xde\x6d\x57\x15\xd7\xdd\x6a\xf5\x8a\xbc\xb5\xa2\xc4\xa1\x21\xf6\xa7\xf4\x70\x5e\xd6\x9e\xb7\x95\x98\x7d\x89\x54\x73\x71\x97\x75\x72\xed\x67\xe5\x94\xb2\xef\xc4\xb7\x48\x64\x65\x35\x44\xfb\x48\x35\x0d\x2f\x79\x13\x12\x03\xbb\xf6\xd9\x6a\xcd\x84\x06\xf8\x6a\x53\x64\xc1\x62\x25\x6c\x1d\xe0\x20\xa7\xb9\x14\xe3\x55\xf1\x7c\xf5\x67\xe6\x17\x74\xfd\x8b\x9c\x59\x51\xcf\x17\x53\x8e\x17\x82\xaa\x7c\x7f\xcb\xa4\x4b\x98\xfe\xdd\x4c\xa4\x22\x27\x93\xef\xd4\xc8\x7c\x85\x62\x53\x39\x2d\x84\x48\xd9\x5c\xa6\x8b\x42\xe8\x37\x8c\x2a\x64\x47\x2a\x9d\xca\x99\xcf\xb3\x6e\x65\x12\x5f\xed\xda\xf6\xe5\x69\x95\x6c\x7b\xe5\x39\x79\x87\xb3\xff\x7c\xfb\xef\x61\x83\x5d\x99\x26\x88\xd8\x49\x94\x85\x9a\xd9\x06\xba\x6f\x86\x1e\x15\xea\x5e\xa4\xa1\xcb\xae\x22\x6f\x2a\x44\xbc\x52\xc8\x37\xa1\x2a\xdd\xb2\xb0\x92\x51\x2e\x6c\x0d\x7d\x57\xe7\x5c\xea\x22\x14\x2d\x7e\x5a\xb5\x79\xc2\x3e\x99\x57\x3f\x4a\x9f\xd2\xdb\xbd\x85\x4a\xf1\x8b\x34\x66\x3c\xb5\x16\x12\x57\x2b\xd7\x16\x87\x0d\x22\x1c\xb5\xd0\x57\x03\xae\x88\x76\xa6\xb3\xd4\xb9\x67\x87\x85\x9e\x4b\x0d\x26\xeb\x8c\x5f\xdc\x54\xec\xfb\x5e\x2c\x6d\xc2\xea\xf0\xe7\xc4\x88\xfc\xd5\xca\xc5\x8f\x77\xd2\x16\x85\x96\x69\x65\x40\xc2\xf7\xc3\x42\xae\x94\xfa\xd5\xec\x22\x24\x38\xb7\x99\x2f\x73\xb1\x65\xc1\xe6\x95\xc1\x78\x5a\xab\xd9\x25\xbf\x26\x91\x87\xe4\x4b\xb3\x20\xcd\x7f\xed\xa4\xdc\x8b\xa5\xab\x7e\x1d\x1e\xfc\xf5\xb5\xef\xf2\xd7\xd7\xae\xb8\xf5\xfa\x6a\xd8\x74\x40\xd4\xeb\x61\xb3\xf7\x95\x2d\x6e\x17\x00\x77\x5f\xa9\x8c\x9e\x7e\x52\x2c\xd6\x6d\x9b\x50\x23\xdb\xe5\xfc\x76\x33\x66\x75\x9c\x82\xcd\xa5\xd6\x54\x98\xb4\xa6\x68\xed\x22\x02\xfb\xe5\x77\x18\xed\x04\x4a\x64\xeb\x89\x3a\xa4\x12\xf9\x8e\x69\x51\x26\x6f\x37\x07\x5a\x2e\xa3\x22\x94\xd8\x35\x63\x13\x16\x6c\xa8\x55\xb0\x74\x9b\xcb\x5a\x78\xeb\x85\x23\xc4\x83\xc8\x97\xc5\x9d\x4c\x67\x3b\xab\x6d\x37\xae\x45\x87\x19\x11\xd4\xf9\x38\xa1\x3a\x1f\x2f\x5a\xfe\x09\xbf\x15\x49\xa7\xcb\x9f\x9e\x78\xd8\xe5\x4f\x25\xb4\xad\x39\x69\xce\xbf\xc9\xf9\x62\xce\xd2\xc5\xfc\xd6\x2c\x92\x69\x38\x4c\xb5\x1d\x2d\xaa\x1c\x4d\xc8\xad\x2c\x7c\x4e\x4b\x96\xc4\x68\x69\xda\x62\x4b\x5a\x3c\x95\x4d\x8c\xf0\x6d\xfe\xf6\x77\x7f\x4b\xfd\xdd\x57\xd5\x48\xcb\xd1\xf7\x05\x2f\xec\x42\xb5\xab\x93\xee\x8f\x88\xa7\x7e\x39\x97\x92\x90\xe6\x73\xb3\xcb\x64\x21\x83\xc8\x6c\x5b\x69\x84\x7b\x51\xca\x3a\xe6\xd5\xb6\x2f\x66\xd2\x26\xec\x46\x14\x24\x11\x71\x5b\x3e\xdc\x89\xca\xb6\x6f\xe2\x91\x84\x06\x9e\x56\x6f\x08\x23\xa6\xcc\xd5\x22\xa5\xc7\xd8\x5e\x7e\xb7\xc8\xcc\xcb\xec\x86\x36\x7f\x79\xe3\x65\x13\xf1\x60\xc4\x24\x4e\x97\x93\xff\xb5\x5f\x49\x46\x2e\x99\xca\xa4\x10\x46\x42\x35\x52\xa3\xb9\xa3\xbc\x02\xe1\x4e\x97\x9a\x0e\x61\xef\xd3\x28\xf8\x2e\xd5\x25\x4c\x5b\x7e\xc3\xd5\xbd\x0f\xb2\x78\x4d\xa5\x21\x49\xe8\x81\xcb\x84\xdf\x26\xc2\x74\xdd\xcc\x88\x95\x64\xa2\x3b\xa5\x34\x15\xf7\x36\xcf\x71\x12\x90\x9b\x0b\x33\x2c\x3c\x9f\x2d\xe6\xd4\x97\x34\xf6\xb7\x2d\x0d\x92\xe9\x9b\x6b\x4f\x78\x74\x39\xba\x3f\x4f\x59\x58\x52\xe5\xa9\xe4\xb5\x93\x95\x0e\x48\xcd\xc4\x3c\x2b\x96\x75\x35\x8a\x6b\xa3\x80\xdb\x99\x4f\xd5\xc6\x0e\x6d\x12\xe5\xe4\x74\x45\x90\xb3\xb2\x5f\x58\x97\xb3\x05\xcf\x79\x5a\x08\x2f\xa4\x94\x27\xbd\x2e\x0f\x01\x92\x07\xa9\x28\x7f\xd9\xf6\x20\x96\x06\x85\xad\x50\x4c\x6a\xbd\xb0\xab\xca\x7c\x39\x11\xe5\x0e\x09\x3a\x82\x5f\x70\x17\xde\x1e\x7b\x6e\xba\xe7\x5f\xb9\x9d\x9c\xec\x45\x64\x23\x9f\x6b\xbd\x10\x71\xa3\xb0\x6c\xe4\x4a\xbd\xb8\xd5\xe6\xcb\x69\x11\x7a\x10\x57\xf8\x2e\x8d\xa0\x99\x2b\x35\x17\x85\x9c\x0b\xd3\xf7\xa9\xc8\x73\x2a\x30\x64\x2b\xc4\x57\xc4\xff\x52\x3d\x30\x33\x2a\x52\xbd\xc8\x45\xc8\x72\xef\x14\x1c\x6f\x6c\xb6\xa3\x66\xbb\x4c\x1b\x93\x54\x19\xa6\xe7\x3c\x49\x44\xce\xa2\xbb\x45\x7a\x6f\xcb\xf2\x33\x73\x88\xb2\x84\xe7\x33\x3f\xd1\xb4\xe3\xed\xe3\x4d\xa7\x8d\xc6\x24\x68\xe1\x65\x4a\x6b\x69\x16\x9c\x1b\x36\x5a\x70\xd5\xfd\x65\x1d\x8c\x62\x73\xa5\xdb\xe9\xa0\xf7\x88\xd8\xce\x07\x29\xcf\x4e\x3c\x77\x6b\xd8\xdd\x85\xd4\xea\x47\xae\xbd\x0c\xcb\xdc\x8a\x30\x63\xf2\x54\x3f\xb1\x5a\x3b\xd7\x66\x82\xa3\x45\x62\xeb\x3e\x95\xcb\x66\xa7\xbb\xc0\x0c\xd4\x81\xae\x45\x94\xbf\x42\xf9\x2b\x94\xbf\x42\xf9\xab\xbd\x48\x9c\xab\x66\x12\x2d\x0a\x7f\xcb\x14\x39\x97\xe6\x94\x48\xd9\xa3\x19\x0c\xff\x4d\x7f\x64\x9b\xaf\xf9\x8b\x2f\x2c\xbd\xdc\x9f\x00\x46\xbc\x11\x81\x31\x56\xf8\x99\x54\x97\xb1\x8a\xf4\x25\x5d\x6c\x46\x9c\xba\xa4\xab\xe9\x82\x67\xf2\x92\x67\xf2\x22\x52\xa9\x59\x2b\xfa\xf2\x77\x61\x59\x85\x17\x4e\xe9\x0e\x2e\xb8\x4c\x34\xc9\x0f\x55\xd9\x9f\xfc\x97\x76\x98\x87\x95\x01\x18\xc4\x2c\x7c\x24\x49\x29\x48\x93\x9a\x8e\x8a\xd5\x99\x32\x5a\x42\x96\x25\xd2\xca\x06\x41\xc0\xb1\x5e\x62\x52\xb3\x3b\x39\xbb\x23\xe7\xb1\x48\xcd\xe7\x66\xe9\xc6\x76\x51\x37\xbe\xcb\x59\xe4\xcd\x00\x97\x4f\x32\xf2\x56\x2e\x9a\x5e\x6c\xbe\x3b\xce\xf9\xfd\xb8\xe2\x01\xb4\xc7\x49\xfe\x22\xe7\xc2\x48\x9e\xde\x4c\x60\x06\xfa\xd2\x0a\xc5\x56\x77\x23\xe9\x8f\x24\x0f\x6d\xcf\x30\x6f\x08\xf1\x0a\x07\x4f\x92\x73\x96\x8b\x19\xcf\x63\x72\x0a\x30\xe2\x5a\xba\x64\x3c\x2a\xe4\x83\x2c\x96\xe6\x56\x90\xa9\xff\x7f\xbb\x1c\x4a\x85\x6d\x62\x1f\x66\x81\x46\x5a\x07\x76\x8f\x92\x76\xab\x3f\xd8\x58\xd2\xae\x94\x93\xfa\x04\xe2\xcd\x58\xf7\xa0\x45\xed\xac\x41\x2c\x77\x4a\xb4\x97\xdc\xd5\x94\x99\x56\xb7\x26\xda\xe6\x29\x4f\x1d\xf6\x5e\x48\xb1\x57\x5a\x4a\x32\xda\x6f\xa6\x99\x3f\x28\x75\x3f\xe7\xf9\xbd\x2e\xfd\xc1\x6d\xf3\xc9\x2c\xa3\x9d\xf1\x68\x99\x19\x0d\xe3\x87\x4f\x9f\x7e\xf9\xf8\xee\xf3\x2f\x5f\x5f\x97\x86\x11\x2b\x83\x29\x12\x64\xe5\x3c\x4b\x04\x59\x40\x6e\xc3\x53\x8d\xd4\x21\x67\xa9\x35\x0c\x1b\xd1\x38\xe1\x33\x12\x4a\xcb\xaf\x18\x25\xb4\xaa\x40\x5a\x6b\xc3\x99\x66\xb1\xd4\x51\x2e\x4c\x9b\x4b\xa4\x54\x41\x21\xce\xea\x51\x7f\x50\xb0\x43\x18\x05\xdb\x28\xf3\x5e\xdc\x35\x07\x62\xfe\xc0\x93\x73\x96\x2a\x4b\x7b\x49\x4d\x0e\xa6\x93\x55\xeb\x1b\xf1\xc6\x25\xf3\x7d\x76\x66\xaa\xa0\x24\x6b\xa1\x35\x35\xcc\xdb\x9f\x9d\x35\xc5\x81\xae\x9a\xce\x67\x3e\xa5\x21\x88\x03\x40\x9d\x0a\x5e\x18\x55\x7d\xc6\x0b\xc1\x56\x26\xc2\x3d\x49\xa4\x46\x16\xb7\x56\x89\x4c\x96\x64\xb7\xe9\xb1\x3b\x5c\x23\x0d\x4b\xe0\x40\xfa\x16\x9c\x10\xe0\x84\x00\x27\x04\x38\x21\xc0\x09\xa1\xe9\xf0\x05\xdd\x1e\xd1\x88\x00\x78\x02\x78\x02\x78\x02\x78\x02\x78\x02\x78\x1e\x17\xf0\x04\x83\x00\x83\x00\x83\x00\x83\xe8\x9d\x41\x6c\xc1\xe9\xad\x32\xa7\x72\x1f\x98\x69\xa6\xdf\x72\x65\xf3\xbd\x5b\xba\xc4\xec\xa4\x5a\x0e\xee\xa4\x93\xe2\x4e\xcc\xed\xb5\xa5\x8b\x5c\xf0\x39\x0d\x4f\x1c\x9f\xbb\x8b\xe1\xdc\x7d\x77\xae\x1e\x48\xf6\xa9\xa8\x77\xec\x86\xc4\x95\xe5\xea\x52\xdf\x65\x08\x1f\x37\x2d\xb0\xf1\x67\x5d\x58\xfb\x03\xf3\xb2\xef\xed\xc0\xff\xe9\xe9\x18\xb4\x79\x76\xfd\xd7\xc3\xc6\x44\x95\x38\xc9\x8a\x05\xff\x83\xd4\xc5\x29\xf2\x21\x73\x92\x0d\x9b\x09\xed\x90\x2a\x0f\xf9\xe4\x46\x97\x4f\x4e\xe9\x8e\xc9\x9f\xd5\xcc\x18\x6f\x0d\xf9\xec\x0f\x3a\xc7\x7c\x83\xcd\xc4\x51\xed\x57\xbb\x83\x0f\xc1\x53\x47\x10\x3c\x85\x0c\x1c\xc8\xc0\xd1\xd0\x98\x81\x8b\x67\x63\xc9\xbc\xb1\x53\x93\x7f\xff\x6c\x93\xad\x23\xf0\x70\xda\x7c\x4c\x12\x30\x89\x1e\x43\x94\x80\x5f\xb1\x5d\xd3\x83\xb8\x0c\xf1\x7b\xca\x12\xd2\x5e\xc4\xaa\x66\x06\x39\xb8\x88\x35\x92\x7c\x20\x10\xab\xaa\x93\x3c\x58\xb1\x0a\x11\xd8\x27\x14\x81\x8d\x50\x33\x84\x9a\x21\xd4\x0c\xa1\x66\xd0\x08\xd7\xed\xa2\x21\x69\x84\x50\xaf\x0e\x1f\x80\x32\x48\x05\x2b\x58\x9f\xfb\xa9\x9b\x55\xac\xe4\x89\x6e\xa7\x23\x35\x57\xc9\xea\x36\xd6\xa4\x22\x6b\x88\x6f\xe4\x41\x76\x6b\xfe\xc5\xa3\x62\xc2\xd8\x95\xf9\xaf\xff\xfb\x9c\x4b\x32\xcc\x69\x16\x25\x0b\x5d\x88\xbc\xbc\x41\x5c\xaa\xfc\x44\xde\x0b\x76\x16\xda\x7a\x66\x04\x45\x2f\xdc\x4c\xd8\x75\xc2\xd3\xd4\xd5\x38\x20\xf1\x83\x27\x56\xe2\x79\xfb\x87\x5d\x8e\x64\x6a\xe3\x81\x04\x83\x30\x68\x41\xae\xbe\xf5\xc3\x67\x7a\xca\xae\xec\x88\x99\xcb\x20\xd3\x7e\x74\x9c\x93\x15\xd5\x1d\x88\x78\x5a\x11\x91\x97\x3d\x0f\x94\x69\xcc\xf1\xb2\xec\x63\xbe\xb1\x8e\xe9\xf4\xef\xb9\x20\xdb\x41\xe8\x72\xbd\x10\xdb\xda\x26\xa0\x00\x5b\x73\x9f\x01\xcc\x51\x80\xad\x9b\x02\x6c\xbb\x09\x58\x6b\xca\xad\x1d\x15\xe6\x47\x81\x35\x58\xa6\x4f\x0f\xf8\xa3\xc0\x5a\x97\xeb\x06\x05\xd6\xa0\x1e\x41\x3d\x1a\x79\x61\xb5\x0e\x14\xa4\xbe\x0a\xaa\xed\x6a\x1e\x5b\x53\x3e\xed\xa8\xe4\x37\xb8\x69\x42\x6a\x3b\x15\xa9\x6d\x40\xc2\x11\xee\xf0\xf0\x09\xdc\x34\x8f\x59\xec\xe8\xb7\x30\xda\xe1\x3c\x1e\x2f\x6d\x95\xd6\xaa\xe3\x63\x3f\x6c\x6f\x7d\x35\xd8\x8e\x28\x5f\x43\xe9\x57\x9c\x43\xd8\xd4\x1b\x36\x35\x50\x0b\x50\x0b\x50\xcb\xcb\x7b\xe3\xfe\x05\xd4\x52\x45\x2d\x2f\xbd\xef\x9e\x87\x2e\xc7\x52\xeb\x1c\xe8\x05\x4a\xfc\xe9\x29\xf1\x40\x2f\x5d\xae\x1b\xa0\x17\x98\x6d\xa0\x2e\x01\xbd\xf4\x85\x5e\x5e\x6e\xbd\x78\x1e\xc2\x1c\x8b\x3c\x07\x14\x03\x29\xee\x54\xa4\xb8\x01\x09\x4b\xb8\xd3\xc3\x27\x40\x31\xc7\x2c\x86\x1c\x01\x8a\xd1\x22\xca\x45\xa1\xf7\x94\x6e\xa2\x12\x88\xab\xa6\xec\x86\xde\xbd\x41\x56\xa9\xe6\x9c\x78\x1f\x7e\x5a\x0a\x2d\x4f\x1f\x80\xb4\x13\xa8\x00\x83\x0a\x30\xa8\x00\x83\x0a\x30\xa8\x00\x73\x10\x85\x03\x7a\x61\xeb\x89\x3a\xa4\x5e\x88\x42\x3d\x48\x82\x74\xc2\x49\x90\x50\x95\x09\x55\x99\x50\x95\x09\x55\x99\x50\x95\x09\x55\x99\x50\x95\x09\xb9\x01\x91\x1b\x10\xb9\x01\x91\x1b\x70\x75\x45\xee\xb5\xf8\x18\x4a\xc0\x0d\x61\x16\x50\x02\x0e\x25\xe0\x8e\xad\x04\x5c\x23\x9f\x03\x8e\xdf\x12\xd3\x39\x9f\xa8\x13\xc4\xdc\xf6\x2e\x2e\xe5\xa4\xfe\x98\xf7\x13\x9e\x7b\xd0\x44\xa0\xd6\x12\x96\x3b\xed\xd9\x8b\xec\x6a\xca\x4c\x73\x9f\x87\xd7\xe6\xe7\xab\x5e\x76\xbb\x03\xeb\x95\xb6\x91\x38\x46\x15\x1b\x7f\x50\xea\x7e\xce\xf3\x7b\x5d\x7a\x69\xdb\x06\x93\x05\x46\x3b\x3b\xd1\x32\x33\xca\xc4\x0f\x9f\x3e\xfd\xf2\xf1\xdd\xe7\x5f\xbe\xbe\x2e\x6d\x20\x56\xdc\x52\x24\xb3\xca\x79\x96\x08\x32\x76\xdc\x86\xa7\x1a\x01\x43\xce\x52\x6b\x03\x36\x52\x70\xc2\x67\x24\x7f\x96\x5f\x31\xfa\x66\x55\x57\xb4\x86\x85\x33\xcd\x62\xa9\x4d\x7f\xa5\x4a\x4b\x7a\x54\xa1\x1e\xce\xc0\x51\x7f\x50\x30\x39\x18\x5d\xda\xe8\xed\x5e\xb2\x35\x67\x5f\xfe\xc0\x93\x73\x96\x2a\x0b\x76\x49\x23\x0e\x56\x92\x55\x43\x1b\xa1\xc5\x25\xf3\x7d\x76\x16\xa9\xa0\x0f\x6b\xa1\xa9\xd6\x64\x30\x35\x3b\xc3\x89\x63\x5a\x35\xf5\xce\x7c\x4a\x43\x10\x07\x56\x3a\x15\xbc\x30\x5a\xf9\x8c\x17\x82\xad\x4c\x84\x7b\x92\x48\x8d\xd8\x6d\x0d\x10\x99\x2c\x21\x6e\xd3\x63\x77\xb8\x31\x1a\x96\xc0\x81\x54\x2b\xf8\x1b\xc0\xdf\x00\xfe\x06\xf0\x37\x80\xbf\x41\xd3\xe1\x0b\x90\x3d\xa2\x11\x01\xdb\x04\xdb\x04\xdb\x04\xdb\x04\xdb\x04\xdb\x3c\x2e\xb6\x09\xdc\x00\xdc\x00\xdc\x00\xdc\xd0\x3b\x6e\xd8\x02\xc9\x5b\x65\x4e\xe5\x3e\xac\xd2\x4c\xbf\x45\xc8\xe6\x7b\xb7\x74\x89\xd9\x49\xb5\xc8\xdb\x49\x27\xc5\x9d\x98\xdb\x6b\x4b\x17\xb9\xe0\x73\x1a\x9e\x38\x3e\x77\x17\xc3\xb9\xfb\xee\x5c\x3d\x90\xec\x53\x51\xef\xd8\x8d\xad\xdf\xb3\xba\xd4\x77\x19\xc2\xc7\x4d\x0b\x6c\xfc\xb9\x10\xd6\xfe\xc0\xbc\xec\x7b\x3b\xf0\x7f\x7a\x3a\x06\x6d\x9e\x5d\xff\xf5\xb0\x89\x50\x88\x76\xb4\xa6\xfb\x0f\x52\x17\xa7\xc8\x80\xcc\x11\x36\x50\xee\xb3\x43\x6a\x3a\xe4\x71\x1b\x5d\x1e\x37\xa5\x3b\xa6\x7b\x56\x17\x63\xfc\x79\x90\x67\xbf\xd9\x1d\xca\x1b\x68\x8e\x0c\xd7\xa1\x76\x87\x1b\x82\xa0\x8e\x20\x08\x0a\xc9\x31\x90\x1c\xa3\xa1\x31\x43\x95\xbd\xc6\x91\x15\x63\xdb\xb6\x1e\xb4\xc2\xf1\x76\x8d\x3d\x26\x81\x96\x04\x8a\x41\x09\xb4\xaf\xd8\xd6\x59\x3b\x5c\xe6\xf4\x3d\x25\xef\x68\x21\x2a\x55\x13\x76\x20\x4d\x07\xa4\xa4\x63\x90\x92\x10\x18\x7d\x42\x81\xd1\x88\x00\x43\x04\x18\x22\xc0\x10\x01\x06\x05\x6f\xdd\x2e\x1a\x64\xb8\xc5\x61\xd4\x28\x44\x8b\xac\x8d\x16\x19\x96\x6a\x15\xcc\xc8\xfd\x14\x94\xaa\x0b\x58\xcf\x2a\x49\x4d\xf5\xa3\x3a\x0b\x0c\xa9\x08\x1b\xe2\x1b\xb9\x7b\xdd\x9a\x7f\xf1\xa8\x98\x30\x76\x65\xfe\xeb\xff\x3e\xe7\x92\x0c\x6d\x9a\x45\xc9\x42\x17\x22\x2f\xaf\x10\x97\x6d\x3e\x91\xf7\x82\x9d\x85\x46\x9e\x19\x49\xd1\x4b\x37\x13\x76\x9d\xf0\x34\x75\x65\x02\x48\xfe\xe0\x89\x15\x79\xde\xfe\x61\x97\x33\x99\xda\x78\x20\xc9\x20\x0c\x5a\x10\xac\x6f\xfd\xf0\x99\x9e\xb2\x2b\x3b\x62\xe6\x36\xc8\xb4\x1f\x1d\xe7\x11\x45\xa9\xfb\x23\x9e\x56\x64\xe4\x65\xcf\x03\x65\x1a\x73\xbc\xe0\x79\xd8\x57\x16\x4c\x67\xfd\x16\x2b\xdb\x37\x0a\xae\x56\x29\x6b\x7a\x37\xca\x93\x35\xf7\x19\x58\x1b\xe5\xc9\xba\x29\x4f\xb6\xa5\xf4\xd4\x58\x8d\xec\x58\x60\x3c\x0a\x90\xc1\xee\x7c\x7a\x74\x1e\x05\xc8\xba\x5c\x37\x28\x40\x06\xdd\x07\xba\xcf\x38\x2b\x8f\xbd\x4c\xfb\xe9\xab\xe4\xd8\xd6\xf6\xad\xc6\x0a\x63\xc7\x22\xa3\xc1\x61\x12\x22\xd9\xd1\x8b\x64\x03\x92\x7c\x70\x41\x87\x4f\xe0\x30\x79\x5c\xc2\x44\x9f\xf5\xc3\xfa\x77\x41\xcc\x1f\x64\x24\x78\x14\xa9\x45\x7a\xb0\x02\x62\xd4\x86\x77\xb6\x0d\x2d\xfd\x12\x9b\x0b\x89\xad\x7b\x10\x3c\x15\x91\xe0\x0b\x09\xbe\x90\xe0\x0b\x09\xbe\x90\xe0\xeb\x20\x3a\x07\x54\xc3\xd6\x13\x85\x82\x62\x43\xca\xc3\x06\xbf\xf9\x13\xf2\x9b\x47\xd2\x3d\x24\xdd\x43\xd2\x3d\x24\xdd\x43\xd2\x3d\x24\xdd\x43\xd2\x3d\x84\x93\x21\x9c\x0c\xe1\x64\x08\x27\x5b\x5d\x91\x28\x28\x86\x0c\x9f\xc8\xf0\x89\x0c\x9f\x23\xcf\xf0\xd9\xc8\xeb\x40\xe4\x11\x22\xba\xfa\x83\x01\x14\x14\x5b\xc3\x75\x07\x5d\x58\xac\x25\xd4\x6e\x2e\x30\xf6\x52\x90\x8d\x42\x63\x28\x34\x66\x3f\x42\xa1\x31\xf8\x21\xc0\x0f\x01\x7e\x08\xf0\x43\x80\x1f\x02\x00\x37\x98\xe7\xf3\x23\x02\xe6\x09\xe6\x09\xe6\x09\xe6\x09\xe6\x79\xc2\xcc\x13\x18\x02\x18\x02\x18\x02\x18\x02\x85\xc6\x50\x68\x0c\x85\xc6\xc2\x27\x5b\xc4\x43\x56\x4d\xf8\x28\x38\xd6\xf0\xb5\x61\x70\x21\x14\x1e\x3b\x85\x0c\x6d\x7d\x16\x1e\x6b\x09\xfa\xd6\x15\x20\x3b\x4c\xcc\xea\x1e\xf2\x6a\xd4\x3a\xd6\xee\xf0\x43\x10\xd5\x11\x04\x51\x21\xbf\x06\xf2\x6b\x34\x34\x66\xe8\x32\xda\x58\xf2\x6c\xec\xd6\xe6\x03\x17\x28\xdb\xa5\xd1\xc7\x24\x08\xf7\x5d\xa8\x6c\x77\x41\xf8\x15\xdb\x39\x5b\xc8\xfe\x0b\x97\xed\x90\x28\xe4\xf0\xa2\xd6\x48\xd2\x83\x40\xba\xaa\x4e\xf2\x60\xa5\x2b\x04\x64\x9f\x50\x40\x36\x22\xcf\x10\x79\x86\xc8\x33\x44\x9e\x41\x31\x5c\xb7\x8b\x06\xa5\x18\x42\xc9\x1a\x40\x44\xca\x30\xd5\xac\x60\x8a\xde\x4f\xf1\xb2\x96\x8a\x52\x73\x11\xb3\x8e\x83\x4f\x50\xcc\x2c\xac\x86\xf6\xd2\x01\x8a\x99\xb9\xff\xe1\xda\xc2\x0d\xf0\xf4\x07\x87\x29\x6a\x76\x18\xdc\x5c\x2f\x6e\xb6\xbe\x0d\x28\x72\xd6\xdc\x67\x20\x74\x14\x39\xeb\xa7\xc8\x59\x4b\x29\x6b\x4d\xb1\xb3\xe3\x02\xff\x28\x7a\x06\x1b\xf5\xe9\x79\x00\xa0\xe8\x59\x97\xeb\x06\x45\xcf\xa0\x23\x41\x47\x1a\x7b\xf1\xb3\x2e\xb4\xa4\x7d\x15\x41\x6b\x6d\x27\x5b\x53\x0c\xed\xb8\x64\x38\x38\x6f\x42\x74\x3b\x19\xd1\x6d\x40\x12\x12\x2e\xf2\xf0\x09\x9c\x37\x8f\x5b\xf8\xe8\xb7\x58\xda\x21\xdd\x20\x2f\x29\x17\x50\xd5\x19\x72\x07\x5b\x2f\x6e\xc9\x56\x96\xce\x86\x1b\xb2\x67\xbb\xed\x89\xde\x8b\xcf\x4f\xc5\xda\x3b\xb1\xe7\x09\xa9\x52\x91\x2f\x66\xe7\x7d\xb6\x0b\x11\x4c\x04\x4c\x64\xf4\x61\x85\x36\xad\x1c\x25\x42\xe9\x34\xbe\x90\x36\xca\x11\xe8\xa9\x66\x6b\xd8\x4c\x3b\x94\x2d\xf4\xe1\xed\xa4\x76\x04\xac\x17\xac\x20\x69\xef\x61\x90\x07\x20\x71\x77\xd5\xf6\x83\x78\xf4\x75\xd3\xf8\xa3\x52\x1b\x3a\x0a\x9f\x5a\x19\x59\x33\xe0\x52\x35\x2b\x13\xeb\x65\x8a\x1e\x54\x89\x5a\xe1\xe5\xc3\x64\xaa\xde\x70\xb3\x6c\x48\x51\xdd\x81\x7b\x20\x72\x53\x23\x37\x35\x72\x53\x23\x37\x35\x72\x53\x23\x37\x35\x72\x53\x23\x37\x35\x72\x53\x23\x37\xf5\xda\x11\x41\x6e\x6a\xe4\xa6\x46\x6e\x6a\xe4\xa6\x46\x6e\x6a\xe4\xa6\x46\x6e\x6a\xe4\xa6\x46\x6e\x6a\xe4\xa6\x46\x6e\x6a\xe4\xa6\xde\xc8\xd9\xd6\xfe\xe0\xb4\x73\x53\x23\x29\x75\xc3\xd7\xba\x72\x42\xdb\xd5\xf1\x1d\xd9\xa8\xe1\x36\x52\x3e\x76\xd7\x6c\xd4\xbb\xba\x89\x1c\x81\x6b\xc8\xca\x21\x87\xd8\x05\xc4\x2e\x1c\xb9\x8f\x26\x62\x17\xc6\xe2\x51\xb5\xdb\xd9\x34\x8c\xa0\x85\x81\xfb\x4c\xed\xd8\xda\x63\x92\x6b\xf7\x92\x63\xba\x7f\x57\xa8\x03\x65\x95\xde\x20\x32\x6d\x4c\x27\xbd\x3f\x91\x09\x79\xa4\x21\x2c\x21\x8f\x34\xf2\x48\xef\x30\xd9\xc8\x23\x8d\x3c\xd2\xc8\x23\x8d\x3c\xd2\xd0\xf3\xd6\xed\xa2\x2e\xf5\xbc\x0d\xe2\xd6\x4d\xc1\x8b\x45\x5b\x39\xeb\x40\xba\x54\x67\xcd\x3f\x26\xe5\x6a\x4f\xb9\xa5\x77\xc4\x06\x7b\x4c\x2a\xbd\x41\x4f\xda\x90\x4d\xba\x83\x38\x11\xa4\x91\x0e\xf3\xdf\x5e\x38\x40\x1a\x69\xf7\x3f\xdc\x5a\x30\xa1\x3d\x7f\xca\xef\x23\x7f\xf4\xfe\xc8\x70\x43\xe2\xe8\xed\x91\xef\x50\x68\x2f\x30\xf7\xe8\x30\x37\x32\x46\x6f\x2d\x42\x6d\x4a\x15\x3d\x7e\x38\x8f\x1c\xd1\xb0\x3f\x9f\x1e\xac\x47\x8e\xe8\x2e\xd7\x0d\x72\x44\x43\x01\x82\x02\xb4\x3a\x88\xe3\x4a\x0e\xbd\xab\x0a\xb4\xd7\xac\xd0\x1b\x0d\x5d\x9b\xd2\x41\x8f\x5f\x4e\x83\x13\x25\xe4\xb2\xe3\x97\xcb\x06\x24\xfe\xe0\x96\x0e\x9f\xc0\x89\xf2\xd8\x44\x8a\x3d\xa4\x7c\xde\x9b\x57\xe2\x65\x96\xab\x6f\xcb\xbe\x7d\x13\x23\x95\xa6\x22\x2a\xd8\x8f\x57\x1f\xae\xbe\x5c\x95\xea\x61\xa1\x18\xbd\xdf\x5c\x50\x2d\x22\x3d\xec\x53\xac\x94\x62\xfd\xfc\x9e\xc8\x2a\xd7\xd4\x9d\x16\x87\xce\xda\xa6\xef\xed\x60\x58\x39\x5f\x4f\x70\x27\xb9\x09\xed\x7d\x37\xd1\xa2\xf0\x2e\xa1\x03\x01\xd2\x7e\x4b\xfc\xf9\xea\x4b\x27\xfb\xe1\xcf\xa2\xc0\x66\x68\x6a\x05\x36\x43\xe7\x9b\xe1\x4e\xf0\xb8\x9f\xdd\xf0\x97\xab\x77\x3f\x76\xb2\x1d\xfe\x22\x78\x8c\xfd\xd0\xd4\x0a\xec\x87\xce\xf7\x83\x72\xbf\xee\x65\x4b\x7c\xba\xfe\xf2\xf3\xa7\xbf\xde\x74\xb2\x2b\x5c\x37\xb1\x31\x9a\x5a\x81\x8d\xd1\xf9\xc6\xe8\xc6\xc7\x63\x7d\x43\xe0\xef\xd1\xdc\xe7\x41\xf9\x7b\x5c\xf3\xc2\x26\x81\xbb\x13\x2c\xe3\x39\xa5\xf1\xfb\xdb\xe7\x0f\xce\x50\xea\xf2\xa5\x31\xa7\x97\x32\x91\xc6\x99\x92\x69\xa1\xcd\xa8\x4c\xa7\xf2\x9b\xd0\xd6\x6c\x56\xc9\xfd\x5b\x28\x8a\xf6\xf0\x41\x33\xd1\x22\xcf\x45\x5a\xb8\x53\xd1\xa7\xc3\x2a\x94\x7f\x26\xf1\x2e\x26\xbe\xf1\x79\x96\xb8\x70\x8d\xc7\x3b\x95\x04\x7b\xa8\x69\x0d\x25\x6b\x2a\x8a\xec\x8f\x97\x97\x89\x8a\x78\x72\xa7\x74\xd1\xa0\x49\x9b\x6d\x76\xa1\x97\xba\x10\xf3\x52\x93\x16\x09\xd7\x85\x8c\xb4\xe0\x79\x74\x77\x91\xa8\xd9\x4c\xa6\xb3\xcb\xff\xd7\xfe\xff\xff\xff\xff\xfd\x69\xa1\x45\xfe\xc7\x7b\x39\x8f\xee\x96\x13\xe6\x47\xa3\xf9\xe3\x6d\xdd\x5d\x9e\xac\x82\x43\x38\xbb\x6c\x7b\xa3\x5d\xbf\xfb\xf2\xfe\x2f\x9d\xdc\x67\xc4\x7d\x71\x9b\x35\xb5\x02\xb7\x59\xf7\xb7\x59\xf7\x69\x4e\xfc\x8e\xf8\x74\xd3\x8d\x15\xe0\x5a\x69\x98\x01\x1a\x5b\x81\xfd\xd0\xfd\x7e\xe8\x1a\x5f\x87\xed\xf0\xb7\x8e\x76\xc3\x02\x9b\xa1\xb1\x15\xd8\x0c\x5d\x6d\x86\x57\xec\x85\xe8\xe5\xf2\x9f\x46\x88\xeb\x3d\x3b\xc4\x9e\x09\xcc\x6f\xb2\xb8\xbb\xae\x0b\xa7\xd8\x68\xd8\x68\xa7\x4d\x62\xb0\x29\xb0\x29\x58\x3f\x9b\x62\xd4\x44\x06\xfb\x02\xfb\x82\xf5\xb3\x2f\x8e\x83\xcc\x60\x83\x60\x83\xb0\x9e\x74\x78\x10\x1a\x10\x1a\xd3\x54\x9f\xdf\xdf\x27\x2a\xda\xae\x4b\x4f\x3f\x01\x6f\x02\x6f\x3a\x25\xde\x84\x3b\x1a\x77\x34\xeb\xe9\x8e\x1e\x33\x77\xc2\xbe\xc0\xbe\x60\x3d\xed\x8b\xd1\xf2\x27\x6c\x0a\x6c\x0a\xd6\xe9\xa6\x78\xc5\x76\xe7\x50\xda\x26\x41\xac\x10\xa8\x7e\xd2\xef\xd9\xf7\x78\xd5\xb1\xa3\x44\x7c\x2e\x83\x63\x8b\x8d\x84\x30\xc3\x53\x8f\xdc\x43\x36\x34\x06\xdb\xcb\xc0\x6c\x2f\xc8\x86\xb6\xe6\x8b\x63\xc8\x86\xb6\xfb\x8d\xb6\x29\x2f\x5a\xc3\x95\x36\xca\xac\x1b\xc8\x8e\x86\x2c\x1c\xa7\x97\x85\x03\xd9\xd1\xba\x5c\x37\xc8\x8e\xb6\xd5\xc0\x36\xde\x62\x50\x88\xa0\x10\x21\x3b\x5a\x99\x1d\xed\x25\x76\x88\x4d\x79\xd2\x8e\x45\x6e\x43\xb6\x34\xc8\x69\xc7\x2f\xa7\x0d\x48\x1c\xc2\xad\x1d\x3e\x41\xb6\xb4\x63\x13\x31\xc6\x99\x2d\x6d\x7f\xe5\x5a\xff\xda\x60\x91\x6c\x55\xb0\x75\x7f\x82\x06\x0a\xb5\x42\xc4\x40\xa1\x56\x14\x6a\xdd\x61\xb2\x51\xa8\x15\x85\x5a\x51\xa8\x15\x85\x5a\xa1\x1d\xad\xdb\x45\x28\xd4\x8a\x42\xad\x6c\x83\x02\xd5\x77\xa1\xd6\x26\x7d\x62\x68\xa5\x5a\xdb\xe8\x48\x0d\x3e\x62\xbb\x68\x48\x28\xd2\x8a\x22\xad\xa0\x70\x7b\xbb\xb1\x82\x89\xac\xdc\xb4\x27\x78\xc6\xf7\xea\x98\xf8\xd2\x03\xfe\x85\xae\x89\x6b\x5e\x3f\x26\xe7\x44\xf8\xe8\xad\xf9\xe2\x18\x7c\xf4\xb6\x97\x24\x9a\x7c\xf3\xc6\x4f\x75\xe1\x8d\x07\x13\xec\xe9\x51\x5e\x78\xe3\x75\xb9\x6e\xe0\x8d\x07\x3d\x00\x7a\xc0\xd3\x61\x1c\x89\x3f\xde\x8b\x35\x81\xfd\xd4\x2b\x6d\x67\xed\x69\xf2\xc4\x1b\xbf\x94\xb6\xf3\x3e\x80\x5c\x06\xb9\x6c\x44\x72\xd9\x80\xc4\x1f\xdc\xd2\xe1\x93\xfe\x6e\xe9\xc3\xfa\xdf\x9d\xb6\x50\xd1\xa7\x07\xde\x8e\x22\xc5\x2b\xd6\xc6\x07\xef\xd2\xf3\xf9\xaa\x33\xde\x0e\xe6\x48\xdc\x7e\xad\x4c\x91\x0d\x37\x5f\xcf\x86\xd5\x13\xbd\xef\x9e\x9f\x8a\xb5\x77\x5d\xcf\x13\x02\xc3\x7d\xeb\x29\xea\xd7\x70\xdf\x97\xa6\xe5\x4f\xd4\xa7\xd1\x4f\xbb\x6b\x5d\x3f\xf9\x53\xfa\xb4\xb4\x2f\xc8\x8d\xfd\x8c\x2b\xe4\x46\xc8\x8d\x2f\x94\x1b\x0f\x9d\xd1\x6a\x47\x7f\x25\xe4\xb2\xb2\x9f\x60\x7f\xc2\x69\x04\xb2\x27\x9c\x46\x86\x97\xd8\x69\x57\xf7\x91\x63\x49\x0d\x00\x27\x12\xc0\x8a\xd3\x33\xde\xc0\x89\xa4\xcb\x75\x03\x27\x12\xe0\x29\xe8\x05\x4f\x87\x11\x4e\x24\xfd\xa4\x75\xda\xdd\xb0\x79\x2c\x52\x1b\x9c\x4a\x20\xa7\x9d\x82\x9c\x36\x20\x71\x08\xb7\x76\xf8\x04\x70\xc0\x3d\xf9\xa8\x84\x8c\xd1\xc0\x01\x15\xd7\x96\x78\x9f\xc9\x9c\x2a\x89\x2f\xd4\x94\xfd\x55\xc5\x6d\x73\x3a\xbd\x0f\x3f\x5c\xfd\x11\x12\x3b\xb9\x8c\x41\xe6\xbe\x90\xe9\x42\x38\x1d\xba\x92\x1b\xc8\xa8\x71\x8f\x46\x14\xc9\x45\x91\x4b\xf1\x60\x6e\xaa\xb9\xca\x85\x13\x15\x74\x99\xc4\x45\x8b\xfc\x41\xe4\x13\x76\x23\x53\x72\x3a\xae\xa6\xfd\xb1\x9f\xf9\x5b\xe7\x9c\x45\x89\x0c\x89\x48\xe8\xc2\xf2\x69\x6b\x42\x43\xec\x4f\xe9\xe1\xdc\x88\x41\x0f\x52\x2d\x34\xa3\xdb\xc6\x4b\x29\x74\xb1\xca\xd8\xdc\xa6\x11\x4f\xdc\x67\x95\xc2\x82\xdf\x89\x6f\x91\xc8\x8a\x90\x55\xc8\x3e\x52\x4d\xc3\x4b\xde\x84\xbc\x24\xae\x7d\xa6\x39\xb9\xa0\x64\x42\x7c\xb5\x29\xb2\x60\xb1\x12\x9a\xa4\xac\x20\x47\xb9\x0c\x47\x55\x81\x78\xf5\x67\xe6\x17\x74\x3d\x8b\x9c\x59\x51\xec\xd1\x65\x76\x89\x17\xc2\xe8\xe7\xe2\x5b\x26\x5d\xbe\xa6\xef\x66\x22\x15\x39\x99\x4a\xa7\x46\x26\x2b\x14\x9b\xca\x69\x21\x44\xca\xe6\x32\x5d\x14\x42\xbf\x31\x77\x3f\xb5\x6d\x2a\x67\x3e\xcd\x93\x95\x19\x98\x4a\x2b\x7d\x39\xaf\xf6\xcb\xcb\x76\x99\x4a\x9d\x3c\xc2\xd9\x7f\xbe\xfd\x77\xf6\xd9\xa5\x63\xb9\x32\x4d\x10\xb1\x93\xf8\x0a\x35\xb3\x0d\x74\xdf\x0c\x3d\x2a\xd4\xbd\x48\x43\x97\xed\x1c\xb2\x54\x88\x58\xdb\x6f\x91\xd8\x99\x16\x94\xba\xe7\xdc\x0c\x18\x49\x2e\xb9\xd0\x05\xcf\x0b\xf3\x1b\x99\xd3\x67\xf4\x60\xb5\x28\xea\x33\x4e\xc2\xc2\x84\x7d\x32\xaf\x7e\x94\x3e\xa3\x90\x7b\x8b\x99\x19\x2d\xd2\x98\xf1\xd4\xda\x1e\xe8\x39\xbe\xe4\x63\x10\xb1\xa8\x85\x66\x7a\x84\x7c\xa8\x8a\x5e\xa6\xb3\xd4\xb9\x67\x87\x85\x9e\x4b\x0d\x26\xbb\x87\x5f\xdc\xa9\xf8\x56\xb0\x7b\xb1\xb4\xf9\x72\xc2\x9f\x13\x23\x92\x17\x4c\xa7\x3c\xd3\x77\xaa\x38\x67\x8f\x77\x32\xa2\x8a\x90\x32\xad\x0c\x48\xf8\x7e\x58\xc8\xae\xf9\x76\x0b\x5d\x84\xfc\x4a\x36\x4c\x3f\x17\x2c\xb2\x17\xeb\xb9\x93\xf4\xcd\xbf\x54\xee\x13\x75\x31\x3e\x2d\x84\x5d\xd3\x53\x99\xeb\x62\x75\x30\xac\x44\xed\x6a\x71\xc6\x3e\x09\x8d\x17\x49\x48\xfe\x33\x0b\xd2\xfc\xd7\x4e\xca\xbd\x58\x92\xa0\x5e\x79\xf0\xd7\xd7\xbe\xcb\x5f\x5f\x4f\xbe\xa6\x5f\xd3\xba\x95\x8e\xf2\x07\x2c\x32\x9b\x74\xc0\x1e\x10\x8f\x64\xde\x91\x9a\xa4\xb5\x09\x7b\x5f\xd9\xe2\x76\x01\x70\xf7\x95\xca\xe8\xd9\x41\xa0\x35\xf8\xab\xbd\x7f\xdc\xb6\xc9\x45\xb1\xc8\xd3\x32\xe5\x90\x9b\x31\xab\x83\x14\x6c\x2e\xb5\x66\x3c\x5d\xd6\x15\xa1\x5d\x44\x54\xbf\xfc\x0e\xa3\x3d\x40\xc9\x6b\x3d\x51\x87\x54\xf2\xde\x31\x2d\xca\xdc\x51\xe6\x40\xcb\x65\x64\x8f\x2f\xda\x7a\x6a\x5a\x2e\xd8\x90\x2a\x6d\xe9\x36\x97\xb5\x9d\xd6\xf3\xd6\x89\x07\x91\x2f\x8b\x3b\x99\xce\x76\x56\xab\x6e\x5c\x8b\x0e\x33\x22\x48\x33\x78\x42\x69\x06\x5f\xb4\xfc\x13\x7e\x2b\x92\x4e\x97\x3f\x3d\xf1\xb0\xcb\x3f\x91\x73\x59\x58\x73\xcf\x9c\x7f\x93\xf3\xc5\x9c\xa5\x8b\xf9\xad\x59\x24\xd3\x70\x98\x6a\x3b\x5a\x66\x60\x2c\xcc\xb2\xa3\x15\xf1\x24\xa1\x25\x4b\x62\xb4\x34\x6d\xb1\x19\xf5\x9e\xca\x26\x46\xf8\x36\x7f\xfb\xbb\xbf\xa5\xfe\xee\x93\xfa\xa5\xe5\xe8\xfb\x7c\x7b\x76\xa1\xda\xd5\x49\xf7\x47\xc4\x53\xbf\x9c\x4b\x49\x48\xf3\xb9\xd9\x65\xb2\x90\x41\x64\xb6\xad\x34\xc2\xbd\x28\x65\x1d\xf3\x6a\xdb\x17\x33\x69\x13\x76\x23\x0a\x92\x88\x4c\x27\x4c\xdf\xad\xa8\x6c\xfb\x26\x1e\x49\x68\xe0\x69\xf5\x86\x30\x62\xca\x5c\x2d\x52\x7a\x8c\xed\xe5\x77\x8b\xcc\xbc\xcc\x6e\x68\xf3\x97\x37\x5e\x36\x11\x0f\x46\x4c\xe2\x74\x39\xf9\x5f\xfb\x95\x64\xe4\x92\xa9\x4c\x0a\x61\x24\x54\x23\x35\x9a\x3b\xca\x2b\x10\xee\x74\xa9\xe9\x10\xf6\x3e\x8d\x82\xbb\x4b\x5d\xc2\xb4\xd9\xff\x0a\x91\xcf\x65\x2a\x82\x2c\x5e\x53\x69\x48\x12\x7a\xe0\x32\xe1\xb7\x89\x98\x50\xe5\x02\xa3\x4f\x98\x2e\x47\x77\x4a\x69\x41\x5b\xbf\x50\x5e\x02\x72\x73\x61\x86\x85\xe7\xb3\xc5\x9c\xfa\x92\xc6\xfe\xb6\xa5\x41\x32\x7d\x73\xed\x09\x8f\x2e\x47\xf7\xe7\x29\x0b\x4b\xaa\x3c\x95\xbc\x76\xb2\xd2\x01\xa9\x99\x98\x67\xc5\xb2\xae\x46\x71\x6d\x94\x6c\x3b\xf3\xa9\xda\xd8\xa1\x4d\xa2\x9c\x9c\xae\x08\x72\x56\xf6\x0b\xeb\x72\xb6\xe0\x39\x4f\x0b\xe1\x85\x94\xf2\xa4\xd7\xe5\x21\x40\xf2\xe0\x82\xc4\x86\xd0\xf6\x20\x96\x06\x85\xad\x50\x4c\x6a\xbd\xb0\xab\xca\x7c\x39\x11\xe5\x0e\x09\x3a\x82\x5f\x70\x17\xde\x5e\x7a\x6e\xba\xe7\x5f\xb9\x9d\x9c\xec\x45\x64\x23\x9f\x6b\xbd\x10\x71\xa3\xb0\x6c\xe4\x4a\xbd\xb8\xd5\xe6\xcb\x69\x11\x7a\x10\x57\xc8\x29\x8d\xa0\x99\x2b\x35\x17\x85\x9c\x0b\xd3\xf7\xa9\xc8\x73\xca\x6f\x6a\xe4\xea\x9a\x3e\x54\xaa\x07\x66\x46\x45\xaa\x17\xb9\x08\x29\xb9\x9c\x82\xe3\x8d\xc1\x76\xd4\x6c\x97\x69\x63\x92\x2a\xc3\xf4\x9c\x27\x89\xc8\x59\x74\xb7\x48\xef\x09\xc3\x70\x66\x0e\x51\x96\xf0\x7c\xe6\x27\x9a\x76\xbc\x7d\xbc\xe9\xb4\xd1\x98\x04\x2d\xbc\x4c\x69\x2d\xcd\x82\x73\xc3\x46\x0b\xae\xba\xbf\xac\x63\x4e\x6c\xae\x74\x3b\x1d\xf4\x1e\x11\xdb\xf9\x20\xe5\xd9\x89\xe7\x6e\x0d\xbb\xbb\x90\x5a\xfd\xc8\xb5\x97\x61\x99\x5b\x11\x66\x4c\x9e\xea\x27\x56\x6b\xe7\xda\x4c\x70\xb4\x48\x6c\xda\xd9\x72\xd9\xec\x74\x17\x98\x81\x3a\xd0\xb5\x88\xec\xbb\xc8\xbe\x8b\xec\xbb\xc8\xbe\xbb\x17\x89\x73\xd5\x4c\xa2\x45\xe1\x6f\x99\x22\xe7\xd2\x9c\x12\x29\x7b\x34\x83\xe1\xbf\xe9\x8f\x6c\xf3\x35\x7f\xf1\x85\xa5\x97\xfb\x13\xc0\x88\x37\x22\x30\xc0\x0a\xdf\x92\xea\x32\x56\x91\xbe\xa4\x8b\xcd\x88\x53\x97\x74\x35\x5d\xf0\x4c\x5e\xf2\x4c\x5e\x44\x2a\x35\x6b\x45\x5f\xfe\x2e\x2c\xab\xf0\xc2\x29\xdd\xc1\x05\x97\x89\x26\xf9\xa1\x2a\xfb\x93\x67\xd0\x0e\xf3\xb0\x32\x00\x83\x98\x85\x8f\x24\x29\x05\x69\x52\xd3\x51\xb1\x3a\x53\x46\x4b\xc8\xb2\x44\x5a\xd9\x20\x08\x38\xd6\xff\x4a\x6a\x76\x27\x67\x77\xe4\x96\x15\xa9\xf9\xdc\x2c\xdd\xd8\x2e\xea\xc6\x77\x39\x8b\xbc\x19\xe0\xf2\x49\x46\xde\xca\x45\xd3\x8b\xcd\x77\xc7\x39\xbf\x1f\x57\xfc\x6c\xf6\x38\xc9\x5f\xe4\x5c\x18\xc9\xd3\x9b\x09\xcc\x40\x5f\x5a\xa1\xd8\xea\x6e\x24\xfd\x91\xe4\xa1\xed\x19\xe6\x0d\x21\x5e\xe1\xe0\x49\x72\xce\x72\x31\xe3\x79\x4c\xd0\xde\x88\x6b\xe9\x92\xf1\xa8\x90\x0f\xb2\x58\x9a\x5b\x41\xa6\xfe\xff\xed\x72\x28\x15\xb6\x89\x7d\x98\x05\x1a\x89\x1c\xd8\x3a\x32\x6a\xaf\xfe\x60\x63\x46\xed\x52\x4e\xea\x11\x64\xd7\x69\xee\x41\xd3\x6a\x5b\x3b\x58\xee\x74\x67\x2f\xb0\xab\x29\x33\x8d\x7d\x0e\x56\x9b\x1f\x3b\xe7\xb8\x1d\x01\xf5\x4a\x6b\x48\xfc\xfa\xcd\x34\xe5\x07\xa5\xee\xe7\x3c\xbf\xd7\xa5\x13\xb5\x6d\x22\x59\x5c\xb4\xb3\x0b\x2d\x33\xa3\x3c\xfc\xf0\xe9\xd3\x2f\x1f\xdf\x7d\xfe\xe5\xeb\xeb\xd2\xe6\x61\xc5\x2b\x45\x32\xaa\x9c\x67\x89\x20\xe3\xc6\x6d\x78\xaa\x11\x28\xe4\x2c\xb5\x36\x5f\x23\xf5\x26\x7c\x46\xf2\x66\xf9\x15\xa3\x5f\x56\x75\x43\x6b\x48\x38\xd3\x2c\x96\x3a\xca\x85\x69\x73\x49\x8b\x2a\x94\xc3\x19\x34\xea\x0f\x0a\x26\x06\xa3\x3b\x1b\x3d\xdd\x4b\xb2\xe6\xac\xcb\x1f\x78\x72\xce\x52\x65\x41\x2e\x69\xc0\xc1\x2a\xb2\x6a\x58\x23\x94\xb8\x64\xbe\xcf\xce\x02\x15\xf4\x5f\x2d\xb4\xa6\x86\x79\xd3\xb2\x33\x94\x38\x86\x55\x53\xe7\xcc\xa7\x34\x04\x71\x60\xa3\x53\xc1\x0b\xa3\x85\xcf\x78\x21\xd8\xca\x44\xb8\x27\x89\xd4\x88\xd9\xd6\xe0\x90\xc9\x12\xda\x36\x3d\x76\x87\x1b\xa2\x61\x09\x1c\x48\x95\x82\x7f\x01\xfc\x0b\xe0\x5f\x00\xff\x02\xf8\x17\x34\x1d\xbe\x00\xd7\x23\x1a\x11\xb0\x4c\xb0\x4c\xb0\x4c\xb0\x4c\xb0\x4c\xb0\xcc\xe3\x62\x99\xc0\x0b\xc0\x0b\xc0\x0b\xc0\x0b\xbd\xe3\x85\x2d\x10\xbc\x55\xe6\x54\xee\x63\x22\xcd\xf4\x5b\x64\x6c\xbe\x77\x4b\x97\x98\x9d\x54\x8b\xb8\x9d\x74\x52\xdc\x89\xb9\xbd\xb6\x74\x91\x0b\x3e\xa7\xe1\x89\xe3\x73\x77\x31\x9c\xbb\xef\xce\xd5\x03\xc9\x3e\x15\xf5\x8e\xdd\xd8\x8a\x78\xab\x4b\x7d\x97\x21\x7c\xdc\xb4\xc0\xc6\x9f\xaa\x60\xed\x0f\xcc\xcb\xbe\xb7\x03\xff\xa7\xa7\x63\xd0\xe6\xd9\xf5\x5f\x0f\x9b\x00\x95\xe1\x8a\x2a\x16\x1f\xa4\x2e\x4e\x91\xf8\x98\x03\x6c\x90\x94\x67\x87\x34\x69\xe3\xcd\x2b\xa6\x74\xc7\x48\xcb\xaa\x23\x8c\x3f\x47\xaf\xec\xf7\x5e\xc6\xaf\x86\x9a\xd1\xc1\x74\xa7\xdd\x8e\x46\x9c\xcf\x11\xc4\xf9\x20\x99\x03\x92\x39\x34\x34\x66\x98\xe2\xc6\x48\xf2\x38\x6c\xd5\xd2\x43\xd4\xc5\xdf\xa9\xa9\xc7\x24\xbf\x91\xe8\x30\x20\xf9\xed\x15\x5b\x97\x69\xc2\x65\xa0\xde\x53\xc2\x89\x67\x25\x9f\x6a\x92\x09\xa4\x96\x80\xd8\x33\x56\xb1\x07\xc1\xbc\x27\x14\xcc\x8b\xa8\x25\x44\x2d\x21\x6a\x09\x51\x4b\xd0\xd8\xd6\xed\xa2\x41\x86\x08\x1c\x46\x37\x42\x84\xc3\xda\x08\x87\x21\x69\x4c\xc1\x0a\xdc\x4f\x21\x9e\xba\x78\xf5\x8c\x52\x54\xa9\xbc\xd3\x4d\x30\x43\x45\xb8\x10\xdf\xc8\x45\xe9\xd6\xfc\x8b\x47\xc5\x84\xb1\x2b\xf3\x5f\xff\xf7\x39\x97\x64\x29\xd3\x2c\x4a\x16\xba\x10\x79\x79\x65\xb8\x04\xe6\x89\xbc\x17\xec\x2c\x64\x40\x3c\x33\x92\xa1\x97\x66\x26\xec\x3a\xe1\x69\xea\x32\xcf\x93\xbc\xc1\x13\x2b\xe2\xbc\xfd\xc3\x2e\x67\x30\xb5\xf1\x40\x92\x40\x18\xb4\x20\x48\xdf\xfa\xe1\x33\x3d\x65\x57\x76\xc4\xcc\xe9\x9f\x69\x3f\x3a\xce\x8b\x87\xb2\xc1\x47\x3c\xad\xc8\xc4\xcb\x9e\x07\xca\x34\xe6\x78\x61\xe9\xb0\xaf\xa8\x93\xb7\x7f\xf5\x5b\xea\x69\xaf\xf8\xb2\x56\xe5\xe9\xc9\x9b\x51\xe0\x09\x05\x9e\xf6\x52\xe0\x69\x2b\x81\xa1\x5a\xd1\xe9\x28\xf0\x31\xca\x38\xc1\xb4\x7a\x7a\x44\x19\x65\x9c\xba\x5c\x37\x28\xe3\x04\x71\x1f\xe2\xfe\x28\x2b\x38\xbd\x40\xe0\xef\xab\x78\xd3\x96\x06\x9c\x6a\xb5\xa6\xa3\x90\xc8\xe0\xd0\x07\xf1\xeb\xc8\xc5\xaf\x01\x49\x39\xb8\x8c\xc3\x27\x27\xee\xd0\x77\x54\x62\x43\xaf\x35\x99\xba\x77\x92\xbb\xcc\x72\xf5\x6d\xd9\xb7\xab\x5c\xa4\xd2\x54\x44\x05\xfb\xf1\xea\xc3\xd5\x97\xab\x52\xc5\x2b\x14\xa3\xf7\xb7\x28\xd5\xe4\x1e\x61\xe5\x0d\xeb\x83\x66\x7e\x71\x4d\xcd\x6f\x71\x82\xac\x6d\xea\xde\x76\xf9\xca\x61\x79\x82\x9b\xc3\xcd\x61\xbf\x1b\x84\x56\x84\x77\x4f\x1c\x08\x1f\xf5\xeb\xff\xcf\x57\x5f\x5e\xbe\xf8\xff\x2c\x0a\xac\x7c\xac\x7c\xfb\xe7\x8e\x57\xfe\x9d\xe0\x71\x3f\x4b\xff\x2f\x57\xef\x7e\x7c\xf9\xda\xff\x8b\xe0\x31\x16\x3f\x16\xbf\xfd\x73\xc7\x8b\x5f\xb9\x5f\xf7\xb2\xfe\x3f\x5d\x7f\xf9\xf9\xd3\x5f\x6f\x5e\xbe\x05\x5c\x1f\xb1\x0b\xb0\x0b\xec\x9f\x3b\xde\x05\x1d\xf8\x13\xac\x6f\xc5\x98\x7c\x0b\xae\x79\x61\x73\x42\xdd\x09\xf6\xb7\xcf\x1f\x98\x69\x35\xe5\x16\xd1\x22\x84\x13\x44\x8b\x3c\x17\x69\xe1\x76\xb2\x4f\x70\x53\x28\x66\x74\xac\xad\x1d\x0e\x9e\x0c\xcb\x21\xdc\x0d\xb6\x3d\xd8\xae\xdf\x7d\x79\xff\x97\x97\x1f\x6b\x84\xe1\x70\xa8\xe1\x50\xb3\x7f\xee\xfa\x50\xeb\x3e\xef\x81\x5f\xfe\x9f\x6e\x3a\xd0\xe9\xae\x95\x86\x52\x87\xc5\xef\xfe\xdc\xf5\xe2\xef\x1a\x18\x86\xb5\xff\xb7\x2e\x96\xfe\x02\x2b\x1f\x2b\xdf\xfd\xb9\x9b\x95\xff\x8a\xb5\xb2\x7a\x5f\xfe\xd3\x48\x5c\xbd\xc7\x89\xf7\x6c\xfc\xfe\x4d\x16\x77\xd7\x75\xc9\x11\x7b\x07\x7b\xe7\x84\x8c\xe0\xd8\x01\xd8\x01\xac\x87\x1d\x30\x2a\x63\x38\x36\x01\x36\x01\xeb\x61\x13\x8c\xd3\x28\x8e\xdd\x80\xdd\xc0\xfa\x50\xa5\x61\x1c\x0f\xee\xd1\x77\x3e\xd3\xb2\x4f\xbd\xb1\x5d\x6f\x9e\x7e\x02\x53\xff\x29\x9a\xfa\x71\x54\xe3\xa8\x66\x7d\x1c\xd5\x63\x32\xf9\x63\x13\x60\x13\xb0\x3e\x36\xc1\x68\x4c\xff\xd8\x01\xd8\x01\xac\xbb\x1d\xf0\x8a\x3d\x87\x00\xb4\xcd\x4c\x55\x31\xfe\xf7\x93\x16\xc9\xbe\xc7\x6b\x00\x3b\x26\x48\x72\x69\xb4\x5a\xec\x0d\x44\xca\x9c\x74\xfc\x09\xb2\xd4\x0c\x50\x59\x46\x96\x9a\x35\x5f\x1c\x43\x96\x9a\x1d\xcf\xef\x95\x7c\x35\x0d\x07\xf8\x28\x63\xa4\x91\xb5\x06\x61\xd3\xa7\x17\x36\x8d\xac\x35\x5d\xae\x1b\x64\xad\xd9\x6a\x60\x1b\x6f\x2d\x88\xff\x10\xff\x91\xb5\x86\x47\x3b\xcb\x67\x4f\xf2\xd7\x1c\x8b\x84\x86\x2c\x36\x10\xc7\x8e\x5c\x1c\x1b\x90\xd4\x83\xcb\x39\x7c\x82\x2c\x36\xc7\x23\x46\x8c\x20\x8b\x8d\xbf\x5c\xd2\xe2\x41\x25\x8b\xb9\x88\x12\x2e\xe7\xfd\xda\xf3\xa9\xd8\xbd\xca\x99\x2d\xc3\xee\x2b\x17\xa9\x29\x33\x5d\x63\xd7\xa1\x41\xbf\x52\x83\xde\x9b\x06\x6d\x90\x40\xcc\xd3\x1c\x07\x6b\xfa\xe5\x4f\x2a\x7f\x97\x24\xa1\x08\xc1\x20\x8c\xff\x6b\x7f\x70\xa2\xf5\xbc\x1b\x27\x0e\x05\xbe\x1b\xbe\xf6\xe2\x53\xe3\xb9\xdd\xd5\x33\x8c\xa0\xa2\x4f\xbf\x99\xb5\xf9\x83\x52\xf7\x73\x9e\xdf\xeb\xd2\xe6\x63\xcf\x03\xf1\x40\x85\x99\xac\x90\xb5\xcc\x04\xfb\xfa\xfa\x87\x4f\x9f\x7e\xf9\xf8\xee\xf3\x2f\x5f\x5f\x4f\xd8\x8d\xc8\x4d\x03\x5d\x51\x27\x45\x32\xb2\x9c\x67\x89\x98\x8b\xb4\x60\xb7\xe1\xa9\x73\xbe\x64\x72\x96\xda\x92\x7a\x52\x5b\x9b\x85\x11\xa7\xca\xaf\xf0\x5c\x30\x23\x8c\x33\x5e\x58\xa5\x87\x1e\x7d\xa6\x59\x2c\x75\x94\x0b\xd3\xe6\x09\x7b\x9f\x48\x6a\x4f\x45\x24\xe7\xda\x1c\x7f\x2b\x0f\xca\x45\xb1\xc8\x8d\x00\xc6\x0b\xc6\xd3\x25\x0b\xc5\x50\x64\x5a\x88\xfc\x81\x27\xe7\x2c\x55\x39\x35\xab\xb8\x13\x4b\xff\x90\xf2\xbd\x56\x70\xd6\x22\x8d\xe9\xf7\xbe\xcf\x76\x3c\x58\xbc\x30\x42\x15\xe3\x4c\x1b\x11\xdd\x34\xcc\x57\xee\x93\xda\x36\xca\x0e\x5f\xad\x88\x9c\xf9\x94\x86\xc0\xd5\x82\xbb\x13\x6c\x2a\x78\xb1\xc8\x05\x9b\xf1\x42\xb0\x95\x89\x70\x4f\x12\xa9\x91\x2f\xa9\xde\x1c\xcf\xa4\x6d\xdc\xba\xc7\x6e\x49\x59\x1a\xa6\xbf\x19\xb9\x34\x59\x78\x3a\x20\x48\x46\x04\x37\x92\xb4\x4c\x17\xc2\x19\x11\x2b\x55\x16\xb5\x28\xd8\xa3\x51\xd2\x72\x51\xe4\x52\x3c\x98\x01\x9f\x2b\x9a\x5b\x4d\xf5\x0c\x43\x39\x3c\x3b\x28\x13\x76\x23\xd3\x48\xac\x14\x50\x74\xb3\xe9\xe4\xf1\x73\x16\xb9\x05\x64\x66\x9e\x44\x79\x5f\x00\x30\x34\xc4\xfe\x94\x1e\xce\x8d\x82\xf8\x20\xd5\x42\x33\x1a\x46\xaf\xbf\xd1\x6e\x90\xb1\xd1\x33\x22\x9e\xb8\xcf\xca\xfd\xc7\xbe\x13\xdf\x22\x91\x15\xc1\xcb\xd2\x3e\x52\x4d\xc3\x4b\xde\x84\x0a\x6f\xae\x7d\xa6\x39\xb9\xa0\xb2\x8c\x7c\xb5\x29\xd2\xec\x2c\x61\x57\x43\xd0\x30\xc3\x12\x2a\x6d\x03\xab\x3f\x33\xbf\x20\xc5\x45\xe4\xcc\x2a\xa9\x8f\xae\x46\x5e\xbc\x10\xac\x50\x4c\x7c\xcb\xa4\xab\x7c\xf9\xdd\x4c\xa4\x22\x27\x42\x34\x35\xda\x6a\xa1\xd8\x54\x4e\x0b\x21\x52\x36\x97\xe9\xa2\x10\xfa\x8d\x91\x11\xa8\x6d\x53\x39\xf3\x05\x33\xad\x36\xc5\x54\x5a\xe9\xcb\xf9\x93\x5d\x64\xaf\x38\xa7\xa9\x71\xf6\x9f\x6f\xff\x9d\x7d\x76\xde\xb5\x57\xa6\x09\x22\x76\xba\x70\xa1\x66\xb6\x81\xee\x9b\xa1\x47\x85\xba\x17\x69\xe8\xb2\x9d\x43\x96\x0a\x11\x6b\xfb\x2d\x77\x88\x52\x11\xc4\x73\x33\x60\xa4\xd3\xe5\x42\x17\x3c\xa7\xd3\x44\xe6\xf4\x19\x3d\x58\x2d\x8a\xfa\x8c\xd3\x3e\x9a\xb0\x4f\xe6\xd5\x8f\xd2\xd7\x66\x74\x6f\x31\x33\xe3\x8e\x01\x6b\x7c\xa5\xe7\x78\x4f\xd9\xa0\x7c\x52\x0b\xcd\xf4\x08\xf9\x50\x55\x4a\x4d\x67\xa9\x73\xcf\x0e\x0b\x3d\x97\x1a\x4c\x86\x5f\xbf\xb8\x53\xf1\xad\x60\xf7\x62\x69\x2b\x0f\x86\x3f\x27\xbc\x30\xef\xd7\x29\xcf\xf4\x9d\x2a\xce\xd9\xe3\x9d\x8c\xc8\xdd\x57\xa6\x95\x01\x09\xdf\x0f\x0b\xd9\x35\xdf\x6e\xa1\x8b\x20\xef\xd9\xfa\x47\xb9\x60\x91\xd5\x3b\xce\x9d\x0d\xc4\xfc\x4b\xe5\xbe\xe4\x29\xe3\xd3\x42\xd8\x35\x3d\x95\xb9\x2e\x56\x07\xc3\xda\x1a\x64\x1a\x25\x8b\xd8\x9e\x59\xce\x95\x9a\x44\x1c\xd2\x8c\xcd\x82\x34\xff\xb5\x93\x72\x2f\x96\xf6\xc0\x2e\x1f\xfc\xf5\xb5\xef\xf2\xd7\xd7\x93\xaf\xe9\xd7\xb4\x8e\x29\xa8\x30\xd3\x22\xb3\xd5\x9c\xec\x01\x61\x6f\x2a\xa9\xe9\x10\x2a\xef\x08\x9a\x39\x5a\x00\xee\x34\xae\x8e\x9e\x1d\x04\x5a\x83\xbf\xda\x1b\xd6\x6d\x9b\x70\x73\xb8\xe2\x8d\x6e\xc6\xac\x75\xa6\x60\x73\xa9\x35\xdd\x08\x35\x13\xd1\xb6\x27\xaf\x5f\x7a\xdd\x10\xee\x76\xa7\xed\x3b\xa6\x45\x59\xd0\xd1\xec\x8d\x5c\x46\x76\x27\x58\x15\x60\x5a\xf6\x3d\xd4\x2f\x5d\xba\x79\xb2\x1c\xa2\x5e\x4c\x56\x3c\x88\x7c\x59\xdc\xc9\x74\xb6\x6d\xf7\xe9\x69\x37\xae\x35\xa3\x19\x83\x84\xdf\x8a\xa4\xb3\x31\xa0\xa7\x1d\x62\x0c\x12\x39\x97\x85\x35\xa5\xcd\xf9\x37\x39\x5f\xcc\x59\xba\x98\xdf\x8a\xdc\xf6\xde\x69\x23\x76\x7c\xcc\x50\x58\x1e\x68\xc7\x27\xe2\x49\x42\xc7\x30\x5d\xc4\xd2\xb4\xc2\x56\x37\x7d\x7a\xba\x99\xeb\xdb\xfc\xed\xef\x7e\xad\xff\xdd\x17\x58\x4d\xcb\xf1\xf6\xb5\x4f\x6d\x6d\x62\xbb\x01\xe9\x24\x8a\x78\xea\x2b\x18\x97\x67\xa9\xe6\x73\x73\xb8\xc8\x42\x86\x4b\xd7\xb6\xd2\x88\x07\xa2\x3c\x2d\xcd\xab\x6d\x5f\xcc\x34\x19\x21\xb5\x28\xac\xb8\x66\xfb\x6e\x2f\x5b\xdb\x37\xf1\x48\xc7\x0e\x4f\xab\x26\x56\x73\xd0\xcd\xd5\x22\xa5\xc7\xd8\x5e\x7e\xb7\xc8\xcc\xcb\x6c\x0d\x67\xf3\x97\x37\xfe\x74\xb3\x12\x21\xa7\x03\xdd\xff\xda\xaf\x1d\x73\xb2\x4d\x65\x52\x08\x73\xc7\x99\x7b\xc7\x1c\x23\x51\x5d\x86\xad\x49\x21\xd6\x20\x1d\x05\x17\xa1\xfa\x1d\x65\x2b\xb1\x16\x22\x9f\xcb\x54\x84\xdb\xbc\x26\x14\xd1\x59\xfa\xc0\x65\x62\xa4\xc6\x52\x3e\x37\x5d\x8e\xee\x94\xd2\x82\x4e\xb1\x42\xf9\x33\xd4\xcd\x85\x19\x16\x9e\xcf\x16\x24\xb6\xf3\x34\xf6\x37\x14\x0d\x92\xe9\x9b\x6b\x4f\x78\x74\x39\xba\x3f\x4f\x59\x58\x52\xa5\x30\xe2\xe5\x9b\x95\x0e\x48\xcd\xc4\x3c\x2b\x96\x75\x41\x2c\x48\xdf\xbc\x30\x32\xcb\xa6\x0e\x6d\xba\x0c\xe4\x74\xe5\x2a\xb0\xb7\x47\x58\x97\xb3\x05\xcf\x79\x5a\x08\x6f\xe5\x2f\x4b\x29\xeb\x72\xdb\xd3\x8d\xb2\x20\xbb\x7b\x68\x7b\xb8\xd8\x82\xc8\x57\x28\x26\xb5\x5e\x38\x25\x40\xa6\xb3\x44\x94\x3b\x24\x48\x19\x7e\xc1\x5d\x78\x5b\xb4\xd1\x3a\xc2\x2b\xb7\xbb\x69\xfd\x25\x4b\x3a\x86\x5e\x88\xb8\xf1\xba\x25\x5d\x67\x71\xab\xcd\x97\xd3\x22\xf4\x20\xae\xc0\xe7\x2f\x4e\x4d\xd1\x6a\x2e\x0a\x39\x17\xa6\xef\x53\x91\xe7\x54\x6b\xda\xdc\xcc\x35\x89\xaa\x14\x30\xcc\x8c\x8a\x54\x2f\x72\x11\xaa\x25\x3a\x11\xc9\x1b\xda\xed\xa8\xd9\x2e\xd3\xc6\x24\x61\x88\xe9\x39\x4f\x12\x91\xb3\xe8\x6e\x91\xde\x93\x65\x89\x33\x73\x6c\xb2\x84\xe7\x33\x3f\xd1\xb4\xe3\xed\xe3\xad\x46\xa6\x85\xa0\x85\x97\x29\xad\xa5\x59\x70\x6e\xd8\x68\xc1\x55\xf7\x97\xf5\x68\x8a\x4b\x9d\x8c\xde\x23\x62\x3b\x1f\x24\x7e\xbb\x0b\xde\xad\x61\x57\xfe\x9c\x5a\xfd\xc8\xb5\x87\x40\x5e\xef\x34\x63\xf2\x54\xc2\xb1\x72\x3f\xd7\x66\x82\xa3\x45\x62\x4b\x80\x97\xcb\x66\xeb\xd3\xdf\x0c\x52\xf3\xa9\xdf\x54\x03\xfd\x84\xdc\xf5\xda\xf5\x66\x55\x76\xd3\xa2\xf0\x0b\xb7\xc8\xb9\x34\x27\x77\xca\x1e\xcd\x0c\xfb\x6f\xfa\x55\x60\xbe\xe6\xf7\x52\xa8\xeb\x9d\xfb\xf2\xea\xe6\xc4\x14\x01\xd9\x54\x2c\x7a\x52\x5d\xc6\x2a\xd2\x97\xb4\x57\xcc\x09\x7d\x49\xab\xfd\x82\x67\xf2\x92\x67\xf2\x22\x52\xa9\x51\xf9\xf4\xe5\xef\x42\xcd\xee\xf0\xc2\x29\x6d\xeb\x82\xcb\x44\xd3\x91\x54\x15\x20\xc8\x5f\x63\xcb\xe1\x5e\xe9\xfc\x01\xc7\xfd\x23\x1d\xb7\xe1\x4a\xd2\x54\x79\x7d\x75\x6e\x8c\xa8\x91\x65\x89\xb4\x07\x4c\x38\x25\xad\x1f\x8c\xd4\xec\x4e\xce\xee\xc8\x3d\x26\x52\xf3\xb9\x48\xa9\xe8\x7d\x75\xe6\x6a\xef\x72\x86\x01\x33\xa4\xe5\x93\xcc\xa1\x9d\x8b\xa6\x17\x9b\xef\x8e\x6f\x46\x3f\x3e\x35\x36\xf7\x3b\xad\x5f\xe4\x5c\x98\x0b\xcb\x1b\x2c\xcc\xd0\x5e\xda\xbb\xd4\x8a\x7c\x74\x69\xd0\xa1\x65\xe3\x49\x63\x6f\x01\xf0\x72\x0a\x4f\x92\x73\x96\x8b\x19\xcf\x63\xe2\xa8\xe6\x94\x4f\x97\x8c\x47\x85\x7c\x90\xc5\xd2\xdc\x6c\x32\xf5\xff\x6f\xdb\xf3\xa5\xb0\xcd\xbb\x11\x91\x4a\xe3\x35\x36\xaa\x9e\x8e\xcd\xdf\xac\xe2\xa8\x72\x4f\x8e\x7d\x7c\xb0\xfd\xde\x2d\x5d\xad\x76\xf2\x6c\xd9\x7e\x27\x33\x15\x77\x62\x6e\x2f\x53\x8b\x00\x68\x40\xe2\xf8\xdc\x5d\x57\xe7\xee\xbb\x73\xf5\x40\x12\x59\x45\x95\x64\x37\xb6\xec\xf0\xea\x72\xde\x76\xd0\x1a\x88\xc5\xce\xf6\x3c\xf7\xaf\xff\x6d\xc5\xac\x74\xdf\xb9\xa7\xec\x33\x59\xa4\x12\xa3\x3d\xb9\x55\xb8\x6a\x4a\xdf\xc0\xa8\xec\xef\x2d\xa5\x7a\x1f\x1e\xb2\xe9\x01\xfd\x3a\xcd\xf4\xe2\xb8\x6c\x13\x6a\xf9\x30\xa3\x76\xe4\x66\x33\xb2\x81\xb9\x16\xe6\x5a\x98\x6b\x61\xae\x3d\x36\x73\x6d\x3b\x5f\xab\x46\x93\xed\xde\xdc\xe0\xe0\xad\xd8\x7a\xa2\x0e\xe9\xad\xb8\x37\x1b\xfb\x16\xfe\x81\x8d\x36\xe6\xbd\x8d\xc8\x97\xaa\xb2\x20\x8d\xa2\x4e\x32\x3c\xbb\x15\x53\xeb\x0c\x10\xec\x31\xa5\x28\xe1\x4e\x2f\x5a\x3a\x15\xff\xcc\x54\xa5\x17\xa9\x98\x71\x5a\xa0\x4e\xdc\xaf\xfa\x71\x5a\xdb\x6c\xd8\x1a\x4e\x4a\x94\xf3\xb9\x88\x25\x2f\x44\xb2\x2c\x29\x7d\x79\xe5\xca\xe4\xdc\x89\xf3\x34\xe8\x6c\x96\xf3\x88\x76\x8d\x54\x71\x10\x08\xca\x4b\x9b\x5c\x20\xfc\x2a\x5d\x68\xd3\xc8\xea\x74\x71\xf3\x4b\xdf\x21\xf7\x92\xa9\x3d\x03\xfd\x23\x26\xb6\x9d\x36\xfe\xa3\xa1\x8d\x3b\x4c\x33\xb5\xf9\x9a\x9a\xdc\xa4\x22\x3d\xa3\x24\x0d\x65\xf9\x6f\x83\x57\xda\x8d\xcb\x7a\xc4\xb2\xb7\xe5\x0f\xd8\x02\xd8\x02\xd8\x02\xd8\x02\xd8\xd2\x1b\x6c\x69\x79\x17\x3c\x01\x2e\xfb\xbb\x16\x7f\x14\x59\x2e\x8c\x50\x12\xff\x91\x65\x89\xe0\x5a\x84\x23\xe8\x3a\x57\x19\x9f\x91\x74\x74\xad\x12\x19\x2d\x6b\xae\x7d\x7e\xd1\xc5\xe1\x01\x66\xd9\xbd\x9d\xfc\xd7\x84\xdd\xd8\xf3\xcc\x8a\x2e\x99\x48\xcd\x66\x29\xef\x54\xc1\x54\x9e\xdd\xf1\xd4\xbb\x1a\xe6\x0b\x71\x39\xe5\x89\xd7\x95\xbf\xbe\xb6\x1f\x7f\x7d\xcd\xa6\x32\xe5\x89\xfc\x87\xbf\x48\x6e\x05\xe3\x31\x59\xe0\xd5\xa5\xb5\x4e\xc6\xa5\x1a\x66\x1f\x7f\xa6\xcb\x1f\x59\xfd\x74\xc2\xae\x24\x1d\x8e\x95\xa6\xab\xfc\x69\xdf\x4a\xde\x52\x58\xf5\x98\x74\x14\x55\xdc\xed\x32\xa1\xb6\x07\x3f\xfa\xbe\xaf\x15\x79\x76\x8a\x4e\xdd\x4a\x31\xa3\xae\x9b\x0d\x7b\xa7\x1e\xd9\x8c\xe7\xb7\x7c\x56\x33\x4e\x06\xa5\x46\xe4\x53\x95\xcf\xcd\x9c\x34\x8e\xd7\xa7\x95\x1e\xad\x1f\x2e\x12\x7a\xbd\xc4\x9a\xd9\xb1\x95\x46\x9a\x8c\x64\x5c\xaa\xc2\x24\x2b\xd8\x20\x62\x3f\xc7\xe6\xb2\x76\x37\xa9\x97\x06\x26\x95\xc9\xf4\xf7\x48\x00\x1e\xc1\x6d\xb6\xfe\xb2\x09\x7b\x17\x45\x22\xb3\x91\x4f\x55\xcd\xee\xcc\xf6\xe1\x8c\x5d\xb8\x05\x58\x5f\xa0\xfa\x7b\x76\xf6\x03\x8f\xee\x67\xb9\x5a\xa4\xb1\xf9\x16\xb9\xa0\xd2\x97\x56\x06\xce\x8a\x90\x4e\x3e\xae\x3f\xc4\xf7\xe0\x36\x3c\xe9\x7b\x76\xf6\x93\xca\x45\xe5\xb1\x2c\xe2\x3a\xe2\xb1\xe9\xbd\x1b\x1f\xeb\xa1\x4c\xcf\xd3\x56\xf5\x7c\xf2\xc0\x69\x78\xc6\x2e\x0b\x32\x5b\x5d\xee\x87\x91\x38\x8f\x98\x8c\xb6\x9b\x87\x4d\x74\xf4\x50\xb3\x00\x4e\xda\xdb\xfc\x3e\x65\xa5\xfb\xb3\x6d\x1c\x92\x9a\xb6\x1b\xac\x0d\xe4\xf4\xa5\xf2\x4f\x23\xa9\x43\x90\xe8\x96\x98\xce\x05\xe8\xb7\xe3\x73\x47\x15\x59\x65\xef\xe2\x52\x4e\xda\x5f\x94\xd5\x8e\x01\x56\x07\x8e\xbc\xdc\x29\xe8\x72\x17\x88\x8d\x20\xb1\xd3\x09\x12\x6b\x77\x8b\x3c\x17\x28\xb6\x3f\x75\x0b\x3e\x08\xf0\x41\x80\x0f\x02\x7c\x10\xe0\x83\xd0\x74\xf8\x02\x6e\x8f\x68\x44\xc0\x3b\xc1\x3b\xc1\x3b\xc1\x3b\xc1\x3b\xc1\x3b\x8f\x8b\x77\x02\x41\x00\x41\x00\x41\x00\x41\xf4\x8e\x20\xb6\xc0\xf4\x03\x0d\xe3\x6a\x37\x84\x4f\x43\xb9\x8e\x2a\xfd\xf6\xda\x1f\x20\x01\x1f\x19\xf1\x91\x7b\xaf\xe1\x6b\x43\xa1\x42\x3b\xa4\xdd\x1b\x4b\x28\xfe\xab\x95\x99\xea\xa3\xfa\x24\xa9\x29\x8c\x6f\x43\xbb\xec\x6f\xba\xe3\x5d\x03\xcd\x74\xfe\xa4\x6b\xed\x4e\x00\xc4\x11\x1d\x41\x1c\x11\xb2\x9e\x23\xeb\x79\x43\x63\x86\x2f\xaa\x8c\x23\x03\xfa\xee\xad\xfe\xfd\xb3\xad\xb6\x9e\xb1\x83\x6a\xf6\x31\xc9\x84\x24\x82\x0c\x54\x26\x7c\xc5\xda\x64\xc7\x70\xa5\x5a\xf7\x94\x24\x63\x2b\xc9\xaa\x9a\x18\x03\xe9\x30\x20\x4a\x1d\x83\x28\x85\x00\xe4\x13\x0a\x40\x46\xa4\x15\x22\xad\x10\x69\x85\x48\x2b\x68\x81\xeb\x76\xd1\xc0\xb4\x40\xe8\x53\xec\xb0\xfa\x94\x53\x3d\x06\xaa\x51\x05\xcb\x73\xe7\xb1\x17\xb9\xe0\xf1\x8a\x68\xb5\x85\xa2\x64\x7e\xdd\x5b\xc0\x45\x45\xe0\x10\xdf\xc8\x8d\xea\xd6\xfc\x8b\x47\xc5\x84\xb1\x2b\xf3\x5f\xff\xf7\x39\x97\x64\x91\xd3\x2c\x4a\x16\xba\x10\x79\x79\x8d\xb8\xc2\xc1\x89\xbc\x17\xec\x2c\xd4\xdb\x3a\x33\xd2\xa2\x97\x70\x26\xec\x3a\xe1\x69\xea\x2a\x3e\x93\x0c\xc2\x13\x2b\xf6\xbc\xfd\xc3\x2e\xe7\x32\xb5\xf1\x40\xd2\x41\x18\xb4\x20\x5c\xdf\xfa\xe1\x33\x3d\x65\x57\x76\xc4\xcc\x8d\x90\x69\x3f\x3a\xce\xd3\x88\xaa\x30\x47\x3c\xad\xc8\xc9\xcb\x9e\x07\xca\x34\xe6\x78\x81\xee\x91\x5f\x5b\xc7\x74\xfe\xcf\xc4\x60\xcd\x69\x2f\x41\xac\x84\x4b\x9c\xd9\x63\x73\x2b\xa4\x2f\x31\x7d\xd7\x0c\x54\xe9\xbf\xb5\x4f\x36\x90\xbf\x9e\xd3\x34\x8f\x17\x1c\x93\xfb\x45\xab\x0b\x7c\xf5\x6c\xba\xa0\xdf\xfe\xdb\xe6\x63\x6a\x2e\xf2\x99\x68\xf5\x4d\x5d\xe4\xbc\x10\x33\x19\x5d\xb4\xff\x0d\x55\xd1\x77\xdf\xa4\x03\xb1\x8d\x80\x91\xf1\xbc\x90\x14\x1d\x65\x5d\x85\x76\x17\x36\xe8\xc5\x87\x36\xca\xf6\x85\xbb\x37\x98\x6c\xaf\xeb\x3e\x3b\x0c\xa6\xda\x23\x37\xd5\x9e\x0e\xf5\x5e\x89\x34\xf0\x9b\xcb\x46\xc3\x98\xd3\xa6\x8c\xb0\xfe\x6e\xcd\x49\xf4\x86\x0c\x55\x36\x04\x96\x27\xf4\xcb\x54\xa5\x17\xf6\xd7\xf4\x0d\xb2\x15\x6b\xf6\xdd\x7f\x6b\x95\x5e\xdb\x40\xe3\x8f\xe6\xcc\x73\xff\xbe\xf1\x27\x61\xf9\xc7\x37\x43\xc2\xf1\xed\xd7\xcd\x4f\x2a\x8f\xc8\x98\x3e\x53\x34\xf9\x8a\x7d\x7d\x3d\x35\x7f\xfb\xfa\x9a\xbd\xab\x8d\x26\xf9\x31\x5b\xcb\x37\x09\xfd\x6e\xa3\x5e\xf0\x88\x26\x80\x42\x55\x13\x19\x39\x5b\x1e\xe9\x08\xea\xd1\xcd\xad\x0d\xe5\xcc\x84\xca\x12\x31\x61\xf6\x9d\x14\xa1\xee\xd7\x14\x79\x13\x37\x4e\x44\x78\xfd\x2e\xc3\x6b\x5e\x04\x55\xc1\x7e\x00\x55\xe1\x90\xe8\x7d\xc5\x03\x77\xa0\xca\xc2\xa2\x73\x4b\x51\x96\xf0\xe8\x05\xf2\x9b\x7b\xc0\xb1\x4a\x70\x70\x58\x84\xe8\x76\x42\xa2\xdb\x80\x24\x24\x5c\xe4\xe1\x13\x38\x2c\x36\xb6\xfa\xa8\xc4\x8f\xc5\x60\x2d\x95\xaf\xd8\x16\x8e\x7f\x97\xda\xa6\x7c\xab\xf8\xff\xf5\x43\xb7\xec\x7b\xfc\xb5\xd4\x31\xe7\x72\x79\xeb\x70\xf0\x60\x0b\x37\xfc\x00\xb0\x01\xb0\x01\xb0\xe1\x80\xb0\xa1\x83\xb3\x7f\x03\x76\x68\x38\xfc\x47\xa9\xba\x02\x3e\x40\x83\x3d\x3d\x0d\x16\xf0\xa1\xcb\x75\x03\xf8\x00\x9b\x05\x54\x07\xc0\x07\xfa\x62\x6f\xf0\xa1\x13\x5d\x7e\x03\x86\x38\x16\x89\x0e\x30\x02\xa2\xdc\x09\x89\x72\x03\x92\x98\x70\xb1\x87\x4f\x00\x23\x1a\x5b\x7d\x54\xe2\xc8\xd8\x60\x84\x8a\xfb\x25\x0e\xcf\xd4\x32\x51\xf1\x06\xc9\xa4\x52\xbe\x44\xc5\x3f\xa9\xfc\x5d\x92\x84\x88\x95\x41\x20\x86\xb5\x3f\x38\xd5\x04\x75\x2a\x46\x4e\xba\x86\xaf\xbd\x7c\xe7\xab\x78\x7f\xd8\x02\x85\x7d\x8e\xb8\xb0\xcf\xf3\x0c\xe6\xb9\xa2\x3e\x1b\xed\x3c\x1d\xf0\x25\x94\xf2\x41\x29\x1f\x94\xf2\x41\x29\x9f\x63\x2b\xe5\xf3\xfc\xc9\xdb\x58\xc6\xa7\x67\x9a\xbf\xb7\xe2\x3d\xcf\x77\x7f\x7d\xe1\x9e\x21\x8f\xc1\x36\xe5\x7a\x9e\x1f\x83\xf5\xa5\x7a\x7a\x1e\x03\x14\xe8\x41\x81\x1e\x14\xe8\x41\x81\x1e\x14\xe8\xe9\xad\x40\x4f\x8b\xd3\xff\x49\x71\x9e\x8d\x09\xf2\x4e\xc8\x99\xaf\x5d\x6f\x8e\xb8\xc0\xd0\xf3\xc3\xbd\xa9\xb8\xd0\x7e\xc7\x1d\x25\x85\x7a\x99\xd1\xa7\xe5\x84\x7a\x9e\xd6\x83\x16\x11\x7a\x7e\x78\x36\x14\x10\xea\xfb\xd8\x1c\x6a\xd9\xa0\xe7\x07\xad\x81\x46\xec\x6c\xcf\x73\xff\xfa\xdf\x75\x64\xa9\x10\xf3\x8c\x2c\x12\x87\x25\x4c\x5f\x5c\x33\xda\x92\x26\xff\x7d\x10\xa7\xd5\x91\x1f\x24\x71\xf2\xd3\x05\xf2\xd4\xf0\xb5\x2e\xc8\x53\xc3\xfe\x01\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\x02\x81\xda\xe2\xd8\x07\x81\x02\x81\x02\x81\x1a\xc7\x8c\x82\x40\xd5\x87\x07\x04\x6a\xc8\x04\x2a\x17\x81\x79\x18\x79\x23\x57\xe6\xb6\x3f\x24\x8b\xfa\x5c\x36\xe8\x7d\x68\x50\x2b\x2a\xd5\xf8\x4b\xf0\xa9\xd5\xd9\x18\x1e\x9f\x6a\x9c\x38\x90\xaa\x86\xaf\xbd\x98\x54\x3d\xb7\xbb\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xc0\xac\xb6\x38\xf6\xc1\xac\xc0\xac\xc0\xac\xc6\x31\xa3\x60\x56\xf5\xe1\x01\xb3\x1a\x36\xb3\xb2\xed\xfc\xbf\x85\x2a\xf8\x61\x59\x95\x6d\xc8\xff\x98\x86\xb4\x64\x54\x95\x5f\x80\x4d\xad\x8e\xfe\x10\xd9\x54\x65\xc2\xc0\xa4\x1a\xbe\xd6\x01\x93\x6a\xde\x45\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x60\x51\x5b\x1c\xfb\x60\x51\x60\x51\x60\x51\xe3\x98\x51\xb0\xa8\xfa\xf0\x80\x45\x0d\x99\x45\x69\x11\xe5\xa2\x38\x24\x84\xba\xa1\x16\xb4\xa2\x4f\xf6\xab\xc0\x4e\xab\xe3\x3d\x3c\xec\x64\x67\x0a\xbc\xa9\xe1\x6b\x2f\xe6\x4d\x4f\x36\x0c\x40\x13\x40\x13\x40\x13\x40\x13\x40\x13\x40\x13\x40\x13\x40\x13\x40\x13\x40\x13\x40\x13\x40\x13\x40\x13\x40\x13\x40\x13\x40\xd3\x16\xc7\x3e\x40\x13\x40\x13\x40\xd3\x38\x66\x14\xa0\xa9\x3e\x3c\x00\x4d\xc3\x06\x4d\xf9\x83\x8c\x04\x8f\x22\x23\x32\x1f\x16\x38\x51\x4b\xde\xd9\x96\xb4\x04\x4f\xd5\x9f\x00\x40\xad\x8e\xff\x10\x01\x54\x75\xc6\x00\xa2\x1a\xbe\xd6\x01\x88\x5a\xb3\x91\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\x00\xa4\xb6\x38\xf6\x01\xa4\x00\xa4\x00\xa4\xc6\x31\xa3\x00\x52\xf5\xe1\x01\x90\x1a\x01\x90\x1a\x00\x89\xda\x06\x41\x81\x3d\xad\x8e\xf8\x60\xd9\x13\xa0\x53\xc3\xd7\xba\x82\x4e\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\x1d\x9d\xb6\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\xa0\x4d\x83\x9c\x51\xd0\xa6\xfa\xf0\x80\x36\x0d\x99\x36\xd1\x8b\x2e\xad\x61\x68\xce\xb3\x7e\xa9\x93\x13\xf0\xd2\x58\x3e\xc8\x78\xc1\x93\xea\xb4\xf0\xa0\xc4\xbd\xa7\xc6\x7c\xe4\xd9\x84\xc5\x22\xcb\x45\x64\xee\xeb\x3f\x06\x29\xfb\x8c\x9e\x72\x56\x9a\xec\x6a\x36\x98\xc0\xa9\x98\x4c\x75\x21\x78\xed\x3a\x5c\xa5\x58\xf4\x24\x8b\xb1\xc2\x4b\x3f\x48\x8d\x40\xaa\x27\x13\x39\x18\x98\x35\xe7\xd1\x9d\x4c\x45\xbe\x9c\x64\xf7\x33\xf3\x07\x3d\x31\x7a\xe8\xe4\xe1\xed\x84\x76\xfb\x95\x51\xe8\x4e\x91\x6e\xd1\xe4\xf5\x8b\xb8\xc2\x1e\x01\xe4\x02\xe4\x02\xe4\x02\xe4\x02\xe4\x02\xe4\x02\xe4\x02\xe4\xea\xe8\xb4\x05\xe4\x02\xe4\x02\xe4\x02\xe4\x02\xe4\x02\xe4\x02\xe4\x02\xe4\x02\xe4\x02\xe4\x02\xe4\x1a\xe4\x8c\x02\x72\xd5\x87\x07\x90\x6b\xf8\x90\x4b\xa4\x71\xa6\x64\xdf\x39\xfe\xda\x31\xae\x2b\xdf\x96\x7d\x32\xae\xf0\x52\x30\xae\xa6\x89\x04\xe3\x02\xe3\x7a\x1d\xf6\x08\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x57\x47\xa7\x2d\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\x17\x18\xd7\x20\x67\x14\x8c\xab\x3e\x3c\x60\x5c\x23\x60\x5c\x64\x28\x1e\x02\xe0\x32\x0d\xd9\x2b\xdc\x32\x2f\x04\xd8\x6a\x9a\x40\x80\x2d\x80\xad\xd7\x76\x6c\x01\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x06\x00\x74\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\x00\xb5\xea\xbd\x01\xd4\x02\xd4\x02\xd4\x02\xd4\x02\xd4\x3a\x5d\xa8\x45\x8b\x23\xa7\x21\x1a\x00\xd9\xfa\x60\x5a\xf3\xd9\x7c\xb0\x4f\xbc\x55\xbe\x15\x8c\xab\x69\x2a\xc1\xb8\xc0\xb8\x5e\x97\x9b\x04\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\xab\xa3\xd3\x16\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x0b\xa0\x6b\x90\x33\x0a\xd0\x55\x1f\x1e\x80\xae\xe1\x83\xae\xb4\x04\x3a\x87\xe7\x5c\x81\x2e\xed\x13\x73\x85\x97\x7e\x58\x01\x05\xa0\x5a\xa0\x5a\xec\x34\xa9\x56\xd8\x13\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x1d\x9d\xb6\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x80\x5a\x83\x9c\x51\x40\xad\xfa\xf0\x00\x6a\x8d\x09\x6a\x5d\xfe\x33\xfc\xfb\x5f\x97\xd6\x5e\x34\xe7\xd9\x10\x58\xd7\x7b\x6a\xcc\x47\x9e\x1d\x84\x75\xc5\xe1\xf5\xa0\x5e\xa0\x5e\xa0\x5e\xb4\x51\xc2\x9e\x00\xf5\x02\xf5\x02\xf5\x02\xf5\x02\xf5\x02\xf5\x02\xf5\x02\xf5\xea\xe8\xb4\x05\xf5\x02\xf5\x02\xf5\x02\xf5\x02\xf5\x02\xf5\x02\xf5\x3a\x39\xea\xe5\x7a\x6d\x1a\x40\x53\xc9\x17\xc5\x1d\xd3\x91\xca\xc4\x39\xd3\x8b\xe8\xce\xcc\x3c\xe9\x2b\x82\xcf\xad\xfd\x36\xcb\x15\x8d\x72\x53\xd7\x32\x5e\xdc\x35\xf7\x2c\x6d\x76\xde\x35\xeb\xcf\x48\xfa\xae\xf5\x7b\xbc\xef\x80\xfb\x80\xfb\x80\xfb\xc6\x31\xa3\xc0\x7d\xf5\xe1\x01\xee\x3b\x02\xdc\x67\xff\xfc\xaf\x3d\x50\xbf\x2a\xea\x4b\xbd\x9c\xa3\xa6\xec\x5e\xa6\x71\xc7\xc8\xef\xbc\xd4\x6b\x48\x77\x73\x32\xb0\x51\x8d\x4a\x85\xed\xac\xa6\xe8\x57\x9e\xbd\x3b\x30\x04\x2c\x04\x2c\x1c\x05\x2c\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x04\x28\x6c\x7b\xfa\xef\x1d\x14\x12\x21\x74\x23\xb0\xc6\xd4\xd0\x86\x01\x0e\x05\xff\x81\x7b\x82\x7b\x82\x7b\x82\x7b\x0e\x7a\x46\xc1\x3d\xeb\xc3\x03\xee\x39\x5a\xee\x29\xd2\x38\x53\x32\x2d\x86\x10\xe5\x78\xe5\xdb\x72\x98\x28\xc7\xf0\x7a\x44\x39\x02\x5c\x8e\x06\x5c\xf6\x1b\xe5\x18\xf6\x04\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x65\x47\xa7\x2d\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\x25\xe0\xe5\xc9\xc1\x4b\xd0\x3e\xd0\x3e\xd0\x3e\xd0\xbe\x41\xcf\x28\x68\x5f\x7d\x78\x40\xfb\xc6\x4f\xfb\x06\x12\xe4\xd8\x2d\xf1\xdb\x73\x90\x63\x13\x1b\x01\x2b\x04\x2b\x5c\x79\xea\x80\x58\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x21\x38\x61\xdb\xd3\xff\xa0\x41\x8e\x6b\x4c\x0d\x08\x72\x6c\xee\x33\xb0\x27\xb0\x27\xb0\x27\xb0\x27\xb0\x27\xb0\xe7\xc9\x62\x4f\xe2\x00\x43\x88\x70\x34\x0d\x39\x50\x74\xa3\x79\x35\x22\x1b\x41\x2b\x47\x43\x2b\x7b\x8e\x6c\xa4\xb1\x05\xad\x04\xad\x04\xad\x04\xad\x04\xad\x04\xad\x04\xad\x04\xad\x1c\x00\xa9\x03\xad\x04\xad\x04\xad\x04\xad\x04\xad\x04\xad\x04\xad\x1c\x23\xad\x04\xde\x03\xde\x03\xde\x03\xde\x1b\xf4\x8c\x02\xef\xd5\x87\x07\x78\x6f\xe4\x78\x6f\x28\x21\x8d\x9d\x21\xbe\x7d\x87\x33\xae\x00\x11\xc0\x41\xc0\xc1\x95\xa7\x0e\x08\x0e\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x02\x0c\x0e\x12\x0c\xd6\xc2\x18\x9f\x9a\x19\x10\xc2\xd8\xdc\x67\x30\x4e\x30\x4e\x30\x4e\x30\x4e\x30\x4e\x30\xce\x53\x65\x9c\xb4\x66\x72\x1a\xb9\x01\xc4\x31\x7e\x30\xad\xf9\x6c\x3e\x38\x4c\x30\x63\xf9\x7e\x44\x34\x02\x5a\x8e\x06\x5a\xf6\x1b\xd1\x58\x6e\x0a\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\xcb\x8e\x4e\x5b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\x4b\xd0\xcb\x93\xa3\x97\x40\x7e\x40\x7e\x40\x7e\x40\x7e\x83\x9e\x51\x20\xbf\xfa\xf0\x00\xf9\x1d\x03\xf2\x1b\x48\x6c\x63\xc7\xd8\x6f\xcf\x01\x8e\x8d\x7c\x04\xc0\x10\xc0\x70\xe5\xa9\x03\x02\x86\x80\x85\x80\x85\x80\x85\x0c\xb0\x10\xb0\x10\xb0\x10\xb0\x10\xb0\x10\xb0\x10\xb0\x10\xb0\x10\xb0\x10\xb0\x10\xb0\x10\xb0\x10\xb0\xb0\xed\xe9\x7f\xd0\x50\xc7\x75\xb6\x06\xc4\x3b\x36\xf7\x19\xf0\x13\xf0\x13\xf0\x13\xf0\x13\xf0\x13\xf0\xf3\x54\xe1\x67\x66\x1a\x4f\x32\xe1\x83\x4a\x16\x73\x11\x25\x5c\xce\x87\x10\xfa\x78\x1d\x1a\xf6\x2b\x35\xec\xbd\x69\xd8\x61\xa2\x20\x1b\x9b\x82\x80\x48\xf0\xcd\xd1\xf0\xcd\x7e\x03\x22\x1b\xf7\x07\x70\x27\x70\x27\x70\x27\x70\x27\x70\x27\x70\x27\x70\x27\x70\x67\x47\xa7\x2d\x70\x27\x70\x27\x70\x27\x70\x27\x70\x27\x70\x27\x70\xe7\xc9\xe1\x4e\xe0\x41\xe0\x41\xe0\x41\xe0\xc1\x41\xcf\x28\xf0\x60\x7d\x78\x80\x07\x8f\x0c\x0f\x0e\x24\x4c\xb2\x3f\x44\xb8\xe7\x88\xc9\xe7\x00\x0a\xe0\x22\xe0\xe2\xca\x53\x07\x04\x17\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x01\x16\x47\x01\x16\xab\x71\x94\x2d\xcc\x0e\x08\xa9\x6c\xee\x33\x98\x29\x98\x29\x98\x29\x98\x29\x98\x29\x98\xe9\xc9\x32\x53\x15\x0f\x22\x80\x52\xc5\x07\x0a\x97\x54\x31\x82\x23\xc1\x2f\x47\xc3\x2f\x7b\x0e\x8e\x54\x31\x88\x25\x88\x25\x88\x25\x88\x25\x88\x25\x88\x25\x88\x25\x88\x65\x47\xa7\x2d\x88\x25\x88\x25\x88\x25\x88\x25\x88\x25\x88\x25\x88\xe5\xc9\x11\x4b\x60\x3d\x60\x3d\x60\x3d\x60\xbd\x41\xcf\x28\xb0\x5e\x7d\x78\x80\xf5\x46\x8d\xf5\x86\x12\xf8\xd8\x11\xda\xdb\x77\x98\x63\x0d\x85\x00\x0a\x02\x0a\xae\x3c\x75\x40\x50\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x10\x40\x70\x80\x40\xb0\x16\xc2\xb8\x6a\x64\x40\xc0\x62\x73\x9f\x41\x36\x41\x36\x41\x36\x41\x36\x41\x36\x41\x36\x4f\x98\x6c\x16\x62\x9e\x91\xc1\x69\x18\x81\x8b\x5f\x5c\x73\x0e\x16\xc0\xe8\x1b\x80\x40\x46\x30\xcb\xd1\x30\xcb\xde\x03\x19\xfd\xae\x00\xbf\x04\xbf\x04\xbf\x04\xbf\x04\xbf\x04\xbf\x04\xbf\x04\xbf\xec\xe8\xb4\x05\xbf\x04\xbf\x04\xbf\x04\xbf\x04\xbf\x04\xbf\x04\xbf\x3c\x39\x7e\x09\xec\x07\xec\x07\xec\x07\xec\x37\xe8\x19\x05\xf6\xab\x0f\x0f\xb0\xdf\x51\x60\xbf\xe1\x04\x36\x76\x8a\xfe\xf6\x1f\xe0\xd8\x80\x48\x00\x0d\x01\x0d\x57\x9e\x3a\x20\x68\x08\x60\x08\x60\x08\x60\x68\x3f\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x04\x30\x1c\x24\x30\x5c\x09\x78\x6c\x36\x36\x20\xf0\xb1\xb9\xcf\x20\xa0\x20\xa0\x20\xa0\x20\xa0\x20\xa0\x20\xa0\xa7\x4a\x40\x73\x11\x40\x97\x11\x2b\x73\x65\x84\xba\x21\x84\x40\x7e\x2e\x1b\xf6\x3e\x34\xec\x30\xc1\x90\x8d\x4d\x41\x58\x24\x08\xe7\x68\x08\x67\xbf\x61\x91\x8d\xfb\x03\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\xb3\xa3\xd3\x16\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\x13\xbc\xf3\xe4\x78\x27\xf0\x20\xf0\x20\xf0\x20\xf0\xe0\xa0\x67\x14\x78\xb0\x3e\x3c\xc0\x83\x47\x86\x07\x07\x12\x2a\xd9\x1f\x22\xdc\x73\xd0\xe4\x73\x00\x05\x70\x11\x70\x71\xe5\xa9\x03\x82\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\xa3\x00\x8b\xd5\x40\xca\x16\x66\x07\x84\x54\x36\xf7\x19\xcc\x14\xcc\x14\xcc\x14\xcc\x14\xcc\x14\xcc\xf4\x74\x99\xa9\xed\xc4\xff\x2d\x54\xc1\x87\x11\x4a\x69\x1b\xf4\x3f\xa6\x41\x87\x0a\xa1\xac\x34\x01\xa1\x93\xa0\x9b\xa3\xa1\x9b\x7d\x87\x4e\x56\xf6\x05\xc8\x26\xc8\x26\xc8\x26\xc8\x26\xc8\x26\xc8\x26\xc8\x26\xc8\x66\x47\xa7\x2d\xc8\x26\xc8\x26\xc8\x26\xc8\x26\xc8\x26\xc8\x26\xc8\xe6\xc9\x91\x4d\xe0\x3f\xe0\x3f\xe0\x3f\xe0\xbf\x41\xcf\x28\xf0\x5f\x7d\x78\x80\xff\x8e\x04\xff\x0d\x26\x54\xb2\x6b\x04\xb8\xf7\x10\xc9\x66\x50\x02\x78\x08\x78\xb8\xf2\xd4\x01\xc1\x43\x80\x43\x80\x43\x80\x43\xff\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\x21\xc0\xe1\x20\xc1\x61\x3d\x24\x72\xad\xb9\x01\xa1\x90\xcd\x7d\x06\x0b\x05\x0b\x05\x0b\x05\x0b\x05\x0b\x05\x0b\x3d\x55\x16\xaa\x45\x94\x8b\x62\x08\x31\x90\x37\xd4\x92\xc3\x04\x3f\xda\x77\x23\xea\x11\xe0\x72\x34\xe0\xb2\xdf\xa8\x47\xbb\x21\x40\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x3b\x3a\x6d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x4f\x8e\x5a\x02\xf1\x01\xf1\x01\xf1\x01\xf1\x0d\x7a\x46\x81\xf8\xea\xc3\x03\xc4\x37\x76\xc4\x37\x90\x38\xc7\x0e\x31\xdf\x9e\x03\x1c\x9f\x30\x11\x00\x42\x00\xc2\x95\xa7\x0e\x08\x10\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x02\x0e\x0e\x13\x0e\x56\x43\x1a\x9b\xec\x0c\x88\x65\x6c\xee\x33\x40\x27\x40\x27\x40\x27\x40\x27\x40\x27\x40\xe7\xe9\x82\xce\xfc\x41\x46\x82\x47\x91\x51\x8a\x86\x11\xd3\x48\x2d\x7a\x67\x5b\x74\xa8\xd8\xc6\x6a\x1b\x10\xe3\x08\x84\x39\x1a\x84\xd9\x77\x8c\x63\x75\x63\x00\x67\x02\x67\x02\x67\x02\x67\x02\x67\x02\x67\x02\x67\x02\x67\x76\x74\xda\x02\x67\x02\x67\x02\x67\x02\x67\x02\x67\x02\x67\x02\x67\x9e\x1c\xce\x04\x02\x04\x02\x04\x02\x04\x02\x1c\xf4\x8c\x02\x01\xd6\x87\x07\x08\xf0\x58\x10\xe0\x60\x62\x1e\x3b\xc7\x80\x7b\x8f\x7d\x5c\xc3\x4a\x00\x10\x01\x10\x57\x9e\x3a\x20\x80\x08\x78\x08\x78\x08\x78\x18\x3e\x04\x3c\x04\x3c\x04\x3c\x04\x3c\x04\x3c\x04\x3c\x04\x3c\x04\x3c\x04\x3c\x04\x3c\x04\x3c\x04\x3c\x04\x3c\x1c\x24\x3c\xac\xc7\x42\xae\xb7\x37\x20\x26\xb2\xb9\xcf\x00\xa2\x00\xa2\x00\xa2\x00\xa2\x00\xa2\x00\xa2\x27\x0e\x44\x07\x14\x0c\x79\xd0\x28\x48\x84\x3f\x82\x5e\x8e\x86\x5e\xee\x25\xfc\x11\xe8\x12\xe8\x12\xe8\x12\xe8\x12\xe8\x12\xe8\x12\xe8\x12\xe8\xb2\xa3\xd3\x16\xe8\x12\xe8\x12\xe8\x12\xe8\x12\xe8\x12\xe8\x12\xe8\xf2\xe4\xd0\x25\x30\x1f\x30\x1f\x30\x1f\x30\xdf\xa0\x67\x14\x98\xaf\x3e\x3c\xc0\x7c\xa3\xc7\x7c\xc3\x0a\x78\x1c\x71\xa4\x23\x20\x21\x20\xe1\x28\x20\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\x21\x00\xe1\x40\x01\x61\x43\x6c\x23\x82\x1a\x41\x3b\x41\x3b\x07\xc2\xc6\x40\x3b\x41\x3b\x41\x3b\x41\x3b\x57\x06\xed\xc0\xb4\xf3\xe0\x60\x33\x70\xc2\x11\xa2\x4d\x20\x4d\x20\xcd\x13\x47\x9a\x4d\x7b\x01\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x13\x50\x73\x8b\x63\xbf\x0a\x35\xd7\x98\x1a\xc6\x84\x35\x41\xf7\x40\xf7\x40\xf7\xc6\x31\xa3\xa0\x7b\xf5\xe1\x01\xdd\x1b\x01\xdd\x53\xf1\x20\x12\x93\xfe\x55\xc5\xfb\xcd\x4a\xaa\x62\x24\x22\x65\x00\x72\xa3\x01\x72\xfd\x26\x22\x35\xdb\x01\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\xae\xa3\xd3\x16\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\x0e\x3c\xee\xe4\x78\x1c\x00\x16\x00\x16\x00\xd6\x38\x66\x14\x00\xab\x3e\x3c\x00\x58\x23\x01\x58\x43\x89\x4c\xeb\x0a\x62\xed\x27\x28\xad\x6e\xf3\x07\xfe\x02\xfe\x5a\x79\xea\x80\xf0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\x17\xd0\xd7\x10\xd1\x57\x2d\x14\xed\x89\x95\x01\x51\x68\x80\x78\x87\x47\x3e\x80\x78\x80\x78\x80\x78\x80\x78\x2b\x83\xb6\x67\x88\x97\x99\x56\x92\xf4\xf3\xa0\x92\xc5\x5c\x44\x09\x97\xf3\x21\x84\xa5\x5d\x87\x86\xfd\x4a\x0d\x7b\x6f\x1a\xb6\xcf\x38\xb5\xc6\x06\x7c\x90\xba\xf8\x49\xe5\xef\x92\x24\x44\xb8\x6b\x90\x3c\x90\xbc\x51\x90\xbc\x7e\x03\xd9\x1a\xf7\x0b\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x5e\x47\xa7\x2d\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\x1e\xf0\xde\xc9\xe1\x3d\x40\x31\x40\x31\x40\xb1\x71\xcc\x28\xa0\x58\x7d\x78\x00\xc5\xc6\x07\xc5\x86\xc8\xc3\x0e\x89\xc2\x90\xbe\x11\xd4\x0b\xd4\xab\x91\x7a\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x75\x74\xda\x02\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x01\x78\x0d\x72\x46\x01\xbc\xea\xc3\x03\xe0\x35\x42\xe0\x35\x90\xb4\x8e\xbd\x40\xaf\xbd\xa4\x78\xdc\xc0\x05\x80\xcb\x80\xcb\x56\x9e\x3a\x20\x5c\x06\x54\x06\x54\x06\x54\x56\xf9\x10\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x0c\xa8\x6c\x90\xa8\xac\x9a\xfa\x71\xb3\xc5\x01\x69\x20\x01\x00\x0f\x8f\x8b\x00\x00\x01\x00\x01\x00\x01\x00\x57\x06\x6d\xdf\x00\x50\xc5\x83\x08\x72\x53\xf1\x5e\xe3\xda\x54\x8c\x84\x8e\x4d\x93\x07\x56\x37\x0a\x56\xd7\x73\x68\x9b\x8a\x81\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x3a\x3a\x6d\x81\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x80\xe8\x4e\x0e\xd1\x01\x66\x01\x66\x01\x66\x8d\x63\x46\x01\xb3\xea\xc3\x03\x98\x35\x0a\x98\x55\x88\x79\x46\x76\x89\x61\x40\xad\x2f\xae\x39\x7b\x86\x5b\xfe\xb5\x80\x5c\x4d\x93\x09\xc8\x05\xc8\xf5\xba\xb2\x4b\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x3a\x3a\x6d\x01\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x06\x39\xa3\x80\x5d\xf5\xe1\x01\xec\x1a\x3e\xec\xca\x45\x60\x21\x46\xea\xc8\x95\xb9\xf3\x87\x80\xbd\x3e\x97\x0d\x7b\x1f\x1a\xb6\x4f\x00\xd6\xd8\x00\xa0\xb0\xa6\x09\x06\x0a\x03\x0a\x7b\xdd\xb8\x5f\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x3a\x3a\x6d\x01\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x00\xc5\x06\x39\xa3\x80\x62\xf5\xe1\x01\x14\x1b\x03\x14\xb3\xad\xfd\xbf\x85\x2a\xf8\x30\x60\x98\x6d\xd0\xff\x98\x06\xed\x17\x82\x55\x5e\x0c\xf8\xd5\x34\xa1\x80\x5f\x80\x5f\xaf\x6b\xfb\x04\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x0b\xd0\xab\xa3\xd3\x16\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x0b\xd0\x6b\x90\x33\x0a\xe8\x55\x1f\x1e\x40\xaf\xe1\x43\x2f\x2d\xa2\x5c\x14\x43\xa0\x5d\x37\xd4\x92\x7d\x62\x2e\xfb\x46\xf0\xad\xa6\x29\x04\xdf\x02\xdf\x7a\x6d\x37\x08\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x56\x47\xa7\x2d\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\x16\xc0\xd6\x20\x67\x14\x60\xab\x3e\x3c\x00\x5b\x63\x00\x5b\xf9\x83\x8c\x04\x8f\x22\x23\x38\x0f\x03\x70\x51\x8b\xde\xd9\x16\xed\x17\x74\x55\xdf\x0c\xe0\xd5\x34\xa5\x00\x5e\x00\x5e\xaf\xeb\x1b\x05\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\xab\xa3\xd3\x16\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x0b\xe0\x6b\x90\x33\x0a\xf0\x55\x1f\x1e\x80\xaf\xd1\x80\xaf\x01\x11\xaf\x03\xa0\x2e\x30\xae\xa6\x49\x04\xe3\x02\xe3\xf2\x8c\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\xab\xa3\xd3\x16\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x0b\x70\x6b\x90\x33\x0a\xb8\x55\x1f\x1e\xc0\xad\xa1\xc2\x2d\x7d\xb9\x13\xcc\xea\x1b\xe6\xb4\x01\x65\x33\x51\x54\xc4\xd9\x77\xd7\x3f\x87\x1b\x62\x03\xcf\x9a\x89\xe2\xdd\xf5\xcf\xbf\x36\x7c\xf1\x50\xdc\x6a\xb4\x38\xe9\xdd\xf5\xcf\x7f\xce\xd5\x22\xfb\x20\xf5\xe8\x81\x92\xe9\x58\xe5\xdb\xaf\xaa\x6f\xac\x6f\x17\x1e\xcf\x25\x21\x83\x5c\xcc\xa4\x91\x55\x88\x6b\x98\xd1\x92\x6a\xdc\x7b\x49\xa6\x53\x95\xcf\xc3\xad\xc0\x99\xa5\x5d\x9b\xf7\x52\xd3\x68\xf8\x85\x81\xdd\xd5\xc1\xee\x1a\xfd\xce\x6a\x5a\x21\x1d\x6c\xb5\x87\xb7\xe3\xde\x6d\x35\x43\x8c\x15\x3f\x76\xd8\x6a\xbf\xbe\x7d\x77\xfd\xf3\xe7\xa6\x07\x60\xc3\x6d\xbf\xe1\xfc\x40\x1e\xc5\x8d\xd6\xb4\x5c\xea\x3e\x13\x2f\xd8\x7a\xf3\x45\xc1\x0b\x99\xce\x1e\xc5\xed\x9d\x52\xf7\x35\xa8\x58\x73\x8f\xb2\xd6\xb0\x6e\x3d\xa4\xec\x33\x59\xa4\x92\x44\x44\xfe\xba\xfa\xe8\x5a\xf4\x9b\x6d\xd1\xfb\x6a\x8b\x36\x6c\x2c\xfb\xac\x35\x7b\xeb\x7d\x78\x43\xdb\xa7\xaf\xf1\xe1\x60\xab\x0b\xc4\x0a\xff\xb7\x2a\x5e\xae\xae\x6d\x2f\xfd\x37\x7d\xd6\xcb\xba\xff\x91\x46\xe0\x53\x66\xa7\xae\xdd\xaa\xdf\xbc\xdc\xe1\x16\x00\xb7\x00\xb8\x05\xc0\x2d\xe0\xd8\xdc\x02\x36\x18\x6d\x9e\x73\x0d\xd8\x6c\x00\xdc\x6c\xbc\xd9\xea\xec\xfd\xcd\x0c\x9c\x03\x22\xe7\xe4\x45\x1c\x99\x15\x65\xd7\x41\xad\x6f\x55\x17\xbc\x5b\xc1\x32\x33\x5a\xba\x10\xf1\x84\xbd\x4b\x99\x4c\xed\xc9\xa2\x72\xb6\x48\xc3\xe1\x14\xb3\x38\x5f\x7e\x5e\xa4\x2c\x96\xb9\xb9\x17\x1f\x44\x58\xf1\xe6\xf8\x24\x7c\xe5\xb6\xbc\x5f\x1b\x6e\x80\xd9\x74\x91\xd3\x2e\xcb\x72\x15\x09\x4d\x9c\xc9\x59\x1e\xdd\x2a\x9b\xb0\x5f\xe9\x8d\x34\x5b\xb4\x76\xfe\xc8\x2e\xd8\xbb\x24\xf9\x23\x51\xa4\xd8\x9c\xd2\x8b\xd4\x4c\xfc\x4c\xe8\xb0\x24\xdd\xe3\x44\xbc\xc3\x44\xd9\xbe\x1c\x66\x9a\xf6\xe6\xcb\xd1\x6e\x28\xd6\xfb\x73\xec\x6d\x44\xbe\x54\x8d\xd2\x32\x65\xda\xda\x8a\xd9\xad\x98\x5a\xa7\xd3\xc0\xfd\x4a\x51\xc2\x9d\x5e\xb4\x74\x16\xc2\x5e\x0e\xb7\x82\xa5\x2a\xbd\x48\xc5\x8c\xd3\x02\x75\x66\xe5\x09\xfb\x12\x2e\x6c\xeb\x03\x10\xb6\x86\x13\x27\xe5\x7c\x2e\x62\xc9\x0b\x91\x2c\x4b\x6f\xd0\xf2\xca\x95\xc9\xb9\x33\x1b\xd3\xa0\xb3\x59\xce\x23\xda\x35\x52\xc5\x41\x20\x28\x2f\x6d\x72\xb5\xf5\xab\x74\xa1\x4d\x23\xab\xd3\xc5\xcd\x2f\x7d\x87\xdc\x4b\xa6\xf6\x0c\xf4\x8f\x98\xd8\x76\xce\x05\x4f\x1b\xdb\xb8\xc3\x34\x53\x9b\xaf\xa9\xc9\x4d\xa6\xf8\x67\x8c\xf1\x43\x59\xfe\xdb\xb8\xf1\xb4\x1b\x97\xf5\xae\x3c\x7b\x5b\xfe\x70\xea\x81\x53\x0f\x9c\x7a\xe0\xd4\x03\xa7\x9e\xde\x9c\x7a\x5a\xde\x05\x4f\x1c\x7b\xf6\x77\x2d\xfe\x58\x89\xe5\xcb\x12\xc1\xb5\x08\x47\xd0\x75\xae\x32\x3e\x23\xe9\xe8\x5a\x25\x32\x5a\xd6\x42\x48\xfc\xa2\x2b\x83\x01\xcd\xb2\x7b\x3b\xf9\xaf\x09\xbb\xb1\xe7\x99\x15\x5d\x32\x91\x9a\xcd\x52\xde\xa9\x82\xa9\x3c\xbb\xe3\xa9\x0f\x69\xc9\x17\xe2\x72\xca\x13\xaf\x2b\x7f\x7d\x6d\x3f\xfe\xfa\x9a\x4d\x65\xca\x13\xf9\x0f\x7f\x91\xdc\x0a\xc6\x63\xf2\xf4\x50\x97\x96\x82\xc7\xa5\x1a\x66\x1f\x7f\xa6\xcb\x1f\x59\xfd\x74\xc2\xae\x24\x1d\x8e\x95\xa6\xab\xfc\x69\xdf\x4a\xbf\x9e\xc2\xaa\xc7\xa4\xa3\xa8\xe2\x6e\x97\x09\xb5\x3d\xf8\xd1\xf7\x7d\xad\xc8\xd3\xc4\xd4\xbb\x55\xcc\xa8\xeb\x66\xc3\xde\xa9\x47\x36\xe3\xf9\x2d\x9f\xd5\xac\x98\x41\xa9\x11\xf9\x54\xe5\x73\x33\x27\x8d\xe3\xf5\x69\xa5\x47\xeb\x87\x8b\x84\x5e\x2f\xb1\x66\x76\x6c\xa5\x91\x26\x23\x19\x97\xaa\x30\xc9\x0a\x64\x9c\x08\x73\xac\x89\x07\xd2\xa7\x5e\x1a\x98\x54\x26\xd3\xdf\x23\xc1\xb1\x26\x84\x67\xd5\x5f\x36\x61\xef\xa2\x48\x64\x05\xdd\x4d\x55\xcd\xee\xcc\xf6\xe1\x8c\x5d\xb8\x05\x58\x5f\xa0\xfa\x7b\x76\xf6\x03\x8f\xee\x67\xb9\x5a\xa4\xb1\xf9\x16\x85\x3a\xd1\x97\x56\x06\xce\x8a\x90\x4e\x3e\xae\x3f\xc4\xf7\xe0\x36\x3c\xe9\x7b\x76\xf6\x93\xca\x45\xe5\xb1\x2c\xe2\x3a\xe2\xb1\xe9\xbd\x1b\x1f\x1b\x09\x47\xcf\xd3\x56\xf5\x7c\xf2\xc0\x69\x78\xc6\x2e\x0b\x32\x5b\x5d\xee\x87\x91\x38\x8f\xd8\x03\xaf\xdd\x3c\x6c\xf2\xc2\x3b\xd4\x2c\xc0\x1f\xaf\xb7\xf9\x7d\xea\x93\xb7\x3f\xdb\xc6\x21\xbd\xf3\xda\x0d\xd6\x06\x0f\xbd\x97\xca\x3f\x8d\x48\x0f\x78\x7a\x4b\x4c\x77\x53\xf0\x62\xd1\x96\xcf\x8d\x99\x4a\x57\x9e\xb0\x26\x92\xdf\x5e\xce\xa5\xe0\xd4\x45\x40\xff\x26\xe0\xdd\x1c\xec\xdf\x12\x09\x6f\x93\x01\xa0\xf3\x5c\x22\xd6\x98\x96\x3b\x05\xdc\x4b\xfd\x6a\xca\x4c\x27\x76\x45\xe6\xe6\xa1\x6b\x80\x79\xd7\x98\x1c\xe9\x0e\x4e\x27\xdd\x41\xbb\x7b\xea\xb9\x94\x07\xfb\x53\xe8\xe0\xe5\x00\x2f\x07\x78\x39\xc0\xcb\x01\x5e\x0e\x4d\x87\x2f\xf0\xf9\x88\x46\x04\x44\x15\x44\x15\x44\x15\x44\x15\x44\x15\x44\xf5\xb8\x88\x2a\x20\x07\x20\x07\x20\x07\x20\x47\xef\x90\x63\x0b\x47\x80\x81\x26\x24\x68\x37\x84\x4f\x93\x12\xbc\xd4\xe2\x36\x28\x3c\xb4\xf6\x07\xa7\x95\x44\x7a\xd2\x8c\x43\x1e\xde\x4e\x36\x59\xf8\x4f\x24\x6c\xf2\x79\x40\xd5\x55\x96\xe9\x41\x40\xa9\x1d\xd2\x52\x8f\x25\x55\xd5\xab\x95\x19\x7d\x9d\x29\xdd\x31\x81\xb3\xca\x0f\xe3\xbb\xc2\x36\xfb\xfb\x3d\xe1\xb6\xdd\xa2\x52\x8d\x94\x2c\x73\x11\xbb\xe1\x3d\xf0\x21\xd4\x49\x04\x2b\xa2\xa8\xaa\x0b\x62\xb0\x51\x54\x64\x1f\xf9\xc8\x53\x3e\x13\xb9\xb5\xf4\x99\x56\x31\xae\xb5\x8a\x24\xa9\xae\xc1\xa6\xc6\xc9\x34\xaa\x72\x26\xd2\xc2\xc8\x92\x5e\x97\x9f\xf3\x7b\x33\x8a\xc5\x9d\xd0\xc2\x0b\x64\xd5\x58\x21\x1f\x53\x44\x02\x29\xd9\xcf\x54\xce\xde\xfe\xfe\x0f\xe6\xbb\x39\x8f\x08\x98\x25\x2a\x9d\x59\xf1\x8b\x6c\x5c\x91\x4a\x0b\x2e\x53\x7b\xc0\x91\x0d\xa9\xfc\x2e\x41\x04\x87\xf3\xd8\xed\x32\x68\x18\x33\x95\xf0\x74\x36\x51\xf9\xec\x32\xbb\x9f\x5d\x2e\x52\x19\xa9\x58\x5c\xfe\xee\x67\x7d\x6d\x9e\xb2\xb3\x51\xda\x0d\x4e\x97\xd3\x33\x28\x79\xed\x18\xc5\xa8\xb6\x22\xd4\xef\x5b\x88\x50\xef\xad\xed\x6d\x3c\x5d\xfa\xfd\xb3\x5d\xb2\x1e\xc5\xe3\xe9\xd3\x51\x4b\xba\x24\x30\x8d\x5c\xd2\x7d\xc5\xba\x4d\x7f\x72\xf9\x4f\x73\x04\xff\x6b\x4f\x59\x50\x76\x96\x2c\x37\x66\x3e\x19\x86\x64\x39\x92\x7c\x27\x90\x16\xab\x93\x3c\x58\x69\x11\x11\xe6\x27\x14\x61\x8e\x50\x3a\x84\xd2\x21\x94\x0e\xa1\x74\x50\x74\xd7\xed\xa2\x41\xc6\xad\x1c\x46\x01\x44\xd8\x4d\xfb\xb0\x9b\xb1\x6b\x7b\xc1\xd6\xdf\x79\xb0\x4d\x2e\x78\xbc\x22\xa3\xed\xa8\x9a\x99\x27\x1d\x26\xc2\xa6\x22\xe2\x88\x6f\xe4\x37\x77\x6b\xfe\xc5\xa3\x62\xc2\xd8\x95\xf9\xaf\xff\xfb\x9c\x4b\x32\x73\x6a\x16\x25\x0b\x5d\x88\xbc\xbc\xb8\xac\x83\x2d\x4b\xe4\xbd\x60\x67\xa1\x48\xf0\x99\x91\x4f\xbd\x4c\x35\x61\xd7\x09\x4f\x53\x61\x05\x5b\x92\x7a\x78\x62\x05\xad\xb7\x7f\xd8\xe5\x26\xa0\x36\x1e\x48\x1e\x09\x83\x16\xc4\xf9\x5b\x3f\x7c\xa6\xa7\xec\xca\x8e\x98\xb9\x83\x32\xed\x47\xc7\xb9\x96\x2d\xb4\xc8\xc9\x27\xac\x94\xcc\x97\x3d\x0f\x94\x69\xcc\xf1\x12\xfc\x61\x5f\x94\x30\x35\xee\x7c\xfd\xcc\xc4\xe8\x2d\x8d\x2f\x61\xea\x44\xb6\x9c\xf9\xa6\x7d\x8b\xec\x81\x90\xf1\xe2\xae\x99\xa6\xd3\x7f\x6b\x9f\x6c\xa0\xb9\x3d\xd7\xb0\x19\xaf\xd7\x00\x79\xf4\xec\x94\x7d\xfe\x82\x7e\xfb\x6f\x9b\x0f\xc2\xb9\xc8\x67\xa2\xd5\x37\x69\x3d\x8b\x99\x8c\x2e\xda\xff\xc6\xfc\x7b\xe9\xbe\x49\x47\x6e\x1b\x59\x27\xe3\x79\x21\x29\xe0\xce\x7a\x9f\x75\x23\xf7\x50\x23\x06\x6d\x91\xee\xcb\xd7\x61\x83\x06\x72\x5d\xf7\x17\x63\xb0\x53\x1f\xb9\x9d\xfa\x74\xbc\x1a\x56\xa2\x5c\xfc\xe6\xb2\x91\x58\xe6\x58\x2a\xa3\xfb\xbf\x5b\x73\x64\xbd\x21\x2b\x9d\x0d\xbf\xe6\x09\xfd\x32\x55\xe9\x85\xfd\x35\x7d\x83\x0c\xe5\x9a\x7d\xf7\xdf\x5a\xa5\xd7\x36\xc8\xfd\xa3\x39\x1c\xdd\xbf\x6f\xfc\x91\x59\xfe\xf1\xcd\x90\xdc\x2d\xda\xaf\x9b\x9f\x54\x1e\x11\x49\x98\x29\x9a\x7c\xc5\xbe\xbe\x9e\x9a\xbf\x7d\x7d\xcd\xde\xd5\x46\x93\x7c\xe8\xad\xd9\x9f\xf4\x0f\xb7\x51\x2f\x78\x44\x13\x40\x61\xd2\x89\x8c\x9c\x21\x93\xd4\x15\xf5\xe8\xe6\xd6\x86\x11\x67\x42\x65\x89\x98\x30\xfb\x4e\xca\x8e\xe0\xd7\x14\x79\xb2\x37\x4e\x44\x78\xfd\x2e\xc3\x6b\x5e\x04\xad\xc5\x7e\x00\xad\xe5\xe9\x53\x07\xaa\xb5\x64\x2b\xbe\xe2\x23\xd7\x5b\x16\x9d\xdb\xcc\xb2\x84\x47\x1d\x89\x8f\xee\x61\x27\x29\x40\xc2\x59\x16\x62\x25\xc4\x4a\x38\xcb\x42\xc8\x08\xff\x5e\x01\x8b\x47\xe7\x2c\x7b\xdc\x72\xd3\x62\xf4\xd6\xde\x57\x6c\x6b\xbf\x52\xba\x01\x07\x56\x58\xef\xd7\xd0\xa6\x7e\x4a\xeb\xb5\x7f\x3e\x9c\x4d\x91\x76\x0e\x69\xe7\x90\x76\x0e\x69\xe7\x90\x76\xee\x20\x2a\x14\x34\xdd\xd6\x13\x85\xe2\x7a\x43\xca\x0e\x88\xd0\x87\x13\x0a\x7d\x40\x2a\x48\xa4\x82\x44\x2a\x48\xa4\x82\x44\x2a\x48\xa4\x82\x44\x2a\x48\x44\x04\x22\x22\x10\x11\x81\x88\x08\x5c\x5d\x91\x28\xae\x87\xbc\xb3\xc8\x3b\x8b\xbc\xb3\x23\xcf\x3b\xdb\x88\xf5\xe0\x60\x80\x28\xdf\x71\x17\xd7\x6b\x0d\x85\x07\x5c\x5e\x6f\x67\x70\xbe\xa1\xc0\x5e\xf7\xb0\x1c\x25\xf6\x50\x62\xcf\x7e\x84\x12\x7b\xf0\x75\x80\xaf\x03\x7c\x1d\xe0\xeb\x00\x5f\x07\x40\x74\x70\xd5\xe7\x47\x04\x5c\x15\x5c\x15\x5c\x15\x5c\x15\x5c\xf5\x84\xb9\x2a\x50\x07\x50\x07\x50\x07\x50\x07\x4a\xec\xa1\xc4\x1e\x4a\xec\x85\x4f\x76\x8f\x0d\xdd\x6c\xe3\x47\x91\xbd\x83\x17\xd9\xeb\x05\x4e\xa1\xcc\x5e\x27\x65\xf6\x76\x86\x6e\x1b\x0b\xed\x0d\x25\x46\x75\xff\xd9\x43\x9e\xe9\x79\xbb\x83\x08\x51\x55\x47\x10\x55\x85\xfc\x21\xc8\x1f\xd2\xd0\x98\xd1\x0b\x54\x23\xcd\x20\xd2\x55\xa7\x86\x55\x70\xaf\x9b\x5e\x1d\xb5\xdc\x7b\xb8\x92\x7b\x5d\xca\xbd\xaf\x58\xd7\xc9\x51\xf6\x5d\x76\xaf\x9f\xbc\x28\x43\x91\x34\x47\x92\x0d\x05\xb2\x63\x75\x92\x07\x2b\x3b\x22\xfe\xfc\x84\xe2\xcf\x11\x68\x87\x40\x3b\x04\xda\x21\xd0\x0e\x6a\xef\xba\x5d\x34\xc8\xa8\x16\x94\xde\x1b\xae\xce\x77\xc8\xd2\x7b\xe3\x08\xc5\x69\x28\xbe\xb7\xb3\x82\xb6\xa1\xfc\x5e\xef\xf1\x37\x28\xc0\x17\x16\x4d\x7b\xa9\x04\x05\xf8\xdc\xff\x70\x5d\xc2\xf4\x78\x8c\x25\xf8\x86\x42\xdc\xab\x45\xf8\xb6\x69\x13\xca\xf0\xa1\x0c\xdf\x01\xca\xf0\xed\x2c\x01\x6d\x2a\xc4\x37\x14\x0b\x35\x4a\xf1\xc1\x6e\x0d\x9f\x07\x94\xe2\x7b\xba\x62\x50\x8a\x0f\xa5\xf8\xa0\xbf\x40\x7f\x19\x52\x31\xbe\x7e\x34\x98\xfd\x94\xe3\x7b\x81\x21\xed\xff\x63\xef\xef\x7a\x1b\x37\xb2\xb5\x7f\xf8\xbc\x3f\x45\xc1\x73\xe0\x04\x63\xcb\x77\x37\x6e\x60\x82\x04\xfb\xc0\x49\x77\xf6\xd3\x33\xe9\xdd\x46\x77\x30\x73\xd2\xc1\x3d\x25\xb2\x24\x17\x4c\x91\x04\x8b\xb2\xe3\x79\xb0\xbf\xfb\x1f\xb5\xea\x85\xa4\x44\x49\x94\x44\x4a\x24\x75\xcd\x49\x3c\x2d\x89\x64\xbd\xb0\xea\x5a\xeb\xb7\x56\xad\x6d\x05\xf9\xc6\x2e\x24\x11\x54\x0b\x81\x09\x81\x89\xa0\x5a\xc8\x8d\x0b\x0b\xaa\x1d\xb7\x86\x3a\x57\x61\xbe\x33\x47\x9f\x52\x4e\xe1\xdd\xc2\x56\x07\xdc\x59\x9e\xaf\x75\xc0\x69\x8f\xa3\x88\x43\xf9\x2c\xc3\x25\x8f\xca\xa9\xad\xdc\x1f\x40\xb3\xad\x7a\xe1\xa4\x14\x58\xf5\xa3\x0f\xc9\xba\xa6\x0b\x5f\x17\xa7\x93\x55\x8e\x9b\xf2\x82\x8e\xc9\x58\xe5\x82\x57\x3c\xbe\xab\x72\xef\x65\x8b\xd7\x70\xdb\x83\xfd\xb6\x92\xc9\x87\xcc\xd4\xbe\x46\x94\x50\x62\xf5\x87\x67\x11\x23\x05\xd5\x4f\xf8\xf3\xe5\xa1\x76\x51\xe0\x7d\x7f\x26\x86\x13\x43\x47\x7c\x62\xe8\x6e\xa4\xb7\xeb\xb4\xd0\xad\x9e\xc1\x16\x70\x25\xce\x08\xc5\x19\xa1\x38\x23\x14\x67\x84\x8e\xed\x8c\xd0\xdd\x2b\x6f\xed\xf9\xa0\x1d\x07\x87\x9c\xec\x54\xd0\xdd\xcd\xdf\x7c\x22\x68\x9f\xfb\x60\x9f\x73\x40\x77\xf7\xc1\xe6\x33\x40\x3b\xee\x03\x9c\xfc\x89\x93\x3f\x71\xf2\x27\x4e\xfe\xc4\xc9\x9f\x9d\x9d\xfc\xd9\x60\xf5\x5f\x3b\xf5\x73\x6b\x8a\xe7\x05\xc5\x86\x36\x6b\xcd\x88\x4f\x2e\xdd\xdd\xdd\xdb\x4e\x2d\x3d\x6d\xbf\xe3\xac\xd2\x4e\x46\x74\xfd\x9c\xd2\x8e\x87\xf5\xac\xa7\x93\xee\xee\x9e\x2d\x27\x93\x76\xbd\x6c\xf6\xf5\x3c\xd2\xdd\x9d\x56\x43\x3b\x0e\xf6\xe7\xd9\xbf\xfe\xe8\x06\xbe\xd5\x1c\xff\xd2\x11\x83\x2b\x83\xb7\xd8\x09\x01\x57\xf4\xab\x73\x00\x77\x53\xd8\x02\x64\xef\x58\xdd\xa8\xcd\x89\xc2\xc8\xb9\xae\x18\xc7\xa5\x6b\x77\x81\xef\x80\xee\x80\xee\x86\x89\xee\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\x80\xed\xc6\x82\xed\xca\xc7\xd6\x34\xf7\x3e\xe0\xd0\x1a\x80\xc9\xf3\x63\x2c\x80\x49\x80\x49\x80\x49\x80\xc9\x95\x4e\xeb\x15\x98\xdc\x51\x99\xa2\x07\x79\x81\xdb\x93\x27\xcf\x9a\x19\xd8\xa0\xdc\x21\x00\x23\x00\xe3\x20\x01\x23\x6a\x54\x02\x33\x02\x33\x02\x33\x02\x33\x02\x33\x02\x33\x02\x33\x02\x33\x02\x33\x02\x33\x02\x33\x02\x33\x02\x33\x02\x33\x02\x33\x8e\x0b\x33\x02\xc2\x01\xc2\x01\xc2\x0d\x63\x44\x01\xe1\xaa\xdd\x03\x08\x37\x72\x08\xd7\x93\xfc\xc0\x13\x80\xb8\xf3\x64\x08\xee\x71\x9a\x3b\x10\x1e\x10\xde\x60\x10\x1e\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\x1d\xf0\xdd\x78\xf0\x1d\x8a\xdb\x03\x51\x02\x51\x1e\xd0\xef\x40\x94\x40\x94\x40\x94\x40\x94\x9b\x11\xe5\x54\xe4\xfc\xed\xdd\x41\xec\xf1\x2c\xf5\x47\x57\x86\x7f\x2e\xf2\xaa\xae\x37\x23\xbd\x85\x14\xce\x45\xbe\x81\x13\x52\x57\xdc\x3f\x7c\xfc\x52\x77\x15\x14\x61\xdd\x93\xd8\x95\x3a\x92\x32\x25\x47\x8a\xed\x68\xd2\x94\x2e\xf3\xa6\xfc\x28\x07\xbc\x89\x8d\xcb\x78\x1a\x5b\xab\xdd\x28\x01\x73\x4d\x16\x24\x51\x24\x02\xb7\x7d\x34\x3d\x60\x77\xe5\x3d\x33\xd7\xda\xf6\xaa\xfd\xe2\x6f\xd3\xf8\x0c\xdf\x4e\xab\xad\x77\xf2\x1a\xbc\xa7\x6e\xf8\x9c\x9a\xf1\x6b\xf6\x12\x6c\x9f\xfd\x20\x4f\x20\x4f\x20\x4f\x20\x4f\x63\x23\x4f\xcd\x2a\xef\xd7\xd2\xa7\x23\xab\xee\x37\x5f\x7b\xff\xa5\x3b\xce\xfa\xdc\x6e\xe8\x68\x8b\x40\xcf\x28\x33\x0f\x2a\x6d\x2b\x47\x79\x4c\x05\x4b\x75\x6f\xa9\x5c\x84\x13\x76\x1f\x33\x19\x9b\x95\x25\xc9\xd8\x32\xf6\x8b\x53\xc8\xc2\xec\xf5\xcb\x32\x66\xa1\xcc\xf4\xbe\xf8\x2c\xfc\x8c\xd7\xcb\x27\x79\x48\xed\x2b\xef\xe6\x86\xed\x60\x36\x5b\x66\xf4\x96\xa5\x59\x12\x08\x45\xae\x4c\x6b\xf8\xd9\x59\x36\x31\x7e\x33\x33\x5a\x34\x77\x7e\x64\xb7\xec\x3e\x8a\x7e\x24\x47\x65\xa8\x57\xe9\x65\xac\x07\x5e\x9b\x50\x6e\x4a\xda\xcb\xad\x57\xb8\x6f\x30\x50\xa6\x2d\xe7\x19\xa6\x93\xe1\xc2\x66\x5d\xb1\x19\x19\x9e\xac\x47\x7e\x2f\xfb\x04\x64\xcc\x94\x31\xd5\xd9\x54\xcc\x4c\x5c\x93\x77\x2d\x17\x52\xc2\xae\x5e\x34\x75\x96\xc2\x6c\x0e\x53\x6d\x0d\xc7\xb7\xb1\x98\x73\x9a\xa0\xd6\xaa\x9f\xb0\xdf\xfd\x86\x6d\x30\x93\x7f\x35\xac\xa6\x94\x8b\x85\x08\x25\xcf\x45\xf4\x5a\x04\x1c\x15\x5b\xae\x8c\x6e\xac\xd5\x4e\x9d\xce\xe6\x19\x0f\xe8\xad\x91\x49\xe8\x05\x41\xb1\x69\x53\x34\x97\x9b\xa5\x4b\xa5\x1f\xb2\x3c\x5c\x5c\xff\xd2\x35\xc8\xde\x64\x66\xd6\x40\x77\x89\x89\x79\xce\x85\xe0\x71\xed\x33\x1e\x30\xcc\xf4\xcc\x0f\xf4\xc8\x75\x9e\x90\x1d\xbe\x90\xbe\x4c\xff\x7d\x48\x71\xb3\x7e\xd9\x4c\x8b\x4f\x36\xfd\xc1\x8d\xc1\x8d\xc1\x8d\xc1\x8d\xc1\x8d\x3b\xe3\xc6\x0d\xf7\x82\x35\x76\x7c\xba\x6d\xf1\x7d\x29\x81\x25\x8d\x04\x57\xc2\x2f\x41\x0f\x59\x92\xf2\x39\xa9\xa3\x87\x24\x92\xc1\x6b\x25\x4a\xd9\x4d\xba\x22\x03\x46\x4f\xbb\xb7\x93\xbf\x4d\xd8\x57\xb3\x9e\x19\xe9\x92\x8a\x58\xbf\x2c\xc5\x9e\x2a\x58\x92\xa5\x8f\x3c\x76\x51\xd3\xd9\x52\xdc\xcd\x78\xe4\x6c\xe5\x6f\x57\xe6\xe3\x6f\x57\x6c\x26\x63\x1e\xc9\xff\xb8\x8d\x64\x2a\x18\x0f\x09\xb4\x25\x77\x06\x42\x84\x85\x19\x66\x2e\x7f\xad\x8a\x1f\x19\xfb\x74\xc2\x3e\x48\x5a\x1c\x4b\x8f\x9e\x64\xeb\x6d\x2b\xb0\x6a\x6e\xcc\x63\xb2\x51\x92\xfc\xf1\x90\x01\x35\x2d\x78\xef\xda\xbe\x51\xf2\xd4\x21\x8d\x76\x0d\x33\x6a\xba\x7e\x61\x1f\x93\x17\x36\xe7\xd9\x94\xcf\x2b\xae\x4c\x6f\xd4\x88\x6c\x96\x64\x0b\x3d\x26\xb5\xfd\xf5\x79\xa5\x45\x9b\xbb\x8b\x44\xaf\x53\xac\xa9\xe9\x5b\xa9\xd5\x64\x20\xc3\xc2\x14\x26\xad\x40\xce\x09\x3f\xc6\x7a\xb3\xb6\x3b\xa9\x53\x03\x93\xd2\x60\xba\x7d\xc4\x73\x4d\x9f\x01\x50\xbd\xd9\x84\xdd\x07\x81\x48\x73\xda\x9b\xca\x96\xdd\xb5\x69\xc3\x35\xbb\xb5\x13\xb0\x3a\x41\xd5\x4f\xec\xfa\x67\x1e\x3c\xcd\xb3\x64\x19\x87\xfa\x5b\x14\x4d\x4f\x5f\x5a\xe9\x38\x23\x21\xad\x3e\xae\x5e\xc4\xb5\x60\xea\xaf\xf4\x13\xbb\xfe\x35\xc9\x44\xe9\xb2\x2c\xe0\x2a\xe0\xa1\x6e\xbd\xed\x1f\x93\x6c\x41\xd7\x53\xc6\xf4\x5c\xbb\xe0\xcc\x5f\xe3\x90\x09\x99\xae\x4e\xf7\xf3\x28\xce\x11\x07\x40\x34\x1b\x87\x6d\x41\x10\xe7\x1a\x05\x84\x43\x74\x36\xbe\xeb\x21\x11\xa7\xf3\x6d\x9c\x33\x38\xa2\x59\x67\x6d\x09\x90\x38\x56\xff\xd4\x72\x3d\xd0\xea\x3d\x31\xdd\xd7\x9c\xe7\xcb\xa6\x7c\x6e\xf0\x90\xba\x74\x99\x0d\x09\xa6\x66\x87\x2e\xd4\xd3\x79\x72\x4d\x0f\xac\x47\xb9\xd2\xdc\xf5\x74\xd3\xd6\xd3\xeb\x8d\x5b\x2d\xb3\xa6\xb8\xd3\xff\x4d\x2a\xef\x6e\x21\xe8\xfa\xa2\xdb\xf8\x79\xdb\xd4\x1c\x09\xb6\x97\x93\x60\xdb\x6c\xdb\xda\x95\x64\x7b\x3a\xfb\x0e\x41\x0f\x08\x7a\x40\xd0\x03\x82\x1e\x10\xf4\x50\xb7\xf8\x82\xa6\x0f\xa8\x47\x00\x58\x01\x58\x01\x58\x01\x58\x01\x58\x01\x58\xc7\x05\x58\xc1\x3c\xc0\x3c\xc0\x3c\xc0\x3c\x3a\x67\x1e\x7b\xc4\x05\xf4\x34\x3d\xb4\x59\x17\xae\xa7\x88\x1e\xeb\x71\xeb\x15\x2d\xda\xf8\x83\xcb\x3a\xf6\x74\x52\x0f\x46\x2c\xc7\x98\x6c\x73\xf3\x5f\x52\x66\xe5\x6e\x68\x75\xbe\x9a\x86\x5d\x81\xaa\x03\xce\x45\x1d\xca\x39\x22\x6f\x56\x86\xf5\x2a\x4d\x54\xcb\x54\xce\xd8\x42\x8c\x1f\x0a\xe0\xcc\xef\x4f\x89\xe0\x0e\x4b\x5c\xdd\x72\x68\xcd\xb9\x16\xa6\x56\x32\x5d\x91\x6d\x55\x9e\x15\xbd\xcd\xb6\x22\xc7\xc9\x27\x1e\xf3\xb9\xc8\x8c\x0b\x90\xce\x6b\xe2\x4a\x25\x81\x24\x9b\xd6\x3b\xdb\x38\xf9\x4c\x93\x8c\x89\x38\xd7\x22\xd3\x19\xf9\x0b\xfe\xa4\x7b\x31\x7f\x14\x4a\x38\xa5\x56\xce\x29\x72\xb9\x47\xa4\x54\xc9\xb1\x96\x64\xec\xed\xbb\x1f\xf4\x77\x33\x1e\x10\x49\x8b\x92\x78\x6e\x74\x19\x39\xbf\x82\x24\xce\xb9\x8c\xcd\x52\x47\xce\xa5\xe2\xbb\x44\x17\x2c\xe7\x63\xd3\x57\x6f\x7a\xcc\x93\x88\xc7\xf3\x49\x92\xcd\xef\xd2\xa7\xf9\xdd\x32\x96\x41\x12\x8a\xbb\xbf\x7c\x54\x0f\xfa\x2a\x07\x7b\xab\x6d\xe7\xb4\x39\x3c\xbd\x12\x72\xa3\xd5\x57\x4d\xb5\xd5\xbb\x06\xda\xea\x17\xe3\x99\x1b\x58\xbb\xde\xed\x6c\x97\x89\x41\x1e\x58\xc3\xc6\x2f\x86\x49\x4e\x8d\x41\x0c\xbf\x61\x1d\x9c\xa4\x52\x53\x73\xa5\xc3\x03\x55\x0e\x56\xa0\xbb\x0f\x51\xe9\x87\x02\x1d\xc8\xd1\x29\x10\x94\xe5\x41\xee\xad\xa0\x44\xb2\xfa\x05\x25\xab\x23\x2b\x0f\x59\x79\xc8\xca\x43\x56\x1e\x6c\xe1\x4d\x6f\x51\x2f\x53\x60\xce\x63\x19\x22\x83\x67\xfd\x32\x5b\x33\x78\x46\x61\x01\x7a\x44\xd0\x7a\xde\x4e\x26\x78\xb8\xa2\xd6\x0e\xb4\xd4\xf4\x95\xce\x98\xac\x53\x52\x3c\xe2\x4f\x0a\xc1\x9b\xea\xbf\x78\x90\x4f\x18\xfb\xa0\xff\xeb\xfe\x7d\xc1\x25\x39\x46\x15\x0b\xa2\xa5\xca\x45\x56\xec\x63\x26\x56\x97\x45\xf2\x49\xb0\xeb\xff\xe1\x0b\xa1\x52\x1e\x88\x6b\x2d\x57\x9d\xc4\x9a\xb0\x87\x88\xc7\xb1\x30\x3a\x97\x44\x10\x8f\x8c\xee\x7a\xfb\xc3\x21\x1b\x03\x3d\xe3\x99\xe4\x89\xef\x34\xaf\xee\xa7\xae\xfb\x74\x4b\xd9\x07\xd3\x63\x7a\x4b\x4a\x95\xeb\x1d\x1b\xa5\xb6\x54\x22\xa3\xf0\xb2\x42\xa8\xbf\x76\xdc\x51\xfa\x61\xc6\x1b\x0c\xd0\xef\x7d\x13\x2e\xc9\x16\xb6\xa4\xb9\x18\x87\x47\xf2\x18\x3c\x5f\x2e\x65\xd2\xfc\xb1\x50\xc8\xe4\x14\x01\x08\x14\x2b\x74\xd0\xd1\xf7\xb7\xf4\xdb\xbf\x6e\x5f\x17\x17\x22\x9b\x8b\x46\xdf\xa4\x49\x2d\xe6\x32\xb8\x6d\xfe\x1b\xfd\xf7\xab\xfd\x26\xad\xc0\x4d\xf4\x4f\xca\xb3\x5c\x52\x2a\x9f\x89\x6b\x6b\x47\x0b\xa5\x5b\x8a\x71\xf7\xc8\x69\xdd\x55\xd8\xc4\x16\x23\xe5\xa1\x1a\x8e\xc6\xe0\xca\x1e\xb9\x2b\xfb\x72\x62\x23\x56\x92\x68\xdc\xcb\x65\x12\xbd\xf4\xda\x54\x1c\x1e\xf0\xdd\x86\x75\xeb\x7b\x72\xe4\x99\xec\x6e\x1e\xd1\x2f\xe3\x24\xbe\x35\xbf\xa6\x6f\x90\x2f\x5d\xb1\xef\xfe\xae\x92\xf8\xc1\xe4\xd0\x7f\xd2\x2b\xa4\xfd\xfb\xab\x5b\x37\x8b\x7f\xfc\xbe\x4f\x41\x1b\xcd\xe7\xcd\xaf\x49\x16\x10\x6c\x98\x27\x34\xf8\x09\xfb\x76\x35\xd3\xff\xf6\xed\x8a\xdd\x57\x7a\x93\x42\xf4\x0d\x19\x20\x9b\xc4\xbe\xa8\xb7\x3c\xa0\x01\xa0\x2c\xec\x48\x06\xd6\xd7\x49\x26\x4c\xf2\x62\xc7\xd6\x64\x29\xa7\x22\x49\x23\x31\x61\xe6\x9e\x74\xf8\x82\x9b\x53\x14\x28\x5f\x3b\x10\xfe\xf6\x87\x74\xaf\xbe\x11\x2c\x19\xf3\x01\x2c\x99\x01\x5a\x32\xe9\x4a\x50\xfa\x18\x6c\x99\x65\xeb\xbe\xb5\x34\xe2\x41\x4b\x92\xd2\x5e\xec\x72\x45\x25\x62\x71\xa1\x37\x1b\x0c\xd3\xe5\xe8\xcd\x1e\xc9\x3a\xa8\x0f\xff\xc9\xf9\x97\xb1\xd1\xc6\xe2\x5e\x80\xaa\x5a\x8e\xc3\x3f\xfc\x86\x1d\x16\xb1\xfa\xec\x4b\x5b\xf7\xa7\xfa\x5f\xe3\x72\xdb\xc7\xd4\xff\x6b\x7e\x13\x84\xb1\xe2\x30\x3c\x1c\x86\x87\xc3\xf0\x70\x18\x1e\x0e\xc3\x3b\x8b\x81\x05\x3b\xb8\xf1\x40\xa1\x02\x60\x9f\xce\x2c\x44\x52\xc5\x05\x25\x55\xe0\x80\x4a\x1c\x50\x89\x03\x2a\x71\x40\x25\x0e\xa8\xc4\x01\x95\x38\xa0\x12\xb9\x86\xc8\x35\x44\xae\x21\x72\x0d\x57\x67\x24\x2a\x00\xe2\x34\x5c\x9c\x86\x8b\xd3\x70\x07\x7e\x1a\x6e\x2d\xdb\x43\xf8\x01\xf2\x87\x47\x50\x01\xb0\x31\x19\x3e\x7f\x2e\xf1\xf6\x1a\x80\x07\x73\xf4\x5d\x55\x00\xdb\x67\xe7\xa8\x03\x88\x3a\x80\xe6\x23\xd4\x01\x44\xe8\x03\x42\x1f\x10\xfa\x80\xd0\x07\x84\x3e\x80\xa9\x03\xb3\xee\xee\x11\x60\x56\x60\x56\x60\x56\x60\x56\x60\xd6\x0b\xc6\xac\x20\x1f\x20\x1f\x20\x1f\x20\x1f\xa8\x03\x88\x3a\x80\xa8\x03\xe8\x3f\x39\x32\x87\x74\xbb\xa3\x1f\x95\x00\xfb\x51\x09\xb0\x3b\x60\x85\x5a\x80\xad\xd4\x02\x3c\x18\xc4\xed\xae\x06\xd8\x97\x34\xd6\x33\x9d\x41\xb2\xa3\xf9\xcd\x16\x27\x64\x5f\x8d\x20\xfb\x0a\xa7\x90\xe0\x14\x92\x9a\x87\x19\x87\xd2\x1a\xf2\x39\x24\x6d\xb5\xac\x87\x55\x01\xdb\x69\xda\xf8\xa5\xf1\xf9\xea\x02\xb6\x2e\x8d\xdf\xb0\x4e\xce\x59\x39\x75\x6d\xc0\x0e\x8f\x58\xe9\x8b\x22\x1d\xc8\xc1\x2a\x90\x97\xe5\x41\xee\xad\xbc\x44\x2a\xfb\x05\xa5\xb2\x23\x67\x0f\x39\x7b\xc8\xd9\x43\xce\x1e\x2c\xe3\x4d\x6f\x51\x2f\x13\x64\x50\x1f\xb0\xe7\x76\xe0\x39\xeb\x03\x0e\x28\xab\xa7\xa6\x42\xe0\xc1\xf6\xda\xae\x1a\x81\x9d\xa7\xf2\xa0\x4a\xa0\x9f\x39\xcd\x45\x0a\xaa\x04\xda\xff\x61\xf7\x84\x8b\xd2\x7e\x34\xd2\x3a\x81\xbd\x82\xf7\xe5\x4a\x81\xfb\x3c\x18\x6a\x05\xa2\x56\xe0\x19\x6a\x05\x1e\xac\x8a\x76\x56\x0b\xec\x8b\x13\x1b\xf5\x02\xe1\xda\x46\xe4\x04\xea\x05\xae\xcf\x18\xd4\x0b\x44\xbd\x40\xd8\x34\xb0\x69\xb6\xd8\x34\x67\xac\x18\xd8\xa1\x55\x73\x9a\x9a\x81\x47\x38\xdc\x76\x56\x0d\x1c\xbb\xb8\x44\xcc\x2e\x94\x67\xa3\x61\xba\x1c\xe5\xd9\x23\x81\x07\x1d\xe2\x3f\xe9\xc3\x42\x36\xe2\x98\xdd\x0b\x50\x58\xe7\xaa\x1e\xd8\x9b\xb8\x56\x4a\x72\xbc\x5b\xd8\x62\x86\x3b\x6b\x08\xb6\xce\x4a\xed\xf9\x18\x71\x28\x9f\x65\xb8\xe4\x51\x39\xd7\x96\xfb\x13\x71\xb6\x15\x5b\x9c\x94\xa2\xb5\x7e\xf4\x71\x5e\xd7\x74\xe1\xeb\xe2\xb8\xb4\xca\xf9\x57\x5e\xf3\x31\x19\xab\x5c\xf0\x8a\xa3\x78\x55\x11\xbe\xec\x72\x36\x6e\x7b\xba\xdf\x56\xb2\x0a\x91\x2f\xdb\xd7\x58\x15\x4a\xf7\xfe\xf0\x2c\x62\xe4\xc4\x06\x95\xb7\xf3\x7c\x89\xb1\x9d\xd5\xad\xdf\x9f\xac\xe1\x44\xd3\x11\x9f\x68\xba\x1b\x0c\xee\x3a\xcd\x74\xab\x6b\xb1\x05\xe8\x89\x33\x4c\x71\x86\x29\xce\x30\xc5\x19\xa6\x63\x3b\xc3\x74\xf7\xca\x5b\x7b\x7e\x69\xc7\x21\x26\x27\x3b\xb5\x74\x77\xf3\x37\x9f\x58\xda\xe7\x3e\xd8\xe7\x9c\xd2\xdd\x7d\xb0\xf9\x8c\xd2\x8e\xfb\x00\x27\x93\xe2\x64\x52\x9c\x4c\x8a\x93\x49\x71\x32\x69\x67\x27\x93\x36\x58\xfd\xd7\x4e\x25\xdd\x9a\x46\x7a\x41\x11\xa6\xcd\x5a\x33\xe2\x93\x55\x77\x77\xf7\xb6\x53\x55\x4f\xdb\xef\x38\x4b\xb5\x93\x11\x5d\x3f\x47\xb5\xe3\x61\x3d\xeb\xe9\xa9\xbb\xbb\x67\xcb\xc9\xa9\x5d\x2f\x9b\x7d\x3d\x2f\x75\x77\xa7\xd5\x70\x8f\x83\xfd\x79\xf6\xaf\x3f\x3a\x04\x72\x35\x87\xcd\x74\xc4\xe5\xca\x30\x2e\x76\x6a\xc0\x95\x27\xeb\x1c\xca\xdd\x14\x06\x01\x19\x3d\x56\x3c\x6a\x9b\xa2\xb0\x74\xae\x2b\x16\x72\xe9\xda\x9d\x21\x3d\xe0\x3c\xe0\xbc\x01\xe3\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\x3c\xa0\xbc\x51\xa1\xbc\xf2\x81\x38\xcd\x5d\x10\x38\x0e\x07\xb0\xf2\xfc\x68\x0b\xb0\x12\xb0\x12\xb0\x12\xb0\x72\xa5\xd3\xfa\x07\x2b\x77\xd4\xc6\xe8\x41\xfe\xe0\xf6\x74\xcb\xf3\x67\x10\x36\xa8\xd3\x08\xe8\x08\xe8\x38\x5c\xe8\x88\xe2\x9a\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x40\x8f\x23\x44\x8f\x00\x73\x00\x73\x00\x73\xc3\x18\x51\x80\xb9\x6a\xf7\x00\xcc\x5d\x02\x98\xeb\x49\x1e\xe1\x09\xe0\xdc\x19\x33\x09\xf7\x38\x2c\x1e\x58\x0f\x58\x6f\x58\x58\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x0f\x48\x6f\x64\x48\x0f\xe5\xf5\x81\x2d\x81\x2d\x0f\xe8\x77\x60\x4b\x60\x4b\x60\xcb\xcb\xc6\x96\xa9\x14\x7f\xe6\x22\xa6\x17\xc3\xe1\xca\x83\xd0\xe3\x59\x6a\x9a\xae\x0c\xf7\x5c\xe4\x4c\xc6\xb3\x24\x5b\xf8\xe9\xcd\x99\x41\x1a\x9b\x59\xe1\x5c\xe4\xf7\xe5\x5e\xb8\x7f\xf8\xf8\xdf\xab\x3f\x41\x21\xd7\x3d\xd9\x9c\xef\xc4\xa1\x93\xb9\xf2\xcc\x28\xfd\xec\x4d\xf9\xd6\x0d\x5e\xa9\xe7\xb7\xc3\x7e\xab\x2a\xd6\xb1\x59\x2f\xf7\x78\xa5\xfe\xf9\xf6\xfe\xe1\xe3\x97\xba\x1f\xe2\xc5\xda\xff\xc5\x72\x1d\x49\x09\xc8\x63\x7a\xbf\xfe\xdf\xf3\xdb\xe3\x5e\xb1\x60\xa9\xf2\x64\xe1\x66\x68\xa9\x6f\xcb\xef\x9e\x71\x43\xb4\x1b\x4f\x63\xae\xc9\x82\x24\x8a\x44\xe0\xb6\x9e\x5f\xe8\x69\xdc\x68\xbd\xf7\x4f\xb3\xe5\xc5\x31\xd7\x59\x79\x77\x7e\xf1\x57\x6d\x72\xc5\x0d\xb0\x7c\xad\x68\xbc\x51\x20\xd3\x24\xdc\x58\x2a\xbd\xee\xb3\x4e\xe6\xf4\x7b\x6a\xf5\xe7\x34\xaf\x2e\xb2\x6c\xdb\x8c\xde\x3e\x95\xc1\x5f\xc1\x5f\xc1\x5f\xc1\x5f\xc7\xc6\x5f\xb7\x58\x8e\xbb\x18\xec\x76\x2f\xc4\x76\x0b\x72\xaf\xb5\xf7\x5f\xba\xe3\xac\xe7\xf9\x86\xce\x80\x09\xf4\x8c\x32\xf3\xa0\xd2\xb6\x72\xac\xd3\x54\xb0\x54\xf7\x96\xca\x45\x38\x61\xf7\x31\x93\xb1\x59\x59\x92\x8c\x2d\x63\xbf\x38\x85\x2c\xcc\x5e\xbf\x2c\x63\x16\xca\x4c\xef\x89\xcf\xc2\xcf\x78\xbd\x7c\x12\x27\xb0\xaf\xbc\x9b\x1b\xb6\x83\xd9\x6c\x99\xd1\x5b\x96\x66\x49\x20\x14\x39\xf4\xad\xfb\xc3\xce\xb2\x89\xf1\x1e\x9b\xd1\xa2\xb9\xf3\x23\xbb\x65\xf7\x51\xf4\x23\xb9\xeb\x43\xbd\x4a\x2f\x63\x3d\xf0\x73\xa1\xfc\x94\xb4\x97\x13\xe1\x01\x03\x65\xda\x72\x9e\x61\x3a\x19\x34\x6f\xd6\x15\x9b\xc1\xf9\xc9\x7a\xe4\xf7\xb2\x67\x4c\xc6\x4c\x19\x87\x15\x9b\x8a\x99\x89\xee\xf3\x80\xa5\x90\x12\x76\xf5\xa2\xa9\xb3\x14\x66\x73\x98\x0a\x16\x27\xf1\x6d\x2c\xe6\x9c\x26\xa8\xf5\x6d\x4d\xd8\xef\x7e\xc3\x36\xb0\xd5\xbf\x1a\x56\x3e\xca\xc5\x42\x84\x92\xe7\x22\x7a\x2d\xc2\xee\x8a\x2d\x57\x46\x37\xd6\x77\x45\x9d\xce\xe6\x19\x0f\xe8\xad\x91\x49\xe8\x05\x41\xb1\x69\x53\x4c\xa3\x9b\xa5\x4b\xa5\x1f\xb2\x3c\x5c\x5c\xff\xd2\x35\xc8\xde\x64\x66\xd6\x40\x77\x89\x89\x79\xce\x85\xe0\x71\xed\x33\x1e\x30\xcc\xf4\xcc\x0f\xf4\xc8\x75\xfe\xc0\x1d\x1e\xc1\xbe\x4c\xff\x7d\xe2\x25\x9a\xf5\xcb\xe6\x98\x89\x93\x4d\x7f\x44\x4f\x20\x7a\x02\xd1\x13\x88\x9e\x40\xf4\x44\x67\xd1\x13\x0d\xf7\x82\xb5\x08\x8a\xd3\x6d\x8b\xef\x4b\x59\x5d\x69\x24\xb8\x12\x7e\x09\x7a\xc8\x92\x94\xcf\x49\x1d\x3d\x24\x91\x0c\x5e\x2b\xb1\xfa\x6e\xd2\x15\x69\x61\x7a\xda\xbd\x9d\xfc\x6d\xc2\xbe\x9a\xf5\xcc\x48\x97\x54\xc4\xfa\x65\x29\xf6\x54\xc1\x92\x2c\x7d\xe4\xb1\xcb\x1d\xc8\x96\xe2\x6e\xc6\x23\x67\x2b\x7f\xbb\x32\x1f\x7f\xbb\x62\x33\x19\xf3\x48\xfe\xc7\x6d\x24\x53\xc1\x78\x48\xb8\x39\xb9\x33\x28\x2e\x2c\xcc\x30\x73\xf9\x6b\x55\xfc\xc8\xd8\xa7\x13\xf6\x41\xd2\xe2\x58\x7a\xf4\x24\x5b\x6f\x5b\x11\x5c\x90\x1b\xf3\x98\x6c\x94\x24\x7f\x3c\x64\x40\x4d\x0b\xde\xbb\xb6\x6f\x94\x3c\x75\x60\xaf\x5d\xc3\x8c\x9a\xae\x5f\xd8\xc7\xe4\x85\xcd\x79\x36\xe5\xf3\x8a\xd7\xd2\x1b\x35\x22\x9b\x25\xd9\x42\x8f\x49\x6d\x7f\x7d\x5e\x69\xd1\xe6\xee\x22\xd1\xeb\x14\x6b\x6a\xfa\x56\x6a\x35\x19\xc8\xb0\x30\x85\x49\x2b\x90\x73\xc2\x8f\xb1\x22\x96\x47\x9f\x3a\x35\x30\x29\x0d\xa6\xdb\x47\x3c\xdd\xf7\x79\x30\xd5\x9b\x4d\xd8\x7d\x10\x88\x34\xa7\xbd\xa9\x6c\xd9\x5d\x9b\x36\x5c\xb3\x5b\x3b\x01\xab\x13\x54\xfd\xc4\xae\x7f\xe6\xc1\xd3\x3c\x4b\x96\x71\xa8\xbf\x45\x39\x25\xf4\xa5\x95\x8e\x33\x12\xd2\xea\xe3\xea\x45\x5c\x0b\xa6\xfe\x4a\x3f\xb1\xeb\x5f\x93\x4c\x94\x2e\xcb\x02\xae\x02\x1e\xea\xd6\xdb\xfe\x31\x29\x47\x74\x3d\x65\x4c\xcf\xb5\x0b\xce\xfc\x35\x0e\x99\x90\xe9\xea\x74\x3f\x8f\xe2\x1c\x71\x18\x50\xb3\x71\xd8\x16\x0a\x74\xae\x51\x40\x50\x50\x67\xe3\xbb\x1e\x18\x74\x3a\xdf\xc6\x39\x43\x84\x9a\x75\xd6\x96\x30\xa1\x63\xf5\x4f\x2d\xc2\x03\x7a\xde\x13\xd3\x7d\xcd\x79\xbe\x6c\xca\xe7\x86\x48\x9c\x4b\xbf\xdc\x90\x5e\x6d\x36\xe5\x42\x30\xb5\x92\x69\x5d\x03\xb3\xeb\x33\xac\x1b\xe0\xdf\xd5\xdc\xea\x6d\x69\xd5\xad\x9f\x2a\x61\x1c\x67\x99\x35\xb6\x9d\xc2\x77\x07\x4a\x1c\x80\xc3\xf5\x05\x57\x61\x78\x8b\x08\x1c\x39\xe3\x97\x93\x33\xde\x6c\x0f\xda\x95\x37\x7e\x3a\x63\x0d\x11\x0c\x88\x60\x40\x04\x03\x22\x18\x10\xc1\x50\xb7\xf8\x02\x8d\x0f\xa8\x47\x40\x4b\x41\x4b\x41\x4b\x41\x4b\x41\x4b\x41\x4b\xc7\x45\x4b\x01\x30\x00\x30\x00\x30\x00\x30\x3a\x07\x18\x7b\x40\xfe\x9e\x66\x3c\x37\xeb\xc2\xf5\xac\xe7\x63\x3d\x6e\xbd\x42\x3f\x1b\x7f\x70\x59\x67\xfa\x16\xfe\xfc\x5b\xef\xc4\x2d\x70\x53\x95\x87\x3c\xbf\x9d\x6c\x72\xf9\x8f\x3c\xff\x71\x37\x8d\x6a\xad\x7c\xe7\xb9\x08\xd4\x01\x07\xfb\x0e\xe5\x20\x9c\x37\x2b\xa3\x78\x95\x26\xaa\x65\xdc\x66\x2c\x1f\xc6\x0f\x21\x6b\xe6\xb7\x1d\xb2\xb5\xc3\xd2\x4b\xb7\x1c\xb0\xd4\x87\x15\xa7\x95\xdc\x54\xe4\x47\x95\x67\x48\x6f\xf3\xa3\xc8\x3b\xf2\x89\xc7\x7c\x2e\x32\xe3\xe7\xa3\x73\xc6\xb8\x52\x49\x20\xc9\x70\xf5\x1e\x35\x4e\x8e\xd1\x24\x63\x22\xce\xb5\x92\x74\x96\xfc\x82\x3f\xe9\x5e\xcc\x1f\x85\x12\x4e\x8e\x95\xb3\x80\x5c\xb6\x10\xc9\x51\xf2\x9e\x25\x19\x7b\xfb\xee\x07\xfd\xdd\x8c\x07\x84\xcb\xa2\x24\x9e\x1b\xf1\x45\x1e\xae\x20\x89\x73\x2e\x63\xb3\xc2\x91\x07\xa9\xf8\x2e\x21\x04\x0b\xf3\xd8\xf4\xd5\xdb\x17\xf3\x24\xe2\xf1\x7c\x92\x64\xf3\xbb\xf4\x69\x7e\xb7\x8c\x65\x90\x84\xe2\xee\x2f\x1f\xd5\x83\xbe\xca\xc1\x2e\x69\xdb\x39\x6d\x0e\x4f\xaf\xd4\xda\x45\x88\xa8\xa6\x02\xea\x5d\x03\x01\xf5\x8b\x71\xc5\x0d\xb8\x8d\xef\x76\xb6\xd1\x44\x13\x0f\xb8\x91\xa3\x54\xc2\x24\xae\x06\xa8\x84\xdf\xb0\xe3\xcf\x36\xa9\xa9\x17\xd4\xe1\x11\x27\x07\xa9\xcd\xfa\x63\x4d\xce\xae\x36\x07\x72\x98\x09\x04\x63\x79\x90\x7b\x2b\x18\x91\x3e\x7e\x41\xe9\xe3\xc8\x93\x43\x9e\x1c\xf2\xe4\x90\x27\x07\x5b\x77\xd3\x5b\xd4\xcb\xa4\x94\xf3\x58\x78\xc8\xa9\x61\x5b\x6c\x37\x6b\xac\x0c\xd0\x7a\xf3\xbe\xfd\xd6\x33\x69\x32\xc1\xc3\x15\x3d\x76\x80\xd9\xa5\xaf\x72\xba\xf4\x99\x92\x7c\x11\x7f\x52\x50\xdc\x54\xff\xc5\x83\x7c\xc2\xd8\x07\xfd\x5f\xf7\xef\x0b\x2e\xc9\x8b\xa9\x58\x10\x2d\x55\x2e\xb2\x62\x53\x32\xd1\xb3\x2c\x92\x4f\x82\x5d\xff\x0f\x5f\x08\x95\xf2\x40\x5c\x6b\xed\xe9\xf4\xd2\x84\x3d\x44\x3c\x8e\x85\x11\xad\xa4\x68\x78\x64\x44\xd4\xdb\x1f\x0e\x59\xe5\xe9\x19\xcf\xa4\x35\x7c\xa7\x79\xa9\x3e\x75\xdd\xa7\x5b\xca\x3e\x98\x1e\xd3\xfb\x4b\xaa\x5c\xef\xd8\xb8\xb1\xa5\x12\x19\x05\x7c\x15\xaa\xfb\xb5\xe3\x8e\xd2\x0f\x33\x5e\x3c\xdf\xef\x4d\x10\x7e\x42\x76\xf4\x5e\x33\x17\x83\x74\x13\x1e\x03\xcc\xcb\xd5\x71\x9a\x3d\x0d\xea\xe2\x9c\x22\x1c\x80\xe2\x74\x0e\x3a\x03\xfe\x96\x7e\xfb\xd7\xed\x2b\xe0\x42\x64\x73\xd1\xe8\x9b\x54\xdc\x59\xcc\x65\x70\xdb\xfc\x37\xfa\xef\x57\xfb\x4d\x5a\x6b\x9b\x88\x9a\x94\x67\xb9\xa4\x34\x3a\x13\x53\x76\xbc\xc0\xa1\x07\xe8\x9d\x5b\xb9\xab\x20\x86\x2d\x66\xc4\x43\x35\xea\x8b\xc1\xd9\x3c\x72\x67\xf3\xe5\x44\x27\xac\xe4\xaa\xb8\x97\xcb\xe4\x53\xe9\x65\xa8\xc8\xd1\xff\x6e\xc3\x12\xf5\x3d\xb9\xda\x4c\x12\x35\x8f\xe8\x97\x71\x12\xdf\x9a\x5f\xd3\x37\xc8\xdb\xad\xd8\x77\x7f\x57\x49\xfc\x60\x52\xd5\x3f\xe9\xc5\xd0\xfe\xfd\xd5\x2d\x91\xc5\x3f\x7e\xdf\xa7\xb0\x89\xe6\xf3\xe6\xd7\x24\x0b\x08\x07\xcc\x13\x1a\xfc\x84\x7d\xbb\x9a\xe9\x7f\xfb\x76\xc5\xee\x2b\xbd\x49\x91\xf0\xc6\x77\x4f\x86\x86\x7d\x51\x6f\x79\x40\x03\x40\xc9\xce\x91\x0c\xac\x37\x92\xec\x92\xe4\xc5\x8e\xad\x49\x06\x4e\x45\x92\x46\x62\xc2\xcc\x3d\xe9\x8c\x03\x37\xa7\x28\x1e\xbd\x76\x20\xfc\xed\x0f\xe9\x5e\x7d\x23\x98\x27\xe6\x03\x98\x27\xc3\x33\x4f\xd2\x95\xd0\xef\x01\x1a\x28\xcb\xd6\x3d\x61\x69\xc4\x83\x16\xb4\xa2\xbd\xd0\xc5\xa8\x45\x84\xbc\x42\x54\xee\x39\x4c\x97\x23\x2a\x7b\xa4\xdd\x20\x31\xfc\x27\xfd\x5a\xd2\x2e\x22\xe4\x75\x9c\x32\x6a\x39\x48\x2f\xef\x1b\xd6\x5a\x30\xe8\x9d\x32\x5c\xf9\x90\x92\x93\x7b\x31\x4a\x73\x1f\xb7\x6b\x9e\x8a\x56\x5a\x6a\x8e\x05\x13\x8b\xc9\x6a\xdf\x03\x19\x55\x3b\x11\xc8\x08\xc8\x68\x44\xc8\xa8\xc5\xfd\x66\x1f\x78\x54\xb3\xe1\x0c\xd2\x29\x00\x84\x04\x6b\xff\xf2\xac\x7d\x20\xa4\x36\xe7\x0d\x10\x12\xfc\x3b\x30\x57\xfa\x6a\xae\x00\x21\x6d\x44\x48\xad\xfa\x2a\xf6\x81\x49\x63\x51\x8f\x40\x4a\x10\x99\x7b\x0e\xd3\xe5\x88\xcc\x1e\x69\x39\x48\x0e\xff\x49\xbf\x96\x34\x20\xa5\xc1\xca\xaa\xd1\x23\x25\x3a\x38\x72\x33\x58\xea\x14\x25\xd9\xf3\xc6\xe3\x50\x3e\xcb\x70\xc9\xa3\xf2\xd9\xa5\xdc\x57\x18\xd8\xd4\x25\x93\x52\x32\xfd\x8f\x3e\x0d\xff\x9a\x2e\x7a\x5d\x94\x9e\xa9\xd4\x12\xf1\x7a\x8e\xc9\x58\xe5\x82\x57\x3c\xbd\xab\x6a\xef\x65\x0f\x4f\xe1\x6f\x2b\x67\x32\xe2\xa8\xd1\xbe\x66\x0e\xd3\x49\xb9\x1f\x9e\x45\x7c\xd9\x87\x88\xd2\x28\x5e\xe2\x49\xa2\x28\xf7\x36\xe2\x72\x6f\xbb\x51\xdd\xae\x52\x6f\x5b\xbd\x7e\x2d\x60\x48\x14\x78\x43\x81\x37\x14\x78\x43\x81\xb7\xb1\x15\x78\xdb\xbd\xf2\xd6\x16\x77\xeb\x38\xe8\xe3\x64\x25\xdd\x76\x37\x7f\x73\x39\xb7\x3e\xf7\xc1\x3e\x45\xdc\x76\xf7\xc1\xe6\x02\x6e\x1d\xf7\x01\xca\xb6\xa1\x6c\x1b\xca\xb6\xa1\x6c\x1b\xca\xb6\x75\x56\xb6\xad\xc1\xea\xbf\x56\xb2\x6d\xeb\xb1\x9d\x17\x14\xf3\xd9\xac\x35\x23\x2e\x3b\xb7\xbb\xbb\xb7\x95\x9c\x3b\x6d\xbf\xa3\xd0\x5c\x27\x23\xba\x5e\x64\xae\xe3\x61\x3d\x6b\x69\xb9\xdd\xdd\xb3\xa5\xac\x5c\xd7\xcb\x66\x5f\x8b\xc9\xed\xee\xb4\x1a\xb2\x71\xb0\x3f\xcf\xfe\xf5\x47\x7b\x30\xad\xe6\xc8\xfe\x8e\x98\x5a\x19\xa4\xc5\x6e\xf3\x4f\x66\xec\x49\xc6\x9b\x03\x9f\x5a\x01\x6a\x37\x85\xf6\x27\xfb\xc6\xea\x44\x6d\x3e\x14\x46\xcd\x75\xc5\x18\x2e\x5d\xbb\x2d\x1c\x07\x14\x07\x14\x37\x2c\x14\x07\x0c\x07\x0c\x07\x0c\x57\x7c\x11\x18\x0e\x18\x0e\x18\x0e\x18\x0e\x18\x0e\x18\x0e\x18\x0e\x18\x0e\x18\x0e\x18\x0e\x18\x0e\x18\x0e\x18\x6e\x78\x18\x0e\x07\xcb\x00\x32\x02\x32\x02\x32\x9e\x7f\x44\x01\x19\xab\xdd\x03\xc8\x38\x38\xc8\x38\x15\x39\x7f\x7b\x77\x10\x43\x3c\x4b\xce\xef\xca\xb0\xcf\x45\x5e\x55\xf2\x66\x84\xb7\x70\xbf\xb9\xc8\x57\xa8\x1f\x75\xc1\xfd\xc3\xc7\x2f\x75\xbf\x46\xc2\xf3\x9e\x14\xae\xd4\x91\x94\xc5\x38\x32\x14\x47\x93\xa5\xf4\xf3\x37\xe5\x47\xd8\xe3\x8d\x6b\x94\x22\xdb\x61\x05\xfe\x52\x19\xe2\x2d\x49\xb1\x5b\xde\xa3\xda\x6a\xfc\xd4\xb6\x5f\xfc\xa5\xcf\x7f\x2e\xfe\x40\x8a\xf3\x83\x1f\x81\x1f\x81\x1f\x81\x1f\x8d\x8d\x1f\x35\x3b\xc1\xa6\x96\x21\x9d\xec\x70\x21\x9c\x01\xd5\x78\xa0\xce\x79\x06\xd4\xc9\xa0\xdf\x1e\xa7\x2e\xd5\x42\xaf\x93\xf5\xc8\xef\x65\xfb\x5e\xc6\x4c\x19\xb3\x9b\x4d\xc5\xcc\x44\x27\x79\x07\x71\x21\x25\xec\xea\x45\x53\xa7\x74\xea\x55\x9c\xc4\xb7\xb1\x98\x73\x9a\xa0\xd6\x42\x2f\x9f\x8e\x65\x60\x91\x7f\x35\xac\x86\x94\x8b\x85\x08\x25\xcf\x45\xf4\x5a\x84\x0d\x15\x5b\xae\x8c\x6e\xac\x05\x4e\x9d\xce\xe6\x19\x0f\xe8\xad\x91\x49\xe8\x05\x41\xb1\x69\x53\x4c\x96\x9b\xa5\x4b\xa5\x1f\xb2\x3c\x5c\x5c\xff\xd2\x35\xc8\xde\x64\x56\x2a\x5a\x2d\xf5\x0f\xe8\x39\xcd\x59\xa1\x35\xcf\x78\xc0\x30\xd3\x33\x3f\xd0\x23\xd7\x79\x35\x76\xf8\x35\xfa\x32\xfd\xf7\xe1\xbd\xcd\xfa\x65\x33\xf3\x3d\xd9\xf4\x07\xfd\x05\xfd\x05\xfd\x05\xfd\x05\xfd\xed\x8c\xfe\x36\xdc\x0b\xd6\x08\xf0\xe9\xb6\xc5\xf7\xa5\x14\x93\x34\x12\x5c\x09\xbf\x04\x3d\x64\x49\xca\xe7\xa4\x8e\x1e\x92\x48\x06\xaf\x95\x58\x63\x37\xe9\x8a\x1c\x15\x3d\xed\xde\x4e\xfe\x36\x61\x5f\xcd\x7a\x66\xa4\x4b\x2a\x62\xfd\xb2\x14\x7b\xaa\x60\x49\x96\x3e\xf2\xd8\xc5\x3e\x67\x4b\x71\x37\xe3\x91\xb3\x95\xbf\x5d\x99\x8f\xbf\x5d\xb1\x99\x8c\x79\x24\xff\xe3\x36\x92\xa9\x60\x3c\x24\x68\x96\xdc\x19\xa0\x10\x16\x66\x98\xb9\xfc\xb5\x2a\x7e\x64\xec\xd3\x09\xfb\x20\x69\x71\x2c\x3d\x7a\x92\xad\xb7\xad\x40\xa4\xb9\x31\x8f\xc9\x46\x49\xf2\xc7\x43\x06\xd4\xb4\xe0\xbd\x6b\xfb\x46\xc9\x73\xd0\x49\xe6\x7b\x19\x66\xd4\x74\xfd\xc2\x3e\x26\x2f\x6c\xce\xb3\x29\x9f\x57\x5c\x97\xde\xa8\x11\xd9\x2c\xc9\x16\x7a\x4c\x6a\xfb\xeb\xf3\x4a\x8b\x36\x77\x17\x89\x5e\xa7\x58\x53\xd3\xb7\x52\xab\xc9\x40\x86\x85\x29\x4c\x5a\xc1\x1c\x38\xef\xc6\x58\x6f\xd6\x76\x27\x75\x6a\x60\x52\x1a\x4c\xb7\x8f\x78\x46\xe9\xe3\xf8\xab\x37\x9b\xb0\xfb\x20\x10\xa9\x39\x4f\xb6\x6c\xd9\x5d\x9b\x36\x5c\xb3\x5b\x3b\x01\xab\x13\x54\xfd\xc4\xae\x7f\xe6\xc1\xd3\x3c\x4b\x96\x71\xa8\xbf\x45\x31\xf1\xf4\xa5\x95\x8e\x33\x12\xd2\xea\xe3\xea\x45\x5c\x0b\xa6\xfe\x4a\x3f\xb1\xeb\x5f\x93\x4c\x94\x2e\xcb\x02\xae\x02\x1e\xea\xd6\xdb\xfe\x31\x29\x13\x74\x3d\x65\x4c\xcf\xb5\x0b\xce\xfc\x35\x0e\x99\x90\xe9\xea\x74\x3f\x8f\xe2\x1c\x71\x30\x43\xb3\x71\xd8\x16\xd0\x70\xae\x51\x40\x68\x43\x67\xe3\xbb\x1e\xde\x70\x3a\xdf\xc6\x39\x03\x1d\x9a\x75\xd6\x96\x60\x87\x63\xf5\x4f\x2d\xc7\x03\x89\xde\x13\xd3\xd9\x82\x09\x23\x07\xd0\xa5\x9f\x6f\x48\x08\x35\x3b\x73\xa1\x9a\x7a\x9f\x1b\xba\xd2\xc4\xf5\x04\xd1\xd6\xd3\xdc\x8d\x0b\x2d\xb3\x66\xb7\xd3\xfa\xbb\x32\xdc\xb7\xd0\x71\x7d\xc1\x5a\x36\xde\x22\x11\x47\x0a\xec\xe5\xa4\xc0\x36\xdb\x92\x76\xa5\xc1\x9e\xce\x76\x43\x40\x03\x02\x1a\x10\xd0\x80\x80\x06\x04\x34\xd4\x2d\xbe\x20\xe5\x03\xea\x11\xc0\x53\xc0\x53\xc0\x53\xc0\x53\xc0\x53\xc0\xd3\x71\xc1\x53\xf0\x0c\xf0\x0c\xf0\x0c\xf0\x8c\xce\x79\xc6\x1e\xcc\xbf\xa7\x69\x9c\xcd\xba\x70\x3d\x95\x73\x54\x75\xdf\x37\xfe\xe0\xb2\x8e\x20\xdd\xaf\x12\x2a\xb9\xfd\x37\x96\x43\xbd\x84\x14\xc9\xdd\x84\x6a\x10\x85\x03\x77\x52\xa9\x03\x8e\x2d\x1d\xca\x61\x1f\x6f\x56\x86\xf2\x2a\x4d\x54\xcb\x08\xce\x18\x42\x8c\x1f\x42\xdb\xcc\x6f\xbb\xe6\x6d\x43\x2e\xa3\xbf\x7d\x15\x42\x2d\xfd\xcb\xc9\xa3\x42\x2d\x7d\xd4\xd2\xaf\x79\x98\x51\xaa\xab\x11\x15\xd4\x6f\xab\xa1\xef\x76\x36\xd4\xc4\x1f\x0f\xbd\xa5\xe3\x15\xcb\x24\xbd\x86\x2a\x96\xdf\xb0\x96\x8e\x49\xa9\x29\x7e\xd2\xe1\x69\x29\x07\xa9\xd2\x2d\x27\xa4\x9c\x5d\x95\x0e\xe4\x5c\x14\x68\xca\xf2\x20\xf7\x56\x53\x22\x13\xfd\x82\x32\xd1\x91\x72\x87\x94\x3b\xa4\xdc\x21\xe5\x0e\xe6\xf0\xa6\xb7\xa8\x97\xf9\x2d\xe7\x31\xfd\x90\x9e\xb3\xd3\x9e\xb3\x66\xcb\x50\x2d\x3a\x8f\x04\x5a\x4f\xca\xc9\x04\x0f\x57\x94\xd9\x01\x56\x98\xbe\xca\x89\x33\x71\x4a\x6a\x46\xfc\x49\xf1\x75\x53\xfd\x17\x0f\xf2\x09\x63\x1f\xf4\x7f\xdd\xbf\x2f\xb8\x24\xbf\xa7\x62\x41\xb4\x54\xb9\xc8\x8a\x3d\xca\x04\xe2\xb2\x48\x3e\x09\x76\xfd\x3f\x7c\x21\x54\xca\x03\x71\xad\xa5\xa8\x93\x4f\x13\xf6\x10\xf1\x38\x16\x46\xc3\x92\xc0\xe1\x91\xd1\x54\x6f\x7f\x38\x64\xd1\xa7\x67\x3c\x93\xf4\xf0\x9d\xe6\x95\xfb\xd4\x75\x9f\x6e\x29\xfb\x60\x7a\x4c\x6f\x37\xa9\x72\xbd\x63\x43\xd0\x96\x4a\x64\x14\x3b\x56\x88\xf0\xd7\x8e\x3b\x4a\x3f\xcc\x78\x49\x7f\xbf\xf7\x44\xf8\x13\xcb\xa3\x79\xec\xfe\x33\x17\xc3\x75\x27\x1e\xc3\xde\x51\x46\xa4\x9f\x91\x05\x14\x01\x74\xd0\x01\xf4\xb7\xf4\xdb\xbf\x6e\x5f\x10\x17\x22\x9b\x8b\x46\xdf\x54\x79\xc6\x73\x31\x97\xc1\x6d\xf3\xdf\xe8\xbf\x5f\xed\x37\x69\xe9\x6d\x22\x74\x52\x9e\xe5\x92\x12\xf4\x4c\xb4\xda\xf1\xa2\x27\xad\x29\x6e\xdd\x13\xcf\x73\x57\xf1\x10\x5b\x2c\x8d\x87\x6a\x50\x19\x83\x3f\x7a\xe4\xfe\xe8\xcb\x89\x71\x58\x49\x85\x71\x2f\x97\x49\xd7\xd2\x6b\x51\x71\x04\xc0\x77\x1b\xd6\xa9\xef\xc9\x1b\x67\x72\xb4\x79\x44\xbf\x8c\x93\xf8\xd6\xfc\x9a\xbe\x41\x0e\x71\xc5\xbe\xfb\xbb\x4a\xe2\x07\x93\x09\xff\x49\xaf\x88\xf6\xef\xaf\x6e\x9d\x2c\xfe\xf1\xfb\x3e\x05\x5f\x34\x9f\x37\xbf\x26\x59\x40\xc4\x60\x9e\xd0\xe0\x27\xec\xdb\xd5\x4c\xff\xdb\xb7\x2b\x76\x5f\xe9\x4d\x0a\xb4\x37\xee\x7d\x32\x3e\xec\x8b\x7a\xcb\x03\x1a\x00\xca\xa5\x8e\x64\x60\x1d\x96\x64\xab\x24\x2f\x76\x6c\x4d\xae\x71\x2a\x92\x34\x12\x13\x66\xee\x49\x47\x28\xb8\x39\x45\xe1\xee\xb5\x03\xe1\x6f\x7f\x48\xf7\xea\x1b\xc1\x64\x31\x1f\xc0\x64\x19\xb2\xc9\x92\xae\xc4\x98\x0f\xd5\x68\x59\xb6\xee\x31\x4b\x23\x1e\xb4\xa0\x1f\xed\x85\x2e\x4b\x41\x22\xa2\x16\x6a\xf3\x90\x61\xba\x1c\xb5\xd9\x23\x51\x07\xed\xe1\x3f\xe9\xe1\xba\x76\x39\x11\xb5\x23\x16\x59\xcb\xe1\xfa\x85\xdf\xb0\x76\xc3\x4c\xef\x94\x81\xd5\x87\x94\xc9\xdc\x0b\x77\x9a\xfb\xb8\xed\xf4\xa4\xe0\xd3\xf2\x78\x2c\xa7\x58\x65\x4e\xb8\xca\x80\x3e\x81\x3e\x81\x3e\xd5\x7c\xf3\x7c\xf4\xa9\xc5\x3d\x68\x6f\x0e\x55\xb3\x09\x0d\xd2\x97\x00\x1a\x05\xff\xc0\xe5\xf9\x07\x40\xa3\xda\x9c\x37\xa0\x51\xf0\x08\xc1\x84\x61\xbd\x37\x61\x40\xa3\xea\x47\xd3\xd1\xa8\x56\x7d\x1a\x7b\x73\xa9\xb1\x28\x4a\xd0\x29\xa8\xcf\x43\x86\xe9\x72\xd4\x67\x8f\x44\x1e\xb4\x88\xff\xa4\x87\xeb\x1a\xe8\xd4\x08\x44\xd7\x05\xd1\x29\x3a\x14\x73\x33\xa3\xea\x94\x4a\xd9\xb3\xd4\xe3\x50\x3e\xcb\x70\xc9\xa3\xf2\xb9\xac\xdc\x57\x4f\xd8\xd4\x39\x93\x52\xb2\xff\x8f\xfe\x98\x80\x6b\xba\xe8\x75\x51\x56\xa7\x52\x27\xc5\x4b\x3e\x26\x63\x95\x0b\x5e\x71\x10\xaf\x0a\xc2\x97\x7d\x1d\x8c\xbf\xad\x1c\x35\x89\xb3\x54\xfb\x9a\xde\x4c\x47\x01\x7f\x78\x16\x31\x0e\x48\x35\xd3\xfc\x62\x4f\x49\x45\x65\xbb\x11\x57\xb6\xdb\x0d\xfc\x76\x55\xb5\xdb\xea\x36\x6c\x01\x66\xa2\x96\x1d\x6a\xd9\xa1\x96\x1d\x6a\xd9\x8d\xad\x96\xdd\xee\x95\xb7\xb6\x8e\x5d\xc7\xa1\x23\x27\xab\x5e\xb7\xbb\xf9\x9b\x2b\xd7\xf5\xb9\x0f\xf6\xa9\x57\xb7\xbb\x0f\x36\xd7\xaa\xeb\xb8\x0f\x50\xa1\x0e\x15\xea\x50\xa1\x0e\x15\xea\x50\xa1\xae\xb3\x0a\x75\x0d\x56\xff\xb5\xea\x74\x5b\x4f\x19\xbd\xa0\xc8\xd1\x66\xad\x19\x71\x85\xbd\xdd\xdd\xbd\xad\xba\xde\x69\xfb\x1d\x35\xf5\x3a\x19\xd1\xf5\x7a\x7a\x1d\x0f\xeb\x59\xab\xe8\xed\xee\x9e\x2d\x15\xf4\xba\x5e\x36\xfb\x5a\x37\x6f\x77\xa7\xd5\x30\x8e\x83\xfd\x79\xf6\xaf\x3f\x5a\x06\x6c\x35\xb5\x06\x3a\xe2\x6c\x65\xb8\x16\x3b\x05\x90\xcc\xd8\x93\x8c\x37\xc7\x4b\xb5\x02\xd9\x6e\x0a\x03\x80\x8c\x1c\x2b\x16\xb5\x0d\x51\x58\x36\xd7\x15\x8b\xb8\x74\xed\x56\x11\x1d\xf0\x1c\xf0\xdc\x00\xf1\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\x1c\xd0\xdc\xe0\xd1\x1c\x8e\xac\x01\x78\x04\x78\x04\x78\x3c\xff\x88\x02\x3c\x56\xbb\x07\xe0\xb1\xd7\xe0\x31\x13\x73\x49\xc7\x79\xe9\xa7\xb4\xe8\xf1\x20\x98\x78\x96\x4c\xe1\x95\x01\x9f\x53\xd1\xd5\x59\x92\x2d\xfc\x04\xe7\xcc\x00\x8c\xcd\x0c\x70\x2e\xf2\xfb\x6a\x3f\xdc\x3f\x7c\xfc\xef\xd5\x1f\x21\x41\x7a\x4f\x06\xe7\x3b\x71\xf8\x04\xae\x3c\x37\x4a\x3f\x7c\x53\xbe\x79\xa3\x17\xeb\xf9\xed\xb0\xdf\xad\x8a\x7d\x6c\xd6\xcd\xbd\x5e\xac\x7f\xbe\xbd\x7f\xf8\xf8\xa5\xee\xa7\x78\xbd\xf6\x7f\xbd\x5c\x47\x52\xda\xf0\xb8\xde\xb2\xff\xf7\xfc\xf6\xd8\x17\xcd\xe2\x44\x19\x54\x86\xd1\x55\xb4\x6d\x35\x3e\xc6\xd6\xce\x2e\x15\x22\x4f\x66\xec\xfe\xe1\xe3\x57\x73\xff\x2d\xaf\x88\xf9\xe5\xda\x5b\xf2\x8b\xbf\x52\xfd\x55\xba\x3d\x25\xa8\x93\xf9\xfa\x9e\x5a\xfa\x39\x35\xa7\x02\x34\x9b\xad\xdb\xa7\x29\xf8\x2a\xf8\x2a\xf8\x2a\xf8\xea\xd8\xf8\x6a\xb3\xd3\xa1\x6a\x19\xeb\xc9\x0e\xee\xc2\xf9\x6a\x8d\x07\xea\x9c\xe7\xab\x9d\x0c\x8a\xef\x71\xa2\x59\x2d\x14\x3e\x59\x8f\xfc\x5e\xf6\x7f\xc9\x98\x29\xe3\x96\x62\x53\x31\x33\xd1\x7b\x1e\xa0\x14\x52\xc2\xae\x5e\x34\x75\x4a\x27\xca\xc5\x49\x7c\x1b\x8b\x39\xa7\x09\x6a\x3d\x58\xe5\x93\xe7\x0c\x4c\xf5\xaf\x86\x15\x89\x72\xb1\x10\xa1\xe4\xb9\x88\x5e\x8b\xb0\xba\x62\xcb\x95\xd1\x8d\xf5\x50\x51\xa7\xb3\x79\xc6\x03\x7a\x6b\x64\x12\x7a\x41\x50\x6c\xda\x14\xb3\xe8\x66\xe9\x52\xe9\x87\x2c\x0f\x17\xd7\xbf\x74\x0d\xb2\x37\x99\x95\x0a\xd1\x4b\xfd\x03\x7a\x4e\x73\x40\x6f\xcd\x33\x1e\x30\xcc\xf4\xcc\x0f\xf4\xc8\x75\x5e\xbf\x1d\x7e\xbf\xbe\x4c\xff\x7d\xe2\x21\x9a\xf5\xcb\xe6\x98\x88\x93\x4d\x7f\x44\x47\x20\x3a\x02\xd1\x11\x88\x8e\x40\x74\x44\x67\xd1\x11\x0d\xf7\x82\xb5\x08\x89\xd3\x6d\x8b\xef\x4b\x19\x59\x69\x24\xb8\x12\x7e\x09\x7a\xc8\x92\x94\xcf\x49\x1d\x3d\x24\x91\x0c\x5e\x2b\xb1\xf8\x6e\xd2\x15\x29\x5d\x7a\xda\xbd\x9d\xfc\x6d\xc2\xbe\x9a\xf5\xcc\x48\x97\x54\xc4\xfa\x65\x29\xf6\x54\xc1\x92\x2c\x7d\xe4\xb1\xcb\x0d\xc8\x96\xe2\x6e\xc6\x23\x67\x2b\x7f\xbb\x32\x1f\x7f\xbb\x62\x33\x19\xf3\x48\xfe\xc7\x6d\x24\x53\xc1\x78\x48\x50\x39\xb9\x33\xc0\x2d\x2c\xcc\x30\x73\xf9\x6b\x55\xfc\xc8\xd8\xa7\x13\xf6\x41\xd2\xe2\x58\x7a\xf4\x24\x5b\x6f\x5b\x11\x42\x90\x1b\xf3\x98\x6c\x94\x24\x7f\x3c\x64\x40\x4d\x0b\xde\xbb\xb6\x6f\x94\x3c\x07\x95\x0f\xd8\xcb\x30\xa3\xa6\xeb\x17\xf6\x31\x79\x61\x73\x9e\x4d\xf9\xbc\xe2\x9b\xf4\x46\x8d\xc8\x66\x49\xb6\xd0\x63\x52\xdb\x5f\x9f\x57\x5a\xb4\xb9\xbb\x48\xf4\x3a\xc5\x9a\x9a\xbe\x95\x5a\x4d\x06\x32\x2c\x4c\x61\xd2\x0a\xa6\xca\x83\x1b\x63\x45\xbc\x8e\x3e\x75\x6a\x60\x52\x1a\x4c\xb7\x8f\x78\x86\xef\xf3\x5c\xaa\x37\x9b\xb0\xfb\x20\x10\xa9\x39\xab\xb9\x6c\xd9\x5d\x9b\x36\x5c\xb3\x5b\x3b\x01\xab\x13\x54\xfd\xc4\xae\x7f\xe6\xc1\xd3\x3c\x4b\x96\x71\xa8\xbf\x45\x39\x23\xf4\xa5\x95\x8e\x33\x12\xd2\xea\xe3\xea\x45\x5c\x0b\xa6\xfe\x4a\x3f\xb1\xeb\x5f\x93\x4c\x94\x2e\xcb\x02\xae\x02\x1e\xea\xd6\xdb\xfe\x31\x29\x45\x74\x3d\x65\x4c\xcf\xb5\x0b\xce\xfc\x35\x0e\x99\x90\xe9\xea\x74\x3f\x8f\xe2\x1c\x71\xb0\x4f\xb3\x71\xd8\x16\xf0\x73\xae\x51\x40\xe8\x4f\x67\xe3\xbb\x1e\xfe\x73\x3a\xdf\xc6\x39\x03\x81\x9a\x75\xd6\x96\x60\xa0\x63\xf5\x4f\x2d\xa8\x03\x56\xde\x13\xd3\xd9\x8a\x24\x63\xa6\xc9\xa5\xdf\x6e\x48\x99\x36\xdb\x72\x21\x99\x5a\xca\x9e\xae\x01\xd5\xf5\xf9\xd3\xb5\xd0\x77\x35\x63\x7a\x5b\xb2\x74\xeb\x27\x40\x18\x77\x59\x66\x4d\x6c\xa7\xeb\xdd\xe1\x0f\x8d\x50\xb7\xbe\x44\x5d\x38\xc8\x11\x78\x1b\xf9\xde\x97\x93\xef\xdd\x6c\x7f\xd9\x95\xf3\x7d\x3a\x43\x0c\xd1\x09\x88\x4e\x40\x74\x02\xa2\x13\x10\x9d\x50\xb7\xf8\x02\x7b\x0f\xa8\x47\x40\x42\x41\x42\x41\x42\x41\x42\x41\x42\x41\x42\xc7\x45\x42\x01\x27\x00\x27\x00\x27\x00\x27\x3a\x87\x13\x7b\x00\xfc\x9e\xe6\x2c\x37\xeb\xc2\xf5\xbc\xe5\x63\x3d\x6e\xbd\xc2\x3a\x1b\x7f\x70\x41\x27\xef\xea\x67\xbf\xe5\xf3\xb9\x7e\x13\xf3\xa4\x5a\x25\xb8\x42\x38\x4c\x92\xa2\x75\xef\x8f\x3e\x47\x71\x37\x55\x6a\xb1\x44\xe6\xe9\x48\xd2\x01\xc7\xee\x0e\xe5\xb0\x9a\x37\x2b\x23\x77\x95\x26\xaa\x65\x6c\x66\x6c\x1b\xc6\xe3\x66\x88\xcc\x7c\xbd\x65\x48\x76\x58\x0e\xe8\x96\xb3\x8e\x4e\xbd\x74\xb4\x92\x2c\x8a\x84\xa5\xf2\x6c\xe8\x6d\xc2\x12\xb9\x34\x3e\xf1\x98\xcf\x45\x66\x9c\x73\x74\xb0\x17\x57\x2a\x09\x24\x59\x9b\xde\x0d\xc6\xc9\x9b\x99\x64\x4c\xc4\xb9\x96\x7f\xce\xfc\x5e\xf0\x27\xdd\x8b\xf9\xa3\x50\xc2\x69\xa8\x72\x5a\x8e\x4b\xdf\x21\x0d\x49\x2e\xaf\x24\x63\x6f\xdf\xfd\xa0\xbf\x9b\xf1\x80\x18\x57\x94\xc4\x73\xa3\x98\xc8\x2d\x15\x24\x71\xce\x65\x6c\x16\x2d\x72\xfb\x14\xdf\x25\xbf\xbf\x25\x70\x6c\xfa\xea\x8d\x82\x79\x12\xf1\x78\x3e\x49\xb2\xf9\x5d\xfa\x34\xbf\x5b\xc6\x32\x48\x42\x71\xf7\x97\x8f\xea\x41\x5f\xe5\x60\x3f\xb2\xed\x9c\x36\x87\xa7\x57\x12\x6b\x74\xca\xa7\xa9\xea\x79\xd7\x40\xf5\xfc\x62\x7c\x65\x03\x69\xcf\xbb\x9d\xed\x31\x61\xbb\x03\x69\xd0\x48\x65\x29\xa9\x9e\x81\xc8\xd2\x37\xec\xb0\x03\x40\x6a\x8a\xe4\x74\x78\x0e\x48\x53\xb9\xb7\xe1\xf0\x0f\x1c\xf9\xc1\x36\x75\x30\x54\x5c\x79\x90\x7b\xab\xe2\x90\x64\x7d\x41\x49\xd6\xc8\x26\x43\x36\x19\xb2\xc9\x90\x4d\x06\x03\x74\xd3\x5b\xd4\xcb\xd4\x8d\x33\x98\x67\xc8\x3c\xd9\x69\x8c\x59\xab\x64\x20\xe6\x98\xf7\x9c\xb7\x9e\x6f\x92\x09\x1e\xae\xa8\xb0\x46\x26\x95\xfe\x5d\xb7\x49\x26\x25\x69\x22\xfe\xa4\xd0\xb1\xa9\xfe\x8b\x07\xf9\x84\xb1\x0f\xfa\xbf\xee\xdf\x17\x5c\x92\xdb\x50\xb1\x20\x5a\xaa\x5c\x64\xc5\x86\x63\x62\x4c\x59\x24\x9f\x04\xbb\xfe\x1f\xbe\x10\x2a\xe5\x81\xb8\xd6\xba\xd2\x69\xa1\x09\x7b\x88\x78\x1c\x0b\x23\x48\x49\xad\xf0\xc8\x08\xa4\xb7\x3f\x1c\xb2\x82\xd3\x33\x9e\x49\x47\xf8\x4e\xf3\x32\x7c\xea\xba\x4f\xb7\x94\x7d\x30\x3d\xa6\xf7\x8e\x54\xb9\xde\xb1\xd1\x55\x4b\x25\x32\x0a\x8b\x2a\x14\xf5\x6b\xc7\x1d\xa5\x1f\x66\xbc\x10\xbb\xc7\x1b\x1c\x1c\x78\x07\xec\x19\x73\x31\x18\xff\xdd\x31\x58\xb9\x5c\xe1\x65\xd3\xfd\x51\xd3\xe5\x14\x98\x9c\x22\x54\x0e\x3a\xb7\xfc\x96\x7e\xfb\xd7\xed\xab\xda\x42\x64\x73\xd1\xe8\x9b\x34\x57\xc5\x5c\x06\xb7\xcd\x7f\xa3\xff\x7e\xb5\xdf\xa4\xf5\xb3\x89\x1c\x49\x79\x96\x4b\x4a\x20\x33\xd1\x54\x87\x48\x93\xd4\x96\x1a\x3f\xbf\xb3\xb7\x13\xb6\xbf\x5d\xdc\x3f\x54\xa3\x9a\x18\x5c\xc0\x23\x77\x01\x5f\x0e\xc8\x5f\xc9\xc5\x70\x2f\x97\xc9\x17\xd2\x8b\x4d\x91\x83\xfe\xdd\x86\x85\xe8\x7b\x72\x80\x99\x24\x61\x1e\xd1\x2f\xe3\x24\xbe\x35\xbf\xa6\x6f\x90\x0f\x5a\xb1\xef\xfe\xae\x92\xf8\xc1\xa4\x62\x7f\xd2\x4b\x9e\xfd\xfb\xab\x5b\x08\x8b\x7f\xfc\xbe\x4f\x11\x06\xcd\xe7\xcd\xaf\x49\x16\x90\x93\x7e\x9e\xd0\xe0\x27\xec\xdb\xd5\x4c\xff\xdb\xb7\x2b\x76\x5f\xe9\x4d\x8a\xf4\x36\x1e\x75\x32\x11\xec\x8b\x7a\xcb\x03\x1a\x00\x4a\xe6\x8d\x64\x60\x7d\x84\x64\x51\x24\x2f\x76\x6c\x4d\xb2\x6b\x2a\x92\x34\x12\x13\x66\xee\x49\x39\xfc\x6e\x4e\x51\xbc\x75\xed\x40\xf8\xdb\x1f\xd2\xbd\xfa\x46\x30\x2c\xcc\x07\x30\x2c\x56\xae\xda\x3b\xc3\x22\x5d\x09\x64\x1e\x88\x69\xb1\x6c\xdd\x17\x95\x46\x3c\x38\x48\xf3\xd9\x9f\x8e\x57\xf5\x21\xa2\x13\x42\x10\x42\x10\x11\x9d\x90\x05\xe6\xef\x15\xc4\x36\xae\x88\xce\xb1\xca\x9c\xe5\x60\xfc\xa7\x6f\xd8\x51\xf1\x8f\x77\xca\x30\xd6\x43\x4a\x10\xee\x45\xee\xcc\x7d\xdc\xbe\xd7\x2e\xc3\xb3\x9c\x18\x0b\x1b\x16\x02\x80\x14\x80\x14\x80\x94\x41\x83\x94\xa3\x76\x8a\x5d\x48\xa5\x66\xab\x18\x9e\x89\x0d\xb0\x02\x7b\xfa\x22\xed\x69\x80\x95\x36\xe7\x0d\xc0\x0a\x3c\x28\x30\x34\xfa\x61\x68\x00\xac\x54\xc0\xca\x91\xde\x82\x5d\x88\x65\x14\x2a\x10\xa0\x05\xc2\x10\xc2\x10\xa0\x05\x32\xc1\xfc\x0d\xd0\x32\x40\xd9\x33\x52\xd0\x42\x47\xf6\x95\x71\x4b\xa7\x80\xc5\x9e\xed\x1c\x87\xf2\x59\x86\x4b\x1e\x95\xcf\x89\xe4\xfe\x34\xf7\xa2\xe1\x93\x52\x82\xf5\x8f\x3e\x35\xfb\x9a\x2e\x73\x5d\x14\xf6\xa8\x54\x6a\xf0\x1a\x8b\xc9\x58\xe5\x82\x57\xfc\xa6\xab\x0a\xec\x65\x87\x17\xee\xb7\x95\x73\xef\x70\x78\x63\x5f\x33\x48\xe9\xec\xd1\x0f\xcf\x22\xbe\xf4\xa3\x1a\x69\x1c\x2f\xe5\xbc\x46\x94\xcd\x1a\x71\xd9\xac\xdd\x88\x6b\x57\xc9\xac\xad\x7e\xb4\x16\xf0\x1d\x0a\x65\xa1\x50\x16\x0a\x65\xa1\x50\xd6\xd8\x0a\x65\xed\x5e\x79\x6b\x8b\x64\x75\x1c\x2c\x71\xb2\xd2\x58\xbb\x9b\xbf\xb9\x2c\x56\x9f\xfb\x60\x9f\x62\x58\xbb\xfb\x60\x73\x21\xac\x8e\xfb\x00\xe5\xaf\x50\xfe\x0a\xe5\xaf\x50\xfe\x0a\xe5\xaf\x3a\x2b\x7f\xd5\x60\xf5\x5f\x2b\x7d\xb5\xf5\xd0\xc6\x0b\x8a\x95\x6c\xd6\x9a\x11\x97\xef\xda\xdd\xdd\xdb\x4a\x77\x9d\xb6\xdf\x51\xb0\xab\x93\x11\x5d\x2f\xd6\xd5\xf1\xb0\x9e\xb5\x44\xd7\xee\xee\xd9\x52\x9e\xab\xeb\x65\xb3\xaf\x45\xb9\x76\x77\x5a\x0d\xcf\x38\xd8\x9f\x67\xff\xfa\xe3\x38\x38\x56\x73\x16\x7b\x47\x8c\xac\x0c\xc6\x62\xb7\xe1\x27\x33\xf6\x24\xe3\xb0\x6d\x40\x76\x53\x28\x7c\xb2\x62\xac\x1a\xd4\x46\x42\x61\xba\x5c\x57\x4c\xde\xd2\xb5\x8f\xc1\x6b\x40\x6b\x40\x6b\x43\x43\x6b\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\xc0\x6a\x43\xc3\x6a\x38\x52\xa5\xf9\xe8\x00\x13\x02\x13\x02\x13\x02\x13\x02\x13\x02\x13\x7a\x4c\x38\x15\x39\x7f\x7b\x77\x10\x13\x3c\x4b\x56\xed\xca\xc0\xcf\x45\x5e\x55\xef\x66\x8c\xb7\x50\xbd\xb9\xc8\xd7\x98\x1e\x75\xc2\xfd\xc3\xc7\x2f\x75\xbf\x47\x52\xf1\x9e\xc4\xad\xd4\x91\x94\x81\x38\x3a\xec\x46\xd3\xa5\x74\x81\x37\xe5\x87\xd8\xeb\xbd\xdb\x90\xba\xda\x61\x89\xf4\x52\x01\xd9\x4a\xb2\xea\x96\x37\x66\x43\xb5\x74\x6a\xc1\x2f\xfe\x72\x28\x9e\xce\x36\x75\x3d\x88\x10\x88\x10\x88\x10\x88\xd0\xd8\x88\x50\xb3\x13\x60\x6a\xa9\xd0\xc9\x0e\xe7\xc1\x19\x4a\x8d\x07\xea\x9c\x67\x28\x9d\x0c\xe3\xed\x71\x6a\x51\x2d\xc6\x3a\x59\x8f\xfc\x5e\xb6\xdf\x65\xcc\x94\x31\xab\xd9\x54\xcc\x4c\xbc\x91\x77\xf9\x16\x52\xc2\xae\x5e\x34\x75\x4a\xa7\x46\xc5\x49\x7c\x1b\x8b\x39\xa7\x09\x6a\x2d\xf0\xf2\xe9\x52\x06\xff\xf8\x57\xc3\x2a\x45\xb9\x58\x88\x50\xf2\x5c\x44\xaf\x45\x20\x50\xb1\xe5\xca\xe8\xc6\x5a\xd8\xa6\x84\xff\x3c\xe3\x01\xbd\x35\x32\x09\xbd\x20\x28\x36\x6d\x8a\xb2\x72\xb3\x74\xa9\xf4\x43\x96\x87\x8b\xeb\x5f\xba\x06\xd9\x9b\xcc\x4a\x85\x87\xa5\xfe\x01\x3d\xa7\x39\x1f\xb3\xe6\x19\x0f\x18\x66\x7a\xe6\x07\x7a\xe4\x3a\xaf\xc5\x0e\xbf\x45\x5f\xa6\xff\x3e\x04\xb7\x59\xbf\x6c\xa6\xb8\x27\x9b\xfe\xe0\xb9\xe0\xb9\xe0\xb9\xe0\xb9\xe0\xb9\x9d\xf1\xdc\x86\x7b\xc1\x1a\xd3\x3d\xdd\xb6\xf8\xbe\x94\x1e\x92\x46\x82\x2b\xe1\x97\xa0\x87\x2c\x49\xf9\x9c\xd4\xd1\x43\x12\xc9\xe0\xb5\x12\x3d\xec\x26\x5d\x91\x5f\xa2\xa7\xdd\xdb\xc9\xdf\x26\xec\xab\x59\xcf\x8c\x74\x49\x45\xac\x5f\x96\x62\x4f\x15\x2c\xc9\xd2\x47\x1e\xbb\x68\xe6\x6c\x29\xee\x66\x3c\x72\xb6\xf2\xb7\x2b\xf3\xf1\xb7\x2b\x36\x93\x31\x8f\xe4\x7f\xdc\x46\x32\x15\x8c\x87\x04\xc5\x92\x3b\x03\x0c\xc2\xc2\x0c\x33\x97\xbf\x56\xc5\x8f\x8c\x7d\x3a\x61\x1f\x24\x2d\x8e\xa5\x47\x4f\xb2\xf5\xb6\x15\x08\x34\x37\xe6\x31\xd9\x28\x49\xfe\x78\xc8\x80\x9a\x16\xbc\x77\x6d\xdf\x28\x79\x0e\x3a\xbd\x7b\x2f\xc3\x8c\x9a\xae\x5f\xd8\xc7\xe4\x85\xcd\x79\x36\xe5\xf3\x8a\x83\xd2\x1b\x35\x22\x9b\x25\xd9\x42\x8f\x49\x6d\x7f\x7d\x5e\x69\xd1\xe6\xee\x22\xd1\xeb\x14\x6b\x6a\xfa\x56\x6a\x35\x19\xc8\xb0\x30\x85\x49\x2b\x98\x43\xd6\xdd\x18\xeb\xcd\xda\xee\xa4\x4e\x0d\x4c\x4a\x83\xe9\xf6\x11\xcf\x20\x7d\x64\x7e\xf5\x66\x13\x76\x1f\x04\x22\x35\xe7\xb1\x96\x2d\xbb\x6b\xd3\x86\x6b\x76\x6b\x27\x60\x75\x82\xaa\x9f\xd8\xf5\xcf\x3c\x78\x9a\x67\xc9\x32\x0e\xf5\xb7\x28\xca\x9d\xbe\xb4\xd2\x71\x46\x42\x5a\x7d\x5c\xbd\x88\x6b\xc1\xd4\x5f\xe9\x27\x76\xfd\x6b\x92\x89\xd2\x65\x59\xc0\x55\xc0\x43\xdd\x7a\xdb\x3f\x26\x09\x82\xae\xa7\x8c\xe9\xb9\x76\xc1\x99\xbf\xc6\x21\x13\x32\x5d\x9d\xee\xe7\x51\x9c\x23\x0e\x56\x68\x36\x0e\xdb\x02\x16\xce\x35\x0a\x08\x5d\xe8\x6c\x7c\xd7\xc3\x17\x4e\xe7\xdb\x38\x67\x20\x43\xb3\xce\xda\x12\xcc\x70\xac\xfe\xa9\xa5\x75\xa0\xcc\x7b\x62\x3a\x5b\x5c\x60\xf4\x70\xb9\x74\x81\x0d\x89\x9d\x66\x6f\x2e\x74\x53\x2f\x73\x3c\x57\x9a\xb5\x9e\xe8\xd9\x7a\x2a\xba\x71\x9c\x65\xd6\xd8\x76\x0a\x7f\x3d\x0b\x7d\x0b\xf9\xd6\x97\xd8\x18\x2c\x72\x04\xed\x46\xc2\xea\xe5\x24\xac\x36\xdb\x6e\x76\x25\xad\x9e\xce\x2e\x43\xb0\x02\x82\x15\x10\xac\x80\x60\x05\x04\x2b\xd4\x2d\xbe\xa0\xe0\x03\xea\x11\x80\x51\x80\x51\x80\x51\x80\x51\x80\x51\x80\xd1\x71\x81\x51\xb0\x0a\xb0\x0a\xb0\x0a\xb0\x8a\xce\x59\xc5\x1e\x3c\xbf\xa7\x29\x98\xcd\xba\x70\x3d\x0d\x73\x54\x75\xcc\x37\xfe\xe0\x82\x8e\x09\xdd\xa3\x72\x28\xb9\xf8\x27\x2b\x85\x14\x41\x9a\xae\x7a\x5b\x98\x6f\x27\x5d\x3a\xe0\x18\xd1\xa1\x1c\xc5\xf1\x66\x65\xf8\xae\xd2\x44\xb5\x8c\xd2\x8c\xa9\xc3\x78\xdc\x0c\x9b\x99\xaf\x77\x01\xce\x86\x59\x17\x7e\x75\x39\x41\x71\xf8\xcb\x49\x6c\x42\x71\x78\x14\x87\xaf\x79\x98\xc1\x4b\xa2\x51\x54\x88\x3f\xbc\x51\xef\x76\x36\xca\x04\xfa\x0e\xa9\x55\x63\x56\xae\xa4\x89\x86\xa4\x5c\xdf\xb0\x23\xce\x12\xa9\xa9\xf4\xd1\xe1\x91\x22\x4d\x65\xe1\xb6\x73\x44\x70\x7a\x08\xdb\xd4\xcb\x10\x7a\xe5\x41\xee\xad\xd0\x43\xbe\xf6\x05\xe5\x6b\x23\x31\x0d\x89\x69\x48\x4c\x43\x62\x1a\x6c\xd4\x4d\x6f\x51\x2f\xb3\x40\xce\x60\xb7\x21\x89\x65\x9f\x24\x96\x41\x99\x68\xde\xe1\xde\x7a\xea\x4a\x26\x78\xb8\xa2\xc7\x1a\x59\x58\xfa\x77\x27\xc8\x57\x29\x29\x15\xf1\x27\x45\xa1\x4d\xf5\x5f\x3c\xc8\x27\x8c\x7d\xd0\xff\x75\xff\xbe\xe0\x92\x1c\x8d\x8a\x05\xd1\x52\xe5\x22\x2b\xf6\x1f\x13\xae\xca\x22\xf9\x24\xd8\xf5\xff\xf0\x85\x50\x29\x0f\xc4\xb5\x96\x99\x4e\x1a\x4d\xd8\x43\xc4\xe3\x58\x18\x7d\x4a\xe2\x85\x47\x46\x2f\xbd\xfd\xe1\x90\x05\x9d\x9e\xf1\x4c\xb2\xc2\x77\x9a\x57\xe5\x53\xd7\x7d\xba\xa5\xec\x83\xe9\x31\xbd\x95\xa4\xca\xf5\x8e\x0d\xd4\x5a\x2a\x91\x51\x84\x55\x21\xb0\x5f\x3b\xee\x28\xfd\x30\xe3\xe5\xe1\x3d\xde\xef\xe0\xe8\x3b\x6a\x1f\x99\x8b\x61\xf9\xf9\x8e\x21\xd4\x28\x7e\xb1\xd2\xcc\xb3\x11\x77\x8a\x7d\x39\xe8\xd0\xf4\x5b\xfa\xed\x5f\xb7\x2f\x72\x0b\x91\xcd\x45\xa3\x6f\xd2\x84\x15\x73\x19\xdc\x36\xff\x8d\xfe\xfb\xd5\x7e\x93\x96\xd3\x26\x12\x25\xe5\x59\x2e\x29\x35\xcd\xc4\x69\x1d\x22\x57\xd2\xda\x02\xcb\xe3\x0a\x13\xd8\xae\xff\x1f\xaa\x41\x53\x0c\x5e\xe2\x91\x7b\x89\x2f\x27\x1c\x60\x25\xd5\xc3\xbd\x5c\x26\x1d\x49\xaf\x38\x45\x8a\xfb\x77\x1b\x56\xa3\xef\xc9\x47\x66\x72\x90\x79\x44\xbf\x8c\x93\xf8\xd6\xfc\x9a\xbe\x41\x6e\x6a\xc5\xbe\xfb\xbb\x4a\xe2\x07\x93\xe9\xfd\x49\xaf\x7b\xf6\xef\xaf\x6e\x35\x2c\xfe\xf1\xfb\x3e\xc5\x29\x34\x9f\x37\xbf\x26\x59\x40\x7e\xfc\x79\x42\x83\x9f\xb0\x6f\x57\x33\xfd\x6f\xdf\xae\xd8\x7d\xa5\x37\x29\x90\xdc\x38\xdd\xc9\x6c\xb0\x2f\xea\x2d\x0f\x68\x00\x28\x57\x38\x92\x81\x75\x23\x92\x95\x91\xbc\xd8\xb1\x35\xb9\xb4\xa9\x48\xd2\x48\x4c\x98\xb9\x27\x1d\x11\xe0\xe6\x14\x85\x73\xd7\x0e\x84\xbf\xfd\x21\xdd\xab\x6f\x04\x63\xc3\x7c\x00\x63\xa3\xee\xaa\xfd\x34\x36\xd2\xde\x96\xd4\xdf\x6d\x6e\x2c\x5b\xf7\x59\xa5\x11\x0f\x0e\xd2\x81\xf6\xa7\x23\x57\x82\x08\x18\x85\x42\x6c\x30\x4c\x97\xa3\x10\x7b\x24\xc4\xa0\x17\xfc\x27\xe7\xd6\x0b\xa3\x0c\x18\x1d\xb5\x08\x5a\x0e\xcb\xe3\xfa\x86\x1d\x1f\x59\x79\xa7\x0c\xb8\x3d\xa4\x6c\xe2\x5e\x10\xd0\xdc\xc7\x6d\x88\x1d\xe0\x40\x4b\xa0\xb1\xec\x61\x85\x00\x93\x59\xe9\x44\x30\x19\x30\x99\x41\x33\x99\xa3\x76\x8f\x46\x74\xa6\x66\xfb\x18\x9e\x65\x0e\x46\x03\x0b\xfc\x22\x2d\x70\x30\x9a\x36\xe7\x0d\x18\x0d\x7c\x2e\x30\x3e\x4a\x6d\xed\x85\xf1\x01\x46\xb3\xce\x68\x8e\xf4\x2a\x34\xa2\x35\xa3\x50\x86\x60\x36\x50\x8c\x0d\x86\xe9\x72\x14\x63\x8f\x84\x19\xf4\x83\xff\xe4\xdc\xfa\x01\xcc\x66\x68\xa2\x68\xf4\xcc\x86\x8e\x23\x2c\x93\x9b\x4e\x59\x8d\x3d\xb7\x3a\x0e\xe5\xb3\x0c\x97\x3c\x2a\x9f\x81\xc9\xfd\x49\xf5\x45\x17\x4c\x4a\x09\xe0\x3f\xfa\xd4\xf1\x6b\xba\xcc\x75\x51\xb4\xa4\x52\x85\xc2\xcb\x30\x26\x63\x95\x0b\x5e\x71\xb7\xae\x8a\xb4\x97\x26\xce\xbb\xdf\x56\x8e\xf3\xc3\xe9\x94\x7d\x4d\x73\xa5\xc3\x55\x3f\x3c\x8b\x18\xc7\x50\xba\xc9\x7d\x51\x67\x51\xa2\x42\xd8\x88\x2b\x84\xed\x06\x65\xbb\xaa\x83\x6d\x75\xc4\xb5\x00\x01\x51\x13\x0c\x35\xc1\x50\x13\x0c\x35\xc1\xc6\x56\x13\x6c\xf7\xca\x5b\x5b\x0f\xac\xe3\x90\x8b\x93\x55\x01\xdb\xdd\xfc\xcd\x15\xc0\xfa\xdc\x07\xfb\xd4\xfd\xda\xdd\x07\x9b\x6b\x7e\x75\xdc\x07\xa8\xf4\x85\x4a\x5f\xa8\xf4\x85\x4a\x5f\xa8\xf4\xd5\x59\xa5\xaf\x06\xab\xff\x5a\x95\xaf\xad\x67\x4c\x5e\x50\xc4\x65\xb3\xd6\x8c\xb8\x52\xd9\xee\xee\xde\x56\xa5\xec\xb4\xfd\x8e\xda\x64\x9d\x8c\xe8\x7a\x5d\xb2\x8e\x87\xf5\xac\xd5\xc8\x76\x77\xcf\x96\x4a\x64\x5d\x2f\x9b\x7d\xad\x3f\xb6\xbb\xd3\x6a\xc8\xc6\xc1\xfe\x3c\xfb\xd7\x1f\x2d\x00\xb3\x9a\x43\xe4\x3b\xe2\x66\x65\x58\x16\xbb\x5d\x3f\x99\xb1\x27\x19\x87\x6d\x43\xb3\x9b\x42\xe6\x93\x29\x63\x25\xa1\xb6\x14\x0a\xfb\xe5\xba\x62\xf7\x96\xae\x7d\x34\x72\x03\x6e\x03\x6e\x1b\x24\x6e\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x03\x6a\x1b\x24\x6a\xc3\x61\x2d\xcd\x47\x07\xe8\x10\xe8\x10\xe8\x10\xe8\x10\xe8\xf0\x12\xd1\x61\xaa\xee\x0e\x02\x81\x67\xc9\xbb\x5d\x19\xde\x39\x95\xc8\x9c\x25\xd9\xc2\x4f\x67\xce\x0c\x94\xd8\x4c\xf3\xe6\x22\xbf\x4f\x53\x75\xff\xf0\xf1\xbf\x57\xbf\x89\x1c\xe3\x3d\x71\x9a\xef\xc4\xc1\xc3\xb4\xca\xb7\xdf\x94\xef\x58\xf3\xc2\x3c\xbf\x1d\xf6\x3b\x53\xb1\x6b\xcd\xea\xb7\xfb\x85\xf9\xe7\xdb\xfb\x87\x8f\x5f\xea\xbe\x8f\xd7\x66\xff\xd7\xc6\x75\x24\x65\xea\x8e\xe0\xed\xf9\x7f\xcf\x6f\xf7\x7b\x81\xb4\xb1\x9e\x25\xda\x54\xce\xc4\xb3\x24\x61\xd6\x69\x40\x8a\xf1\x78\x66\xd6\x67\xe2\x4c\x6a\x17\x8b\xf2\x8b\x7f\x9a\x2f\xf6\x69\xb6\xbc\x10\xfa\x52\xe6\x8d\x58\xff\xd9\xaf\x49\x76\x1f\x45\xbe\xea\x65\x2f\xde\x13\x84\x85\xd0\x0b\x39\xd1\x53\x4f\xbf\x7e\xeb\xa3\x36\xce\xb7\x70\x77\x00\x48\x7b\xa9\xd6\xa9\xaa\x8f\xf6\xd8\xfa\x62\xad\x46\x7d\x20\xe0\x03\x01\x1f\x08\xf8\x40\xc0\x07\x02\x3e\x10\xf0\x81\x80\x0f\x04\x7c\xec\xb3\xda\x22\xe0\x03\x01\x1f\x08\xf8\x40\xc0\x07\x02\x3e\x10\xf0\x81\x80\x8f\x8b\x0b\xf8\x40\x80\x04\x02\x24\x10\x20\x31\x8c\x11\x45\x80\x44\xb5\x7b\x10\x20\xd1\xf3\x00\x89\xe7\xb7\x77\x21\x17\x0b\x6d\x39\xe4\xe7\xa4\x54\xef\xe9\x21\xbe\x56\x8b\xee\x6d\x84\x53\xfe\xdb\x60\x52\xab\xbd\xde\x3f\x26\xe5\x07\x0b\x28\xaa\xe6\x6b\xad\xa0\xa8\xba\xb7\x07\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x0a\x04\x6a\x8f\x65\x1f\x04\x0a\x04\x0a\x04\x6a\x18\x23\x0a\x02\x55\xed\x1e\x10\xa8\x01\x10\x28\x91\x46\xc9\xab\xd6\x8f\x67\x45\x50\xfe\x29\x9a\x31\x28\xff\x75\x40\xa8\xd5\x7e\xef\x21\x84\xf2\xa3\x05\x0a\x55\xf3\xb5\x76\x28\x54\xdd\x0b\x04\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\x05\x0c\xb5\xc7\xb2\x0f\x0c\x05\x0c\x05\x0c\x35\x8c\x11\x05\x86\xaa\x76\x0f\x30\x54\xff\x31\x54\xec\x09\x8e\x29\x23\x49\x7f\xff\xef\xae\xe3\xfc\x8c\xda\x69\x17\x54\x99\x6b\xb2\x40\xdf\x35\x70\x93\x74\xaf\x83\xfc\xcc\x15\xdc\x51\x7e\xee\x32\x9e\x51\x85\xdb\x2f\xb6\xc1\x11\xcf\x56\x51\x88\x19\xc1\x69\x12\xbe\xae\x22\x1b\x37\x84\x75\x9f\x75\x72\xf0\xe4\x7b\x6a\xf0\x67\xea\x42\xd5\x90\xef\x6c\x07\x3b\xf0\xed\xc2\xb7\x0b\xdf\x2e\x7c\xbb\x63\xf3\xed\x6e\xd9\x79\x77\xf9\x77\xb7\xab\xb8\xed\x3b\xf0\x5e\x6b\xef\xbf\x74\xc7\x59\xab\xf6\x86\xc9\x38\xd4\x4d\x71\x56\x7b\xa5\x6d\x65\x8e\x3a\x15\x2c\xd5\xbd\xa5\xb4\x01\xc8\xee\x63\x26\x63\xb3\xb2\x24\x19\x5b\xc6\x7e\x71\x0a\x59\x98\xbd\x7e\x59\xc6\x2c\x94\x99\xde\x17\x9f\x85\x9f\xf1\x7a\xf9\x24\x1f\x84\x7d\xe5\xdd\xdc\xb0\x1d\xcc\x66\xcb\x8c\xde\xb2\x34\x4b\x02\xa1\xc8\x59\x60\xe5\xa3\x9d\x65\x13\xf6\x4f\xba\x23\x8d\x16\xcd\x9d\x1f\xd9\x2d\xbb\x8f\xa2\x1f\xc9\x15\x10\xea\x55\x7a\x19\xeb\x81\xd7\x42\xcc\x4d\x49\x7b\x39\x11\x1e\x30\x50\xa6\x2d\xe7\x19\xa6\x93\x39\xe4\x9b\x75\xc5\x66\xa7\xfc\xc9\x7a\xe4\xf7\xb2\x65\x21\xb5\x55\x4f\x82\x9f\x4d\xc5\xcc\x44\x0e\x78\xe7\x4d\x21\x25\xec\xea\x45\x53\x67\x29\xcc\xe6\x30\xd5\x9a\x3a\xbe\x8d\xc5\x9c\xd3\x04\xb5\xb6\x81\x36\x63\xdc\x0e\x6a\x1c\xb9\xfe\xd5\xb0\x9a\x51\x2e\x16\x22\x94\x3c\x17\xd1\x6b\x81\xf4\x8b\x2d\x57\x46\x37\x56\xfb\x53\xa7\xb3\x79\xc6\x03\x7a\x6b\x64\x12\x7a\x41\x50\x6c\xda\x14\x2f\xe1\x66\xe9\x52\xe9\x87\x2c\x0f\x17\xd7\xbf\x74\x0d\xb2\x37\x99\x99\x35\xd0\x5d\x62\x62\x9e\x73\x21\x78\x5c\xfb\x8c\x07\x0c\x33\x3d\xf3\x03\x3d\x72\x9d\x3d\xb5\xc3\xa2\xea\xcb\xf4\xdf\x87\xc5\x34\xeb\x97\xcd\x3c\xe6\x64\xd3\x1f\x64\x06\x64\x06\x64\x06\x64\x06\x64\xa6\x33\x32\xd3\x70\x2f\x58\xa3\x33\xa7\xdb\x16\xdf\x8b\x34\x13\x5a\x94\x84\x3f\xb2\x34\x12\x5c\x09\xbf\x04\x3d\x64\x49\xca\xe7\xa4\x8e\x1e\x92\x48\x06\xaf\x95\x38\x40\x37\xe9\x42\x7f\x01\x3d\xed\xde\x4e\xfe\x36\x61\x5f\xcd\x7a\x66\xa4\x4b\x2a\x62\xfd\xb2\x14\x7b\xaa\x60\x49\x96\x3e\xf2\xd8\xc5\x25\x66\x4b\x71\x37\xe3\x91\xb3\x95\xbf\x5d\x99\x8f\xbf\x5d\xb1\x99\x8c\x79\x24\xff\xe3\x36\x92\xa9\x60\x3c\x24\x77\x7d\x72\x67\x5c\x99\x61\x61\x86\x99\xcb\x5f\xab\xe2\x47\xc6\x3e\x9d\xb0\x0f\x92\x16\xc7\xd2\xa3\x27\xd9\x7a\xdb\x0a\x38\x93\x1b\xf3\x98\x6c\x94\x24\x7f\x3c\x64\x40\x4d\x0b\xde\xbb\xb6\x6f\x94\x3c\x75\x8e\xd1\x76\x0d\x33\x6a\xba\x7e\x61\x1f\x93\x17\x36\xe7\xd9\x94\xcf\x2b\xae\x4a\x6f\xd4\x88\x6c\x96\x64\x0b\x3d\x26\xb5\xfd\xf5\x79\xa5\x45\x9b\xbb\x8b\x44\xaf\x53\xac\xa9\xe9\x5b\xa9\xd5\x64\x20\xc3\xc2\x14\x26\xad\x40\xce\x09\x3f\xc6\x8a\xaa\x68\xd1\xa7\x4e\x0d\x4c\x4a\x83\xe9\xf6\x11\x4f\x47\x7c\x8c\x6d\xf5\x66\x13\x76\x1f\x04\x22\xcd\x69\x6f\x2a\x5b\x76\xd7\xa6\x0d\xd7\xec\xd6\x4e\xc0\xea\x04\x55\x3f\xb1\xeb\x9f\x79\xf0\x34\xcf\x92\x65\x1c\xea\x6f\x51\xbc\x2a\x7d\x69\xa5\xe3\x8c\x84\xb4\xfa\xb8\x7a\x11\xd7\x82\xa9\xbf\xd2\x4f\xec\xfa\xd7\x24\x13\xa5\xcb\xb2\x80\xab\x80\x87\xba\xf5\xb6\x7f\x4c\x38\x33\x5d\x4f\x19\xd3\x73\xed\x82\x33\x7f\x8d\x43\x26\x64\xba\x3a\xdd\xcf\xa3\x38\x47\x8c\x51\x9b\x8d\xc3\x36\x94\x7a\xae\x51\x00\x54\xed\x6c\x7c\xd7\xc1\xea\xe9\x7c\x1b\xe7\x44\xac\xcd\x3a\x6b\x0b\x66\x3d\x56\xff\xd4\x72\x3b\xd4\x87\xdb\x13\xd3\x7d\xcd\x79\xbe\x6c\xca\xe7\x46\x95\x7f\x65\xf6\xe2\x42\x27\x75\x9b\x8b\xd5\x5a\x71\xaa\x61\x54\xab\x6b\x1b\x6c\x23\xcb\xec\x72\xb2\xcc\x9a\xed\x2c\xbb\x32\xcd\x4e\x67\x82\x21\x2e\x01\x71\x09\x88\x4b\x40\x5c\x02\xe2\x12\xea\x16\x5f\x00\xef\x01\xf5\x08\x18\x28\x18\x28\x18\x28\x18\x28\x18\x28\x18\xe8\xb8\x18\x28\xb0\x04\xb0\x04\xb0\x04\xb0\x44\xe7\x58\x62\x0f\x74\xdf\xd3\x3c\xb0\x66\x5d\xb8\x9e\x0b\x76\xac\xc7\xad\x57\x40\x67\xe3\x0f\x2e\xf4\xbc\xbe\x75\x37\x3e\xce\xed\xab\xf9\x5a\xbf\x58\xd1\x01\xe7\xf7\x59\xad\xa8\xdf\x72\x5a\x47\xf4\x98\x30\x15\x24\xa9\xb8\x61\x6a\x19\x3c\xea\x85\x87\x16\x76\xc1\x17\x66\x55\x4a\xb3\x84\xb4\x69\x5d\x2e\x69\xca\xf3\xc7\xfa\x54\x52\x9f\xcf\x59\xfd\x58\x0b\x2d\x99\x89\xd0\x2e\x0f\x95\xcf\xba\xcd\x57\x1e\xca\x61\x06\xf6\xaf\x3f\x8a\x41\x4e\x54\xcb\x44\xd0\xd8\x69\x8c\xef\x07\xff\xcc\xaf\xba\xc1\x7f\x87\xe5\xb5\x6e\x99\x4c\x5d\x2d\x8a\xad\x24\xba\x22\xd9\xaa\x3c\xea\xbd\x4d\xb6\x22\xa7\xcc\x27\x1e\xf3\xb9\xc8\x8c\x7b\xd1\xac\x9a\x4a\x25\x81\x24\x7b\xd9\x3b\xf2\x38\xf9\x63\x93\x8c\x89\x38\xd7\x02\xd6\x39\x10\x16\xfc\x49\xf7\x62\xfe\x28\x94\x70\x2a\xb0\x9c\x52\xe4\x52\x8f\x48\x05\x93\xd3\x2e\xc9\xd8\xdb\x77\x3f\xe8\xef\x66\x3c\x20\x4a\x17\x25\xf1\xdc\x68\x3e\x72\xac\x05\x49\x9c\x73\x19\x9b\xa5\x8a\x1c\x57\xc5\x77\x89\x5c\x58\x86\xc8\xa6\xaf\xde\xac\x99\x27\x11\x8f\xe7\x93\x24\x9b\xdf\xa5\x4f\xf3\xbb\x65\x2c\x83\x24\x14\x77\x7f\xf9\xa8\x1e\xf4\x55\x0e\xf6\x84\xdb\xce\x69\x73\x78\x7a\x25\x12\x07\xab\xdd\x9a\xea\xb6\x77\x0d\x74\xdb\x2f\xc6\xab\xd7\xb3\xe7\x7e\xb7\xf3\xb9\x4d\x08\x71\xcf\x1e\x7c\x4c\x42\x99\x84\x49\xaf\x85\xf2\x1b\xd6\xc2\xd9\x23\xe6\xf3\xff\x3d\xd1\x11\x24\x7b\x8a\xb2\xf2\xb1\x23\xfd\x10\x65\x03\x39\x6c\x04\x1a\xac\x3c\xc8\xbd\xd5\x60\x48\xef\xbe\xa0\xf4\x6e\xe4\xb1\x21\x8f\x0d\x79\x6c\xc8\x63\x83\xf9\xb8\xe9\x2d\xea\x65\xd2\xc8\x79\x8c\x31\xe4\xbc\x6c\xcc\x79\xe9\xb7\x51\xe6\x1d\xdb\xad\x67\xba\x64\x82\x87\x2b\x82\x6b\x2f\x63\x4a\xff\xfe\x24\xe9\x2d\x25\x51\x22\xfe\xa4\xa0\xb5\xa9\xfe\x8b\x07\xf9\x84\xb1\x0f\xfa\xbf\xee\xdf\x17\x5c\x92\xbb\x4f\xb1\x20\x5a\xaa\x5c\x64\xc5\x56\x63\xa2\x5b\x59\x24\x9f\x04\xbb\xf6\x0f\x7c\xad\x15\xa5\x53\x41\x13\xf6\x10\xf1\x38\x16\x46\x8a\x92\x4e\xe1\x91\x91\x46\x6f\x7f\x38\x64\xed\xa6\x67\x3c\x93\x82\xf0\x9d\xe6\x05\xf8\xd4\x75\x9f\x6e\x29\xfb\x60\x7a\x4c\xef\x1a\xa9\x72\xbd\x63\xe3\xba\x96\x4a\x64\x14\x90\x55\x68\xe9\xd7\x8e\x3b\x4a\x3f\xcc\x78\xf1\x79\xbf\xb7\x36\x38\xea\x2a\xbb\xc2\x5c\xf4\xdc\x4f\x77\x0c\xd0\x26\x26\x63\x5d\x24\xbb\x9e\xa3\x09\xb4\xee\x0b\xaf\x06\xa8\x1f\x1c\xa8\xa7\x78\x9f\x46\x8a\x66\x75\x79\xbe\xa5\xdf\xfe\x75\xfb\x4a\xbd\x10\xd9\x5c\x34\xfa\xa6\xca\x33\x9e\x8b\xb9\x0c\x6e\x9b\xff\x46\xff\xfd\x6a\xbf\x49\x7b\x42\x13\xc5\x95\xf2\x2c\x97\x94\x8e\x67\x62\xd3\x8e\x51\x5f\x74\xeb\x3e\x79\xb2\xbb\x0a\x2f\xd8\x62\xb9\x3c\x54\x43\xc6\x18\xfc\xdb\x23\xf7\x6f\x5f\x4e\x8c\xc1\x4a\xa2\x8b\x7b\xb9\x4c\x32\x96\x5e\x7b\x8a\x04\xff\xef\x36\xac\x4b\xdf\x93\x77\xcf\x64\x60\xf3\x88\x7e\x19\x27\xf1\xad\xf9\x35\x7d\x83\x1c\xec\x8a\x7d\xf7\x77\x95\xc4\x0f\x26\xcf\xfd\x93\x5e\x01\xed\xdf\x5f\xdd\xba\x58\xfc\xe3\xf7\x7d\x0a\x7e\x68\x3e\x6f\x7e\x4d\xb2\x80\x08\xc4\x3c\xa1\xc1\x4f\xd8\xb7\xab\x99\xfe\xb7\x6f\x57\xec\xbe\xd2\x9b\x14\x46\x6f\x70\x01\x59\x41\xf6\x45\xbd\xe5\x01\x0d\x00\x65\x4a\x47\x32\xb0\x0e\x50\x32\x9a\x92\x17\x3b\xb6\x26\x93\x38\x15\x49\x1a\x89\x09\x33\xf7\xa4\x03\x12\xdc\x9c\xa2\x60\xf6\xda\x81\xf0\xb7\x3f\xa4\x7b\xf5\x8d\x60\x3b\x99\x0f\x60\x3b\x9d\x37\xc8\x61\x25\x04\xbc\xd7\xd6\xd3\xb2\x75\x87\x5a\x1a\xf1\xe0\x28\x55\x67\x2f\x71\x09\xba\x0e\x61\xa3\x90\x74\x17\x25\xe9\x7a\xa4\x9c\xb0\xc1\xfb\x4f\x10\x36\x7a\x19\xc2\x64\xd9\x73\xa7\xee\x1b\xb6\x6f\xf0\x65\xc8\xc5\x42\xbf\x22\xf9\x79\xea\xbd\xbd\xa7\xdb\x7f\xad\x3a\xcb\xf7\x2c\xf3\x56\x7b\x0d\x04\x5c\xe2\x14\x35\x9c\xa2\x86\x53\xd4\x70\x8a\x1a\x4e\x51\x3b\x8b\x49\x02\xcb\xb1\xf1\x40\xa1\xba\x5b\x9f\x0e\xbb\x43\xf8\xff\x05\x85\xff\xe3\x64\x43\x9c\x6c\x88\x93\x0d\x71\xb2\x21\x4e\x36\xc4\xc9\x86\x38\xd9\x10\x59\x71\xc8\x8a\x43\x56\x1c\xb2\xe2\x56\x67\x24\xaa\xbb\xe1\x18\x55\x1c\xa3\x8a\x63\x54\x07\x7e\x8c\x6a\x2d\xa5\x03\xb0\x47\xa6\xeb\xea\x0f\x7a\x51\xdd\xad\x0e\xeb\xf6\xb8\xa8\x5b\x13\x92\x5d\x57\xcb\xed\x28\x7a\x8d\x12\x6e\x28\xe1\x66\x3e\x42\x09\x37\x04\x1f\x20\xf8\x00\xc1\x07\x08\x3e\x40\xf0\x01\xa8\x36\x40\xe7\xee\x1e\x01\xe8\x04\xe8\x04\xe8\x04\xe8\x04\xe8\xbc\x60\xd0\x09\xf6\x00\xf6\x00\xf6\x00\xf6\x80\x12\x6e\x28\xe1\x86\x12\x6e\xfe\x93\xc6\x79\x91\xde\x7b\x8f\xca\x6d\x35\x5f\xeb\x05\x07\x42\xc1\xb6\x4b\x38\x07\xae\xbb\x82\x6d\x4d\xc0\x5e\x7d\x9d\xb6\x33\x24\xa6\x76\x7e\xce\x46\xd1\xa6\x66\x8b\x1d\x92\xa4\x46\x90\x24\x85\xe3\x35\x70\xbc\x46\xcd\xc3\xf4\x58\x8e\x0d\xe3\x54\x8d\x03\x1e\xf7\xac\x35\xd8\xf6\x7e\xde\x31\x29\xdd\xee\x4b\xaf\x1d\xa8\x74\xdf\xb0\xc3\x0f\xfd\x38\x75\xa1\xb5\x7d\xcf\xfb\xc0\x29\x1f\x35\xad\x81\x88\x1a\xa2\x88\x42\x5e\xf5\x05\xe5\x55\x23\x81\x0c\x09\x64\x48\x20\x43\x02\x19\xec\xbf\x4d\x6f\x51\x2f\xb3\x35\x50\x56\xad\x37\xe6\xd6\x29\xca\xaa\xf5\x2e\xc5\xa4\xa6\x9a\x5a\x13\x8b\xa9\xae\x88\x5a\x9b\x79\x25\xa8\x9d\xe6\xe7\x40\x73\x99\x80\xda\x69\xf6\x7f\xd8\xbf\xe0\x60\xeb\x45\xc9\xb4\x33\x90\xe4\x72\xa5\xb4\x0d\xb7\x47\x81\xb4\xfa\x36\x03\x8c\xa3\x40\x5a\x17\x05\xd2\x9a\x08\xaa\xda\xba\x68\x23\xc2\xf9\x28\x87\x06\xbf\xf4\xe5\xc1\x7d\x94\x43\x6b\x73\xde\xa0\x1c\x1a\xcc\x21\x98\x43\xeb\xdd\x38\xa0\x2a\x68\x47\x1b\x44\xa7\x29\x7e\xd6\xcc\x05\x56\x5b\xf3\x6c\x44\x9a\x0d\x21\x98\x50\x69\x97\xa0\xd2\x7a\x24\x86\xb0\x67\xfb\x4f\x10\x82\x69\xaf\x3c\x2a\x89\xd1\x75\x3d\xb3\xf3\x45\x34\xde\x29\x43\x4e\x4b\x81\x8d\xdd\xd0\x3a\x73\x1f\xb7\x37\xb5\xc8\xed\x2c\xfa\xc5\xca\x83\x57\x19\xf0\x04\xf0\x64\xbf\x36\x03\x9e\x00\x9e\xb4\x03\x4f\x8e\xd9\xdf\xb6\x63\x94\x9a\x0d\x6e\x90\x86\x39\x60\x0a\xcc\xf4\xcb\x33\xd3\x01\x53\xda\x9c\x37\x80\x29\x70\xcc\xc0\x3c\x5a\xef\x46\xc0\x94\xe3\x61\xca\x71\x1e\x8a\xed\x58\x65\x2c\x1a\x0e\x70\x05\xaa\xed\x12\x54\x5b\x8f\xc4\x11\xf6\x70\xff\x09\xe0\x8a\xbd\xf2\xa8\x24\xc7\x78\xe0\x8a\x48\xa3\xe4\x75\x41\x29\xb7\xa7\x39\x28\xa2\x94\x4a\x9b\xcc\xd8\x7b\x7f\xff\x2d\x4a\xa5\x7c\x6a\xc4\x2f\xfe\xe7\x25\xc9\x52\x7b\x11\x1c\x20\x81\x4a\x2d\xa8\xd4\x82\x4a\x2d\xa8\xd4\x82\x4a\x2d\x67\x31\x3d\x60\x21\x36\x1e\xa8\x73\x5a\x88\x28\xa8\x83\xe3\x8c\x2e\xf8\x38\x23\x54\x4f\x42\xf5\x24\x54\x4f\x42\xf5\x24\x54\x4f\x42\xf5\x24\x54\x4f\xc2\x29\x7f\x38\xe5\x0f\xa7\xfc\xe1\x94\xbf\xd5\x19\x79\xd2\x22\x61\x28\xd5\xd6\x87\x51\x40\xa9\x36\x94\x6a\x1b\x5b\xa9\xb6\x5a\x4e\x07\x30\x8f\x93\x3b\x57\x7f\xb0\xf5\xe4\xce\x42\x27\x75\x4c\xc1\xeb\xb8\xee\x59\x0f\xf1\x34\x1e\xb1\xcc\x5a\xd1\x4e\xba\x27\x33\xa6\x1f\xb9\x19\xcc\xd6\x97\x58\x8b\xb9\x3b\x0a\x60\xaf\x3c\x23\xc9\x33\xaa\xb4\xf8\x73\x92\x3c\x2d\x78\xf6\xa4\x8a\x78\x6d\xf3\xe0\xe4\x91\x51\xd6\x6f\xf4\x9a\x6a\xe3\xe2\xe7\xcf\x9f\xff\xf1\xe9\xfe\xcb\x3f\xbe\x5d\x15\x3e\x11\x23\xbf\x12\xd2\xb0\x72\x91\x46\x82\x9c\x1f\x53\x7f\x55\x2d\x38\xe4\x3c\x36\x3e\x61\xad\x8a\x23\x3e\x27\x3d\x5a\x7c\x45\xdb\x9f\x65\xdb\xd1\x38\x1a\xae\x15\x0b\xa5\x0a\x32\xa1\x9f\xb9\xa0\x49\x25\x0a\x62\x1d\x1e\xd5\x0b\x79\x17\x84\xb6\xad\xb5\x1d\xef\x94\xae\x5e\x0b\xb3\x67\x1e\xdd\xb0\x38\x31\xa0\x97\x2c\x64\xef\x35\x59\x75\xbc\x11\x6a\x7c\x65\xae\xcd\xd6\x43\xe5\xed\x63\x25\x14\xd5\x88\xf4\xae\x67\xeb\x48\xb1\x8c\xab\x62\xee\xe9\x4f\xa9\x0b\x42\xcf\x4e\x67\x82\xe7\xda\x4a\x9f\xf3\x5c\xb0\x95\x81\xb0\x57\x12\xb1\x96\xe1\xc6\x21\x91\xca\x02\xea\xd6\x5d\xf6\x80\x1d\xa4\x66\x0a\x9c\xc9\xd4\x42\xfc\x01\xe2\x0f\x10\x7f\x80\xf8\x03\xc4\x1f\xd4\x2d\xbe\x00\xdb\x03\xea\x11\xb0\x4e\xb0\x4e\xb0\x4e\xb0\x4e\xb0\x4e\xb0\xce\x71\xb1\x4e\xe0\x07\xe0\x07\xe0\x07\xe0\x87\xce\xf1\xc3\x1e\x88\xde\x18\x73\x49\xe6\x12\x2e\xf5\xf0\x1b\xa4\xac\xbf\x37\xa5\x4d\xcc\x0c\xaa\x41\xe0\x56\x9d\xe4\x8f\x62\x61\xb6\x2d\x95\x67\x82\x2f\xa8\x7b\xc2\xf0\xc6\x6e\x0c\x37\xf6\xbb\x8b\xe4\x99\xb4\x4f\xc9\xbc\x63\x5f\x4d\x2d\x9e\xd5\xa9\x7e\x48\x17\xbe\x6c\x9b\x60\xc3\x3f\x15\x61\xe3\x0f\xf4\xcd\x7e\x32\x1d\xff\x5f\xeb\x7d\xd0\xe4\xda\xd5\x5f\xf7\x9b\x10\x15\xb9\x90\xde\x7d\xff\x9b\x54\x17\x99\x10\xa9\x97\xb1\x9e\xb3\xa0\x03\x0e\xa9\xc3\xa9\x6e\x83\x3b\xd5\x2d\x51\x2d\x13\x3f\x63\x97\x31\xde\x0c\xee\x99\x6f\xb7\x8b\xf7\xfa\x7a\x9a\x46\xd1\xa8\x66\x0b\x1e\x92\xa5\x46\x90\x2c\x85\xe3\x34\x70\x9c\x46\xcd\xc3\xf4\x59\x93\x0d\xe4\x3c\x8d\x03\x9e\xf7\x1c\x05\x8d\x8f\x78\xe0\x31\x09\x5e\x12\x1a\xbd\x14\xbc\x6f\xd8\x11\x67\x80\xd8\x13\xd6\x4f\x74\x14\x48\x43\x51\x55\x3e\xfe\x03\x87\x7e\xd4\xb5\x06\x5a\x6a\x88\x5a\x0a\x69\xd6\x17\x94\x66\x8d\x7c\x32\xe4\x93\x21\x9f\x0c\xf9\x64\x30\x03\x37\xbd\x45\xbd\x4c\xde\x38\x8f\x91\x85\xdc\x93\x8d\xb9\x27\xfd\x34\xba\xbc\x03\xba\x9b\x42\x54\x55\xa1\xd5\xc8\x68\xaa\xad\x3f\xd5\x66\x9a\x49\x49\x7c\x88\x3f\x29\x78\x6c\xaa\xff\xe2\x41\x3e\x61\xec\x83\xfe\xaf\xfb\xf7\x05\x97\xe4\x9e\x53\x2c\x88\x96\x2a\x17\x59\xb1\xa5\xd8\x53\xec\x23\xf9\x24\xd8\xb5\x7f\xd0\x6b\xad\x1c\x9d\xda\x99\xb0\x87\x88\xc7\xb1\x2d\x3f\x40\x7a\x84\x47\x46\x02\xbd\xfd\xe1\x90\x35\x9a\x9e\xf1\x4c\x4a\xc1\x77\x9a\x17\xda\x53\xd7\x7d\xba\xa5\xec\x83\xe9\x31\xbd\x3b\xa4\xca\xf5\x8e\x8d\xaf\xa2\x92\x00\x01\x8f\x4b\x9a\xf9\xb5\xe3\x8e\xd2\x0f\x33\x5e\x8c\xdd\xef\x2d\x0c\x8e\xb6\x13\x15\x3f\x3b\x03\x58\xae\x54\x3f\xdb\x70\x7f\x94\x3f\xab\x6f\x33\x40\x39\xca\x9f\xb5\x53\xfe\xec\x00\x55\x55\x5f\xf5\x6c\x44\x78\x1f\x05\xcf\xe0\x9f\xbe\x3c\xd6\x8f\x82\x67\x6d\xce\x1b\x14\x3c\x83\x4d\x04\x9b\xa8\xa6\x1f\x87\x54\xf1\xec\x68\xab\xa8\xab\x92\x67\x07\xf9\xc2\xea\x2b\x9d\x8d\x48\xb7\x21\x2c\x13\x52\xed\x22\xa4\x5a\x8f\x14\x11\x36\x6e\xff\x09\xc2\x32\xfd\xa5\x47\x25\x34\x3a\xaf\x73\x76\xc6\x20\xc7\x3b\x15\xf0\xa8\x1c\xd8\xd8\x11\xbc\xa3\xdb\xd4\x94\x68\x3d\x9e\xe2\x7d\xa5\x06\x60\xf1\xd9\xf9\x32\x2f\xf3\x44\x8f\x82\x8c\xe7\x84\xd0\xa9\xdb\x2e\xf0\x75\x6e\x8b\xa5\x14\xdd\x59\xff\x56\xaf\xce\xcb\x13\xd2\x94\x9a\x5b\x03\xa4\xd4\xb7\x19\x20\x05\x20\xa5\x1d\x90\x72\xcc\x0e\xb7\x83\xa8\xac\x6f\x71\x83\x34\xcf\x81\x55\x60\xab\x5f\x9e\xad\x0e\xac\xd2\xe6\xbc\x01\x56\x81\x77\x06\x06\x52\xa7\x06\x52\x7b\x60\xa5\x53\x13\xa9\x2b\xb4\x72\x9c\xa7\x62\x07\x63\x19\x89\x92\x3b\xe6\x5d\x81\x7c\x83\x7c\x1b\x90\x7c\xeb\x91\x4a\xc2\x66\xee\x3f\xe9\x74\x33\x3f\x13\x6c\x81\xfc\x68\x15\xb7\x74\x20\x3e\xde\xb0\x36\x80\x8b\xc9\x5d\xeb\x9e\xb8\xd0\x7d\xba\x41\x2e\xa6\x09\x58\x85\x00\x50\x91\xbd\x82\xec\x15\x40\x17\x40\x97\x73\x41\x97\x63\x36\xb9\x5d\xd4\x65\x7d\x97\x1b\xa4\xb1\x0e\xec\x02\xbb\xfd\xf2\xec\x76\x60\x97\x36\xe7\x0d\xb0\x0b\x3c\x35\xb0\x91\x6a\xfa\xb1\x7f\xd0\x65\x80\xd9\x2c\x47\xba\x2a\x76\x31\x97\x91\xe8\x38\x64\xb7\x40\xba\x5d\x84\x74\xeb\x91\x42\xc2\x46\xee\x3f\x41\x76\x8b\xbf\xf4\xa8\x84\xc7\x78\xb2\x5b\xb4\x12\x90\x01\x57\x22\x57\x27\x3a\xbb\xbb\x74\xb6\x69\x32\x63\x5f\xcc\xfd\xbf\x8a\xa6\xe7\x78\xff\xe2\x7f\x5e\xe8\x96\xfa\x8b\xe0\x44\x6f\x94\xd1\x47\x19\x7d\x94\xd1\x47\x19\x7d\x94\xd1\x3f\x8b\xf5\x01\x23\xb1\xf1\x40\x9d\xd3\x48\x3c\xaa\xb6\xbf\x71\xc7\xb6\x59\xdb\x9f\xae\x78\xde\xda\xfe\xa8\x2f\x71\x41\xf5\x25\x8e\x9a\xfe\x11\x9f\x8a\xa8\xd5\xe9\x4f\x57\x3c\xef\xf4\x37\xa5\xe7\xc9\x5d\xb4\xe0\x7f\xca\xc5\x72\xc1\xe2\xe5\x62\xaa\x27\xc9\xcc\x2f\xa6\xca\xf4\x16\xd5\x0e\x26\x3e\x56\x94\xbe\xa6\x29\x4b\x32\x5a\xea\x67\x31\xa5\x14\xd6\xb5\x89\x16\xdf\xfa\xdf\xfe\xed\x76\xa9\x7f\xbb\x6a\x0e\x71\xd1\xfb\xae\xd0\x82\x99\xa8\x66\x76\xd2\xfe\x11\xf0\xd8\x4d\xe7\x42\x09\x29\xbe\xd0\x6f\x99\xcc\xa5\x97\xcc\xe6\x29\xb5\xb8\x17\x85\xd6\xd1\xb7\x36\x6d\xd1\x83\x36\x61\x5f\x45\x9e\x9b\xaa\xf7\xa6\xed\x46\x2a\x9b\xb6\x89\x17\x12\x0d\x3c\x2e\xef\x10\x5a\xa6\x2c\x92\x65\x4c\x97\x31\xad\xfc\x6e\x99\xea\x9b\x99\x17\x5a\xff\xcb\xf7\x4e\x9b\x88\x67\xaa\x8b\x4f\x9b\x93\xfb\x75\xb9\xf4\xfe\x4c\x46\xb9\xd0\x0a\x55\xab\x46\xbd\x47\x39\x03\xc2\xae\x2e\x15\x1b\xc2\xec\xa7\x81\x8f\x23\xaa\x2a\x4c\x53\xf6\xc1\x56\x3e\xf7\x5a\xbc\x62\xd2\x90\x12\x7a\xe6\x32\xe2\xd3\x48\xe8\xa6\xeb\x11\x31\x4a\x26\x78\x4c\x12\x45\xe5\x9d\xf5\x75\xac\x02\xb2\x63\xa1\xbb\x85\x67\xf3\xe5\x82\xda\x12\x87\x6e\xb7\xa5\x4e\xd2\x6d\xb3\xcf\xe3\x2f\x5d\xf4\xee\xc7\x19\xf3\x53\xaa\x58\x95\x9c\x75\xb2\xd2\x00\xa9\x98\x58\xa4\xf9\x6b\xd5\x8c\xe2\x4a\x9b\xde\x66\xe4\xe3\x64\x6b\x83\xb6\x49\x39\x39\x5b\x11\x72\x46\xfb\xf9\x79\x39\x5f\xf2\x8c\xc7\xb9\x70\x22\xa5\x58\xe9\x55\xb1\x08\x90\x1e\xa4\xb2\xec\xc5\xb3\x7b\x59\xea\x0d\xb6\x3c\x61\x52\xa9\xa5\x99\x55\xfa\xcb\x91\x28\xde\x10\x6f\x23\xb8\x09\x77\xeb\xfc\xad\x37\xba\x79\xee\x96\xfb\xe9\x64\x27\x91\xb5\x3e\x57\x6a\x29\xc2\x5a\xb1\xac\x75\xa5\x5a\x4e\x95\xfe\x72\x9c\xfb\x16\x84\x25\x18\x4b\x3d\xa8\xc7\x2a\x59\x88\x5c\x2e\x84\x6e\xfb\x4c\x64\x99\xa9\x95\xcf\x57\xec\xa1\xc2\x3c\xd0\x23\x2a\x62\xb5\xcc\x84\x3f\x7a\xdd\x1a\x38\xce\x99\x6c\x7a\xcd\x34\x99\x5e\x4c\x32\x65\x98\x5a\xf0\x28\x12\x19\x0b\x1e\x97\xf1\x93\x29\xcc\xce\xf4\x22\xca\x22\x9e\xcd\xdd\x40\xd3\x1b\x6f\x2e\xaf\x1b\xad\x2d\x26\x41\x13\x2f\x4d\x94\x92\x7a\xc2\xd9\x6e\xa3\x09\x57\x7e\xbf\x4c\xdc\x4f\xa8\xb7\x74\x33\x1c\x74\x1f\x11\x9a\xf1\x20\xe3\xd9\xca\x73\x3b\x87\xed\x5e\x48\x4f\xfd\xc2\x95\xd3\xb0\xcc\xce\x08\xdd\x27\xeb\xf6\x89\xb1\xda\xb9\xd2\x03\x1c\x2c\x23\x53\x6f\xa8\x98\x36\x07\xed\x05\xba\xa3\xce\xb4\x2d\xa2\xec\x12\xca\x2e\xa1\xec\x12\xca\x2e\x9d\x44\x71\xae\xba\x49\x94\xc8\xdd\x2e\x93\x67\x5c\xea\x55\x22\x66\x2f\xba\x33\xdc\x37\xdd\x92\xad\xbf\xe6\x36\x3e\x3f\xf5\x32\xb7\x02\x68\x79\x23\x3c\x43\x2c\xf1\x31\x99\xdc\x85\x49\xa0\xee\x68\x63\xd3\x72\xea\x8e\xb6\xa6\x5b\x9e\xca\x3b\x9e\xca\xdb\x20\x89\xf5\x5c\x51\x77\x7f\xf1\xd3\xca\xdf\x70\x46\x7b\x70\xce\x65\xa4\x48\x3f\x94\xb5\x3f\x05\x1b\x1d\x30\x0e\x2b\x1d\xd0\x8b\x51\xf8\x44\x4a\xc9\xab\x49\x45\x4b\xc5\xea\x48\x69\x2b\x21\x4d\x23\x69\xb4\x81\x17\x38\x26\xa4\x4b\x2a\xf6\x28\xe7\x8f\x14\xe9\x15\x24\x8b\x85\x9e\xba\xa1\x99\xd4\xb5\xf7\xb2\x1e\x79\xdd\xc1\xc5\x95\xb4\xde\xca\x44\xdd\x8d\xf5\x77\x87\x39\xbe\x9f\x56\x22\x77\x4e\x38\xc8\xbf\xcb\x85\xd0\xca\xd3\xb9\x09\x74\x47\xdf\x19\x51\x6c\x6c\x37\x52\x7f\xa4\x3c\x94\x59\xc3\x9c\x23\xc4\x19\x1c\x3c\x8a\x6e\x58\x26\xe6\x3c\x0b\x09\xfa\x6b\xb9\x16\xbf\x32\x1e\xe4\xf2\x59\xe6\xaf\x7a\x57\x90\xb1\xfb\x7f\x87\x2c\x4a\xb9\x79\xc4\x2e\xdc\x02\xb5\x9c\x0e\x6c\x1e\xa5\xd4\x56\x7f\xb0\xb5\x94\x5a\xa1\x93\xba\xc5\xe0\xb5\x5c\xf7\xac\x45\xd5\x8c\x47\x2c\xb3\x56\xb4\x93\xee\xc9\x8c\xe9\x47\x6e\x06\xb3\xf5\x25\x56\x03\xef\x8e\x03\xd8\x2b\xcf\x48\xf2\xec\x5f\xfa\x01\x7f\x4e\x92\xa7\x05\xcf\x9e\x54\x11\xb7\x6d\x1e\x9c\x3c\x32\xca\xfa\x8d\x5e\x53\x6d\x5c\xfc\xfc\xf9\xf3\x3f\x3e\xdd\x7f\xf9\xc7\xb7\xab\xc2\x27\x62\xe4\x57\x42\x1a\x56\x2e\xd2\x48\x90\xf3\x63\xea\xaf\xaa\x05\x87\x9c\xc7\xc6\x27\xac\x55\x71\xc4\xe7\xa4\x47\x8b\xaf\x68\xfb\xb3\x6c\x3b\x1a\x47\xc3\xb5\x62\xa1\x54\x41\x26\xf4\x33\x17\x34\xa9\x44\x41\xac\xc3\xa3\x7a\x21\xef\x82\xd0\xb6\xb5\xb6\xe3\x9d\xd2\xd5\x6b\x61\xf6\xcc\xa3\x1b\x16\x27\x06\xf4\x92\x85\xec\xbd\x26\xab\x8e\x37\x42\x8d\xaf\xcc\xb5\xd9\x7a\xa8\xbc\x7d\xac\x84\x52\xf4\x60\xce\xf5\x6c\x1d\x29\x96\x71\x55\xcc\x3d\xfd\x29\x75\x41\xe8\xd9\xe9\x4c\xf0\x5c\x5b\xe9\x73\x9e\x0b\xb6\x32\x10\xf6\x4a\x22\xd6\x32\xdc\x38\x24\x52\x59\x40\xdd\xba\xcb\x1e\xb0\x83\xd4\x4c\x81\x33\x99\x5a\x88\x3f\x40\xfc\x01\xe2\x0f\x10\x7f\x80\xf8\x83\xba\xc5\x17\x60\x7b\x40\x3d\x02\xd6\x09\xd6\x09\xd6\x09\xd6\x09\xd6\x09\xd6\x39\x2e\xd6\x09\xfc\x00\xfc\x00\xfc\x00\xfc\xd0\x39\x7e\xd8\x03\xd1\x1b\x63\x2e\xc9\x5c\xce\xa5\x1e\x7e\x83\x94\xf5\xf7\xa6\xb4\x89\x99\x41\x35\x08\xdc\xaa\x93\xfc\x51\x2c\xcc\xb6\xa5\xf2\x4c\xf0\x05\x75\x4f\x18\xde\xd8\x8d\xe1\xc6\x7e\x77\x91\x3c\x93\xf6\x29\x99\x77\xec\x2b\xc9\x95\xd7\xd5\xa9\x7e\x48\x17\xbe\x6c\x9b\x60\xc3\x3f\x1d\x61\xe3\x0f\xf4\xcd\x7e\x32\x1d\xff\x5f\xeb\x7d\xd0\xe4\xda\xd5\x5f\xf7\x9b\x10\xf9\x6c\xc8\xc2\x7d\xff\x9b\x54\x17\x99\x11\xa9\x97\xb1\x9e\xb3\xa0\x03\xce\xab\xc3\xf9\x6e\x83\x3b\xdf\x2d\x51\x2d\x13\x3f\x63\x97\x31\xde\x0c\xee\x99\x6f\xb7\x8b\xf7\x7a\x7a\xa2\x46\xa9\x51\xcd\x16\x3c\x24\x4b\x8d\x20\x59\x0a\x27\x6a\xe0\x44\x8d\x9a\x87\xe9\xb3\x26\x1b\xc6\x89\x1a\x87\x3c\xef\xbb\x9d\xcf\x6b\x42\x7e\x7b\xf2\xc0\x63\x12\xbc\x24\x34\x7a\x29\x78\xdf\xb0\x23\xce\x00\xb1\x07\xae\x9f\xe8\x28\x90\x86\xa2\xaa\x7c\xfc\x07\x0e\xfd\xa8\x6b\x0d\xb4\xd4\x10\xb5\x14\xd2\xac\x2f\x28\xcd\x1a\xf9\x64\xc8\x27\x43\x3e\x19\xf2\xc9\x60\x06\x6e\x7a\x8b\x7a\x99\xbc\x71\x1e\x23\x0b\xb9\x27\x1b\x73\x4f\xfa\x69\x74\x79\x07\x74\x37\x75\xa9\xaa\x42\xab\x91\xd1\x54\x57\x8d\xaa\xd5\x34\x93\x92\xf8\x10\x7f\x52\xf0\xd8\x54\xff\xc5\x83\x7c\xc2\xd8\x07\xfd\x5f\xf7\xef\x0b\x2e\xc9\x3d\xa7\x58\x10\x2d\x55\x2e\xb2\x62\x4b\xb1\xa7\xd9\x47\xf2\x49\xb0\x6b\xff\xa0\xd7\x5a\x39\x3a\xb5\x33\x61\x0f\x11\x8f\x63\x5b\x86\x80\xf4\x08\x8f\x8c\x04\x7a\xfb\xc3\x21\x6b\x34\x3d\xe3\x99\x94\x82\xef\x34\x2f\xb4\xa7\xae\xfb\x74\x4b\xd9\x07\xd3\x63\x7a\x77\x48\x95\xeb\x1d\x1b\x5f\x45\xa5\x01\x02\x1e\x97\x34\xf3\x6b\xc7\x1d\xa5\x1f\x66\xbc\x18\xbb\xdf\x5b\x18\x1c\x6d\xa7\x29\x84\x76\x0e\xb0\x5c\x2e\x84\xb6\xe9\xfe\x28\x84\x56\xdf\x66\x80\x72\x14\x42\x6b\xa7\x10\xda\x01\xaa\xaa\xb6\xfc\xd9\x98\xf0\x3e\x0a\x9f\xc1\x3f\x7d\x79\xac\x1f\x85\xcf\xda\x9c\x37\x28\x7c\x06\x9b\x08\x36\x51\x4d\x3f\x0e\xa8\xf0\xd9\xf1\x56\x51\x57\x85\xcf\x0e\xf2\x85\xd5\x96\x3b\x1b\x93\x6e\x43\x58\x26\xa4\xda\x45\x48\xb5\x1e\x29\x22\x6c\xdc\xfe\x13\x84\x65\xfa\x4b\x8f\x4a\x68\x74\x5d\xe8\xec\x9c\x41\x8e\x77\x2a\xe0\x51\x39\xb0\xb1\x23\x78\x47\xb7\x59\x2f\xd4\xda\x02\xc5\xfb\x4a\x0d\xc0\xe2\xb3\xf3\x65\x5e\xe6\x89\x1e\x05\x19\xcf\x09\xa1\x53\xb7\x5d\xe0\xeb\xdc\x16\x4b\x29\xba\xb3\xfe\xad\x5e\x9d\x97\x27\xa4\x29\x35\xb7\x06\x48\xa9\x6f\x33\x40\x0a\x40\x4a\x3b\x20\xe5\x98\x1d\x6e\x07\x51\x59\xdf\xe2\x06\x69\x9e\x03\xab\xc0\x56\xbf\x3c\x5b\x1d\x58\xa5\xcd\x79\x03\xac\x02\xef\x0c\x0c\xa4\x4e\x0d\xa4\xf6\xc0\x4a\xa7\x26\x52\x57\x68\xe5\x38\x4f\xc5\x0e\xc6\x32\x12\x25\x77\xcc\xbb\x02\xf9\x06\xf9\x36\x20\xf9\xd6\x23\x95\x84\xcd\xdc\x7f\xd2\xe9\x66\x7e\x26\xd8\x02\xf9\xd1\x2a\x6e\xe9\x40\x7c\xbc\x61\x6d\x00\x17\x93\xbb\xd6\x3d\x71\xa1\xfb\x74\x83\x5c\x4c\x13\xb0\x0a\x01\xa0\x22\x7b\x05\xd9\x2b\x80\x2e\x80\x2e\xe7\x82\x2e\xc7\x6c\x72\xbb\xa8\xcb\xfa\x2e\x37\x48\x63\x1d\xd8\x05\x76\xfb\xe5\xd9\xed\xc0\x2e\x6d\xce\x1b\x60\x17\x78\x6a\x60\x23\xd5\xf4\x63\xff\xa0\xcb\x00\xb3\x59\x8e\x74\x55\xec\x62\x2e\x23\xd1\x71\xc8\x6e\x81\x74\xbb\x08\xe9\xd6\x23\x85\x84\x8d\xdc\x7f\x82\xec\x16\x7f\xe9\x51\x09\x8f\xf1\x64\xb7\x68\x19\x21\x66\xcb\x48\x89\x5c\x9d\xe8\xf0\xee\xd2\xe1\xa6\xc9\x8c\x7d\xb5\x0f\xd0\xfc\x24\xef\x5f\xfc\xef\x0b\xe5\xb2\xe1\x2a\x38\xd4\x1b\x95\xf4\x51\x49\x1f\x95\xf4\x51\x49\x1f\x95\xf4\xcf\x62\x80\xc0\x4e\x6c\x3c\x50\xe7\xb4\x13\x8f\x2a\xef\x6f\x3c\xb2\x6d\x96\xf7\xa7\x2b\x9e\xb7\xbc\x3f\x4a\x4c\x5c\x50\x89\x89\xa3\xa6\x7f\xc4\xa7\x22\x6a\x75\xfa\xd3\x15\xcf\x3b\xfd\x4d\xf5\x79\xf2\x18\x2d\xf8\x9f\x72\xb1\x5c\xb0\x78\xb9\x98\xea\x49\x32\xf3\x8b\xa9\x32\xbd\x45\xe5\x83\x09\x91\x15\xd5\xaf\x69\xca\x92\x8c\x96\xfa\x59\x4c\x35\x85\x75\x6d\xa2\xc5\xb7\xfe\xb7\x7f\xbb\x5d\xea\xdf\xae\xa0\x43\x5c\xf4\xbe\xab\xb5\x60\x26\xaa\x99\x9d\xb4\x7f\x04\x3c\x76\xd3\xb9\x50\x42\x8a\x2f\xf4\x5b\x26\x73\xe9\x25\xb3\x79\x4a\x2d\xee\x45\xa1\x75\xf4\xad\x4d\x5b\xf4\xa0\x4d\xd8\x57\x91\xe7\xa6\xf0\xbd\x69\xbb\x91\xca\xa6\x6d\xe2\x85\x44\x03\x8f\xcb\x3b\x84\x96\x29\x8b\x64\x19\xd3\x65\x4c\x2b\xbf\x5b\xa6\xfa\x66\xe6\x85\xd6\xff\xf2\xbd\xd3\x26\xe2\x99\x4a\xe3\xd3\xe6\xe4\x7e\x5d\xae\xbe\x3f\x93\x51\x2e\xb4\x42\xd5\xaa\x51\xef\x51\xce\x80\xb0\xab\x4b\xc5\x86\x30\xfb\x69\xe0\x43\x89\xaa\x0a\xd3\x54\x7e\xb0\xc5\xcf\xbd\x16\xaf\x98\x34\xa4\x84\x9e\xb9\x8c\xf8\x34\x12\xba\xe9\x7a\x44\x8c\x92\x09\x1e\x93\x44\x51\x85\x67\x7d\x1d\xab\x80\xec\x58\xe8\x6e\xe1\xd9\x7c\xb9\xa0\xb6\xc4\xa1\xdb\x6d\xa9\x93\x74\xdb\xec\xf3\xf8\x4b\x17\xbd\xfb\x71\xc6\xfc\x94\x2a\x56\x25\x67\x9d\xac\x34\x40\x2a\x26\x16\x69\xfe\x5a\x35\xa3\xb8\xd2\xc6\xb7\x19\xf9\x38\xd9\xda\xa0\x6d\x52\x4e\xce\x56\x84\x9c\xd1\x7e\x7e\x5e\xce\x97\x3c\xe3\x71\x2e\x9c\x48\x29\x56\x7a\x55\x2c\x02\xa4\x07\xa9\x32\x7b\xf1\xec\x5e\x96\x7a\x83\x2d\x4f\x98\x54\x6a\x69\x66\x95\xfe\x72\x24\x8a\x37\xc4\xdb\x08\x6e\xc2\xdd\x3a\x97\xeb\x8d\x6e\x9e\xbb\xe5\x7e\x3a\xd9\x49\x64\xad\xcf\x95\x5a\x8a\xb0\x56\x2c\x6b\x5d\xa9\x96\x53\xa5\xbf\x1c\xe7\xbe\x05\x61\x89\xc7\x52\x0f\xea\xb1\x4a\x16\x22\x97\x0b\xa1\xdb\x3e\x13\x59\x66\xca\xe5\xf3\x15\x7b\xa8\x30\x0f\xf4\x88\x8a\x58\x2d\x33\xe1\x4f\x5f\xb7\x06\x8e\xf3\x27\x9b\x5e\x33\x4d\xa6\x17\x93\x4c\x19\xa6\x16\x3c\x8a\x44\xc6\x82\xc7\x65\xfc\x64\x6a\xb3\x33\xbd\x88\xb2\x88\x67\x73\x37\xd0\xf4\xc6\x9b\xcb\xeb\x46\x6b\x8b\x49\xd0\xc4\x4b\x13\xa5\xa4\x9e\x70\xb6\xdb\x68\xc2\x95\xdf\x2f\x13\xfa\x13\xea\x2d\xdd\x0c\x07\xdd\x47\x84\x66\x3c\xc8\x78\xb6\xf2\xdc\xce\x61\xbb\x17\xd2\x53\xbf\x70\xe5\x34\x2c\xb3\x33\x42\xf7\xc9\xba\x7d\x62\xac\x76\xae\xf4\x00\x07\xcb\xc8\x94\x1c\x2a\xa6\xcd\x41\x7b\x81\xee\xa8\x33\x6d\x8b\xa8\xbc\x84\xca\x4b\xa8\xbc\x84\xca\x4b\x27\x51\x9c\xab\x6e\x12\x25\x72\xb7\xcb\xe4\x19\x97\x7a\x95\x88\xd9\x8b\xee\x0c\xf7\x4d\xb7\x64\xeb\xaf\xb9\x8d\xcf\x4f\xbd\xcc\xad\x00\x5a\xde\x08\x8f\x11\x4b\x88\x4c\x26\x77\x61\x12\xa8\x3b\xda\xd8\xb4\x9c\xba\xa3\xad\xe9\x96\xa7\xf2\x8e\xa7\xf2\x36\x48\x62\x3d\x57\xd4\xdd\x5f\xfc\xb4\xf2\x37\x9c\xd1\x1e\x9c\x73\x19\x29\xd2\x0f\x65\xed\x4f\xf1\x46\x07\x8c\xc3\x4a\x07\xf4\x62\x14\x3e\x91\x52\xf2\x6a\x52\xd1\x52\xb1\x3a\x52\xda\x4a\x48\xd3\x48\x1a\x6d\xe0\x05\x8e\x89\xea\x92\x8a\x3d\xca\xf9\x23\x05\x7b\x05\xc9\x62\xa1\xa7\x6e\x68\x26\x75\xed\xbd\xac\x47\x5e\x77\x70\x71\x25\xad\xb7\x32\x51\x77\x63\xfd\xdd\x61\x8e\xef\xa7\x95\xe0\x9d\x13\x0e\xf2\xef\x72\x21\xb4\xf2\x74\x6e\x02\xdd\xd1\x77\x46\x14\x1b\xdb\x8d\xd4\x1f\x29\x0f\x65\xd6\x30\xe7\x08\x71\x06\x07\x8f\xa2\x1b\x96\x89\x39\xcf\x42\xe2\xfe\x5a\xae\xc5\xaf\x8c\x07\xb9\x7c\x96\xf9\xab\xde\x15\x64\xec\xfe\xdf\x21\x8b\x52\x6e\x1e\xb1\x0b\xb7\x40\x2d\xa9\x03\x9e\x47\x35\xb5\xd5\x1f\x6c\xad\xa6\x56\xe8\xa4\x6e\x49\x78\x3d\xd8\x3d\x6b\x61\x35\xe3\x12\xcb\xac\x19\xed\xb4\x7b\x32\x63\xfa\x99\x1b\xf2\x6c\x7d\x8d\xd5\xe8\xbb\x23\x19\xf6\xca\x53\x92\x42\xfb\x97\x7e\xc4\x9f\x93\xe4\x69\xc1\xb3\x27\x55\x44\x6f\x9b\x47\x27\xa7\x8c\xb2\xae\xa3\xd7\x54\xdb\x17\x3f\x7f\xfe\xfc\x8f\x4f\xf7\x5f\xfe\xf1\xed\xaa\x70\x8b\x18\x05\x96\x90\x8c\x95\x8b\x34\x12\xe4\xff\x98\xfa\xab\x6a\xcd\x21\xe7\xb1\x71\x0b\x6b\x61\x1c\xf1\x39\x49\xd2\xe2\x2b\xda\x04\x2d\x9b\x8f\xc6\xd7\x70\xad\x58\x28\x55\x90\x09\xfd\xcc\x05\x50\x2a\x81\x10\xeb\xf3\xa8\x5e\xc8\x7b\x21\xb4\x79\xad\x4d\x79\x27\x76\xf5\x72\x98\x3d\xf3\xe8\x86\xc5\x89\x61\xbd\x64\x24\x7b\xc7\xc9\xaa\xef\x8d\x68\xe3\x2b\x73\x6d\xb6\x4e\x2a\x6f\x22\x2b\xa1\x14\x3d\x98\xf3\x3e\x5b\x5f\x8a\xc5\x5c\x15\x8b\x4f\x7f\x4a\x5d\x10\x7a\x7c\x3a\x13\x3c\xd7\x86\xfa\x9c\xe7\x82\xad\x0c\x84\xbd\x92\x88\xb5\x12\x37\x3e\x89\x54\x16\x5c\xb7\xee\xb2\x07\x6c\x22\x35\x53\xe0\x4c\xd6\x16\x42\x10\x10\x82\x80\x10\x04\x84\x20\x20\x04\xa1\x6e\xf1\x05\xdb\x1e\x50\x8f\x00\x77\x02\x77\x02\x77\x02\x77\x02\x77\x02\x77\x8e\x0b\x77\x82\x40\x80\x40\x80\x40\x80\x40\x74\x4e\x20\xf6\xa0\xf4\xc6\x98\x4b\x32\x97\x79\xa9\x87\xdf\x50\x65\xfd\xbd\x29\x6d\x62\x66\x50\x0d\x05\xb7\xea\x24\x7f\x14\x0b\xb3\x6d\xa9\x3c\x13\x7c\x41\xdd\x13\x86\x37\x76\x63\xb8\xb1\xdf\x5d\x24\xcf\xa4\x7d\x4a\xe6\x1d\xfb\x4a\x72\xe5\x75\x75\xaa\x1f\xd2\x85\x2f\xdb\x26\xd8\xf0\xcf\x48\xd8\xf8\x03\x7d\xb3\x9f\x4c\xc7\xff\xd7\x7a\x1f\x34\xb9\x76\xf5\xd7\xfd\x86\x44\x3e\x27\xb2\xe4\xbf\xff\x4d\xaa\x8b\x4c\x8c\xd4\xeb\x58\xdf\x79\xd0\x01\xe7\xd6\xe1\x9c\xb7\xc1\x9d\xf3\x96\xa8\x96\xa9\x9f\xb1\xcc\x18\x6f\x08\xf8\xcc\xd7\x5b\x46\x7c\x3d\x3d\x5b\xa3\xdc\xaa\x66\x8b\x1e\x92\xa6\x46\x90\x34\x85\xc3\x35\x70\xb8\x46\xcd\xc3\xf4\x5a\x98\x0d\xe3\x74\x8d\x83\x1e\xf8\xdd\xce\x07\x36\xc1\xbf\x7d\x79\xe2\x31\xe9\x5e\x92\x1b\xfd\xd4\xbd\x6f\xd8\x31\x47\x82\xd8\x03\xd8\x4f\x74\x32\x48\x53\x71\x55\x3e\x0d\x04\x67\x80\xd4\xb6\x06\x92\x6a\x88\x92\x0a\x59\xd7\x17\x94\x75\x8d\xf4\x32\xa4\x97\x21\xbd\x0c\xe9\x65\xb0\x06\x37\xbd\x45\xbd\xcc\xe5\x38\x8f\xa5\x85\x54\x94\x8d\xa9\x28\x3d\x35\xbc\xbc\x2f\xba\x9b\x52\x55\x55\xa5\xd5\xcc\x6e\xaa\xab\x50\xd5\x6e\xd6\x49\x49\x7f\x88\x3f\x29\x96\x6c\xaa\xff\xe2\x41\x3e\x61\xec\x83\xfe\xaf\xfb\xf7\x05\x97\xe4\xa8\x53\x2c\x88\x96\x2a\x17\x59\xb1\xab\xd8\x23\xee\x23\xf9\x24\xd8\xb5\x7f\xd2\x6b\x2d\x1e\x9d\xe0\x99\xb0\x87\x88\xc7\xb1\xad\x4d\x40\x92\x84\x47\x46\x05\xbd\xfd\xe1\x90\x65\x9a\x9e\xf1\x4c\x62\xc1\x77\x9a\xd7\xda\x53\xd7\x7d\xba\xa5\xec\x83\xe9\x31\xbd\x41\xa4\xca\xf5\x8e\x0d\xb7\xa2\x7a\x01\x01\x8f\x4b\xb2\xf9\xb5\xe3\x8e\xd2\x0f\x33\x5e\xaa\xdd\xef\x5d\x0c\x0e\xb7\x13\x95\x47\x3b\x0b\x67\x2e\xd7\x47\xdb\xf8\x00\x28\x90\x56\xdf\x66\x80\x73\x14\x48\x6b\xa7\x40\xda\x21\xd2\xaa\xb6\x2e\xda\xa8\x70\x3f\x4a\xa2\xc1\x4f\x7d\x79\xe8\x1f\x25\xd1\xda\x9c\x37\x28\x89\x06\xc3\x08\x86\x51\x5d\x47\x0e\xa8\x26\x5a\x0b\xa6\x51\x57\x45\xd1\x0e\x73\x8a\xd5\xd6\x42\x1b\x95\x76\x43\xa8\x26\xf4\xda\x65\xe8\xb5\x1e\xc9\x22\xec\xde\xfe\x13\x84\x6a\x96\xae\x3d\x2a\xb9\xd1\x75\x25\xb4\xf3\xc6\x3d\xde\xa9\x80\x47\xe5\x58\xc7\x8e\x60\x1e\xdd\x66\xbd\x96\x6b\x2b\x54\xef\x2b\x35\x01\x4b\xd0\xce\x37\x7a\x99\x27\x7a\x1c\x64\x3c\xa7\x17\x9b\xba\xed\x02\x5f\xe9\xb6\xd0\x4a\xd1\x9d\x1b\xde\xec\x95\x79\x79\x4a\xb6\xb2\x7e\x6b\x50\x95\xfa\x36\x83\xaa\x80\xaa\xb4\x43\x55\x8e\xda\xe3\x76\xe1\x95\xf5\x4d\x6e\x90\x76\x3a\x18\x0b\x6c\xf6\xcb\xb3\xd9\xc1\x58\xda\x9c\x37\x60\x2c\xf0\xd2\xc0\x44\xea\xd4\x44\x6a\x0f\xb2\x74\x6a\x24\x75\x45\x59\x8e\xf4\x56\xec\xc2\x2d\x23\xd1\x72\xc7\xbc\x2d\x10\x70\x10\x70\x03\x12\x70\x3d\xd2\x49\xd8\xce\xfd\x27\x9d\x6e\xe7\x67\xa2\x2e\x10\x20\xad\x62\x97\x0e\xe4\xc7\x1b\xd6\x0a\x77\x31\x39\x6d\xdd\x83\x17\xba\x4f\x57\xe4\xc5\x34\x02\x0b\x11\x60\x2a\x92\x5a\x90\xd4\x02\xfc\x02\xfc\x72\x46\xfc\x72\xd4\x4e\xb7\x93\xbf\xac\x6f\x75\x83\x34\xda\x01\x60\x60\xbf\x5f\x9e\xfd\x0e\x00\xd3\xe6\xbc\x01\x80\x81\xc7\x06\x86\x52\x5d\x47\xf6\x8f\xbf\x0c\x31\xc9\xe5\x58\x9f\xc5\x4e\xfe\x32\x12\x2d\x87\xa4\x17\xe8\xb7\xcb\xd0\x6f\x3d\x92\x49\xd8\xcd\xfd\x27\x48\x7a\x29\x5d\x7b\x54\xf2\x63\x88\x49\x2f\x7a\xdf\x97\x01\x57\x22\xef\x16\xab\x98\x0a\xba\x99\xad\xba\xe9\x8e\x9e\x4d\x66\x4c\x37\x8e\x7d\x31\x4f\xb1\x5d\xa2\xe8\x4b\x18\x7d\x52\x7c\xfd\xd7\x24\xbb\x8f\x22\xaf\x57\x7a\x41\x55\x36\xfe\xe0\x42\x0b\x60\x15\xa3\x85\xfa\x57\x35\x5f\x6b\x65\x69\xa8\x7d\x81\x3a\x26\x38\x74\x1a\x2f\x95\xe2\xfb\x39\x49\x9e\x16\x3c\x7b\x52\x85\x43\xc8\xbc\xe7\x54\xf0\x58\x59\x41\xf5\x9a\x0a\xf6\xed\xea\xe7\xcf\x9f\xff\xf1\xe9\xfe\xcb\x3f\xbe\x5d\x15\x25\x87\xcd\x69\xbb\x09\xe9\x61\xb9\x48\x23\x41\xb5\x85\xa7\xfe\xaa\x0b\xfe\xca\xe4\x3c\x36\x67\x9d\x4b\x65\x1c\x1a\x5a\x3a\x15\x5f\xe1\x99\x60\xe5\xd2\xac\xa6\x8e\xef\xb5\x62\xa1\x54\x41\x26\xf4\x33\x17\x85\xe1\x4b\xf2\xdb\xd6\x13\xae\x5e\xc8\x57\xf8\xe5\xb9\x29\x93\xeb\x8e\xa0\x94\x71\x2e\xb2\x67\x1e\xdd\xb0\x38\xc9\xe8\xb1\xa8\x00\xad\x2f\x4a\xbc\x5a\xd7\x3a\x0e\xe9\xf7\xae\xcd\xb6\x00\xb4\x2f\x3f\xab\xb4\x1c\xd7\x0f\xe6\x8e\x54\xb7\x75\x8a\x6d\xb9\xfa\xca\xe9\xde\xfa\x53\xea\x02\x7b\x48\xf7\xa3\x60\x33\xc1\xf3\x65\x26\xd8\x9c\xe7\x82\xad\x0c\x84\xbd\x92\x88\xb5\x96\x34\xf5\x7e\x53\x69\x1e\x6e\xd3\x65\xf7\x44\x33\x35\xc3\x5f\xcf\x69\xea\xdc\x3f\x2d\x60\xa7\xdf\xcb\x25\xa3\x8d\x87\xb1\x74\xfc\xbd\x12\xb9\xa9\xcf\x6c\x6b\x7e\xeb\x0e\xaf\x14\x8b\xf6\xe7\x94\x9b\x4e\x99\xb0\xaf\x32\x0e\xc4\xca\xc9\xf6\x76\x34\xad\xf6\xae\x56\xa2\xae\x14\xe3\xf6\x0f\x62\x7e\x4a\x17\xe7\xda\x18\x7c\x96\xc9\x52\xd9\x0a\xe4\xae\x34\xb0\x7e\x1b\x8a\xfa\xd0\xe6\xb3\xe2\xfd\x63\xdf\x89\x3f\x03\x91\x16\x55\x40\xcd\x25\x93\x99\xbf\xc9\xf7\xfe\xe8\x6d\xfb\x7c\xa6\x4a\x39\xe1\x47\xbe\xfa\x28\x52\xbf\x59\xc2\xcc\x06\x6f\x4d\xfa\x29\x54\xb8\x09\x56\x7f\xa6\x7f\x41\x46\x8a\xc8\x98\x31\x48\x5d\x11\xf1\x70\x29\xa8\xba\xfd\x9f\xa9\xb4\x25\x09\xbe\x9b\x8b\x58\x64\x84\x95\x66\xda\x32\xcd\x13\x36\x93\xb3\x5c\x88\x98\x2d\x64\xbc\xcc\x85\xfa\x9e\x51\x65\xf8\x20\x89\x67\x72\xee\x2a\x19\x18\xcb\xc9\x55\x79\x2f\x26\x67\xf5\x2d\x32\x1b\x9a\xb5\xca\x38\xfb\xbf\x6f\xff\x0f\xfb\x62\x4f\x1c\xff\xa0\x1f\x41\x84\xd6\xee\xcd\x93\xb9\x79\x40\xfb\x4d\xdf\xa2\x3c\x79\x12\xb1\x6f\xb2\xad\x44\x1d\x0b\x11\xae\x14\xb0\x8e\xa8\x3a\xbd\xcc\x8d\xfd\x96\x09\x95\x73\x53\xf5\x5c\xda\x9a\xb7\xae\x58\xf7\x7a\xb5\xf2\x09\xfb\xac\x6f\xfd\x22\xdd\xa1\xf9\xf6\x2e\x7a\x64\xec\x32\x60\x3c\xb3\xb6\x46\xb4\x29\x8a\xec\x0d\x4d\x7a\x42\x57\x05\xbb\x64\x80\xea\xc6\x52\xe3\x76\x76\x0b\x5d\x97\x1e\x98\xbc\xc2\x6e\x72\x53\x91\xfb\x27\xf1\x6a\x8e\x84\xf7\xff\x1c\xf1\x5c\xdf\xbf\xa8\xd8\xfd\xf2\x28\x4d\x31\x74\x19\x97\x3a\xc4\x7f\xdf\x4f\xe4\x52\x89\x6b\xc5\x6e\xbd\x8e\x33\xa7\xce\x66\x62\xcf\x42\xe5\x2b\x9d\xb1\x5e\xa3\xdc\x1e\x2f\x4f\x82\x86\xac\x60\x3d\x21\xf5\x7f\xcd\xa0\x3c\x89\x57\x5b\xf5\xdd\x5f\xf8\xdb\x95\x6b\xf2\xb7\x2b\x5b\xd4\x7d\x73\x15\x78\x5a\x20\xaa\x75\xe0\xfd\x1e\x41\x23\x47\x13\xc0\xae\xc6\xe5\xde\x53\x6b\x45\x92\xed\x6b\xe3\x77\x0e\x7b\xaa\xbe\x1d\x31\xe3\x89\xc9\xd9\x42\x2a\x45\x3b\x42\xc5\x1d\xb4\xef\xca\xeb\xa6\x5e\x3b\x58\xbc\xd9\x6a\x7b\xcf\x94\x28\x4e\xda\xd7\xef\x46\x26\x83\xdc\x57\x29\xd6\xcb\x93\x6f\xbb\x2f\x2c\xf1\x6a\xc7\xc9\x40\x8a\x6a\x95\x0f\xf1\x2c\xb2\xd7\xfc\x51\xc6\xf3\x7d\x9b\x4f\x57\xfb\x6a\x9f\x66\x30\x7d\x10\xf1\xa9\x88\x5a\xeb\x03\xba\xda\x39\xfa\xc0\x94\xec\x27\xb7\xd9\x82\xff\x29\x17\xcb\x05\x8b\x97\x8b\xa9\xc8\x4c\xeb\xad\xed\x61\xfa\x87\x6a\x2e\x13\x2c\x2c\x4a\x86\xd3\x32\x4c\x1b\xb1\xd4\x4f\x61\xca\x4e\xac\xaf\x6e\x7a\xfb\xd6\xff\xf6\x6f\x37\xd7\xff\xed\x2a\x5f\xc4\x45\x7f\xbb\xa2\x14\xa6\x68\x8c\x79\x01\x69\x25\x0a\x78\xec\x4a\xcb\x14\x6b\xa9\xe2\x0b\xbd\xb8\xc8\x5c\xfa\x4d\xd7\x3c\xa5\x96\x07\xa2\x58\x2d\xf5\xad\x4d\x5b\xf4\x30\x69\x91\x9a\xe7\x46\xae\x99\xb6\x9b\xcd\xd6\xb4\x4d\xbc\xd0\xb2\xc3\xe3\xb2\x3b\x55\x2f\x74\x8b\x64\x19\xd3\x65\x4c\x2b\xbf\x5b\xa6\xfa\x66\xa6\xb8\x8e\xfe\x97\xef\xdd\xea\x66\x14\x21\xa7\x05\xdd\xfd\xda\xcd\x1d\xbd\xb2\xcd\x64\x94\x0b\xbd\xc7\xe9\x7d\x47\x2f\x23\x41\x55\xc3\x56\x54\x88\x71\x3e\x07\x3e\xae\xaa\xba\x47\x99\x12\x19\xb6\x62\xbc\xdf\xcd\x2b\xa2\x88\xd6\xd2\x67\x2e\x23\xad\x1a\x0b\x7d\xae\x9b\x1c\x3c\x26\x89\xa2\xb2\xd8\xfa\x3a\x76\x0d\xb5\x63\xa1\xbb\x85\x67\xf3\x25\xc9\x76\x1e\x87\x6e\x87\xa2\x4e\xd2\x6d\xb3\xcf\xe3\x2f\x5d\xf4\xee\xc7\x19\xf3\x53\xaa\x10\x23\x4e\xdf\xac\x34\x40\x2a\x26\x16\x69\xfe\x5a\x15\x62\x5e\x7d\xf3\x5c\x6b\x96\x6d\x0d\xda\xb6\x19\xc8\xd9\xca\x56\x60\x76\x0f\x3f\x2f\xe7\x4b\x9e\xf1\x38\x17\xce\xa3\x5f\xd4\xb8\x51\xc5\x6b\x4f\x3b\x0a\x95\xb3\x2f\x9e\xdd\x6f\x6c\x5e\xf2\xe5\x09\x93\x4a\x2d\xad\x11\x20\xe3\x79\x24\x8a\x37\xc4\xab\x0c\x37\xe1\x6e\x9d\xdf\x59\x5b\x1d\xfe\x96\xfb\xed\xb4\x6e\x93\x25\x1b\x43\x2d\x45\x58\xbb\xdd\x92\xad\xb3\x9c\x2a\xfd\xe5\x38\xf7\x2d\x08\x4b\x64\xfa\x77\x6b\xa6\xa8\x64\x21\x72\xb9\x10\xba\xed\x33\x91\x65\x54\x04\xc8\xd4\x56\x2f\x09\x88\x42\x60\xe8\x11\x15\xb1\x5a\x66\xc2\x9f\x51\x6f\x25\x92\x73\xaa\x9b\x5e\x33\x4d\xa6\x17\x93\xc4\x10\x53\x0b\x1e\x45\x22\x63\xc1\xe3\x32\x7e\x32\x05\xed\x99\x5e\x36\x59\xc4\xb3\xb9\x1b\x68\x7a\xe3\xcd\xe5\x8d\x45\xa6\x84\xa0\x89\x97\x26\x4a\x49\x3d\xe1\x6c\xb7\xd1\x84\x2b\xbf\x5f\x26\x0c\x2a\x2c\x6c\x32\xba\x8f\x08\xcd\x78\x90\xfc\xb6\x1b\xbc\x9d\xc3\x36\xcc\x8f\x9e\xfa\x85\x2b\x07\x7c\x9c\xdd\xa9\xfb\x64\x5d\xe1\x18\xdd\xcf\x95\x1e\xe0\x60\x19\x99\xda\x4c\xc5\xb4\xd9\x7b\xf5\xd7\x9d\x54\xbf\xea\xd7\x15\xa7\xba\xa0\x18\xbf\x66\xad\x59\xd5\x6e\x4a\xe4\x6e\xe2\xe6\x19\x97\x7a\xe5\x8e\xd9\x8b\x1e\x61\xf7\x4d\x37\x0b\xf4\xd7\xdc\xbb\xe4\x0b\x2e\x65\xae\xee\x95\x5e\x31\x85\xc7\x33\x25\xff\x9d\x4c\xee\xc2\x24\x50\x77\xf4\xae\xe8\x15\xfa\x8e\x66\xfb\x2d\x4f\xe5\x1d\x4f\xe5\x6d\x90\xc4\xda\xe4\x53\x77\x7f\xf1\xc5\x94\xfc\x0d\x67\xf4\x5a\xe7\x5c\x46\x8a\x96\xa4\xb2\x80\xa0\x60\x8e\x3d\xbb\x7b\xa5\xf1\x67\xec\xf7\x4f\xb4\xdc\xfa\x2d\x49\x51\x49\xac\xd5\xb1\xd1\x52\x23\x4d\x23\x69\x16\x18\xbf\x4a\x9a\x20\x19\xa9\xd8\xa3\x9c\x3f\x52\xec\x4c\x90\x2c\x16\x22\xa6\x6a\x64\xe5\x91\xab\xdc\xcb\x3a\x06\x74\x97\x16\x57\xd2\x8b\x76\x26\xea\x6e\xac\xbf\x3b\xbc\x11\xfd\xb4\xee\x5a\xee\x76\x58\x7f\x97\x0b\xa1\x37\x2c\xe7\xb0\xd0\x5d\x7b\x67\xf6\x52\x23\xf9\x68\xd3\xa0\x45\x4b\x99\xea\x5c\xce\x03\xe0\x74\x0a\x8f\xa2\x1b\x96\x89\x39\xcf\x42\x62\xa6\x7a\x95\x8f\x5f\x19\x0f\x72\xf9\x2c\xf3\x57\xbd\xb3\xc9\xd8\xfd\xbf\x7d\xd7\x97\xdc\x3c\x5e\x5d\x55\xbf\xae\x97\xcd\x7f\x19\xc3\x31\xc9\x1c\x25\xd6\x43\x6c\xea\x93\xe9\xef\x4d\x69\x6b\x35\x83\x67\x42\xc2\xad\x66\xca\x1f\xc5\xc2\x6c\xa6\xc6\xe1\x4f\x1d\x12\x86\x37\x76\xbb\xba\xb1\xdf\x5d\x24\xcf\xa4\xc8\x4a\xa6\x24\xfb\x6a\x8a\xbd\xac\x4e\xe7\x7d\x3b\xad\x86\x4f\x1c\xec\xcf\xb3\x7f\xfd\xb1\x05\x43\x95\x93\x7d\xce\xc8\xa1\x9a\xc5\xca\x14\x20\xaa\xf4\x7d\x90\xa8\xd5\x9e\xef\x1f\x89\x2a\x0d\x17\x50\x54\xcd\xd7\xfa\x12\x22\x07\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x05\x16\x35\x84\x11\x05\x8b\xaa\x76\x0f\x58\x54\xff\x59\x14\xdd\xee\x4e\x0b\x8e\x2c\xd1\xdb\x7d\x26\x9e\x25\xbd\x2c\x9d\x82\x29\xab\xf7\xe2\x50\x3e\xcb\x70\xc9\xa3\xf2\x28\x71\x6f\xd3\xfd\xe2\x9f\xea\x8b\x7d\xaa\x09\x0b\x45\x9a\x89\x40\xef\xe3\x3f\x7a\xf5\x7d\x4d\x97\xbb\x2e\x5c\x79\x15\xdf\x8c\xe7\x59\x4c\xc6\x2a\x17\xbc\xb2\x4d\xae\xd2\xae\x97\xe2\x8c\x9f\xf5\xbb\xff\x26\x15\xc8\xd7\xda\xd0\xf6\x86\x7c\x6d\x39\xb7\x88\x96\x83\x0f\xda\xe2\xbb\x44\x0c\x46\x83\xd7\x3d\x0b\x5b\x7f\x61\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x5a\x5a\x6d\x81\xc4\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x80\xc4\x7a\x39\xa2\x40\x62\xd5\xee\x01\x12\x1b\x0a\x12\x0b\xb9\x58\x68\xfb\xa1\xe3\x14\xad\x66\x24\xec\x3d\x3d\xcc\x57\x91\x9f\x12\x80\xf9\x9b\x82\x7b\xd5\x0d\x24\xb8\x17\xb8\x17\xbd\x32\xfe\x3d\x01\xee\x02\xee\x02\xee\x02\xee\x02\xee\x02\xee\x02\xee\x02\xee\x6a\x69\xb5\x05\xee\x02\xee\x02\xee\x02\xee\x02\xee\x02\xee\x02\xee\x02\xee\x02\xee\x02\xee\x02\xee\xea\xe5\x88\x02\x77\x55\xbb\x07\xb8\x6b\x30\xb8\x4b\xa4\x51\xf2\xaa\x55\x64\x2f\x78\x97\x7f\x9a\x93\x02\x2f\x7f\x57\x10\xaf\xba\xa1\x04\xf1\x02\xf1\x32\xc4\xcb\xbf\x28\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x2d\xad\xb6\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\x40\x5e\xbd\x1c\x51\x20\xaf\x6a\xf7\x00\x79\x0d\x05\x79\xc5\x1e\xed\xdc\xfd\xff\xfd\xdf\xff\x8b\xb3\x10\x6b\xc8\x98\xa7\x60\x61\xfd\xa9\x88\x60\x63\x60\x63\x60\x63\x38\x05\x11\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\xac\xc7\x7c\x08\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x0c\x8c\x6c\x88\x8c\xcc\xb6\x5a\x3f\x00\x0d\x25\x5f\xe6\x8f\x4c\x05\x49\x2a\x6e\x98\x5a\x06\x8f\x7a\xe4\xc9\x5e\x11\x7c\x61\xbc\xbd\x69\x96\x50\x2f\xd7\x35\x2d\xe5\xf9\x63\x7d\xcb\xbc\x67\xb4\xfa\xb1\x9e\x7f\x5a\xe9\xdb\xa7\x3f\xe1\x7e\x07\x38\x08\x38\x08\x38\x38\x8c\x11\x05\x1c\xac\x76\x0f\xe0\xe0\xf8\xe0\xa0\xf9\xfc\x7f\x4f\xc0\x08\xcb\x60\x30\x76\xb2\x27\x99\xb1\x27\x19\x87\x5d\x01\xc2\x9b\xc2\xde\x21\x9b\xce\x6a\x63\x6d\x32\x15\x86\xdc\x75\xc5\x01\x50\xba\x76\x0b\x78\x11\x68\x11\x68\x71\x10\x68\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x11\x58\x71\x18\x58\x91\x78\xa2\xed\x81\x5d\x3e\x87\x26\xe8\xb0\x2f\xd4\x10\xb8\x14\xb8\x14\xb8\x14\xb8\xb4\xd7\x23\x0a\x5c\x5a\xed\x1e\xe0\xd2\x81\xe3\x52\x14\xd1\x2b\xd0\x66\xa5\x9c\x1e\xa8\x26\xa8\xe6\x20\xa8\x26\xca\xe7\x01\x68\x02\x68\x02\x68\x02\x68\x02\x68\x02\x68\x02\x68\x02\x68\x02\x68\x02\x68\x02\x68\x02\x68\x02\x68\x02\x68\x02\x68\xf6\x1e\x68\x02\xfc\x01\xfc\x01\xfc\x01\xfc\xf5\x7a\x44\x01\xfe\xaa\xdd\x03\xf0\x37\x1a\xf0\xd7\x93\xf4\xc8\x76\xe1\xdf\x89\xb3\x22\xeb\x10\x09\xb0\x21\xb0\xe1\xca\x55\x7b\x84\x0d\x81\x0c\x81\x0c\x81\x0c\xdd\x87\x40\x86\x40\x86\x40\x86\x40\x86\x40\x86\x40\x86\x40\x86\x40\x86\x40\x86\x40\x86\x40\x86\x40\x86\x40\x86\xbd\x44\x86\xe5\x1c\xc8\x0d\xae\x06\xa4\x3e\xd6\xb7\x19\x04\x14\x04\x14\x04\x14\x04\x14\x04\x14\x04\xf4\xc2\x09\xa8\x48\xa3\xe4\x55\x1b\x09\xbd\xc8\x7d\xf4\x4f\x73\xa6\xe4\x47\x7f\x7f\x64\x3f\x02\x63\x0e\x06\x63\x9e\x20\xfb\xd1\xbf\x18\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x2d\xad\xb6\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x60\x99\x17\xc7\x32\x01\xff\x00\xff\x00\xff\x00\xff\x7a\x3d\xa2\x80\x7f\xd5\xee\x01\xfc\x1b\x0f\xfc\xeb\x4b\xfe\x63\xbb\x00\xf0\xd4\x09\x90\x75\x94\x04\xe8\x10\xe8\x70\xe5\xaa\x3d\x42\x87\xc0\x86\xc0\x86\xc0\x86\xfe\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\x43\x60\xc3\x5e\x62\xc3\x4a\x0a\xe4\x06\x5f\x03\x72\x20\xeb\xdb\x0c\x0c\x0a\x0c\x0a\x0c\x0a\x0c\x0a\x0c\x0a\x0c\x7a\xd9\x18\x34\x13\x04\xbc\x7a\x52\xff\xf1\x8b\x79\x9a\xb3\x15\x80\x2c\xee\x8f\x1c\x48\x80\xcc\xc1\x80\xcc\xee\x73\x20\x8b\x17\x03\x30\x13\x30\x13\x30\x13\x30\x13\x30\x13\x30\x13\x30\x13\x30\xb3\xa5\xd5\x16\x30\x13\x30\x13\x30\x13\x30\x13\x30\x13\x30\x13\x30\xf3\xe2\x60\x26\xe0\x1f\xe0\x1f\xe0\x1f\xe0\x5f\xaf\x47\x14\xf0\xaf\xda\x3d\x80\x7f\xe3\x81\x7f\x3d\xc9\x81\x6c\x19\x00\x9e\x38\x07\xb2\x96\x92\x00\x1d\x02\x1d\xae\x5c\xb5\x47\xe8\x10\xd8\x10\xd8\x10\xd8\xd0\x7f\x08\x6c\x08\x6c\x08\x6c\x08\x6c\x08\x6c\x08\x6c\x08\x6c\x08\x6c\x08\x6c\x08\x6c\x08\x6c\x08\x6c\x08\x6c\xd8\x4b\x6c\x58\xce\x81\xdc\xe4\x6b\x40\x0e\x64\x7d\x9b\x81\x41\x81\x41\x81\x41\x81\x41\x81\x41\x81\x41\x2f\x1b\x83\xaa\x9c\xe7\x62\xb6\x8c\x7a\x92\x04\xf9\xd5\x3e\xce\xd9\xb2\x20\x4b\x0f\x80\x34\x48\xb0\xcc\xc1\xb0\xcc\xee\xd3\x20\x4b\x6f\x06\x80\x26\x80\x26\x80\x26\x80\x26\x80\x26\x80\x26\x80\x26\x80\x66\x4b\xab\x2d\x80\x26\x80\x26\x80\x26\x80\x26\x80\x26\x80\x26\x80\xe6\xc5\x01\x4d\x00\x40\x00\x40\x00\x40\x00\xc0\x5e\x8f\x28\x00\x60\xb5\x7b\x00\x00\x47\x04\x00\x7b\x92\x08\xd9\x36\x04\x3c\x71\x26\x64\x3d\x28\x01\x3e\x04\x3e\x5c\xb9\x6a\x8f\xf0\x21\xd0\x21\xd0\x21\xd0\x61\xf1\x21\xd0\x21\xd0\x21\xd0\x21\xd0\x21\xd0\x21\xd0\x21\xd0\x21\xd0\x21\xd0\x21\xd0\x21\xd0\x21\xd0\x21\xd0\x61\x2f\xd1\x61\x39\x17\x72\xa3\xb3\x01\xc9\x90\xf5\x6d\x06\x0b\x05\x0b\x05\x0b\x05\x0b\x05\x0b\x05\x0b\xbd\x10\x16\x8a\xca\x8f\xff\x7c\x5b\xad\xf7\xf8\x6b\x92\xdd\x47\x91\x87\x98\x0a\xe4\x12\xe4\x72\x10\xe4\x12\xf5\x1f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\x01\x2f\xfb\x0f\x2f\x81\xbc\x80\xbc\x80\xbc\x86\x31\xa2\x40\x5e\xd5\xee\x01\xf2\x1a\x0a\xf2\xc2\x41\x9f\xa9\xfa\xe7\xdb\x95\xe3\x3d\x41\xbd\x56\x07\x13\xd4\x0b\xd4\x0b\x39\x7b\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\x7d\x44\x3e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xc0\x5e\xd5\xd6\x00\x7b\x01\x7b\x01\x7b\x01\x7b\x01\x7b\x5d\x20\xf6\x5a\xea\xed\x24\xb7\x8f\x4f\x38\x41\x26\x77\x07\x21\xaf\xae\x51\x4f\x13\x9c\x36\x17\x39\x93\xf1\x2c\xc9\x16\x7e\x7e\x73\x66\xfc\xf7\x9b\x89\xd7\x5c\xe4\xf7\x95\x6e\xb8\x7f\xf8\xf8\xdf\xab\xbf\x39\x17\xe0\x1a\x2c\x77\xf2\x9d\x38\x74\xea\x54\x99\x1a\xa5\xdf\xbd\x29\xdf\xbb\xc9\x5b\xf5\xfc\x76\xd8\x2f\x56\xc5\x7a\x34\x6b\xe6\x3e\x6f\xd5\x3f\xdf\xde\x3f\x7c\xfc\x52\xf7\x4b\xbc\x5b\xfb\xbf\x5b\xae\x23\xa9\xee\xe6\xa8\x5e\xb1\x2a\xe2\x3d\xe4\x2d\x23\x6f\x7e\x26\x9e\xa5\x78\xa9\x44\x6f\x1c\xc0\x58\xff\xa5\x8d\x2d\x6b\x62\xde\x50\x9c\x46\xc0\x73\x67\x42\x57\x9c\xc8\x65\xa8\x39\x15\x2c\xd5\xdb\xbe\xd2\xd6\x18\xbb\x8f\x99\x8c\x0d\xc2\x49\x32\xb6\x8c\x3d\x05\x0a\x59\x98\xbd\x7e\x59\xc6\x2c\x94\x99\xd0\xe2\x4a\x78\xb4\xa0\xed\x55\x72\x08\x58\xb6\xe2\x66\xa5\xf5\x64\xb3\xd9\x32\x23\xef\x51\x9a\x25\x81\x50\x64\xb9\x5b\x2d\x67\xad\xa3\x09\xfb\x27\xdd\x91\xbc\x72\x64\x6a\xff\xc8\x6e\xd9\x7d\x14\xfd\x48\x76\x79\x98\xbd\xb2\x6c\x19\x33\x95\x73\xad\x8a\x9c\x33\xc2\x5e\x4e\x84\x7b\xaa\x15\xd3\x8e\x53\x6a\x5e\x72\x22\x7d\xe2\x31\x9f\x8b\xcc\xb8\x43\xcd\xf1\x2f\x4a\x25\x81\x24\xfb\xde\x3b\x1e\x39\x79\x8c\x93\x8c\xe9\xc9\x92\xbf\x7a\x87\xc7\x82\x3f\xe9\x7e\xcb\x1f\x85\x12\x4e\x1f\x6a\xad\xec\x10\x1c\x51\xa8\xa9\x60\xa4\x88\xc9\xc9\x98\x64\xec\xed\xbb\x1f\xf4\x77\x33\x1e\x10\x2b\x8c\x92\x78\x6e\xd4\x20\x39\x02\x83\x24\xce\xb9\x8c\x8d\x25\x4e\x4b\x65\xf1\x5d\xe2\x27\x96\x64\xb2\xe9\xab\x37\x6a\xe6\x49\xc4\xe3\xf9\x24\xc9\xe6\x77\xe9\xd3\xfc\x6e\x19\xcb\x20\x09\xc5\xdd\x5f\x3e\xaa\x07\x7d\x95\x83\xbc\xf3\xb6\x63\x4e\x39\x20\x43\xf1\x50\x38\x31\x5c\x44\x5e\x24\xaa\xe5\xa0\x2e\xe3\x1a\x64\x9c\xfd\xae\x17\xa2\x2f\xb4\x10\x6d\xd9\x29\xcd\xd7\x57\x37\xcb\x0d\xbf\xdd\xb0\x86\xb1\xd5\x65\xdd\xf4\xe9\x34\x09\x5f\x57\x77\x24\xd7\xa9\x75\x9f\x6d\x39\xca\xe8\xa8\xbd\x6c\xb2\xb2\x56\x3f\xbf\x9d\x94\xdb\xb7\x79\xff\xaa\xed\x6e\xe8\x85\x56\xfb\xf8\xa6\xfa\xd4\xbb\x35\xc2\x2f\xc6\xf5\xdd\xbf\x47\x7f\xb7\xf3\xd1\xef\x83\x40\xa4\x3d\x7c\xf6\x21\x4a\xb3\xdd\xd1\x77\xb4\xb4\xb6\x11\x78\x57\xa7\xf4\xea\x23\xf1\xea\x97\xcd\x06\x91\x78\x7b\x08\xcc\xa9\xc8\xf9\xa5\xdb\x72\xd4\x07\x30\xe8\xca\x9f\xc0\xa0\xf3\x63\xb5\xba\x6a\xd0\x6c\x39\xce\xaa\x33\x2f\x1d\x4c\x3b\x98\x76\x30\xed\x60\xda\x0d\xda\xb4\xa3\xa5\x6c\xe4\xf6\x1d\xb5\x11\x46\x5e\xf7\x46\xde\x3e\x1d\xdd\x47\x4b\xef\x88\xe7\xef\x87\xb9\x77\x70\x03\x06\xab\xde\x06\x6c\xf8\xad\x34\x65\x97\xf5\xa7\x3b\x1e\x64\xdc\xf7\x02\xc0\xb8\xfb\x04\x60\xfc\xaa\xf2\x7e\x34\xb7\xed\xd6\x5e\xa9\x8b\xc4\xe2\xbe\x17\x40\xc5\x2b\xff\x83\x13\xa5\x18\xab\xf2\x34\xd9\x0b\x8a\xd7\xbd\x62\x1b\x0a\x1a\x47\x49\xc0\x23\xb5\xa4\x98\x6a\x1e\x04\x42\x29\x38\x57\xe0\x5c\x81\x73\xe5\x74\x03\x82\xe2\x35\xf0\x2a\x79\xaf\xd2\x6f\x7a\x39\xfe\x6a\x96\xe3\x7b\x5a\x8e\xf7\x70\x31\x95\x34\x45\x51\x5f\xbd\xc9\x15\x07\xec\x73\x2a\xb6\xba\xe7\xb7\x93\x8d\x6d\xdd\xac\x04\x6a\x47\x07\xca\xab\xb3\xfe\xee\x89\x07\xaa\xe5\x66\x9c\xcd\x11\xd5\x6a\x3b\x06\x28\x84\x4f\xeb\x89\x5a\xd5\xd5\xf5\x8e\xa8\x06\x2b\xee\xe1\xe1\x08\x75\xd2\x5e\x89\x68\x06\x09\x0f\x09\x0f\x09\x0f\x3e\xda\x1b\x25\xfb\x55\x44\xb3\x16\x84\x6c\x83\xcb\x8c\x45\xbd\x6e\x6a\x2a\xc4\x6b\x4f\xba\xbb\x8f\xda\xf5\xe8\x56\xf4\x43\xba\x1e\xd9\x0c\x28\xd7\x56\x94\xeb\xee\xc5\xb6\x33\xe1\x9a\x2d\x23\x01\xdd\x0a\xdd\x0a\xdd\x0a\xdd\xda\x17\xdd\xfa\x45\xaf\x49\x47\xcb\xd6\x0d\x57\x19\xa1\x6a\x2d\xb7\x14\xa2\xb5\x1f\xbd\xdd\x73\xcd\x7a\x50\x23\x7a\x27\x59\x0f\x68\x05\x14\x6b\xdb\x8a\xb5\x7e\x9d\x6d\x59\xb0\xc2\xcb\x0a\xb5\x0a\xb5\x0a\xb5\xda\x1b\xb5\xda\x82\x87\xf5\x42\xbc\xab\xf0\xac\x9e\x4c\xa4\x0e\xdf\xab\x3a\x02\x8f\x2a\xbc\xa9\xe7\xd6\xa6\xa7\xf3\xa4\x5e\xea\x81\x04\xa5\x6d\x0c\xe7\x11\x20\x94\x9e\x35\x5d\x39\xf6\x3c\x8e\x60\xe3\x1b\x87\xa0\x7a\xd8\x8a\xb0\x15\x7b\x68\x2b\x22\xa8\x1e\x46\x72\xeb\x41\xf5\xb4\xe6\x5f\x64\x64\xbd\x49\x71\x47\x78\xfd\x49\xed\xe8\x83\x3b\xbd\x87\x16\x75\x5b\x6d\xe9\x85\x6d\xdd\x4e\x63\x86\xaa\x95\xfb\x68\x6a\x1f\x10\x72\x7f\xec\x41\x10\xce\x04\x40\xf0\x3d\xa4\x3e\xa4\x3e\xb0\xd0\xce\xd6\x9c\x52\xf1\xb6\x14\x7c\x4f\x2b\xdc\xe5\x44\xe0\x9b\x7d\x1d\x61\xf8\xa7\x17\xb9\xa3\x88\xc5\x6f\xa9\x29\x3d\x92\xb8\x17\x12\x95\x3f\x04\x85\xbb\x7f\x68\x7e\x07\x02\x17\x41\xfa\xd0\xb7\xd0\xb7\xd0\xb7\x7d\xd2\xb7\x47\x04\xe9\xaf\xca\xdb\x71\x47\xea\xaf\x6d\xe9\x08\xd7\x3f\xb9\xb8\x1d\x6c\xcc\x7e\x3b\x2d\xe9\xa7\xb4\x1d\x71\xf4\xfe\xc0\x94\x6d\xb3\x10\xfe\xd6\x84\x2d\xbc\xb6\x50\xb5\x50\xb5\x50\xb5\xbd\x51\xb5\x6d\x79\x6c\x2f\xc9\x5b\x0b\x4f\xed\x69\xc5\xec\x48\xbc\xb4\x63\xf1\xd0\xc2\x3b\xdb\x0b\x0d\xdb\xa1\x67\x36\x51\x01\x8f\x64\x3c\x1f\x76\x78\xff\x81\xa5\x27\x5c\xe3\x51\x78\xc2\x7d\x82\xc2\x13\x57\xa5\x97\xa2\x71\x0c\xbf\x7f\x8b\x2e\xb1\xda\x84\x6b\x3c\x6a\x4d\x54\xfe\x87\x04\x99\x62\xac\x8a\x49\xb2\x4f\xa5\x89\xf2\x5b\x45\x4f\xac\x0d\xda\x28\x4d\x42\xf7\x99\x31\x32\xf6\x7f\xdb\x9a\xda\x4e\x91\x54\xb9\xb6\xb3\x5f\x78\x1e\x3c\x32\x13\xf5\xaf\xf4\x06\xa3\x77\x66\xf6\xff\xf3\x8f\xf4\x90\x84\xf7\xfe\x91\xb6\xbc\x2f\xfa\x7a\x95\x17\x66\xc3\x25\x7e\x4d\xb2\xfb\x28\xf2\xb1\xe0\xbd\x78\x97\x36\xfe\x40\xdf\xec\x27\x95\x67\x82\x2f\xfe\x8b\x3a\x6a\xef\x6b\x57\x7f\xdd\xef\x97\x76\x52\x9a\x97\xfa\x4d\xdd\x30\x82\xa3\x7e\x6b\x77\x6b\x64\x3d\xd1\x5b\xd2\xc8\x7e\x2f\xae\x95\xc6\xbb\xdf\xc1\x06\x99\xb0\x85\xf7\x65\x7f\x9f\x2c\x8f\xa2\xe4\xe5\x5f\x7a\xe2\xfe\x9c\x24\x4f\x0b\x9e\x3d\x29\xe7\xf5\x54\x76\xdd\x10\xcf\x22\xd6\xff\x87\x5c\x80\xaf\xa9\x60\xdf\xae\x7e\xfe\xfc\xf9\x1f\x9f\xee\xbf\xfc\xe3\xdb\xd5\x84\x7d\x15\x99\x7e\x40\xe3\x09\x0c\x13\xf2\xd9\xca\x45\x1a\x89\x85\x88\x73\x36\xf5\x57\x5d\xf0\x57\x26\xe7\x71\x92\x09\x96\x3f\x4a\xc5\x66\x11\x9f\x93\xb3\xaf\xf8\x0a\xcf\x04\x53\xfa\x57\x3c\x27\x97\x97\xa2\x4b\x5f\x2b\x16\x4a\x15\x64\x82\x0c\x0d\xf6\x4b\x24\xe9\x79\x4a\x2e\x62\xae\xf4\x32\xb9\x72\xa1\x4c\xe4\xcb\x2c\x16\xa1\xbe\x18\x8f\x5f\x99\x4a\x45\x20\x67\x32\x60\x32\xce\x45\xf6\xcc\xa3\x1b\x16\x27\x19\x3d\x56\xfe\x28\x5e\xdd\x45\x8a\xfb\x1a\x47\xae\x12\x71\x48\xbf\x77\x6d\x36\xfd\xc1\xc2\x65\x26\xe3\x39\xe3\x4c\x09\xa5\xe8\xc1\x3e\xce\x4c\xc3\xa4\x32\x0f\x65\xba\xef\xc6\xb6\x56\x8a\x28\xd4\x1f\x99\x2e\x08\xed\xd7\x05\x9b\x09\x9e\x2f\x33\xc1\xe6\x3c\x17\x6c\x65\x20\xec\x95\x44\xac\x15\x4d\x48\x3e\xec\x54\x9a\x87\xdb\x74\xd9\x3d\x9d\x81\x35\xc3\x5f\xef\x19\x9c\x26\x49\x24\x78\xdc\xb6\xa3\xf3\xf7\x47\x41\x7e\x5e\x19\x2f\x05\x4b\xe8\x9f\xdd\xc0\x4e\xf5\x38\xe4\xec\xe5\x51\xc4\x7a\x2c\x33\x29\x9e\x75\x87\x2f\x12\x1a\x5b\xb5\x8c\x72\xc5\x66\x59\xb2\x28\x8d\xd8\x84\x7d\x95\x71\x60\xe7\x97\xf1\x3b\x4b\xe5\x46\xd3\x7a\x8b\x6f\x58\x60\x27\x90\x1e\x79\x72\x34\x2f\x95\x19\x76\xff\x20\xe6\xa7\x74\x71\xce\xd2\x4c\x3c\xcb\x64\xa9\x18\x75\xa3\xe3\x09\xf4\x36\xc8\xd0\x54\x5f\x8c\xec\x67\xc5\xfb\xc7\xbe\x13\x7f\x06\x22\xcd\x4d\x1a\x9d\xf7\x82\x27\x33\x7f\x93\xef\x69\xee\x97\x66\x9b\x7e\x9c\x4c\x50\x62\x1e\x5f\x7d\x14\xa9\xdf\x2c\x61\x66\x83\x27\x1e\x7e\x0a\xd9\x99\x2d\xc2\xb5\x9f\xe9\x5f\x90\x5b\x5d\x64\xcc\x40\x93\x97\x47\x41\xac\x23\x5c\x0a\x96\x27\x4c\xfc\x99\x4a\xb3\xc3\xb3\xef\xe6\x22\x16\x19\x8f\xa2\x57\x36\x93\xcf\xf4\xe9\x4c\xce\x72\x21\x62\xb6\x90\xf1\x32\x17\xea\x7b\xad\x25\xe8\xd9\x66\x72\xbe\xb4\x3f\x33\xbe\x7e\x96\xc4\xa5\xb6\xdc\xac\xbd\x45\x66\xff\xb3\x1c\x81\xb3\xff\xfb\xf6\xff\x30\x27\x10\x3f\xe8\x47\x10\xa1\x65\x33\x79\x32\x37\x0f\x68\xbf\xe9\x5b\x44\xa5\xcd\x7d\x93\xcd\x18\xb2\x58\x88\x50\x99\x6f\x11\x20\x8a\x73\xa6\x97\xee\x1b\xdd\x61\x44\x1c\x32\xa1\x72\x9e\xd1\x6a\x22\x33\xfa\x8c\x2e\x9c\x2c\xf3\xea\x88\xd3\x7b\x34\x61\x9f\xf5\xad\x5f\xa4\x12\x37\xe5\xbb\xe8\x91\xb1\xcb\x40\x42\xcf\x46\xd7\xb1\xab\x64\x81\x46\xe8\x09\xf5\xf0\x08\xf9\x5c\x46\x26\xba\xb1\xd4\xb8\x9d\xdd\x42\xd7\xa5\x07\xd6\x33\xdd\x4f\xee\x58\xfc\x99\xb3\x27\xf1\x7a\xc3\xa6\xcb\xbc\xf8\xe7\x88\xe7\xfa\xfe\x2a\xe6\xa9\x7a\x4c\xf2\x1b\xf6\xf2\x28\x83\x47\x5a\x0c\xe2\x52\x87\xf8\xef\xfb\x89\x6c\x1f\xdf\xbc\x42\xb7\x5e\x17\xd2\x02\xae\x57\x4e\xe3\x3b\x0f\x6f\x2c\x93\xd3\x7f\x25\xfa\xfd\x89\x44\xae\x97\xd3\x59\x2e\xcc\x9c\x9e\xc9\x4c\xe5\xab\x9d\x61\xd8\x97\x8c\x83\x68\x19\x9a\x35\xcb\x80\x34\xa3\x7f\x88\xdb\xe8\x09\xa9\xff\x6b\x06\xe5\x49\xbc\x9a\x05\xbb\xb8\xf0\xb7\x2b\xd7\xe4\x6f\x57\x93\x6f\xf1\xb7\xf8\xf7\xca\x5a\xa7\xdf\x02\xb5\x4c\xd3\x24\x23\x34\xa5\x17\x08\xb3\x53\x49\x45\x8b\x50\xb1\x47\xd0\xc8\xd1\x04\xb0\xab\x71\xb9\xf7\x4c\x27\xd0\x1c\xfc\xa7\xd9\x61\xed\x6b\xe3\x77\x8e\xe9\x6b\x79\xc4\x0c\x2d\xcc\xd9\x42\x2a\x45\x3b\x42\x05\x59\xee\xbb\xf2\xba\xa9\x77\x4a\xac\x74\xcf\x94\x88\x04\x11\xbc\x3c\xa1\x77\x23\x93\x81\x79\x13\x8c\xa9\x30\x2b\xda\xee\x66\x85\xe9\x03\x99\x99\xee\x57\x13\xf6\x5e\xcc\x38\xcd\x1c\xbd\x7c\x3c\x8b\xec\x35\x7f\xd4\x5a\xf2\x10\xb2\xf6\xd5\x3e\xcd\x60\xfa\x20\xe2\x53\x11\xb5\xd6\x07\x74\xb5\x73\xf4\x41\x24\x17\x32\x37\xa0\x77\xc1\xff\x94\x8b\xe5\x82\xc5\xcb\xc5\x54\x64\xa6\xf5\xd6\x54\x31\xfd\xa3\xbb\x82\x76\x31\xbb\x3c\x05\x3c\x8a\x68\x19\xa6\x8d\x58\xea\xa7\x60\xe2\x4f\x5a\x74\xd7\xa5\x93\xe9\xd7\x7f\xbb\xb9\xfe\x6f\xfb\x0e\xdb\xcd\x82\xae\xb7\x10\x39\x0f\x79\xce\xf5\xdd\xb8\x7d\x01\x69\x25\x0a\x78\xac\x57\x92\xa5\x2a\xaf\xa5\x8a\x2f\xf4\xe2\x22\x73\xe9\x37\x5d\xf3\x94\x5a\x1e\x88\x62\xb5\xd4\xb7\x36\x6d\xd1\xc3\xa4\x45\x6a\x9e\x1b\xb9\x66\xda\x6e\x36\x5b\xd3\x36\xf1\x42\xcb\x0e\x8f\xcb\xc8\x5f\x2f\x74\x8b\x64\x19\xd3\x65\x4c\x2b\xbf\x5b\xa6\xfa\x66\xff\x11\x59\x62\xfe\xe5\x7b\xb7\xba\x19\x45\xc8\x69\x41\x77\xbf\x76\x73\x47\xaf\x6c\x33\x19\xe5\x42\xef\x71\x7a\xdf\xd1\xcb\x48\x50\xd5\xb0\x15\x15\x62\x02\x24\x02\xe1\x62\x10\xaa\x7b\x94\x7e\x82\x50\x4b\x8c\x85\x8c\x85\xdf\xcd\x2b\xa2\x88\xd6\x52\xe7\x07\x2b\xf4\xb9\x6e\x72\xf0\x98\x24\x4a\xd0\x2a\x96\x27\x6e\x0d\xb5\x63\xa1\xbb\x85\x67\xf3\x25\xc9\x76\x4e\x9b\x12\x35\x88\x3a\x49\xb7\xcd\x3e\x4f\xc5\xc5\x66\x7a\xf7\xe3\x8c\xf9\x29\x55\x88\x11\xa7\x6f\x56\x1a\x20\x15\x13\x8b\x34\x7f\xad\x0a\x31\xaf\xbe\x79\xae\x35\xcb\xb6\x06\x6d\xdb\x0c\xe4\x6c\x65\x2b\x30\xbb\x87\x9f\x97\xf3\x25\xcf\x78\x9c\x0b\x17\x75\x42\x60\xdd\x8e\x94\x7f\xed\x69\x47\x59\x52\x1c\x88\x7f\x76\xbf\xb1\x79\xc9\x97\x27\x4c\x2a\xb5\xb4\x46\x80\x8c\xe7\x91\x28\xde\x10\xaf\x32\xdc\x84\xbb\x75\x91\x12\xda\xea\xf0\xb7\xdc\x6f\xa7\x75\x9b\x2c\xd9\x18\x6a\x29\xc2\xda\xed\x96\x6c\x9d\xe5\x54\xe9\x2f\xc7\xb9\x6f\x41\xe8\xcd\x3a\xdb\x83\x7a\xac\x92\x85\xc8\xe5\x42\xe8\xb6\xcf\x44\xa6\x67\xa8\x7e\x0b\x57\x14\x55\x21\x30\xf4\x88\x8a\x58\x2d\x33\xd7\x7d\xdc\x49\x24\x17\x06\x62\x7a\xcd\x34\x99\x5e\x4c\x12\x43\x4c\x2d\x78\x14\x89\x8c\x05\x8f\xcb\xf8\x49\x19\xc4\xa1\x97\x4d\x16\xf1\x6c\xee\x06\x9a\xde\x78\x73\x79\x63\x91\x29\x21\x68\xe2\xa5\x89\x52\x52\x4f\x38\xdb\x6d\x34\xe1\xca\xef\xd7\x32\x0d\x29\x4a\xc5\xdb\x64\x74\x1f\x11\x9a\xf1\x20\xf9\x6d\x37\x78\x3b\x87\xed\x01\x18\xf4\xd4\x2f\x5c\xb9\xa0\x24\x67\x77\xea\x3e\x59\x57\x38\x46\xf7\x73\xa5\x07\x38\x58\x46\x74\x47\x59\x4c\x9b\xbd\x57\x7f\xdd\x49\xf5\xab\xbe\xb6\x50\xd7\x22\x4e\x2e\x27\xaa\xa4\x59\x6b\x56\xb5\x9b\x12\xb9\x9b\xb8\x79\xc6\xa5\x5e\xb9\x63\xf6\xa2\x47\xd8\x7d\xd3\xcd\x02\xfd\x35\xf7\x2e\xe9\xb5\x67\x6a\x97\x87\x90\xd4\xa1\x5e\x31\x85\x0f\x28\x2a\xb9\xfb\x64\x72\x17\x26\x81\xba\xa3\x77\x45\xaf\xd0\x77\x34\xdb\x6f\x79\x2a\xef\x78\x2a\x6f\x83\x24\xd6\x26\x9f\xba\xfb\x8b\xbb\xe1\xad\xbf\xe1\x8c\x5e\xeb\x9c\xcb\x48\xd1\x92\x54\x16\x10\xcb\x58\x89\x7c\xcf\xee\x5e\x69\xfc\x19\xfb\xfd\x13\x2d\xb7\x7e\x4b\x52\xec\x31\x79\x59\xd3\xd5\x5a\x6a\xa4\x69\x24\xcd\x02\xe3\x57\x49\xfd\x26\xd3\xdc\x7b\x94\xf3\xc7\xe8\x95\x4c\xdb\xc5\x42\xc4\x7a\x25\xcb\xcb\x23\x57\xb9\x97\x75\x0c\xe8\x2e\x2d\xae\xa4\x17\xed\x4c\xd4\xdd\x58\x7f\x77\x78\x23\xfa\x69\xdd\x13\xdd\xed\xb0\xfe\x2e\x17\x42\x6f\x58\xce\x61\xa1\xbb\xf6\xce\xec\xa5\x46\xf2\xd1\xa6\x41\x8b\x16\x59\x6e\x7a\xb1\xf5\xc0\x9a\xb6\x79\x1e\x45\x37\x2c\x13\x73\x9e\x85\x14\xe5\xa7\x57\xf9\xf8\x95\xf1\x20\x97\xcf\x32\x7f\xd5\x3b\x9b\x8c\xdd\xff\xdb\x77\x7d\xc9\xcd\xe3\x7d\x15\x41\x12\x87\x1b\x7c\x54\x1d\x2d\x9b\xff\x32\x86\x63\x92\xb9\xb8\x46\x3d\xc4\xd4\x03\xf4\xbd\x29\x6d\xad\x96\x1a\xd2\x16\x69\x35\x53\xfe\x28\x16\x66\x33\x35\x7c\x80\x3a\x24\x0c\x6f\xec\x76\x75\x63\xbf\xbb\x48\x9e\x49\x91\x95\x4c\x49\xf6\x95\x44\xd4\xeb\xea\x74\xde\xb7\xd3\x6a\x70\xc6\xc1\xfe\x3c\xfb\xd7\x1f\xbb\x51\xd7\x86\x63\xdf\x9a\x10\x30\xa3\x7c\xda\x85\x60\xe6\x9a\x2c\x48\x22\x6d\x68\xd9\x09\xbb\x3f\xfb\x32\x97\xa9\xd0\xaf\x5f\xfc\x25\x8b\x63\x8f\x1a\x5c\xb8\xdb\x08\xc3\x4e\x78\xee\x7b\x6a\xfc\x67\xea\x53\xd5\x90\x0b\x6d\x07\x42\x70\xfc\xc2\xf1\x0b\xc7\x2f\x1c\xbf\x63\x73\xfc\x6e\xd9\x96\x77\x39\x7f\xb7\x4b\xbc\xed\xdb\xf3\x5e\x6b\x2f\xf2\x70\x1a\x0f\x54\x4d\x2e\xce\xc9\x86\xe9\x64\xde\xfa\x66\x5d\xb1\xd9\x63\x7f\xb2\x1e\xf9\xbd\x6c\x76\x48\x6d\xf2\x93\x35\xc0\xa6\x62\x66\xc2\x0a\xbc\x67\xa7\x90\x12\x76\xf5\xa2\xa9\x53\xca\x43\x8a\x93\xf8\x36\x16\x73\x4e\x13\xd4\x1a\x0e\xe5\x7c\x25\xe3\xe5\xf5\xaf\x86\x15\x91\x72\xb1\x10\xa1\xe4\xb9\x88\x5e\x0b\xde\x5f\x6c\xb9\x32\xba\xb1\x86\x01\x75\x3a\x9b\x67\x3c\xa0\xb7\x46\x26\xa1\x17\x04\xc5\xa6\x4d\xc1\x14\x6e\x96\x2e\x95\x7e\xc8\xf2\x70\x71\xfd\x4b\xd7\x20\x7b\x93\x99\x59\x03\xdd\x25\x26\xe6\x39\x17\x82\xc7\xb5\xcf\x78\xc0\x30\xd3\x33\x3f\xd0\x23\xd7\x19\x5b\x3b\xcc\xad\xbe\x4c\xff\x7d\x40\x4d\xb3\x7e\xd9\x0c\x6b\x4e\x36\xfd\x81\x6d\x80\x6d\x80\x6d\x80\x6d\x80\x6d\x3a\xc3\x36\x0d\xf7\x82\x35\x74\x73\xba\x6d\xf1\xbd\x48\x33\xa1\x45\x49\xf8\x23\x4b\x23\xc1\x95\xf0\x4b\xd0\x43\x96\xa4\x7c\x4e\xea\xe8\x21\x89\x64\xf0\x5a\x09\x12\x74\x93\x2e\xf4\x17\xd0\xd3\xee\xed\xe4\x6f\x13\xf6\xd5\xac\x67\x46\xba\xa4\x22\xd6\x2f\x4b\xb1\xa7\x0a\x96\x64\xe9\x23\x8f\x5d\xd0\x62\xb6\x14\x77\x33\x1e\x39\x5b\xf9\xdb\x95\xf9\xf8\xdb\x15\x9b\xc9\x98\x47\xf2\x3f\x6e\x23\x99\x0a\xc6\x43\xf2\xe5\x27\x77\xc6\xcf\x19\x16\x66\x98\xb9\xfc\xb5\x2a\x7e\x64\xec\xd3\x09\xfb\x20\x69\x71\x2c\x3d\x7a\x92\xad\xb7\xad\x20\x37\xb9\x31\x8f\xc9\x46\x49\xf2\xc7\x43\x06\xd4\xb4\xe0\xbd\x6b\xfb\x46\xc9\x53\xe7\x35\x6d\xd7\x30\xa3\xa6\xeb\x17\xf6\x31\x79\x61\x73\x9e\x4d\xf9\xbc\xe2\xbb\xf4\x46\x8d\xc8\x66\x49\xb6\xd0\x63\x52\xdb\x5f\x9f\x57\x5a\xb4\xb9\xbb\x48\xf4\x3a\xc5\x9a\x9a\xbe\x95\x5a\x4d\x06\x32\x2c\x4c\x61\xd2\x0a\xe4\x9c\xf0\x63\xac\x28\x71\x8d\x3e\x75\x6a\x60\x52\x1a\x4c\xb7\x8f\x78\x74\xe2\x03\x70\xab\x37\x9b\x30\x93\x0f\x4a\x7b\x53\xd9\xb2\xbb\x36\x6d\xb8\x66\xb7\x76\x02\x56\x27\xa8\xfa\x89\x5d\xff\xcc\x83\xa7\x79\x96\x2c\xe3\x50\x7f\x8b\x82\x59\xe9\x4b\x2b\x1d\x67\x24\xa4\xd5\xc7\xd5\x8b\xb8\x16\x4c\xfd\x95\x7e\x62\xd7\xbf\x26\x99\x28\x5d\x96\x05\x5c\x05\x3c\xd4\xad\xb7\xfd\x63\x62\x9d\xe9\x7a\xca\x98\x9e\x6b\x17\x9c\xf9\x6b\x1c\x32\x21\xd3\xd5\xe9\x7e\x1e\xc5\x39\x62\xc6\xda\x6c\x1c\xb6\x71\xd6\x73\x8d\x02\x88\x6b\x67\xe3\xbb\x4e\x5d\x4f\xe7\xdb\x38\x27\x7f\x6d\xd6\x59\x5b\x18\xec\xb1\xfa\xa7\x16\xe4\x21\xed\x72\x4f\x4c\xf7\x35\xe7\xf9\xb2\x29\x9f\x1b\x63\xde\x96\xd9\x92\x0b\xb9\x34\xc0\x1c\xae\xe1\x25\x81\x76\x02\xbf\x91\xa6\x76\x39\x69\x6a\xcd\x76\x9f\x5d\xa9\x6a\xa7\x33\xd3\x10\xbb\x80\xd8\x05\xc4\x2e\x20\x76\x01\xb1\x0b\x75\x8b\x2f\xa0\xf8\x80\x7a\x04\x9c\x14\x9c\x14\x9c\x14\x9c\x14\x9c\x14\x9c\x74\x5c\x9c\x14\xe8\x02\xe8\x02\xe8\x02\xe8\xa2\x73\x74\xb1\x07\xde\xef\x69\x22\x59\xb3\x2e\x5c\x4f\x26\x3b\xd6\xe3\xd6\x2b\xe8\xb3\xf1\x07\x38\x1f\x10\xe7\x03\x5e\xee\xf9\x80\x56\x4a\x9a\x7a\x20\x71\xc8\xf4\x30\x31\x15\x24\xa9\xb8\x61\x6a\x19\x3c\xea\x75\x89\xd6\x7d\xc1\x17\x66\xd1\x4a\xb3\x84\xa4\x6b\x5d\xae\x6a\xca\xf3\xc7\xfa\x54\x55\x9f\x28\x5a\xfd\x78\x4b\xbd\x04\x94\xe0\x60\xa7\x2e\xc1\xb1\x3f\x2c\xf4\x65\x38\x3a\xc6\x85\xfd\xab\xc6\xd1\x60\x11\x6d\x25\x91\x16\xc9\x5c\xe5\x19\xd0\xdb\x64\xae\x0b\x2d\xb1\xb4\x87\x17\xbd\xae\xcc\xd2\x91\xc3\xd3\x2b\x81\x39\x0a\xdd\xd7\xfb\x6a\x36\xad\xb6\xe1\x5c\xa5\x6c\x5a\x6c\xc4\x08\xc5\x77\x8b\x05\x6c\x4e\x20\xbe\xdf\xb0\x96\xcf\x4b\x31\x5f\xfa\xdf\x13\x1d\x9b\x72\x88\xe8\xab\x39\x2a\xa5\x47\xa2\x6f\x20\x07\xa4\x40\xd7\x95\x07\xb9\xb7\xba\x0e\x29\xe9\x17\x94\x92\x8e\xdc\x3b\xe4\xde\x21\xf7\x0e\xb9\x77\x30\x49\x37\xbd\x45\xbd\x4c\x74\x39\x8f\x21\x87\x3c\x9d\x5d\x79\x3a\xc3\x31\xe2\xbc\x73\xbd\xf5\xec\x9c\x4c\xf0\x70\x45\x83\xed\x6f\x70\xe9\x8b\x9c\x3c\x25\xa7\x24\x5c\xc4\x9f\x14\x68\x37\xd5\x7f\xf1\x20\x9f\x30\xf6\x41\xff\xd7\xfd\xfb\x82\x4b\x72\x33\x2a\x16\x44\x4b\x95\x8b\xac\xd8\x8e\x4c\x44\x2e\x8b\xe4\x93\x60\xd7\xfe\xa9\xaf\xb5\xea\x74\x4a\x69\xc2\x1e\x22\x1e\xc7\xc2\xc8\x55\xd2\x32\x3c\x32\xf2\xe9\xed\x0f\x87\xac\xef\xf4\x8c\x67\x52\x19\xbe\xd3\xbc\x48\x9f\xba\xee\xd3\x2d\x65\x1f\x4c\x8f\xe9\x9d\x25\x55\xae\x77\x6c\x2c\xda\x52\x89\x8c\x82\xc8\x0a\xbd\xfd\xda\x71\x47\xe9\x87\x19\x2f\xf2\xef\xf7\xf6\x07\x47\xa0\xff\xce\x86\x5d\x64\x2e\x06\xe4\x07\x3c\x06\xc2\x13\x2a\xb2\x5e\x96\x46\x0f\xd3\x84\xb6\xf7\x05\xb4\x23\xc2\x60\x70\x11\x06\x14\xc7\x74\x50\x5d\xe8\x5b\xfa\xed\x5f\xb7\xaf\xe6\x0b\x91\xcd\x45\xa3\x6f\xaa\x3c\xe3\xb9\x98\xcb\xe0\xb6\xf9\x6f\xf4\xdf\xaf\xf6\x9b\xb4\x6f\x34\x91\x69\x29\xcf\x72\x49\x69\x86\x26\xe6\xee\x68\xc9\x46\xf7\xef\xab\x8b\xbc\xab\xb8\x88\x2d\x26\xd1\x43\x35\x36\x8e\xc1\x71\x3e\x72\xc7\xf9\xe5\x04\x44\xac\x64\xf4\xb8\x97\xcb\x64\x9d\xe9\xc5\xa8\x38\xc9\xe0\xbb\x0d\x0b\xd5\xf7\xe4\x36\x34\xa9\xe6\x3c\xa2\x5f\xc6\x49\x7c\x6b\x7e\x4d\xdf\x20\xcf\xbd\x62\xdf\xfd\x5d\x25\xf1\x83\x49\xe8\xff\xa4\x97\x44\xfb\xf7\x57\xb7\x50\x16\xff\xf8\x7d\x9f\x22\x35\x9a\xcf\x9b\x5f\x93\x2c\x20\xb4\x31\x4f\x68\xf0\x13\xf6\xed\x6a\xa6\xff\xed\xdb\x15\xbb\xaf\xf4\x26\xe5\x0b\x18\x0e\x41\xa6\x93\x7d\x51\x6f\x79\x40\x03\x40\x29\xe1\x91\x0c\xac\x67\x95\x2c\xad\xe4\xc5\x8e\xad\x49\x99\x4e\x45\x92\x46\x62\xc2\xcc\x3d\xe9\x24\x08\x37\xa7\x28\x6a\xbf\x76\x20\xfc\xed\x0f\xe9\x5e\x7d\x23\x18\x5c\xe6\x03\x18\x5c\x7d\x33\xb8\xd2\x95\xf0\xf7\xc1\x98\x5c\xcb\xd6\xbd\x76\x69\xc4\x83\xe3\x55\xa0\xbd\xce\xa5\xe9\x40\xc4\xc7\x42\x0e\x5e\xac\x1c\xec\x91\xea\x82\x38\xf0\x9f\x20\x3e\x16\x02\xc7\x08\x85\xc1\xc8\x9b\x37\xac\x9b\xc8\xd2\x3b\x65\xf0\x74\x29\xc0\xb4\x1b\xec\x69\xee\xe3\xb6\xbd\xd3\x02\x50\x8b\xe0\xb1\xee\x61\xcd\x38\x72\xcd\x00\x85\x02\x85\xda\xaf\xcd\xa0\x50\xa0\x50\xed\x50\xa8\xf6\x76\xd0\x03\x78\x54\xcd\x16\x3a\x48\x6f\x04\xa8\x14\xdc\x10\x97\xe7\x86\x00\x95\x6a\x73\xde\x80\x4a\xc1\xf1\x04\x03\xec\x3c\x06\x18\xa8\xd4\x0a\x95\x6a\xd3\xaf\x72\x00\x9f\x1a\x8b\x2e\x04\xa5\x82\x3c\xbc\x58\x79\xd8\x23\x15\x06\xb1\xe0\x3f\x01\xa5\x82\xe0\x19\x1d\xa5\xa2\x63\x31\x37\x42\xa9\x4e\x31\x94\x3d\x4c\x3d\x0e\xe5\xb3\x0c\x97\x3c\x2a\x1f\xcc\xca\x7d\xf9\x84\x0d\xfd\x30\x29\xa5\xf3\xff\xe8\x0f\x02\xb8\xa6\x6b\x5e\x17\x65\x75\x2a\x75\x52\xbc\xbe\x62\x32\x56\xb9\xe0\x15\x97\xea\xaa\xfa\x7a\x59\xf3\xc9\x6d\x39\x8d\xf3\xd7\x24\xbb\x8f\x22\x2f\xce\x7a\x81\xb6\x36\xfe\xe0\xb2\xce\x54\xdd\xe2\x60\xa4\x23\x81\x3f\x3c\x8b\xf8\x92\x4f\x53\xa5\x31\xbc\x9c\x23\x55\x51\xcb\x6e\xc4\xb5\xec\x76\x43\xb1\x5d\x75\xec\xb6\x7a\xd6\x5a\x00\x7e\xa8\x5e\x87\xea\x75\xa8\x5e\x87\xea\x75\x63\xab\x5e\xb7\x7b\xe5\xad\xad\x5c\xd7\x71\x78\xc5\xc9\xea\xd5\xed\x6e\xfe\xe6\x5a\x75\x7d\xee\x83\x7d\x2a\xd4\xed\xee\x83\xcd\xd5\xe9\x3a\xee\x03\xd4\xa4\x43\x4d\x3a\xd4\xa4\x43\x4d\x3a\xd4\xa4\xeb\xac\x26\x5d\x83\xd5\x7f\xad\x1e\xdd\xd6\x93\x43\x2f\x28\xba\xb2\x59\x6b\x46\x5c\x53\x6f\x77\x77\x6f\xab\xa7\x77\xda\x7e\x47\x15\xbd\x4e\x46\x74\xbd\x82\x5e\xc7\xc3\x7a\xd6\xba\x79\xbb\xbb\x67\x4b\xcd\xbc\xae\x97\xcd\xbe\x56\xca\xdb\xdd\x69\x35\x34\xe3\x60\x7f\x9e\xfd\xeb\x8f\xa6\x08\x6d\xcf\x74\x2f\x90\xb5\x7d\xa2\x9a\x7e\x5b\xe1\x13\x60\x6a\x60\x6a\x0c\x4c\x0d\x4c\x0d\x4c\x0d\x4c\x0d\x4c\x0d\x4c\x0d\x4c\x0d\x4c\x0d\x4c\xad\xba\xdc\xf6\x90\x27\x81\xa9\x81\xa9\x81\xa9\x81\xa9\x81\xa9\x81\xa9\x81\xa9\x0d\x91\xa9\xe1\xa8\x16\xc0\x44\xc0\x44\xc0\xc4\x5e\x8f\x28\x60\x62\xb5\x7b\x00\x13\xc7\x0d\x13\x6b\xaa\x92\x77\xc4\x14\xcb\x20\x31\x76\x12\x28\x99\xb1\x27\x19\x6f\x3c\xe2\xa0\x15\xa0\x78\x53\x18\x40\x64\xe4\x59\xb1\xac\x6d\xa8\xc2\xb2\xbb\xae\x78\x04\x4a\xd7\x6e\x19\x47\x02\x45\x02\x45\x0e\x09\x45\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x02\x43\x0e\x0f\x43\xa2\x1c\x06\x18\x2b\x18\xeb\x70\x88\x1c\x18\x2b\x18\x2b\x18\x2b\x18\xeb\x4a\xa7\x9d\x83\xb1\xbe\x9b\x8a\x9c\xbf\xbd\x3b\x08\x96\x9e\xe5\x80\xe3\x95\xd1\x9e\x8b\xbc\x6a\xb8\x98\x81\xdd\x42\x38\xe7\x22\x2f\xf3\x4d\xd3\x01\xf7\x0f\x1f\xbf\xd4\xfd\x16\x67\x3b\xef\x89\x19\x4b\x1d\x49\x69\xaa\x63\x62\x8d\x66\xaa\x94\x7e\xfc\xa6\xfc\x00\xbb\x5f\xb2\xb3\x64\x3f\x1b\xdf\x57\x66\xad\x67\x67\x5c\xed\x08\x52\xd8\xf2\xfa\xe8\xeb\xad\xbf\x3f\x1b\xae\x83\x93\x80\x57\x47\xa7\x37\xef\x70\xf5\x6c\x73\x33\x8a\x9b\x0e\x38\x1f\xff\x9b\xbc\x3b\x74\xa0\xbf\x09\xcc\xab\x8d\x41\xf8\x00\xc2\x07\x10\x3e\x80\xf0\x01\x84\x0f\x20\x7c\x00\xe1\x03\x08\x1f\xd8\xbd\xda\x22\x7c\x00\xe1\x03\x08\x1f\x40\xf8\x00\xc2\x07\x10\x3e\x80\xf0\x81\x8b\x0b\x1f\x00\x68\x06\x68\x06\x68\x1e\xc6\x88\x02\x34\x57\xbb\x07\xa0\x79\x58\xa0\xf9\x88\x83\x81\x8d\xfc\x69\x97\x8e\x99\x6b\xb2\x20\x89\xb4\xb5\x65\x67\xed\xfe\x50\xcc\x5c\x66\x1d\x8b\xfd\xe2\xaf\xbb\x5f\x16\x6d\xa7\x45\xca\x3b\xe1\xbe\xef\xa9\x07\x3e\x53\xc7\xaa\x56\xea\x90\xc3\x05\x0c\x17\x30\x5c\xc0\x70\x01\x8f\xcd\x05\xdc\xac\x82\x7d\xad\x1b\xf8\xc8\xea\xf5\xcd\xd7\xde\x7f\xe9\x8e\xb3\xc6\xef\x0d\x1d\x9d\x1f\xe8\x19\x65\xe6\x41\xa5\x6d\x65\xdc\x3a\x15\x2c\xd5\xbd\xa5\xb4\x9d\xc8\xee\x63\x26\x63\xb3\xb2\x24\x19\x5b\xc6\x7e\x71\x0a\x59\x98\xbd\x7e\x59\xc6\x2c\x94\x99\xde\x1c\x9f\x85\x9f\xf1\x7a\xf9\x24\x57\x85\x7d\xe5\xdd\xdc\xb0\x1d\xcc\x66\xcb\x8c\xde\xb2\x34\x4b\x02\xa1\xc8\xa7\x60\x55\xa6\x9d\x65\x13\xf6\x4f\xba\x23\x8d\x16\xcd\x9d\x1f\xd9\x2d\xbb\x8f\xa2\x1f\xc9\x63\x10\xea\x55\x7a\x19\xeb\x81\xd7\x7a\xcd\x4d\x49\x7b\xb9\xf5\xd2\xf1\x0d\x06\xca\xb4\xe5\x3c\xc3\x74\x32\xbf\x7d\xb3\xae\xd8\xec\xbb\x3f\x59\x8f\xfc\x5e\x36\x40\xa4\x36\xfe\xc9\x2e\x60\x53\x31\x33\x01\x06\xde\xc7\x53\x48\x09\xbb\x7a\xd1\xd4\x59\x0a\xb3\x39\x4c\xb5\xf4\x8e\x6f\x63\x31\xe7\x34\x41\xad\x09\xa1\xad\x1d\xb7\x83\x1a\x7f\xaf\x7f\x35\xac\x92\x94\x8b\x85\x08\x25\xcf\x45\xf4\x5a\x90\xff\x62\xcb\x95\xd1\x8d\x35\x11\xa8\xd3\xd9\x3c\xe3\x01\xbd\x35\x32\x09\xbd\x20\x28\x36\x6d\x0a\xab\x70\xb3\x74\xa9\xf4\x43\x96\x87\x8b\xeb\x5f\xba\x06\xd9\x9b\xcc\xcc\x1a\xe8\x2e\x31\x31\xcf\xb9\x10\x3c\xae\x7d\xc6\x03\x86\x99\x9e\xf9\x81\x1e\xb9\xce\xec\xda\x61\x78\xf5\x65\xfa\xef\x83\x6c\x9a\xf5\xcb\x66\x6c\x73\xb2\xe9\x0f\x80\x03\x80\x03\x80\x03\x80\x03\x80\xd3\x19\xc0\x69\xb8\x17\xac\x41\x9c\xd3\x6d\x8b\xef\x4b\xe7\xcb\xa5\x91\xe0\x4a\xf8\x25\xe8\x21\x4b\x52\x3e\x27\x75\xf4\x90\x44\x32\x78\xad\x84\x0b\xba\x49\x57\x1c\x50\xa7\xa7\xdd\xdb\xc9\xdf\x26\xec\xab\x59\xcf\x8c\x74\x49\x45\xac\x5f\x96\x62\x4f\x15\x2c\xc9\xd2\x47\x1e\xbb\xf0\xc5\x6c\x29\xee\x66\x3c\x72\xb6\xf2\xb7\x2b\xf3\xf1\xb7\x2b\x36\x93\x31\x8f\xe4\x7f\xdc\x46\x32\x15\x8c\x87\xe4\xd5\x4f\xee\x8c\xc7\x33\x2c\xcc\x30\x73\xf9\x6b\x55\xfc\xc8\xd8\xa7\x13\xf6\x41\xd2\xe2\x58\x7a\xf4\x24\x5b\x6f\x5b\xc1\x70\x72\x63\x1e\x93\x8d\x92\xe4\x8f\x87\x0c\xa8\x69\xc1\x7b\xd7\xf6\x8d\x92\xa7\xce\x7f\xda\xae\x61\x46\x4d\xd7\x2f\xec\x63\xf2\xc2\xe6\x3c\x9b\xf2\x79\xc5\x81\xe9\x8d\x1a\x91\xcd\x92\x6c\xa1\xc7\xa4\xb6\xbf\x3e\xaf\xb4\x68\x73\x77\x91\xe8\x75\x8a\x35\x35\x7d\x2b\xb5\x9a\x0c\x64\x58\x98\xc2\xa4\x15\xc8\x39\xe1\xc7\x58\x6f\xd6\x76\x27\x75\x6a\x60\x52\x1a\x4c\xb7\x8f\x78\x88\xe2\x43\x71\xab\x37\x9b\xb0\xfb\x20\x10\x69\x4e\x7b\x53\xd9\xb2\xbb\x36\x6d\xb8\x66\xb7\x76\x02\x56\x27\xa8\xfa\x89\x5d\xff\xcc\x83\xa7\x79\x96\x2c\xe3\x50\x7f\x8b\xc2\x5a\xe9\x4b\x2b\x1d\x67\x24\xa4\xd5\xc7\xd5\x8b\xb8\x16\x4c\xfd\x95\x7e\x62\xd7\xbf\x26\x99\x28\x5d\x96\x05\x5c\x05\x3c\xd4\xad\xb7\xfd\x63\xa2\x9e\xe9\x7a\xca\x98\x9e\x6b\x17\x9c\xf9\x6b\x1c\x32\x21\xd3\xd5\xe9\x7e\x1e\xc5\x39\x62\xda\xda\x6c\x1c\xb6\x11\xd7\x73\x8d\x02\xd8\x6b\x67\xe3\xbb\xce\x5f\x4f\xe7\xdb\x38\x27\x89\x6d\xd6\x59\x5b\x68\xec\xb1\xfa\xa7\x96\xe6\x21\x3d\x73\x4f\x4c\xf7\x35\xe7\xf9\xb2\x29\x9f\x1b\x6d\x2e\x97\xd9\x97\x0b\xcd\x34\xd4\xbc\xae\x81\x26\x8b\x76\xc2\xc2\x91\xbf\x76\x39\xf9\x6b\xcd\x36\xa3\x5d\x39\x6c\xa7\xb3\xda\x10\xca\x80\x50\x06\x84\x32\x20\x94\x01\xa1\x0c\x75\x8b\x2f\x18\xf9\x80\x7a\x04\xd8\x14\xd8\x14\xd8\x14\xd8\x14\xd8\x14\xd8\x74\x5c\xd8\x14\x24\x03\x24\x03\x24\x03\x24\xa3\x73\x92\xb1\x07\xed\xef\x69\x86\x59\xb3\x2e\x5c\xcf\x32\x3b\xd6\xe3\xd6\x2b\x06\xb4\xf1\x07\x38\x47\x10\xe7\x08\xe2\x1c\x41\x9c\xde\x3f\x8c\x43\x15\xec\x5f\x7f\x14\x83\x9c\xa8\x96\xa9\xa2\xb1\xea\x18\x3f\x00\x20\x9a\x9f\x9e\x08\x21\x1e\x96\x4e\xbb\x65\x8a\x9d\x6c\x61\x6d\x25\xe1\x16\x49\x5f\xe5\x69\xd0\xdb\xa4\x2f\xf2\xf4\x7c\xe2\x31\x9f\x8b\xcc\xf8\x2c\xcd\xe2\xaa\x54\x12\x48\x32\xc2\xbd\x77\x90\x93\x93\x37\xc9\x98\x88\x73\xad\x8a\x9d\x57\x62\xc1\x9f\x74\x2f\xe6\x8f\x42\x09\x27\x2d\xcb\xa9\x4d\x2e\x05\x8a\xa4\x35\x79\x02\x93\x8c\xbd\x7d\xf7\x83\xfe\x6e\xc6\x03\x42\x7f\x51\x12\xcf\x8d\x90\x24\x6f\x5d\xa0\x27\xa5\x8c\xcd\x8a\x46\xde\xb0\xe2\xbb\x84\x43\x2c\x98\x64\xd3\x57\x6f\x2b\xcd\x93\x88\xc7\xf3\x49\x92\xcd\xef\xd2\xa7\xf9\xdd\x32\x96\x41\x12\x8a\xbb\xbf\x7c\x54\x0f\xfa\x2a\x07\xbb\xd7\x6d\xe7\xb4\x39\x3c\xbd\x52\x9e\xe3\x11\x84\x4d\xc5\xe0\xbb\x06\x62\xf0\x17\xe3\x3b\xec\x7b\x43\xde\xed\x6c\x88\x09\x76\xee\x7b\x4b\xc6\xaa\xcf\x49\xfe\x0c\x4b\x9f\xbf\x61\x5d\x1c\xbd\x62\xbe\xf4\xbf\x27\x3a\x81\xe5\x10\x71\xb8\xe9\xd4\x95\x1e\x89\xc3\x81\x9c\xb5\x02\xe9\x57\x1e\xe4\xde\x4a\x3f\x64\xb7\x5f\x50\x76\x3b\xd2\xf8\x90\xc6\x87\x34\x3e\xa4\xf1\xc1\x6a\xdd\xf4\x16\xf5\x32\x67\xe6\x3c\x16\x1e\x52\x7e\xdc\x17\xb7\xa6\xfc\x0c\xcc\xb0\xf3\x3e\xf9\xd6\x13\x7d\x32\xc1\xc3\x15\x35\xb6\xbf\xfd\xa5\x2f\x72\x9e\xec\x9e\x92\x8e\x11\x7f\x52\xcc\xde\x54\xff\xc5\x83\x7c\xc2\xd8\x07\xfd\x5f\xf7\xef\x0b\x2e\xc9\x31\xa9\x58\x10\x2d\x55\x2e\xb2\x62\x77\x32\xc1\xbd\x2c\x92\x4f\x82\x5d\xfb\xa7\xbe\xd6\x22\xd4\x09\xa7\x09\x7b\x88\x78\x1c\x0b\xa3\x5e\x49\xda\xf0\xc8\xa8\xa9\xb7\x3f\x1c\xb2\xdc\xd3\x33\x9e\x49\x74\xf8\x4e\xf3\x9a\x7d\xea\xba\x4f\xb7\x94\x7d\x30\x3d\xa6\x37\x9a\x54\xb9\xde\xb1\x61\x6d\x4b\x25\x32\x8a\x47\x2b\xe4\xf7\x6b\xc7\x1d\xa5\x1f\x66\xbc\xd1\x03\xfd\xde\x0d\xe1\x30\xac\xf9\xf1\x86\x9d\x65\x2e\x86\xe6\x2f\x3c\x86\xe7\x13\x6b\xb2\x3e\x98\x46\x4f\xd4\x04\xdc\xf7\x85\xd9\x23\x58\x61\x70\xc1\x0a\x14\x21\x75\x50\xb5\xea\x5b\xfa\xed\x5f\xb7\x2f\xee\x0b\x91\xcd\x45\xa3\x6f\xaa\x3c\xe3\xb9\x98\xcb\xe0\xb6\xf9\x6f\xf4\xdf\xaf\xf6\x9b\xb4\x8d\x34\x91\x6e\x29\xcf\x72\x49\x09\x8c\x26\x9a\xef\x68\x19\x47\xf7\xef\xb5\x17\xbd\xab\x10\x8b\x2d\x56\xd3\x43\x35\xf4\x8e\xc1\xb7\x3e\x72\xdf\xfa\xe5\x84\x55\xac\x24\x0c\xb9\x97\xcb\x24\xb5\xe9\x15\xa9\x38\x28\xe1\xbb\x0d\xab\xd5\xf7\xe4\x59\x34\x99\xec\x3c\xa2\x5f\xc6\x49\x7c\x6b\x7e\x4d\xdf\x20\xe7\xbe\x62\xdf\xfd\x5d\x25\xf1\x83\x39\x2f\xe0\x93\x5e\x17\xed\xdf\x5f\xdd\x6a\x59\xfc\xe3\xf7\x7d\x8a\xf7\x68\x3e\x6f\x7e\x4d\xb2\x80\xe8\xc7\x3c\xa1\xc1\x4f\xd8\xb7\xab\x99\xfe\xb7\x6f\x57\xec\xbe\xd2\x9b\x94\x8e\x60\x50\x05\x99\x53\xf6\x45\xbd\xe5\x01\x0d\x00\x65\x9c\x47\x32\xb0\xce\x57\xb2\xbe\x92\x17\x3b\xb6\x26\x23\x3b\x15\x49\x1a\x89\x09\x33\xf7\xa4\x83\x26\xdc\x9c\xa2\xa4\x80\xda\x81\xf0\xb7\x3f\xa4\x7b\xf5\x8d\x60\x84\x99\x0f\x60\x84\xd5\x5c\xb3\x27\x46\x58\xba\x12\x67\x3f\x2c\x33\x6c\xd9\xba\x77\x2f\x8d\x78\x70\xbc\x32\xb4\xd7\xb9\x48\x6d\x88\xf0\x5b\xe8\xc4\xba\x61\xba\x1c\x9d\xd8\x23\x39\x06\xd5\xe0\x3f\x41\xf8\x2d\xe4\xcf\xba\xfc\x59\x0e\xcd\x07\xfd\x86\x75\x18\xb3\x7a\xa7\x0c\xf3\x2e\x85\xae\x76\x43\x50\xcd\x7d\xdc\x7e\x78\x06\x96\x6a\xe1\x3e\x56\x45\x2c\x26\xc5\x68\x01\x68\x01\x68\x01\x68\x01\x68\xd5\x7d\x71\x08\x40\xab\xbd\x5d\xf5\x50\xb4\x55\xb3\xad\x0e\xd2\x89\x01\xc0\x05\xc7\xc5\xe5\x39\x2e\x00\xb8\xda\x9c\x37\x00\x5c\x70\x55\xc1\x28\x3b\xb7\x51\x06\xc0\x55\x07\xb8\xda\xf4\xbf\x1c\x8a\xba\xc6\xa2\x15\x01\xbc\xa0\x1b\xeb\x86\xe9\x72\x74\x63\x8f\xe4\x19\x54\x84\xff\x04\xc0\x0b\x72\xe8\x72\x80\x17\x1d\xf9\xb9\x91\x6f\x75\x4a\xb4\xec\x41\xf1\x71\x28\x9f\x65\xb8\xe4\x51\xf9\xd0\x59\xee\x4b\x43\x6c\xe8\x91\x49\xe9\xb8\x81\x1f\xfd\x41\x05\xd7\x74\xcd\xeb\xa2\x64\x50\xa5\x06\x8c\x97\x60\x4c\xc6\x2a\x17\xbc\xe2\x89\x5d\x15\x68\x2f\xf5\xae\xbc\x2d\x27\x8d\xfe\x9a\x64\xf7\x51\xe4\xf5\x5b\x2f\x28\xd9\xc6\x1f\x5c\xd6\xa1\xb1\x5b\xfc\x92\x74\xe6\xf1\x87\x67\x11\x5f\xfc\x49\xb1\x34\x90\x17\x76\x5c\x2c\xca\xf6\x8d\xb8\x6c\xdf\x6e\xb4\xb6\xab\x64\xdf\x56\xd7\x5c\x0b\xd8\x10\x85\xfa\x50\xa8\x0f\x85\xfa\x50\xa8\x6f\x6c\x85\xfa\x76\xaf\xbc\xb5\x45\xfa\x3a\x0e\xd2\x38\x59\x69\xbe\xdd\xcd\xdf\x5c\x96\xaf\xcf\x7d\xb0\x4f\x31\xbe\xdd\x7d\xb0\xb9\x10\x5f\xc7\x7d\x80\xf2\x7b\x28\xbf\x87\xf2\x7b\x28\xbf\x87\xf2\x7b\x9d\x95\xdf\x6b\xb0\xfa\xaf\x95\xde\xdb\x7a\xd0\xe9\x05\xc5\x68\x36\x6b\xcd\x88\xcb\x07\xee\xee\xee\x6d\xa5\x03\x4f\xdb\xef\x28\x18\xd8\xc9\x88\xae\x17\x0b\xec\x78\x58\xcf\x5a\x22\x70\x77\xf7\x6c\x29\x0f\xd8\xf5\xb2\xd9\xd7\xa2\x80\xbb\x3b\xad\x86\x6b\x1c\xec\xcf\xb3\x7f\xfd\xb1\x17\x56\xdb\x33\x9b\x0c\xb4\x6d\xef\x60\xa8\xdf\x56\x70\x05\x38\x1b\x38\x1b\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\x03\x67\xeb\xd4\x61\x8c\x43\x60\x00\x18\x01\x18\x01\x18\x7b\x3d\xa2\x00\x8c\xd5\xee\x01\x60\xbc\x00\xc0\x58\x53\x62\xbd\x23\xce\x58\x86\x8b\xb1\xd3\x41\xc9\x8c\x3d\xc9\x78\xe3\x69\x09\xad\x40\xc6\x9b\xc2\x0a\x22\x4b\xcf\x2a\x66\x6d\x48\x15\xe6\xdd\x75\xc5\x2d\x50\xba\x76\x17\x88\x12\x78\x12\x78\x72\x70\x78\x12\x68\x12\x68\x12\x68\x92\x01\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x02\x4d\x0e\x13\x4d\xa2\xf8\x06\xb8\x2b\xb8\xeb\x70\x28\x1d\xb8\x2b\xb8\x2b\xb8\x2b\xb8\xeb\x4a\xa7\x9d\x8d\xbb\xbe\xbb\x3b\x88\x9d\x9e\xe5\xc0\xe4\x95\xd1\x9e\x8b\xbc\x6a\xb8\x98\x81\xdd\x02\x3c\xe7\x22\x5f\xc3\x9d\xef\xee\x1f\x3e\x7e\xa9\xfb\x2d\xce\x8a\xde\x13\x38\x96\x3a\x92\x92\x58\x47\x47\x1d\xdf\x95\x7e\xfc\xa6\xfc\x00\xbb\x5f\xb2\xb3\x24\x48\x1b\xdf\x57\x66\xad\x67\x67\x5c\xed\x88\x59\xd8\xf2\xfa\xe8\xeb\xad\xbf\x3f\x1b\xae\x83\xb3\x83\x57\x47\xa7\x37\xef\x70\xcd\x31\xe9\xef\x36\x1d\x93\x3e\xfe\x37\x79\x77\xfc\x40\xcf\x33\x9b\xdf\x21\x7c\x00\xe1\x03\x08\x1f\x40\xf8\x00\xc2\x07\x10\x3e\xf0\xff\xb1\xf7\x6e\xbd\x6d\x23\xd9\xda\xf0\x7d\x7e\x45\xc1\x7d\xa1\x04\x13\xcb\xaf\x83\x17\x98\x46\xfa\xca\x9d\xc3\x46\x7a\x4f\xde\x08\x9d\xc6\xcc\x8d\x1b\x7b\x97\xc8\x12\xcd\xcf\x54\x15\x41\x52\x4e\x7b\x80\xf9\xef\x1f\x6a\xd5\x81\xa4\x44\x49\x94\x4c\x4a\x94\xf4\x5c\xc5\xb1\xc9\x62\xd5\xaa\xd3\xb3\xd6\xb3\x0e\x70\x1f\x80\xfb\xc0\x2e\xa7\x2d\xdc\x07\xe0\x3e\x00\xf7\x01\xb8\x0f\xc0\x7d\x00\xee\x03\x70\x1f\xb8\x38\xf7\x01\x10\xcd\x20\x9a\x41\x34\x9f\xc6\x8c\x82\x68\xae\x8b\x07\x44\xf3\x69\x11\xcd\x2f\xc8\x1d\x6c\xe0\x4f\xb7\xec\x98\x69\x93\x05\x2a\xd1\xda\x96\x5d\xb5\xbb\x93\x62\xa6\x99\x55\x5a\xec\x83\x6f\x77\xb7\x78\xda\x5e\x2b\x9f\xf7\xc2\xfb\x7e\x24\x09\x7c\x23\xc1\xe6\x9d\xd4\x35\x87\x09\x18\x26\x60\x98\x80\x61\x02\x3e\x37\x13\x70\xbb\x8a\xf8\x8d\x66\xe0\x17\x56\xc3\x6f\x7f\xf6\xfe\x4b\x0b\xce\x2a\xbf\x6f\x29\xbb\x7e\xa0\x57\x94\x59\x07\xb5\xb1\x55\xe9\xd6\xa9\x60\xa9\x96\x56\xae\xf5\x44\x76\x27\x59\x2c\xcd\xc9\xa2\x32\xb6\x90\xfe\x70\x0a\x59\x98\x3d\xff\xbe\x90\x2c\x8c\x33\x7d\x39\x3e\x09\xbf\xe2\xf5\xf1\x49\xa6\x0a\xbb\xe5\xdd\xda\xb0\x02\x66\xb3\x45\x46\xbb\x2c\xcd\x54\x20\x72\xb2\x29\x58\x94\x69\x57\xd9\x98\xfd\x93\xbe\x48\xb3\x45\x6b\xe7\x3d\xbb\x66\x77\x49\xf2\x9e\x2c\x06\xa1\x3e\xa5\x17\x52\x4f\xbc\xc6\x6b\x6e\x49\xda\xe6\x56\xab\xd0\xb7\x98\x28\x33\x96\xe3\x4c\xd3\xc1\xec\xf6\xed\x44\xb1\xde\x76\x7f\x30\x89\xfc\x51\x55\x40\x62\xad\xfc\x93\x5e\xc0\xa6\x62\x66\x1c\x0c\xbc\x8d\xa7\x84\x12\xf6\xf4\xa2\xa5\xb3\x10\xe6\x72\x98\x6a\xe8\x2d\xaf\xa5\x88\x38\x2d\x50\xab\x42\x68\x6d\xc7\xdd\xa0\xc6\xde\xeb\xb7\x86\x45\x92\xf1\x7c\x2e\xc2\x98\x17\x22\x79\x2e\x99\xff\xf2\xca\x8d\x93\xb7\x56\x45\x20\xa1\xb3\x28\xe3\x01\xed\x9a\x58\x85\x1e\x10\x94\x97\x36\xb9\x55\xb8\x55\xba\xc8\x75\x27\xab\xd3\xc5\xf5\x9b\x6e\x40\xf6\x23\x33\x73\x06\xba\x26\xc6\xa6\x9f\x73\xc1\x65\x63\x1f\xf7\x98\x66\xea\xf3\x84\xba\xdc\xa4\x76\x6d\x51\xbc\x86\xb2\xfc\x77\xa1\x6c\xda\xc9\x65\x3d\x6d\x73\xb0\xe5\x0f\x02\x07\x04\x0e\x08\x1c\x10\x38\x20\x70\x7a\x23\x70\x5a\xde\x05\x2b\x24\xce\xe1\xae\xc5\x8f\x95\x74\x73\x69\x22\x78\x2e\xfc\x11\x34\xc9\x54\xca\x23\x42\x47\x13\x95\xc4\xc1\x73\xcd\x5d\xd0\x2d\xba\x32\x5f\x9d\x5e\x76\xb7\xe3\xbf\x8f\xd9\x77\x73\x9e\x19\xe8\x92\x0a\xa9\x37\x4b\x79\xa7\x0a\xa6\xb2\xf4\x81\x4b\xe7\xbe\x98\x2d\xc4\xcd\x8c\x27\x4e\x57\xbe\xbf\x32\x7f\xbe\xbf\x62\xb3\x58\xf2\x24\xfe\xb7\xbb\x48\xa6\x82\xf1\x90\xac\xfa\xea\xc6\x58\x3c\xc3\x52\x0d\x33\xcd\x8f\xf2\xf2\x25\xa3\x9f\x8e\xd9\xa7\x98\x0e\xc7\x4a\xd7\x55\xb6\x3a\xb6\x92\xc3\x29\x8c\x7a\x4c\x3a\x8a\x2a\x1e\xf6\x99\x50\x33\x82\x8f\x6e\xec\x6b\x21\x4f\x93\xfd\xb4\x5b\xc5\x8c\x86\xae\x37\xec\x83\xfa\xc1\x22\x9e\x4d\x79\x54\x33\x60\x7a\xa5\x46\x64\x33\x95\xcd\xf5\x9c\x34\xca\xeb\xdb\xd2\x88\xd6\x8b\x8b\x40\xaf\x43\xac\xa9\x91\x6d\xac\xd1\x64\x10\x87\xa5\x2a\x4c\x58\x81\x8c\x13\x7e\x8e\xf5\x65\x6d\x6f\x52\x87\x06\xc6\x95\xc9\x74\xf7\x88\x27\x51\xbc\x2b\x6e\xfd\x63\x63\x76\x17\x04\x22\x2d\xe8\x6e\xaa\x6a\x76\x23\x33\x86\x11\xbb\xb6\x0b\xb0\xbe\x40\xf3\x5f\xd8\xe8\x57\x1e\x3c\x46\x99\x5a\xc8\x50\x3f\x45\x6e\xad\xf4\xd0\x92\xe0\x0c\x84\xb4\xf8\xb8\xde\x88\x1b\xc1\xd4\xb7\xf4\x0b\x1b\x7d\x56\x99\xa8\x34\xcb\x02\x9e\x07\x3c\xd4\xa3\xb7\xf2\x31\x5e\xcf\xd4\x5e\x6e\x54\xcf\x95\x06\x67\xbe\x8d\x7d\x16\x64\xba\xbc\xdc\x8f\x83\x38\xcf\x98\x6d\x6d\x37\x0f\x9b\x18\xd7\x63\xcd\x02\xb8\xd7\xde\xe6\x77\x95\x7f\x3d\x9c\x6d\xe3\x98\x4c\x6c\x3b\x61\x6d\x60\x63\x5f\x8a\x7f\x1a\xd9\x3c\x84\x67\xee\x48\xd3\x7d\x2f\x78\xb1\x68\xcb\xcf\x9d\x6d\x2c\x97\xb9\x97\x4b\xcc\x74\xaa\x71\x5d\x27\x1a\x2c\xda\x0b\x17\x8e\xf8\xb5\xcb\x89\x5f\x6b\x77\x19\x6d\x8b\x61\x3b\x9c\xd6\x06\x57\x06\xb8\x32\xc0\x95\x01\xae\x0c\x70\x65\x68\x3a\x7c\xc1\x91\x9f\x90\x44\x40\x9b\x82\x36\x05\x6d\x0a\xda\x14\xb4\x29\x68\xd3\xf3\xa2\x4d\xc1\x64\x80\xc9\x00\x93\x01\x26\xa3\x77\x26\x63\x07\xb6\x7f\xa0\x11\x66\xed\x44\xb8\x1a\x65\xf6\x52\x8b\xdb\xa0\x38\xa0\xb5\x2f\x20\x8f\x20\xf2\x08\x22\x8f\x20\xb2\xf7\x9f\x46\x52\x05\xfb\xd3\x9f\xe5\x24\xab\xbc\x63\x56\xd1\x68\x75\x8c\xef\x41\x20\x9a\x57\x0f\x44\x21\xee\x17\x4e\xbb\x61\x89\x1d\xec\x60\xed\x24\xe0\x16\x41\x5f\xd5\x65\x30\xd8\xa0\x2f\xb2\xf4\x7c\xe5\x92\x47\x22\x33\x36\x4b\x73\xb8\xe6\xb9\x0a\x62\x52\xc2\xbd\x75\x90\x93\x91\x57\x65\x4c\xc8\x42\xa3\x62\x67\x95\x98\xf3\x47\x2d\xc5\xe2\x41\xe4\xc2\x41\xcb\x6a\x68\x93\x0b\x81\x22\x68\x4d\x96\x40\x95\xb1\xdb\x77\x3f\xeb\x67\x33\x1e\x10\xf5\x97\x28\x19\x19\x20\x49\xd6\xba\x40\x2f\xca\x58\x9a\x13\x8d\xac\x61\xe5\xb3\x44\x87\x58\x62\x92\x4d\x9f\xbd\xae\x14\xa9\x84\xcb\x68\xac\xb2\xe8\x26\x7d\x8c\x6e\x16\x32\x0e\x54\x28\x6e\x7e\xfa\x92\x4f\x74\x2b\x7b\x9b\xd7\xad\x70\xba\x9c\x9e\x41\x21\xcf\xf3\x01\x84\x6d\xc1\xe0\xbb\x16\x60\xf0\x83\xb1\x1d\x0e\x7d\x20\xef\xb6\x0e\xc4\x38\x3b\x0f\x7d\x24\xe7\x8a\xcf\x09\xfe\x9c\x16\x3e\x7f\xc5\xfa\x48\xbd\x62\x1e\xfa\xcf\x81\x32\xb0\xec\x03\x0e\xd7\x65\x5d\x19\x10\x38\x3c\x91\x5c\x2b\x80\x7e\xd5\x49\x1e\x2c\xf4\x43\x74\xfb\x05\x45\xb7\x23\x8c\x0f\x61\x7c\x08\xe3\x43\x18\x1f\xb4\xd6\x75\xbb\x68\x90\x31\x33\xc7\xd1\xf0\x10\xf2\xe3\x1e\xdc\x18\xf2\x73\x62\x8a\x9d\xb7\xc9\x77\x1e\xe8\x93\x09\x1e\x2e\xa1\xb1\xdd\xf5\x2f\xdd\xc8\x71\xa2\x7b\x2a\x38\x46\xfc\x45\x3e\x7b\x53\xfd\x13\x0f\x8a\x31\x63\x9f\xf4\xbf\xee\xf7\x73\x1e\x93\x61\x32\x67\x41\xb2\xc8\x0b\x91\x95\xb7\x93\x71\xee\x65\x49\xfc\x28\xd8\xc8\xf7\x7a\xa4\x41\xa8\x03\x4e\x63\x36\x49\xb8\x94\xc2\xa0\x57\x82\x36\x3c\x31\x68\xea\xf6\xe7\x7d\x8e\x7b\xea\xe3\x91\x40\x87\x17\x9a\xc7\xec\x53\x27\x3e\x3d\x52\xf6\xc9\x48\x4c\x5f\x34\x69\xee\xa4\x63\xdd\xda\x16\xb9\xc8\xc8\x1f\xad\x84\xdf\xcf\x3d\x0b\x4a\x77\xe6\x7c\xbd\x07\x86\x7d\x1b\xc2\x60\xd8\xf0\xf2\x9a\x9b\x25\x12\xa7\x66\x2f\x7c\x09\x9f\x4f\x5c\x93\xb5\xc1\xb4\xea\x51\x1b\xe2\x7e\x28\x9c\x3d\x9c\x15\x4e\xce\x59\x81\x3c\xa4\xf6\xaa\x56\x7d\x4d\xef\xfe\x6d\xf3\xe1\x3e\x17\x59\x24\x5a\x3d\x99\x17\x19\x2f\x44\x14\x07\xd7\xed\xdf\xd1\x3f\x3f\xdb\x27\xe9\x1a\x69\x03\xdd\x52\x9e\x15\x31\x05\x30\x1a\x6f\xbe\x17\xc3\x38\xfa\xfe\xa0\xad\xe8\x7d\xb9\x58\x6c\xd0\x9a\x26\x75\xd7\x3b\x06\xdb\xfa\x99\xdb\xd6\x2f\xc7\xad\x62\x29\x60\xc8\x6d\x2e\x13\xd4\xa6\x4f\xa4\x32\x51\xc2\xeb\x35\xa7\xd5\x1b\xb2\x2c\x9a\x48\x76\x9e\xd0\x9b\x52\xc9\x6b\xf3\x36\x3d\x41\xc6\xfd\x9c\xbd\xfe\x2d\x57\x72\x62\xf2\x05\x7c\xd5\xe7\xa2\xfd\xf9\xbb\x3b\x2d\xcb\x5f\xbe\x19\x92\xbf\x47\xfb\x75\xf3\x59\x65\x01\xb1\x1f\x91\xa2\xc9\x57\xec\xfe\x6a\xa6\x7f\x77\x7f\xc5\xee\x6a\xd2\xa4\x70\x04\x43\x55\x90\x3a\x65\x37\xea\x35\x0f\x68\x02\x28\xe2\x3c\x89\x03\x6b\x7c\x25\xed\x4b\xfd\xb0\x73\x6b\x22\xb2\x53\xa1\xd2\x44\x8c\x99\xf9\x26\x25\x9a\x70\x6b\x8a\x82\x02\x1a\x27\xc2\x7f\x7e\x1f\xf1\xea\x0f\x41\x09\x33\x7f\x80\x12\xd6\xd0\xe6\x40\x94\xb0\x74\xc9\xcf\xfe\xb4\xd4\xb0\x45\xe7\xd6\xbd\x34\xe1\xc1\xcb\x91\xa1\x6d\xe7\x22\xb1\x21\xdc\x6f\x81\x13\x9b\xa6\xe9\x72\x70\xe2\x80\xe0\x18\x50\x83\xff\x0b\xdc\x6f\x01\x7f\x56\xe1\xcf\xe2\xd4\x6c\xd0\xaf\x58\x8f\x3e\xab\x37\xb9\xe1\xbc\x2b\xae\xab\xfd\x30\xa8\xe6\x3b\xee\x3e\x3c\x02\x97\x6a\xc9\x7d\x9c\x8a\x38\x4c\xca\xd9\x02\xa1\x05\x42\x0b\x84\x16\x08\xad\xa6\x07\x4f\x81\xd0\xea\xee\x56\xdd\x97\xda\x6a\xb8\x56\x4f\xd2\x88\x01\x82\x0b\x86\x8b\xcb\x33\x5c\x80\xe0\xea\x72\xdd\x80\xe0\x82\xa9\x0a\x4a\xd9\xb1\x95\x32\x10\x5c\x4d\x04\x57\x97\xf6\x97\x7d\xa9\xae\x73\xc1\x8a\x20\xbc\x80\x1b\x9b\xa6\xe9\x72\x70\xe3\x80\xe0\x19\x50\x84\xff\x0b\x08\x2f\xc0\xa1\xcb\x21\xbc\x28\xe5\xe7\x5a\x7e\xab\x57\x46\xcb\x26\x8a\x97\x61\xfc\x14\x87\x0b\x9e\x54\x93\xce\x72\x5f\x1a\x62\x8d\x44\xc6\x95\x74\x03\xef\x7d\xa2\x82\x11\xb5\x39\x2a\x4b\x06\xd5\x6a\xc0\x78\x08\xc6\x62\x99\x17\x82\xd7\x2c\xb1\xcb\x00\xed\x47\xb3\x29\x6f\x43\xa6\xd1\xcf\x2a\xbb\x4b\x12\x8f\xdf\x06\xc1\x92\xad\x7d\xe1\xb2\x92\xc6\x6e\xb0\x4b\x52\xce\xe3\x4f\x4f\x42\x5e\x7c\xa6\x58\x9a\xc8\x0b\x4b\x17\x8b\xb2\x7d\x67\x5c\xb6\x6f\x3b\xb5\xb6\xad\x64\xdf\x46\xd3\x5c\x07\xb4\x21\x0a\xf5\xa1\x50\x1f\x0a\xf5\xa1\x50\xdf\xb9\x15\xea\xdb\x7e\xf2\x36\x16\xe9\xeb\xd9\x49\xe3\x60\xa5\xf9\xb6\x0f\x7f\x7d\x59\xbe\x21\xcb\x60\x97\x62\x7c\xdb\x65\xb0\xbe\x10\x5f\xcf\x32\x40\xf9\x3d\x94\xdf\x43\xf9\x3d\x94\xdf\x43\xf9\xbd\xde\xca\xef\xb5\x38\xfd\x57\x4a\xef\x6d\x4c\x74\x7a\x41\x3e\x9a\xed\x46\x73\xc6\xe5\x03\xb7\x8b\x7b\x53\xe9\xc0\xc3\xca\x1d\x05\x03\x7b\x99\xd1\xd5\x62\x81\x3d\x4f\xeb\x51\x4b\x04\x6e\x17\xcf\x86\xf2\x80\x7d\x1f\x9b\x43\x2d\x0a\xb8\x5d\x68\x0d\xbc\xc6\xde\xf6\x3c\xfb\xd3\x9f\x3b\xd1\x6a\x3b\x46\x93\x81\x6d\xdb\xd9\x19\xea\x1f\x4b\x74\x05\x78\x36\xf0\x6c\x0c\x3c\x1b\x78\x36\xf0\x6c\xe0\xd9\xc0\xb3\x81\x67\x03\xcf\x06\x9e\x0d\x3c\x1b\x78\x36\xf0\x6c\xe0\xd9\xc0\xb3\x81\x67\x03\xcf\x06\x9e\x0d\x3c\x5b\xaf\x06\x63\x24\x81\x01\xc1\x08\x82\x11\x04\xe3\xa0\x67\x14\x04\x63\x5d\x3c\x20\x18\x2f\x80\x60\x6c\x28\xb1\xde\x13\xcf\x58\x25\x17\xa5\xc3\x41\x6a\xc6\x1e\x63\xb9\x36\x5b\x42\x27\x24\xe3\xdb\x52\x0b\x22\x4d\xcf\x22\x66\xad\x48\x95\xea\xdd\xa8\x66\x16\xa8\xb4\xdd\x07\x45\x09\x7a\x12\xf4\xe4\xc9\xd1\x93\xa0\x26\x41\x4d\x82\x9a\x64\xa0\x26\x41\x4d\x82\x9a\x04\x35\x09\x6a\x12\xd4\x24\xa8\x49\x50\x93\xa0\x26\x41\x4d\x82\x9a\x04\x35\x09\x6a\xf2\x34\xa9\x49\x14\xdf\x00\xef\x0a\xde\xf5\x74\x58\x3a\xf0\xae\xe0\x5d\xc1\xbb\x82\x77\x5d\x12\xda\x81\x78\xd7\x29\x71\xac\x7b\xb1\xa5\x47\x49\x91\xbc\x34\xbf\x91\x28\x58\x2c\x67\x2a\x9b\xfb\xf5\xcc\x99\x61\x67\xd6\xb3\x9c\x91\x28\x7e\x25\xa2\x73\xf2\xe5\xbf\x96\x1f\x45\x3e\xe8\x1d\x49\x45\x2f\xc4\x13\xa7\x14\xa7\x4b\xdc\xee\xab\xea\x27\x9b\xf6\xcc\xd3\xed\x69\x6f\x9b\x9a\x86\x6f\x4e\xc0\x16\x7b\xe6\x9f\xb7\x77\x93\x2f\xbf\x37\xbd\x80\x9d\xb3\xfb\xce\x71\x82\xa4\x10\xef\x73\xd8\x40\xff\xf3\x74\xbb\xe3\x1e\xfa\xff\xd4\xb4\xdf\xa4\x00\xc6\xde\x9b\x59\x8b\x91\x33\x28\x38\x3f\x9d\xdf\xd4\x74\xc3\xaa\xd7\xef\xda\x65\xff\x9b\x9a\x22\xf9\xf5\xb2\xa8\x07\xb3\xcd\xc6\xb4\x9e\xf4\xae\xfa\x4d\x4d\xcf\x74\x37\x6d\x77\x6b\xe9\x2a\xe0\x7e\xba\xba\x5e\x9c\x3f\x4b\x7d\xbf\x2c\xf9\xae\xdc\xc2\x6d\x05\x6e\x2b\x70\x5b\x81\xdb\x0a\xdc\x56\xe0\xb6\x02\xb7\x15\xb8\xad\xec\x72\xda\xc2\x6d\x05\x6e\x2b\x70\x5b\x81\xdb\x0a\xdc\x56\xe0\xb6\x02\xb7\x95\x8b\x73\x5b\x81\x83\x03\x1c\x1c\xe0\xe0\x70\x1a\x33\x0a\x07\x87\xba\x78\xe0\xe0\x30\x74\x07\x87\xa7\xdb\x75\x71\xe4\xcb\xfc\x93\xc1\x37\xdd\x52\x50\xa6\x4d\x16\xa8\x44\xab\x53\x76\x59\x6e\x66\x9e\xcc\x2b\x96\x7b\xfa\xe0\x5f\x2c\x23\xb1\x97\x5e\xef\xb7\x3e\x7e\x2f\xfc\xe7\x47\x1a\xe2\x37\x92\x52\xde\x49\xf5\x7b\x18\x6c\x61\xb0\x85\xc1\x16\x06\xdb\x73\x33\xd8\x6e\xb8\x4e\xb7\x19\x6d\x37\x43\xb3\xcd\xd7\xea\x4e\x67\xef\xbf\xb4\xe0\xac\xaa\xfa\x96\x6a\x30\x04\x7a\x45\x99\x75\x50\x1b\x5b\x95\x1c\x9d\x0a\x96\x6a\x69\xe5\x5a\xab\x63\x77\x92\xc5\xd2\x9c\x2c\x2a\x63\x0b\xe9\x0f\xa7\x90\x85\xd9\xf3\xef\x0b\xc9\xc2\x38\xd3\x17\xe1\x93\xf0\x2b\x5e\x1f\x9f\x64\x58\xb0\x5b\xde\xad\x0d\x2b\x60\x36\x5b\x64\xb4\xcb\xd2\x4c\x05\x22\x27\x0b\x80\xc5\x84\x76\x95\x8d\xd9\x3f\xe9\x8b\x34\x5b\xb4\x76\xde\xb3\x6b\x76\x97\x24\xef\x49\xbf\x0f\xf5\x29\xbd\x90\x7a\xe2\x35\xba\x72\x4b\xd2\x36\x27\xc2\x3d\x26\xca\x8c\xe5\x38\xd3\x74\x30\x2b\x7b\x3b\x51\xac\xb7\xb4\x1f\x4c\x22\x7f\x54\xd5\x85\x58\xab\xea\x84\xe2\xd9\x54\xcc\x8c\x3b\x80\xb7\xc8\x94\x50\xc2\x9e\x5e\xb4\x74\x16\xc2\x5c\x0e\x53\x0d\x94\xe5\xb5\x14\x11\xa7\x05\x6a\x01\xbf\xd6\x4d\xdc\x0d\x6a\xac\xb3\x7e\x6b\x58\x58\x18\xcf\xe7\x22\x8c\x79\x21\x92\xe7\x92\xa7\x2f\xaf\xdc\x38\x79\x6b\x01\x3d\x09\x9d\x45\x19\x0f\x68\xd7\xc4\x2a\xf4\x80\xa0\xbc\xb4\xc9\x09\xc2\xad\xd2\x45\xae\x3b\x59\x9d\x2e\xae\xdf\x74\x03\xb2\x1f\x99\x99\x33\xd0\x35\x31\x36\xfd\x9c\x0b\x2e\x1b\xfb\xb8\xc7\x34\x53\x9f\x27\xd4\xe5\x26\x25\x69\x8b\x9a\x34\x94\xe5\xbf\x0b\xc1\xd2\x4e\x2e\xeb\x49\x96\x83\x2d\x7f\xd0\x2d\xa0\x5b\x40\xb7\x80\x6e\x01\xdd\xd2\x1b\xdd\xd2\xf2\x2e\x58\xa1\x5c\x0e\x77\x2d\x7e\xac\x24\x25\x4c\x13\xc1\x73\xe1\x8f\xa0\x49\xa6\x52\x1e\x11\x3a\x9a\xa8\x24\x0e\x9e\x6b\xce\x7d\x6e\xd1\x95\x59\x0d\xf5\xb2\xbb\x1d\xff\x7d\xcc\xbe\x9b\xf3\xcc\x40\x97\x54\x48\xbd\x59\xca\x3b\x55\x30\x95\xa5\x0f\x5c\x3a\x67\xc3\x6c\x21\x6e\x66\x3c\x71\xba\xf2\xfd\x95\xf9\xf3\xfd\x15\x9b\xc5\x92\x27\xf1\xbf\xdd\x45\x32\x15\x8c\x87\x64\x83\x57\x37\xc6\x3e\x19\x96\x6a\x98\x69\x7e\x94\x97\x2f\x19\xfd\x74\xcc\x3e\xc5\x74\x38\x56\xba\xae\xb2\xd5\xb1\x95\x8c\x4b\x61\xd4\x63\xd2\x51\x54\xf1\xb0\xcf\x84\x9a\x11\x7c\x74\x63\x5f\x0b\x79\x9a\xac\x9d\xdd\x2a\x66\x34\x74\xbd\x61\x1f\xd4\x0f\x16\xf1\x6c\xca\xa3\x9a\x35\xd2\x2b\x35\x22\x9b\xa9\x6c\xae\xe7\xa4\x51\x5e\xdf\x96\x46\xb4\x5e\x5c\x04\x7a\x1d\x62\x4d\x8d\x6c\x63\x8d\x26\x83\x38\x2c\x55\x61\xc2\x0a\x64\x9c\xf0\x73\x9c\x53\x40\x17\xfd\xd5\xa1\x81\x71\x65\x32\xdd\x3d\xe2\x29\x0f\xef\x38\x5b\xff\xd8\x98\xdd\x05\x81\x48\x0b\xba\x9b\xaa\x9a\xdd\xc8\x8c\x61\xc4\xae\xed\x02\xac\x2f\xd0\xfc\x17\x36\xfa\x95\x07\x8f\x51\xa6\x16\x32\xd4\x4f\x91\x13\x2a\x3d\xb4\x24\x38\x03\x21\x2d\x3e\xae\x37\xe2\x46\x30\xf5\x2d\xfd\xc2\x46\x9f\x55\x26\x2a\xcd\xb2\x80\xe7\x01\x0f\xf5\xe8\xad\x7c\x8c\x8f\x32\xb5\x97\x1b\xd5\x73\xa5\xc1\x99\x6f\x63\x9f\x05\x99\x2e\x2f\xf7\xe3\x20\xce\x33\xe6\x46\xdb\xcd\xc3\x26\x7e\xf4\x58\xb3\x00\xa6\xb4\xb7\xf9\x5d\x65\x4b\x0f\x67\xdb\x38\x26\x6f\xda\x4e\x58\x1b\xb8\xd3\x97\xe2\x9f\x46\x6a\x0e\x61\x8a\x3b\xd2\x74\xdf\x0b\x5e\x2c\xda\xf2\x73\xe7\x15\x4f\x65\x2e\xe3\x12\x28\x0d\x36\xb6\x6a\xa8\x41\x93\x2f\xa6\xab\x11\x10\x76\x39\x01\x61\xed\xee\x8b\x6d\x41\x61\x87\x53\xac\xe0\x6d\x00\x6f\x03\x78\x1b\xc0\xdb\x00\xde\x06\x4d\x87\x2f\x68\xec\x13\x92\x08\x98\x4d\x30\x9b\x60\x36\xc1\x6c\x82\xd9\x04\xb3\x79\x5e\xcc\x26\xc8\x06\x90\x0d\x20\x1b\x40\x36\xf4\x4e\x36\xec\x40\xc8\x0f\x34\x64\xab\x9d\x08\x57\xc3\xb6\x5e\x6a\x71\x1b\x14\x4d\xb3\xf6\x05\xe4\xd3\x63\x4d\x73\x76\xd6\xfc\xcf\xb9\xe5\xd3\x43\xf5\x84\x81\x27\x17\xb0\x3f\xfd\x59\x4e\xb2\xca\x3b\x66\xf6\x8c\x32\xc6\xf8\x16\x12\xcf\x3c\xd6\x15\x8d\xb7\x5f\xd4\xe9\x86\xf5\xd2\xdd\xe1\xd6\x49\xe0\x29\x82\x9f\xaa\xf3\x3c\xd8\xe0\x27\x32\xa7\x7c\xe5\x92\x47\x22\x33\x86\x41\x73\x14\xe6\xb9\x0a\x62\xd2\x74\xbd\x09\x8e\x93\x25\x55\x65\x4c\xc8\x42\x43\x4f\xa7\xfa\xcf\xf9\xa3\x96\x62\xf1\x20\x72\xe1\xf0\x5b\x35\xc4\xc7\x85\x02\x11\x7e\x25\x73\x9b\xca\xd8\xed\xbb\x9f\xf5\xb3\x19\x0f\x88\x5f\x4b\x94\x8c\x0c\x5a\x23\x93\x58\xa0\x64\xc1\x63\x69\xce\x1f\x32\x39\x95\xcf\x12\xe7\x60\xd9\x3f\x36\x7d\xf6\x0a\x49\xa4\x12\x2e\xa3\xb1\xca\xa2\x9b\xf4\x31\xba\x59\xc8\x38\x50\xa1\xb8\xf9\xe9\x4b\x3e\xd1\xad\xec\x6d\xc3\xb6\xc2\xe9\x72\x7a\x06\x05\xef\x4e\x08\x75\xb5\x45\x5c\xef\x5a\x20\xae\x0f\xc6\x02\x77\xf4\x9e\xbe\xdb\xda\x53\xe3\xb6\x7b\xf4\xae\x9e\x15\x8c\x25\x10\x31\x30\x18\xfb\x8a\xed\x95\xa9\xc3\xfc\xe2\x3f\x07\x4a\xd8\xb1\x0d\x24\xd5\x92\x74\x20\x35\x47\xed\xeb\x40\x48\xa7\x88\x90\x10\x0c\x7d\x41\xc1\xd0\x88\xfa\x42\xd4\x17\xa2\xbe\x10\xf5\x05\xe5\x6e\xdd\x2e\x1a\x64\x88\xc5\x71\xd4\x28\x44\x88\xac\x8f\x10\x19\x9a\x72\xe5\xcd\xc7\x9d\xc7\x85\x64\x82\x87\x4b\x18\x6b\xb3\x8a\xa4\x5f\xe8\x29\x18\xa4\x02\x35\xc4\x5f\xe4\xe2\x35\xd5\x3f\xf1\xa0\x18\x33\xf6\x49\xff\xeb\x7e\x3f\xe7\x31\x99\xd8\x72\x16\x24\x8b\xbc\x10\x59\x79\x81\x18\x5f\x50\x96\xc4\x8f\x82\x8d\x7c\x0f\x47\x1a\x27\x3a\x6c\x33\x66\x93\x84\x4b\x29\x0c\xc0\x24\xf4\xc1\x13\x03\x78\x6e\x7f\xde\xe7\x44\xa6\x3e\x1e\x09\x17\x78\xa1\x79\x58\x3d\x75\xe2\xd3\x23\x65\x9f\x8c\xc4\xf4\x5d\x90\xe6\x4e\x3a\xd6\x0b\x6a\x91\x8b\x8c\xdc\x97\x4a\x84\xfc\xdc\xb3\xa0\x74\x67\xce\x97\x6c\x1e\xf6\x85\x05\xc3\x59\x24\x06\x67\x37\x7b\x09\xfd\x4b\x64\x87\xb5\x6e\xac\x7c\xb8\x0d\xa7\x3b\x14\x3a\x17\x3c\xf6\xc9\xf1\xd8\xb4\x05\xf6\xaa\x8f\x7b\x4d\xef\xfe\x6d\xf3\xf9\x3b\x17\x59\x24\x5a\x3d\x99\x17\x19\x2f\x44\x14\x07\xd7\xed\xdf\xd1\x3f\x3f\xdb\x27\xe9\xa4\x6f\x03\x95\x52\x9e\x15\x31\x85\xa4\x19\xff\xac\x9d\x60\x13\x7d\xeb\x3c\xd9\xf7\x0d\x8a\xc4\xa4\xee\x19\xc5\x60\x6e\x3e\x73\x73\xf3\xe5\x10\xf2\x4b\xf1\x1c\x6e\x73\x99\x98\x23\x7d\xbc\x94\x71\xec\xaf\xd7\x1c\x3d\x6f\xc8\xd8\x66\x02\x8d\x79\x42\x6f\x4a\x25\xaf\xcd\xdb\xf4\x04\xd9\xbb\x73\xf6\xfa\xb7\x5c\xc9\x89\x09\xe7\xfe\xaa\x0f\x39\xfb\xf3\x77\x77\xf4\x95\xbf\x7c\x33\x24\x4f\x81\xf6\xeb\xe6\xb3\xca\x02\x22\x04\x22\x45\x93\xaf\xd8\xfd\xd5\x4c\xff\xee\xfe\x8a\xdd\xd5\xa4\x49\xde\xe2\xc6\x7a\x4f\xea\x8b\xdd\xa8\xd7\x3c\xa0\x09\xa0\x80\xe0\x24\x0e\xac\x3d\x92\xb4\x1d\xf5\xc3\xce\xad\x09\x98\x4d\x85\x4a\x13\x31\x66\xe6\x9b\x94\x07\xc0\xad\x29\xf2\xd9\x6e\x9c\x08\xff\xf9\x7d\xc4\xab\x3f\x04\xa5\xc7\xfc\x01\x4a\xcf\xa1\x95\x9e\x74\x49\x5b\x19\x98\xda\xb3\xe8\xdc\xa2\x95\x26\x3c\xd8\x0d\x9d\xd9\x77\xce\x13\x9f\xc1\x3b\x12\x60\xec\xcc\xc1\xd8\x80\x30\x0f\xae\x66\xff\x97\x0b\xf7\x8e\x3c\x2f\x10\xb1\x18\x9c\xe5\xf4\x15\x7b\x89\xc7\xe1\x4d\x6e\x48\xce\x8a\xe3\x61\x3f\xe4\x9a\xf9\x8e\xbb\x88\x5e\x4a\xb3\x59\x6a\x16\x67\x0b\x76\xac\xfb\x2b\xb8\x0e\x70\x1d\x6b\xc6\x0c\xae\x03\x5c\x47\x37\x5c\xc7\x7e\xb7\xd8\x5a\xd6\xa3\xe1\x1a\x3b\x49\xdd\x1a\xdc\x07\xd4\xed\xcb\x53\xb7\xc1\x7d\x74\xb9\x6e\xc0\x7d\xc0\xc0\x02\x25\x08\xdc\x47\x87\xdc\xc7\xbe\x36\x87\xb5\x2c\xc8\xb9\xe0\x35\x70\x21\x00\x67\x67\x0e\xce\x06\x84\x81\x70\x55\xfb\xbf\x80\x0b\x39\x23\x50\x71\x5a\x5c\x08\xa5\xa7\x23\xea\xa3\x57\xb2\xc3\x26\x30\x96\x61\xfc\x14\x87\x0b\x9e\x54\x93\x21\x72\x9f\xb2\xfc\x37\x35\x1d\x57\xc2\x8c\xdf\xfb\x00\xe5\x11\xbd\x3f\x2a\xcb\x56\xd4\xea\x10\x78\xa4\xc2\x62\x99\x17\x82\xd7\x0c\x84\xcb\x38\xe6\x47\xc5\xea\x64\xb3\xdd\x7d\x56\xd9\x5d\x92\x78\x48\x33\x08\x02\x65\xed\x0b\x97\x95\x99\x70\x83\x09\x8d\x12\x6b\x7e\x7a\x12\xf2\x32\xb3\x15\xd2\xec\x9d\x5b\xca\x42\x54\x7c\x3a\xe3\x8a\x4f\xdb\x89\x9a\x6d\xd5\x9e\x36\xda\x86\x3a\x20\xa1\x50\xe3\x09\x35\x9e\x50\xe3\x09\x35\x9e\xce\xad\xc6\xd3\xf6\x93\xb7\xb1\xbe\x53\xcf\x94\xff\xc1\xaa\x3a\x6d\x1f\xfe\xfa\x8a\x4e\x43\x96\xc1\x2e\x75\x9c\xb6\xcb\x60\x7d\x0d\xa7\x9e\x65\x80\xca\x4d\xa8\xdc\x84\xca\x4d\xa8\xdc\x84\xca\x4d\xbd\x55\x6e\x6a\x71\xfa\xaf\x54\x6d\xda\x98\x97\xf0\x82\x3c\xfe\xda\x8d\xe6\x8c\x2b\x4f\x6d\x17\xf7\xa6\xaa\x53\x87\x95\x3b\x6a\x4d\xf5\x32\xa3\xab\x75\xa6\x7a\x9e\xd6\xa3\x56\x97\xda\x2e\x9e\x0d\x95\xa5\xfa\x3e\x36\x87\x5a\x4f\x6a\xbb\xd0\x1a\xd8\x8a\xbd\xed\x79\xf6\xa7\x3f\xb7\x53\x5b\x1b\x82\x7d\x2e\x90\xf1\xaa\xf9\xed\xfc\x63\x89\x3d\x00\xd7\x05\xae\x8b\x81\xeb\xaa\xfc\x01\x5c\x17\xb8\x2e\x70\x5d\xe0\xba\xc0\x75\x81\xeb\x02\xd7\x05\xae\x0b\x5c\x17\xb8\x2e\x70\x5d\xe0\xba\xc0\x75\x81\xeb\x02\xd7\x05\xae\x0b\x69\x3d\x40\xf2\x81\xe4\x03\xc9\x07\x92\x0f\x24\x5f\x97\x92\x01\xc9\xd7\x19\xc9\xd7\x50\x43\xb8\x27\xae\xaf\x4a\xf0\x49\x07\x74\xd4\x8c\x3d\xc6\x32\xec\x8c\xe8\x7b\x5b\xaa\x34\xa4\xb6\x59\xf8\xab\xb5\xa2\x52\x57\x1b\xd5\x74\xfc\x4a\xdb\x7b\xd1\x84\xa0\x08\x41\x11\x9e\x06\x45\x08\x7a\x10\xf4\x20\xe8\x41\xd0\x83\xa0\x07\x41\x0f\x82\x1e\x04\x3d\x08\x7a\x10\xf4\x20\xe8\x41\xd0\x83\xa0\x07\x41\x0f\x82\x1e\x04\x3d\xd8\xf2\xf4\x3f\x38\x3d\x88\xf2\x05\xe0\x39\xc1\x73\x0e\x93\x15\x03\xcf\x09\x9e\x13\x3c\x27\x78\xce\x25\xa1\x1d\x98\xe7\x9c\x8a\x82\xdf\xde\xec\x45\x62\x1e\x25\x75\xee\xd2\x3c\x47\xa2\xa8\xab\x27\x66\x4a\x37\xb0\x91\x91\x28\x2c\x17\x49\x43\xbf\x9b\x7c\xf9\xbd\xe9\x2d\xe4\x0b\xde\x91\x26\xac\x08\x92\xc2\x3f\xcf\x84\x2b\xa4\x45\x52\x79\xed\x55\xf5\xd3\x9b\xb6\x54\x90\x29\xd9\x7b\x2c\xb0\xb1\x5f\x65\x56\x03\x76\x0a\x92\x73\x0d\xf8\x90\x29\xb9\x39\xf7\xbe\x7e\xbf\xba\x1b\xec\x1b\xc8\x5b\xbb\x2c\xf7\xc1\xec\x40\x9f\x07\x9b\xe6\x6b\x6c\x27\xec\x9c\x77\xdc\x76\x8a\xfe\x00\x01\xbc\xab\x5b\x69\x99\xa5\x5f\xea\x36\xa8\x7a\x50\xf5\xa0\xea\x41\xd5\x83\xaa\x07\x55\x0f\xaa\x1e\x54\xfd\xf6\xd3\x16\x54\x3d\xa8\x7a\x50\xf5\xa0\xea\x41\xd5\x83\xaa\x07\x55\x7f\x71\x54\x3d\x88\x5e\x10\xbd\x20\x7a\x4f\x63\x46\x41\xf4\xd6\xc5\x03\xa2\xf7\x54\x88\xde\x35\xf1\xac\x4d\x64\x95\x01\x3a\xdd\xf2\x55\xa6\x4d\x16\xa8\x44\xeb\x55\x76\x7d\x6e\xa7\xa9\xcc\x6b\x35\xa2\xca\xb7\x50\x46\x94\x36\xb4\xd3\x6f\xb9\xe8\x5e\x78\xd4\x8f\x34\xd6\x6f\x24\xb2\xbc\x93\x5a\xd1\x30\xe3\xc2\x8c\x0b\x33\x2e\xcc\xb8\xe7\x66\xc6\x6d\x57\x65\xbc\xd1\x94\x7b\xb0\x02\xf0\xa8\xd3\xdf\x7a\xa2\x8e\x59\xa7\xff\x60\xb6\xf7\x1d\x2a\xe3\x37\xda\x9e\x0f\x26\x91\x3f\xaa\x4a\x44\xac\x15\x78\xc2\xf6\x6c\x2a\x66\xc6\x49\xc0\xdb\x69\x4a\x28\x61\x4f\x2f\x5a\x3a\x0b\x61\x2e\x87\xa9\x86\xcf\xf2\x5a\x8a\x88\xd3\x02\xb5\x6a\x80\xd6\x58\xdc\x0d\x6a\x6c\xb6\x7e\x6b\x58\x8c\x18\xcf\xe7\x22\x8c\x79\x21\x92\xe7\x92\xbd\x2f\xaf\xdc\x38\x79\x6b\x61\x3e\x09\x9d\x45\x19\x0f\x68\xd7\xc4\x2a\xf4\x80\xa0\xbc\xb4\xc9\x35\xc2\xad\xd2\x45\xae\x3b\x59\x9d\x2e\xae\xdf\x74\x03\xb2\x1f\x99\x99\x33\xd0\x35\x31\x36\xfd\x9c\x0b\x2e\x1b\xfb\xb8\xc7\x34\x53\x9f\x27\xd4\xe5\x26\xd5\x69\x8b\xf2\x34\x94\xe5\xbf\x0b\xed\xd2\x4e\x2e\xeb\xa9\x97\x83\x2d\x7f\x90\x30\x20\x61\x40\xc2\x80\x84\x01\x09\xd3\x1b\x09\xd3\xf2\x2e\x58\x21\x62\x0e\x77\x2d\x7e\xac\x64\x55\x4b\x13\xc1\x73\xe1\x8f\xa0\x49\xa6\x52\x1e\x11\x3a\x9a\xa8\x24\x0e\x9e\x6b\x2e\x7f\x6e\xd1\x95\x69\xd9\xf4\xb2\xbb\x1d\xff\x7d\xcc\xbe\x9b\xf3\xcc\x40\x97\x54\x48\xbd\x59\xca\x3b\x55\x30\x95\xa5\x0f\x5c\x3a\x17\xc4\x6c\x21\x6e\x66\x3c\x71\xba\xf2\xfd\x95\xf9\xf3\xfd\x15\x9b\xc5\x92\x27\xf1\xbf\xdd\x45\x32\x15\x8c\x87\x64\x99\x57\x37\xc6\x6a\x19\x96\x6a\x98\x69\x7e\x94\x97\x2f\x19\xfd\x74\xcc\x3e\xc5\x74\x38\x56\xba\xae\xb2\xd5\xb1\x95\x3c\x4c\x61\xd4\x63\xd2\x51\x54\xf1\xb0\xcf\x84\x9a\x11\x7c\x74\x63\x5f\x0b\x79\x9a\x6c\xa0\xdd\x2a\x66\x34\x74\xbd\x61\x1f\xd4\x0f\x16\xf1\x6c\xca\xa3\x9a\x69\xd2\x2b\x35\x22\x9b\xa9\x6c\xae\xe7\xa4\x51\x5e\xdf\x96\x46\xb4\x5e\x5c\x04\x7a\x1d\x62\x4d\x8d\x6c\x63\x8d\x26\x83\x38\x2c\x55\x61\xc2\x0a\x64\x9c\xf0\x73\xac\x2f\x6b\x7b\x93\x3a\x34\x30\xae\x4c\xa6\xbb\x47\x3c\x11\xe2\xdd\x69\xeb\x1f\x1b\xb3\xbb\x20\x10\x69\x41\x77\x53\x55\xb3\x1b\x99\x31\x8c\xd8\xb5\x5d\x80\xf5\x05\x9a\xff\xc2\x46\xbf\xf2\xe0\x31\xca\xd4\x42\x86\xfa\x29\x72\x4d\xa5\x87\x96\x04\x67\x20\xa4\xc5\xc7\xf5\x46\xdc\x08\xa6\xbe\xa5\x5f\xd8\xe8\xb3\xca\x44\xa5\x59\x16\xf0\x3c\xe0\xa1\x1e\xbd\x95\x8f\xf1\x5c\xa6\xf6\x72\xa3\x7a\xae\x34\x38\xf3\x6d\xec\xb3\x20\xd3\xe5\xe5\x7e\x1c\xc4\x79\xc6\x8c\x69\xbb\x79\xd8\xc4\x9a\x1e\x6b\x16\xc0\x9f\xf6\x36\xbf\xab\x1c\xea\xe1\x6c\x1b\xc7\x64\x53\xdb\x09\x6b\x03\xa3\xfa\x52\xfc\xd3\xc8\xd3\x21\xdc\x71\x47\x9a\xee\x7b\xc1\x8b\x45\x5b\x7e\xee\x0c\x63\xae\xcc\x8d\x5c\xa2\xa5\xe1\xc7\x5f\x0d\x3e\xf8\xb2\x13\x26\x1b\x11\x64\x97\x13\x41\xd6\xee\x2a\xd9\x16\x45\x76\x38\x9d\x0b\x8e\x08\x70\x44\x80\x23\x02\x1c\x11\xe0\x88\xd0\x74\xf8\x82\xe1\x3e\x21\x89\x80\xf4\x04\xe9\x09\xd2\x13\xa4\x27\x48\x4f\x90\x9e\xe7\x45\x7a\x82\x87\x00\x0f\x01\x1e\x02\x3c\x44\xef\x3c\xc4\x0e\x5c\xfd\x40\x63\xbc\xda\x89\x70\x35\xce\xeb\xa5\x16\xb7\x41\x31\x38\x6b\x5f\x40\x5e\x3e\xe4\xe5\x3b\xd3\xbc\x7c\xc8\x46\x3f\xf0\x24\x05\xf6\xa7\x3f\xcb\x49\x56\x79\xc7\xec\x9f\xd1\xd1\x18\x6f\x41\xf4\x99\x47\x3b\xa7\xfa\xf6\x0b\x5a\xdd\xb0\x78\x7a\x38\x00\x3b\x09\x60\x45\x10\x55\x75\xc2\x07\x1b\x44\x45\xb6\x97\xaf\x5c\xf2\x48\x64\xc6\x8a\x68\x0e\xc8\x3c\x57\x41\x4c\x6a\xb1\xb7\xd7\x71\x32\xbb\xaa\x8c\x09\x59\x68\x9c\xea\xec\x04\x73\xfe\xa8\xa5\x58\x3c\x88\x5c\x38\xb0\x57\x0d\x15\x72\x21\x45\x04\x76\xc9\x36\xa7\x32\x76\xfb\xee\x67\xfd\x6c\xc6\x03\x22\xe3\x12\x25\x23\x03\xed\xc8\x7e\x16\x28\x59\xf0\x58\x9a\x53\x89\xec\x53\xe5\xb3\x44\x50\x58\xaa\x90\x4d\x9f\xbd\xf6\x12\xa9\x84\xcb\x68\xac\xb2\xe8\x26\x7d\x8c\x6e\x16\x32\x0e\x54\x28\x6e\x7e\xfa\x92\x4f\x74\x2b\x7b\x1b\xbc\xad\x70\xba\x9c\x9e\x41\x61\xc1\x53\x84\x68\x6d\xe1\xd9\xbb\x16\xf0\xec\x83\xb1\xdb\x0d\xa7\xcb\xef\xb6\x76\xd9\x38\x04\x0f\xa7\xcf\xe7\x87\x82\x09\x7a\x0c\x15\x05\xbf\x62\x2f\x4b\x18\xd2\x50\x04\xbf\xc7\xbc\x21\x6d\xc0\xd6\x6a\xae\x10\x64\x08\x01\xc0\x3a\x0b\x80\x85\x98\xec\x0b\x8a\xc9\x46\xf0\x19\x82\xcf\x10\x7c\x86\xe0\x33\xe8\x86\xeb\x76\xd1\x20\x23\x3d\x8e\xa3\x73\x21\x50\x65\x4b\xa0\xca\x60\x15\x30\x6f\xa1\xee\x3c\x3c\x25\x13\x3c\x5c\x42\x5c\xdb\xb5\x27\xfd\x52\xdf\x31\x29\x15\x14\x22\xfe\x22\x4f\xb3\xa9\xfe\x89\x07\xc5\x98\xb1\x4f\xfa\x5f\xf7\xfb\x39\x8f\xc9\x78\x97\xb3\x20\x59\xe4\x85\xc8\xca\xbb\xc5\xb8\xa4\xb2\x24\x7e\x14\x6c\xe4\x7b\x39\xd2\x10\xd2\xc1\x9e\x31\x9b\x24\x5c\x4a\x61\xb0\x27\x01\x13\x9e\x18\x2c\x74\xfb\xf3\x3e\x87\x35\xf5\xf1\x48\x90\xc1\x0b\xcd\x23\xee\xa9\x13\x9f\x1e\x29\xfb\x64\x24\xa6\xaf\x89\x34\x77\xd2\xb1\xce\x58\x8b\x5c\x64\xe4\x45\x55\x82\xe7\xe7\x9e\x05\xa5\x3b\x73\xbe\x9c\xf7\xb0\xef\x32\x18\xe0\xea\x37\x40\x24\x86\x6b\x7f\x7b\x09\x0b\x5d\x2d\xee\xde\xd8\x03\x14\x78\x6f\x1e\x33\x28\xf5\x4e\x28\x75\xda\x0f\x7b\x55\x0a\xbe\xa6\x77\xff\xb6\xf9\x68\x9e\x8b\x2c\x12\xad\x9e\xcc\x8b\x8c\x17\x22\x8a\x83\xeb\xf6\xef\xe8\x9f\x9f\xed\x93\x74\x09\xb4\x81\x54\x29\xcf\x8a\x98\x82\xe6\x8c\x07\xd9\xce\xf0\x8a\xbe\x37\x10\xdb\x74\x5f\x8e\x00\x1b\x74\x91\x49\xdd\x91\x8b\xc1\x62\x7d\xe6\x16\xeb\xcb\x71\x09\x58\x0a\x3f\x71\x9b\xcb\x84\x48\xe9\xb3\xa6\x0c\xbb\x7f\xbd\xe6\x1c\x7a\x43\xf6\x3a\x13\x17\xcd\x13\x7a\x53\x2a\x79\x6d\xde\xa6\x27\xc8\x64\x9e\xb3\xd7\xbf\xe5\x4a\x4e\x4c\xf4\xf9\x57\x7d\xe2\xd9\x9f\xbf\xbb\x73\xb0\xfc\xe5\x9b\x21\xf9\x2a\xb4\x5f\x37\x9f\x55\x16\x10\xa7\x10\x29\x9a\x7c\xc5\xee\xaf\x66\xfa\x77\xf7\x57\xec\xae\x26\x4d\x72\x6e\x37\x04\x00\xa9\x39\x76\xa3\x5e\xf3\x80\x26\x80\xe2\x97\x93\x38\xb0\x26\x4d\xd2\x8a\xd4\x0f\x3b\xb7\x26\xbe\x37\x15\x2a\x4d\xc4\x98\x99\x6f\x52\xda\x02\xb7\xa6\xc8\xc5\xbc\x71\x22\xfc\xe7\xf7\x11\xaf\xfe\x10\x94\x23\xf3\x07\x28\x47\x47\xf6\x4e\x58\xd2\x6a\x86\xaa\x1e\x2d\x3a\xb7\x8e\xa5\x09\x0f\x76\x47\x70\xf6\xbd\x33\xc7\x70\x70\xe6\x04\x72\xbb\x14\xe4\x36\x20\x80\x84\x7b\xdc\xff\x05\xce\x9c\xe7\x0f\x3d\x16\xc3\xb5\xcb\xbe\x62\x9d\xf8\x45\xde\xe4\x86\x7d\xad\xb8\x47\xf6\xc3\xf3\x99\xef\xb8\x1b\xab\x53\xc6\xcf\x12\xc8\x38\x91\xb0\xbd\x41\xbb\x80\x76\x01\xed\x02\xda\xe5\xd8\xb4\xcb\xfe\xb7\xdd\x76\x02\xa6\xe1\xba\x3b\x49\x15\x1e\x34\x0c\x94\xf9\xcb\x53\xe6\x41\xc3\x74\xb9\x6e\x40\xc3\xc0\x7c\x03\x65\x09\x34\x4c\xff\x34\xcc\x4b\xec\x17\xdb\x09\x99\x73\xc1\x74\xa0\x65\x80\xe4\x2e\x05\xc9\x0d\x08\x30\xe1\x5e\xf7\x7f\x01\x2d\x73\xfe\x50\xe4\x94\x69\x19\x4a\x15\xe8\x59\x98\x5e\x79\x17\x9b\x50\x5a\x86\xf1\x53\x1c\x2e\x78\x52\x4d\x4e\xc9\x7d\x0a\x79\x3b\xd6\x71\x25\x1c\xfb\xbd\x0f\xe4\x1e\x51\x1b\xa3\xb2\x94\x48\xad\x36\x84\x07\x3a\x2c\x96\x79\x21\x78\xcd\x0e\xb9\x0c\x83\x7e\x2c\x1b\xb6\x2a\x19\x08\x3f\xab\xec\x2e\x49\x3c\x2a\x1a\x04\x97\xb3\xf6\x85\xcb\x4a\x1b\xb9\xc1\x4a\x47\x59\x4f\x3f\x3d\x09\x79\xc1\x19\x24\x69\x0a\xcf\x36\x8d\x24\x8a\x73\x9d\x71\x71\xae\xed\x34\xd1\xb6\xc2\x5c\x1b\x8d\x51\x1d\x50\x60\x28\xc7\x85\x72\x5c\x28\xc7\x85\x72\x5c\xe7\x56\x8e\x6b\xfb\xc9\xdb\x58\x8a\xab\x67\x87\x83\x83\x15\xe0\xda\x3e\xfc\xf5\xc5\xb7\x86\x2c\x83\x5d\x4a\x6e\x6d\x97\xc1\xfa\x72\x5b\x3d\xcb\x00\x45\xb6\x50\x64\x0b\x45\xb6\x50\x64\x0b\x45\xb6\x7a\x2b\xb2\xd5\xe2\xf4\x5f\x29\xb0\xb5\x31\xad\xe3\x05\xf9\x1b\xb6\x1b\xcd\x19\x17\x09\xdb\x2e\xee\x4d\x05\xc2\x0e\x2b\x77\x94\x05\xeb\x65\x46\x57\x4b\x82\xf5\x3c\xad\x47\x2d\x04\xb6\x5d\x3c\x1b\x8a\x80\xf5\x7d\x6c\x0e\xb5\xf4\xd7\x76\xa1\x35\x70\x17\x7b\xdb\xf3\xec\x4f\x7f\xb6\xa4\xbf\xb6\xc4\x26\x5d\x32\x2b\xb6\xe2\x1a\xf4\x8f\x25\x72\x01\x7c\x18\xf8\x30\x06\x3e\x0c\x7c\x18\xf8\x30\xf0\x61\xe0\xc3\xc0\x87\x81\x0f\x03\x1f\x06\x3e\x6c\x60\x5c\x10\xf8\x30\xf0\x61\xe0\xc3\xc0\x87\x81\x0f\x03\x1f\x06\x3e\xec\x14\xf9\x30\x24\x1e\x01\x11\x08\x22\x10\x44\xe0\xa0\x67\x14\x44\x60\x5d\x3c\x20\x02\xcf\x8a\x08\x6c\x28\xde\xdc\x13\x1f\x58\x25\x01\xa5\x43\x3c\x6a\xc6\x1e\x63\x19\x76\x4a\x06\xbe\x2d\xf5\x1b\xd2\xe1\x2c\x16\xd6\x2a\x52\xa9\xb8\x8d\x6a\x0a\x7f\xa5\xed\x97\x51\x89\xa0\x11\x41\x23\x9e\x10\x8d\x08\x0a\x11\x14\x22\x28\x44\x50\x88\xa0\x10\x41\x21\x82\x42\x04\x85\x08\x0a\x11\x14\x22\x28\x44\x50\x88\xa0\x10\x41\x21\x82\x42\x04\x85\x38\x78\x0a\x11\x85\x18\xc0\x87\x82\x0f\x1d\x2e\x7b\x06\x3e\x14\x7c\x28\xf8\x50\xf0\xa1\x4b\x42\x3b\x10\x1f\x1a\x88\xcc\xf6\x5e\xe4\x44\x0b\xc5\xea\x66\x2f\xa6\xf3\x28\x09\x7d\x97\x66\x3b\x12\x05\x8b\xe5\x4c\x65\x73\xbf\xba\x39\x33\x2c\xcc\x7a\xc6\x32\x12\xc5\x87\x8a\x10\xee\x26\x5f\xfe\x6b\xf9\x0d\x24\x31\xde\x91\x3d\xf4\x42\x3c\x71\xee\xb0\xba\x3b\x2a\x6f\xbd\xaa\x7e\x79\xfb\x7e\x7a\xba\x3d\xed\x2d\x55\xd3\xfd\xcd\x59\xd9\x7e\x3f\xfd\xf3\xf6\x6e\xf2\xe5\xf7\xa6\xf7\xb0\xab\x76\xdf\x55\x4e\x90\x14\x8f\x7d\x46\x9b\xeb\x7f\x9e\x6e\x5f\xb4\xbf\xaa\xbf\x8e\x23\x19\xcb\xc8\xd9\x3d\xaa\x3b\xcf\x98\x58\xba\xf5\xdc\x31\x6d\xb2\x40\x25\x89\x08\xdc\xad\x53\xd9\x00\xdf\x4d\x77\x7e\x37\xdd\xd9\xb0\x6f\x4c\x43\xf5\xad\xf3\xc1\xb7\xda\xaa\xc5\x7e\xcb\x75\xf4\xb2\xa6\x3f\xd2\xa8\xbf\x91\x38\xf3\x4e\x4a\x74\x80\x5c\x06\xb9\x0c\x72\x19\xe4\xf2\xb9\x91\xcb\xed\x8a\xbb\x34\x12\xcc\x07\xab\xbb\x83\xf2\x48\xad\x27\xea\x98\xe5\x91\x0e\xe6\x11\xb0\x43\x41\xa2\x46\x46\xfc\x60\x12\xf9\xa3\x6a\x14\x8b\x25\xcb\x8d\xad\x8a\x4d\xc5\xcc\xb8\x2e\x7a\xf6\xa8\x84\x12\xf6\xf4\xa2\xa5\x53\x29\x08\x25\x95\xbc\x96\x22\xe2\xb4\x40\xad\x59\xab\x5a\x38\xca\x30\xc9\x7e\x6b\x58\xfc\x18\xcf\xe7\x22\x8c\x79\x21\x92\xe7\xd2\xa7\xb0\xbc\x72\xe3\xe4\xad\x35\x5b\x91\xd0\x59\x94\xf1\x80\x76\x4d\xac\x42\x0f\x08\xca\x4b\x9b\x1c\x36\xdd\x2a\x5d\xe4\xba\x93\xd5\xe9\xe2\xfa\x4d\x37\x20\xfb\x91\x99\x39\x03\x5d\x13\x63\xd3\x4f\x53\xab\xb2\xa1\x8f\x7b\x4c\x33\xf5\x79\x42\x5d\x6e\x32\x05\x6e\x31\x06\x0e\x65\xf9\xef\xe2\x0c\xd2\x4e\x2e\xeb\x1d\x42\x0e\xb6\xfc\xe1\x1a\x02\xd7\x10\xb8\x86\xc0\x35\x04\xae\x21\xbd\xb9\x86\xb4\xbc\x0b\x56\xdc\x43\x0e\x77\x2d\x7e\xac\xc4\x95\xa5\x89\xe0\xb9\xf0\x47\xd0\x24\x53\x29\x8f\x08\x1d\x4d\x54\x12\x07\xcf\xb5\x40\x04\xb7\xe8\xca\xc0\x34\xbd\xec\x6e\xc7\x7f\x1f\xb3\xef\xe6\x3c\x33\xd0\x25\x15\x52\x6f\x96\xf2\x4e\x15\x4c\x65\xe9\x03\x97\x2e\x30\x22\x5b\x88\x9b\x19\x4f\x9c\xae\x7c\x7f\x65\xfe\x7c\x7f\xc5\x66\xb1\xe4\x49\xfc\x6f\x77\x91\x4c\x05\xe3\x21\x31\xcd\xea\xc6\xb0\x70\x61\xa9\x86\x99\xe6\x47\x79\xf9\x92\xd1\x4f\xc7\xec\x53\x4c\x87\x63\xa5\xeb\x2a\x5b\x1d\x5b\xe9\x57\x50\x18\xf5\x98\x74\x14\x55\x3c\xec\x33\xa1\x66\x04\x1f\xdd\xd8\xd7\x42\x9e\xbd\x2a\x69\xef\xa4\x98\xd1\xd0\xf5\x86\x7d\x50\x3f\x58\xc4\xb3\x29\x8f\x6a\x66\x4b\xaf\xd4\x88\x6c\xa6\xb2\xb9\x9e\x93\x46\x79\x7d\x5b\x1a\xd1\x7a\x71\x11\xe8\x75\x88\x35\x35\xb2\x8d\x35\x9a\x0c\xe2\xb0\x54\x85\x09\x2b\x98\x82\xe7\x6e\x8e\x73\xe2\xf1\xe8\xaf\x0e\x0d\x8c\x2b\x93\xe9\xee\x11\x4f\xec\xfb\x20\x9f\xfa\xc7\xc6\xec\x2e\x08\x44\x6a\x4a\xad\x56\x35\xbb\x91\x19\xc3\x88\x5d\xdb\x05\x58\x5f\xa0\xf9\x2f\x6c\xf4\x2b\x0f\x1e\xa3\x4c\x2d\x64\xa8\x9f\xa2\x80\x19\x7a\x68\x49\x70\x06\x42\x5a\x7c\x5c\x6f\xc4\x8d\x60\xea\x5b\xfa\x85\x8d\x3e\xab\x4c\x54\x9a\x65\x01\xcf\x03\x1e\xea\xd1\x5b\xf9\x98\x78\x2a\x6a\x2f\x37\xaa\xe7\x4a\x83\x33\xdf\xc6\x3e\x0b\x32\x5d\x5e\xee\xc7\x41\x9c\x67\xec\x01\xd4\x6e\x1e\x36\x79\x01\x1d\x6b\x16\xe0\x0f\xd4\xdb\xfc\xae\xfa\x04\x1d\xce\xb6\x71\x4c\xef\xa0\x76\xc2\xda\xe0\x21\xf4\x52\xfc\xd3\xc8\xe1\x81\x7a\xde\x91\xa6\xfb\x5e\xf0\x62\xd1\x96\x9f\x3b\x41\xc6\xb9\xf2\xe2\x9a\x60\x70\x73\x27\x97\x78\xa9\x8b\xb8\xf0\x06\x32\x7b\x4d\x94\x78\x0b\xf6\x77\x39\x6e\x7c\x53\xc8\x78\xe7\xf9\x2b\x8c\xdd\x2c\xb3\xba\xb6\x03\xf8\x3e\x75\xc5\x1e\x74\xb8\x6e\x71\x89\x0c\xef\x92\x02\x47\x40\xfc\xe5\x04\xc4\xb7\xbb\x83\xb6\x05\xc5\x1f\x4e\x59\x83\x07\x03\x3c\x18\xe0\xc1\x00\x0f\x06\x78\x30\x34\x1d\xbe\xa0\xc6\x4f\x48\x22\x60\x4b\xc1\x96\x82\x2d\x05\x5b\x0a\xb6\x14\x6c\xe9\x79\xb1\xa5\x20\x30\x40\x60\x80\xc0\x00\x81\xd1\x3b\x81\xb1\x03\xc9\x3f\xd0\x60\xe7\x76\x22\x5c\x0d\x78\x7e\xa9\xc5\x6d\x50\xd4\xcf\xda\x17\x2e\x2b\xe5\xf0\xb8\xc6\x79\x3c\xdd\x8e\xd7\x5a\xf5\xcf\x3b\xc4\x71\x3b\xe1\xd4\x55\xfd\xd2\xa3\x91\x4c\x7b\xe4\x25\x3e\x95\x2c\x37\xaf\x96\x66\xf1\x2a\x55\x79\xc7\x8c\x9a\xd1\x6d\x18\xdf\x8b\x3c\x33\x2f\xf7\x48\x9f\xed\x17\x41\xba\x21\x7d\xd2\x81\x0e\x95\x4e\x22\x4c\x11\xe5\x54\x5d\x04\x83\x8d\x72\x22\x1b\xc7\x57\x2e\x79\x24\x32\x63\xad\x33\x69\xc3\xf2\x5c\x05\x31\xa9\x9f\xde\x2e\xc6\xc9\xbc\xa9\x32\x26\x64\xa1\xf1\xa0\xd3\xc7\xe7\xfc\x51\x4b\xb1\x78\x10\xb9\x70\xa0\xaa\x1a\xcb\xe3\x62\x7e\x08\x54\x92\x0d\x4c\x65\xec\xf6\xdd\xcf\xfa\xd9\x8c\x07\x44\x7a\x25\x4a\x46\x06\x42\x91\x9d\x2a\x50\xb2\xe0\xb1\x34\xa7\x18\xd9\x81\xca\x67\x89\x08\xb0\x94\x1c\x9b\x3e\x7b\x2d\x21\x52\x09\x97\xd1\x58\x65\xd1\x4d\xfa\x18\xdd\x2c\x64\x1c\xa8\x50\xdc\xfc\xf4\x25\x9f\xe8\x56\xf6\x36\x2c\x5b\xe1\x74\x39\x3d\x83\xc2\x5c\xe7\x02\x85\xda\xc2\xa0\x77\x2d\x60\xd0\x07\x63\x33\x1b\xf6\x30\xde\x6d\x1d\x86\xf1\xec\x1d\xf6\x38\xce\x11\x95\x12\xd0\x39\x41\x54\xfa\x8a\xbd\x3c\x95\x48\x43\x21\xa0\x1e\x33\x8a\xec\x87\xfc\x1a\xb3\x88\x1c\x1f\xf9\x9d\x48\xee\x10\x20\xbb\xea\x24\x0f\x16\xd9\x21\x5a\xfb\x82\xa2\xb5\x11\x96\x86\xb0\x34\x84\xa5\x21\x2c\x0d\x4a\xe9\xba\x5d\x34\xc8\x18\x90\xe3\x28\x71\x08\x61\xd9\xa0\xbb\x59\x65\xe5\x04\xb5\x37\x6f\x67\xef\x3c\x70\x25\x13\x3c\x5c\x82\x63\xfb\xa8\x5d\xba\x99\xc3\x45\xab\x54\xe0\x8b\xf8\x8b\x7c\xd0\xa6\xfa\x27\x1e\x14\x63\xc6\x3e\xe9\x7f\xdd\xef\xe7\x3c\x26\x73\x63\xce\x82\x64\x91\x17\x22\x2b\x2f\x25\xe3\xac\xca\x92\xf8\x51\xb0\x91\xaf\xd2\x3a\xd2\xd8\xd3\xe1\xa5\x31\x9b\x24\x5c\x4a\x61\x40\x2b\x21\x1a\x9e\x18\x10\x75\xfb\xf3\x3e\xa7\x3c\xf5\xf1\x48\x58\xc3\x0b\xcd\x43\xf5\xa9\x13\x9f\x1e\x29\xfb\x64\x24\xa6\xef\x97\x34\x77\xd2\xb1\x6e\x5a\x8b\x5c\x64\xe4\x5f\x55\xa2\xee\xe7\x9e\x05\xa5\x3b\x73\xbe\x6c\xf8\xb0\x2f\x41\x98\x02\xdb\x5c\x27\x91\x38\x49\x4b\xe0\x4b\xf8\xe9\x5a\x2d\x9d\x76\xdd\x39\xa5\xea\x3a\xa7\x4b\xbf\x93\xe7\xcb\x5e\x49\xd5\xaf\xe9\xdd\xbf\x6d\x3e\xe4\xe6\x22\x8b\x44\xab\x27\xf3\x22\xe3\x85\x88\xe2\xe0\xba\xfd\x3b\xfa\xe7\x67\xfb\x24\x1d\xa7\x6d\x80\x4b\xca\xb3\x22\xa6\xc0\x34\xe3\xa5\xd5\x01\x88\xa1\x1e\x0c\xce\x74\xdc\x97\xd3\xc0\x06\x55\x61\x52\x77\xa4\x62\x30\x28\x9f\xb9\x41\xf9\x72\x5c\x05\x96\xc2\x3f\xdc\xe6\x32\x21\x4a\xfa\x1c\x2a\xc3\xde\x5f\xaf\x39\xa3\xde\x90\x39\xcd\xc4\x25\xf3\x84\xde\x94\x4a\x5e\x9b\xb7\xe9\x09\xb2\x68\xe7\xec\xf5\x6f\xb9\x92\x13\x13\xfd\xfd\x55\x9f\x86\xf6\xe7\xef\xee\x8c\x2c\x7f\xf9\x66\x48\x3e\x0c\xed\xd7\xcd\x67\x95\x05\x64\xf2\x8f\x14\x4d\xbe\x62\xf7\x57\x33\xfd\xbb\xfb\x2b\x76\x57\x93\x26\x39\x97\x1b\xfb\x3c\x29\x13\x76\xa3\x5e\xf3\x80\x26\x80\xe2\x87\x93\x38\xb0\x16\x47\xd2\x3d\xd4\x0f\x3b\xb7\x26\xbe\x36\x15\x2a\x4d\xc4\x98\x99\x6f\x52\xda\x00\xb7\xa6\xc8\xc5\xbb\x71\x22\xfc\xe7\xf7\x11\xaf\xfe\x10\x54\x10\xf3\x07\xa8\x20\x2b\x6d\x0e\x40\x05\x49\x97\xfc\xa5\x4f\x50\x09\x59\x74\x6e\xd0\x4a\x13\x1e\x74\x01\x07\x6d\x4b\x17\x03\x08\xe1\x45\x0a\x68\x78\xc9\xd0\x70\x40\x08\x0c\x40\xc1\xff\x05\x5e\xa4\xc0\x3b\x25\xde\x59\x9c\xa4\xc9\xf5\x15\xeb\xcc\xf9\x52\x2b\xa2\x99\x7a\xe2\xc9\x5e\x15\x15\x77\x62\x05\xdd\x97\xdc\xf5\x77\x30\x86\xf0\xce\x0d\x11\x87\x1f\x4e\x0d\xfb\x3b\x10\x35\x20\x6a\x40\xd4\x9c\x05\x51\xd3\xed\xbd\xb2\x0b\x69\xd3\x78\xb1\x9c\xa4\xae\x0e\xf2\x06\x1a\xfa\xe5\x69\xe8\x20\x6f\xba\x5c\x37\x20\x6f\x60\x93\x81\x5a\x02\xf2\x66\x80\xe4\x4d\xd7\xa6\x87\x5d\x88\x9c\xf3\x01\x89\x20\x74\x00\x17\x2f\x19\x2e\x0e\x08\x95\x01\x3c\xf8\xbf\x80\xd0\x01\x06\x02\xa1\x53\x12\x3a\xb9\x89\xcb\xeb\x9d\xce\x31\xdf\x39\x38\x99\x63\xc3\x0e\x71\xec\xe1\xbc\xb0\xbf\x03\x95\x03\x2a\x07\x54\xce\x59\x50\x39\x5d\xde\x29\xbb\x10\x39\x0d\x97\xca\x49\x6a\xe8\xa0\x71\xa0\x97\x5f\x9e\x5e\x0e\x1a\xa7\xcb\x75\x03\x1a\x07\x96\x18\xa8\x24\xa0\x71\x06\x48\xe3\x74\x6b\x72\xd8\x85\xc4\x39\x17\x80\x08\x0a\x07\x50\xf1\x92\xa1\xe2\x80\x10\x19\x80\x83\xff\x0b\x28\x1c\xe0\x9f\xcb\xa1\x70\xa8\xac\xd4\x06\x22\xa7\x57\xea\xc6\x96\x23\x95\x61\xfc\x14\x87\x0b\x9e\x54\x4b\x9b\x71\x5f\x80\x78\xad\x4c\xc6\x95\xec\xbf\xef\x7d\xde\xe0\x11\xb5\x3a\x2a\x4b\xd3\xd7\x6a\x8d\x7b\xe0\xc5\x62\x99\x17\x82\xd7\xcc\xae\xcb\xb0\xec\xc7\x0e\x56\xbb\x7f\x2c\x55\x74\x42\x29\xb2\xa1\xa6\x3a\xa5\x4a\x7a\x9f\x9e\x84\xbc\xe8\x93\x8d\x26\xf1\x12\xcb\x90\x51\x5e\x65\x5a\x03\xbf\x2a\xf5\x38\xe7\xd9\x63\x5e\x9a\xe4\xcc\x89\x44\x35\xab\x73\x8b\x33\x9f\x53\xc1\xee\xaf\x7e\xfd\xf6\xed\xbf\xbf\xde\xfd\xfe\xdf\xf7\x57\x65\xd5\x68\x93\x37\x59\x91\x9a\x10\xcf\xd3\x44\x50\x79\xe8\xa9\x6f\x75\xce\x9f\x59\x1c\x49\x93\xb5\x3e\xce\x8d\x49\x49\x23\xca\xf2\x11\x9e\x09\x56\xad\xae\x6b\x4a\x31\x8f\x72\x16\xc6\x79\x90\x09\xdd\xe7\xb2\xb6\x7f\x45\x2b\xb1\x25\xa1\xeb\x0d\xf9\x22\xcd\xbc\x30\x95\x8e\x5d\x36\xd0\x58\x16\x22\x7b\xe2\xc9\x5b\x26\x55\x46\xdd\xa2\x1a\xc2\xbe\xae\xf4\x72\x69\x72\x19\xd2\xfb\x6e\xcc\xb6\x86\xb7\xaf\x20\x9c\x6b\x2d\x45\x77\xcc\x25\xc7\xb7\xa5\xa6\xb9\x11\x5f\x2d\x4f\xbb\xfe\x2b\x89\xc0\xa6\x5b\x7f\x10\x6c\x26\x78\xb1\xc8\x04\x8b\x78\x21\xd8\xd2\x44\xd8\x96\x84\xd4\x10\xdb\x94\x6c\x4e\x63\xd3\xb9\x75\xcd\xee\x48\x9b\x35\x4c\x7f\x33\x87\xd6\x64\x80\xeb\x80\x12\xfc\xa3\x5a\xf5\xdb\xd8\x78\x2b\x85\x0c\x72\x51\x98\x12\xdb\xb6\x6c\xbb\x16\x78\xad\xde\xb7\xcf\x38\x6f\x84\x32\x66\xdf\x63\x19\x88\xa5\x1a\x05\x76\x36\xad\x4a\x52\x2f\x26\x5e\xab\xa7\xee\x3b\x62\x5e\xa5\xc6\xb9\xd6\x91\x9f\x62\xb5\xc8\x6d\x11\x79\x57\xdd\x59\xef\x86\xb2\xc4\xb7\xf9\x5b\xb9\xff\xd8\x6b\xf1\x57\x20\xd2\xb2\x90\xab\x69\x52\xcd\xfc\x47\xde\xf8\x24\xea\xb6\x7f\xa6\xd0\x3c\x55\x3e\xe0\xcb\x5d\x89\xf5\xce\x12\x66\x35\x78\x25\xdb\x2f\xa1\xd2\xda\xb2\xfc\x9a\x7e\x83\x74\x37\x91\x31\xa3\xa7\xbb\x3a\xf0\xe1\x42\x68\x5c\x21\xfe\x4a\x63\x8b\x00\x5e\x47\x42\x8a\x8c\x28\xbf\x99\x56\xd8\x0b\xc5\x66\xf1\xac\x10\x42\xb2\x79\x2c\x17\x85\xc8\xdf\x30\x2a\xee\x1f\x28\x39\x8b\x23\x57\x93\xc2\x80\x14\x57\xa8\xbf\x5c\x9c\xf5\x5d\x64\x6e\xc2\xd0\x81\x8f\xff\x7b\xfb\x7f\xd8\xef\x36\x77\xfc\x27\xdd\x05\x11\x5a\x73\x40\xa1\x22\xd3\x41\xfb\xa4\x1f\x51\xa1\x1e\x85\xf4\x43\xb6\xc5\xc4\xa5\x10\xe1\x52\x0d\x72\x7d\x88\xbf\xd5\x02\x23\xb5\x36\x13\x79\xc1\x4d\xe1\xfa\xd8\x96\x2d\x76\xf5\xd6\x57\x0b\xce\x8f\xd9\x37\xfd\xe9\x1f\xb1\x2b\x7f\x60\xbf\xa2\x67\xc6\x1e\x03\xc6\x36\x6e\xcb\x7c\x9b\xba\xd6\x5e\xff\xa6\x1e\xba\x42\xe6\x15\xbd\x5c\x0f\x96\x06\xb7\x55\x2c\xd4\x2e\x75\x98\xec\xf2\x6e\x71\x4b\xf1\x57\xc1\x1e\xc5\xb3\x49\xee\xef\x7f\x9d\xe8\xfb\xa5\x5a\x74\xfd\xc7\x43\x6c\xea\xd9\xc7\xb2\x22\x10\xff\xbc\x5f\xc8\x95\x2a\xe5\x39\xbb\xf6\xc5\x20\x4c\x02\xe0\x4c\xec\x58\x6b\x7e\x49\x18\xab\x65\xe6\x6d\xa1\x00\x42\x42\x64\x1c\xd0\x0b\x52\xff\x6b\x26\xe5\x51\x3c\xdb\xc2\xfd\xbe\xe1\xfb\x2b\x37\xe4\xfb\x2b\x5b\x97\x7f\x7d\x21\x7f\x3a\x20\xea\xa5\xfc\xfd\x1d\x41\x33\x47\x0b\xc0\x9e\xc6\x55\xe9\xe5\x2b\x75\xae\xed\xb6\xf1\x37\x87\xad\x8f\x60\x67\xcc\x18\xa8\x0a\x36\x8f\xf3\x9c\x6e\x84\x9a\x95\x6c\xd7\x93\xd7\x2d\xbd\x6e\x5c\x16\xda\x9d\xb6\x77\x2c\x17\x65\xcd\x04\xbd\x37\xb2\x38\x28\x7c\xa1\x69\x7d\x3c\xf9\xb1\xfb\x12\x21\xcf\x76\x9e\x0c\x4d\x54\xaf\xd7\x22\x9e\x44\xf6\x5c\x3c\xc4\x32\xda\x75\xf8\xd4\xda\x77\xdb\x9b\x93\x91\x41\xc2\xa7\x22\xe9\x4c\x06\xd4\xda\x31\x64\x40\xf5\xc3\x8d\x35\x71\xce\xff\x8a\xe7\x8b\x39\x93\x8b\xf9\x54\x64\x66\xf4\x56\x69\x31\xf2\xa1\xb2\xd9\x44\xd7\x96\x55\xdf\xe9\x18\xa6\x8b\x38\xd6\xbd\x30\x05\x44\x56\x4f\x37\x7d\x7d\xeb\xdf\xfd\xaf\x5b\xeb\xff\xeb\x6a\x98\xc8\x52\xde\xae\xbc\x88\xd1\x72\xcd\x06\xa4\x93\x28\xe0\xd2\x15\x09\x2a\xcf\xd2\x9c\xcf\xf5\xe1\x12\x17\xb1\xbf\x74\x4d\x2f\x35\x3c\x10\xe5\x69\xa9\x3f\x6d\xc6\xa2\xa7\x49\x83\xd4\xa2\x30\x70\xcd\x8c\xdd\x5c\xb6\x66\x6c\xe2\x07\x1d\x3b\x5c\x56\xad\xcc\xfa\xa0\x9b\xab\x85\xa4\x66\xcc\x28\x5f\x2f\x52\xfd\x31\x53\x26\x49\xff\xe6\x8d\x3b\xdd\x0c\x22\xe4\x74\xa0\xbb\xb7\xdd\xda\xd1\x27\xdb\x2c\x4e\x0a\xa1\xef\x38\x7d\xef\xe8\x63\x24\xa8\x63\xd8\x1a\x0a\x31\x36\xf9\xc0\x3b\x82\xd5\xef\x28\x53\xec\xc4\x16\xfd\xf7\xb7\x79\x0d\x14\xd1\x59\xfa\xc4\xe3\x44\xa3\xc6\x12\x9f\xeb\x21\x07\x0f\x4a\xe5\x54\xd9\x5c\xb7\x63\xcf\x50\x3b\x17\x5a\x2c\x3c\x8b\x16\x04\xdb\xb9\x0c\xdd\x0d\x45\x42\xd2\x63\xb3\xfd\xf1\x4d\x97\xd2\xfd\x32\x63\x7e\x49\x95\x60\xc4\xe1\x9b\xa5\x01\xc4\x39\x13\xf3\xb4\x78\xae\x03\x31\x8f\xbe\x79\xa1\x31\xcb\xa6\x01\x6d\xba\x0c\xe2\xd9\xd2\x55\x60\x6e\x0f\xbf\x2e\xa3\x05\xcf\xb8\x2c\x84\x23\x3a\xca\x6a\x45\x79\xb9\xed\xe9\x46\x59\x10\xf5\xe0\xfb\xee\x2f\x36\x0f\xf9\x0a\xc5\xe2\x3c\x5f\x58\x25\x20\x96\x51\x22\xca\x1d\xe2\x51\x86\x5b\x70\xd7\xce\x1c\xaf\xb5\x0e\xff\xc9\xdd\x6e\x5a\x77\xc9\x92\x8e\x91\x2f\x44\xd8\x78\xdd\x92\xae\xb3\x98\xe6\xfa\x61\x59\xf8\x11\x84\x15\xdf\x80\x3f\xac\x9a\x92\xab\xb9\x28\xe2\xb9\xd0\x63\x9f\x89\x2c\xa3\x72\x4e\xa6\x3c\x7e\x05\x40\x94\x00\x43\xcf\xa8\x90\xf9\x22\x13\xbe\x5c\x80\x85\x48\x8e\x6b\x30\x52\x33\x43\xa6\x8d\x49\x60\x88\xe5\x73\x9e\x24\x22\x63\xc1\xc3\x42\x3e\x12\x4b\xc8\x99\x3e\x36\x59\xc2\xb3\xc8\x4d\x34\xed\x78\xd3\xbc\xd1\xc8\x72\x21\x68\xe1\xa5\x2a\xcf\x63\xbd\xe0\xac\xd8\x68\xc1\x55\xf7\x97\x71\x51\x0b\x4b\x9d\x8c\xbe\x23\x42\x33\x1f\x04\xbf\xed\x05\x6f\xd7\xb0\xad\x30\x46\xbd\xfe\xc1\x73\xc7\x83\x39\xbd\x53\xcb\x64\x15\xe1\x18\xdc\xcf\x73\x3d\xc1\xc1\x22\x31\x55\xb6\xca\x65\xb3\xf3\xe9\xaf\x85\xd4\x7c\xea\x37\x95\x19\xbb\x20\xff\xcb\x76\xa3\x59\xc6\x6e\xb9\x28\xdc\xc2\x2d\x32\x1e\xeb\x93\x5b\xb2\x1f\x7a\x86\xdd\x93\x6e\x15\xe8\xc7\xdc\x5e\xf2\xa5\xb3\x32\x57\xc1\x4c\x9f\x98\xc2\xb3\x56\x15\xc3\x5f\xac\x6e\x42\x15\xe4\x37\xb4\x57\xf4\x09\x7d\x43\xab\xfd\x9a\xa7\xf1\x0d\x4f\xe3\xeb\x40\x49\xad\xf2\xe5\x37\x3f\xf9\xb2\x58\xfe\x83\x33\xda\xd6\x05\x8f\x93\x9c\x8e\xa4\x2a\x80\x20\x77\x9a\x1d\xc5\xbd\x34\xf8\x23\xca\xfd\x2b\x1d\xb7\xfe\x4a\xca\xa9\xb8\xd9\xf2\xdc\x68\xa8\x91\xa6\x49\x6c\x0e\x18\x7f\x4a\x1a\x37\xa5\x38\x67\x0f\x71\xf4\x40\xde\x4b\x81\x9a\xcf\x85\xa4\xba\x72\xd5\x99\xab\x7d\xcb\x1a\x06\xb4\x48\xcb\x96\xf4\xa1\x9d\x89\xa6\x0f\xeb\x67\x4f\x6f\x46\xbf\xae\xda\xa4\xfb\x9d\xd6\x3f\xe2\xb9\xd0\x17\x96\x33\x58\x68\xd1\x1a\x3e\xc4\x42\x3e\xba\x34\xe8\xd0\xca\x4d\x9d\x35\x67\x01\x70\x38\x85\x27\xc9\x5b\x96\x89\x88\x67\x21\x51\xc9\xfa\x94\x97\xcf\x8c\x07\x45\xfc\x14\x17\xcf\xfa\x66\x8b\xa5\xfb\xdf\xae\xe7\x4b\x61\xba\xd7\x54\x9f\xb1\xef\x63\xf3\x5f\x46\x71\x54\x59\x95\x90\x31\x95\xe6\xf4\x73\x53\xba\x5a\xcd\xe4\x99\xca\x78\x16\x33\x15\x0f\x62\x6e\x2e\x53\xc3\x14\x90\x40\xc2\xf0\xad\xbd\xae\xde\xda\x67\xe7\xea\x89\x10\x59\x45\x95\x64\xdf\x4d\xdd\x9d\xe5\xe5\xbc\xab\xd0\x1a\x88\x8d\xbd\xed\x79\xf6\xa7\x3f\xbb\x23\xd3\x1a\x6a\x0c\xf7\xc4\xa9\x55\x89\x34\xe9\x2e\x7f\x35\x63\x8f\xb1\xdc\xe0\xa1\xd4\x09\xa1\xf6\xb6\x04\xff\xa4\xe0\x58\xa0\xa8\xf5\x87\x52\xab\x19\xd5\xb4\xe1\x4a\xdb\x5d\xd1\x71\xa0\xe2\x40\xc5\x9d\x14\x15\x07\x1a\x0e\x34\x1c\x68\xb8\xf2\x41\xd0\x70\xa0\xe1\x40\xc3\x81\x86\x03\x0d\x07\x1a\x0e\x34\x1c\x68\x38\xd0\x70\xa0\xe1\x40\xc3\x81\x86\x03\x0d\x77\x7a\x34\x1c\xb2\xbc\x80\x65\x04\xcb\x08\x96\x71\x00\x33\x0a\x96\xb1\x2e\x1e\xb0\x8c\xa7\xc6\x32\x4e\x45\xc1\x6f\x6f\xf6\xe2\x10\x8f\x12\xb8\xbb\x34\xeb\x91\x28\xea\x48\xde\x4c\xf0\x06\xda\x2f\x12\x45\x9d\xf4\x23\x09\xdc\x4d\xbe\xfc\xde\xf4\x32\x82\x96\x77\xe4\xe0\x2a\x82\xa4\x18\xc6\xf3\x22\xe2\x68\xad\x54\xde\x7e\x55\xed\x41\xfb\xed\xd6\x2e\x40\xd6\xe8\x4f\xdd\xf2\xf9\xa6\x4d\x16\xa8\x24\x11\x81\xbb\x17\xf6\xc9\x31\x62\x1a\x6a\xd8\x49\x1f\x7c\xd3\x03\xa8\xff\xdb\xcb\x12\xff\x48\x43\xff\x46\x32\xcd\x3b\xc9\x25\x02\xfa\x08\xf4\x11\xe8\x23\xd0\x47\xe7\x46\x1f\xb5\xcb\x42\xd3\x48\x21\x1d\x2c\x41\x10\xf2\x38\xb5\x9e\xa8\x63\xe6\x71\x3a\x18\xe7\xb7\x43\xe6\xa4\x46\xce\xeb\x60\x12\xf9\xa3\xaa\xdd\xc7\x92\xe5\x46\xe9\x66\x53\x31\x33\xce\x49\xde\x3e\x5c\x42\x09\x7b\x7a\xd1\xd2\xa9\x64\xae\x92\x4a\x5e\x4b\x11\x71\x5a\xa0\x56\x3f\xaf\x66\xb8\x32\x5c\x91\xdf\x1a\x16\x44\xc6\xf3\xb9\x08\x63\x5e\x88\xe4\xb9\xf4\x1a\x2a\xaf\xdc\x38\x79\x6b\xf5\x6f\x12\x3a\x8b\x32\x1e\xd0\xae\x89\x55\xe8\x01\x41\x79\x69\x93\x4b\x96\x5b\xa5\x8b\x5c\x77\xb2\x3a\x5d\x5c\xbf\xe9\x06\x64\x3f\x32\x33\x67\xa0\x6b\x62\x6c\xfa\x69\xb2\x76\x36\xf4\x71\x8f\x69\xa6\x3e\x4f\xa8\xcb\x4d\x36\x8d\x2d\x56\x8d\xa1\x2c\xff\x5d\xe8\xde\x76\x72\x59\x4f\xf9\x1e\x6c\xf9\x83\xfc\x05\xf9\x0b\xf2\x17\xe4\x2f\xc8\xdf\xde\xc8\xdf\x96\x77\xc1\x0a\x01\x7c\xb8\x6b\xf1\x63\x25\xc0\x24\x4d\x04\xcf\x85\x3f\x82\x26\x99\x4a\x79\x44\xe8\x68\xa2\x92\x38\x78\xae\xb9\x1a\xbb\x45\x57\x46\xa8\xe8\x65\x77\x3b\xfe\xfb\x98\x7d\x37\xe7\x99\x81\x2e\xa9\x90\x7a\xb3\x94\x77\xaa\x60\x2a\x4b\x1f\xb8\x74\xae\xcf\xd9\x42\xdc\xcc\x78\xe2\x74\xe5\xfb\x2b\xf3\xe7\xfb\x2b\x36\x8b\x25\x4f\xe2\x7f\xbb\x8b\x64\x2a\x18\x0f\x89\x32\x53\x37\x86\x4e\x08\x4b\x35\xcc\x34\x3f\xca\xcb\x97\x8c\x7e\x3a\x66\x9f\x62\x3a\x1c\x2b\x5d\x57\xd9\xea\xd8\x4a\x82\xb4\x30\xea\x31\xe9\x28\xaa\x78\xd8\x67\x42\xcd\x08\x3e\xba\xb1\xaf\x85\x3c\x7b\xe5\x14\xdf\x49\x31\xa3\xa1\xeb\x0d\xfb\xa0\x7e\xb0\x88\x67\x53\x1e\xd5\x6c\x97\x5e\xa9\x11\xd9\x4c\x65\x73\x3d\x27\x8d\xf2\xfa\xb6\x34\xa2\xf5\xe2\x22\xd0\xeb\x10\x6b\x6a\x64\x1b\x6b\x34\x19\xc4\x61\xa9\x0a\x13\x56\x30\xa9\xdf\xdd\x1c\xeb\xcb\xda\xde\xa4\x0e\x0d\x8c\x2b\x93\xe9\xee\x11\xcf\x50\x7a\x37\xfe\xfa\xc7\xc6\xec\x2e\x08\x44\x6a\x72\xc2\x56\x35\xbb\x91\x19\xc3\x88\x5d\xdb\x05\x58\x5f\xa0\xf9\x2f\x6c\xf4\x2b\x0f\x1e\xa3\x4c\x2d\x64\xa8\x9f\x22\x97\x78\x7a\x68\x49\x70\x06\x42\x5a\x7c\x5c\x6f\xc4\x8d\x60\xea\x5b\xfa\x85\x8d\x3e\xab\x4c\x54\x9a\x65\x01\xcf\x03\x1e\xea\xd1\x5b\xf9\x98\x88\x09\x6a\x2f\x37\xaa\xe7\x4a\x83\x33\xdf\xc6\x3e\x0b\x32\x5d\x5e\xee\xc7\x41\x9c\x67\xec\xca\xd0\x6e\x1e\x36\xb9\x33\x1c\x6b\x16\xe0\xd8\xd0\xdb\xfc\xae\x3a\x37\x1c\xce\xb6\x71\x4c\x37\x87\x76\xc2\xda\xe0\xea\xf0\x52\xfc\xd3\x48\xe4\x81\x89\xde\x91\xa6\xb3\x75\x0d\xce\x9b\x80\xae\xbc\xbd\x26\x1c\xd4\x5c\xcc\x25\x68\x1a\x7c\x64\xe8\xd2\x10\x57\xc3\x43\x3b\x0f\x72\x37\x16\xb4\xcc\x6a\xdd\x0e\xea\x6f\x8d\x6f\xdf\xc0\x8e\xeb\x16\x9b\xb8\xf1\x2e\x19\x71\x44\xc0\x5e\x4e\x04\x6c\xbb\x2b\x69\x5b\x14\xec\xe1\x74\x37\x38\x34\xc0\xa1\x01\x0e\x0d\x70\x68\x80\x43\x43\xd3\xe1\x0b\xa6\xfc\x84\x24\x02\xf2\x14\xe4\x29\xc8\x53\x90\xa7\x20\x4f\x41\x9e\x9e\x17\x79\x0a\x3e\x03\x7c\x06\xf8\x0c\xf0\x19\xbd\xf3\x19\x3b\x70\xfe\x03\x0d\xe2\x6c\x27\xc2\xd5\x40\xce\xb3\xaa\xc0\xbe\xf6\x85\xcb\x4a\x40\xba\x5c\xea\x94\x2c\xfb\xeb\xeb\x9d\x5e\x40\x14\xe4\x76\x12\xea\x24\x2a\x03\x6e\x25\x9e\xf6\xc8\x4b\x7a\x2a\xc9\x3c\x5e\x2d\x4d\xe5\x55\xaa\xf2\x8e\x59\x36\xa3\xea\x30\xbe\x17\xa1\x66\x5e\xee\x9b\x52\x1b\x76\x41\xfb\x2d\x07\x0d\xaa\xda\x5f\x4e\x34\x14\xaa\xda\xa3\xaa\x7d\x43\x67\x4e\x15\x23\x9d\x54\x69\xfb\xce\xc6\xf2\x6e\xeb\x58\x8c\x2f\xf0\x09\x0c\xe6\x6c\x81\x2b\xc1\xa0\x53\x05\xae\xaf\x58\x47\x59\x49\x1a\x2a\x8d\xf4\x98\x9c\x64\x3f\x84\xb8\x3e\x21\xc9\xf1\x11\xe2\x89\xa4\x21\x01\xf8\xab\x4e\xf2\x60\xc1\x1f\x02\xbf\x2f\x28\xf0\x1b\x11\x6e\x88\x70\x43\x84\x1b\x22\xdc\xa0\xb7\xae\xdb\x45\x83\x0c\x27\x39\x8e\x76\x87\x68\x18\xff\xe4\xc6\x68\x98\x93\xd5\xe8\xbc\x79\xbe\xf3\x18\x98\x4c\xf0\x70\x09\x98\xed\xa3\x85\xe9\x66\x0e\x1c\xf8\x52\x41\x33\xe2\x2f\x72\x67\x9b\xea\x9f\x78\x50\x8c\x19\xfb\xa4\xff\x75\xbf\x9f\xf3\x98\x0c\x94\x39\x0b\x92\x45\x5e\x88\xac\xbc\xa3\x8c\xdf\x2b\x4b\xe2\x47\xc1\x46\xff\x8f\xcf\x45\x9e\xf2\x40\x8c\x34\x14\x75\xf0\x69\xcc\x26\x09\x97\x52\x18\x0c\x4b\x00\x87\x27\x06\x53\xdd\xfe\xbc\xcf\xa1\x4f\x7d\x3c\x12\xf4\xf0\x42\xf3\xc8\x7d\xea\xc4\xa7\x47\xca\x3e\x19\x89\xe9\xeb\x26\xcd\x9d\x74\xac\xc7\xd7\x22\x17\x19\xb9\x6a\x95\x20\xfc\xb9\x67\x41\xe9\xce\x9c\x2f\xb1\x3e\xec\x3b\x11\x26\xc3\xdd\xae\x98\x48\x9c\xae\xc5\xf0\x25\x54\x37\xca\x72\x0c\x94\xc9\x27\x9f\x9a\xbd\x32\xba\x5f\xd3\xbb\x7f\xdb\x7c\xe6\xcd\x45\x16\x89\x56\x4f\xe6\x45\xc6\x0b\x11\xc5\xc1\x75\xfb\x77\xf4\xcf\xcf\xf6\x49\x3a\x5d\xdb\x80\x99\x94\x67\x45\x4c\x21\x6f\xc6\xff\xab\x03\x60\x93\xae\x56\x8b\x1e\x8a\x75\xb9\x2f\xff\x83\x0d\xda\xc4\xa4\xee\xa7\xc5\x60\x73\x3e\x73\x9b\xf3\xe5\x38\x1c\x2c\x45\x97\xb8\xcd\x65\x22\xa0\xf4\x61\x54\x46\xd5\xbf\x5e\x73\x50\xbd\x21\x8b\x9b\x09\x7b\xe6\x09\xbd\x29\x95\xbc\x36\x6f\xd3\x13\x64\xf4\xce\xd9\xeb\xdf\x72\x25\x27\x26\xb8\xfc\xab\x3e\x12\xed\xcf\xdf\xdd\x41\x59\xfe\xf2\xcd\x90\x3c\x21\xda\xaf\x9b\xcf\x2a\x0b\x88\x15\x88\x14\x4d\xbe\x62\xf7\x57\x33\xfd\xbb\xfb\x2b\x76\x57\x93\x26\xf9\xae\x1b\x13\x3e\x29\x18\x76\xa3\x5e\xf3\x80\x26\x80\xc2\x93\x93\x38\xb0\x46\x49\xd2\x47\xd4\x0f\x3b\xb7\x26\x7c\x37\x15\x2a\x4d\xc4\x98\x99\x6f\x52\x56\x02\xb7\xa6\xc8\x83\xbc\x71\x22\xfc\xe7\xf7\x11\xaf\xfe\x10\xd4\x12\xf3\x07\xa8\x25\xc3\x56\x4b\xd2\x25\xc7\xec\x53\x55\x4c\x16\x9d\x1b\xbe\xd2\x84\x07\x5d\x40\x44\xdb\xd2\x65\x81\x44\x38\xa9\x02\x33\xae\x99\xa6\xcb\xc1\x8c\x03\x82\x66\x40\x10\xfe\x2f\x70\x52\x05\x1a\x5a\x8b\x86\x16\xa7\x6b\xa4\x7d\xc5\xba\x75\xeb\xd4\xaa\x6b\xa6\x9e\x78\xb2\x57\x15\xc8\x9d\x08\x46\xf7\x25\x77\x2f\x1e\x96\x6c\xbc\x73\xe3\xc4\xd1\x88\xe3\xa4\xd3\xe3\x04\x9c\x0f\x38\x1f\x70\x3e\x4d\x4f\x1e\x8f\xf3\xe9\xf6\xae\xd9\x99\xff\x69\xbc\x6c\x4e\x52\xc5\x07\x0f\x04\x9d\xfe\xf2\x74\x7a\xf0\x40\x5d\xae\x1b\xf0\x40\xb0\xe2\x40\x55\x19\x82\xaa\x02\x1e\xa8\x79\x32\x1d\x0f\xd4\xb5\x89\x62\x67\x4e\xe8\x7c\x80\x23\xb8\x21\xe0\xc8\x35\xd3\x74\x39\x38\x72\x40\x70\x0d\xa8\xc2\xff\x05\xdc\x10\x10\x12\xb8\xa1\x16\xdc\x50\x6e\xe2\x06\x7b\x67\x86\xcc\x77\x8e\xc3\x0b\xd9\xd8\x48\x1c\x8a\x38\x48\x3a\x3d\x48\xc0\x0a\x81\x15\x02\x2b\xd4\xf4\xe4\xf1\x58\xa1\x2e\xef\x99\x9d\x39\xa1\x86\x8b\xe6\x24\x15\x7b\x30\x42\xd0\xe4\x2f\x4f\x93\x07\x23\xd4\xe5\xba\x01\x23\x04\xdb\x0d\xd4\x94\x21\xa8\x29\x60\x84\x9a\x27\xd3\x31\x42\xdd\x9a\x26\x76\xe6\x83\xce\x05\x34\x82\x0d\x02\x86\x5c\x33\x4d\x97\x83\x21\x07\x04\xd5\x80\x28\xfc\x5f\xc0\x06\x01\x1d\x81\x0d\x32\x05\xe9\x36\x70\x42\xbd\xb2\x40\xb6\x6a\xab\x0c\xe3\xa7\x38\x5c\xf0\xa4\x5a\x01\x8e\xfb\x3a\xcd\x6b\xa5\x33\xae\x24\x3a\x7e\xef\x53\x24\x8f\xa8\xd5\x51\x59\xc1\xbf\x56\x92\xdd\x63\x33\x16\xcb\xbc\x10\xbc\x66\xad\x5d\x46\x6e\x3f\x76\x35\xf6\xfd\x63\xa9\xe6\x15\xca\xb6\x0d\x35\xb5\x2b\x55\x1d\xfc\xf4\x24\x24\x4e\x3b\x9a\xc9\x8b\xad\xd6\x46\x19\xa5\x69\x35\xfc\xaa\xd4\xe3\x9c\x67\x8f\x79\x69\xd3\x33\x07\x14\x55\xfa\xce\x2d\x1e\x7d\x4e\x05\xbb\xbf\xfa\xf5\xdb\xb7\xff\xfe\x7a\xf7\xfb\x7f\xdf\x5f\x95\xb5\xb6\x4d\xc6\x68\x45\xea\x44\x3c\x4f\x13\x41\x45\xb5\xa7\xbe\xd5\x39\x7f\x66\x71\x24\x4d\xbe\xfe\x38\x37\x36\x29\x8d\x3c\xcb\x47\x78\x26\x58\xb5\x26\xb1\x29\x60\x3d\xca\x59\x18\xe7\x41\x26\x74\x9f\xc7\xec\x43\xbd\x8e\xb8\xfe\x9c\x2d\xa4\x5d\x6f\xc8\x97\xb6\xe6\x85\xa9\x0f\xed\x12\x9f\xc6\xb2\x10\xd9\x13\x4f\xde\x32\xa9\x32\xea\x16\x55\x5e\xf6\xd5\xb8\x97\x0b\xba\xcb\x90\xde\x77\x63\xb6\x95\xcf\x7d\xdd\xe5\x5c\x6b\x33\xba\x63\xae\x2c\x80\x2d\xd0\xcd\x8d\xf8\x6a\x19\xea\xf5\x5f\x49\x04\x36\xd1\xfc\x83\x60\x33\xc1\x8b\x45\x26\x58\xc4\x0b\xc1\x96\x26\xc2\xb6\x24\xa4\x86\xe2\xa6\xd0\x75\x1a\x9b\xce\xad\x6b\x76\x47\xf2\xad\x61\xfa\x9b\x99\xb8\x26\x0b\x5e\x07\xc4\xe2\x1f\xd5\x5a\xe9\xc6\x48\x5c\x29\xe1\x90\x8b\xc2\x14\x26\xb7\xc5\xee\xb5\xc0\x6b\x55\xd2\x7d\xae\x7d\x23\x94\x31\xfb\x1e\xcb\x40\x2c\x55\x67\xb0\xb3\x69\x55\x97\x7a\x09\xf6\x5a\x15\x7a\xdf\x11\xf3\x2a\x35\xce\xb5\x2e\xfd\x14\xab\x45\x6e\x4b\xef\xbb\x9a\xd8\x7a\x37\x94\x85\xd1\xcd\xdf\xca\xfd\xc7\x5e\x8b\xbf\x02\x91\x96\xe5\x6f\x4d\x93\x6a\xe6\x3f\xf2\xc6\xa7\x8f\xb7\xfd\x33\xe5\xf9\xa9\xe6\x03\x5f\xee\x4a\xac\x77\x96\x30\xab\xc1\x2b\xe3\x7e\x09\x95\xf6\x99\xe5\xd7\xf4\x1b\xa4\xe3\x89\x8c\x19\x7d\xde\x55\xcf\x0f\x17\x42\xc3\x0c\xf1\x57\x1a\x5b\x40\xf0\x3a\x12\x52\x64\x44\x1c\xce\xb4\x62\x5f\x28\x36\x8b\x67\x85\x10\x92\xcd\x63\xb9\x28\x44\xfe\x46\x2b\x90\xd4\xb7\x59\x1c\xb9\x6a\x1c\x06\xb3\x30\x25\x2b\x63\x79\xbb\xb2\x8b\xcc\x9d\x18\x3a\x2c\xf2\x7f\x6f\xff\x0f\xfb\xdd\x66\xcd\xff\xa4\xbb\x20\x42\x6b\x36\x28\x54\x64\x3a\x68\x9f\xf4\x23\x2a\xd4\xa3\x90\x7e\xc8\xb6\x04\xbb\x14\x22\x5c\xaa\xdc\xae\x4f\xf2\xb7\x5a\x60\xa4\xfe\x66\x22\x2f\xb8\x29\xf7\x1f\xdb\x62\xcf\xae\x4a\xfd\x6a\x99\xfe\x31\xfb\xa6\x3f\xfd\x23\x76\x85\x1f\xec\x57\xf4\xcc\xd8\x63\xc0\x18\xd7\x6d\x71\x74\x53\x0d\xdc\xeb\xe9\xd4\x43\x57\xfe\xbd\xa2\xbf\xeb\xc1\xd2\xe0\xb6\x8a\x85\xda\xa5\x0e\x93\x61\xdf\x2d\x6e\x29\xfe\x2a\xd8\xa3\x78\x36\x65\x0d\xfc\xaf\x13\x7d\xc9\x54\x4b\xd5\xff\x78\x88\x35\x9e\xcc\x59\x2c\x2b\x02\xf1\xcf\xfb\x85\x5c\xa9\xed\x9e\xb3\x6b\x5f\x06\xc3\xe4\x3a\xce\xc4\x8e\x15\xfa\x97\x84\xb1\x5a\x9c\xdf\x96\x48\x20\x4c\x44\x46\x04\xbd\x20\xf5\xbf\x66\x52\x1e\xc5\xb3\x39\xb0\xcb\x86\xef\xaf\xdc\x90\xef\xaf\xa8\x34\x76\x9d\x86\xa2\x24\xcc\x8b\xd4\x64\x6e\x36\x07\x84\x85\xd2\x39\x1d\x42\xe5\x1d\x41\x33\x47\x0b\xc0\x9e\xc6\x55\xe9\xe5\x2b\xd5\xc1\xed\xb6\xf1\x37\x87\xad\x0c\x61\x67\xcc\x18\xb2\x0a\x36\x8f\xf3\x9c\x6e\x84\x9a\x35\x6d\xd7\x93\xd7\x2d\xbd\x6e\x1c\x1f\xda\x9d\xb6\x77\x2c\x17\x65\xb5\x08\xbd\x37\xb2\x38\x28\x7c\x79\x6e\x7d\x3c\xf9\xb1\xfb\xe2\x28\xcf\x76\x9e\x0c\xcf\x54\xaf\x54\x23\x9e\x44\xf6\x5c\x3c\xc4\x32\xda\x75\xf8\xd4\xda\x77\xdb\x9b\x93\x91\x41\xc2\xa7\x22\xe9\x4c\x06\xd4\xda\x31\x64\x40\x55\xd7\x8d\xd5\x71\xce\xff\x8a\xe7\x8b\x39\x93\x8b\xf9\x54\x64\x66\xf4\x56\x7d\x31\xf2\xa1\x62\xe3\xc4\xf7\x96\xb5\xf2\xe9\x18\xa6\x8b\x38\xd6\xbd\x30\xa5\x53\x56\x4f\x37\x7d\x7d\xeb\xdf\xfd\xaf\x5b\xeb\xff\xeb\xaa\xb7\xc8\x52\xde\xae\xb0\x8a\x51\x7a\xcd\x06\xa4\x93\x28\xe0\xd2\x95\x47\x2a\xcf\xd2\x9c\xcf\xf5\xe1\x12\x17\xb1\xbf\x74\x4d\x2f\x35\x3c\x10\xe5\x69\xa9\x3f\x6d\xc6\xa2\xa7\x49\x83\xd4\xa2\x30\x70\xcd\x8c\xdd\x5c\xb6\x66\x6c\xe2\x07\x1d\x3b\x5c\x56\xad\xd1\xfa\xa0\x9b\xab\x85\xa4\x66\xcc\x28\x5f\x2f\x52\xfd\x31\x53\x20\x4a\xff\xe6\x8d\x3b\xdd\x0c\x22\xe4\x74\xa0\xbb\xb7\xdd\xda\xd1\x27\xdb\x2c\x4e\x0a\xa1\xef\x38\x7d\xef\xe8\x63\x24\xa8\x63\xd8\x1a\x0a\x31\xb6\xfb\xc0\xbb\x93\xd5\xef\x28\x53\xe6\xa5\x10\xd9\x3c\x96\xc2\xdf\xe6\x35\x50\x44\x67\xe9\x13\x8f\x13\x8d\x1a\x4b\x7c\xae\x87\x1c\x3c\x28\x95\x53\x3d\x78\xdd\x8e\x3d\x43\xed\x5c\x68\xb1\xf0\x2c\x5a\x10\x6c\xe7\x32\x74\x37\x14\x09\x49\x8f\xcd\xf6\xc7\x37\x5d\x4a\xf7\xcb\x8c\xf9\x25\x55\x82\x11\x87\x6f\x96\x06\x10\xe7\x4c\xcc\xd3\xe2\xb9\x0e\xc4\x3c\xfa\xe6\x85\xc6\x2c\x9b\x06\xb4\xe9\x32\x88\x67\x4b\x57\x81\xb9\x3d\xfc\xba\x8c\x16\x3c\xe3\xb2\x10\x8e\x10\x29\xeb\x34\xe5\xe5\xb6\xa7\x1b\x65\x41\x14\x85\xef\xbb\xbf\xd8\x3c\xe4\x2b\x14\x8b\xf3\x7c\x61\x95\x80\x58\x46\x89\x28\x77\x88\x47\x19\x6e\xc1\x5d\x3b\xb3\xbd\xd6\x3a\xfc\x27\x77\xbb\x69\xdd\x25\x4b\x3a\x46\xbe\x10\x61\xe3\x75\x4b\xba\xce\x62\x9a\xeb\x87\x65\xe1\x47\x10\x56\x9c\x0b\xfe\xb0\x6a\x4a\xae\xe6\xa2\x88\xe7\x42\x8f\x7d\x26\xb2\x8c\x0a\x59\xe9\x9b\xb9\x86\xa8\x4a\x80\xa1\x67\x54\xc8\x7c\x91\x09\x5f\x19\xc1\x42\x24\xc7\x49\x18\xa9\x99\x21\xd3\xc6\x24\x30\xc4\xf2\x39\x4f\x12\x91\xb1\xe0\x61\x21\x1f\x89\x57\xe4\x4c\x1f\x9b\x2c\xe1\x59\xe4\x26\x9a\x76\xbc\x69\xde\x68\x64\xb9\x10\xb4\xf0\x52\x95\xe7\xb1\x5e\x70\x56\x6c\xb4\xe0\xaa\xfb\xcb\x38\xba\x85\xa5\x4e\x46\xdf\x11\xa1\x99\x0f\x82\xdf\xf6\x82\xb7\x6b\xd8\xd6\x56\xa3\x5e\xff\xe0\xb9\xe3\xcb\x9c\xde\xa9\x65\xb2\x8a\x70\x0c\xee\xe7\xb9\x9e\xe0\x60\x91\x98\xfa\x62\xe5\xb2\xd9\xf9\xf4\xd7\x42\x6a\x3e\xf5\x9b\x0a\xac\x5d\x90\x17\x67\xbb\xd1\x2c\x63\xb7\x5c\x14\x6e\xe1\x16\x19\x8f\xf5\xc9\x2d\xd9\x0f\x3d\xc3\xee\x49\xb7\x0a\xf4\x63\x6e\x2f\xf9\xa2\x61\x99\xab\xdd\xa6\x4f\x4c\xe1\xd9\xad\x8a\x09\x30\x56\x37\xa1\x0a\xf2\x1b\xda\x2b\xfa\x84\xbe\xa1\xd5\x7e\xcd\xd3\xf8\x86\xa7\xf1\x75\xa0\xa4\x56\xf9\xf2\x9b\x9f\x7c\x41\x30\xff\xc1\x19\x6d\xeb\x82\xc7\x49\x4e\x47\x52\x15\x40\x90\x3f\xce\x8e\xe2\x5e\x1a\xfc\x11\xe5\xfe\x95\x8e\x5b\x7f\x25\xe5\x54\xd6\x6d\x79\x6e\x34\xd4\x48\xd3\x24\x36\x07\x8c\x3f\x25\x8d\x9f\x53\x9c\xb3\x87\x38\x7a\x20\xf7\xa7\x40\xcd\xe7\x42\x52\x45\xbd\xea\xcc\xd5\xbe\x65\x0d\x03\x5a\xa4\x65\x4b\xfa\xd0\xce\x44\xd3\x87\xf5\xb3\xa7\x37\xa3\x5f\x57\xad\xd3\xfd\x4e\xeb\x1f\xf1\x5c\xe8\x0b\xcb\x19\x2c\xb4\x68\x0d\x3d\x62\x21\x1f\x5d\x1a\x74\x68\xe5\xa6\xc2\x9c\xb3\x00\x38\x9c\xc2\x93\xe4\x2d\xcb\x44\xc4\xb3\x90\x28\x67\x7d\xca\xcb\x67\xc6\x83\x22\x7e\x8a\x8b\x67\x7d\xb3\xc5\xd2\xfd\x6f\xd7\xf3\xa5\x30\xdd\x6b\xaa\x4c\xd9\xf7\xb1\xf9\x2f\xa3\x38\xaa\xac\xca\xcf\x98\x1a\x7b\xfa\xb9\x29\x5d\xad\x66\xf2\x4c\x4d\x40\x8b\x99\x8a\x07\x31\x37\x97\xa9\xe1\x0c\x48\x20\x61\xf8\xd6\x5e\x57\x6f\xed\xb3\x73\xf5\x44\x88\xac\xa2\x4a\xb2\xef\xa6\xc4\xd0\xf2\x72\xde\x55\x68\x0d\x14\xc7\xde\xf6\x3c\xfb\xd3\x9f\x1d\x13\x6c\x0d\x75\x96\x7b\xe2\xd9\xaa\xe4\x9a\x74\x08\x40\xcd\xd8\x63\x2c\x37\x38\x36\x75\x42\xb2\xbd\x2d\x35\x00\xd2\x72\x2c\x5a\xd4\x4a\x44\xa9\xda\x8c\x6a\x2a\x71\xa5\xed\x4e\x29\x3a\xd0\x73\xa0\xe7\x4e\x8f\x9e\x03\x35\x07\x6a\x0e\xd4\x1c\xa8\x39\x50\x73\xa0\xe6\x40\xcd\x81\x9a\x03\x35\x07\x6a\x0e\xd4\x1c\xa8\x39\x50\x73\xa0\xe6\x40\xcd\x81\x9a\x3b\x79\x6a\x0e\xf9\x63\xc0\x3c\x82\x79\x04\xf3\x38\x80\x19\x05\xf3\x58\x17\x0f\x98\xc7\x01\x33\x8f\x4a\x65\x61\x2c\xa9\xf3\x8e\x79\xdc\x8b\x4a\x3c\x4a\xb0\xef\xd2\x6c\x47\xa2\x60\xb1\x9c\xa9\x6c\xee\x57\x37\x67\x86\xbe\x58\x4f\x00\x46\xa2\xf8\x50\x11\xc2\xdd\xe4\xcb\x7f\x2d\xbf\x81\x00\xe7\x1d\xd9\x37\x2f\xc4\x53\xe7\xde\x2a\x0b\xa3\xf2\xd6\xab\xea\x97\xb7\xef\xa7\xa7\xdb\xd3\xde\x52\x35\xa5\xd8\x9c\x95\xed\xf7\xd3\x3f\x6f\xef\x26\x5f\x7e\x6f\x7a\x0f\xbb\x6a\xf7\x5d\xe5\x04\x49\x71\xc2\x67\xb4\xb9\xfe\xe7\xe9\xf6\x45\xfb\x2b\x11\xbc\x3e\x77\xdd\xfb\xc0\x18\x03\x6a\x66\x4d\x30\x4e\x43\x77\xee\x2f\xff\xd0\x1d\xd8\xb0\x2b\xf4\xdb\xf5\x6d\x41\x6f\x7c\x56\xd9\x5d\x92\xfc\x3f\x3e\x17\x79\xca\x07\xb2\x3f\xe0\x5c\x62\x73\x5e\x54\x97\xda\xd3\xed\x98\x26\xec\xbc\x37\xde\x76\x67\x92\xce\xc2\xbc\x57\xf7\x71\xb3\x2f\xc9\xf2\xc6\x5a\xf6\x1b\x81\xcb\x08\x5c\x46\xe0\x32\x02\x97\x11\xb8\x8c\xc0\x65\x04\x2e\x23\x70\x19\xd9\xe5\xb4\x85\xcb\x08\x5c\x46\xe0\x32\x02\x97\x11\xb8\x8c\xc0\x65\x04\x2e\x23\x17\xe7\x32\x02\x9f\x0a\xf8\x54\xc0\xa7\xe2\x34\x66\x14\x3e\x15\x75\xf1\xc0\xa7\xe2\xb4\x7c\x2a\x9e\x6e\x6f\xa4\x67\x79\x4c\xc8\x36\xfd\xfc\x9f\x06\xea\xca\xe0\x9d\x6e\xd9\x2b\xd3\x26\x0b\x54\xa2\xd5\x2b\xbb\x4c\xb7\x91\x56\xe6\xa5\x3a\x6d\xf5\xc1\xb7\xe0\x59\xab\x70\xa5\x9d\x7e\x8b\x4d\xf4\x42\xae\x7e\xa4\xb1\x7e\x23\x81\xe5\x9d\xd4\x91\x80\x2d\x17\xb6\x5c\xd8\x72\x61\xcb\x3d\x37\x5b\x6e\xbb\x0a\x24\x8d\xf6\xdc\x83\x15\x87\x41\x0d\x9f\xd6\x13\x75\xcc\x1a\x3e\x07\x33\xc0\xef\x50\x35\xa7\xd1\x00\x7d\x30\x89\xfc\x51\xd5\x24\x62\xad\xc5\x13\xc0\x67\x53\x31\x33\x9e\x02\xde\x58\x53\x42\x09\x7b\x7a\xd1\xd2\xa9\x54\x2d\x92\x4a\x5e\x4b\x11\x71\x5a\xa0\x56\x17\xa8\x56\x37\x32\x86\x5b\xbf\x35\x2c\x42\x8c\xe7\x73\x11\xc6\xbc\x10\xc9\x73\x49\xe1\x97\x57\x6e\x9c\xbc\xb5\x58\x9f\x84\xce\xa2\x8c\x07\xb4\x6b\x62\x15\x7a\x40\x50\x5e\xda\xe4\x1f\xe1\x56\xe9\x22\xd7\x9d\xac\x4e\x17\xd7\x6f\xba\x01\xd9\x8f\xcc\xcc\x19\xe8\x9a\x18\x9b\x7e\x9a\x52\x8e\x0d\x7d\xdc\x63\x9a\xa9\xcf\x13\xea\x72\x93\xfe\xb4\x45\x83\x1a\xca\xf2\xdf\x85\x7b\x69\x27\x97\xf5\xfc\xcb\xc1\x96\x3f\x98\x18\x30\x31\x60\x62\xc0\xc4\x80\x89\xe9\x8d\x89\x69\x79\x17\xac\xb0\x31\x87\xbb\x16\x3f\x56\xf2\x05\xa6\x64\x1e\xf3\x47\xd0\x24\x53\x29\x8f\x08\x1d\x4d\x54\x12\x07\xcf\x35\xbf\x3f\xb7\xe8\xca\x84\x83\x7a\xd9\xdd\x8e\xff\x3e\x66\xdf\xcd\x79\x66\xa0\x4b\x2a\xa4\xde\x2c\xe5\x9d\x2a\x98\xca\xd2\x07\x2e\x9d\x1f\x62\xb6\x10\x37\x33\x9e\x38\x5d\xf9\xfe\xca\xfc\xf9\xfe\x8a\xcd\x62\xc9\x93\xf8\xdf\xee\x22\x99\x0a\xc6\x43\x32\xcf\xab\x1b\x63\xba\x0c\x4b\x35\xcc\x34\x3f\xca\xcb\x97\x8c\x7e\x3a\x66\x9f\x62\x3a\x1c\x2b\x5d\x57\xd9\xea\xd8\x4a\x32\xa6\x30\xea\x31\xe9\x28\xaa\x78\xd8\x67\x42\xcd\x08\x3e\xba\xb1\xaf\x85\x3c\x7b\x15\x9a\xde\x49\x31\xa3\xa1\xeb\x0d\xfb\xa0\x7e\xb0\x88\x67\x53\x1e\xd5\x0c\x93\x5e\xa9\x11\xd9\x4c\x65\x73\x3d\x27\x8d\xf2\xfa\xb6\x34\xa2\xf5\xe2\x22\xd0\xeb\x10\x6b\x6a\x64\x1b\x6b\x34\x19\xc4\x61\xa9\x0a\x13\x56\x30\xf5\xc0\xdd\x1c\xe7\x14\x50\x46\x7f\x75\x68\x60\x5c\x99\x4c\x77\x8f\x78\x36\xc4\xfb\xd4\xd6\x3f\x36\x66\x77\x41\x20\x52\x53\x0f\xb4\xaa\xd9\x8d\xcc\x18\x46\xec\xda\x2e\xc0\xfa\x02\xcd\x7f\x61\xa3\x5f\x79\xf0\x18\x65\x6a\x21\x43\xfd\x14\xf9\xa7\xd2\x43\x4b\x82\x33\x10\xd2\xe2\xe3\x7a\x23\x6e\x04\x53\xdf\xd2\x2f\x6c\xf4\x59\x65\xa2\xd2\x2c\x0b\x78\x1e\xf0\x50\x8f\xde\xca\xc7\xb8\x2f\x53\x7b\xb9\x51\x3d\x57\x1a\x9c\xf9\x36\xf6\x59\x90\xe9\xf2\x72\x3f\x0e\xe2\x3c\x63\xda\xb4\xdd\x3c\x6c\xa2\x4e\x8f\x35\x0b\x20\x51\x7b\x9b\xdf\x55\x22\xf5\x70\xb6\x8d\x63\x52\xaa\xed\x84\xb5\x81\x56\x7d\x29\xfe\x69\x64\xe9\x10\x03\xb9\x23\x4d\x67\x0b\xdb\xb7\xe3\xe7\xce\x32\x02\xcb\xdc\xc9\x25\x5e\x3a\x99\x68\xac\xc1\x47\x64\x76\x40\x68\x23\x9a\xec\x72\xa2\xc9\xda\xdd\x28\xdb\x22\xca\x0e\xa7\x7a\xc1\x1f\x01\xfe\x08\xf0\x47\x80\x3f\x02\xfc\x11\x9a\x0e\x5f\x10\xdd\x27\x24\x11\x70\x9f\xe0\x3e\xc1\x7d\x82\xfb\x04\xf7\x09\xee\xf3\xbc\xb8\x4f\xd0\x11\xa0\x23\x40\x47\x80\x8e\xe8\x9d\x8e\xd8\x81\xb2\x1f\x68\xbc\x57\x3b\x11\xae\xc6\x7c\xbd\xd4\xe2\x36\x28\x22\x67\xed\x0b\x48\xd6\x87\x64\x7d\xe7\x9e\xac\xcf\x02\x46\x2a\xfd\xa0\x0f\x13\x3d\x3b\x2c\x0f\x54\x2a\xde\xb2\x7c\x11\x3c\xe8\xd3\x87\x4e\x77\xc1\xe7\xe6\x68\x4a\x33\x45\x00\xb5\x29\x70\x74\x73\x21\x08\x22\x86\xea\x7f\x46\x35\x88\x6d\xa3\xb1\x3f\xfd\x59\x4e\xb2\xca\x3b\x26\x01\x8d\xb2\xc6\xf8\x56\xbe\xcf\x3c\xd8\x39\xe3\xb7\x5f\x08\xeb\x86\xa5\xd3\xc3\x39\xd8\x49\x38\x2b\x42\xaa\xaa\x13\x3e\xd8\x90\x2a\x32\xc1\x7c\xe5\x92\x47\x22\x33\xc6\x44\x73\x3c\xe6\xb9\x0a\x62\xd2\x8e\xbd\xd9\x8e\x93\xf5\x55\x65\x4c\xc8\x42\xc3\x55\x67\x2e\x98\xf3\x47\x2d\xc5\xe2\x41\xe4\xc2\x61\xbe\x6a\xe0\x90\x0b\x30\x22\xcc\x4b\x26\x3a\x95\xb1\xdb\x77\x3f\xeb\x67\x33\x1e\x10\x27\x97\x28\x19\x19\x84\x47\x66\xb4\x40\xc9\x82\xc7\xd2\x9c\x49\x64\xa6\x2a\x9f\x25\x9e\xc2\x32\x86\x6c\xfa\xec\x95\x98\x48\x25\x5c\x46\x63\x95\x45\x37\xe9\x63\x74\xb3\x90\x71\xa0\x42\x71\xf3\xd3\x97\x7c\xa2\x5b\xd9\xdb\xee\x6d\x85\xd3\xe5\xf4\x0c\x0a\x12\x9e\x22\x52\x6b\x8b\xd2\xde\xb5\x40\x69\x1f\x8c\xf9\x6e\x38\x5d\x7e\xb7\xb5\xcb\xc6\x3d\x78\x38\x7d\x3e\x47\x30\x4c\xd0\x63\xe0\x60\xf8\x15\xeb\x24\x99\x88\xf9\xd5\x7f\x0e\x94\x53\x64\x3b\xf4\x6a\xca\x23\x82\xec\x21\x80\x5b\x67\x00\xb7\x10\xaf\x7d\x41\xf1\xda\x08\x4c\x43\x60\x1a\x02\xd3\x10\x98\x06\x4d\x71\xdd\x2e\x1a\x64\x14\xc8\x71\x34\x30\x04\xb1\x6c\x50\xc6\xac\x3a\x32\x70\x75\xcc\x9b\xad\x3b\x0f\x5d\xc9\x04\x0f\x97\xa0\xd7\x36\x25\x4a\xbf\xd2\x77\xbc\x4a\x05\x8c\x88\xbf\xc8\x0b\x6d\xaa\x7f\xe2\x41\x31\x66\xec\x93\xfe\xd7\xfd\x7e\xce\x63\xb2\xe8\xe5\x2c\x48\x16\x79\x21\xb2\xf2\x8a\x31\xee\xaa\x2c\x89\x1f\x05\x1b\xf9\x3e\x8e\x34\x92\x74\xe8\x67\xcc\x26\x09\x97\x52\x18\x08\x4a\xf8\x84\x27\x06\x12\xdd\xfe\xbc\xcf\x99\x4d\x7d\x3c\x12\x72\xf0\x42\xf3\xc0\x7b\xea\xc4\xa7\x47\xca\x3e\x19\x89\xe9\xdb\x22\xcd\x9d\x74\xac\xa3\xd6\x22\x17\x19\x79\x58\x95\x18\xfa\xb9\x67\x41\xe9\xce\x9c\x2f\x1f\x3e\xec\x2b\x0d\x56\xb9\xe5\x8b\x20\x12\x83\x37\xca\xbd\x84\xa1\x26\xee\xc5\xda\x47\x1a\x3e\xdd\x86\x78\x1e\x0a\xe7\x0c\xb2\xfd\xe4\xc8\x76\x72\xdc\xd9\xab\xd4\xf0\x35\xbd\xfb\xb7\xcd\x27\xf4\x5c\x64\x91\x68\xf5\x64\x5e\x64\xbc\x10\x51\x1c\x5c\xb7\x7f\x47\xff\xfc\x6c\x9f\xa4\xbb\xa0\x0d\xae\x4a\x79\x56\xc4\x14\x57\x67\x9c\xcc\x76\xc4\x58\xf4\xb5\x81\xd8\xa9\xfb\x72\x11\xd8\xa0\x97\x4c\xea\x9e\x5e\x0c\xd6\xeb\x33\xb7\x5e\x5f\x8e\xb3\xc0\x52\x7c\x8a\xdb\x5c\x26\x86\x4a\x9f\x34\x65\x5c\xfe\xeb\x35\xa7\xd0\x1b\xb2\xdd\x99\xc0\x69\x9e\xd0\x9b\x52\xc9\x6b\xf3\x36\x3d\x41\xe6\xf3\x9c\xbd\xfe\x2d\x57\x72\x62\xc2\xd3\xbf\xea\xf3\xce\xfe\xfc\xdd\x9d\x82\xe5\x2f\xdf\x0c\xc9\x8b\xa1\xfd\xba\xf9\xac\xb2\x80\xf8\x85\x48\xd1\xe4\x2b\x76\x7f\x35\xd3\xbf\xbb\xbf\x62\x77\x35\x69\x92\xf7\xbb\x21\x03\x48\xd7\xb1\x1b\xf5\x9a\x07\x34\x01\x14\xe0\x9c\xc4\x81\x35\x6f\x92\x6a\xa4\x7e\xd8\xb9\x35\x01\xc0\xa9\x50\x69\x22\xc6\xcc\x7c\x93\xf2\x1a\xb8\x35\x45\x3e\xe8\x8d\x13\xe1\x3f\xbf\x8f\x78\xf5\x87\xa0\x21\x99\x3f\x40\x43\x3a\xb6\x86\x94\x2e\x39\x6f\x0f\x5c\x47\x5a\x74\x6e\x29\x4b\x13\x1e\xec\x0a\xe4\xec\x5b\x67\x0e\xe5\xe0\xed\x09\x00\x77\x29\x00\x6e\x40\x38\x09\xd7\xb9\xff\x0b\xbc\x3d\x2f\x01\x81\x2c\x06\x6f\xa3\x7d\xc5\xda\x3a\x4e\x52\x34\x5b\x43\xd1\xb5\xce\x29\x3e\x9b\xf1\x40\x86\xf1\x53\x1c\x2e\x78\x52\x8d\x9e\xe4\x3e\xc7\x09\x8d\x75\x5c\x71\x0c\x7a\xef\x5d\x8a\x46\xd4\xc2\xa8\xcc\x74\x55\x4b\x5d\xe4\x01\x0f\x8b\x65\x5e\x08\x5e\x33\x3d\x2e\xc3\xa1\x1f\xab\x76\x2d\x1f\x20\xf7\x59\x65\x77\x49\xe2\xb1\x51\x7e\x35\x80\x43\x6d\xed\x0b\x97\x15\xd5\xb8\xc1\x54\x47\x41\xb9\x9f\x9e\x84\xbc\xe8\x00\x47\x9a\xc4\x73\x8f\x72\x44\x12\xc9\x33\x4e\x22\xb9\x9d\x22\xda\x96\x40\x72\xff\x12\xa6\xed\xe8\x2f\xa4\x8d\x44\xda\x48\xa4\x8d\x44\xda\xc8\x73\x4b\x1b\xb9\xfd\xe4\x6d\x4c\x19\xd9\xb3\xb3\xc1\xc1\x12\x45\x6e\x1f\xfe\xfa\x24\x91\x43\x96\xc1\x2e\xa9\x21\xb7\xcb\x60\x7d\x5a\xc8\x9e\x65\x80\x64\x90\x48\x06\x89\x64\x90\x48\x06\x89\x64\x90\xbd\x25\x83\x6c\x71\xfa\xaf\x24\x82\xdc\x18\x69\x78\x41\xbe\x86\xed\x46\x73\xc6\xc9\x2c\xb7\x8b\x7b\x53\x22\xcb\xc3\xca\x1d\xe9\x2b\x7b\x99\xd1\xd5\xd4\x95\x3d\x4f\xeb\x51\x13\x56\x6e\x17\xcf\x86\x64\x95\x7d\x1f\x9b\x43\x4d\x51\xb9\x5d\x68\x0d\x24\xc6\xde\xf6\x3c\xfb\xd3\x9f\xbb\x92\x61\x1b\x73\x89\x5c\x32\x47\xb6\xe4\x30\xf4\x8f\x25\xa2\x01\xec\x18\xd8\x31\x06\x76\xcc\x3e\x09\x76\x0c\xec\x18\xd8\x31\xb0\x63\x60\xc7\xc0\x8e\x81\x1d\x03\x3b\x36\x38\x66\x08\xec\x18\xd8\x31\xb0\x63\x60\xc7\xc0\x8e\x81\x1d\x03\x3b\x76\x8a\xec\x18\x52\x90\x80\x16\x04\x2d\x08\x5a\x70\xd0\x33\x0a\x5a\xb0\x2e\x1e\xd0\x82\xe7\x48\x0b\x36\x94\x18\xe8\x89\x1d\xac\x52\x82\xd2\x01\x1f\x35\x63\x8f\xb1\x0c\x3b\xa4\x06\xdf\x96\x4a\x0e\x29\x72\x16\x10\x6b\x3d\xa9\xd4\xde\x46\x35\xad\xbf\xd2\xf6\xcb\x88\x45\x90\x8a\x20\x15\x4f\x8a\x54\x04\xa1\x08\x42\x11\x84\x22\x08\x45\x10\x8a\x20\x14\x41\x28\x82\x50\x04\xa1\x08\x42\x11\x84\x22\x08\x45\x10\x8a\x20\x14\x41\x28\x82\x50\x3c\x15\x42\x11\xe5\x19\xc0\x8d\x82\x1b\x1d\x2a\x93\x06\x6e\x14\xdc\x28\xb8\x51\x70\xa3\x4b\x42\x3b\x2a\x37\x3a\x15\x05\xbf\xbd\xd9\x8b\xf6\x3c\x4a\x26\xe0\xa5\x59\x8f\x44\x51\x57\x57\xcc\x04\x6f\x60\x2f\x23\x51\xd4\xb9\x4b\x92\xc0\xdd\xe4\xcb\xef\x4d\x2f\x23\x0b\xf2\x8e\xa4\x62\x45\x90\x14\x5e\x7a\x5e\xcc\x22\xad\x95\xca\xdb\xaf\xaa\x3d\x68\xbf\xdd\x0e\x10\x89\x6c\x2c\x5d\x99\xd5\x95\x9d\x2a\x55\x73\x33\xd8\xb0\x49\xf4\xdb\x0d\xbb\x84\x5e\x43\x7e\xdd\x65\xd1\x0f\x66\x5f\x2e\xa7\xfa\xa6\x49\x1b\x97\xb1\xde\xe7\xbd\x19\xb7\x73\xfd\x83\x8b\x1d\x5e\x1a\x02\xf8\x7e\xf0\xfd\xe0\xfb\xc1\xf7\x83\xef\x07\xdf\x0f\xbe\x1f\x7c\xff\xf6\xd3\x16\x7c\x3f\xf8\x7e\xf0\xfd\xe0\xfb\xc1\xf7\x83\xef\x07\xdf\x7f\x71\x7c\x3f\xb8\x62\x70\xc5\xe0\x8a\x4f\x63\x46\xc1\x15\xd7\xc5\x03\xae\xf8\x34\xb9\xe2\xd6\xd9\x75\x0d\xe8\xe9\x96\xd6\x32\x6d\xb2\x40\x25\x5a\xc7\xb2\x6b\x75\x1b\x9b\x65\x5e\x6a\xe0\xb3\x3e\xf8\x66\x8e\x56\x4a\xbb\x17\x12\xf6\x23\x0d\xf8\x1b\x49\x2d\xef\xa4\x7c\x36\xac\xba\xb0\xea\xc2\xaa\x0b\xab\xee\xb9\x59\x75\xdb\x15\x5e\x6f\xb4\xec\x1e\xac\x26\xfe\xbf\xb4\xe0\xac\x3e\xfb\x96\x92\xcb\x07\x7a\x45\x99\x75\x50\x1b\x5b\x95\x41\x9d\x0a\x96\x6a\x69\xe5\x5a\xf5\x63\x77\x92\xc5\xd2\x9c\x2c\x2a\x63\x0b\xe9\x0f\xa7\x90\x99\x72\xff\x2c\x8c\x33\x7d\x15\x3e\x09\xbf\xe2\xf5\xf1\x49\xd6\x07\xbb\xe5\xdd\xda\xb0\x02\x66\xb3\x45\x46\xbb\x2c\xcd\x54\x20\x72\x32\x13\x58\xe0\x68\x57\xd9\x98\xfd\x93\xbe\x48\xb3\x45\x6b\xe7\x3d\xbb\x66\x77\x49\xf2\x9e\x8c\x00\xa1\x3e\xa5\x17\x52\x4f\xbc\x86\x60\x6e\x49\xda\xe6\x56\x4b\xa0\xb7\x98\x28\x33\x96\xe3\x4c\xd3\xc1\x4c\xf1\xed\x44\xb1\xde\x1c\x7f\x30\x89\xfc\x51\xd5\x29\x62\xad\xcf\x13\xd4\x67\x53\x31\x33\x3e\x03\xde\x6c\x53\x42\x09\x7b\x7a\xd1\xd2\x59\x08\x73\x39\x4c\x35\x9a\x96\xd7\x52\x44\x9c\x16\xa8\xd5\x0a\xb4\x02\xe3\x6e\x50\x63\xc2\xf5\x5b\xc3\xc2\xc4\x78\x3e\x17\x61\xcc\x0b\x91\x3c\x97\x64\x7e\x79\xe5\xc6\xc9\x5b\x8b\xfa\x49\xe8\x2c\xca\x78\x40\xbb\x26\x56\xa1\x07\x04\xe5\xa5\x4d\x9e\x12\x6e\x95\x2e\x72\xdd\xc9\xea\x74\x71\xfd\xa6\x1b\x90\xfd\xc8\xcc\x9c\x81\xae\x89\xb1\xe9\xe7\x5c\x70\xd9\xd8\xc7\x3d\xa6\x99\xfa\x3c\xa1\x2e\x37\x69\x52\x5b\x74\xa9\xa1\x2c\xff\x5d\x58\x98\x76\x72\x59\xcf\xc4\x1c\x6c\xf9\x83\x93\x01\x27\x03\x4e\x06\x9c\x0c\x38\x99\xde\x38\x99\x96\x77\xc1\x0a\x2f\x73\xb8\x6b\xf1\x63\x25\x93\x5b\x4a\x36\x32\x7f\x04\x4d\x32\x95\xf2\x88\xd0\xd1\x44\x25\x71\xf0\x5c\xf3\x00\x74\x8b\xae\x4c\x05\xa7\x97\xdd\xed\xf8\xef\x63\xf6\xdd\x9c\x67\x06\xba\xa4\x42\xea\xcd\x52\xde\xa9\x82\xa9\x2c\x7d\xe0\xd2\x79\x24\x66\x0b\x71\x33\xe3\x89\xd3\x95\xef\xaf\xcc\x9f\xef\xaf\xd8\x2c\x96\x3c\x89\xff\xed\x2e\x92\xa9\x60\x3c\x24\x43\xbd\xba\x31\x46\xcc\xb0\x54\xc3\x4c\xf3\xa3\xbc\x7c\xc9\xe8\xa7\x63\xf6\x29\xa6\xc3\xb1\xd2\x75\x95\xad\x8e\xad\xa4\x65\x0a\xa3\x1e\x93\x8e\xa2\x8a\x87\x7d\x26\xd4\x8c\xe0\xa3\x1b\xfb\x5a\xc8\xd3\x64\x12\xed\x56\x31\xa3\xa1\xeb\x0d\xfb\xa0\x7e\xb0\x88\x67\x53\x1e\xd5\xac\x93\x5e\xa9\x11\xd9\x4c\x65\x73\x3d\x27\x8d\xf2\xfa\xb6\x34\xa2\xf5\xe2\x22\xd0\xeb\x10\x6b\x6a\x64\x1b\x6b\x34\x19\xc4\x61\xa9\x0a\x13\x56\x20\xe3\x84\x9f\x63\x7d\x59\xdb\x9b\xd4\xa1\x81\x71\x65\x32\xdd\x3d\xe2\x79\x11\xef\x5d\x5b\xff\xd8\x98\xdd\x05\x81\x48\x0b\xba\x9b\xaa\x9a\xdd\xc8\x8c\x61\xc4\xae\xed\x02\xac\x2f\xd0\xfc\x17\x36\xfa\x95\x07\x8f\x51\xa6\x16\x32\xd4\x4f\x91\xa7\x2a\x3d\xb4\x24\x38\x03\x21\x2d\x3e\xae\x37\xe2\x46\x30\xf5\x2d\xfd\xc2\x46\x9f\x55\x26\x2a\xcd\xb2\x80\xe7\x01\x0f\xf5\xe8\xad\x7c\x8c\x23\x33\xb5\x97\x1b\xd5\x73\xa5\xc1\x99\x6f\x63\x9f\x05\x99\x2e\x2f\xf7\xe3\x20\xce\x33\x26\x50\xdb\xcd\xc3\x26\x12\xf5\x58\xb3\x00\x3a\xb5\xb7\xf9\x5d\xa5\x54\x0f\x67\xdb\x38\x26\xb9\xda\x4e\x58\x1b\x08\xd6\x97\xe2\x9f\x46\xaa\x0e\xb1\x92\x3b\xd2\x74\xdf\x0b\x5e\x2c\xda\xf2\x73\xe7\x1b\x95\x65\x2e\xe6\x12\x34\x9d\x56\x84\xd6\x69\x44\x6e\x76\xc0\x6f\x23\xcc\xec\x72\xc2\xcc\xda\x5d\x30\xdb\x42\xcd\x0e\xa7\x89\xc1\x3d\x01\xee\x09\x70\x4f\x80\x7b\x02\xdc\x13\x9a\x0e\x5f\xf0\xde\x27\x24\x11\x50\xa1\xa0\x42\x41\x85\x82\x0a\x05\x15\x0a\x2a\xf4\xbc\xa8\x50\xb0\x13\x60\x27\xc0\x4e\x80\x9d\xe8\x9d\x9d\xd8\x81\xc1\x1f\x68\x20\x58\x3b\x11\xae\x06\x83\xbd\xd4\xe2\x36\x28\x5e\x67\xed\x0b\x48\xea\x87\xa4\x7e\x17\x96\xd4\x0f\xd9\xf0\x07\x9e\xe1\xc0\xfe\xf4\x67\x39\xc9\x2a\xef\x98\x18\x34\xba\x1b\xe3\x5b\x39\x40\xf3\x60\x3f\x2c\xe0\x7e\x51\xae\x1b\xd6\x4f\x5f\x67\x63\x27\x61\xaf\x08\xbd\xaa\xce\xfa\x60\x43\xaf\xc8\x36\xf3\x95\x4b\x1e\x89\xcc\x58\x19\xcd\x41\x99\xe7\x2a\x88\x49\x6d\xf6\xf6\x3c\x4e\x66\x59\x95\x31\x21\x0b\x8d\x63\x9d\x1d\x61\xce\x1f\xb5\x14\x8b\x07\x91\x0b\x07\x06\xab\x01\x46\x2e\x10\x89\xc0\x30\xd9\xee\x54\xc6\x6e\xdf\xfd\xac\x9f\xcd\x78\x40\x64\x5d\xa2\x64\x64\xa0\x1f\xd9\xd7\x02\x25\x0b\x1e\x4b\x73\x3a\x91\xfd\xaa\x7c\x96\x08\x0c\x4b\x25\xb2\xe9\xb3\xd7\x6e\x22\x95\x70\x19\x8d\x55\x16\xdd\xa4\x8f\xd1\xcd\x42\xc6\x81\x0a\xc5\xcd\x4f\x5f\xf2\x89\x6e\x65\x6f\x83\xb8\x15\x4e\x97\xd3\x33\x28\xac\x78\xb2\x10\xae\x2d\x7c\x7b\xd7\x02\xbe\x7d\x30\xc6\xbd\x81\xf5\xfb\xdd\xd6\x7e\x1b\x87\xe2\x81\x75\xfc\x6c\xf1\x32\x01\x93\x53\xc0\xcb\xaf\x58\x77\x79\x49\x1a\xca\xfb\xf7\x98\x9e\x64\x3b\x44\x5b\x9b\x92\x04\x89\x48\x80\xc8\xce\x00\x91\x21\xf4\xfb\x82\x42\xbf\x11\xe3\x86\x18\x37\xc4\xb8\x21\xc6\x0d\xca\xe4\xba\x5d\x34\xc8\x80\x92\xe3\xa8\x66\x88\x87\xf1\x4f\x6e\x8c\x87\x39\x09\x15\xcd\x5b\xbb\x3b\x8f\x82\xc9\x04\x0f\x97\x40\xd8\x36\x9d\x4a\xbf\x72\x90\xd0\x97\x0a\x36\x11\x7f\x91\x43\xdb\x54\xff\xc4\x83\x62\xcc\xd8\x27\xfd\xaf\xfb\xfd\x9c\xc7\x64\x03\xcc\x59\x90\x2c\xf2\x42\x64\xe5\x8d\x63\x3c\x5f\x59\x12\x3f\x0a\x36\xf2\x7d\x1c\x69\x60\xe9\xc0\xd0\x98\x4d\x12\x2e\xa5\x30\x88\x94\xe0\x0a\x4f\x0c\x42\xba\xfd\x79\x9f\x23\x9c\xfa\x78\x24\x20\xe1\x85\xe6\x71\xf8\xd4\x89\x4f\x8f\x94\x7d\x32\x12\xd3\x97\x47\x9a\x3b\xe9\x58\x9f\xaf\x45\x2e\x32\x72\xd6\x2a\x21\xf5\x73\xcf\x82\xd2\x9d\x39\x5f\x6a\x7d\xd8\x37\x1c\xac\x77\xeb\x2f\x87\x48\x9c\x86\xf1\xee\x25\x64\x37\xaa\xd8\x83\xb7\x3f\x1e\x6f\x4f\x2e\x41\x7b\x15\x40\xbe\xa6\x77\xff\xb6\xf9\xc0\x9e\x8b\x2c\x12\xad\x9e\xcc\x8b\x8c\x17\x22\x8a\x83\xeb\xf6\xef\xe8\x9f\x9f\xed\x93\x74\x35\xb4\xc1\x5a\x29\xcf\x8a\x98\x22\xf6\x8c\xfb\xda\x8e\xb8\x8b\xbe\x36\x24\x53\x76\x5f\xde\x06\x1b\x54\x97\x49\xdd\x91\x8c\xc1\xc0\x7d\xe6\x06\xee\xcb\x71\x39\x58\x0a\x7f\x71\x9b\xcb\x84\x68\xe9\xe3\xa6\x0c\xfb\x7f\xbd\xe6\x28\x7a\x43\xe6\x3d\x13\x97\xcd\x13\x7a\x53\x2a\x79\x6d\xde\xa6\x27\xc8\xc2\x9e\xb3\xd7\xbf\xe5\x4a\x4e\x4c\xf4\xfb\x57\x7d\xe8\xd9\x9f\xbf\xbb\xa3\xb0\xfc\xe5\x9b\x21\xf9\x42\xb4\x5f\x37\x9f\x55\x16\x10\x05\x11\x29\x9a\x7c\xc5\xee\xaf\x66\xfa\x77\xf7\x57\xec\xae\x26\x4d\x72\xae\x37\x7c\x01\xe9\x3f\x76\xa3\x5e\xf3\x80\x26\x80\xe2\xa7\x93\x38\xb0\x16\x50\x52\x97\xd4\x0f\x3b\xb7\x26\xbe\x38\x15\x2a\x4d\xc4\x98\x99\x6f\x52\xda\x04\xb7\xa6\xc8\xc5\xbd\x71\x22\xfc\xe7\xf7\x11\xaf\xfe\x10\xb4\x26\xf3\x07\x68\x4d\xc3\xd1\x9a\xd2\x25\x2f\xf1\x53\xd0\x9b\x16\x9d\x5b\xd4\xd2\x84\x07\xbb\x82\x3b\xfb\xd6\x25\xc0\x3b\x38\x93\x02\xd9\x5d\x14\xb2\x1b\x10\x80\xc2\x3d\xef\xff\x02\x67\xd2\x0b\xc4\x27\x8b\xd3\xb0\xea\xbe\x62\x3b\xb9\x64\x52\x78\x5d\x43\x65\xb8\xce\xd9\x42\x9b\x82\x41\x86\xf1\x53\x1c\x2e\x78\x52\x0d\xe7\xe4\x3e\xe9\x0a\x8d\x7a\x5c\xf1\x36\x7a\xef\xfd\x94\x46\xd4\xc2\xa8\x4c\xbd\x55\xcb\xa5\xe4\x31\x11\x8b\x65\x5e\x08\x5e\xb3\x58\x2e\x23\xa6\x1f\x6b\xcc\x61\x3e\x62\xef\xb3\xca\xee\x92\xc4\xc3\xa7\xfc\x6a\x00\x47\xde\xda\x17\x2e\x2b\xd6\x72\x83\x85\x8f\x42\x85\x3f\x3d\x09\x89\x88\x4b\x9a\xc9\x8b\x08\xbb\x44\x92\xcb\x33\x4e\x72\xb9\x9d\x68\xda\x96\xe0\x72\xff\xda\xab\xed\x48\x34\xa4\xb5\x44\x5a\x4b\xa4\xb5\x44\x5a\xcb\x73\x4b\x6b\xb9\xfd\xe4\x6d\x4c\x69\xd9\xb3\xcb\xc2\xc1\x12\x59\x6e\x1f\xfe\xfa\x24\x96\x43\x96\xc1\x2e\xa9\x2b\xb7\xcb\x60\x7d\xda\xca\x9e\x65\x80\x64\x95\x48\x56\x89\x64\x95\x48\x56\x89\x64\x95\xbd\x25\xab\x6c\x71\xfa\xaf\x24\xaa\xdc\x18\xcd\x78\x41\x1e\x8b\xed\x46\x73\xc6\xc9\x36\xb7\x8b\x7b\x53\xa2\xcd\xc3\xca\x1d\xe9\x35\x7b\x99\xd1\xd5\xd4\x9a\x3d\x4f\xeb\x51\x13\x6a\x6e\x17\xcf\x86\x64\x9a\x7d\x1f\x9b\x43\x4d\xa1\xb9\x5d\x68\x0d\x74\xc6\xde\xf6\x3c\xfb\xd3\x9f\x7b\x11\x64\x1b\x33\x97\x5c\x3c\x6f\xb6\xe4\x67\xf4\x8f\x25\xde\x01\x8c\x19\x18\x33\x06\xc6\x0c\x8c\x19\x18\x33\x30\x66\x60\xcc\xc0\x98\x81\x31\x03\x63\x06\xc6\x6c\xe9\xb8\x1d\x20\x5b\x04\xc6\x0c\x8c\x19\x18\x33\x30\x66\x60\xcc\xc0\x98\x81\x31\x3b\x45\xc6\x0c\xc9\x4d\x40\x15\x82\x2a\x04\x55\x38\xe8\x19\x05\x55\x58\x17\x0f\xa8\xc2\xb3\xa5\x0a\x1b\x8a\x1c\xf4\xc4\x18\x56\x69\x42\xe9\xd0\x8f\x9a\xb1\xc7\x58\x86\x1d\xd2\x85\x6f\x4b\x4d\x87\xb4\x39\x8b\x8a\xb5\xb2\x54\xaa\x70\xa3\x9a\xea\x5f\x69\xbb\x03\xb2\x11\x44\x23\x88\xc6\xd3\x23\x1a\x41\x32\x82\x64\x04\xc9\x08\x92\x11\x24\x23\x48\x46\x90\x8c\x20\x19\x41\x32\x82\x64\x04\xc9\x08\x92\x11\x24\x23\x48\x46\x90\x8c\x20\x19\x4f\x8a\x64\x44\x31\x08\xf0\xa5\xe0\x4b\x87\xca\xae\x81\x2f\x05\x5f\x0a\xbe\x14\x7c\xe9\x92\xd0\x0e\xc4\x97\x86\x71\x1e\x28\x0d\xc9\x1c\x59\xba\x17\xf5\x79\x94\x74\xc2\x4b\x53\x1d\x51\xe1\xda\x99\xca\xe6\x7e\x69\x73\x66\xc8\x98\xf5\x24\x66\x24\x8a\x8f\x4e\x02\x77\x93\x2f\xff\xb5\xfc\x38\xf2\x27\xef\x48\x24\x7a\x21\x9e\x38\x8d\xe8\xf7\x45\xe5\x95\x57\xd5\xcf\x6e\xd9\x46\xce\xe7\xe0\xa4\xb7\x53\x4d\xe5\x37\x87\x64\xcb\xbd\x64\x7d\x01\xee\x26\x5f\x7e\x6f\x7a\x13\xdb\x6a\xf7\x6d\xe5\x04\x49\xd1\xdb\xe7\xb2\xbb\x1a\x18\xfa\x7d\x76\x99\x90\x61\xaa\x62\x59\xe4\x49\x1c\xf4\x1c\xef\x6f\x8c\xc5\x99\x35\x37\x39\x6b\x84\x73\xdc\xf9\x64\x3b\xf2\x5d\x77\x64\xc3\x5e\xd1\xad\x2c\x6f\x96\xda\xbb\xc8\x70\xbd\x3c\x0f\x83\xd9\xa6\xe3\x72\x19\xba\x14\xfc\xb5\xa9\x3b\xf7\x0d\xba\xdd\x85\xa6\xab\x30\xfd\xe5\xfd\xde\xec\x3e\xb3\x6e\xcf\xc1\x8d\x06\x6e\x34\x70\xa3\x81\x1b\x0d\xdc\x68\xe0\x46\x03\x37\x1a\xb8\xd1\xc0\x8d\xe6\xd8\x32\x80\x1b\x0d\xdc\x68\xe0\x46\x03\x37\x1a\xb8\xd1\xc0\x8d\xe6\xf4\xdc\x68\xe0\x82\x01\x17\x0c\xb8\x60\x9c\xc6\x8c\xc2\x05\xa3\x2e\x1e\xb8\x60\x9c\x90\x0b\x86\x63\xb5\xd6\x44\xaa\xaf\x27\xbb\x0c\xf2\xe9\x96\xef\x32\x6d\xb2\x40\x25\x5a\xd1\xb2\x0b\xb6\x2d\xcd\x65\x5e\x5e\x26\xba\x3e\xf8\xb6\xca\x58\xf1\xb5\x2d\xf6\x5b\x08\xbf\x17\xb2\xf6\x23\x8d\xfa\x1b\x89\x30\xef\xa4\xee\x3d\xec\xbc\xb0\xf3\xc2\xce\x0b\x3b\xef\xb9\xd9\x79\x37\xdc\xc2\xdb\x6c\xbd\x9b\x11\xdd\xe6\xdb\x78\xa7\xb3\xf7\x5f\x5a\x70\x56\xc3\x7d\x4b\x85\x1e\x02\xbd\xa2\xcc\x3a\xa8\x8d\xad\xca\xa9\x4e\x05\x4b\xb5\xb4\x72\xad\x0c\xb2\x3b\xc9\x62\x69\x4e\x16\x95\xb1\x85\xf4\x87\x53\xc8\xc2\xec\xf9\xf7\x85\x64\x61\x9c\xe9\x2b\xf1\x49\xf8\x15\xaf\x8f\x4f\xb2\x47\xd8\x2d\xef\xd6\x86\x15\x30\x9b\x2d\x32\xda\x65\x69\xa6\x02\x91\x93\xe1\xc0\x42\x49\xbb\xca\xc6\xec\x9f\xf4\x45\x9a\x2d\x5a\x3b\xef\xd9\x35\xbb\x4b\x92\xf7\x64\x16\x08\xf5\x29\xbd\x90\x7a\xe2\x35\x28\x73\x4b\xd2\x36\x27\xc2\x3d\x26\xca\x8c\xe5\x38\xd3\x74\x30\xe3\x7c\x3b\x51\xac\x37\xd0\x1f\x4c\x22\x7f\x54\xb5\x8c\x58\x6b\xf8\x04\xfe\xd9\x54\xcc\x8c\x17\x81\x37\xe4\x94\x50\xc2\x9e\x5e\xb4\x74\x16\xc2\x5c\x0e\x53\x8d\xaf\xe5\xb5\x14\x11\xa7\x05\x6a\xf5\x04\xad\xd2\xb8\x1b\xd4\x18\x75\xfd\xd6\xb0\x98\x31\x9e\xcf\x45\x18\xf3\x42\x24\xcf\x25\xbd\x5f\x5e\xb9\x71\xf2\xd6\xea\x01\x24\x74\x16\x65\x3c\xa0\x5d\x13\xab\xd0\x03\x82\xf2\xd2\x26\xdf\x09\xb7\x4a\x17\xb9\xee\x64\x75\xba\xb8\x7e\xd3\x0d\xc8\x7e\x64\x66\xce\x40\xd7\xc4\xd8\xf4\x73\x2e\xb8\x6c\xec\xe3\x1e\xd3\x4c\x7d\x9e\x50\x97\x9b\x74\xab\x2d\xda\xd5\x50\x96\xff\x2e\xbc\x4c\x3b\xb9\xac\xe7\x66\x0e\xb6\xfc\xc1\xd2\x80\xa5\x01\x4b\x03\x96\x06\x2c\x4d\x6f\x2c\x4d\xcb\xbb\x60\x85\xa9\x39\xdc\xb5\xf8\xb1\x92\x41\x31\xa5\x14\x8f\xfe\x08\x9a\x64\x2a\xe5\x11\xa1\xa3\x89\x4a\xe2\xe0\xb9\xe6\x13\xe8\x16\x5d\x99\x82\x51\x2f\xbb\xdb\xf1\xdf\xc7\xec\xbb\x39\xcf\x0c\x74\x49\x85\xd4\x9b\xa5\xbc\x53\x05\x53\x59\xfa\xc0\xa5\xf3\x51\xcc\x16\xe2\x66\xc6\x13\xa7\x2b\xdf\x5f\x99\x3f\xdf\x5f\xb1\x59\x2c\x79\x12\xff\xdb\x5d\x24\x53\xc1\x78\x48\xa6\x7b\x75\x63\xcc\x9a\x61\xa9\x86\x99\xe6\x47\x79\xf9\x92\xd1\x4f\xc7\xec\x53\x4c\x87\x63\xa5\xeb\x2a\x5b\x1d\x5b\x49\xd4\x14\x46\x3d\x26\x1d\x45\x15\x0f\xfb\x4c\xa8\x19\xc1\x47\x37\xf6\xb5\x90\xa7\xc9\x48\xda\xad\x62\x46\x43\xd7\x1b\xf6\x41\xfd\x60\x11\xcf\xa6\x3c\xaa\x99\x2a\xbd\x52\x23\xb2\x99\xca\xe6\x7a\x4e\x1a\xe5\xf5\x6d\x69\x44\xeb\xc5\x45\xa0\xd7\x21\xd6\xd4\xc8\x36\xd6\x68\x32\x88\xc3\x52\x15\x26\xac\x40\xc6\x09\x3f\xc7\x39\x85\xa7\xd1\x5f\x1d\x1a\x18\x57\x26\xd3\xdd\x23\x9e\x29\xf1\xfe\xb6\xf5\x8f\x8d\xd9\x5d\x10\x88\xb4\xa0\xbb\xa9\xaa\xd9\x8d\xcc\x18\x46\xec\xda\x2e\xc0\xfa\x02\xcd\x7f\x61\xa3\x5f\x79\xf0\x18\x65\x6a\x21\x43\xfd\x14\xf9\xae\xd2\x43\x4b\x82\x33\x10\xd2\xe2\xe3\x7a\x23\x6e\x04\x53\xdf\xd2\x2f\x6c\xf4\x59\x65\xa2\xd2\x2c\x0b\x78\x1e\xf0\x50\x8f\xde\xca\xc7\xb8\x36\x53\x7b\xb9\x51\x3d\x57\x1a\x9c\xf9\x36\xf6\x59\x90\xe9\xf2\x72\x3f\x0e\xe2\x3c\x63\x4a\xb5\xdd\x3c\x6c\xa2\x55\x8f\x35\x0b\x20\x58\x7b\x9b\xdf\x55\x92\xf5\x70\xb6\x8d\x63\xd2\xad\xed\x84\xb5\x81\x72\x7d\x29\xfe\x69\xe4\xed\x10\x53\xb9\x23\x4d\xf7\xbd\xe0\xc5\xa2\x2d\x3f\x77\xa6\x91\x5a\xe6\x56\x2e\x11\xd3\x09\x46\x6d\x9d\x50\x84\x67\x87\x74\x37\xe2\xd0\x2e\x27\x0e\xad\xdd\x7d\xb3\x2d\x16\xed\x70\x8a\x19\xbc\x15\xe0\xad\x00\x6f\x05\x78\x2b\xc0\x5b\xa1\xe9\xf0\x05\x0d\x7e\x42\x12\x01\x33\x0a\x66\x14\xcc\x28\x98\x51\x30\xa3\x60\x46\xcf\x8b\x19\x05\x59\x01\xb2\x02\x64\x05\xc8\x8a\xde\xc9\x8a\x1d\x08\xfd\x81\x46\x8a\xb5\x13\xe1\x6a\xb4\xd8\x4b\x2d\x6e\x83\xa2\x79\xd6\xbe\x80\xe4\x7f\x48\xfe\x77\x99\xc9\xff\x50\x8c\x62\xe0\x99\x10\xec\x4f\x7f\x96\x93\xac\xf2\x8e\xc9\x42\xa3\xc2\x31\x2e\x5b\x13\x83\xe6\x8d\x1e\xa9\xc1\xfd\x22\x61\x37\xac\xa6\x5e\x0f\xcc\x4e\xe2\x63\x11\xa3\x55\x9d\xfa\xc1\xc6\x68\x91\xd5\xe6\x2b\x97\x3c\x12\x99\xb1\x3f\x9a\xb3\x33\xcf\x55\x10\x93\x42\xed\x2d\x7d\x9c\x0c\xb6\x2a\x63\x42\x16\x1a\xe1\x3a\x0b\xc3\x9c\x3f\x6a\x29\x16\x0f\x22\x17\x0e\x26\x56\x23\x91\x5c\xc4\x12\xc1\x64\xb2\xea\xa9\x8c\xdd\xbe\xfb\x59\x3f\x9b\xf1\x80\x68\xbc\x44\xc9\xc8\x80\x42\xb2\xbc\x05\x4a\x16\x3c\x96\xe6\xc0\x22\xcb\x56\xf9\x2c\x51\x1b\x96\x64\x64\xd3\x67\xaf\xf7\x44\x2a\xe1\x32\x1a\xab\x2c\xba\x49\x1f\xa3\x9b\x85\x8c\x03\x15\x8a\x9b\x9f\xbe\xe4\x13\xdd\xca\xde\xa6\x72\x2b\x9c\x2e\xa7\x67\x50\x28\xf2\xb4\xc1\x5d\x5b\x60\xf7\xae\x05\xb0\xfb\x60\x6c\x7f\x43\xec\xfc\xbb\xad\x9d\x37\x3e\xc8\x43\xec\xfd\x79\x62\x6a\xc2\x2d\x27\x83\xa9\x5f\xb1\x8e\x73\x9c\x98\x3f\xfd\xe7\x40\xa9\x4e\x76\xc0\x72\xcd\xf9\x4d\x8e\x8e\xe5\x4e\x24\xab\x09\x50\x5b\x75\x92\x07\x8b\xda\x10\x47\x7e\x41\x71\xe4\x08\x98\x43\xc0\x1c\x02\xe6\x10\x30\x07\x85\x73\xdd\x2e\x1a\x64\x74\xca\x71\x94\x36\x04\xd7\x98\xc7\x36\x06\xd7\x9c\x8e\xde\xe6\xcd\xe4\x9d\x87\xd4\x64\x82\x87\x4b\x30\xac\xad\x8a\xa5\x5f\x3d\x5c\x1c\x4d\x05\xaa\x88\xbf\xc8\x3b\x6e\xaa\x7f\xe2\x41\x31\x66\xec\x93\xfe\xd7\xfd\x7e\xce\x63\x32\x1b\xe6\x2c\x48\x16\x79\x21\xb2\xf2\x02\x32\x6e\xb4\x2c\x89\x1f\x05\x1b\xf9\xbe\x8e\x34\xce\x74\xd8\x68\xcc\x26\x09\x97\x52\x18\x80\x4a\xe8\x85\x27\x06\x30\xdd\xfe\xbc\xcf\x89\x4e\x7d\x3c\x12\xae\xf0\x42\xf3\xb0\x7c\xea\xc4\xa7\x47\xca\x3e\x19\x89\xe9\xbb\x24\xcd\x9d\x74\xac\x03\xd9\x22\x17\x19\x79\x7e\x95\x08\xfb\xb9\x67\x41\xe9\xce\x9c\x2f\x4f\x3f\xec\x0b\x0f\x66\x3e\xb6\xe1\xc2\x88\xc4\x09\x59\xf9\x5e\xc2\x9c\x13\xed\x63\x6d\x2a\x1b\xfa\xd1\x86\x18\x1f\x0a\x27\x0e\x67\x80\x93\x73\x06\x20\x77\xa3\xbd\x0a\x32\x5f\xd3\xbb\x7f\xdb\x7c\x7e\xcf\x45\x16\x89\x56\x4f\xe6\x45\xc6\x0b\x11\xc5\xc1\x75\xfb\x77\xf4\xcf\xcf\xf6\x49\xba\x29\xda\xe0\xb0\x94\x67\x45\x4c\xd1\x80\xc6\x35\x6e\x4f\x4c\x46\x5f\x1d\x9c\xd5\xbb\x2f\x0f\x86\x0d\x5a\xce\xa4\xee\xb1\xc6\x60\x0b\x3f\x73\x5b\xf8\xe5\x78\x30\x2c\xc5\xd9\xb8\xcd\x65\x62\xc1\xf4\xd9\x53\xe6\x17\x78\xbd\xe6\x5c\x7a\x43\x96\x40\x13\x00\xce\x13\x7a\x53\x2a\x79\x6d\xde\xa6\x27\xc8\x18\x9f\xb3\xd7\xbf\xe5\x4a\x4e\x4c\x98\xfd\x57\x7d\x02\xda\x9f\xbf\xbb\x73\xb1\xfc\xe5\x9b\x21\xb9\x56\xb4\x5f\x37\x9f\x55\x16\x10\x5b\x11\x29\x9a\x7c\xc5\xee\xaf\x66\xfa\x77\xf7\x57\xec\xae\x26\x4d\xf2\xe2\x37\xd4\x02\xe9\x46\x76\xa3\x5e\xf3\x80\x26\x80\x02\xb5\x93\x38\xb0\xc6\x52\x52\xa5\xd4\x0f\x3b\xb7\x26\x90\x39\x15\x2a\x4d\xc4\x98\x99\x6f\x52\x7e\x06\xb7\xa6\xc8\x97\xbe\x71\x22\xfc\xe7\xf7\x11\xaf\xfe\x10\x34\x2a\xf3\x07\x68\x54\xb5\x31\x1d\xdb\x71\x62\xc9\x21\xfd\x64\x74\xaa\x45\xe7\x16\xb8\x34\xe1\xc1\xbe\x80\xcf\xbe\x7d\x31\x90\x0f\x4e\xab\x80\x7c\x97\x07\xf9\x06\x84\xac\x00\x00\xfc\x5f\xe0\xb4\xda\xa2\xf3\x67\x8a\x5e\x16\x27\x64\x0f\x7e\xc5\xda\x7b\x7d\x52\xa4\xdf\x86\x42\x76\x9d\x13\x90\x36\x2b\x84\x0c\xe3\xa7\x38\x5c\xf0\xa4\x1a\x61\xca\x7d\x1e\x98\x9a\x08\xc6\x15\x57\xa6\xf7\xde\x09\x6a\x44\x2d\x8d\xca\xac\x60\xb5\x34\x4f\x1e\x36\xb1\x58\xe6\x85\xe0\x35\x83\xe7\x32\xa8\xfa\xd1\x64\x45\x5b\x09\x26\xfc\xac\xb2\xbb\x24\xf1\x48\x2b\xbf\x1a\xc0\x81\xb8\xf6\x85\xcb\x8a\x05\xdd\x60\x18\xa4\x50\xe6\x4f\x4f\x42\x5e\x78\x30\x28\x4d\xe3\xe5\x44\x84\x22\x0d\xe7\x19\xa7\xe1\xdc\x4e\x57\x6d\x4b\xc1\xb9\x7f\xf9\xd8\x76\x54\x1c\x12\x6f\x22\xf1\x26\x12\x6f\x22\xf1\xe6\xb9\x25\xde\xdc\x7e\xf2\x36\x26\xdd\xec\xd9\xf1\xe1\x60\xa9\x36\xb7\x0f\x7f\x7d\x9a\xcd\x21\xcb\x60\x97\xe4\x9a\xdb\x65\xb0\x3e\xb1\x66\xcf\x32\x40\x3a\x4d\xa4\xd3\x44\x3a\x4d\xa4\xd3\x44\x3a\xcd\xde\xd2\x69\xb6\x38\xfd\x57\x52\x69\x6e\x8c\x98\xbc\x20\xbf\xc7\x76\xa3\x39\xe3\x74\xa0\xdb\xc5\xbd\x29\x15\xe8\x61\xe5\x8e\x04\xa0\xbd\xcc\xe8\x6a\xf2\xcf\x9e\xa7\xf5\xa8\x29\x3f\xb7\x8b\x67\x43\xba\xcf\xbe\x8f\xcd\xa1\x26\xf9\xdc\x2e\xb4\x06\x42\x63\x6f\x7b\x9e\xfd\xe9\xcf\xdd\x49\xb3\x56\x09\x53\xc0\xa5\x6d\x70\x4f\xfa\xc7\x12\x1d\x01\x16\x0d\x2c\x1a\x03\x8b\x66\x1e\x03\x8b\x06\x16\x0d\x2c\x1a\x58\x34\xb0\x68\x60\xd1\xc0\xa2\x81\x45\x1b\x36\x83\x04\x16\x0d\x2c\x1a\x58\x34\xb0\x68\x60\xd1\xc0\xa2\x81\x45\x3b\x45\x16\x0d\x69\x53\x40\x1f\x82\x3e\x04\x7d\x38\xe8\x19\x05\x7d\x58\x17\x0f\xe8\xc3\xf3\xa6\x0f\x1b\xea\x2d\xf4\xc4\x22\x56\xa9\x43\xe9\x20\x90\x9a\xb1\xc7\x58\x86\x3d\x50\x88\x6f\x4b\xb5\x87\x54\x3b\x0b\x91\xb5\xe6\x54\xea\x73\xa3\x9a\x1d\xa0\xd2\x76\x57\x04\x24\xc8\x47\x90\x8f\x27\x46\x3e\x82\x78\x04\xf1\x08\xe2\x11\xc4\x23\x88\x47\x10\x8f\x20\x1e\x41\x3c\x82\x78\x04\xf1\x08\xe2\x11\xc4\x23\x88\x47\x10\x8f\x20\x1e\x41\x3c\x9e\x1e\xf1\x88\x12\x14\xe0\x52\xc1\xa5\x0e\x9d\x79\x03\x97\x0a\x2e\x15\x5c\x2a\xb8\xd4\x25\xa1\x1d\x88\x4b\x35\xc6\x7e\x47\xa4\xee\x45\x87\x1e\x25\x37\xf1\xd2\x3c\x47\x54\x49\x77\xa6\xb2\xb9\x5f\xd7\x9c\x19\x5a\x66\x3d\xa1\x19\x89\x82\xc8\xaf\xfc\x6e\xf2\xe5\xbf\x96\x9f\x45\x26\xe6\x1d\xc9\x44\x2f\xc4\x13\xa7\x12\xcd\x8e\xa8\x3c\xff\xaa\xfa\xcd\x4d\xbb\xe7\xe9\xf6\xb4\x37\x50\x4d\xd3\x37\x67\x62\x9b\xdd\xf3\xcf\xdb\xbb\xc9\x97\xdf\x9b\xde\xc0\x1e\xda\x7d\x0f\x39\x41\x52\x08\xf7\x59\x6c\xa5\xff\x79\xba\xdd\x73\x37\xd9\xad\xd8\xa7\x8f\x8e\xb1\x01\x67\xd6\x8a\xe4\x8c\x0c\xde\x3d\x87\x7c\x23\xd6\xef\x01\xfd\xb6\xdb\x04\xf4\x2f\x52\x59\x2f\xcb\x7b\x30\xdb\x6e\x6c\x97\xd7\xd3\xed\x98\xa6\xea\x5c\x37\xd8\x76\x77\x97\xae\xc2\xec\x6b\xfb\x75\x8d\xab\xcb\xd2\x06\x5a\x76\x71\x81\x77\x0b\xbc\x5b\xe0\xdd\x02\xef\x16\x78\xb7\xc0\xbb\x05\xde\x2d\xf0\x6e\xd9\xe5\xb4\x85\x77\x0b\xbc\x5b\xe0\xdd\x02\xef\x16\x78\xb7\xc0\xbb\x05\xde\x2d\x17\xe7\xdd\x02\x8f\x08\x78\x44\xc0\x23\xe2\x34\x66\x14\x1e\x11\x75\xf1\xc0\x23\xe2\x54\x3c\x22\x9e\x6e\xd7\xc6\x93\xaf\x90\x53\x06\xe9\x74\xcb\x4f\x99\x36\x59\xa0\x12\xad\x58\xd9\x05\xba\x8d\x96\x32\x2f\x39\x62\xea\x83\x7f\xb7\x12\xac\xbd\xdc\x42\xbf\x45\xec\x7b\x21\x4b\x3f\xd2\x28\xbf\x91\xa8\xf2\x4e\xca\xd5\xc3\x7e\x0b\xfb\x2d\xec\xb7\xb0\xdf\x9e\x9b\xfd\x76\xc3\xed\xba\xcd\x86\xbb\x19\xa9\x6d\xbe\x65\x77\x3a\x7b\xff\xa5\x05\x67\x35\xd7\xb7\x54\x7a\x21\xd0\x2b\xca\xac\x83\xda\xd8\xaa\x5c\xe9\x54\xb0\x54\x4b\x2b\xd7\x4a\x1e\xbb\x93\x2c\x96\xe6\x64\x51\x19\x5b\x48\x7f\x38\x85\x2c\xcc\x9e\x7f\x5f\x48\x16\xc6\x99\xbe\x0a\x9f\x84\x5f\xf1\xfa\xf8\x24\x3b\x83\xdd\xf2\x6e\x6d\x58\x01\xb3\xd9\x22\xa3\x5d\x96\x66\x2a\x10\x39\x19\x04\x2c\x44\xb4\xab\x6c\xcc\xfe\x49\x5f\xa4\xd9\xa2\xb5\xf3\x9e\x5d\xb3\xbb\x24\x79\x4f\xea\x7e\xa8\x4f\xe9\x85\xd4\x13\xaf\xc1\x96\x5b\x92\xb6\x39\x11\xee\x31\x51\x66\x2c\xc7\x99\xa6\x83\x19\xdd\xdb\x89\x62\xbd\xe1\xfd\x60\x12\xf9\xa3\xaa\x3d\xc4\x5a\x73\x27\x50\xcf\xa6\x62\x66\xbc\x03\xbc\x81\xa6\x84\x12\xf6\xf4\xa2\xa5\xb3\x10\xe6\x72\x98\x6a\xdc\x2c\xaf\xa5\x88\x38\x2d\x50\x8b\xff\xb5\xaa\xe2\x6e\x50\x63\xac\xf5\x5b\xc3\x62\xc3\x78\x3e\x17\x61\xcc\x0b\x91\x3c\x97\xb4\x7d\x79\xe5\xc6\xc9\x5b\x8b\xef\x49\xe8\x2c\xca\x78\x40\xbb\x26\x56\xa1\x07\x04\xe5\xa5\x4d\x3e\x11\x6e\x95\x2e\x72\xdd\xc9\xea\x74\x71\xfd\xa6\x1b\x90\xfd\xc8\xcc\x9c\x81\xae\x89\xb1\xe9\xe7\x5c\x70\xd9\xd8\xc7\x3d\xa6\x99\xfa\x3c\xa1\x2e\x37\xe9\x4c\x5b\xb4\xa6\xa1\x2c\xff\x5d\xf8\x96\x76\x72\x59\xcf\xb9\x1c\x6c\xf9\x83\x7d\x01\xfb\x02\xf6\x05\xec\x0b\xd8\x97\xde\xd8\x97\x96\x77\xc1\x0a\x03\x73\xb8\x6b\xf1\x63\x25\x6f\x61\x9a\x08\x9e\x0b\x7f\x04\x4d\x32\x95\xf2\x88\xd0\xd1\x44\x25\x71\xf0\x5c\xf3\xf5\x73\x8b\xae\x4c\x7c\xa8\x97\xdd\xed\xf8\xef\x63\xf6\xdd\x9c\x67\x06\xba\xa4\x42\xea\xcd\x52\xde\xa9\x82\xa9\x2c\x7d\xe0\xd2\xf9\x1e\x66\x0b\x71\x33\xe3\x89\xd3\x95\xef\xaf\xcc\x9f\xef\xaf\xd8\x2c\x96\x3c\x89\xff\xed\x2e\x92\xa9\x60\x3c\x24\x93\xbc\xba\x31\xe6\xca\xb0\x54\xc3\x4c\xf3\xa3\xbc\x7c\xc9\xe8\xa7\x63\xf6\x29\xa6\xc3\xb1\xd2\x75\x95\xad\x8e\xad\x24\x60\x0a\xa3\x1e\x93\x8e\xa2\x8a\x87\x7d\x26\xd4\x8c\xe0\xa3\x1b\xfb\x5a\xc8\xd3\x64\xfc\xec\x56\x31\xa3\xa1\xeb\x0d\xfb\xa0\x7e\xb0\x88\x67\x53\x1e\xd5\x4c\x92\x5e\xa9\x11\xd9\x4c\x65\x73\x3d\x27\x8d\xf2\xfa\xb6\x34\xa2\xf5\xe2\x22\xd0\xeb\x10\x6b\x6a\x64\x1b\x6b\x34\x19\xc4\x61\xa9\x0a\x13\x56\x20\xe3\x84\x9f\xe3\x9c\x02\xc1\xe8\xaf\x0e\x0d\x8c\x2b\x93\xe9\xee\x11\xcf\x80\x78\x3f\xda\xfa\xc7\xc6\xec\x2e\x08\x44\x5a\xd0\xdd\x54\xd5\xec\x46\x66\x0c\x23\x76\x6d\x17\x60\x7d\x81\xe6\xbf\xb0\xd1\xaf\x3c\x78\x8c\x32\xb5\x90\xa1\x7e\x8a\x7c\x52\xe9\xa1\x25\xc1\x19\x08\x69\xf1\x71\xbd\x11\x37\x82\xa9\x6f\xe9\x17\x36\xfa\xac\x32\x51\x69\x96\x05\x3c\x0f\x78\xa8\x47\x6f\xe5\x63\x5c\x96\xa9\xbd\xdc\xa8\x9e\x2b\x0d\xce\x7c\x1b\xfb\x2c\xc8\x74\x79\xb9\x1f\x07\x71\x9e\x31\x55\xda\x6e\x1e\x36\xd1\xa5\xc7\x9a\x05\x10\xa7\xbd\xcd\xef\x2a\x79\x7a\x38\xdb\xc6\x31\x69\xd4\x76\xc2\xda\x40\xa5\xbe\x14\xff\x34\xf2\x73\x88\x69\xdc\x91\xa6\xfb\x5e\xf0\x62\xd1\x96\x9f\x3b\xb3\x48\x2b\x73\x1b\x97\x48\xe9\x04\xa2\xae\x06\x1c\x61\xd9\x01\x7d\x8d\x78\xb1\xcb\x89\x17\x6b\x77\x7f\x6c\x8b\x19\x3b\x9c\xa2\x05\xef\x03\x78\x1f\xc0\xfb\x00\xde\x07\xf0\x3e\x68\x3a\x7c\x41\x6b\x9f\x90\x44\xc0\x74\x82\xe9\x04\xd3\x09\xa6\x13\x4c\x27\x98\xce\xf3\x62\x3a\x41\x3e\x80\x7c\x00\xf9\x00\xf2\xa1\x77\xf2\x61\x07\x82\x7e\xa0\x11\x5d\xed\x44\xb8\x1a\xd5\xf5\x52\x8b\xdb\xa0\x68\x9b\xb5\x2f\x20\xf9\xde\x65\x52\x42\xe7\x9b\x7c\x0f\xb5\x19\x06\x9e\x89\xc0\xfe\xf4\x67\x39\xc9\x2a\xef\x98\xec\x33\xaa\x19\xe3\x72\x2b\xb1\x67\x9e\xec\x90\xda\xdb\x2f\x32\x75\xc3\xaa\xe9\xf4\xc0\xeb\x24\x3e\x15\x31\x52\xd5\xa9\x1e\x6c\x8c\x14\x59\x59\xbe\x72\xc9\x23\x91\x19\x7b\xa1\x39\x13\xf3\x5c\x05\x31\x29\xc0\xde\x32\xc7\xc9\xc0\xaa\x32\x26\x64\xa1\x11\xa9\xb3\x08\xcc\xf9\xa3\x96\x62\xf1\x20\x72\xe1\x60\x5d\x35\x12\xc8\x45\x0c\x11\xac\x25\x2b\x9c\xca\xd8\xed\xbb\x9f\xf5\xb3\x19\x0f\x88\x76\x4b\x94\x8c\x0c\x88\x23\x4b\x59\xa0\x64\xc1\x63\x69\x0e\x22\xb2\x44\x95\xcf\x12\x15\x61\x49\x41\x36\x7d\xf6\x7a\x4a\xa4\x12\x2e\xa3\xb1\xca\xa2\x9b\xf4\x31\xba\x59\xc8\x38\x50\xa1\xb8\xf9\xe9\x4b\x3e\xd1\xad\xec\x6d\xda\xb6\xc2\xe9\x72\x7a\x06\x85\xfa\x4e\x0b\x8c\xb5\x05\x62\xef\x5a\x00\xb1\x0f\xc6\x36\x37\x84\xce\xbe\xdb\xda\x59\xe3\xe3\x3b\x84\xde\x9e\x17\xc6\x25\x5c\x31\x58\x8c\xfb\x8a\xbd\x30\xe7\x87\xf9\xd5\x7f\x0e\x94\xfa\xa3\x05\x96\xaa\xe7\xfb\x40\x96\x0f\xa0\xa8\x33\x40\x51\x88\xab\xbe\xa0\xb8\x6a\x04\x90\x21\x80\x0c\x01\x64\x08\x20\x83\x02\xb8\x6e\x17\x0d\x32\x5a\xe3\x38\x4a\x16\x82\x4d\x36\x04\x9b\x0c\x57\xef\xf2\x66\xe7\xce\x43\x4c\x32\xc1\xc3\x25\xb8\xb5\x4d\x65\xd2\xaf\xf4\x17\x57\x52\x81\x1e\xe2\x2f\xf2\x16\x9b\xea\x9f\x78\x50\x8c\x19\xfb\xa4\xff\x75\xbf\x9f\xf3\x98\xcc\x72\x39\x0b\x92\x45\x5e\x88\xac\xbc\x50\x8c\x5b\x29\x4b\xe2\x47\xc1\x46\xbe\x8f\x23\x8d\x1b\x1d\xd6\x19\xb3\x49\xc2\xa5\x14\x06\x70\x12\x1a\xe1\x89\x01\x40\xb7\x3f\xef\x73\x42\x53\x1f\x8f\x84\x13\xbc\xd0\x3c\xcc\x9e\x3a\xf1\xe9\x91\xb2\x4f\x46\x62\xfa\x6e\x48\x73\x27\x1d\xeb\x50\xb5\xc8\x45\x46\x9e\x50\x25\x62\x7e\xee\x59\x50\xba\x33\xe7\xcb\x5b\x0f\xfb\x02\x83\x99\xed\xca\x54\xe0\x3c\x81\xd3\x7e\x0f\x26\x99\xe8\x12\x6b\xfb\x68\xf8\x74\x1b\x82\x78\x28\xdc\x30\x48\xf1\x93\x23\xc5\xc9\x9d\x66\xaf\xc2\xbd\xd7\xf4\xee\xdf\x36\x9f\xc7\x73\x91\x45\xa2\xd5\x93\x79\x91\xf1\x42\x44\x71\x70\xdd\xfe\x1d\xfd\xf3\xb3\x7d\x92\x4e\xfe\x36\xf8\x29\xe5\x59\x11\x53\xb4\x9b\x71\xfd\xda\x11\x4b\xd1\xd7\x8e\x6e\x7d\xee\x8b\xc9\xdf\xa0\x6d\x4c\xea\x9e\x57\x0c\x36\xe9\x33\xb7\x49\x5f\x0e\xb3\xbf\x14\x2f\xe2\x36\x97\x89\x69\xd2\x67\x4c\x19\x27\xff\x7a\xcd\xf9\xf3\x86\x2c\x72\x26\x90\x99\x27\xf4\xa6\x54\xf2\xda\xbc\x4d\x4f\x90\x51\x3c\x67\xaf\x7f\xcb\x95\x9c\x98\x70\xf1\xaf\xfa\xa4\xb3\x3f\x7f\x77\xe7\x5f\xf9\xcb\x37\x43\x72\x39\x68\xbf\x6e\x3e\xab\x2c\x20\xd6\x20\x52\x34\xf9\x8a\xdd\x5f\xcd\xf4\xef\xee\xaf\xd8\x5d\x4d\x9a\xe4\x8d\x6e\x4c\xfc\xa4\xd3\xd8\x8d\x7a\xcd\x03\x9a\x00\x0a\x38\x4e\xe2\xc0\x1a\x2d\x49\x05\x52\x3f\xec\xdc\x9a\x80\xdc\x54\xa8\x34\x11\x63\x66\xbe\x49\x79\x06\xdc\x9a\x22\x9f\xf0\xc6\x89\xf0\x9f\xdf\x47\xbc\xfa\x43\xd0\x84\xcc\x1f\xa0\x09\x1d\xc5\xe1\x60\xc9\x81\x7a\xb0\xba\xd0\xa2\x73\xcb\x57\x9a\xf0\x60\x57\xc0\x66\xdf\x3a\x5b\xc8\x06\xe7\x4b\x40\xb4\xf3\x87\x68\x03\x42\x42\xb8\xb0\xfd\x5f\xe0\x7c\x79\x7e\xe8\x62\x31\x60\x3b\xeb\x2b\xb6\xdd\x9b\x91\x22\xc4\x1a\x0a\x96\x75\x4e\xc4\xd9\x2c\x02\x32\x8c\x9f\xe2\x70\xc1\x93\x6a\x44\x22\xf7\x79\x43\x68\x94\xe3\x8a\xcb\xce\x7b\xef\xec\x33\xa2\x16\x46\x65\xf6\xa8\x5a\x3a\x20\x0f\x63\x58\x2c\xf3\x42\xf0\x9a\xe1\x70\x19\xe4\xfc\xa8\x5a\xa5\x7c\xd0\xd9\x67\x95\xdd\x25\x89\x47\x3c\xf9\xd5\x00\x0e\xac\xb5\x2f\x5c\x56\x8c\xe0\x06\x43\xdb\xbf\xfc\x5c\x5e\xe6\x09\x44\xd3\x77\xbe\x91\x83\x48\xc3\x78\xc6\x69\x18\xb7\xd3\x39\xdb\x52\x30\xee\x5f\xe6\xb3\x1d\x55\x85\xc4\x8b\x48\xbc\x88\xc4\x8b\x48\xbc\x78\x6e\x89\x17\xb7\x9f\xbc\x8d\x49\x17\x7b\x76\x0c\x38\x58\xaa\xc5\xed\xc3\x5f\x9f\x66\x71\xc8\x32\xd8\x25\xb9\xe2\x76\x19\xac\x4f\xac\xd8\xb3\x0c\x90\x4e\x11\xe9\x14\x91\x4e\x11\xe9\x14\x91\x4e\xb1\xb7\x74\x8a\x2d\x4e\xff\x95\x54\x8a\x1b\x23\xfe\x2e\xc8\x2f\xb0\xdd\x68\xce\x38\x1d\xe4\x76\x71\x6f\x4a\x05\x79\x58\xb9\x23\x01\x64\x2f\x33\xba\x9a\xfc\xb1\xe7\x69\x3d\x6a\xca\xc7\xed\xe2\xd9\x90\xee\xb1\xef\x63\x73\xa8\x49\x1e\xb7\x0b\xad\x81\xb8\xd8\xdb\x9e\x67\x7f\xfa\xb3\x3d\xe9\xb5\x31\x91\xc7\x65\x72\x61\x4b\xee\x3e\xff\x58\xa2\x15\xc0\x82\x81\x05\x63\x60\xc1\xc0\x82\x81\x05\x03\x0b\x06\x16\x0c\x2c\x18\x58\x30\xb0\x60\x60\xc1\x86\xc4\x00\x81\x05\x03\x0b\x06\x16\x0c\x2c\x18\x58\x30\xb0\x60\x60\xc1\x4e\x91\x05\x43\x5a\x10\xd0\x7f\xa0\xff\x40\xff\x0d\x7a\x46\x41\xff\xd5\xc5\x03\xfa\xef\xbc\xe8\xbf\x86\x3c\xfe\x3d\xb1\x80\x55\xea\x4f\x3a\xc8\xa3\x66\xec\x31\x96\x61\x87\x14\xe0\xdb\x52\xbd\x21\x15\xce\x42\x61\xad\x21\x95\x7a\xdb\xa8\xa6\xef\x57\xda\xde\x97\x40\x04\x79\x08\xf2\xf0\x44\xc8\x43\x10\x87\x20\x0e\x41\x1c\x82\x38\x04\x71\x08\xe2\x10\xc4\x21\x88\x43\x10\x87\x20\x0e\x41\x1c\x82\x38\x04\x71\x08\xe2\x10\xc4\x21\x88\xc3\xe1\x13\x87\x28\x8d\x00\x0e\x14\x1c\xe8\x50\x19\x33\x70\xa0\xe0\x40\xc1\x81\x82\x03\x5d\x12\xda\x91\x38\xd0\xa9\x28\xf8\xed\xcd\x5e\xf4\xe6\x51\x72\xf4\x2e\xcd\x77\x24\x8a\xba\xa2\x62\xa6\x76\x03\x4b\x19\x89\xc2\x71\x94\x34\xf6\xbb\xc9\x97\xdf\x9b\x5e\x43\x66\xe2\x1d\xc9\xc3\x8a\x20\x29\x5c\xf4\x5c\x18\x44\x5a\x25\x95\xf7\x5e\x55\xbf\xdd\x66\x73\x1d\x20\x8e\xd8\x58\xb4\x32\xab\x13\x3b\x95\xa9\xe6\x3c\xb0\x61\x4b\xe8\xb7\x6b\x7b\x82\xfe\x83\x2c\xb8\xcb\x42\x1f\xcc\x2e\x2c\x53\x6e\xd3\x74\x8d\xcb\x18\xed\x73\xdd\x74\xdb\xb9\xfb\x01\xc5\xfc\x2e\x75\x1e\xfc\x3d\xf8\x7b\xf0\xf7\xe0\xef\xc1\xdf\x83\xbf\x07\x7f\x0f\xfe\x7e\xfb\x69\x0b\xfe\x1e\xfc\x3d\xf8\x7b\xf0\xf7\xe0\xef\xc1\xdf\x83\xbf\xbf\x38\xfe\x1e\xdc\x2f\xb8\x5f\x70\xbf\xa7\x31\xa3\xe0\x7e\xeb\xe2\x01\xf7\x7b\x6a\xdc\x6f\xeb\xec\xb7\x06\xee\x74\x4b\x5c\x99\x36\x59\xa0\x12\xad\x5d\xd9\x55\xba\x8d\xaf\x32\x2f\xd5\x18\xab\x0f\xbe\x81\xa3\x15\xaa\xee\x85\x54\xfd\x48\x43\xfd\x46\xf2\xca\x3b\x29\x51\x0d\x4b\x2e\x2c\xb9\xb0\xe4\xc2\x92\x7b\x6e\x96\xdc\x76\xc5\xcd\x1b\xad\xb9\x07\xab\x3b\xff\x2f\x2d\x38\xab\xc3\xbe\xa5\xb4\xef\x81\x5e\x51\x66\x1d\xd4\xc6\x56\x65\x4d\xa7\x82\xa5\x5a\x5a\xb9\x56\xf7\xd8\x9d\x64\xb1\x34\x27\x8b\xca\xd8\x42\xfa\xc3\x29\x64\xa6\xa4\x3e\x0b\xe3\x4c\x5f\x85\x4f\xc2\xaf\x78\x7d\x7c\x92\xc5\xc1\x6e\x79\xb7\x36\xac\x80\xd9\x6c\x91\xd1\x2e\xb3\xf5\xfc\xf5\x56\xb0\x60\xd1\xae\xb2\x31\xfb\x27\x7d\x91\x66\x8b\xd6\xce\x7b\x76\xcd\xee\x92\xe4\x3d\x29\xfe\xa1\x3e\xa5\x17\x52\x4f\xbc\x86\x5d\x6e\x49\xda\xe6\x56\x8b\x8d\xb7\x98\x28\x33\x96\xe3\x4c\xd3\xc1\xcc\xef\x3b\x14\xe4\x6f\x34\x3f\x1f\x4c\x22\x7f\x54\xf5\x88\x58\xeb\xf0\x04\xef\xd9\x54\xcc\x8c\x9f\x80\x37\xd5\x94\x50\xc2\x9e\x5e\xb4\x74\x16\xc2\x5c\x0e\x53\x8d\xa0\xe5\xb5\x14\x11\xa7\x05\x6a\x35\x01\xad\xb4\xb8\x1b\xd4\x98\x6d\xfd\xd6\xb0\x00\x31\x9e\xcf\x45\x18\xf3\x42\x24\xcf\x25\x81\x5f\x5e\xb9\x71\xf2\xd6\x22\x7d\x12\x3a\x8b\x32\x1e\xd0\xae\x89\x55\xe8\x01\x41\x79\x69\x93\x77\x84\x5b\xa5\x8b\x5c\x77\xb2\x3a\x5d\x5c\xbf\xe9\x06\x64\x3f\x32\x33\x67\xa0\x6b\x62\x6c\xfa\x39\x17\x5c\x36\xf6\x71\x8f\x69\xa6\x3e\x4f\xa8\xcb\x4d\xda\xd3\x16\xfd\x69\x28\xcb\x7f\x17\xe6\xa5\x9d\x5c\xd6\xb3\x2f\x07\x5b\xfe\xe0\x61\xc0\xc3\x80\x87\x01\x0f\x03\x1e\xa6\x37\x1e\xa6\xe5\x5d\xb0\xc2\xc5\x1c\xee\x5a\xfc\x58\xc9\xbd\x96\x26\x82\xe7\xc2\x1f\x41\x93\x4c\xa5\x3c\x22\x74\x34\x51\x49\x1c\x3c\xd7\xbc\xfe\xdc\xa2\x2b\x93\xb7\xe9\x65\x77\x3b\xfe\xfb\x98\x7d\x37\xe7\x99\x81\x2e\xa9\x90\x7a\xb3\x94\x77\xaa\x60\x2a\x4b\x1f\xb8\x74\x5e\x88\xd9\x42\xdc\xcc\x78\xe2\x74\xe5\xfb\x2b\xf3\xe7\xfb\x2b\x36\x8b\x25\x4f\xe2\x7f\xbb\x8b\x64\x2a\x18\x0f\xc9\x38\xaf\x6e\x8c\xe1\x32\x2c\xd5\x30\xd3\xfc\x28\x2f\x5f\x32\xfa\xe9\x98\x7d\x8a\xe9\x70\xac\x74\x5d\x65\xab\x63\x2b\xa9\x98\xc2\xa8\xc7\xa4\xa3\xa8\xe2\x61\x9f\x09\x35\x23\xf8\xe8\xc6\xbe\x16\xf2\x34\x99\x41\xbb\x55\xcc\x68\xe8\x7a\xc3\x3e\xa8\x1f\x2c\xe2\xd9\x94\x47\x35\xbb\xa4\x57\x6a\x44\x36\x53\xd9\x5c\xcf\x49\xa3\xbc\xbe\x2d\x8d\x68\xbd\xb8\x08\xf4\x3a\xc4\x9a\x1a\xd9\xc6\x1a\x4d\x06\x71\x58\xaa\xc2\x84\x15\xc8\x38\xe1\xe7\x58\x5f\xd6\xf6\x26\x75\x68\x60\x5c\x99\x4c\x77\x8f\x78\x2e\xc4\x7b\xd4\xd6\x3f\x36\x66\x77\x41\x20\xd2\x82\xee\xa6\xaa\x66\x37\x32\x63\x18\xb1\x6b\xbb\x00\xeb\x0b\x34\xff\x85\x8d\x7e\xe5\xc1\x63\x94\xa9\x85\x0c\xf5\x53\xe4\x9d\x4a\x0f\x2d\x09\xce\x40\x48\x8b\x8f\xeb\x8d\xb8\x11\x4c\x7d\x4b\xbf\xb0\xd1\x67\x95\x89\x4a\xb3\x2c\xe0\x79\xc0\x43\x3d\x7a\x2b\x1f\xe3\xbc\x4c\xed\xe5\x46\xf5\x5c\x69\x70\xe6\xdb\xd8\x67\x41\xa6\xcb\xcb\xfd\x38\x88\xf3\x8c\x49\xd3\x76\xf3\xb0\x89\x38\x3d\xd6\x2c\x80\x42\xed\x6d\x7e\x57\x69\xd4\xc3\xd9\x36\x8e\x49\xa8\xb6\x13\xd6\x06\x52\xf5\xa5\xf8\xa7\x91\xa4\x43\xec\xe3\x8e\x34\xdd\xf7\x82\x17\x8b\xb6\xfc\xdc\x39\x46\x5f\x99\x2b\xb9\x84\x4b\xa7\x12\x89\x35\xf4\x48\xcc\x0e\xd8\x6c\x04\x92\x5d\x4e\x20\x59\xbb\xeb\x64\x5b\x30\xd9\xe1\xf4\x2e\x38\x23\xc0\x19\x01\xce\x08\x70\x46\x80\x33\x42\xd3\xe1\x0b\x96\xfb\x84\x24\x02\xe2\x13\xc4\x27\x88\x4f\x10\x9f\x20\x3e\x41\x7c\x9e\x17\xf1\x09\x2e\x02\x5c\x04\xb8\x08\x70\x11\xbd\x73\x11\x3b\xf0\xf5\x03\x0d\xf5\x6a\x27\xc2\xd5\x70\xaf\x97\x5a\xdc\x06\xc5\xe2\xac\x7d\x01\x49\xfa\x90\xa4\xef\xac\x93\xf4\x21\x5b\xfd\xc0\x33\x16\xd8\x9f\xfe\x2c\x27\x59\xe5\x1d\x13\x80\x46\x53\x63\x5c\x6e\x25\xfb\xcc\x93\x5d\xd3\x7d\xfb\x05\xaf\x6e\x58\x3a\xdd\x1f\x82\x9d\xc4\xb1\x22\x96\xaa\x3a\xdf\x83\x8d\xa5\x22\xf3\xcb\x57\x2e\x79\x24\x32\x63\x48\x34\xa7\x63\x9e\xab\x20\x26\xcd\xd8\x9b\xec\x38\x59\x5e\x55\xc6\x84\x2c\x34\x54\x75\xa6\x82\x39\x7f\xd4\x52\x2c\x1e\x44\x2e\x1c\xde\xab\x46\x0c\xb9\xc8\x22\xc2\xbb\x64\x9e\x53\x19\xbb\x7d\xf7\xb3\x7e\x36\xe3\x01\xf1\x71\x89\x92\x91\x41\x77\x64\x42\x0b\x94\x2c\x78\x2c\xcd\x91\x44\x26\xaa\xf2\x59\xe2\x28\x2c\x5b\xc8\xa6\xcf\x5e\x81\x89\x54\xc2\x65\x34\x56\x59\x74\x93\x3e\x46\x37\x0b\x19\x07\x2a\x14\x37\x3f\x7d\xc9\x27\xba\x95\xbd\x6d\xde\x56\x38\x5d\x4e\xcf\xa0\xe0\xe0\x09\xa2\xb4\xb6\x08\xed\x5d\x0b\x84\xf6\xc1\x58\xee\x06\xd3\xe3\x77\x5b\x7b\x6c\xbc\x82\x07\xd3\xe5\x33\x84\xc1\x84\x3a\x86\x0d\x83\x5f\xb1\x2e\xd2\x87\x34\x54\xcf\xef\x31\x8b\x48\x0b\xcc\xd5\x90\x3a\x04\x09\x43\x00\xb4\xce\x00\x68\x21\x44\xfb\x82\x42\xb4\x11\x8b\x86\x58\x34\xc4\xa2\x21\x16\x0d\x3a\xe2\xba\x5d\x34\xc8\xc0\x8f\xe3\x68\x5f\x88\x5b\xd9\x16\xb7\x32\x70\x5d\xcc\x5b\xab\x3b\x8f\x56\xc9\x04\x0f\x97\x80\xd7\x36\x0d\x4a\xbf\xd2\x73\x88\x4a\x05\x89\x88\xbf\xc8\xf1\x6c\xaa\x7f\xe2\x41\x31\x66\xec\x93\xfe\xd7\xfd\x7e\xce\x63\x32\xe4\xe5\x2c\x48\x16\x79\x21\xb2\xf2\x7e\x31\x1e\xaa\x2c\x89\x1f\x05\x1b\xf9\x3e\x8e\x34\x8c\x74\xd0\x67\xcc\x26\x09\x97\x52\x18\xfc\x49\xe0\x84\x27\x06\x0f\xdd\xfe\xbc\xcf\x81\x4d\x7d\x3c\x12\x6c\xf0\x42\xf3\xa8\x7b\xea\xc4\xa7\x47\xca\x3e\x19\x89\xe9\xab\x22\xcd\x9d\x74\xac\x6f\xd6\x22\x17\x19\x39\x55\x95\x00\xfa\xb9\x67\x41\xe9\xce\x9c\x2f\x05\x3e\xec\xfb\x0c\xe6\xb8\xfa\x25\x10\x89\xa1\x5b\xe3\x5e\x42\x4a\xa3\x1a\x3c\xf8\xf5\xe3\xf1\xeb\xe4\xa8\xb3\x57\x39\xe1\x6b\x7a\xf7\x6f\x9b\x8f\xe7\xb9\xc8\x22\xd1\xea\xc9\xbc\xc8\x78\x21\xa2\x38\xb8\x6e\xff\x8e\xfe\xf9\xd9\x3e\x49\x17\x41\x1b\x4c\x95\xf2\xac\x88\x29\x8e\xce\x38\x95\xed\x88\xaf\xe8\x6b\xc3\x30\x50\xf7\xe5\x14\xb0\x41\x21\x99\xd4\x1d\xbb\x18\xcc\xd6\x67\x6e\xb6\xbe\x1c\xff\x80\xa5\x70\x14\xb7\xb9\x4c\xc8\x94\x3e\x68\xca\x30\xfc\xd7\x6b\x0e\xa1\x37\x64\xb4\x33\x71\xd2\x3c\xa1\x37\xa5\x92\xd7\xe6\x6d\x7a\x82\xec\xe6\x39\x7b\xfd\x5b\xae\xe4\xc4\x44\xa3\x7f\xd5\xc7\x9d\xfd\xf9\xbb\x3b\x04\xcb\x5f\xbe\x19\x92\xe3\x42\xfb\x75\xf3\x59\x65\x01\x11\x0b\x91\xa2\xc9\x57\xec\xfe\x6a\xa6\x7f\x77\x7f\xc5\xee\x6a\xd2\x24\x67\x77\xc3\x02\x90\x9e\x63\x37\xea\x35\x0f\x68\x02\x28\x9e\x39\x89\x03\x6b\xd7\x24\xb5\x48\xfd\xb0\x73\x6b\xe2\x7d\x53\xa1\xd2\x44\x8c\x99\xf9\x26\xa5\x31\x70\x6b\x8a\x5c\xce\x1b\x27\xc2\x7f\x7e\x1f\xf1\xea\x0f\x41\x3b\x32\x7f\x80\x76\x74\x64\x67\x85\x25\x4f\xed\x61\xeb\x47\x8b\xce\x2d\x64\x69\xc2\x83\x5d\x41\x9c\x7d\xeb\xbc\x61\x1c\x7c\x3b\x81\xdd\x2e\x04\xbb\x0d\x08\x22\xe1\x26\xf7\x7f\x81\x6f\xe7\xd9\x63\x8f\xc5\xd0\x2d\xb3\xaf\x58\x4b\x3f\x49\x0a\x59\x6b\xa8\xaa\xd6\x39\xa7\x67\xd3\x1a\xc8\x30\x7e\x8a\xc3\x05\x4f\xaa\x21\x92\xdc\x27\x32\xa1\xf1\x8e\x2b\x7e\x40\xef\xbd\x07\xd1\x88\x5a\x18\x95\xe9\xac\x6a\xf9\x89\x3c\xd2\x61\xb1\xcc\x0b\xc1\x6b\xf6\xc6\x65\x1c\xf4\x63\xc5\x98\xe5\xa3\xe0\x3e\xab\xec\x2e\x49\x3c\x28\xca\xaf\x06\x70\x9c\xad\x7d\xe1\xb2\x22\x17\x37\xd8\xe7\xfe\xe5\x27\xf4\x82\x4f\x25\x9a\xc3\x33\x0f\x65\x44\x9a\xc8\x33\x4e\x13\xb9\x9d\x14\xda\x96\x22\x72\xff\xfa\xa4\xed\x08\x2f\x24\x86\x44\x62\x48\x24\x86\x44\x62\xc8\x73\x4b\x0c\xb9\xfd\xe4\x6d\x4c\x0a\xd9\xb3\x7b\xc1\xc1\x52\x41\x6e\x1f\xfe\xfa\x34\x90\x43\x96\xc1\x2e\xc9\x1f\xb7\xcb\x60\x7d\xe2\xc7\x9e\x65\x80\x74\x8f\x48\xf7\x88\x74\x8f\x48\xf7\x88\x74\x8f\xbd\xa5\x7b\x6c\x71\xfa\xaf\xa4\x7a\xdc\x18\x55\x78\x41\xde\x85\xed\x46\x73\xc6\xe9\x2a\xb7\x8b\x7b\x53\xaa\xca\xc3\xca\x1d\x09\x2a\x7b\x99\xd1\xd5\xe4\x94\x3d\x4f\xeb\x51\x53\x52\x6e\x17\xcf\x86\x74\x94\x7d\x1f\x9b\x43\x4d\x42\xb9\x5d\x68\x0d\x14\xc6\xde\xf6\x3c\xfb\xd3\x9f\x3b\x12\x61\x1b\xd3\x86\x5c\x30\x3f\xb6\xe4\x25\xf4\x8f\x25\x96\x01\xcc\x18\x98\x31\x06\x66\x0c\xcc\x18\x98\x31\x30\x63\x60\xc6\xc0\x8c\x81\x19\x03\x33\x06\x66\x6c\x98\xac\x10\x98\x31\x30\x63\x60\xc6\xc0\x8c\x81\x19\x03\x33\x06\x66\xec\x14\x99\x31\x24\x1c\x01\x25\x08\x4a\x10\x94\xe0\xa0\x67\x14\x94\x60\x5d\x3c\xa0\x04\xcf\x90\x12\x6c\xa8\x24\xd0\x13\x33\x58\xa5\x03\xa5\xc3\x3d\x6a\xc6\x1e\x63\x19\x76\x48\x0b\xbe\x2d\x75\x1c\xd2\xe3\x2c\x1e\xd6\x6a\x52\xa9\xbc\x8d\x6a\x4a\x7f\xa5\xed\x17\x91\x8a\x20\x14\x41\x28\x9e\x12\xa1\x08\x32\x11\x64\x22\xc8\x44\x90\x89\x20\x13\x41\x26\x82\x4c\x04\x99\x08\x32\x11\x64\x22\xc8\x44\x90\x89\x20\x13\x41\x26\x82\x4c\x04\x99\x78\x22\x64\x22\x0a\x31\x80\x17\x05\x2f\x3a\x54\x16\x0d\xbc\x28\x78\x51\xf0\xa2\xe0\x45\x97\x84\x76\x28\x5e\xf4\xaf\x42\x48\xda\x15\x37\x7b\x51\x9c\x47\x49\xf4\xbb\x34\xc9\x11\x95\x82\x9d\xa9\x6c\xee\x17\x35\x67\x86\x80\x59\x4f\x56\x46\xa2\xf8\xe4\xc7\x7e\x37\xf9\xf2\x5f\xcb\xcf\x23\xb5\xf1\x8e\xbc\xa1\x17\xe2\xa9\xb3\x86\x7e\x59\x54\xde\x79\x55\xfd\xee\xda\x2d\xe4\xfc\x0a\x4e\x7a\x2b\xd5\x14\x7d\x73\x34\xb6\xdd\x47\x96\xf6\xbf\x9b\x7c\xf9\xbd\xe9\x55\x6c\xa9\xdd\xb7\x94\x13\x24\x05\x64\x9f\xcd\xce\x6a\xe0\xe4\x77\xdb\x61\xb1\x8c\x32\x91\xd7\x67\xaf\x7b\xc7\x1c\x63\x19\xce\xac\x6d\xc9\x99\x1e\x9c\x4f\xce\x17\xd3\x87\x0d\x9b\x43\xbf\xbf\xb2\x3b\xec\x6b\xc8\x43\xbd\x2c\xfc\xc1\xec\xc8\x71\xb9\xe0\x7c\x46\x7c\x3b\x6b\x67\xbf\x0d\xb7\xbb\xc6\x74\x16\x66\x5f\xde\xb3\x8d\x6e\x31\xab\xdb\x0b\x8e\x31\x70\x8c\x81\x63\x0c\x1c\x63\xe0\x18\x03\xc7\x18\x38\xc6\xc0\x31\x06\x8e\x31\xc7\x96\x01\x1c\x63\xe0\x18\x03\xc7\x18\x38\xc6\xc0\x31\x06\x8e\x31\xa7\xe7\x18\x03\xa7\x0a\x38\x55\xc0\xa9\xe2\x34\x66\x14\x4e\x15\x75\xf1\xc0\xa9\xe2\x24\x9c\x2a\x1c\x5f\xb5\x26\xc6\xbc\x91\xc6\x32\x70\xa7\x5b\x26\xcb\xb4\xc9\x02\x95\x68\xed\xca\xae\xd2\xed\x04\x96\x79\x6d\x85\xc2\xfa\xe0\x9b\x29\x23\xbc\x1b\x1a\xeb\xb7\xbc\x7c\x2f\x8c\xeb\x47\x1a\xf0\x37\x92\x5b\xde\x49\x4d\x79\x58\x74\x61\xd1\x85\x45\x17\x16\xdd\x73\xb3\xe8\x6e\xb8\x6f\xb7\x59\x75\x37\x63\xb7\xcd\xf7\xee\x4e\x67\xef\xbf\xb4\xe0\xac\x2e\xfb\x96\x4a\x2f\x04\x7a\x45\x99\x75\x50\x1b\x5b\x95\x3d\x9d\x0a\x96\x6a\x69\xe5\x5a\xed\x63\x77\x92\xc5\xd2\x9c\x2c\x2a\x63\x0b\xe9\x0f\xa7\x90\x85\xd9\xf3\xef\x0b\xc9\xc2\x38\xd3\x97\xe1\x93\xf0\x2b\x5e\x1f\x9f\x64\x79\xb0\x5b\xde\xad\x0d\x2b\x60\x36\x5b\x64\xb4\xcb\xd2\x4c\x05\x22\x27\x13\x81\x05\x8d\x76\x95\x8d\xd9\x3f\xe9\x8b\x34\x5b\xb4\x76\xde\xb3\x6b\x76\x97\x24\xef\xc9\x00\x10\xea\x53\x7a\x21\xf5\xc4\x6b\xf8\xe5\x96\xa4\x6d\x4e\x84\x7b\x4c\x94\x19\xcb\x71\xa6\xe9\x60\x66\xf8\x76\xa2\x58\x6f\x8a\x3f\x98\x44\xfe\xa8\xea\x13\xb1\xd6\xe5\x09\xe6\xb3\xa9\x98\x19\x7f\x01\x6f\xb2\x29\xa1\x84\x3d\xbd\x68\xe9\x2c\x84\xb9\x1c\xa6\x1a\x49\xcb\x6b\x29\x22\x4e\x0b\xd4\x6a\x04\x5a\x79\x71\x37\xa8\x31\xdf\xfa\xad\x61\x81\x62\x3c\x9f\x8b\x30\xe6\x85\x48\x9e\x4b\x22\xbf\xbc\x72\xe3\xe4\xad\x45\xfc\x24\x74\x16\x65\x3c\xa0\x5d\x13\xab\xd0\x03\x82\xf2\xd2\x26\x2f\x09\xb7\x4a\x17\xb9\xee\x64\x75\xba\xb8\x7e\xd3\x0d\xc8\x7e\x64\x66\xce\x40\xd7\xc4\xd8\xf4\x73\x2e\xb8\x6c\xec\xe3\x1e\xd3\x4c\x7d\x9e\x50\x97\x9b\xb4\xa8\x2d\x7a\xd4\x50\x96\xff\x2e\x0c\x4c\x3b\xb9\xac\x67\x61\x0e\xb6\xfc\xc1\xc7\x80\x8f\x01\x1f\x03\x3e\x06\x7c\x4c\x6f\x7c\x4c\xcb\xbb\x60\x85\x93\x39\xdc\xb5\xf8\xb1\x92\xeb\x30\x4d\x04\xcf\x85\x3f\x82\x26\x99\x4a\x79\x44\xe8\x68\xa2\x92\x38\x78\xae\x79\xff\xb9\x45\x57\x26\x4b\xd4\xcb\xee\x76\xfc\xf7\x31\xfb\x6e\xce\x33\x03\x5d\x52\x21\xf5\x66\x29\xef\x54\xc1\x54\x96\x3e\x70\xe9\xbc\x11\xb3\x85\xb8\x99\xf1\xc4\xe9\xca\xf7\x57\xe6\xcf\xf7\x57\x6c\x16\x4b\x9e\xc4\xff\x76\x17\xc9\x54\x30\x1e\x92\x91\x5e\xdd\x18\x03\x66\x58\xaa\x61\xa6\xf9\x51\x5e\xbe\x64\xf4\xd3\x31\xfb\x14\xd3\xe1\x58\xe9\xba\xca\x56\xc7\x56\x52\x32\x85\x51\x8f\x49\x47\x51\xc5\xc3\x3e\x13\x6a\x46\xf0\xd1\x8d\x7d\x2d\xe4\x69\x32\x87\x76\xab\x98\xd1\xd0\xf5\x86\x7d\x50\x3f\x58\xc4\xb3\x29\x8f\x6a\xf6\x49\xaf\xd4\x88\x6c\xa6\xb2\xb9\x9e\x93\x46\x79\x7d\x5b\x1a\xd1\x7a\x71\x11\xe8\x75\x88\x35\x35\xb2\x8d\x35\x9a\x0c\xe2\xb0\x54\x85\x09\x2b\x90\x71\xc2\xcf\x71\x4e\x01\x66\xf4\x57\x87\x06\xc6\x95\xc9\x74\xf7\x88\xe7\x44\xbc\x67\x6d\xfd\x63\x63\x76\x17\x04\x22\x2d\xe8\x6e\xaa\x6a\x76\x23\x33\x86\x11\xbb\xb6\x0b\xb0\xbe\x40\xf3\x5f\xd8\xe8\x57\x1e\x3c\x46\x99\x5a\xc8\x50\x3f\x45\x5e\xaa\xf4\xd0\x92\xe0\x0c\x84\xb4\xf8\xb8\xde\x88\x1b\xc1\xd4\xb7\xf4\x0b\x1b\x7d\x56\x99\xa8\x34\xcb\x02\x9e\x07\x3c\xd4\xa3\xb7\xf2\x31\x4e\xcc\xd4\x5e\x6e\x54\xcf\x95\x06\x67\xbe\x8d\x7d\x16\x64\xba\xbc\xdc\x8f\x83\x38\xcf\x98\x3c\x6d\x37\x0f\x9b\x08\xd4\x63\xcd\x02\xa8\xd4\xde\xe6\x77\x95\x4e\x3d\x9c\x6d\xe3\x98\xc4\x6a\x3b\x61\x6d\x20\x57\x5f\x8a\x7f\x1a\xc9\x3a\x04\x46\xee\x48\xd3\x7d\x2f\x78\xb1\x68\xcb\xcf\x9d\x6b\x20\x96\xb9\x96\x4b\xc8\x74\x22\x41\x59\xa7\x11\xa5\xd9\x09\xb1\x8d\xd8\xb2\xcb\x89\x2d\x6b\x77\xb3\x6c\x8b\x2f\x3b\x9c\x0a\x06\xbf\x04\xf8\x25\xc0\x2f\x01\x7e\x09\xf0\x4b\x68\x3a\x7c\x41\x78\x9f\x90\x44\xc0\x81\x82\x03\x05\x07\x0a\x0e\x14\x1c\x28\x38\xd0\xf3\xe2\x40\x41\x4b\x80\x96\x00\x2d\x01\x5a\xa2\x77\x5a\x62\x07\xea\x7e\xa0\xd1\x5f\xed\x44\xb8\x1a\x01\xf6\x52\x8b\xdb\xa0\x08\x9d\xb5\x2f\x20\x81\x1f\x12\xf8\x5d\x46\x02\x3f\x94\x88\x18\x78\x36\x03\xfb\xd3\x9f\xe5\x24\xab\xbc\x63\x46\xd0\xa8\x6c\x8c\xcb\x16\xec\x9f\x79\xb6\x1f\xfe\x6f\xbf\xc0\xd6\x0d\x4b\xa8\xaf\x53\xb1\x93\x48\x57\x44\x5b\x55\x67\x7d\xb0\xd1\x56\x64\x95\xf9\xca\x25\x8f\x44\x66\xec\x8b\xe6\xac\xcc\x73\x15\xc4\xa4\x30\x7b\x4b\x1e\x27\x83\xac\xca\x98\x90\x85\x46\xb0\xce\x82\x30\xe7\x8f\x5a\x8a\xc5\x83\xc8\x85\x83\x81\xd5\x98\x22\x17\x7b\x44\x30\x98\xac\x76\x2a\x63\xb7\xef\x7e\xd6\xcf\x66\x3c\x20\x9a\x2e\x51\x32\x32\xa0\x8f\x2c\x6b\x81\x92\x05\x8f\xa5\x39\xa0\xc8\x72\x55\x3e\x4b\xd4\x85\x25\x11\xd9\xf4\xd9\xeb\x35\x91\x4a\xb8\x8c\xc6\x2a\x8b\x6e\xd2\xc7\xe8\x66\x21\xe3\x40\x85\xe2\xe6\xa7\x2f\xf9\x44\xb7\xb2\xb7\x29\xdc\x0a\xa7\xcb\xe9\x19\x14\x4a\x3c\x59\xf0\xd6\x16\xb8\xbd\x6b\x01\xdc\x3e\x18\xb3\xde\xc0\xfa\xfd\x6e\x6b\xbf\x8d\x0f\xf1\xc0\x3a\x7e\xa6\x48\x99\x90\xc9\xa0\x91\xf2\x2b\xd6\x45\xf6\x11\xf3\xdb\xff\x1c\x28\x09\x49\x2b\x58\xb6\x26\xf3\x08\xf2\x8d\x00\x85\x9d\x05\x0a\x43\x84\xf7\x05\x45\x78\x23\x94\x0d\xa1\x6c\x08\x65\x43\x28\x1b\x14\xc8\x75\xbb\x68\x90\x71\x23\xc7\x51\xc7\x10\xf6\x62\x9f\xdb\x18\xf6\x32\x6c\xb5\xcc\xdb\xb6\x3b\x0f\x76\xc9\x04\x0f\x97\xb0\xd7\x76\x65\x4a\xbf\x74\x90\x08\x97\x0a\x28\x11\x7f\x91\xdf\xda\x54\xff\xc4\x83\x62\xcc\xd8\x27\xfd\xaf\xfb\xfd\x9c\xc7\x64\xf0\xcb\x59\x90\x2c\xf2\x42\x64\xe5\x55\x63\x1c\x5c\x59\x12\x3f\x0a\x36\xf2\xbd\x1c\x69\x44\xe9\x50\xd0\x98\x4d\x12\x2e\xa5\x30\x50\x94\x70\x0a\x4f\x0c\x34\xba\xfd\x79\x9f\xb3\x9b\xfa\x78\x24\x04\xe1\x85\xe6\x01\xf8\xd4\x89\x4f\x8f\x94\x7d\x32\x12\xd3\xb7\x46\x9a\x3b\xe9\x58\xd7\xae\x45\x2e\x32\xf2\xc9\x2a\xb1\xf4\x73\xcf\x82\xd2\x9d\x39\x5f\x06\x7d\xd8\x57\x1b\x4c\x75\xeb\x6e\x85\x48\x0c\xdc\x52\xf7\x12\x4e\x9b\x08\x1a\x6b\x2d\x69\xec\x41\x1b\xb2\x7a\x28\x3c\x35\x08\xfa\x93\x23\xe8\xc9\xe5\x67\xaf\x22\xc6\xd7\xf4\xee\xdf\x36\x9f\xd4\x73\x91\x45\xa2\xd5\x93\x79\x91\xf1\x42\x44\x71\x70\xdd\xfe\x1d\xfd\xf3\xb3\x7d\x92\xee\x84\x36\x30\x2b\xe5\x59\x11\x53\x44\x9e\x71\x4f\xdb\x19\x72\xd1\xf7\x86\x64\xbe\xee\xcb\xab\x60\x83\xba\x32\xa9\xbb\x8a\x31\x18\xb5\xcf\xdc\xa8\x7d\x39\xae\x05\x4b\x01\x2e\x6e\x73\x99\x20\x2c\x7d\xe0\x94\x81\xfd\xaf\xd7\x1c\x46\x6f\xc8\xa4\x67\x22\xaf\x79\x42\x6f\x4a\x25\xaf\xcd\xdb\xf4\x04\x59\xd5\x73\xf6\xfa\xb7\x5c\xc9\x89\x89\x6f\xff\xaa\x8f\x3d\xfb\xf3\x77\x77\x18\x96\xbf\x7c\x33\x24\x9f\x87\xf6\xeb\xe6\xb3\xca\x02\xa2\x1d\x22\x45\x93\xaf\xd8\xfd\xd5\x4c\xff\xee\xfe\x8a\xdd\xd5\xa4\x49\xee\xf3\x86\x23\x20\xd5\xc7\x6e\xd4\x6b\x1e\xd0\x04\x50\x84\x74\x12\x07\xd6\xea\x49\x9a\x92\xfa\x61\xe7\xd6\x44\x10\xa7\x42\xa5\x89\x18\x33\xf3\x4d\x4a\x8c\xe0\xd6\x14\x39\xb1\x37\x4e\x84\xff\xfc\x3e\xe2\xd5\x1f\x82\xc2\x64\xfe\x00\x85\x69\x28\x0a\x53\xba\xe4\x05\x3e\x68\x95\x69\xd1\xb9\x15\x2d\x4d\x78\xb0\x3b\xaa\xb3\xef\x5d\x02\xae\x83\xb7\x28\x20\xdd\x45\x41\xba\x01\x21\x27\x5c\xf0\xfe\x2f\xf0\x16\xbd\x38\x60\xb2\x18\xb8\x25\xf7\x15\xeb\xd0\xe7\xf2\x26\x37\x9c\x6e\xc5\xf5\xb2\x1f\xce\xd0\x7c\xc7\xdd\x65\xdd\xb3\x87\x96\x9b\xc6\x81\x85\x8d\x0f\x0a\x07\x14\x0e\x28\x1c\x50\x38\x8d\x4f\x1e\x8f\xc2\xd9\xff\x06\x6c\x49\xe6\x34\x5c\x81\x27\xa9\xfa\x83\xd2\x81\xfe\x7f\x79\xfa\x3f\x28\x9d\x2e\xd7\x0d\x28\x1d\x58\x7c\xa0\x40\x81\xd2\xa9\x0b\xed\x00\x94\xce\x4b\xec\x1c\x2d\xc9\x9d\x73\xc1\x79\xa0\x78\x00\xf1\x2e\x0a\xe2\x0d\x08\x49\xe1\xc2\xf7\x7f\x01\xc5\x73\x71\x40\xe5\x3c\x28\x1e\x4a\x85\x58\x32\x3a\xbd\x72\x38\x36\x63\xb6\x0c\xe3\xa7\x38\x5c\xf0\xa4\x9a\x7d\x93\xfb\x1c\xf9\x76\xc4\xe3\x4a\xc0\xf8\x7b\x1f\x6a\x3e\xa2\x36\x46\x65\xad\x94\x5a\xf1\x0b\x0f\x86\x58\x2c\xf3\x42\xf0\x9a\xfd\x72\x19\x2a\xfd\x68\x34\x88\x55\x52\x2c\x7e\x56\xd9\x5d\x92\x78\xe4\x34\x08\x5e\x68\xed\x0b\x97\x95\x1c\x73\x83\x75\x8f\x72\xbb\x7e\x7a\x12\xf2\xd2\x53\x64\xd2\x3c\x9e\x77\x9e\x4c\x14\x23\x3b\xe3\x62\x64\xdb\xd9\xa6\x6d\x85\xc8\x36\x9a\xb3\x3a\x60\xd2\x50\x7e\x0c\xe5\xc7\x50\x7e\x0c\xe5\xc7\xce\xad\xfc\xd8\xf6\x93\xb7\xb1\xf4\x58\xcf\x7e\x0b\x07\x2b\x38\xb6\x7d\xf8\xeb\x8b\x8d\x0d\x59\x06\xbb\x94\x18\xdb\x2e\x83\xf5\xe5\xc5\x7a\x96\x01\x8a\x8a\xa1\xa8\x18\x8a\x8a\xa1\xa8\x18\x8a\x8a\xf5\x56\x54\xac\xc5\xe9\xbf\x52\x50\x6c\x63\x1e\xca\x0b\x72\x5b\x6c\x37\x9a\x33\x2e\x8a\xb6\x5d\xdc\x9b\x0a\xa2\x1d\x56\xee\x28\x83\xd6\xcb\x8c\xae\x96\x40\xeb\x79\x5a\x8f\x5a\xf8\x6c\xbb\x78\x36\x14\x3d\xeb\xfb\xd8\x1c\x6a\xa9\xb3\xed\x42\x6b\x60\x31\xf6\xb6\xe7\xd9\x9f\xfe\xdc\x85\x13\xdb\x16\xfc\x74\xf1\x54\xd9\x8a\x4f\xd1\x3f\x96\xc8\x06\x90\x64\x20\xc9\x18\x48\x32\x90\x64\x20\xc9\x40\x92\x81\x24\x03\x49\x06\x92\x0c\x24\x19\x48\xb2\xc1\x12\x44\x20\xc9\x40\x92\x81\x24\x03\x49\x06\x92\x0c\x24\x19\x48\xb2\x53\x24\xc9\x90\xd4\x04\xec\x20\xd8\x41\xb0\x83\x83\x9e\x51\xb0\x83\x75\xf1\x80\x1d\x3c\x43\x76\xb0\xa1\x1c\x75\x4f\x24\x61\x95\x19\x94\x0e\xf7\xa8\x19\x7b\x8c\x65\xd8\x29\x43\xf8\xb6\xd4\x72\x48\x93\xb3\x88\x58\x2b\x4a\xa5\xfa\x36\xaa\xa9\xfd\x95\xb6\x3b\xe0\x17\xc1\x2d\x82\x5b\x3c\x35\x6e\x11\xbc\x22\x78\x45\xf0\x8a\xe0\x15\xc1\x2b\x82\x57\x04\xaf\x08\x5e\x11\xbc\x22\x78\x45\xf0\x8a\xe0\x15\xc1\x2b\x82\x57\x04\xaf\x08\x5e\xf1\x34\x78\x45\x54\x7e\x00\x49\x0a\x92\x74\xb8\x94\x1a\x48\x52\x90\xa4\x20\x49\x41\x92\x2e\x09\xed\x40\x24\xe9\x2c\x51\x3f\x34\x58\xcc\x54\x32\xf6\x66\x66\x62\x8a\x62\x75\xb3\x17\x03\x7a\x94\x64\xc1\x4b\xd3\x1e\x89\x82\xc5\x72\xa6\xb2\xb9\x5f\xe6\x9c\x19\x4e\x66\x3d\x93\x19\x89\xe2\x73\x29\x8d\x3b\x27\x8c\xbb\xc9\x97\xff\x5a\x7e\x13\x89\x92\x77\x24\x16\xbd\x10\x4f\x9c\x56\x9c\x35\x2c\x90\xca\xdb\xaf\xaa\x3d\xd8\x61\xa3\x39\xff\x84\x93\xde\x70\x35\x13\x81\x39\x52\x77\xdf\x6d\xd6\x7f\xe0\x6e\xf2\xe5\xf7\xa6\x46\xb0\xf1\x76\xdf\x78\x4e\x90\x14\xe2\x7d\x86\xfb\xaf\x81\xe0\x7f\xe9\x3e\xd4\x0f\x99\xe9\xa8\xa5\x0a\x30\x26\x9a\x6e\x1d\x81\x4c\x9b\x2c\x50\x49\x22\x02\x77\x59\xe9\x9d\xf1\xdd\x2c\x87\xf5\x3b\xc8\xbc\xb9\x61\x13\x7d\xf0\x6d\x36\xb7\xd7\x6f\xd5\x90\x5e\x96\xf3\x47\x1a\xf3\x37\x92\x5e\x37\x45\x42\xc0\x45\x83\x8b\x06\x17\x0d\x2e\xfa\xdc\xb8\xe8\x76\xe5\x65\x1a\xf9\xe8\x83\x55\xfe\x41\x81\xa6\xd6\x13\x75\xcc\x02\x4d\x07\x73\x20\xd8\xa1\x24\x52\x23\x81\x7e\x30\x89\xfc\x51\xb5\xa1\xc5\x92\xe5\xc6\xb4\xc5\xa6\x62\x66\x3c\x1d\x3d\xd9\x54\x42\x09\x7b\x7a\xd1\xd2\xa9\x94\xa4\x92\x4a\x5e\x4b\x11\x71\x5a\xa0\xd6\x0a\x56\x2d\x5d\x65\x88\x67\xbf\x35\x2c\x5c\x8c\xe7\x73\x11\xc6\xbc\x10\xc9\x73\xe9\x82\x58\x5e\xb9\x71\xf2\xd6\x5a\xb9\x48\xe8\x2c\xca\x78\x40\xbb\x26\x56\xa1\x07\x04\xe5\xa5\x4d\xfe\x9d\x6e\x95\x2e\x72\xdd\xc9\xea\x74\x71\xfd\xa6\x1b\x90\xfd\xc8\xcc\x9c\x81\xae\x89\xb1\xe9\xa7\x29\xa3\xd9\xd0\xc7\x3d\xa6\x99\xfa\x3c\xa1\x2e\x37\x59\x0e\xb7\xd8\x0e\x87\xb2\xfc\x77\xf1\x1d\x69\x27\x97\xf5\xfe\x23\x07\x5b\xfe\xf0\x24\x81\x27\x09\x3c\x49\xe0\x49\x02\x4f\x92\xde\x3c\x49\x5a\xde\x05\x2b\xde\x24\x87\xbb\x16\x3f\x56\xa2\xd2\xd2\x44\xf0\x5c\xf8\x23\x68\x92\xa9\x94\x47\x84\x8e\x26\x2a\x89\x83\xe7\x5a\xdc\x82\x5b\x74\x65\x58\x9b\x5e\x76\xb7\xe3\xbf\x8f\xd9\x77\x73\x9e\x19\xe8\x92\x0a\xa9\x37\x4b\x79\xa7\x0a\xa6\xb2\xf4\x81\x4b\x17\x47\x91\x2d\xc4\xcd\x8c\x27\x4e\x57\xbe\xbf\x32\x7f\xbe\xbf\x62\xb3\x58\xf2\x24\xfe\xb7\xbb\x48\xa6\x82\xf1\x90\x88\x69\x75\x63\x48\xbb\xb0\x54\xc3\x4c\xf3\xa3\xbc\x7c\xc9\xe8\xa7\x63\xf6\x29\xa6\xc3\xb1\xd2\x75\x95\xad\x8e\xad\x74\x43\x28\x8c\x7a\x4c\x3a\x8a\x2a\x1e\xf6\x99\x50\x33\x82\x8f\x6e\xec\x6b\x21\xcf\x5e\x45\xbe\x77\x52\xcc\x68\xe8\x7a\xc3\x3e\xa8\x1f\x2c\xe2\xd9\x94\x47\x35\x2b\xa5\x57\x6a\x44\x36\x53\xd9\x5c\xcf\x49\xa3\xbc\xbe\x2d\x8d\x68\xbd\xb8\x08\xf4\x3a\xc4\x9a\x1a\xd9\xc6\x1a\x4d\x06\x71\x58\xaa\xc2\x84\x15\x4c\x2d\x76\x37\xc7\x39\xb1\x7d\xf4\x57\x87\x06\xc6\x95\xc9\x74\xf7\x88\xf7\x03\xf0\x31\x41\xf5\x8f\x8d\xd9\x5d\x10\x88\xd4\x14\x7b\xad\x6a\x76\x23\x33\x86\x11\xbb\xb6\x0b\xb0\xbe\x40\xf3\x5f\xd8\xe8\x57\x1e\x3c\x46\x99\x5a\xc8\x50\x3f\x45\xf1\x35\xf4\xd0\x92\xe0\x0c\x84\xb4\xf8\xb8\xde\x88\x1b\xc1\xd4\xb7\xf4\x0b\x1b\x7d\x56\x99\xa8\x34\xcb\x02\x9e\x07\x3c\xd4\xa3\xb7\xf2\x31\xe1\x57\xd4\x5e\x6e\x54\xcf\x95\x06\x67\xbe\x8d\x7d\x16\x64\xba\xbc\xdc\x8f\x83\x38\xcf\xd8\x61\xa8\xdd\x3c\x6c\x72\x1a\x3a\xd6\x2c\xc0\x7d\xa8\xb7\xf9\x5d\x75\x21\x3a\x9c\x6d\xe3\x98\xce\x44\xed\x84\xb5\xc1\xa1\xe8\xa5\xf8\xa7\x91\xb2\x03\xeb\xbc\x23\x4d\xf7\xbd\xe0\xc5\xe2\xe4\xab\x4c\xb7\x24\x9b\x2b\xad\xac\x89\x26\x37\x17\x74\x09\x9e\xba\x08\x2c\xdf\xc4\x63\x37\x87\x9a\x37\x92\xc0\x3b\x47\x9b\x77\x9e\x09\xc3\xd8\xd0\x32\xab\x77\x3b\xb0\xef\x92\x60\xb4\x62\xc2\x75\x13\x1b\x78\xf0\x97\xb1\xdf\x08\x9d\xbf\x9c\xd0\xf9\x76\xd7\xcf\xb6\xf0\xf9\xc3\xe9\x69\x70\x5e\x80\xf3\x02\x9c\x17\xe0\xbc\x00\xe7\x85\xa6\xc3\x17\xac\xf8\x09\x49\x04\x44\x29\x88\x52\x10\xa5\x20\x4a\x41\x94\x82\x28\x3d\x2f\xa2\x14\xdc\x05\xb8\x0b\x70\x17\xe0\x2e\x7a\xe7\x2e\x76\xe0\xf7\x07\x1a\x16\xdd\x4e\x84\xab\xa1\xd1\x2f\xb5\xb8\x0d\x8a\xf5\x59\xfb\xc2\x65\xa5\x29\x1e\x57\x19\x0e\x4b\x4c\x8c\x4b\x53\xfe\x05\x45\x33\x6e\x27\x98\xba\xaa\x82\x7a\x2c\x52\x69\x8f\x14\xc6\xa7\x92\x10\xe7\xd5\xd2\x24\x5e\xa5\x2a\xef\x98\x41\x33\xca\x0d\xe3\xed\xc8\x32\xf3\x74\x6f\x74\xd9\x7e\xc1\xa2\x1b\x12\x2b\xf5\x79\x88\x74\x12\x41\x8a\x28\xa6\xea\xcc\x0f\x36\x8a\x89\x0c\x19\x5f\xb9\xe4\x91\xc8\x8c\x49\xce\x64\x11\xcb\x73\x15\xc4\xa4\x63\x7a\xe3\x17\x27\x1b\xa6\xca\x98\x90\x85\x06\x7d\x4e\xe9\x9e\xf3\x47\x2d\xc5\xe2\x41\xe4\xc2\x21\xa7\x6a\xac\x8e\x8b\xe9\x21\xe4\x48\x86\x2e\x95\xb1\xdb\x77\x3f\xeb\x67\x33\x1e\x10\xb3\x95\x28\x19\x19\x9c\x44\xc6\x28\xbd\x36\x79\x2c\xcd\x49\x45\xc6\x9e\xf2\x59\xb2\xf6\x5b\xde\x8d\x4d\x9f\xbd\x2a\x10\xa9\x84\xcb\x68\xac\xb2\xe8\x26\x7d\x8c\x6e\x16\x32\x0e\x54\x28\x6e\x7e\xfa\x92\x4f\x74\x2b\x7b\x5b\x8f\xad\x70\xba\x9c\x9e\x41\x01\xab\x93\xc6\x3b\x6d\xb1\xce\xbb\x16\x58\xe7\x83\xb1\x86\x0d\xb0\xef\xef\xb6\xf6\xdd\xf8\xe8\x0e\xb0\xf3\x67\x0f\x32\x09\xb8\x9c\x1e\xc8\x7c\xc5\x5e\x9c\x03\xa4\xa1\x20\x50\x8f\xa9\x40\x5a\xe2\xb8\xad\xe9\x3f\x90\xf4\x83\xad\x93\x34\x20\x5b\x75\x92\x07\x0b\xd9\x10\x66\x7d\x41\x61\xd6\x88\x27\x43\x3c\x19\xe2\xc9\x10\x4f\x06\x6d\x73\xdd\x2e\x1a\x64\xf0\xc6\x71\x74\x36\xc4\x9e\xac\xb4\xb2\x31\xf6\xe4\x04\xf5\x36\x6f\x30\xef\x3c\xe2\x24\x13\x3c\x5c\x82\x66\xad\x34\x2e\xfd\xde\xa1\xc2\x4c\x2a\xc8\x45\xfc\x45\xce\x63\x53\xfd\x13\x0f\x8a\x31\x63\x9f\xf4\xbf\xee\xf7\x73\x1e\x93\x09\x31\x67\x41\xb2\xc8\x0b\x91\x95\xf7\x91\xf1\x32\x65\x49\xfc\x28\xd8\xc8\x97\x64\x1d\x69\xd8\xe9\xa0\xd2\x98\x4d\x12\x2e\xa5\x30\x78\x95\xc0\x0c\x4f\x0c\x7e\xba\xfd\x79\x9f\x03\x9e\xfa\x78\x24\x98\xe1\x85\xe6\x51\xfa\xd4\x89\x4f\x8f\x94\x7d\x32\x12\xd3\x57\x4b\x9a\x3b\xe9\x58\xff\xaa\x45\x2e\x32\x72\x8c\x2a\x01\xf7\x73\xcf\x82\xd2\x9d\x39\x5f\x1a\x7b\xd8\xf7\x1f\x8c\x7e\xed\xae\x8f\x48\x9c\xa2\xcd\xef\x25\xc4\x72\xb5\x5e\xce\xba\x4e\x9c\x52\xc9\x9c\xd3\x25\xca\xc9\x49\x65\xaf\x14\xe8\xd7\xf4\xee\xdf\x36\x1f\x6b\x73\x91\x45\xa2\xd5\x93\x79\x91\xf1\x42\x44\x71\x70\xdd\xfe\x1d\xfd\xf3\xb3\x7d\x92\x0e\xd0\x36\xc8\x24\xe5\x59\x11\x53\x0c\x99\x71\xa8\xda\x07\xa5\xd0\x27\x07\x66\x16\xee\x8b\xde\xdf\xa0\x06\x4c\xea\x2e\x4e\x0c\xc6\xe2\x33\x37\x16\x5f\x0e\xbf\xbf\x14\x98\xe1\x36\x97\x09\x1e\xd2\xc7\x4e\x19\x90\xfe\x7a\xcd\x91\xf4\x86\x4c\x65\x26\x62\x98\x27\xf4\xa6\x54\xf2\xda\xbc\x4d\x4f\x90\xb5\x3a\x67\xaf\x7f\xcb\x95\x9c\x98\xb8\xec\xaf\xfa\xf0\xb3\x3f\x7f\x77\x47\x62\xf9\xcb\x37\x43\x72\x3c\x68\xbf\x6e\x3e\xab\x2c\x20\x73\x7e\xa4\x68\xf2\x15\xbb\xbf\x9a\xe9\xdf\xdd\x5f\xb1\xbb\x9a\x34\xc9\xed\xdb\xd8\xde\x49\x5b\xb0\x1b\xf5\x9a\x07\x34\x01\x14\xd9\x9b\xc4\x81\xb5\x26\x92\x72\xa1\x7e\xd8\xb9\x35\x91\xaf\xa9\x50\x69\x22\xc6\xcc\x7c\x93\x02\xfa\xdd\x9a\x22\xe7\xeb\xc6\x89\xf0\x9f\xdf\x47\xbc\xfa\x43\xd0\x31\xcc\x1f\xa0\x63\x54\x87\x34\x1c\x1d\x23\x5d\xf2\x65\x3e\x3d\x2d\x63\xd1\xb9\x85\x2a\x4d\x78\xb0\x17\xfc\xfb\xff\xd9\x7b\xb7\xde\xb6\x91\x6c\x61\xfb\xde\xbf\xa2\xe0\xb9\x70\x82\x89\x65\x38\x37\xbb\xd1\x8d\xef\xc2\x93\x4e\x36\x32\xbb\x0f\x46\x67\x30\x73\x93\xc6\x46\x99\x2a\x2b\x44\x68\x52\x20\xa5\x64\xbc\x5f\xcc\x7f\xff\xc0\x2a\x92\x22\x29\x9e\x44\x93\xe2\xe9\xc9\x4d\x04\x4b\x3c\xad\x2a\x56\xad\xb5\x9e\x75\x88\x0e\x5d\x88\x02\x48\x7c\x27\xfa\xdf\xe2\xf4\xbf\x11\xa9\x59\x68\x03\xc9\x37\xc4\x77\xd6\xde\xfb\xfc\x35\x99\xfd\x14\xbd\xa5\x17\xa2\xab\x08\xc9\x9b\xc0\xc0\xd7\x36\x6d\x0c\x4f\xa2\x77\xe6\x3a\xf1\x7e\xd7\x17\xc7\x8b\x50\x32\x4b\x1b\xcb\x03\x30\x05\x98\x02\x4c\x99\x36\x4c\x79\xd1\xa6\xd1\x1c\xab\x14\xec\x1a\x93\xb4\xad\x81\x2b\x18\xd7\xcb\x33\xae\x81\x2b\x5d\xce\x1b\xe0\x0a\xee\x14\x6c\x8e\x41\x5d\x12\xc0\x95\x12\xb8\xf2\x42\x1f\x42\x73\xcc\x32\x17\x85\x10\xd8\x82\x3e\xb8\x38\x7d\x70\x44\x6a\x17\xda\x41\xf2\x0d\xb0\xa5\xf6\xde\xe7\xaf\xd9\x2c\x0a\xb6\x6c\x7d\xdb\xf3\xed\xdd\xb3\xa3\xbe\x29\x27\xd3\x43\x22\x38\x53\x5d\x8a\x54\xb2\xae\xf7\x28\xee\xa3\xfb\xf9\x25\xbc\x9f\x77\xe9\xfb\xa9\xd0\x9a\x6a\x6b\x56\xbc\x4b\xae\xd1\xec\xfc\x54\xb3\xa0\x0b\x0c\x5d\x60\xe8\x02\x43\x17\x18\xba\xc0\x0c\x62\x08\x61\xaf\x36\x1e\xa8\x21\xed\x55\x9a\xf5\x50\x5b\x69\xc1\xb5\x95\xe8\xcc\x44\x67\x26\x3a\x33\xd1\x99\x89\xce\x4c\x74\x66\xa2\x33\x13\x25\x07\x29\x39\x48\xc9\x41\x4a\x0e\xe6\x67\xe4\x59\x1b\x90\xd1\x06\x6e\x0c\xa3\x40\x1b\x38\xda\xc0\xcd\xad\x0d\x5c\x21\xd2\x23\x4c\x80\x32\xa2\x2f\x2f\x23\x7a\x50\x9e\x86\x21\xef\x8d\xa0\xf0\xf0\x05\x46\x8d\x4f\xcd\x8f\xec\xf0\x58\xf9\xf7\x1e\x45\xf8\x1c\xed\xc8\x79\x78\xca\x0a\x6e\xde\x2d\x2d\xcf\x3d\x8e\xd6\x05\x75\xcb\xc8\xbf\x79\xde\xd7\x27\xe9\x7f\x0d\x0e\x41\xf0\xe6\x19\xb5\xfb\x27\x88\x9c\x54\xcf\xdb\xd0\x92\xf9\xdb\xef\xbf\xff\xcf\xaf\x77\x7f\xfc\xcf\xe7\xcb\x83\x03\xc6\xe8\x7a\x9e\x56\x98\xed\xa7\xad\xa3\xb4\xa7\xe5\x21\x39\x6b\xa8\xdd\xd8\x1b\xd7\x38\xa0\x43\x15\xdc\x91\x1b\xad\xfc\x1e\x7e\x12\x1a\xbb\x69\x43\xd5\x88\xe1\x2a\x10\x6b\x3b\xb0\x7c\x15\xde\xf3\x01\x5d\xa5\x90\x4b\xe4\x5d\xc9\x9e\x28\xf1\x77\x84\x86\xbc\xfb\x2c\x12\xb5\x3a\x5c\x78\xfd\x6f\xd2\x79\x23\x5c\xcf\x50\x65\x6d\x8e\x27\x2e\x9a\xbc\x97\x4f\x73\xcd\x67\x11\x3f\x73\xe4\x0e\x4b\x8c\xf1\x40\x05\xba\xd9\x65\xe2\xe7\x8e\xbc\x36\x11\x50\xcb\xd8\x96\xe1\xb7\x5a\x04\xeb\x04\xd4\x3e\x2a\xb9\xdb\xfb\xa1\x2a\xbe\x53\x22\x37\x10\xd1\x99\x94\x1b\xea\xfc\xc6\xfb\x11\xcf\x8d\xb2\xd3\xb6\xd8\xae\x0a\xa6\xc0\x40\x76\x1d\xc1\x0e\x04\x3b\x10\xec\x40\xb0\x03\xc1\x0e\x45\x8b\x2f\x14\x7d\x42\x12\x01\xac\x02\x56\x01\xab\x80\x55\xc0\x2a\x60\x75\x5e\x60\x15\xd6\x01\xeb\x80\x75\xc0\x3a\x7a\x67\x1d\x27\xc4\x03\x18\x63\xce\xf3\xe3\x5c\xd3\x70\xf8\x0d\xbf\x0e\x7f\xf7\xa0\x37\x31\x33\xa8\x86\xb7\x47\xda\xc9\xee\x8b\x7a\x32\xdb\x56\xb0\xf3\x95\x7c\xd2\xe2\x59\xaf\xdf\x44\x1b\xc3\x9b\xe8\xb7\x4f\xde\x37\xad\xfb\xa4\xcc\x3b\xf1\xc9\x74\x11\xca\x4f\xf5\x36\x22\xfc\x5e\x35\xc1\xa6\x5f\x6a\xa2\xf4\x80\xf0\x62\x3f\x19\xc1\xff\x7f\xc7\x32\x68\x72\xee\xec\xd1\xe3\xc6\x51\x85\x99\x9f\xe5\xae\xfd\x5f\xec\x60\x07\xa0\x4a\x31\x97\x39\x41\xa9\x16\xc5\xf6\xa6\x5b\x9c\xce\x0b\x3a\x26\x70\xc6\xf8\x11\xb2\x1d\x6c\x33\x47\x9f\x0d\xb7\x4d\xa0\xca\x47\xc5\x03\x37\x5b\x80\xc8\xa2\x9a\x41\x16\x15\x55\x3f\xa8\xfa\x51\x70\x33\x53\xd5\x9f\xa6\x57\x05\xa4\x8b\x67\x19\xa2\x5d\x73\x4f\x0f\x33\x7b\xa5\x56\x2b\x46\xd3\x57\x6a\x2f\x44\xe7\x35\x4f\xa2\x82\xf3\x67\x2a\x7d\xd2\x52\x8f\xac\x2d\x77\x32\x06\x3d\x72\x22\x45\x4e\x50\x11\xd3\x83\x3c\x5a\x15\x91\xb4\xf2\x05\xa5\x95\x93\x3f\x47\xfe\x1c\xf9\x73\xe4\xcf\x61\xdd\x96\xbd\x45\xa3\x4c\x56\x19\xc6\x06\x24\xd7\xe6\xe8\x2c\x95\xb9\x36\x33\xb0\xfb\x12\x07\x7f\x3f\x4d\xc0\xb2\xaa\x5a\x2b\x0b\xad\xa6\x15\x58\xaf\x69\x35\x29\x4d\x47\xfd\x5b\x07\xcb\x3d\x84\x9f\xa4\xb5\x5b\x09\xf1\x3e\xfc\x3f\xfe\xfb\x93\xb4\xb5\x8b\x33\x10\x96\xb3\x0f\x76\xca\x3f\xec\x5f\x51\x2b\x04\xc7\xfe\xaa\xc4\xd5\x6f\xf2\x49\x05\x5b\x69\xa9\xab\x50\x4d\x8d\x55\xab\x95\xb8\x77\xa4\xeb\x46\x3d\x2c\xb4\xf2\x23\x1d\xa3\x6f\xdd\xfe\xd0\x66\x43\xd0\xf7\x38\x90\x5a\x92\x08\x2d\xd1\xea\x1f\x62\xf1\x85\x4f\x2a\xde\x1b\x89\x85\x5b\xd1\x36\x88\xa5\x13\xc5\x93\xe9\xbe\x12\x96\x74\x53\x0a\xfa\x73\xcf\x82\x0a\x6f\x66\xbe\xd8\x7e\xdc\xfb\x25\x4e\xc7\x89\x75\xa9\x1b\x0d\x48\x4f\x77\xad\x6b\x7a\x53\x74\xb1\xa3\x8b\xdd\x59\xba\xd8\x75\xa0\xf5\xd4\xf5\xb2\x1b\x83\x5b\x9a\xae\x76\x38\xab\x89\x67\xa0\xab\xdd\xf1\x8c\xa1\xab\x1d\x5d\xed\xb0\x59\xb0\x59\x46\xd2\xe5\xae\x27\xab\xa5\xaf\xae\x77\x9d\x38\xcd\xea\x7a\xdf\xcd\x59\x81\x24\x3e\x16\x7d\xb2\x64\x98\x96\xa3\x4f\x8e\x48\x6d\x43\xbb\x48\xbe\x21\x3e\x16\x4d\x29\x39\x62\x6c\x5d\xf3\x26\x12\x51\x7a\x63\xda\x02\xa7\x03\x4b\xfb\xa1\x97\x65\xed\x87\xcf\xcb\x31\x0b\x7a\x13\xb3\x74\xb2\xdc\x00\x93\x04\x30\x09\x98\x14\xff\x7d\xb6\x30\xa9\xd3\x4d\xa8\x3d\x56\x9a\x4b\x87\x7c\xe0\x12\xce\x80\xe5\x39\x03\x80\x4b\x5d\xce\x1b\xe0\x12\xee\x1f\x6c\x98\x31\xd9\x30\xc0\xa5\x23\x49\x95\xc0\xa5\x8e\x7d\x1a\xed\x31\xd3\x5c\x14\x4a\x60\x13\xfa\x65\xc9\x30\x2d\x47\xbf\x1c\x91\x1a\x87\xb6\x91\x7c\x03\x6c\x42\x73\x4a\x8e\x00\x36\x15\xc0\x26\x5d\x72\x52\xff\xd4\xcc\xbc\x7e\xa1\x52\x54\x9b\xdc\x5d\xdb\xdf\xec\xf5\x5e\x3a\xe9\x3a\xa7\x32\xe9\x46\x10\x6a\x53\x9f\xf4\xdd\xac\x52\xd9\xf7\x3f\x26\x79\xfb\x57\xfa\x34\x57\x87\xc6\x34\x99\x4e\x23\x89\x86\x26\x6c\x37\xd8\x29\x99\x71\xe8\xe6\xf5\xb7\xef\x35\xee\xc0\xc3\xad\xfc\x92\xab\xdd\x48\x19\xd2\xb1\x26\x1a\xeb\x2a\xba\xef\xbf\x29\x97\xc2\xa3\x99\xf7\x6e\xb8\xea\xa3\x87\xb7\xe8\xcc\x5c\x8b\xae\x70\x33\xee\x0a\x57\x8f\xe6\xea\x3a\xc2\x55\x7a\xf5\x3a\xc0\x8e\xf4\x81\xa3\x0f\x1c\x7d\xe0\xe8\x03\x37\xb7\x3e\x70\xf5\x2b\x6f\x61\x0f\xb8\x9e\x83\x3c\xce\xd6\xf9\xad\xfe\xf1\xcb\xbb\xbe\x8d\x59\x06\xa7\xf4\x7a\xab\x97\x41\x79\x9f\xb7\x9e\x65\x40\x77\x37\xba\xbb\xd1\xdd\x8d\xee\x6e\x74\x77\xeb\xad\xbb\x5b\x83\xd5\xff\xa8\xb3\x5b\x65\xc1\xcf\x05\xc5\x78\x36\x7b\x9a\x19\x77\xa7\xab\x17\x77\x55\x67\xba\xf3\xca\x9d\x7e\x74\xbd\x8c\xe8\x71\x2f\xba\x9e\x87\x75\xd0\x0e\x74\xf5\xe2\xa9\xe8\x3e\xd7\xf7\xb2\x39\xd6\x9e\x73\xf5\x42\x2b\x80\x1c\xad\xfd\x79\xd1\xa7\x3f\x3b\xc3\x68\x05\xb5\xff\x7b\xa2\x69\x69\x84\xe6\xc6\x7b\xbf\xf7\x28\xbe\xda\xee\xba\x6b\x94\xf6\xe6\xa0\xec\x6b\x83\x26\x52\x0c\x43\x7b\xe1\x60\xc5\x5c\x65\xac\xdf\xd4\xb9\xbb\x01\x71\x40\x38\x20\xdc\x74\x21\x1c\x00\x0e\x00\x07\x80\x3b\xbc\x70\x00\x38\x00\x1c\x00\x0e\x00\x07\x80\x03\xc0\x01\xe0\x00\x70\x00\x38\x00\x1c\x00\x0e\x00\x07\x80\x9b\x1c\x80\x4b\x17\x91\x29\x73\x38\x50\x34\x06\xa0\x38\x3c\x7e\x02\x28\x02\x14\x01\x8a\x00\xc5\x9c\xd0\xc6\x07\x14\x2b\x4a\x41\x8e\x20\x4f\xaf\x3c\x81\x71\xf0\xbc\xbd\xf2\x5b\x23\x8f\x0f\x84\x38\x6d\x84\x38\x5c\x1e\xdf\x68\xea\x55\x82\x15\xc1\x8a\x60\x45\xb0\x22\x58\x11\xac\x08\x56\x04\x2b\x82\x15\xc1\x8a\x60\x45\xb0\x22\x58\x11\xac\x08\x56\x9c\x17\x56\x04\xc3\x81\xe1\xc0\x70\xd3\x18\x51\x30\x5c\x56\x3c\x60\xb8\xb9\x63\xb8\x91\xe4\xf9\xf5\x8c\xe2\x86\xcb\xfb\x6b\xd8\xa5\x17\x88\x07\xc4\x9b\x14\xc4\x03\xe0\x01\xf0\x00\x78\x00\x3c\x00\x1e\x00\x0f\x80\x07\xc0\x03\xe0\x01\xf0\x00\x78\x00\x3c\x00\x1e\x00\x0f\x80\x07\xc0\x9b\x11\xc0\xa3\xb9\x3c\x80\x12\x40\x79\xa2\xdc\x01\x94\x00\x4a\x00\xe5\xa2\x01\xa5\xab\x76\xdf\x3d\xff\x6b\x68\xe1\x45\x54\xb2\x15\x65\x1c\xa4\xc3\x67\x6e\xac\x37\x6a\x27\x6c\xf7\xd1\xf3\x9f\x92\xb9\x2d\x85\xe1\x18\xe5\x68\x70\xa3\x76\xbf\x25\x22\xb8\xbb\xff\xf8\xdf\xf9\xdf\xd3\xd3\xf4\x44\x18\x97\x08\x71\xe2\x28\xee\xf0\x66\xa4\x8e\xb9\x48\x5f\xb7\xee\x4d\xfa\x76\x3b\xed\x97\x29\x63\x0d\x9b\x35\xb2\xe9\x9b\xf4\xcf\xdb\xbb\xfb\x8f\x7f\x14\x1d\xc5\xfb\x74\xfa\xfb\x14\x0b\x52\xa7\x15\xcf\xe6\xb5\xfa\xdf\x6f\xb7\x2f\x78\xb3\x6c\x77\xe3\xab\x20\xb0\x1c\x19\x64\xc7\xef\xd2\xb8\x18\xba\x8d\x8e\x31\xe7\x14\x96\xe7\x38\xca\x8a\x77\x97\x8f\xe6\x16\xde\x85\xb7\x50\xf1\x62\x98\x63\xd3\xef\xc6\xbb\xe4\x34\x65\xa7\xe8\xb7\x49\x7f\x2f\xf3\xf4\x67\xfd\x98\xbf\x6f\x4d\xe1\x80\x66\xb3\xb4\x7a\x7a\x02\x50\x01\xa8\x00\x54\x00\xea\xdc\x00\x6a\x85\xf9\x57\x07\x51\xab\x5d\x09\xd5\x66\xe0\x49\x6b\xef\xbf\x42\xc1\x45\xae\xe3\x37\xba\x48\x8b\x15\xce\x28\x33\x0f\x32\xcf\x96\x0e\x56\x7a\x50\x62\x1b\x4a\x2b\xd8\xa9\xf5\x4a\xdc\xb9\xc2\x76\xcd\xca\xe2\xf9\x62\xef\x26\x8b\xd3\x5a\xac\xfd\xe7\x3f\xf6\xae\x58\xdb\x7e\xb8\x0f\x7e\x53\xc9\x8c\x0f\x97\x4f\xed\xe8\x8f\x5e\xf9\x78\x6e\x44\x02\x16\x8f\x7b\x5f\xbf\x65\x5b\xdf\xb3\x54\xa0\x3d\xf2\x91\x0f\x23\x9a\x65\x2b\xf1\x4f\x7d\x45\x3d\x5a\x7a\xee\xfc\x28\xae\xc5\x9d\xe3\xfc\xa8\xfd\xed\xeb\x70\x95\xde\xbb\xe1\xc0\x6f\x54\x90\x4c\xc9\xe8\x74\x6a\xdd\x62\xa0\xcc\xb3\x0c\x33\x4c\x67\xa3\xde\xcd\x44\x51\x4e\xbe\xcf\x26\x91\x7f\xa4\xdd\x5b\xb6\x2b\x02\xe3\x75\x12\x0f\xea\xd1\x84\xe7\x25\x84\xe4\xa0\x4a\x44\xab\x97\x9e\x3a\x7b\x65\x36\x87\x07\x25\x5c\xcf\xbd\x76\xd5\x46\xea\x09\x1a\x39\xa8\x56\xe2\x1f\xc9\x86\x6d\x68\x69\xf2\x6a\x44\x3a\xa2\xfd\xf4\xa4\xd6\xb6\xdc\x29\xe7\xf9\x10\x37\x77\xd8\x72\x6d\xe7\x4d\xe4\x80\xd2\x42\x17\x1b\x5f\x5a\xfa\xad\xb1\xbd\x75\xa2\x10\x1c\x36\x6d\x1d\x94\x18\xcf\xd2\x7d\x10\xde\x64\x7a\xb8\x64\x78\x64\xfc\x40\xd1\x45\x1e\xcd\x1a\x18\x9f\x62\x65\xee\xf3\x49\x49\xb7\xf0\x1e\x5b\x0c\xb3\xbe\xe7\x7b\x7d\xcb\x45\x4e\xbd\x1a\xb7\xde\x58\xa6\xff\x29\x01\x0f\xcd\xe4\x52\x1e\xf4\x70\xb6\xe9\x4f\xf8\x03\xe1\x0f\x84\x3f\x10\xfe\x40\xf8\x43\x6f\xe1\x0f\x0d\xf7\x82\xa3\x10\x88\xf3\x6d\x8b\x3f\xa7\x92\xb1\xb6\x8e\x92\x81\x4a\x96\xa0\x7b\xdf\xdb\xca\x8d\xd6\x8e\xee\x3d\xc7\xb6\x9e\x33\xc1\xf6\xf1\xa4\x3b\x64\x73\x85\xd3\xee\x76\xf5\x5f\x2b\xf1\xc9\xac\x67\x46\x75\xd9\x2a\x37\x7c\x59\x0e\x7b\xaa\x12\x9e\xbf\xfd\x22\xdd\x38\xf8\xdf\xdf\xab\x9b\x47\xe9\xc4\xb6\xf2\xe7\x4b\xf3\xf5\xe7\x4b\xf1\x68\xbb\xd2\xb1\xff\x2f\xde\x48\x1e\x94\x90\x6b\xcd\x8c\xbd\x1b\xc3\xd3\xd6\x07\x33\xcc\x9c\xfe\x2a\x38\x1c\x64\xec\xd3\x95\x78\x6f\xeb\xc5\x31\x75\xeb\x9e\x7f\xfc\x6c\x87\x08\x81\x9d\x31\x8f\xb5\x8d\xe2\xed\xbe\xb4\x19\x50\xf3\x04\x3f\xc7\xcf\x5e\xaa\xf2\x14\xd1\xb9\x6e\x0d\x33\xfd\xe8\xe1\x0b\xfb\xc5\xfb\x2e\x36\xd2\x7f\x90\x9b\x8c\x6b\x32\x31\x6a\x94\xff\xe8\xf9\x4f\xe1\x98\x14\xca\xeb\xf7\xdc\x13\x95\x8b\x4b\x2b\xbd\xb1\xc6\xba\x35\xb2\xb5\x43\x6d\xd2\xb2\xd7\x07\x53\x58\xeb\x0a\xda\x39\x91\x8c\x71\xa0\x99\x9c\xfe\x36\xd6\x06\x56\xa9\xc1\x8c\xf7\x91\x04\xd1\x27\x89\x2c\xd9\x8b\xad\xc4\x9d\x65\xa9\xed\x4e\xef\x4d\x69\xcb\xee\xca\x3c\xc3\x95\xb8\x8e\x26\x60\x76\x82\x06\x3f\x89\xab\xbf\x49\xeb\xeb\xc6\xf7\xf6\xee\x3a\xfc\x95\x4e\x0a\xd1\x3f\xca\x09\xce\xa8\x90\x91\x7e\x9c\x3d\x49\xfc\x04\x0f\xc9\x99\x7e\x12\x57\x1f\x3c\x5f\xa5\x4e\x2b\x2c\x19\x58\x72\x1d\x3e\x7d\x24\x1f\x93\x33\xa4\xcf\x17\x18\xd3\xf3\xe8\x84\x8f\xc9\x39\xda\x4c\xc8\x6d\x7e\xba\x0f\xa3\x71\xce\x38\x96\xa7\xd9\x38\x54\xc5\xf3\x0c\x35\x0a\x44\xf6\xf4\x36\xbe\xc7\xd1\x3d\xe7\xf3\x6d\x0c\x19\xe7\xd3\x4c\x58\x15\xb1\x3e\x2f\xd5\x7f\x0a\x39\x1d\x38\xf9\x44\x4c\xf7\x69\x27\x77\xfb\xa6\x7c\x6e\x72\x14\x39\x75\x58\x49\x62\xb4\xd9\x91\x0f\xda\x52\x17\x39\xd2\x47\x80\xba\x38\x31\xba\x04\xf6\xe6\x53\xa1\xab\xb2\xa0\x3b\x2f\xfb\x60\xdc\x64\x7e\x64\x5a\xc7\xfa\x7c\x5c\xf1\xa1\x21\xe1\x0e\x4f\x92\xe6\xdb\x2f\xa5\xda\xe4\x71\x2f\x27\x8f\xbb\xd9\xb6\x52\x97\xcb\x7d\x3e\xfb\x8b\xa0\x04\x82\x12\x08\x4a\x20\x28\x81\xa0\x84\xa2\xc5\x17\xda\x3d\x21\x89\x00\x40\x01\xa0\x00\x50\x00\x28\x00\x14\x00\x3a\x2f\x00\x0a\x93\x80\x49\xc0\x24\x60\x12\xbd\x33\x89\x13\xb8\xfd\x48\x33\x91\x9b\x89\xf0\x38\x1b\xf9\xa5\x1e\xb7\x51\xd1\x9c\xd2\x03\x96\x55\x62\x77\x95\x02\x19\xdf\x6e\x57\x69\x37\xfe\x9c\x53\x0f\xeb\xa1\x51\x57\xdd\x30\xcf\x07\x8a\x5a\x94\xcb\x9d\x4a\x89\x99\x8b\xdc\xb0\x5d\x6e\xbd\xa0\x63\x2a\x66\x6c\x17\x21\xdd\xa6\x04\xcc\x1c\xd0\x25\x03\x6b\x97\xd9\x59\x51\xa0\xa8\xaf\x95\xa1\x93\x54\x4f\xd2\x8d\xd2\xa3\x3e\xda\x74\x23\xed\x99\xf8\x55\xba\x72\xa3\x7c\xe3\x63\xd3\x75\xb7\x64\x10\x78\x96\xad\x8d\xc6\xc4\x9b\x25\xb5\x53\xd2\xf3\x85\x72\x77\xa1\x16\x17\x5b\xd1\x4f\x32\x9c\x44\xe1\x4f\x02\x15\xab\x42\xe9\xa4\x9a\x38\xf9\x46\xab\x82\xda\x73\xe5\xf9\xe2\xf6\xed\x0f\xe1\x6f\x7d\x69\x69\x54\xe5\x78\xee\xc6\x28\x3e\xda\xbb\x64\x79\xee\x4e\xda\xae\x59\x9b\xb4\xf7\xe6\xf0\x5b\xed\xbe\x8f\x40\x9a\x78\x78\x4e\x74\xfb\x8d\xe7\x48\x77\xb3\xf2\xfc\xcd\xcd\xf6\xeb\xe6\x66\xef\xda\x96\xb7\x56\x37\x7f\xf9\x18\xdc\x87\x67\x69\xed\x0e\x8e\x84\xd3\xe5\xf0\x8c\x4a\x53\x9a\xac\x02\xd3\x54\x79\x79\xdb\x40\x79\x79\x67\x5c\x5b\x23\xbb\xef\xb7\xb5\xf7\x6d\x82\x68\x47\x76\xe3\xf3\xd3\x16\xb5\x3e\x32\x05\x6d\xf1\x42\xb4\xa9\xb5\x51\xd0\x8d\xa6\xc7\x92\x1b\xcd\x75\xb0\xe3\x3a\x1b\x54\xd7\x48\x5f\x1d\x95\x6b\x8a\x2a\x17\xf9\xcc\x0b\xca\x67\x26\x71\x8b\xc4\x2d\x12\xb7\x48\xdc\xc2\x5a\x2c\x7b\x8b\x46\x99\x25\x31\x8c\xed\x45\x92\x47\x4d\x92\xc7\x24\x6c\xb0\xc4\x8b\xdd\x79\x6a\x87\xaf\xe4\x3a\xa7\x7d\x35\xb4\xa4\xc2\x23\x7b\xcc\xe7\x48\x69\x24\xea\xdf\x3a\x4a\xeb\x21\xfc\x24\xad\xdd\x4a\x88\xf7\xe1\xff\xf1\xdf\x9f\xa4\xad\x5d\x7b\x81\xb0\x9c\x7d\xb0\x53\xfe\x61\x9f\x31\xe1\x9c\xc2\xb1\xbf\x2a\x71\xf5\x9b\x7c\x52\xc1\x56\x5a\xea\x2a\x54\x27\x63\x15\x68\x25\xee\x1d\xe9\xba\xca\xe8\xa1\x5a\x49\x91\x8e\xd1\x8b\x6e\x7f\x68\xb3\x70\xeb\x7b\x1c\x48\x7d\x48\x84\x96\x68\xdf\x0f\xb1\xf8\xc2\x27\x15\xef\x8d\xc4\xc2\x2d\x63\x1b\xc4\xd2\x89\x02\x99\xf6\x81\xf2\x75\x04\xd2\x41\x91\x7e\xee\x59\x50\xe1\xcd\xcc\x97\x17\x8f\x7b\x5f\xc3\x29\x57\xb0\x25\x6c\xd4\x34\x7c\x72\x2f\x21\xb8\xe9\x26\x28\xe5\x77\x40\xdb\x93\x73\x30\x69\x1d\xee\xd1\xaa\xdc\xf7\xb5\x3e\xf6\xaf\xd5\xeb\xd6\x93\xf2\x37\xaa\xd1\x2f\x83\x9d\x2f\x77\x6a\x63\x5b\xd7\xcd\x8f\x09\x3f\x3f\x47\xbf\xd4\x2b\x64\x13\x7d\x63\x2b\xfd\x9d\xad\xb3\xb1\x4c\x68\x52\x3b\xdd\x43\x5f\x74\x78\x27\x6e\x5f\x20\xbd\x42\x69\xbf\xcf\x46\x08\x09\x5c\xbb\x33\x77\xed\x2e\x87\xa6\xe7\xf2\x1a\xe2\x97\xcb\xe4\xde\x84\x6b\xcd\x21\x9f\xfb\x55\xc9\x3a\xf4\x5a\x3b\xb6\x4c\xc2\xad\x74\xf4\x91\xae\xe7\x5e\x9b\xa3\xf5\x2f\xb4\x6f\x39\x10\xaf\xfe\x1e\x78\xee\xbd\x49\x6b\xfe\x35\x5c\xf1\xa2\xcf\x9f\xe2\x75\xf0\xf0\xc7\xd7\x63\xc2\xfc\xcd\xe7\xcd\x07\xcf\xb7\xb4\xf3\x7d\xe3\xe9\xc1\xf7\xc4\xe7\xcb\xc7\xf0\x6f\x9f\x2f\xc5\x5d\x46\x9a\x3a\x6a\xda\x78\xca\xb5\x0d\x10\xbd\xa8\xd7\xd2\xd2\x03\xa0\x13\x63\x1d\xdb\x8a\x7c\x7f\xda\x64\xf0\xbe\x47\x63\x6b\x12\x47\xb7\xca\xdb\x3a\x6a\x25\xcc\x35\x75\x3e\x7c\x3c\xa7\x74\xec\x72\xe1\x40\x24\x97\x6f\x23\xde\xf0\x42\x58\x0e\xe6\x0b\x2c\x87\x11\x58\x0e\xdb\x5c\xdc\xef\x14\x6c\x87\x7d\xe7\xbe\xa4\xad\x23\xad\x96\x2a\x5d\x74\xf0\x7c\x95\x3a\xa2\x23\xd1\xe7\x16\xa5\xcf\x8d\x48\x6d\x62\x77\x4f\xbe\x21\x3a\x72\x49\x5a\xc9\x7e\x1a\xfe\xcc\x0b\x71\x52\x8c\x61\xb6\x95\xd7\x30\xe5\xce\x2a\x54\x99\x92\x4a\x67\x1f\x3c\xff\xce\x71\x12\x0a\x35\x8a\x86\x77\xa5\x07\x90\xd3\x46\x3a\xdb\x10\x01\xca\xe7\xe3\x20\x14\x0c\x9c\x71\xc1\xc0\x7a\xb0\x53\x57\x2c\xb0\x7d\x23\xe5\x66\xd0\x8a\x12\x81\x94\x08\xa4\x44\x20\x25\x02\xe7\x56\x22\xb0\x7e\xe5\x2d\x2c\x0f\xd8\x73\x88\xc0\xd9\x8a\x02\xd6\x3f\x7e\x79\x41\xc0\x31\xcb\xe0\x94\x32\x80\xf5\x32\x28\x2f\x01\xd8\xb3\x0c\x28\xfc\x47\xe1\x3f\x0a\xff\x51\xf8\x8f\xc2\x7f\xbd\x15\xfe\x6b\xb0\xfa\x1f\x15\xfd\xab\x4c\x9d\x5b\x50\x84\x60\xb3\xa7\x99\x71\xe1\xc2\x7a\x71\x57\x15\x2d\x3c\xaf\xdc\x29\x55\xd8\xcb\x88\x1e\x97\x29\xec\x79\x58\x07\x2d\x4e\x58\x2f\x9e\x8a\xc2\x84\x7d\x2f\x9b\x63\x2d\x47\x58\x2f\xb4\x02\x64\xd1\xda\x9f\x17\x7d\xfa\xb3\x29\xa4\x72\x13\xc2\x63\x8a\x60\xe8\xcf\xff\x29\x66\x57\x3d\xd6\xc4\x48\xa5\x0c\x7b\x8f\x0d\xa8\xd5\x71\x65\x8c\x77\xc9\x19\x12\x68\xb5\x2e\x38\x0f\x85\x32\x70\xe7\xe2\xce\xc5\x9d\x8b\x3b\x77\x86\xee\xdc\x29\x74\x7c\x21\xf2\xb1\xf1\x40\x0d\x19\xf9\x48\x63\x1e\xca\x36\x2d\xb8\x6c\x13\x5d\x98\x80\x31\xc0\x18\x60\x0c\x30\x06\x18\x43\x17\x26\xaa\x19\x52\xcd\x90\x6a\x86\x54\x33\xcc\xcf\xc8\xb3\x36\x1b\x9b\x13\x39\xa5\xe5\xdb\xbc\x39\x2a\x2d\xdf\xa6\xd4\xf2\xad\x90\xd3\x91\x70\x4a\x85\xd2\x16\x15\x4a\x0f\xda\xd2\x64\xd2\xb1\x46\x9f\x92\xd9\x09\xd0\x26\xa1\x6c\x39\x09\x65\xcd\x76\x94\xba\xa4\xb2\xf3\x99\x5e\xc4\x23\x10\x8f\x40\x3c\x02\xf1\x08\xc4\x23\x14\x2d\xbe\x80\xee\x09\x49\x04\xf6\x09\xfb\x84\x7d\xc2\x3e\x61\x9f\xb0\xcf\x79\xb1\x4f\x70\x04\x38\x02\x1c\x01\x8e\xe8\x1d\x47\x9c\x80\xec\x47\x9a\xf2\xd5\x4c\x84\xc7\x69\x5f\xb3\xaa\x0b\x5e\x7a\x00\xd5\xfa\xa8\xd6\x37\xef\x6a\x7d\x91\xba\x68\x6a\x25\xbb\x6b\x11\x8e\x8d\x08\x2c\x6f\xab\xde\x88\x60\x6f\x7d\x09\xd7\x1e\xbd\xb6\x2b\xf9\x64\x16\xa6\xad\xef\x69\xf5\xb4\x28\x73\xb4\xba\xaf\x91\x06\x43\xd9\xaf\x69\x6e\x54\xf7\x34\xd1\xa7\x54\x73\x23\x2f\xe8\x18\x02\x1a\x53\x2d\xd5\xec\xbd\x02\xf8\x99\xdf\x76\x8e\xfc\xa6\x50\x52\x9e\x6a\xf2\xcb\xc9\xa9\xa2\x9a\x3c\xd5\xe4\x0b\x6e\x66\xe4\xaa\xda\x04\x0b\xc9\x8f\xbb\xcb\xf3\xcb\xee\x79\x7e\xda\xb0\xd6\x3d\x46\xae\x0d\x5f\x88\x6e\xca\x89\x98\xbf\xfe\xe7\x4c\x55\x45\x1a\x29\x5f\xc7\xa5\x44\x28\x20\x82\xc2\x35\x0b\x85\x8b\x94\xed\x05\xa5\x6c\x93\x9b\x46\x6e\x1a\xb9\x69\xe4\xa6\x61\x2b\x96\xbd\x45\xa3\x4c\x04\x19\xc6\x06\x23\x8f\xa5\x26\x8f\x65\xec\x06\x59\xe2\xb9\xee\x3c\x7b\xc5\x57\x72\x9d\x53\xbc\xea\x8d\xa8\xf0\xa0\xbe\x53\x56\x52\xca\x88\xfa\xb7\x0e\x44\x7b\x08\x3f\x49\x6b\xb7\x12\xe2\x7d\xf8\x7f\xfc\xf7\x27\x69\x6b\x9f\x5e\x20\x2c\x67\x1f\xec\x94\x7f\xd8\x62\xa2\x9e\xd0\x8e\xfd\x55\x89\xab\xe4\x2e\xaf\x42\x4d\x32\xd6\x7e\x56\xe2\xde\x91\xae\x1b\x35\xf3\xd6\xfa\x89\x74\x8c\x4a\x74\xfb\x43\x9b\x35\x5b\xdf\xe3\x40\x9a\x43\x22\xb4\x44\xf1\x7e\x88\xc5\x17\x3e\xa9\x78\x6f\x24\x16\xee\x16\xdb\x20\x96\x4e\x14\xab\xa5\x1b\x6c\x5b\xd2\x4d\xe9\xd0\xcf\x3d\x0b\x2a\xbc\x99\xf9\x22\xf1\x71\x6f\x69\xf8\xe5\xb2\x1b\xc1\x46\x8d\xde\x2d\xf7\x12\x48\xad\xd9\x4b\xe4\x1d\x29\xbc\x78\x13\xfa\x3c\x16\xf0\x0c\x71\x9f\x1c\x71\xd7\xb1\x3b\x8d\x34\x97\xfc\xb2\x7c\xad\x8f\xfd\x6b\xf5\x0a\xfd\xa4\xfc\x8d\x6a\xf4\xcb\x60\xe7\xcb\x9d\xda\xd8\xd6\x75\xf3\x63\xc2\xcf\xcf\xd1\x2f\xf5\x5e\xd0\x44\xb3\xda\x4a\x7f\x67\xeb\xd4\x3a\x13\x67\x76\xb2\x96\xa5\xaf\x37\x12\x4f\x75\x5f\x61\x02\x15\x96\xc9\x7d\x36\xdc\x4b\xe0\xbf\x9e\xb9\xff\x7a\x39\x01\x03\xb9\x24\x95\xf8\xe5\x32\x89\x54\xe1\x5a\x73\x48\xce\x7f\x55\xb2\x0e\xbd\xd6\xde\x3b\x93\x3d\x2d\x1d\x7d\xa4\xeb\xb9\xd7\xe6\x68\xfd\x0b\xed\x40\x0f\xc4\xab\xbf\x07\x9e\x7b\x6f\x72\xd4\x7f\x0d\x57\xbc\xe8\xf3\xa7\x78\x1d\x3c\xfc\xf1\xf5\x98\x22\x19\x9a\xcf\x9b\x0f\x9e\x6f\x69\xc2\xb0\xf1\xf4\xe0\x7b\xe2\xf3\xe5\x63\xf8\xb7\xcf\x97\xe2\x2e\x23\x4d\x1d\x02\x6f\x70\x80\xb6\x76\xa2\x17\xf5\x5a\x5a\x7a\x00\x74\x96\xb3\x63\x5b\x91\x83\x53\x1b\x47\xde\xf7\x68\x6c\x4d\x16\xf0\x56\x79\x5b\x47\xad\x84\xb9\xa6\x2e\x6e\x10\xcf\x29\x1d\x88\x5e\x38\x10\xc9\xe5\xdb\x88\x37\xbc\x10\x36\x92\xf9\x02\x1b\x69\xe0\xd8\x85\x5c\xfc\xf6\xc8\xad\xa4\x7d\xe7\xbe\xb2\xad\x23\xad\xd3\x15\xb9\xe8\xb8\x99\xab\x72\x44\x7c\xa2\xc0\x2d\x45\x81\x1b\x91\x9e\xc4\x76\x9e\x7c\x43\xc4\xe7\xfc\x35\x90\xfd\xe8\xbd\xb4\x17\xa2\xd3\xe0\xc9\x9b\xc0\x10\xda\x54\x0c\x65\x3f\x10\xd0\x5c\x27\xde\xc0\x3a\xc5\x81\x11\x64\x66\x81\xe2\x6d\x87\xc9\xc0\x64\x60\x32\x99\x67\x85\xc9\x0c\xc7\x64\xda\x6f\x7a\xf5\x74\xa6\x60\xd7\x9b\xa4\x61\x0f\xa3\xc1\xc4\x5f\x9e\x89\x0f\xa3\xe9\x72\xde\xc0\x68\x70\xea\x60\x33\xc1\x68\x72\xf2\xea\x8f\xd1\xbc\xc4\x9b\x51\x4f\x6b\xe6\xa2\xda\xc1\x6c\x50\xe8\x96\xa2\xd0\x8d\x48\x6f\x62\x7b\x4f\xbe\x81\xd9\xcc\x5f\x23\x99\x3d\xb3\x89\x7e\xab\xb3\x42\xed\xcc\x3b\xd3\x67\xbd\x8b\x54\x3a\xb0\xf7\x28\x22\x7d\xe5\x28\x4d\xb4\xbe\x00\xc6\xbb\xe4\x3c\x07\x3d\xa7\xf4\x6c\x14\xc4\xa0\x83\x0d\x1d\x6c\xe8\x60\x43\x07\x1b\x3a\xd8\x0c\x62\xb0\x60\x57\x36\x1e\xa8\x21\xed\x4a\x1a\x0d\x51\x9e\x69\xc1\xe5\x99\xe8\x2a\x45\x57\x29\xba\x4a\xd1\x55\x8a\xae\x52\x74\x95\xa2\xab\x14\x55\x0b\xa9\x5a\x48\xd5\x42\xaa\x16\xe6\x67\xe4\x59\x9b\xa7\xd1\xc2\x6e\x0c\xa3\x40\x0b\x3b\x5a\xd8\xcd\xad\x85\x5d\x21\xb3\x03\xe7\x53\x89\xb4\x45\x25\xd2\x83\xb6\x74\x46\x66\x5e\x46\x7b\x07\xad\x4c\x6a\xfc\x64\x7e\x64\x5b\xc7\x0a\xbd\xf7\x28\xc2\xbb\x6e\x8c\xbb\xc3\xb3\x14\x87\xf2\xbd\x18\x71\xe7\xee\x57\x2b\x70\xba\x47\xe5\xdf\x3c\xef\xeb\x93\xf4\xbf\x06\x87\x10\x71\xf3\x10\xda\x67\x13\x44\x9e\xa5\xe7\x6d\x68\x7e\xfc\xed\xf7\xdf\xff\xe7\xd7\xbb\x3f\xfe\xe7\xf3\xe5\xc1\x6b\x62\x14\x34\x4f\x6b\xb9\xf6\xd3\xd6\x51\xda\x3d\xf2\x90\x9c\x35\x54\x49\xec\x8d\x6b\xbc\xc6\xa1\xde\xec\xc8\x8d\xd6\x58\x0f\x3f\x09\x2d\xd4\xb4\x75\x69\x5c\x11\x57\x81\x58\xdb\x81\xe5\xab\xf0\x9e\x0f\xbc\x29\xc5\x49\x22\x97\x48\xf6\x44\x89\x93\x22\xb4\xbe\x43\x4b\x3f\xd6\x85\xc3\xd5\xd2\xff\x26\x9d\x37\xc2\xf5\x0c\x0a\xd6\x36\x74\xe2\x57\xc9\xbb\xe6\x34\x8c\x7c\x16\xf1\x33\x47\x3e\xac\xc4\x82\x0e\x54\xa0\xbb\x6b\x26\xce\xe9\xc8\xd5\x12\x51\xb0\x8c\x41\x18\x7e\xab\x45\xb0\x4e\xe8\xea\xa3\x92\xbb\xd0\x8e\xdf\xc8\x9d\x12\xb9\x81\x88\xce\xa4\xdc\x50\x51\x37\x2e\x8b\xad\x7d\xc0\xbe\x45\xa7\x6d\xb1\xc7\x14\x4c\x81\x81\x8c\x31\x22\x14\x88\x50\x20\x42\x81\x08\x05\x22\x14\x8a\x16\x5f\xd0\xf7\x84\x24\x02\x0d\x85\x86\x42\x43\xa1\xa1\xd0\x50\x68\xe8\xbc\x68\x28\x80\x02\x40\x01\xa0\x00\x50\xf4\x0e\x28\x4e\x80\xf8\xc6\x98\xf3\xfc\x38\x91\x33\x1c\x7e\x03\x9d\xc3\xdf\x3d\xe8\x4d\xcc\x0c\xaa\x81\xe4\x91\x76\xb2\xfb\xa2\x9e\xcc\xb6\x15\xec\x7c\x25\x9f\xb4\x78\xd6\xeb\x37\xd1\xc6\xf0\x26\xfa\xed\x93\xf7\x4d\xeb\x3e\x29\xf3\x4e\x7c\x32\xad\x86\xf2\x53\xbd\x8d\x08\xbf\x57\x4d\xb0\xe9\x17\x62\x28\x3d\x20\xbc\xd8\x4f\x46\xf0\xff\xdf\xb1\x0c\x9a\x9c\x3b\x7b\xf4\xb8\x19\x52\x2e\xbf\x32\xe3\xc7\xff\xc5\x0e\x76\xcb\x45\x48\xe1\xaa\x36\x31\x6c\xd4\xa2\x6c\x1e\x95\xe6\x26\x57\x69\xce\x0b\x3a\x86\x83\xc6\x6c\x13\xb2\x31\x07\x34\x07\xf4\x44\x02\x47\x5d\xd4\x23\xfb\x74\xcd\xd6\x46\x52\xb0\x66\x90\x82\x45\x69\x0f\x4a\x7b\x14\xdc\xcc\x24\xf4\xb8\x29\x15\xf8\x68\x79\xe3\x43\x34\x82\xee\xe2\xce\xe7\xa7\x36\x6b\xf5\x64\x12\x6a\xf3\x85\xe8\xb2\x4e\x49\x54\x61\xfe\x4c\xe5\x4a\x9a\xeb\x6a\xc7\x25\x4a\x06\xd7\xd5\x26\x52\x98\x04\xcd\x2c\x3d\xc8\xa3\xd5\xcc\x48\x05\x5f\x50\x2a\x38\x39\x6f\xe4\xbc\x91\xf3\x46\xce\x1b\x46\x65\xd9\x5b\x34\xca\x04\x93\x61\x0c\x34\xf2\x63\x6a\xf2\x63\xa6\x61\xa7\x25\x9e\xef\x7e\x5a\x75\x65\xd5\xaf\xa6\x66\x55\x79\x9b\xae\xae\x53\x61\x52\xea\x89\xfa\xb7\x0e\x70\x7b\x08\x3f\x49\x6b\xb7\x12\xe2\x7d\xf8\x7f\xfc\xf7\x27\x69\x6b\x77\x60\x20\x2c\x67\x1f\xec\x94\x7f\xd8\x74\xa2\xe2\xfe\x8e\xfd\x55\x89\xab\xe4\x5e\xaf\x42\xdd\x32\xd6\x87\x56\xe2\xde\x91\xae\x1b\x75\x65\xd0\x1a\x8b\x74\x8c\x92\x74\xfb\x43\x9b\x55\x5c\xdf\xe3\x40\xba\x44\x22\xb4\x44\x15\x7f\x88\xc5\x17\x3e\xa9\x78\x6f\x24\x16\xee\x1f\xdb\x20\x96\x4e\x14\x03\xa6\x3b\x25\x58\xd2\x4d\x69\xd5\xcf\x3d\x0b\x2a\xbc\x99\xf9\xa2\xf6\x71\x6f\x72\xb8\xf1\x86\xef\x16\x37\x10\xfc\x4e\xf7\x8c\xab\xb8\x05\x3a\xc7\x15\x3f\x33\x3c\x9f\xce\x71\xdd\x74\x8e\x6b\xa7\x83\x55\x74\x8d\x9b\x59\x14\x02\x5d\xe3\xf0\x77\x2f\x2f\x12\x81\xae\x71\x5d\xce\x1b\xba\xc6\x61\x41\x61\x41\xcd\xb7\x77\x5c\x27\x36\x54\x5f\x1d\xe4\xda\x3a\xd9\x2a\xba\xc7\xcd\x4c\xc5\x23\xd0\x14\xf5\x6e\x59\xea\xdd\x88\xb4\x28\x36\xfb\xe4\x1b\x02\x4d\x97\xa5\xa5\x9c\xb5\x9f\xdc\x39\xa2\x35\xcb\xdb\xc7\x4d\xa5\xaa\x5e\xfa\xb8\x0f\x9e\x7f\xe7\x38\x89\xd6\x93\x6d\x93\x4b\xea\xe4\x58\x57\x42\x52\x27\xa7\xb1\xaa\xbc\x84\x1e\x51\xa3\x72\xc6\x35\x2a\xeb\xa1\x50\x5d\x7d\xca\x4a\xf7\x53\x07\xc0\x8b\xaa\x94\x54\xa5\xa4\x2a\x25\x55\x29\xe7\x56\x95\xb2\x7e\xe5\x2d\xac\x48\xd9\x73\x78\xc1\xd9\xea\x50\xd6\x3f\x7e\x79\x0d\xca\x31\xcb\xe0\x94\xca\x93\xf5\x32\x28\xaf\x3a\xd9\xb3\x0c\xa8\x35\x49\xad\x49\x6a\x4d\x52\x6b\x92\x5a\x93\xbd\xd5\x9a\x6c\xb0\xfa\x1f\xd5\x99\xac\xcc\x3f\x5c\x50\x74\x61\xb3\xa7\x99\x71\xad\xcc\x7a\x71\x57\xd5\xc9\x3c\xaf\xdc\xa9\x8e\xd9\xcb\x88\x1e\x57\xc6\xec\x79\x58\x07\xad\x87\x59\x2f\x9e\x8a\x5a\x98\x7d\x2f\x9b\x63\xad\x80\x59\x2f\xb4\x02\x7c\xd1\xda\x9f\x17\x7d\xfa\xb3\x29\xc2\xd2\xd7\xbe\xb1\xdd\x8d\xaf\x82\xc0\x72\x64\x10\xf4\xcc\xb1\x22\xbd\xcf\x5d\xdb\xdf\xec\xf5\x5e\x3a\xe9\xd1\x92\x89\x6d\xf7\xd1\xdc\xd0\xbb\xf0\x86\x56\xa9\x44\xfa\x1f\x13\xfd\xfb\x4a\x9f\xe8\xea\xe0\xcc\xcb\x78\x67\x12\xec\x25\x6c\x37\xd8\x29\x99\xd9\x28\xf3\x50\xec\x7b\x3e\xb6\x3b\x7d\xf5\x5f\x72\x7c\x01\x10\x36\xd6\x34\x61\xbd\x00\xbc\x0f\x6d\xbc\xe5\xd2\x30\x3d\x84\x67\x46\x62\xe9\xb7\x05\x22\x06\x11\x83\x88\x41\xc4\x20\x62\x10\x31\x88\x18\x44\xac\xa3\xd5\x16\x22\x06\x11\x83\x88\x41\xc4\x20\x62\x10\x31\x88\x18\x44\x0c\x22\x06\x11\x83\x88\x8d\x72\x44\x21\x62\x59\xf1\x40\xc4\x66\x40\xc4\x0a\x0a\xee\xf7\x04\xc6\xd2\x34\xcc\x8d\xb7\xfb\x38\xcb\xab\x73\x2a\xf6\xe6\xa0\xe1\x6b\x2b\x26\xd2\x06\x43\x23\xe1\x60\xba\x5c\x65\x4c\xde\xd4\xb9\x5b\x33\x35\x78\x1a\x3c\x6d\x42\x3c\x0d\x96\x06\x4b\x83\xa5\xc1\xd2\x60\x69\xb0\x34\x58\x1a\x2c\x0d\x96\x06\x4b\x83\xa5\xc1\xd2\x60\x69\xb0\x34\x58\x1a\x2c\x6d\x52\x2c\x2d\xdd\x87\xa0\xdc\xdb\x30\xa5\x36\x04\xd0\x41\xe8\x20\x74\x70\x1a\x23\x0a\x1d\xcc\x8a\x07\x3a\x38\x65\x3a\x38\xa6\x54\xb9\xc1\xb2\xe4\x7e\xb1\x83\x1d\x95\x23\xf3\x43\x09\xe0\x9b\x10\xe0\x1b\x26\x61\x0e\xbe\x07\xdf\x83\xef\xc1\xf7\xe0\x7b\xf0\x3d\xf8\x1e\x7c\xaf\xa3\xd5\x16\xbe\x07\xdf\x83\xef\xc1\xf7\xe0\x7b\xf0\x3d\xf8\xde\xe2\xf8\x1e\x34\x0c\x1a\x06\x0d\x9b\xc6\x88\x42\xc3\xb2\xe2\x81\x86\x4d\x92\x86\xb9\x09\xf7\x31\x79\x72\xfa\xf3\x7f\x80\x64\xd9\x1e\xb2\x29\x5c\x06\x1e\x03\x8f\x81\xc7\xc0\x63\xe0\x31\xf0\x18\x78\x0c\x3c\x06\x1e\x03\x8f\x81\xc7\xf2\xcb\xed\x08\xd1\x10\x78\x0c\x3c\x06\x1e\x03\x8f\x81\xc7\xc0\x63\xe0\xb1\x29\xe2\xb1\xe8\xa9\x75\x16\x5c\x38\x94\x72\xbf\xfb\x22\x02\xcb\xdb\xaa\x37\x22\xd8\x5b\x5f\xc2\x91\xd7\xf6\x8a\x92\x4f\xc6\xd1\xbb\xf5\x3d\x2d\xe5\xd3\x13\xe4\xb4\xdf\x8f\x2c\x39\xb8\x20\x5c\x10\x2e\x08\x17\x84\x0b\xc2\x05\x33\x5c\x70\x5c\x55\x35\xa7\x56\x50\xf3\x88\x2c\x42\x15\xa1\x8a\x13\xa2\x8a\x10\x45\x88\x22\x44\x11\xa2\x08\x51\x84\x28\x42\x14\x21\x8a\x10\x45\x88\x22\x44\x11\xa2\x08\x51\x84\x28\x42\x14\x21\x8a\x53\x21\x8a\x05\x05\x35\x4f\x47\x85\x63\xa1\x84\xe0\x51\xf0\x28\x78\x14\x3c\x3a\xea\x11\x05\x8f\x66\xc5\x03\x1e\x9d\x13\x1e\x8d\x8e\xd8\x7a\x8e\x6d\xd9\xa3\x48\x9e\x8c\xa8\xe3\x7d\x78\x47\xcf\x43\xa6\x50\x66\x6e\x84\x44\x4a\x90\xe7\xc4\x90\xe7\x99\x13\x29\x33\xaf\x0b\xf0\x13\xf8\x09\xfc\x04\x7e\x02\x3f\x81\x9f\xc0\x4f\xe0\x67\x47\xab\x2d\xf0\x13\xf8\x09\xfc\x04\x7e\x02\x3f\x81\x9f\xc0\xcf\xc5\xc1\x4f\x78\x21\xbc\x10\x5e\x08\x2f\x1c\xf5\x88\xc2\x0b\xb3\xe2\x81\x17\xce\x98\x17\x8e\x24\xa9\xb2\x7b\x66\x38\x48\x6a\x65\x19\x42\x81\x36\x42\x1b\x73\x67\x1d\x1d\x6d\x84\x34\x42\x1a\x21\x8d\x90\x46\x48\x23\xa4\x11\xd2\x08\x69\x84\x34\x42\x1a\x21\x8d\x90\x46\x48\x23\xa4\x11\xd2\x08\x69\x9c\x16\x69\x4c\xa7\x59\x56\xb8\x1b\x48\xb6\x2c\x7e\x66\xe0\x29\xf0\x14\x78\x0a\x3c\x05\x9e\x02\x4f\x17\x09\x4f\xc9\xaa\xcc\x31\xce\x7c\x2e\xe5\x07\xcf\xbf\x73\x9c\x04\x7d\x52\x4e\x16\xda\x39\x25\xda\x49\x6e\x25\xc4\x13\xe2\x09\xf1\x84\x78\x42\x3c\x21\x9e\x10\x4f\x88\x27\xc4\x13\xe2\x09\xf1\x84\x78\x42\x3c\x21\x9e\x10\xcf\xe9\x11\x4f\x28\x19\x94\x0c\x4a\x36\x8d\x11\x85\x92\x65\xc5\x03\x25\x9b\x16\x25\x7b\x50\x3b\x79\x7b\xd3\x8a\x8a\xf5\xcd\x80\x9a\x10\xb7\x8d\xda\x65\x15\x5d\x33\xbc\x15\x3c\x6c\xa3\x76\x69\x1a\xa6\x9f\xff\xee\xfe\xe3\x1f\x45\x87\x0e\x45\xbf\x26\x0b\xa5\x52\x82\xd4\x55\x5a\xe7\x44\xa6\xf4\x4c\x49\x1d\x7b\x91\xbe\x7e\xd3\x17\x2d\x6a\x81\x6a\x39\x32\xc8\x8e\xe4\xa5\x31\x26\xba\xe5\xd1\xe6\x9c\xc2\xf2\x1c\x47\x59\xf1\x1e\x10\xb5\x2a\x78\x17\xde\x42\xc5\x7b\x62\x8e\x3d\x7a\x55\xde\x25\xe7\x2a\x3b\x4f\x09\xdc\x12\xf9\xf1\x35\xab\xe2\x83\xb7\x7e\xce\x4f\xcd\x78\x59\x2c\xfa\xae\x97\x69\xfb\xb3\x7e\xd6\xdf\xb5\xdc\x82\x86\x93\xb6\x7a\xb6\xc2\x4b\xe0\x25\xf0\x12\x78\xc9\xdc\x78\x49\x85\x36\x5b\xc7\x4c\xaa\x2d\xa3\x6a\xad\xf6\xa4\xb5\xf7\x5f\xa1\xe0\x22\x4f\xd1\x1b\x1d\x8d\x65\x85\x33\xca\xcc\x83\xcc\xb3\xa5\x63\x13\x1e\x94\xd8\x86\xd2\x0a\x76\x6a\xbd\x12\x77\xae\xb0\x5d\xb3\xb2\x78\xbe\xd8\xbb\xc9\xe2\xb4\x16\x6b\xff\xf9\x8f\xbd\x2b\xd6\xb6\x1f\xee\x83\xdf\x54\x32\xe3\xc3\xe5\x53\xfb\xf5\xa2\x57\x3e\x9e\x1b\x91\x80\xc5\xe3\xde\xd7\x6f\xd9\xd6\xf7\x2c\x15\x68\x07\x5c\x64\x92\x45\xb3\x6c\x25\xfe\xa9\xaf\xa8\x47\x4b\xcf\x9d\x1f\xc5\xb5\xb8\x73\x9c\x1f\xb5\x7b\x6d\x1d\xae\xd2\x7b\x37\x1c\xf8\xd0\xb8\x89\xa7\x64\x74\x3a\xb5\x6e\x31\x50\xe6\x59\x86\x19\xa6\xb3\x41\xae\x66\xa2\x28\x07\x5d\x67\x93\xc8\x3f\xd2\xd6\xba\xed\x8a\xc0\x18\xd1\xe2\x41\x3d\x9a\x68\x9c\xc4\x21\x7a\x50\x25\xa2\xd5\x4b\x4f\x9d\xbd\x32\x9b\xc3\x43\x68\xa7\xba\xd7\xae\xda\x48\x3d\x41\x23\x7b\x7b\x25\xfe\x91\x6c\xd8\x06\x8e\x24\xaf\x46\xa4\x28\xda\x4f\x4f\x6a\x6d\xcb\x9d\x72\x9e\x0f\x61\x32\x87\x2d\xd7\x76\xde\x44\xf6\xb4\x16\xba\xd8\xf8\xd2\xd2\x6f\x8d\xed\xad\x13\x85\xe0\xb0\x69\xeb\x18\xa4\x78\x96\xee\x83\xf0\x26\xd3\xc3\x25\xc3\x23\xe3\x07\x8a\x2e\xf2\x68\xd6\xc0\xf8\x14\x2b\x73\x9f\x4f\x4a\xba\x85\xf7\xd8\x62\x98\xf5\x3d\xdf\xeb\x5b\x2e\xf2\x51\xd4\x78\x29\xc6\x32\xfd\x4f\xe1\x9b\xcd\xe4\x52\xce\x38\xcf\x36\xfd\xa1\x9d\xd0\x4e\x68\x27\xb4\x13\xda\xd9\x1b\xed\x6c\xb8\x17\x1c\x11\xcf\xf3\x6d\x8b\x3f\xa7\xb2\x21\xb6\x8e\x92\x81\x4a\x96\xa0\x7b\xdf\xdb\xca\x8d\xd6\x8e\x4c\xf4\x75\x26\xb6\x36\x9e\x74\x87\x74\x8a\x70\xda\xdd\xae\xfe\x6b\x25\x3e\x99\xf5\xcc\xa8\x2e\x5b\xe5\x86\x2f\xcb\x61\x4f\x55\xc2\xf3\xb7\x5f\xa4\x1b\xc7\xfa\xfa\x7b\x75\xf3\x28\x9d\xd8\x56\xfe\x7c\x69\xbe\xfe\x7c\x29\x1e\x6d\x57\x3a\xf6\xff\xc5\x1b\xc9\x83\x12\x72\xad\x11\x98\x77\x63\xf0\xc0\xfa\x60\x86\x99\xd3\x5f\x05\x87\x83\x8c\x7d\xba\x12\xef\x6d\xbd\x38\xa6\x6e\xdd\xf3\x8f\x9f\xed\x00\x3c\x77\xc6\x3c\xd6\x36\x8a\xb7\xfb\xd2\x66\x40\xcd\x13\xfc\x1c\x3f\x7b\xa9\xca\x53\x04\x1b\xba\x35\xcc\xf4\xa3\x87\x2f\xec\x17\xef\xbb\xd8\x48\xff\x41\x6e\x32\xfe\xc9\xc4\xa8\x51\xfe\xa3\xe7\x3f\x85\x63\x52\x28\xaf\xdf\x73\x4f\x54\x2e\x2e\xad\xf4\xc6\x1a\xeb\xd6\xc8\xd6\x0e\xb5\x49\xcb\x5e\x1f\x4c\x61\xad\x2b\x68\xe7\x44\x32\xc6\xe1\x66\x1d\xed\xa4\xb1\x36\xb0\x4a\x0d\x66\xbc\x8f\x24\xc4\x31\x89\x5b\xcf\x5e\x6c\x25\xee\x2c\x4b\x6d\x77\x7a\x6f\x4a\x5b\x76\x57\xe6\x19\xae\xc4\x75\x34\x01\xb3\x13\x34\xf8\x49\x5c\xfd\x4d\x5a\x5f\x37\xbe\xb7\x77\xd7\xe1\xaf\x74\x0c\xb8\xfe\x51\x4e\x70\x46\x85\x8c\xf4\xe3\xec\x49\xe2\x27\x78\x48\xce\xf4\x93\xb8\xfa\xe0\xf9\x2a\x75\x5a\x61\xc9\xc0\x92\xeb\xf0\xe9\x23\xf9\x98\x14\x01\x7d\xbe\xc0\x98\x9e\x47\x27\x7c\x4c\xce\xd1\x66\x42\x6e\xf3\xd3\x7d\x18\x8d\x73\xc6\xa1\x09\xcd\xc6\xa1\x2a\x3c\x61\xa8\x51\x20\x50\xa1\xb7\xf1\x3d\x0e\x56\x38\x9f\x6f\x63\xc8\xb0\x85\x66\xc2\xaa\x08\x5d\x78\xa9\xfe\x53\x08\xeb\xa0\xcb\x27\x62\xba\x4f\x3b\xb9\xdb\x37\xe5\x73\xd3\x84\xca\xa9\x63\x4b\x72\x1e\xcd\xb6\x7c\x50\x99\xce\x98\xfa\x58\x42\x7c\xf3\x99\x8f\xb9\x67\x3a\x4e\x7f\xec\x3c\xef\xda\x38\xcc\xfc\xc8\xc8\x8e\x35\xfb\xb8\x22\x75\x43\xe0\x1d\x9e\xe4\x08\x77\xbf\x14\x72\x93\xc5\xb9\x9c\x2c\xce\x66\xbb\x4c\x5d\x26\xe7\xf9\xcc\x31\x62\x14\x88\x51\x20\x46\x81\x18\x05\x62\x14\x8a\x16\x5f\xe0\xf7\x84\x24\x02\x0f\x85\x87\xc2\x43\xe1\xa1\xf0\x50\x78\xe8\xbc\x78\x28\x88\x02\x44\x01\xa2\x00\x51\xf4\x8e\x28\x4e\xc0\xf8\x23\xcd\xb3\x6c\x26\xc2\xe3\x5c\xcb\x97\x7a\xdc\x46\x05\x77\x4a\x0f\x58\x56\xe1\xcc\x55\x0a\x69\x44\x44\x62\x95\xf6\xe5\xcf\x3e\x3b\xb1\x1e\x24\x9d\xb9\x6e\x66\x57\xf0\xa8\x45\xed\xcc\xa9\xd4\xd3\xb8\xc8\x8d\xdd\xe5\xd6\x0b\x3a\x26\x65\xc6\x94\x11\xd2\x6d\x4a\xc5\xcc\x01\x9d\x73\xb1\x76\xc9\x9f\x15\x8d\x0b\x7a\x5d\x2d\x3a\x49\x09\x25\x2d\x29\x3d\xf4\xa3\x4d\x4b\xd2\x2e\x8b\x5f\xa5\x2b\x37\xca\x37\xce\x37\xd3\xa6\x23\x08\x3c\xcb\xd6\xd6\x64\xe2\xe6\x92\xda\x5b\xe9\xf9\x42\xb9\xbb\x50\xbd\x8b\xcd\xeb\x27\x19\xce\xa4\xf0\x27\x81\x8a\x75\xa4\x74\xf2\x4d\x9c\xa4\xa3\x75\x44\xed\xd2\xf2\x7c\x71\xfb\xf6\x87\xf0\xb7\xbe\xb4\x34\xc3\x72\x3c\x77\x63\x34\x22\xed\x76\xb2\x3c\x77\x27\x6d\xd7\xac\x52\xda\xad\x73\xf8\xad\xf6\xeb\x47\x84\x4d\x3c\x3c\x27\x4a\xff\xc6\x73\xa4\xbb\x59\x79\xfe\xe6\x66\xfb\x75\x73\xb3\x77\x6d\xcb\x5b\xab\x9b\xbf\x7c\x0c\xee\xc3\xb3\xb4\xf6\x13\x47\xc2\xe9\x72\x78\x46\xa5\x42\x4d\x5b\xb3\x69\xaa\xd5\xbc\x6d\xa0\xd5\xbc\x33\x8e\xaf\x31\xde\xfc\xdb\xda\x9b\x37\x61\xb7\x63\xbc\xfb\x99\x2a\x94\x5a\x5b\x99\x8c\x42\x79\x21\x5a\x97\xed\x28\xe8\xb4\xdf\x63\xf5\x8e\xe6\xba\x5a\x49\xc9\x0e\x0a\x75\xa4\xaf\x8e\x56\x36\x45\xad\x8c\xd4\xe8\x05\xa5\x46\x93\x03\x46\x0e\x18\x39\x60\xe4\x80\x61\x50\x96\xbd\x45\xa3\x4c\xb8\x18\xc6\x28\x23\x5f\x24\xfa\x5d\x65\xbe\xc8\x74\xec\xb2\xc4\xf9\xdd\x79\x96\x88\xaf\xe4\x3a\xa7\x87\x35\x34\xac\xc2\x23\xfb\x4e\x0d\x49\x29\x28\xea\xdf\x3a\xe0\xeb\x21\xfc\x24\xad\xdd\x4a\x88\xf7\xe1\xff\xf1\xdf\x9f\xa4\xad\x9d\x81\x81\xb0\x9c\x7d\xb0\x53\xfe\x61\xdb\x31\x91\xa1\xc2\xb1\xbf\x2a\x71\x95\x74\xf4\xbb\x0a\xb5\xcb\x58\x23\x5a\x89\x7b\x47\xba\xae\x32\x6a\xa9\xd6\x59\xa4\x63\xd4\xa4\xdb\x1f\xda\xac\xe3\xfa\x1e\x07\xd2\x26\x12\xa1\x25\xca\xf8\x43\x2c\xbe\xf0\x49\xc5\x7b\x23\xb1\x70\x07\xd9\x06\xb1\x74\xa2\x98\xa8\x7d\xa0\x7c\x1d\xcc\x74\xd0\xab\x9f\x7b\x16\x54\x78\x33\xf3\x45\xcf\xe3\xde\xe6\x70\xde\x99\xdf\x95\x6c\x13\x1b\x35\x21\xdf\xdd\x4b\x60\x70\xba\x9d\x7c\xf9\x6d\x4c\xa9\x9b\xfc\x74\xf1\xb6\x0e\x24\x69\x55\x6b\xfc\x5a\x1f\xfb\xd7\xea\x65\xec\x49\xf9\x1b\xd5\xe8\x97\xc1\xce\x97\x3b\xb5\xb1\xad\xeb\xe6\xc7\x84\x9f\x9f\xa3\x5f\xea\x05\xb3\x89\x0e\xb2\x95\xfe\xce\xd6\x79\x5e\x26\xe8\xa9\x9d\x3e\xb2\xcd\xf7\xf4\x9d\x21\x93\xaf\xd0\xeb\xef\xb3\x01\x48\x02\xef\xef\xcc\xbd\xbf\xcb\x61\xf2\xb9\xb4\x89\xf8\xe5\x32\xa9\x3d\xe1\x82\x73\x48\x17\x7f\x55\xb2\x18\xbd\xd6\xbe\x2f\x93\xcf\x2b\x1d\x7d\xa4\xeb\xb9\xd7\xe6\x68\xfd\x0b\xed\x7e\x0e\xc4\xab\xbf\x07\x9e\x7b\x6f\xb2\xa6\x7f\x0d\x97\xbd\xe8\xf3\xa7\x78\x31\x3c\xfc\xf1\xf5\x98\x82\x05\x9a\xcf\x9b\x0f\x9e\x6f\x69\xff\xfc\xc6\xd3\x83\xef\x89\xcf\x97\x8f\xe1\xdf\x3e\x5f\x8a\xbb\x8c\x34\x75\x50\xb6\x71\xa6\x6b\xbb\x20\x7a\x51\xaf\xa5\xa5\x07\x40\xe7\xdd\x3a\xb6\x15\xb9\x07\xb5\x19\xe1\x7d\x8f\xc6\xd6\xe4\xa5\x6e\x95\xb7\x75\xd4\x4a\x98\x6b\xea\x74\xfb\x78\x4e\xe9\xd0\xe8\xc2\x81\x48\x2e\xdf\x46\xbc\xe1\x85\xb0\x26\xcc\x17\x58\x13\x99\x67\x1a\xda\x9a\xd8\xe6\x02\x8c\x27\x63\x4f\xec\x3b\xf7\x39\x6d\x1d\x69\xb5\x54\xf3\xa2\x83\x67\xae\xe8\x11\x7c\x89\xa2\xb7\x3c\x45\x6f\x44\xfa\x14\xdb\x7e\xf2\x0d\xc1\x97\x0d\x6e\x7e\xae\x3a\xcb\x7e\x42\x1e\xd0\x0b\x71\x7a\xf4\x62\xb6\xdf\xd8\x30\x45\xd8\x2a\xb4\x9d\xaa\xfa\x6b\x1f\x3c\xff\xce\x71\x12\xa0\x35\x8a\x26\x7d\xa5\x07\x90\x69\x17\x8d\x1a\x49\x76\x03\x25\xd9\x9d\x19\xa9\x50\xd5\x70\xc6\x55\x0d\xeb\x19\x51\x5d\x45\xc3\xf6\xbd\x6c\x9b\xf1\x2f\xea\x18\x52\xc7\x90\x3a\x86\xd4\x31\x9c\x5b\x1d\xc3\xfa\x95\xb7\xb0\x86\x61\xcf\xd1\x06\x67\xab\x5c\x58\xff\xf8\xe5\x55\x0b\xc7\x2c\x83\x53\x6a\x15\xd6\xcb\xa0\xbc\x4e\x61\xcf\x32\xa0\x3a\x21\xd5\x09\xa9\x4e\x48\x75\x42\xaa\x13\xf6\x56\x9d\xb0\xc1\xea\x7f\x54\x99\xb0\x32\x47\x6f\x41\xc1\x86\xcd\x9e\x66\xc6\xd5\x15\xeb\xc5\x5d\x55\x59\xf1\xbc\x72\xa7\x9e\x62\x2f\x23\x7a\x5c\x4b\xb1\xe7\x61\x1d\xb4\x82\x62\xbd\x78\x2a\xaa\x27\xf6\xbd\x6c\x8e\xb5\x66\x62\xbd\xd0\x0a\x08\x46\x6b\x7f\x5e\xf4\xe9\xcf\x93\xe8\x95\x9b\x50\x1f\x53\x77\x43\x7f\xfe\x4f\x31\xd4\xea\xb1\x0c\x47\x2a\x41\xd9\x7b\x6c\x80\xb3\x4a\x8a\x71\xbc\x4b\x4e\x93\xd0\xac\x75\xc1\xc9\xa8\xcd\x81\x63\x17\xc7\x2e\x8e\x5d\x1c\xbb\x33\x74\xec\x4e\xa1\x41\x0d\x01\x93\x8d\x07\x6a\xc8\x80\x49\xfa\x08\x51\x29\x6a\xc1\x95\xa2\x68\x1a\x05\x96\x01\xcb\x80\x65\xc0\x32\x60\x19\x9a\x46\x51\x40\x91\x02\x8a\x14\x50\xa4\x80\x62\x7e\x46\x9e\xb5\x37\xda\x9c\x18\x2a\x1d\xea\xe6\x4d\x54\xe9\x50\x37\xa5\x0e\x75\x85\xb0\x8e\x3c\x55\x8a\xa2\xb6\x2d\x8a\x7a\x50\x99\xa6\x95\xa2\x35\x8d\xd4\xcd\x4e\xf8\x36\x99\x66\xcb\xc9\x34\x6b\xb6\xc1\xd4\x65\x9b\x9d\xcf\x12\x23\x3c\x81\xf0\x04\xc2\x13\x08\x4f\x20\x3c\xa1\x68\xf1\x85\x7b\x4f\x48\x22\xa0\x50\x50\x28\x28\x14\x14\x0a\x0a\x05\x85\xce\x0b\x85\x42\x27\xa0\x13\xd0\x09\xe8\x44\xef\x74\xe2\x04\x82\x3f\xd2\x5c\xb0\x66\x22\x3c\xce\x07\x9b\x55\xd9\xf1\xd2\x03\xa8\xea\x47\x55\xbf\x45\x55\xf5\x8b\xb4\x47\x53\x80\xd9\x5d\x8b\x70\x94\x44\x60\x79\x5b\xf5\x46\x04\x7b\xeb\x4b\xb8\x14\xe9\xa5\x5e\xc9\x27\xb3\x4e\x6d\x7d\x4f\x6b\xab\x45\x19\xa6\xd5\xad\x94\x34\x27\xca\x7e\x4d\x3f\xa5\xba\xa7\x89\x3e\xa5\xfa\x29\x79\x41\xc7\x60\xd0\x58\x6e\xa9\x16\xf4\x15\x10\xd0\xfc\xb6\x1f\x0c\x38\x99\x8a\xf5\x14\xab\x5f\x4e\xee\x15\xc5\xea\x29\x56\x5f\x70\x33\x53\xd0\xe1\xa6\x5a\xa7\x7e\xdc\xad\xa8\x3b\xb8\xf1\x99\x2a\xcc\x5a\x33\x99\x82\xc2\x7c\x21\x3a\xac\x4c\x62\xfe\xfa\x9f\x33\x15\x28\x69\xa4\xa4\x95\x54\x25\xa1\x16\x09\x3a\xd9\x2c\x74\x32\xb2\xbf\x17\x94\xfd\x4d\x9a\x1b\x69\x6e\xa4\xb9\x91\xe6\x86\x39\x59\xf6\x16\x8d\x32\xa7\x64\x18\xe3\x8c\x94\x98\xe8\x77\x95\x29\x31\x93\x30\xd2\x12\x87\x77\xe7\x89\x30\xbe\x92\xeb\x9c\x0a\x56\x6f\x53\x85\x07\x9d\x25\xfb\x25\xa5\x9b\xa8\x7f\xeb\x98\xb6\x87\xf0\x93\xb4\x76\x2b\x21\xde\x87\xff\xc7\x7f\x7f\x92\xb6\xf6\x02\x06\xc2\x72\xf6\xc1\x4e\xf9\x87\x1d\x27\xea\x5e\xed\xd8\x5f\x95\xb8\x4a\xee\xf2\x2a\x54\x2c\x63\x65\x68\x25\xee\x1d\xe9\xba\x51\xdb\x71\xad\xae\x48\xc7\x68\x48\xb7\x3f\xb4\x59\xc2\xf5\x3d\x0e\xa4\x48\x24\x42\x4b\xf4\xf0\x87\x58\x7c\xe1\x93\x8a\xf7\x46\x62\xe1\xe6\xb1\x0d\x62\xe9\x44\x61\x5f\xba\x15\xb8\x25\xdd\x94\x4a\xfd\xdc\xb3\xa0\xc2\x9b\x99\x2f\x5d\x1f\xf7\x0e\x87\xff\xae\x6c\x73\xd8\xa8\x69\xb8\xef\x5e\xc2\xbb\x35\xbc\x89\x7c\x27\x85\x77\xd0\x04\x64\x8f\x85\x61\x03\xef\x27\x07\xef\x75\x54\x50\x23\x6d\x26\xbf\x4a\x5f\xeb\x63\xff\x5a\xbd\x60\x3f\x29\x7f\xa3\x1a\xfd\x32\xd8\xf9\x72\xa7\x36\xb6\x75\xdd\xfc\x98\xf0\xf3\x73\xf4\x4b\xbd\x35\x34\xd1\xb6\xb6\xd2\xdf\xd9\x3a\x69\xcf\x44\xb0\x9d\xac\x79\xe9\xeb\x8d\xc9\x99\xdd\x57\xc4\x41\x85\xf1\x72\x9f\x8d\x26\x13\xb8\xb8\x67\xee\xe2\x5e\x4e\xd8\x41\x2e\x07\x26\x7e\xb9\x4c\x9e\x56\xb8\xe0\x1c\x72\xff\x5f\x95\x2c\x46\xaf\xb5\x83\xcf\x24\x67\x4b\x47\x1f\xe9\x7a\xee\xb5\x39\x5a\xff\x42\xfb\xd8\x03\xf1\xea\xef\x81\xe7\xde\x9b\x14\xf8\x5f\xc3\x65\x2f\xfa\xfc\x29\x5e\x0c\x0f\x7f\x7c\x3d\xa6\x78\x88\xe6\xf3\xe6\x83\xe7\x5b\x1a\x42\x6c\x3c\x3d\xf8\x9e\xf8\x7c\xf9\x18\xfe\xed\xf3\xa5\xb8\xcb\x48\x53\x47\xd8\x1b\x62\xa0\x2d\xa0\xe8\x45\xbd\x96\x96\x1e\x00\x9d\x44\xed\xd8\x56\xe4\x03\xd5\x06\x93\xf7\x3d\x1a\x5b\x93\x64\xbc\x55\xde\xd6\x51\x2b\x61\xae\xa9\x6b\x27\xc4\x73\x4a\xc7\xb9\x17\x0e\x44\x72\xf9\x36\xe2\x0d\x2f\x84\xdd\x64\xbe\xc0\x6e\x1a\x8b\xdd\xb4\xcd\x05\x8a\x4f\xc1\x72\xda\x77\xee\x53\xdb\x3a\xd2\x3a\x5d\xb9\x8b\x8e\x5b\x82\x7a\x47\x40\x29\x9a\xdd\xa2\x34\xbb\x11\x29\x50\xec\xf3\xc9\x37\x04\x94\x2e\x4e\x3f\xd9\x4f\xc3\xaf\x7b\x21\xba\x0f\xcb\xbc\x09\x0c\xf6\x4d\x45\x67\xf6\xc3\x13\xcd\x75\xe2\x9d\xad\x7b\xb2\x18\xe1\x6b\x96\x2f\x96\x01\xf0\x4e\xe9\xb0\x80\x77\xc0\x3b\xe0\x9d\x41\xf1\x4e\xfb\x8d\xb0\x21\xe8\x29\xd8\x09\x27\xe9\x0f\x00\xf7\xe0\x14\x58\x9e\x53\x00\xdc\xd3\xe5\xbc\x01\xf7\xe0\x06\xc2\x8e\x02\xf7\x0c\x85\x7b\x5e\xe2\xf5\x68\x08\x7e\xe6\xa2\xee\x81\x7f\xd0\xf4\x16\xa5\xe9\x8d\x48\xa1\x62\xdf\x4f\xbe\x01\xff\x2c\x4e\x5f\x99\x23\xfe\xd1\xe5\x15\x63\xda\x63\x39\x32\xc8\xbe\x3a\xdd\x43\x9e\xa8\x14\xb7\xbb\xb6\xbf\xd9\xeb\xbd\x74\xd2\x65\x3d\x65\x52\x7c\x3f\x7a\xfa\x77\xe1\x0d\xad\x52\x99\xe7\x3f\x26\x39\xeb\x57\xfa\x44\x57\x87\x4e\x2c\x99\xd6\x1a\x89\x92\x24\x6c\x37\xd8\x29\x99\x71\x6f\xe6\x55\xa8\xef\x85\xfe\xb2\xf4\x2d\xfc\x92\x2b\x61\x48\xbd\xcd\xb1\x26\xd7\xea\x72\xb1\xef\xbf\x29\x77\xe9\x55\x37\xf5\x38\x0e\x53\x7a\x53\xbf\x32\x67\x06\x56\xf4\x3a\x9b\x71\xaf\xb3\x7a\x1a\x55\xd7\xe7\xac\xd2\xdd\xd5\x01\x69\xa3\xbb\x19\xdd\xcd\xe8\x6e\x46\x77\xb3\xb9\x75\x37\xab\x5f\x79\x0b\x3b\x9b\xf5\x1c\xd7\x70\xb6\x7e\x66\xf5\x8f\x5f\xde\xcb\x6c\xcc\x32\x38\xa5\x83\x59\xbd\x0c\xca\xbb\x97\xf5\x2c\x03\x7a\x96\xd1\xb3\x8c\x9e\x65\xf4\x2c\xa3\x67\x59\x6f\x3d\xcb\x1a\xac\xfe\x47\xfd\xca\x2a\x2b\x5a\x2e\x28\xac\xb1\xd9\xd3\xcc\xb8\xe7\x5a\xbd\xb8\xab\xfa\xad\x9d\x57\xee\x74\x59\xeb\x65\x44\x8f\x3b\xac\xf5\x3c\xac\x83\xf6\x55\xab\x17\x4f\x45\x4f\xb5\xbe\x97\xcd\xb1\x76\x52\xab\x17\x5a\x01\xd1\x68\xed\xcf\x8b\x3e\xfd\xf9\x62\x4a\x56\x50\xaf\xbe\x27\x58\x96\x26\x64\x6e\xbc\xe7\x7b\x8f\xe2\xab\xed\xae\xbb\x27\x65\x6f\x0e\x6a\xbe\x36\x65\x22\x95\x30\xb4\x14\x0e\xf6\xcb\x55\xc6\xee\x4d\x9d\xfb\x65\x9c\x0d\xc6\x06\x63\x9b\x1a\x63\x83\xaf\xc1\xd7\xe0\x6b\xf0\x35\xf8\x1a\x7c\x0d\xbe\x06\x5f\x83\xaf\xc1\xd7\xe0\x6b\xf0\x35\xf8\x1a\x7c\x0d\xbe\x06\x5f\x9b\x1e\x5f\x2b\x28\xfe\x52\xe0\x72\x98\x52\x05\x18\x88\x21\xc4\x10\x62\x38\x8d\x11\x85\x18\x66\xc5\x03\x31\x9c\x3c\x31\x1c\x53\x4a\xdd\xb0\xd9\x74\xbf\xd8\xc1\xee\x83\xe7\xdf\x39\x4e\x52\x9f\x00\xe8\x07\xf4\x9b\x1c\xf4\x1b\x26\xb1\x0e\xe6\x07\xf3\x83\xf9\xc1\xfc\x60\x7e\x30\x3f\x98\x1f\xcc\xaf\xcb\xd5\x16\xe6\x07\xf3\x83\xf9\xc1\xfc\x60\x7e\x30\x3f\x98\xdf\xe2\x98\x1f\x84\x0c\x42\x06\x21\x9b\xc6\x88\x42\xc8\xb2\xe2\x81\x90\x4d\x97\x90\xd5\xb5\x1f\x5b\x3c\x38\x3b\xaa\xe3\x4d\x2d\x4a\x90\x19\xc8\x0c\x64\x06\x32\x03\x99\x81\xcc\x40\x66\x20\x33\x90\x19\xc8\x0c\x64\x06\x32\x03\x99\x81\xcc\x40\x66\x20\x33\x90\x19\xc8\xec\x0c\xbe\x5f\xda\x8a\xc3\x0a\x61\x85\xb0\xc2\x51\x8f\x28\xac\x30\x2b\x1e\x58\xe1\x7c\x59\xe1\xb8\x2a\x72\x4e\xb2\x18\xe7\x11\x6d\x84\x34\x42\x1a\xa7\x46\x1a\xa1\x8c\x50\x46\x28\x23\x94\x11\xca\x08\x65\x84\x32\x42\x19\xa1\x8c\x50\x46\x28\x23\x94\x11\xca\x08\x65\x84\x32\x42\x19\x27\x45\x19\x0b\x8a\x71\x9e\x8e\x0f\xc7\x42\x0e\x41\xa6\x20\x53\x90\x29\xc8\x74\xd4\x23\x0a\x32\xcd\x8a\x07\x64\x3a\x62\x64\xea\xad\x55\x0c\x4b\x5b\x71\xcf\xbe\xd9\x5d\x21\xbc\xc9\x8d\xf2\x46\xed\x84\xed\x3e\x7a\xfe\x53\x32\xab\xa5\x30\x24\xa6\x9c\x5f\x6e\xd4\xee\x37\x6f\xad\xee\xee\x3f\xfe\x77\xfe\x97\x43\x71\xca\xc9\xe2\xc3\x44\x88\x53\x87\x87\xde\x5a\xa5\x7e\x7d\x91\xbe\x62\xf9\x7b\xf3\xed\x76\xda\xaf\x4e\xc6\xb6\x37\x6b\x61\xfd\x7b\xf3\xcf\xdb\xbb\xfb\x8f\x7f\x14\xfd\x9e\xb7\xe7\xf4\xb7\x27\x16\xa4\xce\xcd\x9e\xc1\x4b\xf4\xbf\xdf\x6e\x5b\xbd\x47\xfe\xde\x0d\xb5\x85\xa8\x43\x6e\xfa\xad\x32\xee\x91\x6e\x63\x71\xcc\x39\x85\xe5\x39\x8e\xb2\xe2\x9d\xe3\x0f\x73\x0b\x47\xed\x64\x73\xaf\x81\x39\xd6\xbc\x09\xef\x92\x13\x94\x1d\x5c\xc2\xe8\x45\x7e\xf8\x8c\x5a\xf0\xe0\xad\x9f\xf3\x33\x2f\xd6\x0b\x8a\xbe\xeb\x65\x56\xfe\xac\x1f\xf0\x77\x2d\xac\xa0\xe1\x9c\xac\x9e\x8c\x60\x5f\xb0\x2f\xd8\x17\xec\x3b\x37\xec\x5b\x61\xce\xd5\xa1\xdf\x6a\xd7\x40\xb5\x59\x77\xd2\xda\xfb\xaf\x50\x70\x91\xc3\xfb\x8d\xae\x58\x63\x85\x33\xca\xcc\x83\xcc\xb3\xa5\x43\xac\x1e\x94\xd8\x86\xd2\x0a\x76\x6a\xbd\x12\x77\xae\xb0\x5d\xb3\xb2\x78\xbe\xd8\xbb\xc9\xe2\xb4\x16\x6b\xff\xf9\x8f\xbd\x2b\xd6\xb6\x1f\xee\x83\xdf\x54\x32\xe3\xc3\xe5\x53\xe3\x89\xe8\x95\x8f\xe7\x46\x24\x60\xf1\xb8\xf7\xf5\x5b\xb6\xf5\x3d\x4b\x05\x9a\x23\x44\x3e\x89\x68\x96\xad\xc4\x3f\xf5\x15\xf5\x68\xe9\xb9\xf3\xa3\xb8\x16\x77\x8e\xf3\xa3\xa6\x04\xeb\x70\x95\xde\xbb\xe1\xc0\x87\xd6\x7d\x3c\x25\xa3\xd3\xa9\x75\x8b\x81\x32\xcf\x32\xcc\x30\x9d\x8d\xd5\x37\x13\x45\x39\xaf\x3f\x9b\x44\xfe\x91\x76\x57\xd9\xae\x08\x8c\x17\x49\x3c\xa8\x47\x13\x54\x98\x70\x9d\x83\x2a\x11\xad\x5e\x7a\xea\xec\x95\xd9\x1c\x1e\x94\x70\x3d\xf7\xda\x55\x1b\xa9\x27\x68\xe4\x70\x5a\x89\x7f\x24\x1b\xb6\x61\xbc\xc9\xab\x11\x69\x87\xf6\xd3\x93\x5a\xdb\x72\xa7\x9c\xe7\x43\xb4\xdf\x61\xcb\xb5\x9d\x37\x91\x43\x49\x0b\x5d\x6c\x7c\x69\xe9\xb7\xc6\xf6\xd6\x89\x42\x70\xd8\xb4\x75\x28\x65\x3c\x4b\xf7\x41\x78\x93\xe9\xe1\x92\xe1\x91\xf1\x03\x45\x17\x79\x34\x6b\x60\x7c\x8a\x95\xb9\xcf\x27\x25\xdd\xc2\x7b\x6c\x31\xcc\xfa\x9e\xef\xf5\x2d\x17\x39\xe9\x6a\xdc\x74\x63\x99\xfe\xa7\x84\x69\x34\x93\x4b\x79\xa8\xc6\xd9\xa6\x3f\x41\x1b\x04\x6d\x10\xb4\x41\xd0\x06\x41\x1b\xbd\x05\x6d\x34\xdc\x0b\x8e\x02\x37\xce\xb7\x2d\xfe\x9c\xca\x03\xdb\x3a\x4a\x06\x2a\x59\x82\xee\x7d\x6f\x2b\x37\x5a\x3b\xba\xf7\x1c\xdb\x7a\xce\xa4\x08\xc4\x93\xee\x90\x48\x16\x4e\xbb\xdb\xd5\x7f\xad\xc4\x27\xb3\x9e\x19\xd5\x65\xab\xdc\xf0\x65\x39\xec\xa9\x4a\x78\xfe\xf6\x8b\x74\xe3\x94\x05\x7f\xaf\x6e\x1e\xa5\x13\xdb\xca\x9f\x2f\xcd\xd7\x9f\x2f\xc5\xa3\xed\x4a\xc7\xfe\xbf\x78\x23\x79\x50\x42\xae\x35\x03\xf6\x6e\x0c\x1f\x5b\x1f\xcc\x30\x73\xfa\xab\xe0\x70\x90\xb1\x4f\x57\xe2\xbd\xad\x17\xc7\xd4\xad\x7b\xfe\xf1\xb3\x1d\x88\xff\xce\x98\xc7\xda\x46\xf1\x76\x5f\xda\x0c\xa8\x79\x82\x9f\xe3\x67\x2f\x55\x79\x8a\x68\x5b\xb7\x86\x99\x7e\xf4\xf0\x85\xfd\xe2\x7d\x17\x1b\xe9\x3f\xc8\x4d\xc6\x29\x99\x18\x35\xca\x7f\xf4\xfc\xa7\x70\x4c\x0a\xe5\xf5\x7b\xee\x89\xca\xc5\xa5\x95\xde\x58\x63\xdd\x1a\xd9\xda\xa1\x36\x69\xd9\xeb\x83\x29\xac\x75\x05\xed\x9c\x48\xc6\x38\xd0\xa4\x4d\x7f\x1b\x6b\x03\xab\xd4\x60\xc6\xfb\x48\x82\xdc\x93\xf4\x9b\xec\xc5\x56\xe2\xce\xb2\xd4\x76\xa7\xf7\xa6\xb4\x65\x77\x65\x9e\xe1\x4a\x5c\x47\x13\x30\x3b\x41\x83\x9f\xc4\xd5\xdf\xa4\xf5\x75\xe3\x7b\x7b\x77\x1d\xfe\x4a\xa7\xb2\xe8\x1f\xe5\x04\x67\x54\xc8\x48\x3f\xce\x9e\x24\x7e\x82\x87\xe4\x4c\x3f\x89\xab\x0f\x9e\xaf\x52\xa7\x15\x96\x0c\x2c\xb9\x0e\x9f\x3e\x92\x8f\xc9\x74\xd2\xe7\x0b\x8c\xe9\x79\x74\xc2\xc7\xe4\x1c\x6d\x26\xe4\x36\x3f\xdd\x87\xd1\x38\x67\x1c\x9b\xd3\x6c\x1c\xaa\xe2\x73\x86\x1a\x05\x22\x75\x7a\x1b\xdf\xe3\x68\x9d\xf3\xf9\x36\x86\x8c\xdb\x69\x26\xac\x8a\xd8\x9d\x97\xea\x3f\x85\x84\x0e\x78\x7c\x22\xa6\xfb\xb4\x93\xbb\x7d\x53\x3e\x37\x21\x66\x9c\x3a\xa0\x24\x55\xdb\xec\xc5\x07\x3d\xa9\x93\xac\xed\x03\x8e\x2e\xce\xd7\x2e\x01\xbc\xf9\xa4\xed\xaa\x7c\xed\xce\x4b\x4a\x18\xd7\x98\x1f\x99\xd3\xb1\x0e\x1f\x57\x93\x68\xc8\xb3\xc3\x93\x18\x9a\xfd\x52\x86\x4d\xae\xf9\x72\x72\xcd\x9b\x6d\x22\x75\xf9\xe6\xe7\xb3\xb6\x08\x41\x20\x04\x81\x10\x04\x42\x10\x08\x41\x28\x5a\x7c\x61\xdb\x13\x92\x08\xb8\x13\xdc\x09\xee\x04\x77\x82\x3b\xc1\x9d\xf3\xc2\x9d\x10\x08\x08\x04\x04\x02\x02\xd1\x3b\x81\x38\x81\xd2\x8f\x34\x8f\xb8\x99\x08\x8f\x73\x89\x5f\xea\x71\x1b\x15\xbb\x29\x3d\x60\x59\xe5\x7d\x57\x1a\x5e\x7c\xbb\x5d\xa5\x1d\xf8\xf3\x4c\x28\xac\x87\x43\x9d\x35\x0b\x3d\x03\x10\x6a\x51\xc0\x77\x2a\xe5\x60\x2e\x72\x03\x76\xb9\xf5\x82\x8e\xe9\x97\xb1\x54\x84\x6c\x0a\xba\xcc\xef\xbb\x41\x5d\xed\xd2\x35\x2b\xaa\x08\x75\xbf\x00\x74\x92\xb9\x49\xf6\x50\x7a\xbc\x47\x9b\x3d\xa4\x5d\x0f\xbf\x4a\x57\x6e\x94\x6f\x9c\x68\xa6\x50\x56\x10\x78\x96\xad\xad\xc2\xc4\x5d\x25\xb5\xd7\xd1\xf3\x85\x72\x77\xa1\x9a\x16\x9b\xc9\x4f\xf2\x6b\x28\xc5\xdd\x17\x15\xa8\x58\xd7\x49\xe7\xc8\xc4\xb9\x34\x5a\xd7\xd3\xae\x29\xcf\x17\xb7\x6f\x7f\x08\x7f\xeb\x4b\x4b\xb3\x28\xc7\x73\x37\x46\xb3\xd1\xee\xa3\xd0\xce\x97\xb6\x6b\x96\x23\xed\x9e\x39\xfc\x56\xfb\xe7\x23\x52\x26\x1e\x9e\x13\xe5\x7d\xe3\x39\xd2\xdd\xac\x3c\x7f\x73\xb3\xfd\xba\xb9\xd9\xbb\xb6\xe5\xad\xd5\xcd\x5f\x3e\x06\xf7\xe1\x59\x5a\xfb\x7b\x23\xe1\x74\x39\x3c\xa3\x52\x85\x26\xa8\xa1\x34\xd5\x4e\xde\x36\xd0\x4e\xde\x19\xaf\xd5\x68\xee\xf8\x6d\xed\x1d\x9b\x38\xd8\xd1\xdc\xf2\x9c\x54\x40\xad\x6a\x8c\x5b\x05\xbc\x10\xa7\x15\xc4\x28\x68\x50\xd3\x63\x5d\x8c\xc6\x2a\x55\xba\x16\x06\x15\x30\xd2\x57\x47\x8f\x9a\xa2\x1e\x45\xce\xf1\x82\x72\x8e\x49\xae\x22\xb9\x8a\xe4\x2a\x92\xab\x30\x01\xcb\xde\xa2\x51\x66\x32\x0c\x63\x5c\x91\x88\x51\x9a\x88\x31\x72\x53\x2b\xf1\x40\x77\x9e\x7e\xe1\x2b\xb9\xce\x69\x5c\x0d\xed\xa6\xf0\xc8\x5e\x72\x2e\x52\xfa\x87\xfa\xb7\x8e\xa4\x7a\x08\x3f\x49\x6b\xb7\x12\xe2\x7d\xf8\x7f\xfc\xf7\x27\x69\x6b\xef\x5c\x20\x2c\x67\x1f\xec\x94\x7f\xd8\x55\x4c\xc8\xa5\x70\xec\xaf\x4a\x5c\x25\x7d\x3d\xaf\x42\xe5\x31\x56\x78\x56\xe2\xde\x91\xae\xab\x8c\xd6\xa9\x55\x12\xe9\x18\x2d\xe8\xf6\x87\x36\xcb\xb4\xbe\xc7\x81\x94\x85\x44\x68\x89\xae\xfd\x10\x8b\x2f\x7c\x52\xf1\xde\x48\x2c\xdc\x20\xb6\x41\x2c\x9d\x28\xd8\x68\x1f\x28\x5f\x47\x09\x1d\xd4\xe6\xe7\x9e\x05\x15\xde\xcc\x7c\x99\xee\xb8\x77\x31\x7c\x6c\x87\xf2\xc1\x53\x59\xf7\x5b\x50\xd6\x74\xeb\x94\xf2\x3b\x98\x52\xff\x94\xe9\x72\x63\x1d\x80\xd1\xaa\xac\xf6\xb5\x3e\xf6\xaf\xd5\xab\xd4\x93\xf2\x37\xaa\xd1\x2f\x83\x9d\x2f\x77\x6a\x63\x5b\xd7\xcd\x8f\x09\x3f\x3f\x47\xbf\xd4\xeb\x61\x13\xbd\x62\x2b\xfd\x9d\xad\xf3\xa3\x4c\xb0\x50\x3b\x1d\x43\x5f\x74\x8e\xb4\xbb\x42\x15\xbf\xcf\x46\xeb\x08\x1c\xb6\x33\x77\xd8\x2e\x07\x7c\xe7\x72\x0c\xe2\x97\xcb\xe4\xc1\x84\xab\xcc\x21\xb7\xfa\x55\xc9\x0a\xf4\x5a\xbb\xab\x4c\xf2\xab\x74\xf4\x91\xae\xe7\x5e\x9b\xa3\xf5\x2f\xb4\xc7\x38\x10\xaf\xfe\x1e\x78\xee\xbd\x49\x31\xfe\x35\x5c\xeb\xa2\xcf\x9f\xe2\x15\xf0\xf0\xc7\xd7\x63\x22\xf2\xcd\xe7\xcd\x07\xcf\xb7\xb4\x4b\x7d\xe3\xe9\xc1\xf7\xc4\xe7\xcb\xc7\xf0\x6f\x9f\x2f\xc5\x5d\x46\x9a\x3a\x82\xd9\xf8\xbf\xb5\xae\x1f\xbd\xa8\xd7\xd2\xd2\x03\xa0\x93\x54\x1d\xdb\x8a\x3c\x7a\xda\x34\xf0\xbe\x47\x63\x6b\x92\x38\xb7\xca\xdb\x3a\x6a\x25\xcc\x35\x75\x6e\x7a\x3c\xa7\x74\x1c\x71\xe1\x40\x24\x97\x6f\x23\xde\xf0\x42\x58\x08\xe6\x0b\x2c\x84\xa1\x28\x7c\x2e\xee\x76\xdc\x36\xc2\xbe\x73\xdf\xd0\xd6\x91\x56\x4b\xd5\x2d\x3a\x78\x8e\xca\x1b\xa1\x8a\x68\x6c\x0b\xd1\xd8\x46\xa4\x18\xb1\x7f\x27\xdf\x10\xaa\x38\x5f\x8d\x63\x3f\x76\x9f\xe4\x85\xa8\x0b\xfb\xd3\xf9\x46\x15\xdd\xb0\x3a\x87\x58\x51\x6e\xba\xbb\xb6\xbf\xd9\xeb\xbd\x74\xd2\x79\x6e\x32\xa9\x46\x91\x7e\xe4\x55\x2a\xf0\xe5\xc7\x24\x64\xe6\x4a\x9f\xe8\xea\x50\x9a\x28\x53\x6b\x26\x51\x70\x84\xed\x06\x3b\x25\x33\x3e\xc6\xbc\xfa\xf3\xbd\xd8\x73\xf5\x4b\x2e\xb3\x87\xac\xb3\xb1\x02\x7d\x9d\x34\xf9\xfe\x9b\x72\x17\x99\x81\xa6\x07\x6f\xe6\x69\x68\xd4\xf6\x9b\x71\x6d\xbf\x7a\xe2\x53\x57\xd7\xaf\x7d\xc7\xe2\x66\x34\x8b\x6a\x7e\x54\xf3\xa3\x9a\x1f\xd5\xfc\xe6\x56\xcd\xaf\x7e\xe5\x2d\xac\xe4\xd7\x73\xec\xc0\xd9\xea\xf7\xd5\x3f\x7e\x79\xed\xbe\x31\xcb\xe0\x94\x8a\x7d\xf5\x32\x28\xaf\xd6\xd7\xb3\x0c\xa8\xd1\x47\x8d\x3e\x6a\xf4\x51\xa3\x8f\x1a\x7d\xbd\xd5\xe8\x6b\xb0\xfa\x1f\xd5\xe7\xab\xcc\x97\x5b\x50\xe8\x60\xb3\xa7\x99\x71\x8d\xc1\x7a\x71\x57\xd5\x17\x3c\xaf\xdc\xa9\x2a\xd8\xcb\x88\x1e\x57\x14\xec\x79\x58\x07\xad\x23\x58\x2f\x9e\x8a\x1a\x82\x7d\x2f\x9b\x63\xad\x1c\x58\x2f\xb4\x02\x76\xd1\xda\x9f\x17\x7d\xfa\xb3\x1d\xf9\x2a\x28\x7b\xd1\x13\x00\x4b\x53\x2f\x37\xde\xe8\x8b\x3a\xe9\x74\x42\xbf\xde\x1c\x74\x7b\x6d\xbf\x44\x7a\x60\x68\x1e\x1c\x8c\x96\xab\x8c\xb1\x9b\x3a\x77\x0b\x76\x06\x37\x83\x9b\x4d\x82\x9b\xc1\xcc\x60\x66\x30\x33\x98\x19\xcc\x0c\x66\x06\x33\x83\x99\xc1\xcc\x60\x66\x30\x33\x98\x19\xcc\x0c\x66\x06\x33\x83\x99\x4d\x84\x99\x51\x40\xe4\x94\xf1\x81\x02\x42\x01\xa1\x80\x50\x40\x28\xe0\xd2\x29\xe0\x83\xda\xc9\xdb\x9b\x56\xbc\x6f\x90\xb4\xd5\xdc\x68\x6f\xd4\x2e\xab\xb4\x9b\x81\xad\xe0\x75\x1b\xb5\x33\xb4\x4e\x3f\xf9\xdd\xfd\xc7\x3f\x8a\x0e\x22\x55\xf7\x44\x92\x96\x12\xe4\x8c\x1a\xa1\xe9\x39\x92\x3a\xea\x22\x7d\xe5\xfa\xd7\xaa\x3c\xab\xb4\xc7\x5e\x12\xa9\x8a\xdb\xb9\x3c\xd2\x8a\xb7\x22\xdd\x57\x42\xdf\xfb\xbb\xe4\x2c\xb4\x99\x48\x5f\x1d\xc6\x03\xe3\x81\xf1\xc0\x78\x66\xce\x78\x9a\x55\x4f\x29\xe4\x3c\x67\x2b\x6c\x43\xfd\xa1\xc6\x03\x35\x64\xfd\xa1\xb3\x81\xb9\x13\x2a\xfe\x14\x82\x29\x9a\x1e\xd1\xf4\x68\x64\xd3\xff\x14\x26\xdb\x4c\x2e\xe5\x5c\xf6\x6c\xd3\x1f\x42\x0b\xa1\x85\xd0\x42\x68\x21\xb4\xbd\x11\xda\x86\x7b\xc1\x11\xa5\xa5\x17\x20\xbd\x00\xe9\x05\x48\x2f\xc0\x49\xf4\x02\x6c\x3e\x21\x67\x1c\x7c\xd0\x6c\x1c\xaa\x02\x10\x86\x1a\x05\x42\x11\x7a\x1b\xdf\xe3\x70\x84\xf3\xf9\x36\x86\x0c\x4c\x68\x26\xac\x8a\xe0\x84\x97\xea\x3f\x85\x98\x0e\x96\xbc\xe4\xfe\x9e\x79\x84\x9c\x3a\xaa\xb2\xc9\xe7\x41\x59\x1a\x53\x86\x66\xee\x69\xce\xd0\xf3\xd3\x38\xc9\xfc\xc8\xb0\x8e\xb5\xf9\xa2\x44\xf1\x0a\xbc\x1d\x9e\x24\x05\xb7\x3b\xee\x01\x4a\x9e\xe9\x8c\xf3\x4c\x9b\xed\x29\x75\xb9\xa6\xe7\x33\xbe\x88\x48\x20\x22\x81\x88\x04\x22\x12\x88\x48\x28\x5a\x7c\x41\xdd\x13\x92\x08\xf4\x13\xfa\x09\xfd\x84\x7e\x42\x3f\xa1\x9f\xf3\xa2\x9f\x00\x09\x80\x04\x40\x02\x20\xd1\x3b\x90\x38\x01\xda\x8f\x34\x6f\xb2\x99\x08\x8f\x73\x27\x67\xd5\x81\xbb\xf4\x80\x65\x55\xf2\x8c\x1b\x6f\x6a\x27\xfe\xea\xa8\x55\xe1\x52\x81\xd1\xd8\x5a\xdf\xd5\x42\xa2\x16\xb5\x3c\xa7\x52\x0d\xe3\x22\x37\x6a\x97\x5b\x2f\xe8\x98\x88\x19\xc3\x45\xc8\xa6\xf0\xcb\xfc\xbe\x43\xfc\x35\xce\x06\xe7\xc7\x8b\x02\x5d\xce\x97\x93\x65\x44\x97\x73\xba\x9c\x17\xdc\xcc\x04\x54\x97\x49\xb4\x3a\x7f\xc9\x6d\xbf\xad\xbd\x6d\x13\x39\x3b\xae\xfb\x9e\x9d\x96\xa8\x15\x91\x09\x68\x89\x17\xa2\x45\x6d\x8d\x82\xbe\x15\x3d\x96\xd8\x68\xac\x7a\x1d\x95\xd5\xa0\x98\x46\xfa\xea\xa8\x5a\x53\x54\xb5\x48\x5f\x5e\x50\xfa\x32\x79\x5a\xe4\x69\x91\xa7\x45\x9e\x16\x56\x62\xd9\x5b\x34\xca\xa4\x88\x61\xac\x2e\x72\x3a\xaa\x73\x3a\xa6\x60\x7e\x25\x8e\xeb\xce\x33\x39\x7c\x25\xd7\x39\xdd\xab\xa1\x19\x15\x1e\xd9\x5f\xfa\x46\x4a\x1d\x51\xff\xd6\x41\x59\x0f\xe1\x27\x69\xed\x56\x42\xbc\x0f\xff\x8f\xff\xfe\x24\x6d\xed\xcf\x0b\x84\xe5\xec\x83\x9d\xf2\x0f\x9b\x8c\x89\xde\x14\x8e\xfd\x55\x89\xab\xdf\xe4\x93\x0a\xb6\xd2\x52\x57\xa1\x2e\x19\xeb\x3f\x2b\x71\xef\x48\xd7\x55\x46\x09\xd5\x1a\x8a\x74\x8c\x52\x74\xfb\x43\x9b\x55\x5b\xdf\xe3\x40\xba\x43\x22\xb4\x44\xf5\x7e\x88\xc5\x17\x3e\xa9\x78\x6f\x24\x16\xee\x17\xdb\x20\x96\x4e\x14\xb7\xb4\x0f\x94\xaf\x03\x8e\x0e\x5a\xf4\x73\xcf\x82\x0a\x6f\x66\xbe\x78\x78\xdc\x9b\x1a\xbe\xb8\xa3\xed\x60\xa3\x26\xe1\x8a\x7b\x09\xb0\xa5\x21\xc3\xd1\x63\x0e\x86\xa0\x75\x68\x47\xab\x9a\xde\xd7\xfa\xd8\xbf\x56\x2f\x5a\x4f\xca\xdf\xa8\x46\xbf\x0c\x76\xbe\xdc\xa9\x8d\x6d\x5d\x37\x3f\x26\xfc\xfc\x1c\xfd\x52\x2f\x8f\x4d\x74\x8d\xad\xf4\x77\xb6\xce\xbc\x32\x61\x48\xed\xf4\x8e\xed\xa1\xb7\xef\x0c\xc1\x79\x85\xb6\x7e\x9f\x0d\x06\x12\xf8\x74\x67\xee\xd3\x5d\x0e\x3e\xcf\xa5\x30\xc4\x2f\x97\x49\xb3\x09\x97\x9a\x43\xea\xf6\xab\x92\x65\xe8\xb5\xf6\x68\x99\xdc\x5a\xe9\xe8\x23\x5d\xcf\xbd\x36\x47\xeb\x5f\x68\xa7\x72\x20\x5e\xfd\x3d\xf0\xdc\x7b\x93\xc1\xfc\x6b\xb8\xe0\x45\x9f\x3f\xc5\xcb\xe0\xe1\x8f\xaf\xc7\xc4\xf5\x9b\xcf\x9b\x0f\x9e\x6f\x69\xaf\xfb\xc6\xd3\x83\xef\x89\xcf\x97\x8f\xe1\xdf\x3e\x5f\x8a\xbb\x8c\x34\x75\x80\xb4\x71\x91\x6b\xfd\x3f\x7a\x51\xaf\xa5\xa5\x07\x40\xe7\xc0\x3a\xb6\x15\x39\xfd\xb4\xb9\xe0\x7d\x8f\xc6\xd6\xe4\x88\x6e\x95\xb7\x75\xd4\x4a\x98\x6b\xea\xd4\xf7\x78\x4e\xe9\x30\xe5\xc2\x81\x48\x2e\xdf\x46\xbc\xe1\x85\xb0\x1a\xcc\x17\x58\x0d\x83\x5b\x0d\xdb\xb1\xf5\x6b\xaf\xb7\x1b\xf6\x9d\xfb\x90\xb6\x8e\xb4\x5a\xaa\x73\xd1\xc1\xb3\x55\xe8\x88\x84\x44\x95\x5b\x92\x2a\x37\x22\x8d\x89\x8d\x3d\xf9\x86\x48\xc8\x92\xdb\x9e\x9f\x3e\xb2\x9f\x84\x17\xf3\x42\x34\x0a\x28\xd4\x09\x50\x15\x2d\xbb\x3a\xe7\x61\x51\xb2\xbc\xbb\xb6\xbf\xd9\xeb\xbd\x74\xd2\x89\x77\x32\x29\x8f\x91\x7e\xf8\x55\x2a\x9a\xe6\xc7\x24\x0e\xe7\x4a\x9f\xe8\xea\x50\x2b\x29\x53\xfc\x26\xd1\x81\x84\xed\x06\x3b\x25\x33\xae\xc9\xbc\x86\xf4\xbd\xc2\xe1\xf5\x4b\x2e\xcb\x88\x5c\xb8\xb1\x86\x0a\xe8\x54\xce\xf7\xdf\x94\xbb\xdc\x94\x38\x3d\x82\x4b\xc8\x8b\xa3\xf6\xe0\x8c\x6b\x0f\xd6\x73\xa3\xba\xba\x83\xed\x3b\xc8\x36\x63\x62\x54\x1b\xa4\xda\x20\xd5\x06\xa9\x36\x38\xb7\x6a\x83\xf5\x2b\x6f\x61\xa5\xc1\x9e\x23\x10\xce\x56\x5f\xb0\xfe\xf1\xcb\x6b\x0b\x8e\x59\x06\xa7\x54\x14\xac\x97\x41\x79\x35\xc1\x9e\x65\x40\x0d\x41\x6a\x08\x52\x43\x90\x1a\x82\xd4\x10\xec\xad\x86\x60\x83\xd5\xff\xa8\x7e\x60\x65\x4e\xde\x82\x02\x10\x9b\x3d\xcd\x8c\x6b\x20\xd6\x8b\xbb\xaa\xfe\xe1\x79\xe5\x4e\xd5\xc3\x5e\x46\xf4\xb8\xe2\x61\xcf\xc3\x3a\x68\x9d\xc3\x7a\xf1\x54\xd4\x38\xec\x7b\xd9\x1c\x6b\x65\xc3\x7a\xa1\x15\x50\x8c\xd6\xfe\xbc\xe8\xd3\x9f\x2f\xa0\x61\x05\x45\x36\x7a\x82\x62\x69\x12\xe6\xc6\xbb\x7d\x51\xcf\x9f\x4e\x88\xd8\x9b\x83\x82\xaf\x8d\x98\x48\x19\x0c\x6d\x84\x83\xe5\x72\x95\xb1\x78\x53\xe7\x6e\xcb\xd3\x60\x69\xb0\xb4\xe9\xb0\x34\x38\x1a\x1c\x0d\x8e\x06\x47\x83\xa3\xc1\xd1\xe0\x68\x70\x34\x38\x1a\x1c\x0d\x8e\x06\x47\x83\xa3\xc1\xd1\xe0\x68\x70\xb4\x29\x71\x34\x4a\x93\x9c\x32\x3e\x90\x41\xc8\x20\x64\x10\x32\x08\x19\x5c\x1e\x19\x34\xf5\x67\x6f\x5a\x11\xbf\x41\xb2\x5c\x73\x03\xbc\xd1\x35\x83\x1f\x3d\xff\x29\x99\xd0\x52\x18\x1e\x51\x0e\xed\x36\x6a\x67\x8a\xe0\xde\xdd\x7f\xfc\xef\xfc\x6f\xc9\xe9\x3d\x11\xa0\x25\x42\x9c\x38\x3e\x33\xaf\x42\xea\xf7\x17\xe9\x6b\x16\xbe\x36\x31\x4b\x9f\xf4\xeb\x93\x31\x73\xcd\x52\xd8\xe4\xdd\x89\x80\xf7\xdd\xfd\xc7\x3f\x8a\x0e\xe3\x35\x3a\xfd\x35\x8a\x05\x39\x87\x5e\x87\xe6\x0d\x29\xc0\xd1\xcd\xdf\x2a\x37\x2e\xb2\x1b\xc5\xa5\xe8\xcf\xff\xb9\xd9\x7a\xeb\xb5\x1d\xf8\x7b\xfd\x78\x0f\xfb\xf5\x46\xed\x82\x33\xb5\x85\x49\xd5\xcd\xf7\x1e\xc5\xbd\xb7\xfe\x39\xb9\x91\xbf\xe9\x1b\xa9\x78\x71\xcc\x29\x32\xef\xce\xbb\xe4\x74\x49\x3d\xe1\x75\xcd\x49\x69\x23\x03\x4b\x85\xa5\xc2\x52\x61\xa9\x33\x64\xa9\xcd\x2a\x1c\x15\xf2\xd4\xb3\x15\x9f\xa2\x46\x58\xe3\x81\x1a\xb2\x46\xd8\xd9\x00\xf8\x09\x55\xb9\x0a\x01\x30\x4d\xcd\x68\x6a\x36\xb2\xe9\x7f\x4a\xec\x43\x33\xb9\x94\xc7\x3f\x9c\x6d\xfa\x13\x09\x41\x24\x04\x91\x10\x44\x42\x10\x09\xd1\x5b\x24\x44\xc3\xbd\xe0\x28\x1a\x82\x5e\x9f\xf4\xfa\xa4\xd7\x27\xbd\x3e\x27\xd1\xeb\xb3\xf9\x84\x9c\x71\x90\x4f\xb3\x71\xa8\x0a\xf4\x19\x6a\x14\x08\xf9\xe9\x6d\x7c\x8f\xc3\x7e\xce\xe7\xdb\x18\x32\x00\xa8\x99\xb0\x2a\x82\x80\x5e\xaa\xff\x14\x02\x3c\xf8\xf3\x22\xfb\xf7\x96\x62\xe7\xd4\x71\x95\x1d\x7c\x0f\xea\x52\x17\x09\xd1\xdb\xe3\xfd\x37\xc9\x85\xae\x26\xbd\xc3\x77\xf3\x35\x8e\x32\x3f\x32\xae\x63\x8d\x3e\xae\xd1\x70\x1a\xfc\x0e\xcf\x95\x41\xdf\x9d\x03\x6f\xb2\xbd\x97\x93\xed\xdd\x6c\xc7\xa9\xcb\xf8\x3e\x9f\x69\x46\xbc\x02\xf1\x0a\xc4\x2b\x10\xaf\x40\xbc\x42\xd1\xe2\x0b\x08\x9f\x90\x44\x60\xa3\xb0\x51\xd8\x28\x6c\x14\x36\x0a\x1b\x9d\x17\x1b\x05\x57\x80\x2b\xc0\x15\xe0\x8a\xde\x71\xc5\x09\x48\x7f\xa4\xd9\xcb\xcd\x44\x78\x9c\xc1\x3c\xab\xe6\xfa\xa5\x07\x2c\xab\xb2\xee\x2a\x0a\xc4\x88\xfb\xe6\x16\xb8\xf3\x67\x9d\xce\x58\xcf\x95\xba\x6a\x52\x79\x46\x96\xd4\xa2\xbc\x6e\xa4\x42\x9a\x4e\xe4\xee\x5a\x84\x43\x24\x02\xcb\xdb\xaa\x37\x22\xd8\x5b\x5f\xc2\xf5\x48\xaf\xf7\x4a\x3e\x99\xc5\x6a\xeb\x7b\x5a\x65\x2d\x2a\x8c\x50\x5d\x94\x47\x83\xa3\xec\xd7\x54\xe6\xa9\x7b\x9a\xe8\xd3\x9f\x87\x41\xf6\x82\x8e\x89\xa1\x31\xdf\x84\x3c\x11\x0e\x9a\xc3\xfa\xc5\x83\xed\xf2\x61\x2b\x66\x55\xdf\x8b\x66\x27\x89\xb2\x24\x6b\xa5\x47\x7f\xb4\xc9\x5a\xda\x79\xf3\xab\x74\xe5\x46\xf9\xc6\x0d\x69\x96\xd1\x20\xf0\x2c\x5b\xdb\xd5\x89\xc3\x4f\x6a\xbf\xad\xe7\x0b\xe5\xee\x42\x45\x37\x76\x34\x3c\xc9\xaf\xa1\x14\x77\x5f\x54\xa0\x62\x6d\x31\x9d\x92\x14\xa7\x2e\x69\x6d\x59\x3b\xf7\x3c\x5f\xdc\xbe\xfd\x21\xfc\xad\x2f\x2d\x4d\xf3\x1c\xcf\xdd\x18\xdd\x50\x3b\xe0\x2c\xcf\xdd\x49\xdb\x35\x6b\x97\x76\x70\x1d\x7e\xab\x09\x47\xc4\x1a\xc5\xc3\x73\x62\xfe\x6c\x3c\x47\xba\x9b\x95\xe7\x6f\x6e\xb6\x5f\x37\x37\x7b\xd7\xb6\xbc\xb5\xba\xf9\xcb\xc7\xe0\x3e\x3c\x4b\x6b\x8f\x79\x24\x9c\x2e\x87\x67\x54\xca\xe4\xe4\x75\xbc\xa6\xfa\xdd\xdb\x06\xfa\xdd\x3b\xe3\x05\x1c\xe9\xfd\xbf\xad\xbd\x7f\x13\x92\x3c\xd2\x07\x98\xa1\x82\xad\x15\x99\x49\x28\xd8\x17\xa2\xc3\x9a\x27\x05\xcd\x7a\x7a\x2c\x7d\x72\xaa\x52\x57\x50\xee\x64\x24\x4a\xdd\x44\x8a\x9c\xa0\xbb\xa5\x07\x79\xb4\xba\x1b\x69\xe5\x0b\x4a\x2b\x27\x7f\x8e\xfc\x39\xf2\xe7\xc8\x9f\xc3\xec\x2c\x7b\x8b\x46\x99\xac\x32\x8c\xd1\x46\xae\x4d\x5d\xae\xcd\x34\x8c\xb6\xc4\x61\xde\x79\x86\x8d\xaf\xe4\x3a\xa7\x7f\x9d\x66\x64\x85\x27\x38\x6b\x5a\x4d\x4a\x59\x51\xff\xd6\xc1\x72\x0f\xe1\x27\x69\xed\x56\x42\xbc\x0f\xff\x8f\xff\xfe\x24\x6d\xed\x3e\x0c\x84\xe5\xec\x83\x9d\xf2\x0f\x5b\x90\x89\xaa\x15\x8e\xfd\x55\x89\xab\xe4\x8e\xaf\x42\x4d\x33\xd6\x8e\x56\xe2\xde\x91\xae\xab\x8c\x8a\xaa\xf5\x17\xe9\x18\x95\xe9\xf6\x87\x36\x6b\xba\xbe\xc7\x81\x34\x8b\x44\x68\x89\x62\xfe\x10\x8b\x2f\x7c\x52\xf1\xde\x48\x2c\xdc\x4d\xb6\x41\x2c\x9d\x28\x9e\x6c\x1f\x28\x5f\x07\x82\x1d\x74\xec\xe7\x9e\x05\x15\xde\xcc\x7c\xb1\xfd\xb8\xb7\x3c\x1c\x7d\xa2\x62\xd7\xc8\xad\x61\x13\xd8\x32\x5a\x80\xf4\x74\xef\x9a\xda\xbb\x99\x52\x0b\x1b\x22\x04\x26\x17\x21\xa0\xe3\x8f\x5a\x15\xb3\xbf\xd6\xc7\xfe\xb5\x7a\x05\x7f\x52\xfe\x46\x35\xfa\x65\xb0\xf3\xe5\x4e\x6d\x6c\xeb\xba\xf9\x31\xe1\xe7\xe7\xe8\x97\x7a\xaf\x68\xa2\x92\x6d\xa5\xbf\xb3\x75\x7a\xa0\x89\x95\x7b\x91\x7a\xa6\xaf\x3d\x46\x17\x78\x5f\x71\x0d\x15\x26\xcf\x7d\x36\x96\x4d\xe0\x18\x9f\xb9\x63\x7c\x39\x41\x0d\xb9\x0c\x9c\xf8\xe5\x32\x59\x62\xe1\x22\x74\xa8\x3c\xf0\xaa\x64\x81\x7a\xad\xdd\x82\x26\x35\x5c\x3a\xfa\x48\xd7\x73\xaf\xcd\xd1\xfa\x17\xda\x33\x1f\x88\x57\x7f\x0f\x3c\xf7\xde\x24\xe0\xff\x1a\x2e\x85\xd1\xe7\x4f\xf1\x02\x79\xf8\xe3\xeb\x31\x45\x5b\x34\x9f\x37\x1f\x3c\xdf\xd2\xe8\x62\xe3\xe9\xc1\xf7\xc4\xe7\xcb\xc7\xf0\x6f\x9f\x2f\xc5\x5d\x46\x9a\x3a\xbe\xdf\x70\x06\x6d\x26\x45\x2f\xea\xb5\xb4\xf4\x00\xe8\x14\x6e\xc7\xb6\x22\xcf\xa9\xb6\xaa\xbc\xef\xd1\xd8\x9a\x14\xe7\xad\xf2\xb6\x8e\x5a\x09\x73\x4d\x5d\xb9\x21\x9e\x53\x3a\xca\xbe\x70\x20\x92\xcb\xb7\x11\x6f\x78\x21\x8c\x2b\xf3\x05\xc6\xd5\x98\x8c\xab\x6d\x2e\x54\x7d\x12\xe6\xd5\xbe\x73\x8f\xdc\xd6\x91\xd6\xcb\xb4\xbe\xe8\x1c\x4b\xd2\xfb\x88\x67\x45\xf5\x5b\xa4\xea\x37\x22\x0d\x0b\x45\x20\xf9\x86\x78\xd6\x45\x2b\x32\xfb\x89\x78\x89\x2f\x44\xf7\xd1\xa0\x37\x81\x41\xcb\x6d\x1a\x52\x9e\x84\x2d\xcd\x75\xe2\x6d\xee\x3c\x00\x33\xc2\xe6\xac\x6f\xac\x0f\x50\x24\x28\x12\x14\x09\x8a\x34\x11\x8a\xd4\xcd\x6e\x79\x22\x4f\x2a\xd8\x2e\x27\xe9\x5d\x80\x2a\xe1\x5a\x58\x9e\x6b\x01\xaa\xd4\xe5\xbc\x81\x2a\xe1\x4c\xc2\xd8\x8a\xff\x0c\x55\x1a\x84\x2a\x75\xe5\x33\x39\x91\x2f\xcd\x45\x0f\x84\x32\xa1\x0a\x2e\x52\x15\x1c\x91\xc6\x85\x62\x90\x7c\x03\x65\x5a\xb4\x62\x33\x1f\xca\x54\x84\x93\x7a\x05\x48\xbd\x76\x96\x2a\x38\xfc\x83\xe7\xdf\x39\x4e\xa2\x23\x8d\x82\x20\x95\x1e\x40\xf9\x50\xca\x87\x2e\xaf\x7c\x28\xfd\xda\x66\xdc\xaf\xad\x1e\x40\xd5\xf5\x6a\xab\xf4\x66\x75\x00\xd7\xe8\xd0\x46\x87\x36\x3a\xb4\xd1\xa1\x6d\x6e\x1d\xda\xea\x57\xde\xc2\xee\x6c\x3d\x87\x32\x9c\xad\x27\x5b\xfd\xe3\x97\xf7\x63\x1b\xb3\x0c\x4e\xe9\xc2\x56\x2f\x83\xf2\x0e\x6c\x3d\xcb\x80\xbe\x6b\xf4\x5d\xa3\xef\x1a\x7d\xd7\xe8\xbb\xd6\x5b\xdf\xb5\x06\xab\xff\x51\xcf\xb5\xca\x6a\x9a\x0b\x8a\x64\x6c\xf6\x34\x33\xee\x1b\x57\x2f\xee\xaa\x9e\x71\xe7\x95\x3b\x9d\xe2\x7a\x19\xd1\xe3\x2e\x71\x3d\x0f\xeb\xa0\xbd\xe1\xea\xc5\x53\xd1\x17\xae\xef\x65\x73\xac\xdd\xe0\xea\x85\x56\x80\x31\x5a\xfb\xf3\xa2\x4f\x7f\x36\xc2\x5a\x81\xb2\xf6\xbe\xbd\x7b\xd6\xdf\xd8\x19\xda\xd1\x67\xad\xfc\x54\xc9\x60\xef\x51\xdc\xeb\xaa\xd5\xfa\x3e\x8e\xca\xc9\x36\xa8\x9a\xff\x2e\x39\x59\xe5\x89\xa8\x99\x8f\x1b\x17\x37\x2e\x6e\x5c\xdc\xb8\x33\x74\xe3\x36\x8b\xf9\x2a\x74\xe5\x9e\x2d\x1c\x8f\xa8\xc9\xc6\x03\x35\x64\xd4\xe4\xd9\x7c\xef\x27\xc4\x29\x16\xfa\x9e\xe9\xe0\x42\x07\x97\x91\x4d\xff\x53\xb0\x4b\x33\xb9\x94\xa3\x97\xb3\x4d\x7f\x20\x0c\x10\x06\x08\x03\x84\x01\xc2\xf4\x06\x61\x1a\xee\x05\x47\x20\x86\xc6\x66\x34\x36\xa3\xb1\x19\x8d\xcd\x26\xd1\xd8\xac\xf9\x84\x9c\x31\x31\x6d\x36\x0e\x55\xd4\x74\xa8\x51\x80\x9f\xf6\x36\xbe\xc7\x0c\xf5\x7c\xbe\x8d\x21\x69\x6a\x33\x61\x55\x10\xd5\x97\xea\x3f\x85\xc8\x8e\x64\x55\x9a\x15\xb6\x69\x56\x78\x50\x97\xce\x90\x8d\x55\xca\x79\x87\x6f\x5a\x58\x9b\xbc\xd9\x18\x76\x17\xa5\x6e\xbe\x1c\x70\x93\x58\xb6\x9c\xc4\xb2\x66\x3b\x4c\x5d\x72\xd9\xf9\x4c\x31\xe2\x13\x88\x4f\x20\x3e\x81\xf8\x04\xe2\x13\x8a\x16\x5f\xc0\xf7\x84\x24\x02\x0b\x85\x85\xc2\x42\x61\xa1\xb0\x50\x58\xe8\xbc\x58\x28\x78\x02\x3c\x01\x9e\x00\x4f\xf4\x8e\x27\x4e\x40\xf8\x23\x4d\xfd\x6a\x26\xc2\xe3\xf4\xaf\x59\x95\x27\x2f\x3d\x60\xf1\x95\xfc\xb2\xce\x7c\xea\xf8\x9d\xa3\x8e\x5f\x77\xe4\xa8\x45\x15\xbf\xa9\x64\xf6\x5f\xe4\x46\xed\x72\xeb\x05\x1d\x63\x32\x63\xc1\x08\x79\x12\x11\x33\x07\x75\xcf\xc4\x46\x5f\xc7\x3d\xf7\x88\xcd\x56\x09\xf2\x91\x66\x90\x8f\x44\x15\x77\xaa\xb8\x17\xdc\xcc\x74\xd4\x9a\xa9\xd5\x70\x6f\x7b\xf7\x6f\x6b\xef\xde\x44\xdc\x8e\xf2\xf6\x67\xa8\x4f\x6a\x95\x65\x02\xfa\xe4\x85\x68\x51\xa8\x23\xea\x66\x7c\xa6\x7a\x1d\xa7\x29\x69\x05\x35\x3a\xa8\xcc\x81\x36\x36\x0b\x6d\x8c\x5c\xe8\x05\xe5\x42\x93\xf4\x45\xd2\x17\x49\x5f\x24\x7d\x61\x48\x96\xbd\x45\x23\x35\x24\x31\xc5\xc6\x65\x8a\x45\xa6\xc9\x04\x8c\xb1\xc4\xe1\xdd\x79\x5a\x88\xaf\xe4\x3a\xa7\x7d\x9d\x62\x54\x85\x87\xf7\x9e\x0b\x92\x52\x4e\xd4\xbf\x75\x84\xd7\x43\xf8\x49\x5a\xbb\x95\x10\xef\xc3\xff\xe3\xbf\x3f\x49\x5b\x3b\x00\x03\x61\x39\xfb\x60\xa7\xfc\xc3\x96\x13\xf5\x7c\x76\xec\xaf\x4a\x5c\x25\x3d\xc5\xae\x42\xcd\x32\xd6\x86\x56\xe2\xde\x91\xae\x1b\x35\xeb\xd6\xfa\x8a\x74\x8c\x8a\x74\xfb\x43\x9b\x35\x5c\xdf\xe3\x40\x9a\x44\x22\xb4\x44\x11\x7f\x88\xc5\x17\x3e\xa9\x78\x6f\x24\x16\xee\x1e\xdb\x20\x96\x4e\x14\x04\xa5\x1b\x68\x5b\xd2\x4d\xe9\xd4\xcf\x3d\x0b\x2a\xbc\x99\xf9\xb2\xe6\x85\x6c\x71\x33\xdc\x23\x72\x5d\x0c\x47\xbf\x41\xb4\xa0\xbf\x1a\xdc\x44\xde\x93\x9a\x7b\xb1\xe3\xe6\xe0\x5f\x8a\x61\xaf\xfe\x3f\xf3\x4d\x05\x8c\xec\xb9\x22\xf5\x74\xa1\xb6\x8e\x1a\x69\xb4\xcb\xe7\xd7\xad\x6b\x7d\xec\x5f\xab\x97\xb0\x27\xe5\x6f\x54\xa3\x5f\x06\x3b\x5f\xee\xd4\xc6\xb6\xae\x9b\x1f\x13\x7e\x7e\x8e\x7e\xa9\x17\xcb\x26\x5a\xc8\x56\xfa\x3b\x5b\x27\x75\x99\x08\xa7\x17\x68\x24\xfa\xca\x63\xf1\xf2\xf6\x85\xe2\x2b\x7c\xc0\xf7\xd9\x98\x23\x81\xef\x77\xe6\xbe\xdf\xe5\x90\xf8\x5c\xa6\x44\xfc\x72\x99\x6c\x9e\x70\xd9\x39\x64\x88\xbf\x2a\x59\x92\x5e\x6b\xcf\x97\x49\xe1\x95\x8e\x3e\xd2\xf5\xdc\x6b\x73\xb4\xfe\x85\x76\x3e\x07\xe2\xd5\xdf\x03\xcf\xbd\x37\x89\xd2\xbf\x86\x8b\x5f\xf4\xf9\x53\xbc\x24\x1e\xfe\xf8\x7a\x4c\x21\x02\xcd\xe7\xcd\x07\xcf\xb7\xb4\x77\x7e\xe3\xe9\xc1\xf7\xc4\xe7\xcb\xc7\xf0\x6f\x9f\x2f\xc5\x5d\x46\x9a\x3a\x0e\xdb\xb8\xd2\xb5\x65\x10\xbd\xa8\xd7\xd2\xd2\x03\xa0\x53\x6d\x1d\xdb\x8a\x9c\x83\xda\x90\xf0\xbe\x47\x63\x6b\x52\x51\xb7\xca\xdb\x3a\x6a\x25\xcc\x35\x75\x86\x7d\x3c\xa7\x74\x34\x74\xe1\x40\x24\x97\x6f\x23\xde\xf0\x42\xd8\x13\xe6\x0b\xec\x89\xec\x43\x0d\x8a\xff\x73\x01\xc5\x13\xb0\x28\xf6\x9d\xbb\x9c\xb6\x8e\xb4\x5e\xa2\xe3\x45\x67\x98\xbb\x96\x47\xc0\x25\x6a\xde\x02\xd5\xbc\x11\x69\x53\x6c\xfa\xc9\x37\x04\x5c\x36\xba\xfb\x39\xaa\x2c\xfb\x49\xb8\x40\x2f\x44\x5d\xc0\xa2\x4e\xc7\xba\x71\x63\xf6\x13\x45\x2b\xea\xcf\xff\xb9\xd9\x7a\xeb\xb5\x1d\xf8\x7b\x3d\x4a\x0f\xfb\xf5\x46\xed\x32\x7d\xc7\x3a\x27\x6f\x51\x5e\xbf\xbb\xb6\xbf\xd9\xeb\xbd\x74\xd2\x39\x82\x32\xa9\xe4\x71\xef\xad\x7f\x4e\x6e\xeb\x6f\xfa\xb6\x56\xa9\x00\x9e\x1f\x93\xd0\x9f\x2b\x7d\xbe\xab\x43\x75\xa7\x4c\xb9\x9e\x44\x81\x12\xb6\x1b\xec\x94\xcc\x78\x3c\xf3\xea\xd5\xf7\x23\x17\x5a\xc2\xcb\xd6\x05\xf7\xf3\x4b\x2e\x43\x8a\x84\xbe\xb1\x96\x84\xd4\xf9\xa8\xef\xbf\x29\x77\xc9\x09\x7d\x7a\x0c\xcf\x94\xd5\x97\x7f\x55\xce\x4c\x76\x28\xa2\x38\xe3\x22\x8a\xf5\x94\xaa\xae\x80\x62\xfb\x6e\x9e\xcd\x08\x1c\x65\x13\x29\x9b\x48\xd9\x44\xca\x26\xce\xad\x6c\x62\xfd\xca\x5b\x58\x32\xb1\xe7\x78\x87\xb3\x15\x4a\xac\x7f\xfc\xf2\x22\x89\x63\x96\xc1\x29\xa5\x11\xeb\x65\x50\x5e\x16\xb1\x67\x19\x50\x0c\x91\x62\x88\x14\x43\xa4\x18\x22\xc5\x10\x7b\x2b\x86\xd8\x60\xf5\x3f\x2a\x84\x58\x99\x1d\xd8\xc1\xb2\x1f\x3d\xb5\x81\x42\xa1\x3a\xbb\xdf\x7d\x11\x81\xe5\x6d\xd5\x1b\x11\xec\xad\x2f\xe1\xc8\x6b\x7b\x45\xc9\x27\x93\x9a\xb5\xf5\x3d\x2d\xe5\xd3\x43\x3c\xb5\x2b\x90\x38\xcf\x3e\x9e\x66\xc6\x55\x2c\xeb\xc5\x5d\x55\xc1\xf2\xbc\x72\xa7\x6e\x65\x2f\x23\x7a\x5c\xb3\xb2\xe7\x61\x1d\xb4\x52\x65\xbd\x78\x2a\xaa\x54\xf6\xbd\x5f\x8c\xb5\x36\x65\xbd\xd0\x0a\x10\x4e\x6b\x47\x66\xf4\xe9\xcf\x1e\xe0\x61\x41\x2d\x94\x9e\x18\x62\x1a\x1c\xba\xb1\xfa\x93\xea\xec\xd4\x0b\x40\x7c\x73\x30\x7c\xb4\x71\x17\x29\xc9\xa1\xed\x74\xb0\xe8\xae\x32\x9e\x80\xd4\xb9\x3b\xc4\x8f\xa0\x47\xd0\xe3\x94\xd0\x23\xd8\x11\xec\x08\x76\x04\x3b\x82\x1d\xc1\x8e\x60\x47\xb0\x23\xd8\x11\xec\x08\x76\x04\x3b\x82\x1d\xc1\x8e\x60\x47\xb0\xe3\xb4\xb0\x63\xae\x78\x4c\xb5\xe7\x61\x4a\xe5\x63\xe0\xa9\xf0\x54\x78\x2a\x3c\x75\xd4\x23\x0a\x4f\xcd\x8a\x07\x9e\x3a\x31\x9e\x4a\xd6\x65\x05\xf6\x2c\xc9\xb5\xfc\xe0\xf9\x77\x8e\x93\x30\xd1\x00\x00\x0a\x00\x9d\x12\x00\x25\xf7\x12\x08\x0a\x04\x05\x82\x02\x41\x81\xa0\x40\x50\x20\x28\x10\x14\x08\x0a\x04\x05\x82\x02\x41\x81\xa0\x40\x50\x20\xe8\xf4\x20\x28\xc8\x0c\x64\x06\x32\x9b\xc6\x88\x82\xcc\xb2\xe2\x01\x99\x4d\x0f\x99\xe5\xdb\xae\x8f\x83\x98\x65\x2b\xb8\x0e\xc3\xcb\xb2\xf7\x40\x65\x52\xe8\x18\x74\xec\xf0\xe5\x58\x3a\xce\xc1\xc6\x60\x63\xb0\x31\xd8\x18\x6c\x0c\x36\x06\x1b\x83\x8d\xc1\xc6\x60\x63\xb0\x31\xd8\x18\x6c\x0c\x36\x06\x1b\x83\x8d\x35\x7d\x1a\xd8\x18\x6c\x0c\x36\x06\x1b\x83\x8d\xc1\xc6\xca\xd8\xd8\x78\xca\x70\xf6\xc0\xc7\xce\x59\x84\xb3\xba\xc1\x32\x64\x0d\xb2\x36\x72\xb2\x06\x55\x83\xaa\x41\xd5\xa0\x6a\x50\x35\xa8\x1a\x54\x0d\xaa\x06\x55\x83\xaa\x41\xd5\xa0\x6a\x50\x35\xa8\x1a\x54\x0d\xaa\x36\x25\xaa\x96\x2b\xbb\x59\xe5\x77\x98\x52\xd1\x4d\x60\x21\xb0\x10\x58\x38\x8d\x11\x05\x16\x66\xc5\x03\x2c\x1c\x2f\x2c\xf4\x1f\xa4\xb5\x8a\x89\x85\x7e\x04\x4d\x4e\x6c\xef\xa6\x15\x17\xec\x9b\x6a\x35\x61\x8e\x1b\xb5\x13\xb6\xfb\xe8\xf9\x4f\xc9\x1c\x97\xc2\x70\x8a\x72\xaa\xb7\x51\xbb\x3f\x1e\xa4\x75\x97\x96\xc4\xdd\xfd\xc7\xff\xce\x1f\x36\x14\xce\x9b\x2c\x65\x4b\x84\x38\x71\xc6\xe6\xe7\x67\x47\xea\xd0\x8b\xf4\xe5\x9b\xbe\x5f\xdf\x6e\xa7\xfd\x8a\x65\x4c\x64\xb3\x82\x9e\xf8\x7e\xfd\xf3\xf6\xee\xfe\xe3\x1f\x45\x07\xf3\x96\x9d\xfe\x96\xc5\x82\xd4\xa9\xbd\x73\x7b\xd9\xfe\xf7\xdb\x6d\x07\xef\x9b\xe5\xec\x83\x9d\xf2\x7d\xcf\x51\x0f\xb6\xbb\xb6\xdd\x4d\x26\x41\xdc\xb8\x24\xba\x0d\x80\x31\xe7\x14\x96\xe7\x38\xca\x8a\xb7\xa3\x77\xe6\x3e\xfe\xf0\x1c\xf5\x37\x73\x1f\x15\x6f\x8e\x39\x43\xc1\xcb\xf3\x2e\x39\x67\xf5\xf9\x4a\x80\xb9\xc8\x8f\xbb\x51\x49\x1e\xbc\xf5\x73\x7e\xca\xc6\x3a\x49\xd1\x77\xbd\x4c\xe7\x9f\xf5\x33\xff\xae\xa5\x18\x34\x9c\xcc\xd5\xb3\x18\x06\x0b\x83\x85\xc1\xc2\x60\xe7\xc6\x60\x2b\x4c\xc9\x3a\x0e\x5b\xed\x96\xa8\x36\x29\x4f\x5a\x7b\xff\x15\x0a\x2e\xf2\x3e\xbf\xd1\xf5\x52\xac\x70\x46\x99\x79\x90\x79\xb6\x74\xbc\xd3\x83\x12\xdb\x50\x5a\xc1\x4e\xad\x57\xe2\xce\x15\xb6\x6b\x56\x16\xcf\x17\x7b\x37\x59\x9c\xd6\x62\xed\x3f\xff\xb1\x77\xc5\xda\xf6\xc3\xdd\xf0\x9b\x4a\x66\x7c\xb8\x7c\x6a\x56\x10\xbd\xf2\xf1\xdc\x88\x04\x2c\x1e\xf7\xbe\x7e\xcb\xb6\xbe\x67\xa9\x40\x3b\xf5\x23\x7f\x48\x34\xcb\x56\xe2\x9f\xfa\x8a\x7a\xb4\xf4\xdc\xf9\x51\x5c\x8b\x3b\xc7\xf9\x51\xbb\xec\xd7\xe1\x2a\xbd\x77\xc3\x81\xdf\xa8\x20\x99\x92\xd1\xe9\xd4\xba\xc5\x40\x99\x67\x19\x66\x98\xce\x06\xce\x9b\x89\xa2\x1c\x9e\x9f\x4d\x22\xff\x48\xbb\xca\x6c\x57\x04\xc6\x83\x25\x1e\xd4\xa3\x89\xf0\x4b\x20\xcb\x41\x95\x88\x56\x2f\x3d\x75\xf6\xca\x6c\x0e\x0f\x4a\xb8\x9e\x7b\xed\xaa\x8d\xd4\x13\x34\x72\x76\xad\xc4\x3f\x92\x0d\xdb\x00\xd7\xe4\xd5\x88\xd4\x46\xfb\xe9\x49\xad\x6d\xb9\x53\xce\xf3\x21\xf4\xee\xb0\xe5\xda\xce\x9b\xc8\x99\xa5\x85\x2e\x36\xbe\xb4\xf4\x5b\x63\x7b\xeb\x44\x21\x38\x6c\xda\x3a\xae\x31\x9e\xa5\xfb\x20\xbc\xc9\xf4\x70\xc9\xf0\xc8\xf8\x81\xa2\x8b\x3c\x9a\x35\x30\x3e\xc5\xca\xdc\xe7\x93\x92\x6e\xe1\x3d\xb6\x18\x66\x7d\xcf\xf7\xfa\x96\x8b\x1c\x84\x35\x2e\xc2\xb1\x4c\xff\x53\x62\x26\x9a\xc9\xa5\x3c\x6e\xe2\x6c\xd3\x9f\x08\x0a\x22\x28\x88\xa0\x20\x82\x82\x08\x8a\xde\x22\x28\x1a\xee\x05\x47\x51\x14\xe7\xdb\x16\x7f\x4e\xe5\x62\x6d\x1d\x25\x03\x95\x2c\x41\xf7\xbe\xb7\x95\x1b\xad\x1d\x99\xf0\x8a\x4c\xbc\x7e\x3c\xe9\x0e\xc9\x5c\xe1\xb4\xbb\x5d\xfd\xd7\x4a\x7c\x32\xeb\x99\x51\x5d\xb6\xca\x0d\x5f\x96\xc3\x9e\xaa\x84\xe7\x6f\xbf\x48\x37\xce\x1f\xf0\xf7\xea\xe6\x51\x3a\xb1\xad\xfc\xf9\xd2\x7c\xfd\xf9\x52\x3c\xda\xae\x74\xec\xff\x8b\x37\x92\x07\x25\xe4\x5a\xf3\x67\xef\xc6\xb0\xb9\xf5\xc1\x0c\x33\xa7\xbf\x0a\x0e\x07\x19\xfb\x74\x25\xde\xdb\x7a\x71\x4c\xdd\xba\xe7\x1f\x3f\xdb\x21\xda\x60\x67\xcc\x63\x6d\xa3\x78\xbb\x2f\x6d\x06\xd4\x3c\xc1\xcf\xf1\xb3\x97\xaa\x3c\x45\xa4\xaf\x5b\xc3\x4c\x3f\x7a\xf8\xc2\x7e\xf1\xbe\x8b\x8d\xf4\x1f\xe4\x26\xe3\xad\x4c\x8c\x1a\xe5\x3f\x7a\xfe\x53\x38\x26\x85\xf2\xfa\x3d\xf7\x44\xe5\xe2\xd2\x4a\x6f\xac\xb1\x9a\xac\xa1\xf0\xfd\x58\x2b\xcb\x5e\x1f\x4c\x61\xad\x2b\x68\xe7\x44\x32\xc6\x81\xe6\x7a\xfa\xdb\x58\x1b\x58\xa5\x06\x33\xde\x47\x12\xdc\x9f\xe4\xc2\x64\x2f\xb6\x12\x77\x96\xa5\xb6\x3b\xbd\x37\xa5\x2d\xbb\x2b\xf3\x0c\x57\xe2\x3a\x9a\x80\xd9\x09\x1a\xfc\x24\xae\xfe\x26\xad\xaf\x1b\xdf\xdb\xbb\xeb\xf0\x57\x3a\xaf\x44\xff\x28\x27\x38\xa3\x42\x46\xfa\x71\xf6\x24\xf1\x13\x3c\x24\x67\xfa\x49\x5c\x7d\xf0\x7c\x95\x3a\xad\xb0\x64\x60\xc9\x75\xf8\xf4\x91\x7c\x4c\xda\x91\x3e\x5f\x60\x4c\xcf\xa3\x13\x3e\x26\xe7\x68\x33\x21\xb7\xf9\xe9\x3e\x8c\xc6\x39\xe3\xb8\xa0\x66\xe3\x50\x15\x1b\x34\xd4\x28\x10\x25\xd4\xdb\xf8\x1e\x47\x0a\x9d\xcf\xb7\x31\x64\xcc\x50\x33\x61\x55\xc4\x0d\xbd\x54\xff\x29\x44\x77\x50\xe7\x13\x31\xdd\xa7\x9d\xdc\xed\x9b\xf2\xb9\xa9\xc2\xe6\xd4\xd1\x25\x39\xd4\x66\x63\x3e\x28\x4d\x5d\xa4\x53\x97\x72\xec\xe2\x0c\xeb\x4a\x02\x9c\x4f\xb1\xae\xca\xae\xee\xbc\x02\x84\xf1\x9d\xf9\x91\xbd\x1d\x2b\xf9\x71\xf1\x87\x93\x48\x78\x78\xaa\x22\x0e\xde\x09\xfd\x26\x65\x7c\x39\x29\xe3\xcd\xb6\x9f\xba\xb4\xf1\xf3\xd9\x69\x04\x2f\x10\xbc\x40\xf0\x02\xc1\x0b\x04\x2f\x14\x2d\xbe\x50\xf1\x09\x49\x04\x50\x0a\x28\x05\x94\x02\x4a\x01\xa5\x80\xd2\x79\x81\x52\xd8\x05\xec\x02\x76\x01\xbb\xe8\x9d\x5d\x9c\xc0\xf7\x47\x9a\xfd\xdc\x4c\x84\xc7\x19\xd0\x2f\xf5\xb8\x8d\x8a\xfa\x94\x1e\xb0\xac\x02\xbd\x2b\x4d\x3a\xbe\xdd\xae\x8e\xdd\xf8\x0b\xc8\x64\xac\x87\x4b\x5d\x75\xbd\x1c\x0a\x28\xb5\x28\xd7\x3b\x95\x5a\x37\x17\xb9\x41\xbc\xdc\x7a\x41\xc7\xf4\xcc\x18\x34\x42\x9e\x06\xca\xcc\x51\xbd\xa1\xb2\x76\x89\xa2\x15\xb5\x93\xfa\x5a\x40\x3a\xc9\x1c\x25\x7b\x29\x3d\xea\xa3\xcd\x5e\xd2\x0e\x8c\x5f\xa5\x2b\x37\xca\x37\xae\x38\x5d\x09\x4c\x06\x81\x67\xd9\xda\xb6\x4c\x9c\x5e\x52\xfb\x2e\x3d\x5f\x28\x77\x17\x2a\x7b\xb1\xb1\xfd\x24\xbf\x86\x52\xdc\x7d\x51\x81\x8a\x35\xa6\x74\x8e\x4e\x9c\xcb\xa3\x35\x46\xed\xe0\xf2\x7c\x71\xfb\xf6\x87\xf0\xb7\xbe\xb4\x34\xd1\x72\x3c\x77\x63\xf4\x23\xed\x84\xb2\x3c\x77\x27\x6d\xd7\xac\x56\xda\xc9\x73\xf8\xad\xf6\xf2\x47\xbc\x4d\x3c\x3c\x27\x26\xc0\xc6\x73\xa4\xbb\x59\x79\xfe\xe6\x66\xfb\x75\x73\xb3\x77\x6d\xcb\x5b\xab\x9b\xbf\x7c\x0c\xee\xc3\xb3\xb4\xf6\x1a\x47\xc2\xe9\x72\x78\x46\xa5\x50\x4d\x56\xcf\x69\xaa\xe3\xbc\x6d\xa0\xe3\xbc\x33\x1e\xb0\x91\xdd\xf7\xdb\xda\xfb\x36\x31\xb9\x23\xbb\xf1\xd9\x2a\x95\x5a\x51\x99\x9e\x52\x79\x21\x5e\x5c\xef\xa3\xa0\xe9\x4d\x8f\x65\x3f\x4e\xd4\xdb\xca\x4b\x7d\x50\xe0\x03\x35\x6d\x16\x6a\x1a\x29\xd5\x0b\x4a\xa9\x26\x77\x8c\xdc\x31\x72\xc7\xc8\x1d\xc3\xc2\x2c\x7b\x8b\x46\x99\xa8\x31\x8c\xbd\x46\x9e\x49\xf2\xcb\xca\x3c\x93\x09\xda\x6d\x89\x83\xbc\xf3\xec\x12\x5f\xc9\x75\x4e\x25\x3b\xc9\xe2\x0a\x8f\x3f\xdd\xde\x62\xf9\xc1\xdf\x72\xd2\x9b\xbb\x51\x53\x74\xb7\xbc\x84\xe1\xa5\xdb\x70\xd4\xdd\x07\x7d\x38\xce\xc1\x26\x75\x2c\x40\xab\x0a\xd3\xd7\xfa\xd8\xbf\x56\x2f\x69\x4f\xca\xdf\xa8\x46\xbf\x0c\x76\xbe\xdc\xa9\x8d\x6d\x5d\x37\x3f\x26\xfc\xfc\x1c\xfd\x52\x2f\x9e\x4d\x36\x87\xad\xf4\x77\xb6\x4e\xd5\x31\x71\x2b\x2f\xd9\x28\xf4\xa5\x47\xe6\x99\xeb\x8b\xa8\x56\x68\x62\xf7\xd9\x88\x12\x81\xbf\x6e\xe6\xfe\xba\xe5\x60\xd5\x5c\x1c\x7c\xfc\x72\x99\x5c\x8d\x70\xf9\x39\xe4\xff\xbe\x2a\x59\x9a\x5e\x6b\x6f\x85\x49\xd0\x94\x8e\x3e\xd2\xf5\xdc\x6b\x73\xb4\xfe\x85\x76\x18\x06\xe2\xd5\xdf\x03\xcf\xbd\x37\x69\xb0\xbf\x86\x8b\x60\xf4\xf9\x53\xbc\x34\x1e\xfe\xf8\x7a\x4c\xbc\xb7\xf9\xbc\xf9\xe0\xf9\x96\xf6\xa8\x6e\x3c\x3d\xf8\x9e\xf8\x7c\xf9\x18\xfe\xed\xf3\xa5\xb8\xcb\x48\x53\x47\xd9\x1a\xf7\xe7\x3e\x38\xa4\xfc\x5d\x4b\x4b\x0f\x80\x4e\xa4\x74\x6c\x2b\x72\xe8\x28\x67\x1d\x08\xef\x7b\x34\xb6\x26\xd1\x70\xab\xbc\xad\xa3\x56\xc2\x5c\x53\xe7\x4f\xc7\x73\x4a\xc7\xba\x16\x0e\x44\x72\xf9\x36\xe2\x0d\x2f\x34\xdf\xc8\x44\xec\x8c\xa9\xda\x19\xdb\xae\xba\xf9\x0f\x66\x69\xec\x3b\x77\x10\x6c\x1d\x69\xbd\x48\xf5\x8b\x4e\xb1\x10\xe5\x8f\x70\x3a\xf4\xbe\x45\xe9\x7d\x23\x52\xaf\xd0\x02\x92\x6f\x08\xa7\x5b\xa0\xf6\xb2\x9f\xa2\x97\xf4\x42\xb4\x0e\x4a\x1b\xbc\xfb\x54\xab\x58\xb4\xa2\xb6\x53\x84\xa3\x51\xb2\x89\x92\x4d\x94\x6c\xa2\x64\x13\x25\x9b\x06\x2f\xd9\x84\x89\xd9\x78\xa0\xe8\x37\x35\xa6\xca\x5a\x04\x47\x2f\x28\x38\x9a\x32\x6a\x94\x51\xa3\x8c\x1a\x65\xd4\x28\xa3\x46\x19\x35\xca\xa8\x91\x33\x44\xce\x10\x39\x43\xe4\x0c\xe5\x67\x24\xfd\xa6\xa8\xd9\x48\xcd\x46\x6a\x36\x4e\xbc\x66\x63\x21\xac\x83\xec\x93\x07\xd8\x3e\x0f\x70\x2c\xfd\xa6\xc6\x92\x0a\xd8\xb8\xd1\x54\x05\xf4\xae\xef\x30\xd5\x06\x74\xd3\x5a\x8a\xd6\x52\xe6\x2b\x5a\x4b\x11\xa7\x40\x9c\x02\x71\x0a\xc4\x29\x10\xa7\x00\x00\x87\x89\xd6\x4b\x04\x26\x0a\x13\x85\x89\xc2\x44\x61\xa2\x0b\x66\xa2\x60\x0a\x30\x05\x98\x02\x4c\x41\x6b\x29\x5a\x4b\xd1\x5a\x2a\xf9\xa6\x4d\xae\x25\x3d\xa5\x46\xd1\x53\xaa\x6d\x79\x08\x9a\x49\x75\xdc\x4c\xaa\x02\x86\x35\xe9\x22\x35\xcf\x7a\x17\x14\xba\x58\x4e\x16\x12\x85\x2e\x28\x74\x51\x70\x33\xa3\x56\x62\x26\x57\xe1\x62\xdc\x95\xc7\x5f\x72\xc7\xb3\xd5\x11\x87\x6f\x11\x75\xbe\x32\x1c\x03\x36\x85\x6a\x55\x81\x83\xba\x1b\xa2\x4c\xc6\x68\x5d\xe9\x41\x1e\xad\xd6\x45\xa6\xf3\x82\x32\x9d\x49\xe9\x22\xa5\x8b\x94\x2e\x52\xba\x30\x18\xcb\xde\xa2\x51\xe6\x4f\xd0\x06\x6a\x9c\x96\xd9\x18\xda\x40\x8d\x25\xe9\xa3\xba\xff\x53\x85\x71\x55\xdf\xf8\xe9\x92\x95\x06\xbf\xc9\x04\x5b\x3d\x9d\x0f\xad\x95\xf4\x78\x2a\x82\x68\x34\x77\xa2\xb9\x53\xe9\x31\x3d\x37\x77\xaa\xd8\x05\x1a\x74\x75\x9a\x3e\xe1\xa4\x9d\x13\x7e\xb7\xe5\xd1\x4e\xda\x39\x75\x39\x6f\x68\xe7\x84\xbb\x02\x23\xa2\x48\x90\x73\xed\xe3\xd4\xd6\x8c\x38\x7b\x03\xa7\x4a\x23\xbf\x41\xe7\xa6\xe9\x2b\x78\x84\xb0\xa1\xd4\x2d\x43\xa9\x1b\x91\xee\xc4\x16\x9f\x7c\x43\x08\x5b\xea\xdc\xf3\xd5\x49\x86\xee\xce\xd4\x6f\x3c\x58\xb8\x5e\x04\x5b\x69\xc5\xd1\x60\xfa\xf3\x7f\x6e\x7c\xcf\x51\x0f\xa6\x2d\xd4\x30\xdd\x9a\x9a\xf5\xa8\x6c\xd0\xad\xe9\xb7\xf8\xa1\xd6\x83\xf4\xab\x9c\x48\xfc\x18\xf5\x90\xa8\x87\x44\x3d\x24\xea\x21\x51\x0f\x29\xfd\x3d\x7d\x9b\x30\x37\x29\x5b\x55\x2a\x11\xa2\x99\x17\x14\xcd\x4c\x8d\x32\x6a\x94\x51\xa3\x8c\x1a\x65\xd4\x28\xa3\x46\x19\x35\xca\x48\xf2\x21\xc9\x87\x24\x1f\x92\x7c\xf2\x33\x92\xbe\x4d\x14\x44\xa4\x20\x22\x05\x11\x27\x5e\x10\xb1\x10\xdb\x41\xf9\x49\xdc\x6b\x9f\xb8\x37\x68\xdf\xa6\x62\xf4\x3b\xe2\xbe\x4d\xcd\xf0\x77\x49\xdf\xa6\xce\x90\x37\x1d\x9c\xe8\xe0\x64\xbe\xa2\x83\x13\x11\x0b\x44\x2c\x10\xb1\x40\xc4\x02\x11\x0b\xa0\x70\xe8\x68\xbd\x44\xa0\xa3\xd0\x51\xe8\x28\x74\x14\x3a\xba\x60\x3a\x0a\xb0\x00\x58\x00\x2c\x00\x16\x74\x70\xa2\x83\x13\x1d\x9c\x92\x6f\x1a\x27\x62\xa6\xfc\xf7\x74\x70\x1a\xae\x83\xd3\xcb\xf1\x51\x8b\x32\x73\x91\xfe\x68\x72\xda\xdd\xb5\x08\x6f\x57\x04\x96\xb7\x55\x6f\x44\xb0\xb7\xbe\x84\x8b\x91\x5e\xec\x95\x7c\x32\x2b\xd5\xd6\xf7\xb4\xbe\x9a\xbd\xc7\x26\x95\xe8\x34\x2d\xca\x7e\x4d\x39\xba\xba\xa7\x89\x3e\x9d\xa5\x75\x55\x33\x1e\x58\xda\xba\x6a\xe0\x24\xd8\xde\x2b\x80\xa4\x9f\xaa\xd9\x1a\x49\x4a\xd6\x0c\x52\xb2\xa8\x00\x42\x05\x90\x82\x9b\x19\xb5\x1e\x37\x8d\x0a\x20\xad\x6e\x78\xd0\x26\x56\x2d\xee\x78\xb6\x6a\xf2\x40\x4d\xac\x5a\xab\xc9\x17\xa2\xf3\xa2\x25\xe7\xee\x6d\xf5\xc2\x7a\x25\x54\x29\x29\x7c\x1a\xd4\xb2\x29\xaa\x65\xe4\x85\x2f\x28\x2f\x9c\x04\x38\x12\xe0\x48\x80\x23\x01\x0e\x8b\xb2\xec\x2d\x1a\x65\xb6\x09\x5d\xae\xc6\x69\xba\x0d\xd6\xe5\x6a\x84\x29\x32\x05\x5d\xae\x9a\x99\x59\x25\x5d\xae\xea\x8d\x2c\xd6\x1c\x5c\x2c\x63\xee\x77\x35\x08\x88\x4c\xf7\xbb\x2a\xbd\x81\x29\xf5\xbb\x82\xac\x4e\x8e\xac\xd2\xe8\xab\xd5\x46\x58\xd6\xe8\x6b\xa6\x3c\x98\x96\x5f\x38\x21\x97\xc7\x86\x69\xf9\xd5\xe5\xbc\xa1\xe5\x17\xbe\x1b\xec\xa8\x22\x41\xce\xaa\xe5\x57\x07\x96\xd4\x79\x5a\x7e\x35\xf5\x78\x94\xb5\xfc\x9a\xa9\xaa\x47\xe8\x1f\xea\xdd\x32\xd4\xbb\x11\x69\x51\x6c\xf6\xc9\x37\x84\xfe\xa5\xce\x3d\x5f\xed\x64\x90\xe6\x5f\x63\x88\xa3\x1b\xae\xeb\x57\x9b\xf0\xb9\xb2\x76\x5f\x44\xd0\x51\x35\x8b\xaa\x59\x54\xcd\xa2\x6a\x16\x55\xb3\x06\xaf\x9a\x85\x65\xd9\x78\xa0\xe8\xf3\x35\xa6\xe2\x66\xc4\x73\x2f\x28\x9e\x9b\x4a\x76\x54\xb2\xa3\x92\x1d\x95\xec\xa8\x64\x47\x25\x3b\x2a\xd9\x91\xe6\x44\x9a\x13\x69\x4e\xa4\x39\xe5\x67\x24\x7d\xbe\x28\x9b\x49\xd9\x4c\xca\x66\x4e\xbc\x6c\x66\x21\xa8\x03\xe8\x93\xba\xd8\x3e\x75\x71\xf0\x3e\x5f\x63\xc9\x5e\xac\x6f\xf0\x55\x41\xba\x1b\x75\xf6\x6a\x43\xb7\x69\xe9\x45\x4b\x2f\xf3\x15\x2d\xbd\x08\x4e\x20\x38\x81\xe0\x04\x82\x13\x08\x4e\x80\x7a\x03\x42\xeb\x25\x02\x08\x05\x84\x02\x42\x01\xa1\x80\xd0\x05\x83\x50\xd8\x04\x6c\x02\x36\x01\x9b\xa0\xa5\x17\x2d\xbd\x68\xe9\x95\x7c\x73\x52\x7a\x25\xbd\xbc\x86\xed\xe5\xd5\xb6\xe2\x03\x4d\xbc\x16\x50\x6a\xae\xdf\x26\x5e\x15\xcc\xaf\x61\xf7\xae\x99\xd5\xee\xa0\x68\xc7\x72\x52\xab\x28\xda\x41\xd1\x8e\x82\x9b\x19\xa7\x92\x36\x9d\x6a\x1d\xe3\xae\xf9\xde\xea\x56\x67\xab\xf5\x0e\xd8\x9a\x6b\xb8\x5a\x22\x43\x34\xe3\x6a\x53\x46\x84\xe2\x21\x68\x59\xd3\xd7\xb2\x48\xd7\x5e\x50\xba\x36\x79\x69\xe4\xa5\x91\x97\x46\x5e\x1a\x06\x62\xd9\x5b\x34\xca\x24\x10\xda\x6f\x8d\xd3\x3c\x1b\xb4\xfd\xd6\x58\x32\x57\x4a\xfa\x6e\x55\x58\x54\x8d\x1a\x6e\x5d\xb2\xbc\xe0\x2a\x29\x3a\x7a\x74\x2d\xb6\xce\xc7\x07\xf3\xbd\xb5\x4e\xa7\x7e\x63\x01\x7e\x90\xce\xc9\x91\x4e\x9a\x6a\x9d\xb6\xcb\x35\xeb\xa6\x35\x7d\x3e\x4b\x1b\x2d\x9c\x89\xcb\x43\xb6\xb4\xd1\xea\x72\xde\xd0\x46\x0b\x1f\x0c\x46\xd2\xbc\xfb\x67\xb5\x35\x93\xce\xd7\x38\xab\xd2\x65\xd1\xac\x63\xd6\xf4\xd5\x39\xc2\xed\xd0\xdd\x66\xae\xbb\x8d\x48\x45\x62\x27\x4f\xbe\x59\x78\xb8\xdd\x7c\x75\x8e\xc1\xba\x62\xf5\x1b\xc2\xe6\x7b\x8e\x7a\x30\x7d\xb7\x32\xed\xaf\x06\x28\x0d\x56\xdf\xf1\xb3\xa4\x42\x58\xea\xe0\x0f\x9e\x7f\xe7\x38\x89\x36\x13\x8c\x81\xbf\x94\x1e\xb0\xe0\x6c\xb0\x68\xb8\x48\x0a\x1b\x36\x29\xec\x85\xdd\x80\x4f\x67\x3f\xd4\xde\x9b\x71\xed\xbd\x7a\xb6\x53\x57\x77\xaf\xd2\xa1\xd4\x01\xb7\xa2\xda\x1e\xd5\xf6\xa8\xb6\x47\xb5\xbd\xb9\x55\xdb\xab\x5f\x79\x0b\x2b\xed\xf5\x1c\x25\x70\xb6\xfa\x7a\xf5\x8f\x5f\x5e\x5b\x6f\xcc\x32\x38\xa5\xa2\x5e\xbd\x0c\xca\xab\xe9\xf5\x2c\x03\x6a\xe8\x51\x43\x8f\x1a\x7a\xd4\xd0\xa3\x86\x5e\x6f\x35\xf4\x1a\xac\xfe\x47\xf5\xf3\x2a\xd3\xb5\x16\x14\x24\xd8\xec\x69\x66\x5c\x03\xb0\x5e\xdc\x55\xf5\xff\xce\x2b\x77\xaa\xfe\xf5\x32\xa2\xc7\x15\xff\x7a\x1e\xd6\x41\xeb\xfc\xd5\x8b\xa7\xa2\xc6\x5f\xdf\xcb\xe6\x58\x2b\xfb\xd5\x0b\xad\x80\x61\xb4\xf6\xe7\x45\x9f\xfe\x6c\xc3\xb3\x86\x06\x59\xed\x08\x16\xe8\x2a\x2f\xf8\x71\xa2\x2b\x98\xd5\x52\x0a\x19\x02\xab\x80\x55\xc0\x2a\x60\x15\xb0\x0a\x58\x05\xac\x02\x56\x01\xab\x80\x55\xc0\x2a\x60\x15\xb0\x0a\x58\x05\xac\x02\x56\x35\x7d\x1a\x60\x15\xb0\x0a\x58\x05\xac\x02\x56\x01\xab\x32\xb0\x4a\xdf\xc3\x8d\xe5\xec\x83\x9d\xf2\xcf\x96\x89\x15\x29\x81\xee\xda\xfe\x66\xaf\xf7\xd2\x49\x0f\x9d\x4c\x0c\xbd\x77\xe6\xae\x52\x59\x22\xab\x54\xdd\xdc\x1f\x13\x95\xfc\x4a\x9f\xee\xea\xe0\xdf\xcb\x38\x6c\x12\xfc\x25\x6c\x37\xd8\x29\x99\xd9\x3b\xf3\x70\xec\x7b\x49\xad\xa1\xe3\x5b\xf9\x25\x87\x1f\xe0\x63\x63\x2d\x11\xaa\x17\x88\xf7\xa1\x0d\xb8\x78\x66\xa6\x47\x72\x20\x70\x76\xfc\x0a\x81\xd1\xc0\x68\x60\x34\x30\x1a\x18\x0d\x8c\x06\x46\x03\xa3\x75\xb4\xda\x82\xd1\xc0\x68\x60\x34\x30\x1a\x18\x0d\x8c\x06\x46\x03\xa3\x81\xd1\xc0\x68\x60\xb4\x51\x8e\x28\x18\x2d\x2b\x1e\x30\xda\xdc\x30\x5a\x41\x0f\xde\x9e\x68\x5a\x1a\xa1\xb9\xf1\xde\x1f\xe7\x84\xf5\x84\xd2\xde\x1c\x94\x7e\x6d\xd8\x44\x0a\x62\x68\x37\x1c\xac\x99\xab\x8c\x15\x9c\x3a\x77\x37\x20\x0e\x08\x07\x84\x9b\x1e\x84\x03\xc0\x01\xe0\x00\x70\x87\x17\x0d\x00\x07\x80\x03\xc0\x01\xe0\x00\x70\x00\x38\x00\x1c\x00\x0e\x00\x07\x80\x03\xc0\x01\xe0\x00\x70\x93\x03\x70\xe9\xe6\xda\x75\x3e\x87\x29\xb5\xda\x06\x2c\x02\x16\x01\x8b\xd3\x18\x51\xc0\x62\x56\x3c\x80\xc5\xb9\x80\xc5\x91\x25\xe6\x8d\x21\x23\x8f\x54\x3c\x28\xe0\x34\x29\xe0\xf0\xa9\x78\x20\x40\x10\x20\x08\x10\x04\x08\x02\x04\x01\x82\x00\x41\x80\x1d\xad\xb6\x20\x40\x10\x20\x08\x10\x04\x08\x02\x04\x01\x82\x00\x17\x87\x00\x41\x65\xa0\x32\x50\xd9\x34\x46\x14\x54\x96\x15\x0f\xa8\x6c\x36\xa8\x6c\x7c\xc9\x77\xd3\xcf\xba\x03\xb4\x01\xda\xa6\x07\xda\x80\x6c\x40\x36\x20\x1b\x90\x0d\xc8\x06\x64\x03\xb2\x01\xd9\x80\x6c\x40\x36\x20\x1b\x90\x0d\xc8\x06\x64\x03\xb2\x01\xd9\xa6\x08\xd9\x4a\xf2\xec\x48\xb0\x83\x1a\x8e\x8d\x31\x41\x0d\xa1\x86\x50\x43\xa8\x61\x4e\x68\xe3\xa1\x86\xe1\x1d\x05\x5b\x69\xc5\xcc\x50\x7f\xfe\xcf\xcd\xc8\x1a\xe2\x8d\xa1\x13\xde\x6f\xb1\x74\xd6\x34\xc3\x03\x0c\x4e\x1e\x0c\x0e\x94\x81\x47\x11\x4e\xe0\x20\x70\x10\x38\x08\x1c\x04\x0e\x02\x07\x81\x83\x23\x03\x63\xc0\x41\xe0\x20\x70\x10\x38\x08\x1c\x04\x0e\x02\x07\xa7\x08\x07\xa3\xa7\xd6\x8c\x30\x1c\x4a\xb9\xdf\x7d\x11\x81\xe5\x6d\xd5\x1b\x11\xec\xad\x2f\xe1\xc8\x6b\x7b\x45\xc9\x27\xe3\x15\xde\xfa\x9e\x96\xf2\xe9\xfc\x50\xbb\x03\x81\x88\x40\x44\x20\x22\x10\x11\x88\x08\x44\x04\x22\x96\x41\xc4\x91\x64\x24\x4e\xbf\x0f\x60\x21\x86\x04\x41\x82\x20\xa7\x87\x20\xc1\x8f\xe0\x47\xf0\x23\xf8\x11\xfc\x08\x7e\x04\x3f\x82\x1f\xc1\x8f\xe0\x47\xf0\x23\xf8\x11\xfc\x08\x7e\x04\x3f\x82\x1f\xa7\x88\x1f\xd3\xb9\x89\xb3\x68\xfe\x07\x4f\x85\xa7\xc2\x53\xe1\xa9\xa3\x1e\x51\x78\x6a\x56\x3c\xf0\xd4\xb9\xf2\xd4\xb1\x64\x63\x8e\x24\x0d\x93\xfc\x4b\xe0\xe7\x34\xe1\xe7\x80\xf9\x97\x90\x4f\xc8\x27\xe4\x13\xf2\x09\xf9\x84\x7c\x42\x3e\x21\x9f\x1d\xad\xb6\x90\x4f\xc8\x27\xe4\x13\xf2\x09\xf9\x84\x7c\x42\x3e\x17\x47\x3e\x01\x85\x80\x42\x40\x21\xa0\x70\xd4\x23\x0a\x28\xcc\x8a\x07\x50\x38\x5b\x50\x38\xa2\x8c\xcb\x59\xa4\x5a\x82\x19\xc1\x8c\xd3\xc3\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x20\x46\x10\x23\x88\x11\xc4\x08\x62\x04\x31\x82\x18\x41\x8c\x93\x42\x8c\xf9\xe4\x4a\xb2\x2a\x81\xa5\xc0\xd2\x91\xa0\x35\x60\x29\xb0\x14\x58\x0a\x2c\xcd\x09\x6d\x3c\xb0\x94\x9e\x96\x47\x84\x33\xd7\xc9\xf2\x83\xe7\xdf\x39\x4e\x82\x3d\x03\x90\x27\xc8\x73\x7a\xc8\x93\xce\x96\xd0\x4f\xe8\x67\xf4\x96\x41\x3f\xa1\x9f\xd0\x4f\xe8\x27\xf4\x13\xfa\x09\xfd\x84\x7e\x42\x3f\xa1\x9f\xd0\x4f\xe8\x27\xf4\x73\x72\xf4\x13\x74\x06\x3a\x03\x9d\x4d\x63\x44\x41\x67\x59\xf1\x80\xce\x26\x8f\xce\xc6\xc2\xcc\x06\x85\x65\x50\xb2\xa2\xb1\x84\x92\x41\xc9\x48\x0e\x04\x8f\x81\xc7\xc0\x63\xe0\x31\xf0\x18\x78\x0c\x3c\x06\x1e\x03\x8f\x81\xc7\xc0\x63\xe0\x31\xf0\x18\x78\x0c\x3c\x06\x1e\x3b\xe9\x69\xc0\x63\xe0\x31\xf0\x58\x67\xc3\x0a\x1e\x2b\x93\x0c\x78\xec\x05\x78\xec\x41\xed\xe4\xed\x4d\x2b\x30\xd6\x37\x11\x6a\x02\xdd\x36\x6a\x97\x55\x78\xcd\x30\x57\xb0\xb1\x8d\xda\x15\x90\x31\x2d\x86\xbb\xfb\x8f\x7f\x14\x9d\x61\x28\x24\x36\x59\x52\x95\x12\xa4\x6e\x6f\x38\x43\x5c\xa5\x27\x4c\xea\x14\x17\xe9\xdb\x38\xf5\xf5\xb3\x9c\x7d\xb0\x53\x7e\x59\x7a\xa7\xb1\x37\xba\xa5\xd5\xe6\x9c\xc2\xf2\x1c\x47\x59\xf1\x36\xf1\xce\xdc\x47\x71\x1e\x58\xfe\x45\x32\x67\x28\x7b\x97\xde\x25\x27\xae\x3e\x69\x09\x12\x13\xf9\x69\x60\xd6\xd2\x07\x6f\xfd\x9c\x9f\xc1\xf1\x62\x5a\xf4\x5d\x2f\xb3\xfb\x67\xfd\xe0\xbf\x6b\x51\x06\x0d\xe7\x76\xf5\xa4\x86\xb2\x40\x59\xa0\x2c\x50\x96\xb9\x51\x96\x0a\x1d\xb8\x8e\xb4\x54\xdb\x53\xd5\xba\xf0\x49\x6b\xef\xbf\x42\xc1\x45\xfe\xa5\x37\x3a\x7c\xcb\x0a\x67\x94\x99\x07\x99\x67\x4b\x47\x34\x3c\x28\xb1\x0d\xa5\x15\xec\xd4\x7a\x25\xee\x5c\x61\xbb\x66\x65\xf1\x7c\xb1\x77\x93\xc5\x69\x2d\xd6\xfe\xf3\x1f\x7b\x57\xac\x6d\x3f\xdc\x0d\xbf\xa9\x64\xc6\x87\xcb\xa7\xf6\x06\x46\xaf\x7c\x3c\x37\x22\x01\x8b\xc7\xbd\xaf\xdf\xb2\xad\xef\x59\x2a\xd0\x6e\xbb\xc8\x90\x8b\x66\xd9\x4a\xfc\x53\x5f\x51\x8f\x96\x9e\x3b\x3f\x8a\x6b\x71\xe7\x38\x3f\x6a\xa7\xdc\x3a\x5c\xa5\xf7\x6e\x38\xf0\xa1\x49\x14\x4f\xc9\xe8\x74\x6a\xdd\x62\xa0\xcc\xb3\x0c\x33\x4c\x67\x43\x63\xcd\x44\x51\x8e\xc7\xce\x26\x91\x7f\xa4\x6d\x7c\xdb\x15\x81\x31\xbd\xc5\x83\x7a\x34\x31\x3c\x89\x1b\xf5\xa0\x4a\x44\xab\x97\x9e\x3a\x7b\x65\x36\x87\x87\xd0\xba\x75\xaf\x5d\xb5\x91\x7a\x82\x46\x56\xfa\x4a\xfc\x23\xd9\xb0\x0d\x52\x49\x5e\x8d\x48\x77\xb4\x9f\x9e\xd4\xda\x96\x3b\xe5\x3c\x1f\x82\x6b\x0e\x5b\xae\xed\xbc\x89\xac\x70\x2d\x74\xb1\xf1\xa5\xa5\xdf\x1a\xdb\x5b\x27\x0a\xc1\x61\xd3\xd6\x91\x4b\xf1\x2c\xdd\x07\xe1\x4d\xa6\x87\x4b\x86\x47\xc6\x0f\x14\x5d\xe4\xd1\xac\x81\xf1\x29\x56\xe6\x3e\x9f\x94\x74\x0b\xef\xb1\xc5\x30\xeb\x7b\xbe\xd7\xb7\x5c\xe4\xd9\xa8\xf1\x6d\x8c\x65\xfa\x9f\x42\x45\x9b\xc9\xa5\x9c\x8c\x9e\x6d\xfa\xc3\x48\x61\xa4\x30\x52\x18\x29\x8c\xb4\x37\x46\xda\x70\x2f\x38\xe2\xa4\xe7\xdb\x16\x7f\x4e\xe5\x51\x6c\x1d\x25\x03\x95\x2c\x41\xf7\xbe\xb7\x95\x1b\xad\x1d\xdd\x7b\x8e\x6d\x3d\x67\x22\x72\xe3\x49\x77\x48\xc4\x08\xa7\xdd\xed\xea\xbf\x56\xe2\x93\x59\xcf\x8c\xea\xb2\x55\x6e\xf8\xb2\x1c\xf6\x54\x25\x3c\x7f\xfb\x45\xba\x71\x84\xb0\xbf\x57\x37\x8f\xd2\x89\x6d\xe5\xcf\x97\xe6\xeb\xcf\x97\xe2\xd1\x76\xa5\x63\xff\x5f\xbc\x91\x3c\x28\x21\xd7\x1a\x9c\x79\x37\x06\x2a\xac\x0f\x66\x98\x39\xfd\x55\x70\x38\xc8\xd8\xa7\x2b\xf1\xde\xd6\x8b\x63\xea\xd6\x3d\xff\xf8\xd9\x0e\x98\x74\x67\xcc\x63\x6d\xa3\x78\xbb\x2f\x6d\x06\xd4\x3c\xc1\xcf\xf1\xb3\x97\xaa\x3c\x45\x88\xa2\x5b\xc3\x4c\x3f\x7a\xf8\xc2\x7e\xf1\xbe\x8b\x8d\xf4\x1f\xe4\x26\xe3\xb2\x4c\x8c\x1a\xe5\x3f\x7a\xfe\x53\x38\x26\x85\xf2\xfa\x3d\xf7\x44\xe5\xe2\xd2\x4a\x6f\xac\xb1\x6e\x8d\x6c\xed\x50\x9b\xb4\xec\xf5\xc1\x14\xd6\xba\x82\x76\x4e\x24\x63\x1c\x6e\xd6\xd1\x4e\x1a\x6b\x03\xab\xd4\x60\xc6\xfb\x48\xc2\x29\x93\x68\xf7\xec\xc5\x56\xe2\xce\xb2\xd4\x76\xa7\xf7\xa6\xb4\x65\x77\x65\x9e\xe1\x4a\x5c\x47\x13\x30\x3b\x41\x83\x9f\xc4\xd5\xdf\xa4\xf5\x75\xe3\x7b\x7b\x77\x1d\xfe\x4a\x47\x8e\xeb\x1f\xe5\x04\x67\x54\xc8\x48\x3f\xce\x9e\x24\x7e\x82\x87\xe4\x4c\x3f\x89\xab\x0f\x9e\xaf\x52\xa7\x15\x96\x0c\x2c\xb9\x0e\x9f\x3e\x92\x8f\x49\x2c\xd0\xe7\x0b\x8c\xe9\x79\x74\xc2\xc7\xe4\x1c\x6d\x26\xe4\x36\x3f\xdd\x87\xd1\x38\x67\x1c\xd0\xd0\x6c\x1c\xaa\x82\x1a\x86\x1a\x05\xc2\x1b\x7a\x1b\xdf\xe3\x10\x87\xf3\xf9\x36\x86\x0c\x76\x68\x26\xac\x8a\x80\x87\x97\xea\x3f\x85\xfc\x0e\x08\x7d\x22\xa6\xfb\xb4\x93\xbb\x7d\x53\x3e\x37\x69\xf6\x9c\x3a\x45\x49\xbe\xa4\xd9\x9d\x0f\x9a\xd3\x00\x69\x93\x95\x18\x38\x9f\x44\x99\x7b\xc2\xe3\x4c\xca\xce\xb3\xb7\x8d\x17\xcd\x8f\x2c\xef\x58\xdd\x8f\x5b\xc0\x9e\x04\xc6\xc3\x53\x95\x62\xf1\x4e\x60\x38\x39\xa2\xcb\xc9\x11\x6d\xb6\x1b\xd5\xe5\x89\x9e\xcf\x6c\x23\x96\x81\x58\x06\x62\x19\x88\x65\x20\x96\xa1\x68\xf1\x05\x92\x4f\x48\x22\x70\x53\xb8\x29\xdc\x14\x6e\x0a\x37\x85\x9b\xce\x8b\x9b\x82\x32\x40\x19\xa0\x0c\x50\x46\xef\x28\xe3\x04\xdc\x3f\xd2\x2c\xce\x66\x22\x3c\xce\xe4\x7c\xa9\xc7\x6d\x54\x10\xa8\xf4\x80\x65\x15\xe7\x5c\x69\xe6\x11\xe1\x89\xd5\xb1\x2f\x7f\x29\xc9\x8e\xf5\xc0\x69\xa0\xda\x9c\xdd\x42\xa6\x16\xe5\x3a\xa7\x52\xc2\xe3\x22\x37\x92\x97\x5b\x2f\xe8\x98\xa8\x19\xfb\x46\xc8\xd3\xe0\x99\x39\xaa\x5f\x7c\xd6\x2e\x97\xb4\xa2\xe3\x78\xaf\x8b\x4a\x27\x19\xa6\x64\x39\xa5\x87\x7e\xb4\x59\x4e\xda\xb3\xf1\xab\x74\xe5\x46\xf9\xc6\x47\x67\xfa\xeb\x07\x81\x67\xd9\xda\xe8\x4c\xbc\x61\x52\x3b\x35\x3d\x5f\x28\x77\x17\x6a\x81\xb1\x15\xfe\x24\xbf\x86\x52\xdc\x7d\x51\x81\x8a\x55\xa9\x74\x2e\x4f\x9c\xf3\xa3\x55\x49\xed\xf9\xf2\x7c\x71\xfb\xf6\x87\xf0\xb7\xbe\xb4\x34\xea\x72\x3c\x77\x63\x14\x27\xed\x9d\xb2\x3c\x77\x27\x6d\xd7\xac\x5b\xda\xfb\x73\xf8\xad\x76\xff\x47\x20\x4e\x3c\x3c\x27\xb6\xc1\xc6\x73\xa4\xbb\x59\x79\xfe\xe6\x66\xfb\x75\x73\xb3\x77\x6d\xcb\x5b\xab\x9b\xbf\x7c\x0c\xee\xc3\xb3\xb4\x76\x27\x47\xc2\xe9\x72\x78\x46\xa5\x69\x4d\x5b\x01\x6a\xaa\xfc\xbc\x6d\xa0\xfc\xbc\x33\xfe\xb1\x31\xde\xfc\xdb\xda\x9b\x37\x51\xbc\x63\xbc\xfb\x79\xeb\x9d\x5a\x8d\x99\xa8\xde\x79\x21\xba\x29\x1d\x72\xf3\xff\xc2\x15\xf3\x3f\x67\xaa\x20\x72\xa2\x7e\x57\x53\x35\x84\x5a\x21\x68\x72\xb3\xd0\xe4\xc8\xce\x5e\x50\x76\x36\x69\x68\xa4\xa1\x91\x86\x46\x1a\x1a\x46\x68\xd9\x5b\x34\xca\x9c\x8f\x61\x0c\x39\x52\x56\x4e\x48\x59\x99\xaa\x2d\x97\xf8\xd5\x3b\x4f\x54\xf1\x95\x5c\xe7\x94\xb3\x93\x0c\xb0\xf0\xf8\x96\xe6\x17\xab\x11\x7e\x99\x96\x6f\xf3\x46\x4d\xd6\x2d\xf3\x12\x1c\xa8\xbd\xf7\x91\x19\x5c\x77\x33\x46\x03\xd9\xca\xdd\x97\x62\xfc\xa7\xff\xcf\x7c\x53\x41\xa4\x7a\x2e\x46\x3e\x5d\xcc\xa9\xa3\x0c\x5a\x95\xb7\xbe\xd6\xc7\xfe\xb5\x7a\x85\x7b\x52\xfe\x46\x35\xfa\x65\xb0\xf3\xe5\x4e\x6d\x6c\xeb\xba\xf9\x31\xe1\xe7\xe7\xe8\x97\x7a\x2d\x6d\xb2\x61\x6c\xa5\xbf\xb3\x75\x12\x90\x89\x88\x79\xc9\xe6\xb1\x2d\x69\x2c\x3b\xb8\xf3\xae\x2f\x38\x5b\xa1\xac\xdd\x67\x03\x56\x04\x2e\xbd\x99\xbb\xf4\x96\x03\x67\x73\x61\xf6\xf1\xcb\x65\x52\x41\xc2\x35\xe8\x90\x5e\xfc\xaa\x64\x7d\x7a\xad\x1d\x1a\x26\xff\x53\x3a\xfa\x48\xd7\x73\xaf\xcd\xd1\xfa\x17\xda\xa7\x18\x88\x57\x7f\x0f\x3c\xf7\xde\x64\xd9\xfe\x1a\xae\x84\xd1\xe7\x4f\xf1\xfa\x78\xf8\xe3\xeb\x31\x51\xe3\xe6\xf3\xe6\x83\xe7\x5b\xda\xe9\xba\xf1\xf4\xe0\x7b\xe2\xf3\xe5\x63\xf8\xb7\xcf\x97\xe2\x2e\x23\x4d\x1d\xc4\x6b\x3c\xa4\xfb\xe0\x90\x51\x78\x2d\x2d\x3d\x00\x3a\x4f\xd3\xb1\xad\xc8\xe7\xa3\x9c\x75\x20\xbc\xef\xd1\xd8\x9a\x3c\xc6\xad\xf2\xb6\x8e\x5a\x09\x73\x4d\x9d\x9e\x1d\xcf\x29\x1d\x4a\x5b\x38\x10\xc9\xe5\xdb\x88\x37\xbc\xd0\x7c\x03\x1f\xb1\x3d\xa6\x6f\x7b\x6c\x73\x71\xa9\x13\xb5\x3e\xf6\x9d\x3b\x12\xb6\x8e\xb4\x5e\xa4\x0e\x46\xa7\x58\x92\x42\x48\xb4\x1e\x0a\xe1\xf2\x14\xc2\x11\xe9\x5d\xa8\x07\xc9\x37\x44\xeb\x35\xb8\xf9\x99\xeb\x36\xfb\xc9\xfa\x55\x2f\xc4\xcb\xc2\xdd\x06\x6f\x91\xd5\x3e\xca\xad\xa8\x37\x16\x81\x6e\x14\x92\xa2\x90\x14\x85\xa4\x28\x24\x45\x21\xa9\xc1\x0b\x49\x61\x80\x36\x1e\x28\x9a\x62\x8d\xa9\xde\x17\x61\xd7\x0b\x0a\xbb\xa6\xb8\x1b\xc5\xdd\x28\xee\x46\x71\x37\x8a\xbb\x51\xdc\x8d\xe2\x6e\x64\x23\x91\x8d\x44\x36\x12\xd9\x48\xf9\x19\x49\x53\x2c\x2a\x49\x52\x49\x92\x4a\x92\x13\xaf\x24\x59\x48\xec\xe0\xfe\x64\x18\xbe\x30\xc3\x70\x2c\x4d\xb1\x46\x95\x64\xd8\xb8\x1b\x56\x05\x03\x6f\xd8\x06\xab\x0d\xf7\xa6\xff\x15\xfd\xaf\xcc\x57\xf4\xbf\x22\x6c\x81\xb0\x05\xc2\x16\x08\x5b\x20\x6c\x01\x1e\x0e\x22\xad\x97\x08\x88\x14\x44\x0a\x22\x05\x91\x82\x48\x17\x8c\x48\xa1\x16\x50\x0b\xa8\x05\xd4\x82\xfe\x57\xf4\xbf\xa2\xff\x55\xf2\x4d\xeb\x9c\x4c\x1a\x5f\xed\x46\xd3\xf8\xea\x45\x45\x26\xe8\x78\xd5\x71\xc7\xab\x0a\x40\xd6\xb8\xd5\xd5\x8c\xab\x66\x50\x2e\x63\x39\xd9\x4a\x94\xcb\xa0\x5c\x46\xc1\xcd\x8c\x5f\xbb\x99\x66\x9d\x8c\x71\x57\x41\x7f\xf1\x6d\xcf\x5b\x8d\x1c\xbe\x8f\xd5\x10\x15\x3d\x06\xec\x5c\xd5\xbe\x98\x07\x25\x3c\x44\x99\xa0\x51\xcc\xd2\x83\x3c\x5a\xc5\x8c\xa4\xe9\x05\x25\x4d\x93\x1d\x46\x76\x18\xd9\x61\x64\x87\x61\x53\x96\xbd\x45\xa3\x4c\xc5\xa0\x57\xd5\x88\xad\xb5\x31\xf4\xaa\x1a\x55\xfe\x48\x75\x93\xaa\x0a\x5b\xab\x61\x77\xaa\x4b\x16\x1e\xfc\x2b\x93\xee\x47\x75\x66\x4a\x57\xd2\x88\xaa\x88\xc7\xd1\x81\x8a\x0e\x54\xa5\xc7\xf4\xdc\x81\xaa\x62\x67\x68\xda\x7a\x6a\xfa\xb0\x94\x9e\x53\xb8\xe6\x96\xc7\x4c\xe9\x39\xd5\xe5\xbc\xa1\xe7\x14\x1e\x0d\x0c\x8b\x65\x36\x9b\x7a\x91\x69\x71\xf6\x2e\x53\x95\xce\x80\xa6\xed\xa5\xa6\xaf\xf4\x11\x21\x87\xb6\xb7\x20\x6d\x6f\x44\x4a\x15\x7b\x7f\xf2\x0d\x11\x72\x85\x77\x3d\x73\x8d\x65\xe8\x16\x52\xe7\x8a\x34\x0b\x17\x92\x60\x2b\xad\x38\xce\x4c\x7f\xfe\xcf\x8d\xef\x39\xea\xc1\x74\xb1\x1a\xa6\xa5\x54\xb3\x5e\x9b\x4d\x5b\x4a\xfd\x16\x3f\xd9\x7a\x90\xbe\x9b\x13\x89\x4c\xa3\x4a\x13\x55\x9a\xa8\xd2\x44\x95\x26\xaa\x34\xa5\xbf\xa7\xb9\x14\xc6\x28\xc5\xb4\x4a\x25\x42\x9c\xf4\x82\xe2\xa4\xa9\x9c\x46\xe5\x34\x2a\xa7\x51\x39\x8d\xca\x69\x54\x4e\xa3\x72\x1a\xe9\x43\xa4\x0f\x91\x3e\x44\xfa\x50\x7e\x46\xd2\x5c\x8a\x32\x8d\x94\x69\xa4\x4c\xe3\xc4\xcb\x34\x16\xb2\x3b\x62\x00\x48\x09\x7c\x61\x4a\xe0\xa0\xcd\xa5\x8a\xf9\xef\xf0\xc9\x81\xd5\xcd\xa5\x9a\xd1\xf0\xaa\xe6\x52\x9d\x11\x70\xda\x4c\xd1\x66\xca\x7c\x45\x9b\x29\x02\x18\x08\x60\x20\x80\x81\x00\x06\x02\x18\x20\xe3\xc0\xd2\x7a\x89\x00\x4b\x81\xa5\xc0\x52\x60\x29\xb0\x74\xc1\xb0\x14\x7e\x01\xbf\x80\x5f\xc0\x2f\x68\x33\x45\x9b\x29\xda\x4c\x25\xdf\x9c\x96\xb0\x99\x72\xe2\xd3\x66\x6a\x37\x6c\x9b\xa9\x8e\x90\x52\x8b\x02\x76\x91\x3a\x69\xf2\xe1\xdd\xb5\x08\xef\x59\x04\x96\xb7\x55\x6f\x44\xb0\xb7\xbe\x84\x6b\x93\x5e\xfb\x95\x7c\x32\x0b\xd7\xd6\xf7\xb4\xfa\x9a\xbd\xd1\x26\x35\xee\x34\x3c\xca\x7e\x4d\xa1\xbb\xba\xa7\x89\x3e\x9d\xa5\xbf\x56\x33\x46\x58\xdd\x5f\x6b\xe0\x3c\xd9\xf3\xd4\x11\x49\x3f\x5a\xb3\x75\x93\xd4\xad\x19\xa4\x6e\x51\x47\x84\x3a\x22\x05\x37\x33\x7e\x05\x6f\x42\x75\x44\x5a\xdd\xf5\xf0\x9d\xb6\x5a\xdc\xf6\xbc\x35\xe9\x81\x3a\x6d\xbd\x4c\x93\xbe\x10\xfd\xd4\x3f\x39\x77\x03\xae\x2e\x4a\x9f\x50\xf0\xa4\xf0\x69\xd0\xdc\xa6\xa8\xb9\x91\x62\xbe\xa0\x14\x73\x72\xe9\xc8\xa5\x23\x97\x8e\x5c\x3a\x8c\xce\xb2\xb7\x68\x94\x89\x2b\xb4\xe2\x1a\xb1\x39\x37\x58\x2b\xae\xb1\x66\xdb\x14\xb4\xe2\x6a\x66\x75\x55\xb5\xe2\xaa\xb7\xb9\x58\x82\x70\xc5\x4c\xa3\x29\xd7\x70\x4c\x33\xdd\x94\xab\xf4\x2e\xa6\xd4\x94\x0b\x48\x3b\x39\x48\x4b\x37\xb2\x56\x9b\x63\x65\x37\xb2\x99\xa2\x65\xfa\x92\xe1\xa7\x5c\x1e\x61\xa6\x2f\x59\x97\xf3\x86\xbe\x64\xb8\x77\xb0\xad\x16\xd4\x97\xac\x2b\xeb\xea\x3c\x7d\xc9\x9a\x7a\x46\x2a\xfb\x92\xcd\x54\xfd\x23\xb2\x10\xbd\x6f\x41\x7a\xdf\x88\xd4\x2b\xb4\x80\xe4\x1b\x22\x0b\x0b\xef\x7a\xe6\xba\xcb\x20\x1d\xca\xc6\x15\xa1\x37\x5c\x6b\xb2\xd6\x81\x79\x65\x3d\xc9\x88\xcd\xa3\x96\x17\xb5\xbc\xa8\xe5\x45\x2d\x2f\x6a\x79\x0d\x5e\xcb\x0b\xbb\xb3\xf1\x40\xd1\x8c\x6c\x4c\x25\xd7\x88\x14\x5f\x50\xa4\x38\xf5\xf5\xa8\xaf\x47\x7d\x3d\xea\xeb\x51\x5f\x8f\xfa\x7a\xd4\xd7\x23\x81\x8a\x04\x2a\x12\xa8\x48\xa0\xca\xcf\x48\x9a\x91\x51\xcc\x93\x62\x9e\x14\xf3\x9c\x78\x31\xcf\x42\x5a\x07\xee\x27\x29\xf2\x85\x49\x91\x83\x37\x23\x1b\x55\x5e\x64\x7d\x17\xb2\x0a\xf0\xdd\xbc\xfd\x58\x1b\xd8\x4d\xdf\x31\xfa\x8e\x99\xaf\xe8\x3b\x46\xac\x02\xb1\x0a\xc4\x2a\x10\xab\x40\xac\x02\x10\x1c\x2e\x5a\x2f\x11\xb8\x28\x5c\x14\x2e\x0a\x17\x85\x8b\x2e\x98\x8b\x82\x2a\x40\x15\xa0\x0a\x50\x05\x7d\xc7\xe8\x3b\x46\xdf\xb1\xe4\x9b\xd3\xd3\x30\x69\x38\xb6\x1b\xbe\xe1\xd8\x8b\xea\x46\xd0\x69\x6c\x01\x45\xec\xfa\xed\x34\x56\xc1\x01\x4f\x69\x31\x36\xc7\x0a\x20\x94\xfe\x58\x4e\x0a\x16\xa5\x3f\x28\xfd\x51\x70\x33\x23\xd6\xde\x26\x56\xf3\x63\xdc\xf5\xe7\xdb\xdf\xef\xbc\x15\xe3\x01\xfb\x87\x8d\xa1\x2c\xc9\x10\x1d\xc3\x5a\x57\x24\xa1\x0e\x09\x8a\xd8\xf4\x15\x31\x32\xbf\x17\x94\xf9\x4d\x8a\x1b\x29\x6e\xa4\xb8\x91\xe2\x86\x0d\x59\xf6\x16\x8d\x32\x9f\x84\x1e\x61\x23\x36\xd9\x06\xed\x11\x36\xaa\x24\x98\x92\xe6\x60\x15\x06\x56\xf3\xae\x60\x97\xac\x36\xb8\x54\x26\xd6\x07\xec\xcc\xa8\x31\xdf\x00\xec\x74\x80\x38\x16\x76\x08\x34\x9d\x1c\x34\xa5\xf3\xd7\x69\x3b\xdf\x09\x2d\xbf\xa6\x8f\x7a\xe9\xf5\x85\xbf\x71\x79\xe0\x97\x5e\x5f\x5d\xce\x1b\x7a\x7d\xe1\xa6\xc1\x70\x3a\x16\xe3\x3c\x9b\x7c\xbd\xc8\x74\x3a\x5f\x77\xaf\x4a\xd7\xc6\x09\x6d\xbd\xa6\xaf\xe2\x11\xcd\x87\x52\xb7\x04\xa5\x6e\x44\xba\x13\x5b\x7c\xf2\x0d\xd1\x7c\xd1\x99\x67\xae\x91\x0c\xd6\xba\xeb\x5c\xc1\x71\xbe\xe7\xa8\x07\xd3\x26\x2c\xd3\xa3\x6b\x80\x82\x65\xf5\x9d\x4b\xab\xea\x96\xa5\xce\xf0\xc1\xf3\xef\x1c\x27\x51\x78\x82\x31\xa0\x9c\xd2\x03\x96\x9e\xa3\x16\x8d\x19\xa9\x6a\x23\x48\x55\xeb\xa2\xd3\xf1\xe9\x18\x89\x02\x81\x33\x2e\x10\x58\x8f\x89\xea\x8a\x03\x56\xba\xa5\x3a\x40\x60\x94\x04\xa4\x24\x20\x25\x01\x29\x09\x38\xb7\x92\x80\xf5\x2b\x6f\x61\x39\xc0\x9e\x03\x0e\xce\x56\x04\xb0\xfe\xf1\xcb\x0b\x00\x8e\x59\x06\xa7\x94\xfd\xab\x97\x41\x79\xc9\xbf\x9e\x65\x40\xa1\x3f\x0a\xfd\x51\xe8\x8f\x42\x7f\x14\xfa\xeb\xad\xd0\x5f\x83\xd5\xff\xa8\xc8\x5f\x65\x5e\xd8\x82\xe2\x0d\x9b\x3d\xcd\x8c\x0b\x15\xd6\x8b\xbb\xaa\x48\xe1\x79\xe5\x4e\x69\xc2\x5e\x46\xf4\xb8\x2c\x61\xcf\xc3\x3a\x68\x31\xc2\x7a\xf1\x54\x14\x22\xec\x7b\xd9\x1c\x6b\xf9\xc1\x7a\xa1\x15\x20\x8d\xd6\xfe\xbc\xe8\xd3\x9f\xad\x41\xd7\xd0\x84\xeb\x05\x68\x0b\xa6\x95\x97\xfe\x88\x99\x16\x30\x6b\x04\x30\x0b\x8a\x05\xc5\x82\x62\x41\xb1\xa0\x58\x50\x2c\x28\x16\x14\xab\xcb\xd5\x16\x8a\x05\xc5\x82\x62\x41\xb1\xa0\x58\x50\x2c\x28\x16\x14\x0b\x8a\x05\xc5\x82\x62\x8d\x72\x44\xa1\x58\x59\xf1\x40\xb1\xa6\x4c\xb1\xf4\x8d\xdc\x58\xce\x3e\xd8\x29\xff\x6c\xb9\x5b\x91\x26\xe8\xae\xed\x6f\xf6\x7a\x2f\x9d\xf4\xf8\xc9\xc4\xda\x7b\x67\xee\x2a\x95\x48\xb2\x4a\x95\xef\xfd\x31\xd1\xcb\xaf\xf4\xe9\xae\x0e\x4e\xbe\x8c\xd7\x26\xe1\x62\xc2\x76\x83\x9d\x92\x99\x0d\x34\x4f\xcd\xbe\x57\x15\x35\x3a\xbe\x9f\x5f\x72\x34\x02\x70\x36\xd6\x72\xa5\x7a\xa9\x78\x1f\x5a\x83\x70\xb4\x64\xa2\x0f\x04\xd3\x8e\xdf\x23\xd0\x1a\x68\x0d\xb4\x06\x5a\x03\xad\x81\xd6\x40\x6b\xa0\xb5\x2e\x57\x5b\xd0\x1a\x68\x0d\xb4\x06\x5a\x03\xad\x81\xd6\x40\x6b\xa0\x35\xd0\x1a\x68\x0d\xb4\x36\xca\x11\x05\xad\x65\xc5\x03\x5a\x9b\x25\x5a\x2b\xe8\x11\xdc\x13\x61\x4b\x63\x35\x37\x56\x00\xe2\x04\xb2\x9e\xf0\xda\x9b\x83\xe6\xaf\xad\x9b\x48\x4b\x0c\x8d\x87\x83\x49\x73\x95\x31\x85\x53\xe7\xee\x10\xce\x01\xe6\x00\x73\x13\x05\x73\x40\x39\xa0\x1c\x50\x0e\x28\x07\x94\x03\xca\x01\xe5\x80\x72\x40\x39\xa0\x1c\x50\x0e\x28\x07\x94\x03\xca\x01\xe5\x80\x72\x53\x87\x72\xe9\x46\xdf\x75\x8e\x87\x29\xb5\xfd\x06\x36\x02\x1b\x81\x8d\xd3\x18\x51\x60\x63\x56\x3c\xc0\xc6\x59\xc1\xc6\x91\x25\xf0\x8d\x26\x73\x8f\x94\x3d\xc8\xe0\x84\xc9\xe0\xf0\x29\x7b\x60\x41\xb0\x20\x58\x10\x2c\x08\x16\x04\x0b\x82\x05\xc1\x82\x5d\xae\xb6\x60\x41\xb0\x20\x58\x10\x2c\x08\x16\x04\x0b\x82\x05\x17\x87\x05\xc1\x67\xe0\x33\xf0\xd9\x34\x46\x14\x7c\x96\x15\x0f\xf8\x6c\x5e\xf8\x6c\x7c\x49\x7a\x33\xc9\xce\x03\xbe\x01\xdf\x26\x0a\xdf\x00\x6f\x80\x37\xc0\x5b\xfc\xae\x01\xde\x00\x6f\x80\x37\xc0\x1b\xe0\x0d\xf0\x06\x78\x03\xbc\x01\xde\x00\x6f\x80\x37\xc0\x1b\xe0\x6d\x72\xe0\xad\x24\x1f\x8f\x44\x3c\x48\xe2\xd8\xb8\x13\x24\x11\x92\x08\x49\x84\x24\xe6\x84\x36\x32\x92\x18\xde\x56\xb0\x95\x56\xcc\x11\xf5\xe7\xff\xdc\x8c\xac\xc1\xde\x68\x3a\xeb\xfd\x16\x8b\x68\x4d\x73\x3d\x60\xe1\x3c\x60\xe1\x40\x99\x7a\x14\xf0\x04\x18\x02\x0c\x01\x86\x00\x43\x80\x21\xc0\x10\x60\x38\x46\x58\x06\x30\x04\x18\x02\x0c\x01\x86\x00\x43\x80\x21\xc0\x70\x8a\xc0\x30\x7a\x6a\xcd\x0d\xc3\xa1\x94\xfb\xdd\x17\x11\x58\xde\x56\xbd\x11\xc1\xde\xfa\x12\x8e\xbc\xb6\x57\x94\x7c\x32\x9e\xe2\xad\xef\x69\x29\x9f\xce\x14\xb5\x63\x10\xb0\x08\x58\x04\x2c\x02\x16\x01\x8b\x80\x45\xc0\x62\x25\x58\x1c\x49\xe6\xe2\x4c\xfa\x0a\x16\xa2\x49\xb0\x24\x58\x72\xa2\x58\x12\x24\x09\x92\x04\x49\xc6\xef\x1a\x48\x12\x24\x09\x92\x04\x49\x82\x24\x41\x92\x20\x49\x90\x24\x48\x12\x24\x09\x92\x04\x49\x82\x24\x27\x87\x24\xd3\x39\x8c\xb3\x68\x26\x08\x63\x85\xb1\xc2\x58\x61\xac\xa3\x1e\x51\x18\x6b\x56\x3c\x30\xd6\x59\x33\xd6\xb1\x64\x6d\x8e\x29\x5d\x93\x3c\x4d\x80\xe8\x84\x81\xe8\x80\x79\x9a\xd0\x50\x68\x28\x34\x14\x1a\x0a\x0d\x85\x86\x42\x43\xa1\xa1\x5d\xae\xb6\xd0\x50\x68\x28\x34\x14\x1a\x0a\x0d\x85\x86\x42\x43\x17\x47\x43\x81\x87\xc0\x43\xe0\x21\xf0\x70\xd4\x23\x0a\x3c\xcc\x8a\x07\x78\x38\x6f\x78\x38\xa2\xcc\xcc\xf9\xa4\x64\x82\x1e\x41\x8f\x13\x45\x8f\x60\x47\xb0\x23\xd8\x11\xec\x08\x76\x04\x3b\x82\x1d\xc1\x8e\x60\x47\xb0\x23\xd8\x11\xec\x08\x76\x04\x3b\x82\x1d\xc1\x8e\xd3\xc3\x8e\xf9\x24\x4c\xb2\x2f\x01\xa8\x00\xd4\x91\xe0\x36\x00\x2a\x00\x15\x80\x0a\x40\xcd\x09\x6d\x64\x00\x95\x1e\x99\xc5\xd4\x33\xd7\x19\xf3\x83\xe7\xdf\x39\x4e\x82\x42\x03\x30\x28\x18\x74\xa2\x18\x94\x4e\x99\x10\x51\x88\x68\xea\x87\x10\x51\x88\x28\x44\x14\x22\x0a\x11\x85\x88\x42\x44\x21\xa2\x10\x51\x88\x28\x44\x14\x22\x0a\x11\x9d\x1e\x11\x05\xa7\x81\xd3\xc0\x69\xd3\x18\x51\x70\x5a\x56\x3c\xe0\xb4\x79\xe0\xb4\xb1\x70\xb4\xe1\x01\x1a\xe4\xac\x68\x40\x21\x67\x90\x33\x92\x08\x41\x66\x20\xb3\xb2\xe9\x07\x32\x03\x99\x81\xcc\x40\x66\x20\xb3\xec\x72\x3b\x42\x5c\x04\x32\x03\x99\x81\xcc\x40\x66\x20\x33\x90\x19\xc8\x0c\x64\x96\x7d\x1a\x90\x19\xc8\x0c\x64\x06\x32\x03\x99\x2d\x0f\x99\x05\xd6\x17\xb5\xde\x3b\xa1\x05\x14\xa1\xb2\x56\x5c\xac\x6f\x16\xd4\x84\xb9\x6d\xd4\x4e\xd8\xee\xa3\xe7\x3f\x25\x73\x5b\x0a\xe3\xce\x2f\xa7\x63\x1b\xb5\xfb\x94\x88\xe0\xee\xfe\xe3\x7f\xe7\x7f\x3f\x14\xfd\x9a\x2c\x94\x4a\x84\x38\x71\x24\x75\x78\x33\x52\xc7\x5c\xa4\xaf\x5b\xf7\x26\x7d\xbb\x9d\xf6\xcb\x94\xb1\x16\xcd\x1a\xd9\xf4\x4d\xfa\xe7\xed\xdd\xfd\xc7\x3f\x8a\x8e\xe2\x7d\x3a\xfd\x7d\x8a\x05\xa9\xbb\x8a\xce\xe6\xb5\xfa\xdf\x6f\xb7\x2f\x78\xb3\xb6\xbe\xed\xf9\xf6\xee\xd9\x72\x64\x90\x1d\xc0\x4b\x63\x83\x77\x1b\xd0\x61\xce\x29\x2c\xcf\x71\x94\x15\x6f\x2f\xf7\xd1\x3d\xbc\x0b\xef\xa1\xe2\xd5\x30\x07\xa7\xdf\x8e\x77\xc9\x79\x4a\xcf\x51\x02\x84\x45\x7e\x4c\x8d\x26\xf1\xe0\xad\x9f\xf3\xd3\x31\x56\x25\x8a\xbe\xeb\x65\xaa\xfe\xac\x9f\xf3\x77\x2d\xb4\xa0\xe1\x44\xad\x9e\xa1\x30\x46\x18\x23\x8c\x11\xc6\x38\x37\xc6\x58\x61\x01\xd6\x71\xc6\x6a\x6f\x42\xb5\x25\x78\xd2\xda\xfb\xaf\x50\x70\x91\x77\xf5\x8d\x8e\x65\xb4\xc2\x19\x65\xe6\x41\xe6\xd9\xd2\xf1\x3c\x0f\x4a\x6c\x43\x69\x05\x3b\xb5\x5e\x89\x3b\x57\xd8\xae\x59\x59\x3c\x5f\xec\xdd\x64\x71\x5a\x8b\xb5\xff\xfc\xc7\xde\x15\x6b\xdb\x0f\x37\xc2\x6f\x2a\x99\xf1\xe1\xf2\xa9\x7d\xe1\xd1\x2b\x1f\xcf\x8d\x48\xc0\xe2\x71\xef\xeb\xb7\x6c\xeb\x7b\x96\x0a\xb4\xd3\x3a\x72\x63\x44\xb3\x6c\x25\xfe\xa9\xaf\xa8\x47\x4b\xcf\x9d\x1f\xc5\xb5\xb8\x73\x9c\x1f\xb5\x4b\x7a\x1d\xae\xd2\x7b\x37\x1c\xf8\x8d\x0a\x92\x29\x19\x9d\x4e\xad\x5b\x0c\x94\x79\x96\x61\x86\xe9\x6c\x60\xb8\x99\x28\xca\xe1\xf0\xd9\x24\xf2\x8f\xb4\x87\xcb\x76\x45\x60\x1c\x4f\xe2\x41\x3d\x9a\x08\xb6\x04\x22\x1c\x54\x89\x68\xf5\xd2\x53\x67\xaf\xcc\xe6\xf0\xa0\x84\xeb\xb9\xd7\xae\xda\x48\x3d\x41\x23\x1f\xd5\x4a\xfc\x23\xd9\xb0\x0d\x50\x4c\x5e\x8d\x48\x4b\xb4\x9f\x9e\xd4\xda\x96\x3b\xe5\x3c\x1f\x42\xcb\x0e\x5b\xae\xed\xbc\x89\x7c\x50\x5a\xe8\x62\xe3\x4b\x4b\xbf\x35\xb6\xb7\x4e\x14\x82\xc3\xa6\xad\xe3\xf6\xe2\x59\xba\x0f\xc2\x9b\x4c\x0f\x97\x0c\x8f\x8c\x1f\x28\xba\xc8\xa3\x59\x03\xe3\x53\xac\xcc\x7d\x3e\x29\xe9\x16\xde\x63\x8b\x61\xd6\xf7\x7c\xaf\x6f\xb9\xc8\xaf\x57\xe3\xd9\x1b\xcb\xf4\x3f\x25\x26\xa0\x99\x5c\xca\xe3\x02\xce\x36\xfd\x89\x10\x20\x42\x80\x08\x01\x22\x04\x88\x10\xe8\x2d\x42\xa0\xe1\x5e\x70\x14\x25\x70\xbe\x6d\xf1\xe7\x54\x52\xd1\xd6\x51\x32\x50\xc9\x12\x74\xef\x7b\x5b\xb9\xd1\xda\xd1\xbd\xe7\xd8\xd6\x73\x26\x1e\x3d\x9e\x74\x87\xac\xa4\x70\xda\xdd\xae\xfe\x6b\x25\x3e\x99\xf5\xcc\xa8\x2e\x5b\xe5\x86\x2f\xcb\x61\x4f\x55\xc2\xf3\xb7\x5f\xa4\x1b\xc7\xc7\xfb\x7b\x75\xf3\x28\x9d\xd8\x56\xfe\x7c\x69\xbe\xfe\x7c\x29\x1e\x6d\x57\x3a\xf6\xff\xc5\x1b\xc9\x83\x12\x72\xad\xb1\xb1\x77\x63\x90\xda\xfa\x60\x86\x99\xd3\x5f\x05\x87\x83\x8c\x7d\xba\x12\xef\x6d\xbd\x38\xa6\x6e\xdd\xf3\x8f\x9f\xed\x10\x24\xb0\x33\xe6\xb1\xb6\x51\xbc\xdd\x97\x36\x03\x6a\x9e\xe0\xe7\xf8\xd9\x4b\x55\x9e\x22\x40\xd7\xad\x61\xa6\x1f\x3d\x7c\x61\xbf\x78\xdf\xc5\x46\xfa\x0f\x72\x93\x71\x4e\x26\x46\x8d\xf2\x1f\x3d\xff\x29\x1c\x93\x42\x79\xfd\x9e\x7b\xa2\x72\x71\x69\xa5\x37\xd6\x58\xb7\x46\xb6\x76\xa8\x4d\x5a\xf6\xfa\x60\x0a\x6b\x5d\x41\x3b\x27\x92\x31\x0e\x34\x96\xd3\xdf\xc6\xda\xc0\x2a\x35\x98\xf1\x3e\x92\x50\xfa\x24\xd7\x23\x7b\xb1\x95\xb8\xb3\x2c\xb5\xdd\xe9\xbd\x29\x6d\xd9\x5d\x99\x67\xb8\x12\xd7\xd1\x04\xcc\x4e\xd0\xe0\x27\x71\xf5\x37\x69\x7d\xdd\xf8\xde\xde\x5d\x87\xbf\xd2\x79\x13\xfa\x47\x39\xc1\x19\x15\x32\xd2\x8f\xb3\x27\x89\x9f\xe0\x21\x39\xd3\x4f\xe2\xea\x83\xe7\xab\xd4\x69\x85\x25\x03\x4b\xae\xc3\xa7\x8f\xe4\x63\xd2\x6a\xf4\xf9\x02\x63\x7a\x1e\x9d\xf0\x31\x39\x47\x9b\x09\xb9\xcd\x4f\xf7\x61\x34\xce\x19\x87\xf3\x34\x1b\x87\xaa\x90\x9e\xa1\x46\x81\xe0\x9e\xde\xc6\xf7\x38\xc0\xe7\x7c\xbe\x8d\x21\x43\x7d\x9a\x09\xab\x22\xdc\xe7\xa5\xfa\x4f\x21\xa9\x83\x28\x9f\x88\xe9\x3e\xed\xe4\x6e\xdf\x94\xcf\x4d\x0e\x24\xa7\x0e\x2b\x49\x13\x36\x3b\xf2\x41\x5b\xea\x22\x5b\xf8\x88\x51\x17\x67\x09\x97\xd1\xde\x7c\xba\x70\x55\xa6\x70\xe7\xc5\x0a\x8c\x9f\xcc\x8f\x6c\xeb\x58\xa1\x8f\x3b\x23\x37\x85\xdc\xe1\x59\xd2\x88\xfb\xc5\x60\x9b\x6c\xe7\xe5\x64\x3b\x37\xdb\x59\xea\x32\x9e\xcf\x67\x82\x11\x97\x40\x5c\x02\x71\x09\xc4\x25\x10\x97\x50\xb4\xf8\x02\xbc\x27\x24\x11\x18\x28\x0c\x14\x06\x0a\x03\x85\x81\xc2\x40\xe7\xc5\x40\xc1\x12\x60\x09\xb0\x04\x58\xa2\x77\x2c\x71\x02\xba\x1f\x69\x3e\x72\x33\x11\x1e\xe7\x24\xbf\xd4\xe3\x36\x2a\xa0\x53\x7a\xc0\xb2\x0a\xce\xae\x52\x2c\xe3\xdb\xed\x2a\xe3\xc7\x9f\x73\x06\x62\x3d\x38\xea\xaa\xb4\xec\x19\x61\x51\x8b\xb2\xb2\x53\x29\x35\x73\x91\x1b\xb7\xcb\xad\x17\x74\x4c\xc6\x8c\xf5\x22\x64\x63\x08\x66\x0e\xe8\x14\x83\xb5\xcb\xef\xac\xe8\x95\xdf\xdb\xe2\xd0\x49\xc6\x27\x59\x47\xe9\x61\x1f\x6d\xd6\x91\xf6\x4e\xfc\x2a\x5d\xb9\x51\xbe\xf1\xb3\x85\x77\x25\x64\x10\x78\x96\xad\x0d\xc7\xc4\xa3\x25\xb5\x63\xd2\xf3\x85\x72\x77\xa1\x26\x17\x5b\xd2\x4f\xf2\x6b\x28\xc5\xdd\x17\x15\xa8\x58\x1d\x4a\xe7\xd6\xc4\x39\x38\x5a\x1d\xd4\xde\x2b\xcf\x17\xb7\x6f\x7f\x08\x7f\xeb\x4b\x4b\xe3\x2a\xc7\x73\x37\x46\xf9\xd1\x1e\x26\xcb\x73\x77\xd2\x76\xcd\xea\xa4\x3d\x38\x87\xdf\x6a\x17\x7e\x04\xd3\xc4\xc3\x73\xa2\xdf\x6f\x3c\x47\xba\x9b\x95\xe7\x6f\x6e\xb6\x5f\x37\x37\x7b\xd7\xb6\xbc\xb5\xba\xf9\xcb\xc7\xe0\x3e\x3c\x4b\x6b\x97\x70\x24\x9c\x2e\x87\x67\x54\xda\xd2\x74\x95\x98\xa6\x0a\xcc\xdb\x06\x0a\xcc\x3b\xe3\xdf\x1a\xdb\x8d\xbf\xad\xbd\x71\x13\x4d\x3b\xb6\x3b\x9f\x9f\xce\xa8\x95\x92\x49\xe8\x8c\x17\xa2\x55\xe5\x8d\x9b\xff\x17\x2e\x7b\xff\x39\x53\x01\x8e\xe6\xaa\xd8\x71\xd1\x0d\x4a\x6d\x64\xae\x8e\xe2\x35\x45\xc5\x8b\xe4\xe6\x05\x25\x37\x93\xc5\x45\x16\x17\x59\x5c\x64\x71\x61\x33\x96\xbd\x45\xa3\x4c\x99\x18\xc6\xfe\x22\xe3\xa3\x26\xe3\x63\x1a\x66\x58\xe2\xce\xee\x3c\xcf\xc3\x57\x72\x9d\x53\xbf\x9a\x1a\x53\xe1\xa1\x7d\x26\x77\xa4\x94\x12\xf5\x6f\x1d\xb2\xf5\x10\x7e\x92\xd6\x6e\x25\xc4\xfb\xf0\xff\xf8\xef\x4f\xd2\xd6\x3e\xbe\x40\x58\xce\x3e\xd8\x29\xff\xb0\xd5\x98\xd8\x4e\xe1\xd8\x5f\x95\xb8\x4a\x7a\x59\x5e\x85\x1a\x65\xac\x05\xad\xc4\xbd\x23\x5d\x57\x19\x55\x54\xeb\x29\xd2\x31\xaa\xd1\xed\x0f\x6d\xd6\x6e\x7d\x8f\x03\x69\x10\x89\xd0\x12\x05\xfc\x21\x16\x5f\xf8\xa4\xe2\xbd\x91\x58\xb8\x6b\x6c\x83\x58\x3a\x51\x54\xd3\x3e\x50\xbe\x0e\x47\x3a\xe8\xd2\xcf\x3d\x0b\x2a\xbc\x99\xf9\xc2\xe3\x71\x6f\x6d\xf8\xe6\x8a\xb6\x85\x8d\x9a\x88\x6b\xee\x25\x38\x57\x73\x99\xc8\x63\x52\x71\x0b\xe6\x15\xde\xca\xdd\x97\x62\x72\xab\xff\xcf\x7c\x53\x81\x18\x7b\xee\x77\x30\x5d\x42\xad\xc3\x3f\x5a\x15\x01\xbf\xd6\xc7\xfe\xb5\x7a\xe9\x7a\x52\xfe\x46\x35\xfa\x65\xb0\xf3\xe5\x4e\x6d\x6c\xeb\xba\xf9\x31\xe1\xe7\xe7\xe8\x97\x7a\x91\x6c\xa2\x74\x6c\xa5\xbf\xb3\x75\x76\x96\x09\x55\x6a\xa9\x80\xe8\xab\x8e\xc0\x99\xdb\x17\x57\xaf\x50\xde\xef\xb3\x31\x43\x02\x17\xef\xcc\x5d\xbc\xcb\x61\xeb\xb9\x4c\x87\xf8\xe5\x32\xd9\x38\xe1\x6a\x73\xc8\xf0\x7e\x55\xb2\x12\xbd\xd6\x0e\x2e\x93\x82\x2b\x1d\x7d\xa4\xeb\xb9\xd7\xe6\x68\xfd\x0b\xed\x63\x0e\xc4\xab\xbf\x07\x9e\x7b\x6f\x12\x9d\x7f\x0d\xd7\xbc\xe8\xf3\xa7\x78\x25\x3c\xfc\xf1\xf5\x98\xa0\x7f\xf3\x79\xf3\xc1\xf3\x2d\xed\x84\xdf\x78\x7a\xf0\x3d\xf1\xf9\xf2\x31\xfc\xdb\xe7\x4b\x71\x97\x91\xa6\x8e\xa3\x36\x1e\x73\x6d\x08\x44\x2f\xea\xb5\xb4\xf4\x00\xe8\x54\x59\xc7\xb6\x22\x1f\xa0\xb6\x1b\xbc\xef\xd1\xd8\x9a\x54\xd2\xad\xf2\xb6\x8e\x5a\x09\x73\x4d\x9d\x21\x1f\xcf\x29\x1d\xcd\x5c\x38\x10\xc9\xe5\xdb\x88\x37\xbc\x10\xe6\x83\xf9\x02\xf3\x61\x0c\xe6\xc3\x36\x17\x0a\x3c\x09\x03\x62\xdf\xb9\x53\x69\xeb\x48\xab\xad\x5a\x17\x1d\x3d\x63\xc5\x8e\x80\x49\x94\xba\x65\x29\x75\x23\xd2\x9d\xd8\xe2\x93\x6f\x08\x98\x5c\x96\x6e\xb2\x9f\x88\x6b\xf3\x42\x34\x8b\x3a\xd4\x99\x53\x55\x5d\xbf\x3a\xc7\x65\x51\x9a\xbd\xbb\xb6\xbf\xd9\xeb\xbd\x74\xd2\x29\x7b\x32\x29\xac\x91\x79\xf4\x55\x2a\xe0\xe6\xc7\x24\x54\xe7\x4a\x9f\xe9\xea\x50\x66\x29\x53\x37\x27\xd1\x88\x84\xed\x06\x3b\x25\x33\x1e\xcb\xbc\xbe\xf4\xbd\xd2\x0d\xf6\x4b\x2e\x3f\x89\x44\xba\xb1\xc6\x13\xe8\x3c\xd0\xf7\xdf\x94\xbb\xe0\x6c\x3a\x3d\x84\xcb\x48\xa9\xa3\x76\xe1\x8c\x6b\x17\xd6\x33\xa5\xba\xba\x85\xed\x3b\x3b\x37\xe3\x65\x54\x2b\xa4\x5a\x21\xd5\x0a\xa9\x56\x38\xb7\x6a\x85\xf5\x2b\x6f\x61\xa5\xc2\x9e\xa3\x13\xce\x56\x9f\xb0\xfe\xf1\xcb\x6b\x13\x8e\x59\x06\xa7\x54\x24\xac\x97\x41\x79\x35\xc2\x9e\x65\x40\x0d\x42\x6a\x10\x52\x83\x90\x1a\x84\xd4\x20\xec\xad\x06\x61\x83\xd5\xff\xa8\xfe\x60\x65\xee\xde\x82\x82\x13\x9b\x3d\xcd\x8c\x6b\x28\xd6\x8b\xbb\xaa\x7e\xe2\x79\xe5\x4e\xd5\xc4\x5e\x46\xf4\xb8\x62\x62\xcf\xc3\x3a\x68\x9d\xc4\x7a\xf1\x54\xd4\x48\xec\x7b\xd9\x1c\x6b\x65\xc4\x7a\xa1\x15\x80\x8c\xd6\xfe\xbc\xe8\xd3\x9f\x2f\xa2\x62\x05\x15\x39\x7a\x82\x63\x69\x22\xe6\xc6\xfb\x7d\x61\xe3\xa0\x4e\xc8\xd8\x9b\x83\x8e\xaf\xed\x98\x48\x1f\x0c\xcd\x84\x83\xf1\x72\x95\x31\x7a\x53\xe7\x6e\xcf\xd5\x60\x6a\x30\xb5\x09\x31\x35\x78\x1a\x3c\x0d\x9e\x06\x4f\x83\xa7\xc1\xd3\xe0\x69\xf0\x34\x78\x1a\x3c\x0d\x9e\x06\x4f\x83\xa7\xc1\xd3\xe0\x69\xf0\xb4\x69\xf1\x34\xea\x97\x80\x08\x27\x03\x94\x40\x84\x20\x42\x10\x21\x88\x30\x27\xb4\x01\x11\xe1\x83\xda\xc9\xdb\x9b\x56\x2c\x70\x90\x84\xd8\xdc\x98\x6f\xd4\x2e\xab\xbb\x9b\xe1\xad\x40\x79\x1b\xb5\x4b\x83\x3c\xfd\xfc\x77\xf7\x1f\xff\x28\x3a\x94\x54\xe0\x13\x19\x5b\x4a\x90\xb3\x6b\x05\xa7\x67\x4a\xea\xd8\x8b\xf4\xf5\x9b\xbe\x68\x15\x09\xaa\x3d\x76\xc5\x48\xd5\x0c\xcf\xa7\xa4\x56\xbc\x29\xc7\x1d\x32\xf4\x33\xbc\x4b\x4e\x46\xc3\x8c\xcc\xd5\xa1\x40\x50\x20\x28\x10\x14\x68\xe6\x14\xa8\x59\xc9\x96\x42\x12\x74\xb6\x6a\x3a\x14\x3d\x6a\x3c\x50\x43\x16\x3d\x3a\x1b\xba\x3b\xa1\xcc\x50\x21\xba\xa2\x7d\x13\xed\x9b\x46\x36\xfd\x4f\xa1\xb6\xcd\xe4\x52\x4e\x6e\xcf\x36\xfd\x61\xb8\x30\x5c\x18\x2e\x0c\x17\x86\xdb\x1b\xc3\x6d\xb8\x17\x1c\x71\x5c\xba\x1a\xd2\xd5\x90\xae\x86\x74\x35\x9c\x44\x57\xc3\xe6\x13\x72\xc6\xd1\x09\xcd\xc6\xa1\x2a\x42\x61\xa8\x51\x20\x56\xa1\xb7\xf1\x3d\x8e\x57\x38\x9f\x6f\x63\xc8\xc8\x85\x66\xc2\xaa\x88\x5e\x78\xa9\xfe\x53\x88\xeb\x00\xcc\x74\x2a\xcd\x73\xe5\xd4\xb1\x95\xed\x4a\x0f\x2a\xd3\x08\x13\x3a\x73\x0f\x75\x86\xee\xa5\xc6\x63\xe6\x47\x56\x76\xac\xda\x17\x26\x9b\x57\x30\xef\xf0\x2c\x47\xc4\xbb\xeb\x6e\xa6\xa4\xa7\xce\x38\x3d\xb5\xd9\x46\x53\x97\xa2\x7a\x3e\x8b\x8c\x30\x05\xc2\x14\x08\x53\x20\x4c\x81\x30\x85\xa2\xc5\x17\xfe\x3d\x21\x89\x80\x44\x41\xa2\x20\x51\x90\x28\x48\x14\x24\x3a\x2f\x24\x0a\xa5\x80\x52\x40\x29\xa0\x14\xbd\x53\x8a\x13\x48\xfe\x48\xb3\x2d\x9b\x89\xf0\x38\xe3\x72\x56\xed\xc2\x4b\x0f\x58\x56\x35\xd0\x6c\xef\x4f\xed\xcb\x5f\x1d\x77\x44\x5c\x36\x4c\x1a\x69\x87\xbd\x5a\x80\xd4\xa2\x2c\xe8\x54\xea\x6a\x5c\xe4\x06\xef\x72\xeb\x05\x1d\xd3\x32\x63\xcc\x08\xd9\x18\x8c\x99\x03\xba\x47\x63\x63\xee\xc6\x5e\xb0\x60\xd0\x92\x7d\x39\xd9\x49\xb4\x64\xa7\x25\x7b\xc1\xcd\x4c\x47\xbb\x99\x50\x5f\xf6\x17\xdd\xfd\xdb\xda\xbb\x37\xf1\xb7\xa3\xbc\xfd\x99\xaa\x95\x5a\x65\x99\x8e\x5a\x79\x21\xda\x17\xf1\x28\xe8\xa7\xd1\x63\x2d\x8f\xe6\x2a\x5b\x49\xfd\x0e\xaa\x76\x64\xae\x8e\x6e\x36\x45\xdd\x8c\x3c\xe9\x05\xe5\x49\x93\x10\x46\x42\x18\x09\x61\x24\x84\x61\x56\x96\xbd\x45\xa3\xcc\xbe\x18\xc6\x30\x23\x79\x24\xfa\x5d\x65\xf2\xc8\x84\x4c\xb3\xc4\x0b\xde\x79\xca\x88\xaf\xe4\x3a\xa7\x88\x35\xb5\xad\xc2\x43\x7b\xcf\x13\x49\xe9\x28\xea\xdf\x3a\xfa\xeb\x21\xfc\x24\xad\xdd\x4a\x88\xf7\xe1\xff\xf1\xdf\x9f\xa4\xad\xbd\x82\x81\xb0\x9c\x7d\xb0\x53\xfe\x61\xe7\x31\x61\xa2\xc2\xb1\xbf\x2a\x71\xf5\x9b\x7c\x52\xc1\x56\x5a\xea\x2a\x54\x30\x63\xa5\x68\x25\xee\x1d\xe9\xba\xca\x68\xa6\x5a\x6d\x91\x8e\xd1\x94\x6e\x7f\x68\xb3\x94\xeb\x7b\x1c\x48\xa1\x48\x84\x96\xe8\xe3\x0f\xb1\xf8\xc2\x27\x15\xef\x8d\xc4\xc2\x4d\x64\x1b\xc4\xd2\x89\x02\xa4\xf6\x81\xf2\x75\x64\xd3\x41\xb5\x7e\xee\x59\x50\xe1\xcd\xcc\x97\x43\x8f\x7b\xa7\xc3\x87\x17\xfd\xae\x64\xab\xd8\xa8\x29\xb9\xf0\x5e\x42\x86\x69\x22\x71\xfc\x98\x83\xc1\x6e\x1d\x58\xd2\xaa\x02\xf9\xb5\x3e\xf6\xaf\xd5\x2b\xd9\x93\xf2\x37\xaa\xd1\x2f\x83\x9d\x2f\x77\x6a\x63\x5b\xd7\xcd\x8f\x09\x3f\x3f\x47\xbf\xd4\x6b\x66\x13\x45\x64\x2b\xfd\x9d\xad\xf3\xbe\x4c\x10\x54\x4b\xa5\x64\x9b\xef\x52\x3c\x47\x44\x5f\xa1\xdf\xdf\x67\x43\x92\x04\x5e\xe0\x99\x7b\x81\x97\x43\xe8\x73\x89\x14\xf1\xcb\x65\x92\x7d\xc2\x25\xe7\x90\x40\xfe\xaa\x64\x39\x7a\xad\x7d\x60\x26\xc3\x57\x3a\xfa\x48\xd7\x73\xaf\xcd\xd1\xfa\x17\xda\x0d\x1d\x88\x57\x7f\x0f\x3c\xf7\xde\xe4\x51\xff\x1a\x2e\x7c\xd1\xe7\x4f\xf1\x72\x78\xf8\xe3\xeb\x31\x85\x0e\x34\x9f\x37\x1f\x3c\xdf\xd2\x7e\xfa\x8d\xa7\x07\xdf\x13\x9f\x2f\x1f\xc3\xbf\x7d\xbe\x14\x77\x19\x69\xea\x30\x6d\xe3\x54\xd7\xc6\x41\xf4\xa2\x5e\x4b\x4b\x0f\x80\xce\xc4\x75\x6c\x2b\x72\x13\x6a\x5b\xc2\xfb\x1e\x8d\xad\xc9\x54\xdd\x2a\x6f\xeb\xa8\x95\x30\xd7\xd4\x09\xf8\xf1\x9c\xd2\xc1\xd2\x85\x03\x91\x5c\xbe\x8d\x78\xc3\x0b\x61\x52\x98\x2f\x30\x29\xb2\x0f\x35\xb4\x49\xb1\x1d\x69\x03\xfa\x7a\xa3\x62\xdf\xb9\xf3\x69\xeb\x48\xab\xad\xaa\x17\x1d\x3d\x77\x65\x8f\x78\x4c\xb4\xbd\x05\x6a\x7b\x23\x52\xaa\xd8\xfb\x93\x6f\x88\xc7\x6c\x74\xf7\x73\xd5\x5c\xf6\x53\x72\x86\x5e\x88\x13\xe2\x19\x75\x2a\x57\x55\x6b\xb2\xce\xc9\x5b\x94\xf7\xef\xae\xed\x6f\xf6\x7a\x2f\x9d\x74\x0e\xa1\x4c\x2a\x7d\x64\x84\xb0\x4a\x45\xf1\xfc\x98\xc4\xff\x5c\xe9\x33\x5d\x1d\xea\x3e\x65\x0a\xf9\x24\x4a\x93\xb0\xdd\x60\xa7\x64\xc6\xd1\x99\x57\xa9\xbe\xd7\x7b\xcf\x7e\xc9\xe5\x4a\x91\xde\x37\xd6\x48\x05\x9d\x9d\xfa\xfe\x9b\x72\x97\x9e\xde\xa7\xc7\x71\x41\x39\x7e\xd4\x56\x9c\x71\x6d\xc5\x7a\x32\x55\x57\x57\xb1\x7d\x5f\xdd\x66\xd4\x8d\x6a\x8a\x54\x53\xa4\x9a\x22\xd5\x14\xe7\x56\x4d\xb1\x7e\xe5\x2d\xac\xa4\xd8\x73\x8c\xc3\xd9\xea\x27\xd6\x3f\x7e\x79\xed\xc4\x31\xcb\xe0\x94\x8a\x89\xf5\x32\x28\xaf\x96\xd8\xb3\x0c\xa8\x91\x48\x8d\x44\x6a\x24\x52\x23\x91\x1a\x89\xbd\xd5\x48\x6c\xb0\xfa\x1f\xd5\x47\xac\xcc\x0f\x5c\x50\x88\x63\xb3\xa7\x99\x71\x8d\xc7\x7a\x71\x57\xd5\x77\x3c\xaf\xdc\xa9\xea\xd8\xcb\x88\x1e\x57\x74\xec\x79\x58\x07\xad\xe3\x58\x2f\x9e\x8a\x1a\x8e\x7d\x2f\x9b\x63\xad\xdc\x58\x2f\xb4\x02\xa4\xd1\xda\x9f\x17\x7d\xfa\xf3\xe5\xa4\xac\xa0\xfe\x47\x4f\xc0\x2c\x4d\xc9\xdc\x78\xd3\x2f\x6c\x71\xd4\x09\x2d\x7b\x73\x50\xf4\xb5\x31\x13\x29\x85\xa1\xad\x70\xb0\x60\xae\x32\x96\x6f\xea\xdc\x2f\x64\x6d\x70\x36\x38\xdb\xd4\x38\x1b\x8c\x0d\xc6\x06\x63\x83\xb1\xc1\xd8\x60\x6c\x30\x36\x18\x1b\x8c\x0d\xc6\x06\x63\x83\xb1\xc1\xd8\x60\x6c\x30\x36\x18\xdb\x04\x19\x1b\x95\x51\xc0\x86\x93\x81\x4c\x60\x43\xb0\x21\xd8\x10\x6c\x98\x13\xda\xb9\xb0\xe1\xce\xf3\xe5\x46\xc5\xcc\xb0\x15\x0f\x1c\x24\x83\x36\x37\xd0\x1b\x5d\xe4\xf8\xd1\xf3\x9f\x92\x89\x2d\x85\xe1\x13\xe5\x44\x6f\xa3\x76\x9f\xcc\xf3\xdf\xdd\x7f\xfc\xef\xfc\x8f\x49\x18\x3e\x91\xab\x25\x42\x9c\x3a\x55\x33\x73\x22\x75\xc0\x45\xfa\xa2\x95\x2f\xd0\xb7\xdb\x69\xbf\x43\x19\xa3\xd7\xac\x8b\x8d\x5e\xa0\x7f\xde\xde\xdd\x7f\xfc\xa3\xe8\x10\x5e\xa3\xd3\x5f\xa3\x58\x90\xb3\x68\xf5\x68\x26\xc8\xff\x7e\xbb\x6d\xfb\x42\x59\x81\xbd\xf6\xed\x6f\x86\xf6\x9e\xa3\x5d\x4d\xaa\x8e\xbf\xf7\x28\xde\x7d\xfa\xf8\xb3\xbe\x7c\xc5\x8b\x10\xb5\xad\x89\xdf\x85\x77\xc9\x09\x0a\x0f\xa6\x69\x0d\x44\x14\x22\x0a\x11\x85\x88\xce\x90\x88\x36\x2b\x7d\x54\x48\x45\xcf\x56\x95\x8a\xe2\x61\x8d\x07\x6a\xc8\xe2\x61\x67\xc3\xd8\x27\x94\xeb\x2a\xc4\xb8\xb4\x50\xa3\x85\xda\xc8\xa6\xff\x29\x11\x0c\xcd\xe4\x52\x1e\xc5\x70\xb6\xe9\x4f\x3c\x03\xf1\x0c\xc4\x33\x10\xcf\x40\x3c\x43\x6f\xf1\x0c\x0d\xf7\x82\xa3\x98\x06\x3a\x8b\xd2\x59\x94\xce\xa2\x74\x16\x9d\x44\x67\xd1\xe6\x13\x72\xc6\x91\x3a\xcd\xc6\xa1\x2a\x5a\x67\xa8\x51\x20\x6e\xa7\xb7\xf1\x3d\x8e\xdd\x39\x9f\x6f\x63\xc8\x28\x9e\x66\xc2\xaa\x88\xe4\x79\xa9\xfe\x53\x88\xe7\x60\xc7\xcb\xec\x16\x5c\x84\x8c\x53\xc7\x54\x76\x09\x3e\xa8\x4a\x9d\x64\x36\x67\x68\x74\x71\x5a\x73\x11\xe3\xcd\xa7\x34\x9f\xb5\x47\xb0\xf1\x8e\xf9\x91\x45\x1d\xab\xf1\x71\xcd\x85\x26\x3c\x3b\x3c\xc3\x81\x66\xbf\x84\x61\x93\x86\xbd\x9c\x34\xec\x66\x9b\x48\x5d\x2a\xf6\xf9\xac\x2d\x42\x10\x08\x41\x20\x04\x81\x10\x04\x42\x10\x8a\x16\x5f\xd8\xf6\x84\x24\x02\xee\x04\x77\x82\x3b\xc1\x9d\xe0\x4e\x70\xe7\xbc\x70\x27\x04\x02\x02\x01\x81\x80\x40\xf4\x4e\x20\x4e\xa0\xf4\x23\xcd\x2a\x6e\x26\xc2\xe3\xcc\xe2\x59\xf5\xda\x2f\x3d\x60\x59\xf5\x6f\x57\x31\xb9\xf8\x76\xbb\x4a\x1c\xf8\xb3\xcd\x27\xac\x87\x43\x9d\xb5\x93\x3c\x03\x10\x6a\x51\xde\x76\x2a\xf5\x61\x2e\x72\x03\x76\xb9\xf5\x82\x8e\xe9\x97\x31\x56\x84\x6c\x04\xba\xcc\x8f\xbb\x41\x5d\xed\xd2\x35\x2b\x6a\x0a\x75\xbf\x00\x74\x92\xb9\x49\xf6\x50\x7a\xbc\x47\x9b\x3d\x94\xee\xae\x6f\x9c\x68\xba\x2e\x96\x0c\x02\xcf\xb2\xb5\x55\x98\xb8\xab\xa4\xf6\x3a\x7a\xbe\x50\xee\x2e\x54\xd3\x62\x33\xf9\x49\x7e\x0d\xa5\xb8\xfb\xa2\x02\x15\xeb\x3a\xe9\x1c\x99\x38\x97\x46\xeb\x7a\xda\x35\xe5\xf9\xe2\xf6\xed\x0f\xe1\x6f\x7d\x69\x69\x16\xe5\x78\xee\xc6\x68\x36\xda\x7d\x14\xda\xf9\xd2\x76\xcd\x5a\xa4\xdd\x33\x87\xdf\x6a\xff\x7c\x44\xca\xc4\xc3\x73\xa2\xbc\x6f\x3c\x47\xba\x9b\x95\xe7\x6f\x6e\xb6\x5f\x37\x37\x7b\xd7\xb6\xbc\xb5\xba\xf9\xcb\xc7\xe0\x3e\x3c\x4b\x6b\x7f\x6f\x24\x9c\x2e\x87\x67\x54\xaa\xd0\x04\x35\x94\xa6\xda\xc9\xdb\x06\xda\xc9\x3b\xe3\xb5\x1a\xcd\x1d\xbf\xad\xbd\x63\x13\x07\x3b\x9a\x5b\x9e\x99\x0a\xa8\x55\x8d\x71\xab\x80\x17\xe2\xa4\x7a\x18\x05\x5d\x5c\x7a\x2c\x8b\xd1\x4c\xa3\xca\x97\xc2\xa0\x00\x46\x89\x54\x51\xa3\xd2\x83\x3c\x5a\x35\x8a\x94\xe3\x05\xa5\x1c\x93\x5b\x45\x6e\x15\xb9\x55\xe4\x56\x61\x01\x96\xbd\x45\x23\xb2\x00\xb1\xa7\xc6\x90\x6f\x31\x72\x8b\x2a\x71\x34\x77\x9e\x65\xe1\x2b\xb9\xce\x29\x57\x4d\xec\xa3\xf0\xb0\x5e\x52\x2b\x52\x7a\x86\xfa\xb7\x0e\x98\x7a\x08\x3f\x49\x6b\xb7\x12\xe2\x7d\xf8\x7f\xfc\xf7\x27\x69\x6b\x27\x5c\x20\x2c\x67\x1f\xec\x94\x7f\xd8\x3d\x4c\x64\xa5\x70\xec\xaf\x4a\x5c\xfd\x26\x9f\x54\xb0\x95\x96\xba\x0a\x95\xc4\x58\xb1\x59\x89\x7b\x47\xba\xae\x32\xda\xa5\x56\x3d\xa4\x63\xb4\x9d\xdb\x1f\xda\x2c\xc7\xfa\x1e\x07\x52\x0a\x12\xa1\x25\x3a\xf5\x43\x2c\xbe\xf0\x49\xc5\x7b\x23\xb1\x70\x23\xd8\x06\xb1\x74\xa2\x98\xa2\x7d\xa0\x7c\x1d\x0c\x74\x50\x8f\x9f\x7b\x16\x54\x78\x33\xf3\x45\xb7\x33\xde\xad\x66\xb6\xf4\x6f\xd4\xd8\x3d\x69\x2f\x81\xa9\xe9\xfe\x21\x25\x97\xa7\x77\xc8\x39\xd8\xb0\x8e\xb3\x68\x55\x3f\xfb\x5a\x1f\xfb\xd7\xea\x55\xea\x49\xf9\x1b\xd5\xe8\x97\xc1\xce\x97\x3b\xb5\xb1\xad\xeb\xe6\xc7\x84\x9f\x9f\xa3\x5f\xea\xf5\xb0\x89\x52\xb1\x95\xfe\xce\xd6\x69\x50\x26\x26\xa8\x85\x82\xa1\xaf\x38\x47\xa2\x5d\xe1\x9d\xbd\xcf\x46\xe4\x08\xbc\xb2\x33\xf7\xca\x2e\x07\x6e\xe7\xf2\x08\xe2\x97\xcb\xe4\xba\x84\x4b\xcc\x21\x7f\xfa\x55\xc9\xf2\xf3\x5a\xfb\xa4\x4c\x82\xab\x74\xf4\x91\xae\xe7\x5e\x9b\xa3\xf5\x2f\xb4\x5b\x38\x10\xaf\xfe\x1e\x78\xee\xbd\x49\x23\xfe\x35\x5c\xe8\xa2\xcf\x9f\xe2\xe5\xef\xf0\xc7\xd7\x63\xa2\xee\xcd\xe7\xcd\x07\xcf\xb7\xb4\xdf\x7c\xe3\xe9\xc1\xf7\xc4\xe7\xcb\xc7\xf0\x6f\x9f\x2f\xc5\x5d\x46\x9a\x3a\x4a\xd9\x38\xb9\xb5\xa2\x1f\xbd\xa8\xd7\xd2\xd2\x03\xa0\x13\x51\x1d\xdb\x8a\xdc\x76\xda\x2e\xf0\xbe\x47\x63\x6b\x12\x35\xb7\xca\xdb\x3a\x6a\x25\xcc\x35\x75\xfe\x79\x3c\xa7\x74\xac\x70\xe1\x40\x24\x97\x6f\x23\xde\xf0\x42\x98\x07\xe6\x0b\xcc\x83\x01\x49\x7b\x2e\xbc\x76\xdc\x06\xc2\xbe\x73\xc7\xd0\xd6\x91\x56\x1b\xd5\x2d\x3a\x72\x8e\xca\x1b\xe1\x88\x68\x6c\x0b\xd1\xd8\x46\xa4\x18\xb1\x7f\x27\xdf\x10\x8e\x38\x6b\x8d\x63\x3f\x76\x87\xe4\x85\x68\x16\xda\xe7\x7a\x6b\x35\x58\xa3\xab\xdf\xbc\xb5\x3a\x21\xb6\x2f\xdd\xe6\x2a\x7f\x28\x31\x7e\x54\x98\xa2\xc2\x14\x15\xa6\xa8\x30\x45\x85\xa9\x41\x0c\x0e\xec\xc2\xc6\x03\x45\x93\xab\x31\x15\x02\x23\xe2\x7c\x41\x11\xe7\x54\x7d\xa3\xea\x1b\x55\xdf\xa8\xfa\x46\xd5\x37\xaa\xbe\x51\xf5\x8d\x44\x2c\x12\xb1\x48\xc4\x22\x11\x2b\x3f\x23\x69\x72\x45\x89\x49\x4a\x4c\x52\x62\x72\xe2\x25\x26\x0b\xd1\x1c\x38\x9e\x26\x57\x05\xc7\x8c\xaf\xc9\x55\x8e\xf0\x8e\xbb\xc5\x55\x0d\xc9\xce\x37\xb8\x6a\x4b\xaf\x69\x6f\x45\x7b\x2b\xf3\x15\xed\xad\x08\x3e\x20\xf8\x80\xe0\x03\x82\x0f\x08\x3e\x80\x6a\x03\x3a\xeb\x25\x02\xe8\x04\x74\x02\x3a\x01\x9d\x80\xce\x05\x83\x4e\xd8\x03\xec\x01\xf6\x00\x7b\xa0\xbd\x15\xed\xad\x68\x6f\x95\x7c\x73\x62\xee\xe3\x6f\xde\x5a\xd1\xdc\xaa\xf8\x67\xa3\x02\x41\xb4\xb6\xea\xaa\xb5\x55\x0d\xe0\x3a\x6e\x6c\x75\xde\x04\xcd\x33\xd5\x91\xd0\x0f\xd5\xec\xa5\x27\x5b\x68\x06\xd9\x42\x54\x91\xa0\x8a\x44\xc1\xcd\x8c\x59\x2f\x99\x52\x0d\x89\xd3\xee\x77\x04\x05\xd8\x4f\xb9\xe1\x99\x29\x7d\x67\x6e\x67\x75\xba\xd2\x77\x21\x4e\xa8\x78\x31\x40\x2b\xab\x13\x8b\x5d\x50\xe2\xa2\x50\xa2\x28\x4e\xe9\x41\x1e\xad\xe2\x44\x52\xf1\x82\x92\x8a\xc9\x9e\x22\x7b\x8a\xec\x29\xb2\xa7\xb0\xf9\xca\xde\xa2\xd1\xd8\x7c\xd8\x50\xc3\x67\x53\x8c\xda\x8a\x4a\xdc\xc9\x67\x6a\x60\x55\x63\x15\xe5\xdb\x57\x75\x94\x38\x41\xf3\xaa\x64\xe0\x9b\xab\x02\x34\xaf\x8a\xfe\xb1\x47\xb1\xe4\x1f\x1d\x33\x8a\xd6\x55\xe7\x45\xa5\xb9\xc6\x55\xc7\x17\xa7\x6d\x15\x6d\xab\x86\x69\x5b\x55\xa3\x56\x1c\x35\xad\x9a\x07\xad\xa6\x65\x15\x1e\xd8\xe5\xa1\x6b\x5a\x56\x75\x39\x6f\x68\x59\x85\x51\x80\x51\x50\x20\xc7\x09\x37\xac\x7a\x89\x59\x70\xb6\x76\x55\xb5\x9e\xa0\xa3\x66\x55\xf3\x50\xda\x08\x31\x44\x4f\x5b\x84\x9e\x36\x22\x75\x88\x5d\x3b\xf9\x86\x10\xc3\xe4\xd4\x73\xd3\x32\xce\xda\xa4\xaa\xa7\x80\xbd\xe8\x2f\x96\x23\x83\x60\xa0\x46\x55\x91\xca\xf1\x2e\xbc\x85\x13\x02\xf8\x92\x73\x94\x1d\x4f\x3c\x1f\x55\xa3\xa8\x1a\x45\xd5\x28\xaa\x46\x51\x35\x6a\x10\xd3\x03\x0b\xb1\xf1\x40\xd1\xb2\x6a\x4c\xc5\xbd\x88\x2e\x5f\x50\x74\x39\x95\xdc\xa8\xe4\x46\x25\x37\x2a\xb9\x51\xc9\x8d\x4a\x6e\x54\x72\x23\xe9\x8a\xa4\x2b\x92\xae\x48\xba\xca\xcf\x48\x5a\x56\x51\x36\x92\xb2\x91\x94\x8d\x9c\x78\xd9\xc8\x42\x48\x07\x98\xa7\x65\x55\xc1\x31\x23\x6b\x59\x55\x82\x79\x47\xdc\xb7\xaa\x21\xd8\xce\x34\xaf\x7a\x29\xcc\xa6\x83\x15\x1d\xac\xcc\x57\x74\xb0\x22\x16\x81\x58\x04\x62\x11\x88\x45\x20\x16\x01\xc8\x0d\xf7\xac\x97\x08\xdc\x13\xee\x09\xf7\x84\x7b\xc2\x3d\x17\xcc\x3d\x41\x11\xa0\x08\x50\x04\x28\x82\x0e\x56\x74\xb0\xa2\x83\x55\xf2\xcd\x29\x69\x91\x69\x1f\x3e\x6d\xac\x8a\x7f\x36\x3e\x38\x44\x2f\xab\x4e\x7a\x59\x35\x84\x5e\xb9\x86\x56\xc3\xe4\x70\x9e\xa3\xe4\x44\xe6\xc9\x9a\x2d\x04\x64\x15\xcd\x20\xab\x88\xba\x13\xd4\x9d\x28\xb8\x99\xd1\x2b\x2c\x93\x29\x3e\xd1\xee\xa6\x87\x2e\xd0\xde\xe6\xae\x67\xa6\x17\x9e\xb3\xd3\x55\x7b\xbd\xf0\x42\x9c\x5c\x3d\xe3\xdc\x4d\xaf\xda\x15\xce\xa0\x5c\x46\xfa\xea\x28\x57\x53\x54\xae\x48\x50\x5e\x50\x82\x32\x99\x58\x64\x62\x91\x89\x45\x26\x16\x76\x61\xd9\x5b\x34\x2e\xbb\x10\x13\x6b\x70\x13\xeb\xbc\x8d\xb0\xc6\x98\x99\x51\xd0\x0d\xab\xa1\xb9\x94\x69\x89\xd5\x71\x3a\x06\x7d\xb1\x92\x29\xd0\x5c\x47\xa0\x2f\x56\xf4\x8f\xcd\x8b\x6d\x60\xac\xcd\xb1\x86\x01\xb0\xe9\x0e\x59\xe5\x77\x40\x9b\x2c\xda\x64\x0d\xd0\x26\xab\xa1\xbe\x91\xed\x95\x35\x2f\x10\x4e\xc3\x2c\x7c\xb6\xcb\x03\xe2\x34\xcc\xea\x72\xde\xd0\x30\x0b\x6b\x01\x6b\x61\x6e\x5d\xb3\xba\xb0\x17\xce\xd3\x3a\xab\xb1\xdb\x28\xdb\x3f\x6b\x5e\x8a\x1c\x11\x8d\x28\x70\xcb\x51\xe0\x46\xa4\x27\xb1\x9d\x27\xdf\x10\xd1\x58\x70\xd3\x73\xd3\x41\xce\xd7\x53\xab\xe7\xd0\xc0\x6f\x9e\xb3\x7f\x52\x72\xb7\x93\xd6\x97\x27\x1d\x61\x31\x44\x6f\xad\x7f\xea\xbb\xb8\x4b\xee\xa2\x79\x98\xe0\xa1\xbf\x56\xd5\x39\x08\x1a\xa4\xae\x15\x75\xad\xa8\x6b\x45\x5d\x2b\xea\x5a\x0d\x62\x94\x60\x3b\x36\x1e\x28\x7a\x6c\x8d\xa9\xfc\x18\x21\xec\x0b\x0a\x61\xa7\xd6\x1c\xb5\xe6\xa8\x35\x47\xad\x39\x6a\xcd\x51\x6b\x8e\x5a\x73\x64\x76\x91\xd9\x45\x66\x17\x99\x5d\xf9\x19\x49\x8f\x2d\x0a\x5b\x52\xd8\x92\xc2\x96\x13\x2f\x6c\x59\x08\xeb\x40\xf6\xf4\xd8\x2a\x38\x66\x64\x3d\xb6\x2a\x50\xef\x88\xfb\x6c\x9d\x00\xb9\x33\xbd\xb6\xba\x00\xdb\xf4\xdb\xa2\xdf\x96\xf9\x8a\x7e\x5b\xc4\x25\x10\x97\x40\x5c\x02\x71\x09\xc4\x25\x00\xbc\x61\xa0\xf5\x12\x81\x81\xc2\x40\x61\xa0\x30\x50\x18\xe8\x82\x19\x28\x58\x02\x2c\x01\x96\x00\x4b\xd0\x6f\x8b\x7e\x5b\xf4\xdb\x4a\xbe\x39\x25\x6f\x32\xef\xc7\xa7\xe7\x56\xf1\xcf\xc6\x09\x8b\xe8\xbb\xd5\x49\xdf\xad\x13\x20\x58\xae\xf7\xd6\x70\xf9\x9d\xe7\xa8\x56\x71\xf4\x74\xcd\x16\x06\xb2\x8e\x66\x90\x75\x44\xc5\x0a\x2a\x56\x14\xdc\xcc\x24\x94\x98\xc9\x54\xad\x68\x7f\xe3\x43\x17\x8a\x6f\x7b\xe7\x33\xd3\x19\xcf\xd9\x8f\xeb\x65\x3a\xe3\x85\x68\x53\x78\xe3\xdc\x6d\xb9\xda\xd7\xdc\xa0\xd2\x06\x7a\xd7\x1c\xf4\x2e\x72\x9b\x17\x94\xdb\x4c\x12\x17\x49\x5c\x24\x71\x91\xc4\x85\xc9\x58\xf6\x16\x8d\xcf\x64\xc4\xf2\xca\x3c\xcf\x32\xda\x74\x8d\x35\xb9\xa3\xa0\x55\xd7\x09\x26\x54\xa6\x5d\x57\x0f\x19\x1d\xb4\xec\x4a\xa6\x42\x73\xbd\x81\x96\x5d\xd1\x3f\x36\x34\xb6\x85\x31\xb7\xed\x1a\x8e\xe1\xa6\x5b\x77\x55\xdf\x05\xed\xbb\x68\xdf\x35\x40\xfb\xae\x13\x74\x90\x6c\x0b\xaf\xf9\xf1\x74\xda\x78\xe1\xdb\x5d\x1e\x53\xa7\x8d\x57\x97\xf3\x86\x36\x5e\x58\x10\x58\x10\x73\x6c\xe5\xd5\x95\x0d\x71\x9e\x76\x5e\x27\xb9\x96\xb2\x2d\xbd\xe6\xa7\xd8\x11\x28\x89\x52\xb7\x2c\xa5\x6e\x44\xba\x13\x5b\x7c\xf2\x0d\x81\x92\x0b\xd2\x4d\xce\xd7\xe2\x6b\xc0\x68\xc3\x9b\xc0\xd4\xaf\x4b\x05\x1d\xf6\x03\xce\xcc\x75\xe2\xdd\xab\x7b\x84\x16\xd5\xe1\x63\x89\xe2\x4d\x87\x63\x14\x8c\x07\x1c\x03\x8e\x51\xf8\xcb\xe1\x38\x46\x07\x5b\x42\x35\xd1\x28\xd8\x13\x26\x69\xfe\xc2\x35\x30\x81\x97\x67\x02\xc3\x35\xba\x9c\x37\x70\x0d\x9c\x1e\x58\x14\x70\x8d\x9c\xd0\xce\xc0\x35\x3a\xb1\xfc\xab\x09\xc7\x5c\x14\x3d\x38\x07\x4a\xde\xb2\x94\xbc\x11\xe9\x52\x6c\xf9\xc9\x37\x70\x8e\x05\xe9\x2a\xb3\xe2\x1c\xba\x26\xdc\x8d\x15\xd8\x6b\xdf\xfe\x66\x76\xff\xfe\xc0\x46\x54\x3b\xd8\x5d\xdb\xdf\xec\xf5\x5e\x3a\xe9\x3a\x84\x32\xa9\x16\xfe\xee\xd3\xc7\x9f\xf5\xcd\xac\x52\x29\xc4\x3f\x26\xc9\xc7\x57\xfa\x2c\x57\x87\xbe\x11\x99\x46\x00\x89\x22\x24\x6c\x37\xd8\x29\x99\xf1\x62\xe6\xd5\xa4\xef\x19\x6f\x58\x72\xdd\x5f\x72\xc5\xd6\x28\x09\x38\xd6\x66\x52\xba\xa2\xe5\xfb\x6f\xcb\x5d\x8c\xf4\xf8\x9d\xb3\x38\x60\xf2\x92\x9c\x8f\xc4\xd0\x7b\x69\xc6\xbd\x97\xea\xb1\x52\x5d\xdf\xa5\x4a\xbf\x55\x07\xc8\x8c\x6e\x4b\x74\x5b\xa2\xdb\x12\xdd\x96\xe6\xd6\x6d\xa9\x7e\xe5\x2d\xec\xb4\xd4\x73\x80\xc2\xd9\xfa\x2b\xd5\x3f\x7e\x79\x6f\xa5\x31\xcb\xe0\x94\x8e\x4a\xf5\x32\x28\xef\xa6\xd4\xb3\x0c\xe8\xa1\x44\x0f\x25\x7a\x28\xd1\x43\x89\x1e\x4a\xbd\xf5\x50\x6a\xb0\xfa\x1f\xf5\x4f\xaa\x2c\x3e\xb8\xa0\xf8\xc4\x66\x4f\x33\xe3\x1e\x50\xf5\xe2\xae\xea\xff\x74\x5e\xb9\xd3\xf5\xa9\x97\x11\x3d\xee\xf8\xd4\xf3\xb0\x0e\xda\xe7\xa9\x5e\x3c\x15\x3d\x9e\xfa\x5e\x36\xc7\xda\xd9\xa9\x5e\x68\x05\xf8\xa2\xb5\x3f\x2f\xfa\xf4\x67\x2b\xf0\x55\x50\x4d\xbc\x27\xfe\x95\x86\x5e\x6e\xbc\xcf\x7b\x8f\xe2\xab\xed\xae\x3b\x86\x5f\x6f\x0e\x7a\xbd\xb6\x5d\x22\x1d\x30\x34\x0d\x0e\x06\xcb\x55\xc6\xd0\x4d\x9d\xbb\x05\x3a\x03\x9b\x81\xcd\xa6\x82\xcd\x40\x66\x20\x33\x90\x19\xc8\x0c\x64\x06\x32\x03\x99\x81\xcc\x40\x66\x20\x33\x90\x19\xc8\x0c\x64\x06\x32\x03\x99\x81\xcc\x26\x82\xcc\xd2\x85\x4a\x4a\x5c\x0d\x54\x28\x81\x00\x0e\xcf\x8b\x20\x80\x10\x40\x08\x20\x04\x30\x27\xb4\xe1\x09\xa0\xeb\xad\xd5\x48\x12\xdf\x7e\xf3\xd6\xea\xfc\x69\x6f\xe1\x55\x49\x7a\x83\xde\x4d\x89\xde\x9d\x39\xe9\x2d\x7c\x45\xe0\x77\xf0\x3b\xf8\x1d\xfc\x0e\x7e\x07\xbf\x83\xdf\xc1\xef\x3a\x5a\x6d\xe1\x77\xf0\x3b\xf8\x1d\xfc\x0e\x7e\x07\xbf\x83\xdf\x2d\x8e\xdf\x01\xbc\x00\x5e\x00\xaf\x69\x8c\x28\xc0\x2b\x2b\x1e\x80\xd7\x74\x81\xd7\x78\x12\xde\x3a\x83\x5e\x67\x4c\x77\xcb\xf1\x00\x70\x19\xb8\x2c\x77\xd6\x71\xe1\x32\x50\x19\xa8\x0c\x54\x06\x2a\x03\x95\x81\xca\x40\x65\xa0\x32\x50\x19\xa8\x0c\x54\x06\x2a\x03\x95\x81\xca\x40\x65\xa0\xb2\x49\xa0\xb2\x5c\xaa\xdb\xb1\xa3\x81\x44\x37\xb8\xdf\xf0\x94\x08\xee\x07\xf7\x83\xfb\xc1\xfd\x72\x42\x1b\x98\xfb\x45\x7f\xb7\x1c\x19\x04\xa3\x48\x77\x8b\x70\xda\xbb\xf0\x86\xce\x9c\xf3\x96\xbe\x34\x89\x6f\x90\xbc\x29\x91\xbc\x73\x26\xbe\xa5\xdf\x13\x90\x1e\x48\x0f\xa4\x07\xd2\x03\xe9\x81\xf4\x40\x7a\x20\xbd\x8e\x56\x5b\x90\x1e\x48\x0f\xa4\x07\xd2\x03\xe9\x81\xf4\x40\x7a\x8b\x43\x7a\x50\x30\x28\x18\x14\x6c\x1a\x23\x0a\x05\xcb\x8a\x07\x0a\x36\x75\x0a\x36\x92\x1c\xb8\xce\x49\xd8\xb9\x12\xe1\x4a\xf8\x00\x0c\x0d\x86\x96\x3b\xeb\xb8\x18\x1a\xfc\x0c\x7e\x06\x3f\x83\x9f\xc1\xcf\xe0\x67\xf0\x33\xf8\x19\xfc\x0c\x7e\x06\x3f\x83\x9f\xc1\xcf\xe0\x67\xf0\x33\xf8\xd9\x74\xf8\x59\x3a\x25\xae\xdc\xdb\x40\x5e\x1c\x44\x70\x78\x7e\x04\x11\x84\x08\x42\x04\x21\x82\x39\xa1\x0d\x4c\x04\xbf\x79\xce\xfe\x49\xc9\xdd\x4e\x5a\x5f\x42\x3d\x79\x0c\xa9\x71\xff\xd4\xf7\x74\x97\xdc\xd3\x99\xd3\xe3\xf2\x97\x27\x45\x0e\xbc\x37\x25\xbc\x77\xce\x14\xb9\xfc\xbb\x02\xe6\x03\xf3\x81\xf9\xc0\x7c\x60\x3e\x30\x1f\x98\x0f\xcc\xd7\xd1\x6a\x0b\xe6\x03\xf3\x81\xf9\xc0\x7c\x60\x3e\x30\x1f\x98\x6f\x71\x98\x0f\x28\x06\x14\x03\x8a\x4d\x63\x44\x81\x62\x59\xf1\x00\xc5\x66\x00\xc5\x46\x92\x29\xd7\x0b\x18\x3b\x57\xb6\x5c\x05\x2a\x00\xa9\x81\xd4\x72\x67\x1d\x17\x52\x03\xa7\x81\xd3\xc0\x69\xe0\x34\x70\x1a\x38\x0d\x9c\x06\x4e\x03\xa7\x81\xd3\xc0\x69\xe0\x34\x70\x1a\x38\x0d\x9c\x06\x4e\x9b\x16\x4e\x4b\x67\xcd\x55\x7b\x1c\xc8\x9c\x03\x12\x0e\x8f\x94\x80\x84\x40\x42\x20\x21\x90\x30\x27\xb4\xa1\x20\xe1\x83\xda\xc9\xdb\x9b\x56\x2c\xb0\x6f\x9e\xd5\x84\x33\x6e\xd4\x2e\xab\xbb\x9b\xb1\xad\xe0\x78\x1b\xb5\x4b\x28\x9e\x7e\xf8\xbb\xfb\x8f\x7f\x14\x1d\x37\x14\xc6\x9b\x2c\x5d\x4b\x09\x52\x67\x19\xce\x06\xb1\xe9\x69\x92\x3a\xf0\x22\x7d\xf1\x46\xef\x97\x15\xd8\x6b\xdf\xfe\x66\x18\x56\xf2\xa6\x19\x93\xa8\x5b\xf0\x6e\xce\x29\x2c\xcf\x71\x94\x15\xaf\xf9\xef\x3e\x7d\xfc\x59\x5f\xbe\xe2\xbd\x30\x07\x66\x5f\x8d\x77\xc9\x59\x0a\xcf\x50\x42\xe6\x44\x7e\x30\xcd\xe2\xf7\xe0\xad\x9f\xf3\xf3\x30\x5e\xfd\x8a\xbe\xeb\x65\x8e\xfe\xac\x9f\xf2\x77\x2d\xae\xa0\xe1\x0c\xad\x9e\x9a\xc0\x1e\x60\x0f\xb0\x07\xd8\x33\x37\xd8\x53\xa1\xb4\xd6\x01\x9f\x6a\x03\xa8\x5a\x79\x3d\x69\xed\xfd\x57\x28\xb8\xc8\xcd\xf5\x46\x57\x62\xb0\xc2\x19\x65\xe6\x41\xe6\xd9\xd2\x81\x15\x0f\x4a\xfc\xff\xec\x9d\xcf\x73\xa3\x46\x16\xc7\xef\xfe\x2b\xba\xbc\x07\x27\x95\x58\xde\x99\xcb\xa6\x26\x27\x67\x66\x52\x3b\xf9\x31\x71\xed\xa4\xb2\x97\xc9\xa1\x0d\x6d\x99\x1d\x0c\x2a\x40\xf6\x7a\xb7\xf6\x7f\xdf\xa2\x1b\x10\x42\x20\x21\x8c\xf8\xf9\xc9\x25\x53\x96\x04\x4d\x77\xd3\xfd\x5e\x7f\xde\x7b\xdf\x55\xdc\x5b\x61\xa4\xec\x85\xb8\xf6\x84\xe3\x99\x95\xc5\x0f\xc4\xda\xcb\x16\x27\x5b\xd8\xc1\xf3\x3f\xd6\x9e\xb0\x9d\x20\xde\x04\x1f\x55\x36\xe3\xe3\xe5\x53\x1f\x4a\x26\xaf\x7c\x3a\x37\x92\x0e\x16\x77\xeb\x40\xbf\x65\xab\xc0\xb7\x54\xa8\x4f\x0f\x13\xcf\x2b\x99\x65\x0b\xf1\x87\xbe\xa3\x1e\x2d\x3d\x77\xde\x88\x4b\x71\xed\xba\x6f\xf4\xd9\xa0\x1d\xaf\xd2\x6b\x2f\x1e\xf8\xd8\x87\x49\xa7\x64\x72\x39\x65\x37\x18\x28\xf3\x2c\xfd\x0c\x53\x67\x84\xae\x5e\x57\x54\x53\xba\xce\x7a\xe4\xf7\xbc\x53\xee\x78\x22\x34\xbe\xb2\xb8\x55\x77\x26\x94\x28\x3b\xcd\xdd\x98\x12\xc9\xea\xa5\xa7\xce\x5a\x99\xcd\xe1\x36\x76\x47\xbd\x4b\x4f\x2d\xa5\x9e\xa0\x89\x5b\xbd\x10\xbf\x67\x1b\xb6\x21\x3b\xd9\xab\x91\xd8\x87\xce\xc3\x83\xb2\x1d\x19\x29\xf7\x79\x13\xe3\xb3\xd9\x72\x1d\xf7\xdb\xc4\x6d\xd6\x9d\x2e\x96\x81\xb4\xf4\x5b\xe3\xf8\x76\x66\x10\x6c\x36\x6d\x1d\x40\x95\xce\xd2\x75\x18\x37\x32\x3f\x5c\x32\xfe\x65\xfa\x40\xc9\x4d\xee\xcc\x1a\x98\x5e\x62\x61\xda\xf9\xa0\xa4\x57\xda\xc6\x06\xc3\xac\xdb\x7c\xa3\x9b\x5c\x76\x14\x71\xe0\x30\x62\x28\xd3\xff\x18\x38\x5b\xaf\x5f\xaa\x01\x6d\x67\xd3\x1f\x54\x0b\xaa\x05\xd5\x82\x6a\x41\xb5\x27\x43\xb5\x35\xf7\x82\x1d\x5c\xdb\xdd\xb6\xf8\x2e\x97\xed\xb1\x72\x95\x0c\x55\xb6\x04\xdd\x04\xfe\x4a\x2e\xb5\x75\x74\xe3\xbb\x8e\xf5\xbc\x15\x18\x9c\x4e\xba\x4d\xba\x48\x3c\xed\x5e\x2d\xfe\xb6\x10\x9f\xcc\x7a\x66\x4c\x97\x95\xf2\xe2\x97\x65\xb3\xa7\x2a\xe1\x07\xab\x7b\xe9\xa5\x81\xca\xc1\x5a\x5d\xdd\x49\x37\xf5\x95\x3f\x9f\x9b\x8f\x3f\x9f\x8b\x3b\xc7\x93\xae\xf3\x9f\x74\x23\xb9\x55\x42\xda\x9a\x74\xf9\x57\x86\x02\xd8\x1b\x37\xcc\x5c\xfe\x22\xdc\xfc\xc8\xf8\xa7\x0b\xf1\xde\xd1\x8b\x63\xae\xe9\x7e\xb0\xfb\x6c\x1b\xae\x19\x19\xf7\x58\xfb\x28\x7e\x74\xdf\x64\x40\xcd\x13\xbc\x4b\x9f\xbd\xd2\xe4\x29\x63\x0a\xed\x3a\x66\xfa\xd1\xe3\x17\xf6\xde\x7f\x12\x4b\x19\xdc\xca\xe5\xd6\xb1\x64\xe6\xd4\xa8\xe0\xce\x0f\x1e\xe2\x31\x29\xed\xaf\xdf\x0a\x4f\x54\xdd\x5d\xda\xe8\x4d\x2d\xd6\x95\xe9\x5b\x27\xb6\x26\x2d\xc7\xde\xb8\xc2\xda\x56\xd0\x87\x13\xd9\x18\xc7\x9b\x75\xb2\x93\xa6\xd6\xc0\x22\x37\x98\xe9\x3e\x92\x81\xc5\x2c\xe8\x7e\xfb\x66\x0b\x71\x6d\x59\x6a\x15\xe9\xbd\x29\xef\xd9\x5d\x98\x67\xb8\x10\x97\xc9\x04\xdc\x9e\xa0\xe1\xf7\xe2\xe2\x07\x69\x7d\x59\x06\xfe\xda\xb3\xe3\x6f\xe9\x00\x76\xfd\xa5\x42\xc7\x19\x13\x32\xb1\x8f\xb7\x2f\x92\x3e\xc1\x6d\x76\xa5\xef\xc5\xc5\x8f\x7e\xa0\x72\x97\x15\x96\x0c\x2d\x69\xc7\x4f\x9f\xf4\x8f\xc9\x6f\xd0\xd7\x0b\x8d\xeb\xb9\x73\xc1\xbb\xec\x1a\x4d\x26\xe4\xaa\x38\xdd\xfb\xb1\x38\x27\x1c\x81\x50\x6f\x1c\xf6\x45\x21\xf4\x35\x0a\xc4\x23\x9c\x6c\x7c\x77\x63\x12\xba\x3b\xdb\xe8\x33\x3a\xa1\x5e\x67\xed\x89\x50\x78\xa9\xfd\x53\xca\xe8\x40\xc9\x47\x62\xba\x4f\x91\x8c\xd6\x75\xf9\xdc\x08\x09\x72\xee\x87\x15\x99\x9a\x66\x4f\xde\xd8\x4b\x5d\x25\x6d\x96\x81\xde\x62\xb6\x66\xe1\x69\x76\x53\x36\x5b\x4f\x27\x37\xe7\x64\x41\xe2\x5b\xa7\x06\x7d\x9a\x49\x5e\x07\x6f\xc7\x57\x28\xc0\xed\x97\x20\x6d\x12\x4e\xe7\x93\x70\x5a\x6f\x4f\x39\x94\x74\xda\x9d\xf3\x45\x44\x02\x11\x09\x44\x24\x10\x91\x40\x44\x42\xd9\xe2\x0b\xea\x1e\x51\x8f\x40\x3f\xa1\x9f\xd0\x4f\xe8\x27\xf4\x13\xfa\x39\x2d\xfa\x09\x90\x00\x48\x00\x24\x00\x12\x27\x07\x12\x47\x40\xfb\x81\x26\x4f\xd6\xeb\xc2\xdd\x04\xca\x97\x9e\xb8\x0d\x0a\xe5\x54\xfe\x60\x5e\xc5\x3d\x17\x29\xc3\x48\x28\xc4\x22\x3b\xc5\x9f\x76\xca\xe1\x61\x60\xd4\xa5\x50\x5e\x2b\x90\xa8\x41\x5d\xcf\xb1\x54\xc5\x38\x2b\x8c\xda\xf9\xca\x0f\x5b\x26\x62\xc6\x77\x11\xb2\x16\xfc\x32\x5f\x6e\x11\x7f\x35\xcb\xe8\xdc\x53\x4e\xe5\x44\x8b\x42\x2b\x19\x9e\x64\x19\xe5\x07\x7d\xb0\x59\x46\xfa\x4c\xe2\x57\xe9\xc9\xa5\x0a\xcc\xe9\x9a\x2e\x0d\x24\xc3\xd0\xb7\x1c\xed\x2e\x66\xe7\x58\x52\x1f\x47\xfa\x81\x50\x5e\x14\xdb\x6f\xa9\xff\xfc\x20\xbf\xc4\xbd\x18\xdd\xab\x50\xa5\x46\x50\x3e\x97\x26\xcd\xb9\xd1\x46\xa0\x3e\xb3\xf2\x03\xf1\xea\xf5\x77\xf1\x77\x03\x69\x69\x48\xe5\xfa\xde\xd2\x98\x3c\xfa\x5c\xc9\xf2\xbd\x48\x3a\x9e\x59\x95\xf4\xb9\xcd\xe6\xbb\xfa\xe0\x3e\x41\x68\xe2\xf6\x39\xb3\xea\x97\xbe\x2b\xbd\xe5\xc2\x0f\x96\x57\xab\x2f\xcb\xab\xb5\xe7\x58\xbe\xad\xae\xfe\xf2\x21\xbc\x89\xaf\xd2\xf8\x20\x38\xe9\x9c\x36\x87\x67\x50\x36\xd2\x58\x4d\x97\xba\x66\xcb\xeb\x1a\x66\xcb\x5b\x73\xa6\x35\xac\x66\xbf\x3e\xd8\x6c\x13\x39\x3b\xac\x76\x4f\xd1\x4a\xd4\x86\xc8\x08\xac\xc4\x33\x71\x7c\x69\x8d\x12\x5d\x8b\x13\x56\xd8\xa8\x67\x79\x95\x56\xd5\xa0\x96\x46\x45\xd7\x62\x69\xe5\x07\x79\xb0\x96\x16\xd9\xcb\x33\xca\x5e\x26\x4d\x8b\x34\x2d\xd2\xb4\x48\xd3\xc2\x49\xac\x7a\x8b\x86\xe6\x24\xe2\x6d\xe5\x9e\x66\x00\x49\x1c\x63\xf0\xb7\xb2\x93\xea\xd6\x53\x37\x02\x25\xed\x82\xc1\x55\xc7\x71\x8a\x7f\x76\xba\x7c\x8d\x9c\x01\xa2\xfe\xad\xa3\xb0\x6e\xe3\x7f\x49\x2b\x5a\x08\xf1\x3e\xfe\x7f\xfa\xf7\x07\xe9\xe8\x03\xbc\x50\x58\xee\x3a\x8c\x54\xb0\xd9\x56\x4c\xb8\xa6\x70\x9d\x2f\x4a\x5c\x7c\x94\x0f\x2a\x5c\x49\x4b\x5d\xc4\xd6\x63\x6a\xf1\x2c\xc4\x8d\x2b\x3d\x4f\x19\xb3\x53\xdb\x24\xd2\x35\x66\xd0\xab\xef\x9a\xac\xd3\xba\x8d\x3d\x59\x0b\x59\xa7\x65\xc6\xf6\x6d\xda\x7d\xf1\x93\x8a\xf7\xa6\xc7\xe2\x1d\x62\x15\xa6\xbd\x93\x04\x2a\xad\x43\x15\xe8\x08\xa3\x8d\xdd\xfc\x7c\xe2\x8e\x8a\x1b\x33\x5d\x1e\x3c\xf5\x6d\x6c\x8a\xdb\xc1\x52\x8d\xe2\xec\xed\x25\x84\x36\xaf\xc6\x50\xd1\x06\x64\x18\xba\x00\xce\x3a\x96\xa3\x51\x19\xef\x4b\xfd\xdb\x6f\xf6\x2f\x5a\x0f\x2a\x58\xaa\x5a\xdf\x0c\xa3\x40\x46\x6a\xe9\x58\x97\xf5\x7f\x13\xff\xfb\x39\xf9\xa6\x5e\x1e\xeb\x18\x1a\x2b\x19\x44\x8e\x4e\xb5\x32\x71\x47\x0d\x8c\x8e\xd5\x96\xc6\xef\xd4\x30\xf9\x9e\xa3\xdc\x9b\xed\xd0\x1f\xc1\x11\xee\xc4\x8f\x70\xe7\x03\xcb\x0b\x09\x0b\xe9\xcb\x65\x92\x6a\xe2\x75\x66\x93\xa8\xfd\x55\xc5\x1a\xf4\xb5\x3e\xc0\x32\x99\xb4\xd2\xd5\xbf\xf4\x7c\xef\xd2\xfc\x5a\x7f\x43\x9f\x21\x87\xe2\xab\x9f\x42\xdf\xbb\x31\xf9\xca\xbf\xc6\xab\x5d\xf2\xef\x4f\xe9\x1a\xb8\xf9\xe3\xd7\x43\xa2\xf8\xf5\xe7\xcd\x8f\x7e\x60\xe9\x43\xf6\xa5\xaf\x07\xdf\x17\x9f\xcf\xef\xe2\xbf\x7d\x3e\x17\xd7\x5b\xbd\xa9\xc3\xa1\xcd\x89\xb8\x36\xfe\x93\x17\xf5\x52\x5a\x7a\x00\x74\xc6\xab\xeb\x58\xc9\x19\x9f\xf6\x15\xfc\xa7\x64\x6c\x4d\x46\xe8\x4a\xf9\x2b\x57\x2d\x84\xb9\xa7\x4e\x74\x4f\xe7\x94\x0e\x4a\x2e\x1d\x88\xec\xf6\x4d\xba\x37\xbe\x11\x2e\x83\xf9\x00\x97\x61\x08\x2e\xc3\xaa\x4b\xc1\xf6\x76\x9c\x86\x75\xeb\x07\x48\x2b\x57\x5a\x4d\xcc\xb9\xe4\x97\x93\x35\xe8\x88\x7b\xc4\x94\x9b\x93\x29\x37\x20\x8b\x89\x8d\x3d\xfb\x84\xb8\xc7\x8a\x66\x4f\xd2\x1e\x59\x8f\xe2\x08\xf3\x4c\x1c\x11\x3e\xe8\xf9\xb6\xea\x4d\x97\xeb\xa3\x6f\xab\x63\xe3\x07\xf3\xaa\x5c\xc5\xdf\x13\x47\x48\x05\x2c\x2a\x60\x51\x01\x8b\x0a\x58\x54\xc0\xea\xc5\x1d\xc1\x6b\xac\x3d\x50\x68\x72\x0d\xa9\x50\x19\x51\xed\x33\x8a\x6a\xa7\x2a\x1d\x55\xe9\xa8\x4a\x47\x55\x3a\xaa\xd2\x51\x95\x8e\xaa\x74\x24\x7b\x91\xec\x45\xb2\x17\xc9\x5e\xc5\x19\x89\x26\x17\x25\x30\x29\x81\x49\x09\xcc\x91\x97\xc0\x2c\xe5\x73\xc0\x7a\x34\xb9\xc6\xa3\xc9\x55\xc0\xbc\xfd\xa7\x75\x1e\x54\xe4\x3a\x00\xb6\x4b\xf5\xb8\x9a\xc2\x6c\xd4\xb8\x50\xe3\x32\x1f\xa1\xc6\x45\x2c\x02\xb1\x08\xc4\x22\x10\x8b\x40\x2c\x02\x90\x1b\xee\x79\xb8\x47\xe0\x9e\x70\x4f\xb8\x27\xdc\x13\xee\x39\x63\xee\x09\x8a\x00\x45\x80\x22\x40\x11\xa8\x71\xa1\xc6\x85\x1a\x57\xf6\x49\x93\x1c\xc9\x8f\xbe\xad\xd0\xe2\xea\x54\x65\xe1\xa5\x70\x08\x25\xae\xb6\x94\xb8\x0e\x40\xaf\x0a\x1d\xae\x6e\x73\x38\xbb\xac\x46\xa1\x9f\xac\xde\x42\x40\x56\xd1\x04\xb2\x8a\xa8\x45\x41\x2d\x8a\x92\xc6\x0c\xde\x60\x19\x5d\x25\x8a\xe3\x1a\x3d\x94\x8a\xf0\xc7\xb4\x7a\x8a\x76\x61\xc7\xea\x5b\x0d\xed\xc2\x33\x71\x6c\xf1\x8c\x1e\x94\xb7\x9a\xd4\xcd\xa0\x5a\x46\x69\xb7\x62\x5b\xe5\x07\x79\xb0\xb6\x15\xf9\xc9\x33\xca\x4f\x26\x11\x8b\x44\x2c\x12\xb1\x48\xc4\xc2\x2d\xac\x7a\x8b\x86\xe5\x16\xe2\x61\x0d\xc3\xc3\xea\x5c\x71\x6b\x70\x89\x19\xe5\x7a\x5b\x07\xdc\xa5\x52\xb5\xad\x96\xb2\x31\xd0\xda\xca\x46\xbf\xbe\x8d\x80\xd6\x56\xf2\x1f\x9b\x17\xdb\xc0\xd0\x95\xb6\x7a\xe0\xaf\x05\x9d\xad\xdd\x16\xa0\xb2\x85\xca\x56\x3f\x2a\x5b\x07\x4c\x8d\x72\x8d\xad\x69\x20\x70\x14\xb6\x38\xae\x9d\x1f\x0a\x47\x61\xab\xcd\x79\x83\xc2\x16\x8e\x02\x8e\xc2\x54\xf5\xb5\x5e\xec\x2a\x74\xa6\xae\x75\xf0\xc4\xa8\x5c\x5b\x6b\x1a\x86\x1c\xb1\x8c\x18\x70\xf3\x31\xe0\x06\x64\x27\xb1\x9d\x67\x9f\x10\xcb\x58\xd2\xe8\x49\xda\x20\x9d\x6a\x6a\x9d\x3c\x28\x30\xf9\xb3\xe5\xca\x30\xec\x49\x57\x2b\xb1\x4a\xde\xc6\x4d\x38\x36\x48\x30\xbb\x50\xd5\x45\x88\x19\xa4\xaa\x15\x55\xad\xa8\x6a\x45\x55\x2b\xaa\x5a\xf5\xe2\x98\xe0\x3f\xd6\x1e\x28\x14\xb6\x86\x54\x7c\x8c\x08\xf6\x19\x45\xb0\x53\x69\x8e\x4a\x73\x54\x9a\xa3\xd2\x1c\x95\xe6\xa8\x34\x47\xa5\x39\x12\xbb\x48\xec\x22\xb1\x8b\xc4\xae\xe2\x8c\x44\x61\x8b\xb2\x96\x94\xb5\xa4\xac\xe5\xc8\xcb\x5a\x96\x92\x3a\xb0\x3d\x0a\x5b\x23\x51\xd8\xaa\x60\xbd\xfd\x67\x73\xee\x97\xd9\xaa\xc9\xb9\x77\xb5\xb6\x5e\xca\xb6\x11\xdc\x42\x70\xcb\x7c\x84\xe0\x16\xa1\x09\x84\x26\x10\x9a\x40\x68\x02\xa1\x09\x30\x6f\x30\xe8\xe1\x1e\x01\x83\x82\x41\xc1\xa0\x60\x50\x30\xe8\x8c\x31\x28\x64\x02\x32\x01\x99\x80\x4c\x20\xb8\x85\xe0\x16\x82\x5b\xd9\x27\x47\xa7\x4f\xe6\x0f\xf2\x51\xdd\xea\x4e\x5d\xa1\x2d\x60\x84\xf4\x56\x2b\xd2\x5b\x35\x41\x58\x99\xfe\x56\x3f\x69\x9e\x9d\x15\xae\xd8\x7a\xbc\x7a\x8b\x03\xd9\x47\x13\xc8\x3e\xa2\x7a\x05\xd5\x2b\x4a\x1a\x33\x0e\x4b\x66\x5c\x25\x2c\x9a\xb5\x7c\x10\x15\xe3\x9b\x34\x7d\x8a\xa6\x63\x97\xc2\x5c\x2f\x34\x1d\xcf\x44\xb3\x42\x1c\x5d\x6b\x74\xbd\xa0\x06\x07\x95\x37\xf2\x77\xc7\xfe\x1a\xa3\xfd\x45\xae\xf3\x8c\x72\x9d\x49\xea\x22\xa9\x8b\xa4\x2e\x92\xba\x70\x1d\xab\xde\xa2\x01\xba\x8e\x38\x60\xdb\x0f\x34\x80\xc4\x8f\x91\xb8\x60\xd9\x89\x76\x17\xe2\x5d\x35\xfd\xa8\x5d\x05\xaf\x96\x73\x3c\x90\xf1\xca\xe6\x41\x7d\xe3\x01\x19\xaf\xe4\x3f\x76\x35\xb6\x86\xe1\x6b\x79\xf5\x48\x75\xf3\x82\x5e\xd5\xcd\x40\xd5\x0b\x55\xaf\x1e\x54\xbd\x6a\xda\x20\x25\xd2\x5e\xd3\xa2\xeb\xe8\x7b\x71\xc0\x3b\x3f\xc0\x8e\xbe\x57\x9b\xf3\x06\x7d\x2f\x3c\x08\x3c\x88\xe9\x8a\x7c\xb5\xe6\x43\x74\xa3\xf4\x55\xfb\x78\xa9\x44\xee\x6b\x5a\xc6\x1d\xa1\x93\x58\x76\x33\xb3\xec\x06\x64\x40\xb1\xcf\x67\x9f\x10\x3a\x39\x3f\x0b\xa5\x3b\x09\xb0\xce\xc2\x0f\x1f\x7d\x77\xfd\xa0\x64\x14\x49\xeb\xfe\x41\x07\x70\xf4\x21\x05\xf6\x87\x6e\xc5\x75\xd6\x8a\x23\x43\x11\x37\x72\x60\xfb\x2e\x44\x60\x22\x75\xb7\xa8\xbb\x45\xdd\x2d\xea\x6e\x51\x77\xab\x17\x97\x05\xcf\xb2\xf6\x40\x21\x09\x36\xa4\xf2\x68\x84\xc9\xcf\x28\x4c\x9e\x5a\x78\xd4\xc2\xa3\x16\x1e\xb5\xf0\xa8\x85\x47\x2d\x3c\x6a\xe1\x91\x3d\x46\xf6\x18\xd9\x63\x64\x8f\x15\x67\x24\x92\x60\x14\xde\xa4\xf0\x26\x85\x37\x47\x5e\x78\xb3\x94\xd8\x01\xf4\x91\x04\x1b\x89\x24\xd8\x1e\xde\xdb\x7f\x9e\xe8\x7e\x59\xb0\x23\x98\xf7\xae\x34\x58\x1b\x9c\x1b\x79\x30\xe4\xc1\xcc\x47\xc8\x83\x11\xa6\x40\x98\x02\x61\x0a\x84\x29\x10\xa6\x00\xff\x06\x89\x1e\xee\x11\x90\x28\x48\x14\x24\x0a\x12\x05\x89\xce\x18\x89\x42\x29\xa0\x14\x50\x0a\x28\x05\xf2\x60\xc8\x83\x21\x0f\x96\x7d\x72\x74\x7e\x65\xf1\x30\x1f\x89\xb0\xee\x74\x1e\xda\x04\x48\xc8\x84\xb5\x22\x13\x76\x04\x18\x2b\x93\x0a\xeb\x2f\x05\xb4\xb3\x9a\x17\x3b\x8f\x58\x6f\xb1\x20\x3b\x69\x02\xd9\x49\xd4\xbd\xa0\xee\x45\x49\x63\xc6\x63\xdd\x8c\xab\xf6\x45\xf3\xd6\x0f\xa2\x72\x7d\xd3\xe6\x4f\xd1\xac\xec\x52\x3e\xac\x05\xb3\xf2\x4c\x34\xae\xe1\xd1\xb5\x8a\xd8\x0b\xcb\x77\x50\xb4\x03\xd3\x6c\x0a\xa6\x19\x69\xd2\x33\x4a\x93\x26\x1f\x8c\x7c\x30\xf2\xc1\xc8\x07\xc3\xab\xac\x7a\x8b\x06\xea\x55\xe2\x97\x0d\xcc\x2f\xeb\x56\x55\x6c\xd0\x19\x23\x25\xca\x62\x47\xf8\x56\xbb\xea\x62\x27\x48\x13\x41\x61\x2c\x9b\x0f\xf5\x0d\x0a\x14\xc6\x92\xff\xd8\xe9\xd8\x2a\xc6\xa1\x32\xd6\x33\x18\xce\x2b\x8d\xed\x6f\x0a\x6a\x63\xa8\x8d\xf5\xa0\x36\x76\x84\x5d\x52\xa2\x38\x36\x3d\x48\x8f\xea\x18\x07\xc1\xf3\x63\xf4\xa8\x8e\xb5\x39\x6f\x50\x1d\xc3\xab\xc0\xab\x30\x7f\x9e\xaa\xf2\x58\xab\x7e\x45\x37\xea\x63\x47\x1d\x41\x95\x28\x90\x4d\xcf\xd8\x23\x22\x13\x6b\x6f\x86\xd6\xde\x80\x8c\x2a\xf6\xfe\xec\x13\x22\x32\x6b\xb5\x7e\x92\x96\x4b\x77\x8a\x64\x9d\x46\x34\xea\x34\xae\x2b\x2b\x74\xec\xc0\x79\x34\xb6\x41\x16\xc9\xd8\x3a\x74\x4b\xd2\xfd\x3d\xdb\x79\x74\xec\xb5\x74\xf3\xa9\x83\x32\x2b\xf0\xf1\xf6\xd3\x87\x77\xba\x31\x8b\x5c\xe4\xce\x9b\x2c\xe6\xe7\x42\x5f\xe5\x62\x53\xea\x69\xab\x76\x4f\x66\x25\x09\xc7\x0b\x23\x25\xb7\x0e\x37\x8b\x36\xd4\xd3\xee\x71\x59\x76\xf3\x5f\x0a\xa9\x51\xa4\xf2\x0d\xb5\x26\xa4\xce\x44\x7d\xff\x38\xf3\x05\x4a\x0f\x62\x97\xf9\x7c\xd9\x9b\xd2\x31\xaf\xa1\x7a\xe2\x84\xab\x27\x1e\x86\x4f\x87\x2a\x27\xee\x3d\xe8\x6a\x01\xac\x51\x2f\x91\x7a\x89\xd4\x4b\xa4\x5e\xe2\xd4\xea\x25\x1e\x5e\x79\x4b\x6b\x25\x9e\x38\x8c\xa1\xb3\x0a\x89\x87\x1f\xbf\xba\x3a\xe2\x90\xfb\xe0\x98\x9a\x88\x87\xfb\xa0\xba\x1e\xe2\x89\xfb\x80\x2a\x88\x54\x41\xa4\x0a\x22\x55\x10\xa9\x82\x78\xb2\x2a\x88\x35\x56\xff\x9d\x0a\x88\x7b\x53\x00\x67\x14\xc5\x58\xef\x69\x26\x5c\xc5\xf1\x70\x77\xef\xab\xe0\xd8\x6d\xbf\x53\xb7\xf1\x24\x23\xba\x5b\xb3\xf1\xc4\xc3\xda\x6b\xa5\xc6\xc3\xdd\xb3\xa7\x4a\xe3\xa9\x97\xcd\xa1\xd6\x66\x3c\xdc\x69\x25\x20\xa3\xf1\x79\x5e\xf2\xaf\x3f\x9b\xc3\xb0\x92\xea\x1e\x27\x62\x62\x79\x10\xe6\xa5\x9b\x7d\xaa\x5f\xd4\x2e\x10\xfb\x76\x63\xdc\x6b\x07\x26\x31\x04\x63\xff\x60\xe3\xb5\x5c\x6c\x79\xbb\xb9\x6b\x37\xc5\x69\xa0\x34\x50\xda\xa8\x50\x1a\x18\x0d\x8c\x06\x46\x03\xa3\x81\xd1\xc0\x68\x60\x34\x30\x1a\x18\x0d\x8c\x06\x46\x03\xa3\x81\xd1\xc0\x68\x60\x34\x30\xda\x98\x30\x5a\xbe\xc4\x49\xc5\x79\x03\xb5\x4d\xa0\x82\xfd\x33\x24\xa8\x20\x54\x10\x2a\x08\x15\x2c\x74\xda\x40\xa8\xa0\xe7\xdb\x6a\x20\x09\x72\x1f\x7d\x5b\xf5\x94\x1e\x17\xdf\x9a\xe4\x38\x88\xde\xe8\x88\x5e\xc7\xc9\x71\xf1\x7b\x02\xd3\x83\xe9\xc1\xf4\x60\x7a\x30\x3d\x98\x1e\x4c\x0f\xa6\xd7\xe6\x6a\x0b\xd3\x83\xe9\xc1\xf4\x60\x7a\x30\x3d\x98\x1e\x4c\x6f\x76\x4c\x0f\x08\x06\x04\x03\x82\x8d\x63\x44\x81\x60\xdb\xdd\x03\x04\x1b\x39\x04\x1b\x4e\x62\x5c\x6b\x20\xac\xeb\xb4\xb8\x02\x1e\x00\xa1\x81\xd0\x0a\x57\x1d\x20\x42\x03\x9f\x81\xcf\xc0\x67\xe0\x33\xf0\x19\xf8\x0c\x7c\x06\x3e\x03\x9f\x81\xcf\xc0\x67\xe0\x33\xf0\x19\xf8\x0c\x7c\x06\x3e\x1b\x0f\x3e\x2b\xa4\xc4\xed\x9e\x36\x90\x10\x07\x0b\xec\x9f\x1c\xc1\x02\x61\x81\xb0\x40\x58\x60\xa1\xd3\x86\xc0\x02\x93\x0f\x2d\x57\x86\xe1\x20\xd2\xe2\x12\xc4\xf6\x36\x6e\x50\x1f\xb9\x71\xf9\xfb\x93\x20\x07\xdd\x1b\x1d\xdd\xeb\x32\x41\x2e\xff\xb2\x80\xf9\xc0\x7c\x60\x3e\x30\x1f\x98\x0f\xcc\x07\xe6\x03\xf3\xb5\xb9\xda\x82\xf9\xc0\x7c\x60\x3e\x30\x1f\x98\x0f\xcc\x07\xe6\x9b\x1d\xe6\x83\x8c\x41\xc6\x20\x63\xe3\x18\x51\xc8\xd8\x76\xf7\x40\xc6\x26\x41\xc6\x06\x92\x2b\xd7\x3a\x1d\xeb\x34\x61\xae\x02\x17\xc0\xd5\xe0\x6a\x85\xab\x0e\x90\xab\xc1\xd4\x60\x6a\x30\x35\x98\x1a\x4c\x0d\xa6\x06\x53\x83\xa9\xc1\xd4\x60\x6a\x30\x35\x98\x1a\x4c\x0d\xa6\x06\x53\x83\xa9\x8d\x8c\xa9\xe5\x53\xe7\xaa\x8f\x1c\xc8\x9f\x83\x12\xf6\xcf\x94\xa0\x84\x50\x42\x28\x21\x94\xb0\xd0\x69\x43\xa0\x84\x8f\xbe\xbb\x7e\x50\x32\x8a\xa4\x75\x1f\x1b\xcb\x43\x48\xa1\xfb\x43\xb7\xe9\x3a\x6b\x53\x1f\x69\x74\xc5\x36\x90\x4a\x07\xf2\x1b\x1d\xf2\xeb\x32\x95\xae\xf8\xc2\x80\xfe\x40\x7f\xa0\x3f\xd0\x1f\xe8\x0f\xf4\x07\xfa\x03\xfd\xb5\xb9\xda\x82\xfe\x40\x7f\xa0\x3f\xd0\x1f\xe8\x0f\xf4\x07\xfa\x9b\x1d\xfa\x03\x94\x01\xca\x00\x65\xe3\x18\x51\x40\xd9\x76\xf7\x00\xca\xa6\x02\xca\x06\x92\x51\x77\x12\x58\xd6\x69\x56\xdd\x1e\x72\x00\x66\x03\xb3\x15\xae\x3a\x40\xcc\x06\x62\x03\xb1\x81\xd8\x40\x6c\x20\x36\x10\x1b\x88\x0d\xc4\x06\x62\x03\xb1\x81\xd8\x40\x6c\x20\x36\x10\x1b\x88\x0d\xc4\x36\x42\xc4\x96\xcf\xae\xdb\x7f\xec\x40\x86\x1d\xe0\xb0\x7f\xcc\x04\x38\x04\x1c\x02\x0e\x01\x87\x85\x4e\x3b\x3d\x38\x74\xfd\x65\x78\xb5\x97\x01\x16\x00\x98\xeb\x2f\x7f\x74\x5c\xf5\x8b\x13\x46\x7f\x97\x9e\xed\x6e\x0d\x57\x35\xf9\x19\x2a\x3c\x89\x9f\x3f\xf7\xed\xb3\xfc\x1d\xb7\x3b\xe9\xbf\xae\xbf\x8c\xcd\x84\xfd\xc4\xb4\xbc\xb7\x26\xdc\x53\x2f\x21\x32\x71\x77\xa6\xef\xa2\xeb\x2f\x8f\x33\xcc\x92\xe1\x38\xbd\x6d\x56\xfe\xe2\xf8\x2b\xe5\x39\xf6\xd5\xe3\xab\xab\x7f\x3d\x7d\x39\xf0\x0a\x15\x1e\x7b\xa9\x22\x6d\xaf\x38\x96\x12\xd2\xb2\xb4\xeb\xad\xbd\x9c\x40\xfc\xb6\x52\xde\x87\x77\xe2\xa7\x4f\xbf\x7d\x14\xff\x54\xb7\xe2\x67\xf5\x1c\x3b\xf4\xe2\xab\xd8\xb7\x91\x8e\x17\x8a\xd5\xfa\xd6\x75\xac\xe4\x04\xf6\x51\x05\xd9\xaa\xa3\x4f\x17\xbf\xde\x83\xae\x97\x2a\xfa\x64\xee\x7a\x6d\x6e\xfa\x41\xdf\xd3\xdc\xf2\x67\xf5\xbc\xbd\xe5\xd5\x43\xd7\x4f\x5f\x2e\x43\x15\x7d\xa3\x11\x76\xe9\x4c\xea\x0c\x05\x17\x46\x77\xeb\xe3\xf1\x31\x5d\x33\xbb\x0e\x2e\x4c\x89\x31\xb3\x7f\xf6\x55\x05\x71\xec\xc4\x20\x94\xb6\xae\x64\xee\x9a\x93\x0e\x3b\x33\xc7\xf7\xcf\xb9\xb7\xbe\x5d\x62\xe5\xd6\x8f\x8c\xe8\x77\x5a\x1d\x17\x61\x90\x74\xc8\xe2\x83\x77\xe7\x8f\x7d\x0a\xa6\x83\x5b\x35\x07\xcf\x92\x9b\x9e\x87\xca\x5a\x07\x4e\xf4\x9c\x5d\x20\x9b\x8a\x3f\x28\x19\xa8\xe0\xf7\x78\xa9\x8a\x3f\xfc\x33\xfb\xe1\x9f\x5b\x3f\x7c\xb7\xe9\xd9\xac\x27\x0a\xbf\xcd\x2e\x59\xe8\x18\xf3\x2d\xa1\xbf\x26\xe2\x3e\x32\x47\x56\x51\x7e\xb2\x25\x3b\xc9\xbd\x92\x76\x6e\x0b\xde\x70\xe1\xa4\x67\x0b\x3f\x4a\xd7\x13\xb9\x72\x7e\x56\xcf\xe7\xc5\x67\x7e\x92\xcb\xd8\x52\x7d\x23\xce\x5f\x2f\xfe\x7a\x7e\xf6\xbf\xb3\xff\x07\x00\x00\xff\xff\x61\x4e\xfc\x38\xec\x0e\x4a\x00") + +func kubernetesapiV1204SwaggerJsonBytes() ([]byte, error) { + return bindataRead( + _kubernetesapiV1204SwaggerJson, + "kubernetesapi/v1204/swagger.json", + ) +} + +func kubernetesapiV1204SwaggerJson() (*asset, error) { + bytes, err := kubernetesapiV1204SwaggerJsonBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "kubernetesapi/v1204/swagger.json", size: 4853484, mode: os.FileMode(420), modTime: time.Unix(1614718756, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +// Asset loads and returns the asset for the given name. +// It returns an error if the asset could not be found or +// could not be loaded. +func Asset(name string) ([]byte, error) { + cannonicalName := strings.Replace(name, "\\", "/", -1) + if f, ok := _bindata[cannonicalName]; ok { + a, err := f() + if err != nil { + return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) + } + return a.bytes, nil + } + return nil, fmt.Errorf("Asset %s not found", name) +} + +// MustAsset is like Asset but panics when Asset would return an error. +// It simplifies safe initialization of global variables. +func MustAsset(name string) []byte { + a, err := Asset(name) + if err != nil { + panic("asset: Asset(" + name + "): " + err.Error()) + } + + return a +} + +// AssetInfo loads and returns the asset info for the given name. +// It returns an error if the asset could not be found or +// could not be loaded. +func AssetInfo(name string) (os.FileInfo, error) { + cannonicalName := strings.Replace(name, "\\", "/", -1) + if f, ok := _bindata[cannonicalName]; ok { + a, err := f() + if err != nil { + return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) + } + return a.info, nil + } + return nil, fmt.Errorf("AssetInfo %s not found", name) +} + +// AssetNames returns the names of the assets. +func AssetNames() []string { + names := make([]string, 0, len(_bindata)) + for name := range _bindata { + names = append(names, name) + } + return names +} + +// _bindata is a table, holding each asset generator, mapped to its name. +var _bindata = map[string]func() (*asset, error){ + "kubernetesapi/v1204/swagger.json": kubernetesapiV1204SwaggerJson, +} + +// AssetDir returns the file names below a certain +// directory embedded in the file by go-bindata. +// For example if you run go-bindata on data/... and data contains the +// following hierarchy: +// data/ +// foo.txt +// img/ +// a.png +// b.png +// then AssetDir("data") would return []string{"foo.txt", "img"} +// AssetDir("data/img") would return []string{"a.png", "b.png"} +// AssetDir("foo.txt") and AssetDir("notexist") would return an error +// AssetDir("") will return []string{"data"}. +func AssetDir(name string) ([]string, error) { + node := _bintree + if len(name) != 0 { + cannonicalName := strings.Replace(name, "\\", "/", -1) + pathList := strings.Split(cannonicalName, "/") + for _, p := range pathList { + node = node.Children[p] + if node == nil { + return nil, fmt.Errorf("Asset %s not found", name) + } + } + } + if node.Func != nil { + return nil, fmt.Errorf("Asset %s not found", name) + } + rv := make([]string, 0, len(node.Children)) + for childName := range node.Children { + rv = append(rv, childName) + } + return rv, nil +} + +type bintree struct { + Func func() (*asset, error) + Children map[string]*bintree +} + +var _bintree = &bintree{nil, map[string]*bintree{ + "kubernetesapi": &bintree{nil, map[string]*bintree{ + "v1204": &bintree{nil, map[string]*bintree{ + "swagger.json": &bintree{kubernetesapiV1204SwaggerJson, map[string]*bintree{}}, + }}, + }}, +}} + +// RestoreAsset restores an asset under the given directory +func RestoreAsset(dir, name string) error { + data, err := Asset(name) + if err != nil { + return err + } + info, err := AssetInfo(name) + if err != nil { + return err + } + err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) + if err != nil { + return err + } + err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) + if err != nil { + return err + } + err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) + if err != nil { + return err + } + return nil +} + +// RestoreAssets restores an asset under the given directory recursively +func RestoreAssets(dir, name string) error { + children, err := AssetDir(name) + // File + if err != nil { + return RestoreAsset(dir, name) + } + // Dir + for _, child := range children { + err = RestoreAssets(dir, filepath.Join(name, child)) + if err != nil { + return err + } + } + return nil +} + +func _filePath(dir, name string) string { + cannonicalName := strings.Replace(name, "\\", "/", -1) + return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1204/swagger.json b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1204/swagger.json new file mode 100644 index 0000000000..0ab9de888d --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1204/swagger.json @@ -0,0 +1,96625 @@ +{ + "definitions": { + "io.k8s.api.admissionregistration.v1.MutatingWebhook": { + "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", + "properties": { + "admissionReviewVersions": { + "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", + "items": { + "type": "string" + }, + "type": "array" + }, + "clientConfig": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", + "description": "ClientConfig defines how to communicate with the hook. Required" + }, + "failurePolicy": { + "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", + "type": "string" + }, + "matchPolicy": { + "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", + "type": "string" + }, + "name": { + "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", + "type": "string" + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." + }, + "objectSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." + }, + "reinvocationPolicy": { + "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", + "type": "string" + }, + "rules": { + "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" + }, + "type": "array" + }, + "sideEffects": { + "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", + "type": "string" + }, + "timeoutSeconds": { + "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "name", + "clientConfig", + "sideEffects", + "admissionReviewVersions" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration": { + "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "webhooks": { + "description": "Webhooks is a list of webhooks and the affected resources and operations.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhook" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList": { + "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", + "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" + }, + "items": { + "description": "List of MutatingWebhookConfiguration.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfigurationList", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.RuleWithOperations": { + "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", + "properties": { + "apiGroups": { + "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array" + }, + "apiVersions": { + "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array" + }, + "operations": { + "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resources": { + "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", + "items": { + "type": "string" + }, + "type": "array" + }, + "scope": { + "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ServiceReference": { + "description": "ServiceReference holds a reference to Service.legacy.k8s.io", + "properties": { + "name": { + "description": "`name` is the name of the service. Required", + "type": "string" + }, + "namespace": { + "description": "`namespace` is the namespace of the service. Required", + "type": "string" + }, + "path": { + "description": "`path` is an optional URL path which will be sent in any request to this service.", + "type": "string" + }, + "port": { + "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "namespace", + "name" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ValidatingWebhook": { + "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", + "properties": { + "admissionReviewVersions": { + "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", + "items": { + "type": "string" + }, + "type": "array" + }, + "clientConfig": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", + "description": "ClientConfig defines how to communicate with the hook. Required" + }, + "failurePolicy": { + "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", + "type": "string" + }, + "matchPolicy": { + "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", + "type": "string" + }, + "name": { + "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", + "type": "string" + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." + }, + "objectSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." + }, + "rules": { + "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" + }, + "type": "array" + }, + "sideEffects": { + "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", + "type": "string" + }, + "timeoutSeconds": { + "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "name", + "clientConfig", + "sideEffects", + "admissionReviewVersions" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration": { + "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "webhooks": { + "description": "Webhooks is a list of webhooks and the affected resources and operations.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhook" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList": { + "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", + "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" + }, + "items": { + "description": "List of ValidatingWebhookConfiguration.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfigurationList", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.WebhookClientConfig": { + "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", + "properties": { + "caBundle": { + "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", + "format": "byte", + "type": "string" + }, + "service": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ServiceReference", + "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." + }, + "url": { + "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.MutatingWebhook": { + "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", + "properties": { + "admissionReviewVersions": { + "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "clientConfig": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", + "description": "ClientConfig defines how to communicate with the hook. Required" + }, + "failurePolicy": { + "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", + "type": "string" + }, + "matchPolicy": { + "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", + "type": "string" + }, + "name": { + "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", + "type": "string" + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." + }, + "objectSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." + }, + "reinvocationPolicy": { + "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", + "type": "string" + }, + "rules": { + "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" + }, + "type": "array" + }, + "sideEffects": { + "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", + "type": "string" + }, + "timeoutSeconds": { + "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "name", + "clientConfig" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration": { + "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "webhooks": { + "description": "Webhooks is a list of webhooks and the affected resources and operations.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhook" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList": { + "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", + "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" + }, + "items": { + "description": "List of MutatingWebhookConfiguration.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfigurationList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.admissionregistration.v1beta1.RuleWithOperations": { + "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", + "properties": { + "apiGroups": { + "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array" + }, + "apiVersions": { + "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array" + }, + "operations": { + "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resources": { + "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", + "items": { + "type": "string" + }, + "type": "array" + }, + "scope": { + "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.ServiceReference": { + "description": "ServiceReference holds a reference to Service.legacy.k8s.io", + "properties": { + "name": { + "description": "`name` is the name of the service. Required", + "type": "string" + }, + "namespace": { + "description": "`namespace` is the namespace of the service. Required", + "type": "string" + }, + "path": { + "description": "`path` is an optional URL path which will be sent in any request to this service.", + "type": "string" + }, + "port": { + "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "namespace", + "name" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook": { + "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", + "properties": { + "admissionReviewVersions": { + "description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "clientConfig": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig", + "description": "ClientConfig defines how to communicate with the hook. Required" + }, + "failurePolicy": { + "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", + "type": "string" + }, + "matchPolicy": { + "description": "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", + "type": "string" + }, + "name": { + "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", + "type": "string" + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." + }, + "objectSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." + }, + "rules": { + "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" + }, + "type": "array" + }, + "sideEffects": { + "description": "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", + "type": "string" + }, + "timeoutSeconds": { + "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "name", + "clientConfig" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration": { + "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "webhooks": { + "description": "Webhooks is a list of webhooks and the affected resources and operations.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList": { + "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", + "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" + }, + "items": { + "description": "List of ValidatingWebhookConfiguration.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfigurationList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig": { + "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", + "properties": { + "caBundle": { + "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", + "format": "byte", + "type": "string" + }, + "service": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ServiceReference", + "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." + }, + "url": { + "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.ControllerRevision": { + "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", + "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" + }, + "data": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", + "description": "Data is the serialized representation of the state." + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "revision": { + "description": "Revision indicates the revision of the state represented by Data.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "revision" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.ControllerRevisionList": { + "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", + "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" + }, + "items": { + "description": "Items is the list of ControllerRevisions", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ControllerRevisionList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DaemonSet": { + "description": "DaemonSet represents the configuration of a daemon set.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec", + "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus", + "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DaemonSetCondition": { + "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of DaemonSet condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.DaemonSetList": { + "description": "DaemonSetList is a collection of daemon sets.", + "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" + }, + "items": { + "description": "A list of daemon sets.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "DaemonSetList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DaemonSetSpec": { + "description": "DaemonSetSpec is the specification of a daemon set.", + "properties": { + "minReadySeconds": { + "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", + "format": "int32", + "type": "integer" + }, + "revisionHistoryLimit": { + "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", + "format": "int32", + "type": "integer" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" + }, + "updateStrategy": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy", + "description": "An update strategy to replace existing DaemonSet pods with new pods." + } + }, + "required": [ + "selector", + "template" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.DaemonSetStatus": { + "description": "DaemonSetStatus represents the current status of a daemon set.", + "properties": { + "collisionCount": { + "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "format": "int32", + "type": "integer" + }, + "conditions": { + "description": "Represents the latest available observations of a DaemonSet's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetCondition" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "currentNumberScheduled": { + "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "format": "int32", + "type": "integer" + }, + "desiredNumberScheduled": { + "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "format": "int32", + "type": "integer" + }, + "numberAvailable": { + "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", + "format": "int32", + "type": "integer" + }, + "numberMisscheduled": { + "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "format": "int32", + "type": "integer" + }, + "numberReady": { + "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", + "format": "int32", + "type": "integer" + }, + "numberUnavailable": { + "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", + "format": "int32", + "type": "integer" + }, + "observedGeneration": { + "description": "The most recent generation observed by the daemon set controller.", + "format": "int64", + "type": "integer" + }, + "updatedNumberScheduled": { + "description": "The total number of nodes that are running updated daemon pod", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "currentNumberScheduled", + "numberMisscheduled", + "desiredNumberScheduled", + "numberReady" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.DaemonSetUpdateStrategy": { + "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", + "properties": { + "rollingUpdate": { + "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet", + "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." + }, + "type": { + "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.Deployment": { + "description": "Deployment enables declarative updates for Pods and ReplicaSets.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentSpec", + "description": "Specification of the desired behavior of the Deployment." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStatus", + "description": "Most recently observed status of the Deployment." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DeploymentCondition": { + "description": "DeploymentCondition describes the state of a deployment at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "lastUpdateTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "The last time this condition was updated." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of deployment condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.DeploymentList": { + "description": "DeploymentList is a list of Deployments.", + "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" + }, + "items": { + "description": "Items is the list of Deployments.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "DeploymentList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DeploymentSpec": { + "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", + "properties": { + "minReadySeconds": { + "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", + "format": "int32", + "type": "integer" + }, + "paused": { + "description": "Indicates that the deployment is paused.", + "type": "boolean" + }, + "progressDeadlineSeconds": { + "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", + "format": "int32", + "type": "integer" + }, + "revisionHistoryLimit": { + "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", + "format": "int32", + "type": "integer" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels." + }, + "strategy": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStrategy", + "description": "The deployment strategy to use to replace existing pods with new ones.", + "x-kubernetes-patch-strategy": "retainKeys" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "Template describes the pods that will be created." + } + }, + "required": [ + "selector", + "template" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.DeploymentStatus": { + "description": "DeploymentStatus is the most recently observed status of the Deployment.", + "properties": { + "availableReplicas": { + "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", + "format": "int32", + "type": "integer" + }, + "collisionCount": { + "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", + "format": "int32", + "type": "integer" + }, + "conditions": { + "description": "Represents the latest available observations of a deployment's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentCondition" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "observedGeneration": { + "description": "The generation observed by the deployment controller.", + "format": "int64", + "type": "integer" + }, + "readyReplicas": { + "description": "Total number of ready pods targeted by this deployment.", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", + "format": "int32", + "type": "integer" + }, + "unavailableReplicas": { + "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", + "format": "int32", + "type": "integer" + }, + "updatedReplicas": { + "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.DeploymentStrategy": { + "description": "DeploymentStrategy describes how to replace existing pods with new ones.", + "properties": { + "rollingUpdate": { + "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment", + "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." + }, + "type": { + "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.ReplicaSet": { + "description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec", + "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus", + "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.ReplicaSetCondition": { + "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "The last time the condition transitioned from one status to another." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of replica set condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.ReplicaSetList": { + "description": "ReplicaSetList is a collection of ReplicaSets.", + "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" + }, + "items": { + "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ReplicaSetList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.ReplicaSetSpec": { + "description": "ReplicaSetSpec is the specification of a ReplicaSet.", + "properties": { + "minReadySeconds": { + "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", + "format": "int32", + "type": "integer" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" + } + }, + "required": [ + "selector" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.ReplicaSetStatus": { + "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", + "properties": { + "availableReplicas": { + "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", + "format": "int32", + "type": "integer" + }, + "conditions": { + "description": "Represents the latest available observations of a replica set's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "fullyLabeledReplicas": { + "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", + "format": "int32", + "type": "integer" + }, + "observedGeneration": { + "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", + "format": "int64", + "type": "integer" + }, + "readyReplicas": { + "description": "The number of ready replicas for this replica set.", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "replicas" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.RollingUpdateDaemonSet": { + "description": "Spec to control the desired behavior of daemon set rolling update.", + "properties": { + "maxUnavailable": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.RollingUpdateDeployment": { + "description": "Spec to control the desired behavior of rolling update.", + "properties": { + "maxSurge": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods." + }, + "maxUnavailable": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy": { + "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", + "properties": { + "partition": { + "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.apps.v1.StatefulSet": { + "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetSpec", + "description": "Spec defines the desired identities of pods in this set." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetStatus", + "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.StatefulSetCondition": { + "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of statefulset condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.StatefulSetList": { + "description": "StatefulSetList is a collection of StatefulSets.", + "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" + }, + "items": { + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "StatefulSetList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.StatefulSetSpec": { + "description": "A StatefulSetSpec is the specification of a StatefulSet.", + "properties": { + "podManagementPolicy": { + "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", + "type": "string" + }, + "replicas": { + "description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", + "format": "int32", + "type": "integer" + }, + "revisionHistoryLimit": { + "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", + "format": "int32", + "type": "integer" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" + }, + "serviceName": { + "description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", + "type": "string" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet." + }, + "updateStrategy": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy", + "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template." + }, + "volumeClaimTemplates": { + "description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + }, + "type": "array" + } + }, + "required": [ + "selector", + "template", + "serviceName" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.StatefulSetStatus": { + "description": "StatefulSetStatus represents the current state of a StatefulSet.", + "properties": { + "collisionCount": { + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "format": "int32", + "type": "integer" + }, + "conditions": { + "description": "Represents the latest available observations of a statefulset's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetCondition" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "currentReplicas": { + "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", + "format": "int32", + "type": "integer" + }, + "currentRevision": { + "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", + "format": "int64", + "type": "integer" + }, + "readyReplicas": { + "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "replicas is the number of Pods created by the StatefulSet controller.", + "format": "int32", + "type": "integer" + }, + "updateRevision": { + "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", + "type": "string" + }, + "updatedReplicas": { + "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "replicas" + ], + "type": "object" + }, + "io.k8s.api.apps.v1.StatefulSetUpdateStrategy": { + "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", + "properties": { + "rollingUpdate": { + "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy", + "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType." + }, + "type": { + "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1.BoundObjectReference": { + "description": "BoundObjectReference is a reference to an object that a token is bound to.", + "properties": { + "apiVersion": { + "description": "API version of the referent.", + "type": "string" + }, + "kind": { + "description": "Kind of the referent. Valid kinds are 'Pod' and 'Secret'.", + "type": "string" + }, + "name": { + "description": "Name of the referent.", + "type": "string" + }, + "uid": { + "description": "UID of the referent.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1.TokenRequest": { + "description": "TokenRequest requests a token for a given service account.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequestSpec" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequestStatus" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authentication.k8s.io", + "kind": "TokenRequest", + "version": "v1" + } + ] + }, + "io.k8s.api.authentication.v1.TokenRequestSpec": { + "description": "TokenRequestSpec contains client provided parameters of a token request.", + "properties": { + "audiences": { + "description": "Audiences are the intendend audiences of the token. A recipient of a token must identitfy themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.", + "items": { + "type": "string" + }, + "type": "array" + }, + "boundObjectRef": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.BoundObjectReference", + "description": "BoundObjectRef is a reference to an object that the token will be bound to. The token will only be valid for as long as the bound object exists. NOTE: The API server's TokenReview endpoint will validate the BoundObjectRef, but other audiences may not. Keep ExpirationSeconds small if you want prompt revocation." + }, + "expirationSeconds": { + "description": "ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "audiences" + ], + "type": "object" + }, + "io.k8s.api.authentication.v1.TokenRequestStatus": { + "description": "TokenRequestStatus is the result of a token request.", + "properties": { + "expirationTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "ExpirationTimestamp is the time of expiration of the returned token." + }, + "token": { + "description": "Token is the opaque bearer token.", + "type": "string" + } + }, + "required": [ + "token", + "expirationTimestamp" + ], + "type": "object" + }, + "io.k8s.api.authentication.v1.TokenReview": { + "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec", + "description": "Spec holds information about the request being evaluated" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus", + "description": "Status is filled in by the server and indicates whether the request can be authenticated." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authentication.k8s.io", + "kind": "TokenReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authentication.v1.TokenReviewSpec": { + "description": "TokenReviewSpec is a description of the token authentication request.", + "properties": { + "audiences": { + "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", + "items": { + "type": "string" + }, + "type": "array" + }, + "token": { + "description": "Token is the opaque bearer token.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1.TokenReviewStatus": { + "description": "TokenReviewStatus is the result of the token authentication request.", + "properties": { + "audiences": { + "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", + "items": { + "type": "string" + }, + "type": "array" + }, + "authenticated": { + "description": "Authenticated indicates that the token was associated with a known user.", + "type": "boolean" + }, + "error": { + "description": "Error indicates that the token couldn't be checked", + "type": "string" + }, + "user": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", + "description": "User is the UserInfo associated with the provided token." + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1.UserInfo": { + "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", + "properties": { + "extra": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "Any additional information provided by the authenticator.", + "type": "object" + }, + "groups": { + "description": "The names of groups this user is a part of.", + "items": { + "type": "string" + }, + "type": "array" + }, + "uid": { + "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", + "type": "string" + }, + "username": { + "description": "The name that uniquely identifies this user among all active users.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1beta1.TokenReview": { + "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec", + "description": "Spec holds information about the request being evaluated" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus", + "description": "Status is filled in by the server and indicates whether the request can be authenticated." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authentication.k8s.io", + "kind": "TokenReview", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.authentication.v1beta1.TokenReviewSpec": { + "description": "TokenReviewSpec is a description of the token authentication request.", + "properties": { + "audiences": { + "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", + "items": { + "type": "string" + }, + "type": "array" + }, + "token": { + "description": "Token is the opaque bearer token.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1beta1.TokenReviewStatus": { + "description": "TokenReviewStatus is the result of the token authentication request.", + "properties": { + "audiences": { + "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", + "items": { + "type": "string" + }, + "type": "array" + }, + "authenticated": { + "description": "Authenticated indicates that the token was associated with a known user.", + "type": "boolean" + }, + "error": { + "description": "Error indicates that the token couldn't be checked", + "type": "string" + }, + "user": { + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.UserInfo", + "description": "User is the UserInfo associated with the provided token." + } + }, + "type": "object" + }, + "io.k8s.api.authentication.v1beta1.UserInfo": { + "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", + "properties": { + "extra": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "Any additional information provided by the authenticator.", + "type": "object" + }, + "groups": { + "description": "The names of groups this user is a part of.", + "items": { + "type": "string" + }, + "type": "array" + }, + "uid": { + "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", + "type": "string" + }, + "username": { + "description": "The name that uniquely identifies this user among all active users.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.LocalSubjectAccessReview": { + "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", + "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", + "description": "Status is filled in by the server and indicates whether the request is allowed or not" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "LocalSubjectAccessReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authorization.v1.NonResourceAttributes": { + "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", + "properties": { + "path": { + "description": "Path is the URL path of the request", + "type": "string" + }, + "verb": { + "description": "Verb is the standard HTTP verb", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.NonResourceRule": { + "description": "NonResourceRule holds information that describes a rule for the non-resource", + "properties": { + "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. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array" + }, + "verbs": { + "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "verbs" + ], + "type": "object" + }, + "io.k8s.api.authorization.v1.ResourceAttributes": { + "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", + "properties": { + "group": { + "description": "Group is the API Group of the Resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", + "type": "string" + }, + "resource": { + "description": "Resource is one of the existing resource types. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "Subresource is one of the existing resource types. \"\" means none.", + "type": "string" + }, + "verb": { + "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "type": "string" + }, + "version": { + "description": "Version is the API Version of the Resource. \"*\" means all.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.ResourceRule": { + "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", + "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. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resourceNames": { + "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resources": { + "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", + "items": { + "type": "string" + }, + "type": "array" + }, + "verbs": { + "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "verbs" + ], + "type": "object" + }, + "io.k8s.api.authorization.v1.SelfSubjectAccessReview": { + "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec", + "description": "Spec holds information about the request being evaluated. user and groups must be empty" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", + "description": "Status is filled in by the server and indicates whether the request is allowed or not" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SelfSubjectAccessReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": { + "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", + "properties": { + "nonResourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", + "description": "NonResourceAttributes describes information for a non-resource access request" + }, + "resourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", + "description": "ResourceAuthorizationAttributes describes information for a resource access request" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.SelfSubjectRulesReview": { + "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec", + "description": "Spec holds information about the request being evaluated." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus", + "description": "Status is filled in by the server and indicates the set of actions a user can perform." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SelfSubjectRulesReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec": { + "properties": { + "namespace": { + "description": "Namespace to evaluate rules for. Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.SubjectAccessReview": { + "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", + "description": "Spec holds information about the request being evaluated" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", + "description": "Status is filled in by the server and indicates whether the request is allowed or not" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SubjectAccessReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authorization.v1.SubjectAccessReviewSpec": { + "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", + "properties": { + "extra": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", + "type": "object" + }, + "groups": { + "description": "Groups is the groups you're testing for.", + "items": { + "type": "string" + }, + "type": "array" + }, + "nonResourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", + "description": "NonResourceAttributes describes information for a non-resource access request" + }, + "resourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", + "description": "ResourceAuthorizationAttributes describes information for a resource access request" + }, + "uid": { + "description": "UID information about the requesting user.", + "type": "string" + }, + "user": { + "description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1.SubjectAccessReviewStatus": { + "description": "SubjectAccessReviewStatus", + "properties": { + "allowed": { + "description": "Allowed is required. True if the action would be allowed, false otherwise.", + "type": "boolean" + }, + "denied": { + "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", + "type": "boolean" + }, + "evaluationError": { + "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", + "type": "string" + }, + "reason": { + "description": "Reason is optional. It indicates why a request was allowed or denied.", + "type": "string" + } + }, + "required": [ + "allowed" + ], + "type": "object" + }, + "io.k8s.api.authorization.v1.SubjectRulesReviewStatus": { + "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", + "properties": { + "evaluationError": { + "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", + "type": "string" + }, + "incomplete": { + "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", + "type": "boolean" + }, + "nonResourceRules": { + "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", + "items": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceRule" + }, + "type": "array" + }, + "resourceRules": { + "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", + "items": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceRule" + }, + "type": "array" + } + }, + "required": [ + "resourceRules", + "nonResourceRules", + "incomplete" + ], + "type": "object" + }, + "io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview": { + "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", + "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", + "description": "Status is filled in by the server and indicates whether the request is allowed or not" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "LocalSubjectAccessReview", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.authorization.v1beta1.NonResourceAttributes": { + "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", + "properties": { + "path": { + "description": "Path is the URL path of the request", + "type": "string" + }, + "verb": { + "description": "Verb is the standard HTTP verb", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1beta1.NonResourceRule": { + "description": "NonResourceRule holds information that describes a rule for the non-resource", + "properties": { + "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. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array" + }, + "verbs": { + "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "verbs" + ], + "type": "object" + }, + "io.k8s.api.authorization.v1beta1.ResourceAttributes": { + "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", + "properties": { + "group": { + "description": "Group is the API Group of the Resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", + "type": "string" + }, + "resource": { + "description": "Resource is one of the existing resource types. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "Subresource is one of the existing resource types. \"\" means none.", + "type": "string" + }, + "verb": { + "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "type": "string" + }, + "version": { + "description": "Version is the API Version of the Resource. \"*\" means all.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1beta1.ResourceRule": { + "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", + "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. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resourceNames": { + "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resources": { + "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", + "items": { + "type": "string" + }, + "type": "array" + }, + "verbs": { + "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "verbs" + ], + "type": "object" + }, + "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview": { + "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec", + "description": "Spec holds information about the request being evaluated. user and groups must be empty" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", + "description": "Status is filled in by the server and indicates whether the request is allowed or not" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SelfSubjectAccessReview", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec": { + "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", + "properties": { + "nonResourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", + "description": "NonResourceAttributes describes information for a non-resource access request" + }, + "resourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", + "description": "ResourceAuthorizationAttributes describes information for a resource access request" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview": { + "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec", + "description": "Spec holds information about the request being evaluated." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus", + "description": "Status is filled in by the server and indicates the set of actions a user can perform." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SelfSubjectRulesReview", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec": { + "properties": { + "namespace": { + "description": "Namespace to evaluate rules for. Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1beta1.SubjectAccessReview": { + "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", + "description": "Spec holds information about the request being evaluated" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", + "description": "Status is filled in by the server and indicates whether the request is allowed or not" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SubjectAccessReview", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec": { + "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", + "properties": { + "extra": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", + "type": "object" + }, + "group": { + "description": "Groups is the groups you're testing for.", + "items": { + "type": "string" + }, + "type": "array" + }, + "nonResourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes", + "description": "NonResourceAttributes describes information for a non-resource access request" + }, + "resourceAttributes": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes", + "description": "ResourceAuthorizationAttributes describes information for a resource access request" + }, + "uid": { + "description": "UID information about the requesting user.", + "type": "string" + }, + "user": { + "description": "User is the user you're testing for. If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus": { + "description": "SubjectAccessReviewStatus", + "properties": { + "allowed": { + "description": "Allowed is required. True if the action would be allowed, false otherwise.", + "type": "boolean" + }, + "denied": { + "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", + "type": "boolean" + }, + "evaluationError": { + "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", + "type": "string" + }, + "reason": { + "description": "Reason is optional. It indicates why a request was allowed or denied.", + "type": "string" + } + }, + "required": [ + "allowed" + ], + "type": "object" + }, + "io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus": { + "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", + "properties": { + "evaluationError": { + "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", + "type": "string" + }, + "incomplete": { + "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", + "type": "boolean" + }, + "nonResourceRules": { + "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", + "items": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceRule" + }, + "type": "array" + }, + "resourceRules": { + "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", + "items": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceRule" + }, + "type": "array" + } + }, + "required": [ + "resourceRules", + "nonResourceRules", + "incomplete" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v1.CrossVersionObjectReference": { + "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", + "properties": { + "apiVersion": { + "description": "API version of the referent", + "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: http://kubernetes.io/docs/user-guide/identifiers#names", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler": { + "description": "configuration of a horizontal pod autoscaler.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec", + "description": "behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus", + "description": "current information about the autoscaler." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + ] + }, + "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList": { + "description": "list of horizontal pod autoscaler objects.", + "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" + }, + "items": { + "description": "list of horizontal pod autoscaler objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "HorizontalPodAutoscalerList", + "version": "v1" + } + ] + }, + "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec": { + "description": "specification of a horizontal pod autoscaler.", + "properties": { + "maxReplicas": { + "description": "upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.", + "format": "int32", + "type": "integer" + }, + "minReplicas": { + "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", + "format": "int32", + "type": "integer" + }, + "scaleTargetRef": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference", + "description": "reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource." + }, + "targetCPUUtilizationPercentage": { + "description": "target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "scaleTargetRef", + "maxReplicas" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus": { + "description": "current status of a horizontal pod autoscaler", + "properties": { + "currentCPUUtilizationPercentage": { + "description": "current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.", + "format": "int32", + "type": "integer" + }, + "currentReplicas": { + "description": "current number of replicas of pods managed by this autoscaler.", + "format": "int32", + "type": "integer" + }, + "desiredReplicas": { + "description": "desired number of replicas of pods managed by this autoscaler.", + "format": "int32", + "type": "integer" + }, + "lastScaleTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed." + }, + "observedGeneration": { + "description": "most recent generation observed by this autoscaler.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currentReplicas", + "desiredReplicas" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v1.Scale": { + "description": "Scale represents a scaling request for a resource.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec", + "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus", + "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + ] + }, + "io.k8s.api.autoscaling.v1.ScaleSpec": { + "description": "ScaleSpec describes the attributes of a scale subresource.", + "properties": { + "replicas": { + "description": "desired number of instances for the scaled object.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.autoscaling.v1.ScaleStatus": { + "description": "ScaleStatus represents the current status of a scale subresource.", + "properties": { + "replicas": { + "description": "actual number of observed instances of the scaled object.", + "format": "int32", + "type": "integer" + }, + "selector": { + "description": "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors", + "type": "string" + } + }, + "required": [ + "replicas" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricSource": { + "description": "ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", + "properties": { + "container": { + "description": "container is the name of the container in the pods of the scaling target", + "type": "string" + }, + "name": { + "description": "name is the name of the resource in question.", + "type": "string" + }, + "targetAverageUtilization": { + "description": "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", + "format": "int32", + "type": "integer" + }, + "targetAverageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type." + } + }, + "required": [ + "name", + "container" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricStatus": { + "description": "ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", + "properties": { + "container": { + "description": "container is the name of the container in the pods of the scaling target", + "type": "string" + }, + "currentAverageUtilization": { + "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", + "format": "int32", + "type": "integer" + }, + "currentAverageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification." + }, + "name": { + "description": "name is the name of the resource in question.", + "type": "string" + } + }, + "required": [ + "name", + "currentAverageValue", + "container" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference": { + "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", + "properties": { + "apiVersion": { + "description": "API version of the referent", + "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: http://kubernetes.io/docs/user-guide/identifiers#names", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.ExternalMetricSource": { + "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one \"target\" type should be set.", + "properties": { + "metricName": { + "description": "metricName is the name of the metric in question.", + "type": "string" + }, + "metricSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "metricSelector is used to identify a specific time series within a given metric." + }, + "targetAverageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue." + }, + "targetValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue." + } + }, + "required": [ + "metricName" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus": { + "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", + "properties": { + "currentAverageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "currentAverageValue is the current value of metric averaged over autoscaled pods." + }, + "currentValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "currentValue is the current value of the metric (as a quantity)" + }, + "metricName": { + "description": "metricName is the name of a metric used for autoscaling in metric system.", + "type": "string" + }, + "metricSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "metricSelector is used to identify a specific time series within a given metric." + } + }, + "required": [ + "metricName", + "currentValue" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler": { + "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec", + "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus", + "description": "status is the current information about the autoscaler." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + ] + }, + "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition": { + "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastTransitionTime is the last time the condition transitioned from one status to another" + }, + "message": { + "description": "message is a human-readable explanation containing details about the transition", + "type": "string" + }, + "reason": { + "description": "reason is the reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "status is the status of the condition (True, False, Unknown)", + "type": "string" + }, + "type": { + "description": "type describes the current condition", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList": { + "description": "HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.", + "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" + }, + "items": { + "description": "items is the list of horizontal pod autoscaler objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata is the standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "HorizontalPodAutoscalerList", + "version": "v2beta1" + } + ] + }, + "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec": { + "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", + "properties": { + "maxReplicas": { + "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", + "format": "int32", + "type": "integer" + }, + "metrics": { + "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricSpec" + }, + "type": "array" + }, + "minReplicas": { + "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", + "format": "int32", + "type": "integer" + }, + "scaleTargetRef": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", + "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." + } + }, + "required": [ + "scaleTargetRef", + "maxReplicas" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus": { + "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", + "properties": { + "conditions": { + "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition" + }, + "type": "array" + }, + "currentMetrics": { + "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricStatus" + }, + "type": "array" + }, + "currentReplicas": { + "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", + "format": "int32", + "type": "integer" + }, + "desiredReplicas": { + "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", + "format": "int32", + "type": "integer" + }, + "lastScaleTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." + }, + "observedGeneration": { + "description": "observedGeneration is the most recent generation observed by this autoscaler.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currentReplicas", + "desiredReplicas", + "conditions" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.MetricSpec": { + "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", + "properties": { + "containerResource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricSource", + "description": "container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag." + }, + "external": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricSource", + "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." + }, + "object": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricSource", + "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." + }, + "pods": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricSource", + "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." + }, + "resource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricSource", + "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." + }, + "type": { + "description": "type is the type of metric source. It should be one of \"ContainerResource\", \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object. Note: \"ContainerResource\" type is available on when the feature-gate HPAContainerMetrics is enabled", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.MetricStatus": { + "description": "MetricStatus describes the last-read state of a single metric.", + "properties": { + "containerResource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricStatus", + "description": "container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." + }, + "external": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus", + "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." + }, + "object": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus", + "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." + }, + "pods": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricStatus", + "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." + }, + "resource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus", + "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." + }, + "type": { + "description": "type is the type of metric source. It will be one of \"ContainerResource\", \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object. Note: \"ContainerResource\" type is available on when the feature-gate HPAContainerMetrics is enabled", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.ObjectMetricSource": { + "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", + "properties": { + "averageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" + }, + "metricName": { + "description": "metricName is the name of the metric in question.", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", + "description": "target is the described Kubernetes object." + }, + "targetValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "targetValue is the target value of the metric (as a quantity)." + } + }, + "required": [ + "target", + "metricName", + "targetValue" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus": { + "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", + "properties": { + "averageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" + }, + "currentValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "currentValue is the current value of the metric (as a quantity)." + }, + "metricName": { + "description": "metricName is the name of the metric in question.", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference", + "description": "target is the described Kubernetes object." + } + }, + "required": [ + "target", + "metricName", + "currentValue" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.PodsMetricSource": { + "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", + "properties": { + "metricName": { + "description": "metricName is the name of the metric in question", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics." + }, + "targetAverageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)" + } + }, + "required": [ + "metricName", + "targetAverageValue" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.PodsMetricStatus": { + "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", + "properties": { + "currentAverageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)" + }, + "metricName": { + "description": "metricName is the name of the metric in question", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." + } + }, + "required": [ + "metricName", + "currentAverageValue" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.ResourceMetricSource": { + "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", + "properties": { + "name": { + "description": "name is the name of the resource in question.", + "type": "string" + }, + "targetAverageUtilization": { + "description": "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", + "format": "int32", + "type": "integer" + }, + "targetAverageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type." + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus": { + "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", + "properties": { + "currentAverageUtilization": { + "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", + "format": "int32", + "type": "integer" + }, + "currentAverageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification." + }, + "name": { + "description": "name is the name of the resource in question.", + "type": "string" + } + }, + "required": [ + "name", + "currentAverageValue" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource": { + "description": "ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", + "properties": { + "container": { + "description": "container is the name of the container in the pods of the scaling target", + "type": "string" + }, + "name": { + "description": "name is the name of the resource in question.", + "type": "string" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", + "description": "target specifies the target value for the given metric" + } + }, + "required": [ + "name", + "target", + "container" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus": { + "description": "ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", + "properties": { + "container": { + "description": "Container is the name of the container in the pods of the scaling target", + "type": "string" + }, + "current": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", + "description": "current contains the current value for the given metric" + }, + "name": { + "description": "Name is the name of the resource in question.", + "type": "string" + } + }, + "required": [ + "name", + "current", + "container" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference": { + "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", + "properties": { + "apiVersion": { + "description": "API version of the referent", + "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: http://kubernetes.io/docs/user-guide/identifiers#names", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.ExternalMetricSource": { + "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", + "properties": { + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", + "description": "target specifies the target value for the given metric" + } + }, + "required": [ + "metric", + "target" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus": { + "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", + "properties": { + "current": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", + "description": "current contains the current value for the given metric" + }, + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + } + }, + "required": [ + "metric", + "current" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy": { + "description": "HPAScalingPolicy is a single policy which must hold true for a specified past interval.", + "properties": { + "periodSeconds": { + "description": "PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "Type is used to specify the scaling policy.", + "type": "string" + }, + "value": { + "description": "Value contains the amount of change which is permitted by the policy. It must be greater than zero", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "type", + "value", + "periodSeconds" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.HPAScalingRules": { + "description": "HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.", + "properties": { + "policies": { + "description": "policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy" + }, + "type": "array" + }, + "selectPolicy": { + "description": "selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.", + "type": "string" + }, + "stabilizationWindowSeconds": { + "description": "StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler": { + "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec", + "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus", + "description": "status is the current information about the autoscaler." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + ] + }, + "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior": { + "description": "HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).", + "properties": { + "scaleDown": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", + "description": "scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used)." + }, + "scaleUp": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules", + "description": "scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\n * increase no more than 4 pods per 60 seconds\n * double the number of pods per 60 seconds\nNo stabilization is used." + } + }, + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition": { + "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastTransitionTime is the last time the condition transitioned from one status to another" + }, + "message": { + "description": "message is a human-readable explanation containing details about the transition", + "type": "string" + }, + "reason": { + "description": "reason is the reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "status is the status of the condition (True, False, Unknown)", + "type": "string" + }, + "type": { + "description": "type describes the current condition", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList": { + "description": "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.", + "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" + }, + "items": { + "description": "items is the list of horizontal pod autoscaler objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "metadata is the standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "autoscaling", + "kind": "HorizontalPodAutoscalerList", + "version": "v2beta2" + } + ] + }, + "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec": { + "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", + "properties": { + "behavior": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior", + "description": "behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used." + }, + "maxReplicas": { + "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", + "format": "int32", + "type": "integer" + }, + "metrics": { + "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricSpec" + }, + "type": "array" + }, + "minReplicas": { + "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", + "format": "int32", + "type": "integer" + }, + "scaleTargetRef": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference", + "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." + } + }, + "required": [ + "scaleTargetRef", + "maxReplicas" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus": { + "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", + "properties": { + "conditions": { + "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition" + }, + "type": "array" + }, + "currentMetrics": { + "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", + "items": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricStatus" + }, + "type": "array" + }, + "currentReplicas": { + "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", + "format": "int32", + "type": "integer" + }, + "desiredReplicas": { + "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", + "format": "int32", + "type": "integer" + }, + "lastScaleTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." + }, + "observedGeneration": { + "description": "observedGeneration is the most recent generation observed by this autoscaler.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currentReplicas", + "desiredReplicas", + "conditions" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.MetricIdentifier": { + "description": "MetricIdentifier defines the name and optionally selector for a metric", + "properties": { + "name": { + "description": "name is the name of the given metric", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.MetricSpec": { + "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", + "properties": { + "containerResource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource", + "description": "container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag." + }, + "external": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricSource", + "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." + }, + "object": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricSource", + "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." + }, + "pods": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricSource", + "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." + }, + "resource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricSource", + "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." + }, + "type": { + "description": "type is the type of metric source. It should be one of \"ContainerResource\", \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object. Note: \"ContainerResource\" type is available on when the feature-gate HPAContainerMetrics is enabled", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.MetricStatus": { + "description": "MetricStatus describes the last-read state of a single metric.", + "properties": { + "containerResource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus", + "description": "container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." + }, + "external": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus", + "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." + }, + "object": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus", + "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." + }, + "pods": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricStatus", + "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." + }, + "resource": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus", + "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." + }, + "type": { + "description": "type is the type of metric source. It will be one of \"ContainerResource\", \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object. Note: \"ContainerResource\" type is available on when the feature-gate HPAContainerMetrics is enabled", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.MetricTarget": { + "description": "MetricTarget defines the target value, average value, or average utilization of a specific metric", + "properties": { + "averageUtilization": { + "description": "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type", + "format": "int32", + "type": "integer" + }, + "averageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" + }, + "type": { + "description": "type represents whether the metric type is Utilization, Value, or AverageValue", + "type": "string" + }, + "value": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "value is the target value of the metric (as a quantity)." + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.MetricValueStatus": { + "description": "MetricValueStatus holds the current value for a metric", + "properties": { + "averageUtilization": { + "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", + "format": "int32", + "type": "integer" + }, + "averageValue": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" + }, + "value": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "value is the current value of the metric (as a quantity)." + } + }, + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.ObjectMetricSource": { + "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", + "properties": { + "describedObject": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" + }, + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", + "description": "target specifies the target value for the given metric" + } + }, + "required": [ + "describedObject", + "target", + "metric" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus": { + "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", + "properties": { + "current": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", + "description": "current contains the current value for the given metric" + }, + "describedObject": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference" + }, + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + } + }, + "required": [ + "metric", + "current", + "describedObject" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.PodsMetricSource": { + "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", + "properties": { + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", + "description": "target specifies the target value for the given metric" + } + }, + "required": [ + "metric", + "target" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.PodsMetricStatus": { + "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", + "properties": { + "current": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", + "description": "current contains the current value for the given metric" + }, + "metric": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier", + "description": "metric identifies the target metric by name and selector" + } + }, + "required": [ + "metric", + "current" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.ResourceMetricSource": { + "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", + "properties": { + "name": { + "description": "name is the name of the resource in question.", + "type": "string" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget", + "description": "target specifies the target value for the given metric" + } + }, + "required": [ + "name", + "target" + ], + "type": "object" + }, + "io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus": { + "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", + "properties": { + "current": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus", + "description": "current contains the current value for the given metric" + }, + "name": { + "description": "Name is the name of the resource in question.", + "type": "string" + } + }, + "required": [ + "name", + "current" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.Job": { + "description": "Job represents the configuration of a single job.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", + "description": "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.batch.v1.JobStatus", + "description": "Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "batch", + "kind": "Job", + "version": "v1" + } + ] + }, + "io.k8s.api.batch.v1.JobCondition": { + "description": "JobCondition describes current state of a job.", + "properties": { + "lastProbeTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition was checked." + }, + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transit from one status to another." + }, + "message": { + "description": "Human readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "(brief) reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of job condition, Complete or Failed.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.JobList": { + "description": "JobList is a collection of jobs.", + "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" + }, + "items": { + "description": "items is the list of Jobs.", + "items": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "batch", + "kind": "JobList", + "version": "v1" + } + ] + }, + "io.k8s.api.batch.v1.JobSpec": { + "description": "JobSpec describes how the job execution will look like.", + "properties": { + "activeDeadlineSeconds": { + "description": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", + "format": "int64", + "type": "integer" + }, + "backoffLimit": { + "description": "Specifies the number of retries before marking this job failed. Defaults to 6", + "format": "int32", + "type": "integer" + }, + "completions": { + "description": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "format": "int32", + "type": "integer" + }, + "manualSelector": { + "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", + "type": "boolean" + }, + "parallelism": { + "description": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) \u003c .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "format": "int32", + "type": "integer" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/" + }, + "ttlSecondsAfterFinished": { + "description": "ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "template" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.JobStatus": { + "description": "JobStatus represents the current state of a Job.", + "properties": { + "active": { + "description": "The number of actively running pods.", + "format": "int32", + "type": "integer" + }, + "completionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is only set when the job finishes successfully." + }, + "conditions": { + "description": "The latest available observations of an object's current state. When a job fails, one of the conditions will have type == \"Failed\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "items": { + "$ref": "#/definitions/io.k8s.api.batch.v1.JobCondition" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "failed": { + "description": "The number of pods which reached phase Failed.", + "format": "int32", + "type": "integer" + }, + "startTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Represents time when the job was acknowledged by the job controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC." + }, + "succeeded": { + "description": "The number of pods which reached phase Succeeded.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.batch.v1beta1.CronJob": { + "description": "CronJob represents the configuration of a single cron job.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobSpec", + "description": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobStatus", + "description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.batch.v1beta1.CronJobList": { + "description": "CronJobList is a collection of cron jobs.", + "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" + }, + "items": { + "description": "items is the list of CronJobs.", + "items": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "batch", + "kind": "CronJobList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.batch.v1beta1.CronJobSpec": { + "description": "CronJobSpec describes how the job execution will look like and when it will actually run.", + "properties": { + "concurrencyPolicy": { + "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", + "type": "string" + }, + "failedJobsHistoryLimit": { + "description": "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", + "format": "int32", + "type": "integer" + }, + "jobTemplate": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.JobTemplateSpec", + "description": "Specifies the job that will be created when executing a CronJob." + }, + "schedule": { + "description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", + "type": "string" + }, + "startingDeadlineSeconds": { + "description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", + "format": "int64", + "type": "integer" + }, + "successfulJobsHistoryLimit": { + "description": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.", + "format": "int32", + "type": "integer" + }, + "suspend": { + "description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", + "type": "boolean" + } + }, + "required": [ + "schedule", + "jobTemplate" + ], + "type": "object" + }, + "io.k8s.api.batch.v1beta1.CronJobStatus": { + "description": "CronJobStatus represents the current state of a cron job.", + "properties": { + "active": { + "description": "A list of pointers to currently running jobs.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + }, + "type": "array" + }, + "lastScheduleTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Information when was the last time the job was successfully scheduled." + } + }, + "type": "object" + }, + "io.k8s.api.batch.v1beta1.JobTemplateSpec": { + "description": "JobTemplateSpec describes the data a Job should have when created from a template", + "properties": { + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", + "description": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object" + }, + "io.k8s.api.certificates.v1.CertificateSigningRequest": { + "description": "CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.\n\nKubelets use this API to obtain:\n 1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName).\n 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName).\n\nThis API can be used to request client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client\" signerName), or to obtain certificates from custom non-Kubernetes signers.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestSpec", + "description": "spec contains the certificate request, and is immutable after creation. Only the request, signerName, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestStatus", + "description": "status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + ] + }, + "io.k8s.api.certificates.v1.CertificateSigningRequestCondition": { + "description": "CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time." + }, + "lastUpdateTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastUpdateTime is the time of the last update to this condition" + }, + "message": { + "description": "message contains a human readable message with details about the request state", + "type": "string" + }, + "reason": { + "description": "reason indicates a brief reason for the request state", + "type": "string" + }, + "status": { + "description": "status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".", + "type": "string" + }, + "type": { + "description": "type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n\nAn \"Approved\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer.\n\nA \"Denied\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer.\n\nA \"Failed\" condition is added via the /status subresource, indicating the signer failed to issue the certificate.\n\nApproved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added.\n\nOnly one condition of a given type is allowed.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.certificates.v1.CertificateSigningRequestList": { + "description": "CertificateSigningRequestList is a collection of CertificateSigningRequest objects", + "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" + }, + "items": { + "description": "items is a collection of CertificateSigningRequest objects", + "items": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequestList", + "version": "v1" + } + ] + }, + "io.k8s.api.certificates.v1.CertificateSigningRequestSpec": { + "description": "CertificateSigningRequestSpec contains the certificate request.", + "properties": { + "extra": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", + "type": "object" + }, + "groups": { + "description": "groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "request": { + "description": "request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.", + "format": "byte", + "type": "string", + "x-kubernetes-list-type": "atomic" + }, + "signerName": { + "description": "signerName indicates the requested signer, and is a qualified name.\n\nList/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector.\n\nWell-known Kubernetes signers are:\n 1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver.\n Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver.\n Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\n Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\nMore details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\n\nCustom signerNames can also be specified. The signer defines:\n 1. Trust distribution: how trust (CA bundles) are distributed.\n 2. Permitted subjects: and behavior when a disallowed subject is requested.\n 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\n 4. Required, permitted, or forbidden key usages / extended key usages.\n 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\n 6. Whether or not requests for CA certificates are allowed.", + "type": "string" + }, + "uid": { + "description": "uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", + "type": "string" + }, + "usages": { + "description": "usages specifies a set of key usages requested in the issued certificate.\n\nRequests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\".\n\nRequests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\".\n\nValid values are:\n \"signing\", \"digital signature\", \"content commitment\",\n \"key encipherment\", \"key agreement\", \"data encipherment\",\n \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\",\n \"server auth\", \"client auth\",\n \"code signing\", \"email protection\", \"s/mime\",\n \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\",\n \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "username": { + "description": "username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", + "type": "string" + } + }, + "required": [ + "request", + "signerName" + ], + "type": "object" + }, + "io.k8s.api.certificates.v1.CertificateSigningRequestStatus": { + "description": "CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.", + "properties": { + "certificate": { + "description": "certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable.\n\nIf the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty.\n\nValidation requirements:\n 1. certificate must contain one or more PEM blocks.\n 2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data\n must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\n 3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated,\n to allow for explanatory text as described in section 5.2 of RFC7468.\n\nIf more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\n\nThe certificate is encoded in PEM format.\n\nWhen serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\n\n base64(\n -----BEGIN CERTIFICATE-----\n ...\n -----END CERTIFICATE-----\n )", + "format": "byte", + "type": "string", + "x-kubernetes-list-type": "atomic" + }, + "conditions": { + "description": "conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".", + "items": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" + } + }, + "type": "object" + }, + "io.k8s.api.certificates.v1beta1.CertificateSigningRequest": { + "description": "Describes a certificate signing request", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec", + "description": "The certificate request itself and any additional information." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus", + "description": "Derived information about the request." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition": { + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time." + }, + "lastUpdateTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "timestamp for the last update to this condition" + }, + "message": { + "description": "human readable message with details about the request state", + "type": "string" + }, + "reason": { + "description": "brief reason for the request state", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\". Defaults to \"True\". If unset, should be treated as \"True\".", + "type": "string" + }, + "type": { + "description": "type of the condition. Known conditions include \"Approved\", \"Denied\", and \"Failed\".", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.certificates.v1beta1.CertificateSigningRequestList": { + "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" + }, + "items": { + "items": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequestList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec": { + "description": "This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.", + "properties": { + "extra": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "Extra information about the requesting user. See user.Info interface for details.", + "type": "object" + }, + "groups": { + "description": "Group information about the requesting user. See user.Info interface for details.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "request": { + "description": "Base64-encoded PKCS#10 CSR data", + "format": "byte", + "type": "string", + "x-kubernetes-list-type": "atomic" + }, + "signerName": { + "description": "Requested signer for the request. It is a qualified name in the form: `scope-hostname.io/name`. If empty, it will be defaulted:\n 1. If it's a kubelet client certificate, it is assigned\n \"kubernetes.io/kube-apiserver-client-kubelet\".\n 2. If it's a kubelet serving certificate, it is assigned\n \"kubernetes.io/kubelet-serving\".\n 3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\nDistribution of trust for signers happens out of band. You can select on this field using `spec.signerName`.", + "type": "string" + }, + "uid": { + "description": "UID information about the requesting user. See user.Info interface for details.", + "type": "string" + }, + "usages": { + "description": "allowedUsages specifies a set of usage contexts the key will be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3\n https://tools.ietf.org/html/rfc5280#section-4.2.1.12\nValid values are:\n \"signing\",\n \"digital signature\",\n \"content commitment\",\n \"key encipherment\",\n \"key agreement\",\n \"data encipherment\",\n \"cert sign\",\n \"crl sign\",\n \"encipher only\",\n \"decipher only\",\n \"any\",\n \"server auth\",\n \"client auth\",\n \"code signing\",\n \"email protection\",\n \"s/mime\",\n \"ipsec end system\",\n \"ipsec tunnel\",\n \"ipsec user\",\n \"timestamping\",\n \"ocsp signing\",\n \"microsoft sgc\",\n \"netscape sgc\"", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "username": { + "description": "Information about the requesting user. See user.Info interface for details.", + "type": "string" + } + }, + "required": [ + "request" + ], + "type": "object" + }, + "io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus": { + "properties": { + "certificate": { + "description": "If request was approved, the controller will place the issued certificate here.", + "format": "byte", + "type": "string", + "x-kubernetes-list-type": "atomic" + }, + "conditions": { + "description": "Conditions applied to the request, such as approval or denial.", + "items": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" + } + }, + "type": "object" + }, + "io.k8s.api.coordination.v1.Lease": { + "description": "Lease defines a lease concept.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseSpec", + "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + ] + }, + "io.k8s.api.coordination.v1.LeaseList": { + "description": "LeaseList is a list of Lease objects.", + "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" + }, + "items": { + "description": "Items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "coordination.k8s.io", + "kind": "LeaseList", + "version": "v1" + } + ] + }, + "io.k8s.api.coordination.v1.LeaseSpec": { + "description": "LeaseSpec is a specification of a Lease.", + "properties": { + "acquireTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "acquireTime is a time when the current lease was acquired." + }, + "holderIdentity": { + "description": "holderIdentity contains the identity of the holder of a current lease.", + "type": "string" + }, + "leaseDurationSeconds": { + "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", + "format": "int32", + "type": "integer" + }, + "leaseTransitions": { + "description": "leaseTransitions is the number of transitions of a lease between holders.", + "format": "int32", + "type": "integer" + }, + "renewTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "renewTime is a time when the current holder of a lease has last updated the lease." + } + }, + "type": "object" + }, + "io.k8s.api.coordination.v1beta1.Lease": { + "description": "Lease defines a lease concept.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseSpec", + "description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.coordination.v1beta1.LeaseList": { + "description": "LeaseList is a list of Lease objects.", + "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" + }, + "items": { + "description": "Items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "coordination.k8s.io", + "kind": "LeaseList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.coordination.v1beta1.LeaseSpec": { + "description": "LeaseSpec is a specification of a Lease.", + "properties": { + "acquireTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "acquireTime is a time when the current lease was acquired." + }, + "holderIdentity": { + "description": "holderIdentity contains the identity of the holder of a current lease.", + "type": "string" + }, + "leaseDurationSeconds": { + "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", + "format": "int32", + "type": "integer" + }, + "leaseTransitions": { + "description": "leaseTransitions is the number of transitions of a lease between holders.", + "format": "int32", + "type": "integer" + }, + "renewTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "renewTime is a time when the current holder of a lease has last updated the lease." + } + }, + "type": "object" + }, + "io.k8s.api.core.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.", + "properties": { + "fsType": { + "description": "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": "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).", + "format": "int32", + "type": "integer" + }, + "readOnly": { + "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "type": "boolean" + }, + "volumeID": { + "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "type": "string" + } + }, + "required": [ + "volumeID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Affinity": { + "description": "Affinity is a group of affinity scheduling rules.", + "properties": { + "nodeAffinity": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity", + "description": "Describes node affinity scheduling rules for the pod." + }, + "podAffinity": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity", + "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." + }, + "podAntiAffinity": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity", + "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.AttachedVolume": { + "description": "AttachedVolume describes a volume attached to a node", + "properties": { + "devicePath": { + "description": "DevicePath represents the device path where the volume should be available", + "type": "string" + }, + "name": { + "description": "Name of the attached volume", + "type": "string" + } + }, + "required": [ + "name", + "devicePath" + ], + "type": "object" + }, + "io.k8s.api.core.v1.AzureDiskVolumeSource": { + "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", + "properties": { + "cachingMode": { + "description": "Host Caching mode: None, Read Only, Read Write.", + "type": "string" + }, + "diskName": { + "description": "The Name of the data disk in the blob storage", + "type": "string" + }, + "diskURI": { + "description": "The URI the data disk in the blob storage", + "type": "string" + }, + "fsType": { + "description": "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": "Expected values 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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + } + }, + "required": [ + "diskName", + "diskURI" + ], + "type": "object" + }, + "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "properties": { + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretName": { + "description": "the name of secret that contains Azure Storage Account Name and Key", + "type": "string" + }, + "secretNamespace": { + "description": "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", + "type": "string" + }, + "shareName": { + "description": "Share Name", + "type": "string" + } + }, + "required": [ + "secretName", + "shareName" + ], + "type": "object" + }, + "io.k8s.api.core.v1.AzureFileVolumeSource": { + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "properties": { + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretName": { + "description": "the name of secret that contains Azure Storage Account Name and Key", + "type": "string" + }, + "shareName": { + "description": "Share Name", + "type": "string" + } + }, + "required": [ + "secretName", + "shareName" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Binding": { + "description": "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "target": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "The target object that you want to bind to the standard object." + } + }, + "required": [ + "target" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Binding", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.CSIPersistentVolumeSource": { + "description": "Represents storage that is managed by an external CSI volume driver (Beta feature)", + "properties": { + "controllerExpandSecretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "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 is an alpha field and requires enabling ExpandCSIVolumes feature gate. 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." + }, + "controllerPublishSecretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "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." + }, + "driver": { + "description": "Driver is the name of the driver to use for this volume. Required.", + "type": "string" + }, + "fsType": { + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".", + "type": "string" + }, + "nodePublishSecretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "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." + }, + "nodeStageSecretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "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." + }, + "readOnly": { + "description": "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", + "type": "boolean" + }, + "volumeAttributes": { + "additionalProperties": { + "type": "string" + }, + "description": "Attributes of the volume to publish.", + "type": "object" + }, + "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" + } + }, + "required": [ + "driver", + "volumeHandle" + ], + "type": "object" + }, + "io.k8s.api.core.v1.CSIVolumeSource": { + "description": "Represents a source location of a volume to mount, managed by an external CSI 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": "Filesystem type 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": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "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." + }, + "readOnly": { + "description": "Specifies a read-only configuration for the volume. Defaults to false (read/write).", + "type": "boolean" + }, + "volumeAttributes": { + "additionalProperties": { + "type": "string" + }, + "description": "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", + "type": "object" + } + }, + "required": [ + "driver" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Capabilities": { + "description": "Adds and removes POSIX capabilities from running containers.", + "properties": { + "add": { + "description": "Added capabilities", + "items": { + "type": "string" + }, + "type": "array" + }, + "drop": { + "description": "Removed capabilities", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.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.", + "properties": { + "monitors": { + "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "items": { + "type": "string" + }, + "type": "array" + }, + "path": { + "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", + "type": "string" + }, + "readOnly": { + "description": "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": "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": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "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" + }, + "user": { + "description": "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" + } + }, + "required": [ + "monitors" + ], + "type": "object" + }, + "io.k8s.api.core.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.", + "properties": { + "monitors": { + "description": "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "items": { + "type": "string" + }, + "type": "array" + }, + "path": { + "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", + "type": "string" + }, + "readOnly": { + "description": "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": "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": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "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" + }, + "user": { + "description": "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" + } + }, + "required": [ + "monitors" + ], + "type": "object" + }, + "io.k8s.api.core.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.", + "properties": { + "fsType": { + "description": "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": "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": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." + }, + "volumeID": { + "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "string" + } + }, + "required": [ + "volumeID" + ], + "type": "object" + }, + "io.k8s.api.core.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.", + "properties": { + "fsType": { + "description": "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": "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": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "Optional: points to a secret object containing parameters used to connect to OpenStack." + }, + "volumeID": { + "description": "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "string" + } + }, + "required": [ + "volumeID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ClientIPConfig": { + "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", + "properties": { + "timeoutSeconds": { + "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ComponentCondition": { + "description": "Information about the condition of a component.", + "properties": { + "error": { + "description": "Condition error code for a component. For example, a health check error code.", + "type": "string" + }, + "message": { + "description": "Message about the condition for a component. For example, information about a health check.", + "type": "string" + }, + "status": { + "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".", + "type": "string" + }, + "type": { + "description": "Type of condition for a component. Valid value: \"Healthy\"", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ComponentStatus": { + "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+", + "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" + }, + "conditions": { + "description": "List of component conditions observed", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ComponentStatus", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ComponentStatusList": { + "description": "Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+", + "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" + }, + "items": { + "description": "List of ComponentStatus objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ComponentStatusList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ConfigMap": { + "description": "ConfigMap holds configuration data for pods to consume.", + "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" + }, + "binaryData": { + "additionalProperties": { + "format": "byte", + "type": "string" + }, + "description": "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.", + "type": "object" + }, + "data": { + "additionalProperties": { + "type": "string" + }, + "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.", + "type": "object" + }, + "immutable": { + "description": "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is a beta field enabled by ImmutableEphemeralVolumes feature gate.", + "type": "boolean" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ConfigMapEnvSource": { + "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", + "properties": { + "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 must be defined", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ConfigMapKeySelector": { + "description": "Selects a key from a ConfigMap.", + "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" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ConfigMapList": { + "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", + "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" + }, + "items": { + "description": "Items is the list of ConfigMaps.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ConfigMapList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ConfigMapNodeConfigSource": { + "description": "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.", + "properties": { + "kubeletConfigKey": { + "description": "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.", + "type": "string" + }, + "name": { + "description": "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.", + "type": "string" + }, + "resourceVersion": { + "description": "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", + "type": "string" + }, + "uid": { + "description": "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", + "type": "string" + } + }, + "required": [ + "namespace", + "name", + "kubeletConfigKey" + ], + "type": "object" + }, + "io.k8s.api.core.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": "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": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + }, + "type": "array" + }, + "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 keys must be defined", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.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": "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.", + "format": "int32", + "type": "integer" + }, + "items": { + "description": "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": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + }, + "type": "array" + }, + "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 keys must be defined", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Container": { + "description": "A single application container that you want to run within a pod.", + "properties": { + "args": { + "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "items": { + "type": "string" + }, + "type": "array" + }, + "command": { + "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "items": { + "type": "string" + }, + "type": "array" + }, + "env": { + "description": "List of environment variables to set in the container. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "envFrom": { + "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" + }, + "type": "array" + }, + "image": { + "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", + "type": "string" + }, + "imagePullPolicy": { + "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", + "type": "string" + }, + "lifecycle": { + "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", + "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." + }, + "livenessProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + }, + "name": { + "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", + "type": "string" + }, + "ports": { + "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "containerPort", + "protocol" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "containerPort", + "x-kubernetes-patch-strategy": "merge" + }, + "readinessProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + }, + "resources": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", + "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" + }, + "securityContext": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", + "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" + }, + "startupProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + }, + "stdin": { + "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", + "type": "boolean" + }, + "stdinOnce": { + "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", + "type": "boolean" + }, + "terminationMessagePath": { + "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", + "type": "string" + }, + "terminationMessagePolicy": { + "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", + "type": "string" + }, + "tty": { + "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", + "type": "boolean" + }, + "volumeDevices": { + "description": "volumeDevices is the list of block devices to be used by the container.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "devicePath", + "x-kubernetes-patch-strategy": "merge" + }, + "volumeMounts": { + "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "mountPath", + "x-kubernetes-patch-strategy": "merge" + }, + "workingDir": { + "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ContainerImage": { + "description": "Describe a container image", + "properties": { + "names": { + "description": "Names by which this image is known. e.g. [\"k8s.gcr.io/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]", + "items": { + "type": "string" + }, + "type": "array" + }, + "sizeBytes": { + "description": "The size of the image in bytes.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "names" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ContainerPort": { + "description": "ContainerPort represents a network port in a single container.", + "properties": { + "containerPort": { + "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536.", + "format": "int32", + "type": "integer" + }, + "hostIP": { + "description": "What host IP to bind the external port to.", + "type": "string" + }, + "hostPort": { + "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", + "type": "string" + }, + "protocol": { + "description": "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".", + "type": "string" + } + }, + "required": [ + "containerPort" + ], + "type": "object" + }, + "io.k8s.api.core.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": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning", + "description": "Details about a running container" + }, + "terminated": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated", + "description": "Details about a terminated container" + }, + "waiting": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting", + "description": "Details about a waiting container" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ContainerStateRunning": { + "description": "ContainerStateRunning is a running state of a container.", + "properties": { + "startedAt": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Time at which the container was last (re-)started" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ContainerStateTerminated": { + "description": "ContainerStateTerminated is a terminated state of a container.", + "properties": { + "containerID": { + "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'", + "type": "string" + }, + "exitCode": { + "description": "Exit status from the last termination of the container", + "format": "int32", + "type": "integer" + }, + "finishedAt": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Time at which the container last terminated" + }, + "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", + "format": "int32", + "type": "integer" + }, + "startedAt": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Time at which previous execution of the container started" + } + }, + "required": [ + "exitCode" + ], + "type": "object" + }, + "io.k8s.api.core.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" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ContainerStatus": { + "description": "ContainerStatus contains details for the current status of this container.", + "properties": { + "containerID": { + "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'.", + "type": "string" + }, + "image": { + "description": "The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images", + "type": "string" + }, + "imageID": { + "description": "ImageID of the container's image.", + "type": "string" + }, + "lastState": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", + "description": "Details about the container's last termination condition." + }, + "name": { + "description": "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.", + "type": "string" + }, + "ready": { + "description": "Specifies whether the container has passed its readiness probe.", + "type": "boolean" + }, + "restartCount": { + "description": "The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.", + "format": "int32", + "type": "integer" + }, + "started": { + "description": "Specifies whether the container has 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. Is always true when no startupProbe is defined.", + "type": "boolean" + }, + "state": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", + "description": "Details about the container's current condition." + } + }, + "required": [ + "name", + "ready", + "restartCount", + "image", + "imageID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.DaemonEndpoint": { + "description": "DaemonEndpoint contains information about a single Daemon endpoint.", + "properties": { + "Port": { + "description": "Port number of the given endpoint.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "io.k8s.api.core.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", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.DownwardAPIVolumeFile": { + "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", + "properties": { + "fieldRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", + "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." + }, + "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.", + "format": "int32", + "type": "integer" + }, + "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": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", + "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "io.k8s.api.core.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.", + "format": "int32", + "type": "integer" + }, + "items": { + "description": "Items is a list of downward API volume file", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.EmptyDirVolumeSource": { + "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", + "properties": { + "medium": { + "description": "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": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "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: http://kubernetes.io/docs/user-guide/volumes#emptydir" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.EndpointAddress": { + "description": "EndpointAddress is a tuple that describes single IP address.", + "properties": { + "hostname": { + "description": "The Hostname of this endpoint", + "type": "string" + }, + "ip": { + "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.", + "type": "string" + }, + "nodeName": { + "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.", + "type": "string" + }, + "targetRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "Reference to object providing the endpoint." + } + }, + "required": [ + "ip" + ], + "type": "object" + }, + "io.k8s.api.core.v1.EndpointPort": { + "description": "EndpointPort is a tuple that describes a single port.", + "properties": { + "appProtocol": { + "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. This is a beta field that is guarded by the ServiceAppProtocol feature gate and enabled by default.", + "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.", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", + "type": "string" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "io.k8s.api.core.v1.EndpointSubset": { + "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309 ]", + "properties": { + "addresses": { + "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" + }, + "type": "array" + }, + "notReadyAddresses": { + "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" + }, + "type": "array" + }, + "ports": { + "description": "Port numbers available on the related IP addresses.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Endpoints": { + "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "subsets": { + "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" + }, + "type": "array" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EndpointsList": { + "description": "EndpointsList is a list of endpoints.", + "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" + }, + "items": { + "description": "List of endpoints.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "EndpointsList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EnvFromSource": { + "description": "EnvFromSource represents the source of a set of ConfigMaps", + "properties": { + "configMapRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource", + "description": "The ConfigMap to select from" + }, + "prefix": { + "description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", + "type": "string" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource", + "description": "The Secret to select from" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.EnvVar": { + "description": "EnvVar represents an environment variable present in a Container.", + "properties": { + "name": { + "description": "Name of the environment variable. Must be a C_IDENTIFIER.", + "type": "string" + }, + "value": { + "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", + "type": "string" + }, + "valueFrom": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource", + "description": "Source for the environment variable's value. Cannot be used if value is not empty." + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.EnvVarSource": { + "description": "EnvVarSource represents a source for the value of an EnvVar.", + "properties": { + "configMapKeyRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector", + "description": "Selects a key of a ConfigMap." + }, + "fieldRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", + "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." + }, + "resourceFieldRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", + "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." + }, + "secretKeyRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector", + "description": "Selects a key of a secret in the pod's namespace" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.EphemeralContainer": { + "description": "An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag.", + "properties": { + "args": { + "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "items": { + "type": "string" + }, + "type": "array" + }, + "command": { + "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "items": { + "type": "string" + }, + "type": "array" + }, + "env": { + "description": "List of environment variables to set in the container. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "envFrom": { + "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" + }, + "type": "array" + }, + "image": { + "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images", + "type": "string" + }, + "imagePullPolicy": { + "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", + "type": "string" + }, + "lifecycle": { + "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", + "description": "Lifecycle is not allowed for ephemeral containers." + }, + "livenessProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "Probes are not allowed for ephemeral containers." + }, + "name": { + "description": "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.", + "type": "string" + }, + "ports": { + "description": "Ports are not allowed for ephemeral containers.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" + }, + "type": "array" + }, + "readinessProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "Probes are not allowed for ephemeral containers." + }, + "resources": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", + "description": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." + }, + "securityContext": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", + "description": "SecurityContext is not allowed for ephemeral containers." + }, + "startupProbe": { + "$ref": "#/definitions/io.k8s.api.core.v1.Probe", + "description": "Probes are not allowed for ephemeral containers." + }, + "stdin": { + "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", + "type": "boolean" + }, + "stdinOnce": { + "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", + "type": "boolean" + }, + "targetContainerName": { + "description": "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container is run in whatever namespaces are shared for the pod. Note that the container runtime must support this feature.", + "type": "string" + }, + "terminationMessagePath": { + "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", + "type": "string" + }, + "terminationMessagePolicy": { + "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", + "type": "string" + }, + "tty": { + "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", + "type": "boolean" + }, + "volumeDevices": { + "description": "volumeDevices is the list of block devices to be used by the container.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "devicePath", + "x-kubernetes-patch-strategy": "merge" + }, + "volumeMounts": { + "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "mountPath", + "x-kubernetes-patch-strategy": "merge" + }, + "workingDir": { + "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.EphemeralVolumeSource": { + "description": "Represents an ephemeral volume that is handled by a normal storage driver.", + "properties": { + "readOnly": { + "description": "Specifies a read-only configuration for the volume. Defaults to false (read/write).", + "type": "boolean" + }, + "volumeClaimTemplate": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimTemplate", + "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." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Event": { + "description": "Event is a report of an event somewhere in the cluster. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.", + "properties": { + "action": { + "description": "What action was taken/failed regarding to the Regarding object.", + "type": "string" + }, + "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" + }, + "count": { + "description": "The number of times this event has occurred.", + "format": "int32", + "type": "integer" + }, + "eventTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "Time when this Event was first observed." + }, + "firstTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)" + }, + "involvedObject": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "The object that this event is about." + }, + "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" + }, + "lastTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "The time at which the most recent occurrence of this event was recorded." + }, + "message": { + "description": "A human-readable description of the status of this operation.", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "reason": { + "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", + "type": "string" + }, + "related": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "Optional secondary object for more complex actions." + }, + "reportingComponent": { + "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", + "type": "string" + }, + "reportingInstance": { + "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", + "type": "string" + }, + "series": { + "$ref": "#/definitions/io.k8s.api.core.v1.EventSeries", + "description": "Data about the Event series this event represents or nil if it's a singleton Event." + }, + "source": { + "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", + "description": "The component reporting this event. Should be a short machine understandable string." + }, + "type": { + "description": "Type of this event (Normal, Warning), new types could be added in the future", + "type": "string" + } + }, + "required": [ + "metadata", + "involvedObject" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Event", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EventList": { + "description": "EventList is a list of events.", + "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" + }, + "items": { + "description": "List of events", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "EventList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EventSeries": { + "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", + "properties": { + "count": { + "description": "Number of occurrences in this series up to the last heartbeat time", + "format": "int32", + "type": "integer" + }, + "lastObservedTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "Time of the last occurrence observed" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.EventSource": { + "description": "EventSource contains information for an event.", + "properties": { + "component": { + "description": "Component from which the event is generated.", + "type": "string" + }, + "host": { + "description": "Node name on which the event is generated.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.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.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.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": "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": "Optional: FC target lun number", + "format": "int32", + "type": "integer" + }, + "readOnly": { + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "targetWWNs": { + "description": "Optional: FC target worldwide names (WWNs)", + "items": { + "type": "string" + }, + "type": "array" + }, + "wwids": { + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.FlexPersistentVolumeSource": { + "description": "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.", + "properties": { + "driver": { + "description": "Driver is the name of the driver to use for this volume.", + "type": "string" + }, + "fsType": { + "description": "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": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional: Extra command options if any.", + "type": "object" + }, + "readOnly": { + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "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." + } + }, + "required": [ + "driver" + ], + "type": "object" + }, + "io.k8s.api.core.v1.FlexVolumeSource": { + "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", + "properties": { + "driver": { + "description": "Driver is the name of the driver to use for this volume.", + "type": "string" + }, + "fsType": { + "description": "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": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional: Extra command options if any.", + "type": "object" + }, + "readOnly": { + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "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." + } + }, + "required": [ + "driver" + ], + "type": "object" + }, + "io.k8s.api.core.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": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated", + "type": "string" + }, + "datasetUUID": { + "description": "UUID of the dataset. This is unique identifier of a Flocker dataset", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.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.", + "properties": { + "fsType": { + "description": "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": "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", + "format": "int32", + "type": "integer" + }, + "pdName": { + "description": "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" + } + }, + "required": [ + "pdName" + ], + "type": "object" + }, + "io.k8s.api.core.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.", + "properties": { + "directory": { + "description": "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 URL", + "type": "string" + }, + "revision": { + "description": "Commit hash for the specified revision.", + "type": "string" + } + }, + "required": [ + "repository" + ], + "type": "object" + }, + "io.k8s.api.core.v1.GlusterfsPersistentVolumeSource": { + "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", + "properties": { + "endpoints": { + "description": "EndpointsName 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" + } + }, + "required": [ + "endpoints", + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.GlusterfsVolumeSource": { + "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", + "properties": { + "endpoints": { + "description": "EndpointsName 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" + } + }, + "required": [ + "endpoints", + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.HTTPGetAction": { + "description": "HTTPGetAction describes an action based on HTTP Get requests.", + "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.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" + }, + "type": "array" + }, + "path": { + "description": "Path to access on the HTTP server.", + "type": "string" + }, + "port": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "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." + }, + "scheme": { + "description": "Scheme to use for connecting to the host. Defaults to HTTP.", + "type": "string" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "io.k8s.api.core.v1.HTTPHeader": { + "description": "HTTPHeader describes a custom header to be used in HTTP probes", + "properties": { + "name": { + "description": "The header field name", + "type": "string" + }, + "value": { + "description": "The header field value", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Handler": { + "description": "Handler defines a specific action that should be taken", + "properties": { + "exec": { + "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", + "description": "One and only one of the following should be specified. Exec specifies the action to take." + }, + "httpGet": { + "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", + "description": "HTTPGet specifies the http request to perform." + }, + "tcpSocket": { + "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", + "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.HostAlias": { + "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", + "properties": { + "hostnames": { + "description": "Hostnames for the above IP address.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ip": { + "description": "IP address of the host file entry.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.HostPathVolumeSource": { + "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", + "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" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "io.k8s.api.core.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.", + "properties": { + "chapAuthDiscovery": { + "description": "whether support iSCSI Discovery CHAP authentication", + "type": "boolean" + }, + "chapAuthSession": { + "description": "whether support iSCSI Session CHAP authentication", + "type": "boolean" + }, + "fsType": { + "description": "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": "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": "Target iSCSI Qualified Name.", + "type": "string" + }, + "iscsiInterface": { + "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", + "type": "string" + }, + "lun": { + "description": "iSCSI Target Lun number.", + "format": "int32", + "type": "integer" + }, + "portals": { + "description": "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).", + "items": { + "type": "string" + }, + "type": "array" + }, + "readOnly": { + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "CHAP Secret for iSCSI target and initiator authentication" + }, + "targetPortal": { + "description": "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" + } + }, + "required": [ + "targetPortal", + "iqn", + "lun" + ], + "type": "object" + }, + "io.k8s.api.core.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.", + "properties": { + "chapAuthDiscovery": { + "description": "whether support iSCSI Discovery CHAP authentication", + "type": "boolean" + }, + "chapAuthSession": { + "description": "whether support iSCSI Session CHAP authentication", + "type": "boolean" + }, + "fsType": { + "description": "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": "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": "Target iSCSI Qualified Name.", + "type": "string" + }, + "iscsiInterface": { + "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", + "type": "string" + }, + "lun": { + "description": "iSCSI Target Lun number.", + "format": "int32", + "type": "integer" + }, + "portals": { + "description": "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).", + "items": { + "type": "string" + }, + "type": "array" + }, + "readOnly": { + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "CHAP Secret for iSCSI target and initiator authentication" + }, + "targetPortal": { + "description": "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" + } + }, + "required": [ + "targetPortal", + "iqn", + "lun" + ], + "type": "object" + }, + "io.k8s.api.core.v1.KeyToPath": { + "description": "Maps a string key to a path within a volume.", + "properties": { + "key": { + "description": "The key to project.", + "type": "string" + }, + "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.", + "format": "int32", + "type": "integer" + }, + "path": { + "description": "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" + } + }, + "required": [ + "key", + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Lifecycle": { + "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", + "properties": { + "postStart": { + "$ref": "#/definitions/io.k8s.api.core.v1.Handler", + "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" + }, + "preStop": { + "$ref": "#/definitions/io.k8s.api.core.v1.Handler", + "description": "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.LimitRange": { + "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec", + "description": "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.LimitRangeItem": { + "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", + "properties": { + "default": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Default resource requirement limit value by resource name if resource limit is omitted.", + "type": "object" + }, + "defaultRequest": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.", + "type": "object" + }, + "max": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Max usage constraints on this kind by resource name.", + "type": "object" + }, + "maxLimitRequestRatio": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.", + "type": "object" + }, + "min": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Min usage constraints on this kind by resource name.", + "type": "object" + }, + "type": { + "description": "Type of resource that this limit applies to.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.core.v1.LimitRangeList": { + "description": "LimitRangeList is a list of LimitRange items.", + "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" + }, + "items": { + "description": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "LimitRangeList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.LimitRangeSpec": { + "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", + "properties": { + "limits": { + "description": "Limits is the list of LimitRangeItem objects that are enforced.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" + }, + "type": "array" + } + }, + "required": [ + "limits" + ], + "type": "object" + }, + "io.k8s.api.core.v1.LoadBalancerIngress": { + "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", + "properties": { + "hostname": { + "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", + "type": "string" + }, + "ip": { + "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", + "type": "string" + }, + "ports": { + "description": "Ports is a list of records of service ports If used, every port defined in the service should have an entry in it", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PortStatus" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.LoadBalancerStatus": { + "description": "LoadBalancerStatus represents the status of a load-balancer.", + "properties": { + "ingress": { + "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.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" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.LocalVolumeSource": { + "description": "Local represents directly-attached storage with node affinity (Beta feature)", + "properties": { + "fsType": { + "description": "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 fileystem if unspecified.", + "type": "string" + }, + "path": { + "description": "The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).", + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.NFSVolumeSource": { + "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + "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" + } + }, + "required": [ + "server", + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Namespace": { + "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec", + "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus", + "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Namespace", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NamespaceCondition": { + "description": "NamespaceCondition contains details about state of namespace.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of namespace controller condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.NamespaceList": { + "description": "NamespaceList is a list of Namespaces.", + "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" + }, + "items": { + "description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "NamespaceList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NamespaceSpec": { + "description": "NamespaceSpec describes the attributes on a Namespace.", + "properties": { + "finalizers": { + "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NamespaceStatus": { + "description": "NamespaceStatus is information about the current status of a Namespace.", + "properties": { + "conditions": { + "description": "Represents the latest available observations of a namespace's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceCondition" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "phase": { + "description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Node": { + "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec", + "description": "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus", + "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Node", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NodeAddress": { + "description": "NodeAddress contains information for the node's address.", + "properties": { + "address": { + "description": "The node address.", + "type": "string" + }, + "type": { + "description": "Node address type, one of Hostname, ExternalIP or InternalIP.", + "type": "string" + } + }, + "required": [ + "type", + "address" + ], + "type": "object" + }, + "io.k8s.api.core.v1.NodeAffinity": { + "description": "Node affinity is a group of node affinity scheduling rules.", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" + }, + "type": "array" + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeCondition": { + "description": "NodeCondition contains condition information for a node.", + "properties": { + "lastHeartbeatTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time we got an update on a given condition." + }, + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transit from one status to another." + }, + "message": { + "description": "Human readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "(brief) reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of node condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.NodeConfigSource": { + "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", + "properties": { + "configMap": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource", + "description": "ConfigMap is a reference to a Node's ConfigMap" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeConfigStatus": { + "description": "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.", + "properties": { + "active": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", + "description": "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error." + }, + "assigned": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", + "description": "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned." + }, + "error": { + "description": "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.", + "type": "string" + }, + "lastKnownGood": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", + "description": "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeDaemonEndpoints": { + "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", + "properties": { + "kubeletEndpoint": { + "$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint", + "description": "Endpoint on which Kubelet is listening." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeList": { + "description": "NodeList is the whole list of all Nodes which have been registered with master.", + "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" + }, + "items": { + "description": "List of nodes", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "NodeList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NodeSelector": { + "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", + "properties": { + "nodeSelectorTerms": { + "description": "Required. A list of node selector terms. The terms are ORed.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" + }, + "type": "array" + } + }, + "required": [ + "nodeSelectorTerms" + ], + "type": "object" + }, + "io.k8s.api.core.v1.NodeSelectorRequirement": { + "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "properties": { + "key": { + "description": "The label key that the selector applies to.", + "type": "string" + }, + "operator": { + "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", + "type": "string" + }, + "values": { + "description": "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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "key", + "operator" + ], + "type": "object" + }, + "io.k8s.api.core.v1.NodeSelectorTerm": { + "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.", + "properties": { + "matchExpressions": { + "description": "A list of node selector requirements by node's labels.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" + }, + "type": "array" + }, + "matchFields": { + "description": "A list of node selector requirements by node's fields.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeSpec": { + "description": "NodeSpec describes the attributes that a node is created with.", + "properties": { + "configSource": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", + "description": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field" + }, + "externalID": { + "description": "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966", + "type": "string" + }, + "podCIDR": { + "description": "PodCIDR represents the pod IP range assigned to the node.", + "type": "string" + }, + "podCIDRs": { + "description": "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-patch-strategy": "merge" + }, + "providerID": { + "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e", + "type": "string" + }, + "taints": { + "description": "If specified, the node's taints.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Taint" + }, + "type": "array" + }, + "unschedulable": { + "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeStatus": { + "description": "NodeStatus is information about the current status of a node.", + "properties": { + "addresses": { + "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See http://pr.k8s.io/79391 for an example.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "allocatable": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.", + "type": "object" + }, + "capacity": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", + "type": "object" + }, + "conditions": { + "description": "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "config": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigStatus", + "description": "Status of the config assigned to the node via the dynamic Kubelet config feature." + }, + "daemonEndpoints": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints", + "description": "Endpoints of daemons running on the Node." + }, + "images": { + "description": "List of container images on this node", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" + }, + "type": "array" + }, + "nodeInfo": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo", + "description": "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info" + }, + "phase": { + "description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", + "type": "string" + }, + "volumesAttached": { + "description": "List of volumes that are attached to the node.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume" + }, + "type": "array" + }, + "volumesInUse": { + "description": "List of attachable volumes in use (mounted) by the node.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeSystemInfo": { + "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", + "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. docker://1.5.0).", + "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" + } + }, + "required": [ + "machineID", + "systemUUID", + "bootID", + "kernelVersion", + "osImage", + "containerRuntimeVersion", + "kubeletVersion", + "kubeProxyVersion", + "operatingSystem", + "architecture" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ObjectFieldSelector": { + "description": "ObjectFieldSelector selects an APIVersioned field of an object.", + "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" + } + }, + "required": [ + "fieldPath" + ], + "type": "object" + }, + "io.k8s.api.core.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" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolume": { + "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", + "description": "Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus", + "description": "Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PersistentVolumeClaim": { + "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", + "description": "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus", + "description": "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { + "description": "PersistentVolumeClaimCondition contails details about state of pvc", + "properties": { + "lastProbeTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time we probed the condition." + }, + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "message": { + "description": "Human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized.", + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolumeClaimList": { + "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", + "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" + }, + "items": { + "description": "A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolumeClaimList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.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", + "items": { + "type": "string" + }, + "type": "array" + }, + "dataSource": { + "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", + "description": "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) * An existing custom resource that implements data population (Alpha) In order to use custom resource types that implement data population, the AnyVolumeDataSource feature gate must be enabled. 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." + }, + "resources": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", + "description": "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "A label query over volumes to consider for binding." + }, + "storageClassName": { + "description": "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", + "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" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { + "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", + "properties": { + "accessModes": { + "description": "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", + "items": { + "type": "string" + }, + "type": "array" + }, + "capacity": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Represents the actual resources of the underlying volume.", + "type": "object" + }, + "conditions": { + "description": "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "phase": { + "description": "Phase represents the current phase of PersistentVolumeClaim.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": { + "description": "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.", + "properties": { + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "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." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", + "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." + } + }, + "required": [ + "spec" + ], + "type": "object" + }, + "io.k8s.api.core.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).", + "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": "Will force the ReadOnly setting in VolumeMounts. Default false.", + "type": "boolean" + } + }, + "required": [ + "claimName" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolumeList": { + "description": "PersistentVolumeList is a list of PersistentVolume items.", + "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" + }, + "items": { + "description": "List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolumeList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PersistentVolumeSpec": { + "description": "PersistentVolumeSpec is the specification of a persistent volume.", + "properties": { + "accessModes": { + "description": "AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", + "items": { + "type": "string" + }, + "type": "array" + }, + "awsElasticBlockStore": { + "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", + "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" + }, + "azureDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", + "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + }, + "azureFile": { + "$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource", + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + }, + "capacity": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", + "type": "object" + }, + "cephfs": { + "$ref": "#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource", + "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + }, + "cinder": { + "$ref": "#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource", + "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + }, + "claimRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding" + }, + "csi": { + "$ref": "#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource", + "description": "CSI represents storage that is handled by an external CSI driver (Beta feature)." + }, + "fc": { + "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", + "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + }, + "flexVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource", + "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + }, + "flocker": { + "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", + "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" + }, + "gcePersistentDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", + "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" + }, + "glusterfs": { + "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource", + "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" + }, + "hostPath": { + "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", + "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" + }, + "iscsi": { + "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource", + "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." + }, + "local": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalVolumeSource", + "description": "Local represents directly-attached storage with node affinity" + }, + "mountOptions": { + "description": "A list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", + "items": { + "type": "string" + }, + "type": "array" + }, + "nfs": { + "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", + "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + }, + "nodeAffinity": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity", + "description": "NodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume." + }, + "persistentVolumeReclaimPolicy": { + "description": "What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", + "type": "string" + }, + "photonPersistentDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", + "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + }, + "portworxVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", + "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + }, + "quobyte": { + "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", + "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + }, + "rbd": { + "$ref": "#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource", + "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" + }, + "scaleIO": { + "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource", + "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + }, + "storageClassName": { + "description": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", + "type": "string" + }, + "storageos": { + "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource", + "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" + }, + "volumeMode": { + "description": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.", + "type": "string" + }, + "vsphereVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", + "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PersistentVolumeStatus": { + "description": "PersistentVolumeStatus is the current status of a persistent volume.", + "properties": { + "message": { + "description": "A human-readable message indicating details about why the volume is in this state.", + "type": "string" + }, + "phase": { + "description": "Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase", + "type": "string" + }, + "reason": { + "description": "Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { + "description": "Represents a Photon Controller persistent disk resource.", + "properties": { + "fsType": { + "description": "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": "ID that identifies Photon Controller persistent disk", + "type": "string" + } + }, + "required": [ + "pdID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Pod": { + "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", + "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodStatus", + "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Pod", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodAffinity": { + "description": "Pod affinity is a group of inter pod affinity scheduling rules.", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" + }, + "type": "array" + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodAffinityTerm": { + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", + "properties": { + "labelSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "A label query over a set of resources, in this case pods." + }, + "namespaces": { + "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "topologyKey": { + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", + "type": "string" + } + }, + "required": [ + "topologyKey" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodAntiAffinity": { + "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" + }, + "type": "array" + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodCondition": { + "description": "PodCondition contains details for the current condition of this pod.", + "properties": { + "lastProbeTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time we probed the condition." + }, + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "message": { + "description": "Human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "Unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", + "type": "string" + }, + "type": { + "description": "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodDNSConfig": { + "description": "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.", + "properties": { + "nameservers": { + "description": "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", + "items": { + "type": "string" + }, + "type": "array" + }, + "options": { + "description": "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfigOption" + }, + "type": "array" + }, + "searches": { + "description": "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodDNSConfigOption": { + "description": "PodDNSConfigOption defines DNS resolver options of a pod.", + "properties": { + "name": { + "description": "Required.", + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodIP": { + "description": "IP address information for entries in the (plural) PodIPs field. Each entry includes:\n IP: An IP address allocated to the pod. Routable at least within the cluster.", + "properties": { + "ip": { + "description": "ip is an IP address (IPv4 or IPv6) assigned to the pod", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodList": { + "description": "PodList is a list of Pods.", + "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" + }, + "items": { + "description": "List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PodList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodReadinessGate": { + "description": "PodReadinessGate contains the reference to a pod condition", + "properties": { + "conditionType": { + "description": "ConditionType refers to a condition in the pod's condition list with matching type.", + "type": "string" + } + }, + "required": [ + "conditionType" + ], + "type": "object" + }, + "io.k8s.api.core.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----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.", + "format": "int64", + "type": "integer" + }, + "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.", + "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.", + "format": "int64", + "type": "integer" + }, + "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.", + "format": "int64", + "type": "integer" + }, + "seLinuxOptions": { + "$ref": "#/definitions/io.k8s.api.core.v1.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." + }, + "seccompProfile": { + "$ref": "#/definitions/io.k8s.api.core.v1.SeccompProfile", + "description": "The seccomp options to use by the containers in this pod." + }, + "supplementalGroups": { + "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array" + }, + "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.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Sysctl" + }, + "type": "array" + }, + "windowsOptions": { + "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", + "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." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodSpec": { + "description": "PodSpec is a description of a pod.", + "properties": { + "activeDeadlineSeconds": { + "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", + "format": "int64", + "type": "integer" + }, + "affinity": { + "$ref": "#/definitions/io.k8s.api.core.v1.Affinity", + "description": "If specified, the pod's scheduling constraints" + }, + "automountServiceAccountToken": { + "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", + "type": "boolean" + }, + "containers": { + "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Container" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "dnsConfig": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig", + "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy." + }, + "dnsPolicy": { + "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", + "type": "string" + }, + "enableServiceLinks": { + "description": "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.", + "type": "boolean" + }, + "ephemeralContainers": { + "description": "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralContainer" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "hostAliases": { + "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "ip", + "x-kubernetes-patch-strategy": "merge" + }, + "hostIPC": { + "description": "Use the host's ipc namespace. Optional: Default to false.", + "type": "boolean" + }, + "hostNetwork": { + "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.", + "type": "boolean" + }, + "hostPID": { + "description": "Use the host's pid namespace. Optional: Default to false.", + "type": "boolean" + }, + "hostname": { + "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", + "type": "string" + }, + "imagePullSecrets": { + "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "initContainers": { + "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Container" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "nodeName": { + "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.", + "type": "string" + }, + "nodeSelector": { + "additionalProperties": { + "type": "string" + }, + "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", + "type": "object" + }, + "overhead": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.", + "type": "object" + }, + "preemptionPolicy": { + "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", + "type": "string" + }, + "priority": { + "description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", + "format": "int32", + "type": "integer" + }, + "priorityClassName": { + "description": "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", + "type": "string" + }, + "readinessGates": { + "description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodReadinessGate" + }, + "type": "array" + }, + "restartPolicy": { + "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", + "type": "string" + }, + "runtimeClassName": { + "description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.", + "type": "string" + }, + "schedulerName": { + "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", + "type": "string" + }, + "securityContext": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext", + "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." + }, + "serviceAccount": { + "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", + "type": "string" + }, + "serviceAccountName": { + "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", + "type": "string" + }, + "setHostnameAsFQDN": { + "description": "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.", + "type": "boolean" + }, + "shareProcessNamespace": { + "description": "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.", + "type": "boolean" + }, + "subdomain": { + "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all.", + "type": "string" + }, + "terminationGracePeriodSeconds": { + "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. 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. Defaults to 30 seconds.", + "format": "int64", + "type": "integer" + }, + "tolerations": { + "description": "If specified, the pod's tolerations.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" + }, + "type": "array" + }, + "topologySpreadConstraints": { + "description": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "topologyKey", + "whenUnsatisfiable" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "topologyKey", + "x-kubernetes-patch-strategy": "merge" + }, + "volumes": { + "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Volume" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge,retainKeys" + } + }, + "required": [ + "containers" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PodStatus": { + "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.", + "properties": { + "conditions": { + "description": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodCondition" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "containerStatuses": { + "description": "The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" + }, + "type": "array" + }, + "ephemeralContainerStatuses": { + "description": "Status for any ephemeral containers that have run in this pod. This field is alpha-level and is only populated by servers that enable the EphemeralContainers feature.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" + }, + "type": "array" + }, + "hostIP": { + "description": "IP address of the host to which the pod is assigned. Empty if not yet scheduled.", + "type": "string" + }, + "initContainerStatuses": { + "description": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" + }, + "type": "array" + }, + "message": { + "description": "A human readable message indicating details about why the pod is in this condition.", + "type": "string" + }, + "nominatedNodeName": { + "description": "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.", + "type": "string" + }, + "phase": { + "description": "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", + "type": "string" + }, + "podIP": { + "description": "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", + "type": "string" + }, + "podIPs": { + "description": "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodIP" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "ip", + "x-kubernetes-patch-strategy": "merge" + }, + "qosClass": { + "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md", + "type": "string" + }, + "reason": { + "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", + "type": "string" + }, + "startTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PodTemplate": { + "description": "PodTemplate describes a template for creating copies of a predefined pod.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodTemplateList": { + "description": "PodTemplateList is a list of PodTemplates.", + "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" + }, + "items": { + "description": "List of pod templates", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PodTemplateList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodTemplateSpec": { + "description": "PodTemplateSpec describes the data a pod should have when created from a template", + "properties": { + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", + "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.PortStatus": { + "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 service port of which status is recorded here", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "Protocol is the protocol of the service port of which status is recorded here The supported values are: \"TCP\", \"UDP\", \"SCTP\"", + "type": "string" + } + }, + "required": [ + "port", + "protocol" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PortworxVolumeSource": { + "description": "PortworxVolumeSource represents a Portworx volume resource.", + "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": "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" + } + }, + "required": [ + "volumeID" + ], + "type": "object" + }, + "io.k8s.api.core.v1.PreferredSchedulingTerm": { + "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", + "properties": { + "preference": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm", + "description": "A node selector term, associated with the corresponding weight." + }, + "weight": { + "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "weight", + "preference" + ], + "type": "object" + }, + "io.k8s.api.core.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": { + "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", + "description": "One and only one of the following should be specified. Exec specifies the action to take." + }, + "failureThreshold": { + "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "format": "int32", + "type": "integer" + }, + "httpGet": { + "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", + "description": "HTTPGet specifies the http request to perform." + }, + "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", + "format": "int32", + "type": "integer" + }, + "periodSeconds": { + "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", + "format": "int32", + "type": "integer" + }, + "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.", + "format": "int32", + "type": "integer" + }, + "tcpSocket": { + "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", + "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" + }, + "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", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ProjectedVolumeSource": { + "description": "Represents a projected volume source", + "properties": { + "defaultMode": { + "description": "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.", + "format": "int32", + "type": "integer" + }, + "sources": { + "description": "list of volume projections", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.QuobyteVolumeSource": { + "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", + "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" + } + }, + "required": [ + "registry", + "volume" + ], + "type": "object" + }, + "io.k8s.api.core.v1.RBDPersistentVolumeSource": { + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "properties": { + "fsType": { + "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "items": { + "type": "string" + }, + "type": "array" + }, + "pool": { + "description": "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": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "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" + }, + "user": { + "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + } + }, + "required": [ + "monitors", + "image" + ], + "type": "object" + }, + "io.k8s.api.core.v1.RBDVolumeSource": { + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "properties": { + "fsType": { + "description": "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": "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": "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "items": { + "type": "string" + }, + "type": "array" + }, + "pool": { + "description": "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": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "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" + }, + "user": { + "description": "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + } + }, + "required": [ + "monitors", + "image" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ReplicationController": { + "description": "ReplicationController represents the configuration of a replication controller.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec", + "description": "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus", + "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ReplicationControllerCondition": { + "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "The last time the condition transitioned from one status to another." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of replication controller condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ReplicationControllerList": { + "description": "ReplicationControllerList is a collection of replication controllers.", + "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" + }, + "items": { + "description": "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ReplicationControllerList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ReplicationControllerSpec": { + "description": "ReplicationControllerSpec is the specification of a replication controller.", + "properties": { + "minReadySeconds": { + "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", + "format": "int32", + "type": "integer" + }, + "selector": { + "additionalProperties": { + "type": "string" + }, + "description": "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", + "type": "object" + }, + "template": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", + "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ReplicationControllerStatus": { + "description": "ReplicationControllerStatus represents the current status of a replication controller.", + "properties": { + "availableReplicas": { + "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller.", + "format": "int32", + "type": "integer" + }, + "conditions": { + "description": "Represents the latest available observations of a replication controller's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "fullyLabeledReplicas": { + "description": "The number of pods that have labels matching the labels of the pod template of the replication controller.", + "format": "int32", + "type": "integer" + }, + "observedGeneration": { + "description": "ObservedGeneration reflects the generation of the most recently observed replication controller.", + "format": "int64", + "type": "integer" + }, + "readyReplicas": { + "description": "The number of ready replicas for this replication controller.", + "format": "int32", + "type": "integer" + }, + "replicas": { + "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "replicas" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ResourceFieldSelector": { + "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", + "properties": { + "containerName": { + "description": "Container name: required for volumes, optional for env vars", + "type": "string" + }, + "divisor": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "Specifies the output format of the exposed resources, defaults to \"1\"" + }, + "resource": { + "description": "Required: resource to select", + "type": "string" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ResourceQuota": { + "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec", + "description": "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus", + "description": "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ResourceQuotaList": { + "description": "ResourceQuotaList is a list of ResourceQuota items.", + "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" + }, + "items": { + "description": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ResourceQuotaList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ResourceQuotaSpec": { + "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", + "properties": { + "hard": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", + "type": "object" + }, + "scopeSelector": { + "$ref": "#/definitions/io.k8s.api.core.v1.ScopeSelector", + "description": "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched." + }, + "scopes": { + "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ResourceQuotaStatus": { + "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", + "properties": { + "hard": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", + "type": "object" + }, + "used": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Used is the current observed total usage of the resource in the namespace.", + "type": "object" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ResourceRequirements": { + "description": "ResourceRequirements describes the compute resource requirements.", + "properties": { + "limits": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + "type": "object" + }, + "requests": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + "type": "object" + } + }, + "type": "object" + }, + "io.k8s.api.core.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" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { + "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", + "properties": { + "fsType": { + "description": "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": "The host address of the ScaleIO API Gateway.", + "type": "string" + }, + "protectionDomain": { + "description": "The name of the ScaleIO Protection Domain for the configured storage.", + "type": "string" + }, + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", + "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + }, + "sslEnabled": { + "description": "Flag to enable/disable SSL communication with Gateway, default false", + "type": "boolean" + }, + "storageMode": { + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", + "type": "string" + }, + "storagePool": { + "description": "The ScaleIO Storage Pool associated with the protection domain.", + "type": "string" + }, + "system": { + "description": "The name of the storage system as configured in ScaleIO.", + "type": "string" + }, + "volumeName": { + "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", + "type": "string" + } + }, + "required": [ + "gateway", + "system", + "secretRef" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ScaleIOVolumeSource": { + "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", + "properties": { + "fsType": { + "description": "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": "The host address of the ScaleIO API Gateway.", + "type": "string" + }, + "protectionDomain": { + "description": "The name of the ScaleIO Protection Domain for the configured storage.", + "type": "string" + }, + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + }, + "sslEnabled": { + "description": "Flag to enable/disable SSL communication with Gateway, default false", + "type": "boolean" + }, + "storageMode": { + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", + "type": "string" + }, + "storagePool": { + "description": "The ScaleIO Storage Pool associated with the protection domain.", + "type": "string" + }, + "system": { + "description": "The name of the storage system as configured in ScaleIO.", + "type": "string" + }, + "volumeName": { + "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", + "type": "string" + } + }, + "required": [ + "gateway", + "system", + "secretRef" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ScopeSelector": { + "description": "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.", + "properties": { + "matchExpressions": { + "description": "A list of scope selector requirements by scope of the resources.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ScopedResourceSelectorRequirement": { + "description": "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.", + "properties": { + "operator": { + "description": "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.", + "type": "string" + }, + "scopeName": { + "description": "The name of the scope that the selector applies to.", + "type": "string" + }, + "values": { + "description": "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.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "scopeName", + "operator" + ], + "type": "object" + }, + "io.k8s.api.core.v1.SeccompProfile": { + "description": "SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.", + "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 only be set if type is \"Localhost\".", + "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" + } + }, + "required": [ + "type" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "type", + "fields-to-discriminateBy": { + "localhostProfile": "LocalhostProfile" + } + } + ] + }, + "io.k8s.api.core.v1.Secret": { + "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", + "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" + }, + "data": { + "additionalProperties": { + "format": "byte", + "type": "string" + }, + "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", + "type": "object" + }, + "immutable": { + "description": "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is a beta field enabled by ImmutableEphemeralVolumes feature gate.", + "type": "boolean" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "stringData": { + "additionalProperties": { + "type": "string" + }, + "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.", + "type": "object" + }, + "type": { + "description": "Used to facilitate programmatic handling of secret data.", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Secret", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.SecretEnvSource": { + "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", + "properties": { + "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 must be defined", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.SecretKeySelector": { + "description": "SecretKeySelector selects a key of a Secret.", + "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" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "io.k8s.api.core.v1.SecretList": { + "description": "SecretList is a list of Secret.", + "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" + }, + "items": { + "description": "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "SecretList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.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": "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": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + }, + "type": "array" + }, + "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" + } + }, + "type": "object" + }, + "io.k8s.api.core.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" + } + }, + "type": "object" + }, + "io.k8s.api.core.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": "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.", + "format": "int32", + "type": "integer" + }, + "items": { + "description": "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": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + }, + "type": "array" + }, + "optional": { + "description": "Specify whether the Secret or its keys must be defined", + "type": "boolean" + }, + "secretName": { + "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.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", + "type": "boolean" + }, + "capabilities": { + "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities", + "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." + }, + "privileged": { + "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", + "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.", + "type": "string" + }, + "readOnlyRootFilesystem": { + "description": "Whether this container has a read-only root filesystem. Default is false.", + "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.", + "format": "int64", + "type": "integer" + }, + "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.", + "format": "int64", + "type": "integer" + }, + "seLinuxOptions": { + "$ref": "#/definitions/io.k8s.api.core.v1.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." + }, + "seccompProfile": { + "$ref": "#/definitions/io.k8s.api.core.v1.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." + }, + "windowsOptions": { + "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", + "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." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Service": { + "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec", + "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus", + "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Service", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ServiceAccount": { + "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", + "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" + }, + "automountServiceAccountToken": { + "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.", + "type": "boolean" + }, + "imagePullSecrets": { + "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "secrets": { + "description": "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ServiceAccountList": { + "description": "ServiceAccountList is a list of ServiceAccount objects", + "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" + }, + "items": { + "description": "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ServiceAccountList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.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).", + "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.", + "format": "int64", + "type": "integer" + }, + "path": { + "description": "Path is the path relative to the mount point of the file to project the token into.", + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ServiceList": { + "description": "ServiceList holds a list of services.", + "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" + }, + "items": { + "description": "List of services", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ServiceList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ServicePort": { + "description": "ServicePort contains information on service's port.", + "properties": { + "appProtocol": { + "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. This is a beta field that is guarded by the ServiceAppProtocol feature gate and enabled by default.", + "type": "string" + }, + "name": { + "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.", + "type": "string" + }, + "nodePort": { + "description": "The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail. If not specified, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", + "format": "int32", + "type": "integer" + }, + "port": { + "description": "The port that will be exposed by this service.", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.", + "type": "string" + }, + "targetPort": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "io.k8s.api.core.v1.ServiceSpec": { + "description": "ServiceSpec describes the attributes that a user creates on a service.", + "properties": { + "allocateLoadBalancerNodePorts": { + "description": "allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. allocateLoadBalancerNodePorts may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type. This field is alpha-level and is only honored by servers that enable the ServiceLBNodePortControl feature.", + "type": "boolean" + }, + "clusterIP": { + "description": "clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + "type": "string" + }, + "clusterIPs": { + "description": "ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value.\n\nUnless the \"IPv6DualStack\" feature gate is enabled, this field is limited to one value, which must be the same as the clusterIP field. If the feature gate is enabled, this field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "externalIPs": { + "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", + "items": { + "type": "string" + }, + "type": "array" + }, + "externalName": { + "description": "externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be", + "type": "string" + }, + "externalTrafficPolicy": { + "description": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", + "type": "string" + }, + "healthCheckNodePort": { + "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type).", + "format": "int32", + "type": "integer" + }, + "ipFamilies": { + "description": "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service, and is gated by the \"IPv6DualStack\" feature gate. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ipFamilyPolicy": { + "description": "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service, and is gated by the \"IPv6DualStack\" feature gate. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.", + "type": "string" + }, + "loadBalancerIP": { + "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.", + "type": "string" + }, + "loadBalancerSourceRanges": { + "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/", + "items": { + "type": "string" + }, + "type": "array" + }, + "ports": { + "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "port", + "protocol" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "port", + "x-kubernetes-patch-strategy": "merge" + }, + "publishNotReadyAddresses": { + "description": "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.", + "type": "boolean" + }, + "selector": { + "additionalProperties": { + "type": "string" + }, + "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", + "type": "object" + }, + "sessionAffinity": { + "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + "type": "string" + }, + "sessionAffinityConfig": { + "$ref": "#/definitions/io.k8s.api.core.v1.SessionAffinityConfig", + "description": "sessionAffinityConfig contains the configurations of session affinity." + }, + "topologyKeys": { + "description": "topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value \"*\" may be used to mean \"any topology\". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied. This field is alpha-level and is only honored by servers that enable the ServiceTopology feature.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \"ExternalName\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.ServiceStatus": { + "description": "ServiceStatus represents the current status of a service.", + "properties": { + "conditions": { + "description": "Current service state", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "loadBalancer": { + "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", + "description": "LoadBalancer contains the current status of the load-balancer, if one is present." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.SessionAffinityConfig": { + "description": "SessionAffinityConfig represents the configurations of session affinity.", + "properties": { + "clientIP": { + "$ref": "#/definitions/io.k8s.api.core.v1.ClientIPConfig", + "description": "clientIP contains the configurations of Client IP based session affinity." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { + "description": "Represents a StorageOS persistent volume resource.", + "properties": { + "fsType": { + "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + }, + "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" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.StorageOSVolumeSource": { + "description": "Represents a StorageOS persistent volume resource.", + "properties": { + "fsType": { + "description": "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": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", + "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + }, + "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" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.Sysctl": { + "description": "Sysctl defines a kernel parameter to be set", + "properties": { + "name": { + "description": "Name of a property to set", + "type": "string" + }, + "value": { + "description": "Value of a property to set", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "io.k8s.api.core.v1.TCPSocketAction": { + "description": "TCPSocketAction describes an action based on opening a socket", + "properties": { + "host": { + "description": "Optional: Host name to connect to, defaults to the pod IP.", + "type": "string" + }, + "port": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "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." + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Taint": { + "description": "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", + "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": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints." + }, + "value": { + "description": "The taint value corresponding to the taint key.", + "type": "string" + } + }, + "required": [ + "key", + "effect" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Toleration": { + "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", + "properties": { + "effect": { + "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + "type": "string" + }, + "key": { + "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + "type": "string" + }, + "operator": { + "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + "type": "string" + }, + "tolerationSeconds": { + "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + "format": "int64", + "type": "integer" + }, + "value": { + "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.TopologySelectorLabelRequirement": { + "description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.", + "properties": { + "key": { + "description": "The label key that the selector applies to.", + "type": "string" + }, + "values": { + "description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "key", + "values" + ], + "type": "object" + }, + "io.k8s.api.core.v1.TopologySelectorTerm": { + "description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.", + "properties": { + "matchLabelExpressions": { + "description": "A list of topology selector requirements by labels.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.TopologySpreadConstraint": { + "description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology.", + "properties": { + "labelSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain." + }, + "maxSkew": { + "description": "MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", + "format": "int32", + "type": "integer" + }, + "topologyKey": { + "description": "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each \u003ckey, value\u003e as a \"bucket\", and try to put balanced number of pods into each bucket. It's a required field.", + "type": "string" + }, + "whenUnsatisfiable": { + "description": "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n but giving higher precedence to topologies that would help reduce the\n skew.\nA constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assigment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", + "type": "string" + } + }, + "required": [ + "maxSkew", + "topologyKey", + "whenUnsatisfiable" + ], + "type": "object" + }, + "io.k8s.api.core.v1.TypedLocalObjectReference": { + "description": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.", + "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" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.Volume": { + "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", + "properties": { + "awsElasticBlockStore": { + "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", + "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" + }, + "azureDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", + "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + }, + "azureFile": { + "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource", + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + }, + "cephfs": { + "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource", + "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + }, + "cinder": { + "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource", + "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" + }, + "configMap": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource", + "description": "ConfigMap represents a configMap that should populate this volume" + }, + "csi": { + "$ref": "#/definitions/io.k8s.api.core.v1.CSIVolumeSource", + "description": "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." + }, + "downwardAPI": { + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource", + "description": "DownwardAPI represents downward API about the pod that should populate this volume" + }, + "emptyDir": { + "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource", + "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + }, + "ephemeral": { + "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralVolumeSource", + "description": "Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature). 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." + }, + "fc": { + "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", + "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + }, + "flexVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource", + "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." + }, + "flocker": { + "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", + "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + }, + "gcePersistentDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", + "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" + }, + "gitRepo": { + "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource", + "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." + }, + "glusterfs": { + "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource", + "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" + }, + "hostPath": { + "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", + "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" + }, + "iscsi": { + "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource", + "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" + }, + "name": { + "description": "Volume's name. 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": { + "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", + "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" + }, + "persistentVolumeClaim": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource", + "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + }, + "photonPersistentDisk": { + "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", + "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + }, + "portworxVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", + "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + }, + "projected": { + "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource", + "description": "Items for all in one resources secrets, configmaps, and downward API" + }, + "quobyte": { + "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", + "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + }, + "rbd": { + "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource", + "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" + }, + "scaleIO": { + "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource", + "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + }, + "secret": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource", + "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + }, + "storageos": { + "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource", + "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + }, + "vsphereVolume": { + "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", + "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.core.v1.VolumeDevice": { + "description": "volumeDevice describes a mapping of a raw block device within a container.", + "properties": { + "devicePath": { + "description": "devicePath is the path inside of the container that the device will be mapped to.", + "type": "string" + }, + "name": { + "description": "name must match the name of a persistentVolumeClaim in the pod", + "type": "string" + } + }, + "required": [ + "name", + "devicePath" + ], + "type": "object" + }, + "io.k8s.api.core.v1.VolumeMount": { + "description": "VolumeMount describes a mounting of a Volume within a container.", + "properties": { + "mountPath": { + "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", + "type": "string" + }, + "mountPropagation": { + "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + "type": "string" + }, + "name": { + "description": "This must match the Name of a Volume.", + "type": "string" + }, + "readOnly": { + "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", + "type": "boolean" + }, + "subPath": { + "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", + "type": "string" + }, + "subPathExpr": { + "description": "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.", + "type": "string" + } + }, + "required": [ + "name", + "mountPath" + ], + "type": "object" + }, + "io.k8s.api.core.v1.VolumeNodeAffinity": { + "description": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", + "properties": { + "required": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", + "description": "Required specifies hard node constraints that must be met." + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.VolumeProjection": { + "description": "Projection that may be projected along with other supported volume types", + "properties": { + "configMap": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection", + "description": "information about the configMap data to project" + }, + "downwardAPI": { + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection", + "description": "information about the downwardAPI data to project" + }, + "secret": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection", + "description": "information about the secret data to project" + }, + "serviceAccountToken": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection", + "description": "information about the serviceAccountToken data to project" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { + "description": "Represents a vSphere volume resource.", + "properties": { + "fsType": { + "description": "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": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", + "type": "string" + }, + "storagePolicyName": { + "description": "Storage Policy Based Management (SPBM) profile name.", + "type": "string" + }, + "volumePath": { + "description": "Path that identifies vSphere volume vmdk", + "type": "string" + } + }, + "required": [ + "volumePath" + ], + "type": "object" + }, + "io.k8s.api.core.v1.WeightedPodAffinityTerm": { + "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", + "properties": { + "podAffinityTerm": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm", + "description": "Required. A pod affinity term, associated with the corresponding weight." + }, + "weight": { + "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "weight", + "podAffinityTerm" + ], + "type": "object" + }, + "io.k8s.api.core.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" + }, + "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" + } + }, + "type": "object" + }, + "io.k8s.api.discovery.v1beta1.Endpoint": { + "description": "Endpoint represents a single logical \"backend\" implementing a service.", + "properties": { + "addresses": { + "description": "addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "conditions": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointConditions", + "description": "conditions contains information about the current status of the endpoint." + }, + "hostname": { + "description": "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation.", + "type": "string" + }, + "nodeName": { + "description": "nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node. This field can be enabled with the EndpointSliceNodeName feature gate.", + "type": "string" + }, + "targetRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "targetRef is a reference to a Kubernetes object that represents this endpoint." + }, + "topology": { + "additionalProperties": { + "type": "string" + }, + "description": "topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\n where the endpoint is located. This should match the corresponding\n node label.\n* topology.kubernetes.io/zone: the value indicates the zone where the\n endpoint is located. This should match the corresponding node label.\n* topology.kubernetes.io/region: the value indicates the region where the\n endpoint is located. This should match the corresponding node label.\nThis field is deprecated and will be removed in future api versions.", + "type": "object" + } + }, + "required": [ + "addresses" + ], + "type": "object" + }, + "io.k8s.api.discovery.v1beta1.EndpointConditions": { + "description": "EndpointConditions represents the current condition of an endpoint.", + "properties": { + "ready": { + "description": "ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready. For compatibility reasons, ready should never be \"true\" for terminating endpoints.", + "type": "boolean" + }, + "serving": { + "description": "serving is identical to ready except that it is set regardless of the terminating state of endpoints. This condition should be set to true for a ready endpoint that is terminating. If nil, consumers should defer to the ready condition. This field can be enabled with the EndpointSliceTerminatingCondition feature gate.", + "type": "boolean" + }, + "terminating": { + "description": "terminating indicates that this endpoint is terminating. A nil value indicates an unknown state. Consumers should interpret this unknown state to mean that the endpoint is not terminating. This field can be enabled with the EndpointSliceTerminatingCondition feature gate.", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.discovery.v1beta1.EndpointPort": { + "description": "EndpointPort represents a Port used by an EndpointSlice", + "properties": { + "appProtocol": { + "description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.", + "type": "string" + }, + "name": { + "description": "The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", + "type": "string" + }, + "port": { + "description": "The port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.discovery.v1beta1.EndpointSlice": { + "description": "EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.", + "properties": { + "addressType": { + "description": "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.", + "type": "string" + }, + "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" + }, + "endpoints": { + "description": "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", + "items": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.Endpoint" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "ports": { + "description": "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \"all ports\". Each slice may include a maximum of 100 ports.", + "items": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointPort" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "addressType", + "endpoints" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.discovery.v1beta1.EndpointSliceList": { + "description": "EndpointSliceList represents a list of endpoint slices", + "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" + }, + "items": { + "description": "List of endpoint slices", + "items": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "discovery.k8s.io", + "kind": "EndpointSliceList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.events.v1.Event": { + "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.", + "properties": { + "action": { + "description": "action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field cannot be empty for new Events and it can have at most 128 characters.", + "type": "string" + }, + "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" + }, + "deprecatedCount": { + "description": "deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.", + "format": "int32", + "type": "integer" + }, + "deprecatedFirstTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." + }, + "deprecatedLastTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." + }, + "deprecatedSource": { + "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", + "description": "deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type." + }, + "eventTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "eventTime is the time when this Event was first observed. It is required." + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "note": { + "description": "note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", + "type": "string" + }, + "reason": { + "description": "reason is why the action was taken. It is human-readable. This field cannot be empty for new Events and it can have at most 128 characters.", + "type": "string" + }, + "regarding": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object." + }, + "related": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object." + }, + "reportingController": { + "description": "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", + "type": "string" + }, + "reportingInstance": { + "description": "reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.", + "type": "string" + }, + "series": { + "$ref": "#/definitions/io.k8s.api.events.v1.EventSeries", + "description": "series is data about the Event series this event represents or nil if it's a singleton Event." + }, + "type": { + "description": "type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable. This field cannot be empty for new Events.", + "type": "string" + } + }, + "required": [ + "metadata", + "eventTime" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + ] + }, + "io.k8s.api.events.v1.EventList": { + "description": "EventList is a list of Event objects.", + "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" + }, + "items": { + "description": "items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.events.v1.Event" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "events.k8s.io", + "kind": "EventList", + "version": "v1" + } + ] + }, + "io.k8s.api.events.v1.EventSeries": { + "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows how this struct is updated on heartbeats and can guide customized reporter implementations.", + "properties": { + "count": { + "description": "count is the number of occurrences in this series up to the last heartbeat time.", + "format": "int32", + "type": "integer" + }, + "lastObservedTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "lastObservedTime is the time when last Event from the series was seen before last heartbeat." + } + }, + "required": [ + "count", + "lastObservedTime" + ], + "type": "object" + }, + "io.k8s.api.events.v1beta1.Event": { + "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.", + "properties": { + "action": { + "description": "action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field can have at most 128 characters.", + "type": "string" + }, + "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" + }, + "deprecatedCount": { + "description": "deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.", + "format": "int32", + "type": "integer" + }, + "deprecatedFirstTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." + }, + "deprecatedLastTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." + }, + "deprecatedSource": { + "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", + "description": "deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type." + }, + "eventTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "eventTime is the time when this Event was first observed. It is required." + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "note": { + "description": "note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", + "type": "string" + }, + "reason": { + "description": "reason is why the action was taken. It is human-readable. This field can have at most 128 characters.", + "type": "string" + }, + "regarding": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object." + }, + "related": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", + "description": "related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object." + }, + "reportingController": { + "description": "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", + "type": "string" + }, + "reportingInstance": { + "description": "reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.", + "type": "string" + }, + "series": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventSeries", + "description": "series is data about the Event series this event represents or nil if it's a singleton Event." + }, + "type": { + "description": "type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable.", + "type": "string" + } + }, + "required": [ + "metadata", + "eventTime" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.events.v1beta1.EventList": { + "description": "EventList is a list of Event objects.", + "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" + }, + "items": { + "description": "items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "events.k8s.io", + "kind": "EventList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.events.v1beta1.EventSeries": { + "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", + "properties": { + "count": { + "description": "count is the number of occurrences in this series up to the last heartbeat time.", + "format": "int32", + "type": "integer" + }, + "lastObservedTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", + "description": "lastObservedTime is the time when last Event from the series was seen before last heartbeat." + } + }, + "required": [ + "count", + "lastObservedTime" + ], + "type": "object" + }, + "io.k8s.api.extensions.v1beta1.HTTPIngressPath": { + "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", + "properties": { + "backend": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", + "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." + }, + "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 '/'. When unspecified, all paths from incoming requests are matched.", + "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. Defaults to ImplementationSpecific.", + "type": "string" + } + }, + "required": [ + "backend" + ], + "type": "object" + }, + "io.k8s.api.extensions.v1beta1.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 '#'.", + "properties": { + "paths": { + "description": "A collection of paths that map requests to backends.", + "items": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath" + }, + "type": "array" + } + }, + "required": [ + "paths" + ], + "type": "object" + }, + "io.k8s.api.extensions.v1beta1.Ingress": { + "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec", + "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus", + "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.extensions.v1beta1.IngressBackend": { + "description": "IngressBackend describes all endpoints for a given service and port.", + "properties": { + "resource": { + "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", + "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." + }, + "serviceName": { + "description": "Specifies the name of the referenced service.", + "type": "string" + }, + "servicePort": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "Specifies the port of the referenced service." + } + }, + "type": "object" + }, + "io.k8s.api.extensions.v1beta1.IngressList": { + "description": "IngressList is a collection of Ingress.", + "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" + }, + "items": { + "description": "Items is the list of Ingress.", + "items": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "extensions", + "kind": "IngressList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.extensions.v1beta1.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/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue" + } + }, + "type": "object" + }, + "io.k8s.api.extensions.v1beta1.IngressSpec": { + "description": "IngressSpec describes the Ingress the user wishes to exist.", + "properties": { + "backend": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend", + "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." + }, + "ingressClassName": { + "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", + "type": "string" + }, + "rules": { + "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", + "items": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressRule" + }, + "type": "array" + }, + "tls": { + "description": "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.", + "items": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.extensions.v1beta1.IngressStatus": { + "description": "IngressStatus describe the current state of the Ingress.", + "properties": { + "loadBalancer": { + "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", + "description": "LoadBalancer contains the current status of the load-balancer." + } + }, + "type": "object" + }, + "io.k8s.api.extensions.v1beta1.IngressTLS": { + "description": "IngressTLS describes the transport layer security associated with an Ingress.", + "properties": { + "hosts": { + "description": "Hosts are 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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "secretName": { + "description": "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL 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" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.FlowDistinguisherMethod": { + "description": "FlowDistinguisherMethod specifies the method of a flow distinguisher.", + "properties": { + "type": { + "description": "`type` is the type of flow distinguisher method The supported types are \"ByUser\" and \"ByNamespace\". Required.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.FlowSchema": { + "description": "FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchemaSpec", + "description": "`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchemaStatus", + "description": "`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.flowcontrol.v1beta1.FlowSchemaCondition": { + "description": "FlowSchemaCondition describes conditions for a FlowSchema.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "`lastTransitionTime` is the last time the condition transitioned from one status to another." + }, + "message": { + "description": "`message` is a human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "`reason` is a unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "`status` is the status of the condition. Can be True, False, Unknown. Required.", + "type": "string" + }, + "type": { + "description": "`type` is the type of the condition. Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.FlowSchemaList": { + "description": "FlowSchemaList is a list of FlowSchema objects.", + "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" + }, + "items": { + "description": "`items` is a list of FlowSchemas.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchemaList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.flowcontrol.v1beta1.FlowSchemaSpec": { + "description": "FlowSchemaSpec describes how the FlowSchema's specification looks like.", + "properties": { + "distinguisherMethod": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowDistinguisherMethod", + "description": "`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string." + }, + "matchingPrecedence": { + "description": "`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.", + "format": "int32", + "type": "integer" + }, + "priorityLevelConfiguration": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationReference", + "description": "`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required." + }, + "rules": { + "description": "`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PolicyRulesWithSubjects" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "priorityLevelConfiguration" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.FlowSchemaStatus": { + "description": "FlowSchemaStatus represents the current state of a FlowSchema.", + "properties": { + "conditions": { + "description": "`conditions` is a list of the current states of FlowSchema.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchemaCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.GroupSubject": { + "description": "GroupSubject holds detailed information for group-kind subject.", + "properties": { + "name": { + "description": "name is the user group that matches, or \"*\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.LimitResponse": { + "description": "LimitResponse defines how to handle requests that can not be executed right now.", + "properties": { + "queuing": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.QueuingConfiguration", + "description": "`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\"Queue\"`." + }, + "type": { + "description": "`type` is \"Queue\" or \"Reject\". \"Queue\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \"Reject\" means that requests that can not be executed upon arrival are rejected. Required.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "type", + "fields-to-discriminateBy": { + "queuing": "Queuing" + } + } + ] + }, + "io.k8s.api.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration": { + "description": "LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\n * How are requests for this priority level limited?\n * What should be done with requests that exceed the limit?", + "properties": { + "assuredConcurrencyShares": { + "description": "`assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the number of requests of this priority level that may be exeucting at a given time. ACS must be a positive number. The server's concurrency limit (SCL) is divided among the concurrency-controlled priority levels in proportion to their assured concurrency shares. This produces the assured concurrency value (ACV) --- the number of requests that may be executing at a time --- for each such priority level:\n\n ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n\nbigger numbers of ACS mean more reserved concurrent requests (at the expense of every other PL). This field has a default value of 30.", + "format": "int32", + "type": "integer" + }, + "limitResponse": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.LimitResponse", + "description": "`limitResponse` indicates what to do with requests that can not be executed right now" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.NonResourcePolicyRule": { + "description": "NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.", + "properties": { + "nonResourceURLs": { + "description": "`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\n - \"/healthz\" is legal\n - \"/hea*\" is illegal\n - \"/hea\" is legal but matches nothing\n - \"/hea/*\" also matches nothing\n - \"/healthz/*\" matches all per-component health checks.\n\"*\" matches all non-resource urls. if it is present, it must be the only entry. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "verbs": { + "description": "`verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs. If it is present, it must be the only entry. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "required": [ + "verbs", + "nonResourceURLs" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.PolicyRulesWithSubjects": { + "description": "PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.", + "properties": { + "nonResourceRules": { + "description": "`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.NonResourcePolicyRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceRules": { + "description": "`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.ResourcePolicyRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "subjects": { + "description": "subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.Subject" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "subjects" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration": { + "description": "PriorityLevelConfiguration represents the configuration of a priority level.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationSpec", + "description": "`spec` is the specification of the desired behavior of a \"request-priority\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationStatus", + "description": "`status` is the current status of a \"request-priority\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationCondition": { + "description": "PriorityLevelConfigurationCondition defines the condition of priority level.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "`lastTransitionTime` is the last time the condition transitioned from one status to another." + }, + "message": { + "description": "`message` is a human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "`reason` is a unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "`status` is the status of the condition. Can be True, False, Unknown. Required.", + "type": "string" + }, + "type": { + "description": "`type` is the type of the condition. Required.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationList": { + "description": "PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.", + "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" + }, + "items": { + "description": "`items` is a list of request-priorities.", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfigurationList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationReference": { + "description": "PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.", + "properties": { + "name": { + "description": "`name` is the name of the priority level configuration being referenced Required.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationSpec": { + "description": "PriorityLevelConfigurationSpec specifies the configuration of a priority level.", + "properties": { + "limited": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration", + "description": "`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\"Limited\"`." + }, + "type": { + "description": "`type` indicates whether this priority level is subject to limitation on request execution. A value of `\"Exempt\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `\"Limited\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "type", + "fields-to-discriminateBy": { + "limited": "Limited" + } + } + ] + }, + "io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationStatus": { + "description": "PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".", + "properties": { + "conditions": { + "description": "`conditions` is the current state of \"request-priority\".", + "items": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.QueuingConfiguration": { + "description": "QueuingConfiguration holds the configuration parameters for queuing", + "properties": { + "handSize": { + "description": "`handSize` is a small positive number that configures the shuffle sharding of requests into queues. When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here. The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues). See the user-facing documentation for more extensive guidance on setting this field. This field has a default value of 8.", + "format": "int32", + "type": "integer" + }, + "queueLengthLimit": { + "description": "`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected. This value must be positive. If not specified, it will be defaulted to 50.", + "format": "int32", + "type": "integer" + }, + "queues": { + "description": "`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive. Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant. This field has a default value of 64.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.ResourcePolicyRule": { + "description": "ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) least one member of namespaces matches the request.", + "properties": { + "apiGroups": { + "description": "`apiGroups` is a list of matching API groups and may not be empty. \"*\" matches all API groups and, if present, must be the only entry. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "clusterScope": { + "description": "`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.", + "type": "boolean" + }, + "namespaces": { + "description": "`namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \"*\". Note that \"*\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "resources": { + "description": "`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ \"services\", \"nodes/status\" ]. This list may not be empty. \"*\" matches all resources and, if present, must be the only entry. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + }, + "verbs": { + "description": "`verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs and, if present, must be the only entry. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "required": [ + "verbs", + "apiGroups", + "resources" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.ServiceAccountSubject": { + "description": "ServiceAccountSubject holds detailed information for service-account-kind subject.", + "properties": { + "name": { + "description": "`name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name. Required.", + "type": "string" + }, + "namespace": { + "description": "`namespace` is the namespace of matching ServiceAccount objects. Required.", + "type": "string" + } + }, + "required": [ + "namespace", + "name" + ], + "type": "object" + }, + "io.k8s.api.flowcontrol.v1beta1.Subject": { + "description": "Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.", + "properties": { + "group": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.GroupSubject" + }, + "kind": { + "description": "Required", + "type": "string" + }, + "serviceAccount": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.ServiceAccountSubject" + }, + "user": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.UserSubject" + } + }, + "required": [ + "kind" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "kind", + "fields-to-discriminateBy": { + "group": "Group", + "serviceAccount": "ServiceAccount", + "user": "User" + } + } + ] + }, + "io.k8s.api.flowcontrol.v1beta1.UserSubject": { + "description": "UserSubject holds detailed information for user-kind subject.", + "properties": { + "name": { + "description": "`name` is the username that matches, or \"*\" to match all usernames. Required.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.HTTPIngressPath": { + "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", + "properties": { + "backend": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressBackend", + "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." + }, + "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 '/'. When unspecified, all paths from incoming requests are matched.", + "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" + } + }, + "required": [ + "backend" + ], + "type": "object" + }, + "io.k8s.api.networking.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 '#'.", + "properties": { + "paths": { + "description": "A collection of paths that map requests to backends.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.HTTPIngressPath" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "paths" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.IPBlock": { + "description": "IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\",\"2001:db9::/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.", + "properties": { + "cidr": { + "description": "CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\"", + "type": "string" + }, + "except": { + "description": "Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\" Except values will be rejected if they are outside the CIDR range", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "cidr" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.Ingress": { + "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressSpec", + "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressStatus", + "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.IngressBackend": { + "description": "IngressBackend describes all endpoints for a given service and port.", + "properties": { + "resource": { + "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", + "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\"." + }, + "service": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressServiceBackend", + "description": "Service references a Service as a Backend. This is a mutually exclusive setting with \"Resource\"." + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressClass": { + "description": "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClassSpec", + "description": "Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.IngressClassList": { + "description": "IngressClassList is a collection of IngressClasses.", + "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" + }, + "items": { + "description": "Items is the list of IngressClasses.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IngressClassList", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.IngressClassSpec": { + "description": "IngressClassSpec provides information about the class of an Ingress.", + "properties": { + "controller": { + "description": "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", + "type": "string" + }, + "parameters": { + "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", + "description": "Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters." + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressList": { + "description": "IngressList is a collection of Ingress.", + "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" + }, + "items": { + "description": "Items is the list of Ingress.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IngressList", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.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/io.k8s.api.networking.v1.HTTPIngressRuleValue" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressServiceBackend": { + "description": "IngressServiceBackend references a Kubernetes Service as a Backend.", + "properties": { + "name": { + "description": "Name is the referenced service. The service must exist in the same namespace as the Ingress object.", + "type": "string" + }, + "port": { + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceBackendPort", + "description": "Port of the referenced service. A port name or port number is required for a IngressServiceBackend." + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.networking.v1.IngressSpec": { + "description": "IngressSpec describes the Ingress the user wishes to exist.", + "properties": { + "defaultBackend": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressBackend", + "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." + }, + "ingressClassName": { + "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", + "type": "string" + }, + "rules": { + "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "tls": { + "description": "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.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressTLS" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressStatus": { + "description": "IngressStatus describe the current state of the Ingress.", + "properties": { + "loadBalancer": { + "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", + "description": "LoadBalancer contains the current status of the load-balancer." + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.IngressTLS": { + "description": "IngressTLS describes the transport layer security associated with an Ingress.", + "properties": { + "hosts": { + "description": "Hosts are 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.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "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" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.NetworkPolicy": { + "description": "NetworkPolicy describes what network traffic is allowed for a set of Pods", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec", + "description": "Specification of the desired behavior for this NetworkPolicy." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.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": "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.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" + }, + "type": "array" + }, + "to": { + "description": "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.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.networking.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": "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.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" + }, + "type": "array" + }, + "ports": { + "description": "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.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.NetworkPolicyList": { + "description": "NetworkPolicyList is a list of NetworkPolicy objects.", + "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" + }, + "items": { + "description": "Items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "NetworkPolicyList", + "version": "v1" + } + ] + }, + "io.k8s.api.networking.v1.NetworkPolicyPeer": { + "description": "NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed", + "properties": { + "ipBlock": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IPBlock", + "description": "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be." + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "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." + }, + "podSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "This 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." + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.NetworkPolicyPort": { + "description": "NetworkPolicyPort describes a port to allow traffic on", + "properties": { + "port": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "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." + }, + "protocol": { + "description": "The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1.NetworkPolicySpec": { + "description": "NetworkPolicySpec provides the specification of a NetworkPolicy", + "properties": { + "egress": { + "description": "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule" + }, + "type": "array" + }, + "ingress": { + "description": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule" + }, + "type": "array" + }, + "podSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace." + }, + "policyTypes": { + "description": "List of rule types that the NetworkPolicy relates to. Valid options are \"Ingress\", \"Egress\", or \"Ingress,Egress\". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "podSelector" + ], + "type": "object" + }, + "io.k8s.api.networking.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\".", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1beta1.HTTPIngressPath": { + "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", + "properties": { + "backend": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", + "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." + }, + "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 '/'. When unspecified, all paths from incoming requests are matched.", + "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. Defaults to ImplementationSpecific.", + "type": "string" + } + }, + "required": [ + "backend" + ], + "type": "object" + }, + "io.k8s.api.networking.v1beta1.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 '#'.", + "properties": { + "paths": { + "description": "A collection of paths that map requests to backends.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.HTTPIngressPath" + }, + "type": "array" + } + }, + "required": [ + "paths" + ], + "type": "object" + }, + "io.k8s.api.networking.v1beta1.Ingress": { + "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressSpec", + "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressStatus", + "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.networking.v1beta1.IngressBackend": { + "description": "IngressBackend describes all endpoints for a given service and port.", + "properties": { + "resource": { + "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", + "description": "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified." + }, + "serviceName": { + "description": "Specifies the name of the referenced service.", + "type": "string" + }, + "servicePort": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "Specifies the port of the referenced service." + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1beta1.IngressClass": { + "description": "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassSpec", + "description": "Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.networking.v1beta1.IngressClassList": { + "description": "IngressClassList is a collection of IngressClasses.", + "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" + }, + "items": { + "description": "Items is the list of IngressClasses.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IngressClassList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.networking.v1beta1.IngressClassSpec": { + "description": "IngressClassSpec provides information about the class of an Ingress.", + "properties": { + "controller": { + "description": "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", + "type": "string" + }, + "parameters": { + "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", + "description": "Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters." + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1beta1.IngressList": { + "description": "IngressList is a collection of Ingress.", + "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" + }, + "items": { + "description": "Items is the list of Ingress.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "networking.k8s.io", + "kind": "IngressList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.networking.v1beta1.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/io.k8s.api.networking.v1beta1.HTTPIngressRuleValue" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1beta1.IngressSpec": { + "description": "IngressSpec describes the Ingress the user wishes to exist.", + "properties": { + "backend": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressBackend", + "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." + }, + "ingressClassName": { + "description": "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", + "type": "string" + }, + "rules": { + "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressRule" + }, + "type": "array" + }, + "tls": { + "description": "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.", + "items": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressTLS" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1beta1.IngressStatus": { + "description": "IngressStatus describe the current state of the Ingress.", + "properties": { + "loadBalancer": { + "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", + "description": "LoadBalancer contains the current status of the load-balancer." + } + }, + "type": "object" + }, + "io.k8s.api.networking.v1beta1.IngressTLS": { + "description": "IngressTLS describes the transport layer security associated with an Ingress.", + "properties": { + "hosts": { + "description": "Hosts are 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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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" + } + }, + "type": "object" + }, + "io.k8s.api.node.v1.Overhead": { + "description": "Overhead structure represents the resource overhead associated with running a pod.", + "properties": { + "podFixed": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "PodFixed represents the fixed resource overhead associated with running a pod.", + "type": "object" + } + }, + "type": "object" + }, + "io.k8s.api.node.v1.RuntimeClass": { + "description": "RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://kubernetes.io/docs/concepts/containers/runtime-class/", + "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" + }, + "handler": { + "description": "Handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node \u0026 CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "overhead": { + "$ref": "#/definitions/io.k8s.api.node.v1.Overhead", + "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see\n https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/\nThis field is in beta starting v1.18 and is only honored by servers that enable the PodOverhead feature." + }, + "scheduling": { + "$ref": "#/definitions/io.k8s.api.node.v1.Scheduling", + "description": "Scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes." + } + }, + "required": [ + "handler" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1" + } + ] + }, + "io.k8s.api.node.v1.RuntimeClassList": { + "description": "RuntimeClassList is a list of RuntimeClass objects.", + "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" + }, + "items": { + "description": "Items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "node.k8s.io", + "kind": "RuntimeClassList", + "version": "v1" + } + ] + }, + "io.k8s.api.node.v1.Scheduling": { + "description": "Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.", + "properties": { + "nodeSelector": { + "additionalProperties": { + "type": "string" + }, + "description": "nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.", + "type": "object" + }, + "tolerations": { + "description": "tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.node.v1beta1.Overhead": { + "description": "Overhead structure represents the resource overhead associated with running a pod.", + "properties": { + "podFixed": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "description": "PodFixed represents the fixed resource overhead associated with running a pod.", + "type": "object" + } + }, + "type": "object" + }, + "io.k8s.api.node.v1beta1.RuntimeClass": { + "description": "RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md", + "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" + }, + "handler": { + "description": "Handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node \u0026 CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "overhead": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.Overhead", + "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.15, and is only honored by servers that enable the PodOverhead feature." + }, + "scheduling": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.Scheduling", + "description": "Scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes." + } + }, + "required": [ + "handler" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.node.v1beta1.RuntimeClassList": { + "description": "RuntimeClassList is a list of RuntimeClass objects.", + "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" + }, + "items": { + "description": "Items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "node.k8s.io", + "kind": "RuntimeClassList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.node.v1beta1.Scheduling": { + "description": "Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.", + "properties": { + "nodeSelector": { + "additionalProperties": { + "type": "string" + }, + "description": "nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.", + "type": "object" + }, + "tolerations": { + "description": "tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.policy.v1beta1.AllowedCSIDriver": { + "description": "AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.", + "properties": { + "name": { + "description": "Name is the registered name of the CSI driver", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.policy.v1beta1.AllowedFlexVolume": { + "description": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", + "properties": { + "driver": { + "description": "driver is the name of the Flexvolume driver.", + "type": "string" + } + }, + "required": [ + "driver" + ], + "type": "object" + }, + "io.k8s.api.policy.v1beta1.AllowedHostPath": { + "description": "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", + "properties": { + "pathPrefix": { + "description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", + "type": "string" + }, + "readOnly": { + "description": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.api.policy.v1beta1.Eviction": { + "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/\u003cpod name\u003e/evictions.", + "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" + }, + "deleteOptions": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions", + "description": "DeleteOptions may be provided" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "ObjectMeta describes the pod that is being evicted." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "policy", + "kind": "Eviction", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.policy.v1beta1.FSGroupStrategyOptions": { + "description": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", + "properties": { + "ranges": { + "description": "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", + "items": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" + }, + "type": "array" + }, + "rule": { + "description": "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.policy.v1beta1.HostPortRange": { + "description": "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", + "properties": { + "max": { + "description": "max is the end of the range, inclusive.", + "format": "int32", + "type": "integer" + }, + "min": { + "description": "min is the start of the range, inclusive.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "min", + "max" + ], + "type": "object" + }, + "io.k8s.api.policy.v1beta1.IDRange": { + "description": "IDRange provides a min/max of an allowed range of IDs.", + "properties": { + "max": { + "description": "max is the end of the range, inclusive.", + "format": "int64", + "type": "integer" + }, + "min": { + "description": "min is the start of the range, inclusive.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "min", + "max" + ], + "type": "object" + }, + "io.k8s.api.policy.v1beta1.PodDisruptionBudget": { + "description": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec", + "description": "Specification of the desired behavior of the PodDisruptionBudget." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus", + "description": "Most recently observed status of the PodDisruptionBudget." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.policy.v1beta1.PodDisruptionBudgetList": { + "description": "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.", + "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" + }, + "items": { + "items": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "policy", + "kind": "PodDisruptionBudgetList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec": { + "description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", + "properties": { + "maxUnavailable": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\"." + }, + "minAvailable": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "description": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\"." + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "Label query over pods whose evictions are managed by the disruption budget." + } + }, + "type": "object" + }, + "io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus": { + "description": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.", + "properties": { + "currentHealthy": { + "description": "current number of healthy pods", + "format": "int32", + "type": "integer" + }, + "desiredHealthy": { + "description": "minimum desired number of healthy pods", + "format": "int32", + "type": "integer" + }, + "disruptedPods": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "description": "DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.", + "type": "object" + }, + "disruptionsAllowed": { + "description": "Number of pod disruptions that are currently allowed.", + "format": "int32", + "type": "integer" + }, + "expectedPods": { + "description": "total number of pods counted by this disruption budget", + "format": "int32", + "type": "integer" + }, + "observedGeneration": { + "description": "Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "disruptionsAllowed", + "currentHealthy", + "desiredHealthy", + "expectedPods" + ], + "type": "object" + }, + "io.k8s.api.policy.v1beta1.PodSecurityPolicy": { + "description": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicySpec", + "description": "spec defines the policy enforced." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "policy", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.policy.v1beta1.PodSecurityPolicyList": { + "description": "PodSecurityPolicyList is a list of PodSecurityPolicy objects.", + "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" + }, + "items": { + "description": "items is a list of schema objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "policy", + "kind": "PodSecurityPolicyList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.policy.v1beta1.PodSecurityPolicySpec": { + "description": "PodSecurityPolicySpec defines the policy enforced.", + "properties": { + "allowPrivilegeEscalation": { + "description": "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", + "type": "boolean" + }, + "allowedCSIDrivers": { + "description": "AllowedCSIDrivers is an allowlist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes. This is a beta field, and is only honored if the API server enables the CSIInlineVolume feature gate.", + "items": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedCSIDriver" + }, + "type": "array" + }, + "allowedCapabilities": { + "description": "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowedFlexVolumes": { + "description": "allowedFlexVolumes is an allowlist of Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", + "items": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedFlexVolume" + }, + "type": "array" + }, + "allowedHostPaths": { + "description": "allowedHostPaths is an allowlist of host paths. Empty indicates that all host paths may be used.", + "items": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedHostPath" + }, + "type": "array" + }, + "allowedProcMountTypes": { + "description": "AllowedProcMountTypes is an allowlist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowedUnsafeSysctls": { + "description": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to allowlist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.", + "items": { + "type": "string" + }, + "type": "array" + }, + "defaultAddCapabilities": { + "description": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", + "items": { + "type": "string" + }, + "type": "array" + }, + "defaultAllowPrivilegeEscalation": { + "description": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", + "type": "boolean" + }, + "forbiddenSysctls": { + "description": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.", + "items": { + "type": "string" + }, + "type": "array" + }, + "fsGroup": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.FSGroupStrategyOptions", + "description": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext." + }, + "hostIPC": { + "description": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", + "type": "boolean" + }, + "hostNetwork": { + "description": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", + "type": "boolean" + }, + "hostPID": { + "description": "hostPID determines if the policy allows the use of HostPID in the pod spec.", + "type": "boolean" + }, + "hostPorts": { + "description": "hostPorts determines which host port ranges are allowed to be exposed.", + "items": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.HostPortRange" + }, + "type": "array" + }, + "privileged": { + "description": "privileged determines if a pod can request to be run as privileged.", + "type": "boolean" + }, + "readOnlyRootFilesystem": { + "description": "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", + "type": "boolean" + }, + "requiredDropCapabilities": { + "description": "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", + "items": { + "type": "string" + }, + "type": "array" + }, + "runAsGroup": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions", + "description": "RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled." + }, + "runAsUser": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions", + "description": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set." + }, + "runtimeClass": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions", + "description": "runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod. If this field is omitted, the pod's runtimeClassName field is unrestricted. Enforcement of this field depends on the RuntimeClass feature gate being enabled." + }, + "seLinux": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SELinuxStrategyOptions", + "description": "seLinux is the strategy that will dictate the allowable labels that may be set." + }, + "supplementalGroups": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions", + "description": "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext." + }, + "volumes": { + "description": "volumes is an allowlist of volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "seLinux", + "runAsUser", + "supplementalGroups", + "fsGroup" + ], + "type": "object" + }, + "io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions": { + "description": "RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.", + "properties": { + "ranges": { + "description": "ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.", + "items": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" + }, + "type": "array" + }, + "rule": { + "description": "rule is the strategy that will dictate the allowable RunAsGroup values that may be set.", + "type": "string" + } + }, + "required": [ + "rule" + ], + "type": "object" + }, + "io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions": { + "description": "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.", + "properties": { + "ranges": { + "description": "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", + "items": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" + }, + "type": "array" + }, + "rule": { + "description": "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", + "type": "string" + } + }, + "required": [ + "rule" + ], + "type": "object" + }, + "io.k8s.api.policy.v1beta1.RuntimeClassStrategyOptions": { + "description": "RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.", + "properties": { + "allowedRuntimeClassNames": { + "description": "allowedRuntimeClassNames is an allowlist of RuntimeClass names that may be specified on a pod. A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.", + "items": { + "type": "string" + }, + "type": "array" + }, + "defaultRuntimeClassName": { + "description": "defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.", + "type": "string" + } + }, + "required": [ + "allowedRuntimeClassNames" + ], + "type": "object" + }, + "io.k8s.api.policy.v1beta1.SELinuxStrategyOptions": { + "description": "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.", + "properties": { + "rule": { + "description": "rule is the strategy that will dictate the allowable labels that may be set.", + "type": "string" + }, + "seLinuxOptions": { + "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", + "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" + } + }, + "required": [ + "rule" + ], + "type": "object" + }, + "io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions": { + "description": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", + "properties": { + "ranges": { + "description": "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", + "items": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" + }, + "type": "array" + }, + "rule": { + "description": "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.rbac.v1.AggregationRule": { + "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "properties": { + "clusterRoleSelectors": { + "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.rbac.v1.ClusterRole": { + "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", + "properties": { + "aggregationRule": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.AggregationRule", + "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "rules": { + "description": "Rules holds all the PolicyRules for this ClusterRole", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" + }, + "type": "array" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.ClusterRoleBinding": { + "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "roleRef": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", + "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." + }, + "subjects": { + "description": "Subjects holds references to the objects the role applies to.", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" + }, + "type": "array" + } + }, + "required": [ + "roleRef" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.ClusterRoleBindingList": { + "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", + "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" + }, + "items": { + "description": "Items is a list of ClusterRoleBindings", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBindingList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.ClusterRoleList": { + "description": "ClusterRoleList is a collection of ClusterRoles", + "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" + }, + "items": { + "description": "Items is a list of ClusterRoles", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.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.", + "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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resourceNames": { + "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resources": { + "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", + "items": { + "type": "string" + }, + "type": "array" + }, + "verbs": { + "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "verbs" + ], + "type": "object" + }, + "io.k8s.api.rbac.v1.Role": { + "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "rules": { + "description": "Rules holds all the PolicyRules for this Role", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" + }, + "type": "array" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleBinding": { + "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "roleRef": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", + "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." + }, + "subjects": { + "description": "Subjects holds references to the objects the role applies to.", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" + }, + "type": "array" + } + }, + "required": [ + "roleRef" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleBindingList": { + "description": "RoleBindingList is a collection of RoleBindings", + "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" + }, + "items": { + "description": "Items is a list of RoleBindings", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBindingList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleList": { + "description": "RoleList is a collection of Roles", + "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" + }, + "items": { + "description": "Items is a list of Roles", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleRef": { + "description": "RoleRef contains information that points to the role being used", + "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" + } + }, + "required": [ + "apiGroup", + "kind", + "name" + ], + "type": "object" + }, + "io.k8s.api.rbac.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.", + "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" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object" + }, + "io.k8s.api.rbac.v1beta1.AggregationRule": { + "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "properties": { + "clusterRoleSelectors": { + "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.rbac.v1beta1.ClusterRole": { + "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.", + "properties": { + "aggregationRule": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.AggregationRule", + "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "rules": { + "description": "Rules holds all the PolicyRules for this ClusterRole", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" + }, + "type": "array" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.rbac.v1beta1.ClusterRoleBinding": { + "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "roleRef": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", + "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." + }, + "subjects": { + "description": "Subjects holds references to the objects the role applies to.", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" + }, + "type": "array" + } + }, + "required": [ + "roleRef" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.rbac.v1beta1.ClusterRoleBindingList": { + "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.22.", + "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" + }, + "items": { + "description": "Items is a list of ClusterRoleBindings", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBindingList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.rbac.v1beta1.ClusterRoleList": { + "description": "ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.", + "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" + }, + "items": { + "description": "Items is a list of ClusterRoles", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.rbac.v1beta1.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.", + "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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resourceNames": { + "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resources": { + "description": "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.", + "items": { + "type": "string" + }, + "type": "array" + }, + "verbs": { + "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "verbs" + ], + "type": "object" + }, + "io.k8s.api.rbac.v1beta1.Role": { + "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "rules": { + "description": "Rules holds all the PolicyRules for this Role", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" + }, + "type": "array" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.rbac.v1beta1.RoleBinding": { + "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "roleRef": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef", + "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." + }, + "subjects": { + "description": "Subjects holds references to the objects the role applies to.", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" + }, + "type": "array" + } + }, + "required": [ + "roleRef" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.rbac.v1beta1.RoleBindingList": { + "description": "RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.", + "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" + }, + "items": { + "description": "Items is a list of RoleBindings", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBindingList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.rbac.v1beta1.RoleList": { + "description": "RoleList is a collection of Roles Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.", + "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" + }, + "items": { + "description": "Items is a list of Roles", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard object's metadata." + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.rbac.v1beta1.RoleRef": { + "description": "RoleRef contains information that points to the role being used", + "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" + } + }, + "required": [ + "apiGroup", + "kind", + "name" + ], + "type": "object" + }, + "io.k8s.api.rbac.v1beta1.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.", + "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" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object" + }, + "io.k8s.api.scheduling.v1.PriorityClass": { + "description": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", + "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" + }, + "description": { + "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", + "type": "string" + }, + "globalDefault": { + "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", + "type": "boolean" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "preemptionPolicy": { + "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", + "type": "string" + }, + "value": { + "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "value" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1" + } + ] + }, + "io.k8s.api.scheduling.v1.PriorityClassList": { + "description": "PriorityClassList is a collection of priority classes.", + "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" + }, + "items": { + "description": "items is the list of PriorityClasses", + "items": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "scheduling.k8s.io", + "kind": "PriorityClassList", + "version": "v1" + } + ] + }, + "io.k8s.api.scheduling.v1beta1.PriorityClass": { + "description": "DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", + "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" + }, + "description": { + "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", + "type": "string" + }, + "globalDefault": { + "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", + "type": "boolean" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "preemptionPolicy": { + "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", + "type": "string" + }, + "value": { + "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "value" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.scheduling.v1beta1.PriorityClassList": { + "description": "PriorityClassList is a collection of priority classes.", + "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" + }, + "items": { + "description": "items is the list of PriorityClasses", + "items": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "scheduling.k8s.io", + "kind": "PriorityClassList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.storage.v1.CSIDriver": { + "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverSpec", + "description": "Specification of the CSI Driver." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1" + } + ] + }, + "io.k8s.api.storage.v1.CSIDriverList": { + "description": "CSIDriverList is a collection of CSIDriver objects.", + "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" + }, + "items": { + "description": "items is the list of CSIDriver", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "CSIDriverList", + "version": "v1" + } + ] + }, + "io.k8s.api.storage.v1.CSIDriverSpec": { + "description": "CSIDriverSpec is the specification of a CSIDriver.", + "properties": { + "attachRequired": { + "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", + "type": "boolean" + }, + "fsGroupPolicy": { + "description": "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.", + "type": "string" + }, + "podInfoOnMount": { + "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", + "type": "boolean" + }, + "requiresRepublish": { + "description": "RequiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\n\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.\n\nThis is an alpha feature and only available when the CSIServiceAccountToken feature is enabled.", + "type": "boolean" + }, + "storageCapacity": { + "description": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.", + "type": "boolean" + }, + "tokenRequests": { + "description": "TokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \"csi.storage.k8s.io/serviceAccount.tokens\": {\n \"\u003caudience\u003e\": {\n \"token\": \u003ctoken\u003e,\n \"expirationTimestamp\": \u003cexpiration timestamp in RFC3339\u003e,\n },\n ...\n}\n\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.\n\nThis is an alpha feature and only available when the CSIServiceAccountToken feature is enabled.", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1.TokenRequest" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "volumeLifecycleModes": { + "description": "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "type": "object" + }, + "io.k8s.api.storage.v1.CSINode": { + "description": "CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata.name must be the Kubernetes node name." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeSpec", + "description": "spec is the specification of CSINode" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1" + } + ] + }, + "io.k8s.api.storage.v1.CSINodeDriver": { + "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", + "properties": { + "allocatable": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeNodeResources", + "description": "allocatable represents the volume resources of a node that are available for scheduling. This field is beta." + }, + "name": { + "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", + "type": "string" + }, + "nodeID": { + "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", + "type": "string" + }, + "topologyKeys": { + "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name", + "nodeID" + ], + "type": "object" + }, + "io.k8s.api.storage.v1.CSINodeList": { + "description": "CSINodeList is a collection of CSINode objects.", + "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" + }, + "items": { + "description": "items is the list of CSINode", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "CSINodeList", + "version": "v1" + } + ] + }, + "io.k8s.api.storage.v1.CSINodeSpec": { + "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", + "properties": { + "drivers": { + "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeDriver" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "required": [ + "drivers" + ], + "type": "object" + }, + "io.k8s.api.storage.v1.StorageClass": { + "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", + "properties": { + "allowVolumeExpansion": { + "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", + "type": "boolean" + }, + "allowedTopologies": { + "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "mountOptions": { + "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", + "items": { + "type": "string" + }, + "type": "array" + }, + "parameters": { + "additionalProperties": { + "type": "string" + }, + "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", + "type": "object" + }, + "provisioner": { + "description": "Provisioner indicates the type of the provisioner.", + "type": "string" + }, + "reclaimPolicy": { + "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", + "type": "string" + }, + "volumeBindingMode": { + "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", + "type": "string" + } + }, + "required": [ + "provisioner" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + ] + }, + "io.k8s.api.storage.v1.StorageClassList": { + "description": "StorageClassList is a collection of storage classes.", + "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" + }, + "items": { + "description": "Items is the list of StorageClasses", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "StorageClassList", + "version": "v1" + } + ] + }, + "io.k8s.api.storage.v1.TokenRequest": { + "description": "TokenRequest contains parameters of a service account token.", + "properties": { + "audience": { + "description": "Audience is the intended audience of the token in \"TokenRequestSpec\". It will default to the audiences of kube apiserver.", + "type": "string" + }, + "expirationSeconds": { + "description": "ExpirationSeconds is the duration of validity of the token in \"TokenRequestSpec\". It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\".", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "audience" + ], + "type": "object" + }, + "io.k8s.api.storage.v1.VolumeAttachment": { + "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSpec", + "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentStatus", + "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + ] + }, + "io.k8s.api.storage.v1.VolumeAttachmentList": { + "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", + "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" + }, + "items": { + "description": "Items is the list of VolumeAttachments", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "VolumeAttachmentList", + "version": "v1" + } + ] + }, + "io.k8s.api.storage.v1.VolumeAttachmentSource": { + "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", + "properties": { + "inlineVolumeSpec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", + "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." + }, + "persistentVolumeName": { + "description": "Name of the persistent volume to attach.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.storage.v1.VolumeAttachmentSpec": { + "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", + "properties": { + "attacher": { + "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", + "type": "string" + }, + "nodeName": { + "description": "The node that the volume should be attached to.", + "type": "string" + }, + "source": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSource", + "description": "Source represents the volume that should be attached." + } + }, + "required": [ + "attacher", + "source", + "nodeName" + ], + "type": "object" + }, + "io.k8s.api.storage.v1.VolumeAttachmentStatus": { + "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", + "properties": { + "attachError": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", + "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." + }, + "attached": { + "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "type": "boolean" + }, + "attachmentMetadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "type": "object" + }, + "detachError": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", + "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." + } + }, + "required": [ + "attached" + ], + "type": "object" + }, + "io.k8s.api.storage.v1.VolumeError": { + "description": "VolumeError captures an error encountered during a volume operation.", + "properties": { + "message": { + "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", + "type": "string" + }, + "time": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Time the error was encountered." + } + }, + "type": "object" + }, + "io.k8s.api.storage.v1.VolumeNodeResources": { + "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", + "properties": { + "count": { + "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.api.storage.v1beta1.CSIDriver": { + "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. CSI drivers do not need to create the CSIDriver object directly. Instead they may use the cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically creates a CSIDriver object representing the driver. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverSpec", + "description": "Specification of the CSI Driver." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.storage.v1beta1.CSIDriverList": { + "description": "CSIDriverList is a collection of CSIDriver objects.", + "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" + }, + "items": { + "description": "items is the list of CSIDriver", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "CSIDriverList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.storage.v1beta1.CSIDriverSpec": { + "description": "CSIDriverSpec is the specification of a CSIDriver.", + "properties": { + "attachRequired": { + "description": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", + "type": "boolean" + }, + "fsGroupPolicy": { + "description": "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.", + "type": "string" + }, + "podInfoOnMount": { + "description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", + "type": "boolean" + }, + "requiresRepublish": { + "description": "RequiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\n\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.\n\nThis is an alpha feature and only available when the CSIServiceAccountToken feature is enabled.", + "type": "boolean" + }, + "storageCapacity": { + "description": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.", + "type": "boolean" + }, + "tokenRequests": { + "description": "TokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \"csi.storage.k8s.io/serviceAccount.tokens\": {\n \"\u003caudience\u003e\": {\n \"token\": \u003ctoken\u003e,\n \"expirationTimestamp\": \u003cexpiration timestamp in RFC3339\u003e,\n },\n ...\n}\n\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.\n\nThis is an alpha feature and only available when the CSIServiceAccountToken feature is enabled.", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.TokenRequest" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "volumeLifecycleModes": { + "description": "VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.api.storage.v1beta1.CSINode": { + "description": "DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode. See the release notes for more information. CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "metadata.name must be the Kubernetes node name." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeSpec", + "description": "spec is the specification of CSINode" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.storage.v1beta1.CSINodeDriver": { + "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", + "properties": { + "allocatable": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeNodeResources", + "description": "allocatable represents the volume resources of a node that are available for scheduling." + }, + "name": { + "description": "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", + "type": "string" + }, + "nodeID": { + "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", + "type": "string" + }, + "topologyKeys": { + "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name", + "nodeID" + ], + "type": "object" + }, + "io.k8s.api.storage.v1beta1.CSINodeList": { + "description": "CSINodeList is a collection of CSINode objects.", + "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" + }, + "items": { + "description": "items is the list of CSINode", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "CSINodeList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.storage.v1beta1.CSINodeSpec": { + "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", + "properties": { + "drivers": { + "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeDriver" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "required": [ + "drivers" + ], + "type": "object" + }, + "io.k8s.api.storage.v1beta1.StorageClass": { + "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", + "properties": { + "allowVolumeExpansion": { + "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", + "type": "boolean" + }, + "allowedTopologies": { + "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "mountOptions": { + "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", + "items": { + "type": "string" + }, + "type": "array" + }, + "parameters": { + "additionalProperties": { + "type": "string" + }, + "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", + "type": "object" + }, + "provisioner": { + "description": "Provisioner indicates the type of the provisioner.", + "type": "string" + }, + "reclaimPolicy": { + "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", + "type": "string" + }, + "volumeBindingMode": { + "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", + "type": "string" + } + }, + "required": [ + "provisioner" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.storage.v1beta1.StorageClassList": { + "description": "StorageClassList is a collection of storage classes.", + "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" + }, + "items": { + "description": "Items is the list of StorageClasses", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "StorageClassList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.storage.v1beta1.TokenRequest": { + "description": "TokenRequest contains parameters of a service account token.", + "properties": { + "audience": { + "description": "Audience is the intended audience of the token in \"TokenRequestSpec\". It will default to the audiences of kube apiserver.", + "type": "string" + }, + "expirationSeconds": { + "description": "ExpirationSeconds is the duration of validity of the token in \"TokenRequestSpec\". It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\"", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "audience" + ], + "type": "object" + }, + "io.k8s.api.storage.v1beta1.VolumeAttachment": { + "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSpec", + "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentStatus", + "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.storage.v1beta1.VolumeAttachmentList": { + "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", + "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" + }, + "items": { + "description": "Items is the list of VolumeAttachments", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "VolumeAttachmentList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.storage.v1beta1.VolumeAttachmentSource": { + "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", + "properties": { + "inlineVolumeSpec": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", + "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature." + }, + "persistentVolumeName": { + "description": "Name of the persistent volume to attach.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.storage.v1beta1.VolumeAttachmentSpec": { + "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", + "properties": { + "attacher": { + "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", + "type": "string" + }, + "nodeName": { + "description": "The node that the volume should be attached to.", + "type": "string" + }, + "source": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSource", + "description": "Source represents the volume that should be attached." + } + }, + "required": [ + "attacher", + "source", + "nodeName" + ], + "type": "object" + }, + "io.k8s.api.storage.v1beta1.VolumeAttachmentStatus": { + "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", + "properties": { + "attachError": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", + "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." + }, + "attached": { + "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "type": "boolean" + }, + "attachmentMetadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "type": "object" + }, + "detachError": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError", + "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." + } + }, + "required": [ + "attached" + ], + "type": "object" + }, + "io.k8s.api.storage.v1beta1.VolumeError": { + "description": "VolumeError captures an error encountered during a volume operation.", + "properties": { + "message": { + "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", + "type": "string" + }, + "time": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Time the error was encountered." + } + }, + "type": "object" + }, + "io.k8s.api.storage.v1beta1.VolumeNodeResources": { + "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", + "properties": { + "count": { + "description": "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is nil, then the supported number of volumes on this node is unbounded.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition": { + "description": "CustomResourceColumnDefinition specifies a column for server side printing.", + "properties": { + "description": { + "description": "description is a human readable description of this column.", + "type": "string" + }, + "format": { + "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", + "type": "string" + }, + "jsonPath": { + "description": "jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", + "type": "string" + }, + "name": { + "description": "name is a human readable name for the column.", + "type": "string" + }, + "priority": { + "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", + "type": "string" + } + }, + "required": [ + "name", + "type", + "jsonPath" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion": { + "description": "CustomResourceConversion describes how to convert different versions of a CR.", + "properties": { + "strategy": { + "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.", + "type": "string" + }, + "webhook": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion", + "description": "webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`." + } + }, + "required": [ + "strategy" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition": { + "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec", + "description": "spec describes how the user wants the resources to appear" + }, + "status": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus", + "description": "status indicates the actual state of the CustomResourceDefinition" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + ] + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition": { + "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastTransitionTime last time the condition transitioned from one status to another." + }, + "message": { + "description": "message is a human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "status is the status of the condition. Can be True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList": { + "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", + "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" + }, + "items": { + "description": "items list individual CustomResourceDefinition objects", + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinitionList", + "version": "v1" + } + ] + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames": { + "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", + "properties": { + "categories": { + "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", + "type": "string" + }, + "listKind": { + "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", + "type": "string" + }, + "plural": { + "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", + "type": "string" + }, + "shortNames": { + "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", + "items": { + "type": "string" + }, + "type": "array" + }, + "singular": { + "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", + "type": "string" + } + }, + "required": [ + "plural", + "kind" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec": { + "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", + "properties": { + "conversion": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion", + "description": "conversion defines conversion settings for the CRD." + }, + "group": { + "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", + "type": "string" + }, + "names": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", + "description": "names specify the resource and kind names for the custom resource." + }, + "preserveUnknownFields": { + "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting `x-preserve-unknown-fields` to true in `spec.versions[*].schema.openAPIV3Schema`. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", + "type": "boolean" + }, + "scope": { + "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.", + "type": "string" + }, + "versions": { + "description": "versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion" + }, + "type": "array" + } + }, + "required": [ + "group", + "names", + "scope", + "versions" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus": { + "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", + "properties": { + "acceptedNames": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", + "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." + }, + "conditions": { + "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition" + }, + "type": "array" + }, + "storedVersions": { + "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion": { + "description": "CustomResourceDefinitionVersion describes a version for CRD.", + "properties": { + "additionalPrinterColumns": { + "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used.", + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition" + }, + "type": "array" + }, + "deprecated": { + "description": "deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.", + "type": "boolean" + }, + "deprecationWarning": { + "description": "deprecationWarning overrides the default warning returned to API clients. May only be set when `deprecated` is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists.", + "type": "string" + }, + "name": { + "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", + "type": "string" + }, + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation", + "description": "schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource." + }, + "served": { + "description": "served is a flag enabling/disabling this version from being served via REST APIs", + "type": "boolean" + }, + "storage": { + "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", + "type": "boolean" + }, + "subresources": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources", + "description": "subresources specify what subresources this version of the defined custom resource have." + } + }, + "required": [ + "name", + "served", + "storage" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale": { + "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", + "properties": { + "labelSelectorPath": { + "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", + "type": "string" + }, + "specReplicasPath": { + "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", + "type": "string" + }, + "statusReplicasPath": { + "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", + "type": "string" + } + }, + "required": [ + "specReplicasPath", + "statusReplicasPath" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus": { + "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources": { + "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", + "properties": { + "scale": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale", + "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." + }, + "status": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus", + "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation": { + "description": "CustomResourceValidation is a list of validation methods for CustomResources.", + "properties": { + "openAPIV3Schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps", + "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation": { + "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON": { + "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps": { + "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", + "properties": { + "$ref": { + "type": "string" + }, + "$schema": { + "type": "string" + }, + "additionalItems": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" + }, + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" + }, + "allOf": { + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" + }, + "type": "array" + }, + "anyOf": { + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" + }, + "type": "array" + }, + "default": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON", + "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false." + }, + "definitions": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" + }, + "type": "object" + }, + "dependencies": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray" + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "enum": { + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" + }, + "type": "array" + }, + "example": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" + }, + "exclusiveMaximum": { + "type": "boolean" + }, + "exclusiveMinimum": { + "type": "boolean" + }, + "externalDocs": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation" + }, + "format": { + "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", + "type": "string" + }, + "id": { + "type": "string" + }, + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray" + }, + "maxItems": { + "format": "int64", + "type": "integer" + }, + "maxLength": { + "format": "int64", + "type": "integer" + }, + "maxProperties": { + "format": "int64", + "type": "integer" + }, + "maximum": { + "format": "double", + "type": "number" + }, + "minItems": { + "format": "int64", + "type": "integer" + }, + "minLength": { + "format": "int64", + "type": "integer" + }, + "minProperties": { + "format": "int64", + "type": "integer" + }, + "minimum": { + "format": "double", + "type": "number" + }, + "multipleOf": { + "format": "double", + "type": "number" + }, + "not": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" + }, + "nullable": { + "type": "boolean" + }, + "oneOf": { + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "patternProperties": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" + }, + "type": "object" + }, + "properties": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "uniqueItems": { + "type": "boolean" + }, + "x-kubernetes-embedded-resource": { + "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", + "type": "boolean" + }, + "x-kubernetes-int-or-string": { + "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", + "type": "boolean" + }, + "x-kubernetes-list-map-keys": { + "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", + "items": { + "type": "string" + }, + "type": "array" + }, + "x-kubernetes-list-type": { + "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", + "type": "string" + }, + "x-kubernetes-map-type": { + "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", + "type": "string" + }, + "x-kubernetes-preserve-unknown-fields": { + "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray": { + "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool": { + "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray": { + "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference": { + "description": "ServiceReference holds a reference to Service.legacy.k8s.io", + "properties": { + "name": { + "description": "name is the name of the service. Required", + "type": "string" + }, + "namespace": { + "description": "namespace is the namespace of the service. Required", + "type": "string" + }, + "path": { + "description": "path is an optional URL path at which the webhook will be contacted.", + "type": "string" + }, + "port": { + "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "namespace", + "name" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig": { + "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", + "properties": { + "caBundle": { + "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", + "format": "byte", + "type": "string" + }, + "service": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference", + "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." + }, + "url": { + "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion": { + "description": "WebhookConversion describes how to call a conversion webhook", + "properties": { + "clientConfig": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig", + "description": "clientConfig is the instructions for how to call the webhook if strategy is `Webhook`." + }, + "conversionReviewVersions": { + "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "conversionReviewVersions" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition": { + "description": "CustomResourceColumnDefinition specifies a column for server side printing.", + "properties": { + "JSONPath": { + "description": "JSONPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", + "type": "string" + }, + "description": { + "description": "description is a human readable description of this column.", + "type": "string" + }, + "format": { + "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", + "type": "string" + }, + "name": { + "description": "name is a human readable name for the column.", + "type": "string" + }, + "priority": { + "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", + "type": "string" + } + }, + "required": [ + "name", + "type", + "JSONPath" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion": { + "description": "CustomResourceConversion describes how to convert different versions of a CR.", + "properties": { + "conversionReviewVersions": { + "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail. Defaults to `[\"v1beta1\"]`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "strategy": { + "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhookClientConfig to be set.", + "type": "string" + }, + "webhookClientConfig": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig", + "description": "webhookClientConfig is the instructions for how to call the webhook if strategy is `Webhook`. Required when `strategy` is set to `Webhook`." + } + }, + "required": [ + "strategy" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition": { + "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e. Deprecated in v1.16, planned for removal in v1.22. Use apiextensions.k8s.io/v1 CustomResourceDefinition instead.", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec", + "description": "spec describes how the user wants the resources to appear" + }, + "status": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus", + "description": "status indicates the actual state of the CustomResourceDefinition" + } + }, + "required": [ + "spec" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + ] + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition": { + "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastTransitionTime last time the condition transitioned from one status to another." + }, + "message": { + "description": "message is a human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "status is the status of the condition. Can be True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList": { + "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", + "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" + }, + "items": { + "description": "items list individual CustomResourceDefinition objects", + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinitionList", + "version": "v1beta1" + } + ] + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames": { + "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", + "properties": { + "categories": { + "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", + "type": "string" + }, + "listKind": { + "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", + "type": "string" + }, + "plural": { + "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/.../\u003cplural\u003e`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`). Must be all lowercase.", + "type": "string" + }, + "shortNames": { + "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get \u003cshortname\u003e`. It must be all lowercase.", + "items": { + "type": "string" + }, + "type": "array" + }, + "singular": { + "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", + "type": "string" + } + }, + "required": [ + "plural", + "kind" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec": { + "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", + "properties": { + "additionalPrinterColumns": { + "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If present, this field configures columns for all versions. Top-level and per-version columns are mutually exclusive. If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" + }, + "type": "array" + }, + "conversion": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion", + "description": "conversion defines conversion settings for the CRD." + }, + "group": { + "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/...`. Must match the name of the CustomResourceDefinition (in the form `\u003cnames.plural\u003e.\u003cgroup\u003e`).", + "type": "string" + }, + "names": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", + "description": "names specify the resource and kind names for the custom resource." + }, + "preserveUnknownFields": { + "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. If false, schemas must be defined for all versions. Defaults to true in v1beta for backwards compatibility. Deprecated: will be required to be false in v1. Preservation of unknown fields can be specified in the validation schema using the `x-kubernetes-preserve-unknown-fields: true` extension. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", + "type": "boolean" + }, + "scope": { + "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`.", + "type": "string" + }, + "subresources": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", + "description": "subresources specify what subresources the defined custom resource has. If present, this field configures subresources for all versions. Top-level and per-version subresources are mutually exclusive." + }, + "validation": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", + "description": "validation describes the schema used for validation and pruning of the custom resource. If present, this validation schema is used to validate all versions. Top-level and per-version schemas are mutually exclusive." + }, + "version": { + "description": "version is the API version of the defined custom resource. The custom resources are served under `/apis/\u003cgroup\u003e/\u003cversion\u003e/...`. Must match the name of the first item in the `versions` list if `version` and `versions` are both specified. Optional if `versions` is specified. Deprecated: use `versions` instead.", + "type": "string" + }, + "versions": { + "description": "versions is the list of all API versions of the defined custom resource. Optional if `version` is specified. The name of the first item in the `versions` list must match the `version` field if `version` and `versions` are both specified. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion" + }, + "type": "array" + } + }, + "required": [ + "group", + "names", + "scope" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus": { + "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", + "properties": { + "acceptedNames": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames", + "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." + }, + "conditions": { + "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition" + }, + "type": "array" + }, + "storedVersions": { + "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion": { + "description": "CustomResourceDefinitionVersion describes a version for CRD.", + "properties": { + "additionalPrinterColumns": { + "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. Top-level and per-version columns are mutually exclusive. Per-version columns must not all be set to identical values (top-level columns should be used instead). If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition" + }, + "type": "array" + }, + "deprecated": { + "description": "deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.", + "type": "boolean" + }, + "deprecationWarning": { + "description": "deprecationWarning overrides the default warning returned to API clients. May only be set when `deprecated` is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists.", + "type": "string" + }, + "name": { + "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/\u003cgroup\u003e/\u003cversion\u003e/...` if `served` is true.", + "type": "string" + }, + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation", + "description": "schema describes the schema used for validation and pruning of this version of the custom resource. Top-level and per-version schemas are mutually exclusive. Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)." + }, + "served": { + "description": "served is a flag enabling/disabling this version from being served via REST APIs", + "type": "boolean" + }, + "storage": { + "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", + "type": "boolean" + }, + "subresources": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources", + "description": "subresources specify what subresources this version of the defined custom resource have. Top-level and per-version subresources are mutually exclusive. Per-version subresources must not all be set to identical values (top-level subresources should be used instead)." + } + }, + "required": [ + "name", + "served", + "storage" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale": { + "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", + "properties": { + "labelSelectorPath": { + "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", + "type": "string" + }, + "specReplicasPath": { + "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", + "type": "string" + }, + "statusReplicasPath": { + "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", + "type": "string" + } + }, + "required": [ + "specReplicasPath", + "statusReplicasPath" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus": { + "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources": { + "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", + "properties": { + "scale": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale", + "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." + }, + "status": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus", + "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation": { + "description": "CustomResourceValidation is a list of validation methods for CustomResources.", + "properties": { + "openAPIV3Schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps", + "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation": { + "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON": { + "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps": { + "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", + "properties": { + "$ref": { + "type": "string" + }, + "$schema": { + "type": "string" + }, + "additionalItems": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" + }, + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" + }, + "allOf": { + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" + }, + "type": "array" + }, + "anyOf": { + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" + }, + "type": "array" + }, + "default": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON", + "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. CustomResourceDefinitions with defaults must be created using the v1 (or newer) CustomResourceDefinition API." + }, + "definitions": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" + }, + "type": "object" + }, + "dependencies": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray" + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "enum": { + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" + }, + "type": "array" + }, + "example": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" + }, + "exclusiveMaximum": { + "type": "boolean" + }, + "exclusiveMinimum": { + "type": "boolean" + }, + "externalDocs": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation" + }, + "format": { + "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", + "type": "string" + }, + "id": { + "type": "string" + }, + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray" + }, + "maxItems": { + "format": "int64", + "type": "integer" + }, + "maxLength": { + "format": "int64", + "type": "integer" + }, + "maxProperties": { + "format": "int64", + "type": "integer" + }, + "maximum": { + "format": "double", + "type": "number" + }, + "minItems": { + "format": "int64", + "type": "integer" + }, + "minLength": { + "format": "int64", + "type": "integer" + }, + "minProperties": { + "format": "int64", + "type": "integer" + }, + "minimum": { + "format": "double", + "type": "number" + }, + "multipleOf": { + "format": "double", + "type": "number" + }, + "not": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" + }, + "nullable": { + "type": "boolean" + }, + "oneOf": { + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" + }, + "type": "array" + }, + "pattern": { + "type": "string" + }, + "patternProperties": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" + }, + "type": "object" + }, + "properties": { + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" + }, + "type": "object" + }, + "required": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "uniqueItems": { + "type": "boolean" + }, + "x-kubernetes-embedded-resource": { + "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", + "type": "boolean" + }, + "x-kubernetes-int-or-string": { + "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", + "type": "boolean" + }, + "x-kubernetes-list-map-keys": { + "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", + "items": { + "type": "string" + }, + "type": "array" + }, + "x-kubernetes-list-type": { + "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", + "type": "string" + }, + "x-kubernetes-map-type": { + "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", + "type": "string" + }, + "x-kubernetes-preserve-unknown-fields": { + "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", + "type": "boolean" + } + }, + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray": { + "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool": { + "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray": { + "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference": { + "description": "ServiceReference holds a reference to Service.legacy.k8s.io", + "properties": { + "name": { + "description": "name is the name of the service. Required", + "type": "string" + }, + "namespace": { + "description": "namespace is the namespace of the service. Required", + "type": "string" + }, + "path": { + "description": "path is an optional URL path at which the webhook will be contacted.", + "type": "string" + }, + "port": { + "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "namespace", + "name" + ], + "type": "object" + }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig": { + "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", + "properties": { + "caBundle": { + "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", + "format": "byte", + "type": "string" + }, + "service": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference", + "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." + }, + "url": { + "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.apimachinery.pkg.api.resource.Quantity": { + "description": "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n (Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\u003cdigit\u003e ::= 0 | 1 | ... | 9 \u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e \u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e \u003csign\u003e ::= \"+\" | \"-\" \u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e \u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e \u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", + "type": "string" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup": { + "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", + "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" + }, + "name": { + "description": "name is the name of the group.", + "type": "string" + }, + "preferredVersion": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery", + "description": "preferredVersion is the version preferred by the API server, which probably is the storage version." + }, + "serverAddressByClientCIDRs": { + "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" + }, + "type": "array" + }, + "versions": { + "description": "versions are the versions supported in this group.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" + }, + "type": "array" + } + }, + "required": [ + "name", + "versions" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "APIGroup", + "version": "v1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList": { + "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", + "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" + }, + "groups": { + "description": "groups is a list of APIGroup.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + }, + "type": "array" + }, + "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" + } + }, + "required": [ + "groups" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "APIGroupList", + "version": "v1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": { + "description": "APIResource specifies the name of a resource and whether it is namespaced.", + "properties": { + "categories": { + "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')", + "items": { + "type": "string" + }, + "type": "array" + }, + "group": { + "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".", + "type": "string" + }, + "kind": { + "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')", + "type": "string" + }, + "name": { + "description": "name is the plural name of the resource.", + "type": "string" + }, + "namespaced": { + "description": "namespaced indicates if a resource is namespaced or not.", + "type": "boolean" + }, + "shortNames": { + "description": "shortNames is a list of suggested short names of the resource.", + "items": { + "type": "string" + }, + "type": "array" + }, + "singularName": { + "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", + "type": "string" + }, + "storageVersionHash": { + "description": "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.", + "type": "string" + }, + "verbs": { + "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)", + "items": { + "type": "string" + }, + "type": "array" + }, + "version": { + "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".", + "type": "string" + } + }, + "required": [ + "name", + "singularName", + "namespaced", + "kind", + "verbs" + ], + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList": { + "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", + "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" + }, + "groupVersion": { + "description": "groupVersion is the group and version this APIResourceList is for.", + "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" + }, + "resources": { + "description": "resources contains the name of the resources and if they are namespaced.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" + }, + "type": "array" + } + }, + "required": [ + "groupVersion", + "resources" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "APIResourceList", + "version": "v1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions": { + "description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", + "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" + }, + "serverAddressByClientCIDRs": { + "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" + }, + "type": "array" + }, + "versions": { + "description": "versions are the api versions that are available.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "versions", + "serverAddressByClientCIDRs" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "APIVersions", + "version": "v1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Condition": { + "description": "Condition contains details for one aspect of the current state of this API Resource.", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable." + }, + "message": { + "description": "message is a human readable message indicating details about the transition. This may be an empty string.", + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.", + "format": "int64", + "type": "integer" + }, + "reason": { + "description": "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.", + "type": "string" + }, + "status": { + "description": "status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "type of condition in CamelCase or in foo.example.com/CamelCase.", + "type": "string" + } + }, + "required": [ + "type", + "status", + "lastTransitionTime", + "reason", + "message" + ], + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions": { + "description": "DeleteOptions may be provided when deleting an API object.", + "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" + }, + "dryRun": { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "items": { + "type": "string" + }, + "type": "array" + }, + "gracePeriodSeconds": { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "format": "int64", + "type": "integer" + }, + "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" + }, + "orphanDependents": { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "type": "boolean" + }, + "preconditions": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions", + "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." + }, + "propagationPolicy": { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "admission.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "admission.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "admissionregistration.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "admissionregistration.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "apiextensions.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "apiextensions.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "apiregistration.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "apiregistration.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "apps", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "apps", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "apps", + "kind": "DeleteOptions", + "version": "v1beta2" + }, + { + "group": "authentication.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "authentication.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "authorization.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "authorization.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "autoscaling", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "autoscaling", + "kind": "DeleteOptions", + "version": "v2beta1" + }, + { + "group": "autoscaling", + "kind": "DeleteOptions", + "version": "v2beta2" + }, + { + "group": "batch", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "batch", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "batch", + "kind": "DeleteOptions", + "version": "v2alpha1" + }, + { + "group": "certificates.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "certificates.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "coordination.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "coordination.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "discovery.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "discovery.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "events.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "events.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "extensions", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "imagepolicy.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "internal.apiserver.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "networking.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "networking.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "node.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "node.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "node.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "policy", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "scheduling.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "scheduling.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "scheduling.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "storage.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "storage.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "storage.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": { + "description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:\u003cname\u003e', where \u003cname\u003e is the name of a field in a struct, or key in a map 'v:\u003cvalue\u003e', where \u003cvalue\u003e is the exact json formatted value of a list item 'i:\u003cindex\u003e', where \u003cindex\u003e is position of a item in a list 'k:\u003ckeys\u003e', where \u003ckeys\u003e is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff", + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery": { + "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", + "properties": { + "groupVersion": { + "description": "groupVersion specifies the API group and version in the form \"group/version\"", + "type": "string" + }, + "version": { + "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.", + "type": "string" + } + }, + "required": [ + "groupVersion", + "version" + ], + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.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.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" + }, + "type": "array" + }, + "matchLabels": { + "additionalProperties": { + "type": "string" + }, + "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" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { + "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "properties": { + "key": { + "description": "key is the label key that the selector applies to.", + "type": "string", + "x-kubernetes-patch-merge-key": "key", + "x-kubernetes-patch-strategy": "merge" + }, + "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.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "key", + "operator" + ], + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": { + "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", + "properties": { + "continue": { + "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", + "type": "string" + }, + "remainingItemCount": { + "description": "remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.", + "format": "int64", + "type": "integer" + }, + "resourceVersion": { + "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", + "type": "string" + }, + "selfLink": { + "description": "selfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.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": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1", + "description": "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type." + }, + "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" + }, + "time": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'" + } + }, + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": { + "description": "MicroTime is version of Time with microsecond level precision.", + "format": "date-time", + "type": "string" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { + "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "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: http://kubernetes.io/docs/user-guide/annotations", + "type": "object" + }, + "clusterName": { + "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", + "type": "string" + }, + "creationTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "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" + }, + "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.", + "format": "int64", + "type": "integer" + }, + "deletionTimestamp": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "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" + }, + "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.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-patch-strategy": "merge" + }, + "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 NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\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.", + "format": "int64", + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "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: http://kubernetes.io/docs/user-guide/labels", + "type": "object" + }, + "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.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry" + }, + "type": "array" + }, + "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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/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.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "uid", + "x-kubernetes-patch-strategy": "merge" + }, + "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": "SelfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", + "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: http://kubernetes.io/docs/user-guide/identifiers#uids", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.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.", + "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. 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: http://kubernetes.io/docs/user-guide/identifiers#names", + "type": "string" + }, + "uid": { + "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", + "type": "string" + } + }, + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ], + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Patch": { + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions": { + "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", + "properties": { + "resourceVersion": { + "description": "Specifies the target ResourceVersion", + "type": "string" + }, + "uid": { + "description": "Specifies the target UID.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR": { + "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", + "properties": { + "clientCIDR": { + "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.", + "type": "string" + }, + "serverAddress": { + "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", + "type": "string" + } + }, + "required": [ + "clientCIDR", + "serverAddress" + ], + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Status": { + "description": "Status is a return value for calls that don't return other objects.", + "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" + }, + "code": { + "description": "Suggested HTTP return code for this status, 0 if not set.", + "format": "int32", + "type": "integer" + }, + "details": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails", + "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." + }, + "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" + }, + "message": { + "description": "A human-readable description of the status of this operation.", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + }, + "reason": { + "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", + "type": "string" + }, + "status": { + "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Status", + "version": "v1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause": { + "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", + "properties": { + "field": { + "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", + "type": "string" + }, + "message": { + "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", + "type": "string" + }, + "reason": { + "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails": { + "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", + "properties": { + "causes": { + "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" + }, + "type": "array" + }, + "group": { + "description": "The group attribute of the resource associated with the status StatusReason.", + "type": "string" + }, + "kind": { + "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "name": { + "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", + "type": "string" + }, + "retryAfterSeconds": { + "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", + "format": "int32", + "type": "integer" + }, + "uid": { + "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { + "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", + "format": "date-time", + "type": "string" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent": { + "description": "Event represents a single event to a watched resource.", + "properties": { + "object": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", + "description": "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context." + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "object" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "admission.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "admission.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "admissionregistration.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "admissionregistration.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "apiextensions.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "apiextensions.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "apiregistration.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "apiregistration.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "apps", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "apps", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "apps", + "kind": "WatchEvent", + "version": "v1beta2" + }, + { + "group": "authentication.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "authentication.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "authorization.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "authorization.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "autoscaling", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "autoscaling", + "kind": "WatchEvent", + "version": "v2beta1" + }, + { + "group": "autoscaling", + "kind": "WatchEvent", + "version": "v2beta2" + }, + { + "group": "batch", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "batch", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "batch", + "kind": "WatchEvent", + "version": "v2alpha1" + }, + { + "group": "certificates.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "certificates.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "coordination.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "coordination.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "discovery.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "discovery.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "events.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "events.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "extensions", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "imagepolicy.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "internal.apiserver.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "networking.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "networking.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "node.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "node.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "node.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "policy", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "scheduling.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "scheduling.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "scheduling.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "storage.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "storage.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "storage.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + } + ] + }, + "io.k8s.apimachinery.pkg.runtime.RawExtension": { + "description": "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.Object `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// External package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// On the wire, the JSON will look something like this: {\n\t\"kind\":\"MyAPIObject\",\n\t\"apiVersion\":\"v1\",\n\t\"myPlugin\": {\n\t\t\"kind\":\"PluginA\",\n\t\t\"aOption\":\"foo\",\n\t},\n}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)", + "type": "object" + }, + "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { + "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.", + "format": "int-or-string", + "type": "string" + }, + "io.k8s.apimachinery.pkg.version.Info": { + "description": "Info contains versioning information. how we'll want to distribute that information.", + "properties": { + "buildDate": { + "type": "string" + }, + "compiler": { + "type": "string" + }, + "gitCommit": { + "type": "string" + }, + "gitTreeState": { + "type": "string" + }, + "gitVersion": { + "type": "string" + }, + "goVersion": { + "type": "string" + }, + "major": { + "type": "string" + }, + "minor": { + "type": "string" + }, + "platform": { + "type": "string" + } + }, + "required": [ + "major", + "minor", + "gitVersion", + "gitCommit", + "gitTreeState", + "buildDate", + "goVersion", + "compiler", + "platform" + ], + "type": "object" + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService": { + "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec", + "description": "Spec contains information for locating and communicating with a server" + }, + "status": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus", + "description": "Status contains derived information about an API server" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + ] + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition": { + "description": "APIServiceCondition describes the state of an APIService at a particular point", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "message": { + "description": "Human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "Unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status is the status of the condition. Can be True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type is the type of the condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList": { + "description": "APIServiceList is a list of APIService objects.", + "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" + }, + "items": { + "items": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apiregistration.k8s.io", + "kind": "APIServiceList", + "version": "v1" + } + ] + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec": { + "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", + "properties": { + "caBundle": { + "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", + "format": "byte", + "type": "string", + "x-kubernetes-list-type": "atomic" + }, + "group": { + "description": "Group is the API group name this server hosts", + "type": "string" + }, + "groupPriorityMinimum": { + "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", + "format": "int32", + "type": "integer" + }, + "insecureSkipTLSVerify": { + "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", + "type": "boolean" + }, + "service": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference", + "description": "Service is a reference to the service for this API server. It must communicate on port 443. If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." + }, + "version": { + "description": "Version is the API version this server hosts. For example, \"v1\"", + "type": "string" + }, + "versionPriority": { + "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "groupPriorityMinimum", + "versionPriority" + ], + "type": "object" + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus": { + "description": "APIServiceStatus contains derived information about an API server", + "properties": { + "conditions": { + "description": "Current service state of apiService.", + "items": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object" + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference": { + "description": "ServiceReference holds a reference to Service.legacy.k8s.io", + "properties": { + "name": { + "description": "Name is the name of the service", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the service", + "type": "string" + }, + "port": { + "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService": { + "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec", + "description": "Spec contains information for locating and communicating with a server" + }, + "status": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus", + "description": "Status contains derived information about an API server" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + ] + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition": { + "description": "APIServiceCondition describes the state of an APIService at a particular point", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "message": { + "description": "Human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "Unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status is the status of the condition. Can be True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type is the type of the condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList": { + "description": "APIServiceList is a list of APIService objects.", + "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" + }, + "items": { + "items": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + }, + "type": "array" + }, + "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" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "apiregistration.k8s.io", + "kind": "APIServiceList", + "version": "v1beta1" + } + ] + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec": { + "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", + "properties": { + "caBundle": { + "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", + "format": "byte", + "type": "string", + "x-kubernetes-list-type": "atomic" + }, + "group": { + "description": "Group is the API group name this server hosts", + "type": "string" + }, + "groupPriorityMinimum": { + "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", + "format": "int32", + "type": "integer" + }, + "insecureSkipTLSVerify": { + "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", + "type": "boolean" + }, + "service": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference", + "description": "Service is a reference to the service for this API server. It must communicate on port 443. If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." + }, + "version": { + "description": "Version is the API version this server hosts. For example, \"v1\"", + "type": "string" + }, + "versionPriority": { + "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "groupPriorityMinimum", + "versionPriority" + ], + "type": "object" + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus": { + "description": "APIServiceStatus contains derived information about an API server", + "properties": { + "conditions": { + "description": "Current service state of apiService.", + "items": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object" + }, + "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference": { + "description": "ServiceReference holds a reference to Service.legacy.k8s.io", + "properties": { + "name": { + "description": "Name is the name of the service", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the service", + "type": "string" + }, + "port": { + "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "info": { + "title": "Kubernetes", + "version": "v1.20.4" + }, + "paths": { + "/.well-known/openid-configuration/": { + "get": { + "description": "get service account issuer OpenID configuration, also known as the 'OIDC discovery doc'", + "operationId": "getServiceAccountIssuerOpenIDConfiguration", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "WellKnown" + ] + } + }, + "/api/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available API versions", + "operationId": "getCoreAPIVersions", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core" + ] + } + }, + "/api/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getCoreV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ] + } + }, + "/api/v1/componentstatuses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list objects of kind ComponentStatus", + "operationId": "listCoreV1ComponentStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatusList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ComponentStatus", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/componentstatuses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ComponentStatus", + "operationId": "readCoreV1ComponentStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ComponentStatus", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ComponentStatus", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ] + }, + "/api/v1/configmaps": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ConfigMap", + "operationId": "listCoreV1ConfigMapForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/endpoints": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Endpoints", + "operationId": "listCoreV1EndpointsForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/events": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Event", + "operationId": "listCoreV1EventForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.EventList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/limitranges": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind LimitRange", + "operationId": "listCoreV1LimitRangeForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/namespaces": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Namespace", + "operationId": "listCoreV1Namespace", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Namespace", + "operationId": "createCoreV1Namespace", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/bindings": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Binding", + "operationId": "createCoreV1NamespacedBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Binding", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/configmaps": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ConfigMap", + "operationId": "deleteCoreV1CollectionNamespacedConfigMap", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ConfigMap", + "operationId": "listCoreV1NamespacedConfigMap", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ConfigMap", + "operationId": "createCoreV1NamespacedConfigMap", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/configmaps/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ConfigMap", + "operationId": "deleteCoreV1NamespacedConfigMap", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ConfigMap", + "operationId": "readCoreV1NamespacedConfigMap", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ConfigMap", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ConfigMap", + "operationId": "patchCoreV1NamespacedConfigMap", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ConfigMap", + "operationId": "replaceCoreV1NamespacedConfigMap", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/endpoints": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Endpoints", + "operationId": "deleteCoreV1CollectionNamespacedEndpoints", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Endpoints", + "operationId": "listCoreV1NamespacedEndpoints", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create Endpoints", + "operationId": "createCoreV1NamespacedEndpoints", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/endpoints/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete Endpoints", + "operationId": "deleteCoreV1NamespacedEndpoints", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Endpoints", + "operationId": "readCoreV1NamespacedEndpoints", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Endpoints", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Endpoints", + "operationId": "patchCoreV1NamespacedEndpoints", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Endpoints", + "operationId": "replaceCoreV1NamespacedEndpoints", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/events": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Event", + "operationId": "deleteCoreV1CollectionNamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Event", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Event", + "operationId": "listCoreV1NamespacedEvent", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.EventList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create an Event", + "operationId": "createCoreV1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Event", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/events/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete an Event", + "operationId": "deleteCoreV1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Event", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Event", + "operationId": "readCoreV1NamespacedEvent", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Event", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Event", + "operationId": "patchCoreV1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Event", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Event", + "operationId": "replaceCoreV1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Event", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/limitranges": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of LimitRange", + "operationId": "deleteCoreV1CollectionNamespacedLimitRange", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind LimitRange", + "operationId": "listCoreV1NamespacedLimitRange", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a LimitRange", + "operationId": "createCoreV1NamespacedLimitRange", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/limitranges/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a LimitRange", + "operationId": "deleteCoreV1NamespacedLimitRange", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified LimitRange", + "operationId": "readCoreV1NamespacedLimitRange", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the LimitRange", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified LimitRange", + "operationId": "patchCoreV1NamespacedLimitRange", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified LimitRange", + "operationId": "replaceCoreV1NamespacedLimitRange", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/persistentvolumeclaims": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of PersistentVolumeClaim", + "operationId": "deleteCoreV1CollectionNamespacedPersistentVolumeClaim", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind PersistentVolumeClaim", + "operationId": "listCoreV1NamespacedPersistentVolumeClaim", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a PersistentVolumeClaim", + "operationId": "createCoreV1NamespacedPersistentVolumeClaim", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a PersistentVolumeClaim", + "operationId": "deleteCoreV1NamespacedPersistentVolumeClaim", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified PersistentVolumeClaim", + "operationId": "readCoreV1NamespacedPersistentVolumeClaim", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the PersistentVolumeClaim", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified PersistentVolumeClaim", + "operationId": "patchCoreV1NamespacedPersistentVolumeClaim", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified PersistentVolumeClaim", + "operationId": "replaceCoreV1NamespacedPersistentVolumeClaim", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified PersistentVolumeClaim", + "operationId": "readCoreV1NamespacedPersistentVolumeClaimStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the PersistentVolumeClaim", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified PersistentVolumeClaim", + "operationId": "patchCoreV1NamespacedPersistentVolumeClaimStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified PersistentVolumeClaim", + "operationId": "replaceCoreV1NamespacedPersistentVolumeClaimStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/pods": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Pod", + "operationId": "deleteCoreV1CollectionNamespacedPod", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Pod", + "operationId": "listCoreV1NamespacedPod", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Pod", + "operationId": "createCoreV1NamespacedPod", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/pods/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a Pod", + "operationId": "deleteCoreV1NamespacedPod", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Pod", + "operationId": "readCoreV1NamespacedPod", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Pod", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Pod", + "operationId": "patchCoreV1NamespacedPod", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Pod", + "operationId": "replaceCoreV1NamespacedPod", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/pods/{name}/attach": { + "get": { + "consumes": [ + "*/*" + ], + "description": "connect GET requests to attach of Pod", + "operationId": "connectCoreV1GetNamespacedPodAttach", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodAttachOptions", + "version": "v1" + } + }, + "parameters": [ + { + "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", + "in": "query", + "name": "container", + "type": "string", + "uniqueItems": true + }, + { + "description": "name of the PodAttachOptions", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", + "in": "query", + "name": "stderr", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", + "in": "query", + "name": "stdin", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", + "in": "query", + "name": "stdout", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", + "in": "query", + "name": "tty", + "type": "boolean", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "connect POST requests to attach of Pod", + "operationId": "connectCoreV1PostNamespacedPodAttach", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodAttachOptions", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/pods/{name}/binding": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "name of the Binding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create binding of a Pod", + "operationId": "createCoreV1NamespacedPodBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Binding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Binding", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/pods/{name}/eviction": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "name of the Eviction", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create eviction of a Pod", + "operationId": "createCoreV1NamespacedPodEviction", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "Eviction", + "version": "v1beta1" + } + } + }, + "/api/v1/namespaces/{namespace}/pods/{name}/exec": { + "get": { + "consumes": [ + "*/*" + ], + "description": "connect GET requests to exec of Pod", + "operationId": "connectCoreV1GetNamespacedPodExec", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodExecOptions", + "version": "v1" + } + }, + "parameters": [ + { + "description": "Command is the remote command to execute. argv array. Not executed within a shell.", + "in": "query", + "name": "command", + "type": "string", + "uniqueItems": true + }, + { + "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", + "in": "query", + "name": "container", + "type": "string", + "uniqueItems": true + }, + { + "description": "name of the PodExecOptions", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "Redirect the standard error stream of the pod for this call. Defaults to true.", + "in": "query", + "name": "stderr", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", + "in": "query", + "name": "stdin", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Redirect the standard output stream of the pod for this call. Defaults to true.", + "in": "query", + "name": "stdout", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", + "in": "query", + "name": "tty", + "type": "boolean", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "connect POST requests to exec of Pod", + "operationId": "connectCoreV1PostNamespacedPodExec", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodExecOptions", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/pods/{name}/log": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read log of the specified Pod", + "operationId": "readCoreV1NamespacedPodLog", + "produces": [ + "text/plain", + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "parameters": [ + { + "description": "The container for which to stream logs. Defaults to only container if there is one container in the pod.", + "in": "query", + "name": "container", + "type": "string", + "uniqueItems": true + }, + { + "description": "Follow the log stream of the pod. Defaults to false.", + "in": "query", + "name": "follow", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).", + "in": "query", + "name": "insecureSkipTLSVerifyBackend", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", + "in": "query", + "name": "limitBytes", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Pod", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "Return previous terminated container logs. Defaults to false.", + "in": "query", + "name": "previous", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", + "in": "query", + "name": "sinceSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", + "in": "query", + "name": "tailLines", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", + "in": "query", + "name": "timestamps", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/namespaces/{namespace}/pods/{name}/portforward": { + "get": { + "consumes": [ + "*/*" + ], + "description": "connect GET requests to portforward of Pod", + "operationId": "connectCoreV1GetNamespacedPodPortforward", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodPortForwardOptions", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the PodPortForwardOptions", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "List of ports to forward Required when using WebSockets", + "in": "query", + "name": "ports", + "type": "integer", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "connect POST requests to portforward of Pod", + "operationId": "connectCoreV1PostNamespacedPodPortforward", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodPortForwardOptions", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/pods/{name}/proxy": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "connect DELETE requests to proxy of Pod", + "operationId": "connectCoreV1DeleteNamespacedPodProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "connect GET requests to proxy of Pod", + "operationId": "connectCoreV1GetNamespacedPodProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "head": { + "consumes": [ + "*/*" + ], + "description": "connect HEAD requests to proxy of Pod", + "operationId": "connectCoreV1HeadNamespacedPodProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "options": { + "consumes": [ + "*/*" + ], + "description": "connect OPTIONS requests to proxy of Pod", + "operationId": "connectCoreV1OptionsNamespacedPodProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the PodProxyOptions", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "Path is the URL path to use for the current proxy request to pod.", + "in": "query", + "name": "path", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "*/*" + ], + "description": "connect PATCH requests to proxy of Pod", + "operationId": "connectCoreV1PatchNamespacedPodProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "post": { + "consumes": [ + "*/*" + ], + "description": "connect POST requests to proxy of Pod", + "operationId": "connectCoreV1PostNamespacedPodProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "connect PUT requests to proxy of Pod", + "operationId": "connectCoreV1PutNamespacedPodProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "connect DELETE requests to proxy of Pod", + "operationId": "connectCoreV1DeleteNamespacedPodProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "connect GET requests to proxy of Pod", + "operationId": "connectCoreV1GetNamespacedPodProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "head": { + "consumes": [ + "*/*" + ], + "description": "connect HEAD requests to proxy of Pod", + "operationId": "connectCoreV1HeadNamespacedPodProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "options": { + "consumes": [ + "*/*" + ], + "description": "connect OPTIONS requests to proxy of Pod", + "operationId": "connectCoreV1OptionsNamespacedPodProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the PodProxyOptions", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "path to the resource", + "in": "path", + "name": "path", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "Path is the URL path to use for the current proxy request to pod.", + "in": "query", + "name": "path", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "*/*" + ], + "description": "connect PATCH requests to proxy of Pod", + "operationId": "connectCoreV1PatchNamespacedPodProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "post": { + "consumes": [ + "*/*" + ], + "description": "connect POST requests to proxy of Pod", + "operationId": "connectCoreV1PostNamespacedPodProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "connect PUT requests to proxy of Pod", + "operationId": "connectCoreV1PutNamespacedPodProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodProxyOptions", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/pods/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified Pod", + "operationId": "readCoreV1NamespacedPodStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Pod", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified Pod", + "operationId": "patchCoreV1NamespacedPodStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified Pod", + "operationId": "replaceCoreV1NamespacedPodStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/podtemplates": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of PodTemplate", + "operationId": "deleteCoreV1CollectionNamespacedPodTemplate", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind PodTemplate", + "operationId": "listCoreV1NamespacedPodTemplate", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a PodTemplate", + "operationId": "createCoreV1NamespacedPodTemplate", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/podtemplates/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a PodTemplate", + "operationId": "deleteCoreV1NamespacedPodTemplate", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified PodTemplate", + "operationId": "readCoreV1NamespacedPodTemplate", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the PodTemplate", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified PodTemplate", + "operationId": "patchCoreV1NamespacedPodTemplate", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified PodTemplate", + "operationId": "replaceCoreV1NamespacedPodTemplate", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/replicationcontrollers": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ReplicationController", + "operationId": "deleteCoreV1CollectionNamespacedReplicationController", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ReplicationController", + "operationId": "listCoreV1NamespacedReplicationController", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ReplicationController", + "operationId": "createCoreV1NamespacedReplicationController", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ReplicationController", + "operationId": "deleteCoreV1NamespacedReplicationController", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ReplicationController", + "operationId": "readCoreV1NamespacedReplicationController", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ReplicationController", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ReplicationController", + "operationId": "patchCoreV1NamespacedReplicationController", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ReplicationController", + "operationId": "replaceCoreV1NamespacedReplicationController", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read scale of the specified ReplicationController", + "operationId": "readCoreV1NamespacedReplicationControllerScale", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Scale", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update scale of the specified ReplicationController", + "operationId": "patchCoreV1NamespacedReplicationControllerScale", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace scale of the specified ReplicationController", + "operationId": "replaceCoreV1NamespacedReplicationControllerScale", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified ReplicationController", + "operationId": "readCoreV1NamespacedReplicationControllerStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ReplicationController", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified ReplicationController", + "operationId": "patchCoreV1NamespacedReplicationControllerStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified ReplicationController", + "operationId": "replaceCoreV1NamespacedReplicationControllerStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/resourcequotas": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ResourceQuota", + "operationId": "deleteCoreV1CollectionNamespacedResourceQuota", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceQuota", + "operationId": "listCoreV1NamespacedResourceQuota", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ResourceQuota", + "operationId": "createCoreV1NamespacedResourceQuota", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/resourcequotas/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ResourceQuota", + "operationId": "deleteCoreV1NamespacedResourceQuota", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ResourceQuota", + "operationId": "readCoreV1NamespacedResourceQuota", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ResourceQuota", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ResourceQuota", + "operationId": "patchCoreV1NamespacedResourceQuota", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ResourceQuota", + "operationId": "replaceCoreV1NamespacedResourceQuota", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/resourcequotas/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified ResourceQuota", + "operationId": "readCoreV1NamespacedResourceQuotaStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ResourceQuota", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified ResourceQuota", + "operationId": "patchCoreV1NamespacedResourceQuotaStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified ResourceQuota", + "operationId": "replaceCoreV1NamespacedResourceQuotaStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/secrets": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Secret", + "operationId": "deleteCoreV1CollectionNamespacedSecret", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Secret", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Secret", + "operationId": "listCoreV1NamespacedSecret", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Secret", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Secret", + "operationId": "createCoreV1NamespacedSecret", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Secret", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/secrets/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a Secret", + "operationId": "deleteCoreV1NamespacedSecret", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Secret", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Secret", + "operationId": "readCoreV1NamespacedSecret", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Secret", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Secret", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Secret", + "operationId": "patchCoreV1NamespacedSecret", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Secret", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Secret", + "operationId": "replaceCoreV1NamespacedSecret", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Secret", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/serviceaccounts": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ServiceAccount", + "operationId": "deleteCoreV1CollectionNamespacedServiceAccount", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ServiceAccount", + "operationId": "listCoreV1NamespacedServiceAccount", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ServiceAccount", + "operationId": "createCoreV1NamespacedServiceAccount", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/serviceaccounts/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ServiceAccount", + "operationId": "deleteCoreV1NamespacedServiceAccount", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ServiceAccount", + "operationId": "readCoreV1NamespacedServiceAccount", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ServiceAccount", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ServiceAccount", + "operationId": "patchCoreV1NamespacedServiceAccount", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ServiceAccount", + "operationId": "replaceCoreV1NamespacedServiceAccount", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/serviceaccounts/{name}/token": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "name of the TokenRequest", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create token of a ServiceAccount", + "operationId": "createCoreV1NamespacedServiceAccountToken", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequest" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequest" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequest" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authentication.k8s.io", + "kind": "TokenRequest", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/services": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Service", + "operationId": "listCoreV1NamespacedService", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Service", + "operationId": "createCoreV1NamespacedService", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/services/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a Service", + "operationId": "deleteCoreV1NamespacedService", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Service", + "operationId": "readCoreV1NamespacedService", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Service", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Service", + "operationId": "patchCoreV1NamespacedService", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Service", + "operationId": "replaceCoreV1NamespacedService", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/services/{name}/proxy": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "connect DELETE requests to proxy of Service", + "operationId": "connectCoreV1DeleteNamespacedServiceProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "connect GET requests to proxy of Service", + "operationId": "connectCoreV1GetNamespacedServiceProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "head": { + "consumes": [ + "*/*" + ], + "description": "connect HEAD requests to proxy of Service", + "operationId": "connectCoreV1HeadNamespacedServiceProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "options": { + "consumes": [ + "*/*" + ], + "description": "connect OPTIONS requests to proxy of Service", + "operationId": "connectCoreV1OptionsNamespacedServiceProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ServiceProxyOptions", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", + "in": "query", + "name": "path", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "*/*" + ], + "description": "connect PATCH requests to proxy of Service", + "operationId": "connectCoreV1PatchNamespacedServiceProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "post": { + "consumes": [ + "*/*" + ], + "description": "connect POST requests to proxy of Service", + "operationId": "connectCoreV1PostNamespacedServiceProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "connect PUT requests to proxy of Service", + "operationId": "connectCoreV1PutNamespacedServiceProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "connect DELETE requests to proxy of Service", + "operationId": "connectCoreV1DeleteNamespacedServiceProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "connect GET requests to proxy of Service", + "operationId": "connectCoreV1GetNamespacedServiceProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "head": { + "consumes": [ + "*/*" + ], + "description": "connect HEAD requests to proxy of Service", + "operationId": "connectCoreV1HeadNamespacedServiceProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "options": { + "consumes": [ + "*/*" + ], + "description": "connect OPTIONS requests to proxy of Service", + "operationId": "connectCoreV1OptionsNamespacedServiceProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ServiceProxyOptions", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "path to the resource", + "in": "path", + "name": "path", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", + "in": "query", + "name": "path", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "*/*" + ], + "description": "connect PATCH requests to proxy of Service", + "operationId": "connectCoreV1PatchNamespacedServiceProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "post": { + "consumes": [ + "*/*" + ], + "description": "connect POST requests to proxy of Service", + "operationId": "connectCoreV1PostNamespacedServiceProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "connect PUT requests to proxy of Service", + "operationId": "connectCoreV1PutNamespacedServiceProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceProxyOptions", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{namespace}/services/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified Service", + "operationId": "readCoreV1NamespacedServiceStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Service", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified Service", + "operationId": "patchCoreV1NamespacedServiceStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified Service", + "operationId": "replaceCoreV1NamespacedServiceStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a Namespace", + "operationId": "deleteCoreV1Namespace", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Namespace", + "operationId": "readCoreV1Namespace", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Namespace", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Namespace", + "operationId": "patchCoreV1Namespace", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Namespace", + "operationId": "replaceCoreV1Namespace", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{name}/finalize": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "name of the Namespace", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "put": { + "consumes": [ + "*/*" + ], + "description": "replace finalize of the specified Namespace", + "operationId": "replaceCoreV1NamespaceFinalize", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + } + }, + "/api/v1/namespaces/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified Namespace", + "operationId": "readCoreV1NamespaceStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Namespace", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified Namespace", + "operationId": "patchCoreV1NamespaceStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified Namespace", + "operationId": "replaceCoreV1NamespaceStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + } + }, + "/api/v1/nodes": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Node", + "operationId": "deleteCoreV1CollectionNode", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Node", + "operationId": "listCoreV1Node", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Node", + "operationId": "createCoreV1Node", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + } + }, + "/api/v1/nodes/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a Node", + "operationId": "deleteCoreV1Node", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Node", + "operationId": "readCoreV1Node", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Node", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Node", + "operationId": "patchCoreV1Node", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Node", + "operationId": "replaceCoreV1Node", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + } + }, + "/api/v1/nodes/{name}/proxy": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "connect DELETE requests to proxy of Node", + "operationId": "connectCoreV1DeleteNodeProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "connect GET requests to proxy of Node", + "operationId": "connectCoreV1GetNodeProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "head": { + "consumes": [ + "*/*" + ], + "description": "connect HEAD requests to proxy of Node", + "operationId": "connectCoreV1HeadNodeProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "options": { + "consumes": [ + "*/*" + ], + "description": "connect OPTIONS requests to proxy of Node", + "operationId": "connectCoreV1OptionsNodeProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the NodeProxyOptions", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "Path is the URL path to use for the current proxy request to node.", + "in": "query", + "name": "path", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "*/*" + ], + "description": "connect PATCH requests to proxy of Node", + "operationId": "connectCoreV1PatchNodeProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "post": { + "consumes": [ + "*/*" + ], + "description": "connect POST requests to proxy of Node", + "operationId": "connectCoreV1PostNodeProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "connect PUT requests to proxy of Node", + "operationId": "connectCoreV1PutNodeProxy", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + } + }, + "/api/v1/nodes/{name}/proxy/{path}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "connect DELETE requests to proxy of Node", + "operationId": "connectCoreV1DeleteNodeProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "connect GET requests to proxy of Node", + "operationId": "connectCoreV1GetNodeProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "head": { + "consumes": [ + "*/*" + ], + "description": "connect HEAD requests to proxy of Node", + "operationId": "connectCoreV1HeadNodeProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "options": { + "consumes": [ + "*/*" + ], + "description": "connect OPTIONS requests to proxy of Node", + "operationId": "connectCoreV1OptionsNodeProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the NodeProxyOptions", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "path to the resource", + "in": "path", + "name": "path", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "Path is the URL path to use for the current proxy request to node.", + "in": "query", + "name": "path", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "*/*" + ], + "description": "connect PATCH requests to proxy of Node", + "operationId": "connectCoreV1PatchNodeProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "post": { + "consumes": [ + "*/*" + ], + "description": "connect POST requests to proxy of Node", + "operationId": "connectCoreV1PostNodeProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "connect PUT requests to proxy of Node", + "operationId": "connectCoreV1PutNodeProxyWithPath", + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "connect", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "NodeProxyOptions", + "version": "v1" + } + } + }, + "/api/v1/nodes/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified Node", + "operationId": "readCoreV1NodeStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Node", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified Node", + "operationId": "patchCoreV1NodeStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified Node", + "operationId": "replaceCoreV1NodeStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + } + }, + "/api/v1/persistentvolumeclaims": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind PersistentVolumeClaim", + "operationId": "listCoreV1PersistentVolumeClaimForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/persistentvolumes": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of PersistentVolume", + "operationId": "deleteCoreV1CollectionPersistentVolume", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind PersistentVolume", + "operationId": "listCoreV1PersistentVolume", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a PersistentVolume", + "operationId": "createCoreV1PersistentVolume", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + } + }, + "/api/v1/persistentvolumes/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a PersistentVolume", + "operationId": "deleteCoreV1PersistentVolume", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified PersistentVolume", + "operationId": "readCoreV1PersistentVolume", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the PersistentVolume", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified PersistentVolume", + "operationId": "patchCoreV1PersistentVolume", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified PersistentVolume", + "operationId": "replaceCoreV1PersistentVolume", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + } + }, + "/api/v1/persistentvolumes/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified PersistentVolume", + "operationId": "readCoreV1PersistentVolumeStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the PersistentVolume", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified PersistentVolume", + "operationId": "patchCoreV1PersistentVolumeStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified PersistentVolume", + "operationId": "replaceCoreV1PersistentVolumeStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + } + }, + "/api/v1/pods": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Pod", + "operationId": "listCoreV1PodForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/podtemplates": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind PodTemplate", + "operationId": "listCoreV1PodTemplateForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/replicationcontrollers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ReplicationController", + "operationId": "listCoreV1ReplicationControllerForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/resourcequotas": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceQuota", + "operationId": "listCoreV1ResourceQuotaForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/secrets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Secret", + "operationId": "listCoreV1SecretForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Secret", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/serviceaccounts": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ServiceAccount", + "operationId": "listCoreV1ServiceAccountForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/services": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Service", + "operationId": "listCoreV1ServiceForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/configmaps": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1ConfigMapListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/endpoints": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1EndpointsListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/events": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1EventListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/limitranges": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1LimitRangeListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespaceList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/configmaps": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedConfigMapList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/configmaps/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ConfigMap. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedConfigMap", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ConfigMap", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/endpoints": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedEndpointsList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/endpoints/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Endpoints. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedEndpoints", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Endpoints", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/events": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedEventList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/events/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedEvent", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Event", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/limitranges": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedLimitRangeList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/limitranges/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind LimitRange. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedLimitRange", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the LimitRange", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedPersistentVolumeClaimList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedPersistentVolumeClaim", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the PersistentVolumeClaim", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/pods": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedPodList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/pods/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Pod. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedPod", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Pod", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/podtemplates": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedPodTemplateList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind PodTemplate. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedPodTemplate", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the PodTemplate", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/replicationcontrollers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedReplicationControllerList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ReplicationController. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedReplicationController", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ReplicationController", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/resourcequotas": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedResourceQuotaList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedResourceQuota", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ResourceQuota", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/secrets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedSecretList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Secret", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/secrets/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Secret. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedSecret", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Secret", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Secret", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/serviceaccounts": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedServiceAccountList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedServiceAccount", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ServiceAccount", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/services": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NamespacedServiceList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{namespace}/services/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Service. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1NamespacedService", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Service", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/namespaces/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Namespace. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1Namespace", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Namespace", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Namespace", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/nodes": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1NodeList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/nodes/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Node. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1Node", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Node", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Node", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/persistentvolumeclaims": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1PersistentVolumeClaimListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/persistentvolumes": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1PersistentVolumeList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/persistentvolumes/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoreV1PersistentVolume", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the PersistentVolume", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/pods": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1PodListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Pod", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/podtemplates": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1PodTemplateListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/replicationcontrollers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1ReplicationControllerListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/resourcequotas": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1ResourceQuotaListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/secrets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1SecretListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Secret", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/serviceaccounts": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1ServiceAccountListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/api/v1/watch/services": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoreV1ServiceListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "core_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "", + "kind": "Service", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available API versions", + "operationId": "getAPIVersions", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apis" + ] + } + }, + "/apis/admissionregistration.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getAdmissionregistrationAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration" + ] + } + }, + "/apis/admissionregistration.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getAdmissionregistrationV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ] + } + }, + "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of MutatingWebhookConfiguration", + "operationId": "deleteAdmissionregistrationV1CollectionMutatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind MutatingWebhookConfiguration", + "operationId": "listAdmissionregistrationV1MutatingWebhookConfiguration", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a MutatingWebhookConfiguration", + "operationId": "createAdmissionregistrationV1MutatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a MutatingWebhookConfiguration", + "operationId": "deleteAdmissionregistrationV1MutatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified MutatingWebhookConfiguration", + "operationId": "readAdmissionregistrationV1MutatingWebhookConfiguration", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the MutatingWebhookConfiguration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified MutatingWebhookConfiguration", + "operationId": "patchAdmissionregistrationV1MutatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified MutatingWebhookConfiguration", + "operationId": "replaceAdmissionregistrationV1MutatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ValidatingWebhookConfiguration", + "operationId": "deleteAdmissionregistrationV1CollectionValidatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ValidatingWebhookConfiguration", + "operationId": "listAdmissionregistrationV1ValidatingWebhookConfiguration", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ValidatingWebhookConfiguration", + "operationId": "createAdmissionregistrationV1ValidatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ValidatingWebhookConfiguration", + "operationId": "deleteAdmissionregistrationV1ValidatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ValidatingWebhookConfiguration", + "operationId": "readAdmissionregistrationV1ValidatingWebhookConfiguration", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ValidatingWebhookConfiguration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ValidatingWebhookConfiguration", + "operationId": "patchAdmissionregistrationV1ValidatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ValidatingWebhookConfiguration", + "operationId": "replaceAdmissionregistrationV1ValidatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAdmissionregistrationV1MutatingWebhookConfigurationList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAdmissionregistrationV1MutatingWebhookConfiguration", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the MutatingWebhookConfiguration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfigurationList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfiguration", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ValidatingWebhookConfiguration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/admissionregistration.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getAdmissionregistrationV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ] + } + }, + "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of MutatingWebhookConfiguration", + "operationId": "deleteAdmissionregistrationV1beta1CollectionMutatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind MutatingWebhookConfiguration", + "operationId": "listAdmissionregistrationV1beta1MutatingWebhookConfiguration", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a MutatingWebhookConfiguration", + "operationId": "createAdmissionregistrationV1beta1MutatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1beta1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a MutatingWebhookConfiguration", + "operationId": "deleteAdmissionregistrationV1beta1MutatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified MutatingWebhookConfiguration", + "operationId": "readAdmissionregistrationV1beta1MutatingWebhookConfiguration", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the MutatingWebhookConfiguration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified MutatingWebhookConfiguration", + "operationId": "patchAdmissionregistrationV1beta1MutatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified MutatingWebhookConfiguration", + "operationId": "replaceAdmissionregistrationV1beta1MutatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1beta1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ValidatingWebhookConfiguration", + "operationId": "deleteAdmissionregistrationV1beta1CollectionValidatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ValidatingWebhookConfiguration", + "operationId": "listAdmissionregistrationV1beta1ValidatingWebhookConfiguration", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ValidatingWebhookConfiguration", + "operationId": "createAdmissionregistrationV1beta1ValidatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1beta1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ValidatingWebhookConfiguration", + "operationId": "deleteAdmissionregistrationV1beta1ValidatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ValidatingWebhookConfiguration", + "operationId": "readAdmissionregistrationV1beta1ValidatingWebhookConfiguration", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the ValidatingWebhookConfiguration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ValidatingWebhookConfiguration", + "operationId": "patchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ValidatingWebhookConfiguration", + "operationId": "replaceAdmissionregistrationV1beta1ValidatingWebhookConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1beta1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfigurationList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfiguration", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the MutatingWebhookConfiguration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfigurationList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ValidatingWebhookConfiguration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apiextensions.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getApiextensionsAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions" + ] + } + }, + "/apis/apiextensions.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getApiextensionsV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ] + } + }, + "/apis/apiextensions.k8s.io/v1/customresourcedefinitions": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of CustomResourceDefinition", + "operationId": "deleteApiextensionsV1CollectionCustomResourceDefinition", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind CustomResourceDefinition", + "operationId": "listApiextensionsV1CustomResourceDefinition", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a CustomResourceDefinition", + "operationId": "createApiextensionsV1CustomResourceDefinition", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + } + }, + "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a CustomResourceDefinition", + "operationId": "deleteApiextensionsV1CustomResourceDefinition", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified CustomResourceDefinition", + "operationId": "readApiextensionsV1CustomResourceDefinition", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the CustomResourceDefinition", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified CustomResourceDefinition", + "operationId": "patchApiextensionsV1CustomResourceDefinition", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified CustomResourceDefinition", + "operationId": "replaceApiextensionsV1CustomResourceDefinition", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + } + }, + "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified CustomResourceDefinition", + "operationId": "readApiextensionsV1CustomResourceDefinitionStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the CustomResourceDefinition", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified CustomResourceDefinition", + "operationId": "patchApiextensionsV1CustomResourceDefinitionStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified CustomResourceDefinition", + "operationId": "replaceApiextensionsV1CustomResourceDefinitionStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + } + }, + "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchApiextensionsV1CustomResourceDefinitionList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchApiextensionsV1CustomResourceDefinition", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the CustomResourceDefinition", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apiextensions.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getApiextensionsV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ] + } + }, + "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of CustomResourceDefinition", + "operationId": "deleteApiextensionsV1beta1CollectionCustomResourceDefinition", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind CustomResourceDefinition", + "operationId": "listApiextensionsV1beta1CustomResourceDefinition", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a CustomResourceDefinition", + "operationId": "createApiextensionsV1beta1CustomResourceDefinition", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + } + }, + "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a CustomResourceDefinition", + "operationId": "deleteApiextensionsV1beta1CustomResourceDefinition", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified CustomResourceDefinition", + "operationId": "readApiextensionsV1beta1CustomResourceDefinition", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the CustomResourceDefinition", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified CustomResourceDefinition", + "operationId": "patchApiextensionsV1beta1CustomResourceDefinition", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified CustomResourceDefinition", + "operationId": "replaceApiextensionsV1beta1CustomResourceDefinition", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + } + }, + "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified CustomResourceDefinition", + "operationId": "readApiextensionsV1beta1CustomResourceDefinitionStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the CustomResourceDefinition", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified CustomResourceDefinition", + "operationId": "patchApiextensionsV1beta1CustomResourceDefinitionStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified CustomResourceDefinition", + "operationId": "replaceApiextensionsV1beta1CustomResourceDefinitionStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + } + }, + "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchApiextensionsV1beta1CustomResourceDefinitionList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchApiextensionsV1beta1CustomResourceDefinition", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiextensions_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the CustomResourceDefinition", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apiregistration.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getApiregistrationAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration" + ] + } + }, + "/apis/apiregistration.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getApiregistrationV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ] + } + }, + "/apis/apiregistration.k8s.io/v1/apiservices": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of APIService", + "operationId": "deleteApiregistrationV1CollectionAPIService", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind APIService", + "operationId": "listApiregistrationV1APIService", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create an APIService", + "operationId": "createApiregistrationV1APIService", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + } + }, + "/apis/apiregistration.k8s.io/v1/apiservices/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete an APIService", + "operationId": "deleteApiregistrationV1APIService", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified APIService", + "operationId": "readApiregistrationV1APIService", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the APIService", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified APIService", + "operationId": "patchApiregistrationV1APIService", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified APIService", + "operationId": "replaceApiregistrationV1APIService", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + } + }, + "/apis/apiregistration.k8s.io/v1/apiservices/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified APIService", + "operationId": "readApiregistrationV1APIServiceStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the APIService", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified APIService", + "operationId": "patchApiregistrationV1APIServiceStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified APIService", + "operationId": "replaceApiregistrationV1APIServiceStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + } + }, + "/apis/apiregistration.k8s.io/v1/watch/apiservices": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchApiregistrationV1APIServiceList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apiregistration.k8s.io/v1/watch/apiservices/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchApiregistrationV1APIService", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the APIService", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apiregistration.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getApiregistrationV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ] + } + }, + "/apis/apiregistration.k8s.io/v1beta1/apiservices": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of APIService", + "operationId": "deleteApiregistrationV1beta1CollectionAPIService", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind APIService", + "operationId": "listApiregistrationV1beta1APIService", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create an APIService", + "operationId": "createApiregistrationV1beta1APIService", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + } + }, + "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete an APIService", + "operationId": "deleteApiregistrationV1beta1APIService", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified APIService", + "operationId": "readApiregistrationV1beta1APIService", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the APIService", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified APIService", + "operationId": "patchApiregistrationV1beta1APIService", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified APIService", + "operationId": "replaceApiregistrationV1beta1APIService", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + } + }, + "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified APIService", + "operationId": "readApiregistrationV1beta1APIServiceStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the APIService", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified APIService", + "operationId": "patchApiregistrationV1beta1APIServiceStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified APIService", + "operationId": "replaceApiregistrationV1beta1APIServiceStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + } + }, + "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchApiregistrationV1beta1APIServiceList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchApiregistrationV1beta1APIService", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apiregistration_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the APIService", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getAppsAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps" + ] + } + }, + "/apis/apps/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getAppsV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ] + } + }, + "/apis/apps/v1/controllerrevisions": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ControllerRevision", + "operationId": "listAppsV1ControllerRevisionForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/daemonsets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind DaemonSet", + "operationId": "listAppsV1DaemonSetForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/deployments": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Deployment", + "operationId": "listAppsV1DeploymentForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/namespaces/{namespace}/controllerrevisions": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ControllerRevision", + "operationId": "deleteAppsV1CollectionNamespacedControllerRevision", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ControllerRevision", + "operationId": "listAppsV1NamespacedControllerRevision", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ControllerRevision", + "operationId": "createAppsV1NamespacedControllerRevision", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ControllerRevision", + "operationId": "deleteAppsV1NamespacedControllerRevision", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ControllerRevision", + "operationId": "readAppsV1NamespacedControllerRevision", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ControllerRevision", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ControllerRevision", + "operationId": "patchAppsV1NamespacedControllerRevision", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ControllerRevision", + "operationId": "replaceAppsV1NamespacedControllerRevision", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/daemonsets": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of DaemonSet", + "operationId": "deleteAppsV1CollectionNamespacedDaemonSet", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind DaemonSet", + "operationId": "listAppsV1NamespacedDaemonSet", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a DaemonSet", + "operationId": "createAppsV1NamespacedDaemonSet", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a DaemonSet", + "operationId": "deleteAppsV1NamespacedDaemonSet", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified DaemonSet", + "operationId": "readAppsV1NamespacedDaemonSet", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the DaemonSet", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified DaemonSet", + "operationId": "patchAppsV1NamespacedDaemonSet", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified DaemonSet", + "operationId": "replaceAppsV1NamespacedDaemonSet", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified DaemonSet", + "operationId": "readAppsV1NamespacedDaemonSetStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the DaemonSet", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified DaemonSet", + "operationId": "patchAppsV1NamespacedDaemonSetStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified DaemonSet", + "operationId": "replaceAppsV1NamespacedDaemonSetStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/deployments": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Deployment", + "operationId": "deleteAppsV1CollectionNamespacedDeployment", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Deployment", + "operationId": "listAppsV1NamespacedDeployment", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Deployment", + "operationId": "createAppsV1NamespacedDeployment", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/deployments/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a Deployment", + "operationId": "deleteAppsV1NamespacedDeployment", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Deployment", + "operationId": "readAppsV1NamespacedDeployment", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Deployment", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Deployment", + "operationId": "patchAppsV1NamespacedDeployment", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Deployment", + "operationId": "replaceAppsV1NamespacedDeployment", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read scale of the specified Deployment", + "operationId": "readAppsV1NamespacedDeploymentScale", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Scale", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update scale of the specified Deployment", + "operationId": "patchAppsV1NamespacedDeploymentScale", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace scale of the specified Deployment", + "operationId": "replaceAppsV1NamespacedDeploymentScale", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified Deployment", + "operationId": "readAppsV1NamespacedDeploymentStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Deployment", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified Deployment", + "operationId": "patchAppsV1NamespacedDeploymentStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified Deployment", + "operationId": "replaceAppsV1NamespacedDeploymentStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/replicasets": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ReplicaSet", + "operationId": "deleteAppsV1CollectionNamespacedReplicaSet", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ReplicaSet", + "operationId": "listAppsV1NamespacedReplicaSet", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ReplicaSet", + "operationId": "createAppsV1NamespacedReplicaSet", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ReplicaSet", + "operationId": "deleteAppsV1NamespacedReplicaSet", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ReplicaSet", + "operationId": "readAppsV1NamespacedReplicaSet", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ReplicaSet", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ReplicaSet", + "operationId": "patchAppsV1NamespacedReplicaSet", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ReplicaSet", + "operationId": "replaceAppsV1NamespacedReplicaSet", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read scale of the specified ReplicaSet", + "operationId": "readAppsV1NamespacedReplicaSetScale", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Scale", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update scale of the specified ReplicaSet", + "operationId": "patchAppsV1NamespacedReplicaSetScale", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace scale of the specified ReplicaSet", + "operationId": "replaceAppsV1NamespacedReplicaSetScale", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified ReplicaSet", + "operationId": "readAppsV1NamespacedReplicaSetStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ReplicaSet", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified ReplicaSet", + "operationId": "patchAppsV1NamespacedReplicaSetStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified ReplicaSet", + "operationId": "replaceAppsV1NamespacedReplicaSetStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/statefulsets": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of StatefulSet", + "operationId": "deleteAppsV1CollectionNamespacedStatefulSet", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind StatefulSet", + "operationId": "listAppsV1NamespacedStatefulSet", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a StatefulSet", + "operationId": "createAppsV1NamespacedStatefulSet", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a StatefulSet", + "operationId": "deleteAppsV1NamespacedStatefulSet", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified StatefulSet", + "operationId": "readAppsV1NamespacedStatefulSet", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the StatefulSet", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified StatefulSet", + "operationId": "patchAppsV1NamespacedStatefulSet", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified StatefulSet", + "operationId": "replaceAppsV1NamespacedStatefulSet", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read scale of the specified StatefulSet", + "operationId": "readAppsV1NamespacedStatefulSetScale", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Scale", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update scale of the specified StatefulSet", + "operationId": "patchAppsV1NamespacedStatefulSetScale", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace scale of the specified StatefulSet", + "operationId": "replaceAppsV1NamespacedStatefulSetScale", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" + } + } + }, + "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified StatefulSet", + "operationId": "readAppsV1NamespacedStatefulSetStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the StatefulSet", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified StatefulSet", + "operationId": "patchAppsV1NamespacedStatefulSetStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified StatefulSet", + "operationId": "replaceAppsV1NamespacedStatefulSetStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + } + }, + "/apis/apps/v1/replicasets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ReplicaSet", + "operationId": "listAppsV1ReplicaSetForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/statefulsets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind StatefulSet", + "operationId": "listAppsV1StatefulSetForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/controllerrevisions": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAppsV1ControllerRevisionListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/daemonsets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAppsV1DaemonSetListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/deployments": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAppsV1DeploymentListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAppsV1NamespacedControllerRevisionList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAppsV1NamespacedControllerRevision", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ControllerRevision", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAppsV1NamespacedDaemonSetList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind DaemonSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAppsV1NamespacedDaemonSet", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the DaemonSet", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/deployments": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAppsV1NamespacedDeploymentList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Deployment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAppsV1NamespacedDeployment", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Deployment", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/replicasets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAppsV1NamespacedReplicaSetList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAppsV1NamespacedReplicaSet", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ReplicaSet", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAppsV1NamespacedStatefulSetList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind StatefulSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAppsV1NamespacedStatefulSet", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the StatefulSet", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/replicasets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAppsV1ReplicaSetListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/apps/v1/watch/statefulsets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAppsV1StatefulSetListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/authentication.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getAuthenticationAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authentication" + ] + } + }, + "/apis/authentication.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getAuthenticationV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authentication_v1" + ] + } + }, + "/apis/authentication.k8s.io/v1/tokenreviews": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a TokenReview", + "operationId": "createAuthenticationV1TokenReview", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authentication_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authentication.k8s.io", + "kind": "TokenReview", + "version": "v1" + } + } + }, + "/apis/authentication.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getAuthenticationV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authentication_v1beta1" + ] + } + }, + "/apis/authentication.k8s.io/v1beta1/tokenreviews": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a TokenReview", + "operationId": "createAuthenticationV1beta1TokenReview", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authentication_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authentication.k8s.io", + "kind": "TokenReview", + "version": "v1beta1" + } + } + }, + "/apis/authorization.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getAuthorizationAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authorization" + ] + } + }, + "/apis/authorization.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getAuthorizationV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1" + ] + } + }, + "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a LocalSubjectAccessReview", + "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authorization.k8s.io", + "kind": "LocalSubjectAccessReview", + "version": "v1" + } + } + }, + "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a SelfSubjectAccessReview", + "operationId": "createAuthorizationV1SelfSubjectAccessReview", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authorization.k8s.io", + "kind": "SelfSubjectAccessReview", + "version": "v1" + } + } + }, + "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a SelfSubjectRulesReview", + "operationId": "createAuthorizationV1SelfSubjectRulesReview", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authorization.k8s.io", + "kind": "SelfSubjectRulesReview", + "version": "v1" + } + } + }, + "/apis/authorization.k8s.io/v1/subjectaccessreviews": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a SubjectAccessReview", + "operationId": "createAuthorizationV1SubjectAccessReview", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authorization.k8s.io", + "kind": "SubjectAccessReview", + "version": "v1" + } + } + }, + "/apis/authorization.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getAuthorizationV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1beta1" + ] + } + }, + "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a LocalSubjectAccessReview", + "operationId": "createAuthorizationV1beta1NamespacedLocalSubjectAccessReview", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authorization.k8s.io", + "kind": "LocalSubjectAccessReview", + "version": "v1beta1" + } + } + }, + "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a SelfSubjectAccessReview", + "operationId": "createAuthorizationV1beta1SelfSubjectAccessReview", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authorization.k8s.io", + "kind": "SelfSubjectAccessReview", + "version": "v1beta1" + } + } + }, + "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a SelfSubjectRulesReview", + "operationId": "createAuthorizationV1beta1SelfSubjectRulesReview", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authorization.k8s.io", + "kind": "SelfSubjectRulesReview", + "version": "v1beta1" + } + } + }, + "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews": { + "parameters": [ + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a SubjectAccessReview", + "operationId": "createAuthorizationV1beta1SubjectAccessReview", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + } + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authorization.k8s.io", + "kind": "SubjectAccessReview", + "version": "v1beta1" + } + } + }, + "/apis/autoscaling/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getAutoscalingAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling" + ] + } + }, + "/apis/autoscaling/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getAutoscalingV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ] + } + }, + "/apis/autoscaling/v1/horizontalpodautoscalers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind HorizontalPodAutoscaler", + "operationId": "listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of HorizontalPodAutoscaler", + "operationId": "deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind HorizontalPodAutoscaler", + "operationId": "listAutoscalingV1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a HorizontalPodAutoscaler", + "operationId": "createAutoscalingV1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + } + }, + "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a HorizontalPodAutoscaler", + "operationId": "deleteAutoscalingV1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified HorizontalPodAutoscaler", + "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the HorizontalPodAutoscaler", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified HorizontalPodAutoscaler", + "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified HorizontalPodAutoscaler", + "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + } + }, + "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified HorizontalPodAutoscaler", + "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the HorizontalPodAutoscaler", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified HorizontalPodAutoscaler", + "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified HorizontalPodAutoscaler", + "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + } + }, + "/apis/autoscaling/v1/watch/horizontalpodautoscalers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscalerList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscaler", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the HorizontalPodAutoscaler", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/autoscaling/v2beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getAutoscalingV2beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ] + } + }, + "/apis/autoscaling/v2beta1/horizontalpodautoscalers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind HorizontalPodAutoscaler", + "operationId": "listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of HorizontalPodAutoscaler", + "operationId": "deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind HorizontalPodAutoscaler", + "operationId": "listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a HorizontalPodAutoscaler", + "operationId": "createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + } + }, + "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a HorizontalPodAutoscaler", + "operationId": "deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified HorizontalPodAutoscaler", + "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "parameters": [ + { + "description": "name of the HorizontalPodAutoscaler", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified HorizontalPodAutoscaler", + "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified HorizontalPodAutoscaler", + "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + } + }, + "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified HorizontalPodAutoscaler", + "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "parameters": [ + { + "description": "name of the HorizontalPodAutoscaler", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified HorizontalPodAutoscaler", + "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified HorizontalPodAutoscaler", + "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + } + }, + "/apis/autoscaling/v2beta1/watch/horizontalpodautoscalers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the HorizontalPodAutoscaler", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/autoscaling/v2beta2/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getAutoscalingV2beta2APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ] + } + }, + "/apis/autoscaling/v2beta2/horizontalpodautoscalers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind HorizontalPodAutoscaler", + "operationId": "listAutoscalingV2beta2HorizontalPodAutoscalerForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of HorizontalPodAutoscaler", + "operationId": "deleteAutoscalingV2beta2CollectionNamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind HorizontalPodAutoscaler", + "operationId": "listAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a HorizontalPodAutoscaler", + "operationId": "createAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + } + }, + "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a HorizontalPodAutoscaler", + "operationId": "deleteAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified HorizontalPodAutoscaler", + "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + }, + "parameters": [ + { + "description": "name of the HorizontalPodAutoscaler", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified HorizontalPodAutoscaler", + "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified HorizontalPodAutoscaler", + "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + } + }, + "/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified HorizontalPodAutoscaler", + "operationId": "readAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + }, + "parameters": [ + { + "description": "name of the HorizontalPodAutoscaler", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified HorizontalPodAutoscaler", + "operationId": "patchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified HorizontalPodAutoscaler", + "operationId": "replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + } + }, + "/apis/autoscaling/v2beta2/watch/horizontalpodautoscalers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAutoscalingV2beta2HorizontalPodAutoscalerListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta2" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta2" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the HorizontalPodAutoscaler", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/batch/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getBatchAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch" + ] + } + }, + "/apis/batch/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getBatchV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ] + } + }, + "/apis/batch/v1/jobs": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Job", + "operationId": "listBatchV1JobForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/batch/v1/namespaces/{namespace}/jobs": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Job", + "operationId": "deleteBatchV1CollectionNamespacedJob", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Job", + "operationId": "listBatchV1NamespacedJob", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Job", + "operationId": "createBatchV1NamespacedJob", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + } + }, + "/apis/batch/v1/namespaces/{namespace}/jobs/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a Job", + "operationId": "deleteBatchV1NamespacedJob", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Job", + "operationId": "readBatchV1NamespacedJob", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Job", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Job", + "operationId": "patchBatchV1NamespacedJob", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Job", + "operationId": "replaceBatchV1NamespacedJob", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + } + }, + "/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified Job", + "operationId": "readBatchV1NamespacedJobStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Job", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified Job", + "operationId": "patchBatchV1NamespacedJobStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified Job", + "operationId": "replaceBatchV1NamespacedJobStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + } + }, + "/apis/batch/v1/watch/jobs": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchBatchV1JobListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/batch/v1/watch/namespaces/{namespace}/jobs": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchBatchV1NamespacedJobList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Job. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchBatchV1NamespacedJob", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "Job", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Job", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/batch/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getBatchV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ] + } + }, + "/apis/batch/v1beta1/cronjobs": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind CronJob", + "operationId": "listBatchV1beta1CronJobForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of CronJob", + "operationId": "deleteBatchV1beta1CollectionNamespacedCronJob", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind CronJob", + "operationId": "listBatchV1beta1NamespacedCronJob", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a CronJob", + "operationId": "createBatchV1beta1NamespacedCronJob", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + } + }, + "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a CronJob", + "operationId": "deleteBatchV1beta1NamespacedCronJob", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified CronJob", + "operationId": "readBatchV1beta1NamespacedCronJob", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the CronJob", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified CronJob", + "operationId": "patchBatchV1beta1NamespacedCronJob", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified CronJob", + "operationId": "replaceBatchV1beta1NamespacedCronJob", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + } + }, + "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified CronJob", + "operationId": "readBatchV1beta1NamespacedCronJobStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the CronJob", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified CronJob", + "operationId": "patchBatchV1beta1NamespacedCronJobStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified CronJob", + "operationId": "replaceBatchV1beta1NamespacedCronJobStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + } + }, + "/apis/batch/v1beta1/watch/cronjobs": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchBatchV1beta1CronJobListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchBatchV1beta1NamespacedCronJobList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind CronJob. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchBatchV1beta1NamespacedCronJob", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "batch_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the CronJob", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/certificates.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getCertificatesAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates" + ] + } + }, + "/apis/certificates.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getCertificatesV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ] + } + }, + "/apis/certificates.k8s.io/v1/certificatesigningrequests": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of CertificateSigningRequest", + "operationId": "deleteCertificatesV1CollectionCertificateSigningRequest", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind CertificateSigningRequest", + "operationId": "listCertificatesV1CertificateSigningRequest", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a CertificateSigningRequest", + "operationId": "createCertificatesV1CertificateSigningRequest", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + } + }, + "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a CertificateSigningRequest", + "operationId": "deleteCertificatesV1CertificateSigningRequest", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified CertificateSigningRequest", + "operationId": "readCertificatesV1CertificateSigningRequest", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the CertificateSigningRequest", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified CertificateSigningRequest", + "operationId": "patchCertificatesV1CertificateSigningRequest", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified CertificateSigningRequest", + "operationId": "replaceCertificatesV1CertificateSigningRequest", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + } + }, + "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/approval": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read approval of the specified CertificateSigningRequest", + "operationId": "readCertificatesV1CertificateSigningRequestApproval", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the CertificateSigningRequest", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update approval of the specified CertificateSigningRequest", + "operationId": "patchCertificatesV1CertificateSigningRequestApproval", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace approval of the specified CertificateSigningRequest", + "operationId": "replaceCertificatesV1CertificateSigningRequestApproval", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + } + }, + "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified CertificateSigningRequest", + "operationId": "readCertificatesV1CertificateSigningRequestStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the CertificateSigningRequest", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified CertificateSigningRequest", + "operationId": "patchCertificatesV1CertificateSigningRequestStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified CertificateSigningRequest", + "operationId": "replaceCertificatesV1CertificateSigningRequestStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + } + }, + "/apis/certificates.k8s.io/v1/watch/certificatesigningrequests": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCertificatesV1CertificateSigningRequestList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/certificates.k8s.io/v1/watch/certificatesigningrequests/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCertificatesV1CertificateSigningRequest", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the CertificateSigningRequest", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/certificates.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getCertificatesV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ] + } + }, + "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of CertificateSigningRequest", + "operationId": "deleteCertificatesV1beta1CollectionCertificateSigningRequest", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind CertificateSigningRequest", + "operationId": "listCertificatesV1beta1CertificateSigningRequest", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a CertificateSigningRequest", + "operationId": "createCertificatesV1beta1CertificateSigningRequest", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + } + }, + "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a CertificateSigningRequest", + "operationId": "deleteCertificatesV1beta1CertificateSigningRequest", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified CertificateSigningRequest", + "operationId": "readCertificatesV1beta1CertificateSigningRequest", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the CertificateSigningRequest", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified CertificateSigningRequest", + "operationId": "patchCertificatesV1beta1CertificateSigningRequest", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified CertificateSigningRequest", + "operationId": "replaceCertificatesV1beta1CertificateSigningRequest", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + } + }, + "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read approval of the specified CertificateSigningRequest", + "operationId": "readCertificatesV1beta1CertificateSigningRequestApproval", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the CertificateSigningRequest", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update approval of the specified CertificateSigningRequest", + "operationId": "patchCertificatesV1beta1CertificateSigningRequestApproval", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace approval of the specified CertificateSigningRequest", + "operationId": "replaceCertificatesV1beta1CertificateSigningRequestApproval", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + } + }, + "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified CertificateSigningRequest", + "operationId": "readCertificatesV1beta1CertificateSigningRequestStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the CertificateSigningRequest", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified CertificateSigningRequest", + "operationId": "patchCertificatesV1beta1CertificateSigningRequestStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified CertificateSigningRequest", + "operationId": "replaceCertificatesV1beta1CertificateSigningRequestStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + } + }, + "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCertificatesV1beta1CertificateSigningRequestList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCertificatesV1beta1CertificateSigningRequest", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the CertificateSigningRequest", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/coordination.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getCoordinationAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination" + ] + } + }, + "/apis/coordination.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getCoordinationV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ] + } + }, + "/apis/coordination.k8s.io/v1/leases": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Lease", + "operationId": "listCoordinationV1LeaseForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Lease", + "operationId": "deleteCoordinationV1CollectionNamespacedLease", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Lease", + "operationId": "listCoordinationV1NamespacedLease", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Lease", + "operationId": "createCoordinationV1NamespacedLease", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + } + }, + "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a Lease", + "operationId": "deleteCoordinationV1NamespacedLease", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Lease", + "operationId": "readCoordinationV1NamespacedLease", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Lease", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Lease", + "operationId": "patchCoordinationV1NamespacedLease", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Lease", + "operationId": "replaceCoordinationV1NamespacedLease", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + } + }, + "/apis/coordination.k8s.io/v1/watch/leases": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoordinationV1LeaseListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoordinationV1NamespacedLeaseList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoordinationV1NamespacedLease", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Lease", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/coordination.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getCoordinationV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ] + } + }, + "/apis/coordination.k8s.io/v1beta1/leases": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Lease", + "operationId": "listCoordinationV1beta1LeaseForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Lease", + "operationId": "deleteCoordinationV1beta1CollectionNamespacedLease", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Lease", + "operationId": "listCoordinationV1beta1NamespacedLease", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.LeaseList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Lease", + "operationId": "createCoordinationV1beta1NamespacedLease", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + } + }, + "/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a Lease", + "operationId": "deleteCoordinationV1beta1NamespacedLease", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Lease", + "operationId": "readCoordinationV1beta1NamespacedLease", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the Lease", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Lease", + "operationId": "patchCoordinationV1beta1NamespacedLease", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Lease", + "operationId": "replaceCoordinationV1beta1NamespacedLease", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.coordination.v1beta1.Lease" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + } + }, + "/apis/coordination.k8s.io/v1beta1/watch/leases": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoordinationV1beta1LeaseListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchCoordinationV1beta1NamespacedLeaseList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchCoordinationV1beta1NamespacedLease", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "coordination_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "coordination.k8s.io", + "kind": "Lease", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Lease", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/discovery.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getDiscoveryAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery" + ] + } + }, + "/apis/discovery.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getDiscoveryV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ] + } + }, + "/apis/discovery.k8s.io/v1beta1/endpointslices": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind EndpointSlice", + "operationId": "listDiscoveryV1beta1EndpointSliceForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of EndpointSlice", + "operationId": "deleteDiscoveryV1beta1CollectionNamespacedEndpointSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind EndpointSlice", + "operationId": "listDiscoveryV1beta1NamespacedEndpointSlice", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSliceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create an EndpointSlice", + "operationId": "createDiscoveryV1beta1NamespacedEndpointSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + } + }, + "/apis/discovery.k8s.io/v1beta1/namespaces/{namespace}/endpointslices/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete an EndpointSlice", + "operationId": "deleteDiscoveryV1beta1NamespacedEndpointSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified EndpointSlice", + "operationId": "readDiscoveryV1beta1NamespacedEndpointSlice", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the EndpointSlice", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified EndpointSlice", + "operationId": "patchDiscoveryV1beta1NamespacedEndpointSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified EndpointSlice", + "operationId": "replaceDiscoveryV1beta1NamespacedEndpointSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.discovery.v1beta1.EndpointSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + } + }, + "/apis/discovery.k8s.io/v1beta1/watch/endpointslices": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchDiscoveryV1beta1EndpointSliceListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchDiscoveryV1beta1NamespacedEndpointSliceList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/discovery.k8s.io/v1beta1/watch/namespaces/{namespace}/endpointslices/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchDiscoveryV1beta1NamespacedEndpointSlice", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "discovery_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "discovery.k8s.io", + "kind": "EndpointSlice", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the EndpointSlice", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/events.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getEventsAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events" + ] + } + }, + "/apis/events.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getEventsV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ] + } + }, + "/apis/events.k8s.io/v1/events": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Event", + "operationId": "listEventsV1EventForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1.EventList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/events.k8s.io/v1/namespaces/{namespace}/events": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Event", + "operationId": "deleteEventsV1CollectionNamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Event", + "operationId": "listEventsV1NamespacedEvent", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1.EventList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create an Event", + "operationId": "createEventsV1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1.Event" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1.Event" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1.Event" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + } + }, + "/apis/events.k8s.io/v1/namespaces/{namespace}/events/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete an Event", + "operationId": "deleteEventsV1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Event", + "operationId": "readEventsV1NamespacedEvent", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Event", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Event", + "operationId": "patchEventsV1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Event", + "operationId": "replaceEventsV1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1.Event" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1.Event" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + } + }, + "/apis/events.k8s.io/v1/watch/events": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchEventsV1EventListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/events.k8s.io/v1/watch/namespaces/{namespace}/events": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchEventsV1NamespacedEventList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/events.k8s.io/v1/watch/namespaces/{namespace}/events/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchEventsV1NamespacedEvent", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Event", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/events.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getEventsV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ] + } + }, + "/apis/events.k8s.io/v1beta1/events": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Event", + "operationId": "listEventsV1beta1EventForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Event", + "operationId": "deleteEventsV1beta1CollectionNamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Event", + "operationId": "listEventsV1beta1NamespacedEvent", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create an Event", + "operationId": "createEventsV1beta1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + } + }, + "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete an Event", + "operationId": "deleteEventsV1beta1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Event", + "operationId": "readEventsV1beta1NamespacedEvent", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the Event", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Event", + "operationId": "patchEventsV1beta1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Event", + "operationId": "replaceEventsV1beta1NamespacedEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + } + }, + "/apis/events.k8s.io/v1beta1/watch/events": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchEventsV1beta1EventListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchEventsV1beta1NamespacedEventList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchEventsV1beta1NamespacedEvent", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "events_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "events.k8s.io", + "kind": "Event", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Event", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/extensions/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getExtensionsAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions" + ] + } + }, + "/apis/extensions/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getExtensionsV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ] + } + }, + "/apis/extensions/v1beta1/ingresses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Ingress", + "operationId": "listExtensionsV1beta1IngressForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Ingress", + "operationId": "deleteExtensionsV1beta1CollectionNamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Ingress", + "operationId": "listExtensionsV1beta1NamespacedIngress", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create an Ingress", + "operationId": "createExtensionsV1beta1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + } + }, + "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete an Ingress", + "operationId": "deleteExtensionsV1beta1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Ingress", + "operationId": "readExtensionsV1beta1NamespacedIngress", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the Ingress", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Ingress", + "operationId": "patchExtensionsV1beta1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Ingress", + "operationId": "replaceExtensionsV1beta1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + } + }, + "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified Ingress", + "operationId": "readExtensionsV1beta1NamespacedIngressStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the Ingress", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified Ingress", + "operationId": "patchExtensionsV1beta1NamespacedIngressStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified Ingress", + "operationId": "replaceExtensionsV1beta1NamespacedIngressStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + } + }, + "/apis/extensions/v1beta1/watch/ingresses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchExtensionsV1beta1IngressListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchExtensionsV1beta1NamespacedIngressList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchExtensionsV1beta1NamespacedIngress", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Ingress", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/flowcontrol.apiserver.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getFlowcontrolApiserverAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver" + ] + } + }, + "/apis/flowcontrol.apiserver.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getFlowcontrolApiserverV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ] + } + }, + "/apis/flowcontrol.apiserver.k8s.io/v1beta1/flowschemas": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of FlowSchema", + "operationId": "deleteFlowcontrolApiserverV1beta1CollectionFlowSchema", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind FlowSchema", + "operationId": "listFlowcontrolApiserverV1beta1FlowSchema", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchemaList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a FlowSchema", + "operationId": "createFlowcontrolApiserverV1beta1FlowSchema", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + } + }, + "/apis/flowcontrol.apiserver.k8s.io/v1beta1/flowschemas/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a FlowSchema", + "operationId": "deleteFlowcontrolApiserverV1beta1FlowSchema", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified FlowSchema", + "operationId": "readFlowcontrolApiserverV1beta1FlowSchema", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the FlowSchema", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified FlowSchema", + "operationId": "patchFlowcontrolApiserverV1beta1FlowSchema", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified FlowSchema", + "operationId": "replaceFlowcontrolApiserverV1beta1FlowSchema", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + } + }, + "/apis/flowcontrol.apiserver.k8s.io/v1beta1/flowschemas/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified FlowSchema", + "operationId": "readFlowcontrolApiserverV1beta1FlowSchemaStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the FlowSchema", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified FlowSchema", + "operationId": "patchFlowcontrolApiserverV1beta1FlowSchemaStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified FlowSchema", + "operationId": "replaceFlowcontrolApiserverV1beta1FlowSchemaStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.FlowSchema" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + } + }, + "/apis/flowcontrol.apiserver.k8s.io/v1beta1/prioritylevelconfigurations": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of PriorityLevelConfiguration", + "operationId": "deleteFlowcontrolApiserverV1beta1CollectionPriorityLevelConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind PriorityLevelConfiguration", + "operationId": "listFlowcontrolApiserverV1beta1PriorityLevelConfiguration", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a PriorityLevelConfiguration", + "operationId": "createFlowcontrolApiserverV1beta1PriorityLevelConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + } + }, + "/apis/flowcontrol.apiserver.k8s.io/v1beta1/prioritylevelconfigurations/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a PriorityLevelConfiguration", + "operationId": "deleteFlowcontrolApiserverV1beta1PriorityLevelConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified PriorityLevelConfiguration", + "operationId": "readFlowcontrolApiserverV1beta1PriorityLevelConfiguration", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the PriorityLevelConfiguration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified PriorityLevelConfiguration", + "operationId": "patchFlowcontrolApiserverV1beta1PriorityLevelConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified PriorityLevelConfiguration", + "operationId": "replaceFlowcontrolApiserverV1beta1PriorityLevelConfiguration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + } + }, + "/apis/flowcontrol.apiserver.k8s.io/v1beta1/prioritylevelconfigurations/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified PriorityLevelConfiguration", + "operationId": "readFlowcontrolApiserverV1beta1PriorityLevelConfigurationStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the PriorityLevelConfiguration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified PriorityLevelConfiguration", + "operationId": "patchFlowcontrolApiserverV1beta1PriorityLevelConfigurationStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified PriorityLevelConfiguration", + "operationId": "replaceFlowcontrolApiserverV1beta1PriorityLevelConfigurationStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + } + }, + "/apis/flowcontrol.apiserver.k8s.io/v1beta1/watch/flowschemas": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of FlowSchema. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchFlowcontrolApiserverV1beta1FlowSchemaList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/flowcontrol.apiserver.k8s.io/v1beta1/watch/flowschemas/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind FlowSchema. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchFlowcontrolApiserverV1beta1FlowSchema", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "FlowSchema", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the FlowSchema", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/flowcontrol.apiserver.k8s.io/v1beta1/watch/prioritylevelconfigurations": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of PriorityLevelConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchFlowcontrolApiserverV1beta1PriorityLevelConfigurationList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/flowcontrol.apiserver.k8s.io/v1beta1/watch/prioritylevelconfigurations/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind PriorityLevelConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchFlowcontrolApiserverV1beta1PriorityLevelConfiguration", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "flowcontrolApiserver_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "flowcontrol.apiserver.k8s.io", + "kind": "PriorityLevelConfiguration", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the PriorityLevelConfiguration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getNetworkingAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking" + ] + } + }, + "/apis/networking.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getNetworkingV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ] + } + }, + "/apis/networking.k8s.io/v1/ingressclasses": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of IngressClass", + "operationId": "deleteNetworkingV1CollectionIngressClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind IngressClass", + "operationId": "listNetworkingV1IngressClass", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClassList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create an IngressClass", + "operationId": "createNetworkingV1IngressClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1" + } + } + }, + "/apis/networking.k8s.io/v1/ingressclasses/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete an IngressClass", + "operationId": "deleteNetworkingV1IngressClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified IngressClass", + "operationId": "readNetworkingV1IngressClass", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the IngressClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified IngressClass", + "operationId": "patchNetworkingV1IngressClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified IngressClass", + "operationId": "replaceNetworkingV1IngressClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1" + } + } + }, + "/apis/networking.k8s.io/v1/ingresses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Ingress", + "operationId": "listNetworkingV1IngressForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Ingress", + "operationId": "deleteNetworkingV1CollectionNamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Ingress", + "operationId": "listNetworkingV1NamespacedIngress", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create an Ingress", + "operationId": "createNetworkingV1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + } + }, + "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete an Ingress", + "operationId": "deleteNetworkingV1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Ingress", + "operationId": "readNetworkingV1NamespacedIngress", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Ingress", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Ingress", + "operationId": "patchNetworkingV1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Ingress", + "operationId": "replaceNetworkingV1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + } + }, + "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified Ingress", + "operationId": "readNetworkingV1NamespacedIngressStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Ingress", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified Ingress", + "operationId": "patchNetworkingV1NamespacedIngressStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified Ingress", + "operationId": "replaceNetworkingV1NamespacedIngressStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + } + }, + "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of NetworkPolicy", + "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingV1NamespacedNetworkPolicy", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a NetworkPolicy", + "operationId": "createNetworkingV1NamespacedNetworkPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + } + }, + "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a NetworkPolicy", + "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified NetworkPolicy", + "operationId": "readNetworkingV1NamespacedNetworkPolicy", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the NetworkPolicy", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified NetworkPolicy", + "operationId": "patchNetworkingV1NamespacedNetworkPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified NetworkPolicy", + "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + } + }, + "/apis/networking.k8s.io/v1/networkpolicies": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1/watch/ingressclasses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingV1IngressClassList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1/watch/ingressclasses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingV1IngressClass", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the IngressClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1/watch/ingresses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingV1IngressListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingV1NamespacedIngressList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingV1NamespacedIngress", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Ingress", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingV1NamespacedNetworkPolicy", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the NetworkPolicy", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1/watch/networkpolicies": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getNetworkingV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ] + } + }, + "/apis/networking.k8s.io/v1beta1/ingressclasses": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of IngressClass", + "operationId": "deleteNetworkingV1beta1CollectionIngressClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind IngressClass", + "operationId": "listNetworkingV1beta1IngressClass", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClassList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create an IngressClass", + "operationId": "createNetworkingV1beta1IngressClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1beta1" + } + } + }, + "/apis/networking.k8s.io/v1beta1/ingressclasses/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete an IngressClass", + "operationId": "deleteNetworkingV1beta1IngressClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified IngressClass", + "operationId": "readNetworkingV1beta1IngressClass", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the IngressClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified IngressClass", + "operationId": "patchNetworkingV1beta1IngressClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified IngressClass", + "operationId": "replaceNetworkingV1beta1IngressClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1beta1" + } + } + }, + "/apis/networking.k8s.io/v1beta1/ingresses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Ingress", + "operationId": "listNetworkingV1beta1IngressForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Ingress", + "operationId": "deleteNetworkingV1beta1CollectionNamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Ingress", + "operationId": "listNetworkingV1beta1NamespacedIngress", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IngressList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create an Ingress", + "operationId": "createNetworkingV1beta1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + } + }, + "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete an Ingress", + "operationId": "deleteNetworkingV1beta1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Ingress", + "operationId": "readNetworkingV1beta1NamespacedIngress", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the Ingress", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Ingress", + "operationId": "patchNetworkingV1beta1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Ingress", + "operationId": "replaceNetworkingV1beta1NamespacedIngress", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + } + }, + "/apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified Ingress", + "operationId": "readNetworkingV1beta1NamespacedIngressStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the Ingress", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified Ingress", + "operationId": "patchNetworkingV1beta1NamespacedIngressStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified Ingress", + "operationId": "replaceNetworkingV1beta1NamespacedIngressStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1beta1.Ingress" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + } + }, + "/apis/networking.k8s.io/v1beta1/watch/ingressclasses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingV1beta1IngressClassList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1beta1/watch/ingressclasses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingV1beta1IngressClass", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "IngressClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the IngressClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1beta1/watch/ingresses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingV1beta1IngressListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingV1beta1NamespacedIngressList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/networking.k8s.io/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingV1beta1NamespacedIngress", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "networking_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Ingress", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/node.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getNodeAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node" + ] + } + }, + "/apis/node.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getNodeV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1" + ] + } + }, + "/apis/node.k8s.io/v1/runtimeclasses": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of RuntimeClass", + "operationId": "deleteNodeV1CollectionRuntimeClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind RuntimeClass", + "operationId": "listNodeV1RuntimeClass", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClassList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a RuntimeClass", + "operationId": "createNodeV1RuntimeClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1" + } + } + }, + "/apis/node.k8s.io/v1/runtimeclasses/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a RuntimeClass", + "operationId": "deleteNodeV1RuntimeClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified RuntimeClass", + "operationId": "readNodeV1RuntimeClass", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the RuntimeClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified RuntimeClass", + "operationId": "patchNodeV1RuntimeClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified RuntimeClass", + "operationId": "replaceNodeV1RuntimeClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1" + } + } + }, + "/apis/node.k8s.io/v1/watch/runtimeclasses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNodeV1RuntimeClassList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/node.k8s.io/v1/watch/runtimeclasses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNodeV1RuntimeClass", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the RuntimeClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/node.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getNodeV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1beta1" + ] + } + }, + "/apis/node.k8s.io/v1beta1/runtimeclasses": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of RuntimeClass", + "operationId": "deleteNodeV1beta1CollectionRuntimeClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind RuntimeClass", + "operationId": "listNodeV1beta1RuntimeClass", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClassList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a RuntimeClass", + "operationId": "createNodeV1beta1RuntimeClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1beta1" + } + } + }, + "/apis/node.k8s.io/v1beta1/runtimeclasses/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a RuntimeClass", + "operationId": "deleteNodeV1beta1RuntimeClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified RuntimeClass", + "operationId": "readNodeV1beta1RuntimeClass", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the RuntimeClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified RuntimeClass", + "operationId": "patchNodeV1beta1RuntimeClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified RuntimeClass", + "operationId": "replaceNodeV1beta1RuntimeClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.node.v1beta1.RuntimeClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1beta1" + } + } + }, + "/apis/node.k8s.io/v1beta1/watch/runtimeclasses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNodeV1beta1RuntimeClassList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/node.k8s.io/v1beta1/watch/runtimeclasses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNodeV1beta1RuntimeClass", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "node_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "node.k8s.io", + "kind": "RuntimeClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the RuntimeClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/policy/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getPolicyAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy" + ] + } + }, + "/apis/policy/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getPolicyV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ] + } + }, + "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of PodDisruptionBudget", + "operationId": "deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind PodDisruptionBudget", + "operationId": "listPolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a PodDisruptionBudget", + "operationId": "createPolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + } + }, + "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a PodDisruptionBudget", + "operationId": "deletePolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified PodDisruptionBudget", + "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the PodDisruptionBudget", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified PodDisruptionBudget", + "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified PodDisruptionBudget", + "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + } + }, + "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified PodDisruptionBudget", + "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudgetStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the PodDisruptionBudget", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified PodDisruptionBudget", + "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified PodDisruptionBudget", + "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + } + }, + "/apis/policy/v1beta1/poddisruptionbudgets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind PodDisruptionBudget", + "operationId": "listPolicyV1beta1PodDisruptionBudgetForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/policy/v1beta1/podsecuritypolicies": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of PodSecurityPolicy", + "operationId": "deletePolicyV1beta1CollectionPodSecurityPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind PodSecurityPolicy", + "operationId": "listPolicyV1beta1PodSecurityPolicy", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicyList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a PodSecurityPolicy", + "operationId": "createPolicyV1beta1PodSecurityPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + } + }, + "/apis/policy/v1beta1/podsecuritypolicies/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a PodSecurityPolicy", + "operationId": "deletePolicyV1beta1PodSecurityPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified PodSecurityPolicy", + "operationId": "readPolicyV1beta1PodSecurityPolicy", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the PodSecurityPolicy", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified PodSecurityPolicy", + "operationId": "patchPolicyV1beta1PodSecurityPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified PodSecurityPolicy", + "operationId": "replacePolicyV1beta1PodSecurityPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + } + }, + "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudgetList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudget", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the PodDisruptionBudget", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/policy/v1beta1/watch/poddisruptionbudgets": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/policy/v1beta1/watch/podsecuritypolicies": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchPolicyV1beta1PodSecurityPolicyList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/policy/v1beta1/watch/podsecuritypolicies/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchPolicyV1beta1PodSecurityPolicy", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the PodSecurityPolicy", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getRbacAuthorizationAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization" + ] + } + }, + "/apis/rbac.authorization.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getRbacAuthorizationV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ] + } + }, + "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ClusterRoleBinding", + "operationId": "deleteRbacAuthorizationV1CollectionClusterRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ClusterRoleBinding", + "operationId": "listRbacAuthorizationV1ClusterRoleBinding", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ClusterRoleBinding", + "operationId": "createRbacAuthorizationV1ClusterRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ClusterRoleBinding", + "operationId": "deleteRbacAuthorizationV1ClusterRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ClusterRoleBinding", + "operationId": "readRbacAuthorizationV1ClusterRoleBinding", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ClusterRoleBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ClusterRoleBinding", + "operationId": "patchRbacAuthorizationV1ClusterRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ClusterRoleBinding", + "operationId": "replaceRbacAuthorizationV1ClusterRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1/clusterroles": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ClusterRole", + "operationId": "deleteRbacAuthorizationV1CollectionClusterRole", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ClusterRole", + "operationId": "listRbacAuthorizationV1ClusterRole", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ClusterRole", + "operationId": "createRbacAuthorizationV1ClusterRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ClusterRole", + "operationId": "deleteRbacAuthorizationV1ClusterRole", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ClusterRole", + "operationId": "readRbacAuthorizationV1ClusterRole", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ClusterRole", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ClusterRole", + "operationId": "patchRbacAuthorizationV1ClusterRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ClusterRole", + "operationId": "replaceRbacAuthorizationV1ClusterRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of RoleBinding", + "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind RoleBinding", + "operationId": "listRbacAuthorizationV1NamespacedRoleBinding", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a RoleBinding", + "operationId": "createRbacAuthorizationV1NamespacedRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a RoleBinding", + "operationId": "deleteRbacAuthorizationV1NamespacedRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified RoleBinding", + "operationId": "readRbacAuthorizationV1NamespacedRoleBinding", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the RoleBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified RoleBinding", + "operationId": "patchRbacAuthorizationV1NamespacedRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified RoleBinding", + "operationId": "replaceRbacAuthorizationV1NamespacedRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Role", + "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRole", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Role", + "operationId": "listRbacAuthorizationV1NamespacedRole", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Role", + "operationId": "createRbacAuthorizationV1NamespacedRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a Role", + "operationId": "deleteRbacAuthorizationV1NamespacedRole", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Role", + "operationId": "readRbacAuthorizationV1NamespacedRole", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the Role", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Role", + "operationId": "patchRbacAuthorizationV1NamespacedRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Role", + "operationId": "replaceRbacAuthorizationV1NamespacedRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1/rolebindings": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind RoleBinding", + "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/roles": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Role", + "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1ClusterRoleBindingList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchRbacAuthorizationV1ClusterRoleBinding", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ClusterRoleBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1ClusterRoleList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchRbacAuthorizationV1ClusterRole", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ClusterRole", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1NamespacedRoleBindingList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchRbacAuthorizationV1NamespacedRoleBinding", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the RoleBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1NamespacedRoleList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchRbacAuthorizationV1NamespacedRole", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Role", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/rolebindings": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1RoleBindingListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/roles": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1RoleListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getRbacAuthorizationV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ] + } + }, + "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ClusterRoleBinding", + "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ClusterRoleBinding", + "operationId": "listRbacAuthorizationV1beta1ClusterRoleBinding", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ClusterRoleBinding", + "operationId": "createRbacAuthorizationV1beta1ClusterRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ClusterRoleBinding", + "operationId": "deleteRbacAuthorizationV1beta1ClusterRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ClusterRoleBinding", + "operationId": "readRbacAuthorizationV1beta1ClusterRoleBinding", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the ClusterRoleBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ClusterRoleBinding", + "operationId": "patchRbacAuthorizationV1beta1ClusterRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ClusterRoleBinding", + "operationId": "replaceRbacAuthorizationV1beta1ClusterRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ClusterRole", + "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRole", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ClusterRole", + "operationId": "listRbacAuthorizationV1beta1ClusterRole", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ClusterRole", + "operationId": "createRbacAuthorizationV1beta1ClusterRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ClusterRole", + "operationId": "deleteRbacAuthorizationV1beta1ClusterRole", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ClusterRole", + "operationId": "readRbacAuthorizationV1beta1ClusterRole", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the ClusterRole", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ClusterRole", + "operationId": "patchRbacAuthorizationV1beta1ClusterRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ClusterRole", + "operationId": "replaceRbacAuthorizationV1beta1ClusterRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of RoleBinding", + "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind RoleBinding", + "operationId": "listRbacAuthorizationV1beta1NamespacedRoleBinding", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a RoleBinding", + "operationId": "createRbacAuthorizationV1beta1NamespacedRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a RoleBinding", + "operationId": "deleteRbacAuthorizationV1beta1NamespacedRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified RoleBinding", + "operationId": "readRbacAuthorizationV1beta1NamespacedRoleBinding", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the RoleBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified RoleBinding", + "operationId": "patchRbacAuthorizationV1beta1NamespacedRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified RoleBinding", + "operationId": "replaceRbacAuthorizationV1beta1NamespacedRoleBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of Role", + "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRole", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Role", + "operationId": "listRbacAuthorizationV1beta1NamespacedRole", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a Role", + "operationId": "createRbacAuthorizationV1beta1NamespacedRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a Role", + "operationId": "deleteRbacAuthorizationV1beta1NamespacedRole", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified Role", + "operationId": "readRbacAuthorizationV1beta1NamespacedRole", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the Role", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified Role", + "operationId": "patchRbacAuthorizationV1beta1NamespacedRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified Role", + "operationId": "replaceRbacAuthorizationV1beta1NamespacedRole", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + } + }, + "/apis/rbac.authorization.k8s.io/v1beta1/rolebindings": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind RoleBinding", + "operationId": "listRbacAuthorizationV1beta1RoleBindingForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/roles": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind Role", + "operationId": "listRbacAuthorizationV1beta1RoleForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBindingList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBinding", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ClusterRoleBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1beta1ClusterRoleList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchRbacAuthorizationV1beta1ClusterRole", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ClusterRole", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBindingList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBinding", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the RoleBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchRbacAuthorizationV1beta1NamespacedRole", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the Role", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/roles": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchRbacAuthorizationV1beta1RoleListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/scheduling.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getSchedulingAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling" + ] + } + }, + "/apis/scheduling.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getSchedulingV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1" + ] + } + }, + "/apis/scheduling.k8s.io/v1/priorityclasses": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of PriorityClass", + "operationId": "deleteSchedulingV1CollectionPriorityClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind PriorityClass", + "operationId": "listSchedulingV1PriorityClass", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClassList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a PriorityClass", + "operationId": "createSchedulingV1PriorityClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1" + } + } + }, + "/apis/scheduling.k8s.io/v1/priorityclasses/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a PriorityClass", + "operationId": "deleteSchedulingV1PriorityClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified PriorityClass", + "operationId": "readSchedulingV1PriorityClass", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the PriorityClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified PriorityClass", + "operationId": "patchSchedulingV1PriorityClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified PriorityClass", + "operationId": "replaceSchedulingV1PriorityClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1" + } + } + }, + "/apis/scheduling.k8s.io/v1/watch/priorityclasses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchSchedulingV1PriorityClassList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/scheduling.k8s.io/v1/watch/priorityclasses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchSchedulingV1PriorityClass", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the PriorityClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/scheduling.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getSchedulingV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1beta1" + ] + } + }, + "/apis/scheduling.k8s.io/v1beta1/priorityclasses": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of PriorityClass", + "operationId": "deleteSchedulingV1beta1CollectionPriorityClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind PriorityClass", + "operationId": "listSchedulingV1beta1PriorityClass", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClassList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a PriorityClass", + "operationId": "createSchedulingV1beta1PriorityClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1beta1" + } + } + }, + "/apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a PriorityClass", + "operationId": "deleteSchedulingV1beta1PriorityClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified PriorityClass", + "operationId": "readSchedulingV1beta1PriorityClass", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the PriorityClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified PriorityClass", + "operationId": "patchSchedulingV1beta1PriorityClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified PriorityClass", + "operationId": "replaceSchedulingV1beta1PriorityClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1beta1" + } + } + }, + "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchSchedulingV1beta1PriorityClassList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchSchedulingV1beta1PriorityClass", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the PriorityClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getStorageAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage" + ] + } + }, + "/apis/storage.k8s.io/v1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getStorageV1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ] + } + }, + "/apis/storage.k8s.io/v1/csidrivers": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of CSIDriver", + "operationId": "deleteStorageV1CollectionCSIDriver", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind CSIDriver", + "operationId": "listStorageV1CSIDriver", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a CSIDriver", + "operationId": "createStorageV1CSIDriver", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1" + } + } + }, + "/apis/storage.k8s.io/v1/csidrivers/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a CSIDriver", + "operationId": "deleteStorageV1CSIDriver", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified CSIDriver", + "operationId": "readStorageV1CSIDriver", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the CSIDriver", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified CSIDriver", + "operationId": "patchStorageV1CSIDriver", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified CSIDriver", + "operationId": "replaceStorageV1CSIDriver", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1" + } + } + }, + "/apis/storage.k8s.io/v1/csinodes": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of CSINode", + "operationId": "deleteStorageV1CollectionCSINode", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind CSINode", + "operationId": "listStorageV1CSINode", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a CSINode", + "operationId": "createStorageV1CSINode", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1" + } + } + }, + "/apis/storage.k8s.io/v1/csinodes/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a CSINode", + "operationId": "deleteStorageV1CSINode", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified CSINode", + "operationId": "readStorageV1CSINode", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the CSINode", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified CSINode", + "operationId": "patchStorageV1CSINode", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified CSINode", + "operationId": "replaceStorageV1CSINode", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1" + } + } + }, + "/apis/storage.k8s.io/v1/storageclasses": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of StorageClass", + "operationId": "deleteStorageV1CollectionStorageClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind StorageClass", + "operationId": "listStorageV1StorageClass", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClassList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a StorageClass", + "operationId": "createStorageV1StorageClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + } + }, + "/apis/storage.k8s.io/v1/storageclasses/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a StorageClass", + "operationId": "deleteStorageV1StorageClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified StorageClass", + "operationId": "readStorageV1StorageClass", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the StorageClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified StorageClass", + "operationId": "patchStorageV1StorageClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified StorageClass", + "operationId": "replaceStorageV1StorageClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + } + }, + "/apis/storage.k8s.io/v1/volumeattachments": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of VolumeAttachment", + "operationId": "deleteStorageV1CollectionVolumeAttachment", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind VolumeAttachment", + "operationId": "listStorageV1VolumeAttachment", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a VolumeAttachment", + "operationId": "createStorageV1VolumeAttachment", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + } + }, + "/apis/storage.k8s.io/v1/volumeattachments/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a VolumeAttachment", + "operationId": "deleteStorageV1VolumeAttachment", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified VolumeAttachment", + "operationId": "readStorageV1VolumeAttachment", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the VolumeAttachment", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified VolumeAttachment", + "operationId": "patchStorageV1VolumeAttachment", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified VolumeAttachment", + "operationId": "replaceStorageV1VolumeAttachment", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + } + }, + "/apis/storage.k8s.io/v1/volumeattachments/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified VolumeAttachment", + "operationId": "readStorageV1VolumeAttachmentStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the VolumeAttachment", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified VolumeAttachment", + "operationId": "patchStorageV1VolumeAttachmentStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified VolumeAttachment", + "operationId": "replaceStorageV1VolumeAttachmentStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + } + }, + "/apis/storage.k8s.io/v1/watch/csidrivers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageV1CSIDriverList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1/watch/csidrivers/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageV1CSIDriver", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the CSIDriver", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1/watch/csinodes": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageV1CSINodeList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1/watch/csinodes/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageV1CSINode", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the CSINode", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1/watch/storageclasses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageV1StorageClassList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1/watch/storageclasses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageV1StorageClass", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the StorageClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1/watch/volumeattachments": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageV1VolumeAttachmentList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1/watch/volumeattachments/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageV1VolumeAttachment", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the VolumeAttachment", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1beta1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getStorageV1beta1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ] + } + }, + "/apis/storage.k8s.io/v1beta1/csidrivers": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of CSIDriver", + "operationId": "deleteStorageV1beta1CollectionCSIDriver", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind CSIDriver", + "operationId": "listStorageV1beta1CSIDriver", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriverList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a CSIDriver", + "operationId": "createStorageV1beta1CSIDriver", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1beta1" + } + } + }, + "/apis/storage.k8s.io/v1beta1/csidrivers/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a CSIDriver", + "operationId": "deleteStorageV1beta1CSIDriver", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified CSIDriver", + "operationId": "readStorageV1beta1CSIDriver", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the CSIDriver", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified CSIDriver", + "operationId": "patchStorageV1beta1CSIDriver", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified CSIDriver", + "operationId": "replaceStorageV1beta1CSIDriver", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSIDriver" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1beta1" + } + } + }, + "/apis/storage.k8s.io/v1beta1/csinodes": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of CSINode", + "operationId": "deleteStorageV1beta1CollectionCSINode", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind CSINode", + "operationId": "listStorageV1beta1CSINode", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINodeList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a CSINode", + "operationId": "createStorageV1beta1CSINode", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1beta1" + } + } + }, + "/apis/storage.k8s.io/v1beta1/csinodes/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a CSINode", + "operationId": "deleteStorageV1beta1CSINode", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified CSINode", + "operationId": "readStorageV1beta1CSINode", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the CSINode", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified CSINode", + "operationId": "patchStorageV1beta1CSINode", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified CSINode", + "operationId": "replaceStorageV1beta1CSINode", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.CSINode" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1beta1" + } + } + }, + "/apis/storage.k8s.io/v1beta1/storageclasses": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of StorageClass", + "operationId": "deleteStorageV1beta1CollectionStorageClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind StorageClass", + "operationId": "listStorageV1beta1StorageClass", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClassList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a StorageClass", + "operationId": "createStorageV1beta1StorageClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + } + }, + "/apis/storage.k8s.io/v1beta1/storageclasses/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a StorageClass", + "operationId": "deleteStorageV1beta1StorageClass", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified StorageClass", + "operationId": "readStorageV1beta1StorageClass", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the StorageClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified StorageClass", + "operationId": "patchStorageV1beta1StorageClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified StorageClass", + "operationId": "replaceStorageV1beta1StorageClass", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + } + }, + "/apis/storage.k8s.io/v1beta1/volumeattachments": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of VolumeAttachment", + "operationId": "deleteStorageV1beta1CollectionVolumeAttachment", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind VolumeAttachment", + "operationId": "listStorageV1beta1VolumeAttachment", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a VolumeAttachment", + "operationId": "createStorageV1beta1VolumeAttachment", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1beta1" + } + } + }, + "/apis/storage.k8s.io/v1beta1/volumeattachments/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a VolumeAttachment", + "operationId": "deleteStorageV1beta1VolumeAttachment", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1beta1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified VolumeAttachment", + "operationId": "readStorageV1beta1VolumeAttachment", + "parameters": [ + { + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "exact", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", + "in": "query", + "name": "export", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "name of the VolumeAttachment", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified VolumeAttachment", + "operationId": "patchStorageV1beta1VolumeAttachment", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1beta1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified VolumeAttachment", + "operationId": "replaceStorageV1beta1VolumeAttachment", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1beta1" + } + } + }, + "/apis/storage.k8s.io/v1beta1/watch/csidrivers": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageV1beta1CSIDriverList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1beta1/watch/csidrivers/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageV1beta1CSIDriver", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSIDriver", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the CSIDriver", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1beta1/watch/csinodes": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageV1beta1CSINodeList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1beta1/watch/csinodes/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageV1beta1CSINode", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "CSINode", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the CSINode", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1beta1/watch/storageclasses": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageV1beta1StorageClassList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageV1beta1StorageClass", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the StorageClass", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1beta1/watch/volumeattachments": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageV1beta1VolumeAttachmentList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storage.k8s.io/v1beta1/watch/volumeattachments/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageV1beta1VolumeAttachment", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1beta1" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the VolumeAttachment", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed.", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/logs/": { + "get": { + "operationId": "logFileListHandler", + "responses": { + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "logs" + ] + } + }, + "/logs/{logpath}": { + "get": { + "operationId": "logFileHandler", + "responses": { + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "logs" + ] + }, + "parameters": [ + { + "description": "path to the log", + "in": "path", + "name": "logpath", + "required": true, + "type": "string", + "uniqueItems": true + } + ] + }, + "/openid/v1/jwks/": { + "get": { + "description": "get service account issuer OpenID JSON Web Key Set (contains public token verification keys)", + "operationId": "getServiceAccountIssuerOpenIDKeyset", + "produces": [ + "application/jwk-set+json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "openid" + ] + } + }, + "/version/": { + "get": { + "consumes": [ + "application/json" + ], + "description": "get the code version", + "operationId": "getCodeVersion", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "version" + ] + } + } + }, + "security": [ + { + "BearerToken": [] + } + ], + "securityDefinitions": { + "BearerToken": { + "description": "Bearer Token authentication", + "in": "header", + "name": "authorization", + "type": "apiKey" + } + }, + "swagger": "2.0" +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.go b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.go index 8c947ad1aa..4f4ec3e4ac 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.go @@ -80,7 +80,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _kustomizationapiSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xdc\x54\xb1\x6e\xdb\x30\x10\xdd\xfd\x15\x04\xdb\xd1\x52\xe0\xad\xf0\x56\x74\xe8\x10\x04\x08\x90\x6e\x45\x86\xb3\x7c\x52\xae\x92\x49\xf6\x78\x12\xea\x16\xfe\xf7\x42\xac\xa5\x88\xb6\xd4\xb4\x46\x1c\x24\x1e\x0c\x18\xd4\xdd\x7b\xbc\x7b\x8f\xef\xd7\x4c\x29\xbd\xc6\x9c\x0c\x09\x59\xe3\xf5\x52\xb5\x47\x4a\x69\xb2\x69\xf9\xc1\xa7\xe0\x28\x05\xe7\x7c\xda\x2c\xd2\x4f\xd6\xe4\x54\xdc\x80\xfb\xc8\xc5\x63\xa5\x52\xda\xb1\x75\xc8\x42\x38\x3c\x55\x4a\x7f\x46\x83\x0c\x62\xf9\xa0\x21\x7c\x7c\xcf\x98\xeb\xa5\xd2\xef\xae\x06\xfc\x57\x23\xb4\x31\x4a\x0f\xb1\xdb\xff\xdb\xcd\xbb\x6b\xc0\x7a\x1d\x50\xa0\xba\x1d\x5e\x28\x87\xca\x63\x5f\x24\x5b\x87\x2d\xad\x5d\x7d\xc3\x4c\x74\x7f\xfe\x23\x29\xeb\x15\xb2\x41\x41\x9f\x14\x6c\x6b\x97\x34\xc8\x9e\xac\x49\x4a\x32\x6b\xbd\x54\x5f\x7b\xea\x68\x8e\x50\xdb\x22\x96\xb5\x17\xbb\xa1\x9f\x98\x66\x61\x51\x61\x10\xb2\x3d\x45\xa8\xde\x63\xe9\x78\x97\x51\xc9\x9e\xb6\xad\x6a\x16\x2b\x14\x58\x1c\x0f\x7d\x3f\x1b\x8c\x3e\xa6\xd5\x1d\x66\x8c\xf2\x3a\x84\x7a\x9c\xae\xdb\x7e\x84\xdf\x29\xe2\x85\xc9\x14\x97\x22\xf0\x40\x80\xe7\x57\x77\x4a\xaf\x49\x81\x0d\x6c\xd0\x3b\xc8\xfe\x7d\xf9\xf3\xb8\xf9\x94\xbe\x15\x3e\x40\x43\x96\x4f\xe9\xbd\x6e\x6e\x81\xf8\xce\xd6\x9c\xe1\xe9\x8e\x8c\x51\x2e\xc4\x59\xb1\xf8\xcf\x6f\xae\xeb\xfd\x65\x40\xfe\x40\xf5\xe6\x62\xfc\x5e\x13\x63\x3c\x90\xfe\xb2\x75\x78\x83\x02\x1d\xd3\xfd\xfc\x29\x33\x66\x5d\xf6\xf5\x93\x1c\x0a\x4c\x82\x9b\x43\xd5\xff\x47\xf7\x38\x5d\x07\x20\xbb\xf9\x98\x11\x81\x19\xb6\xf1\x26\x23\x4d\x1d\x48\xf6\x90\x6c\x90\x0b\x4c\x4a\xdc\xb6\x2d\xe1\x4d\x3c\xd5\xe1\x85\x41\xb0\x08\x0d\xa1\x7b\xdc\xeb\x3e\x44\xc5\xd9\x96\x31\x48\xa2\x57\xb9\x89\x37\xfd\x18\xe3\xc7\x72\x86\xc7\x38\x91\x83\x93\x8f\xab\x22\x41\x86\xea\x28\x33\x27\x5c\x34\x95\xc5\x7f\x37\xc8\xa8\x8d\x73\xaa\x8e\xa3\xfa\xfc\xb4\x68\x9a\x97\x62\x7d\xdb\x4e\x8d\x9c\x74\xaa\x53\x67\xed\x6f\xf7\x3b\x00\x00\xff\xff\xfe\x97\xce\xec\x37\x0c\x00\x00") +var _kustomizationapiSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x56\xc1\x6e\xdb\x30\x0c\xbd\xe7\x2b\x04\x6d\xc7\xd8\x45\x6e\x43\x6e\xc3\x0e\x3b\x14\x05\x0a\x74\xb7\xa1\x07\xc6\xa1\x5d\xce\x8e\xa4\x51\xb4\xb1\x6c\xc8\xbf\x0f\xd6\x62\xd7\x4a\xec\x75\x0b\x1a\xac\x4b\x0f\x06\x0c\x99\x7c\x4f\xe4\x7b\x24\xfc\x63\xa6\x94\x5e\x63\x4e\x86\x84\xac\xf1\x7a\xa9\xda\x23\xa5\x34\xd9\xb4\x7c\xe7\x53\x70\x94\x82\x73\x3e\x6d\x16\xe9\x07\x6b\x72\x2a\x6e\xc0\xbd\xe7\xe2\x31\x52\x29\xed\xd8\x3a\x64\x21\x1c\x9e\x2a\xa5\x3f\xa2\x41\x06\xb1\x7c\x90\x10\x3e\xbe\x65\xcc\xf5\x52\xe9\x37\x57\x03\xfe\xab\x11\xda\x18\xa5\x87\xd8\xed\xdf\x76\xf3\xee\x1a\xb0\x5e\x07\x14\xa8\x6e\x87\x17\xca\xa1\xf2\xd8\x07\xc9\xd6\x61\x4b\x6b\x57\x5f\x30\x13\xdd\x9f\x7f\x4b\xca\x7a\x85\x6c\x50\xd0\x27\x05\xdb\xda\x25\x0d\xb2\x27\x6b\x92\x92\xcc\x5a\x2f\xd5\xe7\x9e\x3a\xaa\x23\xc4\xb6\x88\x65\xed\xc5\x6e\xe8\x3b\xa6\x59\x68\x54\x28\x84\x6c\x4f\x11\xa2\xf7\x58\x3a\xee\x65\x14\xb2\xa7\x6d\xa3\x9a\xc5\x0a\x05\x16\xc7\x45\xdf\xcf\x06\xa5\x8f\x69\x75\x87\x19\xa3\xbc\x0c\xa1\x1e\xab\xeb\xba\x1f\xe1\x77\x8a\x78\x61\x32\xc5\xa5\x08\x3c\x10\xe0\xf9\xd5\x9d\xd2\x6b\x52\x60\x03\x1b\xf4\x0e\xb2\x3f\x6f\xfe\x3c\x4e\x3e\x25\x6f\x85\x0f\xd0\x90\xe5\x53\x72\xaf\x9b\x5b\x20\xbe\xb3\x35\x67\x78\xba\x23\x63\x94\x0b\x71\x56\x2c\xfe\xf3\x9b\xeb\x7a\x7f\x19\x90\x5f\x50\xbd\xb9\x18\xbf\xd6\xc4\x18\x17\xa4\x3f\x6d\x1d\xde\xa0\x40\xc7\x74\x3f\x7f\xca\x8c\x59\xb7\xfb\xfa\x4a\x0e\x05\x26\xc1\xcd\xa1\xea\x7f\xa3\x7b\xbc\x5d\x07\x20\xbb\xf9\x98\x11\x81\x19\xb6\x71\x27\x23\x4d\x1d\x48\xf6\x90\x6c\x90\x0b\x4c\x4a\xdc\xb6\x29\x61\x26\x9e\xca\xf0\xc2\x20\x58\x84\x84\x90\x3d\xee\x75\x1f\x56\xc5\xd9\x9a\x31\xd8\x44\x2f\xb2\x13\xff\xf5\x30\xc6\xc3\x72\x86\x61\x9c\xd8\x83\x93\xc3\x55\x91\x20\x43\x75\xb4\x33\x27\x5c\x34\xb5\x8b\x7f\x6f\x90\x51\x1b\xe7\x54\x1d\xaf\xea\xf3\xd3\xa2\x69\xfe\x0d\xeb\xeb\xf8\x8f\x89\x0d\x78\xaa\xc1\x67\xed\xb3\xfb\x19\x00\x00\xff\xff\x2f\x39\x79\xd0\x6e\x0c\x00\x00") func kustomizationapiSwaggerJsonBytes() ([]byte, error) { return bindataRead( @@ -95,7 +95,7 @@ func kustomizationapiSwaggerJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "kustomizationapi/swagger.json", size: 3127, mode: os.FileMode(420), modTime: time.Unix(1602011464, 0)} + info := bindataFileInfo{name: "kustomizationapi/swagger.json", size: 3182, mode: os.FileMode(420), modTime: time.Unix(1615228558, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.json b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.json index bbe7db4fea..7441a5ee64 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.json +++ b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.json @@ -111,6 +111,9 @@ "type": "string" }, "type": "array" + }, + "env": { + "type": "string" } }, "additionalProperties": false, diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/openapi.go b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/openapi.go index cde50697e7..5b7857606b 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/openapi/openapi.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/openapi/openapi.go @@ -10,7 +10,6 @@ import ( "path/filepath" "reflect" "strings" - "sync" "github.com/go-openapi/spec" "sigs.k8s.io/kustomize/kyaml/errors" @@ -22,14 +21,32 @@ import ( // globalSchema contains global state information about the openapi var globalSchema openapiData +// kubernetesOpenAPIVersion specifies which builtin kubernetes schema to use +var kubernetesOpenAPIVersion string + +// customSchemaFile stores the custom OpenApi schema if it is provided +var customSchema []byte + // openapiData contains the parsed openapi state. this is in a struct rather than // a list of vars so that it can be reset from tests. type openapiData struct { - setup sync.Once - schema spec.Schema - schemaByResourceType map[yaml.TypeMeta]*spec.Schema + // schema holds the OpenAPI schema data + schema spec.Schema + + // schemaForResourceType is a map of Resource types to their schemas + schemaByResourceType map[yaml.TypeMeta]*spec.Schema + + // namespaceabilityByResourceType stores whether a given Resource type + // is namespaceable or not namespaceabilityByResourceType map[yaml.TypeMeta]bool - noUseBuiltInSchema bool + + // noUseBuiltInSchema stores whether we want to prevent using the built-n + // Kubernetes schema as part of the global schema + noUseBuiltInSchema bool + + // schemaInit stores whether or not we've parsed the schema already, + // so that we only reparse the when necessary (to speed up performance) + schemaInit bool } // ResourceSchema wraps the OpenAPI Schema. @@ -348,25 +365,20 @@ func (rs *ResourceSchema) PatchStrategyAndKeyList() (string, []string) { // empty patch strategy return "", []string{} } - mkList, found := rs.Schema.Extensions[kubernetesMergeKeyMapList] if found { // mkList is []interface, convert to []string mkListStr := make([]string, len(mkList.([]interface{}))) - for i, v := range mkList.([]interface{}) { mkListStr[i] = v.(string) } - return ps.(string), mkListStr } - mk, found := rs.Schema.Extensions[kubernetesMergeKeyExtensionKey] if !found { // no mergeKey -- may be a primitive associative list (e.g. finalizers) return ps.(string), []string{} } - return ps.(string), []string{mk.(string)} } @@ -387,9 +399,9 @@ func (rs *ResourceSchema) PatchStrategyAndKey() (string, string) { } const ( - // kubernetesAPIDefaultVersion is the latest version number of the statically compiled in + // kubernetesOpenAPIDefaultVersion is the latest version number of the statically compiled in // OpenAPI schema for kubernetes built-in types - kubernetesAPIDefaultVersion = kubernetesapi.DefaultOpenApi + kubernetesOpenAPIDefaultVersion = kubernetesapi.DefaultOpenAPI // kustomizationAPIAssetName is the name of the asset containing the statically compiled in // OpenAPI definitions for Kustomization built-in types @@ -419,29 +431,97 @@ const ( kindKey = "kind" ) +// SetSchema sets the kubernetes OpenAPI schema version to use +func SetSchema(openAPIField map[string]string, schema []byte, reset bool) error { + // this should only be set once + schemaIsSet := (kubernetesOpenAPIVersion != "") || customSchema != nil + if schemaIsSet && !reset { + return nil + } + + version, exists := openAPIField["version"] + if exists && schema != nil { + return fmt.Errorf("builtin version and custom schema provided, cannot use both") + } + + if schema != nil { // use custom schema + customSchema = schema + kubernetesOpenAPIVersion = "custom" + return nil + } + + // use builtin version + kubernetesOpenAPIVersion = strings.ReplaceAll(version, ".", "") + if kubernetesOpenAPIVersion == "" { + return nil + } + if _, ok := kubernetesapi.OpenAPIMustAsset[kubernetesOpenAPIVersion]; !ok { + return fmt.Errorf("the specified OpenAPI version is not built in") + } + customSchema = nil + return nil +} + +// GetSchemaVersion returns what kubernetes OpenAPI version is being used +func GetSchemaVersion() string { + switch { + case kubernetesOpenAPIVersion == "" && customSchema == nil: + return kubernetesOpenAPIDefaultVersion + case customSchema != nil: + return "using custom schema from file provided" + default: + return kubernetesOpenAPIVersion + } +} + // initSchema parses the json schema func initSchema() { - globalSchema.setup.Do(func() { - if globalSchema.noUseBuiltInSchema { - // don't parse the built in schema - return - } + if globalSchema.schemaInit { + return + } + globalSchema.schemaInit = true - // parse the swagger, this should never fail - assetName := filepath.Join( - "kubernetesapi", - kubernetesAPIDefaultVersion, - "swagger.json") - if err := parse(kubernetesapi.OpenApiMustAsset[kubernetesAPIDefaultVersion](assetName)); err != nil { - // this should never happen - panic(err) + if customSchema != nil { + err := parse(customSchema) + if err != nil { + panic("invalid schema file") } - - if err := parse(kustomizationapi.MustAsset(kustomizationAPIAssetName)); err != nil { + if err = parse(kustomizationapi.MustAsset(kustomizationAPIAssetName)); err != nil { // this should never happen panic(err) } - }) + return + } + + if kubernetesOpenAPIVersion == "" { + parseBuiltinSchema(kubernetesOpenAPIDefaultVersion) + } else { + parseBuiltinSchema(kubernetesOpenAPIVersion) + } +} + +// parseBuiltinSchema calls parse to parse the json schemas +func parseBuiltinSchema(version string) { + if globalSchema.noUseBuiltInSchema { + // don't parse the built in schema + return + } + + // parse the swagger, this should never fail + assetName := filepath.Join( + "kubernetesapi", + version, + "swagger.json") + + if err := parse(kubernetesapi.OpenAPIMustAsset[version](assetName)); err != nil { + // this should never happen + panic(err) + } + + if err := parse(kustomizationapi.MustAsset(kustomizationAPIAssetName)); err != nil { + // this should never happen + panic(err) + } } // parse parses and indexes a single json schema diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/runfn/runfn.go b/vendor/sigs.k8s.io/kustomize/kyaml/runfn/runfn.go new file mode 100644 index 0000000000..5f5481797b --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/runfn/runfn.go @@ -0,0 +1,521 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package runfn + +import ( + "fmt" + "io" + "os" + "os/user" + "path" + "path/filepath" + "sort" + "strconv" + "strings" + "sync/atomic" + + "sigs.k8s.io/kustomize/kyaml/errors" + "sigs.k8s.io/kustomize/kyaml/fn/runtime/container" + "sigs.k8s.io/kustomize/kyaml/fn/runtime/exec" + "sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil" + "sigs.k8s.io/kustomize/kyaml/fn/runtime/starlark" + "sigs.k8s.io/kustomize/kyaml/kio" + "sigs.k8s.io/kustomize/kyaml/kio/kioutil" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// RunFns runs the set of configuration functions in a local directory against +// the Resources in that directory +type RunFns struct { + StorageMounts []runtimeutil.StorageMount + + // Path is the path to the directory containing functions + Path string + + // FunctionPaths Paths allows functions to be specified outside the configuration + // directory. + // Functions provided on FunctionPaths are globally scoped. + // If FunctionPaths length is > 0, then NoFunctionsFromInput defaults to true + FunctionPaths []string + + // Functions is an explicit list of functions to run against the input. + // Functions provided on Functions are globally scoped. + // If Functions length is > 0, then NoFunctionsFromInput defaults to true + Functions []*yaml.RNode + + // GlobalScope if true, functions read from input will be scoped globally rather + // than only to Resources under their subdirs. + GlobalScope bool + + // Input can be set to read the Resources from Input rather than from a directory + Input io.Reader + + // Network enables network access for functions that declare it + Network bool + + // Output can be set to write the result to Output rather than back to the directory + Output io.Writer + + // NoFunctionsFromInput if set to true will not read any functions from the input, + // and only use explicit sources + NoFunctionsFromInput *bool + + // EnableStarlark will enable functions run as starlark scripts + EnableStarlark bool + + // EnableExec will enable exec functions + EnableExec bool + + // DisableContainers will disable functions run as containers + DisableContainers bool + + // ResultsDir is where to write each functions results + ResultsDir string + + // LogSteps enables logging the function that is running. + LogSteps bool + + // LogWriter can be set to write the logs to LogWriter rather than stderr if LogSteps is enabled. + LogWriter io.Writer + + // resultsCount is used to generate the results filename for each container + resultsCount uint32 + + // functionFilterProvider provides a filter to perform the function. + // this is a variable so it can be mocked in tests + functionFilterProvider func( + filter runtimeutil.FunctionSpec, api *yaml.RNode, currentUser currentUserFunc) (kio.Filter, error) + + // AsCurrentUser is a boolean to indicate whether docker container should use + // the uid and gid that run the command + AsCurrentUser bool + + // Env contains environment variables that will be exported to container + Env []string + + // ContinueOnEmptyResult configures what happens when the underlying pipeline + // returns an empty result. + // If it is false (default), subsequent functions will be skipped and the + // result will be returned immediately. + // If it is true, the empty result will be provided as input to the next + // function in the list. + ContinueOnEmptyResult bool +} + +// Execute runs the command +func (r RunFns) Execute() error { + // make the path absolute so it works on mac + var err error + r.Path, err = filepath.Abs(r.Path) + if err != nil { + return errors.Wrap(err) + } + + // default the containerFilterProvider if it hasn't been override. Split out for testing. + (&r).init() + nodes, fltrs, output, err := r.getNodesAndFilters() + if err != nil { + return err + } + return r.runFunctions(nodes, output, fltrs) +} + +func (r RunFns) getNodesAndFilters() ( + *kio.PackageBuffer, []kio.Filter, *kio.LocalPackageReadWriter, error) { + // Read Resources from Directory or Input + buff := &kio.PackageBuffer{} + p := kio.Pipeline{Outputs: []kio.Writer{buff}} + // save the output dir because we will need it to write back + // the same one for reading must be used for writing if deleting Resources + var outputPkg *kio.LocalPackageReadWriter + if r.Path != "" { + outputPkg = &kio.LocalPackageReadWriter{PackagePath: r.Path, MatchFilesGlob: kio.MatchAll} + } + + if r.Input == nil { + p.Inputs = []kio.Reader{outputPkg} + } else { + p.Inputs = []kio.Reader{&kio.ByteReader{Reader: r.Input}} + } + if err := p.Execute(); err != nil { + return nil, nil, outputPkg, err + } + + fltrs, err := r.getFilters(buff.Nodes) + if err != nil { + return nil, nil, outputPkg, err + } + return buff, fltrs, outputPkg, nil +} + +func (r RunFns) getFilters(nodes []*yaml.RNode) ([]kio.Filter, error) { + var fltrs []kio.Filter + + // fns from annotations on the input resources + f, err := r.getFunctionsFromInput(nodes) + if err != nil { + return nil, err + } + fltrs = append(fltrs, f...) + + // fns from directories specified on the struct + f, err = r.getFunctionsFromFunctionPaths() + if err != nil { + return nil, err + } + fltrs = append(fltrs, f...) + + // explicit fns specified on the struct + f, err = r.getFunctionsFromFunctions() + if err != nil { + return nil, err + } + fltrs = append(fltrs, f...) + + return fltrs, nil +} + +// runFunctions runs the fltrs against the input and writes to either r.Output or output +func (r RunFns) runFunctions( + input kio.Reader, output kio.Writer, fltrs []kio.Filter) error { + // use the previously read Resources as input + var outputs []kio.Writer + if r.Output == nil { + // write back to the package + outputs = append(outputs, output) + } else { + // write to the output instead of the directory if r.Output is specified or + // the output is nil (reading from Input) + outputs = append(outputs, kio.ByteWriter{Writer: r.Output}) + } + + var err error + pipeline := kio.Pipeline{ + Inputs: []kio.Reader{input}, + Filters: fltrs, + Outputs: outputs, + ContinueOnEmptyResult: r.ContinueOnEmptyResult, + } + if r.LogSteps { + err = pipeline.ExecuteWithCallback(func(op kio.Filter) { + var identifier string + + switch filter := op.(type) { + case *container.Filter: + identifier = filter.Image + case *exec.Filter: + identifier = filter.Path + case *starlark.Filter: + identifier = filter.String() + default: + identifier = "unknown-type function" + } + + _, _ = fmt.Fprintf(r.LogWriter, "Running %s\n", identifier) + }) + } else { + err = pipeline.Execute() + } + if err != nil { + return err + } + + // check for deferred function errors + var errs []string + for i := range fltrs { + cf, ok := fltrs[i].(runtimeutil.DeferFailureFunction) + if !ok { + continue + } + if cf.GetExit() != nil { + errs = append(errs, cf.GetExit().Error()) + } + } + if len(errs) > 0 { + return fmt.Errorf(strings.Join(errs, "\n---\n")) + } + return nil +} + +// getFunctionsFromInput scans the input for functions and runs them +func (r RunFns) getFunctionsFromInput(nodes []*yaml.RNode) ([]kio.Filter, error) { + if *r.NoFunctionsFromInput { + return nil, nil + } + + buff := &kio.PackageBuffer{} + err := kio.Pipeline{ + Inputs: []kio.Reader{&kio.PackageBuffer{Nodes: nodes}}, + Filters: []kio.Filter{&runtimeutil.IsReconcilerFilter{}}, + Outputs: []kio.Writer{buff}, + }.Execute() + if err != nil { + return nil, err + } + err = sortFns(buff) + if err != nil { + return nil, err + } + return r.getFunctionFilters(false, buff.Nodes...) +} + +// getFunctionsFromFunctionPaths returns the set of functions read from r.FunctionPaths +// as a slice of Filters +func (r RunFns) getFunctionsFromFunctionPaths() ([]kio.Filter, error) { + buff := &kio.PackageBuffer{} + for i := range r.FunctionPaths { + err := kio.Pipeline{ + Inputs: []kio.Reader{ + kio.LocalPackageReader{PackagePath: r.FunctionPaths[i]}, + }, + Outputs: []kio.Writer{buff}, + }.Execute() + if err != nil { + return nil, err + } + } + return r.getFunctionFilters(true, buff.Nodes...) +} + +// getFunctionsFromFunctions returns the set of explicitly provided functions as +// Filters +func (r RunFns) getFunctionsFromFunctions() ([]kio.Filter, error) { + return r.getFunctionFilters(true, r.Functions...) +} + +// mergeContainerEnv will merge the envs specified by command line (imperative) and config +// file (declarative). If they have same key, the imperative value will be respected. +func (r RunFns) mergeContainerEnv(envs []string) []string { + imperative := runtimeutil.NewContainerEnvFromStringSlice(r.Env) + declarative := runtimeutil.NewContainerEnvFromStringSlice(envs) + for key, value := range imperative.EnvVars { + declarative.AddKeyValue(key, value) + } + + for _, key := range imperative.VarsToExport { + declarative.AddKey(key) + } + + return declarative.Raw() +} + +func (r RunFns) getFunctionFilters(global bool, fns ...*yaml.RNode) ( + []kio.Filter, error) { + var fltrs []kio.Filter + for i := range fns { + api := fns[i] + spec := runtimeutil.GetFunctionSpec(api) + if spec == nil { + // resource doesn't have function spec + continue + } + if spec.Container.Network && !r.Network { + // TODO(eddiezane): Provide error info about which function needs the network + return fltrs, errors.Errorf("network required but not enabled with --network") + } + // merge envs from imperative and declarative + spec.Container.Env = r.mergeContainerEnv(spec.Container.Env) + + c, err := r.functionFilterProvider(*spec, api, user.Current) + if err != nil { + return nil, err + } + + if c == nil { + continue + } + cf, ok := c.(*container.Filter) + if global && ok { + cf.Exec.GlobalScope = true + } + fltrs = append(fltrs, c) + } + return fltrs, nil +} + +// sortFns sorts functions so that functions with the longest paths come first +func sortFns(buff *kio.PackageBuffer) error { + var outerErr error + // sort the nodes so that we traverse them depth first + // functions deeper in the file system tree should be run first + sort.Slice(buff.Nodes, func(i, j int) bool { + mi, _ := buff.Nodes[i].GetMeta() + pi := filepath.ToSlash(mi.Annotations[kioutil.PathAnnotation]) + + mj, _ := buff.Nodes[j].GetMeta() + pj := filepath.ToSlash(mj.Annotations[kioutil.PathAnnotation]) + + // If the path is the same, we decide the ordering based on the + // index annotation. + if pi == pj { + iIndex, err := strconv.Atoi(mi.Annotations[kioutil.IndexAnnotation]) + if err != nil { + outerErr = err + return false + } + jIndex, err := strconv.Atoi(mj.Annotations[kioutil.IndexAnnotation]) + if err != nil { + outerErr = err + return false + } + return iIndex < jIndex + } + + if filepath.Base(path.Dir(pi)) == "functions" { + // don't count the functions dir, the functions are scoped 1 level above + pi = filepath.Dir(path.Dir(pi)) + } else { + pi = filepath.Dir(pi) + } + + if filepath.Base(path.Dir(pj)) == "functions" { + // don't count the functions dir, the functions are scoped 1 level above + pj = filepath.Dir(path.Dir(pj)) + } else { + pj = filepath.Dir(pj) + } + + // i is "less" than j (comes earlier) if its depth is greater -- e.g. run + // i before j if it is deeper in the directory structure + li := len(strings.Split(pi, "/")) + if pi == "." { + // local dir should have 0 path elements instead of 1 + li = 0 + } + lj := len(strings.Split(pj, "/")) + if pj == "." { + // local dir should have 0 path elements instead of 1 + lj = 0 + } + if li != lj { + // use greater-than because we want to sort with the longest + // paths FIRST rather than last + return li > lj + } + + // sort by path names if depths are equal + return pi < pj + }) + return outerErr +} + +// init initializes the RunFns with a containerFilterProvider. +func (r *RunFns) init() { + if r.NoFunctionsFromInput == nil { + // default no functions from input if any function sources are explicitly provided + nfn := len(r.FunctionPaths) > 0 || len(r.Functions) > 0 + r.NoFunctionsFromInput = &nfn + } + + // if no path is specified, default reading from stdin and writing to stdout + if r.Path == "" { + if r.Output == nil { + r.Output = os.Stdout + } + if r.Input == nil { + r.Input = os.Stdin + } + } + + // functionFilterProvider set the filter provider + if r.functionFilterProvider == nil { + r.functionFilterProvider = r.ffp + } + + // if LogSteps is enabled and LogWriter is not specified, use stderr + if r.LogSteps && r.LogWriter == nil { + r.LogWriter = os.Stderr + } +} + +type currentUserFunc func() (*user.User, error) + +// getUIDGID will return "nobody" if asCurrentUser is false. Otherwise +// return "uid:gid" according to the return from currentUser function. +func getUIDGID(asCurrentUser bool, currentUser currentUserFunc) (string, error) { + if !asCurrentUser { + return "nobody", nil + } + + u, err := currentUser() + if err != nil { + return "", err + } + return fmt.Sprintf("%s:%s", u.Uid, u.Gid), nil +} + +// ffp provides function filters +func (r *RunFns) ffp(spec runtimeutil.FunctionSpec, api *yaml.RNode, currentUser currentUserFunc) (kio.Filter, error) { + var resultsFile string + if r.ResultsDir != "" { + resultsFile = filepath.Join(r.ResultsDir, fmt.Sprintf( + "results-%v.yaml", r.resultsCount)) + atomic.AddUint32(&r.resultsCount, 1) + } + if !r.DisableContainers && spec.Container.Image != "" { + // TODO: Add a test for this behavior + uidgid, err := getUIDGID(r.AsCurrentUser, currentUser) + if err != nil { + return nil, err + } + c := container.NewContainer( + runtimeutil.ContainerSpec{ + Image: spec.Container.Image, + Network: spec.Container.Network, + StorageMounts: r.StorageMounts, + Env: spec.Container.Env, + }, + uidgid, + ) + cf := &c + cf.Exec.FunctionConfig = api + cf.Exec.GlobalScope = r.GlobalScope + cf.Exec.ResultsFile = resultsFile + cf.Exec.DeferFailure = spec.DeferFailure + return cf, nil + } + if r.EnableStarlark && (spec.Starlark.Path != "" || spec.Starlark.URL != "") { + // the script path is relative to the function config file + m, err := api.GetMeta() + if err != nil { + return nil, errors.Wrap(err) + } + + var p string + if spec.Starlark.Path != "" { + p = filepath.ToSlash(path.Clean(m.Annotations[kioutil.PathAnnotation])) + spec.Starlark.Path = filepath.ToSlash(path.Clean(spec.Starlark.Path)) + if filepath.IsAbs(spec.Starlark.Path) || path.IsAbs(spec.Starlark.Path) { + return nil, errors.Errorf( + "absolute function path %s not allowed", spec.Starlark.Path) + } + if strings.HasPrefix(spec.Starlark.Path, "..") { + return nil, errors.Errorf( + "function path %s not allowed to start with ../", spec.Starlark.Path) + } + p = filepath.ToSlash(filepath.Join(r.Path, filepath.Dir(p), spec.Starlark.Path)) + } + fmt.Println(p) + + sf := &starlark.Filter{Name: spec.Starlark.Name, Path: p, URL: spec.Starlark.URL} + + sf.FunctionConfig = api + sf.GlobalScope = r.GlobalScope + sf.ResultsFile = resultsFile + sf.DeferFailure = spec.DeferFailure + return sf, nil + } + + if r.EnableExec && spec.Exec.Path != "" { + ef := &exec.Filter{Path: spec.Exec.Path} + + ef.FunctionConfig = api + ef.GlobalScope = r.GlobalScope + ef.ResultsFile = resultsFile + ef.DeferFailure = spec.DeferFailure + return ef, nil + } + + return nil, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/datamap.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/datamap.go index 3181ff30f9..f4b7e6664e 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/datamap.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/datamap.go @@ -35,6 +35,20 @@ func (rn *RNode) LoadMapIntoConfigMapData(m map[string]string) error { return nil } +func (rn *RNode) LoadMapIntoConfigMapBinaryData(m map[string]string) error { + for _, k := range SortedMapKeys(m) { + _, vrN := makeConfigMapValueRNode(m[k]) + // we know this is binary data + fldName := BinaryDataField + if _, err := rn.Pipe( + LookupCreate(MappingNode, fldName), + SetField(k, vrN)); err != nil { + return err + } + } + return nil +} + func makeConfigMapValueRNode(s string) (field string, rN *RNode) { yN := &Node{Kind: ScalarNode} yN.Tag = NodeTagString diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/fns.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/fns.go index 2271cc0b4c..ab01b98159 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/fns.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/fns.go @@ -106,9 +106,7 @@ func (e ElementSetter) Filter(rn *RNode) (*RNode, error) { var err error found := true for j := range e.Keys { - if j >= len(e.Values) { - val, err = newNode.Pipe(FieldMatcher{Name: e.Keys[j], StringValue: ""}) - } else { + if j < len(e.Values) { val, err = newNode.Pipe(FieldMatcher{Name: e.Keys[j], StringValue: e.Values[j]}) } if err != nil { diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/copied.deepcopy.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/copied.deepcopy.go new file mode 100644 index 0000000000..e526152daa --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/copied.deepcopy.go @@ -0,0 +1,43 @@ +// Code generated by k8scopy from k8s.io/apimachinery@v0.19.8; DO NOT EDIT. +// File content copied from k8s.io/apimachinery@v0.19.8/pkg/labels/zz_generated.deepcopy.go + +// +build !ignore_autogenerated + +/* +Copyright 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. +*/ + +package labels + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Requirement) DeepCopyInto(out *Requirement) { + *out = *in + if in.strValues != nil { + in, out := &in.strValues, &out.strValues + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Requirement. +func (in *Requirement) DeepCopy() *Requirement { + if in == nil { + return nil + } + out := new(Requirement) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/labels.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/labels.go index e72c60c68d..300014eac0 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/labels.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/labels.go @@ -1,5 +1,5 @@ -// Code generated by k8sgen/generator from k8s.io/apimachinery@v0.17.0; DO NOT EDIT. -// Copied from k8s.io/apimachinery@v0.17.0/pkg/labels/labels.go +// Code generated by k8scopy from k8s.io/apimachinery@v0.19.8; DO NOT EDIT. +// File content copied from k8s.io/apimachinery@v0.19.8/pkg/labels/labels.go /* Copyright 2014 The Kubernetes Authors. @@ -60,14 +60,22 @@ func (ls Set) Get(label string) string { return ls[label] } -// AsSelector converts labels into a selectors. +// AsSelector converts labels into a selectors. It does not +// perform any validation, which means the server will reject +// the request if the Set contains invalid values. func (ls Set) AsSelector() Selector { return SelectorFromSet(ls) } +// AsValidatedSelector converts labels into a selectors. +// The Set is validated client-side, which allows to catch errors early. +func (ls Set) AsValidatedSelector() (Selector, error) { + return ValidatedSelectorFromSet(ls) +} + // AsSelectorPreValidated converts labels into a selector, but -// assumes that labels are already validated and thus don't -// preform any validation. +// assumes that labels are already validated and thus doesn't +// perform any validation. // According to our measurements this is significantly faster // in codepaths that matter at high scale. func (ls Set) AsSelectorPreValidated() Selector { diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/selector.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/selector.go index 666b417b9e..73c5ae6a65 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/selector.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/selector.go @@ -1,5 +1,5 @@ -// Code generated by k8sgen/generator from k8s.io/apimachinery@v0.17.0; DO NOT EDIT. -// Copied from k8s.io/apimachinery@v0.17.0/pkg/labels/selector.go +// Code generated by k8scopy from k8s.io/apimachinery@v0.19.8; DO NOT EDIT. +// File content copied from k8s.io/apimachinery@v0.19.8/pkg/labels/selector.go /* Copyright 2014 The Kubernetes Authors. @@ -121,7 +121,6 @@ func (a ByKey) Less(i, j int) bool { return a[i].key < a[j].key } // The zero value of Requirement is invalid. // Requirement implements both set based match and exact match // Requirement should be initialized via NewRequirement constructor for creating a valid Requirement. -// +k8s:deepcopy-gen=true type Requirement struct { key string operator selection.Operator @@ -226,7 +225,7 @@ func (r *Requirement) Matches(ls Labels) bool { return false } - // There should be only one strValue in r.strValues, and can be converted to a integer. + // There should be only one strValue in r.strValues, and can be converted to an integer. if len(r.strValues) != 1 { log.Printf("Invalid values count %+v of requirement %#v, for 'Gt', 'Lt' operators, exactly one value is required", len(r.strValues), r) return false @@ -874,23 +873,30 @@ func validateLabelValue(k, v string) error { // SelectorFromSet returns a Selector which will match exactly the given Set. A // nil and empty Sets are considered equivalent to Everything(). +// It does not perform any validation, which means the server will reject +// the request if the Set contains invalid values. func SelectorFromSet(ls Set) Selector { + return SelectorFromValidatedSet(ls) +} + +// ValidatedSelectorFromSet returns a Selector which will match exactly the given Set. A +// nil and empty Sets are considered equivalent to Everything(). +// The Set is validated client-side, which allows to catch errors early. +func ValidatedSelectorFromSet(ls Set) (Selector, error) { if ls == nil || len(ls) == 0 { - return internalSelector{} + return internalSelector{}, nil } requirements := make([]Requirement, 0, len(ls)) for label, value := range ls { r, err := NewRequirement(label, selection.Equals, []string{value}) - if err == nil { - requirements = append(requirements, *r) - } else { - //TODO: double check errors when input comes from serialization? - return internalSelector{} + if err != nil { + return nil, err } + requirements = append(requirements, *r) } // sort to have deterministic string representation sort.Sort(ByKey(requirements)) - return internalSelector(requirements) + return internalSelector(requirements), nil } // SelectorFromValidatedSet returns a Selector which will match exactly the given Set. diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/zz_generated.deepcopy.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/zz_generated.deepcopy.go deleted file mode 100644 index b3dd250f01..0000000000 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/zz_generated.deepcopy.go +++ /dev/null @@ -1,43 +0,0 @@ -// Code generated by k8sgen/generator from k8s.io/apimachinery@v0.17.0; DO NOT EDIT. -// Copied from k8s.io/apimachinery@v0.17.0/pkg/labels/zz_generated.deepcopy.go - -// +build !ignore_autogenerated - -/* -Copyright 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. -*/ - -package labels - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Requirement) DeepCopyInto(out *Requirement) { - *out = *in - if in.strValues != nil { - in, out := &in.strValues, &out.strValues - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Requirement. -func (in *Requirement) DeepCopy() *Requirement { - if in == nil { - return nil - } - out := new(Requirement) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/selection/operator.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/selection/operator.go index fa38dd078f..29c443df45 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/selection/operator.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/selection/operator.go @@ -1,5 +1,5 @@ -// Code generated by k8sgen/generator from k8s.io/apimachinery@v0.17.0; DO NOT EDIT. -// Copied from k8s.io/apimachinery@v0.17.0/pkg/selection/operator.go +// Code generated by k8scopy from k8s.io/apimachinery@v0.19.8; DO NOT EDIT. +// File content copied from k8s.io/apimachinery@v0.19.8/pkg/selection/operator.go /* Copyright 2016 The Kubernetes Authors. diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/errors/errors.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/errors/errors.go index d50c636233..24d040e06c 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/errors/errors.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/errors/errors.go @@ -1,5 +1,5 @@ -// Code generated by k8sgen/generator from k8s.io/apimachinery@v0.17.0; DO NOT EDIT. -// Copied from k8s.io/apimachinery@v0.17.0/pkg/util/errors/errors.go +// Code generated by k8scopy from k8s.io/apimachinery@v0.19.8; DO NOT EDIT. +// File content copied from k8s.io/apimachinery@v0.19.8/pkg/util/errors/errors.go /* Copyright 2015 The Kubernetes Authors. @@ -31,9 +31,14 @@ type MessageCountMap map[string]int // Aggregate represents an object that contains multiple errors, but does not // necessarily have singular semantic meaning. +// The aggregate can be used with `errors.Is()` to check for the occurrence of +// a specific error type. +// Errors.As() is not supported, because the caller presumably cares about a +// specific error of potentially multiple that match the given type. type Aggregate interface { error Errors() []error + Is(error) bool } // NewAggregate converts a slice of errors into an Aggregate interface, which @@ -74,16 +79,17 @@ func (agg aggregate) Error() string { } seenerrs := sets.NewString() result := "" - agg.visit(func(err error) { + agg.visit(func(err error) bool { msg := err.Error() if seenerrs.Has(msg) { - return + return false } seenerrs.Insert(msg) if len(seenerrs) > 1 { result += ", " } result += msg + return false }) if len(seenerrs) == 1 { return result @@ -91,19 +97,33 @@ func (agg aggregate) Error() string { return "[" + result + "]" } -func (agg aggregate) visit(f func(err error)) { +func (agg aggregate) Is(target error) bool { + return agg.visit(func(err error) bool { + return errors.Is(err, target) + }) +} + +func (agg aggregate) visit(f func(err error) bool) bool { for _, err := range agg { switch err := err.(type) { case aggregate: - err.visit(f) + if match := err.visit(f); match { + return match + } case Aggregate: for _, nestedErr := range err.Errors() { - f(nestedErr) + if match := f(nestedErr); match { + return match + } } default: - f(err) + if match := f(err); match { + return match + } } } + + return false } // Errors is part of the Aggregate interface. diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets/empty.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets/empty.go index b2aaacf2a2..ef404add15 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets/empty.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets/empty.go @@ -1,5 +1,5 @@ -// Code generated by k8sgen/generator from k8s.io/apimachinery@v0.17.0; DO NOT EDIT. -// Copied from k8s.io/apimachinery@v0.17.0/pkg/util/sets/empty.go +// Code generated by k8scopy from k8s.io/apimachinery@v0.19.8; DO NOT EDIT. +// File content copied from k8s.io/apimachinery@v0.19.8/pkg/util/sets/empty.go /* Copyright The Kubernetes Authors. diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets/string.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets/string.go index f4447c7730..8af1bac2a2 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets/string.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets/string.go @@ -1,5 +1,5 @@ -// Code generated by k8sgen/generator from k8s.io/apimachinery@v0.17.0; DO NOT EDIT. -// Copied from k8s.io/apimachinery@v0.17.0/pkg/util/sets/string.go +// Code generated by k8scopy from k8s.io/apimachinery@v0.19.8; DO NOT EDIT. +// File content copied from k8s.io/apimachinery@v0.19.8/pkg/util/sets/string.go /* Copyright The Kubernetes Authors. diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field/errors.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field/errors.go index 393bab085c..20229a5b6c 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field/errors.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field/errors.go @@ -1,5 +1,5 @@ -// Code generated by k8sgen/generator from k8s.io/apimachinery@v0.17.0; DO NOT EDIT. -// Copied from k8s.io/apimachinery@v0.17.0/pkg/util/validation/field/errors.go +// Code generated by k8scopy from k8s.io/apimachinery@v0.19.8; DO NOT EDIT. +// File content copied from k8s.io/apimachinery@v0.19.8/pkg/util/validation/field/errors.go /* Copyright 2014 The Kubernetes Authors. diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field/path.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field/path.go index 2a636739e2..44cdf997a3 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field/path.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field/path.go @@ -1,5 +1,5 @@ -// Code generated by k8sgen/generator from k8s.io/apimachinery@v0.17.0; DO NOT EDIT. -// Copied from k8s.io/apimachinery@v0.17.0/pkg/util/validation/field/path.go +// Code generated by k8scopy from k8s.io/apimachinery@v0.19.8; DO NOT EDIT. +// File content copied from k8s.io/apimachinery@v0.19.8/pkg/util/validation/field/path.go /* Copyright 2015 The Kubernetes Authors. diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/validation.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/validation.go index b6e98da7d2..5e1ddbc469 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/validation.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/validation.go @@ -1,5 +1,5 @@ -// Code generated by k8sgen/generator from k8s.io/apimachinery@v0.17.0; DO NOT EDIT. -// Copied from k8s.io/apimachinery@v0.17.0/pkg/util/validation/validation.go +// Code generated by k8scopy from k8s.io/apimachinery@v0.19.8; DO NOT EDIT. +// File content copied from k8s.io/apimachinery@v0.19.8/pkg/util/validation/validation.go /* Copyright 2014 The Kubernetes Authors. @@ -109,9 +109,52 @@ func IsFullyQualifiedDomainName(fldPath *field.Path, name string) field.ErrorLis if len(strings.Split(name, ".")) < 2 { return append(allErrors, field.Invalid(fldPath, name, "should be a domain with at least two segments separated by dots")) } + for _, label := range strings.Split(name, ".") { + if errs := IsDNS1123Label(label); len(errs) > 0 { + return append(allErrors, field.Invalid(fldPath, label, strings.Join(errs, ","))) + } + } return allErrors } +// Allowed characters in an HTTP Path as defined by RFC 3986. A HTTP path may +// contain: +// * unreserved characters (alphanumeric, '-', '.', '_', '~') +// * percent-encoded octets +// * sub-delims ("!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "=") +// * a colon character (":") +const httpPathFmt string = `[A-Za-z0-9/\-._~%!$&'()*+,;=:]+` + +var httpPathRegexp = regexp.MustCompile("^" + httpPathFmt + "$") + +// IsDomainPrefixedPath checks if the given string is a domain-prefixed path +// (e.g. acme.io/foo). All characters before the first "/" must be a valid +// subdomain as defined by RFC 1123. All characters trailing the first "/" must +// be valid HTTP Path characters as defined by RFC 3986. +func IsDomainPrefixedPath(fldPath *field.Path, dpPath string) field.ErrorList { + var allErrs field.ErrorList + if len(dpPath) == 0 { + return append(allErrs, field.Required(fldPath, "")) + } + + segments := strings.SplitN(dpPath, "/", 2) + if len(segments) != 2 || len(segments[0]) == 0 || len(segments[1]) == 0 { + return append(allErrs, field.Invalid(fldPath, dpPath, "must be a domain-prefixed path (such as \"acme.io/foo\")")) + } + + host := segments[0] + for _, err := range IsDNS1123Subdomain(host) { + allErrs = append(allErrs, field.Invalid(fldPath, host, err)) + } + + path := segments[1] + if !httpPathRegexp.MatchString(path) { + return append(allErrs, field.Invalid(fldPath, path, RegexError("Invalid path", httpPathFmt))) + } + + return allErrs +} + const labelValueFmt string = "(" + qualifiedNameFmt + ")?" const labelValueErrMsg string = "a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character" diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge2/merge2.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge2/merge2.go new file mode 100644 index 0000000000..ab0c8244c4 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge2/merge2.go @@ -0,0 +1,182 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package merge contains libraries for merging fields from one RNode to another +// RNode +package merge2 + +import ( + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/kustomize/kyaml/yaml" + "sigs.k8s.io/kustomize/kyaml/yaml/walk" +) + +// Merge merges fields from src into dest. +func Merge(src, dest *yaml.RNode, mergeOptions yaml.MergeOptions) (*yaml.RNode, error) { + return walk.Walker{ + Sources: []*yaml.RNode{dest, src}, + Visitor: Merger{}, + MergeOptions: mergeOptions, + }.Walk() +} + +// Merge parses the arguments, and merges fields from srcStr into destStr. +func MergeStrings(srcStr, destStr string, infer bool, mergeOptions yaml.MergeOptions) (string, error) { + src, err := yaml.Parse(srcStr) + if err != nil { + return "", err + } + dest, err := yaml.Parse(destStr) + if err != nil { + return "", err + } + + result, err := walk.Walker{ + Sources: []*yaml.RNode{dest, src}, + Visitor: Merger{}, + InferAssociativeLists: infer, + MergeOptions: mergeOptions, + }.Walk() + if err != nil { + return "", err + } + + return result.String() +} + +type Merger struct { + // for forwards compatibility when new functions are added to the interface +} + +var _ walk.Visitor = Merger{} + +func (m Merger) VisitMap(nodes walk.Sources, s *openapi.ResourceSchema) (*yaml.RNode, error) { + if err := m.SetComments(nodes); err != nil { + return nil, err + } + if err := m.SetStyle(nodes); err != nil { + return nil, err + } + if yaml.IsMissingOrNull(nodes.Dest()) { + // Add + ps, _ := determineSmpDirective(nodes.Origin()) + if ps == smpDelete { + return walk.ClearNode, nil + } + + return nodes.Origin(), nil + } + if nodes.Origin().IsTaggedNull() { + // clear the value + return walk.ClearNode, nil + } + + ps, err := determineSmpDirective(nodes.Origin()) + if err != nil { + return nil, err + } + + switch ps { + case smpDelete: + return walk.ClearNode, nil + case smpReplace: + return nodes.Origin(), nil + default: + return nodes.Dest(), nil + } +} + +func (m Merger) VisitScalar(nodes walk.Sources, s *openapi.ResourceSchema) (*yaml.RNode, error) { + if err := m.SetComments(nodes); err != nil { + return nil, err + } + if err := m.SetStyle(nodes); err != nil { + return nil, err + } + // Override value + if nodes.Origin() != nil { + return nodes.Origin(), nil + } + // Keep + return nodes.Dest(), nil +} + +func (m Merger) VisitList(nodes walk.Sources, s *openapi.ResourceSchema, kind walk.ListKind) (*yaml.RNode, error) { + if err := m.SetComments(nodes); err != nil { + return nil, err + } + if err := m.SetStyle(nodes); err != nil { + return nil, err + } + if kind == walk.NonAssociateList { + // Override value + if nodes.Origin() != nil { + return nodes.Origin(), nil + } + // Keep + return nodes.Dest(), nil + } + + // Add + if yaml.IsMissingOrNull(nodes.Dest()) { + return nodes.Origin(), nil + } + // Clear + if nodes.Origin().IsTaggedNull() { + return walk.ClearNode, nil + } + + ps, err := determineSmpDirective(nodes.Origin()) + if err != nil { + return nil, err + } + + switch ps { + case smpDelete: + return walk.ClearNode, nil + case smpReplace: + return nodes.Origin(), nil + default: + return nodes.Dest(), nil + } +} + +func (m Merger) SetStyle(sources walk.Sources) error { + source := sources.Origin() + dest := sources.Dest() + if dest == nil || dest.YNode() == nil || source == nil || source.YNode() == nil { + // avoid panic + return nil + } + + // copy the style from the source. + // special case: if the dest was an empty map or seq, then it probably had + // folded style applied, but we actually want to keep the style of the origin + // in this case (even if it was the default). otherwise the merged elements + // will get folded even though this probably isn't what is desired. + if dest.YNode().Kind != yaml.ScalarNode && len(dest.YNode().Content) == 0 { + dest.YNode().Style = source.YNode().Style + } + return nil +} + +// SetComments copies the dest comments to the source comments if they are present +// on the source. +func (m Merger) SetComments(sources walk.Sources) error { + source := sources.Origin() + dest := sources.Dest() + if dest == nil || dest.YNode() == nil || source == nil || source.YNode() == nil { + // avoid panic + return nil + } + if source.YNode().FootComment != "" { + dest.YNode().FootComment = source.YNode().FootComment + } + if source.YNode().HeadComment != "" { + dest.YNode().HeadComment = source.YNode().HeadComment + } + if source.YNode().LineComment != "" { + dest.YNode().LineComment = source.YNode().LineComment + } + return nil +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge2/smpdirective.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge2/smpdirective.go new file mode 100644 index 0000000000..f38b188eac --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge2/smpdirective.go @@ -0,0 +1,101 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package merge2 + +import ( + "fmt" + + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// A strategic merge patch directive. +// See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md +// +//go:generate stringer -type=smpDirective -linecomment +type smpDirective int + +const ( + smpUnknown smpDirective = iota // unknown + smpReplace // replace + smpDelete // delete + smpMerge // merge +) + +const strategicMergePatchDirectiveKey = "$patch" + +// Examine patch for a strategic merge patch directive. +// If found, return it, and remove the directive from the patch. +func determineSmpDirective(patch *yaml.RNode) (smpDirective, error) { + if patch == nil { + return smpMerge, nil + } + switch patch.YNode().Kind { + case yaml.SequenceNode: + return determineSequenceNodePatchStrategy(patch) + case yaml.MappingNode: + return determineMappingNodePatchStrategy(patch) + default: + return smpUnknown, fmt.Errorf( + "no implemented strategic merge patch strategy for '%s' ('%s')", + patch.YNode().ShortTag(), patch.MustString()) + } +} + +func determineSequenceNodePatchStrategy(patch *yaml.RNode) (smpDirective, error) { + // get the $patch element + node, err := patch.Pipe(yaml.GetElementByKey(strategicMergePatchDirectiveKey)) + // if there are more than 1 key/value pair in the map, then this $patch + // is not for the sequence + if err != nil || node == nil || node.YNode() == nil || len(node.Content()) > 2 { + return smpMerge, nil + } + // get the value + value, err := node.Pipe(yaml.Get(strategicMergePatchDirectiveKey)) + if err != nil || value == nil || value.YNode() == nil { + return smpMerge, nil + } + v := value.YNode().Value + if v == smpDelete.String() { + return smpDelete, elideSequencePatchDirective(patch, v) + } + if v == smpReplace.String() { + return smpReplace, elideSequencePatchDirective(patch, v) + } + if v == smpMerge.String() { + return smpMerge, elideSequencePatchDirective(patch, v) + } + return smpUnknown, fmt.Errorf( + "unknown patch strategy '%s'", v) +} + +func determineMappingNodePatchStrategy(patch *yaml.RNode) (smpDirective, error) { + node, err := patch.Pipe(yaml.Get(strategicMergePatchDirectiveKey)) + if err != nil || node == nil || node.YNode() == nil { + return smpMerge, nil + } + v := node.YNode().Value + if v == smpDelete.String() { + return smpDelete, elideMappingPatchDirective(patch) + } + if v == smpReplace.String() { + return smpReplace, elideMappingPatchDirective(patch) + } + if v == smpMerge.String() { + return smpMerge, elideMappingPatchDirective(patch) + } + return smpUnknown, fmt.Errorf( + "unknown patch strategy '%s'", v) +} + +func elideMappingPatchDirective(patch *yaml.RNode) error { + return patch.PipeE(yaml.Clear(strategicMergePatchDirectiveKey)) +} + +func elideSequencePatchDirective(patch *yaml.RNode, value string) error { + return patch.PipeE(yaml.ElementSetter{ + Element: nil, + Keys: []string{strategicMergePatchDirectiveKey}, + Values: []string{value}, + }) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge2/smpdirective_string.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge2/smpdirective_string.go new file mode 100644 index 0000000000..b4f937f0e1 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge2/smpdirective_string.go @@ -0,0 +1,26 @@ +// Code generated by "stringer -type=smpDirective -linecomment"; DO NOT EDIT. + +package merge2 + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[smpUnknown-0] + _ = x[smpReplace-1] + _ = x[smpDelete-2] + _ = x[smpMerge-3] +} + +const _smpDirective_name = "unknownreplacedeletemerge" + +var _smpDirective_index = [...]uint8{0, 7, 14, 20, 25} + +func (i smpDirective) String() string { + if i < 0 || i >= smpDirective(len(_smpDirective_index)-1) { + return "smpDirective(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _smpDirective_name[_smpDirective_index[i]:_smpDirective_index[i+1]] +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge3/merge3.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge3/merge3.go new file mode 100644 index 0000000000..664270e5b2 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge3/merge3.go @@ -0,0 +1,45 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package merge contains libraries for merging fields from one RNode to another +// RNode +package merge3 + +import ( + "sigs.k8s.io/kustomize/kyaml/yaml" + "sigs.k8s.io/kustomize/kyaml/yaml/walk" +) + +func Merge(dest, original, update *yaml.RNode) (*yaml.RNode, error) { + // if update == nil && original != nil => declarative deletion + + return walk.Walker{ + Visitor: Visitor{}, + VisitKeysAsScalars: true, + Sources: []*yaml.RNode{dest, original, update}}.Walk() +} + +func MergeStrings(dest, original, update string, infer bool) (string, error) { + srcOriginal, err := yaml.Parse(original) + if err != nil { + return "", err + } + srcUpdated, err := yaml.Parse(update) + if err != nil { + return "", err + } + d, err := yaml.Parse(dest) + if err != nil { + return "", err + } + + result, err := walk.Walker{ + InferAssociativeLists: infer, + Visitor: Visitor{}, + VisitKeysAsScalars: true, + Sources: []*yaml.RNode{d, srcOriginal, srcUpdated}}.Walk() + if err != nil { + return "", err + } + return result.String() +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge3/visitor.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge3/visitor.go new file mode 100644 index 0000000000..978deff0c0 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge3/visitor.go @@ -0,0 +1,172 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package merge3 + +import ( + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/kustomize/kyaml/yaml" + "sigs.k8s.io/kustomize/kyaml/yaml/walk" +) + +type ConflictStrategy uint + +const ( + // TODO: Support more strategies + TakeUpdate ConflictStrategy = 1 + iota +) + +type Visitor struct{} + +func (m Visitor) VisitMap(nodes walk.Sources, s *openapi.ResourceSchema) (*yaml.RNode, error) { + if nodes.Updated().IsTaggedNull() || nodes.Dest().IsTaggedNull() { + // explicitly cleared from either dest or update + return walk.ClearNode, nil + } + if nodes.Dest() == nil && nodes.Updated() == nil { + // implicitly cleared missing from both dest and update + return walk.ClearNode, nil + } + + if nodes.Dest() == nil { + // not cleared, but missing from the dest + // initialize a new value that can be recursively merged + return yaml.NewRNode(&yaml.Node{Kind: yaml.MappingNode}), nil + } + + // recursively merge the dest with the original and updated + return nodes.Dest(), nil +} + +func (m Visitor) visitAList(nodes walk.Sources, _ *openapi.ResourceSchema) (*yaml.RNode, error) { + if yaml.IsMissingOrNull(nodes.Updated()) && !yaml.IsMissingOrNull(nodes.Origin()) { + // implicitly cleared from update -- element was deleted + return walk.ClearNode, nil + } + if yaml.IsMissingOrNull(nodes.Dest()) { + // not cleared, but missing from the dest + // initialize a new value that can be recursively merged + return yaml.NewRNode(&yaml.Node{Kind: yaml.SequenceNode}), nil + } + + // recursively merge the dest with the original and updated + return nodes.Dest(), nil +} + +func (m Visitor) VisitScalar(nodes walk.Sources, s *openapi.ResourceSchema) (*yaml.RNode, error) { + if nodes.Updated().IsTaggedNull() || nodes.Dest().IsTaggedNull() { + // explicitly cleared from either dest or update + return nil, nil + } + if yaml.IsMissingOrNull(nodes.Updated()) != yaml.IsMissingOrNull(nodes.Origin()) { + // value added or removed in update + return nodes.Updated(), nil + } + if yaml.IsMissingOrNull(nodes.Updated()) && yaml.IsMissingOrNull(nodes.Origin()) { + // value added or removed in update + return nodes.Dest(), nil + } + + values, err := m.getStrValues(nodes) + if err != nil { + return nil, err + } + + if (values.Dest == "" || values.Dest == values.Origin) && values.Origin != values.Update { + // if local is nil or is unchanged but there is new update + return nodes.Updated(), nil + } + + if nodes.Updated().YNode().Value != nodes.Origin().YNode().Value { + // value changed in update + return nodes.Updated(), nil + } + + // unchanged between origin and update, keep the dest + return nodes.Dest(), nil +} + +func (m Visitor) visitNAList(nodes walk.Sources) (*yaml.RNode, error) { + if nodes.Updated().IsTaggedNull() || nodes.Dest().IsTaggedNull() { + // explicitly cleared from either dest or update + return walk.ClearNode, nil + } + + if yaml.IsMissingOrNull(nodes.Updated()) != yaml.IsMissingOrNull(nodes.Origin()) { + // value added or removed in update + return nodes.Updated(), nil + } + if yaml.IsMissingOrNull(nodes.Updated()) && yaml.IsMissingOrNull(nodes.Origin()) { + // value not present in source or dest + return nodes.Dest(), nil + } + + // compare origin and update values to see if they have changed + values, err := m.getStrValues(nodes) + if err != nil { + return nil, err + } + if values.Update != values.Origin { + // value changed in update + return nodes.Updated(), nil + } + + // unchanged between origin and update, keep the dest + return nodes.Dest(), nil +} + +func (m Visitor) VisitList(nodes walk.Sources, s *openapi.ResourceSchema, kind walk.ListKind) (*yaml.RNode, error) { + if kind == walk.AssociativeList { + return m.visitAList(nodes, s) + } + // non-associative list + return m.visitNAList(nodes) +} + +func (m Visitor) getStrValues(nodes walk.Sources) (strValues, error) { + var uStr, oStr, dStr string + var err error + if nodes.Updated() != nil && nodes.Updated().YNode() != nil { + s := nodes.Updated().YNode().Style + defer func() { + nodes.Updated().YNode().Style = s + }() + nodes.Updated().YNode().Style = yaml.FlowStyle | yaml.SingleQuotedStyle + uStr, err = nodes.Updated().String() + if err != nil { + return strValues{}, err + } + } + if nodes.Origin() != nil && nodes.Origin().YNode() != nil { + s := nodes.Origin().YNode().Style + defer func() { + nodes.Origin().YNode().Style = s + }() + nodes.Origin().YNode().Style = yaml.FlowStyle | yaml.SingleQuotedStyle + oStr, err = nodes.Origin().String() + if err != nil { + return strValues{}, err + } + } + if nodes.Dest() != nil && nodes.Dest().YNode() != nil { + s := nodes.Dest().YNode().Style + defer func() { + nodes.Dest().YNode().Style = s + }() + nodes.Dest().YNode().Style = yaml.FlowStyle | yaml.SingleQuotedStyle + dStr, err = nodes.Dest().String() + if err != nil { + return strValues{}, err + } + } + + return strValues{Origin: oStr, Update: uStr, Dest: dStr}, nil +} + +type strValues struct { + Origin string + Update string + Dest string +} + +var _ walk.Visitor = Visitor{} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/rnode.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/rnode.go index f0e001cfe2..9b1b5ff1b1 100644 --- a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/rnode.go +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/rnode.go @@ -8,6 +8,7 @@ import ( "fmt" "io/ioutil" "log" + "regexp" "strconv" "strings" @@ -336,6 +337,33 @@ func (rn *RNode) SetYNode(node *yaml.Node) { *rn.value = *node } +// GetKind returns the kind. +func (rn *RNode) GetKind() string { + node, err := rn.Pipe(FieldMatcher{Name: KindField}) + if err != nil { + return "" + } + return GetValue(node) +} + +// GetName returns the name. +func (rn *RNode) GetName() string { + f := rn.Field(MetadataField) + if f.IsNilOrEmpty() { + return "" + } + f = f.Value.Field(NameField) + if f.IsNilOrEmpty() { + return "" + } + return f.Value.YNode().Value +} + +// SetName sets the metadata name field. +func (rn *RNode) SetName(name string) error { + return rn.SetMapField(NewScalarRNode(name), MetadataField, NameField) +} + // GetNamespace gets the metadata namespace field. func (rn *RNode) GetNamespace() (string, error) { meta, err := rn.GetMeta() @@ -434,6 +462,19 @@ func (rn *RNode) GetDataMap() map[string]string { return result } +func (rn *RNode) GetBinaryDataMap() map[string]string { + n, err := rn.Pipe(Lookup(BinaryDataField)) + if err != nil { + return nil + } + result := map[string]string{} + _ = n.VisitFields(func(node *MapNode) error { + result[GetValue(node.Key)] = GetValue(node.Value) + return nil + }) + return result +} + func (rn *RNode) SetDataMap(m map[string]string) { if rn == nil { log.Fatal("cannot set data map on nil Rnode") @@ -449,6 +490,21 @@ func (rn *RNode) SetDataMap(m map[string]string) { } } +func (rn *RNode) SetBinaryDataMap(m map[string]string) { + if rn == nil { + log.Fatal("cannot set binaryData map on nil Rnode") + } + if err := rn.PipeE(Clear(BinaryDataField)); err != nil { + log.Fatal(err) + } + if len(m) == 0 { + return + } + if err := rn.LoadMapIntoConfigMapBinaryData(m); err != nil { + log.Fatal(err) + } +} + // AppendToFieldPath appends a field name to the FieldPath. func (rn *RNode) AppendToFieldPath(parts ...string) { rn.fieldPath = append(rn.fieldPath, parts...) @@ -724,7 +780,7 @@ func (rn *RNode) GetValidatedMetadata() (ResourceMeta, error) { return m, nil } -// MatchesAnnotationSelector implements ifc.Kunstructured. +// MatchesAnnotationSelector returns true on a selector match to annotations. func (rn *RNode) MatchesAnnotationSelector(selector string) (bool, error) { s, err := labels.Parse(selector) if err != nil { @@ -737,7 +793,7 @@ func (rn *RNode) MatchesAnnotationSelector(selector string) (bool, error) { return s.Matches(labels.Set(slice)), nil } -// MatchesLabelSelector implements ifc.Kunstructured. +// MatchesLabelSelector returns true on a selector match to labels. func (rn *RNode) MatchesLabelSelector(selector string) (bool, error) { s, err := labels.Parse(selector) if err != nil { @@ -752,9 +808,8 @@ func (rn *RNode) MatchesLabelSelector(selector string) (bool, error) { // HasNilEntryInList returns true if the RNode contains a list which has // a nil item, along with the path to the missing item. -// TODO(broken): This was copied from -// api/k8sdeps/kunstruct/factory.go//checkListItemNil -// and doesn't do what it claims to do (see TODO in unit test and pr 1513). +// TODO(broken): This doesn't do what it claims to do. +// (see TODO in unit test and pr 1513). func (rn *RNode) HasNilEntryInList() (bool, string) { return hasNilEntryInList(rn.value) } @@ -788,17 +843,18 @@ func FromMap(m map[string]interface{}) (*RNode, error) { return Parse(string(c)) } -func (rn *RNode) Map() map[string]interface{} { +func (rn *RNode) Map() (map[string]interface{}, error) { if rn == nil || rn.value == nil { - return make(map[string]interface{}) + return make(map[string]interface{}), nil } var result map[string]interface{} if err := rn.value.Decode(&result); err != nil { // Should not be able to create an RNode that cannot be decoded; // this is an unrecoverable error. - log.Fatalf("failed to decode ynode: %v", err) + str, _ := rn.String() + return nil, fmt.Errorf("received error %w for the following resource:\n%s", err, str) } - return result + return result, nil } // ConvertJSONToYamlNode parses input json string and returns equivalent yaml node @@ -830,3 +886,123 @@ func checkKey(key string, elems []*Node) bool { } return count == len(elems) } + +// Deprecated: use pipes instead. +// GetSlice returns the contents of the slice field at the given path. +func (rn *RNode) GetSlice(path string) ([]interface{}, error) { + value, err := rn.GetFieldValue(path) + if err != nil { + return nil, err + } + if sliceValue, ok := value.([]interface{}); ok { + return sliceValue, nil + } + return nil, fmt.Errorf("node %s is not a slice", path) +} + +// Deprecated: use pipes instead. +// GetString returns the contents of the string field at the given path. +func (rn *RNode) GetString(path string) (string, error) { + value, err := rn.GetFieldValue(path) + if err != nil { + return "", err + } + if v, ok := value.(string); ok { + return v, nil + } + return "", fmt.Errorf("node %s is not a string: %v", path, value) +} + +// Deprecated: use slash paths instead. +// GetFieldValue finds period delimited fields. +// TODO: When doing kustomize var replacement, which is likely a +// a primary use of this function and the reason it returns interface{} +// rather than string, we do conversion from Nodes to Go types and back +// to nodes. We should figure out how to do replacement using raw nodes, +// assuming we keep the var feature in kustomize. +// The other end of this is: refvar.go:updateNodeValue. +func (rn *RNode) GetFieldValue(path string) (interface{}, error) { + fields := convertSliceIndex(strings.Split(path, ".")) + rn, err := rn.Pipe(Lookup(fields...)) + if err != nil { + return nil, err + } + if rn == nil { + return nil, NoFieldError{path} + } + yn := rn.YNode() + + // If this is an alias node, resolve it + if yn.Kind == yaml.AliasNode { + yn = yn.Alias + } + + // Return value as map for DocumentNode and MappingNode kinds + if yn.Kind == yaml.DocumentNode || yn.Kind == yaml.MappingNode { + var result map[string]interface{} + if err := yn.Decode(&result); err != nil { + return nil, err + } + return result, err + } + + // Return value as slice for SequenceNode kind + if yn.Kind == yaml.SequenceNode { + var result []interface{} + if err := yn.Decode(&result); err != nil { + return nil, err + } + return result, nil + } + if yn.Kind != yaml.ScalarNode { + return nil, fmt.Errorf("expected ScalarNode, got Kind=%d", yn.Kind) + } + + switch yn.Tag { + case NodeTagString: + return yn.Value, nil + case NodeTagInt: + return strconv.Atoi(yn.Value) + case NodeTagFloat: + return strconv.ParseFloat(yn.Value, 64) + case NodeTagBool: + return strconv.ParseBool(yn.Value) + default: + // Possibly this should be an error or log. + return yn.Value, nil + } +} + +// convertSliceIndex traverses the items in `fields` and find +// if there is a slice index in the item and change it to a +// valid Lookup field path. For example, 'ports[0]' will be +// converted to 'ports' and '0'. +func convertSliceIndex(fields []string) []string { + var res []string + for _, s := range fields { + if !strings.HasSuffix(s, "]") { + res = append(res, s) + continue + } + re := regexp.MustCompile(`^(.*)\[(\d+)\]$`) + groups := re.FindStringSubmatch(s) + if len(groups) == 0 { + // no match, add to result + res = append(res, s) + continue + } + if groups[1] != "" { + res = append(res, groups[1]) + } + res = append(res, groups[2]) + } + return res +} + +type NoFieldError struct { + Field string +} + +func (e NoFieldError) Error() string { + return fmt.Sprintf("no field named '%s'", e.Field) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/schema/schema.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/schema/schema.go new file mode 100644 index 0000000000..9ee592f847 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/schema/schema.go @@ -0,0 +1,44 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package schema contains libraries for working with the yaml and openapi packages. +package schema + +import ( + "strings" + + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// IsAssociative returns true if all elements in the list contain an +// AssociativeSequenceKey as a field. +func IsAssociative(schema *openapi.ResourceSchema, nodes []*yaml.RNode, infer bool) bool { + if schema != nil { + return schemaHasMergeStrategy(schema) + } + if !infer { + return false + } + for i := range nodes { + node := nodes[i] + if yaml.IsMissingOrNull(node) { + continue + } + if node.IsAssociative() { + return true + } + } + return false +} + +func schemaHasMergeStrategy(schema *openapi.ResourceSchema) bool { + tmp, _ := schema.PatchStrategyAndKey() + strategies := strings.Split(tmp, ",") + for _, s := range strategies { + if s == "merge" { + return true + } + } + return false +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/associative_sequence.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/associative_sequence.go new file mode 100644 index 0000000000..7657ebc0fa --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/associative_sequence.go @@ -0,0 +1,385 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package walk + +import ( + "strings" + + "github.com/go-errors/errors" + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/kustomize/kyaml/sets" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// appendListNode will append the nodes from src to dst and return dst. +// src and dst should be both sequence node. key is used to call ElementSetter. +// ElementSetter will use key-value pair to find and set the element in sequence +// node. +func appendListNode(dst, src *yaml.RNode, keys []string) (*yaml.RNode, error) { + var err error + for _, elem := range src.Content() { + // If key is empty, we know this is a scalar value and we can directly set the + // node + if keys[0] == "" { + _, err = dst.Pipe(yaml.ElementSetter{ + Element: elem, + Keys: []string{""}, + Values: []string{elem.Value}, + }) + if err != nil { + return nil, err + } + continue + } + + // we need to get the value for key so that we can find the element to set + // in sequence. + v := []string{} + for _, key := range keys { + tmpNode := yaml.NewRNode(elem) + valueNode, err := tmpNode.Pipe(yaml.Get(key)) + if err != nil { + return nil, err + } + if valueNode.IsNil() { + // no key found, directly append to dst + err = dst.PipeE(yaml.Append(elem)) + if err != nil { + return nil, err + } + continue + } + v = append(v, valueNode.YNode().Value) + } + + // When there are multiple keys, ElementSetter appends the node to dst + // even if the output is already in dst. We remove the node from dst to + // prevent duplicates. + if len(keys) > 1 { + _, err = dst.Pipe(yaml.ElementSetter{ + Keys: keys, + Values: v, + }) + if err != nil { + return nil, err + } + } + + // We use the key and value from elem to find the corresponding element in dst. + // Then we will use ElementSetter to replace the element with elem. If we cannot + // find the item, the element will be appended. + _, err = dst.Pipe(yaml.ElementSetter{ + Element: elem, + Keys: keys, + Values: v, + }) + if err != nil { + return nil, err + } + } + return dst, nil +} + +// validateKeys returns a list of valid key-value pairs +// if secondary merge key values are missing, use only the available merge keys +func validateKeys(valuesList [][]string, values []string, keys []string) ([]string, []string) { + validKeys := make([]string, 0) + validValues := make([]string, 0) + validKeySet := sets.String{} + for _, values := range valuesList { + for i, v := range values { + if v != "" { + validKeySet.Insert(keys[i]) + } + } + } + if validKeySet.Len() == 0 { // if values missing, fall back to primary keys + return keys, values + } + for _, k := range keys { + if validKeySet.Has(k) { + validKeys = append(validKeys, k) + } + } + for i, v := range values { + if v != "" || validKeySet.Has(keys[i]) { + validValues = append(validValues, v) + } + } + return validKeys, validValues +} + +// mergeValues merges values together - e.g. if two containerPorts +// have the same port and targetPort but one has an empty protocol +// and the other doesn't, they are treated as the same containerPort +func mergeValues(valuesList [][]string) [][]string { + for i, values1 := range valuesList { + for j, values2 := range valuesList { + if matched, values := match(values1, values2); matched { + valuesList[i] = values + valuesList[j] = values + } + } + } + return valuesList +} + +// two values match if they have at least one common element and +// corresponding elements only differ if one is an empty string +func match(values1 []string, values2 []string) (bool, []string) { + if len(values1) != len(values2) { + return false, nil + } + var commonElement bool + var res []string + for i := range values1 { + if values1[i] == values2[i] { + commonElement = true + res = append(res, values1[i]) + continue + } + if values1[i] != "" && values2[i] != "" { + return false, nil + } + if values1[i] != "" { + res = append(res, values1[i]) + } else { + res = append(res, values2[i]) + } + } + return commonElement, res +} + +// setAssociativeSequenceElements recursively set the elements in the list +func (l *Walker) setAssociativeSequenceElements(valuesList [][]string, keys []string, dest *yaml.RNode) (*yaml.RNode, error) { + // itemsToBeAdded contains the items that will be added to dest + itemsToBeAdded := yaml.NewListRNode() + var schema *openapi.ResourceSchema + if l.Schema != nil { + schema = l.Schema.Elements() + } + if len(keys) > 1 { + valuesList = mergeValues(valuesList) + } + + // each element in valuesList is a list of values corresponding to the keys + // for example, for the following yaml: + // - containerPort: 8080 + // protocol: UDP + // - containerPort: 8080 + // protocol: TCP + // `keys` would be [containerPort, protocol] + // and `valuesList` would be [ [8080, UDP], [8080, TCP] ] + var validKeys []string + var validValues []string + for _, values := range valuesList { + if len(values) == 0 { + continue + } + + validKeys, validValues = validateKeys(valuesList, values, keys) + val, err := Walker{ + VisitKeysAsScalars: l.VisitKeysAsScalars, + InferAssociativeLists: l.InferAssociativeLists, + Visitor: l, + Schema: schema, + Sources: l.elementValueList(validKeys, validValues), + MergeOptions: l.MergeOptions, + }.Walk() + if err != nil { + return nil, err + } + + exit := false + for i, key := range validKeys { + // delete the node from **dest** if it's null or empty + if yaml.IsMissingOrNull(val) || yaml.IsEmptyMap(val) { + _, err = dest.Pipe(yaml.ElementSetter{ + Keys: validKeys, + Values: validValues, + }) + if err != nil { + return nil, err + } + exit = true + } else if val.Field(key) == nil && validValues[i] != "" { + // make sure the key is set on the field + _, err = val.Pipe(yaml.SetField(key, yaml.NewScalarRNode(validValues[i]))) + if err != nil { + return nil, err + } + } + } + if exit { + continue + } + + // Add the val to the sequence. val will replace the item in the sequence if + // there is an item that matches all key-value pairs. Otherwise val will be appended + // the the sequence. + _, err = itemsToBeAdded.Pipe(yaml.ElementSetter{ + Element: val.YNode(), + Keys: validKeys, + Values: validValues, + }) + if err != nil { + return nil, err + } + } + + var err error + if len(valuesList) > 0 { + if l.MergeOptions.ListIncreaseDirection == yaml.MergeOptionsListPrepend { + // items from patches are needed to be prepended. so we append the + // dest to itemsToBeAdded + dest, err = appendListNode(itemsToBeAdded, dest, validKeys) + } else { + // append the items + dest, err = appendListNode(dest, itemsToBeAdded, validKeys) + } + } + + if err != nil { + return nil, err + } + // sequence is empty + if yaml.IsMissingOrNull(dest) { + return nil, nil + } + return dest, nil +} + +func (l *Walker) walkAssociativeSequence() (*yaml.RNode, error) { + // may require initializing the dest node + dest, err := l.Sources.setDestNode(l.VisitList(l.Sources, l.Schema, AssociativeList)) + if dest == nil || err != nil { + return nil, err + } + + // get the merge key(s) from schema + var strategy string + var keys []string + if l.Schema != nil { + strategy, keys = l.Schema.PatchStrategyAndKeyList() + } + if strategy == "" && len(keys) == 0 { // neither strategy nor keys present in the schema -- infer the key + // find the list of elements we need to recursively walk + key, err := l.elementKey() + if err != nil { + return nil, err + } + if key != "" { + keys = append(keys, key) + } + } + + // non-primitive associative list -- merge the elements + values := l.elementValues(keys) + if len(values) != 0 || len(keys) > 0 { + return l.setAssociativeSequenceElements(values, keys, dest) + } + + // primitive associative list -- merge the values + return l.setAssociativeSequenceElements(l.elementPrimitiveValues(), []string{""}, dest) +} + +// elementKey returns the merge key to use for the associative list +func (l Walker) elementKey() (string, error) { + var key string + for i := range l.Sources { + if l.Sources[i] != nil && len(l.Sources[i].Content()) > 0 { + newKey := l.Sources[i].GetAssociativeKey() + if key != "" && key != newKey { + return "", errors.Errorf( + "conflicting merge keys [%s,%s] for field %s", + key, newKey, strings.Join(l.Path, ".")) + } + key = newKey + } + } + if key == "" { + return "", errors.Errorf("no merge key found for field %s", + strings.Join(l.Path, ".")) + } + return key, nil +} + +// elementValues returns a slice containing all values for the field across all elements +// from all sources. +// Return value slice is ordered using the original ordering from the elements, where +// elements missing from earlier sources appear later. +func (l Walker) elementValues(keys []string) [][]string { + // use slice to to keep elements in the original order + var returnValues [][]string + var seen sets.StringList + + // if we are doing append, dest node should be the first. + // otherwise dest node should be the last. + beginIdx := 0 + if l.MergeOptions.ListIncreaseDirection == yaml.MergeOptionsListPrepend { + beginIdx = 1 + } + for i := range l.Sources { + src := l.Sources[(i+beginIdx)%len(l.Sources)] + if src == nil { + continue + } + + // add the value of the field for each element + // don't check error, we know this is a list node + values, _ := src.ElementValuesList(keys) + for _, s := range values { + if len(s) == 0 || seen.Has(s) { + continue + } + returnValues = append(returnValues, s) + seen = seen.Insert(s) + } + } + return returnValues +} + +// elementPrimitiveValues returns the primitive values in an associative list -- eg. finalizers +func (l Walker) elementPrimitiveValues() [][]string { + // use slice to to keep elements in the original order + var returnValues [][]string + seen := sets.String{} + // if we are doing append, dest node should be the first. + // otherwise dest node should be the last. + beginIdx := 0 + if l.MergeOptions.ListIncreaseDirection == yaml.MergeOptionsListPrepend { + beginIdx = 1 + } + for i := range l.Sources { + src := l.Sources[(i+beginIdx)%len(l.Sources)] + if src == nil { + continue + } + + // add the value of the field for each element + // don't check error, we know this is a list node + for _, item := range src.YNode().Content { + if seen.Has(item.Value) { + continue + } + returnValues = append(returnValues, []string{item.Value}) + seen.Insert(item.Value) + } + } + return returnValues +} + +// fieldValue returns a slice containing each source's value for fieldName +func (l Walker) elementValueList(keys []string, values []string) []*yaml.RNode { + keys, values = validateKeys([][]string{values}, values, keys) + var fields []*yaml.RNode + for i := range l.Sources { + if l.Sources[i] == nil { + fields = append(fields, nil) + continue + } + fields = append(fields, l.Sources[i].ElementList(keys, values)) + } + return fields +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/map.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/map.go new file mode 100644 index 0000000000..998af6d32f --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/map.go @@ -0,0 +1,173 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package walk + +import ( + "sort" + + "sigs.k8s.io/kustomize/kyaml/fieldmeta" + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/kustomize/kyaml/sets" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// walkMap returns the value of VisitMap +// +// - call VisitMap +// - set the return value on l.Dest +// - walk each source field +// - set each source field value on l.Dest +func (l Walker) walkMap() (*yaml.RNode, error) { + // get the new map value + dest, err := l.Sources.setDestNode(l.VisitMap(l.Sources, l.Schema)) + if dest == nil || err != nil { + return nil, err + } + + // recursively set the field values on the map + for _, key := range l.fieldNames() { + var res *yaml.RNode + var keys []*yaml.RNode + if l.VisitKeysAsScalars { + // visit the map keys as if they were scalars, + // this is necessary if doing things such as copying + // comments + for i := range l.Sources { + // construct the sources from the keys + if l.Sources[i] == nil { + keys = append(keys, nil) + continue + } + field := l.Sources[i].Field(key) + if field == nil || yaml.IsMissingOrNull(field.Key) { + keys = append(keys, nil) + continue + } + keys = append(keys, field.Key) + } + // visit the sources as a scalar + // keys don't have any schema --pass in nil + res, err = l.Visitor.VisitScalar(keys, nil) + if err != nil { + return nil, err + } + } + + var s *openapi.ResourceSchema + if l.Schema != nil { + s = l.Schema.Field(key) + } + fv, commentSch := l.fieldValue(key) + if commentSch != nil { + s = commentSch + } + val, err := Walker{ + VisitKeysAsScalars: l.VisitKeysAsScalars, + InferAssociativeLists: l.InferAssociativeLists, + Visitor: l, + Schema: s, + Sources: fv, + MergeOptions: l.MergeOptions, + Path: append(l.Path, key)}.Walk() + if err != nil { + return nil, err + } + + // transfer the comments of res to dest node + var comments yaml.Comments + if !yaml.IsMissingOrNull(res) { + comments = yaml.Comments{ + LineComment: res.YNode().LineComment, + HeadComment: res.YNode().HeadComment, + FootComment: res.YNode().FootComment, + } + if len(keys) > 0 && !yaml.IsMissingOrNull(keys[DestIndex]) { + keys[DestIndex].YNode().HeadComment = res.YNode().HeadComment + keys[DestIndex].YNode().LineComment = res.YNode().LineComment + keys[DestIndex].YNode().FootComment = res.YNode().FootComment + } + } + + // this handles empty and non-empty values + _, err = dest.Pipe(yaml.FieldSetter{Name: key, Comments: comments, Value: val}) + if err != nil { + return nil, err + } + } + + return dest, nil +} + +// valueIfPresent returns node.Value if node is non-nil, otherwise returns nil +func (l Walker) valueIfPresent(node *yaml.MapNode) (*yaml.RNode, *openapi.ResourceSchema) { + if node == nil { + return nil, nil + } + + // parse the schema for the field if present + var s *openapi.ResourceSchema + fm := fieldmeta.FieldMeta{} + var err error + // check the value for a schema + if err = fm.Read(node.Value); err == nil { + s = &openapi.ResourceSchema{Schema: &fm.Schema} + if fm.Schema.Ref.String() != "" { + r, err := openapi.Resolve(&fm.Schema.Ref, openapi.Schema()) + if err == nil && r != nil { + s.Schema = r + } + } + } + // check the key for a schema -- this will be used + // when the value is a Sequence (comments are attached) + // to the key + if fm.IsEmpty() { + if err = fm.Read(node.Key); err == nil { + s = &openapi.ResourceSchema{Schema: &fm.Schema} + } + if fm.Schema.Ref.String() != "" { + r, err := openapi.Resolve(&fm.Schema.Ref, openapi.Schema()) + if err == nil && r != nil { + s.Schema = r + } + } + } + return node.Value, s +} + +// fieldNames returns a sorted slice containing the names of all fields that appear in any of +// the sources +func (l Walker) fieldNames() []string { + fields := sets.String{} + for _, s := range l.Sources { + if s == nil { + continue + } + // don't check error, we know this is a mapping node + sFields, _ := s.Fields() + fields.Insert(sFields...) + } + result := fields.List() + sort.Strings(result) + return result +} + +// fieldValue returns a slice containing each source's value for fieldName +func (l Walker) fieldValue(fieldName string) ([]*yaml.RNode, *openapi.ResourceSchema) { + var fields []*yaml.RNode + var sch *openapi.ResourceSchema + for i := range l.Sources { + if l.Sources[i] == nil { + fields = append(fields, nil) + continue + } + field := l.Sources[i].Field(fieldName) + f, s := l.valueIfPresent(field) + fields = append(fields, f) + if sch == nil && !s.IsMissingOrNull() { + sch = s + } + } + return fields, sch +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/nonassociative_sequence.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/nonassociative_sequence.go new file mode 100644 index 0000000000..91b187e5bf --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/nonassociative_sequence.go @@ -0,0 +1,13 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package walk + +import ( + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +// walkNonAssociativeSequence returns the value of VisitList +func (l Walker) walkNonAssociativeSequence() (*yaml.RNode, error) { + return l.VisitList(l.Sources, l.Schema, NonAssociateList) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/scalar.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/scalar.go new file mode 100644 index 0000000000..1a26f6dffe --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/scalar.go @@ -0,0 +1,11 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package walk + +import "sigs.k8s.io/kustomize/kyaml/yaml" + +// walkScalar returns the value of VisitScalar +func (l Walker) walkScalar() (*yaml.RNode, error) { + return l.VisitScalar(l.Sources, l.Schema) +} diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/visitor.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/visitor.go new file mode 100644 index 0000000000..153ac29455 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/visitor.go @@ -0,0 +1,28 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package walk + +import ( + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/kustomize/kyaml/yaml" +) + +type ListKind int32 + +const ( + AssociativeList ListKind = 1 + iota + NonAssociateList +) + +// Visitor is invoked by walk with source and destination node pairs +type Visitor interface { + VisitMap(Sources, *openapi.ResourceSchema) (*yaml.RNode, error) + + VisitScalar(Sources, *openapi.ResourceSchema) (*yaml.RNode, error) + + VisitList(Sources, *openapi.ResourceSchema, ListKind) (*yaml.RNode, error) +} + +// ClearNode is returned if GrepFilter should do nothing after calling Set +var ClearNode *yaml.RNode diff --git a/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/walk.go b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/walk.go new file mode 100644 index 0000000000..68de1324e0 --- /dev/null +++ b/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/walk.go @@ -0,0 +1,186 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +package walk + +import ( + "fmt" + "os" + "strings" + + "sigs.k8s.io/kustomize/kyaml/fieldmeta" + "sigs.k8s.io/kustomize/kyaml/openapi" + "sigs.k8s.io/kustomize/kyaml/yaml" + "sigs.k8s.io/kustomize/kyaml/yaml/schema" +) + +// Walker walks the Source RNode and modifies the RNode provided to GrepFilter. +type Walker struct { + // Visitor is invoked by GrepFilter + Visitor + + Schema *openapi.ResourceSchema + + // Source is the RNode to walk. All Source fields and associative list elements + // will be visited. + Sources Sources + + // Path is the field path to the current Source Node. + Path []string + + // InferAssociativeLists if set to true will infer merge strategies for + // fields which it doesn't have the schema based on the fields in the + // list elements. + InferAssociativeLists bool + + // VisitKeysAsScalars if true will call VisitScalar on map entry keys, + // providing nil as the OpenAPI schema. + VisitKeysAsScalars bool + + // MergeOptions is a struct to store options for merge + MergeOptions yaml.MergeOptions +} + +// Kind returns the kind of the first non-null node in Sources. +func (l Walker) Kind() yaml.Kind { + for _, s := range l.Sources { + if !yaml.IsMissingOrNull(s) { + return s.YNode().Kind + } + } + return 0 +} + +// Walk will recursively traverse every item in the Sources and perform corresponding +// actions on them +func (l Walker) Walk() (*yaml.RNode, error) { + l.Schema = l.GetSchema() + + // invoke the handler for the corresponding node type + switch l.Kind() { + case yaml.MappingNode: + if err := yaml.ErrorIfAnyInvalidAndNonNull(yaml.MappingNode, l.Sources...); err != nil { + return nil, err + } + return l.walkMap() + case yaml.SequenceNode: + if err := yaml.ErrorIfAnyInvalidAndNonNull(yaml.SequenceNode, l.Sources...); err != nil { + return nil, err + } + // AssociativeSequence means the items in the sequence are associative. They can be merged + // according to merge key. + if schema.IsAssociative(l.Schema, l.Sources, l.InferAssociativeLists) { + return l.walkAssociativeSequence() + } + return l.walkNonAssociativeSequence() + + case yaml.ScalarNode: + if err := yaml.ErrorIfAnyInvalidAndNonNull(yaml.ScalarNode, l.Sources...); err != nil { + return nil, err + } + return l.walkScalar() + case 0: + // walk empty nodes as maps + return l.walkMap() + default: + return nil, nil + } +} + +func (l Walker) GetSchema() *openapi.ResourceSchema { + for i := range l.Sources { + r := l.Sources[i] + if yaml.IsMissingOrNull(r) { + continue + } + + fm := fieldmeta.FieldMeta{} + if err := fm.Read(r); err == nil && !fm.IsEmpty() { + // per-field schema, this is fine + if fm.Schema.Ref.String() != "" { + // resolve the reference + s, err := openapi.Resolve(&fm.Schema.Ref, openapi.Schema()) + if err == nil && s != nil { + fm.Schema = *s + } + } + return &openapi.ResourceSchema{Schema: &fm.Schema} + } + } + + if l.Schema != nil { + return l.Schema + } + for i := range l.Sources { + r := l.Sources[i] + if yaml.IsMissingOrNull(r) { + continue + } + + m, _ := r.GetMeta() + if m.Kind == "" || m.APIVersion == "" { + continue + } + + s := openapi.SchemaForResourceType(yaml.TypeMeta{Kind: m.Kind, APIVersion: m.APIVersion}) + if s != nil { + return s + } + } + return nil +} + +const ( + DestIndex = iota + OriginIndex + UpdatedIndex +) + +// Sources are a list of RNodes. First item is the dest node, followed by +// multiple source nodes. +type Sources []*yaml.RNode + +// Dest returns the destination node +func (s Sources) Dest() *yaml.RNode { + if len(s) <= DestIndex { + return nil + } + return s[DestIndex] +} + +// Origin returns the origin node +func (s Sources) Origin() *yaml.RNode { + if len(s) <= OriginIndex { + return nil + } + return s[OriginIndex] +} + +// Updated returns the updated node +func (s Sources) Updated() *yaml.RNode { + if len(s) <= UpdatedIndex { + return nil + } + return s[UpdatedIndex] +} + +func (s Sources) String() string { + var values []string + for i := range s { + str, err := s[i].String() + if err != nil { + fmt.Fprintf(os.Stderr, "%v\n", err) + } + values = append(values, str) + } + return strings.Join(values, "\n") +} + +// setDestNode sets the destination source node +func (s Sources) setDestNode(node *yaml.RNode, err error) (*yaml.RNode, error) { + if err != nil { + return nil, err + } + s[0] = node + return node, nil +} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/commands/build/build.go b/vendor/sigs.k8s.io/kustomize/pkg/commands/build/build.go deleted file mode 100644 index e62747e329..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/commands/build/build.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -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. -*/ - -package build - -import ( - "io" - - "github.com/pkg/errors" - "github.com/spf13/cobra" - "sigs.k8s.io/kustomize/pkg/constants" - "sigs.k8s.io/kustomize/pkg/fs" - "sigs.k8s.io/kustomize/pkg/ifc/transformer" - "sigs.k8s.io/kustomize/pkg/loader" - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/target" -) - -// Options contain the options for running a build -type Options struct { - kustomizationPath string - outputPath string -} - -// NewOptions creates a Options object -func NewOptions(p, o string) *Options { - return &Options{ - kustomizationPath: p, - outputPath: o, - } -} - -var examples = ` -Use the file somedir/kustomization.yaml to generate a set of api resources: - build somedir - -Use a url pointing to a remote directory/kustomization.yaml to generate a set of api resources: - build url -The url should follow hashicorp/go-getter URL format described in -https://github.com/hashicorp/go-getter#url-format - -url examples: - sigs.k8s.io/kustomize//examples/multibases?ref=v1.0.6 - github.com/Liujingfang1/mysql - github.com/Liujingfang1/kustomize//examples/helloWorld?ref=repoUrl2 -` - -// NewCmdBuild creates a new build command. -func NewCmdBuild( - out io.Writer, fs fs.FileSystem, - rf *resmap.Factory, - ptf transformer.Factory) *cobra.Command { - var o Options - - cmd := &cobra.Command{ - Use: "build [path]", - Short: "Print current configuration per contents of " + constants.KustomizationFileNames[0], - Example: examples, - SilenceUsage: true, - RunE: func(cmd *cobra.Command, args []string) error { - err := o.Validate(args) - if err != nil { - return err - } - return o.RunBuild(out, fs, rf, ptf) - }, - } - cmd.Flags().StringVarP( - &o.outputPath, - "output", "o", "", - "If specified, write the build output to this path.") - return cmd -} - -// Validate validates build command. -func (o *Options) Validate(args []string) error { - if len(args) > 1 { - return errors.New("specify one path to " + constants.KustomizationFileNames[0]) - } - if len(args) == 0 { - o.kustomizationPath = "./" - } else { - o.kustomizationPath = args[0] - } - - return nil -} - -// RunBuild runs build command. -func (o *Options) RunBuild( - out io.Writer, fSys fs.FileSystem, - rf *resmap.Factory, ptf transformer.Factory) error { - ldr, err := loader.NewLoader(o.kustomizationPath, fSys) - if err != nil { - return err - } - defer ldr.Cleanup() - kt, err := target.NewKustTarget(ldr, rf, ptf) - if err != nil { - return err - } - allResources, err := kt.MakeCustomizedResMap() - if err != nil { - return err - } - // Output the objects. - res, err := allResources.EncodeAsYaml() - if err != nil { - return err - } - if o.outputPath != "" { - return fSys.WriteFile(o.outputPath, res) - } - _, err = out.Write(res) - return err -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/constants/constants.go b/vendor/sigs.k8s.io/kustomize/pkg/constants/constants.go deleted file mode 100644 index dd50230fbd..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/constants/constants.go +++ /dev/null @@ -1,28 +0,0 @@ -/* -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. -*/ - -// Package constants holds global constants for the kustomize tool. -package constants - -// KustomizationFileNames is a list of filenames that can be recognized and consumbed -// by Kustomize. -// In each directory, Kustomize searches for file with the name in this list. -// Only one match is allowed. -var KustomizationFileNames = []string{ - "kustomization.yaml", - "kustomization.yml", - "Kustomization", -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/expansion/expand.go b/vendor/sigs.k8s.io/kustomize/pkg/expansion/expand.go deleted file mode 100644 index de55e46148..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/expansion/expand.go +++ /dev/null @@ -1,121 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package expansion provides functions find and replace $(FOO) style variables in strings. -package expansion - -import ( - "bytes" -) - -const ( - operator = '$' - referenceOpener = '(' - referenceCloser = ')' -) - -// syntaxWrap returns the input string wrapped by the expansion syntax. -func syntaxWrap(input string) string { - return string(operator) + string(referenceOpener) + input + string(referenceCloser) -} - -// MappingFuncFor returns a mapping function for use with Expand that -// implements the expansion semantics defined in the expansion spec; it -// returns the input string wrapped in the expansion syntax if no mapping -// for the input is found. -func MappingFuncFor( - counts map[string]int, - context ...map[string]string) func(string) string { - return func(input string) string { - for _, vars := range context { - val, ok := vars[input] - if ok { - counts[input]++ - return val - } - } - return syntaxWrap(input) - } -} - -// Expand replaces variable references in the input string according to -// the expansion spec using the given mapping function to resolve the -// values of variables. -func Expand(input string, mapping func(string) string) string { - var buf bytes.Buffer - checkpoint := 0 - for cursor := 0; cursor < len(input); cursor++ { - if input[cursor] == operator && cursor+1 < len(input) { - // Copy the portion of the input string since the last - // checkpoint into the buffer - buf.WriteString(input[checkpoint:cursor]) - - // Attempt to read the variable name as defined by the - // syntax from the input string - read, isVar, advance := tryReadVariableName(input[cursor+1:]) - - if isVar { - // We were able to read a variable name correctly; - // apply the mapping to the variable name and copy the - // bytes into the buffer - buf.WriteString(mapping(read)) - } else { - // Not a variable name; copy the read bytes into the buffer - buf.WriteString(read) - } - - // Advance the cursor in the input string to account for - // bytes consumed to read the variable name expression - cursor += advance - - // Advance the checkpoint in the input string - checkpoint = cursor + 1 - } - } - - // Return the buffer and any remaining unwritten bytes in the - // input string. - return buf.String() + input[checkpoint:] -} - -// tryReadVariableName attempts to read a variable name from the input -// string and returns the content read from the input, whether that content -// represents a variable name to perform mapping on, and the number of bytes -// consumed in the input string. -// -// The input string is assumed not to contain the initial operator. -func tryReadVariableName(input string) (string, bool, int) { - switch input[0] { - case operator: - // Escaped operator; return it. - return input[0:1], false, 1 - case referenceOpener: - // Scan to expression closer - for i := 1; i < len(input); i++ { - if input[i] == referenceCloser { - return input[1:i], true, i + 1 - } - } - - // Incomplete reference; return it. - return string(operator) + string(referenceOpener), false, 1 - default: - // Not the beginning of an expression, ie, an operator - // that doesn't begin an expression. Return the operator - // and the first rune in the string. - return string(operator) + string(input[0]), false, 1 - } -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/factory/factory.go b/vendor/sigs.k8s.io/kustomize/pkg/factory/factory.go deleted file mode 100644 index e71669a871..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/factory/factory.go +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright 2018 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. -*/ -// Package factory provides factories for kustomize. -package factory - -import ( - "sigs.k8s.io/kustomize/pkg/ifc" - "sigs.k8s.io/kustomize/pkg/ifc/transformer" - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/resource" -) - -// KustFactory provides different factories for kustomize -type KustFactory struct { - ResmapF *resmap.Factory - TransformerF transformer.Factory - ValidatorF ifc.Validator - UnstructF ifc.KunstructuredFactory -} - -// NewKustFactory creats a KustFactory instance -func NewKustFactory(u ifc.KunstructuredFactory, v ifc.Validator, t transformer.Factory) *KustFactory { - return &KustFactory{ - ResmapF: resmap.NewFactory(resource.NewFactory(u)), - TransformerF: t, - ValidatorF: v, - UnstructF: u, - } -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/fs/confirmeddir.go b/vendor/sigs.k8s.io/kustomize/pkg/fs/confirmeddir.go deleted file mode 100644 index 5d12bf0779..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/fs/confirmeddir.go +++ /dev/null @@ -1,93 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package fs - -import ( - "io/ioutil" - "path/filepath" - "strings" -) - -// ConfirmedDir is a clean, absolute, delinkified path -// that was confirmed to point to an existing directory. -type ConfirmedDir string - -// NewTmpConfirmedDir returns a temporary dir, else error. -// The directory is cleaned, no symlinks, etc. so its -// returned as a ConfirmedDir. -func NewTmpConfirmedDir() (ConfirmedDir, error) { - n, err := ioutil.TempDir("", "kustomize-") - if err != nil { - return "", err - } - - // In MacOs `ioutil.TempDir` creates a directory - // with root in the `/var` folder, which is in turn a symlinked path - // to `/private/var`. - // Function `filepath.EvalSymlinks`is used to - // resolve the real absolute path. - deLinked, err := filepath.EvalSymlinks(n) - return ConfirmedDir(deLinked), err - -} - -// HasPrefix returns true if the directory argument -// is a prefix of self (d) from the point of view of -// a file system. -// -// I.e., it's true if the argument equals or contains -// self (d) in a file path sense. -// -// HasPrefix emulates the semantics of strings.HasPrefix -// such that the following are true: -// -// strings.HasPrefix("foobar", "foobar") -// strings.HasPrefix("foobar", "foo") -// strings.HasPrefix("foobar", "") -// -// d := fSys.ConfirmDir("/foo/bar") -// d.HasPrefix("/foo/bar") -// d.HasPrefix("/foo") -// d.HasPrefix("/") -// -// Not contacting a file system here to check for -// actual path existence. -// -// This is tested on linux, but will have trouble -// on other operating systems. -// TODO(monopole) Refactor when #golang/go/18358 closes. -// See also: -// https://github.com/golang/go/issues/18358 -// https://github.com/golang/dep/issues/296 -// https://github.com/golang/dep/blob/master/internal/fs/fs.go#L33 -// https://codereview.appspot.com/5712045 -func (d ConfirmedDir) HasPrefix(path ConfirmedDir) bool { - if path.String() == string(filepath.Separator) || path == d { - return true - } - return strings.HasPrefix( - string(d), - string(path)+string(filepath.Separator)) -} - -func (d ConfirmedDir) Join(path string) string { - return filepath.Join(string(d), path) -} - -func (d ConfirmedDir) String() string { - return string(d) -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/fs/fakefile.go b/vendor/sigs.k8s.io/kustomize/pkg/fs/fakefile.go deleted file mode 100644 index 64bc55685f..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/fs/fakefile.go +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package fs - -import ( - "bytes" - "os" -) - -var _ File = &FakeFile{} - -// FakeFile implements File in-memory for tests. -type FakeFile struct { - name string - content []byte - dir bool - open bool -} - -// makeDir makes a fake directory. -func makeDir(name string) *FakeFile { - return &FakeFile{name: name, dir: true} -} - -// Close marks the fake file closed. -func (f *FakeFile) Close() error { - f.open = false - return nil -} - -// Read never fails, and doesn't mutate p. -func (f *FakeFile) Read(p []byte) (n int, err error) { - return len(p), nil -} - -// Write saves the contents of the argument to memory. -func (f *FakeFile) Write(p []byte) (n int, err error) { - f.content = p - return len(p), nil -} - -// ContentMatches returns true if v matches fake file's content. -func (f *FakeFile) ContentMatches(v []byte) bool { - return bytes.Equal(v, f.content) -} - -// GetContent the content of a fake file. -func (f *FakeFile) GetContent() []byte { - return f.content -} - -// Stat returns nil. -func (f *FakeFile) Stat() (os.FileInfo, error) { - return nil, nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/fs/fakefileinfo.go b/vendor/sigs.k8s.io/kustomize/pkg/fs/fakefileinfo.go deleted file mode 100644 index 6ccca91509..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/fs/fakefileinfo.go +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package fs - -import ( - "os" - "time" -) - -var _ os.FileInfo = &Fakefileinfo{} - -// Fakefileinfo implements Fakefileinfo using a fake in-memory filesystem. -type Fakefileinfo struct { - *FakeFile -} - -// Name returns the name of the file -func (fi *Fakefileinfo) Name() string { return fi.name } - -// Size returns the size of the file -func (fi *Fakefileinfo) Size() int64 { return int64(len(fi.content)) } - -// Mode returns the file mode -func (fi *Fakefileinfo) Mode() os.FileMode { return 0777 } - -// ModTime returns the modification time -func (fi *Fakefileinfo) ModTime() time.Time { return time.Time{} } - -// IsDir returns if it is a directory -func (fi *Fakefileinfo) IsDir() bool { return fi.dir } - -// Sys should return underlying data source, but it now returns nil -func (fi *Fakefileinfo) Sys() interface{} { return nil } diff --git a/vendor/sigs.k8s.io/kustomize/pkg/fs/fakefs.go b/vendor/sigs.k8s.io/kustomize/pkg/fs/fakefs.go deleted file mode 100644 index 59c0966b21..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/fs/fakefs.go +++ /dev/null @@ -1,185 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package fs - -import ( - "fmt" - "path/filepath" - "sort" - "strings" - - "sigs.k8s.io/kustomize/pkg/constants" -) - -var _ FileSystem = &fakeFs{} - -// fakeFs implements FileSystem using a fake in-memory filesystem. -type fakeFs struct { - m map[string]*FakeFile -} - -// MakeFakeFS returns an instance of fakeFs with no files in it. -func MakeFakeFS() *fakeFs { - result := &fakeFs{m: map[string]*FakeFile{}} - result.Mkdir("/") - return result -} - -// kustomizationContent is used in tests. -const kustomizationContent = `apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namePrefix: some-prefix -nameSuffix: some-suffix -# Labels to add to all objects and selectors. -# These labels would also be used to form the selector for apply --prune -# Named differently than “labels” to avoid confusion with metadata for this object -commonLabels: - app: helloworld -commonAnnotations: - note: This is an example annotation -resources: [] -#- service.yaml -#- ../some-dir/ -# There could also be configmaps in Base, which would make these overlays -configMapGenerator: [] -# There could be secrets in Base, if just using a fork/rebase workflow -secretGenerator: [] -` - -// Create assures a fake file appears in the in-memory file system. -func (fs *fakeFs) Create(name string) (File, error) { - f := &FakeFile{} - f.open = true - fs.m[name] = f - return fs.m[name], nil -} - -// Mkdir assures a fake directory appears in the in-memory file system. -func (fs *fakeFs) Mkdir(name string) error { - fs.m[name] = makeDir(name) - return nil -} - -// MkdirAll delegates to Mkdir -func (fs *fakeFs) MkdirAll(name string) error { - return fs.Mkdir(name) -} - -// RemoveAll presumably does rm -r on a path. -// There's no error. -func (fs *fakeFs) RemoveAll(name string) error { - var toRemove []string - for k := range fs.m { - if strings.HasPrefix(k, name) { - toRemove = append(toRemove, k) - } - } - for _, k := range toRemove { - delete(fs.m, k) - } - return nil -} - -// Open returns a fake file in the open state. -func (fs *fakeFs) Open(name string) (File, error) { - if _, found := fs.m[name]; !found { - return nil, fmt.Errorf("file %q cannot be opened", name) - } - return fs.m[name], nil -} - -// CleanedAbs cannot fail. -func (fs *fakeFs) CleanedAbs(path string) (ConfirmedDir, string, error) { - if fs.IsDir(path) { - return ConfirmedDir(path), "", nil - } - d := filepath.Dir(path) - if d == path { - return ConfirmedDir(d), "", nil - } - return ConfirmedDir(d), filepath.Base(path), nil -} - -// Exists returns true if file is known. -func (fs *fakeFs) Exists(name string) bool { - _, found := fs.m[name] - return found -} - -// Glob returns the list of matching files -func (fs *fakeFs) Glob(pattern string) ([]string, error) { - var result []string - for p := range fs.m { - if fs.pathMatch(p, pattern) { - result = append(result, p) - } - } - sort.Strings(result) - return result, nil -} - -// IsDir returns true if the file exists and is a directory. -func (fs *fakeFs) IsDir(name string) bool { - f, found := fs.m[name] - if found && f.dir { - return true - } - if !strings.HasSuffix(name, "/") { - name = name + "/" - } - for k := range fs.m { - if strings.HasPrefix(k, name) { - return true - } - } - return false -} - -// ReadFile always returns an empty bytes and error depending on content of m. -func (fs *fakeFs) ReadFile(name string) ([]byte, error) { - if ff, found := fs.m[name]; found { - return ff.content, nil - } - return nil, fmt.Errorf("cannot read file %q", name) -} - -func (fs *fakeFs) ReadTestKustomization() ([]byte, error) { - return fs.ReadFile(constants.KustomizationFileNames[0]) -} - -// WriteFile always succeeds and does nothing. -func (fs *fakeFs) WriteFile(name string, c []byte) error { - ff := &FakeFile{} - ff.Write(c) - fs.m[name] = ff - return nil -} - -// WriteTestKustomization writes a standard test file. -func (fs *fakeFs) WriteTestKustomization() { - fs.WriteTestKustomizationWith([]byte(kustomizationContent)) -} - -// WriteTestKustomizationWith writes a standard test file. -func (fs *fakeFs) WriteTestKustomizationWith(bytes []byte) { - fs.WriteFile(constants.KustomizationFileNames[0], bytes) -} - -func (fs *fakeFs) pathMatch(path, pattern string) bool { - match, _ := filepath.Match(pattern, path) - return match -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/fs/fs.go b/vendor/sigs.k8s.io/kustomize/pkg/fs/fs.go deleted file mode 100644 index 4b47dba648..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/fs/fs.go +++ /dev/null @@ -1,44 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package fs provides a file system abstraction layer. -package fs - -import ( - "io" - "os" -) - -// FileSystem groups basic os filesystem methods. -type FileSystem interface { - Create(name string) (File, error) - Mkdir(name string) error - MkdirAll(name string) error - RemoveAll(name string) error - Open(name string) (File, error) - IsDir(name string) bool - CleanedAbs(path string) (ConfirmedDir, string, error) - Exists(name string) bool - Glob(pattern string) ([]string, error) - ReadFile(name string) ([]byte, error) - WriteFile(name string, data []byte) error -} - -// File groups the basic os.File methods. -type File interface { - io.ReadWriteCloser - Stat() (os.FileInfo, error) -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/fs/realfile.go b/vendor/sigs.k8s.io/kustomize/pkg/fs/realfile.go deleted file mode 100644 index 5bfec55abe..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/fs/realfile.go +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package fs - -import ( - "os" -) - -var _ File = &realFile{} - -// realFile implements File using the local filesystem. -type realFile struct { - file *os.File -} - -// Close closes a file. -func (f *realFile) Close() error { return f.file.Close() } - -// Read reads a file's content. -func (f *realFile) Read(p []byte) (n int, err error) { return f.file.Read(p) } - -// Write writes bytes to a file -func (f *realFile) Write(p []byte) (n int, err error) { return f.file.Write(p) } - -// Stat returns an interface which has all the information regarding the file. -func (f *realFile) Stat() (os.FileInfo, error) { return f.file.Stat() } diff --git a/vendor/sigs.k8s.io/kustomize/pkg/fs/realfs.go b/vendor/sigs.k8s.io/kustomize/pkg/fs/realfs.go deleted file mode 100644 index 11e5813b78..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/fs/realfs.go +++ /dev/null @@ -1,122 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package fs - -import ( - "fmt" - "io/ioutil" - "log" - "os" - "path/filepath" -) - -var _ FileSystem = realFS{} - -// realFS implements FileSystem using the local filesystem. -type realFS struct{} - -// MakeRealFS makes an instance of realFS. -func MakeRealFS() FileSystem { - return realFS{} -} - -// Create delegates to os.Create. -func (realFS) Create(name string) (File, error) { return os.Create(name) } - -// Mkdir delegates to os.Mkdir. -func (realFS) Mkdir(name string) error { - return os.Mkdir(name, 0777|os.ModeDir) -} - -// MkdirAll delegates to os.MkdirAll. -func (realFS) MkdirAll(name string) error { - return os.MkdirAll(name, 0777|os.ModeDir) -} - -// RemoveAll delegates to os.RemoveAll. -func (realFS) RemoveAll(name string) error { - return os.RemoveAll(name) -} - -// Open delegates to os.Open. -func (realFS) Open(name string) (File, error) { return os.Open(name) } - -// CleanedAbs returns a cleaned, absolute path -// with no symbolic links split into directory -// and file components. If the entire path is -// a directory, the file component is an empty -// string. -func (x realFS) CleanedAbs( - path string) (ConfirmedDir, string, error) { - absRoot, err := filepath.Abs(path) - if err != nil { - return "", "", fmt.Errorf( - "abs path error on '%s' : %v", path, err) - } - deLinked, err := filepath.EvalSymlinks(absRoot) - if err != nil { - return "", "", fmt.Errorf( - "evalsymlink failure on '%s' : %v", path, err) - } - if x.IsDir(deLinked) { - return ConfirmedDir(deLinked), "", nil - } - d := filepath.Dir(deLinked) - if !x.IsDir(d) { - // Programmer/assumption error. - log.Fatalf("first part of '%s' not a directory", deLinked) - } - if d == deLinked { - // Programmer/assumption error. - log.Fatalf("d '%s' should be a subset of deLinked", d) - } - f := filepath.Base(deLinked) - if filepath.Join(d, f) != deLinked { - // Programmer/assumption error. - log.Fatalf("these should be equal: '%s', '%s'", - filepath.Join(d, f), deLinked) - } - return ConfirmedDir(d), f, nil -} - -// Exists returns true if os.Stat succeeds. -func (realFS) Exists(name string) bool { - _, err := os.Stat(name) - return err == nil -} - -// Glob returns the list of matching files -func (realFS) Glob(pattern string) ([]string, error) { - return filepath.Glob(pattern) -} - -// IsDir delegates to os.Stat and FileInfo.IsDir -func (realFS) IsDir(name string) bool { - info, err := os.Stat(name) - if err != nil { - return false - } - return info.IsDir() -} - -// ReadFile delegates to ioutil.ReadFile. -func (realFS) ReadFile(name string) ([]byte, error) { return ioutil.ReadFile(name) } - -// WriteFile delegates to ioutil.WriteFile with read/write permissions. -func (realFS) WriteFile(name string, c []byte) error { - return ioutil.WriteFile(name, c, 0666) -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/git/cloner.go b/vendor/sigs.k8s.io/kustomize/pkg/git/cloner.go deleted file mode 100644 index 465fdb1d13..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/git/cloner.go +++ /dev/null @@ -1,75 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package git - -import ( - "bytes" - "os/exec" - - "github.com/pkg/errors" - "sigs.k8s.io/kustomize/pkg/fs" -) - -// Cloner is a function that can clone a git repo. -type Cloner func(repoSpec *RepoSpec) error - -// ClonerUsingGitExec uses a local git install, as opposed -// to say, some remote API, to obtain a local clone of -// a remote repo. -func ClonerUsingGitExec(repoSpec *RepoSpec) error { - gitProgram, err := exec.LookPath("git") - if err != nil { - return errors.Wrap(err, "no 'git' program on path") - } - repoSpec.cloneDir, err = fs.NewTmpConfirmedDir() - if err != nil { - return err - } - cmd := exec.Command( - gitProgram, - "clone", - repoSpec.CloneSpec(), - repoSpec.cloneDir.String()) - var out bytes.Buffer - cmd.Stdout = &out - err = cmd.Run() - if err != nil { - return errors.Wrapf(err, "trouble cloning %s", repoSpec.raw) - } - if repoSpec.ref == "" { - return nil - } - cmd = exec.Command(gitProgram, "checkout", repoSpec.ref) - cmd.Dir = repoSpec.cloneDir.String() - err = cmd.Run() - if err != nil { - return errors.Wrapf( - err, "trouble checking out href %s", repoSpec.ref) - } - return nil -} - -// DoNothingCloner returns a cloner that only sets -// cloneDir field in the repoSpec. It's assumed that -// the cloneDir is associated with some fake filesystem -// used in a test. -func DoNothingCloner(dir fs.ConfirmedDir) Cloner { - return func(rs *RepoSpec) error { - rs.cloneDir = dir - return nil - } -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/git/repospec.go b/vendor/sigs.k8s.io/kustomize/pkg/git/repospec.go deleted file mode 100644 index b3251f6535..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/git/repospec.go +++ /dev/null @@ -1,214 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package git - -import ( - "fmt" - "path/filepath" - "strings" - - "sigs.k8s.io/kustomize/pkg/fs" -) - -// Used as a temporary non-empty occupant of the cloneDir -// field, as something distinguishable from the empty string -// in various outputs (especially tests). Not using an -// actual directory name here, as that's a temporary directory -// with a unique name that isn't created until clone time. -const notCloned = fs.ConfirmedDir("/notCloned") - -// RepoSpec specifies a git repository and a branch and path therein. -type RepoSpec struct { - // Raw, original spec, used to look for cycles. - // TODO(monopole): Drop raw, use processed fields instead. - raw string - - // Host, e.g. github.com - host string - - // orgRepo name (organization/repoName), - // e.g. kubernetes-sigs/kustomize - orgRepo string - - // ConfirmedDir where the orgRepo is cloned to. - cloneDir fs.ConfirmedDir - - // Relative path in the repository, and in the cloneDir, - // to a Kustomization. - path string - - // Branch or tag reference. - ref string -} - -// CloneSpec returns a string suitable for "git clone {spec}". -func (x *RepoSpec) CloneSpec() string { - if isAzureHost(x.host) || isAWSHost(x.host) { - return x.host + x.orgRepo - } - return x.host + x.orgRepo + gitSuffix -} - -func (x *RepoSpec) CloneDir() fs.ConfirmedDir { - return x.cloneDir -} - -func (x *RepoSpec) Raw() string { - return x.raw -} - -func (x *RepoSpec) AbsPath() string { - return x.cloneDir.Join(x.path) -} - -func (x *RepoSpec) Cleaner(fSys fs.FileSystem) func() error { - return func() error { return fSys.RemoveAll(x.cloneDir.String()) } -} - -// From strings like git@github.com:someOrg/someRepo.git or -// https://github.com/someOrg/someRepo?ref=someHash, extract -// the parts. -func NewRepoSpecFromUrl(n string) (*RepoSpec, error) { - if filepath.IsAbs(n) { - return nil, fmt.Errorf("uri looks like abs path: %s", n) - } - host, orgRepo, path, gitRef := parseGithubUrl(n) - if orgRepo == "" { - return nil, fmt.Errorf("url lacks orgRepo: %s", n) - } - if host == "" { - return nil, fmt.Errorf("url lacks host: %s", n) - } - return &RepoSpec{ - raw: n, host: host, orgRepo: orgRepo, - cloneDir: notCloned, path: path, ref: gitRef}, nil -} - -const ( - refQuery = "?ref=" - gitSuffix = ".git" -) - -// From strings like git@github.com:someOrg/someRepo.git or -// https://github.com/someOrg/someRepo?ref=someHash, extract -// the parts. -func parseGithubUrl(n string) ( - host string, orgRepo string, path string, gitRef string) { - host, n = parseHostSpec(n) - - if strings.Contains(n, gitSuffix) { - index := strings.Index(n, gitSuffix) - orgRepo = n[0:index] - n = n[index+len(gitSuffix):] - path, gitRef = peelQuery(n) - return - } - - i := strings.Index(n, "/") - if i < 1 { - return "", "", "", "" - } - j := strings.Index(n[i+1:], "/") - if j >= 0 { - j += i + 1 - orgRepo = n[:j] - path, gitRef = peelQuery(n[j+1:]) - } else { - path = "" - orgRepo, gitRef = peelQuery(n) - } - return -} - -func peelQuery(arg string) (string, string) { - j := strings.Index(arg, refQuery) - if j >= 0 { - return arg[:j], arg[j+len(refQuery):] - } - return arg, "" -} - -func parseHostSpec(n string) (string, string) { - var host string - // Start accumulating the host part. - for _, p := range []string{ - // Order matters here. - "git::", "gh:", "ssh://", "https://", "http://", - "git@", "github.com:", "github.com/"} { - if len(p) < len(n) && strings.ToLower(n[:len(p)]) == p { - n = n[len(p):] - host += p - } - } - if host == "git@" { - i := strings.Index(n, "/") - if i > -1 { - host += n[:i+1] - n = n[i+1:] - } else { - i = strings.Index(n, ":") - if i > -1 { - host += n[:i+1] - n = n[i+1:] - } - } - return host, n - } - - // If host is a http(s) or ssh URL, grab the domain part. - for _, p := range []string{ - "ssh://", "https://", "http://"} { - if strings.HasSuffix(host, p) { - i := strings.Index(n, "/") - if i > -1 { - host = host + n[0:i+1] - n = n[i+1:] - } - break - } - } - - return normalizeGitHostSpec(host), n -} - -func normalizeGitHostSpec(host string) string { - s := strings.ToLower(host) - if strings.Contains(s, "github.com") { - if strings.Contains(s, "git@") || strings.Contains(s, "ssh:") { - host = "git@github.com:" - } else { - host = "https://github.com/" - } - } - if strings.HasPrefix(s, "git::") { - host = strings.TrimLeft(s, "git::") - } - return host -} - -// The format of Azure repo URL is documented -// https://docs.microsoft.com/en-us/azure/devops/repos/git/clone?view=vsts&tabs=visual-studio#clone_url -func isAzureHost(host string) bool { - return strings.Contains(host, "dev.azure.com") || - strings.Contains(host, "visualstudio.com") -} - -// The format of AWS repo URL is documented -// https://docs.aws.amazon.com/codecommit/latest/userguide/regions.html -func isAWSHost(host string) bool { - return strings.Contains(host, "amazonaws.com") -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/gvk/gvk.go b/vendor/sigs.k8s.io/kustomize/pkg/gvk/gvk.go deleted file mode 100644 index 890c8e8b53..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/gvk/gvk.go +++ /dev/null @@ -1,180 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package gvk - -import ( - "strings" -) - -// Gvk identifies a Kubernetes API type. -// https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md -type Gvk struct { - Group string `json:"group,omitempty" yaml:"group,omitempty"` - Version string `json:"version,omitempty" yaml:"version,omitempty"` - Kind string `json:"kind,omitempty" yaml:"kind,omitempty"` -} - -// FromKind makes a Gvk with only the kind specified. -func FromKind(k string) Gvk { - return Gvk{ - Kind: k, - } -} - -// Values that are brief but meaningful in logs. -const ( - noGroup = "~G" - noVersion = "~V" - noKind = "~K" - separator = "_" -) - -// String returns a string representation of the GVK. -func (x Gvk) String() string { - g := x.Group - if g == "" { - g = noGroup - } - v := x.Version - if v == "" { - v = noVersion - } - k := x.Kind - if k == "" { - k = noKind - } - return strings.Join([]string{g, v, k}, separator) -} - -// Equals returns true if the Gvk's have equal fields. -func (x Gvk) Equals(o Gvk) bool { - return x.Group == o.Group && x.Version == o.Version && x.Kind == o.Kind -} - -// An attempt to order things to help k8s, e.g. -// a Service should come before things that refer to it. -// Namespace should be first. -// In some cases order just specified to provide determinism. -var order = []string{ - "Namespace", - "StorageClass", - "CustomResourceDefinition", - "MutatingWebhookConfiguration", - "ValidatingWebhookConfiguration", - "ServiceAccount", - "Role", - "ClusterRole", - "RoleBinding", - "ClusterRoleBinding", - "ConfigMap", - "Secret", - "Service", - "Deployment", - "StatefulSet", - "CronJob", - "PodDisruptionBudget", -} -var typeOrders = func() map[string]int { - m := map[string]int{} - for i, n := range order { - m[n] = i - } - return m -}() - -// IsLessThan returns true if self is less than the argument. -func (x Gvk) IsLessThan(o Gvk) bool { - indexI, foundI := typeOrders[x.Kind] - indexJ, foundJ := typeOrders[o.Kind] - if foundI && foundJ { - if indexI != indexJ { - return indexI < indexJ - } - } - if foundI && !foundJ { - return true - } - if !foundI && foundJ { - return false - } - return x.String() < o.String() -} - -// IsSelected returns true if `selector` selects `x`; otherwise, false. -// If `selector` and `x` are the same, return true. -// If `selector` is nil, it is considered a wildcard match, returning true. -// If selector fields are empty, they are considered wildcards matching -// anything in the corresponding fields, e.g. -// -// this item: -// -// -// is selected by -// -// -// but rejected by -// -// -func (x Gvk) IsSelected(selector *Gvk) bool { - if selector == nil { - return true - } - if len(selector.Group) > 0 { - if x.Group != selector.Group { - return false - } - } - if len(selector.Version) > 0 { - if x.Version != selector.Version { - return false - } - } - if len(selector.Kind) > 0 { - if x.Kind != selector.Kind { - return false - } - } - return true -} - -var clusterLevelKinds = []string{ - "APIService", - "ClusterRoleBinding", - "ClusterRole", - "CustomResourceDefinition", - "Namespace", - "PersistentVolume", -} - -// IsClusterKind returns true if x is a cluster-level Gvk -func (x Gvk) IsClusterKind() bool { - for _, k := range clusterLevelKinds { - if k == x.Kind { - return true - } - } - return false -} - -// ClusterLevelGvks returns a slice of cluster-level Gvks -func ClusterLevelGvks() []Gvk { - var result []Gvk - for _, k := range clusterLevelKinds { - result = append(result, Gvk{Kind: k}) - } - return result -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/ifc/ifc.go b/vendor/sigs.k8s.io/kustomize/pkg/ifc/ifc.go deleted file mode 100644 index e6267cae25..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/ifc/ifc.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package ifc holds miscellaneous interfaces used by kustomize. -package ifc - -import ( - "sigs.k8s.io/kustomize/pkg/gvk" - "sigs.k8s.io/kustomize/pkg/types" -) - -// Validator provides functions to validate annotations and labels -type Validator interface { - MakeAnnotationValidator() func(map[string]string) error - MakeLabelValidator() func(map[string]string) error - ValidateNamespace(string) []string -} - -// Loader interface exposes methods to read bytes. -type Loader interface { - // Root returns the root location for this Loader. - Root() string - // New returns Loader located at newRoot. - New(newRoot string) (Loader, error) - // Load returns the bytes read from the location or an error. - Load(location string) ([]byte, error) - // Cleanup cleans the loader - Cleanup() error -} - -// Kunstructured allows manipulation of k8s objects -// that do not have Golang structs. -type Kunstructured interface { - Map() map[string]interface{} - SetMap(map[string]interface{}) - Copy() Kunstructured - GetFieldValue(string) (string, error) - MarshalJSON() ([]byte, error) - UnmarshalJSON([]byte) error - GetGvk() gvk.Gvk - GetKind() string - GetName() string - SetName(string) - GetLabels() map[string]string - SetLabels(map[string]string) - GetAnnotations() map[string]string - SetAnnotations(map[string]string) -} - -// KunstructuredFactory makes instances of Kunstructured. -type KunstructuredFactory interface { - SliceFromBytes([]byte) ([]Kunstructured, error) - FromMap(m map[string]interface{}) Kunstructured - MakeConfigMap(args *types.ConfigMapArgs, options *types.GeneratorOptions) (Kunstructured, error) - MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (Kunstructured, error) - Set(ldr Loader) -} - -// See core.v1.SecretTypeOpaque -const SecretTypeOpaque = "Opaque" diff --git a/vendor/sigs.k8s.io/kustomize/pkg/ifc/transformer/factory.go b/vendor/sigs.k8s.io/kustomize/pkg/ifc/transformer/factory.go deleted file mode 100644 index 0a74c28093..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/ifc/transformer/factory.go +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package patch holds miscellaneous interfaces used by kustomize. -package transformer - -import ( - "sigs.k8s.io/kustomize/pkg/resource" - "sigs.k8s.io/kustomize/pkg/transformers" -) - -// Factory makes transformers -type Factory interface { - MakePatchTransformer(slice []*resource.Resource, rf *resource.Factory) (transformers.Transformer, error) - MakeHashTransformer() transformers.Transformer -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/image/deprecatedimage.go b/vendor/sigs.k8s.io/kustomize/pkg/image/deprecatedimage.go deleted file mode 100644 index 65db4051b3..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/image/deprecatedimage.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2019 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. -*/ - -package image - -// DeprecatedImage contains an image and a new tag, -// which will replace the original tag. -// Deprecated, instead use Image. -type DeprecatedImage struct { - // Name is a tag-less image name. - Name string `json:"name,omitempty" yaml:"name,omitempty"` - - // NewTag is the value to use in replacing the original tag. - NewTag string `json:"newTag,omitempty" yaml:"newTag,omitempty"` - - // Digest is the value used to replace the original image tag. - // If digest is present NewTag value is ignored. - Digest string `json:"digest,omitempty" yaml:"digest,omitempty"` -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/image/image.go b/vendor/sigs.k8s.io/kustomize/pkg/image/image.go deleted file mode 100644 index dbe3b8b175..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/image/image.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2019 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. -*/ - -// Package image provides struct definitions and libraries -// for image overwriting of names, tags and digest. -package image - -// Image contains an image name, a new name, a new tag or digest, -// which will replace the original name and tag. -type Image struct { - // Name is a tag-less image name. - Name string `json:"name,omitempty" yaml:"name,omitempty"` - - // NewName is the value used to replace the original name. - NewName string `json:"newName,omitempty" yaml:"newName,omitempty"` - - // NewTag is the value used to replace the original tag. - NewTag string `json:"newTag,omitempty" yaml:"newTag,omitempty"` - - // Digest is the value used to replace the original image tag. - // If digest is present NewTag value is ignored. - Digest string `json:"digest,omitempty" yaml:"digest,omitempty"` -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/configmaperror.go b/vendor/sigs.k8s.io/kustomize/pkg/internal/error/configmaperror.go deleted file mode 100644 index 1d60d78a23..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/configmaperror.go +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package error has contextual error types. -package error - -import "fmt" - -// ConfigmapError represents error with a configmap. -type ConfigmapError struct { - Path string - ErrorMsg string -} - -func (e ConfigmapError) Error() string { - return fmt.Sprintf("Kustomization file [%s] encounters a configmap error: %s\n", e.Path, e.ErrorMsg) -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/kustomizationerror.go b/vendor/sigs.k8s.io/kustomize/pkg/internal/error/kustomizationerror.go deleted file mode 100644 index 0d53ca9b89..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/kustomizationerror.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package error - -import ( - "fmt" -) - -// KustomizationError represents an error with a kustomization. -type KustomizationError struct { - KustomizationPath string - ErrorMsg string -} - -func (ke KustomizationError) Error() string { - return fmt.Sprintf("Kustomization File [%s]: %s\n", ke.KustomizationPath, ke.ErrorMsg) -} - -// KustomizationErrors collects all errors. -type KustomizationErrors struct { - kErrors []error -} - -func (ke *KustomizationErrors) Error() string { - errormsg := "" - for _, e := range ke.kErrors { - errormsg += e.Error() + "\n" - } - return errormsg -} - -// Append adds error to a collection of errors. -func (ke *KustomizationErrors) Append(e error) { - ke.kErrors = append(ke.kErrors, e) -} - -// Get returns all collected errors. -func (ke *KustomizationErrors) Get() []error { - return ke.kErrors -} - -// BatchAppend adds all errors from another KustomizationErrors -func (ke *KustomizationErrors) BatchAppend(e KustomizationErrors) { - for _, err := range e.Get() { - ke.kErrors = append(ke.kErrors, err) - } -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/patcherror.go b/vendor/sigs.k8s.io/kustomize/pkg/internal/error/patcherror.go deleted file mode 100644 index 60c9f80e5b..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/patcherror.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package error - -import ( - "fmt" -) - -// PatchError represents error during Patch. -type PatchError struct { - KustomizationPath string - PatchFilepath string - ErrorMsg string -} - -func (e PatchError) Error() string { - return fmt.Sprintf("Kustomization file [%s] encounters a patch error for [%s]: %s\n", e.KustomizationPath, e.PatchFilepath, e.ErrorMsg) -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/resourceerror.go b/vendor/sigs.k8s.io/kustomize/pkg/internal/error/resourceerror.go deleted file mode 100644 index ef3566dd1f..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/resourceerror.go +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package error - -import "fmt" - -// ResourceError represents error in a resource. -type ResourceError struct { - KustomizationPath string - ResourceFilepath string - ErrorMsg string -} - -func (e ResourceError) Error() string { - return fmt.Sprintf("Kustomization file [%s] encounters a resource error for [%s]: %s\n", e.KustomizationPath, e.ResourceFilepath, e.ErrorMsg) -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/secreterror.go b/vendor/sigs.k8s.io/kustomize/pkg/internal/error/secreterror.go deleted file mode 100644 index cd72759ce6..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/secreterror.go +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package error - -import "fmt" - -// SecretError represents error with a secret. -type SecretError struct { - KustomizationPath string - // ErrorMsg is an error message - ErrorMsg string -} - -func (e SecretError) Error() string { - return fmt.Sprintf("Kustomization file [%s] encounters a secret error: %s\n", e.KustomizationPath, e.ErrorMsg) -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/yamlformaterror.go b/vendor/sigs.k8s.io/kustomize/pkg/internal/error/yamlformaterror.go deleted file mode 100644 index 4c27d30d71..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/internal/error/yamlformaterror.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package error has contextual error types. -package error - -import ( - "fmt" - "strings" -) - -// YamlFormatError represents error with yaml file name where json/yaml format error happens. -type YamlFormatError struct { - Path string - ErrorMsg string -} - -func (e YamlFormatError) Error() string { - return fmt.Sprintf("YAML file [%s] encounters a format error.\n%s\n", e.Path, e.ErrorMsg) -} - -// Handler handles YamlFormatError -func Handler(e error, path string) error { - if isYAMLSyntaxError(e) { - return YamlFormatError{ - Path: path, - ErrorMsg: e.Error(), - } - } - return e -} - -func isYAMLSyntaxError(e error) bool { - return strings.Contains(e.Error(), "error converting YAML to JSON") || strings.Contains(e.Error(), "error unmarshaling JSON") -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/loader/fileloader.go b/vendor/sigs.k8s.io/kustomize/pkg/loader/fileloader.go deleted file mode 100644 index 4fa5dca67c..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/loader/fileloader.go +++ /dev/null @@ -1,312 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package loader - -import ( - "fmt" - "log" - "path/filepath" - "strings" - - "sigs.k8s.io/kustomize/pkg/fs" - "sigs.k8s.io/kustomize/pkg/git" - "sigs.k8s.io/kustomize/pkg/ifc" -) - -// fileLoader is a kustomization's interface to files. -// -// The directory in which a kustomization file sits -// is referred to below as the kustomization's root. -// -// An instance of fileLoader has an immutable root, -// and offers a `New` method returning a new loader -// with a new root. -// -// A kustomization file refers to two kinds of files: -// -// * supplemental data paths -// -// `Load` is used to visit these paths. -// -// They must terminate in or below the root. -// -// They hold things like resources, patches, -// data for ConfigMaps, etc. -// -// * bases; other kustomizations -// -// `New` is used to load bases. -// -// A base can be either a remote git repo URL, or -// a directory specified relative to the current -// root. In the former case, the repo is locally -// cloned, and the new loader is rooted on a path -// in that clone. -// -// As loaders create new loaders, a root history -// is established, and used to disallow: -// -// - A base that is a repository that, in turn, -// specifies a base repository seen previously -// in the loading stack (a cycle). -// -// - An overlay depending on a base positioned at -// or above it. I.e. '../foo' is OK, but '.', -// '..', '../..', etc. are disallowed. Allowing -// such a base has no advantages and encourages -// cycles, particularly if some future change -// were to introduce globbing to file -// specifications in the kustomization file. -// -// These restrictions assure that kustomizations -// are self-contained and relocatable, and impose -// some safety when relying on remote kustomizations, -// e.g. a ConfigMap generator specified to read -// from /etc/passwd will fail. -// -type fileLoader struct { - // Loader that spawned this loader. - // Used to avoid cycles. - referrer *fileLoader - // An absolute, cleaned path to a directory. - // The Load function reads from this directory, - // or directories below it. - root fs.ConfirmedDir - // If this is non-nil, the files were - // obtained from the given repository. - repoSpec *git.RepoSpec - // File system utilities. - fSys fs.FileSystem - // Used to clone repositories. - cloner git.Cloner - // Used to clean up, as needed. - cleaner func() error -} - -// NewFileLoaderAtCwd returns a loader that loads from ".". -func NewFileLoaderAtCwd(fSys fs.FileSystem) *fileLoader { - return newLoaderOrDie(fSys, ".") -} - -// NewFileLoaderAtRoot returns a loader that loads from "/". -func NewFileLoaderAtRoot(fSys fs.FileSystem) *fileLoader { - return newLoaderOrDie(fSys, string(filepath.Separator)) -} - -// Root returns the absolute path that is prepended to any -// relative paths used in Load. -func (l *fileLoader) Root() string { - return l.root.String() -} - -func newLoaderOrDie(fSys fs.FileSystem, path string) *fileLoader { - root, err := demandDirectoryRoot(fSys, path) - if err != nil { - log.Fatalf("unable to make loader at '%s'; %v", path, err) - } - return newLoaderAtConfirmedDir( - root, fSys, nil, git.ClonerUsingGitExec) -} - -// newLoaderAtConfirmedDir returns a new fileLoader with given root. -func newLoaderAtConfirmedDir( - root fs.ConfirmedDir, fSys fs.FileSystem, - referrer *fileLoader, cloner git.Cloner) *fileLoader { - return &fileLoader{ - root: root, - referrer: referrer, - fSys: fSys, - cloner: cloner, - cleaner: func() error { return nil }, - } -} - -// Assure that the given path is in fact a directory. -func demandDirectoryRoot( - fSys fs.FileSystem, path string) (fs.ConfirmedDir, error) { - if path == "" { - return "", fmt.Errorf( - "loader root cannot be empty") - } - d, f, err := fSys.CleanedAbs(path) - if err != nil { - return "", fmt.Errorf( - "absolute path error in '%s' : %v", path, err) - } - if f != "" { - return "", fmt.Errorf( - "got file '%s', but '%s' must be a directory to be a root", - f, path) - } - return d, nil -} - -// New returns a new Loader, rooted relative to current loader, -// or rooted in a temp directory holding a git repo clone. -func (l *fileLoader) New(path string) (ifc.Loader, error) { - if path == "" { - return nil, fmt.Errorf("new root cannot be empty") - } - repoSpec, err := git.NewRepoSpecFromUrl(path) - if err == nil { - // Treat this as git repo clone request. - if err := l.errIfRepoCycle(repoSpec); err != nil { - return nil, err - } - return newLoaderAtGitClone(repoSpec, l.fSys, l.referrer, l.cloner) - } - if filepath.IsAbs(path) { - return nil, fmt.Errorf("new root '%s' cannot be absolute", path) - } - root, err := demandDirectoryRoot(l.fSys, l.root.Join(path)) - if err != nil { - return nil, err - } - if err := l.errIfGitContainmentViolation(root); err != nil { - return nil, err - } - if err := l.errIfArgEqualOrHigher(root); err != nil { - return nil, err - } - return newLoaderAtConfirmedDir( - root, l.fSys, l, l.cloner), nil -} - -// newLoaderAtGitClone returns a new Loader pinned to a temporary -// directory holding a cloned git repo. -func newLoaderAtGitClone( - repoSpec *git.RepoSpec, fSys fs.FileSystem, - referrer *fileLoader, cloner git.Cloner) (ifc.Loader, error) { - err := cloner(repoSpec) - if err != nil { - return nil, err - } - root, f, err := fSys.CleanedAbs(repoSpec.AbsPath()) - if err != nil { - return nil, err - } - // We don't know that the path requested in repoSpec - // is a directory until we actually clone it and look - // inside. That just happened, hence the error check - // is here. - if f != "" { - return nil, fmt.Errorf( - "'%s' refers to file '%s'; expecting directory", - repoSpec.AbsPath(), f) - } - return &fileLoader{ - root: root, - referrer: referrer, - repoSpec: repoSpec, - fSys: fSys, - cloner: cloner, - cleaner: repoSpec.Cleaner(fSys), - }, nil -} - -func (l *fileLoader) errIfGitContainmentViolation( - base fs.ConfirmedDir) error { - containingRepo := l.containingRepo() - if containingRepo == nil { - return nil - } - if !base.HasPrefix(containingRepo.CloneDir()) { - return fmt.Errorf( - "security; bases in kustomizations found in "+ - "cloned git repos must be within the repo, "+ - "but base '%s' is outside '%s'", - base, containingRepo.CloneDir()) - } - return nil -} - -// Looks back through referrers for a git repo, returning nil -// if none found. -func (l *fileLoader) containingRepo() *git.RepoSpec { - if l.repoSpec != nil { - return l.repoSpec - } - if l.referrer == nil { - return nil - } - return l.referrer.containingRepo() -} - -// errIfArgEqualOrHigher tests whether the argument, -// is equal to or above the root of any ancestor. -func (l *fileLoader) errIfArgEqualOrHigher( - candidateRoot fs.ConfirmedDir) error { - if l.root.HasPrefix(candidateRoot) { - return fmt.Errorf( - "cycle detected: candidate root '%s' contains visited root '%s'", - candidateRoot, l.root) - } - if l.referrer == nil { - return nil - } - return l.referrer.errIfArgEqualOrHigher(candidateRoot) -} - -// TODO(monopole): Distinguish branches? -// I.e. Allow a distinction between git URI with -// path foo and tag bar and a git URI with the same -// path but a different tag? -func (l *fileLoader) errIfRepoCycle(newRepoSpec *git.RepoSpec) error { - // TODO(monopole): Use parsed data instead of Raw(). - if l.repoSpec != nil && - strings.HasPrefix(l.repoSpec.Raw(), newRepoSpec.Raw()) { - return fmt.Errorf( - "cycle detected: URI '%s' referenced by previous URI '%s'", - newRepoSpec.Raw(), l.repoSpec.Raw()) - } - if l.referrer == nil { - return nil - } - return l.referrer.errIfRepoCycle(newRepoSpec) -} - -// Load returns content of file at the given relative path, -// else an error. The path must refer to a file in or -// below the current root. -func (l *fileLoader) Load(path string) ([]byte, error) { - if filepath.IsAbs(path) { - return nil, l.loadOutOfBounds(path) - } - d, f, err := l.fSys.CleanedAbs(l.root.Join(path)) - if err != nil { - return nil, err - } - if f == "" { - return nil, fmt.Errorf( - "'%s' must be a file (got d='%s')", path, d) - } - if !d.HasPrefix(l.root) { - return nil, l.loadOutOfBounds(path) - } - return l.fSys.ReadFile(d.Join(f)) -} - -func (l *fileLoader) loadOutOfBounds(path string) error { - return fmt.Errorf( - "security; file '%s' is not in or below '%s'", - path, l.root) -} - -// Cleanup runs the cleaner. -func (l *fileLoader) Cleanup() error { - return l.cleaner() -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/loader/loader.go b/vendor/sigs.k8s.io/kustomize/pkg/loader/loader.go deleted file mode 100644 index 53de6553a7..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/loader/loader.go +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package loader has a data loading interface and various implementations. -package loader - -import ( - "sigs.k8s.io/kustomize/pkg/fs" - "sigs.k8s.io/kustomize/pkg/git" - "sigs.k8s.io/kustomize/pkg/ifc" -) - -// NewLoader returns a Loader. -func NewLoader(path string, fSys fs.FileSystem) (ifc.Loader, error) { - repoSpec, err := git.NewRepoSpecFromUrl(path) - if err == nil { - return newLoaderAtGitClone( - repoSpec, fSys, nil, git.ClonerUsingGitExec) - } - root, err := demandDirectoryRoot(fSys, path) - if err != nil { - return nil, err - } - return newLoaderAtConfirmedDir( - root, fSys, nil, git.ClonerUsingGitExec), nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/patch/json6902.go b/vendor/sigs.k8s.io/kustomize/pkg/patch/json6902.go deleted file mode 100644 index 9ddb1faa10..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/patch/json6902.go +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package patch - -import "sigs.k8s.io/kustomize/pkg/gvk" - -// Json6902 represents a json patch for an object -// with format documented https://tools.ietf.org/html/rfc6902. -type Json6902 struct { - // Target refers to a Kubernetes object that the json patch will be - // applied to. It must refer to a Kubernetes resource under the - // purview of this kustomization. Target should use the - // raw name of the object (the name specified in its YAML, - // before addition of a namePrefix and a nameSuffix). - Target *Target `json:"target" yaml:"target"` - - // relative file path for a json patch file inside a kustomization - Path string `json:"path,omitempty" yaml:"path,omitempty"` -} - -// Target represents the kubernetes object that the patch is applied to -type Target struct { - gvk.Gvk `json:",inline,omitempty" yaml:",inline,omitempty"` - Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` - Name string `json:"name" yaml:"name"` -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/patch/strategicmerge.go b/vendor/sigs.k8s.io/kustomize/pkg/patch/strategicmerge.go deleted file mode 100644 index 596cc346de..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/patch/strategicmerge.go +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package patch - -// StrategicMerge represents a relative path to a -// stategic merge patch with the format -// https://github.com/kubernetes/community/blob/master/contributors/devel/strategic-merge-patch.md -type StrategicMerge string - -// Append appends a slice of patch paths to a StrategicMerge slice -func Append(patches []StrategicMerge, paths ...string) []StrategicMerge { - for _, p := range paths { - patches = append(patches, StrategicMerge(p)) - } - return patches -} - -// Exist determines if a patch path exists in a slice of StrategicMerge -func Exist(patches []StrategicMerge, path string) bool { - for _, p := range patches { - if p == StrategicMerge(path) { - return true - } - } - return false -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/patch/transformer/factory.go b/vendor/sigs.k8s.io/kustomize/pkg/patch/transformer/factory.go deleted file mode 100644 index b373dfb721..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/patch/transformer/factory.go +++ /dev/null @@ -1,83 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package transformer - -import ( - "fmt" - "sigs.k8s.io/kustomize/pkg/ifc" - "sigs.k8s.io/kustomize/pkg/resid" - - "sigs.k8s.io/kustomize/pkg/gvk" - "sigs.k8s.io/kustomize/pkg/patch" - "sigs.k8s.io/kustomize/pkg/transformers" -) - -// PatchJson6902Factory makes Json6902 transformers -type PatchJson6902Factory struct { - loader ifc.Loader -} - -// NewPatchJson6902Factory returns a new PatchJson6902Factory. -func NewPatchJson6902Factory(l ifc.Loader) PatchJson6902Factory { - return PatchJson6902Factory{loader: l} -} - -// MakePatchJson6902Transformer returns a transformer for applying Json6902 patch -func (f PatchJson6902Factory) MakePatchJson6902Transformer(patches []patch.Json6902) (transformers.Transformer, error) { - var ts []transformers.Transformer - for _, p := range patches { - t, err := f.makeOnePatchJson6902Transformer(p) - if err != nil { - return nil, err - } - if t != nil { - ts = append(ts, t) - } - } - return transformers.NewMultiTransformerWithConflictCheck(ts), nil -} - -func (f PatchJson6902Factory) makeOnePatchJson6902Transformer(p patch.Json6902) (transformers.Transformer, error) { - if p.Target == nil { - return nil, fmt.Errorf("must specify the target field in patchesJson6902") - } - if p.Path == "" { - return nil, fmt.Errorf("must specify the path for a json patch file") - } - - targetId := resid.NewResIdWithPrefixNamespace( - gvk.Gvk{ - Group: p.Target.Group, - Version: p.Target.Version, - Kind: p.Target.Kind, - }, - p.Target.Name, - "", - p.Target.Namespace, - ) - - rawOp, err := f.loader.Load(p.Path) - if err != nil { - return nil, err - } - - return newPatchJson6902JSONTransformer(targetId, rawOp) -} - -func isJsonFormat(data []byte) bool { - return data[0] == '[' -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/patch/transformer/patchjson6902json.go b/vendor/sigs.k8s.io/kustomize/pkg/patch/transformer/patchjson6902json.go deleted file mode 100644 index 1f09939d1d..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/patch/transformer/patchjson6902json.go +++ /dev/null @@ -1,108 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package transformer - -import ( - "fmt" - - "github.com/evanphx/json-patch" - "github.com/ghodss/yaml" - "github.com/pkg/errors" - "sigs.k8s.io/kustomize/pkg/resid" - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/resource" - "sigs.k8s.io/kustomize/pkg/transformers" -) - -// patchJson6902JSONTransformer applies patches. -type patchJson6902JSONTransformer struct { - target resid.ResId - patch jsonpatch.Patch - rawOp []byte -} - -var _ transformers.Transformer = &patchJson6902JSONTransformer{} - -// newPatchJson6902JSONTransformer constructs a PatchJson6902 transformer. -func newPatchJson6902JSONTransformer( - id resid.ResId, rawOp []byte) (transformers.Transformer, error) { - op := rawOp - var err error - if !isJsonFormat(op) { - // if it isn't JSON, try to parse it as YAML - op, err = yaml.YAMLToJSON(rawOp) - if err != nil { - return nil, err - } - } - decodedPatch, err := jsonpatch.DecodePatch(op) - if err != nil { - return nil, err - } - if len(decodedPatch) == 0 { - return transformers.NewNoOpTransformer(), nil - } - return &patchJson6902JSONTransformer{target: id, patch: decodedPatch, rawOp: rawOp}, nil -} - -// Transform apply the json patches on top of the base resources. -func (t *patchJson6902JSONTransformer) Transform(m resmap.ResMap) error { - obj, err := t.findTargetObj(m) - if err != nil { - return err - } - rawObj, err := obj.MarshalJSON() - if err != nil { - return err - } - modifiedObj, err := t.patch.Apply(rawObj) - if err != nil { - return errors.Wrapf(err, "failed to apply json patch '%s'", string(t.rawOp)) - } - err = obj.UnmarshalJSON(modifiedObj) - if err != nil { - return err - } - return nil -} - -func (t *patchJson6902JSONTransformer) findTargetObj( - m resmap.ResMap) (*resource.Resource, error) { - var matched []resid.ResId - // TODO(monopole): namespace bug in json patch? - // Since introduction in PR #300 - // (see pkg/patch/transformer/util.go), - // this code has treated an empty namespace like a wildcard - // rather than like an additional restriction to match - // only the empty namespace. No test coverage to confirm. - // Not sure if desired, keeping it for now. - if t.target.Namespace() != "" { - matched = m.GetMatchingIds(t.target.NsGvknEquals) - } else { - matched = m.GetMatchingIds(t.target.GvknEquals) - } - if len(matched) == 0 { - return nil, fmt.Errorf( - "couldn't find target %v for json patch", t.target) - } - if len(matched) > 1 { - return nil, fmt.Errorf( - "found multiple targets %v matching %v for json patch", - matched, t.target) - } - return m[matched[0]], nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/resid/resid.go b/vendor/sigs.k8s.io/kustomize/pkg/resid/resid.go deleted file mode 100644 index dbf9a3e929..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/resid/resid.go +++ /dev/null @@ -1,207 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package resid - -import ( - "strings" - - "sigs.k8s.io/kustomize/pkg/gvk" -) - -// ResId is an immutable identifier of a k8s resource object. -type ResId struct { - // Gvk of the resource. - gvKind gvk.Gvk - - // name of the resource before transformation. - name string - - // namePrefix of the resource. - // An untransformed resource has no prefix. - // A fully transformed resource has an arbitrary - // number of prefixes concatenated together. - prefix string - - // nameSuffix of the resource. - // An untransformed resource has no suffix. - // A fully transformed resource has an arbitrary - // number of suffixes concatenated together. - suffix string - - // Namespace the resource belongs to. - // An untransformed resource has no namespace. - // A fully transformed resource has the namespace - // from the top most overlay. - namespace string -} - -// NewResIdWithPrefixSuffixNamespace creates new resource identifier with a prefix, suffix and a namespace -func NewResIdWithPrefixSuffixNamespace(k gvk.Gvk, n, p, s, ns string) ResId { - return ResId{gvKind: k, name: n, prefix: p, suffix: s, namespace: ns} -} - -// NewResIdWithPrefixNamespace creates new resource identifier with a prefix and a namespace -func NewResIdWithPrefixNamespace(k gvk.Gvk, n, p, ns string) ResId { - return ResId{gvKind: k, name: n, prefix: p, namespace: ns} -} - -// NewResIdWithSuffixNamespace creates new resource identifier with a suffix and a namespace -func NewResIdWithSuffixNamespace(k gvk.Gvk, n, s, ns string) ResId { - return ResId{gvKind: k, name: n, suffix: s, namespace: ns} -} - -// NewResIdWithPrefixSuffix creates new resource identifier with a prefix and suffix -func NewResIdWithPrefixSuffix(k gvk.Gvk, n, p, s string) ResId { - return ResId{gvKind: k, name: n, prefix: p, suffix: s} -} - -// NewResId creates new resource identifier -func NewResId(k gvk.Gvk, n string) ResId { - return ResId{gvKind: k, name: n} -} - -// NewResIdKindOnly creates new resource identifier -func NewResIdKindOnly(k string, n string) ResId { - return ResId{gvKind: gvk.FromKind(k), name: n} -} - -const ( - noNamespace = "~X" - noPrefix = "~P" - noName = "~N" - noSuffix = "~S" - separator = "|" -) - -// String of ResId based on GVK, name and prefix -func (n ResId) String() string { - ns := n.namespace - if ns == "" { - ns = noNamespace - } - p := n.prefix - if p == "" { - p = noPrefix - } - nm := n.name - if nm == "" { - nm = noName - } - s := n.suffix - if s == "" { - s = noSuffix - } - - return strings.Join( - []string{n.gvKind.String(), ns, p, nm, s}, separator) -} - -// GvknString of ResId based on GVK and name -func (n ResId) GvknString() string { - return n.gvKind.String() + separator + n.name -} - -// GvknEquals returns true if the other id matches -// Group/Version/Kind/name. -func (n ResId) GvknEquals(id ResId) bool { - return n.name == id.name && n.gvKind.Equals(id.gvKind) -} - -// NsGvknEquals returns true if the other id matches -// namespace/Group/Version/Kind/name. -func (n ResId) NsGvknEquals(id ResId) bool { - return n.namespace == id.namespace && n.GvknEquals(id) -} - -// Gvk returns Group/Version/Kind of the resource. -func (n ResId) Gvk() gvk.Gvk { - return n.gvKind -} - -// Name returns resource name. -func (n ResId) Name() string { - return n.name -} - -// Namespace returns resource namespace. -func (n ResId) Namespace() string { - return n.namespace -} - -// CopyWithNewPrefixSuffix make a new copy from current ResId -// and append a new prefix and suffix -func (n ResId) CopyWithNewPrefixSuffix(p, s string) ResId { - result := n - if p != "" { - result.prefix = n.concatPrefix(p) - } - if s != "" { - result.suffix = n.concatSuffix(s) - } - return result -} - -// CopyWithNewNamespace make a new copy from current ResId and set a new namespace -func (n ResId) CopyWithNewNamespace(ns string) ResId { - result := n - result.namespace = ns - return result -} - -// HasSameLeftmostPrefix check if two ResIds have the same -// left most prefix. -func (n ResId) HasSameLeftmostPrefix(id ResId) bool { - prefixes1 := n.prefixList() - prefixes2 := id.prefixList() - return prefixes1[0] == prefixes2[0] -} - -// HasSameRightmostSuffix check if two ResIds have the same -// right most suffix. -func (n ResId) HasSameRightmostSuffix(id ResId) bool { - suffixes1 := n.suffixList() - suffixes2 := id.suffixList() - return suffixes1[len(suffixes1)-1] == suffixes2[len(suffixes2)-1] -} - -func (n ResId) concatPrefix(p string) string { - if p == "" { - return n.prefix - } - if n.prefix == "" { - return p - } - return p + ":" + n.prefix -} - -func (n ResId) concatSuffix(s string) string { - if s == "" { - return n.suffix - } - if n.suffix == "" { - return s - } - return n.suffix + ":" + s -} - -func (n ResId) prefixList() []string { - return strings.Split(n.prefix, ":") -} - -func (n ResId) suffixList() []string { - return strings.Split(n.suffix, ":") -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/resmap/factory.go b/vendor/sigs.k8s.io/kustomize/pkg/resmap/factory.go deleted file mode 100644 index 923cde2325..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/resmap/factory.go +++ /dev/null @@ -1,123 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package resmap - -import ( - "fmt" - - "github.com/pkg/errors" - "sigs.k8s.io/kustomize/pkg/ifc" - internal "sigs.k8s.io/kustomize/pkg/internal/error" - "sigs.k8s.io/kustomize/pkg/resource" - "sigs.k8s.io/kustomize/pkg/types" -) - -// Factory makes instances of ResMap. -type Factory struct { - resF *resource.Factory -} - -// NewFactory returns a new resmap.Factory. -func NewFactory(rf *resource.Factory) *Factory { - return &Factory{resF: rf} -} - -// RF returns a resource.Factory. -func (rmF *Factory) RF() *resource.Factory { - return rmF.resF -} - -// FromFiles returns a ResMap given a resource path slice. -func (rmF *Factory) FromFiles( - loader ifc.Loader, paths []string) (ResMap, error) { - var result []ResMap - for _, path := range paths { - content, err := loader.Load(path) - if err != nil { - return nil, errors.Wrap(err, "Load from path "+path+" failed") - } - res, err := rmF.NewResMapFromBytes(content) - if err != nil { - return nil, internal.Handler(err, path) - } - result = append(result, res) - } - return MergeWithErrorOnIdCollision(result...) -} - -// newResMapFromBytes decodes a list of objects in byte array format. -func (rmF *Factory) NewResMapFromBytes(b []byte) (ResMap, error) { - resources, err := rmF.resF.SliceFromBytes(b) - if err != nil { - return nil, err - } - - result := ResMap{} - for _, res := range resources { - id := res.Id() - if _, found := result[id]; found { - return result, fmt.Errorf("GroupVersionKindName: %#v already exists b the map", id) - } - result[id] = res - } - return result, nil -} - -// NewResMapFromConfigMapArgs returns a Resource slice given -// a configmap metadata slice from kustomization file. -func (rmF *Factory) NewResMapFromConfigMapArgs(argList []types.ConfigMapArgs, options *types.GeneratorOptions) (ResMap, error) { - var resources []*resource.Resource - for _, args := range argList { - res, err := rmF.resF.MakeConfigMap(&args, options) - if err != nil { - return nil, errors.Wrap(err, "NewResMapFromConfigMapArgs") - } - resources = append(resources, res) - } - return newResMapFromResourceSlice(resources) -} - -// NewResMapFromSecretArgs takes a SecretArgs slice, generates -// secrets from each entry, and accumulates them in a ResMap. -func (rmF *Factory) NewResMapFromSecretArgs(argsList []types.SecretArgs, options *types.GeneratorOptions) (ResMap, error) { - var resources []*resource.Resource - for _, args := range argsList { - res, err := rmF.resF.MakeSecret(&args, options) - if err != nil { - return nil, errors.Wrap(err, "NewResMapFromSecretArgs") - } - resources = append(resources, res) - } - return newResMapFromResourceSlice(resources) -} - -// Set sets the loader for the underlying factory -func (rmF *Factory) Set(ldr ifc.Loader) { - rmF.resF.Set(ldr) -} - -func newResMapFromResourceSlice(resources []*resource.Resource) (ResMap, error) { - result := ResMap{} - for _, res := range resources { - id := res.Id() - if _, found := result[id]; found { - return nil, fmt.Errorf("duplicated %#v is not allowed", id) - } - result[id] = res - } - return result, nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/resmap/resmap.go b/vendor/sigs.k8s.io/kustomize/pkg/resmap/resmap.go deleted file mode 100644 index ca1e723980..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/resmap/resmap.go +++ /dev/null @@ -1,200 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package resmap implements a map from ResId to Resource that tracks all resources in a kustomization. -package resmap - -import ( - "bytes" - "fmt" - "reflect" - "sort" - - "github.com/ghodss/yaml" - "sigs.k8s.io/kustomize/pkg/resid" - "sigs.k8s.io/kustomize/pkg/resource" - "sigs.k8s.io/kustomize/pkg/types" -) - -// ResMap is a map from ResId to Resource. -type ResMap map[resid.ResId]*resource.Resource - -type IdMatcher func(resid.ResId) bool - -// GetMatchingIds returns a slice of ResId keys from the map -// that all satisfy the given matcher function. -func (m ResMap) GetMatchingIds(matches IdMatcher) []resid.ResId { - var result []resid.ResId - for id := range m { - if matches(id) { - result = append(result, id) - } - } - return result -} - -// EncodeAsYaml encodes a ResMap to YAML; encoded objects separated by `---`. -func (m ResMap) EncodeAsYaml() ([]byte, error) { - var ids []resid.ResId - for id := range m { - ids = append(ids, id) - } - sort.Sort(IdSlice(ids)) - - firstObj := true - var b []byte - buf := bytes.NewBuffer(b) - for _, id := range ids { - obj := m[id] - out, err := yaml.Marshal(obj.Map()) - if err != nil { - return nil, err - } - if firstObj { - firstObj = false - } else { - _, err = buf.WriteString("---\n") - if err != nil { - return nil, err - } - } - _, err = buf.Write(out) - if err != nil { - return nil, err - } - } - return buf.Bytes(), nil -} - -// ErrorIfNotEqual returns error if maps are not equal. -func (m ResMap) ErrorIfNotEqual(m2 ResMap) error { - if len(m) != len(m2) { - var keySet1 []resid.ResId - var keySet2 []resid.ResId - for id := range m { - keySet1 = append(keySet1, id) - } - for id := range m2 { - keySet2 = append(keySet2, id) - } - return fmt.Errorf("maps has different number of entries: %#v doesn't equals %#v", keySet1, keySet2) - } - for id, obj1 := range m { - obj2, found := m2[id] - if !found { - return fmt.Errorf("%#v doesn't exist in %#v", id, m2) - } - if !reflect.DeepEqual(obj1, obj2) { - return fmt.Errorf("%#v doesn't deep equal %#v", obj1, obj2) - } - } - return nil -} - -// DeepCopy clone the resmap into a new one -func (m ResMap) DeepCopy(rf *resource.Factory) ResMap { - mcopy := make(ResMap) - for id, obj := range m { - mcopy[id] = obj.DeepCopy() - } - return mcopy -} - -// FilterBy returns a subset ResMap containing ResIds with -// the same namespace and leftmost name prefix and rightmost name -// as the inputId. If inputId is a cluster level resource, this -// returns the original ResMap. -func (m ResMap) FilterBy(inputId resid.ResId) ResMap { - if inputId.Gvk().IsClusterKind() { - return m - } - result := ResMap{} - for id, res := range m { - if id.Gvk().IsClusterKind() || id.Namespace() == inputId.Namespace() && - id.HasSameLeftmostPrefix(inputId) && - id.HasSameRightmostSuffix(inputId) { - result[id] = res - } - } - return result -} - -// MergeWithErrorOnIdCollision combines multiple ResMap instances, failing on -// key collision and skipping nil maps. -// If all of the maps are nil, an empty ResMap is returned. -func MergeWithErrorOnIdCollision(maps ...ResMap) (ResMap, error) { - result := ResMap{} - for _, m := range maps { - if m == nil { - continue - } - for id, res := range m { - if _, found := result[id]; found { - return nil, fmt.Errorf("id '%q' already used", id) - } - result[id] = res - } - } - return result, nil -} - -// MergeWithOverride combines multiple ResMap instances, allowing and sometimes -// demanding certain collisions and skipping nil maps. -// A collision would be demanded, say, when a generated ConfigMap has the -// "replace" option in its generation instructions, meaning it is supposed -// to replace something from the raw resources list. -// If all of the maps are nil, an empty ResMap is returned. -// When looping over the instances to combine them, if a resource id for -// resource X is found to be already in the combined map, then the behavior -// field for X must be BehaviorMerge or BehaviorReplace. If X is not in the -// map, then it's behavior cannot be merge or replace. -func MergeWithOverride(maps ...ResMap) (ResMap, error) { - result := maps[0] - if result == nil { - result = ResMap{} - } - for _, m := range maps[1:] { - if m == nil { - continue - } - for id, r := range m { - matchedId := result.GetMatchingIds(id.GvknEquals) - if len(matchedId) == 1 { - id = matchedId[0] - switch r.Behavior() { - case types.BehaviorReplace: - r.Replace(result[id]) - result[id] = r - case types.BehaviorMerge: - r.Merge(result[id]) - result[id] = r - default: - return nil, fmt.Errorf("id %#v exists; must merge or replace", id) - } - } else if len(matchedId) == 0 { - switch r.Behavior() { - case types.BehaviorMerge, types.BehaviorReplace: - return nil, fmt.Errorf("id %#v does not exist; cannot merge or replace", id) - default: - result[id] = r - } - } else { - return nil, fmt.Errorf("merge conflict, found multiple objects %v the Resmap %v can merge into", matchedId, id) - } - } - } - return result, nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/resource/factory.go b/vendor/sigs.k8s.io/kustomize/pkg/resource/factory.go deleted file mode 100644 index 148323dd6b..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/resource/factory.go +++ /dev/null @@ -1,148 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package resource - -import ( - "encoding/json" - "fmt" - "log" - "strings" - - "sigs.k8s.io/kustomize/pkg/ifc" - internal "sigs.k8s.io/kustomize/pkg/internal/error" - "sigs.k8s.io/kustomize/pkg/patch" - "sigs.k8s.io/kustomize/pkg/types" -) - -// Factory makes instances of Resource. -type Factory struct { - kf ifc.KunstructuredFactory -} - -// NewFactory makes an instance of Factory. -func NewFactory(kf ifc.KunstructuredFactory) *Factory { - return &Factory{kf: kf} -} - -// FromMap returns a new instance of Resource. -func (rf *Factory) FromMap(m map[string]interface{}) *Resource { - return &Resource{ - Kunstructured: rf.kf.FromMap(m), - options: types.NewGenArgs(nil, nil), - } -} - -// FromMapAndOption returns a new instance of Resource with given options. -func (rf *Factory) FromMapAndOption(m map[string]interface{}, args *types.GeneratorArgs, option *types.GeneratorOptions) *Resource { - return &Resource{ - Kunstructured: rf.kf.FromMap(m), - options: types.NewGenArgs(args, option), - } -} - -// FromKunstructured returns a new instance of Resource. -func (rf *Factory) FromKunstructured( - u ifc.Kunstructured) *Resource { - if u == nil { - log.Fatal("unstruct ifc must not be null") - } - return &Resource{ - Kunstructured: u, - options: types.NewGenArgs(nil, nil), - } -} - -// SliceFromPatches returns a slice of resources given a patch path -// slice from a kustomization file. -func (rf *Factory) SliceFromPatches( - ldr ifc.Loader, paths []patch.StrategicMerge) ([]*Resource, error) { - var result []*Resource - for _, path := range paths { - content, err := ldr.Load(string(path)) - if err != nil { - return nil, err - } - res, err := rf.SliceFromBytes(content) - if err != nil { - return nil, internal.Handler(err, string(path)) - } - result = append(result, res...) - } - return result, nil -} - -// SliceFromBytes unmarshalls bytes into a Resource slice. -func (rf *Factory) SliceFromBytes(in []byte) ([]*Resource, error) { - kunStructs, err := rf.kf.SliceFromBytes(in) - if err != nil { - return nil, err - } - var result []*Resource - for len(kunStructs) > 0 { - u := kunStructs[0] - kunStructs = kunStructs[1:] - if strings.HasSuffix(u.GetKind(), "List") { - items := u.Map()["items"] - itemsSlice, ok := items.([]interface{}) - if !ok { - if items == nil { - // an empty list - continue - } - return nil, fmt.Errorf("items in List is type %T, expected array", items) - } - for _, item := range itemsSlice { - itemJSON, err := json.Marshal(item) - if err != nil { - return nil, err - } - innerU, err := rf.kf.SliceFromBytes(itemJSON) - if err != nil { - return nil, err - } - // append innerU to kunStructs so nested Lists can be handled - kunStructs = append(kunStructs, innerU...) - } - } else { - result = append(result, rf.FromKunstructured(u)) - } - } - return result, nil -} - -// Set sets the loader for the underlying factory -func (rf *Factory) Set(ldr ifc.Loader) { - rf.kf.Set(ldr) -} - -// MakeConfigMap makes an instance of Resource for ConfigMap -func (rf *Factory) MakeConfigMap(args *types.ConfigMapArgs, options *types.GeneratorOptions) (*Resource, error) { - u, err := rf.kf.MakeConfigMap(args, options) - if err != nil { - return nil, err - } - return &Resource{Kunstructured: u, options: types.NewGenArgs(&types.GeneratorArgs{Behavior: args.Behavior}, options)}, nil -} - -// MakeSecret makes an instance of Resource for Secret -func (rf *Factory) MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (*Resource, error) { - u, err := rf.kf.MakeSecret(args, options) - if err != nil { - return nil, err - } - return &Resource{Kunstructured: u, options: types.NewGenArgs(&types.GeneratorArgs{Behavior: args.Behavior}, options)}, nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/resource/resource.go b/vendor/sigs.k8s.io/kustomize/pkg/resource/resource.go deleted file mode 100644 index 1e0e3764b8..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/resource/resource.go +++ /dev/null @@ -1,107 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package resource implements representations of k8s API resources as "unstructured" objects. -package resource - -import ( - "strings" - - "sigs.k8s.io/kustomize/pkg/ifc" - "sigs.k8s.io/kustomize/pkg/resid" - "sigs.k8s.io/kustomize/pkg/types" -) - -// Resource is map representation of a Kubernetes API resource object -// paired with a GenerationBehavior. -type Resource struct { - ifc.Kunstructured - options *types.GenArgs -} - -// String returns resource as JSON. -func (r *Resource) String() string { - bs, err := r.MarshalJSON() - if err != nil { - return "<" + err.Error() + ">" - } - return strings.TrimSpace(string(bs)) + r.options.String() -} - -// DeepCopy returns a new copy of resource -func (r *Resource) DeepCopy() *Resource { - return &Resource{ - Kunstructured: r.Kunstructured.Copy(), - options: r.options, - } -} - -// Behavior returns the behavior for the resource. -func (r *Resource) Behavior() types.GenerationBehavior { - return r.options.Behavior() -} - -// NeedAppendHash checks if the resource need a hash suffix -func (r *Resource) NeedHashSuffix() bool { - return r.options != nil && r.options.NeedsHashSuffix() -} - -// Id returns the ResId for the resource. -func (r *Resource) Id() resid.ResId { - namespace, _ := r.GetFieldValue("metadata.namespace") - return resid.NewResIdWithPrefixNamespace(r.GetGvk(), r.GetName(), "", namespace) -} - -// Merge performs merge with other resource. -func (r *Resource) Merge(other *Resource) { - r.Replace(other) - mergeConfigmap(r.Map(), other.Map(), r.Map()) -} - -// Replace performs replace with other resource. -func (r *Resource) Replace(other *Resource) { - r.SetLabels(mergeStringMaps(other.GetLabels(), r.GetLabels())) - r.SetAnnotations( - mergeStringMaps(other.GetAnnotations(), r.GetAnnotations())) - r.SetName(other.GetName()) - r.options = other.options -} - -// TODO: Add BinaryData once we sync to new k8s.io/api -func mergeConfigmap( - mergedTo map[string]interface{}, - maps ...map[string]interface{}) { - mergedMap := map[string]interface{}{} - for _, m := range maps { - datamap, ok := m["data"].(map[string]interface{}) - if ok { - for key, value := range datamap { - mergedMap[key] = value - } - } - } - mergedTo["data"] = mergedMap -} - -func mergeStringMaps(maps ...map[string]string) map[string]string { - result := map[string]string{} - for _, m := range maps { - for key, value := range m { - result[key] = value - } - } - return result -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/target/kusttarget.go b/vendor/sigs.k8s.io/kustomize/pkg/target/kusttarget.go deleted file mode 100644 index f136b2683b..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/target/kusttarget.go +++ /dev/null @@ -1,315 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package target implements state for the set of all resources to customize. -package target - -import ( - "bytes" - "encoding/json" - "fmt" - "strings" - - "github.com/ghodss/yaml" - "github.com/pkg/errors" - "sigs.k8s.io/kustomize/pkg/constants" - "sigs.k8s.io/kustomize/pkg/ifc" - "sigs.k8s.io/kustomize/pkg/ifc/transformer" - interror "sigs.k8s.io/kustomize/pkg/internal/error" - patchtransformer "sigs.k8s.io/kustomize/pkg/patch/transformer" - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/resource" - "sigs.k8s.io/kustomize/pkg/transformers" - "sigs.k8s.io/kustomize/pkg/transformers/config" - "sigs.k8s.io/kustomize/pkg/types" -) - -// KustTarget encapsulates the entirety of a kustomization build. -type KustTarget struct { - kustomization *types.Kustomization - ldr ifc.Loader - rFactory *resmap.Factory - tFactory transformer.Factory -} - -// NewKustTarget returns a new instance of KustTarget primed with a Loader. -func NewKustTarget( - ldr ifc.Loader, - rFactory *resmap.Factory, - tFactory transformer.Factory) (*KustTarget, error) { - content, err := loadKustFile(ldr) - if err != nil { - return nil, err - } - content = types.DealWithDeprecatedFields(content) - var k types.Kustomization - err = unmarshal(content, &k) - if err != nil { - return nil, err - } - errs := k.EnforceFields() - if len(errs) > 0 { - return nil, fmt.Errorf("Failed to read kustomization file under %s:\n"+strings.Join(errs, "\n"), ldr.Root()) - } - return &KustTarget{ - kustomization: &k, - ldr: ldr, - rFactory: rFactory, - tFactory: tFactory, - }, nil -} - -func quoted(l []string) []string { - r := make([]string, len(l)) - for i, v := range l { - r[i] = "'" + v + "'" - } - return r -} - -func commaOr(q []string) string { - return strings.Join(q[:len(q)-1], ", ") + " or " + q[len(q)-1] -} - -func loadKustFile(ldr ifc.Loader) ([]byte, error) { - var content []byte - match := 0 - for _, kf := range constants.KustomizationFileNames { - c, err := ldr.Load(kf) - if err == nil { - match += 1 - content = c - } - } - switch match { - case 0: - return nil, fmt.Errorf( - "unable to find one of %v in directory '%s'", - commaOr(quoted(constants.KustomizationFileNames)), ldr.Root()) - case 1: - return content, nil - default: - return nil, fmt.Errorf("Found multiple kustomization files under: %s\n", ldr.Root()) - } -} - -func unmarshal(y []byte, o interface{}) error { - j, err := yaml.YAMLToJSON(y) - if err != nil { - return err - } - dec := json.NewDecoder(bytes.NewReader(j)) - dec.DisallowUnknownFields() - return dec.Decode(o) -} - -// MakeCustomizedResMap creates a ResMap per kustomization instructions. -// The Resources in the returned ResMap are fully customized. -func (kt *KustTarget) MakeCustomizedResMap() (resmap.ResMap, error) { - ra, err := kt.AccumulateTarget() - if err != nil { - return nil, err - } - err = ra.Transform(kt.tFactory.MakeHashTransformer()) - if err != nil { - return nil, err - } - // Given that names have changed (prefixs/suffixes added), - // fix all the back references to those names. - err = ra.FixBackReferences() - if err != nil { - return nil, err - } - // With all the back references fixed, it's OK to resolve Vars. - err = ra.ResolveVars() - return ra.ResMap(), err -} - -func (kt *KustTarget) shouldAddHashSuffixesToGeneratedResources() bool { - return kt.kustomization.GeneratorOptions == nil || - !kt.kustomization.GeneratorOptions.DisableNameSuffixHash -} - -// AccumulateTarget returns a new ResAccumulator, -// holding customized resources and the data/rules used -// to do so. The name back references and vars are -// not yet fixed. -func (kt *KustTarget) AccumulateTarget() ( - ra *ResAccumulator, err error) { - // TODO(monopole): Get rid of the KustomizationErrors accumulator. - // It's not consistently used, and complicates tests. - errs := &interror.KustomizationErrors{} - ra, errs = kt.accumulateBases() - resources, err := kt.rFactory.FromFiles( - kt.ldr, kt.kustomization.Resources) - if err != nil { - errs.Append(errors.Wrap(err, "rawResources failed to read Resources")) - } - if len(errs.Get()) > 0 { - return ra, errs - } - err = ra.MergeResourcesWithErrorOnIdCollision(resources) - if err != nil { - errs.Append(errors.Wrap(err, "MergeResourcesWithErrorOnIdCollision")) - } - tConfig, err := config.MakeTransformerConfig( - kt.ldr, kt.kustomization.Configurations) - if err != nil { - return nil, err - } - err = ra.MergeConfig(tConfig) - if err != nil { - errs.Append(errors.Wrap(err, "MergeConfig")) - } - err = ra.MergeVars(kt.kustomization.Vars) - if err != nil { - errs.Append(errors.Wrap(err, "MergeVars")) - } - crdTc, err := config.LoadConfigFromCRDs(kt.ldr, kt.kustomization.Crds) - if err != nil { - errs.Append(errors.Wrap(err, "LoadCRDs")) - } - err = ra.MergeConfig(crdTc) - if err != nil { - errs.Append(errors.Wrap(err, "merge CRDs")) - } - resMap, err := kt.generateConfigMapsAndSecrets(errs) - if err != nil { - errs.Append(errors.Wrap(err, "generateConfigMapsAndSecrets")) - } - err = ra.MergeResourcesWithOverride(resMap) - if err != nil { - return nil, err - } - patches, err := kt.rFactory.RF().SliceFromPatches( - kt.ldr, kt.kustomization.PatchesStrategicMerge) - if err != nil { - errs.Append(errors.Wrap(err, "SliceFromPatches")) - } - if len(errs.Get()) > 0 { - return nil, errs - } - t, err := kt.newTransformer(patches, ra.tConfig) - if err != nil { - return nil, err - } - err = ra.Transform(t) - if err != nil { - return nil, err - } - return ra, nil -} - -func (kt *KustTarget) generateConfigMapsAndSecrets( - errs *interror.KustomizationErrors) (resmap.ResMap, error) { - kt.rFactory.Set(kt.ldr) - cms, err := kt.rFactory.NewResMapFromConfigMapArgs( - kt.kustomization.ConfigMapGenerator, kt.kustomization.GeneratorOptions) - if err != nil { - errs.Append(errors.Wrap(err, "NewResMapFromConfigMapArgs")) - } - secrets, err := kt.rFactory.NewResMapFromSecretArgs( - kt.kustomization.SecretGenerator, kt.kustomization.GeneratorOptions) - if err != nil { - errs.Append(errors.Wrap(err, "NewResMapFromSecretArgs")) - } - return resmap.MergeWithErrorOnIdCollision(cms, secrets) -} - -// accumulateBases returns a new ResAccumulator -// holding customized resources and the data/rules -// used to customized them from only the _bases_ -// of this KustTarget. -func (kt *KustTarget) accumulateBases() ( - ra *ResAccumulator, errs *interror.KustomizationErrors) { - errs = &interror.KustomizationErrors{} - ra = MakeEmptyAccumulator() - - for _, path := range kt.kustomization.Bases { - ldr, err := kt.ldr.New(path) - if err != nil { - errs.Append(errors.Wrap(err, "couldn't make loader for "+path)) - continue - } - subKt, err := NewKustTarget( - ldr, kt.rFactory, kt.tFactory) - if err != nil { - errs.Append(errors.Wrap(err, "couldn't make target for "+path)) - ldr.Cleanup() - continue - } - subRa, err := subKt.AccumulateTarget() - if err != nil { - errs.Append(errors.Wrap(err, "AccumulateTarget")) - ldr.Cleanup() - continue - } - err = ra.MergeAccumulator(subRa) - if err != nil { - errs.Append(errors.Wrap(err, path)) - } - ldr.Cleanup() - } - return ra, errs -} - -// newTransformer makes a Transformer that does a collection -// of object transformations. -func (kt *KustTarget) newTransformer( - patches []*resource.Resource, tConfig *config.TransformerConfig) ( - transformers.Transformer, error) { - var r []transformers.Transformer - t, err := kt.tFactory.MakePatchTransformer(patches, kt.rFactory.RF()) - if err != nil { - return nil, err - } - r = append(r, t) - r = append(r, transformers.NewNamespaceTransformer( - string(kt.kustomization.Namespace), tConfig.NameSpace)) - t, err = transformers.NewNamePrefixSuffixTransformer( - string(kt.kustomization.NamePrefix), - string(kt.kustomization.NameSuffix), - tConfig.NamePrefix, - ) - if err != nil { - return nil, err - } - r = append(r, t) - t, err = transformers.NewLabelsMapTransformer( - kt.kustomization.CommonLabels, tConfig.CommonLabels) - if err != nil { - return nil, err - } - r = append(r, t) - t, err = transformers.NewAnnotationsMapTransformer( - kt.kustomization.CommonAnnotations, tConfig.CommonAnnotations) - if err != nil { - return nil, err - } - r = append(r, t) - t, err = patchtransformer.NewPatchJson6902Factory(kt.ldr). - MakePatchJson6902Transformer(kt.kustomization.PatchesJson6902) - if err != nil { - return nil, err - } - r = append(r, t) - t, err = transformers.NewImageTransformer(kt.kustomization.Images) - if err != nil { - return nil, err - } - r = append(r, t) - return transformers.NewMultiTransformer(r), nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/target/resaccumulator.go b/vendor/sigs.k8s.io/kustomize/pkg/target/resaccumulator.go deleted file mode 100644 index b8c45015a5..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/target/resaccumulator.go +++ /dev/null @@ -1,161 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package target - -import ( - "fmt" - "log" - "strings" - - "sigs.k8s.io/kustomize/pkg/resid" - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/transformers" - "sigs.k8s.io/kustomize/pkg/transformers/config" - "sigs.k8s.io/kustomize/pkg/types" -) - -// ResAccumulator accumulates resources and the rules -// used to customize those resources. -// TODO(monopole): Move to "accumulator" package and make members private. -// This will make a better separation between KustTarget, which should -// be mainly concerned with data loading, and this class, which could -// become the home of all transformation data and logic. -type ResAccumulator struct { - resMap resmap.ResMap - tConfig *config.TransformerConfig - varSet types.VarSet -} - -func MakeEmptyAccumulator() *ResAccumulator { - ra := &ResAccumulator{} - ra.resMap = make(resmap.ResMap) - ra.tConfig = &config.TransformerConfig{} - ra.varSet = types.VarSet{} - return ra -} - -// ResMap returns a copy of the internal resMap. -func (ra *ResAccumulator) ResMap() resmap.ResMap { - result := make(resmap.ResMap) - for k, v := range ra.resMap { - result[k] = v - } - return result -} - -// Vars returns a copy of underlying vars. -func (ra *ResAccumulator) Vars() []types.Var { - return ra.varSet.Set() -} - -func (ra *ResAccumulator) MergeResourcesWithErrorOnIdCollision( - resources resmap.ResMap) (err error) { - ra.resMap, err = resmap.MergeWithErrorOnIdCollision( - resources, ra.resMap) - return err -} - -func (ra *ResAccumulator) MergeResourcesWithOverride( - resources resmap.ResMap) (err error) { - ra.resMap, err = resmap.MergeWithOverride( - ra.resMap, resources) - return err -} - -func (ra *ResAccumulator) MergeConfig( - tConfig *config.TransformerConfig) (err error) { - ra.tConfig, err = ra.tConfig.Merge(tConfig) - return err -} - -func (ra *ResAccumulator) MergeVars(incoming []types.Var) error { - return ra.varSet.MergeSlice(incoming) -} - -func (ra *ResAccumulator) MergeAccumulator(other *ResAccumulator) (err error) { - err = ra.MergeResourcesWithErrorOnIdCollision(other.resMap) - if err != nil { - return err - } - err = ra.MergeConfig(other.tConfig) - if err != nil { - return err - } - return ra.varSet.MergeSet(&other.varSet) -} - -// makeVarReplacementMap returns a map of Var names to -// their final values. The values are strings intended -// for substitution wherever the $(var.Name) occurs. -func (ra *ResAccumulator) makeVarReplacementMap() (map[string]string, error) { - result := map[string]string{} - for _, v := range ra.Vars() { - matched := ra.resMap.GetMatchingIds( - resid.NewResId(v.ObjRef.GVK(), v.ObjRef.Name).GvknEquals) - if len(matched) > 1 { - return nil, fmt.Errorf( - "found %d resId matches for var %s "+ - "(unable to disambiguate)", - len(matched), v) - } - if len(matched) == 1 { - s, err := ra.resMap[matched[0]].GetFieldValue(v.FieldRef.FieldPath) - if err != nil { - return nil, fmt.Errorf( - "field specified in var '%v' "+ - "not found in corresponding resource", v) - } - result[v.Name] = s - } else { - return nil, fmt.Errorf( - "var '%v' cannot be mapped to a field "+ - "in the set of known resources", v) - } - } - return result, nil -} - -func (ra *ResAccumulator) Transform(t transformers.Transformer) error { - return t.Transform(ra.resMap) -} - -func (ra *ResAccumulator) ResolveVars() error { - replacementMap, err := ra.makeVarReplacementMap() - if err != nil { - return err - } - if len(replacementMap) == 0 { - return nil - } - t := transformers.NewRefVarTransformer( - replacementMap, ra.tConfig.VarReference) - err = ra.Transform(t) - if len(t.UnusedVars()) > 0 { - log.Printf( - "well-defined vars that were never replaced: %s\n", - strings.Join(t.UnusedVars(), ",")) - } - return err -} - -func (ra *ResAccumulator) FixBackReferences() (err error) { - if ra.tConfig.NameReference == nil { - return nil - } - return ra.Transform(transformers.NewNameReferenceTransformer( - ra.tConfig.NameReference)) -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/commonannotations.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/commonannotations.go deleted file mode 100644 index 2754559042..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/commonannotations.go +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package defaultconfig - -const commonAnnotationFieldSpecs = ` -commonAnnotations: -- path: metadata/annotations - create: true - -- path: spec/template/metadata/annotations - create: true - version: v1 - kind: ReplicationController - -- path: spec/template/metadata/annotations - create: true - kind: Deployment - -- path: spec/template/metadata/annotations - create: true - kind: ReplicaSet - -- path: spec/template/metadata/annotations - create: true - kind: DaemonSet - -- path: spec/template/metadata/annotations - create: true - kind: StatefulSet - -- path: spec/template/metadata/annotations - create: true - group: batch - kind: Job - -- path: spec/jobTemplate/metadata/annotations - create: true - group: batch - kind: CronJob - -- path: spec/jobTemplate/spec/template/metadata/annotations - create: true - group: batch - kind: CronJob - -` diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/defaultconfig.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/defaultconfig.go deleted file mode 100644 index d96639a8ab..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/defaultconfig.go +++ /dev/null @@ -1,49 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package defaultconfig provides the default -// transformer configurations -package defaultconfig - -import ( - "bytes" -) - -// GetDefaultFieldSpecs returns default fieldSpecs. -func GetDefaultFieldSpecs() []byte { - configData := [][]byte{ - []byte(namePrefixFieldSpecs), - []byte(commonLabelFieldSpecs), - []byte(commonAnnotationFieldSpecs), - []byte(namespaceFieldSpecs), - []byte(varReferenceFieldSpecs), - []byte(nameReferenceFieldSpecs), - } - return bytes.Join(configData, []byte("\n")) -} - -// GetDefaultFieldSpecsAsMap returns default fieldSpecs -// as a string->string map. -func GetDefaultFieldSpecsAsMap() map[string]string { - result := make(map[string]string) - result["nameprefix"] = namePrefixFieldSpecs - result["commonlabels"] = commonLabelFieldSpecs - result["commonannotations"] = commonAnnotationFieldSpecs - result["namespace"] = namespaceFieldSpecs - result["varreference"] = varReferenceFieldSpecs - result["namereference"] = nameReferenceFieldSpecs - return result -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/nameprefix.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/nameprefix.go deleted file mode 100644 index 94fe07a485..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/nameprefix.go +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package defaultconfig - -const ( - namePrefixFieldSpecs = ` -namePrefix: -- path: metadata/name -` -) diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/namereference.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/namereference.go deleted file mode 100644 index 35d4b7de0a..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/namereference.go +++ /dev/null @@ -1,317 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package defaultconfig - -const ( - nameReferenceFieldSpecs = ` -nameReference: -- kind: Deployment - fieldSpecs: - - path: spec/scaleTargetRef/name - kind: HorizontalPodAutoscaler - -- kind: ReplicationController - fieldSpecs: - - path: spec/scaleTargetRef/name - kind: HorizontalPodAutoscaler - -- kind: ReplicaSet - fieldSpecs: - - path: spec/scaleTargetRef/name - kind: HorizontalPodAutoscaler - -- kind: ConfigMap - version: v1 - fieldSpecs: - - path: spec/volumes/configMap/name - version: v1 - kind: Pod - - path: spec/containers/env/valueFrom/configMapKeyRef/name - version: v1 - kind: Pod - - path: spec/initContainers/env/valueFrom/configMapKeyRef/name - version: v1 - kind: Pod - - path: spec/containers/envFrom/configMapRef/name - version: v1 - kind: Pod - - path: spec/initContainers/envFrom/configMapRef/name - version: v1 - kind: Pod - - path: spec/template/spec/volumes/configMap/name - kind: Deployment - - path: spec/template/spec/containers/env/valueFrom/configMapKeyRef/name - kind: Deployment - - path: spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name - kind: Deployment - - path: spec/template/spec/containers/envFrom/configMapRef/name - kind: Deployment - - path: spec/template/spec/initContainers/envFrom/configMapRef/name - kind: Deployment - - path: spec/template/spec/volumes/projected/sources/configMap/name - kind: Deployment - - path: spec/template/spec/volumes/configMap/name - kind: ReplicaSet - - path: spec/template/spec/containers/env/valueFrom/configMapKeyRef/name - kind: ReplicaSet - - path: spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name - kind: ReplicaSet - - path: spec/template/spec/containers/envFrom/configMapRef/name - kind: ReplicaSet - - path: spec/template/spec/initContainers/envFrom/configMapRef/name - kind: ReplicaSet - - path: spec/template/spec/volumes/configMap/name - kind: DaemonSet - - path: spec/template/spec/containers/env/valueFrom/configMapKeyRef/name - kind: DaemonSet - - path: spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name - kind: DaemonSet - - path: spec/template/spec/containers/envFrom/configMapRef/name - kind: DaemonSet - - path: spec/template/spec/initContainers/envFrom/configMapRef/name - kind: DaemonSet - - path: spec/template/spec/volumes/configMap/name - kind: StatefulSet - - path: spec/template/spec/containers/env/valueFrom/configMapKeyRef/name - kind: StatefulSet - - path: spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name - kind: StatefulSet - - path: spec/template/spec/containers/envFrom/configMapRef/name - kind: StatefulSet - - path: spec/template/spec/initContainers/envFrom/configMapRef/name - kind: StatefulSet - - path: spec/template/spec/volumes/projected/sources/configMap/name - kind: StatefulSet - - path: spec/template/spec/volumes/configMap/name - kind: Job - - path: spec/template/spec/containers/env/valueFrom/configMapKeyRef/name - kind: Job - - path: spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name - kind: Job - - path: spec/template/spec/containers/envFrom/configMapRef/name - kind: Job - - path: spec/template/spec/initContainers/envFrom/configMapRef/name - kind: Job - - path: spec/jobTemplate/spec/template/spec/volumes/configMap/name - kind: CronJob - - path: spec/jobTemplate/spec/template/spec/containers/env/valueFrom/configMapKeyRef/name - kind: CronJob - - path: spec/jobTemplate/spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name - kind: CronJob - - path: spec/jobTemplate/spec/template/spec/containers/envFrom/configMapRef/name - kind: CronJob - - path: spec/jobTemplate/spec/template/spec/initContainers/envFrom/configmapRef/name - kind: CronJob - -- kind: Secret - version: v1 - fieldSpecs: - - path: spec/volumes/secret/secretName - version: v1 - kind: Pod - - path: spec/containers/env/valueFrom/secretKeyRef/name - version: v1 - kind: Pod - - path: spec/initContainers/env/valueFrom/secretKeyRef/name - version: v1 - kind: Pod - - path: spec/containers/envFrom/secretRef/name - version: v1 - kind: Pod - - path: spec/initContainers/envFrom/secretRef/name - version: v1 - kind: Pod - - path: spec/imagePullSecrets/name - version: v1 - kind: Pod - - path: spec/template/spec/volumes/secret/secretName - kind: Deployment - - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name - kind: Deployment - - path: spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name - kind: Deployment - - path: spec/template/spec/containers/envFrom/secretRef/name - kind: Deployment - - path: spec/template/spec/initContainers/envFrom/secretRef/name - kind: Deployment - - path: spec/template/spec/imagePullSecrets/name - kind: Deployment - - path: spec/template/spec/volumes/projected/sources/secret/name - kind: Deployment - - path: spec/template/spec/volumes/secret/secretName - kind: ReplicaSet - - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name - kind: ReplicaSet - - path: spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name - kind: ReplicaSet - - path: spec/template/spec/containers/envFrom/secretRef/name - kind: ReplicaSet - - path: spec/template/spec/initContainers/envFrom/secretRef/name - kind: ReplicaSet - - path: spec/template/spec/imagePullSecrets/name - kind: ReplicaSet - - path: spec/template/spec/volumes/secret/secretName - kind: DaemonSet - - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name - kind: DaemonSet - - path: spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name - kind: DaemonSet - - path: spec/template/spec/containers/envFrom/secretRef/name - kind: DaemonSet - - path: spec/template/spec/initContainers/envFrom/secretRef/name - kind: DaemonSet - - path: spec/template/spec/imagePullSecrets/name - kind: DaemonSet - - path: spec/template/spec/volumes/secret/secretName - kind: StatefulSet - - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name - kind: StatefulSet - - path: spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name - kind: StatefulSet - - path: spec/template/spec/containers/envFrom/secretRef/name - kind: StatefulSet - - path: spec/template/spec/initContainers/envFrom/secretRef/name - kind: StatefulSet - - path: spec/template/spec/imagePullSecrets/name - kind: StatefulSet - - path: spec/template/spec/volumes/projected/sources/secret/name - kind: StatefulSet - - path: spec/template/spec/volumes/secret/secretName - kind: Job - - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name - kind: Job - - path: spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name - kind: Job - - path: spec/template/spec/containers/envFrom/secretRef/name - kind: Job - - path: spec/template/spec/initContainers/envFrom/secretRef/name - kind: Job - - path: spec/template/spec/imagePullSecrets/name - kind: Job - - path: spec/jobTemplate/spec/template/spec/volumes/secret/secretName - kind: CronJob - - path: spec/jobTemplate/spec/template/spec/containers/env/valueFrom/secretKeyRef/name - kind: CronJob - - path: spec/jobTemplate/spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name - kind: CronJob - - path: spec/jobTemplate/spec/template/spec/containers/envFrom/secretRef/name - kind: CronJob - - path: spec/jobTemplate/spec/template/spec/initContainers/envFrom/secretRef/name - kind: CronJob - - path: spec/jobTemplate/spec/template/spec/imagePullSecrets/name - kind: CronJob - - path: spec/tls/secretName - kind: Ingress - - path: metadata/annotations/ingress.kubernetes.io\/auth-secret - kind: Ingress - - path: metadata/annotations/nginx.ingress.kubernetes.io\/auth-secret - kind: Ingress - - path: imagePullSecrets/name - kind: ServiceAccount - - path: parameters/secretName - kind: StorageClass - - path: parameters/adminSecretName - kind: StorageClass - - path: parameters/userSecretName - kind: StorageClass - - path: parameters/secretRef - kind: StorageClass - - path: rules/resourceNames - kind: Role - - path: rules/resourceNames - kind: ClusterRole - -- kind: Service - version: v1 - fieldSpecs: - - path: spec/serviceName - kind: StatefulSet - group: apps - - path: spec/rules/http/paths/backend/serviceName - kind: Ingress - - path: spec/backend/serviceName - kind: Ingress - - path: spec/service/name - kind: APIService - group: apiregistration.k8s.io - -- kind: Role - group: rbac.authorization.k8s.io - fieldSpecs: - - path: roleRef/name - kind: RoleBinding - group: rbac.authorization.k8s.io - -- kind: ClusterRole - group: rbac.authorization.k8s.io - fieldSpecs: - - path: roleRef/name - kind: RoleBinding - group: rbac.authorization.k8s.io - - path: roleRef/name - kind: ClusterRoleBinding - group: rbac.authorization.k8s.io - -- kind: ServiceAccount - version: v1 - fieldSpecs: - - path: subjects/name - kind: RoleBinding - group: rbac.authorization.k8s.io - - path: subjects/name - kind: ClusterRoleBinding - group: rbac.authorization.k8s.io - - path: spec/serviceAccountName - kind: Pod - - path: spec/template/spec/serviceAccountName - kind: StatefulSet - - path: spec/template/spec/serviceAccountName - kind: Deployment - - path: spec/template/spec/serviceAccountName - kind: ReplicationController - - path: spec/jobTemplate/spec/template/spec/serviceAccountName - kind: CronJob - - path: spec/template/spec/serviceAccountName - kind: job - - path: spec/template/spec/serviceAccountName - kind: DaemonSet - -- kind: PersistentVolumeClaim - version: v1 - fieldSpecs: - - path: spec/volumes/persistentVolumeClaim/claimName - kind: Pod - - path: spec/template/spec/volumes/persistentVolumeClaim/claimName - kind: StatefulSet - - path: spec/template/spec/volumes/persistentVolumeClaim/claimName - kind: Deployment - - path: spec/template/spec/volumes/persistentVolumeClaim/claimName - kind: ReplicationController - - path: spec/jobTemplate/spec/template/spec/volumes/persistentVolumeClaim/claimName - kind: CronJob - - path: spec/template/spec/volumes/persistentVolumeClaim/claimName - kind: Job - - path: spec/template/spec/volumes/persistentVolumeClaim/claimName - kind: DaemonSet - -- kind: PersistentVolume - version: v1 - fieldSpecs: - - path: spec/volumeName - kind: PersistentVolumeClaim -` -) diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/namespace.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/namespace.go deleted file mode 100644 index 431eb07699..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/namespace.go +++ /dev/null @@ -1,25 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package defaultconfig - -const ( - namespaceFieldSpecs = ` -namespace: -- path: metadata/namespace - create: true -` -) diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/varreference.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/varreference.go deleted file mode 100644 index 71953f5768..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig/varreference.go +++ /dev/null @@ -1,162 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package defaultconfig - -const ( - varReferenceFieldSpecs = ` -varReference: -- path: spec/template/spec/initContainers/command - kind: StatefulSet - -- path: spec/template/spec/containers/command - kind: StatefulSet - -- path: spec/template/spec/initContainers/command - kind: Deployment - -- path: spec/template/spec/containers/command - kind: Deployment - -- path: spec/template/spec/initContainers/command - kind: DaemonSet - -- path: spec/template/spec/containers/command - kind: DaemonSet - -- path: spec/template/spec/containers/command - kind: Job - -- path: spec/jobTemplate/spec/template/spec/containers/command - kind: CronJob - -- path: spec/template/spec/initContainers/args - kind: StatefulSet - -- path: spec/template/spec/containers/args - kind: StatefulSet - -- path: spec/template/spec/initContainers/args - kind: Deployment - -- path: spec/template/spec/containers/args - kind: Deployment - -- path: spec/template/spec/initContainers/args - kind: DaemonSet - -- path: spec/template/spec/containers/args - kind: DaemonSet - -- path: spec/template/spec/containers/args - kind: Job - -- path: spec/jobTemplate/spec/template/spec/containers/args - kind: CronJob - -- path: spec/template/spec/initContainers/env/value - kind: StatefulSet - -- path: spec/template/spec/containers/env/value - kind: StatefulSet - -- path: spec/template/spec/initContainers/env/value - kind: Deployment - -- path: spec/template/spec/containers/env/value - kind: Deployment - -- path: spec/template/spec/initContainers/env/value - kind: DaemonSet - -- path: spec/template/spec/containers/env/value - kind: DaemonSet - -- path: spec/template/spec/containers/env/value - kind: Job - -- path: spec/jobTemplate/spec/template/spec/containers/env/value - kind: CronJob - -- path: spec/containers/command - kind: Pod - -- path: spec/containers/args - kind: Pod - -- path: spec/containers/env/value - kind: Pod - -- path: spec/initContainers/command - kind: Pod - -- path: spec/initContainers/args - kind: Pod - -- path: spec/initContainers/env/value - kind: Pod - -- path: spec/rules/host - kind: Ingress - -- path: spec/tls/hosts - kind: Ingress - -- path: spec/template/spec/containers/volumeMounts/mountPath - kind: StatefulSet - -- path: spec/template/spec/initContainers/volumeMounts/mountPath - kind: StatefulSet - -- path: spec/containers/volumeMounts/mountPath - kind: Pod - -- path: spec/initContainers/volumeMounts/mountPath - kind: Pod - -- path: spec/template/spec/containers/volumeMounts/mountPath - kind: ReplicaSet - -- path: spec/template/spec/initContainers/volumeMounts/mountPath - kind: ReplicaSet - -- path: spec/template/spec/containers/volumeMounts/mountPath - kind: Job - -- path: spec/template/spec/initContainers/volumeMounts/mountPath - kind: Job - -- path: spec/template/spec/containers/volumeMounts/mountPath - kind: CronJob - -- path: spec/template/spec/initContainers/volumeMounts/mountPath - kind: CronJob - -- path: spec/template/spec/containers/volumeMounts/mountPath - kind: DaemonSet - -- path: spec/template/spec/initContainers/volumeMounts/mountPath - kind: DaemonSet - -- path: spec/template/spec/containers/volumeMounts/mountPath - kind: Deployment - -- path: spec/template/spec/initContainers/volumeMounts/mountPath - kind: Deployment - -- path: metadata/labels -` -) diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/factory.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/factory.go deleted file mode 100644 index d0ea0d1dd8..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/factory.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package config - -import ( - "log" - - "github.com/ghodss/yaml" - "sigs.k8s.io/kustomize/pkg/ifc" -) - -// Factory makes instances of TransformerConfig. -type Factory struct { - ldr ifc.Loader -} - -// MakeTransformerConfig returns a merger of custom config, -// if any, with default config. -func MakeTransformerConfig( - ldr ifc.Loader, paths []string) (*TransformerConfig, error) { - t1 := MakeDefaultConfig() - if len(paths) == 0 { - return t1, nil - } - t2, err := NewFactory(ldr).FromFiles(paths) - if err != nil { - return nil, err - } - return t1.Merge(t2) -} - -func NewFactory(l ifc.Loader) *Factory { - return &Factory{ldr: l} -} - -func (tf *Factory) loader() ifc.Loader { - if tf.ldr.(ifc.Loader) == nil { - log.Fatal("no loader") - } - return tf.ldr -} - -// FromFiles returns a TranformerConfig object from a list of files -func (tf *Factory) FromFiles( - paths []string) (*TransformerConfig, error) { - result := &TransformerConfig{} - for _, path := range paths { - data, err := tf.loader().Load(path) - if err != nil { - return nil, err - } - t, err := makeTransformerConfigFromBytes(data) - if err != nil { - return nil, err - } - result, err = result.Merge(t) - if err != nil { - return nil, err - } - } - return result, nil -} - -// makeTransformerConfigFromBytes returns a TransformerConfig object from bytes -func makeTransformerConfigFromBytes(data []byte) (*TransformerConfig, error) { - var t TransformerConfig - err := yaml.Unmarshal(data, &t) - if err != nil { - return nil, err - } - t.sortFields() - return &t, nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/factorycrd.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/factorycrd.go deleted file mode 100644 index 66a24dc868..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/factorycrd.go +++ /dev/null @@ -1,201 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package config - -import ( - "encoding/json" - "strings" - - "github.com/ghodss/yaml" - "github.com/go-openapi/spec" - "github.com/pkg/errors" - "k8s.io/kube-openapi/pkg/common" - "sigs.k8s.io/kustomize/pkg/gvk" - "sigs.k8s.io/kustomize/pkg/ifc" -) - -type myProperties map[string]spec.Schema -type nameToApiMap map[string]common.OpenAPIDefinition - -// LoadConfigFromCRDs parse CRD schemas from paths into a TransformerConfig -func LoadConfigFromCRDs( - ldr ifc.Loader, paths []string) (*TransformerConfig, error) { - tc := MakeEmptyConfig() - for _, path := range paths { - content, err := ldr.Load(path) - if err != nil { - return nil, err - } - m, err := makeNameToApiMap(content) - if err != nil { - return nil, errors.Wrapf(err, "unable to parse open API definition from '%s'", path) - } - otherTc, err := makeConfigFromApiMap(m) - if err != nil { - return nil, err - } - tc, err = tc.Merge(otherTc) - if err != nil { - return nil, err - } - } - return tc, nil -} - -func makeNameToApiMap(content []byte) (result nameToApiMap, err error) { - if content[0] == '{' { - err = json.Unmarshal(content, &result) - } else { - err = yaml.Unmarshal(content, &result) - } - return -} - -func makeConfigFromApiMap(m nameToApiMap) (*TransformerConfig, error) { - result := MakeEmptyConfig() - for name, api := range m { - if !looksLikeAk8sType(api.Schema.SchemaProps.Properties) { - continue - } - tc := MakeEmptyConfig() - err := loadCrdIntoConfig( - tc, makeGvkFromTypeName(name), m, name, []string{}) - if err != nil { - return result, err - } - result, err = result.Merge(tc) - if err != nil { - return result, err - } - } - return result, nil -} - -// TODO: Get Group and Version for CRD from the -// openAPI definition once -// "x-kubernetes-group-version-kind" is available in CRD -func makeGvkFromTypeName(n string) gvk.Gvk { - names := strings.Split(n, ".") - kind := names[len(names)-1] - return gvk.Gvk{Kind: kind} -} - -func looksLikeAk8sType(properties myProperties) bool { - _, ok := properties["kind"] - if !ok { - return false - } - _, ok = properties["apiVersion"] - if !ok { - return false - } - _, ok = properties["metadata"] - if !ok { - return false - } - return true -} - -const ( - // "x-kubernetes-annotation": "" - xAnnotation = "x-kubernetes-annotation" - - // "x-kubernetes-label-selector": "" - xLabelSelector = "x-kubernetes-label-selector" - - // "x-kubernetes-identity": "" - xIdentity = "x-kubernetes-identity" - - // "x-kubernetes-object-ref-api-version": - xVersion = "x-kubernetes-object-ref-api-version" - - // "x-kubernetes-object-ref-kind": - xKind = "x-kubernetes-object-ref-kind" - - // "x-kubernetes-object-ref-name-key": "name" - // default is "name" - xNameKey = "x-kubernetes-object-ref-name-key" -) - -// loadCrdIntoConfig loads a CRD spec into a TransformerConfig -func loadCrdIntoConfig( - theConfig *TransformerConfig, theGvk gvk.Gvk, theMap nameToApiMap, - typeName string, path []string) (err error) { - api, ok := theMap[typeName] - if !ok { - return nil - } - for propName, property := range api.Schema.SchemaProps.Properties { - _, annotate := property.Extensions.GetString(xAnnotation) - if annotate { - err = theConfig.AddAnnotationFieldSpec( - makeFs(theGvk, append(path, propName))) - if err != nil { - return - } - } - _, label := property.Extensions.GetString(xLabelSelector) - if label { - err = theConfig.AddLabelFieldSpec( - makeFs(theGvk, append(path, propName))) - if err != nil { - return - } - } - _, identity := property.Extensions.GetString(xIdentity) - if identity { - err = theConfig.AddPrefixFieldSpec( - makeFs(theGvk, append(path, propName))) - if err != nil { - return - } - } - version, ok := property.Extensions.GetString(xVersion) - if ok { - kind, ok := property.Extensions.GetString(xKind) - if ok { - nameKey, ok := property.Extensions.GetString(xNameKey) - if !ok { - nameKey = "name" - } - err = theConfig.AddNamereferenceFieldSpec( - NameBackReferences{ - Gvk: gvk.Gvk{Kind: kind, Version: version}, - FieldSpecs: []FieldSpec{ - makeFs(theGvk, append(path, propName, nameKey))}, - }) - if err != nil { - return - } - } - } - if property.Ref.GetURL() != nil { - loadCrdIntoConfig( - theConfig, theGvk, theMap, - property.Ref.String(), append(path, propName)) - } - } - return nil -} - -func makeFs(in gvk.Gvk, path []string) FieldSpec { - return FieldSpec{ - CreateIfNotPresent: false, - Gvk: in, - Path: strings.Join(path, "/"), - } -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/fieldspec.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/fieldspec.go deleted file mode 100644 index 5b0f6ee33a..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/fieldspec.go +++ /dev/null @@ -1,139 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package config - -import ( - "fmt" - "strings" - - "sigs.k8s.io/kustomize/pkg/gvk" -) - -// FieldSpec completely specifies a kustomizable field in -// an unstructured representation of a k8s API object. -// It helps define the operands of transformations. -// -// For example, a directive to add a common label to objects -// will need to know that a 'Deployment' object (in API group -// 'apps', any version) can have labels at field path -// 'spec/template/metadata/labels', and further that it is OK -// (or not OK) to add that field path to the object if the -// field path doesn't exist already. -// -// This would look like -// { -// group: apps -// kind: Deployment -// path: spec/template/metadata/labels -// create: true -// } -type FieldSpec struct { - gvk.Gvk `json:",inline,omitempty" yaml:",inline,omitempty"` - Path string `json:"path,omitempty" yaml:"path,omitempty"` - CreateIfNotPresent bool `json:"create,omitempty" yaml:"create,omitempty"` -} - -const ( - escapedForwardSlash = "\\/" - tempSlashReplacement = "???" -) - -func (fs FieldSpec) String() string { - return fmt.Sprintf( - "%s:%v:%s", fs.Gvk.String(), fs.CreateIfNotPresent, fs.Path) -} - -// If true, the primary key is the same, but other fields might not be. -func (fs FieldSpec) effectivelyEquals(other FieldSpec) bool { - return fs.IsSelected(&other.Gvk) && fs.Path == other.Path -} - -// PathSlice converts the path string to a slice of strings, -// separated by a '/'. Forward slash can be contained in a -// fieldname. such as ingress.kubernetes.io/auth-secret in -// Ingress annotations. To deal with this special case, the -// path to this field should be formatted as -// -// metadata/annotations/ingress.kubernetes.io\/auth-secret -// -// Then PathSlice will return -// -// []string{ -// "metadata", -// "annotations", -// "ingress.auth-secretkubernetes.io/auth-secret" -// } -func (fs FieldSpec) PathSlice() []string { - if !strings.Contains(fs.Path, escapedForwardSlash) { - return strings.Split(fs.Path, "/") - } - s := strings.Replace(fs.Path, escapedForwardSlash, tempSlashReplacement, -1) - paths := strings.Split(s, "/") - var result []string - for _, path := range paths { - result = append(result, strings.Replace(path, tempSlashReplacement, "/", -1)) - } - return result -} - -type fsSlice []FieldSpec - -func (s fsSlice) Len() int { return len(s) } -func (s fsSlice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s fsSlice) Less(i, j int) bool { - return s[i].Gvk.IsLessThan(s[j].Gvk) -} - -// mergeAll merges the argument into this, returning the result. -// Items already present are ignored. -// Items that conflict (primary key matches, but remain data differs) -// result in an error. -func (s fsSlice) mergeAll(incoming fsSlice) (result fsSlice, err error) { - result = s - for _, x := range incoming { - result, err = result.mergeOne(x) - if err != nil { - return nil, err - } - } - return result, nil -} - -// mergeOne merges the argument into this, returning the result. -// If the item's primary key is already present, and there are no -// conflicts, it is ignored (we don't want duplicates). -// If there is a conflict, the merge fails. -func (s fsSlice) mergeOne(x FieldSpec) (fsSlice, error) { - i := s.index(x) - if i > -1 { - // It's already there. - if s[i].CreateIfNotPresent != x.CreateIfNotPresent { - return nil, fmt.Errorf("conflicting fieldspecs") - } - return s, nil - } - return append(s, x), nil -} - -func (s fsSlice) index(fs FieldSpec) int { - for i, x := range s { - if x.effectivelyEquals(fs) { - return i - } - } - return -1 -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/namebackreferences.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/namebackreferences.go deleted file mode 100644 index 172e4b3ca5..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/namebackreferences.go +++ /dev/null @@ -1,105 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package config - -import ( - "strings" - - "sigs.k8s.io/kustomize/pkg/gvk" -) - -// NameBackReferences is an association between a gvk.GVK and a list -// of FieldSpec instances that could refer to it. -// -// It is used to handle name changes, and can be thought of as a -// a contact list. If you change your own contact info (name, -// phone number, etc.), you must tell your contacts or they won't -// know about the change. -// -// For example, ConfigMaps can be used by Pods and everything that -// contains a Pod; Deployment, Job, StatefulSet, etc. To change -// the name of a ConfigMap instance from 'alice' to 'bob', one -// must visit all objects that could refer to the ConfigMap, see if -// they mention 'alice', and if so, change the reference to 'bob'. -// -// The NameBackReferences instance to aid in this could look like -// { -// kind: ConfigMap -// version: v1 -// FieldSpecs: -// - kind: Pod -// version: v1 -// path: spec/volumes/configMap/name -// - kind: Deployment -// path: spec/template/spec/volumes/configMap/name -// - kind: Job -// path: spec/template/spec/volumes/configMap/name -// (etc.) -// } -type NameBackReferences struct { - gvk.Gvk `json:",inline,omitempty" yaml:",inline,omitempty"` - FieldSpecs fsSlice `json:"FieldSpecs,omitempty" yaml:"FieldSpecs,omitempty"` -} - -func (n NameBackReferences) String() string { - var r []string - for _, f := range n.FieldSpecs { - r = append(r, f.String()) - } - return n.Gvk.String() + ": (\n" + - strings.Join(r, "\n") + "\n)" -} - -type nbrSlice []NameBackReferences - -func (s nbrSlice) Len() int { return len(s) } -func (s nbrSlice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s nbrSlice) Less(i, j int) bool { - return s[i].Gvk.IsLessThan(s[j].Gvk) -} - -func (s nbrSlice) mergeAll(o nbrSlice) (result nbrSlice, err error) { - result = s - for _, r := range o { - result, err = result.mergeOne(r) - if err != nil { - return nil, err - } - } - return result, nil -} - -func (s nbrSlice) mergeOne(other NameBackReferences) (nbrSlice, error) { - var result nbrSlice - var err error - found := false - for _, c := range s { - if c.Gvk.Equals(other.Gvk) { - c.FieldSpecs, err = c.FieldSpecs.mergeAll(other.FieldSpecs) - if err != nil { - return nil, err - } - found = true - } - result = append(result, c) - } - - if !found { - result = append(result, other) - } - return result, nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/transformerconfig.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/transformerconfig.go deleted file mode 100644 index 556f0b814c..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/config/transformerconfig.go +++ /dev/null @@ -1,134 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package config provides the functions to load default or user provided configurations -// for different transformers -package config - -import ( - "log" - "sort" - - "sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig" -) - -// TransformerConfig holds the data needed to perform transformations. -type TransformerConfig struct { - NamePrefix fsSlice `json:"namePrefix,omitempty" yaml:"namePrefix,omitempty"` - NameSuffix fsSlice `json:"nameSuffix,omitempty" yaml:"nameSuffix,omitempty"` - NameSpace fsSlice `json:"namespace,omitempty" yaml:"namespace,omitempty"` - CommonLabels fsSlice `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"` - CommonAnnotations fsSlice `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"` - NameReference nbrSlice `json:"nameReference,omitempty" yaml:"nameReference,omitempty"` - VarReference fsSlice `json:"varReference,omitempty" yaml:"varReference,omitempty"` -} - -// MakeEmptyConfig returns an empty TransformerConfig object -func MakeEmptyConfig() *TransformerConfig { - return &TransformerConfig{} -} - -// MakeDefaultConfig returns a default TransformerConfig. -func MakeDefaultConfig() *TransformerConfig { - c, err := makeTransformerConfigFromBytes( - defaultconfig.GetDefaultFieldSpecs()) - if err != nil { - log.Fatalf("Unable to make default transformconfig: %v", err) - } - return c -} - -// sortFields provides determinism in logging, tests, etc. -func (t *TransformerConfig) sortFields() { - sort.Sort(t.NamePrefix) - sort.Sort(t.NameSpace) - sort.Sort(t.CommonLabels) - sort.Sort(t.CommonAnnotations) - sort.Sort(t.NameReference) - sort.Sort(t.VarReference) -} - -// AddPrefixFieldSpec adds a FieldSpec to NamePrefix -func (t *TransformerConfig) AddPrefixFieldSpec(fs FieldSpec) (err error) { - t.NamePrefix, err = t.NamePrefix.mergeOne(fs) - return err -} - -// AddSuffixFieldSpec adds a FieldSpec to NameSuffix -func (t *TransformerConfig) AddSuffixFieldSpec(fs FieldSpec) (err error) { - t.NameSuffix, err = t.NameSuffix.mergeOne(fs) - return err -} - -// AddLabelFieldSpec adds a FieldSpec to CommonLabels -func (t *TransformerConfig) AddLabelFieldSpec(fs FieldSpec) (err error) { - t.CommonLabels, err = t.CommonLabels.mergeOne(fs) - return err -} - -// AddAnnotationFieldSpec adds a FieldSpec to CommonAnnotations -func (t *TransformerConfig) AddAnnotationFieldSpec(fs FieldSpec) (err error) { - t.CommonAnnotations, err = t.CommonAnnotations.mergeOne(fs) - return err -} - -// AddNamereferenceFieldSpec adds a NameBackReferences to NameReference -func (t *TransformerConfig) AddNamereferenceFieldSpec( - nbrs NameBackReferences) (err error) { - t.NameReference, err = t.NameReference.mergeOne(nbrs) - return err -} - -// Merge merges two TransformerConfigs objects into -// a new TransformerConfig object -func (t *TransformerConfig) Merge(input *TransformerConfig) ( - merged *TransformerConfig, err error) { - if input == nil { - return t, nil - } - merged = &TransformerConfig{} - merged.NamePrefix, err = t.NamePrefix.mergeAll(input.NamePrefix) - if err != nil { - return nil, err - } - merged.NameSuffix, err = t.NameSuffix.mergeAll(input.NameSuffix) - if err != nil { - return nil, err - } - merged.NameSpace, err = t.NameSpace.mergeAll(input.NameSpace) - if err != nil { - return nil, err - } - merged.CommonAnnotations, err = t.CommonAnnotations.mergeAll( - input.CommonAnnotations) - if err != nil { - return nil, err - } - merged.CommonLabels, err = t.CommonLabels.mergeAll(input.CommonLabels) - if err != nil { - return nil, err - } - merged.VarReference, err = t.VarReference.mergeAll(input.VarReference) - if err != nil { - return nil, err - } - merged.NameReference, err = t.NameReference.mergeAll(input.NameReference) - if err != nil { - return nil, err - } - merged.sortFields() - return merged, nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/image.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/image.go deleted file mode 100644 index 2e07976943..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/image.go +++ /dev/null @@ -1,171 +0,0 @@ -/* -Copyright 2019 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. -*/ - -package transformers - -import ( - "fmt" - "regexp" - "strings" - - "sigs.k8s.io/kustomize/pkg/image" - "sigs.k8s.io/kustomize/pkg/resmap" -) - -// imageTransformer replace image names and tags -type imageTransformer struct { - images []image.Image -} - -var _ Transformer = &imageTransformer{} - -// NewImageTransformer constructs an imageTransformer. -func NewImageTransformer(slice []image.Image) (Transformer, error) { - return &imageTransformer{slice}, nil -} - -// Transform finds the matching images and replaces name, tag and/or digest -func (pt *imageTransformer) Transform(resources resmap.ResMap) error { - if len(pt.images) == 0 { - return nil - } - for _, res := range resources { - err := pt.findAndReplaceImage(res.Map()) - if err != nil { - return err - } - } - return nil -} - -/* - findAndReplaceImage replaces the image name and tags inside one object - It searches the object for container session - then loops though all images inside containers session, - finds matched ones and update the image name and tag name -*/ -func (pt *imageTransformer) findAndReplaceImage(obj map[string]interface{}) error { - paths := []string{"containers", "initContainers"} - found := false - for _, path := range paths { - _, found = obj[path] - if found { - err := pt.updateContainers(obj, path) - if err != nil { - return err - } - } - } - if !found { - return pt.findContainers(obj) - } - return nil -} - -func (pt *imageTransformer) updateContainers(obj map[string]interface{}, path string) error { - containers, ok := obj[path].([]interface{}) - if !ok { - return fmt.Errorf("containers path is not of type []interface{} but %T", obj[path]) - } - for i := range containers { - container := containers[i].(map[string]interface{}) - containerImage, found := container["image"] - if !found { - continue - } - - imageName := containerImage.(string) - for _, img := range pt.images { - if !isImageMatched(imageName, img.Name) { - continue - } - name, tag := split(imageName) - if img.NewName != "" { - name = img.NewName - } - if img.NewTag != "" { - tag = ":" + img.NewTag - } - if img.Digest != "" { - tag = "@" + img.Digest - } - container["image"] = name + tag - break - } - } - return nil -} - -func (pt *imageTransformer) findContainers(obj map[string]interface{}) error { - for key := range obj { - switch typedV := obj[key].(type) { - case map[string]interface{}: - err := pt.findAndReplaceImage(typedV) - if err != nil { - return err - } - case []interface{}: - for i := range typedV { - item := typedV[i] - typedItem, ok := item.(map[string]interface{}) - if ok { - err := pt.findAndReplaceImage(typedItem) - if err != nil { - return err - } - } - } - } - } - return nil -} - -func isImageMatched(s, t string) bool { - // Tag values are limited to [a-zA-Z0-9_.-]. - pattern, _ := regexp.Compile("^" + t + "(:[a-zA-Z0-9_.-]*)?$") - return pattern.MatchString(s) -} - -// split separates and returns the name and tag parts -// from the image string using either colon `:` or at `@` separators. -// Note that the returned tag keeps its separator. -func split(imageName string) (name string, tag string) { - // check if image name contains a domain - // if domain is present, ignore domain and check for `:` - ic := -1 - if slashIndex := strings.Index(imageName, "/"); slashIndex < 0 { - ic = strings.LastIndex(imageName, ":") - } else { - lastIc := strings.LastIndex(imageName[slashIndex:], ":") - // set ic only if `:` is present - if lastIc > 0 { - ic = slashIndex + lastIc - } - } - ia := strings.LastIndex(imageName, "@") - if ic < 0 && ia < 0 { - return imageName, "" - } - - i := ic - if ic < 0 { - i = ia - } - - name = imageName[:i] - tag = imageName[i:] - return -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/labelsandannotations.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/labelsandannotations.go deleted file mode 100644 index 836abcaa48..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/labelsandannotations.go +++ /dev/null @@ -1,86 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package transformers - -import ( - "errors" - "fmt" - - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/transformers/config" -) - -// mapTransformer applies a string->string map to fieldSpecs. -type mapTransformer struct { - m map[string]string - fieldSpecs []config.FieldSpec -} - -var _ Transformer = &mapTransformer{} - -// NewLabelsMapTransformer constructs a mapTransformer. -func NewLabelsMapTransformer( - m map[string]string, fs []config.FieldSpec) (Transformer, error) { - return NewMapTransformer(fs, m) -} - -// NewAnnotationsMapTransformer construct a mapTransformer. -func NewAnnotationsMapTransformer( - m map[string]string, fs []config.FieldSpec) (Transformer, error) { - return NewMapTransformer(fs, m) -} - -// NewMapTransformer construct a mapTransformer. -func NewMapTransformer( - pc []config.FieldSpec, m map[string]string) (Transformer, error) { - if m == nil { - return NewNoOpTransformer(), nil - } - if pc == nil { - return nil, errors.New("fieldSpecs is not expected to be nil") - } - return &mapTransformer{fieldSpecs: pc, m: m}, nil -} - -// Transform apply each pair in the mapTransformer to the -// fields specified in mapTransformer. -func (o *mapTransformer) Transform(m resmap.ResMap) error { - for id := range m { - objMap := m[id].Map() - for _, path := range o.fieldSpecs { - if !id.Gvk().IsSelected(&path.Gvk) { - continue - } - err := mutateField(objMap, path.PathSlice(), path.CreateIfNotPresent, o.addMap) - if err != nil { - return err - } - } - } - return nil -} - -func (o *mapTransformer) addMap(in interface{}) (interface{}, error) { - m, ok := in.(map[string]interface{}) - if !ok { - return nil, fmt.Errorf("%#v is expected to be %T", in, m) - } - for k, v := range o.m { - m[k] = v - } - return m, nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/multitransformer.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/multitransformer.go deleted file mode 100644 index d5921d1a92..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/multitransformer.go +++ /dev/null @@ -1,95 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package transformers - -import ( - "fmt" - "sigs.k8s.io/kustomize/pkg/resource" - - "sigs.k8s.io/kustomize/pkg/resmap" -) - -// multiTransformer contains a list of transformers. -type multiTransformer struct { - transformers []Transformer - checkConflictEnabled bool - rf *resource.Factory -} - -var _ Transformer = &multiTransformer{} - -// NewMultiTransformer constructs a multiTransformer. -func NewMultiTransformer(t []Transformer) Transformer { - r := &multiTransformer{ - transformers: make([]Transformer, len(t)), - checkConflictEnabled: false} - copy(r.transformers, t) - return r -} - -// NewMultiTransformerWithConflictCheck constructs a multiTransformer with checking of conflicts. -func NewMultiTransformerWithConflictCheck(t []Transformer) Transformer { - r := &multiTransformer{ - transformers: make([]Transformer, len(t)), - checkConflictEnabled: true} - copy(r.transformers, t) - return r -} - -// Transform prepends the name prefix. -func (o *multiTransformer) Transform(m resmap.ResMap) error { - if o.checkConflictEnabled { - return o.transformWithCheckConflict(m) - } - return o.transform(m) -} -func (o *multiTransformer) transform(m resmap.ResMap) error { - for _, t := range o.transformers { - err := t.Transform(m) - if err != nil { - return err - } - } - return nil -} - -// Of the len(o.transformers)! possible transformer orderings, compare to a reversed order. -// A spot check to perform when the transformations are supposed to be commutative. -// Fail if there's a difference in the result. -func (o *multiTransformer) transformWithCheckConflict(m resmap.ResMap) error { - mcopy := m.DeepCopy(o.rf) - err := o.transform(m) - if err != nil { - return err - } - o.reverseTransformers() - err = o.transform(mcopy) - if err != nil { - return err - } - err = m.ErrorIfNotEqual(mcopy) - if err != nil { - return fmt.Errorf("found conflict between different patches\n%v", err) - } - return nil -} - -func (o *multiTransformer) reverseTransformers() { - for i, j := 0, len(o.transformers)-1; i < j; i, j = i+1, j-1 { - o.transformers[i], o.transformers[j] = o.transformers[j], o.transformers[i] - } -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/mutatefield.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/mutatefield.go deleted file mode 100644 index eddfeee20b..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/mutatefield.go +++ /dev/null @@ -1,81 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package transformers - -import ( - "fmt" - "log" - "strings" -) - -type mutateFunc func(interface{}) (interface{}, error) - -func mutateField( - m map[string]interface{}, - pathToField []string, - createIfNotPresent bool, - fns ...mutateFunc) error { - if len(pathToField) == 0 { - return nil - } - - _, found := m[pathToField[0]] - if !found { - if !createIfNotPresent { - return nil - } - m[pathToField[0]] = map[string]interface{}{} - } - - if len(pathToField) == 1 { - var err error - for _, fn := range fns { - m[pathToField[0]], err = fn(m[pathToField[0]]) - if err != nil { - return err - } - } - return nil - } - - v := m[pathToField[0]] - newPathToField := pathToField[1:] - switch typedV := v.(type) { - case nil: - log.Printf( - "nil value at `%s` ignored in mutation attempt", - strings.Join(pathToField, ".")) - return nil - case map[string]interface{}: - return mutateField(typedV, newPathToField, createIfNotPresent, fns...) - case []interface{}: - for i := range typedV { - item := typedV[i] - typedItem, ok := item.(map[string]interface{}) - if !ok { - return fmt.Errorf("%#v is expected to be %T", item, typedItem) - } - err := mutateField(typedItem, newPathToField, createIfNotPresent, fns...) - if err != nil { - return err - } - } - return nil - default: - return fmt.Errorf("%#v is not expected to be a primitive type", typedV) - } -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/namereference.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/namereference.go deleted file mode 100644 index a4e8a7f8ed..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/namereference.go +++ /dev/null @@ -1,144 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package transformers - -import ( - "fmt" - "log" - - "sigs.k8s.io/kustomize/pkg/gvk" - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/transformers/config" -) - -type nameReferenceTransformer struct { - backRefs []config.NameBackReferences -} - -var _ Transformer = &nameReferenceTransformer{} - -// NewNameReferenceTransformer constructs a nameReferenceTransformer -// with a given slice of NameBackReferences. -func NewNameReferenceTransformer(br []config.NameBackReferences) Transformer { - if br == nil { - log.Fatal("backrefs not expected to be nil") - } - return &nameReferenceTransformer{backRefs: br} -} - -// Transform updates name references in resource A that refer to resource B, -// given that B's name may have changed. -// -// For example, a HorizontalPodAutoscaler (HPA) necessarily refers to a -// Deployment (the thing that the HPA scales). The Deployment name might change -// (e.g. prefix added), and the reference in the HPA has to be fixed. -// -// In the outer loop below, we encounter an HPA. In scanning backrefs, we -// find that HPA refers to a Deployment. So we find all resources in the same -// namespace as the HPA (and with the same prefix and suffix), and look through -// them to find all the Deployments with a resId that has a Name matching the -// field in HPA. For each match, we overwrite the HPA name field with the value -// found in the Deployment's name field (the name in the raw object - the -// modified name - not the unmodified name in the resId). -// -// This assumes that the name stored in a ResId (the ResMap key) isn't modified -// by name transformers. Name transformers should only modify the name in the -// body of the resource object (the value in the ResMap). -func (o *nameReferenceTransformer) Transform(m resmap.ResMap) error { - // TODO: Too much looping. - // Even more hidden loops in FilterBy, - // updateNameReference and FindByGVKN. - for id := range m { - for _, backRef := range o.backRefs { - for _, fSpec := range backRef.FieldSpecs { - if id.Gvk().IsSelected(&fSpec.Gvk) { - err := mutateField( - m[id].Map(), fSpec.PathSlice(), - fSpec.CreateIfNotPresent, - o.updateNameReference( - backRef.Gvk, m.FilterBy(id))) - if err != nil { - return err - } - } - } - } - } - return nil -} - -func (o *nameReferenceTransformer) updateNameReference( - backRef gvk.Gvk, m resmap.ResMap) func(in interface{}) (interface{}, error) { - return func(in interface{}) (interface{}, error) { - switch in.(type) { - case string: - s, _ := in.(string) - for id, res := range m { - if id.Gvk().IsSelected(&backRef) && id.Name() == s { - matchedIds := m.GetMatchingIds(id.GvknEquals) - // If there's more than one match, there's no way - // to know which one to pick, so emit error. - if len(matchedIds) > 1 { - return nil, fmt.Errorf( - "Multiple matches for name %s:\n %v", id, matchedIds) - } - // Return transformed name of the object, - // complete with prefixes, hashes, etc. - return res.GetName(), nil - } - } - return in, nil - case []interface{}: - l, _ := in.([]interface{}) - var names []string - for _, item := range l { - name, ok := item.(string) - if !ok { - return nil, fmt.Errorf("%#v is expected to be %T", item, name) - } - names = append(names, name) - } - for id, res := range m { - indexes := indexOf(id.Name(), names) - if id.Gvk().IsSelected(&backRef) && len(indexes) > 0 { - matchedIds := m.GetMatchingIds(id.GvknEquals) - if len(matchedIds) > 1 { - return nil, fmt.Errorf( - "Multiple matches for name %s:\n %v", id, matchedIds) - } - for _, index := range indexes { - l[index] = res.GetName() - } - return l, nil - } - } - return in, nil - default: - return nil, fmt.Errorf("%#v is expected to be either a string or a []interface{}", in) - } - } -} - -func indexOf(s string, slice []string) []int { - var index []int - for i, item := range slice { - if item == s { - index = append(index, i) - } - } - return index -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/namespace.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/namespace.go deleted file mode 100644 index 5f0c064820..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/namespace.go +++ /dev/null @@ -1,121 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package transformers - -import ( - "sigs.k8s.io/kustomize/pkg/gvk" - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/transformers/config" -) - -type namespaceTransformer struct { - namespace string - fieldSpecsToUse []config.FieldSpec - fieldSpecsToSkip []config.FieldSpec -} - -var _ Transformer = &namespaceTransformer{} - -// NewNamespaceTransformer construct a namespaceTransformer. -func NewNamespaceTransformer(ns string, cf []config.FieldSpec) Transformer { - if len(ns) == 0 { - return NewNoOpTransformer() - } - var skip []config.FieldSpec - for _, g := range gvk.ClusterLevelGvks() { - skip = append(skip, config.FieldSpec{Gvk: g}) - } - return &namespaceTransformer{ - namespace: ns, - fieldSpecsToUse: cf, - fieldSpecsToSkip: skip, - } -} - -// Transform adds the namespace. -func (o *namespaceTransformer) Transform(m resmap.ResMap) error { - mf := resmap.ResMap{} - - for id := range m { - found := false - for _, path := range o.fieldSpecsToSkip { - if id.Gvk().IsSelected(&path.Gvk) { - found = true - break - } - } - if !found { - mf[id] = m[id] - delete(m, id) - } - } - - for id := range mf { - objMap := mf[id].Map() - for _, path := range o.fieldSpecsToUse { - if !id.Gvk().IsSelected(&path.Gvk) { - continue - } - - err := mutateField(objMap, path.PathSlice(), path.CreateIfNotPresent, func(_ interface{}) (interface{}, error) { - return o.namespace, nil - }) - if err != nil { - return err - } - newid := id.CopyWithNewNamespace(o.namespace) - m[newid] = mf[id] - } - - } - o.updateClusterRoleBinding(m) - return nil -} - -func (o *namespaceTransformer) updateClusterRoleBinding(m resmap.ResMap) { - saMap := map[string]bool{} - for id := range m { - if id.Gvk().Equals(gvk.Gvk{Version: "v1", Kind: "ServiceAccount"}) { - saMap[id.Name()] = true - } - } - - for id := range m { - if id.Gvk().Kind != "ClusterRoleBinding" && id.Gvk().Kind != "RoleBinding" { - continue - } - objMap := m[id].Map() - subjects := objMap["subjects"].([]interface{}) - for i := range subjects { - subject := subjects[i].(map[string]interface{}) - kind, foundk := subject["kind"] - name, foundn := subject["name"] - if !foundk || !foundn || kind.(string) != "ServiceAccount" { - continue - } - // a ServiceAccount named “default” exists in every active namespace - if name.(string) == "default" || saMap[name.(string)] { - subject := subjects[i].(map[string]interface{}) - mutateField(subject, []string{"namespace"}, true, func(_ interface{}) (interface{}, error) { - return o.namespace, nil - }) - subjects[i] = subject - } - } - objMap["subjects"] = subjects - } -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/nooptransformer.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/nooptransformer.go deleted file mode 100644 index c07389b31d..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/nooptransformer.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package transformers - -import "sigs.k8s.io/kustomize/pkg/resmap" - -// noOpTransformer contains a no-op transformer. -type noOpTransformer struct{} - -var _ Transformer = &noOpTransformer{} - -// NewNoOpTransformer constructs a noOpTransformer. -func NewNoOpTransformer() Transformer { - return &noOpTransformer{} -} - -// Transform does nothing. -func (o *noOpTransformer) Transform(_ resmap.ResMap) error { - return nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/prefixsuffixname.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/prefixsuffixname.go deleted file mode 100644 index c4ca85f53a..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/prefixsuffixname.go +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package transformers - -import ( - "errors" - "fmt" - - "sigs.k8s.io/kustomize/pkg/gvk" - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/transformers/config" -) - -// namePrefixSuffixTransformer contains the prefix, suffix, and the FieldSpecs -// for each field needing a name prefix and suffix. -type namePrefixSuffixTransformer struct { - prefix string - suffix string - fieldSpecsToUse []config.FieldSpec - fieldSpecsToSkip []config.FieldSpec -} - -var _ Transformer = &namePrefixSuffixTransformer{} - -var prefixSuffixFieldSpecsToSkip = []config.FieldSpec{ - { - Gvk: gvk.Gvk{Kind: "CustomResourceDefinition"}, - }, -} - -// NewNamePrefixSuffixTransformer makes a namePrefixSuffixTransformer. -func NewNamePrefixSuffixTransformer( - np, ns string, fieldSpecs []config.FieldSpec) (Transformer, error) { - if len(np) == 0 && len(ns) == 0 { - return NewNoOpTransformer(), nil - } - if fieldSpecs == nil { - return nil, errors.New("fieldSpecs is not expected to be nil") - } - return &namePrefixSuffixTransformer{ - prefix: np, - suffix: ns, - fieldSpecsToUse: fieldSpecs, - fieldSpecsToSkip: prefixSuffixFieldSpecsToSkip}, nil -} - -// Transform prepends the name prefix and appends the name suffix. -func (o *namePrefixSuffixTransformer) Transform(m resmap.ResMap) error { - // Fill map "mf" with entries subject to name modification, and - // delete these entries from "m", so that for now m retains only - // the entries whose names will not be modified. - mf := resmap.ResMap{} - for id := range m { - found := false - for _, path := range o.fieldSpecsToSkip { - if id.Gvk().IsSelected(&path.Gvk) { - found = true - break - } - } - if !found { - mf[id] = m[id] - delete(m, id) - } - } - - for id := range mf { - objMap := mf[id].Map() - for _, path := range o.fieldSpecsToUse { - if !id.Gvk().IsSelected(&path.Gvk) { - continue - } - err := mutateField( - objMap, - path.PathSlice(), - path.CreateIfNotPresent, - o.addPrefixSuffix) - if err != nil { - return err - } - newId := id.CopyWithNewPrefixSuffix(o.prefix, o.suffix) - m[newId] = mf[id] - } - } - return nil -} - -func (o *namePrefixSuffixTransformer) addPrefixSuffix( - in interface{}) (interface{}, error) { - s, ok := in.(string) - if !ok { - return nil, fmt.Errorf("%#v is expected to be %T", in, s) - } - return fmt.Sprintf("%s%s%s", o.prefix, s, o.suffix), nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/refvars.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/refvars.go deleted file mode 100644 index b31ec6e7a2..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/refvars.go +++ /dev/null @@ -1,94 +0,0 @@ -package transformers - -import ( - "fmt" - "sigs.k8s.io/kustomize/pkg/expansion" - "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/transformers/config" -) - -type RefVarTransformer struct { - varMap map[string]string - replacementCounts map[string]int - fieldSpecs []config.FieldSpec - mappingFunc func(string) string -} - -// NewRefVarTransformer returns a new RefVarTransformer -// that replaces $(VAR) style variables with values. -// The fieldSpecs are the places to look for occurrences of $(VAR). -func NewRefVarTransformer( - varMap map[string]string, fs []config.FieldSpec) *RefVarTransformer { - return &RefVarTransformer{ - varMap: varMap, - fieldSpecs: fs, - } -} - -// replaceVars accepts as 'in' a string, or string array, which can have -// embedded instances of $VAR style variables, e.g. a container command string. -// The function returns the string with the variables expanded to their final -// values. -func (rv *RefVarTransformer) replaceVars(in interface{}) (interface{}, error) { - switch vt := in.(type) { - case []interface{}: - var xs []string - for _, a := range in.([]interface{}) { - xs = append(xs, expansion.Expand(a.(string), rv.mappingFunc)) - } - return xs, nil - case map[string]interface{}: - inMap := in.(map[string]interface{}) - xs := make(map[string]interface{}, len(inMap)) - for k, v := range inMap { - s, ok := v.(string) - if !ok { - return nil, fmt.Errorf("%#v is expected to be %T", v, s) - } - xs[k] = expansion.Expand(s, rv.mappingFunc) - } - return xs, nil - case interface{}: - s, ok := in.(string) - if !ok { - return nil, fmt.Errorf("%#v is expected to be %T", in, s) - } - return expansion.Expand(s, rv.mappingFunc), nil - case nil: - return nil, nil - default: - return "", fmt.Errorf("invalid type encountered %T", vt) - } -} - -// UnusedVars returns slice of Var names that were unused -// after a Transform run. -func (rv *RefVarTransformer) UnusedVars() []string { - var unused []string - for k := range rv.varMap { - _, ok := rv.replacementCounts[k] - if !ok { - unused = append(unused, k) - } - } - return unused -} - -// Transform replaces $(VAR) style variables with values. -func (rv *RefVarTransformer) Transform(m resmap.ResMap) error { - rv.replacementCounts = make(map[string]int) - rv.mappingFunc = expansion.MappingFuncFor( - rv.replacementCounts, rv.varMap) - for id, res := range m { - for _, fieldSpec := range rv.fieldSpecs { - if id.Gvk().IsSelected(&fieldSpec.Gvk) { - if err := mutateField( - res.Map(), fieldSpec.PathSlice(), - false, rv.replaceVars); err != nil { - return err - } - } - } - } - return nil -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/transformers/transformer.go b/vendor/sigs.k8s.io/kustomize/pkg/transformers/transformer.go deleted file mode 100644 index dc6f8807c3..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/transformers/transformer.go +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright 2018 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. -*/ - -// Package transformers has implementations of resmap.ResMap transformers. -package transformers - -import "sigs.k8s.io/kustomize/pkg/resmap" - -// A Transformer modifies an instance of resmap.ResMap. -type Transformer interface { - // Transform modifies data in the argument, e.g. adding labels to resources that can be labelled. - Transform(m resmap.ResMap) error -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/types/genargs.go b/vendor/sigs.k8s.io/kustomize/pkg/types/genargs.go deleted file mode 100644 index bef093d350..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/types/genargs.go +++ /dev/null @@ -1,64 +0,0 @@ -/* -Copyright 2019 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. -*/ - -package types - -import ( - "strconv" - "strings" -) - -// GenArgs contains both generator args and options -type GenArgs struct { - args *GeneratorArgs - opts *GeneratorOptions -} - -// NewGenArgs returns a new object of GenArgs -func NewGenArgs(args *GeneratorArgs, opts *GeneratorOptions) *GenArgs { - return &GenArgs{ - args: args, - opts: opts, - } -} - -func (g *GenArgs) String() string { - if g == nil { - return "{nilGenArgs}" - } - return "{" + - strings.Join([]string{ - "nsfx:" + strconv.FormatBool(g.NeedsHashSuffix()), - "beh:" + g.Behavior().String()}, - ",") + - "}" -} - -// NeedHashSuffix returns true if the hash suffix is needed. -// It is needed when the two conditions are both met -// 1) GenArgs is not nil -// 2) DisableNameSuffixHash in GeneratorOptions is not set to true -func (g *GenArgs) NeedsHashSuffix() bool { - return g.args != nil && (g.opts == nil || g.opts.DisableNameSuffixHash == false) -} - -// Behavior returns Behavior field of GeneratorArgs -func (g *GenArgs) Behavior() GenerationBehavior { - if g.args == nil { - return BehaviorUnspecified - } - return NewGenerationBehavior(g.args.Behavior) -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/types/generationbehavior.go b/vendor/sigs.k8s.io/kustomize/pkg/types/generationbehavior.go deleted file mode 100644 index 67ba8a0b56..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/types/generationbehavior.go +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright 2018 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. -*/ - -package types - -// GenerationBehavior specifies generation behavior of configmaps, secrets and maybe other resources. -type GenerationBehavior int - -const ( - // BehaviorUnspecified is an Unspecified behavior; typically treated as a Create. - BehaviorUnspecified GenerationBehavior = iota - // BehaviorCreate makes a new resource. - BehaviorCreate - // BehaviorReplace replaces a resource. - BehaviorReplace - // BehaviorMerge attempts to merge a new resource with an existing resource. - BehaviorMerge -) - -// String converts a GenerationBehavior to a string. -func (b GenerationBehavior) String() string { - switch b { - case BehaviorReplace: - return "replace" - case BehaviorMerge: - return "merge" - case BehaviorCreate: - return "create" - default: - return "unspecified" - } -} - -// NewGenerationBehavior converts a string to a GenerationBehavior. -func NewGenerationBehavior(s string) GenerationBehavior { - switch s { - case "replace": - return BehaviorReplace - case "merge": - return BehaviorMerge - case "create": - return BehaviorCreate - default: - return BehaviorUnspecified - } -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/types/kustomization.go b/vendor/sigs.k8s.io/kustomize/pkg/types/kustomization.go deleted file mode 100644 index 12d09820f0..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/types/kustomization.go +++ /dev/null @@ -1,250 +0,0 @@ -/* -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. -*/ - -// Package types holds struct definitions that should find a better home. -package types - -import ( - "regexp" - - "sigs.k8s.io/kustomize/pkg/image" - "sigs.k8s.io/kustomize/pkg/patch" -) - -const ( - KustomizationVersion = "kustomize.config.k8s.io/v1beta1" - KustomizationKind = "Kustomization" -) - -// TypeMeta copies apimachinery/pkg/apis/meta/v1.TypeMeta -type TypeMeta struct { - // Kind copies apimachinery/pkg/apis/meta/v1.Typemeta.Kind - Kind string `json:"kind,omitempty" protobuf:"bytes,1,opt,name=kind"` - - // APIVersion copies apimachinery/pkg/apis/meta/v1.Typemeta.APIVersion - APIVersion string `json:"apiVersion,omitempty" protobuf:"bytes,2,opt,name=apiVersion"` -} - -// Kustomization holds the information needed to generate customized k8s api resources. -type Kustomization struct { - TypeMeta `json:",inline" yaml:",inline"` - - // - // Operators - what kustomize can do. - // - - // NamePrefix will prefix the names of all resources mentioned in the kustomization - // file including generated configmaps and secrets. - NamePrefix string `json:"namePrefix,omitempty" yaml:"namePrefix,omitempty"` - - // NameSuffix will suffix the names of all resources mentioned in the kustomization - // file including generated configmaps and secrets. - NameSuffix string `json:"nameSuffix,omitempty" yaml:"nameSuffix,omitempty"` - - // Namespace to add to all objects. - Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` - - // CommonLabels to add to all objects and selectors. - CommonLabels map[string]string `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"` - - // CommonAnnotations to add to all objects. - CommonAnnotations map[string]string `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"` - - // PatchesStrategicMerge specifies the relative path to a file - // containing a strategic merge patch. Format documented at - // https://github.com/kubernetes/community/blob/master/contributors/devel/strategic-merge-patch.md - // URLs and globs are not supported. - PatchesStrategicMerge []patch.StrategicMerge `json:"patchesStrategicMerge,omitempty" yaml:"patchesStrategicMerge,omitempty"` - - // JSONPatches is a list of JSONPatch for applying JSON patch. - // Format documented at https://tools.ietf.org/html/rfc6902 - // and http://jsonpatch.com - PatchesJson6902 []patch.Json6902 `json:"patchesJson6902,omitempty" yaml:"patchesJson6902,omitempty"` - - // Images is a list of (image name, new name, new tag or digest) - // for changing image names, tags or digests. This can also be achieved with a - // patch, but this operator is simpler to specify. - Images []image.Image `json:"images,omitempty" yaml:"images,omitempty"` - - // Vars allow things modified by kustomize to be injected into a - // container specification. A var is a name (e.g. FOO) associated - // with a field in a specific resource instance. The field must - // contain a value of type string, and defaults to the name field - // of the instance. Any appearance of "$(FOO)" in the container - // spec will be replaced at kustomize build time, after the final - // value of the specified field has been determined. - Vars []Var `json:"vars,omitempty" yaml:"vars,omitempty"` - - // - // Operands - what kustomize operates on. - // - - // Resources specifies relative paths to files holding YAML representations - // of kubernetes API objects. URLs and globs not supported. - Resources []string `json:"resources,omitempty" yaml:"resources,omitempty"` - - // Crds specifies relative paths to Custom Resource Definition files. - // This allows custom resources to be recognized as operands, making - // it possible to add them to the Resources list. - // CRDs themselves are not modified. - Crds []string `json:"crds,omitempty" yaml:"crds,omitempty"` - - // Bases are relative paths or github repository URLs specifying a - // directory containing a kustomization.yaml file. - // URL format: https://github.com/hashicorp/go-getter#url-format - Bases []string `json:"bases,omitempty" yaml:"bases,omitempty"` - - // - // Generators (operators that create operands) - // - - // ConfigMapGenerator is a list of configmaps to generate from - // local data (one configMap per list item). - // The resulting resource is a normal operand, subject to - // name prefixing, patching, etc. By default, the name of - // the map will have a suffix hash generated from its contents. - ConfigMapGenerator []ConfigMapArgs `json:"configMapGenerator,omitempty" yaml:"configMapGenerator,omitempty"` - - // SecretGenerator is a list of secrets to generate from - // local data (one secret per list item). - // The resulting resource is a normal operand, subject to - // name prefixing, patching, etc. By default, the name of - // the map will have a suffix hash generated from its contents. - SecretGenerator []SecretArgs `json:"secretGenerator,omitempty" yaml:"secretGenerator,omitempty"` - - // GeneratorOptions modify behavior of all ConfigMap and Secret generators. - GeneratorOptions *GeneratorOptions `json:"generatorOptions,omitempty" yaml:"generatorOptions,omitempty"` - - // Configurations is a list of transformer configuration files - Configurations []string `json:"configurations,omitempty" yaml:"configurations,omitempty"` -} - -// DealWithMissingFields fills the missing fields -func (k *Kustomization) DealWithMissingFields() []string { - var msgs []string - if k.APIVersion == "" { - k.APIVersion = KustomizationVersion - msgs = append(msgs, "Fixed the missing field by adding apiVersion: "+KustomizationVersion) - } - if k.Kind == "" { - k.Kind = KustomizationKind - msgs = append(msgs, "Fixed the missing field by adding kind: "+KustomizationKind) - } - return msgs -} - -func (k *Kustomization) EnforceFields() []string { - var errs []string - if k.APIVersion != "" && k.APIVersion != KustomizationVersion { - errs = append(errs, "apiVersion should be "+KustomizationVersion) - } - if k.Kind != "" && k.Kind != KustomizationKind { - errs = append(errs, "kind should be "+KustomizationKind) - } - return errs -} - -// DealWithDeprecatedFields should be called immediately after -// loading from storage. -func DealWithDeprecatedFields(data []byte) []byte { - deprecateFieldsMap := map[string]string{ - "patches:": "patchesStrategicMerge:", - "imageTags:": "images:", - } - for oldname, newname := range deprecateFieldsMap { - pattern := regexp.MustCompile(oldname) - data = pattern.ReplaceAll(data, []byte(newname)) - } - return data -} - -// GeneratorArgs contains arguments common to generators. -type GeneratorArgs struct { - // Namespace for the configmap, optional - Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` - - // Name - actually the partial name - of the generated resource. - // The full name ends up being something like - // NamePrefix + this.Name + hash(content of generated resource). - Name string `json:"name,omitempty" yaml:"name,omitempty"` - - // Behavior of generated resource, must be one of: - // 'create': create a new one - // 'replace': replace the existing one - // 'merge': merge with the existing one - Behavior string `json:"behavior,omitempty" yaml:"behavior,omitempty"` - - // DataSources for the generator. - DataSources `json:",inline,omitempty" yaml:",inline,omitempty"` -} - -// ConfigMapArgs contains the metadata of how to generate a configmap. -type ConfigMapArgs struct { - // GeneratorArgs for the configmap. - GeneratorArgs `json:",inline,omitempty" yaml:",inline,omitempty"` -} - -// SecretArgs contains the metadata of how to generate a secret. -type SecretArgs struct { - // GeneratorArgs for the secret. - GeneratorArgs `json:",inline,omitempty" yaml:",inline,omitempty"` - - // Type of the secret. - // - // This is the same field as the secret type field in v1/Secret: - // It can be "Opaque" (default), or "kubernetes.io/tls". - // - // If type is "kubernetes.io/tls", then "literals" or "files" must have exactly two - // keys: "tls.key" and "tls.crt" - Type string `json:"type,omitempty" yaml:"type,omitempty"` -} - -// DataSources contains some generic sources for configmaps. -type DataSources struct { - // LiteralSources is a list of literal sources. - // Each literal source should be a key and literal value, - // e.g. `somekey=somevalue` - // It will be similar to kubectl create configmap|secret --from-literal - LiteralSources []string `json:"literals,omitempty" yaml:"literals,omitempty"` - - // FileSources is a list of file sources. - // Each file source can be specified using its file path, in which case file - // basename will be used as configmap key, or optionally with a key and file - // path, in which case the given key will be used. - // Specifying a directory will iterate each named file in the directory - // whose basename is a valid configmap key. - // It will be similar to kubectl create configmap|secret --from-file - FileSources []string `json:"files,omitempty" yaml:"files,omitempty"` - - // EnvSource format should be a path to a file to read lines of key=val - // pairs to create a configmap. - // i.e. a Docker .env file or a .ini file. - EnvSource string `json:"env,omitempty" yaml:"env,omitempty"` -} - -// GeneratorOptions modify behavior of all ConfigMap and Secret generators. -type GeneratorOptions struct { - // Labels to add to all generated resources. - Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"` - - // Annotations to add to all generated resources. - Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"` - - // DisableNameSuffixHash if true disables the default behavior of adding a - // suffix to the names of generated resources that is a hash of the - // resource contents. - DisableNameSuffixHash bool `json:"disableNameSuffixHash,omitempty" yaml:"disableNameSuffixHash,omitempty"` -} diff --git a/vendor/sigs.k8s.io/kustomize/pkg/types/var.go b/vendor/sigs.k8s.io/kustomize/pkg/types/var.go deleted file mode 100644 index 6a48032a08..0000000000 --- a/vendor/sigs.k8s.io/kustomize/pkg/types/var.go +++ /dev/null @@ -1,145 +0,0 @@ -/* -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. -*/ - -package types - -import ( - "fmt" - "sort" - "strings" - - "sigs.k8s.io/kustomize/pkg/gvk" -) - -const defaultFieldPath = "metadata.name" - -// Var represents a variable whose value will be sourced -// from a field in a Kubernetes object. -type Var struct { - // Value of identifier name e.g. FOO used in container args, annotations - // Appears in pod template as $(FOO) - Name string `json:"name" yaml:"name"` - - // ObjRef must refer to a Kubernetes resource under the - // purview of this kustomization. ObjRef should use the - // raw name of the object (the name specified in its YAML, - // before addition of a namePrefix and a nameSuffix). - ObjRef Target `json:"objref" yaml:"objref"` - - // FieldRef refers to the field of the object referred to by - // ObjRef whose value will be extracted for use in - // replacing $(FOO). - // If unspecified, this defaults to fieldPath: $defaultFieldPath - FieldRef FieldSelector `json:"fieldref,omitempty" yaml:"fieldref,omitempty"` -} - -// Target refers to a kubernetes object by Group, Version, Kind and Name -// gvk.Gvk contains Group, Version and Kind -// APIVersion is added to keep the backward compatibility of using ObjectReference -// for Var.ObjRef -type Target struct { - APIVersion string `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"` - gvk.Gvk `json:",inline,omitempty" yaml:",inline,omitempty"` - Name string `json:"name" yaml:"name"` -} - -// FieldSelector contains the fieldPath to an object field. -// This struct is added to keep the backward compatibility of using ObjectFieldSelector -// for Var.FieldRef -type FieldSelector struct { - FieldPath string `json:"fieldPath,omitempty" yaml:"fieldPath,omitempty"` -} - -// defaulting sets reference to field used by default. -func (v *Var) defaulting() { - if v.FieldRef.FieldPath == "" { - v.FieldRef.FieldPath = defaultFieldPath - } -} - -// VarSet is a slice of Vars where no var.Name is repeated. -type VarSet struct { - set []Var -} - -// Set returns a copy of the var set. -func (vs *VarSet) Set() []Var { - s := make([]Var, len(vs.set)) - copy(s, vs.set) - return s -} - -// MergeSet absorbs other vars with error on name collision. -func (vs *VarSet) MergeSet(incoming *VarSet) error { - return vs.MergeSlice(incoming.set) -} - -// MergeSlice absorbs other vars with error on name collision. -// Empty fields in incoming vars are defaulted. -func (vs *VarSet) MergeSlice(incoming []Var) error { - for _, v := range incoming { - if vs.Contains(v) { - return fmt.Errorf( - "var %s already encountered", v.Name) - } - v.defaulting() - vs.insert(v) - } - return nil -} - -func (vs *VarSet) insert(v Var) { - index := sort.Search( - len(vs.set), - func(i int) bool { return vs.set[i].Name > v.Name }) - // make room - vs.set = append(vs.set, Var{}) - // shift right at index. - // copy will not increase size of destination. - copy(vs.set[index+1:], vs.set[index:]) - vs.set[index] = v -} - -// Contains is true if the set has the other var. -func (vs *VarSet) Contains(other Var) bool { - return vs.Get(other.Name) != nil -} - -// Get returns the var with the given name, else nil. -func (vs *VarSet) Get(name string) *Var { - for _, v := range vs.set { - if v.Name == name { - return &v - } - } - return nil -} - -// GVK returns the Gvk object in Target -func (t *Target) GVK() gvk.Gvk { - if t.APIVersion == "" { - return t.Gvk - } - versions := strings.Split(t.APIVersion, "/") - if len(versions) == 2 { - t.Group = versions[0] - t.Version = versions[1] - } - if len(versions) == 1 { - t.Version = versions[0] - } - return t.Gvk -} diff --git a/vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/set.go b/vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/set.go index 029c2b6003..6d182768d0 100644 --- a/vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/set.go +++ b/vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/set.go @@ -19,6 +19,8 @@ package fieldpath import ( "sort" "strings" + + "sigs.k8s.io/structured-merge-diff/v4/schema" ) // Set identifies a set of fields. @@ -110,6 +112,30 @@ func (s *Set) RecursiveDifference(s2 *Set) *Set { } } +// EnsureNamedFieldsAreMembers returns a Set that contains all the +// fields in s, as well as all the named fields that are typically not +// included. For example, a set made of "a.b.c" will end-up also owning +// "a" if it's a named fields but not "a.b" if it's a map. +func (s *Set) EnsureNamedFieldsAreMembers(sc *schema.Schema, tr schema.TypeRef) *Set { + members := PathElementSet{ + members: make(sortedPathElements, 0, s.Members.Size()+len(s.Children.members)), + } + atom, _ := sc.Resolve(tr) + members.members = append(members.members, s.Members.members...) + for _, node := range s.Children.members { + // Only insert named fields. + if node.pathElement.FieldName != nil && atom.Map != nil { + if _, has := atom.Map.FindField(*node.pathElement.FieldName); has { + members.Insert(node.pathElement) + } + } + } + return &Set{ + Members: members, + Children: *s.Children.EnsureNamedFieldsAreMembers(sc, tr), + } +} + // Size returns the number of members of the set. func (s *Set) Size() int { return s.Members.Size() + s.Children.Size() @@ -180,6 +206,40 @@ func (s *Set) WithPrefix(pe PathElement) *Set { return subset } +// Leaves returns a set containing only the leaf paths +// of a set. +func (s *Set) Leaves() *Set { + leaves := PathElementSet{} + im := 0 + ic := 0 + + // any members that are not also children are leaves +outer: + for im < len(s.Members.members) { + member := s.Members.members[im] + + for ic < len(s.Children.members) { + d := member.Compare(s.Children.members[ic].pathElement) + if d == 0 { + ic++ + im++ + continue outer + } else if d < 0 { + break + } else /* if d > 0 */ { + ic++ + } + } + leaves.members = append(leaves.members, member) + im++ + } + + return &Set{ + Members: leaves, + Children: *s.Children.Leaves(), + } +} + // setNode is a pair of PathElement / Set, for the purpose of expressing // nested set membership. type setNode struct { @@ -391,6 +451,31 @@ func (s *SetNodeMap) RecursiveDifference(s2 *Set) *SetNodeMap { return out } +// EnsureNamedFieldsAreMembers returns a set that contains all the named fields along with the leaves. +func (s *SetNodeMap) EnsureNamedFieldsAreMembers(sc *schema.Schema, tr schema.TypeRef) *SetNodeMap { + out := make(sortedSetNode, 0, s.Size()) + atom, _ := sc.Resolve(tr) + for _, member := range s.members { + tr := schema.TypeRef{} + if member.pathElement.FieldName != nil && atom.Map != nil { + tr = atom.Map.ElementType + if sf, ok := atom.Map.FindField(*member.pathElement.FieldName); ok { + tr = sf.Type + } + } else if member.pathElement.Key != nil && atom.List != nil { + tr = atom.List.ElementType + } + out = append(out, setNode{ + pathElement: member.pathElement, + set: member.set.EnsureNamedFieldsAreMembers(sc, tr), + }) + } + + return &SetNodeMap{ + members: out, + } +} + // Iterate calls f for each PathElement in the set. func (s *SetNodeMap) Iterate(f func(PathElement)) { for _, n := range s.members { @@ -404,3 +489,17 @@ func (s *SetNodeMap) iteratePrefix(prefix Path, f func(Path)) { n.set.iteratePrefix(append(prefix, pe), f) } } + +// Leaves returns a SetNodeMap containing +// only setNodes with leaf PathElements. +func (s *SetNodeMap) Leaves() *SetNodeMap { + out := &SetNodeMap{} + out.members = make(sortedSetNode, len(s.members)) + for i, n := range s.members { + out.members[i] = setNode{ + pathElement: n.pathElement, + set: n.set.Leaves(), + } + } + return out +} diff --git a/vendor/sigs.k8s.io/structured-merge-diff/v4/merge/update.go b/vendor/sigs.k8s.io/structured-merge-diff/v4/merge/update.go index 73e0ec73f9..33a3085bf2 100644 --- a/vendor/sigs.k8s.io/structured-merge-diff/v4/merge/update.go +++ b/vendor/sigs.k8s.io/structured-merge-diff/v4/merge/update.go @@ -226,7 +226,8 @@ func (s *Updater) prune(merged *typed.TypedValue, managers fieldpath.ManagedFiel return nil, fmt.Errorf("failed to convert merged object to last applied version: %v", err) } - pruned := convertedMerged.RemoveItems(lastSet.Set()) + sc, tr := convertedMerged.Schema(), convertedMerged.TypeRef() + pruned := convertedMerged.RemoveItems(lastSet.Set().EnsureNamedFieldsAreMembers(sc, tr)) pruned, err = s.addBackOwnedItems(convertedMerged, pruned, managers, applyingManager) if err != nil { return nil, fmt.Errorf("failed add back owned items: %v", err) @@ -272,7 +273,8 @@ func (s *Updater) addBackOwnedItems(merged, pruned *typed.TypedValue, managedFie if err != nil { return nil, fmt.Errorf("failed to create field set from pruned object at version %v: %v", version, err) } - pruned = merged.RemoveItems(mergedSet.Difference(prunedSet.Union(managed))) + sc, tr := merged.Schema(), merged.TypeRef() + pruned = merged.RemoveItems(mergedSet.EnsureNamedFieldsAreMembers(sc, tr).Difference(prunedSet.EnsureNamedFieldsAreMembers(sc, tr).Union(managed.EnsureNamedFieldsAreMembers(sc, tr)))) } return pruned, nil } @@ -296,7 +298,11 @@ func (s *Updater) addBackDanglingItems(merged, pruned *typed.TypedValue, lastSet if err != nil { return nil, fmt.Errorf("failed to create field set from merged object in last applied version: %v", err) } - return merged.RemoveItems(mergedSet.Difference(prunedSet).Intersection(lastSet.Set())), nil + sc, tr := merged.Schema(), merged.TypeRef() + prunedSet = prunedSet.EnsureNamedFieldsAreMembers(sc, tr) + mergedSet = mergedSet.EnsureNamedFieldsAreMembers(sc, tr) + last := lastSet.Set().EnsureNamedFieldsAreMembers(sc, tr) + return merged.RemoveItems(mergedSet.Difference(prunedSet).Intersection(last)), nil } // reconcileManagedFieldsWithSchemaChanges reconciles the managed fields with any changes to the diff --git a/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/remove.go b/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/remove.go index a20fc16f9b..c3e15180a7 100644 --- a/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/remove.go +++ b/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/remove.go @@ -20,19 +20,26 @@ import ( ) type removingWalker struct { - value value.Value - out interface{} - schema *schema.Schema - toRemove *fieldpath.Set - allocator value.Allocator + value value.Value + out interface{} + schema *schema.Schema + toRemove *fieldpath.Set + allocator value.Allocator + shouldExtract bool } -func removeItemsWithSchema(val value.Value, toRemove *fieldpath.Set, schema *schema.Schema, typeRef schema.TypeRef) value.Value { +// removeItemsWithSchema will walk the given value and look for items from the toRemove set. +// Depending on whether shouldExtract is set true or false, it will return a modified version +// of the input value with either: +// 1. only the items in the toRemove set (when shouldExtract is true) or +// 2. the items from the toRemove set removed from the value (when shouldExtract is false). +func removeItemsWithSchema(val value.Value, toRemove *fieldpath.Set, schema *schema.Schema, typeRef schema.TypeRef, shouldExtract bool) value.Value { w := &removingWalker{ - value: val, - schema: schema, - toRemove: toRemove, - allocator: value.NewFreelistAllocator(), + value: val, + schema: schema, + toRemove: toRemove, + allocator: value.NewFreelistAllocator(), + shouldExtract: shouldExtract, } resolveSchema(schema, typeRef, val, w) return value.NewValueInterface(w.out) @@ -59,11 +66,22 @@ func (w *removingWalker) doList(t *schema.List) (errs ValidationErrors) { // Ignore error because we have already validated this list pe, _ := listItemToPathElement(w.allocator, w.schema, t, i, item) path, _ := fieldpath.MakePath(pe) + // save items on the path when we shouldExtract + // but ignore them when we are removing (i.e. !w.shouldExtract) if w.toRemove.Has(path) { - continue + if w.shouldExtract { + newItems = append(newItems, item.Unstructured()) + } else { + continue + } } if subset := w.toRemove.WithPrefix(pe); !subset.Empty() { - item = removeItemsWithSchema(item, subset, w.schema, t.ElementType) + item = removeItemsWithSchema(item, subset, w.schema, t.ElementType, w.shouldExtract) + } else { + // don't save items not on the path when we shouldExtract. + if w.shouldExtract { + continue + } } newItems = append(newItems, item.Unstructured()) } @@ -96,11 +114,21 @@ func (w *removingWalker) doMap(t *schema.Map) ValidationErrors { if ft, ok := fieldTypes[k]; ok { fieldType = ft } + // save values on the path when we shouldExtract + // but ignore them when we are removing (i.e. !w.shouldExtract) if w.toRemove.Has(path) { + if w.shouldExtract { + newMap[k] = val.Unstructured() + } return true } if subset := w.toRemove.WithPrefix(pe); !subset.Empty() { - val = removeItemsWithSchema(val, subset, w.schema, fieldType) + val = removeItemsWithSchema(val, subset, w.schema, fieldType, w.shouldExtract) + } else { + // don't save values not on the path when we shouldExtract. + if w.shouldExtract { + return true + } } newMap[k] = val.Unstructured() return true diff --git a/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/tofieldset.go b/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/tofieldset.go index bc88c086c4..047efff053 100644 --- a/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/tofieldset.go +++ b/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/tofieldset.go @@ -137,7 +137,9 @@ func (v *toFieldSetWalker) visitMapItems(t *schema.Map, m value.Map) (errs Valid v2 := v.prepareDescent(pe, tr) v2.value = val errs = append(errs, v2.toFieldSet()...) - if _, ok := t.FindField(key); !ok { + if val.IsNull() || (val.IsMap() && val.AsMap().Length() == 0) { + v2.set.Insert(v2.path) + } else if _, ok := t.FindField(key); !ok { v2.set.Insert(v2.path) } v.finishDescent(v2) diff --git a/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/typed.go b/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/typed.go index 54766f6edc..e9e6be8bef 100644 --- a/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/typed.go +++ b/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/typed.go @@ -150,7 +150,13 @@ func (tv TypedValue) Compare(rhs *TypedValue) (c *Comparison, err error) { // RemoveItems removes each provided list or map item from the value. func (tv TypedValue) RemoveItems(items *fieldpath.Set) *TypedValue { - tv.value = removeItemsWithSchema(tv.value, items, tv.schema, tv.typeRef) + tv.value = removeItemsWithSchema(tv.value, items, tv.schema, tv.typeRef, false) + return &tv +} + +// ExtractItems returns a value with only the provided list or map items extracted from the value. +func (tv TypedValue) ExtractItems(items *fieldpath.Set) *TypedValue { + tv.value = removeItemsWithSchema(tv.value, items, tv.schema, tv.typeRef, true) return &tv } diff --git a/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/validate.go b/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/validate.go index 403ec8fe00..378d30219c 100644 --- a/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/validate.go +++ b/vendor/sigs.k8s.io/structured-merge-diff/v4/typed/validate.go @@ -92,7 +92,7 @@ func validateScalar(t *schema.Scalar, v value.Value, prefix string) (errs Valida case schema.Numeric: if !v.IsFloat() && !v.IsInt() { // TODO: should the schema separate int and float? - return errorf("%vexpected numeric (int or float), got %T", prefix, v) + return errorf("%vexpected numeric (int or float), got %T", prefix, v.Unstructured()) } case schema.String: if !v.IsString() { diff --git a/vendor/sigs.k8s.io/structured-merge-diff/v4/value/reflectcache.go b/vendor/sigs.k8s.io/structured-merge-diff/v4/value/reflectcache.go index 49e6dd1690..a5a467c0f0 100644 --- a/vendor/sigs.k8s.io/structured-merge-diff/v4/value/reflectcache.go +++ b/vendor/sigs.k8s.io/structured-merge-diff/v4/value/reflectcache.go @@ -70,11 +70,11 @@ func (f *FieldCacheEntry) CanOmit(fieldVal reflect.Value) bool { return f.isOmitEmpty && (safeIsNil(fieldVal) || isZero(fieldVal)) } -// GetUsing returns the field identified by this FieldCacheEntry from the provided struct. +// GetFrom returns the field identified by this FieldCacheEntry from the provided struct. func (f *FieldCacheEntry) GetFrom(structVal reflect.Value) reflect.Value { // field might be nested within 'inline' structs for _, elem := range f.fieldPath { - structVal = structVal.FieldByIndex(elem) + structVal = dereference(structVal).FieldByIndex(elem) } return structVal } @@ -150,7 +150,11 @@ func buildStructCacheEntry(t reflect.Type, infos map[string]*FieldCacheEntry, fi continue } if isInline { - buildStructCacheEntry(field.Type, infos, append(fieldPath, field.Index)) + e := field.Type + if field.Type.Kind() == reflect.Ptr { + e = field.Type.Elem() + } + buildStructCacheEntry(e, infos, append(fieldPath, field.Index)) continue } info := &FieldCacheEntry{JsonName: jsonName, isOmitEmpty: isOmitempty, fieldPath: append(fieldPath, field.Index), fieldType: field.Type}